Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/jsxc.nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsualko <klaus@jsxc.org>2017-01-23 18:42:29 +0300
committersualko <klaus@jsxc.org>2017-01-23 18:42:29 +0300
commit19e8f7512048df2b80069292feae56075f065eec (patch)
tree5d8aba9cb666d305bc4d80d48d952c9e85b9f5e4
parent859c5b3adbf27ea3e2f4d25e5409bb2929f2c5d4 (diff)
build v3.1.0-betav3.1.0-beta
-rw-r--r--CHANGELOG.md9
-rwxr-xr-xappinfo/info.xml2
-rw-r--r--build/ajax/getSettings.php15
-rw-r--r--build/ajax/getUsers.php25
-rw-r--r--build/ajax/setAdminSettings.php4
-rw-r--r--build/appinfo/info.xml2
-rw-r--r--build/css/jsxc.oc.css704
-rw-r--r--build/js/admin.js6
-rw-r--r--build/js/eof.js6
-rw-r--r--build/js/jsxc/css/jsxc.css1134
-rw-r--r--build/js/jsxc/css/magnific-popup.css85
-rw-r--r--build/js/jsxc/img/bell.svg61
-rw-r--r--build/js/jsxc/img/composing.pngbin0 -> 1887 bytes
-rw-r--r--build/js/jsxc/img/download_icon_black.svg137
-rw-r--r--build/js/jsxc/img/download_icon_gray.svg137
-rw-r--r--build/js/jsxc/img/download_icon_white.svg137
-rw-r--r--build/js/jsxc/img/emotions/nextcloud.svg98
-rw-r--r--build/js/jsxc/img/megaphone_icon_black.svg73
-rw-r--r--build/js/jsxc/jsxc.js2902
-rw-r--r--build/js/jsxc/jsxc.min.js20
-rw-r--r--build/js/jsxc/jsxc.min.js.map2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0023-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0023.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/002a-20e3.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/002a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0030-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0030.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0031-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0031.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0032-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0032.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0033-20e3.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0033.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0034-20e3.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0034.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0035-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0035.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0036-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0036.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0037-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0037.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0038-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0038.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0039-20e3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/0039.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/00a9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/00ae.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f004.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f0cf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f170.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f171.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f17e.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f17f.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f18e.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f191.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f192.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f193.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f194.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f195.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f196.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f197.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f198.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f199.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f19a.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1eb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f8.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ff.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e6.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ea.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ec.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ed.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ee.svg6
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f3.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f4.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f6.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ff.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e7.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e6.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ec.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ed.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ee.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f5.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fc.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fd.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e8.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f2.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1e9.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e6.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ea.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ec.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ed.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ea.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1eb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ea.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1eb.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ec.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ed.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f3.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f5.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fa.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fe.svg6
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ec.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1fa.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ed.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f6.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ee.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ef.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ed.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f0.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e6.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fa.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f1.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1eb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ed.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f3.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f6.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fb.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fc.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f2.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ea.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ec.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ee.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f5.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f3.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f4-1f1f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f4.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ea.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1eb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ed.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f5.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f6-1f1e6.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f6.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f4.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f7.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ed.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ee.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f0.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f3.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ff.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f8.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1eb.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ed.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ef.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f1.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fc.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1f9.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fa.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ea.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1fa.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1eb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fd-1f1f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1ea.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1e6.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1fc.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f1ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f201.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f202.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f21a.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f22f.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f232.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f233.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f234.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f235.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f236.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f237.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f238.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f239.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f23a.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f250.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f251.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f300.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f301.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f302.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f303.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f304.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f305.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f306.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f307.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f308.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f309.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f30a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f30b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f30c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f30d.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f30e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f30f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f310.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f311.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f312.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f313.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f314.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f315.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f316.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f317.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f318.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f319.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f31a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f31b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f31c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f31d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f31e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f31f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f320.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f321.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f324.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f325.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f326.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f327.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f328.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f329.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f32a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f32b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f32c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f32d.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f32e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f32f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f330.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f331.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f332.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f333.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f334.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f335.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f336.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f337.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f338.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f339.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f33a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f33b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f33c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f33d.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f33e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f33f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f340.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f341.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f342.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f343.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f344.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f345.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f346.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f347.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f348.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f349.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f34a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f34b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f34c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f34d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f34e.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f34f.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f350.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f351.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f352.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f353.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f354.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f355.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f356.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f357.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f358.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f359.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f35a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f35b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f35c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f35d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f35e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f35f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f360.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f361.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f362.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f363.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f364.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f365.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f366.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f367.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f368.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f369.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f36a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f36b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f36c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f36d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f36e.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f36f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f370.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f371.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f372.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f373.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f374.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f375.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f376.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f377.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f378.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f379.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f37a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f37b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f37c.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f37d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f37e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f37f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f380.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f381.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f382.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f383.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f384.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f385-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f385.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f386.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f387.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f388.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f389.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f38a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f38b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f38c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f38d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f38e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f38f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f390.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f391.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f392.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f393.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f396.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f397.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f399.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f39a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f39b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f39e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f39f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3a9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3aa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ab.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ac.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ad.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ae.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3af.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b0.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b4.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3b9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ba.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3bb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3bc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3bd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3be.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3bf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c4.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3c9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ca.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ce.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3cf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d5.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d7.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3d9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3da.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3db.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3dc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3dd.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3de.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3df.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e7.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3e9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ed.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f3-1f308.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f3fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f400.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f401.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f402.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f403.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f404.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f405.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f406.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f407.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f408.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f409.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f40a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f40b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f40c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f40d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f40e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f40f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f410.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f411.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f412.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f413.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f414.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f415.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f416.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f417.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f418.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f419.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f41a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f41b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f41c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f41d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f41e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f41f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f420.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f421.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f422.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f423.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f424.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f425.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f426.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f427.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f428.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f429.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f42a.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f42b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f42c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f42d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f42e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f42f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f430.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f431.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f432.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f433.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f434.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f435.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f436.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f437.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f438.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f439.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f43a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f43b.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f43c.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f43d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f43e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f43f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f440.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f441-1f5e8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f441.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f442-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f442.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f443-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f443.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f444.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f445.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f446-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f446.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f447-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f447.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f448-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f448.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f449-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f449.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f44f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f450-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f450.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f451.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f452.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f453.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f454.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f455.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f456.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f457.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f458.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f459.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f45a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f45b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f45c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f45d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f45e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f45f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f460.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f461.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f462.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f463.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f464.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f465.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f466-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f466.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f467-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f467.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466-1f466.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f466.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f467.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f466-1f466.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f466.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f467.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f468.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f48b-1f468.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f468.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fc.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fd.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f3ff.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466-1f466.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f466.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f467.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f469.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f48b-1f469.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f469.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f46f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f470-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f470.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f471-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f471.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fc.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fd.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f472-1f3ff.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f472.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f473-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f473.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f474-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f474.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f475-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f475.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f476-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f476.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f477-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f477.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f478-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f478.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f479.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47d.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f47f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f480.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f481-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f481.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f482-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f482.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f483-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f483.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f484.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f485-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f485.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fb.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fc.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fd.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fe.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f486-1f3ff.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f486.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f487-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f487.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f488.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f489.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f48a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f48b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f48c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f48d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f48e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f48f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f490.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f491.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f492.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f493.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f494.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f495.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f496.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f497.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f498.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f499.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f49a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f49b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f49c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f49d.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f49e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f49f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4a9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4aa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ab.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ac.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ad.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ae.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4af.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4b9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ba.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4bb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4bc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4bd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4be.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4bf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4c9.svg6
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ca.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4cb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4cc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4cd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ce.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4cf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d4.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4d9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4da.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4db.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4dc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4dd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4de.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4df.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e0.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e5.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ec.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ed.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f4ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f500.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f501.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f502.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f503.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f504.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f505.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f506.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f507.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f508.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f509.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f50a.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f50b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f50c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f50d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f50e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f50f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f510.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f511.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f512.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f513.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f514.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f515.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f516.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f517.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f518.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f519.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f51a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f51b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f51c.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f51d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f51e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f51f.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f520.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f521.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f522.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f523.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f524.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f525.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f526.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f527.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f528.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f529.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f52a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f52b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f52c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f52d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f52e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f52f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f530.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f531.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f532.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f533.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f534.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f535.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f536.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f537.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f538.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f539.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f53a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f53b.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f53c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f53d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f549.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f54a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f54b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f54c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f54d.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f54e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f550.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f551.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f552.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f553.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f554.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f555.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f556.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f557.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f558.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f559.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f55a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f55b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f55c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f55d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f55e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f55f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f560.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f561.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f562.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f563.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f564.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f565.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f566.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f567.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f56f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f570.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f573.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f574.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f575-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f575.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f576.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f577.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f578.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f579.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f57a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f587.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f58a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f58b.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f58c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f58d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f590-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f590.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f595-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f595.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f596-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f596.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5a4.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5a5.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5a8.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5b1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5b2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5bc.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5c2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5c3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5c4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5d1.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5d2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5d3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5dc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5dd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5de.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5e1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5e3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5e8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5ef.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f5ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f600.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f601.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f602.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f603.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f604.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f605.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f606.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f607.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f608.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f609.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f60a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f60b.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f60c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f60d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f60e.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f60f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f610.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f611.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f612.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f613.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f614.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f615.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f616.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f617.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f618.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f619.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f61a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f61b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f61c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f61d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f61e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f61f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f620.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f621.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f622.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f623.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f624.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f625.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f626.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f627.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f628.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f629.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f62a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f62b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f62c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f62d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f62e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f62f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f630.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f631.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f632.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f633.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f634.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f635.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f636.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f637.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f638.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f639.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f63a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f63b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f63c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f63d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f63e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f63f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f640.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f641.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f642.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f643.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f644.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f645-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f645.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f646-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f646.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f647-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f647.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f648.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f649.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f64f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f680.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f681.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f682.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f683.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f684.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f685.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f686.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f687.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f688.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f689.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f68a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f68b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f68c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f68d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f68e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f68f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f690.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f691.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f692.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f693.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f694.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f695.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f696.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f697.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f698.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f699.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f69a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f69b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f69c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f69d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f69e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f69f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a0.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6a9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6aa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ab.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ac.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ad.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ae.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6af.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b8.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6b9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ba.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6bb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6bc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6bd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6be.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6bf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6c5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6cb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6cc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6cd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ce.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6cf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6d0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6d1.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6d2.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6f3.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6f4.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6f5.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f6f6.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f910.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f911.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f912.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f913.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f914.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f915.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f916.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f917.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f918-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f918.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f919-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f919.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91b.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91c.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91d.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f91e.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f920.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f921.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f922.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f923.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f924.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f925.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f926-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f926.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f927.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f930-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f930.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f933-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f933.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f934-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f934.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f935-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f935.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f936-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f936.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f937-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f937.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f938-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f938.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f939-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f939.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93c.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93d.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fb.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fc.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fd.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fe.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3ff.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f93e.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f940.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f941.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f942.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f943.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f944.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f945.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f947.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f948.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f949.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f94a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f94b.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f950.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f951.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f952.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f953.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f954.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f955.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f956.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f957.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f958.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f959.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f95a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f95b.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f95c.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f95d.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f95e.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f980.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f981.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f982.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f983.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f984.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f985.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f986.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f987.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f988.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f989.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f98a.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f98b.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f98c.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f98d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f98e.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f98f.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f990.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f991.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/1f9c0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/203c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2049.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2122.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2139.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2194.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2195.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2196.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2197.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2198.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2199.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/21a9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/21aa.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/231a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/231b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2328.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23cf.svg1
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23e9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23eb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23ec.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23ed.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23ee.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23ef.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23f2.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23f9.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/23fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/24c2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25aa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25ab.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25b6.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25c0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/25fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2600.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2601.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2602.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2603.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2604.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/260e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2611.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2614.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2615.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2618.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/261d-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/261d-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/261d-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/261d-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/261d-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/261d.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2620.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2622.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2623.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2626.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/262a.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/262e.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/262f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2638.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2639.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/263a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2648.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2649.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/264a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/264b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/264c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/264d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/264e.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/264f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2650.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2651.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2652.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2653.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2660.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2663.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2665.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2666.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2668.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/267b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/267f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2692.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2693.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2694.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2696.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2697.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2699.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/269b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/269c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26a0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26a1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26aa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26ab.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26b0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26b1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26bd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26be.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26c4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26c5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26c8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26ce.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26cf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26d1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26d3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26d4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26e9.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26ea.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f2.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f3.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f4.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f5.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f7.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f8.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f9-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26f9.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26fa.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/26fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2702.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2705.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2708.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2709.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270a-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270a-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270a-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270a-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270a-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270a.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270b-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270b-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270b-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270b-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270b-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270c-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270c-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270c-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270c-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270c-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270d-1f3fb.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270d-1f3fc.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270d-1f3fd.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270d-1f3fe.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270d-1f3ff.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/270f.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2712.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2714.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2716.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/271d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2721.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2728.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2733.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2734.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2744.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2747.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/274c.svg5
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/274e.svg3
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2753.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2754.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2755.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2757.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2763.svg4
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2764.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2795.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2796.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2797.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/27a1.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/27b0.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/27bf.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2934.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2935.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b05.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b06.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b07.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b1b.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b1c.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b50.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/2b55.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/3030.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/303d.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/3297.svg2
-rw-r--r--build/js/jsxc/lib/emojione/assets/svg/3299.svg2
-rw-r--r--build/js/jsxc/lib/emojione/lib/js/emojione.js152
-rw-r--r--build/js/jsxc/lib/emojione/lib/js/emojione.min.js14
-rw-r--r--build/js/jsxc/lib/i18next/i18next.min.js2
-rw-r--r--build/js/jsxc/lib/i18next/release/i18next-latest.min.js5
-rw-r--r--build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js1
-rw-r--r--build/js/jsxc/lib/jsxc.dep.js37243
-rw-r--r--build/js/jsxc/lib/jsxc.dep.min.js139
-rw-r--r--build/js/jsxc/lib/jsxc.dep.min.js.map2
-rw-r--r--build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js334
-rw-r--r--build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js6
-rw-r--r--build/js/jsxc/lib/strophe.chatstates/index.js80
-rw-r--r--build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js35234
-rw-r--r--build/js/jsxc/lib/strophe.js/strophe.js1741
-rw-r--r--build/js/jsxc/lib/translation.js2
-rw-r--r--build/js/ojsxc.js19
-rw-r--r--build/settings.php3
-rw-r--r--build/templates/settings.php80
m---------js/jsxc0
-rw-r--r--package.json2
1867 files changed, 51420 insertions, 33003 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 949492a..af942b6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
+## [Unreleased]
+### Added
+- add option to use user email as jid
+
+### Fixed
+- fix untrimmed settings
+- ignore empty webrtc configuration
+- do not start jsxc inside a frame
+
## 3.0.2 - 2016-12-23
### Changed
- rebrand from owncloud to nextcloud
diff --git a/appinfo/info.xml b/appinfo/info.xml
index faaa9b3..d3cacd4 100755
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -5,7 +5,7 @@
<name>JavaScript XMPP Chat</name>
<summary>Facebook-like chat</summary>
<description>Facebook-like chat with end-to-end encrypted conversation, video calls, multi-user rooms, XMPP and internal server backend.</description>
- <version>3.0.2</version>
+ <version>3.1.0-beta</version>
<licence>agpl</licence>
<author mail="klaus@jsxc.org">Klaus Herberth</author>
<author>Tobia De Koninck</author>
diff --git a/build/ajax/getSettings.php b/build/ajax/getSettings.php
index e638a20..4a03d39 100644
--- a/build/ajax/getSettings.php
+++ b/build/ajax/getSettings.php
@@ -39,12 +39,27 @@ if ($data ['serverType'] === 'internal') {
exit;
}
+$data ['screenMediaExtension']['firefox'] = trim($config->getAppValue('ojsxc', 'firefoxExtension'));
+$data ['screenMediaExtension']['chrome'] = trim($config->getAppValue('ojsxc', 'chromeExtension'));
+
$data ['xmpp'] ['url'] = trim($config->getAppValue('ojsxc', 'boshUrl'));
$data ['xmpp'] ['domain'] = trim($config->getAppValue('ojsxc', 'xmppDomain'));
$data ['xmpp'] ['resource'] = trim($config->getAppValue('ojsxc', 'xmppResource'));
$data ['xmpp'] ['overwrite'] = validateBoolean($config->getAppValue('ojsxc', 'xmppOverwrite'));
$data ['xmpp'] ['onlogin'] = true;
+if (validateBoolean($config->getAppValue('ojsxc', 'xmppPreferMail'))) {
+ $mail = $config->getUserValue($username,'settings','email');
+
+ if ($mail !== null) {
+ list($u, $d) = explode("@", $mail, 2);
+ if ($d !== null && $d !== "") {
+ $data ['xmpp'] ['username'] = $u;
+ $data ['xmpp'] ['domain'] = $d;
+ }
+ }
+}
+
$options = $config->getUserValue($username, 'ojsxc', 'options');
if ($options !== null) {
diff --git a/build/ajax/getUsers.php b/build/ajax/getUsers.php
index 1c4b258..5b5790b 100644
--- a/build/ajax/getUsers.php
+++ b/build/ajax/getUsers.php
@@ -8,6 +8,27 @@ header('Content-Type: application/json; charset=utf-8');
$limit = 10;
$offset = 0;
-$users = OCP\User::getDisplayNames((string) $_GET['search'], $limit, $offset);
+$config = \OC::$server->getConfig();
+$preferMail = $config->getAppValue('ojsxc', 'xmppPreferMail');
+$preferMail = $preferMail === true || $preferMail === 'true';
-echo json_encode($users);
+$userManager = \OC::$server->getUserManager();
+$users = $userManager->searchDisplayName((string) $_GET['search'], $limit, $offset);
+$response = array();
+
+foreach($users as $user) {
+ $uid = $user->getUID();
+ $index = $uid;
+
+ if ($preferMail) {
+ $mail = OCP\Config::getUserValue($uid, 'settings', 'email');
+
+ if (!empty($mail)) {
+ $index = $mail;
+ }
+ }
+
+ $response[$index] = $user->getDisplayName();
+}
+
+echo json_encode($response);
diff --git a/build/ajax/setAdminSettings.php b/build/ajax/setAdminSettings.php
index d327e72..7a098f1 100644
--- a/build/ajax/setAdminSettings.php
+++ b/build/ajax/setAdminSettings.php
@@ -11,6 +11,7 @@ $config->setAppValue('ojsxc', 'xmppDomain', trim($_POST ['xmppDomain']));
$config->setAppValue('ojsxc', 'xmppResource', trim($_POST ['xmppResource']));
$config->setAppValue('ojsxc', 'xmppOverwrite', (isset($_POST ['xmppOverwrite'])) ? $_POST ['xmppOverwrite'] : 'false');
$config->setAppValue('ojsxc', 'xmppStartMinimized', (isset($_POST ['xmppStartMinimized'])) ? $_POST ['xmppStartMinimized'] : 'false');
+$config->setAppValue('ojsxc', 'xmppPreferMail', (isset($_POST ['xmppPreferMail'])) ? $_POST ['xmppPreferMail'] : 'false');
$config->setAppValue('ojsxc', 'iceUrl', trim($_POST ['iceUrl']));
$config->setAppValue('ojsxc', 'iceUsername', trim($_POST ['iceUsername']));
@@ -18,4 +19,7 @@ $config->setAppValue('ojsxc', 'iceCredential', $_POST ['iceCredential']);
$config->setAppValue('ojsxc', 'iceSecret', $_POST ['iceSecret']);
$config->setAppValue('ojsxc', 'iceTtl', $_POST ['iceTtl']);
+$config->setAppValue('ojsxc', 'firefoxExtension', $_POST ['firefoxExtension']);
+$config->setAppValue('ojsxc', 'chromeExtension', $_POST ['chromeExtension']);
+
echo 'true';
diff --git a/build/appinfo/info.xml b/build/appinfo/info.xml
index faaa9b3..d3cacd4 100644
--- a/build/appinfo/info.xml
+++ b/build/appinfo/info.xml
@@ -5,7 +5,7 @@
<name>JavaScript XMPP Chat</name>
<summary>Facebook-like chat</summary>
<description>Facebook-like chat with end-to-end encrypted conversation, video calls, multi-user rooms, XMPP and internal server backend.</description>
- <version>3.0.2</version>
+ <version>3.1.0-beta</version>
<licence>agpl</licence>
<author mail="klaus@jsxc.org">Klaus Herberth</author>
<author>Tobia De Koninck</author>
diff --git a/build/css/jsxc.oc.css b/build/css/jsxc.oc.css
index 49d1c5f..3be492e 100644
--- a/build/css/jsxc.oc.css
+++ b/build/css/jsxc.oc.css
@@ -1,13 +1,13 @@
/*!
- * ojsxc v3.0.2+appstore - 2016-12-27
+ * ojsxc v3.1.0-beta - 2017-01-23
*
- * Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.0.2+appstore
+ * @version 3.1.0-beta
* @license MIT
*/
@@ -219,8 +219,7 @@
overflow: hidden;
position: fixed;
background: #0b0b0b;
- opacity: 0.8;
- filter: alpha(opacity=80); }
+ opacity: 0.8; }
.mfp-wrap {
top: 0;
@@ -324,7 +323,9 @@ button.mfp-arrow {
outline: none;
padding: 0;
z-index: 1046;
- box-shadow: none; }
+ box-shadow: none;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation; }
button::-moz-focus-inner {
padding: 0;
@@ -340,7 +341,6 @@ button::-moz-focus-inner {
text-decoration: none;
text-align: center;
opacity: 0.65;
- filter: alpha(opacity=65);
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
@@ -348,8 +348,7 @@ button::-moz-focus-inner {
font-family: Arial, Baskerville, monospace; }
.mfp-close:hover,
.mfp-close:focus {
- opacity: 1;
- filter: alpha(opacity=100); }
+ opacity: 1; }
.mfp-close:active {
top: 1px; }
@@ -376,7 +375,6 @@ button::-moz-focus-inner {
.mfp-arrow {
position: absolute;
opacity: 0.65;
- filter: alpha(opacity=65);
margin: 0;
top: 50%;
margin-top: -55px;
@@ -388,12 +386,9 @@ button::-moz-focus-inner {
margin-top: -54px; }
.mfp-arrow:hover,
.mfp-arrow:focus {
- opacity: 1;
- filter: alpha(opacity=100); }
+ opacity: 1; }
.mfp-arrow:before,
- .mfp-arrow:after,
- .mfp-arrow .mfp-b,
- .mfp-arrow .mfp-a {
+ .mfp-arrow:after {
content: '';
display: block;
width: 0;
@@ -404,36 +399,30 @@ button::-moz-focus-inner {
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
- .mfp-arrow:after,
- .mfp-arrow .mfp-a {
+ .mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
- .mfp-arrow:before,
- .mfp-arrow .mfp-b {
+ .mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
- .mfp-arrow-left:after,
- .mfp-arrow-left .mfp-a {
+ .mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
- .mfp-arrow-left:before,
- .mfp-arrow-left .mfp-b {
+ .mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
- .mfp-arrow-right:after,
- .mfp-arrow-right .mfp-a {
+ .mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
- .mfp-arrow-right:before,
- .mfp-arrow-right .mfp-b {
+ .mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
@@ -570,27 +559,6 @@ img.mfp-img {
padding-left: 6px;
padding-right: 6px; } }
-.mfp-ie7 .mfp-img {
- padding: 0; }
-
-.mfp-ie7 .mfp-bottom-bar {
- width: 600px;
- left: 50%;
- margin-left: -300px;
- margin-top: 5px;
- padding-bottom: 5px; }
-
-.mfp-ie7 .mfp-container {
- padding: 0; }
-
-.mfp-ie7 .mfp-content {
- padding-top: 44px; }
-
-.mfp-ie7 .mfp-close {
- top: 0;
- right: 0;
- padding-top: 0; }
-
.emojione {
/* Emoji Sizing */
font-size: inherit;
@@ -608,7 +576,6 @@ img.emojione {
/* prevent img stretch */
width: auto; }
-/* BEGIN: bootstrap */
@keyframes progress-bar-stripes {
from {
background-position: 40px 0; }
@@ -2640,10 +2607,13 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-top: 6px; } }
#jsxc_dialog .progress, #jsxc_webrtc .progress {
- margin-bottom: 0px; }
+ margin-bottom: 0; }
#jsxc_dialog .progress .progress-bar, #jsxc_webrtc .progress .progress-bar {
width: 100%; }
+#jsxc_dialog .mfp-close, #jsxc_webrtc .mfp-close {
+ font-size: 23px; }
+
.mfp-bg {
z-index: 9000; }
@@ -2653,10 +2623,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.mfp-content {
text-align: center; }
-#jsxc_dialog .mfp-close {
- font-size: 23px; }
-
-/* END: bootstrap */
@-webkit-keyframes bounce {
0% {
bottom: 0;
@@ -2680,6 +2646,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
animation-timing-function: ease-in; }
100% {
bottom: 0; } }
+
@keyframes bounce {
0% {
bottom: 0;
@@ -2735,7 +2702,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
width: 204px;
z-index: 85; }
#jsxc_buddylist .jsxc_unreadMsg .jsxc_name {
- padding-right: 0px; }
+ padding-right: 0; }
#jsxc_buddylist .jsxc_oneway .jsxc_avatar, #jsxc_buddylist .jsxc_oneway .jsxc_caption {
opacity: 0.7; }
#jsxc_buddylist .jsxc_right {
@@ -2748,7 +2715,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
line-height: 20px;
color: #fff; }
#jsxc_buddylist .jsxc_right div:hover {
- opacity: 1.0; }
+ opacity: 1; }
#jsxc_buddylist .jsxc_more {
margin-right: 6px;
z-index: 10;
@@ -2773,7 +2740,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
display: none; }
.jsxc_online:before, .jsxc_chat:before, .jsxc_away:before, .jsxc_xa:before, .jsxc_dnd:before {
- content: ' ';
+ content: " ";
display: block;
width: 12px;
height: 12px;
@@ -2819,6 +2786,14 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
background-size: contain;
border: 0;
vertical-align: bottom; }
+ .jsxc_emoticon.jsxc_large {
+ width: 40px;
+ height: 40px;
+ margin-bottom: 7px; }
+
+#jsxc_roster .jsxc_emoticon.jsxc_large {
+ width: 19px;
+ height: 19px; }
.jsxc_angel {
background: url('../js/jsxc/img/emotions/angel.png'); }
@@ -2891,14 +2866,13 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_roster {
position: fixed;
- top: 0px;
+ top: 0;
bottom: 0;
right: 0;
width: 200px;
overflow: visible;
border-left: 1px solid #e1e1e1;
display: none;
- /*border-left: 1px solid $roster_border_left;*/
z-index: 80;
margin-left: 10px;
background-color: whitesmoke; }
@@ -2964,9 +2938,58 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
transform: rotate(0deg); }
#jsxc_roster.jsxc_state_shown {
display: block;
- right: 0px;
+ right: 0;
-webkit-transition: right 0.5s;
transition: right 0.5s; }
+ #jsxc_roster > .jsxc_bottom {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ line-height: 34px;
+ background-color: #eeeeee;
+ z-index: 50;
+ padding-right: 4px; }
+ #jsxc_roster > .jsxc_bottom:hover {
+ background-color: #ddd; }
+ #jsxc_roster > .jsxc_bottom .jsxc_inner {
+ width: 100%; }
+ #jsxc_roster > .jsxc_bottom ul {
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ border-top: 1px solid transparent;
+ background-color: #eeeeee; }
+ #jsxc_roster > .jsxc_bottom ul li:last-child {
+ border-bottom: 1px solid transparent; }
+ #jsxc_roster > .jsxc_bottom li {
+ height: 44px;
+ background-color: #eeeeee;
+ color: #000;
+ cursor: pointer;
+ width: 100%;
+ padding-left: 44px;
+ line-height: 44px;
+ text-align: left;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ background-repeat: no-repeat;
+ background-position: 15px center;
+ background-size: 16px 16px;
+ opacity: 0.8; }
+ #jsxc_roster > .jsxc_bottom li.jsxc_disabled {
+ color: #333333;
+ cursor: default; }
+ #jsxc_roster > .jsxc_bottom li:hover:not(.jsxc_disabled) {
+ color: #000;
+ background-color: #ddd; }
+ #jsxc_roster > .jsxc_bottom li.jsxc_warning {
+ background-color: #f5e876; }
+ #jsxc_roster > .jsxc_bottom li.jsxc_warning:hover {
+ background-color: #f2e35d; }
+ #jsxc_roster > .jsxc_bottom > div > span {
+ cursor: pointer; }
#jsxc_toggleRoster {
width: 14px;
@@ -2980,12 +3003,12 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_toggleRoster:hover {
background-color: rgba(153, 153, 153, 0.5); }
#jsxc_toggleRoster:before {
- content: '';
+ content: " ";
position: absolute;
display: block;
width: 0;
top: 50%;
- right: 0px;
+ right: 0;
border-style: solid;
border-width: 6px 4px 6px 0;
border-color: transparent whitesmoke;
@@ -3024,7 +3047,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-right: 30px;
height: 100%;
line-height: 100%;
- /*padding-top: 4px;*/
box-sizing: border-box; }
.jsxc_caption * {
cursor: pointer; }
@@ -3071,57 +3093,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.jsxc_caption .jsxc_lastmsg .jsxc_emoticon {
vertical-align: middle; }
-#jsxc_roster > .jsxc_bottom {
- position: absolute;
- left: 0;
- bottom: 0;
- width: 100%;
- line-height: 34px;
- background-color: #eeeeee;
- z-index: 50;
- padding-right: 4px; }
- #jsxc_roster > .jsxc_bottom:hover {
- background-color: #ddd; }
- #jsxc_roster > .jsxc_bottom .jsxc_inner {
- width: 100%; }
- #jsxc_roster > .jsxc_bottom ul {
- padding: 0;
- margin: 0;
- width: 100%;
- border-top: 1px solid transparent;
- background-color: #eeeeee;
- margin: 0; }
- #jsxc_roster > .jsxc_bottom ul li:last-child {
- border-bottom: 1px solid transparent; }
- #jsxc_roster > .jsxc_bottom li {
- height: 44px;
- background-color: #eeeeee;
- color: #000;
- cursor: pointer;
- width: 100%;
- padding-left: 44px;
- line-height: 44px;
- text-align: left;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- background-repeat: no-repeat;
- background-position: 15px center;
- background-size: 16px 16px;
- opacity: 0.8; }
- #jsxc_roster > .jsxc_bottom li.jsxc_disabled {
- color: #333333;
- cursor: default; }
- #jsxc_roster > .jsxc_bottom li:hover:not(.jsxc_disabled) {
- color: #000;
- background-color: #ddd; }
-
-#jsxc_roster > .jsxc_bottom > div > span {
- cursor: pointer; }
-
-#jsxc_roster > .jsxc_bottom > div:hover {
- /*color: $roster_bottom_color_hover;*/ }
-
#jsxc_avatar {
cursor: default !important; }
@@ -3134,7 +3105,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_presence li {
position: relative; }
#jsxc_presence li:before {
- /** Presence indicator */
position: absolute;
top: 50%;
left: 10px;
@@ -3224,8 +3194,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_windowList > ul > li.jsxc_min {
-webkit-transition: width 0.2s;
transition: width 0.2s;
- width: 46px !important;
- /* overwrite resizeable width */ }
+ width: 46px !important; }
@media (min-width: 768px) {
#jsxc_windowList > ul > li.jsxc_min {
width: 200px !important; } }
@@ -3311,7 +3280,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
left: 0;
cursor: pointer; }
.jsxc_window .jsxc_emoticons:after {
- content: ' ';
+ content: " ";
background-image: url('../js/jsxc/img/smiley.svg');
background-position: center center;
background-repeat: no-repeat;
@@ -3334,7 +3303,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding: 3px;
position: relative; }
.jsxc_window .jsxc_emoticons ul:after {
- content: '';
+ content: " ";
position: absolute;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
@@ -3381,7 +3350,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
height: 44px;
width: 44px; }
.jsxc_window .jsxc_fade .jsxc_overlay > div .jsxc_close:after {
- content: '×';
+ content: "×";
position: absolute;
top: 4px;
right: 4px;
@@ -3413,30 +3382,33 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
overflow: hidden;
padding: 3px; }
.jsxc_window .slimScrollDiv {
- margin: 0 0 6px 0;
+ margin: 0 0 6px;
left: auto !important;
top: auto !important; }
- .jsxc_window input.jsxc_textinput {
+ .jsxc_window textarea.jsxc_textinput {
width: 100%;
height: 44px;
margin: 0;
- padding: 3px;
- padding-left: 40px;
- padding-right: 40px;
+ padding: 14px 40px 12px;
outline: none;
border-radius: 0;
box-sizing: border-box;
- border: 0; }
- .jsxc_window input::-webkit-input-placeholder {
+ border: 0;
+ display: block;
+ resize: none;
+ -webkit-transition: height 0.5s;
+ transition: height 0.5s;
+ font-size: 13px; }
+ .jsxc_window textarea::-webkit-input-placeholder {
color: #000;
opacity: 0.3; }
- .jsxc_window input::-moz-placeholder {
+ .jsxc_window textarea::-moz-placeholder {
color: #000;
opacity: 0.3; }
- .jsxc_window input:-ms-input-placeholder {
+ .jsxc_window textarea:-ms-input-placeholder {
color: #000;
opacity: 0.3; }
- .jsxc_window input::placeholder {
+ .jsxc_window textarea::placeholder {
color: #000;
opacity: 0.3; }
.jsxc_window .jsxc_tools {
@@ -3456,12 +3428,12 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
cursor: pointer;
text-align: center; }
.jsxc_window .jsxc_tools > div.jsxc_settings {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_window .jsxc_close {
font-size: 20px; }
.jsxc_window .jsxc_close:hover {
color: #fff;
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_window .jsxc_more {
background-image: url('../js/jsxc/img/more_white.svg');
opacity: 0.4; }
@@ -3490,10 +3462,40 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
position: relative;
outline: none;
clear: both; }
+ .jsxc_chatmessage.jsxc_error {
+ opacity: 0.7; }
+ .jsxc_chatmessage.jsxc_error:before {
+ content: " ";
+ position: absolute;
+ top: 3px;
+ right: 3px;
+ width: 8px;
+ height: 8px;
+ background-color: yellow; }
.jsxc_chatmessage a {
color: #00f;
text-decoration: underline;
- display: inline-block; }
+ display: inline-block;
+ max-width: 100%;
+ position: relative; }
+ .jsxc_chatmessage a[download]:before {
+ content: " ";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 5px;
+ left: 0;
+ border-radius: 3px;
+ background-color: rgba(255, 255, 255, 0.7);
+ background-image: url("../img/download_icon_black.svg");
+ background-size: contain;
+ background-position: center center;
+ background-repeat: no-repeat;
+ opacity: 0;
+ -webkit-transition: opacity 0.5s;
+ transition: opacity 0.5s; }
+ .jsxc_chatmessage a[download]:hover:before {
+ opacity: 0.6; }
.jsxc_chatmessage img {
max-width: 100%; }
.jsxc_chatmessage .jsxc_avatar {
@@ -3512,9 +3514,10 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.jsxc_chatmessage .jsxc_attachment img {
border-radius: 3px; }
.jsxc_chatmessage .jsxc_attachment.jsxc_image {
- line-height: 0px;
+ line-height: 0;
padding: 0;
- background-image: url(); }
+ background-image: url("");
+ display: inline-block; }
.jsxc_chatmessage .jsxc_attachment.jsxc_application {
background-image: url('../js/jsxc/img/filetypes/application.svg'); }
.jsxc_chatmessage .jsxc_attachment.jsxc_application-pdf {
@@ -3522,7 +3525,8 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.jsxc_chatmessage .jsxc_attachment.jsxc_audio {
background-image: url('../js/jsxc/img/filetypes/audio.svg'); }
.jsxc_chatmessage .jsxc_attachment.jsxc_video {
- background-image: url('../js/jsxc/img/filetypes/video.svg'); }
+ background-image: url('../js/jsxc/img/filetypes/video.svg');
+ opacity: 1; }
.jsxc_chatmessage .jsxc_attachment.jsxc_text {
background-image: url('../js/jsxc/img/filetypes/text.svg'); }
@@ -3557,7 +3561,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
border-radius: 3px;
background-color: #DBEDFF; }
.jsxc_in:after {
- content: ' ';
+ content: " ";
position: absolute;
border-style: solid;
border-width: 5px 6px 5px 0;
@@ -3579,7 +3583,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
border-radius: 3px;
background-color: #e6ffd1; }
.jsxc_out:after {
- content: ' ';
+ content: " ";
position: absolute;
border-style: solid;
border-width: 5px 0 5px 6px;
@@ -3590,7 +3594,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
right: -6px;
bottom: 10px; }
.jsxc_out.jsxc_received:before {
- content: '✓';
+ content: "✓";
position: absolute;
bottom: 2px;
right: 2px;
@@ -3608,7 +3612,34 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-right: 4px;
box-sizing: border-box;
margin-right: 3px;
- border-radius: 3px; }
+ border-radius: 3px;
+ background-color: transparent;
+ font-size: 0.8em;
+ font-style: italic; }
+ .jsxc_sys .jsxc_emoticon {
+ width: 1.2em;
+ height: 1.2em;
+ vertical-align: middle; }
+ .jsxc_sys.jsxc_composing {
+ text-align: center;
+ font-size: 0.9em;
+ font-style: italic;
+ display: block;
+ opacity: 0;
+ overflow: hidden;
+ -webkit-transition: opacity 0.6s;
+ transition: opacity 0.6s; }
+ .jsxc_sys.jsxc_composing:before {
+ content: " ";
+ width: 1.5em;
+ height: 1em;
+ display: inline-block;
+ background-size: 80%;
+ background-repeat: no-repeat;
+ margin: 0 3px 0 0;
+ background-image: url('../js/jsxc/img/composing.png'); }
+ .jsxc_sys.jsxc_composing.jsxc_fadein {
+ opacity: 1; }
div.jsxc_settings {
position: relative; }
@@ -3630,22 +3661,22 @@ div.jsxc_transfer {
right: 0;
cursor: pointer; }
div.jsxc_transfer:hover {
- opacity: 1.0; }
+ opacity: 1; }
div.jsxc_transfer.jsxc_disabled {
background-image: url('../js/jsxc/img/padlock_open_disabled_black.svg');
cursor: default; }
div.jsxc_transfer.jsxc_disabled:hover {
opacity: 0.3; }
div.jsxc_transfer.jsxc_fin {
- opacity: 1.0;
+ opacity: 1;
background-image: url('../js/jsxc/img/padlock_close_grey.svg'); }
div.jsxc_transfer.jsxc_enc {
- opacity: 1.0;
+ opacity: 1;
background-image: url('../js/jsxc/img/padlock_close_orange.svg'); }
div.jsxc_transfer.jsxc_enc.jsxc_trust {
background-image: url('../js/jsxc/img/padlock_close_green.svg'); }
-.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_bar .jsxc_avatar, li[data-type="groupchat"] .jsxc_avatar {
+.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_bar .jsxc_avatar, li[data-type='groupchat'] .jsxc_avatar {
text-indent: 999px;
background-image: url('../js/jsxc/img/group_white.svg');
background-size: 70% 70% !important;
@@ -3663,14 +3694,14 @@ div.jsxc_transfer {
background-repeat: no-repeat;
background-position: center; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_members:hover {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_chatmessage.jsxc_in {
margin-left: 50px; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_chatmessage.jsxc_in .jsxc_avatar {
display: block;
position: absolute;
- bottom: 0px;
+ bottom: 0;
left: -50px;
background-color: #777; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_chatmessage.jsxc_in .jsxc_avatar:before {
@@ -3682,7 +3713,7 @@ div.jsxc_transfer {
background-color: #1d2d44;
overflow: hidden;
position: absolute;
- top: 0px;
+ top: 0;
-webkit-transition: height 400ms;
transition: height 400ms;
z-index: 100; }
@@ -3694,7 +3725,7 @@ div.jsxc_transfer {
overflow: hidden;
-webkit-transition: left 400ms;
transition: left 400ms;
- padding: 0px;
+ padding: 0;
padding-left: 6px;
padding-right: 6px;
padding-top: 3px; }
@@ -3707,7 +3738,7 @@ div.jsxc_transfer {
display: none; }
.jsxc_windowItem .jsxc_memberlist ul > li .jsxc_avatar {
margin-left: 2px;
- margin-right: 0px; }
+ margin-right: 0; }
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul {
white-space: normal; }
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul > li {
@@ -3723,7 +3754,7 @@ div.jsxc_transfer {
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul > li .jsxc_avatar {
margin-right: 4px; }
-li[data-type="groupchat"] .jsxc_video {
+li[data-type='groupchat'] .jsxc_video {
display: none; }
.jsxc_right {
@@ -3753,6 +3784,10 @@ li[data-type="groupchat"] .jsxc_video {
.jsxc_maxWidth {
max-width: 500px; }
+.jsxc_meta {
+ text-align: right;
+ font-style: italic; }
+
#jsxc_dialog {
padding: 20px;
min-width: 320px;
@@ -3761,8 +3796,7 @@ li[data-type="groupchat"] .jsxc_video {
text-align: left;
position: relative;
background: #FFF;
- width: auto;
- border-radius: 5px; }
+ width: auto; }
#jsxc_dialog * {
box-sizing: border-box; }
#jsxc_dialog ul {
@@ -3778,8 +3812,10 @@ li[data-type="groupchat"] .jsxc_video {
margin-bottom: 5px;
width: 60%;
outline: none; }
- #jsxc_dialog p input[type="submit"] {
+ #jsxc_dialog p input[type='submit'] {
width: auto; }
+ #jsxc_dialog table {
+ margin-bottom: 1em; }
#jsxc_dialog hr {
border: 0;
border-top: 1px solid #eee;
@@ -3792,20 +3828,16 @@ li[data-type="groupchat"] .jsxc_video {
margin-top: 20px; }
#jsxc_dialog .jsxc_right {
margin-top: 20px; }
- #jsxc_dialog form {
- /*&.col-sm-6:nth-child(odd) {
- clear: left;
- }*/ }
- #jsxc_dialog form fieldset {
- margin-bottom: 30px;
- padding: 0px 30px;
- border: 1px solid #d9d9d9; }
- #jsxc_dialog form fieldset h3 {
- font-size: 15px;
- color: #000;
- background-color: #f2f2f2;
- padding: 10px;
- margin: 0 -30px 10px -30px; }
+ #jsxc_dialog form fieldset {
+ margin-bottom: 30px;
+ padding: 0 30px;
+ border: 1px solid #d9d9d9; }
+ #jsxc_dialog form fieldset h3 {
+ font-size: 15px;
+ color: #000;
+ background-color: #f2f2f2;
+ padding: 10px;
+ margin: 0 -30px 10px; }
#jsxc_dialog legend {
border: 0;
font-size: 20px; }
@@ -3818,9 +3850,9 @@ li[data-type="groupchat"] .jsxc_video {
#jsxc_dialog input[readonly] {
background-color: #e6e6e6; }
#jsxc_dialog .jsxc_inputinfo {
- padding-left: 30%;
+ padding: 0;
font-style: italic;
- margin-top: -1em; }
+ margin: 0; }
#jsxc_dialog .jsxc_waiting:before {
content: " ";
width: 1em;
@@ -3831,12 +3863,17 @@ li[data-type="groupchat"] .jsxc_video {
background-image: url('../js/jsxc/img/loading.gif'); }
#jsxc_dialog .jsxc_libraries, #jsxc_dialog .jsxc_credits {
max-width: 300px; }
+ #jsxc_dialog .jsxc_warning {
+ display: block;
+ background-color: #fbfe7a;
+ padding: 3px 10px;
+ border-radius: 3px; }
.jsxc_avatar {
width: 36px;
height: 36px;
line-height: 36px;
- margin: 0px 5px;
+ margin: 0 5px;
background-color: #999999;
border-radius: 50%;
float: left;
@@ -3868,7 +3905,6 @@ ul.jsxc_vCard {
ul.jsxc_vCard li {
cursor: default !important; }
-/** Spot which is attached to xmpp: uris */
.jsxc_spot {
display: inline-block;
width: 12px;
@@ -3904,7 +3940,6 @@ ul.jsxc_vCard {
margin-right: 3px;
margin-top: 4px; }
-/** TODO: check if required */
.jsxc_list .jsxc_inner {
box-sizing: border-box;
max-height: 0;
@@ -3932,8 +3967,7 @@ ul.jsxc_vCard {
background-size: 32px 32px !important;
background: url('../js/jsxc/img/loading.gif'); }
-/* @TODO: check */
-#jsxc_loginForm input[type="submit"] {
+#jsxc_loginForm input[type='submit'] {
height: 34px;
display: inline-block;
padding: 6px 12px;
@@ -3981,7 +4015,7 @@ img.jsxc_vCard {
min-width: 25px;
display: inline-block;
padding: 6px 12px;
- margin: 0px 2px;
+ margin: 0 2px;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
@@ -3995,15 +4029,21 @@ img.jsxc_vCard {
user-select: none;
background-image: none;
border: 1px solid transparent;
- border-radius: 4px; }
+ border-radius: 4px;
+ -webkit-transition: background-color 0.5s;
+ transition: background-color 0.5s; }
.jsxc_btn.jsxc_btn-default {
border-color: #ccc;
color: #555;
background-color: rgba(240, 240, 240, 0.9); }
+ .jsxc_btn.jsxc_btn-default:hover {
+ background-color: #d6d6d6; }
.jsxc_btn.jsxc_btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4; }
+ .jsxc_btn.jsxc_btn-primary:hover {
+ background-color: #296496; }
.jsxc_btn[disabled], .jsxc_btn[disabled]:hover {
opacity: 0.65;
cursor: not-allowed;
@@ -4016,12 +4056,12 @@ img.jsxc_vCard {
position: absolute;
background-color: #FFF;
color: #333;
- border-radius: 3px 3px 3px 3px;
+ border-radius: 3px;
z-index: 110;
margin: 8px 2px 5px 10px;
- right: 0px;
- -webkit-filter: drop-shadow(0px 0px 5px rgba(150, 150, 150, 0.75));
- filter: drop-shadow(0px 0px 5px rgba(150, 150, 150, 0.75));
+ right: 0;
+ -webkit-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
+ filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
padding: 4px 12px;
padding-left: 5px; }
.jsxc_menu:after {
@@ -4051,7 +4091,7 @@ img.jsxc_vCard {
white-space: nowrap; }
.jsxc_menu a:hover {
text-decoration: none;
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_menu a.jsxc_disabled {
text-decoration: line-through;
opacity: 0.5; }
@@ -4100,6 +4140,9 @@ img.jsxc_vCard {
.jsxc_bookmarkicon {
background-image: url('../js/jsxc/img/bookmark_black.svg'); }
+.jsxc_announcementicon {
+ background-image: url('../js/jsxc/img/megaphone_icon_black.svg'); }
+
.jsxc_more {
float: right;
width: 44px;
@@ -4110,7 +4153,7 @@ img.jsxc_vCard {
background-position: center;
opacity: 0.4; }
.jsxc_more:hover {
- opacity: 1.0; }
+ opacity: 1; }
@media (min-width: 768px) {
.jsxc_more {
width: 25px; } }
@@ -4151,13 +4194,207 @@ img.jsxc_vCard {
#jsxc_webrtc li .jsxc_name:hover {
color: #bbb; }
+.jsxc_establishing:after, .jsxc_ringing:after {
+ content: " ";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.4);
+ z-index: 10; }
+
+.jsxc_establishing:before {
+ content: " ";
+ display: block;
+ width: 40px;
+ height: 10px;
+ box-sizing: border-box;
+ background-color: #a1a1a1;
+ -webkit-animation-name: jsxc_establishing;
+ animation-name: jsxc_establishing;
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 20;
+ margin-left: -20px;
+ margin-top: -5px; }
+
+@-webkit-keyframes jsxc_establishing {
+ 0% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; }
+ 50% {
+ background-color: #f1f1f1;
+ width: 80px;
+ margin-left: -40px; }
+ 100% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; } }
+
+@keyframes jsxc_establishing {
+ 0% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; }
+ 50% {
+ background-color: #f1f1f1;
+ width: 80px;
+ margin-left: -40px; }
+ 100% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; } }
+
+.jsxc_ringing:before {
+ content: " ";
+ display: block;
+ width: 20px;
+ height: 20px;
+ box-sizing: border-box;
+ background-color: #98d48f;
+ border-radius: 50%;
+ -webkit-animation-name: jsxc_ringing;
+ animation-name: jsxc_ringing;
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 20;
+ margin-left: -10px;
+ margin-top: -10px; }
+
+@-webkit-keyframes jsxc_ringing {
+ 0% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; }
+ 50% {
+ background-color: #76ba6c;
+ width: 80px;
+ height: 80px;
+ margin-left: -40px;
+ margin-top: -40px; }
+ 100% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; } }
+
+@keyframes jsxc_ringing {
+ 0% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; }
+ 50% {
+ background-color: #76ba6c;
+ width: 80px;
+ height: 80px;
+ margin-left: -40px;
+ margin-top: -40px; }
+ 100% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; } }
+
+.jsxc_bell:before {
+ content: " ";
+ display: block;
+ width: 80px;
+ height: 80px;
+ box-sizing: border-box;
+ background-image: url('../js/jsxc/img/bell.svg');
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-animation-name: jsxc_ringing;
+ animation-name: jsxc_ringing;
+ -webkit-animation-duration: 1.5s;
+ animation-duration: 1.5s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 20;
+ margin-left: -40px;
+ margin-top: -40px; }
+
+@-webkit-keyframes jsxc_bell {
+ 0% {
+ margin-left: -50px; }
+ 5% {
+ margin-left: -30px; }
+ 10% {
+ margin-left: -50px; }
+ 15% {
+ margin-left: -30px; }
+ 20% {
+ margin-left: -50px; }
+ 25% {
+ margin-left: -30px; }
+ 30% {
+ margin-left: -50px; }
+ 35% {
+ margin-left: -40px; } }
+
+@keyframes jsxc_bell {
+ 0% {
+ margin-left: -50px; }
+ 5% {
+ margin-left: -30px; }
+ 10% {
+ margin-left: -50px; }
+ 15% {
+ margin-left: -30px; }
+ 20% {
+ margin-left: -50px; }
+ 25% {
+ margin-left: -30px; }
+ 30% {
+ margin-left: -50px; }
+ 35% {
+ margin-left: -40px; } }
+
.jsxc_videoContainer {
position: absolute;
top: 0;
left: 0;
- right: 0px;
- bottom: 0px;
+ right: 0;
+ bottom: 0;
background-color: #999999; }
+ .jsxc_videoContainer.jsxc_minimized {
+ position: fixed;
+ top: 10px;
+ left: 10px;
+ right: auto;
+ bottom: auto;
+ z-index: 99;
+ background-color: transparent;
+ box-shadow: 0 0 10px #a1a1a1; }
+ .jsxc_videoContainer.jsxc_minimized .jsxc_localvideo {
+ position: static;
+ display: block; }
.jsxc_videoContainer video {
display: none; }
.jsxc_videoContainer .jsxc_noRemoteVideo {
@@ -4168,7 +4405,7 @@ img.jsxc_vCard {
.jsxc_videoContainer .jsxc_controlbar {
opacity: 0; }
.jsxc_videoContainer:hover .jsxc_controlbar {
- opacity: 1.0; } }
+ opacity: 1; } }
.jsxc_noRemoteVideo p {
position: absolute;
@@ -4213,7 +4450,7 @@ img.jsxc_vCard {
bottom: 10px;
z-index: 9990;
background-color: #000;
- cursor: pointer; }
+ cursor: move; }
div:full-screen {
width: 100%;
@@ -4259,13 +4496,13 @@ div.jsxc_video {
div.jsxc_video.jsxc_disabled {
background-image: url('../js/jsxc/img/camera_disabled_icon_white.svg'); }
div.jsxc_video:not(.jsxc_disabled):hover {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_controlbar {
position: absolute;
top: 50px;
left: 0;
- right: 0px;
+ right: 0;
text-align: center;
z-index: 9090;
-webkit-transition: 1s opacity;
@@ -4276,12 +4513,12 @@ div.jsxc_video {
bottom: 5%;
top: initial; } }
.jsxc_controlbar.jsxc_visible {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_controlbar > div {
background-color: rgba(0, 0, 0, 0.5);
height: 44px;
border-radius: 22px;
- padding: 0px 5px;
+ padding: 0 5px;
display: inline-block; }
.jsxc_controlbar .jsxc_videoControl {
height: 44px;
@@ -4294,7 +4531,7 @@ div.jsxc_video {
display: inline-block;
opacity: 0.8; }
.jsxc_controlbar .jsxc_videoControl:hover {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_controlbar .jsxc_hangUp {
background-image: url('../js/jsxc/img/hang_up_red.svg'); }
.jsxc_controlbar .jsxc_fullscreen {
@@ -4348,65 +4585,6 @@ div.jsxc_video {
list-style: none;
padding: 0; }
-.bubblingG {
- text-align: center;
- width: 129px;
- height: 80px;
- position: absolute;
- top: 40%;
- left: 50%;
- margin-left: -64px; }
- .bubblingG span {
- display: inline-block;
- vertical-align: middle;
- width: 16px;
- height: 16px;
- margin: 40px auto;
- background: #000;
- border-radius: 81px;
- -webkit-animation: bubblingG 1.3s infinite alternate;
- animation: bubblingG 1.3s infinite alternate; }
-
-#bubblingG_1 {
- -webkit-animation-delay: 0s;
- animation-delay: 0s; }
-
-#bubblingG_2 {
- -webkit-animation-delay: 0.39s;
- animation-delay: 0.39s; }
-
-#bubblingG_3 {
- -webkit-animation-delay: 0.78s;
- animation-delay: 0.78s; }
-
-@-webkit-keyframes bubblingG {
- 0% {
- width: 16px;
- height: 16px;
- background-color: #000;
- -webkit-transform: translateY(0);
- transform: translateY(0); }
- 100% {
- width: 39px;
- height: 39px;
- background-color: #fff;
- -webkit-transform: translateY(-34px);
- transform: translateY(-34px); } }
-
-@keyframes bubblingG {
- 0% {
- width: 16px;
- height: 16px;
- background-color: #000;
- -webkit-transform: translateY(0);
- transform: translateY(0); }
- 100% {
- width: 39px;
- height: 39px;
- background-color: #fff;
- -webkit-transform: translateY(-34px);
- transform: translateY(-34px); } }
-
.jsxc_fullscreen.jsxc_localvideo {
border: 1px solid #fff; }
@@ -4423,7 +4601,7 @@ div.jsxc_video {
#jsxc {
padding: 20px; }
#jsxc h1 {
- margin: 15px 0px 5px 0px;
+ margin: 15px 0 5px;
font-size: 1.5em; }
#jsxc a {
color: blue;
@@ -4448,6 +4626,10 @@ div.jsxc_video {
#ojsxc .form-offset-label {
padding-left: 280px; } }
+@media (min-width: 768px) {
+ #ojsxc h3 {
+ margin-left: 285px; } }
+
#ojsxc label {
box-sizing: border-box;
padding-right: 15px;
@@ -4469,12 +4651,10 @@ div.jsxc_video {
@media (min-width: 768px) {
#ojsxc input {
width: auto; } }
-
-#ojsxc input + label {
- width: auto; }
-
-#ojsxc input + label + em {
- padding-left: 20px; }
+ #ojsxc input + label {
+ width: auto; }
+ #ojsxc input + label + em {
+ padding-left: 20px; }
#ojsxc em, #ojsxc .boshUrl-msg {
display: block; }
@@ -4496,11 +4676,11 @@ div.jsxc_video {
.jsxc_success {
background-color: #A1F6BB;
background-image: url("../img/pass-icon.png");
- color: #003300;
- border-color: #003300; }
+ color: #030;
+ border-color: #030; }
.jsxc_fail {
- background-color: #FF9999;
+ background-color: #F99;
background-image: url("../img/fail-icon.png");
color: #800000;
border-color: #800000; }
@@ -4509,8 +4689,8 @@ div.jsxc_video {
width: 500px; }
#mainContainer, #odf-toolbar {
- right: 0px;
- left: 0px;
+ right: 0;
+ left: 0;
width: auto !important;
z-index: 70 !important; }
diff --git a/build/js/admin.js b/build/js/admin.js
index cca6adb..d9c8fa1 100644
--- a/build/js/admin.js
+++ b/build/js/admin.js
@@ -1,13 +1,13 @@
/*!
- * ojsxc v3.0.2+appstore - 2016-12-27
+ * ojsxc v3.1.0-beta - 2017-01-23
*
- * Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.0.2+appstore
+ * @version 3.1.0-beta
* @license MIT
*/
diff --git a/build/js/eof.js b/build/js/eof.js
index 31590ea..9e624c2 100644
--- a/build/js/eof.js
+++ b/build/js/eof.js
@@ -1,13 +1,13 @@
/*!
- * ojsxc v3.0.2+appstore - 2016-12-27
+ * ojsxc v3.1.0-beta - 2017-01-23
*
- * Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.0.2+appstore
+ * @version 3.1.0-beta
* @license MIT
*/
diff --git a/build/js/jsxc/css/jsxc.css b/build/js/jsxc/css/jsxc.css
index 194b90d..f8619ee 100644
--- a/build/js/jsxc/css/jsxc.css
+++ b/build/js/jsxc/css/jsxc.css
@@ -206,8 +206,7 @@
overflow: hidden;
position: fixed;
background: #0b0b0b;
- opacity: 0.8;
- filter: alpha(opacity=80); }
+ opacity: 0.8; }
.mfp-wrap {
top: 0;
@@ -300,8 +299,7 @@
.mfp-s-error .mfp-content {
display: none; }
-button.mfp-close,
-button.mfp-arrow {
+button.mfp-close, button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
@@ -311,7 +309,9 @@ button.mfp-arrow {
outline: none;
padding: 0;
z-index: 1046;
- box-shadow: none; }
+ box-shadow: none;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation; }
button::-moz-focus-inner {
padding: 0;
@@ -327,16 +327,13 @@ button::-moz-focus-inner {
text-decoration: none;
text-align: center;
opacity: 0.65;
- filter: alpha(opacity=65);
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
- .mfp-close:hover,
- .mfp-close:focus {
- opacity: 1;
- filter: alpha(opacity=100); }
+ .mfp-close:hover, .mfp-close:focus {
+ opacity: 1; }
.mfp-close:active {
top: 1px; }
@@ -363,7 +360,6 @@ button::-moz-focus-inner {
.mfp-arrow {
position: absolute;
opacity: 0.65;
- filter: alpha(opacity=65);
margin: 0;
top: 50%;
margin-top: -55px;
@@ -373,14 +369,9 @@ button::-moz-focus-inner {
-webkit-tap-highlight-color: transparent; }
.mfp-arrow:active {
margin-top: -54px; }
- .mfp-arrow:hover,
- .mfp-arrow:focus {
- opacity: 1;
- filter: alpha(opacity=100); }
- .mfp-arrow:before,
- .mfp-arrow:after,
- .mfp-arrow .mfp-b,
- .mfp-arrow .mfp-a {
+ .mfp-arrow:hover, .mfp-arrow:focus {
+ opacity: 1; }
+ .mfp-arrow:before, .mfp-arrow:after {
content: '';
display: block;
width: 0;
@@ -391,36 +382,30 @@ button::-moz-focus-inner {
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
- .mfp-arrow:after,
- .mfp-arrow .mfp-a {
+ .mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
- .mfp-arrow:before,
- .mfp-arrow .mfp-b {
+ .mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
- .mfp-arrow-left:after,
- .mfp-arrow-left .mfp-a {
+ .mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
- .mfp-arrow-left:before,
- .mfp-arrow-left .mfp-b {
+ .mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
- .mfp-arrow-right:after,
- .mfp-arrow-right .mfp-a {
+ .mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
- .mfp-arrow-right:before,
- .mfp-arrow-right .mfp-b {
+ .mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
@@ -557,27 +542,6 @@ img.mfp-img {
padding-left: 6px;
padding-right: 6px; } }
-.mfp-ie7 .mfp-img {
- padding: 0; }
-
-.mfp-ie7 .mfp-bottom-bar {
- width: 600px;
- left: 50%;
- margin-left: -300px;
- margin-top: 5px;
- padding-bottom: 5px; }
-
-.mfp-ie7 .mfp-container {
- padding: 0; }
-
-.mfp-ie7 .mfp-content {
- padding-top: 44px; }
-
-.mfp-ie7 .mfp-close {
- top: 0;
- right: 0;
- padding-top: 0; }
-
.emojione {
/* Emoji Sizing */
font-size: inherit;
@@ -587,7 +551,7 @@ img.mfp-img {
min-width: 20px;
/* Inline alignment adjust the margins */
display: inline-block;
- margin: -0.2ex 0.15em 0.2ex;
+ margin: -.2ex .15em .2ex;
line-height: normal;
vertical-align: middle; }
@@ -595,7 +559,6 @@ img.emojione {
/* prevent img stretch */
width: auto; }
-/* BEGIN: bootstrap */
@keyframes progress-bar-stripes {
from {
background-position: 40px 0; }
@@ -670,9 +633,7 @@ img.emojione {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
-#jsxc_dialog .clearfix:before,
-#jsxc_dialog .clearfix:after, #jsxc_webrtc .clearfix:before,
-#jsxc_webrtc .clearfix:after {
+#jsxc_dialog .clearfix:before, #jsxc_dialog .clearfix:after, #jsxc_webrtc .clearfix:before, #jsxc_webrtc .clearfix:after {
content: " ";
display: table; }
@@ -770,9 +731,7 @@ img.emojione {
margin-left: auto;
padding-left: 15px;
padding-right: 15px; }
- #jsxc_dialog .container:before,
- #jsxc_dialog .container:after, #jsxc_webrtc .container:before,
- #jsxc_webrtc .container:after {
+ #jsxc_dialog .container:before, #jsxc_dialog .container:after, #jsxc_webrtc .container:before, #jsxc_webrtc .container:after {
content: " ";
display: table; }
#jsxc_dialog .container:after, #jsxc_webrtc .container:after {
@@ -792,9 +751,7 @@ img.emojione {
margin-left: auto;
padding-left: 15px;
padding-right: 15px; }
- #jsxc_dialog .container-fluid:before,
- #jsxc_dialog .container-fluid:after, #jsxc_webrtc .container-fluid:before,
- #jsxc_webrtc .container-fluid:after {
+ #jsxc_dialog .container-fluid:before, #jsxc_dialog .container-fluid:after, #jsxc_webrtc .container-fluid:before, #jsxc_webrtc .container-fluid:after {
content: " ";
display: table; }
#jsxc_dialog .container-fluid:after, #jsxc_webrtc .container-fluid:after {
@@ -803,9 +760,7 @@ img.emojione {
#jsxc_dialog .row, #jsxc_webrtc .row {
margin-left: -15px;
margin-right: -15px; }
- #jsxc_dialog .row:before,
- #jsxc_dialog .row:after, #jsxc_webrtc .row:before,
- #jsxc_webrtc .row:after {
+ #jsxc_dialog .row:before, #jsxc_dialog .row:after, #jsxc_webrtc .row:before, #jsxc_webrtc .row:after {
content: " ";
display: table; }
#jsxc_dialog .row:after, #jsxc_webrtc .row:after {
@@ -1308,9 +1263,13 @@ img.emojione {
#jsxc_dialog .alert > p + p, #jsxc_webrtc .alert > p + p {
margin-top: 5px; }
-#jsxc_dialog .alert-dismissable, #jsxc_dialog .alert-dismissible, #jsxc_webrtc .alert-dismissable, #jsxc_webrtc .alert-dismissible {
+#jsxc_dialog .alert-dismissable,
+#jsxc_dialog .alert-dismissible, #jsxc_webrtc .alert-dismissable,
+#jsxc_webrtc .alert-dismissible {
padding-right: 35px; }
- #jsxc_dialog .alert-dismissable .close, #jsxc_dialog .alert-dismissible .close, #jsxc_webrtc .alert-dismissable .close, #jsxc_webrtc .alert-dismissible .close {
+ #jsxc_dialog .alert-dismissable .close,
+ #jsxc_dialog .alert-dismissible .close, #jsxc_webrtc .alert-dismissable .close,
+ #jsxc_webrtc .alert-dismissible .close {
position: relative;
top: -2px;
right: -21px;
@@ -1372,37 +1331,19 @@ img.emojione {
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- #jsxc_dialog .btn:focus,
- #jsxc_dialog .btn.focus,
- #jsxc_dialog .btn:active:focus,
- #jsxc_dialog .btn:active.focus,
- #jsxc_dialog .btn.active:focus,
- #jsxc_dialog .btn.active.focus, #jsxc_webrtc .btn:focus,
- #jsxc_webrtc .btn.focus,
- #jsxc_webrtc .btn:active:focus,
- #jsxc_webrtc .btn:active.focus,
- #jsxc_webrtc .btn.active:focus,
- #jsxc_webrtc .btn.active.focus {
+ #jsxc_dialog .btn:focus, #jsxc_dialog .btn.focus, #jsxc_dialog .btn:active:focus, #jsxc_dialog .btn:active.focus, #jsxc_dialog .btn.active:focus, #jsxc_dialog .btn.active.focus, #jsxc_webrtc .btn:focus, #jsxc_webrtc .btn.focus, #jsxc_webrtc .btn:active:focus, #jsxc_webrtc .btn:active.focus, #jsxc_webrtc .btn.active:focus, #jsxc_webrtc .btn.active.focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px; }
- #jsxc_dialog .btn:hover,
- #jsxc_dialog .btn:focus,
- #jsxc_dialog .btn.focus, #jsxc_webrtc .btn:hover,
- #jsxc_webrtc .btn:focus,
- #jsxc_webrtc .btn.focus {
+ #jsxc_dialog .btn:hover, #jsxc_dialog .btn:focus, #jsxc_dialog .btn.focus, #jsxc_webrtc .btn:hover, #jsxc_webrtc .btn:focus, #jsxc_webrtc .btn.focus {
color: #333;
text-decoration: none; }
- #jsxc_dialog .btn:active,
- #jsxc_dialog .btn.active, #jsxc_webrtc .btn:active,
- #jsxc_webrtc .btn.active {
+ #jsxc_dialog .btn:active, #jsxc_dialog .btn.active, #jsxc_webrtc .btn:active, #jsxc_webrtc .btn.active {
outline: 0;
background-image: none;
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
- #jsxc_dialog .btn.disabled,
- #jsxc_dialog .btn[disabled],
- fieldset[disabled] #jsxc_dialog .btn, #jsxc_webrtc .btn.disabled,
- #jsxc_webrtc .btn[disabled],
+ #jsxc_dialog .btn.disabled, #jsxc_dialog .btn[disabled],
+ fieldset[disabled] #jsxc_dialog .btn, #jsxc_webrtc .btn.disabled, #jsxc_webrtc .btn[disabled],
fieldset[disabled] #jsxc_webrtc .btn {
cursor: not-allowed;
pointer-events: none;
@@ -1414,55 +1355,23 @@ img.emojione {
color: #333;
background-color: #fff;
border-color: #ccc; }
- #jsxc_dialog .btn-default:hover,
- #jsxc_dialog .btn-default:focus,
- #jsxc_dialog .btn-default.focus,
- #jsxc_dialog .btn-default:active,
- #jsxc_dialog .btn-default.active,
- .open > #jsxc_dialog .btn-default.dropdown-toggle, #jsxc_webrtc .btn-default:hover,
- #jsxc_webrtc .btn-default:focus,
- #jsxc_webrtc .btn-default.focus,
- #jsxc_webrtc .btn-default:active,
- #jsxc_webrtc .btn-default.active,
+ #jsxc_dialog .btn-default:hover, #jsxc_dialog .btn-default:focus, #jsxc_dialog .btn-default.focus, #jsxc_dialog .btn-default:active, #jsxc_dialog .btn-default.active,
+ .open > #jsxc_dialog .btn-default.dropdown-toggle, #jsxc_webrtc .btn-default:hover, #jsxc_webrtc .btn-default:focus, #jsxc_webrtc .btn-default.focus, #jsxc_webrtc .btn-default:active, #jsxc_webrtc .btn-default.active,
.open > #jsxc_webrtc .btn-default.dropdown-toggle {
color: #333;
- background-color: #e6e6e6;
+ background-color: #e6e5e5;
border-color: #adadad; }
- #jsxc_dialog .btn-default:active,
- #jsxc_dialog .btn-default.active,
- .open > #jsxc_dialog .btn-default.dropdown-toggle, #jsxc_webrtc .btn-default:active,
- #jsxc_webrtc .btn-default.active,
+ #jsxc_dialog .btn-default:active, #jsxc_dialog .btn-default.active,
+ .open > #jsxc_dialog .btn-default.dropdown-toggle, #jsxc_webrtc .btn-default:active, #jsxc_webrtc .btn-default.active,
.open > #jsxc_webrtc .btn-default.dropdown-toggle {
background-image: none; }
- #jsxc_dialog .btn-default.disabled,
- #jsxc_dialog .btn-default.disabled:hover,
- #jsxc_dialog .btn-default.disabled:focus,
- #jsxc_dialog .btn-default.disabled.focus,
- #jsxc_dialog .btn-default.disabled:active,
- #jsxc_dialog .btn-default.disabled.active,
- #jsxc_dialog .btn-default[disabled],
- #jsxc_dialog .btn-default[disabled]:hover,
- #jsxc_dialog .btn-default[disabled]:focus,
- #jsxc_dialog .btn-default[disabled].focus,
- #jsxc_dialog .btn-default[disabled]:active,
- #jsxc_dialog .btn-default[disabled].active,
+ #jsxc_dialog .btn-default.disabled, #jsxc_dialog .btn-default.disabled:hover, #jsxc_dialog .btn-default.disabled:focus, #jsxc_dialog .btn-default.disabled.focus, #jsxc_dialog .btn-default.disabled:active, #jsxc_dialog .btn-default.disabled.active, #jsxc_dialog .btn-default[disabled], #jsxc_dialog .btn-default[disabled]:hover, #jsxc_dialog .btn-default[disabled]:focus, #jsxc_dialog .btn-default[disabled].focus, #jsxc_dialog .btn-default[disabled]:active, #jsxc_dialog .btn-default[disabled].active,
fieldset[disabled] #jsxc_dialog .btn-default,
fieldset[disabled] #jsxc_dialog .btn-default:hover,
fieldset[disabled] #jsxc_dialog .btn-default:focus,
fieldset[disabled] #jsxc_dialog .btn-default.focus,
fieldset[disabled] #jsxc_dialog .btn-default:active,
- fieldset[disabled] #jsxc_dialog .btn-default.active, #jsxc_webrtc .btn-default.disabled,
- #jsxc_webrtc .btn-default.disabled:hover,
- #jsxc_webrtc .btn-default.disabled:focus,
- #jsxc_webrtc .btn-default.disabled.focus,
- #jsxc_webrtc .btn-default.disabled:active,
- #jsxc_webrtc .btn-default.disabled.active,
- #jsxc_webrtc .btn-default[disabled],
- #jsxc_webrtc .btn-default[disabled]:hover,
- #jsxc_webrtc .btn-default[disabled]:focus,
- #jsxc_webrtc .btn-default[disabled].focus,
- #jsxc_webrtc .btn-default[disabled]:active,
- #jsxc_webrtc .btn-default[disabled].active,
+ fieldset[disabled] #jsxc_dialog .btn-default.active, #jsxc_webrtc .btn-default.disabled, #jsxc_webrtc .btn-default.disabled:hover, #jsxc_webrtc .btn-default.disabled:focus, #jsxc_webrtc .btn-default.disabled.focus, #jsxc_webrtc .btn-default.disabled:active, #jsxc_webrtc .btn-default.disabled.active, #jsxc_webrtc .btn-default[disabled], #jsxc_webrtc .btn-default[disabled]:hover, #jsxc_webrtc .btn-default[disabled]:focus, #jsxc_webrtc .btn-default[disabled].focus, #jsxc_webrtc .btn-default[disabled]:active, #jsxc_webrtc .btn-default[disabled].active,
fieldset[disabled] #jsxc_webrtc .btn-default,
fieldset[disabled] #jsxc_webrtc .btn-default:hover,
fieldset[disabled] #jsxc_webrtc .btn-default:focus,
@@ -1479,55 +1388,23 @@ img.emojione {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4; }
- #jsxc_dialog .btn-primary:hover,
- #jsxc_dialog .btn-primary:focus,
- #jsxc_dialog .btn-primary.focus,
- #jsxc_dialog .btn-primary:active,
- #jsxc_dialog .btn-primary.active,
- .open > #jsxc_dialog .btn-primary.dropdown-toggle, #jsxc_webrtc .btn-primary:hover,
- #jsxc_webrtc .btn-primary:focus,
- #jsxc_webrtc .btn-primary.focus,
- #jsxc_webrtc .btn-primary:active,
- #jsxc_webrtc .btn-primary.active,
+ #jsxc_dialog .btn-primary:hover, #jsxc_dialog .btn-primary:focus, #jsxc_dialog .btn-primary.focus, #jsxc_dialog .btn-primary:active, #jsxc_dialog .btn-primary.active,
+ .open > #jsxc_dialog .btn-primary.dropdown-toggle, #jsxc_webrtc .btn-primary:hover, #jsxc_webrtc .btn-primary:focus, #jsxc_webrtc .btn-primary.focus, #jsxc_webrtc .btn-primary:active, #jsxc_webrtc .btn-primary.active,
.open > #jsxc_webrtc .btn-primary.dropdown-toggle {
color: #fff;
background-color: #286090;
border-color: #204d74; }
- #jsxc_dialog .btn-primary:active,
- #jsxc_dialog .btn-primary.active,
- .open > #jsxc_dialog .btn-primary.dropdown-toggle, #jsxc_webrtc .btn-primary:active,
- #jsxc_webrtc .btn-primary.active,
+ #jsxc_dialog .btn-primary:active, #jsxc_dialog .btn-primary.active,
+ .open > #jsxc_dialog .btn-primary.dropdown-toggle, #jsxc_webrtc .btn-primary:active, #jsxc_webrtc .btn-primary.active,
.open > #jsxc_webrtc .btn-primary.dropdown-toggle {
background-image: none; }
- #jsxc_dialog .btn-primary.disabled,
- #jsxc_dialog .btn-primary.disabled:hover,
- #jsxc_dialog .btn-primary.disabled:focus,
- #jsxc_dialog .btn-primary.disabled.focus,
- #jsxc_dialog .btn-primary.disabled:active,
- #jsxc_dialog .btn-primary.disabled.active,
- #jsxc_dialog .btn-primary[disabled],
- #jsxc_dialog .btn-primary[disabled]:hover,
- #jsxc_dialog .btn-primary[disabled]:focus,
- #jsxc_dialog .btn-primary[disabled].focus,
- #jsxc_dialog .btn-primary[disabled]:active,
- #jsxc_dialog .btn-primary[disabled].active,
+ #jsxc_dialog .btn-primary.disabled, #jsxc_dialog .btn-primary.disabled:hover, #jsxc_dialog .btn-primary.disabled:focus, #jsxc_dialog .btn-primary.disabled.focus, #jsxc_dialog .btn-primary.disabled:active, #jsxc_dialog .btn-primary.disabled.active, #jsxc_dialog .btn-primary[disabled], #jsxc_dialog .btn-primary[disabled]:hover, #jsxc_dialog .btn-primary[disabled]:focus, #jsxc_dialog .btn-primary[disabled].focus, #jsxc_dialog .btn-primary[disabled]:active, #jsxc_dialog .btn-primary[disabled].active,
fieldset[disabled] #jsxc_dialog .btn-primary,
fieldset[disabled] #jsxc_dialog .btn-primary:hover,
fieldset[disabled] #jsxc_dialog .btn-primary:focus,
fieldset[disabled] #jsxc_dialog .btn-primary.focus,
fieldset[disabled] #jsxc_dialog .btn-primary:active,
- fieldset[disabled] #jsxc_dialog .btn-primary.active, #jsxc_webrtc .btn-primary.disabled,
- #jsxc_webrtc .btn-primary.disabled:hover,
- #jsxc_webrtc .btn-primary.disabled:focus,
- #jsxc_webrtc .btn-primary.disabled.focus,
- #jsxc_webrtc .btn-primary.disabled:active,
- #jsxc_webrtc .btn-primary.disabled.active,
- #jsxc_webrtc .btn-primary[disabled],
- #jsxc_webrtc .btn-primary[disabled]:hover,
- #jsxc_webrtc .btn-primary[disabled]:focus,
- #jsxc_webrtc .btn-primary[disabled].focus,
- #jsxc_webrtc .btn-primary[disabled]:active,
- #jsxc_webrtc .btn-primary[disabled].active,
+ fieldset[disabled] #jsxc_dialog .btn-primary.active, #jsxc_webrtc .btn-primary.disabled, #jsxc_webrtc .btn-primary.disabled:hover, #jsxc_webrtc .btn-primary.disabled:focus, #jsxc_webrtc .btn-primary.disabled.focus, #jsxc_webrtc .btn-primary.disabled:active, #jsxc_webrtc .btn-primary.disabled.active, #jsxc_webrtc .btn-primary[disabled], #jsxc_webrtc .btn-primary[disabled]:hover, #jsxc_webrtc .btn-primary[disabled]:focus, #jsxc_webrtc .btn-primary[disabled].focus, #jsxc_webrtc .btn-primary[disabled]:active, #jsxc_webrtc .btn-primary[disabled].active,
fieldset[disabled] #jsxc_webrtc .btn-primary,
fieldset[disabled] #jsxc_webrtc .btn-primary:hover,
fieldset[disabled] #jsxc_webrtc .btn-primary:focus,
@@ -1544,55 +1421,23 @@ img.emojione {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c; }
- #jsxc_dialog .btn-success:hover,
- #jsxc_dialog .btn-success:focus,
- #jsxc_dialog .btn-success.focus,
- #jsxc_dialog .btn-success:active,
- #jsxc_dialog .btn-success.active,
- .open > #jsxc_dialog .btn-success.dropdown-toggle, #jsxc_webrtc .btn-success:hover,
- #jsxc_webrtc .btn-success:focus,
- #jsxc_webrtc .btn-success.focus,
- #jsxc_webrtc .btn-success:active,
- #jsxc_webrtc .btn-success.active,
+ #jsxc_dialog .btn-success:hover, #jsxc_dialog .btn-success:focus, #jsxc_dialog .btn-success.focus, #jsxc_dialog .btn-success:active, #jsxc_dialog .btn-success.active,
+ .open > #jsxc_dialog .btn-success.dropdown-toggle, #jsxc_webrtc .btn-success:hover, #jsxc_webrtc .btn-success:focus, #jsxc_webrtc .btn-success.focus, #jsxc_webrtc .btn-success:active, #jsxc_webrtc .btn-success.active,
.open > #jsxc_webrtc .btn-success.dropdown-toggle {
color: #fff;
background-color: #449d44;
border-color: #398439; }
- #jsxc_dialog .btn-success:active,
- #jsxc_dialog .btn-success.active,
- .open > #jsxc_dialog .btn-success.dropdown-toggle, #jsxc_webrtc .btn-success:active,
- #jsxc_webrtc .btn-success.active,
+ #jsxc_dialog .btn-success:active, #jsxc_dialog .btn-success.active,
+ .open > #jsxc_dialog .btn-success.dropdown-toggle, #jsxc_webrtc .btn-success:active, #jsxc_webrtc .btn-success.active,
.open > #jsxc_webrtc .btn-success.dropdown-toggle {
background-image: none; }
- #jsxc_dialog .btn-success.disabled,
- #jsxc_dialog .btn-success.disabled:hover,
- #jsxc_dialog .btn-success.disabled:focus,
- #jsxc_dialog .btn-success.disabled.focus,
- #jsxc_dialog .btn-success.disabled:active,
- #jsxc_dialog .btn-success.disabled.active,
- #jsxc_dialog .btn-success[disabled],
- #jsxc_dialog .btn-success[disabled]:hover,
- #jsxc_dialog .btn-success[disabled]:focus,
- #jsxc_dialog .btn-success[disabled].focus,
- #jsxc_dialog .btn-success[disabled]:active,
- #jsxc_dialog .btn-success[disabled].active,
+ #jsxc_dialog .btn-success.disabled, #jsxc_dialog .btn-success.disabled:hover, #jsxc_dialog .btn-success.disabled:focus, #jsxc_dialog .btn-success.disabled.focus, #jsxc_dialog .btn-success.disabled:active, #jsxc_dialog .btn-success.disabled.active, #jsxc_dialog .btn-success[disabled], #jsxc_dialog .btn-success[disabled]:hover, #jsxc_dialog .btn-success[disabled]:focus, #jsxc_dialog .btn-success[disabled].focus, #jsxc_dialog .btn-success[disabled]:active, #jsxc_dialog .btn-success[disabled].active,
fieldset[disabled] #jsxc_dialog .btn-success,
fieldset[disabled] #jsxc_dialog .btn-success:hover,
fieldset[disabled] #jsxc_dialog .btn-success:focus,
fieldset[disabled] #jsxc_dialog .btn-success.focus,
fieldset[disabled] #jsxc_dialog .btn-success:active,
- fieldset[disabled] #jsxc_dialog .btn-success.active, #jsxc_webrtc .btn-success.disabled,
- #jsxc_webrtc .btn-success.disabled:hover,
- #jsxc_webrtc .btn-success.disabled:focus,
- #jsxc_webrtc .btn-success.disabled.focus,
- #jsxc_webrtc .btn-success.disabled:active,
- #jsxc_webrtc .btn-success.disabled.active,
- #jsxc_webrtc .btn-success[disabled],
- #jsxc_webrtc .btn-success[disabled]:hover,
- #jsxc_webrtc .btn-success[disabled]:focus,
- #jsxc_webrtc .btn-success[disabled].focus,
- #jsxc_webrtc .btn-success[disabled]:active,
- #jsxc_webrtc .btn-success[disabled].active,
+ fieldset[disabled] #jsxc_dialog .btn-success.active, #jsxc_webrtc .btn-success.disabled, #jsxc_webrtc .btn-success.disabled:hover, #jsxc_webrtc .btn-success.disabled:focus, #jsxc_webrtc .btn-success.disabled.focus, #jsxc_webrtc .btn-success.disabled:active, #jsxc_webrtc .btn-success.disabled.active, #jsxc_webrtc .btn-success[disabled], #jsxc_webrtc .btn-success[disabled]:hover, #jsxc_webrtc .btn-success[disabled]:focus, #jsxc_webrtc .btn-success[disabled].focus, #jsxc_webrtc .btn-success[disabled]:active, #jsxc_webrtc .btn-success[disabled].active,
fieldset[disabled] #jsxc_webrtc .btn-success,
fieldset[disabled] #jsxc_webrtc .btn-success:hover,
fieldset[disabled] #jsxc_webrtc .btn-success:focus,
@@ -1609,55 +1454,23 @@ img.emojione {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da; }
- #jsxc_dialog .btn-info:hover,
- #jsxc_dialog .btn-info:focus,
- #jsxc_dialog .btn-info.focus,
- #jsxc_dialog .btn-info:active,
- #jsxc_dialog .btn-info.active,
- .open > #jsxc_dialog .btn-info.dropdown-toggle, #jsxc_webrtc .btn-info:hover,
- #jsxc_webrtc .btn-info:focus,
- #jsxc_webrtc .btn-info.focus,
- #jsxc_webrtc .btn-info:active,
- #jsxc_webrtc .btn-info.active,
+ #jsxc_dialog .btn-info:hover, #jsxc_dialog .btn-info:focus, #jsxc_dialog .btn-info.focus, #jsxc_dialog .btn-info:active, #jsxc_dialog .btn-info.active,
+ .open > #jsxc_dialog .btn-info.dropdown-toggle, #jsxc_webrtc .btn-info:hover, #jsxc_webrtc .btn-info:focus, #jsxc_webrtc .btn-info.focus, #jsxc_webrtc .btn-info:active, #jsxc_webrtc .btn-info.active,
.open > #jsxc_webrtc .btn-info.dropdown-toggle {
color: #fff;
background-color: #31b0d5;
border-color: #269abc; }
- #jsxc_dialog .btn-info:active,
- #jsxc_dialog .btn-info.active,
- .open > #jsxc_dialog .btn-info.dropdown-toggle, #jsxc_webrtc .btn-info:active,
- #jsxc_webrtc .btn-info.active,
+ #jsxc_dialog .btn-info:active, #jsxc_dialog .btn-info.active,
+ .open > #jsxc_dialog .btn-info.dropdown-toggle, #jsxc_webrtc .btn-info:active, #jsxc_webrtc .btn-info.active,
.open > #jsxc_webrtc .btn-info.dropdown-toggle {
background-image: none; }
- #jsxc_dialog .btn-info.disabled,
- #jsxc_dialog .btn-info.disabled:hover,
- #jsxc_dialog .btn-info.disabled:focus,
- #jsxc_dialog .btn-info.disabled.focus,
- #jsxc_dialog .btn-info.disabled:active,
- #jsxc_dialog .btn-info.disabled.active,
- #jsxc_dialog .btn-info[disabled],
- #jsxc_dialog .btn-info[disabled]:hover,
- #jsxc_dialog .btn-info[disabled]:focus,
- #jsxc_dialog .btn-info[disabled].focus,
- #jsxc_dialog .btn-info[disabled]:active,
- #jsxc_dialog .btn-info[disabled].active,
+ #jsxc_dialog .btn-info.disabled, #jsxc_dialog .btn-info.disabled:hover, #jsxc_dialog .btn-info.disabled:focus, #jsxc_dialog .btn-info.disabled.focus, #jsxc_dialog .btn-info.disabled:active, #jsxc_dialog .btn-info.disabled.active, #jsxc_dialog .btn-info[disabled], #jsxc_dialog .btn-info[disabled]:hover, #jsxc_dialog .btn-info[disabled]:focus, #jsxc_dialog .btn-info[disabled].focus, #jsxc_dialog .btn-info[disabled]:active, #jsxc_dialog .btn-info[disabled].active,
fieldset[disabled] #jsxc_dialog .btn-info,
fieldset[disabled] #jsxc_dialog .btn-info:hover,
fieldset[disabled] #jsxc_dialog .btn-info:focus,
fieldset[disabled] #jsxc_dialog .btn-info.focus,
fieldset[disabled] #jsxc_dialog .btn-info:active,
- fieldset[disabled] #jsxc_dialog .btn-info.active, #jsxc_webrtc .btn-info.disabled,
- #jsxc_webrtc .btn-info.disabled:hover,
- #jsxc_webrtc .btn-info.disabled:focus,
- #jsxc_webrtc .btn-info.disabled.focus,
- #jsxc_webrtc .btn-info.disabled:active,
- #jsxc_webrtc .btn-info.disabled.active,
- #jsxc_webrtc .btn-info[disabled],
- #jsxc_webrtc .btn-info[disabled]:hover,
- #jsxc_webrtc .btn-info[disabled]:focus,
- #jsxc_webrtc .btn-info[disabled].focus,
- #jsxc_webrtc .btn-info[disabled]:active,
- #jsxc_webrtc .btn-info[disabled].active,
+ fieldset[disabled] #jsxc_dialog .btn-info.active, #jsxc_webrtc .btn-info.disabled, #jsxc_webrtc .btn-info.disabled:hover, #jsxc_webrtc .btn-info.disabled:focus, #jsxc_webrtc .btn-info.disabled.focus, #jsxc_webrtc .btn-info.disabled:active, #jsxc_webrtc .btn-info.disabled.active, #jsxc_webrtc .btn-info[disabled], #jsxc_webrtc .btn-info[disabled]:hover, #jsxc_webrtc .btn-info[disabled]:focus, #jsxc_webrtc .btn-info[disabled].focus, #jsxc_webrtc .btn-info[disabled]:active, #jsxc_webrtc .btn-info[disabled].active,
fieldset[disabled] #jsxc_webrtc .btn-info,
fieldset[disabled] #jsxc_webrtc .btn-info:hover,
fieldset[disabled] #jsxc_webrtc .btn-info:focus,
@@ -1674,55 +1487,23 @@ img.emojione {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236; }
- #jsxc_dialog .btn-warning:hover,
- #jsxc_dialog .btn-warning:focus,
- #jsxc_dialog .btn-warning.focus,
- #jsxc_dialog .btn-warning:active,
- #jsxc_dialog .btn-warning.active,
- .open > #jsxc_dialog .btn-warning.dropdown-toggle, #jsxc_webrtc .btn-warning:hover,
- #jsxc_webrtc .btn-warning:focus,
- #jsxc_webrtc .btn-warning.focus,
- #jsxc_webrtc .btn-warning:active,
- #jsxc_webrtc .btn-warning.active,
+ #jsxc_dialog .btn-warning:hover, #jsxc_dialog .btn-warning:focus, #jsxc_dialog .btn-warning.focus, #jsxc_dialog .btn-warning:active, #jsxc_dialog .btn-warning.active,
+ .open > #jsxc_dialog .btn-warning.dropdown-toggle, #jsxc_webrtc .btn-warning:hover, #jsxc_webrtc .btn-warning:focus, #jsxc_webrtc .btn-warning.focus, #jsxc_webrtc .btn-warning:active, #jsxc_webrtc .btn-warning.active,
.open > #jsxc_webrtc .btn-warning.dropdown-toggle {
color: #fff;
background-color: #ec971f;
border-color: #d58512; }
- #jsxc_dialog .btn-warning:active,
- #jsxc_dialog .btn-warning.active,
- .open > #jsxc_dialog .btn-warning.dropdown-toggle, #jsxc_webrtc .btn-warning:active,
- #jsxc_webrtc .btn-warning.active,
+ #jsxc_dialog .btn-warning:active, #jsxc_dialog .btn-warning.active,
+ .open > #jsxc_dialog .btn-warning.dropdown-toggle, #jsxc_webrtc .btn-warning:active, #jsxc_webrtc .btn-warning.active,
.open > #jsxc_webrtc .btn-warning.dropdown-toggle {
background-image: none; }
- #jsxc_dialog .btn-warning.disabled,
- #jsxc_dialog .btn-warning.disabled:hover,
- #jsxc_dialog .btn-warning.disabled:focus,
- #jsxc_dialog .btn-warning.disabled.focus,
- #jsxc_dialog .btn-warning.disabled:active,
- #jsxc_dialog .btn-warning.disabled.active,
- #jsxc_dialog .btn-warning[disabled],
- #jsxc_dialog .btn-warning[disabled]:hover,
- #jsxc_dialog .btn-warning[disabled]:focus,
- #jsxc_dialog .btn-warning[disabled].focus,
- #jsxc_dialog .btn-warning[disabled]:active,
- #jsxc_dialog .btn-warning[disabled].active,
+ #jsxc_dialog .btn-warning.disabled, #jsxc_dialog .btn-warning.disabled:hover, #jsxc_dialog .btn-warning.disabled:focus, #jsxc_dialog .btn-warning.disabled.focus, #jsxc_dialog .btn-warning.disabled:active, #jsxc_dialog .btn-warning.disabled.active, #jsxc_dialog .btn-warning[disabled], #jsxc_dialog .btn-warning[disabled]:hover, #jsxc_dialog .btn-warning[disabled]:focus, #jsxc_dialog .btn-warning[disabled].focus, #jsxc_dialog .btn-warning[disabled]:active, #jsxc_dialog .btn-warning[disabled].active,
fieldset[disabled] #jsxc_dialog .btn-warning,
fieldset[disabled] #jsxc_dialog .btn-warning:hover,
fieldset[disabled] #jsxc_dialog .btn-warning:focus,
fieldset[disabled] #jsxc_dialog .btn-warning.focus,
fieldset[disabled] #jsxc_dialog .btn-warning:active,
- fieldset[disabled] #jsxc_dialog .btn-warning.active, #jsxc_webrtc .btn-warning.disabled,
- #jsxc_webrtc .btn-warning.disabled:hover,
- #jsxc_webrtc .btn-warning.disabled:focus,
- #jsxc_webrtc .btn-warning.disabled.focus,
- #jsxc_webrtc .btn-warning.disabled:active,
- #jsxc_webrtc .btn-warning.disabled.active,
- #jsxc_webrtc .btn-warning[disabled],
- #jsxc_webrtc .btn-warning[disabled]:hover,
- #jsxc_webrtc .btn-warning[disabled]:focus,
- #jsxc_webrtc .btn-warning[disabled].focus,
- #jsxc_webrtc .btn-warning[disabled]:active,
- #jsxc_webrtc .btn-warning[disabled].active,
+ fieldset[disabled] #jsxc_dialog .btn-warning.active, #jsxc_webrtc .btn-warning.disabled, #jsxc_webrtc .btn-warning.disabled:hover, #jsxc_webrtc .btn-warning.disabled:focus, #jsxc_webrtc .btn-warning.disabled.focus, #jsxc_webrtc .btn-warning.disabled:active, #jsxc_webrtc .btn-warning.disabled.active, #jsxc_webrtc .btn-warning[disabled], #jsxc_webrtc .btn-warning[disabled]:hover, #jsxc_webrtc .btn-warning[disabled]:focus, #jsxc_webrtc .btn-warning[disabled].focus, #jsxc_webrtc .btn-warning[disabled]:active, #jsxc_webrtc .btn-warning[disabled].active,
fieldset[disabled] #jsxc_webrtc .btn-warning,
fieldset[disabled] #jsxc_webrtc .btn-warning:hover,
fieldset[disabled] #jsxc_webrtc .btn-warning:focus,
@@ -1739,55 +1520,23 @@ img.emojione {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a; }
- #jsxc_dialog .btn-danger:hover,
- #jsxc_dialog .btn-danger:focus,
- #jsxc_dialog .btn-danger.focus,
- #jsxc_dialog .btn-danger:active,
- #jsxc_dialog .btn-danger.active,
- .open > #jsxc_dialog .btn-danger.dropdown-toggle, #jsxc_webrtc .btn-danger:hover,
- #jsxc_webrtc .btn-danger:focus,
- #jsxc_webrtc .btn-danger.focus,
- #jsxc_webrtc .btn-danger:active,
- #jsxc_webrtc .btn-danger.active,
+ #jsxc_dialog .btn-danger:hover, #jsxc_dialog .btn-danger:focus, #jsxc_dialog .btn-danger.focus, #jsxc_dialog .btn-danger:active, #jsxc_dialog .btn-danger.active,
+ .open > #jsxc_dialog .btn-danger.dropdown-toggle, #jsxc_webrtc .btn-danger:hover, #jsxc_webrtc .btn-danger:focus, #jsxc_webrtc .btn-danger.focus, #jsxc_webrtc .btn-danger:active, #jsxc_webrtc .btn-danger.active,
.open > #jsxc_webrtc .btn-danger.dropdown-toggle {
color: #fff;
background-color: #c9302c;
border-color: #ac2925; }
- #jsxc_dialog .btn-danger:active,
- #jsxc_dialog .btn-danger.active,
- .open > #jsxc_dialog .btn-danger.dropdown-toggle, #jsxc_webrtc .btn-danger:active,
- #jsxc_webrtc .btn-danger.active,
+ #jsxc_dialog .btn-danger:active, #jsxc_dialog .btn-danger.active,
+ .open > #jsxc_dialog .btn-danger.dropdown-toggle, #jsxc_webrtc .btn-danger:active, #jsxc_webrtc .btn-danger.active,
.open > #jsxc_webrtc .btn-danger.dropdown-toggle {
background-image: none; }
- #jsxc_dialog .btn-danger.disabled,
- #jsxc_dialog .btn-danger.disabled:hover,
- #jsxc_dialog .btn-danger.disabled:focus,
- #jsxc_dialog .btn-danger.disabled.focus,
- #jsxc_dialog .btn-danger.disabled:active,
- #jsxc_dialog .btn-danger.disabled.active,
- #jsxc_dialog .btn-danger[disabled],
- #jsxc_dialog .btn-danger[disabled]:hover,
- #jsxc_dialog .btn-danger[disabled]:focus,
- #jsxc_dialog .btn-danger[disabled].focus,
- #jsxc_dialog .btn-danger[disabled]:active,
- #jsxc_dialog .btn-danger[disabled].active,
+ #jsxc_dialog .btn-danger.disabled, #jsxc_dialog .btn-danger.disabled:hover, #jsxc_dialog .btn-danger.disabled:focus, #jsxc_dialog .btn-danger.disabled.focus, #jsxc_dialog .btn-danger.disabled:active, #jsxc_dialog .btn-danger.disabled.active, #jsxc_dialog .btn-danger[disabled], #jsxc_dialog .btn-danger[disabled]:hover, #jsxc_dialog .btn-danger[disabled]:focus, #jsxc_dialog .btn-danger[disabled].focus, #jsxc_dialog .btn-danger[disabled]:active, #jsxc_dialog .btn-danger[disabled].active,
fieldset[disabled] #jsxc_dialog .btn-danger,
fieldset[disabled] #jsxc_dialog .btn-danger:hover,
fieldset[disabled] #jsxc_dialog .btn-danger:focus,
fieldset[disabled] #jsxc_dialog .btn-danger.focus,
fieldset[disabled] #jsxc_dialog .btn-danger:active,
- fieldset[disabled] #jsxc_dialog .btn-danger.active, #jsxc_webrtc .btn-danger.disabled,
- #jsxc_webrtc .btn-danger.disabled:hover,
- #jsxc_webrtc .btn-danger.disabled:focus,
- #jsxc_webrtc .btn-danger.disabled.focus,
- #jsxc_webrtc .btn-danger.disabled:active,
- #jsxc_webrtc .btn-danger.disabled.active,
- #jsxc_webrtc .btn-danger[disabled],
- #jsxc_webrtc .btn-danger[disabled]:hover,
- #jsxc_webrtc .btn-danger[disabled]:focus,
- #jsxc_webrtc .btn-danger[disabled].focus,
- #jsxc_webrtc .btn-danger[disabled]:active,
- #jsxc_webrtc .btn-danger[disabled].active,
+ fieldset[disabled] #jsxc_dialog .btn-danger.active, #jsxc_webrtc .btn-danger.disabled, #jsxc_webrtc .btn-danger.disabled:hover, #jsxc_webrtc .btn-danger.disabled:focus, #jsxc_webrtc .btn-danger.disabled.focus, #jsxc_webrtc .btn-danger.disabled:active, #jsxc_webrtc .btn-danger.disabled.active, #jsxc_webrtc .btn-danger[disabled], #jsxc_webrtc .btn-danger[disabled]:hover, #jsxc_webrtc .btn-danger[disabled]:focus, #jsxc_webrtc .btn-danger[disabled].focus, #jsxc_webrtc .btn-danger[disabled]:active, #jsxc_webrtc .btn-danger[disabled].active,
fieldset[disabled] #jsxc_webrtc .btn-danger,
fieldset[disabled] #jsxc_webrtc .btn-danger:hover,
fieldset[disabled] #jsxc_webrtc .btn-danger:focus,
@@ -1804,36 +1553,20 @@ img.emojione {
color: #337ab7;
font-weight: normal;
border-radius: 0; }
- #jsxc_dialog .btn-link,
- #jsxc_dialog .btn-link:active,
- #jsxc_dialog .btn-link.active,
- #jsxc_dialog .btn-link[disabled],
- fieldset[disabled] #jsxc_dialog .btn-link, #jsxc_webrtc .btn-link,
- #jsxc_webrtc .btn-link:active,
- #jsxc_webrtc .btn-link.active,
- #jsxc_webrtc .btn-link[disabled],
+ #jsxc_dialog .btn-link, #jsxc_dialog .btn-link:active, #jsxc_dialog .btn-link.active, #jsxc_dialog .btn-link[disabled],
+ fieldset[disabled] #jsxc_dialog .btn-link, #jsxc_webrtc .btn-link, #jsxc_webrtc .btn-link:active, #jsxc_webrtc .btn-link.active, #jsxc_webrtc .btn-link[disabled],
fieldset[disabled] #jsxc_webrtc .btn-link {
background-color: transparent;
box-shadow: none; }
- #jsxc_dialog .btn-link,
- #jsxc_dialog .btn-link:hover,
- #jsxc_dialog .btn-link:focus,
- #jsxc_dialog .btn-link:active, #jsxc_webrtc .btn-link,
- #jsxc_webrtc .btn-link:hover,
- #jsxc_webrtc .btn-link:focus,
- #jsxc_webrtc .btn-link:active {
+ #jsxc_dialog .btn-link, #jsxc_dialog .btn-link:hover, #jsxc_dialog .btn-link:focus, #jsxc_dialog .btn-link:active, #jsxc_webrtc .btn-link, #jsxc_webrtc .btn-link:hover, #jsxc_webrtc .btn-link:focus, #jsxc_webrtc .btn-link:active {
border-color: transparent; }
- #jsxc_dialog .btn-link:hover,
- #jsxc_dialog .btn-link:focus, #jsxc_webrtc .btn-link:hover,
- #jsxc_webrtc .btn-link:focus {
+ #jsxc_dialog .btn-link:hover, #jsxc_dialog .btn-link:focus, #jsxc_webrtc .btn-link:hover, #jsxc_webrtc .btn-link:focus {
color: #23527c;
text-decoration: underline;
background-color: transparent; }
- #jsxc_dialog .btn-link[disabled]:hover,
- #jsxc_dialog .btn-link[disabled]:focus,
+ #jsxc_dialog .btn-link[disabled]:hover, #jsxc_dialog .btn-link[disabled]:focus,
fieldset[disabled] #jsxc_dialog .btn-link:hover,
- fieldset[disabled] #jsxc_dialog .btn-link:focus, #jsxc_webrtc .btn-link[disabled]:hover,
- #jsxc_webrtc .btn-link[disabled]:focus,
+ fieldset[disabled] #jsxc_dialog .btn-link:focus, #jsxc_webrtc .btn-link[disabled]:hover, #jsxc_webrtc .btn-link[disabled]:focus,
fieldset[disabled] #jsxc_webrtc .btn-link:hover,
fieldset[disabled] #jsxc_webrtc .btn-link:focus {
color: #777777;
@@ -1882,17 +1615,11 @@ img.emojione {
#jsxc_webrtc .btn-group-vertical > .btn {
position: relative;
float: left; }
- #jsxc_dialog .btn-group > .btn:hover,
- #jsxc_dialog .btn-group > .btn:focus,
- #jsxc_dialog .btn-group > .btn:active,
- #jsxc_dialog .btn-group > .btn.active,
+ #jsxc_dialog .btn-group > .btn:hover, #jsxc_dialog .btn-group > .btn:focus, #jsxc_dialog .btn-group > .btn:active, #jsxc_dialog .btn-group > .btn.active,
#jsxc_dialog .btn-group-vertical > .btn:hover,
#jsxc_dialog .btn-group-vertical > .btn:focus,
#jsxc_dialog .btn-group-vertical > .btn:active,
- #jsxc_dialog .btn-group-vertical > .btn.active, #jsxc_webrtc .btn-group > .btn:hover,
- #jsxc_webrtc .btn-group > .btn:focus,
- #jsxc_webrtc .btn-group > .btn:active,
- #jsxc_webrtc .btn-group > .btn.active,
+ #jsxc_dialog .btn-group-vertical > .btn.active, #jsxc_webrtc .btn-group > .btn:hover, #jsxc_webrtc .btn-group > .btn:focus, #jsxc_webrtc .btn-group > .btn:active, #jsxc_webrtc .btn-group > .btn.active,
#jsxc_webrtc .btn-group-vertical > .btn:hover,
#jsxc_webrtc .btn-group-vertical > .btn:focus,
#jsxc_webrtc .btn-group-vertical > .btn:active,
@@ -1910,9 +1637,7 @@ img.emojione {
#jsxc_dialog .btn-toolbar, #jsxc_webrtc .btn-toolbar {
margin-left: -5px; }
- #jsxc_dialog .btn-toolbar:before,
- #jsxc_dialog .btn-toolbar:after, #jsxc_webrtc .btn-toolbar:before,
- #jsxc_webrtc .btn-toolbar:after {
+ #jsxc_dialog .btn-toolbar:before, #jsxc_dialog .btn-toolbar:after, #jsxc_webrtc .btn-toolbar:before, #jsxc_webrtc .btn-toolbar:after {
content: " ";
display: table; }
#jsxc_dialog .btn-toolbar:after, #jsxc_webrtc .btn-toolbar:after {
@@ -1997,9 +1722,7 @@ img.emojione {
width: 100%;
max-width: 100%; }
-#jsxc_dialog .btn-group-vertical > .btn-group:before,
-#jsxc_dialog .btn-group-vertical > .btn-group:after, #jsxc_webrtc .btn-group-vertical > .btn-group:before,
-#jsxc_webrtc .btn-group-vertical > .btn-group:after {
+#jsxc_dialog .btn-group-vertical > .btn-group:before, #jsxc_dialog .btn-group-vertical > .btn-group:after, #jsxc_webrtc .btn-group-vertical > .btn-group:before, #jsxc_webrtc .btn-group-vertical > .btn-group:after {
content: " ";
display: table; }
@@ -2159,10 +1882,8 @@ img.emojione {
color: #999; }
#jsxc_dialog .form-control::-webkit-input-placeholder, #jsxc_webrtc .form-control::-webkit-input-placeholder {
color: #999; }
- #jsxc_dialog .form-control[disabled],
- #jsxc_dialog .form-control[readonly],
- fieldset[disabled] #jsxc_dialog .form-control, #jsxc_webrtc .form-control[disabled],
- #jsxc_webrtc .form-control[readonly],
+ #jsxc_dialog .form-control[disabled], #jsxc_dialog .form-control[readonly],
+ fieldset[disabled] #jsxc_dialog .form-control, #jsxc_webrtc .form-control[disabled], #jsxc_webrtc .form-control[readonly],
fieldset[disabled] #jsxc_webrtc .form-control {
background-color: #eeeeee;
opacity: 1; }
@@ -2189,34 +1910,46 @@ img.emojione {
#jsxc_dialog input[type="date"].input-sm,
.input-group-sm #jsxc_dialog input[type="date"],
#jsxc_dialog input[type="time"].input-sm,
- .input-group-sm #jsxc_dialog input[type="time"],
+ .input-group-sm
+ #jsxc_dialog input[type="time"],
#jsxc_dialog input[type="datetime-local"].input-sm,
- .input-group-sm #jsxc_dialog input[type="datetime-local"],
+ .input-group-sm
+ #jsxc_dialog input[type="datetime-local"],
#jsxc_dialog input[type="month"].input-sm,
- .input-group-sm #jsxc_dialog input[type="month"], #jsxc_webrtc input[type="date"].input-sm,
+ .input-group-sm
+ #jsxc_dialog input[type="month"], #jsxc_webrtc input[type="date"].input-sm,
.input-group-sm #jsxc_webrtc input[type="date"],
#jsxc_webrtc input[type="time"].input-sm,
- .input-group-sm #jsxc_webrtc input[type="time"],
+ .input-group-sm
+ #jsxc_webrtc input[type="time"],
#jsxc_webrtc input[type="datetime-local"].input-sm,
- .input-group-sm #jsxc_webrtc input[type="datetime-local"],
+ .input-group-sm
+ #jsxc_webrtc input[type="datetime-local"],
#jsxc_webrtc input[type="month"].input-sm,
- .input-group-sm #jsxc_webrtc input[type="month"] {
+ .input-group-sm
+ #jsxc_webrtc input[type="month"] {
line-height: 30px; }
#jsxc_dialog input[type="date"].input-lg,
.input-group-lg #jsxc_dialog input[type="date"],
#jsxc_dialog input[type="time"].input-lg,
- .input-group-lg #jsxc_dialog input[type="time"],
+ .input-group-lg
+ #jsxc_dialog input[type="time"],
#jsxc_dialog input[type="datetime-local"].input-lg,
- .input-group-lg #jsxc_dialog input[type="datetime-local"],
+ .input-group-lg
+ #jsxc_dialog input[type="datetime-local"],
#jsxc_dialog input[type="month"].input-lg,
- .input-group-lg #jsxc_dialog input[type="month"], #jsxc_webrtc input[type="date"].input-lg,
+ .input-group-lg
+ #jsxc_dialog input[type="month"], #jsxc_webrtc input[type="date"].input-lg,
.input-group-lg #jsxc_webrtc input[type="date"],
#jsxc_webrtc input[type="time"].input-lg,
- .input-group-lg #jsxc_webrtc input[type="time"],
+ .input-group-lg
+ #jsxc_webrtc input[type="time"],
#jsxc_webrtc input[type="datetime-local"].input-lg,
- .input-group-lg #jsxc_webrtc input[type="datetime-local"],
+ .input-group-lg
+ #jsxc_webrtc input[type="datetime-local"],
#jsxc_webrtc input[type="month"].input-lg,
- .input-group-lg #jsxc_webrtc input[type="month"] {
+ .input-group-lg
+ #jsxc_webrtc input[type="month"] {
line-height: 46px; } }
#jsxc_dialog .form-group, #jsxc_webrtc .form-group {
@@ -2271,35 +2004,39 @@ img.emojione {
margin-top: 0;
margin-left: 10px; }
-#jsxc_dialog input[type="radio"][disabled],
-#jsxc_dialog input[type="radio"].disabled,
+#jsxc_dialog input[type="radio"][disabled], #jsxc_dialog input[type="radio"].disabled,
fieldset[disabled] #jsxc_dialog input[type="radio"],
#jsxc_dialog input[type="checkbox"][disabled],
#jsxc_dialog input[type="checkbox"].disabled,
-fieldset[disabled] #jsxc_dialog input[type="checkbox"], #jsxc_webrtc input[type="radio"][disabled],
-#jsxc_webrtc input[type="radio"].disabled,
+fieldset[disabled]
+#jsxc_dialog input[type="checkbox"], #jsxc_webrtc input[type="radio"][disabled], #jsxc_webrtc input[type="radio"].disabled,
fieldset[disabled] #jsxc_webrtc input[type="radio"],
#jsxc_webrtc input[type="checkbox"][disabled],
#jsxc_webrtc input[type="checkbox"].disabled,
-fieldset[disabled] #jsxc_webrtc input[type="checkbox"] {
+fieldset[disabled]
+#jsxc_webrtc input[type="checkbox"] {
cursor: not-allowed; }
#jsxc_dialog .radio-inline.disabled,
fieldset[disabled] #jsxc_dialog .radio-inline,
#jsxc_dialog .checkbox-inline.disabled,
-fieldset[disabled] #jsxc_dialog .checkbox-inline, #jsxc_webrtc .radio-inline.disabled,
+fieldset[disabled]
+#jsxc_dialog .checkbox-inline, #jsxc_webrtc .radio-inline.disabled,
fieldset[disabled] #jsxc_webrtc .radio-inline,
#jsxc_webrtc .checkbox-inline.disabled,
-fieldset[disabled] #jsxc_webrtc .checkbox-inline {
+fieldset[disabled]
+#jsxc_webrtc .checkbox-inline {
cursor: not-allowed; }
#jsxc_dialog .radio.disabled label,
fieldset[disabled] #jsxc_dialog .radio label,
#jsxc_dialog .checkbox.disabled label,
-fieldset[disabled] #jsxc_dialog .checkbox label, #jsxc_webrtc .radio.disabled label,
+fieldset[disabled]
+#jsxc_dialog .checkbox label, #jsxc_webrtc .radio.disabled label,
fieldset[disabled] #jsxc_webrtc .radio label,
#jsxc_webrtc .checkbox.disabled label,
-fieldset[disabled] #jsxc_webrtc .checkbox label {
+fieldset[disabled]
+#jsxc_webrtc .checkbox label {
cursor: not-allowed; }
#jsxc_dialog .form-control-static, #jsxc_webrtc .form-control-static {
@@ -2307,9 +2044,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-bottom: 7px;
margin-bottom: 0;
min-height: 34px; }
- #jsxc_dialog .form-control-static.input-lg,
- #jsxc_dialog .form-control-static.input-sm, #jsxc_webrtc .form-control-static.input-lg,
- #jsxc_webrtc .form-control-static.input-sm {
+ #jsxc_dialog .form-control-static.input-lg, #jsxc_dialog .form-control-static.input-sm, #jsxc_webrtc .form-control-static.input-lg, #jsxc_webrtc .form-control-static.input-sm {
padding-left: 0;
padding-right: 0; }
@@ -2601,9 +2336,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_dialog .form-horizontal .form-group, #jsxc_webrtc .form-horizontal .form-group {
margin-left: -15px;
margin-right: -15px; }
- #jsxc_dialog .form-horizontal .form-group:before,
- #jsxc_dialog .form-horizontal .form-group:after, #jsxc_webrtc .form-horizontal .form-group:before,
- #jsxc_webrtc .form-horizontal .form-group:after {
+ #jsxc_dialog .form-horizontal .form-group:before, #jsxc_dialog .form-horizontal .form-group:after, #jsxc_webrtc .form-horizontal .form-group:before, #jsxc_webrtc .form-horizontal .form-group:after {
content: " ";
display: table; }
#jsxc_dialog .form-horizontal .form-group:after, #jsxc_webrtc .form-horizontal .form-group:after {
@@ -2627,10 +2360,13 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-top: 6px; } }
#jsxc_dialog .progress, #jsxc_webrtc .progress {
- margin-bottom: 0px; }
+ margin-bottom: 0; }
#jsxc_dialog .progress .progress-bar, #jsxc_webrtc .progress .progress-bar {
width: 100%; }
+#jsxc_dialog .mfp-close, #jsxc_webrtc .mfp-close {
+ font-size: 23px; }
+
.mfp-bg {
z-index: 9000; }
@@ -2640,10 +2376,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.mfp-content {
text-align: center; }
-#jsxc_dialog .mfp-close {
- font-size: 23px; }
-
-/* END: bootstrap */
@-webkit-keyframes bounce {
0% {
bottom: 0;
@@ -2667,6 +2399,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
animation-timing-function: ease-in; }
100% {
bottom: 0; } }
+
@keyframes bounce {
0% {
bottom: 0;
@@ -2722,7 +2455,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
width: 204px;
z-index: 85; }
#jsxc_buddylist .jsxc_unreadMsg .jsxc_name {
- padding-right: 0px; }
+ padding-right: 0; }
#jsxc_buddylist .jsxc_oneway .jsxc_avatar, #jsxc_buddylist .jsxc_oneway .jsxc_caption {
opacity: 0.7; }
#jsxc_buddylist .jsxc_right {
@@ -2735,7 +2468,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
line-height: 20px;
color: #fff; }
#jsxc_buddylist .jsxc_right div:hover {
- opacity: 1.0; }
+ opacity: 1; }
#jsxc_buddylist .jsxc_more {
margin-right: 6px;
z-index: 10;
@@ -2760,7 +2493,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
display: none; }
.jsxc_online:before, .jsxc_chat:before, .jsxc_away:before, .jsxc_xa:before, .jsxc_dnd:before {
- content: ' ';
+ content: " ";
display: block;
width: 12px;
height: 12px;
@@ -2806,6 +2539,14 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
background-size: contain;
border: 0;
vertical-align: bottom; }
+ .jsxc_emoticon.jsxc_large {
+ width: 40px;
+ height: 40px;
+ margin-bottom: 7px; }
+
+#jsxc_roster .jsxc_emoticon.jsxc_large {
+ width: 19px;
+ height: 19px; }
.jsxc_angel {
background: url('../img/emotions/angel.png'); }
@@ -2878,14 +2619,13 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_roster {
position: fixed;
- top: 0px;
+ top: 0;
bottom: 0;
right: 0;
width: 200px;
overflow: visible;
border-left: 1px solid #e1e1e1;
display: none;
- /*border-left: 1px solid $roster_border_left;*/
z-index: 80;
margin-left: 10px;
background-color: whitesmoke; }
@@ -2927,7 +2667,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
color: #333;
padding: 10px; }
#jsxc_roster p a {
- color: #b3b3b3;
+ color: #b3b2b2;
text-decoration: underline; }
#jsxc_roster .jsxc_avatar {
position: relative;
@@ -2951,9 +2691,58 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
transform: rotate(0deg); }
#jsxc_roster.jsxc_state_shown {
display: block;
- right: 0px;
+ right: 0;
-webkit-transition: right 0.5s;
transition: right 0.5s; }
+ #jsxc_roster > .jsxc_bottom {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ line-height: 34px;
+ background-color: #eeeeee;
+ z-index: 50;
+ padding-right: 4px; }
+ #jsxc_roster > .jsxc_bottom:hover {
+ background-color: #ddd; }
+ #jsxc_roster > .jsxc_bottom .jsxc_inner {
+ width: 100%; }
+ #jsxc_roster > .jsxc_bottom ul {
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ border-top: 1px solid transparent;
+ background-color: #eeeeee; }
+ #jsxc_roster > .jsxc_bottom ul li:last-child {
+ border-bottom: 1px solid transparent; }
+ #jsxc_roster > .jsxc_bottom li {
+ height: 44px;
+ background-color: #eeeeee;
+ color: #000;
+ cursor: pointer;
+ width: 100%;
+ padding-left: 44px;
+ line-height: 44px;
+ text-align: left;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ background-repeat: no-repeat;
+ background-position: 15px center;
+ background-size: 16px 16px;
+ opacity: 0.8; }
+ #jsxc_roster > .jsxc_bottom li.jsxc_disabled {
+ color: #333333;
+ cursor: default; }
+ #jsxc_roster > .jsxc_bottom li:hover:not(.jsxc_disabled) {
+ color: #000;
+ background-color: #ddd; }
+ #jsxc_roster > .jsxc_bottom li.jsxc_warning {
+ background-color: #f5e876; }
+ #jsxc_roster > .jsxc_bottom li.jsxc_warning:hover {
+ background-color: #f2e35d; }
+ #jsxc_roster > .jsxc_bottom > div > span {
+ cursor: pointer; }
#jsxc_toggleRoster {
width: 14px;
@@ -2967,12 +2756,12 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_toggleRoster:hover {
background-color: rgba(153, 153, 153, 0.5); }
#jsxc_toggleRoster:before {
- content: '';
+ content: " ";
position: absolute;
display: block;
width: 0;
top: 50%;
- right: 0px;
+ right: 0;
border-style: solid;
border-width: 6px 4px 6px 0;
border-color: transparent whitesmoke;
@@ -3011,7 +2800,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-right: 30px;
height: 100%;
line-height: 100%;
- /*padding-top: 4px;*/
box-sizing: border-box; }
.jsxc_caption * {
cursor: pointer; }
@@ -3058,57 +2846,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.jsxc_caption .jsxc_lastmsg .jsxc_emoticon {
vertical-align: middle; }
-#jsxc_roster > .jsxc_bottom {
- position: absolute;
- left: 0;
- bottom: 0;
- width: 100%;
- line-height: 34px;
- background-color: #eeeeee;
- z-index: 50;
- padding-right: 4px; }
- #jsxc_roster > .jsxc_bottom:hover {
- background-color: #ddd; }
- #jsxc_roster > .jsxc_bottom .jsxc_inner {
- width: 100%; }
- #jsxc_roster > .jsxc_bottom ul {
- padding: 0;
- margin: 0;
- width: 100%;
- border-top: 1px solid transparent;
- background-color: #eeeeee;
- margin: 0; }
- #jsxc_roster > .jsxc_bottom ul li:last-child {
- border-bottom: 1px solid transparent; }
- #jsxc_roster > .jsxc_bottom li {
- height: 44px;
- background-color: #eeeeee;
- color: #000;
- cursor: pointer;
- width: 100%;
- padding-left: 44px;
- line-height: 44px;
- text-align: left;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- background-repeat: no-repeat;
- background-position: 15px center;
- background-size: 16px 16px;
- opacity: 0.8; }
- #jsxc_roster > .jsxc_bottom li.jsxc_disabled {
- color: #333333;
- cursor: default; }
- #jsxc_roster > .jsxc_bottom li:hover:not(.jsxc_disabled) {
- color: #000;
- background-color: #ddd; }
-
-#jsxc_roster > .jsxc_bottom > div > span {
- cursor: pointer; }
-
-#jsxc_roster > .jsxc_bottom > div:hover {
- /*color: $roster_bottom_color_hover;*/ }
-
#jsxc_avatar {
cursor: default !important; }
@@ -3121,7 +2858,6 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_presence li {
position: relative; }
#jsxc_presence li:before {
- /** Presence indicator */
position: absolute;
top: 50%;
left: 10px;
@@ -3211,8 +2947,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
#jsxc_windowList > ul > li.jsxc_min {
-webkit-transition: width 0.2s;
transition: width 0.2s;
- width: 46px !important;
- /* overwrite resizeable width */ }
+ width: 46px !important; }
@media (min-width: 768px) {
#jsxc_windowList > ul > li.jsxc_min {
width: 200px !important; } }
@@ -3235,7 +2970,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
width: 14px;
height: 100%;
background-color: #cccccc;
- color: gray;
+ color: #807f7f;
text-align: center;
line-height: 30px;
float: left;
@@ -3245,9 +2980,9 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
-ms-user-select: none;
user-select: none; }
#jsxc_windowListSB > div:hover {
- background-color: #b3b3b3; }
+ background-color: #b3b2b2; }
#jsxc_windowListSB > .jsxc_disabled {
- background-color: #e6e6e6 !important;
+ background-color: #e6e5e5 !important;
color: #cccccc;
cursor: default !important;
display: none; }
@@ -3298,7 +3033,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
left: 0;
cursor: pointer; }
.jsxc_window .jsxc_emoticons:after {
- content: ' ';
+ content: " ";
background-image: url('../img/smiley.svg');
background-position: center center;
background-repeat: no-repeat;
@@ -3321,7 +3056,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding: 3px;
position: relative; }
.jsxc_window .jsxc_emoticons ul:after {
- content: '';
+ content: " ";
position: absolute;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
@@ -3368,7 +3103,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
height: 44px;
width: 44px; }
.jsxc_window .jsxc_fade .jsxc_overlay > div .jsxc_close:after {
- content: '×';
+ content: "×";
position: absolute;
top: 4px;
right: 4px;
@@ -3400,30 +3135,33 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
overflow: hidden;
padding: 3px; }
.jsxc_window .slimScrollDiv {
- margin: 0 0 6px 0;
+ margin: 0 0 6px;
left: auto !important;
top: auto !important; }
- .jsxc_window input.jsxc_textinput {
+ .jsxc_window textarea.jsxc_textinput {
width: 100%;
height: 44px;
margin: 0;
- padding: 3px;
- padding-left: 40px;
- padding-right: 40px;
+ padding: 14px 40px 12px;
outline: none;
border-radius: 0;
box-sizing: border-box;
- border: 0; }
- .jsxc_window input::-webkit-input-placeholder {
+ border: 0;
+ display: block;
+ resize: none;
+ -webkit-transition: height 0.5s;
+ transition: height 0.5s;
+ font-size: 13px; }
+ .jsxc_window textarea::-webkit-input-placeholder {
color: #000;
opacity: 0.3; }
- .jsxc_window input::-moz-placeholder {
+ .jsxc_window textarea::-moz-placeholder {
color: #000;
opacity: 0.3; }
- .jsxc_window input:-ms-input-placeholder {
+ .jsxc_window textarea:-ms-input-placeholder {
color: #000;
opacity: 0.3; }
- .jsxc_window input::placeholder {
+ .jsxc_window textarea::placeholder {
color: #000;
opacity: 0.3; }
.jsxc_window .jsxc_tools {
@@ -3443,12 +3181,12 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
cursor: pointer;
text-align: center; }
.jsxc_window .jsxc_tools > div.jsxc_settings {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_window .jsxc_close {
font-size: 20px; }
.jsxc_window .jsxc_close:hover {
color: #fff;
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_window .jsxc_more {
background-image: url('../img/more_white.svg');
opacity: 0.4; }
@@ -3477,10 +3215,40 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
position: relative;
outline: none;
clear: both; }
+ .jsxc_chatmessage.jsxc_error {
+ opacity: 0.7; }
+ .jsxc_chatmessage.jsxc_error:before {
+ content: " ";
+ position: absolute;
+ top: 3px;
+ right: 3px;
+ width: 8px;
+ height: 8px;
+ background-color: yellow; }
.jsxc_chatmessage a {
color: #00f;
text-decoration: underline;
- display: inline-block; }
+ display: inline-block;
+ max-width: 100%;
+ position: relative; }
+ .jsxc_chatmessage a[download]:before {
+ content: " ";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 5px;
+ left: 0;
+ border-radius: 3px;
+ background-color: rgba(255, 255, 255, 0.7);
+ background-image: url("../img/download_icon_black.svg");
+ background-size: contain;
+ background-position: center center;
+ background-repeat: no-repeat;
+ opacity: 0;
+ -webkit-transition: opacity 0.5s;
+ transition: opacity 0.5s; }
+ .jsxc_chatmessage a[download]:hover:before {
+ opacity: 0.6; }
.jsxc_chatmessage img {
max-width: 100%; }
.jsxc_chatmessage .jsxc_avatar {
@@ -3499,9 +3267,10 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.jsxc_chatmessage .jsxc_attachment img {
border-radius: 3px; }
.jsxc_chatmessage .jsxc_attachment.jsxc_image {
- line-height: 0px;
+ line-height: 0;
padding: 0;
- background-image: url(); }
+ background-image: url("");
+ display: inline-block; }
.jsxc_chatmessage .jsxc_attachment.jsxc_application {
background-image: url('../img/filetypes/application.svg'); }
.jsxc_chatmessage .jsxc_attachment.jsxc_application-pdf {
@@ -3509,7 +3278,8 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
.jsxc_chatmessage .jsxc_attachment.jsxc_audio {
background-image: url('../img/filetypes/audio.svg'); }
.jsxc_chatmessage .jsxc_attachment.jsxc_video {
- background-image: url('../img/filetypes/video.svg'); }
+ background-image: url('../img/filetypes/video.svg');
+ opacity: 1; }
.jsxc_chatmessage .jsxc_attachment.jsxc_text {
background-image: url('../img/filetypes/text.svg'); }
@@ -3544,7 +3314,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
border-radius: 3px;
background-color: #DBEDFF; }
.jsxc_in:after {
- content: ' ';
+ content: " ";
position: absolute;
border-style: solid;
border-width: 5px 6px 5px 0;
@@ -3566,7 +3336,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
border-radius: 3px;
background-color: #e6ffd1; }
.jsxc_out:after {
- content: ' ';
+ content: " ";
position: absolute;
border-style: solid;
border-width: 5px 0 5px 6px;
@@ -3577,7 +3347,7 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
right: -6px;
bottom: 10px; }
.jsxc_out.jsxc_received:before {
- content: '✓';
+ content: "✓";
position: absolute;
bottom: 2px;
right: 2px;
@@ -3595,7 +3365,34 @@ fieldset[disabled] #jsxc_webrtc .checkbox label {
padding-right: 4px;
box-sizing: border-box;
margin-right: 3px;
- border-radius: 3px; }
+ border-radius: 3px;
+ background-color: transparent;
+ font-size: 0.8em;
+ font-style: italic; }
+ .jsxc_sys .jsxc_emoticon {
+ width: 1.2em;
+ height: 1.2em;
+ vertical-align: middle; }
+ .jsxc_sys.jsxc_composing {
+ text-align: center;
+ font-size: 0.9em;
+ font-style: italic;
+ display: block;
+ opacity: 0;
+ overflow: hidden;
+ -webkit-transition: opacity 0.6s;
+ transition: opacity 0.6s; }
+ .jsxc_sys.jsxc_composing:before {
+ content: " ";
+ width: 1.5em;
+ height: 1em;
+ display: inline-block;
+ background-size: 80%;
+ background-repeat: no-repeat;
+ margin: 0 3px 0 0;
+ background-image: url('../img/composing.png'); }
+ .jsxc_sys.jsxc_composing.jsxc_fadein {
+ opacity: 1; }
div.jsxc_settings {
position: relative; }
@@ -3617,22 +3414,22 @@ div.jsxc_transfer {
right: 0;
cursor: pointer; }
div.jsxc_transfer:hover {
- opacity: 1.0; }
+ opacity: 1; }
div.jsxc_transfer.jsxc_disabled {
background-image: url('../img/padlock_open_disabled_black.svg');
cursor: default; }
div.jsxc_transfer.jsxc_disabled:hover {
opacity: 0.3; }
div.jsxc_transfer.jsxc_fin {
- opacity: 1.0;
+ opacity: 1;
background-image: url('../img/padlock_close_grey.svg'); }
div.jsxc_transfer.jsxc_enc {
- opacity: 1.0;
+ opacity: 1;
background-image: url('../img/padlock_close_orange.svg'); }
div.jsxc_transfer.jsxc_enc.jsxc_trust {
background-image: url('../img/padlock_close_green.svg'); }
-.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_bar .jsxc_avatar, li[data-type="groupchat"] .jsxc_avatar {
+.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_bar .jsxc_avatar, li[data-type='groupchat'] .jsxc_avatar {
text-indent: 999px;
background-image: url('../img/group_white.svg');
background-size: 70% 70% !important;
@@ -3650,14 +3447,14 @@ div.jsxc_transfer {
background-repeat: no-repeat;
background-position: center; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_members:hover {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_chatmessage.jsxc_in {
margin-left: 50px; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_chatmessage.jsxc_in .jsxc_avatar {
display: block;
position: absolute;
- bottom: 0px;
+ bottom: 0;
left: -50px;
background-color: #777; }
.jsxc_windowItem.jsxc_groupchat.jsxc_normal .jsxc_chatmessage.jsxc_in .jsxc_avatar:before {
@@ -3669,7 +3466,7 @@ div.jsxc_transfer {
background-color: #1d2d44;
overflow: hidden;
position: absolute;
- top: 0px;
+ top: 0;
-webkit-transition: height 400ms;
transition: height 400ms;
z-index: 100; }
@@ -3681,7 +3478,7 @@ div.jsxc_transfer {
overflow: hidden;
-webkit-transition: left 400ms;
transition: left 400ms;
- padding: 0px;
+ padding: 0;
padding-left: 6px;
padding-right: 6px;
padding-top: 3px; }
@@ -3694,7 +3491,7 @@ div.jsxc_transfer {
display: none; }
.jsxc_windowItem .jsxc_memberlist ul > li .jsxc_avatar {
margin-left: 2px;
- margin-right: 0px; }
+ margin-right: 0; }
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul {
white-space: normal; }
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul > li {
@@ -3710,7 +3507,7 @@ div.jsxc_transfer {
.jsxc_windowItem .jsxc_memberlist.jsxc_expand ul > li .jsxc_avatar {
margin-right: 4px; }
-li[data-type="groupchat"] .jsxc_video {
+li[data-type='groupchat'] .jsxc_video {
display: none; }
.jsxc_right {
@@ -3740,6 +3537,10 @@ li[data-type="groupchat"] .jsxc_video {
.jsxc_maxWidth {
max-width: 500px; }
+.jsxc_meta {
+ text-align: right;
+ font-style: italic; }
+
#jsxc_dialog {
padding: 20px;
min-width: 320px;
@@ -3748,8 +3549,7 @@ li[data-type="groupchat"] .jsxc_video {
text-align: left;
position: relative;
background: #FFF;
- width: auto;
- border-radius: 5px; }
+ width: auto; }
#jsxc_dialog * {
box-sizing: border-box; }
#jsxc_dialog ul {
@@ -3765,8 +3565,10 @@ li[data-type="groupchat"] .jsxc_video {
margin-bottom: 5px;
width: 60%;
outline: none; }
- #jsxc_dialog p input[type="submit"] {
+ #jsxc_dialog p input[type='submit'] {
width: auto; }
+ #jsxc_dialog table {
+ margin-bottom: 1em; }
#jsxc_dialog hr {
border: 0;
border-top: 1px solid #eee;
@@ -3779,20 +3581,16 @@ li[data-type="groupchat"] .jsxc_video {
margin-top: 20px; }
#jsxc_dialog .jsxc_right {
margin-top: 20px; }
- #jsxc_dialog form {
- /*&.col-sm-6:nth-child(odd) {
- clear: left;
- }*/ }
- #jsxc_dialog form fieldset {
- margin-bottom: 30px;
- padding: 0px 30px;
- border: 1px solid #d9d9d9; }
- #jsxc_dialog form fieldset h3 {
- font-size: 15px;
- color: #000;
- background-color: #f2f2f2;
- padding: 10px;
- margin: 0 -30px 10px -30px; }
+ #jsxc_dialog form fieldset {
+ margin-bottom: 30px;
+ padding: 0 30px;
+ border: 1px solid #d9d9d9; }
+ #jsxc_dialog form fieldset h3 {
+ font-size: 15px;
+ color: #000;
+ background-color: #f2f2f2;
+ padding: 10px;
+ margin: 0 -30px 10px; }
#jsxc_dialog legend {
border: 0;
font-size: 20px; }
@@ -3803,11 +3601,11 @@ li[data-type="groupchat"] .jsxc_video {
#jsxc_dialog .btn-group button {
margin-right: 0; }
#jsxc_dialog input[readonly] {
- background-color: #e6e6e6; }
+ background-color: #e6e5e5; }
#jsxc_dialog .jsxc_inputinfo {
- padding-left: 30%;
+ padding: 0;
font-style: italic;
- margin-top: -1em; }
+ margin: 0; }
#jsxc_dialog .jsxc_waiting:before {
content: " ";
width: 1em;
@@ -3818,19 +3616,24 @@ li[data-type="groupchat"] .jsxc_video {
background-image: url('../img/loading.gif'); }
#jsxc_dialog .jsxc_libraries, #jsxc_dialog .jsxc_credits {
max-width: 300px; }
+ #jsxc_dialog .jsxc_warning {
+ display: block;
+ background-color: #fbfe7a;
+ padding: 3px 10px;
+ border-radius: 3px; }
.jsxc_avatar {
width: 36px;
height: 36px;
line-height: 36px;
- margin: 0px 5px;
+ margin: 0 5px;
background-color: #999999;
border-radius: 50%;
float: left;
text-align: center;
font-weight: bold;
font-size: 30px;
- color: #b3b3b3;
+ color: #b3b2b2;
position: relative;
font-family: Arial, sans-serif;
background-size: cover;
@@ -3855,7 +3658,6 @@ ul.jsxc_vCard {
ul.jsxc_vCard li {
cursor: default !important; }
-/** Spot which is attached to xmpp: uris */
.jsxc_spot {
display: inline-block;
width: 12px;
@@ -3891,7 +3693,6 @@ ul.jsxc_vCard {
margin-right: 3px;
margin-top: 4px; }
-/** TODO: check if required */
.jsxc_list .jsxc_inner {
box-sizing: border-box;
max-height: 0;
@@ -3919,8 +3720,7 @@ ul.jsxc_vCard {
background-size: 32px 32px !important;
background: url('../img/loading.gif'); }
-/* @TODO: check */
-#jsxc_loginForm input[type="submit"] {
+#jsxc_loginForm input[type='submit'] {
height: 34px;
display: inline-block;
padding: 6px 12px;
@@ -3968,7 +3768,7 @@ img.jsxc_vCard {
min-width: 25px;
display: inline-block;
padding: 6px 12px;
- margin: 0px 2px;
+ margin: 0 2px;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
@@ -3982,15 +3782,21 @@ img.jsxc_vCard {
user-select: none;
background-image: none;
border: 1px solid transparent;
- border-radius: 4px; }
+ border-radius: 4px;
+ -webkit-transition: background-color 0.5s;
+ transition: background-color 0.5s; }
.jsxc_btn.jsxc_btn-default {
border-color: #ccc;
color: #555;
background-color: rgba(240, 240, 240, 0.9); }
+ .jsxc_btn.jsxc_btn-default:hover {
+ background-color: #d6d6d6; }
.jsxc_btn.jsxc_btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4; }
+ .jsxc_btn.jsxc_btn-primary:hover {
+ background-color: #296496; }
.jsxc_btn[disabled], .jsxc_btn[disabled]:hover {
opacity: 0.65;
cursor: not-allowed;
@@ -4003,12 +3809,12 @@ img.jsxc_vCard {
position: absolute;
background-color: #FFF;
color: #333;
- border-radius: 3px 3px 3px 3px;
+ border-radius: 3px;
z-index: 110;
margin: 8px 2px 5px 10px;
- right: 0px;
- -webkit-filter: drop-shadow(0px 0px 5px rgba(150, 150, 150, 0.75));
- filter: drop-shadow(0px 0px 5px rgba(150, 150, 150, 0.75));
+ right: 0;
+ -webkit-filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
+ filter: drop-shadow(0 0 5px rgba(150, 150, 150, 0.75));
padding: 4px 12px;
padding-left: 5px; }
.jsxc_menu:after {
@@ -4038,7 +3844,7 @@ img.jsxc_vCard {
white-space: nowrap; }
.jsxc_menu a:hover {
text-decoration: none;
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_menu a.jsxc_disabled {
text-decoration: line-through;
opacity: 0.5; }
@@ -4087,6 +3893,9 @@ img.jsxc_vCard {
.jsxc_bookmarkicon {
background-image: url('../img/bookmark_black.svg'); }
+.jsxc_announcementicon {
+ background-image: url('../img/megaphone_icon_black.svg'); }
+
.jsxc_more {
float: right;
width: 44px;
@@ -4097,7 +3906,7 @@ img.jsxc_vCard {
background-position: center;
opacity: 0.4; }
.jsxc_more:hover {
- opacity: 1.0; }
+ opacity: 1; }
@media (min-width: 768px) {
.jsxc_more {
width: 25px; } }
@@ -4138,13 +3947,207 @@ img.jsxc_vCard {
#jsxc_webrtc li .jsxc_name:hover {
color: #bbb; }
+.jsxc_establishing:after, .jsxc_ringing:after {
+ content: " ";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.4);
+ z-index: 10; }
+
+.jsxc_establishing:before {
+ content: " ";
+ display: block;
+ width: 40px;
+ height: 10px;
+ box-sizing: border-box;
+ background-color: #a1a1a1;
+ -webkit-animation-name: jsxc_establishing;
+ animation-name: jsxc_establishing;
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 20;
+ margin-left: -20px;
+ margin-top: -5px; }
+
+@-webkit-keyframes jsxc_establishing {
+ 0% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; }
+ 50% {
+ background-color: #f1f1f1;
+ width: 80px;
+ margin-left: -40px; }
+ 100% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; } }
+
+@keyframes jsxc_establishing {
+ 0% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; }
+ 50% {
+ background-color: #f1f1f1;
+ width: 80px;
+ margin-left: -40px; }
+ 100% {
+ border-width: 0;
+ background-color: #a1a1a1;
+ width: 40px;
+ margin-left: -20px; } }
+
+.jsxc_ringing:before {
+ content: " ";
+ display: block;
+ width: 20px;
+ height: 20px;
+ box-sizing: border-box;
+ background-color: #98d48f;
+ border-radius: 50%;
+ -webkit-animation-name: jsxc_ringing;
+ animation-name: jsxc_ringing;
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 20;
+ margin-left: -10px;
+ margin-top: -10px; }
+
+@-webkit-keyframes jsxc_ringing {
+ 0% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; }
+ 50% {
+ background-color: #76ba6c;
+ width: 80px;
+ height: 80px;
+ margin-left: -40px;
+ margin-top: -40px; }
+ 100% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; } }
+
+@keyframes jsxc_ringing {
+ 0% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; }
+ 50% {
+ background-color: #76ba6c;
+ width: 80px;
+ height: 80px;
+ margin-left: -40px;
+ margin-top: -40px; }
+ 100% {
+ background-color: #98d48f;
+ width: 20px;
+ height: 20px;
+ margin-left: -10px;
+ margin-top: -10px; } }
+
+.jsxc_bell:before {
+ content: " ";
+ display: block;
+ width: 80px;
+ height: 80px;
+ box-sizing: border-box;
+ background-image: url('../img/bell.svg');
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ -webkit-animation-name: jsxc_ringing;
+ animation-name: jsxc_ringing;
+ -webkit-animation-duration: 1.5s;
+ animation-duration: 1.5s;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ z-index: 20;
+ margin-left: -40px;
+ margin-top: -40px; }
+
+@-webkit-keyframes jsxc_bell {
+ 0% {
+ margin-left: -50px; }
+ 5% {
+ margin-left: -30px; }
+ 10% {
+ margin-left: -50px; }
+ 15% {
+ margin-left: -30px; }
+ 20% {
+ margin-left: -50px; }
+ 25% {
+ margin-left: -30px; }
+ 30% {
+ margin-left: -50px; }
+ 35% {
+ margin-left: -40px; } }
+
+@keyframes jsxc_bell {
+ 0% {
+ margin-left: -50px; }
+ 5% {
+ margin-left: -30px; }
+ 10% {
+ margin-left: -50px; }
+ 15% {
+ margin-left: -30px; }
+ 20% {
+ margin-left: -50px; }
+ 25% {
+ margin-left: -30px; }
+ 30% {
+ margin-left: -50px; }
+ 35% {
+ margin-left: -40px; } }
+
.jsxc_videoContainer {
position: absolute;
top: 0;
left: 0;
- right: 0px;
- bottom: 0px;
+ right: 0;
+ bottom: 0;
background-color: #999999; }
+ .jsxc_videoContainer.jsxc_minimized {
+ position: fixed;
+ top: 10px;
+ left: 10px;
+ right: auto;
+ bottom: auto;
+ z-index: 99;
+ background-color: transparent;
+ box-shadow: 0 0 10px #a1a1a1; }
+ .jsxc_videoContainer.jsxc_minimized .jsxc_localvideo {
+ position: static;
+ display: block; }
.jsxc_videoContainer video {
display: none; }
.jsxc_videoContainer .jsxc_noRemoteVideo {
@@ -4155,7 +4158,7 @@ img.jsxc_vCard {
.jsxc_videoContainer .jsxc_controlbar {
opacity: 0; }
.jsxc_videoContainer:hover .jsxc_controlbar {
- opacity: 1.0; } }
+ opacity: 1; } }
.jsxc_noRemoteVideo p {
position: absolute;
@@ -4176,7 +4179,7 @@ img.jsxc_vCard {
left: 50%;
margin-left: -100px; }
.jsxc_noRemoteVideo > div > div {
- background-color: #4d4d4d; }
+ background-color: #4d4c4c; }
.jsxc_noRemoteVideo > div > div:first-child {
width: 50%;
height: 50%;
@@ -4200,7 +4203,7 @@ img.jsxc_vCard {
bottom: 10px;
z-index: 9990;
background-color: #000;
- cursor: pointer; }
+ cursor: move; }
div:full-screen {
width: 100%;
@@ -4246,13 +4249,13 @@ div.jsxc_video {
div.jsxc_video.jsxc_disabled {
background-image: url('../img/camera_disabled_icon_white.svg'); }
div.jsxc_video:not(.jsxc_disabled):hover {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_controlbar {
position: absolute;
top: 50px;
left: 0;
- right: 0px;
+ right: 0;
text-align: center;
z-index: 9090;
-webkit-transition: 1s opacity;
@@ -4263,12 +4266,12 @@ div.jsxc_video {
bottom: 5%;
top: initial; } }
.jsxc_controlbar.jsxc_visible {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_controlbar > div {
background-color: rgba(0, 0, 0, 0.5);
height: 44px;
border-radius: 22px;
- padding: 0px 5px;
+ padding: 0 5px;
display: inline-block; }
.jsxc_controlbar .jsxc_videoControl {
height: 44px;
@@ -4281,7 +4284,7 @@ div.jsxc_video {
display: inline-block;
opacity: 0.8; }
.jsxc_controlbar .jsxc_videoControl:hover {
- opacity: 1.0; }
+ opacity: 1; }
.jsxc_controlbar .jsxc_hangUp {
background-image: url('../img/hang_up_red.svg'); }
.jsxc_controlbar .jsxc_fullscreen {
@@ -4335,65 +4338,6 @@ div.jsxc_video {
list-style: none;
padding: 0; }
-.bubblingG {
- text-align: center;
- width: 129px;
- height: 80px;
- position: absolute;
- top: 40%;
- left: 50%;
- margin-left: -64px; }
- .bubblingG span {
- display: inline-block;
- vertical-align: middle;
- width: 16px;
- height: 16px;
- margin: 40px auto;
- background: #000;
- border-radius: 81px;
- -webkit-animation: bubblingG 1.3s infinite alternate;
- animation: bubblingG 1.3s infinite alternate; }
-
-#bubblingG_1 {
- -webkit-animation-delay: 0s;
- animation-delay: 0s; }
-
-#bubblingG_2 {
- -webkit-animation-delay: 0.39s;
- animation-delay: 0.39s; }
-
-#bubblingG_3 {
- -webkit-animation-delay: 0.78s;
- animation-delay: 0.78s; }
-
-@-webkit-keyframes bubblingG {
- 0% {
- width: 16px;
- height: 16px;
- background-color: #000;
- -webkit-transform: translateY(0);
- transform: translateY(0); }
- 100% {
- width: 39px;
- height: 39px;
- background-color: #fff;
- -webkit-transform: translateY(-34px);
- transform: translateY(-34px); } }
-
-@keyframes bubblingG {
- 0% {
- width: 16px;
- height: 16px;
- background-color: #000;
- -webkit-transform: translateY(0);
- transform: translateY(0); }
- 100% {
- width: 39px;
- height: 39px;
- background-color: #fff;
- -webkit-transform: translateY(-34px);
- transform: translateY(-34px); } }
-
.jsxc_fullscreen.jsxc_localvideo {
border: 1px solid #fff; }
diff --git a/build/js/jsxc/css/magnific-popup.css b/build/js/jsxc/css/magnific-popup.css
index a530c65..8561e18 100644
--- a/build/js/jsxc/css/magnific-popup.css
+++ b/build/js/jsxc/css/magnific-popup.css
@@ -8,8 +8,7 @@
overflow: hidden;
position: fixed;
background: #0b0b0b;
- opacity: 0.8;
- filter: alpha(opacity=80); }
+ opacity: 0.8; }
.mfp-wrap {
top: 0;
@@ -29,8 +28,6 @@
left: 0;
top: 0;
padding: 0 8px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
box-sizing: border-box; }
.mfp-container:before {
@@ -50,7 +47,8 @@
text-align: left;
z-index: 1045; }
-.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
+.mfp-inline-holder .mfp-content,
+.mfp-ajax-holder .mfp-content {
width: 100%;
cursor: auto; }
@@ -71,7 +69,10 @@
.mfp-auto-cursor .mfp-content {
cursor: auto; }
-.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter {
+.mfp-close,
+.mfp-arrow,
+.mfp-preloader,
+.mfp-counter {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; }
@@ -103,7 +104,8 @@
.mfp-s-error .mfp-content {
display: none; }
-button.mfp-close, button.mfp-arrow {
+button.mfp-close,
+button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
@@ -113,8 +115,9 @@ button.mfp-close, button.mfp-arrow {
outline: none;
padding: 0;
z-index: 1046;
- -webkit-box-shadow: none;
- box-shadow: none; }
+ box-shadow: none;
+ touch-action: manipulation; }
+
button::-moz-focus-inner {
padding: 0;
border: 0; }
@@ -129,22 +132,22 @@ button::-moz-focus-inner {
text-decoration: none;
text-align: center;
opacity: 0.65;
- filter: alpha(opacity=65);
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
- .mfp-close:hover, .mfp-close:focus {
- opacity: 1;
- filter: alpha(opacity=100); }
+ .mfp-close:hover,
+ .mfp-close:focus {
+ opacity: 1; }
.mfp-close:active {
top: 1px; }
.mfp-close-btn-in .mfp-close {
color: #333; }
-.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close {
+.mfp-image-holder .mfp-close,
+.mfp-iframe-holder .mfp-close {
color: #FFF;
right: -6px;
text-align: right;
@@ -163,20 +166,20 @@ button::-moz-focus-inner {
.mfp-arrow {
position: absolute;
opacity: 0.65;
- filter: alpha(opacity=65);
margin: 0;
top: 50%;
margin-top: -55px;
padding: 0;
width: 90px;
height: 110px;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
+ -webkit-tap-highlight-color: transparent; }
.mfp-arrow:active {
margin-top: -54px; }
- .mfp-arrow:hover, .mfp-arrow:focus {
- opacity: 1;
- filter: alpha(opacity=100); }
- .mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a {
+ .mfp-arrow:hover,
+ .mfp-arrow:focus {
+ opacity: 1; }
+ .mfp-arrow:before,
+ .mfp-arrow:after {
content: '';
display: block;
width: 0;
@@ -187,30 +190,30 @@ button::-moz-focus-inner {
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
- .mfp-arrow:after, .mfp-arrow .mfp-a {
+ .mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
- .mfp-arrow:before, .mfp-arrow .mfp-b {
+ .mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
- .mfp-arrow-left:after, .mfp-arrow-left .mfp-a {
+ .mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
- .mfp-arrow-left:before, .mfp-arrow-left .mfp-b {
+ .mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
- .mfp-arrow-right:after, .mfp-arrow-right .mfp-a {
+ .mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
- .mfp-arrow-right:before, .mfp-arrow-right .mfp-b {
+ .mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
@@ -245,8 +248,6 @@ img.mfp-img {
height: auto;
display: block;
line-height: 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
box-sizing: border-box;
padding: 40px 0 40px;
margin: 0 auto; }
@@ -318,8 +319,6 @@ img.mfp-img {
top: auto;
padding: 3px 5px;
position: fixed;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
box-sizing: border-box; }
.mfp-img-mobile .mfp-bottom-bar:empty {
padding: 0; }
@@ -335,40 +334,18 @@ img.mfp-img {
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
- padding: 0; }
- }
+ padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
-
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
-
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
-
.mfp-container {
padding-left: 6px;
- padding-right: 6px; }
- }
-
-.mfp-ie7 .mfp-img {
- padding: 0; }
-.mfp-ie7 .mfp-bottom-bar {
- width: 600px;
- left: 50%;
- margin-left: -300px;
- margin-top: 5px;
- padding-bottom: 5px; }
-.mfp-ie7 .mfp-container {
- padding: 0; }
-.mfp-ie7 .mfp-content {
- padding-top: 44px; }
-.mfp-ie7 .mfp-close {
- top: 0;
- right: 0;
- padding-top: 0; }
+ padding-right: 6px; } }
diff --git a/build/js/jsxc/img/bell.svg b/build/js/jsxc/img/bell.svg
new file mode 100644
index 0000000..8f82d27
--- /dev/null
+++ b/build/js/jsxc/img/bell.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ viewBox="0 0 39.041695 39.099998"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="bell.svg"
+ width="39.041695"
+ height="39.099998">
+ <metadata
+ id="metadata10">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs8" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1879"
+ inkscape:window-height="1176"
+ id="namedview6"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="4.9166667"
+ inkscape:cx="-11.174035"
+ inkscape:cy="19.6"
+ inkscape:window-x="1241"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <path
+ d="m 17.237829,2.3 0,1.3 c -9.8999997,1 -11.0999997,8.9 -12.0999997,15.9 -0.7,4.7 -1.3,9.6 -4.49999996,12.9 -0.6,0.7 -0.8,1.6 -0.5,2.5 0.4,0.8 1.19999996,1.4 2.09999996,1.4 l 14.2999997,0 c 0.1,1.6 1.3,2.8 2.9,2.8 1.5,0 2.8,-1.3 2.9,-2.8 l 14.4,0 c 0.9,0 1.8,-0.6 2.1,-1.4 0.4,-0.8 0.2,-1.8 -0.5,-2.5 -3.2,-3.3 -3.9,-8.2 -4.5,-12.9 -1,-7 -2.1,-14.9 -12,-15.9 l 0,-1.3 c 0,-1.3 -1,-2.3 -2.3,-2.3 -1.3,0 -2.3,1 -2.3,2.3 z"
+ id="path4"
+ inkscape:connector-curvature="0"
+ style="fill:#ffd42a"
+ sodipodi:nodetypes="sccccscscsccccsss" />
+</svg>
diff --git a/build/js/jsxc/img/composing.png b/build/js/jsxc/img/composing.png
new file mode 100644
index 0000000..184e7a7
--- /dev/null
+++ b/build/js/jsxc/img/composing.png
Binary files differ
diff --git a/build/js/jsxc/img/download_icon_black.svg b/build/js/jsxc/img/download_icon_black.svg
new file mode 100644
index 0000000..bcc2209
--- /dev/null
+++ b/build/js/jsxc/img/download_icon_black.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="21.394722mm"
+ height="21.910841mm"
+ viewBox="0 0 75.80807 77.636838"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="download_icon_black.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutL"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4284"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4163"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4145"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutL-3"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4284-6"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="scale(0.8,0.8)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="117.96485"
+ inkscape:cy="91.364339"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="3"
+ fit-margin-left="3"
+ fit-margin-right="3"
+ fit-margin-bottom="3"
+ inkscape:window-width="1879"
+ inkscape:window-height="1176"
+ inkscape:window-x="1241"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-166.10174,-173.88056)">
+ <g
+ id="g5502"
+ transform="matrix(1.0000028,0,0,0.71287559,-5.7884032e-4,65.007272)" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.80164051;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 196.99057,184.51048 0,16.68156 13.80277,0 0,-16.68156 z m -13.38006,16.68892 20.43951,25.20823 1.81836,-2.24305 18.62115,-22.96518 z"
+ id="path4136-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:11.7298975;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 231.27989,235.02253 -54.54823,0"
+ id="path4136-7-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/build/js/jsxc/img/download_icon_gray.svg b/build/js/jsxc/img/download_icon_gray.svg
new file mode 100644
index 0000000..9f978d9
--- /dev/null
+++ b/build/js/jsxc/img/download_icon_gray.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="21.394722mm"
+ height="21.910841mm"
+ viewBox="0 0 75.80807 77.636838"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="download_icon_gray.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutL"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4284"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4163"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4145"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutL-3"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4284-6"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="scale(0.8,0.8)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="117.96485"
+ inkscape:cy="91.364339"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="3"
+ fit-margin-left="3"
+ fit-margin-right="3"
+ fit-margin-bottom="3"
+ inkscape:window-width="1879"
+ inkscape:window-height="1176"
+ inkscape:window-x="1241"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-166.10174,-173.88056)">
+ <g
+ id="g5502"
+ transform="matrix(1.0000028,0,0,0.71287559,-5.7884032e-4,65.007272)" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.80164051;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 196.99057,184.51048 0,16.68156 13.80277,0 0,-16.68156 z m -13.38006,16.68892 20.43951,25.20823 1.81836,-2.24305 18.62115,-22.96518 z"
+ id="path4136-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#808080;stroke-width:11.7298975;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 231.27989,235.02253 -54.54823,0"
+ id="path4136-7-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/build/js/jsxc/img/download_icon_white.svg b/build/js/jsxc/img/download_icon_white.svg
new file mode 100644
index 0000000..576a0a4
--- /dev/null
+++ b/build/js/jsxc/img/download_icon_white.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="21.394722mm"
+ height="21.910841mm"
+ viewBox="0 0 75.80807 77.636838"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="download_icon_white.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutL"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4284"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4163"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ id="path4145"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="TriangleOutL-3"
+ style="overflow:visible"
+ inkscape:isstock="true">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4284-6"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ transform="scale(0.8,0.8)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="117.96485"
+ inkscape:cy="91.364339"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="3"
+ fit-margin-left="3"
+ fit-margin-right="3"
+ fit-margin-bottom="3"
+ inkscape:window-width="1879"
+ inkscape:window-height="1176"
+ inkscape:window-x="1241"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-166.10174,-173.88056)">
+ <g
+ id="g5502"
+ transform="matrix(1.0000028,0,0,0.71287559,-5.7884032e-4,65.007272)" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.80164051;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 196.99057,184.51048 0,16.68156 13.80277,0 0,-16.68156 z m -13.38006,16.68892 20.43951,25.20823 1.81836,-2.24305 18.62115,-22.96518 z"
+ id="path4136-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:11.7298975;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 231.27989,235.02253 -54.54823,0"
+ id="path4136-7-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/build/js/jsxc/img/emotions/nextcloud.svg b/build/js/jsxc/img/emotions/nextcloud.svg
new file mode 100644
index 0000000..3126a03
--- /dev/null
+++ b/build/js/jsxc/img/emotions/nextcloud.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ viewBox="0 0 140 139.99999"
+ enable-background="new 0 0 196.6 72"
+ xml:space="preserve"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="sticker.svg"
+ width="140"
+ height="140"><metadata
+ id="metadata20"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs18" /><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="2560"
+ inkscape:window-height="1399"
+ id="namedview16"
+ showgrid="false"
+ inkscape:zoom="2.8284271"
+ inkscape:cx="102.28545"
+ inkscape:cy="82.729303"
+ inkscape:current-layer="Layer_1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-x="0"
+ inkscape:window-y="240"
+ inkscape:window-maximized="1" /><circle
+ style="opacity:0.98000004;fill:#0082c9;fill-opacity:1;stroke:none;stroke-width:5.56599998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+ id="path4171"
+ cx="70"
+ cy="70"
+ r="70" /><path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5.56589985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 70.07621,37.475328 c -10.3653,0 -19.15076,7.026991 -21.87366,16.547771 C 45.83606,48.973133 40.7078,45.435208 34.80093,45.435208 26.6776,45.435208 20,52.112806 20,60.236135 c 0,8.123331 6.6776,14.803975 14.80093,14.803975 5.90687,0 11.03513,-3.540092 13.40162,-8.590939 2.7229,9.521501 11.50836,16.550821 21.87366,16.550821 10.28865,0 19.0293,-6.923312 21.82184,-16.337419 2.41022,4.936191 7.47501,8.377537 13.29797,8.377537 8.12334,0 14.80398,-6.680644 14.80398,-14.803975 0,-8.123329 -6.68064,-14.800927 -14.80398,-14.800927 -5.82296,0 -10.88775,3.439186 -13.29797,8.37449 -2.79254,-9.413374 -11.53319,-16.33437 -21.82184,-16.33437 z m 0,8.688494 c 7.82463,0 14.07537,6.24771 14.07537,14.072313 0,7.824605 -6.25074,14.075361 -14.07537,14.075361 -7.82459,0 -14.0723,-6.250756 -14.0723,-14.075361 0,-7.824603 6.24771,-14.072312 14.0723,-14.072313 z m -35.27528,7.959882 c 3.42814,0 6.11548,2.684285 6.11548,6.112431 0,3.428146 -2.68734,6.115481 -6.11548,6.115481 -3.42815,0 -6.11244,-2.687335 -6.11244,-6.115481 0,-3.428146 2.68429,-6.112431 6.11244,-6.112431 z m 70.39509,0 c 3.42816,0 6.11548,2.684285 6.11548,6.112431 0,3.428146 -2.68733,6.115481 -6.11548,6.115481 -3.42813,0 -6.11242,-2.687335 -6.11242,-6.115481 0,-3.428146 2.68431,-6.112431 6.11242,-6.112431 z"
+ id="XMLID_107_"
+ inkscape:connector-curvature="0" /><g
+ id="g4571"
+ transform="matrix(0.41300981,0,0,0.41300981,30,73.263286)"
+ style="opacity:1;fill:#ffffff;fill-opacity:1"><path
+ id="XMLID_121_"
+ d="m 37.669669,48.9 c 5.9,0 9.2,4.2 9.2,10.5 0,0.6 -0.5,1.1 -1.1,1.1 l -15.9,0 c 0.1,5.6 4,8.8 8.5,8.8 2.8,0 4.8,-1.2 5.8,-2 0.6,-0.4 1.1,-0.3 1.4,0.3 l 0.3,0.5 c 0.3,0.5 0.2,1 -0.3,1.4 -1.2,0.9 -3.8,2.4 -7.3,2.4 -6.5,0 -11.5,-4.7 -11.5,-11.5 0.1,-7.2 4.9,-11.5 10.9,-11.5 z m 6.1,9.4 c -0.2,-4.6 -3,-6.9 -6.2,-6.9 -3.7,0 -6.9,2.4 -7.6,6.9 l 13.8,0 z"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1" /><path
+ id="XMLID_119_"
+ d="m 76.9,52.1 0,-2.5 0,-5.2 c 0,-0.7 0.4,-1.1 1.1,-1.1 l 0.8,0 c 0.7,0 1,0.4 1,1.1 l 0,5.2 4.5,0 c 0.7,0 1.1,0.4 1.1,1.1 l 0,0.3 c 0,0.7 -0.4,1 -1.1,1 l -4.5,0 0,11 c 0,5.1 3.1,5.7 4.8,5.8 0.9,0.1 1.2,0.3 1.2,1.1 l 0,0.6 c 0,0.7 -0.3,1 -1.2,1 -4.8,0 -7.7,-2.9 -7.7,-8.1 l 0,-11.3 z"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1" /><path
+ id="XMLID_117_"
+ d="m 99.8,48.9 c 3.8,0 6.2,1.6 7.3,2.5 0.5,0.4 0.6,0.9 0.1,1.5 l -0.3,0.5 c -0.4,0.6 -0.9,0.6 -1.5,0.2 -1,-0.7 -2.9,-2 -5.5,-2 -4.8,0 -8.6,3.6 -8.6,8.9 0,5.2 3.8,8.8 8.6,8.8 3.1,0 5.2,-1.4 6.2,-2.3 0.6,-0.4 1,-0.3 1.4,0.3 l 0.3,0.4 c 0.3,0.6 0.2,1 -0.3,1.5 -1.1,0.9 -3.8,2.8 -7.8,2.8 -6.5,0 -11.5,-4.7 -11.5,-11.5 0.1,-6.8 5.1,-11.6 11.6,-11.6 z"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1" /><path
+ id="XMLID_115_"
+ d="m 113.1,41.8 c 0,-0.7 -0.4,-1.1 0.3,-1.1 l 0.8,0 c 0.7,0 1.8,0.4 1.8,1.1 l 0,23.9 c 0,2.8 1.3,3.1 2.3,3.2 0.5,0 0.9,0.3 0.9,1 l 0,0.7 c 0,0.7 -0.3,1.1 -1.1,1.1 -1.8,0 -5,-0.6 -5,-5.4 l 0,-24.5 z"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1" /><path
+ id="XMLID_112_"
+ d="m 133.6,48.9 c 6.4,0 11.6,4.9 11.6,11.4 0,6.6 -5.2,11.6 -11.6,11.6 -6.4,0 -11.6,-5 -11.6,-11.6 0,-6.5 5.2,-11.4 11.6,-11.4 z m 0,20.4 c 4.7,0 8.5,-3.8 8.5,-9 0,-5 -3.8,-8.7 -8.5,-8.7 -4.7,0 -8.6,3.8 -8.6,8.7 0.1,5.1 3.9,9 8.6,9 z"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1" /><path
+ id="XMLID_109_"
+ d="m 183.5,48.9 c 5.3,0 7.2,4.4 7.2,4.4 l 0.1,0 c 0,0 -0.1,-0.7 -0.1,-1.7 l 0,-9.9 c 0,-0.7 -0.3,-1.1 0.4,-1.1 l 0.8,0 c 0.7,0 1.8,0.4 1.8,1.1 l 0,28.5 c 0,0.7 -0.3,1.1 -1,1.1 l -0.7,0 c -0.7,0 -1.1,-0.3 -1.1,-1 l 0,-1.7 c 0,-0.8 0.2,-1.4 0.2,-1.4 l -0.1,0 c 0,0 -1.9,4.6 -7.6,4.6 -5.9,0 -9.6,-4.7 -9.6,-11.5 -0.2,-6.8 3.9,-11.4 9.7,-11.4 z m 0.1,20.4 c 3.7,0 7.1,-2.6 7.1,-8.9 0,-4.5 -2.3,-8.8 -7,-8.8 -3.9,0 -7.1,3.2 -7.1,8.8 0.1,5.4 2.9,8.9 7,8.9 z"
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1" /><path
+ sodipodi:nodetypes="ssssssssssscccccsss"
+ style="fill:#ffffff;fill-opacity:1"
+ inkscape:connector-curvature="0"
+ d="m 1,71.4 0.8,0 c 0.7,0 1.1,-0.4 1.1,-1.1 l 0,-21.472335 C 2.9,45.427665 6.6,43 10.8,43 c 4.2,0 7.9,2.427665 7.9,5.827665 L 18.7,70.3 c 0,0.7 0.4,1.1 1.1,1.1 l 0.8,0 c 0.7,0 1,-0.4 1,-1.1 l 0,-21.6 c 0,-5.7 -5.7,-8.5 -10.9,-8.5 l 0,0 0,0 0,0 0,0 C 5.7,40.2 0,43 0,48.7 l 0,21.6 c 0,0.7 0.3,1.1 1,1.1 z"
+ id="XMLID_103_" /><path
+ style="fill:#ffffff;fill-opacity:1"
+ inkscape:connector-curvature="0"
+ d="m 167.9,49.4 -0.8,0 c -0.7,0 -1.1,0.4 -1.1,1.1 l 0,12.1 c 0,3.4 -2.2,6.5 -6.5,6.5 -4.2,0 -6.5,-3.1 -6.5,-6.5 l 0,-12.1 c 0,-0.7 -0.4,-1.1 -1.1,-1.1 l -0.8,0 c -0.7,0 -1,0.4 -1,1.1 l 0,12.9 c 0,5.7 4.2,8.5 9.4,8.5 l 0,0 c 0,0 0,0 0,0 0,0 0,0 0,0 l 0,0 c 5.2,0 9.4,-2.8 9.4,-8.5 l 0,-12.9 c 0.1,-0.7 -0.3,-1.1 -1,-1.1 z"
+ id="XMLID_102_" /><path
+ inkscape:connector-curvature="0"
+ id="path4165-9"
+ d="m 68.908203,49.235938 c -0.244942,0.0391 -0.480102,0.202589 -0.705078,0.470703 l -4.046875,4.824218 -3.029297,3.609375 -4.585937,-5.466796 -2.488282,-2.966797 c -0.224975,-0.268116 -0.479748,-0.414718 -0.74414,-0.4375 -0.264393,-0.02278 -0.538524,0.07775 -0.806641,0.302734 l -0.613281,0.513672 c -0.536232,0.449952 -0.508545,0.948144 -0.05859,1.484375 l 4.048828,4.824219 3.357422,4 -4.916016,5.857421 c -0.0037,0.0044 -0.0061,0.0093 -0.0098,0.01367 l -2.480469,2.955078 c -0.449952,0.536232 -0.399531,1.100832 0.136719,1.550782 l 0.613281,0.511718 c 0.536231,0.449951 1.022704,0.33701 1.472656,-0.199218 l 4.046875,-4.824219 3.029297,-3.609375 4.585938,5.466797 c 0.003,0.0036 0.0067,0.0062 0.0098,0.0098 l 2.480469,2.957032 c 0.44995,0.536231 1.012595,0.584735 1.548828,0.134765 l 0.613282,-0.513671 c 0.536231,-0.449952 0.508544,-0.948144 0.05859,-1.484376 l -4.048828,-4.824218 -3.357422,-4 4.916016,-5.857422 c 0.0037,-0.0044 0.0061,-0.0093 0.0098,-0.01367 l 2.480469,-2.955078 c 0.449952,-0.53623 0.399532,-1.10083 -0.136719,-1.550781 l -0.613281,-0.513672 c -0.268115,-0.224976 -0.522636,-0.308636 -0.767578,-0.269531 z"
+ style="fill:#ffffff;fill-opacity:1" /></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/img/megaphone_icon_black.svg b/build/js/jsxc/img/megaphone_icon_black.svg
new file mode 100644
index 0000000..23a924f
--- /dev/null
+++ b/build/js/jsxc/img/megaphone_icon_black.svg
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="50"
+ height="50"
+ viewBox="0 0 50.000001 50.000001"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="megaphone_icon_black.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="26.612614"
+ inkscape:cy="26.024336"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1129"
+ inkscape:window-height="803"
+ inkscape:window-x="767"
+ inkscape:window-y="179"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1002.3622)">
+ <g
+ id="g4187"
+ transform="matrix(0.8407303,-0.32845911,0.32845911,0.8407303,-335.45536,177.93302)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4179"
+ d="m 13.089486,1030.6489 c -1.897016,-0.058 -3.3981252,1.4421 -3.6614344,2.9988 -0.2633763,1.5573 0.6611344,3.4677 2.4728394,4.0357 l 9.830872,3.2352 c 1.000256,0.3363 2.114841,0.2234 2.939838,-0.2532 0.824996,-0.4765 1.362283,-1.2236 1.628867,-2.034 0.266582,-0.8104 0.278304,-1.7318 -0.102684,-2.605 -0.380603,-0.8724 -1.20937,-1.6246 -2.212614,-1.9482 l -9.857598,-3.2437 0.02251,0.01 c -0.341324,-0.1174 -0.698412,-0.1829 -1.059186,-0.1941 l -0.0014,0 z m -0.05486,1.799 a 1.8006546,1.8006546 0 0 1 0.530296,0.097 l 9.866038,3.2464 a 1.8006546,1.8006546 0 1 1 -1.125297,3.4209 l -9.866038,-3.2464 a 1.8006546,1.8006546 0 0 1 0.595001,-3.518 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ id="path4151"
+ transform="translate(0,1002.3622)"
+ d="m 45.369141,1.0175781 a 4.2004198,4.2004198 0 0 0 -4.136719,4.2597657 l 0,3.3261718 -34.4316408,10.9941404 0,-0.708984 A 3.0003,3.0003 0 0 0 3.7558594,15.845703 3.0003,3.0003 0 0 0 0.80078125,18.888672 l 0,10.429687 a 3.0003,3.0003 0 1 0 5.99999995,0 l 0,-0.654297 34.4316408,11.427735 0,1.955078 a 4.2004198,4.2004198 0 1 0 8.398437,0 l 0,-36.7695312 A 4.2004198,4.2004198 0 0 0 45.369141,1.0175781 Z"
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/build/js/jsxc/jsxc.js b/build/js/jsxc/jsxc.js
index d1b72cd..935bc12 100644
--- a/build/js/jsxc/jsxc.js
+++ b/build/js/jsxc/jsxc.js
@@ -1,13 +1,13 @@
/*!
- * jsxc v3.0.1 - 2016-10-28
+ * jsxc v3.1.0-beta - 2017-01-23
*
- * Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.0.1
+ * @version 3.1.0-beta
* @license MIT
*/
@@ -25,7 +25,7 @@ var jsxc = null, RTC = null, RTCPeerconnection = null;
*/
jsxc = {
/** Version of jsxc */
- version: '3.0.1',
+ version: '3.1.0-beta',
/** True if i'm the master */
master: false,
@@ -78,6 +78,12 @@ jsxc = {
/** My bar id */
bid: null,
+ /** Current state */
+ currentState: null,
+
+ /** Current UI state */
+ currentUIState: null,
+
/** Some constants */
CONST: {
NOTIFICATION_DEFAULT: 'default',
@@ -98,7 +104,20 @@ jsxc = {
FORWARD: 'urn:xmpp:forward:0'
},
HIDDEN: 'hidden',
- SHOWN: 'shown'
+ SHOWN: 'shown',
+ STATE: {
+ INITIATING: 0,
+ PREVCONFOUND: 1,
+ SUSPEND: 2,
+ TRYTOINTERCEPT: 3,
+ INTERCEPTED: 4,
+ ESTABLISHING: 5,
+ READY: 6
+ },
+ UISTATE: {
+ INITIATING: 0,
+ READY: 1
+ }
},
/**
@@ -210,6 +229,7 @@ jsxc = {
* @param {object} options See {@link jsxc.options}
*/
init: function(options) {
+ jsxc.changeState(jsxc.CONST.STATE.INITIATING);
if (options && options.loginForm && typeof options.loginForm.attachIfFound === 'boolean' && !options.loginForm.ifFound) {
// translate deprated option attachIfFound found to new ifFound
@@ -270,15 +290,22 @@ jsxc = {
lang = jsxc.options.defaultLang;
}
- // initialize i18n translator
- $.i18n.init({
+ // initialize i18next translator
+ window.i18next.init({
lng: lang,
fallbackLng: 'en',
- resStore: I18next,
- // use localStorage and set expiration to a day
- useLocalStorage: true,
- localStorageExpirationTime: 60 * 60 * 24 * 1000,
- debug: jsxc.storage.getItem('debug') === true
+ resources: I18next,
+ debug: jsxc.storage.getItem('debug') === true,
+ interpolation: {
+ prefix: '__',
+ suffix: '__'
+ }
+ }, function() {
+ window.jqueryI18next.init(window.i18next, $, {
+ tName: 't',
+ i18nName: 'i18next',
+ handleName: 'localize',
+ });
});
if (jsxc.storage.getItem('debug') === true) {
@@ -303,6 +330,7 @@ jsxc = {
// Looking for a login form
if (!jsxc.isLoginForm()) {
+ jsxc.changeState(jsxc.CONST.STATE.SUSPEND);
if (jsxc.options.displayRosterMinimized()) {
// Show minimized roster
@@ -314,6 +342,8 @@ jsxc = {
return;
}
+ jsxc.changeState(jsxc.CONST.STATE.TRYTOINTERCEPT);
+
if (typeof jsxc.options.formFound === 'function') {
jsxc.options.formFound.call();
}
@@ -335,7 +365,9 @@ jsxc = {
form.off('submit');
// Add jsxc login action to form
- form.submit(function() {
+ form.submit(function(ev) {
+ ev.preventDefault();
+
jsxc.prepareLogin(function(settings) {
if (settings !== false) {
// settings.xmpp.onlogin is deprecated since v2.1.0
@@ -356,9 +388,12 @@ jsxc = {
return false;
});
+ jsxc.changeState(jsxc.CONST.STATE.INTERCEPTED);
+
} else if (!jsxc.isLoginForm() || (jsxc.options.loginForm && jsxc.options.loginForm.ifFound === 'attach')) {
// Restore old connection
+ jsxc.changeState(jsxc.CONST.STATE.PREVCONFOUND);
if (typeof jsxc.storage.getItem('alive') === 'undefined') {
jsxc.onMaster();
@@ -566,14 +601,10 @@ jsxc = {
jsxc.gui.init();
$('#jsxc_roster').removeClass('jsxc_noConnection');
- jsxc.restoreRoster();
- jsxc.restoreWindows();
- jsxc.restoreCompleted = true;
-
jsxc.registerLogout();
jsxc.gui.updateAvatar($('#jsxc_roster > .jsxc_bottom'), jsxc.jidToBid(jsxc.storage.getItem('jid')), 'own');
- $(document).trigger('restoreCompleted.jsxc');
+ jsxc.gui.restore();
},
/**
@@ -787,8 +818,12 @@ jsxc = {
if (form.find('#submit').length > 0) {
form.find('#submit').click();
- } else {
+ } else if (form.get(0) && typeof form.get(0).submit === 'function') {
form.submit();
+ } else if (form.find('[type="submit"]').length > 0) {
+ form.find('[type="submit"]').click();
+ } else {
+ jsxc.warn('Could not submit login form.');
}
},
@@ -928,12 +963,28 @@ jsxc = {
isExtraSmallDevice: function() {
return $(window).width() < 500;
+ },
+
+ changeState: function(state) {
+ jsxc.currentState = state;
+
+ jsxc.debug('State changed to ' + Object.keys(jsxc.CONST.STATE)[state]);
+
+ $(document).trigger('stateChange.jsxc', state);
+ },
+
+ changeUIState: function(state) {
+ jsxc.currentUIState = state;
+
+ jsxc.debug('UI State changed to ' + Object.keys(jsxc.CONST.UISTATE)[state]);
+
+ $(document).trigger('stateUIChange.jsxc', state);
}
};
/**
* Handle XMPP stuff.
- *
+ *
* @namespace jsxc.xmpp
*/
jsxc.xmpp = {
@@ -941,14 +992,14 @@ jsxc.xmpp = {
/**
* Create new connection or attach to old
- *
+ *
* @name login
* @memberOf jsxc.xmpp
* @private
*/
/**
* Create new connection with given parameters.
- *
+ *
* @name login^2
* @param {string} jid
* @param {string} password
@@ -957,7 +1008,7 @@ jsxc.xmpp = {
*/
/**
* Attach connection with given parameters.
- *
+ *
* @name login^3
* @param {string} jid
* @param {string} sid
@@ -1074,6 +1125,8 @@ jsxc.xmpp = {
jsxc.xmpp.conn.caps.node = 'http://jsxc.org/';
}
+ jsxc.changeState(jsxc.CONST.STATE.ESTABLISHING);
+
if (sid && rid) {
jsxc.debug('Try to attach');
jsxc.debug('SID: ' + sid);
@@ -1109,7 +1162,7 @@ jsxc.xmpp = {
/**
* Logs user out of his xmpp session and does some clean up.
- *
+ *
* @param {boolean} complete If set to false, roster will not be removed
* @returns {Boolean}
*/
@@ -1176,7 +1229,7 @@ jsxc.xmpp = {
/**
* Triggered if connection is established
- *
+ *
* @private
*/
connected: function() {
@@ -1204,12 +1257,13 @@ jsxc.xmpp = {
jsxc.xmpp.conn.resume();
jsxc.onMaster();
+ jsxc.changeState(jsxc.CONST.STATE.READY);
$(document).trigger('attached.jsxc');
},
/**
* Triggered if connection is attached
- *
+ *
* @private
*/
attached: function() {
@@ -1217,7 +1271,8 @@ jsxc.xmpp = {
$('#jsxc_roster').removeClass('jsxc_noConnection');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged, 'jabber:iq:roster', 'iq', 'set');
- jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage, null, 'message', 'chat');
+ jsxc.xmpp.conn.addHandler(jsxc.xmpp.onChatMessage, null, 'message', 'chat');
+ jsxc.xmpp.conn.addHandler(jsxc.xmpp.onHeadlineMessage, null, 'message', 'headline');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived, null, 'message');
jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence, null, 'presence');
@@ -1279,17 +1334,15 @@ jsxc.xmpp = {
jsxc.xmpp.sendPres();
if (!jsxc.restoreCompleted) {
- jsxc.restoreRoster();
- jsxc.restoreWindows();
- jsxc.restoreCompleted = true;
-
- $(document).trigger('restoreCompleted.jsxc');
+ jsxc.gui.restore();
}
}
jsxc.xmpp.saveSessionParameter();
jsxc.masterActions();
+
+ jsxc.changeState(jsxc.CONST.STATE.READY);
},
saveSessionParameter: function() {
@@ -1350,7 +1403,7 @@ jsxc.xmpp = {
/**
* Triggered if lost connection
- *
+ *
* @private
*/
disconnected: function() {
@@ -1375,6 +1428,7 @@ jsxc.xmpp = {
if (jsxc.triggeredFromElement) {
$(document).trigger('toggle.roster.jsxc', ['hidden', 0]);
+ jsxc.gui.roster.ready = false;
$('#jsxc_roster').remove();
// REVIEW: logoutElement without href attribute?
@@ -1389,11 +1443,13 @@ jsxc.xmpp = {
jsxc.role_allocation = false;
jsxc.master = false;
jsxc.storage.removeItem('alive');
+
+ jsxc.changeState(jsxc.CONST.STATE.SUSPEND);
},
/**
* Triggered on connection fault
- *
+ *
* @param {String} condition information why we lost the connection
* @private
*/
@@ -1407,7 +1463,7 @@ jsxc.xmpp = {
/**
* Triggered on auth fail.
- *
+ *
* @private
*/
onAuthFail: function() {
@@ -1429,7 +1485,7 @@ jsxc.xmpp = {
/**
* Triggered on initial roster load
- *
+ *
* @param {dom} iq
* @private
*/
@@ -1477,11 +1533,12 @@ jsxc.xmpp = {
jsxc.gui.roster.loaded = true;
jsxc.debug('Roster loaded');
$(document).trigger('cloaded.roster.jsxc');
+ jsxc.changeUIState(jsxc.CONST.UISTATE.READY);
},
/**
* Triggerd on roster changes
- *
+ *
* @param {dom} iq
* @returns {Boolean} True to preserve handler
* @private
@@ -1556,19 +1613,19 @@ jsxc.xmpp = {
/**
* Triggered on incoming presence stanzas
- *
+ *
* @param {dom} presence
* @private
*/
onPresence: function(presence) {
/*
* <presence xmlns='jabber:client' type='unavailable' from='' to=''/>
- *
+ *
* <presence xmlns='jabber:client' from='' to=''> <priority>5</priority>
* <c xmlns='http://jabber.org/protocol/caps'
* node='http://psi-im.org/caps' ver='caps-b75d8d2b25' ext='ca cs
* ep-notify-2 html'/> </presence>
- *
+ *
* <presence xmlns='jabber:client' from='' to=''> <show>chat</show>
* <status></status> <priority>5</priority> <c
* xmlns='http://jabber.org/protocol/caps' node='http://psi-im.org/caps'
@@ -1619,7 +1676,11 @@ jsxc.xmpp = {
jid: jid,
approve: -1
});
- jsxc.notice.add($.t('Friendship_request'), $.t('from') + ' ' + jid, 'gui.showApproveDialog', [jid]);
+ jsxc.notice.add({
+ msg: $.t('Friendship_request'),
+ description: $.t('from') + ' ' + jid,
+ type: 'contact'
+ }, 'gui.showApproveDialog', [jid]);
return true;
} else if (ptype === 'unavailable' || ptype === 'unsubscribed') {
@@ -1635,7 +1696,7 @@ jsxc.xmpp = {
if (status === 0) {
delete res[r];
- } else {
+ } else if (r) {
res[r] = status;
}
@@ -1690,7 +1751,7 @@ jsxc.xmpp = {
jsxc.storage.setUserItem('buddy', bid, data);
jsxc.storage.setUserItem('res', bid, res);
- jsxc.debug('Presence (' + from + '): ' + status);
+ jsxc.debug('Presence (' + from + '): ' + jsxc.CONST.STATUS[status]);
jsxc.gui.update(bid);
jsxc.gui.roster.reorder(bid);
@@ -1703,13 +1764,12 @@ jsxc.xmpp = {
/**
* Triggered on incoming message stanzas
- *
+ *
* @param {dom} presence
* @returns {Boolean}
* @private
*/
- onMessage: function(stanza) {
-
+ onChatMessage: function(stanza) {
var forwarded = $(stanza).find('forwarded[xmlns="' + jsxc.CONST.NS.FORWARD + '"]');
var message, carbon;
@@ -1732,6 +1792,7 @@ jsxc.xmpp = {
}
var body = $(message).find('body:first').text();
+ var htmlBody = $(message).find('body[xmlns="' + Strophe.NS.XHTML + '"]');
if (!body || (body.match(/\?OTR/i) && forwarded)) {
return true;
@@ -1781,7 +1842,10 @@ jsxc.xmpp = {
var chat = jsxc.storage.getUserItem('chat', bid) || [];
if (chat.length === 0) {
- jsxc.notice.add($.t('Unknown_sender'), $.t('You_received_a_message_from_an_unknown_sender') + ' (' + bid + ').', 'gui.showUnknownSender', [bid]);
+ jsxc.notice.add({
+ msg: $.t('Unknown_sender'),
+ description: $.t('You_received_a_message_from_an_unknown_sender') + ' (' + bid + ').'
+ }, 'gui.showUnknownSender', [bid]);
}
var msg = jsxc.removeHTML(body);
@@ -1819,10 +1883,40 @@ jsxc.xmpp = {
}));
}
- if (jsxc.otr.objects.hasOwnProperty(bid)) {
+ var attachment;
+ if (htmlBody.length === 1) {
+ var httpUploadElement = htmlBody.find('a[data-type][data-name][data-size]');
+
+ if (httpUploadElement.length === 1) {
+ attachment = {
+ type: httpUploadElement.attr('data-type'),
+ name: httpUploadElement.attr('data-name'),
+ size: httpUploadElement.attr('data-size'),
+ };
+
+ if (httpUploadElement.attr('data-thumbnail') && httpUploadElement.attr('data-thumbnail').match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+/]+$/i)) {
+ attachment.thumbnail = httpUploadElement.attr('data-thumbnail');
+ }
+
+ if (httpUploadElement.attr('href') && httpUploadElement.attr('href').match(/^https:\/\//)) {
+ attachment.data = httpUploadElement.attr('href');
+ body = null;
+ }
+
+ if (!attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i) || !attachment.name.match(/^[\s\w.,-]+$/i) || !attachment.size.match(/^\d+$/i)) {
+ attachment = undefined;
+
+ jsxc.warn('Invalid file type, name or size.');
+ }
+ }
+ }
+
+ if (jsxc.otr.objects.hasOwnProperty(bid) && body) {
+ // @TODO check for file upload url after decryption
jsxc.otr.objects[bid].receiveMsg(body, {
stamp: stamp,
- forwarded: forwarded
+ forwarded: forwarded,
+ attachment: attachment
});
} else {
jsxc.gui.window.postMessage({
@@ -1831,7 +1925,8 @@ jsxc.xmpp = {
msg: body,
encrypted: false,
forwarded: forwarded,
- stamp: stamp
+ stamp: stamp,
+ attachment: attachment
});
}
@@ -1840,8 +1935,40 @@ jsxc.xmpp = {
},
/**
+ * Process message stanzas of type headline.
+ *
+ * @param {String} stanza Message stanza of type headline
+ * @return {Boolean}
+ */
+ onHeadlineMessage: function(stanza) {
+ stanza = $(stanza);
+
+ var from = stanza.attr('from');
+ var domain = Strophe.getDomainFromJid(from);
+
+ if (domain !== from) {
+ if (!jsxc.storage.getUserItem('buddy', jsxc.jidToBid(from))) {
+ return true;
+ }
+ } else if (domain !== Strophe.getDomainFromJid(jsxc.xmpp.conn.jid)) {
+ return true;
+ }
+
+ var subject = stanza.find('subject:first').text() || $.t('Notification');
+ var body = stanza.find('body:first').text();
+
+ jsxc.notice.add({
+ msg: subject,
+ description: body,
+ type: (domain === from) ? 'announcement' : null
+ }, 'gui.showNotification', [subject, body, from]);
+
+ return true;
+ },
+
+ /**
* Triggerd if the rid changed
- *
+ *
* @param {integer} rid next valid request id
* @private
*/
@@ -1851,7 +1978,7 @@ jsxc.xmpp = {
/**
* response to friendship request
- *
+ *
* @param {string} from jid from original friendship req
* @param {boolean} approve
*/
@@ -1872,7 +1999,7 @@ jsxc.xmpp = {
/**
* Add buddy to my friends
- *
+ *
* @param {string} username jid
* @param {string} alias
*/
@@ -1908,7 +2035,7 @@ jsxc.xmpp = {
/**
* Remove buddy from my friends
- *
+ *
* @param {type} jid
*/
removeBuddy: function(jid) {
@@ -1943,39 +2070,63 @@ jsxc.xmpp = {
/**
* Public function to send message.
- *
+ *
* @memberOf jsxc.xmpp
* @param bid css jid of user
* @param msg message
* @param uid unique id
*/
- sendMessage: function(bid, msg, uid) {
- if (jsxc.otr.objects.hasOwnProperty(bid)) {
- jsxc.otr.objects[bid].sendMsg(msg, uid);
+ sendMessage: function(message) {
+ var bid = message.bid;
+ var msg = message.htmlMsg;
+
+ var mucRoomNames = (jsxc.xmpp.conn.muc && jsxc.xmpp.conn.muc.roomNames) ? jsxc.xmpp.conn.muc.roomNames : [];
+ var isMucBid = mucRoomNames.indexOf(bid) >= 0;
+
+ if (jsxc.otr.objects.hasOwnProperty(bid) && !isMucBid) {
+ jsxc.otr.objects[bid].sendMsg(msg, message);
} else {
- jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data('jid'), msg, uid);
+ jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data('jid'), msg, message);
}
},
/**
* Create message stanza and send it.
- *
+ *
* @memberOf jsxc.xmpp
* @param jid Jabber id
* @param msg Message
* @param uid unique id
* @private
*/
- _sendMessage: function(jid, msg, uid) {
+ _sendMessage: function(jid, msg, message) {
+ // @TODO put jid into message object
var data = jsxc.storage.getUserItem('buddy', jsxc.jidToBid(jid)) || {};
var isBar = (Strophe.getBareJidFromJid(jid) === jid);
var type = data.type || 'chat';
+ message = message || {};
var xmlMsg = $msg({
to: jid,
type: type,
- id: uid
- }).c('body').t(msg);
+ id: message._uid
+ });
+
+ if (message.type === jsxc.Message.HTML) {
+ xmlMsg.c("html", {
+ xmlns: Strophe.NS.XHTML_IM
+ });
+
+ // Omit StropheJS XEP-0071 limitations
+ var body = Strophe.xmlElement("body", {
+ xmlns: Strophe.NS.XHTML
+ });
+ body.innerHTML = msg;
+
+ xmlMsg.node.appendChild(body);
+ } else {
+ xmlMsg.c('body').t(msg);
+ }
if (jsxc.xmpp.carbons.enabled && msg.match(/^\?OTR/)) {
xmlMsg.up().c("private", {
@@ -1990,12 +2141,19 @@ jsxc.xmpp = {
});
}
+ if (jsxc.xmpp.conn.chatstates && !jsxc.xmpp.chatState.isDisabled()) {
+ // send active event (XEP-0085)
+ xmlMsg.up().c('active', {
+ xmlns: Strophe.NS.CHATSTATES
+ });
+ }
+
jsxc.xmpp.conn.send(xmlMsg);
},
/**
* This function loads a vcard.
- *
+ *
* @memberOf jsxc.xmpp
* @param bid
* @param cb
@@ -2019,7 +2177,7 @@ jsxc.xmpp = {
/**
* Retrieves capabilities.
- *
+ *
* @memberOf jsxc.xmpp
* @param jid
* @returns List of known capabilities
@@ -2041,7 +2199,7 @@ jsxc.xmpp = {
/**
* Test if jid has given features
- *
+ *
* @param {string} jid Jabber id
* @param {string[]} feature Single feature or list of features
* @param {Function} cb Called with the result as first param.
@@ -2093,7 +2251,7 @@ jsxc.xmpp = {
/**
* Handle carbons (XEP-0280);
- *
+ *
* @namespace jsxc.xmpp.carbons
*/
jsxc.xmpp.carbons = {
@@ -2101,7 +2259,7 @@ jsxc.xmpp.carbons = {
/**
* Enable carbons.
- *
+ *
* @memberOf jsxc.xmpp.carbons
* @param cb callback
*/
@@ -2127,7 +2285,7 @@ jsxc.xmpp.carbons = {
/**
* Disable carbons.
- *
+ *
* @memberOf jsxc.xmpp.carbons
* @param cb callback
*/
@@ -2153,7 +2311,7 @@ jsxc.xmpp.carbons = {
/**
* Enable/Disable carbons depending on options key.
- *
+ *
* @memberOf jsxc.xmpp.carbons
* @param err error message
*/
@@ -2171,266 +2329,254 @@ jsxc.xmpp.carbons = {
};
/**
- * Load message object with given uid.
- *
- * @class Message
- * @memberOf jsxc
- * @param {string} uid Unified identifier from message object
+ * @namespace jsxc.fileTransfer
+ * @type {Object}
*/
+jsxc.fileTransfer = {};
+
/**
- * Create new message object.
+ * Make bytes more human readable.
*
- * @class Message
- * @memberOf jsxc
- * @param {object} args New message properties
- * @param {string} args.bid
- * @param {direction} args.direction
- * @param {string} args.msg
- * @param {boolean} args.encrypted
- * @param {boolean} args.forwarded
- * @param {boolean} args.sender
- * @param {integer} args.stamp
- * @param {object} args.attachment Attached data
- * @param {string} args.attachment.name File name
- * @param {string} args.attachment.size File size
- * @param {string} args.attachment.type File type
- * @param {string} args.attachment.data File data
+ * @memberOf jsxc.fileTransfer
+ * @param {Integer} byte
+ * @return {String}
*/
+jsxc.fileTransfer.formatByte = function(byte) {
+ var s = ['', 'KB', 'MB', 'GB', 'TB'];
+ var i;
-jsxc.Message = function() {
-
- /** @member {string} */
- this._uid = null;
-
- /** @member {boolean} */
- this._received = false;
-
- /** @member {boolean} */
- this.encrypted = false;
-
- /** @member {boolean} */
- this.forwarded = false;
-
- /** @member {integer} */
- this.stamp = new Date().getTime();
-
- if (typeof arguments[0] === 'string' && arguments[0].length > 0 && arguments.length === 1) {
- this._uid = arguments[0];
-
- this.load(this._uid);
- } else if (typeof arguments[0] === 'object' && arguments[0] !== null) {
- $.extend(this, arguments[0]);
+ for (i = 1; i < s.length; i++) {
+ if (byte < 1024) {
+ break;
+ }
+ byte /= 1024;
}
- if (!this._uid) {
- this._uid = new Date().getTime() + ':msg';
- }
+ return (Math.round(byte * 10) / 10) + s[i - 1];
};
/**
- * Load message properties.
+ * Start file transfer dialog.
*
- * @memberof jsxc.Message
- * @param {string} uid
+ * @memberOf jsxc.fileTransfer
+ * @param {String} jid
*/
-jsxc.Message.prototype.load = function(uid) {
- var data = jsxc.storage.getUserItem('msg', uid);
+jsxc.fileTransfer.startGuiAction = function(jid) {
+ var bid = jsxc.jidToBid(jid);
+ var res = Strophe.getResourceFromJid(jid);
- if (!data) {
- jsxc.debug('Could not load message with uid ' + uid);
+ if (!res && !jsxc.xmpp.httpUpload.ready) {
+ jsxc.fileTransfer.selectResource(bid, jsxc.fileTransfer.startGuiAction);
+
+ return;
}
- $.extend(this, data);
+ jsxc.fileTransfer.showFileSelection(jid);
};
/**
- * Save message properties and create thumbnail.
+ * Show select dialog for file transfer capable resources.
*
- * @memberOf jsxc.Message
- * @return {Message} this object
+ * @memberOf jsxc.fileTransfer
+ * @param {String} bid
+ * @param {Function} success_cb Called if user selects resource
+ * @param {Function} error_cb Called if no resource was found or selected
*/
-jsxc.Message.prototype.save = function() {
- var history;
-
- if (this.bid) {
- history = jsxc.storage.getUserItem('history', this.bid) || [];
+jsxc.fileTransfer.selectResource = function(bid, success_cb, error_cb) {
+ var win = jsxc.gui.window.get(bid);
+ var jid = win.data('jid');
+ var res = Strophe.getResourceFromJid(jid);
+
+ var fileCapableRes = jsxc.webrtc.getCapableRes(jid, jsxc.webrtc.reqFileFeatures);
+ var resources = Object.keys(jsxc.storage.getUserItem('res', bid)) || [];
+
+ if (res === null && resources.length === 1 && fileCapableRes.length === 1) {
+ // only one resource is available and this resource is also capable to receive files
+ res = fileCapableRes[0];
+ jid = bid + '/' + res;
+
+ success_cb(jid);
+ } else if (fileCapableRes.indexOf(res) >= 0) {
+ // currently used resource is capable to receive files
+ success_cb(bid + '/' + res);
+ } else if (fileCapableRes.indexOf(res) < 0) {
+ // show selection dialog
+ jsxc.gui.window.selectResource(bid, $.t('Your_contact_uses_multiple_clients_'), function(data) {
+ if (data.status === 'unavailable') {
+ jsxc.gui.window.hideOverlay(bid);
- if (history.indexOf(this._uid) < 0) {
- if (history.length > jsxc.options.get('numberOfMsg')) {
- jsxc.Message.delete(history.pop());
+ if (typeof error_cb === 'function') {
+ error_cb();
+ }
+ } else if (data.status === 'selected') {
+ success_cb(bid + '/' + data.result);
}
- } else {
- history = null;
- }
+ }, fileCapableRes);
}
+};
- if (Image && this.attachment && this.attachment.type.match(/^image\//i) && this.attachment.data) {
- var sHeight, sWidth, sx, sy;
- var dHeight = 100,
- dWidth = 100;
- var canvas = $("<canvas>").get(0);
+/**
+ * Show file selector.
+ *
+ * @memberOf jsxc.fileTransfer
+ * @param {String} jid
+ */
+jsxc.fileTransfer.showFileSelection = function(jid) {
+ var bid = jsxc.jidToBid(jid);
+ var msg = $('<div><div><label><input type="file" name="files" /><label></div></div>');
+ msg.addClass('jsxc_chatmessage');
- canvas.width = dWidth;
- canvas.height = dHeight;
+ jsxc.gui.window.showOverlay(bid, msg, true);
- var ctx = canvas.getContext("2d");
- var img = new Image();
+ // open file selection for user
+ msg.find('label').click();
- img.src = this.attachment.data;
+ msg.find('[type="file"]').change(function(ev) {
+ var file = ev.target.files[0]; // FileList object
- if (img.height > img.width) {
- sHeight = img.width;
- sWidth = img.width;
- sx = 0;
- sy = (img.height - img.width) / 2;
- } else {
- sHeight = img.height;
- sWidth = img.height;
- sx = (img.width - img.height) / 2;
- sy = 0;
+ if (!file) {
+ return;
}
- ctx.drawImage(img, sx, sy, sWidth, sHeight, 0, 0, dWidth, dHeight);
+ jsxc.fileTransfer.fileSelected(jid, msg, file);
+ });
+};
- this.attachment.thumbnail = canvas.toDataURL();
+/**
+ * Callback for file selector.
+ *
+ * @memberOf jsxc.fileTransfer
+ * @param {String} jid
+ * @param {jQuery} msg jQuery object of temporary file message
+ * @param {File} file selected file
+ */
+jsxc.fileTransfer.fileSelected = function(jid, msg, file) {
+ var bid = jsxc.jidToBid(jid);
- if (this.direction === 'out') {
- // save storage
- this.attachment.data = null;
- }
- }
+ if (file.transportMethod !== 'webrtc' && jsxc.xmpp.httpUpload.ready && file.size > jsxc.options.get('httpUpload').maxSize) {
+ jsxc.debug('File too large for http upload.');
- var data;
+ file.transportMethod = 'webrtc';
- if (this.attachment && this.attachment.size > jsxc.options.maxStorableSize && this.direction === 'in') {
- jsxc.debug('Attachment to large to store');
+ jsxc.fileTransfer.selectResource(bid, function(jid) {
+ jsxc.fileTransfer.fileSelected(jid, msg, file);
+ }, function() {
+ var maxSize = jsxc.fileTransfer.formatByte(jsxc.options.get('httpUpload').maxSize);
+ var fileSize = jsxc.fileTransfer.formatByte(file.size);
- data = this.attachment.data;
- this.attachment.data = null;
- this.attachment.persistent = false;
+ jsxc.gui.window.postMessage({
+ bid: bid,
+ direction: jsxc.Message.SYS,
+ msg: $.t('File_too_large') + ' (' + fileSize + ' > ' + maxSize + ')'
+ });
- //TODO inform user
+ jsxc.gui.window.hideOverlay(bid);
+ });
+
+ return;
+ } else if (!jsxc.xmpp.httpUpload.ready && Strophe.getResourceFromJid(jid)) {
+ // http upload not available
+ file.transportMethod = 'webrtc';
}
- jsxc.storage.setUserItem('msg', this._uid, this);
+ var attachment = $('<div>');
+ attachment.addClass('jsxc_attachment');
+ attachment.addClass('jsxc_' + file.type.replace(/\//, '-'));
+ attachment.addClass('jsxc_' + file.type.replace(/^([^/]+)\/.*/, '$1'));
- if (history) {
- history.unshift(this._uid);
+ msg.empty().append(attachment);
- jsxc.storage.setUserItem('history', this.bid, history);
- }
+ if (FileReader && file.type.match(/^image\//)) {
+ // show image preview
+ var img = $('<img alt="preview">').attr('title', file.name);
+ img.attr('src', jsxc.options.get('root') + '/img/loading.gif');
+ img.appendTo(attachment);
- if (data && this.attachment) {
- this.attachment.data = data;
+ var reader = new FileReader();
+
+ reader.onload = function() {
+ img.attr('src', reader.result);
+ };
+
+ reader.readAsDataURL(file);
+ } else {
+ attachment.text(file.name + ' (' + file.size + ' byte)');
}
- return this;
-};
+ $('<button>').addClass('jsxc_btn jsxc_btn-primary').text($.t('Send')).click(function() {
+ // user confirmed file transfer
+ jsxc.gui.window.hideOverlay(bid);
+ msg.remove();
-/**
- * Remove object from storage.
- *
- * @memberOf jsxc.Message
- */
-jsxc.Message.prototype.delete = function() {
- jsxc.Message.delete(this._uid);
-};
+ var message = jsxc.gui.window.postMessage({
+ bid: bid,
+ direction: 'out',
+ attachment: {
+ name: file.name,
+ size: file.size,
+ type: file.type,
+ data: (file.type.match(/^image\//)) ? img.attr('src') : null
+ }
+ });
-/**
- * Returns object as jquery object.
- *
- * @memberOf jsxc.Message
- * @return {jQuery} Representation in DOM
- */
-jsxc.Message.prototype.getDOM = function() {
- return jsxc.Message.getDOM(this._uid);
-};
+ if (file.transportMethod === 'webrtc') {
+ var sess = jsxc.webrtc.sendFile(jid, file);
-/**
- * Mark message as received.
- *
- * @memberOf jsxc.Message
- */
-jsxc.Message.prototype.received = function() {
- this._received = true;
- this.save();
+ sess.sender.on('progress', function(sent, size) {
+ jsxc.gui.window.updateProgress(message, sent, size);
- this.getDOM().addClass('jsxc_received');
-};
+ if (sent === size) {
+ message.received();
+ }
+ });
+ } else {
+ // progress is updated in xmpp.httpUpload.uploadFile
+ jsxc.xmpp.httpUpload.sendFile(file, message);
+ }
+ }).appendTo(msg);
-/**
- * Returns true if the message was already received.
- *
- * @memberOf jsxc.Message
- * @return {boolean} true means received
- */
-jsxc.Message.prototype.isReceived = function() {
- return this._received;
+ $('<button>').addClass('jsxc_btn jsxc_btn-default').text($.t('Abort')).click(function() {
+ // user aborted file transfer
+ jsxc.gui.window.hideOverlay(bid);
+ }).appendTo(msg);
};
/**
- * Remove message with uid.
+ * Enable/disable icons for file transfer.
*
- * @memberOf jsxc.Message
- * @static
- * @param {string} uid message uid
+ * @memberOf jsxc.fileTransfer
+ * @param {String} bid
*/
-jsxc.Message.delete = function(uid) {
- var data = jsxc.storage.getUserItem('msg', uid);
+jsxc.fileTransfer.updateIcons = function(bid) {
+ var win = jsxc.gui.window.get(bid);
- if (data) {
- jsxc.storage.removeUserItem('msg', uid);
+ if (!win || win.length === 0 || !jsxc.xmpp.conn) {
+ return;
+ }
- if (data.bid) {
- var history = jsxc.storage.getUserItem('history', data.bid) || [];
+ jsxc.debug('Update file transfer icons for ' + bid);
- history = $.grep(history, function(el) {
- return el !== uid;
- });
+ if (jsxc.xmpp.httpUpload.ready) {
+ win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
- jsxc.storage.setUserItem('history', data.bid);
- }
+ return;
}
-};
-
-/**
- * Returns message object as jquery object.
- *
- * @memberOf jsxc.Message
- * @static
- * @param {string} uid message uid
- * @return {jQuery} jQuery representation in DOM
- */
-jsxc.Message.getDOM = function(uid) {
- return $('#' + uid.replace(/:/g, '-'));
-};
-
-/**
- * Message direction can be incoming, outgoing or system.
- *
- * @typedef {(jsxc.Message.IN|jsxc.Message.OUT|jsxc.Message.SYS)} direction
- */
-/**
- * @constant
- * @type {string}
- * @default
- */
-jsxc.Message.IN = 'in';
+ var jid = win.data('jid');
+ var res = Strophe.getResourceFromJid(jid);
+ var fileCapableRes = jsxc.webrtc.getCapableRes(bid, jsxc.webrtc.reqFileFeatures);
+ var resources = Object.keys(jsxc.storage.getUserItem('res', bid) || {}) || [];
-/**
- * @constant
- * @type {string}
- * @default
- */
-jsxc.Message.OUT = 'out';
+ if (fileCapableRes.indexOf(res) > -1 || (res === null && fileCapableRes.length === 1 && resources.length === 1)) {
+ win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
+ } else {
+ win.find('.jsxc_sendFile').addClass('jsxc_disabled');
+ }
+};
-/**
- * @constant
- * @type {string}
- * @default
- */
-jsxc.Message.SYS = 'sys';
+$(document).on('update.gui.jsxc', function(ev, bid) {
+ jsxc.fileTransfer.updateIcons(bid);
+});
/* global Favico, emojione*/
/**
@@ -2477,7 +2623,8 @@ jsxc.gui = {
':jabber:': ['jabber'],
':xmpp:': ['xmpp'],
':jsxc:': ['jsxc'],
- ':owncloud:': ['owncloud']
+ ':owncloud:': ['owncloud'],
+ ':nextcloud:': ['nextcloud']
},
'emojione': emojione.emojioneList
},
@@ -2535,6 +2682,8 @@ jsxc.gui = {
return;
}
+ jsxc.changeUIState(jsxc.CONST.UISTATE.INITIATING);
+
jsxc.gui.regShortNames = new RegExp(emojione.regShortNames.source + '|(' + Object.keys(jsxc.gui.emoticonList.core).join('|') + ')', 'gi');
$('body').append($(jsxc.gui.template.get('windowList')));
@@ -2670,6 +2819,8 @@ jsxc.gui = {
ri.find('.jsxc_name').attr('title', info);
jsxc.gui.updateAvatar(ri.add(we.find('.jsxc_bar')), data.jid, data.avatar);
+
+ $(document).trigger('update.gui.jsxc', [bid]);
},
/**
@@ -2860,9 +3011,15 @@ jsxc.gui = {
* Creates and show loginbox
*/
showLoginBox: function() {
- // Set focus to password field
- $(document).on("complete.dialog.jsxc", function() {
- $('#jsxc_password').focus();
+ // Set focus to username or password field
+ $(document).one("complete.dialog.jsxc", function() {
+ setTimeout(function() {
+ if ($("#jsxc_username").val().length === 0) {
+ $("#jsxc_username").focus();
+ } else {
+ $('#jsxc_password').focus();
+ }
+ }, 50);
});
jsxc.gui.dialog.open(jsxc.gui.template.get('loginBox'));
@@ -3096,6 +3253,7 @@ jsxc.gui = {
if (val !== '') {
jsxc.options.getUsers.call(this, val, function(list) {
+ $('#jsxc_userlist').empty();
$.each(list || {}, function(uid, displayname) {
var option = $('<option>');
option.attr('data-username', uid);
@@ -3618,6 +3776,26 @@ jsxc.gui = {
},
/**
+ * Show notification dialog.
+ *
+ * @param {String} subject
+ * @param {String} body
+ * @param {String} from
+ */
+ showNotification: function(subject, body, from) {
+ var dialog = jsxc.gui.dialog.open(jsxc.gui.template.get('notification'));
+
+ dialog.find('h3').text(subject);
+ dialog.find('.jsxc_msg').text(body);
+
+ if (from) {
+ dialog.find('.jsxc_meta').text($.t('from') + ' ' + from);
+ } else {
+ dialog.find('.jsxc_meta').hide();
+ }
+ },
+
+ /**
* Change own presence to pres.
*
* @memberOf jsxc.gui
@@ -3880,7 +4058,7 @@ jsxc.gui = {
filename = jsxc.gui.emoticonList.core[shortname][jsxc.gui.emoticonList.core[shortname].length - 1].replace(/^:([^:]+):$/, '$1');
src = jsxc.options.root + '/img/emotions/' + filename + '.svg';
} else if (jsxc.gui.emoticonList.emojione[shortname]) {
- filename = jsxc.gui.emoticonList.emojione[shortname][jsxc.gui.emoticonList.emojione[shortname].length - 1];
+ filename = jsxc.gui.emoticonList.emojione[shortname].fname;
src = jsxc.options.root + '/lib/emojione/assets/svg/' + filename + '.svg';
}
@@ -3893,7 +4071,22 @@ jsxc.gui = {
return div.prop('outerHTML');
});
+ var obj = $('<div>' + str + '</div>');
+ if (obj.find('.jsxc_emoticon').length === 1 && obj.text().replace(/ /, '').length === 0 && obj.find('*').length === 1) {
+ obj.find('.jsxc_emoticon').addClass('jsxc_large');
+ str = obj.prop('outerHTML');
+ }
+
return str;
+ },
+
+ restore: function() {
+ jsxc.restoreRoster();
+ jsxc.restoreWindows();
+ jsxc.restoreCompleted = true;
+
+ $(document).trigger('restoreCompleted.jsxc');
+ jsxc.changeUIState(jsxc.CONST.UISTATE.READY);
}
};
@@ -4470,6 +4663,9 @@ jsxc.gui.window = {
};
win.find('.jsxc_more').click(expandClick);
+ win.find('.jsxc_menu').click(function() {
+ $('body').click();
+ });
win.find('.jsxc_verification').click(function() {
jsxc.gui.showVerification(bid);
@@ -4505,11 +4701,19 @@ jsxc.gui.window = {
return false;
});
+ var textinputBlurTimeout;
win.find('.jsxc_textinput').keyup(function(ev) {
var body = $(this).val();
- if (ev.which === 13) {
+ // I'm composing a message
+ if (ev.which !== 13) {
+ jsxc.xmpp.chatState.startComposing(bid);
+ }
+
+ if (ev.which === 13 && !ev.shiftKey) {
body = '';
+
+ jsxc.xmpp.chatState.endComposing(bid);
}
jsxc.storage.updateUserItem('window', bid, 'text', body);
@@ -4518,7 +4722,8 @@ jsxc.gui.window = {
jsxc.gui.window.close(bid);
}
}).keypress(function(ev) {
- if (ev.which !== 13 || !$(this).val()) {
+ if (ev.which !== 13 || ev.shiftKey || !$(this).val()) {
+ resizeTextarea.call(this);
return;
}
@@ -4528,16 +4733,40 @@ jsxc.gui.window = {
msg: $(this).val()
});
- $(this).val('');
+ $(this).css('height', '').val('');
+
+ ev.preventDefault();
}).focus(function() {
+ if (textinputBlurTimeout) {
+ clearTimeout(textinputBlurTimeout);
+ }
+
// remove unread flag
jsxc.gui.readMsg(bid);
+
+ resizeTextarea.call(this);
+ }).blur(function() {
+ var self = $(this);
+
+ textinputBlurTimeout = setTimeout(function() {
+ self.css('height', '');
+ }, 1200);
}).mouseenter(function() {
$('#jsxc_windowList').data('isOver', true);
}).mouseleave(function() {
$('#jsxc_windowList').data('isOver', false);
});
+ function resizeTextarea() {
+ if (!$(this).data('originalHeight')) {
+ $(this).data('originalHeight', $(this).outerHeight());
+ }
+ // compensate rounding error
+ if ($(this).outerHeight() < (this.scrollHeight - 1) && $(this).val()) {
+ $(this).height($(this).data('originalHeight') * 1.5);
+ }
+ }
+
win.find('.jsxc_textarea').click(function() {
// check if user clicks element or selects text
if (typeof getSelection === 'function' && !getSelection().toString()) {
@@ -4597,8 +4826,8 @@ jsxc.gui.window = {
li.append(jsxc.gui.shortnameToImage(':' + val[1] + ':'));
li.find('div').attr('title', ins);
li.click(function() {
- win.find('input').val(win.find('input').val() + ins);
- win.find('input').focus();
+ win.find('.jsxc_textinput').val(win.find('.jsxc_textinput').val() + ins);
+ win.find('.jsxc_textinput').focus();
});
win.find('.jsxc_emoticons ul').prepend(li);
});
@@ -4951,7 +5180,10 @@ jsxc.gui.window = {
}
var data = jsxc.storage.getUserItem('buddy', message.bid);
- var html_msg = message.msg;
+
+ if (!message.htmlMsg && message.msg) {
+ message.htmlMsg = message.msg;
+ }
// remove html tags and reencode html tags
message.msg = jsxc.removeHTML(message.msg);
@@ -4969,7 +5201,7 @@ jsxc.gui.window = {
message.msg = $.t('unencrypted_message_received') + ' ' + message.msg;
}
- message.encrypted = message.encrypted || data.msgstate === OTR.CONST.MSGSTATE_ENCRYPTED;
+ message.encrypted = (typeof message.encrypted === 'boolean') ? message.encrypted : data.msgstate === OTR.CONST.MSGSTATE_ENCRYPTED;
try {
message.save();
@@ -4985,11 +5217,11 @@ jsxc.gui.window = {
if (message.direction === 'in' && !jsxc.gui.window.get(message.bid).find('.jsxc_textinput').is(":focus")) {
jsxc.gui.unreadMsg(message.bid);
- $(document).trigger('postmessagein.jsxc', [message.bid, html_msg]);
+ $(document).trigger('postmessagein.jsxc', [message.bid, message.htmlMsg]);
}
- if (message.direction === jsxc.Message.OUT && jsxc.master && message.forwarded !== true && html_msg) {
- jsxc.xmpp.sendMessage(message.bid, html_msg, message._uid);
+ if (message.direction === jsxc.Message.OUT && jsxc.master && message.forwarded !== true && message.htmlMsg) {
+ jsxc.xmpp.sendMessage(message);
}
jsxc.gui.window._postMessage(message);
@@ -5060,6 +5292,12 @@ jsxc.gui.window = {
// replace line breaks
msg = msg.replace(/(\r\n|\r|\n)/g, '<br />');
+ // replace /me command (XEP-0245)
+ var bidData = jsxc.storage.getUserItem('buddy', bid) || {};
+ if (direction === 'in') {
+ msg = msg.replace(/^\/me /, '<i title="/me">' + jsxc.removeHTML(bidData.name || bid) + '</i> ');
+ }
+
var msgDiv = $("<div>"),
msgTsDiv = $("<div>");
msgDiv.addClass('jsxc_chatmessage jsxc_' + direction);
@@ -5070,16 +5308,30 @@ jsxc.gui.window = {
if (message.isReceived() || false) {
msgDiv.addClass('jsxc_received');
+ } else {
+ msgDiv.removeClass('jsxc_received');
}
if (message.forwarded) {
msgDiv.addClass('jsxc_forwarded');
+ } else {
+ msgDiv.removeClass('jsxc_forwarded');
}
if (message.encrypted) {
msgDiv.addClass('jsxc_encrypted');
+ } else {
+ msgDiv.removeClass('jsxc_encrypted');
+ }
+
+ if (message.error) {
+ msgDiv.addClass('jsxc_error');
+ } else {
+ msgDiv.removeClass('jsxc_error');
}
+ msgDiv.attr('title', message.error);
+
if (message.attachment && message.attachment.name) {
var attachment = $('<div>');
attachment.addClass('jsxc_attachment');
@@ -5104,6 +5356,10 @@ jsxc.gui.window = {
attachment = $('<a>').append(attachment);
attachment.attr('href', message.attachment.data);
attachment.attr('download', message.attachment.name);
+
+ if (message.attachment.data === message.msg) {
+ msgDiv.find('div').first().empty();
+ }
}
msgDiv.find('div').first().append(attachment);
@@ -5268,8 +5524,6 @@ jsxc.gui.window = {
if (sent === size) {
span.remove();
-
- message.received();
}
},
@@ -5370,99 +5624,7 @@ jsxc.gui.window = {
},
sendFile: function(jid) {
- var bid = jsxc.jidToBid(jid);
- var win = jsxc.gui.window.get(bid);
- var res = Strophe.getResourceFromJid(jid);
-
- if (!res) {
- jid = win.data('jid');
- res = Strophe.getResourceFromJid(jid);
-
- var fileCapableRes = jsxc.webrtc.getCapableRes(jid, jsxc.webrtc.reqFileFeatures);
- var resources = Object.keys(jsxc.storage.getUserItem('res', bid)) || [];
-
- if (res === null && resources.length === 1 && fileCapableRes.length === 1) {
- res = fileCapableRes[0];
- jid = bid + '/' + res;
- } else if (fileCapableRes.indexOf(res) < 0) {
- jsxc.gui.window.selectResource(bid, $.t('Your_contact_uses_multiple_clients_'), function(data) {
- if (data.status === 'unavailable') {
- jsxc.gui.window.hideOverlay(bid);
- } else if (data.status === 'selected') {
- jsxc.gui.window.sendFile(bid + '/' + data.result);
- }
- }, fileCapableRes);
-
- return;
- }
- }
-
- var msg = $('<div><div><label><input type="file" name="files" /><label></div></div>');
- msg.addClass('jsxc_chatmessage');
-
- jsxc.gui.window.showOverlay(bid, msg, true);
-
- msg.find('label').click();
-
- msg.find('[type="file"]').change(function(ev) {
- var file = ev.target.files[0]; // FileList object
-
- if (!file) {
- return;
- }
-
- var attachment = $('<div>');
- attachment.addClass('jsxc_attachment');
- attachment.addClass('jsxc_' + file.type.replace(/\//, '-'));
- attachment.addClass('jsxc_' + file.type.replace(/^([^/]+)\/.*/, '$1'));
-
- msg.empty().append(attachment);
-
- if (FileReader && file.type.match(/^image\//)) {
- var img = $('<img alt="preview">').attr('title', file.name);
- img.attr('src', jsxc.options.get('root') + '/img/loading.gif');
- img.appendTo(attachment);
-
- var reader = new FileReader();
-
- reader.onload = function() {
- img.attr('src', reader.result);
- };
-
- reader.readAsDataURL(file);
- } else {
- attachment.text(file.name + ' (' + file.size + ' byte)');
- }
-
- $('<button>').addClass('jsxc_btn jsxc_btn-primary').text($.t('Send')).click(function() {
- var sess = jsxc.webrtc.sendFile(jid, file);
-
- jsxc.gui.window.hideOverlay(bid);
-
- var message = jsxc.gui.window.postMessage({
- _uid: sess.sid + ':msg',
- bid: bid,
- direction: 'out',
- attachment: {
- name: file.name,
- size: file.size,
- type: file.type,
- data: (file.type.match(/^image\//)) ? img.attr('src') : null
- }
- });
-
- sess.sender.on('progress', function(sent, size) {
- jsxc.gui.window.updateProgress(message, sent, size);
- });
-
- msg.remove();
-
- }).appendTo(msg);
-
- $('<button>').addClass('jsxc_btn jsxc_btn-default').text($.t('Abort')).click(function() {
- jsxc.gui.window.hideOverlay(bid);
- }).appendTo(msg);
- });
+ jsxc.fileTransfer.startGuiAction(jid);
}
};
@@ -5496,7 +5658,7 @@ jsxc.gui.template.get = function(name, bid, msg) {
$.extend(ph, {
bid_priv_fingerprint: (data && data.fingerprint) ? data.fingerprint.replace(/(.{8})/g, '$1 ') : $.t('not_available'),
bid_jid: bid,
- bid_name: (data && data.name) ? data.name : bid
+ bid_name: (data && data.name) ? jsxc.escapeHTML(data.name) : bid
});
}
@@ -5526,7 +5688,7 @@ jsxc.gui.template.get = function(name, bid, msg) {
}
});
- ret.i18n();
+ ret.localize(ph);
return ret;
}
@@ -5536,6 +5698,274 @@ jsxc.gui.template.get = function(name, bid, msg) {
};
/**
+ * Load message object with given uid.
+ *
+ * @class Message
+ * @memberOf jsxc
+ * @param {string} uid Unified identifier from message object
+ */
+/**
+ * Create new message object.
+ *
+ * @class Message
+ * @memberOf jsxc
+ * @param {object} args New message properties
+ * @param {string} args.bid
+ * @param {direction} args.direction
+ * @param {string} args.msg
+ * @param {boolean} args.encrypted
+ * @param {boolean} args.forwarded
+ * @param {boolean} args.sender
+ * @param {integer} args.stamp
+ * @param {object} args.attachment Attached data
+ * @param {string} args.attachment.name File name
+ * @param {string} args.attachment.size File size
+ * @param {string} args.attachment.type File type
+ * @param {string} args.attachment.data File data
+ */
+
+jsxc.Message = function() {
+
+ /** @member {string} */
+ this._uid = null;
+
+ /** @member {boolean} */
+ this._received = false;
+
+ /** @member {boolean} */
+ this.encrypted = null;
+
+ /** @member {boolean} */
+ this.forwarded = false;
+
+ /** @member {integer} */
+ this.stamp = new Date().getTime();
+
+ this.type = jsxc.Message.PLAIN;
+
+ if (typeof arguments[0] === 'string' && arguments[0].length > 0 && arguments.length === 1) {
+ this._uid = arguments[0];
+
+ this.load(this._uid);
+ } else if (typeof arguments[0] === 'object' && arguments[0] !== null) {
+ $.extend(this, arguments[0]);
+ }
+
+ if (!this._uid) {
+ this._uid = new Date().getTime() + ':msg';
+ }
+};
+
+/**
+ * Load message properties.
+ *
+ * @memberof jsxc.Message
+ * @param {string} uid
+ */
+jsxc.Message.prototype.load = function(uid) {
+ var data = jsxc.storage.getUserItem('msg', uid);
+
+ if (!data) {
+ jsxc.debug('Could not load message with uid ' + uid);
+ }
+
+ $.extend(this, data);
+};
+
+/**
+ * Save message properties and create thumbnail.
+ *
+ * @memberOf jsxc.Message
+ * @return {Message} this object
+ */
+jsxc.Message.prototype.save = function() {
+ var history;
+
+ if (this.bid) {
+ history = jsxc.storage.getUserItem('history', this.bid) || [];
+
+ if (history.indexOf(this._uid) < 0) {
+ if (history.length > jsxc.options.get('numberOfMsg')) {
+ jsxc.Message.delete(history.pop());
+ }
+ } else {
+ history = null;
+ }
+ }
+
+ if (Image && this.attachment && this.attachment.type.match(/^image\//i) && this.attachment.data && !this.attachment.thumbnail) {
+ var sHeight, sWidth, sx, sy;
+ var dHeight = 100,
+ dWidth = 100;
+ var canvas = $("<canvas>").get(0);
+
+ canvas.width = dWidth;
+ canvas.height = dHeight;
+
+ var ctx = canvas.getContext("2d");
+ var img = new Image();
+
+ img.src = this.attachment.data;
+
+ if (img.height > img.width) {
+ sHeight = img.width;
+ sWidth = img.width;
+ sx = 0;
+ sy = (img.height - img.width) / 2;
+ } else {
+ sHeight = img.height;
+ sWidth = img.height;
+ sx = (img.width - img.height) / 2;
+ sy = 0;
+ }
+
+ ctx.drawImage(img, sx, sy, sWidth, sHeight, 0, 0, dWidth, dHeight);
+
+ this.attachment.thumbnail = canvas.toDataURL();
+
+ if (this.direction === 'out') {
+ // save storage
+ this.attachment.data = null;
+ }
+ }
+
+ var data;
+
+ if (this.attachment && this.attachment.size > jsxc.options.maxStorableSize && this.direction === 'in') {
+ jsxc.debug('Attachment to large to store');
+
+ data = this.attachment.data;
+ this.attachment.data = null;
+ this.attachment.persistent = false;
+
+ //TODO inform user
+ }
+
+ jsxc.storage.setUserItem('msg', this._uid, this);
+
+ if (history) {
+ history.unshift(this._uid);
+
+ jsxc.storage.setUserItem('history', this.bid, history);
+ }
+
+ if (data && this.attachment) {
+ this.attachment.data = data;
+ }
+
+ return this;
+};
+
+/**
+ * Remove object from storage.
+ *
+ * @memberOf jsxc.Message
+ */
+jsxc.Message.prototype.delete = function() {
+ jsxc.Message.delete(this._uid);
+};
+
+/**
+ * Returns object as jquery object.
+ *
+ * @memberOf jsxc.Message
+ * @return {jQuery} Representation in DOM
+ */
+jsxc.Message.prototype.getDOM = function() {
+ return jsxc.Message.getDOM(this._uid);
+};
+
+/**
+ * Mark message as received.
+ *
+ * @memberOf jsxc.Message
+ */
+jsxc.Message.prototype.received = function() {
+ this._received = true;
+ this.save();
+
+ this.getDOM().addClass('jsxc_received');
+};
+
+/**
+ * Returns true if the message was already received.
+ *
+ * @memberOf jsxc.Message
+ * @return {boolean} true means received
+ */
+jsxc.Message.prototype.isReceived = function() {
+ return this._received;
+};
+
+/**
+ * Remove message with uid.
+ *
+ * @memberOf jsxc.Message
+ * @static
+ * @param {string} uid message uid
+ */
+jsxc.Message.delete = function(uid) {
+ var data = jsxc.storage.getUserItem('msg', uid);
+
+ if (data) {
+ jsxc.storage.removeUserItem('msg', uid);
+
+ if (data.bid) {
+ var history = jsxc.storage.getUserItem('history', data.bid) || [];
+
+ history = $.grep(history, function(el) {
+ return el !== uid;
+ });
+
+ jsxc.storage.setUserItem('history', data.bid, history);
+ }
+ }
+};
+
+/**
+ * Returns message object as jquery object.
+ *
+ * @memberOf jsxc.Message
+ * @static
+ * @param {string} uid message uid
+ * @return {jQuery} jQuery representation in DOM
+ */
+jsxc.Message.getDOM = function(uid) {
+ return $('#' + uid.replace(/:/g, '-'));
+};
+
+/**
+ * Message direction can be incoming, outgoing or system.
+ *
+ * @typedef {(jsxc.Message.IN|jsxc.Message.OUT|jsxc.Message.SYS)} direction
+ */
+
+/**
+ * @constant
+ * @type {string}
+ * @default
+ */
+jsxc.Message.IN = 'in';
+
+/**
+ * @constant
+ * @type {string}
+ * @default
+ */
+jsxc.Message.OUT = 'out';
+
+/**
+ * @constant
+ * @type {string}
+ * @default
+ */
+jsxc.Message.SYS = 'sys';
+
+jsxc.Message.HTML = 'html';
+
+jsxc.Message.PLAIN = 'plain';
+
+/**
* Implements Multi-User Chat (XEP-0045).
*
* @namespace jsxc.muc
@@ -5626,6 +6056,10 @@ jsxc.muc = {
$(document).one('ready.roster.jsxc', jsxc.muc.initMenu);
}
+ // remove maybe previously attached handlers
+ $(document).off('presence.jsxc', jsxc.muc.onPresence);
+ $(document).off('error.presence.jsxc', jsxc.muc.onPresenceError);
+
$(document).on('presence.jsxc', jsxc.muc.onPresence);
$(document).on('error.presence.jsxc', jsxc.muc.onPresenceError);
@@ -5658,6 +6092,8 @@ jsxc.muc = {
var self = jsxc.muc;
var dialog = jsxc.gui.dialog.open(jsxc.gui.template.get('joinChat'));
+ // @TODO split this monster function apart
+
// hide second step button
dialog.find('.jsxc_join').hide();
@@ -5672,7 +6108,27 @@ jsxc.muc = {
}
// display conference server
+ var serverInputTimeout;
dialog.find('#jsxc_server').val(jsxc.options.get('muc').server);
+ dialog.find('#jsxc_server').on('input', function() {
+ var self = $(this);
+
+ if (serverInputTimeout) {
+ clearTimeout(serverInputTimeout);
+ dialog.find('.jsxc_inputinfo.jsxc_room').hide();
+ }
+
+ dialog.find('.jsxc_inputinfo.jsxc_server').hide().text('');
+ dialog.find('#jsxc_server').removeClass('jsxc_invalid');
+
+ if (self.val() && self.val().match(/^[.-0-9a-zA-Z]+$/i)) {
+ dialog.find('.jsxc_inputinfo.jsxc_room').show().addClass('jsxc_waiting');
+
+ serverInputTimeout = setTimeout(function() {
+ loadRoomList(self.val());
+ }, 1800);
+ }
+ }).trigger('input');
// handle error response
var error_handler = function(event, condition, room) {
@@ -5720,7 +6176,7 @@ jsxc.muc = {
delete self.conn.muc.rooms[room];
}
- dialog.find('.jsxc_warning').text(msg);
+ $('<p>').addClass('jsxc_warning').text(msg).appendTo(dialog.find('.jsxc_msg'));
};
$(document).on('error.muc.jsxc', error_handler);
@@ -5729,42 +6185,6 @@ jsxc.muc = {
$(document).off('error.muc.jsxc', error_handler);
});
- // load room list
- self.conn.muc.listRooms(jsxc.options.get('muc').server, function(stanza) {
- // workaround: chrome does not display dropdown arrow for dynamically filled datalists
- $('#jsxc_roomlist option:last').remove();
-
- $(stanza).find('item').each(function() {
- var r = $('<option>');
- var rjid = $(this).attr('jid').toLowerCase();
- var rnode = Strophe.getNodeFromJid(rjid);
- var rname = $(this).attr('name') || rnode;
-
- r.text(rname);
- r.attr('data-jid', rjid);
- r.attr('value', rnode);
-
- $('#jsxc_roomlist select').append(r);
- });
-
- var set = $(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');
-
- if (set.length > 0) {
- var count = set.find('count').text() || '?';
-
- dialog.find('.jsxc_inputinfo').removeClass('jsxc_waiting').text($.t('Could_load_only', {
- count: count
- }));
- } else {
- dialog.find('.jsxc_inputinfo').hide();
- }
- }, function() {
- jsxc.warn('Could not load rooms');
-
- // room autocompletion is a comfort feature, so it is not necessary to inform the user
- dialog.find('.jsxc_inputinfo').hide();
- });
-
dialog.find('#jsxc_nickname').attr('placeholder', Strophe.getNodeFromJid(self.conn.jid));
dialog.find('#jsxc_bookmark').change(function() {
@@ -5782,7 +6202,7 @@ jsxc.muc = {
var room = ($('#jsxc_room').val()) ? jsxc.jidToBid($('#jsxc_room').val()) : null;
var nickname = $('#jsxc_nickname').val() || Strophe.getNodeFromJid(self.conn.jid);
- var password = $('#jsxc_password').val() || null;
+ var server = dialog.find('#jsxc_server').val();
if (!room || !room.match(/^[^"&\'\/:<>@\s]+$/i)) {
$('#jsxc_room').addClass('jsxc_invalid').keyup(function() {
@@ -5793,8 +6213,12 @@ jsxc.muc = {
return false;
}
+ if (dialog.find('#jsxc_server').hasClass('jsxc_invalid')) {
+ return false;
+ }
+
if (!room.match(/@(.*)$/)) {
- room += '@' + jsxc.options.get('muc').server;
+ room += '@' + server;
}
if (jsxc.xmpp.conn.muc.roomNames.indexOf(room) < 0) {
@@ -5816,6 +6240,7 @@ jsxc.muc = {
var bookmark = $("#jsxc_bookmark").prop("checked");
var autojoin = $('#jsxc_autojoin').prop('checked');
+ var password = $('#jsxc_password').val() || null;
// clean up
jsxc.gui.window.clear(room);
@@ -5838,12 +6263,18 @@ jsxc.muc = {
$(stanza).find('feature').each(function() {
var feature = $(this).attr('var');
- if (feature !== '' && i18n.exists(feature)) {
+ if (feature !== '' && i18next.exists(feature)) {
var tr = $('<tr>');
$('<td>').text($.t(feature + '.keyword')).appendTo(tr);
$('<td>').text($.t(feature + '.description')).appendTo(tr);
tr.appendTo(table);
}
+
+ if (feature === 'muc_passwordprotected') {
+ dialog.find('#jsxc_password').parents('.form-group').removeClass('jsxc_hidden');
+ dialog.find('#jsxc_password').attr('required', 'required');
+ dialog.find('#jsxc_password').addClass('jsxc_invalid');
+ }
});
dialog.find('.jsxc_msg').append(table);
@@ -5861,7 +6292,7 @@ jsxc.muc = {
discoReceived();
});
} else {
- dialog.find('.jsxc_warning').text($.t('You_already_joined_this_room'));
+ $('<p>').addClass('jsxc_warning').text($.t('You_already_joined_this_room')).appendTo(dialog.find('.jsxc_msg'));
}
return false;
@@ -5872,12 +6303,15 @@ jsxc.muc = {
if (ev.which !== 13) {
// reset messages and room information
- dialog.find('.jsxc_warning').empty();
+ dialog.find('.jsxc_warning').remove();
- if (dialog.find('.jsxc_continue').is(":hidden")) {
+ if (dialog.find('.jsxc_continue').is(":hidden") && $(this).attr('id') !== 'jsxc_password') {
dialog.find('.jsxc_continue').show();
dialog.find('.jsxc_join').hide().off('click');
dialog.find('.jsxc_msg').empty();
+ dialog.find('#jsxc_password').parents('.form-group').addClass('jsxc_hidden');
+ dialog.find('#jsxc_password').attr('required', '');
+ dialog.find('#jsxc_password').removeClass('jsxc_invalid');
jsxc.gui.dialog.resize();
}
@@ -5890,6 +6324,58 @@ jsxc.muc = {
dialog.find('.jsxc_join').click();
}
});
+
+ function loadRoomList(server) {
+ if (!server) {
+ dialog.find('.jsxc_inputinfo').hide();
+
+ return;
+ }
+
+ // load room list
+ self.conn.muc.listRooms(server, function(stanza) {
+ // workaround: chrome does not display dropdown arrow for dynamically filled datalists
+ $('#jsxc_roomlist option:last').remove();
+
+ $(stanza).find('item').each(function() {
+ var r = $('<option>');
+ var rjid = $(this).attr('jid').toLowerCase();
+ var rnode = Strophe.getNodeFromJid(rjid);
+ var rname = $(this).attr('name') || rnode;
+
+ r.text(rname);
+ r.attr('data-jid', rjid);
+ r.attr('value', rnode);
+
+ $('#jsxc_roomlist select').append(r);
+ });
+
+ var set = $(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');
+
+ if (set.length > 0) {
+ var count = set.find('count').text() || '?';
+
+ dialog.find('.jsxc_inputinfo').show().removeClass('jsxc_waiting').text($.t('Could_load_only', {
+ count: count
+ }));
+ } else {
+ dialog.find('.jsxc_inputinfo').hide();
+ }
+ }, function(stanza) {
+ var errTextMsg = $(stanza).find('error text').text() || null;
+ jsxc.warn('Could not load rooms', errTextMsg);
+
+ if (errTextMsg) {
+ dialog.find('.jsxc_inputinfo.jsxc_server').show().text(errTextMsg);
+ }
+
+ if ($(stanza).find('error remote-server-not-found')) {
+ dialog.find('#jsxc_server').addClass('jsxc_invalid');
+ }
+
+ dialog.find('.jsxc_inputinfo.jsxc_room').hide();
+ });
+ }
},
/**
@@ -5928,8 +6414,8 @@ jsxc.muc = {
var form = dialog.find('form');
// work around Strophe.x behaviour
- form.find('[type="checkbox"]').change(function(){
- $(this).val(this.checked ? 1 : 0);
+ form.find('[type="checkbox"]').change(function() {
+ $(this).val(this.checked ? 1 : 0);
});
var submit = $('<button>');
@@ -7147,7 +7633,7 @@ jsxc.muc = {
$(document).on('init.window.jsxc', jsxc.muc.initWindow);
$(document).on('add.roster.jsxc', jsxc.muc.onAddRoster);
-$(document).one('attached.jsxc', function() {
+$(document).on('attached.jsxc', function() {
jsxc.muc.init();
});
@@ -7158,7 +7644,7 @@ $(document).one('connected.jsxc', function() {
/**
* This namespace handle the notice system.
- *
+ *
* @namspace jsxc.notice
* @memberOf jsxc
*/
@@ -7168,7 +7654,7 @@ jsxc.notice = {
/**
* Loads the saved notices.
- *
+ *
* @memberOf jsxc.notice
*/
load: function() {
@@ -7184,25 +7670,28 @@ jsxc.notice = {
if (saved.hasOwnProperty(key)) {
var val = saved[key];
- jsxc.notice.add(val.msg, val.description, val.fnName, val.fnParams, key);
+ jsxc.notice.add(val, val.fnName, val.fnParams, key);
}
}
},
/**
* Add a new notice to the stack;
- *
+ *
* @memberOf jsxc.notice
- * @param msg Header message
- * @param description Notice description
- * @param fnName Function name to be called if you open the notice
+ * @param {Object} data
+ * @param {String} data.msg Header message
+ * @param {String} data.description Notice description
+ * @param {String} fnName Function name to be called if you open the notice
* @param fnParams Array of params for function
- * @param id Notice id
+ * @param {String} id Notice id
*/
- add: function(msg, description, fnName, fnParams, id) {
+ add: function(data, fnName, fnParams, id) {
var nid = id || Date.now();
var list = $('#jsxc_notice ul');
var notice = $('<li/>');
+ var msg = data.msg;
+ var description = data.description;
notice.click(function() {
jsxc.notice.remove(nid);
@@ -7212,6 +7701,10 @@ jsxc.notice = {
return false;
});
+ if (data.type) {
+ notice.addClass('jsxc_' + data.type + 'icon');
+ }
+
notice.text(msg);
notice.attr('title', description || '');
notice.attr('data-nid', nid);
@@ -7219,11 +7712,13 @@ jsxc.notice = {
$('#jsxc_notice > span').text(++jsxc.notice._num);
+ var saved = jsxc.storage.getUserItem('notices') || {};
+
if (!id) {
- var saved = jsxc.storage.getUserItem('notices') || {};
saved[nid] = {
msg: msg,
description: description,
+ type: data.type,
fnName: fnName,
fnParams: fnParams
};
@@ -7231,11 +7726,23 @@ jsxc.notice = {
jsxc.notification.notify(msg, description || '', null, true, jsxc.CONST.SOUNDS.NOTICE);
}
+
+ if (Object.keys(saved).length > 3 && list.find('.jsxc_closeAll').length === 0) {
+ // add close all button
+ var closeAll = $('<li>');
+ closeAll.addClass('jsxc_closeAll jsxc_deleteicon jsxc_warning');
+ closeAll.text($.t('Close_all'));
+ closeAll.prependTo(list);
+ closeAll.click(jsxc.notice.removeAll);
+ } else if (Object.keys(saved).length <= 3 && list.find('.jsxc_closeAll').length !== 0) {
+ // remove close all button
+ list.find('.jsxc_closeAll').remove();
+ }
},
/**
* Removes notice from stack
- *
+ *
* @memberOf jsxc.notice
* @param nid The notice id
*/
@@ -7245,14 +7752,30 @@ jsxc.notice = {
el.remove();
$('#jsxc_notice > span').text(--jsxc.notice._num || '');
- var s = jsxc.storage.getUserItem('notices');
+ var s = jsxc.storage.getUserItem('notices') || {};
delete s[nid];
jsxc.storage.setUserItem('notices', s);
+
+ if (Object.keys(s).length <= 3 && $('#jsxc_notice .jsxc_closeAll').length !== 0) {
+ // remove close all button
+ $('#jsxc_notice .jsxc_closeAll').remove();
+ }
+ },
+
+ /**
+ * Remove all notices.
+ */
+ removeAll: function() {
+ jsxc.notice._num = 0;
+ jsxc.storage.setUserItem('notices', {});
+
+ $('#jsxc_notice ul').empty();
+ $('#jsxc_notice > span').text('');
},
/**
* Check if there is already a notice for the given function name.
- *
+ *
* @memberOf jsxc.notice
* @param {string} fnName Function name
* @returns {boolean} True if there is >0 functions with the given name
@@ -7275,7 +7798,7 @@ jsxc.notice = {
/**
* This namespace handles the Notification API.
- *
+ *
* @namespace jsxc.notification
*/
jsxc.notification = {
@@ -7285,7 +7808,7 @@ jsxc.notification = {
/**
* Register notification on incoming messages.
- *
+ *
* @memberOf jsxc.notification
*/
init: function() {
@@ -7314,7 +7837,7 @@ jsxc.notification = {
/**
* Shows a pop up notification and optional play sound.
- *
+ *
* @param title Title
* @param msg Message
* @param d Duration
@@ -7383,7 +7906,7 @@ jsxc.notification = {
/**
* Checks if browser has support for notifications and add on chrome to the
* default api.
- *
+ *
* @returns {Boolean} True if the browser has support.
*/
hasSupport: function() {
@@ -7438,7 +7961,10 @@ jsxc.notification = {
$(document).one('postmessagein.jsxc', function() {
setTimeout(function() {
- jsxc.notice.add($.t('Notifications') + '?', $.t('Should_we_notify_you_'), 'gui.showRequestNotification');
+ jsxc.notice.add({
+ msg: $.t('Notifications') + '?',
+ description: $.t('Should_we_notify_you_')
+ }, 'gui.showRequestNotification');
}, 1000);
});
},
@@ -7462,7 +7988,7 @@ jsxc.notification = {
/**
* Check permission.
- *
+ *
* @returns {Boolean} True if we have the permission
*/
hasPermission: function() {
@@ -7471,7 +7997,7 @@ jsxc.notification = {
/**
* Plays the given file.
- *
+ *
* @memberOf jsxc.notification
* @param {string} soundFile File relative to the sound directory
* @param {boolean} loop True for loop
@@ -7505,7 +8031,7 @@ jsxc.notification = {
/**
* Stop/remove current sound.
- *
+ *
* @memberOf jsxc.notification
*/
stopSound: function() {
@@ -7519,7 +8045,7 @@ jsxc.notification = {
/**
* Mute sound.
- *
+ *
* @memberOf jsxc.notification
* @param {boolean} external True if triggered from external tab. Default:
* false.
@@ -7534,7 +8060,7 @@ jsxc.notification = {
/**
* Unmute sound.
- *
+ *
* @memberOf jsxc.notification
* @param {boolean} external True if triggered from external tab. Default:
* false.
@@ -7550,7 +8076,7 @@ jsxc.notification = {
/**
* Set some options for the chat.
- *
+ *
* @namespace jsxc.options
*/
jsxc.options = {
@@ -7569,7 +8095,7 @@ jsxc.options = {
enable: true,
ERROR_START_AKE: false,
debug: false,
- SEND_WHITESPACE_TAG: true,
+ SEND_WHITESPACE_TAG: false,
WHITESPACE_START_AKE: true
},
@@ -7610,9 +8136,9 @@ jsxc.options = {
},
/**
- * This function is called if a login form was found, but before any
+ * This function is called if a login form was found, but before any
* modification is done to it.
- *
+ *
* @memberOf jsxc.options
* @function
*/
@@ -7638,7 +8164,7 @@ jsxc.options = {
},
/**
- * Action after login was called: dialog [String] Show wait dialog, false [boolean] |
+ * Action after login was called: dialog [String] Show wait dialog, false [boolean] |
* quiet [String] Do nothing
*/
onConnecting: 'dialog',
@@ -7657,25 +8183,25 @@ jsxc.options = {
/**
* True: Attach connection even is login form was found.
- *
+ *
* @type {Boolean}
* @deprecated since 3.0.0. Use now loginForm.ifFound (true => attach, false => pause)
*/
attachIfFound: true,
/**
- * Describes what we should do if login form was found:
+ * Describes what we should do if login form was found:
* - Attach connection
* - Force new connection with loginForm.jid and loginForm.passed
* - Pause connection and do nothing
- *
+ *
* @type {(attach|force|pause)}
*/
ifFound: 'attach',
/**
- * True: Display roster minimized after first login. Afterwards the last
- * roster state will be used.
+ * True: Display roster minimized after first login. Afterwards the last
+ * roster state will be used.
*/
startMinimized: false
},
@@ -7720,7 +8246,7 @@ jsxc.options = {
/**
* If no avatar is found, this function is called.
- *
+ *
* @param jid Jid of that user.
* @this {jQuery} Elements to update with probable .jsxc_avatar elements
*/
@@ -7736,7 +8262,7 @@ jsxc.options = {
/**
* Returns permanent saved settings and overwrite default jsxc.options.
- *
+ *
* @memberOf jsxc.options
* @function
* @param username {string} username
@@ -7747,7 +8273,7 @@ jsxc.options = {
/**
* Call this function to save user settings permanent.
- *
+ *
* @memberOf jsxc.options
* @param data Holds all data as key/value
* @param cb Called with true on success, false otherwise
@@ -7758,19 +8284,19 @@ jsxc.options = {
carbons: {
/** Enable carbon copies? */
- enable: false
+ enable: true
},
/**
* Processes user list.
- *
+ *
* @callback getUsers-cb
* @param {object} list List of users, key: username, value: alias
*/
/**
* Returns a list of usernames and aliases
- *
+ *
* @function getUsers
* @memberOf jsxc.options
* @param {string} search Search token (start with)
@@ -7828,7 +8354,32 @@ jsxc.options = {
}
},
- maxStorableSize: 1000000
+ /** Maximal storage size for attachments received via data channels (webrtc). */
+ maxStorableSize: 1000000,
+
+ /** Options for file transfer. */
+ fileTransfer: {
+ httpUpload: {
+ enable: true
+ },
+ // @TODO add option to enable/disable data channels
+ },
+
+ /** Default option for chat state notifications */
+ chatState: {
+ enable: true
+ },
+
+ /**
+ * Download urls to screen media extensions.
+ *
+ * @type {Object}
+ * @see example extensions {@link https://github.com/otalk/getScreenMedia}
+ */
+ screenMediaExtension: {
+ firefox: '',
+ chrome: ''
+ }
};
/**
@@ -7841,7 +8392,7 @@ jsxc.otr = {
dsaFallback: null,
/**
* Handler for otr receive event
- *
+ *
* @memberOf jsxc.otr
* @param {Object} d
* @param {string} d.bid
@@ -7873,28 +8424,29 @@ jsxc.otr = {
msg: d.msg,
encrypted: d.encrypted,
forwarded: d.forwarded,
- stamp: d.stamp
+ stamp: d.stamp,
+ attachment: d.attachment
});
}
},
/**
* Handler for otr send event
- *
+ *
* @param {string} jid
* @param {string} msg message to be send
*/
- sendMessage: function(jid, msg, uid) {
+ sendMessage: function(jid, msg, message) {
if (jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate !== 0) {
jsxc.otr.backup(jsxc.jidToBid(jid));
}
- jsxc.xmpp._sendMessage(jid, msg, uid);
+ jsxc.xmpp._sendMessage(jid, msg, message);
},
/**
* Create new otr instance
- *
+ *
* @param {type} bid
* @returns {undefined}
*/
@@ -8045,17 +8597,18 @@ jsxc.otr = {
msg: msg,
encrypted: encrypted === true,
stamp: meta.stamp,
- forwarded: meta.forwarded
+ forwarded: meta.forwarded,
+ attachment: meta.attachment
});
});
// Send message
- jsxc.otr.objects[bid].on('io', function(msg, uid) {
+ jsxc.otr.objects[bid].on('io', function(msg, message) {
var jid = jsxc.gui.window.get(bid).data('jid') || jsxc.otr.objects[bid].jid;
jsxc.otr.objects[bid].jid = jid;
- jsxc.otr.sendMessage(jid, msg, uid);
+ jsxc.otr.sendMessage(jid, msg, message);
});
jsxc.otr.objects[bid].on('error', function(err) {
@@ -8076,7 +8629,7 @@ jsxc.otr = {
/**
* show verification dialog with related part (secret or question)
- *
+ *
* @param {type} bid
* @param {string} [data]
* @returns {undefined}
@@ -8108,7 +8661,7 @@ jsxc.otr = {
/**
* Send verification request to buddy
- *
+ *
* @param {string} bid
* @param {string} sec secret
* @param {string} [quest] question
@@ -8122,7 +8675,7 @@ jsxc.otr = {
/**
* Toggle encryption state
- *
+ *
* @param {type} bid
* @returns {undefined}
*/
@@ -8140,7 +8693,7 @@ jsxc.otr = {
/**
* Send request to encrypt the session
- *
+ *
* @param {type} bid
* @returns {undefined}
*/
@@ -8156,7 +8709,7 @@ jsxc.otr = {
/**
* Abort encryptet session
- *
+ *
* @param {type} bid
* @param cb callback
* @returns {undefined}
@@ -8176,7 +8729,7 @@ jsxc.otr = {
/**
* Backups otr session
- *
+ *
* @param {string} bid
*/
backup: function(bid) {
@@ -8208,7 +8761,7 @@ jsxc.otr = {
/**
* Restore old otr session
- *
+ *
* @param {string} bid
*/
restore: function(bid) {
@@ -8243,7 +8796,7 @@ jsxc.otr = {
/**
* Create or load DSA key
- *
+ *
* @returns {unresolved}
*/
createDSA: function() {
@@ -8341,7 +8894,7 @@ jsxc.otr = {
/**
* Ending of DSA key generation.
- *
+ *
* @param {DSA} dsa DSA object
*/
DSAready: function(dsa) {
@@ -8386,7 +8939,7 @@ jsxc.storage = {
var self = jsxc.storage;
if (uk && !jsxc.bid) {
- console.trace('Unable to create user prefix');
+ jsxc.warn('Unable to create user prefix');
}
return self.PREFIX + self.SEP + ((uk && jsxc.bid) ? jsxc.bid + self.SEP : '');
@@ -9015,20 +9568,31 @@ jsxc.tab = {
});
},
- /*jshint -W098 */
- execMaster: function(cmd, params) {
+ /**
+ * Execute command in master tab.
+ *
+ * @param {String} cmd Command
+ * @param {String[]} params List of parameters
+ */
+ execMaster: function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(jsxc.tab.CONST.MASTER);
jsxc.tab.exec.apply(this, args);
},
- execSlave: function(cmd, params) {
- var args = Array.prototype.slice.call(arguments);
- args.unshift(jsxc.tab.CONST.SLAVE);
- jsxc.tab.exec.apply(this, args);
- }
- /*jshint +W098 */
+ /**
+ * Execute command in all slave tabs.
+ *
+ * @param {String} cmd Command
+ * @param {String[]} params List of parameters
+ */
+ execSlave: function() {
+ var args = Array.prototype.slice.call(arguments);
+ args.unshift(jsxc.tab.CONST.SLAVE);
+
+ jsxc.tab.exec.apply(this, args);
+ }
};
/* global MediaStreamTrack, File */
@@ -9036,7 +9600,7 @@ jsxc.tab = {
/**
* WebRTC namespace for jsxc.
- *
+ *
* @namespace jsxc.webrtc
*/
jsxc.webrtc = {
@@ -9066,7 +9630,7 @@ jsxc.webrtc = {
/**
* Initialize webrtc plugin.
- *
+ *
* @private
* @memberOf jsxc.webrtc
*/
@@ -9086,20 +9650,20 @@ jsxc.webrtc = {
$(document).on('message.jsxc', self.onMessage);
$(document).on('presence.jsxc', self.onPresence);
- $(document).on('mediaready.jingle', self.onMediaReady);
$(document).on('mediafailure.jingle', self.onMediaFailure);
manager.on('incoming', $.proxy(self.onIncoming, self));
+ // @REVIEW those events could be session based
manager.on('terminated', $.proxy(self.onTerminated, self));
manager.on('ringing', $.proxy(self.onCallRinging, self));
manager.on('receivedFile', $.proxy(self.onReceivedFile, self));
-
manager.on('sentFile', function(sess, metadata) {
jsxc.debug('sent ' + metadata.hash);
});
+ // @REVIEW those events could be session based
manager.on('peerStreamAdded', $.proxy(self.onRemoteStreamAdded, self));
manager.on('peerStreamRemoved', $.proxy(self.onRemoteStreamRemoved, self));
@@ -9141,7 +9705,6 @@ jsxc.webrtc = {
$(document).off('message.jsxc', self.onMessage);
$(document).off('presence.jsxc', self.onPresence);
- $(document).off('mediaready.jingle', self.onMediaReady);
$(document).off('mediafailure.jingle', self.onMediaFailure);
$(document).off('caps.strophe', self.onCaps);
@@ -9149,7 +9712,7 @@ jsxc.webrtc = {
/**
* Checks if cached configuration is valid and if necessary update it.
- *
+ *
* @memberOf jsxc.webrtc
* @param {string} [url]
*/
@@ -9226,7 +9789,7 @@ jsxc.webrtc = {
/**
* Return list of capable resources.
- *
+ *
* @memberOf jsxc.webrtc
* @param jid
* @param {(string|string[])} features list of required features
@@ -9255,7 +9818,7 @@ jsxc.webrtc = {
/**
* Add "video" button to window menu.
- *
+ *
* @private
* @memberOf jsxc.webrtc
* @param event
@@ -9277,15 +9840,27 @@ jsxc.webrtc = {
return;
}
+ // Add video call icon
var div = $('<div>').addClass('jsxc_video');
win.find('.jsxc_tools .jsxc_settings').after(div);
+ var screenMediaExtension = jsxc.options.get('screenMediaExtension') || {};
+ var browser = self.conn.jingle.RTC.webrtcDetectedBrowser;
+ if (screenMediaExtension[browser] || jsxc.storage.getItem('debug')) {
+ // Add screen sharing button if extension is available or we are in debug mode
+ var a = $('<a>');
+ a.text($.t('Share_screen'));
+ a.addClass('jsxc_shareScreen jsxc_video');
+ a.attr('href', '#');
+ win.find('.jsxc_settings .jsxc_menu li:last').after($('<li>').append(a));
+ }
+
self.updateIcon(win.data('bid'));
},
/**
* Enable or disable "video" icon and assign full jid.
- *
+ *
* @memberOf jsxc.webrtc
* @param bid CSS conform jid
*/
@@ -9333,7 +9908,11 @@ jsxc.webrtc = {
if (capableRes.indexOf(targetRes) > -1) {
el.click(function() {
- self.startCall(jid);
+ if ($(this).hasClass('jsxc_shareScreen')) {
+ self.startScreenSharing(jid);
+ } else {
+ self.startCall(jid);
+ }
});
el.removeClass('jsxc_disabled');
@@ -9344,20 +9923,11 @@ jsxc.webrtc = {
el.attr('title', $.t('Video_call_not_possible'));
}
-
- var fileCapableRes = self.getCapableRes(jid, self.reqFileFeatures);
- var resources = Object.keys(jsxc.storage.getUserItem('res', bid) || {}) || [];
-
- if (fileCapableRes.indexOf(res) > -1 || (res === null && fileCapableRes.length === 1 && resources.length === 1)) {
- win.find('.jsxc_sendFile').removeClass('jsxc_disabled');
- } else {
- win.find('.jsxc_sendFile').addClass('jsxc_disabled');
- }
},
/**
* Check if full jid changed.
- *
+ *
* @private
* @memberOf jsxc.webrtc
* @param e
@@ -9377,7 +9947,7 @@ jsxc.webrtc = {
/**
* Update icon on presence.
- *
+ *
* @memberOf jsxc.webrtc
* @param ev
* @param status
@@ -9395,7 +9965,7 @@ jsxc.webrtc = {
/**
* Display status message to user.
- *
+ *
* @memberOf jsxc.webrtc
* @param txt message
* @param d duration in ms
@@ -9442,7 +10012,7 @@ jsxc.webrtc = {
/**
* Update "video" button if we receive cap information.
- *
+ *
* @private
* @memberOf jsxc.webrtc
* @param event
@@ -9461,67 +10031,47 @@ jsxc.webrtc = {
},
/**
- * Called if video/audio is ready. Open window and display some messages.
- *
- * @private
- * @memberOf jsxc.webrtc
- * @param event
- * @param stream
- */
- onMediaReady: function(event, stream) {
- jsxc.debug('media ready');
-
- var self = jsxc.webrtc;
-
- self.localStream = stream;
- self.conn.jingle.localStream = stream;
-
- var dialog = jsxc.gui.showVideoWindow(self.last_caller);
-
- var audioTracks = stream.getAudioTracks();
- var videoTracks = stream.getVideoTracks();
- var i;
-
- for (i = 0; i < audioTracks.length; i++) {
- self.setStatus((audioTracks.length > 0) ? $.t('Use_local_audio_device') : $.t('No_local_audio_device'));
-
- jsxc.debug('using audio device "' + audioTracks[i].label + '"');
- }
-
- for (i = 0; i < videoTracks.length; i++) {
- self.setStatus((videoTracks.length > 0) ? $.t('Use_local_video_device') : $.t('No_local_video_device'));
-
- jsxc.debug('using video device "' + videoTracks[i].label + '"');
-
- dialog.find('.jsxc_localvideo').show();
- }
-
- $(document).trigger('finish.mediaready.jsxc');
- },
-
- /**
* Called if media failes.
- *
+ *
* @private
* @memberOf jsxc.webrtc
*/
onMediaFailure: function(ev, err) {
var self = jsxc.webrtc;
- err = err || {
- name: 'Undefined'
- };
+ var msg;
+ err = err || {};
self.setStatus('media failure');
+ switch (err.name) {
+ case 'NotAllowedError':
+ case 'PERMISSION_DENIED':
+ msg = $.t('PermissionDeniedError');
+ break;
+ case 'HTTPS_REQUIRED':
+ case 'EXTENSION_UNAVAILABLE':
+ msg = $.t(err.name);
+ break;
+ default:
+ msg = $.t(err.name) !== err.name ? $.t(err.name) : $.t('UNKNOWN_ERROR');
+ }
+
jsxc.gui.window.postMessage({
bid: jsxc.jidToBid(jsxc.webrtc.last_caller),
direction: jsxc.Message.SYS,
- msg: $.t('Media_failure') + ': ' + $.t(err.name) + ' (' + err.name + ').'
+ msg: $.t('Media_failure') + ': ' + msg + ' (' + err.name + ').'
});
+ jsxc.gui.dialog.close();
+
jsxc.debug('media failure: ' + err.name);
},
+ /**
+ * Process incoming jingle offer.
+ *
+ * @param {BaseSession} session
+ */
onIncoming: function(session) {
var self = jsxc.webrtc;
var type = (session.constructor) ? session.constructor.name : null;
@@ -9529,10 +10079,88 @@ jsxc.webrtc = {
if (type === 'FileTransferSession') {
self.onIncomingFileTransfer(session);
} else if (type === 'MediaSession') {
- self.onIncomingCall(session);
+ var reqMedia = false;
+
+ $.each(session.pc.remoteDescription.contents, function() {
+ if (this.senders === 'both') {
+ reqMedia = true;
+ }
+ });
+
+ session.call = reqMedia;
+
+ if (reqMedia) {
+ self.onIncomingCall(session);
+ } else {
+ self.onIncomingStream(session);
+ }
+ } else {
+ jsxc.warn('Unknown session type.');
}
},
+ /**
+ * Process incoming stream offer.
+ *
+ * @param {MediaSession} session
+ */
+ onIncomingStream: function(session) {
+ jsxc.debug('incoming stream from ' + session.peerID);
+
+ var self = jsxc.webrtc;
+ var bid = jsxc.jidToBid(session.peerID);
+
+ session.on('change:connectionState', $.proxy(self.onIceConnectionStateChanged, self));
+
+ self.postScreenMessage(bid, $.t('Incoming_stream'), session.sid);
+
+ // display notification
+ jsxc.notification.notify($.t('Incoming_stream'), $.t('from_sender', {
+ sender: bid
+ }));
+
+ // send signal to partner
+ session.ring();
+
+ jsxc.webrtc.last_caller = session.peerID;
+
+ if (jsxc.webrtc.AUTO_ACCEPT) {
+ acceptIncomingStream(session);
+
+ return;
+ }
+
+ var dialog = jsxc.gui.dialog.open(jsxc.gui.template.get('incomingCall', bid), {
+ noClose: true
+ });
+
+ dialog.find('.jsxc_accept').click(function() {
+ $(document).trigger('accept.call.jsxc');
+
+ acceptIncomingStream(session);
+ });
+
+ dialog.find('.jsxc_reject').click(function() {
+ jsxc.gui.dialog.close();
+ $(document).trigger('reject.call.jsxc');
+
+ session.decline();
+ });
+
+ function acceptIncomingStream(session) {
+ jsxc.gui.dialog.close();
+
+ jsxc.gui.showVideoWindow(session.peerID);
+
+ session.accept();
+ }
+ },
+
+ /**
+ * Process incoming file offer.
+ *
+ * @param {FileSession} session
+ */
onIncomingFileTransfer: function(session) {
jsxc.debug('incoming file transfer from ' + session.peerID);
@@ -9561,11 +10189,10 @@ jsxc.webrtc = {
/**
* Called on incoming call.
- *
+ *
* @private
* @memberOf jsxc.webrtc
- * @param event
- * @param sid Session id
+ * @param {MediaSession} session
*/
onIncomingCall: function(session) {
jsxc.debug('incoming call from ' + session.peerID);
@@ -9575,11 +10202,7 @@ jsxc.webrtc = {
session.on('change:connectionState', $.proxy(self.onIceConnectionStateChanged, self));
- jsxc.gui.window.postMessage({
- bid: bid,
- direction: jsxc.Message.SYS,
- msg: $.t('Incoming_call')
- });
+ self.postCallMessage(bid, $.t('Incoming_call'), session.sid);
// display notification
jsxc.notification.notify($.t('Incoming_call'), $.t('from_sender', {
@@ -9591,27 +10214,8 @@ jsxc.webrtc = {
jsxc.webrtc.last_caller = session.peerID;
- function acceptCall() {
- $(document).trigger('accept.call.jsxc');
-
- jsxc.switchEvents({
- 'mediaready.jingle': function(event, stream) {
- self.setStatus('Accept call');
-
- session.addStream(stream);
-
- session.accept();
- },
- 'mediafailure.jingle': function() {
- session.decline();
- }
- });
-
- self.reqUserMedia();
- }
-
if (jsxc.webrtc.AUTO_ACCEPT) {
- acceptCall();
+ self.acceptIncomingCall(session);
return;
}
@@ -9619,7 +10223,9 @@ jsxc.webrtc = {
noClose: true
});
- dialog.find('.jsxc_accept').click(acceptCall);
+ dialog.find('.jsxc_accept').click(function() {
+ self.acceptIncomingCall(session);
+ });
dialog.find('.jsxc_reject').click(function() {
jsxc.gui.dialog.close();
@@ -9629,6 +10235,45 @@ jsxc.webrtc = {
});
},
+ /**
+ * Called on incoming call.
+ *
+ * @private
+ * @memberOf jsxc.webrtc
+ * @param {MediaSession} session
+ */
+ acceptIncomingCall: function(session) {
+ $(document).trigger('accept.call.jsxc');
+
+ var self = jsxc.webrtc;
+
+ jsxc.switchEvents({
+ 'mediaready.jingle': function(ev, stream) {
+ self.setStatus('Accept call');
+
+ self.localStream = stream;
+ self.conn.jingle.localStream = stream;
+
+ var dialog = jsxc.gui.showVideoWindow(session.peerID);
+ dialog.find('.jsxc_videoContainer').addClass('jsxc_establishing');
+
+ session.addStream(stream);
+ session.accept();
+ },
+ 'mediafailure.jingle': function() {
+ session.decline();
+ }
+ });
+
+ self.reqUserMedia();
+ },
+
+ /**
+ * Process jingle termination event.
+ *
+ * @param {BaseSession} session
+ * @param {Object} reason Reason for termination
+ */
onTerminated: function(session, reason) {
var self = jsxc.webrtc;
var type = (session.constructor) ? session.constructor.name : null;
@@ -9640,82 +10285,99 @@ jsxc.webrtc = {
/**
* Called if call is terminated.
- *
+ *
* @private
* @memberOf jsxc.webrtc
- * @param event
- * @param sid Session id
- * @param reason Reason for termination
- * @param [text] Optional explanation
+ * @param {BaseSession} session
+ * @param {Object} reason Reason for termination
*/
onCallTerminated: function(session, reason) {
- this.setStatus('call terminated ' + session.peerID + (reason && reason.condition ? reason.condition : ''));
+ var self = jsxc.webrtc;
+
+ self.setStatus('call terminated ' + session.peerID + (reason && reason.condition ? reason.condition : ''));
var bid = jsxc.jidToBid(session.peerID);
- if (this.localStream) {
- if (typeof this.localStream.stop === 'function') {
- this.localStream.stop();
- } else {
- var tracks = this.localStream.getTracks();
+ if (self.localStream) {
+ // stop local stream
+ if (typeof self.localStream.getTracks === 'function') {
+ var tracks = self.localStream.getTracks();
tracks.forEach(function(track) {
track.stop();
});
+ } else if (typeof self.localStream.stop === 'function') {
+ self.localStream.stop();
+ } else {
+ jsxc.warn('Could not stop local stream');
}
}
- if ($('.jsxc_videoContainer').length) {
+ // @REVIEW necessary?
+ if ($('.jsxc_remotevideo').length) {
$('.jsxc_remotevideo')[0].src = "";
+ }
+
+ if ($('.jsxc_localvideo').length) {
$('.jsxc_localvideo')[0].src = "";
}
- this.conn.jingle.localStream = null;
- this.localStream = null;
- this.remoteStream = null;
+ self.conn.jingle.localStream = null;
+ self.localStream = null;
+ self.remoteStream = null;
jsxc.gui.closeVideoWindow();
+ // Close incoming call dialog and stop ringing
+ jsxc.gui.dialog.close();
+ $(document).trigger('reject.call.jsxc');
+
$(document).off('error.jingle');
- jsxc.gui.window.postMessage({
- bid: bid,
- direction: jsxc.Message.SYS,
- msg: ($.t('Call_terminated') + (reason && reason.condition ? (': ' + $.t('jingle_reason_' + reason.condition)) : '') + '.')
- });
+ var msg = (reason && reason.condition ? (': ' + $.t('jingle_reason_' + reason.condition)) : '') + '.';
+ if (session.call) {
+ msg = $.t('Call_terminated') + msg;
+ jsxc.webrtc.postCallMessage(bid, msg, session.sid);
+ } else {
+ msg = $.t('Stream_terminated') + msg;
+ jsxc.webrtc.postScreenMessage(bid, msg, session.sid);
+ }
},
/**
* Remote station is ringing.
- *
+ *
* @private
* @memberOf jsxc.webrtc
*/
onCallRinging: function() {
this.setStatus('ringing...', 0);
+
+ $('.jsxc_videoContainer').removeClass('jsxc_establishing').addClass('jsxc_ringing');
},
/**
* Called if we receive a remote stream.
- *
+ *
* @private
* @memberOf jsxc.webrtc
- * @param event
- * @param data
- * @param sid Session id
+ * @param {BaseSession} session
+ * @param {Object} stream
*/
onRemoteStreamAdded: function(session, stream) {
- this.setStatus('Remote stream for session ' + session.sid + ' added.');
+ var self = jsxc.webrtc;
+
+ self.setStatus('Remote stream for session ' + session.sid + ' added.');
- this.remoteStream = stream;
+ self.remoteStream = stream;
var isVideoDevice = stream.getVideoTracks().length > 0;
var isAudioDevice = stream.getAudioTracks().length > 0;
- this.setStatus(isVideoDevice ? 'Use remote video device.' : 'No remote video device');
- this.setStatus(isAudioDevice ? 'Use remote audio device.' : 'No remote audio device');
+ self.setStatus(isVideoDevice ? 'Use remote video device.' : 'No remote video device');
+ self.setStatus(isAudioDevice ? 'Use remote audio device.' : 'No remote audio device');
if ($('.jsxc_remotevideo').length) {
- this.attachMediaStream($('#jsxc_webrtc .jsxc_remotevideo'), stream);
+ self.attachMediaStream($('#jsxc_webrtc .jsxc_remotevideo'), stream);
$('#jsxc_webrtc .jsxc_' + (isVideoDevice ? 'remotevideo' : 'noRemoteVideo')).addClass('jsxc_deviceAvailable');
}
@@ -9723,7 +10385,7 @@ jsxc.webrtc = {
/**
* Attach media stream to element.
- *
+ *
* @memberOf jsxc.webrtc
* @param element {Element|jQuery}
* @param stream {mediastream}
@@ -9732,16 +10394,16 @@ jsxc.webrtc = {
var self = jsxc.webrtc;
self.conn.jingle.RTC.attachMediaStream((element instanceof jQuery) ? element.get(0) : element, stream);
+
+ $(element).show();
},
/**
* Called if the remote stream was removed.
- *
+ *
* @private
* @meberOf jsxc.webrtc
- * @param event
- * @param data
- * @param sid Session id
+ * @param {BaseSession} session
*/
onRemoteStreamRemoved: function(session) {
this.setStatus('Remote stream for ' + session.jid + ' removed.');
@@ -9750,13 +10412,12 @@ jsxc.webrtc = {
},
/**
- * Extracts local and remote ip and display it to the user.
- *
+ * Display information according to the connection state.
+ *
* @private
* @memberOf jsxc.webrtc
- * @param event
- * @param sid session id
- * @param sess
+ * @param {BaseSession} session
+ * @param {String} state
*/
onIceConnectionStateChanged: function(session, state) {
var self = jsxc.webrtc;
@@ -9764,10 +10425,7 @@ jsxc.webrtc = {
jsxc.debug('connection state for ' + session.sid, state);
if (state === 'connected') {
-
$('#jsxc_webrtc .jsxc_deviceAvailable').show();
- $('#jsxc_webrtc .bubblingG').hide();
-
} else if (state === 'failed') {
jsxc.gui.window.postMessage({
bid: jsxc.jidToBid(session.peerID),
@@ -9785,13 +10443,13 @@ jsxc.webrtc = {
/**
* Start a call to the specified jid.
- *
+ *
* @memberOf jsxc.webrtc
- * @param jid full jid
- * @param um requested user media
+ * @param {String} jid full jid
+ * @param {String[]} um requested user media
*/
startCall: function(jid, um) {
- var self = this;
+ var self = jsxc.webrtc;
if (Strophe.getResourceFromJid(jid) === null) {
jsxc.debug('We need a full jid');
@@ -9801,28 +10459,10 @@ jsxc.webrtc = {
self.last_caller = jid;
jsxc.switchEvents({
- 'finish.mediaready.jsxc': function() {
- self.setStatus('Initiate call');
+ 'mediaready.jingle': function(ev, stream) {
+ jsxc.debug('media ready for outgoing call');
- jsxc.gui.window.postMessage({
- bid: jsxc.jidToBid(jid),
- direction: jsxc.Message.SYS,
- msg: $.t('Call_started')
- });
-
- $(document).one('error.jingle', function(e, sid, error) {
- if (error && error.source !== 'offer') {
- return;
- }
-
- setTimeout(function() {
- jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.");
- }, 500);
- });
-
- var session = self.conn.jingle.initiate(jid);
-
- session.on('change:connectionState', $.proxy(self.onIceConnectionStateChanged, self));
+ self.initiateOutgoingCall(jid, stream);
},
'mediafailure.jingle': function() {
jsxc.gui.dialog.close();
@@ -9833,8 +10473,47 @@ jsxc.webrtc = {
},
/**
+ * Start jingle session to jid with stream.
+ *
+ * @param {String} jid
+ * @param {Object} stream
+ */
+ initiateOutgoingCall: function(jid, stream) {
+ var self = jsxc.webrtc;
+
+ self.localStream = stream;
+ self.conn.jingle.localStream = stream;
+
+ var dialog = jsxc.gui.showVideoWindow(jid);
+
+ dialog.find('.jsxc_videoContainer').addClass('jsxc_establishing');
+
+ self.setStatus('Initiate call');
+
+ // @REVIEW session based?
+ $(document).one('error.jingle', function(ev, sid, error) {
+ if (error && error.source !== 'offer') {
+ return;
+ }
+
+ setTimeout(function() {
+ jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.");
+ }, 500);
+ });
+
+ var session = self.conn.jingle.initiate(jid);
+
+ // flag session as call
+ session.call = true;
+
+ session.on('change:connectionState', $.proxy(self.onIceConnectionStateChanged, self));
+
+ self.postCallMessage(jsxc.jidToBid(jid), $.t('Call_started'), session.sid);
+ },
+
+ /**
* Hang up the current call.
- *
+ *
* @memberOf jsxc.webrtc
*/
hangUp: function(reason, text) {
@@ -9849,8 +10528,121 @@ jsxc.webrtc = {
},
/**
- * Request video and audio from local user.
- *
+ * Start outgoing screen sharing session.
+ *
+ * @param {String} jid
+ */
+ startScreenSharing: function(jid) {
+ var self = this;
+
+ if (Strophe.getResourceFromJid(jid) === null) {
+ jsxc.debug('We need a full jid');
+ return;
+ }
+
+ self.last_caller = jid;
+
+ jsxc.switchEvents({
+ 'mediaready.jingle': function(ev, stream) {
+ self.initiateScreenSharing(jid, stream);
+ },
+ 'mediafailure.jingle': function(ev, err) {
+ jsxc.gui.dialog.close();
+
+ var browser = self.conn.jingle.RTC.webrtcDetectedBrowser;
+
+ var screenMediaExtension = jsxc.options.get('screenMediaExtension') || {};
+ if (screenMediaExtension[browser] &&
+ (err.name === 'EXTENSION_UNAVAILABLE' || (err.name === 'NotAllowedError' && browser === 'firefox'))) {
+ // post download link after explanation
+ setTimeout(function() {
+ jsxc.gui.window.postMessage({
+ bid: jsxc.jidToBid(jid),
+ direction: jsxc.Message.SYS,
+ msg: $.t('Install_extension') + screenMediaExtension[browser]
+ });
+ }, 500);
+ }
+ }
+ });
+
+ self.reqUserMedia(['screen']);
+ },
+
+ /**
+ * Initiate outgoing (one-way) jingle session to jid with stream.
+ *
+ * @param {String} jid
+ * @param {Object} stream
+ */
+ initiateScreenSharing: function(jid, stream) {
+ var self = jsxc.webrtc;
+ var bid = jsxc.jidToBid(jid);
+
+ jsxc.webrtc.localStream = stream;
+ jsxc.webrtc.conn.jingle.localStream = stream;
+
+ var container = jsxc.gui.showMinimizedVideoWindow();
+ container.addClass('jsxc_establishing');
+
+ self.setStatus('Initiate stream');
+
+ $(document).one('error.jingle', function(e, sid, error) {
+ if (error && error.source !== 'offer') {
+ return;
+ }
+
+ setTimeout(function() {
+ jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.");
+ }, 500);
+ });
+
+ var browser = self.conn.jingle.RTC.webrtcDetectedBrowser;
+ var browserVersion = self.conn.jingle.RTC.webrtcDetectedVersion;
+ var constraints;
+
+ if ((browserVersion < 33 && browser === 'firefox') || browser === 'chrome') {
+ constraints = {
+ mandatory: {
+ 'OfferToReceiveAudio': false,
+ 'OfferToReceiveVideo': false
+ }
+ };
+ } else {
+ constraints = {
+ 'offerToReceiveAudio': false,
+ 'offerToReceiveVideo': false
+ };
+ }
+
+ var session = self.conn.jingle.initiate(jid, undefined, constraints);
+ session.call = false;
+
+ session.on('change:connectionState', $.proxy(self.onIceConnectionStateChanged, self));
+ // @REVIEW also for calls?
+ session.on('accepted', function() {
+ self.onSessionAccepted(session);
+ });
+
+ self.postScreenMessage(bid, $.t('Stream_started'), session.sid);
+ },
+
+ /**
+ * Session was accepted by other peer.
+ *
+ * @param {BaseSession} session
+ */
+ onSessionAccepted: function(session) {
+ var self = jsxc.webrtc;
+
+ $('.jsxc_videoContainer').removeClass('jsxc_ringing');
+
+ self.postScreenMessage(jsxc.jidToBid(session.peerID), $.t('Connection_accepted'), session.sid);
+ },
+
+ /**
+ * Request media from local user.
+ *
* @memberOf jsxc.webrtc
*/
reqUserMedia: function(um) {
@@ -9864,26 +10656,45 @@ jsxc.webrtc = {
jsxc.gui.dialog.open(jsxc.gui.template.get('allowMediaAccess'), {
noClose: true
});
- this.setStatus('please allow access to microphone and camera');
- if (typeof MediaStreamTrack !== 'undefined' && typeof MediaStreamTrack.getSources !== 'undefined') {
- MediaStreamTrack.getSources(function(sourceInfo) {
- var availableDevices = sourceInfo.map(function(el) {
-
- return el.kind;
+ if (um.indexOf('screen') >= 0) {
+ jsxc.webrtc.getScreenMedia();
+ } else if (typeof navigator !== 'undefined' && typeof navigator.mediaDevices !== 'undefined' &&
+ typeof navigator.mediaDevices.enumerateDevices !== 'undefined') {
+ navigator.mediaDevices.enumerateDevices()
+ .then(filterUserMedia)
+ .catch(function(err) {
+ jsxc.warn(err.name + ": " + err.message);
});
+ } else if (typeof MediaStreamTrack !== 'undefined' && typeof MediaStreamTrack.getSources !== 'undefined') {
+ // @deprecated in chrome since v56
+ MediaStreamTrack.getSources(filterUserMedia);
+ } else {
+ jsxc.webrtc.getUserMedia(um);
+ }
- um = um.filter(function(el) {
- return availableDevices.indexOf(el) !== -1;
- });
+ function filterUserMedia(devices) {
+ var availableDevices = devices.map(function(device) {
+ return device.kind;
+ });
- jsxc.webrtc.getUserMedia(um);
+ um = um.filter(function(el) {
+ return availableDevices.indexOf(el) !== -1 || availableDevices.indexOf(el + 'input') !== -1;
});
- } else {
- jsxc.webrtc.getUserMedia(um);
+
+ if (um.length) {
+ jsxc.webrtc.getUserMedia(um);
+ } else {
+ jsxc.warn('No audio/video device available.');
+ }
}
},
+ /**
+ * Get user media from local browser.
+ *
+ * @memberOf jsxc.webrtc
+ */
getUserMedia: function(um) {
var self = jsxc.webrtc;
var constraints = {};
@@ -9913,8 +10724,50 @@ jsxc.webrtc = {
},
/**
+ * Get screen media from local browser.
+ *
+ * @memberOf jsxc.webrtc
+ */
+ getScreenMedia: function() {
+ var self = jsxc.webrtc;
+
+ jsxc.debug('get screen media');
+
+ self.conn.jingle.getScreenMedia(self.screenMediaCallback);
+ },
+
+ screenMediaCallback: function(err, stream) {
+ if (err) {
+ $(document).trigger('mediafailure.jingle', [err]);
+
+ return;
+ }
+
+ if (stream) {
+ jsxc.debug('onScreenMediaSuccess');
+ $(document).trigger('mediaready.jingle', [stream]);
+ }
+ },
+
+ screenMediaAvailable: function() {
+ var self = jsxc.webrtc;
+ var browser = self.conn.jingle.RTC.webrtcDetectedBrowser;
+
+ // test if chrome extension for this domain is available
+ var chrome = !!sessionStorage.getScreenMediaJSExtensionId && browser === 'chrome';
+
+ // the ff extension from {@link https://github.com/otalk/getScreenMedia}
+ // does not provide any possibility to determine if it is installed or not.
+ // Starting with Firefox 52 {@link https://www.mozilla.org/en-US/firefox/52.0a2/auroranotes/}
+ // no extension is needed anyway.
+ var firefox = browser === 'firefox';
+
+ return chrome || firefox;
+ },
+
+ /**
* Make a snapshot from a video stream and display it.
- *
+ *
* @memberOf jsxc.webrtc
* @param video Video stream
*/
@@ -9954,7 +10807,7 @@ jsxc.webrtc = {
},
/**
- * Send file to full jid.
+ * Send file to full jid via jingle.
*
* @memberOf jsxc.webrtc
* @param {string} jid full jid
@@ -9962,8 +10815,16 @@ jsxc.webrtc = {
* @return {object} session
*/
sendFile: function(jid, file) {
+ jsxc.debug('Send file via webrtc');
+
var self = jsxc.webrtc;
+ if (!Strophe.getResourceFromJid(jid)) {
+ jsxc.warn('Require full jid to send file via webrtc');
+
+ return;
+ }
+
var sess = self.conn.jingle.manager.createFileTransferSession(jid);
sess.on('change:sessionState', function() {
@@ -9997,7 +10858,7 @@ jsxc.webrtc = {
var type;
if (!metadata.type) {
- // detect file type via file extension, because XEP-0234 v0.14
+ // detect file type via file extension, because XEP-0234 v0.14
// does not send any type
var ext = metadata.name.replace(/.+\.([a-z0-9]+)$/i, '$1').toLowerCase();
@@ -10053,9 +10914,60 @@ jsxc.webrtc = {
}
};
+jsxc.webrtc.postCallMessage = function(bid, msg, uid) {
+ jsxc.gui.window.postMessage({
+ _uid: uid,
+ bid: bid,
+ direction: jsxc.Message.SYS,
+ msg: ':telephone_receiver: ' + msg
+ });
+};
+jsxc.webrtc.postScreenMessage = function(bid, msg, uid) {
+ jsxc.gui.window.postMessage({
+ _uid: uid,
+ bid: bid,
+ direction: jsxc.Message.SYS,
+ msg: ':computer: ' + msg
+ });
+};
+
+jsxc.gui.showMinimizedVideoWindow = function() {
+ var self = jsxc.webrtc;
+
+ // needed to trigger complete.dialog.jsxc
+ jsxc.gui.dialog.close();
+
+ var videoContainer = $('<div/>');
+ videoContainer.addClass('jsxc_videoContainer jsxc_minimized');
+ videoContainer.appendTo('body');
+ videoContainer.draggable({
+ containment: "parent"
+ });
+
+ var videoElement = $('<video class="jsxc_localvideo" autoplay=""></video>');
+ videoElement.appendTo(videoContainer);
+
+ videoElement[0].muted = true;
+ videoElement[0].volume = 0;
+
+ if (self.localStream) {
+ self.attachMediaStream(videoElement, self.localStream);
+ }
+
+ videoContainer.append('<div class="jsxc_controlbar"><div><div class="jsxc_hangUp jsxc_videoControl"></div></div></div></div>');
+ videoContainer.find('.jsxc_hangUp').click(function() {
+ jsxc.webrtc.hangUp('success');
+ });
+ videoContainer.click(function() {
+ videoContainer.find('.jsxc_controlbar').toggleClass('jsxc_visible');
+ });
+
+ return videoContainer;
+};
+
/**
* Display window for video call.
- *
+ *
* @memberOf jsxc.gui
*/
jsxc.gui.showVideoWindow = function(jid) {
@@ -10144,11 +11056,14 @@ jsxc.gui.showVideoWindow = function(jid) {
jsxc.gui.closeVideoWindow = function() {
var win = $('#jsxc_webrtc .jsxc_chatarea > ul > li');
- $('#jsxc_windowList > ul').prepend(win.detach());
- win.find('.slimScrollDiv').resizable('enable');
- jsxc.gui.window.resize(win);
- $('#jsxc_webrtc').remove();
+ if (win.length > 0) {
+ $('#jsxc_windowList > ul').prepend(win.detach());
+ win.find('.slimScrollDiv').resizable('enable');
+ jsxc.gui.window.resize(win);
+ }
+
+ $('#jsxc_webrtc, .jsxc_videoContainer').remove();
};
$.extend(jsxc.CONST, {
@@ -10505,6 +11420,564 @@ jsxc.xmpp.bookmarks.showDialog = function(room) {
});
};
+/**
+ * Implements XEP-0085: Chat State Notifications.
+ *
+ * @namespace jsxc.xmpp.chatState
+ * @see {@link http://xmpp.org/extensions/xep-0085.html}
+ */
+jsxc.xmpp.chatState = {
+ conn: null,
+
+ /** Delay between two notification on the message composing */
+ toComposingNotificationDelay: 900,
+};
+
+jsxc.xmpp.chatState.init = function() {
+ var self = jsxc.xmpp.chatState;
+
+ if (!jsxc.xmpp.conn || !jsxc.xmpp.connected) {
+ $(document).on('attached.jsxc', self.init);
+
+ return;
+ }
+
+ // prevent double execution after reconnect
+ $(document).off('composing.chatstates', jsxc.xmpp.chatState.onComposing);
+ $(document).off('paused.chatstates', jsxc.xmpp.chatState.onPaused);
+ $(document).off('active.chatstates', jsxc.xmpp.chatState.onActive);
+
+ if (self.isDisabled()) {
+ jsxc.debug('chat state notification disabled');
+
+ return;
+ }
+
+ self.conn = jsxc.xmpp.conn;
+
+ $(document).on('composing.chatstates', jsxc.xmpp.chatState.onComposing);
+ $(document).on('paused.chatstates', jsxc.xmpp.chatState.onPaused);
+ $(document).on('active.chatstates', jsxc.xmpp.chatState.onActive);
+};
+
+/**
+ * Composing event received. Display message.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {Event} ev
+ * @param {String} jid
+ */
+jsxc.xmpp.chatState.onComposing = function(ev, jid) {
+ var self = jsxc.xmpp.chatState;
+ var bid = jsxc.jidToBid(jid);
+ var data = jsxc.storage.getUserItem('buddy', bid) || null;
+
+ if (!data || jsxc.xmpp.chatState.isDisabled()) {
+ return;
+ }
+
+ // ignore own notifications in groupchat
+ if (data.type === 'groupchat' &&
+ Strophe.getResourceFromJid(jid) === Strophe.getNodeFromJid(self.conn.jid)) {
+ return;
+ }
+
+ var user = data.type === 'groupchat' ? Strophe.getResourceFromJid(jid) : data.name;
+ var win = jsxc.gui.window.get(bid);
+
+ if (win.length === 0) {
+ return;
+ }
+
+ clearTimeout(win.data('composing-timeout'));
+
+ // add user in array if necessary
+ var usersComposing = win.data('composing') || [];
+ if (usersComposing.indexOf(user) === -1) {
+ usersComposing.push(user);
+ win.data('composing', usersComposing);
+ }
+
+ var textarea = win.find('.jsxc_textarea');
+ var composingNotif = textarea.find('.jsxc_composing');
+
+ if (composingNotif.length < 1) {
+ // notification not present, add it
+ composingNotif = $('<div>').addClass('jsxc_composing')
+ .addClass('jsxc_chatmessage')
+ .addClass('jsxc_sys')
+ .appendTo(textarea);
+ }
+
+ var msg = self._genComposingMsg(usersComposing);
+ composingNotif.text(msg);
+
+ // scroll to bottom
+ jsxc.gui.window.scrollDown(bid);
+
+ // show message
+ composingNotif.addClass('jsxc_fadein');
+};
+
+/**
+ * Pause event receive. Remove or update composing message.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {Event} ev
+ * @param {String} jid
+ */
+jsxc.xmpp.chatState.onPaused = function(ev, jid) {
+ var self = jsxc.xmpp.chatState;
+ var bid = jsxc.jidToBid(jid);
+ var data = jsxc.storage.getUserItem('buddy', bid) || null;
+
+ if (!data || jsxc.xmpp.chatState.isDisabled()) {
+ return;
+ }
+
+ var user = data.type === 'groupchat' ? Strophe.getResourceFromJid(jid) : data.name;
+ var win = jsxc.gui.window.get(bid);
+
+ if (win.length === 0) {
+ return;
+ }
+
+ var el = win.find('.jsxc_composing');
+ var usersComposing = win.data('composing') || [];
+
+ if (usersComposing.indexOf(user) >= 0) {
+ // remove user from list
+ usersComposing.splice(usersComposing.indexOf(user), 1);
+ win.data('composing', usersComposing);
+ }
+
+ if (usersComposing.length === 0) {
+ var durationValue = el.css('transition-duration') || '0s';
+ var duration = parseFloat(durationValue) || 0;
+
+ if (durationValue.match(/[^m]s$/)) {
+ duration *= 1000;
+ }
+
+ el.removeClass('jsxc_fadein');
+
+ var to = setTimeout(function() {
+ el.remove();
+ }, duration);
+
+ win.data('composing-timeout', to);
+ } else {
+ // update message
+ el.text(self._genComposingMsg(usersComposing));
+ }
+};
+
+/**
+ * Active event received.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {Event} ev
+ * @param {String} jid
+ */
+jsxc.xmpp.chatState.onActive = function(ev, jid) {
+ jsxc.xmpp.chatState.onPaused(ev, jid);
+};
+
+/**
+ * Send composing event.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {String} bid
+ */
+jsxc.xmpp.chatState.startComposing = function(bid) {
+ var self = jsxc.xmpp.chatState;
+
+ if (!jsxc.xmpp.conn || !jsxc.xmpp.conn.chatstates || jsxc.xmpp.chatState.isDisabled()) {
+ return;
+ }
+
+ var win = jsxc.gui.window.get(bid);
+ var timeout = win.data('composing-timeout');
+ var type = win.hasClass('jsxc_groupchat') ? 'groupchat' : 'chat';
+
+ if (timeout) {
+ // @REVIEW page reload?
+ clearTimeout(timeout);
+ } else {
+ jsxc.xmpp.conn.chatstates.sendComposing(bid, type);
+ }
+
+ timeout = setTimeout(function() {
+ self.pauseComposing(bid, type);
+
+ win.data('composing-timeout', null);
+ }, self.toComposingNotificationDelay);
+
+ win.data('composing-timeout', timeout);
+};
+
+/**
+ * Send pause event.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {String} bid
+ */
+jsxc.xmpp.chatState.pauseComposing = function(bid, type) {
+ if (jsxc.xmpp.chatState.isDisabled()) {
+ return;
+ }
+
+ jsxc.xmpp.conn.chatstates.sendPaused(bid, type);
+};
+
+/**
+ * End composing without sending a pause event.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {String} bid
+ */
+jsxc.xmpp.chatState.endComposing = function(bid) {
+ var win = jsxc.gui.window.get(bid);
+
+ if (win.data('composing-timeout')) {
+ clearTimeout(win.data('composing-timeout'));
+ }
+};
+
+/**
+ * Generate composing message.
+ *
+ * @memberOf jsxc.xmpp.chatState
+ * @param {Array} usersComposing List of users which are currently composing a message
+ */
+jsxc.xmpp.chatState._genComposingMsg = function(usersComposing) {
+ if (!usersComposing || usersComposing.length === 0) {
+ jsxc.debug('usersComposing array is empty?');
+
+ return '';
+ } else {
+ return usersComposing.length > 1 ? usersComposing.join(', ') + $.t('_are_composing') :
+ usersComposing[0] + $.t('_is_composing');
+ }
+};
+
+jsxc.xmpp.chatState.isDisabled = function() {
+ var options = jsxc.options.get('chatState') || {};
+
+ return !options.enable;
+};
+
+$(document).on('attached.jsxc', jsxc.xmpp.chatState.init);
+
+/**
+ * Implements Http File Upload (XEP-0363)
+ *
+ * @namespace jsxc.xmpp.httpUpload
+ * @see {@link http://xmpp.org/extensions/xep-0363.html}
+ */
+jsxc.xmpp.httpUpload = {
+ conn: null,
+
+ ready: false,
+
+ CONST: {
+ NS: {
+ HTTPUPLOAD: 'urn:xmpp:http:upload'
+ }
+ }
+};
+
+/**
+ * Set up http file upload.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ * @param {Object} o options
+ */
+jsxc.xmpp.httpUpload.init = function(o) {
+ var self = jsxc.xmpp.httpUpload;
+ self.conn = jsxc.xmpp.conn;
+
+ var fileTransferOptions = jsxc.options.get('fileTransfer') || {};
+ var options = o || jsxc.options.get('httpUpload');
+
+ if (!fileTransferOptions.httpUpload.enable) {
+ jsxc.debug('http upload disabled');
+
+ jsxc.options.set('httpUpload', false);
+
+ return;
+ }
+
+ if (options && options.server) {
+ self.ready = true;
+
+ return;
+ }
+
+ var caps = jsxc.xmpp.conn.caps;
+ var domain = jsxc.xmpp.conn.domain;
+
+ if (!caps || !domain || typeof caps._knownCapabilities[caps._jidVerIndex[domain]] === 'undefined') {
+ jsxc.debug('Waiting for server capabilities');
+
+ $(document).on('caps.strophe', function onCaps(ev, from) {
+
+ if (from !== domain) {
+ return;
+ }
+
+ self.init();
+
+ $(document).off('caps.strophe', onCaps);
+ });
+
+ return;
+ }
+
+ if (caps.hasFeatureByJid(domain, self.CONST.NS.HTTPUPLOAD)) {
+ self.discoverUploadService();
+ } else {
+ jsxc.debug(domain + ' does not support http upload');
+ }
+};
+
+/**
+ * Discover upload service for http upload.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ */
+jsxc.xmpp.httpUpload.discoverUploadService = function() {
+ var self = jsxc.xmpp.httpUpload;
+
+ jsxc.debug('discover http upload service');
+
+ self.conn.disco.items(self.conn.domain, null, function(items) {
+ $(items).find('item').each(function() {
+ var jid = $(this).attr('jid');
+ var discovered = false;
+
+ self.conn.disco.info(jid, null, function(info) {
+ var httpUploadFeature = $(info).find('feature[var="' + self.CONST.NS.HTTPUPLOAD + '"]');
+ var httpUploadMaxSize = $(info).find('field[var="max-file-size"]');
+
+ if (httpUploadFeature.length > 0) {
+ jsxc.debug('http upload service found', jid);
+
+ jsxc.options.set('httpUpload', {
+ server: jid,
+ name: $(info).find('identity').attr('name'),
+ maxSize: parseInt(httpUploadMaxSize.text())
+ });
+
+ discovered = true;
+ self.ready = true;
+ }
+ });
+
+ return !discovered;
+ });
+ });
+};
+
+/**
+ * Upload file and send link to peer.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ * @param {File} file
+ * @param {Message} message Preview message
+ */
+jsxc.xmpp.httpUpload.sendFile = function(file, message) {
+ jsxc.debug('Send file via http upload');
+
+ var self = jsxc.xmpp.httpUpload;
+
+ // even if the link is encrypted the file isn't
+ message.encrypted = false;
+
+ self.requestSlot(file, function(data) {
+ if (!data) {
+ // general error
+ jsxc.warn('Unknown error occured. Please check the debug log.');
+ } else if (data.error) {
+ // specific error
+ jsxc.warn('The xmpp server responded with an error of the type "' + data.error.type + '"');
+
+ message.getDOM().remove();
+
+ jsxc.gui.window.postMessage({
+ bid: message.bid,
+ direction: jsxc.Message.SYS,
+ msg: data.error.text
+ });
+
+ message.delete();
+ } else if (data.get && data.put) {
+ // slot received, start upload
+ self.uploadFile(data.put, file, message, function() {
+ var a = $('<a>');
+ a.attr('href', data.get);
+ a.attr('data-name', message.attachment.name);
+ a.attr('data-type', message.attachment.type);
+ a.attr('data-size', message.attachment.size);
+
+ if (message.attachment.thumbnail) {
+ a.attr('data-thumbnail', message.attachment.thumbnail);
+ }
+
+ a.text(data.get);
+ message.attachment.data = data.get;
+
+ message.msg = $('<span>').append(a).html();
+ message.type = jsxc.Message.HTML;
+ jsxc.gui.window.postMessage(message);
+ });
+ }
+ });
+};
+
+/**
+ * Upload the given file to the given url.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ * @param {String} url upload url
+ * @param {File} file
+ * @param {Message} message preview message
+ * @param {Function} success_cb callback on successful transition
+ */
+jsxc.xmpp.httpUpload.uploadFile = function(url, file, message, success_cb) {
+ $.ajax({
+ url: url,
+ type: 'PUT',
+ contentType: 'application/octet-stream',
+ data: file,
+ processData: false,
+ xhr: function() {
+ var xhr = $.ajaxSettings.xhr();
+
+ // track upload progress
+ xhr.upload.onprogress = function(ev) {
+ if (ev.lengthComputable) {
+ jsxc.gui.window.updateProgress(message, ev.loaded, ev.total);
+ }
+ };
+ return xhr;
+ },
+ success: function() {
+ jsxc.debug('file successful uploaded');
+
+ // In case that upload progress is not available, inform user
+ jsxc.gui.window.updateProgress(message, 1, 1);
+
+ if (success_cb) {
+ success_cb();
+ }
+ },
+ error: function() {
+ jsxc.warn('error while uploading file to ' + url);
+
+ message.error = 'Could not upload file';
+ jsxc.gui.window.postMessage(message);
+ }
+ });
+};
+
+/**
+ * Request upload slot.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ * @param {File} file
+ * @param {Function} cb Callback after finished request
+ */
+jsxc.xmpp.httpUpload.requestSlot = function(file, cb) {
+ var self = jsxc.xmpp.httpUpload;
+ var options = jsxc.options.get('httpUpload');
+
+ if (!options || !options.server) {
+ jsxc.warn('could not request upload slot, because I am not aware of a server or http upload is disabled');
+
+ return;
+ }
+
+ var iq = $iq({
+ to: options.server,
+ type: 'get'
+ }).c('request', {
+ xmlns: self.CONST.NS.HTTPUPLOAD
+ }).c('filename').t(file.name)
+ .up()
+ .c('size').t(file.size);
+
+ self.conn.sendIQ(iq, function(stanza) {
+ self.successfulRequestSlotCB(stanza, cb);
+ }, function(stanza) {
+ self.failedRequestSlotCB(stanza, cb);
+ });
+};
+
+/**
+ * Process successful response to slot request.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ * @param {String} stanza
+ * @param {Function} cb
+ */
+jsxc.xmpp.httpUpload.successfulRequestSlotCB = function(stanza, cb) {
+ var self = jsxc.xmpp.httpUpload;
+ var slot = $(stanza).find('slot[xmlns="' + self.CONST.NS.HTTPUPLOAD + '"]');
+
+ if (slot.length > 0) {
+ var put = slot.find('put').text();
+ var get = slot.find('get').text();
+
+ cb({
+ put: put,
+ get: get
+ });
+ } else {
+ self.failedRequestSlotCB(stanza, cb);
+ }
+};
+
+/**
+ * Process failed response to slot request.
+ *
+ * @memberOf jsxc.xmpp.httpUpload
+ * @param {String} stanza
+ * @param {Function} cb
+ */
+jsxc.xmpp.httpUpload.failedRequestSlotCB = function(stanza, cb) {
+ if ($(stanza).find('error').length <= 0) {
+ jsxc.warn('response does not contain a slot element');
+
+ cb();
+
+ return;
+ }
+
+ var error = {
+ type: $(stanza).find('error').attr('type') || 'unknown',
+ text: $(stanza).find('error text').text()
+ };
+
+ if ($(stanza).find('error not-acceptable')) {
+ error.reason = 'not-acceptable';
+ } else if ($(stanza).find('error resource-constraint')) {
+ error.reason = 'resource-constraint';
+ } else if ($(stanza).find('error not-allowed')) {
+ error.reason = 'not-allowed';
+ }
+
+ cb({
+ error: error
+ });
+};
+
+$(document).on('stateChange.jsxc', function(ev, state) {
+ if (state === jsxc.CONST.STATE.READY) {
+ jsxc.xmpp.httpUpload.init();
+ }
+});
+
jsxc.gui.template['aboutDialog'] = '<h3>JavaScript XMPP Chat</h3>\n' +
@@ -10526,7 +11999,7 @@ jsxc.gui.template['aboutDialog'] = '<h3>JavaScript XMPP Chat</h3>\n' +
'</p>\n' +
'<p class="jsxc_libraries">\n' +
' <b>Libraries: </b>\n' +
-' <a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/bookmarks">strophe.js/bookmarks</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/dataforms">strophe.js/x</a> (MIT), <a href="https://github.com/sualko/strophe.jinglejs">strophe.jinglejs</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT), <a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup</a> (MIT), <a href="https://github.com/ejci/favico.js">favico.js</a> (MIT), <a href="http://emojione.com">emoji one</a> (CC-BY 4.0)\n' +
+' <a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/bookmarks">strophe.js/bookmarks</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/dataforms">strophe.js/x</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/chatstates">strophe.js/chatstates</a> (MIT), <a href="https://github.com/sualko/strophe.jinglejs">strophe.jinglejs</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT), <a href="http://i18next.com/">jquery-i18next</a> (MIT), <a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup</a> (MIT), <a href="https://github.com/ejci/favico.js">favico.js</a> (MIT), <a href="http://emojione.com">emoji one</a> (CC-BY 4.0)\n' +
'</p>\n' +
'\n' +
'<button class="btn btn-default pull-right jsxc_debuglog">Show debug log</button>\n' +
@@ -10550,13 +12023,6 @@ jsxc.gui.template['approveDialog'] = '<h3 data-i18n="Subscription_request"></h3>
'<button class="btn btn-default jsxc_deny pull-right" data-i18n="Deny"></button>\n' +
'';
-jsxc.gui.template['authFailDialog'] = '<h3 data-i18n="Login_failed"></h3>\n' +
-'<p data-i18n="Sorry_we_cant_authentikate_"></p>\n' +
-'\n' +
-'<button class="btn btn-primary jsxc_retry pull-right" data-i18n="Continue_without_chat"></button>\n' +
-'<button class="btn btn-default jsxc_cancel pull-right" data-i18n="Retry"></button>\n' +
-'';
-
jsxc.gui.template['authenticationDialog'] = '<h3>Verification</h3>\n' +
'<p data-i18n="Authenticating_a_buddy_helps_"></p>\n' +
'<div>\n' +
@@ -10622,6 +12088,13 @@ jsxc.gui.template['authenticationDialog'] = '<h3>Verification</h3>\n' +
'</div>\n' +
'';
+jsxc.gui.template['authFailDialog'] = '<h3 data-i18n="Login_failed"></h3>\n' +
+'<p data-i18n="Sorry_we_cant_authentikate_"></p>\n' +
+'\n' +
+'<button class="btn btn-primary jsxc_retry pull-right" data-i18n="Continue_without_chat"></button>\n' +
+'<button class="btn btn-default jsxc_cancel pull-right" data-i18n="Retry"></button>\n' +
+'';
+
jsxc.gui.template['bookmarkDialog'] = '<h3 data-i18n="Edit_bookmark"></h3>\n' +
'<form class="form-horizontal">\n' +
' <div class="form-group">\n' +
@@ -10716,7 +12189,7 @@ jsxc.gui.template['chatWindow'] = '<li class="jsxc_windowItem">\n' +
' </div>\n' +
' </div>\n' +
' <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n' +
-' <input type="text" class="jsxc_textinput" data-i18n="[placeholder]Message" />\n' +
+' <textarea class="jsxc_textinput" data-i18n="[placeholder]Message"></textarea>\n' +
' </div>\n' +
' </div>\n' +
'</li>\n' +
@@ -10724,8 +12197,8 @@ jsxc.gui.template['chatWindow'] = '<li class="jsxc_windowItem">\n' +
jsxc.gui.template['confirmDialog'] = '<p data-var="msg"></p>\n' +
'\n' +
-'<button class="btn btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n' +
-'<button class="btn btn-default jsxc_dismiss jsxc_close pull-right" data-i18n="Dismiss"></button>\n' +
+'<button class="jsxc_btn jsxc_btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n' +
+'<button class="jsxc_btn jsxc_btn-default jsxc_dismiss jsxc_close pull-right" data-i18n="Dismiss"></button>\n' +
'';
jsxc.gui.template['contactDialog'] = '<h3 data-i18n="Add_buddy"></h3>\n' +
@@ -10771,8 +12244,8 @@ jsxc.gui.template['incomingCall'] = '<h3 data-i18n="Incoming_call"></h3>\n' +
' <span data-i18n="Do_you_want_to_accept_the_call_from"></span> <span data-var="bid_name" />?\n' +
'</p>\n' +
'\n' +
-'<button class="btn btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n' +
-'<button class="btn btn-default jsxc_reject pull-right" data-i18n="Reject"></button>\n' +
+'<button class="jsxc_btn jsxc_btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n' +
+'<button class="jsxc_btn jsxc_btn-default jsxc_reject pull-right" data-i18n="Reject"></button>\n' +
'';
jsxc.gui.template['joinChat'] = '<h3 data-i18n="Join_chat"></h3>\n' +
@@ -10781,16 +12254,17 @@ jsxc.gui.template['joinChat'] = '<h3 data-i18n="Join_chat"></h3>\n' +
' <div class="form-group">\n' +
' <label class="col-sm-4 control-label" for="jsxc_server" data-i18n="Server"></label>\n' +
' <div class="col-sm-8">\n' +
-' <input type="text" name="server" id="jsxc_server" class="form-control" required="required" readonly="readonly" />\n' +
+' <input type="text" name="server" id="jsxc_server" class="form-control" required="required" pattern="^[.-0-9a-zA-Z]+" />\n' +
+' <p class="jsxc_inputinfo jsxc_server jsxc_hidden"></p>\n' +
' </div>\n' +
' </div>\n' +
' <div class="form-group">\n' +
' <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n' +
' <div class="col-sm-8">\n' +
' <input type="text" name="room" id="jsxc_room" class="form-control" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" />\n' +
+' <p class="jsxc_inputinfo jsxc_room" data-i18n="Rooms_are_loaded"></p>\n' +
' </div>\n' +
' </div>\n' +
-' <p class="jsxc_inputinfo jsxc_waiting jsxc_room" data-i18n="Rooms_are_loaded"></p>\n' +
' <datalist id="jsxc_roomlist">\n' +
' <p>\n' +
' <label for="jsxc_roomlist_select"></label>\n' +
@@ -10806,7 +12280,7 @@ jsxc.gui.template['joinChat'] = '<h3 data-i18n="Join_chat"></h3>\n' +
' <input type="text" name="nickname" id="jsxc_nickname" class="form-control" />\n' +
' </div>\n' +
' </div>\n' +
-' <div class="form-group">\n' +
+' <div class="form-group jsxc_hidden">\n' +
' <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n' +
' <div class="col-sm-8">\n' +
' <input type="text" name="password" id="jsxc_password" class="form-control" />\n' +
@@ -10833,7 +12307,6 @@ jsxc.gui.template['joinChat'] = '<h3 data-i18n="Join_chat"></h3>\n' +
' <div class="jsxc_msg"></div>\n' +
' <div class="form-group">\n' +
' <div class="col-sm-offset-4 col-sm-8">\n' +
-' <span class="jsxc_warning"></span>\n' +
' <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n' +
' <button class="btn btn-primary jsxc_continue" data-i18n="Continue"></button>\n' +
' <button class="btn btn-success jsxc_join" data-i18n="Join"></button>\n' +
@@ -10866,6 +12339,13 @@ jsxc.gui.template['loginBox'] = '<h3 data-i18n="Login"></h3>\n' +
'</form>\n' +
'';
+jsxc.gui.template['notification'] = '<h3></h3>\n' +
+'\n' +
+'<p class="jsxc_msg"></p>\n' +
+'\n' +
+'<p class="jsxc_meta"></p>\n' +
+'';
+
jsxc.gui.template['pleaseAccept'] = '<p data-i18n="Please_accept_"></p>\n' +
'';
@@ -11063,6 +12543,27 @@ jsxc.gui.template['settings'] = '<form class="form-horizontal col-sm-6">\n' +
' </div>\n' +
' </fieldset>\n' +
'</form>\n' +
+'\n' +
+'<form class="form-horizontal col-sm-6" data-onsubmit="xmpp.chatState.init">\n' +
+' <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n' +
+' <h3 data-i18n="Chat_state_notifications"></h3>\n' +
+' <p data-i18n="setting-explanation-chat-state"></p>\n' +
+' <div class="form-group">\n' +
+' <div class="col-sm-12">\n' +
+' <div class="checkbox">\n' +
+' <label>\n' +
+' <input type="checkbox" id="chatState-enable"><span data-i18n="Enable"></span>\n' +
+' </label>\n' +
+' </div>\n' +
+' </div>\n' +
+' </div>\n' +
+' <div class="form-group">\n' +
+' <div class="col-sm-12">\n' +
+' <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n' +
+' </div>\n' +
+' </div>\n' +
+' </fieldset>\n' +
+'</form>\n' +
'';
jsxc.gui.template['vCard'] = '<h3>\n' +
@@ -11082,9 +12583,6 @@ jsxc.gui.template['videoWindow'] = '<div id="jsxc_webrtc">\n' +
' <video class="jsxc_localvideo" autoplay></video>\n' +
' <video class="jsxc_remotevideo" autoplay></video>\n' +
' <div class="jsxc_status"></div>\n' +
-' <div class="bubblingG">\n' +
-' <span id="bubblingG_1"> </span> <span id="bubblingG_2"> </span> <span id="bubblingG_3"> </span>\n' +
-' </div>\n' +
' <div class="jsxc_noRemoteVideo">\n' +
' <div>\n' +
' <div></div>\n' +
diff --git a/build/js/jsxc/jsxc.min.js b/build/js/jsxc/jsxc.min.js
index aa136b8..2624413 100644
--- a/build/js/jsxc/jsxc.min.js
+++ b/build/js/jsxc/jsxc.min.js
@@ -1,20 +1,20 @@
/*!
- * jsxc v3.0.1 - 2016-10-28
+ * jsxc v3.1.0-beta - 2017-01-23
*
- * Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.0.1
+ * @version 3.1.0-beta
* @license MIT
*/
-/*! This file is concatenated for the browser. */
-var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"3.0.1",master:!1,role_allocation:!1,to:[],toBusy:null,toNotification:null,toNotificationDelay:500,keepaliveInterval:null,reconnect:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,CONST:{NOTIFICATION_DEFAULT:"default",NOTIFICATION_GRANTED:"granted",NOTIFICATION_DENIED:"denied",STATUS:["offline","dnd","xa","away","chat","online"],SOUNDS:{MSG:"incomingMessage.wav",CALL:"Rotary-Phone6.mp3",NOTICE:"Ping1.mp3"},REGEX:{JID:new RegExp("\\b[^\"&'\\/:<>@\\s]+@[\\w-_.]+\\b","ig"),URL:new RegExp(/(https?:\/\/|www\.)[^\s<>'"]+/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"},HIDDEN:"hidden",SHOWN:"shown"},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),day=("0"+msgDate.getDate()).slice(-2),month=("0"+(msgDate.getMonth()+1)).slice(-2),year=msgDate.getFullYear(),hours=("0"+msgDate.getHours()).slice(-2),minutes=("0"+msgDate.getMinutes()).slice(-2),dateNow=new Date,date="function"==typeof msgDate.toLocaleDateString?msgDate.toLocaleDateString():day+"."+month+"."+year,time="function"==typeof msgDate.toLocaleTimeString?msgDate.toLocaleTimeString():hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+" "+time:time},debug:function(msg,data,level){if(level&&(msg="["+level+"] "+msg),data){jsxc.storage.getItem("debug")===!0&&console.log(msg,data);var d;try{d=$("<span>").prepend($(data).clone()).html()}catch(err){try{d=JSON.stringify(data)}catch(err2){d="see js console"}}jsxc.log=jsxc.log+"$ "+msg+": "+d+"\n"}else console.log(msg),jsxc.log=jsxc.log+"$ "+msg+"\n"},warn:function(msg,data){jsxc.debug(msg,data,"WARN")},error:function(msg,data){jsxc.debug(msg,data,"ERROR")},log:"",init:function(options){if(options&&options.loginForm&&"boolean"==typeof options.loginForm.attachIfFound&&!options.loginForm.ifFound&&(options.loginForm.ifFound=options.loginForm.attachIfFound?"attach":"pause"),options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){if(jsxc.bid){var local=jsxc.storage.getUserItem("options")||{};return"undefined"!=typeof local[key]?local[key]:jsxc.options[key]}return jsxc.options[key]},jsxc.options.set=function(key,value){jsxc.storage.updateItem("options",key,value,!0)},jsxc.storageNotConform=jsxc.storage.getItem("storageNotConform"),null===jsxc.storageNotConform&&(jsxc.storageNotConform=2);var lang;lang=null!==jsxc.storage.getItem("lang")?jsxc.storage.getItem("lang"):jsxc.options.autoLang&&navigator.languages&&navigator.languages.length>0?navigator.languages[0].substr(0,2):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,$.i18n.init({lng:lang,fallbackLng:"en",resStore:I18next,useLocalStorage:!0,localStorageExpirationTime:864e5,debug:jsxc.storage.getItem("debug")===!0}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1),$(document).on("attached.jsxc",jsxc.registerLogout);var isStorageAttachParameters=jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.storage.getItem("jid"),isOptionsAttachParameters=jsxc.options.xmpp.rid&&jsxc.options.xmpp.sid&&jsxc.options.xmpp.jid,isForceLoginForm=jsxc.options.loginForm&&"force"===jsxc.options.loginForm.ifFound&&jsxc.isLoginForm();if(!isStorageAttachParameters&&!isOptionsAttachParameters||isForceLoginForm){if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.isLoginForm())return void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));"function"==typeof jsxc.options.formFound&&jsxc.options.formFound.call();var form=jsxc.options.loginForm.form=$(jsxc.options.loginForm.form),events=form.data("events")||{submit:[]},submits=[];$.each(events.submit,function(index,val){submits.push(val.handler)}),form.data("submits",submits),form.off("submit"),form.submit(function(){return jsxc.prepareLogin(function(settings){if(settings!==!1){var enabled=settings.loginForm&&settings.loginForm.enable||settings.xmpp&&settings.xmpp.onlogin;enabled="true"===enabled||enabled===!0,enabled&&(jsxc.options.loginForm.triggered=!0,jsxc.xmpp.login(jsxc.options.xmpp.jid,jsxc.options.xmpp.password))}else jsxc.submitLoginForm()}),!1})}else(!jsxc.isLoginForm()||jsxc.options.loginForm&&"attach"===jsxc.options.loginForm.ifFound)&&("undefined"==typeof jsxc.storage.getItem("alive")?jsxc.onMaster():jsxc.checkMaster())},start:function(){var args=arguments;return jsxc.role_allocation&&!jsxc.master?(jsxc.debug("There is an other master tab"),!1):jsxc.xmpp.conn&&jsxc.xmpp.connected?(jsxc.debug("We are already connected"),!1):(3===args.length&&$(document).one("attached.jsxc",function(){jsxc.xmpp.onRidChange(jsxc.xmpp.conn._proto.rid),jsxc.onMaster()}),void jsxc.checkMaster(function(){jsxc.xmpp.login.apply(this,args)}))},registerLogout:function(){if(null!==jsxc.options.logoutElement&&$(jsxc.options.logoutElement).length>0){var logout=function(ev){ev.stopPropagation(),ev.preventDefault(),jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement=$(jsxc.options.logoutElement),jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}},isLoginForm:function(){return jsxc.options.loginForm.form&&jsxc.el_exists(jsxc.options.loginForm.form)&&jsxc.el_exists(jsxc.options.loginForm.jid)&&jsxc.el_exists(jsxc.options.loginForm.pass)},prepareLogin:function(username,password,cb){"function"==typeof username&&(cb=username,username=null),username=username||$(jsxc.options.loginForm.jid).val(),password=password||$(jsxc.options.loginForm.pass).val(),jsxc.triggeredFromBox||"dialog"!==jsxc.options.loginForm.onConnecting&&"undefined"!=typeof jsxc.options.loginForm.onConnecting||jsxc.gui.showWaitAlert($.t("Logging_in"));var settings;"function"==typeof jsxc.options.loadSettings?(settings=jsxc.options.loadSettings.call(this,username,password,function(s){jsxc._prepareLogin(username,password,cb,s)}),"undefined"!=typeof settings&&jsxc._prepareLogin(username,password,cb,settings)):jsxc._prepareLogin(username,password,cb)},_prepareLogin:function(username,password,cb,loadedSettings){if(loadedSettings===!1)return jsxc.warn("No settings provided"),void cb(!1);var settings=$.extend(!0,{},jsxc.options);loadedSettings?settings=$.extend(!0,settings,loadedSettings):loadedSettings={},"string"==typeof settings.xmpp.username&&(username=settings.xmpp.username);var jid,resource=settings.xmpp.resource?"/"+settings.xmpp.resource:"",domain=settings.xmpp.domain;jid=username.match(/@(.*)$/)?username.match(/\/(.*)$/)?username:username+resource:username+"@"+domain+resource,"function"==typeof jsxc.options.loginForm.preJid&&(jid=jsxc.options.loginForm.preJid(jid)),jsxc.bid=jsxc.jidToBid(jid),settings.xmpp.username=jid.split("@")[0],settings.xmpp.domain=jid.split("@")[1].split("/")[0],settings.xmpp.resource=jid.split("@")[1].split("/")[1]||"",loadedSettings.xmpp||(loadedSettings.xmpp={}),$.each(loadedSettings,function(key){var old=jsxc.options.get(key),val=settings[key];val=$.extend(!0,old,val),jsxc.options.set(key,val)}),jsxc.options.xmpp.jid=jid,jsxc.options.xmpp.password=password,cb(settings)},onSlave:function(){jsxc.debug("I am the slave."),jsxc.role_allocation=!0,jsxc.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,jsxc.registerLogout(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own"),$(document).trigger("restoreCompleted.jsxc")},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.startKeepAlive(),jsxc.role_allocation=!0,jsxc.xmpp.login()},checkMaster:function(cb){jsxc.debug("check master"),cb=cb&&"function"==typeof cb?cb:jsxc.onMaster,"undefined"==typeof jsxc.storage.getItem("alive")?cb.call():(jsxc.to.push(window.setTimeout(cb,1e3)),jsxc.keepAlive("slave"))},masterActions:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated){var noti=jsxc.storage.getUserItem("notification");noti="number"==typeof noti?noti:2,jsxc.options.notification&&noti>0&&jsxc.notification.hasSupport()?jsxc.notification.hasPermission()?jsxc.notification.init():jsxc.notification.prepareRequest():jsxc.options.notification=!1,jsxc.options.get("otr").enable&&jsxc.otr.createDSA(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}},startKeepAlive:function(){jsxc.keepaliveInterval=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(role){var next=parseInt(jsxc.storage.getItem("alive"))+1;role=role||"master",jsxc.storage.setItem("alive",next+":"+role)},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepaliveInterval&&window.clearInterval(jsxc.keepaliveInterval),jsxc.storage.ink("alive_busy"),jsxc.toBusy=window.setTimeout(jsxc.startKeepAlive,jsxc.options.busyTimeout-1e3)},random:function(max){return Math.floor(Math.random()*max)},el_exists:function(selector){return $(selector).length>0},jidToCid:function(jid){jsxc.warn("jsxc.jidToCid is deprecated!");var cid=Strophe.getBareJidFromJid(jid).replace("@","-").replace(/\./g,"-").toLowerCase();return cid},jidToBid:function(jid){return Strophe.unescapeNode(Strophe.getBareJidFromJid(jid).toLowerCase())},restoreRoster:function(){var buddies=jsxc.storage.getUserItem("buddylist");return buddies&&0!==buddies.length?($.each(buddies,function(index,value){jsxc.gui.roster.add(value)}),jsxc.gui.roster.loaded=!0,void $(document).trigger("cloaded.roster.jsxc")):(jsxc.debug("No saved buddylist."),void jsxc.gui.roster.empty())},restoreWindows:function(){var windows=jsxc.storage.getUserItem("windowlist");null!==windows&&$.each(windows,function(index,bid){var win=jsxc.storage.getUserItem("window",bid);return win?(jsxc.gui.window.init(bid),win.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,win.text)):(jsxc.debug("Associated window-element is missing: "+bid),!0)})},submitLoginForm:function(){var form=$(jsxc.options.loginForm.form).off("submit"),submits=form.data("submits")||[];$.each(submits,function(index,val){form.submit(val)}),form.find("#submit").length>0?form.find("#submit").click():form.submit()},escapeHTML:function(text){return text=text.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">"),text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},removeHTML:function(text){return $("<span>").html(text).text()},switchEvents:function(obj){var ns=Math.random().toString(36).substr(2,12),self=this;return $.each(obj,function(key,val){$(document).one(key+"."+ns,function(){$(document).off("."+ns),val.apply(self,arguments)})}),ns},isHidden:function(){var hidden=!1;return"undefined"!=typeof document.hidden?hidden=document.hidden:"undefined"!=typeof document.webkitHidden?hidden=document.webkitHidden:"undefined"!=typeof document.mozHidden?hidden=document.mozHidden:"undefined"!=typeof document.msHidden&&(hidden=document.msHidden),hidden&&jsxc.master?jsxc.storage.ink("hidden",0):hidden||jsxc.master||jsxc.storage.ink("hidden"),hidden},hasFocus:function(){var focus=!0;return"function"==typeof document.hasFocus&&(focus=document.hasFocus()),!focus&&jsxc.master?jsxc.storage.ink("focus",0):focus&&!jsxc.master&&jsxc.storage.ink("focus"),focus},exec:function(fnName,fnParams){var i,fnList=fnName.split("."),fn=jsxc[fnList[0]];for(i=1;i<fnList.length;i++)fn=fn[fnList[i]];if("function"==typeof fn)return fn.apply(null,fnParams)},hashStr:function(str){var i,hash=0;if(0===str.length)return hash;for(i=0;i<str.length;i++)hash=(hash<<5)-hash+str.charCodeAt(i),hash|=0;return hash},isExtraSmallDevice:function(){return $(window).width()<500}},jsxc.xmpp={conn:null,login:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated)return void jsxc.debug("Connection already authenticated.");var jid=null,password=null,sid=null,rid=null;switch(arguments.length){case 2:jid=arguments[0],password=arguments[1];break;case 3:jid=arguments[0],sid=arguments[1],rid=arguments[2];break;default:sid=jsxc.storage.getItem("sid"),rid=jsxc.storage.getItem("rid"),null!==sid&&null!==rid?jid=jsxc.storage.getItem("jid"):(sid=jsxc.options.xmpp.sid||null,rid=jsxc.options.xmpp.rid||null,jid=jsxc.options.xmpp.jid)}if(!jid)return void jsxc.warn("Jid required for login");jsxc.bid||(jsxc.bid=jsxc.jidToBid(jid));var url=jsxc.options.get("xmpp").url;if(!url)return void jsxc.warn("xmpp.url required for login");jsxc.xmpp.conn&&jsxc.xmpp.conn.connected||($(document).on("connected.jsxc",jsxc.xmpp.connected),$(document).on("attached.jsxc",jsxc.xmpp.attached),$(document).on("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).on("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).on("authfail.jsxc",jsxc.xmpp.onAuthFail),Strophe.addNamespace("RECEIPTS","urn:xmpp:receipts")),jsxc.xmpp.conn=new Strophe.Connection(url),jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)}),jsxc.xmpp.conn.nextValidRid=jsxc.xmpp.onRidChange;var callback=function(status,condition){switch(jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status]+": "+condition),status){case Strophe.Status.CONNECTING:$(document).trigger("connecting.jsxc");break;case Strophe.Status.CONNECTED:jsxc.bid=jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase()),$(document).trigger("connected.jsxc");break;case Strophe.Status.ATTACHED:$(document).trigger("attached.jsxc");break;case Strophe.Status.DISCONNECTED:$(document).trigger("disconnected.jsxc");break;case Strophe.Status.CONNFAIL:$(document).trigger("connfail.jsxc");break;case Strophe.Status.AUTHFAIL:$(document).trigger("authfail.jsxc")}};jsxc.xmpp.conn.caps&&(jsxc.xmpp.conn.caps.node="http://jsxc.org/"),sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.reconnect=!0,jsxc.xmpp.conn.attach(jid,sid,rid,callback)):(jsxc.debug("New connection"),jsxc.xmpp.conn.caps&&jsxc.xmpp.conn._addSysHandler(function(stanza){var from=jsxc.xmpp.conn.domain,c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node"),_jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.xmpp.conn.caps._jidVerIndex[from]=ver,_jidNodeIndex[from]=node,localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(jsxc.xmpp.conn.caps._jidVerIndex)),localStorage.setItem("strophe.caps._jidNodeIndex",JSON.stringify(_jidNodeIndex))},Strophe.NS.CAPS),jsxc.xmpp.conn.connect(jid,password||jsxc.options.xmpp.password,callback))},logout:function(complete){if(jsxc.triggeredFromElement="boolean"!=typeof complete||complete,!jsxc.master)return jsxc.storage.removeItem("sid"),!0;if(jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("unreadMsg"),$("body").click(),!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated)return!0;$.each(jsxc.storage.getUserItem("otrlist")||{},function(i,val){jsxc.otr.create(val)});var numOtr=Object.keys(jsxc.otr.objects||{}).length+1,disReady=function(){--numOtr<=0&&(jsxc.xmpp.conn.flush(),setTimeout(function(){jsxc.xmpp.conn.disconnect()},600))};return $.each(jsxc.otr.objects||{},function(key,obj){obj.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED?obj.endOtr.call(obj,function(){obj.init.call(obj),jsxc.otr.backup(key),disReady()}):disReady()}),disReady(),!1},connected:function(){if(jsxc.xmpp.conn.pause(),jsxc.xmpp.initNewConnection(),jsxc.xmpp.saveSessionParameter(),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":return void jsxc.submitLoginForm();case!1:return}jsxc.gui.dialog.close(),jsxc.xmpp.conn.resume(),jsxc.onMaster(),$(document).trigger("attached.jsxc")},attached:function(){$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence"),jsxc.gui.init();var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;if(caps){var conditionalEnable=function(){};if(jsxc.options.get("carbons").enable&&(conditionalEnable=function(){jsxc.xmpp.conn.caps.hasFeatureByJid(domain,jsxc.CONST.NS.CARBONS)&&jsxc.xmpp.carbons.enable()},$(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(conditionalEnable(),$(document).off("caps.strophe",onCaps))})),"undefined"==typeof caps._knownCapabilities[caps._jidVerIndex[domain]]){var _jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.debug("Request server capabilities"),caps._requestCapabilities(jsxc.xmpp.conn.domain,_jidNodeIndex[domain],caps._jidVerIndex[domain])}else conditionalEnable()}if(jsxc.reconnect&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres(),jsxc.restoreCompleted||(jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc"));else{$(document).one("cloaded.roster.jsxc",jsxc.xmpp.sendPres),$("#jsxc_roster > p:first").remove();var iq=$iq({type:"get"}).c("query",{xmlns:"jabber:iq:roster"});jsxc.xmpp.conn.sendIQ(iq,jsxc.xmpp.onRoster)}jsxc.xmpp.saveSessionParameter(),jsxc.masterActions()},saveSessionParameter:function(){var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid)},initNewConnection:function(){jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("own"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),jsxc.storage.removeUserItem("unreadMsg"),jsxc.storage.removeUserElement("options","RTCPeerConfig")},sendPres:function(){jsxc.xmpp.conn.disco&&(jsxc.xmpp.conn.disco.addIdentity("client","web","JSXC"),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS));var pres=$pres();jsxc.xmpp.conn.caps&&pres.c("c",jsxc.xmpp.conn.caps.generateCapsAttrs()).up();var presState=jsxc.storage.getUserItem("presence")||"online";"online"!==presState&&pres.c("show").t(presState).up();var priority=jsxc.options.get("priority");priority&&"undefined"!=typeof priority[presState]&&0!==parseInt(priority[presState])&&pres.c("priority").t(priority[presState]).up(),jsxc.debug("Send presence",pres.toString()),jsxc.xmpp.conn.send(pres)},disconnected:function(){jsxc.debug("disconnected"),jsxc.storage.removeItem("jid"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("hidden"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),$(document).off("connected.jsxc",jsxc.xmpp.connected),$(document).off("attached.jsxc",jsxc.xmpp.attached),$(document).off("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).off("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).off("authfail.jsxc",jsxc.xmpp.onAuthFail),jsxc.xmpp.conn=null,$("#jsxc_windowList").remove(),jsxc.triggeredFromElement?($(document).trigger("toggle.roster.jsxc",["hidden",0]),$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepaliveInterval),jsxc.role_allocation=!1,jsxc.master=!1,jsxc.storage.removeItem("alive")},onConnfail:function(ev,condition){jsxc.debug("XMPP connection failed: "+condition),jsxc.options.loginForm.triggered&&jsxc.submitLoginForm()},onAuthFail:function(){if(jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onAuthFail||"ask"){case"ask":jsxc.gui.showAuthFail();break;case"submit":jsxc.submitLoginForm();break;case"quiet":case!1:return}},onRoster:function(iq){jsxc.debug("Load roster",iq);var buddies=[];$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");buddies.push(bid),jsxc.storage.removeUserItem("res",bid),jsxc.storage.saveBuddy(bid,{jid:jid,name:name,status:0,sub:sub,res:[],rnd:Math.random()}),jsxc.gui.roster.add(bid)}),0===buddies.length&&jsxc.gui.roster.empty(),jsxc.storage.setUserItem("buddylist",buddies),jsxc.xmpp.bookmarks.load(),jsxc.gui.roster.loaded=!0,jsxc.debug("Roster loaded"),$(document).trigger("cloaded.roster.jsxc")},onRosterChanged:function(iq){return jsxc.debug("onRosterChanged",iq),$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");if("remove"===sub)jsxc.gui.roster.purge(bid);else{var bl=jsxc.storage.getUserItem("buddylist");bl.indexOf(bid)<0&&(bl.push(bid),jsxc.storage.setUserItem("buddylist",bl));var temp=jsxc.storage.saveBuddy(bid,{jid:jid,name:name,sub:sub});"updated"===temp?(jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid)):jsxc.gui.roster.add(bid)}if("from"===sub||"both"===sub){var notice,notices=jsxc.storage.getUserItem("notices"),noticeKey=null;for(noticeKey in notices)notice=notices[noticeKey],"gui.showApproveDialog"===notice.fnName&&notice.fnParams[0]===jid&&(jsxc.debug("Remove notice with key "+noticeKey),jsxc.notice.remove(noticeKey))}}),jsxc.storage.getUserItem("buddylist")&&0!==jsxc.storage.getUserItem("buddylist").length?$("#jsxc_roster > p:first").remove():jsxc.gui.roster.empty(),!0},onPresence:function(presence){jsxc.debug("onPresence",presence);var ptype=$(presence).attr("type"),from=$(presence).attr("from"),jid=Strophe.getBareJidFromJid(from).toLowerCase(),r=Strophe.getResourceFromJid(from),bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||{},res=jsxc.storage.getUserItem("res",bid)||{},status=null,xVCard=$(presence).find('x[xmlns="vcard-temp:x:update"]');if(jid===Strophe.getBareJidFromJid(jsxc.storage.getItem("jid")))return!0;if("error"===ptype){$(document).trigger("error.presence.jsxc",[from,presence]);var error=$(presence).find("error");return jsxc.error("[XMPP] "+error.attr("code")+" "+error.find(">:first-child").prop("tagName")),!0}if("subscribe"===ptype){var bl=jsxc.storage.getUserItem("buddylist");return bl.indexOf(bid)>-1?(jsxc.debug("Auto approve contact request, because he is already in our contact list."),jsxc.xmpp.resFriendReq(jid,!0),"to"!==data.sub&&jsxc.xmpp.addBuddy(jid,data.name),!0):(jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add($.t("Friendship_request"),$.t("from")+" "+jid,"gui.showApproveDialog",[jid]),!0)}if("unavailable"===ptype||"unsubscribed"===ptype)status=jsxc.CONST.STATUS.indexOf("offline");else{var show=$(presence).find("show").text();status=""===show?jsxc.CONST.STATUS.indexOf("online"):jsxc.CONST.STATUS.indexOf(show)}0===status?delete res[r]:res[r]=status;var maxVal=[],max=0,prop=null;for(prop in res)res.hasOwnProperty(prop)&&max<=res[prop]&&(max!==res[prop]&&(maxVal=[],max=res[prop]),maxVal.push(prop));if(0===data.status&&max>0&&jsxc.notification.notify({title:data.name,msg:$.t("has_come_online"),source:bid}),"groupchat"===data.type?data.status=status:data.status=max,data.res=maxVal,data.jid=jid,xVCard.length>0&&"groupchat"!==data.type){var photo=xVCard.find("photo");photo.length>0&&photo.text()!==data.avatar&&(jsxc.storage.removeUserItem("avatar",data.avatar),data.avatar=photo.text())}return jsxc.gui.window.get(bid).length>0&&jsxc.gui.window.get(bid).data("jid",jid),jsxc.storage.setUserItem("buddy",bid,data),jsxc.storage.setUserItem("res",bid,res),jsxc.debug("Presence ("+from+"): "+status),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]');forwarded.length>0?(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length&&(carbon=!1),jsxc.debug("Incoming forwarded message",message)):(message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message));var body=$(message).find("body:first").text();if(!body||body.match(/\?OTR/i)&&forwarded)return!0;var bid,type=$(message).attr("type"),from=$(message).attr("from"),mid=$(message).attr("id"),delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;if(stamp=stamp.getTime(),carbon){var direction="sent"===carbon.prop("tagName")?jsxc.Message.OUT:jsxc.Message.IN;return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage({bid:bid,direction:direction,msg:body,encrypted:!1,forwarded:forwarded,stamp:stamp}),!0}forwarded&&(body=from+" "+$.t("to")+" "+$(stanza).attr("to")+'"'+body+'"',from=$(stanza).attr("from"));var jid=Strophe.getBareJidFromJid(from);bid=jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",bid),request=$(message).find("request[xmlns='urn:xmpp:receipts']");if(null===data){var chat=jsxc.storage.getUserItem("chat",bid)||[];0===chat.length&&jsxc.notice.add($.t("Unknown_sender"),$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+").","gui.showUnknownSender",[bid]);var msg=jsxc.removeHTML(body);return msg=jsxc.escapeHTML(msg),jsxc.storage.saveMessage(bid,"in",msg,!1,forwarded,stamp),!0}var win=jsxc.gui.window.init(bid);return"chat"===type&&(win.data("jid",from),jsxc.storage.updateUserItem("buddy",bid,{jid:from})),$(document).trigger("message.jsxc",[from,body]),jsxc.master&&!jsxc.otr.objects[bid]&&jsxc.otr.create(bid),forwarded||null===mid||!request.length||null===data||"both"!==data.sub&&"from"!==data.sub||"chat"!==type||jsxc.xmpp.conn.send($msg({to:from}).c("received",{xmlns:"urn:xmpp:receipts",id:mid})),jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.IN,msg:body,encrypted:!1,forwarded:forwarded,stamp:stamp}),!0},onRidChange:function(rid){jsxc.storage.setItem("rid",rid)},resFriendReq:function(from,approve){jsxc.master?(jsxc.xmpp.conn.send($pres({to:from,type:approve?"subscribed":"unsubscribed"})),jsxc.storage.removeUserItem("friendReq"),jsxc.gui.dialog.close()):jsxc.storage.updateUserItem("friendReq","approve",approve)},addBuddy:function(username,alias){var bid=jsxc.jidToBid(username);if(jsxc.master){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:username,name:alias||""});jsxc.xmpp.conn.sendIQ(iq),jsxc.xmpp.conn.send($pres({to:username,type:"subscribe"})),jsxc.storage.removeUserItem("add_"+bid)}else jsxc.storage.setUserItem("add_"+bid,{username:username,alias:alias||null})},removeBuddy:function(jid){var bid=jsxc.jidToBid(jid),iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(jid),subscription:"remove"});jsxc.xmpp.conn.sendIQ(iq),jsxc.gui.roster.purge(bid)},onReceived:function(stanza){var received=$(stanza).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var receivedId=received.attr("id"),message=new jsxc.Message(receivedId);message.received()}return!0},sendMessage:function(bid,msg,uid){jsxc.otr.objects.hasOwnProperty(bid)?jsxc.otr.objects[bid].sendMsg(msg,uid):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,uid)},_sendMessage:function(jid,msg,uid){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat",xmlMsg=$msg({to:jid,type:type,id:uid}).c("body").t(msg);jsxc.xmpp.carbons.enabled&&msg.match(/^\?OTR/)&&xmlMsg.up().c("private",{xmlns:jsxc.CONST.NS.CARBONS}),"chat"===type&&(isBar||jsxc.xmpp.conn.caps.hasFeatureByJid(jid,Strophe.NS.RECEIPTS))&&xmlMsg.up().c("request",{xmlns:"urn:xmpp:receipts"}),jsxc.xmpp.conn.send(xmlMsg)},loadVcard:function(bid,cb,error_cb){jsxc.master?jsxc.xmpp.conn.vcard.get(cb,bid,error_cb):(jsxc.storage.setUserItem("vcard",bid,"request:"+(new Date).getTime()),$(document).one("loaded.vcard.jsxc",function(ev,result){result&&"success"===result.state?cb($(result.data).get(0)):error_cb()}))},getCapabilitiesByJid:function(jid){if(jsxc.xmpp.conn)return jsxc.xmpp.conn.caps.getCapabilitiesByJid(jid);var jidVerIndex=JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},knownCapabilities=JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{};return jidVerIndex[jid]?knownCapabilities[jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature,cb){var conn=jsxc.xmpp.conn;if(cb=cb||function(){},!feature)return!1;$.isArray(feature)||(feature=$.makeArray(feature));var check=function(knownCapabilities){if(!knownCapabilities)return null;var i;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0};if(conn.caps._jidVerIndex[jid]&&conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]){var hasFeature=check(conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]);return cb(hasFeature),hasFeature}return $(document).on("strophe.caps",function(ev,j,capabilities){j===jid&&(cb(check(capabilities)),$(document).off(ev))}),null}},jsxc.xmpp.carbons={enabled:!1,enable:function(cb){var iq=$iq({type:"set"}).c("enable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!0,jsxc.debug("Carbons enabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not enable carbons",stanza)})},disable:function(cb){var iq=$iq({type:"set"}).c("disable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!1,jsxc.debug("Carbons disabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not disable carbons",stanza)})},refresh:function(err){if(err!==!1)return jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable()}},jsxc.Message=function(){this._uid=null,this._received=!1,this.encrypted=!1,this.forwarded=!1,this.stamp=(new Date).getTime(),"string"==typeof arguments[0]&&arguments[0].length>0&&1===arguments.length?(this._uid=arguments[0],this.load(this._uid)):"object"==typeof arguments[0]&&null!==arguments[0]&&$.extend(this,arguments[0]),this._uid||(this._uid=(new Date).getTime()+":msg")},jsxc.Message.prototype.load=function(uid){var data=jsxc.storage.getUserItem("msg",uid);data||jsxc.debug("Could not load message with uid "+uid),$.extend(this,data)},jsxc.Message.prototype.save=function(){var history;if(this.bid&&(history=jsxc.storage.getUserItem("history",this.bid)||[],history.indexOf(this._uid)<0?history.length>jsxc.options.get("numberOfMsg")&&jsxc.Message.delete(history.pop()):history=null),Image&&this.attachment&&this.attachment.type.match(/^image\//i)&&this.attachment.data){var sHeight,sWidth,sx,sy,dHeight=100,dWidth=100,canvas=$("<canvas>").get(0);canvas.width=dWidth,canvas.height=dHeight;var ctx=canvas.getContext("2d"),img=new Image;img.src=this.attachment.data,img.height>img.width?(sHeight=img.width,sWidth=img.width,sx=0,sy=(img.height-img.width)/2):(sHeight=img.height,sWidth=img.height,sx=(img.width-img.height)/2,sy=0),ctx.drawImage(img,sx,sy,sWidth,sHeight,0,0,dWidth,dHeight),this.attachment.thumbnail=canvas.toDataURL(),"out"===this.direction&&(this.attachment.data=null)}var data;return this.attachment&&this.attachment.size>jsxc.options.maxStorableSize&&"in"===this.direction&&(jsxc.debug("Attachment to large to store"),data=this.attachment.data,this.attachment.data=null,this.attachment.persistent=!1),jsxc.storage.setUserItem("msg",this._uid,this),history&&(history.unshift(this._uid),jsxc.storage.setUserItem("history",this.bid,history)),data&&this.attachment&&(this.attachment.data=data),this},jsxc.Message.prototype.delete=function(){
-jsxc.Message.delete(this._uid)},jsxc.Message.prototype.getDOM=function(){return jsxc.Message.getDOM(this._uid)},jsxc.Message.prototype.received=function(){this._received=!0,this.save(),this.getDOM().addClass("jsxc_received")},jsxc.Message.prototype.isReceived=function(){return this._received},jsxc.Message.delete=function(uid){var data=jsxc.storage.getUserItem("msg",uid);if(data&&(jsxc.storage.removeUserItem("msg",uid),data.bid)){var history=jsxc.storage.getUserItem("history",data.bid)||[];history=$.grep(history,function(el){return el!==uid}),jsxc.storage.setUserItem("history",data.bid)}},jsxc.Message.getDOM=function(uid){return $("#"+uid.replace(/:/g,"-"))},jsxc.Message.IN="in",jsxc.Message.OUT="out",jsxc.Message.SYS="sys",jsxc.gui={emotions:[["O:-) O:)","innocent"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","slight_smile"],[":-D :D","grin"],[":-( :(","disappointed"],[";-) ;)","wink"],[":-P :P","stuck_out_tongue"],["=-O","astonished"],[":kiss: :-*","kissing_heart"],["8-) :cool:","sunglasses"],[":-X :X","zipper_mouth"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":coffee:","coffee"],[":devil:","smiling_imp"],[":kiss: :kissing:","kissing"],["@->-- @-&gt;--","rose"],[":music:","musical_note"],[":love:","heart_eyes"],[":heart:","heart"],[":brokenheart:","broken_heart"],[":zzz:","zzz"],[":wait:","hand_splayed"]],favicon:null,regShortNames:null,emoticonList:{core:{":klaus:":["klaus"],":jabber:":["jabber"],":xmpp:":["xmpp"],":jsxc:":["jsxc"],":owncloud:":["owncloud"]},emojione:emojione.emojioneList},queryActions:{message:function(jid,params){var win=jsxc.gui.window.open(jsxc.jidToBid(jid));params&&"string"==typeof params.body&&win.find(".jsxc_textinput").val(params.body)},remove:function(jid){jsxc.gui.showRemoveDialog(jsxc.jidToBid(jid))},subscribe:function(jid,params){jsxc.gui.showContactDialog(jid),params&&$("#jsxc_alias").val(params.name)},vcard:function(jid){jsxc.gui.showVcard(jid)},join:function(jid,params){var password=params&&params.password?params.password:null;jsxc.muc.showJoinChat(jid,password)}},init:function(){if(!($("#jsxc_windowList").length>0)){jsxc.gui.regShortNames=new RegExp(emojione.regShortNames.source+"|("+Object.keys(jsxc.gui.emoticonList.core).join("|")+")","gi"),$("body").append($(jsxc.gui.template.get("windowList"))),$(window).resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowList").resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowListSB .jsxc_scrollLeft").click(function(){jsxc.gui.scrollWindowListBy(-200)}),$("#jsxc_windowListSB .jsxc_scrollRight").click(function(){jsxc.gui.scrollWindowListBy(200)}),$("#jsxc_windowList").on("wheel",function(ev){$("#jsxc_windowList").data("isOver")&&jsxc.gui.scrollWindowListBy(ev.originalEvent.wheelDelta>0?200:-200)}),jsxc.gui.tooltip("#jsxc_windowList");var fo=jsxc.options.get("favicon");fo&&fo.enable&&(jsxc.gui.favicon=new Favico({animation:"pop",bgColor:fo.bgColor,textColor:fo.textColor}),jsxc.gui.favicon.badge(jsxc.storage.getUserItem("unreadMsg")||0)),jsxc.el_exists("#jsxc_roster")||jsxc.gui.roster.init(),$.each(jsxc.gui.emotions,function(i,val){var reg=val[0].replace(/(\/|\||\*|\.|\+|\?|\^|\$|\(|\)|\[|\]|\{|\})/g,"\\$1");reg="("+reg.split(" ").join("|")+")",jsxc.gui.emotions[i][2]=new RegExp(reg,"g")}),jsxc.gui.windowTemplate=$(jsxc.gui.template.get("chatWindow")),jsxc.gui.buddyTemplate=$(jsxc.gui.template.get("rosterBuddy"))}},tooltip:function(selector){$(selector).tooltip({show:{delay:600},content:function(){return $(this).attr("title").replace(/\n/g,"<br />")}})},update:function(bid){var data=jsxc.storage.getUserItem("buddy",bid);if(!data)return void jsxc.debug("No data for "+bid);var ri=jsxc.gui.roster.getItem(bid),we=jsxc.gui.window.get(bid),ue=ri.add(we),spot=$('.jsxc_spot[data-bid="'+bid+'"]');switch(ri.data(data),jsxc.gui.updatePresence(bid,jsxc.CONST.STATUS[data.status]),ue.find(".jsxc_name:first").add(spot).text(data.name).attr("title",$.t("is_",{status:$.t(jsxc.CONST.STATUS[data.status])})),data.msgstate){case 0:we.find(".jsxc_transfer").removeClass("jsxc_enc jsxc_fin").attr("title",$.t("your_connection_is_unencrypted")),we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("start_private"));break;case 1:we.find(".jsxc_transfer").addClass("jsxc_enc").attr("title",$.t("your_connection_is_encrypted")),we.find(".jsxc_settings .jsxc_verification").removeClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"));break;case 2:we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_transfer").removeClass("jsxc_enc").addClass("jsxc_fin").attr("title",$.t("your_buddy_closed_the_private_connection")),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"))}data.trust?we.find(".jsxc_transfer").addClass("jsxc_trust").attr("title",$.t("your_buddy_is_verificated")):we.find(".jsxc_transfer").removeClass("jsxc_trust"),data.sub&&"both"!==data.sub?ue.addClass("jsxc_oneway"):ue.removeClass("jsxc_oneway");var info=Strophe.getBareJidFromJid(data.jid)+"\n";info+=$.t("Subscription")+": "+$.t(data.sub)+"\n",info+=$.t("Status")+": "+$.t(jsxc.CONST.STATUS[data.status]),ri.find(".jsxc_name").attr("title",info),jsxc.gui.updateAvatar(ri.add(we.find(".jsxc_bar")),data.jid,data.avatar)},updateAvatar:function(el,jid,aid){var setAvatar=function(src){return 0===src||"0"===src?"function"==typeof jsxc.options.defaultAvatar?void jsxc.options.defaultAvatar.call(el,jid):void jsxc.gui.avatarPlaceholder(el.find(".jsxc_avatar"),jid):(el.find(".jsxc_avatar").removeAttr("style"),void el.find(".jsxc_avatar").css({"background-image":"url("+src+")","text-indent":"999px"}))};if("undefined"==typeof aid)return void setAvatar(0);var avatarSrc=jsxc.storage.getUserItem("avatar",aid);if(jsxc.master||avatarSrc||(avatarSrc=0),null!==avatarSrc)setAvatar(avatarSrc);else{var handler_cb=function(stanza){jsxc.debug("vCard",stanza);var src,vCard=$(stanza).find("vCard > PHOTO");if(0===vCard.length)jsxc.debug("No photo provided"),src="0";else if(vCard.find("EXTVAL").length>0)src=vCard.find("EXTVAL").text();else{var img=vCard.find("BINVAL").text(),type=vCard.find("TYPE").text();src="data:"+type+";base64,"+img}src=src.replace(/[\t\r\n\f]/gi,""),jsxc.storage.setUserItem("avatar",aid,src),setAvatar(src)},error_cb=function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)};Strophe.getBareJidFromJid(jid)===Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)?jsxc.xmpp.conn.vcard.get(handler_cb,error_cb):jsxc.xmpp.conn.vcard.get(handler_cb,Strophe.getBareJidFromJid(jid),error_cb)}},updateWindowListSB:function(){$("#jsxc_windowList>ul").width()>$("#jsxc_windowList").width()?$("#jsxc_windowListSB > div").removeClass("jsxc_disabled"):($("#jsxc_windowListSB > div").addClass("jsxc_disabled"),$("#jsxc_windowList>ul").css("right","0px"))},scrollWindowListBy:function(offset){var scrollWidth=$("#jsxc_windowList>ul").width(),width=$("#jsxc_windowList").width(),el=$("#jsxc_windowList>ul"),right=parseInt(el.css("right"))-offset,padding=$("#jsxc_windowListSB").width();scrollWidth<width||(right>0&&(right=0),right<width-scrollWidth-padding&&(right=width-scrollWidth-padding),el.css("right",right+"px"))},getWindow:function(bid){return jsxc.warn("jsxc.gui.getWindow is deprecated!"),jsxc.gui.window.get(bid)},toggleList:function(el){var self=el||$(this);self.disableSelection(),self.addClass("jsxc_list");var ul=self.find("ul"),slideUp=null;slideUp=function(){self.removeClass("jsxc_opened"),$("body").off("click",null,slideUp)},$(this).click(function(){return self.hasClass("jsxc_opened")?$("body").off("click",null,slideUp):($("body").click(),$("body").one("click",slideUp)),window.clearTimeout(ul.data("timer")),self.toggleClass("jsxc_opened"),!1}).mouseleave(function(){ul.data("timer",window.setTimeout(slideUp,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))})},showLoginBox:function(){function onAuthFail(){alert.show(),jsxc.gui.dialog.resize(),$("#jsxc_dialog").find("button").trigger("btnfinished.jsxc"),$("#jsxc_dialog").find("input").one("keypress",function(){alert.hide(),jsxc.gui.dialog.resize()})}$(document).on("complete.dialog.jsxc",function(){$("#jsxc_password").focus()}),jsxc.gui.dialog.open(jsxc.gui.template.get("loginBox"));var alert=$("#jsxc_dialog").find(".jsxc_alert");alert.hide(),$("#jsxc_dialog").find("form").submit(function(ev){ev.preventDefault(),$(this).find("button[data-jsxc-loading-text]").trigger("btnloading.jsxc"),jsxc.options.loginForm.form=$(this),jsxc.options.loginForm.jid=$(this).find("#jsxc_username"),jsxc.options.loginForm.pass=$(this).find("#jsxc_password"),jsxc.triggeredFromBox=!0,jsxc.options.loginForm.triggered=!1,jsxc.prepareLogin(function(settings){settings===!1?onAuthFail():($(document).on("authfail.jsxc",onAuthFail),jsxc.xmpp.login())})})},showFingerprints:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("fingerprintsDialog",bid))},showVerification:function(bid){return $("#jsxc_dialog").length>0?void setTimeout(function(){jsxc.gui.showVerification(bid)},3e3):jsxc.storage.getUserItem("buddy",bid).msgstate!==OTR.CONST.MSGSTATE_ENCRYPTED?void jsxc.warn("Connection not encrypted"):(jsxc.gui.dialog.open(jsxc.gui.template.get("authenticationDialog",bid),{name:"smp"}),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq(0) button").click(function(){$(this).siblings().removeClass("active"),$(this).addClass("active"),$(this).get(0).blur(),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq("+($(this).index()+1)+")").show().find("input:first").focus()}),$("#jsxc_dialog > div:eq(1) .jsxc_submit").click(function(){jsxc.master&&(jsxc.otr.objects[bid].trust=!0),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.dialog.close("smp"),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("conversation_is_now_verified")}),jsxc.gui.update(bid)}),$("#jsxc_dialog > div:eq(2) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(2)"),sec=div.find("#jsxc_secret2").val(),quest=div.find("#jsxc_quest").val();return""===sec||""===quest?void div.find('input[value=""]').addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec,quest):jsxc.storage.setUserItem("smp",bid,{sec:sec,quest:quest}),jsxc.gui.dialog.close("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("authentication_query_sent")}))}),void $("#jsxc_dialog > div:eq(3) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(3)"),sec=div.find("#jsxc_secret").val();return""===sec?void div.find("#jsxc_secret").addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec):jsxc.storage.setUserItem("smp",bid,{sec:sec,quest:null}),jsxc.gui.dialog.close("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:"sys",msg:$.t("authentication_query_sent")}))}))},showApproveDialog:function(from){jsxc.gui.dialog.open(jsxc.gui.template.get("approveDialog"),{noClose:!0}),$("#jsxc_dialog .jsxc_their_jid").text(Strophe.getBareJidFromJid(from)),$("#jsxc_dialog .jsxc_deny").click(function(ev){ev.stopPropagation(),jsxc.xmpp.resFriendReq(from,!1),jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_approve").click(function(ev){ev.stopPropagation();var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from));jsxc.xmpp.resFriendReq(from,!0),data&&"from"!==data.sub||jsxc.gui.showContactDialog(from)})},showContactDialog:function(username){jsxc.gui.dialog.open(jsxc.gui.template.get("contactDialog")),username&&$("#jsxc_username").val(username),$("#jsxc_username").keyup(function(){if("function"==typeof jsxc.options.getUsers){var val=$(this).val();$("#jsxc_userlist").empty(),""!==val&&jsxc.options.getUsers.call(this,val,function(list){$.each(list||{},function(uid,displayname){var option=$("<option>");option.attr("data-username",uid),option.attr("data-alias",displayname),option.attr("value",uid).appendTo("#jsxc_userlist"),uid!==displayname&&option.clone().attr("value",displayname).appendTo("#jsxc_userlist")})})}}),$("#jsxc_username").on("input",function(){var val=$(this).val(),option=$("#jsxc_userlist").find('option[data-username="'+val+'"], option[data-alias="'+val+'"]');option.length>0&&($("#jsxc_username").val(option.attr("data-username")),$("#jsxc_alias").val(option.attr("data-alias")))}),$("#jsxc_dialog form").submit(function(ev){ev.preventDefault();var username=$("#jsxc_username").val(),alias=$("#jsxc_alias").val();return username.match(/@(.*)$/)||(username+="@"+Strophe.getDomainFromJid(jsxc.storage.getItem("jid"))),username&&username.match(jsxc.CONST.REGEX.JID)?(jsxc.xmpp.addBuddy(username,alias),jsxc.gui.dialog.close(),!1):($("#jsxc_username").addClass("jsxc_invalid").keyup(function(){$(this).val().match(jsxc.CONST.REGEX.JID)&&$(this).removeClass("jsxc_invalid")}),!1)})},showRemoveDialog:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("removeDialog",bid));var data=jsxc.storage.getUserItem("buddy",bid);$("#jsxc_dialog .jsxc_remove").click(function(ev){ev.stopPropagation(),jsxc.master?jsxc.xmpp.removeBuddy(data.jid):jsxc.storage.setUserItem("deletebuddy",bid,{jid:data.jid}),jsxc.gui.dialog.close()})},showWaitAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0})},showAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("alert",null,msg))},showAuthFail:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("authFailDialog")),jsxc.options.loginForm.triggered!==!1&&$("#jsxc_dialog .jsxc_cancel").hide(),$("#jsxc_dialog .jsxc_retry").click(function(){jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_cancel").click(function(){jsxc.submitLoginForm()})},showConfirmDialog:function(msg,confirm,dismiss){jsxc.gui.dialog.open(jsxc.gui.template.get("confirmDialog",null,msg),{noClose:!0}),confirm&&$("#jsxc_dialog .jsxc_confirm").click(confirm),dismiss&&$("#jsxc_dialog .jsxc_dismiss").click(dismiss)},showAboutDialog:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("aboutDialog")),$("#jsxc_dialog .jsxc_debuglog").click(function(){jsxc.gui.showDebugLog()})},showDebugLog:function(){var userInfo="<h3>User information</h3>";if(navigator){var key;for(key in navigator)"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}$.fn&&$.fn.jquery&&(userInfo+="<b>jQuery:</b> "+$.fn.jquery+"<br />"),window.screen&&(userInfo+="<b>Height:</b> "+window.screen.height+"<br />",userInfo+="<b>Width:</b> "+window.screen.width+"<br />"),userInfo+="<b>jsxc version:</b> "+jsxc.version+"<br />",jsxc.gui.dialog.open('<div class="jsxc_log">'+userInfo+"<h3>Log</h3><pre>"+jsxc.escapeHTML(jsxc.log)+"</pre></div>")},showVcard:function(jid){var bid=jsxc.jidToBid(jid);jsxc.gui.dialog.open(jsxc.gui.template.get("vCard",bid));var data=jsxc.storage.getUserItem("buddy",bid);if(data){var i,j,res,identities,cap,client,identity=null;for(i=0;i<data.res.length;i++){for(res=data.res[i],identities=[],cap=jsxc.xmpp.getCapabilitiesByJid(bid+"/"+res),null!==cap&&null!==cap.identities&&(identities=cap.identities),client="",j=0;j<identities.length;j++)identity=identities[j],"client"===identity.category&&(""!==client&&(client+=",\n"),client+=identity.name+" ("+identity.type+")");var status=jsxc.storage.getUserItem("res",bid)[res];$("#jsxc_dialog ul.jsxc_vCard").append('<li class="jsxc_sep"><strong>'+$.t("Resource")+":</strong> "+res+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Client")+":</strong> "+client+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Status")+":</strong> "+$.t(jsxc.CONST.STATUS[status])+"</li>")}}var printProp=function(el,depth){var content="";if(el.each(function(){var item=$(this),children=$(this).children();content+="<li>";var prop=$.t(item[0].tagName);" "!==prop&&(content+="<strong>"+prop+":</strong> "),"PHOTO"===item[0].tagName||(children.length>0?(content+="<ul>",content+=printProp(children,depth+1),content+="</ul>"):""!==item.text()&&(content+=jsxc.escapeHTML(item.text()))),content+="</li>",0===depth&&$("#jsxc_dialog ul.jsxc_vCard").length>0&&($("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").length>0?$("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").before(content):$("#jsxc_dialog ul.jsxc_vCard").append(content),content="")}),depth>0)return content},failedToLoad=function(){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var content="<p>";content+=$.t("Sorry_your_buddy_doesnt_provide_any_information"),content+="</p>",$("#jsxc_dialog").append(content)}};jsxc.xmpp.loadVcard(bid,function(stanza){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var photo=$(stanza).find("vCard > PHOTO");if(photo.length>0){var img=photo.find("BINVAL").text(),type=photo.find("TYPE").text(),src="data:"+type+";base64,"+img;photo.find("EXTVAL").length>0&&(src=photo.find("EXTVAL").text()),src=src.replace(/[\t\r\n\f]/gi,"");var img_el=$('<img class="jsxc_vCard" alt="avatar" />');img_el.attr("src",src),$("#jsxc_dialog h3").before(img_el)}return 0===$(stanza).find("vCard").length||1===$(stanza).find("vcard > *").length&&1===photo.length?void failedToLoad():void printProp($(stanza).find("vcard > *"),0)}},failedToLoad)},showSettings:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("settings")),"false"!==jsxc.options.get("xmpp").overwrite&&jsxc.options.get("xmpp").overwrite!==!1||$(".jsxc_fieldsetXmpp").parent().hide(),$("#jsxc_dialog form").each(function(){var self=$(this);self.find('input[type!="submit"]').each(function(){var id=this.id.split("-"),prop=id[0],key=id[1],type=this.type,data=jsxc.options.get(prop);data&&"undefined"!=typeof data[key]&&("checkbox"===type?"false"!==data[key]&&data[key]!==!1&&(this.checked="checked"):$(this).val(data[key]))})}),$("#jsxc_dialog form").submit(function(){var self=$(this),data={};self.find('input[type!="submit"]').each(function(){var val,id=this.id.split("-"),prop=id[0],key=id[1],type=this.type;val="checkbox"===type?this.checked:$(this).val(),data[prop]||(data[prop]={}),data[prop][key]=val}),$.each(data,function(key,val){jsxc.options.set(key,val)});var cb=function(success){"string"==typeof self.attr("data-onsubmit")&&jsxc.exec(self.attr("data-onsubmit"),[success]),setTimeout(function(){success?self.find('button[type="submit"]').switchClass("btn-primary","btn-success"):self.find('button[type="submit"]').switchClass("btn-primary","btn-danger"),setTimeout(function(){self.find('button[type="submit"]').switchClass("btn-danger btn-success","btn-primary")},2e3)},200)};return jsxc.options.saveSettinsPermanent.call(this,data,cb),!1})},showRequestNotification:function(){jsxc.switchEvents({"notificationready.jsxc":function(){jsxc.gui.dialog.close(),jsxc.notification.init(),jsxc.storage.setUserItem("notification",1)},"notificationfailure.jsxc":function(){jsxc.gui.dialog.close(),jsxc.options.notification=!1,jsxc.storage.setUserItem("notification",0)}}),jsxc.gui.showConfirmDialog($.t("Should_we_notify_you_"),function(){jsxc.gui.dialog.open(jsxc.gui.template.get("pleaseAccept"),{noClose:!0}),jsxc.notification.requestPermission()},function(){$(document).trigger("notificationfailure.jsxc")})},showUnknownSender:function(bid){var confirmationText=$.t("You_received_a_message_from_an_unknown_sender_",{sender:bid});jsxc.gui.showConfirmDialog(confirmationText,function(){jsxc.gui.dialog.close(),jsxc.storage.saveBuddy(bid,{jid:bid,name:bid,status:0,sub:"none",res:[]}),jsxc.gui.window.open(bid)},function(){jsxc.storage.removeUserItem("chat",bid)})},showSelectionDialog:function(header,msg,primary,option,primaryLabel,optionLabel){var opt;opt=1===arguments.length&&"object"==typeof header&&null!==header?header:{header:header,msg:msg,primary:{label:primaryLabel,cb:primary},option:{label:optionLabel,cb:option}};var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("selectionDialog"),{noClose:!0});opt.header?dialog.find("h3").text(opt.header):dialog.find("h3").hide(),opt.msg?dialog.find("p").text(opt.msg):dialog.find("p").hide(),opt.primary&&opt.primary.label&&dialog.find(".btn-primary").text(opt.primary.label),opt.primary&&opt.option.label&&dialog.find(".btn-default").text(opt.option.label),opt.primary&&opt.primary.cb&&dialog.find(".btn-primary").click(opt.primary.cb),opt.primary&&opt.option.cb&&dialog.find(".btn-primary").click(opt.option.cb)},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence .jsxc_inner ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres)},updatePresence:function(bid,pres){"own"===bid&&("dnd"===pres?($("#jsxc_menu .jsxc_muteNotification").addClass("jsxc_disabled"),jsxc.notification.muteSound(!0)):($("#jsxc_menu .jsxc_muteNotification").removeClass("jsxc_disabled"),jsxc.options.get("muteNotification")||jsxc.notification.unmuteSound(!0))),$('[data-bid="'+bid+'"]').each(function(){var el=$(this);el.attr("data-status",pres),el.find(".jsxc_avatar").length>0&&(el=el.find(".jsxc_avatar")),el.removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+pres)})},unreadMsg:function(bid){var winData=jsxc.storage.getUserItem("window",bid)||{},count=winData&&winData.unread||0;count=count===!0?1:count+1,winData.unread=count,jsxc.storage.setUserItem("window",bid,winData);var total=jsxc.storage.getUserItem("unreadMsg")||0;total++,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.gui._unreadMsg(bid,count)},_unreadMsg:function(bid,count){var win=jsxc.gui.window.get(bid);if("number"!=typeof count){var winData=jsxc.storage.getUserItem("window",bid);count=winData&&winData.unread||1,count=count===!0?1:count}var el=jsxc.gui.roster.getItem(bid).add(win);el.addClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(count)},readMsg:function(bid){var win=jsxc.gui.window.get(bid),winData=jsxc.storage.getUserItem("window",bid),count=winData&&winData.unread||0;count=count===!0?0:count;var el=jsxc.gui.roster.getItem(bid).add(win);if(el.removeClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(0),count>0){var total=jsxc.storage.getUserItem("unreadMsg")||0;total-=count,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.storage.updateUserItem("window",bid,"unread",0)}},detectUriScheme:function(container){container=$(container?container:"body"),container.find("a[href^='xmpp:']").each(function(){var action,element=$(this),href=element.attr("href").replace(/^xmpp:/,""),jid=href.split("?")[0],params={};if(href.indexOf("?")<0)action="message";else{var pairs=href.substring(href.indexOf("?")+1).split(";");action=pairs[0];var i,key,value;for(i=1;i<pairs.length;i++)key=pairs[i].split("=")[0],value=pairs[i].indexOf("=")>0?pairs[i].substring(pairs[i].indexOf("=")+1):null,params[decodeURIComponent(key)]=decodeURIComponent(value)}"function"==typeof jsxc.gui.queryActions[action]&&(element.addClass("jsxc_uriScheme jsxc_uriScheme_"+action),element.off("click").click(function(ev){return ev.stopPropagation(),jsxc.gui.queryActions[action].call(jsxc,jid,params),!1}))})},detectEmail:function(container){container=$(container?container:"body"),container.find('a[href^="mailto:"],a[href^="xmpp:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *(mailto|xmpp):/,"").trim();if(""!==href&&href!==Strophe.getBareJidFromJid(jsxc.storage.getItem("jid"))){var bid=jsxc.jidToBid(href),self=$(this),s=self.prev();s.hasClass("jsxc_spot")||(s=spot.clone().attr("data-bid",bid),self.before(s)),s.off("click"),jsxc.storage.getUserItem("buddy",bid)?(jsxc.gui.update(bid),s.click(function(){return jsxc.gui.window.open(bid),!1})):s.click(function(){return jsxc.gui.showContactDialog(href),!1})}})},avatarPlaceholder:function(el,seed,text){text=text||seed;var options=jsxc.options.get("avatarplaceholder")||{},hash=jsxc.hashStr(seed),hue=Math.abs(hash)%360,saturation=options.saturation||90,lightness=options.lightness||65;el.css({"background-color":"hsl("+hue+", "+saturation+"%, "+lightness+"%)",color:"#fff","font-weight":"bold","text-align":"center","line-height":el.height()+"px","font-size":.6*el.height()+"px"}),"string"==typeof text&&text.length>0&&el.text(text[0].toUpperCase())},shortnameToImage:function(str){return str=str.replace(jsxc.gui.regShortNames,function(shortname){if(!("undefined"!=typeof shortname&&""!==shortname&&(shortname in jsxc.gui.emoticonList.emojione||shortname in jsxc.gui.emoticonList.core)))return shortname;var src,filename;jsxc.gui.emoticonList.core[shortname]?(filename=jsxc.gui.emoticonList.core[shortname][jsxc.gui.emoticonList.core[shortname].length-1].replace(/^:([^:]+):$/,"$1"),src=jsxc.options.root+"/img/emotions/"+filename+".svg"):jsxc.gui.emoticonList.emojione[shortname]&&(filename=jsxc.gui.emoticonList.emojione[shortname][jsxc.gui.emoticonList.emojione[shortname].length-1],src=jsxc.options.root+"/lib/emojione/assets/svg/"+filename+".svg");var div=$("<div>");return div.addClass("jsxc_emoticon"),div.css("background-image","url("+src+")"),div.attr("title",shortname),div.prop("outerHTML")})}},jsxc.gui.roster={ready:!1,loaded:!1,init:function(){$(jsxc.options.rosterAppend+":first").append($(jsxc.gui.template.get("roster"))),jsxc.options.get("hideOffline")&&($("#jsxc_menu .jsxc_hideOffline").text($.t("Show_offline")),$("#jsxc_buddylist").addClass("jsxc_hideOffline")),$("#jsxc_menu .jsxc_settings").click(function(){jsxc.gui.showSettings()}),$("#jsxc_menu .jsxc_hideOffline").click(function(){var hideOffline=!jsxc.options.get("hideOffline");hideOffline?$("#jsxc_buddylist").addClass("jsxc_hideOffline"):$("#jsxc_buddylist").removeClass("jsxc_hideOffline"),$(this).text(hideOffline?$.t("Show_offline"):$.t("Hide_offline")),jsxc.options.set("hideOffline",hideOffline)}),jsxc.options.get("muteNotification")&&jsxc.notification.muteSound(),$("#jsxc_menu .jsxc_muteNotification").click(function(){if("dnd"!==jsxc.storage.getUserItem("presence")){var mute=!jsxc.options.get("muteNotification");mute?jsxc.notification.muteSound():jsxc.notification.unmuteSound()}}),$("#jsxc_roster .jsxc_addBuddy").click(function(){jsxc.gui.showContactDialog()}),$("#jsxc_roster .jsxc_onlineHelp").click(function(){window.open(jsxc.options.onlineHelp,"onlineHelp")}),$("#jsxc_roster .jsxc_about").click(function(){jsxc.gui.showAboutDialog()}),$("#jsxc_toggleRoster").click(function(){jsxc.gui.roster.toggle()}),$("#jsxc_presence li").click(function(){var self=$(this),pres=self.data("pres");"offline"===pres?jsxc.xmpp.logout(!1):jsxc.gui.changePresence(pres)}),$("#jsxc_buddylist").slimScroll({distance:"3px",height:$("#jsxc_roster").height()-31+"px",width:$("#jsxc_buddylist").width()+"px",color:"#fff",opacity:"0.5"}),$("#jsxc_roster > .jsxc_bottom > div").each(function(){jsxc.gui.toggleList.call($(this))});var rosterState=jsxc.storage.getUserItem("roster")||(jsxc.options.get("loginForm").startMinimized?"hidden":"shown");$("#jsxc_roster").addClass("jsxc_state_"+rosterState),$("#jsxc_windowList").addClass("jsxc_roster_"+rosterState);var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres),jsxc.gui.tooltip("#jsxc_roster"),jsxc.notice.load(),jsxc.gui.roster.ready=!0,$(document).trigger("ready.roster.jsxc")},add:function(bid){var data=jsxc.storage.getUserItem("buddy",bid),bud=jsxc.gui.buddyTemplate.clone().attr("data-bid",bid).attr("data-type",data.type||"chat");$("#jsxc_roster > p").remove(),jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_msg").click(function(){return jsxc.gui.window.open(bid),!1}),bud.find(".jsxc_rename").click(function(){return jsxc.gui.roster.rename(bid),!1}),"groupchat"!==data.type&&bud.find(".jsxc_delete").click(function(){return jsxc.gui.showRemoveDialog(bid),!1});var expandClick=function(){return bud.trigger("extra.jsxc"),$("body").click(),bud.find(".jsxc_menu").hasClass("jsxc_open")||(bud.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){bud.find(".jsxc_menu").removeClass("jsxc_open")})),!1};bud.find(".jsxc_more").click(expandClick),bud.find(".jsxc_vcard").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"});for(var history=jsxc.storage.getUserItem("history",bid)||[],i=0;history.length>i;){var message=new jsxc.Message(history[i]);if(message.direction!==jsxc.Message.SYS){$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(message.msg);break}i++}$(document).trigger("add.roster.jsxc",[bid,data,bud])},getItem:function(bid){return $("#jsxc_buddylist > li[data-bid='"+bid+"']")},insert:function(bid,li){var data=jsxc.storage.getUserItem("buddy",bid),listElements=$("#jsxc_buddylist > li"),insert=!1;data.name||(data.name=bid);var status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;if($(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||thisStatus<status)return $(this).before(li),insert=!0,!1}),insert||li.appendTo("#jsxc_buddylist")},reorder:function(bid){jsxc.gui.roster.insert(bid,jsxc.gui.roster.remove(bid))},remove:function(bid){return jsxc.gui.roster.getItem(bid).detach()},purge:function(bid){jsxc.master&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("otr",bid),jsxc.storage.removeUserItem("otr_version_"+bid),jsxc.storage.removeUserItem("chat",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.removeUserElement("buddylist",bid),jsxc.storage.removeUserElement("windowlist",bid)),jsxc.gui.window._close(bid),jsxc.gui.roster.remove(bid)},rename:function(bid){var name=jsxc.gui.roster.getItem(bid).find(".jsxc_name"),options=jsxc.gui.roster.getItem(bid).find(".jsxc_lastmsg, .jsxc_more"),input=$('<input type="text" name="name"/>');$("body").click(),options.hide(),name=name.replaceWith(input),input.val(name.text()),input.keypress(function(ev){13===ev.which&&(options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,$(this).val()),$("html").off("click"))}),input.click(function(){return!1}),$("html").one("click",function(){options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,input.val())})},_rename:function(bid,newname){if(jsxc.master){var d=jsxc.storage.getUserItem("buddy",bid)||{};if("chat"===d.type){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(d.jid),name:newname});jsxc.xmpp.conn.sendIQ(iq)}else"groupchat"===d.type&&jsxc.xmpp.bookmarks.add(bid,newname,d.nickname,d.autojoin)}jsxc.storage.updateUserItem("buddy",bid,"name",newname),jsxc.gui.update(bid)},toggle:function(state){var duration,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList");return state||(state=jsxc.storage.getUserItem("roster")===jsxc.CONST.HIDDEN?jsxc.CONST.SHOWN:jsxc.CONST.HIDDEN),"shown"===state&&jsxc.isExtraSmallDevice()&&jsxc.gui.window.hide(),jsxc.storage.setUserItem("roster",state),roster.removeClass("jsxc_state_hidden jsxc_state_shown").addClass("jsxc_state_"+state),wl.removeClass("jsxc_roster_hidden jsxc_roster_shown").addClass("jsxc_roster_"+state),duration=1e3*parseFloat(roster.css("transitionDuration")||0),setTimeout(function(){jsxc.gui.updateWindowListSB()},duration),$(document).trigger("toggle.roster.jsxc",[state,duration]),duration},noConnection:function(){$("#jsxc_roster").addClass("jsxc_noConnection"),$("#jsxc_buddylist").empty(),$("#jsxc_roster").append($("<p>"+$.t("no_connection")+"</p>").append(" <a>"+$.t("relogin")+"</a>").click(function(){jsxc.gui.showLoginBox()}))},empty:function(){var text=$("<p>"+$.t("Your_roster_is_empty_add_")+"</p>"),link=text.find("a");link.click(function(){jsxc.gui.showContactDialog()}),text.append(link),text.append("."),$("#jsxc_roster").prepend(text)}},jsxc.gui.dialog={
-open:function(data,o){var opt=$.extend({name:""},o),src=$('<div data-name="'+opt.name+'" id="jsxc_dialog" />').append(data);return $.magnificPopup.open({items:{src:src},type:"inline",modal:opt.noClose,callbacks:{beforeClose:function(){$(document).trigger("cleanup.dialog.jsxc")},afterClose:function(){$(document).trigger("close.dialog.jsxc")},open:function(){$("#jsxc_dialog .jsxc_close").click(function(ev){ev.preventDefault(),jsxc.gui.dialog.close()}),$("#jsxc_dialog form").each(function(){var form=$(this);form.find("button[data-jsxc-loading-text]").each(function(){var btn=$(this);btn.on("btnloading.jsxc",function(){btn.prop("disabled")||(btn.prop("disabled",!0),btn.data("jsxc_value",btn.text()),btn.text(btn.attr("data-jsxc-loading-text")))}),btn.on("btnfinished.jsxc",function(){btn.prop("disabled")&&(btn.prop("disabled",!1),btn.text(btn.data("jsxc_value")))})})}),jsxc.gui.dialog.resize(),$(document).trigger("complete.dialog.jsxc")}}}),$("#jsxc_dialog")},close:function(name){jsxc.debug("close dialog"),"string"==typeof name&&name.length>0&&!jsxc.el_exists("#jsxc_dialog[data-name="+name+"]")||$.magnificPopup.close()},resize:function(){}},jsxc.gui.window={init:function(bid){if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).appendTo("#jsxc_windowList > ul"),data=jsxc.storage.getUserItem("buddy",bid);win.data("jid",data.jid);var expandClick=function(){return win.trigger("extra.jsxc"),$("body").click(),win.find(".jsxc_menu").hasClass("jsxc_open")||(win.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){win.find(".jsxc_menu").removeClass("jsxc_open")})),!1};if(win.find(".jsxc_more").click(expandClick),win.find(".jsxc_verification").click(function(){jsxc.gui.showVerification(bid)}),win.find(".jsxc_fingerprints").click(function(){jsxc.gui.showFingerprints(bid)}),win.find(".jsxc_transfer").click(function(){jsxc.otr.toggleTransfer(bid)}),win.find(".jsxc_bar").click(function(){jsxc.gui.window.toggle(bid)}),win.find(".jsxc_close").click(function(){jsxc.gui.window.close(bid)}),win.find(".jsxc_clear").click(function(){jsxc.gui.window.clear(bid)}),win.find(".jsxc_sendFile").click(function(){$("body").click(),jsxc.gui.window.sendFile(bid)}),win.find(".jsxc_tools").click(function(){return!1}),win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13===ev.which&&(body=""),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){13===ev.which&&$(this).val()&&(jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.OUT,msg:$(this).val()}),$(this).val(""))}).focus(function(){jsxc.gui.readMsg(bid)}).mouseenter(function(){$("#jsxc_windowList").data("isOver",!0)}).mouseleave(function(){$("#jsxc_windowList").data("isOver",!1)}),win.find(".jsxc_textarea").click(function(){"function"!=typeof getSelection||getSelection().toString()||win.find(".jsxc_textinput").focus()}),win.find(".jsxc_textarea").slimScroll({height:"234px",distance:"3px"}),win.find(".jsxc_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){jsxc.gui.window.resize(win,ui)},start:function(){win.removeClass("jsxc_normal")},stop:function(){win.addClass("jsxc_normal")}}),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),$.inArray(bid,jsxc.storage.getUserItem("windowlist"))<0){var wl=jsxc.storage.getUserItem("windowlist")||[];wl.push(bid),jsxc.storage.setUserItem("windowlist",wl),jsxc.storage.setUserItem("window",bid,{minimize:!0,text:"",unread:0}),jsxc.gui.window.hide(bid)}else jsxc.storage.getUserItem("window",bid).unread&&jsxc.gui._unreadMsg(bid);return $.each(jsxc.gui.emotions,function(i,val){var ins=val[0].split(" ")[0],li=$("<li>");li.append(jsxc.gui.shortnameToImage(":"+val[1]+":")),li.find("div").attr("title",ins),li.click(function(){win.find("input").val(win.find("input").val()+ins),win.find("input").focus()}),win.find(".jsxc_emoticons ul").prepend(li)}),jsxc.gui.toggleList.call(win.find(".jsxc_emoticons")),jsxc.gui.window.restoreChat(bid),jsxc.gui.update(bid),jsxc.gui.updateWindowListSB(),jsxc.master&&!jsxc.otr.objects[bid]?jsxc.otr.create(bid):jsxc.otr.enable(bid),$(document).trigger("init.window.jsxc",[win]),win},resize:function(win,ui,outer){var bid;if("object"==typeof win)bid=win.attr("data-bid");else{if("string"!=typeof win)return void jsxc.warn("jsxc.gui.window.resize has to be called either with bid or window object.");bid=win,win=jsxc.gui.window.get(bid)}win.attr("data-default-height")||win.attr("data-default-height",win.find(".ui-resizable").height()),win.attr("data-default-width")||win.attr("data-default-width",win.find(".ui-resizable").width());var outer_height_diff=outer?win.find(".jsxc_window").outerHeight()-win.find(".ui-resizable").height():0;ui=$.extend({size:{width:parseInt(win.attr("data-default-width")),height:parseInt(win.attr("data-default-height"))+outer_height_diff}},ui||{}),outer&&(ui.size.height-=outer_height_diff),win.find(".slimScrollDiv").css({width:ui.size.width,height:ui.size.height}),win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height}),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])},fullsize:function(bid){var win=jsxc.gui.window.get(bid),size=jsxc.options.viewport.getSize();size.width-=10,size.height-=win.find(".jsxc_bar").outerHeight()+win.find(".jsxc_textinput").outerHeight(),jsxc.gui.window.resize(win,{size:size})},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);return jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid),win},close:function(bid){return 0===jsxc.gui.window.get(bid).length?void jsxc.warn("Want to close a window, that is not open."):(jsxc.storage.removeUserElement("windowlist",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.getUserItem("buddylist").indexOf(bid)<0&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("chat",bid)),void jsxc.gui.window._close(bid))},_close:function(bid){jsxc.gui.window.get(bid).remove(),jsxc.gui.updateWindowListSB()},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.hasClass("jsxc_min")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){return jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid),duration=0;jsxc.isExtraSmallDevice()&&(parseFloat($("#jsxc_roster").css("right"))>=0&&(duration=jsxc.gui.roster.toggle()),jsxc.gui.window.hide(),jsxc.gui.window.fullsize(bid)),win.removeClass("jsxc_min").addClass("jsxc_normal"),win.find(".jsxc_window").css("bottom","0"),setTimeout(function(){var padding=$("#jsxc_windowListSB").width(),innerWidth=$("#jsxc_windowList>ul").width(),outerWidth=$("#jsxc_windowList").width()-padding;if(innerWidth>outerWidth){var offset=parseInt($("#jsxc_windowList>ul").css("right")),width=win.outerWidth(!0),right=innerWidth-win.position().left-width+offset,left=outerWidth-(innerWidth-win.position().left)-offset;left<0&&jsxc.gui.scrollWindowListBy(left*-1),right<0&&jsxc.gui.scrollWindowListBy(right)}},duration),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){var hide=function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)};bid?hide(bid):$("#jsxc_windowList > ul > li").each(function(){var el=$(this);el.hasClass("jsxc_min")||hide(el.attr("data-bid"))})},_hide:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_normal").addClass("jsxc_min"),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),win.trigger("hidden.window.jsxc")},highlight:function(bid){var el=jsxc.gui.window.get(bid).find(" .jsxc_bar");el.is(":animated")||el.effect("highlight",{color:"orange"},2e3)},scrollDown:function(bid){var chat=jsxc.gui.window.get(bid).find(".jsxc_textarea");0!==chat.length&&chat.slimScroll({scrollTo:chat.get(0).scrollHeight+"px"})},postMessage:function(message){"object"!=typeof message||message instanceof jsxc.Message||(message=new jsxc.Message(message));var data=jsxc.storage.getUserItem("buddy",message.bid),html_msg=message.msg;message.msg=jsxc.removeHTML(message.msg),message.msg=jsxc.escapeHTML(message.msg),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&message.forwarded!==!0&&(message.direction=jsxc.Message.SYS,message.msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(message.direction="sys",message.msg=$.t("unencrypted_message_received")+" "+message.msg),message.encrypted=message.encrypted||data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;try{message.save()}catch(err){jsxc.warn("Unable to save message.",err),message=new jsxc.Message({msg:"Unable to save that message. Please clear some chat histories.",direction:jsxc.Message.SYS})}return"in"!==message.direction||jsxc.gui.window.get(message.bid).find(".jsxc_textinput").is(":focus")||(jsxc.gui.unreadMsg(message.bid),$(document).trigger("postmessagein.jsxc",[message.bid,html_msg])),message.direction===jsxc.Message.OUT&&jsxc.master&&message.forwarded!==!0&&html_msg&&jsxc.xmpp.sendMessage(message.bid,html_msg,message._uid),jsxc.gui.window._postMessage(message),"out"===message.direction&&"?"===message.msg&&jsxc.options.get("theAnswerToAnything")!==!1&&("undefined"==typeof jsxc.options.get("theAnswerToAnything")||100*Math.random()%42<1)&&(jsxc.options.set("theAnswerToAnything",!0),jsxc.gui.window.postMessage(new jsxc.Message({bid:message.bid,direction:jsxc.Message.SYS,msg:"42"}))),message},_postMessage:function(message,restore){var bid=message.bid,win=jsxc.gui.window.get(bid),msg=message.msg,direction=message.direction,uid=message._uid;win.find(".jsxc_textinput").is(":not(:focus)")&&direction===jsxc.Message.IN&&!restore&&jsxc.gui.window.highlight(bid),msg=msg.replace(jsxc.CONST.REGEX.URL,function(url){var href=url.match(/^https?:\/\//i)?url:"http://"+url;return'<a href="'+href+'" target="_blank">'+url+"</a>"}),msg=msg.replace(new RegExp("(xmpp:)?("+jsxc.CONST.REGEX.JID.source+")(\\?[^\\s]+\\b)?","i"),function(match,protocol,jid,action){return"xmpp:"===protocol?("string"==typeof action&&(jid+=action),'<a href="xmpp:'+jid+'">xmpp:'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">mailto:'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],":"+val[1]+":")}),msg=jsxc.gui.shortnameToImage(msg),msg=msg.replace(/(\r\n|\r|\n)/g,"<br />");var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid.replace(/:/g,"-")),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(message.stamp)),message.isReceived()&&msgDiv.addClass("jsxc_received"),message.forwarded&&msgDiv.addClass("jsxc_forwarded"),message.encrypted&&msgDiv.addClass("jsxc_encrypted"),message.attachment&&message.attachment.name){var attachment=$("<div>");attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+message.attachment.type.replace(/\//,"-")),attachment.addClass("jsxc_"+message.attachment.type.replace(/^([^\/]+)\/.*/,"$1")),message.attachment.persistent===!1&&attachment.addClass("jsxc_notPersistent"),message.attachment.data&&attachment.addClass("jsxc_data"),message.attachment.type.match(/^image\//)&&message.attachment.thumbnail?$('<img alt="preview">').attr("src",message.attachment.thumbnail).attr("title",message.attachment.name).appendTo(attachment):attachment.text(message.attachment.name),message.attachment.data&&(attachment=$("<a>").append(attachment),attachment.attr("href",message.attachment.data),attachment.attr("download",message.attachment.name)),msgDiv.find("div").first().append(attachment)}if("sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div class="jsxc_clear"/>'):"undefined"!=typeof message.stamp&&msgDiv.append(msgTsDiv),"sys"!==direction&&$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(msg),jsxc.Message.getDOM(uid).length>0?jsxc.Message.getDOM(uid).replaceWith(msgDiv):win.find(".jsxc_textarea").append(msgDiv),"object"==typeof message.sender&&null!==message.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof message.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(message.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(message.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(message.sender.jid),data.avatar),title=jsxc.jidToBid(message.sender.jid)}"string"==typeof message.sender.name&&(msgDiv.attr("data-name",message.sender.name),"string"!=typeof message.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,message.sender.name),""!==title&&(title="\n"+title),title=message.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+message.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title)),msgDiv.prev().length>0&&msgDiv.prev().find(".jsxc_avatar").attr("title")===avatarDiv.attr("title")&&avatarDiv.css("visibility","hidden")}jsxc.gui.detectUriScheme(win),jsxc.gui.detectEmail(win),jsxc.gui.window.scrollDown(bid)},setText:function(bid,text){jsxc.gui.window.get(bid).find(".jsxc_textinput").val(text)},restoreChat:function(bid){var chat=jsxc.storage.getUserItem("chat",bid);if(chat){for(;null!==chat&&chat.length>0;){var c=chat.pop();c.bid=bid,c._uid=c.uid,delete c.uid;var message=new jsxc.Message(c);message.save(),jsxc.gui.window._postMessage(message,!0)}jsxc.storage.removeUserItem("chat",bid)}for(var history=jsxc.storage.getUserItem("history",bid);null!==history&&history.length>0;){var uid=history.pop();jsxc.gui.window._postMessage(new jsxc.Message(uid),!0)}},clear:function(bid){jsxc.storage.removeUserItem("chat",bid);var history=jsxc.storage.getUserItem("history",bid)||[];history.map(function(id){jsxc.storage.removeUserItem("msg",id)}),jsxc.storage.setUserItem("history",bid,[]);var win=jsxc.gui.window.get(bid);win.length>0&&win.find(".jsxc_textarea").empty()},receivedMessage:function(bid,uid){jsxc.warn("Using deprecated receivedMessage.");var message=new jsxc.Message(uid);message.received()},updateProgress:function(message,sent,size){var div=message.getDOM(),span=div.find(".jsxc_timestamp span");0===span.length&&(div.find(".jsxc_timestamp").append("<span>"),span=div.find(".jsxc_timestamp span")),span.text(" "+Math.round(sent/size*100)+"%"),sent===size&&(span.remove(),message.received())},showOverlay:function(bid,content,allowClose){var win=jsxc.gui.window.get(bid);win.find(".jsxc_overlay .jsxc_body").empty().append(content),win.find(".jsxc_overlay .jsxc_close").off("click").click(function(){jsxc.gui.window.hideOverlay(bid)}),allowClose!==!0?win.find(".jsxc_overlay .jsxc_close").hide():win.find(".jsxc_overlay .jsxc_close").show(),win.addClass("jsxc_showOverlay")},hideOverlay:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_showOverlay")},selectResource:function(bid,text,cb,res){if(res=res||jsxc.storage.getUserItem("res",bid)||[],cb=cb||function(){},res.length>0){var i,li,content=$("<div>"),list=$("<ul>");for(i=0;i<res.length;i++)li=$("<li>"),li.append($("<a>").text(res[i])),li.appendTo(list);list.find("a").click(function(ev){ev.preventDefault(),jsxc.gui.window.hideOverlay(bid),cb({status:"selected",result:$(this).text()})}),text&&$("<p>").text(text).appendTo(content),list.appendTo(content),jsxc.gui.window.showOverlay(bid,content)}else cb({status:"unavailable"})},smpRequest:function(bid,question){var content=$("<div>"),p=$("<p>");p.text($.t("smpRequestReceived")),p.appendTo(content);var abort=$("<button>");abort.text($.t("Abort")),abort.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.storage.removeUserItem("smp",bid),jsxc.master&&jsxc.otr.objects[bid]&&jsxc.otr.objects[bid].sm.abort()}),abort.appendTo(content);var verify=$("<button>");verify.text($.t("Verify")),verify.addClass("jsxc_btn jsxc_btn-primary"),verify.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.otr.onSmpQuestion(bid,question)}),verify.appendTo(content),jsxc.gui.window.showOverlay(bid,content)},sendFile:function(jid){var bid=jsxc.jidToBid(jid),win=jsxc.gui.window.get(bid),res=Strophe.getResourceFromJid(jid);if(!res){jid=win.data("jid"),res=Strophe.getResourceFromJid(jid);var fileCapableRes=jsxc.webrtc.getCapableRes(jid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid))||[];if(null===res&&1===resources.length&&1===fileCapableRes.length)res=fileCapableRes[0],jid=bid+"/"+res;else if(fileCapableRes.indexOf(res)<0)return void jsxc.gui.window.selectResource(bid,$.t("Your_contact_uses_multiple_clients_"),function(data){"unavailable"===data.status?jsxc.gui.window.hideOverlay(bid):"selected"===data.status&&jsxc.gui.window.sendFile(bid+"/"+data.result)},fileCapableRes)}var msg=$('<div><div><label><input type="file" name="files" /><label></div></div>');msg.addClass("jsxc_chatmessage"),jsxc.gui.window.showOverlay(bid,msg,!0),msg.find("label").click(),msg.find('[type="file"]').change(function(ev){var file=ev.target.files[0];if(file){var attachment=$("<div>");if(attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+file.type.replace(/\//,"-")),attachment.addClass("jsxc_"+file.type.replace(/^([^\/]+)\/.*/,"$1")),msg.empty().append(attachment),FileReader&&file.type.match(/^image\//)){var img=$('<img alt="preview">').attr("title",file.name);img.attr("src",jsxc.options.get("root")+"/img/loading.gif"),img.appendTo(attachment);var reader=new FileReader;reader.onload=function(){img.attr("src",reader.result)},reader.readAsDataURL(file)}else attachment.text(file.name+" ("+file.size+" byte)");$("<button>").addClass("jsxc_btn jsxc_btn-primary").text($.t("Send")).click(function(){var sess=jsxc.webrtc.sendFile(jid,file);jsxc.gui.window.hideOverlay(bid);var message=jsxc.gui.window.postMessage({_uid:sess.sid+":msg",bid:bid,direction:"out",attachment:{name:file.name,size:file.size,type:file.type,data:file.type.match(/^image\//)?img.attr("src"):null}});sess.sender.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size)}),msg.remove()}).appendTo(msg),$("<button>").addClass("jsxc_btn jsxc_btn-default").text($.t("Abort")).click(function(){jsxc.gui.window.hideOverlay(bid)}).appendTo(msg)}})}},jsxc.gui.template={},jsxc.gui.template.get=function(name,bid,msg){var ph={my_priv_fingerprint:jsxc.storage.getUserItem("priv_fingerprint")?jsxc.storage.getUserItem("priv_fingerprint").replace(/(.{8})/g,"$1 "):$.t("not_available"),my_jid:jsxc.storage.getItem("jid")||"",my_node:Strophe.getNodeFromJid(jsxc.storage.getItem("jid")||"")||"",root:jsxc.options.root,app_name:jsxc.options.app_name,version:jsxc.version};if(bid){var data=jsxc.storage.getUserItem("buddy",bid);$.extend(ph,{bid_priv_fingerprint:data&&data.fingerprint?data.fingerprint.replace(/(.{8})/g,"$1 "):$.t("not_available"),bid_jid:bid,bid_name:data&&data.name?data.name:bid})}msg&&$.extend(ph,{msg:msg});var ret=jsxc.gui.template[name];return"string"==typeof ret?(ret=ret.replace(/\{\{root\}\}/g,ph.root),ret=$(ret),ret.find("[data-var]").each(function(){var key=$(this).attr("data-var"),val="string"==typeof ph[key]?ph[key]:"(Unknown placeholder: "+key+")";"INPUT"===$(this).prop("tagName").toUpperCase()?$(this).val(val):$(this).text(val)}),ret.i18n(),ret):(jsxc.debug("Template not available: "+name),name)},jsxc.muc={conn:null,CONST:{AFFILIATION:{ADMIN:"admin",MEMBER:"member",OUTCAST:"outcast",OWNER:"owner",NONE:"none"},ROLE:{MODERATOR:"moderator",PARTICIPANT:"participant",VISITOR:"visitor",NONE:"none"},ROOMSTATE:{INIT:0,ENTERED:1,EXITED:2,AWAIT_DESTRUCTION:3,DESTROYED:4},ROOMCONFIG:{INSTANT:"instant"}},init:function(o){var self=jsxc.muc;self.conn=jsxc.xmpp.conn;var options=o||jsxc.options.get("muc");return options&&"string"==typeof options.server?(jsxc.gui.roster.ready?self.initMenu():$(document).one("ready.roster.jsxc",jsxc.muc.initMenu),$(document).on("presence.jsxc",jsxc.muc.onPresence),$(document).on("error.presence.jsxc",jsxc.muc.onPresenceError),self.conn.addHandler(self.onGroupchatMessage,null,"message","groupchat"),self.conn.addHandler(self.onErrorMessage,null,"message","error"),void(self.conn.muc.roomNames=jsxc.storage.getUserItem("roomNames")||[])):(jsxc.debug("Discover muc service"),void setTimeout(function(){self.conn.disco.items(Strophe.getDomainFromJid(self.conn.jid),null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;return self.conn.disco.info(jid,null,function(info){var mucFeature=$(info).find('feature[var="'+Strophe.NS.MUC+'"]'),mucIdentity=$(info).find('identity[category="conference"][type="text"]');mucFeature.length>0&&mucIdentity.length>0&&(jsxc.debug("muc service found",jid),jsxc.options.set("muc",{server:jid,name:$(info).find("identity").attr("name")}),discovered=!0,self.init())}),!discovered})})},1e3))},initMenu:function(){var li=$("<li>").attr("class","jsxc_joinChat jsxc_groupcontacticon").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul .jsxc_about").before(li)},showJoinChat:function(r,p){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("joinChat"));dialog.find(".jsxc_join").hide(),"string"==typeof r&&dialog.find("#jsxc_room").val(r),"string"==typeof p&&dialog.find("#jsxc_password").val(p),dialog.find("#jsxc_server").val(jsxc.options.get("muc").server);var error_handler=function(event,condition,room){var msg;switch(condition){case"not-authorized":msg=$.t("A_password_is_required");break;case"registration-required":msg=$.t("You_are_not_on_the_member_list");break;case"forbidden":msg=$.t("You_are_banned_from_this_room");break;case"conflict":msg=$.t("Your_desired_nickname_");break;case"service-unavailable":msg=$.t("The_maximum_number_");break;case"item-not-found":msg=$.t("This_room_is_locked_");break;case"not-allowed":msg=$.t("You_are_not_allowed_to_create_");break;default:jsxc.warn("Unknown muc error condition: "+condition),msg=$.t("Error")+": "+condition}var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),dialog.find(".jsxc_warning").text(msg)};$(document).on("error.muc.jsxc",error_handler),$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),self.conn.muc.listRooms(jsxc.options.get("muc").server,function(stanza){$("#jsxc_roomlist option:last").remove(),$(stanza).find("item").each(function(){var r=$("<option>"),rjid=$(this).attr("jid").toLowerCase(),rnode=Strophe.getNodeFromJid(rjid),rname=$(this).attr("name")||rnode;r.text(rname),r.attr("data-jid",rjid),r.attr("value",rnode),$("#jsxc_roomlist select").append(r)});var set=$(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');if(set.length>0){var count=set.find("count").text()||"?";dialog.find(".jsxc_inputinfo").removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(){jsxc.warn("Could not load rooms"),dialog.find(".jsxc_inputinfo").hide()}),dialog.find("#jsxc_nickname").attr("placeholder",Strophe.getNodeFromJid(self.conn.jid)),dialog.find("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),dialog.find(".jsxc_continue").click(function(ev){ev.preventDefault();var room=$("#jsxc_room").val()?jsxc.jidToBid($("#jsxc_room").val()):null,nickname=$("#jsxc_nickname").val()||Strophe.getNodeFromJid(self.conn.jid),password=$("#jsxc_password").val()||null;if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(room.match(/@(.*)$/)||(room+="@"+jsxc.options.get("muc").server),jsxc.xmpp.conn.muc.roomNames.indexOf(room)<0){var discoReceived=function(roomName,subject){jsxc.gui.dialog.resize(),dialog.find(".jsxc_continue").hide(),dialog.find(".jsxc_join").show().effect("highlight",{color:"green"},4e3),dialog.find(".jsxc_join").click(function(ev){ev.preventDefault();var bookmark=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked");return jsxc.gui.window.clear(room),jsxc.storage.setUserItem("member",room,{}),self.join(room,nickname,password,roomName,subject,bookmark,autojoin),!1})};dialog.find(".jsxc_msg").append($("<p>").text($.t("Loading_room_information")).addClass("jsxc_waiting")),jsxc.gui.dialog.resize(),self.conn.disco.info(room,null,function(stanza){dialog.find(".jsxc_msg").html("<p>"+$.t("This_room_is")+"</p>");var table=$("<table>");$(stanza).find("feature").each(function(){var feature=$(this).attr("var");if(""!==feature&&i18n.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}}),dialog.find(".jsxc_msg").append(table);var roomName=$(stanza).find("identity").attr("name"),subject=$(stanza).find('field[var="muc#roominfo_subject"]').attr("label");discoReceived(roomName,subject)},function(){dialog.find(".jsxc_msg").empty(),$("<p>").text($.t("Room_not_found_")).appendTo(dialog.find(".jsxc_msg")),discoReceived()})}else dialog.find(".jsxc_warning").text($.t("You_already_joined_this_room"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").empty(),void(dialog.find(".jsxc_continue").is(":hidden")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),jsxc.gui.dialog.resize()))):void(dialog.find(".jsxc_continue").is(":hidden")?dialog.find(".jsxc_join").click():dialog.find(".jsxc_continue").click())})},showRoomConfiguration:function(room){var self=jsxc.muc;self.conn.muc.configure(room,function(stanza){var form=Strophe.x.Form.fromXML(stanza);window.f=form,self._showRoomConfiguration(room,form)},function(){jsxc.debug("Could not load room configuration")})},_showRoomConfiguration:function(room,config){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.muc.helper.formToHTML(config)),form=dialog.find("form");form.find('[type="checkbox"]').change(function(){$(this).val(this.checked?1:0)});var submit=$("<button>");submit.addClass("btn btn-primary"),submit.attr("type","submit"),submit.text($.t("Save"));var cancel=$("<button>");cancel.addClass("btn btn-default"),cancel.attr("type","button"),cancel.text($.t("Cancel"));var formGroup=$("<div>");formGroup.addClass("form-group"),$("<div>").addClass("col-sm-offset-6 col-sm-6").appendTo(formGroup),formGroup.find(">div").append(cancel),formGroup.find(">div").append(submit),form.append(formGroup),form.submit(function(ev){ev.preventDefault();var config=Strophe.x.Form.fromHTML(form.get(0));return self.conn.muc.saveConfiguration(room,config,function(){jsxc.storage.updateUserItem("buddy",room,"config",config),jsxc.debug("Room configuration saved.")},function(){jsxc.warn("Could not save room configuration.")}),jsxc.gui.dialog.close(),!1}),cancel.click(function(){self.conn.muc.cancelConfigure(room),jsxc.gui.dialog.close()})},join:function(room,nickname,password,roomName,subject,bookmark,autojoin){var self=jsxc.muc;jsxc.storage.setUserItem("buddy",room,{jid:room,name:roomName||room,sub:"both",type:"groupchat",state:self.CONST.ROOMSTATE.INIT,subject:subject,bookmarked:bookmark||!1,autojoin:autojoin||!1,nickname:nickname,config:null}),jsxc.xmpp.conn.muc.join(room,nickname,null,null,null,password),bookmark&&jsxc.xmpp.bookmarks.add(room,roomName,nickname,autojoin)},leave:function(room){if(!jsxc.master)return void jsxc.tab.execMaster("muc.leave",room);var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},data=jsxc.storage.getUserItem("buddy",room)||{};data.state===self.CONST.ROOMSTATE.ENTERED?self.conn.muc.leave(room,own[room],function(){self.onExited(room)}):self.onExited(room)},onExited:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},roomdata=jsxc.storage.getUserItem("buddy",room)||{};jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),delete own[room],jsxc.storage.setUserItem("ownNicknames",own),jsxc.storage.removeUserItem("member",room),jsxc.storage.removeUserItem("chat",room),jsxc.gui.window.close(room),jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.EXITED),roomdata.bookmarked||jsxc.gui.roster.purge(room)},destroy:function(room,handler_cb,error_cb){if(!jsxc.master)return void jsxc.tab.execMaster("muc.destroy",room);var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room);jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.AWAIT_DESTRUCTION),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("This_room_will_be_closed")});var iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("destroy");jsxc.muc.conn.sendIQ(iq.tree(),handler_cb,error_cb),roomdata.bookmarked&&jsxc.xmpp.bookmarks.delete(room)},close:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};self.emptyMembers(room);var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),roomdata.state===self.CONST.ROOMSTATE.AWAIT_DESTRUCTION&&self.onExited(room),jsxc.storage.getUserItem("budy",room)&&(roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata))},initWindow:function(event,win){var self=jsxc.muc;if(!jsxc.xmpp.conn&&jsxc.master)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);if("groupchat"===roomdata.type){win.addClass("jsxc_groupchat");var own=jsxc.storage.getUserItem("ownNicknames")||{},ownNickname=own[bid],mlIcon=$('<div class="jsxc_members"></div>');win.find(".jsxc_tools > .jsxc_settings").after(mlIcon);var ml=$('<div class="jsxc_memberlist"><ul></ul></div>');win.find(".jsxc_fade").prepend(ml),ml.on("wheel",function(ev){jsxc.muc.scrollMemberListBy(bid,ev.originalEvent.wheelDelta>0?50:-50)});var toggleMl=function(ev){ev&&ev.preventDefault();var slimOptions={},ul=ml.find("ul:first"),slimHeight=null;if(ml.toggleClass("jsxc_expand"),ml.hasClass("jsxc_expand")){$("body").click(),$("body").one("click",toggleMl),ul.mouseleave(function(){ul.data("timer",window.setTimeout(toggleMl,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))}).css("left","0px");var maxHeight=.8*win.find(".jsxc_textarea").height(),innerHeight=ml.find("ul").height()+3;slimHeight=innerHeight>maxHeight?maxHeight:innerHeight,slimOptions={distance:"3px",height:slimHeight+"px",width:"100%",color:"#fff",opacity:"0.5"},ml.css("height",slimHeight+"px")}else slimOptions={destroy:!0},ul.attr("style",""),ml.css("height",""),window.clearTimeout(ul.data("timer")),$("body").off("click",null,toggleMl),ul.off("mouseleave mouseenter");return ul.slimscroll(slimOptions),!1};mlIcon.click(toggleMl),win.on("resize",function(){jsxc.muc.scrollMemberListBy(bid,0)});var destroy=$("<a>");destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append($("<li>").append(destroy));var configure=$("<a>");if(configure.text($.t("Configure")),configure.addClass("jsxc_configure"),configure.hide(),configure.click(function(){self.showRoomConfiguration(bid)}),self.conn&&win.find(".jsxc_settings ul").append($("<li>").append(configure)),roomdata.state>self.CONST.ROOMSTATE.INIT){var member=jsxc.storage.getUserItem("member",bid)||{};
-$.each(member,function(nickname,val){self.insertMember(bid,nickname,val),nickname===ownNickname&&val.affiliation===self.CONST.AFFILIATION.OWNER&&destroy.show(),nickname!==ownNickname||val.affiliation!==self.CONST.AFFILIATION.OWNER&&val.affiliation!==self.CONST.AFFILIATION.OWNER||configure.show()})}var leave=$("<a>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append($("<li>").append(leave))}},onPresence:function(event,from,status,presence){var self=jsxc.muc,room=jsxc.jidToBid(from),roomdata=jsxc.storage.getUserItem("buddy",room),xdata=$(presence).find('x[xmlns^="'+Strophe.NS.MUC+'"]');if(self.conn.muc.roomNames.indexOf(room)<0||0===xdata.length)return!0;var res=Strophe.getResourceFromJid(from)||"",nickname=Strophe.unescapeNode(res),own=jsxc.storage.getUserItem("ownNicknames")||{},member=jsxc.storage.getUserItem("member",room)||{},openWindow=!1,codes=[];if(xdata.find("status").each(function(){var code=$(this).attr("code");jsxc.debug("[muc][code]",code),codes.push(code)}),roomdata.state===self.CONST.ROOMSTATE.INIT){if(jsxc.storage.setUserItem("roomNames",jsxc.xmpp.conn.muc.roomNames),0===jsxc.gui.roster.getItem(room).length){var bl=jsxc.storage.getUserItem("buddylist");bl.push(room),jsxc.storage.setUserItem("buddylist",bl),jsxc.gui.roster.add(room)}$("#jsxc_dialog").length>0&&(openWindow=!0,jsxc.gui.dialog.close())}var jid=xdata.find("item").attr("jid")||null;if(0===status)if(xdata.find("destroy").length>0)member={},jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("This_room_has_been_closed")}),self.close(room);else{delete member[nickname],self.removeMember(room,nickname);var newNickname=xdata.find("item").attr("nick");codes.indexOf("303")>-1&&newNickname?(newNickname=Strophe.unescapeNode(newNickname),member[newNickname]={},jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("is_now_known_as",{oldNickname:nickname,newNickname:newNickname,escapeInterpolation:!0})})):(0===codes.length||1===codes.length&&codes.indexOf("110")>-1)&&jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0})})}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("entered_the_room",{nickname:nickname,escapeInterpolation:!0})}),member[nickname]={jid:jid,status:status,roomJid:from,affiliation:xdata.find("item").attr("affiliation"),role:xdata.find("item").attr("role")},self.insertMember(room,nickname,member[nickname]);return jsxc.storage.setUserItem("member",room,member),$.each(codes,function(index,code){"function"==typeof self.onStatus[code]&&self.onStatus[code].call(this,room,nickname,member[nickname]||{},xdata),$(document).trigger("status.muc.jsxc",[code,room,nickname,member[nickname]||{},presence])}),openWindow&&jsxc.gui.window.open(room),!0},onPresenceError:function(event,from,presence){var self=jsxc.muc,xdata=$(presence).find('x[xmlns="'+Strophe.NS.MUC+'"]'),room=jsxc.jidToBid(from);if(0===xdata.length||self.conn.muc.roomNames.indexOf(room)<0)return!0;var error=$(presence).find("error"),condition=error.children()[0].tagName;return jsxc.debug("[muc][error]",condition),$(document).trigger("error.muc.jsxc",[condition,room]),!0},onStatus:{110:function(room,nickname,data){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]=nickname,jsxc.storage.setUserItem("ownNicknames",own),data.affiliation===self.CONST.AFFILIATION.OWNER&&jsxc.gui.window.get(room).find(".jsxc_destroy").show();var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.state===self.CONST.ROOMSTATE.INIT&&(roomdata.state=self.CONST.ROOMSTATE.ENTERED,jsxc.storage.setUserItem("buddy",room,roomdata))},170:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_enabled")})},171:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_disabled")})},172:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_is_now_non-anoymous")})},173:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_is_now_semi-anonymous")})},201:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};roomdata.autojoin&&roomdata.config===self.CONST.ROOMCONFIG.INSTANT?self.conn.muc.createInstantRoom(room):roomdata.autojoin&&"undefined"!=typeof roomdata.config&&null!==roomdata.config?self.conn.muc.saveConfiguration(room,roomdata.config,function(){jsxc.debug("Cached room configuration saved.")},function(){jsxc.warn("Could not save cached room configuration.")}):jsxc.gui.showSelectionDialog({header:$.t("Room_creation"),msg:$.t("Do_you_want_to_change_the_default_room_configuration"),primary:{label:$.t("Default"),cb:function(){jsxc.gui.dialog.close(),self.conn.muc.createInstantRoom(room),jsxc.storage.updateUserItem("buddy",room,"config",self.CONST.ROOMCONFIG.INSTANT)}},option:{label:$.t("Change"),cb:function(){self.showRoomConfiguration(room)}}})},301:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_banned")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_banned",{nickname:nickname,escapeInterpolation:!0})})},307:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_kicked")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_kicked",{nickname:nickname,escapeInterpolation:!0})})},321:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_affiliation")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_affiliation",{nickname:nickname,escapeInterpolation:!0})})},322:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_membersonly")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0})})},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_shutdown")})}},postReason:function(room,xdata){var actor={name:xdata.find("actor").attr("nick"),jid:xdata.find("actor").attr("jid")},reason=xdata.find("reason").text();""!==reason&&(reason=$.t("Reason")+": "+reason,"string"==typeof actor.name||"string"==typeof actor.jid?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.IN,msg:reason,sender:actor}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:reason}))},insertMember:function(room,nickname,memberdata){var win=jsxc.gui.window.get(room),jid=memberdata.jid,ownBid=jsxc.jidToBid(jsxc.storage.getItem("jid")),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');if(0===m.length){var title=jsxc.escapeHTML(nickname);if(m=$('<li><div class="jsxc_avatar"></div><div class="jsxc_name"/></li>'),m.attr("data-nickname",nickname),win.find(".jsxc_memberlist ul").append(m),"string"==typeof jid){m.find(".jsxc_name").text(jsxc.jidToBid(jid)),m.attr("data-bid",jsxc.jidToBid(jid)),title=title+"\n"+jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid));null!==data&&"object"==typeof data?jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),data.avatar):jsxc.jidToBid(jid)===ownBid&&jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),"own")}else m.find(".jsxc_name").text(nickname),jsxc.gui.avatarPlaceholder(m.find(".jsxc_avatar"),nickname);m.attr("title",title)}},removeMember:function(room,nickname){var win=jsxc.gui.window.get(room),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');m.length>0&&m.remove()},scrollMemberListBy:function(room,offset){var win=jsxc.gui.window.get(room);if(!win.find(".jsxc_memberlist").hasClass("jsxc_expand")){var el=win.find(".jsxc_memberlist ul:first"),scrollWidth=el.width(),width=win.find(".jsxc_memberlist").width(),left=parseInt(el.css("left"));left=isNaN(left)?0-offset:left-offset,scrollWidth<width||left>0?left=0:left<width-scrollWidth&&(left=width-scrollWidth),el.css("left",left+"px")}},emptyMembers:function(room){var win=jsxc.gui.window.get(room);win.find(".jsxc_memberlist").empty(),jsxc.storage.setUserItem("member",room,{})},onGroupchatMessage:function(message){var id=$(message).attr("id");if(id&&jsxc.el_exists(jsxc.Message.getDOM(id)))return!0;var from=$(message).attr("from"),body=$(message).find("body:first").text(),room=jsxc.jidToBid(from),nickname=Strophe.unescapeNode(Strophe.getResourceFromJid(from));if(""!==body){var delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;stamp=stamp.getTime();var member=jsxc.storage.getUserItem("member",room)||{},sender={};sender.name=nickname,member[nickname]&&"string"==typeof member[nickname].jid&&(sender.jid=member[nickname].jid),jsxc.gui.window.init(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.IN,msg:body,stamp:stamp,sender:sender})}var subject=$(message).find("subject");if(subject.length>0){var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.subject=subject.text(),jsxc.storage.setUserItem("buddy",room,roomdata),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("changed_subject_to",{nickname:nickname,subject:subject.text()})})}return!0},onErrorMessage:function(message){var room=jsxc.jidToBid($(message).attr("from"));return 0===jsxc.gui.window.get(room).length||($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_item-not-found")}):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_forbidden")}):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_not-acceptable")}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send")}),jsxc.debug("[muc] error message for "+room,$(message).find("error")[0]),!0)},onAddRoster:function(event,room,data,bud){var self=jsxc.muc;if("groupchat"===data.type){var bo=$("<a>");$("<span>").addClass("jsxc_icon jsxc_bookmarkicon").appendTo(bo),$("<span>").text($.t("Bookmark")).appendTo(bo),bo.addClass("jsxc_bookmarkOptions"),bo.click(function(ev){return ev.preventDefault(),jsxc.xmpp.bookmarks.showDialog(room),!1}),bud.find(".jsxc_menu ul").append($("<li>").append(bo)),data.bookmarked&&bud.addClass("jsxc_bookmarked"),bud.off("click").click(function(){var data=jsxc.storage.getUserItem("buddy",room);data.state===self.CONST.ROOMSTATE.INIT||data.state===self.CONST.ROOMSTATE.EXITED?(self.showJoinChat(),$("#jsxc_room").val(Strophe.getNodeFromJid(data.jid)),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_dialog .jsxc_bookmark").hide()):jsxc.gui.window.open(room)}),bud.find(".jsxc_delete").click(function(){return data.bookmarked&&jsxc.xmpp.bookmarks.delete(room),self.leave(room),!1})}},helper:{formToHTML:function(form){if(form instanceof Strophe.x.Form){var html=$("<form>");if(html.attr("data-type",form.type),html.addClass("form-horizontal"),form.title&&html.append("<h3>"+form.title+"</h3>"),form.instructions&&html.append("<p>"+form.instructions+"</p>"),form.fields.length>0){var i;for(i=0;i<form.fields.length;i++)html.append(jsxc.muc.helper.fieldToHtml(form.fields[i]))}return $("<div>").append(html).html()}},fieldToHtml:function(field){var self=field||this;field=null;var el,val,opt,i,o,j,k,txt,line,_ref2,id="Strophe.x.Field-"+self.type+"-"+self.var,html=$("<div>");if(html.addClass("form-group"),self.label){var label=$("<label>");label.attr("for",id),label.addClass("col-sm-6 control-label"),label.text(self.label),label.appendTo(html)}switch(self.type.toLowerCase()){case"list-single":case"list-multi":for(el=$("<select>"),"list-multi"===self.type&&el.attr("multiple","multiple"),i=0;i<self.options.length;i++)if(opt=self.options[i]){for(o=$(opt.toHTML()),j=0;j<self.values;j++)k=self.values[j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var i,_results;for(_results=[],i=0;i<self.values.length;i++)line=self.values[i],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),self.values&&el.attr("value",self.values[0]),self.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",self.desc),el.addClass("form-control");break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=self.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password"),el.addClass("form-control");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly"),el.addClass("form-control");break;case"jid-single":el.attr("type","email"),el.addClass("form-control")}break;default:el=$("<input type='text'>")}el.attr("id",id),el.attr("name",self.var),self.required&&el.attr("required",self.required);var inner=el;return el=$("<div>"),el.addClass("col-sm-6"),el.append(inner),html.append(el),html.get(0)}}},$(document).on("init.window.jsxc",jsxc.muc.initWindow),$(document).on("add.roster.jsxc",jsxc.muc.onAddRoster),$(document).one("attached.jsxc",function(){jsxc.muc.init()}),$(document).one("connected.jsxc",function(){jsxc.storage.removeUserItem("roomNames"),jsxc.storage.removeUserItem("ownNicknames")}),jsxc.notice={_num:0,load:function(){$("#jsxc_notice ul li").remove(),$("#jsxc_notice > span").text(""),jsxc.notice._num=0;var saved=jsxc.storage.getUserItem("notices")||[],key=null;for(key in saved)if(saved.hasOwnProperty(key)){var val=saved[key];jsxc.notice.add(val.msg,val.description,val.fnName,val.fnParams,key)}},add:function(msg,description,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>");if(notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num),!id){var saved=jsxc.storage.getUserItem("notices")||{};saved[nid]={msg:msg,description:description,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)}},remove:function(nid){var el=$("#jsxc_notice li[data-nid="+nid+"]");el.remove(),$("#jsxc_notice > span").text(--jsxc.notice._num||"");var s=jsxc.storage.getUserItem("notices");delete s[nid],jsxc.storage.setUserItem("notices",s)},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){if(val.fnName===fnName)return has=!0,!1}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){msg=msg&&msg.match(/^\?OTR/)?$.t("Encrypted_message"):msg;var data=jsxc.storage.getUserItem("buddy",bid);jsxc.notification.notify({title:$.t("New_message_from",{name:data.name}),msg:msg,soundFile:jsxc.CONST.SOUNDS.MSG,source:bid})}),$(document).on("callincoming.jingle",function(){jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL,!0,!0)}),$(document).on("accept.call.jsxc reject.call.jsxc",function(){jsxc.notification.stopSound()})},notify:function(title,msg,d,force,soundFile,loop,source){if(jsxc.options.notification&&jsxc.notification.hasPermission()){var o;if(o=null!==title&&"object"==typeof title?title:{title:title,msg:msg,duration:d,force:force,soundFile:soundFile,loop:loop,source:source},!jsxc.hasFocus()||o.force){var icon=o.icon||jsxc.options.root+"/img/XMPP_logo.png";if("string"==typeof o.source){var data=jsxc.storage.getUserItem("buddy",o.source),src=jsxc.storage.getUserItem("avatar",data.avatar);"string"==typeof src&&"0"!==src&&(icon=src)}jsxc.toNotification=setTimeout(function(){"string"==typeof o.soundFile&&jsxc.notification.playSound(o.soundFile,o.loop,o.force);var popup=new Notification($.t(o.title),{body:$.t(o.msg),icon:icon}),duration=o.duration||jsxc.options.popupDuration;duration>0&&setTimeout(function(){popup.close()},duration)},jsxc.toNotificationDelay)}}},hasSupport:function(){if(window.webkitNotifications){window.Notification=function(title,opt){var popup=window.webkitNotifications.createNotification(null,title,opt.body);return popup.show(),popup.close=function(){popup.cancel()},popup};var permission;switch(window.webkitNotifications.checkPermission()){case 0:permission=jsxc.CONST.NOTIFICATION_GRANTED;break;case 2:permission=jsxc.CONST.NOTIFICATION_DENIED;break;default:permission=jsxc.CONST.NOTIFICATION_DEFAULT}return window.Notification.permission=permission,window.Notification.requestPermission=function(func){window.webkitNotifications.requestPermission(func)},!0}return!!window.Notification},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add($.t("Notifications")+"?",$.t("Should_we_notify_you_"),"gui.showRequestNotification")},1e3)})},requestPermission:function(){window.Notification.requestPermission(function(status){window.Notification.permission!==status&&(window.Notification.permission=status),jsxc.notification.hasPermission()?$(document).trigger("notificationready.jsxc"):$(document).trigger("notificationfailure.jsxc")})},hasPermission:function(){return window.Notification.permission===jsxc.CONST.NOTIFICATION_GRANTED},playSound:function(soundFile,loop,force){if(jsxc.master&&!jsxc.options.get("muteNotification")&&"dnd"!==jsxc.storage.getUserItem("presence")&&(!jsxc.hasFocus()||force)){jsxc.notification.stopSound();var audio=new Audio(jsxc.options.root+"/sound/"+soundFile);audio.loop=loop||!1,audio.play(),jsxc.notification.audio=audio}},stopSound:function(){var audio=jsxc.notification.audio;"undefined"!=typeof audio&&null!==audio&&(audio.pause(),jsxc.notification.audio=null)},muteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Unmute")),external!==!0&&jsxc.options.set("muteNotification",!0)},unmuteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Mute")),external!==!0&&jsxc.options.set("muteNotification",!1)}},jsxc.options={app_name:"web applications",timeout:3e3,busyTimeout:15e3,otr:{enable:!0,ERROR_START_AKE:!1,debug:!1,SEND_WHITESPACE_TAG:!0,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,sid:null,rid:null,overwrite:!1,onlogin:null},priority:{online:0,chat:0,away:0,xa:0,dnd:0},formFound:null,loginForm:{enable:!0,form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit",attachIfFound:!0,ifFound:"attach",startMinimized:!1},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:null,saveSettinsPermanent:function(data,cb){cb(!0)},carbons:{enable:!1},getUsers:null,favicon:{enable:!0,bgColor:"#E59400",textColor:"#fff"},turnCredentialsPath:null,RTCPeerConfig:{ttl:3600,url:null,withCredentials:!1,iceServers:[{urls:"stun:stun.stunprotocol.org"}]},onlineHelp:"http://www.jsxc.org/manual.html",viewport:{getSize:function(){var w=$(window).width()-$("#jsxc_windowListSB").width(),h=$(window).height();return"shown"===jsxc.storage.getUserItem("roster")&&(w-=$("#jsxc_roster").outerWidth(!0)),{width:w,height:h}}},maxStorableSize:1e6},jsxc.otr={objects:{},dsaFallback:null,receiveMessage:function(d){var bid=d.bid;jsxc.otr.objects[bid].msgstate!==OTR.CONST.MSGSTATE_PLAINTEXT&&jsxc.otr.backup(bid),jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT||d.encrypted?jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.IN,msg:d.msg,encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp})},sendMessage:function(jid,msg,uid){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,uid)},create:function(bid){if(!jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.options.otr.priv){var ol=jsxc.storage.getUserItem("otrlist")||[];ol.indexOf(bid)<0&&(ol.push(bid),jsxc.storage.setUserItem("otrlist",ol)),jsxc.otr.objects[bid]=new OTR(jsxc.options.otr),jsxc.options.otr.SEND_WHITESPACE_TAG&&(jsxc.otr.objects[bid].SEND_WHITESPACE_TAG=!0),jsxc.options.otr.WHITESPACE_START_AKE&&(jsxc.otr.objects[bid].WHITESPACE_START_AKE=!0),jsxc.otr.objects[bid].on("status",function(status){var data=jsxc.storage.getUserItem("buddy",bid);if(null!==data){switch(status){case OTR.CONST.STATUS_SEND_QUERY:jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("trying_to_start_private_conversation")});break;case OTR.CONST.STATUS_AKE_SUCCESS:data.fingerprint=jsxc.otr.objects[bid].their_priv_pk.fingerprint(),data.msgstate=OTR.CONST.MSGSTATE_ENCRYPTED;var msg_state=jsxc.otr.objects[bid].trust?"Verified":"Unverified",msg=$.t(msg_state+"_private_conversation_started");jsxc.gui.window.postMessage({bid:bid,direction:"sys",msg:msg});break;case OTR.CONST.STATUS_END_OTR:data.fingerprint=null,jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT?(data.msgstate=OTR.CONST.MSGSTATE_PLAINTEXT,jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("private_conversation_aborted")})):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("your_buddy_closed_the_private_conversation_you_should_do_the_same")}));break;case OTR.CONST.STATUS_SMP_HANDLE:jsxc.keepBusyAlive()}jsxc.storage.setUserItem("buddy",bid,data),jsxc.gui.update(bid)}}),jsxc.otr.objects[bid].on("smp",function(type,data){switch(type){case"question":jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Authentication_request_received")}),jsxc.gui.window.smpRequest(bid,data),jsxc.storage.setUserItem("smp",bid,{data:data||null});break;case"trust":jsxc.otr.objects[bid].trust=data,jsxc.storage.updateUserItem("buddy",bid,"trust",data),jsxc.otr.backup(bid),jsxc.gui.update(bid),data?jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("conversation_is_now_verified")}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("authentication_failed")}),jsxc.storage.removeUserItem("smp",bid),jsxc.gui.dialog.close("smp");break;case"abort":jsxc.gui.window.hideOverlay(bid),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Authentication_aborted")});break;default:jsxc.debug("[OTR] sm callback: Unknown type: "+type)}}),jsxc.otr.objects[bid].on("ui",function(msg,encrypted,meta){jsxc.otr.receiveMessage({bid:bid,msg:msg,encrypted:encrypted===!0,stamp:meta.stamp,forwarded:meta.forwarded})}),jsxc.otr.objects[bid].on("io",function(msg,uid){var jid=jsxc.gui.window.get(bid).data("jid")||jsxc.otr.objects[bid].jid;jsxc.otr.objects[bid].jid=jid,jsxc.otr.sendMessage(jid,msg,uid)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:"[OTR] "+$.t(err)}),jsxc.error("[OTR] "+err)}),jsxc.otr.restore(bid)}},onSmpQuestion:function(bid,data){jsxc.gui.showVerification(bid),$("#jsxc_dialog select").prop("selectedIndex",data?2:3).change(),$("#jsxc_dialog > div:eq(0)").hide(),data?($("#jsxc_dialog > div:eq(2)").find("#jsxc_quest").val(data).prop("disabled",!0),$("#jsxc_dialog > div:eq(2)").find(".jsxc_submit").text($.t("Answer")),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("onsmp_explanation_question")),$("#jsxc_dialog > div:eq(2)").show()):($("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("onsmp_explanation_secret")),$("#jsxc_dialog > div:eq(3)").show()),$("#jsxc_dialog .jsxc_close").click(function(){jsxc.storage.removeUserItem("smp",bid),jsxc.master&&jsxc.otr.objects[bid].sm.abort()})},sendSmpReq:function(bid,sec,quest){jsxc.keepBusyAlive(),jsxc.otr.objects[bid].smpSecret(sec,quest||"")},toggleTransfer:function(bid){"function"==typeof OTR&&(0===jsxc.storage.getUserItem("buddy",bid).msgstate?jsxc.otr.goEncrypt(bid):jsxc.otr.goPlain(bid))},goEncrypt:function(bid){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.otr.objects[bid].sendQueryMsg():jsxc.storage.updateUserItem("buddy",bid,"transferReq",1)},goPlain:function(bid,cb){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&(jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid],cb),jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]),jsxc.otr.backup(bid)):jsxc.storage.updateUserItem("buddy",bid,"transferReq",0)},backup:function(bid){var o=jsxc.otr.objects[bid],r={};if(null!==o){var i,savekey=["jid","our_instance_tag","msgstate","authstate","fragment","their_y","their_old_y","their_keyid","their_instance_tag","our_dh","our_old_dh","our_keyid","sessKeys","storedMgs","oldMacKeys","trust","transmittedRS","ssid","receivedPlaintext","authstate","send_interval"];for(i=0;i<savekey.length;i++)r[savekey[i]]=JSON.stringify(o[savekey[i]]);null!==o.their_priv_pk&&(r.their_priv_pk=JSON.stringify(o.their_priv_pk.packPublic())),o.ake.otr_version&&""!==o.ake.otr_version&&(r.otr_version=JSON.stringify(o.ake.otr_version)),jsxc.storage.setUserItem("otr",bid,r)}},restore:function(bid){var o=jsxc.otr.objects[bid],d=jsxc.storage.getUserItem("otr",bid);if(null!==o||null!==d){var key;for(key in d)if(d.hasOwnProperty(key)){var val=JSON.parse(d[key]);"their_priv_pk"===key&&null!==val&&(val=DSA.parsePublic(val)),"otr_version"===key&&null!==val?o.ake.otr_version=val:o[key]=val}jsxc.otr.objects[bid]=o,1===o.msgstate&&null!==o.their_priv_pk&&o._smInit.call(jsxc.otr.objects[bid])}jsxc.otr.enable(bid)},createDSA:function(){if(!jsxc.options.otr.priv){if("function"!=typeof OTR)return jsxc.warn("OTR support disabled"),OTR={},void(OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2});if(null===jsxc.storage.getUserItem("key")){var msg=$.t("Creating_your_private_key_"),worker=null;if(Worker)try{worker=new Worker(jsxc.options.root+"/lib/otr/lib/dsa-webworker.js")}catch(err){jsxc.warn("Couldn't create web-worker.",err)}jsxc.otr.dsaFallback=null===worker,jsxc.otr.dsaFallback?(jsxc.xmpp.conn.pause(),jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started in fallback mode."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(worker.onmessage=function(e){var type=e.data.type,val=e.data.val;"debug"===type?jsxc.debug(val):"data"===type&&jsxc.otr.DSAready(DSA.parsePrivate(val))},jsxc.debug("DSA key creation started."),worker.postMessage({imports:[jsxc.options.root+"/lib/otr/vendor/salsa20.js",jsxc.options.root+"/lib/otr/vendor/bigint.js",jsxc.options.root+"/lib/otr/vendor/crypto.js",jsxc.options.root+"/lib/otr/vendor/eventemitter.js",jsxc.options.root+"/lib/otr/lib/const.js",jsxc.options.root+"/lib/otr/lib/helpers.js",jsxc.options.root+"/lib/otr/lib/dsa.js"],seed:BigInt.getSeed(),debug:!0}))}else jsxc.debug("DSA key loaded"),jsxc.options.otr.priv=DSA.parsePrivate(jsxc.storage.getUserItem("key")),jsxc.otr._createDSA()}},_createDSA:function(){jsxc.storage.setUserItem("priv_fingerprint",jsxc.options.otr.priv.fingerprint()),$.each(jsxc.storage.getUserItem("windowlist")||[],function(index,val){jsxc.otr.create(val)})},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback&&(jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close()),jsxc.otr._createDSA()},enable:function(bid){jsxc.gui.window.get(bid).find(".jsxc_otr").removeClass("jsxc_disabled")}},jsxc.storage={PREFIX:"jsxc",SEP:":",getPrefix:function(uk){var self=jsxc.storage;return uk&&!jsxc.bid&&console.trace("Unable to create user prefix"),self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==key&&(jsxc.storageNotConform>1&&null===jsxc.toSNC&&(jsxc.toSNC=window.setTimeout(function(){jsxc.storageNotConform=0,jsxc.storage.setItem("storageNotConform",0)},1e3)),jsxc.ls.push(JSON.stringify({key:key,value:value}))),"object"==typeof value&&(value=JSON.stringify(value,function(key,val){if(!(val instanceof jQuery))return val})),localStorage.setItem(jsxc.storage.getPrefix(uk)+key,value)},setUserItem:function(type,key,value){var self=jsxc.storage;return 2===arguments.length?(value=key,key=type,type=""):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.setItem(key,value,!0)},getItem:function(key,uk){key=jsxc.storage.getPrefix(uk)+key;var value=localStorage.getItem(key);try{return JSON.parse(value)}catch(e){return value}},getUserItem:function(type,key){var self=jsxc.storage;return 1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.getItem(key,!0)},removeItem:function(key,uk){jsxc.storageNotConform&&"rid"!==key&&jsxc.ls.push(JSON.stringify({key:jsxc.storage.prefix+key,value:""})),localStorage.removeItem(jsxc.storage.getPrefix(uk)+key)},removeUserItem:function(type,key){var self=jsxc.storage;1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeItem(key,!0)},updateItem:function(key,variable,value,uk){var data=jsxc.storage.getItem(key,uk)||{};"object"==typeof variable?$.each(variable,function(key,val){"undefined"==typeof data[key]&&jsxc.debug("Variable "+key+" doesn't exist in "+variable+". It was created."),data[key]=val}):("undefined"==typeof data[variable]&&jsxc.debug("Variable "+variable+" doesn't exist. It was created."),data[variable]=value),jsxc.storage.setItem(key,data,uk)},updateUserItem:function(type,key,variable,value){var self=jsxc.storage;return 4===arguments.length||3===arguments.length&&"object"==typeof variable?key=type+self.SEP+key:(value=variable,variable=key,key=type),jsxc.storage.updateItem(key,variable,value,!0)},ink:function(key,uk){jsxc.storage.setItem(key,Number(jsxc.storage.getItem(key,uk))+1,uk)},removeElement:function(key,name,uk){var item=jsxc.storage.getItem(key,uk);$.isArray(item)?item=$.grep(item,function(e){return e!==name}):"object"==typeof item&&null!==item&&delete item[name],jsxc.storage.setItem(key,item,uk)},removeUserElement:function(type,key,name){var self=jsxc.storage;return 2===arguments.length?(name=key,key=type):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeElement(key,name,!0)},onStorage:function(e){if(e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"rid"&&e.key){var re=new RegExp("^"+jsxc.storage.PREFIX+jsxc.storage.SEP+"(?:[^"+jsxc.storage.SEP+"]+@[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+")?(.*)","i"),key=e.key.replace(re,"$1");if(jsxc.storageNotConform>0&&jsxc.ls.length>0){var val=e.newValue;try{val=JSON.parse(val)}catch(err){}var index=$.inArray(JSON.stringify({key:key,value:val}),jsxc.ls);if(index>=0)return jsxc.storageNotConform>1&&(window.clearTimeout(jsxc.toSNC),
-jsxc.storageNotConform=1,jsxc.storage.setItem("storageNotConform",1)),void jsxc.ls.splice(index,1)}if(e.oldValue!==e.newValue){var n,o,bid=key.replace(new RegExp("[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+"(.*)","i"),"$1");if(jsxc.master&&"alive"===key)return jsxc.debug("Master request."),e.newValue&&e.newValue.match(/:master$/)?void jsxc.warn("Master request from master. Something went wrong... :-("):void jsxc.keepAlive();if(!jsxc.master&&("alive"===key||"alive_busy"===key))return jsxc.to=$.grep(jsxc.to,function(timeout){return window.clearTimeout(timeout),!1}),"undefined"==typeof e.newValue||null===e.newValue?void jsxc.xmpp.disconnected():(jsxc.to.push(window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60))),void(jsxc.role_allocation||jsxc.onSlave()));if(jsxc.master&&"sid"===key&&!e.newValue&&jsxc.xmpp.logout(!1),key.match(/^notices/)&&jsxc.notice.load(),key.match(/^presence/)&&jsxc.gui.changePresence(e.newValue,!0),key.match(/^options/)&&e.newValue&&(n=JSON.parse(e.newValue),"undefined"!=typeof n.muteNotification&&n.muteNotification?jsxc.notification.muteSound(!0):jsxc.notification.unmuteSound(!0)),key.match(/^hidden/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.isHidden()),key.match(/^focus/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.hasFocus()),key.match(new RegExp("^history"+jsxc.storage.SEP)))for(var uid,el,message,history=JSON.parse(e.newValue);history.length>0;)uid=history.pop(),message=new jsxc.Message(uid),el=message.getDOM(),0===el.length?(jsxc.master&&message.direction===jsxc.Message.OUT&&jsxc.xmpp.sendMessage(message.bid,message.msg,message._uid),jsxc.gui.window._postMessage(message,!0)):message.isReceived()&&el.addClass("jsxc_received");else{if(key.match(new RegExp("^window"+jsxc.storage.SEP)))return e.newValue?e.oldValue?(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),n.minimize!==o.minimize&&(n.minimize?jsxc.gui.window._hide(bid):jsxc.gui.window._show(bid)),jsxc.gui.window.setText(bid,n.text),void(n.unread!==o.unread&&(0===n.unread?jsxc.gui.readMsg(bid):jsxc.gui._unreadMsg(bid,n.unread)))):void jsxc.gui.window.open(bid):void jsxc.gui.window._close(bid);if(key.match(/^unreadMsg/)&&jsxc.gui.favicon&&jsxc.gui.favicon.badge(parseInt(e.newValue)||0),key.match(new RegExp("^smp"+jsxc.storage.SEP))){if(!e.newValue)return jsxc.gui.dialog.close("smp"),jsxc.gui.window.hideOverlay(bid),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.gui.window.smpRequest(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close("smp"),jsxc.gui.window.hideOverlay(bid),jsxc.otr.sendSmpReq(bid,n.sec,n.quest))}if(!jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))){if(!e.newValue)return void jsxc.gui.roster.purge(bid);if(0===jsxc.gui.roster.getItem(bid).length)return void jsxc.gui.roster.add(bid);n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),jsxc.gui.update(bid),o.status===n.status&&o.sub===n.sub||jsxc.gui.roster.reorder(bid)}jsxc.master&&key.match(new RegExp("^deletebuddy"+jsxc.storage.SEP))&&e.newValue&&(n=JSON.parse(e.newValue),jsxc.xmpp.removeBuddy(n.jid),jsxc.storage.removeUserItem(key)),jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),o.transferReq!==n.transferReq&&(jsxc.storage.updateUserItem("buddy",bid,"transferReq",-1),0===n.transferReq&&jsxc.otr.goPlain(bid),1===n.transferReq&&jsxc.otr.goEncrypt(bid)),o.name!==n.name&&jsxc.gui.roster._rename(bid,n.name)),"friendReq"===key&&(n=JSON.parse(e.newValue),jsxc.master&&n.approve>=0&&jsxc.xmpp.resFriendReq(n.jid,n.approve)),jsxc.master&&key.match(new RegExp("^add"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),jsxc.xmpp.addBuddy(n.username,n.alias)),"roster"===key&&jsxc.gui.roster.toggle(e.newValue),jsxc.master&&key.match(new RegExp("^vcard"+jsxc.storage.SEP))&&null!==e.newValue&&e.newValue.match(/^request:/)&&jsxc.xmpp.loadVcard(bid,function(stanza){jsxc.storage.setUserItem("vcard",bid,{state:"success",data:$("<div>").append(stanza).html()})},function(){jsxc.storage.setUserItem("vcard",bid,{state:"error"})}),jsxc.master||!key.match(new RegExp("^vcard"+jsxc.storage.SEP))||null===e.newValue||e.newValue.match(/^request:/)||(n=JSON.parse(e.newValue),"undefined"!=typeof n.state&&$(document).trigger("loaded.vcard.jsxc",n),jsxc.storage.removeUserItem("vcard",bid)),"_cmd"===key&&e.newValue&&(n=JSON.parse(e.newValue)||{},jsxc.storage.removeUserItem("_cmd"),n.cmd&&n.target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.debug("Execute tab cmd: "+n.cmd),jsxc.exec(n.cmd,n.params)))}}}},saveBuddy:function(bid,data){return jsxc.storage.getUserItem("buddy",bid)?(jsxc.storage.updateUserItem("buddy",bid,data),"updated"):(jsxc.storage.setUserItem("buddy",bid,$.extend({jid:"",name:"",status:0,sub:"none",msgstate:0,transferReq:-1,trust:!1,fingerprint:null,res:[],type:"chat"},data)),"created")}},jsxc.tab={CONST:{MASTER:"master",SLAVE:"slave"},exec:function(target,cmd,params){params=Array.prototype.slice.call(arguments,2),1===params.length&&$.isArray(params[0])&&(params=params[0]),target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.exec(cmd,params),jsxc.master)||jsxc.storage.setUserItem("_cmd",{target:target,cmd:cmd,params:params,rnd:Math.random()})},execMaster:function(cmd,params){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.MASTER),jsxc.tab.exec.apply(this,args)},execSlave:function(cmd,params){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.SLAVE),jsxc.tab.exec.apply(this,args)}},jsxc.webrtc={conn:null,localStream:null,remoteStream:null,last_caller:null,AUTO_ACCEPT:!1,reqVideoFeatures:["urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:apps:dtls:0"],reqFileFeatures:["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:file-transfer:3"],chatJids:{},init:function(){var self=jsxc.webrtc;if(self.conn=jsxc.xmpp.conn,!self.conn.jingle)return void jsxc.error("No jingle plugin found!");var manager=self.conn.jingle.manager;$(document).on("message.jsxc",self.onMessage),$(document).on("presence.jsxc",self.onPresence),$(document).on("mediaready.jingle",self.onMediaReady),$(document).on("mediafailure.jingle",self.onMediaFailure),manager.on("incoming",$.proxy(self.onIncoming,self)),manager.on("terminated",$.proxy(self.onTerminated,self)),manager.on("ringing",$.proxy(self.onCallRinging,self)),manager.on("receivedFile",$.proxy(self.onReceivedFile,self)),manager.on("sentFile",function(sess,metadata){jsxc.debug("sent "+metadata.hash)}),manager.on("peerStreamAdded",$.proxy(self.onRemoteStreamAdded,self)),manager.on("peerStreamRemoved",$.proxy(self.onRemoteStreamRemoved,self)),manager.on("log:*",function(level,msg){jsxc.debug("[JINGLE]["+level+"]",msg)}),self.conn.caps&&$(document).on("caps.strophe",self.onCaps);var url=jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath,peerConfig=jsxc.options.get("RTCPeerConfig");"string"==typeof url&&url.length>0?self.getTurnCrendentials(url):(jsxc.storage.getUserItem("iceValidity")&&(jsxc.storage.removeUserItem("iceValidity"),peerConfig.iceServers=jsxc.options.RTCPeerConfig.iceServers,jsxc.options.set("RTCPeerConfig",peerConfig)),self.conn.jingle.setICEServers(peerConfig.iceServers))},onConnected:function(){jsxc.storage.removeUserItem("iceValidity")},onDisconnected:function(){var self=jsxc.webrtc;$(document).off("message.jsxc",self.onMessage),$(document).off("presence.jsxc",self.onPresence),$(document).off("mediaready.jingle",self.onMediaReady),$(document).off("mediafailure.jingle",self.onMediaFailure),$(document).off("caps.strophe",self.onCaps)},getTurnCrendentials:function(url){var self=jsxc.webrtc;url=url||jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath;var ttl=(jsxc.storage.getUserItem("iceValidity")||0)-(new Date).getTime();return jsxc.storage.getUserItem("iceConfig")&&(jsxc.storage.removeUserItem("iceConfig"),ttl=-1),ttl>0?(self.conn.jingle.setICEServers(jsxc.options.get("RTCPeerConfig").iceServers),void window.setTimeout(jsxc.webrtc.getTurnCrendentials,ttl+500)):void $.ajax(url,{async:!0,xhrFields:{withCredentials:jsxc.options.get("RTCPeerConfig").withCredentials},success:function(data){var ttl=data.ttl||3600,iceServers=data.iceServers;if(!iceServers&&data.url&&(jsxc.warn("Received RTCPeer configuration is deprecated. Use now RTCPeerConfig.url."),iceServers=[{urls:data.url}],data.username&&(iceServers[0].username=data.username),data.credential&&(iceServers[0].credential=data.credential)),iceServers&&iceServers.length>0){var url=iceServers[0].url&&iceServers[0].url.length>0,urls=iceServers[0].urls&&iceServers[0].urls.length>0;if(urls||url){jsxc.debug("ice servers received");var peerConfig=jsxc.options.get("RTCPeerConfig");peerConfig.iceServers=iceServers,jsxc.options.set("RTCPeerConfig",peerConfig),self.conn.jingle.setICEServers(iceServers),jsxc.storage.setUserItem("iceValidity",(new Date).getTime()+1e3*ttl)}else jsxc.warn("No valid url found in first ice object.")}},dataType:"json"})},getCapableRes:function(jid,features){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];if(!features)return res;"string"==typeof features&&(features=[features]);var available=[];return $.each(res,function(i,r){self.conn.caps.hasFeatureByJid(bid+"/"+r,features)&&available.push(r)}),available},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_tools .jsxc_settings").after(div),self.updateIcon(win.data("bid"))}},updateIcon:function(bid){jsxc.debug("Update icon",bid);var self=jsxc.webrtc;if(bid!==jsxc.jidToBid(self.conn.jid)){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),ls=jsxc.storage.getUserItem("buddy",bid);if("string"!=typeof jid){if(!ls||"string"!=typeof ls.jid)return void jsxc.debug("[webrtc] Could not update icon, because could not find jid for "+bid);jid=ls.jid}var res=Strophe.getResourceFromJid(jid),el=win.find(".jsxc_video"),capableRes=self.getCapableRes(jid,self.reqVideoFeatures),targetRes=res;null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){if(capableRes.indexOf(val)>-1)return targetRes=val,!1}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){self.startCall(jid)}),el.removeClass("jsxc_disabled"),el.attr("title",$.t("Start_video_call"))):(el.addClass("jsxc_disabled"),el.attr("title",$.t("Video_call_not_possible")));var fileCapableRes=self.getCapableRes(jid,self.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];fileCapableRes.indexOf(res)>-1||null===res&&1===fileCapableRes.length&&1===resources.length?win.find(".jsxc_sendFile").removeClass("jsxc_disabled"):win.find(".jsxc_sendFile").addClass("jsxc_disabled")}},onMessage:function(e,from){var self=jsxc.webrtc,bid=jsxc.jidToBid(from);jsxc.debug("webrtc.onmessage",from),self.chatJids[bid]!==from&&(self.updateIcon(bid),self.chatJids[bid]=from)},onPresence:function(ev,jid,status,presence){var self=jsxc.webrtc;0===$(presence).find('c[xmlns="'+Strophe.NS.CAPS+'"]').length&&(jsxc.debug("webrtc.onpresence",jid),self.updateIcon(jsxc.jidToBid(jid)))},setStatus:function(txt,d){var status=$(".jsxc_webrtc .jsxc_status"),duration="undefined"==typeof d||null===d?4e3:d;if(jsxc.debug("[Webrtc]",txt),status.html()&&(txt=status.html()+"<br />"+txt),status.html(txt),status.css({"margin-left":"-"+status.width()/2+"px",opacity:0,display:"block"}),status.stop().animate({opacity:1}),clearTimeout(status.data("timeout")),0!==duration){var to=setTimeout(function(){status.stop().animate({opacity:0},function(){status.html("")})},duration);status.data("timeout",to)}},onCaps:function(event,jid){var self=jsxc.webrtc;jsxc.gui.roster.loaded?self.updateIcon(jsxc.jidToBid(jid)):$(document).on("cloaded.roster.jsxc",function(){self.updateIcon(jsxc.jidToBid(jid))})},onMediaReady:function(event,stream){jsxc.debug("media ready");var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream;var i,dialog=jsxc.gui.showVideoWindow(self.last_caller),audioTracks=stream.getAudioTracks(),videoTracks=stream.getVideoTracks();for(i=0;i<audioTracks.length;i++)self.setStatus(audioTracks.length>0?$.t("Use_local_audio_device"):$.t("No_local_audio_device")),jsxc.debug('using audio device "'+audioTracks[i].label+'"');for(i=0;i<videoTracks.length;i++)self.setStatus(videoTracks.length>0?$.t("Use_local_video_device"):$.t("No_local_video_device")),jsxc.debug('using video device "'+videoTracks[i].label+'"'),dialog.find(".jsxc_localvideo").show();$(document).trigger("finish.mediaready.jsxc")},onMediaFailure:function(ev,err){var self=jsxc.webrtc;err=err||{name:"Undefined"},self.setStatus("media failure"),jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jsxc.webrtc.last_caller),direction:jsxc.Message.SYS,msg:$.t("Media_failure")+": "+$.t(err.name)+" ("+err.name+")."}),jsxc.debug("media failure: "+err.name)},onIncoming:function(session){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;"FileTransferSession"===type?self.onIncomingFileTransfer(session):"MediaSession"===type&&self.onIncomingCall(session)},onIncomingFileTransfer:function(session){jsxc.debug("incoming file transfer from "+session.peerID);var buddylist=jsxc.storage.getUserItem("buddylist")||[],bid=jsxc.jidToBid(session.peerID);if(buddylist.indexOf(bid)>-1){session.accept();var message=jsxc.gui.window.postMessage({_uid:session.sid+":msg",bid:bid,direction:jsxc.Message.IN,attachment:{name:session.receiver.metadata.name,type:session.receiver.metadata.type||"application/octet-stream"}});session.receiver.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size)})}},onIncomingCall:function(session){function acceptCall(){$(document).trigger("accept.call.jsxc"),jsxc.switchEvents({"mediaready.jingle":function(event,stream){self.setStatus("Accept call"),session.addStream(stream),session.accept()},"mediafailure.jingle":function(){session.decline()}}),self.reqUserMedia()}jsxc.debug("incoming call from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Incoming_call")}),jsxc.notification.notify($.t("Incoming_call"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void acceptCall();var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(acceptCall),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},onTerminated:function(session,reason){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;"MediaSession"===type&&self.onCallTerminated(session,reason)},onCallTerminated:function(session,reason){this.setStatus("call terminated "+session.peerID+(reason&&reason.condition?reason.condition:""));var bid=jsxc.jidToBid(session.peerID);if(this.localStream)if("function"==typeof this.localStream.stop)this.localStream.stop();else{var tracks=this.localStream.getTracks();tracks.forEach(function(track){track.stop()})}$(".jsxc_videoContainer").length&&($(".jsxc_remotevideo")[0].src="",$(".jsxc_localvideo")[0].src=""),this.conn.jingle.localStream=null,this.localStream=null,this.remoteStream=null,jsxc.gui.closeVideoWindow(),$(document).off("error.jingle"),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Call_terminated")+(reason&&reason.condition?": "+$.t("jingle_reason_"+reason.condition):"")+"."})},onCallRinging:function(){this.setStatus("ringing...",0)},onRemoteStreamAdded:function(session,stream){this.setStatus("Remote stream for session "+session.sid+" added."),this.remoteStream=stream;var isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;this.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),this.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(this.attachMediaStream($("#jsxc_webrtc .jsxc_remotevideo"),stream),$("#jsxc_webrtc .jsxc_"+(isVideoDevice?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"))},attachMediaStream:function(element,stream){var self=jsxc.webrtc;self.conn.jingle.RTC.attachMediaStream(element instanceof jQuery?element.get(0):element,stream)},onRemoteStreamRemoved:function(session){this.setStatus("Remote stream for "+session.jid+" removed.")},onIceConnectionStateChanged:function(session,state){var self=jsxc.webrtc;jsxc.debug("connection state for "+session.sid,state),"connected"===state?($("#jsxc_webrtc .jsxc_deviceAvailable").show(),$("#jsxc_webrtc .bubblingG").hide()):"failed"===state?(jsxc.gui.window.postMessage({bid:jsxc.jidToBid(session.peerID),direction:jsxc.Message.SYS,msg:$.t("ICE_connection_failure")}),session.end("failed-transport"),$(document).trigger("callterminated.jingle")):"interrupted"===state&&self.setStatus($.t("Connection_interrupted"))},startCall:function(jid,um){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"finish.mediaready.jsxc":function(){self.setStatus("Initiate call"),jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jid),direction:jsxc.Message.SYS,msg:$.t("Call_started")}),$(document).one("error.jingle",function(e,sid,error){error&&"offer"!==error.source||setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500)});var session=self.conn.jingle.initiate(jid);session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self))},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},hangUp:function(reason,text){jsxc.webrtc.conn.jingle.manager&&!$.isEmptyObject(jsxc.webrtc.conn.jingle.manager.peers)?jsxc.webrtc.conn.jingle.terminate(null,reason,text):jsxc.gui.closeVideoWindow(),$(document).trigger("callterminated.jingle")},reqUserMedia:function(um){return this.localStream?void $(document).trigger("mediaready.jingle",[this.localStream]):(um=um||["video","audio"],jsxc.gui.dialog.open(jsxc.gui.template.get("allowMediaAccess"),{noClose:!0}),this.setStatus("please allow access to microphone and camera"),void("undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(function(sourceInfo){var availableDevices=sourceInfo.map(function(el){return el.kind});um=um.filter(function(el){return availableDevices.indexOf(el)!==-1}),jsxc.webrtc.getUserMedia(um)}):jsxc.webrtc.getUserMedia(um)))},getUserMedia:function(um){var self=jsxc.webrtc,constraints={};um.indexOf("video")>-1&&(constraints.video=!0),um.indexOf("audio")>-1&&(constraints.audio=!0);try{self.conn.jingle.RTC.getUserMedia(constraints,function(stream){jsxc.debug("onUserMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])},function(error){jsxc.warn("Failed to get access to local media. Error ",error),$(document).trigger("mediafailure.jingle",[error])})}catch(e){jsxc.error("GUM failed: ",e),$(document).trigger("mediafailure.jingle")}},snapshot:function(video){video||jsxc.debug("Missing video element"),$(".jsxc_snapshotbar p").remove();var canvas=$("<canvas/>").css("display","none").appendTo("body").attr({width:video.width(),height:video.height()}).get(0),ctx=canvas.getContext("2d");ctx.drawImage(video[0],0,0);var img=$("<img/>"),url=null;try{url=canvas.toDataURL("image/jpeg")}catch(err){return void jsxc.warn("Error",err)}img[0].src=url;var link=$("<a/>").attr({target:"_blank",href:url});link.append(img),$(".jsxc_snapshotbar").append(link),canvas.remove()},sendFile:function(jid,file){var self=jsxc.webrtc,sess=self.conn.jingle.manager.createFileTransferSession(jid);return sess.on("change:sessionState",function(){jsxc.debug("Session state",sess.state)}),sess.on("change:connectionState",function(){jsxc.debug("Connection state",sess.connectionState)}),sess.start(file),sess},onReceivedFile:function(sess,file,metadata){if(jsxc.debug("file received",metadata),FileReader){var type,reader=new FileReader;if(metadata.type)type=metadata.type;else{var ext=metadata.name.replace(/.+\.([a-z0-9]+)$/i,"$1").toLowerCase();switch(ext){case"jpg":case"jpeg":case"png":case"gif":case"svg":type="image/"+ext.replace(/^jpg$/,"jpeg");break;case"mp3":case"wav":type="audio/"+ext;break;case"pdf":type="application/pdf";break;case"txt":type="text/"+ext;break;default:type="application/octet-stream"}}reader.onload=function(ev){jsxc.gui.window.postMessage({_uid:sess.sid+":msg",bid:jsxc.jidToBid(sess.peerID),direction:jsxc.Message.IN,attachment:{name:metadata.name,type:type,size:metadata.size,data:ev.target.result}})},file.type||(file=new File([file],metadata.name,{type:type})),reader.readAsDataURL(file)}}},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;jsxc.gui.dialog.close(),$("body").append(jsxc.gui.template.get("videoWindow")),$("#jsxc_webrtc .jsxc_localvideo")[0].muted=!0,$("#jsxc_webrtc .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_webrtc .jsxc_remotevideo"),lv=$("#jsxc_webrtc .jsxc_localvideo");lv.draggable({containment:"parent"}),self.localStream&&self.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_webrtc").width(),w_remote=rv.width();if(w_remote>w_dialog){var scale=w_dialog/w_remote,new_h=rv.height()*scale,new_w=w_dialog,vc=$("#jsxc_webrtc .jsxc_videoContainer");rv.height(new_h),rv.width(new_w),vc.height(new_h),vc.width(new_w),lv.height(lv.height()*scale),lv.width(lv.width()*scale)}self.remoteStream&&(self.attachMediaStream(rv,self.remoteStream),$("#jsxc_webrtc .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var win=jsxc.gui.window.open(jsxc.jidToBid(jid));return win.find(".slimScrollDiv").resizable("disable"),jsxc.gui.window.resize(win,{size:{width:$("#jsxc_webrtc .jsxc_chatarea").width(),height:$("#jsxc_webrtc .jsxc_chatarea").height()}},!0),$("#jsxc_webrtc .jsxc_chatarea ul").append(win.detach()),$("#jsxc_webrtc .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),$("#jsxc_webrtc .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_webrtc .jsxc_videoContainer").fullscreen())}),$("#jsxc_webrtc .jsxc_videoContainer").click(function(){$("#jsxc_webrtc .jsxc_controlbar").toggleClass("jsxc_visible")}),$("#jsxc_webrtc")},jsxc.gui.closeVideoWindow=function(){var win=$("#jsxc_webrtc .jsxc_chatarea > ul > li");$("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),jsxc.gui.window.resize(win),$("#jsxc_webrtc").remove()},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(document).ready(function(){$(document).on("init.window.jsxc",jsxc.webrtc.initWindow),$(document).on("attached.jsxc",jsxc.webrtc.init),$(document).on("disconnected.jsxc",jsxc.webrtc.onDisconnected),$(document).on("connected.jsxc",jsxc.webrtc.onConnected)}),jsxc.xmpp.bookmarks={},jsxc.xmpp.bookmarks.remote=function(){return jsxc.xmpp.conn.caps&&jsxc.xmpp.hasFeatureByJid(jsxc.xmpp.conn.domain,Strophe.NS.PUBSUB+"#publish")},jsxc.xmpp.bookmarks.load=function(){var caps=jsxc.xmpp.conn.caps,ver=caps._jidVerIndex[jsxc.xmpp.conn.domain];ver&&caps._knownCapabilities[ver]||$(document).on("caps.strophe",function(ev,from){from===jsxc.xmpp.conn.domain&&(jsxc.xmpp.bookmarks.load(),$(document).off(ev))}),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.loadFromRemote():jsxc.xmpp.bookmarks.loadFromLocal()},jsxc.xmpp.bookmarks.loadFromLocal=function(){jsxc.debug("Load bookmarks from local storage");var bookmarks=jsxc.storage.getUserItem("bookmarks")||[],bl=jsxc.storage.getUserItem("buddylist")||[];$.each(bookmarks,function(){var room=this,roomdata=jsxc.storage.getUserItem("buddy",room)||{};bl.push(room),jsxc.gui.roster.add(room),roomdata.autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,roomdata.nickname))}),jsxc.storage.setUserItem("buddylist",bl)},jsxc.xmpp.bookmarks.loadFromRemote=function(){jsxc.debug("Load bookmarks from pubsub");var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks.get(function(stanza){var bl=jsxc.storage.getUserItem("buddylist");$(stanza).find("conference").each(function(){var conference=$(this),room=conference.attr("jid"),roomName=conference.attr("name")||room,autojoin=conference.attr("autojoin")||!1,nickname=conference.find("nick").text();nickname=nickname.length>0?nickname:Strophe.getNodeFromJid(jsxc.xmpp.conn.jid),"true"===autojoin?autojoin=!0:"false"===autojoin&&(autojoin=!1);var data=jsxc.storage.getUserItem("buddy",room)||{};data=$.extend(data,{jid:room,name:roomName,sub:"both",status:0,type:"groupchat",state:jsxc.muc.CONST.ROOMSTATE.INIT,subject:null,bookmarked:!0,autojoin:autojoin,nickname:nickname}),jsxc.storage.setUserItem("buddy",room,data),bl.push(room),jsxc.gui.roster.add(room),autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,nickname))}),jsxc.storage.setUserItem("buddylist",bl)},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);"item-not-found"===err.reasons[0]?(jsxc.debug("create bookmark node"),bookmarks.createBookmarksNode()):jsxc.debug("[XMPP] Could not create bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.parseErr=function(stanza){var error=$(stanza).find("error"),type=error.attr("type"),reasons=error.children().map(function(){return $(this).prop("tagName")});return{type:type,reasons:reasons}},jsxc.xmpp.bookmarks.delete=function(room,soft){soft||jsxc.gui.roster.purge(room),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.deleteFromRemote(room,soft):jsxc.xmpp.bookmarks.deleteFromLocal(room,soft)},jsxc.xmpp.bookmarks.deleteFromRemote=function(room,soft){var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks.delete(room,function(){jsxc.debug("Bookmark deleted "+room),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);jsxc.debug("[XMPP] Could not delete bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.deleteFromLocal=function(room,soft){var bookmarks=jsxc.storage.getUserItem("bookmarks"),index=bookmarks.indexOf(room);index>-1&&bookmarks.splice(index,1),jsxc.storage.setUserItem("bookmarks",bookmarks),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},jsxc.xmpp.bookmarks.add=function(room,alias,nick,autojoin){jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.addToRemote(room,alias,nick,autojoin):jsxc.xmpp.bookmarks.addToLocal(room,alias,nick,autojoin)},jsxc.xmpp.bookmarks.addToRemote=function(room,alias,nick,autojoin){var bookmarks=jsxc.xmpp.conn.bookmarks,success=function(){jsxc.debug("New bookmark created",room),jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick)},error=function(){jsxc.warn("Could not create bookmark",room)};bookmarks.add(room,alias,nick,autojoin,success,error)},jsxc.xmpp.bookmarks.addToLocal=function(room,alias,nick,autojoin){jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick);var bookmarks=jsxc.storage.getUserItem("bookmarks")||[];bookmarks.indexOf(room)<0&&(bookmarks.push(room),jsxc.storage.setUserItem("bookmarks",bookmarks))},jsxc.xmpp.bookmarks.showDialog=function(room){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("bookmarkDialog")),data=jsxc.storage.getUserItem("buddy",room);$("#jsxc_room").val(room),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_nickname").prop("disabled",!1),$("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_nickname").prop("disabled",!0),$("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_bookmark").change(),dialog.find("form").submit(function(ev){ev.preventDefault();var bookmarked=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked"),nickname=$("#jsxc_nickname").val();return bookmarked?jsxc.xmpp.bookmarks.add(room,data.name,nickname,autojoin):data.bookmarked&&jsxc.xmpp.bookmarks.delete(room,!0),jsxc.gui.dialog.close(),!1})},jsxc.gui.template.aboutDialog='<h3>JavaScript XMPP Chat</h3>\n<p>\n <b>Version: </b><span data-var="version" />\n <br /> <a href="http://jsxc.org/" target="_blank">www.jsxc.org</a>\n</p>\n<p>\n <i>Released under the MIT license</i>\n</p>\n<p>\n Real-time chat app for <span data-var="app_name" /> and more.\n <br /> Requires an external <a href="https://xmpp.org/xmpp-software/servers/" target="_blank">XMPP server</a>.\n</p>\n<p class="jsxc_credits">\n <b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>,\n <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a>,\n <a href="http://www.picol.org/">Picol (Fullscreen icon)</a>, <a href="http://www.jabber.org/">Jabber Software Foundation (Jabber lightbulb logo)</a>\n</p>\n<p class="jsxc_libraries">\n <b>Libraries: </b>\n <a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/bookmarks">strophe.js/bookmarks</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/dataforms">strophe.js/x</a> (MIT), <a href="https://github.com/sualko/strophe.jinglejs">strophe.jinglejs</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT), <a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup</a> (MIT), <a href="https://github.com/ejci/favico.js">favico.js</a> (MIT), <a href="http://emojione.com">emoji one</a> (CC-BY 4.0)\n</p>\n\n<button class="btn btn-default pull-right jsxc_debuglog">Show debug log</button>\n',jsxc.gui.template.alert='<h3 data-i18n="Alert"></h3>\n<div class="alert alert-info">\n <strong data-i18n="Info"></strong> <span data-var="msg" />\n</div>\n',jsxc.gui.template.allowMediaAccess='<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>\n',jsxc.gui.template.approveDialog='<h3 data-i18n="Subscription_request"></h3>\n<p>\n <span data-i18n="You_have_a_request_from"></span> <b class="jsxc_their_jid"></b>.\n</p>\n\n<button class="btn btn-primary jsxc_approve pull-right" data-i18n="Approve"></button>\n<button class="btn btn-default jsxc_deny pull-right" data-i18n="Deny"></button>\n',
-jsxc.gui.template.authFailDialog='<h3 data-i18n="Login_failed"></h3>\n<p data-i18n="Sorry_we_cant_authentikate_"></p>\n\n<button class="btn btn-primary jsxc_retry pull-right" data-i18n="Continue_without_chat"></button>\n<button class="btn btn-default jsxc_cancel pull-right" data-i18n="Retry"></button>\n',jsxc.gui.template.authenticationDialog='<h3>Verification</h3>\n<p data-i18n="Authenticating_a_buddy_helps_"></p>\n<div>\n <p data-i18n="[html]How_do_you_want_to_authenticate_your_buddy"></p>\n\n <div class="btn-group" role="group">\n <button class="btn btn-default" data-i18n="Manual"></button>\n <button class="btn btn-default" data-i18n="Question"></button>\n <button class="btn btn-default" data-i18n="Secret"></button>\n </div>\n</div>\n<hr />\n<div class="jsxc_hidden">\n <p data-i18n="To_verify_the_fingerprint_" class="jsxc_explanation"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="my_priv_fingerprint"/></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="bid_priv_fingerprint"/></span>\n </p>\n <div class="jsxc_right">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compared"></button>\n </div>\n</div>\n<div class="form-horizontal jsxc_hidden">\n <p data-i18n="To_authenticate_using_a_question_" class="jsxc_explanation"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_quest" data-i18n="Question"></label>\n <div class="col-sm-8">\n <input type="text" name="quest" id="jsxc_quest" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret2" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret2" id="jsxc_secret2" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Ask"></button>\n </div>\n </div>\n</div>\n<div class="form-horizontal jsxc_hidden">\n <p class="jsxc_explanation" data-i18n="To_authenticate_pick_a_secret_"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret" id="jsxc_secret" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compare"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.bookmarkDialog='<h3 data-i18n="Edit_bookmark"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" id="jsxc_room" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" disabled="disabled" required="required" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button type="button" class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button type="submit" class="btn btn-primary jsxc_submit" data-i18n="Save"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.chatWindow='<li class="jsxc_windowItem">\n <div class="jsxc_window">\n <div class="jsxc_bar">\n <div class="jsxc_avatar"></div>\n <div class="jsxc_tools">\n <div class="jsxc_settings">\n <div class="jsxc_more"></div>\n <div class="jsxc_inner jsxc_menu">\n <ul>\n <li>\n <a class="jsxc_verification" href="#">\n <span data-i18n="Authentication"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_clear" href="#">\n <span data-i18n="clear_history"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_sendFile" href="#">\n <span data-i18n="Send_file"></span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div class="jsxc_close">×</div>\n </div>\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n </div>\n <div class="jsxc_fade">\n <div class="jsxc_overlay">\n <div>\n <div class="jsxc_body" />\n <div class="jsxc_close" />\n </div>\n </div>\n <div class="jsxc_textarea" />\n <div class="jsxc_emoticons">\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_clear"></li>\n </ul>\n </div>\n </div>\n <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n <input type="text" class="jsxc_textinput" data-i18n="[placeholder]Message" />\n </div>\n </div>\n</li>\n',jsxc.gui.template.confirmDialog='<p data-var="msg"></p>\n\n<button class="btn btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default jsxc_dismiss jsxc_close pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.contactDialog='<h3 data-i18n="Add_buddy"></h3>\n<p class=".jsxc_explanation" data-i18n="Type_in_the_full_username_"></p>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" list="jsxc_userlist" pattern="^[^\\x22&\'\\\\/:<>@\\s]+(@[.\\-_\\w]+)?" required="required" />\n </div>\n </div>\n <datalist id="jsxc_userlist"></datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_alias" data-i18n="Alias"></label>\n <div class="col-sm-8">\n <input type="text" name="alias" id="jsxc_alias" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" type="button" data-i18n="Close"></button>\n <button class="btn btn-primary" type="submit" data-i18n="Add"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.fingerprintsDialog='<div>\n <p class="jsxc_maxWidth" data-i18n="A_fingerprint_"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase" data-var="my_priv_fingerprint"></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase" data-var="bid_priv_fingerprint"></span>\n </p>\n</div>\n',jsxc.gui.template.incomingCall='<h3 data-i18n="Incoming_call"></h3>\n<p>\n <span data-i18n="Do_you_want_to_accept_the_call_from"></span> <span data-var="bid_name" />?\n</p>\n\n<button class="btn btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n<button class="btn btn-default jsxc_reject pull-right" data-i18n="Reject"></button>\n',jsxc.gui.template.joinChat='<h3 data-i18n="Join_chat"></h3>\n<p class=".jsxc_explanation" data-i18n="muc_explanation"></p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_server" data-i18n="Server"></label>\n <div class="col-sm-8">\n <input type="text" name="server" id="jsxc_server" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" name="room" id="jsxc_room" class="form-control" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" />\n </div>\n </div>\n <p class="jsxc_inputinfo jsxc_waiting jsxc_room" data-i18n="Rooms_are_loaded"></p>\n <datalist id="jsxc_roomlist">\n <p>\n <label for="jsxc_roomlist_select"></label>\n <select id="jsxc_roomlist_select">\n <option></option>\n <option>workaround</option>\n </select>\n </p>\n </datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="text" name="password" id="jsxc_password" class="form-control" />\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="jsxc_msg"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <span class="jsxc_warning"></span>\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_continue" data-i18n="Continue"></button>\n <button class="btn btn-success jsxc_join" data-i18n="Join"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.loginBox='<h3 data-i18n="Login"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" required="required" data-var="my_node" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="password" name="password" required="required" class="form-control" id="jsxc_password" />\n </div>\n </div>\n <div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-9">\n <button type="reset" class="btn btn-default jsxc_close" name="clear" data-i18n="Cancel" />\n <button type="submit" class="btn btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect" />\n </div>\n </div>\n</form>\n',jsxc.gui.template.pleaseAccept='<p data-i18n="Please_accept_"></p>\n',jsxc.gui.template.removeDialog='<h3 data-i18n="Remove_buddy"></h3>\n<p class="jsxc_maxWidth" data-i18n="[html]You_are_about_to_remove_"></p>\n\n<button class="btn btn-primary jsxc_remove pull-right" data-i18n="Remove"></button>\n<button class="btn btn-default jsxc_cancel jsxc_close pull-right" data-i18n="Cancel"></button>\n',jsxc.gui.template.roster='<div id="jsxc_roster">\n <ul id="jsxc_buddylist"></ul>\n <div class="jsxc_bottom jsxc_presence jsxc_rosteritem" data-bid="own">\n <div id="jsxc_avatar" class="jsxc_avatar" />\n <div id="jsxc_menu">\n <span></span>\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_settings jsxc_settingsicon" data-i18n="Settings"></li>\n <li class="jsxc_muteNotification" data-i18n="Mute"></li>\n <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li>\n <li class="jsxc_addBuddy jsxc_contacticon" data-i18n="Add_buddy"></li>\n <li class="jsxc_onlineHelp jsxc_helpicon" data-i18n="Online_help"></li>\n <li class="jsxc_about" data-i18n="About"></li>\n </ul>\n </div>\n </div>\n <div id="jsxc_notice">\n <span></span>\n <div class="jsxc_inner">\n <ul></ul>\n </div>\n </div>\n <div id="jsxc_presence">\n <span data-i18n="Offline">Offline</span>\n <div class="jsxc_inner">\n <ul>\n <li data-pres="online" class="jsxc_online" data-i18n="Online"></li>\n <li data-pres="chat" class="jsxc_chat" data-i18n="Chatty"></li>\n <li data-pres="away" class="jsxc_away" data-i18n="Away"></li>\n <li data-pres="xa" class="jsxc_xa" data-i18n="Extended_away"></li>\n <li data-pres="dnd" class="jsxc_dnd" data-i18n="dnd"></li>\n <li data-pres="offline" class="jsxc_offline" data-i18n="Offline"></li>\n </ul>\n </div>\n </div>\n </div>\n <div id="jsxc_toggleRoster"></div>\n</div>\n',jsxc.gui.template.rosterBuddy='<li class="jsxc_rosteritem">\n <div class="jsxc_avatar"></div>\n <div class="jsxc_more" />\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n <div class="jsxc_menu">\n <ul>\n <li><a class="jsxc_rename" href="#"><span class="jsxc_icon jsxc_editicon"></span><span data-i18n="rename_buddy"></span></a></li>\n <li><a class="jsxc_vcard" href=""><span class="jsxc_icon jsxc_infoicon"></span><span data-i18n="get_info"></span></a></li>\n <li><a class="jsxc_delete" href=""><span class="jsxc_icon jsxc_deleteicon"></span><span data-i18n="delete_buddy"></span></a></li>\n </ul>\n </div>\n</li>\n',jsxc.gui.template.selectionDialog='<h3></h3>\n<p></p>\n\n<button class="btn btn-primary pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.settings='<form class="form-horizontal col-sm-6">\n <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset">\n <h3 data-i18n="Login_options"></h3>\n <p data-i18n="setting-explanation-xmpp"></p>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-url" data-i18n="BOSH_url"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-url" class="form-control" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-username" data-i18n="Username"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-username" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-domain" data-i18n="Domain"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-domain" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-resource" data-i18n="Resource"></label>\n <div class="col-sm-6">\n <input class="form-control" type="text" id="xmpp-resource" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6">\n <fieldset class="jsxc_fieldsetPriority jsxc_fieldset">\n <h3 data-i18n="Priority"></h3>\n <p data-i18n="setting-explanation-priority"></p>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-online" data-i18n="Online"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-online" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-chat" data-i18n="Chatty"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-chat" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-away" data-i18n="Away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-away" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-xa" data-i18n="Extended_away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-xa" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-dnd" data-i18n="dnd"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-dnd" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6">\n <fieldset class="jsxc_fieldsetLoginForm jsxc_fieldset">\n <h3 data-i18n="On_login"></h3>\n <p data-i18n="setting-explanation-login"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="loginForm-enable"><span data-i18n="On_login"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6" data-onsubmit="xmpp.carbons.refresh">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Carbon_copy"></h3>\n <p data-i18n="setting-explanation-carbon"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="carbons-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n',jsxc.gui.template.vCard='<h3>\n <span data-i18n="Info_about"></span> <span data-var="bid_name"></span>\n</h3>\n<ul class="jsxc_vCard"></ul>\n<p>\n <img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /> <span data-i18n="Please_wait"></span>...\n</p>\n',jsxc.gui.template.videoWindow='<div id="jsxc_webrtc">\n <div class="jsxc_chatarea">\n <ul></ul>\n </div>\n <div class="jsxc_videoContainer">\n <video class="jsxc_localvideo" autoplay></video>\n <video class="jsxc_remotevideo" autoplay></video>\n <div class="jsxc_status"></div>\n <div class="bubblingG">\n <span id="bubblingG_1"> </span> <span id="bubblingG_2"> </span> <span id="bubblingG_3"> </span>\n </div>\n <div class="jsxc_noRemoteVideo">\n <div>\n <div></div>\n <p data-i18n="No_video_signal"></p>\n <div></div>\n </div>\n </div>\n <div class="jsxc_controlbar jsxc_visible">\n <div>\n <div class="jsxc_hangUp jsxc_videoControl" />\n <div class="jsxc_fullscreen jsxc_videoControl" />\n </div>\n </div>\n </div>\n <div class="jsxc_multi">\n <div class="jsxc_snapshotbar">\n <p>No pictures yet!</p>\n </div>\n <!--<div class="jsxc_chatarea">\n <ul></ul>\n </div>-->\n <div class="jsxc_infobar"></div>\n </div>\n</div>\n',jsxc.gui.template.waitAlert='<h3 data-var="msg"></h3>\n\n<div class="progress">\n <div class="progress-bar progress-bar-striped active" data-i18n="Please_wait">\n </div>\n</div>\n',jsxc.gui.template.windowList='<div id="jsxc_windowList">\n <ul></ul>\n</div>\n<div id="jsxc_windowListSB">\n <div class="jsxc_scrollLeft jsxc_disabled">&lt;</div>\n <div class="jsxc_scrollRight jsxc_disabled">&gt;</div>\n</div>\n'}(jQuery);
+var jsxc=null,RTC=null,RTCPeerconnection=null;!function($){"use strict";jsxc={version:"3.1.0-beta",master:!1,role_allocation:!1,to:[],toBusy:null,toNotification:null,toNotificationDelay:500,keepaliveInterval:null,reconnect:!1,restoreCompleted:!1,triggeredFromBox:!1,triggeredFromElement:!1,triggeredFromLogout:!1,ls:[],storageNotConform:null,toSNC:null,bid:null,currentState:null,currentUIState:null,CONST:{NOTIFICATION_DEFAULT:"default",NOTIFICATION_GRANTED:"granted",NOTIFICATION_DENIED:"denied",STATUS:["offline","dnd","xa","away","chat","online"],SOUNDS:{MSG:"incomingMessage.wav",CALL:"Rotary-Phone6.mp3",NOTICE:"Ping1.mp3"},REGEX:{JID:new RegExp("\\b[^\"&'\\/:<>@\\s]+@[\\w-_.]+\\b","ig"),URL:new RegExp(/(https?:\/\/|www\.)[^\s<>'"]+/gi)},NS:{CARBONS:"urn:xmpp:carbons:2",FORWARD:"urn:xmpp:forward:0"},HIDDEN:"hidden",SHOWN:"shown",STATE:{INITIATING:0,PREVCONFOUND:1,SUSPEND:2,TRYTOINTERCEPT:3,INTERCEPTED:4,ESTABLISHING:5,READY:6},UISTATE:{INITIATING:0,READY:1}},getFormattedTime:function(unixtime){var msgDate=new Date(parseInt(unixtime)),day=("0"+msgDate.getDate()).slice(-2),month=("0"+(msgDate.getMonth()+1)).slice(-2),year=msgDate.getFullYear(),hours=("0"+msgDate.getHours()).slice(-2),minutes=("0"+msgDate.getMinutes()).slice(-2),dateNow=new Date,date="function"==typeof msgDate.toLocaleDateString?msgDate.toLocaleDateString():day+"."+month+"."+year,time="function"==typeof msgDate.toLocaleTimeString?msgDate.toLocaleTimeString():hours+":"+minutes;return dateNow.setHours(0,0,0,0),msgDate.setHours(0,0,0,0),dateNow.getTime()!==msgDate.getTime()?date+" "+time:time},debug:function(msg,data,level){if(level&&(msg="["+level+"] "+msg),data){jsxc.storage.getItem("debug")===!0&&console.log(msg,data);var d;try{d=$("<span>").prepend($(data).clone()).html()}catch(err){try{d=JSON.stringify(data)}catch(err2){d="see js console"}}jsxc.log=jsxc.log+"$ "+msg+": "+d+"\n"}else console.log(msg),jsxc.log=jsxc.log+"$ "+msg+"\n"},warn:function(msg,data){jsxc.debug(msg,data,"WARN")},error:function(msg,data){jsxc.debug(msg,data,"ERROR")},log:"",init:function(options){if(jsxc.changeState(jsxc.CONST.STATE.INITIATING),options&&options.loginForm&&"boolean"==typeof options.loginForm.attachIfFound&&!options.loginForm.ifFound&&(options.loginForm.ifFound=options.loginForm.attachIfFound?"attach":"pause"),options&&$.extend(!0,jsxc.options,options),"undefined"==typeof localStorage)return void jsxc.warn("Browser doesn't support localStorage.");jsxc.options.get=function(key){if(jsxc.bid){var local=jsxc.storage.getUserItem("options")||{};return"undefined"!=typeof local[key]?local[key]:jsxc.options[key]}return jsxc.options[key]},jsxc.options.set=function(key,value){jsxc.storage.updateItem("options",key,value,!0)},jsxc.storageNotConform=jsxc.storage.getItem("storageNotConform"),null===jsxc.storageNotConform&&(jsxc.storageNotConform=2);var lang;lang=null!==jsxc.storage.getItem("lang")?jsxc.storage.getItem("lang"):jsxc.options.autoLang&&navigator.languages&&navigator.languages.length>0?navigator.languages[0].substr(0,2):jsxc.options.autoLang&&navigator.language?navigator.language.substr(0,2):jsxc.options.defaultLang,window.i18next.init({lng:lang,fallbackLng:"en",resources:I18next,debug:jsxc.storage.getItem("debug")===!0,interpolation:{prefix:"__",suffix:"__"}},function(){window.jqueryI18next.init(window.i18next,$,{tName:"t",i18nName:"i18next",handleName:"localize"})}),jsxc.storage.getItem("debug")===!0&&(jsxc.options.otr.debug=!0),window.addEventListener("storage",jsxc.storage.onStorage,!1),$(document).on("attached.jsxc",jsxc.registerLogout);var isStorageAttachParameters=jsxc.storage.getItem("rid")&&jsxc.storage.getItem("sid")&&jsxc.storage.getItem("jid"),isOptionsAttachParameters=jsxc.options.xmpp.rid&&jsxc.options.xmpp.sid&&jsxc.options.xmpp.jid,isForceLoginForm=jsxc.options.loginForm&&"force"===jsxc.options.loginForm.ifFound&&jsxc.isLoginForm();if(!isStorageAttachParameters&&!isOptionsAttachParameters||isForceLoginForm){if(jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("sid"),!jsxc.isLoginForm())return jsxc.changeState(jsxc.CONST.STATE.SUSPEND),void(jsxc.options.displayRosterMinimized()&&(jsxc.storage.setUserItem("roster","hidden"),jsxc.gui.roster.init(),jsxc.gui.roster.noConnection()));jsxc.changeState(jsxc.CONST.STATE.TRYTOINTERCEPT),"function"==typeof jsxc.options.formFound&&jsxc.options.formFound.call();var form=jsxc.options.loginForm.form=$(jsxc.options.loginForm.form),events=form.data("events")||{submit:[]},submits=[];$.each(events.submit,function(index,val){submits.push(val.handler)}),form.data("submits",submits),form.off("submit"),form.submit(function(ev){return ev.preventDefault(),jsxc.prepareLogin(function(settings){if(settings!==!1){var enabled=settings.loginForm&&settings.loginForm.enable||settings.xmpp&&settings.xmpp.onlogin;enabled="true"===enabled||enabled===!0,enabled&&(jsxc.options.loginForm.triggered=!0,jsxc.xmpp.login(jsxc.options.xmpp.jid,jsxc.options.xmpp.password))}else jsxc.submitLoginForm()}),!1}),jsxc.changeState(jsxc.CONST.STATE.INTERCEPTED)}else(!jsxc.isLoginForm()||jsxc.options.loginForm&&"attach"===jsxc.options.loginForm.ifFound)&&(jsxc.changeState(jsxc.CONST.STATE.PREVCONFOUND),"undefined"==typeof jsxc.storage.getItem("alive")?jsxc.onMaster():jsxc.checkMaster())},start:function(){var args=arguments;return jsxc.role_allocation&&!jsxc.master?(jsxc.debug("There is an other master tab"),!1):jsxc.xmpp.conn&&jsxc.xmpp.connected?(jsxc.debug("We are already connected"),!1):(3===args.length&&$(document).one("attached.jsxc",function(){jsxc.xmpp.onRidChange(jsxc.xmpp.conn._proto.rid),jsxc.onMaster()}),void jsxc.checkMaster(function(){jsxc.xmpp.login.apply(this,args)}))},registerLogout:function(){if(null!==jsxc.options.logoutElement&&$(jsxc.options.logoutElement).length>0){var logout=function(ev){ev.stopPropagation(),ev.preventDefault(),jsxc.options.logoutElement=$(this),jsxc.triggeredFromLogout=!0,jsxc.xmpp.logout()};jsxc.options.logoutElement=$(jsxc.options.logoutElement),jsxc.options.logoutElement.off("click",null,logout).one("click",logout)}},isLoginForm:function(){return jsxc.options.loginForm.form&&jsxc.el_exists(jsxc.options.loginForm.form)&&jsxc.el_exists(jsxc.options.loginForm.jid)&&jsxc.el_exists(jsxc.options.loginForm.pass)},prepareLogin:function(username,password,cb){"function"==typeof username&&(cb=username,username=null),username=username||$(jsxc.options.loginForm.jid).val(),password=password||$(jsxc.options.loginForm.pass).val(),jsxc.triggeredFromBox||"dialog"!==jsxc.options.loginForm.onConnecting&&"undefined"!=typeof jsxc.options.loginForm.onConnecting||jsxc.gui.showWaitAlert($.t("Logging_in"));var settings;"function"==typeof jsxc.options.loadSettings?(settings=jsxc.options.loadSettings.call(this,username,password,function(s){jsxc._prepareLogin(username,password,cb,s)}),"undefined"!=typeof settings&&jsxc._prepareLogin(username,password,cb,settings)):jsxc._prepareLogin(username,password,cb)},_prepareLogin:function(username,password,cb,loadedSettings){if(loadedSettings===!1)return jsxc.warn("No settings provided"),void cb(!1);var settings=$.extend(!0,{},jsxc.options);loadedSettings?settings=$.extend(!0,settings,loadedSettings):loadedSettings={},"string"==typeof settings.xmpp.username&&(username=settings.xmpp.username);var jid,resource=settings.xmpp.resource?"/"+settings.xmpp.resource:"",domain=settings.xmpp.domain;jid=username.match(/@(.*)$/)?username.match(/\/(.*)$/)?username:username+resource:username+"@"+domain+resource,"function"==typeof jsxc.options.loginForm.preJid&&(jid=jsxc.options.loginForm.preJid(jid)),jsxc.bid=jsxc.jidToBid(jid),settings.xmpp.username=jid.split("@")[0],settings.xmpp.domain=jid.split("@")[1].split("/")[0],settings.xmpp.resource=jid.split("@")[1].split("/")[1]||"",loadedSettings.xmpp||(loadedSettings.xmpp={}),$.each(loadedSettings,function(key){var old=jsxc.options.get(key),val=settings[key];val=$.extend(!0,old,val),jsxc.options.set(key,val)}),jsxc.options.xmpp.jid=jid,jsxc.options.xmpp.password=password,cb(settings)},onSlave:function(){jsxc.debug("I am the slave."),jsxc.role_allocation=!0,jsxc.bid=jsxc.jidToBid(jsxc.storage.getItem("jid")),jsxc.gui.init(),$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.registerLogout(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own"),jsxc.gui.restore()},onMaster:function(){jsxc.debug("I am master."),jsxc.master=!0,jsxc.storage.setItem("alive",0),jsxc.storage.setItem("alive_busy",0),jsxc.startKeepAlive(),jsxc.role_allocation=!0,jsxc.xmpp.login()},checkMaster:function(cb){jsxc.debug("check master"),cb=cb&&"function"==typeof cb?cb:jsxc.onMaster,"undefined"==typeof jsxc.storage.getItem("alive")?cb.call():(jsxc.to.push(window.setTimeout(cb,1e3)),jsxc.keepAlive("slave"))},masterActions:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated){var noti=jsxc.storage.getUserItem("notification");noti="number"==typeof noti?noti:2,jsxc.options.notification&&noti>0&&jsxc.notification.hasSupport()?jsxc.notification.hasPermission()?jsxc.notification.init():jsxc.notification.prepareRequest():jsxc.options.notification=!1,jsxc.options.get("otr").enable&&jsxc.otr.createDSA(),jsxc.gui.updateAvatar($("#jsxc_roster > .jsxc_bottom"),jsxc.jidToBid(jsxc.storage.getItem("jid")),"own")}},startKeepAlive:function(){jsxc.keepaliveInterval=window.setInterval(jsxc.keepAlive,jsxc.options.timeout-1e3)},keepAlive:function(role){var next=parseInt(jsxc.storage.getItem("alive"))+1;role=role||"master",jsxc.storage.setItem("alive",next+":"+role)},keepBusyAlive:function(){jsxc.toBusy&&window.clearTimeout(jsxc.toBusy),jsxc.keepaliveInterval&&window.clearInterval(jsxc.keepaliveInterval),jsxc.storage.ink("alive_busy"),jsxc.toBusy=window.setTimeout(jsxc.startKeepAlive,jsxc.options.busyTimeout-1e3)},random:function(max){return Math.floor(Math.random()*max)},el_exists:function(selector){return $(selector).length>0},jidToCid:function(jid){jsxc.warn("jsxc.jidToCid is deprecated!");var cid=Strophe.getBareJidFromJid(jid).replace("@","-").replace(/\./g,"-").toLowerCase();return cid},jidToBid:function(jid){return Strophe.unescapeNode(Strophe.getBareJidFromJid(jid).toLowerCase())},restoreRoster:function(){var buddies=jsxc.storage.getUserItem("buddylist");return buddies&&0!==buddies.length?($.each(buddies,function(index,value){jsxc.gui.roster.add(value)}),jsxc.gui.roster.loaded=!0,void $(document).trigger("cloaded.roster.jsxc")):(jsxc.debug("No saved buddylist."),void jsxc.gui.roster.empty())},restoreWindows:function(){var windows=jsxc.storage.getUserItem("windowlist");null!==windows&&$.each(windows,function(index,bid){var win=jsxc.storage.getUserItem("window",bid);return win?(jsxc.gui.window.init(bid),win.minimize?jsxc.gui.window.hide(bid):jsxc.gui.window.show(bid),void jsxc.gui.window.setText(bid,win.text)):(jsxc.debug("Associated window-element is missing: "+bid),!0)})},submitLoginForm:function(){var form=$(jsxc.options.loginForm.form).off("submit"),submits=form.data("submits")||[];$.each(submits,function(index,val){form.submit(val)}),form.find("#submit").length>0?form.find("#submit").click():form.get(0)&&"function"==typeof form.get(0).submit?form.submit():form.find('[type="submit"]').length>0?form.find('[type="submit"]').click():jsxc.warn("Could not submit login form.")},escapeHTML:function(text){return text=text.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">"),text.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},removeHTML:function(text){return $("<span>").html(text).text()},switchEvents:function(obj){var ns=Math.random().toString(36).substr(2,12),self=this;return $.each(obj,function(key,val){$(document).one(key+"."+ns,function(){$(document).off("."+ns),val.apply(self,arguments)})}),ns},isHidden:function(){var hidden=!1;return"undefined"!=typeof document.hidden?hidden=document.hidden:"undefined"!=typeof document.webkitHidden?hidden=document.webkitHidden:"undefined"!=typeof document.mozHidden?hidden=document.mozHidden:"undefined"!=typeof document.msHidden&&(hidden=document.msHidden),hidden&&jsxc.master?jsxc.storage.ink("hidden",0):hidden||jsxc.master||jsxc.storage.ink("hidden"),hidden},hasFocus:function(){var focus=!0;return"function"==typeof document.hasFocus&&(focus=document.hasFocus()),!focus&&jsxc.master?jsxc.storage.ink("focus",0):focus&&!jsxc.master&&jsxc.storage.ink("focus"),focus},exec:function(fnName,fnParams){var i,fnList=fnName.split("."),fn=jsxc[fnList[0]];for(i=1;i<fnList.length;i++)fn=fn[fnList[i]];if("function"==typeof fn)return fn.apply(null,fnParams)},hashStr:function(str){var i,hash=0;if(0===str.length)return hash;for(i=0;i<str.length;i++)hash=(hash<<5)-hash+str.charCodeAt(i),hash|=0;return hash},isExtraSmallDevice:function(){return $(window).width()<500},changeState:function(state){jsxc.currentState=state,jsxc.debug("State changed to "+Object.keys(jsxc.CONST.STATE)[state]),$(document).trigger("stateChange.jsxc",state)},changeUIState:function(state){jsxc.currentUIState=state,jsxc.debug("UI State changed to "+Object.keys(jsxc.CONST.UISTATE)[state]),$(document).trigger("stateUIChange.jsxc",state)}},jsxc.xmpp={conn:null,login:function(){if(jsxc.xmpp.conn&&jsxc.xmpp.conn.authenticated)return void jsxc.debug("Connection already authenticated.");var jid=null,password=null,sid=null,rid=null;switch(arguments.length){case 2:jid=arguments[0],password=arguments[1];break;case 3:jid=arguments[0],sid=arguments[1],rid=arguments[2];break;default:sid=jsxc.storage.getItem("sid"),rid=jsxc.storage.getItem("rid"),null!==sid&&null!==rid?jid=jsxc.storage.getItem("jid"):(sid=jsxc.options.xmpp.sid||null,rid=jsxc.options.xmpp.rid||null,jid=jsxc.options.xmpp.jid)}if(!jid)return void jsxc.warn("Jid required for login");jsxc.bid||(jsxc.bid=jsxc.jidToBid(jid));var url=jsxc.options.get("xmpp").url;if(!url)return void jsxc.warn("xmpp.url required for login");jsxc.xmpp.conn&&jsxc.xmpp.conn.connected||($(document).on("connected.jsxc",jsxc.xmpp.connected),$(document).on("attached.jsxc",jsxc.xmpp.attached),$(document).on("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).on("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).on("authfail.jsxc",jsxc.xmpp.onAuthFail),Strophe.addNamespace("RECEIPTS","urn:xmpp:receipts")),jsxc.xmpp.conn=new Strophe.Connection(url),jsxc.storage.getItem("debug")===!0&&(jsxc.xmpp.conn.xmlInput=function(data){console.log("<",data)},jsxc.xmpp.conn.xmlOutput=function(data){console.log(">",data)}),jsxc.xmpp.conn.nextValidRid=jsxc.xmpp.onRidChange;var callback=function(status,condition){switch(jsxc.debug(Object.getOwnPropertyNames(Strophe.Status)[status]+": "+condition),status){case Strophe.Status.CONNECTING:$(document).trigger("connecting.jsxc");break;case Strophe.Status.CONNECTED:jsxc.bid=jsxc.jidToBid(jsxc.xmpp.conn.jid.toLowerCase()),$(document).trigger("connected.jsxc");break;case Strophe.Status.ATTACHED:$(document).trigger("attached.jsxc");break;case Strophe.Status.DISCONNECTED:$(document).trigger("disconnected.jsxc");break;case Strophe.Status.CONNFAIL:$(document).trigger("connfail.jsxc");break;case Strophe.Status.AUTHFAIL:$(document).trigger("authfail.jsxc")}};jsxc.xmpp.conn.caps&&(jsxc.xmpp.conn.caps.node="http://jsxc.org/"),jsxc.changeState(jsxc.CONST.STATE.ESTABLISHING),sid&&rid?(jsxc.debug("Try to attach"),jsxc.debug("SID: "+sid),jsxc.reconnect=!0,jsxc.xmpp.conn.attach(jid,sid,rid,callback)):(jsxc.debug("New connection"),jsxc.xmpp.conn.caps&&jsxc.xmpp.conn._addSysHandler(function(stanza){var from=jsxc.xmpp.conn.domain,c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node"),_jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.xmpp.conn.caps._jidVerIndex[from]=ver,_jidNodeIndex[from]=node,localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(jsxc.xmpp.conn.caps._jidVerIndex)),localStorage.setItem("strophe.caps._jidNodeIndex",JSON.stringify(_jidNodeIndex))},Strophe.NS.CAPS),jsxc.xmpp.conn.connect(jid,password||jsxc.options.xmpp.password,callback))},logout:function(complete){if(jsxc.triggeredFromElement="boolean"!=typeof complete||complete,!jsxc.master)return jsxc.storage.removeItem("sid"),!0;if(jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("unreadMsg"),$("body").click(),!jsxc.xmpp.conn||!jsxc.xmpp.conn.authenticated)return!0;$.each(jsxc.storage.getUserItem("otrlist")||{},function(i,val){jsxc.otr.create(val)});var numOtr=Object.keys(jsxc.otr.objects||{}).length+1,disReady=function(){--numOtr<=0&&(jsxc.xmpp.conn.flush(),setTimeout(function(){jsxc.xmpp.conn.disconnect()},600))};return $.each(jsxc.otr.objects||{},function(key,obj){obj.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED?obj.endOtr.call(obj,function(){obj.init.call(obj),jsxc.otr.backup(key),disReady()}):disReady()}),disReady(),!1},connected:function(){if(jsxc.xmpp.conn.pause(),jsxc.xmpp.initNewConnection(),jsxc.xmpp.saveSessionParameter(),jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onConnected||"submit"){case"submit":return void jsxc.submitLoginForm();case!1:return}jsxc.gui.dialog.close(),jsxc.xmpp.conn.resume(),jsxc.onMaster(),jsxc.changeState(jsxc.CONST.STATE.READY),$(document).trigger("attached.jsxc")},attached:function(){$("#jsxc_roster").removeClass("jsxc_noConnection"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onRosterChanged,"jabber:iq:roster","iq","set"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onChatMessage,null,"message","chat"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onHeadlineMessage,null,"message","headline"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onReceived,null,"message"),jsxc.xmpp.conn.addHandler(jsxc.xmpp.onPresence,null,"presence"),jsxc.gui.init();var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;if(caps){var conditionalEnable=function(){};if(jsxc.options.get("carbons").enable&&(conditionalEnable=function(){jsxc.xmpp.conn.caps.hasFeatureByJid(domain,jsxc.CONST.NS.CARBONS)&&jsxc.xmpp.carbons.enable()},$(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(conditionalEnable(),$(document).off("caps.strophe",onCaps))})),"undefined"==typeof caps._knownCapabilities[caps._jidVerIndex[domain]]){var _jidNodeIndex=JSON.parse(localStorage.getItem("strophe.caps._jidNodeIndex"))||{};jsxc.debug("Request server capabilities"),caps._requestCapabilities(jsxc.xmpp.conn.domain,_jidNodeIndex[domain],caps._jidVerIndex[domain])}else conditionalEnable()}if(jsxc.reconnect&&jsxc.storage.getUserItem("buddylist"))jsxc.xmpp.sendPres(),jsxc.restoreCompleted||jsxc.gui.restore();else{$(document).one("cloaded.roster.jsxc",jsxc.xmpp.sendPres),$("#jsxc_roster > p:first").remove();var iq=$iq({type:"get"}).c("query",{xmlns:"jabber:iq:roster"});jsxc.xmpp.conn.sendIQ(iq,jsxc.xmpp.onRoster)}jsxc.xmpp.saveSessionParameter(),jsxc.masterActions(),jsxc.changeState(jsxc.CONST.STATE.READY)},saveSessionParameter:function(){var nomJid=Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid).toLowerCase()+"/"+Strophe.getResourceFromJid(jsxc.xmpp.conn.jid);jsxc.storage.setItem("sid",jsxc.xmpp.conn._proto.sid),jsxc.storage.setItem("jid",nomJid)},initNewConnection:function(){jsxc.storage.removeUserItem("buddylist"),jsxc.storage.removeUserItem("windowlist"),jsxc.storage.removeUserItem("own"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),jsxc.storage.removeUserItem("unreadMsg"),jsxc.storage.removeUserElement("options","RTCPeerConfig")},sendPres:function(){jsxc.xmpp.conn.disco&&(jsxc.xmpp.conn.disco.addIdentity("client","web","JSXC"),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.DISCO_INFO),jsxc.xmpp.conn.disco.addFeature(Strophe.NS.RECEIPTS));var pres=$pres();jsxc.xmpp.conn.caps&&pres.c("c",jsxc.xmpp.conn.caps.generateCapsAttrs()).up();var presState=jsxc.storage.getUserItem("presence")||"online";"online"!==presState&&pres.c("show").t(presState).up();var priority=jsxc.options.get("priority");priority&&"undefined"!=typeof priority[presState]&&0!==parseInt(priority[presState])&&pres.c("priority").t(priority[presState]).up(),jsxc.debug("Send presence",pres.toString()),jsxc.xmpp.conn.send(pres)},disconnected:function(){jsxc.debug("disconnected"),jsxc.storage.removeItem("jid"),jsxc.storage.removeItem("sid"),jsxc.storage.removeItem("rid"),jsxc.storage.removeItem("hidden"),jsxc.storage.removeUserItem("avatar","own"),jsxc.storage.removeUserItem("otrlist"),$(document).off("connected.jsxc",jsxc.xmpp.connected),$(document).off("attached.jsxc",jsxc.xmpp.attached),$(document).off("disconnected.jsxc",jsxc.xmpp.disconnected),$(document).off("connfail.jsxc",jsxc.xmpp.onConnfail),$(document).off("authfail.jsxc",jsxc.xmpp.onAuthFail),jsxc.xmpp.conn=null,$("#jsxc_windowList").remove(),jsxc.triggeredFromElement?($(document).trigger("toggle.roster.jsxc",["hidden",0]),jsxc.gui.roster.ready=!1,$("#jsxc_roster").remove(),jsxc.triggeredFromLogout&&(window.location=jsxc.options.logoutElement.attr("href"))):jsxc.gui.roster.noConnection(),window.clearInterval(jsxc.keepaliveInterval),jsxc.role_allocation=!1,jsxc.master=!1,jsxc.storage.removeItem("alive"),jsxc.changeState(jsxc.CONST.STATE.SUSPEND)},onConnfail:function(ev,condition){jsxc.debug("XMPP connection failed: "+condition),jsxc.options.loginForm.triggered&&jsxc.submitLoginForm()},onAuthFail:function(){if(jsxc.options.loginForm.triggered)switch(jsxc.options.loginForm.onAuthFail||"ask"){case"ask":jsxc.gui.showAuthFail();break;case"submit":jsxc.submitLoginForm();break;case"quiet":case!1:return}},onRoster:function(iq){jsxc.debug("Load roster",iq);var buddies=[];$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");buddies.push(bid),jsxc.storage.removeUserItem("res",bid),jsxc.storage.saveBuddy(bid,{jid:jid,name:name,status:0,sub:sub,res:[],rnd:Math.random()}),jsxc.gui.roster.add(bid)}),0===buddies.length&&jsxc.gui.roster.empty(),jsxc.storage.setUserItem("buddylist",buddies),jsxc.xmpp.bookmarks.load(),jsxc.gui.roster.loaded=!0,jsxc.debug("Roster loaded"),$(document).trigger("cloaded.roster.jsxc"),jsxc.changeUIState(jsxc.CONST.UISTATE.READY)},onRosterChanged:function(iq){return jsxc.debug("onRosterChanged",iq),$(iq).find("item").each(function(){var jid=$(this).attr("jid"),name=$(this).attr("name")||jid,bid=jsxc.jidToBid(jid),sub=$(this).attr("subscription");if("remove"===sub)jsxc.gui.roster.purge(bid);else{var bl=jsxc.storage.getUserItem("buddylist");bl.indexOf(bid)<0&&(bl.push(bid),jsxc.storage.setUserItem("buddylist",bl));var temp=jsxc.storage.saveBuddy(bid,{jid:jid,name:name,sub:sub});"updated"===temp?(jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid)):jsxc.gui.roster.add(bid)}if("from"===sub||"both"===sub){var notice,notices=jsxc.storage.getUserItem("notices"),noticeKey=null;for(noticeKey in notices)notice=notices[noticeKey],"gui.showApproveDialog"===notice.fnName&&notice.fnParams[0]===jid&&(jsxc.debug("Remove notice with key "+noticeKey),jsxc.notice.remove(noticeKey))}}),jsxc.storage.getUserItem("buddylist")&&0!==jsxc.storage.getUserItem("buddylist").length?$("#jsxc_roster > p:first").remove():jsxc.gui.roster.empty(),!0},onPresence:function(presence){jsxc.debug("onPresence",presence);var ptype=$(presence).attr("type"),from=$(presence).attr("from"),jid=Strophe.getBareJidFromJid(from).toLowerCase(),r=Strophe.getResourceFromJid(from),bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||{},res=jsxc.storage.getUserItem("res",bid)||{},status=null,xVCard=$(presence).find('x[xmlns="vcard-temp:x:update"]');if(jid===Strophe.getBareJidFromJid(jsxc.storage.getItem("jid")))return!0;if("error"===ptype){$(document).trigger("error.presence.jsxc",[from,presence]);var error=$(presence).find("error");return jsxc.error("[XMPP] "+error.attr("code")+" "+error.find(">:first-child").prop("tagName")),!0}if("subscribe"===ptype){var bl=jsxc.storage.getUserItem("buddylist");return bl.indexOf(bid)>-1?(jsxc.debug("Auto approve contact request, because he is already in our contact list."),jsxc.xmpp.resFriendReq(jid,!0),"to"!==data.sub&&jsxc.xmpp.addBuddy(jid,data.name),!0):(jsxc.storage.setUserItem("friendReq",{jid:jid,approve:-1}),jsxc.notice.add({msg:$.t("Friendship_request"),description:$.t("from")+" "+jid,type:"contact"},"gui.showApproveDialog",[jid]),!0)}if("unavailable"===ptype||"unsubscribed"===ptype)status=jsxc.CONST.STATUS.indexOf("offline");else{var show=$(presence).find("show").text();status=""===show?jsxc.CONST.STATUS.indexOf("online"):jsxc.CONST.STATUS.indexOf(show)}0===status?delete res[r]:r&&(res[r]=status);var maxVal=[],max=0,prop=null;for(prop in res)res.hasOwnProperty(prop)&&max<=res[prop]&&(max!==res[prop]&&(maxVal=[],max=res[prop]),maxVal.push(prop));if(0===data.status&&max>0&&jsxc.notification.notify({title:data.name,msg:$.t("has_come_online"),source:bid}),"groupchat"===data.type?data.status=status:data.status=max,data.res=maxVal,data.jid=jid,xVCard.length>0&&"groupchat"!==data.type){var photo=xVCard.find("photo");photo.length>0&&photo.text()!==data.avatar&&(jsxc.storage.removeUserItem("avatar",data.avatar),data.avatar=photo.text())}return jsxc.gui.window.get(bid).length>0&&jsxc.gui.window.get(bid).data("jid",jid),jsxc.storage.setUserItem("buddy",bid,data),jsxc.storage.setUserItem("res",bid,res),jsxc.debug("Presence ("+from+"): "+jsxc.CONST.STATUS[status]),jsxc.gui.update(bid),jsxc.gui.roster.reorder(bid),$(document).trigger("presence.jsxc",[from,status,presence]),!0},onChatMessage:function(stanza){var message,carbon,forwarded=$(stanza).find('forwarded[xmlns="'+jsxc.CONST.NS.FORWARD+'"]');forwarded.length>0?(message=forwarded.find("> message"),forwarded=!0,carbon=$(stanza).find('> [xmlns="'+jsxc.CONST.NS.CARBONS+'"]'),0===carbon.length&&(carbon=!1),jsxc.debug("Incoming forwarded message",message)):(message=stanza,forwarded=!1,carbon=!1,jsxc.debug("Incoming message",message));var body=$(message).find("body:first").text(),htmlBody=$(message).find('body[xmlns="'+Strophe.NS.XHTML+'"]');if(!body||body.match(/\?OTR/i)&&forwarded)return!0;var bid,type=$(message).attr("type"),from=$(message).attr("from"),mid=$(message).attr("id"),delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;if(stamp=stamp.getTime(),carbon){var direction="sent"===carbon.prop("tagName")?jsxc.Message.OUT:jsxc.Message.IN;return bid=jsxc.jidToBid("out"===direction?$(message).attr("to"):from),jsxc.gui.window.postMessage({bid:bid,direction:direction,msg:body,encrypted:!1,forwarded:forwarded,stamp:stamp}),!0}forwarded&&(body=from+" "+$.t("to")+" "+$(stanza).attr("to")+'"'+body+'"',from=$(stanza).attr("from"));var jid=Strophe.getBareJidFromJid(from);bid=jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",bid),request=$(message).find("request[xmlns='urn:xmpp:receipts']");if(null===data){var chat=jsxc.storage.getUserItem("chat",bid)||[];0===chat.length&&jsxc.notice.add({msg:$.t("Unknown_sender"),description:$.t("You_received_a_message_from_an_unknown_sender")+" ("+bid+")."},"gui.showUnknownSender",[bid]);var msg=jsxc.removeHTML(body);return msg=jsxc.escapeHTML(msg),jsxc.storage.saveMessage(bid,"in",msg,!1,forwarded,stamp),!0}var win=jsxc.gui.window.init(bid);"chat"===type&&(win.data("jid",from),jsxc.storage.updateUserItem("buddy",bid,{jid:from})),$(document).trigger("message.jsxc",[from,body]),jsxc.master&&!jsxc.otr.objects[bid]&&jsxc.otr.create(bid),forwarded||null===mid||!request.length||null===data||"both"!==data.sub&&"from"!==data.sub||"chat"!==type||jsxc.xmpp.conn.send($msg({to:from}).c("received",{xmlns:"urn:xmpp:receipts",id:mid}));var attachment;if(1===htmlBody.length){var httpUploadElement=htmlBody.find("a[data-type][data-name][data-size]");1===httpUploadElement.length&&(attachment={type:httpUploadElement.attr("data-type"),name:httpUploadElement.attr("data-name"),size:httpUploadElement.attr("data-size")},httpUploadElement.attr("data-thumbnail")&&httpUploadElement.attr("data-thumbnail").match(/^\s*data:[a-z]+\/[a-z0-9-+.*]+;base64,[a-z0-9=+\/]+$/i)&&(attachment.thumbnail=httpUploadElement.attr("data-thumbnail")),httpUploadElement.attr("href")&&httpUploadElement.attr("href").match(/^https:\/\//)&&(attachment.data=httpUploadElement.attr("href"),body=null),attachment.type.match(/^[a-z]+\/[a-z0-9-+.*]+$/i)&&attachment.name.match(/^[\s\w.,-]+$/i)&&attachment.size.match(/^\d+$/i)||(attachment=void 0,jsxc.warn("Invalid file type, name or size.")))}return jsxc.otr.objects.hasOwnProperty(bid)&&body?jsxc.otr.objects[bid].receiveMsg(body,{stamp:stamp,forwarded:forwarded,attachment:attachment}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.IN,msg:body,encrypted:!1,forwarded:forwarded,stamp:stamp,attachment:attachment}),!0},onHeadlineMessage:function(stanza){stanza=$(stanza);var from=stanza.attr("from"),domain=Strophe.getDomainFromJid(from);if(domain!==from){if(!jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from)))return!0}else if(domain!==Strophe.getDomainFromJid(jsxc.xmpp.conn.jid))return!0;var subject=stanza.find("subject:first").text()||$.t("Notification"),body=stanza.find("body:first").text();return jsxc.notice.add({msg:subject,description:body,type:domain===from?"announcement":null},"gui.showNotification",[subject,body,from]),!0},onRidChange:function(rid){jsxc.storage.setItem("rid",rid)},resFriendReq:function(from,approve){jsxc.master?(jsxc.xmpp.conn.send($pres({to:from,type:approve?"subscribed":"unsubscribed"})),jsxc.storage.removeUserItem("friendReq"),jsxc.gui.dialog.close()):jsxc.storage.updateUserItem("friendReq","approve",approve)},addBuddy:function(username,alias){var bid=jsxc.jidToBid(username);if(jsxc.master){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:username,name:alias||""});jsxc.xmpp.conn.sendIQ(iq),jsxc.xmpp.conn.send($pres({to:username,type:"subscribe"})),jsxc.storage.removeUserItem("add_"+bid)}else jsxc.storage.setUserItem("add_"+bid,{username:username,alias:alias||null})},removeBuddy:function(jid){var bid=jsxc.jidToBid(jid),iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(jid),subscription:"remove"});jsxc.xmpp.conn.sendIQ(iq),jsxc.gui.roster.purge(bid)},onReceived:function(stanza){var received=$(stanza).find("received[xmlns='urn:xmpp:receipts']");if(received.length){var receivedId=received.attr("id"),message=new jsxc.Message(receivedId);message.received()}return!0},sendMessage:function(message){var bid=message.bid,msg=message.htmlMsg,mucRoomNames=jsxc.xmpp.conn.muc&&jsxc.xmpp.conn.muc.roomNames?jsxc.xmpp.conn.muc.roomNames:[],isMucBid=mucRoomNames.indexOf(bid)>=0;jsxc.otr.objects.hasOwnProperty(bid)&&!isMucBid?jsxc.otr.objects[bid].sendMsg(msg,message):jsxc.xmpp._sendMessage(jsxc.gui.window.get(bid).data("jid"),msg,message)},_sendMessage:function(jid,msg,message){var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid))||{},isBar=Strophe.getBareJidFromJid(jid)===jid,type=data.type||"chat";message=message||{};var xmlMsg=$msg({to:jid,type:type,id:message._uid});if(message.type===jsxc.Message.HTML){xmlMsg.c("html",{xmlns:Strophe.NS.XHTML_IM});var body=Strophe.xmlElement("body",{xmlns:Strophe.NS.XHTML});body.innerHTML=msg,xmlMsg.node.appendChild(body)}else xmlMsg.c("body").t(msg);jsxc.xmpp.carbons.enabled&&msg.match(/^\?OTR/)&&xmlMsg.up().c("private",{xmlns:jsxc.CONST.NS.CARBONS}),"chat"===type&&(isBar||jsxc.xmpp.conn.caps.hasFeatureByJid(jid,Strophe.NS.RECEIPTS))&&xmlMsg.up().c("request",{xmlns:"urn:xmpp:receipts"}),jsxc.xmpp.conn.chatstates&&!jsxc.xmpp.chatState.isDisabled()&&xmlMsg.up().c("active",{xmlns:Strophe.NS.CHATSTATES}),jsxc.xmpp.conn.send(xmlMsg)},loadVcard:function(bid,cb,error_cb){jsxc.master?jsxc.xmpp.conn.vcard.get(cb,bid,error_cb):(jsxc.storage.setUserItem("vcard",bid,"request:"+(new Date).getTime()),$(document).one("loaded.vcard.jsxc",function(ev,result){result&&"success"===result.state?cb($(result.data).get(0)):error_cb()}))},getCapabilitiesByJid:function(jid){if(jsxc.xmpp.conn)return jsxc.xmpp.conn.caps.getCapabilitiesByJid(jid);var jidVerIndex=JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},knownCapabilities=JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{};
+return jidVerIndex[jid]?knownCapabilities[jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature,cb){var conn=jsxc.xmpp.conn;if(cb=cb||function(){},!feature)return!1;$.isArray(feature)||(feature=$.makeArray(feature));var check=function(knownCapabilities){if(!knownCapabilities)return null;var i;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0};if(conn.caps._jidVerIndex[jid]&&conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]){var hasFeature=check(conn.caps._knownCapabilities[conn.caps._jidVerIndex[jid]]);return cb(hasFeature),hasFeature}return $(document).on("strophe.caps",function(ev,j,capabilities){j===jid&&(cb(check(capabilities)),$(document).off(ev))}),null}},jsxc.xmpp.carbons={enabled:!1,enable:function(cb){var iq=$iq({type:"set"}).c("enable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!0,jsxc.debug("Carbons enabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not enable carbons",stanza)})},disable:function(cb){var iq=$iq({type:"set"}).c("disable",{xmlns:jsxc.CONST.NS.CARBONS});jsxc.xmpp.conn.sendIQ(iq,function(){jsxc.xmpp.carbons.enabled=!1,jsxc.debug("Carbons disabled"),cb&&cb.call(this)},function(stanza){jsxc.warn("Could not disable carbons",stanza)})},refresh:function(err){if(err!==!1)return jsxc.options.get("carbons").enable?jsxc.xmpp.carbons.enable():jsxc.xmpp.carbons.disable()}},jsxc.fileTransfer={},jsxc.fileTransfer.formatByte=function(byte){var i,s=["","KB","MB","GB","TB"];for(i=1;i<s.length&&!(byte<1024);i++)byte/=1024;return Math.round(10*byte)/10+s[i-1]},jsxc.fileTransfer.startGuiAction=function(jid){var bid=jsxc.jidToBid(jid),res=Strophe.getResourceFromJid(jid);return res||jsxc.xmpp.httpUpload.ready?void jsxc.fileTransfer.showFileSelection(jid):void jsxc.fileTransfer.selectResource(bid,jsxc.fileTransfer.startGuiAction)},jsxc.fileTransfer.selectResource=function(bid,success_cb,error_cb){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),res=Strophe.getResourceFromJid(jid),fileCapableRes=jsxc.webrtc.getCapableRes(jid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid))||[];null===res&&1===resources.length&&1===fileCapableRes.length?(res=fileCapableRes[0],jid=bid+"/"+res,success_cb(jid)):fileCapableRes.indexOf(res)>=0?success_cb(bid+"/"+res):fileCapableRes.indexOf(res)<0&&jsxc.gui.window.selectResource(bid,$.t("Your_contact_uses_multiple_clients_"),function(data){"unavailable"===data.status?(jsxc.gui.window.hideOverlay(bid),"function"==typeof error_cb&&error_cb()):"selected"===data.status&&success_cb(bid+"/"+data.result)},fileCapableRes)},jsxc.fileTransfer.showFileSelection=function(jid){var bid=jsxc.jidToBid(jid),msg=$('<div><div><label><input type="file" name="files" /><label></div></div>');msg.addClass("jsxc_chatmessage"),jsxc.gui.window.showOverlay(bid,msg,!0),msg.find("label").click(),msg.find('[type="file"]').change(function(ev){var file=ev.target.files[0];file&&jsxc.fileTransfer.fileSelected(jid,msg,file)})},jsxc.fileTransfer.fileSelected=function(jid,msg,file){var bid=jsxc.jidToBid(jid);if("webrtc"!==file.transportMethod&&jsxc.xmpp.httpUpload.ready&&file.size>jsxc.options.get("httpUpload").maxSize)return jsxc.debug("File too large for http upload."),file.transportMethod="webrtc",void jsxc.fileTransfer.selectResource(bid,function(jid){jsxc.fileTransfer.fileSelected(jid,msg,file)},function(){var maxSize=jsxc.fileTransfer.formatByte(jsxc.options.get("httpUpload").maxSize),fileSize=jsxc.fileTransfer.formatByte(file.size);jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("File_too_large")+" ("+fileSize+" > "+maxSize+")"}),jsxc.gui.window.hideOverlay(bid)});!jsxc.xmpp.httpUpload.ready&&Strophe.getResourceFromJid(jid)&&(file.transportMethod="webrtc");var attachment=$("<div>");if(attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+file.type.replace(/\//,"-")),attachment.addClass("jsxc_"+file.type.replace(/^([^\/]+)\/.*/,"$1")),msg.empty().append(attachment),FileReader&&file.type.match(/^image\//)){var img=$('<img alt="preview">').attr("title",file.name);img.attr("src",jsxc.options.get("root")+"/img/loading.gif"),img.appendTo(attachment);var reader=new FileReader;reader.onload=function(){img.attr("src",reader.result)},reader.readAsDataURL(file)}else attachment.text(file.name+" ("+file.size+" byte)");$("<button>").addClass("jsxc_btn jsxc_btn-primary").text($.t("Send")).click(function(){jsxc.gui.window.hideOverlay(bid),msg.remove();var message=jsxc.gui.window.postMessage({bid:bid,direction:"out",attachment:{name:file.name,size:file.size,type:file.type,data:file.type.match(/^image\//)?img.attr("src"):null}});if("webrtc"===file.transportMethod){var sess=jsxc.webrtc.sendFile(jid,file);sess.sender.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size),sent===size&&message.received()})}else jsxc.xmpp.httpUpload.sendFile(file,message)}).appendTo(msg),$("<button>").addClass("jsxc_btn jsxc_btn-default").text($.t("Abort")).click(function(){jsxc.gui.window.hideOverlay(bid)}).appendTo(msg)},jsxc.fileTransfer.updateIcons=function(bid){var win=jsxc.gui.window.get(bid);if(win&&0!==win.length&&jsxc.xmpp.conn){if(jsxc.debug("Update file transfer icons for "+bid),jsxc.xmpp.httpUpload.ready)return void win.find(".jsxc_sendFile").removeClass("jsxc_disabled");var jid=win.data("jid"),res=Strophe.getResourceFromJid(jid),fileCapableRes=jsxc.webrtc.getCapableRes(bid,jsxc.webrtc.reqFileFeatures),resources=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];fileCapableRes.indexOf(res)>-1||null===res&&1===fileCapableRes.length&&1===resources.length?win.find(".jsxc_sendFile").removeClass("jsxc_disabled"):win.find(".jsxc_sendFile").addClass("jsxc_disabled")}},$(document).on("update.gui.jsxc",function(ev,bid){jsxc.fileTransfer.updateIcons(bid)}),jsxc.gui={emotions:[["O:-) O:)","innocent"],[">:-( >:( &gt;:-( &gt;:(","angry"],[":-) :)","slight_smile"],[":-D :D","grin"],[":-( :(","disappointed"],[";-) ;)","wink"],[":-P :P","stuck_out_tongue"],["=-O","astonished"],[":kiss: :-*","kissing_heart"],["8-) :cool:","sunglasses"],[":-X :X","zipper_mouth"],[":yes:","thumbsup"],[":no:","thumbsdown"],[":beer:","beer"],[":coffee:","coffee"],[":devil:","smiling_imp"],[":kiss: :kissing:","kissing"],["@->-- @-&gt;--","rose"],[":music:","musical_note"],[":love:","heart_eyes"],[":heart:","heart"],[":brokenheart:","broken_heart"],[":zzz:","zzz"],[":wait:","hand_splayed"]],favicon:null,regShortNames:null,emoticonList:{core:{":klaus:":["klaus"],":jabber:":["jabber"],":xmpp:":["xmpp"],":jsxc:":["jsxc"],":owncloud:":["owncloud"],":nextcloud:":["nextcloud"]},emojione:emojione.emojioneList},queryActions:{message:function(jid,params){var win=jsxc.gui.window.open(jsxc.jidToBid(jid));params&&"string"==typeof params.body&&win.find(".jsxc_textinput").val(params.body)},remove:function(jid){jsxc.gui.showRemoveDialog(jsxc.jidToBid(jid))},subscribe:function(jid,params){jsxc.gui.showContactDialog(jid),params&&(params.name,!0)&&$("#jsxc_alias").val(params.name)},vcard:function(jid){jsxc.gui.showVcard(jid)},join:function(jid,params){var password=params&&params.password?params.password:null;jsxc.muc.showJoinChat(jid,password)}},init:function(){if(!($("#jsxc_windowList").length>0)){jsxc.changeUIState(jsxc.CONST.UISTATE.INITIATING),jsxc.gui.regShortNames=new RegExp(emojione.regShortNames.source+"|("+Object.keys(jsxc.gui.emoticonList.core).join("|")+")","gi"),$("body").append($(jsxc.gui.template.get("windowList"))),$(window).resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowList").resize(jsxc.gui.updateWindowListSB),$("#jsxc_windowListSB .jsxc_scrollLeft").click(function(){jsxc.gui.scrollWindowListBy(-200)}),$("#jsxc_windowListSB .jsxc_scrollRight").click(function(){jsxc.gui.scrollWindowListBy(200)}),$("#jsxc_windowList").on("wheel",function(ev){$("#jsxc_windowList").data("isOver")&&jsxc.gui.scrollWindowListBy(ev.originalEvent.wheelDelta>0?200:-200)}),jsxc.gui.tooltip("#jsxc_windowList");var fo=jsxc.options.get("favicon");fo&&fo.enable&&(jsxc.gui.favicon=new Favico({animation:"pop",bgColor:fo.bgColor,textColor:fo.textColor}),jsxc.gui.favicon.badge(jsxc.storage.getUserItem("unreadMsg")||0)),jsxc.el_exists("#jsxc_roster")||jsxc.gui.roster.init(),$.each(jsxc.gui.emotions,function(i,val){var reg=val[0].replace(/(\/|\||\*|\.|\+|\?|\^|\$|\(|\)|\[|\]|\{|\})/g,"\\$1");reg="("+reg.split(" ").join("|")+")",jsxc.gui.emotions[i][2]=new RegExp(reg,"g")}),jsxc.gui.windowTemplate=$(jsxc.gui.template.get("chatWindow")),jsxc.gui.buddyTemplate=$(jsxc.gui.template.get("rosterBuddy"))}},tooltip:function(selector){$(selector).tooltip({show:{delay:600},content:function(){return $(this).attr("title").replace(/\n/g,"<br />")}})},update:function(bid){var data=jsxc.storage.getUserItem("buddy",bid);if(!data)return void jsxc.debug("No data for "+bid);var ri=jsxc.gui.roster.getItem(bid),we=jsxc.gui.window.get(bid),ue=ri.add(we),spot=$('.jsxc_spot[data-bid="'+bid+'"]');switch(ri.data(data),jsxc.gui.updatePresence(bid,jsxc.CONST.STATUS[data.status]),ue.find(".jsxc_name:first").add(spot).text(data.name).attr("title",$.t("is_",{status:$.t(jsxc.CONST.STATUS[data.status])})),data.msgstate){case 0:we.find(".jsxc_transfer").removeClass("jsxc_enc jsxc_fin").attr("title",$.t("your_connection_is_unencrypted")),we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("start_private"));break;case 1:we.find(".jsxc_transfer").addClass("jsxc_enc").attr("title",$.t("your_connection_is_encrypted")),we.find(".jsxc_settings .jsxc_verification").removeClass("jsxc_disabled"),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"));break;case 2:we.find(".jsxc_settings .jsxc_verification").addClass("jsxc_disabled"),we.find(".jsxc_transfer").removeClass("jsxc_enc").addClass("jsxc_fin").attr("title",$.t("your_buddy_closed_the_private_connection")),we.find(".jsxc_settings .jsxc_transfer").text($.t("close_private"))}data.trust?we.find(".jsxc_transfer").addClass("jsxc_trust").attr("title",$.t("your_buddy_is_verificated")):we.find(".jsxc_transfer").removeClass("jsxc_trust"),data.sub&&"both"!==data.sub?ue.addClass("jsxc_oneway"):ue.removeClass("jsxc_oneway");var info=Strophe.getBareJidFromJid(data.jid)+"\n";info+=$.t("Subscription")+": "+$.t(data.sub)+"\n",info+=$.t("Status")+": "+$.t(jsxc.CONST.STATUS[data.status]),ri.find(".jsxc_name").attr("title",info),jsxc.gui.updateAvatar(ri.add(we.find(".jsxc_bar")),data.jid,data.avatar),$(document).trigger("update.gui.jsxc",[bid])},updateAvatar:function(el,jid,aid){var setAvatar=function(src){return 0===src||"0"===src?"function"==typeof jsxc.options.defaultAvatar?void jsxc.options.defaultAvatar.call(el,jid):void jsxc.gui.avatarPlaceholder(el.find(".jsxc_avatar"),jid):(el.find(".jsxc_avatar").removeAttr("style"),void el.find(".jsxc_avatar").css({"background-image":"url("+src+")","text-indent":"999px"}))};if("undefined"==typeof aid)return void setAvatar(0);var avatarSrc=jsxc.storage.getUserItem("avatar",aid);if(jsxc.master||avatarSrc||(avatarSrc=0),null!==avatarSrc)setAvatar(avatarSrc);else{var handler_cb=function(stanza){jsxc.debug("vCard",stanza);var src,vCard=$(stanza).find("vCard > PHOTO");if(0===vCard.length)jsxc.debug("No photo provided"),src="0";else if(vCard.find("EXTVAL").length>0)src=vCard.find("EXTVAL").text();else{var img=vCard.find("BINVAL").text(),type=vCard.find("TYPE").text();src="data:"+type+";base64,"+img}src=src.replace(/[\t\r\n\f]/gi,""),jsxc.storage.setUserItem("avatar",aid,src),setAvatar(src)},error_cb=function(msg){jsxc.warn("Could not load vcard.",msg),jsxc.storage.setUserItem("avatar",aid,0),setAvatar(0)};Strophe.getBareJidFromJid(jid)===Strophe.getBareJidFromJid(jsxc.xmpp.conn.jid)?jsxc.xmpp.conn.vcard.get(handler_cb,error_cb):jsxc.xmpp.conn.vcard.get(handler_cb,Strophe.getBareJidFromJid(jid),error_cb)}},updateWindowListSB:function(){$("#jsxc_windowList>ul").width()>$("#jsxc_windowList").width()?$("#jsxc_windowListSB > div").removeClass("jsxc_disabled"):($("#jsxc_windowListSB > div").addClass("jsxc_disabled"),$("#jsxc_windowList>ul").css("right","0px"))},scrollWindowListBy:function(offset){var scrollWidth=$("#jsxc_windowList>ul").width(),width=$("#jsxc_windowList").width(),el=$("#jsxc_windowList>ul"),right=parseInt(el.css("right"))-offset,padding=$("#jsxc_windowListSB").width();scrollWidth<width||(right>0&&(right=0),right<width-scrollWidth-padding&&(right=width-scrollWidth-padding),el.css("right",right+"px"))},getWindow:function(bid){return jsxc.warn("jsxc.gui.getWindow is deprecated!"),jsxc.gui.window.get(bid)},toggleList:function(el){var self=el||$(this);self.disableSelection(),self.addClass("jsxc_list");var ul=self.find("ul"),slideUp=null;slideUp=function(){self.removeClass("jsxc_opened"),$("body").off("click",null,slideUp)},$(this).click(function(){return self.hasClass("jsxc_opened")?$("body").off("click",null,slideUp):($("body").click(),$("body").one("click",slideUp)),window.clearTimeout(ul.data("timer")),self.toggleClass("jsxc_opened"),!1}).mouseleave(function(){ul.data("timer",window.setTimeout(slideUp,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))})},showLoginBox:function(){function onAuthFail(){alert.show(),jsxc.gui.dialog.resize(),$("#jsxc_dialog").find("button").trigger("btnfinished.jsxc"),$("#jsxc_dialog").find("input").one("keypress",function(){alert.hide(),jsxc.gui.dialog.resize()})}$(document).one("complete.dialog.jsxc",function(){setTimeout(function(){0===$("#jsxc_username").val().length?$("#jsxc_username").focus():$("#jsxc_password").focus()},50)}),jsxc.gui.dialog.open(jsxc.gui.template.get("loginBox"));var alert=$("#jsxc_dialog").find(".jsxc_alert");alert.hide(),$("#jsxc_dialog").find("form").submit(function(ev){ev.preventDefault(),$(this).find("button[data-jsxc-loading-text]").trigger("btnloading.jsxc"),jsxc.options.loginForm.form=$(this),jsxc.options.loginForm.jid=$(this).find("#jsxc_username"),jsxc.options.loginForm.pass=$(this).find("#jsxc_password"),jsxc.triggeredFromBox=!0,jsxc.options.loginForm.triggered=!1,jsxc.prepareLogin(function(settings){settings===!1?onAuthFail():($(document).on("authfail.jsxc",onAuthFail),jsxc.xmpp.login())})})},showFingerprints:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("fingerprintsDialog",bid))},showVerification:function(bid){return $("#jsxc_dialog").length>0?void setTimeout(function(){jsxc.gui.showVerification(bid)},3e3):jsxc.storage.getUserItem("buddy",bid).msgstate!==OTR.CONST.MSGSTATE_ENCRYPTED?void jsxc.warn("Connection not encrypted"):(jsxc.gui.dialog.open(jsxc.gui.template.get("authenticationDialog",bid),{name:"smp"}),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq(0) button").click(function(){$(this).siblings().removeClass("active"),$(this).addClass("active"),$(this).get(0).blur(),$("#jsxc_dialog > div:gt(0)").hide(),$("#jsxc_dialog > div:eq("+($(this).index()+1)+")").show().find("input:first").focus()}),$("#jsxc_dialog > div:eq(1) .jsxc_submit").click(function(){jsxc.master&&(jsxc.otr.objects[bid].trust=!0),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.dialog.close("smp"),jsxc.storage.updateUserItem("buddy",bid,"trust",!0),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("conversation_is_now_verified")}),jsxc.gui.update(bid)}),$("#jsxc_dialog > div:eq(2) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(2)"),sec=div.find("#jsxc_secret2").val(),quest=div.find("#jsxc_quest").val();return""===sec||""===quest?void div.find('input[value=""]').addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec,quest):jsxc.storage.setUserItem("smp",bid,{sec:sec,quest:quest}),jsxc.gui.dialog.close("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("authentication_query_sent")}))}),void $("#jsxc_dialog > div:eq(3) .jsxc_submit").click(function(){var div=$("#jsxc_dialog > div:eq(3)"),sec=div.find("#jsxc_secret").val();return""===sec?void div.find("#jsxc_secret").addClass("jsxc_invalid").keyup(function(){$(this).val().match(/.*/)&&$(this).removeClass("jsxc_invalid")}):(jsxc.master?jsxc.otr.sendSmpReq(bid,sec):jsxc.storage.setUserItem("smp",bid,{sec:sec,quest:null}),jsxc.gui.dialog.close("smp"),void jsxc.gui.window.postMessage({bid:bid,direction:"sys",msg:$.t("authentication_query_sent")}))}))},showApproveDialog:function(from){jsxc.gui.dialog.open(jsxc.gui.template.get("approveDialog"),{noClose:!0}),$("#jsxc_dialog .jsxc_their_jid").text(Strophe.getBareJidFromJid(from)),$("#jsxc_dialog .jsxc_deny").click(function(ev){ev.stopPropagation(),jsxc.xmpp.resFriendReq(from,!1),jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_approve").click(function(ev){ev.stopPropagation();var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(from));jsxc.xmpp.resFriendReq(from,!0),data&&"from"!==data.sub||jsxc.gui.showContactDialog(from)})},showContactDialog:function(username){jsxc.gui.dialog.open(jsxc.gui.template.get("contactDialog")),username&&$("#jsxc_username").val(username),$("#jsxc_username").keyup(function(){if("function"==typeof jsxc.options.getUsers){var val=$(this).val();$("#jsxc_userlist").empty(),""!==val&&jsxc.options.getUsers.call(this,val,function(list){$("#jsxc_userlist").empty(),$.each(list||{},function(uid,displayname){var option=$("<option>");option.attr("data-username",uid),option.attr("data-alias",displayname),option.attr("value",uid).appendTo("#jsxc_userlist"),uid!==displayname&&option.clone().attr("value",displayname).appendTo("#jsxc_userlist")})})}}),$("#jsxc_username").on("input",function(){var val=$(this).val(),option=$("#jsxc_userlist").find('option[data-username="'+val+'"], option[data-alias="'+val+'"]');option.length>0&&($("#jsxc_username").val(option.attr("data-username")),$("#jsxc_alias").val(option.attr("data-alias")))}),$("#jsxc_dialog form").submit(function(ev){ev.preventDefault();var username=$("#jsxc_username").val(),alias=$("#jsxc_alias").val();return username.match(/@(.*)$/)||(username+="@"+Strophe.getDomainFromJid(jsxc.storage.getItem("jid"))),username&&username.match(jsxc.CONST.REGEX.JID)?(jsxc.xmpp.addBuddy(username,alias),jsxc.gui.dialog.close(),!1):($("#jsxc_username").addClass("jsxc_invalid").keyup(function(){$(this).val().match(jsxc.CONST.REGEX.JID)&&$(this).removeClass("jsxc_invalid")}),!1)})},showRemoveDialog:function(bid){jsxc.gui.dialog.open(jsxc.gui.template.get("removeDialog",bid));var data=jsxc.storage.getUserItem("buddy",bid);$("#jsxc_dialog .jsxc_remove").click(function(ev){ev.stopPropagation(),jsxc.master?jsxc.xmpp.removeBuddy(data.jid):jsxc.storage.setUserItem("deletebuddy",bid,{jid:data.jid}),jsxc.gui.dialog.close()})},showWaitAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0})},showAlert:function(msg){jsxc.gui.dialog.open(jsxc.gui.template.get("alert",null,msg))},showAuthFail:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("authFailDialog")),jsxc.options.loginForm.triggered!==!1&&$("#jsxc_dialog .jsxc_cancel").hide(),$("#jsxc_dialog .jsxc_retry").click(function(){jsxc.gui.dialog.close()}),$("#jsxc_dialog .jsxc_cancel").click(function(){jsxc.submitLoginForm()})},showConfirmDialog:function(msg,confirm,dismiss){jsxc.gui.dialog.open(jsxc.gui.template.get("confirmDialog",null,msg),{noClose:!0}),confirm&&$("#jsxc_dialog .jsxc_confirm").click(confirm),dismiss&&$("#jsxc_dialog .jsxc_dismiss").click(dismiss)},showAboutDialog:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("aboutDialog")),$("#jsxc_dialog .jsxc_debuglog").click(function(){jsxc.gui.showDebugLog()})},showDebugLog:function(){var userInfo="<h3>User information</h3>";if(navigator){var key;for(key in navigator)"string"==typeof navigator[key]&&(userInfo+="<b>"+key+":</b> "+navigator[key]+"<br />")}$.fn&&$.fn.jquery&&(userInfo+="<b>jQuery:</b> "+$.fn.jquery+"<br />"),window.screen&&(userInfo+="<b>Height:</b> "+window.screen.height+"<br />",userInfo+="<b>Width:</b> "+window.screen.width+"<br />"),userInfo+="<b>jsxc version:</b> "+jsxc.version+"<br />",jsxc.gui.dialog.open('<div class="jsxc_log">'+userInfo+"<h3>Log</h3><pre>"+jsxc.escapeHTML(jsxc.log)+"</pre></div>")},showVcard:function(jid){var bid=jsxc.jidToBid(jid);jsxc.gui.dialog.open(jsxc.gui.template.get("vCard",bid));var data=jsxc.storage.getUserItem("buddy",bid);if(data){var i,j,res,identities,cap,client,identity=null;for(i=0;i<data.res.length;i++){for(res=data.res[i],identities=[],cap=jsxc.xmpp.getCapabilitiesByJid(bid+"/"+res),null!==cap&&null!==cap.identities&&(identities=cap.identities),client="",j=0;j<identities.length;j++)identity=identities[j],"client"===identity.category&&(""!==client&&(client+=",\n"),client+=identity.name+" ("+identity.type+")");var status=jsxc.storage.getUserItem("res",bid)[res];$("#jsxc_dialog ul.jsxc_vCard").append('<li class="jsxc_sep"><strong>'+$.t("Resource")+":</strong> "+res+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Client")+":</strong> "+client+"</li>"),$("#jsxc_dialog ul.jsxc_vCard").append("<li><strong>"+$.t("Status")+":</strong> "+$.t(jsxc.CONST.STATUS[status])+"</li>")}}var printProp=function(el,depth){var content="";if(el.each(function(){var item=$(this),children=$(this).children();content+="<li>";var prop=$.t(item[0].tagName);" "!==prop&&(content+="<strong>"+prop+":</strong> "),"PHOTO"===item[0].tagName||(children.length>0?(content+="<ul>",content+=printProp(children,depth+1),content+="</ul>"):""!==item.text()&&(content+=jsxc.escapeHTML(item.text()))),content+="</li>",0===depth&&$("#jsxc_dialog ul.jsxc_vCard").length>0&&($("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").length>0?$("#jsxc_dialog ul.jsxc_vCard li.jsxc_sep:first").before(content):$("#jsxc_dialog ul.jsxc_vCard").append(content),content="")}),depth>0)return content},failedToLoad=function(){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var content="<p>";content+=$.t("Sorry_your_buddy_doesnt_provide_any_information"),content+="</p>",$("#jsxc_dialog").append(content)}};jsxc.xmpp.loadVcard(bid,function(stanza){if(0!==$("#jsxc_dialog ul.jsxc_vCard").length){$("#jsxc_dialog p").remove();var photo=$(stanza).find("vCard > PHOTO");if(photo.length>0){var img=photo.find("BINVAL").text(),type=photo.find("TYPE").text(),src="data:"+type+";base64,"+img;photo.find("EXTVAL").length>0&&(src=photo.find("EXTVAL").text()),src=src.replace(/[\t\r\n\f]/gi,"");var img_el=$('<img class="jsxc_vCard" alt="avatar" />');img_el.attr("src",src),$("#jsxc_dialog h3").before(img_el)}return 0===$(stanza).find("vCard").length||1===$(stanza).find("vcard > *").length&&1===photo.length?void failedToLoad():void printProp($(stanza).find("vcard > *"),0)}},failedToLoad)},showSettings:function(){jsxc.gui.dialog.open(jsxc.gui.template.get("settings")),"false"!==jsxc.options.get("xmpp").overwrite&&jsxc.options.get("xmpp").overwrite!==!1||$(".jsxc_fieldsetXmpp").parent().hide(),$("#jsxc_dialog form").each(function(){var self=$(this);self.find('input[type!="submit"]').each(function(){var id=this.id.split("-"),prop=id[0],key=id[1],type=this.type,data=jsxc.options.get(prop);data&&"undefined"!=typeof data[key]&&("checkbox"===type?"false"!==data[key]&&data[key]!==!1&&(this.checked="checked"):$(this).val(data[key]))})}),$("#jsxc_dialog form").submit(function(){var self=$(this),data={};self.find('input[type!="submit"]').each(function(){var val,id=this.id.split("-"),prop=id[0],key=id[1],type=this.type;val="checkbox"===type?this.checked:$(this).val(),data[prop]||(data[prop]={}),data[prop][key]=val}),$.each(data,function(key,val){jsxc.options.set(key,val)});var cb=function(success){"string"==typeof self.attr("data-onsubmit")&&jsxc.exec(self.attr("data-onsubmit"),[success]),setTimeout(function(){success?self.find('button[type="submit"]').switchClass("btn-primary","btn-success"):self.find('button[type="submit"]').switchClass("btn-primary","btn-danger"),setTimeout(function(){self.find('button[type="submit"]').switchClass("btn-danger btn-success","btn-primary")},2e3)},200)};return jsxc.options.saveSettinsPermanent.call(this,data,cb),!1})},showRequestNotification:function(){jsxc.switchEvents({"notificationready.jsxc":function(){jsxc.gui.dialog.close(),jsxc.notification.init(),jsxc.storage.setUserItem("notification",1)},"notificationfailure.jsxc":function(){jsxc.gui.dialog.close(),jsxc.options.notification=!1,jsxc.storage.setUserItem("notification",0)}}),jsxc.gui.showConfirmDialog($.t("Should_we_notify_you_"),function(){jsxc.gui.dialog.open(jsxc.gui.template.get("pleaseAccept"),{noClose:!0}),jsxc.notification.requestPermission()},function(){$(document).trigger("notificationfailure.jsxc")})},showUnknownSender:function(bid){var confirmationText=$.t("You_received_a_message_from_an_unknown_sender_",{sender:bid});jsxc.gui.showConfirmDialog(confirmationText,function(){jsxc.gui.dialog.close(),jsxc.storage.saveBuddy(bid,{jid:bid,name:bid,status:0,sub:"none",res:[]}),jsxc.gui.window.open(bid)},function(){jsxc.storage.removeUserItem("chat",bid)})},showSelectionDialog:function(header,msg,primary,option,primaryLabel,optionLabel){var opt;opt=1===arguments.length&&"object"==typeof header&&null!==header?header:{header:header,msg:msg,primary:{label:primaryLabel,cb:primary},option:{label:optionLabel,cb:option}};var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("selectionDialog"),{noClose:!0});opt.header?dialog.find("h3").text(opt.header):dialog.find("h3").hide(),opt.msg?dialog.find("p").text(opt.msg):dialog.find("p").hide(),opt.primary&&opt.primary.label&&dialog.find(".btn-primary").text(opt.primary.label),opt.primary&&opt.option.label&&dialog.find(".btn-default").text(opt.option.label),opt.primary&&opt.primary.cb&&dialog.find(".btn-primary").click(opt.primary.cb),opt.primary&&opt.option.cb&&dialog.find(".btn-primary").click(opt.option.cb)},showNotification:function(subject,body,from){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("notification"));dialog.find("h3").text(subject),dialog.find(".jsxc_msg").text(body),from?dialog.find(".jsxc_meta").text($.t("from")+" "+from):dialog.find(".jsxc_meta").hide()},changePresence:function(pres,external){external!==!0&&jsxc.storage.setUserItem("presence",pres),jsxc.master&&jsxc.xmpp.sendPres(),$("#jsxc_presence > span").text($("#jsxc_presence .jsxc_inner ul .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres)},updatePresence:function(bid,pres){"own"===bid&&("dnd"===pres?($("#jsxc_menu .jsxc_muteNotification").addClass("jsxc_disabled"),jsxc.notification.muteSound(!0)):($("#jsxc_menu .jsxc_muteNotification").removeClass("jsxc_disabled"),jsxc.options.get("muteNotification")||jsxc.notification.unmuteSound(!0))),$('[data-bid="'+bid+'"]').each(function(){var el=$(this);el.attr("data-status",pres),el.find(".jsxc_avatar").length>0&&(el=el.find(".jsxc_avatar")),el.removeClass("jsxc_"+jsxc.CONST.STATUS.join(" jsxc_")).addClass("jsxc_"+pres)})},unreadMsg:function(bid){var winData=jsxc.storage.getUserItem("window",bid)||{},count=winData&&winData.unread||0;count=count===!0?1:count+1,winData.unread=count,jsxc.storage.setUserItem("window",bid,winData);var total=jsxc.storage.getUserItem("unreadMsg")||0;total++,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.gui._unreadMsg(bid,count)},_unreadMsg:function(bid,count){var win=jsxc.gui.window.get(bid);if("number"!=typeof count){var winData=jsxc.storage.getUserItem("window",bid);count=winData&&winData.unread||1,count=count===!0?1:count}var el=jsxc.gui.roster.getItem(bid).add(win);el.addClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(count)},readMsg:function(bid){var win=jsxc.gui.window.get(bid),winData=jsxc.storage.getUserItem("window",bid),count=winData&&winData.unread||0;count=count===!0?0:count;var el=jsxc.gui.roster.getItem(bid).add(win);if(el.removeClass("jsxc_unreadMsg"),el.find(".jsxc_unread").text(0),count>0){var total=jsxc.storage.getUserItem("unreadMsg")||0;total-=count,jsxc.storage.setUserItem("unreadMsg",total),jsxc.gui.favicon&&jsxc.gui.favicon.badge(total),jsxc.storage.updateUserItem("window",bid,"unread",0)}},detectUriScheme:function(container){container=$(container?container:"body"),container.find("a[href^='xmpp:']").each(function(){var action,element=$(this),href=element.attr("href").replace(/^xmpp:/,""),jid=href.split("?")[0],params={};if(href.indexOf("?")<0)action="message";else{var pairs=href.substring(href.indexOf("?")+1).split(";");action=pairs[0];var i,key,value;for(i=1;i<pairs.length;i++)key=pairs[i].split("=")[0],value=pairs[i].indexOf("=")>0?pairs[i].substring(pairs[i].indexOf("=")+1):null,params[decodeURIComponent(key)]=decodeURIComponent(value)}"function"==typeof jsxc.gui.queryActions[action]&&(element.addClass("jsxc_uriScheme jsxc_uriScheme_"+action),element.off("click").click(function(ev){return ev.stopPropagation(),jsxc.gui.queryActions[action].call(jsxc,jid,params),!1}))})},detectEmail:function(container){container=$(container?container:"body"),container.find('a[href^="mailto:"],a[href^="xmpp:"]').each(function(){var spot=$("<span>X</span>").addClass("jsxc_spot"),href=$(this).attr("href").replace(/^ *(mailto|xmpp):/,"").trim();if(""!==href&&href!==Strophe.getBareJidFromJid(jsxc.storage.getItem("jid"))){var bid=jsxc.jidToBid(href),self=$(this),s=self.prev();s.hasClass("jsxc_spot")||(s=spot.clone().attr("data-bid",bid),self.before(s)),s.off("click"),jsxc.storage.getUserItem("buddy",bid)?(jsxc.gui.update(bid),s.click(function(){return jsxc.gui.window.open(bid),!1})):s.click(function(){return jsxc.gui.showContactDialog(href),!1})}})},avatarPlaceholder:function(el,seed,text){text=text||seed;var options=jsxc.options.get("avatarplaceholder")||{},hash=jsxc.hashStr(seed),hue=Math.abs(hash)%360,saturation=options.saturation||90,lightness=options.lightness||65;el.css({"background-color":"hsl("+hue+", "+saturation+"%, "+lightness+"%)",color:"#fff","font-weight":"bold","text-align":"center","line-height":el.height()+"px","font-size":.6*el.height()+"px"}),"string"==typeof text&&text.length>0&&el.text(text[0].toUpperCase())},shortnameToImage:function(str){str=str.replace(jsxc.gui.regShortNames,function(shortname){if(!("undefined"!=typeof shortname&&""!==shortname&&(shortname in jsxc.gui.emoticonList.emojione||shortname in jsxc.gui.emoticonList.core)))return shortname;var src,filename;jsxc.gui.emoticonList.core[shortname]?(filename=jsxc.gui.emoticonList.core[shortname][jsxc.gui.emoticonList.core[shortname].length-1].replace(/^:([^:]+):$/,"$1"),src=jsxc.options.root+"/img/emotions/"+filename+".svg"):jsxc.gui.emoticonList.emojione[shortname]&&(filename=jsxc.gui.emoticonList.emojione[shortname].fname,src=jsxc.options.root+"/lib/emojione/assets/svg/"+filename+".svg");var div=$("<div>");return div.addClass("jsxc_emoticon"),div.css("background-image","url("+src+")"),div.attr("title",shortname),div.prop("outerHTML")});var obj=$("<div>"+str+"</div>");return 1===obj.find(".jsxc_emoticon").length&&0===obj.text().replace(/ /,"").length&&1===obj.find("*").length&&(obj.find(".jsxc_emoticon").addClass("jsxc_large"),str=obj.prop("outerHTML")),str},restore:function(){jsxc.restoreRoster(),jsxc.restoreWindows(),jsxc.restoreCompleted=!0,$(document).trigger("restoreCompleted.jsxc"),jsxc.changeUIState(jsxc.CONST.UISTATE.READY)}},jsxc.gui.roster={ready:!1,loaded:!1,init:function(){$(jsxc.options.rosterAppend+":first").append($(jsxc.gui.template.get("roster"))),jsxc.options.get("hideOffline")&&($("#jsxc_menu .jsxc_hideOffline").text($.t("Show_offline")),$("#jsxc_buddylist").addClass("jsxc_hideOffline")),$("#jsxc_menu .jsxc_settings").click(function(){jsxc.gui.showSettings()}),$("#jsxc_menu .jsxc_hideOffline").click(function(){var hideOffline=!jsxc.options.get("hideOffline");hideOffline?$("#jsxc_buddylist").addClass("jsxc_hideOffline"):$("#jsxc_buddylist").removeClass("jsxc_hideOffline"),$(this).text(hideOffline?$.t("Show_offline"):$.t("Hide_offline")),jsxc.options.set("hideOffline",hideOffline)}),jsxc.options.get("muteNotification")&&jsxc.notification.muteSound(),$("#jsxc_menu .jsxc_muteNotification").click(function(){
+if("dnd"!==jsxc.storage.getUserItem("presence")){var mute=!jsxc.options.get("muteNotification");mute?jsxc.notification.muteSound():jsxc.notification.unmuteSound()}}),$("#jsxc_roster .jsxc_addBuddy").click(function(){jsxc.gui.showContactDialog()}),$("#jsxc_roster .jsxc_onlineHelp").click(function(){window.open(jsxc.options.onlineHelp,"onlineHelp")}),$("#jsxc_roster .jsxc_about").click(function(){jsxc.gui.showAboutDialog()}),$("#jsxc_toggleRoster").click(function(){jsxc.gui.roster.toggle()}),$("#jsxc_presence li").click(function(){var self=$(this),pres=self.data("pres");"offline"===pres?jsxc.xmpp.logout(!1):jsxc.gui.changePresence(pres)}),$("#jsxc_buddylist").slimScroll({distance:"3px",height:$("#jsxc_roster").height()-31+"px",width:$("#jsxc_buddylist").width()+"px",color:"#fff",opacity:"0.5"}),$("#jsxc_roster > .jsxc_bottom > div").each(function(){jsxc.gui.toggleList.call($(this))});var rosterState=jsxc.storage.getUserItem("roster")||(jsxc.options.get("loginForm").startMinimized?"hidden":"shown");$("#jsxc_roster").addClass("jsxc_state_"+rosterState),$("#jsxc_windowList").addClass("jsxc_roster_"+rosterState);var pres=jsxc.storage.getUserItem("presence")||"online";$("#jsxc_presence > span").text($("#jsxc_presence .jsxc_"+pres).text()),jsxc.gui.updatePresence("own",pres),jsxc.gui.tooltip("#jsxc_roster"),jsxc.notice.load(),jsxc.gui.roster.ready=!0,$(document).trigger("ready.roster.jsxc")},add:function(bid){var data=jsxc.storage.getUserItem("buddy",bid),bud=jsxc.gui.buddyTemplate.clone().attr("data-bid",bid).attr("data-type",data.type||"chat");$("#jsxc_roster > p").remove(),jsxc.gui.roster.insert(bid,bud),bud.click(function(){jsxc.gui.window.open(bid)}),bud.find(".jsxc_msg").click(function(){return jsxc.gui.window.open(bid),!1}),bud.find(".jsxc_rename").click(function(){return jsxc.gui.roster.rename(bid),!1}),"groupchat"!==data.type&&bud.find(".jsxc_delete").click(function(){return jsxc.gui.showRemoveDialog(bid),!1});var expandClick=function(){return bud.trigger("extra.jsxc"),$("body").click(),bud.find(".jsxc_menu").hasClass("jsxc_open")||(bud.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){bud.find(".jsxc_menu").removeClass("jsxc_open")})),!1};bud.find(".jsxc_more").click(expandClick),bud.find(".jsxc_vcard").click(function(){return jsxc.gui.showVcard(data.jid),!1}),jsxc.gui.update(bid),$("#jsxc_buddylist").slimScroll({scrollTo:"0px"});for(var history=jsxc.storage.getUserItem("history",bid)||[],i=0;history.length>i;){var message=new jsxc.Message(history[i]);if(message.direction!==jsxc.Message.SYS){$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(message.msg);break}i++}$(document).trigger("add.roster.jsxc",[bid,data,bud])},getItem:function(bid){return $("#jsxc_buddylist > li[data-bid='"+bid+"']")},insert:function(bid,li){var data=jsxc.storage.getUserItem("buddy",bid),listElements=$("#jsxc_buddylist > li"),insert=!1;data.name||(data.name=bid);var status="both"===data.sub?data.status:-1;listElements.each(function(){var thisStatus="both"===$(this).data("sub")?$(this).data("status"):-1;if($(this).data("name").toLowerCase()>data.name.toLowerCase()&&thisStatus===status||thisStatus<status)return $(this).before(li),insert=!0,!1}),insert||li.appendTo("#jsxc_buddylist")},reorder:function(bid){jsxc.gui.roster.insert(bid,jsxc.gui.roster.remove(bid))},remove:function(bid){return jsxc.gui.roster.getItem(bid).detach()},purge:function(bid){jsxc.master&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("otr",bid),jsxc.storage.removeUserItem("otr_version_"+bid),jsxc.storage.removeUserItem("chat",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.removeUserElement("buddylist",bid),jsxc.storage.removeUserElement("windowlist",bid)),jsxc.gui.window._close(bid),jsxc.gui.roster.remove(bid)},rename:function(bid){var name=jsxc.gui.roster.getItem(bid).find(".jsxc_name"),options=jsxc.gui.roster.getItem(bid).find(".jsxc_lastmsg, .jsxc_more"),input=$('<input type="text" name="name"/>');$("body").click(),options.hide(),name=name.replaceWith(input),input.val(name.text()),input.keypress(function(ev){13===ev.which&&(options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,$(this).val()),$("html").off("click"))}),input.click(function(){return!1}),$("html").one("click",function(){options.css("display",""),input.replaceWith(name),jsxc.gui.roster._rename(bid,input.val())})},_rename:function(bid,newname){if(jsxc.master){var d=jsxc.storage.getUserItem("buddy",bid)||{};if("chat"===d.type){var iq=$iq({type:"set"}).c("query",{xmlns:"jabber:iq:roster"}).c("item",{jid:Strophe.getBareJidFromJid(d.jid),name:newname});jsxc.xmpp.conn.sendIQ(iq)}else"groupchat"===d.type&&jsxc.xmpp.bookmarks.add(bid,newname,d.nickname,d.autojoin)}jsxc.storage.updateUserItem("buddy",bid,"name",newname),jsxc.gui.update(bid)},toggle:function(state){var duration,roster=$("#jsxc_roster"),wl=$("#jsxc_windowList");return state||(state=jsxc.storage.getUserItem("roster")===jsxc.CONST.HIDDEN?jsxc.CONST.SHOWN:jsxc.CONST.HIDDEN),"shown"===state&&jsxc.isExtraSmallDevice()&&jsxc.gui.window.hide(),jsxc.storage.setUserItem("roster",state),roster.removeClass("jsxc_state_hidden jsxc_state_shown").addClass("jsxc_state_"+state),wl.removeClass("jsxc_roster_hidden jsxc_roster_shown").addClass("jsxc_roster_"+state),duration=1e3*parseFloat(roster.css("transitionDuration")||0),setTimeout(function(){jsxc.gui.updateWindowListSB()},duration),$(document).trigger("toggle.roster.jsxc",[state,duration]),duration},noConnection:function(){$("#jsxc_roster").addClass("jsxc_noConnection"),$("#jsxc_buddylist").empty(),$("#jsxc_roster").append($("<p>"+$.t("no_connection")+"</p>").append(" <a>"+$.t("relogin")+"</a>").click(function(){jsxc.gui.showLoginBox()}))},empty:function(){var text=$("<p>"+$.t("Your_roster_is_empty_add_")+"</p>"),link=text.find("a");link.click(function(){jsxc.gui.showContactDialog()}),text.append(link),text.append("."),$("#jsxc_roster").prepend(text)}},jsxc.gui.dialog={open:function(data,o){var opt=$.extend({name:""},o),src=$('<div data-name="'+opt.name+'" id="jsxc_dialog" />').append(data);return $.magnificPopup.open({items:{src:src},type:"inline",modal:opt.noClose,callbacks:{beforeClose:function(){$(document).trigger("cleanup.dialog.jsxc")},afterClose:function(){$(document).trigger("close.dialog.jsxc")},open:function(){$("#jsxc_dialog .jsxc_close").click(function(ev){ev.preventDefault(),jsxc.gui.dialog.close()}),$("#jsxc_dialog form").each(function(){var form=$(this);form.find("button[data-jsxc-loading-text]").each(function(){var btn=$(this);btn.on("btnloading.jsxc",function(){btn.prop("disabled")||(btn.prop("disabled",!0),btn.data("jsxc_value",btn.text()),btn.text(btn.attr("data-jsxc-loading-text")))}),btn.on("btnfinished.jsxc",function(){btn.prop("disabled")&&(btn.prop("disabled",!1),btn.text(btn.data("jsxc_value")))})})}),jsxc.gui.dialog.resize(),$(document).trigger("complete.dialog.jsxc")}}}),$("#jsxc_dialog")},close:function(name){jsxc.debug("close dialog"),"string"==typeof name&&name.length>0&&!jsxc.el_exists("#jsxc_dialog[data-name="+name+"]")||$.magnificPopup.close()},resize:function(){}},jsxc.gui.window={init:function(bid){function resizeTextarea(){$(this).data("originalHeight")||$(this).data("originalHeight",$(this).outerHeight()),$(this).outerHeight()<this.scrollHeight-1&&$(this).val()&&$(this).height(1.5*$(this).data("originalHeight"))}if(jsxc.gui.window.get(bid).length>0)return jsxc.gui.window.get(bid);var win=jsxc.gui.windowTemplate.clone().attr("data-bid",bid).appendTo("#jsxc_windowList > ul"),data=jsxc.storage.getUserItem("buddy",bid);win.data("jid",data.jid);var expandClick=function(){return win.trigger("extra.jsxc"),$("body").click(),win.find(".jsxc_menu").hasClass("jsxc_open")||(win.find(".jsxc_menu").addClass("jsxc_open"),$("body").one("click",function(){win.find(".jsxc_menu").removeClass("jsxc_open")})),!1};win.find(".jsxc_more").click(expandClick),win.find(".jsxc_menu").click(function(){$("body").click()}),win.find(".jsxc_verification").click(function(){jsxc.gui.showVerification(bid)}),win.find(".jsxc_fingerprints").click(function(){jsxc.gui.showFingerprints(bid)}),win.find(".jsxc_transfer").click(function(){jsxc.otr.toggleTransfer(bid)}),win.find(".jsxc_bar").click(function(){jsxc.gui.window.toggle(bid)}),win.find(".jsxc_close").click(function(){jsxc.gui.window.close(bid)}),win.find(".jsxc_clear").click(function(){jsxc.gui.window.clear(bid)}),win.find(".jsxc_sendFile").click(function(){$("body").click(),jsxc.gui.window.sendFile(bid)}),win.find(".jsxc_tools").click(function(){return!1});var textinputBlurTimeout;if(win.find(".jsxc_textinput").keyup(function(ev){var body=$(this).val();13!==ev.which&&jsxc.xmpp.chatState.startComposing(bid),13!==ev.which||ev.shiftKey||(body="",jsxc.xmpp.chatState.endComposing(bid)),jsxc.storage.updateUserItem("window",bid,"text",body),27===ev.which&&jsxc.gui.window.close(bid)}).keypress(function(ev){return 13!==ev.which||ev.shiftKey||!$(this).val()?void resizeTextarea.call(this):(jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.OUT,msg:$(this).val()}),$(this).css("height","").val(""),void ev.preventDefault())}).focus(function(){textinputBlurTimeout&&clearTimeout(textinputBlurTimeout),jsxc.gui.readMsg(bid),resizeTextarea.call(this)}).blur(function(){var self=$(this);textinputBlurTimeout=setTimeout(function(){self.css("height","")},1200)}).mouseenter(function(){$("#jsxc_windowList").data("isOver",!0)}).mouseleave(function(){$("#jsxc_windowList").data("isOver",!1)}),win.find(".jsxc_textarea").click(function(){"function"!=typeof getSelection||getSelection().toString()||win.find(".jsxc_textinput").focus()}),win.find(".jsxc_textarea").slimScroll({height:"234px",distance:"3px"}),win.find(".jsxc_name").disableSelection(),win.find(".slimScrollDiv").resizable({handles:"w, nw, n",minHeight:234,minWidth:250,resize:function(event,ui){jsxc.gui.window.resize(win,ui)},start:function(){win.removeClass("jsxc_normal")},stop:function(){win.addClass("jsxc_normal")}}),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),$.inArray(bid,jsxc.storage.getUserItem("windowlist"))<0){var wl=jsxc.storage.getUserItem("windowlist")||[];wl.push(bid),jsxc.storage.setUserItem("windowlist",wl),jsxc.storage.setUserItem("window",bid,{minimize:!0,text:"",unread:0}),jsxc.gui.window.hide(bid)}else jsxc.storage.getUserItem("window",bid).unread&&jsxc.gui._unreadMsg(bid);return $.each(jsxc.gui.emotions,function(i,val){var ins=val[0].split(" ")[0],li=$("<li>");li.append(jsxc.gui.shortnameToImage(":"+val[1]+":")),li.find("div").attr("title",ins),li.click(function(){win.find(".jsxc_textinput").val(win.find(".jsxc_textinput").val()+ins),win.find(".jsxc_textinput").focus()}),win.find(".jsxc_emoticons ul").prepend(li)}),jsxc.gui.toggleList.call(win.find(".jsxc_emoticons")),jsxc.gui.window.restoreChat(bid),jsxc.gui.update(bid),jsxc.gui.updateWindowListSB(),jsxc.master&&!jsxc.otr.objects[bid]?jsxc.otr.create(bid):jsxc.otr.enable(bid),$(document).trigger("init.window.jsxc",[win]),win},resize:function(win,ui,outer){var bid;if("object"==typeof win)bid=win.attr("data-bid");else{if("string"!=typeof win)return void jsxc.warn("jsxc.gui.window.resize has to be called either with bid or window object.");bid=win,win=jsxc.gui.window.get(bid)}win.attr("data-default-height")||win.attr("data-default-height",win.find(".ui-resizable").height()),win.attr("data-default-width")||win.attr("data-default-width",win.find(".ui-resizable").width());var outer_height_diff=outer?win.find(".jsxc_window").outerHeight()-win.find(".ui-resizable").height():0;ui=$.extend({size:{width:parseInt(win.attr("data-default-width")),height:parseInt(win.attr("data-default-height"))+outer_height_diff}},ui||{}),outer&&(ui.size.height-=outer_height_diff),win.find(".slimScrollDiv").css({width:ui.size.width,height:ui.size.height}),win.width(ui.size.width),win.find(".jsxc_textarea").slimScroll({height:ui.size.height}),$(document).trigger("resize.window.jsxc",[win,bid,ui.size])},fullsize:function(bid){var win=jsxc.gui.window.get(bid),size=jsxc.options.viewport.getSize();size.width-=10,size.height-=win.find(".jsxc_bar").outerHeight()+win.find(".jsxc_textinput").outerHeight(),jsxc.gui.window.resize(win,{size:size})},get:function(id){return $("li.jsxc_windowItem[data-bid='"+jsxc.jidToBid(id)+"']")},open:function(bid){var win=jsxc.gui.window.init(bid);return jsxc.gui.window.show(bid),jsxc.gui.window.highlight(bid),win},close:function(bid){return 0===jsxc.gui.window.get(bid).length?void jsxc.warn("Want to close a window, that is not open."):(jsxc.storage.removeUserElement("windowlist",bid),jsxc.storage.removeUserItem("window",bid),jsxc.storage.getUserItem("buddylist").indexOf(bid)<0&&(jsxc.storage.removeUserItem("buddy",bid),jsxc.storage.removeUserItem("chat",bid)),void jsxc.gui.window._close(bid))},_close:function(bid){jsxc.gui.window.get(bid).remove(),jsxc.gui.updateWindowListSB()},toggle:function(bid){var win=jsxc.gui.window.get(bid);0!==win.parents("#jsxc_windowList").length&&(win.hasClass("jsxc_min")?jsxc.gui.window.show(bid):jsxc.gui.window.hide(bid),jsxc.gui.updateWindowListSB())},show:function(bid){return jsxc.storage.updateUserItem("window",bid,"minimize",!1),jsxc.gui.window._show(bid)},_show:function(bid){var win=jsxc.gui.window.get(bid),duration=0;jsxc.isExtraSmallDevice()&&(parseFloat($("#jsxc_roster").css("right"))>=0&&(duration=jsxc.gui.roster.toggle()),jsxc.gui.window.hide(),jsxc.gui.window.fullsize(bid)),win.removeClass("jsxc_min").addClass("jsxc_normal"),win.find(".jsxc_window").css("bottom","0"),setTimeout(function(){var padding=$("#jsxc_windowListSB").width(),innerWidth=$("#jsxc_windowList>ul").width(),outerWidth=$("#jsxc_windowList").width()-padding;if(innerWidth>outerWidth){var offset=parseInt($("#jsxc_windowList>ul").css("right")),width=win.outerWidth(!0),right=innerWidth-win.position().left-width+offset,left=outerWidth-(innerWidth-win.position().left)-offset;left<0&&jsxc.gui.scrollWindowListBy(left*-1),right<0&&jsxc.gui.scrollWindowListBy(right)}},duration),jsxc.gui.window.scrollDown(bid),jsxc.restoreCompleted&&win.find(".jsxc_textinput").focus(),win.trigger("show.window.jsxc")},hide:function(bid){var hide=function(bid){jsxc.storage.updateUserItem("window",bid,"minimize",!0),jsxc.gui.window._hide(bid)};bid?hide(bid):$("#jsxc_windowList > ul > li").each(function(){var el=$(this);el.hasClass("jsxc_min")||hide(el.attr("data-bid"))})},_hide:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_normal").addClass("jsxc_min"),win.find(".jsxc_window").css("bottom",-1*win.find(".jsxc_fade").height()),win.trigger("hidden.window.jsxc")},highlight:function(bid){var el=jsxc.gui.window.get(bid).find(" .jsxc_bar");el.is(":animated")||el.effect("highlight",{color:"orange"},2e3)},scrollDown:function(bid){var chat=jsxc.gui.window.get(bid).find(".jsxc_textarea");0!==chat.length&&chat.slimScroll({scrollTo:chat.get(0).scrollHeight+"px"})},postMessage:function(message){"object"!=typeof message||message instanceof jsxc.Message||(message=new jsxc.Message(message));var data=jsxc.storage.getUserItem("buddy",message.bid);!message.htmlMsg&&message.msg&&(message.htmlMsg=message.msg),message.msg=jsxc.removeHTML(message.msg),message.msg=jsxc.escapeHTML(message.msg),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&message.forwarded!==!0&&(message.direction=jsxc.Message.SYS,message.msg=$.t("your_message_wasnt_send_please_end_your_private_conversation")),message.direction===jsxc.Message.OUT&&data.msgstate===OTR.CONST.MSGSTATE_FINISHED&&(message.direction="sys",message.msg=$.t("unencrypted_message_received")+" "+message.msg),message.encrypted="boolean"==typeof message.encrypted?message.encrypted:data.msgstate===OTR.CONST.MSGSTATE_ENCRYPTED;try{message.save()}catch(err){jsxc.warn("Unable to save message.",err),message=new jsxc.Message({msg:"Unable to save that message. Please clear some chat histories.",direction:jsxc.Message.SYS})}return"in"!==message.direction||jsxc.gui.window.get(message.bid).find(".jsxc_textinput").is(":focus")||(jsxc.gui.unreadMsg(message.bid),$(document).trigger("postmessagein.jsxc",[message.bid,message.htmlMsg])),message.direction===jsxc.Message.OUT&&jsxc.master&&message.forwarded!==!0&&message.htmlMsg&&jsxc.xmpp.sendMessage(message),jsxc.gui.window._postMessage(message),"out"===message.direction&&"?"===message.msg&&jsxc.options.get("theAnswerToAnything")!==!1&&("undefined"==typeof jsxc.options.get("theAnswerToAnything")||100*Math.random()%42<1)&&(jsxc.options.set("theAnswerToAnything",!0),jsxc.gui.window.postMessage(new jsxc.Message({bid:message.bid,direction:jsxc.Message.SYS,msg:"42"}))),message},_postMessage:function(message,restore){var bid=message.bid,win=jsxc.gui.window.get(bid),msg=message.msg,direction=message.direction,uid=message._uid;win.find(".jsxc_textinput").is(":not(:focus)")&&direction===jsxc.Message.IN&&!restore&&jsxc.gui.window.highlight(bid),msg=msg.replace(jsxc.CONST.REGEX.URL,function(url){var href=url.match(/^https?:\/\//i)?url:"http://"+url;return'<a href="'+href+'" target="_blank">'+url+"</a>"}),msg=msg.replace(new RegExp("(xmpp:)?("+jsxc.CONST.REGEX.JID.source+")(\\?[^\\s]+\\b)?","i"),function(match,protocol,jid,action){return"xmpp:"===protocol?("string"==typeof action&&(jid+=action),'<a href="xmpp:'+jid+'">xmpp:'+jid+"</a>"):'<a href="mailto:'+jid+'" target="_blank">mailto:'+jid+"</a>"}),$.each(jsxc.gui.emotions,function(i,val){msg=msg.replace(val[2],":"+val[1]+":")}),msg=jsxc.gui.shortnameToImage(msg),msg=msg.replace(/(\r\n|\r|\n)/g,"<br />");var bidData=jsxc.storage.getUserItem("buddy",bid)||{};"in"===direction&&(msg=msg.replace(/^\/me /,'<i title="/me">'+jsxc.removeHTML(bidData.name||bid)+"</i> "));var msgDiv=$("<div>"),msgTsDiv=$("<div>");if(msgDiv.addClass("jsxc_chatmessage jsxc_"+direction),msgDiv.attr("id",uid.replace(/:/g,"-")),msgDiv.html("<div>"+msg+"</div>"),msgTsDiv.addClass("jsxc_timestamp"),msgTsDiv.text(jsxc.getFormattedTime(message.stamp)),message.isReceived()?msgDiv.addClass("jsxc_received"):msgDiv.removeClass("jsxc_received"),message.forwarded?msgDiv.addClass("jsxc_forwarded"):msgDiv.removeClass("jsxc_forwarded"),message.encrypted?msgDiv.addClass("jsxc_encrypted"):msgDiv.removeClass("jsxc_encrypted"),message.error?msgDiv.addClass("jsxc_error"):msgDiv.removeClass("jsxc_error"),msgDiv.attr("title",message.error),message.attachment&&message.attachment.name){var attachment=$("<div>");attachment.addClass("jsxc_attachment"),attachment.addClass("jsxc_"+message.attachment.type.replace(/\//,"-")),attachment.addClass("jsxc_"+message.attachment.type.replace(/^([^\/]+)\/.*/,"$1")),message.attachment.persistent===!1&&attachment.addClass("jsxc_notPersistent"),message.attachment.data&&attachment.addClass("jsxc_data"),message.attachment.type.match(/^image\//)&&message.attachment.thumbnail?$('<img alt="preview">').attr("src",message.attachment.thumbnail).attr("title",message.attachment.name).appendTo(attachment):attachment.text(message.attachment.name),message.attachment.data&&(attachment=$("<a>").append(attachment),attachment.attr("href",message.attachment.data),attachment.attr("download",message.attachment.name),message.attachment.data===message.msg&&msgDiv.find("div").first().empty()),msgDiv.find("div").first().append(attachment)}if("sys"===direction?jsxc.gui.window.get(bid).find(".jsxc_textarea").append('<div class="jsxc_clear"/>'):"undefined"!=typeof message.stamp&&msgDiv.append(msgTsDiv),"sys"!==direction&&$('[data-bid="'+bid+'"]').find(".jsxc_lastmsg .jsxc_text").html(msg),jsxc.Message.getDOM(uid).length>0?jsxc.Message.getDOM(uid).replaceWith(msgDiv):win.find(".jsxc_textarea").append(msgDiv),"object"==typeof message.sender&&null!==message.sender){var title="",avatarDiv=$("<div>");if(avatarDiv.addClass("jsxc_avatar").prependTo(msgDiv),"string"==typeof message.sender.jid){msgDiv.attr("data-bid",jsxc.jidToBid(message.sender.jid));var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(message.sender.jid))||{};jsxc.gui.updateAvatar(msgDiv,jsxc.jidToBid(message.sender.jid),data.avatar),title=jsxc.jidToBid(message.sender.jid)}"string"==typeof message.sender.name&&(msgDiv.attr("data-name",message.sender.name),"string"!=typeof message.sender.jid&&jsxc.gui.avatarPlaceholder(avatarDiv,message.sender.name),""!==title&&(title="\n"+title),title=message.sender.name+title,msgTsDiv.text(msgTsDiv.text()+" "+message.sender.name)),avatarDiv.attr("title",jsxc.escapeHTML(title)),msgDiv.prev().length>0&&msgDiv.prev().find(".jsxc_avatar").attr("title")===avatarDiv.attr("title")&&avatarDiv.css("visibility","hidden")}jsxc.gui.detectUriScheme(win),jsxc.gui.detectEmail(win),jsxc.gui.window.scrollDown(bid)},setText:function(bid,text){jsxc.gui.window.get(bid).find(".jsxc_textinput").val(text)},restoreChat:function(bid){var chat=jsxc.storage.getUserItem("chat",bid);if(chat){for(;null!==chat&&chat.length>0;){var c=chat.pop();c.bid=bid,c._uid=c.uid,delete c.uid;var message=new jsxc.Message(c);message.save(),jsxc.gui.window._postMessage(message,!0)}jsxc.storage.removeUserItem("chat",bid)}for(var history=jsxc.storage.getUserItem("history",bid);null!==history&&history.length>0;){var uid=history.pop();jsxc.gui.window._postMessage(new jsxc.Message(uid),!0)}},clear:function(bid){jsxc.storage.removeUserItem("chat",bid);var history=jsxc.storage.getUserItem("history",bid)||[];history.map(function(id){jsxc.storage.removeUserItem("msg",id)}),jsxc.storage.setUserItem("history",bid,[]);var win=jsxc.gui.window.get(bid);win.length>0&&win.find(".jsxc_textarea").empty()},receivedMessage:function(bid,uid){jsxc.warn("Using deprecated receivedMessage.");var message=new jsxc.Message(uid);message.received()},updateProgress:function(message,sent,size){var div=message.getDOM(),span=div.find(".jsxc_timestamp span");0===span.length&&(div.find(".jsxc_timestamp").append("<span>"),span=div.find(".jsxc_timestamp span")),span.text(" "+Math.round(sent/size*100)+"%"),sent===size&&span.remove()},showOverlay:function(bid,content,allowClose){var win=jsxc.gui.window.get(bid);win.find(".jsxc_overlay .jsxc_body").empty().append(content),win.find(".jsxc_overlay .jsxc_close").off("click").click(function(){jsxc.gui.window.hideOverlay(bid)}),allowClose!==!0?win.find(".jsxc_overlay .jsxc_close").hide():win.find(".jsxc_overlay .jsxc_close").show(),win.addClass("jsxc_showOverlay")},hideOverlay:function(bid){var win=jsxc.gui.window.get(bid);win.removeClass("jsxc_showOverlay")},selectResource:function(bid,text,cb,res){if(res=res||jsxc.storage.getUserItem("res",bid)||[],cb=cb||function(){},res.length>0){var i,li,content=$("<div>"),list=$("<ul>");for(i=0;i<res.length;i++)li=$("<li>"),li.append($("<a>").text(res[i])),li.appendTo(list);list.find("a").click(function(ev){ev.preventDefault(),jsxc.gui.window.hideOverlay(bid),cb({status:"selected",result:$(this).text()})}),text&&$("<p>").text(text).appendTo(content),list.appendTo(content),jsxc.gui.window.showOverlay(bid,content)}else cb({status:"unavailable"})},smpRequest:function(bid,question){var content=$("<div>"),p=$("<p>");p.text($.t("smpRequestReceived")),p.appendTo(content);var abort=$("<button>");abort.text($.t("Abort")),abort.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.storage.removeUserItem("smp",bid),jsxc.master&&jsxc.otr.objects[bid]&&jsxc.otr.objects[bid].sm.abort()}),abort.appendTo(content);var verify=$("<button>");verify.text($.t("Verify")),verify.addClass("jsxc_btn jsxc_btn-primary"),verify.click(function(){jsxc.gui.window.hideOverlay(bid),jsxc.otr.onSmpQuestion(bid,question)}),verify.appendTo(content),jsxc.gui.window.showOverlay(bid,content)},sendFile:function(jid){jsxc.fileTransfer.startGuiAction(jid)}},jsxc.gui.template={},jsxc.gui.template.get=function(name,bid,msg){var ph={my_priv_fingerprint:jsxc.storage.getUserItem("priv_fingerprint")?jsxc.storage.getUserItem("priv_fingerprint").replace(/(.{8})/g,"$1 "):$.t("not_available"),my_jid:jsxc.storage.getItem("jid")||"",my_node:Strophe.getNodeFromJid(jsxc.storage.getItem("jid")||"")||"",root:jsxc.options.root,app_name:jsxc.options.app_name,version:jsxc.version};if(bid){var data=jsxc.storage.getUserItem("buddy",bid);$.extend(ph,{bid_priv_fingerprint:data&&data.fingerprint?data.fingerprint.replace(/(.{8})/g,"$1 "):$.t("not_available"),bid_jid:bid,bid_name:data&&data.name?jsxc.escapeHTML(data.name):bid})}msg&&$.extend(ph,{msg:msg});var ret=jsxc.gui.template[name];return"string"==typeof ret?(ret=ret.replace(/\{\{root\}\}/g,ph.root),ret=$(ret),ret.find("[data-var]").each(function(){var key=$(this).attr("data-var"),val="string"==typeof ph[key]?ph[key]:"(Unknown placeholder: "+key+")";"INPUT"===$(this).prop("tagName").toUpperCase()?$(this).val(val):$(this).text(val)}),ret.localize(ph),ret):(jsxc.debug("Template not available: "+name),name)},jsxc.Message=function(){this._uid=null,this._received=!1,this.encrypted=null,this.forwarded=!1,this.stamp=(new Date).getTime(),this.type=jsxc.Message.PLAIN,"string"==typeof arguments[0]&&arguments[0].length>0&&1===arguments.length?(this._uid=arguments[0],this.load(this._uid)):"object"==typeof arguments[0]&&null!==arguments[0]&&$.extend(this,arguments[0]),this._uid||(this._uid=(new Date).getTime()+":msg")},jsxc.Message.prototype.load=function(uid){var data=jsxc.storage.getUserItem("msg",uid);data||jsxc.debug("Could not load message with uid "+uid),$.extend(this,data)},jsxc.Message.prototype.save=function(){var history;if(this.bid&&(history=jsxc.storage.getUserItem("history",this.bid)||[],history.indexOf(this._uid)<0?history.length>jsxc.options.get("numberOfMsg")&&jsxc.Message.delete(history.pop()):history=null),Image&&this.attachment&&this.attachment.type.match(/^image\//i)&&this.attachment.data&&!this.attachment.thumbnail){var sHeight,sWidth,sx,sy,dHeight=100,dWidth=100,canvas=$("<canvas>").get(0);canvas.width=dWidth,canvas.height=dHeight;var ctx=canvas.getContext("2d"),img=new Image;img.src=this.attachment.data,img.height>img.width?(sHeight=img.width,sWidth=img.width,sx=0,sy=(img.height-img.width)/2):(sHeight=img.height,sWidth=img.height,sx=(img.width-img.height)/2,sy=0),ctx.drawImage(img,sx,sy,sWidth,sHeight,0,0,dWidth,dHeight),this.attachment.thumbnail=canvas.toDataURL(),"out"===this.direction&&(this.attachment.data=null)}var data;return this.attachment&&this.attachment.size>jsxc.options.maxStorableSize&&"in"===this.direction&&(jsxc.debug("Attachment to large to store"),data=this.attachment.data,this.attachment.data=null,this.attachment.persistent=!1),jsxc.storage.setUserItem("msg",this._uid,this),history&&(history.unshift(this._uid),jsxc.storage.setUserItem("history",this.bid,history)),data&&this.attachment&&(this.attachment.data=data),this},jsxc.Message.prototype.delete=function(){jsxc.Message.delete(this._uid)},jsxc.Message.prototype.getDOM=function(){return jsxc.Message.getDOM(this._uid)},jsxc.Message.prototype.received=function(){this._received=!0,this.save(),this.getDOM().addClass("jsxc_received")},jsxc.Message.prototype.isReceived=function(){return this._received},jsxc.Message.delete=function(uid){var data=jsxc.storage.getUserItem("msg",uid);if(data&&(jsxc.storage.removeUserItem("msg",uid),data.bid)){var history=jsxc.storage.getUserItem("history",data.bid)||[];history=$.grep(history,function(el){return el!==uid}),jsxc.storage.setUserItem("history",data.bid,history)}},jsxc.Message.getDOM=function(uid){return $("#"+uid.replace(/:/g,"-"))},jsxc.Message.IN="in",jsxc.Message.OUT="out",jsxc.Message.SYS="sys",jsxc.Message.HTML="html",jsxc.Message.PLAIN="plain",jsxc.muc={conn:null,CONST:{AFFILIATION:{ADMIN:"admin",MEMBER:"member",OUTCAST:"outcast",OWNER:"owner",NONE:"none"},ROLE:{MODERATOR:"moderator",PARTICIPANT:"participant",VISITOR:"visitor",NONE:"none"},ROOMSTATE:{INIT:0,ENTERED:1,EXITED:2,AWAIT_DESTRUCTION:3,DESTROYED:4},ROOMCONFIG:{INSTANT:"instant"}},init:function(o){var self=jsxc.muc;self.conn=jsxc.xmpp.conn;var options=o||jsxc.options.get("muc");return options&&"string"==typeof options.server?(jsxc.gui.roster.ready?self.initMenu():$(document).one("ready.roster.jsxc",jsxc.muc.initMenu),$(document).off("presence.jsxc",jsxc.muc.onPresence),$(document).off("error.presence.jsxc",jsxc.muc.onPresenceError),$(document).on("presence.jsxc",jsxc.muc.onPresence),$(document).on("error.presence.jsxc",jsxc.muc.onPresenceError),self.conn.addHandler(self.onGroupchatMessage,null,"message","groupchat"),self.conn.addHandler(self.onErrorMessage,null,"message","error"),void(self.conn.muc.roomNames=jsxc.storage.getUserItem("roomNames")||[])):(jsxc.debug("Discover muc service"),void setTimeout(function(){self.conn.disco.items(Strophe.getDomainFromJid(self.conn.jid),null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;return self.conn.disco.info(jid,null,function(info){var mucFeature=$(info).find('feature[var="'+Strophe.NS.MUC+'"]'),mucIdentity=$(info).find('identity[category="conference"][type="text"]');mucFeature.length>0&&mucIdentity.length>0&&(jsxc.debug("muc service found",jid),jsxc.options.set("muc",{server:jid,name:$(info).find("identity").attr("name")}),discovered=!0,self.init())}),!discovered})})},1e3))},initMenu:function(){var li=$("<li>").attr("class","jsxc_joinChat jsxc_groupcontacticon").text($.t("Join_chat"));li.click(jsxc.muc.showJoinChat),$("#jsxc_menu ul .jsxc_about").before(li)},showJoinChat:function(r,p){function loadRoomList(server){return server?void self.conn.muc.listRooms(server,function(stanza){$("#jsxc_roomlist option:last").remove(),$(stanza).find("item").each(function(){var r=$("<option>"),rjid=$(this).attr("jid").toLowerCase(),rnode=Strophe.getNodeFromJid(rjid),rname=$(this).attr("name")||rnode;r.text(rname),r.attr("data-jid",rjid),r.attr("value",rnode),$("#jsxc_roomlist select").append(r)});var set=$(stanza).find('set[xmlns="http://jabber.org/protocol/rsm"]');if(set.length>0){var count=set.find("count").text()||"?";dialog.find(".jsxc_inputinfo").show().removeClass("jsxc_waiting").text($.t("Could_load_only",{count:count}))}else dialog.find(".jsxc_inputinfo").hide()},function(stanza){var errTextMsg=$(stanza).find("error text").text()||null;jsxc.warn("Could not load rooms",errTextMsg),errTextMsg&&dialog.find(".jsxc_inputinfo.jsxc_server").show().text(errTextMsg),$(stanza).find("error remote-server-not-found")&&dialog.find("#jsxc_server").addClass("jsxc_invalid"),dialog.find(".jsxc_inputinfo.jsxc_room").hide()}):void dialog.find(".jsxc_inputinfo").hide()}var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("joinChat"));dialog.find(".jsxc_join").hide(),"string"==typeof r&&dialog.find("#jsxc_room").val(r),"string"==typeof p&&dialog.find("#jsxc_password").val(p);var serverInputTimeout;dialog.find("#jsxc_server").val(jsxc.options.get("muc").server),dialog.find("#jsxc_server").on("input",function(){var self=$(this);serverInputTimeout&&(clearTimeout(serverInputTimeout),dialog.find(".jsxc_inputinfo.jsxc_room").hide()),dialog.find(".jsxc_inputinfo.jsxc_server").hide().text(""),dialog.find("#jsxc_server").removeClass("jsxc_invalid"),self.val()&&self.val().match(/^[.-0-9a-zA-Z]+$/i)&&(dialog.find(".jsxc_inputinfo.jsxc_room").show().addClass("jsxc_waiting"),serverInputTimeout=setTimeout(function(){loadRoomList(self.val())},1800))}).trigger("input");var error_handler=function(event,condition,room){var msg;switch(condition){case"not-authorized":msg=$.t("A_password_is_required");break;case"registration-required":msg=$.t("You_are_not_on_the_member_list");break;case"forbidden":msg=$.t("You_are_banned_from_this_room");break;case"conflict":msg=$.t("Your_desired_nickname_");break;case"service-unavailable":msg=$.t("The_maximum_number_");break;case"item-not-found":msg=$.t("This_room_is_locked_");break;case"not-allowed":msg=$.t("You_are_not_allowed_to_create_");break;default:jsxc.warn("Unknown muc error condition: "+condition),msg=$.t("Error")+": "+condition}var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),$("<p>").addClass("jsxc_warning").text(msg).appendTo(dialog.find(".jsxc_msg"))};$(document).on("error.muc.jsxc",error_handler),
+$(document).on("close.dialog.jsxc",function(){$(document).off("error.muc.jsxc",error_handler)}),dialog.find("#jsxc_nickname").attr("placeholder",Strophe.getNodeFromJid(self.conn.jid)),dialog.find("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),dialog.find(".jsxc_continue").click(function(ev){ev.preventDefault();var room=$("#jsxc_room").val()?jsxc.jidToBid($("#jsxc_room").val()):null,nickname=$("#jsxc_nickname").val()||Strophe.getNodeFromJid(self.conn.jid),server=dialog.find("#jsxc_server").val();if(!room||!room.match(/^[^"&\'\/:<>@\s]+$/i))return $("#jsxc_room").addClass("jsxc_invalid").keyup(function(){$(this).val()&&$(this).removeClass("jsxc_invalid")}),!1;if(dialog.find("#jsxc_server").hasClass("jsxc_invalid"))return!1;if(room.match(/@(.*)$/)||(room+="@"+server),jsxc.xmpp.conn.muc.roomNames.indexOf(room)<0){var discoReceived=function(roomName,subject){jsxc.gui.dialog.resize(),dialog.find(".jsxc_continue").hide(),dialog.find(".jsxc_join").show().effect("highlight",{color:"green"},4e3),dialog.find(".jsxc_join").click(function(ev){ev.preventDefault();var bookmark=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked"),password=$("#jsxc_password").val()||null;return jsxc.gui.window.clear(room),jsxc.storage.setUserItem("member",room,{}),self.join(room,nickname,password,roomName,subject,bookmark,autojoin),!1})};dialog.find(".jsxc_msg").append($("<p>").text($.t("Loading_room_information")).addClass("jsxc_waiting")),jsxc.gui.dialog.resize(),self.conn.disco.info(room,null,function(stanza){dialog.find(".jsxc_msg").html("<p>"+$.t("This_room_is")+"</p>");var table=$("<table>");$(stanza).find("feature").each(function(){var feature=$(this).attr("var");if(""!==feature&&i18next.exists(feature)){var tr=$("<tr>");$("<td>").text($.t(feature+".keyword")).appendTo(tr),$("<td>").text($.t(feature+".description")).appendTo(tr),tr.appendTo(table)}"muc_passwordprotected"===feature&&(dialog.find("#jsxc_password").parents(".form-group").removeClass("jsxc_hidden"),dialog.find("#jsxc_password").attr("required","required"),dialog.find("#jsxc_password").addClass("jsxc_invalid"))}),dialog.find(".jsxc_msg").append(table);var roomName=$(stanza).find("identity").attr("name"),subject=$(stanza).find('field[var="muc#roominfo_subject"]').attr("label");discoReceived(roomName,subject)},function(){dialog.find(".jsxc_msg").empty(),$("<p>").text($.t("Room_not_found_")).appendTo(dialog.find(".jsxc_msg")),discoReceived()})}else $("<p>").addClass("jsxc_warning").text($.t("You_already_joined_this_room")).appendTo(dialog.find(".jsxc_msg"));return!1}),dialog.find("input").keydown(function(ev){return 13!==ev.which?(dialog.find(".jsxc_warning").remove(),void(dialog.find(".jsxc_continue").is(":hidden")&&"jsxc_password"!==$(this).attr("id")&&(dialog.find(".jsxc_continue").show(),dialog.find(".jsxc_join").hide().off("click"),dialog.find(".jsxc_msg").empty(),dialog.find("#jsxc_password").parents(".form-group").addClass("jsxc_hidden"),dialog.find("#jsxc_password").attr("required",""),dialog.find("#jsxc_password").removeClass("jsxc_invalid"),jsxc.gui.dialog.resize()))):void(dialog.find(".jsxc_continue").is(":hidden")?dialog.find(".jsxc_join").click():dialog.find(".jsxc_continue").click())})},showRoomConfiguration:function(room){var self=jsxc.muc;self.conn.muc.configure(room,function(stanza){var form=Strophe.x.Form.fromXML(stanza);window.f=form,self._showRoomConfiguration(room,form)},function(){jsxc.debug("Could not load room configuration")})},_showRoomConfiguration:function(room,config){var self=jsxc.muc,dialog=jsxc.gui.dialog.open(jsxc.muc.helper.formToHTML(config)),form=dialog.find("form");form.find('[type="checkbox"]').change(function(){$(this).val(this.checked?1:0)});var submit=$("<button>");submit.addClass("btn btn-primary"),submit.attr("type","submit"),submit.text($.t("Save"));var cancel=$("<button>");cancel.addClass("btn btn-default"),cancel.attr("type","button"),cancel.text($.t("Cancel"));var formGroup=$("<div>");formGroup.addClass("form-group"),$("<div>").addClass("col-sm-offset-6 col-sm-6").appendTo(formGroup),formGroup.find(">div").append(cancel),formGroup.find(">div").append(submit),form.append(formGroup),form.submit(function(ev){ev.preventDefault();var config=Strophe.x.Form.fromHTML(form.get(0));return self.conn.muc.saveConfiguration(room,config,function(){jsxc.storage.updateUserItem("buddy",room,"config",config),jsxc.debug("Room configuration saved.")},function(){jsxc.warn("Could not save room configuration.")}),jsxc.gui.dialog.close(),!1}),cancel.click(function(){self.conn.muc.cancelConfigure(room),jsxc.gui.dialog.close()})},join:function(room,nickname,password,roomName,subject,bookmark,autojoin){var self=jsxc.muc;jsxc.storage.setUserItem("buddy",room,{jid:room,name:roomName||room,sub:"both",type:"groupchat",state:self.CONST.ROOMSTATE.INIT,subject:subject,bookmarked:bookmark||!1,autojoin:autojoin||!1,nickname:nickname,config:null}),jsxc.xmpp.conn.muc.join(room,nickname,null,null,null,password),bookmark&&jsxc.xmpp.bookmarks.add(room,roomName,nickname,autojoin)},leave:function(room){if(!jsxc.master)return void jsxc.tab.execMaster("muc.leave",room);var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},data=jsxc.storage.getUserItem("buddy",room)||{};data.state===self.CONST.ROOMSTATE.ENTERED?self.conn.muc.leave(room,own[room],function(){self.onExited(room)}):self.onExited(room)},onExited:function(room){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{},roomdata=jsxc.storage.getUserItem("buddy",room)||{};jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),delete own[room],jsxc.storage.setUserItem("ownNicknames",own),jsxc.storage.removeUserItem("member",room),jsxc.storage.removeUserItem("chat",room),jsxc.gui.window.close(room),jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.EXITED),roomdata.bookmarked||jsxc.gui.roster.purge(room)},destroy:function(room,handler_cb,error_cb){if(!jsxc.master)return void jsxc.tab.execMaster("muc.destroy",room);var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room);jsxc.storage.updateUserItem("buddy",room,"state",self.CONST.ROOMSTATE.AWAIT_DESTRUCTION),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("This_room_will_be_closed")});var iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("destroy");jsxc.muc.conn.sendIQ(iq.tree(),handler_cb,error_cb),roomdata.bookmarked&&jsxc.xmpp.bookmarks.delete(room)},close:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};self.emptyMembers(room);var roomIndex=self.conn.muc.roomNames.indexOf(room);roomIndex>-1&&(self.conn.muc.roomNames.splice(roomIndex,1),delete self.conn.muc.rooms[room]),jsxc.storage.setUserItem("roomNames",self.conn.muc.roomNames),roomdata.state===self.CONST.ROOMSTATE.AWAIT_DESTRUCTION&&self.onExited(room),jsxc.storage.getUserItem("budy",room)&&(roomdata.state=self.CONST.ROOMSTATE.DESTROYED,jsxc.storage.setUserItem("buddy",room,roomdata))},initWindow:function(event,win){var self=jsxc.muc;if(!jsxc.xmpp.conn&&jsxc.master)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var data=win.data(),bid=jsxc.jidToBid(data.jid),roomdata=jsxc.storage.getUserItem("buddy",bid);if("groupchat"===roomdata.type){win.addClass("jsxc_groupchat");var own=jsxc.storage.getUserItem("ownNicknames")||{},ownNickname=own[bid],mlIcon=$('<div class="jsxc_members"></div>');win.find(".jsxc_tools > .jsxc_settings").after(mlIcon);var ml=$('<div class="jsxc_memberlist"><ul></ul></div>');win.find(".jsxc_fade").prepend(ml),ml.on("wheel",function(ev){jsxc.muc.scrollMemberListBy(bid,ev.originalEvent.wheelDelta>0?50:-50)});var toggleMl=function(ev){ev&&ev.preventDefault();var slimOptions={},ul=ml.find("ul:first"),slimHeight=null;if(ml.toggleClass("jsxc_expand"),ml.hasClass("jsxc_expand")){$("body").click(),$("body").one("click",toggleMl),ul.mouseleave(function(){ul.data("timer",window.setTimeout(toggleMl,2e3))}).mouseenter(function(){window.clearTimeout(ul.data("timer"))}).css("left","0px");var maxHeight=.8*win.find(".jsxc_textarea").height(),innerHeight=ml.find("ul").height()+3;slimHeight=innerHeight>maxHeight?maxHeight:innerHeight,slimOptions={distance:"3px",height:slimHeight+"px",width:"100%",color:"#fff",opacity:"0.5"},ml.css("height",slimHeight+"px")}else slimOptions={destroy:!0},ul.attr("style",""),ml.css("height",""),window.clearTimeout(ul.data("timer")),$("body").off("click",null,toggleMl),ul.off("mouseleave mouseenter");return ul.slimscroll(slimOptions),!1};mlIcon.click(toggleMl),win.on("resize",function(){jsxc.muc.scrollMemberListBy(bid,0)});var destroy=$("<a>");destroy.text($.t("Destroy")),destroy.addClass("jsxc_destroy"),destroy.hide(),destroy.click(function(){self.destroy(bid)}),win.find(".jsxc_settings ul").append($("<li>").append(destroy));var configure=$("<a>");if(configure.text($.t("Configure")),configure.addClass("jsxc_configure"),configure.hide(),configure.click(function(){self.showRoomConfiguration(bid)}),self.conn&&win.find(".jsxc_settings ul").append($("<li>").append(configure)),roomdata.state>self.CONST.ROOMSTATE.INIT){var member=jsxc.storage.getUserItem("member",bid)||{};$.each(member,function(nickname,val){self.insertMember(bid,nickname,val),nickname===ownNickname&&val.affiliation===self.CONST.AFFILIATION.OWNER&&destroy.show(),nickname!==ownNickname||val.affiliation!==self.CONST.AFFILIATION.OWNER&&val.affiliation!==self.CONST.AFFILIATION.OWNER||configure.show()})}var leave=$("<a>");leave.text($.t("Leave")),leave.addClass("jsxc_leave"),leave.click(function(){self.leave(bid)}),win.find(".jsxc_settings ul").append($("<li>").append(leave))}},onPresence:function(event,from,status,presence){var self=jsxc.muc,room=jsxc.jidToBid(from),roomdata=jsxc.storage.getUserItem("buddy",room),xdata=$(presence).find('x[xmlns^="'+Strophe.NS.MUC+'"]');if(self.conn.muc.roomNames.indexOf(room)<0||0===xdata.length)return!0;var res=Strophe.getResourceFromJid(from)||"",nickname=Strophe.unescapeNode(res),own=jsxc.storage.getUserItem("ownNicknames")||{},member=jsxc.storage.getUserItem("member",room)||{},openWindow=!1,codes=[];if(xdata.find("status").each(function(){var code=$(this).attr("code");jsxc.debug("[muc][code]",code),codes.push(code)}),roomdata.state===self.CONST.ROOMSTATE.INIT){if(jsxc.storage.setUserItem("roomNames",jsxc.xmpp.conn.muc.roomNames),0===jsxc.gui.roster.getItem(room).length){var bl=jsxc.storage.getUserItem("buddylist");bl.push(room),jsxc.storage.setUserItem("buddylist",bl),jsxc.gui.roster.add(room)}$("#jsxc_dialog").length>0&&(openWindow=!0,jsxc.gui.dialog.close())}var jid=xdata.find("item").attr("jid")||null;if(0===status)if(xdata.find("destroy").length>0)member={},jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("This_room_has_been_closed")}),self.close(room);else{delete member[nickname],self.removeMember(room,nickname);var newNickname=xdata.find("item").attr("nick");codes.indexOf("303")>-1&&newNickname?(newNickname=Strophe.unescapeNode(newNickname),member[newNickname]={},jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("is_now_known_as",{oldNickname:nickname,newNickname:newNickname,escapeInterpolation:!0})})):(0===codes.length||1===codes.length&&codes.indexOf("110")>-1)&&jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("left_the_building",{nickname:nickname,escapeInterpolation:!0})})}else!member[nickname]&&own[room]&&jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("entered_the_room",{nickname:nickname,escapeInterpolation:!0})}),member[nickname]={jid:jid,status:status,roomJid:from,affiliation:xdata.find("item").attr("affiliation"),role:xdata.find("item").attr("role")},self.insertMember(room,nickname,member[nickname]);return jsxc.storage.setUserItem("member",room,member),$.each(codes,function(index,code){"function"==typeof self.onStatus[code]&&self.onStatus[code].call(this,room,nickname,member[nickname]||{},xdata),$(document).trigger("status.muc.jsxc",[code,room,nickname,member[nickname]||{},presence])}),openWindow&&jsxc.gui.window.open(room),!0},onPresenceError:function(event,from,presence){var self=jsxc.muc,xdata=$(presence).find('x[xmlns="'+Strophe.NS.MUC+'"]'),room=jsxc.jidToBid(from);if(0===xdata.length||self.conn.muc.roomNames.indexOf(room)<0)return!0;var error=$(presence).find("error"),condition=error.children()[0].tagName;return jsxc.debug("[muc][error]",condition),$(document).trigger("error.muc.jsxc",[condition,room]),!0},onStatus:{110:function(room,nickname,data){var self=jsxc.muc,own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]=nickname,jsxc.storage.setUserItem("ownNicknames",own),data.affiliation===self.CONST.AFFILIATION.OWNER&&jsxc.gui.window.get(room).find(".jsxc_destroy").show();var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.state===self.CONST.ROOMSTATE.INIT&&(roomdata.state=self.CONST.ROOMSTATE.ENTERED,jsxc.storage.setUserItem("buddy",room,roomdata))},170:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_enabled")})},171:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_logging_is_disabled")})},172:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_is_now_non-anoymous")})},173:function(room){jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("Room_is_now_semi-anonymous")})},201:function(room){var self=jsxc.muc,roomdata=jsxc.storage.getUserItem("buddy",room)||{};roomdata.autojoin&&roomdata.config===self.CONST.ROOMCONFIG.INSTANT?self.conn.muc.createInstantRoom(room):roomdata.autojoin&&"undefined"!=typeof roomdata.config&&null!==roomdata.config?self.conn.muc.saveConfiguration(room,roomdata.config,function(){jsxc.debug("Cached room configuration saved.")},function(){jsxc.warn("Could not save cached room configuration.")}):jsxc.gui.showSelectionDialog({header:$.t("Room_creation"),msg:$.t("Do_you_want_to_change_the_default_room_configuration"),primary:{label:$.t("Default"),cb:function(){jsxc.gui.dialog.close(),self.conn.muc.createInstantRoom(room),jsxc.storage.updateUserItem("buddy",room,"config",self.CONST.ROOMCONFIG.INSTANT)}},option:{label:$.t("Change"),cb:function(){self.showRoomConfiguration(room)}}})},301:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_banned")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_banned",{nickname:nickname,escapeInterpolation:!0})})},307:function(room,nickname,data,xdata){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_kicked")}),jsxc.muc.postReason(room,xdata)):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_kicked",{nickname:nickname,escapeInterpolation:!0})})},321:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_affiliation")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_affiliation",{nickname:nickname,escapeInterpolation:!0})})},322:function(room,nickname){var own=jsxc.storage.getUserItem("ownNicknames")||{};own[room]===nickname?(jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_membersonly")})):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_info_membersonly",{nickname:nickname,escapeInterpolation:!0})})},332:function(room){jsxc.muc.close(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("muc_removed_shutdown")})}},postReason:function(room,xdata){var actor={name:xdata.find("actor").attr("nick"),jid:xdata.find("actor").attr("jid")},reason=xdata.find("reason").text();""!==reason&&(reason=$.t("Reason")+": "+reason,"string"==typeof actor.name||"string"==typeof actor.jid?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.IN,msg:reason,sender:actor}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:reason}))},insertMember:function(room,nickname,memberdata){var win=jsxc.gui.window.get(room),jid=memberdata.jid,ownBid=jsxc.jidToBid(jsxc.storage.getItem("jid")),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');if(0===m.length){var title=jsxc.escapeHTML(nickname);if(m=$('<li><div class="jsxc_avatar"></div><div class="jsxc_name"/></li>'),m.attr("data-nickname",nickname),win.find(".jsxc_memberlist ul").append(m),"string"==typeof jid){m.find(".jsxc_name").text(jsxc.jidToBid(jid)),m.attr("data-bid",jsxc.jidToBid(jid)),title=title+"\n"+jsxc.jidToBid(jid);var data=jsxc.storage.getUserItem("buddy",jsxc.jidToBid(jid));null!==data&&"object"==typeof data?jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),data.avatar):jsxc.jidToBid(jid)===ownBid&&jsxc.gui.updateAvatar(m,jsxc.jidToBid(jid),"own")}else m.find(".jsxc_name").text(nickname),jsxc.gui.avatarPlaceholder(m.find(".jsxc_avatar"),nickname);m.attr("title",title)}},removeMember:function(room,nickname){var win=jsxc.gui.window.get(room),m=win.find('.jsxc_memberlist li[data-nickname="'+nickname+'"]');m.length>0&&m.remove()},scrollMemberListBy:function(room,offset){var win=jsxc.gui.window.get(room);if(!win.find(".jsxc_memberlist").hasClass("jsxc_expand")){var el=win.find(".jsxc_memberlist ul:first"),scrollWidth=el.width(),width=win.find(".jsxc_memberlist").width(),left=parseInt(el.css("left"));left=isNaN(left)?0-offset:left-offset,scrollWidth<width||left>0?left=0:left<width-scrollWidth&&(left=width-scrollWidth),el.css("left",left+"px")}},emptyMembers:function(room){var win=jsxc.gui.window.get(room);win.find(".jsxc_memberlist").empty(),jsxc.storage.setUserItem("member",room,{})},onGroupchatMessage:function(message){var id=$(message).attr("id");if(id&&jsxc.el_exists(jsxc.Message.getDOM(id)))return!0;var from=$(message).attr("from"),body=$(message).find("body:first").text(),room=jsxc.jidToBid(from),nickname=Strophe.unescapeNode(Strophe.getResourceFromJid(from));if(""!==body){var delay=$(message).find('delay[xmlns="urn:xmpp:delay"]'),stamp=delay.length>0?new Date(delay.attr("stamp")):new Date;stamp=stamp.getTime();var member=jsxc.storage.getUserItem("member",room)||{},sender={};sender.name=nickname,member[nickname]&&"string"==typeof member[nickname].jid&&(sender.jid=member[nickname].jid),jsxc.gui.window.init(room),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.IN,msg:body,stamp:stamp,sender:sender})}var subject=$(message).find("subject");if(subject.length>0){var roomdata=jsxc.storage.getUserItem("buddy",room);roomdata.subject=subject.text(),jsxc.storage.setUserItem("buddy",room,roomdata),jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("changed_subject_to",{nickname:nickname,subject:subject.text()})})}return!0},onErrorMessage:function(message){var room=jsxc.jidToBid($(message).attr("from"));return 0===jsxc.gui.window.get(room).length||($(message).find("item-not-found").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_item-not-found")}):$(message).find("forbidden").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_forbidden")}):$(message).find("not-acceptable").length>0?jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send_not-acceptable")}):jsxc.gui.window.postMessage({bid:room,direction:jsxc.Message.SYS,msg:$.t("message_not_send")}),jsxc.debug("[muc] error message for "+room,$(message).find("error")[0]),!0)},onAddRoster:function(event,room,data,bud){var self=jsxc.muc;if("groupchat"===data.type){var bo=$("<a>");$("<span>").addClass("jsxc_icon jsxc_bookmarkicon").appendTo(bo),$("<span>").text($.t("Bookmark")).appendTo(bo),bo.addClass("jsxc_bookmarkOptions"),bo.click(function(ev){return ev.preventDefault(),jsxc.xmpp.bookmarks.showDialog(room),!1}),bud.find(".jsxc_menu ul").append($("<li>").append(bo)),data.bookmarked&&bud.addClass("jsxc_bookmarked"),bud.off("click").click(function(){var data=jsxc.storage.getUserItem("buddy",room);data.state===self.CONST.ROOMSTATE.INIT||data.state===self.CONST.ROOMSTATE.EXITED?(self.showJoinChat(),$("#jsxc_room").val(Strophe.getNodeFromJid(data.jid)),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_dialog .jsxc_bookmark").hide()):jsxc.gui.window.open(room)}),bud.find(".jsxc_delete").click(function(){return data.bookmarked&&jsxc.xmpp.bookmarks.delete(room),self.leave(room),!1})}},helper:{formToHTML:function(form){if(form instanceof Strophe.x.Form){var html=$("<form>");if(html.attr("data-type",form.type),html.addClass("form-horizontal"),form.title&&html.append("<h3>"+form.title+"</h3>"),form.instructions&&html.append("<p>"+form.instructions+"</p>"),form.fields.length>0){var i;for(i=0;i<form.fields.length;i++)html.append(jsxc.muc.helper.fieldToHtml(form.fields[i]))}return $("<div>").append(html).html()}},fieldToHtml:function(field){var self=field||this;field=null;var el,val,opt,i,o,j,k,txt,line,_ref2,id="Strophe.x.Field-"+self.type+"-"+self.var,html=$("<div>");if(html.addClass("form-group"),self.label){var label=$("<label>");label.attr("for",id),label.addClass("col-sm-6 control-label"),label.text(self.label),label.appendTo(html)}switch(self.type.toLowerCase()){case"list-single":case"list-multi":for(el=$("<select>"),"list-multi"===self.type&&el.attr("multiple","multiple"),i=0;i<self.options.length;i++)if(opt=self.options[i]){for(o=$(opt.toHTML()),j=0;j<self.values;j++)k=self.values[j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var i,_results;for(_results=[],i=0;i<self.values.length;i++)line=self.values[i],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),self.values&&el.attr("value",self.values[0]),self.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",self.desc),el.addClass("form-control");break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=self.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password"),el.addClass("form-control");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly"),el.addClass("form-control");break;case"jid-single":el.attr("type","email"),el.addClass("form-control")}break;default:el=$("<input type='text'>")}el.attr("id",id),el.attr("name",self.var),self.required&&el.attr("required",self.required);var inner=el;return el=$("<div>"),el.addClass("col-sm-6"),el.append(inner),html.append(el),html.get(0)}}},$(document).on("init.window.jsxc",jsxc.muc.initWindow),$(document).on("add.roster.jsxc",jsxc.muc.onAddRoster),$(document).on("attached.jsxc",function(){jsxc.muc.init()}),$(document).one("connected.jsxc",function(){jsxc.storage.removeUserItem("roomNames"),jsxc.storage.removeUserItem("ownNicknames")}),jsxc.notice={_num:0,load:function(){$("#jsxc_notice ul li").remove(),$("#jsxc_notice > span").text(""),jsxc.notice._num=0;var saved=jsxc.storage.getUserItem("notices")||[],key=null;for(key in saved)if(saved.hasOwnProperty(key)){var val=saved[key];jsxc.notice.add(val,val.fnName,val.fnParams,key)}},add:function(data,fnName,fnParams,id){var nid=id||Date.now(),list=$("#jsxc_notice ul"),notice=$("<li/>"),msg=data.msg,description=data.description;notice.click(function(){return jsxc.notice.remove(nid),jsxc.exec(fnName,fnParams),!1}),data.type&&notice.addClass("jsxc_"+data.type+"icon"),notice.text(msg),notice.attr("title",description||""),notice.attr("data-nid",nid),list.append(notice),$("#jsxc_notice > span").text(++jsxc.notice._num);var saved=jsxc.storage.getUserItem("notices")||{};if(id||(saved[nid]={msg:msg,description:description,type:data.type,fnName:fnName,fnParams:fnParams},jsxc.storage.setUserItem("notices",saved),jsxc.notification.notify(msg,description||"",null,!0,jsxc.CONST.SOUNDS.NOTICE)),Object.keys(saved).length>3&&0===list.find(".jsxc_closeAll").length){var closeAll=$("<li>");closeAll.addClass("jsxc_closeAll jsxc_deleteicon jsxc_warning"),closeAll.text($.t("Close_all")),closeAll.prependTo(list),closeAll.click(jsxc.notice.removeAll)}else Object.keys(saved).length<=3&&0!==list.find(".jsxc_closeAll").length&&list.find(".jsxc_closeAll").remove()},remove:function(nid){var el=$("#jsxc_notice li[data-nid="+nid+"]");el.remove(),$("#jsxc_notice > span").text(--jsxc.notice._num||"");var s=jsxc.storage.getUserItem("notices")||{};delete s[nid],jsxc.storage.setUserItem("notices",s),Object.keys(s).length<=3&&0!==$("#jsxc_notice .jsxc_closeAll").length&&$("#jsxc_notice .jsxc_closeAll").remove()},removeAll:function(){jsxc.notice._num=0,jsxc.storage.setUserItem("notices",{}),$("#jsxc_notice ul").empty(),$("#jsxc_notice > span").text("")},has:function(fnName){var saved=jsxc.storage.getUserItem("notices")||[],has=!1;return $.each(saved,function(index,val){if(val.fnName===fnName)return has=!0,!1}),has}},jsxc.notification={audio:null,init:function(){$(document).on("postmessagein.jsxc",function(event,bid,msg){msg=msg&&msg.match(/^\?OTR/)?$.t("Encrypted_message"):msg;var data=jsxc.storage.getUserItem("buddy",bid);jsxc.notification.notify({title:$.t("New_message_from",{name:data.name}),msg:msg,soundFile:jsxc.CONST.SOUNDS.MSG,source:bid})}),$(document).on("callincoming.jingle",function(){jsxc.notification.playSound(jsxc.CONST.SOUNDS.CALL,!0,!0)}),$(document).on("accept.call.jsxc reject.call.jsxc",function(){jsxc.notification.stopSound()})},notify:function(title,msg,d,force,soundFile,loop,source){if(jsxc.options.notification&&jsxc.notification.hasPermission()){var o;if(o=null!==title&&"object"==typeof title?title:{title:title,msg:msg,duration:d,force:force,soundFile:soundFile,loop:loop,source:source},!jsxc.hasFocus()||o.force){var icon=o.icon||jsxc.options.root+"/img/XMPP_logo.png";if("string"==typeof o.source){var data=jsxc.storage.getUserItem("buddy",o.source),src=jsxc.storage.getUserItem("avatar",data.avatar);"string"==typeof src&&"0"!==src&&(icon=src)}jsxc.toNotification=setTimeout(function(){"string"==typeof o.soundFile&&jsxc.notification.playSound(o.soundFile,o.loop,o.force);var popup=new Notification($.t(o.title),{body:$.t(o.msg),icon:icon}),duration=o.duration||jsxc.options.popupDuration;duration>0&&setTimeout(function(){popup.close()},duration)},jsxc.toNotificationDelay)}}},hasSupport:function(){if(window.webkitNotifications){window.Notification=function(title,opt){var popup=window.webkitNotifications.createNotification(null,title,opt.body);return popup.show(),popup.close=function(){popup.cancel()},popup};var permission;switch(window.webkitNotifications.checkPermission()){case 0:permission=jsxc.CONST.NOTIFICATION_GRANTED;break;case 2:permission=jsxc.CONST.NOTIFICATION_DENIED;break;default:permission=jsxc.CONST.NOTIFICATION_DEFAULT}return window.Notification.permission=permission,window.Notification.requestPermission=function(func){window.webkitNotifications.requestPermission(func)},!0}return!!window.Notification},prepareRequest:function(){jsxc.notice.has("gui.showRequestNotification")||$(document).one("postmessagein.jsxc",function(){setTimeout(function(){jsxc.notice.add({msg:$.t("Notifications")+"?",description:$.t("Should_we_notify_you_")},"gui.showRequestNotification")},1e3)})},requestPermission:function(){window.Notification.requestPermission(function(status){window.Notification.permission!==status&&(window.Notification.permission=status),jsxc.notification.hasPermission()?$(document).trigger("notificationready.jsxc"):$(document).trigger("notificationfailure.jsxc")})},hasPermission:function(){return window.Notification.permission===jsxc.CONST.NOTIFICATION_GRANTED},playSound:function(soundFile,loop,force){if(jsxc.master&&!jsxc.options.get("muteNotification")&&"dnd"!==jsxc.storage.getUserItem("presence")&&(!jsxc.hasFocus()||force)){jsxc.notification.stopSound();var audio=new Audio(jsxc.options.root+"/sound/"+soundFile);audio.loop=loop||!1,audio.play(),jsxc.notification.audio=audio}},stopSound:function(){var audio=jsxc.notification.audio;"undefined"!=typeof audio&&null!==audio&&(audio.pause(),jsxc.notification.audio=null)},muteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Unmute")),external!==!0&&jsxc.options.set("muteNotification",!0)},unmuteSound:function(external){$("#jsxc_menu .jsxc_muteNotification").text($.t("Mute")),external!==!0&&jsxc.options.set("muteNotification",!1)}},jsxc.options={app_name:"web applications",timeout:3e3,busyTimeout:15e3,otr:{enable:!0,ERROR_START_AKE:!1,debug:!1,SEND_WHITESPACE_TAG:!1,WHITESPACE_START_AKE:!0},xmpp:{url:null,jid:null,domain:null,password:null,sid:null,rid:null,overwrite:!1,onlogin:null},priority:{online:0,chat:0,away:0,xa:0,dnd:0},formFound:null,loginForm:{enable:!0,form:null,jid:null,pass:null,preJid:function(jid){return jid},onConnecting:"dialog",onConnected:"submit",onAuthFail:"submit",attachIfFound:!0,ifFound:"attach",startMinimized:!1},logoutElement:null,numberOfMsg:10,defaultLang:"en",autoLang:!0,rosterAppend:"body",notification:!0,popupDuration:6e3,root:"",displayRosterMinimized:function(){return!1},hideOffline:!1,muteNotification:!1,defaultAvatar:function(jid){jsxc.gui.avatarPlaceholder($(this).find(".jsxc_avatar"),jid)},loadSettings:null,saveSettinsPermanent:function(data,cb){cb(!0)},carbons:{enable:!0},getUsers:null,favicon:{enable:!0,bgColor:"#E59400",textColor:"#fff"},turnCredentialsPath:null,RTCPeerConfig:{ttl:3600,url:null,withCredentials:!1,iceServers:[{urls:"stun:stun.stunprotocol.org"}]},onlineHelp:"http://www.jsxc.org/manual.html",viewport:{getSize:function(){var w=$(window).width()-$("#jsxc_windowListSB").width(),h=$(window).height();return"shown"===jsxc.storage.getUserItem("roster")&&(w-=$("#jsxc_roster").outerWidth(!0)),{width:w,height:h}}},maxStorableSize:1e6,fileTransfer:{httpUpload:{enable:!0}},chatState:{enable:!0},screenMediaExtension:{firefox:"",chrome:""}},jsxc.otr={objects:{},dsaFallback:null,receiveMessage:function(d){var bid=d.bid;jsxc.otr.objects[bid].msgstate!==OTR.CONST.MSGSTATE_PLAINTEXT&&jsxc.otr.backup(bid),jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT||d.encrypted?jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.IN,msg:d.msg,encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp,attachment:d.attachment}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Received_an_unencrypted_message")+". ["+d.msg+"]",encrypted:d.encrypted,forwarded:d.forwarded,stamp:d.stamp})},sendMessage:function(jid,msg,message){0!==jsxc.otr.objects[jsxc.jidToBid(jid)].msgstate&&jsxc.otr.backup(jsxc.jidToBid(jid)),jsxc.xmpp._sendMessage(jid,msg,message)},create:function(bid){if(!jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.options.otr.priv){var ol=jsxc.storage.getUserItem("otrlist")||[];ol.indexOf(bid)<0&&(ol.push(bid),jsxc.storage.setUserItem("otrlist",ol)),jsxc.otr.objects[bid]=new OTR(jsxc.options.otr),jsxc.options.otr.SEND_WHITESPACE_TAG&&(jsxc.otr.objects[bid].SEND_WHITESPACE_TAG=!0),jsxc.options.otr.WHITESPACE_START_AKE&&(jsxc.otr.objects[bid].WHITESPACE_START_AKE=!0),jsxc.otr.objects[bid].on("status",function(status){
+var data=jsxc.storage.getUserItem("buddy",bid);if(null!==data){switch(status){case OTR.CONST.STATUS_SEND_QUERY:jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("trying_to_start_private_conversation")});break;case OTR.CONST.STATUS_AKE_SUCCESS:data.fingerprint=jsxc.otr.objects[bid].their_priv_pk.fingerprint(),data.msgstate=OTR.CONST.MSGSTATE_ENCRYPTED;var msg_state=jsxc.otr.objects[bid].trust?"Verified":"Unverified",msg=$.t(msg_state+"_private_conversation_started");jsxc.gui.window.postMessage({bid:bid,direction:"sys",msg:msg});break;case OTR.CONST.STATUS_END_OTR:data.fingerprint=null,jsxc.otr.objects[bid].msgstate===OTR.CONST.MSGSTATE_PLAINTEXT?(data.msgstate=OTR.CONST.MSGSTATE_PLAINTEXT,jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("private_conversation_aborted")})):(data.msgstate=OTR.CONST.MSGSTATE_FINISHED,jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("your_buddy_closed_the_private_conversation_you_should_do_the_same")}));break;case OTR.CONST.STATUS_SMP_HANDLE:jsxc.keepBusyAlive()}jsxc.storage.setUserItem("buddy",bid,data),jsxc.gui.update(bid)}}),jsxc.otr.objects[bid].on("smp",function(type,data){switch(type){case"question":jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Authentication_request_received")}),jsxc.gui.window.smpRequest(bid,data),jsxc.storage.setUserItem("smp",bid,{data:data||null});break;case"trust":jsxc.otr.objects[bid].trust=data,jsxc.storage.updateUserItem("buddy",bid,"trust",data),jsxc.otr.backup(bid),jsxc.gui.update(bid),data?jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("conversation_is_now_verified")}):jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("authentication_failed")}),jsxc.storage.removeUserItem("smp",bid),jsxc.gui.dialog.close("smp");break;case"abort":jsxc.gui.window.hideOverlay(bid),jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:$.t("Authentication_aborted")});break;default:jsxc.debug("[OTR] sm callback: Unknown type: "+type)}}),jsxc.otr.objects[bid].on("ui",function(msg,encrypted,meta){jsxc.otr.receiveMessage({bid:bid,msg:msg,encrypted:encrypted===!0,stamp:meta.stamp,forwarded:meta.forwarded,attachment:meta.attachment})}),jsxc.otr.objects[bid].on("io",function(msg,message){var jid=jsxc.gui.window.get(bid).data("jid")||jsxc.otr.objects[bid].jid;jsxc.otr.objects[bid].jid=jid,jsxc.otr.sendMessage(jid,msg,message)}),jsxc.otr.objects[bid].on("error",function(err){"Received an unencrypted message."!==err&&jsxc.gui.window.postMessage({bid:bid,direction:jsxc.Message.SYS,msg:"[OTR] "+$.t(err)}),jsxc.error("[OTR] "+err)}),jsxc.otr.restore(bid)}},onSmpQuestion:function(bid,data){jsxc.gui.showVerification(bid),$("#jsxc_dialog select").prop("selectedIndex",data?2:3).change(),$("#jsxc_dialog > div:eq(0)").hide(),data?($("#jsxc_dialog > div:eq(2)").find("#jsxc_quest").val(data).prop("disabled",!0),$("#jsxc_dialog > div:eq(2)").find(".jsxc_submit").text($.t("Answer")),$("#jsxc_dialog > div:eq(2)").find(".jsxc_explanation").text($.t("onsmp_explanation_question")),$("#jsxc_dialog > div:eq(2)").show()):($("#jsxc_dialog > div:eq(3)").find(".jsxc_explanation").text($.t("onsmp_explanation_secret")),$("#jsxc_dialog > div:eq(3)").show()),$("#jsxc_dialog .jsxc_close").click(function(){jsxc.storage.removeUserItem("smp",bid),jsxc.master&&jsxc.otr.objects[bid].sm.abort()})},sendSmpReq:function(bid,sec,quest){jsxc.keepBusyAlive(),jsxc.otr.objects[bid].smpSecret(sec,quest||"")},toggleTransfer:function(bid){"function"==typeof OTR&&(0===jsxc.storage.getUserItem("buddy",bid).msgstate?jsxc.otr.goEncrypt(bid):jsxc.otr.goPlain(bid))},goEncrypt:function(bid){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&jsxc.otr.objects[bid].sendQueryMsg():jsxc.storage.updateUserItem("buddy",bid,"transferReq",1)},goPlain:function(bid,cb){jsxc.master?jsxc.otr.objects.hasOwnProperty(bid)&&(jsxc.otr.objects[bid].endOtr.call(jsxc.otr.objects[bid],cb),jsxc.otr.objects[bid].init.call(jsxc.otr.objects[bid]),jsxc.otr.backup(bid)):jsxc.storage.updateUserItem("buddy",bid,"transferReq",0)},backup:function(bid){var o=jsxc.otr.objects[bid],r={};if(null!==o){var i,savekey=["jid","our_instance_tag","msgstate","authstate","fragment","their_y","their_old_y","their_keyid","their_instance_tag","our_dh","our_old_dh","our_keyid","sessKeys","storedMgs","oldMacKeys","trust","transmittedRS","ssid","receivedPlaintext","authstate","send_interval"];for(i=0;i<savekey.length;i++)r[savekey[i]]=JSON.stringify(o[savekey[i]]);null!==o.their_priv_pk&&(r.their_priv_pk=JSON.stringify(o.their_priv_pk.packPublic())),o.ake.otr_version&&""!==o.ake.otr_version&&(r.otr_version=JSON.stringify(o.ake.otr_version)),jsxc.storage.setUserItem("otr",bid,r)}},restore:function(bid){var o=jsxc.otr.objects[bid],d=jsxc.storage.getUserItem("otr",bid);if(null!==o||null!==d){var key;for(key in d)if(d.hasOwnProperty(key)){var val=JSON.parse(d[key]);"their_priv_pk"===key&&null!==val&&(val=DSA.parsePublic(val)),"otr_version"===key&&null!==val?o.ake.otr_version=val:o[key]=val}jsxc.otr.objects[bid]=o,1===o.msgstate&&null!==o.their_priv_pk&&o._smInit.call(jsxc.otr.objects[bid])}jsxc.otr.enable(bid)},createDSA:function(){if(!jsxc.options.otr.priv){if("function"!=typeof OTR)return jsxc.warn("OTR support disabled"),OTR={},void(OTR.CONST={MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2});if(null===jsxc.storage.getUserItem("key")){var msg=$.t("Creating_your_private_key_"),worker=null;if(Worker)try{worker=new Worker(jsxc.options.root+"/lib/otr/lib/dsa-webworker.js")}catch(err){jsxc.warn("Couldn't create web-worker.",err)}jsxc.otr.dsaFallback=null===worker,jsxc.otr.dsaFallback?(jsxc.xmpp.conn.pause(),jsxc.gui.dialog.open(jsxc.gui.template.get("waitAlert",null,msg),{noClose:!0}),jsxc.debug("DSA key creation started in fallback mode."),setTimeout(function(){var dsa=new DSA;jsxc.otr.DSAready(dsa)},500)):(worker.onmessage=function(e){var type=e.data.type,val=e.data.val;"debug"===type?jsxc.debug(val):"data"===type&&jsxc.otr.DSAready(DSA.parsePrivate(val))},jsxc.debug("DSA key creation started."),worker.postMessage({imports:[jsxc.options.root+"/lib/otr/vendor/salsa20.js",jsxc.options.root+"/lib/otr/vendor/bigint.js",jsxc.options.root+"/lib/otr/vendor/crypto.js",jsxc.options.root+"/lib/otr/vendor/eventemitter.js",jsxc.options.root+"/lib/otr/lib/const.js",jsxc.options.root+"/lib/otr/lib/helpers.js",jsxc.options.root+"/lib/otr/lib/dsa.js"],seed:BigInt.getSeed(),debug:!0}))}else jsxc.debug("DSA key loaded"),jsxc.options.otr.priv=DSA.parsePrivate(jsxc.storage.getUserItem("key")),jsxc.otr._createDSA()}},_createDSA:function(){jsxc.storage.setUserItem("priv_fingerprint",jsxc.options.otr.priv.fingerprint()),$.each(jsxc.storage.getUserItem("windowlist")||[],function(index,val){jsxc.otr.create(val)})},DSAready:function(dsa){jsxc.storage.setUserItem("key",dsa.packPrivate()),jsxc.options.otr.priv=dsa,jsxc.otr.dsaFallback&&(jsxc.xmpp.conn.resume(),jsxc.gui.dialog.close()),jsxc.otr._createDSA()},enable:function(bid){jsxc.gui.window.get(bid).find(".jsxc_otr").removeClass("jsxc_disabled")}},jsxc.storage={PREFIX:"jsxc",SEP:":",getPrefix:function(uk){var self=jsxc.storage;return uk&&!jsxc.bid&&jsxc.warn("Unable to create user prefix"),self.PREFIX+self.SEP+(uk&&jsxc.bid?jsxc.bid+self.SEP:"")},setItem:function(key,value,uk){jsxc.storageNotConform>0&&"rid"!==key&&(jsxc.storageNotConform>1&&null===jsxc.toSNC&&(jsxc.toSNC=window.setTimeout(function(){jsxc.storageNotConform=0,jsxc.storage.setItem("storageNotConform",0)},1e3)),jsxc.ls.push(JSON.stringify({key:key,value:value}))),"object"==typeof value&&(value=JSON.stringify(value,function(key,val){if(!(val instanceof jQuery))return val})),localStorage.setItem(jsxc.storage.getPrefix(uk)+key,value)},setUserItem:function(type,key,value){var self=jsxc.storage;return 2===arguments.length?(value=key,key=type,type=""):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.setItem(key,value,!0)},getItem:function(key,uk){key=jsxc.storage.getPrefix(uk)+key;var value=localStorage.getItem(key);try{return JSON.parse(value)}catch(e){return value}},getUserItem:function(type,key){var self=jsxc.storage;return 1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.getItem(key,!0)},removeItem:function(key,uk){jsxc.storageNotConform&&"rid"!==key&&jsxc.ls.push(JSON.stringify({key:jsxc.storage.prefix+key,value:""})),localStorage.removeItem(jsxc.storage.getPrefix(uk)+key)},removeUserItem:function(type,key){var self=jsxc.storage;1===arguments.length?key=type:2===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeItem(key,!0)},updateItem:function(key,variable,value,uk){var data=jsxc.storage.getItem(key,uk)||{};"object"==typeof variable?$.each(variable,function(key,val){"undefined"==typeof data[key]&&jsxc.debug("Variable "+key+" doesn't exist in "+variable+". It was created."),data[key]=val}):("undefined"==typeof data[variable]&&jsxc.debug("Variable "+variable+" doesn't exist. It was created."),data[variable]=value),jsxc.storage.setItem(key,data,uk)},updateUserItem:function(type,key,variable,value){var self=jsxc.storage;return 4===arguments.length||3===arguments.length&&"object"==typeof variable?key=type+self.SEP+key:(value=variable,variable=key,key=type),jsxc.storage.updateItem(key,variable,value,!0)},ink:function(key,uk){jsxc.storage.setItem(key,Number(jsxc.storage.getItem(key,uk))+1,uk)},removeElement:function(key,name,uk){var item=jsxc.storage.getItem(key,uk);$.isArray(item)?item=$.grep(item,function(e){return e!==name}):"object"==typeof item&&null!==item&&delete item[name],jsxc.storage.setItem(key,item,uk)},removeUserElement:function(type,key,name){var self=jsxc.storage;return 2===arguments.length?(name=key,key=type):3===arguments.length&&(key=type+self.SEP+key),jsxc.storage.removeElement(key,name,!0)},onStorage:function(e){if(e.key!==jsxc.storage.PREFIX+jsxc.storage.SEP+"rid"&&e.key){var re=new RegExp("^"+jsxc.storage.PREFIX+jsxc.storage.SEP+"(?:[^"+jsxc.storage.SEP+"]+@[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+")?(.*)","i"),key=e.key.replace(re,"$1");if(jsxc.storageNotConform>0&&jsxc.ls.length>0){var val=e.newValue;try{val=JSON.parse(val)}catch(err){}var index=$.inArray(JSON.stringify({key:key,value:val}),jsxc.ls);if(index>=0)return jsxc.storageNotConform>1&&(window.clearTimeout(jsxc.toSNC),jsxc.storageNotConform=1,jsxc.storage.setItem("storageNotConform",1)),void jsxc.ls.splice(index,1)}if(e.oldValue!==e.newValue){var n,o,bid=key.replace(new RegExp("[^"+jsxc.storage.SEP+"]+"+jsxc.storage.SEP+"(.*)","i"),"$1");if(jsxc.master&&"alive"===key)return jsxc.debug("Master request."),e.newValue&&e.newValue.match(/:master$/)?void jsxc.warn("Master request from master. Something went wrong... :-("):void jsxc.keepAlive();if(!jsxc.master&&("alive"===key||"alive_busy"===key))return jsxc.to=$.grep(jsxc.to,function(timeout){return window.clearTimeout(timeout),!1}),"undefined"==typeof e.newValue||null===e.newValue?void jsxc.xmpp.disconnected():(jsxc.to.push(window.setTimeout(jsxc.checkMaster,("alive"===key?jsxc.options.timeout:jsxc.options.busyTimeout)+jsxc.random(60))),void(jsxc.role_allocation||jsxc.onSlave()));if(jsxc.master&&"sid"===key&&!e.newValue&&jsxc.xmpp.logout(!1),key.match(/^notices/)&&jsxc.notice.load(),key.match(/^presence/)&&jsxc.gui.changePresence(e.newValue,!0),key.match(/^options/)&&e.newValue&&(n=JSON.parse(e.newValue),"undefined"!=typeof n.muteNotification&&n.muteNotification?jsxc.notification.muteSound(!0):jsxc.notification.unmuteSound(!0)),key.match(/^hidden/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.isHidden()),key.match(/^focus/)&&(jsxc.master?clearTimeout(jsxc.toNotification):jsxc.hasFocus()),key.match(new RegExp("^history"+jsxc.storage.SEP)))for(var uid,el,message,history=JSON.parse(e.newValue);history.length>0;)uid=history.pop(),message=new jsxc.Message(uid),el=message.getDOM(),0===el.length?(jsxc.master&&message.direction===jsxc.Message.OUT&&jsxc.xmpp.sendMessage(message.bid,message.msg,message._uid),jsxc.gui.window._postMessage(message,!0)):message.isReceived()&&el.addClass("jsxc_received");else{if(key.match(new RegExp("^window"+jsxc.storage.SEP)))return e.newValue?e.oldValue?(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),n.minimize!==o.minimize&&(n.minimize?jsxc.gui.window._hide(bid):jsxc.gui.window._show(bid)),jsxc.gui.window.setText(bid,n.text),void(n.unread!==o.unread&&(0===n.unread?jsxc.gui.readMsg(bid):jsxc.gui._unreadMsg(bid,n.unread)))):void jsxc.gui.window.open(bid):void jsxc.gui.window._close(bid);if(key.match(/^unreadMsg/)&&jsxc.gui.favicon&&jsxc.gui.favicon.badge(parseInt(e.newValue)||0),key.match(new RegExp("^smp"+jsxc.storage.SEP))){if(!e.newValue)return jsxc.gui.dialog.close("smp"),jsxc.gui.window.hideOverlay(bid),void(jsxc.master&&jsxc.otr.objects[bid].sm.abort());n=JSON.parse(e.newValue),"undefined"!=typeof n.data?jsxc.gui.window.smpRequest(bid,n.data):jsxc.master&&n.sec&&(jsxc.gui.dialog.close("smp"),jsxc.gui.window.hideOverlay(bid),jsxc.otr.sendSmpReq(bid,n.sec,n.quest))}if(!jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))){if(!e.newValue)return void jsxc.gui.roster.purge(bid);if(0===jsxc.gui.roster.getItem(bid).length)return void jsxc.gui.roster.add(bid);n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),jsxc.gui.update(bid),o.status===n.status&&o.sub===n.sub||jsxc.gui.roster.reorder(bid)}jsxc.master&&key.match(new RegExp("^deletebuddy"+jsxc.storage.SEP))&&e.newValue&&(n=JSON.parse(e.newValue),jsxc.xmpp.removeBuddy(n.jid),jsxc.storage.removeUserItem(key)),jsxc.master&&key.match(new RegExp("^buddy"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),o=JSON.parse(e.oldValue),o.transferReq!==n.transferReq&&(jsxc.storage.updateUserItem("buddy",bid,"transferReq",-1),0===n.transferReq&&jsxc.otr.goPlain(bid),1===n.transferReq&&jsxc.otr.goEncrypt(bid)),o.name!==n.name&&jsxc.gui.roster._rename(bid,n.name)),"friendReq"===key&&(n=JSON.parse(e.newValue),jsxc.master&&n.approve>=0&&jsxc.xmpp.resFriendReq(n.jid,n.approve)),jsxc.master&&key.match(new RegExp("^add"+jsxc.storage.SEP))&&(n=JSON.parse(e.newValue),jsxc.xmpp.addBuddy(n.username,n.alias)),"roster"===key&&jsxc.gui.roster.toggle(e.newValue),jsxc.master&&key.match(new RegExp("^vcard"+jsxc.storage.SEP))&&null!==e.newValue&&e.newValue.match(/^request:/)&&jsxc.xmpp.loadVcard(bid,function(stanza){jsxc.storage.setUserItem("vcard",bid,{state:"success",data:$("<div>").append(stanza).html()})},function(){jsxc.storage.setUserItem("vcard",bid,{state:"error"})}),jsxc.master||!key.match(new RegExp("^vcard"+jsxc.storage.SEP))||null===e.newValue||e.newValue.match(/^request:/)||(n=JSON.parse(e.newValue),"undefined"!=typeof n.state&&$(document).trigger("loaded.vcard.jsxc",n),jsxc.storage.removeUserItem("vcard",bid)),"_cmd"===key&&e.newValue&&(n=JSON.parse(e.newValue)||{},jsxc.storage.removeUserItem("_cmd"),n.cmd&&n.target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.debug("Execute tab cmd: "+n.cmd),jsxc.exec(n.cmd,n.params)))}}}},saveBuddy:function(bid,data){return jsxc.storage.getUserItem("buddy",bid)?(jsxc.storage.updateUserItem("buddy",bid,data),"updated"):(jsxc.storage.setUserItem("buddy",bid,$.extend({jid:"",name:"",status:0,sub:"none",msgstate:0,transferReq:-1,trust:!1,fingerprint:null,res:[],type:"chat"},data)),"created")}},jsxc.tab={CONST:{MASTER:"master",SLAVE:"slave"},exec:function(target,cmd,params){params=Array.prototype.slice.call(arguments,2),1===params.length&&$.isArray(params[0])&&(params=params[0]),target===jsxc.tab.CONST[jsxc.master?"MASTER":"SLAVE"]&&(jsxc.exec(cmd,params),jsxc.master)||jsxc.storage.setUserItem("_cmd",{target:target,cmd:cmd,params:params,rnd:Math.random()})},execMaster:function(){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.MASTER),jsxc.tab.exec.apply(this,args)},execSlave:function(){var args=Array.prototype.slice.call(arguments);args.unshift(jsxc.tab.CONST.SLAVE),jsxc.tab.exec.apply(this,args)}},jsxc.webrtc={conn:null,localStream:null,remoteStream:null,last_caller:null,AUTO_ACCEPT:!1,reqVideoFeatures:["urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:apps:dtls:0"],reqFileFeatures:["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:file-transfer:3"],chatJids:{},init:function(){var self=jsxc.webrtc;if(self.conn=jsxc.xmpp.conn,!self.conn.jingle)return void jsxc.error("No jingle plugin found!");var manager=self.conn.jingle.manager;$(document).on("message.jsxc",self.onMessage),$(document).on("presence.jsxc",self.onPresence),$(document).on("mediafailure.jingle",self.onMediaFailure),manager.on("incoming",$.proxy(self.onIncoming,self)),manager.on("terminated",$.proxy(self.onTerminated,self)),manager.on("ringing",$.proxy(self.onCallRinging,self)),manager.on("receivedFile",$.proxy(self.onReceivedFile,self)),manager.on("sentFile",function(sess,metadata){jsxc.debug("sent "+metadata.hash)}),manager.on("peerStreamAdded",$.proxy(self.onRemoteStreamAdded,self)),manager.on("peerStreamRemoved",$.proxy(self.onRemoteStreamRemoved,self)),manager.on("log:*",function(level,msg){jsxc.debug("[JINGLE]["+level+"]",msg)}),self.conn.caps&&$(document).on("caps.strophe",self.onCaps);var url=jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath,peerConfig=jsxc.options.get("RTCPeerConfig");"string"==typeof url&&url.length>0?self.getTurnCrendentials(url):(jsxc.storage.getUserItem("iceValidity")&&(jsxc.storage.removeUserItem("iceValidity"),peerConfig.iceServers=jsxc.options.RTCPeerConfig.iceServers,jsxc.options.set("RTCPeerConfig",peerConfig)),self.conn.jingle.setICEServers(peerConfig.iceServers))},onConnected:function(){jsxc.storage.removeUserItem("iceValidity")},onDisconnected:function(){var self=jsxc.webrtc;$(document).off("message.jsxc",self.onMessage),$(document).off("presence.jsxc",self.onPresence),$(document).off("mediafailure.jingle",self.onMediaFailure),$(document).off("caps.strophe",self.onCaps)},getTurnCrendentials:function(url){var self=jsxc.webrtc;url=url||jsxc.options.get("RTCPeerConfig").url||jsxc.options.turnCredentialsPath;var ttl=(jsxc.storage.getUserItem("iceValidity")||0)-(new Date).getTime();return jsxc.storage.getUserItem("iceConfig")&&(jsxc.storage.removeUserItem("iceConfig"),ttl=-1),ttl>0?(self.conn.jingle.setICEServers(jsxc.options.get("RTCPeerConfig").iceServers),void window.setTimeout(jsxc.webrtc.getTurnCrendentials,ttl+500)):void $.ajax(url,{async:!0,xhrFields:{withCredentials:jsxc.options.get("RTCPeerConfig").withCredentials},success:function(data){var ttl=data.ttl||3600,iceServers=data.iceServers;if(!iceServers&&data.url&&(jsxc.warn("Received RTCPeer configuration is deprecated. Use now RTCPeerConfig.url."),iceServers=[{urls:data.url}],data.username&&(iceServers[0].username=data.username),data.credential&&(iceServers[0].credential=data.credential)),iceServers&&iceServers.length>0){var url=iceServers[0].url&&iceServers[0].url.length>0,urls=iceServers[0].urls&&iceServers[0].urls.length>0;if(urls||url){jsxc.debug("ice servers received");var peerConfig=jsxc.options.get("RTCPeerConfig");peerConfig.iceServers=iceServers,jsxc.options.set("RTCPeerConfig",peerConfig),self.conn.jingle.setICEServers(iceServers),jsxc.storage.setUserItem("iceValidity",(new Date).getTime()+1e3*ttl)}else jsxc.warn("No valid url found in first ice object.")}},dataType:"json"})},getCapableRes:function(jid,features){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid),res=Object.keys(jsxc.storage.getUserItem("res",bid)||{})||[];if(!features)return res;"string"==typeof features&&(features=[features]);var available=[];return $.each(res,function(i,r){self.conn.caps.hasFeatureByJid(bid+"/"+r,features)&&available.push(r)}),available},initWindow:function(event,win){var self=jsxc.webrtc;if(!win.hasClass("jsxc_groupchat")){if(jsxc.debug("webrtc.initWindow"),!self.conn)return void $(document).one("attached.jsxc",function(){self.initWindow(null,win)});var div=$("<div>").addClass("jsxc_video");win.find(".jsxc_tools .jsxc_settings").after(div);var screenMediaExtension=jsxc.options.get("screenMediaExtension")||{},browser=self.conn.jingle.RTC.webrtcDetectedBrowser;if(screenMediaExtension[browser]||jsxc.storage.getItem("debug")){var a=$("<a>");a.text($.t("Share_screen")),a.addClass("jsxc_shareScreen jsxc_video"),a.attr("href","#"),win.find(".jsxc_settings .jsxc_menu li:last").after($("<li>").append(a))}self.updateIcon(win.data("bid"))}},updateIcon:function(bid){jsxc.debug("Update icon",bid);var self=jsxc.webrtc;if(bid!==jsxc.jidToBid(self.conn.jid)){var win=jsxc.gui.window.get(bid),jid=win.data("jid"),ls=jsxc.storage.getUserItem("buddy",bid);if("string"!=typeof jid){if(!ls||"string"!=typeof ls.jid)return void jsxc.debug("[webrtc] Could not update icon, because could not find jid for "+bid);jid=ls.jid}var res=Strophe.getResourceFromJid(jid),el=win.find(".jsxc_video"),capableRes=self.getCapableRes(jid,self.reqVideoFeatures),targetRes=res;null===targetRes&&($.each(jsxc.storage.getUserItem("buddy",bid).res||[],function(index,val){if(capableRes.indexOf(val)>-1)return targetRes=val,!1}),jid=jid+"/"+targetRes),el.off("click"),capableRes.indexOf(targetRes)>-1?(el.click(function(){$(this).hasClass("jsxc_shareScreen")?self.startScreenSharing(jid):self.startCall(jid)}),el.removeClass("jsxc_disabled"),el.attr("title",$.t("Start_video_call"))):(el.addClass("jsxc_disabled"),el.attr("title",$.t("Video_call_not_possible")))}},onMessage:function(e,from){var self=jsxc.webrtc,bid=jsxc.jidToBid(from);jsxc.debug("webrtc.onmessage",from),self.chatJids[bid]!==from&&(self.updateIcon(bid),self.chatJids[bid]=from)},onPresence:function(ev,jid,status,presence){var self=jsxc.webrtc;0===$(presence).find('c[xmlns="'+Strophe.NS.CAPS+'"]').length&&(jsxc.debug("webrtc.onpresence",jid),self.updateIcon(jsxc.jidToBid(jid)))},setStatus:function(txt,d){var status=$(".jsxc_webrtc .jsxc_status"),duration="undefined"==typeof d||null===d?4e3:d;if(jsxc.debug("[Webrtc]",txt),status.html()&&(txt=status.html()+"<br />"+txt),status.html(txt),status.css({"margin-left":"-"+status.width()/2+"px",opacity:0,display:"block"}),status.stop().animate({opacity:1}),clearTimeout(status.data("timeout")),0!==duration){var to=setTimeout(function(){status.stop().animate({opacity:0},function(){status.html("")})},duration);status.data("timeout",to)}},onCaps:function(event,jid){var self=jsxc.webrtc;jsxc.gui.roster.loaded?self.updateIcon(jsxc.jidToBid(jid)):$(document).on("cloaded.roster.jsxc",function(){self.updateIcon(jsxc.jidToBid(jid))})},onMediaFailure:function(ev,err){var msg,self=jsxc.webrtc;switch(err=err||{},self.setStatus("media failure"),err.name){case"NotAllowedError":case"PERMISSION_DENIED":msg=$.t("PermissionDeniedError");break;case"HTTPS_REQUIRED":case"EXTENSION_UNAVAILABLE":msg=$.t(err.name);break;default:msg=$.t(err.name)!==err.name?$.t(err.name):$.t("UNKNOWN_ERROR")}jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jsxc.webrtc.last_caller),direction:jsxc.Message.SYS,msg:$.t("Media_failure")+": "+msg+" ("+err.name+")."}),jsxc.gui.dialog.close(),jsxc.debug("media failure: "+err.name)},onIncoming:function(session){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;if("FileTransferSession"===type)self.onIncomingFileTransfer(session);else if("MediaSession"===type){var reqMedia=!1;$.each(session.pc.remoteDescription.contents,function(){"both"===this.senders&&(reqMedia=!0)}),session.call=reqMedia,reqMedia?self.onIncomingCall(session):self.onIncomingStream(session)}else jsxc.warn("Unknown session type.")},onIncomingStream:function(session){function acceptIncomingStream(session){jsxc.gui.dialog.close(),jsxc.gui.showVideoWindow(session.peerID),session.accept()}jsxc.debug("incoming stream from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postScreenMessage(bid,$.t("Incoming_stream"),session.sid),jsxc.notification.notify($.t("Incoming_stream"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void acceptIncomingStream(session);var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){$(document).trigger("accept.call.jsxc"),acceptIncomingStream(session)}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},onIncomingFileTransfer:function(session){jsxc.debug("incoming file transfer from "+session.peerID);var buddylist=jsxc.storage.getUserItem("buddylist")||[],bid=jsxc.jidToBid(session.peerID);if(buddylist.indexOf(bid)>-1){session.accept();var message=jsxc.gui.window.postMessage({_uid:session.sid+":msg",bid:bid,direction:jsxc.Message.IN,attachment:{name:session.receiver.metadata.name,type:session.receiver.metadata.type||"application/octet-stream"}});session.receiver.on("progress",function(sent,size){jsxc.gui.window.updateProgress(message,sent,size)})}},onIncomingCall:function(session){jsxc.debug("incoming call from "+session.peerID);var self=jsxc.webrtc,bid=jsxc.jidToBid(session.peerID);if(session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postCallMessage(bid,$.t("Incoming_call"),session.sid),jsxc.notification.notify($.t("Incoming_call"),$.t("from_sender",{sender:bid})),session.ring(),jsxc.webrtc.last_caller=session.peerID,jsxc.webrtc.AUTO_ACCEPT)return void self.acceptIncomingCall(session);var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("incomingCall",bid),{noClose:!0});dialog.find(".jsxc_accept").click(function(){self.acceptIncomingCall(session)}),dialog.find(".jsxc_reject").click(function(){jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),session.decline()})},acceptIncomingCall:function(session){$(document).trigger("accept.call.jsxc");var self=jsxc.webrtc;jsxc.switchEvents({"mediaready.jingle":function(ev,stream){self.setStatus("Accept call"),self.localStream=stream,self.conn.jingle.localStream=stream;var dialog=jsxc.gui.showVideoWindow(session.peerID);dialog.find(".jsxc_videoContainer").addClass("jsxc_establishing"),session.addStream(stream),session.accept()},"mediafailure.jingle":function(){session.decline()}}),self.reqUserMedia()},onTerminated:function(session,reason){var self=jsxc.webrtc,type=session.constructor?session.constructor.name:null;"MediaSession"===type&&self.onCallTerminated(session,reason)},onCallTerminated:function(session,reason){var self=jsxc.webrtc;self.setStatus("call terminated "+session.peerID+(reason&&reason.condition?reason.condition:""));var bid=jsxc.jidToBid(session.peerID);if(self.localStream)if("function"==typeof self.localStream.getTracks){var tracks=self.localStream.getTracks();tracks.forEach(function(track){track.stop()})}else"function"==typeof self.localStream.stop?self.localStream.stop():jsxc.warn("Could not stop local stream");$(".jsxc_remotevideo").length&&($(".jsxc_remotevideo")[0].src=""),$(".jsxc_localvideo").length&&($(".jsxc_localvideo")[0].src=""),self.conn.jingle.localStream=null,self.localStream=null,self.remoteStream=null,jsxc.gui.closeVideoWindow(),jsxc.gui.dialog.close(),$(document).trigger("reject.call.jsxc"),$(document).off("error.jingle");var msg=(reason&&reason.condition?": "+$.t("jingle_reason_"+reason.condition):"")+".";session.call?(msg=$.t("Call_terminated")+msg,jsxc.webrtc.postCallMessage(bid,msg,session.sid)):(msg=$.t("Stream_terminated")+msg,jsxc.webrtc.postScreenMessage(bid,msg,session.sid))},onCallRinging:function(){this.setStatus("ringing...",0),$(".jsxc_videoContainer").removeClass("jsxc_establishing").addClass("jsxc_ringing")},onRemoteStreamAdded:function(session,stream){var self=jsxc.webrtc;self.setStatus("Remote stream for session "+session.sid+" added."),self.remoteStream=stream;var isVideoDevice=stream.getVideoTracks().length>0,isAudioDevice=stream.getAudioTracks().length>0;self.setStatus(isVideoDevice?"Use remote video device.":"No remote video device"),self.setStatus(isAudioDevice?"Use remote audio device.":"No remote audio device"),$(".jsxc_remotevideo").length&&(self.attachMediaStream($("#jsxc_webrtc .jsxc_remotevideo"),stream),$("#jsxc_webrtc .jsxc_"+(isVideoDevice?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"))},attachMediaStream:function(element,stream){var self=jsxc.webrtc;self.conn.jingle.RTC.attachMediaStream(element instanceof jQuery?element.get(0):element,stream),$(element).show()},onRemoteStreamRemoved:function(session){this.setStatus("Remote stream for "+session.jid+" removed.")},onIceConnectionStateChanged:function(session,state){var self=jsxc.webrtc;jsxc.debug("connection state for "+session.sid,state),"connected"===state?$("#jsxc_webrtc .jsxc_deviceAvailable").show():"failed"===state?(jsxc.gui.window.postMessage({bid:jsxc.jidToBid(session.peerID),direction:jsxc.Message.SYS,msg:$.t("ICE_connection_failure")}),session.end("failed-transport"),$(document).trigger("callterminated.jingle")):"interrupted"===state&&self.setStatus($.t("Connection_interrupted"))},startCall:function(jid,um){var self=jsxc.webrtc;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"mediaready.jingle":function(ev,stream){jsxc.debug("media ready for outgoing call"),self.initiateOutgoingCall(jid,stream)},"mediafailure.jingle":function(){jsxc.gui.dialog.close()}}),void self.reqUserMedia(um))},initiateOutgoingCall:function(jid,stream){var self=jsxc.webrtc;self.localStream=stream,self.conn.jingle.localStream=stream;var dialog=jsxc.gui.showVideoWindow(jid);dialog.find(".jsxc_videoContainer").addClass("jsxc_establishing"),self.setStatus("Initiate call"),$(document).one("error.jingle",function(ev,sid,error){error&&"offer"!==error.source||setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500)});var session=self.conn.jingle.initiate(jid);session.call=!0,session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),self.postCallMessage(jsxc.jidToBid(jid),$.t("Call_started"),session.sid)},hangUp:function(reason,text){jsxc.webrtc.conn.jingle.manager&&!$.isEmptyObject(jsxc.webrtc.conn.jingle.manager.peers)?jsxc.webrtc.conn.jingle.terminate(null,reason,text):jsxc.gui.closeVideoWindow(),$(document).trigger("callterminated.jingle")},startScreenSharing:function(jid){var self=this;return null===Strophe.getResourceFromJid(jid)?void jsxc.debug("We need a full jid"):(self.last_caller=jid,jsxc.switchEvents({"mediaready.jingle":function(ev,stream){self.initiateScreenSharing(jid,stream)},"mediafailure.jingle":function(ev,err){jsxc.gui.dialog.close();var browser=self.conn.jingle.RTC.webrtcDetectedBrowser,screenMediaExtension=jsxc.options.get("screenMediaExtension")||{};screenMediaExtension[browser]&&("EXTENSION_UNAVAILABLE"===err.name||"NotAllowedError"===err.name&&"firefox"===browser)&&setTimeout(function(){jsxc.gui.window.postMessage({bid:jsxc.jidToBid(jid),direction:jsxc.Message.SYS,msg:$.t("Install_extension")+screenMediaExtension[browser]})},500)}}),void self.reqUserMedia(["screen"]))},initiateScreenSharing:function(jid,stream){var self=jsxc.webrtc,bid=jsxc.jidToBid(jid);jsxc.webrtc.localStream=stream,jsxc.webrtc.conn.jingle.localStream=stream;var container=jsxc.gui.showMinimizedVideoWindow();container.addClass("jsxc_establishing"),self.setStatus("Initiate stream"),$(document).one("error.jingle",function(e,sid,error){error&&"offer"!==error.source||setTimeout(function(){jsxc.gui.showAlert("Sorry, we couldn't establish a connection. Maybe your buddy is offline.")},500)});var constraints,browser=self.conn.jingle.RTC.webrtcDetectedBrowser,browserVersion=self.conn.jingle.RTC.webrtcDetectedVersion;constraints=browserVersion<33&&"firefox"===browser||"chrome"===browser?{mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}}:{offerToReceiveAudio:!1,offerToReceiveVideo:!1};var session=self.conn.jingle.initiate(jid,void 0,constraints);session.call=!1,session.on("change:connectionState",$.proxy(self.onIceConnectionStateChanged,self)),
+session.on("accepted",function(){self.onSessionAccepted(session)}),self.postScreenMessage(bid,$.t("Stream_started"),session.sid)},onSessionAccepted:function(session){var self=jsxc.webrtc;$(".jsxc_videoContainer").removeClass("jsxc_ringing"),self.postScreenMessage(jsxc.jidToBid(session.peerID),$.t("Connection_accepted"),session.sid)},reqUserMedia:function(um){function filterUserMedia(devices){var availableDevices=devices.map(function(device){return device.kind});um=um.filter(function(el){return availableDevices.indexOf(el)!==-1||availableDevices.indexOf(el+"input")!==-1}),um.length?jsxc.webrtc.getUserMedia(um):jsxc.warn("No audio/video device available.")}return this.localStream?void $(document).trigger("mediaready.jingle",[this.localStream]):(um=um||["video","audio"],jsxc.gui.dialog.open(jsxc.gui.template.get("allowMediaAccess"),{noClose:!0}),void(um.indexOf("screen")>=0?jsxc.webrtc.getScreenMedia():"undefined"!=typeof navigator&&"undefined"!=typeof navigator.mediaDevices&&"undefined"!=typeof navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices().then(filterUserMedia).catch(function(err){jsxc.warn(err.name+": "+err.message)}):"undefined"!=typeof MediaStreamTrack&&"undefined"!=typeof MediaStreamTrack.getSources?MediaStreamTrack.getSources(filterUserMedia):jsxc.webrtc.getUserMedia(um)))},getUserMedia:function(um){var self=jsxc.webrtc,constraints={};um.indexOf("video")>-1&&(constraints.video=!0),um.indexOf("audio")>-1&&(constraints.audio=!0);try{self.conn.jingle.RTC.getUserMedia(constraints,function(stream){jsxc.debug("onUserMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])},function(error){jsxc.warn("Failed to get access to local media. Error ",error),$(document).trigger("mediafailure.jingle",[error])})}catch(e){jsxc.error("GUM failed: ",e),$(document).trigger("mediafailure.jingle")}},getScreenMedia:function(){var self=jsxc.webrtc;jsxc.debug("get screen media"),self.conn.jingle.getScreenMedia(self.screenMediaCallback)},screenMediaCallback:function(err,stream){return err?void $(document).trigger("mediafailure.jingle",[err]):void(stream&&(jsxc.debug("onScreenMediaSuccess"),$(document).trigger("mediaready.jingle",[stream])))},screenMediaAvailable:function(){var self=jsxc.webrtc,browser=self.conn.jingle.RTC.webrtcDetectedBrowser,chrome=!!sessionStorage.getScreenMediaJSExtensionId&&"chrome"===browser,firefox="firefox"===browser;return chrome||firefox},snapshot:function(video){video||jsxc.debug("Missing video element"),$(".jsxc_snapshotbar p").remove();var canvas=$("<canvas/>").css("display","none").appendTo("body").attr({width:video.width(),height:video.height()}).get(0),ctx=canvas.getContext("2d");ctx.drawImage(video[0],0,0);var img=$("<img/>"),url=null;try{url=canvas.toDataURL("image/jpeg")}catch(err){return void jsxc.warn("Error",err)}img[0].src=url;var link=$("<a/>").attr({target:"_blank",href:url});link.append(img),$(".jsxc_snapshotbar").append(link),canvas.remove()},sendFile:function(jid,file){jsxc.debug("Send file via webrtc");var self=jsxc.webrtc;if(!Strophe.getResourceFromJid(jid))return void jsxc.warn("Require full jid to send file via webrtc");var sess=self.conn.jingle.manager.createFileTransferSession(jid);return sess.on("change:sessionState",function(){jsxc.debug("Session state",sess.state)}),sess.on("change:connectionState",function(){jsxc.debug("Connection state",sess.connectionState)}),sess.start(file),sess},onReceivedFile:function(sess,file,metadata){if(jsxc.debug("file received",metadata),FileReader){var type,reader=new FileReader;if(metadata.type)type=metadata.type;else{var ext=metadata.name.replace(/.+\.([a-z0-9]+)$/i,"$1").toLowerCase();switch(ext){case"jpg":case"jpeg":case"png":case"gif":case"svg":type="image/"+ext.replace(/^jpg$/,"jpeg");break;case"mp3":case"wav":type="audio/"+ext;break;case"pdf":type="application/pdf";break;case"txt":type="text/"+ext;break;default:type="application/octet-stream"}}reader.onload=function(ev){jsxc.gui.window.postMessage({_uid:sess.sid+":msg",bid:jsxc.jidToBid(sess.peerID),direction:jsxc.Message.IN,attachment:{name:metadata.name,type:type,size:metadata.size,data:ev.target.result}})},file.type||(file=new File([file],metadata.name,{type:type})),reader.readAsDataURL(file)}}},jsxc.webrtc.postCallMessage=function(bid,msg,uid){jsxc.gui.window.postMessage({_uid:uid,bid:bid,direction:jsxc.Message.SYS,msg:":telephone_receiver: "+msg})},jsxc.webrtc.postScreenMessage=function(bid,msg,uid){jsxc.gui.window.postMessage({_uid:uid,bid:bid,direction:jsxc.Message.SYS,msg:":computer: "+msg})},jsxc.gui.showMinimizedVideoWindow=function(){var self=jsxc.webrtc;jsxc.gui.dialog.close();var videoContainer=$("<div/>");videoContainer.addClass("jsxc_videoContainer jsxc_minimized"),videoContainer.appendTo("body"),videoContainer.draggable({containment:"parent"});var videoElement=$('<video class="jsxc_localvideo" autoplay=""></video>');return videoElement.appendTo(videoContainer),videoElement[0].muted=!0,videoElement[0].volume=0,self.localStream&&self.attachMediaStream(videoElement,self.localStream),videoContainer.append('<div class="jsxc_controlbar"><div><div class="jsxc_hangUp jsxc_videoControl"></div></div></div></div>'),videoContainer.find(".jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),videoContainer.click(function(){videoContainer.find(".jsxc_controlbar").toggleClass("jsxc_visible")}),videoContainer},jsxc.gui.showVideoWindow=function(jid){var self=jsxc.webrtc;jsxc.gui.dialog.close(),$("body").append(jsxc.gui.template.get("videoWindow")),$("#jsxc_webrtc .jsxc_localvideo")[0].muted=!0,$("#jsxc_webrtc .jsxc_localvideo")[0].volume=0;var rv=$("#jsxc_webrtc .jsxc_remotevideo"),lv=$("#jsxc_webrtc .jsxc_localvideo");lv.draggable({containment:"parent"}),self.localStream&&self.attachMediaStream(lv,self.localStream);var w_dialog=$("#jsxc_webrtc").width(),w_remote=rv.width();if(w_remote>w_dialog){var scale=w_dialog/w_remote,new_h=rv.height()*scale,new_w=w_dialog,vc=$("#jsxc_webrtc .jsxc_videoContainer");rv.height(new_h),rv.width(new_w),vc.height(new_h),vc.width(new_w),lv.height(lv.height()*scale),lv.width(lv.width()*scale)}self.remoteStream&&(self.attachMediaStream(rv,self.remoteStream),$("#jsxc_webrtc .jsxc_"+(self.remoteStream.getVideoTracks().length>0?"remotevideo":"noRemoteVideo")).addClass("jsxc_deviceAvailable"));var win=jsxc.gui.window.open(jsxc.jidToBid(jid));return win.find(".slimScrollDiv").resizable("disable"),jsxc.gui.window.resize(win,{size:{width:$("#jsxc_webrtc .jsxc_chatarea").width(),height:$("#jsxc_webrtc .jsxc_chatarea").height()}},!0),$("#jsxc_webrtc .jsxc_chatarea ul").append(win.detach()),$("#jsxc_webrtc .jsxc_hangUp").click(function(){jsxc.webrtc.hangUp("success")}),$("#jsxc_webrtc .jsxc_fullscreen").click(function(){$.support.fullscreen&&($(document).one("disabled.fullscreen",function(){lv.removeAttr("style")}),$("#jsxc_webrtc .jsxc_videoContainer").fullscreen())}),$("#jsxc_webrtc .jsxc_videoContainer").click(function(){$("#jsxc_webrtc .jsxc_controlbar").toggleClass("jsxc_visible")}),$("#jsxc_webrtc")},jsxc.gui.closeVideoWindow=function(){var win=$("#jsxc_webrtc .jsxc_chatarea > ul > li");win.length>0&&($("#jsxc_windowList > ul").prepend(win.detach()),win.find(".slimScrollDiv").resizable("enable"),jsxc.gui.window.resize(win)),$("#jsxc_webrtc, .jsxc_videoContainer").remove()},$.extend(jsxc.CONST,{KEYCODE_ENTER:13,KEYCODE_ESC:27}),$(document).ready(function(){$(document).on("init.window.jsxc",jsxc.webrtc.initWindow),$(document).on("attached.jsxc",jsxc.webrtc.init),$(document).on("disconnected.jsxc",jsxc.webrtc.onDisconnected),$(document).on("connected.jsxc",jsxc.webrtc.onConnected)}),jsxc.xmpp.bookmarks={},jsxc.xmpp.bookmarks.remote=function(){return jsxc.xmpp.conn.caps&&jsxc.xmpp.hasFeatureByJid(jsxc.xmpp.conn.domain,Strophe.NS.PUBSUB+"#publish")},jsxc.xmpp.bookmarks.load=function(){var caps=jsxc.xmpp.conn.caps,ver=caps._jidVerIndex[jsxc.xmpp.conn.domain];ver&&caps._knownCapabilities[ver]||$(document).on("caps.strophe",function(ev,from){from===jsxc.xmpp.conn.domain&&(jsxc.xmpp.bookmarks.load(),$(document).off(ev))}),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.loadFromRemote():jsxc.xmpp.bookmarks.loadFromLocal()},jsxc.xmpp.bookmarks.loadFromLocal=function(){jsxc.debug("Load bookmarks from local storage");var bookmarks=jsxc.storage.getUserItem("bookmarks")||[],bl=jsxc.storage.getUserItem("buddylist")||[];$.each(bookmarks,function(){var room=this,roomdata=jsxc.storage.getUserItem("buddy",room)||{};bl.push(room),jsxc.gui.roster.add(room),roomdata.autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,roomdata.nickname))}),jsxc.storage.setUserItem("buddylist",bl)},jsxc.xmpp.bookmarks.loadFromRemote=function(){jsxc.debug("Load bookmarks from pubsub");var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks.get(function(stanza){var bl=jsxc.storage.getUserItem("buddylist");$(stanza).find("conference").each(function(){var conference=$(this),room=conference.attr("jid"),roomName=conference.attr("name")||room,autojoin=conference.attr("autojoin")||!1,nickname=conference.find("nick").text();nickname=nickname.length>0?nickname:Strophe.getNodeFromJid(jsxc.xmpp.conn.jid),"true"===autojoin?autojoin=!0:"false"===autojoin&&(autojoin=!1);var data=jsxc.storage.getUserItem("buddy",room)||{};data=$.extend(data,{jid:room,name:roomName,sub:"both",status:0,type:"groupchat",state:jsxc.muc.CONST.ROOMSTATE.INIT,subject:null,bookmarked:!0,autojoin:autojoin,nickname:nickname}),jsxc.storage.setUserItem("buddy",room,data),bl.push(room),jsxc.gui.roster.add(room),autojoin&&(jsxc.debug("auto join "+room),jsxc.xmpp.conn.muc.join(room,nickname))}),jsxc.storage.setUserItem("buddylist",bl)},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);"item-not-found"===err.reasons[0]?(jsxc.debug("create bookmark node"),bookmarks.createBookmarksNode()):jsxc.debug("[XMPP] Could not create bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.parseErr=function(stanza){var error=$(stanza).find("error"),type=error.attr("type"),reasons=error.children().map(function(){return $(this).prop("tagName")});return{type:type,reasons:reasons}},jsxc.xmpp.bookmarks.delete=function(room,soft){soft||jsxc.gui.roster.purge(room),jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.deleteFromRemote(room,soft):jsxc.xmpp.bookmarks.deleteFromLocal(room,soft)},jsxc.xmpp.bookmarks.deleteFromRemote=function(room,soft){var bookmarks=jsxc.xmpp.conn.bookmarks;bookmarks.delete(room,function(){jsxc.debug("Bookmark deleted "+room),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},function(stanza){var err=jsxc.xmpp.bookmarks.parseErr(stanza);jsxc.debug("[XMPP] Could not delete bookmark: "+err.type,err.reasons)})},jsxc.xmpp.bookmarks.deleteFromLocal=function(room,soft){var bookmarks=jsxc.storage.getUserItem("bookmarks"),index=bookmarks.indexOf(room);index>-1&&bookmarks.splice(index,1),jsxc.storage.setUserItem("bookmarks",bookmarks),soft&&(jsxc.gui.roster.getItem(room).removeClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!1),jsxc.storage.updateUserItem("buddy",room,"autojoin",!1))},jsxc.xmpp.bookmarks.add=function(room,alias,nick,autojoin){jsxc.xmpp.bookmarks.remote()?jsxc.xmpp.bookmarks.addToRemote(room,alias,nick,autojoin):jsxc.xmpp.bookmarks.addToLocal(room,alias,nick,autojoin)},jsxc.xmpp.bookmarks.addToRemote=function(room,alias,nick,autojoin){var bookmarks=jsxc.xmpp.conn.bookmarks,success=function(){jsxc.debug("New bookmark created",room),jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick)},error=function(){jsxc.warn("Could not create bookmark",room)};bookmarks.add(room,alias,nick,autojoin,success,error)},jsxc.xmpp.bookmarks.addToLocal=function(room,alias,nick,autojoin){jsxc.gui.roster.getItem(room).addClass("jsxc_bookmarked"),jsxc.storage.updateUserItem("buddy",room,"bookmarked",!0),jsxc.storage.updateUserItem("buddy",room,"autojoin",autojoin),jsxc.storage.updateUserItem("buddy",room,"nickname",nick);var bookmarks=jsxc.storage.getUserItem("bookmarks")||[];bookmarks.indexOf(room)<0&&(bookmarks.push(room),jsxc.storage.setUserItem("bookmarks",bookmarks))},jsxc.xmpp.bookmarks.showDialog=function(room){var dialog=jsxc.gui.dialog.open(jsxc.gui.template.get("bookmarkDialog")),data=jsxc.storage.getUserItem("buddy",room);$("#jsxc_room").val(room),$("#jsxc_nickname").val(data.nickname),$("#jsxc_bookmark").change(function(){$(this).prop("checked")?($("#jsxc_nickname").prop("disabled",!1),$("#jsxc_autojoin").prop("disabled",!1),$("#jsxc_autojoin").parent(".checkbox").removeClass("disabled")):($("#jsxc_nickname").prop("disabled",!0),$("#jsxc_autojoin").prop("disabled",!0).prop("checked",!1),$("#jsxc_autojoin").parent(".checkbox").addClass("disabled"))}),$("#jsxc_bookmark").prop("checked",data.bookmarked),$("#jsxc_autojoin").prop("checked",data.autojoin),$("#jsxc_bookmark").change(),dialog.find("form").submit(function(ev){ev.preventDefault();var bookmarked=$("#jsxc_bookmark").prop("checked"),autojoin=$("#jsxc_autojoin").prop("checked"),nickname=$("#jsxc_nickname").val();return bookmarked?jsxc.xmpp.bookmarks.add(room,data.name,nickname,autojoin):data.bookmarked&&jsxc.xmpp.bookmarks.delete(room,!0),jsxc.gui.dialog.close(),!1})},jsxc.xmpp.chatState={conn:null,toComposingNotificationDelay:900},jsxc.xmpp.chatState.init=function(){var self=jsxc.xmpp.chatState;return jsxc.xmpp.conn&&jsxc.xmpp.connected?($(document).off("composing.chatstates",jsxc.xmpp.chatState.onComposing),$(document).off("paused.chatstates",jsxc.xmpp.chatState.onPaused),$(document).off("active.chatstates",jsxc.xmpp.chatState.onActive),self.isDisabled()?void jsxc.debug("chat state notification disabled"):(self.conn=jsxc.xmpp.conn,$(document).on("composing.chatstates",jsxc.xmpp.chatState.onComposing),$(document).on("paused.chatstates",jsxc.xmpp.chatState.onPaused),void $(document).on("active.chatstates",jsxc.xmpp.chatState.onActive))):void $(document).on("attached.jsxc",self.init)},jsxc.xmpp.chatState.onComposing=function(ev,jid){var self=jsxc.xmpp.chatState,bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||null;if(data&&!jsxc.xmpp.chatState.isDisabled()&&("groupchat"!==data.type||Strophe.getResourceFromJid(jid)!==Strophe.getNodeFromJid(self.conn.jid))){var user="groupchat"===data.type?Strophe.getResourceFromJid(jid):data.name,win=jsxc.gui.window.get(bid);if(0!==win.length){clearTimeout(win.data("composing-timeout"));var usersComposing=win.data("composing")||[];usersComposing.indexOf(user)===-1&&(usersComposing.push(user),win.data("composing",usersComposing));var textarea=win.find(".jsxc_textarea"),composingNotif=textarea.find(".jsxc_composing");composingNotif.length<1&&(composingNotif=$("<div>").addClass("jsxc_composing").addClass("jsxc_chatmessage").addClass("jsxc_sys").appendTo(textarea));var msg=self._genComposingMsg(usersComposing);composingNotif.text(msg),jsxc.gui.window.scrollDown(bid),composingNotif.addClass("jsxc_fadein")}}},jsxc.xmpp.chatState.onPaused=function(ev,jid){var self=jsxc.xmpp.chatState,bid=jsxc.jidToBid(jid),data=jsxc.storage.getUserItem("buddy",bid)||null;if(data&&!jsxc.xmpp.chatState.isDisabled()){var user="groupchat"===data.type?Strophe.getResourceFromJid(jid):data.name,win=jsxc.gui.window.get(bid);if(0!==win.length){var el=win.find(".jsxc_composing"),usersComposing=win.data("composing")||[];if(usersComposing.indexOf(user)>=0&&(usersComposing.splice(usersComposing.indexOf(user),1),win.data("composing",usersComposing)),0===usersComposing.length){var durationValue=el.css("transition-duration")||"0s",duration=parseFloat(durationValue)||0;durationValue.match(/[^m]s$/)&&(duration*=1e3),el.removeClass("jsxc_fadein");var to=setTimeout(function(){el.remove()},duration);win.data("composing-timeout",to)}else el.text(self._genComposingMsg(usersComposing))}}},jsxc.xmpp.chatState.onActive=function(ev,jid){jsxc.xmpp.chatState.onPaused(ev,jid)},jsxc.xmpp.chatState.startComposing=function(bid){var self=jsxc.xmpp.chatState;if(jsxc.xmpp.conn&&jsxc.xmpp.conn.chatstates&&!jsxc.xmpp.chatState.isDisabled()){var win=jsxc.gui.window.get(bid),timeout=win.data("composing-timeout"),type=win.hasClass("jsxc_groupchat")?"groupchat":"chat";timeout?clearTimeout(timeout):jsxc.xmpp.conn.chatstates.sendComposing(bid,type),timeout=setTimeout(function(){self.pauseComposing(bid,type),win.data("composing-timeout",null)},self.toComposingNotificationDelay),win.data("composing-timeout",timeout)}},jsxc.xmpp.chatState.pauseComposing=function(bid,type){jsxc.xmpp.chatState.isDisabled()||jsxc.xmpp.conn.chatstates.sendPaused(bid,type)},jsxc.xmpp.chatState.endComposing=function(bid){var win=jsxc.gui.window.get(bid);win.data("composing-timeout")&&clearTimeout(win.data("composing-timeout"))},jsxc.xmpp.chatState._genComposingMsg=function(usersComposing){return usersComposing&&0!==usersComposing.length?usersComposing.length>1?usersComposing.join(", ")+$.t("_are_composing"):usersComposing[0]+$.t("_is_composing"):(jsxc.debug("usersComposing array is empty?"),"")},jsxc.xmpp.chatState.isDisabled=function(){var options=jsxc.options.get("chatState")||{};return!options.enable},$(document).on("attached.jsxc",jsxc.xmpp.chatState.init),jsxc.xmpp.httpUpload={conn:null,ready:!1,CONST:{NS:{HTTPUPLOAD:"urn:xmpp:http:upload"}}},jsxc.xmpp.httpUpload.init=function(o){var self=jsxc.xmpp.httpUpload;self.conn=jsxc.xmpp.conn;var fileTransferOptions=jsxc.options.get("fileTransfer")||{},options=o||jsxc.options.get("httpUpload");if(!fileTransferOptions.httpUpload.enable)return jsxc.debug("http upload disabled"),void jsxc.options.set("httpUpload",!1);if(options&&options.server)return void(self.ready=!0);var caps=jsxc.xmpp.conn.caps,domain=jsxc.xmpp.conn.domain;return caps&&domain&&"undefined"!=typeof caps._knownCapabilities[caps._jidVerIndex[domain]]?void(caps.hasFeatureByJid(domain,self.CONST.NS.HTTPUPLOAD)?self.discoverUploadService():jsxc.debug(domain+" does not support http upload")):(jsxc.debug("Waiting for server capabilities"),void $(document).on("caps.strophe",function onCaps(ev,from){from===domain&&(self.init(),$(document).off("caps.strophe",onCaps))}))},jsxc.xmpp.httpUpload.discoverUploadService=function(){var self=jsxc.xmpp.httpUpload;jsxc.debug("discover http upload service"),self.conn.disco.items(self.conn.domain,null,function(items){$(items).find("item").each(function(){var jid=$(this).attr("jid"),discovered=!1;return self.conn.disco.info(jid,null,function(info){var httpUploadFeature=$(info).find('feature[var="'+self.CONST.NS.HTTPUPLOAD+'"]'),httpUploadMaxSize=$(info).find('field[var="max-file-size"]');httpUploadFeature.length>0&&(jsxc.debug("http upload service found",jid),jsxc.options.set("httpUpload",{server:jid,name:$(info).find("identity").attr("name"),maxSize:parseInt(httpUploadMaxSize.text())}),discovered=!0,self.ready=!0)}),!discovered})})},jsxc.xmpp.httpUpload.sendFile=function(file,message){jsxc.debug("Send file via http upload");var self=jsxc.xmpp.httpUpload;message.encrypted=!1,self.requestSlot(file,function(data){data?data.error?(jsxc.warn('The xmpp server responded with an error of the type "'+data.error.type+'"'),message.getDOM().remove(),jsxc.gui.window.postMessage({bid:message.bid,direction:jsxc.Message.SYS,msg:data.error.text}),message.delete()):data.get&&data.put&&self.uploadFile(data.put,file,message,function(){var a=$("<a>");a.attr("href",data.get),a.attr("data-name",message.attachment.name),a.attr("data-type",message.attachment.type),a.attr("data-size",message.attachment.size),message.attachment.thumbnail&&a.attr("data-thumbnail",message.attachment.thumbnail),a.text(data.get),message.attachment.data=data.get,message.msg=$("<span>").append(a).html(),message.type=jsxc.Message.HTML,jsxc.gui.window.postMessage(message)}):jsxc.warn("Unknown error occured. Please check the debug log.")})},jsxc.xmpp.httpUpload.uploadFile=function(url,file,message,success_cb){$.ajax({url:url,type:"PUT",contentType:"application/octet-stream",data:file,processData:!1,xhr:function(){var xhr=$.ajaxSettings.xhr();return xhr.upload.onprogress=function(ev){ev.lengthComputable&&jsxc.gui.window.updateProgress(message,ev.loaded,ev.total)},xhr},success:function(){jsxc.debug("file successful uploaded"),jsxc.gui.window.updateProgress(message,1,1),success_cb&&success_cb()},error:function(){jsxc.warn("error while uploading file to "+url),message.error="Could not upload file",jsxc.gui.window.postMessage(message)}})},jsxc.xmpp.httpUpload.requestSlot=function(file,cb){var self=jsxc.xmpp.httpUpload,options=jsxc.options.get("httpUpload");if(!options||!options.server)return void jsxc.warn("could not request upload slot, because I am not aware of a server or http upload is disabled");var iq=$iq({to:options.server,type:"get"}).c("request",{xmlns:self.CONST.NS.HTTPUPLOAD}).c("filename").t(file.name).up().c("size").t(file.size);self.conn.sendIQ(iq,function(stanza){self.successfulRequestSlotCB(stanza,cb)},function(stanza){self.failedRequestSlotCB(stanza,cb)})},jsxc.xmpp.httpUpload.successfulRequestSlotCB=function(stanza,cb){var self=jsxc.xmpp.httpUpload,slot=$(stanza).find('slot[xmlns="'+self.CONST.NS.HTTPUPLOAD+'"]');if(slot.length>0){var put=slot.find("put").text(),get=slot.find("get").text();cb({put:put,get:get})}else self.failedRequestSlotCB(stanza,cb)},jsxc.xmpp.httpUpload.failedRequestSlotCB=function(stanza,cb){if($(stanza).find("error").length<=0)return jsxc.warn("response does not contain a slot element"),void cb();var error={type:$(stanza).find("error").attr("type")||"unknown",text:$(stanza).find("error text").text()};$(stanza).find("error not-acceptable")?error.reason="not-acceptable":$(stanza).find("error resource-constraint")?error.reason="resource-constraint":$(stanza).find("error not-allowed")&&(error.reason="not-allowed"),cb({error:error})},$(document).on("stateChange.jsxc",function(ev,state){state===jsxc.CONST.STATE.READY&&jsxc.xmpp.httpUpload.init()}),jsxc.gui.template.aboutDialog='<h3>JavaScript XMPP Chat</h3>\n<p>\n <b>Version: </b><span data-var="version" />\n <br /> <a href="http://jsxc.org/" target="_blank">www.jsxc.org</a>\n</p>\n<p>\n <i>Released under the MIT license</i>\n</p>\n<p>\n Real-time chat app for <span data-var="app_name" /> and more.\n <br /> Requires an external <a href="https://xmpp.org/xmpp-software/servers/" target="_blank">XMPP server</a>.\n</p>\n<p class="jsxc_credits">\n <b>Credits: </b> <a href="http://www.beepzoid.com/old-phones/" target="_blank">David English (Ringtone)</a>,\n <a href="https://soundcloud.com/freefilmandgamemusic/ping-1?in=freefilmandgamemusic/sets/free-notification-sounds-and" target="_blank">CameronMusic (Ping)</a>,\n <a href="http://www.picol.org/">Picol (Fullscreen icon)</a>, <a href="http://www.jabber.org/">Jabber Software Foundation (Jabber lightbulb logo)</a>\n</p>\n<p class="jsxc_libraries">\n <b>Libraries: </b>\n <a href="http://strophe.im/strophejs/">strophe.js</a> (multiple), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/muc</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/disco</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/caps</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins">strophe.js/vcard</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/bookmarks">strophe.js/bookmarks</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/dataforms">strophe.js/x</a> (MIT), <a href="https://github.com/strophe/strophejs-plugins/tree/master/chatstates">strophe.js/chatstates</a> (MIT), <a href="https://github.com/sualko/strophe.jinglejs">strophe.jinglejs</a> (MIT), <a href="https://github.com/neoatlantis/node-salsa20">Salsa20</a> (AGPL3), <a href="www.leemon.com">bigint</a> (public domain), <a href="code.google.com/p/crypto-js">cryptojs</a> (code.google.com/p/crypto-js/wiki/license), <a href="http://git.io/ee">eventemitter</a> (MIT), <a href="https://arlolra.github.io/otr/">otr.js</a> (MPL v2.0), <a href="http://i18next.com/">i18next</a> (MIT), <a href="http://i18next.com/">jquery-i18next</a> (MIT), <a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup</a> (MIT), <a href="https://github.com/ejci/favico.js">favico.js</a> (MIT), <a href="http://emojione.com">emoji one</a> (CC-BY 4.0)\n</p>\n\n<button class="btn btn-default pull-right jsxc_debuglog">Show debug log</button>\n',jsxc.gui.template.alert='<h3 data-i18n="Alert"></h3>\n<div class="alert alert-info">\n <strong data-i18n="Info"></strong> <span data-var="msg" />\n</div>\n',jsxc.gui.template.allowMediaAccess='<p data-i18n="Please_allow_access_to_microphone_and_camera"></p>\n',jsxc.gui.template.approveDialog='<h3 data-i18n="Subscription_request"></h3>\n<p>\n <span data-i18n="You_have_a_request_from"></span> <b class="jsxc_their_jid"></b>.\n</p>\n\n<button class="btn btn-primary jsxc_approve pull-right" data-i18n="Approve"></button>\n<button class="btn btn-default jsxc_deny pull-right" data-i18n="Deny"></button>\n',jsxc.gui.template.authenticationDialog='<h3>Verification</h3>\n<p data-i18n="Authenticating_a_buddy_helps_"></p>\n<div>\n <p data-i18n="[html]How_do_you_want_to_authenticate_your_buddy"></p>\n\n <div class="btn-group" role="group">\n <button class="btn btn-default" data-i18n="Manual"></button>\n <button class="btn btn-default" data-i18n="Question"></button>\n <button class="btn btn-default" data-i18n="Secret"></button>\n </div>\n</div>\n<hr />\n<div class="jsxc_hidden">\n <p data-i18n="To_verify_the_fingerprint_" class="jsxc_explanation"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="my_priv_fingerprint"/></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase"><span data-var="bid_priv_fingerprint"/></span>\n </p>\n <div class="jsxc_right">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compared"></button>\n </div>\n</div>\n<div class="form-horizontal jsxc_hidden">\n <p data-i18n="To_authenticate_using_a_question_" class="jsxc_explanation"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_quest" data-i18n="Question"></label>\n <div class="col-sm-8">\n <input type="text" name="quest" id="jsxc_quest" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret2" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret2" id="jsxc_secret2" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Ask"></button>\n </div>\n </div>\n</div>\n<div class="form-horizontal jsxc_hidden">\n <p class="jsxc_explanation" data-i18n="To_authenticate_pick_a_secret_"></p>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_secret" data-i18n="Secret"></label>\n <div class="col-sm-8">\n <input type="text" name="secret" id="jsxc_secret" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_submit" data-i18n="Compare"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.authFailDialog='<h3 data-i18n="Login_failed"></h3>\n<p data-i18n="Sorry_we_cant_authentikate_"></p>\n\n<button class="btn btn-primary jsxc_retry pull-right" data-i18n="Continue_without_chat"></button>\n<button class="btn btn-default jsxc_cancel pull-right" data-i18n="Retry"></button>\n',jsxc.gui.template.bookmarkDialog='<h3 data-i18n="Edit_bookmark"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" id="jsxc_room" class="form-control" required="required" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" disabled="disabled" required="required" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button type="button" class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button type="submit" class="btn btn-primary jsxc_submit" data-i18n="Save"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.chatWindow='<li class="jsxc_windowItem">\n <div class="jsxc_window">\n <div class="jsxc_bar">\n <div class="jsxc_avatar"></div>\n <div class="jsxc_tools">\n <div class="jsxc_settings">\n <div class="jsxc_more"></div>\n <div class="jsxc_inner jsxc_menu">\n <ul>\n <li>\n <a class="jsxc_verification" href="#">\n <span data-i18n="Authentication"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_clear" href="#">\n <span data-i18n="clear_history"></span>\n </a>\n </li>\n <li>\n <a class="jsxc_sendFile" href="#">\n <span data-i18n="Send_file"></span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div class="jsxc_close">×</div>\n </div>\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n </div>\n <div class="jsxc_fade">\n <div class="jsxc_overlay">\n <div>\n <div class="jsxc_body" />\n <div class="jsxc_close" />\n </div>\n </div>\n <div class="jsxc_textarea" />\n <div class="jsxc_emoticons">\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_clear"></li>\n </ul>\n </div>\n </div>\n <div class="jsxc_transfer jsxc_otr jsxc_disabled" />\n <textarea class="jsxc_textinput" data-i18n="[placeholder]Message"></textarea>\n </div>\n </div>\n</li>\n',jsxc.gui.template.confirmDialog='<p data-var="msg"></p>\n\n<button class="jsxc_btn jsxc_btn-primary jsxc_confirm pull-right" data-i18n="Confirm"></button>\n<button class="jsxc_btn jsxc_btn-default jsxc_dismiss jsxc_close pull-right" data-i18n="Dismiss"></button>\n',
+jsxc.gui.template.contactDialog='<h3 data-i18n="Add_buddy"></h3>\n<p class=".jsxc_explanation" data-i18n="Type_in_the_full_username_"></p>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" list="jsxc_userlist" pattern="^[^\\x22&\'\\\\/:<>@\\s]+(@[.\\-_\\w]+)?" required="required" />\n </div>\n </div>\n <datalist id="jsxc_userlist"></datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_alias" data-i18n="Alias"></label>\n <div class="col-sm-8">\n <input type="text" name="alias" id="jsxc_alias" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" type="button" data-i18n="Close"></button>\n <button class="btn btn-primary" type="submit" data-i18n="Add"></button>\n </div>\n </div>\n</form>\n',jsxc.gui.template.fingerprintsDialog='<div>\n <p class="jsxc_maxWidth" data-i18n="A_fingerprint_"></p>\n <p>\n <strong data-i18n="Your_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase" data-var="my_priv_fingerprint"></span>\n </p>\n <p>\n <strong data-i18n="Buddy_fingerprint"></strong>\n <br /> <span class="jsxc_uppercase" data-var="bid_priv_fingerprint"></span>\n </p>\n</div>\n',jsxc.gui.template.incomingCall='<h3 data-i18n="Incoming_call"></h3>\n<p>\n <span data-i18n="Do_you_want_to_accept_the_call_from"></span> <span data-var="bid_name" />?\n</p>\n\n<button class="jsxc_btn jsxc_btn-primary jsxc_accept pull-right" data-i18n="Accept"></button>\n<button class="jsxc_btn jsxc_btn-default jsxc_reject pull-right" data-i18n="Reject"></button>\n',jsxc.gui.template.joinChat='<h3 data-i18n="Join_chat"></h3>\n<p class=".jsxc_explanation" data-i18n="muc_explanation"></p>\n<div class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_server" data-i18n="Server"></label>\n <div class="col-sm-8">\n <input type="text" name="server" id="jsxc_server" class="form-control" required="required" pattern="^[.-0-9a-zA-Z]+" />\n <p class="jsxc_inputinfo jsxc_server jsxc_hidden"></p>\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_room" data-i18n="Room"></label>\n <div class="col-sm-8">\n <input type="text" name="room" id="jsxc_room" class="form-control" autocomplete="off" list="jsxc_roomlist" required="required" pattern="^[^\\x22&\'\\/:<>@\\s]+" />\n <p class="jsxc_inputinfo jsxc_room" data-i18n="Rooms_are_loaded"></p>\n </div>\n </div>\n <datalist id="jsxc_roomlist">\n <p>\n <label for="jsxc_roomlist_select"></label>\n <select id="jsxc_roomlist_select">\n <option></option>\n <option>workaround</option>\n </select>\n </p>\n </datalist>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_nickname" data-i18n="Nickname"></label>\n <div class="col-sm-8">\n <input type="text" name="nickname" id="jsxc_nickname" class="form-control" />\n </div>\n </div>\n <div class="form-group jsxc_hidden">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="text" name="password" id="jsxc_password" class="form-control" />\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox">\n <label>\n <input id="jsxc_bookmark" type="checkbox"><span data-i18n="Bookmark"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group jsxc_bookmark">\n <div class="col-sm-offset-4 col-sm-8">\n <div class="checkbox disabled">\n <label>\n <input disabled="disabled" id="jsxc_autojoin" type="checkbox"><span data-i18n="Auto-join"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="jsxc_msg"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-8">\n <button class="btn btn-default jsxc_close" data-i18n="Close"></button>\n <button class="btn btn-primary jsxc_continue" data-i18n="Continue"></button>\n <button class="btn btn-success jsxc_join" data-i18n="Join"></button>\n </div>\n </div>\n</div>\n',jsxc.gui.template.loginBox='<h3 data-i18n="Login"></h3>\n<form class="form-horizontal">\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_username" data-i18n="Username"></label>\n <div class="col-sm-8">\n <input type="text" name="username" id="jsxc_username" class="form-control" required="required" data-var="my_node" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-4 control-label" for="jsxc_password" data-i18n="Password"></label>\n <div class="col-sm-8">\n <input type="password" name="password" required="required" class="form-control" id="jsxc_password" />\n </div>\n </div>\n <div class="jsxc_alert jsxc_alert-warning" data-i18n="Sorry_we_cant_authentikate_"></div>\n <div class="form-group">\n <div class="col-sm-offset-4 col-sm-9">\n <button type="reset" class="btn btn-default jsxc_close" name="clear" data-i18n="Cancel" />\n <button type="submit" class="btn btn-primary" name="commit" data-i18n="[data-jsxc-loading-text]Connecting...;Connect" />\n </div>\n </div>\n</form>\n',jsxc.gui.template.notification='<h3></h3>\n\n<p class="jsxc_msg"></p>\n\n<p class="jsxc_meta"></p>\n',jsxc.gui.template.pleaseAccept='<p data-i18n="Please_accept_"></p>\n',jsxc.gui.template.removeDialog='<h3 data-i18n="Remove_buddy"></h3>\n<p class="jsxc_maxWidth" data-i18n="[html]You_are_about_to_remove_"></p>\n\n<button class="btn btn-primary jsxc_remove pull-right" data-i18n="Remove"></button>\n<button class="btn btn-default jsxc_cancel jsxc_close pull-right" data-i18n="Cancel"></button>\n',jsxc.gui.template.roster='<div id="jsxc_roster">\n <ul id="jsxc_buddylist"></ul>\n <div class="jsxc_bottom jsxc_presence jsxc_rosteritem" data-bid="own">\n <div id="jsxc_avatar" class="jsxc_avatar" />\n <div id="jsxc_menu">\n <span></span>\n <div class="jsxc_inner">\n <ul>\n <li class="jsxc_settings jsxc_settingsicon" data-i18n="Settings"></li>\n <li class="jsxc_muteNotification" data-i18n="Mute"></li>\n <li class="jsxc_hideOffline" data-i18n="Hide_offline"></li>\n <li class="jsxc_addBuddy jsxc_contacticon" data-i18n="Add_buddy"></li>\n <li class="jsxc_onlineHelp jsxc_helpicon" data-i18n="Online_help"></li>\n <li class="jsxc_about" data-i18n="About"></li>\n </ul>\n </div>\n </div>\n <div id="jsxc_notice">\n <span></span>\n <div class="jsxc_inner">\n <ul></ul>\n </div>\n </div>\n <div id="jsxc_presence">\n <span data-i18n="Offline">Offline</span>\n <div class="jsxc_inner">\n <ul>\n <li data-pres="online" class="jsxc_online" data-i18n="Online"></li>\n <li data-pres="chat" class="jsxc_chat" data-i18n="Chatty"></li>\n <li data-pres="away" class="jsxc_away" data-i18n="Away"></li>\n <li data-pres="xa" class="jsxc_xa" data-i18n="Extended_away"></li>\n <li data-pres="dnd" class="jsxc_dnd" data-i18n="dnd"></li>\n <li data-pres="offline" class="jsxc_offline" data-i18n="Offline"></li>\n </ul>\n </div>\n </div>\n </div>\n <div id="jsxc_toggleRoster"></div>\n</div>\n',jsxc.gui.template.rosterBuddy='<li class="jsxc_rosteritem">\n <div class="jsxc_avatar"></div>\n <div class="jsxc_more" />\n <div class="jsxc_caption">\n <div class="jsxc_name" />\n <div class="jsxc_lastmsg">\n <span class="jsxc_unread" />\n <span class="jsxc_text" />\n </div>\n </div>\n <div class="jsxc_menu">\n <ul>\n <li><a class="jsxc_rename" href="#"><span class="jsxc_icon jsxc_editicon"></span><span data-i18n="rename_buddy"></span></a></li>\n <li><a class="jsxc_vcard" href=""><span class="jsxc_icon jsxc_infoicon"></span><span data-i18n="get_info"></span></a></li>\n <li><a class="jsxc_delete" href=""><span class="jsxc_icon jsxc_deleteicon"></span><span data-i18n="delete_buddy"></span></a></li>\n </ul>\n </div>\n</li>\n',jsxc.gui.template.selectionDialog='<h3></h3>\n<p></p>\n\n<button class="btn btn-primary pull-right" data-i18n="Confirm"></button>\n<button class="btn btn-default pull-right" data-i18n="Dismiss"></button>\n',jsxc.gui.template.settings='<form class="form-horizontal col-sm-6">\n <fieldset class="jsxc_fieldsetXmpp jsxc_fieldset">\n <h3 data-i18n="Login_options"></h3>\n <p data-i18n="setting-explanation-xmpp"></p>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-url" data-i18n="BOSH_url"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-url" class="form-control" readonly="readonly" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-username" data-i18n="Username"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-username" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-domain" data-i18n="Domain"></label>\n <div class="col-sm-6">\n <input type="text" id="xmpp-domain" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="xmpp-resource" data-i18n="Resource"></label>\n <div class="col-sm-6">\n <input class="form-control" type="text" id="xmpp-resource" class="form-control" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6">\n <fieldset class="jsxc_fieldsetPriority jsxc_fieldset">\n <h3 data-i18n="Priority"></h3>\n <p data-i18n="setting-explanation-priority"></p>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-online" data-i18n="Online"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-online" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-chat" data-i18n="Chatty"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-chat" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-away" data-i18n="Away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-away" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-xa" data-i18n="Extended_away"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-xa" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <label class="col-sm-6 control-label" for="priority-dnd" data-i18n="dnd"></label>\n <div class="col-sm-6">\n <input type="number" value="0" id="priority-dnd" class="form-control" min="-128" max="127" step="1" required="required" />\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-offset-6 col-sm-6">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6">\n <fieldset class="jsxc_fieldsetLoginForm jsxc_fieldset">\n <h3 data-i18n="On_login"></h3>\n <p data-i18n="setting-explanation-login"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="loginForm-enable"><span data-i18n="On_login"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6" data-onsubmit="xmpp.carbons.refresh">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Carbon_copy"></h3>\n <p data-i18n="setting-explanation-carbon"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="carbons-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n\n<form class="form-horizontal col-sm-6" data-onsubmit="xmpp.chatState.init">\n <fieldset class="jsxc_fieldsetCarbons jsxc_fieldset">\n <h3 data-i18n="Chat_state_notifications"></h3>\n <p data-i18n="setting-explanation-chat-state"></p>\n <div class="form-group">\n <div class="col-sm-12">\n <div class="checkbox">\n <label>\n <input type="checkbox" id="chatState-enable"><span data-i18n="Enable"></span>\n </label>\n </div>\n </div>\n </div>\n <div class="form-group">\n <div class="col-sm-12">\n <button class="btn btn-primary jsxc_continue" type="submit" data-i18n="Save"></button>\n </div>\n </div>\n </fieldset>\n</form>\n',jsxc.gui.template.vCard='<h3>\n <span data-i18n="Info_about"></span> <span data-var="bid_name"></span>\n</h3>\n<ul class="jsxc_vCard"></ul>\n<p>\n <img src="{{root}}/img/loading.gif" alt="wait" width="32px" height="32px" /> <span data-i18n="Please_wait"></span>...\n</p>\n',jsxc.gui.template.videoWindow='<div id="jsxc_webrtc">\n <div class="jsxc_chatarea">\n <ul></ul>\n </div>\n <div class="jsxc_videoContainer">\n <video class="jsxc_localvideo" autoplay></video>\n <video class="jsxc_remotevideo" autoplay></video>\n <div class="jsxc_status"></div>\n <div class="jsxc_noRemoteVideo">\n <div>\n <div></div>\n <p data-i18n="No_video_signal"></p>\n <div></div>\n </div>\n </div>\n <div class="jsxc_controlbar jsxc_visible">\n <div>\n <div class="jsxc_hangUp jsxc_videoControl" />\n <div class="jsxc_fullscreen jsxc_videoControl" />\n </div>\n </div>\n </div>\n <div class="jsxc_multi">\n <div class="jsxc_snapshotbar">\n <p>No pictures yet!</p>\n </div>\n <!--<div class="jsxc_chatarea">\n <ul></ul>\n </div>-->\n <div class="jsxc_infobar"></div>\n </div>\n</div>\n',jsxc.gui.template.waitAlert='<h3 data-var="msg"></h3>\n\n<div class="progress">\n <div class="progress-bar progress-bar-striped active" data-i18n="Please_wait">\n </div>\n</div>\n',jsxc.gui.template.windowList='<div id="jsxc_windowList">\n <ul></ul>\n</div>\n<div id="jsxc_windowListSB">\n <div class="jsxc_scrollLeft jsxc_disabled">&lt;</div>\n <div class="jsxc_scrollRight jsxc_disabled">&gt;</div>\n</div>\n'}(jQuery);
//# sourceMappingURL=jsxc.min.js.map \ No newline at end of file
diff --git a/build/js/jsxc/jsxc.min.js.map b/build/js/jsxc/jsxc.min.js.map
index 8486456..4a15e5e 100644
--- a/build/js/jsxc/jsxc.min.js.map
+++ b/build/js/jsxc/jsxc.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepaliveInterval","reconnect","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","HIDDEN","SHOWN","getFormattedTime","unixtime","msgDate","Date","parseInt","day","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","date","toLocaleDateString","time","toLocaleTimeString","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","loginForm","attachIfFound","ifFound","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","languages","length","substr","language","defaultLang","i18n","lng","fallbackLng","resStore","I18next","useLocalStorage","localStorageExpirationTime","otr","window","addEventListener","onStorage","document","on","registerLogout","isStorageAttachParameters","isOptionsAttachParameters","xmpp","rid","sid","jid","isForceLoginForm","isLoginForm","removeItem","displayRosterMinimized","setUserItem","gui","roster","noConnection","formFound","call","form","events","submit","submits","each","index","val","push","handler","off","prepareLogin","settings","enabled","enable","onlogin","triggered","login","password","submitLoginForm","onMaster","checkMaster","start","args","arguments","conn","connected","one","onRidChange","_proto","apply","this","logoutElement","logout","ev","stopPropagation","preventDefault","el_exists","pass","username","cb","onConnecting","showWaitAlert","t","loadSettings","s","_prepareLogin","loadedSettings","resource","domain","match","preJid","jidToBid","split","old","onSlave","removeClass","restoreRoster","restoreWindows","updateAvatar","trigger","setItem","startKeepAlive","setTimeout","keepAlive","masterActions","authenticated","noti","notification","hasSupport","hasPermission","prepareRequest","createDSA","setInterval","timeout","role","next","keepBusyAlive","clearTimeout","clearInterval","ink","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","unescapeNode","buddies","add","loaded","empty","windows","win","minimize","hide","show","setText","text","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","isExtraSmallDevice","width","url","attached","disconnected","onConnfail","onAuthFail","addNamespace","Connection","xmlInput","xmlOutput","nextValidRid","callback","status","condition","Object","getOwnPropertyNames","Status","CONNECTING","CONNECTED","ATTACHED","DISCONNECTED","CONNFAIL","AUTHFAIL","caps","node","attach","_addSysHandler","stanza","from","c","querySelector","ver","getAttribute","_jidNodeIndex","parse","localStorage","_jidVerIndex","CAPS","connect","complete","removeUserItem","create","numOtr","keys","objects","disReady","flush","disconnect","msgstate","OTR","MSGSTATE_ENCRYPTED","endOtr","backup","pause","initNewConnection","saveSessionParameter","onConnected","dialog","close","resume","addHandler","onRosterChanged","onMessage","onReceived","onPresence","conditionalEnable","hasFeatureByJid","carbons","onCaps","_knownCapabilities","_requestCapabilities","sendPres","remove","iq","$iq","type","xmlns","sendIQ","onRoster","nomJid","getResourceFromJid","removeUserElement","disco","addIdentity","addFeature","DISCO_INFO","RECEIPTS","pres","$pres","generateCapsAttrs","up","presState","priority","send","location","attr","showAuthFail","name","sub","saveBuddy","res","rnd","bookmarks","load","purge","bl","indexOf","temp","update","reorder","notice","notices","noticeKey","presence","ptype","r","xVCard","prop","resFriendReq","addBuddy","approve","maxVal","hasOwnProperty","notify","title","source","photo","avatar","message","carbon","forwarded","body","mid","delay","stamp","direction","Message","OUT","IN","postMessage","encrypted","request","chat","saveMessage","updateUserItem","$msg","id","receiveMsg","alias","removeBuddy","subscription","received","receivedId","sendMessage","uid","sendMsg","_sendMessage","isBar","xmlMsg","loadVcard","error_cb","vcard","result","state","getCapabilitiesByJid","jidVerIndex","knownCapabilities","feature","isArray","makeArray","check","hasFeature","j","capabilities","disable","refresh","_uid","_received","prototype","save","history","delete","pop","Image","attachment","sHeight","sWidth","sx","sy","dHeight","dWidth","canvas","height","ctx","getContext","img","src","drawImage","thumbnail","toDataURL","size","maxStorableSize","persistent","unshift","getDOM","addClass","isReceived","grep","el","SYS","emotions","favicon","regShortNames","emoticonList","core",":klaus:",":jabber:",":xmpp:",":jsxc:",":owncloud:","emojione","emojioneList","queryActions","params","open","showRemoveDialog","subscribe","showContactDialog","showVcard","join","muc","showJoinChat","append","template","resize","updateWindowListSB","scrollWindowListBy","originalEvent","wheelDelta","tooltip","fo","Favico","animation","bgColor","textColor","badge","reg","windowTemplate","buddyTemplate","content","ri","we","ue","spot","updatePresence","trust","info","aid","setAvatar","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","handler_cb","vCard","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","hasClass","toggleClass","mouseleave","mouseenter","showLoginBox","alert","showFingerprints","showVerification","siblings","blur","div","sec","quest","keyup","sendSmpReq","showApproveDialog","noClose","getUsers","list","displayname","option","appendTo","getDomainFromJid","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","jquery","screen","identities","cap","client","identity","category","printProp","depth","item","children","tagName","before","failedToLoad","img_el","showSettings","overwrite","parent","checked","success","switchClass","saveSettinsPermanent","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","sender","showSelectionDialog","header","primary","primaryLabel","optionLabel","opt","label","changePresence","external","muteSound","unmuteSound","unreadMsg","winData","count","unread","total","_unreadMsg","readMsg","detectUriScheme","container","action","element","href","pairs","substring","decodeURIComponent","detectEmail","trim","prev","seed","hue","abs","saturation","lightness","background-color","color","font-weight","text-align","line-height","font-size","toUpperCase","shortnameToImage","shortname","filename","root","ready","rosterAppend","hideOffline","mute","onlineHelp","toggle","slimScroll","distance","opacity","rosterState","startMinimized","bud","insert","rename","expandClick","scrollTo","li","listElements","thisStatus","detach","_close","input","replaceWith","keypress","which","_rename","newname","nickname","autojoin","duration","wl","parseFloat","link","o","magnificPopup","items","modal","callbacks","beforeClose","afterClose","btn","toggleTransfer","clear","sendFile","getSelection","resizable","handles","minHeight","minWidth","event","ui","stop","inArray","ins","restoreChat","outer","outer_height_diff","outerHeight","fullsize","viewport","getSize","highlight","parents","_show","innerWidth","outerWidth","position","left","scrollDown","_hide","is","effect","scrollHeight","html_msg","MSGSTATE_FINISHED","_postMessage","restore","protocol","msgDiv","msgTsDiv","first","avatarDiv","prependTo","map","receivedMessage","updateProgress","sent","span","round","showOverlay","allowClose","hideOverlay","selectResource","smpRequest","question","p","abort","sm","verify","onSmpQuestion","fileCapableRes","webrtc","getCapableRes","reqFileFeatures","resources","change","file","target","files","FileReader","reader","onload","readAsDataURL","sess","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","ROOMCONFIG","INSTANT","server","initMenu","onPresenceError","onGroupchatMessage","onErrorMessage","roomNames","discovered","mucFeature","MUC","mucIdentity","error_handler","room","roomIndex","splice","rooms","listRooms","rjid","rnode","rname","discoReceived","roomName","subject","bookmark","table","exists","tr","keydown","showRoomConfiguration","configure","x","Form","fromXML","f","_showRoomConfiguration","config","helper","formToHTML","cancel","formGroup","fromHTML","saveConfiguration","cancelConfigure","bookmarked","leave","tab","execMaster","own","onExited","roomdata","destroy","MUC_OWNER","tree","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","innerHeight","slimscroll","member","insertMember","affiliation","xdata","openWindow","codes","code","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","onStatus","110","170","171","172","173","201","createInstantRoom","301","postReason","307","321","322","332","actor","reason","memberdata","ownBid","m","isNaN","onAddRoster","bo","showDialog","instructions","fields","fieldToHtml","field","k","txt","line","_ref2","toHTML","values","_results","desc","required","inner","_num","saved","description","nid","now","has","audio","soundFile","playSound","stopSound","force","loop","icon","popup","Notification","popupDuration","webkitNotifications","createNotification","permission","checkPermission","func","Audio","play","ERROR_START_AKE","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","online","away","xa","dnd","numberOfMsg","muteNotification","turnCredentialsPath","RTCPeerConfig","ttl","withCredentials","iceServers","urls","w","h","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","msg_state","STATUS_END_OTR","STATUS_SMP_HANDLE","meta","smpSecret","goEncrypt","goPlain","sendQueryMsg","savekey","packPublic","ake","otr_version","DSA","parsePublic","_smInit","worker","Worker","dsa","DSAready","onmessage","e","parsePrivate","imports","BigInt","getSeed","_createDSA","packPrivate","PREFIX","SEP","getPrefix","uk","trace","jQuery","prefix","variable","Number","removeElement","re","newValue","oldValue","n","transferReq","cmd","MASTER","SLAVE","Array","execSlave","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","jingle","manager","onMediaReady","onMediaFailure","proxy","onIncoming","onTerminated","onCallRinging","onReceivedFile","metadata","onRemoteStreamAdded","onRemoteStreamRemoved","peerConfig","getTurnCrendentials","setICEServers","onDisconnected","ajax","async","xhrFields","credential","dataType","features","available","updateIcon","capableRes","targetRes","startCall","setStatus","margin-left","display","animate","stream","showVideoWindow","audioTracks","getAudioTracks","videoTracks","getVideoTracks","session","constructor","onIncomingFileTransfer","onIncomingCall","peerID","buddylist","accept","receiver","acceptCall","mediaready.jingle","addStream","mediafailure.jingle","decline","reqUserMedia","onIceConnectionStateChanged","ring","onCallTerminated","tracks","getTracks","forEach","track","closeVideoWindow","isVideoDevice","isAudioDevice","attachMediaStream","end","um","finish.mediaready.jsxc","initiate","hangUp","isEmptyObject","peers","terminate","MediaStreamTrack","getSources","sourceInfo","availableDevices","kind","filter","getUserMedia","constraints","video","snapshot","createFileTransferSession","connectionState","ext","File","muted","volume","rv","lv","draggable","containment","w_dialog","w_remote","scale","new_h","new_w","vc","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","remote","PUBSUB","loadFromRemote","loadFromLocal","conference","parseErr","reasons","createBookmarksNode","soft","deleteFromRemote","deleteFromLocal","nick","addToRemote","addToLocal"],"mappings":"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","file":"jsxc.min.js"} \ No newline at end of file
+{"version":3,"sources":["jsxc.js"],"names":["jsxc","RTC","RTCPeerconnection","$","version","master","role_allocation","to","toBusy","toNotification","toNotificationDelay","keepaliveInterval","reconnect","restoreCompleted","triggeredFromBox","triggeredFromElement","triggeredFromLogout","ls","storageNotConform","toSNC","bid","currentState","currentUIState","CONST","NOTIFICATION_DEFAULT","NOTIFICATION_GRANTED","NOTIFICATION_DENIED","STATUS","SOUNDS","MSG","CALL","NOTICE","REGEX","JID","RegExp","URL","NS","CARBONS","FORWARD","HIDDEN","SHOWN","STATE","INITIATING","PREVCONFOUND","SUSPEND","TRYTOINTERCEPT","INTERCEPTED","ESTABLISHING","READY","UISTATE","getFormattedTime","unixtime","msgDate","Date","parseInt","day","getDate","slice","month","getMonth","year","getFullYear","hours","getHours","minutes","getMinutes","dateNow","date","toLocaleDateString","time","toLocaleTimeString","setHours","getTime","debug","msg","data","level","storage","getItem","console","log","d","prepend","clone","html","err","JSON","stringify","err2","warn","error","init","options","changeState","loginForm","attachIfFound","ifFound","extend","get","key","local","getUserItem","set","value","updateItem","lang","autoLang","navigator","languages","length","substr","language","defaultLang","window","i18next","lng","fallbackLng","resources","I18next","interpolation","prefix","suffix","jqueryI18next","tName","i18nName","handleName","otr","addEventListener","onStorage","document","on","registerLogout","isStorageAttachParameters","isOptionsAttachParameters","xmpp","rid","sid","jid","isForceLoginForm","isLoginForm","removeItem","displayRosterMinimized","setUserItem","gui","roster","noConnection","formFound","call","form","events","submit","submits","each","index","val","push","handler","off","ev","preventDefault","prepareLogin","settings","enabled","enable","onlogin","triggered","login","password","submitLoginForm","onMaster","checkMaster","start","args","arguments","conn","connected","one","onRidChange","_proto","apply","this","logoutElement","logout","stopPropagation","el_exists","pass","username","cb","onConnecting","showWaitAlert","t","loadSettings","s","_prepareLogin","loadedSettings","resource","domain","match","preJid","jidToBid","split","old","onSlave","removeClass","updateAvatar","restore","setItem","startKeepAlive","setTimeout","keepAlive","masterActions","authenticated","noti","notification","hasSupport","hasPermission","prepareRequest","createDSA","setInterval","timeout","role","next","keepBusyAlive","clearTimeout","clearInterval","ink","busyTimeout","random","max","Math","floor","selector","jidToCid","cid","Strophe","getBareJidFromJid","replace","toLowerCase","unescapeNode","restoreRoster","buddies","add","loaded","trigger","empty","restoreWindows","windows","win","minimize","hide","show","setText","text","find","click","escapeHTML","removeHTML","switchEvents","obj","ns","toString","self","isHidden","hidden","webkitHidden","mozHidden","msHidden","hasFocus","focus","exec","fnName","fnParams","i","fnList","fn","hashStr","str","hash","charCodeAt","isExtraSmallDevice","width","state","Object","keys","changeUIState","url","attached","disconnected","onConnfail","onAuthFail","addNamespace","Connection","xmlInput","xmlOutput","nextValidRid","callback","status","condition","getOwnPropertyNames","Status","CONNECTING","CONNECTED","ATTACHED","DISCONNECTED","CONNFAIL","AUTHFAIL","caps","node","attach","_addSysHandler","stanza","from","c","querySelector","ver","getAttribute","_jidNodeIndex","parse","localStorage","_jidVerIndex","CAPS","connect","complete","removeUserItem","create","numOtr","objects","disReady","flush","disconnect","msgstate","OTR","MSGSTATE_ENCRYPTED","endOtr","backup","pause","initNewConnection","saveSessionParameter","onConnected","dialog","close","resume","addHandler","onRosterChanged","onChatMessage","onHeadlineMessage","onReceived","onPresence","conditionalEnable","hasFeatureByJid","carbons","onCaps","_knownCapabilities","_requestCapabilities","sendPres","remove","iq","$iq","type","xmlns","sendIQ","onRoster","nomJid","getResourceFromJid","removeUserElement","disco","addIdentity","addFeature","DISCO_INFO","RECEIPTS","pres","$pres","generateCapsAttrs","up","presState","priority","send","ready","location","attr","showAuthFail","name","sub","saveBuddy","res","rnd","bookmarks","load","purge","bl","indexOf","temp","update","reorder","notice","notices","noticeKey","presence","ptype","r","xVCard","prop","resFriendReq","addBuddy","approve","description","maxVal","hasOwnProperty","notify","title","source","photo","avatar","message","carbon","forwarded","body","htmlBody","XHTML","mid","delay","stamp","direction","Message","OUT","IN","postMessage","encrypted","request","chat","saveMessage","updateUserItem","$msg","id","attachment","httpUploadElement","size","thumbnail","undefined","receiveMsg","getDomainFromJid","subject","alias","removeBuddy","subscription","received","receivedId","sendMessage","htmlMsg","mucRoomNames","muc","roomNames","isMucBid","sendMsg","_sendMessage","isBar","xmlMsg","_uid","HTML","XHTML_IM","xmlElement","innerHTML","appendChild","chatstates","chatState","isDisabled","CHATSTATES","loadVcard","error_cb","vcard","result","getCapabilitiesByJid","jidVerIndex","knownCapabilities","feature","isArray","makeArray","check","hasFeature","j","capabilities","disable","refresh","fileTransfer","formatByte","byte","round","startGuiAction","httpUpload","showFileSelection","selectResource","success_cb","fileCapableRes","webrtc","getCapableRes","reqFileFeatures","hideOverlay","addClass","showOverlay","change","file","target","files","fileSelected","transportMethod","maxSize","fileSize","SYS","append","FileReader","img","appendTo","reader","onload","readAsDataURL","sess","sendFile","sender","sent","updateProgress","updateIcons","emotions","favicon","regShortNames","emoticonList","core",":klaus:",":jabber:",":xmpp:",":jsxc:",":owncloud:",":nextcloud:","emojione","emojioneList","queryActions","params","open","showRemoveDialog","subscribe","showContactDialog","showVcard","join","showJoinChat","template","resize","updateWindowListSB","scrollWindowListBy","originalEvent","wheelDelta","tooltip","fo","Favico","animation","bgColor","textColor","badge","reg","windowTemplate","buddyTemplate","content","ri","we","ue","spot","updatePresence","trust","info","el","aid","setAvatar","src","defaultAvatar","avatarPlaceholder","removeAttr","css","background-image","text-indent","avatarSrc","handler_cb","vCard","offset","scrollWidth","right","padding","getWindow","toggleList","disableSelection","ul","slideUp","hasClass","toggleClass","mouseleave","mouseenter","showLoginBox","alert","showFingerprints","showVerification","siblings","blur","div","sec","quest","keyup","sendSmpReq","showApproveDialog","noClose","getUsers","list","uid","displayname","option","showAlert","showConfirmDialog","confirm","dismiss","showAboutDialog","showDebugLog","userInfo","jquery","screen","height","identities","cap","client","identity","category","printProp","depth","item","children","tagName","before","failedToLoad","img_el","showSettings","overwrite","parent","checked","success","switchClass","saveSettinsPermanent","showRequestNotification","notificationready.jsxc","notificationfailure.jsxc","requestPermission","showUnknownSender","confirmationText","showSelectionDialog","header","primary","primaryLabel","optionLabel","opt","label","showNotification","changePresence","external","muteSound","unmuteSound","unreadMsg","winData","count","unread","total","_unreadMsg","readMsg","detectUriScheme","container","action","element","href","pairs","substring","decodeURIComponent","detectEmail","trim","prev","seed","hue","abs","saturation","lightness","background-color","color","font-weight","text-align","line-height","font-size","toUpperCase","shortnameToImage","shortname","filename","root","fname","rosterAppend","hideOffline","mute","onlineHelp","toggle","slimScroll","distance","opacity","rosterState","startMinimized","bud","insert","rename","expandClick","scrollTo","history","li","listElements","thisStatus","detach","_close","input","replaceWith","keypress","which","_rename","newname","nickname","autojoin","duration","wl","parseFloat","link","o","magnificPopup","items","modal","callbacks","beforeClose","afterClose","btn","resizeTextarea","outerHeight","scrollHeight","toggleTransfer","clear","textinputBlurTimeout","startComposing","shiftKey","endComposing","getSelection","resizable","handles","minHeight","minWidth","event","ui","stop","inArray","ins","restoreChat","outer","outer_height_diff","fullsize","viewport","getSize","highlight","parents","_show","innerWidth","outerWidth","position","left","scrollDown","_hide","is","effect","MSGSTATE_FINISHED","save","_postMessage","protocol","bidData","msgDiv","msgTsDiv","isReceived","persistent","first","getDOM","avatarDiv","prependTo","pop","map","receivedMessage","span","allowClose","smpRequest","question","p","abort","sm","verify","onSmpQuestion","ph","my_priv_fingerprint","my_jid","my_node","getNodeFromJid","app_name","bid_priv_fingerprint","fingerprint","bid_jid","bid_name","ret","localize","_received","PLAIN","prototype","delete","Image","sHeight","sWidth","sx","sy","dHeight","dWidth","canvas","ctx","getContext","drawImage","toDataURL","maxStorableSize","unshift","grep","AFFILIATION","ADMIN","MEMBER","OUTCAST","OWNER","NONE","ROLE","MODERATOR","PARTICIPANT","VISITOR","ROOMSTATE","INIT","ENTERED","EXITED","AWAIT_DESTRUCTION","DESTROYED","ROOMCONFIG","INSTANT","server","initMenu","onPresenceError","onGroupchatMessage","onErrorMessage","discovered","mucFeature","MUC","mucIdentity","loadRoomList","listRooms","rjid","rnode","rname","errTextMsg","serverInputTimeout","error_handler","room","roomIndex","splice","rooms","discoReceived","roomName","bookmark","table","exists","tr","keydown","showRoomConfiguration","configure","x","Form","fromXML","f","_showRoomConfiguration","config","helper","formToHTML","cancel","formGroup","fromHTML","saveConfiguration","cancelConfigure","bookmarked","leave","tab","execMaster","own","onExited","roomdata","destroy","MUC_OWNER","tree","emptyMembers","initWindow","ownNickname","mlIcon","after","ml","scrollMemberListBy","toggleMl","slimOptions","slimHeight","maxHeight","innerHeight","slimscroll","member","insertMember","affiliation","xdata","openWindow","codes","code","removeMember","newNickname","oldNickname","escapeInterpolation","roomJid","onStatus","110","170","171","172","173","201","createInstantRoom","301","postReason","307","321","322","332","actor","reason","memberdata","ownBid","m","isNaN","onAddRoster","bo","showDialog","instructions","fields","fieldToHtml","field","k","txt","line","_ref2","toHTML","values","_results","desc","required","inner","_num","saved","nid","now","closeAll","removeAll","has","audio","soundFile","playSound","stopSound","force","loop","icon","popup","Notification","popupDuration","webkitNotifications","createNotification","permission","checkPermission","func","Audio","play","ERROR_START_AKE","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","online","away","xa","dnd","numberOfMsg","muteNotification","turnCredentialsPath","RTCPeerConfig","ttl","withCredentials","iceServers","urls","w","h","screenMediaExtension","firefox","chrome","dsaFallback","receiveMessage","MSGSTATE_PLAINTEXT","priv","ol","STATUS_SEND_QUERY","STATUS_AKE_SUCCESS","their_priv_pk","msg_state","STATUS_END_OTR","STATUS_SMP_HANDLE","meta","smpSecret","goEncrypt","goPlain","sendQueryMsg","savekey","packPublic","ake","otr_version","DSA","parsePublic","_smInit","worker","Worker","dsa","DSAready","onmessage","e","parsePrivate","imports","BigInt","getSeed","_createDSA","packPrivate","PREFIX","SEP","getPrefix","uk","jQuery","variable","Number","removeElement","re","newValue","oldValue","n","transferReq","cmd","MASTER","SLAVE","Array","execSlave","localStream","remoteStream","last_caller","AUTO_ACCEPT","reqVideoFeatures","chatJids","jingle","manager","onMessage","onMediaFailure","proxy","onIncoming","onTerminated","onCallRinging","onReceivedFile","metadata","onRemoteStreamAdded","onRemoteStreamRemoved","peerConfig","getTurnCrendentials","setICEServers","onDisconnected","ajax","async","xhrFields","credential","dataType","features","available","browser","webrtcDetectedBrowser","a","updateIcon","capableRes","targetRes","startScreenSharing","startCall","setStatus","margin-left","display","animate","session","constructor","onIncomingFileTransfer","reqMedia","pc","remoteDescription","contents","senders","onIncomingCall","onIncomingStream","acceptIncomingStream","showVideoWindow","peerID","accept","onIceConnectionStateChanged","postScreenMessage","ring","decline","buddylist","receiver","postCallMessage","acceptIncomingCall","mediaready.jingle","stream","addStream","mediafailure.jingle","reqUserMedia","onCallTerminated","getTracks","tracks","forEach","track","closeVideoWindow","isVideoDevice","getVideoTracks","isAudioDevice","getAudioTracks","attachMediaStream","end","um","initiateOutgoingCall","initiate","hangUp","isEmptyObject","peers","terminate","initiateScreenSharing","showMinimizedVideoWindow","constraints","browserVersion","webrtcDetectedVersion","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","offerToReceiveAudio","offerToReceiveVideo","onSessionAccepted","filterUserMedia","devices","availableDevices","device","kind","filter","getUserMedia","getScreenMedia","mediaDevices","enumerateDevices","then","catch","MediaStreamTrack","getSources","video","screenMediaCallback","screenMediaAvailable","sessionStorage","getScreenMediaJSExtensionId","snapshot","createFileTransferSession","connectionState","ext","File","videoContainer","draggable","containment","videoElement","muted","volume","rv","lv","w_dialog","w_remote","scale","new_h","new_w","vc","support","fullscreen","KEYCODE_ENTER","KEYCODE_ESC","remote","PUBSUB","loadFromRemote","loadFromLocal","conference","parseErr","reasons","createBookmarksNode","soft","deleteFromRemote","deleteFromLocal","nick","addToRemote","addToLocal","toComposingNotificationDelay","onComposing","onPaused","onActive","user","usersComposing","textarea","composingNotif","_genComposingMsg","durationValue","sendComposing","pauseComposing","sendPaused","HTTPUPLOAD","fileTransferOptions","discoverUploadService","httpUploadFeature","httpUploadMaxSize","requestSlot","put","uploadFile","contentType","processData","xhr","ajaxSettings","upload","onprogress","lengthComputable","successfulRequestSlotCB","failedRequestSlotCB","slot"],"mappings":";;;;;;;;;;;;AAeA,GAAIA,MAAO,KAAMC,IAAM,KAAMC,kBAAoB,MAEhD,SAASC,GACP,YAOHH,OAEGI,QAAS,aAGTC,QAAQ,EAGRC,iBAAiB,EAGjBC,MAGAC,OAAQ,KAGRC,eAAgB,KAGhBC,oBAAqB,IAGrBC,kBAAmB,KAGnBC,WAAW,EAGXC,kBAAkB,EAGlBC,kBAAkB,EAGlBC,sBAAsB,EAGtBC,qBAAqB,EAGrBC,MAMAC,kBAAmB,KAGnBC,MAAO,KAGPC,IAAK,KAGLC,aAAc,KAGdC,eAAgB,KAGhBC,OACGC,qBAAsB,UACtBC,qBAAsB,UACtBC,oBAAqB,SACrBC,QAAS,UAAW,MAAO,KAAM,OAAQ,OAAQ,UACjDC,QACGC,IAAK,sBACLC,KAAM,oBACNC,OAAQ,aAEXC,OACGC,IAAK,GAAIC,QAAO,qCAAsC,MACtDC,IAAK,GAAID,QAAO,oCAEnBE,IACGC,QAAS,qBACTC,QAAS,sBAEZC,OAAQ,SACRC,MAAO,QACPC,OACGC,WAAY,EACZC,aAAc,EACdC,QAAS,EACTC,eAAgB,EAChBC,YAAa,EACbC,aAAc,EACdC,MAAO,GAEVC,SACGP,WAAY,EACZM,MAAO,IAWbE,iBAAkB,SAASC,UACxB,GAAIC,SAAU,GAAIC,MAAKC,SAASH,WAC5BI,KAAO,IAAMH,QAAQI,WAAWC,OAAM,GACtCC,OAAS,KAAON,QAAQO,WAAa,IAAIF,OAAM,GAC/CG,KAAOR,QAAQS,cACfC,OAAS,IAAMV,QAAQW,YAAYN,OAAM,GACzCO,SAAW,IAAMZ,QAAQa,cAAcR,OAAM,GAC7CS,QAAU,GAAIb,MAEdc,KAA8C,kBAA/Bf,SAAQgB,mBAAqChB,QAAQgB,qBAAuBb,IAAM,IAAMG,MAAQ,IAAME,KACrHS,KAA8C,kBAA/BjB,SAAQkB,mBAAqClB,QAAQkB,qBAAuBR,MAAQ,IAAME,OAM7G,OAHAE,SAAQK,SAAS,EAAG,EAAG,EAAG,GAC1BnB,QAAQmB,SAAS,EAAG,EAAG,EAAG,GAEtBL,QAAQM,YAAcpB,QAAQoB,UACxBL,KAAO,IAAME,KAEhBA,MAWVI,MAAO,SAASC,IAAKC,KAAMC,OAKxB,GAJIA,QACDF,IAAM,IAAME,MAAQ,KAAOF,KAG1BC,KAAM,CACH3E,KAAK6E,QAAQC,QAAQ,YAAa,GACnCC,QAAQC,IAAIN,IAAKC,KAIpB,IAAIM,EACJ,KAEGA,EAAI9E,EAAE,UAAU+E,QAAQ/E,EAAEwE,MAAMQ,SAASC,OAC1C,MAAOC,KACN,IACGJ,EAAIK,KAAKC,UAAUZ,MACpB,MAAOa,MACNP,EAAI,kBAIVjF,KAAKgF,IAAMhF,KAAKgF,IAAM,KAAON,IAAM,KAAOO,EAAI,SAE9CF,SAAQC,IAAIN,KACZ1E,KAAKgF,IAAMhF,KAAKgF,IAAM,KAAON,IAAM,MAWzCe,KAAM,SAASf,IAAKC,MACjB3E,KAAKyE,MAAMC,IAAKC,KAAM,SAUzBe,MAAO,SAAShB,IAAKC,MAClB3E,KAAKyE,MAAMC,IAAKC,KAAM,UAIzBK,IAAK,GAkBLW,KAAM,SAASC,SAcZ,GAbA5F,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMC,YAE9BkD,SAAWA,QAAQE,WAAwD,iBAApCF,SAAQE,UAAUC,gBAAgCH,QAAQE,UAAUE,UAE5GJ,QAAQE,UAAUE,QAAWJ,QAAQE,UAAuB,cAAI,SAAW,SAG1EF,SAEDzF,EAAE8F,QAAO,EAAMjG,KAAK4F,QAASA,SAIH,mBAAnB,cAEP,WADA5F,MAAKyF,KAAK,wCAUbzF,MAAK4F,QAAQM,IAAM,SAASC,KACzB,GAAInG,KAAKoB,IAAK,CACX,GAAIgF,OAAQpG,KAAK6E,QAAQwB,YAAY,cAErC,OAA8B,mBAAfD,OAAMD,KAAwBC,MAAMD,KAAOnG,KAAK4F,QAAQO,KAG1E,MAAOnG,MAAK4F,QAAQO,MASvBnG,KAAK4F,QAAQU,IAAM,SAASH,IAAKI,OAC9BvG,KAAK6E,QAAQ2B,WAAW,UAAWL,IAAKI,OAAO,IAGlDvG,KAAKkB,kBAAoBlB,KAAK6E,QAAQC,QAAQ,qBACf,OAA3B9E,KAAKkB,oBACNlB,KAAKkB,kBAAoB,EAI5B,IAAIuF,KAEDA,MADkC,OAAjCzG,KAAK6E,QAAQC,QAAQ,QACf9E,KAAK6E,QAAQC,QAAQ,QACpB9E,KAAK4F,QAAQc,UAAYC,UAAUC,WAAaD,UAAUC,UAAUC,OAAS,EAC9EF,UAAUC,UAAU,GAAGE,OAAO,EAAG,GAChC9G,KAAK4F,QAAQc,UAAYC,UAAUI,SACpCJ,UAAUI,SAASD,OAAO,EAAG,GAE7B9G,KAAK4F,QAAQoB,YAIvBC,OAAOC,QAAQvB,MACZwB,IAAKV,KACLW,YAAa,KACbC,UAAWC,QACX7C,MAAOzE,KAAK6E,QAAQC,QAAQ,YAAa,EACzCyC,eACGC,OAAQ,KACRC,OAAQ,OAEX,WACAR,OAAOS,cAAc/B,KAAKsB,OAAOC,QAAS/G,GACvCwH,MAAO,IACPC,SAAU,UACVC,WAAY,eAId7H,KAAK6E,QAAQC,QAAQ,YAAa,IACnC9E,KAAK4F,QAAQkC,IAAIrD,OAAQ,GAI5BwC,OAAOc,iBAAiB,UAAW/H,KAAK6E,QAAQmD,WAAW,GAE3D7H,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAKmI,eAErC,IAAIC,2BAA4BpI,KAAK6E,QAAQC,QAAQ,QAAU9E,KAAK6E,QAAQC,QAAQ,QAAU9E,KAAK6E,QAAQC,QAAQ,OAC/GuD,0BAA4BrI,KAAK4F,QAAQ0C,KAAKC,KAAOvI,KAAK4F,QAAQ0C,KAAKE,KAAOxI,KAAK4F,QAAQ0C,KAAKG,IAChGC,iBAAmB1I,KAAK4F,QAAQE,WAAgD,UAAnC9F,KAAK4F,QAAQE,UAAUE,SAAuBhG,KAAK2I,aAGpG,KAAMP,4BAA8BC,2BAA8BK,iBAAkB,CAOjF,GAJA1I,KAAK6E,QAAQ+D,WAAW,OACxB5I,KAAK6E,QAAQ+D,WAAW,QAGnB5I,KAAK2I,cAUP,MATA3I,MAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMG,cAE9B5C,KAAK4F,QAAQiD,2BAEd7I,KAAK6E,QAAQiE,YAAY,SAAU,UACnC9I,KAAK+I,IAAIC,OAAOrD,OAChB3F,KAAK+I,IAAIC,OAAOC,gBAMtBjJ,MAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMI,gBAEI,kBAA3B7C,MAAK4F,QAAQsD,WACrBlJ,KAAK4F,QAAQsD,UAAUC,MAI1B,IAAIC,MAAOpJ,KAAK4F,QAAQE,UAAUsD,KAAOjJ,EAAEH,KAAK4F,QAAQE,UAAUsD,MAC9DC,OAASD,KAAKzE,KAAK,YACpB2E,WAECC,UAIJpJ,GAAEqJ,KAAKH,OAAOC,OAAQ,SAASG,MAAOC,KACnCH,QAAQI,KAAKD,IAAIE,WAGpBR,KAAKzE,KAAK,UAAW4E,SACrBH,KAAKS,IAAI,UAGTT,KAAKE,OAAO,SAASQ,IAoBlB,MAnBAA,IAAGC,iBAEH/J,KAAKgK,aAAa,SAASC,UACxB,GAAIA,YAAa,EAAO,CAErB,GAAIC,SAAWD,SAASnE,WAAamE,SAASnE,UAAUqE,QAAYF,SAAS3B,MAAQ2B,SAAS3B,KAAK8B,OACnGF,SAAsB,SAAZA,SAAsBA,WAAY,EAExCA,UACDlK,KAAK4F,QAAQE,UAAUuE,WAAY,EAEnCrK,KAAKsI,KAAKgC,MAAMtK,KAAK4F,QAAQ0C,KAAKG,IAAKzI,KAAK4F,QAAQ0C,KAAKiC,eAG5DvK,MAAKwK,qBAKJ,IAGVxK,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMK,mBAEzB9C,KAAK2I,eAAkB3I,KAAK4F,QAAQE,WAAgD,WAAnC9F,KAAK4F,QAAQE,UAAUE,WAGjFhG,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAME,cAEW,mBAAlC3C,MAAK6E,QAAQC,QAAQ,SAC7B9E,KAAKyK,WAELzK,KAAK0K,gBA0BdC,MAAO,WACJ,GAAIC,MAAOC,SAEX,OAAI7K,MAAKM,kBAAoBN,KAAKK,QAC/BL,KAAKyE,MAAM,iCAEJ,GAGNzE,KAAKsI,KAAKwC,MAAQ9K,KAAKsI,KAAKyC,WAC7B/K,KAAKyE,MAAM,6BAEJ,IAGU,IAAhBmG,KAAK/D,QACN1G,EAAE8H,UAAU+C,IAAI,gBAAiB,WAE9BhL,KAAKsI,KAAK2C,YAAYjL,KAAKsI,KAAKwC,KAAKI,OAAO3C,KAE5CvI,KAAKyK,iBAIXzK,MAAK0K,YAAY,WACd1K,KAAKsI,KAAKgC,MAAMa,MAAMC,KAAMR,UAIlCzC,eAAgB,WAEb,GAAmC,OAA/BnI,KAAK4F,QAAQyF,eAA0BlL,EAAEH,KAAK4F,QAAQyF,eAAexE,OAAS,EAAG,CAClF,GAAIyE,QAAS,SAASxB,IACnBA,GAAGyB,kBACHzB,GAAGC,iBAEH/J,KAAK4F,QAAQyF,cAAgBlL,EAAEiL,MAC/BpL,KAAKgB,qBAAsB,EAE3BhB,KAAKsI,KAAKgD,SAGbtL,MAAK4F,QAAQyF,cAAgBlL,EAAEH,KAAK4F,QAAQyF,eAE5CrL,KAAK4F,QAAQyF,cAAcxB,IAAI,QAAS,KAAMyB,QAAQN,IAAI,QAASM,UAUzE3C,YAAa,WACV,MAAO3I,MAAK4F,QAAQE,UAAUsD,MAAQpJ,KAAKwL,UAAUxL,KAAK4F,QAAQE,UAAUsD,OAASpJ,KAAKwL,UAAUxL,KAAK4F,QAAQE,UAAU2C,MAAQzI,KAAKwL,UAAUxL,KAAK4F,QAAQE,UAAU2F,OAW5KzB,aAAc,SAAS0B,SAAUnB,SAAUoB,IAChB,kBAAbD,YACRC,GAAKD,SACLA,SAAW,MAEdA,SAAWA,UAAYvL,EAAEH,KAAK4F,QAAQE,UAAU2C,KAAKiB,MACrDa,SAAWA,UAAYpK,EAAEH,KAAK4F,QAAQE,UAAU2F,MAAM/B,MAEjD1J,KAAKc,kBAA6D,WAAxCd,KAAK4F,QAAQE,UAAU8F,cAA4E,mBAAxC5L,MAAK4F,QAAQE,UAAU8F,cAC9G5L,KAAK+I,IAAI8C,cAAc1L,EAAE2L,EAAE,cAG9B,IAAI7B,SAEqC,mBAA9BjK,MAAK4F,QAAQmG,cACrB9B,SAAWjK,KAAK4F,QAAQmG,aAAa5C,KAAKiC,KAAMM,SAAUnB,SAAU,SAASyB,GAC1EhM,KAAKiM,cAAcP,SAAUnB,SAAUoB,GAAIK,KAGtB,mBAAb/B,WACRjK,KAAKiM,cAAcP,SAAUnB,SAAUoB,GAAI1B,WAG9CjK,KAAKiM,cAAcP,SAAUnB,SAAUoB,KAc7CM,cAAe,SAASP,SAAUnB,SAAUoB,GAAIO,gBAC7C,GAAIA,kBAAmB,EAIpB,MAHAlM,MAAKyF,KAAK,4BAEVkG,KAAG,EAKN,IAAI1B,UAAW9J,EAAE8F,QAAO,KAAUjG,KAAK4F,QAEnCsG,gBAEDjC,SAAW9J,EAAE8F,QAAO,EAAMgE,SAAUiC,gBAEpCA,kBAGmC,gBAA3BjC,UAAS3B,KAAKoD,WACtBA,SAAWzB,SAAS3B,KAAKoD,SAG5B,IAEIjD,KAFA0D,SAAYlC,SAAS3B,KAAa,SAAI,IAAM2B,SAAS3B,KAAK6D,SAAW,GACrEC,OAASnC,SAAS3B,KAAK8D,MAIxB3D,KADCiD,SAASW,MAAM,UACTX,SAASW,MAAM,WAAcX,SAAWA,SAAWS,SAEpDT,SAAW,IAAMU,OAASD,SAGU,kBAAlCnM,MAAK4F,QAAQE,UAAUwG,SAC/B7D,IAAMzI,KAAK4F,QAAQE,UAAUwG,OAAO7D,MAGvCzI,KAAKoB,IAAMpB,KAAKuM,SAAS9D,KAEzBwB,SAAS3B,KAAKoD,SAAWjD,IAAI+D,MAAM,KAAK,GACxCvC,SAAS3B,KAAK8D,OAAS3D,IAAI+D,MAAM,KAAK,GAAGA,MAAM,KAAK,GACpDvC,SAAS3B,KAAK6D,SAAW1D,IAAI+D,MAAM,KAAK,GAAGA,MAAM,KAAK,IAAM,GAEvDN,eAAe5D,OAEjB4D,eAAe5D,SAIlBnI,EAAEqJ,KAAK0C,eAAgB,SAAS/F,KAC7B,GAAIsG,KAAMzM,KAAK4F,QAAQM,IAAIC,KACvBuD,IAAMO,SAAS9D,IACnBuD,KAAMvJ,EAAE8F,QAAO,EAAMwG,IAAK/C,KAE1B1J,KAAK4F,QAAQU,IAAIH,IAAKuD,OAGzB1J,KAAK4F,QAAQ0C,KAAKG,IAAMA,IACxBzI,KAAK4F,QAAQ0C,KAAKiC,SAAWA,SAE7BoB,GAAG1B,WAMNyC,QAAS,WACN1M,KAAKyE,MAAM,mBAEXzE,KAAKM,iBAAkB,EACvBN,KAAKoB,IAAMpB,KAAKuM,SAASvM,KAAK6E,QAAQC,QAAQ,QAE9C9E,KAAK+I,IAAIpD,OACTxF,EAAE,gBAAgBwM,YAAY,qBAE9B3M,KAAKmI,iBACLnI,KAAK+I,IAAI6D,aAAazM,EAAE,+BAAgCH,KAAKuM,SAASvM,KAAK6E,QAAQC,QAAQ,QAAS,OAEpG9E,KAAK+I,IAAI8D,WAMZpC,SAAU,WACPzK,KAAKyE,MAAM,gBAEXzE,KAAKK,QAAS,EAGdL,KAAK6E,QAAQiI,QAAQ,QAAS,GAC9B9M,KAAK6E,QAAQiI,QAAQ,aAAc,GAGnC9M,KAAK+M,iBAEL/M,KAAKM,iBAAkB,EAEvBN,KAAKsI,KAAKgC,SAQbI,YAAa,SAASiB,IACnB3L,KAAKyE,MAAM,gBAEXkH,GAAMA,IAAoB,kBAAPA,IAAqBA,GAAK3L,KAAKyK,SAEL,mBAAlCzK,MAAK6E,QAAQC,QAAQ,SAC7B6G,GAAGxC,QAEHnJ,KAAKO,GAAGoJ,KAAK1C,OAAO+F,WAAWrB,GAAI,MACnC3L,KAAKiN,UAAU,WAIrBC,cAAe,WAEZ,GAAKlN,KAAKsI,KAAKwC,MAAS9K,KAAKsI,KAAKwC,KAAKqC,cAAvC,CAKA,GAAIC,MAAOpN,KAAK6E,QAAQwB,YAAY,eACpC+G,MAAwB,gBAATA,MAAqBA,KAAO,EACvCpN,KAAK4F,QAAQyH,cAAgBD,KAAO,GAAKpN,KAAKqN,aAAaC,aACxDtN,KAAKqN,aAAaE,gBACnBvN,KAAKqN,aAAa1H,OAElB3F,KAAKqN,aAAaG,iBAIrBxN,KAAK4F,QAAQyH,cAAe,EAG3BrN,KAAK4F,QAAQM,IAAI,OAAOiE,QAEzBnK,KAAK8H,IAAI2F,YAGZzN,KAAK+I,IAAI6D,aAAazM,EAAE,+BAAgCH,KAAKuM,SAASvM,KAAK6E,QAAQC,QAAQ,QAAS,SAMvGiI,eAAgB,WACb/M,KAAKW,kBAAoBsG,OAAOyG,YAAY1N,KAAKiN,UAAWjN,KAAK4F,QAAQ+H,QAAU,MAMtFV,UAAW,SAASW,MACjB,GAAIC,MAAOvK,SAAStD,KAAK6E,QAAQC,QAAQ,UAAY,CACrD8I,MAAOA,MAAQ,SAEf5N,KAAK6E,QAAQiI,QAAQ,QAASe,KAAO,IAAMD,OAO9CE,cAAe,WACR9N,KAAKQ,QACNyG,OAAO8G,aAAa/N,KAAKQ,QAGxBR,KAAKW,mBACNsG,OAAO+G,cAAchO,KAAKW,mBAG7BX,KAAK6E,QAAQoJ,IAAI,cACjBjO,KAAKQ,OAASyG,OAAO+F,WAAWhN,KAAK+M,eAAgB/M,KAAK4F,QAAQsI,YAAc,MASnFC,OAAQ,SAASC,KACd,MAAOC,MAAKC,MAAMD,KAAKF,SAAWC,MASrC5C,UAAW,SAAS+C,UACjB,MAAOpO,GAAEoO,UAAU1H,OAAS,GAS/B2H,SAAU,SAAS/F,KAChBzI,KAAKyF,KAAK,+BAEV,IAAIgJ,KAAMC,QAAQC,kBAAkBlG,KAAKmG,QAAQ,IAAK,KAAKA,QAAQ,MAAO,KAAKC,aAE/E,OAAOJ,MAUVlC,SAAU,SAAS9D,KAChB,MAAOiG,SAAQI,aAAaJ,QAAQC,kBAAkBlG,KAAKoG,gBAM9DE,cAAe,WACZ,GAAIC,SAAUhP,KAAK6E,QAAQwB,YAAY,YAEvC,OAAK2I,UAA8B,IAAnBA,QAAQnI,QAQxB1G,EAAEqJ,KAAKwF,QAAS,SAASvF,MAAOlD,OAC7BvG,KAAK+I,IAAIC,OAAOiG,IAAI1I,SAGvBvG,KAAK+I,IAAIC,OAAOkG,QAAS,MACzB/O,GAAE8H,UAAUkH,QAAQ,yBAZjBnP,KAAKyE,MAAM,2BAEXzE,MAAK+I,IAAIC,OAAOoG,UAgBtBC,eAAgB,WACb,GAAIC,SAAUtP,KAAK6E,QAAQwB,YAAY,aAEvB,QAAZiJ,SAIJnP,EAAEqJ,KAAK8F,QAAS,SAAS7F,MAAOrI,KAC7B,GAAImO,KAAMvP,KAAK6E,QAAQwB,YAAY,SAAUjF,IAE7C,OAAKmO,MAKLvP,KAAK+I,IAAI9B,OAAOtB,KAAKvE,KAEhBmO,IAAIC,SAGNxP,KAAK+I,IAAI9B,OAAOwI,KAAKrO,KAFrBpB,KAAK+I,IAAI9B,OAAOyI,KAAKtO,SAKxBpB,MAAK+I,IAAI9B,OAAO0I,QAAQvO,IAAKmO,IAAIK,QAZ9B5P,KAAKyE,MAAM,yCAA2CrD,MAC/C,MAkBhBoJ,gBAAiB,WACd,GAAIpB,MAAOjJ,EAAEH,KAAK4F,QAAQE,UAAUsD,MAAMS,IAAI,UAG1CN,QAAUH,KAAKzE,KAAK,cACxBxE,GAAEqJ,KAAKD,QAAS,SAASE,MAAOC,KAC7BN,KAAKE,OAAOI,OAGXN,KAAKyG,KAAK,WAAWhJ,OAAS,EAC/BuC,KAAKyG,KAAK,WAAWC,QACb1G,KAAKlD,IAAI,IAAoC,kBAAvBkD,MAAKlD,IAAI,GAAGoD,OAC1CF,KAAKE,SACGF,KAAKyG,KAAK,mBAAmBhJ,OAAS,EAC9CuC,KAAKyG,KAAK,mBAAmBC,QAE7B9P,KAAKyF,KAAK,iCAOhBsK,WAAY,SAASH,MAElB,MADAA,MAAOA,KAAKhB,QAAQ,SAAU,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KACnEgB,KAAKhB,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAU1EoB,WAAY,SAASJ,MAClB,MAAOzP,GAAE,UAAUiF,KAAKwK,MAAMA,QAUjCK,aAAc,SAASC,KACpB,GAAIC,IAAK9B,KAAKF,SAASiC,SAAS,IAAItJ,OAAO,EAAG,IAC1CuJ,KAAOjF,IAUX,OARAjL,GAAEqJ,KAAK0G,IAAK,SAAS/J,IAAKuD,KACvBvJ,EAAE8H,UAAU+C,IAAI7E,IAAM,IAAMgK,GAAI,WAC7BhQ,EAAE8H,UAAU4B,IAAI,IAAMsG,IAEtBzG,IAAIyB,MAAMkF,KAAMxF,eAIfsF,IAQVG,SAAU,WACP,GAAIC,SAAS,CAmBb,OAjB+B,mBAApBtI,UAASsI,OACjBA,OAAStI,SAASsI,OACuB,mBAA1BtI,UAASuI,aACxBD,OAAStI,SAASuI,aACoB,mBAAvBvI,UAASwI,UACxBF,OAAStI,SAASwI,UACmB,mBAAtBxI,UAASyI,WACxBH,OAAStI,SAASyI,UAIjBH,QAAUvQ,KAAKK,OAChBL,KAAK6E,QAAQoJ,IAAI,SAAU,GAClBsC,QAAWvQ,KAAKK,QACzBL,KAAK6E,QAAQoJ,IAAI,UAGbsC,QAQVI,SAAU,WACP,GAAIC,QAAQ,CAYZ,OAViC,kBAAtB3I,UAAS0I,WACjBC,MAAQ3I,SAAS0I,aAGfC,OAAS5Q,KAAKK,OAChBL,KAAK6E,QAAQoJ,IAAI,QAAS,GAClB2C,QAAU5Q,KAAKK,QACvBL,KAAK6E,QAAQoJ,IAAI,SAGb2C,OAWVC,KAAM,SAASC,OAAQC,UACpB,GAEIC,GAFAC,OAASH,OAAOtE,MAAM,KACtB0E,GAAKlR,KAAKiR,OAAO,GAErB,KAAKD,EAAI,EAAGA,EAAIC,OAAOpK,OAAQmK,IAC5BE,GAAKA,GAAGD,OAAOD,GAGlB,IAAkB,kBAAPE,IACR,MAAOA,IAAG/F,MAAM,KAAM4F,WAW5BI,QAAS,SAASC,KACf,GACGJ,GADCK,KAAO,CAGX,IAAmB,IAAfD,IAAIvK,OACL,MAAOwK,KAGV,KAAKL,EAAI,EAAGA,EAAII,IAAIvK,OAAQmK,IACzBK,MAASA,MAAQ,GAAKA,KAAQD,IAAIE,WAAWN,GAC7CK,MAAQ,CAGX,OAAOA,OAGVE,mBAAoB,WACjB,MAAOpR,GAAE8G,QAAQuK,QAAU,KAG9B3L,YAAa,SAAS4L,OACnBzR,KAAKqB,aAAeoQ,MAEpBzR,KAAKyE,MAAM,oBAAsBiN,OAAOC,KAAK3R,KAAKuB,MAAMkB,OAAOgP,QAE/DtR,EAAE8H,UAAUkH,QAAQ,mBAAoBsC,QAG3CG,cAAe,SAASH,OACrBzR,KAAKsB,eAAiBmQ,MAEtBzR,KAAKyE,MAAM,uBAAyBiN,OAAOC,KAAK3R,KAAKuB,MAAM0B,SAASwO,QAEpEtR,EAAE8H,UAAUkH,QAAQ,qBAAsBsC,SAShDzR,KAAKsI,MACFwC,KAAM,KA4BNR,MAAO,WAEJ,GAAItK,KAAKsI,KAAKwC,MAAQ9K,KAAKsI,KAAKwC,KAAKqC,cAElC,WADAnN,MAAKyE,MAAM,oCAId,IAAIgE,KAAM,KACP8B,SAAW,KACX/B,IAAM,KACND,IAAM,IAET,QAAQsC,UAAUhE,QACf,IAAK,GACF4B,IAAMoC,UAAU,GAChBN,SAAWM,UAAU,EACrB,MACH,KAAK,GACFpC,IAAMoC,UAAU,GAChBrC,IAAMqC,UAAU,GAChBtC,IAAMsC,UAAU,EAChB,MACH,SACGrC,IAAMxI,KAAK6E,QAAQC,QAAQ,OAC3ByD,IAAMvI,KAAK6E,QAAQC,QAAQ,OAEf,OAAR0D,KAAwB,OAARD,IACjBE,IAAMzI,KAAK6E,QAAQC,QAAQ,QAE3B0D,IAAMxI,KAAK4F,QAAQ0C,KAAKE,KAAO,KAC/BD,IAAMvI,KAAK4F,QAAQ0C,KAAKC,KAAO,KAC/BE,IAAMzI,KAAK4F,QAAQ0C,KAAKG,KAIjC,IAAKA,IAGF,WAFAzI,MAAKyF,KAAK,yBAKRzF,MAAKoB,MACPpB,KAAKoB,IAAMpB,KAAKuM,SAAS9D,KAG5B,IAAIoJ,KAAM7R,KAAK4F,QAAQM,IAAI,QAAQ2L,GAEnC,KAAKA,IAGF,WAFA7R,MAAKyF,KAAK,8BAKPzF,MAAKsI,KAAKwC,MAAQ9K,KAAKsI,KAAKwC,KAAKC,YAEpC5K,EAAE8H,UAAUC,GAAG,iBAAkBlI,KAAKsI,KAAKyC,WAC3C5K,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAKsI,KAAKwJ,UAC1C3R,EAAE8H,UAAUC,GAAG,oBAAqBlI,KAAKsI,KAAKyJ,cAC9C5R,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAKsI,KAAK0J,YAC1C7R,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAKsI,KAAK2J,YAE1CvD,QAAQwD,aAAa,WAAY,sBAIpClS,KAAKsI,KAAKwC,KAAO,GAAI4D,SAAQyD,WAAWN,KAEpC7R,KAAK6E,QAAQC,QAAQ,YAAa,IACnC9E,KAAKsI,KAAKwC,KAAKsH,SAAW,SAASzN,MAChCI,QAAQC,IAAI,IAAKL,OAEpB3E,KAAKsI,KAAKwC,KAAKuH,UAAY,SAAS1N,MACjCI,QAAQC,IAAI,IAAKL,QAIvB3E,KAAKsI,KAAKwC,KAAKwH,aAAetS,KAAKsI,KAAK2C,WAExC,IAAIsH,UAAW,SAASC,OAAQC,WAI7B,OAFAzS,KAAKyE,MAAMiN,OAAOgB,oBAAoBhE,QAAQiE,QAAQH,QAAU,KAAOC,WAE/DD,QACL,IAAK9D,SAAQiE,OAAOC,WACjBzS,EAAE8H,UAAUkH,QAAQ,kBACpB,MACH,KAAKT,SAAQiE,OAAOE,UACjB7S,KAAKoB,IAAMpB,KAAKuM,SAASvM,KAAKsI,KAAKwC,KAAKrC,IAAIoG,eAC5C1O,EAAE8H,UAAUkH,QAAQ,iBACpB,MACH,KAAKT,SAAQiE,OAAOG,SACjB3S,EAAE8H,UAAUkH,QAAQ,gBACpB,MACH,KAAKT,SAAQiE,OAAOI,aACjB5S,EAAE8H,UAAUkH,QAAQ,oBACpB,MACH,KAAKT,SAAQiE,OAAOK,SACjB7S,EAAE8H,UAAUkH,QAAQ,gBACpB,MACH,KAAKT,SAAQiE,OAAOM,SACjB9S,EAAE8H,UAAUkH,QAAQ,kBAKzBnP,MAAKsI,KAAKwC,KAAKoI,OAChBlT,KAAKsI,KAAKwC,KAAKoI,KAAKC,KAAO,oBAG9BnT,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMM,cAE9ByF,KAAOD,KACRvI,KAAKyE,MAAM,iBACXzE,KAAKyE,MAAM,QAAU+D,KAErBxI,KAAKY,WAAY,EAEjBZ,KAAKsI,KAAKwC,KAAKsI,OAAO3K,IAAKD,IAAKD,IAAKgK,YAErCvS,KAAKyE,MAAM,kBAEPzE,KAAKsI,KAAKwC,KAAKoI,MAGhBlT,KAAKsI,KAAKwC,KAAKuI,eAAe,SAASC,QACpC,GAAIC,MAAOvT,KAAKsI,KAAKwC,KAAKsB,OACvBoH,EAAIF,OAAOG,cAAc,KACzBC,IAAMF,EAAEG,aAAa,OACrBR,KAAOK,EAAEG,aAAa,QAErBC,cAAgBtO,KAAKuO,MAAMC,aAAahP,QAAQ,kCAEpD9E,MAAKsI,KAAKwC,KAAKoI,KAAKa,aAAaR,MAAQG,IACzCE,cAAcL,MAAQJ,KAEtBW,aAAahH,QAAQ,4BAA6BxH,KAAKC,UAAUvF,KAAKsI,KAAKwC,KAAKoI,KAAKa,eACrFD,aAAahH,QAAQ,6BAA8BxH,KAAKC,UAAUqO,iBAClElF,QAAQtM,GAAG4R,MAGjBhU,KAAKsI,KAAKwC,KAAKmJ,QAAQxL,IAAK8B,UAAYvK,KAAK4F,QAAQ0C,KAAKiC,SAAUgI,YAU1EjH,OAAQ,SAAS4I,UAId,GAFAlU,KAAKe,qBAA4C,iBAAbmT,WAA0BA,UAEzDlU,KAAKK,OAKP,MAHAL,MAAK6E,QAAQ+D,WAAW,QAGjB,CAYV,IAPA5I,KAAK6E,QAAQsP,eAAe,aAC5BnU,KAAK6E,QAAQsP,eAAe,cAC5BnU,KAAK6E,QAAQsP,eAAe,aAG5BhU,EAAE,QAAQ2P,SAEL9P,KAAKsI,KAAKwC,OAAS9K,KAAKsI,KAAKwC,KAAKqC,cACpC,OAAO,CAIVhN,GAAEqJ,KAAKxJ,KAAK6E,QAAQwB,YAAY,eAAkB,SAAS2K,EAAGtH,KAC3D1J,KAAK8H,IAAIsM,OAAO1K,MAGnB,IAAI2K,QAAS3C,OAAOC,KAAK3R,KAAK8H,IAAIwM,aAAezN,OAAS,EACtD0N,SAAW,aACNF,QAAU,IACbrU,KAAKsI,KAAKwC,KAAK0J,QAEfxH,WAAW,WACRhN,KAAKsI,KAAKwC,KAAK2J,cACf,MAqBT,OAhBAtU,GAAEqJ,KAAKxJ,KAAK8H,IAAIwM,YAAe,SAASnO,IAAK+J,KACtCA,IAAIwE,WAAaC,IAAIpT,MAAMqT,mBAC5B1E,IAAI2E,OAAO1L,KAAK+G,IAAK,WAClBA,IAAIvK,KAAKwD,KAAK+G,KACdlQ,KAAK8H,IAAIgN,OAAO3O,KAEhBoO,aAGHA,aAINA,YAGO,GAQVxJ,UAAW,WAQR,GANA/K,KAAKsI,KAAKwC,KAAKiK,QAEf/U,KAAKsI,KAAK0M,oBAEVhV,KAAKsI,KAAK2M,uBAENjV,KAAK4F,QAAQE,UAAUuE,UACxB,OAAQrK,KAAK4F,QAAQE,UAAUoP,aAAe,UAC3C,IAAK,SAEF,WADAlV,MAAKwK,iBAER,MAAK,EACF,OAMTxK,KAAK+I,IAAIoM,OAAOC,QAEhBpV,KAAKsI,KAAKwC,KAAKuK,SACfrV,KAAKyK,WAELzK,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMO,OAClC7C,EAAE8H,UAAUkH,QAAQ,kBAQvB2C,SAAU,WAEP3R,EAAE,gBAAgBwM,YAAY,qBAE9B3M,KAAKsI,KAAKwC,KAAKwK,WAAWtV,KAAKsI,KAAKiN,gBAAiB,mBAAoB,KAAM,OAC/EvV,KAAKsI,KAAKwC,KAAKwK,WAAWtV,KAAKsI,KAAKkN,cAAe,KAAM,UAAW,QACpExV,KAAKsI,KAAKwC,KAAKwK,WAAWtV,KAAKsI,KAAKmN,kBAAmB,KAAM,UAAW,YACxEzV,KAAKsI,KAAKwC,KAAKwK,WAAWtV,KAAKsI,KAAKoN,WAAY,KAAM,WACtD1V,KAAKsI,KAAKwC,KAAKwK,WAAWtV,KAAKsI,KAAKqN,WAAY,KAAM,YAEtD3V,KAAK+I,IAAIpD,MAET,IAAIuN,MAAOlT,KAAKsI,KAAKwC,KAAKoI,KACtB9G,OAASpM,KAAKsI,KAAKwC,KAAKsB,MAE5B,IAAI8G,KAAM,CACP,GAAI0C,mBAAoB,YAqBxB,IAnBI5V,KAAK4F,QAAQM,IAAI,WAAWiE,SAC7ByL,kBAAoB,WACb5V,KAAKsI,KAAKwC,KAAKoI,KAAK2C,gBAAgBzJ,OAAQpM,KAAKuB,MAAMa,GAAGC,UAC3DrC,KAAKsI,KAAKwN,QAAQ3L,UAIxBhK,EAAE8H,UAAUC,GAAG,eAAgB,QAAS6N,QAAOjM,GAAIyJ,MAE5CA,OAASnH,SAIbwJ,oBAEAzV,EAAE8H,UAAU4B,IAAI,eAAgBkM,YAI4B,mBAAvD7C,MAAK8C,mBAAmB9C,KAAKa,aAAa3H,SAA0B,CAC5E,GAAIwH,eAAgBtO,KAAKuO,MAAMC,aAAahP,QAAQ,kCAEpD9E,MAAKyE,MAAM,+BAEXyO,KAAK+C,qBAAqBjW,KAAKsI,KAAKwC,KAAKsB,OAAQwH,cAAcxH,QAAS8G,KAAKa,aAAa3H,aAG1FwJ,qBAKN,GAAK5V,KAAKY,WAAcZ,KAAK6E,QAAQwB,YAAY,aAe9CrG,KAAKsI,KAAK4N,WAELlW,KAAKa,kBACPb,KAAK+I,IAAI8D,cAlBgD,CAG5D1M,EAAE8H,UAAU+C,IAAI,sBAAuBhL,KAAKsI,KAAK4N,UAEjD/V,EAAE,0BAA0BgW,QAE5B,IAAIC,IAAKC,KACNC,KAAM,QACN9C,EAAE,SACF+C,MAAO,oBAGVvW,MAAKsI,KAAKwC,KAAK0L,OAAOJ,GAAIpW,KAAKsI,KAAKmO,UASvCzW,KAAKsI,KAAK2M,uBAEVjV,KAAKkN,gBAELlN,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMO,QAGrCiS,qBAAsB,WAEnB,GAAIyB,QAAShI,QAAQC,kBAAkB3O,KAAKsI,KAAKwC,KAAKrC,KAAKoG,cAAgB,IAAMH,QAAQiI,mBAAmB3W,KAAKsI,KAAKwC,KAAKrC,IAG3HzI,MAAK6E,QAAQiI,QAAQ,MAAO9M,KAAKsI,KAAKwC,KAAKI,OAAO1C,KAClDxI,KAAK6E,QAAQiI,QAAQ,MAAO4J,SAG/B1B,kBAAmB,WAEhBhV,KAAK6E,QAAQsP,eAAe,aAE5BnU,KAAK6E,QAAQsP,eAAe,cAC5BnU,KAAK6E,QAAQsP,eAAe,OAC5BnU,KAAK6E,QAAQsP,eAAe,SAAU,OACtCnU,KAAK6E,QAAQsP,eAAe,WAC5BnU,KAAK6E,QAAQsP,eAAe,aAG5BnU,KAAK6E,QAAQ+R,kBAAkB,UAAW,kBAM7CV,SAAU,WAEHlW,KAAKsI,KAAKwC,KAAK+L,QAChB7W,KAAKsI,KAAKwC,KAAK+L,MAAMC,YAAY,SAAU,MAAO,QAClD9W,KAAKsI,KAAKwC,KAAK+L,MAAME,WAAWrI,QAAQtM,GAAG4U,YAC3ChX,KAAKsI,KAAKwC,KAAK+L,MAAME,WAAWrI,QAAQtM,GAAG6U,UAI9C,IAAIC,MAAOC,OAEPnX,MAAKsI,KAAKwC,KAAKoI,MAEhBgE,KAAK1D,EAAE,IAAKxT,KAAKsI,KAAKwC,KAAKoI,KAAKkE,qBAAqBC,IAGxD,IAAIC,WAAYtX,KAAK6E,QAAQwB,YAAY,aAAe,QACtC,YAAdiR,WACDJ,KAAK1D,EAAE,QAAQ1H,EAAEwL,WAAWD,IAG/B,IAAIE,UAAWvX,KAAK4F,QAAQM,IAAI,WAC5BqR,WAA2C,mBAAxBA,UAASD,YAAgE,IAAlChU,SAASiU,SAASD,aAC7EJ,KAAK1D,EAAE,YAAY1H,EAAEyL,SAASD,YAAYD,KAG7CrX,KAAKyE,MAAM,gBAAiByS,KAAK9G,YACjCpQ,KAAKsI,KAAKwC,KAAK0M,KAAKN,OAQvBnF,aAAc,WACX/R,KAAKyE,MAAM,gBAEXzE,KAAK6E,QAAQ+D,WAAW,OACxB5I,KAAK6E,QAAQ+D,WAAW,OACxB5I,KAAK6E,QAAQ+D,WAAW,OACxB5I,KAAK6E,QAAQ+D,WAAW,UACxB5I,KAAK6E,QAAQsP,eAAe,SAAU,OACtCnU,KAAK6E,QAAQsP,eAAe,WAE5BhU,EAAE8H,UAAU4B,IAAI,iBAAkB7J,KAAKsI,KAAKyC,WAC5C5K,EAAE8H,UAAU4B,IAAI,gBAAiB7J,KAAKsI,KAAKwJ,UAC3C3R,EAAE8H,UAAU4B,IAAI,oBAAqB7J,KAAKsI,KAAKyJ,cAC/C5R,EAAE8H,UAAU4B,IAAI,gBAAiB7J,KAAKsI,KAAK0J,YAC3C7R,EAAE8H,UAAU4B,IAAI,gBAAiB7J,KAAKsI,KAAK2J,YAE3CjS,KAAKsI,KAAKwC,KAAO,KAEjB3K,EAAE,oBAAoBgW,SAElBnW,KAAKe,sBACNZ,EAAE8H,UAAUkH,QAAQ,sBAAuB,SAAU,IACrDnP,KAAK+I,IAAIC,OAAOyO,OAAQ,EACxBtX,EAAE,gBAAgBgW,SAGdnW,KAAKgB,sBACNiG,OAAOyQ,SAAW1X,KAAK4F,QAAQyF,cAAcsM,KAAK,UAGrD3X,KAAK+I,IAAIC,OAAOC,eAGnBhC,OAAO+G,cAAchO,KAAKW,mBAC1BX,KAAKM,iBAAkB,EACvBN,KAAKK,QAAS,EACdL,KAAK6E,QAAQ+D,WAAW,SAExB5I,KAAK6F,YAAY7F,KAAKuB,MAAMkB,MAAMG,UASrCoP,WAAY,SAASlI,GAAI2I,WACtBzS,KAAKyE,MAAM,2BAA6BgO,WAEpCzS,KAAK4F,QAAQE,UAAUuE,WACxBrK,KAAKwK,mBASXyH,WAAY,WAET,GAAIjS,KAAK4F,QAAQE,UAAUuE,UACxB,OAAQrK,KAAK4F,QAAQE,UAAUmM,YAAc,OAC1C,IAAK,MACFjS,KAAK+I,IAAI6O,cACT,MACH,KAAK,SACF5X,KAAKwK,iBACL,MACH,KAAK,QACL,KAAK,EACF,SAWZiM,SAAU,SAASL,IAMhBpW,KAAKyE,MAAM,cAAe2R,GAE1B,IAAIpH,WAEJ7O,GAAEiW,IAAIvG,KAAK,QAAQrG,KAAK,WACrB,GAAIf,KAAMtI,EAAEiL,MAAMuM,KAAK,OACnBE,KAAO1X,EAAEiL,MAAMuM,KAAK,SAAWlP,IAC/BrH,IAAMpB,KAAKuM,SAAS9D,KACpBqP,IAAM3X,EAAEiL,MAAMuM,KAAK,eAEvB3I,SAAQrF,KAAKvI,KAEbpB,KAAK6E,QAAQsP,eAAe,MAAO/S,KAEnCpB,KAAK6E,QAAQkT,UAAU3W,KACpBqH,IAAKA,IACLoP,KAAMA,KACNrF,OAAQ,EACRsF,IAAKA,IACLE,OACAC,IAAK5J,KAAKF,WAGbnO,KAAK+I,IAAIC,OAAOiG,IAAI7N,OAGA,IAAnB4N,QAAQnI,QACT7G,KAAK+I,IAAIC,OAAOoG,QAGnBpP,KAAK6E,QAAQiE,YAAY,YAAakG,SAGtChP,KAAKsI,KAAK4P,UAAUC,OAEpBnY,KAAK+I,IAAIC,OAAOkG,QAAS,EACzBlP,KAAKyE,MAAM,iBACXtE,EAAE8H,UAAUkH,QAAQ,uBACpBnP,KAAK4R,cAAc5R,KAAKuB,MAAM0B,QAAQD,QAUzCuS,gBAAiB,SAASa,IAiEvB,MA3DApW,MAAKyE,MAAM,kBAAmB2R,IAE9BjW,EAAEiW,IAAIvG,KAAK,QAAQrG,KAAK,WACrB,GAAIf,KAAMtI,EAAEiL,MAAMuM,KAAK,OACnBE,KAAO1X,EAAEiL,MAAMuM,KAAK,SAAWlP,IAC/BrH,IAAMpB,KAAKuM,SAAS9D,KACpBqP,IAAM3X,EAAEiL,MAAMuM,KAAK,eAGvB,IAAY,WAARG,IACD9X,KAAK+I,IAAIC,OAAOoP,MAAMhX,SAClB,CACJ,GAAIiX,IAAKrY,KAAK6E,QAAQwB,YAAY,YAE9BgS,IAAGC,QAAQlX,KAAO,IACnBiX,GAAG1O,KAAKvI,KACRpB,KAAK6E,QAAQiE,YAAY,YAAauP,IAGzC,IAAIE,MAAOvY,KAAK6E,QAAQkT,UAAU3W,KAC/BqH,IAAKA,IACLoP,KAAMA,KACNC,IAAKA,KAGK,aAATS,MAEDvY,KAAK+I,IAAIyP,OAAOpX,KAChBpB,KAAK+I,IAAIC,OAAOyP,QAAQrX,MAExBpB,KAAK+I,IAAIC,OAAOiG,IAAI7N,KAK1B,GAAY,SAAR0W,KAA0B,SAARA,IAAgB,CACnC,GAEGY,QAFCC,QAAU3Y,KAAK6E,QAAQwB,YAAY,WACnCuS,UAAY,IAGhB,KAAKA,YAAaD,SACfD,OAASC,QAAQC,WAEK,0BAAlBF,OAAO5H,QAAsC4H,OAAO3H,SAAS,KAAOtI,MACrEzI,KAAKyE,MAAM,0BAA4BmU,WAEvC5Y,KAAK0Y,OAAOvC,OAAOyC,eAM1B5Y,KAAK6E,QAAQwB,YAAY,cAAiE,IAAjDrG,KAAK6E,QAAQwB,YAAY,aAAaQ,OAGjF1G,EAAE,0BAA0BgW,SAF5BnW,KAAK+I,IAAIC,OAAOoG,SAMZ,GASVuG,WAAY,SAASkD,UAclB7Y,KAAKyE,MAAM,aAAcoU,SAEzB,IAAIC,OAAQ3Y,EAAE0Y,UAAUlB,KAAK,QACzBpE,KAAOpT,EAAE0Y,UAAUlB,KAAK,QACxBlP,IAAMiG,QAAQC,kBAAkB4E,MAAM1E,cACtCkK,EAAIrK,QAAQiI,mBAAmBpD,MAC/BnS,IAAMpB,KAAKuM,SAAS9D,KACpB9D,KAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,SACzC4W,IAAMhY,KAAK6E,QAAQwB,YAAY,MAAOjF,SACtCoR,OAAS,KACTwG,OAAS7Y,EAAE0Y,UAAUhJ,KAAK,iCAE9B,IAAIpH,MAAQiG,QAAQC,kBAAkB3O,KAAK6E,QAAQC,QAAQ,QACxD,OAAO,CAGV,IAAc,UAAVgU,MAAmB,CACpB3Y,EAAE8H,UAAUkH,QAAQ,uBAAwBoE,KAAMsF,UAElD,IAAInT,OAAQvF,EAAE0Y,UAAUhJ,KAAK,QAI7B,OADA7P,MAAK0F,MAAM,UAAYA,MAAMiS,KAAK,QAAU,IAAMjS,MAAMmK,KAAK,iBAAiBoJ,KAAK,aAC5E,EAIV,GAAc,cAAVH,MAAuB,CACxB,GAAIT,IAAKrY,KAAK6E,QAAQwB,YAAY,YAElC,OAAIgS,IAAGC,QAAQlX,MAAO,GACnBpB,KAAKyE,MAAM,4EAEXzE,KAAKsI,KAAK4Q,aAAazQ,KAAK,GACX,OAAb9D,KAAKmT,KACN9X,KAAKsI,KAAK6Q,SAAS1Q,IAAK9D,KAAKkT,OAGzB,IAGV7X,KAAK6E,QAAQiE,YAAY,aACtBL,IAAKA,IACL2Q,SAAS,IAEZpZ,KAAK0Y,OAAOzJ,KACTvK,IAAKvE,EAAE2L,EAAE,sBACTuN,YAAalZ,EAAE2L,EAAE,QAAU,IAAMrD,IACjC6N,KAAM,WACN,yBAA0B7N,OAEtB,GACH,GAAc,gBAAVqQ,OAAqC,iBAAVA,MACnCtG,OAASxS,KAAKuB,MAAMI,OAAO2W,QAAQ,eAC/B,CACJ,GAAI5I,MAAOvP,EAAE0Y,UAAUhJ,KAAK,QAAQD,MAEjC4C,QADU,KAAT9C,KACQ1P,KAAKuB,MAAMI,OAAO2W,QAAQ,UAE1BtY,KAAKuB,MAAMI,OAAO2W,QAAQ5I,MAI1B,IAAX8C,aACMwF,KAAIe,GACHA,IACRf,IAAIe,GAAKvG,OAGZ,IAAI8G,WACAlL,IAAM,EACP6K,KAAO,IACV,KAAKA,OAAQjB,KACNA,IAAIuB,eAAeN,OAChB7K,KAAO4J,IAAIiB,QACR7K,MAAQ4J,IAAIiB,QACbK,UACAlL,IAAM4J,IAAIiB,OAEbK,OAAO3P,KAAKsP,MAwBrB,IAnBoB,IAAhBtU,KAAK6N,QAAgBpE,IAAM,GAE5BpO,KAAKqN,aAAamM,QACfC,MAAO9U,KAAKkT,KACZnT,IAAKvE,EAAE2L,EAAE,mBACT4N,OAAQtY,MAII,cAAduD,KAAK2R,KACN3R,KAAK6N,OAASA,OAEd7N,KAAK6N,OAASpE,IAGjBzJ,KAAKqT,IAAMsB,OACX3U,KAAK8D,IAAMA,IAGPuQ,OAAOnS,OAAS,GAAmB,cAAdlC,KAAK2R,KAAsB,CACjD,GAAIqD,OAAQX,OAAOnJ,KAAK,QAEpB8J,OAAM9S,OAAS,GAAK8S,MAAM/J,SAAWjL,KAAKiV,SAC3C5Z,KAAK6E,QAAQsP,eAAe,SAAUxP,KAAKiV,QAC3CjV,KAAKiV,OAASD,MAAM/J,QAoB1B,MAfI5P,MAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyF,OAAS,GACnC7G,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKuD,KAAK,MAAO8D,KAGxCzI,KAAK6E,QAAQiE,YAAY,QAAS1H,IAAKuD,MACvC3E,KAAK6E,QAAQiE,YAAY,MAAO1H,IAAK4W,KAErChY,KAAKyE,MAAM,aAAe8O,KAAO,MAAQvT,KAAKuB,MAAMI,OAAO6Q,SAE3DxS,KAAK+I,IAAIyP,OAAOpX,KAChBpB,KAAK+I,IAAIC,OAAOyP,QAAQrX,KAExBjB,EAAE8H,UAAUkH,QAAQ,iBAAkBoE,KAAMf,OAAQqG,YAG7C,GAUVrD,cAAe,SAASlC,QACrB,GACIuG,SAASC,OADTC,UAAY5Z,EAAEmT,QAAQzD,KAAK,oBAAsB7P,KAAKuB,MAAMa,GAAGE,QAAU,KAGzEyX,WAAUlT,OAAS,GACpBgT,QAAUE,UAAUlK,KAAK,aACzBkK,WAAY,EACZD,OAAS3Z,EAAEmT,QAAQzD,KAAK,aAAe7P,KAAKuB,MAAMa,GAAGC,QAAU,MAEzC,IAAlByX,OAAOjT,SACRiT,QAAS,GAGZ9Z,KAAKyE,MAAM,6BAA8BoV,WAEzCA,QAAUvG,OACVyG,WAAY,EACZD,QAAS,EAET9Z,KAAKyE,MAAM,mBAAoBoV,SAGlC,IAAIG,MAAO7Z,EAAE0Z,SAAShK,KAAK,cAAcD,OACrCqK,SAAW9Z,EAAE0Z,SAAShK,KAAK,eAAiBnB,QAAQtM,GAAG8X,MAAQ,KAEnE,KAAKF,MAASA,KAAK3N,MAAM,WAAa0N,UACnC,OAAO,CAGV,IAGI3Y,KAHAkV,KAAOnW,EAAE0Z,SAASlC,KAAK,QACvBpE,KAAOpT,EAAE0Z,SAASlC,KAAK,QACvBwC,IAAMha,EAAE0Z,SAASlC,KAAK,MAGtByC,MAAQja,EAAE0Z,SAAShK,KAAK,iCAExBwK,MAASD,MAAMvT,OAAS,EAAK,GAAIxD,MAAK+W,MAAMzC,KAAK,UAAY,GAAItU,KAGrE,IAFAgX,MAAQA,MAAM7V,UAEVsV,OAAQ,CACT,GAAIQ,WAAwC,SAA3BR,OAAOb,KAAK,WAAyBjZ,KAAKua,QAAQC,IAAMxa,KAAKua,QAAQE,EAYtF,OAXArZ,KAAMpB,KAAKuM,SAAwB,QAAd+N,UAAuBna,EAAE0Z,SAASlC,KAAK,MAAQpE,MAEpEvT,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWA,UACX5V,IAAKsV,KACLW,WAAW,EACXZ,UAAWA,UACXM,MAAOA,SAGH,EAECN,YAGRC,KAAOzG,KAAO,IAAMpT,EAAE2L,EAAE,MAAQ,IAAM3L,EAAEmT,QAAQqE,KAAK,MAAQ,IAAMqC,KAAO,IAE1EzG,KAAOpT,EAAEmT,QAAQqE,KAAK,QAGzB,IAAIlP,KAAMiG,QAAQC,kBAAkB4E,KACpCnS,KAAMpB,KAAKuM,SAAS9D,IACpB,IAAI9D,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,KACzCwZ,QAAUza,EAAE0Z,SAAShK,KAAK,qCAE9B,IAAa,OAATlL,KAAe,CAGhB,GAAIkW,MAAO7a,KAAK6E,QAAQwB,YAAY,OAAQjF,QAExB,KAAhByZ,KAAKhU,QACN7G,KAAK0Y,OAAOzJ,KACTvK,IAAKvE,EAAE2L,EAAE,kBACTuN,YAAalZ,EAAE2L,EAAE,iDAAmD,KAAO1K,IAAM,MACjF,yBAA0BA,KAGhC,IAAIsD,KAAM1E,KAAKgQ,WAAWgK,KAK1B,OAJAtV,KAAM1E,KAAK+P,WAAWrL,KAEtB1E,KAAK6E,QAAQiW,YAAY1Z,IAAK,KAAMsD,KAAK,EAAOqV,UAAWM,QAEpD,EAGV,GAAI9K,KAAMvP,KAAK+I,IAAI9B,OAAOtB,KAAKvE,IAGlB,UAATkV,OACD/G,IAAI5K,KAAK,MAAO4O,MAChBvT,KAAK6E,QAAQkW,eAAe,QAAS3Z,KAClCqH,IAAK8K,QAIXpT,EAAE8H,UAAUkH,QAAQ,gBAAiBoE,KAAMyG,OAGvCha,KAAKK,SAAWL,KAAK8H,IAAIwM,QAAQlT,MAClCpB,KAAK8H,IAAIsM,OAAOhT,KAGd2Y,WAAqB,OAARI,MAAgBS,QAAQ/T,QAAmB,OAATlC,MAA+B,SAAbA,KAAKmT,KAA+B,SAAbnT,KAAKmT,KAA4B,SAATxB,MAElHtW,KAAKsI,KAAKwC,KAAK0M,KAAKwD,MACjBza,GAAIgT,OACJC,EAAE,YACF+C,MAAO,oBACP0E,GAAId,MAIV,IAAIe,WACJ,IAAwB,IAApBjB,SAASpT,OAAc,CACxB,GAAIsU,mBAAoBlB,SAASpK,KAAK,qCAEL,KAA7BsL,kBAAkBtU,SACnBqU,YACG5E,KAAM6E,kBAAkBxD,KAAK,aAC7BE,KAAMsD,kBAAkBxD,KAAK,aAC7ByD,KAAMD,kBAAkBxD,KAAK,cAG5BwD,kBAAkBxD,KAAK,mBAAqBwD,kBAAkBxD,KAAK,kBAAkBtL,MAAM,2DAC5F6O,WAAWG,UAAYF,kBAAkBxD,KAAK,mBAG7CwD,kBAAkBxD,KAAK,SAAWwD,kBAAkBxD,KAAK,QAAQtL,MAAM,iBACxE6O,WAAWvW,KAAOwW,kBAAkBxD,KAAK,QACzCqC,KAAO,MAGLkB,WAAW5E,KAAKjK,MAAM,6BAAgC6O,WAAWrD,KAAKxL,MAAM,kBAAqB6O,WAAWE,KAAK/O,MAAM,YACzH6O,WAAaI,OAEbtb,KAAKyF,KAAK,sCAyBnB,MApBIzF,MAAK8H,IAAIwM,QAAQiF,eAAenY,MAAQ4Y,KAEzCha,KAAK8H,IAAIwM,QAAQlT,KAAKma,WAAWvB,MAC9BK,MAAOA,MACPN,UAAWA,UACXmB,WAAYA,aAGflb,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQE,GACxB/V,IAAKsV,KACLW,WAAW,EACXZ,UAAWA,UACXM,MAAOA,MACPa,WAAYA,cAKX,GASVzF,kBAAmB,SAASnC,QACzBA,OAASnT,EAAEmT,OAEX,IAAIC,MAAOD,OAAOqE,KAAK,QACnBvL,OAASsC,QAAQ8M,iBAAiBjI,KAEtC,IAAInH,SAAWmH,MACZ,IAAKvT,KAAK6E,QAAQwB,YAAY,QAASrG,KAAKuM,SAASgH,OAClD,OAAO,MAEN,IAAInH,SAAWsC,QAAQ8M,iBAAiBxb,KAAKsI,KAAKwC,KAAKrC,KAC3D,OAAO,CAGV,IAAIgT,SAAUnI,OAAOzD,KAAK,iBAAiBD,QAAUzP,EAAE2L,EAAE,gBACrDkO,KAAO1G,OAAOzD,KAAK,cAAcD,MAQrC,OANA5P,MAAK0Y,OAAOzJ,KACTvK,IAAK+W,QACLpC,YAAaW,KACb1D,KAAOlK,SAAWmH,KAAQ,eAAiB,MAC3C,wBAAyBkI,QAASzB,KAAMzG,QAEpC,GASVtI,YAAa,SAAS1C,KACnBvI,KAAK6E,QAAQiI,QAAQ,MAAOvE,MAS/B2Q,aAAc,SAAS3F,KAAM6F,SACtBpZ,KAAKK,QACNL,KAAKsI,KAAKwC,KAAK0M,KAAKL,OACjB5W,GAAIgT,KACJ+C,KAAM,QAAY,aAAe,kBAGpCtW,KAAK6E,QAAQsP,eAAe,aAC5BnU,KAAK+I,IAAIoM,OAAOC,SAGhBpV,KAAK6E,QAAQkW,eAAe,YAAa,UAAW3B,UAU1DD,SAAU,SAASzN,SAAUgQ,OAC1B,GAAIta,KAAMpB,KAAKuM,SAASb,SAExB,IAAI1L,KAAKK,OAAQ,CAEd,GAAI+V,IAAKC,KACNC,KAAM,QACN9C,EAAE,SACF+C,MAAO,qBACP/C,EAAE,QACF/K,IAAKiD,SACLmM,KAAM6D,OAAS,IAElB1b,MAAKsI,KAAKwC,KAAK0L,OAAOJ,IAGtBpW,KAAKsI,KAAKwC,KAAK0M,KAAKL,OACjB5W,GAAImL,SACJ4K,KAAM,eAGTtW,KAAK6E,QAAQsP,eAAe,OAAS/S,SAErCpB,MAAK6E,QAAQiE,YAAY,OAAS1H,KAC/BsK,SAAUA,SACVgQ,MAAOA,OAAS,QAUzBC,YAAa,SAASlT,KACnB,GAAIrH,KAAMpB,KAAKuM,SAAS9D,KAGpB2N,GAAKC,KACNC,KAAM,QACN9C,EAAE,SACF+C,MAAO,qBACP/C,EAAE,QACF/K,IAAKiG,QAAQC,kBAAkBlG,KAC/BmT,aAAc,UAEjB5b,MAAKsI,KAAKwC,KAAK0L,OAAOJ,IAEtBpW,KAAK+I,IAAIC,OAAOoP,MAAMhX,MAGzBsU,WAAY,SAASpC,QAClB,GAAIuI,UAAW1b,EAAEmT,QAAQzD,KAAK,sCAE9B,IAAIgM,SAAShV,OAAQ,CAClB,GAAIiV,YAAaD,SAASlE,KAAK,MAC3BkC,QAAU,GAAI7Z,MAAKua,QAAQuB,WAE/BjC,SAAQgC,WAGX,OAAO,GAWVE,YAAa,SAASlC,SACnB,GAAIzY,KAAMyY,QAAQzY,IACdsD,IAAMmV,QAAQmC,QAEdC,aAAgBjc,KAAKsI,KAAKwC,KAAKoR,KAAOlc,KAAKsI,KAAKwC,KAAKoR,IAAIC,UAAanc,KAAKsI,KAAKwC,KAAKoR,IAAIC,aACzFC,SAAWH,aAAa3D,QAAQlX,MAAQ,CAExCpB,MAAK8H,IAAIwM,QAAQiF,eAAenY,OAASgb,SAC1Cpc,KAAK8H,IAAIwM,QAAQlT,KAAKib,QAAQ3X,IAAKmV,SAEnC7Z,KAAKsI,KAAKgU,aAAatc,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKuD,KAAK,OAAQD,IAAKmV,UAaxEyC,aAAc,SAAS7T,IAAK/D,IAAKmV,SAE9B,GAAIlV,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASrG,KAAKuM,SAAS9D,UACvD8T,MAAS7N,QAAQC,kBAAkBlG,OAASA,IAC5C6N,KAAO3R,KAAK2R,MAAQ,MACxBuD,SAAUA,WAEV,IAAI2C,QAASxB,MACVza,GAAIkI,IACJ6N,KAAMA,KACN2E,GAAIpB,QAAQ4C,MAGf,IAAI5C,QAAQvD,OAAStW,KAAKua,QAAQmC,KAAM,CACrCF,OAAOhJ,EAAE,QACN+C,MAAO7H,QAAQtM,GAAGua,UAIrB,IAAI3C,MAAOtL,QAAQkO,WAAW,QAC3BrG,MAAO7H,QAAQtM,GAAG8X,OAErBF,MAAK6C,UAAYnY,IAEjB8X,OAAOrJ,KAAK2J,YAAY9C,UAExBwC,QAAOhJ,EAAE,QAAQ1H,EAAEpH,IAGlB1E,MAAKsI,KAAKwN,QAAQ5L,SAAWxF,IAAI2H,MAAM,WACxCmQ,OAAOnF,KAAK7D,EAAE,WACX+C,MAAOvW,KAAKuB,MAAMa,GAAGC,UAId,SAATiU,OAAoBiG,OAASvc,KAAKsI,KAAKwC,KAAKoI,KAAK2C,gBAAgBpN,IAAKiG,QAAQtM,GAAG6U,YAElFuF,OAAOnF,KAAK7D,EAAE,WACX+C,MAAO,sBAITvW,KAAKsI,KAAKwC,KAAKiS,aAAe/c,KAAKsI,KAAK0U,UAAUC,cAEnDT,OAAOnF,KAAK7D,EAAE,UACX+C,MAAO7H,QAAQtM,GAAG8a,aAIxBld,KAAKsI,KAAKwC,KAAK0M,KAAKgF,SAWvBW,UAAW,SAAS/b,IAAKuK,GAAIyR,UACtBpd,KAAKK,OACNL,KAAKsI,KAAKwC,KAAKuS,MAAMnX,IAAIyF,GAAIvK,IAAKgc,WAElCpd,KAAK6E,QAAQiE,YAAY,QAAS1H,IAAK,YAAa,GAAKiC,OAAQmB,WAEjErE,EAAE8H,UAAU+C,IAAI,oBAAqB,SAASlB,GAAIwT,QAC3CA,QAA2B,YAAjBA,OAAO7L,MAClB9F,GAAGxL,EAAEmd,OAAO3Y,MAAMuB,IAAI,IAEtBkX,eAaZG,qBAAsB,SAAS9U,KAC5B,GAAIzI,KAAKsI,KAAKwC,KACX,MAAO9K,MAAKsI,KAAKwC,KAAKoI,KAAKqK,qBAAqB9U,IAGnD,IAAI+U,aAAclY,KAAKuO,MAAMC,aAAahP,QAAQ,kCAC9C2Y,kBAAoBnY,KAAKuO,MAAMC,aAAahP,QAAQ;AAExD,MAAI0Y,aAAY/U,KACNgV,kBAAkBD,YAAY/U,MAGjC,MAWVoN,gBAAiB,SAASpN,IAAKiV,QAAS/R,IACrC,GAAIb,MAAO9K,KAAKsI,KAAKwC,IAGrB,IAFAa,GAAKA,IAAM,cAEN+R,QACF,OAAO,CAGLvd,GAAEwd,QAAQD,WACZA,QAAUvd,EAAEyd,UAAUF,SAGzB,IAAIG,OAAQ,SAASJ,mBAClB,IAAKA,kBACF,MAAO,KAEV,IAAIzM,EACJ,KAAKA,EAAI,EAAGA,EAAI0M,QAAQ7W,OAAQmK,IAC7B,GAAIyM,kBAA4B,SAAEnF,QAAQoF,QAAQ1M,IAAM,EACrD,OAAO,CAGb,QAAO,EAGV,IAAIlG,KAAKoI,KAAKa,aAAatL,MAAQqC,KAAKoI,KAAK8C,mBAAmBlL,KAAKoI,KAAKa,aAAatL,MAAO,CAC3F,GAAIqV,YAAaD,MAAM/S,KAAKoI,KAAK8C,mBAAmBlL,KAAKoI,KAAKa,aAAatL,MAG3E,OAFAkD,IAAGmS,YAEIA,WAWV,MARA3d,GAAE8H,UAAUC,GAAG,eAAgB,SAAS4B,GAAIiU,EAAGC,cACxCD,IAAMtV,MACPkD,GAAGkS,MAAMG,eAET7d,EAAE8H,UAAU4B,IAAIC,OAIf,OASb9J,KAAKsI,KAAKwN,SACP5L,SAAS,EAQTC,OAAQ,SAASwB,IACd,GAAIyK,IAAKC,KACNC,KAAM,QACN9C,EAAE,UACF+C,MAAOvW,KAAKuB,MAAMa,GAAGC,SAGxBrC,MAAKsI,KAAKwC,KAAK0L,OAAOJ,GAAI,WACvBpW,KAAKsI,KAAKwN,QAAQ5L,SAAU,EAE5BlK,KAAKyE,MAAM,mBAEPkH,IACDA,GAAGxC,KAAKiC,OAEX,SAASkI,QACTtT,KAAKyF,KAAK,2BAA4B6N,WAU5C2K,QAAS,SAAStS,IACf,GAAIyK,IAAKC,KACNC,KAAM,QACN9C,EAAE,WACF+C,MAAOvW,KAAKuB,MAAMa,GAAGC,SAGxBrC,MAAKsI,KAAKwC,KAAK0L,OAAOJ,GAAI,WACvBpW,KAAKsI,KAAKwN,QAAQ5L,SAAU,EAE5BlK,KAAKyE,MAAM,oBAEPkH,IACDA,GAAGxC,KAAKiC,OAEX,SAASkI,QACTtT,KAAKyF,KAAK,4BAA6B6N,WAU7C4K,QAAS,SAAS7Y,KACf,GAAIA,OAAQ,EAIZ,MAAIrF,MAAK4F,QAAQM,IAAI,WAAWiE,OACtBnK,KAAKsI,KAAKwN,QAAQ3L,SAGrBnK,KAAKsI,KAAKwN,QAAQmI,YAQ/Bje,KAAKme,gBASLne,KAAKme,aAAaC,WAAa,SAASC,MACrC,GACIrN,GADAhF,GAAK,GAAI,KAAM,KAAM,KAAM,KAG/B,KAAKgF,EAAI,EAAGA,EAAIhF,EAAEnF,UACXwX,KAAO,MADYrN,IAIvBqN,MAAQ,IAGX,OAAQhQ,MAAKiQ,MAAa,GAAPD,MAAa,GAAMrS,EAAEgF,EAAI,IAS/ChR,KAAKme,aAAaI,eAAiB,SAAS9V,KACzC,GAAIrH,KAAMpB,KAAKuM,SAAS9D,KACpBuP,IAAMtJ,QAAQiI,mBAAmBlO,IAErC,OAAKuP,MAAQhY,KAAKsI,KAAKkW,WAAW/G,UAMlCzX,MAAKme,aAAaM,kBAAkBhW,SALjCzI,MAAKme,aAAaO,eAAetd,IAAKpB,KAAKme,aAAaI,iBAgB9Dve,KAAKme,aAAaO,eAAiB,SAAStd,IAAKud,WAAYvB,UAC1D,GAAI7N,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1BqH,IAAM8G,IAAI5K,KAAK,OACfqT,IAAMtJ,QAAQiI,mBAAmBlO,KAEjCmW,eAAiB5e,KAAK6e,OAAOC,cAAcrW,IAAKzI,KAAK6e,OAAOE,iBAC5D1X,UAAYqK,OAAOC,KAAK3R,KAAK6E,QAAQwB,YAAY,MAAOjF,SAEhD,QAAR4W,KAAqC,IAArB3Q,UAAUR,QAA0C,IAA1B+X,eAAe/X,QAE1DmR,IAAM4G,eAAe,GACrBnW,IAAMrH,IAAM,IAAM4W,IAElB2G,WAAWlW,MACHmW,eAAetG,QAAQN,MAAQ,EAEvC2G,WAAWvd,IAAM,IAAM4W,KACf4G,eAAetG,QAAQN,KAAO,GAEtChY,KAAK+I,IAAI9B,OAAOyX,eAAetd,IAAKjB,EAAE2L,EAAE,uCAAwC,SAASnH,MAClE,gBAAhBA,KAAK6N,QACNxS,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAEJ,kBAAbgc,WACRA,YAEqB,aAAhBzY,KAAK6N,QACbmM,WAAWvd,IAAM,IAAMuD,KAAK2Y,SAE/BsB,iBAUT5e,KAAKme,aAAaM,kBAAoB,SAAShW,KAC5C,GAAIrH,KAAMpB,KAAKuM,SAAS9D,KACpB/D,IAAMvE,EAAE,yEACZuE,KAAIua,SAAS,oBAEbjf,KAAK+I,IAAI9B,OAAOiY,YAAY9d,IAAKsD,KAAK,GAGtCA,IAAImL,KAAK,SAASC,QAElBpL,IAAImL,KAAK,iBAAiBsP,OAAO,SAASrV,IACvC,GAAIsV,MAAOtV,GAAGuV,OAAOC,MAAM,EAEtBF,OAILpf,KAAKme,aAAaoB,aAAa9W,IAAK/D,IAAK0a,SAY/Cpf,KAAKme,aAAaoB,aAAe,SAAS9W,IAAK/D,IAAK0a,MACjD,GAAIhe,KAAMpB,KAAKuM,SAAS9D,IAExB,IAA6B,WAAzB2W,KAAKI,iBAAgCxf,KAAKsI,KAAKkW,WAAW/G,OAAS2H,KAAKhE,KAAOpb,KAAK4F,QAAQM,IAAI,cAAcuZ,QAoB/G,MAnBAzf,MAAKyE,MAAM,mCAEX2a,KAAKI,gBAAkB,aAEvBxf,MAAKme,aAAaO,eAAetd,IAAK,SAASqH,KAC5CzI,KAAKme,aAAaoB,aAAa9W,IAAK/D,IAAK0a,OACzC,WACA,GAAIK,SAAUzf,KAAKme,aAAaC,WAAWpe,KAAK4F,QAAQM,IAAI,cAAcuZ,SACtEC,SAAW1f,KAAKme,aAAaC,WAAWgB,KAAKhE,KAEjDpb,MAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,kBAAoB,KAAO4T,SAAW,MAAQD,QAAU,MAGpEzf,KAAK+I,IAAI9B,OAAO+X,YAAY5d,QAItBpB,KAAKsI,KAAKkW,WAAW/G,OAAS/I,QAAQiI,mBAAmBlO,OAElE2W,KAAKI,gBAAkB,SAG1B,IAAItE,YAAa/a,EAAE,QAOnB,IANA+a,WAAW+D,SAAS,mBACpB/D,WAAW+D,SAAS,QAAUG,KAAK9I,KAAK1H,QAAQ,KAAM,MACtDsM,WAAW+D,SAAS,QAAUG,KAAK9I,KAAK1H,QAAQ,gBAAgB,OAEhElK,IAAI0K,QAAQwQ,OAAO1E,YAEf2E,YAAcT,KAAK9I,KAAKjK,MAAM,YAAa,CAE5C,GAAIyT,KAAM3f,EAAE,uBAAuBwX,KAAK,QAASyH,KAAKvH,KACtDiI,KAAInI,KAAK,MAAO3X,KAAK4F,QAAQM,IAAI,QAAU,oBAC3C4Z,IAAIC,SAAS7E,WAEb,IAAI8E,QAAS,GAAIH,WAEjBG,QAAOC,OAAS,WACbH,IAAInI,KAAK,MAAOqI,OAAO1C,SAG1B0C,OAAOE,cAAcd,UAErBlE,YAAWtL,KAAKwP,KAAKvH,KAAO,KAAOuH,KAAKhE,KAAO,SAGlDjb,GAAE,YAAY8e,SAAS,6BAA6BrP,KAAKzP,EAAE2L,EAAE,SAASgE,MAAM,WAEzE9P,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAC5BsD,IAAIyR,QAEJ,IAAI0D,SAAU7Z,KAAK+I,IAAI9B,OAAOyT,aAC3BtZ,IAAKA,IACLkZ,UAAW,MACXY,YACGrD,KAAMuH,KAAKvH,KACXuD,KAAMgE,KAAKhE,KACX9E,KAAM8I,KAAK9I,KACX3R,KAAOya,KAAK9I,KAAKjK,MAAM,YAAeyT,IAAInI,KAAK,OAAS,OAI9D,IAA6B,WAAzByH,KAAKI,gBAA8B,CACpC,GAAIW,MAAOngB,KAAK6e,OAAOuB,SAAS3X,IAAK2W,KAErCe,MAAKE,OAAOnY,GAAG,WAAY,SAASoY,KAAMlF,MACvCpb,KAAK+I,IAAI9B,OAAOsZ,eAAe1G,QAASyG,KAAMlF,MAE1CkF,OAASlF,MACVvB,QAAQgC,iBAKd7b,MAAKsI,KAAKkW,WAAW4B,SAAShB,KAAMvF,WAEvCkG,SAASrb,KAEZvE,EAAE,YAAY8e,SAAS,6BAA6BrP,KAAKzP,EAAE2L,EAAE,UAAUgE,MAAM,WAE1E9P,KAAK+I,IAAI9B,OAAO+X,YAAY5d,OAC5B2e,SAASrb,MASf1E,KAAKme,aAAaqC,YAAc,SAASpf,KACtC,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9B,IAAKmO,KAAsB,IAAfA,IAAI1I,QAAiB7G,KAAKsI,KAAKwC,KAA3C,CAMA,GAFA9K,KAAKyE,MAAM,kCAAoCrD,KAE3CpB,KAAKsI,KAAKkW,WAAW/G,MAGtB,WAFAlI,KAAIM,KAAK,kBAAkBlD,YAAY,gBAK1C,IAAIlE,KAAM8G,IAAI5K,KAAK,OACfqT,IAAMtJ,QAAQiI,mBAAmBlO,KACjCmW,eAAiB5e,KAAK6e,OAAOC,cAAc1d,IAAKpB,KAAK6e,OAAOE,iBAC5D1X,UAAYqK,OAAOC,KAAK3R,KAAK6E,QAAQwB,YAAY,MAAOjF,aAExDwd,gBAAetG,QAAQN,MAAO,GAAe,OAARA,KAA0C,IAA1B4G,eAAe/X,QAAqC,IAArBQ,UAAUR,OAC/F0I,IAAIM,KAAK,kBAAkBlD,YAAY,iBAEvC4C,IAAIM,KAAK,kBAAkBoP,SAAS,mBAI1C9e,EAAE8H,UAAUC,GAAG,kBAAmB,SAAS4B,GAAI1I,KAC5CpB,KAAKme,aAAaqC,YAAYpf,OASjCpB,KAAK+I,KAEF0X,WACI,WAAY,aACZ,0BAA2B,UAC3B,SAAU,iBACV,SAAU,SACV,SAAU,iBACV,SAAU,SACV,SAAU,qBACV,MAAO,eACP,aAAc,kBACd,aAAc,eACd,SAAU,iBACV,QAAS,aACT,OAAQ,eACR,SAAU,SACV,WAAY,WACZ,UAAW,gBACX,mBAAoB,YACpB,iBAAkB,SAClB,UAAW,iBACX,SAAU,eACV,UAAW,UACX,gBAAiB,iBACjB,QAAS,QACT,SAAU,iBAGdC,QAAS,KAETC,cAAe,KAEfC,cACGC,MACGC,WAAY,SACZC,YAAa,UACbC,UAAW,QACXC,UAAW,QACXC,cAAe,YACfC,eAAgB,cAEnBC,SAAYA,SAASC,cAQxBC,cAEGzH,QAAS,SAASpR,IAAK8Y,QACpB,GAAIhS,KAAMvP,KAAK+I,IAAI9B,OAAOua,KAAKxhB,KAAKuM,SAAS9D,KAEzC8Y,SAAiC,gBAAhBA,QAAOvH,MACzBzK,IAAIM,KAAK,mBAAmBnG,IAAI6X,OAAOvH,OAK7C7D,OAAQ,SAAS1N,KACdzI,KAAK+I,IAAI0Y,iBAAiBzhB,KAAKuM,SAAS9D,OAI3CiZ,UAAW,SAASjZ,IAAK8Y,QACtBvhB,KAAK+I,IAAI4Y,kBAAkBlZ,KAEvB8Y,SAAiBA,OAAO1J,MAAd,IACX1X,EAAE,eAAeuJ,IAAI6X,OAAO1J,OAKlCwF,MAAO,SAAS5U,KACbzI,KAAK+I,IAAI6Y,UAAUnZ,MAItBoZ,KAAM,SAASpZ,IAAK8Y,QACjB,GAAIhX,UAAYgX,QAAUA,OAAOhX,SAAYgX,OAAOhX,SAAW,IAE/DvK,MAAKkc,IAAI4F,aAAarZ,IAAK8B,YASjC5E,KAAM,WAEH,KAAIxF,EAAE,oBAAoB0G,OAAS,GAAnC,CAIA7G,KAAK4R,cAAc5R,KAAKuB,MAAM0B,QAAQP,YAEtC1C,KAAK+I,IAAI4X,cAAgB,GAAIze,QAAOkf,SAAST,cAAcjH,OAAS,KAAOhI,OAAOC,KAAK3R,KAAK+I,IAAI6X,aAAaC,MAAMgB,KAAK,KAAO,IAAK,MAEpI1hB,EAAE,QAAQyf,OAAOzf,EAAEH,KAAK+I,IAAIgZ,SAAS7b,IAAI,gBAEzC/F,EAAE8G,QAAQ+a,OAAOhiB,KAAK+I,IAAIkZ,oBAC1B9hB,EAAE,oBAAoB6hB,OAAOhiB,KAAK+I,IAAIkZ,oBAEtC9hB,EAAE,uCAAuC2P,MAAM,WAC5C9P,KAAK+I,IAAImZ,oBAAmB,OAE/B/hB,EAAE,wCAAwC2P,MAAM,WAC7C9P,KAAK+I,IAAImZ,mBAAmB,OAE/B/hB,EAAE,oBAAoB+H,GAAG,QAAS,SAAS4B,IACpC3J,EAAE,oBAAoBwE,KAAK,WAC5B3E,KAAK+I,IAAImZ,mBAAoBpY,GAAGqY,cAAcC,WAAa,EAAK,KAAM,OAI5EpiB,KAAK+I,IAAIsZ,QAAQ,mBAEjB,IAAIC,IAAKtiB,KAAK4F,QAAQM,IAAI,UACtBoc,KAAMA,GAAGnY,SACVnK,KAAK+I,IAAI2X,QAAU,GAAI6B,SACpBC,UAAW,MACXC,QAASH,GAAGG,QACZC,UAAWJ,GAAGI,YAGjB1iB,KAAK+I,IAAI2X,QAAQiC,MAAM3iB,KAAK6E,QAAQwB,YAAY,cAAgB,IAG9DrG,KAAKwL,UAAU,iBACjBxL,KAAK+I,IAAIC,OAAOrD,OAInBxF,EAAEqJ,KAAKxJ,KAAK+I,IAAI0X,SAAU,SAASzP,EAAGtH,KAEnC,GAAIkZ,KAAMlZ,IAAI,GAAGkF,QAAQ,+CAAgD,OACzEgU,KAAM,IAAMA,IAAIpW,MAAM,KAAKqV,KAAK,KAAO,IACvC7hB,KAAK+I,IAAI0X,SAASzP,GAAG,GAAK,GAAI9O,QAAO0gB,IAAK,OAI7C5iB,KAAK+I,IAAI8Z,eAAiB1iB,EAAEH,KAAK+I,IAAIgZ,SAAS7b,IAAI,eAClDlG,KAAK+I,IAAI+Z,cAAgB3iB,EAAEH,KAAK+I,IAAIgZ,SAAS7b,IAAI,kBASpDmc,QAAS,SAAS9T,UACfpO,EAAEoO,UAAU8T,SACT3S,MACG0K,MAAO,KAEV2I,QAAS,WACN,MAAO5iB,GAAEiL,MAAMuM,KAAK,SAAS/I,QAAQ,MAAO,cAUrD4J,OAAQ,SAASpX,KACd,GAAIuD,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAE7C,KAAKuD,KAEF,WADA3E,MAAKyE,MAAM,eAAiBrD,IAI/B,IAAI4hB,IAAKhjB,KAAK+I,IAAIC,OAAOlE,QAAQ1D,KAC7B6hB,GAAKjjB,KAAK+I,IAAI9B,OAAOf,IAAI9E,KACzB8hB,GAAKF,GAAG/T,IAAIgU,IACZE,KAAOhjB,EAAE,wBAA0BiB,IAAM,KAc7C,QAXA4hB,GAAGre,KAAKA,MAGR3E,KAAK+I,IAAIqa,eAAehiB,IAAKpB,KAAKuB,MAAMI,OAAOgD,KAAK6N,SAGpD0Q,GAAGrT,KAAK,oBAAoBZ,IAAIkU,MAAMvT,KAAKjL,KAAKkT,MAAMF,KAAK,QAASxX,EAAE2L,EAAE,OACrE0G,OAAQrS,EAAE2L,EAAE9L,KAAKuB,MAAMI,OAAOgD,KAAK6N,YAI9B7N,KAAK+P,UACV,IAAK,GACFuO,GAAGpT,KAAK,kBAAkBlD,YAAY,qBAAqBgL,KAAK,QAASxX,EAAE2L,EAAE,mCAC7EmX,GAAGpT,KAAK,qCAAqCoP,SAAS,iBACtDgE,GAAGpT,KAAK,iCAAiCD,KAAKzP,EAAE2L,EAAE,iBAClD,MACH,KAAK,GACFmX,GAAGpT,KAAK,kBAAkBoP,SAAS,YAAYtH,KAAK,QAASxX,EAAE2L,EAAE,iCACjEmX,GAAGpT,KAAK,qCAAqClD,YAAY,iBACzDsW,GAAGpT,KAAK,iCAAiCD,KAAKzP,EAAE2L,EAAE,iBAClD,MACH,KAAK,GACFmX,GAAGpT,KAAK,qCAAqCoP,SAAS,iBACtDgE,GAAGpT,KAAK,kBAAkBlD,YAAY,YAAYsS,SAAS,YAAYtH,KAAK,QAASxX,EAAE2L,EAAE,6CACzFmX,GAAGpT,KAAK,iCAAiCD,KAAKzP,EAAE2L,EAAE,kBAKpDnH,KAAK0e,MACNJ,GAAGpT,KAAK,kBAAkBoP,SAAS,cAActH,KAAK,QAASxX,EAAE2L,EAAE,8BAEnEmX,GAAGpT,KAAK,kBAAkBlD,YAAY,cAIrChI,KAAKmT,KAAoB,SAAbnT,KAAKmT,IAClBoL,GAAGjE,SAAS,eAEZiE,GAAGvW,YAAY,cAGlB,IAAI2W,MAAO5U,QAAQC,kBAAkBhK,KAAK8D,KAAO,IACjD6a,OAAQnjB,EAAE2L,EAAE,gBAAkB,KAAO3L,EAAE2L,EAAEnH,KAAKmT,KAAO,KACrDwL,MAAQnjB,EAAE2L,EAAE,UAAY,KAAO3L,EAAE2L,EAAE9L,KAAKuB,MAAMI,OAAOgD,KAAK6N,SAE1DwQ,GAAGnT,KAAK,cAAc8H,KAAK,QAAS2L,MAEpCtjB,KAAK+I,IAAI6D,aAAaoW,GAAG/T,IAAIgU,GAAGpT,KAAK,cAAelL,KAAK8D,IAAK9D,KAAKiV,QAEnEzZ,EAAE8H,UAAUkH,QAAQ,mBAAoB/N,OAW3CwL,aAAc,SAAS2W,GAAI9a,IAAK+a,KAE7B,GAAIC,WAAY,SAASC,KACtB,MAAY,KAARA,KAAqB,MAARA,IAC4B,kBAA/B1jB,MAAK4F,QAAQ+d,kBACrB3jB,MAAK4F,QAAQ+d,cAAcxa,KAAKoa,GAAI9a,SAGvCzI,MAAK+I,IAAI6a,kBAAkBL,GAAG1T,KAAK,gBAAiBpH,MAIvD8a,GAAG1T,KAAK,gBAAgBgU,WAAW,aAEnCN,IAAG1T,KAAK,gBAAgBiU,KACrBC,mBAAoB,OAASL,IAAM,IACnCM,cAAe,WAIrB,IAAmB,mBAARR,KAER,WADAC,WAAU,EAIb,IAAIQ,WAAYjkB,KAAK6E,QAAQwB,YAAY,SAAUmd,IAOnD,IALKxjB,KAAKK,QAAW4jB,YAElBA,UAAY,GAGG,OAAdA,UACDR,UAAUQ,eACN,CACJ,GAAIC,YAAa,SAAS5Q,QACvBtT,KAAKyE,MAAM,QAAS6O,OAEpB,IACIoQ,KADAS,MAAQhkB,EAAEmT,QAAQzD,KAAK,gBAG3B,IAAqB,IAAjBsU,MAAMtd,OACP7G,KAAKyE,MAAM,qBACXif,IAAM,QACF,IAAIS,MAAMtU,KAAK,UAAUhJ,OAAS,EACtC6c,IAAMS,MAAMtU,KAAK,UAAUD,WACvB,CACJ,GAAIkQ,KAAMqE,MAAMtU,KAAK,UAAUD,OAC3B0G,KAAO6N,MAAMtU,KAAK,QAAQD,MAC9B8T,KAAM,QAAUpN,KAAO,WAAawJ,IAIvC4D,IAAMA,IAAI9U,QAAQ,eAAgB,IAElC5O,KAAK6E,QAAQiE,YAAY,SAAU0a,IAAKE,KACxCD,UAAUC,MAGTtG,SAAW,SAAS1Y,KACrB1E,KAAKyF,KAAK,wBAAyBf,KAEnC1E,KAAK6E,QAAQiE,YAAY,SAAU0a,IAAK,GACxCC,UAAU,GAIT/U,SAAQC,kBAAkBlG,OAASiG,QAAQC,kBAAkB3O,KAAKsI,KAAKwC,KAAKrC,KAC7EzI,KAAKsI,KAAKwC,KAAKuS,MAAMnX,IAAIge,WAAY9G,UAErCpd,KAAKsI,KAAKwC,KAAKuS,MAAMnX,IAAIge,WAAYxV,QAAQC,kBAAkBlG,KAAM2U,YAU9E6E,mBAAoB,WAEb9hB,EAAE,uBAAuBqR,QAAUrR,EAAE,oBAAoBqR,QAC1DrR,EAAE,4BAA4BwM,YAAY,kBAE1CxM,EAAE,4BAA4B8e,SAAS,iBACvC9e,EAAE,uBAAuB2jB,IAAI,QAAS,SAU5C5B,mBAAoB,SAASkC,QAE1B,GAAIC,aAAclkB,EAAE,uBAAuBqR,QACvCA,MAAQrR,EAAE,oBAAoBqR,QAC9B+R,GAAKpjB,EAAE,uBACPmkB,MAAQhhB,SAASigB,GAAGO,IAAI,UAAYM,OACpCG,QAAUpkB,EAAE,sBAAsBqR,OAElC6S,aAAc7S,QAId8S,MAAQ,IACTA,MAAQ,GAGPA,MAAQ9S,MAAQ6S,YAAcE,UAC/BD,MAAQ9S,MAAQ6S,YAAcE,SAGjChB,GAAGO,IAAI,QAASQ,MAAQ,QAU3BE,UAAW,SAASpjB,KAGjB,MAFApB,MAAKyF,KAAK,qCAEHzF,KAAK+I,IAAI9B,OAAOf,IAAI9E,MAQ9BqjB,WAAY,SAASlB,IAClB,GAAIlT,MAAOkT,IAAMpjB,EAAEiL,KAEnBiF,MAAKqU,mBAELrU,KAAK4O,SAAS,YAEd,IAAI0F,IAAKtU,KAAKR,KAAK,MACf+U,QAAU,IAEdA,SAAU,WAEPvU,KAAK1D,YAAY,eAEjBxM,EAAE,QAAQ0J,IAAI,QAAS,KAAM+a,UAGhCzkB,EAAEiL,MAAM0E,MAAM,WAcX,MAZKO,MAAKwU,SAAS,eAKhB1kB,EAAE,QAAQ0J,IAAI,QAAS,KAAM+a,UAH7BzkB,EAAE,QAAQ2P,QACV3P,EAAE,QAAQ6K,IAAI,QAAS4Z,UAK1B3d,OAAO8G,aAAa4W,GAAGhgB,KAAK,UAE5B0L,KAAKyU,YAAY,gBAEV,IACPC,WAAW,WACXJ,GAAGhgB,KAAK,QAASsC,OAAO+F,WAAW4X,QAAS,QAC5CI,WAAW,WACX/d,OAAO8G,aAAa4W,GAAGhgB,KAAK,aAOlCsgB,aAAc,WAyCX,QAAShT,cACNiT,MAAMxV,OACN1P,KAAK+I,IAAIoM,OAAO6M,SAEhB7hB,EAAE,gBAAgB0P,KAAK,UAAUV,QAAQ,oBAEzChP,EAAE,gBAAgB0P,KAAK,SAAS7E,IAAI,WAAY,WAC7Cka,MAAMzV,OACNzP,KAAK+I,IAAIoM,OAAO6M,WA/CtB7hB,EAAE8H,UAAU+C,IAAI,uBAAwB,WACrCgC,WAAW,WACiC,IAArC7M,EAAE,kBAAkBuJ,MAAM7C,OAC3B1G,EAAE,kBAAkByQ,QAEpBzQ,EAAE,kBAAkByQ,SAEvB,MAGN5Q,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,YAE3C,IAAIgf,OAAQ/kB,EAAE,gBAAgB0P,KAAK,cACnCqV,OAAMzV,OAENtP,EAAE,gBAAgB0P,KAAK,QAAQvG,OAAO,SAASQ,IAE5CA,GAAGC,iBAEH5J,EAAEiL,MAAMyE,KAAK,kCAAkCV,QAAQ,mBAEvDnP,KAAK4F,QAAQE,UAAUsD,KAAOjJ,EAAEiL,MAChCpL,KAAK4F,QAAQE,UAAU2C,IAAMtI,EAAEiL,MAAMyE,KAAK,kBAC1C7P,KAAK4F,QAAQE,UAAU2F,KAAOtL,EAAEiL,MAAMyE,KAAK,kBAE3C7P,KAAKc,kBAAmB,EACxBd,KAAK4F,QAAQE,UAAUuE,WAAY,EAEnCrK,KAAKgK,aAAa,SAASC,UACpBA,YAAa,EACdgI,cAEA9R,EAAE8H,UAAUC,GAAG,gBAAiB+J,YAEhCjS,KAAKsI,KAAKgC,cAuBtB6a,iBAAkB,SAAS/jB,KACxBpB,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,qBAAsB9E,OAQpEgkB,iBAAkB,SAAShkB,KAGxB,MAAIjB,GAAE,gBAAgB0G,OAAS,MAC5BmG,YAAW,WACRhN,KAAK+I,IAAIqc,iBAAiBhkB,MAC1B,KAKFpB,KAAK6E,QAAQwB,YAAY,QAASjF,KAAKsT,WAAaC,IAAIpT,MAAMqT,uBAC/D5U,MAAKyF,KAAK,6BAIbzF,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,uBAAwB9E,MAChEyW,KAAM,QAKT1X,EAAE,4BAA4BsP,OAC9BtP,EAAE,mCAAmC2P,MAAM,WAExC3P,EAAEiL,MAAMia,WAAW1Y,YAAY,UAC/BxM,EAAEiL,MAAM6T,SAAS,UACjB9e,EAAEiL,MAAMlF,IAAI,GAAGof,OAEfnlB,EAAE,4BAA4BsP,OAC9BtP,EAAE,0BAA4BA,EAAEiL,MAAM3B,QAAU,GAAK,KAAKiG,OAAOG,KAAK,eAAee,UAIxFzQ,EAAE,yCAAyC2P,MAAM,WAC1C9P,KAAKK,SACNL,KAAK8H,IAAIwM,QAAQlT,KAAKiiB,OAAQ,GAGjCrjB,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,SAAS,GAEnDpB,KAAK+I,IAAIoM,OAAOC,MAAM,OAEtBpV,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,SAAS,GACnDpB,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,kCAEZ9L,KAAK+I,IAAIyP,OAAOpX,OAInBjB,EAAE,yCAAyC2P,MAAM,WAC9C,GAAIyV,KAAMplB,EAAE,4BACRqlB,IAAMD,IAAI1V,KAAK,iBAAiBnG,MAChC+b,MAAQF,IAAI1V,KAAK,eAAenG,KAEpC,OAAY,KAAR8b,KAAwB,KAAVC,UAEfF,KAAI1V,KAAK,mBAAmBoP,SAAS,gBAAgByG,MAAM,WACpDvlB,EAAEiL,MAAM1B,MAAM2C,MAAM,OACrBlM,EAAEiL,MAAMuB,YAAY,mBAMzB3M,KAAKK,OACNL,KAAK8H,IAAI6d,WAAWvkB,IAAKokB,IAAKC,OAE9BzlB,KAAK6E,QAAQiE,YAAY,MAAO1H,KAC7BokB,IAAKA,IACLC,MAAOA,QAIbzlB,KAAK+I,IAAIoM,OAAOC,MAAM,WAEtBpV,MAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,sCAKf3L,GAAE,yCAAyC2P,MAAM,WAC9C,GAAIyV,KAAMplB,EAAE,4BACRqlB,IAAMD,IAAI1V,KAAK,gBAAgBnG,KAEnC,OAAY,KAAR8b,QAEDD,KAAI1V,KAAK,gBAAgBoP,SAAS,gBAAgByG,MAAM,WACjDvlB,EAAEiL,MAAM1B,MAAM2C,MAAM,OACrBlM,EAAEiL,MAAMuB,YAAY,mBAMzB3M,KAAKK,OACNL,KAAK8H,IAAI6d,WAAWvkB,IAAKokB,KAEzBxlB,KAAK6E,QAAQiE,YAAY,MAAO1H,KAC7BokB,IAAKA,IACLC,MAAO,OAIbzlB,KAAK+I,IAAIoM,OAAOC,MAAM,WAEtBpV,MAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAW,MACX5V,IAAKvE,EAAE2L,EAAE,oCAUlB8Z,kBAAmB,SAASrS,MACzBvT,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,kBACxC2f,SAAW,IAGd1lB,EAAE,gCAAgCyP,KAAKlB,QAAQC,kBAAkB4E,OAEjEpT,EAAE,2BAA2B2P,MAAM,SAAShG,IACzCA,GAAGyB,kBAEHvL,KAAKsI,KAAK4Q,aAAa3F,MAAM,GAE7BvT,KAAK+I,IAAIoM,OAAOC,UAGnBjV,EAAE,8BAA8B2P,MAAM,SAAShG,IAC5CA,GAAGyB,iBAEH,IAAI5G,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASrG,KAAKuM,SAASgH,MAE3DvT,MAAKsI,KAAK4Q,aAAa3F,MAAM,GAGxB5O,MAAqB,SAAbA,KAAKmT,KACf9X,KAAK+I,IAAI4Y,kBAAkBpO,SAUpCoO,kBAAmB,SAASjW,UACzB1L,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,kBAIvCwF,UACDvL,EAAE,kBAAkBuJ,IAAIgC,UAG3BvL,EAAE,kBAAkBulB,MAAM,WACvB,GAAqC,kBAA1B1lB,MAAK4F,QAAQkgB,SAAyB,CAC9C,GAAIpc,KAAMvJ,EAAEiL,MAAM1B,KAClBvJ,GAAE,kBAAkBiP,QAER,KAAR1F,KACD1J,KAAK4F,QAAQkgB,SAAS3c,KAAKiC,KAAM1B,IAAK,SAASqc,MAC5C5lB,EAAE,kBAAkBiP,QACpBjP,EAAEqJ,KAAKuc,SAAY,SAASC,IAAKC,aAC9B,GAAIC,QAAS/lB,EAAE,WACf+lB,QAAOvO,KAAK,gBAAiBqO,KAC7BE,OAAOvO,KAAK,aAAcsO,aAE1BC,OAAOvO,KAAK,QAASqO,KAAKjG,SAAS,kBAE/BiG,MAAQC,aACTC,OAAO/gB,QAAQwS,KAAK,QAASsO,aAAalG,SAAS,yBAQrE5f,EAAE,kBAAkB+H,GAAG,QAAS,WAC7B,GAAIwB,KAAMvJ,EAAEiL,MAAM1B,MACdwc,OAAS/lB,EAAE,kBAAkB0P,KAAK,yBAA2BnG,IAAM,0BAA4BA,IAAM,KAErGwc,QAAOrf,OAAS,IACjB1G,EAAE,kBAAkBuJ,IAAIwc,OAAOvO,KAAK,kBACpCxX,EAAE,eAAeuJ,IAAIwc,OAAOvO,KAAK,kBAIvCxX,EAAE,qBAAqBmJ,OAAO,SAASQ,IACpCA,GAAGC,gBAEH,IAAI2B,UAAWvL,EAAE,kBAAkBuJ,MAC/BgS,MAAQvb,EAAE,eAAeuJ,KAO7B,OALKgC,UAASW,MAAM,YACjBX,UAAY,IAAMgD,QAAQ8M,iBAAiBxb,KAAK6E,QAAQC,QAAQ,SAI9D4G,UAAaA,SAASW,MAAMrM,KAAKuB,MAAMS,MAAMC,MASlDjC,KAAKsI,KAAK6Q,SAASzN,SAAUgQ,OAE7B1b,KAAK+I,IAAIoM,OAAOC,SAET,IAXJjV,EAAE,kBAAkB8e,SAAS,gBAAgByG,MAAM,WAC5CvlB,EAAEiL,MAAM1B,MAAM2C,MAAMrM,KAAKuB,MAAMS,MAAMC,MACtC9B,EAAEiL,MAAMuB,YAAY,mBAGnB,MAgBhB8U,iBAAkB,SAASrgB,KAExBpB,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,eAAgB9E,KAE3D,IAAIuD,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAE7CjB,GAAE,6BAA6B2P,MAAM,SAAShG,IAC3CA,GAAGyB,kBAECvL,KAAKK,OACNL,KAAKsI,KAAKqT,YAAYhX,KAAK8D,KAG3BzI,KAAK6E,QAAQiE,YAAY,cAAe1H,KACrCqH,IAAK9D,KAAK8D,MAIhBzI,KAAK+I,IAAIoM,OAAOC,WAUtBvJ,cAAe,SAASnH,KACrB1E,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,YAAa,KAAMxB,MAC3DmhB,SAAW,KAUjBM,UAAW,SAASzhB,KACjB1E,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,QAAS,KAAMxB,OAQ7DkT,aAAc,WACX5X,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,mBAEvClG,KAAK4F,QAAQE,UAAUuE,aAAc,GACtClK,EAAE,6BAA6BsP,OAGlCtP,EAAE,4BAA4B2P,MAAM,WACjC9P,KAAK+I,IAAIoM,OAAOC,UAGnBjV,EAAE,6BAA6B2P,MAAM,WAClC9P,KAAKwK,qBAYX4b,kBAAmB,SAAS1hB,IAAK2hB,QAASC,SACvCtmB,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,gBAAiB,KAAMxB,MAC/DmhB,SAAS,IAGRQ,SACDlmB,EAAE,8BAA8B2P,MAAMuW,SAGrCC,SACDnmB,EAAE,8BAA8B2P,MAAMwW,UAS5CC,gBAAiB,WACdvmB,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,gBAE3C/F,EAAE,+BAA+B2P,MAAM,WACpC9P,KAAK+I,IAAIyd,kBASfA,aAAc,WACX,GAAIC,UAAW,2BAEf,IAAI9f,UAAW,CACZ,GAAIR,IACJ,KAAKA,MAAOQ,WACqB,gBAAnBA,WAAUR,OAClBsgB,UAAY,MAAQtgB,IAAM,SAAWQ,UAAUR,KAAO,UAK3DhG,EAAE+Q,IAAM/Q,EAAE+Q,GAAGwV,SACdD,UAAY,kBAAoBtmB,EAAE+Q,GAAGwV,OAAS,UAG7Czf,OAAO0f,SACRF,UAAY,kBAAoBxf,OAAO0f,OAAOC,OAAS,SACvDH,UAAY,iBAAmBxf,OAAO0f,OAAOnV,MAAQ,UAGxDiV,UAAY,wBAA0BzmB,KAAKI,QAAU,SAErDJ,KAAK+I,IAAIoM,OAAOqM,KAAK,yBAA2BiF,SAAW,oBAAsBzmB,KAAK+P,WAAW/P,KAAKgF,KAAO,iBAShH4c,UAAW,SAASnZ,KACjB,GAAIrH,KAAMpB,KAAKuM,SAAS9D,IACxBzI,MAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,QAAS9E,KAEpD,IAAIuD,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAE7C,IAAIuD,KAAM,CAEP,GAAIqM,GAAG+M,EAAG/F,IAAK6O,WACZC,IAAKC,OADmBC,SAAW,IAEtC,KAAKhW,EAAI,EAAGA,EAAIrM,KAAKqT,IAAInR,OAAQmK,IAAK,CAWnC,IAVAgH,IAAMrT,KAAKqT,IAAIhH,GAEf6V,cACAC,IAAM9mB,KAAKsI,KAAKiV,qBAAqBnc,IAAM,IAAM4W,KAErC,OAAR8O,KAAmC,OAAnBA,IAAID,aACrBA,WAAaC,IAAID,YAGpBE,OAAS,GACJhJ,EAAI,EAAGA,EAAI8I,WAAWhgB,OAAQkX,IAChCiJ,SAAWH,WAAW9I,GACI,WAAtBiJ,SAASC,WACK,KAAXF,SACDA,QAAU,OAGbA,QAAUC,SAASnP,KAAO,KAAOmP,SAAS1Q,KAAO,IAIvD,IAAI9D,QAASxS,KAAK6E,QAAQwB,YAAY,MAAOjF,KAAK4W,IAElD7X,GAAE,8BAA8Byf,OAAO,gCAAkCzf,EAAE2L,EAAE,YAAc,cAAgBkM,IAAM,SACjH7X,EAAE,8BAA8Byf,OAAO,eAAiBzf,EAAE2L,EAAE,UAAY,cAAgBib,OAAS,SACjG5mB,EAAE,8BAA8Byf,OAAO,eAAiBzf,EAAE2L,EAAE,UAAY,cAAgB3L,EAAE2L,EAAE9L,KAAKuB,MAAMI,OAAO6Q,SAAW,UAI/H,GAAI0U,WAAY,SAAS3D,GAAI4D,OAC1B,GAAIpE,SAAU,EAoCd,IAlCAQ,GAAG/Z,KAAK,WACL,GAAI4d,MAAOjnB,EAAEiL,MACTic,SAAWlnB,EAAEiL,MAAMic,UAEvBtE,UAAW,MAEX,IAAI9J,MAAO9Y,EAAE2L,EAAEsb,KAAK,GAAGE,QAEV,OAATrO,OACD8J,SAAW,WAAa9J,KAAO,eAGV,UAApBmO,KAAK,GAAGE,UAEDD,SAASxgB,OAAS,GAC1Bkc,SAAW,OACXA,SAAWmE,UAAUG,SAAUF,MAAQ,GACvCpE,SAAW,SACa,KAAhBqE,KAAKxX,SACbmT,SAAW/iB,KAAK+P,WAAWqX,KAAKxX,UAGnCmT,SAAW,QAEG,IAAVoE,OAAehnB,EAAE,8BAA8B0G,OAAS,IACrD1G,EAAE,gDAAgD0G,OAAS,EAC5D1G,EAAE,gDAAgDonB,OAAOxE,SAEzD5iB,EAAE,8BAA8Byf,OAAOmD,SAE1CA,QAAU,MAIZoE,MAAQ,EACT,MAAOpE,UAITyE,aAAe,WAChB,GAA+C,IAA3CrnB,EAAE,8BAA8B0G,OAApC,CAIA1G,EAAE,kBAAkBgW,QAEpB,IAAI4M,SAAU,KACdA,UAAW5iB,EAAE2L,EAAE,mDACfiX,SAAW,OAEX5iB,EAAE,gBAAgByf,OAAOmD,UAG5B/iB,MAAKsI,KAAK6U,UAAU/b,IAAK,SAASkS,QAE/B,GAA+C,IAA3CnT,EAAE,8BAA8B0G,OAApC,CAIA1G,EAAE,kBAAkBgW,QAEpB,IAAIwD,OAAQxZ,EAAEmT,QAAQzD,KAAK,gBAE3B,IAAI8J,MAAM9S,OAAS,EAAG,CACnB,GAAIiZ,KAAMnG,MAAM9J,KAAK,UAAUD,OAC3B0G,KAAOqD,MAAM9J,KAAK,QAAQD,OAC1B8T,IAAM,QAAUpN,KAAO,WAAawJ,GAEpCnG,OAAM9J,KAAK,UAAUhJ,OAAS,IAC/B6c,IAAM/J,MAAM9J,KAAK,UAAUD,QAI9B8T,IAAMA,IAAI9U,QAAQ,eAAgB,GAElC,IAAI6Y,QAAStnB,EAAE,0CACfsnB,QAAO9P,KAAK,MAAO+L,KAEnBvjB,EAAE,mBAAmBonB,OAAOE,QAG/B,MAAuC,KAAnCtnB,EAAEmT,QAAQzD,KAAK,SAAShJ,QAAwD,IAAvC1G,EAAEmT,QAAQzD,KAAK,aAAahJ,QAAiC,IAAjB8S,MAAM9S,WAC5F2gB,oBAIHN,WAAU/mB,EAAEmT,QAAQzD,KAAK,aAAc,KAEvC2X,eAGNE,aAAc,WACX1nB,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,aAEA,UAAvClG,KAAK4F,QAAQM,IAAI,QAAQyhB,WAAyB3nB,KAAK4F,QAAQM,IAAI,QAAQyhB,aAAc,GAC1FxnB,EAAE,sBAAsBynB,SAASnY,OAGpCtP,EAAE,qBAAqBqJ,KAAK,WACzB,GAAI6G,MAAOlQ,EAAEiL,KAEbiF,MAAKR,KAAK,yBAAyBrG,KAAK,WACrC,GAAIyR,IAAK7P,KAAK6P,GAAGzO,MAAM,KACnByM,KAAOgC,GAAG,GACV9U,IAAM8U,GAAG,GACT3E,KAAOlL,KAAKkL,KAEZ3R,KAAO3E,KAAK4F,QAAQM,IAAI+S,KAExBtU,OAA6B,mBAAdA,MAAKwB,OACR,aAATmQ,KACiB,UAAd3R,KAAKwB,MAAoBxB,KAAKwB,QAAS,IACxCiF,KAAKyc,QAAU,WAGlB1nB,EAAEiL,MAAM1B,IAAI/E,KAAKwB,WAM7BhG,EAAE,qBAAqBmJ,OAAO,WAE3B,GAAI+G,MAAOlQ,EAAEiL,MACTzG,OAEJ0L,MAAKR,KAAK,yBAAyBrG,KAAK,WACrC,GAGIE,KAHAuR,GAAK7P,KAAK6P,GAAGzO,MAAM,KACnByM,KAAOgC,GAAG,GACV9U,IAAM8U,GAAG,GAET3E,KAAOlL,KAAKkL,IAGb5M,KADU,aAAT4M,KACKlL,KAAKyc,QAEL1nB,EAAEiL,MAAM1B,MAGZ/E,KAAKsU,QACPtU,KAAKsU,UAGRtU,KAAKsU,MAAM9S,KAAOuD,MAGrBvJ,EAAEqJ,KAAK7E,KAAM,SAASwB,IAAKuD,KACxB1J,KAAK4F,QAAQU,IAAIH,IAAKuD,MAGzB,IAAIiC,IAAK,SAASmc,SAC2B,gBAA/BzX,MAAKsH,KAAK,kBAClB3X,KAAK6Q,KAAKR,KAAKsH,KAAK,kBAAmBmQ,UAG1C9a,WAAW,WACJ8a,QACDzX,KAAKR,KAAK,yBAAyBkY,YAAY,cAAe,eAE9D1X,KAAKR,KAAK,yBAAyBkY,YAAY,cAAe,cAEjE/a,WAAW,WACRqD,KAAKR,KAAK,yBAAyBkY,YAAY,yBAA0B,gBACzE,MACH,KAKN,OAFA/nB,MAAK4F,QAAQoiB,qBAAqB7e,KAAKiC,KAAMzG,KAAMgH,KAE5C,KASbsc,wBAAyB,WAEtBjoB,KAAKiQ,cACFiY,yBAA0B,WACvBloB,KAAK+I,IAAIoM,OAAOC,QAChBpV,KAAKqN,aAAa1H,OAClB3F,KAAK6E,QAAQiE,YAAY,eAAgB,IAE5Cqf,2BAA4B,WACzBnoB,KAAK+I,IAAIoM,OAAOC,QAChBpV,KAAK4F,QAAQyH,cAAe,EAC5BrN,KAAK6E,QAAQiE,YAAY,eAAgB,MAI/C9I,KAAK+I,IAAIqd,kBAAkBjmB,EAAE2L,EAAE,yBAA0B,WACtD9L,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,iBACxC2f,SAAS,IAGZ7lB,KAAKqN,aAAa+a,qBAClB,WACAjoB,EAAE8H,UAAUkH,QAAQ,+BAI1BkZ,kBAAmB,SAASjnB,KACzB,GAAIknB,kBAAmBnoB,EAAE2L,EAAE,kDACxBuU,OAAQjf,KAEXpB,MAAK+I,IAAIqd,kBAAkBkC,iBAAkB,WAE1CtoB,KAAK+I,IAAIoM,OAAOC,QAEhBpV,KAAK6E,QAAQkT,UAAU3W,KACpBqH,IAAKrH,IACLyW,KAAMzW,IACNoR,OAAQ,EACRsF,IAAK,OACLE,SAGHhY,KAAK+I,IAAI9B,OAAOua,KAAKpgB,MAErB,WAEApB,KAAK6E,QAAQsP,eAAe,OAAQ/S,QAI1CmnB,oBAAqB,SAASC,OAAQ9jB,IAAK+jB,QAASvC,OAAQwC,aAAcC,aACvE,GAAIC,IAGDA,KADsB,IAArB/d,UAAUhE,QAAkC,gBAAX2hB,SAAkC,OAAXA,OACnDA,QAGHA,OAAQA,OACR9jB,IAAKA,IACL+jB,SACGI,MAAOH,aACP/c,GAAI8c,SAEPvC,QACG2C,MAAOF,YACPhd,GAAIua,QAKb,IAAI/Q,QAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,oBACrD2f,SAAS,GAGR+C,KAAIJ,OACLrT,OAAOtF,KAAK,MAAMD,KAAKgZ,IAAIJ,QAE3BrT,OAAOtF,KAAK,MAAMJ,OAGjBmZ,IAAIlkB,IACLyQ,OAAOtF,KAAK,KAAKD,KAAKgZ,IAAIlkB,KAE1ByQ,OAAOtF,KAAK,KAAKJ,OAGhBmZ,IAAIH,SAAWG,IAAIH,QAAQI,OAC5B1T,OAAOtF,KAAK,gBAAgBD,KAAKgZ,IAAIH,QAAQI,OAG5CD,IAAIH,SAAWG,IAAI1C,OAAO2C,OAC3B1T,OAAOtF,KAAK,gBAAgBD,KAAKgZ,IAAI1C,OAAO2C,OAG3CD,IAAIH,SAAWG,IAAIH,QAAQ9c,IAC5BwJ,OAAOtF,KAAK,gBAAgBC,MAAM8Y,IAAIH,QAAQ9c,IAG7Cid,IAAIH,SAAWG,IAAI1C,OAAOva,IAC3BwJ,OAAOtF,KAAK,gBAAgBC,MAAM8Y,IAAI1C,OAAOva,KAWnDmd,iBAAkB,SAASrN,QAASzB,KAAMzG,MACvC,GAAI4B,QAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,gBAExDiP,QAAOtF,KAAK,MAAMD,KAAK6L,SACvBtG,OAAOtF,KAAK,aAAaD,KAAKoK,MAE1BzG,KACD4B,OAAOtF,KAAK,cAAcD,KAAKzP,EAAE2L,EAAE,QAAU,IAAMyH,MAEnD4B,OAAOtF,KAAK,cAAcJ,QAWhCsZ,eAAgB,SAAS7R,KAAM8R,UAExBA,YAAa,GACdhpB,KAAK6E,QAAQiE,YAAY,WAAYoO,MAGpClX,KAAKK,QACNL,KAAKsI,KAAK4N,WAGb/V,EAAE,yBAAyByP,KAAKzP,EAAE,uCAAyC+W,MAAMtH,QAEjF5P,KAAK+I,IAAIqa,eAAe,MAAOlM,OAUlCkM,eAAgB,SAAShiB,IAAK8V,MAEf,QAAR9V,MACY,QAAT8V,MACD/W,EAAE,qCAAqC8e,SAAS,iBAChDjf,KAAKqN,aAAa4b,WAAU,KAE5B9oB,EAAE,qCAAqCwM,YAAY,iBAE9C3M,KAAK4F,QAAQM,IAAI,qBACnBlG,KAAKqN,aAAa6b,aAAY,KAKvC/oB,EAAE,cAAgBiB,IAAM,MAAMoI,KAAK,WAChC,GAAI+Z,IAAKpjB,EAAEiL,KAEXmY,IAAG5L,KAAK,cAAeT,MAEnBqM,GAAG1T,KAAK,gBAAgBhJ,OAAS,IAClC0c,GAAKA,GAAG1T,KAAK,iBAGhB0T,GAAG5W,YAAY,QAAU3M,KAAKuB,MAAMI,OAAOkgB,KAAK,WAAW5C,SAAS,QAAU/H,SAUpFiS,UAAW,SAAS/nB,KACjB,GAAIgoB,SAAUppB,KAAK6E,QAAQwB,YAAY,SAAUjF,SAC7CioB,MAASD,SAAWA,QAAQE,QAAW,CAC3CD,OAASA,SAAU,EAAQ,EAAIA,MAAQ,EAGvCD,QAAQE,OAASD,MACjBrpB,KAAK6E,QAAQiE,YAAY,SAAU1H,IAAKgoB,QAGxC,IAAIG,OAAQvpB,KAAK6E,QAAQwB,YAAY,cAAgB,CACrDkjB,SACAvpB,KAAK6E,QAAQiE,YAAY,YAAaygB,OAElCvpB,KAAK+I,IAAI2X,SACV1gB,KAAK+I,IAAI2X,QAAQiC,MAAM4G,OAG1BvpB,KAAK+I,IAAIygB,WAAWpoB,IAAKioB,QAU5BG,WAAY,SAASpoB,IAAKioB,OACvB,GAAI9Z,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9B,IAAqB,gBAAVioB,OAAoB,CAE5B,GAAID,SAAUppB,KAAK6E,QAAQwB,YAAY,SAAUjF,IACjDioB,OAASD,SAAWA,QAAQE,QAAW,EACvCD,MAASA,SAAU,EAAQ,EAAIA,MAGlC,GAAI9F,IAAKvjB,KAAK+I,IAAIC,OAAOlE,QAAQ1D,KAAK6N,IAAIM,IAE1CgU,IAAGtE,SAAS,kBACZsE,GAAG1T,KAAK,gBAAgBD,KAAKyZ,QAShCI,QAAS,SAASroB,KACf,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1BgoB,QAAUppB,KAAK6E,QAAQwB,YAAY,SAAUjF,KAC7CioB,MAASD,SAAWA,QAAQE,QAAW,CAC3CD,OAASA,SAAU,EAAQ,EAAIA,KAE/B,IAAI9F,IAAKvjB,KAAK+I,IAAIC,OAAOlE,QAAQ1D,KAAK6N,IAAIM,IAK1C,IAJAgU,GAAG5W,YAAY,kBACf4W,GAAG1T,KAAK,gBAAgBD,KAAK,GAGzByZ,MAAQ,EAAG,CAEZ,GAAIE,OAAQvpB,KAAK6E,QAAQwB,YAAY,cAAgB,CACrDkjB,QAASF,MACTrpB,KAAK6E,QAAQiE,YAAY,YAAaygB,OAElCvpB,KAAK+I,IAAI2X,SACV1gB,KAAK+I,IAAI2X,QAAQiC,MAAM4G,OAG1BvpB,KAAK6E,QAAQkW,eAAe,SAAU3Z,IAAK,SAAU,KAU3DsoB,gBAAiB,SAASC,WACvBA,UAA0BxpB,EAAd,UAAgBwpB,UAAe,QAE3CA,UAAU9Z,KAAK,oBAAoBrG,KAAK,WAErC,GAGIogB,QAHAC,QAAU1pB,EAAEiL,MACZ0e,KAAOD,QAAQlS,KAAK,QAAQ/I,QAAQ,SAAU,IAC9CnG,IAAMqhB,KAAKtd,MAAM,KAAK,GACd+U,SAEZ,IAAIuI,KAAKxR,QAAQ,KAAO,EACrBsR,OAAS,cACL,CACJ,GAAIG,OAAQD,KAAKE,UAAUF,KAAKxR,QAAQ,KAAO,GAAG9L,MAAM,IACxDod,QAASG,MAAM,EAEf,IAAI/Y,GAAG7K,IAAKI,KACZ,KAAKyK,EAAI,EAAGA,EAAI+Y,MAAMljB,OAAQmK,IAC3B7K,IAAM4jB,MAAM/Y,GAAGxE,MAAM,KAAK,GAC1BjG,MAASwjB,MAAM/Y,GAAGsH,QAAQ,KAAO,EAAKyR,MAAM/Y,GAAGgZ,UAAUD,MAAM/Y,GAAGsH,QAAQ,KAAO,GAAK,KAEtFiJ,OAAO0I,mBAAmB9jB,MAAQ8jB,mBAAmB1jB,OAId,kBAAlCvG,MAAK+I,IAAIuY,aAAasI,UAC9BC,QAAQ5K,SAAS,iCAAmC2K,QAEpDC,QAAQhgB,IAAI,SAASiG,MAAM,SAAShG,IAKjC,MAJAA,IAAGyB,kBAEHvL,KAAK+I,IAAIuY,aAAasI,QAAQzgB,KAAKnJ,KAAMyI,IAAK8Y,SAEvC,QAMnB2I,YAAa,SAASP,WACnBA,UAA0BxpB,EAAd,UAAgBwpB,UAAe,QAE3CA,UAAU9Z,KAAK,uCAAuCrG,KAAK,WACxD,GAAI2Z,MAAOhjB,EAAE,kBAAkB8e,SAAS,aACpC6K,KAAO3pB,EAAEiL,MAAMuM,KAAK,QAAQ/I,QAAQ,oBAAqB,IAAIub,MAEjE,IAAa,KAATL,MAAeA,OAASpb,QAAQC,kBAAkB3O,KAAK6E,QAAQC,QAAQ,QAAS,CACjF,GAAI1D,KAAMpB,KAAKuM,SAASud,MACpBzZ,KAAOlQ,EAAEiL,MACTY,EAAIqE,KAAK+Z,MAERpe,GAAE6Y,SAAS,eACb7Y,EAAImX,KAAKhe,QAAQwS,KAAK,WAAYvW,KAElCiP,KAAKkX,OAAOvb,IAGfA,EAAEnC,IAAI,SAEF7J,KAAK6E,QAAQwB,YAAY,QAASjF,MACnCpB,KAAK+I,IAAIyP,OAAOpX,KAChB4K,EAAE8D,MAAM,WAGL,MAFA9P,MAAK+I,IAAI9B,OAAOua,KAAKpgB,MAEd,KAGV4K,EAAE8D,MAAM,WAGL,MAFA9P,MAAK+I,IAAI4Y,kBAAkBmI,OAEpB,QAOtBlG,kBAAmB,SAASL,GAAI8G,KAAMza,MACnCA,KAAOA,MAAQya,IAEf,IAAIzkB,SAAU5F,KAAK4F,QAAQM,IAAI,yBAC3BmL,KAAOrR,KAAKmR,QAAQkZ,MAEpBC,IAAMjc,KAAKkc,IAAIlZ,MAAQ,IACvBmZ,WAAa5kB,QAAQ4kB,YAAc,GACnCC,UAAY7kB,QAAQ6kB,WAAa,EAErClH,IAAGO,KACA4G,mBAAoB,OAASJ,IAAM,KAAOE,WAAa,MAAQC,UAAY,KAC3EE,MAAS,OACTC,cAAe,OACfC,aAAc,SACdC,cAAevH,GAAGqD,SAAW,KAC7BmE,YAA2B,GAAdxH,GAAGqD,SAAiB,OAGhB,gBAAThX,OAAqBA,KAAK/I,OAAS,GAC3C0c,GAAG3T,KAAKA,KAAK,GAAGob,gBAUtBC,iBAAkB,SAAS7Z,KACxBA,IAAMA,IAAIxC,QAAQ5O,KAAK+I,IAAI4X,cAAe,SAASuK,WAChD,KAAyB,mBAAdA,YAA2C,KAAdA,YAAuBA,YAAalrB,MAAK+I,IAAI6X,aAAaQ,UAAe8J,YAAalrB,MAAK+I,IAAI6X,aAAaC,OACjJ,MAAOqK,UAGV,IAAIxH,KAAKyH,QAELnrB,MAAK+I,IAAI6X,aAAaC,KAAKqK,YAC5BC,SAAWnrB,KAAK+I,IAAI6X,aAAaC,KAAKqK,WAAWlrB,KAAK+I,IAAI6X,aAAaC,KAAKqK,WAAWrkB,OAAS,GAAG+H,QAAQ,cAAe,MAC1H8U,IAAM1jB,KAAK4F,QAAQwlB,KAAO,iBAAmBD,SAAW,QAChDnrB,KAAK+I,IAAI6X,aAAaQ,SAAS8J,aACvCC,SAAWnrB,KAAK+I,IAAI6X,aAAaQ,SAAS8J,WAAWG,MACrD3H,IAAM1jB,KAAK4F,QAAQwlB,KAAO,4BAA8BD,SAAW,OAGtE,IAAI5F,KAAMplB,EAAE,QAMZ,OAJAolB,KAAItG,SAAS,iBACbsG,IAAIzB,IAAI,mBAAoB,OAASJ,IAAM,KAC3C6B,IAAI5N,KAAK,QAASuT,WAEX3F,IAAItM,KAAK,cAGnB,IAAI/I,KAAM/P,EAAE,QAAUiR,IAAM,SAM5B,OAL0C,KAAtClB,IAAIL,KAAK,kBAAkBhJ,QAAuD,IAAvCqJ,IAAIN,OAAOhB,QAAQ,IAAK,IAAI/H,QAAyC,IAAzBqJ,IAAIL,KAAK,KAAKhJ,SACtGqJ,IAAIL,KAAK,kBAAkBoP,SAAS,cACpC7N,IAAMlB,IAAI+I,KAAK,cAGX7H,KAGVvE,QAAS,WACN7M,KAAK+O,gBACL/O,KAAKqP,iBACLrP,KAAKa,kBAAmB,EAExBV,EAAE8H,UAAUkH,QAAQ,yBACpBnP,KAAK4R,cAAc5R,KAAKuB,MAAM0B,QAAQD,SAS5ChD,KAAK+I,IAAIC,QAGNyO,OAAO,EAGPvI,QAAQ,EAQRvJ,KAAM,WACHxF,EAAEH,KAAK4F,QAAQ0lB,aAAe,UAAU1L,OAAOzf,EAAEH,KAAK+I,IAAIgZ,SAAS7b,IAAI,YAEnElG,KAAK4F,QAAQM,IAAI,iBAClB/F,EAAE,gCAAgCyP,KAAKzP,EAAE2L,EAAE,iBAC3C3L,EAAE,mBAAmB8e,SAAS,qBAGjC9e,EAAE,6BAA6B2P,MAAM,WAClC9P,KAAK+I,IAAI2e,iBAGZvnB,EAAE,gCAAgC2P,MAAM,WACrC,GAAIyb,cAAevrB,KAAK4F,QAAQM,IAAI,cAEhCqlB,aACDprB,EAAE,mBAAmB8e,SAAS,oBAE9B9e,EAAE,mBAAmBwM,YAAY,oBAGpCxM,EAAEiL,MAAMwE,KAAK2b,YAAcprB,EAAE2L,EAAE,gBAAkB3L,EAAE2L,EAAE,iBAErD9L,KAAK4F,QAAQU,IAAI,cAAeilB,eAG/BvrB,KAAK4F,QAAQM,IAAI,qBAClBlG,KAAKqN,aAAa4b,YAGrB9oB,EAAE,qCAAqC2P,MAAM;AAE1C,GAA6C,QAAzC9P,KAAK6E,QAAQwB,YAAY,YAA7B,CAKA,GAAImlB,OAAQxrB,KAAK4F,QAAQM,IAAI,mBAEzBslB,MACDxrB,KAAKqN,aAAa4b,YAElBjpB,KAAKqN,aAAa6b,iBAIxB/oB,EAAE,+BAA+B2P,MAAM,WACpC9P,KAAK+I,IAAI4Y,sBAGZxhB,EAAE,iCAAiC2P,MAAM,WACtC7I,OAAOua,KAAKxhB,KAAK4F,QAAQ6lB,WAAY,gBAGxCtrB,EAAE,4BAA4B2P,MAAM,WACjC9P,KAAK+I,IAAIwd,oBAGZpmB,EAAE,sBAAsB2P,MAAM,WAC3B9P,KAAK+I,IAAIC,OAAO0iB,WAGnBvrB,EAAE,qBAAqB2P,MAAM,WAC1B,GAAIO,MAAOlQ,EAAEiL,MACT8L,KAAO7G,KAAK1L,KAAK,OAER,aAATuS,KACDlX,KAAKsI,KAAKgD,QAAO,GAEjBtL,KAAK+I,IAAIggB,eAAe7R,QAI9B/W,EAAE,mBAAmBwrB,YAClBC,SAAU,MACVhF,OAASzmB,EAAE,gBAAgBymB,SAAW,GAAM,KAC5CpV,MAAOrR,EAAE,mBAAmBqR,QAAU,KACtCmZ,MAAO,OACPkB,QAAS,QAGZ1rB,EAAE,qCAAqCqJ,KAAK,WACzCxJ,KAAK+I,IAAI0b,WAAWtb,KAAKhJ,EAAEiL,QAG9B,IAAI0gB,aAAc9rB,KAAK6E,QAAQwB,YAAY,YAAcrG,KAAK4F,QAAQM,IAAI,aAAa6lB,eAAiB,SAAW,QAEnH5rB,GAAE,gBAAgB8e,SAAS,cAAgB6M,aAC3C3rB,EAAE,oBAAoB8e,SAAS,eAAiB6M,YAEhD,IAAI5U,MAAOlX,KAAK6E,QAAQwB,YAAY,aAAe,QACnDlG,GAAE,yBAAyByP,KAAKzP,EAAE,wBAA0B+W,MAAMtH,QAClE5P,KAAK+I,IAAIqa,eAAe,MAAOlM,MAE/BlX,KAAK+I,IAAIsZ,QAAQ,gBAEjBriB,KAAK0Y,OAAOP,OAEZnY,KAAK+I,IAAIC,OAAOyO,OAAQ,EACxBtX,EAAE8H,UAAUkH,QAAQ,sBAQvBF,IAAK,SAAS7N,KACX,GAAIuD,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,KACzC4qB,IAAMhsB,KAAK+I,IAAI+Z,cAAc3d,QAAQwS,KAAK,WAAYvW,KAAKuW,KAAK,YAAahT,KAAK2R,MAAQ,OAG9FnW,GAAE,oBAAoBgW,SAEtBnW,KAAK+I,IAAIC,OAAOijB,OAAO7qB,IAAK4qB,KAE5BA,IAAIlc,MAAM,WACP9P,KAAK+I,IAAI9B,OAAOua,KAAKpgB,OAGxB4qB,IAAInc,KAAK,aAAaC,MAAM,WAGzB,MAFA9P,MAAK+I,IAAI9B,OAAOua,KAAKpgB,MAEd,IAGV4qB,IAAInc,KAAK,gBAAgBC,MAAM,WAE5B,MADA9P,MAAK+I,IAAIC,OAAOkjB,OAAO9qB,MAChB,IAGQ,cAAduD,KAAK2R,MACN0V,IAAInc,KAAK,gBAAgBC,MAAM,WAE5B,MADA9P,MAAK+I,IAAI0Y,iBAAiBrgB,MACnB,GAIb,IAAI+qB,aAAc,WAaf,MAZAH,KAAI7c,QAAQ,cAEZhP,EAAE,QAAQ2P,QAELkc,IAAInc,KAAK,cAAcgV,SAAS,eAClCmH,IAAInc,KAAK,cAAcoP,SAAS,aAEhC9e,EAAE,QAAQ6K,IAAI,QAAS,WACpBghB,IAAInc,KAAK,cAAclD,YAAY,iBAIlC,EAGVqf,KAAInc,KAAK,cAAcC,MAAMqc,aAE7BH,IAAInc,KAAK,eAAeC,MAAM,WAG3B,MAFA9P,MAAK+I,IAAI6Y,UAAUjd,KAAK8D,MAEjB,IAGVzI,KAAK+I,IAAIyP,OAAOpX,KAGhBjB,EAAE,mBAAmBwrB,YAClBS,SAAU,OAKb,KAFA,GAAIC,SAAUrsB,KAAK6E,QAAQwB,YAAY,UAAWjF,SAC9C4P,EAAI,EACDqb,QAAQxlB,OAASmK,GAAG,CACxB,GAAI6I,SAAU,GAAI7Z,MAAKua,QAAQ8R,QAAQrb,GACvC,IAAI6I,QAAQS,YAActa,KAAKua,QAAQoF,IAAK,CACzCxf,EAAE,cAAgBiB,IAAM,MAAMyO,KAAK,4BAA4BzK,KAAKyU,QAAQnV,IAC5E,OAEHsM,IAGH7Q,EAAE8H,UAAUkH,QAAQ,mBAAoB/N,IAAKuD,KAAMqnB,OAGtDlnB,QAAS,SAAS1D,KACf,MAAOjB,GAAE,kCAAoCiB,IAAM,OAWtD6qB,OAAQ,SAAS7qB,IAAKkrB,IAEnB,GAAI3nB,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,KACzCmrB,aAAepsB,EAAE,wBACjB8rB,QAAS,CAERtnB,MAAKkT,OACPlT,KAAKkT,KAAOzW,IAIf,IAAIoR,QAAuB,SAAb7N,KAAKmT,IAAkBnT,KAAK6N,QAAS,CAEnD+Z,cAAa/iB,KAAK,WAEf,GAAIgjB,YAAsC,SAAxBrsB,EAAEiL,MAAMzG,KAAK,OAAqBxE,EAAEiL,MAAMzG,KAAK,WAAY,CAE7E,IAAKxE,EAAEiL,MAAMzG,KAAK,QAAQkK,cAAgBlK,KAAKkT,KAAKhJ,eAAiB2d,aAAeha,QAAWga,WAAaha,OAKzG,MAHArS,GAAEiL,MAAMmc,OAAO+E,IACfL,QAAS,GAEF,IAIRA,QACFK,GAAGvM,SAAS,oBAUlBtH,QAAS,SAASrX,KACfpB,KAAK+I,IAAIC,OAAOijB,OAAO7qB,IAAKpB,KAAK+I,IAAIC,OAAOmN,OAAO/U,OAStD+U,OAAQ,SAAS/U,KACd,MAAOpB,MAAK+I,IAAIC,OAAOlE,QAAQ1D,KAAKqrB,UAQvCrU,MAAO,SAAShX,KACTpB,KAAKK,SACNL,KAAK6E,QAAQsP,eAAe,QAAS/S,KACrCpB,KAAK6E,QAAQsP,eAAe,MAAO/S,KACnCpB,KAAK6E,QAAQsP,eAAe,eAAiB/S,KAC7CpB,KAAK6E,QAAQsP,eAAe,OAAQ/S,KACpCpB,KAAK6E,QAAQsP,eAAe,SAAU/S,KACtCpB,KAAK6E,QAAQ+R,kBAAkB,YAAaxV,KAC5CpB,KAAK6E,QAAQ+R,kBAAkB,aAAcxV,MAGhDpB,KAAK+I,IAAI9B,OAAOylB,OAAOtrB,KACvBpB,KAAK+I,IAAIC,OAAOmN,OAAO/U,MAS1B8qB,OAAQ,SAAS9qB,KACd,GAAIyW,MAAO7X,KAAK+I,IAAIC,OAAOlE,QAAQ1D,KAAKyO,KAAK,cACzCjK,QAAU5F,KAAK+I,IAAIC,OAAOlE,QAAQ1D,KAAKyO,KAAK,6BAC5C8c,MAAQxsB,EAAE,mCAGdA,GAAE,QAAQ2P,QAEVlK,QAAQ6J,OACRoI,KAAOA,KAAK+U,YAAYD,OAExBA,MAAMjjB,IAAImO,KAAKjI,QACf+c,MAAME,SAAS,SAAS/iB,IACJ,KAAbA,GAAGgjB,QAIPlnB,QAAQke,IAAI,UAAW,IACvB6I,MAAMC,YAAY/U,MAClB7X,KAAK+I,IAAIC,OAAO+jB,QAAQ3rB,IAAKjB,EAAEiL,MAAM1B,OAErCvJ,EAAE,QAAQ0J,IAAI,YAIjB8iB,MAAM7c,MAAM,WACT,OAAO,IAGV3P,EAAE,QAAQ6K,IAAI,QAAS,WACpBpF,QAAQke,IAAI,UAAW,IACvB6I,MAAMC,YAAY/U,MAClB7X,KAAK+I,IAAIC,OAAO+jB,QAAQ3rB,IAAKurB,MAAMjjB,UAWzCqjB,QAAS,SAAS3rB,IAAK4rB,SACpB,GAAIhtB,KAAKK,OAAQ,CACd,GAAI4E,GAAIjF,KAAK6E,QAAQwB,YAAY,QAASjF,QAE1C,IAAe,SAAX6D,EAAEqR,KAAiB,CACpB,GAAIF,IAAKC,KACNC,KAAM,QACN9C,EAAE,SACF+C,MAAO,qBACP/C,EAAE,QACF/K,IAAKiG,QAAQC,kBAAkB1J,EAAEwD,KACjCoP,KAAMmV,SAEThtB,MAAKsI,KAAKwC,KAAK0L,OAAOJ,QACH,cAAXnR,EAAEqR,MACVtW,KAAKsI,KAAK4P,UAAUjJ,IAAI7N,IAAK4rB,QAAS/nB,EAAEgoB,SAAUhoB,EAAEioB,UAI1DltB,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,OAAQ4rB,SAClDhtB,KAAK+I,IAAIyP,OAAOpX,MAQnBsqB,OAAQ,SAASja,OACd,GAAI0b,UAEAnkB,OAAS7I,EAAE,gBACXitB,GAAKjtB,EAAE,mBAuBX,OArBKsR,SACFA,MAASzR,KAAK6E,QAAQwB,YAAY,YAAcrG,KAAKuB,MAAMgB,OAAUvC,KAAKuB,MAAMiB,MAAQxC,KAAKuB,MAAMgB,QAGxF,UAAVkP,OAAqBzR,KAAKuR,sBAC3BvR,KAAK+I,IAAI9B,OAAOwI,OAGnBzP,KAAK6E,QAAQiE,YAAY,SAAU2I,OAEnCzI,OAAO2D,YAAY,sCAAsCsS,SAAS,cAAgBxN,OAClF2b,GAAGzgB,YAAY,wCAAwCsS,SAAS,eAAiBxN,OAEjF0b,SAA+D,IAApDE,WAAWrkB,OAAO8a,IAAI,uBAAyB,GAE1D9W,WAAW,WACRhN,KAAK+I,IAAIkZ,sBACTkL,UAEHhtB,EAAE8H,UAAUkH,QAAQ,sBAAuBsC,MAAO0b,WAE3CA,UAMVlkB,aAAc,WACX9I,EAAE,gBAAgB8e,SAAS,qBAE3B9e,EAAE,mBAAmBiP,QAErBjP,EAAE,gBAAgByf,OAAOzf,EAAE,MAAQA,EAAE2L,EAAE,iBAAmB,QAAQ8T,OAAO,OAASzf,EAAE2L,EAAE,WAAa,QAAQgE,MAAM,WAC9G9P,KAAK+I,IAAIkc,mBASf7V,MAAO,WACJ,GAAIQ,MAAOzP,EAAE,MAAQA,EAAE2L,EAAE,6BAA+B,QACpDwhB,KAAO1d,KAAKC,KAAK,IAErByd,MAAKxd,MAAM,WACR9P,KAAK+I,IAAI4Y,sBAEZ/R,KAAKgQ,OAAO0N,MACZ1d,KAAKgQ,OAAO,KAEZzf,EAAE,gBAAgB+E,QAAQ0K,QAShC5P,KAAK+I,IAAIoM,QAUNqM,KAAM,SAAS7c,KAAM4oB,GAElB,GAAI3E,KAAMzoB,EAAE8F,QACT4R,KAAM,IACN0V,GAEC7J,IAAMvjB,EAAE,mBAAqByoB,IAAI/Q,KAAO,yBAAyB+H,OAAOjb,KAuD5E,OArDAxE,GAAEqtB,cAAchM,MACbiM,OACG/J,IAAKA,KAERpN,KAAM,SACNoX,MAAO9E,IAAI/C,QACX8H,WACGC,YAAa,WACVztB,EAAE8H,UAAUkH,QAAQ,wBAEvB0e,WAAY,WACT1tB,EAAE8H,UAAUkH,QAAQ,sBAEvBqS,KAAM,WACHrhB,EAAE,4BAA4B2P,MAAM,SAAShG,IAC1CA,GAAGC,iBAEH/J,KAAK+I,IAAIoM,OAAOC,UAGnBjV,EAAE,qBAAqBqJ,KAAK,WACzB,GAAIJ,MAAOjJ,EAAEiL,KAEbhC,MAAKyG,KAAK,kCAAkCrG,KAAK,WAC9C,GAAIskB,KAAM3tB,EAAEiL,KAEZ0iB,KAAI5lB,GAAG,kBAAmB,WAClB4lB,IAAI7U,KAAK,cACX6U,IAAI7U,KAAK,YAAY,GAErB6U,IAAInpB,KAAK,aAAcmpB,IAAIle,QAE3Bke,IAAIle,KAAKke,IAAInW,KAAK,8BAIxBmW,IAAI5lB,GAAG,mBAAoB,WACpB4lB,IAAI7U,KAAK,cACV6U,IAAI7U,KAAK,YAAY,GAErB6U,IAAIle,KAAKke,IAAInpB,KAAK,sBAM9B3E,KAAK+I,IAAIoM,OAAO6M,SAEhB7hB,EAAE8H,UAAUkH,QAAQ,4BAKtBhP,EAAE,iBASZiV,MAAO,SAASyC,MACb7X,KAAKyE,MAAM,gBAES,gBAAToT,OAAqBA,KAAKhR,OAAS,IAAM7G,KAAKwL,UAAU,0BAA4BqM,KAAO,MAItG1X,EAAEqtB,cAAcpY,SAQnB4M,OAAQ,cAUXhiB,KAAK+I,IAAI9B,QAQNtB,KAAM,SAASvE,KA6HZ,QAAS2sB,kBACD5tB,EAAEiL,MAAMzG,KAAK,mBACfxE,EAAEiL,MAAMzG,KAAK,iBAAkBxE,EAAEiL,MAAM4iB,eAGtC7tB,EAAEiL,MAAM4iB,cAAiB5iB,KAAK6iB,aAAe,GAAM9tB,EAAEiL,MAAM1B,OAC5DvJ,EAAEiL,MAAMwb,OAAwC,IAAjCzmB,EAAEiL,MAAMzG,KAAK,mBAlIlC,GAAI3E,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyF,OAAS,EACnC,MAAO7G,MAAK+I,IAAI9B,OAAOf,IAAI9E,IAG9B,IAAImO,KAAMvP,KAAK+I,IAAI8Z,eAAe1d,QAAQwS,KAAK,WAAYvW,KAAK2e,SAAS,yBACrEpb,KAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAG7CmO,KAAI5K,KAAK,MAAOA,KAAK8D,IAKrB,IAAI0jB,aAAc,WAaf,MAZA5c,KAAIJ,QAAQ,cAEZhP,EAAE,QAAQ2P,QAELP,IAAIM,KAAK,cAAcgV,SAAS,eAClCtV,IAAIM,KAAK,cAAcoP,SAAS,aAEhC9e,EAAE,QAAQ6K,IAAI,QAAS,WACpBuE,IAAIM,KAAK,cAAclD,YAAY,iBAIlC,EAGV4C,KAAIM,KAAK,cAAcC,MAAMqc,aAC7B5c,IAAIM,KAAK,cAAcC,MAAM,WAC1B3P,EAAE,QAAQ2P,UAGbP,IAAIM,KAAK,sBAAsBC,MAAM,WAClC9P,KAAK+I,IAAIqc,iBAAiBhkB,OAG7BmO,IAAIM,KAAK,sBAAsBC,MAAM,WAClC9P,KAAK+I,IAAIoc,iBAAiB/jB,OAG7BmO,IAAIM,KAAK,kBAAkBC,MAAM,WAC9B9P,KAAK8H,IAAIomB,eAAe9sB,OAG3BmO,IAAIM,KAAK,aAAaC,MAAM,WACzB9P,KAAK+I,IAAI9B,OAAOykB,OAAOtqB,OAG1BmO,IAAIM,KAAK,eAAeC,MAAM,WAC3B9P,KAAK+I,IAAI9B,OAAOmO,MAAMhU,OAGzBmO,IAAIM,KAAK,eAAeC,MAAM,WAC3B9P,KAAK+I,IAAI9B,OAAOknB,MAAM/sB,OAGzBmO,IAAIM,KAAK,kBAAkBC,MAAM,WAC9B3P,EAAE,QAAQ2P,QAEV9P,KAAK+I,IAAI9B,OAAOmZ,SAAShf,OAG5BmO,IAAIM,KAAK,eAAeC,MAAM,WAC3B,OAAO,GAGV,IAAIse,qBAiGJ,IAhGA7e,IAAIM,KAAK,mBAAmB6V,MAAM,SAAS5b,IACxC,GAAIkQ,MAAO7Z,EAAEiL,MAAM1B,KAGF,MAAbI,GAAGgjB,OACJ9sB,KAAKsI,KAAK0U,UAAUqR,eAAejtB,KAGrB,KAAb0I,GAAGgjB,OAAiBhjB,GAAGwkB,WACxBtU,KAAO,GAEPha,KAAKsI,KAAK0U,UAAUuR,aAAantB,MAGpCpB,KAAK6E,QAAQkW,eAAe,SAAU3Z,IAAK,OAAQ4Y,MAElC,KAAblQ,GAAGgjB,OACJ9sB,KAAK+I,IAAI9B,OAAOmO,MAAMhU,OAEzByrB,SAAS,SAAS/iB,IAClB,MAAiB,MAAbA,GAAGgjB,OAAgBhjB,GAAGwkB,WAAanuB,EAAEiL,MAAM1B,UAC5CqkB,gBAAe5kB,KAAKiC,OAIvBpL,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQC,IACxB9V,IAAKvE,EAAEiL,MAAM1B,QAGhBvJ,EAAEiL,MAAM0Y,IAAI,SAAU,IAAIpa,IAAI,QAE9BI,IAAGC,oBACH6G,MAAM,WACFwd,sBACDrgB,aAAaqgB,sBAIhBpuB,KAAK+I,IAAI0gB,QAAQroB,KAEjB2sB,eAAe5kB,KAAKiC,QACpBka,KAAK,WACL,GAAIjV,MAAOlQ,EAAEiL,KAEbgjB,sBAAuBphB,WAAW,WAC/BqD,KAAKyT,IAAI,SAAU,KACnB,QACHkB,WAAW,WACX7kB,EAAE,oBAAoBwE,KAAK,UAAU,KACrCogB,WAAW,WACX5kB,EAAE,oBAAoBwE,KAAK,UAAU,KAaxC4K,IAAIM,KAAK,kBAAkBC,MAAM,WAEF,kBAAjB0e,eAAgCA,eAAepe,YACvDb,IAAIM,KAAK,mBAAmBe,UAIlCrB,IAAIM,KAAK,kBAAkB8b,YACxB/E,OAAQ,QACRgF,SAAU,QAGbrc,IAAIM,KAAK,cAAc6U,mBAEvBnV,IAAIM,KAAK,kBAAkB4e,WACxBC,QAAS,WACTC,UAAW,IACXC,SAAU,IACV5M,OAAQ,SAAS6M,MAAOC,IACrB9uB,KAAK+I,IAAI9B,OAAO+a,OAAOzS,IAAKuf,KAE/BnkB,MAAO,WACJ4E,IAAI5C,YAAY,gBAEnBoiB,KAAM,WACHxf,IAAI0P,SAAS,kBAInB1P,IAAIM,KAAK,gBAAgBiU,IAAI,UAAU,EAAKvU,IAAIM,KAAK,cAAc+W,UAE/DzmB,EAAE6uB,QAAQ5tB,IAAKpB,KAAK6E,QAAQwB,YAAY,eAAiB,EAAG,CAG7D,GAAI+mB,IAAKptB,KAAK6E,QAAQwB,YAAY,iBAClC+mB,IAAGzjB,KAAKvI,KACRpB,KAAK6E,QAAQiE,YAAY,aAAcskB,IAGvCptB,KAAK6E,QAAQiE,YAAY,SAAU1H,KAChCoO,UAAU,EACVI,KAAM,GACN0Z,OAAQ,IAGXtpB,KAAK+I,IAAI9B,OAAOwI,KAAKrO,SAGjBpB,MAAK6E,QAAQwB,YAAY,SAAUjF,KAAKkoB,QACzCtpB,KAAK+I,IAAIygB,WAAWpoB,IAiC1B,OA7BAjB,GAAEqJ,KAAKxJ,KAAK+I,IAAI0X,SAAU,SAASzP,EAAGtH,KACnC,GAAIulB,KAAMvlB,IAAI,GAAG8C,MAAM,KAAK,GACxB8f,GAAKnsB,EAAE,OACXmsB,IAAG1M,OAAO5f,KAAK+I,IAAIkiB,iBAAiB,IAAMvhB,IAAI,GAAK,MACnD4iB,GAAGzc,KAAK,OAAO8H,KAAK,QAASsX,KAC7B3C,GAAGxc,MAAM,WACNP,IAAIM,KAAK,mBAAmBnG,IAAI6F,IAAIM,KAAK,mBAAmBnG,MAAQulB,KACpE1f,IAAIM,KAAK,mBAAmBe,UAE/BrB,IAAIM,KAAK,sBAAsB3K,QAAQonB,MAG1CtsB,KAAK+I,IAAI0b,WAAWtb,KAAKoG,IAAIM,KAAK,oBAElC7P,KAAK+I,IAAI9B,OAAOioB,YAAY9tB,KAE5BpB,KAAK+I,IAAIyP,OAAOpX,KAEhBpB,KAAK+I,IAAIkZ,qBAGLjiB,KAAKK,SAAWL,KAAK8H,IAAIwM,QAAQlT,KAClCpB,KAAK8H,IAAIsM,OAAOhT,KAEhBpB,KAAK8H,IAAIqC,OAAO/I,KAGnBjB,EAAE8H,UAAUkH,QAAQ,oBAAqBI,MAElCA,KAUVyS,OAAQ,SAASzS,IAAKuf,GAAIK,OACvB,GAAI/tB,IAEJ,IAAmB,gBAARmO,KACRnO,IAAMmO,IAAIoI,KAAK,gBACX,CAAA,GAAmB,gBAARpI,KAKf,WADAvP,MAAKyF,KAAK,4EAHVrE,KAAMmO,IACNA,IAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAMxBmO,IAAIoI,KAAK,wBACXpI,IAAIoI,KAAK,sBAAuBpI,IAAIM,KAAK,iBAAiB+W,UAGxDrX,IAAIoI,KAAK,uBACXpI,IAAIoI,KAAK,qBAAsBpI,IAAIM,KAAK,iBAAiB2B,QAG5D,IAAI4d,mBAAoB,MAAU7f,IAAIM,KAAK,gBAAgBme,cAAgBze,IAAIM,KAAK,iBAAiB+W,SAAW,CAEhHkI,IAAK3uB,EAAE8F,QACJmV,MACG5J,MAAOlO,SAASiM,IAAIoI,KAAK,uBACzBiP,OAAQtjB,SAASiM,IAAIoI,KAAK,wBAA0ByX,oBAEvDN,QAECK,QACDL,GAAG1T,KAAKwL,QAAUwI,mBAGrB7f,IAAIM,KAAK,kBAAkBiU,KACxBtS,MAAOsd,GAAG1T,KAAK5J,MACfoV,OAAQkI,GAAG1T,KAAKwL,SAGnBrX,IAAIiC,MAAMsd,GAAG1T,KAAK5J,OAElBjC,IAAIM,KAAK,kBAAkB8b,YACxB/E,OAAQkI,GAAG1T,KAAKwL,SAMnBzmB,EAAE8H,UAAUkH,QAAQ,sBAAuBI,IAAKnO,IAAK0tB,GAAG1T,QAG3DiU,SAAU,SAASjuB,KAChB,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1Bga,KAAOpb,KAAK4F,QAAQ0pB,SAASC,SAEjCnU,MAAK5J,OAAS,GACd4J,KAAKwL,QAAUrX,IAAIM,KAAK,aAAame,cAAgBze,IAAIM,KAAK,mBAAmBme,cAEjFhuB,KAAK+I,IAAI9B,OAAO+a,OAAOzS,KACpB6L,KAAMA,QAUZlV,IAAK,SAAS+U,IACX,MAAO9a,GAAE,gCAAkCH,KAAKuM,SAAS0O,IAAM,OAUlEuG,KAAM,SAASpgB,KACZ,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOtB,KAAKvE,IAK/B,OAHApB,MAAK+I,IAAI9B,OAAOyI,KAAKtO,KACrBpB,KAAK+I,IAAI9B,OAAOuoB,UAAUpuB,KAEnBmO,KAQV6F,MAAO,SAAShU,KAEb,MAAwC,KAApCpB,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyF,WAC1B7G,MAAKyF,KAAK,8CAIbzF,KAAK6E,QAAQ+R,kBAAkB,aAAcxV,KAC7CpB,KAAK6E,QAAQsP,eAAe,SAAU/S,KAElCpB,KAAK6E,QAAQwB,YAAY,aAAaiS,QAAQlX,KAAO,IAGtDpB,KAAK6E,QAAQsP,eAAe,QAAS/S,KACrCpB,KAAK6E,QAAQsP,eAAe,OAAQ/S,UAGvCpB,MAAK+I,IAAI9B,OAAOylB,OAAOtrB,OAQ1BsrB,OAAQ,SAAStrB,KACdpB,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAK+U,SACzBnW,KAAK+I,IAAIkZ,sBAQZyJ,OAAQ,SAAStqB,KAEd,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAEiB,KAA3CmO,IAAIkgB,QAAQ,oBAAoB5oB,SAIhC0I,IAAIsV,SAAS,YACd7kB,KAAK+I,IAAI9B,OAAOyI,KAAKtO,KAErBpB,KAAK+I,IAAI9B,OAAOwI,KAAKrO,KAGxBpB,KAAK+I,IAAIkZ,uBAQZvS,KAAM,SAAStO,KAIZ,MAFApB,MAAK6E,QAAQkW,eAAe,SAAU3Z,IAAK,YAAY,GAEhDpB,KAAK+I,IAAI9B,OAAOyoB,MAAMtuB,MAShCsuB,MAAO,SAAStuB,KACb,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1B+rB,SAAW,CAEXntB,MAAKuR,uBACF8b,WAAWltB,EAAE,gBAAgB2jB,IAAI,WAAa,IAC/CqJ,SAAWntB,KAAK+I,IAAIC,OAAO0iB,UAG9B1rB,KAAK+I,IAAI9B,OAAOwI,OAChBzP,KAAK+I,IAAI9B,OAAOooB,SAASjuB,MAG5BmO,IAAI5C,YAAY,YAAYsS,SAAS,eACrC1P,IAAIM,KAAK,gBAAgBiU,IAAI,SAAU,KAEvC9W,WAAW,WACR,GAAIuX,SAAUpkB,EAAE,sBAAsBqR,QAClCme,WAAaxvB,EAAE,uBAAuBqR,QACtCoe,WAAazvB,EAAE,oBAAoBqR,QAAU+S,OAEjD,IAAIoL,WAAaC,WAAY,CAC1B,GAAIxL,QAAS9gB,SAASnD,EAAE,uBAAuB2jB,IAAI,UAC/CtS,MAAQjC,IAAIqgB,YAAW,GAEvBtL,MAAQqL,WAAapgB,IAAIsgB,WAAWC,KAAOte,MAAQ4S,OACnD0L,KAAOF,YAAcD,WAAapgB,IAAIsgB,WAAWC,MAAQ1L,MAEzD0L,MAAO,GACR9vB,KAAK+I,IAAImZ,mBAAmB4N,MAAO,GAGlCxL,MAAQ,GACTtkB,KAAK+I,IAAImZ,mBAAmBoC,SAGlC6I,UAIHntB,KAAK+I,IAAI9B,OAAO8oB,WAAW3uB,KAEvBpB,KAAKa,kBACN0O,IAAIM,KAAK,mBAAmBe,QAG/BrB,IAAIJ,QAAQ,qBAQfM,KAAM,SAASrO,KACZ,GAAIqO,MAAO,SAASrO,KACjBpB,KAAK6E,QAAQkW,eAAe,SAAU3Z,IAAK,YAAY,GAEvDpB,KAAK+I,IAAI9B,OAAO+oB,MAAM5uB,KAGrBA,KACDqO,KAAKrO,KAELjB,EAAE,8BAA8BqJ,KAAK,WAClC,GAAI+Z,IAAKpjB,EAAEiL,KAENmY,IAAGsB,SAAS,aACdpV,KAAK8T,GAAG5L,KAAK,gBAWzBqY,MAAO,SAAS5uB,KACb,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9BmO,KAAI5C,YAAY,eAAesS,SAAS,YACxC1P,IAAIM,KAAK,gBAAgBiU,IAAI,UAAU,EAAKvU,IAAIM,KAAK,cAAc+W,UAEnErX,IAAIJ,QAAQ,uBAQfqgB,UAAW,SAASpuB,KACjB,GAAImiB,IAAKvjB,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyO,KAAK,aAElC0T,IAAG0M,GAAG,cACR1M,GAAG2M,OAAO,aACPvF,MAAO,UACP,MASToF,WAAY,SAAS3uB,KAClB,GAAIyZ,MAAO7a,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyO,KAAK,iBAGrB,KAAhBgL,KAAKhU,QAITgU,KAAK8Q,YACFS,SAAWvR,KAAK3U,IAAI,GAAG+nB,aAAe,QAiC5CvT,YAAa,SAASb,SAEI,gBAAZA,UAA0BA,kBAAmB7Z,MAAKua,UAC1DV,QAAU,GAAI7Z,MAAKua,QAAQV,SAG9B,IAAIlV,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASwT,QAAQzY,MAEhDyY,QAAQmC,SAAWnC,QAAQnV,MAC7BmV,QAAQmC,QAAUnC,QAAQnV,KAI7BmV,QAAQnV,IAAM1E,KAAKgQ,WAAW6J,QAAQnV,KACtCmV,QAAQnV,IAAM1E,KAAK+P,WAAW8J,QAAQnV,KAIlCmV,QAAQS,YAActa,KAAKua,QAAQC,KAAO7V,KAAK+P,WAAaC,IAAIpT,MAAM4uB,mBAAqBtW,QAAQE,aAAc,IAClHF,QAAQS,UAAYta,KAAKua,QAAQoF,IACjC9F,QAAQnV,IAAMvE,EAAE2L,EAAE,iEAGjB+N,QAAQS,YAActa,KAAKua,QAAQC,KAAO7V,KAAK+P,WAAaC,IAAIpT,MAAM4uB,oBACvEtW,QAAQS,UAAY,MACpBT,QAAQnV,IAAMvE,EAAE2L,EAAE,gCAAkC,IAAM+N,QAAQnV,KAGrEmV,QAAQc,UAA0C,iBAAtBd,SAAQc,UAA2Bd,QAAQc,UAAYhW,KAAK+P,WAAaC,IAAIpT,MAAMqT,kBAE/G,KACGiF,QAAQuW,OACT,MAAO/qB,KACNrF,KAAKyF,KAAK,0BAA2BJ,KAErCwU,QAAU,GAAI7Z,MAAKua,SAChB7V,IAAK,iEACL4V,UAAWta,KAAKua,QAAQoF,MA4B9B,MAxB0B,OAAtB9F,QAAQS,WAAuBta,KAAK+I,IAAI9B,OAAOf,IAAI2T,QAAQzY,KAAKyO,KAAK,mBAAmBogB,GAAG,YAC5FjwB,KAAK+I,IAAIogB,UAAUtP,QAAQzY,KAE3BjB,EAAE8H,UAAUkH,QAAQ,sBAAuB0K,QAAQzY,IAAKyY,QAAQmC,WAG/DnC,QAAQS,YAActa,KAAKua,QAAQC,KAAOxa,KAAKK,QAAUwZ,QAAQE,aAAc,GAAQF,QAAQmC,SAChGhc,KAAKsI,KAAKyT,YAAYlC,SAGzB7Z,KAAK+I,IAAI9B,OAAOopB,aAAaxW,SAEH,QAAtBA,QAAQS,WAAuC,MAAhBT,QAAQnV,KAAe1E,KAAK4F,QAAQM,IAAI,0BAA2B,IAC5C,mBAA5ClG,MAAK4F,QAAQM,IAAI,wBAA2D,IAAhBmI,KAAKF,SAAiB,GAAM,KAChGnO,KAAK4F,QAAQU,IAAI,uBAAuB,GAExCtG,KAAK+I,IAAI9B,OAAOyT,YAAY,GAAI1a,MAAKua,SAClCnZ,IAAKyY,QAAQzY,IACbkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAK,SAKPmV,SAUVwW,aAAc,SAASxW,QAAShN,SAC7B,GAAIzL,KAAMyY,QAAQzY,IACdmO,IAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1BsD,IAAMmV,QAAQnV,IACd4V,UAAYT,QAAQS,UACpB0L,IAAMnM,QAAQ4C,IAEdlN,KAAIM,KAAK,mBAAmBogB,GAAG,iBAAmB3V,YAActa,KAAKua,QAAQE,KAAO5N,SACrF7M,KAAK+I,IAAI9B,OAAOuoB,UAAUpuB,KAG7BsD,IAAMA,IAAIkK,QAAQ5O,KAAKuB,MAAMS,MAAMG,IAAK,SAAS0P,KAE9C,GAAIiY,MAAQjY,IAAIxF,MAAM,iBAAoBwF,IAAM,UAAYA,GAG5D,OAAO,YAAciY,KAAO,qBAAuBjY,IAAM,SAG5DnN,IAAMA,IAAIkK,QAAQ,GAAI1M,QAAO,YAAclC,KAAKuB,MAAMS,MAAMC,IAAIyX,OAAS,oBAAqB,KAAM,SAASrN,MAAOikB,SAAU7nB,IAAKmhB,QAChI,MAAiB,UAAb0G,UACqB,gBAAX1G,UACRnhB,KAAOmhB,QAIH,iBAAmBnhB,IAAM,UAAYA,IAAM,QAI9C,mBAAqBA,IAAM,4BAA8BA,IAAM,SAIzEtI,EAAEqJ,KAAKxJ,KAAK+I,IAAI0X,SAAU,SAASzP,EAAGtH,KACnChF,IAAMA,IAAIkK,QAAQlF,IAAI,GAAI,IAAMA,IAAI,GAAK,OAI5ChF,IAAM1E,KAAK+I,IAAIkiB,iBAAiBvmB,KAGhCA,IAAMA,IAAIkK,QAAQ,gBAAiB,SAGnC,IAAI2hB,SAAUvwB,KAAK6E,QAAQwB,YAAY,QAASjF,QAC9B,QAAdkZ,YACD5V,IAAMA,IAAIkK,QAAQ,SAAU,kBAAoB5O,KAAKgQ,WAAWugB,QAAQ1Y,MAAQzW,KAAO,SAG1F,IAAIovB,QAASrwB,EAAE,SACZswB,SAAWtwB,EAAE,QAiChB,IAhCAqwB,OAAOvR,SAAS,yBAA2B3E,WAC3CkW,OAAO7Y,KAAK,KAAMqO,IAAIpX,QAAQ,KAAM,MACpC4hB,OAAOprB,KAAK,QAAUV,IAAM,UAC5B+rB,SAASxR,SAAS,kBAClBwR,SAAS7gB,KAAK5P,KAAKkD,iBAAiB2W,QAAQQ,QAExCR,QAAQ6W,aACTF,OAAOvR,SAAS,iBAEhBuR,OAAO7jB,YAAY,iBAGlBkN,QAAQE,UACTyW,OAAOvR,SAAS,kBAEhBuR,OAAO7jB,YAAY,kBAGlBkN,QAAQc,UACT6V,OAAOvR,SAAS,kBAEhBuR,OAAO7jB,YAAY,kBAGlBkN,QAAQnU,MACT8qB,OAAOvR,SAAS,cAEhBuR,OAAO7jB,YAAY,cAGtB6jB,OAAO7Y,KAAK,QAASkC,QAAQnU,OAEzBmU,QAAQqB,YAAcrB,QAAQqB,WAAWrD,KAAM,CAChD,GAAIqD,YAAa/a,EAAE,QACnB+a,YAAW+D,SAAS,mBACpB/D,WAAW+D,SAAS,QAAUpF,QAAQqB,WAAW5E,KAAK1H,QAAQ,KAAM,MACpEsM,WAAW+D,SAAS,QAAUpF,QAAQqB,WAAW5E,KAAK1H,QAAQ,gBAAgB,OAE1EiL,QAAQqB,WAAWyV,cAAe,GACnCzV,WAAW+D,SAAS,sBAGnBpF,QAAQqB,WAAWvW,MACpBuW,WAAW+D,SAAS,aAGnBpF,QAAQqB,WAAW5E,KAAKjK,MAAM,aAAewN,QAAQqB,WAAWG,UACjElb,EAAE,uBAAuBwX,KAAK,MAAOkC,QAAQqB,WAAWG,WAAW1D,KAAK,QAASkC,QAAQqB,WAAWrD,MAAMkI,SAAS7E,YAEnHA,WAAWtL,KAAKiK,QAAQqB,WAAWrD,MAGlCgC,QAAQqB,WAAWvW,OACpBuW,WAAa/a,EAAE,OAAOyf,OAAO1E,YAC7BA,WAAWvD,KAAK,OAAQkC,QAAQqB,WAAWvW,MAC3CuW,WAAWvD,KAAK,WAAYkC,QAAQqB,WAAWrD,MAE3CgC,QAAQqB,WAAWvW,OAASkV,QAAQnV,KACrC8rB,OAAO3gB,KAAK,OAAO+gB,QAAQxhB,SAIjCohB,OAAO3gB,KAAK,OAAO+gB,QAAQhR,OAAO1E,YAmBrC,GAhBkB,QAAdZ,UACDta,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyO,KAAK,kBAAkB+P,OAAO,6BACtB,mBAAlB/F,SAAQQ,OACvBmW,OAAO5Q,OAAO6Q,UAGC,QAAdnW,WACDna,EAAE,cAAgBiB,IAAM,MAAMyO,KAAK,4BAA4BzK,KAAKV,KAGnE1E,KAAKua,QAAQsW,OAAO7K,KAAKnf,OAAS,EACnC7G,KAAKua,QAAQsW,OAAO7K,KAAK4G,YAAY4D,QAErCjhB,IAAIM,KAAK,kBAAkB+P,OAAO4Q,QAGP,gBAAnB3W,SAAQwG,QAA0C,OAAnBxG,QAAQwG,OAAiB,CAChE,GAAI5G,OAAQ,GACRqX,UAAY3wB,EAAE,QAGlB,IAFA2wB,UAAU7R,SAAS,eAAe8R,UAAUP,QAEV,gBAAvB3W,SAAQwG,OAAO5X,IAAkB,CACzC+nB,OAAO7Y,KAAK,WAAY3X,KAAKuM,SAASsN,QAAQwG,OAAO5X,KAErD,IAAI9D,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASrG,KAAKuM,SAASsN,QAAQwG,OAAO5X,SAC1EzI,MAAK+I,IAAI6D,aAAa4jB,OAAQxwB,KAAKuM,SAASsN,QAAQwG,OAAO5X,KAAM9D,KAAKiV,QAEtEH,MAAQzZ,KAAKuM,SAASsN,QAAQwG,OAAO5X,KAGL,gBAAxBoR,SAAQwG,OAAOxI,OACvB2Y,OAAO7Y,KAAK,YAAakC,QAAQwG,OAAOxI,MAEN,gBAAvBgC,SAAQwG,OAAO5X,KACvBzI,KAAK+I,IAAI6a,kBAAkBkN,UAAWjX,QAAQwG,OAAOxI,MAG1C,KAAV4B,QACDA,MAAQ,KAAOA,OAGlBA,MAAQI,QAAQwG,OAAOxI,KAAO4B,MAE9BgX,SAAS7gB,KAAK6gB,SAAS7gB,OAAS,IAAMiK,QAAQwG,OAAOxI,OAGxDiZ,UAAUnZ,KAAK,QAAS3X,KAAK+P,WAAW0J,QAEpC+W,OAAOpG,OAAOvjB,OAAS,GAAK2pB,OAAOpG,OAAOva,KAAK,gBAAgB8H,KAAK,WAAamZ,UAAUnZ,KAAK,UACjGmZ,UAAUhN,IAAI,aAAc,UAIlC9jB,KAAK+I,IAAI2gB,gBAAgBna,KACzBvP,KAAK+I,IAAImhB,YAAY3a,KAErBvP,KAAK+I,IAAI9B,OAAO8oB,WAAW3uB,MAU9BuO,QAAS,SAASvO,IAAKwO,MACpB5P,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyO,KAAK,mBAAmBnG,IAAIkG,OASxDsf,YAAa,SAAS9tB,KACnB,GAAIyZ,MAAO7a,KAAK6E,QAAQwB,YAAY,OAAQjF,IAG5C,IAAIyZ,KAAM,CACP,KAAgB,OAATA,MAAiBA,KAAKhU,OAAS,GAAG,CACtC,GAAI2M,GAAIqH,KAAKmW,KAEbxd,GAAEpS,IAAMA,IACRoS,EAAEiJ,KAAOjJ,EAAEwS,UACJxS,GAAEwS,GAET,IAAInM,SAAU,GAAI7Z,MAAKua,QAAQ/G,EAC/BqG,SAAQuW,OAERpwB,KAAK+I,IAAI9B,OAAOopB,aAAaxW,SAAS,GAGzC7Z,KAAK6E,QAAQsP,eAAe,OAAQ/S,KAKvC,IAFA,GAAIirB,SAAUrsB,KAAK6E,QAAQwB,YAAY,UAAWjF,KAE/B,OAAZirB,SAAoBA,QAAQxlB,OAAS,GAAG,CAC5C,GAAImf,KAAMqG,QAAQ2E,KAElBhxB,MAAK+I,IAAI9B,OAAOopB,aAAa,GAAIrwB,MAAKua,QAAQyL,MAAM,KAU1DmI,MAAO,SAAS/sB,KAEbpB,KAAK6E,QAAQsP,eAAe,OAAQ/S,IAEpC,IAAIirB,SAAUrsB,KAAK6E,QAAQwB,YAAY,UAAWjF,QAElDirB,SAAQ4E,IAAI,SAAShW,IAClBjb,KAAK6E,QAAQsP,eAAe,MAAO8G,MAGtCjb,KAAK6E,QAAQiE,YAAY,UAAW1H,OAEpC,IAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE1BmO,KAAI1I,OAAS,GACd0I,IAAIM,KAAK,kBAAkBT,SAWjC8hB,gBAAiB,SAAS9vB,IAAK4kB,KAC5BhmB,KAAKyF,KAAK,oCAEV,IAAIoU,SAAU,GAAI7Z,MAAKua,QAAQyL,IAE/BnM,SAAQgC,YAGX0E,eAAgB,SAAS1G,QAASyG,KAAMlF,MACrC,GAAImK,KAAM1L,QAAQgX,SACdM,KAAO5L,IAAI1V,KAAK,uBAEA,KAAhBshB,KAAKtqB,SACN0e,IAAI1V,KAAK,mBAAmB+P,OAAO,UACnCuR,KAAO5L,IAAI1V,KAAK,yBAGnBshB,KAAKvhB,KAAK,IAAMvB,KAAKiQ,MAAMgC,KAAOlF,KAAO,KAAO,KAE5CkF,OAASlF,MACV+V,KAAKhb,UAIX+I,YAAa,SAAS9d,IAAK2hB,QAASqO,YACjC,GAAI7hB,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9BmO,KAAIM,KAAK,4BAA4BT,QAAQwQ,OAAOmD,SACpDxT,IAAIM,KAAK,6BAA6BhG,IAAI,SAASiG,MAAM,WACtD9P,KAAK+I,IAAI9B,OAAO+X,YAAY5d,OAG3BgwB,cAAe,EAChB7hB,IAAIM,KAAK,6BAA6BJ,OAEtCF,IAAIM,KAAK,6BAA6BH,OAGzCH,IAAI0P,SAAS,qBAGhBD,YAAa,SAAS5d,KACnB,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9BmO,KAAI5C,YAAY,qBAGnB+R,eAAgB,SAAStd,IAAKwO,KAAMjE,GAAIqM,KAIrC,GAHAA,IAAMA,KAAOhY,KAAK6E,QAAQwB,YAAY,MAAOjF,SAC7CuK,GAAKA,IAAM,aAEPqM,IAAInR,OAAS,EAAG,CACjB,GAEGmK,GAAGsb,GAFFvJ,QAAU5iB,EAAE,SACZ4lB,KAAO5lB,EAAE,OAGb,KAAK6Q,EAAI,EAAGA,EAAIgH,IAAInR,OAAQmK,IACzBsb,GAAKnsB,EAAE,QAEPmsB,GAAG1M,OAAOzf,EAAE,OAAOyP,KAAKoI,IAAIhH,KAC5Bsb,GAAGvM,SAASgG,KAGfA,MAAKlW,KAAK,KAAKC,MAAM,SAAShG,IAC3BA,GAAGC,iBAEH/J,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAE5BuK,IACG6G,OAAQ,WACR8K,OAAQnd,EAAEiL,MAAMwE,WAIlBA,MACDzP,EAAE,OAAOyP,KAAKA,MAAMmQ,SAASgD,SAGhCgD,KAAKhG,SAASgD,SAEd/iB,KAAK+I,IAAI9B,OAAOiY,YAAY9d,IAAK2hB,aAEjCpX,KACG6G,OAAQ,iBAKjB6e,WAAY,SAASjwB,IAAKkwB,UACvB,GAAIvO,SAAU5iB,EAAE,SAEZoxB,EAAIpxB,EAAE,MACVoxB,GAAE3hB,KAAKzP,EAAE2L,EAAE,uBACXylB,EAAExR,SAASgD,QAEX,IAAIyO,OAAQrxB,EAAE,WACdqxB,OAAM5hB,KAAKzP,EAAE2L,EAAE,UACf0lB,MAAM1hB,MAAM,WACT9P,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAC5BpB,KAAK6E,QAAQsP,eAAe,MAAO/S,KAE/BpB,KAAKK,QAAUL,KAAK8H,IAAIwM,QAAQlT,MACjCpB,KAAK8H,IAAIwM,QAAQlT,KAAKqwB,GAAGD,UAG/BA,MAAMzR,SAASgD,QAEf,IAAI2O,QAASvxB,EAAE,WACfuxB,QAAO9hB,KAAKzP,EAAE2L,EAAE,WAChB4lB,OAAOzS,SAAS,6BAChByS,OAAO5hB,MAAM,WACV9P,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAE5BpB,KAAK8H,IAAI6pB,cAAcvwB,IAAKkwB,YAE/BI,OAAO3R,SAASgD,SAEhB/iB,KAAK+I,IAAI9B,OAAOiY,YAAY9d,IAAK2hB,UAGpC3C,SAAU,SAAS3X,KAChBzI,KAAKme,aAAaI,eAAe9V,OAIvCzI,KAAK+I,IAAIgZ,YAWT/hB,KAAK+I,IAAIgZ,SAAS7b,IAAM,SAAS2R,KAAMzW,IAAKsD,KAGzC,GAAIktB,KACDC,oBAAqB7xB,KAAK6E,QAAQwB,YAAY,oBAAsBrG,KAAK6E,QAAQwB,YAAY,oBAAoBuI,QAAQ,UAAW,OAASzO,EAAE2L,EAAE,iBACjJgmB,OAAQ9xB,KAAK6E,QAAQC,QAAQ,QAAU,GACvCitB,QAASrjB,QAAQsjB,eAAehyB,KAAK6E,QAAQC,QAAQ,QAAU,KAAO,GACtEsmB,KAAMprB,KAAK4F,QAAQwlB,KACnB6G,SAAUjyB,KAAK4F,QAAQqsB,SACvB7xB,QAASJ,KAAKI,QAIjB,IAAIgB,IAAK,CACN,GAAIuD,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAE7CjB,GAAE8F,OAAO2rB,IACNM,qBAAuBvtB,MAAQA,KAAKwtB,YAAextB,KAAKwtB,YAAYvjB,QAAQ,UAAW,OAASzO,EAAE2L,EAAE,iBACpGsmB,QAAShxB,IACTixB,SAAW1tB,MAAQA,KAAKkT,KAAQ7X,KAAK+P,WAAWpL,KAAKkT,MAAQzW,MAK/DsD,KACDvE,EAAE8F,OAAO2rB,IACNltB,IAAKA,KAIX,IAAI4tB,KAAMtyB,KAAK+I,IAAIgZ,SAASlK,KAE5B,OAAoB,gBAAV,MAEPya,IAAMA,IAAI1jB,QAAQ,gBAAiBgjB,GAAGxG,MAEtCkH,IAAMnyB,EAAEmyB,KAERA,IAAIziB,KAAK,cAAcrG,KAAK,WACzB,GAAIrD,KAAMhG,EAAEiL,MAAMuM,KAAK,YACnBjO,IAA0B,gBAAZkoB,IAAGzrB,KAAqByrB,GAAGzrB,KAAO,yBAA2BA,IAAM,GAEvC,WAA1ChG,EAAEiL,MAAM6N,KAAK,WAAW+R,cACzB7qB,EAAEiL,MAAM1B,IAAIA,KAEZvJ,EAAEiL,MAAMwE,KAAKlG,OAInB4oB,IAAIC,SAASX,IAENU,MAGVtyB,KAAKyE,MAAM,2BAA6BoT,MACjCA,OA8BV7X,KAAKua,QAAU,WAGZnP,KAAKqR,KAAO,KAGZrR,KAAKonB,WAAY,EAGjBpnB,KAAKuP,UAAY,KAGjBvP,KAAK2O,WAAY,EAGjB3O,KAAKiP,OAAQ,GAAIhX,OAAOmB,UAExB4G,KAAKkL,KAAOtW,KAAKua,QAAQkY,MAEG,gBAAjB5nB,WAAU,IAAmBA,UAAU,GAAGhE,OAAS,GAA0B,IAArBgE,UAAUhE,QAC1EuE,KAAKqR,KAAO5R,UAAU,GAEtBO,KAAK+M,KAAK/M,KAAKqR,OACiB,gBAAjB5R,WAAU,IAAoC,OAAjBA,UAAU,IACtD1K,EAAE8F,OAAOmF,KAAMP,UAAU,IAGvBO,KAAKqR,OACPrR,KAAKqR,MAAO,GAAIpZ,OAAOmB,UAAY,SAUzCxE,KAAKua,QAAQmY,UAAUva,KAAO,SAAS6N,KACpC,GAAIrhB,MAAO3E,KAAK6E,QAAQwB,YAAY,MAAO2f,IAEtCrhB,OACF3E,KAAKyE,MAAM,mCAAqCuhB,KAGnD7lB,EAAE8F,OAAOmF,KAAMzG,OASlB3E,KAAKua,QAAQmY,UAAUtC,KAAO,WAC3B,GAAI/D,QAcJ,IAZIjhB,KAAKhK,MACNirB,QAAUrsB,KAAK6E,QAAQwB,YAAY,UAAW+E,KAAKhK,SAE/CirB,QAAQ/T,QAAQlN,KAAKqR,MAAQ,EAC1B4P,QAAQxlB,OAAS7G,KAAK4F,QAAQM,IAAI,gBACnClG,KAAKua,QAAQoY,OAAOtG,QAAQ2E,OAG/B3E,QAAU,MAIZuG,OAASxnB,KAAK8P,YAAc9P,KAAK8P,WAAW5E,KAAKjK,MAAM,cAAgBjB,KAAK8P,WAAWvW,OAASyG,KAAK8P,WAAWG,UAAW,CAC5H,GAAIwX,SAASC,OAAQC,GAAIC,GACrBC,QAAU,IACXC,OAAS,IACRC,OAAShzB,EAAE,YAAY+F,IAAI,EAE/BitB,QAAO3hB,MAAQ0hB,OACfC,OAAOvM,OAASqM,OAEhB,IAAIG,KAAMD,OAAOE,WAAW,MACxBvT,IAAM,GAAI8S,MAEd9S,KAAI4D,IAAMtY,KAAK8P,WAAWvW,KAEtBmb,IAAI8G,OAAS9G,IAAItO,OAClBqhB,QAAU/S,IAAItO,MACdshB,OAAShT,IAAItO,MACbuhB,GAAK,EACLC,IAAMlT,IAAI8G,OAAS9G,IAAItO,OAAS,IAEhCqhB,QAAU/S,IAAI8G,OACdkM,OAAShT,IAAI8G,OACbmM,IAAMjT,IAAItO,MAAQsO,IAAI8G,QAAU,EAChCoM,GAAK,GAGRI,IAAIE,UAAUxT,IAAKiT,GAAIC,GAAIF,OAAQD,QAAS,EAAG,EAAGK,OAAQD,SAE1D7nB,KAAK8P,WAAWG,UAAY8X,OAAOI,YAEZ,QAAnBnoB,KAAKkP,YAENlP,KAAK8P,WAAWvW,KAAO,MAI7B,GAAIA,KAwBJ,OAtBIyG,MAAK8P,YAAc9P,KAAK8P,WAAWE,KAAOpb,KAAK4F,QAAQ4tB,iBAAsC,OAAnBpoB,KAAKkP,YAChFta,KAAKyE,MAAM,gCAEXE,KAAOyG,KAAK8P,WAAWvW,KACvByG,KAAK8P,WAAWvW,KAAO,KACvByG,KAAK8P,WAAWyV,YAAa,GAKhC3wB,KAAK6E,QAAQiE,YAAY,MAAOsC,KAAKqR,KAAMrR,MAEvCihB,UACDA,QAAQoH,QAAQroB,KAAKqR,MAErBzc,KAAK6E,QAAQiE,YAAY,UAAWsC,KAAKhK,IAAKirB,UAG7C1nB,MAAQyG,KAAK8P,aACd9P,KAAK8P,WAAWvW,KAAOA,MAGnByG,MAQVpL,KAAKua,QAAQmY,UAAUC,OAAS,WAC7B3yB,KAAKua,QAAQoY,OAAOvnB,KAAKqR,OAS5Bzc,KAAKua,QAAQmY,UAAU7B,OAAS,WAC7B,MAAO7wB,MAAKua,QAAQsW,OAAOzlB,KAAKqR,OAQnCzc,KAAKua,QAAQmY,UAAU7W,SAAW,WAC/BzQ,KAAKonB,WAAY,EACjBpnB,KAAKglB,OAELhlB,KAAKylB,SAAS5R,SAAS,kBAS1Bjf,KAAKua,QAAQmY,UAAUhC,WAAa,WACjC,MAAOtlB,MAAKonB,WAUfxyB,KAAKua,QAAQoY,OAAS,SAAS3M,KAC5B,GAAIrhB,MAAO3E,KAAK6E,QAAQwB,YAAY,MAAO2f,IAE3C,IAAIrhB,OACD3E,KAAK6E,QAAQsP,eAAe,MAAO6R,KAE/BrhB,KAAKvD,KAAK,CACX,GAAIirB,SAAUrsB,KAAK6E,QAAQwB,YAAY,UAAW1B,KAAKvD,QAEvDirB,SAAUlsB,EAAEuzB,KAAKrH,QAAS,SAAS9I,IAChC,MAAOA,MAAOyC,MAGjBhmB,KAAK6E,QAAQiE,YAAY,UAAWnE,KAAKvD,IAAKirB,WAavDrsB,KAAKua,QAAQsW,OAAS,SAAS7K,KAC5B,MAAO7lB,GAAE,IAAM6lB,IAAIpX,QAAQ,KAAM,OAcpC5O,KAAKua,QAAQE,GAAK,KAOlBza,KAAKua,QAAQC,IAAM,MAOnBxa,KAAKua,QAAQoF,IAAM,MAEnB3f,KAAKua,QAAQmC,KAAO,OAEpB1c,KAAKua,QAAQkY,MAAQ,QAOrBzyB,KAAKkc,KAEFpR,KAAM,KAGNvJ,OACGoyB,aACGC,MAAO,QACPC,OAAQ,SACRC,QAAS,UACTC,MAAO,QACPC,KAAM,QAETC,MACGC,UAAW,YACXC,YAAa,cACbC,QAAS,UACTJ,KAAM,QAETK,WACGC,KAAM,EACNC,QAAS,EACTC,OAAQ,EACRC,kBAAmB,EACnBC,UAAW,GAEdC,YACGC,QAAS,YAWfjvB,KAAM,SAAS4nB,GACZ,GAAIld,MAAOrQ,KAAKkc,GAChB7L,MAAKvF,KAAO9K,KAAKsI,KAAKwC,IAEtB,IAAIlF,SAAU2nB,GAAKvtB,KAAK4F,QAAQM,IAAI,MAEpC,OAAKN,UAAqC,gBAAnBA,SAAQivB,QAoC3B70B,KAAK+I,IAAIC,OAAOyO,MACjBpH,KAAKykB,WAEL30B,EAAE8H,UAAU+C,IAAI,oBAAqBhL,KAAKkc,IAAI4Y,UAIjD30B,EAAE8H,UAAU4B,IAAI,gBAAiB7J,KAAKkc,IAAIvG,YAC1CxV,EAAE8H,UAAU4B,IAAI,sBAAuB7J,KAAKkc,IAAI6Y,iBAEhD50B,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAKkc,IAAIvG,YACzCxV,EAAE8H,UAAUC,GAAG,sBAAuBlI,KAAKkc,IAAI6Y,iBAE/C1kB,KAAKvF,KAAKwK,WAAWjF,KAAK2kB,mBAAoB,KAAM,UAAW,aAC/D3kB,KAAKvF,KAAKwK,WAAWjF,KAAK4kB,eAAgB,KAAM,UAAW,cAC3D5kB,KAAKvF,KAAKoR,IAAIC,UAAYnc,KAAK6E,QAAQwB,YAAY,oBAlDhDrG,KAAKyE,MAAM,4BAGXuI,YAAW,WACRqD,KAAKvF,KAAK+L,MAAM4W,MAAM/e,QAAQ8M,iBAAiBnL,KAAKvF,KAAKrC,KAAM,KAAM,SAASglB,OAC3EttB,EAAEstB,OAAO5d,KAAK,QAAQrG,KAAK,WACxB,GAAIf,KAAMtI,EAAEiL,MAAMuM,KAAK,OACnBud,YAAa,CAoBjB,OAlBA7kB,MAAKvF,KAAK+L,MAAMyM,KAAK7a,IAAK,KAAM,SAAS6a,MACtC,GAAI6R,YAAah1B,EAAEmjB,MAAMzT,KAAK,gBAAkBnB,QAAQtM,GAAGgzB,IAAM,MAC7DC,YAAcl1B,EAAEmjB,MAAMzT,KAAK,+CAE3BslB,YAAWtuB,OAAS,GAAKwuB,YAAYxuB,OAAS,IAC/C7G,KAAKyE,MAAM,oBAAqBgE,KAEhCzI,KAAK4F,QAAQU,IAAI,OACduuB,OAAQpsB,IACRoP,KAAM1X,EAAEmjB,MAAMzT,KAAK,YAAY8H,KAAK,UAGvCud,YAAa,EAEb7kB,KAAK1K,WAIHuvB,gBAGd,OA4BTJ,SAAU,WACP,GAAIxI,IAAKnsB,EAAE,QAAQwX,KAAK,QAAS,uCAAuC/H,KAAKzP,EAAE2L,EAAE,aAEjFwgB,IAAGxc,MAAM9P,KAAKkc,IAAI4F,cAElB3hB,EAAE,6BAA6BonB,OAAO+E,KAUzCxK,aAAc,SAAS/I,EAAGwY,GA6OvB,QAAS+D,cAAaT,QACnB,MAAKA,YAOLxkB,MAAKvF,KAAKoR,IAAIqZ,UAAUV,OAAQ,SAASvhB,QAEtCnT,EAAE,8BAA8BgW,SAEhChW,EAAEmT,QAAQzD,KAAK,QAAQrG,KAAK,WACzB,GAAIuP,GAAI5Y,EAAE,YACNq1B,KAAOr1B,EAAEiL,MAAMuM,KAAK,OAAO9I,cAC3B4mB,MAAQ/mB,QAAQsjB,eAAewD,MAC/BE,MAAQv1B,EAAEiL,MAAMuM,KAAK,SAAW8d,KAEpC1c,GAAEnJ,KAAK8lB,OACP3c,EAAEpB,KAAK,WAAY6d,MACnBzc,EAAEpB,KAAK,QAAS8d,OAEhBt1B,EAAE,yBAAyByf,OAAO7G,IAGrC,IAAIzS,KAAMnG,EAAEmT,QAAQzD,KAAK,8CAEzB,IAAIvJ,IAAIO,OAAS,EAAG,CACjB,GAAIwiB,OAAQ/iB,IAAIuJ,KAAK,SAASD,QAAU,GAExCuF,QAAOtF,KAAK,mBAAmBH,OAAO/C,YAAY,gBAAgBiD,KAAKzP,EAAE2L,EAAE,mBACxEud,MAAOA,aAGVlU,QAAOtF,KAAK,mBAAmBJ,QAElC,SAAS6D,QACT,GAAIqiB,YAAax1B,EAAEmT,QAAQzD,KAAK,cAAcD,QAAU,IACxD5P,MAAKyF,KAAK,uBAAwBkwB,YAE9BA,YACDxgB,OAAOtF,KAAK,+BAA+BH,OAAOE,KAAK+lB,YAGtDx1B,EAAEmT,QAAQzD,KAAK,kCAChBsF,OAAOtF,KAAK,gBAAgBoP,SAAS,gBAGxC9J,OAAOtF,KAAK,6BAA6BJ,aA9CzC0F,QAAOtF,KAAK,mBAAmBJ,OA9OrC,GAAIY,MAAOrQ,KAAKkc,IACZ/G,OAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,YAKxDiP,QAAOtF,KAAK,cAAcJ,OAGT,gBAANsJ,IACR5D,OAAOtF,KAAK,cAAcnG,IAAIqP,GAIhB,gBAANwY,IACRpc,OAAOtF,KAAK,kBAAkBnG,IAAI6nB,EAIrC,IAAIqE,mBACJzgB,QAAOtF,KAAK,gBAAgBnG,IAAI1J,KAAK4F,QAAQM,IAAI,OAAO2uB,QACxD1f,OAAOtF,KAAK,gBAAgB3H,GAAG,QAAS,WACrC,GAAImI,MAAOlQ,EAAEiL,KAETwqB,sBACD7nB,aAAa6nB,oBACbzgB,OAAOtF,KAAK,6BAA6BJ,QAG5C0F,OAAOtF,KAAK,+BAA+BJ,OAAOG,KAAK,IACvDuF,OAAOtF,KAAK,gBAAgBlD,YAAY,gBAEpC0D,KAAK3G,OAAS2G,KAAK3G,MAAM2C,MAAM,uBAChC8I,OAAOtF,KAAK,6BAA6BH,OAAOuP,SAAS,gBAEzD2W,mBAAqB5oB,WAAW,WAC7BsoB,aAAajlB,KAAK3G,QAClB,SAENyF,QAAQ,QAGX,IAAI0mB,eAAgB,SAAShH,MAAOpc,UAAWqjB,MAC5C,GAAIpxB,IAEJ,QAAQ+N,WACL,IAAK,iBAEF/N,IAAMvE,EAAE2L,EAAE,yBACV,MACH,KAAK,wBAEFpH,IAAMvE,EAAE2L,EAAE,iCACV,MACH,KAAK,YAEFpH,IAAMvE,EAAE2L,EAAE,gCACV,MACH,KAAK,WAEFpH,IAAMvE,EAAE2L,EAAE,yBACV,MACH,KAAK,sBAEFpH,IAAMvE,EAAE2L,EAAE,sBACV,MACH,KAAK,iBAEFpH,IAAMvE,EAAE2L,EAAE,uBACV,MACH,KAAK,cAEFpH,IAAMvE,EAAE2L,EAAE,iCACV,MACH,SACG9L,KAAKyF,KAAK,gCAAkCgN,WAC5C/N,IAAMvE,EAAE2L,EAAE,SAAW,KAAO2G,UAIlC,GAAIsjB,WAAY1lB,KAAKvF,KAAKoR,IAAIC,UAAU7D,QAAQwd,KAE5CC,YAAY,IACb1lB,KAAKvF,KAAKoR,IAAIC,UAAU6Z,OAAOD,UAAW,SACnC1lB,MAAKvF,KAAKoR,IAAI+Z,MAAMH,OAG9B31B,EAAE,OAAO8e,SAAS,gBAAgBrP,KAAKlL,KAAKqb,SAAS5K,OAAOtF,KAAK,cAGpE1P,GAAE8H,UAAUC,GAAG,iBAAkB2tB;AAEjC11B,EAAE8H,UAAUC,GAAG,oBAAqB,WACjC/H,EAAE8H,UAAU4B,IAAI,iBAAkBgsB,iBAGrC1gB,OAAOtF,KAAK,kBAAkB8H,KAAK,cAAejJ,QAAQsjB,eAAe3hB,KAAKvF,KAAKrC,MAEnF0M,OAAOtF,KAAK,kBAAkBsP,OAAO,WAC9Bhf,EAAEiL,MAAM6N,KAAK,YACd9Y,EAAE,kBAAkB8Y,KAAK,YAAY,GACrC9Y,EAAE,kBAAkBynB,OAAO,aAAajb,YAAY,cAEpDxM,EAAE,kBAAkB8Y,KAAK,YAAY,GAAMA,KAAK,WAAW,GAC3D9Y,EAAE,kBAAkBynB,OAAO,aAAa3I,SAAS,eAIvD9J,OAAOtF,KAAK,kBAAkBC,MAAM,SAAShG,IAC1CA,GAAGC,gBAEH,IAAI+rB,MAAQ31B,EAAE,cAAcuJ,MAAS1J,KAAKuM,SAASpM,EAAE,cAAcuJ,OAAS,KACxEujB,SAAW9sB,EAAE,kBAAkBuJ,OAASgF,QAAQsjB,eAAe3hB,KAAKvF,KAAKrC,KACzEosB,OAAS1f,OAAOtF,KAAK,gBAAgBnG,KAEzC,KAAKosB,OAASA,KAAKzpB,MAAM,uBAMtB,MALAlM,GAAE,cAAc8e,SAAS,gBAAgByG,MAAM,WACxCvlB,EAAEiL,MAAM1B,OACTvJ,EAAEiL,MAAMuB,YAAY,mBAGnB,CAGV,IAAIwI,OAAOtF,KAAK,gBAAgBgV,SAAS,gBACtC,OAAO,CAOV,IAJKiR,KAAKzpB,MAAM,YACbypB,MAAQ,IAAMjB,QAGb70B,KAAKsI,KAAKwC,KAAKoR,IAAIC,UAAU7D,QAAQwd,MAAQ,EAAG,CAGjD,GAAII,eAAgB,SAASC,SAAU1a,SAGpCzb,KAAK+I,IAAIoM,OAAO6M,SAEhB7M,OAAOtF,KAAK,kBAAkBJ,OAE9B0F,OAAOtF,KAAK,cAAcH,OAAOwgB,OAAO,aACrCvF,MAAO,SACP,KAEHxV,OAAOtF,KAAK,cAAcC,MAAM,SAAShG,IACtCA,GAAGC,gBAEH,IAAIqsB,UAAWj2B,EAAE,kBAAkB8Y,KAAK,WACpCiU,SAAW/sB,EAAE,kBAAkB8Y,KAAK,WACpC1O,SAAWpK,EAAE,kBAAkBuJ,OAAS,IAQ5C,OALA1J,MAAK+I,IAAI9B,OAAOknB,MAAM2H,MACtB91B,KAAK6E,QAAQiE,YAAY,SAAUgtB,SAEnCzlB,KAAKwR,KAAKiU,KAAM7I,SAAU1iB,SAAU4rB,SAAU1a,QAAS2a,SAAUlJ,WAE1D,IAIb/X,QAAOtF,KAAK,aAAa+P,OAAOzf,EAAE,OAAOyP,KAAKzP,EAAE2L,EAAE,6BAA6BmT,SAAS,iBACxFjf,KAAK+I,IAAIoM,OAAO6M,SAEhB3R,KAAKvF,KAAK+L,MAAMyM,KAAKwS,KAAM,KAAM,SAASxiB,QACvC6B,OAAOtF,KAAK,aAAazK,KAAK,MAAQjF,EAAE2L,EAAE,gBAAkB,OAE5D,IAAIuqB,OAAQl2B,EAAE,UAEdA,GAAEmT,QAAQzD,KAAK,WAAWrG,KAAK,WAC5B,GAAIkU,SAAUvd,EAAEiL,MAAMuM,KAAK,MAE3B,IAAgB,KAAZ+F,SAAkBxW,QAAQovB,OAAO5Y,SAAU,CAC5C,GAAI6Y,IAAKp2B,EAAE,OACXA,GAAE,QAAQyP,KAAKzP,EAAE2L,EAAE4R,QAAU,aAAaqC,SAASwW,IACnDp2B,EAAE,QAAQyP,KAAKzP,EAAE2L,EAAE4R,QAAU,iBAAiBqC,SAASwW,IACvDA,GAAGxW,SAASsW,OAGC,0BAAZ3Y,UACDvI,OAAOtF,KAAK,kBAAkB4f,QAAQ,eAAe9iB,YAAY,eACjEwI,OAAOtF,KAAK,kBAAkB8H,KAAK,WAAY,YAC/CxC,OAAOtF,KAAK,kBAAkBoP,SAAS,mBAI7C9J,OAAOtF,KAAK,aAAa+P,OAAOyW,MAEhC,IAAIF,UAAWh2B,EAAEmT,QAAQzD,KAAK,YAAY8H,KAAK,QAC3C8D,QAAUtb,EAAEmT,QAAQzD,KAAK,qCAAqC8H,KAAK,QAIvEue,eAAcC,SAAU1a,UACxB,WACAtG,OAAOtF,KAAK,aAAaT,QACzBjP,EAAE,OAAOyP,KAAKzP,EAAE2L,EAAE,oBAAoBiU,SAAS5K,OAAOtF,KAAK,cAE3DqmB,sBAGH/1B,GAAE,OAAO8e,SAAS,gBAAgBrP,KAAKzP,EAAE2L,EAAE,iCAAiCiU,SAAS5K,OAAOtF,KAAK,aAGpG,QAAO,IAGVsF,OAAOtF,KAAK,SAAS2mB,QAAQ,SAAS1sB,IAEnC,MAAiB,MAAbA,GAAGgjB,OAGJ3X,OAAOtF,KAAK,iBAAiBsG,cAEzBhB,OAAOtF,KAAK,kBAAkBogB,GAAG,YAAqC,kBAAvB9vB,EAAEiL,MAAMuM,KAAK,QAC7DxC,OAAOtF,KAAK,kBAAkBH,OAC9ByF,OAAOtF,KAAK,cAAcJ,OAAO5F,IAAI,SACrCsL,OAAOtF,KAAK,aAAaT,QACzB+F,OAAOtF,KAAK,kBAAkB4f,QAAQ,eAAexQ,SAAS,eAC9D9J,OAAOtF,KAAK,kBAAkB8H,KAAK,WAAY,IAC/CxC,OAAOtF,KAAK,kBAAkBlD,YAAY,gBAC1C3M,KAAK+I,IAAIoM,OAAO6M,iBAMjB7M,OAAOtF,KAAK,kBAAkBogB,GAAG,WAGnC9a,OAAOtF,KAAK,cAAcC,QAF1BqF,OAAOtF,KAAK,kBAAkBC,YAiEvC2mB,sBAAuB,SAASX,MAC7B,GAAIzlB,MAAOrQ,KAAKkc,GAEhB7L,MAAKvF,KAAKoR,IAAIwa,UAAUZ,KAAM,SAASxiB,QAEpC,GAAIlK,MAAOsF,QAAQioB,EAAEC,KAAKC,QAAQvjB,OAElCrM,QAAO6vB,EAAI1tB,KACXiH,KAAK0mB,uBAAuBjB,KAAM1sB,OAClC,WACApJ,KAAKyE,MAAM,wCAcjBsyB,uBAAwB,SAASjB,KAAMkB,QACpC,GAAI3mB,MAAOrQ,KAAKkc,IACZ/G,OAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAKkc,IAAI+a,OAAOC,WAAWF,SACzD5tB,KAAO+L,OAAOtF,KAAK,OAGvBzG,MAAKyG,KAAK,qBAAqBsP,OAAO,WACnChf,EAAEiL,MAAM1B,IAAI0B,KAAKyc,QAAU,EAAI,IAGlC,IAAIve,QAASnJ,EAAE,WACfmJ,QAAO2V,SAAS,mBAChB3V,OAAOqO,KAAK,OAAQ,UACpBrO,OAAOsG,KAAKzP,EAAE2L,EAAE,QAEhB,IAAIqrB,QAASh3B,EAAE,WACfg3B,QAAOlY,SAAS,mBAChBkY,OAAOxf,KAAK,OAAQ,UACpBwf,OAAOvnB,KAAKzP,EAAE2L,EAAE,UAEhB,IAAIsrB,WAAYj3B,EAAE,QAClBi3B,WAAUnY,SAAS,cACnB9e,EAAE,SAAS8e,SAAS,4BAA4Bc,SAASqX,WACzDA,UAAUvnB,KAAK,QAAQ+P,OAAOuX,QAC9BC,UAAUvnB,KAAK,QAAQ+P,OAAOtW,QAE9BF,KAAKwW,OAAOwX,WAEZhuB,KAAKE,OAAO,SAASQ,IAClBA,GAAGC,gBAEH,IAAIitB,QAAStoB,QAAQioB,EAAEC,KAAKS,SAASjuB,KAAKlD,IAAI,GAa9C,OAZAmK,MAAKvF,KAAKoR,IAAIob,kBAAkBxB,KAAMkB,OAAQ,WAC3Ch3B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,SAAUkB,QAErDh3B,KAAKyE,MAAM,8BACX,WACAzE,KAAKyF,KAAK,wCAKbzF,KAAK+I,IAAIoM,OAAOC,SAET,IAGV+hB,OAAOrnB,MAAM,WACVO,KAAKvF,KAAKoR,IAAIqb,gBAAgBzB,MAE9B91B,KAAK+I,IAAIoM,OAAOC,WActByM,KAAM,SAASiU,KAAM7I,SAAU1iB,SAAU4rB,SAAU1a,QAAS2a,SAAUlJ,UACnE,GAAI7c,MAAOrQ,KAAKkc,GAEhBlc,MAAK6E,QAAQiE,YAAY,QAASgtB,MAC/BrtB,IAAKqtB,KACLje,KAAMse,UAAYL,KAClBhe,IAAK,OACLxB,KAAM,YACN7E,MAAOpB,KAAK9O,MAAM8yB,UAAUC,KAC5B7Y,QAASA,QACT+b,WAAYpB,WAAY,EACxBlJ,SAAUA,WAAY,EACtBD,SAAUA,SACV+J,OAAQ,OAGXh3B,KAAKsI,KAAKwC,KAAKoR,IAAI2F,KAAKiU,KAAM7I,SAAU,KAAM,KAAM,KAAM1iB,UAEtD6rB,UACDp2B,KAAKsI,KAAK4P,UAAUjJ,IAAI6mB,KAAMK,SAAUlJ,SAAUC,WAUxDuK,MAAO,SAAS3B,MACb,IAAK91B,KAAKK,OAEP,WADAL,MAAK03B,IAAIC,WAAW,YAAa7B,KAIpC,IAAIzlB,MAAOrQ,KAAKkc,IACZ0b,IAAM53B,KAAK6E,QAAQwB,YAAY,oBAC/B1B,KAAO3E,KAAK6E,QAAQwB,YAAY,QAASyvB,SAEzCnxB,MAAK8M,QAAUpB,KAAK9O,MAAM8yB,UAAUE,QACrClkB,KAAKvF,KAAKoR,IAAIub,MAAM3B,KAAM8B,IAAI9B,MAAO,WAClCzlB,KAAKwnB,SAAS/B,QAGjBzlB,KAAKwnB,SAAS/B,OAWpB+B,SAAU,SAAS/B,MAChB,GAAIzlB,MAAOrQ,KAAKkc,IACZ0b,IAAM53B,KAAK6E,QAAQwB,YAAY,oBAC/ByxB,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,SAEjD91B,MAAK6E,QAAQiE,YAAY,YAAauH,KAAKvF,KAAKoR,IAAIC,iBAE7Cyb,KAAI9B,MACX91B,KAAK6E,QAAQiE,YAAY,eAAgB8uB,KACzC53B,KAAK6E,QAAQsP,eAAe,SAAU2hB,MACtC91B,KAAK6E,QAAQsP,eAAe,OAAQ2hB,MAEpC91B,KAAK+I,IAAI9B,OAAOmO,MAAM0gB,MAEtB91B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,QAASzlB,KAAK9O,MAAM8yB,UAAUG,QAEpEsD,SAASN,YACXx3B,KAAK+I,IAAIC,OAAOoP,MAAM0d,OAY5BiC,QAAS,SAASjC,KAAM5R,WAAY9G,UACjC,IAAKpd,KAAKK,OAEP,WADAL,MAAK03B,IAAIC,WAAW,cAAe7B,KAItC,IAAIzlB,MAAOrQ,KAAKkc,IACZ4b,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,KAEjD91B,MAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,QAASzlB,KAAK9O,MAAM8yB,UAAUI,mBACzEz0B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,6BAGZ,IAAIsK,IAAKC,KACN9V,GAAIu1B,KACJxf,KAAM,QACN9C,EAAE,SACF+C,MAAO7H,QAAQtM,GAAG41B,YAClBxkB,EAAE,UAELxT,MAAKkc,IAAIpR,KAAK0L,OAAOJ,GAAG6hB,OAAQ/T,WAAY9G,UAExC0a,SAASN,YACVx3B,KAAKsI,KAAK4P,UAAUya,OAAOmD,OAUjC1gB,MAAO,SAAS0gB,MACb,GAAIzlB,MAAOrQ,KAAKkc,IACZ4b,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,SAEjDzlB,MAAK6nB,aAAapC,KAElB,IAAIC,WAAY1lB,KAAKvF,KAAKoR,IAAIC,UAAU7D,QAAQwd,KAE5CC,YAAY,IACb1lB,KAAKvF,KAAKoR,IAAIC,UAAU6Z,OAAOD,UAAW,SACnC1lB,MAAKvF,KAAKoR,IAAI+Z,MAAMH,OAG9B91B,KAAK6E,QAAQiE,YAAY,YAAauH,KAAKvF,KAAKoR,IAAIC,WAEhD2b,SAASrmB,QAAUpB,KAAK9O,MAAM8yB,UAAUI,mBACzCpkB,KAAKwnB,SAAS/B,MAGb91B,KAAK6E,QAAQwB,YAAY,OAAQyvB,QAClCgC,SAASrmB,MAAQpB,KAAK9O,MAAM8yB,UAAUK,UAEtC10B,KAAK6E,QAAQiE,YAAY,QAASgtB,KAAMgC,YAY9CK,WAAY,SAAStJ,MAAOtf,KACzB,GAAIc,MAAOrQ,KAAKkc,GAEhB,KAAKlc,KAAKsI,KAAKwC,MAAQ9K,KAAKK,OAIzB,WAHAF,GAAE8H,UAAU+C,IAAI,gBAAiB,WAC9BqF,KAAK8nB,WAAW,KAAM5oB,MAK5B,IAAI5K,MAAO4K,IAAI5K,OACXvD,IAAMpB,KAAKuM,SAAS5H,KAAK8D,KACzBqvB,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASjF,IAEjD,IAAsB,cAAlB02B,SAASxhB,KAAb,CAIA/G,IAAI0P,SAAS,iBAEb,IAAI2Y,KAAM53B,KAAK6E,QAAQwB,YAAY,oBAC/B+xB,YAAcR,IAAIx2B,KAClBi3B,OAASl4B,EAAE,mCAEfoP,KAAIM,KAAK,gCAAgCyoB,MAAMD,OAE/C,IAAIE,IAAKp4B,EAAE,+CACXoP,KAAIM,KAAK,cAAc3K,QAAQqzB,IAE/BA,GAAGrwB,GAAG,QAAS,SAAS4B,IACrB9J,KAAKkc,IAAIsc,mBAAmBp3B,IAAM0I,GAAGqY,cAAcC,WAAa,EAAK,IAAK,KAI7E,IAAIqW,UAAW,SAAS3uB,IACjBA,IACDA,GAAGC,gBAGN,IAAI2uB,gBACA/T,GAAK4T,GAAG1oB,KAAK,YACb8oB,WAAa,IAIjB,IAFAJ,GAAGzT,YAAY,eAEXyT,GAAG1T,SAAS,eAAgB,CAC7B1kB,EAAE,QAAQ2P,QACV3P,EAAE,QAAQ6K,IAAI,QAASytB,UAEvB9T,GAAGI,WAAW,WACXJ,GAAGhgB,KAAK,QAASsC,OAAO+F,WAAWyrB,SAAU,QAC7CzT,WAAW,WACX/d,OAAO8G,aAAa4W,GAAGhgB,KAAK,YAC5Bmf,IAAI,OAAQ,MAEf,IAAI8U,WAAkD,GAAtCrpB,IAAIM,KAAK,kBAAkB+W,SACvCiS,YAAcN,GAAG1oB,KAAK,MAAM+W,SAAW,CAC3C+R,YAAcE,YAAcD,UAAaA,UAAYC,YAErDH,aACG9M,SAAU,MACVhF,OAAQ+R,WAAa,KACrBnnB,MAAO,OACPmZ,MAAO,OACPkB,QAAS,OAGZ0M,GAAGzU,IAAI,SAAU6U,WAAa,UAE9BD,cACGX,SAAS,GAGZpT,GAAGhN,KAAK,QAAS,IACjB4gB,GAAGzU,IAAI,SAAU,IAEjB7c,OAAO8G,aAAa4W,GAAGhgB,KAAK,UAC5BxE,EAAE,QAAQ0J,IAAI,QAAS,KAAM4uB,UAC7B9T,GAAG9a,IAAI,wBAKV,OAFA8a,IAAGmU,WAAWJ,cAEP,EAGVL,QAAOvoB,MAAM2oB,UAEblpB,IAAIrH,GAAG,SAAU,WAEdlI,KAAKkc,IAAIsc,mBAAmBp3B,IAAK,IAGpC,IAAI22B,SAAU53B,EAAE,MAChB43B,SAAQnoB,KAAKzP,EAAE2L,EAAE,YACjBisB,QAAQ9Y,SAAS,gBACjB8Y,QAAQtoB,OACRsoB,QAAQjoB,MAAM,WACXO,KAAK0nB,QAAQ32B,OAGhBmO,IAAIM,KAAK,qBAAqB+P,OAAOzf,EAAE,QAAQyf,OAAOmY,SAEtD,IAAIrB,WAAYv2B,EAAE,MAYlB,IAXAu2B,UAAU9mB,KAAKzP,EAAE2L,EAAE,cACnB4qB,UAAUzX,SAAS,kBACnByX,UAAUjnB,OACVinB,UAAU5mB,MAAM,WACbO,KAAKomB,sBAAsBr1B,OAG1BiP,KAAKvF,MACNyE,IAAIM,KAAK,qBAAqB+P,OAAOzf,EAAE,QAAQyf,OAAO8W,YAGrDoB,SAASrmB,MAAQpB,KAAK9O,MAAM8yB,UAAUC,KAAM,CAC7C,GAAIyE,QAAS/4B,KAAK6E,QAAQwB,YAAY,SAAUjF,QAEhDjB,GAAEqJ,KAAKuvB,OAAQ,SAAS9L,SAAUvjB,KAC/B2G,KAAK2oB,aAAa53B,IAAK6rB,SAAUvjB,KAE7BujB,WAAamL,aAAe1uB,IAAIuvB,cAAgB5oB,KAAK9O,MAAMoyB,YAAYI,OACxEgE,QAAQroB,OAGPud,WAAamL,aAAgB1uB,IAAIuvB,cAAgB5oB,KAAK9O,MAAMoyB,YAAYI,OAASrqB,IAAIuvB,cAAgB5oB,KAAK9O,MAAMoyB,YAAYI,OAC7H2C,UAAUhnB,SAKnB,GAAI+nB,OAAQt3B,EAAE,MACds3B,OAAM7nB,KAAKzP,EAAE2L,EAAE,UACf2rB,MAAMxY,SAAS,cACfwY,MAAM3nB,MAAM,WACTO,KAAKonB,MAAMr2B,OAGdmO,IAAIM,KAAK,qBAAqB+P,OAAOzf,EAAE,QAAQyf,OAAO6X,UAazD9hB,WAAY,SAASkZ,MAAOtb,KAAMf,OAAQqG,UACvC,GAAIxI,MAAOrQ,KAAKkc,IACZ4Z,KAAO91B,KAAKuM,SAASgH,MACrBukB,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,MAC7CoD,MAAQ/4B,EAAE0Y,UAAUhJ,KAAK,aAAenB,QAAQtM,GAAGgzB,IAAM,KAE7D,IAAI/kB,KAAKvF,KAAKoR,IAAIC,UAAU7D,QAAQwd,MAAQ,GAAsB,IAAjBoD,MAAMryB,OACpD,OAAO,CAGV,IAAImR,KAAMtJ,QAAQiI,mBAAmBpD,OAAS,GAC1C0Z,SAAWve,QAAQI,aAAakJ,KAChC4f,IAAM53B,KAAK6E,QAAQwB,YAAY,oBAC/B0yB,OAAS/4B,KAAK6E,QAAQwB,YAAY,SAAUyvB,UAC5CqD,YAAa,EACbC,QAUJ,IARAF,MAAMrpB,KAAK,UAAUrG,KAAK,WACvB,GAAI6vB,MAAOl5B,EAAEiL,MAAMuM,KAAK,OAExB3X,MAAKyE,MAAM,cAAe40B,MAE1BD,MAAMzvB,KAAK0vB,QAGVvB,SAASrmB,QAAUpB,KAAK9O,MAAM8yB,UAAUC,KAAM,CAK/C,GAFAt0B,KAAK6E,QAAQiE,YAAY,YAAa9I,KAAKsI,KAAKwC,KAAKoR,IAAIC,WAEZ,IAAzCnc,KAAK+I,IAAIC,OAAOlE,QAAQgxB,MAAMjvB,OAAc,CAC7C,GAAIwR,IAAKrY,KAAK6E,QAAQwB,YAAY,YAClCgS,IAAG1O,KAAKmsB,MACR91B,KAAK6E,QAAQiE,YAAY,YAAauP,IAEtCrY,KAAK+I,IAAIC,OAAOiG,IAAI6mB,MAGnB31B,EAAE,gBAAgB0G,OAAS,IAE5BsyB,YAAa,EACbn5B,KAAK+I,IAAIoM,OAAOC,SAItB,GAAI3M,KAAMywB,MAAMrpB,KAAK,QAAQ8H,KAAK,QAAU,IAE5C,IAAe,IAAXnF,OACD,GAAI0mB,MAAMrpB,KAAK,WAAWhJ,OAAS,EAEhCkyB,UAEA/4B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,+BAGZuE,KAAK+E,MAAM0gB,UACP,OACGiD,QAAO9L,UAEd5c,KAAKipB,aAAaxD,KAAM7I,SAExB,IAAIsM,aAAcL,MAAMrpB,KAAK,QAAQ8H,KAAK,OAEtCyhB,OAAM9gB,QAAQ,QAAS,GAAMihB,aAG9BA,YAAc7qB,QAAQI,aAAayqB,aAGnCR,OAAOQ,gBAEPv5B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,mBACN0tB,YAAavM,SACbsM,YAAaA,YACbE,qBAAqB,QAGF,IAAjBL,MAAMvyB,QAAkC,IAAjBuyB,MAAMvyB,QAAgBuyB,MAAM9gB,QAAQ,QAAS,IAE5EtY,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,qBACNmhB,SAAUA,SACVwM,qBAAqB,WAQ5BV,OAAO9L,WAAa2K,IAAI9B,OAC1B91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,oBACNmhB,SAAUA,SACVwM,qBAAqB,MAK9BV,OAAO9L,WACJxkB,IAAKA,IACL+J,OAAQA,OACRknB,QAASnmB,KACT0lB,YAAaC,MAAMrpB,KAAK,QAAQ8H,KAAK,eACrC/J,KAAMsrB,MAAMrpB,KAAK,QAAQ8H,KAAK,SAGjCtH,KAAK2oB,aAAalD,KAAM7I,SAAU8L,OAAO9L,UAoB5C,OAjBAjtB,MAAK6E,QAAQiE,YAAY,SAAUgtB,KAAMiD,QAEzC54B,EAAEqJ,KAAK4vB,MAAO,SAAS3vB,MAAO4vB,MAGQ,kBAAxBhpB,MAAKspB,SAASN,OACtBhpB,KAAKspB,SAASN,MAAMlwB,KAAKiC,KAAM0qB,KAAM7I,SAAU8L,OAAO9L,cAAiBiM,OAG1E/4B,EAAE8H,UAAUkH,QAAQ,mBAAoBkqB,KAAMvD,KAAM7I,SAAU8L,OAAO9L,cAAiBpU,aAGrFsgB,YAEDn5B,KAAK+I,IAAI9B,OAAOua,KAAKsU,OAGjB,GAYVf,gBAAiB,SAASlG,MAAOtb,KAAMsF,UACpC,GAAIxI,MAAOrQ,KAAKkc,IACZgd,MAAQ/4B,EAAE0Y,UAAUhJ,KAAK,YAAcnB,QAAQtM,GAAGgzB,IAAM,MACxDU,KAAO91B,KAAKuM,SAASgH,KAEzB,IAAqB,IAAjB2lB,MAAMryB,QAAgBwJ,KAAKvF,KAAKoR,IAAIC,UAAU7D,QAAQwd,MAAQ,EAC/D,OAAO,CAGV,IAAIpwB,OAAQvF,EAAE0Y,UAAUhJ,KAAK,SACzB4C,UAAY/M,MAAM2hB,WAAW,GAAGC,OAMpC,OAJAtnB,MAAKyE,MAAM,eAAgBgO,WAE3BtS,EAAE8H,UAAUkH,QAAQ,kBAAmBsD,UAAWqjB,QAE3C,GAQV6D,UAEGC,IAAK,SAAS9D,KAAM7I,SAAUtoB,MAC3B,GAAI0L,MAAOrQ,KAAKkc,IACZ0b,IAAM53B,KAAK6E,QAAQwB,YAAY,mBAEnCuxB,KAAI9B,MAAQ7I,SACZjtB,KAAK6E,QAAQiE,YAAY,eAAgB8uB,KAErCjzB,KAAKs0B,cAAgB5oB,KAAK9O,MAAMoyB,YAAYI,OAC7C/zB,KAAK+I,IAAI9B,OAAOf,IAAI4vB,MAAMjmB,KAAK,iBAAiBH,MAGnD,IAAIooB,UAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,KAE7CgC,UAASrmB,QAAUpB,KAAK9O,MAAM8yB,UAAUC,OACzCwD,SAASrmB,MAAQpB,KAAK9O,MAAM8yB,UAAUE,QAEtCv0B,KAAK6E,QAAQiE,YAAY,QAASgtB,KAAMgC,YAI9C+B,IAAK,SAAS/D,MACX91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,8BAIfguB,IAAK,SAAShE,MACX91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,+BAIfiuB,IAAK,SAASjE,MACX91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,+BAIfkuB,IAAK,SAASlE,MACX91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,iCAIfmuB,IAAK,SAASnE,MACX,GAAIzlB,MAAOrQ,KAAKkc,IACZ4b,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,SAE7CgC,UAAS5K,UAAY4K,SAASd,SAAW3mB,KAAK9O,MAAMozB,WAAWC,QAChEvkB,KAAKvF,KAAKoR,IAAIge,kBAAkBpE,MACxBgC,SAAS5K,UAAuC,mBAApB4K,UAASd,QAA8C,OAApBc,SAASd,OAChF3mB,KAAKvF,KAAKoR,IAAIob,kBAAkBxB,KAAMgC,SAASd,OAAQ,WACpDh3B,KAAKyE,MAAM,qCACX,WACAzE,KAAKyF,KAAK,+CAKbzF,KAAK+I,IAAIwf,qBACNC,OAAQroB,EAAE2L,EAAE,iBACZpH,IAAKvE,EAAE2L,EAAE,wDACT2c,SACGI,MAAO1oB,EAAE2L,EAAE,WACXH,GAAI,WACD3L,KAAK+I,IAAIoM,OAAOC,QAEhB/E,KAAKvF,KAAKoR,IAAIge,kBAAkBpE,MAEhC91B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,SAAUzlB,KAAK9O,MAAMozB,WAAWC,WAGjF1O,QACG2C,MAAO1oB,EAAE2L,EAAE,UACXH,GAAI,WACD0E,KAAKomB,sBAAsBX,WAO1CqE,IAAK,SAASrE,KAAM7I,SAAUtoB,KAAMu0B,OACjC,GAAItB,KAAM53B,KAAK6E,QAAQwB,YAAY,mBAE/BuxB,KAAI9B,QAAU7I,UACfjtB,KAAKkc,IAAI9G,MAAM0gB,MACf91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,wBAGZ9L,KAAKkc,IAAIke,WAAWtE,KAAMoD,QAE1Bl5B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,2BACNmhB,SAAUA,SACVwM,qBAAqB,OAMjCY,IAAK,SAASvE,KAAM7I,SAAUtoB,KAAMu0B,OACjC,GAAItB,KAAM53B,KAAK6E,QAAQwB,YAAY,mBAE/BuxB,KAAI9B,QAAU7I,UACfjtB,KAAKkc,IAAI9G,MAAM0gB,MACf91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,wBAGZ9L,KAAKkc,IAAIke,WAAWtE,KAAMoD,QAE1Bl5B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,2BACNmhB,SAAUA,SACVwM,qBAAqB,OAMjCa,IAAK,SAASxE,KAAM7I,UACjB,GAAI2K,KAAM53B,KAAK6E,QAAQwB,YAAY,mBAE/BuxB,KAAI9B,QAAU7I,UACfjtB,KAAKkc,IAAI9G,MAAM0gB,MAEf91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,8BAGZ9L,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,gCACNmhB,SAAUA,SACVwM,qBAAqB,OASjCc,IAAK,SAASzE,KAAM7I,UACjB,GAAI2K,KAAM53B,KAAK6E,QAAQwB,YAAY,mBAE/BuxB,KAAI9B,QAAU7I,UACfjtB,KAAKkc,IAAI9G,MAAM0gB,MACf91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,8BAGZ9L,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,gCACNmhB,SAAUA,SACVwM,qBAAqB,OASjCe,IAAK,SAAS1E,MACX91B,KAAKkc,IAAI9G,MAAM0gB,MACf91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,4BAYlBsuB,WAAY,SAAStE,KAAMoD,OACxB,GAAIuB,QACD5iB,KAAMqhB,MAAMrpB,KAAK,SAAS8H,KAAK,QAC/BlP,IAAKywB,MAAMrpB,KAAK,SAAS8H,KAAK,QAE7B+iB,OAASxB,MAAMrpB,KAAK,UAAUD,MAEnB,MAAX8qB,SACDA,OAASv6B,EAAE2L,EAAE,UAAY,KAAO4uB,OAEN,gBAAfD,OAAM5iB,MAA0C,gBAAd4iB,OAAMhyB,IAChDzI,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQE,GACxB/V,IAAKg2B,OACLra,OAAQoa,QAGXz6B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKg2B,WAcjB1B,aAAc,SAASlD,KAAM7I,SAAU0N,YACpC,GAAIprB,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI4vB,MAC1BrtB,IAAMkyB,WAAWlyB,IACjBmyB,OAAS56B,KAAKuM,SAASvM,KAAK6E,QAAQC,QAAQ,QAC5C+1B,EAAItrB,IAAIM,KAAK,sCAAwCod,SAAW,KAEpE,IAAiB,IAAb4N,EAAEh0B,OAAc,CACjB,GAAI4S,OAAQzZ,KAAK+P,WAAWkd,SAO5B,IALA4N,EAAI16B,EAAE,oEACN06B,EAAEljB,KAAK,gBAAiBsV,UAExB1d,IAAIM,KAAK,uBAAuB+P,OAAOib,GAEpB,gBAARpyB,KAAkB,CAC1BoyB,EAAEhrB,KAAK,cAAcD,KAAK5P,KAAKuM,SAAS9D,MACxCoyB,EAAEljB,KAAK,WAAY3X,KAAKuM,SAAS9D,MACjCgR,MAAQA,MAAQ,KAAOzZ,KAAKuM,SAAS9D,IAErC,IAAI9D,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASrG,KAAKuM,SAAS9D,KAE9C,QAAT9D,MAAiC,gBAATA,MACzB3E,KAAK+I,IAAI6D,aAAaiuB,EAAG76B,KAAKuM,SAAS9D,KAAM9D,KAAKiV,QAC1C5Z,KAAKuM,SAAS9D,OAASmyB,QAC/B56B,KAAK+I,IAAI6D,aAAaiuB,EAAG76B,KAAKuM,SAAS9D,KAAM,WAGhDoyB,GAAEhrB,KAAK,cAAcD,KAAKqd,UAE1BjtB,KAAK+I,IAAI6a,kBAAkBiX,EAAEhrB,KAAK,gBAAiBod,SAGtD4N,GAAEljB,KAAK,QAAS8B,SAWtB6f,aAAc,SAASxD,KAAM7I,UAC1B,GAAI1d,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI4vB,MAC1B+E,EAAItrB,IAAIM,KAAK,sCAAwCod,SAAW,KAEhE4N,GAAEh0B,OAAS,GACZg0B,EAAE1kB,UAWRqiB,mBAAoB,SAAS1C,KAAM1R,QAChC,GAAI7U,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI4vB,KAE9B,KAAIvmB,IAAIM,KAAK,oBAAoBgV,SAAS,eAA1C,CAIA,GAAItB,IAAKhU,IAAIM,KAAK,6BACdwU,YAAcd,GAAG/R,QACjBA,MAAQjC,IAAIM,KAAK,oBAAoB2B,QACrCse,KAAOxsB,SAASigB,GAAGO,IAAI,QAE3BgM,MAAQgL,MAAMhL,MAAS,EAAI1L,OAAS0L,KAAO1L,OAEvCC,YAAc7S,OAASse,KAAO,EAC/BA,KAAO,EACCA,KAAOte,MAAQ6S,cACvByL,KAAOte,MAAQ6S,aAGlBd,GAAGO,IAAI,OAAQgM,KAAO,QASzBoI,aAAc,SAASpC,MACpB,GAAIvmB,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI4vB,KAE9BvmB,KAAIM,KAAK,oBAAoBT,QAE7BpP,KAAK6E,QAAQiE,YAAY,SAAUgtB,UAWtCd,mBAAoB,SAASnb,SAC1B,GAAIoB,IAAK9a,EAAE0Z,SAASlC,KAAK,KAEzB,IAAIsD,IAAMjb,KAAKwL,UAAUxL,KAAKua,QAAQsW,OAAO5V,KAE1C,OAAO,CAGV,IAAI1H,MAAOpT,EAAE0Z,SAASlC,KAAK,QACvBqC,KAAO7Z,EAAE0Z,SAAShK,KAAK,cAAcD,OACrCkmB,KAAO91B,KAAKuM,SAASgH,MACrB0Z,SAAWve,QAAQI,aAAaJ,QAAQiI,mBAAmBpD,MAE/D,IAAa,KAATyG,KAAa,CACd,GAAII,OAAQja,EAAE0Z,SAAShK,KAAK,iCACxBwK,MAASD,MAAMvT,OAAS,EAAK,GAAIxD,MAAK+W,MAAMzC,KAAK,UAAY,GAAItU,KACrEgX,OAAQA,MAAM7V,SAEd,IAAIu0B,QAAS/4B,KAAK6E,QAAQwB,YAAY,SAAUyvB,UAE5CzV,SACJA,QAAOxI,KAAOoV,SAEV8L,OAAO9L,WAA6C,gBAAzB8L,QAAO9L,UAAUxkB,MAC7C4X,OAAO5X,IAAMswB,OAAO9L,UAAUxkB,KAGjCzI,KAAK+I,IAAI9B,OAAOtB,KAAKmwB,MAErB91B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQE,GACxB/V,IAAKsV,KACLK,MAAOA,MACPgG,OAAQA,SAId,GAAI5E,SAAUtb,EAAE0Z,SAAShK,KAAK,UAE9B,IAAI4L,QAAQ5U,OAAS,EAAG,CACrB,GAAIixB,UAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,KAEjDgC,UAASrc,QAAUA,QAAQ7L,OAE3B5P,KAAK6E,QAAQiE,YAAY,QAASgtB,KAAMgC,UAExC93B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,sBACNmhB,SAAUA,SACVxR,QAASA,QAAQ7L,WAK1B,OAAO,GAUVqlB,eAAgB,SAASpb,SACtB,GAAIic,MAAO91B,KAAKuM,SAASpM,EAAE0Z,SAASlC,KAAK,QAEzC,OAAyC,KAArC3X,KAAK+I,IAAI9B,OAAOf,IAAI4vB,MAAMjvB,SAI1B1G,EAAE0Z,SAAShK,KAAK,kBAAkBhJ,OAAS,EAC5C7G,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,qCAEJ3L,EAAE0Z,SAAShK,KAAK,aAAahJ,OAAS,EAC9C7G,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,gCAEJ3L,EAAE0Z,SAAShK,KAAK,kBAAkBhJ,OAAS,EACnD7G,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,qCAGZ9L,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAK00B,KACLxb,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,sBAIf9L,KAAKyE,MAAM,2BAA6BqxB,KAAM31B,EAAE0Z,SAAShK,KAAK,SAAS,KAEhE,IAaVkrB,YAAa,SAASlM,MAAOiH,KAAMnxB,KAAMqnB,KACtC,GAAI3b,MAAOrQ,KAAKkc,GAEhB,IAAkB,cAAdvX,KAAK2R,KAAT,CAIA,GAAI0kB,IAAK76B,EAAE,MACXA,GAAE,UAAU8e,SAAS,+BAA+Bc,SAASib,IAC7D76B,EAAE,UAAUyP,KAAKzP,EAAE2L,EAAE,aAAaiU,SAASib,IAC3CA,GAAG/b,SAAS,wBACZ+b,GAAGlrB,MAAM,SAAShG,IAKf,MAJAA,IAAGC,iBAEH/J,KAAKsI,KAAK4P,UAAU+iB,WAAWnF,OAExB,IAGV9J,IAAInc,KAAK,iBAAiB+P,OAAOzf,EAAE,QAAQyf,OAAOob,KAE9Cr2B,KAAK6yB,YACNxL,IAAI/M,SAAS,mBAGhB+M,IAAIniB,IAAI,SAASiG,MAAM,WACpB,GAAInL,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASyvB,KAEzCnxB,MAAK8M,QAAUpB,KAAK9O,MAAM8yB,UAAUC,MAAQ3vB,KAAK8M,QAAUpB,KAAK9O,MAAM8yB,UAAUG,QACjFnkB,KAAKyR,eAEL3hB,EAAE,cAAcuJ,IAAIgF,QAAQsjB,eAAertB,KAAK8D,MAChDtI,EAAE,kBAAkBuJ,IAAI/E,KAAKsoB,UAC7B9sB,EAAE,kBAAkB8Y,KAAK,UAAWtU,KAAK6yB,YACzCr3B,EAAE,kBAAkB8Y,KAAK,UAAWtU,KAAKuoB,UACzC/sB,EAAE,+BAA+BsP,QAEjCzP,KAAK+I,IAAI9B,OAAOua,KAAKsU,QAI3B9J,IAAInc,KAAK,gBAAgBC,MAAM,WAM5B,MALInL,MAAK6yB,YACNx3B,KAAKsI,KAAK4P,UAAUya,OAAOmD,MAG9BzlB,KAAKonB,MAAM3B,OACJ,MASbmB,QAOGC,WAAY,SAAS9tB,MAClB,GAAMA,eAAgBsF,SAAQioB,EAAEC,KAAhC,CAIA,GAAIxxB,MAAOjF,EAAE,SAab,IAXAiF,KAAKuS,KAAK,YAAavO,KAAKkN,MAC5BlR,KAAK6Z,SAAS,mBAEV7V,KAAKqQ,OACNrU,KAAKwa,OAAO,OAASxW,KAAKqQ,MAAQ,SAGjCrQ,KAAK8xB,cACN91B,KAAKwa,OAAO,MAAQxW,KAAK8xB,aAAe,QAGvC9xB,KAAK+xB,OAAOt0B,OAAS,EAAG,CACzB,GAAImK,EACJ,KAAKA,EAAI,EAAGA,EAAI5H,KAAK+xB,OAAOt0B,OAAQmK,IACjC5L,KAAKwa,OAAO5f,KAAKkc,IAAI+a,OAAOmE,YAAYhyB,KAAK+xB,OAAOnqB,KAI1D,MAAO7Q,GAAE,SAASyf,OAAOxa,MAAMA,SASlCg2B,YAAa,SAASC,OACnB,GAAIhrB,MAAOgrB,OAASjwB,IACpBiwB,OAAQ,IACR,IAAI9X,IAAI7Z,IAAKkf,IAAK5X,EAAGuc,EAAGxP,EAAGud,EAAGC,IAAKC,KAAMC,MAErCxgB,GAAK,mBAAqB5K,KAAW,KAAI,IAAMA,KAAU,IACzDjL,KAAOjF,EAAE,QAGb,IAFAiF,KAAK6Z,SAAS,cAEV5O,KAAKwY,MAAO,CACb,GAAIA,OAAQ1oB,EAAE,UACd0oB,OAAMlR,KAAK,MAAOsD,IAClB4N,MAAM5J,SAAS,0BACf4J,MAAMjZ,KAAKS,KAAKwY,OAChBA,MAAM9I,SAAS3a,MAGlB,OAAQiL,KAAKiG,KAAKzH,eACf,IAAK,cACL,IAAK,aAMF,IALA0U,GAAKpjB,EAAE,YACW,eAAdkQ,KAAKiG,MACNiN,GAAG5L,KAAK,WAAY,YAGlB3G,EAAI,EAAGA,EAAIX,KAAKzK,QAAQiB,OAAQmK,IAElC,GADA4X,IAAMvY,KAAKzK,QAAQoL,GACnB,CAKA,IAFAuc,EAAIptB,EAAEyoB,IAAI8S,UAEL3d,EAAI,EAAGA,EAAI1N,KAAKsrB,OAAQ5d,IAC1Bud,EAAIjrB,KAAKsrB,OAAO5d,GACZud,EAAElrB,aAAewY,IAAIriB,MAAM6J,YAC5Bmd,EAAE5V,KAAK,WAAY,WAGzB4V,GAAExN,SAASwD,IAGd,KACH,KAAK,aACL,IAAK,YACFA,GAAKpjB,EAAE,cACPo7B,IAAO,WACJ,GAAIvqB,GAAG4qB,QAEP,KADAA,YACK5qB,EAAI,EAAGA,EAAIX,KAAKsrB,OAAO90B,OAAQmK,IACjCwqB,KAAOnrB,KAAKsrB,OAAO3qB,GACnB4qB,SAASjyB,KAAK6xB,KAEjB,OAAOI,WACPzyB,KAAKiC,MAAOyW,KAAK,MAChB0Z,KACDhY,GAAG3T,KAAK2rB,IAEX,MACH,KAAK,cACL,IAAK,UACL,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,aAMF,OALAhY,GAAKpjB,EAAE,WAEHkQ,KAAKsrB,QACNpY,GAAG5L,KAAK,QAAStH,KAAKsrB,OAAO,IAExBtrB,KAAKiG,KAAKzH,eACf,IAAK,cACF0U,GAAG5L,KAAK,OAAQ,QAChB4L,GAAG5L,KAAK,cAAetH,KAAKwrB,MAC5BtY,GAAGtE,SAAS,eACZ,MACH,KAAK,UACFsE,GAAG5L,KAAK,OAAQ,YAChBjO,IAAkC,OAA3B+xB,MAAQprB,KAAKsrB,OAAO,KAAwC,kBAAnBF,OAAMrrB,SAA0BqrB,MAAMrrB,WAAsB,QACxG1G,KAAgB,SAARA,KAA0B,MAARA,KAC3B6Z,GAAG5L,KAAK,UAAW,UAEtB,MACH,KAAK,eACF4L,GAAG5L,KAAK,OAAQ,YAChB4L,GAAGtE,SAAS,eACZ,MACH,KAAK,SACFsE,GAAG5L,KAAK,OAAQ,SAChB,MACH,KAAK,QACF4L,GAAG5L,KAAK,OAAQ,QAAQA,KAAK,WAAY,YACzC4L,GAAGtE,SAAS,eACZ,MACH,KAAK,aACFsE,GAAG5L,KAAK,OAAQ,SAChB4L,GAAGtE,SAAS,gBAElB,KACH,SACGsE,GAAKpjB,EAAE,uBAGbojB,GAAG5L,KAAK,KAAMsD,IACdsI,GAAG5L,KAAK,OAAQtH,KAAU,KAEtBA,KAAKyrB,UACNvY,GAAG5L,KAAK,WAAYtH,KAAKyrB,SAG5B,IAAIC,OAAQxY,EAOZ,OANAA,IAAKpjB,EAAE,SACPojB,GAAGtE,SAAS,YACZsE,GAAG3D,OAAOmc,OAEV32B,KAAKwa,OAAO2D,IAELne,KAAKc,IAAI,MAKzB/F,EAAE8H,UAAUC,GAAG,mBAAoBlI,KAAKkc,IAAIic,YAC5Ch4B,EAAE8H,UAAUC,GAAG,kBAAmBlI,KAAKkc,IAAI6e,aAE3C56B,EAAE8H,UAAUC,GAAG,gBAAiB,WAC7BlI,KAAKkc,IAAIvW,SAGZxF,EAAE8H,UAAU+C,IAAI,iBAAkB,WAC/BhL,KAAK6E,QAAQsP,eAAe,aAC5BnU,KAAK6E,QAAQsP,eAAe,kBAS/BnU,KAAK0Y,QAEFsjB,KAAM,EAON7jB,KAAM,WAEHhY,EAAE,sBAAsBgW,SACxBhW,EAAE,uBAAuByP,KAAK,IAC9B5P,KAAK0Y,OAAOsjB,KAAO,CAEnB,IAAIC,OAAQj8B,KAAK6E,QAAQwB,YAAY,eACjCF,IAAM,IAEV,KAAKA,MAAO81B,OACT,GAAIA,MAAM1iB,eAAepT,KAAM,CAC5B,GAAIuD,KAAMuyB,MAAM91B,IAEhBnG,MAAK0Y,OAAOzJ,IAAIvF,IAAKA,IAAIoH,OAAQpH,IAAIqH,SAAU5K,OAgBxD8I,IAAK,SAAStK,KAAMmM,OAAQC,SAAUkK,IACnC,GAAIihB,KAAMjhB,IAAM5X,KAAK84B,MACjBpW,KAAO5lB,EAAE,mBACTuY,OAASvY,EAAE,SACXuE,IAAMC,KAAKD,IACX2U,YAAc1U,KAAK0U,WAEvBX,QAAO5I,MAAM,WAKV,MAJA9P,MAAK0Y,OAAOvC,OAAO+lB,KAEnBl8B,KAAK6Q,KAAKC,OAAQC,WAEX,IAGNpM,KAAK2R,MACNoC,OAAOuG,SAAS,QAAUta,KAAK2R,KAAO,QAGzCoC,OAAO9I,KAAKlL,KACZgU,OAAOf,KAAK,QAAS0B,aAAe,IACpCX,OAAOf,KAAK,WAAYukB,KACxBnW,KAAKnG,OAAOlH,QAEZvY,EAAE,uBAAuByP,OAAO5P,KAAK0Y,OAAOsjB,KAE5C,IAAIC,OAAQj8B,KAAK6E,QAAQwB,YAAY,cAerC,IAbK4U,KACFghB,MAAMC,MACHx3B,IAAKA,IACL2U,YAAaA,YACb/C,KAAM3R,KAAK2R,KACXxF,OAAQA,OACRC,SAAUA,UAEb/Q,KAAK6E,QAAQiE,YAAY,UAAWmzB,OAEpCj8B,KAAKqN,aAAamM,OAAO9U,IAAK2U,aAAe,GAAI,MAAM,EAAMrZ,KAAKuB,MAAMK,OAAOG,SAG9E2P,OAAOC,KAAKsqB,OAAOp1B,OAAS,GAA4C,IAAvCkf,KAAKlW,KAAK,kBAAkBhJ,OAAc,CAE5E,GAAIu1B,UAAWj8B,EAAE,OACjBi8B,UAASnd,SAAS,8CAClBmd,SAASxsB,KAAKzP,EAAE2L,EAAE,cAClBswB,SAASrL,UAAUhL,MACnBqW,SAAStsB,MAAM9P,KAAK0Y,OAAO2jB,eACnB3qB,QAAOC,KAAKsqB,OAAOp1B,QAAU,GAA4C,IAAvCkf,KAAKlW,KAAK,kBAAkBhJ,QAEtEkf,KAAKlW,KAAK,kBAAkBsG,UAUlCA,OAAQ,SAAS+lB,KACd,GAAI3Y,IAAKpjB,EAAE,4BAA8B+7B,IAAM,IAE/C3Y,IAAGpN,SACHhW,EAAE,uBAAuByP,OAAO5P,KAAK0Y,OAAOsjB,MAAQ,GAEpD,IAAIhwB,GAAIhM,KAAK6E,QAAQwB,YAAY,qBAC1B2F,GAAEkwB,KACTl8B,KAAK6E,QAAQiE,YAAY,UAAWkD,GAEhC0F,OAAOC,KAAK3F,GAAGnF,QAAU,GAAiD,IAA5C1G,EAAE,+BAA+B0G,QAEhE1G,EAAE,+BAA+BgW,UAOvCkmB,UAAW,WACRr8B,KAAK0Y,OAAOsjB,KAAO,EACnBh8B,KAAK6E,QAAQiE,YAAY,cAEzB3I,EAAE,mBAAmBiP,QACrBjP,EAAE,uBAAuByP,KAAK,KAUjC0sB,IAAK,SAASxrB,QACX,GAAImrB,OAAQj8B,KAAK6E,QAAQwB,YAAY,eACjCi2B,KAAM,CAUV,OARAn8B,GAAEqJ,KAAKyyB,MAAO,SAASxyB,MAAOC,KAC3B,GAAIA,IAAIoH,SAAWA,OAGhB,MAFAwrB,MAAM,GAEC,IAINA,MASbt8B,KAAKqN,cAGFkvB,MAAO,KAOP52B,KAAM,WACHxF,EAAE8H,UAAUC,GAAG,qBAAsB,SAAS2mB,MAAOztB,IAAKsD,KACvDA,IAAOA,KAAOA,IAAI2H,MAAM,UAAalM,EAAE2L,EAAE,qBAAuBpH,GAChE,IAAIC,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAE7CpB,MAAKqN,aAAamM,QACfC,MAAOtZ,EAAE2L,EAAE,oBACR+L,KAAMlT,KAAKkT,OAEdnT,IAAKA,IACL83B,UAAWx8B,KAAKuB,MAAMK,OAAOC,IAC7B6X,OAAQtY,QAIdjB,EAAE8H,UAAUC,GAAG,sBAAuB,WACnClI,KAAKqN,aAAaovB,UAAUz8B,KAAKuB,MAAMK,OAAOE,MAAM,GAAM,KAG7D3B,EAAE8H,UAAUC,GAAG,oCAAqC,WACjDlI,KAAKqN,aAAaqvB,eAexBljB,OAAQ,SAASC,MAAO/U,IAAKO,EAAG03B,MAAOH,UAAWI,KAAMljB,QACrD,GAAK1Z,KAAK4F,QAAQyH,cAAiBrN,KAAKqN,aAAaE,gBAArD,CAIA,GAAIggB,EAgBJ,IAbGA,EADW,OAAV9T,OAAmC,gBAAVA,OACtBA,OAGDA,MAAOA,MACP/U,IAAKA,IACLyoB,SAAUloB,EACV03B,MAAOA,MACPH,UAAWA,UACXI,KAAMA,KACNljB,OAAQA,SAIV1Z,KAAK2Q,YAAe4c,EAAEoP,MAA1B,CAIA,GAAIE,MAAOtP,EAAEsP,MAAQ78B,KAAK4F,QAAQwlB,KAAO,oBAEzC,IAAwB,gBAAbmC,GAAE7T,OAAqB,CAC/B,GAAI/U,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASknB,EAAE7T,QAC3CgK,IAAM1jB,KAAK6E,QAAQwB,YAAY,SAAU1B,KAAKiV,OAE/B,iBAAR8J,MAA4B,MAARA,MAC5BmZ,KAAOnZ,KAIb1jB,KAAKS,eAAiBuM,WAAW,WAEH,gBAAhBugB,GAAEiP,WACVx8B,KAAKqN,aAAaovB,UAAUlP,EAAEiP,UAAWjP,EAAEqP,KAAMrP,EAAEoP,MAGtD,IAAIG,OAAQ,GAAIC,cAAa58B,EAAE2L,EAAEyhB,EAAE9T,QAChCO,KAAM7Z,EAAE2L,EAAEyhB,EAAE7oB,KACZm4B,KAAMA,OAGL1P,SAAWI,EAAEJ,UAAYntB,KAAK4F,QAAQo3B,aAEtC7P,UAAW,GACZngB,WAAW,WACR8vB,MAAM1nB,SACN+X,WAENntB,KAAKU,wBASX4M,WAAY,WACT,GAAIrG,OAAOg2B,oBAAqB,CAG7Bh2B,OAAO81B,aAAe,SAAStjB,MAAOmP,KACnC,GAAIkU,OAAQ71B,OAAOg2B,oBAAoBC,mBAAmB,KAAMzjB,MAAOmP,IAAI5O,KAO3E,OANA8iB,OAAMptB,OAENotB,MAAM1nB,MAAQ,WACX0nB,MAAM3F,UAGF2F,MAGV,IAAIK,WACJ,QAAQl2B,OAAOg2B,oBAAoBG,mBAChC,IAAK,GACFD,WAAan9B,KAAKuB,MAAME,oBACxB,MACH,KAAK,GACF07B,WAAan9B,KAAKuB,MAAMG,mBACxB,MACH,SACGy7B,WAAan9B,KAAKuB,MAAMC,qBAQ9B,MANAyF,QAAO81B,aAAaI,WAAaA,WAEjCl2B,OAAO81B,aAAa3U,kBAAoB,SAASiV,MAC9Cp2B,OAAOg2B,oBAAoB7U,kBAAkBiV,QAGzC,EACH,QAAIp2B,OAAO81B,cAWrBvvB,eAAgB,WAETxN,KAAK0Y,OAAO4jB,IAAI,gCAIpBn8B,EAAE8H,UAAU+C,IAAI,qBAAsB,WACnCgC,WAAW,WACRhN,KAAK0Y,OAAOzJ,KACTvK,IAAKvE,EAAE2L,EAAE,iBAAmB,IAC5BuN,YAAalZ,EAAE2L,EAAE,0BACjB,gCACH,QAOTsc,kBAAmB,WAChBnhB,OAAO81B,aAAa3U,kBAAkB,SAAS5V,QACxCvL,OAAO81B,aAAaI,aAAe3qB,SACpCvL,OAAO81B,aAAaI,WAAa3qB,QAGhCxS,KAAKqN,aAAaE,gBACnBpN,EAAE8H,UAAUkH,QAAQ,0BAEpBhP,EAAE8H,UAAUkH,QAAQ,+BAU7B5B,cAAe,WACZ,MAAOtG,QAAO81B,aAAaI,aAAen9B,KAAKuB,MAAME,sBAWxDg7B,UAAW,SAASD,UAAWI,KAAMD,OAClC,GAAK38B,KAAKK,SAKNL,KAAK4F,QAAQM,IAAI,qBAAgE,QAAzClG,KAAK6E,QAAQwB,YAAY,eAKjErG,KAAK2Q,YAAegsB,OAAxB,CAMA38B,KAAKqN,aAAaqvB,WAElB,IAAIH,OAAQ,GAAIe,OAAMt9B,KAAK4F,QAAQwlB,KAAO,UAAYoR,UACtDD,OAAMK,KAAOA,OAAQ,EACrBL,MAAMgB,OAENv9B,KAAKqN,aAAakvB,MAAQA,QAQ7BG,UAAW,WACR,GAAIH,OAAQv8B,KAAKqN,aAAakvB,KAET,oBAAVA,QAAmC,OAAVA,QACjCA,MAAMxnB,QACN/U,KAAKqN,aAAakvB,MAAQ,OAWhCtT,UAAW,SAASD,UACjB7oB,EAAE,qCAAqCyP,KAAKzP,EAAE2L,EAAE,WAE5Ckd,YAAa,GACdhpB,KAAK4F,QAAQU,IAAI,oBAAoB,IAW3C4iB,YAAa,SAASF,UACnB7oB,EAAE,qCAAqCyP,KAAKzP,EAAE2L,EAAE,SAE5Ckd,YAAa,GACdhpB,KAAK4F,QAAQU,IAAI,oBAAoB,KAU9CtG,KAAK4F,SAGFqsB,SAAU,mBAGVtkB,QAAS,IAGTO,YAAa,KAGbpG,KACGqC,QAAQ,EACRqzB,iBAAiB,EACjB/4B,OAAO,EACPg5B,qBAAqB,EACrBC,sBAAsB,GAIzBp1B,MAEGuJ,IAAK,KAGLpJ,IAAK,KAGL2D,OAAQ,KAGR7B,SAAU,KAGV/B,IAAK,KAGLD,IAAK,KAGLof,WAAW,EAGXvd,QAAS,MAIZmN,UACGomB,OAAQ,EACR9iB,KAAM,EACN+iB,KAAM,EACNC,GAAI,EACJC,IAAK,GAUR50B,UAAW,KAGXpD,WAEGqE,QAAQ,EAGRf,KAAM,KAGNX,IAAK,KAGLgD,KAAM,KAGNa,OAAQ,SAAS7D,KACd,MAAOA,MAOVmD,aAAc,SAMdsJ,YAAa,SAMbjD,WAAY,SAQZlM,eAAe,EAUfC,QAAS,SAMT+lB,gBAAgB,GAInB1gB,cAAe,KAGf0yB,YAAa,GAGb/2B,YAAa,KAGbN,UAAU,EAGV4kB,aAAc,OAGdje,cAAc,EAGd2vB,cAAe,IAGf5R,KAAM,GAMNviB,uBAAwB,WACrB,OAAO,GAIV0iB,aAAa,EAGbyS,kBAAkB,EAQlBra,cAAe,SAASlb,KACrBzI,KAAK+I,IAAI6a,kBAAkBzjB,EAAEiL,MAAMyE,KAAK,gBAAiBpH,MAkB5DsD,aAAc,KASdic,qBAAsB,SAASrjB,KAAMgH,IAClCA,IAAG,IAGNmK,SAEG3L,QAAQ,GAkBX2b,SAAU,KAGVpF,SACGvW,QAAQ,EAGRsY,QAAS,UAGTC,UAAW,QAIdub,oBAAqB,KAGrBC,eAEGC,IAAK,KAGLtsB,IAAK,KAGLusB,iBAAiB,EAGjBC,aACGC,KAAM,gCAKZ7S,WAAY,kCAEZ6D,UACGC,QAAS,WACN,GAAIgP,GAAIp+B,EAAE8G,QAAQuK,QAAUrR,EAAE,sBAAsBqR,QAChDgtB,EAAIr+B,EAAE8G,QAAQ2f,QAMlB,OAJ2C,UAAvC5mB,KAAK6E,QAAQwB,YAAY,YAC1Bk4B,GAAKp+B,EAAE,gBAAgByvB,YAAW,KAIlCpe,MAAO+sB,EACP3X,OAAQ4X,KAMjBhL,gBAAiB,IAGjBrV,cACGK,YACGrU,QAAQ,IAMd6S,WACG7S,QAAQ,GASXs0B,sBACGC,QAAS,GACTC,OAAQ,KAOd3+B,KAAK8H,KAEFwM,WAEAsqB,YAAa,KAYbC,eAAgB,SAAS55B,GACtB,GAAI7D,KAAM6D,EAAE7D,GAERpB,MAAK8H,IAAIwM,QAAQlT,KAAKsT,WAAaC,IAAIpT,MAAMu9B,oBAC9C9+B,KAAK8H,IAAIgN,OAAO1T,KAGfpB,KAAK8H,IAAIwM,QAAQlT,KAAKsT,WAAaC,IAAIpT,MAAMu9B,oBAAuB75B,EAAE0V,UAUvE3a,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQE,GACxB/V,IAAKO,EAAEP,IACPiW,UAAW1V,EAAE0V,UACbZ,UAAW9U,EAAE8U,UACbM,MAAOpV,EAAEoV,MACTa,WAAYjW,EAAEiW,aAhBjBlb,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,mCAAqC,MAAQ7G,EAAEP,IAAM,IAC9DiW,UAAW1V,EAAE0V,UACbZ,UAAW9U,EAAE8U,UACbM,MAAOpV,EAAEoV,SAqBlB0B,YAAa,SAAStT,IAAK/D,IAAKmV,SACyB,IAAlD7Z,KAAK8H,IAAIwM,QAAQtU,KAAKuM,SAAS9D,MAAMiM,UACtC1U,KAAK8H,IAAIgN,OAAO9U,KAAKuM,SAAS9D,MAGjCzI,KAAKsI,KAAKgU,aAAa7T,IAAK/D,IAAKmV,UASpCzF,OAAQ,SAAShT,KAEd,IAAIpB,KAAK8H,IAAIwM,QAAQiF,eAAenY,MAI/BpB,KAAK4F,QAAQkC,IAAIi3B,KAAtB,CAKA,GAAIC,IAAKh/B,KAAK6E,QAAQwB,YAAY,cAC9B24B,IAAG1mB,QAAQlX,KAAO,IACnB49B,GAAGr1B,KAAKvI,KACRpB,KAAK6E,QAAQiE,YAAY,UAAWk2B,KAGvCh/B,KAAK8H,IAAIwM,QAAQlT,KAAO,GAAIuT,KAAI3U,KAAK4F,QAAQkC,KAEzC9H,KAAK4F,QAAQkC,IAAI21B,sBAClBz9B,KAAK8H,IAAIwM,QAAQlT,KAAKq8B,qBAAsB,GAG3Cz9B,KAAK4F,QAAQkC,IAAI41B,uBAClB19B,KAAK8H,IAAIwM,QAAQlT,KAAKs8B,sBAAuB,GAGhD19B,KAAK8H,IAAIwM,QAAQlT,KAAK8G,GAAG,SAAU,SAASsK;AACzC,GAAI7N,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,IAE7C,IAAa,OAATuD,KAAJ,CAIA,OAAQ6N,QACL,IAAKmC,KAAIpT,MAAM09B,kBACZj/B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,yCAEZ,MACH,KAAK6I,KAAIpT,MAAM29B,mBACZv6B,KAAKwtB,YAAcnyB,KAAK8H,IAAIwM,QAAQlT,KAAK+9B,cAAchN,cACvDxtB,KAAK+P,SAAWC,IAAIpT,MAAMqT,kBAE1B,IAAIwqB,WAAYp/B,KAAK8H,IAAIwM,QAAQlT,KAAKiiB,MAAQ,WAAa,aACvD3e,IAAMvE,EAAE2L,EAAEszB,UAAY,gCAE1Bp/B,MAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAW,MACX5V,IAAKA,KAER,MACH,KAAKiQ,KAAIpT,MAAM89B,eACZ16B,KAAKwtB,YAAc,KAEfnyB,KAAK8H,IAAIwM,QAAQlT,KAAKsT,WAAaC,IAAIpT,MAAMu9B,oBAG9Cn6B,KAAK+P,SAAWC,IAAIpT,MAAMu9B,mBAC1B9+B,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,oCAMZnH,KAAK+P,SAAWC,IAAIpT,MAAM4uB,kBAC1BnwB,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,uEAGf,MACH,KAAK6I,KAAIpT,MAAM+9B,kBACZt/B,KAAK8N,gBAIX9N,KAAK6E,QAAQiE,YAAY,QAAS1H,IAAKuD,MAGvC3E,KAAK+I,IAAIyP,OAAOpX,QAGnBpB,KAAK8H,IAAIwM,QAAQlT,KAAK8G,GAAG,MAAO,SAASoO,KAAM3R,MAC5C,OAAQ2R,MACL,IAAK,WACFtW,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,qCAGZ9L,KAAK+I,IAAI9B,OAAOoqB,WAAWjwB,IAAKuD,MAChC3E,KAAK6E,QAAQiE,YAAY,MAAO1H,KAC7BuD,KAAMA,MAAQ,MAGjB,MACH,KAAK,QACF3E,KAAK8H,IAAIwM,QAAQlT,KAAKiiB,MAAQ1e,KAC9B3E,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,QAASuD,MACnD3E,KAAK8H,IAAIgN,OAAO1T,KAChBpB,KAAK+I,IAAIyP,OAAOpX,KAEZuD,KACD3E,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,kCAGZ9L,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,2BAGf9L,KAAK6E,QAAQsP,eAAe,MAAO/S,KACnCpB,KAAK+I,IAAIoM,OAAOC,MAAM,MACtB,MACH,KAAK,QACFpV,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAC5BpB,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,2BAEZ,MACH,SACG9L,KAAKyE,MAAM,oCAAsC6R,SAK1DtW,KAAK8H,IAAIwM,QAAQlT,KAAK8G,GAAG,KAAM,SAASxD,IAAKiW,UAAW4kB,MACrDv/B,KAAK8H,IAAI+2B,gBACNz9B,IAAKA,IACLsD,IAAKA,IACLiW,UAAWA,aAAc,EACzBN,MAAOklB,KAAKllB,MACZN,UAAWwlB,KAAKxlB,UAChBmB,WAAYqkB,KAAKrkB,eAKvBlb,KAAK8H,IAAIwM,QAAQlT,KAAK8G,GAAG,KAAM,SAASxD,IAAKmV,SAC1C,GAAIpR,KAAMzI,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKuD,KAAK,QAAU3E,KAAK8H,IAAIwM,QAAQlT,KAAKqH,GAExEzI,MAAK8H,IAAIwM,QAAQlT,KAAKqH,IAAMA,IAE5BzI,KAAK8H,IAAIiU,YAAYtT,IAAK/D,IAAKmV,WAGlC7Z,KAAK8H,IAAIwM,QAAQlT,KAAK8G,GAAG,QAAS,SAAS7C,KAE5B,qCAARA,KACDrF,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAK,SAAWvE,EAAE2L,EAAEzG,OAI1BrF,KAAK0F,MAAM,SAAWL,OAGzBrF,KAAK8H,IAAI+E,QAAQzL,OAUpBuwB,cAAe,SAASvwB,IAAKuD,MAC1B3E,KAAK+I,IAAIqc,iBAAiBhkB,KAE1BjB,EAAE,uBAAuB8Y,KAAK,gBAAkBtU,KAAO,EAAI,GAAIwa,SAC/Dhf,EAAE,4BAA4BsP,OAE1B9K,MACDxE,EAAE,4BAA4B0P,KAAK,eAAenG,IAAI/E,MAAMsU,KAAK,YAAY,GAC7E9Y,EAAE,4BAA4B0P,KAAK,gBAAgBD,KAAKzP,EAAE2L,EAAE,WAC5D3L,EAAE,4BAA4B0P,KAAK,qBAAqBD,KAAKzP,EAAE2L,EAAE,+BACjE3L,EAAE,4BAA4BuP,SAE9BvP,EAAE,4BAA4B0P,KAAK,qBAAqBD,KAAKzP,EAAE2L,EAAE,6BACjE3L,EAAE,4BAA4BuP,QAGjCvP,EAAE,4BAA4B2P,MAAM,WACjC9P,KAAK6E,QAAQsP,eAAe,MAAO/S,KAE/BpB,KAAKK,QACNL,KAAK8H,IAAIwM,QAAQlT,KAAKqwB,GAAGD,WAalC7L,WAAY,SAASvkB,IAAKokB,IAAKC,OAC5BzlB,KAAK8N,gBAEL9N,KAAK8H,IAAIwM,QAAQlT,KAAKo+B,UAAUha,IAAKC,OAAS,KASjDyI,eAAgB,SAAS9sB,KACH,kBAARuT,OAI6C,IAApD3U,KAAK6E,QAAQwB,YAAY,QAASjF,KAAKsT,SACxC1U,KAAK8H,IAAI23B,UAAUr+B,KAEnBpB,KAAK8H,IAAI43B,QAAQt+B,OAUvBq+B,UAAW,SAASr+B,KACbpB,KAAKK,OACFL,KAAK8H,IAAIwM,QAAQiF,eAAenY,MACjCpB,KAAK8H,IAAIwM,QAAQlT,KAAKu+B,eAGzB3/B,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,cAAe,IAW/Ds+B,QAAS,SAASt+B,IAAKuK,IAChB3L,KAAKK,OACFL,KAAK8H,IAAIwM,QAAQiF,eAAenY,OACjCpB,KAAK8H,IAAIwM,QAAQlT,KAAKyT,OAAO1L,KAAKnJ,KAAK8H,IAAIwM,QAAQlT,KAAMuK,IACzD3L,KAAK8H,IAAIwM,QAAQlT,KAAKuE,KAAKwD,KAAKnJ,KAAK8H,IAAIwM,QAAQlT,MAEjDpB,KAAK8H,IAAIgN,OAAO1T,MAGnBpB,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,cAAe,IAS/D0T,OAAQ,SAAS1T,KACd,GAAImsB,GAAIvtB,KAAK8H,IAAIwM,QAAQlT,KACrB2X,IAEJ,IAAU,OAANwU,EAAJ,CAKA,GAEIvc,GAFA4uB,SAAW,MAAO,mBAAoB,WAAY,YAAa,WAAY,UAAW,cAAe,cAAe,qBAAsB,SAAU,aAAc,YAAa,WAAY,YAAa,aAAc,QAAS,gBAAiB,OAAQ,oBAAqB,YAAa,gBAG9R,KAAK5uB,EAAI,EAAGA,EAAI4uB,QAAQ/4B,OAAQmK,IAC7B+H,EAAE6mB,QAAQ5uB,IAAM1L,KAAKC,UAAUgoB,EAAEqS,QAAQ5uB,IAGpB,QAApBuc,EAAE4R,gBACHpmB,EAAEomB,cAAgB75B,KAAKC,UAAUgoB,EAAE4R,cAAcU,eAGhDtS,EAAEuS,IAAIC,aAAqC,KAAtBxS,EAAEuS,IAAIC,cAC5BhnB,EAAEgnB,YAAcz6B,KAAKC,UAAUgoB,EAAEuS,IAAIC,cAGxC//B,KAAK6E,QAAQiE,YAAY,MAAO1H,IAAK2X,KAQxClM,QAAS,SAASzL,KACf,GAAImsB,GAAIvtB,KAAK8H,IAAIwM,QAAQlT,KACrB6D,EAAIjF,KAAK6E,QAAQwB,YAAY,MAAOjF,IAExC,IAAU,OAANmsB,GAAoB,OAANtoB,EAAY,CAC3B,GAAIkB,IACJ,KAAKA,MAAOlB,GACT,GAAIA,EAAEsU,eAAepT,KAAM,CACxB,GAAIuD,KAAMpE,KAAKuO,MAAM5O,EAAEkB,KACX,mBAARA,KAAmC,OAARuD,MAC5BA,IAAMs2B,IAAIC,YAAYv2B,MAEb,gBAARvD,KAAiC,OAARuD,IAC1B6jB,EAAEuS,IAAIC,YAAcr2B,IAEpB6jB,EAAEpnB,KAAOuD,IAKlB1J,KAAK8H,IAAIwM,QAAQlT,KAAOmsB,EAEL,IAAfA,EAAE7Y,UAAsC,OAApB6Y,EAAE4R,eACvB5R,EAAE2S,QAAQ/2B,KAAKnJ,KAAK8H,IAAIwM,QAAQlT,MAItCpB,KAAK8H,IAAIqC,OAAO/I,MAQnBqM,UAAW,WACR,IAAIzN,KAAK4F,QAAQkC,IAAIi3B,KAArB,CAIA,GAAmB,kBAARpqB,KAUR,MATA3U,MAAKyF,KAAK,wBAEVkP,YACAA,IAAIpT,OACDu9B,mBAAoB,EACpBlqB,mBAAoB,EACpBub,kBAAmB,GAMzB,IAAwC,OAApCnwB,KAAK6E,QAAQwB,YAAY,OAAiB,CAC3C,GAAI3B,KAAMvE,EAAE2L,EAAE,8BACVq0B,OAAS,IAEb,IAAIC,OAGD,IACGD,OAAS,GAAIC,QAAOpgC,KAAK4F,QAAQwlB,KAAO,iCACzC,MAAO/lB,KACNrF,KAAKyF,KAAK,8BAAgCJ,KAIhDrF,KAAK8H,IAAI82B,YAA0B,OAAXuB,OAEnBngC,KAAK8H,IAAI82B,aAyBX5+B,KAAKsI,KAAKwC,KAAKiK,QAEf/U,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,YAAa,KAAMxB,MAC3DmhB,SAAS,IAGZ7lB,KAAKyE,MAAM,8CAGXuI,WAAW,WACR,GAAIqzB,KAAM,GAAIL,IACdhgC,MAAK8H,IAAIw4B,SAASD,MAClB,OAlCHF,OAAOI,UAAY,SAASC,GACzB,GAAIlqB,MAAOkqB,EAAE77B,KAAK2R,KACd5M,IAAM82B,EAAE77B,KAAK+E,GAEJ,WAAT4M,KACDtW,KAAKyE,MAAMiF,KACM,SAAT4M,MACRtW,KAAK8H,IAAIw4B,SAASN,IAAIS,aAAa/2B,OAIzC1J,KAAKyE,MAAM,6BAGX07B,OAAOzlB,aACJgmB,SAAU1gC,KAAK4F,QAAQwlB,KAAO,6BAA8BprB,KAAK4F,QAAQwlB,KAAO,4BAA6BprB,KAAK4F,QAAQwlB,KAAO,4BAA6BprB,KAAK4F,QAAQwlB,KAAO,kCAAmCprB,KAAK4F,QAAQwlB,KAAO,wBAAyBprB,KAAK4F,QAAQwlB,KAAO,0BAA2BprB,KAAK4F,QAAQwlB,KAAO,uBACrUf,KAAMsW,OAAOC,UACbn8B,OAAO,SAoBbzE,MAAKyE,MAAM,kBACXzE,KAAK4F,QAAQkC,IAAIi3B,KAAOiB,IAAIS,aAAazgC,KAAK6E,QAAQwB,YAAY,QAElErG,KAAK8H,IAAI+4B,eAOfA,WAAY,WAET7gC,KAAK6E,QAAQiE,YAAY,mBAAoB9I,KAAK4F,QAAQkC,IAAIi3B,KAAK5M,eAEnEhyB,EAAEqJ,KAAKxJ,KAAK6E,QAAQwB,YAAY,kBAAqB,SAASoD,MAAOC,KAClE1J,KAAK8H,IAAIsM,OAAO1K,QAStB42B,SAAU,SAASD,KAChBrgC,KAAK6E,QAAQiE,YAAY,MAAOu3B,IAAIS,eACpC9gC,KAAK4F,QAAQkC,IAAIi3B,KAAOsB,IAGpBrgC,KAAK8H,IAAI82B,cACV5+B,KAAKsI,KAAKwC,KAAKuK,SACfrV,KAAK+I,IAAIoM,OAAOC,SAGnBpV,KAAK8H,IAAI+4B,cAGZ12B,OAAQ,SAAS/I,KACdpB,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAAKyO,KAAK,aAAalD,YAAY,mBAS7D3M,KAAK6E,SAMFk8B,OAAQ,OAERC,IAAK,IAOLC,UAAW,SAASC,IACjB,GAAI7wB,MAAOrQ,KAAK6E,OAMhB,OAJIq8B,MAAOlhC,KAAKoB,KACbpB,KAAKyF,KAAK,gCAGN4K,KAAK0wB,OAAS1wB,KAAK2wB,KAAQE,IAAMlhC,KAAKoB,IAAOpB,KAAKoB,IAAMiP,KAAK2wB,IAAM,KAW7El0B,QAAS,SAAS3G,IAAKI,MAAO26B,IAGvBlhC,KAAKkB,kBAAoB,GAAa,QAARiF,MAC3BnG,KAAKkB,kBAAoB,GAAoB,OAAflB,KAAKmB,QACpCnB,KAAKmB,MAAQ8F,OAAO+F,WAAW,WAC5BhN,KAAKkB,kBAAoB,EACzBlB,KAAK6E,QAAQiI,QAAQ,oBAAqB,IAC1C,MAGN9M,KAAKiB,GAAG0I,KAAKrE,KAAKC,WACfY,IAAKA,IACLI,MAAOA,UAIS,gBAAZ,SAEPA,MAAQjB,KAAKC,UAAUgB,MAAO,SAASJ,IAAKuD,KACzC,KAAMA,cAAey3B,SAClB,MAAOz3B,QAKhBoK,aAAahH,QAAQ9M,KAAK6E,QAAQo8B,UAAUC,IAAM/6B,IAAKI,QAG1DuC,YAAa,SAASwN,KAAMnQ,IAAKI,OAC9B,GAAI8J,MAAOrQ,KAAK6E,OAUhB,OARyB,KAArBgG,UAAUhE,QACXN,MAAQJ,IACRA,IAAMmQ,KACNA,KAAO,IACsB,IAArBzL,UAAUhE,SAClBV,IAAMmQ,KAAOjG,KAAK2wB,IAAM76B,KAGpBnG,KAAK6E,QAAQiI,QAAQ3G,IAAKI,OAAO,IAU3CzB,QAAS,SAASqB,IAAK+6B,IACpB/6B,IAAMnG,KAAK6E,QAAQo8B,UAAUC,IAAM/6B,GAEnC,IAAII,OAAQuN,aAAahP,QAAQqB,IACjC,KACG,MAAOb,MAAKuO,MAAMtN,OACnB,MAAOi6B,GACN,MAAOj6B,SAUbF,YAAa,SAASiQ,KAAMnQ,KACzB,GAAIkK,MAAOrQ,KAAK6E,OAQhB,OANyB,KAArBgG,UAAUhE,OACXV,IAAMmQ,KACuB,IAArBzL,UAAUhE,SAClBV,IAAMmQ,KAAOjG,KAAK2wB,IAAM76B,KAGpBnG,KAAK6E,QAAQC,QAAQqB,KAAK,IAUpCyC,WAAY,SAASzC,IAAK+6B,IAGnBlhC,KAAKkB,mBAA6B,QAARiF,KAC3BnG,KAAKiB,GAAG0I,KAAKrE,KAAKC,WACfY,IAAKnG,KAAK6E,QAAQ2C,OAASrB,IAC3BI,MAAO,MAIbuN,aAAalL,WAAW5I,KAAK6E,QAAQo8B,UAAUC,IAAM/6B,MAQxDgO,eAAgB,SAASmC,KAAMnQ,KAC5B,GAAIkK,MAAOrQ,KAAK6E,OAES,KAArBgG,UAAUhE,OACXV,IAAMmQ,KACuB,IAArBzL,UAAUhE,SAClBV,IAAMmQ,KAAOjG,KAAK2wB,IAAM76B,KAG3BnG,KAAK6E,QAAQ+D,WAAWzC,KAAK,IAahCK,WAAY,SAASL,IAAKi7B,SAAU76B,MAAO26B,IAExC,GAAIv8B,MAAO3E,KAAK6E,QAAQC,QAAQqB,IAAK+6B,OAEZ,iBAAf,UAEP/gC,EAAEqJ,KAAK43B,SAAU,SAASj7B,IAAKuD,KACF,mBAAf/E,MAAKwB,MACbnG,KAAKyE,MAAM,YAAc0B,IAAM,qBAAwBi7B,SAAW,qBAGrEz8B,KAAKwB,KAAOuD,OAGgB,mBAApB/E,MAAKy8B,WACbphC,KAAKyE,MAAM,YAAc28B,SAAW,mCAGvCz8B,KAAKy8B,UAAY76B,OAGpBvG,KAAK6E,QAAQiI,QAAQ3G,IAAKxB,KAAMu8B,KAYnCnmB,eAAgB,SAASzE,KAAMnQ,IAAKi7B,SAAU76B,OAC3C,GAAI8J,MAAOrQ,KAAK6E,OAUhB,OARyB,KAArBgG,UAAUhE,QAAsC,IAArBgE,UAAUhE,QAAoC,gBAAbu6B,UAC7Dj7B,IAAMmQ,KAAOjG,KAAK2wB,IAAM76B,KAExBI,MAAQ66B,SACRA,SAAWj7B,IACXA,IAAMmQ,MAGFtW,KAAK6E,QAAQ2B,WAAWL,IAAKi7B,SAAU76B,OAAO,IAUxD0H,IAAK,SAAS9H,IAAK+6B,IAEhBlhC,KAAK6E,QAAQiI,QAAQ3G,IAAKk7B,OAAOrhC,KAAK6E,QAAQC,QAAQqB,IAAK+6B,KAAO,EAAGA,KAWxEI,cAAe,SAASn7B,IAAK0R,KAAMqpB,IAChC,GAAI9Z,MAAOpnB,KAAK6E,QAAQC,QAAQqB,IAAK+6B,GAEjC/gC,GAAEwd,QAAQyJ,MACXA,KAAOjnB,EAAEuzB,KAAKtM,KAAM,SAASoZ,GAC1B,MAAOA,KAAM3oB,OAES,gBAAX,OAAgC,OAATuP,YAC9BA,MAAKvP,MAGf7X,KAAK6E,QAAQiI,QAAQ3G,IAAKihB,KAAM8Z,KAGnCtqB,kBAAmB,SAASN,KAAMnQ,IAAK0R,MACpC,GAAIxH,MAAOrQ,KAAK6E,OAShB,OAPyB,KAArBgG,UAAUhE,QACXgR,KAAO1R,IACPA,IAAMmQ,MACuB,IAArBzL,UAAUhE,SAClBV,IAAMmQ,KAAOjG,KAAK2wB,IAAM76B,KAGpBnG,KAAK6E,QAAQy8B,cAAcn7B,IAAK0R,MAAM,IAahD7P,UAAW,SAASw4B,GAGjB,GAAIA,EAAEr6B,MAAQnG,KAAK6E,QAAQk8B,OAAS/gC,KAAK6E,QAAQm8B,IAAM,OAAUR,EAAEr6B,IAAnE,CAIA,GAAIo7B,IAAK,GAAIr/B,QAAO,IAAMlC,KAAK6E,QAAQk8B,OAAS/gC,KAAK6E,QAAQm8B,IAAM,QAAUhhC,KAAK6E,QAAQm8B,IAAM,QAAUhhC,KAAK6E,QAAQm8B,IAAM,KAAOhhC,KAAK6E,QAAQm8B,IAAM,SAAU,KAC7J76B,IAAMq6B,EAAEr6B,IAAIyI,QAAQ2yB,GAAI,KAK5B,IAAIvhC,KAAKkB,kBAAoB,GAAKlB,KAAKiB,GAAG4F,OAAS,EAAG,CAEnD,GAAI6C,KAAM82B,EAAEgB,QACZ,KACG93B,IAAMpE,KAAKuO,MAAMnK,KAClB,MAAOrE,MAET,GAAIoE,OAAQtJ,EAAE6uB,QAAQ1pB,KAAKC,WACxBY,IAAKA,IACLI,MAAOmD,MACN1J,KAAKiB,GAET,IAAIwI,OAAS,EAUV,MAPIzJ,MAAKkB,kBAAoB,IAC1B+F,OAAO8G,aAAa/N,KAAKmB,OACzBnB,KAAKkB,kBAAoB,EACzBlB,KAAK6E,QAAQiI,QAAQ,oBAAqB,QAG7C9M,MAAKiB,GAAG+0B,OAAOvsB,MAAO,GAM5B,GAAI+2B,EAAEiB,WAAajB,EAAEgB,SAArB,CAIA,GAAIE,GAAGnU,EACHnsB,IAAM+E,IAAIyI,QAAQ,GAAI1M,QAAO,KAAOlC,KAAK6E,QAAQm8B,IAAM,KAAOhhC,KAAK6E,QAAQm8B,IAAM,OAAQ,KAAM,KAGnG,IAAIhhC,KAAKK,QAAkB,UAAR8F,IAGhB,MAFAnG,MAAKyE,MAAM,mBAEP+7B,EAAEgB,UAAYhB,EAAEgB,SAASn1B,MAAM,gBAChCrM,MAAKyF,KAAK,+DAIbzF,MAAKiN,WAKR,KAAKjN,KAAKK,SAAmB,UAAR8F,KAA2B,eAARA,KASrC,MANAnG,MAAKO,GAAKJ,EAAEuzB,KAAK1zB,KAAKO,GAAI,SAASoN,SAGhC,MAFA1G,QAAO8G,aAAaJ,UAEb,IAGgB,mBAAf6yB,GAAEgB,UAA2C,OAAfhB,EAAEgB,aACxCxhC,MAAKsI,KAAKyJ,gBAIb/R,KAAKO,GAAGoJ,KAAK1C,OAAO+F,WAAWhN,KAAK0K,aAAuB,UAARvE,IAAmBnG,KAAK4F,QAAQ+H,QAAU3N,KAAK4F,QAAQsI,aAAelO,KAAKmO,OAAO,WAGhInO,KAAKM,iBACPN,KAAK0M,WA4CX,IAtCI1M,KAAKK,QAAkB,QAAR8F,MAAkBq6B,EAAEgB,UACpCxhC,KAAKsI,KAAKgD,QAAO,GAGhBnF,IAAIkG,MAAM,aACXrM,KAAK0Y,OAAOP,OAGXhS,IAAIkG,MAAM,cACXrM,KAAK+I,IAAIggB,eAAeyX,EAAEgB,UAAU,GAGnCr7B,IAAIkG,MAAM,aAAem0B,EAAEgB,WAC5BE,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UAEiB,mBAAvBE,GAAE1D,kBAAoC0D,EAAE1D,iBAChDh+B,KAAKqN,aAAa4b,WAAU,GAE5BjpB,KAAKqN,aAAa6b,aAAY,IAIhC/iB,IAAIkG,MAAM,aACPrM,KAAKK,OACN0N,aAAa/N,KAAKS,gBAElBT,KAAKsQ,YAIPnK,IAAIkG,MAAM,YACPrM,KAAKK,OACN0N,aAAa/N,KAAKS,gBAElBT,KAAK2Q,YAIPxK,IAAIkG,MAAM,GAAInK,QAAO,WAAalC,KAAK6E,QAAQm8B,MAKhD,IAHA,GACIhb,KAAKzC,GAAI1J,QADTwS,QAAU/mB,KAAKuO,MAAM2sB,EAAEgB,UAGpBnV,QAAQxlB,OAAS,GACrBmf,IAAMqG,QAAQ2E,MAEdnX,QAAU,GAAI7Z,MAAKua,QAAQyL,KAC3BzC,GAAK1J,QAAQgX,SAEK,IAAdtN,GAAG1c,QACA7G,KAAKK,QAAUwZ,QAAQS,YAActa,KAAKua,QAAQC,KACnDxa,KAAKsI,KAAKyT,YAAYlC,QAAQzY,IAAKyY,QAAQnV,IAAKmV,QAAQ4C,MAG3Dzc,KAAK+I,IAAI9B,OAAOopB,aAAaxW,SAAS,IAC9BA,QAAQ6W,cAChBnN,GAAGtE,SAAS,qBAlBrB,CAwBA,GAAI9Y,IAAIkG,MAAM,GAAInK,QAAO,UAAYlC,KAAK6E,QAAQm8B,MAE/C,MAAKR,GAAEgB,SAKFhB,EAAEiB,UAKPC,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UACjBjU,EAAIjoB,KAAKuO,MAAM2sB,EAAEiB,UAEbC,EAAElyB,WAAa+d,EAAE/d,WACdkyB,EAAElyB,SACHxP,KAAK+I,IAAI9B,OAAO+oB,MAAM5uB,KAEtBpB,KAAK+I,IAAI9B,OAAOyoB,MAAMtuB,MAI5BpB,KAAK+I,IAAI9B,OAAO0I,QAAQvO,IAAKsgC,EAAE9xB,WAE3B8xB,EAAEpY,SAAWiE,EAAEjE,SACC,IAAboY,EAAEpY,OACHtpB,KAAK+I,IAAI0gB,QAAQroB,KAEjBpB,KAAK+I,IAAIygB,WAAWpoB,IAAKsgC,EAAEpY,eArB9BtpB,MAAK+I,IAAI9B,OAAOua,KAAKpgB,SALrBpB,MAAK+I,IAAI9B,OAAOylB,OAAOtrB,IAqC7B,IAJI+E,IAAIkG,MAAM,eAAiBrM,KAAK+I,IAAI2X,SACrC1gB,KAAK+I,IAAI2X,QAAQiC,MAAMrf,SAASk9B,EAAEgB,WAAa,GAG9Cr7B,IAAIkG,MAAM,GAAInK,QAAO,OAASlC,KAAK6E,QAAQm8B,MAAO,CAEnD,IAAKR,EAAEgB,SASJ,MAPAxhC,MAAK+I,IAAIoM,OAAOC,MAAM,OACtBpV,KAAK+I,IAAI9B,OAAO+X,YAAY5d,UAExBpB,KAAKK,QACNL,KAAK8H,IAAIwM,QAAQlT,KAAKqwB,GAAGD,QAM/BkQ,GAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UAEM,mBAAZE,GAAM,KAEd1hC,KAAK+I,IAAI9B,OAAOoqB,WAAWjwB,IAAKsgC,EAAE/8B,MAE1B3E,KAAKK,QAAUqhC,EAAElc,MACzBxlB,KAAK+I,IAAIoM,OAAOC,MAAM,OACtBpV,KAAK+I,IAAI9B,OAAO+X,YAAY5d,KAE5BpB,KAAK8H,IAAI6d,WAAWvkB,IAAKsgC,EAAElc,IAAKkc,EAAEjc,QAIxC,IAAKzlB,KAAKK,QAAU8F,IAAIkG,MAAM,GAAInK,QAAO,SAAWlC,KAAK6E,QAAQm8B,MAAO,CAErE,IAAKR,EAAEgB,SAEJ,WADAxhC,MAAK+I,IAAIC,OAAOoP,MAAMhX,IAGzB,IAA4C,IAAxCpB,KAAK+I,IAAIC,OAAOlE,QAAQ1D,KAAKyF,OAE9B,WADA7G,MAAK+I,IAAIC,OAAOiG,IAAI7N,IAIvBsgC,GAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UACjBjU,EAAIjoB,KAAKuO,MAAM2sB,EAAEiB,UAEjBzhC,KAAK+I,IAAIyP,OAAOpX,KAEZmsB,EAAE/a,SAAWkvB,EAAElvB,QAAU+a,EAAEzV,MAAQ4pB,EAAE5pB,KACtC9X,KAAK+I,IAAIC,OAAOyP,QAAQrX,KAI1BpB,KAAKK,QAAU8F,IAAIkG,MAAM,GAAInK,QAAO,eAAiBlC,KAAK6E,QAAQm8B,OAASR,EAAEgB,WAC9EE,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UAEjBxhC,KAAKsI,KAAKqT,YAAY+lB,EAAEj5B,KACxBzI,KAAK6E,QAAQsP,eAAehO,MAG3BnG,KAAKK,QAAU8F,IAAIkG,MAAM,GAAInK,QAAO,SAAWlC,KAAK6E,QAAQm8B,QAE7DU,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UACjBjU,EAAIjoB,KAAKuO,MAAM2sB,EAAEiB,UAEblU,EAAEoU,cAAgBD,EAAEC,cACrB3hC,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAK,eAAe,GAEnC,IAAlBsgC,EAAEC,aACH3hC,KAAK8H,IAAI43B,QAAQt+B,KAEE,IAAlBsgC,EAAEC,aACH3hC,KAAK8H,IAAI23B,UAAUr+B,MAIrBmsB,EAAE1V,OAAS6pB,EAAE7pB,MACd7X,KAAK+I,IAAIC,OAAO+jB,QAAQ3rB,IAAKsgC,EAAE7pB,OAIzB,cAAR1R,MACDu7B,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UAEbxhC,KAAKK,QAAUqhC,EAAEtoB,SAAW,GAC7BpZ,KAAKsI,KAAK4Q,aAAawoB,EAAEj5B,IAAKi5B,EAAEtoB,UAIlCpZ,KAAKK,QAAU8F,IAAIkG,MAAM,GAAInK,QAAO,OAASlC,KAAK6E,QAAQm8B,QAC3DU,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UAEjBxhC,KAAKsI,KAAK6Q,SAASuoB,EAAEh2B,SAAUg2B,EAAEhmB,QAGxB,WAARvV,KACDnG,KAAK+I,IAAIC,OAAO0iB,OAAO8U,EAAEgB,UAGxBxhC,KAAKK,QAAU8F,IAAIkG,MAAM,GAAInK,QAAO,SAAWlC,KAAK6E,QAAQm8B,OAAwB,OAAfR,EAAEgB,UAAqBhB,EAAEgB,SAASn1B,MAAM,cAE9GrM,KAAKsI,KAAK6U,UAAU/b,IAAK,SAASkS,QAC/BtT,KAAK6E,QAAQiE,YAAY,QAAS1H,KAC/BqQ,MAAO,UACP9M,KAAMxE,EAAE,SAASyf,OAAOtM,QAAQlO,UAEnC,WACApF,KAAK6E,QAAQiE,YAAY,QAAS1H,KAC/BqQ,MAAO,YAKXzR,KAAKK,SAAU8F,IAAIkG,MAAM,GAAInK,QAAO,SAAWlC,KAAK6E,QAAQm8B,OAAwB,OAAfR,EAAEgB,UAAsBhB,EAAEgB,SAASn1B,MAAM,eAChHq1B,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,UAEM,mBAAZE,GAAEjwB,OACVtR,EAAE8H,UAAUkH,QAAQ,oBAAqBuyB,GAG5C1hC,KAAK6E,QAAQsP,eAAe,QAAS/S,MAG5B,SAAR+E,KAAkBq6B,EAAEgB,WACrBE,EAAIp8B,KAAKuO,MAAM2sB,EAAEgB,cACjBxhC,KAAK6E,QAAQsP,eAAe,QAExButB,EAAEE,KAAOF,EAAEriB,SAAWrf,KAAK03B,IAAIn2B,MAAMvB,KAAKK,OAAS,SAAW,WAC/DL,KAAKyE,MAAM,oBAAsBi9B,EAAEE,KAEnC5hC,KAAK6Q,KAAK6wB,EAAEE,IAAKF,EAAEngB,cAa5BxJ,UAAW,SAAS3W,IAAKuD,MAEtB,MAAI3E,MAAK6E,QAAQwB,YAAY,QAASjF,MACnCpB,KAAK6E,QAAQkW,eAAe,QAAS3Z,IAAKuD,MAEnC,YAGV3E,KAAK6E,QAAQiE,YAAY,QAAS1H,IAAKjB,EAAE8F,QACtCwC,IAAK,GACLoP,KAAM,GACNrF,OAAQ,EACRsF,IAAK,OACLpD,SAAU,EACVitB,aAAa,EACbte,OAAO,EACP8O,YAAa,KACbna,OACA1B,KAAM,QACN3R,OAEI,aASb3E,KAAK03B,KACFn2B,OACGsgC,OAAQ,SACRC,MAAO,SAGVjxB,KAAM,SAASwO,OAAQuiB,IAAKrgB,QAEzBA,OAASwgB,MAAMrP,UAAUjvB,MAAM0F,KAAK0B,UAAW,GACzB,IAAlB0W,OAAO1a,QAAgB1G,EAAEwd,QAAQ4D,OAAO,MACzCA,OAASA,OAAO,IAGflC,SAAWrf,KAAK03B,IAAIn2B,MAAMvB,KAAKK,OAAS,SAAW,WACpDL,KAAK6Q,KAAK+wB,IAAKrgB,QAEXvhB,KAAKK,SAKZL,KAAK6E,QAAQiE,YAAY,QACtBuW,OAAQA,OACRuiB,IAAKA,IACLrgB,OAAQA,OACRtJ,IAAK5J,KAAKF,YAUhBwpB,WAAY,WACT,GAAI/sB,MAAOm3B,MAAMrP,UAAUjvB,MAAM0F,KAAK0B,UACtCD,MAAK6oB,QAAQzzB,KAAK03B,IAAIn2B,MAAMsgC,QAE5B7hC,KAAK03B,IAAI7mB,KAAK1F,MAAMC,KAAMR,OAS7Bo3B,UAAW,WACR,GAAIp3B,MAAOm3B,MAAMrP,UAAUjvB,MAAM0F,KAAK0B,UACtCD,MAAK6oB,QAAQzzB,KAAK03B,IAAIn2B,MAAMugC,OAE5B9hC,KAAK03B,IAAI7mB,KAAK1F,MAAMC,KAAMR,QAYhC5K,KAAK6e,QAEF/T,KAAM,KAGNm3B,YAAa,KAGbC,aAAc,KAGdC,YAAa,KAGbC,aAAa,EAGbC,kBAAmB,iCAAkC,iCAAkC,uCAAwC,+BAG/HtjB,iBAAkB,oBAAqB,wCAGvCujB,YAQA38B,KAAM,WACH,GAAI0K,MAAOrQ,KAAK6e,MAKhB,IAFAxO,KAAKvF,KAAO9K,KAAKsI,KAAKwC,MAEjBuF,KAAKvF,KAAKy3B,OAEZ,WADAviC,MAAK0F,MAAM,0BAId,IAAI88B,SAAUnyB,KAAKvF,KAAKy3B,OAAOC,OAE/BriC,GAAE8H,UAAUC,GAAG,eAAgBmI,KAAKoyB,WACpCtiC,EAAE8H,UAAUC,GAAG,gBAAiBmI,KAAKsF,YAErCxV,EAAE8H,UAAUC,GAAG,sBAAuBmI,KAAKqyB,gBAE3CF,QAAQt6B,GAAG,WAAY/H,EAAEwiC,MAAMtyB,KAAKuyB,WAAYvyB,OAGhDmyB,QAAQt6B,GAAG,aAAc/H,EAAEwiC,MAAMtyB,KAAKwyB,aAAcxyB,OACpDmyB,QAAQt6B,GAAG,UAAW/H,EAAEwiC,MAAMtyB,KAAKyyB,cAAezyB,OAElDmyB,QAAQt6B,GAAG,eAAgB/H,EAAEwiC,MAAMtyB,KAAK0yB,eAAgB1yB,OACxDmyB,QAAQt6B,GAAG,WAAY,SAASiY,KAAM6iB,UACnChjC,KAAKyE,MAAM,QAAUu+B,SAAS3xB,QAIjCmxB,QAAQt6B,GAAG,kBAAmB/H,EAAEwiC,MAAMtyB,KAAK4yB,oBAAqB5yB,OAChEmyB,QAAQt6B,GAAG,oBAAqB/H,EAAEwiC,MAAMtyB,KAAK6yB,sBAAuB7yB,OAEpEmyB,QAAQt6B,GAAG,QAAS,SAAStD,MAAOF,KACjC1E,KAAKyE,MAAM,YAAcG,MAAQ,IAAKF,OAGrC2L,KAAKvF,KAAKoI,MACX/S,EAAE8H,UAAUC,GAAG,eAAgBmI,KAAK0F,OAGvC,IAAIlE,KAAM7R,KAAK4F,QAAQM,IAAI,iBAAiB2L,KAAO7R,KAAK4F,QAAQq4B,oBAC5DkF,WAAanjC,KAAK4F,QAAQM,IAAI,gBAEf,iBAAR2L,MAAoBA,IAAIhL,OAAS,EACzCwJ,KAAK+yB,oBAAoBvxB,MAErB7R,KAAK6E,QAAQwB,YAAY,iBAE1BrG,KAAK6E,QAAQsP,eAAe,eAG5BgvB,WAAW9E,WAAar+B,KAAK4F,QAAQs4B,cAAcG,WACnDr+B,KAAK4F,QAAQU,IAAI,gBAAiB68B,aAGrC9yB,KAAKvF,KAAKy3B,OAAOc,cAAcF,WAAW9E,cAIhDnpB,YAAa,WAEVlV,KAAK6E,QAAQsP,eAAe,gBAG/BmvB,eAAgB,WACb,GAAIjzB,MAAOrQ,KAAK6e,MAEhB1e,GAAE8H,UAAU4B,IAAI,eAAgBwG,KAAKoyB,WACrCtiC,EAAE8H,UAAU4B,IAAI,gBAAiBwG,KAAKsF,YAEtCxV,EAAE8H,UAAU4B,IAAI,sBAAuBwG,KAAKqyB,gBAE5CviC,EAAE8H,UAAU4B,IAAI,eAAgBwG,KAAK0F,SASxCqtB,oBAAqB,SAASvxB,KAC3B,GAAIxB,MAAOrQ,KAAK6e,MAEhBhN,KAAMA,KAAO7R,KAAK4F,QAAQM,IAAI,iBAAiB2L,KAAO7R,KAAK4F,QAAQq4B,mBACnE,IAAIE,MAAOn+B,KAAK6E,QAAQwB,YAAY,gBAAkB,IAAK,GAAKhD,OAAQmB,SAQxE,OALIxE,MAAK6E,QAAQwB,YAAY,eAC1BrG,KAAK6E,QAAQsP,eAAe,aAC5BgqB,KAAM,GAGLA,IAAM,GAGP9tB,KAAKvF,KAAKy3B,OAAOc,cAAcrjC,KAAK4F,QAAQM,IAAI,iBAAiBm4B,gBAEjEp3B,QAAO+F,WAAWhN,KAAK6e,OAAOukB,oBAAqBjF,IAAM,UAI5Dh+B,GAAEojC,KAAK1xB,KACJ2xB,OAAO,EACPC,WACGrF,gBAAiBp+B,KAAK4F,QAAQM,IAAI,iBAAiBk4B,iBAEtDtW,QAAS,SAASnjB,MACf,GAAIw5B,KAAMx5B,KAAKw5B,KAAO,KAClBE,WAAa15B,KAAK05B,UAmBtB,KAjBKA,YAAc15B,KAAKkN,MAErB7R,KAAKyF,KAAK,4EAEV44B,aACGC,KAAM35B,KAAKkN,MAGVlN,KAAK+G,WACN2yB,WAAW,GAAG3yB,SAAW/G,KAAK+G,UAG7B/G,KAAK++B,aACNrF,WAAW,GAAGqF,WAAa/+B,KAAK++B,aAIlCrF,YAAcA,WAAWx3B,OAAS,EAAG,CAEtC,GAAIgL,KAAMwsB,WAAW,GAAGxsB,KAAOwsB,WAAW,GAAGxsB,IAAIhL,OAAS,EACtDy3B,KAAOD,WAAW,GAAGC,MAAQD,WAAW,GAAGC,KAAKz3B,OAAS,CAE7D,IAAIy3B,MAAQzsB,IAAK,CACd7R,KAAKyE,MAAM,uBAEX,IAAI0+B,YAAanjC,KAAK4F,QAAQM,IAAI,gBAClCi9B,YAAW9E,WAAaA,WACxBr+B,KAAK4F,QAAQU,IAAI,gBAAiB68B,YAElC9yB,KAAKvF,KAAKy3B,OAAOc,cAAchF,YAE/Br+B,KAAK6E,QAAQiE,YAAY,eAAe,GAAKzF,OAAQmB,UAAY,IAAO25B,SAExEn+B,MAAKyF,KAAK,6CAInBk+B,SAAU,UAYhB7kB,cAAe,SAASrW,IAAKm7B,UAC1B,GAAIvzB,MAAOrQ,KAAK6e,OACZzd,IAAMpB,KAAKuM,SAAS9D,KACpBuP,IAAMtG,OAAOC,KAAK3R,KAAK6E,QAAQwB,YAAY,MAAOjF,aAEtD,KAAKwiC,SACF,MAAO5rB,IACqB,iBAAb4rB,YACfA,UAAYA,UAGf,IAAIC,aAOJ,OANA1jC,GAAEqJ,KAAKwO,IAAK,SAAShH,EAAG+H,GACjB1I,KAAKvF,KAAKoI,KAAK2C,gBAAgBzU,IAAM,IAAM2X,EAAG6qB,WAC/CC,UAAUl6B,KAAKoP,KAId8qB,WAWV1L,WAAY,SAAStJ,MAAOtf,KACzB,GAAIc,MAAOrQ,KAAK6e,MAEhB,KAAItP,IAAIsV,SAAS,kBAAjB,CAMA,GAFA7kB,KAAKyE,MAAM,sBAEN4L,KAAKvF,KAIP,WAHA3K,GAAE8H,UAAU+C,IAAI,gBAAiB,WAC9BqF,KAAK8nB,WAAW,KAAM5oB,MAM5B,IAAIgW,KAAMplB,EAAE,SAAS8e,SAAS,aAC9B1P,KAAIM,KAAK,8BAA8ByoB,MAAM/S,IAE7C,IAAIkZ,sBAAuBz+B,KAAK4F,QAAQM,IAAI,4BACxC49B,QAAUzzB,KAAKvF,KAAKy3B,OAAOtiC,IAAI8jC,qBACnC,IAAItF,qBAAqBqF,UAAY9jC,KAAK6E,QAAQC,QAAQ,SAAU,CAEjE,GAAIk/B,GAAI7jC,EAAE,MACV6jC,GAAEp0B,KAAKzP,EAAE2L,EAAE,iBACXk4B,EAAE/kB,SAAS,+BACX+kB,EAAErsB,KAAK,OAAQ,KACfpI,IAAIM,KAAK,qCAAqCyoB,MAAMn4B,EAAE,QAAQyf,OAAOokB,IAGxE3zB,KAAK4zB,WAAW10B,IAAI5K,KAAK,UAS5Bs/B,WAAY,SAAS7iC,KAClBpB,KAAKyE,MAAM,cAAerD,IAE1B,IAAIiP,MAAOrQ,KAAK6e,MAEhB,IAAIzd,MAAQpB,KAAKuM,SAAS8D,KAAKvF,KAAKrC,KAApC,CAIA,GAAI8G,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1BqH,IAAM8G,IAAI5K,KAAK,OACf1D,GAAKjB,KAAK6E,QAAQwB,YAAY,QAASjF,IAE3C,IAAmB,gBAARqH,KAAkB,CAC1B,IAAIxH,IAAwB,gBAAXA,IAAGwH,IAIjB,WADAzI,MAAKyE,MAAM,kEAAoErD,IAF/EqH,KAAMxH,GAAGwH,IAOf,GAAIuP,KAAMtJ,QAAQiI,mBAAmBlO,KAEjC8a,GAAKhU,IAAIM,KAAK,eAEdq0B,WAAa7zB,KAAKyO,cAAcrW,IAAK4H,KAAKgyB,kBAC1C8B,UAAYnsB,GAEE,QAAdmsB,YACDhkC,EAAEqJ,KAAKxJ,KAAK6E,QAAQwB,YAAY,QAASjF,KAAK4W,QAAW,SAASvO,MAAOC,KACtE,GAAIw6B,WAAW5rB,QAAQ5O,MAAO,EAE3B,MADAy6B,WAAYz6B,KACL,IAIbjB,IAAMA,IAAM,IAAM07B,WAGrB5gB,GAAG1Z,IAAI,SAEHq6B,WAAW5rB,QAAQ6rB,YAAa,GACjC5gB,GAAGzT,MAAM,WACF3P,EAAEiL,MAAMyZ,SAAS,oBAClBxU,KAAK+zB,mBAAmB37B,KAExB4H,KAAKg0B,UAAU57B,OAIrB8a,GAAG5W,YAAY,iBAEf4W,GAAG5L,KAAK,QAASxX,EAAE2L,EAAE,uBAErByX,GAAGtE,SAAS,iBAEZsE,GAAG5L,KAAK,QAASxX,EAAE2L,EAAE,+BAY3B22B,UAAW,SAASjC,EAAGjtB,MACpB,GAAIlD,MAAOrQ,KAAK6e,OACZzd,IAAMpB,KAAKuM,SAASgH,KAExBvT,MAAKyE,MAAM,mBAAoB8O,MAE3BlD,KAAKiyB,SAASlhC,OAASmS,OACxBlD,KAAK4zB,WAAW7iC,KAChBiP,KAAKiyB,SAASlhC,KAAOmS,OAY3BoC,WAAY,SAAS7L,GAAIrB,IAAK+J,OAAQqG,UACnC,GAAIxI,MAAOrQ,KAAK6e,MAEsD,KAAlE1e,EAAE0Y,UAAUhJ,KAAK,YAAcnB,QAAQtM,GAAG4R,KAAO,MAAMnN,SACxD7G,KAAKyE,MAAM,oBAAqBgE,KAEhC4H,KAAK4zB,WAAWjkC,KAAKuM,SAAS9D,QAWpC67B,UAAW,SAAS/I,IAAKt2B,GACtB,GAAIuN,QAASrS,EAAE,6BACXgtB,SAAyB,mBAANloB,IAA2B,OAANA,EAAc,IAAOA,CAuBjE,IArBAjF,KAAKyE,MAAM,WAAY82B,KAEnB/oB,OAAOpN,SAERm2B,IAAM/oB,OAAOpN,OAAS,SAAWm2B,KAGpC/oB,OAAOpN,KAAKm2B,KAEZ/oB,OAAOsR,KACJygB,cAAe,IAAO/xB,OAAOhB,QAAU,EAAK,KAC5Cqa,QAAS,EACT2Y,QAAS,UAGZhyB,OAAOuc,OAAO0V,SACX5Y,QAAS,IAGZ9d,aAAayE,OAAO7N,KAAK,YAER,IAAbwoB,SAAJ,CAIA,GAAI5sB,IAAKyM,WAAW,WACjBwF,OAAOuc,OAAO0V,SACX5Y,QAAS,GACT,WACArZ,OAAOpN,KAAK,OAEf+nB,SAEH3a,QAAO7N,KAAK,UAAWpE,MAW1BwV,OAAQ,SAAS8Y,MAAOpmB,KACrB,GAAI4H,MAAOrQ,KAAK6e,MAEZ7e,MAAK+I,IAAIC,OAAOkG,OACjBmB,KAAK4zB,WAAWjkC,KAAKuM,SAAS9D,MAE9BtI,EAAE8H,UAAUC,GAAG,sBAAuB,WACnCmI,KAAK4zB,WAAWjkC,KAAKuM,SAAS9D,SAWvCi6B,eAAgB,SAAS54B,GAAIzE,KAC1B,GACIX,KADA2L,KAAOrQ,KAAK6e,MAMhB,QAJAxZ,IAAMA,QAENgL,KAAKi0B,UAAU,iBAEPj/B,IAAIwS,MACT,IAAK,kBACL,IAAK,oBACFnT,IAAMvE,EAAE2L,EAAE,wBACV,MACH,KAAK,iBACL,IAAK,wBACFpH,IAAMvE,EAAE2L,EAAEzG,IAAIwS,KACd,MACH,SACGnT,IAAMvE,EAAE2L,EAAEzG,IAAIwS,QAAUxS,IAAIwS,KAAO1X,EAAE2L,EAAEzG,IAAIwS,MAAQ1X,EAAE2L,EAAE,iBAG7D9L,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKpB,KAAKuM,SAASvM,KAAK6e,OAAOsjB,aAC/B7nB,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,iBAAmB,KAAOpH,IAAM,KAAOW,IAAIwS,KAAO,OAG9D7X,KAAK+I,IAAIoM,OAAOC,QAEhBpV,KAAKyE,MAAM,kBAAoBY,IAAIwS,OAQtC+qB,WAAY,SAAS8B,SAClB,GAAIr0B,MAAOrQ,KAAK6e,OACZvI,KAAQouB,QAAmB,YAAIA,QAAQC,YAAY9sB,KAAO,IAE9D,IAAa,wBAATvB,KACDjG,KAAKu0B,uBAAuBF,aACxB,IAAa,iBAATpuB,KAAyB,CACjC,GAAIuuB,WAAW,CAEf1kC,GAAEqJ,KAAKk7B,QAAQI,GAAGC,kBAAkBC,SAAU,WACtB,SAAjB55B,KAAK65B,UACNJ,UAAW,KAIjBH,QAAQv7B,KAAO07B,SAEXA,SACDx0B,KAAK60B,eAAeR,SAEpBr0B,KAAK80B,iBAAiBT,aAGzB1kC,MAAKyF,KAAK,0BAShB0/B,iBAAkB,SAAST,SA2CxB,QAASU,sBAAqBV,SAC3B1kC,KAAK+I,IAAIoM,OAAOC,QAEhBpV,KAAK+I,IAAIs8B,gBAAgBX,QAAQY,QAEjCZ,QAAQa,SA/CXvlC,KAAKyE,MAAM,wBAA0BigC,QAAQY,OAE7C,IAAIj1B,MAAOrQ,KAAK6e,OACZzd,IAAMpB,KAAKuM,SAASm4B,QAAQY,OAgBhC,IAdAZ,QAAQx8B,GAAG,yBAA0B/H,EAAEwiC,MAAMtyB,KAAKm1B,4BAA6Bn1B,OAE/EA,KAAKo1B,kBAAkBrkC,IAAKjB,EAAE2L,EAAE,mBAAoB44B,QAAQl8B,KAG5DxI,KAAKqN,aAAamM,OAAOrZ,EAAE2L,EAAE,mBAAoB3L,EAAE2L,EAAE,eAClDuU,OAAQjf,OAIXsjC,QAAQgB,OAER1lC,KAAK6e,OAAOsjB,YAAcuC,QAAQY,OAE9BtlC,KAAK6e,OAAOujB,YAGb,WAFAgD,sBAAqBV,QAKxB,IAAIvvB,QAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,eAAgB9E,MACrEykB,SAAS,GAGZ1Q,QAAOtF,KAAK,gBAAgBC,MAAM,WAC/B3P,EAAE8H,UAAUkH,QAAQ,oBAEpBi2B,qBAAqBV,WAGxBvvB,OAAOtF,KAAK,gBAAgBC,MAAM,WAC/B9P,KAAK+I,IAAIoM,OAAOC,QAChBjV,EAAE8H,UAAUkH,QAAQ,oBAEpBu1B,QAAQiB,aAiBdf,uBAAwB,SAASF,SAC9B1kC,KAAKyE,MAAM,+BAAiCigC,QAAQY,OAEpD,IAAIM,WAAY5lC,KAAK6E,QAAQwB,YAAY,iBACrCjF,IAAMpB,KAAKuM,SAASm4B,QAAQY,OAEhC,IAAIM,UAAUttB,QAAQlX,MAAO,EAAI,CAE9BsjC,QAAQa,QAER,IAAI1rB,SAAU7Z,KAAK+I,IAAI9B,OAAOyT,aAC3B+B,KAAMioB,QAAQl8B,IAAM,OACpBpH,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQE,GACxBS,YACGrD,KAAM6sB,QAAQmB,SAAS7C,SAASnrB,KAChCvB,KAAMouB,QAAQmB,SAAS7C,SAAS1sB,MAAQ,6BAI9CouB,SAAQmB,SAAS39B,GAAG,WAAY,SAASoY,KAAMlF,MAC5Cpb,KAAK+I,IAAI9B,OAAOsZ,eAAe1G,QAASyG,KAAMlF,UAYvD8pB,eAAgB,SAASR,SACtB1kC,KAAKyE,MAAM,sBAAwBigC,QAAQY,OAE3C,IAAIj1B,MAAOrQ,KAAK6e,OACZzd,IAAMpB,KAAKuM,SAASm4B,QAAQY,OAgBhC,IAdAZ,QAAQx8B,GAAG,yBAA0B/H,EAAEwiC,MAAMtyB,KAAKm1B,4BAA6Bn1B,OAE/EA,KAAKy1B,gBAAgB1kC,IAAKjB,EAAE2L,EAAE,iBAAkB44B,QAAQl8B,KAGxDxI,KAAKqN,aAAamM,OAAOrZ,EAAE2L,EAAE,iBAAkB3L,EAAE2L,EAAE,eAChDuU,OAAQjf,OAIXsjC,QAAQgB,OAER1lC,KAAK6e,OAAOsjB,YAAcuC,QAAQY,OAE9BtlC,KAAK6e,OAAOujB,YAEb,WADA/xB,MAAK01B,mBAAmBrB,QAI3B,IAAIvvB,QAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,eAAgB9E,MACrEykB,SAAS,GAGZ1Q,QAAOtF,KAAK,gBAAgBC,MAAM,WAC/BO,KAAK01B,mBAAmBrB,WAG3BvvB,OAAOtF,KAAK,gBAAgBC,MAAM,WAC/B9P,KAAK+I,IAAIoM,OAAOC,QAChBjV,EAAE8H,UAAUkH,QAAQ,oBAEpBu1B,QAAQiB,aAWdI,mBAAoB,SAASrB,SAC1BvkC,EAAE8H,UAAUkH,QAAQ,mBAEpB,IAAIkB,MAAOrQ,KAAK6e,MAEhB7e,MAAKiQ,cACF+1B,oBAAqB,SAASl8B,GAAIm8B,QAC/B51B,KAAKi0B,UAAU,eAEfj0B,KAAK4xB,YAAcgE,OACnB51B,KAAKvF,KAAKy3B,OAAON,YAAcgE,MAE/B,IAAI9wB,QAASnV,KAAK+I,IAAIs8B,gBAAgBX,QAAQY,OAC9CnwB,QAAOtF,KAAK,wBAAwBoP,SAAS,qBAE7CylB,QAAQwB,UAAUD,QAClBvB,QAAQa,UAEXY,sBAAuB,WACpBzB,QAAQiB,aAIdt1B,KAAK+1B,gBASRvD,aAAc,SAAS6B,QAAShK,QAC7B,GAAIrqB,MAAOrQ,KAAK6e,OACZvI,KAAQouB,QAAmB,YAAIA,QAAQC,YAAY9sB,KAAO,IAEjD,kBAATvB,MACDjG,KAAKg2B,iBAAiB3B,QAAShK,SAYrC2L,iBAAkB,SAAS3B,QAAShK,QACjC,GAAIrqB,MAAOrQ,KAAK6e,MAEhBxO,MAAKi0B,UAAU,mBAAqBI,QAAQY,QAAU5K,QAAUA,OAAOjoB,UAAYioB,OAAOjoB,UAAY,IAEtG,IAAIrR,KAAMpB,KAAKuM,SAASm4B,QAAQY,OAEhC,IAAIj1B,KAAK4xB,YAEN,GAA0C,kBAA/B5xB,MAAK4xB,YAAYqE,UAA0B,CACnD,GAAIC,QAASl2B,KAAK4xB,YAAYqE,WAC9BC,QAAOC,QAAQ,SAASC,OACrBA,MAAM1X,aAEgC,kBAA1B1e,MAAK4xB,YAAYlT,KAChC1e,KAAK4xB,YAAYlT,OAEjB/uB,KAAKyF,KAAK,8BAKZtF,GAAE,qBAAqB0G,SACxB1G,EAAE,qBAAqB,GAAGujB,IAAM,IAG/BvjB,EAAE,oBAAoB0G,SACvB1G,EAAE,oBAAoB,GAAGujB,IAAM,IAGlCrT,KAAKvF,KAAKy3B,OAAON,YAAc,KAC/B5xB,KAAK4xB,YAAc,KACnB5xB,KAAK6xB,aAAe,KAEpBliC,KAAK+I,IAAI29B,mBAGT1mC,KAAK+I,IAAIoM,OAAOC,QAChBjV,EAAE8H,UAAUkH,QAAQ,oBAEpBhP,EAAE8H,UAAU4B,IAAI,eAEhB,IAAInF,MAAOg2B,QAAUA,OAAOjoB,UAAa,KAAOtS,EAAE2L,EAAE,iBAAmB4uB,OAAOjoB,WAAc,IAAM,GAC9FiyB,SAAQv7B,MACTzE,IAAMvE,EAAE2L,EAAE,mBAAqBpH,IAC/B1E,KAAK6e,OAAOinB,gBAAgB1kC,IAAKsD,IAAKggC,QAAQl8B,OAE9C9D,IAAMvE,EAAE2L,EAAE,qBAAuBpH,IACjC1E,KAAK6e,OAAO4mB,kBAAkBrkC,IAAKsD,IAAKggC,QAAQl8B,OAUtDs6B,cAAe,WACZ13B,KAAKk5B,UAAU,aAAc,GAE7BnkC,EAAE,wBAAwBwM,YAAY,qBAAqBsS,SAAS,iBAWvEgkB,oBAAqB,SAASyB,QAASuB,QACpC,GAAI51B,MAAOrQ,KAAK6e,MAEhBxO,MAAKi0B,UAAU,6BAA+BI,QAAQl8B,IAAM,WAE5D6H,KAAK6xB,aAAe+D,MAEpB,IAAIU,eAAgBV,OAAOW,iBAAiB//B,OAAS,EACjDggC,cAAgBZ,OAAOa,iBAAiBjgC,OAAS,CAErDwJ,MAAKi0B,UAAUqC,cAAgB,2BAA6B,0BAC5Dt2B,KAAKi0B,UAAUuC,cAAgB,2BAA6B,0BAExD1mC,EAAE,qBAAqB0G,SACxBwJ,KAAK02B,kBAAkB5mC,EAAE,kCAAmC8lC,QAE5D9lC,EAAE,uBAAyBwmC,cAAgB,cAAgB,kBAAkB1nB,SAAS,0BAW5F8nB,kBAAmB,SAASld,QAASoc,QAClC,GAAI51B,MAAOrQ,KAAK6e,MAEhBxO,MAAKvF,KAAKy3B,OAAOtiC,IAAI8mC,kBAAmBld,kBAAmBsX,QAAUtX,QAAQ3jB,IAAI,GAAK2jB,QAASoc,QAE/F9lC,EAAE0pB,SAASna,QAUdwzB,sBAAuB,SAASwB,SAC7Bt5B,KAAKk5B,UAAU,qBAAuBI,QAAQj8B,IAAM,cAavD+8B,4BAA6B,SAASd,QAASjzB,OAC5C,GAAIpB,MAAOrQ,KAAK6e,MAEhB7e,MAAKyE,MAAM,wBAA0BigC,QAAQl8B,IAAKiJ,OAEpC,cAAVA,MACDtR,EAAE,sCAAsCuP,OACtB,WAAV+B,OACRzR,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKpB,KAAKuM,SAASm4B,QAAQY,QAC3BhrB,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,4BAGZ44B,QAAQsC,IAAI,oBAEZ7mC,EAAE8H,UAAUkH,QAAQ,0BACF,gBAAVsC,OACRpB,KAAKi0B,UAAUnkC,EAAE2L,EAAE,4BAWzBu4B,UAAW,SAAS57B,IAAKw+B,IACtB,GAAI52B,MAAOrQ,KAAK6e,MAEhB,OAAwC,QAApCnQ,QAAQiI,mBAAmBlO,SAC5BzI,MAAKyE,MAAM,uBAId4L,KAAK8xB,YAAc15B,IAEnBzI,KAAKiQ,cACF+1B,oBAAqB,SAASl8B,GAAIm8B,QAC/BjmC,KAAKyE,MAAM,iCAEX4L,KAAK62B,qBAAqBz+B,IAAKw9B,SAElCE,sBAAuB,WACpBnmC,KAAK+I,IAAIoM,OAAOC,eAItB/E,MAAK+1B,aAAaa,MASrBC,qBAAsB,SAASz+B,IAAKw9B,QACjC,GAAI51B,MAAOrQ,KAAK6e,MAEhBxO,MAAK4xB,YAAcgE,OACnB51B,KAAKvF,KAAKy3B,OAAON,YAAcgE,MAE/B,IAAI9wB,QAASnV,KAAK+I,IAAIs8B,gBAAgB58B,IAEtC0M,QAAOtF,KAAK,wBAAwBoP,SAAS,qBAE7C5O,KAAKi0B,UAAU,iBAGfnkC,EAAE8H,UAAU+C,IAAI,eAAgB,SAASlB,GAAItB,IAAK9C,OAC3CA,OAA0B,UAAjBA,MAAMgU,QAInB1M,WAAW,WACRhN,KAAK+I,IAAIod,UAAU,4EACnB,MAGN,IAAIue,SAAUr0B,KAAKvF,KAAKy3B,OAAO4E,SAAS1+B,IAGxCi8B,SAAQv7B,MAAO,EAEfu7B,QAAQx8B,GAAG,yBAA0B/H,EAAEwiC,MAAMtyB,KAAKm1B,4BAA6Bn1B,OAE/EA,KAAKy1B,gBAAgB9lC,KAAKuM,SAAS9D,KAAMtI,EAAE2L,EAAE,gBAAiB44B,QAAQl8B,MAQzE4+B,OAAQ,SAAS1M,OAAQ9qB,MAClB5P,KAAK6e,OAAO/T,KAAKy3B,OAAOC,UAAYriC,EAAEknC,cAAcrnC,KAAK6e,OAAO/T,KAAKy3B,OAAOC,QAAQ8E,OACrFtnC,KAAK6e,OAAO/T,KAAKy3B,OAAOgF,UAAU,KAAM7M,OAAQ9qB,MAEhD5P,KAAK+I,IAAI29B,mBAIZvmC,EAAE8H,UAAUkH,QAAQ,0BAQvBi1B,mBAAoB,SAAS37B,KAC1B,GAAI4H,MAAOjF,IAEX,OAAwC,QAApCsD,QAAQiI,mBAAmBlO,SAC5BzI,MAAKyE,MAAM,uBAId4L,KAAK8xB,YAAc15B,IAEnBzI,KAAKiQ,cACF+1B,oBAAqB,SAASl8B,GAAIm8B,QAC/B51B,KAAKm3B,sBAAsB/+B,IAAKw9B,SAEnCE,sBAAuB,SAASr8B,GAAIzE,KACjCrF,KAAK+I,IAAIoM,OAAOC,OAEhB,IAAI0uB,SAAUzzB,KAAKvF,KAAKy3B,OAAOtiC,IAAI8jC,sBAE/BtF,qBAAuBz+B,KAAK4F,QAAQM,IAAI,2BACxCu4B,sBAAqBqF,WACR,0BAAbz+B,IAAIwS,MAAkD,oBAAbxS,IAAIwS,MAA0C,YAAZisB,UAE5E92B,WAAW,WACRhN,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKpB,KAAKuM,SAAS9D,KACnB6R,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKvE,EAAE2L,EAAE,qBAAuB2yB,qBAAqBqF,YAExD,YAKZzzB,MAAK+1B,cAAc,aAStBoB,sBAAuB,SAAS/+B,IAAKw9B,QAClC,GAAI51B,MAAOrQ,KAAK6e,OACZzd,IAAMpB,KAAKuM,SAAS9D,IAExBzI,MAAK6e,OAAOojB,YAAcgE,OAC1BjmC,KAAK6e,OAAO/T,KAAKy3B,OAAON,YAAcgE,MAEtC,IAAItc,WAAY3pB,KAAK+I,IAAI0+B,0BACzB9d,WAAU1K,SAAS,qBAEnB5O,KAAKi0B,UAAU,mBAEfnkC,EAAE8H,UAAU+C,IAAI,eAAgB,SAASw1B,EAAGh4B,IAAK9C,OAC1CA,OAA0B,UAAjBA,MAAMgU,QAInB1M,WAAW,WACRhN,KAAK+I,IAAIod,UAAU,4EACnB,MAGN,IAEIuhB,aAFA5D,QAAUzzB,KAAKvF,KAAKy3B,OAAOtiC,IAAI8jC,sBAC/B4D,eAAiBt3B,KAAKvF,KAAKy3B,OAAOtiC,IAAI2nC,qBAIvCF,aADEC,eAAiB,IAAkB,YAAZ7D,SAAsC,WAAZA,SAEhD+D,WACGC,qBAAuB,EACvBC,qBAAuB,KAK1BC,qBAAuB,EACvBC,qBAAuB,EAI7B,IAAIvD,SAAUr0B,KAAKvF,KAAKy3B,OAAO4E,SAAS1+B,IAAK6S,OAAWosB,YACxDhD,SAAQv7B,MAAO,EAEfu7B,QAAQx8B,GAAG,yBAA0B/H,EAAEwiC,MAAMtyB,KAAKm1B,4BAA6Bn1B;AAE/Eq0B,QAAQx8B,GAAG,WAAY,WACpBmI,KAAK63B,kBAAkBxD,WAG1Br0B,KAAKo1B,kBAAkBrkC,IAAKjB,EAAE2L,EAAE,kBAAmB44B,QAAQl8B,MAQ9D0/B,kBAAmB,SAASxD,SACzB,GAAIr0B,MAAOrQ,KAAK6e,MAEhB1e,GAAE,wBAAwBwM,YAAY,gBAEtC0D,KAAKo1B,kBAAkBzlC,KAAKuM,SAASm4B,QAAQY,QAASnlC,EAAE2L,EAAE,uBAAwB44B,QAAQl8B,MAQ7F49B,aAAc,SAASa,IA4BpB,QAASkB,iBAAgBC,SACtB,GAAIC,kBAAmBD,QAAQnX,IAAI,SAASqX,QACzC,MAAOA,QAAOC,MAGjBtB,IAAKA,GAAGuB,OAAO,SAASjlB,IACrB,MAAO8kB,kBAAiB/vB,QAAQiL,OAAQ,GAAM8kB,iBAAiB/vB,QAAQiL,GAAK,YAAa,IAGxF0jB,GAAGpgC,OACJ7G,KAAK6e,OAAO4pB,aAAaxB,IAEzBjnC,KAAKyF,KAAK,oCAvChB,MAAI2F,MAAK62B,gBACN9hC,GAAE8H,UAAUkH,QAAQ,qBAAsB/D,KAAK62B,eAIlDgF,GAAKA,KAAO,QAAS,SAErBjnC,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,qBACxC2f,SAAS,SAGRohB,GAAG3uB,QAAQ,WAAa,EACzBtY,KAAK6e,OAAO6pB,iBACiB,mBAAd/hC,YAA+D,mBAA3BA,WAAUgiC,cACV,mBAA5ChiC,WAAUgiC,aAAaC,iBAC9BjiC,UAAUgiC,aAAaC,mBACnBC,KAAKV,iBACLW,MAAM,SAASzjC,KACbrF,KAAKyF,KAAKJ,IAAIwS,KAAO,KAAOxS,IAAIwU,WAEF,mBAArBkvB,mBAA2E,mBAAhCA,kBAAiBC,WAE3ED,iBAAiBC,WAAWb,iBAE5BnoC,KAAK6e,OAAO4pB,aAAaxB,OAyB/BwB,aAAc,SAASxB,IACpB,GAAI52B,MAAOrQ,KAAK6e,OACZ6oB,cAEAT,IAAG3uB,QAAQ,UAAW,IACvBovB,YAAYuB,OAAQ,GAGnBhC,GAAG3uB,QAAQ,UAAW,IACvBovB,YAAYnL,OAAQ,EAGvB,KACGlsB,KAAKvF,KAAKy3B,OAAOtiC,IAAIwoC,aAAaf,YAC/B,SAASzB,QACNjmC,KAAKyE,MAAM,sBACXtE,EAAE8H,UAAUkH,QAAQ,qBAAsB82B,UAE7C,SAASvgC,OACN1F,KAAKyF,KAAK,8CAA+CC,OACzDvF,EAAE8H,UAAUkH,QAAQ,uBAAwBzJ,UAEnD,MAAO86B,GACNxgC,KAAK0F,MAAM,eAAgB86B,GAC3BrgC,EAAE8H,UAAUkH,QAAQ,yBAS1Bu5B,eAAgB,WACb,GAAIr4B,MAAOrQ,KAAK6e,MAEhB7e,MAAKyE,MAAM,oBAEX4L,KAAKvF,KAAKy3B,OAAOmG,eAAer4B,KAAK64B,sBAGxCA,oBAAqB,SAAS7jC,IAAK4gC,QAChC,MAAI5gC,SACDlF,GAAE8H,UAAUkH,QAAQ,uBAAwB9J,WAK3C4gC,SACDjmC,KAAKyE,MAAM,wBACXtE,EAAE8H,UAAUkH,QAAQ,qBAAsB82B,YAIhDkD,qBAAsB,WACnB,GAAI94B,MAAOrQ,KAAK6e,OACZilB,QAAUzzB,KAAKvF,KAAKy3B,OAAOtiC,IAAI8jC,sBAG/BpF,SAAWyK,eAAeC,6BAA2C,WAAZvF,QAMzDpF,QAAsB,YAAZoF,OAEd,OAAOnF,SAAUD,SASpB4K,SAAU,SAASL,OACXA,OACFjpC,KAAKyE,MAAM,yBAGdtE,EAAE,uBAAuBgW,QAEzB,IAAIgd,QAAShzB,EAAE,aAAa2jB,IAAI,UAAW,QAAQ/D,SAAS,QAAQpI,MACjEnG,MAAOy3B,MAAMz3B,QACboV,OAAQqiB,MAAMriB,WACd1gB,IAAI,GACHktB,IAAMD,OAAOE,WAAW,KAE5BD,KAAIE,UAAU2V,MAAM,GAAI,EAAG,EAC3B,IAAInpB,KAAM3f,EAAE,UACR0R,IAAM,IAEV,KACGA,IAAMshB,OAAOI,UAAU,cACxB,MAAOluB,KAEN,WADArF,MAAKyF,KAAK,QAASJ,KAItBya,IAAI,GAAG4D,IAAM7R,GACb,IAAIyb,MAAOntB,EAAE,QAAQwX,MAClB0H,OAAQ,SACRyK,KAAMjY,KAETyb,MAAK1N,OAAOE,KACZ3f,EAAE,qBAAqByf,OAAO0N,MAE9B6F,OAAOhd,UAWViK,SAAU,SAAS3X,IAAK2W,MACrBpf,KAAKyE,MAAM,uBAEX,IAAI4L,MAAOrQ,KAAK6e,MAEhB,KAAKnQ,QAAQiI,mBAAmBlO,KAG7B,WAFAzI,MAAKyF,KAAK,2CAKb,IAAI0a,MAAO9P,KAAKvF,KAAKy3B,OAAOC,QAAQ+G,0BAA0B9gC,IAW9D,OATA0X,MAAKjY,GAAG,sBAAuB,WAC5BlI,KAAKyE,MAAM,gBAAiB0b,KAAK1O,SAEpC0O,KAAKjY,GAAG,yBAA0B,WAC/BlI,KAAKyE,MAAM,mBAAoB0b,KAAKqpB,mBAGvCrpB,KAAKxV,MAAMyU,MAEJe,MAWV4iB,eAAgB,SAAS5iB,KAAMf,KAAM4jB,UAGlC,GAFAhjC,KAAKyE,MAAM,gBAAiBu+B,UAEvBnjB,WAAL,CAIA,GACIvJ,MADA0J,OAAS,GAAIH,WAGjB,IAAKmjB,SAAS1sB,KA2BXA,KAAO0sB,SAAS1sB,SA3BC,CAGjB,GAAImzB,KAAMzG,SAASnrB,KAAKjJ,QAAQ,oBAAqB,MAAMC,aAE3D,QAAQ46B,KACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACFnzB,KAAO,SAAWmzB,IAAI76B,QAAQ,QAAS,OACvC,MACH,KAAK,MACL,IAAK,MACF0H,KAAO,SAAWmzB,GAClB,MACH,KAAK,MACFnzB,KAAO,iBACP,MACH,KAAK,MACFA,KAAO,QAAUmzB,GACjB,MACH,SACGnzB,KAAO,4BAMhB0J,OAAOC,OAAS,SAASnW,IAGtB9J,KAAK+I,IAAI9B,OAAOyT,aACb+B,KAAM0D,KAAK3X,IAAM,OACjBpH,IAAKpB,KAAKuM,SAAS4T,KAAKmlB,QACxBhrB,UAAWta,KAAKua,QAAQE,GACxBS,YACGrD,KAAMmrB,SAASnrB,KACfvB,KAAMA,KACN8E,KAAM4nB,SAAS5nB,KACfzW,KAAMmF,GAAGuV,OAAO/B,WAKpB8B,KAAK9I,OAEP8I,KAAO,GAAIsqB,OAAMtqB,MAAO4jB,SAASnrB,MAC9BvB,KAAMA,QAIZ0J,OAAOE,cAAcd,SAI3Bpf,KAAK6e,OAAOinB,gBAAkB,SAAS1kC,IAAKsD,IAAKshB,KAC9ChmB,KAAK+I,IAAI9B,OAAOyT,aACb+B,KAAMuJ,IACN5kB,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAK,wBAA0BA,OAGrC1E,KAAK6e,OAAO4mB,kBAAoB,SAASrkC,IAAKsD,IAAKshB,KAChDhmB,KAAK+I,IAAI9B,OAAOyT,aACb+B,KAAMuJ,IACN5kB,IAAKA,IACLkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAK,cAAgBA,OAI3B1E,KAAK+I,IAAI0+B,yBAA2B,WACjC,GAAIp3B,MAAOrQ,KAAK6e,MAGhB7e,MAAK+I,IAAIoM,OAAOC,OAEhB,IAAIu0B,gBAAiBxpC,EAAE,SACvBwpC,gBAAe1qB,SAAS,sCACxB0qB,eAAe5pB,SAAS,QACxB4pB,eAAeC,WACZC,YAAa,UAGhB,IAAIC,cAAe3pC,EAAE,sDAkBrB,OAjBA2pC,cAAa/pB,SAAS4pB,gBAEtBG,aAAa,GAAGC,OAAQ,EACxBD,aAAa,GAAGE,OAAS,EAErB35B,KAAK4xB,aACN5xB,KAAK02B,kBAAkB+C,aAAcz5B,KAAK4xB,aAG7C0H,eAAe/pB,OAAO,yGACtB+pB,eAAe95B,KAAK,gBAAgBC,MAAM,WACvC9P,KAAK6e,OAAOuoB,OAAO,aAEtBuC,eAAe75B,MAAM,WAClB65B,eAAe95B,KAAK,oBAAoBiV,YAAY,kBAGhD6kB,gBAQV3pC,KAAK+I,IAAIs8B,gBAAkB,SAAS58B,KACjC,GAAI4H,MAAOrQ,KAAK6e,MAGhB7e,MAAK+I,IAAIoM,OAAOC,QAEhBjV,EAAE,QAAQyf,OAAO5f,KAAK+I,IAAIgZ,SAAS7b,IAAI,gBAGvC/F,EAAE,iCAAiC,GAAG4pC,OAAQ,EAC9C5pC,EAAE,iCAAiC,GAAG6pC,OAAS,CAE/C,IAAIC,IAAK9pC,EAAE,kCACP+pC,GAAK/pC,EAAE,gCAEX+pC,IAAGN,WACAC,YAAa,WAGZx5B,KAAK4xB,aACN5xB,KAAK02B,kBAAkBmD,GAAI75B,KAAK4xB,YAGnC,IAAIkI,UAAWhqC,EAAE,gBAAgBqR,QAC7B44B,SAAWH,GAAGz4B,OAGlB,IAAI44B,SAAWD,SAAU,CACtB,GAAIE,OAAQF,SAAWC,SACnBE,MAAQL,GAAGrjB,SAAWyjB,MACtBE,MAAQJ,SACRK,GAAKrqC,EAAE,oCAEX8pC,IAAGrjB,OAAO0jB,OACVL,GAAGz4B,MAAM+4B,OAETC,GAAG5jB,OAAO0jB,OACVE,GAAGh5B,MAAM+4B,OAETL,GAAGtjB,OAAOsjB,GAAGtjB,SAAWyjB,OACxBH,GAAG14B,MAAM04B,GAAG14B,QAAU64B,OAGrBh6B,KAAK6xB,eACN7xB,KAAK02B,kBAAkBkD,GAAI55B,KAAK6xB,cAEhC/hC,EAAE,uBAAyBkQ,KAAK6xB,aAAa0E,iBAAiB//B,OAAS,EAAI,cAAgB,kBAAkBoY,SAAS,wBAGzH,IAAI1P,KAAMvP,KAAK+I,IAAI9B,OAAOua,KAAKxhB,KAAKuM,SAAS9D,KAgC7C,OA9BA8G,KAAIM,KAAK,kBAAkB4e,UAAU,WACrCzuB,KAAK+I,IAAI9B,OAAO+a,OAAOzS,KACpB6L,MACG5J,MAAOrR,EAAE,+BAA+BqR,QACxCoV,OAAQzmB,EAAE,+BAA+BymB,YAE5C,GAEHzmB,EAAE,kCAAkCyf,OAAOrQ,IAAIkd,UAE/CtsB,EAAE,6BAA6B2P,MAAM,WAClC9P,KAAK6e,OAAOuoB,OAAO,aAGtBjnC,EAAE,iCAAiC2P,MAAM,WAElC3P,EAAEsqC,QAAQC,aAEXvqC,EAAE8H,UAAU+C,IAAI,sBAAuB,WACpCk/B,GAAGrmB,WAAW,WAGjB1jB,EAAE,qCAAqCuqC,gBAI7CvqC,EAAE,qCAAqC2P,MAAM,WAC1C3P,EAAE,iCAAiC2kB,YAAY,kBAG3C3kB,EAAE,iBAGZH,KAAK+I,IAAI29B,iBAAmB,WACzB,GAAIn3B,KAAMpP,EAAE,wCAERoP,KAAI1I,OAAS,IACd1G,EAAE,yBAAyB+E,QAAQqK,IAAIkd,UACvCld,IAAIM,KAAK,kBAAkB4e,UAAU,UACrCzuB,KAAK+I,IAAI9B,OAAO+a,OAAOzS,MAG1BpP,EAAE,sCAAsCgW,UAG3ChW,EAAE8F,OAAOjG,KAAKuB,OACXopC,cAAe,GACfC,YAAa,KAGhBzqC,EAAE8H,UAAUwP,MAAM,WACftX,EAAE8H,UAAUC,GAAG,mBAAoBlI,KAAK6e,OAAOsZ,YAC/Ch4B,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAK6e,OAAOlZ,MAC5CxF,EAAE8H,UAAUC,GAAG,oBAAqBlI,KAAK6e,OAAOykB,gBAChDnjC,EAAE8H,UAAUC,GAAG,iBAAkBlI,KAAK6e,OAAO3J,eAQhDlV,KAAKsI,KAAK4P,aAOVlY,KAAKsI,KAAK4P,UAAU2yB,OAAS,WAC1B,MAAO7qC,MAAKsI,KAAKwC,KAAKoI,MAAQlT,KAAKsI,KAAKuN,gBAAgB7V,KAAKsI,KAAKwC,KAAKsB,OAAQsC,QAAQtM,GAAG0oC,OAAS,aAQtG9qC,KAAKsI,KAAK4P,UAAUC,KAAO,WACxB,GAAIjF,MAAOlT,KAAKsI,KAAKwC,KAAKoI,KACtBQ,IAAMR,KAAKa,aAAa/T,KAAKsI,KAAKwC,KAAKsB,OAEtCsH,MAAQR,KAAK8C,mBAAmBtC,MAElCvT,EAAE8H,UAAUC,GAAG,eAAgB,SAAS4B,GAAIyJ,MACrCA,OAASvT,KAAKsI,KAAKwC,KAAKsB,SACzBpM,KAAKsI,KAAK4P,UAAUC,OAEpBhY,EAAE8H,UAAU4B,IAAIC,OAKrB9J,KAAKsI,KAAK4P,UAAU2yB,SACrB7qC,KAAKsI,KAAK4P,UAAU6yB,iBAEpB/qC,KAAKsI,KAAK4P,UAAU8yB,iBAS1BhrC,KAAKsI,KAAK4P,UAAU8yB,cAAgB,WACjChrC,KAAKyE,MAAM,oCAEX,IAAIyT,WAAYlY,KAAK6E,QAAQwB,YAAY,iBACrCgS,GAAKrY,KAAK6E,QAAQwB,YAAY,gBAElClG,GAAEqJ,KAAK0O,UAAW,WACf,GAAI4d,MAAO1qB,KACP0sB,SAAW93B,KAAK6E,QAAQwB,YAAY,QAASyvB,SAEjDzd,IAAG1O,KAAKmsB,MACR91B,KAAK+I,IAAIC,OAAOiG,IAAI6mB,MAEhBgC,SAAS5K,WACVltB,KAAKyE,MAAM,aAAeqxB,MAC1B91B,KAAKsI,KAAKwC,KAAKoR,IAAI2F,KAAKiU,KAAMgC,SAAS7K,aAI7CjtB,KAAK6E,QAAQiE,YAAY,YAAauP,KAQzCrY,KAAKsI,KAAK4P,UAAU6yB,eAAiB,WAClC/qC,KAAKyE,MAAM,6BAEX,IAAIyT,WAAYlY,KAAKsI,KAAKwC,KAAKoN,SAE/BA,WAAUhS,IAAI,SAASoN,QACpB,GAAI+E,IAAKrY,KAAK6E,QAAQwB,YAAY,YAElClG,GAAEmT,QAAQzD,KAAK,cAAcrG,KAAK,WAC/B,GAAIyhC,YAAa9qC,EAAEiL,MACf0qB,KAAOmV,WAAWtzB,KAAK,OACvBwe,SAAW8U,WAAWtzB,KAAK,SAAWme,KACtC5I,SAAW+d,WAAWtzB,KAAK,cAAe,EAC1CsV,SAAWge,WAAWp7B,KAAK,QAAQD,MACvCqd,UAAYA,SAASpmB,OAAS,EAAKomB,SAAWve,QAAQsjB,eAAehyB,KAAKsI,KAAKwC,KAAKrC,KAEnE,SAAbykB,SACDA,UAAW,EACU,UAAbA,WACRA,UAAW,EAGd,IAAIvoB,MAAO3E,KAAK6E,QAAQwB,YAAY,QAASyvB,SAE7CnxB,MAAOxE,EAAE8F,OAAOtB,MACb8D,IAAKqtB,KACLje,KAAMse,SACNre,IAAK,OACLtF,OAAQ,EACR8D,KAAM,YACN7E,MAAOzR,KAAKkc,IAAI3a,MAAM8yB,UAAUC,KAChC7Y,QAAS,KACT+b,YAAY,EACZtK,SAAUA,SACVD,SAAUA,WAGbjtB,KAAK6E,QAAQiE,YAAY,QAASgtB,KAAMnxB,MAExC0T,GAAG1O,KAAKmsB,MACR91B,KAAK+I,IAAIC,OAAOiG,IAAI6mB,MAEhB5I,WACDltB,KAAKyE,MAAM,aAAeqxB,MAC1B91B,KAAKsI,KAAKwC,KAAKoR,IAAI2F,KAAKiU,KAAM7I,aAIpCjtB,KAAK6E,QAAQiE,YAAY,YAAauP,KACtC,SAAS/E,QACT,GAAIjO,KAAMrF,KAAKsI,KAAK4P,UAAUgzB,SAAS53B,OAEhB,oBAAnBjO,IAAI8lC,QAAQ,IACbnrC,KAAKyE,MAAM,wBAEXyT,UAAUkzB,uBAEVprC,KAAKyE,MAAM,qCAAuCY,IAAIiR,KAAMjR,IAAI8lC,YAazEnrC,KAAKsI,KAAK4P,UAAUgzB,SAAW,SAAS53B,QACrC,GAAI5N,OAAQvF,EAAEmT,QAAQzD,KAAK,SACvByG,KAAO5Q,MAAMiS,KAAK,QAClBwzB,QAAUzlC,MAAM2hB,WAAW4J,IAAI,WAChC,MAAO9wB,GAAEiL,MAAM6N,KAAK,YAGvB,QACG3C,KAAMA,KACN60B,QAASA,UAUfnrC,KAAKsI,KAAK4P,UAAUya,OAAS,SAASmD,KAAMuV,MAEpCA,MACFrrC,KAAK+I,IAAIC,OAAOoP,MAAM0d,MAGrB91B,KAAKsI,KAAK4P,UAAU2yB,SACrB7qC,KAAKsI,KAAK4P,UAAUozB,iBAAiBxV,KAAMuV,MAE3CrrC,KAAKsI,KAAK4P,UAAUqzB,gBAAgBzV,KAAMuV,OAWhDrrC,KAAKsI,KAAK4P,UAAUozB,iBAAmB,SAASxV,KAAMuV,MACnD,GAAInzB,WAAYlY,KAAKsI,KAAKwC,KAAKoN,SAE/BA,WAAUya,OAAOmD,KAAM,WACpB91B,KAAKyE,MAAM,oBAAsBqxB,MAE7BuV,OACDrrC,KAAK+I,IAAIC,OAAOlE,QAAQgxB,MAAMnpB,YAAY,mBAC1C3M,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,cAAc,GACzD91B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,YAAY,KAE1D,SAASxiB,QACT,GAAIjO,KAAMrF,KAAKsI,KAAK4P,UAAUgzB,SAAS53B,OAEvCtT,MAAKyE,MAAM,qCAAuCY,IAAIiR,KAAMjR,IAAI8lC,YAWtEnrC,KAAKsI,KAAK4P,UAAUqzB,gBAAkB,SAASzV,KAAMuV,MAClD,GAAInzB,WAAYlY,KAAK6E,QAAQwB,YAAY,aACrCoD,MAAQyO,UAAUI,QAAQwd,KAE1BrsB,QAAQ,GACTyO,UAAU8d,OAAOvsB,MAAO,GAG3BzJ,KAAK6E,QAAQiE,YAAY,YAAaoP,WAElCmzB,OACDrrC,KAAK+I,IAAIC,OAAOlE,QAAQgxB,MAAMnpB,YAAY,mBAC1C3M,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,cAAc,GACzD91B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,YAAY,KAY7D91B,KAAKsI,KAAK4P,UAAUjJ,IAAM,SAAS6mB,KAAMpa,MAAO8vB,KAAMte,UAC/CltB,KAAKsI,KAAK4P,UAAU2yB,SACrB7qC,KAAKsI,KAAK4P,UAAUuzB,YAAY3V,KAAMpa,MAAO8vB,KAAMte,UAEnDltB,KAAKsI,KAAK4P,UAAUwzB,WAAW5V,KAAMpa,MAAO8vB,KAAMte,WAaxDltB,KAAKsI,KAAK4P,UAAUuzB,YAAc,SAAS3V,KAAMpa,MAAO8vB,KAAMte,UAC3D,GAAIhV,WAAYlY,KAAKsI,KAAKwC,KAAKoN,UAE3B4P,QAAU,WACX9nB,KAAKyE,MAAM,uBAAwBqxB,MAEnC91B,KAAK+I,IAAIC,OAAOlE,QAAQgxB,MAAM7W,SAAS,mBACvCjf,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,cAAc,GACzD91B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,WAAY5I,UACvDltB,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,WAAY0V,OAEtD9lC,MAAQ,WACT1F,KAAKyF,KAAK,4BAA6BqwB,MAG1C5d,WAAUjJ,IAAI6mB,KAAMpa,MAAO8vB,KAAMte,SAAUpF,QAASpiB,QAYvD1F,KAAKsI,KAAK4P,UAAUwzB,WAAa,SAAS5V,KAAMpa,MAAO8vB,KAAMte,UAC1DltB,KAAK+I,IAAIC,OAAOlE,QAAQgxB,MAAM7W,SAAS,mBACvCjf,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,cAAc,GACzD91B,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,WAAY5I,UACvDltB,KAAK6E,QAAQkW,eAAe,QAAS+a,KAAM,WAAY0V,KAEvD,IAAItzB,WAAYlY,KAAK6E,QAAQwB,YAAY,gBAErC6R,WAAUI,QAAQwd,MAAQ,IAC3B5d,UAAUvO,KAAKmsB,MAEf91B,KAAK6E,QAAQiE,YAAY,YAAaoP,aAS5ClY,KAAKsI,KAAK4P,UAAU+iB,WAAa,SAASnF,MACvC,GAAI3gB,QAASnV,KAAK+I,IAAIoM,OAAOqM,KAAKxhB,KAAK+I,IAAIgZ,SAAS7b,IAAI,mBACpDvB,KAAO3E,KAAK6E,QAAQwB,YAAY,QAASyvB,KAE7C31B,GAAE,cAAcuJ,IAAIosB,MACpB31B,EAAE,kBAAkBuJ,IAAI/E,KAAKsoB,UAE7B9sB,EAAE,kBAAkBgf,OAAO,WACpBhf,EAAEiL,MAAM6N,KAAK,YACd9Y,EAAE,kBAAkB8Y,KAAK,YAAY,GACrC9Y,EAAE,kBAAkB8Y,KAAK,YAAY,GACrC9Y,EAAE,kBAAkBynB,OAAO,aAAajb,YAAY,cAEpDxM,EAAE,kBAAkB8Y,KAAK,YAAY,GACrC9Y,EAAE,kBAAkB8Y,KAAK,YAAY,GAAMA,KAAK,WAAW,GAC3D9Y,EAAE,kBAAkBynB,OAAO,aAAa3I,SAAS,eAIvD9e,EAAE,kBAAkB8Y,KAAK,UAAWtU,KAAK6yB,YACzCr3B,EAAE,kBAAkB8Y,KAAK,UAAWtU,KAAKuoB,UAEzC/sB,EAAE,kBAAkBgf,SAEpBhK,OAAOtF,KAAK,QAAQvG,OAAO,SAASQ,IACjCA,GAAGC,gBAEH,IAAIytB,YAAar3B,EAAE,kBAAkB8Y,KAAK,WACtCiU,SAAW/sB,EAAE,kBAAkB8Y,KAAK,WACpCgU,SAAW9sB,EAAE,kBAAkBuJ,KAWnC,OATI8tB,YACDx3B,KAAKsI,KAAK4P,UAAUjJ,IAAI6mB,KAAMnxB,KAAKkT,KAAMoV,SAAUC,UAC3CvoB,KAAK6yB,YAEbx3B,KAAKsI,KAAK4P,UAAUya,OAAOmD,MAAM,GAGpC91B,KAAK+I,IAAIoM,OAAOC,SAET,KAUbpV,KAAKsI,KAAK0U,WACPlS,KAAM,KAGN6gC,6BAA8B,KAGjC3rC,KAAKsI,KAAK0U,UAAUrX,KAAO,WACxB,GAAI0K,MAAOrQ,KAAKsI,KAAK0U,SAErB,OAAKhd,MAAKsI,KAAKwC,MAAS9K,KAAKsI,KAAKyC,WAOlC5K,EAAE8H,UAAU4B,IAAI,uBAAwB7J,KAAKsI,KAAK0U,UAAU4uB,aAC5DzrC,EAAE8H,UAAU4B,IAAI,oBAAqB7J,KAAKsI,KAAK0U,UAAU6uB,UACzD1rC,EAAE8H,UAAU4B,IAAI,oBAAqB7J,KAAKsI,KAAK0U,UAAU8uB,UAErDz7B,KAAK4M,iBACNjd,MAAKyE,MAAM,qCAKd4L,KAAKvF,KAAO9K,KAAKsI,KAAKwC,KAEtB3K,EAAE8H,UAAUC,GAAG,uBAAwBlI,KAAKsI,KAAK0U,UAAU4uB,aAC3DzrC,EAAE8H,UAAUC,GAAG,oBAAqBlI,KAAKsI,KAAK0U,UAAU6uB,cACxD1rC,GAAE8H,UAAUC,GAAG,oBAAqBlI,KAAKsI,KAAK0U,UAAU8uB,gBApBrD3rC,GAAE8H,UAAUC,GAAG,gBAAiBmI,KAAK1K,OA8B3C3F,KAAKsI,KAAK0U,UAAU4uB,YAAc,SAAS9hC,GAAIrB,KAC5C,GAAI4H,MAAOrQ,KAAKsI,KAAK0U,UACjB5b,IAAMpB,KAAKuM,SAAS9D,KACpB9D,KAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,MAAQ,IAErD,IAAKuD,OAAQ3E,KAAKsI,KAAK0U,UAAUC,eAKf,cAAdtY,KAAK2R,MACN5H,QAAQiI,mBAAmBlO,OAASiG,QAAQsjB,eAAe3hB,KAAKvF,KAAKrC,MADxE,CAKA,GAAIsjC,MAAqB,cAAdpnC,KAAK2R,KAAuB5H,QAAQiI,mBAAmBlO,KAAO9D,KAAKkT,KAC1EtI,IAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9B,IAAmB,IAAfmO,IAAI1I,OAAR,CAIAkH,aAAawB,IAAI5K,KAAK,qBAGtB,IAAIqnC,gBAAiBz8B,IAAI5K,KAAK,gBAC1BqnC,gBAAe1zB,QAAQyzB,SAAU,IAClCC,eAAeriC,KAAKoiC,MACpBx8B,IAAI5K,KAAK,YAAaqnC,gBAGzB,IAAIC,UAAW18B,IAAIM,KAAK,kBACpBq8B,eAAiBD,SAASp8B,KAAK,kBAE/Bq8B,gBAAerlC,OAAS,IAEzBqlC,eAAiB/rC,EAAE,SAAS8e,SAAS,kBACjCA,SAAS,oBACTA,SAAS,YACTc,SAASksB,UAGhB,IAAIvnC,KAAM2L,KAAK87B,iBAAiBH,eAChCE,gBAAet8B,KAAKlL,KAGpB1E,KAAK+I,IAAI9B,OAAO8oB,WAAW3uB,KAG3B8qC,eAAejtB,SAAS,kBAU3Bjf,KAAKsI,KAAK0U,UAAU6uB,SAAW,SAAS/hC,GAAIrB,KACzC,GAAI4H,MAAOrQ,KAAKsI,KAAK0U,UACjB5b,IAAMpB,KAAKuM,SAAS9D,KACpB9D,KAAO3E,KAAK6E,QAAQwB,YAAY,QAASjF,MAAQ,IAErD,IAAKuD,OAAQ3E,KAAKsI,KAAK0U,UAAUC,aAAjC,CAIA,GAAI8uB,MAAqB,cAAdpnC,KAAK2R,KAAuB5H,QAAQiI,mBAAmBlO,KAAO9D,KAAKkT,KAC1EtI,IAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE9B,IAAmB,IAAfmO,IAAI1I,OAAR,CAIA,GAAI0c,IAAKhU,IAAIM,KAAK,mBACdm8B,eAAiBz8B,IAAI5K,KAAK,gBAQ9B,IANIqnC,eAAe1zB,QAAQyzB,OAAS,IAEjCC,eAAehW,OAAOgW,eAAe1zB,QAAQyzB,MAAO,GACpDx8B,IAAI5K,KAAK,YAAaqnC,iBAGK,IAA1BA,eAAenlC,OAAc,CAC9B,GAAIulC,eAAgB7oB,GAAGO,IAAI,wBAA0B,KACjDqJ,SAAWE,WAAW+e,gBAAkB,CAExCA,eAAc//B,MAAM,YACrB8gB,UAAY,KAGf5J,GAAG5W,YAAY,cAEf,IAAIpM,IAAKyM,WAAW,WACjBuW,GAAGpN,UACHgX,SAEH5d,KAAI5K,KAAK,oBAAqBpE,QAG9BgjB,IAAG3T,KAAKS,KAAK87B,iBAAiBH,oBAWpChsC,KAAKsI,KAAK0U,UAAU8uB,SAAW,SAAShiC,GAAIrB,KACzCzI,KAAKsI,KAAK0U,UAAU6uB,SAAS/hC,GAAIrB,MASpCzI,KAAKsI,KAAK0U,UAAUqR,eAAiB,SAASjtB,KAC3C,GAAIiP,MAAOrQ,KAAKsI,KAAK0U,SAErB,IAAKhd,KAAKsI,KAAKwC,MAAS9K,KAAKsI,KAAKwC,KAAKiS,aAAc/c,KAAKsI,KAAK0U,UAAUC,aAAzE,CAIA,GAAI1N,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,KAC1BuM,QAAU4B,IAAI5K,KAAK,qBACnB2R,KAAO/G,IAAIsV,SAAS,kBAAoB,YAAc,MAEtDlX,SAEDI,aAAaJ,SAEb3N,KAAKsI,KAAKwC,KAAKiS,WAAWsvB,cAAcjrC,IAAKkV,MAGhD3I,QAAUX,WAAW,WAClBqD,KAAKi8B,eAAelrC,IAAKkV,MAEzB/G,IAAI5K,KAAK,oBAAqB,OAC9B0L,KAAKs7B,8BAERp8B,IAAI5K,KAAK,oBAAqBgJ,WASjC3N,KAAKsI,KAAK0U,UAAUsvB,eAAiB,SAASlrC,IAAKkV,MAC5CtW,KAAKsI,KAAK0U,UAAUC,cAIxBjd,KAAKsI,KAAKwC,KAAKiS,WAAWwvB,WAAWnrC,IAAKkV,OAS7CtW,KAAKsI,KAAK0U,UAAUuR,aAAe,SAASntB,KACzC,GAAImO,KAAMvP,KAAK+I,IAAI9B,OAAOf,IAAI9E,IAE1BmO,KAAI5K,KAAK,sBACVoJ,aAAawB,IAAI5K,KAAK,uBAU5B3E,KAAKsI,KAAK0U,UAAUmvB,iBAAmB,SAASH,gBAC7C,MAAKA,iBAA4C,IAA1BA,eAAenlC,OAK5BmlC,eAAenlC,OAAS,EAAImlC,eAAenqB,KAAK,MAAQ1hB,EAAE2L,EAAE,kBAChEkgC,eAAe,GAAK7rC,EAAE2L,EAAE,kBAL3B9L,KAAKyE,MAAM,kCAEJ,KAObzE,KAAKsI,KAAK0U,UAAUC,WAAa,WAC9B,GAAIrX,SAAU5F,KAAK4F,QAAQM,IAAI,gBAE/B,QAAQN,QAAQuE,QAGnBhK,EAAE8H,UAAUC,GAAG,gBAAiBlI,KAAKsI,KAAK0U,UAAUrX,MAQpD3F,KAAKsI,KAAKkW,YACP1T,KAAM,KAEN2M,OAAO,EAEPlW,OACGa,IACGoqC,WAAY,0BAWrBxsC,KAAKsI,KAAKkW,WAAW7Y,KAAO,SAAS4nB,GAClC,GAAIld,MAAOrQ,KAAKsI,KAAKkW,UACrBnO,MAAKvF,KAAO9K,KAAKsI,KAAKwC,IAEtB,IAAI2hC,qBAAsBzsC,KAAK4F,QAAQM,IAAI,oBACvCN,QAAU2nB,GAAKvtB,KAAK4F,QAAQM,IAAI,aAEpC,KAAKumC,oBAAoBjuB,WAAWrU,OAKjC,MAJAnK,MAAKyE,MAAM,4BAEXzE,MAAK4F,QAAQU,IAAI,cAAc,EAKlC,IAAIV,SAAWA,QAAQivB,OAGpB,YAFAxkB,KAAKoH,OAAQ,EAKhB,IAAIvE,MAAOlT,KAAKsI,KAAKwC,KAAKoI,KACtB9G,OAASpM,KAAKsI,KAAKwC,KAAKsB,MAE5B,OAAK8G,OAAS9G,QAAwE,mBAAvD8G,MAAK8C,mBAAmB9C,KAAKa,aAAa3H,cAiBrE8G,KAAK2C,gBAAgBzJ,OAAQiE,KAAK9O,MAAMa,GAAGoqC,YAC5Cn8B,KAAKq8B,wBAEL1sC,KAAKyE,MAAM2H,OAAS,mCAnBpBpM,KAAKyE,MAAM,uCAEXtE,GAAE8H,UAAUC,GAAG,eAAgB,QAAS6N,QAAOjM,GAAIyJ,MAE5CA,OAASnH,SAIbiE,KAAK1K,OAELxF,EAAE8H,UAAU4B,IAAI,eAAgBkM,aAkBzC/V,KAAKsI,KAAKkW,WAAWkuB,sBAAwB,WAC1C,GAAIr8B,MAAOrQ,KAAKsI,KAAKkW,UAErBxe,MAAKyE,MAAM,gCAEX4L,KAAKvF,KAAK+L,MAAM4W,MAAMpd,KAAKvF,KAAKsB,OAAQ,KAAM,SAASqhB,OACpDttB,EAAEstB,OAAO5d,KAAK,QAAQrG,KAAK,WACxB,GAAIf,KAAMtI,EAAEiL,MAAMuM,KAAK,OACnBud,YAAa,CAoBjB,OAlBA7kB,MAAKvF,KAAK+L,MAAMyM,KAAK7a,IAAK,KAAM,SAAS6a,MACtC,GAAIqpB,mBAAoBxsC,EAAEmjB,MAAMzT,KAAK,gBAAkBQ,KAAK9O,MAAMa,GAAGoqC,WAAa,MAC9EI,kBAAoBzsC,EAAEmjB,MAAMzT,KAAK,6BAEjC88B,mBAAkB9lC,OAAS,IAC5B7G,KAAKyE,MAAM,4BAA6BgE,KAExCzI,KAAK4F,QAAQU,IAAI,cACduuB,OAAQpsB,IACRoP,KAAM1X,EAAEmjB,MAAMzT,KAAK,YAAY8H,KAAK,QACpC8H,QAASnc,SAASspC,kBAAkBh9B,UAGvCslB,YAAa,EACb7kB,KAAKoH,OAAQ,MAIXyd,gBAYjBl1B,KAAKsI,KAAKkW,WAAW4B,SAAW,SAAShB,KAAMvF,SAC5C7Z,KAAKyE,MAAM,4BAEX,IAAI4L,MAAOrQ,KAAKsI,KAAKkW,UAGrB3E,SAAQc,WAAY,EAEpBtK,KAAKw8B,YAAYztB,KAAM,SAASza,MACxBA,KAGMA,KAAKe,OAEb1F,KAAKyF,KAAK,wDAA0Dd,KAAKe,MAAM4Q,KAAO,KAEtFuD,QAAQgX,SAAS1a,SAEjBnW,KAAK+I,IAAI9B,OAAOyT,aACbtZ,IAAKyY,QAAQzY,IACbkZ,UAAWta,KAAKua,QAAQoF,IACxBjb,IAAKC,KAAKe,MAAMkK,OAGnBiK,QAAQ8Y,UACAhuB,KAAKuB,KAAOvB,KAAKmoC,KAEzBz8B,KAAK08B,WAAWpoC,KAAKmoC,IAAK1tB,KAAMvF,QAAS,WACtC,GAAImqB,GAAI7jC,EAAE,MACV6jC,GAAErsB,KAAK,OAAQhT,KAAKuB,KACpB89B,EAAErsB,KAAK,YAAakC,QAAQqB,WAAWrD,MACvCmsB,EAAErsB,KAAK,YAAakC,QAAQqB,WAAW5E,MACvC0tB,EAAErsB,KAAK,YAAakC,QAAQqB,WAAWE,MAEnCvB,QAAQqB,WAAWG,WACpB2oB,EAAErsB,KAAK,iBAAkBkC,QAAQqB,WAAWG,WAG/C2oB,EAAEp0B,KAAKjL,KAAKuB,KACZ2T,QAAQqB,WAAWvW,KAAOA,KAAKuB,IAE/B2T,QAAQnV,IAAMvE,EAAE,UAAUyf,OAAOokB,GAAG5+B,OACpCyU,QAAQvD,KAAOtW,KAAKua,QAAQmC,KAC5B1c,KAAK+I,IAAI9B,OAAOyT,YAAYb,WAhC/B7Z,KAAKyF,KAAK,yDA+CnBzF,KAAKsI,KAAKkW,WAAWuuB,WAAa,SAASl7B,IAAKuN,KAAMvF,QAAS8E,YAC5Dxe,EAAEojC,MACC1xB,IAAKA,IACLyE,KAAM,MACN02B,YAAa,2BACbroC,KAAMya,KACN6tB,aAAa,EACbC,IAAK,WACF,GAAIA,KAAM/sC,EAAEgtC,aAAaD,KAQzB,OALAA,KAAIE,OAAOC,WAAa,SAASvjC,IAC1BA,GAAGwjC,kBACJttC,KAAK+I,IAAI9B,OAAOsZ,eAAe1G,QAAS/P,GAAGoF,OAAQpF,GAAGyf,QAGrD2jB,KAEVplB,QAAS,WACN9nB,KAAKyE,MAAM,4BAGXzE,KAAK+I,IAAI9B,OAAOsZ,eAAe1G,QAAS,EAAG,GAEvC8E,YACDA,cAGNjZ,MAAO,WACJ1F,KAAKyF,KAAK,iCAAmCoM,KAE7CgI,QAAQnU,MAAQ,wBAChB1F,KAAK+I,IAAI9B,OAAOyT,YAAYb,aAYrC7Z,KAAKsI,KAAKkW,WAAWquB,YAAc,SAASztB,KAAMzT,IAC/C,GAAI0E,MAAOrQ,KAAKsI,KAAKkW,WACjB5Y,QAAU5F,KAAK4F,QAAQM,IAAI,aAE/B,KAAKN,UAAYA,QAAQivB,OAGtB,WAFA70B,MAAKyF,KAAK,+FAKb,IAAI2Q,IAAKC,KACH9V,GAAIqF,QAAQivB,OACZve,KAAM,QACN9C,EAAE,WACF+C,MAAOlG,KAAK9O,MAAMa,GAAGoqC,aACrBh5B,EAAE,YAAY1H,EAAEsT,KAAKvH,MACvBR,KACA7D,EAAE,QAAQ1H,EAAEsT,KAAKhE,KAErB/K,MAAKvF,KAAK0L,OAAOJ,GAAI,SAAS9C,QAC3BjD,KAAKk9B,wBAAwBj6B,OAAQ3H,KACrC,SAAS2H,QACTjD,KAAKm9B,oBAAoBl6B,OAAQ3H,OAWvC3L,KAAKsI,KAAKkW,WAAW+uB,wBAA0B,SAASj6B,OAAQ3H,IAC7D,GAAI0E,MAAOrQ,KAAKsI,KAAKkW,WACjBivB,KAAOttC,EAAEmT,QAAQzD,KAAK,eAAiBQ,KAAK9O,MAAMa,GAAGoqC,WAAa,KAEtE,IAAIiB,KAAK5mC,OAAS,EAAG,CAClB,GAAIimC,KAAMW,KAAK59B,KAAK,OAAOD,OACvB1J,IAAMunC,KAAK59B,KAAK,OAAOD,MAE3BjE,KACGmhC,IAAKA,IACL5mC,IAAKA,UAGRmK,MAAKm9B,oBAAoBl6B,OAAQ3H,KAWvC3L,KAAKsI,KAAKkW,WAAWgvB,oBAAsB,SAASl6B,OAAQ3H,IACzD,GAAIxL,EAAEmT,QAAQzD,KAAK,SAAShJ,QAAU,EAKnC,MAJA7G,MAAKyF,KAAK,gDAEVkG,KAKH,IAAIjG,QACD4Q,KAAMnW,EAAEmT,QAAQzD,KAAK,SAAS8H,KAAK,SAAW,UAC9C/H,KAAMzP,EAAEmT,QAAQzD,KAAK,cAAcD,OAGlCzP,GAAEmT,QAAQzD,KAAK,wBAChBnK,MAAMg1B,OAAS,iBACPv6B,EAAEmT,QAAQzD,KAAK,6BACvBnK,MAAMg1B,OAAS,sBACPv6B,EAAEmT,QAAQzD,KAAK,uBACvBnK,MAAMg1B,OAAS,eAGlB/uB,IACGjG,MAAOA,SAIbvF,EAAE8H,UAAUC,GAAG,mBAAoB,SAAS4B,GAAI2H,OACzCA,QAAUzR,KAAKuB,MAAMkB,MAAMO,OAC5BhD,KAAKsI,KAAKkW,WAAW7Y,SAM3B3F,KAAK+I,IAAIgZ,SAAsB,YAAI,25EAyBnC/hB,KAAK+I,IAAIgZ,SAAgB,MAAI,uIAM7B/hB,KAAK+I,IAAIgZ,SAA2B,iBAAI,qEAGxC/hB,KAAK+I,IAAIgZ,SAAwB,cAAI,0TASrC/hB,KAAK+I,IAAIgZ,SAA+B,qBAAI,4kFAiE5C/hB,KAAK+I,IAAIgZ,SAAyB,eAAI,iRAOtC/hB,KAAK+I,IAAIgZ,SAAyB,eAAI,uhDAyCtC/hB,KAAK+I,IAAIgZ,SAAqB,WAAI,u8DA2DlC/hB,KAAK+I,IAAIgZ,SAAwB,cAAI;AAMrC/hB,KAAK+I,IAAIgZ,SAAwB,cAAI,+jCAyBrC/hB,KAAK+I,IAAIgZ,SAA6B,mBAAI,mYAa1C/hB,KAAK+I,IAAIgZ,SAAuB,aAAI,mVASpC/hB,KAAK+I,IAAIgZ,SAAmB,SAAI,gsFAmEhC/hB,KAAK+I,IAAIgZ,SAAmB,SAAI,wkCAwBhC/hB,KAAK+I,IAAIgZ,SAAuB,aAAI,uEAOpC/hB,KAAK+I,IAAIgZ,SAAuB,aAAI,uCAGpC/hB,KAAK+I,IAAIgZ,SAAuB,aAAI,wSAOpC/hB,KAAK+I,IAAIgZ,SAAiB,OAAI,2pDAyC9B/hB,KAAK+I,IAAIgZ,SAAsB,YAAI,6wBAoBnC/hB,KAAK+I,IAAIgZ,SAA0B,gBAAI,6KAOvC/hB,KAAK+I,IAAIgZ,SAAmB,SAAI,ytLA8IhC/hB,KAAK+I,IAAIgZ,SAAgB,MAAI,8PAS7B/hB,KAAK+I,IAAIgZ,SAAsB,YAAI,k8BAkCnC/hB,KAAK+I,IAAIgZ,SAAoB,UAAI,6JAQjC/hB,KAAK+I,IAAIgZ,SAAqB,WAAI,iNAShCof","file":"jsxc.min.js"} \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0023-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0023-20e3.svg
index 7a901c8..a29d901 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0023-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0023-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.333
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.333V45.666z"/><path fill="#9aa0a5" d="m49.37 24.921l1.635-5.979h-6.104l1.635-5.979h-6.101l-1.637 5.979h-8.137l1.635-5.979h-6.102l-1.637 5.979h-6.102l-1.635 5.979h6.102l-2.18 7.973h-6.104l-1.633 5.979h6.104l-1.637 5.98h6.104l1.635-5.98h8.139l-1.637 5.98h6.104l1.635-5.98h6.104l1.635-5.979h-6.102l2.18-7.973h6.101m-14.386 7.973h-8.137l2.18-7.973h8.137l-2.18 7.973"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m49.4 24.9l1.6-6h-6.1l1.6-6h-6.1l-1.6 6h-8.1l1.6-6h-6.1l-1.6 6h-6.1l-1.6 6h6.1l-2.2 8h-6.1l-1.6 6h6.1l-1.6 6h6.1l1.6-6h8.1l-1.6 6h6.1l1.6-6h6.1l1.6-6h-6.1l2.2-8c0 0 6.1 0 6.1 0m-14.4 8h-8.1l2.2-8h8.1l-2.2 8" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0023.svg b/build/js/jsxc/lib/emojione/assets/svg/0023.svg
new file mode 100644
index 0000000..76c606d
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0023.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m49.4 28l1.6-6h-6.1l1.6-6h-6.1l-1.6 6h-8.1l1.6-6h-6.1l-1.6 6h-6.1l-1.6 6h6.1l-2.2 8h-6.1l-1.7 6h6.1l-1.6 6h6.1l1.6-6h8.1l-1.6 6h6.1l1.6-6h6.1l1.6-6h-6.1l2.2-8h6.2m-14.4 8h-8.1l2.2-8h8.1l-2.2 8" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/002a-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/002a-20e3.svg
index 8d5fb17..bc3b2e6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/002a-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/002a-20e3.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M62,52c0,5.523-4.478,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.522,0,10,4.477,10,10V52z"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.333
- C7,7.731,10.731,4,15.333,4h33.333C53.269,4,57,7.731,57,12.333V45.666z"/><path fill="#9aa0a5" d="m45.47 33.29c.377.161.55.477.523.943-.027.469-.35 1.223-.966 2.264-.618 1.072-1.121 1.725-1.51 1.967-.389.24-.745.24-1.067 0l-8.573-6.216 1.128 10.508c.079.399-.096.708-.524.921-.429.215-1.262.322-2.496.322-1.236 0-2.066-.107-2.496-.322-.43-.213-.604-.521-.523-.921l1.127-10.508-8.533 6.216c-.322.24-.685.24-1.087 0-.402-.242-.913-.895-1.53-1.967-.618-1.041-.933-1.795-.946-2.264-.015-.467.167-.782.543-.943l9.701-4.29-9.701-4.251c-.376-.187-.558-.515-.543-.983.013-.467.328-1.223.946-2.265.617-1.044 1.127-1.685 1.53-1.926.402-.24.765-.24 1.087 0l8.533 6.176-1.127-10.467c-.08-.428.094-.749.523-.963s1.26-.322 2.496-.322c1.233 0 2.066.108 2.495.322s.604.535.524.963l-1.128 10.466 8.573-6.176c.322-.24.679-.24 1.067 0 .389.242.892.897 1.51 1.966.616 1.016.938 1.758.966 2.225.026.469-.146.796-.523.983l-9.701 4.251 9.702 4.291"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m45.5 33.3c.4.2.5.5.5.9 0 .5-.3 1.2-1 2.3-.6 1.1-1.1 1.7-1.5 2-.4.2-.7.2-1.1 0l-8.6-6.2 1.2 10.5c.1.4-.1.7-.5.9-.4.2-1.3.3-2.5.3-1.2 0-2.1-.1-2.5-.3-.4-.2-.6-.5-.5-.9l1.1-10.5-8.5 6.2c-.3.2-.7.2-1.1 0-.4-.2-.9-.9-1.5-2-.6-1-.9-1.8-.9-2.3 0-.5.2-.8.5-.9l9.7-4.3-9.7-4.3c-.4-.2-.6-.5-.5-1 0-.5.3-1.2.9-2.3.6-1 1.1-1.7 1.5-1.9.4-.2.8-.2 1.1 0l8.5 6.2-1.1-10.4c-.1-.4.1-.7.5-1s1.3-.3 2.5-.3c1.2 0 2.1.1 2.5.3s.6.5.5 1l-1.1 10.5 8.6-6.2c.3-.2.7-.2 1.1 0 .4.2.9.9 1.5 2 .6 1 .9 1.8 1 2.2 0 .5-.1.8-.5 1l-9.8 4.2 9.7 4.3" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/002a.svg b/build/js/jsxc/lib/emojione/assets/svg/002a.svg
new file mode 100644
index 0000000..2584149
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/002a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m45.5 36.3c.4.2.5.5.5.9 0 .5-.3 1.2-1 2.3-.6 1.1-1.1 1.7-1.5 2-.4.2-.7.2-1.1 0l-8.6-6.2 1.2 10.5c.1.4-.1.7-.5.9-.4.2-1.3.3-2.5.3-1.2 0-2.1-.1-2.5-.3-.4-.2-.6-.5-.5-.9l1.1-10.5-8.5 6.2c-.3.2-.7.2-1.1 0-.4-.2-.9-.9-1.5-2-.6-1-.9-1.8-.9-2.3 0-.5.2-.8.5-.9l9.7-4.3-9.7-4.3c-.4-.2-.6-.5-.5-1 0-.5.3-1.2.9-2.3.6-1 1.1-1.7 1.5-1.9s.8-.2 1.1 0l8.5 6.2-1.1-10.4c-.1-.4.1-.7.5-1s1.3-.3 2.5-.3c1.2 0 2.1.1 2.5.3.4.2.6.5.5 1l-1.1 10.5 8.6-6.2c.3-.2.7-.2 1.1 0s.9.9 1.5 2c.6 1 .9 1.8 1 2.2 0 .5-.1.8-.5 1l-9.8 4.2 9.7 4.3" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0030-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0030-20e3.svg
index b555bc2..57dc889 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0030-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0030-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m32 13c2.983 0 5.315 1.082 6.996 3.25 2 2.564 3 6.818 3 12.762 0 5.928-1.01 10.189-3.02 12.783-1.667 2.137-3.992 3.205-6.975 3.205-2.997 0-5.414-1.172-7.248-3.516-1.834-2.345-2.752-6.523-2.752-12.537 0-5.9 1.01-10.146 3.02-12.74 1.667-2.137 3.992-3.207 6.975-3.207m0 4.98c-.715 0-1.352.232-1.912.695s-.994 1.293-1.303 2.49c-.405 1.553-.608 4.168-.608 7.846 0 3.676.182 6.203.546 7.578.363 1.375.822 2.291 1.377 2.746.553.457 1.186.684 1.9.684s1.352-.23 1.912-.693c.561-.465.994-1.295 1.303-2.492.405-1.539.608-4.146.608-7.822 0-3.678-.182-6.203-.546-7.58-.363-1.373-.822-2.293-1.377-2.756-.552-.463-1.185-.696-1.9-.696"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m32 13c3 0 5.3 1.1 7 3.2 2 2.6 3 6.8 3 12.8 0 5.9-1 10.2-3 12.8-1.7 2.1-4 3.2-7 3.2-3 0-5.4-1.2-7.2-3.5-1.9-2.4-2.8-6.5-2.8-12.6 0-5.9 1-10.1 3-12.7 1.7-2.1 4-3.2 7-3.2m0 5c-.7 0-1.4.2-1.9.7s-1 1.3-1.3 2.5c-.4 1.6-.6 4.2-.6 7.8 0 3.7.2 6.2.5 7.6.4 1.4.8 2.3 1.4 2.7.6.5 1.2.7 1.9.7.7 0 1.4-.2 1.9-.7.6-.5 1-1.3 1.3-2.5.4-1.5.6-4.1.6-7.8 0-3.7-.2-6.2-.5-7.6-.4-1.4-.8-2.3-1.4-2.8-.6-.4-1.2-.6-1.9-.6" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0030.svg b/build/js/jsxc/lib/emojione/assets/svg/0030.svg
new file mode 100644
index 0000000..8ea076c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0030.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m32 16c3 0 5.3 1.1 7 3.2 2 2.6 3 6.8 3 12.8 0 5.9-1 10.2-3 12.8-1.7 2.1-4 3.2-7 3.2-3 0-5.4-1.2-7.2-3.5-1.9-2.4-2.8-6.5-2.8-12.6 0-5.9 1-10.1 3-12.7 1.7-2.1 4-3.2 7-3.2m0 5c-.7 0-1.4.2-1.9.7s-1 1.3-1.3 2.5c-.4 1.6-.6 4.2-.6 7.8 0 3.7.2 6.2.5 7.6.4 1.4.8 2.3 1.4 2.7.6.5 1.2.7 1.9.7.7 0 1.4-.2 1.9-.7.6-.5 1-1.3 1.3-2.5.4-1.5.6-4.1.6-7.8 0-3.7-.2-6.2-.5-7.6-.4-1.4-.8-2.3-1.4-2.8-.6-.4-1.2-.6-1.9-.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0031-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0031-20e3.svg
index 55e4cd0..e18178a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0031-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0031-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m38 45h-6.108v-23.02c-2.232 2.086-4.862 3.629-7.892 4.629v-5.543c1.594-.521 3.326-1.512 5.195-2.967 1.87-1.455 3.152-3.156 3.848-5.098h4.957v32"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m38 45h-6.1v-23c-2.2 2.1-4.9 3.6-7.9 4.6v-5.5c1.6-.5 3.3-1.5 5.2-3 1.9-1.5 3.2-3.2 3.8-5.1h5v32" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0031.svg b/build/js/jsxc/lib/emojione/assets/svg/0031.svg
new file mode 100644
index 0000000..c0ca63e
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0031.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m38 48h-6.1v-23c-2.2 2.1-4.9 3.6-7.9 4.6v-5.5c1.6-.5 3.3-1.5 5.2-3 1.9-1.5 3.2-3.2 3.8-5.1h5v32" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0032-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0032-20e3.svg
index ac18e2d..c2eb5bd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0032-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0032-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m42 39.33v5.674h-20c.216-2.146.865-4.178 1.949-6.098 1.083-1.922 3.221-4.467 6.416-7.643 2.571-2.564 4.148-4.303 4.731-5.217.784-1.26 1.177-2.508 1.177-3.738 0-1.363-.342-2.41-1.025-3.143s-1.627-1.098-2.832-1.098c-1.191 0-2.14.385-2.843 1.152-.704.768-1.11 2.045-1.218 3.826l-5.686-.609c.338-3.361 1.401-5.773 3.188-7.238 1.788-1.462 4.02-2.194 6.702-2.194 2.936 0 5.246.848 6.924 2.543s2.517 3.805 2.517 6.326c0 1.434-.24 2.801-.721 4.098-.48 1.299-1.242 2.656-2.284 4.076-.691.941-1.937 2.297-3.737 4.064-1.799 1.77-2.94 2.943-3.42 3.523-.48.578-.871 1.145-1.168 1.695h11.33"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m42 39.3v5.7h-20c.2-2.1.9-4.2 1.9-6.1 1.1-1.9 3.2-4.5 6.4-7.6 2.6-2.6 4.1-4.3 4.7-5.2.8-1.3 1.2-2.5 1.2-3.7 0-1.4-.3-2.4-1-3.1s-1.6-1.1-2.8-1.1c-1.2 0-2.1.4-2.8 1.2-.7.8-1.1 2-1.2 3.8l-5.7-.6c.3-3.4 1.4-5.8 3.2-7.2 1.8-1.5 4-2.2 6.7-2.2 2.9 0 5.2.8 6.9 2.5s2.5 3.8 2.5 6.3c0 1.4-.2 2.8-.7 4.1-.5 1.2-1.3 2.5-2.3 3.9-.7.9-1.9 2.3-3.7 4.1-1.8 1.8-2.9 2.9-3.4 3.5-.5.6-.9 1.1-1.2 1.7h11.3" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0032.svg b/build/js/jsxc/lib/emojione/assets/svg/0032.svg
new file mode 100644
index 0000000..abd0137
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0032.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m42 42.3v5.7h-20c.2-2.1.9-4.2 1.9-6.1 1.1-1.9 3.2-4.5 6.4-7.6 2.6-2.6 4.1-4.3 4.7-5.2.8-1.3 1.2-2.5 1.2-3.7 0-1.4-.3-2.4-1-3.1s-1.6-1.1-2.8-1.1c-1.2 0-2.1.4-2.8 1.2-.7.8-1.1 2-1.2 3.8l-5.7-.6c.3-3.4 1.4-5.8 3.2-7.2 1.8-1.5 4-2.2 6.7-2.2 2.9 0 5.2.8 6.9 2.5s2.5 3.8 2.5 6.3c0 1.4-.2 2.8-.7 4.1-.5 1.2-1.3 2.5-2.3 3.9-.7.9-1.9 2.3-3.7 4.1-1.8 1.8-2.9 2.9-3.4 3.5-.5.6-.9 1.1-1.2 1.7h11.3" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0033-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0033-20e3.svg
index 934873d..2952760 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0033-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0033-20e3.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m61.978 51.994c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="m56.978 45.66c0 4.604-3.731 8.334-8.333 8.334h-33.33c-4.602 0-8.333-3.73-8.333-8.334v-33.33c0-4.604 3.731-8.334 8.333-8.334h33.33c4.602 0 8.333 3.73 8.333 8.334v33.33"/><path fill="#9aa0a5" d="m21.978 36.15l5.585-.707c.179 1.482.657 2.617 1.438 3.4s1.725 1.176 2.834 1.176c1.19 0 2.193-.471 3.01-1.41.814-.941 1.223-2.209 1.223-3.807 0-1.51-.391-2.707-1.172-3.59-.781-.885-1.731-1.324-2.854-1.324-.74 0-1.623.148-2.65.447l.637-4.895c1.561.043 2.752-.311 3.573-1.059s1.232-1.742 1.232-2.982c0-1.055-.301-1.896-.903-2.521-.603-.627-1.404-.941-2.403-.941-.985 0-1.827.355-2.525 1.068s-1.122 1.752-1.273 3.121l-5.317-.939c.369-1.896.928-3.41 1.674-4.543.745-1.133 1.785-2.023 3.121-2.672 1.334-.648 2.83-.973 4.486-.973 2.833 0 5.106.939 6.816 2.822 1.41 1.539 2.115 3.275 2.115 5.215 0 2.75-1.444 4.945-4.332 6.584 1.725.385 3.104 1.246 4.138 2.586 1.033 1.34 1.55 2.957 1.55 4.854 0 2.75-.965 5.094-2.895 7.03-1.932 1.938-4.334 2.908-7.208 2.908-2.724 0-4.983-.816-6.776-2.447-1.795-1.633-2.835-3.768-3.123-6.402"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m22 36.1l5.6-.7c.2 1.5.7 2.6 1.4 3.4s1.7 1.2 2.8 1.2c1.2 0 2.2-.5 3-1.4.8-.9 1.2-2.2 1.2-3.8 0-1.5-.4-2.7-1.2-3.6-.8-.9-1.7-1.3-2.9-1.3-.7 0-1.6.1-2.6.4l.6-4.9c1.6 0 2.8-.3 3.6-1.1s1.2-1.7 1.2-3c0-1.1-.3-1.9-.9-2.5-.6-.6-1.4-.9-2.4-.9-1 0-1.8.4-2.5 1.1s-1.1 1.8-1.3 3.1l-5.3-.9c.4-1.9.9-3.4 1.7-4.5.7-1.1 1.8-2 3.1-2.7 1.3-.6 2.8-1 4.5-1 2.8 0 5.1.9 6.8 2.8 1.4 1.5 2.1 3.3 2.1 5.2 0 2.8-1.4 4.9-4.3 6.6 1.7.4 3.1 1.2 4.1 2.6 1 1.3 1.5 3 1.5 4.9 0 2.8-1 5.1-2.9 7-1.7 1.9-4.1 2.9-7 2.9-2.7 0-5-.8-6.8-2.4-1.8-1.7-2.8-3.8-3.1-6.5" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0033.svg b/build/js/jsxc/lib/emojione/assets/svg/0033.svg
new file mode 100644
index 0000000..3136230
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0033.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m22 39.2l5.6-.7c.2 1.5.7 2.6 1.4 3.4s1.7 1.2 2.8 1.2c1.2 0 2.2-.5 3-1.4.8-.9 1.2-2.2 1.2-3.8 0-1.5-.4-2.7-1.2-3.6-.8-.9-1.7-1.3-2.9-1.3-.7 0-1.6.1-2.6.4l.6-4.9c1.6 0 2.8-.3 3.6-1.1s1.2-1.7 1.2-3c0-1.1-.3-1.9-.9-2.5-.6-.6-1.4-.9-2.4-.9-1 0-1.8.4-2.5 1.1s-1.1 1.8-1.3 3.1l-5.3-.9c.4-1.9.9-3.4 1.7-4.5.7-1.1 1.8-2 3.1-2.7 1.3-.6 2.8-1 4.5-1 2.8 0 5.1.9 6.8 2.8 1.4 1.5 2.1 3.3 2.1 5.2 0 2.8-1.4 4.9-4.3 6.6 1.7.4 3.1 1.2 4.1 2.6 1 1.3 1.5 3 1.5 4.9 0 2.8-1 5.1-2.9 7-1.7 1.8-4.1 2.8-7 2.8-2.7 0-5-.8-6.8-2.4-1.8-1.7-2.8-3.8-3.1-6.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0034-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0034-20e3.svg
index dff6529..f530a75 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0034-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0034-20e3.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="M33.662,45v-6.414H20v-5.348L34.481,13h5.374v20.217H44v5.369h-4.145V45H33.662z M33.662,33.217V22.326
- l-7.674,10.891H33.662z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="M33.7,45v-6.4H20v-5.3L34.5,13h5.4v20.2H44v5.4h-4.1V45H33.7z M33.7,33.2V22.3L26,33.2H33.7z" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0034.svg b/build/js/jsxc/lib/emojione/assets/svg/0034.svg
new file mode 100644
index 0000000..1722ee9
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0034.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M33.7,48v-6.4H20v-5.3L34.5,16h5.4v20.2H44v5.4h-4.1V48H33.7z M33.7,36.2V25.3L26,36.2H33.7z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0035-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0035-20e3.svg
index 44285a3..dc4e1d8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0035-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0035-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m22 36.25l5.68-.631c.162 1.379.643 2.469 1.44 3.273.798.807 1.717 1.209 2.759 1.209 1.189 0 2.197-.52 3.02-1.557.825-1.035 1.237-2.598 1.237-4.688 0-1.957-.409-3.426-1.228-4.404-.817-.979-1.883-1.469-3.193-1.469-1.637 0-3.104.777-4.402 2.328l-4.625-.719 2.922-16.596h15.07v5.721h-10.75l-.893 5.418c1.271-.682 2.568-1.023 3.895-1.023 2.527 0 4.672.986 6.43 2.959 1.758 1.97 2.637 4.53 2.637 7.679 0 2.623-.71 4.967-2.129 7.02-1.934 2.813-4.619 4.221-8.05 4.221-2.746 0-4.984-.791-6.715-2.371-1.73-1.582-2.765-3.707-3.103-6.375"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m22 36.3l5.7-.6c.2 1.4.6 2.5 1.4 3.3.8.8 1.7 1.2 2.8 1.2 1.2 0 2.2-.5 3-1.6.8-1 1.2-2.6 1.2-4.7 0-2-.4-3.4-1.2-4.4-.8-1-1.9-1.5-3.2-1.5-1.6 0-3.1.8-4.4 2.3l-4.6-.7 2.9-16.6h15.1v5.7h-10.8l-.9 5.4c1.3-.7 2.6-1 3.9-1 2.5 0 4.7 1 6.4 3 1.8 2 2.6 4.5 2.6 7.7 0 2.6-.7 5-2.1 7-1.9 2.8-4.6 4.2-8.1 4.2-2.7 0-5-.8-6.7-2.4-1.6-1.6-2.7-3.7-3-6.3" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0035.svg b/build/js/jsxc/lib/emojione/assets/svg/0035.svg
new file mode 100644
index 0000000..3e7717f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0035.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m22 39.3l5.7-.6c.2 1.4.6 2.5 1.4 3.3.8.8 1.7 1.2 2.8 1.2 1.2 0 2.2-.5 3-1.6.8-1 1.2-2.6 1.2-4.7 0-2-.4-3.4-1.2-4.4-.8-1-1.9-1.5-3.2-1.5-1.6 0-3.1.8-4.4 2.3l-4.6-.7 2.9-16.6h15.1v5.7h-10.8l-.9 5.4c1.3-.7 2.6-1 3.9-1 2.5 0 4.7 1 6.4 3 1.8 2 2.6 4.5 2.6 7.7 0 2.6-.7 5-2.1 7-1.9 2.8-4.6 4.2-8.1 4.2-2.7 0-5-.8-6.7-2.4-1.6-1.6-2.7-3.7-3-6.3" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0036-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0036-20e3.svg
index c4f2fd8..9ce3a59 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0036-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0036-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m41.45 20.801l-5.558.643c-.136-1.197-.49-2.082-1.063-2.65-.571-.57-1.314-.855-2.226-.855-1.213 0-2.238.57-3.075 1.709-.838 1.141-1.365 3.514-1.584 7.121 1.431-1.77 3.208-2.654 5.333-2.654 2.396 0 4.45.957 6.158 2.867 1.71 1.91 2.564 4.375 2.564 7.395 0 3.207-.898 5.779-2.696 7.717s-4.105 2.906-6.923 2.906c-3.02 0-5.51-1.23-7.457-3.688-1.948-2.457-2.922-6.486-2.922-12.09 0-5.744 1.015-9.885 3.044-12.42 2.029-2.537 4.665-3.805 7.906-3.805 2.274 0 4.157.666 5.648 1.998 1.492 1.334 2.442 3.27 2.851 5.803m-13.01 13.1c0 1.953.429 3.459 1.287 4.521.857 1.063 1.838 1.594 2.941 1.594 1.063 0 1.947-.436 2.656-1.305.707-.869 1.063-2.295 1.063-4.275 0-2.039-.382-3.529-1.145-4.479-.764-.945-1.716-1.42-2.859-1.42-1.104 0-2.037.451-2.8 1.355s-1.143 2.244-1.143 4.01"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m41.4 20.8l-5.6.6c-.1-1.2-.5-2.1-1.1-2.6-.6-.6-1.3-.9-2.2-.9-1.2 0-2.2.6-3.1 1.7-.8 1.1-1.4 3.5-1.6 7.1 1.4-1.8 3.2-2.7 5.3-2.7 2.4 0 4.5 1 6.2 2.9 1.7 1.9 2.6 4.4 2.6 7.4 0 3.2-.9 5.8-2.7 7.7s-4 3-6.8 3c-3 0-5.5-1.2-7.5-3.7-1.9-2.4-2.9-6.5-2.9-12.1 0-5.7 1-9.9 3-12.4 2-2.5 4.7-3.8 7.9-3.8 2.3 0 4.2.7 5.6 2 1.6 1.3 2.5 3.3 2.9 5.8m-13 13.1c0 2 .4 3.5 1.3 4.5.9 1.1 1.8 1.6 2.9 1.6 1.1 0 1.9-.4 2.7-1.3.7-.9 1.1-2.3 1.1-4.3 0-2-.4-3.5-1.1-4.5-.8-.9-1.7-1.4-2.9-1.4-1.1 0-2 .5-2.8 1.4s-1.2 2.2-1.2 4" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0036.svg b/build/js/jsxc/lib/emojione/assets/svg/0036.svg
new file mode 100644
index 0000000..2ff6d93
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0036.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m41.4 23.8l-5.6.6c-.1-1.2-.5-2.1-1.1-2.6-.6-.6-1.3-.9-2.2-.9-1.2 0-2.2.6-3.1 1.7-.8 1.1-1.4 3.5-1.6 7.1 1.4-1.8 3.2-2.7 5.3-2.7 2.4 0 4.5 1 6.2 2.9 1.7 1.9 2.6 4.4 2.6 7.4 0 3.2-.9 5.8-2.7 7.7s-4 3-6.8 3c-3 0-5.5-1.2-7.5-3.7-1.9-2.4-2.9-6.5-2.9-12.1 0-5.7 1-9.9 3-12.4 2-2.5 4.7-3.8 7.9-3.8 2.3 0 4.2.7 5.6 2 1.6 1.3 2.5 3.3 2.9 5.8m-13 13.1c0 2 .4 3.5 1.3 4.5.9 1.1 1.8 1.6 2.9 1.6 1.1 0 1.9-.4 2.7-1.3.7-.9 1.1-2.3 1.1-4.3 0-2-.4-3.5-1.1-4.5-.8-.9-1.7-1.4-2.9-1.4-1.1 0-2 .5-2.8 1.4-.8.9-1.2 2.2-1.2 4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0037-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0037-20e3.svg
index 5645858..1f01b9d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0037-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0037-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m23 18.775v-5.775h20v4.514c-1.651 1.727-3.33 4.205-5.04 7.436-1.707 3.23-3.01 6.666-3.903 10.303-.895 3.637-1.335 6.887-1.321 9.748h-5.64c.098-4.484.968-9.06 2.612-13.721 1.644-4.662 3.84-8.83 6.586-12.504h-13.298"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m23 18.8v-5.8h20v4.5c-1.7 1.7-3.3 4.2-5 7.4-1.7 3.2-3 6.7-3.9 10.3s-1.3 6.9-1.3 9.7h-5.6c.1-4.5 1-9.1 2.6-13.7s3.8-8.8 6.6-12.5l-13.4.1" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0037.svg b/build/js/jsxc/lib/emojione/assets/svg/0037.svg
new file mode 100644
index 0000000..6079e49
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0037.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m23 21.8v-5.8h20v4.5c-1.7 1.7-3.3 4.2-5 7.4-1.7 3.2-3 6.7-3.9 10.3-.9 3.6-1.3 6.9-1.3 9.7h-5.6c.1-4.5 1-9.1 2.6-13.7 1.6-4.7 3.8-8.8 6.6-12.5l-13.4.1" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0038-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0038-20e3.svg
index 63de00d..b6ed90a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0038-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0038-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m27.08 27.547c-1.509-.654-2.604-1.557-3.289-2.703-.686-1.145-1.026-2.402-1.026-3.768 0-2.338.791-4.268 2.374-5.791 1.584-1.523 3.836-2.285 6.753-2.285 2.891 0 5.136.762 6.733 2.285s2.396 3.453 2.396 5.791c0 1.451-.366 2.744-1.101 3.877-.732 1.129-1.763 1.996-3.091 2.594 1.688.697 2.971 1.717 3.849 3.055.879 1.339 1.318 2.882 1.318 4.634 0 2.893-.896 5.242-2.686 7.05-1.793 1.809-4.175 2.713-7.148 2.713-2.767 0-5.069-.748-6.909-2.242-2.171-1.768-3.257-4.188-3.257-7.266 0-1.693.408-3.25 1.224-4.664.817-1.42 2.103-2.512 3.86-3.281m.663 7.371c0 1.652.412 2.939 1.235 3.865.822.924 1.85 1.389 3.08 1.389 1.203 0 2.198-.445 2.987-1.336.788-.889 1.182-2.174 1.182-3.855 0-1.465-.399-2.646-1.202-3.533-.803-.893-1.819-1.338-3.05-1.338-1.425 0-2.487.506-3.185 1.518-.697 1.01-1.047 2.106-1.047 3.29m.539-13.416c0 1.197.328 2.129.986 2.797.656.67 1.53 1 2.623 1 1.108 0 1.992-.338 2.655-1.014.664-.676.996-1.613.996-2.809 0-1.125-.328-2.025-.984-2.703-.658-.676-1.525-1.014-2.604-1.014-1.12 0-2.01.342-2.676 1.025-.664.685-.996 1.589-.996 2.714"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m27.1 27.5c-1.5-.7-2.6-1.6-3.3-2.7-.7-1.1-1-2.4-1-3.8 0-2.3.8-4.3 2.4-5.8 1.6-1.5 3.8-2.3 6.8-2.3 2.9 0 5.1.8 6.7 2.3s2.4 3.5 2.4 5.8c0 1.5-.4 2.7-1.1 3.9-.7 1.1-1.8 2-3.1 2.6 1.7.7 3 1.7 3.8 3.1.9 1.3 1.3 2.9 1.3 4.6 0 2.9-.9 5.2-2.7 7.1-1.8 1.8-4.2 2.7-7.1 2.7-2.8 0-5.1-.7-6.9-2.2-2.2-1.8-3.3-4.2-3.3-7.3 0-1.7.4-3.2 1.2-4.7.8-1.4 2.1-2.5 3.9-3.3m.6 7.4c0 1.7.4 2.9 1.2 3.9.8.9 1.9 1.4 3.1 1.4 1.2 0 2.2-.4 3-1.3.8-.9 1.2-2.2 1.2-3.9 0-1.5-.4-2.6-1.2-3.5-.8-.9-1.8-1.3-3-1.3-1.4 0-2.5.5-3.2 1.5-.7.9-1.1 2-1.1 3.2m.6-13.4c0 1.2.3 2.1 1 2.8.7.7 1.5 1 2.6 1 1.1 0 2-.3 2.7-1 .7-.7 1-1.6 1-2.8 0-1.1-.3-2-1-2.7-.7-.7-1.5-1-2.6-1-1.1 0-2 .3-2.7 1-.7.7-1 1.6-1 2.7" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0038.svg b/build/js/jsxc/lib/emojione/assets/svg/0038.svg
new file mode 100644
index 0000000..014bf26
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0038.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m27.1 30.5c-1.5-.7-2.6-1.6-3.3-2.7-.7-1.1-1-2.4-1-3.8 0-2.3.8-4.3 2.4-5.8 1.6-1.5 3.8-2.3 6.8-2.3 2.9 0 5.1.8 6.7 2.3s2.4 3.5 2.4 5.8c0 1.5-.4 2.7-1.1 3.9-.7 1.1-1.8 2-3.1 2.6 1.7.7 3 1.7 3.8 3.1.9 1.3 1.3 2.9 1.3 4.6 0 2.9-.9 5.2-2.7 7.1-1.8 1.8-4.2 2.7-7.1 2.7-2.8 0-5.1-.7-6.9-2.2-2.2-1.8-3.3-4.2-3.3-7.3 0-1.7.4-3.2 1.2-4.7.8-1.4 2.1-2.5 3.9-3.3m.6 7.4c0 1.7.4 2.9 1.2 3.9.8.9 1.9 1.4 3.1 1.4 1.2 0 2.2-.4 3-1.3.8-.9 1.2-2.2 1.2-3.9 0-1.5-.4-2.6-1.2-3.5-.8-.9-1.8-1.3-3-1.3-1.4 0-2.5.5-3.2 1.5-.7.9-1.1 2-1.1 3.2m.6-13.4c0 1.2.3 2.1 1 2.8.7.7 1.5 1 2.6 1 1.1 0 2-.3 2.7-1 .7-.7 1-1.6 1-2.8 0-1.1-.3-2-1-2.7-.7-.7-1.5-1-2.6-1-1.1 0-2 .3-2.7 1-.7.7-1 1.6-1 2.7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0039-20e3.svg b/build/js/jsxc/lib/emojione/assets/svg/0039-20e3.svg
index 0dcc4be..c883419 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/0039-20e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/0039-20e3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><path fill="#9aa0a5" d="m22.572 37.2l5.556-.641c.136 1.182.491 2.057 1.063 2.627s1.328.854 2.268.854c1.185 0 2.193-.568 3.02-1.709.83-1.139 1.36-3.502 1.593-7.092-1.443 1.752-3.247 2.627-5.413 2.627-2.357 0-4.391-.951-6.098-2.85-1.71-1.902-2.564-4.376-2.564-7.423 0-3.178.901-5.736 2.707-7.68 1.805-1.945 4.102-2.916 6.895-2.916 3.036 0 5.528 1.229 7.479 3.684 1.945 2.459 2.919 6.498 2.919 12.12 0 5.727-1.015 9.855-3.044 12.391-2.03 2.532-4.672 3.802-7.926 3.802-2.343 0-4.236-.652-5.681-1.955-1.443-1.303-2.369-3.252-2.777-5.842m12.994-13.12c0-1.938-.429-3.439-1.278-4.506-.853-1.068-1.836-1.604-2.952-1.604-1.063 0-1.943.439-2.645 1.314-.703.877-1.054 2.311-1.054 4.305 0 2.02.382 3.508 1.146 4.453.763.947 1.716 1.42 2.858 1.42 1.104 0 2.033-.453 2.79-1.365.757-.912 1.135-2.249 1.135-4.02"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><path d="m22.6 37.2l5.6-.6c.1 1.2.5 2.1 1.1 2.6s1.3.9 2.3.9c1.2 0 2.2-.6 3-1.7.8-1.1 1.4-3.5 1.6-7.1-1.4 1.8-3.2 2.6-5.4 2.6-2.4 0-4.4-1-6.1-2.9-1.7-1.9-2.6-4.4-2.6-7.4 0-3.2.9-5.7 2.7-7.7 1.8-1.9 4.1-2.9 6.9-2.9 3 0 5.5 1.2 7.5 3.7 1.8 2.4 2.8 6.5 2.8 12.1 0 5.7-1 9.9-3 12.4-2 2.5-4.7 3.8-7.9 3.8-2.3 0-4.2-.7-5.7-2-1.5-1.3-2.4-3.2-2.8-5.8m13-13.1c0-1.9-.4-3.4-1.3-4.5-.9-1.1-1.8-1.6-3-1.6-1.1 0-1.9.4-2.6 1.3-.7.9-1.1 2.3-1.1 4.3 0 2 .4 3.5 1.1 4.5.8.9 1.7 1.4 2.9 1.4 1.1 0 2-.5 2.8-1.4s1.2-2.2 1.2-4" fill="#9aa0a5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/0039.svg b/build/js/jsxc/lib/emojione/assets/svg/0039.svg
new file mode 100644
index 0000000..afda6d7
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/0039.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m22.6 40.2l5.6-.6c.1 1.2.5 2.1 1.1 2.6s1.3.9 2.3.9c1.2 0 2.2-.6 3-1.7.8-1.1 1.4-3.5 1.6-7.1-1.4 1.8-3.2 2.6-5.4 2.6-2.4 0-4.4-1-6.1-2.8-1.7-1.9-2.6-4.4-2.6-7.4 0-3.2.9-5.7 2.7-7.7 1.8-1.9 4.1-2.9 6.9-2.9 3 0 5.5 1.2 7.5 3.7 1.8 2.3 2.8 6.4 2.8 12 0 5.7-1 9.9-3 12.4-2 2.5-4.7 3.8-7.9 3.8-2.3 0-4.2-.7-5.7-2s-2.4-3.2-2.8-5.8m13-13.1c0-1.9-.4-3.4-1.3-4.5-.9-1.1-1.8-1.6-3-1.6-1.1 0-1.9.4-2.6 1.3-.7.9-1.1 2.3-1.1 4.3 0 2 .4 3.5 1.1 4.5.8.9 1.7 1.4 2.9 1.4 1.1 0 2-.5 2.8-1.4.8-.9 1.2-2.2 1.2-4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/00a9.svg b/build/js/jsxc/lib/emojione/assets/svg/00a9.svg
index e7742e5..68a7702 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/00a9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/00a9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m32 62c-16.543 0-30-13.459-30-30s13.457-30 30-30c16.543 0 30 13.459 30 30s-13.457 30-30 30m0-55.861c-14.262 0-25.864 11.601-25.864 25.861 0 14.262 11.602 25.863 25.863 25.863 14.26 0 25.862-11.602 25.862-25.863 0-14.26-11.601-25.861-25.861-25.861"/><path d="m32.34 50c-9.56 0-17.335-8.08-17.335-18 0-9.924 7.775-18 17.336-18 5.768 0 11.141 2.965 14.374 7.937l-3.379 2.37c-2.475-3.802-6.584-6.072-10.995-6.072-7.311 0-13.258 6.176-13.258 13.766s5.947 13.764 13.258 13.764c4.575 0 8.768-2.399 11.217-6.422l3.447 2.261c-3.199 5.257-8.684 8.396-14.665 8.396"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m32 2c-13.8 0-25 11.2-25 25s11.2 25 25 25 25-11.2 25-25-11.2-25-25-25m0 45c-11 0-20-9-20-20 0-11 9-20 20-20 11 0 20 9 20 20 0 11-9 20-20 20"/><path d="m25.4 19.3c.9-1 2-1.8 3.3-2.3 1.3-.6 2.6-.9 4-.9 1.7 0 3.4.4 4.8 1.3 1.4.8 2.7 2 3.6 3.3l3.6-2.7c-1.4-1.8-3.1-3.4-5.1-4.4-2.1-1.1-4.3-1.6-6.8-1.6-2 0-4 .4-5.8 1.2-1.8.8-3.4 1.9-4.7 3.2-1.3 1.4-2.4 2.9-3.2 4.8-.8 1.8-1.2 3.8-1.2 5.8 0 2.1.4 4 1.2 5.8.8 1.8 1.8 3.4 3.2 4.8 1.3 1.4 2.9 2.4 4.7 3.2 1.8.8 3.7 1.2 5.8 1.2 2.5 0 4.8-.5 6.8-1.6 2-1.1 3.8-2.6 5.1-4.4l-3.6-2.7c-.9 1.4-2.1 2.5-3.6 3.3-1.5.8-3.1 1.2-4.8 1.2-1.4 0-2.7-.3-4-.9-1.2-.6-2.3-1.4-3.3-2.3-.9-1-1.7-2.1-2.2-3.4s-.8-2.7-.8-4.2c0-1.5.3-2.9.8-4.2s1.3-2.5 2.2-3.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/00ae.svg b/build/js/jsxc/lib/emojione/assets/svg/00ae.svg
index 5c4e71e..8b084f6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/00ae.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/00ae.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m32 62c-16.543 0-30-13.457-30-30 0-16.542 13.457-30 30-30 16.541 0 30 13.458 30 30 0 16.543-13.459 30-30 30m0-56c-14.336 0-26 11.663-26 26 0 14.338 11.664 26 26 26s26-11.662 26-26c0-14.337-11.664-26-26-26"/><path d="M48,27.301C48,20.519,42.797,15,36.4,15H20v22.646V39.6v8.607h4V39.6h11.1l4.271,9.4l3.656-1.584
- l-3.734-8.22C44.291,37.828,48,33.022,48,27.301z M36.4,35.693H24V18.906h12.4c4.189,0,7.6,3.766,7.6,8.395
- C44,31.928,40.59,35.693,36.4,35.693z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m32 2c-13.8 0-25 11.2-25 25s11.2 25 25 25 25-11.2 25-25-11.2-25-25-25m0 45c-11 0-20-9-20-20 0-11 9-20 20-20 11 0 20 9 20 20 0 11-9 20-20 20"/><path d="m32.3 14h-9.3v26h4.2v-7.7h7l4.4 7.7h4.4l-5-9c7.7-3.4 7.7-17-5.7-17m.5 15h-5.6v-11.7h5.6c8.8 0 8.8 11.7 0 11.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f004.svg b/build/js/jsxc/lib/emojione/assets/svg/1f004.svg
index dcb9657..45867fb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f004.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f004.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b69467" d="m64 30.793v-8.402h-5.746v2.975l-17.897-14.39c-.947-.762-2.482-.762-3.43 0l-31.18 25.07v-2.843h-5.745v8.271c0 .001 0 .001 0 .002v.209h.025c.057.426.278.841.685 1.168l22.932 18.439c.947.762 2.482.762 3.429 0l36.22-29.12c.447-.36.677-.826.699-1.299h.01l.001-.079"/><path fill="#efdec2" d="m27.07 53.02c-.947.762-2.482.762-3.429 0l-22.932-18.438c-.947-.761-.947-1.996 0-2.757l36.22-29.12c.947-.76 2.482-.76 3.43 0l22.933 18.439c.945.762.945 1.995 0 2.756l-36.22 29.12"/><path fill-rule="evenodd" fill="#b70000" d="m46.541 13.479c.823 2.12.275 4.201.264 6.297-1.772 2.118-3.725-.001-5.48 2.548 3.83 1.971 9.125 6.42 6.587 10.511-4.122-.582-8.261-1.594-12.269.566 0-1.2-1.976-2.449-3.507-3.688-6.467 2.126-9.514 10.247-16.29 11.238.263-4.635 11.336-8.978 13.399-13.564-1.573-1.96-3.03-1.139-4.588-2.82 4.193-3.629-3.083-7.569 3.444-11.138 2.126 1.556.076 2.998 1.307 4.529 2.482 1.458 4.922 1.886 7.404 3.346 3.808-2.593 3.157-5.305 5.254-7.944 1.477-.302 3.01.665 4.475.119m-8.497 10.552c-1.622 1.304-3.243 2.608-4.865 3.912 3.634 2.25 7.142 1.529 10.609-.162-.257-2.205-3.845-3.059-5.744-3.75m-7.982-3.811c-.884 1.923-2.262 3.833.804 5.861 1.455-1.457 4.847-2.862 3.167-4.405-1.293.253-2.643-.868-3.971-1.456"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 30.8v-8.4h-5.7v3l-17.9-14.4c-.9-.8-2.5-.8-3.4 0l-31.3 25v-2.8h-5.7v8.3c0 0 0 0 0 0v.2c.1.4.3.8.7 1.2l22.9 18.4c.9.8 2.5.8 3.4 0l36.2-29.1c.5-.4.8-.9.8-1.4" fill="#b69467"/><path d="m27.1 53c-.9.8-2.5.8-3.4 0l-23-18.4c-.9-.8-.9-2 0-2.8l36.2-29.1c.9-.8 2.5-.8 3.4 0l22.9 18.4c.9.8.9 2 0 2.8l-36.1 29.1" fill="#efdec2"/><path d="m46.5 13.5c.8 2.1.3 4.2.3 6.3-1.8 2.1-3.7 0-5.5 2.5 3.8 2 9.1 6.4 6.6 10.5-4.1-.6-8.3-1.6-12.3.6 0-1.2-2-2.4-3.5-3.7-6.4 2.1-9.5 10.3-16.3 11.3.3-4.6 11.3-9 13.4-13.6-1.6-2-3-1.1-4.6-2.8 4.2-3.6-3.1-7.6 3.4-11.1 2.1 1.6.1 3 1.3 4.5 2.5 1.5 4.9 1.9 7.4 3.3 3.8-2.6 3.2-5.3 5.3-7.9 1.5-.3 3.1.6 4.5.1m-8.5 10.5c-1.6 1.3-3.2 2.6-4.9 3.9 3.6 2.2 7.1 1.5 10.6-.2-.2-2.1-3.8-3-5.7-3.7m-7.9-3.8c-.9 1.9-2.3 3.8.8 5.9 1.5-1.5 4.8-2.9 3.2-4.4-1.4.2-2.7-.9-4-1.5" fill="#b70000"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f0cf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f0cf.svg
index bb3aafc..45ae8ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f0cf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f0cf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#efeded" d="m13 62.5c-3.03 0-5.5-2.468-5.5-5.5v-50c0-3.03 2.467-5.5 5.5-5.5h38c3.03 0 5.5 2.468 5.5 5.5v50c0 3.03-2.467 5.5-5.5 5.5h-38"/><path fill="#262626" d="m51 3c2.209 0 4 1.79 4 4v50c0 2.209-1.791 4-4 4h-38c-2.209 0-4-1.791-4-4v-50c0-2.21 1.791-4 4-4h38m0-3h-38c-3.86 0-7 3.141-7 7v50c0 3.859 3.14 7 7 7h38c3.859 0 7-3.141 7-7v-50c0-3.859-3.141-7-7-7z"/><path fill="#333" d="m43.648 55.17l-7.273-12.846c-1.174 1.299-2.719 4.247-4.414 4.247-1.651 0-3.163-2.91-4.325-4.154l-7.325 12.753 8.661-7.332-.89 7.332 3.945-7.704 3.853 7.704-.809-7.343 8.577 7.343"/><path fill="#fed0ac" d="m39.31 26.891h-14.628c0 0-3.048 5.757 2.563 15.254 1.772 2.999 3.339 4.483 4.75 4.511 1.413-.027 2.981-1.512 4.752-4.511 5.608-9.498 2.563-15.254 2.563-15.254"/><g fill="#333"><path d="m35.635 39.625c0 0-.123.089-.334.228-.102.071-.225.156-.369.244-.141.088-.299.184-.471.277-.346.19-.74.375-1.158.5-.211.063-.425.111-.645.142-.054.005-.109.017-.164.022-.054.002-.115.012-.164.014l-.072.004-.035.003h-.02l-.026.002-.188.004c-.47 0-.912-.062-1.333-.182-.416-.118-.813-.3-1.15-.491-.341-.188-.626-.383-.828-.528s-.322-.238-.322-.238-.004.035 0 .101c.006.067.018.164.044.283.054.242.173.583.429.953.126.187.288.376.487.563.202.182.442.356.719.507.279.146.593.27.925.348.335.08.681.122 1.027.124h.006.032l.015-.002h.026.053l.108-.005h.028l.034-.005.072-.005.142-.016c.182-.019.349-.05.515-.092.336-.082.646-.208.922-.36.277-.15.514-.326.713-.509.197-.183.359-.374.486-.558.127-.182.221-.359.293-.521.07-.159.117-.305.148-.423.059-.24.055-.384.055-.384"/><path d="m30.25 33.401c-.023-.061-.06-.125-.107-.198-.023-.038-.049-.077-.079-.118-.028-.038-.064-.078-.1-.121s-.076-.083-.12-.127c-.046-.043-.092-.088-.147-.128-.053-.038-.105-.083-.171-.121-.058-.036-.124-.074-.192-.11-.141-.065-.294-.125-.464-.163-.041-.007-.082-.016-.125-.024-.043-.006-.087-.012-.131-.015-.086-.014-.176-.01-.265-.012-.172.009-.347.027-.508.074-.162.042-.313.101-.448.17-.135.065-.254.146-.357.223-.106.082-.195.163-.271.243-.154.163-.249.317-.309.428-.027.055-.044.101-.056.133-.015.029-.018.048-.018.048s.07-.03.191-.081c.12-.051.284-.122.475-.199.098-.035.197-.074.305-.11-.061.12-.095.252-.095.391 0 .536.489.974 1.094.974.602 0 1.092-.438 1.092-.974 0-.155-.043-.301-.114-.432.013.005.023.011.037.015.054.015.101.038.15.058.051.019.1.038.145.061.093.04.183.077.26.118.079.034.151.067.206.094.059.028.109.049.142.066.032.014.05.021.05.021s-.003-.018-.017-.048c-.011-.034-.026-.081-.053-.136"/><path d="m37.588 33.534c-.012-.031-.027-.078-.057-.133-.021-.061-.057-.125-.104-.198-.023-.038-.051-.077-.08-.118-.029-.038-.064-.078-.1-.121s-.078-.083-.119-.127c-.047-.043-.092-.088-.148-.128-.053-.038-.105-.083-.17-.121-.059-.036-.125-.074-.193-.11-.143-.065-.295-.125-.463-.163-.041-.007-.082-.016-.127-.024-.043-.006-.084-.012-.131-.015-.088-.014-.174-.01-.262-.012-.174.009-.35.027-.508.074-.164.042-.314.101-.449.17-.137.065-.254.146-.359.223-.104.082-.195.163-.27.243-.154.163-.25.317-.309.428-.027.055-.045.101-.059.133-.01.029-.014.048-.014.048s.068-.03.189-.081.285-.122.477-.199c.096-.035.197-.074.303-.11-.059.12-.092.252-.092.391 0 .536.488.974 1.09.974.604 0 1.092-.438 1.092-.974 0-.155-.041-.301-.111-.432.01.005.023.011.035.015.055.015.102.038.152.058.049.019.1.038.143.061.094.04.184.077.26.118.078.034.152.067.207.094.057.028.109.049.139.066.035.014.053.021.053.021s-.003-.021-.015-.051"/><path d="m46.44 14.946c-7.506-4-12.594 5.117-14.438 9.233-1.847-4.115-6.933-13.236-14.438-9.232-2.429 1.296-4.692 3.78-4.692 3.78s10.454-1.283 11.237 9.962c2.158-1.389 4.843-4.1 7.734-4.1 3.03 0 5.878 2.588 8.09 4.1.676-11.483 11.203-9.962 11.203-9.962s-2.266-2.485-4.691-3.781"/></g><path fill="#94989b" d="m39.25 26.494c-.451-1.783-2.525-9.255-7.258-15.834v-.1h-.07v.101c-5.415 7.531-7.354 16.23-7.354 16.23.003-.002.003-.002.003-.002-.392.999-.654 2.187-.719 3.6 0 0 1.151-3.598 4.389-3.598 3.233 0 3.752 3.598 3.752 3.598s.518-3.598 3.754-3.598c3.236 0 4.385 3.598 4.385 3.598-.071-1.605-.402-2.92-.882-3.995"/><ellipse fill="#333" cx="31.981" cy="10.56" rx="1.942" ry="1.727"/><g fill="#94989b"><ellipse cx="12.871" cy="18.737" rx="1.944" ry="1.728"/><ellipse cx="51.13" cy="18.716" rx="1.945" ry="1.728"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M13,62.5c-3,0-5.5-2.5-5.5-5.5V7c0-3,2.5-5.5,5.5-5.5h38c3,0,5.5,2.5,5.5,5.5v50c0,3-2.5,5.5-5.5,5.5H13z" fill="#efeded"/><path d="m51 3c2.2 0 4 1.8 4 4v50c0 2.2-1.8 4-4 4h-38c-2.2 0-4-1.8-4-4v-50c0-2.2 1.8-4 4-4h38m0-3h-38c-3.9 0-7 3.1-7 7v50c0 3.9 3.1 7 7 7h38c3.9 0 7-3.1 7-7v-50c0-3.9-3.1-7-7-7z" fill="#262626"/><path d="m43.6 55.2l-7.3-12.8c-1.2 1.3-2.7 4.2-4.4 4.2-1.7 0-3.2-2.9-4.3-4.2l-7.3 12.8 8.7-7.3-.9 7.3 3.9-7.7 3.9 7.7-.8-7.3 8.5 7.3" fill="#333"/><path d="m39.3 26.9h-14.6c0 0-3 5.8 2.6 15.3 1.8 3 3.3 4.5 4.8 4.5 1.4 0 3-1.5 4.8-4.5 5.5-9.6 2.4-15.3 2.4-15.3" fill="#fed0ac"/><g fill="#333"><path d="m35.6 39.6c0 0-.1.1-.3.2-.1.1-.2.2-.4.2-.1.1-.3.2-.5.3-.3.2-.7.4-1.2.5-.2.1-.4.1-.6.1-.1 0-.1 0-.2 0-.1 0-.1 0-.2 0h-.1-.2c-.5 0-.9-.1-1.3-.2-.4-.1-.8-.3-1.1-.5-.3-.2-.6-.4-.8-.5s-.3-.2-.3-.2 0 0 0 .1c0 .1 0 .2 0 .3.1.2.2.6.4 1 .1.2.3.4.5.6.2.2.4.4.7.5.3.1.6.3.9.3.3.1.7.1 1 .1h.1.1.1.1c.2 0 .3 0 .5-.1.3-.1.6-.2.9-.4.3-.2.5-.3.7-.5.2-.2.4-.4.5-.6.1-.2.2-.4.3-.5.1-.2.1-.3.1-.4.3-.1.3-.3.3-.3"/><path d="m30.3 33.4c0-.1-.1-.1-.1-.2 0 0 0-.1-.1-.1-.1-.1-.1-.1-.1-.1s-.1-.1-.1-.1c0 0-.1-.1-.1-.1-.1 0-.1-.1-.2-.1-.1 0-.1-.1-.2-.1-.1-.1-.3-.1-.5-.2 0 0-.1 0-.1 0 0 0-.1 0-.1 0-.1 0-.2 0-.3 0-.2 0-.3 0-.5.1-.2 0-.3.1-.4.2-.1.1-.3.1-.4.2-.1.1-.2.2-.3.2-.2.2-.2.3-.3.4 0 .1 0 .1-.1.1s.1 0 .2-.1c.1-.1.3-.1.5-.2.1 0 .2-.1.3-.1-.1.1-.1.3-.1.4 0 .5.5 1 1.1 1 .6 0 1.1-.4 1.1-1 0-.2 0-.3-.1-.4.1 0 .1 0 .1.1.1 0 .1 0 .1.1.1 0 .2.1.3.1.1 0 .2.1.2.1.1 0 .1 0 .1.1s0 0 0 0c.1-.2.1-.2.1-.3"/><path d="m37.6 33.5c0 0 0-.1-.1-.1 0-.1-.1-.1-.1-.2 0 0-.1-.1-.1-.1 0 0-.1-.1-.1-.1s-.1-.1-.1-.1c0 0-.1-.1-.1-.1-.1 0-.1-.1-.2-.1-.1 0-.1-.1-.2-.1-.1-.1-.3-.1-.5-.2 0 0-.1 0-.1 0 0 0-.1 0-.1 0-.1 0-.2 0-.3 0-.2 0-.3 0-.5.1-.2 0-.3.1-.4.2-.1.1-.3.1-.4.2-.1.1-.2.2-.3.2-.2.2-.2.3-.3.4 0 .1 0 .1-.1.1s.1 0 .2-.1.3-.1.5-.2c.1 0 .2-.1.3-.1-.1.1-.1.3-.1.4 0 .5.5 1 1.1 1 .6 0 1.1-.4 1.1-1 0-.2 0-.3-.1-.4.1 0 .1 0 .2.1 0 0 .1 0 .1.1.1 0 .2.1.3.1.1 0 .2.1.2.1.1-.1.1-.1.2-.1"/><path d="m46.4 14.9c-7.5-4-12.6 5.1-14.4 9.2-1.8-4.1-6.9-13.2-14.4-9.2-2.4 1.3-4.7 3.8-4.7 3.8s10.5-1.3 11.2 10c2.2-1.4 4.8-4.1 7.7-4.1 3 0 5.9 2.6 8.1 4.1.7-11.5 11.2-10 11.2-10s-2.2-2.5-4.7-3.8"/></g><path d="m39.3 26.5c-.5-1.8-2.5-9.3-7.3-15.8v-.1h-.1v.1c-5.4 7.5-7.4 16.2-7.4 16.2-.4 1-.7 2.2-.7 3.6 0 0 1.2-3.6 4.4-3.6 3.2 0 3.8 3.6 3.8 3.6s.5-3.6 3.8-3.6 4.4 3.6 4.4 3.6c-.1-1.6-.5-2.9-.9-4" fill="#94989b"/><ellipse cx="32" cy="10.6" rx="1.9" ry="1.7" fill="#333"/><g fill="#94989b"><ellipse cx="12.9" cy="18.7" rx="1.9" ry="1.7"/><ellipse cx="51.1" cy="18.7" rx="1.9" ry="1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f170.svg b/build/js/jsxc/lib/emojione/assets/svg/1f170.svg
index c383665..a2ed41f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f170.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f170.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="M41.733,46H47L34.992,14H29.01L17,46h5.267l4.204-11.199h11.061L41.733,46z M28.271,30l3.729-9.938
- L35.73,30H28.271z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><path d="M41.7,46H47L35,14h-6L17,46h5.3l4.2-11.2h11.1L41.7,46z M28.3,30l3.7-9.9l3.7,9.9H28.3z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f171.svg b/build/js/jsxc/lib/emojione/assets/svg/1f171.svg
index 560bf3a..d0f8e64 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f171.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f171.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m43 25.27c0-5.102-4.211-9.25-9.391-9.25l-12.609-.023v32l12.609-.022c5.18 0 9.391-4.149 9.391-9.25 0-2.649-1.137-5.04-2.956-6.728 1.819-1.687 2.956-4.078 2.956-6.727m-9.391 17.659h-7.736v-8.408h7.736c2.354 0 4.268 1.886 4.268 4.204s-1.913 4.204-4.268 4.204m0-13.454h-7.736v-8.409h7.736c2.354 0 4.268 1.887 4.268 4.205 0 2.317-1.913 4.204-4.268 4.204"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><path d="m43 25.3c0-5.1-4.2-9.2-9.4-9.2l-12.6-.1v32h12.6c5.2 0 9.4-4.1 9.4-9.2 0-2.6-1.1-5-3-6.7 1.9-1.8 3-4.2 3-6.8m-9.4 17.6h-7.7v-8.4h7.7c2.4 0 4.3 1.9 4.3 4.2s-1.9 4.2-4.3 4.2m0-13.4h-7.7v-8.4h7.7c2.4 0 4.3 1.9 4.3 4.2 0 2.3-1.9 4.2-4.3 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f17e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f17e.svg
index 47d0f48..8844efa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f17e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f17e.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m32 48c-8.822 0-16-7.177-16-16 0-8.82 7.177-16 16-16 8.823 0 16 7.18 16 16 0 8.823-7.178 16-16 16m0-26.947c-6.04 0-10.947 4.911-10.947 10.947s4.911 10.947 10.947 10.947c6.04 0 10.948-4.911 10.948-10.947s-4.911-10.947-10.948-10.947"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><path d="m32 48c-8.8 0-16-7.2-16-16 0-8.8 7.2-16 16-16s16 7.2 16 16c0 8.8-7.2 16-16 16m0-26.9c-6 0-10.9 4.9-10.9 10.9 0 6 4.9 10.9 10.9 10.9s10.9-4.9 10.9-10.9c0-6-4.9-10.9-10.9-10.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f17f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f17f.svg
index 266cee4..5d85644 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f17f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f17f.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m33.999 12h-12.999v40h7.428v-14.547h5.571c7.17 0 13-5.709 13-12.727 0-7.02-5.831-12.726-13-12.726m0 18.18h-5.571v-10.91h5.571c3.071 0 5.571 2.445 5.571 5.454s-2.5 5.456-5.571 5.456"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><path d="m34 12h-13v40h7.4v-14.5h5.6c7.2 0 13-5.7 13-12.7 0-7.1-5.8-12.8-13-12.8m0 18.2h-5.6v-10.9h5.6c3.1 0 5.6 2.4 5.6 5.5 0 2.9-2.5 5.4-5.6 5.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f18e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f18e.svg
index bb05250..6c5e886 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f18e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f18e.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m28.14 45h3.861l-8.807-26h-4.388l-8.805 26h3.862l3.082-9.1h8.111l3.084 9.1m-9.873-13l2.734-8.07 2.736 8.07h-5.47"/><path d="m52 26.535c0-4.144-2.232-7.535-6-7.535h-10v26l9.169-.017c3.768 0 6.831-3.374 6.831-7.516 0-2.155-.828-4.097-2.15-5.468 1.322-1.37 2.15-3.311 2.15-5.464m-6.831 14.348h-5.624v-6.832h5.624c1.712 0 3.105 1.531 3.105 3.417 0 1.882-1.393 3.415-3.105 3.415m0-10.931h-5.624v-6.835h5.624c1.712 0 3.105 1.535 3.105 3.418s-1.393 3.417-3.105 3.417"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><g fill="#fff"><path d="m28.1 45h3.9l-8.8-26h-4.4l-8.8 26h3.9l3.1-9.1h8.1l3 9.1m-9.8-13l2.7-8.1 2.7 8.1h-5.4"/><path d="m52 26.5c0-4.1-2.2-7.5-6-7.5h-10v26h9.2c3.8 0 6.8-3.4 6.8-7.5 0-2.2-.8-4.1-2.2-5.5 1.4-1.4 2.2-3.3 2.2-5.5m-6.8 14.4h-5.6v-6.8h5.6c1.7 0 3.1 1.5 3.1 3.4 0 1.8-1.4 3.4-3.1 3.4m0-10.9h-5.6v-6.8h5.6c1.7 0 3.1 1.5 3.1 3.4s-1.4 3.4-3.1 3.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f191.svg b/build/js/jsxc/lib/emojione/assets/svg/1f191.svg
index 4df22b8..ef2cbf8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f191.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f191.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m23 43.09c-2.375 0-4.309-2.048-4.309-4.565v-13.04c0-2.518 1.934-4.565 4.309-4.565s4.309 2.048 4.309 4.565h3.691c0-1.144-.211-2.255-.629-3.303-.403-1.01-.979-1.915-1.714-2.693-.734-.777-1.589-1.388-2.541-1.816-.989-.442-2.036-.667-3.116-.667s-2.129.225-3.114.666c-.954.429-1.809 1.039-2.543 1.816-.733.778-1.311 1.686-1.714 2.693-.418 1.049-.629 2.16-.629 3.304v13.04c0 1.144.211 2.254.629 3.3.403 1.01.98 1.918 1.714 2.694.734.778 1.589 1.39 2.543 1.817.985.442 2.034.667 3.114.667s2.127-.225 3.116-.667c.952-.428 1.807-1.039 2.541-1.817.735-.776 1.311-1.684 1.714-2.694.418-1.046.629-2.156.629-3.3h-3.691c0 2.517-1.934 4.565-4.309 4.565"/><path d="m49 43.09h-8.307v-26.09h-3.693v30h12z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><g fill="#fff"><path d="m23 43.1c-2.4 0-4.3-2-4.3-4.6v-13c0-2.5 1.9-4.6 4.3-4.6s4.3 2 4.3 4.6h3.7c0-1.1-.2-2.3-.6-3.3-.4-1-1-1.9-1.7-2.7-.7-.8-1.6-1.4-2.5-1.8-1-.4-2-.7-3.1-.7s-2.1.2-3.1.7c-1 .4-1.8 1-2.5 1.8-.7.8-1.3 1.7-1.7 2.7-.4 1-.6 2.2-.6 3.3v13c0 1.1.2 2.3.6 3.3.4 1 1 1.9 1.7 2.7.7.8 1.6 1.4 2.5 1.8 1 .4 2 .7 3.1.7s2.1-.2 3.1-.7c1-.4 1.8-1 2.5-1.8.7-.8 1.3-1.7 1.7-2.7.4-1 .6-2.2.6-3.3h-3.7c0 2.5-1.9 4.6-4.3 4.6"/><path d="m49 43.1h-8.3v-26.1h-3.7v30h12z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f192.svg b/build/js/jsxc/lib/emojione/assets/svg/1f192.svg
index c5780a6..4bcdb3b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f192.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f192.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m15 37.715c-1.378 0-2.5-1.026-2.5-2.286v-6.857c0-1.26 1.122-2.285 2.5-2.285s2.5 1.025 2.5 2.285h2.5c0-2.52-2.242-4.572-5-4.572-2.756 0-5 2.052-5 4.571v6.857c0 2.522 2.245 4.572 5 4.572 2.758 0 5-2.05 5-4.571h-2.5c0 1.259-1.122 2.286-2.5 2.286"/><path d="m27 24c-2.756 0-5 2.052-5 4.571v6.857c0 2.522 2.244 4.572 5 4.572s5-2.05 5-4.571v-6.857c0-2.52-2.244-4.572-5-4.572m0 13.715c-1.377 0-2.5-1.026-2.5-2.286v-6.857c0-1.26 1.123-2.285 2.5-2.285 1.379 0 2.5 1.025 2.5 2.285v6.857c0 1.259-1.121 2.286-2.5 2.286"/><path d="m39 24c-2.758 0-5 2.052-5 4.571v6.857c0 2.521 2.242 4.572 5 4.572 2.756 0 5-2.051 5-4.571v-6.857c0-2.52-2.244-4.572-5-4.572m0 13.715c-1.377 0-2.5-1.026-2.5-2.286v-6.857c0-1.26 1.123-2.286 2.5-2.286 1.379 0 2.5 1.026 2.5 2.286v6.857c0 1.259-1.121 2.286-2.5 2.286"/><path d="m48.29 24h-2.29v16h8v-2.285h-5.71z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="m15 37.7c-1.4 0-2.5-1-2.5-2.3v-6.9c0-1.3 1.1-2.3 2.5-2.3s2.5 1 2.5 2.3h2.5c0-2.5-2.2-4.6-5-4.6-2.8 0-5 2.1-5 4.6v6.9c0 2.5 2.2 4.6 5 4.6 2.8 0 5-2.1 5-4.6h-2.5c0 1.3-1.1 2.3-2.5 2.3"/><path d="m27 24c-2.8 0-5 2.1-5 4.6v6.9c0 2.5 2.2 4.6 5 4.6s5-2.1 5-4.6v-6.9c0-2.5-2.2-4.6-5-4.6m0 13.7c-1.4 0-2.5-1-2.5-2.3v-6.9c0-1.3 1.1-2.3 2.5-2.3s2.5 1 2.5 2.3v6.9c0 1.3-1.1 2.3-2.5 2.3"/><path d="m39 24c-2.8 0-5 2.1-5 4.6v6.9c0 2.5 2.2 4.6 5 4.6 2.8 0 5-2.1 5-4.6v-6.9c0-2.5-2.2-4.6-5-4.6m0 13.7c-1.4 0-2.5-1-2.5-2.3v-6.9c0-1.3 1.1-2.3 2.5-2.3s2.5 1 2.5 2.3v6.9c0 1.3-1.1 2.3-2.5 2.3"/><path d="m48.3 24h-2.3v16h8v-2.3h-5.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f193.svg b/build/js/jsxc/lib/emojione/assets/svg/1f193.svg
index ed72c4c..d26b8c2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f193.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f193.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m34 41h8v-3h-5.091v-4.5h5.091v-3h-5.091v-4.5h5.091v-3h-8z"/><path d="m54 26v-3h-8v18h8v-3h-5.091v-4.5h5.091v-3h-5.091v-4.5z"/><path d="m23.857 41v-7.5h1.125l2.47 7.5h3.02l-2.596-7.885c1.829-.781 3.122-2.668 3.122-4.865 0-2.895-2.242-5.25-5-5.25h-5v18h2.857m0-15h2.143c1.182 0 2.143 1.01 2.143 2.25s-.961 2.25-2.143 2.25h-2.143v-4.5"/><path d="m12.909 41v-7.5h5.091v-3h-5.091v-4.5h5.091v-3h-8v18z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="m34 41h8v-3h-5.1v-4.5h5.1v-3h-5.1v-4.5h5.1v-3h-8z"/><path d="m54 26v-3h-8v18h8v-3h-5.1v-4.5h5.1v-3h-5.1v-4.5z"/><path d="m23.9 41v-7.5h1.1l2.5 7.5h3l-2.6-7.9c1.8-.8 3.1-2.7 3.1-4.9 0-2.9-2.2-5.2-5-5.2h-5v18h2.9m0-15h2.1c1.2 0 2.1 1 2.1 2.2s-1 2.2-2.1 2.2h-2.1v-4.4"/><path d="m12.9 41v-7.5h5.1v-3h-5.1v-4.5h5.1v-3h-8v18z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f194.svg b/build/js/jsxc/lib/emojione/assets/svg/1f194.svg
index 678cd31..0c36d51 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f194.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f194.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c28fef" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m48.21 20.866c-.505-1.142-1.225-2.171-2.143-3.054-.918-.882-1.987-1.573-3.178-2.059-1.235-.499-2.544-.753-3.892-.753h-10v34h10c1.348 0 2.657-.254 3.893-.756 1.19-.483 2.26-1.177 3.178-2.059.918-.883 1.638-1.91 2.143-3.054.519-1.185.786-2.443.786-3.738v-14.784c0-1.296-.267-2.555-.787-3.743m-9.213 23.7h-5.384v-25.13h5.384c2.969 0 5.386 2.322 5.386 5.176v14.783c0 2.851-2.417 5.173-5.386 5.173"/><path d="m19 15h4v34h-4z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#c28fef"/><g fill="#fff"><path d="m48.2 20.9c-.5-1.1-1.2-2.2-2.1-3.1-.9-.9-2-1.6-3.2-2.1-1.2-.4-2.6-.7-3.9-.7h-10v34h10c1.3 0 2.7-.3 3.9-.8 1.2-.5 2.3-1.2 3.2-2.1.9-.9 1.6-1.9 2.1-3.1.5-1.2.8-2.4.8-3.7v-14.7c0-1.3-.3-2.5-.8-3.7m-9.2 23.7h-5.4v-25.2h5.4c3 0 5.4 2.3 5.4 5.2v14.8c0 2.8-2.4 5.2-5.4 5.2"/><path d="m19 15h4v34h-4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f195.svg b/build/js/jsxc/lib/emojione/assets/svg/1f195.svg
index c4583ab..ad6466f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f195.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f195.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="M11,39V25h2.476l5.16,9.349V25H21v14h-2.552l-5.084-9.131V39H11z"/><path d="M25,39V25h9.75v2.368h-7.096v3.103h6.6v2.359h-6.6v3.81H35V39H25z"/><path d="M40.275,39L37,25h2.836l2.067,9.615L44.41,25h3.293l2.403,9.779L52.212,25H55l-3.332,14H48.73
- l-2.729-10.467L43.278,39H40.275z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="M11,39V25h2.5l5.2,9.3V25H21v14h-2.6l-5.1-9.1V39H11z"/><path d="M25,39V25h9.8v2.4h-7.1v3.1h6.6v2.4h-6.6v3.8H35V39H25z"/><path d="M40.3,39L37,25h2.8l2.1,9.6l2.5-9.6h3.3l2.4,9.8l2.1-9.8H55l-3.3,14h-2.9L46,28.5L43.3,39H40.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f196.svg b/build/js/jsxc/lib/emojione/assets/svg/1f196.svg
index 7cb4595..fe38c95 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f196.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f196.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m44 42c-5.513 0-10-4.486-10-10 0-5.514 4.487-9.999 10-9.999 2.566 0 5.01.969 6.87 2.732l-2.29 2.421c-1.243-1.175-2.869-1.821-4.58-1.821-3.676 0-6.666 2.99-6.666 6.667s2.99 6.667 6.666 6.667c3.102 0 5.713-2.127 6.455-4.998h-6.455v-3.335h10v1.666c0 5.515-4.484 10-10 10"/><path d="m26.667 22v14.31l-14.311-14.31h-2.356v20h3.334v-14.312l14.31 14.312h2.356v-9-11z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="m44 42c-5.5 0-10-4.5-10-10 0-5.5 4.5-10 10-10 2.6 0 5 1 6.9 2.7l-2.3 2.4c-1.2-1.2-2.9-1.8-4.6-1.8-3.7 0-6.7 3-6.7 6.7 0 3.7 3 6.7 6.7 6.7 3.1 0 5.7-2.1 6.5-5h-6.5v-3.3h10v1.6c0 5.5-4.5 10-10 10"/><path d="m26.7 22v14.3l-14.3-14.3h-2.4v20h3.3v-14.3l14.3 14.3h2.4v-9-11z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f197.svg b/build/js/jsxc/lib/emojione/assets/svg/1f197.svg
index df4d4d8..c45e4e1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f197.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f197.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m11.999 32.12c0-1.971.315-3.624.942-4.961.47-.984 1.108-1.869 1.921-2.651.811-.783 1.699-1.364 2.664-1.741 1.287-.51 2.767-.766 4.445-.766 3.038 0 5.47.884 7.294 2.651 1.823 1.769 2.734 4.227 2.734 7.375 0 3.122-.904 5.565-2.715 7.328-1.808 1.765-4.226 2.646-7.257 2.646-3.066 0-5.503-.877-7.313-2.632-1.809-1.755-2.715-4.171-2.715-7.249m4.289-.133c0 2.19.541 3.851 1.618 4.98 1.079 1.131 2.447 1.695 4.106 1.695 1.66 0 3.02-.561 4.088-1.682 1.063-1.122 1.595-2.804 1.595-5.05 0-2.216-.518-3.87-1.554-4.96-1.036-1.091-2.412-1.636-4.129-1.636-1.715 0-3.098.552-4.148 1.655-1.049 1.107-1.576 2.771-1.576 4.995"/><path d="m33.999 42v-20h4.03v8.881l8.142-8.881h5.42l-7.517 7.79 7.925 12.21h-5.215l-5.486-9.387-3.269 3.343v6.04h-4.03"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="m12 32.1c0-2 .3-3.6.9-5 .5-1 1.1-1.9 1.9-2.7.8-.8 1.7-1.4 2.7-1.7 1.3-.5 2.8-.8 4.4-.8 3 0 5.5.9 7.3 2.6 1.8 1.8 2.7 4.2 2.7 7.4 0 3.1-.9 5.6-2.7 7.3-1.7 1.9-4.1 2.8-7.2 2.8-3.1 0-5.5-.9-7.3-2.6-1.8-1.8-2.7-4.2-2.7-7.3m4.3-.1c0 2.2.5 3.8 1.6 5 1.1 1.1 2.4 1.7 4.1 1.7 1.7 0 3-.6 4.1-1.7 1.1-1.1 1.6-2.8 1.6-5 0-2.2-.5-3.9-1.6-5s-2.4-1.6-4.1-1.6c-1.7 0-3.1.6-4.1 1.7-1.1 1-1.6 2.7-1.6 4.9"/><path d="M34,42V22h4v8.9l8.1-8.9h5.4l-7.5,7.8L52,42h-5.2l-5.5-9.4L38,36v6H34z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f198.svg b/build/js/jsxc/lib/emojione/assets/svg/1f198.svg
index 36b2723..fef773a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f198.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f198.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.476,62,2,57.523,2,52V12C2,6.477,6.476,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m22.99 34.616c-.352-.795-.851-1.516-1.484-2.142-.634-.627-1.364-1.121-2.175-1.472-.853-.37-1.749-.558-2.665-.558-1.91 0-3.934-1.89-3.934-3.674 0-2.01 1.664-3.646 3.711-3.646 2.046 0 3.928 1.611 3.928 3.622h3.181c0-.914-.182-1.801-.543-2.636-.348-.807-.844-1.531-1.477-2.152-.631-.62-1.368-1.108-2.19-1.45-.849-.354-1.969-.508-2.899-.508s-1.833.179-2.682.533c-.822.34-1.56.828-2.19 1.448-.633.623-1.129 1.347-1.477 2.153-.361.836-.543 1.723-.543 2.637 0 1.685.804 3.41 2.201 4.736 1.383 1.311 3.174 2.063 4.913 2.063 1.938 0 3.705 1.744 3.705 3.658 0 2.01-1.664 3.646-3.711 3.646-2.046 0-3.928-1.658-3.928-3.668h-3.179c0 .913.182 1.8.543 2.635.348.808.844 1.531 1.477 2.152.631.62 1.368 1.108 2.19 1.45.848.356 1.968.557 2.898.557.931 0 1.833-.179 2.682-.533.822-.34 1.56-.828 2.19-1.45.633-.621 1.129-1.345 1.477-2.151.361-.836.543-1.723.543-2.637 0-.893-.189-1.772-.562-2.613"/><path d="m39 24.14c-.354-.809-.858-1.533-1.5-2.156-.642-.622-1.391-1.111-2.226-1.452-.862-.354-1.779-.535-2.723-.535s-1.861.181-2.726.534c-.833.341-1.582.83-2.224 1.452-.644.623-1.148 1.348-1.5 2.156-.365.838-.551 1.727-.551 2.641v10.435c0 .915.186 1.804.551 2.64.352.81.856 1.534 1.5 2.156.642.622 1.391 1.111 2.224 1.453.864.353 1.781.533 2.726.533s1.861-.18 2.724-.533c.835-.342 1.584-.831 2.226-1.453s1.146-1.347 1.5-2.156c.365-.836.551-1.725.551-2.64v-10.435c-.001-.914-.187-1.803-.552-2.64m-6.449 16.726c-2.078 0-3.77-1.637-3.77-3.651v-10.435c0-2.01 1.691-3.652 3.77-3.652s3.77 1.639 3.77 3.652v10.435c-.001 2.01-1.692 3.651-3.77 3.651"/><path d="m54.993 34.616c-.354-.795-.854-1.516-1.485-2.142-.634-.627-1.367-1.121-2.175-1.472-.855-.37-1.752-.559-2.665-.559-1.914 0-3.935-1.889-3.935-3.673 0-2.01 1.664-3.646 3.711-3.646 2.046 0 3.927 1.611 3.927 3.622h3.181c0-.914-.183-1.801-.543-2.636-.346-.807-.843-1.531-1.475-2.152-.633-.621-1.37-1.108-2.19-1.45-.852-.354-1.97-.508-2.9-.508s-1.833.179-2.685.532c-.819.341-1.558.829-2.188 1.45-.634.622-1.131 1.346-1.477 2.152-.36.836-.543 1.723-.543 2.637 0 1.684.802 3.41 2.201 4.736 1.384 1.311 3.175 2.063 4.915 2.063 1.938 0 3.703 1.744 3.703 3.658 0 2.01-1.665 3.646-3.712 3.646-2.046 0-3.926-1.658-3.926-3.67h-3.182c0 .914.183 1.801.543 2.637.346.808.843 1.53 1.477 2.152.631.62 1.369 1.108 2.188 1.45.853.355 1.971.557 2.901.557s1.833-.179 2.685-.533c.82-.34 1.558-.828 2.19-1.449.632-.622 1.129-1.346 1.475-2.152.36-.836.543-1.723.543-2.637 0-.893-.189-1.772-.559-2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><g fill="#fff"><path d="m23 34.6c-.4-.8-.9-1.5-1.5-2.1-.6-.6-1.4-1.1-2.2-1.5-.9-.4-1.7-.6-2.7-.6-1.9 0-3.9-1.9-3.9-3.7 0-2 1.7-3.6 3.7-3.6 2 0 3.9 1.6 3.9 3.6h3.2c0-.9-.2-1.8-.5-2.6-.3-.8-.8-1.5-1.5-2.2-.6-.6-1.4-1.1-2.2-1.5-.8-.4-2-.5-2.9-.5s-1.8.2-2.7.5c-.8.3-1.6.8-2.2 1.4-.6.6-1.1 1.3-1.5 2.2-.4.8-.5 1.7-.5 2.6 0 1.7.8 3.4 2.2 4.7 1.4 1.3 3.2 2.1 4.9 2.1 1.9 0 3.7 1.7 3.7 3.7 0 2-1.7 3.6-3.7 3.6-2 0-3.9-1.7-3.9-3.7h-3.1c0 .9.2 1.8.5 2.6.3.8.8 1.5 1.5 2.2.6.6 1.4 1.1 2.2 1.4.8.4 2 .6 2.9.6.9 0 1.8-.2 2.7-.5.8-.3 1.6-.8 2.2-1.5.6-.6 1.1-1.3 1.5-2.2.4-.8.5-1.7.5-2.6 0-.7-.2-1.5-.6-2.4"/><path d="m39 24.1c-.4-.8-.9-1.5-1.5-2.2s-1.4-1.1-2.2-1.5c-.9-.4-1.8-.5-2.7-.5s-1.9.2-2.7.5c-.8.3-1.6.8-2.2 1.5-.6.6-1.1 1.3-1.5 2.2-.4.8-.6 1.7-.6 2.6v10.4c0 .9.2 1.8.6 2.6.4.8.9 1.5 1.5 2.2.6.6 1.4 1.1 2.2 1.5.9.4 1.8.5 2.7.5.9 0 1.9-.2 2.7-.5.8-.3 1.6-.8 2.2-1.5.6-.6 1.1-1.3 1.5-2.2.4-.8.6-1.7.6-2.6v-10.3c0-.9-.2-1.8-.6-2.7m-6.4 16.8c-2.1 0-3.8-1.6-3.8-3.7v-10.4c0-2 1.7-3.7 3.8-3.7s3.8 1.6 3.8 3.7v10.4c-.1 2-1.8 3.7-3.8 3.7"/><path d="m55 34.6c-.4-.8-.9-1.5-1.5-2.1-.6-.6-1.4-1.1-2.2-1.5-.9-.4-1.8-.6-2.7-.6-1.9 0-3.9-1.9-3.9-3.7 0-2 1.7-3.6 3.7-3.6 2 0 3.9 1.6 3.9 3.6h3.2c0-.9-.2-1.8-.5-2.6-.3-.8-.8-1.5-1.5-2.2-.6-.6-1.4-1.1-2.2-1.5-.9-.4-2-.5-2.9-.5s-1.8.2-2.7.5c-.8.3-1.6.8-2.2 1.5-.6.6-1.1 1.3-1.5 2.2-.4.8-.5 1.7-.5 2.6 0 1.7.8 3.4 2.2 4.7 1.4 1.3 3.2 2.1 4.9 2.1 1.9 0 3.7 1.7 3.7 3.7 0 2-1.7 3.6-3.7 3.6-2 0-3.9-1.7-3.9-3.7h-3.2c0 .9.2 1.8.5 2.6.3.8.8 1.5 1.5 2.2.6.6 1.4 1.1 2.2 1.4.9.4 2 .6 2.9.6s1.8-.2 2.7-.5c.8-.3 1.6-.8 2.2-1.4.6-.6 1.1-1.3 1.5-2.2.4-.8.5-1.7.5-2.6.1-.9-.1-1.7-.5-2.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f199.svg b/build/js/jsxc/lib/emojione/assets/svg/1f199.svg
index dc57b05..f5bc638 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f199.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f199.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m12 22h4.051v10.65c0 1.689.051 2.785.151 3.285.173.805.587 1.452 1.238 1.938.652.488 1.544.73 2.676.73 1.15 0 2.02-.228 2.601-.69.584-.461.936-1.025 1.055-1.695.118-.671.178-1.784.178-3.34v-10.878h4.05v10.328c0 2.36-.109 4.03-.328 5-.219.976-.623 1.798-1.211 2.469-.589.671-1.376 1.205-2.361 1.602-.986.398-2.273.598-3.86.598-1.916 0-3.37-.219-4.359-.65-.991-.435-1.773-.999-2.348-1.691-.575-.693-.954-1.42-1.137-2.179-.264-1.127-.396-2.792-.396-4.992v-10.488"/><path d="m31 42v-20h5.922c2.244 0 3.707.1 4.389.299 1.047.302 1.924.953 2.63 1.959.707 1 1.06 2.303 1.06 3.896 0 1.228-.203 2.259-.61 3.095-.407.838-.925 1.495-1.553 1.974-.627.477-1.265.792-1.913.946-.881.191-2.157.287-3.827.287h-2.405v7.544h-3.693m3.691-16.618v5.677h2.02c1.455 0 2.428-.105 2.918-.313.49-.21.875-.538 1.152-.984.279-.445.418-.963.418-1.556 0-.727-.193-1.327-.585-1.8-.391-.473-.886-.77-1.483-.888-.441-.09-1.326-.137-2.656-.137h-1.782z"/><path d="m48 42v-4h4v4h-4"/><path d="m48 22h4v12h-4z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="m12 22h4.1v10.7c0 1.7.1 2.8.2 3.3.2.8.6 1.5 1.2 1.9.7.5 1.5.7 2.7.7 1.1 0 2-.2 2.6-.7.6-.5.9-1 1.1-1.7.1-.7.2-1.8.2-3.3v-10.9h4v10.3c0 2.4-.1 4-.3 5-.2 1-.6 1.8-1.2 2.5-.6.7-1.4 1.2-2.4 1.6-1 .4-2.3.6-3.9.6-1.9 0-3.4-.2-4.4-.7-1-.4-1.8-1-2.3-1.7-.6-.7-1-1.4-1.1-2.2-.3-1.1-.4-2.8-.4-5v-10.4z"/><path d="m31 42v-20h5.9c2.2 0 3.7.1 4.4.3 1 .3 1.9 1 2.6 2 .7 1 1.1 2.3 1.1 3.9 0 1.2-.2 2.3-.6 3.1-.4.8-.9 1.5-1.6 2-.6.5-1.3.8-1.9.9-.9.2-2.2.3-3.8.3h-2.4v7.5h-3.7m3.7-16.6v5.7h2c1.5 0 2.4-.1 2.9-.3.5-.2.9-.5 1.2-1 .3-.4.4-1 .4-1.6 0-.7-.2-1.3-.6-1.8-.4-.5-.9-.8-1.5-.9-.4-.1-1.3-.1-2.7-.1h-1.7"/><path d="m48 42v-4h4v4h-4"/><path d="m48 22h4v12h-4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f19a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f19a.svg
index 5eb8305..6d2545d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f19a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f19a.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m44 30.17c-2.377 0-4.311-1.912-4.311-4.262 0-2.348 1.934-4.26 4.311-4.26 2.373 0 4.307 1.912 4.307 4.26h3.691c0-4.363-3.588-7.912-7.998-7.912-4.412 0-8 3.549-8 7.912s3.59 7.914 8 7.914c2.373 0 4.307 1.912 4.307 4.26 0 2.35-1.934 4.262-4.307 4.262-2.377 0-4.311-1.912-4.311-4.262h-3.691c0 4.363 3.59 7.914 8 7.914 4.41 0 7.998-3.551 7.998-7.914s-3.588-7.912-7.998-7.912"/><path d="M24.58 46 34 18 30.02 18 23.16 38.38 15.998 18 12 18 21.848 46z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#eda454"/><g fill="#fff"><path d="m26.3 19.7h5.4l-8.4 24.6h-4.9l-8.4-24.6h5.5l5.4 18.7 5.4-18.7"/><path d="m38.4 36.8c.2 1.1.5 2 .9 2.5.9 1 2.3 1.5 4.4 1.5 1.2 0 2.3-.1 3-.4 1.5-.5 2.2-1.5 2.2-2.9 0-.8-.4-1.4-1.1-1.9-.7-.4-1.9-.8-3.4-1.2l-2.7-.6c-2.6-.6-4.4-1.2-5.4-1.9-1.7-1.1-2.5-2.9-2.5-5.3 0-2.2.8-4 2.4-5.5 1.6-1.5 4-2.2 7.2-2.2 2.6 0 4.9.7 6.7 2.1 1.9 1.4 2.8 3.4 2.9 6h-5c-.1-1.5-.8-2.5-2-3.2-.8-.4-1.8-.6-3.1-.6-1.4 0-2.5.3-3.3.8-.8.5-1.2 1.3-1.2 2.2 0 .9.4 1.5 1.2 2 .5.3 1.6.6 3.3 1l4.3 1c1.9.4 3.3 1 4.3 1.8 1.5 1.2 2.2 2.8 2.2 5 0 2.3-.9 4.1-2.6 5.6-1.5 1.7-3.9 2.4-7.1 2.4-3.3 0-5.8-.7-7.7-2.2-1.9-1.5-2.8-3.5-2.8-6 0 0 4.9 0 4.9 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e8.svg
index cf43383..23d7009 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="4" gradientUnits="userSpaceOnUse" x1="-1315.6" x2="-1314.6" gradientTransform="matrix(1.972-1.9014 2.3361 1.2306 6043.35-687.34)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="5" gradientUnits="userSpaceOnUse" x1="-1169.19" x2="-1168.19" gradientTransform="matrix(4.2109 1.6428 2.7757-3.3581 9299.63-3284.31)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="3" gradientUnits="userSpaceOnUse" x1="-1215.36" x2="-1214.36" gradientTransform="matrix(-.6286-2.665 2.2494-1.3805 2858.57-5410.28)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="1" gradientUnits="userSpaceOnUse" x1="47.56" x2="52.91"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="-1163.2" x2="-1162.2" gradientTransform="matrix(4.7034 4.7034 4.7034-4.7034 12698.08-1674.76)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="2" gradientUnits="userSpaceOnUse" x1="-1246.38" x2="-1245.38" gradientTransform="matrix(1.1995-5.0853-4.2924-2.6342-4604.24-10076.67)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient></defs><path fill="#2a5f9e" d="m11.873 12.01h20.75v20.75h-20.75z"/><path fill="#fff" d="m18.785 8.146v5.864h-7.312l14.4 18h6v-7.503z"/><path fill="#2a5f9e" d="m31.873 2.01v30h-30c0 16.568 13.432 30 30 30s30-13.432 30-30-13.432-30-30-30"/><path fill="#fff" d="m10.873 18.919h-5.988c-1.924 3.957-3.01 8.394-3.01 13.09h12v-18.09h-3v5"/><path fill="#ed4c5c" d="m31.873 27.07l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="m18.785 5.02v5.988h-7.912v3h21v-12c-4.693 0-9.131 1.088-13.09 3.01"/><path fill="#ed4c5c" d="m31.873 5.01h-13.09c-6.05 2.94-10.971 7.857-13.912 13.912v13.09h6v-21h21v-6"/><g fill="#fff"><path d="m49.926 27.926c.572-1.522 1.924-2.422 3.02-2.01.303.113.551.313.746.575-.053-.924-.484-1.689-1.203-1.959-1.098-.412-2.451.488-3.02 2.01-.414 1.104-.303 2.232.211 2.926-.028-.487.049-1.017.246-1.542"/><path d="m42.1 24.512c-1.098-.412-2.45.488-3.02 2.01-.252.669-.289 1.335-.182 1.919-.502.385-1.186.649-1.957.699-.559.036-1.09-.043-1.547-.211.516.691 1.561 1.127 2.738 1.052 1.623-.104 2.877-1.136 2.803-2.307-.027-.421-.233-.795-.548-1.106.644-.648 1.459-.938 2.171-.671.301.113.551.313.744.575-.05-.925-.482-1.69-1.202-1.96"/><path d="m59.59 27.552c-.951-1.131-2.264-1.364-2.928-.521-.182.23-.297.519-.348.838-.285-.857-.234-1.733.201-2.285.666-.843 1.977-.609 2.928.521.691.821 1 1.888.867 2.734-.15-.452-.392-.897-.72-1.287"/><path d="m36.25 27.15c.52-1.096.236-2.157-.629-2.368-.238-.058-.494-.046-.752.024.545-.504 1.221-.764 1.789-.626.865.212 1.148 1.272.629 2.368-.377.796-1.07 1.391-1.754 1.578.287-.265.537-.598.717-.976"/></g><path d="m42.648 31.804c0 0 .055 5.05.131 5.52.078.468.361 3.367 4.537 5.107 0 0 3.227-1.369 4.049-3.271.82-1.901.658-5.478.658-5.478v-1.951l-9.375.073"/><path fill="#fff" d="m42.986 32.18c0 0 .051 4.694.123 5.128.072.436.336 3.129 4.215 4.746 0 0 2.998-1.272 3.762-3.039.762-1.766.611-5.09.611-5.09v-1.812l-8.711.067"/><g fill="#1b81b6"><path d="m51.746 33.705l-1.286-.395-1.567.72-1.593-.561-1.411.561-1.649-.72-1.246.467.006 1.619 1.25-.466 1.646.718 1.414-.558 1.59.558 1.57-.718 1.282.4-.006-1.625"/><path d="m43.852 39.42c.148-.047 2.09.641 2.09.641l1.412-.562 1.586.562c0 0 1.846-.699 1.979-.67.471.106-2.74 2.664-3.555 2.664-.813 0-3.932-2.501-3.512-2.635"/><path d="m51.36 38.02c-.244-.114-.996-.258-.996-.258l-1.541.719-1.561-.562-1.389.562-1.617-.719c0 0-.805.218-1.045.355-.109.064-.188-1.24-.188-1.24l1.227-.466 1.615.719 1.391-.562 1.561.562 1.541-.719 1.256.396c0 .001-.094 1.288-.254 1.213"/></g><path fill="url(#0)" d="m50.705 39.719l-.004.003-.101.128.102-.127.003-.004m-3.215-5.537l-4.111 4.388c.162.433.393.849.715 1.253l3.416-3.488 3.195 3.385c.336-.445.563-.904.715-1.388l-3.93-4.15"/><path d="m44.553 28.26l.637 1.486h4.19l.64-1.486-2.73-6.333z"/><path fill="#7ed16d" d="m44.834 28.13l.576 1.331h3.75l.578-1.331-2.448-5.682z"/><path fill="#93695a" d="m44.12 26.93l2.11 2.581 2.52-.103.59-1.768-1.84-.108-1.19.598z"/><path fill="#6baaa7" d="m47.09 29.09l-3.213.946 1.516 1.813-.012 1.651 1.598-.247c0 0 .752-1.464.855-1.493.104-.028 1.506.468 1.506.468l.326-.813 1.801-.634-3.104-.744.111-.765-1.384-.182"/><path fill="url(#1)" d="m51.93 29.77c-.555.348-1.187.453-1.786.364.732-.146 1.362-.676 1.585-1.442.234-.797-.035-1.621-.621-2.135.098.354.1.739-.012 1.118-.318 1.098-1.539 1.91-2.566 1.408-.498-.243-.58-.855-.625-1.228-.34.68-.357 1.486-.048 2.212-.062.099-.125.196-.169.309-.375.967.104 2.057 1.072 2.432.703.272 1.469.094 1.98-.394-.33.059-.678.031-1.012-.099-.568-.221-.962-.69-1.119-1.235.854.692 2.079.812 3.061.195.898-.563 1.34-1.576 1.221-2.563-.211.421-.536.79-.961 1.058"/><path fill="url(#2)" d="m42.588 25.895c.541 1.533.082 3.092-1.023 3.481-.303.107-.623.114-.939.038.633.675 1.455.984 2.18.729 1.105-.39 1.564-1.948 1.023-3.481-.391-1.113-1.203-1.906-2.041-2.107.333.354.614.811.8 1.34"/><path fill="url(#3)" d="m36.08 27.19c-.283.803-.045 1.621.535 1.825.16.056.328.06.494.02-.332.354-.764.516-1.143.382-.58-.204-.82-1.021-.537-1.825.205-.583.631-.999 1.07-1.104-.175.185-.321.424-.419.702"/><path fill="url(#4)" d="m58.02 25.417c-.836.167-1.416.79-1.295 1.393.031.165.113.312.232.434-.473-.105-.832-.393-.91-.788-.121-.603.459-1.226 1.295-1.393.607-.121 1.18.032 1.496.356-.249-.056-.53-.06-.818-.002"/><path fill="url(#5)" d="m55.912 27.458c-1.299.321-2.504-.351-2.693-1.5-.051-.316-.02-.634.078-.937-.617.532-.961 1.304-.838 2.057.188 1.15 1.395 1.821 2.693 1.501.943-.233 1.676-.925 1.934-1.726-.326.28-.727.495-1.174.605"/><path fill="#74948f" d="m36.13 43.28c-1.26-.505 2.9-2.749 4.736-2.646 1.41.079 4.213 2.49 3.195 2.774-4.999 1.397-4.826 1.117-7.931-.128"/><path fill="#e5c9bd" d="m40.564 31.82c.074-.415.516-1.192.84-1.463.299-.252 1.084-.58 1.471-.53.271.034 1 .36.898.612l-.277-.046c-.293.146-.383.923-.607 1.162-.18.192-.771.315-.898.545-.119.219.111.991.111.991l-1.455.132c-.001.001-.143-1.057-.083-1.403"/><path fill="#c6a397" d="m40.992 36.859c-.033.098.707 1.758.873 2.453.299 1.248-1.602 3.293-1.471 2.286.174-1.321-.473-2.556-.473-2.556l1.071-2.183"/><g fill="#e5c9bd"><path d="m40.461 37.946c-.063.082.133 1.89.078 2.603-.098 1.279-2.535 2.644-2.102 1.725.57-1.204.334-2.576.334-2.576l1.69-1.752"/><path d="m41.457 33.3c.027.1 1.572 1.059 2.098 1.541.945.867.518 3.627.063 2.719-.598-1.19-1.822-1.852-1.822-1.852l-.339-2.408"/></g><path fill="#d66b3c" d="m41.01 32.432c-1.23.122-2.861 2.494-3.363 3.624-.529 1.195-1.205 4.964-.451 5.212.887.293 3.936-2.029 4.646-3.258.586-1.019.9-3.613.412-4.682-.16-.349-.863-.933-1.244-.896"/><path fill="#74948f" d="m58.55 43.28c1.258-.505-2.9-2.749-4.734-2.646-1.412.079-4.215 2.49-3.195 2.774 4.997 1.397 4.821 1.117 7.929-.128"/><path fill="#e5c9bd" d="m54.12 31.82c-.074-.415-.516-1.192-.84-1.463-.299-.252-1.082-.58-1.471-.53-.27.034-1 .36-.898.612l.277-.046c.295.146.381.923.605 1.162.18.192.775.315.9.545.119.219-.113.991-.113.991l1.457.132c.001.001.144-1.057.083-1.403"/><path fill="#c6a397" d="m53.693 36.859c.033.098-.707 1.758-.875 2.453-.297 1.248 1.604 3.293 1.473 2.286-.172-1.321.473-2.556.473-2.556l-1.071-2.183"/><g fill="#e5c9bd"><path d="m54.23 37.946c.063.082-.133 1.89-.078 2.603.1 1.279 2.535 2.644 2.102 1.725-.57-1.204-.334-2.576-.334-2.576l-1.69-1.752"/><path d="m53.23 33.3c-.027.1-1.57 1.059-2.098 1.541-.947.867-.518 3.627-.063 2.719.598-1.19 1.822-1.852 1.822-1.852l.339-2.408"/></g><path fill="#d66b3c" d="m53.676 32.432c1.229.122 2.861 2.494 3.363 3.624.529 1.195 1.205 4.964.451 5.212-.887.293-3.936-2.029-4.645-3.258-.588-1.019-.902-3.613-.412-4.682.159-.349.862-.933 1.243-.896"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="4" gradientUnits="userSpaceOnUse" x1="-1706.4161" x2="-1705.4159" gradientTransform="matrix(1.972-1.9014-2.3361-1.2306 7188.126-1233.3759)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="5" gradientUnits="userSpaceOnUse" x1="-1426.4875" x2="-1425.4875" gradientTransform="matrix(4.2109 1.6428-2.7757 3.3581 11406.1465-4099.3735)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="3" gradientUnits="userSpaceOnUse" x1="-1740.8667" x2="-1739.8663" gradientTransform="matrix(-.6286-2.665-2.2494 1.3805 3029.9341-7118.667)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="1" gradientUnits="userSpaceOnUse" x1="47.5603" x2="52.9101" gradientTransform="matrix(1 0 0-1 0 66)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="-1458.5909" x2="-1457.5909" gradientTransform="matrix(4.7034 4.7034-4.7034 4.7034 15636.8662-1834.8796)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient><linearGradient id="2" gradientUnits="userSpaceOnUse" x1="-1618.0094" x2="-1617.0095" gradientTransform="matrix(1.1995-5.0853 4.2924 2.6342-5986.9429-13088.627)"><stop stop-color="#288549"/><stop offset="1" stop-color="#288549"/></linearGradient></defs><path fill="#2a5f9e" d="m11.9 12h20.8v20.8h-20.8z"/><path fill="#fff" d="m18.8 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m31.9 2v30h-30c0 16.6 13.4 30 30 30s30-13.4 30-30-13.5-30-30-30" fill="#2a5f9e"/><path d="m10.9 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m31.9 27.1l-13-16.1h-6l17 21h2z"/><path d="m18.8 5v6h-7.9v3h21v-12c-4.7 0-9.2 1.1-13.1 3" fill="#fff"/><path d="m31.9 5h-13.1c-6.1 2.9-11 7.9-13.9 13.9v13.1h6v-21h21c0 0 0-6 0-6" fill="#ed4c5c"/><g fill="#fff"><path d="m49.9 27.9c.6-1.5 1.9-2.4 3-2 .3.1.6.3.7.6-.1-.9-.5-1.7-1.2-2-1.1-.4-2.5.5-3 2-.4 1.1-.3 2.2.2 2.9.1-.4.1-.9.3-1.5"/><path d="m42.1 24.5c-1.1-.4-2.4.5-3 2-.3.7-.3 1.3-.2 1.9-.5.4-1.2.6-2 .7-.6 0-1.1 0-1.5-.2.5.7 1.6 1.1 2.7 1.1 1.6-.1 2.9-1.1 2.8-2.3 0-.4-.2-.8-.5-1.1.6-.6 1.5-.9 2.2-.7.3.1.6.3.7.6 0-1-.5-1.7-1.2-2"/><path d="m59.6 27.6c-1-1.1-2.3-1.4-2.9-.5-.2.2-.3.5-.3.8-.3-.9-.2-1.7.2-2.3.7-.8 2-.6 2.9.5.7.8 1 1.9.9 2.7-.2-.4-.5-.9-.8-1.2"/><path d="m36.2 27.1c.5-1.1.2-2.2-.6-2.4-.2-.1-.5 0-.8 0 .5-.5 1.2-.8 1.8-.6.9.2 1.1 1.3.6 2.4-.4.8-1.1 1.4-1.8 1.6.4-.2.7-.6.8-1"/></g><path d="m42.6 31.8c0 0 .1 5.1.1 5.5.1.5.4 3.4 4.5 5.1 0 0 3.2-1.4 4-3.3.8-1.9.7-5.5.7-5.5v-2l-9.3.2"/><path d="m43 32.2c0 0 .1 4.7.1 5.1.1.4.3 3.1 4.2 4.7 0 0 3-1.3 3.8-3 .8-1.8.6-5.1.6-5.1v-1.8l-8.7.1" fill="#fff"/><g fill="#1b81b6"><path d="m51.7 33.7l-1.2-.4-1.6.7-1.6-.5-1.4.5-1.7-.7-1.2.5v1.6l1.2-.5 1.7.7 1.4-.5 1.6.5 1.6-.7 1.3.4-.1-1.6"/><path d="m43.9 39.4c.1 0 2.1.6 2.1.6l1.4-.6 1.6.6c0 0 1.8-.7 2-.7.5.1-2.7 2.7-3.6 2.7-.8.1-4-2.4-3.5-2.6"/><path d="m51.4 38c-.2-.1-1-.3-1-.3l-1.5.7-1.6-.6-1.4.6-1.6-.7c0 0-.8.2-1 .4-.1.1-.2-1.2-.2-1.2l1.2-.5 1.6.7 1.4-.6 1.6.6 1.5-.7 1.3.4c-.1 0-.2 1.3-.3 1.2"/></g><path d="m50.7 39.7l-.1.1.1-.1m-3.2-5.5l-4.1 4.4c.2.4.4.8.7 1.3l3.4-3.5 3.2 3.4c.3-.4.6-.9.7-1.4l-3.9-4.2" fill="url(#0)"/><path d="m44.6 28.3l.6 1.4h4.2l.6-1.4-2.7-6.4z"/><path fill="#7ed16d" d="m44.8 28.1l.6 1.4h3.8l.5-1.4-2.4-5.7z"/><path fill="#93695a" d="m44.1 26.9l2.1 2.6 2.6-.1.5-1.8-1.8-.1-1.2.6z"/><path d="m47.1 29.1l-3.2.9 1.5 1.8v1.7l1.6-.2c0 0 .8-1.5.9-1.5.1 0 1.5.5 1.5.5l.3-.8 1.8-.6-3.1-.9.1-.8-1.4-.1" fill="#6baaa7"/><path d="m51.9 29.8c-.6.3-1.2.5-1.8.4.7-.1 1.4-.7 1.6-1.4.2-.8 0-1.6-.6-2.1.1.4.1.7 0 1.1-.3 1.1-1.5 1.9-2.6 1.4-.5-.2-.6-.9-.6-1.2-.3.7-.4 1.5 0 2.2-.1.1-.1.2-.2.3-.4 1 .1 2.1 1.1 2.4.7.3 1.5.1 2-.4-.3.1-.7 0-1-.1-.6-.2-1-.7-1.1-1.2.9.7 2.1.8 3.1.2.9-.6 1.3-1.6 1.2-2.6-.3.3-.6.7-1.1 1" fill="url(#1)"/><path d="m42.6 25.9c.5 1.5.1 3.1-1 3.5-.3.1-.6.1-.9 0 .6.7 1.5 1 2.2.7 1.1-.4 1.6-1.9 1-3.5-.4-1.1-1.2-1.9-2-2.1.2.4.5.9.7 1.4" fill="url(#2)"/><path d="m36.1 27.2c-.3.8 0 1.6.5 1.8.2.1.3.1.5 0-.3.4-.8.5-1.1.4-.6-.2-.8-1-.5-1.8.2-.6.6-1 1.1-1.1-.3.2-.4.4-.5.7" fill="url(#3)"/><path d="m58 25.4c-.8.2-1.4.8-1.3 1.4 0 .2.1.3.2.4-.5-.1-.8-.4-.9-.8-.1-.6.5-1.2 1.3-1.4.6-.1 1.2 0 1.5.4-.2 0-.5 0-.8 0" fill="url(#4)"/><path d="m55.9 27.5c-1.3.3-2.5-.4-2.7-1.5-.1-.3 0-.6.1-.9-.6.5-1 1.3-.8 2.1.2 1.1 1.4 1.8 2.7 1.5.9-.2 1.7-.9 1.9-1.7-.3.1-.7.3-1.2.5" fill="url(#5)"/><path d="m36.1 43.3c-1.3-.5 2.9-2.7 4.7-2.6 1.4.1 4.2 2.5 3.2 2.8-4.9 1.3-4.8 1-7.9-.2" fill="#74948f"/><path d="m40.6 31.8c.1-.4.5-1.2.8-1.5.3-.3 1.1-.6 1.5-.5.3 0 1 .4.9.6h-.3c-.3.1-.4.9-.6 1.2-.2.2-.8.3-.9.5-.1.2.1 1 .1 1l-1.5.1c0 0-.1-1 0-1.4" fill="#e5c9bd"/><path d="m41 36.9c0 .1.7 1.8.9 2.5.3 1.2-1.6 3.3-1.5 2.3.2-1.3-.5-2.6-.5-2.6l1.1-2.2" fill="#c6a397"/><g fill="#e5c9bd"><path d="m40.5 37.9c-.1.1.1 1.9.1 2.6-.1 1.3-2.5 2.6-2.1 1.7.6-1.2.3-2.6.3-2.6l1.7-1.7"/><path d="m41.5 33.3c0 .1 1.6 1.1 2.1 1.5.9.9.5 3.6.1 2.7-.6-1.2-1.8-1.9-1.8-1.9l-.4-2.3"/></g><path d="m41 32.4c-1.2.1-2.9 2.5-3.4 3.6-.5 1.2-1.2 5-.5 5.2.9.3 3.9-2 4.6-3.3.6-1 .9-3.6.4-4.7 0-.2-.7-.8-1.1-.8" fill="#d66b3c"/><path d="m58.6 43.3c1.3-.5-2.9-2.7-4.7-2.6-1.4.1-4.2 2.5-3.2 2.8 4.9 1.3 4.7 1 7.9-.2" fill="#74948f"/><path d="m54.1 31.8c-.1-.4-.5-1.2-.8-1.5-.3-.3-1.1-.6-1.5-.5-.3 0-1 .4-.9.6h.3c.3.1.4.9.6 1.2.2.2.8.3.9.5.1.2-.1 1-.1 1l1.5.1c-.1 0 .1-1 0-1.4" fill="#e5c9bd"/><path d="m53.7 36.9c0 .1-.7 1.8-.9 2.5-.3 1.2 1.6 3.3 1.5 2.3-.2-1.3.5-2.6.5-2.6l-1.1-2.2" fill="#c6a397"/><g fill="#e5c9bd"><path d="m54.2 37.9c.1.1-.1 1.9-.1 2.6.1 1.3 2.5 2.6 2.1 1.7-.6-1.2-.3-2.6-.3-2.6l-1.7-1.7"/><path d="m53.2 33.3c0 .1-1.6 1.1-2.1 1.5-.9.9-.5 3.6-.1 2.7.6-1.2 1.8-1.9 1.8-1.9l.4-2.3"/></g><path d="m53.7 32.4c1.2.1 2.9 2.5 3.4 3.6.5 1.2 1.2 5 .5 5.2-.9.3-3.9-2-4.6-3.3-.6-1-.9-3.6-.4-4.7 0-.2.7-.8 1.1-.8" fill="#d66b3c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e9.svg
index 896e383..0340b9d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1e9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M2,32c0,11.511,6.486,21.502,16,26.532V5.467C8.486,10.498,2,20.489,2,32z"/><path fill="#c94747" d="m62 32c0-11.511-6.486-21.502-16-26.533v53.06c9.514-5.03 16-15.02 16-26.532"/><path fill="#ffe62e" d="M32,2c-5.058,0-9.819,1.257-14,3.467v53.065C22.181,60.743,26.942,62,32,62s9.819-1.257,14-3.468V5.467
- C41.819,3.257,37.058,2,32,2z"/><path fill="#c7b37f" d="m29.22 17c1.249 0 1.962 1.225 3.308.889.993-.248 2.486-1.654 3.303-.286.322.54.2 1.112.006 1.669-.166.478-.674 1.158-.162 1.591.74.626 2.242.367 2.875-.274-.604-.026-.955-.699-.482-1.139.222-.207.439-.103.648-.212.088-.046.156-.237.252-.306.122-.088.25-.137.402-.137.215 0 .354.211.527.211.248 0 .635-.274.82.053.129.227.293.085.504.038.342-.077.62.088.834.34.188.221.303.179.552.33.181.109.29.466.456.53.704.271.741.847.444 1.477-.437.927-2.501 2.025-1.747 3.178-.135-.789 1.124-.44.816.301 1.585-1.047 3.307 1.192 3.278 2.642-.026 1.376-.63 2.45-2.01 2.84.429.18.778.629.523 1.096-.111.204-.324.339-.558.339-.407 0-.45-.342-.724.078-.545.833-.236 2.12.487 2.744.224-.337.704-.563 1.043-.213.233.241.246.652.374.936.156.35.408.625.102 1.019-.298.38-.622.241-1.02.28.857.857 1.285 1.842.94 3.076-.349 1.244-1.284 2.147-2.491 2.57-1.197.42-2.497.494-3.752.547-1.271.055-2.572.054-3.53 1.012.405.297.722.719.541 1.246-.064.188-.194.346-.359.454-.192.128-.542.103-.655.312-.256.467-1.113.291-1.449.027-.242-.19-.33.057-.517.255-.153.164-.478.487-.722.487-.245 0-.458-.235-.636-.376-.247-.193-.384-.543-.675-.365-.392.239-1.076.42-1.412-.026-.141-.188-.389-.172-.583-.28-.232-.131-.428-.327-.514-.584-.176-.53.117-.97.592-1.189-.896-.896-2.106-.91-3.298-.963-1.266-.055-2.815-.029-3.986-.572-1.016-.475-1.948-1.174-2.374-2.246-.492-1.24-.272-2.406.667-3.346-.4-.094-.792-.078-.988-.525-.206-.469.189-.67.202-1.072.007-.254.383-.741.623-.818.222-.072.46.01.609.182.205.236.335.011.469-.223.416-.724.741-1.924.044-2.622-.779.779-1.827-.773-.801-1.247-.284-.245-.665-.314-.942-.579-.236-.225-.442-.539-.59-.828-.357-.694-.408-1.483-.23-2.231.159-.669.613-1.417 1.228-1.76.706-.394 1.196-.347 1.911-.127-.119-.037.107-.598.194-.672.326-.276.567-.017.727.265.637-1.062-1.477-2.248-1.852-3.092-.18-.404-.27-1.428.424-1.434.204-.001.309-.33.456-.459.135-.118.315-.112.46-.212.116-.08.183-.24.284-.338.203-.196.466-.244.74-.21.39.049.191.122.54-.043.297-.143.454.006.746.006.232 0 .347-.308.666-.224.253.067.336.283.542.402.207.122.44.104.638.283.537.484.149 1.015-.376 1.187.518.414 1.141.559 1.797.515.544-.037 1.375-.341 1.175-1.046-.213-.755-.649-1.261-.531-2.104.089-.643.569-1.035 1.2-1.027"/><path fill="#c94747" d="m23.952 23.942h7.629v7.615h-7.629z"/><g fill="#fff"><path d="m27.53 29.938c0 0-.004.272-.08.491-.086.252-.087.252-.167.375-.107.165-.237.286-.354.361-.182.117-.366.175-.552.159-.509-.045-.746-.598-.862-1.046-.123-.477-.471-.736-.693-.563-.13.101-.137.271-.029.433.116.173.381.26.381.26l-.272.346c0 0-.585-.076-.7-.686-.043-.231.069-.663.454-.792.492-.165.807.186.958.482.208.407.298 1.155.875 1.039.314-.063.462-.52.462-.729l.229-.246.339.108.011.008"/><path d="m28 29.938c0 0 .005.272.08.491.087.252.087.252.167.375.107.165.237.286.354.361.182.117.367.175.552.159.51-.045.746-.598.862-1.046.123-.477.471-.736.693-.563.13.101.137.271.029.433-.115.173-.38.26-.38.26l.272.346c0 0 .585-.076.699-.686.043-.231-.069-.663-.454-.792-.492-.165-.806.186-.958.482-.208.407-.298 1.155-.875 1.039-.314-.063-.462-.52-.462-.729l-.229-.246-.339.108-.011.008"/></g><path fill="#ffce31" d="m28.451 26.7c.282-.305 1.152-.932 1.148-1.397-.523-.059-.026-.173.052-.483-.101.007-.202.014-.303.021.108-.372 1.046-.738 1.457-.569 1.028.423.291 2.02-.506 1.333.13-.41.657-.235.63-.591-.024-.327-.388-.544-.674-.351-.411.277-.134.88-.505 1.233-.326.517-.881.954-1.302 1.408-1.236 1.337-2.473 2.675-3.709 4.01-.711-.384 1.077-1.766 1.416-2.132.765-.829 1.531-1.657 2.296-2.484"/><path fill="#fff" d="m25.516 27.08c0 0 .25 1.242 1.102 3.104.434-.159.689-.26 1.148-.26s.715.086 1.148.26c.852-1.862 1.102-3.104 1.102-3.104l-2.25-2.895-2.25 2.895"/><g fill="#ffce31"><path d="m27.986 25.16l1.562 2.01c0 0-.208.977-.843 2.447-.246-.056-.456-.105-.718-.123l-.001-4.333"/><path d="m27.546 25.16l-1.562 2.01c0 0 .208.977.843 2.447.246-.056.457-.105.718-.123l.001-4.333"/><path d="m32.395 23.942h7.63v7.615h-7.63z"/></g><g fill="#c94747"><path d="m33.464 23.942h1.137v7.615h-1.137z"/><path d="m35.644 23.942h1.137v7.615h-1.137z"/><path d="m37.823 23.942h1.138v7.615h-1.138z"/></g><path fill="#ffce31" d="m23.98 38.16c.021.138.07.372.201.613.137.217.086.21.397.558.153.17.391.316.578.417.188.101.327.15.635.231.605.158 1.03.169 1.539.148.397-.016.701-.064.952-.099.358-.048.625-.077 1.032-.094.198-.009.385-.011.57 0 .223.013.444.047.679.094.505.101 1.018.296 1.018.296l.001-7.952-7.631-.002v5.435l.029.355"/><g fill="#c94747"><path d="m24.866 39.556l.354.209.494.175v-7.568h-.847z"/><path d="m29.11 39.901l.001-7.53h-.849v7.65c0 0 .581-.075.848-.092v-.028"/><path d="m30.799 32.372h-.846v7.556c.276.03.559.079.848.156l-.002-7.712"/><path d="m27.411 32.372v7.736c-.009.002-.566.029-.852 0v-7.735h.852"/></g><path fill="#ffce31" d="m39.997 38.16c-.021.138-.07.372-.201.613-.137.217-.086.211-.396.558-.153.17-.392.316-.578.417-.188.101-.327.151-.636.231-.604.159-1.03.169-1.538.148-.398-.016-.701-.064-.952-.098-.358-.049-.625-.078-1.032-.095-.198-.009-.385-.01-.57 0-.223.013-.443.048-.679.095-.505.101-1.024.295-1.024.295l.005-7.952 7.631-.002v5.435l-.03.355"/><g fill="#c94747"><path d="m34.35 33.01c-.293.196-.436.5-.74.676.196.383.612.282.87.465.173 0 .413.644.386.67-.344.331.113 1.177.241.935.132-.252-.381-.926.302-.731.232.066.347.795.07.995.146.274.441.109.396-.2-.081-.549.009-.789.52-.807.618-.023.479.172.815.25l.299-.004.174-.193c-.007.346-.401.681-.606.853.415.175 1.041-.575.984-.948.375.184.079.912-.076 1.14 1.049.249.089-1.788.424-1.97.904-.497-.523-.842-.873-.821-.758.044-1.864.355-2.6.128.152-.055.16-.182.261-.285-.185-.151-.563.035-.847-.153"/><path d="m34.35 36.406c-.293.196-.436.499-.74.676.195.384.612.282.87.464.174 0 .413.645.386.671-.344.331.113 1.177.241.935.132-.252-.381-.926.302-.731.232.065.347.796.07.995.146.273.441.109.396-.2-.081-.55.009-.789.52-.808.622-.022.476.17.815.25l.299-.002.174-.195c-.007.346-.401.682-.606.854.415.174 1.041-.576.984-.949.375.184.079.913-.076 1.141 1.049.249.089-1.787.424-1.971.904-.497-.522-.84-.873-.82-.758.043-1.864.355-2.6.127.152-.055.16-.182.261-.283-.186-.152-.562.035-.847-.154"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 32c0 11.5 6.5 21.5 16 26.5v-53c-9.5 5-16 15-16 26.5" fill="#2a5f9e"/><path d="m62 32c0-11.5-6.5-21.5-16-26.5v53.1c9.5-5.1 16-15.1 16-26.6" fill="#c94747"/><path d="M32,2c-5.1,0-9.8,1.3-14,3.5v53.1c4.2,2.2,8.9,3.5,14,3.5s9.8-1.3,14-3.5V5.5C41.8,3.3,37.1,2,32,2z" fill="#ffe62e"/><path d="m29.2 17c1.2 0 2 1.2 3.3.9 1-.2 2.5-1.7 3.3-.3.3.5.2 1.1 0 1.7-.2.5-.7 1.2-.2 1.6.7.6 2.2.4 2.9-.3-.6 0-1-.7-.5-1.1.2-.2.4-.1.6-.2.1 0 .2-.2.3-.3.1-.1.2-.1.4-.1.2 0 .4.2.5.2.2 0 .6-.3.8.1.1.2.3.1.5 0 .3-.1.6.1.8.3.2.2.3.2.6.3.2.1.3.5.5.5.7.3.7.8.4 1.5-.4.9-2.5 2-1.7 3.2-.1-.8 1.1-.4.8.3 1.6-1 3.3 1.2 3.3 2.6 0 1.4-.6 2.5-2 2.8.4.2.8.6.5 1.1-.1.2-.3.3-.6.3-.4 0-.5-.3-.7.1-.5.8-.2 2.1.5 2.7.2-.3.7-.6 1-.2.2.2.2.7.4.9.2.3.4.6.1 1-.3.4-.6.2-1 .3.9.9 1.3 1.8.9 3.1-.3 1.2-1.3 2.1-2.5 2.6-1.2.4-2.5.5-3.8.5-1.3.1-2.6.1-3.5 1 .4.3.7.7.5 1.2-.1.2-.2.3-.4.5-.2.1-.5.1-.7.3-.3.5-1.1.3-1.4 0-.2-.2-.3.1-.5.3-.2.2-.5.5-.7.5-.2 0-.5-.2-.6-.4-.2-.2-.4-.5-.7-.4-.4.2-1.1.4-1.4 0 0-.1-.2 0-.4-.1-.2-.1-.4-.3-.5-.6-.2-.5.1-1 .6-1.2-.9-.9-2.1-.9-3.3-1-1.3-.1-2.8 0-4-.6-1-.5-1.9-1.2-2.4-2.2-.5-1.2-.3-2.4.7-3.3-.4-.1-.8-.1-1-.5-.2-.5.2-.7.2-1.1 0-.3.4-.7.6-.8.2-.1.5 0 .6.2.2.2.3 0 .5-.2.4-.7.7-1.9 0-2.6-.8.7-1.8-.9-.8-1.4-.3-.2-.7-.3-.9-.6-.2-.2-.4-.5-.6-.8-.4-.7-.4-1.5-.2-2.2.2-.7.6-1.4 1.2-1.8.7-.4 1.2-.3 1.9-.1-.1 0 .1-.6.2-.7.3-.3.6 0 .7.3.6-1.1-1.5-2.2-1.9-3.1-.2-.4-.3-1.4.4-1.4.2 0 .3-.3.5-.5.1-.1.3-.1.5-.2.1-.1.2-.2.3-.3.2-.2.5-.2.7-.2.4 0 .2.1.5 0 .3-.1.5 0 .7 0 .2 0 .3-.3.7-.2.3.1.3.3.5.4.2.1.4.1.6.3.5.5.1 1-.4 1.2.5.4 1.1.6 1.8.5.5 0 1.4-.3 1.2-1-.2-.8-.6-1.3-.5-2.1.2-.8.7-1.2 1.3-1.2" fill="#c7b37f"/><path fill="#c94747" d="m24 23.9h7.6v7.6h-7.6z"/><g fill="#fff"><path d="m27.5 29.9c0 0 0 .3-.1.5-.1.3-.1.3-.2.4-.1.2-.2.3-.4.4-.2.1-.4.2-.6.2-.5 0-.7-.6-.9-1-.1-.5-.5-.7-.7-.6-.1.1-.1.3 0 .4.1.2.4.3.4.3l-.3.3c0 0-.6-.1-.7-.7 0-.2.1-.7.5-.8.5-.2.8.2 1 .5.2.4.3 1.2.9 1 .3-.1.5-.5.5-.7l.2-.2h.4"/><path d="m28 29.9c0 0 0 .3.1.5.1.3.1.3.2.4.1.2.2.3.4.4.2.1.4.2.6.2.5 0 .7-.6.9-1 .1-.5.5-.7.7-.6.1.1.1.3 0 .4-.1.2-.4.3-.4.3l.3.3c0 0 .6-.1.7-.7 0-.2-.1-.7-.5-.8-.5-.2-.8.2-1 .5-.2.4-.3 1.2-.9 1-.3-.1-.5-.5-.5-.7l-.2-.2h-.4"/></g><path d="m28.5 26.7c.3-.3 1.2-.9 1.1-1.4-.5-.1 0-.2.1-.5-.1 0-.2 0-.3 0 .1-.4 1-.7 1.5-.6 1 .4.3 2-.5 1.3.1-.4.7-.2.6-.6 0-.3-.4-.5-.7-.4-.4.3-.1.9-.5 1.2-.3.5-.9 1-1.3 1.4-1.2 1.3-2.5 2.7-3.7 4-.7-.4 1.1-1.8 1.4-2.1.7-.6 1.5-1.5 2.3-2.3" fill="#ffce31"/><path d="m25.5 27.1c0 0 .2 1.2 1.1 3.1.4-.2.7-.3 1.1-.3s.7.1 1.1.3c.9-1.9 1.1-3.1 1.1-3.1l-2.2-2.9-2.2 2.9" fill="#fff"/><g fill="#ffce31"><path d="m28 25.2l1.6 2c0 0-.2 1-.8 2.4-.2-.1-.5-.1-.7-.1l-.1-4.3"/><path d="m27.5 25.2l-1.6 2c0 0 .2 1 .8 2.4.2-.1.5-.1.7-.1l.1-4.3"/><path d="m32.4 23.9h7.6v7.6h-7.6z"/></g><g fill="#c94747"><path d="m33.5 23.9h1.1v7.6h-1.1z"/><path d="m35.6 23.9h1.1v7.6h-1.1z"/><path d="m37.8 23.9h1.1v7.6h-1.1z"/></g><path d="m24 38.2c0 .1.1.4.2.6.1.2.1.2.4.6.2.2.4.3.6.4.2.1.3.2.6.2.6.2 1 .2 1.5.1.4 0 .7-.1 1-.1.4 0 .6-.1 1-.1.2 0 .4 0 .6 0 .2 0 .4 0 .7.1.5.1 1 .3 1 .3v-8h-7.6v5.4.5" fill="#ffce31"/><g fill="#c94747"><path d="m24.9 39.6l.3.2.5.1v-7.5h-.8z"/><path d="m29.1 39.9v-7.5h-.8v7.6c0 0 .5-.1.8-.1"/><path d="m30.8 32.4h-.8v7.6c.3 0 .6.1.8.2v-7.8"/><path d="m27.4 32.4v7.7c0 0-.6 0-.9 0v-7.7h.9"/></g><path d="m40 38.2c0 .1-.1.4-.2.6-.1.2-.1.2-.4.6-.2.2-.4.3-.6.4-.2.1-.3.2-.6.2-.6.2-1 .2-1.5.1-.4 0-.7-.1-1-.1-.4 0-.6-.1-1-.1-.2 0-.4 0-.6 0-.2 0-.4 0-.7.1-.5.1-1 .3-1 .3v-8h7.6v5.4.5" fill="#ffce31"/><g fill="#c94747"><path d="m34.3 33c-.3.2-.4.5-.7.7.2.4.6.3.9.5.2 0 .4.6.4.7-.3.3.1 1.2.2.9.1-.3-.4-.9.3-.7.2.1.3.8.1 1 .1.3.4.1.4-.2-.1-.5 0-.8.5-.8.6 0 .5.2.8.2h.3l.2-.2c0 .3-.4.7-.6.9.4.2 1-.6 1-.9.4.2.1.9-.1 1.1 1 .2.1-1.8.4-2 .9-.5-.5-.8-.9-.8-.8 0-1.9.4-2.6.1.2-.1.2-.2.3-.3-.2-.2-.6 0-.9-.2"/><path d="m34.3 36.4c-.3.2-.4.5-.7.7.2.4.6.3.9.5.2 0 .4.6.4.7-.3.3.1 1.2.2.9.1-.3-.4-.9.3-.7.2.1.3.8.1 1 .1.3.4.1.4-.2-.1-.5 0-.8.5-.8.6 0 .5.2.8.2h.3l.2-.2c0 .3-.4.7-.6.9.4.2 1-.6 1-.9.4.2.1.9-.1 1.1 1 .2.1-1.8.4-2 .9-.5-.5-.8-.9-.8-.8 0-1.9.4-2.6.1.2-.1.2-.2.3-.3-.2-.2-.6 0-.9-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ea.svg
index 1154a4b..6610e89 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#699635" d="M32,2c-3.51,0-6.87,0.62-10,1.729V22h38.286C56.167,10.35,45.062,2,32,2z"/><path fill="#f9f9f9" d="M60.286,22H22v20h38.286C61.392,38.871,62,35.508,62,32S61.392,25.129,60.286,22z"/><path fill="#3e4347" d="M22,42v18.271C25.13,61.38,28.49,62,32,62c13.062,0,24.167-8.35,28.286-20H22z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#ed4c5c"/><path d="M32,2c-3.5,0-6.9,0.6-10,1.7V22h38.3C56.2,10.4,45.1,2,32,2z" fill="#699635"/><path d="m60.3 22h-38.3v20h38.3c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><path d="M22,42v18.3c3.1,1.1,6.5,1.7,10,1.7c13.1,0,24.2-8.3,28.3-20H22z" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1eb.svg
index 7b70179..e1998a6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1eb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M2,32c0,11.511,6.486,21.502,16,26.532V5.467C8.486,10.498,2,20.489,2,32z"/><path fill="#699635" d="m62 32c0-11.511-6.486-21.502-16-26.533v53.06c9.514-5.03 16-15.02 16-26.532"/><path fill="#ed4c5c" d="M32,2c-5.058,0-9.819,1.257-14,3.467v53.065C22.181,60.743,26.942,62,32,62c5.059,0,9.82-1.257,14-3.468
- V5.467C41.82,3.257,37.059,2,32,2z"/><g fill="#fff"><path d="m35.822 36.972h-1.142c.002.514-.092.904-.434 1.235h2.188c-.356-.282-.608-.776-.612-1.235"/><path d="m35.871 30.834l.639-.734-1.99-.03-.97-.716-3.126-.014-.905.75h-2.054l.625.73z"/><path d="m30.65 29.25l2.688-.003c.363-.205.477-.859.475-1.225-.004-1.081-.715-1.6-1.427-1.627-.107-.006-.231-.094-.259-.198-.07-.234-.052-.384-.129-.376-.068-.001-.048.137-.109.356-.033.11-.148.218-.264.224-.887.047-1.459.737-1.438 1.62.015.585.079.934.463 1.229"/><path d="m34.475 37.421l-.453-.34.016-.566-.335-.219v-.559l-.526-.24-.004-.54-.439-.138.009-.539-.614-.209-.307-.209.019-.359-1.958-.014v-.313c-.013-1.046 1.267-1.883 2.092-1.908.955-.029 2.144.91 2.144 1.914l.006 1.01h.141v-1.018c-.008-.919-1.051-2.01-2.13-2.01l3.642-.006-.006-.116h-7.552v.116l3.591.006c-.604-.006-2.082.733-2.054 2v3.592h.758l.007.658-1.046.008c-.149.012-.247-.16-.249-.448h-1.033c-.002.514-.272.871-.695 1.29h3.036l-.006-.842h.848l.166.781.695.006-.293-.787h.651l.491.795h.988l-.67-.795h1.07m-3.949-1.338h.58l.147.665h-.727v-.665m1.41 1.338l-.562-.008-.121-.664h.478l-.205-.653h.148v-.018h.077v.019l.088.004.37.65h-.479l.206.672m.657-.008l-.389-.658.561-.007.625.665h-.797"/><path d="m34.12 34.718h.135v1.025h-.135z"/><path d="m28.27 35.776h1.084v-1.264h-1.084v.289l-2.132-3.824.072-.198c0-.165-.125-.298-.28-.298-.154 0-.279.133-.279.298s.125.297.279.297l.081-.014.068.122c-.154.035-.385.53-.908.937l-.013-.018-.001.028v-.007l-.039.036c-.323.234-.548.859-.551 1.27-.004.103-.003.203 0 .307l-.027-.025.034.104c.006.152.01.303-.006.451-.019.172-.188.556-.072.653.305.241.7.79.884.979.145.135.271-.611.383-1.053l.017.016-.011-.025.028-.111c.115-.395.095-.855.35-1.24l-.007-.018.08-.104c.194-.211.615-.419.763-.559l1.288 2.309v.662"/><path d="m28.28 27.29h.983v.24h-.983z"/><path d="m28.28 27.74h.983v2.01h-.983z"/><path d="m28.772 26.2c-.213.011-.557.43-.549.808l1.091.007c.042-.394-.327-.819-.542-.815"/><path d="m28.23 31.376h1.097v1.617h-1.097z"/><path d="m28.29 33.917h1.059v.34h-1.059z"/><path d="m28.19 36.04h1.186v.705h-1.186z"/><path d="m28.338 33.612h.952l.193-.332h-1.313z"/><path d="m30.29 31.491h-.659l-.009.883c.169-.38.41-.656.668-.883"/><path d="m39.457 33.815l.033-.104-.027.025c.004-.104.004-.204 0-.307-.002-.41-.227-1.035-.551-1.27l-.037-.036-.002-.021-.014.018c-.521-.407-.752-.902-.908-.937l.068-.122.08.014c.156 0 .281-.133.281-.297s-.125-.298-.281-.298c-.154 0-.279.133-.279.298l.072.198-2.131 3.824v-.289h-1.084v1.264h1.084v-.662l1.287-2.309c.148.139.568.348.764.559l.078.104-.008.018h.002-.002.002c.254.385.234.846.35 1.24l.027.111-.012.025.018-.016c.111.441.238 1.188.383 1.053.184-.189.578-.738.885-.979.115-.098-.055-.481-.072-.653-.016-.148-.012-.298-.006-.451"/><path d="m34.764 27.29h.982v.24h-.982z"/><path d="m34.764 27.74h.982v2.01h-.982z"/><path d="m35.807 27.01c.008-.377-.336-.797-.549-.808-.215-.004-.584.421-.543.815l1.092-.007"/><path d="m34.703 31.376h1.096v1.617h-1.096z"/><path d="m34.676 33.917h1.059v.34h-1.059z"/><path d="m34.652 36.04h1.186v.705h-1.186z"/><path d="m34.547 33.28l.189.332h.955l.172-.332z"/><path d="m34.402 32.375l-.008-.883h-.66c.26.226.5.502.668.883"/><path d="m42.57 33.24c.393-.18.912-.458 1.156-.769.416-.533.234-1.436.234-1.436s-.736.265-1.266.63c-.025-.425-.188-.918-.357-1.336.334-.275.764-.678.918-1.039.264-.623-.146-1.447-.146-1.447s-.645.445-1.061.934c-.135-.404-.42-.84-.693-1.2.25-.351.561-.85.615-1.239.094-.669-.52-1.359-.52-1.359s-.504.594-.779 1.173c-.291-.436-.809-.861-1.221-1.157.154-.316.236-.647.236-.988.002-2.214-3.44-4.01-7.686-4.01-4.247 0-7.688 1.794-7.688 4.01 0 .341.083.672.238.988-.412.296-.931.721-1.221 1.157-.275-.579-.779-1.173-.779-1.173s-.613.69-.52 1.359c.054.389.364.888.614 1.239-.273.36-.557.795-.692 1.2-.417-.489-1.06-.934-1.06-.934s-.411.824-.147 1.447c.154.361.584.764.917 1.039-.171.417-.332.911-.357 1.336-.53-.365-1.266-.63-1.266-.63s-.183.902.234 1.436c.243.311.763.589 1.156.769-.056.447-.083.965.003 1.382-.605-.216-1.387-.282-1.387-.282s.059.918.602 1.326c.316.236.891.371 1.317.443.063.447.172.955.364 1.336-.642-.053-1.414.082-1.414.082s.296.871.927 1.127c.367.147.958.131 1.389.091.177.415.415.878.699 1.194-.633.115-1.344.445-1.344.445s.514.766 1.188.85c.394.049.959-.119 1.365-.27.279.356.629.742.987.975-.583.273-1.182.773-1.182.773s.696.608 1.37.516c.152-.02.322-.08.493-.16l-.806.931h12l-.807-.931c.17.08.34.141.492.16.674.093 1.369-.516 1.369-.516s-.598-.5-1.182-.773c.357-.232.709-.618.986-.975.406.15.973.318 1.367.27.674-.084 1.188-.85 1.188-.85s-.711-.33-1.344-.445c.283-.316.521-.779.699-1.194.43.04 1.021.057 1.389-.091.631-.256.928-1.127.928-1.127s-.773-.135-1.416-.082c.193-.381.303-.889.365-1.336.426-.072 1-.207 1.316-.443.543-.408.602-1.326.602-1.326s-.781.066-1.387.282c.087-.417.06-.935.005-1.382m-15.657 7.604l-.035-.025c-.288-.186-.664-.326-1.03-.431.133-.257.296-.61.389-.945h.879c-.058.229-.211.869-.203 1.401m8.913-.457c-.088.303-.055.734.006 1.111l-.564-.65h-6.534l-.564.65c.061-.377.093-.809.006-1.111-.137-.469-.615-.797-.87-.944h9.39c-.257.147-.733.475-.87.944m1.295.431l-.033.025c.008-.532-.145-1.172-.205-1.401h.879c.094.335.258.688.391.945-.368.105-.743.246-1.032.431m4.115-6.461l-.008.041c-.461-.474-1.221-.893-1.221-.893s-.324.863.006 1.455c.207.375.75.766 1.117 1-.264.273-.52.582-.676.886l-.018.038c-.322-.577-.947-1.176-.947-1.176s-.537.75-.373 1.406c.102.416.523.933.818 1.255-.326.195-.654.428-.883.681l-.027.031c-.162-.639-.607-1.378-.607-1.378s-.715.586-.729 1.263c-.004.141.025.3.07.465l-1.02-.886h-9.479l-1.02.886c.045-.165.074-.324.071-.465-.014-.677-.729-1.263-.729-1.263s-.446.739-.608 1.378l-.027-.031c-.229-.253-.557-.485-.882-.681.294-.322.715-.839.818-1.255.164-.656-.375-1.406-.375-1.406s-.624.599-.945 1.176l-.019-.038c-.156-.304-.411-.612-.675-.886.368-.234.909-.625 1.117-1 .33-.592.005-1.455.005-1.455s-.759.419-1.22.893l-.007-.041c-.071-.334-.237-.697-.421-1.029.417-.132 1.041-.369 1.341-.68.472-.486.383-1.403.383-1.403s-.842.208-1.412.548l.003-.042c.018-.34-.048-.734-.139-1.101.437-.021 1.102-.091 1.472-.313.583-.35.737-1.257.737-1.257s-.869-.016-1.507.167l.015-.041c.105-.323.145-.721.152-1.098.428.092 1.088.196 1.503.077.655-.188 1.04-1.026 1.04-1.026s-.834-.238-1.5-.226l.025-.035c.525-.803.699-2.306.699-2.306s-.068.04-.175.108c1.201-1.397 3.891-2.372 7.02-2.372 3.128 0 5.818.975 7.02 2.372-.105-.068-.174-.108-.174-.108s.174 1.502.699 2.306l.025.035c-.666-.012-1.502.226-1.502.226s.387.837 1.041 1.026c.416.119 1.076.015 1.504-.077.008.377.047.775.152 1.098l.014.041c-.639-.183-1.506-.167-1.506-.167s.152.907.736 1.257c.371.222 1.035.291 1.473.313-.092.367-.156.761-.139 1.101l.002.042c-.568-.34-1.41-.548-1.41-.548s-.09.917.383 1.403c.301.311.924.548 1.34.68-.18.332-.346.695-.417 1.029"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 32c0 11.5 6.5 21.5 16 26.5v-53c-9.5 5-16 15-16 26.5" fill="#3e4347"/><path d="m62 32c0-11.5-6.5-21.5-16-26.5v53.1c9.5-5.1 16-15.1 16-26.6" fill="#699635"/><path d="M32,2c-5.1,0-9.8,1.3-14,3.5v53.1c4.2,2.2,8.9,3.5,14,3.5c5.1,0,9.8-1.3,14-3.5V5.5C41.8,3.3,37.1,2,32,2z" fill="#ed4c5c"/><g fill="#fff"><path d="m35.8 37h-1.1c0 .5-.1.9-.4 1.2h2.2c-.4-.3-.7-.8-.7-1.2"/><path d="m35.9 30.8l.6-.7h-2l-1-.7-3.1-.1-.9.8h-2l.6.7z"/><path d="m30.6 29.2h2.7c.4-.2.5-.9.5-1.2 0-1.1-.7-1.6-1.4-1.6-.1 0-.2-.1-.3-.2-.1-.2-.1-.4-.1-.4-.1 0 0 .1-.1.4 0 .1-.1.2-.3.2-.9 0-1.5.7-1.4 1.6 0 .6.1 1 .4 1.2"/><path d="m34.5 37.4l-.5-.3v-.6l-.3-.2v-.6l-.5-.2v-.5l-.4-.1v-.5l-.6-.2-.3-.2v-.4h-2v-.3c0-1 1.3-1.9 2.1-1.9 1 0 2.1.9 2.1 1.9v1h.1v-1c0-.9-1.1-2-2.1-2h3.6v-.1h-7.6v.1h3.6c-.6 0-2.1.7-2.1 2v3.6h.8v.7h-1c-.1 0-.2-.2-.2-.4h-1c0 .5-.3.9-.7 1.3h3v-.8h.8l.2.8h.7l-.3-.8h.7l.5.8h1l-.7-.8c0-.3 1.1-.3 1.1-.3m-4-1.3h.6l.1.7h-.7v-.7m1.4 1.3h-.6l-.1-.7h.5l-.2-.7h.1.1.1l.4.7h-.5l.2.7m.7 0l-.4-.7h.6l.6.7h-.8"/><path d="m34.1 34.7h.1v1h-.1z"/><path d="m28.3 35.8h1.1v-1.3h-1.1v.3l-2.2-3.8.1-.2c0-.2-.1-.3-.3-.3-.2 0-.3.1-.3.3s.1.3.3.3h.1l.1.1c-.2 0-.4.5-.9.9-.3.2-.5.9-.6 1.3 0 .1 0 .2 0 .3v.1c0 .2 0 .3 0 .5 0 .2-.2.6-.1.7.3.2.7.8.9 1 .1.1.3-.6.4-1.1v-.1c.1-.4.1-.9.4-1.2l.1-.1c.2-.2.6-.4.8-.6l1.3 2.3-.1.6"/><path d="m28.3 27.3h1v.2h-1z"/><path d="m28.3 27.7h1v2h-1z"/><path d="m28.8 26.2c-.2 0-.6.4-.5.8h1.1c0-.4-.4-.8-.6-.8"/><path d="m28.2 31.4h1.1v1.6h-1.1z"/><path d="m28.3 33.9h1.1v.3h-1.1z"/><path d="m28.2 36h1.2v.7h-1.2z"/><path d="m28.3 33.6h1l.2-.3h-1.3z"/><path d="m30.3 31.5h-.7v.9c.2-.4.4-.7.7-.9"/><path d="m39.5 33.8v-.1.1c0-.2 0-.3 0-.4 0-.4-.2-1-.6-1.3-.5-.4-.8-.9-.9-.9l.1-.1h.1c.2 0 .3-.1.3-.3s-.1-.3-.3-.3c-.2 0-.3.1-.3.3l.1.2-2.1 3.8v-.3h-1.1v1.3h1.1v-.7l1.3-2.3c.1.1.6.3.8.6l.1.1c.3.4.2.8.3 1.2v.1c.1.4.2 1.2.4 1.1.2-.2.6-.7.9-1 .1-.1-.1-.5-.1-.7-.2-.1-.1-.2-.1-.4"/><path d="m34.8 27.3h1v.2h-1z"/><path d="m34.8 27.7h1v2h-1z"/><path d="m35.8 27c0-.4-.3-.8-.5-.8-.2 0-.6.4-.5.8h1"/><path d="m34.7 31.4h1.1v1.6h-1.1z"/><path d="m34.7 33.9h1.1v.3h-1.1z"/><path d="m34.7 36h1.2v.7h-1.2z"/><path d="m34.5 33.3l.2.3h1l.2-.3z"/><path d="m34.4 32.4v-.9h-.7c.3.2.5.5.7.9"/><path d="m42.6 33.2c.4-.2.9-.5 1.2-.8.3-.5.2-1.4.2-1.4s-.7.3-1.3.6c0-.4-.2-.9-.4-1.3.3-.3.8-.7.9-1 .3-.6-.1-1.4-.1-1.4s-.6.4-1.1.9c-.1-.4-.4-.8-.7-1.2.2-.4.6-.9.6-1.2.1-.7-.5-1.4-.5-1.4s-.5.6-.8 1.2c-.3-.4-.8-.9-1.2-1.2.2-.3.2-.6.2-1 0-2.2-3.4-4-7.7-4-4.2 0-7.7 1.8-7.7 4 0 .3.1.7.2 1-.4.3-.9.7-1.2 1.2-.3-.6-.8-1.2-.8-1.2s-.6.7-.5 1.4c.1.4.4.9.6 1.2-.3.4-.6.8-.7 1.2-.4-.5-1.1-.9-1.1-.9s-.4.8-.1 1.4c.2.4.6.8.9 1-.2.4-.3.9-.4 1.3-.3-.3-1.1-.6-1.1-.6s-.2.9.2 1.4c.2.3.8.6 1.2.8-.1.4-.1 1 0 1.4-.6-.2-1.4-.3-1.4-.3s.1.9.6 1.3c.3.2.9.4 1.3.4.1.4.2 1 .4 1.3-.6-.1-1.4.1-1.4.1s.3.9.9 1.1c.4.1 1 .1 1.4.1.2.4.4.9.7 1.2-.6.1-1.3.4-1.3.4s.5.8 1.2.8c.4 0 1-.1 1.4-.3.3.4.6.7 1 1-.6.3-1.2.8-1.2.8s.7.6 1.4.5c.2 0 .3-.1.5-.2l-.9 1.2h12l-.8-.9c.2.1.3.1.5.2.7.1 1.4-.5 1.4-.5s-.6-.5-1.2-.8c.4-.2.7-.6 1-1 .4.2 1 .3 1.4.3.7-.1 1.2-.8 1.2-.8s-.7-.3-1.3-.4c.3-.3.5-.8.7-1.2.4 0 1 .1 1.4-.1.6-.3.9-1.1.9-1.1s-.8-.1-1.4-.1c.2-.4.3-.9.4-1.3.4-.1 1-.2 1.3-.4.5-.4.6-1.3.6-1.3s-.8.1-1.4.3c0-.7-.1-1.2-.1-1.7m-15.7 7.6c-.3-.2-.7-.4-1.1-.5.1-.3.3-.6.4-.9h.9c0 .3-.2.9-.2 1.4m8.9-.4c-.1.3-.1.7 0 1.1l-.6-.7h-6.5l-.6.7c.1-.4.1-.8 0-1.1-.1-.5-.6-.8-.9-.9h9.4c-.2.1-.6.4-.8.9m1.3.4c0-.5-.2-1.1-.2-1.4h.9c.1.3.3.7.4.9-.4.2-.8.3-1.1.5m4.1-6.4c-.5-.4-1.2-.9-1.2-.9s-.3.9 0 1.5c.2.4.8.8 1.1 1-.3.3-.5.6-.7.9-.3-.6-.9-1.2-.9-1.2s-.5.8-.4 1.4c.1.4.5.9.8 1.3-.3.2-.7.4-.9.7-.2-.6-.6-1.4-.6-1.4s-.7.6-.7 1.3c0 .1 0 .3.1.5l-1-.9h-9.5l-1 .9c0-.2.1-.3.1-.5 0-.7-.7-1.3-.7-1.3s-.4.7-.6 1.4c-.2-.3-.6-.5-.9-.7.3-.3.7-.8.8-1.3.2-.7-.4-1.4-.4-1.4s-.6.6-.9 1.2c-.2-.3-.4-.6-.7-.9.4-.2.9-.6 1.1-1 .3-.6 0-1.5 0-1.5s-.8.4-1.2.9c-.1-.3-.2-.7-.4-1 .4-.1 1-.4 1.3-.7.5-.5.4-1.4.4-1.4s-.8.2-1.4.5c0-.3 0-.7-.1-1.1.4 0 1.1-.1 1.5-.3.6-.4.7-1.3.7-1.3s-.9 0-1.5.2c.1-.3.1-.7.2-1.1.4.1 1.1.2 1.5.1.7-.2 1-1 1-1s-.8-.2-1.5-.2c.5-.8.7-2.3.7-2.3s-.1 0-.2.1c1.2-1.4 3.9-2.4 7-2.4s5.8 1 7 2.4c-.1-.1-.2-.1-.2-.1s.2 1.5.7 2.3c-.7 0-1.5.2-1.5.2s.4.8 1 1c.4.1 1.1 0 1.5-.1 0 .4 0 .8.2 1.1-.6-.2-1.5-.2-1.5-.2s.2.9.7 1.3c.4.2 1 .3 1.5.3-.1.4-.2.8-.1 1.1-.6-.3-1.4-.5-1.4-.5s-.1.9.4 1.4c.3.3.9.5 1.3.7-.2.3-.4.6-.5 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ec.svg
index 9bbc23d..0bcf4eb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#ed4c5c" d="m56 14h-48c-3.767 5.01-6 11.246-6 18 0 16.568 13.432 30 30 30s30-13.432 30-30c0-6.754-2.233-12.986-6-18"/><path fill="#42ade2" d="m20.5 39h23l7-14h-37z" id="0"/><use xlink:href="#0"/><path fill="#3e4347" d="M50.5,25L56,14C50.527,6.714,41.814,2,32,2S13.473,6.714,8,14l5.5,11H50.5z"/><path fill="#fff" d="M20.5 39 32 62 43.5 39z"/><path fill="#ffce31" d="m36.17 22.24l5.07-6.392-6.441 5.01 2.231-7.845-4.03 7.09-.939-8.1-1.01 8.09-3.98-7.121 2.17 7.861-6.405-5.062 5.02 6.432-7.857-2.227 7.096 4.03-8.11.943.455.057h25.12l-7.643-.95 7.134-3.97z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m56 14h-48c-3.8 5-6 11.2-6 18 0 16.6 13.4 30 30 30s30-13.4 30-30c0-6.8-2.2-13-6-18" fill="#ed4c5c"/><path fill="#42ade2" d="m20.5 39h23l7-14h-37z" id="0"/><use xlink:href="#0"/><path d="M50.5,25L56,14C50.5,6.7,41.8,2,32,2S13.5,6.7,8,14l5.5,11H50.5z" fill="#3e4347"/><path fill="#fff" d="M20.5 39 32 62 43.5 39z"/><path fill="#ffce31" d="m36.2 22.2l5-6.4-6.4 5.1 2.2-7.9-4 7.1-.9-8.1-1.1 8.1-3.9-7.1 2.1 7.8-6.4-5 5.1 6.4-7.9-2.2 7.1 4-8.1.9.4.1h25.2l-7.7-1 7.1-3.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ee.svg
index 503f1b1..c117d60 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h20.416v20.416h-20.416z"/><path fill="#fff" d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path fill="#2a5f9e" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#fff" d="M11,18.912H5.011C3.088,22.869,2,27.306,2,32h12V13.912h-3V18.912z"/><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><path fill="#fff" d="m50 33.384c-1.625 0-3-1.384-3-1.384s-1.375 1.384-3 1.384c-1.5 0-4-1.384-4-1.384s.359 8.775 2 11.768c1.75 3.194 5 6.232 5 6.232s3.25-3.038 5-6.232c1.643-2.993 2-11.768 2-11.768s-2.5 1.384-4 1.384"/><path fill="#b4d7ee" d="m42.877 43.29c1.176 2.148 3.104 4.261 4.123 5.306 1.02-1.045 2.947-3.157 4.123-5.305h-8.246"/><g fill="#ff8736"><path d="m46.971 35.539c-.92.959-.373 3.619-1.295 2.658-.92-.959-.92-2.516 0-3.475.922-.963 2.412-.963 3.334 0 .92.96-1.119-.142-2.039.817"/><path d="m44.789 39.965c1.262.346 3.215-1.475 2.871-.168-.342 1.303-1.645 2.082-2.91 1.736-1.264-.344-2.01-1.68-1.666-2.986.344-1.305.439 1.072 1.705 1.418"/><path d="m49.584 39.707c-.344-1.303-2.842-2.145-1.578-2.488 1.264-.346 2.566.434 2.91 1.738.346 1.305-.402 2.643-1.666 2.986-1.266.344.678-.929.334-2.236"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h20.4v20.4h-20.4z"/><path fill="#fff" d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m50 33.4c-1.6 0-3-1.4-3-1.4s-1.4 1.4-3 1.4c-1.5 0-4-1.4-4-1.4s.4 8.8 2 11.8c1.8 3.2 5 6.2 5 6.2s3.2-3 5-6.2c1.6-3 2-11.8 2-11.8s-2.5 1.4-4 1.4" fill="#fff"/><path d="m42.9 43.3c1.2 2.1 3.1 4.3 4.1 5.3 1-1 2.9-3.2 4.1-5.3h-8.2" fill="#b4d7ee"/><g fill="#ff8736"><path d="m47 35.5c-.9 1-.4 3.6-1.3 2.7-.9-1-.9-2.5 0-3.5.9-1 2.4-1 3.3 0 .9 1-1.1-.1-2 .8"/><path d="m44.8 40c1.3.3 3.2-1.5 2.9-.2-.3 1.3-1.6 2.1-2.9 1.7-1.3-.3-2-1.7-1.7-3 .3-1.3.4 1.1 1.7 1.5"/><path d="m49.6 39.7c-.3-1.3-2.8-2.1-1.6-2.5 1.3-.3 2.6.4 2.9 1.7.3 1.3-.4 2.6-1.7 3-1.2.4.7-.9.4-2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f1.svg
index 087ed59..62c373c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f42f4c" cx="32" cy="32" r="30"/><path fill="#3e4347" d="m48.916 41.886c-.904-1.605-3.42-.406-4.719-.361.65-.551 2.537-1.885 3.494-1.92-.664-.555-2.025-.119-2.518.469-1.793 2.142-2.949.981-5.543.227 2.105-2.18-6.01-3.755-3.426-5.554.539-.376 1.436 3.076 2.84 2.517.604-.24-2.326-2.461-.781-3 .539-.189 2.543 5.711 3.934 3.312.521-.897-3.088-1.685-2.072-3.491-.738 1.313 8.813 6.186 7.582 3.02-.574-1.481-6.357-.408-5.857-4.32-.135 1.047 6.742 4.214 5.971 1.252-.17-.652-6.887-.19-5.711-3.37.18-.49 5.895 3.866 5.689.654-.076-1.173-6.08-.263-5.484-2.92.012-.051 6.213 2.579 5.479-.182-.102-.381-6.871.379-5.633-1.961-.574 1.084 8.115.553 5.527-1.573-.898-.738-4.729 2.704-5.459-.32.1.405 7.498-.593 5.414-2.725-.543-.556-5.168 3.088-5.34.701-.035-.464 6.201-3.354 5.256-4.877-1.141-1.836-7.186 3.179-7.902 3.512-4.666 2.169.047.902-2.328 3.689-1.385 1.626-2.461-.923-2.068-1.997.844-2.307 5.58-2.048 5.801-3.514-.715.452-1.377.437-1.984-.047.098-.008 5.05-.745 3.414-1.415-.189-.078-.75.255-1.383.568.102-2.435-6.432-.584-7.082-.539 2.721 2.284-2.172.967.611 2.152-.723.132-1.35.445-1.883.939 1.29.235-.755 1.657-.755 1.657s-2.046-1.422-.754-1.657c-.533-.494-1.16-.807-1.882-.939 2.783-1.185-2.109.132.61-2.152-.65-.046-7.184-1.896-7.082.539-.633-.313-1.193-.646-1.383-.568-1.64.67 3.316 1.407 3.415 1.415-.608.484-1.271.499-1.985.047.221 1.466 4.958 1.207 5.801 3.514.393 1.073-.685 3.623-2.069 1.997-2.374-2.787 2.339-1.52-2.328-3.689-.715-.333-6.76-5.348-7.901-3.512-.945 1.522 5.291 4.413 5.257 4.877-.173 2.387-4.797-1.257-5.341-.701-2.084 2.132 5.315 3.129 5.413 2.725-.729 3.02-4.561-.418-5.458.32-2.588 2.126 6.101 2.657 5.526 1.573 1.238 2.341-5.53 1.58-5.632 1.961-.734 2.76 5.468.13 5.479.182.596 2.658-5.409 1.748-5.483 2.92-.205 3.212 5.508-1.145 5.688-.654 1.177 3.18-5.542 2.718-5.712 3.37-.771 2.962 6.105-.205 5.971-1.252.502 3.912-5.281 2.839-5.856 4.32-1.229 3.166 8.319-1.707 7.582-3.02 1.017 1.808-2.594 2.594-2.073 3.491 1.391 2.399 3.396-3.501 3.936-3.312 1.544.543-1.386 2.765-.782 3 1.404.56 2.301-2.893 2.84-2.517 2.582 1.799-5.531 3.374-3.425 5.554-2.594.755-3.75 1.915-5.543-.227-.493-.588-1.855-1.023-2.52-.469.959.035 2.845 1.369 3.495 1.92-1.299-.045-3.814-1.244-4.72.361 1.13-.463 3.601.024 4.705.098-1.205 1.023-3.387.291-2.981 2.758.6-1.994 6.595-3.529 7.305-.65.721-1.278-2.123-2-2.736-2.178.416-.134 5.085-.126 5.085-.126s2.596-5.137 3.762-3.865c2.791 3.044-4.647 4.654-4.898 5.271-.778 1.921 3.756.183 3.624.062 1.247 1.146-3.03 2.062-3.02 2.435.051 2.077 3.49-.813 3.652-.776 1.633.375-2.294 2.844-2.25 2.545-.329 2.238 3.396-.686 3.337-1.186.388.555.369 1.145-.057 1.77-1.344 2.327-.106 2.574 1.387 4.956 1.493-2.382 2.731-2.629 1.389-4.958-.426-.625-.443-1.215-.057-1.77-.061.5 3.666 3.424 3.336 1.186.045.299-3.881-2.17-2.25-2.545.162-.037 3.604 2.854 3.654.776.008-.373-4.266-1.288-3.02-2.435-.133.121 4.402 1.859 3.623-.062-.25-.617-7.688-2.228-4.896-5.271 1.164-1.271 3.76 3.865 3.76 3.865s4.67-.008 5.086.126c-.613.174-3.457.898-2.736 2.178.711-2.879 6.705-1.344 7.305.65.406-2.467-1.775-1.734-2.98-2.758 1.102-.072 3.573-.559 4.702-.096m-7.92-23.575c-.578.281-1.199.526-1.645.42.387-.484 1.147-.984 1.645-.42m-3.176-.446c1.016.22 1.016.458 0 .713-1.01-.239-1.01-.477 0-.713m-14.817.446c.499-.564 1.258-.063 1.645.42-.444.105-1.066-.14-1.645-.42m3.176.268c-1.017-.256-1.017-.494 0-.713 1.01.235 1.01.473 0 .713"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f42f4c"/><path d="m48.9 41.9c-.9-1.6-3.4-.4-4.7-.4.7-.6 2.5-1.9 3.5-1.9-.7-.6-2-.1-2.5.5-1.8 2.1-2.9 1-5.5.2 2.1-2.2-6-3.8-3.4-5.6.5-.4 1.4 3.1 2.8 2.5.6-.2-2.3-2.5-.8-3 .5-.2 2.5 5.7 3.9 3.3.5-.9-3.1-1.7-2.1-3.5-.7 1.3 8.8 6.2 7.6 3-.6-1.5-6.4-.4-5.9-4.3-.1 1 6.7 4.2 6 1.3-.2-.7-6.9-.2-5.7-3.4.2-.5 5.9 3.9 5.7.7-.1-1.2-6.1-.3-5.5-2.9 0-.1 6.2 2.6 5.5-.2-.1-.4-6.9.4-5.6-2-.6 1.1 8.1.6 5.5-1.6-.9-.7-4.7 2.7-5.5-.3.1.4 7.5-.6 5.4-2.7-.5-.6-5.2 3.1-5.3.7 0-.5 6.2-3.4 5.3-4.9-1.1-1.8-7.2 3.2-7.9 3.5-4.7 2.2 0 .9-2.3 3.7-1.4 1.6-2.5-.9-2.1-2 .8-2.3 5.6-2 5.8-3.5-.7.5-1.4.4-2 0 .1 0 5.1-.7 3.4-1.4-.2-.1-.8.3-1.4.6.1-2.4-6.4-.6-7.1-.5 2.7 2.3-2.2 1 .6 2.2-.7.1-1.3.4-1.9.9 1.3.1-.7 1.6-.7 1.6s-2-1.4-.8-1.7c-.5-.5-1.2-.8-1.9-.9 2.8-1.2-2.1.1.6-2.2-.6 0-7.2-1.9-7.1.5-.6-.3-1.2-.6-1.4-.6-1.6.7 3.3 1.4 3.4 1.4-.6.5-1.3.5-2 0 .2 1.5 5 1.2 5.8 3.5.4 1.1-.7 3.6-2.1 2-2.4-2.8 2.3-1.5-2.3-3.7-.7-.3-6.8-5.3-7.9-3.5-.9 1.5 5.3 4.4 5.3 4.9-.2 2.4-4.8-1.3-5.3-.7-2.1 2.1 5.3 3.1 5.4 2.7-.7 3-4.6-.4-5.5.3-2.6 2.1 6.1 2.7 5.5 1.6 1.2 2.3-5.5 1.6-5.6 2-.7 2.8 5.5.1 5.5.2.6 2.7-5.4 1.7-5.5 2.9-.2 3.2 5.5-1.1 5.7-.7 1.2 3.2-5.5 2.7-5.7 3.4-.8 3 6.1-.2 6-1.3.5 3.9-5.3 2.8-5.9 4.3-1.2 3.2 8.3-1.7 7.6-3 1 1.8-2.6 2.6-2.1 3.5 1.4 2.4 3.4-3.5 3.9-3.3 1.5.5-1.4 2.8-.8 3 1.4.6 2.3-2.9 2.8-2.5 2.6 1.8-5.5 3.4-3.4 5.6-2.6.8-3.8 1.9-5.5-.2-.5-.6-1.9-1-2.5-.5 1 0 2.8 1.4 3.5 1.9-1.3 0-3.8-1.2-4.7.4 1.1-.5 3.6 0 4.7.1-1.2 1-3.4.3-3 2.8.6-2 6.6-3.5 7.3-.7.7-1.3-2.1-2-2.7-2.2.4-.1 5.1-.1 5.1-.1s2.6-5.1 3.8-3.9c2.8 3-4.6 4.7-4.9 5.3-.8 1.9 3.8.2 3.6.1 1.2 1.1-3 2.1-3 2.4.1 2.1 3.5-.8 3.7-.8 1.6.4-2.3 2.8-2.2 2.5-.3 2.2 3.4-.7 3.3-1.2.4.6.4 1.1-.1 1.8-1.3 2.3-.1 2.6 1.4 5 1.5-2.4 2.7-2.6 1.4-5-.4-.6-.4-1.2-.1-1.8-.1.5 3.7 3.4 3.3 1.2 0 .3-3.9-2.2-2.2-2.5.2 0 3.6 2.9 3.7.8 0-.4-4.3-1.3-3-2.4-.1.1 4.4 1.9 3.6-.1-.2-.6-7.7-2.2-4.9-5.3 1.2-1.3 3.8 3.9 3.8 3.9s4.7 0 5.1.1c-.6.2-3.5.9-2.7 2.2.7-2.9 6.7-1.3 7.3.7.4-2.5-1.8-1.7-3-2.8 1 0 3.5-.5 4.6 0m-7.9-23.6c-.6.3-1.2.5-1.6.4.3-.5 1.1-1 1.6-.4m-3.2-.4c1 .2 1 .5 0 .7-1-.3-1-.5 0-.7m-14.8.4c.5-.6 1.3-.1 1.6.4-.4.1-1-.1-1.6-.4m3.2.3c-1-.3-1-.5 0-.7 1 .2 1 .4 0 .7" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f2.svg
index 25783a3..619935b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f2.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#f2b200" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#2a5f9e" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#f2b200"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#2a5f9e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f4.svg
index b83aa95..7440d2d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#ed4c5c" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><g fill="#ffe62e"><path d="m27.487 24.479l-1.317 4.06 3.451-2.509 3.459 2.509-1.323-4.06 3.453-2.509h-4.269l-1.32-4.06-1.321 4.06h-4.27z"/><path d="m48.03 48.573c-.506-.822-1.131-1.424-1.946-2.148-.815-.724-1.941-1.521-2.777-2.329l-1.587 1.861c-.066.079-.041.26.044.273 1.78.306 2.34.938 3.047 1.542.957.967 1.35 2.137 1.975 2.57 1.153.803 1.985-.564 1.244-1.769"/><path d="m33.759 41.704c-1.703.586-3.558.821-5.468.621-2.474-.26-4.816-1.238-6.74-2.815l-1.863 2.272c.807.662 1.661 1.227 2.547 1.701l-.614 1.15c.979.525 2.01.951 3.074 1.273l.378-1.247c.988.299 1.998.499 3.01.598l-.128 1.3c1.107.108 2.222.108 3.328 0l-.128-1.301c1.02-.1 2.028-.301 3.01-.599l.38 1.25c.525-.159 1.044-.346 1.551-.555l-.688-2.672-1.656-.976"/><path d="m42.28 30.993c-.358 3.4-2.024 6.344-4.445 8.389l3.58 2.481c.468-.452.912-.929 1.326-1.432l-1.01-.829c.003-.002.004-.004.006-.007.662-.806 1.228-1.66 1.701-2.546l1.152.615c.523-.98.95-2.01 1.272-3.074l-1.247-.379c.299-.988.498-1.998.598-3.01l1.299.128c.109-1.106.109-2.221 0-3.328l-1.299.128c-.101-1.02-.302-2.029-.6-3.01l1.249-.379c-.322-1.064-.749-2.094-1.272-3.075l-1.151.615c-.478-.896-1.047-1.752-1.707-2.554l1.01-.828c-.707-.859-1.494-1.647-2.354-2.353l-.828 1.01c-.003-.002-.006-.005-.008-.007-.795-.651-1.649-1.218-2.548-1.698l.616-1.154c-.979-.524-2.01-.951-3.073-1.273l-.38 1.251c-.945-.287-1.919-.486-2.911-.59l-.307 2.923c6.993.735 12.07 7 11.332 13.993"/><path d="m37.34 41.17c-3.364-2.37-6.845-4.821-9.771-7.577l.224-.238c2.909 2.741 6.38 5.186 9.736 7.549 1.659 1.17 3.378 2.379 5 3.606l.449-.526c-5.594-3.998-18.829-13.189-18.993-16.539-2.613 5.101.699 8.15 2.833 9.363 5.43 3.088 9.03 5.123 14.699 8.891l.8-.939c-1.615-1.222-3.324-2.426-4.978-3.59"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#3e4347"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#ed4c5c"/><g fill="#ffe62e"><path d="m27.5 24.5l-1.3 4 3.4-2.5 3.5 2.5-1.3-4 3.4-2.5h-4.3l-1.3-4.1-1.3 4.1h-4.3z"/><path d="m48 48.6c-.5-.8-1.1-1.4-1.9-2.1s-1.9-1.5-2.8-2.3l-1.6 1.8c-.1.1 0 .3 0 .3 1.8.3 2.3.9 3 1.5 1 1 1.3 2.1 2 2.6 1.2.7 2.1-.6 1.3-1.8"/><path d="m33.8 41.7c-1.7.6-3.6.8-5.5.6-2.5-.3-4.8-1.2-6.7-2.8l-1.9 2.3c.8.7 1.7 1.2 2.5 1.7l-.6 1.2c1 .5 2 1 3.1 1.3l.4-1.2c1 .3 2 .5 3 .6l-.1 1.2c1.1.1 2.2.1 3.3 0l-.1-1.3c1-.1 2-.3 3-.6l.4 1.2c.5-.2 1-.3 1.6-.6l-.7-2.7-1.7-.9"/><path d="m42.3 31c-.4 3.4-2 6.3-4.4 8.4l3.6 2.5c.5-.5.9-.9 1.3-1.4l-1-.8c0 0 0 0 0 0 .7-.8 1.2-1.7 1.7-2.5l1.2.6c.5-1 1-2 1.3-3.1l-1.2-.4c.3-1 .5-2 .6-3l1.3.1c.1-1.1.1-2.2 0-3.3l-1.3.1c-.1-1-.3-2-.6-3l1.2-.4c-.3-1.1-.7-2.1-1.3-3.1l-1.2.6c-.5-.9-1-1.8-1.7-2.6l1-.8c-.7-.9-1.5-1.6-2.4-2.4l-.8 1c0 0 0 0 0 0-.8-.7-1.6-1.2-2.5-1.7l.6-1.2c-1-.5-2-1-3.1-1.3l-.4 1.3c-.9-.3-1.9-.5-2.9-.6l-.3 3c6.9.7 12 7 11.3 14"/><path d="m37.3 41.2c-3.4-2.4-6.8-4.8-9.8-7.6l.2-.2c2.9 2.7 6.4 5.2 9.7 7.5 1.7 1.2 3.4 2.4 5 3.6l.6-.5c-5.6-4-18.8-13.2-19-16.5-2.6 5.1.7 8.1 2.8 9.4 5.4 3.1 9 5.1 14.7 8.9l.8-.9c-1.6-1.4-3.3-2.6-5-3.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f6.svg
index 3f31cde..476eac8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3a7dce" cx="32" cy="32" r="30"/><path fill="#fff" d="m17.619 30.691l-.339-1.354-.299.006-.452.496-.095-1.349-.677-.507-.338.167-.069.273-.65-.293-.465-.654 1.184-1.015-2.03-1.523-1.016-3.718 7.445 5.241 4.568-1.185-.166-.676.84-.169.438-1.507-.097-.524.302-.4.184-.97-.149-.45.637-.623-.125-1.449 1.521-.676 1.349-1.353-.166-.678.994.492.751-.523.286-.815.38.645 4.336.185.889.858 3.46.691.751.686.509-.188.54 1.702.29-.055.392-.459 3.161 1.09.239.445.789-.186.845.851.944 4.9-.776 2.71 3.386 1.015.18 2.275-.699 1.728 1.026.734-.507 2.877-1.69 1.353.336 2.03-1.016.678-.51-.17v1.86h-.84l.334.679-1.694.675.469 1.075-1.139 1.126.335.335-.675-.166-3.206 1.892.158-.536-.952.18-.207-.48-.773.649-.343-.179-.487.67-3.633-.489-.447-.291-.602.275-1.368-.988.648-.587.85-1.86.039-1.13-.677-1.526-.83.736-4.682-1.2-.969.15-.873.505-2.29-.191v.338l-4.738-1.692v-1.01h-.845l-.17-2.88-.676.169-.847-2.031.17.508-1.692-1.866h1.015l-.328-2.01.835-1.316.509-.053"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#3a7dce"/><path fill="#fff" d="m17.6 30.7l-.3-1.4h-.3l-.5.5-.1-1.3-.6-.5-.4.2v.2l-.7-.3-.5-.6 1.2-1-2-1.6-1-3.7 7.4 5.3 4.6-1.2-.2-.7.9-.2.4-1.5-.1-.5.3-.4.2-1-.2-.4.7-.6-.2-1.5 1.6-.7 1.3-1.3-.1-.7.9.5.8-.5.3-.8.4.6 4.3.2.9.8 3.5.7.7.7.5-.2.5 1.7h.3l.4-.5 3.2 1.1.2.5.8-.2.9.8.9 4.9-.8 2.7 3.4 1 .2 2.3-.7 1.7 1 .8-.5 2.9-1.7 1.3.4 2-1 .7-.6-.2v1.9h-.8l.3.7-1.7.7.5 1-1.1 1.2.3.3-.7-.2-3.2 1.9.2-.5-1 .2-.2-.5-.8.6-.3-.1-.5.6-3.6-.5-.5-.3-.6.3-1.3-1 .6-.6.9-1.8v-1.1l-.7-1.6-.8.8-4.7-1.2-1 .1-.8.5-2.3-.2v.4l-4.8-1.7v-1h-.8l-.2-2.9-.6.2-.9-2.1.2.5-1.7-1.8h1l-.3-2 .8-1.4h.5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f7.svg
index 1a16202..040ef76 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,5.885,1.701,11.368,4.628,16h50.744C60.299,43.368,62,37.885,62,32s-1.701-11.368-4.628-16H6.628
- C3.701,20.632,2,26.115,2,32z"/><g fill="#b4d7ee"><path d="M57.372,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.628,16H57.372z"/><path d="M6.628,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.372-14H6.628z"/></g><path fill="#f6b40e" d="m45.742 31.829l-8.164-.308c-.003-.031-.004-.062-.007-.093 1.335-.245 2.286-.999 3.671-.874 1.697.152 2.657-.78 3.316-.996.66-.216 1.055.234 1.149.041.094-.194-.428-.62-1.366-.481-.938.138-1.217.851-3.289.683-1.76-.142-2.376.565-3.677.632-.012-.042-.024-.084-.037-.126l7.423-3.406c0 0 .238-.099.172-.258-.064-.159-.304-.06-.304-.06l-7.659 2.84c-.014-.027-.027-.056-.042-.083 1.14-.736 1.729-1.797 3.056-2.212 1.627-.509 2.157-1.737 2.685-2.189.526-.453 1.064-.188 1.077-.403.012-.215-.633-.408-1.446.079-.814.487-.8 1.252-2.778 1.89-1.68.542-1.979 1.431-3.154 1.991-.027-.034-.055-.067-.084-.101l5.555-5.989c0 0 .184-.183.063-.305-.122-.123-.306.061-.306.061l-5.989 5.555c-.023-.02-.047-.04-.07-.059.771-1.117.91-2.324 1.978-3.215 1.308-1.092 1.327-2.429 1.642-3.049.313-.619.91-.581.84-.784s-.74-.135-1.305.626c-.566.761-.26 1.462-1.844 2.81-1.344 1.144-1.277 2.079-2.149 3.047-.039-.021-.079-.041-.118-.062l2.84-7.659c0 0 .1-.239-.061-.305-.161-.067-.26.172-.26.172l-3.407 7.422c-.028-.009-.059-.018-.089-.027.286-1.327-.048-2.495.598-3.726.79-1.51.297-2.753.35-3.446.053-.693.619-.885.477-1.046-.145-.161-.736.158-.967 1.078-.231.92.32 1.45-.628 3.301-.805 1.571-.388 2.411-.823 3.638-.043-.004-.086-.008-.13-.012l-.307-8.164c0 0 0-.258-.172-.258s-.172.258-.172.258l-.308 8.164c-.03.002-.062.004-.092.007-.245-1.335-1-2.286-.875-3.671.152-1.697-.78-2.657-.996-3.317-.216-.66.234-1.055.04-1.149-.194-.094-.619.428-.479 1.366.138.938.85 1.217.683 3.29-.142 1.759.564 2.375.632 3.676-.042.012-.084.024-.125.037l-3.407-7.422c0 0-.099-.239-.258-.173-.159.065-.06.305-.06.305l2.839 7.658c-.027.015-.055.027-.082.042-.737-1.14-1.798-1.729-2.212-3.056-.509-1.627-1.737-2.157-2.19-2.684-.452-.527-.187-1.063-.402-1.077-.215-.012-.408.632.079 1.446.487.814 1.252.799 1.891 2.778.542 1.679 1.431 1.979 1.992 3.155-.034.027-.068.055-.102.083l-5.989-5.555c0 0-.183-.183-.305-.062-.122.122.061.305.061.305l5.555 5.989c-.02.024-.04.047-.06.071-1.117-.772-2.324-.911-3.215-1.978-1.093-1.308-2.43-1.328-3.05-1.642-.619-.313-.58-.91-.784-.84-.204.071-.135.74.626 1.306.761.565 1.462.259 2.81 1.843 1.144 1.345 2.08 1.278 3.046 2.15-.021.039-.041.079-.062.118l-7.658-2.84c0 0-.239-.099-.305.061-.068.16.171.259.171.259l7.422 3.406c-.01.03-.018.06-.027.089-1.328-.286-2.495.048-3.726-.597-1.51-.791-2.753-.297-3.445-.349-.693-.053-.885-.62-1.047-.477-.16.144.159.735 1.078.966.92.231 1.45-.32 3.301.627 1.57.805 2.411.388 3.638.823-.005.043-.008.087-.012.13l-8.164.308c0 0-.258 0-.258.172 0 .173.258.172.258.172l8.164.308c.003.031.004.062.007.092-1.335.244-2.286 1-3.671.875-1.697-.152-2.657.779-3.317.996-.66.215-1.055-.234-1.149-.041-.094.194.428.619 1.366.48.938-.139 1.217-.85 3.29-.683 1.759.142 2.375-.565 3.676-.632.012.041.023.084.037.125l-7.422 3.406c0 0-.239.1-.173.259s.305.06.305.06l7.659-2.84c.014.027.027.057.042.082-1.14.738-1.729 1.799-3.057 2.213-1.627.51-2.156 1.738-2.684 2.189-.527.453-1.064.188-1.077.403s.632.408 1.446-.079c.814-.486.799-1.252 2.778-1.891 1.68-.542 1.979-1.431 3.155-1.99.027.033.055.066.083.1l-5.555 5.99c0 0-.183.183-.062.305.122.121.305-.061.305-.061l5.989-5.556c.024.021.047.04.071.06-.771 1.117-.91 2.324-1.978 3.215-1.308 1.092-1.327 2.43-1.642 3.05-.313.619-.911.58-.84.784.071.203.74.135 1.306-.627s.259-1.461 1.843-2.809c1.345-1.145 1.278-2.08 2.15-3.048.039.022.079.042.118.062l-2.839 7.66c0 0-.1.238.06.305.16.068.259-.171.259-.171l3.407-7.422c.029.009.059.018.089.027-.286 1.326.048 2.494-.598 3.726-.79 1.511-.297 2.753-.35 3.445-.052.692-.619.886-.476 1.046.144.161.735-.158.966-1.078.231-.92-.32-1.449.628-3.301.804-1.57.387-2.41.823-3.639.043.006.087.008.13.013l.307 8.163c0 0 0 .259.172.259.173 0 .172-.259.172-.259l.308-8.163c.031-.003.062-.005.092-.007.244 1.335.999 2.285.874 3.671-.152 1.697.78 2.657.996 3.317.217.66-.233 1.055-.039 1.148.193.094.618-.428.479-1.367-.138-.938-.851-1.217-.683-3.289.142-1.758-.564-2.375-.633-3.676.042-.012.084-.023.126-.037l3.406 7.422c0 0 .1.239.259.174.159-.066.061-.305.061-.305l-2.84-7.658c.027-.016.055-.027.082-.043.736 1.14 1.797 1.729 2.213 3.057.508 1.627 1.736 2.156 2.189 2.684.452.527.188 1.063.402 1.076s.408-.632-.078-1.445c-.488-.814-1.253-.799-1.892-2.778-.542-1.68-1.431-1.979-1.991-3.155.034-.027.068-.055.102-.083l5.988 5.556c0 0 .184.183.305.061.122-.121-.061-.305-.061-.305l-5.555-5.988c.02-.024.04-.048.06-.072 1.117.772 2.323.911 3.215 1.979 1.093 1.309 2.43 1.328 3.05 1.642.619.313.58.911.784.841.204-.072.136-.74-.626-1.307-.762-.564-1.463-.259-2.811-1.842-1.143-1.346-2.079-1.278-3.047-2.15.021-.039.043-.078.063-.119l7.658 2.841c0 0 .239.099.305-.06.069-.163-.169-.261-.169-.261l-7.423-3.407c.01-.029.018-.059.026-.088 1.328.285 2.495-.049 3.727.597 1.51.79 2.754.296 3.445.349.693.053.885.62 1.047.477.16-.143-.159-.734-1.078-.967-.92-.23-1.451.32-3.301-.627-1.571-.804-2.412-.387-3.639-.823.005-.043.008-.087.012-.13l8.164-.308c0 0 .258 0 .258-.172 0-.173-.258-.172-.258-.172"/><g fill="#85340a"><path d="m34.974 31.27c-.28-.301-.683-.466-1.064-.466-.383 0-.749.166-.964.511.43.387 1.382.428 2.028-.045m-.302-.044c-.164.179-.364.285-.573.328.11-.069.185-.19.185-.329 0-.131-.065-.246-.164-.316.28.046.513.181.552.317m-1.024-.298c-.085.071-.141.177-.141.297 0 .147.084.275.205.34-.216-.029-.423-.117-.592-.251.135-.213.326-.332.528-.386"/><path d="m33.981 30.537c-.56 0-.688.129-.948.344-.258.215-.387.172-.43.215-.042.043 0 .172.086.129.086-.043.259-.129.517-.345.259-.215.517-.215.775-.215.775 0 1.206.646 1.292.603s-.43-.731-1.292-.731"/><path d="m35.532 30.794l-.002-.002v.002"/><path d="m32.34 30.363c-.06.16-.105.324-.135.491-.113.64.008 1.312.351 1.965.043-.043.129-.086.172-.086-.384-.543-.537-1.073-.45-1.563.044-.252.152-.494.321-.719.689-.646 1.936-.518 2.927.342-.948-1.291-2.239-1.205-3.186-.43"/><path d="m33.29 31.656c-.346-.172-.431-.258-.517-.258-.086 0-.086.086.344.344s1.163.301 1.896-.258c-.862.345-1.379.345-1.723.172"/><path d="m32.819 33.28c-.137 0-.25-.109-.258-.246-.042.084-.208.334-.535.347-.328-.013-.494-.263-.535-.347-.008.137-.122.246-.259.246-.144 0-.258-.116-.258-.258 0-.11.067-.21.17-.247-.185.034-.315.197-.315.383 0 .215.177.386.391.386.126 0 .243-.06.315-.164.149.112.355.124.466.126.017 0 .039 0 .051 0 .11-.002.317-.014.466-.126.073.104.189.164.314.164.214 0 .392-.171.392-.386 0-.186-.132-.349-.315-.383.103.037.17.137.17.247-.002.142-.117.258-.26.258"/><path d="m31.993 34.18h.006c.172 0 .43-.209.731-.037s.477.342.694.429c-.389-.259-.565-.649-.996-.649-.086 0-.257.047-.429.133h-.006c-.172-.086-.343-.133-.429-.133-.431 0-.602.391-.989.649.215-.087.385-.257.687-.429.302-.172.559.037.731.037"/><path d="m31.999 34.481h-.006c-.161 0-.29-.063-.573-.05-.167.007-.387.041-.701.134-.044 0-.091 0-.142.005.905.086.47.604 1.417.604h.006c.947 0 .519-.519 1.424-.604-.059-.005-.113-.009-.162-.009-.836-.246-1.01-.08-1.263-.08m.001.563h-.006c-.727 0-.503-.488-1.253-.48-.004 0-.01.002-.014.002.753-.161.925.092 1.266.092h.006c.339 0 .511-.25 1.251-.096-.738-.004-.526.482-1.25.482"/><path d="m32 35.19c-.428 0-.775.349-.775.776.085-.359.407-.613.775-.613.37 0 .69.254.775.613.001-.428-.346-.776-.775-.776"/><path d="m28.519 30.794l.002-.002z"/><path d="m31.448 30.45c.168.226.277.467.321.719.086.491-.067 1.021-.451 1.563.043 0 .13.043.173.086.342-.653.463-1.325.351-1.965-.029-.167-.075-.331-.135-.491-.947-.775-2.239-.861-3.186.429.989-.858 2.238-.987 2.927-.341"/><path d="m30.845 30.881c.258.215.431.301.517.345.085.043.129-.086.085-.129-.043-.043-.171 0-.431-.215-.258-.215-.387-.344-.947-.344-.861 0-1.378.689-1.292.732.086.043.517-.603 1.292-.603.259-.001.516-.001.776.214"/><path d="m29.08 31.31c.23.207.608.313 1.01.298.002 0 .004.001.005.001.004 0 .008-.001.012-.001.345-.017.706-.125 1-.342-.28-.301-.683-.466-1.065-.466-.381-.001-.748.165-.963.51m.177 0c.152-.244.38-.364.615-.405-.1.07-.165.185-.165.316 0 .154.091.286.222.349-.244-.017-.483-.109-.672-.26m1.549-.088c-.137.15-.3.249-.472.302.09-.071.148-.18.148-.303 0-.122-.057-.229-.145-.3.243.057.435.179.469.301"/><path d="m31.27 31.398c-.086 0-.172.086-.517.258s-.861.172-1.723-.172c.732.56 1.464.517 1.895.258.432-.258.432-.344.345-.344"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#f9f9f9"/><g fill="#b4d7ee"><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z"/></g><path d="m45.7 31.8l-8.2-.3c0 0 0-.1 0-.1 1.3-.2 2.3-1 3.7-.9 1.7.2 2.7-.8 3.3-1 .7-.2 1.1.2 1.1 0 .1-.2-.4-.6-1.4-.5-.9.1-1.2.9-3.3.7-1.8-.1-2.4.6-3.7.6 0 0 0-.1 0-.1l7.4-3.4c0 0 .2-.1.2-.3-.1-.2-.3-.1-.3-.1l-7.5 3c0 0 0-.1 0-.1 1.1-.7 1.7-1.8 3.1-2.2 1.6-.5 2.2-1.7 2.7-2.2.5-.5 1.1-.2 1.1-.4 0-.2-.6-.4-1.4.1-.8.5-.8 1.3-2.8 1.9-1.7.5-2 1.4-3.2 2 0 0-.1-.1-.1-.1l5.6-6c0 0 .2-.2.1-.3-.1-.1-.3.1-.3.1l-6 5.6c0 0 0 0-.1-.1.8-1.1.9-2.3 2-3.2 1.3-1.1 1.3-2.4 1.6-3 .3-.6.9-.6.8-.8s-.7-.1-1.3.6c-.6.8-.3 1.5-1.8 2.8-1.3 1.1-1.3 2.1-2.1 3 0 0-.1 0-.1-.1l2.8-7.7c0 0 .1-.2-.1-.3-.2-.1-.3.2-.3.2l-3.4 7.4c0 0-.1 0-.1 0 .3-1.3 0-2.5.6-3.7.8-1.5.3-2.8.3-3.4.1-.7.6-.9.5-1-.1-.2-.7.2-1 1.1-.2.9.3 1.5-.6 3.3-.8 1.6-.4 2.4-.8 3.6 0 0-.1 0-.1 0l-.3-8.2c0 0 0-.3-.2-.3s-.2.3-.2.3l-.3 8.2c0 0-.1 0-.1 0-.2-1.3-1-2.3-.9-3.7.2-1.7-.8-2.7-1-3.3s.2-1.1 0-1.1c-.2-.1-.6.4-.5 1.4.1.9.9 1.2.7 3.3-.1 1.8.6 2.4.6 3.7 0 0-.1 0-.1 0l-3.4-7.4c0 0-.1-.2-.3-.2-.2.1-.1.3-.1.3l2.8 7.7c0 0-.1 0-.1 0-.7-1.1-1.8-1.7-2.2-3.1-.5-1.6-1.7-2.2-2.2-2.7-.5-.5-.2-1.1-.4-1.1-.2 0-.4.6.1 1.4s1.3.8 1.9 2.8c.5 1.7 1.4 2 2 3.2 0 0-.1.1-.1.1l-6-5.6c0 0-.2-.2-.3-.1-.1.1.1.3.1.3l5.6 6c0 0 0 0-.1.1-1.1-.8-2.3-.9-3.2-2-1.1-1.3-2.4-1.3-3-1.6-.6-.3-.6-.9-.8-.8-.2.1-.1.7.6 1.3.8.6 1.5.3 2.8 1.8 1.1 1.3 2.1 1.3 3 2.1 0 0 0 .1-.1.1l-7.7-2.8c0 0-.2-.1-.3.1-.1.2.2.3.2.3l7.4 3.4c0 0 0 .1 0 .1-1.3-.3-2.5 0-3.7-.6-1.5-.8-2.8-.3-3.4-.3-.7-.1-.9-.6-1-.5-.2.1.2.7 1.1 1 .9.2 1.5-.3 3.3.6 1.6.8 2.4.4 3.6.8 0 0 0 .1 0 .1l-8.2.3c0 0-.3 0-.3.2 0 .2.3.2.3.2l8.2.3c0 0 0 .1 0 .1-1.3.2-2.3 1-3.7.9-1.7-.2-2.7.8-3.3 1-.7.2-1.1-.2-1.1 0-.1.2.4.6 1.4.5s1.2-.8 3.3-.7c1.8.1 2.4-.6 3.7-.6 0 0 0 .1 0 .1l-7.4 3.4c0 0-.2.1-.2.3s.3.1.3.1l7.7-2.8c0 0 0 .1 0 .1-1.1.7-1.7 1.8-3.1 2.2-1.6.5-2.2 1.7-2.7 2.2-.5.5-1.1.2-1.1.4s.6.4 1.4-.1c.8-.5.8-1.3 2.8-1.9 1.7-.5 2-1.4 3.2-2 0 0 .1.1.1.1l-5.6 6c0 0-.2.2-.1.3.1.1.3-.1.3-.1l6-5.6c0 0 0 0 .1.1-.8 1.1-.9 2.3-2 3.2-1.3 1.1-1.3 2.4-1.6 3-.3.6-.9.6-.8.8.1.2.7.1 1.3-.6s.3-1.5 1.8-2.8c1.3-1.1 1.3-2.1 2.1-3 0 0 .1 0 .1.1l-2.8 7.7c0 0-.1.2.1.3.2.1.3-.2.3-.2l3.4-7.4c0 0 .1 0 .1 0-.3 1.3 0 2.5-.6 3.7-.8 1.5-.3 2.8-.4 3.4-.1.7-.6.9-.5 1 .1.2.7-.2 1-1.1.2-.9-.3-1.4.6-3.3.8-1.6.4-2.4.8-3.6 0 0 .1 0 .1 0l.3 8.2c0 0 0 .3.2.3.2 0 .2-.3.2-.3l.3-8.2c0 0 .1 0 .1 0 .2 1.3 1 2.3.9 3.7-.2 1.7.8 2.7 1 3.3.2.7-.2 1.1 0 1.1.2.1.6-.4.5-1.4-.1-.9-.9-1.2-.7-3.3.1-1.8-.6-2.4-.6-3.7 0 0 .1 0 .1 0l3.4 7.4c0 0 .1.2.3.2.2-.1.1-.3.1-.3l-2.9-7.8c0 0 .1 0 .1 0 .7 1.1 1.8 1.7 2.2 3.1.5 1.6 1.7 2.2 2.2 2.7.5.5.2 1.1.4 1.1s.4-.6-.1-1.4c-.5-.8-1.3-.8-1.9-2.8-.5-1.7-1.4-2-2-3.2 0 0 .1-.1.1-.1l6 5.6c0 0 .2.2.3.1.1-.1-.1-.3-.1-.3l-5.6-6c0 0 0 0 .1-.1 1.1.8 2.3.9 3.2 2 1.1 1.3 2.4 1.3 3 1.6.6.3.6.9.8.8.2-.1.1-.7-.6-1.3-.8-.6-1.5-.3-2.8-1.8-1.1-1.3-2.1-1.3-3-2.2 0 0 0-.1.1-.1l7.7 2.8c0 0 .2.1.3-.1.1-.2-.2-.3-.2-.3l-7.4-3.4c0 0 0-.1 0-.1 1.3.3 2.5 0 3.7.6 1.5.8 2.8.3 3.4.3.7.1.9.6 1 .5.2-.1-.2-.7-1.1-1-.9-.2-1.5.3-3.3-.6-1.6-.8-2.4-.4-3.6-.8 0 0 0-.1 0-.1l8.2-.3c0 0 .3 0 .3-.2 0-.2-.3-.2-.3-.2" fill="#f6b40e"/><g fill="#85340a"><path d="m35 31.3c-.3-.3-.7-.5-1.1-.5-.4 0-.7.2-1 .5.5.4 1.4.4 2.1 0m-.3-.1c-.2.2-.4.3-.6.3.1-.1.2-.2.2-.3 0-.1-.1-.2-.2-.3.3.1.5.2.6.3m-1.1-.3c-.1.1-.1.2-.1.3 0 .1.1.3.2.3-.2 0-.4-.1-.6-.3.2-.1.3-.2.5-.3"/><path d="m34 30.5c-.6 0-.7.1-.9.3-.3.2-.4.2-.4.2 0 0 0 .2.1.1.1 0 .3-.1.5-.3.3-.2.5-.2.8-.2.8 0 1.2.6 1.3.6s-.6-.7-1.4-.7"/><path d="m32.3 30.4c-.1.2-.1.3-.1.5-.1.6 0 1.3.4 2 0 0 .1-.1.2-.1-.4-.5-.5-1.1-.5-1.6 0-.3.2-.5.3-.7.7-.6 1.9-.5 2.9.3-.9-1.3-2.2-1.2-3.2-.4"/><path d="m33.3 31.7c-.3-.2-.4-.3-.5-.3s-.1.1.3.3 1.2.3 1.9-.3c-.8.4-1.4.4-1.7.3"/><path d="m32.8 33.3c-.1 0-.2-.1-.3-.2 0 .1-.2.3-.5.3-.3 0-.5-.3-.5-.3 0 .1-.1.2-.3.2-.1 0-.3-.1-.3-.3 0-.1.1-.2.2-.2-.2 0-.3.2-.3.4 0 .2.2.4.4.4.1 0 .2-.1.3-.2.1.1.4.1.5.1 0 0 0 0 .1 0 .1 0 .3 0 .5-.1.1.1.2.2.3.2.2 0 .4-.2.4-.4 0-.2-.1-.3-.3-.4.1 0 .2.1.2.2-.1.2-.2.3-.4.3"/><path d="m32 34.2c.2 0 .4-.2.7 0s.5.3.7.4c-.4-.3-.6-.6-1-.6-.1 0-.3 0-.4.1-.2-.1-.3-.1-.4-.1-.4 0-.6.4-1 .6.2-.1.4-.3.7-.4s.5 0 .7 0"/><path d="m32 34.5c-.2 0-.3-.1-.6 0-.2 0-.4 0-.7.1 0 0-.1 0-.1 0 .9.1.5.6 1.4.6.9 0 .5-.5 1.4-.6-.1 0-.1 0-.2 0-.8-.3-.9-.1-1.2-.1m0 .5c-.7 0-.5-.5-1.3-.5.8-.2.9.1 1.3.1.3 0 .5-.2 1.3-.1-.8.1-.6.5-1.3.5"/><path d="m32 35.2c-.4 0-.8.3-.8.8.1-.4.4-.6.8-.6.4 0 .7.3.8.6 0-.5-.4-.8-.8-.8"/><path d="m31.4 30.5c.2.2.3.5.3.7.1.5-.1 1-.5 1.6 0 0 .1 0 .2.1.3-.7.5-1.3.4-2 0-.2-.1-.3-.1-.5-.9-.8-2.2-.9-3.2.4 1-.9 2.3-1 2.9-.3"/><path d="m30.8 30.9c.3.2.4.3.5.3.1 0 .1-.1.1-.1 0 0-.2 0-.4-.2-.3-.2-.4-.3-.9-.3-.9 0-1.4.7-1.3.7.1 0 .5-.6 1.3-.6.2 0 .5 0 .7.2"/><path d="m29.1 31.3c.2.2.6.3 1 .3.3 0 .7-.1 1-.3-.3-.3-.7-.5-1.1-.5-.3 0-.7.2-.9.5m.2 0c.2-.2.4-.4.6-.4-.1.1-.2.2-.2.3 0 .2.1.3.2.3-.2.1-.5 0-.6-.2m1.5-.1c-.1.1-.3.2-.5.3.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.3.3.1.5.2.5.3"/><path d="m31.3 31.4c-.1 0-.2.1-.5.3s-.9.2-1.7-.2c.7.6 1.5.5 1.9.3.4-.3.4-.4.3-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f8.svg
index 1b0b3f0..158d0c6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f8.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M32,62c5.318,0,10.311-1.391,14.643-3.818L46.787,5.9C42.422,3.422,37.379,2,32,2
- C17.075,2,4.7,12.902,2.391,27.178v9.645C4.7,51.098,17.075,62,32,62z"/><path fill="#f9f9f9" d="m62 32c0-7.672-2.891-14.664-7.629-19.969l.006-.006c-.891-.996-1.846-1.928-2.859-2.797l-.002.002c-.335-.285-.68-.561-1.027-.834h-3.701v-.425l-43.2 21.547c-.066.812-1.592 1.652-1.592 2.482 0 .832 1.869 1.609 1.936 2.424l42.707 21.537v-.357h3.846c.348-.271.691-.545 1.026-.832l.003.002c1.014-.869 1.969-1.803 2.859-2.799l-.006-.006c4.738-5.305 7.629-12.295 7.629-19.969"/><g fill="#ed4c5c"><path d="m50.5 55.6l-48.5-23.408c.012 1.574.143 3.119.387 4.627l44.25 21.359c1.356-.76 2.647-1.623 3.862-2.578"/><path d="m2.391 27.18c-.244 1.508-.375 3.053-.387 4.627l48.5-23.408c-1.215-.955-2.506-1.818-3.861-2.578l-44.25 21.359"/></g><path fill="#9c3900" d="m44.703 37.877l-1.603-.242-.143-2.295.243-.93-.243-.875-.07-.972-2.063-.627-1.664-.184-1.221-.982.351-2.827-4.04-.693 2.725-2.275.085-1.915 2.25-1.05 4.333-1.83.168.621 3.718-1.651-.01.608 3.145-.708 3.376-1.204-.382 3.576-1.033 1.482-.736 1.662-3.669 2.288 4.747 1.898-1.927 2.378-2.139.07 1.229.94-1.267.596.951.067-.614.666 1.16-.179-1.507 1.274.247 1.266-1.161-.49.774 1.269-1.503-.359.24 1.309-1.03-.299-.09 1.15z"/><path fill="#3e4347" d="m53.896 18.03l-.363 3.379-1.01 1.424-.747 1.684-3.831 2.363 4.819 1.926-1.782 2.201-2.435.088 1.344 1.018-1.512.717 1.166.082-.686.736 1.084-.166-1.228 1.035.216 1.107-1.301-.553.819 1.348-1.395-.334.237 1.297-.987-.289-.091 1.148-1.473-.482-1.52-.232-.142-2.193.237-.889-.24-.939-.073-1.037-2.144-.65-1.691-.189-1.099-.91.356-2.875-3.883-.674 2.515-2.1.123-1.932 2.182-1.016 4.199-1.775.17.627 3.672-1.629-.01.568 3.301-.746 3.204-1.138m.292-.369l-.375.135-3.205 1.139-2.962.666.004-.248.008-.393-.359.158-3.405 1.512-.093-.346-.075-.277-.264.111-4.2 1.775-2.189 1.02-.135.063-.01.148-.116 1.824-2.432 2.031-.415.346.533.092 3.652.631-.327 2.639-.017.137.105.086 1.098.912.059.047.074.008 1.69.189 1.935.592.061.865.231.92-.22.826-.011.039.003.041.141 2.193.013.201.199.031 1.521.232 1.433.473.302.1.025-.318.066-.842.691.203.39.113-.073-.398-.168-.92 1.021.246.585.141-.313-.514-.416-.684.586.248.434.184-.09-.461-.188-.963 1.116-.941.68-.574-.879.135-.374.059.195-.211.356-.383-.522-.037-.214-.016.649-.307.372-.176-.328-.25-.785-.594 1.734-.063.113-.004.072-.09 1.781-2.199.214-.264-.315-.127-4.357-1.742 3.408-2.102.066-.041.031-.07.747-1.684.986-1.381.038-.053.007-.064.362-3.379.045-.395z"/><path fill="#ffc221" d="m46.44 42.918c.001-.002.006-.002.006-.004 0-.01-.002-.008-.006.004"/><path fill="#3e4347" d="m46.45 42.908c.001 0 .001.002.001.006 0 .002-.004.002-.006.004.003-.006.004-.01.005-.01m-.005.01"/><path fill="#ffce31" d="m41.463 44.37l.543.891-9-4.158 1.469-1.262.171.34 5.118.451-.068-.275 1.145-.525.025-.275-2.296.465-.089-1.164-2.443-.512-.127.668-.738-.043-.18.625-1.26-.367.274-1.367-1.906.912-3.312-2.752 4.191-.793 1.311 1.471.357-1.27 1.273.318-.17.592.677.127-.172.822 2.526.59.445-.98 2.535 1.574 1.414-1.111.262.148.625-1.168 1.105.201.324.928-.537 1.482.268.42 5.973 1.393-.287.971-.586-.137.135.809-12.652-.865-.277.443 4.537.217-.304.377 2.961-.369-.172.736 2.754-.227-1.995.766 2.198 1.023-2.578-.047 1.395 1.291-2.659-1.023.044 1.033-2.245-1.394m7.435-3.098l-4.066-.938-.902.504-.012.035 4.98.399"/><path fill="#3e4347" d="m32.932 35.36l1.416 1.588.386-1.373 1.03.258-.171.6.686.129-.171.816 2.746.643.428-.945 2.489 1.545 1.416-1.113.3.17.645-1.201.943.172.301.859-.559 1.457.301.473 5.92 1.416-.215.73-5.963-1.373-.986.514-.129.258 6.435.514.13.771-12.57-.857-.43.688 4.505.215-.343.428 3.088-.385-.17.729 2.053-.168-1.453.557 1.93.9-2.316-.043 1.158 1.072-2.23-.859.043.988-2.488-1.547.602.986-8.453-3.902 1.201-1.031.13.258 5.362.473-.086-.344 1.115-.514.049-.514-2.322.471-.086-1.117-2.66-.557-.129.686-.729-.043-.172.602-1.029-.301.301-1.5-2.06.984-3.047-2.531 3.858-.732m.092-.271l-.139.025-3.861.729-.522.1.409.34 3.046 2.531.123.102.145-.068 1.609-.77-.203 1.01-.045.225.221.064 1.029.301.24.07.069-.242.116-.408.529.031.221.014.04-.217.082-.436 2.227.467.071.93.021.281.277-.057 1.992-.402-.003.035-.985.453-.188.086.05.201v.004l-4.873-.43-.068-.133-.143-.285-.242.207-1.201 1.031-.295.252.353.164 8.452 3.902.746.346-.428-.701-.055-.092 1.597.992.401.25-.02-.473-.026-.605 1.874.721 1.215.469-.955-.885-.677-.627 1.661.031 1.179.021-1.069-.498-1.396-.652.903-.346 1.633-.625-1.742.143-1.712.141.093-.395.062-.266 5.427.371.316.021-.053-.313-.078-.467.289.066.23.053.066-.225.215-.73.074-.252-.256-.063-5.822-1.393-.178-.279.512-1.34.033-.086-.03-.086-.301-.859-.048-.137-.143-.027-.943-.172-.18-.031-.086.16-.523.975-.077-.043-.146-.082-.132.104-1.278 1-2.34-1.453-.242-.148-.117.258-.345.758-2.308-.539.121-.578.052-.25-.251-.047-.416-.078.096-.336.07-.248-.25-.063-1.03-.258-.235-.059-.066.234-.262.932-1.111-1.246-.093-.104zm11.29 5.687l.578-.303 2.318.533-2.896-.23m-6.568 1.092l.125-.199 6.568.447-2.389.299.264-.33-.489-.023-4.079-.194"/><path fill="#ffce31" d="m32.361 35.13c-.521-.26-.811-.602-.861-1.016-.102-.822.799-1.604.836-1.635l.162-.139.043.209c.088.443 1.049.543 1.416.543-.002-.002.135-.041.314-.041.257 0 .615.076.865.438l.049.07-.048.07c-.527.779-1.252.943-1.767.943-.311 0-.563-.059-.69-.096-.032.068-.092.227-.14.559l-.023.172-.156-.077"/><path fill="#3e4347" d="m32.418 32.574c.129.645 1.544.645 1.544.645s.13-.041.31-.041c.231 0 .545.068.763.383-.489.723-1.156.889-1.663.889-.426 0-.738-.117-.738-.117s-.129.086-.215.688c-1.804-.902-.001-2.447-.001-2.447m.205-.25h-.205c-.245 0-.883.793-1.014 1.35-.107.457-.039 1.1.902 1.57l.31.154.05-.344c.029-.209.064-.344.092-.428.148.035.363.072.613.072.545 0 1.313-.174 1.87-.998l.097-.143-.098-.141c-.22-.316-.563-.49-.969-.49-.154 0-.279.025-.342.041-.488-.006-1.207-.148-1.266-.443l-.04-.2z"/><path fill="#fff" d="m32.34 32.578l.344-.584.191-.884 4.465-2.225 1.332-1.584-.492 1.504 1.783-.385-1.415 1.078 1.905-.428-1.682 1.16 2.16-.2-1.641 1.04 1.422.13-1.672.82-2.291.615-1.629 1.023-2.29.069z"/><path fill="#3e4347" d="m38.35 27.865l-.361 1.107 1.446-.313-1.423 1.084 1.832-.41-1.542 1.061 2.12-.191-1.254.795-.723.119 1.807.17-1.276.625-2.265.602-1.662 1.037-2.143.049-.435-1.012.314-.529.192-.867 4.409-2.193.964-1.134m.632-1.129l-.821.967-.931 1.094-4.363 2.17-.106.053-.026.117-.185.828-.293.494-.064.109.05.117.435 1.014.066.154.169-.004 2.144-.049.068-.002.059-.035 1.63-1.018 2.228-.592 1.323-.643.798-.391-.885-.084-.613-.057.893-.566.873-.553-1.029.094-1.168.105.756-.52 1.064-.732-1.262.281-.717.162.514-.393.893-.68-1.097.236-1.021.221.227-.695.391-1.202z"/><path fill="#fff" d="m50.836 31.24l-.696-.896.534-1.528-.264-.482.202-.988 4.066-.707-.618 1.191 1.37 1.045-.94 1.619.76 1.586z"/><path fill="#3e4347" d="m54.45 26.805l-.553 1.061 1.369 1.043-.917 1.58.679 1.424-4.168-.795-.578-.795.529-1.518-.289-.531.193-.818 3.735-.651m.455-.332l-.498.086-3.734.65-.162.029-.038.16-.192.818-.022.092.046.084.235.436-.493 1.412-.043.123.076.107.578.795.059.078.098.02 4.168.795.484.092-.212-.445-.623-1.305.852-1.467.111-.191-.176-.133-1.202-.916.455-.873.233-.447z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c5.3,0,10.3-1.4,14.6-3.8l0.1-52.3C42.4,3.4,37.4,2,32,2C17.1,2,4.7,12.9,2.4,27.2v9.6
+ C4.7,51.1,17.1,62,32,62z" fill="#2a5f9e"/><path d="m62 32c0-7.7-2.9-14.7-7.6-20-.9-1-1.8-1.9-2.9-2.8-.3-.3-.7-.6-1-.8h-3.7v-.4l-43.2 21.5c-.1.8-1.6 1.7-1.6 2.5 0 .8 1.9 1.6 1.9 2.4l42.7 21.6v-.4h3.8c.3-.3.7-.5 1-.8 1-.9 2-1.8 2.9-2.8 4.8-5.3 7.7-12.3 7.7-20" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="m50.5 55.6l-48.5-23.4c0 1.6.1 3.1.4 4.6l44.3 21.4c1.3-.8 2.6-1.6 3.8-2.6"/><path d="m2.4 27.2c-.3 1.5-.4 3-.4 4.6l48.5-23.4c-1.2-1-2.5-1.8-3.9-2.6l-44.2 21.4"/></g><path fill="#9c3900" d="m44.7 37.9l-1.6-.3-.1-2.3.2-.9-.2-.9-.1-.9-2.1-.7-1.6-.1-1.3-1 .4-2.9-4-.7 2.7-2.2.1-1.9 2.2-1.1 4.3-1.8.2.6 3.7-1.6v.6l3.2-.8 3.3-1.2-.3 3.6-1.1 1.5-.7 1.7-3.7 2.3 4.8 1.9-2 2.3-2.1.1 1.2.9-1.2.6.9.1-.6.7 1.2-.2-1.5 1.3.2 1.2-1.2-.5.8 1.3-1.5-.4.3 1.4-1.1-.3-.1 1.1z"/><path d="m53.9 18l-.4 3.4-1 1.4-.7 1.7-3.8 2.4 4.8 1.9-1.8 2.2-2.4.1 1.3 1-1.5.7 1.2.1-.7.7 1.1-.2-1.2 1 .2 1.1-1.3-.6.8 1.3-1.4-.3.2 1.3-1-.3-.1 1.1-1.5-.5-1.5-.2-.1-2.2.2-.9-.2-.9-.1-1-2.1-.6-1.7-.2-1.1-.9.4-2.9-3.9-.7 2.5-2.1.1-1.9 2.2-1 4.2-1.8.2.6 3.7-1.6v.6l3.3-.7 3.1-1.1m.3-.3l-.4.1-3.2 1.1-3 .7v-.2-.4l-.4.2-3.4 1.5-.1-.3v-.4l-.3.1-4.2 1.8-2.2 1-.1.1v.1l-.1 1.8-2.4 2-.4.4.5.1 3.7.6-.3 2.6v.1l.1.1 1.1.9h.1.1l1.7.2 1.9.6.1.9.2.9-.2.8.1 2.2v.2h.2l1.5.2 1.4.5.3.1v-.3l.1-.8.7.2.4.1-.1-.4-.2-.9 1 .2.6.1-.3-.5-.4-.7.6.2.4.2-.1-.5-.2-1 1.1-.9.7-.6-.9.1-.4.1.2-.2.4-.4h-.5-.2l.6-.3.4-.2-.4.1-.8-.6 1.7-.1h.1l.1-.1 1.9-2.1.2-.3-.3-.1-4.4-1.7 3.4-2.1h.1v-.1l.7-1.7 1-1.4v-.1-.1l.4-3.4.1-.3z" fill="#3e4347"/><path d="m46.4 42.9c0 0 0 0 0 0" fill="#ffc221"/><path d="m46.4 42.9c0 0 0 0 0 0m0 0" fill="#3e4347"/><path d="m41.5 44.4l.5.9-9-4.2 1.5-1.3.2.3 5.1.5-.1-.3 1.1-.5v-.3l-2.2.5-.1-1.2-2.5-.5-.1.7h-.7l-.2.6-1.3-.4.3-1.4-1.9.9-3.3-2.7 4.2-.8 1.3 1.5.4-1.3 1.3.3-.2.6.7.1-.2.8 2.5.6.4-1 2.5 1.6 1.4-1.1.3.1.6-1.2 1.1.2.3.9-.4 1.7.3.4 6 1.4-.3 1-.6-.1.1.8-12.7-.9-.3.4 4.5.2-.3.4 3-.4-.2.7 2.8-.2-2 .8 2.2 1h-2.6l1.4 1.3-2.7-1v1l-2.1-1.4m7.4-3.1l-4.1-.9-.9.5 5 .4" fill="#ffce31"/><path d="m32.9 35.4l1.4 1.6.4-1.4 1 .3-.2.6.7.1-.2.8 2.7.6.4-.9 2.5 1.5 1.4-1.1.3.2.6-1.2.9.2.3.9-.3 1.4.3.5 5.9 1.4-.2.7-6-1.4-1 .5-.1.3 6.4.5.1.8-12.6-.9-.4.7 4.5.2-.3.4 3.1-.4-.2.7 2.1-.2-1.4.7 1.9.9h-2.3l1.2 1.1-2.2-.9v1l-2.5-1.6.6 1-8.5-3.9 1.2-1 .1.3 5.4.5-.1-.3 1.1-.5v-.5l-2.3.5-.1-1.1-2.7-.6-.1.7h-.7l-.2.6-1-.3.3-1.5-2.1 1-3-2.5 3.9-1m.1-.3h-.1l-3.9.7-.5.1.4.3 3 2.5.1.1.1-.1 1.6-.8-.2 1v.2l.2.1 1 .3.2.1.1-.2.1-.4h.5.2v-.2l.1-.4 2.2.5.1.9v.3l.3-.1 2-.4-1 .5-.2.1v.2l-4.9-.4-.1-.1-.1-.3-.2.2-1.2 1-.3.3.4.2 8.5 3.9.7.3-.4-.7-.1-.1 1.6 1 .4.2v-.5-.6l1.9.7 1.2.5-1-.9-.7-.6h1.7 1.2l-.9-.4-1.4-.7.9-.3 1.6-.6-1.7.1-1.7.1.1-.4.1-.3 5.4.4h.3l-.1-.3-.1-.5.3.1.2.1.1-.2.2-.7.1-.3-.3-.1-5.8-1.4-.2-.3.5-1.3v-.1-.1l-.3-.9v-.1h-.1l-.9-.2h-.2l-.1.2-.5 1h-.1l-.1-.1-.2.1-1.3 1-2.3-1.5-.2-.1-.1.3-.3.8-2.3-.5.1-.6.1-.2h-.3l-.4-.1.1-.3.1-.2-.2-.1-1-.3-.2-.1-.1.2-.3.9-1.1-1.2-.3-.2zm11.3 5.7l.6-.3 2.3.5-2.9-.2m-6.6 1.1l.1-.2 6.6.4-2.4.3.3-.3h-.5l-4.1-.2" fill="#3e4347"/><path d="m32.4 35.1c-.5-.3-.8-.6-.9-1-.1-.8.8-1.6.8-1.6l.2-.1v.2c.1.4 1 .5 1.4.5 0 0 .1 0 .3 0 .3 0 .6.1.9.4v.1.1c-.5.8-1.3.9-1.8.9-.3 0-.6-.1-.7-.1 0 .1-.1.2-.1.6v.2l-.1-.2" fill="#ffce31"/><path d="m32.4 32.6c.1.6 1.5.6 1.5.6s.1 0 .3 0c.2 0 .5.1.8.4-.5.7-1.2.9-1.7.9-.4 0-.7-.1-.7-.1s-.1.1-.2.7c-1.8-1 0-2.5 0-2.5m.2-.3h-.2c-.2 0-.9.8-1 1.3-.1.5 0 1.1.9 1.6l.3.2v-.3c0-.2.1-.3.1-.4.1 0 .4.1.6.1.5 0 1.3-.2 1.9-1l.1-.1-.1-.1c-.2-.3-.6-.5-1-.5-.2 0-.3 0-.3 0-.5 0-1.2-.1-1.3-.4v-.4z" fill="#3e4347"/><path fill="#fff" d="m32.3 32.6l.4-.6.2-.9 4.4-2.2 1.4-1.6-.5 1.5 1.8-.4-1.5 1.1 2-.4-1.7 1.1 2.1-.2-1.6 1.1 1.4.1-1.7.8-2.3.6-1.6 1.1h-2.3z"/><path d="m38.4 27.9l-.4 1.1 1.4-.3-1.4 1 1.8-.4-1.5 1.1 2.1-.2-1.2.8-.7.1 1.8.2-1.3.6-2.3.6-1.7 1h-2.1l-.4-1 .3-.5.2-.9 4.4-2.2 1-1m.6-1.2l-.8 1-.9 1.1-4.4 2.2h-.1v.1l-.2.9-.3.5-.1.1v.1l.4 1 .1.2h.2 2.1.1.1l1.6-1 2.2-.6 1.3-.6.8-.4-.8-.3h-.6l.9-.6.9-.6-1 .1-1.2.1.8-.5 1.1-.7-1.3.3-.7.2.5-.4.9-.7-1.1.2-1 .2.2-.7.3-1.2z" fill="#3e4347"/><path fill="#fff" d="m50.8 31.2l-.7-.9.6-1.5-.3-.5.2-1 4.1-.7-.6 1.2 1.3 1.1-.9 1.6.7 1.6z"/><path d="m54.4 26.8l-.6 1.1 1.4 1-.9 1.6.7 1.4-4.2-.8-.6-.8.5-1.5-.3-.5.2-.8 3.8-.7m.5-.3l-.5.1-3.7.6h-.2v.2l-.2.8v.1.1l.2.4-.5 1.4v.1l.1.1.6.8.1.1h.1l4.2.8.5.1-.2-.4-.6-1.3.9-1.5.1-.2-.2-.1-1.2-.9.5-.9v-.4z" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f9.svg
index 1b4fe93..407ac40 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1f9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/></g><path fill="#fff" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z"/></g><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fa.svg
index 56257a1..48ab1dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M32,2v10H12v20H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><g fill="#fff"><path d="M14,8C6.714,13.473,2,22.186,2,32h12V8z"/><path d="M8,14h24V2C22.186,2,13.473,6.714,8,14z"/><path d="M9.831,11.789L26,32h6v-7.5L17.15,5.938C14.413,7.5,11.941,9.476,9.831,11.789z"/></g><g fill="#ed4c5c"><path d="M32,5H18.913C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><path d="m32 27.06l-13-16.06h-6l17 21h2z"/></g><g fill="#fff"><path d="M8 35.715 10.226 33 9.542 36.477 13 36.568 9.923 38.19 12.01 41.02 8.855 39.563 8 43 7.145 39.563 3.991 41.02 6.077 38.19 3 36.568 6.458 36.477 5.774 33z"/><path d="m52 20.17l1.781-2.17-.551 2.781 2.77.074-2.46 1.295 1.67 2.265-2.526-1.165-.684 2.75-.68-2.75-2.527 1.165 1.667-2.265-2.46-1.295 2.766-.074-.546-2.781z"/><path d="m52 40.17l1.781-2.17-.551 2.781 2.77.074-2.46 1.295 1.67 2.26-2.526-1.16-.684 2.75-.68-2.75-2.527 1.16 1.667-2.26-2.46-1.295 2.766-.074-.546-2.781z"/><path d="m42 26.17l1.781-2.17-.551 2.781 2.77.074-2.462 1.295 1.672 2.265-2.526-1.165-.684 2.75-.68-2.75-2.527 1.165 1.668-2.265-2.461-1.295 2.766-.074-.546-2.781z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2v10H12v20H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><path d="M32,2c-4.7,0-9.1,1.1-13.1,3v3.1V11H11v2.9V14v4.9H5c-1.9,4-3,8.4-3,13.1h12V17l12,15h6v-7.5L23.6,14H32V2z" fill="#fff"/><g fill="#ed4c5c"><path d="m15.4 14l14.6 18h2v-4.9l-10.6-13.1z"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z"/></g><g fill="#fff"><path d="m8 35.7l2.2-2.7-.7 3.5 3.5.1-3.1 1.6 2.1 2.8-3.1-1.4-.9 3.4-.9-3.4-3.1 1.4 2.1-2.8-3.1-1.6 3.5-.1-.7-3.5z"/><path d="m52 20.2l1.8-2.2-.6 2.8 2.8.1-2.5 1.3 1.7 2.2-2.5-1.2-.7 2.8-.7-2.8-2.5 1.2 1.7-2.2-2.5-1.3 2.8-.1-.6-2.8z"/><path d="m52 40.2l1.8-2.2-.6 2.8 2.8.1-2.5 1.3 1.7 2.2-2.5-1.2-.7 2.8-.7-2.8-2.5 1.2 1.7-2.2-2.5-1.3 2.8-.1-.6-2.8z"/><path d="m42 26.2l1.8-2.2-.6 2.8 2.8.1-2.5 1.3 1.7 2.2-2.5-1.2-.7 2.8-.7-2.8-2.5 1.2 1.7-2.2-2.5-1.3 2.8-.1-.6-2.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fc.svg
index 0488d3e..ab3f2d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m59.5 44v-4h1.404c.705-2.549 1.1-5.227 1.1-8 0-16.568-13.432-30-30-30s-30 13.432-30 30c0 2.771.384 5.451 1.087 8h1.417v4c.938 2.145 2.129 4.15 3.519 6h3.59v3.982c5.351 4.969 12.508 8.02 20.387 8.02 7.874 0 15.03-3.037 20.388-8v-4h3.612c1.387-1.846 2.561-3.859 3.496-6"/><g fill="#ffe62e"><path d="m4.504 44h54.992c.563-1.289 1.037-2.625 1.417-4h-57.826c.38 1.375.853 2.711 1.417 4"/><path d="M8,50c1.082,1.439,2.293,2.777,3.612,4h40.775c1.319-1.223,2.53-2.561,3.612-4H8z"/></g><path fill="#fff" d="M22,33.713l-3.73-9.982L8.286,20l9.983-3.73L22,6.287l3.73,9.982L35.714,20l-9.983,3.73L22,33.713z"/><path fill="#c94747" d="M19.823 17.824 22 12 24.18 17.824 30 20 24.18 22.18 22 28 19.823 22.18 14 20z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 44v-4h1.4c.7-2.5 1.1-5.2 1.1-8 0-16.6-13.4-30-30-30s-30 13.4-30 30c0 2.8.4 5.5 1.1 8h1.4v4c.9 2.1 2.1 4.2 3.5 6h3.6v4c5.4 5 12.5 8 20.4 8 7.9 0 15-3 20.4-8v-4h3.6c1.4-1.8 2.6-3.9 3.5-6" fill="#42ade2"/><g fill="#ffe62e"><path d="m4.5 44h55c.6-1.3 1-2.6 1.4-4h-57.8c.4 1.4.8 2.7 1.4 4"/><path d="M8,50c1.1,1.4,2.3,2.8,3.6,4h40.8c1.3-1.2,2.5-2.6,3.6-4H8z"/></g><path d="m22 33.7l-3.7-10-10-3.7 10-3.7 3.7-10 3.7 10 10 3.7-10 3.7-3.7 10" fill="#fff"/><path fill="#c94747" d="M19.8 17.8 22 12 24.2 17.8 30 20 24.2 22.2 22 28 19.8 22.2 14 20z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fd.svg
index 5ccfb3d..81ab225 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m61.721 28c-.137-1.016-.314-2.02-.551-3h-58.34c-.235.98-.414 1.984-.551 3h59.44"/><path d="m2.28 36c.137 1.016.315 2.02.551 3h58.34c.236-.982.414-1.984.551-3h-59.44"/><path d="m20 4.488c-1.03.451-2.033.953-3 1.514v51.996c.967.561 1.97 1.063 3 1.512v-55.02"/><path d="m28 2.262v59.48c.986.133 1.984.23 3 .264v-60c-1.016.033-2.01.131-3 .262"/></g><g fill="#ed4c5c"><path d="m2 32c0 1.358.099 2.69.273 4h59.45c.176-1.311.274-2.643.274-4 0-1.357-.098-2.691-.273-4h-59.45c-.175 1.308-.274 2.642-.274 4"/><path d="m20 59.5c2.508 1.096 5.191 1.855 8 2.23v-59.45c-2.809.375-5.492 1.135-8 2.23v54.993"/></g><g fill="#2a5f9e"><path d="M17,25V6.023C9.983,10.084,4.766,16.902,2.831,25H17z"/><path d="M17,39.023V58C9.983,53.939,4.766,47.121,2.831,39.023H17z"/><path d="M32,2c-0.336,0-0.666,0.014-1,0.025V25h30.17C58.016,11.809,46.158,2,32,2z"/><path d="m31 39v22.975c.334.009.664.025 1 .025 14.158 0 26.02-9.811 29.17-23h-30.17"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m61.7 28c-.1-1-.3-2-.6-3h-58.3c-.2 1-.4 2-.6 3h59.5"/><path d="m2.3 36c.1 1 .3 2 .6 3h58.3c.2-1 .4-2 .6-3h-59.5"/><path d="m20 4.5c-1 .5-2 1-3 1.5v52c1 .6 2 1.1 3 1.5v-55"/><path d="m28 2.3v59.5c1 .1 2 .2 3 .3v-60.1c-1 0-2 .1-3 .3"/></g><g fill="#ed4c5c"><path d="m2 32c0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4 0-1.4-.1-2.7-.3-4h-59.5c-.2 1.3-.3 2.6-.3 4"/><path d="m20 59.5c2.5 1.1 5.2 1.9 8 2.2v-59.4c-2.8.4-5.5 1.1-8 2.2v55"/></g><g fill="#2a5f9e"><path d="M17,25V6C10,10.1,4.8,16.9,2.8,25H17z"/><path d="M17,39v19C10,53.9,4.8,47.1,2.8,39H17z"/><path d="M32,2c-0.3,0-0.7,0-1,0v23h30.2C58,11.8,46.2,2,32,2z"/><path d="m31 39v23c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ff.svg
index 6a73b76..4ac419f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6-1f1ff.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#83bf4f" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#ed4c5c" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/><g fill="#fff"><path d="m31.607 40.19c-4.515 0-8.173-3.668-8.173-8.192 0-4.523 3.658-8.192 8.173-8.192 1.075 0 2.099.214 3.039.591-1.604-1.224-3.594-1.958-5.765-1.958-5.261 0-9.528 4.28-9.528 9.559 0 5.278 4.268 9.559 9.528 9.559 2.171 0 4.161-.733 5.765-1.958-.94.378-1.963.591-3.039.591"/><path d="m40.42 33.427l-2.22 1.427 1.383-2.252-2.583-.572 2.574-.606-1.424-2.224 2.25 1.384.565-2.584.611 2.573 2.227-1.423-1.383 2.248 2.58.567-2.57.611 1.424 2.228-2.253-1.388-.571 2.584z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#428bc1"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#83bf4f"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#ed4c5c"/><g fill="#fff"><path d="m31.6 40.2c-4.5 0-8.2-3.7-8.2-8.2 0-4.5 3.7-8.2 8.2-8.2 1.1 0 2.1.2 3 .6-1.6-1.2-3.6-2-5.8-2-5.3 0-9.5 4.3-9.5 9.6 0 5.3 4.3 9.6 9.5 9.6 2.2 0 4.2-.7 5.8-2-.9.4-1.9.6-3 .6"/><path d="m40.4 33.4l-2.2 1.5 1.4-2.3-2.6-.6 2.6-.6-1.5-2.2 2.3 1.4.6-2.6.6 2.6 2.2-1.5-1.4 2.3 2.6.6-2.6.6 1.5 2.2-2.3-1.4-.6 2.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e6.svg
new file mode 100644
index 0000000..5670a81
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m28.6 17.5h6.9l10.3 29h-6.6l-1.9-6h-10.7l-2 6h-6.3l10.3-29m-.4 18h7.4l-3.6-11.4-3.8 11.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e6.svg
index 7950c58..9c14bd4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m10.787 53.21c11.716 11.717 30.711 11.717 42.43 0l-42.43-42.42c-11.716 11.714-11.716 30.71 0 42.42"/><path fill="#ffce31" d="m10.787 10.788l42.43 42.42v-42.42c-11.715-11.716-30.71-11.716-42.43 0"/><path fill="#2a5f9e" d="m53.21 10.788v42.42c11.716-11.715 11.716-30.711 0-42.42"/><g fill="#fff"><path d="m10.907 20.981l2.415 1.834-.913-2.982 2.405-1.848-2.978-.01-.929-2.975-.928 2.975-2.979.01 2.405 1.848-.913 2.982z"/><path d="m17.744 27.819l2.416 1.833-.913-2.982 2.404-1.847-2.977-.01-.93-2.975-.929 2.975-2.977.01 2.404 1.847-.913 2.982z"/><path d="m24.582 34.656l2.415 1.832-.917-2.98 2.408-1.848-2.977-.01-.929-2.976-.93 2.976-2.977.01 2.405 1.848-.91 2.98z"/><path d="m31.419 41.492l2.415 1.838-.913-2.98 2.409-1.854-2.98-.01-.931-2.974-.929 2.974-2.978.01 2.405 1.854-.917 2.98z"/><path d="m38.26 48.33l2.411 1.83-.912-2.98 2.401-1.85-2.97-.01-.93-2.97-.93 2.97-2.98.01 2.404 1.85-.913 2.98z"/><path d="m45.09 55.17l2.42 1.83-.914-2.98 2.404-1.85-2.98-.01-.93-2.97-.93 2.97-2.97.01 2.401 1.85-.913 2.98z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m10.8 53.2c11.7 11.7 30.7 11.7 42.4 0l-42.4-42.4c-11.7 11.7-11.7 30.7 0 42.4" fill="#2a5f9e"/><path d="m10.8 10.8l42.4 42.4v-42.4c-11.7-11.7-30.7-11.7-42.4 0" fill="#ffce31"/><path d="m53.2 10.8v42.4c11.7-11.7 11.7-30.7 0-42.4" fill="#2a5f9e"/><g fill="#fff"><path d="m10.9 21l2.4 1.8-.9-3 2.4-1.8h-3l-.9-3-.9 3h-3l2.4 1.8-.9 3z"/><path d="m17.7 27.8l2.5 1.9-1-3 2.5-1.9h-3l-1-3-.9 3h-3l2.4 1.9-.9 3z"/><path d="m24.6 34.7l2.4 1.8-.9-3 2.4-1.8-3-.1-.9-2.9-.9 2.9-3 .1 2.4 1.8-.9 3z"/><path d="m31.4 41.5l2.4 1.8-.9-3 2.4-1.8h-3l-.9-3-.9 3h-3l2.4 1.8-.9 3z"/><path d="m38.3 48.3l2.4 1.9-.9-3 2.4-1.9h-3l-.9-3-1 3h-3l2.5 1.9-1 3z"/><path d="m45.1 55.2l2.4 1.8-.9-3 2.4-1.8h-3l-.9-3-.9 3h-3l2.4 1.8-.9 3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e7.svg
index ab94718..6bf8ae2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M2,32c0,11.511,6.486,21.502,16,26.532V5.467C8.486,10.498,2,20.489,2,32z"/><path d="m62 32c0-11.511-6.486-21.502-16-26.533v53.06c9.514-5.03 16-15.02 16-26.532"/></g><path fill="#ffce31" d="M32,2c-5.058,0-9.819,1.257-14,3.467v53.065C22.181,60.743,26.942,62,32,62s9.819-1.257,14-3.468V5.467
- C41.819,3.257,37.058,2,32,2z"/><g fill="#3e4347"><path d="m43.838 20.16l-1.074-1.075c-.196.221-4.625 5.25-5.058 15.12h-4.227v-10.925h-2.959v10.925h-4.227c-.433-9.873-4.861-14.901-5.058-15.12l-2.15 2.146c.043.049 4.282 4.955 4.282 14.536v1.56h7.152v10.817h2.959v-10.818h7.151v-1.56c0-9.581 4.241-14.487 4.283-14.536l-1.074-1.07"/><path d="m32 15.856l-3.229 9.686h6.459z"/><path d="m21.236 19.09l6.458 6.452h-4.04z"/><path d="m42.76 19.09l-6.46 6.452h4.04z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m2 32c0 11.5 6.5 21.5 16 26.5v-53c-9.5 5-16 15-16 26.5"/><path d="m62 32c0-11.5-6.5-21.5-16-26.5v53.1c9.5-5.1 16-15.1 16-26.6"/></g><path d="M32,2c-5.1,0-9.8,1.3-14,3.5v53.1c4.2,2.2,8.9,3.5,14,3.5s9.8-1.3,14-3.5V5.5C41.8,3.3,37.1,2,32,2z" fill="#ffce31"/><g fill="#3e4347"><path d="m43.8 20.2l-1.1-1.1c-.2.2-4.6 5.2-5.1 15.1h-4.2v-10.9h-3v10.9h-4.2c-.4-9.9-4.9-14.9-5.1-15.1l-2.1 2.1c0 0 4.3 5 4.3 14.5v1.6h7.2v10.8h3v-10.8h7.2v-1.6c0-9.6 4.2-14.5 4.3-14.5l-1.2-1"/><path d="m32 15.9l-3.2 9.6h6.4z"/><path d="m21.2 19.1l6.5 6.4h-4z"/><path d="m42.8 19.1l-6.5 6.4h4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e9.svg
index a50242c..e271337 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#75a843" cx="32" cy="32" r="30"/><circle fill="#699635" cx="32" cy="32" r="30"/><circle fill="#ed4c5c" cx="26" cy="32" r="14.11"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#75a843"/><circle cx="32" cy="32" r="30" fill="#699635"/><circle cx="26" cy="32" r="14.1" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ea.svg
index 6909ff4..085c2cd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ea.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#3e4347" d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#ffe62e" d="M42,3.714C38.872,2.607,35.508,2,32,2s-6.872,0.607-10,1.714v56.572C25.129,61.393,28.493,62,32,62
- s6.872-0.607,10-1.714V3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#3e4347"/><path d="M42,3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7v56.6c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7z" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1eb.svg
index 31d64b4..eeb129a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#ed4c5c" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><path fill="#ffce31" d="m32 36.775l5.563 4.225-2.104-6.87 5.541-4.256-6.86-.02-2.14-6.854-2.142 6.854-6.858.02 5.538 4.256-2.1 6.87z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#83bf4f"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#ed4c5c"/><path fill="#ffce31" d="m32 36.8l5.6 4.2-2.1-6.9 5.5-4.2h-6.9l-2.1-6.9-2.1 6.9h-6.9l5.5 4.2-2.1 6.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ec.svg
index 4adc709..f6a6723 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ec.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M32,2C18.94,2,7.833,10.35,3.714,22h56.573C56.168,10.35,45.061,2,32,2z"/><path fill="#ed4c5c" d="M32,62c13.06,0,24.167-8.35,28.287-20H3.714C7.833,53.65,18.94,62,32,62z"/><path fill="#83bf4f" d="M3.714,22C2.608,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.573C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.713-10H3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#f9f9f9"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ed.svg
index ed57cc4..f708818 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ed.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M26.772,61.536L36,56l-10-6l10-6l-10-6l10-6l-10-6l10-6l-10-6l10-6l-9.228-5.537
- C12.697,4.938,2,17.216,2,32S12.697,59.062,26.772,61.536z"/><path fill="#c94747" d="m32 2c-1.784 0-3.529.165-5.228.463l9.228 5.537-10 6 10 6-10 6 10 6-10 6 10 6-10 6 10 6-9.228 5.536c1.699.299 3.444.464 5.228.464 16.568 0 30-13.432 30-30s-13.432-30-30-30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.8,61.5L36,56l-10-6l10-6l-10-6l10-6l-10-6l10-6l-10-6l10-6l-9.2-5.5C12.7,4.9,2,17.2,2,32
+ S12.7,59.1,26.8,61.5z" fill="#f9f9f9"/><path d="m32 2c-1.8 0-3.5.2-5.2.5l9.2 5.5-10 6 10 6-10 6 10 6-10 6 10 6-10 6 10 6-9.2 5.5c1.7.3 3.4.5 5.2.5 16.6 0 30-13.4 30-30s-13.4-30-30-30" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ee.svg
index 1160d00..7ea0077 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ee.svg
@@ -1,5 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m45.23 38.756c1.031-2.033 1.625-4.322 1.625-6.756 0-2.433-.594-4.723-1.625-6.755l10.972-10.972c-1.87-2.549-4.133-4.787-6.698-6.633l-10.962 10.96c-2.027-1.015-4.31-1.6-6.733-1.6s-4.706.585-6.734 1.6l-10.799-10.798c-2.548 1.87-4.787 4.133-6.633 6.698l10.745 10.745c-1.031 2.032-1.625 4.322-1.625 6.755 0 2.434.594 4.723 1.625 6.756l-10.745 10.744c1.847 2.566 4.085 4.828 6.633 6.699l10.799-10.799c2.028 1.016 4.31 1.6 6.734 1.6s4.706-.584 6.733-1.6l10.961 10.959c2.565-1.846 4.828-4.084 6.698-6.633l-10.971-10.97"/><path fill="#ed4c5c" d="M31.806,17c2.424,0,4.706,0.585,6.733,1.6L49.5,7.641C44.573,4.095,38.533,2,32,2
- c-6.633,0-12.76,2.156-17.727,5.802L25.072,18.6C27.1,17.585,29.382,17,31.806,17z"/><g fill="#83bf4f"><path d="M46.852,32c0,2.434-0.594,4.723-1.625,6.756l10.972,10.971C59.844,44.76,62,38.633,62,32
- s-2.156-12.76-5.802-17.727L45.227,25.245C46.258,27.277,46.852,29.567,46.852,32z"/><path d="M16.76,32c0-2.433,0.594-4.723,1.625-6.755L7.64,14.5C4.095,19.427,2,25.467,2,32s2.095,12.574,5.64,17.5
- l10.745-10.744C17.354,36.723,16.76,34.434,16.76,32z"/></g><g fill="#ed4c5c"><path d="M31.806,47c-2.424,0-4.706-0.584-6.734-1.6L14.273,56.199C19.24,59.844,25.367,62,32,62
- c6.533,0,12.573-2.094,17.5-5.641L38.539,45.4C36.512,46.416,34.229,47,31.806,47z"/><path d="m34.806 25h-1.999l-1-2-1 2h-1.999l1 2-1 2h1.999l1 2 1-2h1.999l-1-2 1-2"/><path d="m28.806 35h-1.999l-1-2-1 2h-1.999l1 2-1 2h1.999l1 2 1-2h1.999l-1-2 1-2"/><path d="m40.806 35h-1.999l-1-2-1 2h-1.999l1 2-1 2h1.999l1 2 1-2h1.999l-1-2 1-2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.2 38.8c1-2 1.6-4.3 1.6-6.8 0-2.4-.6-4.7-1.6-6.8l11-11c-1.9-2.5-4.1-4.8-6.7-6.6l-11 11c-2-1-4.3-1.6-6.7-1.6s-4.7.6-6.7 1.6l-10.8-10.8c-2.5 1.9-4.8 4.1-6.6 6.7l10.7 10.7c-1 2-1.6 4.3-1.6 6.8 0 2.4.6 4.7 1.6 6.8l-10.8 10.7c1.8 2.6 4.1 4.8 6.6 6.7l10.8-10.8c2 1 4.3 1.6 6.7 1.6s4.7-.6 6.7-1.6l11 11c2.6-1.8 4.8-4.1 6.7-6.6l-10.9-11" fill="#fff"/><path d="m31.8 17c2.4 0 4.7.6 6.7 1.6l11-11c-4.9-3.5-11-5.6-17.5-5.6-6.6 0-12.8 2.2-17.7 5.8l10.8 10.8c2-1 4.3-1.6 6.7-1.6" fill="#ed4c5c"/><g fill="#83bf4f"><path d="m46.9 32c0 2.4-.6 4.7-1.6 6.8l11 11c3.6-5 5.8-11.1 5.8-17.7s-2.2-12.8-5.8-17.7l-11 11c1 1.9 1.6 4.2 1.6 6.6"/><path d="m16.8 32c0-2.4.6-4.7 1.6-6.8l-10.8-10.7c-3.5 4.9-5.6 11-5.6 17.5s2.1 12.6 5.6 17.5l10.7-10.7c-.9-2.1-1.5-4.4-1.5-6.8"/></g><g fill="#ed4c5c"><path d="m31.8 47c-2.4 0-4.7-.6-6.7-1.6l-10.8 10.8c5 3.6 11.1 5.8 17.7 5.8 6.5 0 12.6-2.1 17.5-5.6l-11-11c-2 1-4.3 1.6-6.7 1.6"/><path d="m34.8 25h-2l-1-2-1 2h-2l1 2-1 2h2l1 2 1-2h2l-1-2 1-2"/><path d="m28.8 35h-2l-1-2-1 2h-2l1 2-1 2h2l1 2 1-2h2l-1-2 1-2"/><path d="m40.8 35h-2l-1-2-1 2h-2l1 2-1 2h2l1 2 1-2h2l-1-2 1-2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ef.svg
index aad6aae..0e99fb0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M22,60.287V3.714C10.35,7.833,2,18.938,2,32C2,45.063,10.35,56.168,22,60.287z"/><path fill="#ffce31" d="m22 32h40c0-16.568-13.432-30-30-30-3.508 0-6.871.608-10 1.714v28.29"/><path fill="#ed4c5c" d="M22,32v28.287C25.129,61.393,28.492,62,32,62c16.568,0,30-13.432,30-30H22z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M22,60.3V3.7C10.4,7.8,2,18.9,2,32C2,45.1,10.4,56.2,22,60.3z" fill="#83bf4f"/><path d="m22 32h40c0-16.6-13.4-30-30-30-3.5 0-6.9.6-10 1.7v28.3" fill="#ffce31"/><path d="m22 32v28.3c3.1 1.1 6.5 1.7 10 1.7 16.6 0 30-13.4 30-30h-40" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f1.svg
index ee9cb39..ad59884 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f5f5f5" cx="32" cy="32" r="30"/><path fill="#3e4347" d="m47.43 38.17l-.088-.124c-.282-.393-.388-.539-.669-.539l-.243.002-.149.185c-.162.199-.119.405-.073.622.028.133.07.33.1.579.06.501-3.177.958-4.24 1.108-.744.105-1.465.209-2.068.328l-.103.027c-.708.152-1.22.488-1.438.941-.142.285-.012.506.272.99.272.463.75 1.275.845 1.9-.09.057-.18.111-.271.162-2.517 1.369-4.505 1.877-7.336 1.877-2.83 0-4.818-.508-7.335-1.877-.092-.051-.182-.105-.271-.162.095-.625.574-1.439.847-1.904.282-.48.411-.699.273-.984-.22-.455-.732-.789-1.413-.938l-.131-.033c-.604-.119-1.324-.223-2.068-.328-1.063-.15-4.3-.607-4.24-1.109.029-.248.071-.445.1-.578.045-.218.089-.424-.073-.622l-.155-.187h-.238c-.28 0-.386.146-.667.538l-.088.123c-.264.363-.353.718-.265 1.054.03.117.129.338.267.629.149.314.347.73.522 1.197.245.65.389 1.232.414 1.688.042.744.881 1.01 1.382 1.16.432.135.99.166 1.486.182-.016.367-.079.75-.197 1.207-.091.348-.019.758.188 1.068.218.334.546.541.835.723l.105.066c3.321 2.129 7.13 3.301 10.724 3.301 3.598 0 7.406-1.172 10.725-3.301l.108-.068c.288-.182.614-.387.834-.719.207-.32.276-.719.186-1.07-.118-.457-.183-.84-.198-1.207.497-.016 1.056-.047 1.486-.182.501-.154 1.34-.416 1.383-1.16.025-.455.168-1.039.413-1.688.176-.465.373-.879.521-1.193.14-.293.238-.516.268-.631.084-.337-.005-.692-.267-1.053"/><path fill="#fff" d="m47.02 38.466c-.563-.781-.324-.494-.222.373.155 1.305-4.257 1.502-6.708 1.986l-.092.026c-.521.113-.939.35-1.097.674-.069.139-.039.324.035.467l-.05-.02c.452.791 1.244 1.342 1.198 2.49-.182.113-.36.232-.548.334-2.702 1.469-4.768 1.938-7.574 1.938-2.805 0-4.871-.469-7.572-1.938-.188-.102-.367-.221-.549-.334-.046-1.148.746-1.699 1.198-2.49l-.05.02c.074-.143.104-.328.037-.467-.157-.324-.578-.561-1.099-.674l-.093-.025c-2.451-.484-6.863-.682-6.708-1.986.103-.867.341-1.154-.222-.373-.145.199-.242.418-.185.635.06.232.451.92.772 1.775.227.6.413 1.26.445 1.836.019.32.39.512 1.031.711.509.158 1.298.154 1.832.17.033.521-.013 1.068-.208 1.822-.057.219-.002.48.123.668.181.277.505.457.791.641 3.32 2.129 7.05 3.223 10.454 3.223 3.403 0 7.135-1.092 10.455-3.223.286-.184.611-.363.793-.639.123-.189.178-.449.121-.67-.196-.754-.241-1.301-.208-1.822.534-.016 1.323-.012 1.832-.17.642-.199 1.013-.391 1.031-.711.032-.576.218-1.236.444-1.836.323-.855.714-1.543.773-1.775.063-.218-.035-.437-.18-.636"/><path fill="#2a5f9e" d="m40.487 21.782h-16.978c-.046 2.884-.043 5.77 0 8.655.04 2.779.177 4.948 1.4 6.645 1.474 2.043 3.93 3.517 7.089 4.965 3.159-1.448 5.615-2.922 7.088-4.965 1.224-1.696 1.36-3.865 1.401-6.645.043-2.885.045-5.771 0-8.655"/><path fill="#ed4c5c" d="m40.25 34.04c.006-.721.155-1.063.155-1.785.075-1.447.104-2.885.081-4.327h-16.978c-.023 1.442.005 2.868.081 4.327 0 .722.153 1.064.159 1.785h16.502"/><path fill="#ffce31" d="m21.593 17.275l1.916 4.507c5.2-1.556 11.592-1.55 16.979 0l1.951-4.604.554.183.703-1.611-1.296-.37-.303.772-.626-.171.273-.771-1.313-.297-.24.782-.622-.123.204-.794-1.317-.229-.183.792-.862-.128-.08.4-.331-.048.063-.399-.666-.072-.061.391-.334-.032.054-.402-.663-.061-.056.401-.646-.045.121-1.215-1.334-.059-.049.802-.649-.013.021-.806h-1.343l.012.796-.639.01-.043-.789-1.34.068.118 1.199-.646.049-.055-.405-.665.061.049.405-.326.033-.069-.401-.667.087.066.395-.324.042-.076-.397-.873.122-.18-.786-1.319.23.224.78-.647.124-.234-.771-1.314.303.268.741-.624.185-.293-.756-1.291.381.703 1.611.32-.097"/><path fill="#fff" d="m32.1 30.88l.837-2.063-.917.612-.92-.612.843 2.063-2.061-.84.611.916-.611.917 2.061-.843-.843 2.06.92-.607.917.607-.837-2.06 2.06.843-.613-.917.613-.916z"/><path fill="#3e4347" d="m23.827 31.913l-.021-.486h-.369l.001-.21c.083-1.922-1.255-3.063-2.549-4.167-.326-.277-.657-.56-.975-.859.997.654 2.029 1.41 2.434 1.741l-.093.363.495.288h.143c.44 0 .667-.439.744-.627l.055-.135-.025-.142c-.148-.842-1.718-2.528-3.102-3.876.018-.455-.096-.823-.341-1.097-.159-.179-.367-.307-.612-.38.196-.221.412-.4.56-.522.207-.172.371-.308.364-.649-.102-.622-.784-.782-1.49-.342l-.202-.119c-.396-.198-.858-.059-1.287.448h-.125c-.153 0-.384.047-.605.269-.176.177-.313.436-.416.721l-.105.021c-.436.084-.901.444-.903 1.592l-.017.014c-.325-.487-.494-.937-.601-1.22-.108-.29-.221-.589-.634-.622-.209 0-.401.097-.527.265-.056.075-.139.186-.164.452l-.138.003-.136.106c-.231.181-.369.436-.4.74l-.109-.01-.41.114-.08.217c-.129.347-.101.711.005 1.059l-.308.015-.146.242c-.091.151-.179.296.124 1.021l-.274.104c-.192.147-.301.362-.303.605-.002.232.105.484.269.73l-.044.061c-.128.174-.174.391-.131.611.042.213.177.432.356.639-.105.178-.133.383-.076.588.167.615 1.228 1.169 2.156 1.545-.521.607-.833 1.252-.759 1.635l.091.338.277.092.192.031c.098 0 .194-.021.295-.063-.022.191-.013.365.039.512.083.236.266.402.501.451l.106.012c.355 0 .539-.283.815-.713l.01-.016.02.199c-.334.403-1.055 1.283-1.284 1.646-.255.308-.199.568-.141.701l.005.012c-.312.304-.649.611-.848.738-.354.243-.311.535-.274.65l.194.377h.099l.018.045.052.121.105.081c.264.2.682.159 1.047-.005l.032.021.118.07h.138c.192 0 .417-.09.637-.215l.321.107.2-.126c.185-.116.865-.67 1.4-1.11.149.383.264.855.314 1.154l.075.436.038-.002c-.015 1.311-.028 1.557-.025 1.562l-.049.263.19.186c.712.697.995 1.092 1.201 1.379.116.16.212.293.33.418l.424.457.354-.512c.095-.137.203-.197.352-.197l.136.016h-.001l.534.199.128-.555c.067-.291.456-.65.634-.779l1.102-.795-1.354-.109c-.799-.064-2.093-.438-2.436-.609-.041-.116-.101-.434.024-1.176.187-.18.727-.711 1.363-1.432.304.078.585.208.853.395l.145.07c.189.057.376.055.561.023l.166-.029.114-.123.178-.201c.135-.158.547-.641.688-.675l.584.136.029-.598c.036-.725-.043-3.487-.046-3.604m-1.389 2.134c-.121.661-.308 1.26-.498 1.346-.001-.001-.097-.019-.28-.22.295-.392.555-.768.778-1.126"/><g fill="#ffce31"><path d="m18.944 36.962l-.785.476c-.021 2.499-.044 2.587-.044 2.587 1.095 1.072 1.225 1.467 1.548 1.814.42-.609 1.072-.365 1.072-.365.133-.575.829-1.072.829-1.072-.972-.078-2.653-.576-2.785-.775-.441-.661.165-2.665.165-2.665"/><path d="m23.05 32.485c.117.813-.352 5.754-2.275 2.485l-1.82 1.28c0 0 1.352-.551 2.738.421.131.039.229.027.333.009.269-.286.876-1.131 1.345-1.021.035-.713-.047-3.564-.047-3.564-.204-.008-.274.39-.274.39"/><path d="m22.905 27.94l-.074.291c.177.109.344-.298.344-.298-.177-1.01-3.409-4.04-3.409-4.04l-1.423.299-.125.626c1.161.421 4.609 2.92 4.687 3.119"/></g><path fill="#fff" d="m18.627 25.702c0 0-.473-1.407.398-.786.703-.109.642-.807.642-.807h.387c.162-1.419-1.163-1.185-1.31-1.155.319-.885 1.299-1.459 1.299-1.55-.109-.67-1.367.425-1.969 1.067.2-.664.589-1.14.546-1.162-.4-.2-.89.541-1.197 1.125.021-.354.037-.625.009-.625-.51 0-.811 1.421-.807 2.084-.12-.534-.177-.994-.226-1.083-.623.121-.515 1.347-.435 1.892-.189-.195-.332-.328-.332-.328-.08.072-.06.359-.047.583-1.121-1.129-1.29-2.362-1.418-2.374-.47-.039-.057 1.506.124 2.113-.565-.756-.715-1.459-.799-1.394-.841.658 1.019 2.831 1.444 3.232-1.981-1.184-2.05-2.477-2.283-2.392-.482 1.305 2.529 3.568-.377 1.426-.477-.351.608 1.702.608 1.702.482.449-.737-.533-.996-.463-.545.415 1.205 1.792 1.205 1.792.164.246-.959-.551-1.183-.498-.366.498 1.404 1.581 1.404 1.581.763.438-1.075-.533-1.117-.421-.567.666 2.516 1.73 2.516 1.73-.974.84-1.291 1.733-1.133 1.787.233.078 1.079-.764 1.544-1.016-.629.773-.938 1.854-.57 1.934.229.01.849-1.596 1.749-1.856-.289.626-.551 1.427-.357 1.954 0 0-1.199 1.431-1.424 1.815-.332.366.313.263.313.263s-.954 1.01-1.419 1.305c-.391.268.744.002.971-.137-.219.139-.795.512-.758.602.272.207 1.063-.375 1.063-.375s-.188.266-.031.359c.266 0 .876-.484.876-.484s-.124.281.016.328c.242-.152 1.681-1.348 1.819-1.464.44.575.655 1.847.655 1.847l.753-.035c0 0 4.244-3.994 4.157-6.457.112-2.548-2.629-3.514-4.31-5.659m.644 2.834c.162.354.175.818.143 1.226-.214-.007-.626-.01-1.107.041-.03-.51-.08-1.638.006-2.331.494.636.958 1.064.958 1.064m-2.146 3.61c-.03.232-.042.424-.036.575l-.562.528c.19-.48.407-1.01.598-1.103"/><path fill="#3e4347" d="m40.13 35.517l.029.598.584-.137c.141.035.553.518.688.676l.178.201.114.123.166.029c.185.031.371.033.561-.023l.145-.07c.268-.188.549-.316.853-.395.637.721 1.177 1.252 1.363 1.432.125.742.065 1.059.024 1.176-.343.172-1.637.545-2.436.609l-1.354.107 1.102.797c.178.127.566.486.634.777l.128.557.534-.199.135-.018c.148 0 .257.061.352.197l.354.514.424-.457c.118-.127.214-.258.33-.42.206-.287.489-.68 1.201-1.377l.19-.188-.049-.262c.003-.004-.011-.25-.025-1.561l.038.002.075-.436c.051-.299.165-.771.314-1.154.535.439 1.216.994 1.4 1.109l.2.127.321-.107c.22.125.444.215.637.215h.138l.118-.07.032-.021c.365.164.783.205 1.047.004l.105-.08.052-.121.018-.045h.099l.194-.377c.036-.115.08-.408-.274-.65-.198-.127-.536-.436-.848-.738l.005-.012c.059-.133.114-.395-.141-.701-.229-.363-.95-1.244-1.284-1.646l.02-.199.01.016c.276.43.46.713.815.713l.106-.012c.235-.049.418-.215.501-.451.052-.146.062-.32.039-.512.101.041.197.063.295.063l.192-.031.277-.092.091-.338c.074-.383-.238-1.027-.759-1.635.929-.377 1.989-.93 2.156-1.545.057-.205.029-.41-.076-.588.18-.207.314-.426.356-.639.043-.221-.003-.438-.131-.611l-.044-.061c.163-.246.271-.498.269-.73-.002-.244-.11-.459-.303-.605l-.274-.104c.303-.726.215-.87.124-1.021l-.146-.241-.308-.016c.105-.348.134-.712.005-1.059l-.08-.217-.41-.114-.109.01c-.031-.305-.169-.559-.4-.74l-.136-.105-.138-.003c-.025-.267-.108-.377-.164-.452-.126-.168-.318-.265-.527-.265-.413.033-.525.332-.634.622-.106.283-.275.733-.601 1.22l-.017-.014c-.002-1.148-.468-1.508-.903-1.592l-.105-.021c-.104-.285-.24-.544-.416-.721-.222-.223-.452-.27-.605-.27h-.125c-.429-.507-.891-.646-1.287-.447l-.202.118c-.706-.439-1.389-.279-1.49.343-.007.341.157.477.364.648.147.122.363.302.56.522-.245.073-.453.201-.612.38-.245.273-.358.643-.341 1.097-1.384 1.348-2.953 3.034-3.102 3.875l-.025.143.055.135c.077.188.304.627.744.627h.143l.495-.289-.093-.363c.404-.33 1.437-1.085 2.434-1.74-.317.299-.648.581-.975.859-1.294 1.104-2.632 2.244-2.549 4.166v.211h-.369l-.021.486c-.003.117-.082 2.879-.046 3.604m2.214-.344c-.184.201-.279.219-.28.219-.19-.086-.377-.684-.498-1.346.222.359.482.734.778 1.127"/><g fill="#ffce31"><path d="m45.06 36.962l.785.475c.021 2.5.044 2.588.044 2.588-1.095 1.072-1.225 1.465-1.548 1.813-.42-.607-1.072-.365-1.072-.365-.133-.574-.829-1.072-.829-1.072.972-.078 2.653-.574 2.785-.773.441-.662-.165-2.666-.165-2.666"/><path d="m40.946 32.485c-.117.813.352 5.754 2.275 2.484l1.82 1.281c0 0-1.352-.551-2.738.42-.131.039-.229.027-.333.01-.269-.287-.876-1.131-1.345-1.021-.035-.713.047-3.564.047-3.564.204-.008.274.39.274.39"/><path d="m41.09 27.94l.074.291c-.177.109-.344-.299-.344-.299.177-1 3.409-4.04 3.409-4.04l1.423.3.125.626c-1.161.421-4.609 2.92-4.687 3.119"/></g><path fill="#fff" d="m41.06 31.362c-.087 2.463 4.157 6.457 4.157 6.457l.753.035c0 0 .215-1.271.655-1.848.139.117 1.577 1.313 1.819 1.465.14-.047.016-.328.016-.328s.61.484.876.484c.157-.094-.031-.359-.031-.359s.791.582 1.063.375c.037-.09-.539-.463-.758-.602.227.139 1.361.404.971.137-.465-.297-1.419-1.305-1.419-1.305s.646.104.313-.264c-.225-.385-1.424-1.814-1.424-1.814.193-.527-.068-1.328-.357-1.955.9.262 1.52 1.867 1.749 1.857.368-.08.059-1.16-.57-1.934.465.252 1.311 1.094 1.544 1.016.158-.055-.159-.947-1.133-1.787 0 0 3.083-1.064 2.516-1.73-.042-.113-1.88.859-1.117.42 0 0 1.771-1.082 1.404-1.58-.224-.053-1.347.744-1.183.498 0 0 1.75-1.377 1.205-1.792-.259-.07-1.479.913-.996.463 0 0 1.085-2.053.608-1.703-2.906 2.142.105-.121-.377-1.426-.233-.086-.302 1.208-2.283 2.392.426-.401 2.285-2.574 1.444-3.232-.084-.064-.233.639-.799 1.395.181-.607.594-2.152.124-2.113-.128.011-.297 1.244-1.418 2.373.013-.224.033-.511-.047-.583 0 0-.143.133-.332.328.08-.545.188-1.771-.435-1.892-.049.089-.105.549-.226 1.083.004-.663-.297-2.084-.807-2.084-.028 0-.012.271.009.624-.308-.584-.797-1.325-1.197-1.125-.043.021.346.498.546 1.162-.602-.642-1.859-1.737-1.969-1.067 0 .091.979.665 1.299 1.55-.146-.029-1.472-.264-1.31 1.155h.387c0 0-.062.698.642.808.871-.622.398.785.398.785-1.679 2.146-4.42 3.112-4.31 5.661m4.627-3.89c.086.693.036 1.82.006 2.33-.481-.051-.894-.047-1.107-.041-.032-.406-.02-.871.143-1.225-.001 0 .463-.428.958-1.064m1.785 5.777l-.562-.529c.006-.15-.006-.342-.036-.574.191.097.408.623.598 1.103"/><g fill="#ffce31"><path d="m37.578 22.577l-1.228 3.172.83.291-.387 1.1h1.577l-.396-1.1.841-.291-1.237-3.172"/><path d="m26.454 22.577l-1.234 3.172.84.291-.391 1.1h1.581l-.4-1.1.841-.291-1.237-3.172"/><path d="m32.02 22.577l-1.235 3.172.836.291-.391 1.1h1.578l-.396-1.1.838-.291-1.23-3.172"/><path d="m30.871 37.3h-4v-3l1.239 1.453.761-1.453.762 1.453 1.238-1.453z"/><path d="m37.16 37.3h-4v-3l1.238 1.453.762-1.453.762 1.453 1.238-1.453z"/><path d="m34.02 40.813h-4v-3l1.23 1.457.77-1.457.757 1.457 1.243-1.457z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f5f5f5"/><path d="m47.4 38.2l-.1-.2c-.3-.4-.4-.5-.7-.5h-.2l-.1.2c-.2.2-.1.4-.1.6 0 .1.1.3.1.6.1.5-3.2 1-4.2 1.1-.7.1-1.5.2-2.1.3h-.1c-.7.2-1.2.5-1.4.9-.1.3 0 .5.3 1 .3.5.8 1.3.8 1.9-.1.1-.2.1-.3.2-2.5 1.4-4.5 1.9-7.3 1.9-2.8 0-4.8-.5-7.3-1.9-.1-.1-.2-.1-.3-.2.1-.6.6-1.4.8-1.9.3-.5.4-.7.3-1-.2-.5-.7-.8-1.4-.9h-.1c-.6-.1-1.3-.2-2.1-.3-1.1-.2-4.3-.6-4.2-1.1 0-.2.1-.4.1-.6 0-.2.1-.4-.1-.6l-.2-.2h-.2c-.3 0-.4.1-.7.5l-.1.1c-.3.4-.4.7-.3 1.1 0 .1.1.3.3.6.1.3.3.7.5 1.2.2.7.4 1.2.4 1.7 0 .7.9 1 1.4 1.2.4.1 1 .2 1.5.2 0 .4-.1.8-.2 1.2-.1.3 0 .8.2 1.1.2.3.5.5.8.7l.1.1c3.3 2.1 7.1 3.3 10.7 3.3 3.6 0 7.4-1.2 10.7-3.3l.1-.1c.3-.2.6-.4.8-.7.2-.3.3-.7.2-1.1-.1-.5-.2-.8-.2-1.2.5 0 1.1 0 1.5-.2.5-.2 1.3-.4 1.4-1.2 0-.5.2-1 .4-1.7.2-.5.4-.9.5-1.2.1-.3.2-.5.3-.6.2-.3.1-.7-.2-1" fill="#3e4347"/><path d="m47 38.5c-.6-.8-.3-.5-.2.4.2 1.3-4.3 1.5-6.7 2h-.1c-.5.1-.9.3-1.1.7-.1.1 0 .3 0 .5.5.8 1.2 1.3 1.2 2.5-.2.1-.4.2-.5.3-2.7 1.5-4.8 1.9-7.6 1.9-2.8 0-4.9-.5-7.6-1.9-.2-.1-.4-.2-.5-.3 0-1.1.7-1.7 1.2-2.5.1-.1.1-.3 0-.5-.2-.3-.6-.6-1.1-.7h-.1c-2.5-.5-6.9-.7-6.7-2 .1-.9.3-1.2-.2-.4-.1.2-.2.4-.2.6.1.2.5.9.8 1.8.2.6.4 1.3.4 1.8 0 .3.4.5 1 .7.5.2 1.3.2 1.8.2 0 .5 0 1.1-.2 1.8-.1.2 0 .5.1.7.2.3.5.5.8.6 3.3 2.1 7.1 3.2 10.5 3.2 3.4 0 7.1-1.1 10.5-3.2.3-.2.6-.4.8-.6.1-.2.2-.4.1-.7-.2-.8-.2-1.3-.2-1.8.5 0 1.3 0 1.8-.2.6-.2 1-.4 1-.7 0-.6.2-1.2.4-1.8.3-.9.7-1.5.8-1.8.1-.2 0-.4-.2-.6" fill="#fff"/><path d="m40.5 21.8h-17c0 2.9 0 5.8 0 8.7 0 2.8.2 4.9 1.4 6.6 1.5 2 3.9 3.5 7.1 5 3.2-1.4 5.6-2.9 7.1-5 1.2-1.7 1.4-3.9 1.4-6.6 0-2.9 0-5.8 0-8.7" fill="#2a5f9e"/><path d="m40.3 34c0-.7.2-1.1.2-1.8.1-1.4.1-2.9.1-4.3h-17c0 1.4 0 2.9.1 4.3 0 .7.2 1.1.2 1.8h16.4" fill="#ed4c5c"/><path d="m21.6 17.3l1.9 4.5c5.2-1.6 11.6-1.5 17 0l2-4.6.6.2.7-1.6-1.3-.4-.3.8-.7-.2.3-.8-1.3-.3-.2.8-.6-.1.2-.8-1.3-.2-.2.8-.9-.1-.1.4h-.3l.1-.4-.7-.1-.1.4h-.3l.1-.4-.8-.2-.1.4h-.6l.1-1.2-1.3-.1v.8h-.6v-.8h-1.3v.8h-.6v-.8l-1.3.1.1 1.2h-.6l-.3-.4h-.7v.4h-.3l-.1-.4-.7.1.1.4h-.3l-.1-.4-.8.2-.2-.8-1.3.2.2.8-.6.1-.2-.8-1.3.3.3.7-.6.2-.3-.8-1.3.4.7 1.6.2.1" fill="#ffce31"/><path fill="#fff" d="m32.1 30.9l.8-2.1-.9.6-.9-.6.8 2.1-2-.9.6 1-.6.9 2-.9-.8 2.1.9-.6.9.6-.8-2.1 2.1.9-.7-.9.7-1z"/><path d="m23.8 31.9v-.5h-.4v-.2c.1-1.9-1.3-3.1-2.5-4.2-.3-.3-.7-.6-1-.9 1 .7 2 1.4 2.4 1.7l-.1.4.5.3h.1c.4 0 .7-.4.7-.6l.1-.1v-.1c-.1-.8-1.7-2.5-3.1-3.9 0-.5-.1-.8-.3-1.1-.2-.2-.4-.3-.6-.4.2-.2.4-.4.6-.5.2-.2.4-.3.4-.6-.1-.6-.8-.8-1.5-.3l-.2-.1c-.4-.2-.9-.1-1.3.4h-.1c-.2 0-.4 0-.6.3-.2.2-.3.4-.4.7h-.1c-.4.1-.9.4-.9 1.6-.3-.5-.5-.9-.6-1.2-.1-.3-.2-.6-.6-.6-.2 0-.4.1-.5.3-.1.1-.1.2-.2.5h-.1l-.1.1c-.2.2-.4.4-.4.7h-.1l-.4.1-.1.2c-.1.3-.1.7 0 1.1h-.3l-.1.2c-.1.2-.2.3.1 1l-.3.1c-.2.1-.3.4-.3.6 0 .2.1.5.3.7v.1c-.1.2-.2.4-.1.6 0 .2.2.4.4.6-.1.2-.1.4-.1.6.2.6 1.2 1.2 2.2 1.5-.5.6-.8 1.3-.8 1.6l.1.3.3.1h.2c.1 0 .2 0 .3-.1 0 .2 0 .4 0 .5.1.2.3.4.5.5h.1c.4 0 .5-.3.8-.7v.2c-.3.4-1.1 1.3-1.3 1.6-.3.3-.2.6-.1.7-.3.3-.6.6-.8.7-.4.2-.3.5-.3.7l.2.4h.1l.1.1.1.1c.3.2.7.2 1 0l.1.1h.1c.2 0 .4-.1.6-.2l.3.1.2-.1c.2-.1.9-.7 1.4-1.1.1.4.3.9.3 1.2l.1.4c0 1.3 0 1.6 0 1.6v.3l.2.2c.7.7 1 1.1 1.2 1.4.1.2.2.3.3.4l.4.5.4-.5c.1-.1.2-.2.4-.2h.1l.5.2.1-.6c.1-.3.5-.7.6-.8l1.1-.8-1.4-.1c-.8-.1-2.1-.4-2.4-.6 0-.1-.1-.4 0-1.2.2-.2.7-.7 1.4-1.4.3.1.6.2.9.4l.1.1c.2.1.4.1.6 0h.2l.1-.1.2-.2c.1-.2.5-.6.7-.7l.6.1v-.6c-.2-.7-.3-3.5-.3-3.6m-1.4 2.1c-.1.7-.3 1.3-.5 1.3 0 0-.1 0-.3-.2.4-.3.6-.7.8-1.1" fill="#3e4347"/><g fill="#ffce31"><path d="m18.9 37l-.8.5c0 2.5 0 2.6 0 2.6 1.1 1.1 1.2 1.5 1.5 1.8.4-.6 1.1-.4 1.1-.4.1-.6.8-1.1.8-1.1-1-.1-2.7-.6-2.8-.8-.4-.6.2-2.6.2-2.6"/><path d="m23.1 32.5c.1.8-.4 5.8-2.3 2.5l-1.8 1.2c0 0 1.4-.6 2.7.4.1 0 .2 0 .3 0 .3-.3.9-1.1 1.3-1 0-.7 0-3.6 0-3.6-.2.1-.2.5-.2.5"/><path d="m22.9 27.9l-.1.3c.2.1.3-.3.3-.3-.2-1-3.4-4-3.4-4l-1.4.3-.1.6c1.2.4 4.6 2.9 4.7 3.1"/></g><path d="m18.6 25.7c0 0-.5-1.4.4-.8.7-.1.6-.8.6-.8h.4c.2-1.4-1.2-1.2-1.3-1.2.3-.9 1.3-1.5 1.3-1.5-.1-.7-1.4.4-2 1.1.2-.7.6-1.1.5-1.2-.4-.2-.9.5-1.2 1.1 0-.4 0-.6 0-.6-.5 0-.8 1.4-.8 2.1-.1-.5-.2-1-.2-1.1-.6.1-.5 1.3-.4 1.9-.2-.2-.3-.3-.3-.3-.1.1-.1.4 0 .6-1.1-1.1-1.3-2.4-1.4-2.4-.5 0-.1 1.5.1 2.1-.6-.8-.7-1.5-.8-1.4-.8.7 1 2.8 1.4 3.2-2-1.2-2.1-2.5-2.3-2.4-.5 1.3 2.5 3.6-.4 1.4-.5-.4.6 1.7.6 1.7.5.4-.7-.5-1-.5-.5.4 1.2 1.8 1.2 1.8.2.2-1-.6-1.2-.5-.4.5 1.4 1.6 1.4 1.6.8.4-1.1-.5-1.1-.4-.6.7 2.5 1.7 2.5 1.7-1 .8-1.3 1.7-1.1 1.8.2.1 1.1-.8 1.5-1-.6.8-.9 1.9-.6 1.9.2 0 .8-1.6 1.7-1.9-.3.6-.6 1.4-.4 2 0 0-1.2 1.4-1.4 1.8-.3.4.3.3.3.3s-1 1-1.4 1.3c-.4.3.7 0 1-.1-.2.1-.8.5-.8.6.3.2 1.1-.4 1.1-.4s-.2.3 0 .4c.3 0 .9-.5.9-.5s-.1.3 0 .3c.2-.2 1.7-1.3 1.8-1.5.4.6.7 1.8.7 1.8h.8c0 0 4.2-4 4.2-6.5.1-2.4-2.6-3.4-4.3-5.5m.7 2.8c.2.4.2.8.1 1.2-.2 0-.6 0-1.1 0 0-.5-.1-1.6 0-2.3.5.7 1 1.1 1 1.1m-2.2 3.6c0 .2 0 .4 0 .6l-.6.5c.2-.4.4-1 .6-1.1" fill="#fff"/><path d="m40.1 35.5v.6l.6-.1c.1 0 .6.5.7.7l.2.2.1.1h.2c.2 0 .4 0 .6 0l.1-.1c.3-.2.5-.3.9-.4.6.7 1.2 1.3 1.4 1.4.1.7.1 1.1 0 1.2-.3.2-1.6.5-2.4.6l-1.5.1 1.1.8c.2.1.6.5.6.8l.1.6.5-.2h.1c.1 0 .3.1.4.2l.4.5.4-.5c.1-.1.2-.3.3-.4.2-.3.5-.7 1.2-1.4l.2-.2v-.3c0 0 0-.2 0-1.6l.1-.4c.1-.3.2-.8.3-1.2.5.4 1.2 1 1.4 1.1l.2.1.3-.1c.2.1.4.2.6.2h.1l.1-.1c.4.2.8.2 1 0l.1-.1.1-.1h.1l.2-.4c0-.1.1-.4-.3-.7-.2-.1-.5-.4-.8-.7.1-.1.1-.4-.1-.7-.2-.4-1-1.2-1.3-1.6v-.2c.3.4.5.7.8.7h.1c.2 0 .4-.2.5-.5.1-.1.1-.3 0-.5.1 0 .2.1.3.1h.2l.3-.1.1-.3c.1-.4-.2-1-.8-1.6.9-.4 2-.9 2.2-1.5.1-.2 0-.4-.1-.6.2-.2.3-.4.4-.6 0-.2 0-.4-.1-.6v-.1c.2-.2.3-.5.3-.7 0-.2-.1-.5-.3-.6l-.3-.1c.3-.7.2-.9.1-1l-.1-.2h-.3c.1-.3.1-.7 0-1.1l-.1-.2-.4-.1h-.1c0-.3-.2-.6-.4-.7l-.1-.1h-.1c0-.3-.1-.4-.2-.5-.1-.2-.3-.3-.5-.3-.4 0-.5.3-.6.6-.1.3-.3.7-.6 1.2 0-1.1-.5-1.5-.9-1.6h-.1c-.1-.3-.2-.5-.4-.7-.2-.2-.5-.3-.6-.3h-.1c-.4-.5-.9-.6-1.3-.4h-.2c-.7-.4-1.4-.3-1.5.3 0 .3.2.5.4.6.1.1.4.3.6.5-.2.1-.5.2-.6.4-.2.3-.4.6-.3 1.1-1.4 1.3-3 3-3.1 3.9v.1l.1.1c.1.2.3.6.7.6h.1l.5-.3-.1-.4c.4-.3 1.4-1.1 2.4-1.7-.3.3-.6.6-1 .9-1.3 1.1-2.6 2.2-2.5 4.2v.2h-.4v.5c-.1.2-.2 3-.2 3.7m2.2-.3c-.2.2-.3.2-.3.2-.2-.1-.4-.7-.5-1.3.3.3.5.7.8 1.1" fill="#3e4347"/><g fill="#ffce31"><path d="m45.1 37l.8.5c0 2.5 0 2.6 0 2.6-1.1 1.1-1.2 1.5-1.5 1.8-.4-.6-1.1-.4-1.1-.4-.1-.6-.8-1.1-.8-1.1 1-.1 2.7-.6 2.8-.8.4-.6-.2-2.6-.2-2.6"/><path d="m40.9 32.5c-.1.8.4 5.8 2.3 2.5l1.8 1.3c0 0-1.4-.6-2.7.4-.1 0-.2 0-.3 0-.3-.3-.9-1.1-1.3-1 0-.7 0-3.6 0-3.6.2 0 .2.4.2.4"/><path d="m41.1 27.9l.1.3c-.2.1-.3-.3-.3-.3.2-1 3.4-4 3.4-4l1.4.3.1.6c-1.2.4-4.6 2.9-4.7 3.1"/></g><path d="m41.1 31.4c-.1 2.5 4.2 6.5 4.2 6.5h.8c0 0 .2-1.3.7-1.8.1.1 1.6 1.3 1.8 1.5.1 0 0-.3 0-.3s.6.5.9.5c.2-.1 0-.4 0-.4s.8.6 1.1.4c0-.1-.5-.5-.8-.6.2.1 1.4.4 1 .1-.5-.3-1.4-1.3-1.4-1.3s.6.1.3-.3c-.2-.4-1.4-1.8-1.4-1.8.2-.5-.1-1.3-.4-2 .9.3 1.5 1.9 1.7 1.9.4-.1.1-1.2-.6-1.9.5.3 1.3 1.1 1.5 1 .2-.1-.2-.9-1.1-1.8 0 0 3.1-1.1 2.5-1.7 0-.1-1.9.9-1.1.4 0 0 1.8-1.1 1.4-1.6-.2-.1-1.3.7-1.2.5 0 0 1.8-1.4 1.2-1.8-.3-.1-1.5.9-1 .5 0 0 1.1-2.1.6-1.7-2.9 2.1.1-.1-.4-1.4-.2-.1-.3 1.2-2.3 2.4.4-.4 2.3-2.6 1.4-3.2-.1-.1-.2.6-.8 1.4.2-.6.6-2.2.1-2.1-.1 0-.3 1.2-1.4 2.4 0-.2 0-.5 0-.6 0 0-.1.1-.3.3.1-.5.2-1.8-.4-1.9 0 .1-.1.5-.2 1.1 0-.7-.3-2.1-.8-2.1 0 0 0 .3 0 .6-.3-.6-.8-1.3-1.2-1.1 0 0 .3.5.5 1.2-.6-.6-1.9-1.7-2-1.1 0 .1 1 .7 1.3 1.5-.1 0-1.5-.3-1.3 1.2h.4c0 0-.1.7.6.8.9-.6.4.8.4.8-1.7 1.9-4.4 2.9-4.3 5.5m4.6-3.9c.1.7 0 1.8 0 2.3-.5-.1-.9 0-1.1 0 0-.4 0-.9.1-1.2 0-.1.5-.5 1-1.1m1.8 5.7l-.6-.5c0-.2 0-.3 0-.6.2.1.4.7.6 1.1" fill="#fff"/><g fill="#ffce31"><path d="m37.6 22.6l-1.3 3.1.9.3-.4 1.1h1.6l-.4-1.1.8-.3-1.2-3.1"/><path d="m26.5 22.6l-1.3 3.1.9.3-.4 1.1h1.5l-.3-1.1.8-.3-1.2-3.1"/><path d="m32 22.6l-1.2 3.1.8.3-.4 1.1h1.6l-.4-1.1.9-.3-1.3-3.1"/><path d="m30.9 37.3h-4v-3l1.2 1.5.8-1.5.7 1.5 1.3-1.5z"/><path d="m37.2 37.3h-4v-3l1.2 1.5.8-1.5.7 1.5 1.3-1.5z"/><path d="m34 40.8h-4v-3l1.3 1.5.7-1.5.8 1.5 1.2-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f2.svg
index 30d45b1..ba96edd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m12 12h20v20h-20z"/><path fill="#fff" d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path fill="#ed4c5c" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30C62,15.432,48.568,2,32,2z"/><path fill="#fff" d="M11,18.913H5.011C3.088,22.87,2,27.306,2,32h12V13.913h-3V18.913z"/><path fill="#ed4c5c" d="m32.464 27.643l-13.464-16.643h-6l17.464 21.584h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M33,5H18.912C12.857,7.941,7.94,12.858,5,18.913V33h6V11h22V5z"/><path fill="#3e4347" d="m47 46.987l-6.244-2.386c-1.33-.518-3.79-1.475-3.79-4.104v-19.413h20.07v19.414c0 2.625-2.458 3.584-3.779 4.102l-6.255 2.387"/><path fill="#fff" d="m38.4 22.518v17.98c0 1.525 1.398 2.193 2.866 2.766l5.735 2.189 5.734-2.189c1.468-.574 2.867-1.24 2.867-2.766v-17.98h-17.202"/><path fill="#83bf4f" d="m39.832 38.28v1.397c0 1.335 1.166 1.921 2.391 2.421l4.777 1.917 4.777-1.916c1.225-.502 2.391-1.086 2.391-2.421v-1.397h-14.336z"/><g fill="#ed4c5c"><path d="m41.821 40.24c-.421-.17-.263-1.527.091-1.813.27-.217 1.389-.117 1.389-.117l.465-1.107 1.42.73-.977 1.188c0 0-.188.939-.455.998-.127.027-.264-.357-.395-.344-.234.025-.322.783-.558.762-.254-.025-.178-.893-.432-.928-.207-.029-.353.709-.548.631"/><path d="m51.932 40.36c.421-.17.263-1.527-.09-1.812-.272-.218-1.39-.118-1.39-.118l-.465-1.107-1.421.73.979 1.188c0 0 .186.94.453.998.129.027.264-.357.396-.344.233.025.321.785.556.762.256-.025.18-.893.434-.928.205-.029.353.709.548.631"/><path d="m50.36 32.21c0 0 2.368.274 2.919.792.608.573.938 2.773.314 3.329-.334.299-1.75-.369-1.75-.369l-.025-.74-1.868-1.587.41-1.425"/><path d="m43.09 31.675c0 0-1.682.508-2.086.909-.644.64-1.359 3.064-.611 3.576.365.25 1.514-.908 1.514-.908l1.708-1.148-.525-2.429"/></g><path fill="#42ade2" d="m43.39 33l-1.835-1.465c0 0-.49-1.572.75-1.816 1.184-.234 4.816-.388 4.816-.388s4.545.14 4.818.309c1.096.686-.027 2.212-.027 2.212l-1.534 1.4 1.143 2.69-8.389-.161.258-2.781"/><path fill="#ffce31" d="m42.814 34.75l.456-3.075 2.359-.816 1.681 2.524-.14 4.053z"/><path fill="#3e4347" d="m45.25 35.771l.384-2.266 3.034-.802 1.712 3.15-2.722 1.991z"/><path fill="#fff" d="m42.06 35.3l.822-.709c0 0 1.303.97 1.817 1.104.349.092 1.147-.256 1.443-.051.231.16.091.971.354 1.064.569.2 1.43-1.219 2.024-1.307.345-.051 1.025.525 1.343.381.438-.199.814-1.738.814-1.738l1.229 1.146-.648 2.301-1.713.396-2.73 2.023-2.487-2.069-1.595-.365-.673-2.176"/><path fill="#ed4c5c" d="m42.3 29.723c0 0-.871-.45-.734-.715.215-.416 1.417-.42 1.852-.249.166.066.452.556.452.556l1.19-.313.107-.827c0 0-.555-.401-.526-.599.038-.276.944-.602.944-.602s-.928-.12-.944-.374c-.015-.188.652-.373.652-.373s-.451-.549-.323-.691c.111-.125.636.218.636.218s-.255-.586-.192-.776c.055-.167.539-.453.539-.453s.02-.739.246-.82c.132-.048.84.176.84.176s.464-.458.578-.469c.162-.015.314.504.314.504s.57-.227.633-.212c.148.034.097.905.097.905s.425.16.458.291c.041.159-.316.581-.316.581s.672-.04.75.134c.074.164-.379.612-.379.612s.55.376.516.564c-.033.189-.685.353-.685.353s.633.407.593.618c-.03.155-.576.262-.576.262l.375.735.803.513c0 0 1.295-.539 1.742-.481.156.02.484.169.543.314.081.196-.549.539-.549.539l-.711.777-2.832-.877-3.225.148-2.078.891-.79-.86"/><g fill="#3e4347"><ellipse cx="46.713" cy="25.307" rx=".314" ry=".224"/><ellipse cx="47.835" cy="25.307" rx=".315" ry=".224"/></g><g fill="#ffce31"><path d="m42.3 29.723c0 0 .639 1.065 1.084 1.097.544.04 2.033-.79 2.033-.79s-.027.291.038.35c.546.489 2.454.554 2.935 0 .101-.116-.086-.605-.086-.605s2.174.866 2.922.765c.332-.045.709-.896.709-.896s-.63.35-.99.308c-.775-.089-2.217-.962-2.994-.887-.193.018-.67.397-.67.397l-.836.042c0 0-.599-.323-.816-.307-.609.042-1.636.892-2.241.972-.392.051-1.088-.446-1.088-.446"/><path d="m52.51 31.54h-.934l-1.476 1.73.91 1.615.699.485-.609 1.83-.92.484-.512-.314-.658.169.27.471-1.2.701-.92.469-.13.633.45.347.416-.425-.11-.425 1.284-.442.599-.788.991.1.69-.5.68-2.168.17-.442-.8-.437-.775-1.363 1.105-1.07.43.263.39-.163z"/><path d="m41.39 31.54h.93l1.483 1.73-.912 1.615-.701.485.604 1.83.919.484.517-.314.662.169-.28.471 1.209.701.914.469.136.633-.451.347-.42-.425.11-.425-1.282-.442-.598-.788-.99.1-.695-.5-.678-2.168-.167-.442.804-.437.766-1.363-1.1-1.07-.432.263-.388-.163z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m12 12h20v20h-20z"/><path fill="#fff" d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#ed4c5c"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m32.5 27.6l-13.5-16.6h-6l17.5 21.6h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M33,5H18.9C12.9,7.9,7.9,12.9,5,18.9V33h6V11h22V5z" fill="#ed4c5c"/><path d="M47,47l-6.2-2.4c-1.3-0.5-3.8-1.5-3.8-4.1V21.1H57v19.4c0,2.6-2.5,3.6-3.8,4.1L47,47z" fill="#3e4347"/><path d="m38.4 22.5v18c0 1.5 1.4 2.2 2.9 2.8l5.7 2.2 5.7-2.2c1.5-.6 2.9-1.2 2.9-2.8v-18c0 0-17.2 0-17.2 0" fill="#fff"/><path d="m39.8 38.3v1.4c0 1.3 1.2 1.9 2.4 2.4l4.8 1.9 4.8-1.9c1.2-.5 2.4-1.1 2.4-2.4v-1.4h-14.4" fill="#83bf4f"/><g fill="#ed4c5c"><path d="m41.8 40.2c-.4-.2-.3-1.5.1-1.8.3-.2 1.4-.1 1.4-.1l.5-1.1 1.4.7-1 1.2c0 0-.2.9-.5 1-.1 0-.3-.4-.4-.3-.2 0-.3.8-.6.8-.3 0-.2-.9-.4-.9-.1-.1-.3.6-.5.5"/><path d="m51.9 40.4c.4-.2.3-1.5-.1-1.8-.3-.2-1.4-.1-1.4-.1l-.4-1.2-1.4.7 1 1.2c0 0 .2.9.5 1 .1 0 .3-.4.4-.3.2 0 .3.8.6.8.3 0 .2-.9.4-.9.1-.1.2.6.4.6"/><path d="m50.4 32.2c0 0 2.4.3 2.9.8.6.6.9 2.8.3 3.3-.3.3-1.8-.4-1.8-.4v-.7l-1.9-1.6.5-1.4"/><path d="m43.1 31.7c0 0-1.7.5-2.1.9-.6.6-1.4 3.1-.6 3.6.4.2 1.5-.9 1.5-.9l1.7-1.1-.5-2.5"/></g><path d="m43.4 33l-1.8-1.5c0 0-.5-1.6.8-1.8 1.2-.2 4.8-.4 4.8-.4s4.5.1 4.8.3c1.1.7 0 2.2 0 2.2l-1.5 1.4 1.1 2.7-8.4-.2.2-2.7" fill="#42ade2"/><path fill="#ffce31" d="m42.8 34.8l.5-3.1 2.3-.8 1.7 2.5-.1 4z"/><path fill="#3e4347" d="m45.2 35.8l.4-2.3 3.1-.8 1.7 3.2-2.7 1.9z"/><path d="m42.1 35.3l.8-.7c0 0 1.3 1 1.8 1.1.3.1 1.1-.3 1.4-.1.2.2.1 1 .4 1.1.6.2 1.4-1.2 2-1.3.3-.1 1 .5 1.3.4.4-.2.8-1.7.8-1.7l1.2 1.1-.6 2.3-1.7.4-2.7 2-2.5-2.1-1.6-.4-.6-2.1" fill="#fff"/><path d="m42.3 29.7c0 0-.9-.5-.7-.7.2-.4 1.4-.4 1.9-.2.2.1.5.6.5.6l1.2-.3.1-.8c0 0-.6-.4-.5-.6 0-.3.9-.6.9-.6s-.9-.1-.9-.4c0-.2.7-.4.7-.4s-.5-.5-.3-.7c.1-.1.6.2.6.2s-.3-.6-.2-.8c.1-.2.5-.5.5-.5s0-.7.2-.8c.1 0 .8.2.8.2s.5-.5.6-.5c.2 0 .3.5.3.5s.6-.2.6-.2c.1 0 .1.9.1.9s.4.2.5.3c0 .2-.3.6-.3.6s.7 0 .8.1c.1.2-.4.6-.4.6s.5.4.5.6c0 .2-.7.4-.7.4s.6.4.6.6c0 .2-.6.3-.6.3l.4.7.8.5c0 0 1.3-.5 1.7-.5.2 0 .5.2.5.3.1.2-.5.5-.5.5l-.7.8-2.8-.9-3.2.1-2.1.9-.9-.8" fill="#ed4c5c"/><g fill="#3e4347"><ellipse cx="46.7" cy="25.3" rx=".3" ry=".2"/><ellipse cx="47.8" cy="25.3" rx=".3" ry=".2"/></g><g fill="#ffce31"><path d="m42.3 29.7c0 0 .6 1.1 1.1 1.1.5 0 2-.8 2-.8s0 .3 0 .4c.5.5 2.5.6 2.9 0 .1-.1-.1-.6-.1-.6s2.2.9 2.9.8c.3 0 .7-.9.7-.9s-.6.4-1 .3c-.8-.1-2.2-1-3-.9-.2 0-.7.4-.7.4h-.8c0 0-.6-.3-.8-.3-.6 0-1.6.9-2.2 1-.3 0-1-.5-1-.5"/><path d="m52.5 31.5h-.9l-1.5 1.8.9 1.6.7.5-.6 1.8-.9.5-.5-.3-.7.1.3.5-1.2.7-.9.5-.2.6.5.4.4-.5-.1-.4 1.3-.4.6-.8 1 .1.7-.5.6-2.2.2-.4-.8-.5-.8-1.3 1.1-1.1.5.3.3-.2z"/><path d="m41.4 31.5h.9l1.5 1.8-.9 1.6-.7.5.6 1.8.9.5.5-.3.7.1-.3.5 1.2.7.9.5.2.6-.5.4-.4-.5.1-.4-1.3-.4-.6-.8-1 .1-.7-.5-.6-2.2-.2-.4.8-.5.8-1.3-1.1-1.1-.5.3-.4-.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f3.svg
index c1c59f2..3271af9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f3.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="M32,2C21.181,2,11.702,7.729,6.425,16.316v19.061h-4.23C3.872,50.355,16.573,62,32,62
- c10.818,0,20.298-5.729,25.575-14.316V28.623h4.23C60.127,13.646,47.426,2,32,2z"/><path fill="#fff" d="m2.716 25.492l58.57 13.02c.464-2.096.716-4.272.716-6.508 0-1.143-.07-2.268-.194-3.377l-55.38-12.307c-1.714 2.789-2.981 5.881-3.709 9.176"/><path fill="#3e4347" d="m61.28 38.508l-58.57-13.02c-.464 2.097-.716 4.272-.716 6.508 0 1.143.069 2.268.194 3.377l55.38 12.307c1.714-2.789 2.98-5.881 3.709-9.176"/><g fill="#ed4c5c"><path d="m22.02 33.29c0 5.645 4.446 10.221 9.931 10.221s9.932-4.576 9.932-10.221c0-2.146-.646-4.137-1.745-5.781.581 1.234.916 2.615.916 4.078 0 4.207-2.693 7.766-6.403 8.949l-1.975-4.926v-7.857c.425.154 1.037.391 1.861.746 3.207 1.385 5.689-2.768 5.689-2.768s-2.275.318-4.138-1.49c-1.211-1.178-2.593-.645-3.413-.127v-1.151h1.551c0 0 .414-4.685-2.327-5.962v3.406h-1.5v2.556h.62v1.029c-.834-.468-2.093-.835-3.206.249-1.862 1.809-4.139 1.49-4.139 1.49s2.483 4.152 5.69 2.768c.697-.301 1.243-.517 1.654-.67v7.682h-.04l-1.979 4.934c-3.578-1.264-6.153-4.746-6.153-8.857 0-1.463.335-2.844.917-4.078-1.098 1.643-1.743 3.634-1.743 5.78"/><path d="m21.19 40.637v-7.987c-3.207-1.703-3.207-4.152-3.207-4.152h-2.482c0 4.472 2.482 5.111 2.482 5.111v7.03h3.207z"/><path d="m46.02 28.498c0 0 0 2.449-3.206 4.152v7.986h3.206v-7.03c0 0 2.483-.64 2.483-5.111h-2.483"/><path d="m31.896 45.21c-3.56-.018-6.71-1.811-8.656-4.564l-2.981 4.566c0 0 2.689-.213 5.172 1.172 2.469 1.377 3.201.016 6.466.002 3.265.014 3.996 1.375 6.465-.002 2.483-1.385 5.173-1.172 5.173-1.172l-2.981-4.566c-1.948 2.753-5.099 4.546-8.658 4.564"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C21.2,2,11.7,7.7,6.4,16.3v19.1H2.2C3.9,50.4,16.6,62,32,62c10.8,0,20.3-5.7,25.6-14.3V28.6h4.2
+ C60.1,13.6,47.4,2,32,2z" fill="#ffe62e"/><path d="m2.7 25.5l58.6 13c.5-2.1.7-4.3.7-6.5 0-1.1-.1-2.3-.2-3.4l-55.4-12.3c-1.7 2.8-3 5.9-3.7 9.2" fill="#fff"/><path d="m61.3 38.5l-58.6-13c-.4 2.1-.7 4.3-.7 6.5 0 1.1.1 2.3.2 3.4l55.4 12.3c1.7-2.8 3-5.9 3.7-9.2" fill="#3e4347"/><g fill="#ed4c5c"><path d="m22 33.3c0 5.6 4.4 10.2 9.9 10.2s9.9-4.6 9.9-10.2c0-2.1-.6-4.1-1.7-5.8.6 1.2.9 2.6.9 4.1 0 4.2-2.7 7.8-6.4 8.9l-2-4.9v-7.9c.4.2 1 .4 1.9.7 3.2 1.4 5.7-2.8 5.7-2.8s-2.3.3-4.1-1.5c-1.2-1.2-2.6-.6-3.4-.1v-1h1.6c0 0 .4-4.7-2.3-6v3.4h-1.5v2.6h.5v1c-.8-.5-2.1-.8-3.2.2-1.9 1.8-4.1 1.5-4.1 1.5s2.5 4.2 5.7 2.8c.7-.3 1.2-.5 1.7-.7v7.7l-2 4.9c-3.6-1.3-6.2-4.7-6.2-8.9 0-1.5.3-2.8.9-4.1-1.1 1.8-1.8 3.7-1.8 5.9"/><path d="m21.2 40.6v-8c-3.2-1.7-3.2-4.1-3.2-4.1h-2.5c0 4.5 2.5 5.1 2.5 5.1v7h3.2"/><path d="m46 28.5c0 0 0 2.4-3.2 4.2v8h3.2v-7c0 0 2.5-.6 2.5-5.1 0-.1-2.5-.1-2.5-.1"/><path d="m31.9 45.2c-3.6 0-6.7-1.8-8.7-4.6l-3 4.6c0 0 2.7-.2 5.2 1.2 2.5 1.4 3.2 0 6.5 0 3.3 0 4 1.4 6.5 0 2.5-1.4 5.2-1.2 5.2-1.2l-3-4.6c-2 2.8-5.1 4.6-8.7 4.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f4.svg
index 516d501..49a94e9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f4.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.571C56.166,10.35,45.061,2,32,2z"/><path fill="#83bf4f" d="m32 62c13.06 0 24.17-8.35 28.28-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#ffce31" d="M3.714,22C2.607,25.129,2,28.493,2,32c0,3.507,0.607,6.871,1.714,10h56.571C61.393,38.871,62,35.508,62,32
- c0-3.508-0.607-6.871-1.715-10H3.714z"/><path fill="#ed1c24" d="m31.32 37.73h1.364v2.908h-1.364z"/><g fill="#ffe000"><path d="m30.24 37.986h1.364v2.908h-1.364z"/><path d="m32.394 37.986h1.364v2.908h-1.364z"/></g><g fill="#699635"><path d="m30 37.986h.862v3.651h-.862z"/><path d="m33.13 37.986h.861v3.651h-.861z"/><path d="m29.6 23.378c0 0-.331-.094-.593-.09l.01-.013c.208-.318.276-.912.276-.912s-.514.302-.723.617c-.109-.229-.307-.464-.307-.464s-.243.273-.206.538c.037.264.374.66.374.66s.5.145.759.07c.257-.074.41-.406.41-.406"/></g><path fill="#83bf4f" d="m29.12 24.14c0 0-.343-.007-.595.064l.005-.015c.118-.361.028-.953.028-.953s-.417.424-.536.782c-.166-.193-.42-.369-.42-.369s-.162.326-.058.572c.104.247.533.541.533.541s.521.012.751-.126c.232-.138.292-.496.292-.496"/><path fill="#699635" d="m28.862 24.995c0 0-.334.082-.558.217l.001-.016c.021-.379-.22-.929-.22-.929s-.293.517-.316.894c-.209-.144-.5-.249-.5-.249s-.072.356.092.567c.166.211.656.386.656.386s.506-.123.691-.316c.189-.191.154-.554.154-.554"/><path fill="#83bf4f" d="m28.832 25.889c0 0-.301.165-.483.354l-.004-.017c-.077-.371-.453-.838-.453-.838s-.147.573-.072.943c-.238-.085-.547-.111-.547-.111s.023.363.238.525c.214.161.734.204.734.204s.457-.249.586-.482c.129-.237.001-.578.001-.578"/><path fill="#699635" d="m29.04 26.76c0 0-.247.237-.374.465l-.009-.014c-.172-.338-.657-.694-.657-.694s.006.592.176.931c-.253-.021-.559.032-.559.032s.117.345.367.446c.25.101.762.008.762.008s.377-.358.442-.618c.064-.259-.148-.556-.148-.556"/><path fill="#83bf4f" d="m29.461 27.549c0 0-.176.292-.24.546l-.011-.012c-.256-.283-.816-.501-.816-.501s.16.571.414.854c-.25.044-.531.175-.531.175s.203.303.47.337c.267.033.738-.188.738-.188s.27-.443.265-.71c-.006-.269-.289-.501-.289-.501"/><path fill="#699635" d="m30.08 28.2c0 0-.094.327-.091.588l-.014-.009c-.32-.207-.918-.275-.918-.275s.303.51.621.718c-.23.109-.467.306-.467.306s.275.241.542.203c.267-.036.664-.37.664-.37s.146-.496.071-.754c-.075-.256-.408-.407-.408-.407"/><path fill="#83bf4f" d="m30.842 28.675c0 0-.005.341.067.591l-.015-.004c-.364-.117-.959-.029-.959-.029s.427.415.787.535c-.194.164-.372.415-.372.415s.329.161.578.058c.248-.104.545-.529.545-.529s.011-.516-.128-.746c-.14-.23-.503-.291-.503-.291"/><path fill="#699635" d="m34.4 23.378c0 0 .328-.094.592-.09l-.01-.013c-.207-.318-.275-.912-.275-.912s.512.302.721.617c.109-.229.311-.464.311-.464s.242.273.205.538c-.037.264-.375.66-.375.66s-.5.145-.758.07c-.258-.074-.411-.406-.411-.406"/><path fill="#83bf4f" d="m34.875 24.14c0 0 .344-.007.598.064l-.008-.015c-.117-.361-.027-.953-.027-.953s.418.424.535.782c.166-.193.422-.369.422-.369s.162.326.057.572c-.105.247-.533.541-.533.541s-.52.012-.75-.126c-.233-.138-.294-.496-.294-.496"/><path fill="#699635" d="m35.14 24.995c0 0 .334.082.559.217v-.016c-.021-.379.219-.929.219-.929s.295.517.314.894c.211-.144.502-.249.502-.249s.072.356-.094.567c-.164.211-.654.386-.654.386s-.506-.123-.693-.316c-.186-.191-.153-.554-.153-.554"/><path fill="#83bf4f" d="m35.17 25.889c0 0 .299.165.482.354l.002-.017c.08-.371.455-.838.455-.838s.148.573.072.943c.238-.085.549-.111.549-.111s-.023.363-.24.525c-.215.161-.732.204-.732.204s-.457-.249-.588-.482c-.129-.237 0-.578 0-.578"/><path fill="#699635" d="m34.963 26.76c0 0 .246.237.373.465l.008-.014c.174-.338.658-.694.658-.694s-.008.592-.178.931c.254-.021.559.032.559.032s-.117.345-.365.446c-.25.101-.764.008-.764.008s-.375-.358-.439-.618.148-.556.148-.556"/><path fill="#83bf4f" d="m34.539 27.549c0 0 .174.292.24.546l.01-.012c.256-.283.814-.501.814-.501s-.16.571-.412.854c.25.044.531.175.531.175s-.201.303-.469.337c-.27.033-.74-.188-.74-.188s-.27-.443-.264-.71.29-.501.29-.501"/><path fill="#699635" d="m33.922 28.2c0 0 .094.327.09.588l.014-.009c.32-.207.92-.275.92-.275s-.305.51-.621.718c.229.109.467.306.467.306s-.275.241-.543.203c-.266-.036-.664-.37-.664-.37s-.146-.496-.07-.754c.073-.256.407-.407.407-.407"/><path fill="#83bf4f" d="m33.16 28.675c0 0 .006.341-.066.591l.016-.004c.363-.117.959-.029.959-.029s-.428.415-.787.535c.193.164.371.415.371.415s-.328.161-.576.058c-.248-.104-.544-.529-.544-.529s-.012-.516.128-.746c.138-.23.499-.291.499-.291"/><path fill="#594640" d="m35.31 25.648c-1.035 0-2.207 1.182-3.309 1.182-1.103 0-2.273-1.182-3.308-1.182-1.032 0-4.961 1.182-4.961 1.182 5.514 0 8.27 2.953 8.27 2.953s2.756-2.953 8.27-2.953c-.001 0-3.931-1.182-4.962-1.182"/><circle fill="#fff" cx="32" cy="26.336" r=".689"/><path fill="#ffe000" d="m27.22 32.2l.596.493.28-.564.053-.346c-.042-.991-.02-1.965-.02-1.965l.175.128c-.194-.164-.425-.356-.67-.561l-.394-.324c0 0-.008 2.085-.02 3.139"/><path fill="#699635" d="m28.15 31.781l.592-1.471-.612-.494c0 0-.022.975.02 1.965"/><path fill="#d52b1e" d="m27.24 29.06l.394.324c-.718-.601-1.558-1.305-1.984-1.666-.08-.067-.098 1.436-.089 3.11l1.658 1.371c.013-1.055.021-3.139.021-3.139"/><path fill="#ffe000" d="m36.777 32.2l-.596.493-.281-.565-.053-.346c.043-.991.021-1.965.021-1.965l-.176.128c.193-.164.426-.356.67-.561l.395-.324c.001.001.007 2.086.02 3.14"/><path fill="#699635" d="m35.848 31.781l-.592-1.471.613-.494c0 0 .022.975-.021 1.965"/><g fill="#d52b1e"><path d="m36.756 29.06l-.393.324c.717-.601 1.557-1.305 1.982-1.666.08-.067.098 1.436.09 3.11l-1.658 1.371c-.013-1.055-.021-3.139-.021-3.139"/><path d="m27.763 38.04c-1.333-.702-1.551-2.845-1.531-3.138.021-.291.032-3.714.032-3.714l.395.325c-.718-.601-1.558-1.306-1.984-1.667-.137-.116-.039 4.483-.039 6.526 0 .957.715 4.335 4.905 2.635 0 0 2.094-.629 2.706-1.386-.143 0-.283-.008-.423-.022l-.203.08c-2.417 1.362-3.858.36-3.858.361"/></g><path fill="#ffe000" d="m26.23 34.9c-.021.293.197 2.436 1.531 3.137 0 0 1.442 1 3.858-.359-.73.252-1.327.306-1.717.209-1.169-.289-2.405-1.417-2.602-2.559-.198-1.143-.149-3.385-.149-3.385l.176.128c-.195-.163-.425-.355-.67-.56l-.395-.325c.001.001-.011 3.423-.032 3.714"/><path fill="#699635" d="m27.943 33.423c-.011-.104-.02-.472-.021-.873-.275-.231.053.052-.589-.485l-.179-.153v.073c-.005.311-.033 2.293.148 3.344.198 1.143 1.399 2.27 2.568 2.559.391.097 1.021.043 1.751-.209l.15-.086c-2.114-.253-3.572-1.9-3.828-4.17"/><path fill="#d52b1e" d="m36.24 38.12c1.334-.702 1.551-2.846 1.531-3.137-.021-.293-.033-3.715-.033-3.715l-.393.324c.717-.601 1.557-1.306 1.982-1.667.137-.115.039 4.483.039 6.526 0 .957-.715 4.336-4.906 2.635 0 0-2.093-.627-2.705-1.385.143 0 .284-.008.423-.023l.204.081c2.419 1.362 3.858.361 3.858.361"/><path fill="#ffe000" d="m37.768 34.979c.02.291-.197 2.435-1.531 3.137 0 0-1.441 1-3.858-.36.731.251 1.327.306 1.717.208 1.17-.289 2.404-1.416 2.602-2.559.197-1.142.148-3.384.148-3.384l-.176.128c.195-.164.426-.355.67-.56l.395-.324c-.001-.001.011 3.421.033 3.714"/><path fill="#699635" d="m36.06 33.5c.012-.104.02-.472.021-.874.275-.23-.053.052.59-.484l.178-.153v.073c.006.31.033 2.292-.146 3.342-.199 1.143-1.4 2.271-2.568 2.559-.391.098-1.021.044-1.752-.208l-.149-.086c2.111-.251 3.57-1.899 3.826-4.169"/><ellipse fill="#00a6de" cx="31.999" cy="33.28" rx="4.235" ry="4.907"/><path fill="#e8a30e" d="m35.457 33.435c0 2.265-6.915 2.265-6.915 0 0-2.264 1.548-4.099 3.458-4.099s3.457 1.834 3.457 4.099"/><ellipse fill="#d52b1e" cx="31.911" cy="31.632" rx="1.667" ry="1.429"/><path fill="#699635" d="m31.818 31.29c-1.039.023-3.276 2.19-3.276 2.19 0 2.105 1.548 3.813 3.458 3.813 1.91 0 3.457-1.707 3.457-3.813 0 0-2.527-2.214-3.639-2.19"/><path fill="#e8a30e" d="m32.33 35.02h.851v1.444h-.851z"/><path fill="#fff" d="m33.578 33.428h.457v2.772h-.457z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#c94747"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#83bf4f"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#ffce31"/><path fill="#ed1c24" d="m31.3 37.7h1.4v2.9h-1.4z"/><g fill="#ffe000"><path d="m30.2 38h1.4v2.9h-1.4z"/><path d="m32.4 38h1.4v2.9h-1.4z"/></g><g fill="#699635"><path d="m30 38h.9v3.7h-.9z"/><path d="m33.1 38h.9v3.7h-.9z"/><path d="m29.6 23.4c0 0-.3-.1-.6-.1.2-.3.3-.9.3-.9s-.5.3-.7.6c-.1-.2-.3-.5-.3-.5s-.2.3-.2.5c0 .3.4.7.4.7s.5.1.8.1c.1-.1.3-.4.3-.4"/></g><path d="m29.1 24.1c0 0-.3 0-.6.1.1-.4 0-1 0-1s-.4.5-.5.8c-.2-.2-.4-.4-.4-.4s-.2.3-.1.6c.1.2.5.5.5.5s.5 0 .8-.1c.3-.1.3-.5.3-.5" fill="#83bf4f"/><path d="m28.9 25c0 0-.3.1-.6.2 0-.4-.2-.9-.2-.9s-.3.5-.3.9c-.2-.1-.5-.2-.5-.2s-.1.4.1.6c.2.2.7.4.7.4s.5-.1.7-.3c.1-.3.1-.7.1-.7" fill="#699635"/><path d="m28.8 25.9c0 0-.3.2-.5.4-.1-.4-.5-.8-.5-.8s-.1.6-.1.9c-.2-.1-.5-.1-.5-.1s0 .4.2.5c.2.2.7.2.7.2s.5-.2.6-.5c.3-.3.1-.6.1-.6" fill="#83bf4f"/><path d="m29 26.8c0 0-.2.2-.4.5-.2-.3-.7-.7-.7-.7s0 .6.2.9c-.3 0-.6 0-.6 0s.1.3.4.4.8 0 .8 0 .4-.4.4-.6c.1-.2-.1-.5-.1-.5" fill="#699635"/><path d="m29.5 27.5c0 0-.2.3-.2.5-.3-.3-.8-.5-.8-.5s.2.6.4.9c-.2 0-.5.2-.5.2s.2.3.5.3c.3 0 .7-.2.7-.2s.3-.4.3-.7c-.2-.2-.4-.5-.4-.5" fill="#83bf4f"/><path d="m30.1 28.2c0 0-.1.3-.1.6-.3-.2-.9-.3-.9-.3s.3.5.6.7c-.2.1-.5.3-.5.3s.3.2.5.2c.3 0 .7-.4.7-.4s.1-.5.1-.8c-.1-.1-.4-.3-.4-.3" fill="#699635"/><path d="m30.8 28.7c0 0 0 .3.1.6-.4-.1-1 0-1 0s.4.4.8.5c-.2.2-.4.4-.4.4s.3.2.6.1c.2-.1.5-.5.5-.5s0-.5-.1-.7c-.1-.4-.5-.4-.5-.4" fill="#83bf4f"/><path d="m34.4 23.4c0 0 .3-.1.6-.1-.2-.3-.3-.9-.3-.9s.5.3.7.6c.1-.2.3-.5.3-.5s.2.3.2.5c0 .3-.4.7-.4.7s-.5.1-.8.1c-.1-.1-.3-.4-.3-.4" fill="#699635"/><path d="m34.9 24.1c0 0 .3 0 .6.1-.1-.4 0-1 0-1s.4.4.5.8c.2-.2.4-.4.4-.4s.2.3.1.6c-.1.2-.5.5-.5.5s-.5 0-.8-.1c-.3-.1-.3-.5-.3-.5" fill="#83bf4f"/><path d="m35.1 25c0 0 .3.1.6.2 0-.4.2-.9.2-.9s.3.5.3.9c.2-.1.5-.2.5-.2s.1.4-.1.6c-.2.2-.7.4-.7.4s-.5-.1-.7-.3c-.1-.3-.1-.7-.1-.7" fill="#699635"/><path d="m35.2 25.9c0 0 .3.2.5.4.1-.4.5-.8.5-.8s.1.6.1.9c.2-.1.5-.1.5-.1s0 .4-.2.5c-.2.2-.7.2-.7.2s-.5-.2-.6-.5c-.3-.3-.1-.6-.1-.6" fill="#83bf4f"/><path d="m35 26.8c0 0 .2.2.4.5.2-.3.7-.7.7-.7s0 .6-.2.9c.3 0 .6 0 .6 0s-.1.3-.4.4c-.2.1-.8 0-.8 0s-.4-.4-.4-.6.1-.5.1-.5" fill="#699635"/><path d="m34.5 27.5c0 0 .2.3.2.5.3-.3.8-.5.8-.5s-.2.6-.4.9c.2 0 .5.2.5.2s-.2.3-.5.3c-.3 0-.7-.2-.7-.2s-.3-.4-.3-.7.4-.5.4-.5" fill="#83bf4f"/><path d="m33.9 28.2c0 0 .1.3.1.6.3-.2.9-.3.9-.3s-.3.5-.6.7c.2.1.5.3.5.3s-.3.2-.5.2c-.3 0-.7-.4-.7-.4s-.1-.5-.1-.8c.1-.1.4-.3.4-.3" fill="#699635"/><path d="m33.2 28.7c0 0 0 .3-.1.6.4-.1 1 0 1 0s-.4.4-.8.5c.2.2.4.4.4.4s-.3.2-.6.1c-.2-.1-.5-.5-.5-.5s0-.5.1-.7c.1-.4.5-.4.5-.4" fill="#83bf4f"/><path d="m35.3 25.6c-1 0-2.2 1.2-3.3 1.2-1.1 0-2.3-1.2-3.3-1.2-1 0-5 1.2-5 1.2 5.5 0 8.3 3 8.3 3s2.8-3 8.3-3c0 0-4-1.2-5-1.2" fill="#594640"/><circle cx="32" cy="26.3" r=".7" fill="#fff"/><path d="m27.2 32.2l.6.5.3-.6.1-.3c0-1 0-2 0-2l.2.1c-.2-.2-.4-.4-.7-.6l-.4-.3c-.1.1-.1 2.1-.1 3.2" fill="#ffe000"/><path d="m28.2 31.8l.6-1.5-.6-.5c-.1 0-.1 1 0 2" fill="#699635"/><path d="m27.2 29.1l.4.3c-.7-.6-1.6-1.3-2-1.7-.1-.1-.1 1.4-.1 3.1l1.7 1.4c0-1.1 0-3.1 0-3.1" fill="#d52b1e"/><path d="m36.8 32.2l-.6.5-.3-.6-.1-.3c0-1 0-2 0-2l-.2.1c.2-.2.4-.4.7-.6l.4-.3c.1.1.1 2.1.1 3.2" fill="#ffe000"/><path d="m35.8 31.8l-.6-1.5.6-.5c.1 0 .1 1 0 2" fill="#699635"/><g fill="#d52b1e"><path d="m36.8 29.1l-.4.3c.7-.6 1.6-1.3 2-1.7.1-.1.1 1.4.1 3.1l-1.7 1.4c0-1.1 0-3.1 0-3.1"/><path d="m27.8 38c-1.3-.7-1.6-2.8-1.5-3.1 0-.3 0-3.7 0-3.7l.4.3c-.7-.6-1.6-1.3-2-1.7-.1-.1 0 4.5 0 6.5 0 1 .7 4.3 4.9 2.6 0 0 2.1-.6 2.7-1.4-.1 0-.3 0-.4 0l-.2.1c-2.5 1.4-3.9.4-3.9.4"/></g><path d="m26.2 34.9c0 .3.2 2.4 1.5 3.1 0 0 1.4 1 3.9-.4-.7.3-1.3.3-1.7.2-1.2-.3-2.4-1.4-2.6-2.6-.2-1.1-.1-3.4-.1-3.4l.2.1c-.2-.2-.4-.4-.7-.6l-.4-.3c0 .2 0 3.6-.1 3.9" fill="#ffe000"/><path d="m27.9 33.4c0-.1 0-.5 0-.9-.3-.2.1.1-.6-.5l-.2-.2v.2c0 .3 0 2.3.1 3.3.2 1.1 1.4 2.3 2.6 2.6.4.1 1 0 1.8-.2l.1-.1c-2-.3-3.5-1.9-3.8-4.2" fill="#699635"/><path d="m36.2 38.1c1.3-.7 1.6-2.8 1.5-3.1 0-.3 0-3.7 0-3.7l-.4.3c.7-.6 1.6-1.3 2-1.7.1-.1 0 4.5 0 6.5 0 1-.7 4.3-4.9 2.6 0 0-2.1-.6-2.7-1.4.1 0 .3 0 .4 0l.2.1c2.5 1.4 3.9.4 3.9.4" fill="#d52b1e"/><path d="m37.8 35c0 .3-.2 2.4-1.5 3.1 0 0-1.4 1-3.9-.4.7.3 1.3.3 1.7.2 1.2-.3 2.4-1.4 2.6-2.6.2-1.1.1-3.4.1-3.4l-.2.1c.2-.2.4-.4.7-.6l.4-.3c0 .2 0 3.6.1 3.9" fill="#ffe000"/><path d="m36.1 33.5c0-.1 0-.5 0-.9.3-.2-.1.1.6-.5l.2-.2v.1c0 .3 0 2.3-.1 3.3-.2 1.1-1.4 2.3-2.6 2.6-.4.1-1 0-1.8-.2l-.1-.1c2-.2 3.5-1.8 3.8-4.1" fill="#699635"/><ellipse cx="32" cy="33.3" rx="4.2" ry="4.9" fill="#00a6de"/><path d="m35.5 33.4c0 2.3-6.9 2.3-6.9 0 0-2.3 1.5-4.1 3.5-4.1s3.4 1.9 3.4 4.1" fill="#e8a30e"/><ellipse cx="31.9" cy="31.6" rx="1.7" ry="1.4" fill="#d52b1e"/><path d="m31.8 31.3c-1 0-3.3 2.2-3.3 2.2 0 2.1 1.5 3.8 3.5 3.8s3.5-1.7 3.5-3.8c0 0-2.6-2.2-3.7-2.2" fill="#699635"/><path fill="#e8a30e" d="m32.3 35h.9v1.4h-.9z"/><path fill="#fff" d="m33.6 33.4h.5v2.8h-.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f6.svg
index 09d49d2..a835cb5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f6.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="M12.639,54.908l47.963-31.976C57.393,12.801,48.95,5.003,38.447,2.702L2.48,26.68
- C2.171,28.408,2,30.183,2,32C2,41.188,6.135,49.404,12.639,54.908z"/><path fill="#2a5f9e" d="M62,32c0-3.16-0.492-6.206-1.398-9.067L12.639,54.908C17.865,59.33,24.619,62,32,62
- C48.568,62,62,48.568,62,32z"/><path fill="#ffce31" d="M2.48,26.68L38.447,2.702C36.37,2.247,34.215,2,32,2C17.249,2,4.993,12.651,2.48,26.68z"/><path fill="#3e4347" d="m39.466 29.543l2.759-1.593-2.759-1.594c-.724-5.798-5.324-10.399-11.122-11.122l-1.594-2.76-1.593 2.76c-5.798.723-10.399 5.324-11.122 11.122l-2.759 1.594 2.759 1.593c.723 5.798 5.324 10.4 11.123 11.123l1.592 2.76 1.594-2.76c5.798-.723 10.398-5.324 11.122-11.123m-12.716 9.582c-6.162 0-11.174-5.01-11.174-11.174s5.01-11.176 11.174-11.176 11.176 5.01 11.176 11.176-5.01 11.174-11.176 11.174"/><path fill="#ed4c5c" d="m31.17 27.95l2.205-3.82h-4.416l-2.209-3.83-2.208 3.83h-4.412l2.204 3.82-2.204 3.825h4.413l2.207 3.825 2.209-3.825h4.416z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M12.6,54.9l48-32C57.4,12.8,49,5,38.4,2.7l-36,24C2.2,28.4,2,30.2,2,32C2,41.2,6.1,49.4,12.6,54.9z" fill="#fff"/><path d="m62 32c0-3.2-.5-6.2-1.4-9.1l-48 32c5.2 4.4 12 7.1 19.4 7.1 16.6 0 30-13.4 30-30" fill="#2a5f9e"/><path d="M2.5,26.7l36-24C36.4,2.2,34.2,2,32,2C17.2,2,5,12.7,2.5,26.7z" fill="#ffce31"/><path d="m39.5 29.5l2.8-1.6-2.8-1.6c-.7-5.8-5.3-10.4-11.1-11.1l-1.6-2.8-1.6 2.8c-5.8.8-10.4 5.4-11.2 11.2l-2.8 1.6 2.8 1.6c.7 5.8 5.3 10.4 11.1 11.1l1.6 2.8 1.6-2.8c5.8-.8 10.4-5.4 11.2-11.2m-12.7 9.6c-6.2 0-11.2-5-11.2-11.2s5-11.2 11.2-11.2 11.2 5 11.2 11.2-5.1 11.2-11.2 11.2" fill="#3e4347"/><path fill="#ed4c5c" d="m31.2 28l2.2-3.9h-4.4l-2.2-3.8-2.3 3.8h-4.4l2.2 3.9-2.2 3.8h4.4l2.3 3.8 2.2-3.8h4.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f7.svg
index 2528b13..3191070 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="M61.536,26.768C59.059,12.695,46.783,2,32,2C17.217,2,4.941,12.695,2.464,26.768L32,12L61.536,26.768z"/><path d="M2.464,37.232C4.941,51.305,17.217,62,32,62c14.783,0,27.059-10.695,29.536-24.768L32,52L2.464,37.232z"/></g><path fill="#ffe62e" d="M32,12L2.464,26.768C2.165,28.468,2,30.215,2,32s0.165,3.532,0.464,5.232L32,52l29.536-14.768
- C61.835,35.532,62,33.785,62,32s-0.165-3.532-0.464-5.232L32,12z"/><g fill="#428bc1"><path d="m25.997 28.435c-3.174 0-6.175.687-8.895 1.871-.062.557-.102 1.12-.102 1.694 0 8.284 6.716 15 15 15 5.604 0 10.482-3.079 13.06-7.633-3.696-6.503-10.845-10.932-19.06-10.932"/><path d="m46.786 34.429c.13-.792.214-1.6.214-2.429 0-8.283-6.716-15-15-15-5.923 0-11.03 3.443-13.468 8.428 2.367-.689 4.867-1.083 7.464-1.083 8.504-.001 16.05 3.974 20.79 10.08"/></g><g fill="#fff"><path d="m25.997 24.344c-2.598 0-5.097.394-7.464 1.083-.735 1.504-1.235 3.144-1.43 4.878 2.72-1.184 5.721-1.871 8.895-1.871 8.215 0 15.365 4.429 19.06 10.932.852-1.504 1.44-3.169 1.729-4.938-4.744-6.109-12.287-10.08-20.79-10.08"/><circle cx="22" cy="32" r="1"/><circle cx="26" cy="38" r="1"/><circle cx="32" cy="38" r="1"/><circle cx="32" cy="42" r="1"/><circle cx="40" cy="38" r="1"/><circle cx="40" cy="42" r="1"/><circle cx="36" cy="40" r="1"/><circle cx="22" cy="36" r="1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="M61.5,26.8C59.1,12.7,46.8,2,32,2S4.9,12.7,2.5,26.8L32,12L61.5,26.8z"/><path d="M2.5,37.2C4.9,51.3,17.2,62,32,62s27.1-10.7,29.5-24.8L32,52L2.5,37.2z"/></g><path d="m32 12l-29.5 14.8c-.3 1.7-.5 3.4-.5 5.2s.2 3.5.5 5.2l29.5 14.8 29.5-14.8c.3-1.7.5-3.4.5-5.2s-.2-3.5-.5-5.2l-29.5-14.8" fill="#ffe62e"/><g fill="#428bc1"><path d="m26 28.4c-3.2 0-6.2.7-8.9 1.9-.1.6-.1 1.1-.1 1.7 0 8.3 6.7 15 15 15 5.6 0 10.5-3.1 13.1-7.6-3.7-6.5-10.9-11-19.1-11"/><path d="m46.8 34.4c.1-.8.2-1.6.2-2.4 0-8.3-6.7-15-15-15-5.9 0-11 3.4-13.5 8.4 2.4-.7 4.9-1.1 7.5-1.1 8.5 0 16 4 20.8 10.1"/></g><g fill="#fff"><path d="m26 24.3c-2.6 0-5.1.4-7.5 1.1-.7 1.5-1.2 3.1-1.4 4.9 2.7-1.2 5.7-1.9 8.9-1.9 8.2 0 15.4 4.4 19.1 10.9.9-1.5 1.4-3.2 1.7-4.9-4.8-6.1-12.3-10.1-20.8-10.1"/><circle cx="22" cy="32" r="1"/><circle cx="26" cy="38" r="1"/><circle cx="32" cy="38" r="1"/><circle cx="32" cy="42" r="1"/><circle cx="40" cy="38" r="1"/><circle cx="40" cy="42" r="1"/><circle cx="36" cy="40" r="1"/><circle cx="22" cy="36" r="1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f8.svg
index d975dfa..a353225 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21h-.002c5.43 5.43 12.93 8.788 21.21 8.788 13.07 0 24.18-8.356 28.29-20.02-.098.003-.193.015-.291.015"/><path d="m60 22c.098 0 .193.012.291.015-4.115-11.659-15.225-20.02-28.29-20.02-8.285 0-15.785 3.358-21.21 8.788h.002v21.21h39.21c0-5.523 4.477-10 10-10"/></g><path fill="#ffe62e" d="m60.29 22h-49.5v20h49.5c1.107-3.129 1.714-6.492 1.714-10s-.607-6.871-1.714-10"/><path fill="#3e4347" d="M10.787,10.787C5.357,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L32,32L10.787,10.787z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10"/></g><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#ffe62e"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f9.svg
index 39bb680..fb5784c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m17 6.02c-14.346 8.283-19.261 26.629-10.979 40.974l51.953-29.995c-8.283-14.346-26.627-19.262-40.974-10.979"/><path fill="#ed4c5c" d="m46.998 57.977c14.346-8.284 19.262-26.627 10.979-40.974l-51.954 29.995c8.284 14.346 26.628 19.262 40.975 10.979"/><path fill="#fff" d="m57.652 18.39c0 0-1.539-.136-2.316-.131-.805.005-1.539.496-2.359.573.555-.251.867-.829 1.434-1.06.523-.215 1.279-.26 1.391-.955-.521.396-1.189.255-1.787.232-.602-.022-.955.505-1.389.821.182-.88.689-1.499.762-2.42.063-.817 1.381-1.423 1.043-2.262-.094.757-1.125.928-1.359 1.647-.307.939-1.08 1.618-1.191 2.599-.135 1.183-.967.638-1.768.895-.234.075-1.131-1.049-2.418-.997-2.047.084-2.805.068-5.357-2.469-.588-.585-2.744-.825-3.506-.305.754-.04 1.504.199 2.127.62-.438.327-.977-.375-1.467-.087.85.045 1.082.354.988 1.078-.736-.54-1.852-1.232-2.787-.762-.563.282-1.699-.134-1.973.654.783-.381 1.631-.058 2.371.246-.428.145-1.377.077-1.695.483.381-.114.764-.114 1.145-.001-.123.284-.168.581-.129.89-1.07-.434-2.613-.995-3.643-.167-1.083.869.613 1.934.852 1.309-.725.305-1.046-.86-.025-.937 1.359-.103 2.705.48 3.895 1.069-.627.171-2.521.025-2.781-.762-.096.307-.076.682.219.879-.914.032-1.676.861-2.469.835-.739-.024-2.056-.037-2.238.92 1.1-.987 2.626-.206 3.91-.412-.34.636-.496 1.331-.68 1.952-.271.916-1.248 1.288-1.707 2.24.413-.413.942-.711 1.518-.825-.348.656-1.087 1.791-.706 2.524.188-1.106.925-.848 1.671-1.248-.227.546.248 1.385.902 1.202-.33.48-.006 1.242.557 1.363-.434.539-1.383.168-1.646.737.709-.305 1.326.754 2.182.455-.098.355-.029.673.207.957-.531-.129-1.418.275-1.703-.41-.313.75 1.086.597.893 1.23-.27-.033-.688-.782-.895-.213-.146-.048-.262-.62-.588-.74-.355-.132-.891.174-1.076.103.412-.553-.726-1.018-1.095-.642.14-.887-1.552-1.488-1.589-2.161-.251.483.274.899.204 1.388-.169-.192-.381-.272-.635-.238-.614.113-.185-.105-.791-.19-.576-.081-.274.297-.761-.013-.256-.163-.657-.134-.841.13-.301-1.023-1.612-.466-1.931-1.281-.132.464.597 1.01.681 1.503-.591-.499-1.662.098-1.363.881-.244.14-1.622-.439-1.275.698-.429-.354-2.659-.1-2.685.633.36-.275 1.159-.125 1.517.081-.332.232-.441.934-.188 1.242-1.133-.136-.565 1.436-1.08 1.704-.746.387-1.353 1.395-2.317 1.121.48.764 1.477.027 2.134.096-.731.5-.134 1.341-.566 1.811-.42.457-.897 1.71-1.821 1.418.15.362.618.451.95.51-.292.181-.561.563-.963.428.035.268.163.477.386.629-.476-.046-.941.236-1.414.057.001.246.071.472.209.676-.579-.199-1.845-.547-2.206.193.294-.023.75.017.868.361-.433-.27-.937-.109-1.397-.055-.696.082-1.145-.322-1.769-.516-.485-.151-2.844-.643-2.884.176.517-.416 1.581.378 2.205.332.884-.064 1.563.609 2.395.768-1.2-.121-1.898.471-2.994.6-.469.055-1.636-.095-1.708.609.545-.295 1.129.066 1.694-.082.48-.127.977-.547 1.502-.297-.327.393-.793.623-1.289.716-.764.142-1.117.429-1.781.774-.543.283-1.21.168-1.701.578-.413.348-.8.777-1.368.848.702.449 1.373-.271 1.978-.533.781-.338 1.585-.18 2.335-.684-.427 1.01-1.778.84-2.56 1.382-.969.674-1.665 1.813-2.92 1.991.512.58 1.56-.161 2.047-.418.875-.46 2.02-.295 2.782-.951.765-.657 1.66-.83 2.387-1.504.214-.2 2.025-1.414 2.169-1.363-.74.332-.819 1.411-1.674 1.572.711.28 2.231-.934 3-1.169-.448.634-1.667.858-1.837 1.626.691-.559 1.688-.363 2.33-.916.602-.519 1.755-1.299 2.18-1.951.41-.629.771-.939 1.404-1.348.318-.206.619-.506 1.013-.563.406-.057.845.178 1.236-.025.134 1.753-.645.332-1.235 1.129-.093.125.649.342.682.51.006.028-1.133.988-1.217.996.326.396 1.023.08 1.268-.242-.058.328.326.555.178.888.208.022.695-1.146.888-.886-.548.24.358.523.375.549-.304.179 0 .473.233.414-.329.111-.042.559-.151.814-.217.513-.623.359-1.08.783-.403.373-.464.906-.375 1.422.066.379.423 1.713.6.852-.38 1.854 2.048 3.129 3.356 1.764.678-.708 1.532-3.646.339-4.176.238.07.454.029.647-.127.09.172.227.284.414.338.725.217.933 1.115.842 1.754.495-.643.446-2.069-.057-2.713-.168-.215-.921-.533-1.187-.574-.27-.045-.481.045-.634.27-.214-.197-.467-.273-.754-.229.08-.402-.441-1.396-.811-1.615-.813-.479-.263-1.797-.12-2.479.335.229 1.161.531 1.558.701.362.156 2.6.725 1.651.276 1.957.784 3.225-2.353 1.275-3.149.817.123.129-.732-.334-.882-.624-.202-1.796.126-2.322.476.101-.081.332-.78.447-.923.27-.323.648-.567 1.134-.446-1.883-2.465-2.55 2.068-3.37 1.704-.571-.253-.678-2.05-.354-2.446.188-.23-.031-.547.133-.761.23-.3.635-.563.824-.872.709-1.159 3.556-.599 4.919-.004 1.696.74 3.979 1.041 5.84 1.154-.191.375.064.615-.029.9-.162-.104-1.777-.149-1.861-.02.447.017.811.484 1.307.533-.766.052-.877 1.221-1.535 1.166.367.35 2.678-1.143 1.674.621.447-.01.641-.506.734-.855.371.217 2.791 2.24 3.287 1.416-.018.45.703.51 1 .506.508-.009 1.441.4 1.838.279-1.543 1.051 2.604 4.645 2.613 3.248.006-.922 1.348.803 2.551-.427 1.32-1.345.232-3.769-1.646-3.689.521-.148 1.604-.16 1.76.69.908-1.467-1.457-2.293-2.502-1.902.602-.342.158-.623.717-.86.393-.167.66-.646 1.15-.509-.582-.68-3.039-.453-2.791.736-.293-.098-.533-.025-.721.219.012.391-.18.541-.576.451-.18.417-.387.455-.621.113-.387-.212-.635-.135-1.016-.372-.279-.175-.982-.236-1.314-.176-.518.095-.674-.647-1.256-.438-.09-.966.65-1.643 1.096-2.408.523-.899 1.033-1.819 1.17-2.868.119-.922-.238-1.695.959-1.848.947-.12 1.064 1.045.213 1.301.426.268.92-.105 1.129-.457-.285.628-.326 1.716.52 1.928-.24-.489.424-.895.166-1.37.412.175.789.635.771 1.103.516-.574-.24-1.226-.25-1.827.91.068 1.498-.244 2.219-.753.754-.534.867-.458 1.51.008 1.113.81 3.502.615 4.189-.71.342-.662.986-.692.398-1.525-.4-.568-.934-1.12-1.182-1.711-.803-1.9-3.336.231-3.646.777-.441.628-.145.682-.883.618-1.049-.089-1.922.603-3.03.414-.967-.165-1.664-.727-2.514-1.155-1.115-.562-1.74-.632-2.473-1.715.645.131 1.307.243 1.834.674.436.356.85.969 1.506.793-.715-.194-1.383-1.257-2.074-1.661.709-.909 2.244-.636 3.256-.619.891.014 1.316 1.022 1.99 1.442-.395.185-.473.79-.965.813.441.236.938.077 1.277-.25-.135.386.01.843.424.985-.277-.379.189-.675.367-.936.131.27.545.485.379.848.953-.216.326-2.611-.426-2.814 1.268-1.128 1.576.945 1.227 1.774.498-.363.496-1.028.504-1.578.98.328 5.783-1.099 5.637.804.68-.806-.631-1.373-1.234-1.476-.467-.081-.752-1.524-1.547-.909.828-.112.42.986-.051 1.167.182-.665-.547-1.225-1.158-.964 1.668.484-.939 1.838-.715.857.133-.576.578-.991.467-1.636-.053-.302-.291-.663-.264-.874.387.125.404-.24.113-.372.279.104.58-.201.895-.247.721-.108 1.314-.417 1.955-.733.81-.399 3.257-.772 3.257-.772m-11.228 3.307c.326-.691 1.947-1.425 1.412-.176.219-.131.512-.762.848-.627.391.157.553.571.115.818.393 0 .766-.267 1.164-.154-.236.246-.236.62-.545.813-.574.362-2.074-.557-2.994-.674m1.771 1.56c-.438-.192-1.154-.64-1.479-.996.639.166 1.275.337 1.898.554-.044.035-.313.281-.419.442"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,6C2.7,14.3-2.3,32.7,6,47l52-30C49.7,2.7,31.3-2.3,17,6z" fill="#ffce31"/><path d="m47 58c14.3-8.3 19.3-26.6 11-41l-52 30c8.3 14.3 26.7 19.3 41 11" fill="#ed4c5c"/><path d="m57.7 18.4c0 0-1.5-.1-2.3-.1-.8 0-1.5.5-2.4.6.6-.3.9-.8 1.4-1.1.5-.2 1.3-.3 1.4-1-.5.4-1.2.3-1.8.2-.6 0-1 .5-1.4.8.2-.9.7-1.5.8-2.4.1-.8 1.4-1.4 1-2.3-.1.8-1.1.9-1.4 1.6-.3.9-1.1 1.6-1.2 2.6-.1 1.2-1 .6-1.8.9-.2.1-1.1-1-2.4-1-2 .1-2.8.1-5.4-2.5-.6-.6-2.7-.8-3.5-.3.8 0 1.5.2 2.1.6-.4.3-1-.4-1.5-.1.8 0 1.1.4 1 1.1-.7-.5-1.9-1.2-2.8-.8-.6.3-1.7-.1-2 .7.8-.4 1.6-.1 2.4.2-.4.1-1.4.1-1.7.5.4-.1.8-.1 1.1 0-.1.3-.2.6-.1.9-1.1-.4-2.6-1-3.6-.2-1.1.9.6 1.9.9 1.3-.7.3-1-.9 0-.9 1.4-.1 2.7.5 3.9 1.1-.6.2-2.5 0-2.8-.8-.1.3-.1.7.2.9-.9 0-1.7.9-2.5.8-.7 0-2.1 0-2.2.9 1.1-1 2.6-.2 3.9-.4-.3.6-.5 1.3-.7 2-.3.9-1.2 1.3-1.7 2.2.4-.4.9-.7 1.5-.8-.3.7-1.1 1.8-.7 2.5.2-1.1.9-.8 1.7-1.2-.2.5.2 1.4.9 1.2-.3.5 0 1.2.6 1.4-.4.5-1.4.2-1.6.7.7-.3 1.3.8 2.2.5-.1.4 0 .7.2 1-.5-.1-1.4.3-1.7-.4-.3.8 1.1.6.9 1.2-.3 0-.7-.8-.9-.2-.1 0-.3-.6-.6-.7-.4-.1-.9.2-1.1.1.4-.6-.7-1-1.1-.6.1-.9-1.6-1.5-1.6-2.2-.3.5.3.9.2 1.4-.2-.2-.4-.3-.6-.2-.6.1-.2-.1-.8-.2-.6-.1-.3.3-.8 0-.3-.2-.7-.1-.8.1-.3-1-1.6-.5-1.9-1.3-.1.5.6 1 .7 1.5-.6-.5-1.7.1-1.4.9-.2.1-1.6-.4-1.3.7-.4-.4-2.7-.1-2.7.6.4-.3 1.2-.1 1.5.1-.3.2-.4.9-.2 1.2-1.1-.1-.6 1.4-1.1 1.7-.7.4-1.4 1.4-2.3 1.1.5.8 1.5 0 2.1.1-.7.5-.1 1.3-.6 1.8-.4.5-.9 1.7-1.8 1.4.1.4.6.5 1 .5-.3.2-.6.6-1 .4 0 .3.2.5.4.6-.5 0-.9.2-1.4.1 0 .2.1.5.2.7-.6-.2-1.8-.5-2.2.2.3 0 .8 0 .9.4-.4-.3-.9-.1-1.4-.1-.7.1-1.1-.3-1.8-.5-.5-.2-2.8-.6-2.9.2.5-.4 1.6.4 2.2.3.9-.1 1.6.6 2.4.8-1.2-.1-1.9.5-3 .6-.5.1-1.6-.1-1.7.6.5-.3 1.1.1 1.7-.1.5-.1 1-.5 1.5-.3-.3.4-.8.6-1.3.7-.8.1-1.1.4-1.8.8-.5.3-1.2.2-1.7.6-.4.3-.8.8-1.4.8.7.4 1.4-.3 2-.5.8-.3 1.6-.2 2.3-.7-.4 1-1.8.8-2.6 1.4-1 .7-1.7 1.8-2.9 2 .5.6 1.6-.2 2-.4.9-.5 2-.3 2.8-1 .8-.7 1.7-.8 2.4-1.5.2-.2 2-1.4 2.2-1.4-.7.3-.8 1.4-1.7 1.6.7.3 2.2-.9 3-1.2-.4.6-1.7.9-1.8 1.6.7-.6 1.7-.4 2.3-.9.6-.5 1.8-1.3 2.2-2 .4-.6.8-.9 1.4-1.3.3-.2.6-.5 1-.6.4-.1.8.2 1.2 0 .1 1.8-.6.3-1.2 1.1-.1.1.6.3.7.5 0 0-1.1 1-1.2 1 .3.4 1 .1 1.3-.2-.1.3.3.6.2.9.2 0 .7-1.1.9-.9-.5.2.4.5.4.5-.3.2 0 .5.2.4-.3.1 0 .6-.2.8-.2.5-.6.4-1.1.8-.4.4-.5.9-.4 1.4.1.4.4 1.7.6.9-.4 1.9 2 3.1 3.4 1.8.7-.7 1.5-3.6.3-4.2.2.1.5 0 .6-.1.1.2.2.3.4.3.7.2.9 1.1.8 1.8.5-.6.4-2.1-.1-2.7-.2-.2-.9-.5-1.2-.6-.3 0-.5 0-.6.3-.2-.2-.5-.3-.8-.2.1-.4-.4-1.4-.8-1.6-.8-.5-.3-1.8-.1-2.5.3.2 1.2.5 1.6.7.4.2 2.6.7 1.7.3 2 .8 3.2-2.4 1.3-3.1.8.1.1-.7-.3-.9-.6-.2-1.8.1-2.3.5.1-.1.3-.8.4-.9.3-.3.6-.6 1.1-.4-1.9-2.5-2.5 2.1-3.4 1.7-.6-.3-.7-2-.4-2.4.2-.2 0-.5.1-.8.2-.3.6-.6.8-.9.7-1.2 3.6-.6 4.9 0 1.7.7 4 1 5.8 1.2-.2.4.1.6 0 .9-.2-.1-1.8-.1-1.9 0 .4 0 .8.5 1.3.5-.8.1-.9 1.2-1.5 1.2.4.3 2.7-1.1 1.7.6.4 0 .6-.5.7-.9.4.2 2.8 2.2 3.3 1.4 0 .5.7.5 1 .5.5 0 1.4.4 1.8.3-1.5 1.1 2.6 4.6 2.6 3.2 0-.9 1.3.8 2.6-.4 1.3-1.3.2-3.8-1.6-3.7.5-.1 1.6-.2 1.8.7.9-1.5-1.5-2.3-2.5-1.9.6-.3.2-.6.7-.9.4-.2.7-.6 1.2-.5-.6-.7-3-.5-2.8.7-.3-.1-.5 0-.7.2 0 .4-.2.5-.6.5-.2.4-.4.5-.6.1-.4-.2-.6-.1-1-.4-.3-.2-1-.2-1.3-.2-.5.1-.7-.6-1.3-.4-.1-1 .7-1.6 1.1-2.4.5-.9 1-1.8 1.2-2.9.1-.9-.2-1.7 1-1.8.9-.1 1.1 1 .2 1.3.4.3.9-.1 1.1-.5-.3.6-.3 1.7.5 1.9-.2-.5.4-.9.2-1.4.4.2.8.6.8 1.1.5-.6-.2-1.2-.2-1.8.9.1 1.5-.2 2.2-.8.8-.5.9-.5 1.5 0 1.1.8 3.5.6 4.2-.7.3-.7 1-.7.4-1.5-.4-.6-.9-1.1-1.2-1.7-.8-1.9-3.3.2-3.6.8-.4.6-.1.7-.9.6-1-.1-1.9.6-3 .4-1-.2-1.7-.7-2.5-1.2-1.1-.6-1.7-.6-2.5-1.7.6.1 1.3.2 1.8.7.4.4.8 1 1.5.8-.7-.2-1.4-1.3-2.1-1.7.7-.9 2.2-.6 3.3-.6.9 0 1.3 1 2 1.4-.4.2-.5.8-1 .8.4.2.9.1 1.3-.2-.1.4 0 .8.4 1-.3-.4.2-.7.4-.9.1.3.5.5.4.8 1-.2.3-2.6-.4-2.8 1.3-1.1 1.6.9 1.2 1.8.5-.4.5-1 .5-1.6 1 .3 5.8-1.1 5.6.8.7-.8-.6-1.4-1.2-1.5-.5-.1-.8-1.5-1.5-.9.8-.1.4 1-.1 1.2.2-.7-.5-1.2-1.2-1 1.7.5-.9 1.8-.7.9.1-.6.6-1 .5-1.6-.1-.3-.3-.7-.3-.9.4.1.4-.2.1-.4.3.1.6-.2.9-.2.7-.1 1.3-.4 2-.7 1-.3 3.5-.7 3.5-.7m-11.3 3.3c.3-.7 1.9-1.4 1.4-.2.2-.1.5-.8.8-.6.4.2.6.6.1.8.4 0 .8-.3 1.2-.2-.2.2-.2.6-.5.8-.6.4-2.1-.5-3-.6m1.8 1.6c-.4-.2-1.2-.6-1.5-1 .6.2 1.3.3 1.9.6 0 0-.3.2-.4.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fb.svg
index f28095a..e9f5672 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.721 28c-.137-1.016-.314-2.02-.551-3h-58.34c-.235.98-.414 1.984-.551 3h59.44"/><path d="m2.28 36c.137 1.016.315 2.02.551 3h58.34c.236-.982.414-1.984.551-3h-59.44"/><path d="m20 4.488c-1.03.451-2.033.953-3 1.514v51.996c.967.561 1.97 1.063 3 1.512v-55.02"/><path d="m28 2.262v59.48c.986.133 1.984.23 3 .264v-60c-1.016.033-2.01.131-3 .262"/></g><g fill="#2a5f9e"><path d="m2 32c0 1.357.099 2.689.273 4h59.45c.176-1.311.274-2.643.274-4s-.098-2.691-.273-4h-59.45c-.175 1.309-.274 2.643-.274 4"/><path d="m20 59.5c2.508 1.096 5.191 1.855 8 2.23v-59.45c-2.809.375-5.492 1.135-8 2.23v54.993"/></g><g fill="#ed4c5c"><path d="M17,25V6.023C9.983,10.084,4.766,16.902,2.831,25H17z"/><path d="M17,39.023V58C9.983,53.939,4.766,47.121,2.831,39.023H17z"/><path d="M32,2c-0.336,0-0.666,0.014-1,0.025V25h30.17C58.016,11.809,46.158,2,32,2z"/><path d="m31 39v22.975c.334.009.664.025 1 .025 14.158 0 26.02-9.811 29.17-23h-30.17"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.7 28c-.1-1-.3-2-.6-3h-58.3c-.2 1-.4 2-.6 3h59.5"/><path d="m2.3 36c.1 1 .3 2 .6 3h58.3c.2-1 .4-2 .6-3h-59.5"/><path d="m20 4.5c-1 .5-2 1-3 1.5v52c1 .6 2 1.1 3 1.5v-55"/><path d="m28 2.3v59.5c1 .1 2 .2 3 .3v-60.1c-1 0-2 .1-3 .3"/></g><g fill="#2a5f9e"><path d="m2 32c0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4s-.1-2.7-.3-4h-59.5c-.2 1.3-.3 2.6-.3 4"/><path d="m20 59.5c2.5 1.1 5.2 1.9 8 2.2v-59.4c-2.8.4-5.5 1.1-8 2.2v55"/></g><g fill="#ed4c5c"><path d="M17,25V6C10,10.1,4.8,16.9,2.8,25H17z"/><path d="M17,39v19C10,53.9,4.8,47.1,2.8,39H17z"/><path d="M32,2c-0.3,0-0.7,0-1,0v23h30.2C58,11.8,46.2,2,32,2z"/><path d="m31 39v23c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fc.svg
index a22852a..05f152a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m60.913 24c-3.502-12.684-15.12-22-28.913-22s-25.411 9.316-28.913 22v16c3.502 12.684 15.12 22 28.913 22 13.796 0 25.41-9.316 28.913-22v-16"/><g fill="#fff"><path d="m61.58 27.01c-.172-1.021-.393-2.027-.664-3.01h-57.826c-.272.984-.493 1.99-.665 3.01h59.16"/><path d="m2.423 36.988c.171 1.022.392 2.028.664 3.01h57.826c.271-.984.492-1.99.664-3.01h-59.15"/></g><path fill="#3e4347" d="m2 32c0 1.705.149 3.373.423 5h59.15c.274-1.627.423-3.295.423-5s-.149-3.373-.423-5h-59.15c-.274 1.627-.423 3.295-.423 5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.9 24c-3.5-12.7-15.1-22-28.9-22s-25.4 9.3-28.9 22v16c3.5 12.7 15.1 22 28.9 22 13.8 0 25.4-9.3 28.9-22 0 0 0-16 0-16" fill="#b4d7ee"/><g fill="#fff"><path d="m61.6 27c-.2-1-.4-2-.7-3h-57.8c-.3 1-.5 2-.7 3 0 0 59.2 0 59.2 0"/><path d="m2.4 37c.2 1 .4 2 .7 3h57.8c.3-1 .5-2 .7-3h-59.2"/></g><path d="m2 32c0 1.7.1 3.4.4 5h59.2c.3-1.6.4-3.3.4-5s-.1-3.4-.4-5h-59.2c-.3 1.6-.4 3.3-.4 5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fe.svg
index f3b44cf..f27068a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m3.16 26.591v.983h.579v.983h.58v-.983h.579v-.983h.58v-.984h.58v-.983h.579v-.984h.58v-.983h-.58v-.983h-.578v-.984h-1.74v.984h1.159v.983h-.58v.983h-.579v.983h-.58v-.983h-.544c-.239.824-.446 1.661-.615 2.513v.438h.58"/><path d="m10.116 11.516c-.1.106-.199.213-.298.32h.298v-.32"/><path d="m14.754 7.902h-.58v.983h-.579v.983h-.58v.983h-.579v.983h-.58v-.983h-.58v-.509c-.194.187-.39.373-.579.564v.928h.579v.984h.58v.983h-.58v.983h-.579v.983h-.58v-.983h-.58v-.983h-.58v-.979c-.195.234-.392.467-.58.707v.271h-.205c-.126.165-.252.33-.375.498v.485h-.354c-.077.11-.149.223-.226.334v.649h-.439c-.209.323-.407.652-.604.983h.463v.984h.58v.983h.579v.983h.58v.983h.232.115.232v-.983h.58v-.983h.579v-.983h.58v-.984h.579v-.983h.58v-.983h.58v.983h.579v.983h.58v.984h.579v.983h.58v.983h.58v-1.967h-.58v-.984h.58v-2.95h-.58v.983h-.58v.983h-.579v-.983h-.58v-.983h-.579v-.978h.579v-.984h.58v-.983h.579v.983h.58v.984h.58v-2.951h-.58v-.983h.58v-1.819c-.193.13-.39.257-.58.391v.444zm-5.797 9.836h-.232-.116-.232v-1.968h.232.115.232v1.968z"/><path d="m2.58 35.443v-.984h.58v-.983h.579v-.983h.58v-.394-.196-.394h-.58v-.983h-.579v-.984h-.58v-.983h-.378c-.129 1.129-.202 2.276-.202 3.441 0 1.166.073 2.313.203 3.443h.377"/><path d="m14.754 29.541h-.58v.984h-.579v.984h-.575v.393.198.392h.575v.984h.579v.983h.58v.984h.58v-6.885h-.58z"/><path d="m9.537 12.14c-.197.223-.386.453-.576.681h.576v-.681"/><path d="m9.818 52.16c.099.107.198.215.298.32v-.32h-.298"/><path d="m8.962 51.18c.19.228.378.458.575.68v-.68h-.575"/><path d="m14.754 55.12v-.983h.58v-2.951h-.58v.983h-.58v.983h-.579v-.983h-.58v-.983h-.579v-.983h.579v-.984h.58v-.983h.579v.983h.58v.984h.58v-2.951h-.58v-.983h.58v-1.968h-.58v.984h-.58v.983h-.579v.983h-.58v.983h-.579v.983h-.58v-.983h-.58v-.983h-.579v-.983h-.58v-.983h-.58v-.984h-.58v-.983h-.232-.116-.232v.983h-.58v.984h-.579v.983h-.58v.983h-.463c.197.331.395.661.604.983h.439v.649c.076.111.148.225.226.334h.354v.486c.123.167.249.333.376.498h.204v.271c.188.24.385.474.58.707v-.978h.58v-.984h.579v-.983h.58v.983h.579v.984h.58v.983h-.58v.983h-.579v.929c.189.191.385.378.579.563v-.509h.58v-.983h.58v.983h.579v.984h.58v.983h.579v.983h.58v.443c.19.135.387.262.58.392v-1.818h-.58zm-5.797-6.886h-.232-.116-.232v-1.967h.232.115.232v1.967z"/><path d="m14.754 37.41h-.58v-.983h-.579v-.984h-.575v.984h-.584v.983h-.581v.98h-.58v.99h-.579v.98h-.58v.98h.58v.99h.579v.98h1.745v-.98h-1.165v-.99h.581v-.98h.584v-.98h.575v.98h.579v.98h.58v.99h.58v-1.97h-.58v-.98h.58v-.99h-.58z"/><path d="m14.754 22.656h-.58v.984h-.579v.983h-.575v-.983h-.584v-.984h-.581v-.983h1.165v-.985h-1.745v.985h-.579v.983h-.58v.984h.58v.983h.579v.983h.58v.985h.581v.983h.584v.984h.575v-.984h.579v-.983h.58v-.985h.58v-.983h-.58v-.983h.58v-1.967h-.58z"/><path d="m3.739 39.38h.58v.984h.579v.983h.58v.983h-1.159v.983h1.739v-.983h.579v-.983h.58v-.983h-.58v-.984h-.578v-.983h-.58v-.984h-.58v-.983h-.58v-.983h-.58v.983h-.579v.983h-.58v.438c.169.852.376 1.688.615 2.513h.544v-.984"/><path d="m10.116 26.591h-.579v-.984h-.58v-.983h-.232-.116-.232v.983h-.58v.984h-.579v.983h-.58v.983h-.579v.983h-.58v2.361.196 2.36h.58v.984h.579v.983h.58v.983h.579v.983h.58v.983h.232.115.232v-.983h.58v-.98h.579v-.983h.58v-.983h.579v-.984h.58v-2.36-.196-2.361h-.58v-.983h-.579v-.983h-.58v-.986zm-3.478 5.311v.196.394h-.579v-.394-.196-.394h.579v.394m4.058.197v-.196-.394h.579v.394.196.394h-.579v-.394m-2.319-5.508h.232.115.232v.983h-.231-.116-.232v-.983m.58 10.819h-.232-.116-.232v-.983h.232.115.232v.983zm1.159-6.885h-.579v.983h-.58v.394.196.394h.58v.983h.579v1.968h-.579v-.984h-.58v-.983h-.232-.116-.232v.983h-.58v.984h-.579v-1.968h.579v-.983h.58v-.394-.196-.394h-.58v-.983h-.579v-1.968h.579v.983h.58v.984h.232.115.232v-.984h.58v-.983h.579v1.968z"/></g><g fill="#c8313e"><path d="m7.218 15.12c-.147.216-.298.43-.439.649h.439v-.649"/><path d="m7.797 14.787v-.485c-.118.161-.238.321-.354.485h.354"/><path d="m8.377 13.804v-.271c-.07.089-.136.182-.205.271h.205"/><path d="m6.06 31.902v.198.392h.578v-.392-.198-.393h-.578z"/><path d="m14.754 16.754h.58v.984h-.58z"/><path d="m8.957 12.82v.005l.004-.005z"/><path d="m9.537 13.804v.983h.579v.983h.58v-.983h.579v-.983h.58v-.984h-.58v-.984h-.579v-.928c-.197.198-.389.403-.58.607v.32h-.298c-.093.103-.189.2-.281.304v.681h-.576c-.001.002-.003.003-.004.005v.979h.58"/><path d="m14.754 8.886h.58v.983h-.58z"/><path d="m14.754 11.836h-.58v-.983h-.579v.983h-.575v.984h-.584v.984h.584v.983h.575v.984h.579v-.984h.58v-.983h.58v-.984h-.58z"/><path d="m11.855 10.853v.983h.58v-.983h.579v-.984h.58v-.983h.579v-.984h.58v-.444c-1.103.777-2.153 1.627-3.141 2.542h.016c-.12.111-.234.23-.353.344v.509h.58"/><path d="m8.609 15.771h-.232v1.967h.232.116.232v-1.967h-.232z"/><path d="m9.537 29.541h-.58v.984h-.232-.116-.232v-.984h-.58v-.983h-.579v1.967h.579v.984h.58v.393.198.392h-.58v.984h-.579v1.967h.579v-.984h.58v-.983h.232.116.232v.983h.58v.984h.579v-1.967h-.579v-.984h-.58v-.392-.198-.393h.58v-.984h.579v-1.967h-.579z"/><path d="m14.754 23.64h.58v.983h-.58z"/><path d="m14.754 18.722h-.58v-.983h-.579v-.984h-.58v-.983h-.579v-.983h-.58v.983h-.58v.983h-.579v.984h-.58v.983h-.58v.983h-.58v.983h-.232-.116-.232v-.983h-.58v-.983h-.579v-.983h-.58v-.984h-.463c-.619 1.043-1.185 2.124-1.675 3.245h.004c-.514 1.175-.946 2.393-1.309 3.64h.544v.983h.58v-.983h.579v-.983h.58v-.983h-1.159v-.984h1.739v.984h.579v.983h.58v.983h-.58v.983h-.578v.983h-.58v.984h-.58v.983h-.58v.983h-.58v-.983h-.579v-.983h-.58v-.438c-.157.791-.284 1.593-.378 2.405h.378v.983h.58v.984h.579v.983h.58v.394.196.394h-.58v.983h-.579v.983h-.58v.984h-.377c.093.813.22 1.614.377 2.405v-.436h.58v-.983h.579v-.983h.58v.983h.579v.983h.58v.983h.58v.983h.579v.984h.58v.983h-.58v.983h-.578v.983h-1.74v-.983h1.159v-.983h-.58v-.983h-.579v-.984h-.58v.984h-.544c.364 1.248.795 2.466 1.309 3.64h-.004c.49 1.122 1.056 2.202 1.675 3.246h.463v-.983h.58v-.983h.579v-.984h.58v-.983h.232.115.232v.983h.58v.984h.579v.983h.58v.983h.579v.983h.58v.983h.58v-.983h.579v-.983h.58v-.983h.579v-.983h.58v-.984h.58v-1.967h-.58v-.983h-.58v-.983h-.579v-.984h-.58v.984h-.579v.983h-.58v.983h1.159v.983h-1.739v-.983h-.579v-.983h-.58v-.983h.58v-.984h.579v-.983h.58v-.986h.58v-.983h.579v-.983h.58v.983h.579v.983h.58v.983h.58v-2.95h-.58v-.984h-.58v-.983h-.579v-.983h-.58v-.394-.196-.394h.58v-.983h.579v-.984h.58v-.983h.58v-2.951h-.58v.984h-.58v.983h-.579v.983h-.58v-.983h-.579v-.983h-.58v-.984h-.58v-.983h-.579v-.985h-.58v-.983h.58v-.983h.579v-.984h1.739v.984h-1.159v.983h.58v.983h.579v.983h.58v-.983h.579v-.983h.58v-.983h.58v-1.968h-.58v-.984zm-4.058 8.852v.983h.579v.983h.58v2.361.196 2.36h-.58v.984h-.579v.983h-.58v.983h-.579v.983h-.58v.983h-.232-.116-.232v-.983h-.58v-.98h-.579v-.983h-.58v-.983h-.579v-.984h-.58v-2.36-.196-2.361h.58v-.983h.579v-.983h.58v-.983h.579v-.984h.58v-.983h.232.115.232v.983h.58v.984h.579v.983h.581z"/><path d="m8.725 27.574h.232v-.983h-.232-.116-.232v.983h.232z"/><path d="m7.218 48.23h-.44c.142.22.292.434.439.649v-.649z"/><path d="m7.797 49.21h-.354c.115.164.235.324.354.486v-.486"/><path d="m8.377 50.2h-.204c.068.09.135.182.204.271v-.271"/><path d="m14.754 46.26h.58v.983h-.58z"/><path d="m14.754 49.21h-.58v-.98h-.579v.98h-.575v.99h-.584v.98h.584v.98h.575v.99h.579v-.99h.58v-.98h.58v-.98h-.58z"/><path d="m8.962 51.18l-.005-.01v.01z"/><path d="m9.537 51.18v.68c.092.104.188.202.281.304h.298v.32c.191.205.383.409.58.608v-.929h.579v-.983h.58v-.983h-.58v-.984h-.579v-.983h-.58v.983h-.579v.984h-.58v.978c.002.002.003.004.005.006h.575z"/><path d="m14.754 54.13h.58v.983h-.58z"/><path d="m11.612 54c.987.916 2.038 1.765 3.142 2.542v-.443h-.58v-.983h-.579v-.983h-.58v-.984h-.579v-.983h-.58v.983h-.58v.509c.118.113.232.232.353.344h-.017z"/><path d="m8.609 46.26h-.232v1.97h.232.116.232v-1.97h-.232z"/><path d="m14.754 39.38h.58v.984h-.58z"/><path d="m11.275 32.1v-.198-.393h-.579v.393.198.392h.579z"/><path d="m8.609 36.427h-.232v.983h.232.116.232v-.983h-.232z"/></g><path fill="#83bf4f" d="m15.334 44v12.933c4.768 3.196 10.495 5.067 16.666 5.067 7.874 0 15.03-3.037 20.388-8h-.016c3.01-2.791 5.46-6.184 7.128-10h-.004-44.16"/><path fill="#c94747" d="m59.5 44c1.608-3.676 2.504-7.732 2.504-12s-.896-8.324-2.504-12h.004c-1.668-3.816-4.115-7.209-7.128-10h.016c-5.353-4.963-12.514-8-20.388-8-6.171 0-11.898 1.871-16.666 5.066v36.934h44.16"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m3.2 26.6v1h.6v1h.6v-1h.6v-1h.6v-1h.6v-1h.6v-1h.6v-1h-.8v-1h-.5v-1h-1.8v1h1.2v1h-.6v1h-.6v1h-.6v-1h-.5c-.2.8-.4 1.7-.6 2.5v.4h.6z"/><path d="m10.1 11.5c-.1.1-.2.2-.3.3h.3v-.3"/><path d="m14.8 7.9h-.6v1h-.6v1h-.6v1h-.6v1h-.6v-1h-.6v-.5c-.2.2-.4.4-.6.6v.9h.6v1h.6v1h-.6v1h-.6v1h-.6v-1h-.5v-1h-.5v-1c-.2.2-.4.5-.6.7v.3h-.2c-.2.1-.3.2-.4.4v.5h-.4c-.1.1-.1.2-.2.3v.6h-.4c-.2.3-.4.7-.6 1h.5v1h.6v1h.6v1h.6v1h.2.1.2v-1h.6v-1h.6v-1h.6v-1h.6v-1h.6v-1h.6v1h.4v1h.6v1h.6v1h.6v1h.6v-2h-.6v-1h.6v-2.9h-.6v1h-.6v1h-.6v-1h-.6v-1h-.6v-1h.6v-1h.6v-1h.6v1h.6v1h.6v-3h-.6v-1h.6v-1.7c-.2.1-.4.3-.6.4v.4m-5.8 9.8h-.3-.1-.2v-2h.2.1.3v2"/><path d="m2.6 35.4v-1h.6v-1h.6v-1h.6v-.4-.2-.4h-.7v-1h-.5v-1h-.6v-1h-.4c-.1 1.3-.2 2.4-.2 3.6 0 1.2.1 2.3.2 3.4h.4"/><path d="m14.8 29.5h-.6v1h-.6v1h-.6v.4.2.4h.6v1h.6v1h.6v.9h.5v-6.8h-.5z"/><path d="m9.5 12.1c-.2.2-.4.5-.6.7h.6v-.7"/><path d="m9.8 52.2c.1.1.2.2.3.3v-.3h-.3"/><path d="m9 51.2c.2.2.4.5.6.7v-.7h-.6"/><path d="m14.8 55.1v-1h.6v-3h-.6v1h-.6v1h-.6v-1h-.6v-1h-.6v-1h.6v-1h.6v-1h.6v1h.6v1h.6v-3h-.6v-1h.6v-2h-.6v1h-.6v1h-.6v1h-.6v1h-.6v1h-.6v-1h-.6v-1h-.6v-1h-.6v-1h-.5v-1h-.5v-1h-.3-.1-.2v1h-.6v1h-.6v1h-.6v1h-.4c.2.3.4.7.6 1h.4v.6c.1.1.1.2.2.3h.4v.5c.1.4.2.5.4.7h.2v.3c.2.2.4.5.6.7v-1h.6v-1h.6v-1h.6v1h.6v1h.6v1h-.6v1h-.6v.9c.2.2.4.4.6.6v-.5h.6v-1h.6v1h.4v1h.6v1h.6v1h.6v.4c.2.1.4.3.6.4v-1.8l-.6-.1m-5.8-6.9h-.3-.1-.2v-2h.2.1.3v2"/><path d="m14.8 37.4h-.6v-1h-.6v-1h-.6v1h-.6v1h-.5v1h-.6v1h-.6v1h-.6v.9h.6v1h.6v1h1.7v-1h-1.1v-1h.5v-.9h.6v-1h.6v1h.6v.9h.6v1h.5v-1.9h-.5v-1h.5v-1h-.5z"/><path d="m14.8 22.7h-.6v.9h-.6v1h-.6v-1h-.6v-.9h-.5v-1h1.1v-1h-1.7v1h-.6v1h-.6v.9h.6v1h.6v1h.6v1h.5v1h.6v1h.6v-1h.6v-1h.6v-1h.5v-1h-.5v-1h.5v-1.9h-.5z"/><path d="m3.7 39.4h.6v1h.6v1h.6v1h-1.2v1h1.7v-1h.6v-1h.6v-1h-.6v-1h-.5v-1h-.6v-1h-.6v-1h-.6v-1h-.6v1h-.5v1h-.6v.4c.2.9.4 1.7.6 2.5h.5c0 .1 0-.9 0-.9"/><path d="m10.1 26.6h-.6v-1h-.5v-1h-.3-.1-.2v1h-.6v1h-.6v1h-.6v1h-.5v1h-.6v2.4.2 2.4h.6v1h.6v1h.6v1h.6v1h.6v1h.2.1.2v-1h.6v-1h.6v-1h.6v-1h.6v-1h.6v-2.4-.2-2.4h-.6v-1h-.6v-1h-.6l-.1-1m-3.5 5.3v.2.4h-.5v-.4-.2-.4h.6v.4zm4.1.2v-.2-.4h.6v.4.2.4h-.6c0 0 0-.4 0-.4m-2.3-5.5h.2.1.3v1h-.3-.1-.2v-1m.6 10.8h-.3-.1-.2v-1h.2.1.3v1m1.1-6.9h-.6v1h-.5v.4.2.4h.6v1h.6v2h-.7v-1h-.5v-1h-.3-.1-.2v1h-.6v1h-.6v-2h.6v-1h.6v-.4-.2-.4h-.6v-1h-.6v-2h.6v1h.6v1h.2.1.3v-1h.6v-1h.6l-.1 2"/></g><g fill="#c8313e"><path d="m7.2 15.1c-.1.2-.3.4-.4.6h.4v-.6"/><path d="m7.8 14.8v-.5c-.1.2-.2.3-.4.5h.4"/><path d="m8.4 13.8v-.3c-.1.1-.1.2-.2.3h.2"/><path d="m6.1 31.9v.2.4h.5v-.4-.2-.4h-.5z"/><path d="m14.8 16.8h.6v1h-.6z"/><path d="m9.5 13.8v1h.6v1h.6v-1h.6v-1h.6v-1h-.6v-1h-.6v-.9c-.2.2-.4.4-.6.6v.3h-.3c-.1.1-.2.2-.3.3v.7h-.5c0 0 0 0 0 0v1c0 0 .5 0 .5 0"/><path d="m14.8 8.9h.6v1h-.6z"/><path d="m14.8 11.8h-.6v-.9h-.6v.9h-.6v1h-.6v1h.6v1h.6v1h.6v-1h.6v-1h.5v-1h-.5z"/><path d="m11.9 10.9v1h.6v-1h.5v-1h.6v-1h.6v-1h.6v-.4c-1.1.8-2.2 1.6-3.1 2.5-.1.1-.2.2-.4.3v.5h.6z"/><path d="m8.6 15.8h-.2v1.9h.2.1.3v-1.9h-.3z"/><path d="m9.5 29.5h-.5v1h-.3-.1-.2v-1h-.6v-.9h-.6v1.9h.6v1h.6v.4.2.4h-.6v1h-.6v1.9h.6v-.9h.6v-1h.2.1.3v1h.5v.9h.6v-1.9h-.6v-1h-.5v-.4-.2-.4h.5v-1h.6v-1.9h-.6z"/><path d="m14.8 23.6h.6v1h-.6z"/><path d="m14.8 18.7h-.6v-1h-.6v-1h-.6v-1h-.6v-1h-.6v1h-.6v1h-.6v1h-.6v1h-.5v1h-.5v1h-.3-.1-.2v-1h-.6v-1h-.6v-1h-.6v-1h-.4c-.6 1-1.2 2.1-1.7 3.2-.5 1.2-.9 2.4-1.3 3.6h.5v1h.6v-1h.6v-1h.6v-1h-1.2v-1h1.7v1h.6v1h.6v1h-.6v1h-.5v1h-.6v1h-.6v1h-.6v1h-.6v-1h-.5v-1h-.6v-.4c-.2.8-.3 1.6-.4 2.4h.4v1h.6v1h.6v1h.6v.4.2.4h-.7v1h-.5v1h-.6v1h-.4c.1.8.2 1.6.4 2.4v-.4h.6v-1h.6v-1h.6v1h.6v1h.6v1h.6v1h.6v1h.6v1h-.8v1h-.5v1h-1.8v-1h1.2v-1h-.6v-1h-.6v-1h-.6v1h-.5c.4 1.1.8 2.3 1.3 3.5.5 1.1 1.1 2.2 1.7 3.2h.5v-1h.6v-1h.6v-1h.6v-1h.2.1.2v1h.6v1h.6v1h.6v1h.6v1h.6v1h.6v-1h.4v-1h.6v-1h.6v-1h.6v-1h.6v-2h-.6v-1h-.6v-1h-.6v-1h-.6v1h-.6v1h-.6v1h1.2v1h-1.7v-1h-.6v-1h-.6v-1h.6v-1h.6v-1h.6v-1h.6v-1h.5v-1h.6v1h.6v1h.6v1h.6v-3h-.6v-1h-.6v-1h-.6v-1h-.6v-.4-.2-.4h.6v-1h.6v-1h.6v-1h.6v-3h-.6v1h-.6v1h-.6v1h-.6v-1h-.6v-1h-.6v-1h-.6v-1h-.6v-1h-.6v-1h.6v-1h.6v-1h1.8v1h-1.2v1h.6v1h.6v1h.6v-1h.6v-1h.6v-1h.6v-2h-.6v-.5m-4.1 8.9v1h.6v1h.6v2.4.2 2.4h-.6v1h-.6v1h-.6v1h-.6v1h-.5v1h-.3-.1-.2v-1h-.6v-1h-.6v-1h-.6v-1h-.5v-1h-.6v-2.4-.2-2.4h.6v-1h.6v-1h.6v-1h.6v-1h.6v-1h.2.1.2v1h.6v1h.6v1h.5"/><path d="m8.7 27.6h.3v-1h-.3-.1-.2v1h.2z"/><path d="m7.2 48.2h-.4c.1.2.3.4.4.6v-.6"/><path d="m7.8 49.2h-.4c.1.2.2.3.4.5v-.5"/><path d="m8.4 50.2h-.2c.1.1.1.2.2.3 0 0 0-.3 0-.3"/><path d="m14.8 46.3h.6v1h-.6z"/><path d="m14.8 49.2h-.6v-1h-.6v1h-.6v1h-.6v1h.6v1h.6v.9h.6v-.9h.6v-1h.5v-1h-.5z"/><path d="m9.5 51.2v.7c.1.1.2.2.3.3h.3v.3c.2.2.4.4.6.6v-.9h.6v-1h.6v-1h-.6v-1h-.6v-1h-.6v1h-.6v1h-.5v1c0 0 0 0 0 0h.5"/><path d="m14.8 54.1h.6v1h-.6z"/><path d="m11.6 54c1 .9 2 1.8 3.1 2.5v-.4h-.6v-1h-.6v-1h-.5v-1h-.6v-1h-.6v1h-.6v.5c.2.2.3.3.4.4"/><path d="m8.6 46.3h-.2v1.9h.2.1.3v-1.9h-.3z"/><path d="m14.8 39.4h.6v1h-.6z"/><path d="m11.3 32.1v-.2-.4h-.6v.4.2.4h.6z"/><path d="m8.6 36.4h-.2v1h.2.1.3v-1h-.3z"/></g><path d="m15.3 44v12.9c4.8 3.2 10.5 5.1 16.7 5.1 7.9 0 15-3 20.4-8 3-2.8 5.5-6.2 7.1-10h-44.2" fill="#83bf4f"/><path d="m59.5 44c1.6-3.7 2.5-7.7 2.5-12s-.9-8.3-2.5-12c-1.7-3.8-4.1-7.2-7.1-10-5.4-5-12.5-8-20.4-8-6.2 0-11.9 1.9-16.7 5.1v36.9h44.2" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ff.svg
index 73856f7..a2e5cff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7-1f1ff.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m52.39 10c-5.352-4.963-12.514-8-20.387-8-7.875 0-15.04 3.037-20.389 8h40.776"/><path d="m11.611 54c5.354 4.963 12.514 8 20.389 8 7.873 0 15.03-3.037 20.387-8h-40.776"/></g><path fill="#428bc1" d="M2,32c0,8.694,3.703,16.521,9.611,22h40.775C58.297,48.521,62,40.694,62,32s-3.703-16.521-9.613-22H11.611
- C5.703,15.479,2,23.306,2,32z"/><circle fill="#fff" cx="32" cy="32" r="16"/><path fill="#89664c" d="m32 44.5c-6.893 0-12.5-5.607-12.5-12.5s5.607-12.5 12.5-12.5 12.5 5.607 12.5 12.5-5.607 12.5-12.5 12.5m0-24c-6.342 0-11.5 5.158-11.5 11.5s5.158 11.5 11.5 11.5 11.5-5.158 11.5-11.5-5.158-11.5-11.5-11.5"/><g fill="#699635"><path d="m31 22v-1.333c.367 0 .666-.3.666-.667s-.299-.667-.666-.667v-1.333c1.104 0 2 .897 2 2s-.896 2-2 2"/><path d="m28.545 22.563l-.332-1.291c.355-.092.57-.455.48-.812-.092-.356-.457-.571-.813-.48l-.332-1.291c1.068-.274 2.16.372 2.436 1.44.274 1.067-.371 2.16-1.439 2.434"/><path d="m26.307 23.719l-.643-1.168c.322-.178.439-.584.262-.906-.176-.321-.582-.439-.904-.264l-.643-1.168c.967-.531 2.186-.176 2.717.789.531.967.175 2.186-.789 2.717"/><path d="m24.426 25.395l-.912-.971c.268-.253.279-.676.029-.943-.252-.268-.676-.281-.943-.029l-.912-.973c.805-.754 2.072-.715 2.826.09.756.802.715 2.072-.088 2.826"/><path d="m23.02 27.486l-1.127-.715c.197-.311.105-.724-.205-.92-.311-.197-.725-.104-.92.205l-1.127-.714c.592-.931 1.83-1.208 2.762-.616.93.59 1.207 1.829.617 2.76"/><path d="m22.18 29.861l-1.268-.412c.113-.35-.078-.728-.428-.84-.35-.113-.727.078-.84.428l-1.27-.412c.342-1.049 1.473-1.625 2.521-1.283 1.05.34 1.626 1.471 1.285 2.519"/><path d="m21.957 32.371l-1.33-.084c.021-.367-.258-.686-.625-.708-.365-.022-.684.257-.707.624l-1.33-.084c.068-1.102 1.021-1.939 2.121-1.87 1.102.068 1.939 1.021 1.871 2.122"/><path d="m22.365 34.856l-1.311.249c-.068-.361-.42-.6-.779-.529-.361.069-.6.42-.529.779l-1.311.25c-.207-1.084.506-2.133 1.59-2.339 1.082-.206 2.133.507 2.34 1.59"/><path d="m23.379 37.16l-1.207.568c-.158-.333-.557-.477-.889-.32-.332.158-.475.557-.318.887l-1.207.569c-.469-.999-.039-2.192.959-2.661.998-.471 2.191-.04 2.662.957"/><path d="m24.934 39.15l-1.029.85c-.234-.283-.656-.322-.938-.088-.283.234-.322.656-.09.938l-1.027.852c-.703-.852-.584-2.113.268-2.816.849-.705 2.112-.586 2.816.264"/><path d="m26.932 40.678l-.783 1.078c-.299-.216-.717-.148-.932.148s-.15.715.146.93l-.783 1.08c-.893-.648-1.092-1.901-.441-2.794.646-.891 1.9-1.091 2.793-.442"/><path d="m29.25 41.666l-.492 1.239c-.342-.136-.73.034-.865.374-.135.342.033.73.373.865l-.49 1.24c-1.025-.406-1.529-1.57-1.123-2.596s1.57-1.528 2.597-1.122"/><path d="m31.74 42.05l-.168 1.323c-.365-.047-.701.215-.746.578-.045.364.215.699.578.744l-.166 1.323c-1.096-.138-1.873-1.141-1.734-2.235.139-1.093 1.141-1.871 2.236-1.733"/><path d="m34.25 41.795l.166 1.322c-.365.047-.625.383-.578.746.047.364.383.624.744.578l.168 1.322c-1.094.139-2.096-.639-2.234-1.734-.139-1.093.638-2.095 1.734-2.234"/><path d="m36.611 40.929l.49 1.239c-.342.136-.51.525-.375.866.137.341.525.51.865.374l.492 1.24c-1.027.406-2.189-.098-2.596-1.124-.405-1.024.099-2.189 1.124-2.595"/><path d="m38.688 39.502l.783 1.078c-.299.217-.363.636-.148.932.217.297.635.363.932.148l.783 1.078c-.893.648-2.145.449-2.793-.443-.649-.892-.45-2.145.443-2.793"/><path d="m40.34 37.604l1.027.85c-.234.283-.193.705.088.938.285.233.707.194.939-.088l1.027.849c-.703.852-1.965.969-2.816.266-.849-.702-.968-1.966-.265-2.815"/><path d="m41.473 35.35l1.207.567c-.156.333-.012.732.318.887.334.156.732.013.889-.318l1.205.567c-.469.999-1.662 1.427-2.66.958s-1.428-1.664-.959-2.661"/><path d="m42.01 32.891l1.309.25c-.068.361.172.712.531.78.361.067.711-.171.779-.529l1.311.249c-.207 1.084-1.256 1.795-2.34 1.59-1.084-.208-1.797-1.256-1.59-2.34"/><path d="m41.916 30.374l1.332-.085c.021.368.342.648.707.625.367-.024.646-.342.623-.707l1.33-.084c.07 1.102-.77 2.051-1.869 2.121-1.101.069-2.053-.769-2.123-1.87"/><path d="m41.2 27.959l1.268-.413c.113.351.492.542.84.429.35-.114.543-.492.43-.84l1.268-.412c.34 1.049-.236 2.178-1.285 2.52s-2.181-.235-2.521-1.284"/><path d="m39.906 25.798l1.125-.716c.197.312.613.403.922.207.311-.198.402-.611.205-.92l1.125-.715c.592.932.314 2.168-.617 2.76-.93.592-2.168.315-2.76-.616"/><path d="m38.12 24.03l.912-.973c.27.252.693.237.943-.029.252-.269.238-.692-.029-.942l.912-.972c.805.755.844 2.02.09 2.827-.754.803-2.023.844-2.828.089"/><path d="m35.941 22.756l.641-1.169c.322.177.73.058.906-.263.178-.323.059-.73-.262-.905l.641-1.169c.969.531 1.32 1.75.789 2.717-.529.965-1.75 1.32-2.715.789"/><path d="m33.518 22.07l.332-1.292c.355.092.721-.126.811-.479.092-.357-.125-.722-.479-.813l.33-1.291c1.07.273 1.715 1.367 1.439 2.435-.273 1.067-1.365 1.714-2.433 1.44"/><ellipse cx="31.756" cy="38.681" rx="7.791" ry="1.617"/><path d="m37.27 24.918c0-.668-1.078-1.21-2.424-1.227.166-.139.26-.299.26-.471 0-.515-.846-.932-1.887-.932-.549 0-1.043.115-1.387.3-.201-.036-.416-.055-.643-.055-.92 0-1.688.326-1.852.757-.135-.015-.273-.022-.416-.022-1.043 0-1.887.417-1.887.932 0 .376.451.7 1.102.847-.467.223-.756.535-.756.88 0 .678 1.113 1.228 2.488 1.228.662 0 1.264-.129 1.709-.337-.035.083-.057.169-.057.258 0 .34.283.648.738.872-.086.042-.166.09-.238.142-.262-.47-.945-.804-1.746-.804-1.027 0-1.859.549-1.859 1.228 0 .678.832 1.228 1.859 1.228.537 0 1.021-.151 1.361-.392.262.47.943.805 1.746.805 1.027 0 1.859-.55 1.859-1.229 0-.263-.125-.505-.338-.705.932-.177 1.592-.623 1.592-1.145 0-.402-.391-.758-.994-.982 1.026-.152 1.77-.621 1.77-1.176m-4.691-.821c.092.017.189.029.289.039-.355.213-.568.485-.568.782 0 .401.391.758.992.982-.375.056-.713.155-.99.285.035-.083.055-.169.055-.257 0-.576-.805-1.06-1.891-1.191.152-.106.262-.229.311-.362.135.015.273.023.414.023.55-.001 1.042-.117 1.388-.301"/></g><path fill="#ff8736" d="m28.627 29.928c.082-.418-.197-.785-.15-1.186.059-.991-.252-.633-.818-1.171-.471-.443.063-.883.025-1.351-.07-.877-.57-.483-1.23-.483-.543 0 .475 1.6-.189 1.968-.861.48-1.027.658-1.305 1.61-.051-.273-.182-.199-.107-.574 0-.007-.602.274-.662.319-.199.146.119.998.219 1.172.375.654 1.395.314 1.395-.482.318.984.121 1.038 1.279 1.07.449.007 1.066-.002.852-.688.238 1.276.855.527 1.492.062-.096-.009-.819-.148-.801-.266"/><path d="m26.311 25.851c-.492-.42.742-.752.855-.743.449.038.57.522.553.918-.051.76-.063-.08-.236.237.049-.186-.055-.413.021-.589-.43.178-.961-.025-1.193.177"/><path fill="#d0d0d0" d="m28.21 34.946c0-1.414-.301-2.894-.32-4.237-.629.303-1.857-.067-1.857-.067s-.611 2.931-.619 3.598c-.016 1.19-.65 2.798-.369 3.896.135.728 1.02.044 1.217-.116.244-.199.133-.979.143-1.279.037-1.229.1-2.154.484-3.316 0 .736.371 1.315.328 2.13-.041.777-.02 1.553-.02 2.329 0 .103 1.059.161 1.201.022-.001-.989-.188-1.97-.188-2.96"/><path fill="#89664c" d="m35.533 29.993c.018.119-.705.257-.801.269.639.467 1.256 1.215 1.494-.062-.215.686.402.695.85.688 1.16-.033.963-.087 1.281-1.071 0 .795 1.02 1.136 1.395.482.1-.175.416-1.026.219-1.172-.061-.045-.664-.326-.662-.319.074.375-.057.3-.107.574-.279-.953-.443-1.13-1.307-1.61-.662-.369.355-1.969-.188-1.969-.662 0-1.162-.394-1.232.484-.037.468.496.908.027 1.351-.568.538-.877.179-.818 1.171.046.4-.235.766-.151 1.184"/><path d="m37.85 25.917c-.232-.202-.766.001-1.195-.176.078.176-.025.404.023.589-.176-.317-.186.522-.236-.237-.02-.396.102-.881.551-.918.112-.01 1.347.322.857.742"/><path fill="#d0d0d0" d="m35.947 35.01c0-1.413.303-2.894.322-4.237.627.303 1.857-.067 1.857-.067s.609 2.932.619 3.598c.014 1.19.65 2.798.369 3.896-.137.727-1.021.043-1.217-.117-.244-.198-.135-.979-.145-1.279-.037-1.228-.098-2.154-.482-3.316 0 .737-.373 1.316-.328 2.131.039.777.02 1.552.02 2.329 0 .103-1.061.161-1.201.023.001-.991.186-1.972.186-2.961"/><path fill="#9dd7ff" d="m35.512 30.23v4.153c0 .826-.107 4.115-3.41 5.393-3.311-1.277-3.418-4.566-3.418-5.393v-4.153h6.828"/><path fill="#d0d0d0" d="m32.1 30.23v3.351l-3.096 2.93c-.301-.934-.322-1.768-.322-2.127v-4.153h3.418"/><path fill="#ffd83c" d="m32.1 30.23v3.351l3.09 2.93c.299-.934.32-1.768.32-2.127v-4.153h-3.41"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M52.4,10C47,5,39.9,2,32,2c-7.9,0-15,3-20.4,8H52.4z"/><path d="m11.6 54c5.4 5 12.5 8 20.4 8 7.9 0 15-3 20.4-8h-40.8"/></g><path d="M2,32c0,8.7,3.7,16.5,9.6,22h40.8c5.9-5.5,9.6-13.3,9.6-22s-3.7-16.5-9.6-22H11.6C5.7,15.5,2,23.3,2,32z" fill="#428bc1"/><circle cx="32" cy="32" r="16" fill="#fff"/><path d="m32 44.5c-6.9 0-12.5-5.6-12.5-12.5s5.6-12.5 12.5-12.5 12.5 5.6 12.5 12.5-5.6 12.5-12.5 12.5m0-24c-6.3 0-11.5 5.2-11.5 11.5s5.2 11.5 11.5 11.5 11.5-5.2 11.5-11.5-5.2-11.5-11.5-11.5" fill="#89664c"/><g fill="#699635"><path d="m31 22v-1.3c.4 0 .7-.3.7-.7s-.3-.7-.7-.7v-1.3c1.1 0 2 .9 2 2s-.9 2-2 2"/><path d="m28.5 22.6l-.3-1.3c.4-.1.6-.5.5-.8-.1-.4-.5-.6-.8-.5l-.3-1.3c1.1-.3 2.2.4 2.4 1.4.3 1.1-.4 2.2-1.5 2.5"/><path d="m26.3 23.7l-.6-1.2c.3-.2.4-.6.3-.9-.2-.3-.6-.4-.9-.3l-.6-1.2c1-.5 2.2-.2 2.7.8.4 1.1.1 2.3-.9 2.8"/><path d="m24.4 25.4l-.9-1c.3-.3.3-.7 0-.9-.3-.3-.7-.3-.9 0l-.9-1c.8-.8 2.1-.7 2.8.1.8.8.7 2-.1 2.8"/><path d="m23 27.5l-1.1-.7c.2-.3.1-.7-.2-.9-.3-.2-.7-.1-.9.2l-1.1-.7c.6-.9 1.8-1.2 2.8-.6.8.5 1.1 1.8.5 2.7"/><path d="m22.2 29.9l-1.3-.4c.1-.4-.1-.7-.4-.8-.4-.1-.7.1-.8.4l-1.3-.4c.3-1 1.5-1.6 2.5-1.3 1 .3 1.6 1.4 1.3 2.5"/><path d="m22 32.4l-1.3-.1c0-.4-.3-.7-.6-.7-.4 0-.7.3-.7.6l-1.4-.1c.1-1.1 1-1.9 2.1-1.9 1.1.1 1.9 1.1 1.9 2.2"/><path d="m22.4 34.9l-1.3.2c-.1-.4-.4-.6-.8-.5-.4.1-.6.4-.5.8l-1.3.2c-.2-1.1.5-2.1 1.6-2.3 1-.2 2.1.5 2.3 1.6"/><path d="m23.4 37.2l-1.2.6c-.2-.3-.6-.5-.9-.3-.3.1-.5.5-.3.8l-1.2.6c-.5-1 0-2.2 1-2.7.9-.5 2.1 0 2.6 1"/><path d="m24.9 39.1l-1 .8c-.2-.3-.7-.3-.9-.1-.3.2-.3.7-.1.9l-1 .9c-.7-.9-.6-2.1.3-2.8.8-.6 2-.5 2.7.3"/><path d="m26.9 40.7l-.8 1.1c-.3-.2-.7-.1-.9.1s-.1.7.1.9l-.8 1.1c-.9-.6-1.1-1.9-.4-2.8.7-.9 1.9-1.1 2.8-.4"/><path d="m29.2 41.7l-.5 1.2c-.3-.1-.7 0-.9.4-.1.3 0 .7.4.9l-.5 1.2c-1-.4-1.5-1.6-1.1-2.6s1.6-1.5 2.6-1.1"/><path d="m31.7 42l-.2 1.3c-.4 0-.7.2-.7.6 0 .4.2.7.6.7l-.2 1.4c-1.1-.1-1.9-1.1-1.7-2.2.1-1.1 1.1-1.9 2.2-1.8"/><path d="m34.2 41.8l.2 1.3c-.4 0-.6.4-.6.7 0 .4.4.6.7.6l.2 1.3c-1.1.1-2.1-.6-2.2-1.7-.1-1.1.7-2.1 1.7-2.2"/><path d="m36.6 40.9l.5 1.2c-.3.1-.5.5-.4.9.1.3.5.5.9.4l.5 1.2c-1 .4-2.2-.1-2.6-1.1-.4-1 .1-2.2 1.1-2.6"/><path d="m38.7 39.5l.8 1.1c-.3.2-.4.6-.1.9.2.3.6.4.9.1l.8 1.1c-.9.6-2.1.4-2.8-.4-.7-.9-.5-2.1.4-2.8"/><path d="m40.3 37.6l1 .8c-.2.3-.2.7.1.9.3.2.7.2.9-.1l1 .8c-.7.9-2 1-2.8.3-.7-.6-.9-1.8-.2-2.7"/><path d="m41.5 35.4l1.2.6c-.2.3 0 .7.3.9.3.2.7 0 .9-.3l1.2.6c-.5 1-1.7 1.4-2.7 1s-1.4-1.9-.9-2.8"/><path d="m42 32.9l1.3.2c-.1.4.2.7.5.8.4.1.7-.2.8-.5l1.3.2c-.2 1.1-1.3 1.8-2.3 1.6-1.1-.2-1.8-1.2-1.6-2.3"/><path d="m41.9 30.4l1.3-.1c0 .4.3.6.7.6.4 0 .6-.3.6-.7l1.3-.1c.1 1.1-.8 2.1-1.9 2.1-1 .1-1.9-.7-2-1.8"/><path d="m41.2 28l1.3-.4c.1.4.5.5.8.4.3-.1.5-.5.4-.8l1.3-.4c.3 1-.2 2.2-1.3 2.5s-2.2-.3-2.5-1.3"/><path d="m39.9 25.8l1.1-.7c.2.3.6.4.9.2.3-.2.4-.6.2-.9l1.1-.7c.6.9.3 2.2-.6 2.8-.9.5-2.1.2-2.7-.7"/><path d="m38.1 24l.9-1c.3.3.7.2.9 0 .3-.3.2-.7 0-.9l.9-1c.8.8.8 2 .1 2.8-.7.8-2 .9-2.8.1"/><path d="m35.9 22.8l.6-1.2c.3.2.7.1.9-.3.2-.3.1-.7-.3-.9l.6-1.2c1 .5 1.3 1.8.8 2.7-.4 1-1.6 1.4-2.6.9"/><path d="m33.5 22.1l.3-1.3c.4.1.7-.1.8-.5.1-.4-.1-.7-.5-.8l.3-1.3c1.1.3 1.7 1.4 1.4 2.4-.1 1.1-1.2 1.7-2.3 1.5"/><ellipse cx="31.8" cy="38.7" rx="7.8" ry="1.6"/><path d="m37.3 24.9c0-.7-1.1-1.2-2.4-1.2.2-.1.3-.3.3-.5 0-.5-.8-.9-1.9-.9-.5 0-1 .1-1.4.3-.2 0-.4-.1-.6-.1-.9 0-1.7.3-1.9.8-.1 0-.3 0-.4 0-1 0-1.9.4-1.9.9 0 .4.5.7 1.1.8-.5.2-.8.5-.8.9 0 .7 1.1 1.2 2.5 1.2.7 0 1.3-.1 1.7-.3 0 .1-.1.2-.1.3 0 .3.3.6.7.9-.1 0-.2.1-.2.1-.3-.5-.9-.8-1.7-.8-1 0-1.9.5-1.9 1.2 0 .7.8 1.2 1.9 1.2.5 0 1-.2 1.4-.4.3.5.9.8 1.7.8 1 0 1.9-.5 1.9-1.2 0-.3-.1-.5-.3-.7.9-.2 1.6-.6 1.6-1.1 0-.4-.4-.8-1-1 .9-.2 1.7-.6 1.7-1.2m-4.7-.8c.1 0 .2 0 .3 0-.4.2-.6.5-.6.8 0 .4.4.8 1 1-.4.1-.7.2-1 .3 0-.1.1-.2.1-.3 0-.6-.8-1.1-1.9-1.2.2-.1.3-.2.3-.4.1 0 .3 0 .4 0 .5.1 1 0 1.4-.2"/></g><path d="m28.6 29.9c.1-.4-.2-.8-.1-1.2.1-1-.3-.6-.8-1.2-.5-.4.1-.9 0-1.4-.1-.9-.6-.5-1.2-.5-.5 0 .5 1.6-.2 2-.9.5-1 .7-1.3 1.6-.1-.3-.2-.2-.1-.6 0 0-.6.3-.7.3-.2.1.1 1 .2 1.2.4.7 1.4.3 1.4-.5.3 1 .1 1 1.3 1.1.4 0 1.1 0 .9-.7.2 1.3.9.5 1.5.1-.2.1-.9-.1-.9-.2" fill="#ff8736"/><path d="m26.3 25.9c-.5-.4.7-.8.9-.7.4 0 .6.5.6.9-.1.8-.1-.1-.2.2 0-.2-.1-.4 0-.6-.5.2-1.1-.1-1.3.2"/><path d="m28.2 34.9c0-1.4-.3-2.9-.3-4.2-.6.3-1.9-.1-1.9-.1s-.6 2.9-.6 3.6c0 1.2-.6 2.8-.4 3.9.1.7 1 0 1.2-.1.2-.2.1-1 .1-1.3 0-1.2.1-2.2.5-3.3 0 .7.4 1.3.3 2.1 0 .8 0 1.6 0 2.3 0 .1 1.1.2 1.2 0 .1-.9-.1-1.9-.1-2.9" fill="#d0d0d0"/><path d="m35.5 30c0 .1-.7.3-.8.3.6.5 1.3 1.2 1.5-.1-.2.7.4.7.8.7 1.2 0 1-.1 1.3-1.1 0 .8 1 1.1 1.4.5.1-.2.4-1 .2-1.2-.1 0-.7-.3-.7-.3.1.4-.1.3-.1.6-.3-1-.4-1.1-1.3-1.6-.7-.4.4-2-.2-2-.7 0-1.2-.4-1.2.5 0 .5.5.9 0 1.4-.6.5-.9.2-.8 1.2.1.3-.2.7-.1 1.1" fill="#89664c"/><path d="m37.8 25.9c-.2-.2-.8 0-1.2-.2.1.2 0 .4 0 .6-.2-.3-.2.5-.2-.2 0-.4.1-.9.6-.9.1 0 1.3.3.8.7"/><path d="m35.9 35c0-1.4.3-2.9.3-4.2.6.3 1.9-.1 1.9-.1s.6 2.9.6 3.6c0 1.2.7 2.8.4 3.9-.1.7-1 0-1.2-.1-.2-.2-.1-1-.1-1.3 0-1.2-.1-2.2-.5-3.3 0 .7-.4 1.3-.3 2.1 0 .8 0 1.6 0 2.3 0 .1-1.1.2-1.2 0 0-.9.1-1.9.1-2.9" fill="#d0d0d0"/><path d="m35.5 30.2v4.2c0 .8-.1 4.1-3.4 5.4-3.3-1.3-3.4-4.6-3.4-5.4v-4.2h6.8" fill="#9dd7ff"/><path d="m32.1 30.2v3.4l-3.1 2.9c-.3-.9-.3-1.8-.3-2.1v-4.2h3.4" fill="#d0d0d0"/><path d="m32.1 30.2v3.4l3.1 2.9c.3-.9.3-1.8.3-2.1v-4.2h-3.4" fill="#ffd83c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e7.svg
new file mode 100644
index 0000000..7590fdd
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e7.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m42.6 20.6c.9 1.2 1.3 2.7 1.3 4.4 0 1.8-.4 3.2-1.3 4.3-.5.6-1.2 1.2-2.2 1.7 1.5.5 2.6 1.4 3.4 2.6.8 1.2 1.1 2.6 1.1 4.3 0 1.7-.4 3.3-1.3 4.6-.5.9-1.2 1.7-2.1 2.3-.9.7-2 1.2-3.3 1.5s-2.6.4-4.1.4h-13v-29h14c3.6-.2 6.1.9 7.5 2.9m-15.7 1.9v6.4h7.1c1.3 0 2.3-.2 3.1-.7s1.2-1.3 1.2-2.5c0-1.4-.5-2.2-1.6-2.7-.9-.3-2-.5-3.4-.5h-6.4m0 11.2v7.7h7c1.3 0 2.2-.2 2.9-.5 1.3-.6 1.9-1.8 1.9-3.6 0-1.5-.6-2.5-1.8-3.1-.7-.3-1.7-.5-2.9-.5 0 0-7.1 0-7.1 0" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e6.svg
index fd9887b..886c66e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e6.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M48,6.629C43.368,3.701,37.885,2,32,2S20.632,3.701,16,6.629v50.744C20.632,60.3,26.115,62,32,62
- s11.368-1.7,16-4.627V6.629z"/><g fill="#ed4c5c"><path d="M48,6.629v50.744C56.41,52.136,62,42.527,62,32S56.41,11.865,48,6.629z"/><path d="M16,6.629C7.59,11.865,2,21.473,2,32s5.59,20.136,14,25.373V6.629z"/><path d="m42.913 31.555c-.432-.188-.452-.574-.407-.836l1.03-3.628-3.474.722c-.12.016-.452-.01-.624-.69l-.307-1.235-2.409 2.764c0 0-1.56 1.691-1.07-.891l1.047-5.517-1.936.96c-.11.043-.491.098-.997-.858l-1.766-3.346-1.767 3.345c-.506.956-.887.901-.997.858l-1.934-.96 1.045 5.517c.489 2.582-1.07.891-1.07.891l-2.409-2.764-.307 1.235c-.172.681-.502.706-.624.69l-3.474-.722 1.03 3.628c.045.262.024.648-.407.836l-1.086.477c0 0 3.985 3.182 5.291 4.267.255.21.87.825.658 1.485l-.466 1.443 5.454-.828c.28-.023.878.025.84.908l-.254 5.694h.953l-.254-5.693c-.038-.883.563-.932.84-.908l5.454.828-.466-1.443c-.212-.66.403-1.275.658-1.485 1.307-1.086 5.292-4.268 5.292-4.268l-1.087-.476"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M48,6.6C43.4,3.7,37.9,2,32,2S20.6,3.7,16,6.6v50.7c4.6,2.9,10.1,4.6,16,4.6s11.4-1.7,16-4.6V6.6z" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="m48 6.6v50.7c8.4-5.2 14-14.8 14-25.4s-5.6-20-14-25.3"/><path d="M16,6.6C7.6,11.9,2,21.5,2,32s5.6,20.1,14,25.4V6.6z"/><path d="m42.9 31.6c-.4-.2-.5-.6-.4-.8l1-3.6-3.5.7c-.1 0-.5 0-.6-.7l-.3-1.2-2.4 2.8c0 0-1.6 1.7-1.1-.9l1-5.5-1.9 1c-.1 0-.5.1-1-.9l-1.7-3.5-1.8 3.3c-.5 1-.9.9-1 .9l-1.9-1 1 5.5c.5 2.6-1.1.9-1.1.9l-2.4-2.8-.3 1.2c-.2.7-.5.7-.6.7l-3.5-.7 1 3.6c0 .3 0 .6-.4.8l-1 .6c0 0 4 3.2 5.3 4.3.3.2.9.8.7 1.5l-.5 1.4 5.5-.8c.3 0 .9 0 .8.9l-.3 5.7h1l-.3-5.7c0-.9.6-.9.8-.9l5.5.8-.5-1.4c-.2-.7.4-1.3.7-1.5 1.3-1.1 5.3-4.3 5.3-4.3l-1.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e8.svg
index af5fd55..8d00280 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#699635" cx="32" cy="32" r="30"/><g fill="#ffce31"><path d="m35.554 39.937c-4.384 0-7.937-3.554-7.937-7.937 0-4.384 3.553-7.937 7.937-7.937 1.278 0 2.468.331 3.538.868-1.721-1.594-4.02-2.576-6.547-2.576-5.326 0-9.645 4.318-9.645 9.645 0 5.327 4.318 9.646 9.645 9.646 2.532 0 4.828-.983 6.549-2.579-1.07.537-2.261.87-3.54.87"/><circle cx="13.14" cy="23.741" r="9"/></g><path fill="#802000" d="m12.52 30.527h2.248c0 0 .102-.206-.023-.31-.124-.103-.607-.125-.476-.49.268-.748.305-.518.474-2.296.168-1.779.25-4.57.25-4.57h-.325c0 0 .063.868-.125 1.998-.188 1.129-.244 1.229-.45 2.097-.206.868-.237.942-.424 1.448-.187.506-.206.53-.499.998-.294.469-.188.295-.35.574-.081.142-.181.104-.235.206-.056.104-.065.345-.065.345"/><path fill="#699635" d="m14.234 17.18c.019.35-.016.811-.161 1.187-.146.419-.306.836-.298 1.271-.233.079-.474-.505-.698-.161.168.474.558.85.825 1.278.045.133.429.479.207.559-.561-.192-.697-.902-1.045-1.333-.404-.726-1.157-1.239-1.996-1.275-.316.009-1.34-.078-1.074.461.394.267.877.441 1.265.741.29.027.813.509.782.691-.508-.206-.746-.452-1.293-.669-.742-.286-1.768-.114-2.178.622-.078.192-.19.75.051.804.281-.44.684-.931 1.28-.799.469.036-.522.873-.144.704.12-.053.397-.234.59-.254.193-.019.3.126.446.146.292.041.372.162.345.234-.032.083-.125.012-.421.106-.148.047-.226.177-.399.237s-.533.064-.668.011c-.471-.204-1.243-.168-1.389.421 0 .259-.231-.029-.338.083-.08.283-.101.574-.521.549-.255.267-.516.544-.839.734.189.437.942-.438.907-.069-.329.448.169.543.387.198.369-.39.826-.864 1.376-.471.262.247.416-.13.604-.11.12.307.27.014.406-.072.223-.027.159.277.424.089.526-.348 1.173-.056 1.686-.394.547-.25.078.201-.073.377-.24.466-.033 1.078-.553 1.367-.209.556.247 1.288-.219 1.7-.067.257.599.228.787.333.328.014-.014-.75.312-.853.436.271.415-.483.325-.715.042-.528.072-1.105.335-1.583.279-.587.537.239.225.471-.177.539-.436 1.213-.033 1.715.116.025.211.308.362.394.151.087.356-.022.394-.278.193-.771.096-1.602.372-2.353.195-.232.463-.038.584.176.386.449.658 1.01 1.125 1.379.426.2.802.501 1 .939-.003.338.96.391.672.014-.275-.366-.093-.732.186-.976.15.038.106-.231-.011-.125-.188-.044-.201-.389.061-.226.44.143-.034-.318-.194-.333-.372-.231-.8-.496-.983-.897.485.004.989.266 1.484.104.396-.204.8.018.939.367.307-.049.176-.356 0-.459.225-.093.379-.285.107-.455-.145-.188.193-.507-.221-.494.013-.316-.111-.605-.456-.714-.345-.292-1.358.43-1.328-.229-.103-.358.411-.048.554-.227.148-.378-.706-.341-.424-.634.184-.119 1.048-.289.371-.416-.338.092-.628.024-.895-.144-.243.406-.936-.22-.812.501-.095.272-.714.979-.882.437.144-.424.876-.563.649-1.135-.035-.357-.331.063-.47.036-.07-.222.213-.484.411-.537.394.303.406-.381.779-.325.272-.061-.088-.178-.165-.229.075-.2.495-.302.083-.476-.363-.269-.631.268-.93.296-.288-.324.261-.479.412-.65.008-.126-.32-.038-.221-.149.085-.153.665-.164.394-.394-.409-.14-.937-.105-1.33.076-.247.08-.319.639-.532.616-.1-.248.033-.739-.31-.811m1.933 5.459c.313-.053.007.473-.143.465.014-.188-.45-.17-.162-.335.093-.061.197-.107.305-.13"/><g fill="#ffce31"><path d="m48.15 42.865l.52 1.615 1.58-.603-.93 1.413 1.451.86-1.691.15.24 1.675-1.17-1.228-1.166 1.228.236-1.675-1.689-.15 1.455-.86-.936-1.413 1.583.603z"/><path d="m38.743 27.968l.517 1.612 1.586-.6-.938 1.411 1.452.859-1.683.151.232 1.679-1.166-1.229-1.166 1.229.233-1.679-1.69-.151 1.458-.859-.937-1.411 1.589.6z"/><path d="m48.15 17.776l.52 1.612 1.58-.599-.93 1.411 1.451.86-1.691.15.24 1.676-1.17-1.227-1.166 1.227.236-1.676-1.689-.15 1.455-.86-.936-1.411 1.583.599z"/><path d="m56.51 25.459l.52 1.611 1.59-.598-.94 1.41 1.45.864-1.68.147.232 1.676-1.172-1.227-1.16 1.227.23-1.676-1.687-.147 1.457-.864-.94-1.41 1.586.598z"/><path d="m51.914 33.01l.406 1 1.09.08-.832.702.258 1.054-.922-.576-.92.576.256-1.054-.83-.702 1.09-.08z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#699635"/><g fill="#ffce31"><path d="m35.6 39.9c-4.4 0-7.9-3.6-7.9-7.9 0-4.4 3.6-7.9 7.9-7.9 1.3 0 2.5.3 3.5.9-1.7-1.6-4-2.6-6.5-2.6-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c2.5 0 4.8-1 6.5-2.6-1.1.6-2.3.9-3.5.9"/><circle cx="13.1" cy="23.7" r="9"/></g><path d="m12.5 30.5h2.2c0 0 .1-.2 0-.3-.1-.1-.6-.1-.5-.5.3-.7.3-.5.5-2.3.2-1.8.2-4.6.2-4.6h-.3c0 0 .1.9-.1 2-.2 1.1-.2 1.2-.4 2.1-.2.9-.2.9-.4 1.4-.2.5-.2.5-.5 1-.3.5-.2.3-.4.6-.1.1-.2.1-.2.2-.1.2-.1.4-.1.4" fill="#802000"/><path d="m14.2 17.2c0 .4 0 .8-.2 1.2-.1.4-.3.8-.3 1.3-.2.1-.5-.5-.7-.2.2.5.6.9.8 1.3 0 .1.4.5.2.6-.6-.2-.7-.9-1-1.3-.4-.7-1.2-1.2-2-1.3-.3 0-1.3-.1-1.1.5.4.3.9.4 1.3.7.3 0 .8.5.8.7-.5-.2-.7-.5-1.3-.7-.7-.4-1.7-.2-2.1.6-.1.2-.2.8.1.8.3-.4.7-.9 1.3-.8.5 0-.5.9-.1.7.1-.1.4-.2.6-.3.2 0 .3.1.4.1.3 0 .4.2.3.2 0 .1-.1 0-.4.1-.1 0-.2.2-.4.2s-.5.1-.7 0c-.5-.2-1.2-.2-1.4.4 0 .3-.2 0-.3.1-.1.3-.1.6-.5.5-.3.3-.5.5-.8.7.2.4.9-.4.9-.1-.3.4.2.5.4.2.4-.4.8-.9 1.4-.5.3.2.4-.1.6-.1.1.3.3 0 .4-.1.2 0 .2.3.4.1.5-.3 1.2-.1 1.7-.4.5-.2.1.2-.1.4-.2.5 0 1.1-.6 1.4-.2.6.2 1.3-.2 1.7-.1.3.6.2.8.3.3 0 0-.8.3-.9.4.3.4-.5.3-.7 0-.5.1-1.1.3-1.6.3-.6.5.2.2.5-.2.5-.4 1.2 0 1.7.1 0 .2.3.4.4.2.1.4 0 .4-.3.2-.8.1-1.6.4-2.4.2-.2.5 0 .6.2.4.4.7 1 1.1 1.4.4.2.8.5 1 .9 0 .3 1 .4.7 0-.3-.4-.1-.7.2-1 .1 0 .1-.2 0-.1-.2 0-.2-.4.1-.2.4.1 0-.3-.2-.3-.4-.2-.8-.5-1-.9.5 0 1 .3 1.5.1.4-.2.8 0 .9.4.3 0 .2-.4 0-.5.2-.1.4-.3.1-.5-.1-.2.2-.5-.2-.5 0-.3-.1-.6-.5-.7-.3-.3-1.4.4-1.3-.2-.1-.4.4 0 .6-.2.1-.4-.7-.3-.4-.6.2-.1 1-.3.4-.4-.3.1-.6 0-.9-.1-.2.4-.9-.2-.8.5-.1.3-.7 1-.9.4.1-.4.9-.6.6-1.1 0-.4-.3.1-.5 0-.1-.2.2-.5.4-.5.4.3.4-.4.8-.3.3-.1-.1-.2-.2-.2.1-.2.5-.3.1-.5-.4-.3-.6.3-.9.3-.3-.3.3-.5.4-.6 0-.1-.3 0-.2-.1.1-.2.7-.2.4-.4-.4-.1-.9-.1-1.3.1-.2.1-.3.6-.5.6-.4-.2-.2-.6-.6-.7m2 5.4c.3-.1 0 .5-.1.5 0-.2-.4-.2-.2-.3.1-.1.2-.1.3-.2" fill="#699635"/><g fill="#ffce31"><path d="m48.2 42.9l.5 1.6 1.6-.6-1 1.4 1.5.9-1.7.1.2 1.7-1.1-1.3-1.2 1.3.2-1.7-1.7-.1 1.5-.9-1-1.4 1.6.6z"/><path d="m38.7 28l.6 1.6 1.5-.6-.9 1.4 1.5.9-1.7.1.2 1.7-1.2-1.2-1.1 1.2.2-1.7-1.7-.1 1.5-.9-1-1.4 1.6.6z"/><path d="m48.2 17.8l.5 1.6 1.6-.6-1 1.4 1.5.9-1.7.1.2 1.7-1.1-1.2-1.2 1.2.2-1.7-1.7-.1 1.5-.9-1-1.4 1.6.6z"/><path d="m56.5 25.5l.5 1.6 1.6-.6-.9 1.4 1.4.8-1.7.2.3 1.7-1.2-1.3-1.2 1.3.3-1.7-1.7-.2 1.4-.8-.9-1.4 1.6.6z"/><path d="m51.9 33l.4 1 1.1.1-.8.7.2 1-.9-.5-.9.5.3-1-.9-.7 1.1-.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e9.svg
index e4514a5..c635b47 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m10.779 10.781c-8.697 8.697-10.929 21.405-6.712 32.17l38.884-38.883c-10.765-4.217-23.474-1.987-32.17 6.713"/><path d="m53.21 53.21c8.697-8.695 10.928-21.405 6.711-32.17l-38.883 38.883c10.766 4.217 23.474 1.986 32.17-6.713"/></g><path fill="#c94747" d="m53.21 10.781c-1.96-1.962-4.128-3.585-6.429-4.888l-40.89 40.89c1.303 2.301 2.926 4.469 4.887 6.428 1.961 1.963 4.129 3.586 6.43 4.889l40.89-40.891c-1.303-2.301-2.927-4.468-4.888-6.428"/><g fill="#ffce31"><path d="m17.209 58.1c.61.346 1.227.674 1.855.973.649.311 1.31.592 1.977.852l38.883-38.883c-.261-.667-.541-1.327-.852-1.977-.3-.628-.628-1.245-.974-1.855l-40.889 40.89"/><path d="m44.928 4.919c-.65-.311-1.311-.591-1.977-.851l-38.884 38.883c.261.668.542 1.328.853 1.979.299.627.627 1.244.973 1.854l40.89-40.891c-.61-.346-1.227-.674-1.855-.974"/><path d="m17.996 19.18l3.709 2.816-1.4-4.578 3.691-2.922h-4.574l-1.426-4.5-1.385 4.5h-4.615l3.692 2.922-1.401 4.578z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="M10.8,10.8C2.1,19.5-0.1,32.2,4.1,43L43,4.1C32.2-0.1,19.5,2.1,10.8,10.8z"/><path d="m53.2 53.2c8.7-8.7 10.9-21.4 6.7-32.2l-38.9 38.9c10.8 4.2 23.5 2 32.2-6.7"/></g><path d="m53.2 10.8c-2-2-4.1-3.6-6.4-4.9l-40.9 40.9c1.3 2.3 2.9 4.5 4.9 6.4 2 2 4.1 3.6 6.4 4.9l40.9-40.9c-1.3-2.3-2.9-4.5-4.9-6.4" fill="#c94747"/><g fill="#ffce31"><path d="m17.2 58.1c.6.3 1.2.7 1.9 1 .6.3 1.3.6 2 .9l38.8-39c-.3-.7-.5-1.3-.9-2-.3-.6-.6-1.2-1-1.9l-40.8 41"/><path d="m44.9 4.9c-.7-.3-1.3-.6-2-.9l-38.8 39c.3.7.5 1.3.9 2 .3.6.6 1.2 1 1.9l40.8-41c-.6-.4-1.2-.7-1.9-1"/><path d="m18 19.2l3.7 2.8-1.4-4.6 3.7-2.9h-4.6l-1.4-4.5-1.4 4.5h-4.6l3.7 2.9-1.4 4.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1eb.svg
index b3d69f3..919121c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="M6.628,16C3.701,20.632,2,26.115,2,32h60c0-5.885-1.701-11.368-4.628-16H6.628z"/><path fill="#699635" d="M57.372,48C60.299,43.369,62,37.885,62,32H2c0,5.885,1.701,11.369,4.628,16H57.372z"/><path fill="#ffe62e" d="m6.628 48c3.937 6.229 10.1 10.902 17.373 12.912h15.998c7.271-2.01 13.437-6.684 17.373-12.912h-50.744"/><path fill="#2a5f9e" d="M39.999,3.088H24.001C16.729,5.098,10.564,9.771,6.628,16h50.744C53.436,9.771,47.271,5.098,39.999,3.088z"/><path fill="#f42f4c" d="m40 3.088c-2.548-.704-5.229-1.088-8-1.088s-5.452.384-8 1.088v57.824c2.548.705 5.229 1.088 8 1.088s5.452-.383 8-1.088v-57.824"/><path fill="#ffe62e" d="M18 11.593 19.854 13 19.15 10.711 21 9.291 18.715 9.285 18 7 17.286 9.285 15 9.291 16.846 10.711 16.14 13z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6.6,16C3.7,20.6,2,26.1,2,32h60c0-5.9-1.7-11.4-4.6-16H6.6z" fill="#fff"/><path d="M57.4,48c2.9-4.6,4.6-10.1,4.6-16H2c0,5.9,1.7,11.4,4.6,16H57.4z" fill="#699635"/><path d="M6.6,48c3.9,6.2,10.1,10.9,17.4,12.9h16c7.3-2,13.4-6.7,17.4-12.9H6.6z" fill="#ffe62e"/><path d="M40,3.1H24C16.7,5.1,10.6,9.8,6.6,16h50.7C53.4,9.8,47.3,5.1,40,3.1z" fill="#2a5f9e"/><path d="m40 3.1c-2.5-.7-5.2-1.1-8-1.1s-5.5.4-8 1.1v57.8c2.5.7 5.2 1.1 8 1.1s5.5-.4 8-1.1v-57.8" fill="#f42f4c"/><path fill="#ffe62e" d="m18 11.6l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ec.svg
index 4876b61..d511520 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ec.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m57.02 15.46h-8.484l-33.08 33.08h.002v8.484c4.742 3.141 10.426 4.975 16.539 4.975 16.568 0 30-13.432 30-30 0-6.114-1.834-11.798-4.975-16.54"/><path fill="#75a843" d="M32,2C15.432,2,2,15.432,2,32c0,6.115,1.834,11.799,4.975,16.541h3.813h4.672l33.082-33.082v-4.672V6.975
- C43.799,3.834,38.114,2,32,2z"/><path fill="#ffe62e" d="m6.975 48.541c1.112 1.68 2.385 3.242 3.803 4.662l.02.02c1.42 1.42 2.984 2.691 4.664 3.803l41.563-41.566c-2.229-3.366-5.118-6.256-8.484-8.485l-41.566 41.566"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 15.5h-8.5l-33 33v8.5c4.7 3.1 10.4 5 16.5 5 16.6 0 30-13.4 30-30 0-6.1-1.8-11.8-5-16.5" fill="#ed4c5c"/><path d="M32,2C15.4,2,2,15.4,2,32c0,6.1,1.8,11.8,5,16.5h3.8h4.7l33.1-33.1v-4.7V7C43.8,3.8,38.1,2,32,2z" fill="#75a843"/><path d="M7,48.5c1.1,1.7,2.4,3.2,3.8,4.7l0,0c1.4,1.4,3,2.7,4.7,3.8L57,15.5c-2.2-3.4-5.1-6.3-8.5-8.5L7,48.5z" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ed.svg
index 43f0206..507afb3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ed.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><path fill="#fff" d="m47 27h-10v-10h-10v10h-10v10h10v10h10v-10h10z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ed4c5c"/><path fill="#fff" d="m47 27h-10v-10h-10v10h-10v10h10v10h10v-10h10z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ee.svg
index 9926013..4ae397b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ee.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#83bf4f" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#f9f9f9" d="M22,60.286C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.714V3.714C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.714V60.286z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#f2b200"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#83bf4f"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f0.svg
index c59136b..683223e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.912 8.139v5.861h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.012C3.088,22.869,2,27.305,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.307,2,22.869,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.939,7.941,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m34.541 33.848l-.002.007.002-.007"/><path d="m34.537 33.86l-.037.079.037-.079"/><path d="m34.539 33.854l-.002.006.002-.006"/></g><g fill="#fff"><path d="m51.968 21.09l-.194 1.828 1.686.75-1.805.382-.195 1.835-.92-1.596-1.804.383 1.235-1.37-.921-1.598 1.683.75z"/><path d="m56.43 24.325l-.92 1.597 1.23 1.368-1.803-.381-.927 1.597-.189-1.833-1.801-.385 1.682-.749-.192-1.834 1.233 1.365z"/><path d="m59.19 29.1l-1.497 1.08.567 1.758-1.489-1.084-1.491 1.084.569-1.758-1.489-1.08h1.84l.571-1.754.569 1.754z"/><path d="m59.762 34.584l-1.805.384-.192 1.833-.922-1.601-1.803.388 1.23-1.368-.92-1.6 1.68.751 1.24-1.371-.19 1.833z"/><path d="m58.06 39.829l-1.81-.385-.92 1.596-.19-1.83-1.8-.385 1.68-.755-.193-1.83 1.233 1.37 1.685-.751-.921 1.598z"/><path d="m54.37 43.926l-1.494-1.084-1.496 1.084.574-1.756-1.494-1.08h1.85l.566-1.76.574 1.76h1.84l-1.492 1.08z"/><path d="m49.33 46.17l-.92-1.599-1.806.384 1.235-1.371-.923-1.597 1.686.749 1.234-1.366-.193 1.83 1.687.751-1.81.389z"/><path d="m43.816 46.17l-.192-1.84-1.804-.379 1.685-.751-.195-1.83 1.237 1.366 1.683-.749-.92 1.597 1.233 1.369-1.804-.382z"/><path d="m38.779 43.926l.571-1.756-1.493-1.08h1.845l.568-1.76.572 1.76h1.844l-1.496 1.08.574 1.756-1.494-1.084z"/><path d="m35.09 39.827l1.23-1.37-.918-1.598 1.688.751 1.23-1.37-.19 1.83 1.683.754-1.803.386-.194 1.83-.921-1.596z"/><path d="m33.386 34.584l1.684-.751-.192-1.835 1.232 1.373 1.687-.751-.922 1.6 1.235 1.368-1.8-.388-.93 1.601-.19-1.833z"/><path d="m33.963 29.1h1.844l.573-1.754.566 1.754h1.845l-1.491 1.08.568 1.758-1.488-1.084-1.495 1.084.57-1.758z"/><path d="m36.719 24.325l1.681.745 1.239-1.365-.193 1.834 1.684.749-1.8.385-.2 1.833-.92-1.597-1.803.381 1.235-1.368z"/><path d="m41.18 21.09l1.23 1.364 1.69-.75-.92 1.598 1.23 1.37-1.803-.383-.922 1.596-.193-1.835-1.804-.382 1.682-.75z"/><path d="m46.574 19.938l.576 1.752h1.838l-1.488 1.085.57 1.754-1.496-1.084-1.494 1.084.571-1.754-1.491-1.085h1.84z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><g fill="#fff"><path d="m52 21.1l-.2 1.8 1.7.8-1.8.4-.2 1.8-1-1.6-1.8.4 1.3-1.4-1-1.6 1.7.8z"/><path d="m56.4 24.3l-.9 1.6 1.2 1.4-1.8-.4-.9 1.6-.2-1.8-1.8-.4 1.7-.8-.2-1.8 1.2 1.4z"/><path d="m59.2 29.1l-1.5 1.1.6 1.7-1.5-1-1.5 1 .5-1.7-1.4-1.1h1.8l.6-1.8.5 1.8z"/><path d="m59.8 34.6l-1.8.4-.2 1.8-1-1.6-1.8.4 1.3-1.4-.9-1.6 1.6.8 1.3-1.4-.2 1.8z"/><path d="m58.1 39.8l-1.8-.4-1 1.6-.2-1.8-1.8-.4 1.7-.7-.2-1.9 1.3 1.4 1.6-.7-.9 1.6z"/><path d="m54.4 43.9l-1.5-1.1-1.5 1.1.6-1.7-1.5-1.1h1.8l.6-1.8.5 1.8h1.9l-1.5 1.1z"/><path d="m49.3 46.2l-.9-1.6-1.8.4 1.2-1.4-.9-1.6 1.7.7 1.2-1.3-.2 1.8 1.7.8-1.8.3z"/><path d="m43.8 46.2l-.2-1.9-1.8-.3 1.7-.8-.2-1.8 1.2 1.3 1.7-.7-.9 1.6 1.2 1.4-1.8-.4z"/><path d="m38.8 43.9l.5-1.7-1.4-1.1h1.8l.6-1.8.5 1.8h1.9l-1.5 1.1.6 1.7-1.5-1.1z"/><path d="m35.1 39.8l1.2-1.3-.9-1.6 1.7.7 1.2-1.4-.2 1.9 1.7.7-1.8.4-.2 1.8-.9-1.6z"/><path d="m33.4 34.6l1.7-.8-.2-1.8 1.2 1.4 1.7-.8-.9 1.6 1.2 1.4-1.8-.4-.9 1.6-.2-1.8z"/><path d="m34 29.1h1.8l.6-1.8.5 1.8h1.9l-1.5 1.1.6 1.7-1.5-1-1.5 1 .6-1.7z"/><path d="m36.7 24.3l1.7.8 1.2-1.4-.2 1.8 1.7.8-1.8.4-.2 1.8-.9-1.6-1.8.4 1.2-1.4z"/><path d="m41.2 21.1l1.2 1.4 1.7-.8-.9 1.6 1.2 1.4-1.8-.4-.9 1.6-.2-1.8-1.8-.4 1.7-.8z"/><path d="m46.6 19.9l.5 1.8h1.9l-1.5 1.1.6 1.7-1.5-1.1-1.5 1.1.6-1.7-1.5-1.1h1.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f1.svg
index 32706be..51be06e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M2,32c0,16.568,13.432,30,30,30s30-13.432,30-30H2z"/><path fill="#f9f9f9" d="M32,2c16.568,0,30,13.432,30,30H32V2z"/><path fill="#2a5f9e" d="M32,2C15.432,2,2,15.432,2,32h30V2z"/><path fill="#f9f9f9" d="m20 21.717l4.944 3.283-1.864-5.341 4.92-3.409h-6.099l-1.901-5.25-1.85 5.25h-6.15l4.923 3.409-1.863 5.341z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30s30-13.4,30-30H2z" fill="#ed4c5c"/><path d="M32,2c16.6,0,30,13.4,30,30H32V2z" fill="#f9f9f9"/><path d="M32,2C15.4,2,2,15.4,2,32h30V2z" fill="#2a5f9e"/><path fill="#f9f9f9" d="m20 21.7l4.9 3.3-1.8-5.3 4.9-3.5h-6.1l-1.9-5.2-1.8 5.2h-6.2l4.9 3.5-1.8 5.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f2.svg
index 64237ca..e86d029 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f2.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.226 20-28.29"/><path fill="#83bf4f" d="M2,32c0,13.061,8.35,24.168,20,28.287V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#c94747" d="M42,3.714C38.871,2.607,35.508,2,32,2s-6.871,0.607-10,1.714v56.573C25.129,61.393,28.492,62,32,62
- s6.871-0.607,10-1.713V3.714z"/><path fill="#ffce31" d="m32 36.25l5.25 3.75-1.98-6.105 5.23-3.785-6.48-.02-2.02-6.09-2.02 6.09-6.478.02 5.23 3.785-1.984 6.105z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ffce31"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#83bf4f"/><path d="M42,3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7v56.6c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7z" fill="#c94747"/><path fill="#ffce31" d="m32 36.2l5.3 3.8-2-6.1 5.2-3.8h-6.5l-2-6.1-2 6.1h-6.5l5.2 3.8-2 6.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f3.svg
index 95023cd..9e5bd66 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><g fill="#ffe62e"><path d="M22 28.371 30.03 34 27 24.844 35 19 25.09 19 22 10 19 19 9 19 16.999 24.844 13.965 34z"/><path d="m35.27 35.28l-2.27.556 2.24.861-.01 2.303 1.439-1.75 2.22.83-1.336-1.9 1.447-1.769-2.309.521-1.361-1.932z"/><path d="m38.71 28.467l-1.71 1.531 2.29-.178.97 2.18.487-2.285 2.253-.201-1.95-1.204.487-2.31-1.758 1.513-1.988-1.224z"/><path d="m39.28 20.729l.686 2.271.732-2.23 2.302.029-1.83-1.449.7-2.21-1.82 1.319-1.85-1.459.652 2.309-1.852 1.341z"/><path d="m35.27 12.723l.06 2.277 1.361-1.93 2.309.519-1.435-1.749 1.323-1.919-2.206.843-1.452-1.764.01 2.302-2.24.86z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ed4c5c"/><g fill="#ffe62e"><path d="m22 28.4l8 5.6-3-9.2 8-5.8h-9.9l-3.1-9-3 9h-10l8 5.8-3 9.2z"/><path d="m35.3 35.3l-2.3.5 2.2.9v2.3l1.5-1.7 2.2.8-1.3-1.9 1.4-1.8-2.3.5-1.4-1.9z"/><path d="m38.7 28.5l-1.7 1.5 2.3-.2 1 2.2.4-2.3 2.3-.2-2-1.2.5-2.3-1.7 1.5-2-1.2z"/><path d="m39.3 20.7l.7 2.3.7-2.2h2.3l-1.8-1.4.7-2.3-1.9 1.4-1.8-1.5.7 2.3-1.9 1.3z"/><path d="m35.3 12.7v2.3l1.4-1.9 2.3.5-1.4-1.8 1.3-1.9-2.2.9-1.5-1.8v2.3l-2.2.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f4.svg
index ceb8eb7..387be03 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m62.05 32h-60c0 5.467 1.469 10.586 4.02 15h51.953c2.555-4.414 4.02-9.533 4.02-15"/><path fill="#ffe62e" d="m32.05 2c-16.568 0-30 13.432-30 30h60c0-16.568-13.432-30-30-30"/><path fill="#ed4c5c" d="m32.05 62c11.1 0 20.789-6.03 25.976-15h-51.952c5.188 8.965 14.874 15 25.976 15"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32h-60c0 5.5 1.5 10.6 4 15h52c2.6-4.4 4-9.5 4-15" fill="#2a5f9e"/><path d="M32,2C15.5,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#ffe62e"/><path d="m32 62c11.1 0 20.8-6 26-15h-52c5.3 9 14.9 15 26 15" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f5.svg
index 8f4c1ab..16bfba0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f5.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="M2,32c0,13.061,8.35,24.166,20,28.285V3.713C10.35,7.832,2,18.939,2,32z"/><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.224 20-28.29"/><path fill="#f9f9f9" d="M22,60.285C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.715V3.713C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.713V60.285z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#428bc1"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f7.svg
index 189da46..e8510bc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1f7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m52.39 10c-5.352-4.962-12.514-8-20.387-8-7.875 0-15.04 3.037-20.389 8h40.776"/><path d="m11.611 54c5.354 4.963 12.514 8 20.389 8 7.873 0 15.03-3.037 20.387-8h-40.776"/></g><path fill="#c94747" d="M2,32c0,4.267,0.896,8.324,2.504,12h54.992C61.104,40.324,62,36.268,62,32c0-4.268-0.896-8.324-2.504-12
- H4.504C2.896,23.676,2,27.733,2,32z"/><g fill="#f9f9f9"><path d="m11.627 54h40.744c3.01-2.791 5.461-6.184 7.129-10h-55c1.668 3.816 4.115 7.209 7.127 10"/><path d="m52.37 10h-40.744c-3.01 2.792-5.459 6.184-7.127 10h55c-1.668-3.816-4.115-7.208-7.129-10"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M52.4,10C47,5,39.9,2,32,2c-7.9,0-15,3-20.4,8H52.4z"/><path d="m11.6 54c5.4 5 12.5 8 20.4 8 7.9 0 15-3 20.4-8h-40.8"/></g><path d="m2 32c0 4.3.9 8.3 2.5 12h55c1.6-3.7 2.5-7.7 2.5-12s-.9-8.3-2.5-12h-55c-1.6 3.7-2.5 7.7-2.5 12" fill="#c94747"/><g fill="#f9f9f9"><path d="m11.6 54h40.7c3-2.8 5.5-6.2 7.1-10h-55c1.8 3.8 4.2 7.2 7.2 10"/><path d="m52.4 10h-40.8c-3 2.8-5.5 6.2-7.1 10h55c-1.7-3.8-4.1-7.2-7.1-10"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fa.svg
index ba7ca33..ae73709 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f9f9f9"><path d="m10.787 26h50.611c-.898-4.434-2.777-8.512-5.398-12h-45.21v12"/><path d="M10.787,38v12H56c2.621-3.488,4.5-7.566,5.398-12H10.787z"/></g><g fill="#428bc1"><path d="m61.4 26h-50.611v12h50.611c.395-1.939.602-3.945.602-6s-.207-4.061-.602-6"/><path d="M10.787,14H56C50.527,6.714,41.814,2,32,2c-8.289,0-15.783,3.371-21.213,8.806V14z"/><path d="M10.787,50v3.194C16.217,58.629,23.711,62,32,62c9.814,0,18.527-4.714,24-12H10.787z"/></g><path fill="#ed4c5c" d="M10.787,10.787C5.357,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L32,32L10.787,10.787z"/><path fill="#f9f9f9" d="m9.984 38l4.02-2.81 4.02 2.81-1.519-4.577 3.999-2.923h-4.955l-1.545-4.5-1.5 4.5h-5l3.998 2.923z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f9f9f9"><path d="m10.8 26h50.6c-.9-4.4-2.8-8.5-5.4-12h-45.2v12"/><path d="M10.8,38v12H56c2.6-3.5,4.5-7.6,5.4-12H10.8z"/></g><g fill="#428bc1"><path d="m61.4 26h-50.6v12h50.6c.4-1.9.6-3.9.6-6s-.2-4.1-.6-6"/><path d="m10.8 14h45.2c-5.5-7.3-14.2-12-24-12-8.3 0-15.8 3.4-21.2 8.8 0 0 0 3.2 0 3.2"/><path d="M10.8,50v3.2C16.2,58.6,23.7,62,32,62c9.8,0,18.5-4.7,24-12H10.8z"/></g><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#ed4c5c"/><path fill="#f9f9f9" d="m10 38l4-2.8 4 2.8-1.5-4.6 4-2.9h-5l-1.5-4.5-1.5 4.5h-5l4 2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fb.svg
index 1805350..c3c11d6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m32 62c9.814 0 18.527-4.713 24-12h-48c5.473 7.287 14.186 12 24 12"/><path d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/></g><path fill="#fff" d="m61.4 38c.394-1.939.602-3.945.602-6h-60c0 2.055.208 4.061.602 6h58.796"/><path fill="#ed4c5c" d="m4.504 44h54.992c.834-1.906 1.479-3.912 1.902-6h-58.796c.423 2.088 1.069 4.094 1.902 6"/><path fill="#fff" d="M4.504,44C5.439,46.141,6.613,48.154,8,50h48c1.387-1.846,2.561-3.859,3.496-6H4.504z"/><g fill="#ffce31"><path d="m25 26.06l1.24.94-.472-1.526 1.232-.947-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.23.947-.466 1.526z"/><path d="m25 56.06l1.24.94-.472-1.52 1.232-.95-1.525-.01-.475-1.52-.475 1.52-1.525.01 1.23.95-.466 1.52z"/><path d="m36 36.06l1.24.94-.472-1.525 1.232-.948-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.23.948-.466 1.525z"/><path d="m18 29.06l1.236.94-.468-1.526 1.232-.947-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.232.947-.468 1.526z"/><path d="m32 29.06l1.24.94-.472-1.526 1.232-.947-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.23.947-.466 1.526z"/><path d="m13 36.06l1.236.94-.468-1.525 1.232-.948-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.232.948-.468 1.525z"/><path d="m36 48.06l1.24.94-.472-1.52 1.232-.953-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.23.953-.466 1.52z"/><path d="m13 48.06l1.236.94-.468-1.52 1.232-.953-1.525-.004-.475-1.523-.475 1.523-1.525.004 1.232.953-.468 1.52z"/><path d="m31 54.06l1.24.94-.472-1.52 1.232-.95-1.525-.01-.475-1.52-.475 1.52-1.525.01 1.23.95-.466 1.52z"/><path d="m18 54.06l1.236.94-.468-1.52 1.232-.95-1.525-.01-.475-1.52-.475 1.52-1.525.01 1.232.95-.468 1.52z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m32 62c9.8 0 18.5-4.7 24-12h-48c5.5 7.3 14.2 12 24 12"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z"/></g><path d="m61.4 38c.4-1.9.6-3.9.6-6h-60c0 2.1.2 4.1.6 6h58.8" fill="#fff"/><path d="m4.5 44h55c.8-1.9 1.5-3.9 1.9-6h-58.8c.4 2.1 1.1 4.1 1.9 6" fill="#ed4c5c"/><path d="m4.5 44c.9 2.1 2.1 4.2 3.5 6h48c1.4-1.8 2.6-3.9 3.5-6h-55" fill="#fff"/><g fill="#ffce31"><path d="m25 26.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m25 56.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m36 36.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m18 29.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m32 29.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m13 36.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m36 48.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m13 48.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m31 54.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m18 54.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fc.svg
index dd8da46..cecfdbf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fc.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M62,31.999C62,15.431,48.568,2,32,2S2,15.431,2,31.999C2,36.268,2.897,40.324,4.503,44h54.993
- C61.104,40.324,62,36.268,62,31.999z"/><path d="m32 62c9.814 0 18.527-4.714 24-12h-48c5.473 7.286 14.186 12 24 12"/></g><path fill="#ffce31" d="m4.503 44c.936 2.142 2.11 4.154 3.497 6h48c1.387-1.846 2.561-3.858 3.496-6h-54.993"/><g fill="#fff"><path d="m11.442 15.495l1.238 3.812h4.01l-3.242 2.354 1.239 3.811-3.242-2.352-3.242 2.352 1.238-3.811-3.241-2.354h4.01z"/><path d="m22.822 24.459l1.74 5.354h5.628l-4.553 3.307 1.74 5.358-4.555-3.308-4.555 3.308 1.743-5.358-4.558-3.307h5.628z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m62 32c0-16.6-13.4-30-30-30s-30 13.4-30 30c0 4.3.9 8.3 2.5 12h55c1.6-3.7 2.5-7.7 2.5-12"/><path d="m32 62c9.8 0 18.5-4.7 24-12h-48c5.5 7.3 14.2 12 24 12"/></g><path d="m4.5 44c.9 2.1 2.1 4.2 3.5 6h48c1.4-1.8 2.6-3.9 3.5-6h-55" fill="#ffce31"/><g fill="#fff"><path d="m11.4 15.5l1.3 3.8h4l-3.3 2.4 1.3 3.8-3.3-2.4-3.2 2.4 1.2-3.8-3.2-2.4h4z"/><path d="m22.8 24.5l1.8 5.3h5.6l-4.6 3.3 1.8 5.4-4.6-3.3-4.5 3.3 1.7-5.4-4.5-3.3h5.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fd.svg
index 83a4e1a..2811542 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fd.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M2,32c0,16.568,13.432,30,30,30c11.744,0,21.906-6.753,26.832-16.584L5.168,18.584
- C3.145,22.622,2,27.176,2,32z"/><path fill="#699635" d="M32,2C20.255,2,10.094,8.753,5.168,18.584l53.664,26.832C60.855,41.378,62,36.824,62,32
- C62,15.431,48.568,2,32,2z"/><circle fill="#ffce31" cx="32" cy="32" r="11.217"/><path fill="#699635" d="m25.15 26.962c.768 1.052 1.931 2.818 2.866 2.357.729.002 1.106.053 1.205.539 1.722.293 4.615-.434 6.414-2.778 0 0 .151.021.099-.871.01-.389.532-.311.545-.184.072.192.058.336.157.341.221-.073.523-.57.778-.886.068-.139.03-.286.046-.46.136-.33.47-.257.54-.085.063.112.064.196.127.308.34.226.953.015.999.015.061-.277.238-.251.238-.251.227-.05.138-.029.287.048-.132 1.492.294 1.557.257 2.322.016.854-.257 1.097-.257 1.422.085.398 1.345.411.901.749-.388.207.002.597-.584.748-1.706.865-2.031 1.607-2.031 1.607l-.478.81c-.285.538-.646.246-.847.509-.102.329-.215 1.063-.014 1.442.101.523-.013.809-.138 1.332-.111 1.093-.546 1.255-.595 1.64-.202.407.043 2.332-.149 2.332-1.268.024-2.242-.242-2.743-.343.489-2.111.3-3.962.3-4.152-.126-1.508-2.261-1.143-2.587-1.342-.27-.057-.44-.28-.535-.374-.303-.032-.415-.102-.716-.132-.15.076-.061.152-.396.257-.852.104-1.226-.742-1.226-.742.04-.284-1.914.058-2.978-.189-.436.242-.625.961-.982 1.047-.01.224-.588-.185-.704-.402-.023-.636.557-.919.557-.919.46-.323.732-.377.955-.601.111-.555.055-.966.291-1.382.201-.319.496-.169.696-.313.216-.143.307-1.077.107-1.331l-.909-.825c-.278-.804.332-1.322.504-1.263"/><path fill="#ffce31" d="m60.52 26.748c-.149-.335-.617-.442-.962-.668-.493-.122-.829-.146-1.167.054-.106.058-.213.115-.32.174l-.526-.071c-1.153.027-1.337-3.79-1.868-5.347-.346-1.026-2.889-3.095-4.778-4.391-.447-.256-.711-.063-.623.345.25.353.447.746.698 1.097.08.242.21.406.291.646l.091.457c.602.568.717 1.079.717 1.079.367.59.686 1.018 1.285 1.479.659.345.292 1.605.361 2.256.032.413-.268.386-.529.357-2.183-1.712-4.203-1.56-6.02-1.964-.701-.019-.688.314-.446.48 1.347 1.232 2.587 2.047 4.185 2.684.272.141.542.28.813.421.313.223.63.446.943.669.718.391.806.792.809.828.082.83-.31 1.512-.419 1.78-.165.899-3.01 2.851-8.184 3.885-.097-.04-.68.103.023.296 5.345-.412 9.464-3.186 9.733-3.301.796-.507 3.085-1.188 3.586-1.672.611-.098 1.242-.229 1.245-.76.19-.148.494-.075.68-.523.48-.123.385-.29.385-.29"/><g fill="#fff"><path d="m12.204 28.2l-.763-.719-.771.699.083-1.04-1.032-.161.866-.584-.517-.91 1 .313.388-.97.378.975 1-.3-.526.903.858.594-1.034.15z"/><path d="m14.91 36.845l-.82-.545-.804.575.282-.932-.812-.563.997-.03.297-.924.336.914.997-.01-.79.595z"/><path d="m12.355 44.29l-.762-.714-.773.704.083-1.04-1.032-.16.866-.59-.514-.909.996.313.39-.97.377.974 1-.298-.527.902.858.598-1.033.15z"/><path d="m5.5 35.566l-.762-.713-.772.704.083-1.041-1.029-.166.863-.584-.515-.91.996.314.391-.97.377.97 1-.295-.527.901.859.594-1.034.154.069 1.042"/><path d="m18.69 33.28l-.762-.713-.768.703.078-1.04-1.031-.17.863-.579-.512-.909.997.312.39-.969.377.974 1-.3-.526.903.858.598-1.034.15z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30c11.7,0,21.9-6.8,26.8-16.6L5.2,18.6C3.1,22.6,2,27.2,2,32z" fill="#2a5f9e"/><path d="M32,2C20.3,2,10.1,8.8,5.2,18.6l53.7,26.8c2-4,3.2-8.6,3.2-13.4C62,15.4,48.6,2,32,2z" fill="#699635"/><circle cx="32" cy="32" r="11.2" fill="#ffce31"/><path d="m25.1 27c.8 1.1 1.9 2.8 2.9 2.4.7 0 1.1.1 1.2.5 1.7.3 4.6-.4 6.4-2.8 0 0 .2 0 .1-.9 0-.4.5-.3.5-.2.1.2.1.3.2.3.2-.1.5-.6.8-.9.1-.1 0-.3 0-.5.1-.3.5-.3.5-.1.1.1.1.2.1.3.3.2 1 0 1 0 .2-.1.4-.1.4-.1.2 0 .1 0 .3 0-.1 1.5.3 1.6.3 2.3 0 .9-.3 1.1-.3 1.4.1.4 1.3.4.9.7-.4.2 0 .6-.6.7-1.7.9-2 1.6-2 1.6l-.5.8c-.3.5-.6.2-.8.5-.1.3-.2 1.1 0 1.4.1.5 0 .8-.1 1.3-.1 1.1-.5 1.3-.6 1.6-.2.4 0 2.3-.1 2.3-1.3 0-2.2-.2-2.7-.3.5-2.1.3-4 .3-4.2-.1-1.5-2.3-1.1-2.6-1.3-.3-.1-.4-.3-.5-.4-.3 0-.4-.1-.7-.1-.1.1-.1.2-.4.3-.9.1-1.2-.7-1.2-.7 0-.3-1.9.1-3-.2-.4.2-.6 1-1 1 0 .2-.6-.2-.7-.4 0-.6.6-.9.6-.9.5-.3.7-.4 1-.6.1-.6.1-1 .3-1.4.2-.3.5-.2.7-.3.2-.1.3-1.1.1-1.3l-.9-.8c-.6-.6 0-1.1.1-1" fill="#699635"/><path d="m60.5 26.7c-.1-.3-.6-.4-1-.7-.5-.1-.8-.1-1.2.1-.1.1-.2.1-.3.2l-.5-.1c-1.2 0-1.3-3.8-1.9-5.3-.3-1-2.9-3.1-4.8-4.4-.4-.3-.7-.1-.6.3.2.4.4.7.7 1.1.1.2.2.4.3.6l.1.5c.6.6.7 1.1.7 1.1.4.6.7 1 1.3 1.5.7.3.3 1.6.4 2.3 0 .4-.3.4-.5.4-2.2-1.7-4.2-1.6-6-2-.7 0-.7.3-.4.5 1.3 1.2 2.6 2 4.2 2.7.3.1.5.3.8.4.3.2.6.4.9.7.7.4.8.8.8.8.1.8-.3 1.5-.4 1.8-.2.8-3.1 2.8-8.2 3.8-.1 0-.7.1 0 .3 5.3-.4 9.5-3.2 9.7-3.3.8-.5 3.1-1.2 3.6-1.7.6-.1 1.2-.2 1.2-.8.2-.1.5-.1.7-.5.5-.1.4-.3.4-.3" fill="#ffce31"/><g fill="#fff"><path d="m12.2 28.2l-.8-.7-.7.7.1-1.1-1.1-.1.9-.6-.5-.9 1 .3.4-1 .3 1 1-.3-.5.9.9.6-1.1.2z"/><path d="m14.9 36.8l-.8-.5-.8.6.3-1-.8-.5h1l.3-1 .3.9h1l-.8.6z"/><path d="m12.4 44.3l-.8-.7-.8.7.1-1.1-1-.1.8-.6-.5-.9 1 .3.4-1 .4 1 1-.3-.5.9.8.6-1 .1z"/><path d="m5.5 35.6l-.8-.7-.7.7v-1.1l-1-.1.9-.6-.5-.9 1 .3.4-1 .3 1 1-.3-.5.9.9.6-1.1.1z"/><path d="m18.7 33.3l-.8-.7-.7.7v-1.1l-1-.1.9-.6-.5-.9 1 .3.3-1 .4 1 1-.3-.5.9.9.6-1.1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fe.svg
index 8d400ee..4529030 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f5f5f5" cx="32" cy="32" r="30"/><g fill="#699635"><path d="m12.476 36.952c0 0-.162 1.374.404 2.02.566.647 1.938 1.372 2.422 1.452.484.082-.564-1.774-.564-1.774s-1.535-1.939-2.262-1.698"/><path d="m12.718 40.42c0 0 .161 1.293 1.049 1.455.889.161 1.696.081 1.696.081s0-1.454-2.745-1.536"/><path d="m15.625 37.761c0 0 .888.322.888 1.131 0 .806-.08 1.614-.08 1.614s-.647-.809-.647-1.211c0-.403-.161-1.534-.161-1.534"/><path d="m15.296 42.621c0 0-.114.799.799.799.914 0 .115-1.027-.799-.799"/><path d="m15.239 43.877c0 0 .971-.285 2.113-.057 1.142.229 1.712 1.084 1.712 1.084s-1.198.344-2.569 0c-1.369-.341-1.256-1.027-1.256-1.027"/><path d="m15.868 41.02c0 0 1.37-.399 2.683 2.569 0 .001-2.513-.626-2.683-2.569"/><path d="m17.294 40.4c0 0 1.542-.857 2.799 3.139 0-.001-1.77-.685-2.799-3.139"/><path d="m19.351 44.1c0 0 1.542-.572 3.541 1.77-3.256-.113-3.541-1.77-3.541-1.77"/><path d="m20.382 43.02c0 0-.076.9.528.9s.076-1.157-.528-.9"/><path d="m19.271 45.35c0 0-.059.787.413.787s.057-1.01-.413-.787"/><path d="m23.979 47.785c0 0-.075.9.529.9.604.001.075-1.158-.529-.9"/><path d="m25.408 45.1c0 0-.076.9.528.9s.075-1.156-.528-.9"/><path d="m21.635 43.533c0 0 2.17-.568 3.083 2.172-2.626-.4-3.083-2.172-3.083-2.172"/><path d="m19.693 46.562c0 0 2.456-.628 3.598.229 1.142.855-2.17 1.197-3.598-.229"/><path d="m23.977 46.619c0 0 1.655-.8 3.483.97-3.427.456-3.483-.97-3.483-.97"/><path d="m26.774 45.533c0 0 1.656-.514 3.255 2.512-3.598-.514-3.255-2.512-3.255-2.512"/><path d="m29.628 48.845c0 0-1.827 1.257-4.111-.058.001 0 .743-1.541 4.111.058"/><path d="m51.52 36.926c0 0 .162 1.371-.402 2.02-.564.646-1.939 1.373-2.424 1.453-.484.081.566-1.777.566-1.777s1.534-1.938 2.26-1.694"/><path d="m51.28 40.4c0 0-.162 1.292-1.051 1.453-.889.162-1.695.08-1.695.08s0-1.451 2.746-1.533"/><path d="m48.38 37.732c0 0-.889.322-.889 1.129 0 .809.08 1.616.08 1.616s.646-.808.646-1.212.163-1.533.163-1.533"/><path d="m48.703 42.592c0 0 .115.799-.799.799s-.113-1.028.799-.799"/><path d="m48.76 43.85c0 0-.969-.286-2.113-.059-1.141.229-1.711 1.086-1.711 1.086s1.197.342 2.57 0c1.369-.343 1.254-1.027 1.254-1.027"/><path d="m48.13 40.994c0 0-1.369-.4-2.684 2.569 0 0 2.512-.628 2.684-2.569"/><path d="m46.705 40.37c0 0-1.543-.857-2.797 3.14 0 0 1.77-.686 2.797-3.14"/><path d="m44.65 44.08c0 0-1.541-.571-3.541 1.77 3.254-.113 3.541-1.77 3.541-1.77"/><path d="m43.619 42.988c0 0 .074.9-.529.9s-.076-1.156.529-.9"/><path d="m44.73 45.33c0 0 .059.786-.412.786-.472 0-.058-1.012.412-.786"/><path d="m40.02 47.756c0 0 .074.901-.529.901-.605 0-.076-1.158.529-.901"/><path d="m38.594 45.07c0 0 .076.899-.529.899-.604.001-.075-1.156.529-.899"/><path d="m42.37 43.506c0 0-2.17-.571-3.084 2.17 2.627-.401 3.084-2.17 3.084-2.17"/><path d="m44.31 46.533c0 0-2.455-.629-3.598.229-1.141.855 2.17 1.198 3.598-.229"/><path d="m40.02 46.589c0 0-1.656-.8-3.482.972 3.426.457 3.482-.972 3.482-.972"/><path d="m37.23 45.504c0 0-1.656-.514-3.256 2.514 3.597-.514 3.256-2.514 3.256-2.514"/><path d="m34.37 48.816c0 0 1.826 1.257 4.111-.058 0 .001-.742-1.541-4.111.058"/><path d="m31.655 49.55c0 0-1.251 1.697-1.251 1.536 0-.164-.889-.889-.889-.889l1.534-1.13-.605-.284.323-.362 1.131.483"/><path d="m31.998 49.545c0 0 1.252 1.695 1.252 1.535 0-.162.889-.889.889-.889l-1.535-1.131.605-.283-.323-.362-1.13.483"/><path d="m31.575 49.631h.525"/></g><path fill="#ff8736" d="m18.04 29.521c0 0 .436 1.144.926 1.144s1.798.109 1.798.109.653-.109.871-.708c.219-.599.816-3.104 3.813-1.58 2.996 1.524 3.159-2.615 3.159-2.615l-.491-.708.109-1.361c0 0 1.634 1.144 2.668 1.089 1.036-.054 1.798.328 2.126.328.326 0 1.359.327 1.359.327l2.67.108c0 0 .436-.38.871-.326.438.054.438-.272 1.252-.272.818 0 1.635-1.036 1.635-1.036s.219-.217 1.416 0c0 0 .818-.653 2.02-1.035 1.199-.38 1.035-.871 1.035-.871s.871-.164 1.252-.109c.381.054.6-.654.6-.654l.926-.108.381-.544.928-.165c0 0 1.09-.762 1.252-1.252.164-.491 1.416-.109 1.416-.109s.545-.491.6-.763c.055-.271.545-.055.545-.055l-.055.872-.6.328v.544h-.926l-.055.545-.762.055-.109.653-.164.271-.217.109h-.545l-.219.326-.545.381-.381.49-.762-.054-.49.654-.328-.055-.49.818-.381.49-.217.327-.381.109-.109.435-.654.165-.871.217-.326.381c0 0-.928 1.853.055 2.506.979.653 1.033 1.361 1.033 1.361l.492.328.381.653.162.762c0 0-.162.108-.381.055-.219-.055-.6-.11-.6-.11l-.436-.38-.816-.055-.436.49c0 0-.219.327-.219.545s-.109.163-.381 0-.709-.437-.709-.437l-.6-.163-.053-.272-.383.218c0 0-.107.328-.326.217-.217-.108-.436-.108-.436-.108h-.381c0 0-.871.654-.762 2.778l-.982.163-.49.436-.271.273h-.709l-.381.326-.707.272-.328.436-.871.054-.381.272-.164.381-.599-.381-.816-.218-.708.163c0 0-.218.055-.436.219-.217.164-.817.271-.817.271s-.381.109-.381.328c0 .218-.109.599-.109.599v.817c0 0-.109.544-.544.544-.435 0-.326 0-.544-.054-.218-.055-.164-.545-.164-.545v-.6l-.872-.816-.544-.219-.599.055-.545.326-.49.327c0 0 .109.382-.272.109s-.654-.381-.654-.381l-.49-.272-.654-.164-.489-.599-1.252-.054-1.09-1.254-.327-.326-.055-.981-.708-.108v-.544l-.273-.546.109-.98-.653-.271-.272-.927-.218-1.414"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f5f5f5"/><g fill="#699635"><path d="m12.5 37c0 0-.2 1.4.4 2 .6.6 1.9 1.4 2.4 1.5.5.1-.6-1.8-.6-1.8s-1.5-2-2.2-1.7"/><path d="m12.7 40.4c0 0 .2 1.3 1 1.5.9.2 1.7.1 1.7.1s.1-1.5-2.7-1.6"/><path d="m15.6 37.8c0 0 .9.3.9 1.1 0 .8-.1 1.6-.1 1.6s-.6-.8-.6-1.2c0-.4-.2-1.5-.2-1.5"/><path d="m15.3 42.6c0 0-.1.8.8.8.9 0 .1-1-.8-.8"/><path d="m15.2 43.9c0 0 1-.3 2.1-.1 1.1.2 1.7 1.1 1.7 1.1s-1.2.3-2.6 0c-1.3-.3-1.2-1-1.2-1"/><path d="m15.9 41c0 0 1.4-.4 2.7 2.6 0 0-2.6-.6-2.7-2.6"/><path d="m17.3 40.4c0 0 1.5-.9 2.8 3.1 0 0-1.8-.7-2.8-3.1"/><path d="m19.4 44.1c0 0 1.5-.6 3.5 1.8-3.3-.1-3.5-1.8-3.5-1.8"/><path d="m20.4 43c0 0-.1.9.5.9s.1-1.1-.5-.9"/><path d="m19.3 45.4c0 0-.1.8.4.8s0-1.1-.4-.8"/><path d="m24 47.8c0 0-.1.9.5.9.6 0 .1-1.2-.5-.9"/><path d="m25.4 45.1c0 0-.1.9.5.9s.1-1.2-.5-.9"/><path d="m21.6 43.5c0 0 2.2-.6 3.1 2.2-2.6-.4-3.1-2.2-3.1-2.2"/><path d="m19.7 46.6c0 0 2.5-.6 3.6.2 1.1.8-2.2 1.2-3.6-.2"/><path d="m24 46.6c0 0 1.7-.8 3.5 1-3.5.4-3.5-1-3.5-1"/><path d="m26.8 45.5c0 0 1.7-.5 3.3 2.5-3.7-.5-3.3-2.5-3.3-2.5"/><path d="m29.6 48.8c0 0-1.8 1.3-4.1-.1 0 .1.8-1.5 4.1.1"/><path d="m51.5 36.9c0 0 .2 1.4-.4 2-.6.6-1.9 1.4-2.4 1.5-.5.1.6-1.8.6-1.8s1.5-1.9 2.2-1.7"/><path d="m51.3 40.4c0 0-.2 1.3-1.1 1.5-.9.2-1.7.1-1.7.1s0-1.5 2.8-1.6"/><path d="m48.4 37.7c0 0-.9.3-.9 1.1 0 .8.1 1.6.1 1.6s.6-.8.6-1.2.2-1.5.2-1.5"/><path d="m48.7 42.6c0 0 .1.8-.8.8s-.1-1 .8-.8"/><path d="m48.8 43.8c0 0-1-.3-2.1-.1-1.1.2-1.7 1.1-1.7 1.1s1.2.3 2.6 0c1.3-.3 1.2-1 1.2-1"/><path d="m48.1 41c0 0-1.4-.4-2.7 2.6 0 0 2.6-.7 2.7-2.6"/><path d="m46.7 40.4c0 0-1.5-.9-2.8 3.1 0 0 1.8-.7 2.8-3.1"/><path d="m44.7 44.1c0 0-1.5-.6-3.5 1.8 3.2-.2 3.5-1.8 3.5-1.8"/><path d="m43.6 43c0 0 .1.9-.5.9s-.1-1.2.5-.9"/><path d="m44.7 45.3c0 0 .1.8-.4.8-.5 0 0-1 .4-.8"/><path d="m40 47.8c0 0 .1.9-.5.9-.6 0-.1-1.2.5-.9"/><path d="m38.6 45.1c0 0 .1.9-.5.9-.6 0-.1-1.2.5-.9"/><path d="m42.4 43.5c0 0-2.2-.6-3.1 2.2 2.6-.4 3.1-2.2 3.1-2.2"/><path d="m44.3 46.5c0 0-2.5-.6-3.6.2-1.1.9 2.2 1.3 3.6-.2"/><path d="m40 46.6c0 0-1.7-.8-3.5 1 3.5.4 3.5-1 3.5-1"/><path d="m37.2 45.5c0 0-1.7-.5-3.3 2.5 3.7-.5 3.3-2.5 3.3-2.5"/><path d="m34.4 48.8c0 0 1.8 1.3 4.1-.1 0 .1-.8-1.5-4.1.1"/><path d="m31.7 49.5c0 0-1.3 1.7-1.3 1.5 0-.2-.9-.9-.9-.9l1.5-1.1-.6-.3.3-.4 1.1.5"/><path d="m32 49.5c0 0 1.3 1.7 1.3 1.5 0-.2.9-.9.9-.9l-1.5-1.1.6-.3-.3-.4-1.1.5"/><path d="m31.6 49.6h.5"/></g><path d="m18 29.5c0 0 .4 1.1.9 1.1s1.8.1 1.8.1.7-.1.9-.7c.2-.6.8-3.1 3.8-1.6 3 1.5 3.2-2.6 3.2-2.6l-.5-.7.1-1.4c0 0 1.6 1.1 2.7 1.1 1-.1 1.8.3 2.1.3.3 0 1.4.3 1.4.3l2.7.1c0 0 .4-.4.9-.3.4.1.4-.3 1.3-.3.8 0 1.6-1 1.6-1s.2-.2 1.4 0c0 0 .8-.7 2-1 1.2-.4 1-.9 1-.9s.9-.2 1.3-.1c.4.1.6-.7.6-.7l.9-.1.4-.5.9-.2c0 0 1.1-.8 1.3-1.3.2-.5 1.4-.1 1.4-.1s.5-.5.6-.8c.1-.3.5-.1.5-.1l-.1.9-.6.3v.5h-.9l-.1.5-.8.1-.1.7-.2.3-.2.1h-.5l-.2.3-.5.6-.4.5-.8-.1-.5.7h-.3l-.5.8-.4.5-.2.3-.4.1-.1.4-.7.2-.8.2-.3.4c0 0-.9 1.9.1 2.5 1 .7 1 1.4 1 1.4l.5.3.4.7.2.8c0 0-.2.1-.4.1-.3-.2-.7-.2-.7-.2l-.4-.4-.8-.1-.5.5c0 0-.2.3-.2.5s-.1.2-.4 0-.7-.4-.7-.4l-.6-.1-.1-.3-.4.2c0 0-.1.3-.3.2-.2-.1-.4-.1-.4-.1h-.4c0 0-.9.7-.8 2.8l-1 .2-.5.4-.2.3h-.7l-.3.3-.7.3-.3.4-1 .1-.3.2-.2.4-.6-.4-.8-.2-.7.2c0 0-.2.1-.4.2-.2.2-.8.3-.8.3s-.4.1-.4.3c0 .2-.1.6-.1.6v.8c0 0-.1.5-.5.5-.4 0-.3 0-.5-.1-.2-.1-.2-.5-.2-.5v-.6l-.9-.8-.6-.2-.6.1-.5.3-.5.3c0 0 .1.4-.3.1s-.7-.3-.7-.3l-.5-.3-.7-.2-.5-.6-1.3-.1-1.1-1.3-.3-.3-.1-1-.7-.1v-.5l-.3-.5.1-1-.7-.3-.3-.9v-1.4" fill="#ff8736"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ff.svg
index bd63383..3226720 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m10.787 10.787v21.21h51.21c0-16.568-13.432-30-30-30-8.285 0-15.785 3.358-21.21 8.788"/><path fill="#ed4c5c" d="m10.787 32v21.21c5.428 5.429 12.928 8.787 21.21 8.787 16.568 0 30-13.432 30-30h-51.21"/><path fill="#428bc1" d="M10.787,10.787C5.358,16.216,2,23.716,2,32s3.358,15.784,8.787,21.213L32,32L10.787,10.787z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m10.8 10.8v21.2h51.2c0-16.6-13.4-30-30-30-8.3 0-15.8 3.4-21.2 8.8" fill="#f9f9f9"/><path d="m10.8 32v21.2c5.4 5.4 12.9 8.8 21.2 8.8 16.6 0 30-13.4 30-30h-51.2" fill="#ed4c5c"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#428bc1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e8.svg
new file mode 100644
index 0000000..1aa1eab
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e8.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m23.3 20.4c2.3-2.4 5.3-3.6 8.9-3.6 4.8 0 8.4 1.6 10.6 4.8 1.2 1.8 1.9 3.6 2 5.4h-6.1c-.4-1.4-.9-2.4-1.5-3.1-1.1-1.3-2.7-1.9-4.8-1.9-2.2 0-3.9.9-5.1 2.7-1.2 1.8-1.9 4.3-1.9 7.5 0 3.3.7 5.7 2 7.3 1.3 1.6 3 2.4 5 2.4 2.1 0 3.7-.7 4.8-2.1.6-.7 1.1-1.9 1.5-3.4h6c-.5 3.2-1.8 5.7-4 7.7-2.1 2-4.9 3-8.2 3-4.1 0-7.4-1.3-9.7-4-2.4-2.7-3.5-6.4-3.5-11.1-.1-5 1.3-8.9 4-11.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ea.svg
index a2b2e83..b2015a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m31.908 2c-13.06 0-24.17 8.35-28.29 20h56.57c-4.119-11.65-15.224-20-28.29-20"/><path fill="#ffe62e" d="m31.908 62c13.06 0 24.17-8.35 28.28-20h-56.57c4.119 11.65 15.226 20 28.29 20"/><path fill="#ed4c5c" d="m3.621 22c-1.105 3.129-1.713 6.492-1.713 10s.607 6.871 1.713 10h56.57c1.106-3.129 1.715-6.492 1.715-10s-.608-6.871-1.715-10h-56.57"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M31.9,2C18.8,2,7.7,10.4,3.6,22h56.6C56.1,10.4,45,2,31.9,2z" fill="#3e4347"/><path d="M31.9,62c13.1,0,24.2-8.3,28.3-20H3.6C7.7,53.7,18.8,62,31.9,62z" fill="#ffe62e"/><path d="m3.6 22c-1.1 3.1-1.7 6.5-1.7 10s.6 6.9 1.7 10h56.6c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10h-56.6" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ec.svg
index ec10da0..04d9b4e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m26.815 6.06l-.01-.001-.011.001c-3.61 0-4.713-.966-6.793-1.555-2.398 1.047-4.631 2.4-6.652 4.01.807-.185 1.773-.309 3.061-.309h.011.01c5.188 0 5.193 1.997 10.375 2 5.183-.003 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.997 10.374 2 2.01-.001 3.236-.302 4.292-.669-1.487-1.316-3.106-2.485-4.834-3.489-4.65-.135-4.85-1.983-9.843-1.986-5.184.003-5.188 2-10.379 2"/><g fill="#2a5f9e"><path d="m47.578 10.202h-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.171 4.143.011 4.145 5.183-.002 5.188-1.999 10.377-1.999h.011.011c5.188 0 5.192 1.997 10.374 1.999 3.91-.002 4.876-1.137 7.341-1.695-.938-1.11-1.956-2.15-3.044-3.114-1.054.366-2.282.665-4.287.665h-.01"/><path d="m37.18 4.058h.011.011c4.996 0 5.198 1.846 9.831 1.986-4.423-2.567-9.556-4.04-15.04-4.04-4.265 0-8.803 4.055-5.194 4.057 5.182-.002 5.187-1.999 10.377-1.999"/></g><path fill="#fff" d="m47.578 14.347h-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.997-10.374-2-4.514.002-5.104 1.515-8.606 1.907-.974 1.325-1.838 2.735-2.587 4.215.245.013.499.021.771.021l.035.001c5.187-.001 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.997 10.375 2 5.183-.003 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.997 10.374 2 5.089-.003 5.199-1.922 10.11-1.993-.821-1.357-1.749-2.641-2.768-3.846-2.456.561-3.423 1.694-7.333 1.694h-.01"/><path fill="#2a5f9e" d="m47.578 18.492h-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.171 4.143.011 4.145 5.183-.002 5.188-1.999 10.377-1.999h.011.011c5.188 0 5.192 1.997 10.374 1.999 5.185-.002 5.189-1.999 10.382-1.999h.005.005l.031.001c.685.001 1.274.033 1.8.087-.597-1.47-1.301-2.884-2.112-4.227-4.899.074-5.01 1.993-10.1 1.993h-.01"/><path fill="#fff" d="m57.965 20.638c-5.186.001-5.188 2-10.377 2l-.01-.001-.011.001c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2l-.01-.001-.011.001c-5.188 0-5.193-1.997-10.374-2-5.185.003-5.189 2-10.382 2h-.005-.005l-.03-.001c-.978-.002-1.769-.064-2.443-.167-.418 1.248-.758 2.531-1.01 3.846.89.268 1.955.463 3.453.466l.035.001c5.187-.001 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.997 10.375 2 5.183-.003 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.997 10.374 2 5.185-.003 5.189-2 10.382-2h.005.005l.031.001c1.362.003 2.36.124 3.189.306-.352-1.491-.813-2.939-1.378-4.336-.531-.07-1.125-.113-1.812-.114l-.036-.002"/><path fill="#2a5f9e" d="m57.965 24.782c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.171 4.143.011 4.145 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.001c1.762.003 2.915.205 3.88.479-.123-1.441-.35-2.853-.669-4.229-.842-.231-1.848-.394-3.211-.396h-.036"/><path fill="#fff" d="m57.965 28.928c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.997-10.374-2-5.185.003-5.189 2-10.382 2h-.005-.005-.03c-1.809-.004-2.977-.215-3.957-.5-.026.519-.041 1.044-.041 1.572 0 .832.043 1.653.109 2.465.977.338 2.139.604 3.889.607h.035c5.187 0 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.998 10.375 2 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.002c1.809.004 2.978.215 3.957.5.026-.521.041-1.045.041-1.574 0-.83-.043-1.65-.109-2.463-.978-.338-2.14-.605-3.89-.608h-.036"/><path fill="#2a5f9e" d="m57.965 33.07c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.996-10.374-2-5.184.004-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.996-10.374-2-5.185.004-5.189 2-10.382 2h-.005-.005-.03c-1.762-.004-2.915-.205-3.88-.479.124 1.441.35 2.852.67 4.229.841.23 1.847.393 3.21.395l.035.002c5.187-.002 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.996 10.375 2 5.183-.004 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.996 10.374 2 5.185-.004 5.189-2 10.382-2h.005.005.031c1.521.004 2.587.154 3.471.371.239-1.27.403-2.568.478-3.889-.99-.348-2.164-.625-3.948-.627l-.038-.002"/><path fill="#fff" d="m57.965 37.22c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.998-10.374-2-5.184.002-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.998-10.374-2-5.185.002-5.189 2-10.382 2h-.005-.005l-.03-.002c-1.362-.002-2.359-.123-3.189-.305.353 1.492.813 2.939 1.379 4.336.53.07 1.124.113 1.811.115h.035c5.187-.002 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.998 10.375 2 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.002c.978 0 1.769.064 2.444.166.418-1.248.757-2.531 1.01-3.846-.891-.268-1.956-.463-3.454-.467h-.038"/><path fill="#2a5f9e" d="m57.965 41.36c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.996-10.374-2-5.184.004-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.996-10.374-2-5.185.004-5.189 2-10.382 2h-.005-.005-.03c-.685-.002-1.273-.033-1.8-.088.597 1.469 1.301 2.883 2.112 4.227 4.898-.074 5.01-1.994 10.1-1.994h.011.01c5.188 0 5.193 1.998 10.375 2 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.002c.273 0 .529.006.774.016.642-1.268 1.195-2.586 1.654-3.949-.676-.129-1.464-.211-2.429-.211l-.036-.003"/><path fill="#fff" d="m57.965 45.508c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.996-10.374-2-5.184.004-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.996-10.374-2-5.089.004-5.199 1.922-10.11 1.994.82 1.357 1.749 2.641 2.767 3.846 2.456-.561 3.423-1.693 7.332-1.693h.011.01c5.188 0 5.193 1.996 10.375 1.998 5.183-.002 5.188-1.998 10.377-1.998h.011.011c5.188 0 5.192 1.996 10.374 1.998 4.514-.002 5.104-1.514 8.606-1.906.975-1.326 1.84-2.736 2.589-4.215-.246-.014-.5-.021-.772-.021l-.037-.003"/><path fill="#2a5f9e" d="m47.578 51.652l-.011.002c-5.188 0-5.192-1.998-10.374-2-5.184.002-5.188 2-10.378 2l-.01-.002-.011.002c-5.188 0-5.193-1.998-10.374-2-3.91.002-4.876 1.137-7.34 1.695.938 1.109 1.955 2.15 3.043 3.113 1.054-.365 2.282-.664 4.286-.664h.011.01c5.188 0 5.193 1.996 10.375 2 5.183-.004 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.996 10.374 2 1.295-.002 2.268-.127 3.078-.314 2.086-1.658 3.947-3.586 5.527-5.736-3.489.395-4.082 1.906-8.596 1.906l-.009-.002"/><path fill="#fff" d="m47.578 55.799h-.011c-5.188 0-5.192-1.998-10.374-2-5.184.002-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.998-10.374-2-2.01.002-3.236.301-4.292.668 1.487 1.316 3.106 2.486 4.835 3.49 4.649.135 4.849 1.984 9.842 1.986 5.183-.002 5.188-2 10.377-2h.011.011c3.61 0 4.713.967 6.793 1.555 2.398-1.047 4.631-2.4 6.653-4.01-.808.186-1.774.309-3.063.309h-.009"/><path fill="#2a5f9e" d="m26.815 59.943h-.01-.011c-4.996 0-5.198-1.846-9.83-1.986 4.422 2.566 9.555 4.04 15.04 4.04 4.264 0 8.316-.895 11.989-2.498-2.086-.588-3.188-1.557-6.796-1.559-5.183.004-5.187 2-10.378 2"/><path fill="#75a843" d="m54.44 24.646l3.938.054c-.997-1.765-4.337-1.864-7-1.432 1.676-.532 3.74-1.111 4.067-1.175-.827-.61-4.286-2.753-8.689 1.605l-.07.002c-4.402-4.363-7.866-2.218-8.693-1.607.327.064 2.392.644 4.071 1.175-2.668-.433-6.01-.333-7.01 1.432l3.938-.054c-1.646.788-2.544.869-2.784 2.805.095-.039 2.14-.583 4.237-1.136-1.143.569-2.16 1.262-2.623 1.972 1.865.147 3.508-.358 4.75-.954-.77.989-1.25 2.067-1.18 2.689.927-.165 1.883-.959 2.665-1.793-.476 1.825-.438 3.687.087 4.444.766-.592 1.32-1.613 1.725-2.71l-.053 1.067h1.65l-.066-1.511c.414 1.256 1.018 2.484 1.883 3.154.525-.757.563-2.619.092-4.444.777.834 1.733 1.628 2.66 1.793.074-.622-.41-1.7-1.18-2.689 1.242.596 2.885 1.101 4.75.954-.463-.709-1.48-1.403-2.619-1.972 2.094.552 4.139 1.097 4.237 1.136-.244-1.936-1.141-2.02-2.787-2.805"/><path fill="#c94747" d="m45.39 28.23h2.661v21.761h-2.661z"/><path fill="#f1bf31" d="m40.33 42.12l2.183 2.316 8.143-.008 2.21-2.309.233-3.402-5.308-1.623.464-.412-1.658-1.025-1.656 1.025.464.412-4.778 1.189-.297 3.837m11.509-2.803l-1.341 1.967-1.334-.477-1.585-.258.016-2.947 4.244 1.715m-10.483 0l4.221-1.686.039 2.918-1.585.258-1.334.477-1.341-1.967"/><path fill="#2a5f9e" d="m11 11h21v21h-21z"/><g fill="#fff"><path d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.011C3.088,22.869,2,27.306,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m21.876 5.906l-.003.006.003-.006"/><path d="m21.871 5.918l-.036.079.036-.079"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m26.8 6.1c-3.6 0-4.7-1-6.8-1.6-2.4 1-4.6 2.4-6.7 4 .8-.2 1.8-.3 3.1-.3 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 2 0 3.2-.3 4.3-.7-1.5-1.3-3.1-2.5-4.9-3.5-4.7-.1-4.8-2-9.8-2-5.2.1-5.2 2.1-10.4 2.1" fill="#fff"/><g fill="#2a5f9e"><path d="m47.6 10.2c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2 4.1 0 4.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 3.9 0 4.9-1.1 7.3-1.7-.9-1.1-2-2.1-3-3.1-1.1.4-2.3.7-4.3.7"/><path d="m37.2 4.1c5 0 5.2 1.8 9.9 2-4.4-2.6-9.6-4-15-4-4.3 0-8.8 4.1-5.2 4.1 5.1-.1 5.1-2.1 10.3-2.1"/></g><path d="m47.6 14.3c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-4.5 0-5.1 1.5-8.6 1.9-1 1.3-1.8 2.7-2.6 4.2.2 0 .5 0 .8 0 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.1 0 5.2-1.9 10.1-2-.8-1.4-1.7-2.6-2.8-3.8-2.4.6-3.4 1.7-7.3 1.7" fill="#fff"/><path d="m47.6 18.5c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2 4.1 0 4.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 .7 0 1.3 0 1.8.1-.6-1.5-1.3-2.9-2.1-4.2-4.9.1-5 2-10.1 2" fill="#2a5f9e"/><path d="m58 20.6c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1 0-1.8-.1-2.4-.2-.4 1.2-.8 2.5-1 3.8.9.3 2 .5 3.5.5 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.4 0 2.4.1 3.2.3-.4-1.5-.8-2.9-1.4-4.3-.6 0-1.2-.1-1.9-.1" fill="#fff"/><path d="m58 24.8c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2 4.1 0 4.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.8 0 2.9.2 3.9.5-.1-1.4-.3-2.9-.7-4.2-.8-.3-1.8-.4-3.2-.4" fill="#2a5f9e"/><path d="m58 28.9c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1.8 0-3-.2-4-.5 0 .5 0 1 0 1.6 0 .8 0 1.7.1 2.5 1 .3 2.1.6 3.9.6 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.8 0 3 .2 4 .5 0-.5 0-1 0-1.6 0-.8 0-1.6-.1-2.5-1-.3-2.1-.6-3.9-.6" fill="#fff"/><path d="m58 33.1c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1.8 0-2.9-.2-3.9-.5.1 1.4.3 2.9.7 4.2.8.2 1.8.4 3.2.4 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.5 0 2.6.2 3.5.4.2-1.3.4-2.6.5-3.9-1-.3-2.2-.6-4-.6" fill="#2a5f9e"/><path d="m58 37.2c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1.4 0-2.4-.1-3.2-.3.4 1.5.8 2.9 1.4 4.3.5.1 1.1.1 1.8.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1 0 1.8.1 2.4.2.4-1.2.8-2.5 1-3.8-.8-.3-1.9-.5-3.4-.5" fill="#fff"/><path d="m58 41.4c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-.7 0-1.3 0-1.8-.1.6 1.5 1.3 2.9 2.1 4.2 4.9-.1 5-2 10.1-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 .3 0 .5 0 .8 0 .6-1.3 1.2-2.6 1.7-3.9-.7-.2-1.5-.2-2.5-.2" fill="#2a5f9e"/><path d="m58 45.5c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.1 0-5.2 1.9-10.1 2 .8 1.4 1.7 2.6 2.8 3.8 2.5-.6 3.4-1.7 7.3-1.7 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 4.5 0 5.1-1.5 8.6-1.9 1-1.3 1.8-2.7 2.6-4.2-.3 0-.5 0-.8 0" fill="#fff"/><path d="m47.6 51.7c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-3.9 0-4.9 1.1-7.3 1.7.9 1.1 2 2.2 3 3.1 1.1-.4 2.3-.7 4.3-.7 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 1.3 0 2.3-.1 3.1-.3 2.1-1.7 3.9-3.6 5.5-5.7-3.5.3-4.1 1.9-8.6 1.9" fill="#2a5f9e"/><path d="m47.6 55.8c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-2 0-3.2.3-4.3.7 1.5 1.3 3.1 2.5 4.8 3.5 4.6.1 4.8 2 9.8 2 5.2 0 5.2-2 10.4-2 3.6 0 4.7 1 6.8 1.6 2.4-1 4.6-2.4 6.7-4-.8.1-1.7.2-3 .2" fill="#fff"/><path d="m26.8 59.9c-5 0-5.2-1.8-9.9-2 4.4 2.6 9.6 4 15 4 4.3 0 8.3-.9 12-2.5-2.1-.6-3.2-1.6-6.8-1.6-5.1.1-5.1 2.1-10.3 2.1" fill="#2a5f9e"/><path d="m54.4 24.6l3.9.1c-1-1.8-4.3-1.9-7-1.4 1.7-.5 3.7-1.1 4.1-1.2-.8-.6-4.3-2.8-8.7 1.6h-.1c-4.4-4.4-7.9-2.2-8.7-1.6.3.1 2.4.6 4.1 1.2-2.7-.4-6-.3-7 1.4l3.9-.1c-1.6.8-2.5.9-2.8 2.8.1 0 2.1-.6 4.2-1.1-1.1.6-2.2 1.3-2.6 2 1.9.1 3.5-.4 4.8-1-.8 1-1.2 2.1-1.2 2.7.9-.2 1.9-1 2.7-1.8-.5 1.8-.4 3.7.1 4.4.8-.6 1.3-1.6 1.7-2.7v1.1h1.7l-.1-1.5c.4 1.3 1 2.5 1.9 3.2.5-.8.6-2.6.1-4.4.8.8 1.7 1.6 2.7 1.8.1-.6-.4-1.7-1.2-2.7 1.2.6 2.9 1.1 4.8 1-.5-.7-1.5-1.4-2.6-2 2.1.6 4.1 1.1 4.2 1.1-.3-2-1.2-2.1-2.9-2.9" fill="#75a843"/><path fill="#c94747" d="m45.4 28.2h2.7v21.8h-2.7z"/><path d="m40.3 42.1l2.2 2.3h8.1l2.2-2.3.2-3.4-5.3-1.6.5-.4-1.7-1-1.7 1 .5.4-4.8 1.2-.2 3.8m11.5-2.8l-1.3 2-1.3-.5-1.6-.3v-2.9l4.2 1.7m-10.4 0l4.2-1.7v2.9l-1.6.3-1.3.5-1.3-2" fill="#f1bf31"/><path fill="#2a5f9e" d="m11 11h21v21h-21z"/><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ef.svg
index 61f0778..f4ae5ea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M11.005,32v21.421C16.416,58.725,23.824,62,32,62c16.568,0,30-13.432,30-30H11.005z"/><path fill="#42ade2" d="M11.005,32H62C62,15.432,48.568,2,32,2c-8.176,0-15.584,3.275-20.995,8.579V32z"/><path fill="#f9f9f9" d="M11.005,10.578C5.45,16.023,2,23.607,2,32s3.45,15.977,9.006,21.422L32.427,32L11.005,10.578z"/><path fill="#c94747" d="m14 35.716l4.323 3.284-1.63-5.342 4.307-3.408h-5.338l-1.662-5.25-1.615 5.25h-5.385l4.308 3.408-1.632 5.342z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11 32v21.4c5.4 5.3 12.8 8.6 21 8.6 16.6 0 30-13.4 30-30h-51" fill="#83bf4f"/><path d="m11 32h51c0-16.6-13.4-30-30-30-8.2 0-15.6 3.3-21 8.6 0 0 0 21.4 0 21.4" fill="#42ade2"/><path d="M11,10.6C5.4,16,2,23.6,2,32s3.4,16,9,21.4L32.4,32L11,10.6z" fill="#f9f9f9"/><path fill="#c94747" d="m14 35.7l4.3 3.3-1.6-5.3 4.3-3.5h-5.3l-1.7-5.2-1.6 5.2h-5.4l4.3 3.5-1.6 5.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f0.svg
index 4d794eb..fd2d704 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m61.18 25c-3.156-13.19-15.01-23-29.17-23-.335 0-.667.015-1 .025v22.975h30.17"/><path d="M17.011,6.023C9.993,10.084,4.777,16.902,2.84,25h14.17V6.023z"/><path d="M2.84,39c1.937,8.098,7.153,14.916,14.17,18.977V39H2.84z"/><path d="m31.01 61.975c.333.011.665.025 1 .025 14.157 0 26.02-9.81 29.17-23h-30.17v22.975"/></g><path fill="#fff" d="m61.18 25h-30.17v-22.975c-5.09.167-9.857 1.601-14 3.998v18.977h-14.171c-.537 2.247-.83 4.589-.83 7s.292 4.754.83 7h14.17v18.977c4.143 2.397 8.91 3.831 14 3.998v-22.975h30.17c.537-2.246.829-4.589.829-7s-.291-4.753-.828-7"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m61.2 25c-3.2-13.2-15-23-29.2-23-.3 0-.7 0-1 0v23h30.2"/><path d="m17 6c-7 4.1-12.2 10.9-14.2 19h14.2v-19"/><path d="M2.8,39C4.8,47.1,10,53.9,17,58V39H2.8z"/><path d="m31 62c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2v23"/></g><path d="m61.2 25h-30.2v-23c-5.1.2-9.9 1.6-14 4v19h-14.2c-.5 2.2-.8 4.6-.8 7s.3 4.8.8 7h14.2v19c4.1 2.4 8.9 3.8 14 4v-23h30.2c.5-2.2.8-4.6.8-7s-.3-4.8-.8-7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f2.svg
index 9771fce..27fc817 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f2.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="M40.939,3.376H23.06C13.706,6.295,6.312,13.653,3.375,23v18c2.937,9.348,10.331,16.705,19.685,19.625H41
- c9.347-2.936,16.705-10.33,19.624-19.685V23C57.688,13.653,50.294,6.295,40.939,3.376z"/><path fill="#ffe62e" d="m23 60.63c1.924.604 3.931 1.02 6 1.226v-59.701c-2.069.205-4.076.621-6 1.226v57.25"/><path fill="#3e4347" d="m29 61.851c.986.098 1.987.149 3 .149s2.01-.051 3-.149v-59.701c-.987-.097-1.987-.15-3-.15s-2.01.053-3 .15v59.701"/><path fill="#fff" d="m35 61.851c2.069-.206 4.076-.621 6-1.226v-57.25c-1.924-.604-3.931-1.021-6-1.226v59.701"/><path fill="#ffe62e" d="m2.149 29h59.7c-.205-2.068-.621-4.076-1.226-6h-57.25c-.604 1.924-1.02 3.932-1.226 6"/><path fill="#3e4347" d="m2 32c0 1.014.052 2.01.149 3h59.7c.099-.986.15-1.986.15-3 0-1.012-.052-2.01-.15-3h-59.7c-.097.987-.149 1.988-.149 3"/><path fill="#fff" d="m3.375 41h57.25c.604-1.924 1.021-3.93 1.226-6h-59.7c.205 2.07.621 4.076 1.225 6"/><circle fill="#c94747" cx="32" cy="32" r="15"/><g fill="#699635"><path d="m32 21.572l1.44 1.094-.543-1.779 1.433-1.104-1.775-.006-.555-1.777-.556 1.777-1.778.006 1.434 1.104-.542 1.779z"/><path d="m26.786 22.969l1.795.231-1.361-1.273.692-1.673-1.544.886-1.368-1.264.408 1.817-1.538.895 1.796.236.414 1.815z"/><path d="m22.968 26.787l1.671-.697-1.816-.422-.238-1.797-.894 1.539-1.816-.41 1.265 1.37-.886 1.543 1.672-.693 1.274 1.363z"/><path d="m21.571 32l1.095-1.441-1.78.541-1.104-1.432-.005 1.779-1.777.553 1.777.557.006 1.783 1.103-1.442 1.78.545z"/><path d="m22.971 37.22l.229-1.801-1.274 1.362-1.672-.691.886 1.543-1.264 1.367 1.816-.406.896 1.536.236-1.8 1.816-.413z"/><path d="m26.787 41.03l-.707-1.67-.413 1.82-1.797.24 1.539.89-.409 1.82 1.369-1.265 1.543.882-.692-1.667 1.363-1.275z"/><path d="m32 42.43l-1.441-1.1.541 1.79-1.433 1.1 1.78.01.553 1.77.557-1.77 1.773-.01-1.432-1.1.545-1.79z"/><path d="m37.21 41.03l-1.792-.225 1.363 1.265-.691 1.678 1.542-.885 1.368 1.267-.407-1.82 1.537-.9-1.8-.23-.413-1.82z"/><path d="m41.03 37.21l-1.67.706 1.82.414.23 1.8.9-1.538 1.82.408-1.266-1.368.882-1.542-1.676.691-1.265-1.363z"/><path d="m42.43 32l-1.1 1.441 1.78-.543 1.11 1.432v-1.775l1.78-.555-1.78-.555v-1.779l-1.11 1.434-1.78-.543z"/><path d="m41.03 26.785l-.226 1.797 1.266-1.362 1.677.692-.884-1.543 1.267-1.369-1.82.408-.9-1.537-.23 1.796-1.82.413z"/><path d="m37.21 22.969l.705 1.67.415-1.815 1.8-.238-1.538-.894.408-1.817-1.369 1.265-1.541-.886.69 1.673-1.362 1.273z"/></g><path fill="#ffe62e" d="m36 38h-6.473c0 0 .939-3.367 6.473 0"/><path fill="#c28fef" d="m31.82 26.16c0 0-7.313 8.201 4.18 11.838l-4.18-11.838"/><path fill="#699635" d="m31.82 26.16c0 0 4.18 1.014 4.18 11.838 0 0-4.18-2.379-4.18-11.838"/><path fill="#ffe62e" d="m29.527 26.385c0 0-1.438.281-1.527 2.198 0 0 1.346-.726 2.65-.726 1.304 0-1.123-1.472-1.123-1.472"/><path fill="#c28fef" d="m29.527 26.385c0 0 .878 2.881 4.383 1.637 0-.001-1.551-3.079-4.383-1.637"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M40.9,3.4H23.1C13.7,6.3,6.3,13.7,3.4,23v18c2.9,9.3,10.3,16.7,19.7,19.6H41c9.3-2.9,16.7-10.3,19.6-19.7V23
+ C57.7,13.7,50.3,6.3,40.9,3.4z" fill="#699635"/><path d="m23 60.6c1.9.6 3.9 1 6 1.2v-59.6c-2.1.2-4.1.6-6 1.2v57.2" fill="#ffe62e"/><path d="m29 61.9c1 .1 2 .1 3 .1s2-.1 3-.1v-59.7c-1-.1-2-.2-3-.2s-2 .1-3 .2v59.7" fill="#3e4347"/><path d="m35 61.9c2.1-.2 4.1-.6 6-1.2v-57.3c-1.9-.6-3.9-1-6-1.2v59.7" fill="#fff"/><path d="m2.1 29h59.7c-.2-2.1-.6-4.1-1.2-6h-57.2c-.6 1.9-1 3.9-1.3 6" fill="#ffe62e"/><path d="m2 32c0 1 .1 2 .1 3h59.7c.1-1 .2-2 .2-3 0-1-.1-2-.2-3h-59.7c0 1-.1 2-.1 3" fill="#3e4347"/><path d="m3.4 41h57.2c.6-1.9 1-3.9 1.2-6h-59.6c.2 2.1.6 4.1 1.2 6" fill="#fff"/><circle cx="32" cy="32" r="15" fill="#c94747"/><g fill="#699635"><path d="m32 21.6l1.4 1.1-.5-1.8 1.4-1.1h-1.7l-.6-1.8-.6 1.8h-1.7l1.4 1.1-.5 1.8z"/><path d="m26.8 23l1.8.2-1.4-1.3.7-1.6-1.5.8-1.4-1.2.4 1.8-1.5.9 1.8.2.4 1.8z"/><path d="m23 26.8l1.6-.7-1.8-.4-.2-1.8-.9 1.5-1.8-.4 1.2 1.4-.8 1.5 1.6-.7 1.3 1.4z"/><path d="m21.6 32l1.1-1.4-1.8.5-1.1-1.4v1.7l-1.8.6 1.8.6v1.7l1.1-1.4 1.8.5z"/><path d="m23 37.2l.2-1.8-1.3 1.4-1.6-.7.8 1.5-1.2 1.4 1.8-.4.9 1.5.2-1.8 1.8-.4z"/><path d="m26.8 41l-.7-1.6-.4 1.8-1.8.2 1.5.9-.4 1.8 1.4-1.2 1.5.8-.7-1.6 1.4-1.3z"/><path d="m32 42.4l-1.4-1.1.5 1.8-1.4 1.1h1.7l.6 1.8.6-1.8h1.7l-1.4-1.1.5-1.8z"/><path d="m37.2 41l-1.8-.2 1.4 1.3-.7 1.6 1.5-.8 1.4 1.2-.4-1.8 1.5-.9-1.8-.2-.4-1.8z"/><path d="m41 37.2l-1.6.7 1.8.4.2 1.8.9-1.5 1.8.4-1.2-1.4.8-1.5-1.6.7-1.3-1.4z"/><path d="m42.4 32l-1.1 1.4 1.8-.5 1.1 1.4v-1.7l1.8-.6-1.8-.6v-1.7l-1.1 1.4-1.8-.5z"/><path d="m41 26.8l-.2 1.8 1.3-1.4 1.6.7-.8-1.5 1.2-1.4-1.8.4-.9-1.5-.2 1.8-1.8.4z"/><path d="m37.2 23l.7 1.6.4-1.8 1.8-.2-1.5-.9.4-1.8-1.4 1.2-1.5-.8.7 1.6-1.4 1.3z"/></g><path d="m36 38h-6.5c0 0 1-3.4 6.5 0" fill="#ffe62e"/><path d="m31.8 26.2c0 0-7.3 8.2 4.2 11.8l-4.2-11.8" fill="#c28fef"/><path d="m31.8 26.2c0 0 4.2 1 4.2 11.8 0 0-4.2-2.4-4.2-11.8" fill="#699635"/><path d="m29.5 26.4c0 0-1.4.3-1.5 2.2 0 0 1.3-.7 2.6-.7 1.4 0-1.1-1.5-1.1-1.5" fill="#ffe62e"/><path d="m29.5 26.4c0 0 .9 2.9 4.4 1.6 0 0-1.5-3.1-4.4-1.6" fill="#c28fef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f4.svg
index ac859dc..133278c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="M38,2.602V26h23.399C59.014,14.246,49.755,4.987,38,2.602z"/><path d="M26,61.398V38H2.602C4.988,49.754,14.246,59.013,26,61.398z"/></g><g fill="#2a5f9e"><path d="M38,38v23.398C49.755,59.013,59.014,49.754,61.399,38H38z"/><path d="M2.602,26H26V2.602C14.246,4.987,4.988,14.246,2.602,26z"/></g><path fill="#f9f9f9" d="m61.4 26h-23.399v-23.398c-1.938-.394-3.945-.602-6-.602-2.055 0-4.061.208-6 .602v23.398h-23.398c-.394 1.938-.602 3.945-.602 6s.208 4.062.601 6h23.399v23.398c1.939.395 3.946.602 6 .602 2.054 0 4.061-.207 6-.602v-23.398h23.399c.394-1.938.601-3.945.601-6s-.207-4.062-.601-6"/><path fill="#699635" d="m28.992 29.332c0 0-.419-.119-.753-.114l.012-.017c.264-.404.351-1.159.351-1.159s-.652.384-.918.785c-.139-.292-.392-.59-.392-.59s-.309.346-.262.683c.047.336.475.838.475.838s.635.185.964.09c.329-.095.523-.516.523-.516"/><path fill="#83bf4f" d="m28.387 30.3c0 0-.437-.008-.757.083l.007-.02c.149-.458.037-1.21.037-1.21s-.53.539-.683.994c-.21-.245-.533-.469-.533-.469s-.206.415-.073.727c.133.313.677.688.677.688s.661.014.954-.161c.294-.176.371-.632.371-.632"/><path fill="#699635" d="m28.05 31.385c0 0-.424.104-.709.276l.001-.021c.026-.481-.279-1.179-.279-1.179s-.372.656-.401 1.135c-.266-.183-.636-.316-.636-.316s-.092.454.118.72c.21.269.833.491.833.491s.644-.157.88-.402c.239-.242.193-.704.193-.704"/><path fill="#83bf4f" d="m28.02 32.521c0 0-.381.21-.613.449l-.004-.021c-.099-.471-.576-1.065-.576-1.065s-.188.729-.092 1.198c-.303-.108-.696-.142-.696-.142s.029.461.302.667c.272.204.933.259.933.259s.58-.316.745-.612c.165-.299.001-.733.001-.733"/><path fill="#699635" d="m28.28 33.629c0 0-.314.301-.475.59l-.01-.018c-.22-.43-.834-.882-.834-.882s.007.752.223 1.183c-.322-.027-.71.041-.71.041s.149.438.466.566c.317.128.968.011.968.011s.479-.454.561-.784c.081-.33-.189-.707-.189-.707"/><path fill="#83bf4f" d="m28.816 34.631c0 0-.224.371-.305.693l-.015-.016c-.325-.359-1.036-.637-1.036-.637s.203.725.524 1.084c-.318.057-.674.223-.674.223s.257.385.596.428c.34.042.939-.238.939-.238s.342-.563.336-.902c-.006-.34-.365-.635-.365-.635"/><path fill="#699635" d="m29.599 35.462c0 0-.119.415-.114.747l-.018-.012c-.406-.263-1.167-.35-1.167-.35s.386.648.79.913c-.292.138-.594.389-.594.389s.35.306.689.259c.338-.047.844-.471.844-.471s.186-.631.09-.958c-.096-.326-.52-.517-.52-.517"/><path fill="#83bf4f" d="m30.571 36.06c0 0-.007.433.085.751l-.02-.006c-.462-.148-1.219-.037-1.219-.037s.542.526 1 .679c-.248.208-.474.527-.474.527s.418.205.734.073c.315-.132.691-.672.691-.672s.015-.656-.162-.947-.635-.368-.635-.368"/><path fill="#699635" d="m35.09 29.332c0 0 .419-.119.753-.114l-.012-.017c-.265-.404-.352-1.159-.352-1.159s.652.384.918.785c.139-.292.393-.59.393-.59s.308.346.26.683c-.045.336-.475.838-.475.838s-.635.185-.963.09-.522-.516-.522-.516"/><path fill="#83bf4f" d="m35.695 30.3c0 0 .437-.008.757.083l-.007-.02c-.15-.458-.037-1.21-.037-1.21s.53.539.682.994c.211-.245.534-.469.534-.469s.206.415.073.727c-.133.313-.677.688-.677.688s-.661.014-.954-.161c-.295-.176-.371-.632-.371-.632"/><path fill="#699635" d="m36.03 31.385c0 0 .424.104.71.276l-.002-.021c-.024-.481.28-1.179.28-1.179s.372.656.4 1.135c.266-.183.636-.316.636-.316s.092.454-.118.72c-.21.269-.833.491-.833.491s-.644-.157-.88-.402c-.237-.242-.193-.704-.193-.704"/><path fill="#83bf4f" d="m36.07 32.521c0 0 .381.21.613.449l.004-.021c.1-.471.576-1.065.576-1.065s.188.729.092 1.198c.303-.108.697-.142.697-.142s-.03.461-.303.667c-.273.204-.934.259-.934.259s-.58-.316-.744-.612c-.165-.299-.001-.733-.001-.733"/><path fill="#699635" d="m35.805 33.629c0 0 .314.301.477.59l.01-.018c.22-.43.834-.882.834-.882s-.008.752-.223 1.183c.321-.027.709.041.709.041s-.148.438-.465.566c-.318.128-.969.011-.969.011s-.479-.454-.561-.784.188-.707.188-.707"/><path fill="#83bf4f" d="m35.27 34.631c0 0 .224.371.306.693l.014-.016c.324-.359 1.035-.637 1.035-.637s-.203.725-.524 1.084c.318.057.675.223.675.223s-.257.385-.596.428c-.342.042-.939-.238-.939-.238s-.343-.563-.336-.902c.004-.34.365-.635.365-.635"/><path fill="#699635" d="m34.482 35.462c0 0 .121.415.115.747l.018-.012c.406-.263 1.167-.35 1.167-.35s-.386.648-.789.913c.292.138.594.389.594.389s-.351.306-.688.259c-.339-.047-.844-.471-.844-.471s-.186-.631-.09-.958c.094-.326.517-.517.517-.517"/><path fill="#83bf4f" d="m33.512 36.06c0 0 .007.433-.086.751l.02-.006c.463-.148 1.221-.037 1.221-.037s-.543.526-1 .679c.247.208.473.527.473.527s-.417.205-.733.073c-.314-.132-.691-.672-.691-.672s-.015-.656.163-.947c.175-.291.635-.368.635-.368"/><path fill="#fff" d="m29.05 29.06c.008.052.004 4.389.004 4.837 0 .429.005.701.208.974.168.234.449.428.725.492.194.039.911.023 1.16.023.553-.025.619.098.829.371.237-.385.499-.391.988-.371.25 0 .783.02 1-.027.265-.063.472-.189.643-.401.28-.321.265-.723.265-1.144v-4.572c0-.207-.024-.155.081-.262l.689-.723-7.359.003.763.8"/><path fill="#002d62" d="m31.347 31.21v-2.95h-3.047l.76.79.01 2.16z"/><g fill="#ce1126"><path d="m32.566 31.21v-2.95h3.101l-.791.84v2.11z"/><path d="m31.347 32.432h-2.303l-.006 1.861c.104.813.705 1.09 1.245 1.088.365.004.489-.002 1.064-.007v-2.942"/></g><g fill="#002d62"><path d="m32.566 32.432h2.317l-.007 1.861c-.055.807-.706 1.09-1.245 1.088l-1.065-.007v-2.942"/><path d="m30.22 25.934c-.924-.016-1.857.195-2.634.676-.357.221-.44.295-.244.651l-.451.16c-.296.112-.599.226-.851.377-.154.092-.218.161-.335.283l.74-.057-.108.163c-.126.182-.205.327-.315.519.21-.142.399-.275.641-.393.53-.267 1.482-.274 1.873-.743.1-.119.039-.189-.044-.383.29-.096.398-.163.749-.243.85-.189 1.435.035 1.845-.065.128-.032.253-.103.262-.237l-.061-.429 1.379-.001c.002.242-.232.554.196.666.388.101 1.169-.121 1.846.067l.749.243-.072.18.026.195c.073.083.177.167.288.23.219.126.506.205.776.271.78.189.853.239 1.452.64-.039-.117-.324-.533-.42-.68l.737.058c-.126-.193-.515-.397-.739-.485l-.898-.328c.082-.156.15-.286.068-.416-.125-.189-.873-.557-1.063-.608-.324-.088-.664-.16-.982-.211-.32-.051-.935-.095-.935-.095-.044-.046.085-.29-.112-.46-.115-.092-.283-.124-.455-.142-.685-.065-1.617-.046-2.31 0-.2.012-.341.033-.455.142-.138.129-.156.209-.143.455"/></g><path fill="#ce1126" d="m28.98 36.785c-.372.122-.62.207-.976.416-.136-.204-.322-.507-.453-.682-.074-.095-.177-.197-.305-.262-.202-.094-.276-.065-.404.045l-.09-.172c-.181-.318-.371-.465-.573-.723l-.181-.213-.065-.064c.078.256.134.5.185.779-.111-.061-.214-.123-.33-.172-.087-.032-.309-.081-.417-.068l.131.117c.227.201.375.467.466.765.098.323.33.666.573.903.049.049.189.175.28.208.271.099.259-.005.358-.054.209.354.343.532.584.801.26.273.667.348 1.039.262.165-.041.268-.086.396-.159.482-.278.25-.495.193-.715.156-.049.77-.235.99-.276.776-.143 2.215-.162 3.136-.027.081.012 1.01.259 1.101.313-.066.153-.092.229-.082.398.016.156.15.238.27.308.127.073.23.118.396.159.161.037.333.045.498.021.347-.058.527-.257.676-.437.247-.281.323-.453.45-.65l.119.082.242-.029c.12-.044.194-.134.275-.212.256-.245.471-.563.574-.911.123-.408.293-.601.593-.865-.389.013-.522.118-.741.24l.082-.4c.024-.11.086-.273.099-.379-.177.188-.333.385-.49.559-.073.098-.156.18-.231.286-.155.24-.125.248-.186.327-.546-.304-.791.436-1.16.891-.687-.386-1.283-.507-2.09-.654-.18-.019-.342-.045-.49-.061-1.014-.119-2.13-.115-3.14.036-.521.065-.843.161-1.302.269"/><path fill="#eac102" d="m31.704 28.09v.657h-.664v.563h.664v2.364h.546v-2.364h.679v-.563h-.679v-.657z"/><path fill="#201b18" d="m29.917 32.19l2.676-1.564 1.467 2.107-2.83 1.819z"/><path fill="#c9c9c9" d="m30.24 31.666l2.259-1.315 1.233 1.779-2.384 1.531z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="M38,2.6V26h23.4C59,14.2,49.8,5,38,2.6z"/><path d="M26,61.4V38H2.6C5,49.8,14.2,59,26,61.4z"/></g><g fill="#2a5f9e"><path d="M38,38v23.4C49.8,59,59,49.8,61.4,38H38z"/><path d="M2.6,26H26V2.6C14.2,5,5,14.2,2.6,26z"/></g><path d="m61.4 26h-23.4v-23.4c-1.9-.4-3.9-.6-6-.6s-4.1.2-6 .6v23.4h-23.4c-.4 1.9-.6 3.9-.6 6s.2 4.1.6 6h23.4v23.4c1.9.4 3.9.6 6 .6s4.1-.2 6-.6v-23.4h23.4c.4-1.9.6-3.9.6-6s-.2-4.1-.6-6" fill="#f9f9f9"/><path d="m29 29.3c0 0-.4-.1-.8-.1.3-.4.4-1.2.4-1.2s-.7.4-.9.8c-.1-.3-.4-.6-.4-.6s-.3.4-.3.7c0 .3.5.8.5.8s.6.2 1 .1c.3 0 .5-.5.5-.5" fill="#699635"/><path d="m28.4 30.3c0 0-.4 0-.8.1.1-.5 0-1.2 0-1.2s-.5.5-.7 1c-.2-.2-.5-.5-.5-.5s-.2.4-.1.7c.1.3.7.7.7.7s.7 0 1-.2c.3-.1.4-.6.4-.6" fill="#83bf4f"/><path d="m28.1 31.4c0 0-.4.1-.7.3 0-.5-.3-1.2-.3-1.2s-.4.7-.4 1.1c-.3-.2-.6-.3-.6-.3s-.1.5.1.7c.2.3.8.5.8.5s.6-.2.9-.4c.2-.3.2-.7.2-.7" fill="#699635"/><path d="m28 32.5c0 0-.4.2-.6.4-.1-.5-.6-1.1-.6-1.1s-.2.7-.1 1.2c-.3 0-.7-.1-.7-.1s0 .5.3.7c.3.2.9.3.9.3s.6-.3.7-.6c.3-.3.1-.8.1-.8" fill="#83bf4f"/><path d="m28.3 33.6c0 0-.3.3-.5.6-.2-.4-.8-.9-.8-.9s0 .8.2 1.2c-.3 0-.7 0-.7 0s.1.4.5.6c.3.1 1 0 1 0s.5-.5.6-.8c-.1-.3-.3-.7-.3-.7" fill="#699635"/><path d="m28.8 34.6c0 0-.2.4-.3.7-.3-.4-1-.6-1-.6s.2.7.5 1.1c-.3.1-.7.2-.7.2s.3.4.6.4c.3 0 .9-.2.9-.2s.3-.6.3-.9c.1-.4-.3-.7-.3-.7" fill="#83bf4f"/><path d="m29.6 35.5c0 0-.1.4-.1.7-.4-.3-1.2-.3-1.2-.3s.4.6.8.9c-.3.1-.6.4-.6.4s.4.3.7.3c.3 0 .8-.5.8-.5s.2-.6.1-1c-.1-.3-.5-.5-.5-.5" fill="#699635"/><path d="m30.6 36.1c0 0 0 .4.1.8-.5-.1-1.2 0-1.2 0s.5.5 1 .7c-.2.2-.5.5-.5.5s.4.2.7.1c.3-.1.7-.7.7-.7s0-.7-.2-.9-.6-.5-.6-.5" fill="#83bf4f"/><path d="m35.1 29.3c0 0 .4-.1.8-.1-.3-.4-.4-1.2-.4-1.2s.7.4.9.8c.1-.3.4-.6.4-.6s.3.3.3.7c0 .3-.5.8-.5.8s-.6.2-1 .1-.5-.5-.5-.5" fill="#699635"/><path d="m35.7 30.3c0 0 .4 0 .8.1-.2-.5 0-1.2 0-1.2s.5.5.7 1c.2-.2.5-.5.5-.5s.2.4.1.7c-.1.3-.7.7-.7.7s-.7 0-1-.2c-.3-.1-.4-.6-.4-.6" fill="#83bf4f"/><path d="m36 31.4c0 0 .4.1.7.3 0-.5.3-1.2.3-1.2s.4.7.4 1.1c.3-.2.6-.3.6-.3s.1.5-.1.7c-.2.3-.8.5-.8.5s-.6-.2-.9-.4c-.2-.3-.2-.7-.2-.7" fill="#699635"/><path d="m36.1 32.5c0 0 .4.2.6.4.1-.5.6-1.1.6-1.1s.2.7.1 1.2c.3-.1.7-.1.7-.1s0 .5-.3.7c-.3.2-.9.3-.9.3s-.6-.3-.7-.6c-.3-.3-.1-.8-.1-.8" fill="#83bf4f"/><path d="m35.8 33.6c0 0 .3.3.5.6.2-.4.8-.9.8-.9s0 .8-.2 1.2c.3 0 .7 0 .7 0s-.1.4-.5.6c-.3.1-1 0-1 0s-.5-.5-.6-.8.3-.7.3-.7" fill="#699635"/><path d="m35.3 34.6c0 0 .2.4.3.7.3-.4 1-.6 1-.6s-.2.7-.5 1.1c.3.1.7.2.7.2s-.3.4-.6.4c-.3 0-.9-.2-.9-.2s-.3-.6-.3-.9c-.1-.4.3-.7.3-.7" fill="#83bf4f"/><path d="m34.5 35.5c0 0 .1.4.1.7.4-.3 1.2-.3 1.2-.3s-.4.6-.8.9c.3.1.6.4.6.4s-.4.3-.7.3c-.3 0-.8-.5-.8-.5s-.2-.6-.1-1c.1-.3.5-.5.5-.5" fill="#699635"/><path d="m33.5 36.1c0 0 0 .4-.1.8.5-.1 1.2 0 1.2 0s-.5.5-1 .7c.2.2.5.5.5.5s-.4.2-.7.1c-.3-.1-.7-.7-.7-.7s0-.7.2-.9c.2-.5.6-.5.6-.5" fill="#83bf4f"/><path d="m29 29.1c0 .1 0 4.4 0 4.8 0 .4 0 .7.2 1 .2.2.4.4.7.5.2 0 .9 0 1.2 0 .6 0 .6.1.8.4.2-.4.5-.4 1-.4.2 0 .8 0 1 0 .3-.1.5-.2.6-.4.3-.3.3-.7.3-1.1v-4.6c0-.2 0-.2.1-.3l.7-.7h-7.4l.8.8" fill="#fff"/><path fill="#002d62" d="m31.3 31.2v-2.9h-3l.8.8v2.1z"/><g fill="#ce1126"><path d="m32.6 31.2v-2.9h3.1l-.8.8v2.1z"/><path d="m31.3 32.4h-2.3v1.9c.1.8.7 1.1 1.2 1.1.4 0 .5 0 1.1 0v-3"/></g><g fill="#002d62"><path d="m32.6 32.4h2.3v1.9c-.1.8-.7 1.1-1.2 1.1h-1.1c0 0 0-3 0-3"/><path d="m30.2 25.9c-.9 0-1.9.2-2.6.7-.4.2-.4.3-.2.7l-.5.2c-.3.1-.6.2-.9.4-.2.1-.2.2-.3.3l.7-.1-.1.2c-.1.2-.2.3-.3.5.2-.1.4-.3.6-.4.5-.3 1.5-.3 1.9-.7.1-.1 0-.2 0-.4.3-.1.4-.2.7-.2.9-.2 1.4 0 1.8-.1.1 0 .3-.1.3-.2l-.1-.4h1.4c0 .2-.2.6.2.7.4.1 1.2-.1 1.8.1l.7.2-.1.2v.2c.1.1.2.2.3.2.2.1.5.2.8.3.8.2.9.2 1.5.6 0-.1-.3-.5-.4-.7l.7.1c-.1-.2-.5-.4-.7-.5l-.9-.3c.1-.2.2-.3.1-.4-.1-.2-.9-.6-1.1-.6-.3-.1-.7-.2-1-.2-.3-.1-.9-.1-.9-.1 0 0 .1-.3-.1-.5-.1-.1-.3-.1-.5-.1-.7-.1-1.6 0-2.3 0-.2 0-.3 0-.5.1 0-.1 0 0 0 .2"/></g><path d="m29 36.8c-.4.1-.6.2-1 .4-.1-.2-.3-.5-.5-.7-.1-.1-.2-.2-.3-.3-.2-.1-.3-.1-.4 0l-.1-.2c-.2-.3-.4-.5-.6-.7l-.1-.1-.1-.1c.1.3.1.5.2.8-.1-.1-.2-.1-.3-.2-.1 0-.3-.1-.4-.1l.1.1c.2.2.4.5.5.8.1.3.3.7.6.9 0 0 .2.2.3.2.3.1.3 0 .4-.1.2.4.3.5.6.8.3.3.7.3 1 .3.2 0 .3-.1.4-.2.5-.3.2-.5.2-.7.2 0 .8-.2 1-.3.8-.1 2.2-.2 3.1 0 .1 0 1 .3 1.1.3-.1.2-.1.2-.1.4 0 .2.2.2.3.3.1.1.2.1.4.2.2 0 .3 0 .5 0 .3-.1.5-.3.7-.4.2-.3.3-.5.5-.7l.1.1h.2c.1 0 .2-.1.3-.2.3-.2.5-.6.6-.9.1-.4.3-.6.6-.9-.4 0-.5.1-.7.2l.1-.4c0-.1.1-.3.1-.4-.2.2-.3.4-.5.6-.1.1-.2.2-.2.3-.2.2-.1.2-.2.3-.5-.3-.8.4-1.2.9-.7-.4-1.3-.5-2.1-.7-.2 0-.3 0-.5-.1-1-.1-2.1-.1-3.1 0-.7.3-1.1.4-1.5.5" fill="#ce1126"/><path fill="#eac102" d="m31.7 28.1v.6h-.7v.6h.7v2.4h.6v-2.4h.6v-.6h-.6v-.6z"/><path fill="#201b18" d="m29.9 32.2l2.7-1.6 1.5 2.1-2.9 1.9z"/><path fill="#c9c9c9" d="m30.2 31.7l2.3-1.3 1.2 1.7-2.4 1.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ff.svg
index d32d05c..081674e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m62 32c0-16.568-13.432-30-30-30v60c16.568 0 30-13.432 30-30"/><path fill="#699635" d="M2,32c0,16.568,13.432,30,30,30V2C15.432,2,2,15.432,2,32z"/><g fill="#ed4c5c"><path d="M40.652 39 40.641 33.644 46 32 40.641 30.355 40.652 25 37.35 29.34 32 27.674 35.32 32 32 36.33 37.35 34.659z"/><path d="m37.25 44c-6.553 0-11.865-5.373-11.865-12s5.313-12 11.865-12c2.509 0 4.834.789 6.75 2.133-2.719-3.146-6.714-5.133-11.17-5.133-8.191 0-14.83 6.715-14.83 15 0 8.283 6.639 15 14.83 15 4.456 0 8.451-1.988 11.17-5.135-1.916 1.346-4.241 2.135-6.75 2.135"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-16.6-13.4-30-30-30v60c16.6 0 30-13.4 30-30" fill="#f9f9f9"/><path d="M2,32c0,16.6,13.4,30,30,30V2C15.4,2,2,15.4,2,32z" fill="#699635"/><g fill="#ed4c5c"><path d="m40.7 39l-.1-5.4 5.4-1.6-5.4-1.6.1-5.4-3.3 4.3-5.4-1.6 3.3 4.3-3.3 4.3 5.4-1.6z"/><path d="m37.2 44c-6.6 0-11.9-5.4-11.9-12s5.3-12 11.9-12c2.5 0 4.8.8 6.8 2.1-2.7-3.1-6.7-5.1-11.2-5.1-8.2 0-14.8 6.7-14.8 15 0 8.3 6.6 15 14.8 15 4.5 0 8.5-2 11.2-5.1-1.9 1.3-4.2 2.1-6.8 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1e9.svg
new file mode 100644
index 0000000..e7085af
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1e9.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m37.7 18.1c2 .7 3.7 1.9 4.9 3.7 1 1.4 1.7 3 2.1 4.7s.6 3.3.6 4.8c0 3.9-.8 7.1-2.3 9.8-2.1 3.6-5.3 5.4-9.7 5.4h-12.6v-29h12.5c1.8 0 3.3.2 4.5.6m-11.1 4.4v18.9h5.6c2.9 0 4.9-1.4 6-4.2.6-1.5.9-3.4.9-5.5 0-3-.5-5.2-1.4-6.8-.9-1.6-2.8-2.4-5.5-2.4h-5.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e6.svg
index 7f25d66..0a39cf6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e6.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,32c0,5.885,1.701,11.369,4.628,16h50.745C60.299,43.369,62,37.885,62,32s-1.701-11.367-4.627-16H6.628
- C3.701,20.633,2,26.115,2,32z"/><g fill="#ed4c5c"><path d="M57.373,16C52.057,7.59,42.684,2,32,2C21.316,2,11.943,7.59,6.628,16H57.373z"/><path d="M6.628,48C11.943,56.41,21.316,62,32,62c10.684,0,20.057-5.59,25.374-14H6.628z"/></g><g fill="#c8b100"><path d="m9.242 28.711h3.2v1.764h-3.2z"/><path d="m9.198 41.895h3.285v1.654h-3.285z"/></g><path fill="#ed4c5c" d="m8.941 39.06c-.325.188-.546.379-.51.475.018.09.12.154.269.252.232.162.373.451.263.584.192-.154.313-.387.313-.645 0-.27-.128-.512-.335-.666"/><path fill="#fff" d="m9.668 30.457h2.334v11.434h-2.334z"/><g fill="#ed4c5c"><path d="m14.387 34.734c-.511-.211-1.375-.367-2.368-.4-.343.004-.725.035-1.119.102-1.396.232-2.459.789-2.375 1.244l.008.037-.531-1.223c-.094-.504 1.086-1.123 2.635-1.383.486-.08.961-.111 1.373-.107.99 0 1.852.127 2.371.32l.006 1.41"/><path d="m9.665 36.17c-.646-.047-1.089-.221-1.141-.49-.039-.217.18-.455.57-.672.174.02.37.043.573.043l-.002 1.119"/><path d="m12.01 35.3c.404.063.707.162.859.285l.014.025c.071.148-.283.463-.877.813l.004-1.123"/><path d="m8.216 38.38c-.063-.186.568-.555 1.461-.881.407-.146.744-.299 1.162-.482 1.238-.549 2.153-1.176 2.041-1.406l-.013-.023.169 1.184c.111.209-.726.828-1.866 1.375-.365.176-1.136.459-1.5.588-.65.225-1.298.65-1.238.809l-.216-1.164"/></g><g fill="#c8b100"><path d="m30.656 28.711h3.2v1.764h-3.2z"/><path d="m30.615 41.895h3.286v1.654h-3.286z"/></g><path fill="#ed4c5c" d="m34.16 39.06c.326.188.547.379.512.475-.018.09-.121.154-.27.252-.232.162-.373.451-.264.584-.191-.154-.313-.387-.313-.645.001-.27.13-.512.335-.666"/><path fill="#fff" d="m31.09 30.457h2.334v11.434h-2.334z"/><g fill="#ed4c5c"><path d="m28.71 34.734c.512-.211 1.377-.367 2.371-.4.34.004.723.035 1.117.102 1.395.232 2.459.789 2.375 1.244l-.008.037.531-1.223c.094-.504-1.086-1.123-2.635-1.383-.486-.08-.961-.111-1.371-.107-.992 0-1.854.127-2.373.32l-.007 1.41"/><path d="m33.434 36.17c.648-.047 1.09-.221 1.141-.49.039-.217-.18-.455-.57-.672-.174.02-.371.043-.574.043l.003 1.119"/><path d="m31.09 35.3c-.404.063-.707.162-.859.285l-.014.025c-.072.148.283.463.877.813l-.004-1.123"/><path d="m34.883 38.38c.063-.186-.568-.555-1.461-.881-.408-.146-.745-.299-1.163-.482-1.238-.549-2.154-1.176-2.039-1.406l.01-.023-.166 1.184c-.113.209.725.828 1.863 1.375.365.176 1.137.459 1.5.588.652.225 1.299.65 1.24.809l.216-1.164"/><path d="m21.457 22.277c1.916 0 5.779.438 7.191 1.768-1.486 3.602-3.924 2.123-7.16 2.123-3.245-.002-5.681 1.482-7.174-2.123 1.407-1.318 5.236-1.768 7.143-1.768"/></g><g fill="#c8b100"><path d="m26.445 26.28c-1.244-.695-2.99-.844-4.92-.848-1.928.004-3.661.152-4.906.848l.446 1.689c1.126.34 2.704.549 4.463.551 1.762-.002 3.338-.211 4.463-.551l.454-1.689"/><path d="m28.12 22.05c-.381-.332-1.156-.553-1.938-.553-.311 0-.607.033-.881.096.041.045-.551-.83-1.957-.83-.494 0-.947.123-1.297.326l-.01-.059c-.051-.225-.268-.393-.521-.393s-.48.168-.531.393l-.008.057c-.35-.203-.803-.324-1.295-.324-1.375 0-1.997.875-1.957.83-.274-.063-.571-.096-.882-.096-4.617 0-2.253 3.107-2.253 3.107l.378-.617c-1.068-1.4-.141-2.25 1.875-2.25.254 0 .498.023.725.068-.689 1.025.6 1.887.6 1.887l.299-.49c-.727-.461-.785-2.201 1.215-2.201.496 0 .945.135 1.262.352-.01.109-.104 1.455-.207 1.727l.779.738.77-.738c-.102-.271-.195-1.617-.205-1.725.316-.219.766-.354 1.264-.354 2.055 0 2.127 1.729 1.215 2.201l.299.49c0 0 1.09-.867.6-1.887.227-.045.471-.072.725-.068 2.387.035 2.549 1.775 1.875 2.25l.377.617c-.002.001 1.037-1.378-.316-2.554"/></g><path fill="#005bbf" d="m20.878 20.06c0-.334.285-.604.637-.604s.637.27.637.604c0 .332-.285.602-.637.602s-.637-.27-.637-.602"/><path fill="#c8b100" d="m21.349 18.375v.324h-.349v.331h.349v.452.497h-.439l-.032.081.051.239.004.004h1.167v-.004l.05-.239-.03-.081h-.423v-.493-.456h.343v-.331h-.343v-.324z"/><path fill="#ed4c5c" d="m21.525 28.29c-1.588-.002-3.02-.186-4.119-.469 1.094-.283 2.531-.455 4.119-.459 1.59.004 3.03.176 4.127.459-1.094.284-2.537.467-4.127.469"/><g fill="#fff"><path d="m21.578 45.625c-1.877 0-3.739-.459-5.304-1.227-1.154-.57-1.919-1.723-1.919-3.041v-4.781h14.418v4.781c0 1.318-.764 2.471-1.918 3.041-1.564.768-3.398 1.227-5.277 1.227"/><path d="m21.546 28.568h7.227v8h-7.227z"/></g><path fill="#ed4c5c" d="m21.552 41.35c0 1.891-1.6 3.422-3.595 3.422-1.995 0-3.612-1.531-3.612-3.422v-4.789h7.208v4.789"/><g fill="#c8b100"><path d="m15.919 44.18c.226.119.535.318.865.398l-.02-8.18h-.846v7.782z"/><path d="m14.333 41.29c.021 1.01.422 1.76.824 2.25v-7.104h-.814l-.01 4.854"/></g><path fill="#c7b500" d="m17.526 44.752c.33.033.577.027.844 0v-8.357h-.844v8.357"/><path fill="#c8b100" d="m19.11 44.574c.332-.066.703-.273.865-.379v-7.801h-.844l-.021 8.18"/><path fill="#ed4c5c" d="m14.346 28.568h7.205v8h-7.205z"/><path fill="#c8b100" d="m20.763 43.46c.352-.313.682-1.023.803-1.834l.02-5.23h-.844l.021 7.06"/><g fill="#ed4c5c"><path d="m28.781 36.563v4.789c0 1.891-1.619 3.422-3.615 3.422-1.994 0-3.613-1.531-3.613-3.422v-4.789h7.228"/><path d="m26.17 29.965c.256.602.252 2.076-.648 1.762.17.059.258.813.568 1.162.527.598 1.107.061.965-.58-.246-1.105-.117-1.814.105-2.893.02.145.502.119.676-.107-.133.289-.158.689-.045.699-.176.291-.725.771-.76 1.094-.07.695.975 2.049-.205 2.318-.783.18-.311.799.018 1.109-.01-.008-.361 1.275-.205 1.219-.844.305-.566-.375-.566-.375.361-1.152-.654-1.27-.566-1.471-1-.053.127.934-.822.934-.158 0-.572.174-.578.174-1.1-.09-.451-1.139-.133-.986.309.145.586.646.639-.051 0 0-.512-.811.758-.803-.469-.002-.84-.447-.998-.896-.166.127-.549.607-1.615.691 0 0-.34-1.074-.006-.924.367.164.646.172.982-.209-.24-.254-1.404-.719-1.23-1.43.049-.191.59-.479.59-.479-.086.494.172.967.813 1.045.826.1.486-.199.557-.449.064-.225.682.082.533-.418-.021-.072-.715-.234-.488-.451.557-.51 1.23-.199 1.664.316"/><path d="m21.607 44.613l-.234-.533.234-.533.232.533-.232.533"/></g><g fill="#c8b100"><path d="m16.454 30.29v.526h.233v.364h-.499v1.06h.266v2.13h-.532v1.091h4.078v-1.091h-.528v-2.13h.266v-1.06h-.498v-.364h.232v-.526h-.994v.526h.232v.364h-.498v-1.16h.266v-.532h-1.03v.532h.266v1.16h-.498v-.364h.232v-.526z"/><path d="m27.75 42.607v-4.992h-5.168v4.992l2.414 1.111v.002h.002.334.004v-.002l2.414-1.111m-2.756-4.65l.002 1.738-1.74-1.738h1.738m-2.071.152l2 1.998-2 2v-4m.137 4.348l1.936-1.936v2.818l-1.936-.882m2.275.883v-2.818l1.936 1.936-1.936.882m2.073-1.231l-2-2 2-1.998v4m-2.073-4.152h1.74l-1.74 1.738v-1.738"/></g><path fill="#ed4c5c" d="m19.236 36.533c0-1.451 1.045-2.627 2.334-2.627s2.334 1.176 2.334 2.627-1.045 2.627-2.334 2.627-2.334-1.176-2.334-2.627"/><path fill="#005bbf" d="m19.927 36.529c0-1.064.736-1.928 1.643-1.928s1.643.863 1.643 1.928c0 1.063-.736 1.926-1.643 1.926s-1.643-.863-1.643-1.926"/><g fill="#c8b100"><path d="m20.794 35.2l-.425 1.1.291.098-.135.381h.545l-.137-.381.287-.098-.426-1.1"/><path d="m22.322 35.2l-.426 1.1.284.098-.13.381h.545l-.137-.381.292-.098-.428-1.1"/><path d="m21.558 36.516l-.428 1.095.291.102-.134.377h.545l-.135-.377.291-.102-.432-1.095"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#ffce31"/><g fill="#ed4c5c"><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z"/></g><g fill="#c8b100"><path d="m9.2 28.7h3.2v1.8h-3.2z"/><path d="m9.2 41.9h3.3v1.7h-3.3z"/></g><path d="m8.9 39.1c-.3.2-.5.4-.5.5 0 .1.1.2.3.3.2.1.4.3.3.5.2-.2.3-.4.3-.6 0-.3-.2-.6-.4-.7" fill="#ed4c5c"/><path fill="#fff" d="m9.7 30.5h2.3v11.4h-2.3z"/><g fill="#ed4c5c"><path d="m14.4 34.7c-.5-.2-1.4-.4-2.4-.4-.3 0-.7 0-1.1.1-1.4.2-2.5.8-2.4 1.2l-.5-1.1c-.1-.5 1.1-1.1 2.6-1.4.5-.1 1-.1 1.4-.1 1 0 1.9.1 2.4.3v1.4"/><path d="m9.7 36.2c-.6 0-1.1-.2-1.1-.5 0-.2.2-.5.6-.7.2 0 .4 0 .6 0l-.1 1.2"/><path d="m12 35.3c.4.1.7.2.9.3.1.1-.3.5-.9.8v-1.1"/><path d="m8.2 38.4c-.1-.2.6-.6 1.5-.9.4-.1.7-.3 1.2-.5 1.2-.5 2.2-1.2 2-1.4l.2 1.2c.1.2-.7.8-1.9 1.4-.4.2-1.1.5-1.5.6-.7.2-1.3.6-1.3.7l-.2-1.1"/></g><g fill="#c8b100"><path d="m30.7 28.7h3.2v1.8h-3.2z"/><path d="m30.6 41.9h3.3v1.7h-3.3z"/></g><path d="m34.2 39.1c.3.2.5.4.5.5 0 .1-.1.2-.3.3-.2.2-.4.5-.3.6-.2-.2-.3-.4-.3-.6 0-.4.2-.7.4-.8" fill="#ed4c5c"/><path fill="#fff" d="m31.1 30.5h2.3v11.4h-2.3z"/><g fill="#ed4c5c"><path d="m28.7 34.7c.5-.2 1.4-.4 2.4-.4.3 0 .7 0 1.1.1 1.4.2 2.5.8 2.4 1.2l.5-1.2c.1-.5-1.1-1.1-2.6-1.4-.5 0-1 0-1.4 0-1 0-1.9.1-2.4.3v1.4"/><path d="m33.4 36.2c.6 0 1.1-.2 1.1-.5 0-.2-.2-.5-.6-.7-.2 0-.4 0-.6 0l.1 1.2"/><path d="m31.1 35.3c-.4.1-.7.2-.9.3-.1.1.3.5.9.8v-1.1"/><path d="m34.9 38.4c.1-.2-.6-.6-1.5-.9-.4-.1-.7-.3-1.2-.5-1.2-.5-2.2-1.2-2-1.4l-.2 1.2c-.1.2.7.8 1.9 1.4.4.2 1.1.5 1.5.6.7.2 1.3.7 1.2.8l.3-1.2"/><path d="m21.5 22.3c1.9 0 5.8.4 7.2 1.8-1.5 3.6-3.9 2.1-7.2 2.1-3.2 0-5.7 1.5-7.2-2.1 1.4-1.4 5.2-1.8 7.2-1.8"/></g><g fill="#c8b100"><path d="m26.4 26.3c-1.2-.7-3-.8-4.9-.8-1.9 0-3.7.2-4.9.8l.4 1.7c1.1.3 2.7.5 4.5.6 1.8 0 3.3-.2 4.5-.6l.4-1.7"/><path d="m28.1 22c-.4-.3-1.2-.6-1.9-.6-.3 0-.6 0-.9.1 0 0-.6-.8-2-.8-.5 0-.9.1-1.3.3v-.1c-.1-.2-.3-.4-.5-.4s-.5.3-.5.5v.1c-.4-.2-.8-.3-1.3-.3-1.4 0-2 .9-2 .8-.3-.1-.6-.1-.9-.1-4.6 0-2.3 3.1-2.3 3.1l.5-.6c-1.1-1.4-.1-2.2 1.9-2.2.3 0 .5 0 .7.1-.7 1 .6 1.9.6 1.9l.3-.5c-.7-.5-.8-2.2 1.2-2.2.5 0 .9.1 1.3.4 0 .1-.1 1.5-.2 1.7l.8.7.8-.7c-.1-.3-.2-1.6-.2-1.7.3-.2.8-.4 1.3-.4 2.1 0 2.1 1.7 1.2 2.2l.3.5c0 0 1.1-.9.6-1.9.2 0 .5-.1.7-.1 2.4 0 2.5 1.8 1.9 2.2l.4.6c-.2 0 .9-1.4-.5-2.6"/></g><path d="m20.9 20.1c0-.3.3-.6.6-.6s.6.3.6.6c0 .3-.3.6-.6.6s-.6-.3-.6-.6" fill="#005bbf"/><path fill="#c8b100" d="m21.3 18.4v.3h-.3v.3h.3v.5.5h-.4v.1.2h1.2l.1-.2-.1-.1h-.4v-.5-.5h.3v-.3h-.3v-.3z"/><path d="m21.5 28.3c-1.6 0-3-.2-4.1-.5 1.1-.3 2.5-.5 4.1-.5 1.6 0 3 .2 4.1.5-1 .3-2.5.5-4.1.5" fill="#ed4c5c"/><g fill="#fff"><path d="m21.6 45.6c-1.9 0-3.7-.5-5.3-1.2-1.2-.6-1.9-1.7-1.9-3v-4.8h14.4v4.8c0 1.3-.8 2.5-1.9 3-1.6.8-3.4 1.2-5.3 1.2"/><path d="m21.5 28.6h7.2v8h-7.2z"/></g><path d="m21.6 41.4c0 1.9-1.6 3.4-3.6 3.4s-3.6-1.5-3.6-3.4v-4.8h7.2v4.8" fill="#ed4c5c"/><g fill="#c8b100"><path d="m15.9 44.2c.2.1.5.3.9.4v-8.2h-.8l-.1 7.8"/><path d="m14.3 41.3c0 1 .4 1.8.8 2.2v-7.1h-.8v4.9"/></g><path d="m17.5 44.8c.3 0 .6 0 .8 0v-8.4h-.8v8.4" fill="#c7b500"/><path d="m19.1 44.6c.3-.1.7-.3.9-.4v-7.8h-.8l-.1 8.2" fill="#c8b100"/><path fill="#ed4c5c" d="m14.3 28.6h7.2v8h-7.2z"/><path d="m20.8 43.5c.4-.3.7-1 .8-1.8v-5.2h-.8v7" fill="#c8b100"/><g fill="#ed4c5c"><path d="m28.8 36.6v4.8c0 1.9-1.6 3.4-3.6 3.4-2 0-3.6-1.5-3.6-3.4v-4.8h7.2"/><path d="m26.2 30c.3.6.3 2.1-.6 1.8.2.1.3.8.6 1.2.5.6 1.1.1 1-.6-.2-1.1-.1-1.8.1-2.9 0 .1.5.1.7-.1-.1.3-.2.7 0 .7-.2.3-.7.8-.8 1.1-.1.7 1 2-.2 2.3-.8.2-.3.8 0 1.1 0 0-.4 1.3-.2 1.2-.8.3-.6-.4-.6-.4.4-1.2-.7-1.3-.6-1.5-1-.1.1.9-.8.9-.2 0-.6.2-.6.2-1.1-.1-.5-1.1-.1-1 .3.1.6.6.6-.1 0 0-.5-.8.8-.8-.5 0-.8-.4-1-.9-.2.1-.5.6-1.6.7 0 0-.3-1.1 0-.9.4.2.6.2 1-.2-.2-.3-1.4-.7-1.2-1.4 0-.2.6-.5.6-.5-.1.5.2 1 .8 1 .8.1.5-.2.6-.4.1-.2.7.1.5-.4 0-.1-.7-.2-.5-.5.4-.5 1-.1 1.5.4"/><path d="m21.6 44.6l-.2-.5.2-.6.2.6-.2.5"/></g><g fill="#c8b100"><path d="m16.5 30.3v.5h.2v.4h-.5v1h.3v2.2h-.6v1.1h4.1v-1.1h-.5v-2.2h.2v-1h-.5v-.4h.3v-.5h-1v.5h.2v.4h-.5v-1.2h.3v-.5h-1.1v.5h.3v1.2h-.5v-.4h.2v-.5z"/><path d="m27.8 42.6v-5h-5.2v5l2.4 1.1h.3l2.5-1.1m-2.8-4.6v1.7l-1.7-1.7h1.7m-2.1.1l2 2-2 2v-4m.2 4.4l1.9-1.9v2.8l-1.9-.9m2.2.8v-2.8l1.9 1.9-1.9.9m2.1-1.2l-2-2 2-2v4m-2.1-4.1h1.7l-1.7 1.7v-1.7"/></g><path d="m19.2 36.5c0-1.5 1-2.6 2.3-2.6s2.3 1.2 2.3 2.6-1 2.6-2.3 2.6-2.3-1.1-2.3-2.6" fill="#ed4c5c"/><path d="m19.9 36.5c0-1.1.7-1.9 1.6-1.9s1.6.9 1.6 1.9c0 1.1-.7 1.9-1.6 1.9s-1.6-.8-1.6-1.9" fill="#005bbf"/><g fill="#c8b100"><path d="m20.8 35.2l-.4 1.1.3.1-.2.4h.6l-.2-.4.3-.1-.4-1.1"/><path d="m22.3 35.2l-.4 1.1.3.1-.2.4h.6l-.1-.4.3-.1-.5-1.1"/><path d="m21.6 36.5l-.5 1.1.3.1-.1.4h.5l-.1-.4.3-.1-.4-1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e8.svg
index e1ccfc3..2d7bf4d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M62,32H2c0,5.467,1.469,10.586,4.023,15h51.953C60.531,42.586,62,37.467,62,32z"/><path fill="#ffe62e" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><path fill="#ed4c5c" d="m32 62c11.1 0 20.789-6.03 25.977-15h-51.954c5.188 8.965 14.875 15 25.977 15"/><g transform="matrix(1.14637 0 0 1.17117 33.18 82.14)"><path fill="#034ea2" d="m-6.801-44.869l.721.713.338-.815.064-.5c-.051-1.433-.025-2.84-.025-2.84l.212.185c-.236-.236-.514-.514-.809-.81l-.477-.468c.001-.002-.008 3.01-.024 4.535"/><path fill="#ed1c24" d="m-5.678-45.47l.716-2.127-.74-.713c0 0-.026 1.408.024 2.84"/><path fill="#fd0" d="m-6.776-49.41l.477.469c-.867-.869-1.883-1.887-2.398-2.409-.095-.096-.118 2.076-.107 4.497l2 1.981c.015-1.525.024-4.538.024-4.538"/></g><g transform="matrix(-1.14637 0 0 1.17117 1405.85 82.14)"/><g transform="matrix(1.14637 0 0 1.17117 33.18 82.14)"><path fill="#fd0" d="m-6.148-36.428c-1.611-1.015-1.875-4.112-1.85-4.534.025-.423.04-5.37.04-5.37l.477.469c-.868-.869-1.883-1.887-2.398-2.409-.165-.167-.047 6.481-.047 9.433 0 1.384.863 6.267 5.927 3.81 0 0 2.53-.909 3.27-2-.172 0-.342-.011-.511-.032-.077.041-.159.08-.245.115-2.921 1.97-4.663.521-4.663.522"/><path fill="#034ea2" d="m-7.997-40.962c-.025.423.239 3.52 1.849 4.534 0 0 1.742 1.448 4.663-.52-.883.365-1.604.442-2.076.302-1.412-.418-2.905-2.048-3.143-3.699-.239-1.651-.18-4.892-.18-4.892l.212.185c-.236-.236-.514-.514-.809-.81l-.477-.469c.001-.001-.014 4.946-.039 5.369"/><path fill="#ed1c24" d="m-5.93-43.1c-.014-.149-.025-.681-.026-1.262-.333-.334.063.075-.712-.701l-.216-.223c0 0 0 .068-.001.106-.007.449-.04 3.315.18 4.832.239 1.652 1.691 3.282 3.103 3.7.472.139 1.234.063 2.117-.302.059-.04.12-.081.18-.124-2.553-.363-4.315-2.744-4.625-6.03"/></g><g transform="matrix(1.14637 0 0 1.17117 33.18 82.14)"><path fill="#fd0" d="m4.092-36.32c1.611-1.014 1.875-4.112 1.85-4.534-.026-.423-.039-5.369-.039-5.369l-.477.469c.867-.869 1.883-1.887 2.397-2.409.165-.167.048 6.481.048 9.433 0 1.384-.864 6.267-5.928 3.81 0 0-2.53-.908-3.269-2 .172 0 .343-.012.511-.033.077.041.159.08.246.116 2.92 1.968 4.661.52 4.661.52"/><path fill="#034ea2" d="m5.942-40.851c.025.423-.239 3.52-1.85 4.534 0 0-1.741 1.448-4.662-.52.883.364 1.604.441 2.076.302 1.412-.419 2.905-2.049 3.143-3.699.239-1.651.179-4.893.179-4.893l-.211.186c.235-.236.513-.514.808-.81l.478-.469c0 0 .014 4.946.039 5.369"/><path fill="#ed1c24" d="m3.874-42.988c.014-.149.026-.681.026-1.262.334-.333-.063.075.713-.701l.216-.222c0 0 .001.067.002.106.007.449.039 3.314-.181 4.832-.239 1.651-1.69 3.282-3.103 3.699-.472.14-1.234.063-2.117-.302-.059-.04-.119-.082-.181-.124 2.554-.363 4.316-2.744 4.625-6.03"/></g><path fill="#8cddea" d="m26.27 31.03c0 4.072 2.564 7.371 5.728 7.371s5.728-3.3 5.728-7.371-2.564-7.372-5.728-7.372-5.728 3.3-5.728 7.372"/><path fill="#6dd337" d="m26.26 31.3c0 4.07 2.564 7.371 5.729 7.371 3.163 0 5.728-3.301 5.728-7.371h-11.457"/><path fill="#557176" d="m26.547 31.537l10.771.157c0 0 .052-.751.052-.839 0-.087.186-.218-.142-.25-1.203-.117-.738-.192-1.449-.239-.17-.035-4.781-1.096-5.191-1.148-.411-.053-3.972.484-3.972.484l-.069 1.835"/><path fill="#fff" d="m26.425 29.588l1.734.742c0 0 2.194-.406 2.386-.316.191.09 2.145.375 2.249.375.103 0 2.873-.045 2.873-.045l-.135-.032c-.162-.135-2.422-.725-2.568-.845-.147-.12-1.756-.707-1.918-.856-.162-.151-1.405-.906-1.553-.912-.326-.011-3.059 1.86-3.059 1.86"/><path fill="#b1babf" d="m34.444 23.765c0 0-1.1-.683-2.534-.666-1.051.013-2.25.616-2.25.616-1.203.721-2.19 1.997-2.806 3.567-.437 1.115-.688 2.369-.688 3.721 0 3.853 2.138 6.936 4.809 7.67 0 0 .397.175.94.175.543 0 1.043-.069 1.043-.069 2.724-.678 4.873-3.83 4.873-7.734.002-5.064-3.907-7.606-3.387-7.28m-1.482 14.512c0 0-.549.1-1.039.1-.489 0-.957-.126-.957-.126-2.405-.672-4.315-3.593-4.315-7.12 0-1.238.273-2.461.667-3.481.554-1.438 1.495-2.551 2.578-3.21 0 0 1.092-.681 2.038-.692 1.291-.015 2.269.738 2.269.738 1.813 1.15 3.071 3.684 3.071 6.625-.001 3.574-1.86 6.546-4.312 7.166"/><path fill="#034ea2" d="m32.22 32.886c-.002 0-.001 0 0 0 .003-.001.004-.001.004-.001 0-.001-.002 0-.004.001m-3.658-1.724c.026.04 1.735 2.319 1.735 2.319l-2.628 1.531c0 0 .199.636.7 1.271.5.636 1.658 1.861 2.849 1.985 1.192.123 2.038.079 2.686-.291.647-.371 1.528-.936 2.099-1.88.57-.943.611-1.077.611-1.077s-3.767-.76-3.887-.848c-.121-.089-3.684-2.916-3.787-2.99-.106-.077.773-1.167.773-1.167l-1.151 1.147z"/><path fill="#ed1c24" d="m31.05 39.802h1.89v4.923h-1.89z"/><g fill="#034ea2"><path d="m29.564 40.23h1.89v4.923h-1.89z"/><path d="m32.545 40.23h1.891v4.923h-1.891z"/></g><g fill="#fd0"><path d="m29.24 40.23h1.193v6.181h-1.193z"/><path d="m33.57 40.23h1.193v6.181h-1.193z"/></g><path fill="#fff" d="m27.487 38.1h9.03v2.385h-9.03z"/><path fill="#594640" d="m37.602 18.5c-1.753 0-3.735 2-5.602 2s-3.849-2-5.601-2c-1.747 0-8.399 2-8.399 2 9.335 0 14 5 14 5s4.664-5 14-5c0 0-6.651-2-8.398-2"/><circle fill="#f9f9f9" cx="32" cy="19.666" r="1.166"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32h-60c0 5.5 1.5 10.6 4 15h52c2.5-4.4 4-9.5 4-15" fill="#2a5f9e"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#ffe62e"/><path d="m32 62c11.1 0 20.8-6 26-15h-52c5.2 9 14.9 15 26 15" fill="#ed4c5c"/><g transform="matrix(1.14637 0 0 1.17117 33.1783 82.1384)"><path d="m-6.8-44.9l.7.7.3-.8.1-.5c-.1-1.4 0-2.8 0-2.8l.2.2c-.2-.2-.5-.5-.8-.8l-.5-.5c0 0 0 3 0 4.5" fill="#034ea2"/><path d="m-5.7-45.5l.7-2.1-.7-.7c0 0 0 1.4 0 2.8" fill="#ed1c24"/><path d="m-6.8-49.4l.5.5c-.9-.9-1.9-1.9-2.4-2.4-.1-.1-.1 2.1-.1 4.5l2 2c0-1.6 0-4.6 0-4.6" fill="#fd0"/></g><g transform="matrix(-1.14637 0 0 1.17117 1405.8541 82.1384)"/><g transform="matrix(1.14637 0 0 1.17117 33.1783 82.1384)"><path d="m-6.1-36.4c-1.7-1-1.9-4.1-1.9-4.6 0-.4 0-5.4 0-5.4l.5.5c-.9-.9-1.9-1.9-2.4-2.4-.2-.2 0 6.5 0 9.4 0 1.4.9 6.3 5.9 3.8 0 0 2.5-.9 3.3-2-.2 0-.3 0-.5 0-.1.1-.2.1-.3.1-2.9 2-4.6.6-4.6.6" fill="#fd0"/><path d="m-8-41c0 .4.2 3.5 1.8 4.5 0 0 1.7 1.4 4.7-.5-.9.4-1.6.4-2.1.3-1.4-.4-2.9-2-3.1-3.7-.2-1.7-.2-4.9-.2-4.9l.2.2c-.2-.2-.5-.5-.8-.8l-.5-.4c0 0 0 4.9 0 5.3" fill="#034ea2"/><path d="m-5.9-43.1c0-.1 0-.7 0-1.3-.3-.3.1.1-.7-.7l-.2-.2c0 0 0 .1 0 .1 0 .4 0 3.3.2 4.8.2 1.7 1.7 3.3 3.1 3.7.5.1 1.2.1 2.1-.3.1 0 .1-.1.2-.1-2.7-.3-4.4-2.7-4.7-6" fill="#ed1c24"/></g><g transform="matrix(1.14637 0 0 1.17117 33.1783 82.1384)"><path d="m4.1-36.3c1.6-1 1.9-4.1 1.8-4.5 0-.4 0-5.4 0-5.4l-.5.5c.9-.9 1.9-1.9 2.4-2.4.2-.2 0 6.5 0 9.4 0 1.4-.9 6.3-5.9 3.8 0 0-2.5-.9-3.3-2 .2 0 .3 0 .5 0 .1 0 .2.1.2.1 3.1 1.9 4.8.5 4.8.5" fill="#fd0"/><path d="m5.9-40.9c0 .4-.2 3.5-1.8 4.5 0 0-1.7 1.4-4.7-.5.9.4 1.6.4 2.1.3 1.4-.4 2.9-2 3.1-3.7.2-1.7.2-4.9.2-4.9l-.2.2c.2-.2.5-.5.8-.8l.5-.5c0 .1 0 5 0 5.4" fill="#034ea2"/><path d="m3.9-43c0-.1 0-.7 0-1.3.3-.3-.1.1.7-.7l.2-.2c0 0 0 .1 0 .1 0 .4 0 3.3-.2 4.8-.2 1.7-1.6 3.3-3.1 3.8-.5.1-1.2.1-2.1-.3-.1 0-.1-.1-.2-.1 2.6-.4 4.4-2.8 4.7-6.1" fill="#ed1c24"/></g><path d="m26.3 31c0 4.1 2.6 7.4 5.7 7.4s5.7-3.3 5.7-7.4-2.6-7.4-5.7-7.4-5.7 3.4-5.7 7.4" fill="#8cddea"/><path d="M26.3,31.3c0,4.1,2.6,7.4,5.7,7.4c3.2,0,5.7-3.3,5.7-7.4H26.3" fill="#6dd337"/><path d="m26.5 31.5l10.8.2c0 0 .1-.8.1-.8 0-.1.2-.2-.1-.2-1.2-.1-.7-.2-1.4-.2-.2 0-4.8-1.1-5.2-1.1-.4-.1-4 .5-4 .5l-.2 1.6" fill="#557176"/><path d="m26.4 29.6l1.7.7c0 0 2.2-.4 2.4-.3.2.1 2.1.4 2.2.4.1 0 2.9 0 2.9 0h-.1c-.2-.1-2.4-.7-2.6-.8-.1-.1-1.8-.7-1.9-.9-.2-.2-1.4-.9-1.6-.9-.2-.1-3 1.8-3 1.8" fill="#fff"/><path d="m34.4 23.8c0 0-1.1-.7-2.5-.7-1.1 0-2.2.6-2.2.6-1.2.7-2.2 2-2.8 3.6-.4 1.1-.7 2.4-.7 3.7 0 3.9 2.1 6.9 4.8 7.7 0 0 .4.2.9.2.5 0 1-.1 1-.1 2.7-.7 4.9-3.8 4.9-7.7 0-5.1-3.9-7.7-3.4-7.3m-1.4 14.5c0 0-.5.1-1 .1-.5 0-1-.1-1-.1-2.4-.7-4.3-3.6-4.3-7.1 0-1.2.3-2.5.7-3.5.6-1.4 1.5-2.6 2.6-3.2 0 0 1.1-.7 2-.7 1.3 0 2.3.7 2.3.7 1.8 1.1 3.1 3.7 3.1 6.6-.1 3.6-2 6.6-4.4 7.2" fill="#b1babf"/><path d="m32.2 32.9c0 0 0 0 0 0m-3.6-1.7c0 0 1.7 2.3 1.7 2.3l-2.6 1.5c0 0 .2.6.7 1.3.5.6 1.7 1.9 2.8 2 1.2.1 2 .1 2.7-.3.6-.4 1.5-.9 2.1-1.9.6-.9.6-1.1.6-1.1s-3.8-.8-3.9-.8c-.1-.1-3.7-2.9-3.8-3-.1-.1.8-1.2.8-1.2l-1.1 1.2z" fill="#034ea2"/><path fill="#ed1c24" d="m31.1 39.8h1.9v4.9h-1.9z"/><g fill="#034ea2"><path d="m29.6 40.2h1.9v4.9h-1.9z"/><path d="m32.5 40.2h1.9v4.9h-1.9z"/></g><g fill="#fd0"><path d="m29.2 40.2h1.2v6.2h-1.2z"/><path d="m33.6 40.2h1.2v6.2h-1.2z"/></g><path fill="#fff" d="m27.5 38.1h9v2.4h-9z"/><path d="m37.6 18.5c-1.8 0-3.7 2-5.6 2s-3.8-2-5.6-2c-1.7 0-8.4 2-8.4 2 9.3 0 14 5 14 5s4.7-5 14-5c0 0-6.7-2-8.4-2" fill="#594640"/><circle cx="32" cy="19.7" r="1.2" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ea.svg
index cb1dc31..0f3f6d8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ea.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#42ade2" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#3e4347" d="M60.286,42C61.393,38.871,62,35.508,62,32s-0.607-6.871-1.714-10H3.714C2.607,25.129,2,28.492,2,32
- s0.607,6.871,1.714,10H60.286z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#f9f9f9"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#42ade2"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ec.svg
index e6a4fe7..ee47f26 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ec.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#3e4347" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.607,25.128,2,28.492,2,32c0,3.507,0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.507,62,32
- c0-3.508-0.607-6.872-1.714-10H3.714z"/><g fill="#fff"><path d="m30.579 25.13c.274-.22.514-.02.68.22.146.21.136.806-.074 1.502-.123.408-.364.815-.555 1.097.443-.019.902-.121 1.37-.293.467.171.923.273 1.364.293-.215-.426-.375-1.166-.348-1.793.036-.881-.126-1.228-.256-1.357-.165-.165-.696-.311-1.045-.33-.198-.01-.166.149-.166.149-.365-.094-.732-.13-.896-.02-.156.104-.188.622-.074.532"/><path d="m37.29 28.13c-.193-1.144-1.348-.822-2.201-.334-.37.237-.762.378-1.168.438-.106.016-.214.027-.321.032-.515.022-1.052-.075-1.604-.269-.549.193-1.084.29-1.595.269-.055-.003-.109-.007-.164-.012-.467-.043-.914-.189-1.334-.458-.822-.47-1.922-.785-2.176.214.195-.125.439-.26.549-.26l-.404 9.632.2-.182.416-9.3c.138.137.549.475.623.549l-.347 8.123.277-.252.344-7.658c.137.137.41.337.484.412l-.27 6.741.764-.693.771-2.733c-.704-1.494-.602-2.815-.602-2.815.067.015.138.021.209.021.49 0 1.6-.275 2.1-.592.074-.047.135-.094.178-.142.04.052.097.102.165.151.478.336 1.57.583 2.064.583.071 0 .139-.007.21-.021 0 0 .1 1.319-.603 2.813l.745 2.646.795.737-.266-6.629c.073-.074.343-.27.477-.405l.337 7.543.272.253-.341-8c.074-.074.477-.405.611-.54l.41 9.176.196.183-.398-9.507c.12-.002.4.16.597.29"/><path d="m31.12 29.654v3.457.315c.017.021.032.04.049.06.023.027.048.055.071.082.14.16.29.313.449.459.099.091.2.179.307.263.106-.085.21-.174.31-.266.18-.164.348-.338.503-.521.005-.007.01-.013.015-.02v-.105-.21-3.521c-.326-.104-.628-.238-.811-.395-.202.153-.537.293-.893.402"/></g><path fill="#c09300" d="m36.34 37.863c0-.463-.462-.521-.854-.392-.055.019-.114.036-.176.052l-.616-2.188 3.28 3.195-.421-10.442c-.062-1.582-1.372-1.219-2.323-.648-.451.304-.933.463-1.436.505-.683-1.241-.305-2.765-.801-3.212-.233-.21-.939-.475-1.381-.502-.251-.014-.21.21-.21.21-.463-.133-.896-.078-1.104.078-.197.146-.003 1.076.141.948.349-.312.416-.225.625.114.172.278-.216 1.477-.703 2.375-.557-.021-1.09-.181-1.585-.515-.952-.571-2.262-.934-2.324.648l-.421 10.441 3.251-3.094-.588 2.086c-.061-.017-.12-.032-.176-.051-.391-.13-.854-.071-.854.392-.569-.123-.817.777-.2.982 0 .262 0 .463.402.533.912.262 2.488.392 4.135.392 1.647 0 3.224-.13 4.148-.392.391-.07.391-.271.391-.533.617-.204.369-1.105-.2-.982m-5.095-4.295c-.023-.027-.048-.055-.071-.082-.017-.02-.032-.039-.049-.06v-.315-3.457c.355-.109.691-.249.893-.402.183.157.484.291.811.395v3.521.21.105c-.005.007-.01.013-.015.02-.155.183-.323.356-.503.521-.1.092-.203.181-.31.266-.106-.084-.208-.172-.307-.263-.159-.145-.309-.298-.449-.459m-.057-6.712c.21-.696.22-1.292.074-1.502-.166-.24-.405-.44-.68-.22-.114.09-.082-.428.074-.531.164-.11.531-.074.896.02 0 0-.032-.159.166-.149.349.019.88.165 1.045.33.13.129.292.476.256 1.357-.027.627.133 1.367.348 1.793-.441-.02-.897-.122-1.364-.293-.468.172-.927.274-1.37.293.19-.282.432-.689.555-1.098m-2.581 8.958l.27-6.741c-.074-.075-.348-.274-.484-.412l-.344 7.658-.277.252.347-8.123c-.074-.075-.485-.412-.623-.549l-.416 9.3-.2.182.404-9.632c-.109 0-.354.135-.549.26.254-.999 1.354-.684 2.176-.214.42.269.867.415 1.334.458.055.005.109.009.164.012.511.021 1.046-.076 1.595-.269.552.194 1.089.291 1.604.269.107-.005.215-.016.321-.032.406-.06.798-.201 1.168-.438.854-.488 2.01-.809 2.201.334-.197-.13-.477-.292-.595-.292l.398 9.507-.196-.183-.41-9.176c-.135.134-.537.466-.611.54l.341 8-.272-.253-.337-7.543c-.134.135-.403.331-.477.405l.266 6.629-.795-.737-.745-2.646c.702-1.493.603-2.813.603-2.813-.071.015-.139.021-.21.021-.494 0-1.587-.247-2.064-.583-.068-.049-.125-.099-.165-.151-.043.048-.104.095-.178.142-.5.317-1.609.592-2.1.592-.071 0-.142-.007-.209-.021 0 0-.103 1.321.602 2.815l-.771 2.733-.766.695m3.395 1.978c-.375-.017-.755-.029-1.126-.044l.744-3.383c.12.108.245.215.381.318.136-.104.263-.212.384-.32l.75 3.41c-.373.014-.756.019-1.133.019"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#3e4347"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32c0,3.5,0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10c0-3.5-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><g fill="#fff"><path d="m30.6 25.1c.3-.2.5 0 .7.2.1.2.1.8-.1 1.5-.1.4-.4.8-.6 1.1.4 0 .9-.1 1.4-.3.5.2.9.3 1.4.3-.2-.4-.4-1.2-.3-1.8 0-.9-.1-1.2-.3-1.4-.2-.2-.7-.3-1-.3-.2 0-.2.1-.2.1-.4-.1-.7-.1-.9 0-.2.2-.2.7-.1.6"/><path d="m37.3 28.1c-.2-1.1-1.3-.8-2.2-.3-.4.2-.8.4-1.2.4-.1 0-.2 0-.3 0-.5 0-1.1-.1-1.6-.3-.5.2-1.1.3-1.6.3-.1 0-.1 0-.2 0-.5 0-.9-.2-1.3-.5-.8-.4-1.9-.7-2.2.3.2-.1.4-.3.5-.3l-.4 9.6.2-.2.4-9.3c.1.1.5.5.6.5l-.3 8.1.3-.3.3-7.7c.1.1.4.3.5.4l-.3 6.7.8-.7.8-2.7c-.7-1.5-.6-2.8-.6-2.8.1 0 .1 0 .2 0 .5 0 1.6-.3 2.1-.6.1 0 .1-.1.2-.1 0 .1.1.1.2.2.5.3 1.6.6 2.1.6.1 0 .1 0 .2 0 0 0 .1 1.3-.6 2.8l.7 2.6.8.7-.3-6.6c.1-.1.3-.3.5-.4l.3 7.5.3.3-.3-8c.1-.1.5-.4.6-.5l.4 9.2.2.2-.4-9.5c.1.1.4.3.6.4"/><path d="m31.1 29.7v3.5.3c0 0 0 0 0 .1 0 0 0 .1.1.1.1.2.3.3.4.5.1.1.2.2.3.3.1-.1.2-.2.3-.3.2-.2.3-.3.5-.5v-.1-.2-3.5c-.3-.1-.6-.2-.8-.4-.1-.1-.4 0-.8.2"/></g><path d="m36.3 37.9c0-.5-.5-.5-.9-.4-.1 0-.1 0-.2.1l-.6-2.2 3.3 3.2-.4-10.4c-.1-1.6-1.4-1.2-2.3-.6-.5.3-.9.5-1.4.5-.7-1.2-.3-2.8-.8-3.2-.2-.2-.9-.5-1.4-.5-.3 0-.2.2-.2.2-.5-.1-.9-.1-1.1.1-.2.1 0 1.1.1.9.3-.3.4-.2.6.1.2.3-.2 1.5-.7 2.4-.6 0-1.1-.2-1.6-.5-1-.6-2.3-.9-2.3.6l-.4 10.3 3.3-3.1-.6 2.1c-.1 0-.1 0-.2-.1-.4-.1-.9-.1-.9.4-.6-.1-.8.8-.2 1 0 .3 0 .5.4.5.9.3 2.5.4 4.1.4s3.2-.1 4.1-.4c.4-.1.4-.3.4-.5.8-.2.5-1.1-.1-.9m-5.1-4.3c0-.1 0-.1 0 0-.1-.1-.1-.1-.1-.1v-.3-3.5c.4-.1.7-.2.9-.4.2.2.5.3.8.4v3.5.2.1c0 0 0 0 0 0-.2.2-.3.4-.5.5-.1.1-.2.2-.3.3-.1-.1-.2-.2-.3-.3-.2-.1-.3-.3-.5-.4m0-6.7c.2-.7.2-1.3.1-1.5-.2-.2-.4-.4-.7-.2-.1.1-.1-.4.1-.5.2-.1.5-.1.9 0 0 0 0-.2.2-.1.3 0 .9.2 1 .3.1.1.3.5.3 1.4 0 .6.1 1.4.3 1.8-.4 0-.9-.1-1.4-.3-.5.2-.9.3-1.4.3.2-.4.5-.8.6-1.2m-2.6 8.9l.3-6.7c-.1-.1-.3-.3-.5-.4l-.4 7.6-.3.3.3-8.1c-.1-.1-.5-.4-.6-.5l-.4 9.3-.2.2.4-9.6c-.1 0-.4.1-.5.3.3-1 1.4-.7 2.2-.2.4.3.9.4 1.3.5.1 0 .1 0 .2 0 .5 0 1-.1 1.6-.3.6.2 1.1.3 1.6.3.1 0 .2 0 .3 0 .4-.1.8-.2 1.2-.4.9-.5 2-.8 2.2.3-.2-.1-.5-.3-.6-.3l.4 9.5-.2-.2-.4-9.4c-.1.1-.5.5-.6.5l.3 8-.3-.3-.3-7.5c-.1.1-.4.3-.5.4l.3 6.6-.8-.7-.7-2.6c.7-1.5.6-2.8.6-2.8-.1 0-.1 0-.2 0-.5 0-1.6-.2-2.1-.6-.1 0-.1-.1-.2-.2 0 0-.1.1-.2.1-.5.3-1.6.6-2.1.6-.1 0-.1 0-.2 0 0 0-.1 1.3.6 2.8l-.8 2.7-.7.8m3.4 2c-.4 0-.8 0-1.1 0l.7-3.4c.1.1.2.2.4.3.1-.1.3-.2.4-.3l.8 3.4c-.4 0-.8 0-1.2 0" fill="#c09300"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ed.svg
index 53b4a44..63f1fe8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1ed.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21h-.002c5.43 5.43 12.93 8.788 21.21 8.788 13.07 0 24.18-8.356 28.29-20.02-.098.003-.193.015-.291.015"/><path fill="#3e4347" d="m60 22c.098 0 .193.012.291.015-4.115-11.659-15.225-20.02-28.29-20.02-8.285 0-15.785 3.358-21.21 8.788h.002v21.21h39.21c0-5.523 4.477-10 10-10"/><path fill="#f9f9f9" d="m60.29 22h-49.5v20h49.5c1.107-3.129 1.714-6.492 1.714-10s-.607-6.871-1.714-10"/><g fill="#ed4c5c"><path d="M10.787,10.787C5.357,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L32,32L10.787,10.787z"/><path d="m44 38.857c-3.042-.646-5.333-3.473-5.333-6.857s2.291-6.211 5.333-6.857c-.43-.096-.876-.143-1.332-.143-3.684 0-6.668 3.137-6.668 7s2.984 7 6.668 7c.456 0 .902-.047 1.332-.143"/><path d="m44.999 34.12l2.471 1.88-.932-3.053 2.462-1.947h-3.052l-.949-3-.919 3h-3.08l2.46 1.947-.93 3.053z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0" fill="#83bf4f"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10" fill="#3e4347"/><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z"/><path d="m44 38.9c-3-.6-5.3-3.5-5.3-6.9s2.3-6.2 5.3-6.9c-.4-.1-.9-.1-1.3-.1-3.7 0-6.7 3.1-6.7 7s3 7 6.7 7c.4 0 .9 0 1.3-.1"/><path d="m45 34.1l2.5 1.9-1-3.1 2.5-1.9h-3.1l-.9-3-.9 3h-3.1l2.5 1.9-1 3.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f7.svg
index 539ffca..616efd6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M11.005,32v21.422C16.416,58.726,23.824,62,32,62c16.568,0,30-13.432,30-30H11.005z"/><path fill="#83bf4f" d="M11.005,32H62C62,15.432,48.568,2,32,2c-8.176,0-15.584,3.275-20.995,8.58V32z"/><path fill="#ed4c5c" d="M11.005,10.579C5.45,16.023,2,23.607,2,32s3.45,15.977,9.006,21.422L61.427,32L11.005,10.579z"/><g fill="#ffce31"><path d="m16.981 23.413c1.243 0 2.253-1.161 2.253-2.597 0-1.432-1.01.809-2.253.809-1.244 0-2.255-2.24-2.255-.809.001 1.436 1.01 2.597 2.255 2.597"/><path d="m26.956 35.51c.28-.728.482-1.494.604-2.288.843-.377 1.44-1.313 1.44-2.415.001-1.043-.535-.139-1.307.43-.021-.818-.13-1.619-.319-2.393.545-.683.702-1.707.314-2.662-.366-.91-.525-.031-.962.768-.335-.746-.748-1.453-1.236-2.104.175-.809-.071-1.737-.743-2.422-.647-.664-.514.1-.59.957-.592-.543-1.245-1.021-1.956-1.426-.168-.78-.736-1.497-1.578-1.854-1.293-.549.346 1.261-.132 2.438-.476 1.18-2.888 1.273-1.589 1.823 1.019.433 2.122.198 2.778-.495.504.322.956.703 1.38 1.113-.999.277-2.293-.109-1.499.705.755.773 1.818 1 2.67.672.324.475.602.979.831 1.51-.989-.178-1.95-.943-1.537.082.388.959 1.216 1.572 2.08 1.654.112.533.187 1.078.203 1.639-.776-.569-1.316-1.482-1.317-.436.001.989.487 1.84 1.195 2.277-.09.524-.225 1.031-.4 1.521-.439-.801-.599-1.689-.971-.776-.348.862-.252 1.78.171 2.454-.258.425-.551.824-.871 1.197-.073-.846.05-1.586-.593-.93-.612.629-.878 1.463-.784 2.221-.377.287-.775.545-1.195.768.248-.756.567-1.318-.232-.98-.774.33-1.316.967-1.529 1.675-.729.2-1.492.317-2.281.317-.791 0-1.553-.117-2.282-.317-.212-.708-.755-1.345-1.528-1.675-.8-.338-.48.225-.232.98-.42-.223-.818-.48-1.195-.768.094-.758-.171-1.592-.784-2.221-.643-.656-.52.084-.593.932-.321-.374-.613-.773-.871-1.199.423-.673.52-1.592.171-2.454-.371-.915-.53-.023-.972.777-.176-.489-.311-.997-.4-1.521.709-.438 1.195-1.289 1.196-2.278-.001-1.048-.542-.133-1.319.437.017-.56.088-1.105.199-1.64.867-.079 1.697-.693 2.087-1.654.416-1.033-.562-.25-1.559-.08.23-.535.524-1.033.851-1.512.854.332 1.917.101 2.671-.672.798-.818-.516-.422-1.518-.709.426-.412.898-.775 1.407-1.1.658.686 1.756.916 2.771.485 1.297-.55-1.115-.644-1.591-1.823-.478-1.177 1.161-2.986-.132-2.438-.842.356-1.409 1.072-1.577 1.852-.712.404-1.367.879-1.957 1.418-.075-.854.055-1.609-.591-.947-.671.684-.917 1.611-.743 2.421-.488.649-.904 1.351-1.239 2.095-.433-.795-.592-1.664-.959-.758-.387.953-.23 1.975.313 2.657-.188.773-.297 1.575-.317 2.396-.774-.568-1.309-1.47-1.308-.427 0 1.102.598 2.037 1.439 2.414.121.795.322 1.562.603 2.289-.985-.181-1.937-.936-1.523.083.432 1.071 1.411 1.707 2.377 1.657.403.67.87 1.292 1.401 1.855-1 .283-2.308-.109-1.51.705.833.854 2.035 1.045 2.922.551.606.453 1.258.844 1.949 1.16-.808.7-2.266.846-1.196 1.298 1.114.472 2.327.158 2.949-.687.128.033.252.073.382.102-.373.488-.605 1.097-.605 1.766h5.623c0-.669-.232-1.277-.605-1.766.13-.028.254-.068.382-.102.622.845 1.835 1.158 2.949.687 1.069-.452-.389-.598-1.196-1.298.692-.316 1.343-.708 1.949-1.16.887.494 2.089.303 2.922-.551.798-.814-.51-.422-1.511-.705.531-.563.999-1.187 1.402-1.855.966.051 1.945-.586 2.378-1.657.414-1.019-.539-.264-1.525-.083"/><path d="m16 25.875c0 5.334 0 10.667 0 16 0 1.29 2 1.29 2 0 0-5.333 0-10.666 0-16 0-1.289-2-1.289-2 0"/><path d="m20.998 34c0 0-2.672-.07-3.43.688-.758.756-.758 1.984 0 2.742s1.986.758 2.744 0 .686-3.43.686-3.43"/><path d="m13 32c0 0 2.672-.07 3.43.688.758.756.758 1.984 0 2.742s-1.986.758-2.744 0-.686-3.43-.686-3.43"/><path d="m13 27c0 0 2.672-.07 3.43.688.758.756.758 1.984 0 2.742s-1.986.758-2.744 0-.686-3.43-.686-3.43"/><path d="m20.998 29c0 0-2.672-.07-3.43.688-.758.756-.758 1.984 0 2.742s1.986.758 2.744 0 .686-3.43.686-3.43"/><path d="m18.999 26c0 0-1.336-.036-1.715.343-.379.378-.379.993 0 1.372s.993.379 1.372 0 .343-1.715.343-1.715"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11 32v21.4c5.4 5.3 12.8 8.6 21 8.6 16.6 0 30-13.4 30-30h-51" fill="#42ade2"/><path d="m11 32h51c0-16.6-13.4-30-30-30-8.2 0-15.6 3.3-21 8.6 0 0 0 21.4 0 21.4" fill="#83bf4f"/><path d="M11,10.6C5.4,16,2,23.6,2,32s3.4,16,9,21.4L61.4,32L11,10.6z" fill="#ed4c5c"/><g fill="#ffce31"><path d="m17 23.4c1.2 0 2.3-1.2 2.3-2.6 0-1.4-1 .8-2.3.8-1.2 0-2.3-2.2-2.3-.8 0 1.5 1 2.6 2.3 2.6"/><path d="m27 35.5c.3-.7.5-1.5.6-2.3.8-.4 1.4-1.3 1.4-2.4 0-1-.5-.1-1.3.4 0-.8-.1-1.6-.3-2.4.5-.7.7-1.7.3-2.7-.4-.9-.5 0-1 .8-.3-.7-.7-1.5-1.2-2.1.2-.8-.1-1.7-.7-2.4-.6-.7-.5.1-.6 1-.6-.5-1.2-1-2-1.4-.2-.8-.7-1.5-1.6-1.9-1.3-.5.3 1.3-.1 2.4-.5 1.2-2.9 1.3-1.6 1.8 1 .4 2.1.2 2.8-.5.5.3 1 .7 1.4 1.1-1 .3-2.3-.1-1.5.7.8.8 1.8 1 2.7.7.3.5.6 1 .8 1.5-1-.2-2-.9-1.5.1.4 1 1.2 1.6 2.1 1.7.1.5.2 1.1.2 1.6-.8-.6-1.3-1.5-1.3-.4 0 1 .5 1.8 1.2 2.3-.1.5-.2 1-.4 1.5-.4-.8-.6-1.7-1-.8-.3.9-.3 1.8.2 2.5-.3.4-.6.8-.9 1.2-.1-.8 0-1.6-.6-.9-.6.6-.9 1.5-.8 2.2-.4.3-.8.5-1.2.8.2-.8.6-1.3-.2-1-.8.3-1.3 1-1.5 1.7-.7.2-1.5.3-2.3.3-.8 0-1.6-.1-2.3-.3-.2-.7-.8-1.3-1.5-1.7-.8-.3-.5.2-.2 1-.4-.2-.8-.5-1.2-.8.1-.8-.2-1.6-.8-2.2-.6-.7-.5.1-.6.9-.3-.4-.6-.8-.9-1.2.4-.7.5-1.6.2-2.5-.4-.9-.5 0-1 .8-.2-.5-.3-1-.4-1.5.7-.4 1.2-1.3 1.2-2.3 0-1-.5-.1-1.3.4 0-.6.1-1.1.2-1.6.9-.1 1.7-.7 2.1-1.7.4-1-.6-.2-1.6-.1.2-.5.5-1 .9-1.5.9.3 1.9.1 2.7-.7.8-.8-.5-.4-1.5-.7.4-.4.9-.8 1.4-1.1.7.7 1.8.9 2.8.5 1.3-.5-1.1-.6-1.6-1.8-.5-1.2 1.2-3-.1-2.4-.8.4-1.4 1.1-1.6 1.9-.7.4-1.4.9-2 1.4-.1-.9.1-1.6-.6-.9-.7.7-.9 1.6-.7 2.4-.5.6-.9 1.4-1.2 2.1-.4-.8-.6-1.7-1-.8-.4 1-.2 2 .3 2.7-.2.8-.3 1.6-.3 2.4-1-.6-1.5-1.5-1.5-.5 0 1.1.6 2 1.4 2.4.2.8.4 1.6.6 2.3-1-.2-1.9-.9-1.5.1.4 1.1 1.4 1.7 2.4 1.7.4.7.9 1.3 1.4 1.9-1 .3-2.3-.1-1.5.7.8.9 2 1 2.9.6.6.5 1.3.8 1.9 1.2-.8.7-2.3.8-1.2 1.3 1.1.5 2.3.2 2.9-.7.1 0 .3.1.4.1-.4.5-.6 1.1-.6 1.8h5.6c0-.7-.2-1.3-.6-1.8.1 0 .3-.1.4-.1.6.8 1.8 1.2 2.9.7 1.1-.5-.4-.6-1.2-1.3.7-.3 1.3-.7 1.9-1.2.9.5 2.1.3 2.9-.6.8-.8-.5-.4-1.5-.7.5-.6 1-1.2 1.4-1.9 1 .1 1.9-.6 2.4-1.7.6-1-.4-.3-1.3-.1"/><path d="m16 25.9c0 5.3 0 10.7 0 16 0 1.3 2 1.3 2 0 0-5.3 0-10.7 0-16 0-1.3-2-1.3-2 0"/><path d="m21 34c0 0-2.7-.1-3.4.7-.8.8-.8 2 0 2.7s2 .8 2.7 0 .7-3.4.7-3.4"/><path d="m13 32c0 0 2.7-.1 3.4.7.8.8.8 2 0 2.7s-2 .8-2.7 0-.7-3.4-.7-3.4"/><path d="m13 27c0 0 2.7-.1 3.4.7.8.8.8 2 0 2.7s-2 .8-2.7 0-.7-3.4-.7-3.4"/><path d="m21 29c0 0-2.7-.1-3.4.7-.8.8-.8 2 0 2.7s2 .8 2.7 0 .7-3.4.7-3.4"/><path d="m19 26c0 0-1.3 0-1.7.3-.4.4-.4 1 0 1.4s1 .4 1.4 0 .3-1.7.3-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f8.svg
index 12d84e3..891a259 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f8.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,32c0,5.885,1.701,11.367,4.628,16h50.744C60.299,43.367,62,37.885,62,32s-1.701-11.368-4.628-16H6.628
- C3.701,20.632,2,26.115,2,32z"/><g fill="#ed4c5c"><path d="M57.372,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.628,16H57.372z"/><path d="M6.628,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.372-14H6.628z"/></g><g fill="#c8b100"><path d="m9.242 28.711h3.2v1.763h-3.2z"/><path d="m9.198 41.895h3.285v1.652h-3.285z"/></g><path fill="#ed4c5c" d="m8.941 39.06c-.325.188-.546.381-.51.477.018.088.12.154.269.252.232.162.373.451.263.584.192-.156.313-.387.313-.645 0-.27-.128-.512-.335-.668"/><path fill="#fff" d="m9.668 30.457h2.334v11.434h-2.334z"/><g fill="#ed4c5c"><path d="m14.387 34.733c-.511-.21-1.375-.366-2.368-.399-.343.003-.725.035-1.119.102-1.396.232-2.459.789-2.375 1.244l.008.037-.531-1.224c-.094-.504 1.086-1.123 2.635-1.382.486-.08.961-.112 1.373-.107.99 0 1.852.127 2.371.319l.006 1.41"/><path d="m9.665 36.17c-.646-.047-1.089-.22-1.141-.489-.039-.217.18-.455.57-.672.174.02.37.043.573.043l-.002 1.118"/><path d="m12.01 35.3c.404.062.707.162.859.285l.014.025c.071.147-.283.462-.877.813l.004-1.123"/><path d="m8.216 38.38c-.063-.186.568-.555 1.461-.883.407-.145.744-.297 1.162-.48 1.238-.549 2.153-1.177 2.041-1.406l-.013-.023.169 1.184c.111.209-.726.828-1.866 1.375-.365.174-1.136.459-1.5.586-.65.227-1.298.652-1.238.811l-.216-1.164"/></g><g fill="#c8b100"><path d="m30.655 28.711h3.2v1.763h-3.2z"/><path d="m30.614 41.895h3.285v1.652h-3.285z"/></g><path fill="#ed4c5c" d="m34.16 39.06c.325.188.546.381.511.477-.018.088-.121.154-.27.252-.232.162-.373.451-.263.584-.192-.156-.313-.387-.313-.645.001-.27.129-.512.335-.668"/><path fill="#fff" d="m31.1 30.457h2.334v11.434h-2.334z"/><g fill="#ed4c5c"><path d="m28.711 34.733c.511-.21 1.376-.366 2.37-.399.341.003.723.035 1.117.102 1.396.232 2.459.789 2.375 1.244l-.008.037.531-1.224c.094-.504-1.086-1.123-2.635-1.382-.486-.08-.961-.112-1.371-.107-.992 0-1.854.127-2.373.319l-.006 1.41"/><path d="m33.433 36.17c.648-.047 1.09-.22 1.141-.489.039-.217-.18-.455-.57-.672-.174.02-.371.043-.573.043l.002 1.118"/><path d="m31.09 35.3c-.405.062-.708.162-.86.285l-.014.025c-.072.147.283.462.877.813l-.003-1.123"/><path d="m34.882 38.38c.063-.186-.568-.555-1.461-.883-.407-.145-.744-.297-1.162-.48-1.238-.549-2.153-1.177-2.039-1.406l.011-.023-.167 1.184c-.113.209.725.828 1.864 1.375.365.174 1.136.459 1.5.586.651.227 1.298.652 1.239.811l.215-1.164"/><path d="m21.456 22.278c1.916 0 5.779.438 7.191 1.768-1.486 3.601-3.924 2.123-7.159 2.122-3.245-.001-5.682 1.482-7.175-2.122 1.408-1.319 5.237-1.768 7.143-1.768"/></g><g fill="#c8b100"><path d="m26.444 26.28c-1.244-.696-2.99-.844-4.92-.849-1.928.005-3.66.153-4.905.849l.446 1.689c1.126.339 2.703.547 4.464.55 1.761-.002 3.337-.211 4.463-.55l.452-1.689"/><path d="m28.12 22.04c-.381-.331-1.156-.552-1.938-.552-.31 0-.607.034-.881.096.041.045-.551-.83-1.956-.83-.495 0-.948.122-1.298.325l-.009-.059c-.052-.224-.269-.392-.522-.392-.253 0-.479.167-.531.392l-.008.058c-.35-.203-.802-.324-1.295-.324-1.375 0-1.996.874-1.956.83-.274-.063-.571-.096-.882-.096-4.617 0-2.253 3.108-2.253 3.108l.378-.618c-1.068-1.401-.141-2.25 1.875-2.25.254 0 .498.024.725.068-.689 1.026.6 1.886.6 1.886l.299-.489c-.727-.461-.785-2.203 1.215-2.203.497 0 .945.135 1.263.352-.01.109-.104 1.455-.208 1.728l.779.737.771-.737c-.103-.273-.196-1.617-.206-1.726.316-.218.766-.354 1.265-.354 2.054 0 2.126 1.729 1.214 2.203l.299.489c0 0 1.091-.867.6-1.886.227-.044.472-.072.725-.068 2.388.035 2.549 1.776 1.875 2.25l.378.618c-.002 0 1.036-1.379-.318-2.556"/></g><path fill="#005bbf" d="m20.879 20.06c0-.333.285-.603.636-.603.352 0 .637.27.637.603 0 .333-.285.602-.637.602-.351.001-.636-.269-.636-.602"/><path fill="#c8b100" d="m21.349 18.375v.325h-.349v.33h.349v.451.498h-.439l-.031.081.05.239.004.004h1.167v-.004l.05-.239-.03-.081h-.424v-.494-.455h.354v-.33h-.354v-.325z"/><path fill="#ed4c5c" d="m21.524 28.29c-1.588-.001-3.02-.186-4.118-.468 1.094-.283 2.53-.456 4.118-.458 1.59.002 3.03.175 4.127.458-1.093.283-2.537.467-4.127.468"/><g fill="#fff"><path d="m21.578 45.625c-1.878 0-3.739-.461-5.305-1.227-1.154-.57-1.919-1.723-1.919-3.041v-4.781h14.419v4.781c0 1.318-.765 2.471-1.919 3.041-1.564.766-3.397 1.227-5.276 1.227"/><path d="m21.547 28.568h7.227v7.999h-7.227z"/></g><path fill="#ed4c5c" d="m21.552 41.35c0 1.889-1.6 3.42-3.595 3.42s-3.612-1.531-3.612-3.42v-4.789h7.207v4.789"/><g fill="#c8b100"><path d="m15.919 44.17c.226.121.535.32.865.398l-.02-8.178h-.846v7.78z"/><path d="m14.333 41.29c.021 1.01.422 1.76.824 2.25v-7.104h-.814l-.01 4.854"/></g><path fill="#c7b500" d="m17.526 44.752c.33.033.577.027.844 0v-8.357h-.844v8.357"/><path fill="#c8b100" d="m19.11 44.572c.332-.066.704-.271.866-.377v-7.801h-.845l-.021 8.178"/><path fill="#ed4c5c" d="m14.346 28.568h7.204v7.999h-7.204z"/><path fill="#c8b100" d="m20.763 43.46c.352-.313.682-1.021.803-1.832l.021-5.23h-.845l.021 7.06"/><g fill="#ed4c5c"><path d="m28.78 36.563v4.789c0 1.889-1.619 3.42-3.615 3.42-1.994 0-3.613-1.531-3.613-3.42v-4.789h7.228"/><path d="m26.17 29.964c.256.603.253 2.077-.647 1.763.17.059.257.813.567 1.162.528.598 1.107.061.965-.581-.245-1.105-.117-1.814.106-2.892.019.144.501.119.676-.107-.134.288-.158.688-.045.699-.176.29-.726.771-.76 1.094-.071.695.975 2.048-.205 2.318-.783.18-.311.799.017 1.109-.009-.008-.361 1.275-.204 1.219-.845.305-.566-.375-.566-.375.36-1.152-.654-1.271-.567-1.472-1-.053.128.935-.821.935-.159 0-.573.174-.579.174-1.099-.09-.451-1.139-.132-.987.308.146.586.647.639-.051 0 0-.512-.81.757-.802-.468-.003-.84-.447-.997-.897-.166.128-.55.608-1.616.692 0 0-.339-1.073-.005-.923.367.164.646.171.982-.209-.24-.254-1.404-.718-1.23-1.43.048-.191.589-.479.589-.479-.086.494.173.968.813 1.045.827.1.486-.198.557-.449.064-.224.683.083.533-.419-.021-.072-.715-.233-.488-.45.557-.509 1.231-.2 1.664.316"/><path d="m21.606 44.611l-.233-.531.234-.535.232.535-.233.531"/></g><g fill="#c8b100"><path d="m16.454 30.28v.535h.233v.365h-.499v1.06h.266v2.13h-.532v1.091h4.078v-1.091h-.528v-2.13h.265v-1.06h-.498v-.365h.233v-.535h-.994v.535h.232v.365h-.498v-1.16h.266v-.532h-1.03v.532h.266v1.16h-.498v-.365h.232v-.535z"/><path d="m27.75 42.607v-4.992h-5.168v4.992l2.414 1.111v.002h.002.334.004v-.002l2.414-1.111m-2.756-4.65l.002 1.738-1.74-1.738h1.738m-2.07.152l2 1.998-2 2v-4m.137 4.348l1.936-1.936v2.818l-1.936-.882m2.275.883v-2.818l1.936 1.936-1.936.882m2.072-1.231l-2-2 2-1.998v4m-2.072-4.152h1.74l-1.74 1.738v-1.738"/></g><path fill="#ed4c5c" d="m19.235 36.533c0-1.451 1.045-2.627 2.334-2.627s2.334 1.176 2.334 2.627c0 1.449-1.045 2.625-2.334 2.625s-2.334-1.176-2.334-2.625"/><path fill="#005bbf" d="m19.927 36.528c0-1.064.736-1.927 1.644-1.927.906 0 1.642.862 1.642 1.927 0 1.063-.735 1.927-1.642 1.927-.908 0-1.644-.863-1.644-1.927"/><g fill="#c8b100"><path d="m20.794 35.2l-.425 1.1.29.098-.135.381h.546l-.137-.381.287-.098-.426-1.1"/><path d="m22.321 35.2l-.425 1.1.294.098-.14.381h.545l-.136-.381.291-.098-.429-1.1"/><path d="m21.558 36.516l-.428 1.095.292.102-.135.377h.545l-.136-.377.291-.102-.43-1.095"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#ffce31"/><g fill="#ed4c5c"><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z"/></g><g fill="#c8b100"><path d="m9.2 28.7h3.2v1.8h-3.2z"/><path d="m9.2 41.9h3.3v1.7h-3.3z"/></g><path d="m8.9 39.1c-.3.2-.5.4-.5.5 0 .1.1.2.3.3.2.1.4.3.3.5.2-.2.3-.4.3-.6 0-.3-.2-.6-.4-.7" fill="#ed4c5c"/><path fill="#fff" d="m9.7 30.5h2.3v11.4h-2.3z"/><g fill="#ed4c5c"><path d="m14.4 34.7c-.5-.2-1.4-.4-2.4-.4-.3 0-.7 0-1.1.1-1.4.2-2.5.8-2.4 1.2l-.5-1.1c-.1-.5 1.1-1.1 2.6-1.4.5-.1 1-.1 1.4-.1 1 0 1.9.1 2.4.3v1.4"/><path d="m9.7 36.2c-.6 0-1.1-.2-1.1-.5 0-.2.2-.5.6-.7.2 0 .4 0 .6 0l-.1 1.2"/><path d="m12 35.3c.4.1.7.2.9.3.1.1-.3.5-.9.8v-1.1"/><path d="m8.2 38.4c-.1-.2.6-.6 1.5-.9.4-.1.7-.3 1.2-.5 1.2-.5 2.2-1.2 2-1.4l.2 1.2c.1.2-.7.8-1.9 1.4-.4.2-1.1.5-1.5.6-.7.2-1.3.6-1.3.7l-.2-1.1"/></g><g fill="#c8b100"><path d="m30.7 28.7h3.2v1.8h-3.2z"/><path d="m30.6 41.9h3.3v1.7h-3.3z"/></g><path d="m34.2 39.1c.3.2.5.4.5.5 0 .1-.1.2-.3.3-.2.2-.4.5-.3.6-.2-.2-.3-.4-.3-.6 0-.4.2-.7.4-.8" fill="#ed4c5c"/><path fill="#fff" d="m31.1 30.5h2.3v11.4h-2.3z"/><g fill="#ed4c5c"><path d="m28.7 34.7c.5-.2 1.4-.4 2.4-.4.3 0 .7 0 1.1.1 1.4.2 2.5.8 2.4 1.2l.5-1.2c.1-.5-1.1-1.1-2.6-1.4-.5 0-1 0-1.4 0-1 0-1.9.1-2.4.3v1.4"/><path d="m33.4 36.2c.6 0 1.1-.2 1.1-.5 0-.2-.2-.5-.6-.7-.2 0-.4 0-.6 0l.1 1.2"/><path d="m31.1 35.3c-.4.1-.7.2-.9.3-.1.1.3.5.9.8v-1.1"/><path d="m34.9 38.4c.1-.2-.6-.6-1.5-.9-.4-.1-.7-.3-1.2-.5-1.2-.5-2.2-1.2-2-1.4l-.2 1.2c-.1.2.7.8 1.9 1.4.4.2 1.1.5 1.5.6.7.2 1.3.7 1.2.8l.3-1.2"/><path d="m21.5 22.3c1.9 0 5.8.4 7.2 1.8-1.5 3.6-3.9 2.1-7.2 2.1-3.2 0-5.7 1.5-7.2-2.1 1.4-1.4 5.2-1.8 7.2-1.8"/></g><g fill="#c8b100"><path d="m26.4 26.3c-1.2-.7-3-.8-4.9-.8-1.9 0-3.7.2-4.9.8l.4 1.7c1.1.3 2.7.5 4.5.5 1.8 0 3.3-.2 4.5-.5l.4-1.7"/><path d="m28.1 22c-.4-.3-1.2-.6-1.9-.6-.3 0-.6 0-.9.1 0 0-.6-.8-2-.8-.5 0-.9.1-1.3.3v-.1c-.1-.2-.3-.4-.5-.4s-.5.3-.5.5v.1c-.4-.2-.8-.3-1.3-.3-1.4 0-2 .9-2 .8-.3-.1-.6-.1-.9-.1-4.6 0-2.3 3.1-2.3 3.1l.5-.6c-1.1-1.4-.1-2.2 1.9-2.2.3 0 .5 0 .7.1-.7 1 .6 1.9.6 1.9l.3-.5c-.7-.5-.8-2.2 1.2-2.2.5 0 .9.1 1.3.4 0 .1-.1 1.5-.2 1.7l.8.7.8-.7c-.1-.3-.2-1.6-.2-1.7.3-.2.8-.4 1.3-.4 2.1 0 2.1 1.7 1.2 2.2l.3.5c0 0 1.1-.9.6-1.9.2 0 .5-.1.7-.1 2.4 0 2.5 1.8 1.9 2.2l.4.6c-.2 0 .9-1.4-.5-2.6"/></g><path d="m20.9 20.1c0-.3.3-.6.6-.6.4 0 .6.3.6.6s-.3.6-.6.6c-.3 0-.6-.3-.6-.6" fill="#005bbf"/><path fill="#c8b100" d="m21.3 18.4v.3h-.3v.3h.3v.5.5h-.4v.1.2h1.2l.1-.2-.1-.1h-.4v-.5-.5h.3v-.3h-.3v-.3z"/><path d="m21.5 28.3c-1.6 0-3-.2-4.1-.5 1.1-.3 2.5-.5 4.1-.5 1.6 0 3 .2 4.1.5-1 .3-2.5.5-4.1.5" fill="#ed4c5c"/><g fill="#fff"><path d="m21.6 45.6c-1.9 0-3.7-.5-5.3-1.2-1.2-.6-1.9-1.7-1.9-3v-4.8h14.4v4.8c0 1.3-.8 2.5-1.9 3-1.6.8-3.4 1.2-5.3 1.2"/><path d="m21.5 28.6h7.2v8h-7.2z"/></g><path d="m21.6 41.4c0 1.9-1.6 3.4-3.6 3.4s-3.6-1.5-3.6-3.4v-4.8h7.2v4.8" fill="#ed4c5c"/><g fill="#c8b100"><path d="m15.9 44.2c.2.1.5.3.9.4v-8.2h-.8l-.1 7.8"/><path d="m14.3 41.3c0 1 .4 1.8.8 2.2v-7.1h-.8v4.9"/></g><path d="m17.5 44.8c.3 0 .6 0 .8 0v-8.4h-.8v8.4" fill="#c7b500"/><path d="m19.1 44.6c.3-.1.7-.3.9-.4v-7.8h-.8l-.1 8.2" fill="#c8b100"/><path fill="#ed4c5c" d="m14.3 28.6h7.2v8h-7.2z"/><path d="m20.8 43.5c.4-.3.7-1 .8-1.8v-5.2h-.8v7" fill="#c8b100"/><g fill="#ed4c5c"><path d="m28.8 36.6v4.8c0 1.9-1.6 3.4-3.6 3.4-2 0-3.6-1.5-3.6-3.4v-4.8h7.2"/><path d="m26.2 30c.3.6.3 2.1-.6 1.8.2.1.3.8.6 1.2.5.6 1.1.1 1-.6-.2-1.1-.1-1.8.1-2.9 0 .1.5.1.7-.1-.1.3-.2.7 0 .7-.2.3-.7.8-.8 1.1-.1.7 1 2-.2 2.3-.8.2-.3.8 0 1.1 0 0-.4 1.3-.2 1.2-.8.3-.6-.4-.6-.4.4-1.2-.7-1.3-.6-1.5-1-.1.1.9-.8.9-.2 0-.6.2-.6.2-1.1-.1-.5-1.1-.1-1 .3.1.6.6.6-.1 0 0-.5-.8.8-.8-.5 0-.8-.4-1-.9-.2.1-.5.6-1.6.7 0 0-.3-1.1 0-.9.4.2.6.2 1-.2-.2-.3-1.4-.7-1.2-1.4 0-.2.6-.5.6-.5-.1.5.2 1 .8 1 .8.1.5-.2.6-.4.1-.2.7.1.5-.4 0-.1-.7-.2-.5-.5.4-.5 1-.1 1.5.4"/><path d="m21.6 44.6l-.2-.5.2-.6.2.6-.2.5"/></g><g fill="#c8b100"><path d="m16.5 30.3v.5h.2v.4h-.5v1h.3v2.2h-.6v1.1h4.1v-1.1h-.5v-2.2h.2v-1h-.5v-.4h.3v-.5h-1v.5h.2v.4h-.5v-1.2h.3v-.5h-1.1v.5h.3v1.2h-.5v-.4h.2v-.5z"/><path d="m27.8 42.6v-5h-5.2v5l2.4 1.1h.3l2.5-1.1m-2.8-4.6v1.7l-1.7-1.7h1.7m-2.1.1l2 2-2 2v-4m.2 4.4l1.9-1.9v2.8l-1.9-.9m2.2.8v-2.8l1.9 1.9-1.9.9m2.1-1.2l-2-2 2-2v4m-2.1-4.1h1.7l-1.7 1.7v-1.7"/></g><path d="m19.2 36.5c0-1.5 1-2.6 2.3-2.6s2.3 1.2 2.3 2.6c0 1.4-1 2.6-2.3 2.6s-2.3-1.1-2.3-2.6" fill="#ed4c5c"/><path d="m19.9 36.5c0-1.1.7-1.9 1.6-1.9.9 0 1.6.9 1.6 1.9 0 1.1-.7 1.9-1.6 1.9-.8.1-1.6-.8-1.6-1.9" fill="#005bbf"/><g fill="#c8b100"><path d="m20.8 35.2l-.4 1.1.3.1-.2.4h.6l-.2-.4.3-.1-.4-1.1"/><path d="m22.3 35.2l-.4 1.1.3.1-.2.4h.6l-.1-.4.3-.1-.5-1.1"/><path d="m21.6 36.5l-.5 1.1.3.1-.1.4h.5l-.1-.4.3-.1-.4-1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f9.svg
index 7ab2e3a..ab72447 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/><path fill="#699635" d="M32,2C18.939,2,7.834,10.35,3.715,22h56.572C56.168,10.35,45.061,2,32,2z"/><path fill="#ffce31" d="m60.29 42c1.106-3.128 1.713-6.492 1.713-10 0-3.507-.607-6.871-1.713-10h-56.57c-1.108 3.129-1.715 6.493-1.715 10 0 3.508.607 6.872 1.715 10h56.57"/><circle fill="#428bc1" cx="32" cy="32" r="14"/><g fill="#ffce31"><path d="m35.791 33.3l6.06-4.318-7.51-.021v-.002l-2.342-6.954-2.342 6.953v.002l-7.51.021 6.06 4.318-2.299 6.967 6.088-4.282h.002l6.088 4.282-2.299-6.966m3.52-3.516l-3.791 2.704-.904-2.716 4.695.012m-10.122 3.206l1.074-3.22h3.473l1.074 3.22-2.81 1.99-2.811-1.99m2.811-8.381l1.465 4.35h-2.93l1.465-4.35m-7.311 5.175l4.697-.012-.906 2.716-3.791-2.704m2.793 8.379l1.438-4.36 2.371 1.679-3.809 2.681m9.04 0l-3.809-2.682 2.369-1.679 1.44 4.361"/><path d="m31.584 37.27v4.73h.834v-4.73l-.418-.291z"/><path d="m25.906 32.659l-3.906 1.142.24.776 4.51-1.317z"/><path d="m29.05 28.14l.278-.806-3.108-3.847-.654.5 3.356 4.153z"/><path d="m35.08 28.14l3.354-4.153-.655-.5-3.107 3.847.273.806z"/><path d="m38.09 32.659l-.84.601 4.512 1.317.238-.776z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#699635"/><path d="m60.3 42c1.1-3.1 1.7-6.5 1.7-10 0-3.5-.6-6.9-1.7-10h-56.6c-1.1 3.1-1.7 6.5-1.7 10 0 3.5.6 6.9 1.7 10h56.6" fill="#ffce31"/><circle cx="32" cy="32" r="14" fill="#428bc1"/><g fill="#ffce31"><path d="m35.8 33.3l6.1-4.3h-7.5l-2.4-7-2.3 7h-7.5l6.1 4.3-2.3 7 6-4.3 6.1 4.3-2.3-7m3.5-3.5l-3.8 2.7-.9-2.7h4.7m-10.1 3.2l1.1-3.2h3.5l1.1 3.2-2.9 2-2.8-2m2.8-8.4l1.5 4.4h-2.9l1.4-4.4m-7.3 5.2h4.7l-.9 2.7-3.8-2.7m2.8 8.4l1.4-4.4 2.4 1.7-3.8 2.7m9 0l-3.8-2.7 2.4-1.7 1.4 4.4"/><path d="m31.6 37.3v4.7h.8v-4.7l-.4-.3z"/><path d="m25.9 32.7l-3.9 1.1.2.8 4.6-1.3z"/><path d="m29.1 28.1l.2-.8-3.1-3.8-.6.5 3.3 4.1z"/><path d="m35.1 28.1l3.3-4.1-.6-.5-3.1 3.8.2.8z"/><path d="m38.1 32.7l-.9.6 4.6 1.3.2-.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1fa.svg
index 1e337cd..40416b4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea-1f1fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#2a5f9e" cx="32" cy="32" r="30"/><g fill="#ffce31"><path d="m32 11.801l.719 2.209h2.321l-1.88 1.359.717 2.205-1.877-1.363-1.87 1.363.712-2.205-1.875-1.359h2.323z"/><path d="m32 45.778l.717 2.206h2.323l-1.88 1.366.717 2.2-1.877-1.36-1.87 1.36.712-2.2-1.875-1.366h2.323z"/><path d="m40.42 43.03l.72 2.21h2.32l-1.88 1.362.72 2.205-1.88-1.367-1.875 1.367.715-2.205-1.87-1.362h2.314z"/><path d="m46.22 37.23l.718 2.209h2.322l-1.88 1.364.72 2.207-1.88-1.365-1.88 1.365.72-2.207-1.87-1.364h2.314z"/><path d="m48.965 28.789l.717 2.206h2.318l-1.87 1.363.711 2.205-1.876-1.363-1.875 1.363.715-2.205-1.875-1.363h2.32z"/><path d="m46.22 20.344l.718 2.207h2.322l-1.88 1.363.72 2.206-1.88-1.364-1.88 1.364.72-2.206-1.87-1.363h2.314z"/><path d="m40.42 14.546l.72 2.206h2.32l-1.88 1.358.72 2.21-1.88-1.363-1.875 1.363.715-2.21-1.88-1.358h2.324z"/><path d="m23.58 43.03l-.717 2.21h-2.318l1.876 1.362-.717 2.205 1.876-1.367 1.877 1.367-.717-2.205 1.875-1.362h-2.318z"/><path d="m17.781 37.23l-.721 2.209h-2.314l1.876 1.364-.717 2.207 1.876-1.365 1.875 1.365-.716-2.207 1.876-1.364h-2.318z"/><path d="m15.04 28.789l-.72 2.206h-2.32l1.876 1.363-.716 2.205 1.88-1.363 1.872 1.363-.716-2.205 1.874-1.363h-2.318z"/><path d="m17.781 20.344l-.721 2.207h-2.314l1.876 1.363-.717 2.206 1.876-1.364 1.875 1.364-.716-2.206 1.876-1.363h-2.318z"/><path d="m23.58 14.546l-.716 2.206h-2.319l1.876 1.358-.716 2.21 1.875-1.363 1.877 1.363-.717-2.21 1.875-1.358h-2.318z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#2a5f9e"/><g fill="#ffce31"><path d="m32 11.8l.7 2.2h2.3l-1.8 1.4.7 2.2-1.9-1.4-1.9 1.4.7-2.2-1.8-1.4h2.3z"/><path d="m32 45.8l.7 2.2h2.3l-1.8 1.3.7 2.3-1.9-1.4-1.9 1.4.7-2.3-1.8-1.3h2.3z"/><path d="m40.4 43l.7 2.2h2.4l-1.9 1.4.7 2.2-1.9-1.4-1.9 1.4.8-2.2-1.9-1.4h2.3z"/><path d="m46.2 37.2l.7 2.2h2.4l-1.9 1.4.7 2.2-1.9-1.4-1.9 1.4.8-2.2-1.9-1.4h2.3z"/><path d="m49 28.8l.7 2.2h2.3l-1.9 1.4.7 2.2-1.8-1.4-1.9 1.4.7-2.2-1.9-1.4h2.3z"/><path d="m46.2 20.3l.7 2.3h2.4l-1.9 1.3.7 2.2-1.9-1.3-1.9 1.3.8-2.2-1.9-1.3h2.3z"/><path d="m40.4 14.5l.7 2.3h2.4l-1.9 1.3.7 2.2-1.9-1.3-1.9 1.3.8-2.2-1.9-1.3h2.3z"/><path d="m23.6 43l-.7 2.2h-2.4l1.9 1.4-.7 2.2 1.9-1.4 1.9 1.4-.8-2.2 1.9-1.4h-2.3z"/><path d="m17.8 37.2l-.7 2.2h-2.4l1.9 1.4-.7 2.2 1.9-1.4 1.9 1.4-.8-2.2 1.9-1.4h-2.3z"/><path d="m15 28.8l-.7 2.2h-2.3l1.9 1.4-.7 2.2 1.8-1.4 1.9 1.4-.7-2.2 1.9-1.4h-2.3z"/><path d="m17.8 20.3l-.7 2.3h-2.4l1.9 1.3-.7 2.2 1.9-1.3 1.9 1.3-.8-2.2 1.9-1.3h-2.3z"/><path d="m23.6 14.5l-.7 2.3h-2.4l1.9 1.3-.7 2.2 1.9-1.3 1.9 1.3-.8-2.2 1.9-1.3h-2.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ea.svg
new file mode 100644
index 0000000..6727438
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ea.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M42.3,22.6H26.9v6.2H41v5H26.9v7.5H43v5.2H21v-29h21.3V22.6z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ee.svg
index 9048eb1..0894ffc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f9f9f9"><path d="m61.15 25c-3.154-13.19-15.01-23-29.17-23-.335 0-.667.015-1 .025v22.975h30.17"/><path d="M16.977,6.023C9.959,10.084,4.743,16.902,2.806,25h14.17V6.023z"/><path d="M2.806,39c1.937,8.098,7.153,14.916,14.17,18.977V39H2.806z"/><path d="m30.977 61.975c.333.011.665.025 1 .025 14.157 0 26.02-9.81 29.17-23h-30.17v22.975"/></g><path fill="#428bc1" d="m61.15 25h-30.17v-22.975c-5.09.167-9.857 1.601-14 3.998v18.977h-14.17c-.537 2.247-.83 4.589-.83 7s.292 4.754.83 7h14.17v18.977c4.143 2.397 8.91 3.831 14 3.998v-22.975h30.17c.537-2.246.83-4.589.83-7s-.292-4.753-.83-7"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f9f9f9"><path d="m61.1 25c-3.1-13.2-15-23-29.1-23-.3 0-.7 0-1 0v23h30.1"/><path d="m17 6c-7 4.1-12.3 10.9-14.2 19h14.2v-19"/><path d="M2.8,39C4.7,47.1,10,53.9,17,58V39H2.8z"/><path d="m31 62c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2v23"/></g><path d="m61.1 25h-30.1v-23c-5.1.2-9.9 1.6-14 4v19h-14.2c-.5 2.2-.8 4.6-.8 7s.3 4.8.8 7h14.2v19c4.1 2.4 8.9 3.8 14 4v-23h30.2c.5-2.2.8-4.6.8-7s-.3-4.8-.9-7" fill="#428bc1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ef.svg
index 597403f..0bbbeae 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h20v20h-20z"/><path fill="#fff" d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path fill="#42ade2" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#fff" d="M11,18.912H5.011C3.088,22.869,2,27.306,2,32h12V13.912h-3V18.912z"/><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><path fill="#fff" d="m39.15 26.894v13.147c0 4.299 7.77 6.854 7.77 6.854s7.77-2.555 7.77-6.854v-13.147h-15.54"/><path fill="#ed4c5c" d="m54.686 31.971v-5.077h-15.536v5.077h6.689v5.462h-6.689v2.153h6.689v6.894l1.077.415 1.077-.415v-6.894h6.693v-2.153h-6.693v-5.462z"/><path fill="#ffe62e" d="m54.17 30.613c0-.125-.349-.142-.375-.327-.063-.493-.238-.678-.502-.749-.265-.071-.44.044-.44.044-.079.115-.476.115-.696.123-.22.009-.662-.527-.717-.555.285.004.5-.128.823-.466.352-.37.604-.227.604-.227-.171.345.057.315.057.315.467-.238-.07-1.126-.212-1.1-.619.865-.608-.107-1.506-.16-.482-.028-1.55.211-1.902.353-.353.141-1.475-.179-2.137-.097-1.453.182-1.495-.578-1.495-.578s-.948.813.858 1.625c0 0-.703-.691 2.71-.492.774-.132 2.12-.661 2.479-.322 0 0 .041.268.191.339 0 0 .02.302-.986.246-2.451-.136-5.947 1.094-6.378.24-.274-.543.741-.742.741-.742-.229-.282-.714-.132-.714-.132.009-.344-.132-.74-.132-.74-.476.053-.748.449-.748.449-.018-.352-.468-.554-.468-.554.167.202.062 2.02-1.163 1.457 0 0-.68-.403-.919-.388-.238.015-1.522.612-1.171.948 0 0 .99-.632 1.472-.118.572.611 1.541.568 1.541.568-.123.264-.473 1.057-.473 1.057.003.001.006.001.009.002-.004.007-.009.014-.012.021 0 0-.537.187-.775.448 0 0-1.714-1.352-1.837-.045-.029.312 1.403.75 2.439.412.589-.141.785-.382.785-.382.185-.036 2.794.218 5.556-1.196.572-.819 1.428-.393 1.428-.393s-1.368.033-1.252.903c.025.189.625.353.47.602-.003.004-.006.008-.009.012-.264.361-.974-.431-1.315-.526-.158-.044-.659.106-.245.612.453.554 1.308 1.289 2.668-.119.232-.241-.273-.37-.379-.52-.106-.15.026-.124.026-.124.423.229.458-.502.458-.502.044.422.414.537.414.537.229-.229.062-.696.062-.696.546.978.877.822.877.822-.294-.182-.146-.426-.146-.426.265 1.039 1.348.132 1.348.132-.053.15.001.238.098.335.097.097.211.141.158.317s-.556.144-.556.144-.493-.026-.449.388c.026.096 1.837.215 1.837-.775"/><g fill="#cecece"><path d="m45.06 44.647c.024.007.015.005 0 0"/><path d="m44.22 43.636c-.033-.304-.406-1.01-.406-1.01 1.059.143 1.457-.984 1.457-.984-.265.106-.934-.196-.934-.196.974-.092.934-1.098.934-1.098-.158.674-1.447.584-1.447.584.371-.16.583-.902.583-.902-.085.264-.778.482-1.222.73-.443.249-.21.965-.21.965-.125-.085-.366-.467-.413-.801-.047-.335-.179-.467-.482-.506s-.482.303-.482.303l-.451.234.459.016c0 0 .327.109.327.365 0 .258-.288 1.285.187 1.861.318.386 1.466.613 1.545.629l.438 1.061.381-.42.765.037c-.281-.047-1.029-.872-1.029-.872"/></g><path fill="#c94747" d="m53.46 40.19c-.001-.001-.313-.091-.791-.277s-1.018.524-1.018.524c-.217.381.382.366.396.299.015-.066.205-.262.437-.403.231-.143.476.337.729.337.252 0 .246-.467.247-.48"/><path fill="#ffe62e" d="m50.03 41.17c0 0 0-.948.852-.98.539-.02 1.721.604 1.839 1.129.123.547-.256.935-.596 1.1"/><path fill="#75a843" d="m53.21 33.379l.93.012c-.235-.416-1.023-.439-1.652-.338.396-.125.883-.262.96-.277-.195-.144-1.012-.65-2.051.378h-.017c-1.039-1.03-1.856-.523-2.052-.379.077.015.564.152.961.277-.63-.102-1.418-.078-1.653.338l.93-.012c-.389.186-.601.205-.657.662.022-.01.505-.139 1-.269-.27.134-.51.298-.619.466.44.034.828-.085 1.121-.226-.182.233-.295.487-.278.635.219-.039.444-.227.629-.423-.112.43-.104.869.021 1.049.181-.141.312-.381.407-.641l-.013.252h.39l-.016-.356c.098.296.24.587.444.745.124-.18.133-.619.021-1.049.184.196.409.384.628.423.018-.147-.097-.401-.278-.635.293.141.681.26 1.121.226-.109-.168-.35-.332-.618-.466.494.13.977.259 1 .269-.058-.457-.27-.477-.659-.662"/><path fill="#c94747" d="m51.07 34.23h.628v2.775h-.628z"/><g fill="#75a843"><path d="m49.96 41.16c-.642-.002-.137 1.406-.426 1.248-.407-.222-.634 1.061.01 1.49 1.029.685 1.846-.154 1.725-.377-.207-.377.934-.567.934-.859-.001-.824-1.568-1.5-2.243-1.502"/><path d="m43.854 34.27c-.007-.023-.014-.047-.022-.072-.021-.221-.093-.395-.24-.457-.234-.277-.475-.121-.678.188-.134.088-.224.173-.282.247.023-.865.148-1.667 1.271-.564 0 0 .026-.445-.618-.938-.674-.515-.946.119-1.021.91-.086-.146-.286-.377-.741-.572-.809-.348-.911.357-.787 1.127-.32-.393-.719-.569-1.091-.022-.407.599-.231.892-.231.892.72-1.391 1.122-.527 1.468.129-.455-.365-1.094-.671-1.204-.017-.084.496.132.64.132.64.057-1.582 1.197.07 1.529-.086.003-.001.006-.004.008-.007.013-.007.021-.026.023-.054.111-.165.145-.629.24-.973.327.227.663.885.873.83.004-.002.007-.004.01-.006.015-.006.026-.023.035-.053.107-.109.21-.393.324-.672.371-.056.377.994.607 1.014.004 0 .006-.001.009-.002.013 0 .027-.012.044-.032.356-.179 1.219-1.702 1.218-.168 0 0 .188-.19.133-.703-.072-.661-.603-.257-1 .198.313-.754.68-1.7 1.243-.366 0 0 .159-.344-.17-.908-.356-.611-.774-.136-1.082.497m-2.419-.074c-.098-.019-.19-.002-.271.065-.02-.113-.033-.221-.038-.321.325-.299.537-.284.686-.117-.163.007-.287.159-.377.373m-.196.447c.024-.023.049-.041.073-.053-.015.068-.027.139-.039.207-.01-.051-.022-.103-.034-.154m1.49-.371c-.037.082-.072.166-.104.252.001-.064.002-.129.003-.193.035-.022.069-.042.101-.059m-.475-.565c-.004-.008-.008-.016-.011-.022.004.002.008.005.012.007-.001.004-.001.009-.001.015m-.519.641c.069-.096.161-.137.289-.086.053.171.096.361.138.539-.125-.17-.274-.338-.427-.453m1.254.081c.075-.149.156-.272.247-.331.373.009.266.572.192 1.041-.078-.324-.227-.662-.439-.71"/></g><g fill="#c94747"><path d="m49.604 44.12c-.034-.024.117-.101.117-.121 0-.053-.089-.149-.119-.134 0 0-.102.16-.119.148-.62-.41-1.017 1.278-1.017 1.278s1.806-.69 1.138-1.171"/><path d="m41.05 35.37l.22 1.41.322-.04-.212-1.41z"/><path transform="matrix(-.997-.0769.0769-.997 81.88 74.894)" d="m42.22 35.09h.33v1.556h-.33z"/><path d="m42.848 36.578l.242.11.575-1.186-.235-.111z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h20v20h-20z"/><path fill="#fff" d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#42ade2"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="M39.1,26.9V40c0,4.3,7.8,6.9,7.8,6.9s7.8-2.6,7.8-6.9V26.9H39.1z" fill="#fff"/><path fill="#ed4c5c" d="m54.7 32v-5.1h-15.6v5.1h6.7v5.4h-6.7v2.2h6.7v6.9l1.1.4 1.1-.4v-6.9h6.7v-2.2h-6.7v-5.4z"/><path d="m54.2 30.6c0-.1-.3-.1-.4-.3-.1-.5-.2-.7-.5-.7-.3-.1-.4 0-.4 0-.1.1-.5.1-.7.1-.2 0-.7-.5-.7-.6.3 0 .5-.1.8-.5.4-.4.6-.2.6-.2-.2.3.1.3.1.3.5-.2-.1-1.1-.2-1.1-.6.9-.6-.1-1.5-.2-.5 0-1.5.2-1.9.4-.4.1-1.5-.2-2.1-.1-1.5.2-1.5-.6-1.5-.6s-.9.8.9 1.6c0 0-.7-.7 2.7-.5.8-.1 2.1-.7 2.5-.3 0 0 0 .3.2.3 0 0 0 .3-1 .2-2.5-.1-5.9 1.1-6.4.2-.3-.5.7-.7.7-.7-.2-.3-.7-.1-.7-.1 0-.3-.1-.7-.1-.7-.5.1-.7.4-.7.4 0-.4-.5-.6-.5-.6.2.2.1 2-1.2 1.5 0 0-.7-.4-.9-.4-.2 0-1.5.6-1.2.9 0 0 1-.6 1.5-.1.6.6 1.5.6 1.5.6-.1.3-.5 1.1-.5 1.1 0 0-.5.2-.8.4 0 0-1.7-1.4-1.8 0 0 .3 1.4.8 2.4.4.6-.1.8-.4.8-.4.2 0 2.8.2 5.6-1.2.6-.8 1.4-.4 1.4-.4s-1.4 0-1.3.9c0 .2.6.4.5.6-.3.4-1-.4-1.3-.5-.2 0-.7.1-.2.6.5.6 1.3 1.3 2.7-.1.2-.2-.3-.4-.4-.5-.1-.1 0-.1 0-.1.4.2.5-.5.5-.5 0 .4.4.5.4.5.2-.2.1-.7.1-.7.5 1 .9.8.9.8-.3-.2-.1-.4-.1-.4.3 1 1.3.1 1.3.1-.1.1 0 .2.1.3.1.1.2.1.2.3s-.8.4-.8.4-.5 0-.4.4c0 .1 1.8.2 1.8-.8" fill="#ffe62e"/><g fill="#cecece"><path d="m45.1 44.6c0 .1 0 .1 0 0"/><path d="m44.2 43.6c0-.3-.4-1-.4-1 1.1.1 1.5-1 1.5-1-.3.1-.9-.2-.9-.2 1-.1.9-1.1.9-1.1-.2.7-1.4.6-1.4.6.4-.2.6-.9.6-.9-.1.3-.8.5-1.2.7-.4.2-.2 1-.2 1-.1-.1-.4-.5-.4-.8 0-.3-.2-.5-.5-.5s-.5.3-.5.3l-.6.3h.5c0 0 .3.1.3.4 0 .3-.3 1.3.2 1.9.3.4 1.5.6 1.5.6l.4 1.1.4-.4h.8c-.2-.1-1-1-1-1"/></g><path d="m53.5 40.2c0 0-.3-.1-.8-.3s-1 .5-1 .5c-.2.4.4.4.4.3 0-.1.2-.3.4-.4.2-.1.5.3.7.3.3.1.3-.4.3-.4" fill="#c94747"/><path d="m50 41.2c0 0 0-.9.9-1 .5 0 1.7.6 1.8 1.1.1.5-.3.9-.6 1.1" fill="#ffe62e"/><path d="m53.2 33.4h.9c-.2-.4-1-.4-1.7-.3.4-.1.9-.3 1-.3-.2-.1-1-.7-2.1.4-1-1-1.9-.5-2.1-.4.1 0 .6.2 1 .3-.6-.1-1.4-.1-1.7.3h.9c-.4.2-.6.2-.7.7 0 0 .5-.1 1-.3-.3.1-.5.3-.6.5.4 0 .8-.1 1.1-.2-.2.2-.3.5-.3.6.2 0 .4-.2.6-.4-.1.4-.1.9 0 1 .2-.1.3-.4.4-.6v.3h.4v-.4c.1.3.2.6.4.7.1-.2.1-.6 0-1 .2.2.4.4.6.4 0-.1-.1-.4-.3-.6.3.1.7.3 1.1.2-.1-.2-.3-.3-.6-.5.5.1 1 .3 1 .3.3-.5.1-.5-.3-.7" fill="#75a843"/><path fill="#c94747" d="m51.1 34.2h.6v2.8h-.6z"/><g fill="#75a843"><path d="m50 41.2c-.6 0-.1 1.4-.4 1.2-.4-.2-.6 1.1 0 1.5 1 .7 1.8-.2 1.7-.4-.2-.4.9-.6.9-.9 0-.8-1.6-1.4-2.2-1.4"/><path d="m43.9 34.3c-.1-.1-.1-.1 0 0 0-.3-.1-.5-.3-.5-.2-.3-.5-.1-.7.2-.1.1-.2.2-.3.2 0-.9.1-1.7 1.3-.6 0 0 0-.4-.6-.9-.7-.5-.9.1-1 .9-.1-.1-.3-.4-.7-.6-.8-.3-.9.4-.8 1.1-.3-.4-.7-.6-1.1 0-.4.6-.2.9-.2.9.7-1.4 1.1-.5 1.5.1-.5-.4-1.1-.7-1.2 0-.1.5.1.6.1.6.1-1.6 1.2.1 1.5-.1 0 0 0 0 0-.1.1-.2.1-.6.2-1 .3.2.7.9.9.8 0 0 0 0 0-.1.1-.1.2-.4.3-.7.4-.1.4 1 .6 1 .4-.2 1.2-1.7 1.2-.2 0 0 .2-.2.1-.7-.1-.7-.6-.3-1 .2.3-.8.7-1.7 1.2-.4 0 0 .2-.3-.2-.9-.1-.3-.5.1-.8.8m-2.5-.1c-.1 0-.2 0-.3.1 0-.1 0-.2 0-.3.3-.3.5-.3.7-.1-.2-.1-.3.1-.4.3m-.2.4c.1 0 .1 0 0 0 .1 0 0 .1 0 .2.1-.1.1-.1 0-.2m1.5-.3c0 .1-.1.2-.1.3 0-.1 0-.1 0-.2.1-.1.1-.1.1-.1m-.4-.6c-.1 0-.1 0 0 0m-.6.6c.1-.1.2-.1.3-.1.1.2.1.4.1.5-.1-.1-.2-.2-.4-.4m1.3.1c.1-.1.2-.3.2-.3.4 0 .3.6.2 1-.1-.3-.2-.6-.4-.7"/></g><g fill="#c94747"><path d="m49.6 44.1c0 0 .1-.1.1-.1 0-.1-.1-.1-.1-.1 0 0-.1.2-.1.1-.6-.4-1 1.3-1 1.3s1.8-.7 1.1-1.2"/><path d="m41.1 35.4l.2 1.4.3-.1-.2-1.4z"/><path transform="matrix(.0769-.997.997.0769 3.3551 75.3688)" d="m41.6 35.7h1.6v.3h-1.6z"/><path d="m42.8 36.6l.3.1.6-1.2-.3-.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f0.svg
index 2a1c45a..29f0c85 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m11.11 11.301h21.262v21.425h-21.262z"/><path fill="#fff" d="m18.648 8.153v5.857h-7.312l14.4 18h6v-7.496z"/><path fill="#2a5f9e" d="m31.736 2.01v30h-30c0 16.568 13.432 30 30 30s30-13.432 30-30-13.431-30-30-30"/><path fill="#fff" d="m10.736 18.926h-5.989c-1.923 3.957-3.01 8.394-3.01 13.09h12v-18.09h-3v5"/><path fill="#ed4c5c" d="m31.736 27.07l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="m18.648 5.03v5.988h-7.912v3h21v-12c-4.694.001-9.132 1.089-13.09 3.01"/><path fill="#ed4c5c" d="m31.736 5.01h-13.09c-6.05 2.94-10.972 7.857-13.912 13.912v13.09h6v-21h21v-6"/><g fill="#89664c"><path d="m38.77 35.619c0-.082-.949-.322-1.389-.24-.438.083-1.245 2.229-1.282 2.27-.035.042.771 1.033.807.99.037-.04.549-.783 1.098-.865.254-.039.531.188.756.442-.007.046-.793 2.9-1.78 3.147-.165.041-.337.033-.513-.006-.054-.145-.073-1.645-.073-1.645s-.184-.908-.952-.784c-.77.124-.806.784-.806 1.031 0 .248 1.486 3.322 1.831 3.427.549.164 2.087-.496 3.039-1.569.951-1.073 1.171-4.127 1.171-4.209-.001 0-1.907-1.983-1.907-1.989"/><path d="m55.15 39.96c0-.247-.036-.907-.806-1.031-.769-.124-.952.784-.952.784s-.02 1.5-.074 1.646c-.174.038-.347.046-.511.005-.988-.247-1.773-3.102-1.781-3.147.225-.255.502-.481.757-.442.549.082 1.061.825 1.098.865.037.043.842-.948.806-.99-.037-.04-.843-2.187-1.282-2.27-.439-.082-1.388.158-1.388.24 0 .006-1.907 1.989-1.907 1.989 0 .082.22 3.136 1.172 4.209s2.49 1.733 3.039 1.569c.344-.105 1.829-3.179 1.829-3.427"/></g><path fill="#dbb471" d="m36.31 37.16c-.439.578-.674 1.023-.856 1.354-.184.331-.075.79.348 1.444.456.707 4.204 3.469 9.09 3.469 4.882 0 8.63-2.762 9.09-3.469.423-.654.527-1.113.344-1.444-.183-.331-.414-.776-.854-1.354 0 .867-3.104 3.998-8.576 3.998-5.471 0-8.577-3.131-8.577-3.998"/><path fill="#42ade2" d="m37.17 20.52v13c0 3.866 3.455 7 7.718 7s7.718-3.134 7.718-7v-13h-15.436"/><g fill="#fff"><path d="m52.608 30.02c0 0-2.895-2-3.859-2-.964 0-2.747 2-3.858 2s-2.895-2-3.858-2c-.965 0-3.859 2-3.859 2v2c0 0 2.895-2 3.859-2 .964 0 2.747 2 3.858 2s2.895-2 3.858-2c.965 0 3.859 2 3.859 2v-2"/><path d="m52.52 34.52c0 0-2.829-2-3.771-2-.965 0-2.749 2-3.86 2s-2.895-2-3.858-2c-.942 0-3.772 2-3.772 2 .112.707.34 1.378.666 2 0 0 2.33-2 3.107-2 .964 0 2.747 2 3.857 2 1.111 0 2.895-2 3.858-2 .776 0 3.106 2 3.106 2 .328-.623.555-1.293.667-2"/><path d="m50.08 38.688c0 0-.998-2-1.33-2-.965 0-2.749 2-3.86 2-1.11 0-2.894-2-3.857-2-.334 0-1.335 2-1.335 2 1.372 1.134 3.19 1.831 5.192 1.831s3.819-.697 5.19-1.831"/><path d="m42.686 23.395c0 1.105 0 2-2.205 2-1.218 0-2.205-2-2.205-2s.987-2 2.205-2c2.205 0 2.205.894 2.205 2"/><path d="m49.3 26.395c0 .553-.494 1-1.103 1h-6.615c-.608 0-1.103-.447-1.103-1v-2c0-.553.494-1 1.103-1h6.615c.608 0 1.103.447 1.103 1v2"/><path d="m41.583 27.995c0 .221.493.399 1.103.399.608 0 1.103-.179 1.103-.399v-1.202c0-.22-.494-.398-1.103-.398-.609 0-1.103.179-1.103.398v1.202"/><path d="m45.993 27.995c0 .221.493.399 1.103.399.608 0 1.103-.179 1.103-.399v-1.202c0-.22-.494-.398-1.103-.398-.609 0-1.103.179-1.103.398v1.202"/></g><path fill="#89664c" d="m50.851 35.934v-.365l.203-.371c0 0-3.207.38-3.207.41 0-.029-.015.496-.018.668-.098.08-.222.176-.367.279.014-1.168.072-6.132.072-6.187h-.259l-.071 6.359c-.601.382-1.463.784-2.438.769-.167-.003-.32-.008-.467-.016.032-1.211.063-7.42.063-7.447 0-.03-.333 0-.333 0s-.088 6.145-.106 7.42c-1.197-.111-1.66-.406-1.996-.658-.405-.305-.774-.762-.774-.762l-.024-.008c.026-1.01.026-5.505.026-5.505l-.221-.03-.036 5.459-1.884-.617.111.671.773.243c0 0 .368 3.14 4.607 3.049 3.564-.078 4.966-2.264 5.321-2.959l1.149.003c-.036-.092-.124-.405-.124-.405"/><g fill="#ed4c5c"><path d="m41.04 30.569c-.11.061-1.954.427-1.695.396.258-.031 1.732.305 1.695.213-.038-.091 0-.548 0-.609"/><path d="m44.17 30.11c-.073 0-1.143.335-1.107.335.038 0 1.217.274 1.181.213s-.037-.456-.074-.548"/><path d="m47.38 30.417c-.073.03-1.327.274-1.105.305.221.03 1.069.274 1.069.213s0-.488.036-.518"/></g><g fill="#ffe62e"><path d="m46.28 32.22c0 0-.369.335-.259.792.111.457.259.854.295.854.038 0 .443-.609.886-.641.442-.03 1.253.336 1.253.336s-.11-.732-.073-1.067c.037-.335.663-.915.663-.915l-2.765.641"/><path d="m39.899 32.406c0 0-.332.091-.221.64.11.549.369.854.404.854.039 0 .333-.52.775-.61.442-.092 1.216.274 1.216.274s-.072-.487.037-.945c.111-.457.479-.792.479-.792s-2.579.579-2.69.579"/><path d="m43.06 31.857c0 .061-.367.549-.257 1.01.109.457.33.884.369.884.035 0 .589-.487 1.068-.579.479-.091 1.179.305 1.142.305-.035 0-.184-.457-.184-.792 0-.335.553-1.372.553-1.372l-2.691.548"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m11.1 11.3h21.3v21.4h-21.3z"/><path fill="#fff" d="m18.6 8.2v5.8h-7.3l14.4 18h6v-7.5z"/><path d="m31.7 2v30h-30c0 16.6 13.4 30 30 30s30-13.4 30-30-13.4-30-30-30" fill="#2a5f9e"/><path d="m10.7 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m31.7 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.6,5v6h-7.9v3h21V2C27,2,22.6,3.1,18.6,5z" fill="#fff"/><path d="M31.7,5H18.6C12.6,8,7.7,12.9,4.7,18.9V32h6V11h21V5z" fill="#ed4c5c"/><g fill="#89664c"><path d="m38.8 35.6c0-.1-.9-.3-1.4-.2-.4.1-1.2 2.2-1.3 2.3 0 0 .8 1 .8 1 0 0 .5-.8 1.1-.9.3 0 .5.2.8.4 0 0-.8 2.9-1.8 3.1-.2 0-.3 0-.5 0-.1-.1-.1-1.6-.1-1.6s-.2-.9-1-.8c-.8.1-.8.8-.8 1 0 .2 1.5 3.3 1.8 3.4.5.2 2.1-.5 3-1.6 1-1.1 1.2-4.1 1.2-4.2.1.1-1.8-1.9-1.8-1.9"/><path d="m55.1 40c0-.2 0-.9-.8-1-.8-.1-1 .8-1 .8s0 1.5-.1 1.6c-.2 0-.3 0-.5 0-1-.2-1.8-3.1-1.8-3.1.2-.3.5-.5.8-.4.5.1 1.1.8 1.1.9 0 0 .8-.9.8-1 0 0-.8-2.2-1.3-2.3-.3-.2-1.3 0-1.3.1 0 0-1.9 2-1.9 2 0 .1.2 3.1 1.2 4.2s2.5 1.7 3 1.6c.4-.1 1.8-3.2 1.8-3.4"/></g><path d="m36.3 37.2c-.4.6-.7 1-.9 1.4-.2.3-.1.8.3 1.4.5.7 4.2 3.5 9.1 3.5 4.9 0 8.6-2.8 9.1-3.5.4-.7.5-1.1.3-1.4s-.4-.8-.9-1.4c0 .9-3.1 4-8.6 4-5.3 0-8.4-3.2-8.4-4" fill="#dbb471"/><path d="m37.2 20.5v13c0 3.9 3.5 7 7.7 7s7.7-3.1 7.7-7v-13h-15.4" fill="#42ade2"/><g fill="#fff"><path d="m52.6 30c0 0-2.9-2-3.9-2s-2.7 2-3.9 2-2.8-2-3.8-2c-1 0-3.9 2-3.9 2v2c0 0 2.9-2 3.9-2s2.7 2 3.9 2 2.9-2 3.9-2c1 0 3.9 2 3.9 2v-2z"/><path d="m52.5 34.5c0 0-2.8-2-3.8-2-1 0-2.7 2-3.9 2s-2.9-2-3.9-2c-.9 0-3.8 2-3.8 2 .1.7.3 1.4.7 2 0 0 2.3-2 3.1-2 1 0 2.7 2 3.9 2 1.1 0 2.9-2 3.9-2 .8 0 3.1 2 3.1 2 .4-.6.6-1.3.7-2"/><path d="m50.1 38.7c0 0-1-2-1.3-2-1 0-2.7 2-3.9 2-1.1 0-2.9-2-3.9-2-.3 0-1.3 2-1.3 2 1.4 1.1 3.2 1.8 5.2 1.8s3.8-.7 5.2-1.8"/><path d="m42.7 23.4c0 1.1 0 2-2.2 2-1.2 0-2.2-2-2.2-2s1-2 2.2-2c2.2 0 2.2.9 2.2 2"/><path d="m49.3 26.4c0 .6-.5 1-1.1 1h-6.6c-.6 0-1.1-.4-1.1-1v-2c0-.6.5-1 1.1-1h6.6c.6 0 1.1.4 1.1 1v2"/><path d="m41.6 28c0 .2.5.4 1.1.4.6 0 1.1-.2 1.1-.4v-1.2c0-.2-.5-.4-1.1-.4-.6 0-1.1.2-1.1.4v1.2"/><path d="m46 28c0 .2.5.4 1.1.4.6 0 1.1-.2 1.1-.4v-1.2c0-.2-.5-.4-1.1-.4-.6 0-1.1.2-1.1.4v1.2"/></g><path d="m50.9 35.9v-.4l.2-.4c0 0-3.2.4-3.2.4 0 0 0 .5 0 .7-.1.1-.2.2-.4.3 0-1.2.1-6.1.1-6.2h-.3l-.1 6.4c-.6.4-1.5.8-2.4.8-.2 0-.3 0-.5 0 0-1.2.1-7.4.1-7.4 0 0-.3 0-.3 0s-.1 6.1-.1 7.4c-1.2-.1-1.7-.4-2-.7-.4-.3-.8-.8-.8-.8 0-1 0-5.5 0-5.5h-.2v5.5l-2-.7.1.7.8.2c0 0 .4 3.1 4.6 3 3.6-.1 5-2.3 5.3-3h1.1c0 0 0-.3 0-.3" fill="#89664c"/><g fill="#ed4c5c"><path d="m41 30.6c-.1.1-2 .4-1.7.4.3 0 1.7.3 1.7.2 0-.1 0-.6 0-.6"/><path d="m44.2 30.1c-.1 0-1.1.3-1.1.3 0 0 1.2.3 1.2.2s-.1-.4-.1-.5"/><path d="m47.4 30.4c-.1 0-1.3.3-1.1.3.2 0 1.1.3 1.1.2s-.1-.5 0-.5"/></g><g fill="#ffe62e"><path d="m46.3 32.2c0 0-.4.3-.3.8.1.5.3.9.3.9 0 0 .4-.6.9-.6.4 0 1.3.3 1.3.3s-.1-.7-.1-1.1c0-.3.7-.9.7-.9l-2.8.6"/><path d="m39.9 32.4c0 0-.3.1-.2.6.1.5.4.9.4.9 0 0 .3-.5.8-.6.4-.1 1.2.3 1.2.3s-.1-.5 0-.9c.1-.5.5-.8.5-.8s-2.6.5-2.7.5"/><path d="m43.1 31.9c0 .1-.4.5-.3 1 .1.5.3.9.4.9 0 0 .6-.5 1.1-.6.5-.1 1.2.3 1.1.3 0 0-.2-.5-.2-.8s.6-1.4.6-1.4l-2.7.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f2.svg
index 4ddba04..ca329d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m32.777 21.619l2.403 1.825-.91-2.967 2.397-1.84-2.966-.009-.924-2.962-.923 2.962-2.965.009 2.391 1.84-.907 2.967z"/><path d="m32.777 42.38l2.403-1.824-.91 2.967 2.397 1.837-2.966.01-.924 2.96-.923-2.96-2.965-.01 2.391-1.837-.907-2.967z"/><path d="m21.889 29.937l2.404-1.827-.91 2.97 2.394 1.838-2.964.01-.924 2.961-.925-2.961-2.964-.01 2.394-1.838-.91-2.97z"/><path d="m42.11 29.937l-2.404-1.827.911 2.97-2.397 1.838 2.97.01.92 2.961.92-2.961 2.97-.01-2.395-1.838.911-2.97z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#428bc1"/><g fill="#fff"><path d="m32.8 21.6l2.4 1.8-.9-2.9 2.4-1.9h-3l-.9-2.9-.9 2.9h-3l2.4 1.9-.9 2.9z"/><path d="m32.8 42.4l2.4-1.8-.9 2.9 2.4 1.9h-3l-.9 2.9-.9-2.9h-3l2.4-1.9-.9-2.9z"/><path d="m21.9 29.9l2.4-1.8-.9 3 2.4 1.8h-3l-.9 3-.9-3h-3l2.4-1.8-.9-3z"/><path d="m42.1 29.9l-2.4-1.8.9 3-2.4 1.8h3l.9 3 .9-3h3l-2.4-1.8.9-3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f4.svg
index d2478c5..d5b522e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m61.721 28c-.137-1.016-.315-2.02-.551-3h-58.34c-.235.981-.414 1.984-.551 3h59.44"/><path d="m2.279 36c.137 1.016.315 2.02.551 3h58.34c.235-.981.414-1.984.551-3h-59.44"/><path d="m20 4.489c-1.03.45-2.033.952-3 1.513v51.996c.967.561 1.97 1.063 3 1.513v-55.02"/><path d="m28 2.263v59.48c.986.132 1.984.229 3 .263v-60c-1.016.033-2.01.131-3 .263"/></g><g fill="#ed4c5c"><path d="m2 32c0 1.357.099 2.69.273 4h59.45c.175-1.31.274-2.643.274-4s-.099-2.69-.273-4h-59.45c-.174 1.31-.273 2.643-.273 4"/><path d="m20 59.5c2.507 1.096 5.191 1.855 8 2.23v-59.45c-2.809.375-5.493 1.135-8 2.23v54.993"/></g><g fill="#f9f9f9"><path d="M17,25V6.023C9.982,10.084,4.766,16.902,2.83,25H17z"/><path d="M17,39.023V58C9.982,53.939,4.766,47.121,2.83,39.023H17z"/><path d="M32,2c-0.336,0-0.667,0.015-1,0.025V25h30.17C58.016,11.81,46.157,2,32,2z"/><path d="m31 39v22.975c.333.01.664.025 1 .025 14.157 0 26.02-9.81 29.17-23h-30.17"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m61.7 28c-.1-1-.3-2-.6-3h-58.3c-.2 1-.4 2-.6 3h59.5"/><path d="m2.3 36c.1 1 .3 2 .6 3h58.3c.2-1 .4-2 .6-3h-59.5"/><path d="m20 4.5c-1 .4-2 1-3 1.5v52c1 .6 2 1.1 3 1.5v-55"/><path d="m28 2.3v59.5c1 .1 2 .2 3 .3v-60.1c-1 0-2 .1-3 .3"/></g><g fill="#ed4c5c"><path d="m2 32c0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4s-.1-2.7-.3-4h-59.5c-.2 1.3-.3 2.6-.3 4"/><path d="m20 59.5c2.5 1.1 5.2 1.9 8 2.2v-59.4c-2.8.4-5.5 1.1-8 2.2v55"/></g><g fill="#f9f9f9"><path d="M17,25V6C10,10.1,4.8,16.9,2.8,25H17z"/><path d="M17,39v19C10,53.9,4.8,47.1,2.8,39H17z"/><path d="M32,2c-0.3,0-0.7,0-1,0v23h30.2C58,11.8,46.2,2,32,2z"/><path d="m31 39v23c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f7.svg
index cc193f0..7f9d0ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m1.942 32c0 13.06 8.35 24.17 20 28.29v-56.57c-11.65 4.119-20 15.225-20 28.29"/><path fill="#ed4c5c" d="m61.942 32c0-13.06-8.35-24.17-20-28.29v56.57c11.651-4.119 20-15.225 20-28.29"/><path fill="#fff" d="m21.942 60.29c3.129 1.106 6.492 1.714 10 1.714s6.871-.607 10-1.714v-56.57c-3.129-1.107-6.492-1.714-10-1.714s-6.871.607-10 1.714v56.57"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M1.9,32c0,13.1,8.4,24.2,20,28.3V3.7C10.3,7.8,1.9,18.9,1.9,32z" fill="#428bc1"/><path d="m61.9 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="m21.9 60.3c3.1 1.1 6.5 1.7 10 1.7s6.9-.6 10-1.7v-56.6c-3.1-1.1-6.4-1.7-10-1.7s-6.9.6-10 1.7v56.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1eb.svg
new file mode 100644
index 0000000..2d54ed2
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1eb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m21.7 17.5h20.7v5.1h-14.7v6.7h12.9v5h-12.9v12.2h-6v-29" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e6.svg
index a855ad6..f30f1e0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#699635" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.062,2,32,2z"/><path fill="#ffe62e" d="m60.29 42c1.106-3.129 1.714-6.492 1.714-10 0-3.508-.608-6.871-1.714-10h-56.57c-1.106 3.129-1.714 6.492-1.714 10 0 3.509.608 6.872 1.714 10h56.57"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#428bc1"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#699635"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10c0-3.5-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32c0,3.5,0.6,6.9,1.7,10H60.3z" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e7.svg
index f7b04b4..f745d65 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m22 60.28v-13.816l-10.313 7.601c2.952 2.719 6.451 4.85 10.313 6.215"/><path d="m42 60.28c3.875-1.369 7.383-3.51 10.341-6.24l-10.339-7.598-.002 13.838"/><path d="m3.714 42c.347.979.739 1.936 1.182 2.865l3.889-2.865h-5.071"/><path d="m55.21 42l3.893 2.867c.442-.93.835-1.889 1.182-2.867h-5.075"/></g><g fill="#fff"><path d="m23.457 38h-9.243-11.612c.277 1.369.654 2.703 1.112 4h5.071l-3.89 2.865c.787 1.656 1.726 3.227 2.791 4.697l10.316-7.562h.044 3.954v2.049.021l-11.707 8.623c.451.473.913.934 1.394 1.377l10.313-7.601v13.816c1.295.459 2.63.834 4 1.113v-17.878-2.395-.014-3.111h-2.523-.02"/><path d="m61.4 38h-11.617-2.985-.003-6.762-.005-2.026v5.506 17.893c1.37-.277 2.705-.654 4-1.113l.002-13.838 10.339 7.598c1.38-1.273 2.641-2.672 3.762-4.184l-10.655-7.862h.014 6.757l6.06 4.469v.002c.29-.525.564-1.061.823-1.604l-3.893-2.867h5.074c.458-1.297.835-2.631 1.112-4"/></g><g fill="#ed4c5c"><path d="m7.719 49.607c.779 1.076 1.635 2.096 2.548 3.057.009.01.018.02.026.029l11.707-8.623v-.021-2.049h-3.954l-10.327 7.607"/><path d="m45.46 42l10.651 7.846c.371-.5.723-1.014 1.062-1.537.052-.08.103-.16.153-.24.332-.523.652-1.055.953-1.6l-6.06-4.469h-6.757"/></g><g fill="#2a5f9e"><path d="M42,3.713v13.817l10.313-7.602C49.36,7.21,45.861,5.08,42,3.713z"/><path d="M22,3.713c-3.875,1.369-7.383,3.51-10.341,6.24l10.339,7.599L22,3.713z"/><path d="m60.29 22c-.347-.979-.739-1.937-1.182-2.866l-3.89 2.866h5.072"/><path d="m8.788 22l-3.893-2.867c-.442.929-.834 1.887-1.181 2.867h5.074"/></g><g fill="#fff"><path d="m40.542 26h9.243 11.613c-.278-1.37-.654-2.704-1.112-4h-5.072l3.891-2.866c-.788-1.656-1.726-3.226-2.791-4.697l-10.317 7.563h-.044-3.953v-2.049-.021l11.706-8.623c-.45-.473-.913-.935-1.394-1.377l-10.312 7.601v-13.818c-1.296-.458-2.63-.834-4-1.112v17.879 2.395.013 3.112h2.523.019"/><path d="m2.602 26h11.617 2.985.003 6.762.005 2.026v-5.506-17.893c-1.37.277-2.705.654-4 1.112l-.002 13.839-10.339-7.598c-1.38 1.273-2.641 2.673-3.762 4.184l10.654 7.861h-.014-6.756l-6.06-4.47v-.001c-.29.525-.564 1.06-.823 1.604l3.893 2.867h-5.074c-.458 1.295-.835 2.629-1.112 4"/></g><g fill="#ed4c5c"><path d="m56.28 14.392c-.779-1.076-1.635-2.097-2.549-3.057-.009-.01-.017-.02-.025-.029l-11.707 8.623v.021 2.05h3.953l10.328-7.608"/><path d="m18.538 21.999l-10.651-7.846c-.371.5-.723 1.015-1.062 1.538-.052.079-.102.159-.153.239-.332.523-.652 1.055-.953 1.6l6.06 4.47 6.757-.001"/><path d="m61.4 26h-11.613-9.243-.019-2.523v-3.112-.013-2.395-17.879c-1.939-.393-3.945-.601-6-.601s-4.062.208-6 .602v17.893 5.505h-2.026-.005-6.762-.003-2.985-11.617c-.394 1.938-.602 3.945-.602 6 0 2.055.207 4.061.602 6h11.612 9.243.02 2.523v3.111.014 2.395 17.879c1.938.392 3.945.601 6 .601s4.062-.209 6-.602v-17.892-5.506h2.026.005 6.762.003 2.985 11.617c.394-1.939.602-3.945.602-6 0-2.055-.208-4.062-.602-6"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m22 60.3v-13.8l-10.3 7.6c2.9 2.7 6.4 4.8 10.3 6.2"/><path d="m42 60.3c3.9-1.4 7.4-3.5 10.3-6.2l-10.3-7.7v13.9"/><path d="m3.7 42c.3 1 .7 1.9 1.2 2.9l3.9-2.9h-5.1"/><path d="m55.2 42l3.9 2.9c.4-.9.8-1.9 1.2-2.9h-5.1"/></g><g fill="#fff"><path d="m23.5 38h-9.2-11.7c.3 1.4.7 2.7 1.1 4h5.1l-3.9 2.9c.8 1.7 1.7 3.2 2.8 4.7l10.3-7.6h4v2l-11.7 8.6c.5.5.9.9 1.4 1.4l10.3-7.5v13.8c1.3.5 2.6.8 4 1.1v-17.9-2.4-3.1h-2.5"/><path d="m61.4 38h-11.6-3-6.8-2v5.5 17.9c1.4-.3 2.7-.7 4-1.1v-13.8l10.3 7.5c1.4-1.3 2.6-2.7 3.8-4.2l-10.7-7.8h6.8l6.1 4.5c.3-.5.6-1.1.8-1.6l-3.9-2.9h5.1c.4-1.3.8-2.6 1.1-4"/></g><g fill="#ed4c5c"><path d="m7.7 49.6c.8 1.1 1.6 2.1 2.5 3.1l11.8-8.6v-2h-4l-10.3 7.5"/><path d="m45.5 42l10.7 7.8c.4-.5.7-1 1.1-1.5.1-.1.1-.2.2-.2.3-.5.7-1.1 1-1.6l-6.3-4.5h-6.7"/></g><g fill="#2a5f9e"><path d="m42 3.7v13.8l10.3-7.6c-2.9-2.7-6.4-4.8-10.3-6.2"/><path d="m22 3.7c-3.9 1.4-7.4 3.5-10.3 6.2l10.3 7.7v-13.9"/><path d="m60.3 22c-.3-1-.7-1.9-1.2-2.9l-3.9 2.9h5.1"/><path d="m8.8 22l-3.9-2.9c-.4 1-.8 1.9-1.2 2.9h5.1"/></g><g fill="#fff"><path d="m40.5 26h9.2 11.6c-.3-1.4-.7-2.7-1.1-4h-5.1l3.9-2.9c-.8-1.7-1.7-3.2-2.8-4.7l-10.2 7.6h-4v-2l11.7-8.6c-.5-.5-.9-.9-1.4-1.4l-10.3 7.5v-13.8c-1.3-.5-2.6-.8-4-1.1v17.9 2.4 3.1h2.5"/><path d="m2.6 26h11.6 3 6.8 2v-5.5-17.9c-1.4.3-2.7.7-4 1.1v13.8l-10.3-7.5c-1.4 1.3-2.6 2.7-3.8 4.2l10.7 7.8h-6.8l-6.1-4.5c-.3.5-.6 1.1-.8 1.6l3.9 2.9h-5.1c-.4 1.3-.8 2.6-1.1 4"/></g><g fill="#ed4c5c"><path d="m56.3 14.4c-.8-1.1-1.6-2.1-2.5-3.1l-11.8 8.6v2h4l10.3-7.5"/><path d="m18.5 22l-10.6-7.8c-.4.5-.7 1-1.1 1.5-.1.1-.1.2-.2.2-.3.5-.7 1.1-1 1.6l6.1 4.5h6.8"/><path d="m61.4 26h-11.6-9.2-2.6v-3.1-2.4-17.9c-1.9-.4-3.9-.6-6-.6s-4.1.2-6 .6v17.9 5.5h-2-6.8-3-11.6c-.4 1.9-.6 3.9-.6 6s.2 4.1.6 6h11.6 9.2 2.6v3.1 2.4 17.9c1.9.4 3.9.6 6 .6s4.1-.2 6-.6v-17.9-5.5h2 6.8 3 11.6c.4-1.9.6-3.9.6-6s-.2-4.1-.6-6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e9.svg
index 2abbab6..c33b39d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1e9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M11.192,53.6C16.587,58.797,23.917,62,32,62c8.084,0,15.415-3.203,20.809-8.4H11.192z"/><path d="M52.809,10.4C47.414,5.202,40.082,2,32,2c-8.082,0-15.413,3.202-20.807,8.4H52.809z"/></g><g fill="#007168"><path d="M5.377,45.822L32,32L5.377,18.176C3.224,22.314,2,27.013,2,32C2,36.986,3.224,41.686,5.377,45.822z"/><path d="M62,32c0-4.987-1.223-9.686-3.377-13.824L32,32l26.624,13.822C60.777,41.686,62,36.986,62,32z"/></g><g fill="#ffce31"><path d="m58.62 45.822l-26.623-13.822-26.623 13.822c1.51 2.904 3.48 5.527 5.815 7.777h41.616c2.335-2.249 4.305-4.872 5.815-7.777"/><path d="M5.377,18.176L32,32l26.624-13.824c-1.51-2.903-3.48-5.526-5.814-7.776H11.193
- C8.857,12.65,6.888,15.273,5.377,18.176z"/></g><circle fill="#ed4c5c" cx="32" cy="32" r="9"/><path fill="#ce1126" d="m8.285 34.414c.774.803 1.64 1.475 2.448 1.814.013-.887-.147-1.904-.417-2.92-.685-.64-1.456-1.188-2.213-1.477-.11.813-.028 1.714.182 2.583"/><g fill="#ffce31"><path d="m5.02 26.326c1.306 2.722-3.387 9.215 4.431 10.738-.516-.705-.928-1.654-1.169-2.65-.209-.869-.292-1.771-.182-2.582.757.288 1.528.837 2.213 1.477.797.746 1.475 1.617 1.851 2.369 2.046-7.43-5.248-6.978-7.144-9.352"/><path d="m21.958 4.856l.59 1.816h1.91l-1.544 1.123.589 1.816-1.545-1.122-1.544 1.122.586-1.816-1.542-1.123h1.911z"/><path d="m22.958 54.1l.59 1.814h1.91l-1.544 1.126.589 1.814-1.545-1.122-1.544 1.122.586-1.814-1.542-1.126h1.911z"/><path d="m32 23l1.932 6.25h6.258l-5.06 3.87 1.93 6.26-5.06-3.872-5.059 3.872 1.932-6.26-5.061-3.87h6.258z"/><path d="m31.958 4.855l.59 1.817h1.911l-1.545 1.123.59 1.816-1.546-1.122-1.544 1.122.586-1.816-1.542-1.123h1.911z"/><path d="m41.959 4.856l.59 1.816h1.911l-1.546 1.123.59 1.816-1.545-1.122-1.549 1.122.59-1.816-1.541-1.123h1.911z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M11.2,53.6C16.6,58.8,23.9,62,32,62c8.1,0,15.4-3.2,20.8-8.4H11.2z"/><path d="M52.8,10.4C47.4,5.2,40.1,2,32,2s-15.4,3.2-20.8,8.4H52.8z"/></g><g fill="#007168"><path d="M5.4,45.8L32,32L5.4,18.2C3.2,22.3,2,27,2,32C2,37,3.2,41.7,5.4,45.8z"/><path d="M62,32c0-5-1.2-9.7-3.4-13.8L32,32l26.6,13.8C60.8,41.7,62,37,62,32z"/></g><g fill="#ffce31"><path d="m58.6 45.8l-26.6-13.8-26.6 13.8c1.5 2.9 3.5 5.5 5.8 7.8h41.6c2.3-2.3 4.3-4.9 5.8-7.8"/><path d="M5.4,18.2L32,32l26.6-13.8c-1.5-2.9-3.5-5.5-5.8-7.8H11.2C8.9,12.6,6.9,15.3,5.4,18.2z"/></g><circle cx="32" cy="32" r="9" fill="#ed4c5c"/><path d="m8.3 34.4c.8.8 1.6 1.5 2.4 1.8 0-.9-.1-1.9-.4-2.9-.7-.6-1.5-1.2-2.2-1.5-.1.8 0 1.7.2 2.6" fill="#ce1126"/><g fill="#ffce31"><path d="m5 26.3c1.3 2.7-3.4 9.2 4.4 10.7-.5-.7-.9-1.7-1.2-2.7-.2-.9-.3-1.8-.2-2.6.8.3 1.5.8 2.2 1.5.8.7 1.5 1.6 1.9 2.4 2.1-7.4-5.2-6.9-7.1-9.3"/><path d="m22 4.9l.5 1.8h2l-1.6 1.1.6 1.8-1.5-1.1-1.6 1.1.6-1.8-1.5-1.1h1.9z"/><path d="m23 54.1l.5 1.8h2l-1.6 1.1.6 1.9-1.5-1.2-1.6 1.2.6-1.9-1.5-1.1h1.9z"/><path d="m32 23l1.9 6.3h6.3l-5.1 3.8 2 6.3-5.1-3.9-5.1 3.9 2-6.3-5.1-3.8h6.3z"/><path d="m32 4.9l.5 1.8h2l-1.6 1.1.6 1.8-1.5-1.1-1.6 1.1.6-1.8-1.5-1.1h1.9z"/><path d="m42 4.9l.5 1.8h2l-1.6 1.1.6 1.8-1.5-1.1-1.6 1.1.6-1.8-1.5-1.1h1.9z"/><path d="m32 54.1l.5 1.8h2l-1.6 1.1.6 1.9-1.5-1.2-1.6 1.2.6-1.9-1.5-1.1h1.9z"/><path d="m42 54.1l.5 1.8h2l-1.6 1.1.6 1.9-1.5-1.2-1.6 1.2.6-1.9-1.5-1.1h1.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ea.svg
index 9f084a2..044d07d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ea.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m37.969 2.602h-11.937c-11.769 2.377-21.04 11.634-23.431 23.399v11.997c2.388 11.766 11.662 21.02 23.431 23.4h11.968c11.764-2.387 21.02-11.662 23.398-23.43v-11.967c-2.386-11.765-11.662-21.02-23.429-23.399"/><g fill="#ed4c5c"><path d="M38,26V2.602C36.061,2.207,34.055,2,32,2c-2.055,0-4.061,0.207-6,0.602V26H2.601
- C2.208,27.939,2,29.945,2,32s0.208,4.061,0.601,6H26v23.398C27.939,61.793,29.945,62,32,62c2.055,0,4.061-0.207,6-0.602V38h23.398
- C61.793,36.061,62,34.055,62,32s-0.207-4.061-0.602-6H38z"/><path d="m18 20h-4l1-6-1-6h4l-1 6z"/><path d="m10 16v-4l6 1 6-1v4l-6-1z"/><path d="m50 20h-4l1-6-1-6h4l-1 6z"/><path d="m42 16v-4l6 1 6-1v4l-6-1z"/><path d="m18 56h-4c0 0 1-4.5 1-6s-1-6-1-6h4c0 0-1 4.5-1 6s1 6 1 6"/><path d="m10 52v-4l6 1 6-1v4l-6-1z"/><path d="m50 56h-4l1-6-1-6h4l-1 6z"/><path d="m42 52v-4l6 1 6-1v4l-6-1z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M38,2.6H26C14.3,5,5,14.2,2.6,26v12C5,49.8,14.3,59,26,61.4h12C49.8,59,59,49.7,61.4,38V26
+ C59,14.2,49.7,5,38,2.6z" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="m38 26v-23.4c-1.9-.4-3.9-.6-6-.6s-4.1.2-6 .6v23.4h-23.4c-.4 1.9-.6 3.9-.6 6s.2 4.1.6 6h23.4v23.4c1.9.4 3.9.6 6 .6s4.1-.2 6-.6v-23.4h23.4c.4-1.9.6-3.9.6-6s-.2-4.1-.6-6h-23.4"/><path d="m18 20h-4l1-6-1-6h4l-1 6z"/><path d="m10 16v-4l6 1 6-1v4l-6-1z"/><path d="m50 20h-4l1-6-1-6h4l-1 6z"/><path d="m42 16v-4l6 1 6-1v4l-6-1z"/><path d="m18 56h-4c0 0 1-4.5 1-6s-1-6-1-6h4c0 0-1 4.5-1 6s1 6 1 6"/><path d="m10 52v-4l6 1 6-1v4l-6-1z"/><path d="m50 56h-4l1-6-1-6h4l-1 6z"/><path d="m42 52v-4l6 1 6-1v4l-6-1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1eb.svg
index b1b515e..328baf2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1eb.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,32c0,16.568,13.432,30,30,30c11.744,0,21.906-6.753,26.832-16.584L5.168,18.584
- C3.145,22.622,2,27.176,2,32z"/><path fill="#699635" d="M32,2C20.255,2,10.094,8.753,5.168,18.584l53.664,26.832C60.855,41.378,62,36.824,62,32
- C62,15.432,48.568,2,32,2z"/><path fill="#da121a" d="m32 17.912l3.29 10.128h10.648l-8.618 6.26 3.294 10.12-8.614-6.26-8.614 6.26 3.29-10.12-8.616-6.26h10.649z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30c11.7,0,21.9-6.8,26.8-16.6L5.2,18.6C3.1,22.6,2,27.2,2,32z" fill="#ffce31"/><path d="M32,2C20.3,2,10.1,8.8,5.2,18.6l53.7,26.8c2-4,3.2-8.6,3.2-13.4C62,15.4,48.6,2,32,2z" fill="#699635"/><path fill="#da121a" d="m32 17.9l3.3 10.1h10.6l-8.6 6.3 3.3 10.1-8.6-6.2-8.6 6.2 3.3-10.1-8.6-6.3h10.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ec.svg
index d6a446a..3e4098e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ec.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f5f5f5" d="M37.969,2.601H26.032C14.264,4.978,4.989,14.235,2.602,26v11.998c2.388,11.766,11.662,21.023,23.431,23.4
- H38c11.764-2.387,21.022-11.662,23.399-23.43V26C59.012,14.235,49.737,4.978,37.969,2.601z"/><path fill="#ed4c5c" d="m38 25.999v-23.398c-1.938-.395-3.945-.602-6-.602s-4.061.207-6 .602v23.398h-23.398c-.394 1.939-.602 3.945-.602 6 0 2.056.208 4.062.602 6h23.398v23.398c1.939.395 3.945.602 6 .602s4.062-.207 6-.602v-23.398h23.399c.394-1.939.601-3.945.601-6 0-2.055-.207-4.061-.601-6h-23.399"/><path fill="#ffce31" d="m52 29.5h-17.5v-17.5l2.5-2.5h-10l2.5 2.5v17.5h-17.5l-2.5-2.5v10l2.5-2.5h17.5v17.5l-2.5 2.5h10l-2.5-2.5v-17.5h17.5l2.5 2.5v-10z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M38,2.6H26C14.3,5,5,14.2,2.6,26v12C5,49.8,14.3,59,26,61.4h12C49.8,59,59,49.7,61.4,38V26
+ C59,14.2,49.7,5,38,2.6z" fill="#f5f5f5"/><path d="m38 26v-23.4c-1.9-.4-3.9-.6-6-.6s-4.1.2-6 .6v23.4h-23.4c-.4 1.9-.6 3.9-.6 6 0 2.1.2 4.1.6 6h23.4v23.4c1.9.4 3.9.6 6 .6s4.1-.2 6-.6v-23.4h23.4c.4-1.9.6-3.9.6-6 0-2.1-.2-4.1-.6-6h-23.4" fill="#ed4c5c"/><path fill="#ffce31" d="m52 29.5h-17.5v-17.5l2.5-2.5h-10l2.5 2.5v17.5h-17.5l-2.5-2.5v10l2.5-2.5h17.5v17.5l-2.5 2.5h10l-2.5-2.5v-17.5h17.5l2.5 2.5v-10z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ed.svg
index e4389c4..f3558ad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ed.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="M32,2C18.938,2,7.833,10.349,3.713,22h56.572C56.166,10.349,45.061,2,32,2z"/><path fill="#699635" d="m32 62c13.06 0 24.17-8.35 28.28-20h-56.57c4.12 11.65 15.225 20 28.29 20"/><path fill="#ffce31" d="M3.713,22C2.607,25.128,2,28.492,2,32c0,3.508,0.608,6.872,1.714,10h56.572C61.392,38.871,62,35.508,62,32
- c0-3.508-0.608-6.871-1.715-10H3.713z"/><path fill="#3e4347" d="m32 37.31l6.18 4.69-2.333-7.63 6.153-4.87h-7.623l-2.377-7.5-2.309 7.5h-7.691l6.15 4.87-2.332 7.63z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.3,3.7,22h56.6C56.2,10.3,45.1,2,32,2z" fill="#c94747"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#699635"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#ffce31"/><path fill="#3e4347" d="m32 37.3l6.2 4.7-2.4-7.6 6.2-4.9h-7.6l-2.4-7.5-2.3 7.5h-7.7l6.2 4.9-2.4 7.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ee.svg
index b2ec7d4..c980311 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m60.29 42h-56.57c4.119 11.65 15.225 20 28.29 20s24.17-8.35 28.29-20"/><path fill="#f9f9f9" d="m60.29 42c1.107-3.129 1.714-6.492 1.714-10 0-16.568-13.432-30-30-30s-30 13.432-30 30c0 3.508.607 6.871 1.714 10h56.57"/><path fill="#ed4c5c" d="m48.52 24.502v-1.074h1.15v-2.495h-1.15v1.375h-1.926v-1.375h-1.39v-8.43h.522v-1.143h.896v-2.187h-1.591v1.113h-1.561v-1.113h-2.383v1.113h-1.56v-1.113h-1.292v2.188h.501v1.143h.463v8.43h-.239v1.375h-2.166v-1.375h-.679v-10.655h.753v-1.516h.92v-1.763h-1.457v.972h-1.643v-.972h-1.874v.972h-1.643v-.972h-1.874v.972h-1.643v-.972h-1.457v1.763h.92v1.516h.753v10.654h-.679v1.375h-2.166v-1.375h-.239v-8.43h.463v-1.143h.501v-2.187h-1.292v1.113h-1.56v-1.113h-2.383v1.113h-1.56v-1.113h-1.591v2.188h.896v1.143h.522v8.43h-1.39v1.375h-1.926v-1.375h-1.15v2.495h1.15v1.074h.934v13.386l-2.064 1.361v1.441h8.768v.707h7.697 2.391 7.697v-.707h8.768v-1.441l-2.069-1.361v-13.387h.932"/><g fill="#3e4347"><path d="m24.279 37.883v-3.529c0-3.828-4.884-3.774-4.884 0v3.529h4.884"/><path d="m23.412 18.619c0-2.119-3.17-2.09-3.17 0v3.689h3.163l.007-3.689"/><path d="m35.457 38.586v-4.863c0-4.757-6.914-4.77-6.914 0v4.863h6.914"/><path d="m44.605 37.883v-3.529c0-3.774-4.885-3.828-4.885 0v3.529h4.885"/><path d="m40.595 22.308h3.163v-3.689c0-2.09-3.17-2.119-3.17 0l.007 3.689"/><path d="m31.657 11.487h.686v3.645h-.686z"/><path d="m29.686 12.205h.694v2.666h-.694z"/><path d="m30.1 17.784v4.524h3.793v-4.524c-.001-2.32-3.793-2.32-3.793 0"/><path d="m33.62 12.205h.694v2.666h-.694z"/></g><path fill="#ffe62e" d="m28.494 40.656h-.664v1.061h.664l2.802 1.625v.973 6.898h-4.128v1.92h1.203v-.963h1.636v.963h1.289v.727h-1.289v.963h-1.636v-.963h-1.203v1.924h4.128v.494.722h1.192v-.723-11.963-.973l2.801-1.625h.665v-1.061h-.665l-3.397-1.973-3.398 1.974m5.937.533l-2.539 1.469-2.538-1.469 2.538-1.48 2.539 1.48"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.3,42H3.7C7.8,53.7,18.9,62,32,62S56.2,53.7,60.3,42z" fill="#ed4c5c"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10C62,15.4,48.6,2,32,2S2,15.4,2,32c0,3.5,0.6,6.9,1.7,10H60.3z" fill="#f9f9f9"/><path d="m48.5 24.5v-1.1h1.2v-2.5h-1.2v1.4h-1.9v-1.4h-1.4v-8.4h.5v-1.1h.9v-2.2h-1.6v1.1h-1.6v-1.1h-2.4v1.1h-1.6v-1.1h-1.3v2.2h.5v1.1h.5v8.4h-.1v1.4h-2.2v-1.4h-.7v-10.6h.8v-1.5h.9v-1.8h-1.5v1h-1.6v-1h-1.9v1h-1.6v-1h-1.9v1h-1.6v-1h-1.5v1.8h.9v1.5h.8v10.7h-.7v1.4h-2.2v-1.4h-.2v-8.4h.5v-1.1h.5v-2.3h-1.3v1.1h-1.6v-1.1h-2.4v1.1h-1.5v-1.1h-1.6v2.2h.9v1.1h.5v8.4h-1.4v1.4h-1.9v-1.4h-1.1v2.5h1.1v1.1h.9v13.4l-2.1 1.4v1.4h8.8v.7h7.7 2.4 7.7v-.7h8.8v-1.4l-2.1-1.4v-13.4h.9" fill="#ed4c5c"/><g fill="#3e4347"><path d="m24.3 37.9v-3.5c0-3.8-4.9-3.8-4.9 0v3.5h4.9"/><path d="m23.4 18.6c0-2.1-3.2-2.1-3.2 0v3.7h3.2v-3.7"/><path d="m35.5 38.6v-4.9c0-4.8-6.9-4.8-6.9 0v4.9h6.9"/><path d="m44.6 37.9v-3.5c0-3.8-4.9-3.8-4.9 0v3.5h4.9"/><path d="m40.6 22.3h3.2v-3.7c0-2.1-3.2-2.1-3.2 0v3.7"/><path d="m31.7 11.5h.7v3.6h-.7z"/><path d="m29.7 12.2h.7v2.7h-.7z"/><path d="m30.1 17.8v4.5h3.8v-4.5c0-2.3-3.8-2.3-3.8 0"/><path d="m33.6 12.2h.7v2.7h-.7z"/></g><path d="m28.5 40.7h-.7v1.1h.7l2.8 1.6v1 6.9h-4.1v1.9h1.2v-1h1.6v1h1.3v.7h-1.3v1h-1.6v-1h-1.2v1.9h4.1v.5.7h1.2v-.7-12-1l2.8-1.6h.7v-1.1h-.7l-3.4-2-3.4 2.1m5.9.5l-2.5 1.5-2.5-1.5 2.5-1.5 2.5 1.5" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f1.svg
index 2a2425d..484b80c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.431,62,32,62z"/><path fill="#f9f9f9" d="M32,2C15.431,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><path fill="#c94747" d="m24 17c8.283 0 15 6.716 15 15h-30c0-8.284 6.716-15 15-15"/><path fill="#f9f9f9" d="m24 47c-8.284 0-15-6.717-15-15h30c0 8.283-6.717 15-15 15"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#c94747"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#f9f9f9"/><path d="m24 17c8.3 0 15 6.7 15 15h-30c0-8.3 6.7-15 15-15" fill="#c94747"/><path d="m24 47c-8.3 0-15-6.7-15-15h30c0 8.3-6.7 15-15 15" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f2.svg
index 5ae191f..5fa53d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f42f4c" d="M32,2C19.32,2,8.502,9.88,4.112,21h55.777C55.498,9.88,44.68,2,32,2z"/><path fill="#699635" d="M32,62c12.68,0,23.498-7.88,27.889-19H4.112C8.502,54.12,19.32,62,32,62z"/><path fill="#2a5f9e" d="m62 32c0-3.137-.489-6.158-1.383-9h-57.23c-.894 2.842-1.384 5.862-1.384 9 0 3.138.49 6.159 1.384 9h57.23c.894-2.842 1.383-5.862 1.383-9"/><g fill="#fff"><path d="m60.29 22c-.12-.339-.267-.667-.397-1h-55.777c-.132.333-.278.661-.398 1-.117.331-.225.665-.33 1h57.23c-.105-.336-.215-.67-.331-1"/><path d="m3.714 42c.12.34.266.666.398 1h55.777c.131-.334.277-.66.397-1 .116-.33.226-.664.331-1h-57.23c.105.336.213.67.33 1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C19.3,2,8.5,9.9,4.1,21h55.8C55.5,9.9,44.7,2,32,2z" fill="#f42f4c"/><path d="M32,62c12.7,0,23.5-7.9,27.9-19H4.1C8.5,54.1,19.3,62,32,62z" fill="#699635"/><path d="m62 32c0-3.1-.5-6.2-1.4-9h-57.2c-.9 2.8-1.4 5.9-1.4 9s.5 6.2 1.4 9h57.2c.9-2.8 1.4-5.9 1.4-9" fill="#2a5f9e"/><g fill="#fff"><path d="m60.3 22c-.1-.3-.3-.7-.4-1h-55.8c-.1.3-.3.7-.4 1-.1.3-.2.7-.3 1h57.2c-.1-.3-.2-.7-.3-1"/><path d="m3.7 42c.1.3.3.7.4 1h55.8c.1-.3.3-.7.4-1 .1-.3.2-.7.3-1h-57.2c.1.3.2.7.3 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f3.svg
index e041982..ea98260 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f3.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#75a843" d="m62 32c0 13.06-8.35 24.17-20 28.29v-56.57c11.65 4.12 20 15.226 20 28.29"/><path fill="#ed4c5c" d="M2,32C2,18.939,10.35,7.833,22,3.713v56.572C10.35,56.166,2,45.061,2,32z"/><path fill="#ffce31" d="M42,60.285C38.871,61.393,35.508,62,32,62s-6.871-0.607-10-1.715V3.713C25.129,2.607,28.492,2,32,2
- s6.871,0.607,10,1.714V60.285z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,13.1-8.3,24.2-20,28.3V3.7C53.7,7.8,62,18.9,62,32z" fill="#75a843"/><path d="M2,32C2,18.9,10.4,7.8,22,3.7v56.6C10.4,56.2,2,45.1,2,32z" fill="#ed4c5c"/><path d="m42 60.3c-3.1 1.1-6.5 1.7-10 1.7s-6.9-.6-10-1.7v-56.6c3.1-1.1 6.5-1.7 10-1.7s6.9.6 10 1.7v56.6" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f5.svg
index 2968425..f044d48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f5.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M2,32c0,16.568,13.432,30,30,30s30-13.432,30-30c0-3.508-0.607-6.871-1.714-10H3.714
- C2.608,25.129,2,28.492,2,32z"/><path fill="#2a5f9e" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.062,2,32,2z"/><g fill="#ffce31"><path d="m30.898 5.164c-.961 1.585-1.076 2.854-.42 5.04.316 1.021.663 2.547.809 3.374.194 1.168.174 1.278.201 1.532.243 0 .795.002 1.05 0 .038-.404.067-.871.153-1.513.101-.748.398-2.313.719-3.399.641-2.172.599-3.504-.397-5.01-.365-.56-.851-1.022-1.069-1.022-.219.001-.715.428-1.046.998m4.721 4.485c-1.361.583-2.18 2.2-2.626 4.427-.083.418-.103.566-.145 1.038.295.001.411.003.697.001.063-.316.108-.484.246-.935.55-1.741 2.168-2.439 2.094-.81-.023.45-.213.701-.424.942.26-.065.814-.323 1.264-.579 2.504-1.506 1.518-5.203-1.106-4.084m-5.56 6.03c1.099.006 2.997.014 3.908.009.001-.234.004-.114.007-.304-.672-.006-3.241.004-3.909.004 0 .122-.002.181-.006.291m.323 1.287c-.396.428-1.015.747-1.015.747s.548.062 1.058.024.793-.102 1.095-.248c-.082.609-.087 1.197-.087 1.197.075.783.158.982.328 1.365.23.316.364.318.533-.018.183-.375.304-.762.342-1.352-.014-.441-.038-.645-.143-1.186.353.153.576.193 1.103.24.538.049 1.034.025 1.034.025s-.729-.366-1.049-.814c-.315-.443-.248-.367-.479-.938-.279-.014-1.696-.001-2.146-.001-.245.523-.27.631-.574.959m-2-7.321c1.36.584 2.179 2.2 2.626 4.428.082.418.103.565.144 1.037-.294.001-.41.003-.697.001-.063-.317-.108-.484-.246-.935-.55-1.74-2.167-2.439-2.094-.81.024.45.214.701.425.942-.261-.064-.815-.324-1.265-.579-2.504-1.507-1.517-5.203 1.107-4.084"/><path d="m13.568 13.581c.194 1.168.174 1.278.201 1.532.243 0 .795.002 1.05 0 .038-.404.067-.871.153-1.513.101-.748.398-2.313.719-3.399.43-1.457.543-2.533.276-3.541-1.214.77-2.372 1.619-3.459 2.551.065.313.144.639.251.996.317 1.022.664 2.547.809 3.374"/><path d="m16.248 15.69c.001-.234.004-.114.007-.304-.672-.006-3.241.004-3.909.004.001.122-.002.182-.006.291 1.098.007 2.997.014 3.908.009"/><path d="m9.556 13.733c.449.255 1 .515 1.265.579-.211-.241-.4-.492-.425-.942-.073-1.63 1.544-.931 2.094.81.138.45.184.617.246.935.287.002.403 0 .697-.001-.041-.472-.062-.619-.144-1.037-.353-1.754-.939-3.119-1.834-3.909-.96.904-1.855 1.873-2.689 2.896.21.249.47.477.79.669"/><path d="m15.862 16.951c-.315-.443-.248-.367-.479-.938-.279-.014-1.696-.001-2.146-.001-.246.521-.271.628-.575.956-.396.428-1.015.747-1.015.747s.548.062 1.058.024.793-.102 1.095-.248c-.082.609-.087 1.197-.087 1.197.075.783.158.982.328 1.365.23.316.364.318.533-.018.183-.375.304-.762.342-1.352-.014-.441-.038-.645-.143-1.186.353.153.576.193 1.103.24.538.049 1.034.025 1.034.025s-.727-.363-1.048-.811"/><path d="m17.9 9.649c-1.361.583-2.18 2.2-2.626 4.427-.083.418-.103.566-.145 1.038.295.001.411.003.697.001.063-.316.108-.484.246-.935.55-1.741 2.168-2.439 2.094-.81-.023.45-.213.701-.424.942.26-.065.814-.323 1.264-.579 2.504-1.506 1.518-5.203-1.106-4.084"/><path d="m48.17 15.11c.287.002.403 0 .697-.001-.041-.472-.062-.619-.144-1.037-.447-2.228-1.266-3.844-2.626-4.428-2.624-1.119-3.61 2.576-1.107 4.085.449.255 1 .515 1.265.579-.211-.241-.4-.492-.425-.942-.073-1.63 1.544-.931 2.094.81.137.45.183.617.246.934"/><path d="m48.2 10.207c.316 1.021.663 2.547.809 3.374.194 1.168.174 1.278.201 1.532.243 0 .795.002 1.05 0 .038-.404.067-.871.153-1.513.101-.748.398-2.313.719-3.399.114-.387.198-.738.268-1.077-1.079-.917-2.229-1.751-3.431-2.509-.296 1.031-.217 2.096.231 3.592"/><path d="m51.3 16.951c-.315-.443-.248-.367-.479-.938-.279-.014-1.696-.001-2.146-.001-.246.521-.271.628-.575.956-.396.428-1.015.747-1.015.747s.548.062 1.058.024.793-.102 1.095-.248c-.082.609-.087 1.197-.087 1.197.075.783.158.982.328 1.365.23.316.364.318.533-.018.183-.375.304-.762.342-1.352-.014-.441-.038-.645-.143-1.186.353.153.576.193 1.103.24.538.049 1.034.025 1.034.025s-.728-.363-1.048-.811"/><path d="m47.777 15.682c1.099.006 2.997.014 3.908.009.001-.234.004-.114.007-.304-.672-.006-3.241.004-3.909.004.001.122-.002.181-.006.291"/><path d="m50.712 14.08c-.083.418-.103.566-.145 1.038.295.001.411.003.697.001.063-.316.108-.484.246-.935.55-1.741 2.168-2.439 2.094-.81-.023.45-.213.701-.424.942.26-.065.814-.323 1.264-.579.32-.193.581-.422.791-.672-.834-1.021-1.729-1.991-2.689-2.895-.896.791-1.483 2.156-1.834 3.91"/></g><g fill="#83bf4f"><path d="m53.822 50.824l-.185.646-15.852-6.849.186-.641z"/><path d="m54.31 49.15l-.19.643-16.11-5.932.18-.641z"/><path d="m54.738 47.669l-.188.641-16.33-5.18.18-.64z"/><path transform="matrix(.2789-.9603.9603.2789-8.686 76.839)" d="m46.49 35.638h.672v17.13h-.672z"/><path d="m55.624 44.609l-.184.651-16.661-4.07.188-.647z"/><path d="m14.348 28.12l.399-.537 12.413 11.997-.395.53z"/><path d="m12.02 28.709l.397-.539 12.987 11.24-.404.537z"/><path d="m9.621 28.17l.399-.54 13.461 10.61-.401.535z"/><path transform="matrix(-.5981.8014-.8014-.5981 53.696 42.25)" d="m15.919 26.02h.673v17.13h-.673z"/><path d="m6.382 29.541l.403-.541 14.15 9.684-.404.546z"/><path d="m6.263 32.34l.063-.665 16.844 3.781-.06.664z"/><path d="m4.863 33.586l.064-.668 16.937 2.835-.062.669z"/><path d="m6.987 35.35l.063-.668 17.01 2.053-.061.665z"/><path transform="matrix(-.0943.9955-.9955-.0943 51.49 27.03)" d="m13.11 28.373h.673v17.13h-.673z"/><path d="m7.817 38.676l.066-.666 17.12.898-.06.67z"/></g><path fill="#ffce31" d="m33.27 50.629l.674.48c.967.676 1.499 1.611 1.446 2.58l-.036.799.317-.787c.348-.821.299-2.067-.111-2.988l-.239-.54.76.331c1.086.46 1.802 1.266 1.949 2.224l.132.788.146-.835c.169-.878-.136-2.086-.729-2.9l-.346-.478.811.165c1.158.222 2.024.862 2.368 1.769l.292.744-.029-.849c-.017-.892-.565-2.01-1.315-2.685l-.437-.395.829-.007c1.178-.024 2.157.421 2.684 1.235l.44.668-.207-.823c-.201-.87-.97-1.849-1.844-2.354l-.509-.295.809-.178c1.147-.269 2.198-.036 2.882.649l.568.562-.371-.762c-.379-.81-1.334-1.607-2.293-1.918l-.559-.184.754-.342c1.066-.502 2.142-.494 2.953.035l.674.43-.523-.668c-.537-.711-1.638-1.292-2.64-1.398l-.585-.061.666-.494c.938-.712 1.994-.928 2.896-.579l.748.281-.648-.546c-.675-.584-1.872-.924-2.875-.817l-.585.061.55-.621c.771-.891 1.756-1.323 2.713-1.169l.789.119-.747-.398c-.781-.432-2.02-.514-2.982-.202l-.559.181.409-.721c.568-1.033 1.443-1.661 2.41-1.709l.797-.048-.814-.233c-.854-.26-2.084-.082-2.957.422l-.511.295.25-.791c.343-1.129 1.067-1.924 2-2.174l.77-.213-.845-.059c-.889-.076-2.057.354-2.806 1.029l-.437.394.078-.825c.101-1.176.646-2.105 1.51-2.544l.707-.368-.838.118c-.885.11-1.938.774-2.53 1.591l-.347.477-.093-.824c-.146-1.17.193-2.193.946-2.802l.616-.508-.795.29c-.843.292-1.733 1.16-2.146 2.083l-.238.538-.262-.787c-.388-1.113-.268-2.186.344-2.936l.498-.626-.719.448c-.764.461-1.455 1.497-1.665 2.484l-.122.576-.42-.715c-.61-1.01-.714-2.082-.273-2.943l.356-.717-.609.59c-.65.609-1.112 1.767-1.112 2.775v.59l-.56-.613c-.806-.859-1.131-1.887-.879-2.822l.201-.773-.474.703c-.511.73-.723 1.959-.513 2.946l.121.575-.673-.481c-.967-.674-1.498-1.611-1.446-2.579l.036-.798-.317.786c-.348.821-.3 2.067.109 2.988l.24.539-.76-.332c-1.085-.457-1.801-1.264-1.949-2.221l-.132-.789-.146.836c-.169.877.137 2.084.729 2.9l.345.477-.811-.166c-1.156-.223-2.024-.861-2.368-1.768l-.292-.744.028.848c.018.893.567 2.01 1.316 2.687l.437.394-.828.006c-1.178.024-2.157-.42-2.683-1.234l-.44-.668.205.824c.201.869.973 1.848 1.845 2.353l.509.294-.809.179c-1.147.269-2.198.037-2.882-.649l-.569-.561.371.762c.379.809 1.335 1.605 2.294 1.918l.56.182-.754.344c-1.067.501-2.145.494-2.954-.036l-.673-.43.521.668c.537.712 1.638 1.294 2.641 1.398l.585.062-.667.493c-.939.712-1.993.929-2.896.579l-.748-.281.649.546c.674.584 1.87.925 2.873.819l.585-.063-.549.621c-.771.893-1.758 1.324-2.713 1.17l-.789-.118.747.397c.781.432 2.023.514 2.982.202l.559-.183-.408.723c-.569 1.031-1.445 1.66-2.411 1.709l-.798.047.816.234c.853.26 2.083.082 2.956-.422l.51-.295-.25.791c-.341 1.128-1.066 1.924-2 2.174l-.77.211.845.061c.89.076 2.056-.354 2.805-1.029l.438-.395-.08.826c-.101 1.174-.645 2.104-1.508 2.543l-.708.368.837-.119c.885-.11 1.939-.774 2.531-1.591l.347-.475.092.824c.146 1.17-.192 2.191-.946 2.8l-.616.51.795-.29c.844-.293 1.735-1.162 2.146-2.084l.239-.538.262.787c.387 1.114.267 2.184-.344 2.937l-.499.626.72-.45c.764-.461 1.455-1.497 1.664-2.484l.123-.574.419.714c.61 1.01.715 2.082.274 2.944l-.357.715.609-.588c.651-.61 1.113-1.768 1.113-2.777v-.589l.56.612c.806.861 1.131 1.888.878 2.824l-.199.773.474-.704c.51-.73.721-1.959.513-2.946l-.12-.575"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30s30-13.4,30-30c0-3.5-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32z" fill="#3e4347"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#2a5f9e"/><g fill="#ffce31"><path d="m30.9 5.2c-1 1.6-1.1 2.9-.4 5 .3 1 .7 2.5.8 3.4.2 1.2.2 1.3.2 1.5.2 0 .8 0 1.1 0 0-.4.1-.9.2-1.5.1-.7.4-2.3.7-3.4.6-2.2.5-3.5-.5-5-.4-.6-.9-1-1.1-1-.2 0-.7.4-1 1m4.7 4.4c-1.4.6-2.2 2.2-2.6 4.4-.1.4-.1.6-.1 1 .3 0 .4 0 .7 0 .1-.3.1-.5.2-.9.5-1.7 2.2-2.4 2.1-.8 0 .4-.2.7-.4.9.3-.1.8-.3 1.3-.6 2.4-1.4 1.4-5.1-1.2-4m-5.5 6.1c1.1 0 3 0 3.9 0 0-.2 0-.1 0-.3-.7 0-3.2 0-3.9 0 0 .1 0 .2 0 .3m.3 1.3c-.4.4-1 .7-1 .7s.5.1 1.1 0 .8-.1 1.1-.2c-.1.6-.1 1.2-.1 1.2.1.8.2 1 .3 1.4.2.3.4.3.5 0 .2-.4.3-.8.3-1.4 0-.4 0-.6-.1-1.2.4.2.6.2 1.1.2.5 0 1 0 1 0s-.7-.4-1-.8c-.3-.4-.2-.4-.5-.9-.3 0-1.7 0-2.1 0-.3.5-.3.6-.6 1m-2-7.4c1.4.6 2.2 2.2 2.6 4.4.1.4.1.6.1 1-.3 0-.4 0-.7 0-.1-.3-.1-.5-.2-.9-.5-1.7-2.2-2.4-2.1-.8 0 .4.2.7.4.9-.3-.1-.8-.3-1.3-.6-2.4-1.4-1.4-5.1 1.2-4"/><path d="m13.6 13.6c.2 1.2.2 1.3.2 1.5.2 0 .8 0 1.1 0 0-.4.1-.9.2-1.5.1-.7.4-2.3.7-3.4.4-1.5.5-2.5.3-3.5-1.2.8-2.4 1.6-3.5 2.6.1.3.1.6.3 1 .2.9.5 2.5.7 3.3"/><path d="m16.2 15.7c0-.2 0-.1 0-.3-.7 0-3.2 0-3.9 0 0 .1 0 .2 0 .3 1.1 0 3 0 3.9 0"/><path d="m9.6 13.7c.4.3 1 .5 1.3.6-.2-.2-.4-.5-.4-.9-.1-1.6 1.5-.9 2.1.8.1.4.2.6.2.9.3 0 .4 0 .7 0 0-.5-.1-.6-.1-1-.4-1.8-.9-3.1-1.8-3.9-1 .9-1.9 1.9-2.7 2.9.1.2.3.4.7.6"/><path d="m15.9 17c-.3-.4-.2-.4-.5-.9-.3 0-1.7 0-2.1 0-.2.5-.3.6-.6 1-.4.4-1 .7-1 .7s.5.1 1.1 0 .8-.1 1.1-.2c-.1.6-.1 1.2-.1 1.2.1.8.2 1 .3 1.4.2.3.4.3.5 0 .2-.4.3-.8.3-1.4 0-.4 0-.6-.1-1.2.4.2.6.2 1.1.2.5 0 1 0 1 0s-.7-.4-1-.8"/><path d="m17.9 9.6c-1.4.6-2.2 2.2-2.6 4.4-.1.4-.1.6-.1 1 .3 0 .4 0 .7 0 .1-.3.1-.5.2-.9.5-1.7 2.2-2.4 2.1-.8 0 .4-.2.7-.4.9.3-.1.8-.3 1.3-.6 2.4-1.4 1.4-5.1-1.2-4"/><path d="m48.2 15.1c.3 0 .4 0 .7 0 0-.5-.1-.6-.1-1-.4-2.2-1.3-3.8-2.6-4.4-2.6-1.1-3.6 2.6-1.1 4.1.4.3 1 .5 1.3.6-.2-.2-.4-.5-.4-.9-.1-1.6 1.5-.9 2.1.8 0 .3 0 .5.1.8"/><path d="m48.2 10.2c.3 1 .7 2.5.8 3.4.2 1.2.2 1.3.2 1.5.2 0 .8 0 1 0 0-.4.1-.9.2-1.5.1-.7.4-2.3.7-3.4.1-.4.2-.7.3-1.1-1.1-.9-2.2-1.8-3.4-2.5-.3 1-.3 2.1.2 3.6"/><path d="m51.3 17c-.3-.4-.2-.4-.5-.9-.3 0-1.7 0-2.1 0-.2.5-.3.6-.6 1-.4.4-1 .7-1 .7s.5.1 1.1 0 .8-.1 1.1-.2c-.1.6-.1 1.2-.1 1.2.1.8.2 1 .3 1.4.2.3.4.3.5 0 .2-.4.3-.8.3-1.4 0-.4 0-.6-.1-1.2.4.2.6.2 1.1.2.5 0 1 0 1 0s-.7-.4-1-.8"/><path d="m47.8 15.7c1.1 0 3 0 3.9 0 0-.2 0-.1 0-.3-.7 0-3.2 0-3.9 0 0 .1 0 .2 0 .3"/><path d="m50.7 14.1c-.1.4-.1.6-.1 1 .3 0 .4 0 .7 0 .1-.3.1-.5.2-.9.5-1.7 2.2-2.4 2.1-.8 0 .4-.2.7-.4.9.3-.1.8-.3 1.3-.6.3-.2.6-.4.8-.7-.8-1-1.7-2-2.7-2.9-.9.9-1.5 2.2-1.9 4"/></g><g fill="#83bf4f"><path d="m53.8 50.8l-.2.7-15.8-6.9.2-.6z"/><path d="m54.3 49.1l-.2.7-16.1-5.9.2-.7z"/><path d="m54.7 47.7l-.1.6-16.4-5.2.2-.6z"/><path transform="matrix(.2789-.9603.9603.2789-8.6855 76.838)" d="m46.5 35.6h.7v17.1h-.7z"/><path d="m55.6 44.6l-.2.7-16.6-4.1.2-.7z"/><path d="m14.3 28.1l.4-.5 12.5 12-.4.5z"/><path d="m12 28.7l.4-.5 13 11.2-.4.5z"/><path d="m9.6 28.2l.4-.6 13.5 10.6-.4.6z"/><path transform="matrix(.5981-.8014.8014.5981-21.1883 26.9285)" d="m15.9 26h.7v17.1h-.7z"/><path d="m6.4 29.5l.4-.5 14.1 9.7-.4.5z"/><path d="m6.3 32.3v-.6l16.9 3.8-.1.6z"/><path d="m4.9 33.6v-.7l17 2.9-.1.6z"/><path d="m7 35.4l.1-.7 17 2-.1.7z"/><path transform="matrix(.0943-.9955.9955.0943-24.5925 46.8455)" d="m13.1 28.4h.7v17.1h-.7z"/><path d="m7.8 38.7l.1-.7 17.1.9-.1.7z"/></g><path d="m33.3 50.6l.7.5c1 .7 1.5 1.6 1.4 2.6v.8l.3-.8c.3-.8.3-2.1-.1-3l-.2-.5.8.3c1.1.5 1.8 1.3 1.9 2.2l.1.8.1-.8c.2-.9-.1-2.1-.7-2.9l-.3-.5.8.2c1.2.2 2 .9 2.4 1.8l.3.7v-.8c0-.9-.6-2-1.3-2.7l-.4-.4h.8c1.2 0 2.2.4 2.7 1.2l.4.7-.2-.8c-.2-.9-1-1.8-1.8-2.4l-.5-.3.8-.2c1.1-.3 2.2 0 2.9.6l.6.6-.4-.8c-.4-.8-1.3-1.6-2.3-1.9l-.6-.2.8-.3c1.1-.5 2.1-.5 3 0l.7.4-.5-.7c-.5-.7-1.6-1.3-2.6-1.4h-.9l.7-.5c.9-.7 2-.9 2.9-.6l.7.3-.6-.5c-.7-.6-1.9-.9-2.9-.8l-.6.1.5-.6c.8-.9 1.8-1.3 2.7-1.2l.8.1-.7-.4c-.8-.4-2-.5-3-.2l-.6.2.4-.7c.6-1 1.4-1.7 2.4-1.7h.8l-.8-.2c-.9-.3-2.1-.1-3 .4l-.5.3.2-.8c.3-1.1 1.1-1.9 2-2.2l.8-.2-.8-.1c-.9-.1-2.1.4-2.8 1l-.4.4.1-.8c.1-1.2.6-2.1 1.5-2.5l.7-.4h-.8c-.9.1-1.9.8-2.5 1.6l-.3.5-.1-.8c-.1-1.2.2-2.2.9-2.8l.6-.5-.8.3c-.8.3-1.7 1.2-2.1 2.1l-.2.5-.3-.8c-.4-1.1-.3-2.2.3-2.9l.5-.6-.8.4c-.8.5-1.5 1.5-1.7 2.5v.5l-.4-.7c-.6-1-.7-2.1-.3-2.9l.4-.7-.6.6c-.7.6-1.1 1.8-1.1 2.8v.6l-.7-.7c-.8-.9-1.1-1.9-.9-2.8l.2-.8-.5.7c-.5.7-.7 2-.5 2.9l.1.6-.7-.5c-1-.7-1.5-1.6-1.4-2.6v-.8l-.3.8c-.3.8-.3 2.1.1 3l.2.5-.8-.3c-1.1-.5-1.8-1.3-1.9-2.2l-.1-.8v.9c-.2.9.1 2.1.7 2.9l.3.5-.8-.2c-1.2-.2-2-.9-2.4-1.8l-.3-.7v.8c0 .9.6 2 1.3 2.7l.4.4h-.8c-1.2 0-2.2-.4-2.7-1.2l-.4-.7.2.8c.2.9 1 1.8 1.8 2.4l.5.3-.7.2c-1.1.3-2.2 0-2.9-.6l-.6-.6.4.8c.4.8 1.3 1.6 2.3 1.9l.6.2-.7.3c-1.1.5-2.1.5-3 0l-.7-.4.5.7c.5.7 1.6 1.3 2.6 1.4l.6.1-.7.5c-.9.7-2 .9-2.9.6l-.6-.5.6.5c.7.6 1.9.9 2.9.8l.6-.1-.5.6c-.8.9-1.8 1.3-2.7 1.2h-.9l.7.4c.8.4 2 .5 3 .2l.6-.2-.4.7c-.6 1-1.4 1.7-2.4 1.7h-.8l.8.2c.9.3 2.1.1 3-.4l.5-.3-.2.8c-.3 1.1-1.1 1.9-2 2.2l-.8.3.8.1c.9.1 2.1-.4 2.8-1l.4-.4v.7c-.1 1.2-.6 2.1-1.5 2.5l-.7.4.8-.1c.9-.1 1.9-.8 2.5-1.6l.3-.5.1.8c.1 1.2-.2 2.2-.9 2.8l-.6.6.8-.3c.8-.3 1.7-1.2 2.1-2.1l.2-.5.3.8c.4 1.1.3 2.2-.3 2.9l-.5.6.7-.5c.8-.5 1.5-1.5 1.7-2.5l.1-.6.4.7c.6 1 .7 2.1.3 2.9l-.4.7.6-.4c.7-.6 1.1-1.8 1.1-2.8v-.6l.6.6c.8.9 1.1 1.9.9 2.8l-.2.8.5-.7c.5-.7.7-2 .5-2.9l-.1-.6" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f6.svg
index 28ce735..6c4a158 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21h-.002c5.43 5.43 12.93 8.788 21.21 8.788 13.07 0 24.18-8.356 28.29-20.02-.098.003-.193.015-.291.015"/><path fill="#83bf4f" d="m60 22c.098 0 .193.012.291.015-4.115-11.659-15.225-20.02-28.29-20.02-8.285 0-15.785 3.358-21.21 8.788h.002v21.21h39.21c0-5.523 4.477-10 10-10"/><path fill="#f9f9f9" d="m60.29 22h-49.5v20h49.5c1.106-3.129 1.713-6.492 1.713-10s-.607-6.871-1.713-10"/><path fill="#42ade2" d="M10.787,10.787C5.357,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L21,32L10.787,10.787z"/><g fill="#ffe62e"><path d="m33.65 24.1l-.584.027-.291.523-.318-.499-.586.024.266-.526-.318-.499.611-.026.266-.523.318.499.584-.024-.266.525.318.499"/><path d="m31.15 24.296l-.584.144-.158.565-.426-.425-.557.139.158-.565-.396-.43.557-.141.16-.568.424.424.584-.138-.186.568.424.427"/><path d="m28.738 24.793l-.529.263-.027.589-.506-.324-.529.26.053-.589-.504-.326.531-.266.053-.59.479.324.529-.26-.025.59.475.329"/><path d="m34.42 24.1l.584.027.266.523.32-.499.582.024-.264-.526.318-.499-.584-.026-.293-.523-.318.499-.584-.024.266.525-.293.499"/><path d="m36.916 24.296l.559.144.158.565.426-.425.557.139-.158-.565.424-.43-.584-.141-.158-.568-.426.424-.557-.138.158.568-.399.427"/><path d="m39.31 24.793l.529.263.027.589.504-.324.531.26-.025-.589.479-.326-.534-.266-.025-.59-.504.324-.531-.26.053.59-.504.329"/></g><path fill="#3e4347" d="m28.898 25.595h10.168v10.651c0 3.585-4.672.823-5.07 2.734-.689-1.964-5.072.877-5.072-2.946 0-3.717-.026-10.439-.026-10.439"/><path fill="#fff" d="m29.3 26.12h9.371v9.817c0 3.304-4.305.759-4.672 2.521-.637-1.811-4.676.808-4.676-2.717 0-3.426-.023-9.621-.023-9.621"/><path fill="#89664c" d="m35.35 29.98l-.318-.265c0 0-.309.135-.729.537.02-.226.041-.459.064-.697h-.479l-.008.729c-.057-.074-.344-.448-.654-.543l-.055.425c.904.478.479 4.858-.504 6.85h2.443c-1.089-3.518-.954-6.424.24-7.04"/><path fill="#83bf4f" d="m35.457 27.75c.158-.186.158-.186.451-.186.053-.398.715-.398.77.106.529-.106.637.212.424.531.504-.133.957 0 .824.584.902.239.557.876.158 1.01-.053.398-.424.531-.928.372-.639.451-1.01.292-1.301-.16-.719.107-.771-.053-1.09-.451-.557.239-.662.239-1.141-.053-.027.372-.16.266-.398.239.027.478-.16.69-.586.531.32.664-.504.956-.902.398-.371.026-.398-.08-.584-.213-.158.531-.742.452-.85.16-.742-.106-.664-.504-.051-.531.051-.425.424-.345.662-.292.025-.266.186-.213.318-.159-.08-.186-.025-.292.213-.346-.346-.451-.133-.61.213-.77-.188-.425.133-.398.371-.425-.027-.451.105-.531.584-.584-.053-.159.025-.292.293-.292-.16-.451.053-.555.529-.479.08-.655 1.486-.345 1.381.558.4.056.533.135.64.453"/><path fill="#d3d3d3" d="m41.38 33.525c-.186 1.195-1.514 1.699-1.355 2.469.186.205.598 1.114.598 1.114-.303.442-.518.743-1.553 1.169-1.354.531-3.266.186-3.266.186l.055 1.302-3.666-.026.055-1.275c0 0-1.912.346-3.266-.186-.875-.355-1.395-.867-1.695-1.307 0 0 .676-.977.686-.977.16-.77-1.193-1.273-1.381-2.469-.105 1.963-1.061 2.654.156 3.316-.076.322-.188.683-.342.932.479 2.442 4.885 2.496 4.885 2.496v.45c0 .903 5.471.903 5.471 0v-.45c0 0 4.406-.054 4.857-2.496-.248-.402-.346-.93-.346-.93 1.222-.69.212-1.353.107-3.318"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0" fill="#ed4c5c"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10" fill="#83bf4f"/><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L21,32L10.8,10.8z" fill="#42ade2"/><g fill="#ffe62e"><path d="m33.7 24.1h-.6l-.3.5-.3-.5h-.6l.3-.5-.3-.5h.6l.3-.5.3.5h.6l-.3.5.3.5"/><path d="m31.2 24.3l-.6.1-.2.6-.4-.4-.6.1.2-.6-.4-.4.6-.1.2-.6.4.4.6-.1-.2.6.4.4"/><path d="m28.7 24.8l-.5.3v.6l-.5-.3-.5.3.1-.6-.5-.3.5-.3.1-.6.5.3.5-.3v.6l.3.3"/><path d="m34.4 24.1h.6l.3.5.3-.5h.6l-.3-.5.3-.5h-.6l-.3-.5-.3.5h-.6l.3.5-.3.5"/><path d="m36.9 24.3l.6.1.2.6.4-.4.6.1-.2-.6.4-.4-.6-.1-.2-.6-.4.4-.6-.1.2.6-.4.4"/><path d="m39.3 24.8l.5.3v.6l.5-.3.5.3v-.6l.5-.3-.5-.3v-.6l-.5.3-.5-.3.1.6-.6.3"/></g><path d="m28.9 25.6h10.2v10.7c0 3.6-4.7.8-5.1 2.7-.7-2-5.1.9-5.1-2.9 0-3.8 0-10.5 0-10.5" fill="#3e4347"/><path d="m29.3 26.1h9.4v9.8c0 3.3-4.3.8-4.7 2.5-.6-1.8-4.7.8-4.7-2.7 0-3.4 0-9.6 0-9.6" fill="#fff"/><path d="m35.3 30l-.3-.3c0 0-.3.1-.7.5 0-.2 0-.5.1-.7h-.5v.7c-.1-.1-.3-.4-.7-.5l-.1.4c.9.5.5 4.9-.5 6.8h2.4c-1-3.4-.8-6.3.3-6.9" fill="#89664c"/><path d="m35.5 27.8c.2-.2.2-.2.5-.2.1-.4.7-.4.8.1.5-.1.6.2.4.5.5-.1 1 0 .8.6.9.2.6.9.2 1-.1.4-.4.5-.9.4-.6.5-1 .3-1.3-.2-.7.1-.8-.1-1.1-.5-.6.2-.7.2-1.1-.1 0 .4-.2.3-.4.2 0 .5-.2.7-.6.5.3.7-.5 1-.9.4-.4 0-.4-.1-.6-.2-.2.5-.7.5-.9.2-.7-.1-.7-.5-.1-.5.1-.4.4-.3.7-.3 0-.3.2-.2.3-.2-.1-.2 0-.3.2-.3-.3-.5-.1-.6.2-.8-.2-.4.1-.4.4-.4 0-.5.1-.5.6-.6-.1-.2 0-.3.3-.3-.2-.5.1-.6.5-.5.1-.7 1.5-.3 1.4.6.3.2.4.2.6.6" fill="#83bf4f"/><path d="m41.4 33.5c-.2 1.2-1.5 1.7-1.4 2.5.2.2.6 1.1.6 1.1-.3.4-.5.7-1.6 1.2-1.4.5-3.3.2-3.3.2l.1 1.3h-3.7l.1-1.3c0 0-1.9.3-3.3-.2-.9-.4-1.4-.9-1.7-1.3 0 0 .7-1 .7-1 .2-.8-1.2-1.3-1.4-2.5-.1 2-1.1 2.7.2 3.3-.1.3-.2.7-.3.9.5 2.4 4.9 2.5 4.9 2.5v.5c0 .9 5.5.9 5.5 0v-.5c0 0 4.4-.1 4.9-2.5-.2-.4-.3-.9-.3-.9 1.1-.6.1-1.3 0-3.3" fill="#d3d3d3"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f7.svg
index 3adcb40..75c9bc6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m56 14h-24v6h27.496c-.935-2.141-2.109-4.155-3.496-6"/><g fill="#f9f9f9"><path d="m32 14h24c-1.706-2.271-3.729-4.293-6-6h-18v6"/><path d="m59.5 20h-27.496v6h29.398c-.423-2.088-1.068-4.094-1.902-6"/></g><path fill="#428bc1" d="m4.504 44h54.992c.834-1.906 1.479-3.912 1.902-6h-58.796c.423 2.088 1.068 4.094 1.902 6"/><path fill="#f9f9f9" d="M8,50h48c1.387-1.846,2.561-3.859,3.496-6H4.504C5.439,46.141,6.613,48.154,8,50z"/><path fill="#428bc1" d="M8,50c1.706,2.271,3.729,4.293,6,6h36c2.271-1.707,4.294-3.729,6-6H8z"/><g fill="#f9f9f9"><path d="m14 56c5.01 3.766 11.246 6 18 6s12.986-2.234 18-6h-36"/><path d="m20 32v-12h12v-6h-12v-9.497c-2.146.938-4.151 2.129-6 3.519v5.978h-5.982c-1.389 1.846-2.566 3.859-3.505 6h9.487v12h-12c0 2.055.207 4.061.602 6h58.797c.394-1.939.601-3.945.601-6h-42"/></g><g fill="#428bc1"><path d="m61.4 26h-29.398v-6h-12v12h12 30c0-2.055-.207-4.061-.602-6"/><path d="m32 2c-4.268 0-8.324.896-12 2.504v9.496h12v-6h18c-5.01-3.767-11.246-6-18-6"/><path d="m14 14v-6c-2.271 1.707-4.294 3.729-6 6h6"/><path d="M4.504,20C2.896,23.675,2,27.732,2,32h12V20H4.504z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56 14h-24v6h27.5c-.9-2.1-2.1-4.2-3.5-6" fill="#428bc1"/><g fill="#f9f9f9"><path d="m32 14h24c-1.7-2.3-3.7-4.3-6-6h-18v6"/><path d="m59.5 20h-27.5v6h29.4c-.4-2.1-1.1-4.1-1.9-6"/></g><path d="m4.5 44h55c.8-1.9 1.5-3.9 1.9-6h-58.8c.4 2.1 1.1 4.1 1.9 6" fill="#428bc1"/><path d="m8 50h48c1.4-1.8 2.6-3.9 3.5-6h-55c.9 2.1 2.1 4.2 3.5 6" fill="#f9f9f9"/><path d="M8,50c1.7,2.3,3.7,4.3,6,6h36c2.3-1.7,4.3-3.7,6-6H8z" fill="#428bc1"/><g fill="#f9f9f9"><path d="m14 56c5 3.8 11.2 6 18 6s13-2.2 18-6h-36"/><path d="m20 32v-12h12v-6h-12v-9.5c-2.1.9-4.2 2.1-6 3.5v6h-6c-1.4 1.8-2.6 3.9-3.5 6h9.5v12h-12c0 2.1.2 4.1.6 6h58.8c.4-1.9.6-3.9.6-6h-42"/></g><g fill="#428bc1"><path d="m61.4 26h-29.4v-6h-12v12h12 30c0-2.1-.2-4.1-.6-6"/><path d="m32 2c-4.3 0-8.3.9-12 2.5v9.5h12v-6h18c-5-3.8-11.2-6-18-6"/><path d="m14 14v-6c-2.3 1.7-4.3 3.7-6 6h6"/><path d="M4.5,20C2.9,23.7,2,27.7,2,32h12V20H4.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f8.svg
index e52f8a7..68772ee 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="-1133.29" x2="-1132.29" gradientTransform="matrix(-.5968-1.5125 1.2072-.7477 257.78-2226.21)"><stop stop-color="#d5dfff"/><stop offset="1" stop-color="#fff"/></linearGradient></defs><g fill="#2a5f9e"><path d="m32 1.999v30h-30c0 16.568 13.432 30 30 30 16.569 0 30-13.432 30-30 0-16.569-13.432-30-30-30"/><path d="m12 11.999h21v21h-21z"/></g><g fill="#fff"><path d="m18.912 8.139v5.86h-7.312l14.4 18h6v-7.501z"/><path d="M11,18.911H5.011C3.088,22.868,2,27.305,2,32h12V13.911h-3V18.911z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="m18.912 5.01v5.988h-7.912v3h21v-12c-4.694 0-9.131 1.088-13.09 3.01"/><path fill="#ed4c5c" d="m32 4.999h-13.09c-6.05 2.94-10.972 7.857-13.912 13.912v13.09h6v-21h21v-6"/><path fill="#6a4c2d" d="m44.564 41.695c-.617.586-1.799 1.174-2.641.598-1.053.24-.496.52-1.461-.168-.734.227-.852.234-1.861-.23-.471.938-1.125 1.109-1.875.463.143-.195.279-.395.414-.596 0 .352-1.627.258-1.727.281.873-2.926 4.553-5.26 6.676-7.322 1.018 1.875 3.684 4.779 2.475 6.974"/><path fill="#fff" d="m48.752 42.04l1.538-.054-.657-.322 5.847-.224-.826-.31-.732-.99-3.622-.318-.304-.542-1.866-.14-1.165.794.787 2.01z"/><path fill="#656263" d="m48.754 31.11c.117-.072.486-.189.441-.73-.045-.539-.514-.604-.775-.586-.262.02-.496.244-.496.244l-.865-.549c0 0 .434-2.732.893-2.903.436-.314.514-.451.514-.523l-.162-.252-2.82-.333-2.668.315c0 0-.207.316-.18.443.025.125.035.261.512.631.529.407.893 2.741.893 2.741l-.793.324c-.045-.045-.27-.09-.387-.072s-.504.215-.504.729c0 .516.387.813.387.813s2.551-.297 2.93.404c.367-.848 2.791-.551 3.08-.696"/><path fill="#3e4347" d="m51.5 28.27c.211-.574.584-.559 1.174-.57 1.234-.027 1.123.408 1.494 1.389.533 1.404 1.359 2.801 1.457 4.352.104 1.674.064 3.998-.717 5.52-.557 1.084.746 1.377 1.547 1.773l-.607-.227.607.508-.691-.324.408.408-1-.451.439.424-.75-.352c.143.154.289.305.439.451-.213-.104-.43-.197-.65-.283l.027.24c-.758-.633-2.01-.658-2.309-1.564-.352-1.049-1.162-2.465-1.109-3.578.108-2.344.839-5.43.243-7.716"/><path fill="#00713d" d="m43.99 39.74l-.242.936.332-.446.03 1 .33-.574.01 1.201.292-.577-.033 1.1.262-.489.219.994.27-.645.444.79.116-.62.625.68v-.68l.675.62.03-.473.66.32-.02-.427.809.259-.499-.519h.468l-.778-.475.44-.026-.774-.539.524-.03-.79-.595.409-.084z"/><path fill="#fff" d="m41.916 31.391c.721-.014 1.441-.025 2.162-.039 0 0 1.428 0 1.582.465.27-.619 1.506-.58 1.506-.58.746-.023 1.492-.051 2.238-.076.012 1.801.025 3.602.039 5.404-.438 2.096-1.957 3.576-3.629 4.207-1.994-.645-3.256-2.33-3.666-4.246-.078-1.712-.154-3.424-.232-5.135"/><path fill="#006b00" d="m42.686 31.371l3.148 8.391 2.846-8.572c-.883.057-2.775-.141-3.01.664-.363-.721-2.355-.43-2.982-.483"/><g fill="#cdad56"><path d="m43.984 17.825l1.842-1.527.244-1.132-.345.262-.112-.525-.09-.091-.163.208-.17-.421-.284.431.504.99-.494.803-.172-.555.182-.546-.324.111.021-.617-.423.334-.14-.061.471 1.254-.321.397-.507-1.317-.121.297-.222-.236.161.697-.251.061.351.388-.321.329.575-.199-.162.442z"/><path d="m42.598 17.825l-1.568-1.389-.149-1.041.239.249.17-.564.202.308.285-.397.182.294-.569.902.419.727.146-.506-.266-.398h.381l.03-.518.29.273.239-.227-.499 1.302.22.25.388-1.03.203.21.189-.21-.136.633.216.055-.13.352.1.301-.487-.183.137.404z"/></g><path fill="#ffc900" d="m48.15 32.623l-.316-.361.373-.477-.607.15-.105-.611-.152.646-.598-.268.424.48-1.154.811.297.084-.402.055.129.225-.303.104.178.125-.783.025-.051-.6.836.041-.408-.801-.26.168-.26-.359-.697.205.424-.48-.596.268-.154-.645-.104.609-.607-.15.479.355-.422.484.545-.23.205.607.074-.363-.006-.021.271.209h.057l.139 2.01-.156.426.119-.098.27.654.088-.568.465-.229.328-.113.193.061.146.557-.455.656-.559.271-.213.273.574-.285.016.295.326-.279.016.232.193-.109-.512 1.318.455-.387-.047.568.199-.412.248-.225.088.215.045-.547.17.135-.203-.699.271.164-.227-.871.771-.424-.033-.4-.217.135.17-.4.09-.613-.021.299v-.508l.26.102-.191-.262.443-.18-.217-.014.49-.494-1.162.871-.133 1.697-.42-1.939.25.303.17-.787.42.096-.193-.266.205.061-.336-.193.449-.084-.378-.323.51-.195.039.595.205-.607.545.23m-3.201 2.188l.105-.656.801-.096-.906.752"/><g fill="#ed4c5c"><path d="m38.773 48.82c.316-.078 2.035.379 2.699 1.09-.141-1.266-.492-2.234-.492-2.234s-1.025-.293-1.164-.152c-.207.216-.826.867-1.043 1.296"/><path d="m38.25 42.975c-.119.02-.24.102-.361.301-.141.342-.24 1.205-.441 1.406s-.383.221-.383.402.021.604.563.762c.543.021 1.406-.863 1.406-.863s.443-.482.623-1c-1.046.361-1.788-.604-1.407-1"/><path d="m53.36 48.617c-.316-.074-2.055.379-2.713 1.086.141-1.26.488-2.223.488-2.223.121-.033 1.01-.291 1.145-.15.205.215.864.863 1.08 1.287"/><path d="m53.844 42.807c.119.02.162.178.26.377.139.34.283.834.482 1.033.199.201.379.496.379.676s-.043.424-.58.582c-.539.02-1.318-.67-1.318-.67s-.439-.48-.619-1c1.036.359 1.708-.565 1.396-.998"/></g><path fill="#ffce31" d="m52.34 45.42c.414-.438.73-.576.73-.576s-.479-.6-.598-1.018c.957.479 2.291-1.08.836-1.199-1.039.107-1.881.906-2.502 1.875-3.063-1.488-6.689-1.377-9.564.068-.6-.973-1.418-1.762-2.447-1.777-1.467.121-.121 1.688.844 1.205-.121.424-.604 1.025-.604 1.025s.285.125.666.508c-.795.605-1.492 1.336-2.051 2.184 0 0 1.084.742 1.104 1.086.502-.744 1.139-1.4 1.869-1.949.363.723.697 1.709.883 3.053 0 0 .564-1.627.904-1.646.15-.01-.006-1.057-.457-2.232 2.426-1.236 5.477-1.449 8.148-.16-.455 1.107-.633 2.131-.502 2.383.34.02 1.018 1.449 1.018 1.449.184-1.316.508-2.289.861-3 .666.486 1.291 1.084 1.859 1.803.564-.742 1.146-.984 1.146-.984-.633-.83-1.358-1.528-2.143-2.096"/><g fill="#1e5aa6"><path d="m48.697 31.19l.424-.01-.758.961.91 1.061-1.789 2.254 1.688 2.033c-.186.455-.4.869-.688 1.244l-.971-1.074 1.76-2.191-1.445-1.639.869-2.639"/><path d="m42.631 31.383l-.455.01.85.918-.898 1.123 1.869 2.033-1.547 2.072c.186.455.451.961.738 1.334l.92-1.162-1.891-2.104 1.385-1.758-.971-2.466"/><path d="m44.734 36.84l-.668.891 2.387 2.76c.42-.213.752-.455 1.111-.748l-1.244-1.436.508-1.486.727.838-2.275 2.902c-.381-.162-.801-.414-1.182-.729l1.203-1.525-.567-1.467"/><path d="m43.996 35.455l.434.545-.28-.73z"/><path d="m47.11 35.938l.35-.463-.13-.185z"/></g><path fill="#f5f5f5" d="m51.54 29.514c.193-.014 1.439.031 1.439.197-.471.209-.832.543-1.086 1 .301.455.594.916.875 1.381.078 1.045-1.316 2.02-1.17 3.533.104 1.068.113 2.168.957 2.92 1.125 1 .635-2.094.693-2.371.045-.229 1.096 1 1.072 1.383-.07 1.092-.451.508-.521.775-.303 1.139-.346 1.848-1.254 1.762-1.413-.809-2.784-8.772-1.01-10.582"/><g fill="#fff"><path d="m47.44 27.629c0 0 1.125 1.215 1.854 1.203.131.357-.332.688-.516.846-.371-.117-.707.023-1.566-1.035.055-.674.242-.989.228-1.014"/><path d="m48.965 24.797c.146-.45.438-.807.688-.847-.066-.343.529-1.864 2.262-2.446.105.78-.74 1.548-.74 1.548s2.553-.437 3.068-1.085c-.053.291-.568 2.103-3.293 2.089 1.031.979-.33 1.76-.912 1.521 1.069-.819-.306-1.308-1.073-.78"/></g><g fill="#00f"><path d="m48.766 29.678c0 0 1.402.383 1.563-1.627-.305-.873-.729-2.751-.08-3.293-.596-.41-1.244.013-1.244.013-.039.093-.568.847.146 2.168-1.693-.449-1.01 1.151-1.01 1.151.066-.25.967-.488 1.191.795.092.316-.609.806-.57.793"/><path d="m50.34 28.06c0 0 1.482-.793 1.441-2.658-1.256.026-1.705 1.652-1.705 1.652l.264 1.01"/></g><path fill="#fff" d="m43.701 27.971c0 0-1.098.953-1.719.648-.463.277-1.01-.211-1.01-.211s.635 2.34 2.91.646c-.038-.513-.157-1.042-.185-1.083"/><path fill="#00f" d="m41.969 28.58c.092-.49.477-.729.781-.266.41.08.818-1.599-.637-1.322.41-2.195-.818-3.02-.818-3.02s-.438 2.433-.238 2.882c.197.451-.291-.832-1.865-1.19-.025 1.838 1.76 2.7 1.76 2.7s.501.463 1.017.211"/><path fill="#fff" d="m41.1 24.89c0-.013-1.045 0-.422 1.058-.465.146-1.496-.529-.781-1.428-2.34-.053-3.293-1.177-3.293-2.209.688.714 2.328.424 2.91.86-.715-.661-.57-1.573-.57-1.573s1.998.595 2.355 2.367c-.119.344-.172.952-.199.925"/><path fill="#923f00" d="m42.936 24.333c-.051.175-.102.35-.154.525 1.871.036 3.74.072 5.611.107-.113-.578-.506-1.235-.74-1.705.063-.442.143-1.057.25-1.631.09-.48-.652-.603-.471-1.102-.059.158.633.037.621.038-.254.021-.365-1.018-.703-1.146-.65-.247-1.01.014-1.625-.018-.828-.043-2.01-.02-1.771-1.164.389.122.871.03 1.018-.41-.102-.075-1.434-.282-1.641-.292-.186-.008-1.609.356-1.719.45.395.515.779.379 1.16.751.176.172.318 1.069.137 1.01h.211c-.102.086-.168.197-.199.331.123-.032.246-.041.371-.026-.082.178-.184.345-.303.502l.502.04c-.074.153-.133.312-.174.477.117-.045.236-.08.359-.106.318.954-.381 2.477-.74 3.371m4.132-1.026c.223-.072.217-.07 0 0m-.152-1.882c.836 0 .4 1.842.084 1.887-.766.11-.658-1.887-.084-1.887m-1.984.595c-.26-1.63 2.01-1.064 1.293.095-.098.159-.584 1.274-.623 1.274-.627.002-.805-.905-.67-1.369m-1.01 1.018c.391-.51-.293-1.747.648-1.984.004.74.008 1.739-.418 2.382-.094-.181-.244-.262-.449-.242.109-.014.182-.066.219-.156"/><path fill="#b4b6b9" d="m42.709 26.423l2.781 1.821 2.506-1.685c0 0 .523-.29.479-.497-.045-.207-.227-.126-.316-.089l-2.623 1.83-2.693-1.705c0 0-.199-.062-.234.063-.039.127.073.198.1.262"/><g fill="#ff7000"><path d="m52.03 39.824l-1.065.102.335.304 1.317-.02z"/><path d="m51.604 28.396l-1.334.694.337.306 1.323-.021z"/><path d="m51.32 40.38l.588.419 1.692-.26-.48-.319z"/></g><path fill="url(#0)" d="m51.01 31.715c-.154-.078-.834-.17-1.59.324l.031 1.744c0 0 1.111-.602 1.652-.463-.031-.541-.031-1.234-.093-1.605"/><path fill="#8a9396" d="m40.04 30.02c-.291.775.691 2 1.023 2.674.67-.848.961-.943.967.193.002.262.076.723-.023.971-.127.324-.766.143-.539.535.568.984.465 1.586.168 2.641-.115.406-.527 2.502-1.055 2.59.029-.004.064-1.527.021-1.748-.053-.26-.559-1.018-.375-1.314-.213.342-1.025 1.457-1.535 1.133.223.479.01.732-.074 1.162-.057.301-.074.654-.131 1.014-.068.438-.688.771-.578 1.422-2.07-.732-3.539-2.291-2.838-4.576.154-.506.43-.99.869-1.299.547-.387.59-1.033.83-1.67.094-.25.291-.547.258-.822-.068-.551.268-.783.34-1.236.107-.67.166-1.541.16-2.221-.008-1.113.395-1.01 1.264-1.488.271-.148 1.537.084 1.813.314.32.268-.362 1.557-.565 1.725"/><path fill="#fff" d="m42.564 24.723h5.947v1.179h-5.947z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="-1760.7915" x2="-1759.7915" gradientTransform="matrix(-.5968-1.5125-1.2072.7477 87.3848-3301.7146)"><stop stop-color="#d5dfff"/><stop offset="1" stop-color="#fff"/></linearGradient></defs><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.6,13.4,30,30,30c16.6,0,30-13.4,30-30C62,15.4,48.6,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m44.6 41.7c-.6.6-1.8 1.2-2.6.6-1.1.2-.5.5-1.5-.2-.7.2-.9.2-1.9-.2-.5.9-1.1 1.1-1.9.5.1-.2.3-.4.4-.6 0 .4-1.6.3-1.7.3.9-2.9 4.6-5.3 6.7-7.3 1 1.8 3.7 4.7 2.5 6.9" fill="#6a4c2d"/><path fill="#fff" d="m48.8 42h1.5l-.7-.3 5.9-.3-.8-.3-.8-1-3.6-.3-.3-.5-1.9-.2-1.1.8.8 2z"/><path d="m48.8 31.1c.1-.1.5-.2.4-.7 0-.5-.5-.6-.8-.6-.3 0-.5.2-.5.2l-.9-.5c0 0 .4-2.7.9-2.9.4-.3.5-.5.5-.5l-.2-.3-2.8-.3-2.7.3c0 0-.2.3-.2.4 0 .1 0 .3.5.6.5.4.9 2.7.9 2.7l-.8.3c0 0-.3-.1-.4-.1s-.5.2-.5.7c0 .5.4.8.4.8s2.6-.3 2.9.4c.5-.6 3-.3 3.3-.5" fill="#656263"/><path d="m51.5 28.3c.2-.6.6-.6 1.2-.6 1.2 0 1.1.4 1.5 1.4.5 1.4 1.4 2.8 1.5 4.4.1 1.7.1 4-.7 5.5-.6 1.1.7 1.4 1.5 1.8l-.6-.2.6.5-.7-.3.4.4-1-.5.4.4-.8-.4c.1.2.3.3.4.5-.2-.1-.4-.2-.7-.3v.2c-.8-.6-2-.7-2.3-1.6-.4-1-1.2-2.5-1.1-3.6.3-2.3 1-5.3.4-7.6" fill="#3e4347"/><path fill="#00713d" d="m44 39.7l-.3 1 .4-.5v1l.3-.5v1.2l.3-.6v1.1l.3-.5.2 1 .3-.7.4.8.1-.6.6.7v-.7l.7.6v-.4l.7.3v-.4l.8.2-.5-.5h.5l-.8-.5h.4l-.7-.6h.5l-.8-.6.4-.1z"/><path d="m41.9 31.4c.7 0 1.4 0 2.2 0 0 0 1.4 0 1.6.5.3-.6 1.5-.6 1.5-.6.7 0 1.5-.1 2.2-.1 0 1.8 0 3.6 0 5.4-.4 2.1-2 3.6-3.6 4.2-2-.6-3.3-2.3-3.7-4.2 0-1.8-.1-3.5-.2-5.2" fill="#fff"/><path d="m42.7 31.4l3.1 8.4 2.8-8.6c-.9.1-2.8-.1-3 .7-.3-.8-2.3-.5-2.9-.5" fill="#006b00"/><g fill="#cdad56"><path d="m44 17.8l1.8-1.5.3-1.1-.4.2-.1-.5-.1-.1-.1.2-.2-.4-.3.4.5 1-.5.8-.2-.5.2-.6-.3.1v-.6l-.4.4-.1-.1.4 1.2-.3.4-.5-1.3-.1.3-.2-.2.1.7h-.2l.3.4-.3.4.6-.2-.2.4z"/><path d="m42.6 17.8l-1.6-1.4-.1-1 .2.2.2-.5.2.3.3-.4.2.3-.6.9.4.7.2-.5-.3-.4h.4v-.5l.3.3.2-.3-.5 1.3.2.3.4-1 .2.2.2-.2-.1.6h.2l-.1.4.1.3-.5-.2.1.4z"/></g><path d="m48.2 32.6l-.3-.4.4-.5-.6.1-.1-.6-.3.8-.6-.3.4.5-1.1.8.3.1-.4.1.1.2-.3.1.2.1h-.8v-.6h.8l-.4-.8-.3.2-.2-.3-.7.2.4-.5-.6.3-.1-.7-.1.6-.6-.1.5.4-.4.5.5-.2.2.6.1-.4.3.2h.1l.1 2-.2.4.1-.1.3.7.1-.6.5-.2.3-.1.2.1.1.6-.5.7h-.6l-.2.3.6-.3v.3l.3-.3v.2l.2-.1-.5 1.4.5-.4v.6l.2-.4.2-.2.1.2v-.5l.2.1-.2-.7.3.2-.2-.9.8-.4v-.4h-.3l.2-.4.1-.6v.3-.5l.3.1-.2-.3.4-.2h-.2l.5-.5-1.3.9-.1 1.7-.4-1.9.2.3.2-.8.4.1-.2-.3.2.1-.3-.2.4-.1-.4-.3.5-.2v.6l.2-.6.7.2m-3.2 2.2l.1-.7.8-.1-.9.8" fill="#ffc900"/><g fill="#ed4c5c"><path d="m38.8 48.8c.3-.1 2 .4 2.7 1.1-.1-1.3-.5-2.2-.5-2.2s-1-.3-1.2-.2c-.2.2-.8.9-1 1.3"/><path d="m38.2 43c-.1 0-.2.1-.4.3-.1.3-.2 1.2-.4 1.4s-.4.2-.4.4 0 .6.6.8c.5 0 1.4-.9 1.4-.9s.4-.5.6-1c-1 .3-1.7-.6-1.4-1"/><path d="m53.4 48.6c-.3-.1-2.1.4-2.7 1.1.1-1.3.5-2.2.5-2.2.1 0 1-.3 1.1-.2.2.2.8.9 1.1 1.3"/><path d="m53.8 42.8c.1 0 .2.2.3.4.1.3.3.8.5 1 .2.2.4.5.4.7s0 .4-.6.6c-.5 0-1.3-.7-1.3-.7s-.4-.5-.6-1c1 .4 1.7-.6 1.3-1"/></g><path d="m52.3 45.4c.4-.4.7-.6.7-.6s-.5-.6-.6-1c1 .5 2.3-1.1.8-1.2-1 .1-1.9.9-2.5 1.9-3.1-1.5-6.7-1.4-9.6.1-.6-1-1.4-1.8-2.4-1.8-1.5.1-.1 1.7.8 1.2-.1.4-.6 1-.6 1s.3.1.7.5c-.8.6-1.5 1.3-2.1 2.2 0 0 1.1.7 1.1 1.1.5-.7 1.1-1.4 1.9-1.9.4.7.7 1.7.9 3.1 0 0 .6-1.6.9-1.6.2 0 0-1.1-.5-2.2 2.4-1.2 5.5-1.4 8.1-.2-.5 1.1-.6 2.1-.5 2.4.3 0 1 1.4 1 1.4.2-1.3.5-2.3.9-3 .7.5 1.3 1.1 1.9 1.8.6-.7 1.1-1 1.1-1-.5-.9-1.2-1.6-2-2.2" fill="#ffce31"/><g fill="#1e5aa6"><path d="m48.7 31.2h.4l-.8 1 .9 1.1-1.8 2.3 1.7 2c-.2.5-.4.9-.7 1.2l-1-1.1 1.8-2.2-1.4-1.6.9-2.7"/><path d="m42.6 31.4h-.5l.8.9-.9 1.1 1.9 2-1.5 2.1c.2.5.5 1 .7 1.3l.9-1.2-1.9-2.1 1.4-1.8-.9-2.3"/><path d="m44.7 36.8l-.7.9 2.4 2.8c.4-.2.8-.5 1.1-.7l-1.2-1.4.5-1.5.7.8-2.3 2.9c-.4-.2-.8-.4-1.2-.7l1.2-1.5-.5-1.6"/><path d="m44 35.5l.4.5-.3-.7z"/><path d="m47.1 35.9l.4-.4-.2-.2z"/></g><path d="m51.5 29.5c.2 0 1.4 0 1.4.2-.5.2-.8.5-1.1 1 .3.5.6.9.9 1.4.1 1-1.3 2-1.2 3.5.1 1.1.1 2.2 1 2.9 1.1 1 .6-2.1.7-2.4 0-.2 1.1 1 1.1 1.4-.1 1.1-.5.5-.5.8-.3 1.1-.3 1.8-1.3 1.8-1.4-.8-2.7-8.8-1-10.6" fill="#f5f5f5"/><g fill="#fff"><path d="m47.4 27.6c0 0 1.1 1.2 1.9 1.2.1.4-.3.7-.5.8-.4-.1-.7 0-1.6-1 .1-.6.3-.9.2-1"/><path d="m49 24.8c.1-.5.4-.8.7-.8-.1-.3.5-1.9 2.3-2.4.1.8-.7 1.5-.7 1.5s2.6-.4 3.1-1.1c-.1.3-.6 2.1-3.3 2.1 1 1-.3 1.8-.9 1.5.9-.8-.5-1.3-1.2-.8"/></g><g fill="#00f"><path d="m48.8 29.7c0 0 1.4.4 1.6-1.6-.3-.9-.7-2.8-.1-3.3-.6-.4-1.2 0-1.2 0 0 .1-.6.8.1 2.2-1.7-.4-1 1.2-1 1.2.1-.2 1-.5 1.2.8 0 .2-.7.7-.6.7"/><path d="m50.3 28.1c0 0 1.5-.8 1.4-2.7-1.3 0-1.7 1.7-1.7 1.7l.3 1"/></g><path d="m43.7 28c0 0-1.1 1-1.7.6-.5.3-1-.2-1-.2s.6 2.3 2.9.6c-.1-.5-.2-1-.2-1" fill="#fff"/><path d="m42 28.6c.1-.5.5-.7.8-.3.4.1.8-1.6-.6-1.3.4-2.2-.8-3-.8-3s-.4 2.4-.2 2.9c.2.5-.3-.8-1.9-1.2 0 1.8 1.8 2.7 1.8 2.7s.4.4.9.2" fill="#00f"/><path d="m41.1 24.9c0 0-1 0-.4 1.1-.5.1-1.5-.5-.8-1.4-2.3-.1-3.3-1.2-3.3-2.2.7.7 2.3.4 2.9.9-.7-.7-.6-1.6-.6-1.6s2 .6 2.4 2.4c-.1.2-.2.8-.2.8" fill="#fff"/><path d="m42.9 24.3c-.1.2-.1.4-.2.5 1.9 0 3.7.1 5.6.1-.1-.6-.5-1.2-.7-1.7.1-.4.1-1.1.2-1.6.1-.5-.7-.6-.5-1.1-.1.2.6 0 .6 0-.3 0-.4-1-.7-1.1-.7-.2-1 0-1.6 0-.8 0-2 0-1.8-1.2.4.1.9 0 1-.4-.1-.1-1.4-.3-1.6-.3-.2 0-1.6.4-1.7.5.4.5.8.4 1.2.8.2.2.3 1.1.1 1h.2c-.1.1-.2.2-.2.3.1 0 .2 0 .4 0-.1.2-.2.3-.3.5h.5c-.1.2-.1.3-.2.5.1 0 .2-.1.4-.1.4.9-.3 2.4-.7 3.3m4.2-1c.2-.1.2-.1 0 0m-.2-1.9c.8 0 .4 1.8.1 1.9-.8.1-.7-1.9-.1-1.9m-2 .6c-.3-1.6 2-1.1 1.3.1-.1.2-.6 1.3-.6 1.3-.6 0-.8-.9-.7-1.4m-1 1c.4-.5-.3-1.7.6-2 0 .7 0 1.7-.4 2.4-.1-.2-.2-.3-.4-.2.1 0 .2-.1.2-.2" fill="#923f00"/><path d="m42.7 26.4l2.8 1.8 2.5-1.7c0 0 .5-.3.5-.5 0-.2-.2-.1-.3-.1l-2.6 1.8-2.7-1.7c0 0-.2-.1-.2.1-.1.2 0 .3 0 .3" fill="#b4b6b9"/><g fill="#ff7000"><path d="m52 39.8l-1 .1.3.3h1.3z"/><path d="m51.6 28.4l-1.3.7.3.3h1.3z"/><path d="m51.3 40.4l.6.4 1.7-.3-.5-.3z"/></g><path d="m51 31.7c-.2-.1-.8-.2-1.6.3v1.7c0 0 1.1-.6 1.7-.5 0-.4 0-1.1-.1-1.5" fill="url(#0)"/><path d="m40 30c-.3.8.7 2 1 2.7.7-.8 1-.9 1 .2 0 .3.1.7 0 1-.1.3-.8.1-.5.5.6 1 .5 1.6.2 2.6-.1.4-.5 2.5-1.1 2.6 0 0 .1-1.5 0-1.7-.1-.3-.6-1-.4-1.3-.2.3-1 1.5-1.5 1.1.2.5 0 .7-.1 1.2-.1.3-.1.7-.1 1-.1.4-.7.8-.6 1.4-2.1-.7-3.5-2.3-2.8-4.6.2-.5.4-1 .9-1.3.5-.4.6-1 .8-1.7.1-.2.3-.5.3-.8-.1-.6.3-.8.3-1.2.1-.7.2-1.5.2-2.2 0-1.1.4-1 1.3-1.5.3-.1 1.5.1 1.8.3.2.3-.5 1.5-.7 1.7" fill="#8a9396"/><path fill="#fff" d="m42.6 24.7h5.9v1.2h-5.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f9.svg
index 8964503..bc4f584 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1f9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.12 20-15.225 20-28.29"/><path d="M2,32c0,13.061,8.35,24.167,20,28.286V3.713C10.35,7.833,2,18.939,2,32z"/></g><path fill="#f9f9f9" d="M42,3.713C38.871,2.607,35.508,2,32,2s-6.871,0.607-10,1.714v56.572C25.129,61.393,28.492,62,32,62
- s6.871-0.607,10-1.715V3.713z"/><path fill="#699635" d="m27.05 25.937c0 0-.681-.193-1.224-.184.007-.011.014-.018.021-.028.428-.655.57-1.881.57-1.881s-1.06.622-1.492 1.272c-.224-.472-.635-.957-.635-.957s-.5.563-.424 1.108.77 1.36.77 1.36 1.032.298 1.564.146c.535-.152.85-.836.85-.836"/><path fill="#83bf4f" d="m26.07 27.504c0 0-.708-.013-1.229.136.003-.012.009-.021.012-.033.243-.743.061-1.963.061-1.963s-.861.873-1.108 1.613c-.341-.399-.865-.762-.865-.762s-.335.673-.12 1.18c.216.508 1.099 1.116 1.099 1.116s1.074.023 1.549-.262c.476-.284.601-1.025.601-1.025"/><path fill="#699635" d="m25.53 29.27c0 0-.687.17-1.151.447.001-.012.004-.022.003-.034.041-.78-.453-1.912-.453-1.912s-.604 1.064-.65 1.842c-.432-.297-1.032-.513-1.032-.513s-.149.736.191 1.17c.341.436 1.352.795 1.352.795s1.044-.252 1.429-.651c.385-.397.311-1.144.311-1.144"/><path fill="#83bf4f" d="m25.469 31.11c0 0-.618.342-.995.729-.002-.013-.003-.022-.006-.034-.163-.765-.937-1.73-.937-1.73s-.307 1.183-.148 1.946c-.494-.176-1.131-.23-1.131-.23s.048.749.491 1.082c.443.333 1.513.42 1.513.42s.941-.513 1.209-.995c.269-.484.004-1.188.004-1.188"/><path fill="#699635" d="m25.891 32.91c0 0-.508.489-.771.959-.006-.012-.009-.021-.016-.031-.357-.697-1.355-1.431-1.355-1.431s.013 1.222.364 1.919c-.523-.043-1.153.066-1.153.066s.241.711.757.92c.514.207 1.571.018 1.571.018s.776-.738.909-1.273-.306-1.147-.306-1.147"/><path fill="#83bf4f" d="m26.768 34.537c0 0-.364.602-.496 1.125-.008-.01-.014-.018-.022-.027-.526-.58-1.683-1.033-1.683-1.033s.332 1.176.853 1.76c-.517.094-1.097.361-1.097.361s.419.625.97.693c.552.068 1.522-.387 1.522-.387s.558-.912.547-1.463c-.012-.55-.594-1.029-.594-1.029"/><path fill="#699635" d="m28.04 35.885c0 0-.194.674-.186 1.213-.01-.008-.018-.014-.028-.021-.659-.424-1.895-.564-1.895-.564s.626 1.051 1.282 1.48c-.476.223-.965.631-.965.631s.567.496 1.117.42 1.37-.764 1.37-.764.301-1.025.146-1.555-.841-.84-.841-.84"/><path fill="#83bf4f" d="m29.614 36.857c0 0-.012.703.138 1.221-.012-.004-.02-.01-.033-.012-.748-.242-1.977-.061-1.977-.061s.879.855 1.624 1.102c-.401.338-.768.855-.768.855s.678.334 1.188.121c.513-.215 1.125-1.092 1.125-1.092s.023-1.066-.265-1.537c-.286-.472-1.032-.597-1.032-.597"/><path fill="#699635" d="m36.947 25.937c0 0 .681-.193 1.224-.184-.007-.011-.014-.018-.021-.028-.428-.655-.57-1.881-.57-1.881s1.06.622 1.491 1.272c.225-.472.636-.957.636-.957s.5.563.424 1.108-.77 1.36-.77 1.36-1.032.298-1.564.146c-.535-.152-.85-.836-.85-.836"/><path fill="#83bf4f" d="m37.93 27.504c0 0 .708-.013 1.229.136-.004-.012-.009-.021-.012-.033-.243-.743-.061-1.963-.061-1.963s.861.873 1.108 1.613c.341-.399.864-.762.864-.762s.336.673.12 1.18c-.216.508-1.099 1.116-1.099 1.116s-1.074.023-1.55-.262c-.474-.284-.599-1.025-.599-1.025"/><path fill="#699635" d="m38.47 29.27c0 0 .687.17 1.151.447-.001-.012-.004-.022-.003-.034-.041-.78.453-1.912.453-1.912s.604 1.064.65 1.842c.433-.297 1.032-.513 1.032-.513s.149.736-.191 1.17c-.341.436-1.352.795-1.352.795s-1.044-.252-1.429-.651c-.385-.397-.311-1.144-.311-1.144"/><path fill="#83bf4f" d="m38.53 31.11c0 0 .619.342.996.729.002-.013.003-.022.005-.034.164-.765.938-1.73.938-1.73s.307 1.183.148 1.946c.494-.176 1.131-.23 1.131-.23s-.049.749-.49 1.082c-.443.333-1.514.42-1.514.42s-.941-.513-1.209-.995c-.269-.484-.005-1.188-.005-1.188"/><path fill="#699635" d="m38.11 32.91c0 0 .508.489.771.959.006-.012.009-.021.016-.031.357-.697 1.355-1.431 1.355-1.431s-.013 1.222-.364 1.919c.523-.043 1.153.066 1.153.066s-.241.711-.757.92c-.514.207-1.571.018-1.571.018s-.776-.738-.909-1.273.306-1.147.306-1.147"/><path fill="#83bf4f" d="m37.23 34.537c0 0 .364.602.496 1.125.008-.01.014-.018.022-.027.526-.58 1.683-1.033 1.683-1.033s-.332 1.176-.853 1.76c.517.094 1.097.361 1.097.361s-.42.625-.97.693c-.552.068-1.522-.387-1.522-.387s-.558-.912-.547-1.463c.012-.55.594-1.029.594-1.029"/><path fill="#699635" d="m35.963 35.885c0 0 .194.674.186 1.213.01-.008.018-.014.028-.021.659-.424 1.895-.564 1.895-.564s-.626 1.051-1.282 1.48c.476.223.965.631.965.631s-.567.496-1.117.42-1.37-.764-1.37-.764-.301-1.025-.147-1.555c.153-.53.842-.84.842-.84"/><path fill="#83bf4f" d="m34.386 36.857c0 0 .012.703-.138 1.221.012-.004.02-.01.033-.012.748-.242 1.977-.061 1.977-.061s-.879.855-1.624 1.102c.401.338.768.855.768.855s-.678.334-1.188.121c-.513-.215-1.125-1.092-1.125-1.092s-.023-1.066.265-1.537c.286-.472 1.032-.597 1.032-.597"/><g fill="#94989b"><path d="m39.996 24.07l-14 12.924 1.164 1.076z"/><path d="m24 24.07l14 12.924-1.164 1.076z"/></g><path fill="#ffdd7d" d="m29.19 32.998h4c0 0 1-.999 1-4 0-3.01-1-4-1-4h-4c0 0 1 .992 1 4 0 3-1 4-1 4"/><path fill="#699635" d="m31 20.833c0 0-.02.076-.016.215-.012.132.031.339.086.567.039.112.082.235.129.37.08.125.15.26.229.396.06.143.214.266.32.404.117.137.22.286.391.411.299.271.623.544 1.029.796.205.143.416.289.632.438.228.163.423.281.669.514.493.451.932.907 1.285 1.452.181.27.365.542.5.843.155.291.288.596.395.912.229.625.366 1.293.4 1.961.051.668-.055 1.338-.219 1.961-.174.622-.465 1.184-.811 1.651-.149.25-.357.441-.545.635-.189.191-.373.367-.582.496-.199.137-.389.268-.57.391-.19.105-.385.18-.558.26-.343.166-.653.271-.921.324-.525.123-.818.17-.818.17s.236-.207.638-.525c.21-.145.432-.363.678-.605.263-.225.503-.523.753-.838.139-.146.24-.328.34-.514.101-.186.242-.348.305-.561.185-.393.291-.828.375-1.275.068-.453.057-.928.001-1.41-.063-.48-.163-.977-.351-1.449-.072-.244-.17-.479-.289-.707-.1-.235-.223-.459-.354-.676-.254-.438-.549-.861-.83-1.191-.381-.391-.748-.77-1.097-1.128-.187-.204-.386-.37-.54-.585-.145-.221-.285-.434-.421-.639-.142-.191-.238-.415-.317-.629-.07-.219-.177-.395-.197-.607-.033-.202-.066-.387-.082-.556.007-.177.025-.337.037-.476.045-.279.131-.484.207-.612.068-.131.119-.184.119-.184"/><g fill="#594640"><path d="m25.408 39.9c-.324.322-.849.322-1.173 0-.323-.324-.323-.848 0-1.172l2.343-2.344c.324-.322.848-.322 1.172 0 .324.324.324.85 0 1.172l-2.342 2.344"/><path d="m38.592 39.9c.324.322.849.322 1.173 0 .323-.324.323-.848 0-1.172l-2.343-2.344c-.324-.322-.848-.322-1.172 0-.324.324-.324.85 0 1.172l2.342 2.344"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z"/></g><path d="M42,3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7v56.6c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7z" fill="#f9f9f9"/><path d="m27.1 25.9c0 0-.7-.2-1.2-.2.4-.7.6-1.9.6-1.9s-1.1.6-1.5 1.3c-.2-.5-.6-1-.6-1s-.5.6-.4 1.1.8 1.4.8 1.4 1 .3 1.6.1c.3-.1.7-.8.7-.8" fill="#699635"/><path d="m26.1 27.5c0 0-.7 0-1.2.1.2-.7.1-2 .1-2s-.9.9-1.1 1.6c-.3-.4-.9-.8-.9-.8s-.3.7-.1 1.2c.2.5 1.1 1.1 1.1 1.1s1.1 0 1.5-.3c.4-.2.6-.9.6-.9" fill="#83bf4f"/><path d="m25.5 29.3c0 0-.7.2-1.2.4 0-.8-.5-1.9-.5-1.9s-.6 1.1-.6 1.8c-.4-.3-1-.5-1-.5s-.1.7.2 1.2c.3.4 1.4.8 1.4.8s1-.3 1.4-.7c.4-.4.3-1.1.3-1.1" fill="#699635"/><path d="m25.5 31.1c0 0-.6.3-1 .7-.2-.8-.9-1.7-.9-1.7s-.3 1.2-.1 1.9c-.5-.2-1.1-.2-1.1-.2s0 .7.5 1.1c.4.3 1.5.4 1.5.4s.9-.5 1.2-1c.1-.5-.1-1.2-.1-1.2" fill="#83bf4f"/><path d="m25.9 32.9c0 0-.5.5-.8 1-.4-.7-1.4-1.4-1.4-1.4s0 1.2.4 1.9c-.5 0-1.2.1-1.2.1s.2.7.8.9c.5.2 1.6 0 1.6 0s.8-.7.9-1.3-.3-1.2-.3-1.2" fill="#699635"/><path d="m26.8 34.5c0 0-.4.6-.5 1.1-.5-.6-1.7-1-1.7-1s.3 1.2.9 1.8c-.5.1-1.1.4-1.1.4s.4.6 1 .7c.6.1 1.5-.4 1.5-.4s.6-.9.5-1.5c0-.6-.6-1.1-.6-1.1" fill="#83bf4f"/><path d="m28 35.9c0 0-.2.7-.2 1.2-.7-.4-1.9-.6-1.9-.6s.6 1.1 1.3 1.5c-.5.2-1 .6-1 .6s.6.5 1.1.4 1.4-.8 1.4-.8.3-1 .1-1.6-.8-.7-.8-.7" fill="#699635"/><path d="m29.6 36.9c0 0 0 .7.1 1.2-.7-.2-2-.1-2-.1s.9.9 1.6 1.1c-.3.3-.7.9-.7.9s.7.3 1.2.1c.5-.2 1.1-1.1 1.1-1.1s0-1.1-.3-1.5c-.2-.5-1-.6-1-.6" fill="#83bf4f"/><path d="m36.9 25.9c0 0 .7-.2 1.2-.2-.4-.7-.6-1.9-.6-1.9s1.1.6 1.5 1.3c.2-.5.6-1 .6-1s.5.6.4 1.1-.8 1.4-.8 1.4-1 .3-1.6.1c-.3-.1-.7-.8-.7-.8" fill="#699635"/><path d="m37.9 27.5c0 0 .7 0 1.2.1-.2-.7-.1-2-.1-2s.9.9 1.1 1.6c.3-.4.9-.8.9-.8s.3.7.1 1.2c-.2.5-1.1 1.1-1.1 1.1s-1.1 0-1.5-.3c-.4-.2-.6-.9-.6-.9" fill="#83bf4f"/><path d="m38.5 29.3c0 0 .7.2 1.2.4 0-.8.5-1.9.5-1.9s.6 1.1.7 1.8c.4-.3 1-.5 1-.5s.1.7-.2 1.2c-.3.4-1.4.8-1.4.8s-1-.3-1.4-.7c-.5-.4-.4-1.1-.4-1.1" fill="#699635"/><path d="m38.5 31.1c0 0 .6.3 1 .7.2-.8.9-1.7.9-1.7s.3 1.2.1 1.9c.5-.2 1.1-.2 1.1-.2s0 .7-.5 1.1c-.4.3-1.5.4-1.5.4s-.9-.5-1.2-1c-.1-.5.1-1.2.1-1.2" fill="#83bf4f"/><path d="m38.1 32.9c0 0 .5.5.8 1 .4-.7 1.4-1.4 1.4-1.4s0 1.2-.4 1.9c.5 0 1.2.1 1.2.1s-.2.7-.8.9c-.5.2-1.6 0-1.6 0s-.8-.7-.9-1.3.3-1.2.3-1.2" fill="#699635"/><path d="m37.2 34.5c0 0 .4.6.5 1.1.5-.6 1.7-1 1.7-1s-.3 1.2-.9 1.8c.5.1 1.1.4 1.1.4s-.4.6-1 .7c-.6.1-1.5-.4-1.5-.4s-.6-.9-.5-1.5c.1-.6.6-1.1.6-1.1" fill="#83bf4f"/><path d="m36 35.9c0 0 .2.7.2 1.2.7-.4 1.9-.6 1.9-.6s-.6 1.1-1.3 1.5c.5.2 1 .6 1 .6s-.6.5-1.1.4-1.4-.8-1.4-.8-.3-1-.1-1.6c.1-.4.8-.7.8-.7" fill="#699635"/><path d="m34.4 36.9c0 0 0 .7-.1 1.2.7-.2 2-.1 2-.1s-.9.9-1.6 1.1c.4.3.8.9.8.9s-.7.3-1.2.1c-.5-.2-1.1-1.1-1.1-1.1s0-1.1.3-1.5c.1-.5.9-.6.9-.6" fill="#83bf4f"/><g fill="#94989b"><path d="M40 24.1 26 37 27.2 38.1z"/><path d="m24 24.1l14 12.9-1.2 1.1z"/></g><path d="m29.2 33h4c0 0 1-1 1-4 0-3-1-4-1-4h-4c0 0 1 1 1 4 0 3-1 4-1 4" fill="#ffdd7d"/><path d="m31 20.8c0 0 0 .1 0 .2 0 .1 0 .3.1.6 0 .1.1.2.1.4.1.1.1.3.2.4.1.1.2.3.3.4.1.1.2.3.4.4.3.3.6.5 1 .8.2.1.4.3.6.4.2.2.4.3.7.5.5.5.9.9 1.3 1.5.2.3.4.5.5.8.2.3.3.6.4.9.2.6.4 1.3.4 2 .1.7-.1 1.3-.2 2-.2.6-.5 1.2-.8 1.7-.1.2-.4.4-.5.6-.2.2-.4.4-.6.5-.2.1-.4.3-.6.4-.2.1-.4.2-.6.3-.3.2-.7.3-.9.3-.5.1-.8.1-.8.1s.2-.2.6-.5c.2-.1.4-.4.7-.6.3-.2.5-.5.8-.8.1-.1.2-.3.3-.5.1-.2.2-.3.3-.6.2-.4.3-.8.4-1.3.1-.5.1-.9 0-1.4-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.2-.5-.4-.7-.3-.4-.5-.9-.8-1.2-.4-.4-.7-.8-1.1-1.1-.2-.2-.4-.4-.5-.6-.1-.2-.3-.4-.4-.6-.1-.2-.2-.4-.3-.6-.1-.2-.2-.4-.2-.6 0-.2-.1-.4-.1-.6 0-.2 0-.3 0-.5 0-.3.1-.5.2-.6.1-.2.2-.3.2-.3" fill="#699635"/><g fill="#594640"><path d="m25.4 39.9c-.3.3-.8.3-1.2 0-.3-.3-.3-.8 0-1.2l2.3-2.3c.3-.3.8-.3 1.2 0 .3.3.3.8 0 1.2l-2.3 2.3"/><path d="m38.6 39.9c.3.3.8.3 1.2 0 .3-.3.3-.8 0-1.2l-2.3-2.3c-.3-.3-.8-.3-1.2 0-.3.3-.3.8 0 1.2l2.3 2.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fa.svg
index 51f5a5e..6cdd6bf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fa.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#2a5f9e" d="m2 32c0 9.815 4.714 18.528 12 24h36c7.285-5.473 11.999-14.186 11.999-24 0-9.814-4.714-18.526-11.999-24h-36c-7.286 5.473-12 14.185-12 24"/><g fill="#ed4c5c"><path d="m14 8h36c-5.02-3.767-11.247-6-18-6s-12.986 2.233-18 6"/><path d="m32 62c6.754 0 12.986-2.232 18-6h-36c5.01 3.768 11.246 6 18 6"/><path d="M43.548,32C43.548,42.205,32,50.475,32,50.475S20.453,42.205,20.453,32C20.453,21.795,32,13.524,32,13.524
- S43.548,21.795,43.548,32z"/></g><path fill="#b4d7ee" d="m42 32c0 8.836-10 16-10 16s-10-7.164-10-16c0-8.837 10-16 10-16s10 7.163 10 16" id="0"/><use xlink:href="#0"/><path fill="#ffe62e" d="M26.629,39.404C28.961,42.783,32,45,32,45s8-5.82,8-13h-0.007C36.238,35.416,31.68,37.982,26.629,39.404z"/><path fill="#428bc1" d="M24,32c0,2.752,1.179,5.301,2.629,7.405c5.051-1.422,9.609-3.988,13.364-7.405H24z"/><path fill="#fff" d="m28 30v4h4z"/><path fill="#89664c" d="m34.944 39c-3.787-6.752-3.285-13.708-3.262-14l.831.084c-.006.069-.494 6.938 3.135 13.411l-.704.505"/><path fill="#83bf4f" d="M32 22.22 34.5 20 33.666 23.11 37 24 33.666 24.888 34.5 28 32 25.776 29.5 28 30.335 24.888 27 24 30.335 23.11 29.5 20z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M2,32c0,9.8,4.7,18.5,12,24h36c7.3-5.5,12-14.2,12-24S57.3,13.5,50,8H14C6.7,13.5,2,22.2,2,32z" fill="#2a5f9e"/><g fill="#ed4c5c"><path d="m14 8h36c-5-3.8-11.2-6-18-6s-13 2.2-18 6"/><path d="m32 62c6.8 0 13-2.2 18-6h-36c5 3.8 11.2 6 18 6"/><path d="M43.5,32C43.5,42.2,32,50.5,32,50.5S20.5,42.2,20.5,32S32,13.5,32,13.5S43.5,21.8,43.5,32z"/></g><path d="m42 32c0 8.8-10 16-10 16s-10-7.2-10-16c0-8.8 10-16 10-16s10 7.2 10 16" fill="#b4d7ee" id="0"/><use xlink:href="#0"/><path d="m26.6 39.4c2.4 3.4 5.4 5.6 5.4 5.6s8-5.8 8-13c-3.8 3.4-8.3 6-13.4 7.4" fill="#ffe62e"/><path d="m24 32c0 2.8 1.2 5.3 2.6 7.4 5.1-1.4 9.6-4 13.4-7.4 0 0-16 0-16 0" fill="#428bc1"/><path fill="#fff" d="m28 30v4h4z"/><path d="m34.9 39c-3.8-6.8-3.3-13.7-3.3-14l.8.1c0 .1-.5 6.9 3.1 13.4l-.6.5" fill="#89664c"/><path fill="#83bf4f" d="m32 22.2l2.5-2.2-.8 3.1 3.3.9-3.3.9.8 3.1-2.5-2.2-2.5 2.2.8-3.1-3.3-.9 3.3-.9-.8-3.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fc.svg
index 058af0f..30ed7ef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M22,60.285V3.714C10.35,7.833,2,18.939,2,32S10.35,56.166,22,60.285z"/><path fill="#ffce31" d="m22 32h40c0-16.568-13.432-30-30-30-3.508 0-6.871.607-10 1.714v28.29"/><path fill="#699635" d="M22,32v28.285C25.129,61.393,28.492,62,32,62c16.568,0,30-13.432,30-30H22z"/><path fill="#3e4347" d="M13 35.715 17.322 39 15.693 33.658 20 30.25 14.662 30.25 13 25 11.385 30.25 6 30.25 10.307 33.658 8.676 39z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M22,60.3V3.7C10.4,7.8,2,18.9,2,32S10.4,56.2,22,60.3z" fill="#ed4c5c"/><path d="m22 32h40c0-16.6-13.4-30-30-30-3.5 0-6.9.6-10 1.7v28.3" fill="#ffce31"/><path d="m22 32v28.3c3.1 1.1 6.5 1.7 10 1.7 16.6 0 30-13.4 30-30h-40" fill="#699635"/><path fill="#3e4347" d="m13 35.7l4.3 3.3-1.6-5.3 4.3-3.5h-5.3l-1.7-5.2-1.6 5.2h-5.4l4.3 3.5-1.6 5.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fe.svg
index 3c4fdf2..b4f6743 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec-1f1fe.svg
@@ -1,4 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="M32,2C26.682,2,21.689,3.39,17.357,5.818L17.213,58.1C21.578,60.578,26.621,62,32,62
- c14.926,0,27.301-10.902,29.609-25.178v-9.645C59.301,12.902,46.926,2,32,2z"/><path fill="#ffe62e" d="m60.06 29.576l-42.707-21.537v.357h-3.846c-.348.273-.693.548-1.029.836v45.536c.336.287.682.563 1.029.836h3.701v.426l43.19-21.547c.068-.813 1.593-1.652 1.593-2.483s-1.869-1.61-1.936-2.424"/><path fill="#fff" d="m13.496 8.396l48.5 23.408c-.012-1.574-.143-3.119-.387-4.627l-44.25-21.359c-1.355.76-2.646 1.623-3.861 2.578"/><path fill="#ed4c5c" d="M12.453,12.025H9.635C4.893,17.33,2,24.324,2,32c0,7.676,2.893,14.67,7.635,19.975h2.818L32.428,32
- L12.453,12.025z"/><path fill="#3e4347" d="M12.482,9.226c-1.014,0.87-1.969,1.803-2.859,2.799L29.598,32L9.623,51.975
- c0.891,0.996,1.846,1.928,2.859,2.797L35.256,32L12.482,9.226z"/><path fill="#fff" d="m61.61 36.822c.244-1.508.375-3.053.387-4.627l-48.5 23.409c1.215.955 2.506 1.818 3.861 2.578l44.25-21.36"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-5.3,0-10.3,1.4-14.6,3.8l-0.1,52.3C21.6,60.6,26.6,62,32,62c14.9,0,27.3-10.9,29.6-25.2v-9.6
+ C59.3,12.9,46.9,2,32,2z" fill="#699635"/><path d="m60.1 29.6l-42.7-21.6v.4h-3.8c-.3.3-.7.5-1 .8v45.5c.3.3.7.6 1 .8h3.7v.5l43.2-21.5c.1-.8 1.6-1.7 1.6-2.5s-2-1.6-2-2.4" fill="#ffe62e"/><path d="m13.5 8.4l48.5 23.4c0-1.6-.1-3.1-.4-4.6l-44.2-21.4c-1.4.8-2.7 1.6-3.9 2.6" fill="#fff"/><path d="M12.5,12H9.6C4.9,17.3,2,24.3,2,32s2.9,14.7,7.6,20h2.8l20-20L12.5,12z" fill="#ed4c5c"/><path d="m12.5 9.2c-1 .9-2 1.8-2.9 2.8l20 20-20 20c.9 1 1.8 1.9 2.9 2.8l22.8-22.8-22.8-22.8" fill="#3e4347"/><path d="m61.6 36.8c.2-1.5.4-3.1.4-4.6l-48.5 23.4c1.2 1 2.5 1.8 3.9 2.6l44.2-21.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ec.svg
new file mode 100644
index 0000000..2fb8014
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ec.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m39.4 26.5c-.5-2-1.6-3.4-3.4-4.2-1-.4-2.1-.6-3.3-.6-2.3 0-4.3.9-5.8 2.6-1.5 1.8-2.3 4.4-2.3 7.9 0 3.6.8 6.1 2.4 7.6 1.6 1.5 3.5 2.2 5.6 2.2 2 0 3.7-.6 5-1.8 1.3-1.2 2.1-2.7 2.4-4.6h-6.7v-4.8h12.1v15.6h-4l-.6-3.6c-1.2 1.4-2.2 2.3-3.2 2.9-1.6 1-3.6 1.5-5.9 1.5-3.8 0-7-1.3-9.4-4-2.6-2.7-3.8-6.3-3.8-11 0-4.7 1.3-8.5 3.9-11.3 2.6-2.8 6-4.2 10.3-4.2 3.7 0 6.7.9 8.9 2.8s3.5 4.2 3.8 7h-6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f0.svg
index 2e5059e..20f6508 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="31.873" cy="32" r="30"/><path fill="#fff" d="m29.916 27.792c.67-1.803 2.391-2.08 3.26-4.423.377-1.021-.314-2.981.063-3.999.857-2.312 3.234-1.9 3.234-1.9-4.111-1.466-8.66.613-10.158 4.644-1.494 4.02.615 8.468 4.715 9.945-1.141-1.293-1.702-2.684-1.114-4.267"/><circle fill="#ed4c5c" cx="30.26" cy="21.305" r=".938"/><path fill="#fff" d="m26.543 31.778c-1.543-1.183-1.279-2.871-3.285-4.408-.871-.669-2.988-.625-3.861-1.293-1.977-1.514-.844-3.602-.844-3.602-2.695 3.38-2.082 8.261 1.367 10.901 3.441 2.637 8.41 2.045 11.11-1.318-1.609.663-3.131.757-4.486-.28"/><circle fill="#ed4c5c" cx="20.771" cy="29.457" r=".937"/><path fill="#fff" d="m29.369 36.15c-1.625 1.076-3.182.306-5.291 1.701-.918.606-1.531 2.596-2.449 3.2-2.08 1.374-3.756-.328-3.756-.328 2.449 3.556 7.373 4.493 11 2.097 3.621-2.395 4.582-7.207 2.154-10.762.145 1.703-.236 3.151-1.66 4.092"/><path fill="#ed4c5c" d="m24.99 40.27c.301-.42.887-.511 1.311-.208.416.304.51.892.205 1.31-.305.419-.891.512-1.309.207s-.511-.891-.207-1.309"/><path fill="#fff" d="m34.488 34.869c.537 1.846-.686 3.061.014 5.456.307 1.046 2.045 2.231 2.35 3.273.691 2.363-1.477 3.402-1.477 3.402 4.205-1.186 6.639-5.485 5.43-9.609-1.201-4.116-5.578-6.499-9.775-5.332 1.697.392 2.984 1.191 3.458 2.81"/><path fill="#ed4c5c" d="m37.557 40.24c-.305-.418-.211-1 .207-1.31.416-.303 1-.211 1.311.206.303.422.209 1.01-.209 1.312-.423.305-1.01.212-1.309-.208"/><path fill="#fff" d="m34.826 29.703c1.955.068 2.756 1.588 5.301 1.672 1.107.039 2.795-1.217 3.9-1.177 2.502.086 2.842 2.429 2.842 2.429.152-4.289-3.271-7.883-7.645-8.04-4.365-.15-8.03 3.192-8.195 7.466.903-1.461 2.08-2.415 3.797-2.355"/><path fill="#ed4c5c" d="m41.39 28.522c-.49.161-1.02-.109-1.178-.601-.162-.493.105-1.021.602-1.183.49-.16 1.02.108 1.182.602.157.494-.11 1.023-.606 1.182"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="31.9" cy="32" r="30" fill="#ed4c5c"/><path d="m29.9 27.8c.7-1.8 2.4-2.1 3.3-4.4.4-1-.3-3 .1-4 .9-2.3 3.2-1.9 3.2-1.9-4.1-1.5-8.7.6-10.2 4.6-1.5 4 .6 8.5 4.7 9.9-1.1-1.2-1.7-2.6-1.1-4.2" fill="#fff"/><circle cx="30.3" cy="21.3" r=".9" fill="#ed4c5c"/><path d="m26.5 31.8c-1.5-1.2-1.3-2.9-3.3-4.4-.9-.7-3-.6-3.9-1.3-2-1.5-.8-3.6-.8-3.6-2.7 3.4-2.1 8.3 1.4 10.9 3.4 2.6 8.4 2 11.1-1.3-1.6.6-3.1.7-4.5-.3" fill="#fff"/><circle cx="20.8" cy="29.5" r=".9" fill="#ed4c5c"/><path d="m29.4 36.2c-1.6 1.1-3.2.3-5.3 1.7-.9.6-1.5 2.6-2.4 3.2-2.1 1.4-3.8-.3-3.8-.3 2.4 3.6 7.4 4.5 11 2.1 3.6-2.4 4.6-7.2 2.2-10.8.1 1.7-.3 3.1-1.7 4.1" fill="#fff"/><path d="m25 40.3c.3-.4.9-.5 1.3-.2.4.3.5.9.2 1.3-.3.4-.9.5-1.3.2s-.5-.9-.2-1.3" fill="#ed4c5c"/><path d="m34.5 34.9c.5 1.8-.7 3.1 0 5.5.3 1 2 2.2 2.3 3.3.7 2.4-1.5 3.4-1.5 3.4 4.2-1.2 6.6-5.5 5.4-9.6-1.2-4.1-5.6-6.5-9.8-5.3 1.8.3 3.1 1 3.6 2.7" fill="#fff"/><path d="m37.6 40.2c-.3-.4-.2-1 .2-1.3.4-.3 1-.2 1.3.2.3.4.2 1-.2 1.3-.5.4-1 .3-1.3-.2" fill="#ed4c5c"/><path d="m34.8 29.7c2 .1 2.8 1.6 5.3 1.7 1.1 0 2.8-1.2 3.9-1.2 2.5.1 2.8 2.4 2.8 2.4.2-4.3-3.3-7.9-7.6-8-4.4-.1-8 3.2-8.2 7.5.9-1.5 2.1-2.5 3.8-2.4" fill="#fff"/><path d="m41.4 28.5c-.5.2-1-.1-1.2-.6-.2-.5.1-1 .6-1.2.5-.2 1 .1 1.2.6.2.5-.1 1.1-.6 1.2" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f2.svg
index 1ade6c0..ee741bb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.912 8.139v5.861h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.012C3.088,22.869,2,27.305,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.307,2,22.869,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.939,7.941,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m34.541 33.848l-.002.007.002-.007"/><path d="m34.537 33.86l-.037.079.037-.079"/><path d="m34.539 33.854l-.002.006.002-.006"/></g><g fill="#fff"><path d="m15.295 35.637l1.105 4.373 4.112-1.86-2.733 3.59 4.02 2.053-4.513.105.903 4.422-2.895-3.463-2.895 3.463.903-4.422-4.513-.105 4.02-2.053-2.731-3.59 4.109 1.86z"/><path d="m48.2 18.691l.471 1.86 1.749-.792-1.16 1.527 1.706.874-1.916.04.38 1.88-1.23-1.47-1.229 1.47.379-1.88-1.91-.04 1.71-.874-1.167-1.527 1.748.792z"/><path d="m56.52 26.331l.467 1.859 1.747-.792-1.164 1.528 1.71.873-1.92.043.387 1.881-1.227-1.473-1.23 1.473.381-1.881-1.919-.043 1.708-.873-1.16-1.528 1.75.792z"/><path d="m38.846 28.826l.474 1.86 1.74-.792-1.158 1.526 1.709.87-1.919.05.388 1.88-1.234-1.476-1.23 1.476.384-1.88-1.92-.05 1.71-.87-1.161-1.526 1.751.792z"/><path d="m48.2 43.639l.471 1.859 1.749-.791-1.16 1.523 1.706.87-1.916.05.38 1.88-1.23-1.471-1.229 1.471.379-1.88-1.91-.05 1.71-.87-1.167-1.523 1.748.791z"/><path d="m51.943 33.992l.347 1.078h1.14l-.92.665.349 1.078-.916-.663-.913.663.35-1.078-.92-.665h1.134z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><g fill="#fff"><path d="m15.3 35.6l1.1 4.4 4.1-1.9-2.7 3.6 4 2.1-4.5.1.9 4.4-2.9-3.4-2.9 3.4.9-4.4-4.5-.1 4-2.1-2.7-3.6 4.1 1.9z"/><path d="m48.2 18.7l.5 1.9 1.7-.8-1.1 1.5 1.7.9h-2l.4 1.9-1.2-1.5-1.2 1.5.4-1.9h-2l1.7-.9-1.1-1.5 1.7.8z"/><path d="m56.5 26.3l.5 1.9 1.7-.8-1.1 1.5 1.7.9h-1.9l.3 1.9-1.2-1.5-1.2 1.5.4-1.9h-1.9l1.7-.9-1.2-1.5 1.7.8z"/><path d="m38.8 28.8l.5 1.9 1.8-.8-1.2 1.5 1.7.9h-1.9l.4 1.9-1.3-1.5-1.2 1.5.4-1.9h-1.9l1.7-.9-1.2-1.5 1.8.8z"/><path d="m48.2 43.6l.5 1.9 1.7-.8-1.1 1.5 1.7.9-2 .1.4 1.8-1.2-1.4-1.2 1.4.4-1.8-2-.1 1.7-.9-1.1-1.5 1.7.8z"/><path d="m51.9 34l.4 1.1h1.1l-.9.6.4 1.1-1-.7-.9.7.4-1.1-.9-.6h1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f3.svg
index 4d5f6d2..0b56c94 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/><path d="M32,2C18.939,2,7.834,10.349,3.715,22h56.572C56.168,10.349,45.062,2,32,2z"/></g><path fill="#f9f9f9" d="m60.29 42c1.106-3.129 1.713-6.492 1.713-10 0-3.508-.607-6.871-1.713-10h-56.57c-1.107 3.128-1.715 6.492-1.715 10 0 3.508.608 6.872 1.715 10h56.57"/><g fill="#42ade2"><path d="m32 33.592l1.854 1.408-.704-2.29 1.85-1.42-2.286-.01-.714-2.28-.71 2.28-2.29.01 1.847 1.42-.697 2.29z"/><path d="m22 28.592l1.854 1.408-.704-2.29 1.85-1.418-2.286-.012-.714-2.28-.713 2.28-2.287.012 1.847 1.418-.697 2.29z"/><path d="m42 28.592l1.854 1.408-.704-2.29 1.85-1.418-2.286-.012-.714-2.28-.71 2.28-2.29.012 1.847 1.418-.697 2.29z"/><path d="m22 38.592l1.854 1.408-.704-2.289 1.85-1.421-2.286-.01-.714-2.28-.713 2.28-2.287.01 1.847 1.421-.697 2.289z"/><path d="m42 38.592l1.854 1.408-.704-2.289 1.85-1.421-2.286-.01-.714-2.28-.71 2.28-2.29.01 1.847 1.421-.697 2.289z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z"/><path d="M32,2C18.9,2,7.8,10.3,3.7,22h56.6C56.2,10.3,45.1,2,32,2z"/></g><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#f9f9f9"/><g fill="#42ade2"><path d="m32 33.6l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m22 28.6l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m42 28.6l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m22 38.6l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m42 38.6l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f7.svg
index 5eb950e..938504a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#428bc1" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/><path fill="#fff" d="m42.883 25.17l2.642-5.989-2.01-3.25-3.334 1.234-2.342-2.676-3.085 1.768-2.75-2.253-2.751 2.253-3.085-1.768-2.341 2.676-3.335-1.235-2.01 3.251 2.638 5.99c3.325-1.505 7.01-2.343 10.887-2.343 3.874 0 7.559.838 10.882 2.342"/><path fill="#428bc1" d="m34.734 16.528l-.006.003-2.728-2.234-2.722 2.23.513 6.18c.729-.061 1.466-.092 2.209-.092.748 0 1.488.032 2.221.093l.513-6.18"/><path fill="#ed4c5c" d="m32 50c6.208 0 11.286-5.078 11.286-11.286v-13.411h-22.572v13.411c0 6.208 5.079 11.286 11.286 11.286"/><path fill="#fff" d="m32 49.82c6.089 0 11.07-4.982 11.07-11.07v-13.228h-22.14v13.228c0 6.09 4.983 11.07 11.07 11.07"/><g fill="#ed4c5c"><path d="m25.605 25.937h-4.26v4.681h4.26v-4.681"/><path d="m25.605 35.3h4.261v-4.68h-4.261v4.68"/><path d="m21.345 38.723c0 .425.026.844.075 1.257h4.185v-4.682h-4.26v3.425"/><path d="m34.13 35.3h-4.261v4.682h4.261v-4.682"/><path d="m34.13 44.66h4.261v-4.681h-4.261v4.681"/><path d="m38.39 47.22c.944-.713 1.768-1.579 2.433-2.561h-2.433v2.561"/><path d="m25.606 44.66h4.26v-4.681h-4.26v4.681"/><path d="m23.17 44.66c.665.982 1.49 1.85 2.437 2.563v-2.563h-2.437"/><path d="m32.738 49.34c.473-.032.936-.096 1.389-.188v-4.493h-4.261v4.492c.452.093.914.156 1.384.188.496.031.993.029 1.488.001"/><path d="m42.568 39.979c.05-.414.076-.835.076-1.261v-3.42h-4.258v4.681h4.182"/><path d="m34.13 35.3h4.261v-4.68h-4.261v4.68"/><path d="m34.13 25.937h-4.261v4.681h4.261v-4.681"/><path d="m42.645 30.618v-4.681h-4.257v4.681h4.257"/></g><path fill="#428bc1" d="m23.896 17.426l-.004.005-3.307-1.224-1.85 2.988.709 1.611 1.796 4.077c1.34-.593 2.738-1.079 4.183-1.447l-1.527-6.01"/><path fill="#fff" d="m23.707 20.38c.118.225.186.48.186.75 0 .891-.726 1.617-1.616 1.617-.785 0-1.441-.564-1.586-1.308.278.494.809.828 1.414.828.895 0 1.624-.729 1.624-1.625-.001-.089-.008-.176-.022-.262"/><path fill="#ffe62e" d="m22.23 18.14l-.01.03-.11.58.442.39.021.02-.027.01-.558.189-.114.58-.006.027-.02-.018-.446-.388-.559.19-.026.009.005-.026.113-.583-.445-.386-.02-.018.025-.009.555-.192.12-.58v-.027l.02.018.45.388.56-.194z"/><path fill="#2a5f9e" d="m29.28 16.526l-.005.005-3.06-1.753-2.317 2.648 1.526 6.01c1.415-.36 2.875-.606 4.368-.729l-.512-6.181"/><g fill="#ed4c5c"><path d="m25.04 21.944c1.497-.381 3.04-.642 4.621-.771l-.13-1.562c-1.667.137-3.297.412-4.876.814l.385 1.519"/><path d="m24.277 18.924c1.661-.423 3.375-.712 5.129-.857l-.127-1.533c-1.839.152-3.638.455-5.38.898l.378 1.492"/></g><g fill="#ffe62e"><path d="m31.995 19.307c-.164-.018-.514.745-.893.192 0 0 .327.436.287.577.026.013-.32-.097-.321-.053-.011 2.066 1.886 2.05 1.878-.004 0-.039-.338.067-.314.056-.039-.129.294-.595.283-.577-.375.548-.659-.148-.92-.191"/><path d="m33.24 16.388c-.164-.018-.514.745-.892.192 0 0 .326.436.286.577.026.013-.32-.097-.32-.053-.012 2.066 1.885 2.05 1.877-.004 0-.039-.339.067-.314.056-.037-.129.296-.595.284-.577-.376.549-.66-.147-.921-.191"/><path d="m30.749 16.388c-.164-.018-.514.745-.892.192 0 0 .326.436.286.577.026.013-.32-.097-.32-.053-.012 2.066 1.885 2.05 1.878-.004-.001-.039-.339.067-.314.056-.038-.129.295-.595.284-.577-.378.549-.662-.147-.922-.191"/></g><path fill="#2a5f9e" d="m40.12 17.429l-.006.002-2.322-2.653-3.053 1.75-.514 6.18c1.492.124 2.953.37 4.367.731l1.528-6.01"/><path fill="#ffe62e" d="m35.34 17.809c.109-.033.213-.023.313.032.182.076.174.002.349-.099.237-.139.785-.224 1.438.108.108.055.727.115.727.115s-.501.23-1.01-.027c.178.121.318.287.5.402.074.046.84.198.84.198s-.602.281-.963-.02c-.315-.263-.646-.594-1.113-.451.043.009.328.141.334.129-.063.124-.383.245-.473.128-.045.293.955 1.259 2.229 1.031.537-.208.223.159.102.369-.055.095-.518 2.348-1.561 1.81-.006.04.572-.229.624-.606-.005-.006-.183-.224-.181-.214-.377.009-.7 1.214-1.164.599-.025-.034.603-.28.542-.773-.068.042-.356.037-.447.001-.253.099-.187 1.158-.824.861.021.037.673-.965.299-1.018-.069.173-.265.418-.268.596.173.178-.456.226-.429.01.006-.056.49-.592.355-1.143-.179-.135.018-1.014.119-1.201-.602.014-.242-.198-.134-.555-.118-.08-.206-.13-.204-.282"/><path fill="#428bc1" d="m42.757 24.881l2.509-5.686-1.851-2.987-3.3 1.222-1.527 6.01c1.439.366 2.832.851 4.169 1.442"/><path fill="#fff" d="m39.559 19.622c1.652.422 3.253.979 4.787 1.658l-.967 2.194c-1.414-.625-2.889-1.138-4.412-1.526l.592-2.326"/><path fill="#ed4c5c" d="m43.533 23.12l.647-1.466c-1.515-.67-3.093-1.218-4.724-1.635l-.381 1.5c1.547.395 3.045.916 4.48 1.55l-.022.051"/><path fill="#ffe62e" d="m42.02 17.408l.006.026.111.585-.449.391-.02.019.025.009.563.194.114.585.006.026.021-.018.45-.391.563.193.027.009-.006-.027-.113-.584.449-.392.021-.018-.027-.01-.563-.194-.113-.584-.006-.027-.021.018-.449.391-.564-.194-.025-.007"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#428bc1"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><path d="m42.9 25.2l2.6-6-2-3.2-3.3 1.2-2.3-2.7-3.1 1.8-2.8-2.3-2.8 2.3-3.1-1.8-2.3 2.7-3.3-1.2-2 3.3 2.6 6c3.3-1.5 7-2.3 10.9-2.3 3.9-.2 7.6.7 10.9 2.2" fill="#fff"/><path d="m34.7 16.5l-2.7-2.2-2.7 2.2.5 6.2c.7-.1 1.5-.1 2.2-.1.7 0 1.5 0 2.2.1l.5-6.2" fill="#428bc1"/><path d="m32 50c6.2 0 11.3-5.1 11.3-11.3v-13.4h-22.6v13.4c0 6.2 5.1 11.3 11.3 11.3" fill="#ed4c5c"/><path d="m32 49.8c6.1 0 11.1-5 11.1-11.1v-13.2h-22.2v13.2c0 6.1 5 11.1 11.1 11.1" fill="#fff"/><g fill="#ed4c5c"><path d="m25.6 25.9h-4.3v4.7h4.3v-4.7"/><path d="m25.6 35.3h4.3v-4.7h-4.3v4.7"/><path d="m21.3 38.7c0 .4 0 .8.1 1.3h4.2v-4.7h-4.3v3.4"/><path d="m34.1 35.3h-4.3v4.7h4.3v-4.7"/><path d="m34.1 44.7h4.3v-4.7h-4.3v4.7"/><path d="m38.4 47.2c.9-.7 1.8-1.6 2.4-2.6h-2.4v2.6"/><path d="m25.6 44.7h4.3v-4.7h-4.3v4.7"/><path d="m23.2 44.7c.7 1 1.5 1.8 2.4 2.6v-2.6h-2.4"/><path d="m32.7 49.3c.5 0 .9-.1 1.4-.2v-4.5h-4.3v4.5c.5.1.9.2 1.4.2.5.1 1 .1 1.5 0"/><path d="m42.6 40c0-.4.1-.8.1-1.3v-3.4h-4.3v4.7h4.2"/><path d="m34.1 35.3h4.3v-4.7h-4.3v4.7"/><path d="m34.1 25.9h-4.3v4.7h4.3v-4.7"/><path d="m42.6 30.6v-4.7h-4.3v4.7h4.3"/></g><path d="m23.9 17.4l-3.3-1.2-1.9 3 .7 1.6 1.8 4.1c1.3-.6 2.7-1.1 4.2-1.4l-1.5-6.1" fill="#428bc1"/><path d="m23.7 20.4c.1.2.2.5.2.8 0 .9-.7 1.6-1.6 1.6-.8 0-1.4-.6-1.6-1.3.3.5.8.8 1.4.8.9 0 1.6-.7 1.6-1.6 0-.1 0-.2 0-.3" fill="#fff"/><path fill="#ffe62e" d="m22.2 18.1v.1l-.1.6.5.3v.1h-.1l-.5.2-.1.5v.1l-.1-.1-.4-.3-.6.2v-.1l.1-.5-.4-.4v-.1l.6-.2.1-.5v-.1.1l.4.3.6-.1z"/><path d="m29.3 16.5l-3.1-1.7-2.3 2.6 1.5 6c1.4-.4 2.9-.6 4.4-.7l-.5-6.2" fill="#2a5f9e"/><g fill="#ed4c5c"><path d="m25 21.9c1.5-.4 3-.6 4.6-.8l-.1-1.6c-1.7.1-3.3.4-4.9.8l.4 1.6"/><path d="m24.3 18.9c1.7-.4 3.4-.7 5.1-.9l-.1-1.5c-1.8.2-3.6.5-5.4.9l.4 1.5"/></g><g fill="#ffe62e"><path d="m32 19.3c-.2 0-.5.7-.9.2 0 0 .3.4.3.6 0 0-.3-.1-.3-.1 0 2.1 1.9 2 1.9 0 0 0-.3.1-.3.1 0-.1.3-.6.3-.6-.5.5-.7-.1-1-.2"/><path d="m33.2 16.4c-.2 0-.5.7-.9.2 0 0 .3.4.3.6 0 0-.3-.1-.3-.1 0 2.1 1.9 2 1.9 0 0 0-.3.1-.3.1 0-.1.3-.6.3-.6-.4.5-.7-.2-1-.2"/><path d="m30.7 16.4c-.2 0-.5.7-.9.2 0 0 .3.4.3.6 0 0-.3-.1-.3-.1 0 2.1 1.9 2 1.9 0 0 0-.3.1-.3.1 0-.1.3-.6.3-.6-.4.5-.7-.2-1-.2"/></g><path d="m40.1 17.4l-2.3-2.7-3.1 1.8-.5 6.2c1.5.1 3 .4 4.4.7l1.5-6" fill="#2a5f9e"/><path d="m35.3 17.8c.1 0 .2 0 .3 0 .2.1.2 0 .3-.1.2-.1.8-.2 1.4.1.1.1.7.1.7.1s-.5.2-1 0c.2.1.3.3.5.4.1 0 .8.2.8.2s-.6.3-1 0c-.3-.3-.6-.6-1.1-.5 0 0 .3.1.3.1-.1.1-.4.2-.5.1 0 .3 1 1.3 2.2 1 .5-.2.2.2.1.4-.1.1-.5 2.3-1.6 1.8 0 0 .6-.2.6-.6 0 0-.2-.2-.2-.2-.4 0-.7 1.2-1.2.6 0 0 .6-.3.5-.8-.1 0-.4 0-.4 0-.3.1-.2 1.2-.8.9 0 0 .7-1 .3-1-.1.2-.3.4-.3.6.2.2-.5.2-.4 0 0-.1.5-.6.4-1.1-.2-.1 0-1 .1-1.2-.6 0-.2-.2-.1-.6.2 0 .1 0 .1-.2" fill="#ffe62e"/><path d="m42.8 24.9l2.5-5.7-1.9-3-3.3 1.2-1.5 6c1.4.4 2.8.9 4.2 1.5" fill="#428bc1"/><path d="m39.6 19.6c1.7.4 3.3 1 4.8 1.7l-1 2.2c-1.4-.6-2.9-1.1-4.4-1.5l.6-2.4" fill="#fff"/><path d="m43.5 23.1l.6-1.5c-1.5-.7-3.1-1.2-4.7-1.6l-.4 1.5c1.6.4 3.1.9 4.5 1.6" fill="#ed4c5c"/><path d="m42 17.4l.1.6-.4.4.6.2.1.6.5-.4.6.2-.1-.6.4-.4-.6-.2-.1-.6-.4.4-.7-.2" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f9.svg
index c0c1a8d..6162c6a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f42f4c" d="M32.001,62C48.568,62,62,48.57,62,32.001H2C2,48.57,15.433,62,32.001,62z"/><path fill="#2a5f9e" d="m32 2c-16.568 0-30 13.432-30 30h60c0-16.569-13.432-30-29.999-30"/><path fill="#fff" d="m20 22v17.351c.271-.191 23.74-.012 24 .129v-17.48h-24"/><g fill="#699635"><path d="m32.373 37.37c.004 0 .01 0 .014-.002-.006 0-.009.002-.014.002"/><path d="m39.23 37.546l-14.496.008-4.736 1.797v2.65h24v-2.521l-4.768-1.934m-1.791 3.043c0 0-1.944.729-5.457.729-3.498 0-5.457-.729-5.457-.729v-.799c0 0 1.498.684 5.457.684 3.975 0 5.457-.684 5.457-.684v.799"/></g><g fill="#f42f4c"><path d="m31.529 35.397c-.023-.258-.049-.535-.072-.811l-1.979-2.199c-.636.105-.285.992-.123 1.379l2.174 1.631"/><path d="m28.68 33.63c-.635.195-.357 1.043-.164 1.5l2.601 1.49c.14-.07.319-.117.522-.145-.015-.135-.035-.334-.061-.582l-2.898-2.263"/><path d="m30.883 36.8l-2.611-1.455c-.223.092-.31.289-.307.545l1.24 1.793 1.6.496.078-1.379"/><path d="m34.611 33.765c.161-.387.512-1.271-.124-1.377l-2.04 2.268c-.023.271-.05.541-.075.791l2.239-1.682"/><path d="m35.45 35.13c.194-.457.47-1.305-.163-1.5l-2.967 2.316c-.025.223-.045.402-.06.527.231.029.429.088.577.17l2.613-1.513"/><path d="m36 35.89c.004-.256-.084-.453-.307-.543l-2.648 1.475.078 1.369 1.638-.508 1.239-1.793"/></g><path fill="#699635" d="m32.34 27.761c0 0 .005.131.017.35.18.481.422.932.758 1.191.234-.336.25-1.164.041-1.977.346.371.771.725 1.184.799.031-.277-.182-.758-.524-1.197.552.266 1.282.49 2.112.424-.205-.314-.659-.623-1.165-.877.932.246 1.842.488 1.885.506-.108-.861-.507-.896-1.239-1.248l1.752.023c-.444-.785-1.929-.828-3.115-.637.746-.236 1.665-.494 1.809-.521-.336-.249-1.658-1.064-3.381.291-.022.529-.246.951-.523.951-.287 0-.516-.442-.527-.992-1.699-1.297-2.997-.496-3.332-.25.146.027 1.065.285 1.811.521-1.186-.191-2.671-.148-3.115.637l1.752-.023c-.731.352-1.131.387-1.238 1.248.043-.018.953-.26 1.885-.506-.508.254-.961.563-1.166.877.83.066 1.561-.158 2.113-.424-.343.439-.557.92-.525 1.197.412-.074.838-.428 1.185-.799-.21.813-.194 1.641.04 1.977.258-.199.462-.51.625-.861.012-.41.02-.68.02-.68h.861"/><path fill="#fff" d="m26.527 39.79v.799c0 0 1.959.729 5.457.729 3.513 0 5.457-.729 5.457-.729v-.799c0 0-1.482.684-5.457.684-3.959 0-5.457-.684-5.457-.684"/><g fill="#2a5f9e"><path d="m29.479 32.388l-2.412-2.679c-.664.591-.693 1.5-.678 1.83l2.967 2.228c-.163-.387-.513-1.274.123-1.379"/><path d="m28.68 33.63l-3.6-2.811c-.47.6-.17 2.066-.082 2.438l3.518 1.873c-.194-.457-.471-1.305.164-1.5"/><path d="m23.928 34.29c.008.346-.107.568.117 1.197l3.92.398c-.003-.256.084-.453.307-.545l-4.494-2.5c-.271.567.008 1.327.15 1.45"/><path d="m37.576 31.538c.016-.33-.014-1.239-.677-1.829l-2.412 2.679c.636.105.285.99.124 1.377l2.965-2.227"/><path d="m38.967 33.26c.088-.373.389-1.838-.082-2.438l-3.598 2.811c.633.195.357 1.043.163 1.5l3.517-1.873"/><path d="m40.19 32.845l-4.496 2.502c.223.09.311.287.307.543l3.92-.398c.225-.629.109-.852.117-1.197.143-.124.422-.884.152-1.45"/><path d="m31.943 25.839c.277 0 .501-.422.523-.951.001-.027.008-.051.008-.08 0-.568-.238-1.029-.531-1.029-.295 0-.531.461-.531 1.029 0 .014.004.025.004.039.012.549.24.992.527.992"/></g><g fill="#ffe62e"><path d="m40.35 36.29l-.139-.828-1.744.176c-.245-.129-.521-.208-.818-.208-.426 0-.811.155-1.117.405l-2.025.207.166.82.605-.061-.515.881-1.638.508v-1.172h-2.318v1.16l-1.6-.496-.465-.792-.051-.088.605.061.166-.82-1.982-.203c-.307-.252-.695-.409-1.123-.409-.301 0-.578.081-.826.212l-1.772-.18-.139.828 1.155.116c-.123.243-.199.514-.199.805 0 .983.797 1.781 1.781 1.781.83 0 1.52-.569 1.719-1.337l.26.41 2.471.742c0 .211.52.381 1.158.381.641 0 1.16-.17 1.16-.381l2.508-.742.295-.416c.197.771.891 1.343 1.721 1.343.984 0 1.781-.798 1.781-1.781 0-.292-.078-.564-.203-.808l1.123-.114"/><path d="m24.613 30.485l.047.037c-.069.092-.128.182-.179.271l.425.205.159-.191 6.483 5.142.088.525h.654l.059-.525 6.551-5.142.159.191.425-.205c-.051-.09-.109-.18-.18-.271l.048-.037.317-.004.57-.842-1.01.422-.03.225-.058.047c-.064-.064-.136-.131-.223-.199l-.316.318.162.193-6.357 4.723.06-.688 4.57-5.124.191.16.38-.271c-.064-.08-.139-.16-.225-.238l.039-.045.313-.057.41-.924-.918.584.009.227-.047.057c-.076-.055-.158-.107-.255-.16l-.255.367.195.164-2.751 2.943.531-1.141-.276-.059-1.266 2.283 1.023-2.75-.406-.025-1.079 3.049.701-2.906-.354-.008-.461 1.941c-.025-1.049-.202-4.986-.202-4.986h-.866c0 0-.102 3.625-.113 4.68l-.389-1.635-.354.008.701 2.902-1.082-3.045-.405.025 1.022 2.75-1.266-2.283-.275.059.531 1.143-2.75-2.945.193-.164-.254-.367c-.098.053-.18.105-.254.16l-.049-.057.01-.227-.918-.584.41.924.313.057.039.045c-.086.078-.158.158-.225.238l.381.271.191-.16 4.502 5.124.06.688-6.29-4.723.162-.193-.316-.318c-.086.068-.158.135-.222.199l-.058-.047-.031-.225-1.01-.422.57.842.321.004"/><path d="m23.637 33.05l.125-.213 7.121 3.963.552-.156-7.565-3.986.127-.217-.362-.268c-.075.08-.134.158-.187.232l-.065-.039-.066-.217-1.065-.264.699.744.314-.045.053.031c-.055.102-.097.199-.133.295l.452.14"/><path d="m41.02 32.63l.699-.744-1.064.264-.066.217-.065.039c-.053-.074-.112-.152-.187-.232l-.363.268.127.217-7.524 3.963.474.201 2.648-1.475 4.51-2.51.127.213.451-.139c-.035-.096-.078-.193-.133-.295l.053-.031.313.044"/></g><ellipse fill="#2a5f9e" cx="32" cy="36.974" rx="1.25" ry=".572"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#f42f4c"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#2a5f9e"/><path d="m20 22v17.4c.3-.2 23.7 0 24 .1v-17.5h-24" fill="#fff"/><g fill="#699635"><path d="m32.4 37.4c0 0 0 0 0 0"/><path d="m39.2 37.5h-14.5l-4.7 1.9v2.6h24v-2.5l-4.8-2m-1.8 3.1c0 0-1.9.7-5.5.7-3.5 0-5.5-.7-5.5-.7v-.8c0 0 1.5.7 5.5.7 4 0 5.5-.7 5.5-.7v.8"/></g><g fill="#f42f4c"><path d="m31.5 35.4c0-.3 0-.5-.1-.8l-2-2.2c-.6.1-.3 1-.1 1.4l2.2 1.6"/><path d="m28.7 33.6c-.6.2-.4 1-.2 1.5l2.6 1.5c.1-.1.3-.1.5-.1 0-.1 0-.3-.1-.6l-2.8-2.3"/><path d="m30.9 36.8l-2.6-1.5c-.3.1-.3.3-.3.6l1.2 1.8 1.6.5.1-1.4"/><path d="m34.6 33.8c.2-.4.5-1.3-.1-1.4l-2 2.3c0 .3 0 .5-.1.8l2.2-1.7"/><path d="m35.5 35.1c.2-.5.5-1.3-.2-1.5l-3 2.3c0 .2 0 .4-.1.5.2 0 .4.1.6.2l2.7-1.5"/><path d="m36 35.9c0-.3-.1-.5-.3-.5l-2.7 1.4.1 1.4 1.6-.5 1.3-1.8"/></g><path d="m32.3 27.8c0 0 0 .1 0 .4.2.5.4.9.8 1.2.2-.3.2-1.2 0-2 .3.4.8.7 1.2.8 0-.3-.2-.8-.5-1.2.6.3 1.3.5 2.1.4-.2-.3-.7-.6-1.2-.9.9.2 1.8.5 1.9.5-.1-.9-.5-.9-1.2-1.2h1.8c-.4-.8-1.9-.8-3.1-.6.7-.2 1.7-.5 1.8-.5-.3-.2-1.7-1.1-3.4.3 0 .5-.2 1-.5 1-.3 0-.5-.4-.5-1-1.7-1.3-3-.5-3.3-.2.1 0 1.1.3 1.8.5-1.2-.2-2.7-.1-3.1.6h1.8c-.7.4-1.1.4-1.2 1.2 0 0 1-.3 1.9-.5-.5.3-1 .6-1.2.9.8.1 1.6-.2 2.1-.4-.3.4-.6.9-.5 1.2.4-.1.8-.4 1.2-.8-.2.8-.2 1.6 0 2 .3-.2.5-.5.6-.9 0-.4 0-.7 0-.7h.7z" fill="#699635"/><path d="m26.5 39.8v.8c0 0 2 .7 5.5.7 3.5 0 5.5-.7 5.5-.7v-.8c0 0-1.5.7-5.5.7-4 0-5.5-.7-5.5-.7" fill="#fff"/><g fill="#2a5f9e"><path d="m29.5 32.4l-2.4-2.7c-.7.6-.7 1.5-.7 1.8l3 2.2c-.2-.3-.6-1.2.1-1.3"/><path d="m28.7 33.6l-3.6-2.8c-.5.6-.2 2.1-.1 2.4l3.5 1.9c-.2-.4-.5-1.3.2-1.5"/><path d="m23.9 34.3c0 .3-.1.6.1 1.2l3.9.4c0-.3.1-.5.3-.5l-4.5-2.5c-.2.5.1 1.3.2 1.4"/><path d="m37.6 31.5c0-.3 0-1.2-.7-1.8l-2.4 2.7c.6.1.3 1 .1 1.4l3-2.3"/><path d="m39 33.3c.1-.4.4-1.8-.1-2.4l-3.6 2.8c.6.2.4 1 .2 1.5l3.5-1.9"/><path d="m40.2 32.8l-4.5 2.5c.2.1.3.3.3.5l3.9-.4c.2-.6.1-.9.1-1.2.2 0 .5-.8.2-1.4"/><path d="m31.9 25.8c.3 0 .5-.4.5-1 0 0 0-.1 0-.1 0-.6-.2-1-.5-1-.3 0-.5.5-.5 1 0 .7.3 1.1.5 1.1"/></g><g fill="#ffe62e"><path d="m40.3 36.3l-.1-.8-1.7.2c-.2-.1-.5-.2-.8-.2-.4 0-.8.2-1.1.4l-2 .2.2.8.6-.1-.5.9-1.6.5v-1.2h-2.3v1.2l-1.6-.5-.5-.8-.1-.1.6.1.2-.8-2-.2c-.3-.3-.7-.4-1.1-.4-.3 0-.6.1-.8.2l-1.8-.2-.1.8 1.2.1c-.1.2-.2.5-.2.8 0 1 .8 1.8 1.8 1.8.8 0 1.5-.6 1.7-1.3l.3.4 2.5.7c0 .2.5.4 1.2.4.6 0 1.2-.2 1.2-.4l2.5-.7.3-.4c.2.8.9 1.3 1.7 1.3 1 0 1.8-.8 1.8-1.8 0-.3-.1-.6-.2-.8l.7-.1"/><path d="m24.6 30.5c0 .1-.1.2-.1.3l.4.2.2-.2 6.5 5.1.1.5h.7l.1-.5 6.6-5.1.2.2.4-.2c-.1-.1-.1-.2-.2-.3h.3l.6-.8-1 .4v.2h-.1c-.1-.1-.1-.1-.2-.2l-.3.3.2.2-6.4 4.7.1-.7 4.6-5.1.2.2.4-.3c-.1-.1-.1-.2-.2-.2l.3-.1.4-.9-.9.6v.2.1c-.1-.1-.2-.1-.3-.2l-.3.4.2.2-2.8 2.9.5-1.1-.3-.1-1.3 2.3 1-2.8h-.4l-1.1 3 .7-2.9h-.4l-.5 1.9c0-1-.2-5-.2-5h-.9c0 0-.1 3.6-.1 4.7l-.3-1.6h-.4l.7 2.9-1.1-3h-.4l1 2.8-1.3-2.3-.3.1.5 1.1-2.8-2.9.2-.2-.1-.4c-.1.1-.2.1-.3.2v-.1-.2l-.9-.6.4.9.3.1c-.1.1-.2.2-.2.2l.4.3.2-.2 4.5 5.1.1.7-6.3-4.7.2-.2-.4-.3c-.1.1-.2.1-.2.2h-.1v-.2l-1-.4.6.8h.3"/><path d="m23.6 33l.1-.2 7.1 4 .6-.2-7.6-4 .1-.2-.4-.3c-.1.1-.1.2-.2.2h-.1l-.1-.2-1.1-.3.7.7h.3.1c-.1.1-.1.2-.1.3l.6.2"/><path d="m41 32.6l.7-.7-1.1.3-.1.2h-.1c-.1-.1-.1-.2-.2-.2l-.2.2.1.2-7.5 4 .5.2 2.6-1.5 4.5-2.5.1.2.5-.1c0-.1-.1-.2-.1-.3h.1.2"/></g><ellipse cx="32" cy="37" rx="1.2" ry=".6" fill="#2a5f9e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1fa.svg
index a3d0a13..48b8ace 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed-1f1fa.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C18.938,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.062,2,32,2z"/><path fill="#83bf4f" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.608,25.129,2,28.492,2,32s0.608,6.871,1.714,10h56.572C61.392,38.871,62,35.508,62,32
- s-0.608-6.871-1.714-10H3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#83bf4f"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ed.svg
new file mode 100644
index 0000000..6add3c7
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ed.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M20.3,46.5v-29h6v11.1h11.3V17.5h6v29h-6v-13H26.4v13H20.3z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e8.svg
index ab09eac..540234e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e8.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,11.51,6.486,21.502,16,26.531V5.467C8.486,10.498,2,20.488,2,32z"/><path fill="#ffce31" d="m62 32c0-11.512-6.486-21.502-16-26.533v53.06c9.514-5.03 16-15.02 16-26.531"/><path fill="#2a5f9e" d="M32,2c-5.058,0-9.819,1.256-14,3.467v53.064C22.181,60.742,26.942,62,32,62s9.819-1.258,14-3.469V5.467
- C41.819,3.256,37.058,2,32,2z"/><path fill="#fff" d="m23.886 38.805c-.003-.034.03-.121 0 0m20.394-.737c.69-.738.6-2.063-.354-2.482-.194-.084-.537.172-.605.35-.186.48.528.869.123 1.303-.404.434-.495-.297-.603-.533-.245-.533-.643-.83-1.073-1.201-.857-.738-1.332-1.855-1.324-2.982.01-1.426.318-3.484-1.481-3.977-.539-.154-.965-.014-1.482-.105-.786-.285-.989.398-.901 1.092-.824-.23-.874.785-1.572.58.185-.363.351-.766.581-1.104.223.111.603-.096.603-.342 0-.363.461-.734.461-1.131 0-.361-.087-1.023-.485-1.189-.151-.705-1.271-.82-1.846-.859-.373-.027-.3.166-.599-.129-.195-.193-.776-.229-1.027-.213.15-1.078-1.521-1.076-1.37-.002-.175-.016-.701.023-.856.094-.416.189-.249.398-.691.244-.207.018-.434-.037-.573.129-.334-.121-1.128.225-1.287.553-.113.234-.325.299-.418.551-.083.229-.009.383-.09.594-.104.285.207 1.078.439 1.266-.115.346.229.422.489.438.257.018.569.9.673 1.102-.346 0-.412.074-.593-.209-.229-.361-.601-.475-.996-.371.113-.846-.207-1.344-1.03-1.045-.354.129-.37-.041-.728-.063-.329-.021-.829.168-1.098.328-1.564.932-.829 2.947-1.058 4.42-.093.598-.322 1.176-.674 1.67-.394.553-1 .863-1.402 1.402-.123.166-.428 1.121-.59 1.121-.681 0-.27-.713-.163-.99.359-.93-.914-.92-1.248-.207-.573 1.223.512 2.756 1.887 2.305.022.297-.038.617-.354.742-.378.148-.209.859-.129 1.121.191.627.618 1.93 1.398 1.93.701 0 1.758-.086.945-1.07-.333-.404-1.041-.402-.768-1.119.197-.516.896-.629 1.139-1.186.346-.791.331.227.216.188-.054.236.487.6.616.801.54.838.754.967 1.736.967.497 0 .418-.543.271-.852-.206-.438-1.057-.572-1.057-1.02 0-.445.424-.645.292-1.152-.127-.488-.518-.832-.939-1.092.505-.512 1.199-.74 1.69-1.25.408-.424.551-.957.965-1.371 0 .783 0 1.564 0 2.348 0 .779-.141 1.764.192 2.494.701 1.539 2.952 1.908 4.463 1.908 1.512 0 3.763-.369 4.463-1.908.313-.686.192-1.576.192-2.309 0-.848 0-1.695 0-2.543.327 0 .631.955.786 1.158.493.648 1.31.895 1.879 1.471-.605.371-1.418 1.258-.751 1.965.46.52-.388.686-.638.891-.243.201-.802 1.26-.103 1.26.677.287 1.368-.193 1.657-.73.123-.229.767-.754.767-.971 0-.264-.308-.432.111-.527.17.709 2.09 1.695.865 2.266-.349.162-.966.891-.569 1.287.199.199.739.096.979.096.922 0 1.075-.926 1.413-1.627.141-.293.383-1 .138-1.316-.262-.338-.523-.344-.504-.852.565.184 1.194.026 1.6-.406m-19.478-13.574c.153.336.435.588.75.771-.161.174-1.143.717-.304.906.426.096.888.082 1.319.039.475-.045 3.793-.977 3.12-1.818 1.53-.195 3.048-.195 4.578.002-.419 1.049 2.453 1.752 3.121 1.816.432.043.894.057 1.319-.039.839-.189-.142-.732-.305-.906.203-.119 1.423-1.318.579-1.428-.25-.033-.515.133-.78.113-.353-.025-.716-.113-1.033-.27-.69-.34-.472-1.217-1.249-1.543-.915-.383-2.199-.357-3.178-.393-1.12-.041-2.246.01-3.358.148-.827.105-1.873.16-2.1 1.146-.153.67-.892.863-1.529.91-.356.031-1.458-.253-.95.546"/><path fill="#4c86c7" d="m27.671 30.441h8.648v7.584c0 2.504-4.324 2.504-4.324 2.504s-4.324 0-4.324-2.504v-7.584"/><g fill="#fff"><path d="m31.405 32.783l-1.01-1.121c-.179-.197-.463-.197-.64 0l-1.012 1.123h2.662v-.002z"/><path d="m31.405 35.02l-1.01-1.121c-.179-.199-.463-.199-.64 0l-1.012 1.121h2.663"/><path d="m31.405 37.3l-1.01-1.121c-.179-.197-.463-.197-.64 0l-1.012 1.121h2.663"/><path d="m33.32 39.549l-1.01-1.119c-.179-.201-.464-.201-.64-.002l-1.013 1.121h2.664"/><path d="m35.25 32.783l-1.01-1.121c-.179-.197-.463-.197-.64 0l-1.013 1.123h2.663v-.002z"/><path d="m35.25 35.02l-1.01-1.121c-.179-.199-.463-.199-.64 0l-1.013 1.121h2.664"/><path d="m35.25 37.3l-1.01-1.121c-.179-.197-.463-.197-.64 0l-1.013 1.121h2.664"/></g><path fill="#a5a7a9" d="m38.852 24.354l.069-.184c-.174.076-.366.113-.569.117-.408.008-1.627-.186-1.964-.869l-.024.016.016-.105c0-.463-.33-.852-.767-.938l-.009-.002c-1.168-.213-2.371-.326-3.602-.326h-.052c-1.228 0-2.432.113-3.6.326l-.009.002c-.438.086-.769.475-.769.938l.016.104-.022-.014c-.337.684-1.556.877-1.965.869-.202-.004-.396-.041-.568-.117l.068.184c.172.383.505.676.909.793-.131.414-.429.559-.75.688.352.111 2.637.297 4.128-1.219l.04-.01-.01-.016.004-.002-.009-.006-.226-.387-.028-.066c.911-.139 1.839-.227 2.79-.227h.052c.954 0 1.887.088 2.801.229l-.037.064h-.002l-.225.387-.008.006.004.002-.01.016.04.01c1.49 1.516 3.774 1.33 4.127 1.219-.319-.129-.619-.273-.75-.688.407-.119.739-.412.911-.794"/><g fill="#c09b5a"><path d="m26.71 32.898c.343-.379.357-1.068.467-1.545.158-.693.438-.922 1.067-.922 0-.939-.932-.582-1.253-.086-.318.492-.637.984-.955 1.479-.013-.311-.029-.623-.029-.934.391-.357.96-.621 1.066-1.189.042-.236.186-.807-.039-.99-.138-.113-.507.072-.637.119-.374.135-.355-.078-.734-.078-2.074 0-1.786 2.387-1.777 3.771.007 1.15-.447 2.287-1.279 3.086-.328.316-.714.537-.973.924-.212.318-.284 1.164-.792 1.164-.578 0-.895-.658-.666-1.146.341-.725-.224-.84-.486-.145-.441 1.164.922 2.434 1.952 1.516-.056.523.162 1.066-.326 1.463-.415.34-.239.887.066 1.336.169.348.308 1.215.799 1.215.254.082.66 0 .93 0 0-.439-.341-.85-.797-.85-.331-.275-.352-.852-.174-1.215.064-.131 1.649-1.572 1.282-1.645.243.047.654.074.759.352.103.271-.045.289-.083.52.201.1.356.305.482.484.207.295.354.934.8.934.222.068.562 0 .796 0 0-.904-1.508-.818-1.124-1.814.132-.342.457-.527.224-.949-.154-.42-.685-.785-1.08-.938.791-.877 2.162-1.33 2.498-2.535.983-.762.967-1.166.966-2.309-.285 0-.414.254-.428.492-.021.373-.16.609-.488.813-.018-.126-.029-.251-.034-.378"/><path d="m44.04 35.967c-.118-.102-.236-.102-.354 0-.2.215.056.406.14.584.229.488-.088 1.146-.666 1.146-.396 0-.444-.396-.546-.678-.164-.451-.45-.754-.803-1.063-1.521-1.102-1.699-2.766-1.688-4.488.004-.639.081-1.309-.279-1.877-.221-.35-.565-.617-.966-.727-.173-.047-.357-.113-.539-.113-.21 0-.351.227-.534.154-.196-.08-.796-.41-.903-.086-.105.314-.031.846.11 1.141.197.408.66.635.983.93 0 .311-.017.623-.029.934-.29-.449-.579-.898-.869-1.346-.081-.125-.159-.307-.267-.41-.339-.512-1.072-.199-1.072.363.631 0 .91.227 1.068.922.126.551.517 1.389.433 1.922-.329-.203-.468-.438-.488-.813-.014-.238-.142-.492-.428-.492-.001 1.143-.018 1.547.966 2.309.336 1.205 1.707 1.658 2.498 2.535-.451.176-.83.512-1.075.928-.183.479.069.572.219.959.384.996-1.124.91-1.124 1.814.826 0 1.015.018 1.455-.717.127-.211.273-.424.46-.588.285-.25.044-.096.044-.396 0-.473.422-.516.795-.588.063-.012.181.58.26.703.229.359.638.426.895.74.33.406.315 1.029-.039 1.416-.349.297-.804.176-.804.85.27 0 .675.082.929 0 .491 0 .633-.867.802-1.215.304-.449.48-.996.065-1.336-.492-.4-.265-.938-.327-1.463 1.223 1.095 2.719-.841 1.678-1.954"/></g><path fill="#ed4c5c" d="m32.01 26.775c1.034 0 3.118.26 3.88 1.045-.802 2.131-2.117 1.256-3.862 1.256-1.751 0-3.065.877-3.87-1.256.758-.779 2.824-1.045 3.852-1.045"/><g fill="#c8b100"><path d="m34.698 29.14c-.671-.41-1.613-.498-2.654-.502-1.04.004-1.975.092-2.646.502l.241 1c.607.201 1.458.324 2.408.326.949-.002 1.8-.125 2.407-.326l.244-1"/><path d="m35.6 26.637c-.205-.195-.623-.326-1.045-.326-.167 0-.327.02-.475.057.021.027-.298-.49-1.056-.49-.267 0-.512.072-.7.191l-.005-.035c-.027-.131-.145-.23-.281-.23s-.259.1-.287.23l-.004.035c-.188-.121-.433-.191-.699-.191-.741 0-1.076.516-1.055.49-.148-.037-.309-.057-.476-.057-2.491 0-1.216 1.838-1.216 1.838l.204-.365c-.576-.828-.076-1.33 1.012-1.33.137 0 .269.014.391.039-.372.607.323 1.117.323 1.117l.161-.289c-.392-.273-.423-1.303.655-1.303.269 0 .511.078.682.207-.005.064-.057.861-.112 1.021l.421.438.415-.438c-.055-.16-.105-.955-.111-1.02.171-.131.413-.209.683-.209 1.108 0 1.146 1.021.655 1.303l.161.289c0 0 .588-.514.323-1.117.122-.025.254-.041.391-.039 1.288.02 1.375 1.051 1.012 1.33l.204.365c0 0 .559-.814-.171-1.511"/></g><path fill="#005bbf" d="m31.695 25.465c0-.197.154-.355.344-.355s.343.158.343.355-.153.357-.343.357-.344-.16-.344-.357"/><path fill="#c8b100" d="m31.949 24.467v.191h-.187v.196h.187v.266.296h-.236l-.018.051.028.138.002.002h.629v-.002l.028-.138-.017-.051h-.226v-.296-.266h.19v-.196h-.19v-.191z"/><path fill="#ed4c5c" d="m32.04 30.33c-.856 0-1.632-.109-2.222-.275.59-.168 1.365-.27 2.222-.271.857.002 1.637.104 2.227.271-.59.166-1.37.275-2.227.275"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 32c0 11.5 6.5 21.5 16 26.5v-53c-9.5 5-16 15-16 26.5" fill="#f9f9f9"/><path d="m62 32c0-11.5-6.5-21.5-16-26.5v53.1c9.5-5.1 16-15.1 16-26.6" fill="#ffce31"/><path d="M32,2c-5.1,0-9.8,1.3-14,3.5v53.1c4.2,2.2,8.9,3.5,14,3.5s9.8-1.3,14-3.5V5.5C41.8,3.3,37.1,2,32,2z" fill="#2a5f9e"/><path d="m23.9 38.8c0 0 0-.1 0 0m20.4-.7c.7-.7.6-2.1-.4-2.5-.2-.1-.5.2-.6.3-.2.5.5.9.1 1.3-.4.4-.5-.3-.6-.5-.2-.5-.6-.8-1.1-1.2-.9-.7-1.3-1.9-1.3-3 0-1.4.3-3.5-1.5-4-.5-.2-1 0-1.5-.1-.8-.3-1 .4-.9 1.1-.8-.2-.9.8-1.6.6.2-.4.4-.8.6-1.1.2.1.6-.1.6-.3 0-.4.5-.7.5-1.1 0-.4-.1-1-.5-1.2-.2-.7-1.3-.8-1.8-.9-.4 0-.3.2-.6-.1-.2-.2-.8-.2-1-.2.2-1.1-1.5-1.1-1.4 0-.2 0-.7 0-.9.1-.4.2-.2.4-.7.2-.2 0-.4 0-.6.1-.3-.1-1.1.2-1.3.6-.1.2-.3.3-.4.6-.1.2 0 .4-.1.6-.1.3.2 1.1.4 1.3-.1.3.2.4.5.4.3 0 .6.9.7 1.1-.3 0-.4.1-.6-.2-.2-.4-.6-.5-1-.4.1-.8-.2-1.3-1-1-.4.1-.4 0-.7-.1-.3 0-.8.2-1.1.3-1.6.9-.8 2.9-1.1 4.4-.1.6-.3 1.2-.7 1.7-.4.6-1 .9-1.4 1.4-.1.2-.4 1.1-.6 1.1-.7 0-.3-.7-.2-1 .4-.9-.9-.9-1.2-.2-.6 1.2.5 2.8 1.9 2.3 0 .3 0 .6-.4.7-.4.1-.2.9-.1 1.1.2.6.6 1.9 1.4 1.9.7 0 1.8-.1.9-1.1-.3-.4-1-.4-.8-1.1.2-.5.9-.6 1.1-1.2.3-.8.3.2.2.2-.1.2.5.6.6.8.5.8.8 1 1.7 1 .5 0 .4-.5.3-.9-.2-.4-1.1-.6-1.1-1 0-.4.4-.6.3-1.2-.1-.5-.5-.8-.9-1.1.5-.5 1.2-.7 1.7-1.2.4-.4.6-1 1-1.4 0 .8 0 1.6 0 2.3 0 .8-.1 1.8.2 2.5.7 1.5 3 1.9 4.5 1.9 1.5 0 3.8-.4 4.5-1.9.3-.7.2-1.6.2-2.3 0-.8 0-1.7 0-2.5.3 0 .6 1 .8 1.2.5.6 1.3.9 1.9 1.5-.6.4-1.4 1.3-.8 2 .5.5-.4.7-.6.9-.2.2-.8 1.3-.1 1.3.7.3 1.4-.2 1.7-.7.1-.2.8-.8.8-1 0-.3-.3-.4.1-.5.2.7 2.1 1.7.9 2.3-.3.2-1 .9-.6 1.3.2.2.7.1 1 .1.9 0 1.1-.9 1.4-1.6.1-.3.4-1 .1-1.3-.3-.3-.5-.3-.5-.9.6.1 1.3-.1 1.7-.5m-19.5-13.6c.2.3.4.6.8.8-.2.2-1.1.7-.3.9.4.1.9.1 1.3 0 .5 0 3.8-1 3.1-1.8 1.5-.2 3-.2 4.6 0-.4 1 2.5 1.8 3.1 1.8.4 0 .9.1 1.3 0 .8-.2-.1-.7-.3-.9.2-.1 1.4-1.3.6-1.4-.2 0-.5.1-.8.1-.4 0-.7-.1-1-.3-.7-.3-.5-1.2-1.2-1.5-.9-.4-2.2-.4-3.2-.4-1.1 0-2.2 0-3.4.1-.8.1-1.9.2-2.1 1.1-.2.7-.9.9-1.5.9-.4.1-1.5-.2-1 .6" fill="#fff"/><path d="m27.7 30.4h8.6v7.6c0 2.5-4.3 2.5-4.3 2.5s-4.3 0-4.3-2.5c0 0 0-7.6 0-7.6" fill="#4c86c7"/><g fill="#fff"><path d="m31.4 32.8l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/><path d="m31.4 35l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/><path d="m31.4 37.3l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/><path d="m33.3 39.5l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/><path d="m35.2 32.8l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/><path d="m35.2 35l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/><path d="m35.2 37.3l-1-1.1c-.2-.2-.5-.2-.6 0l-1 1.1h2.6"/></g><path d="m38.9 24.4l.1-.2c-.2.1-.4.1-.6.1-.4 0-1.6-.2-2-.9v-.1c0-.5-.3-.9-.8-.9-1.2-.2-2.4-.3-3.6-.3-1.2 0-2.4.1-3.6.3-.4.1-.8.5-.8.9v.1c-.3.7-1.6.9-2 .9-.2 0-.4 0-.6-.1l.1.2c.2.4.5.7.9.8-.1.4-.4.6-.8.7.4.1 2.6.3 4.1-1.2l-.2-.4v-.1c.9-.1 1.8-.2 2.8-.2h.1c1 0 1.9.1 2.8.2v.1l-.2.4c1.5 1.5 3.8 1.3 4.1 1.2-.3-.1-.6-.3-.8-.7.4-.2.8-.5 1-.8" fill="#a5a7a9"/><g fill="#c09b5a"><path d="m26.7 32.9c.3-.4.4-1.1.5-1.5.2-.7.4-.9 1.1-.9 0-.9-.9-.6-1.3-.1-.3.5-.6 1-1 1.5 0-.3 0-.6 0-.9.4-.4 1-.6 1.1-1.2 0-.2.2-.8 0-1-.1-.1-.5.1-.6.1-.5.1-.5-.1-.8-.1-2.1 0-1.8 2.4-1.8 3.8 0 1.2-.4 2.3-1.3 3.1-.3.3-.7.5-1 .9-.2.3-.3 1.2-.8 1.2-.6 0-.9-.7-.7-1.1.3-.7-.2-.8-.5-.1-.4 1.2.9 2.4 2 1.5-.1.5.2 1.1-.3 1.5-.4.3-.2.9.1 1.3.2.3.3 1.2.8 1.2.3.1.7 0 .9 0 0-.4-.3-.8-.8-.8-.3-.3-.4-.9-.2-1.2.1-.1 1.6-1.6 1.3-1.6.2 0 .7.1.8.4.1.3 0 .3-.1.5.2.1.4.3.5.5.2.3.4.9.8.9.2.1.6 0 .8 0 0-.9-1.5-.8-1.1-1.8.1-.3.5-.5.2-.9-.2-.4-.7-.8-1.1-.9.8-.9 2.2-1.3 2.5-2.5 1-.8 1-1.2 1-2.3-.3 0-.4.3-.4.5 0 .4-.2.6-.5.8-.1-.5-.1-.7-.1-.8"/><path d="m44 36c-.1-.1-.2-.1-.4 0-.2.2.1.4.1.6.2.5-.1 1.1-.7 1.1-.4 0-.4-.4-.5-.7-.2-.5-.5-.8-.8-1.1-1.5-1.1-1.7-2.8-1.7-4.5 0-.6.1-1.3-.3-1.9-.2-.4-.6-.6-1-.7-.2 0-.4-.1-.5-.1-.2 0-.4.2-.5.2-.2-.1-.8-.4-.9-.1-.1.3 0 .8.1 1.1.2.4.7.6 1 .9 0 .3 0 .6 0 .9-.3-.4-.6-.9-.9-1.3-.1-.1-.2-.3-.3-.4-.3-.5-1.1-.2-1.1.4.6 0 .9.2 1.1.9.1.6.5 1.4.4 1.9-.3-.2-.5-.4-.5-.8 0-.2-.1-.5-.4-.5 0 1.1 0 1.5 1 2.3.3 1.2 1.7 1.7 2.5 2.5-.5.2-.8.5-1.1.9-.2.5.1.6.2 1 .4 1-1.1.9-1.1 1.8.8 0 1 0 1.5-.7.1-.2.3-.4.5-.6.3-.2 0-.1 0-.4 0-.5.4-.5.8-.6.1 0 .2.6.3.7.2.4.6.4.9.7.3.4.3 1 0 1.4-.3.3-.8.2-.8.8.3 0 .7.1.9 0 .5 0 .6-.9.8-1.2.3-.4.5-1 .1-1.3-.5-.4-.3-.9-.3-1.5 1.2 1.3 2.7-.6 1.6-1.7"/></g><path d="m32 26.8c1 0 3.1.3 3.9 1-.8 2.1-2.1 1.3-3.9 1.3-1.8 0-3.1.9-3.9-1.3.8-.8 2.9-1 3.9-1" fill="#ed4c5c"/><g fill="#c8b100"><path d="m34.7 29.1c-.7-.4-1.6-.5-2.7-.5-1 0-2 .1-2.6.5l.2 1c.6.2 1.5.3 2.4.3.9 0 1.8-.1 2.4-.3l.3-1"/><path d="m35.6 26.6c-.2-.2-.6-.3-1-.3-.2 0-.3 0-.5.1 0 0-.3-.5-1.1-.5-.3 0-.5.1-.7.2 0-.1-.1-.2-.3-.2s-.3.1-.3.2c-.2-.1-.4-.2-.7-.2-.7 0-1.1.5-1.1.5-.1 0-.3-.1-.5-.1-2.5 0-1.2 1.8-1.2 1.8l.2-.4c-.6-.8-.1-1.3 1-1.3.1 0 .3 0 .4 0-.4.6.3 1.1.3 1.1l.2-.3c-.3-.2-.3-1.2.7-1.2.3 0 .5.1.7.2 0 .1-.1.9-.1 1l.4.4.4-.4c-.1-.2-.1-1-.1-1 .2-.1.4-.2.7-.2 1.1 0 1.1 1 .7 1.3l.2.3c0 0 .6-.5.3-1.1.1 0 .3 0 .4 0 1.3 0 1.4 1.1 1 1.3l.2.4c0-.1.5-.9-.2-1.6"/></g><path d="m31.7 25.5c0-.2.2-.4.3-.4s.3.2.3.4-.2.4-.3.4-.3-.2-.3-.4" fill="#005bbf"/><path fill="#c8b100" d="m31.9 24.5v.2h-.1v.2h.1v.2.3h-.2v.1.1h.7v-.1-.1h-.3v-.3-.2h.2v-.2h-.2v-.2z"/><path d="m32 30.3c-.9 0-1.6-.1-2.2-.3.6-.2 1.4-.3 2.2-.3.9 0 1.6.1 2.2.3-.5.2-1.3.3-2.2.3" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e9.svg
index aa844bd..d92e0a0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m31.805 62c16.568 0 30-13.432 30-30h-60c0 16.568 13.431 30 30 30"/><path fill="#ed4c5c" d="m31.805 2c-16.568 0-30 13.432-30 30h60c0-16.568-13.432-30-30-30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 62c16.6 0 30-13.4 30-30h-60c0 16.6 13.4 30 30 30" fill="#f9f9f9"/><path d="m31.8 2c-16.6 0-30 13.4-30 30h60c0-16.6-13.4-30-30-30" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1ea.svg
index 81b10ab..c3f32f7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m1.771 32c0 13.06 8.35 24.17 20 28.29v-56.57c-11.651 4.119-20 15.225-20 28.29"/><path fill="#ff8736" d="m61.771 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#fff" d="m21.771 60.29c3.129 1.106 6.492 1.714 10 1.714s6.871-.607 10-1.714v-56.57c-3.129-1.107-6.493-1.714-10-1.714s-6.871.607-10 1.714v56.57"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M1.8,32c0,13.1,8.4,24.2,20,28.3V3.7C10.1,7.8,1.8,18.9,1.8,32z" fill="#83bf4f"/><path d="m61.8 32c0-13.1-8.4-24.2-20-28.3v56.6c11.6-4.1 20-15.2 20-28.3" fill="#ff8736"/><path d="m21.8 60.3c3.1 1.1 6.5 1.7 10 1.7s6.9-.6 10-1.7v-56.6c-3.2-1.1-6.5-1.7-10-1.7s-6.9.6-10 1.7v56.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f1.svg
index a2206cd..4118fdf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f9f9f9"><path d="m52.12 10c-5.353-4.963-12.514-8-20.388-8s-15.04 3.037-20.388 8h40.776"/><path d="m11.349 54c5.353 4.962 12.514 8 20.388 8s15.04-3.038 20.388-8h-40.776"/><path d="m1.736 32c0 4.268.896 8.324 2.504 12h54.992c1.607-3.676 2.504-7.732 2.504-12s-.896-8.324-2.504-12h-54.992c-1.607 3.676-2.504 7.732-2.504 12"/></g><g fill="#428bc1"><path d="m11.364 54h40.744c3.01-2.792 5.46-6.185 7.128-10h-55c1.668 3.815 4.116 7.208 7.128 10"/><path d="m52.11 10h-40.744c-3.01 2.791-5.46 6.184-7.128 10h55c-1.668-3.816-4.115-7.209-7.128-10"/><path d="m40.736 27h-5.999l-3-5-3 5h-5.998l3 5-3 5h5.998l3 5 3-5h5.999l-3-5 3-5m-9-2.071l1.244 2.071h-2.486l1.242-2.071m-6.362 3.535h2.483l-1.24 2.071-1.243-2.071m0 7.07l1.243-2.071 1.24 2.071h-2.483m6.362 3.535l-1.243-2.07h2.486l-1.243 2.07m2.122-3.535h-4.242l-2.123-3.535 2.123-3.536h4.242l2.121 3.536-2.121 3.535m4.243 0h-2.483l1.24-2.071 1.243 2.071m-1.244-5l-1.24-2.071h2.484l-1.244 2.071"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f9f9f9"><path d="m52.1 10c-5.4-5-12.5-8-20.4-8s-15 3-20.4 8h40.8"/><path d="m11.3 54c5.4 5 12.5 8 20.4 8s15-3 20.4-8h-40.8"/><path d="m1.7 32c0 4.3.9 8.3 2.5 12h55c1.6-3.7 2.5-7.7 2.5-12s-.9-8.3-2.5-12h-55c-1.6 3.7-2.5 7.7-2.5 12"/></g><g fill="#428bc1"><path d="m11.4 54h40.7c3-2.8 5.5-6.2 7.1-10h-55c1.7 3.8 4.2 7.2 7.2 10"/><path d="m52.1 10h-40.7c-3 2.8-5.5 6.2-7.1 10h55c-1.7-3.8-4.2-7.2-7.2-10"/><path d="m40.7 27h-6l-3-5-3 5h-6l3 5-3 5h6l3 5 3-5h6l-3-5 3-5m-9-2.1l1.3 2.1h-2.5l1.2-2.1m-6.3 3.6h2.5l-1.2 2.1-1.3-2.1m0 7l1.2-2.1 1.2 2.1h-2.4m6.3 3.6l-1.2-2.1h2.5l-1.3 2.1m2.2-3.6h-4.2l-2.2-3.5 2.1-3.5h4.2l2.2 3.5-2.1 3.5m4.2 0h-2.5l1.2-2.1 1.3 2.1m-1.2-5l-1.2-2.1h2.5l-1.3 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f2.svg
index e8c919d..17632dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,32c0,16.568-13.432,30-30,30S2,48.568,2,32S15.432,2,32,2S62,15.432,62,32"/><path fill="#fff" d="m49.29 22.791l-5.13-.287-.384-.258-1.049.824.132.827-.326 1.273-2.283 4.783-.2 1.029.1 1.068-.483.17-5.104-2.71-.203.164.226-.21-1.688-5.188-2.2-3.71-1.917-.158-1.453 1.115-6.684 2.8-1.604-.557-2.617-2.384-.799.376 2.566 4.452v.458l1.264.422.616-.56 1.244-.42 5.251-.717.97-.397.836-.664.409.312.5 5.446-3.745 3.826-2.279 3.662.743 1.772 1.659.78 5.562 4.641.245 1.679-.907 3.422.702.538 2.76-4.33.416-.21-.206-1.32-.785-.29-.948-.91-3.04-4.3-.826-.71-.961-.432.088-.508 4.69-3.01.007.039 5.264 1.431 4.311.186 1.18-1.512-.14-1.827 1.32-7.125 1.346-1.034 3.434-.887.12-.874"/><path fill="#ffe606" d="m23.961 37.596l1.762.072.576-.318.384-.497.467.187.1 1.443-.615.131-.435-.434-1-.03-.903.38-.527-.24z"/><g fill="#f9dd19"><path d="m32.912 47.35l-1.682.343-.18.777 1.659-.496.203-.624"/><path d="m46.46 22.721l-.644.126 1.12 1.293.771-.216-1.247-1.203"/><path d="m40.861 32.13l-1.207.793.062.501.624.088.556.348.801 1.572.703-.172-.05-.579-.491-.361-.286-.23-.463-.9.16-.587-.409-.473"/><path d="m17.438 22.461l-.318 1.709.452.462.478-1.646-.612-.525"/><path d="m29.829 20.693l-.456.357-.073.98-.496.873-.584.187-.16.6 1.318.579.386-.327-.27-.573-.012-.654.875-1.535-.528-.487"/></g><path fill="#f9db17" d="m32.448 34.394l-.114.073.02.084h.533l-.432-.118-.007-.039m-3.237-4.687l-.167.563.04.018.194-.199-.034-.371-.033-.011m5.359-.935l-.168.127.184.564-.225.21.201-.164.148.079.147-.121-.287-.695"/><path fill="#f9dd19" d="m34.402 28.899l-2.352 1.768-2.81-.949.04.372-.2.2 2.541 1.119.709 3.058.118-.073.007.039.432.118h.078l-.385-3.201 2.131-1.761-.148-.079-.203.164.226-.21-.184-.565"/><g fill="#f9dd16"><path d="m19.528 25.971l.492 1.516h1.596l-1.29.938.492 1.517-1.29-.942-1.29.942.492-1.517-1.29-.938h1.6z"/><path d="m41.707 20.495l.493 1.515h1.595l-1.29.94.493 1.517-1.291-.938-1.287.938.49-1.517-1.291-.94h1.601z"/><path d="m35.24 41.525l.497 1.515h1.593l-1.29.94.495 1.517-1.295-.937-1.286.937.493-1.517-1.287-.94h1.592z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-13.4,30-30,30S2,48.6,2,32S15.4,2,32,2S62,15.4,62,32" fill="#ed4c5c"/><path fill="#fff" d="m49.3 22.8l-5.1-.3-.4-.3-1.1.9.2.8-.4 1.3-2.2 4.8-.2 1 .1 1-.5.2-5.1-2.7-.2.2.2-.2-1.7-5.2-2.2-3.7-1.9-.2-1.5 1.1-6.7 2.8-1.6-.5-2.6-2.4-.8.4 2.6 4.4v.5l1.3.4.6-.6 1.2-.4 5.3-.7.9-.4.9-.7.4.3.5 5.5-3.8 3.8-2.2 3.7.7 1.8 1.7.7 5.5 4.7.3 1.6-.9 3.5.7.5 2.7-4.3.4-.2-.2-1.4-.8-.2-.9-.9-3-4.4-.9-.7-.9-.4.1-.5 4.6-3h.1l5.2 1.5 4.3.2 1.2-1.6-.1-1.8 1.3-7.1 1.3-1 3.5-.9.1-.9"/><path fill="#ffe606" d="m24 37.6l1.7.1.6-.3.4-.5.4.1.1 1.5-.6.1-.4-.4-1-.1-.9.4-.5-.2z"/><g fill="#f9dd19"><path d="m32.9 47.4l-1.7.3-.2.8 1.7-.5.2-.6"/><path d="m46.5 22.7l-.7.1 1.1 1.3.8-.2-1.2-1.2"/><path d="m40.9 32.1l-1.2.8v.5l.6.1.6.4.8 1.5.7-.1-.1-.6-.4-.4-.3-.2-.5-.9.2-.6-.4-.5"/><path d="m17.4 22.5l-.3 1.7.5.4.4-1.6-.6-.5"/><path d="m29.8 20.7l-.4.4-.1.9-.5.9-.6.2-.1.6 1.3.6.4-.4-.3-.5v-.7l.9-1.5-.6-.5"/></g><path d="m32.4 34.4l-.1.1v.1h.5l-.4-.2m-3.2-4.7l-.2.6.2-.2v-.4m5.4-.9l-.2.1.2.6-.2.2.2-.2.1.1.1-.1-.2-.7" fill="#f9db17"/><path fill="#f9dd19" d="m34.4 28.9l-2.3 1.8-2.9-1 .1.4-.2.2 2.5 1.1.7 3.1.1-.1h.1l.4.2h.1l-.4-3.2 2.1-1.8-.1-.1-.2.2.2-.2-.2-.6"/><g fill="#f9dd16"><path d="m19.5 26l.5 1.5h1.6l-1.3.9.5 1.5-1.3-.9-1.3.9.5-1.5-1.3-.9h1.6z"/><path d="m41.7 20.5l.5 1.5h1.6l-1.3 1 .5 1.5-1.3-1-1.3 1 .5-1.5-1.3-1h1.6z"/><path d="m35.2 41.5l.5 1.5h1.6l-1.3 1 .5 1.5-1.3-.9-1.2.9.4-1.5-1.2-1h1.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f3.svg
index 4e5f7a5..0f8b13d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m31.839 2c-13.06 0-24.17 8.35-28.29 20h56.57c-4.119-11.65-15.226-20-28.29-20"/><path fill="#83bf4f" d="m31.839 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#fff" d="m3.553 22c-1.106 3.129-1.714 6.492-1.714 10s.607 6.871 1.714 10h56.57c1.106-3.129 1.714-6.492 1.714-10s-.607-6.871-1.714-10h-56.57"/><circle fill="#428bc1" cx="31.839" cy="32" r="8"/><circle fill="#fff" cx="31.839" cy="32" r="7"/><g fill="#428bc1"><circle cx="29.16" cy="25.533" r=".5"/><circle cx="27.577" cy="26.447" r=".5"/><circle cx="26.29" cy="27.739" r=".5"/><circle cx="25.372" cy="29.322" r=".5"/><circle cx="24.898" cy="31.09" r=".5"/><circle cx="24.899" cy="32.914" r=".5"/><circle cx="25.372" cy="34.679" r=".5"/><circle cx="26.29" cy="36.26" r=".5"/><circle cx="27.578" cy="37.554" r=".5"/><circle cx="29.16" cy="38.467" r=".5"/><circle cx="30.926" cy="38.94" r=".5"/><path d="m32.26 39.01c-.037-.274.155-.525.43-.563.274-.033.523.156.562.432.036.273-.156.525-.432.561-.273.036-.525-.157-.56-.43"/><circle cx="34.519" cy="38.467" r=".5"/><circle cx="36.1" cy="37.553" r=".5"/><circle cx="37.39" cy="36.26" r=".5"/><circle cx="38.31" cy="34.677" r=".5"/><circle cx="38.78" cy="32.912" r=".5"/><path d="m38.845 31.58c-.274.04-.525-.154-.562-.429-.035-.274.155-.522.431-.562.273-.037.525.158.562.432.034.274-.157.525-.431.559"/><circle cx="38.31" cy="29.32" r=".5"/><circle cx="37.39" cy="27.737" r=".5"/><circle cx="36.1" cy="26.446" r=".5"/><path d="m34.978 25.724c-.103.257-.396.377-.651.271-.255-.107-.376-.396-.271-.654.104-.255.4-.376.654-.271.254.107.376.399.268.654"/><path d="m33.25 25.13c-.032.274-.284.466-.559.431-.274-.038-.466-.285-.432-.562.035-.273.289-.467.562-.431.275.038.467.289.429.562"/><path d="m31.418 24.996c.041.273-.152.523-.427.56-.275.035-.524-.154-.563-.431-.037-.273.157-.525.431-.561.275-.035.526.157.559.432"/><circle cx="31.838" cy="32" r="1.499"/><path d="m31.839 25l-.25 4.323.25 2.677.251-2.69z"/><path d="m30.03 25.24l.874 4.239.935 2.521-.454-2.66z"/><path d="m28.339 25.938l1.941 3.868 1.559 2.194-1.127-2.452z"/><path d="m26.89 27.05l2.879 3.23 2.07 1.72-1.729-2.077z"/><path d="m25.777 28.5l3.618 2.378 2.444 1.122-2.202-1.56z"/><path d="m25.08 30.19l4.11 1.359 2.649.451-2.529-.94z"/><path d="m24.84 32l4.32.25 2.679-.25-2.689-.25z"/><path d="m25.08 33.811l4.24-.876 2.519-.935-2.659.455z"/><path d="m25.777 35.499l3.869-1.943 2.193-1.556-2.451 1.13z"/><path d="m26.89 36.949l3.23-2.879 1.719-2.07-2.076 1.724z"/><path d="m28.339 38.06l2.379-3.617 1.121-2.443-1.559 2.2z"/><path d="m30.03 38.76l1.359-4.11.45-2.65-.937 2.531z"/><path d="m31.838 38.999l.252-4.321-.251-2.678-.25 2.688z"/><path d="m33.649 38.761l-.875-4.24-.935-2.521.451 2.66z"/><path d="m35.34 38.06l-1.944-3.87-1.557-2.19 1.127 2.452z"/><path d="m36.788 36.949l-2.878-3.234-2.071-1.715 1.724 2.08z"/><path d="m37.9 35.5l-3.62-2.38-2.441-1.12 2.201 1.561z"/><path d="m38.6 33.813l-4.11-1.363-2.651-.45 2.531.938z"/><path d="m38.838 32l-4.321-.252-2.678.252 2.687.25z"/><path d="m38.6 30.19l-4.24.87-2.521.94 2.661-.454z"/><path d="m37.9 28.501l-3.87 1.942-2.191 1.557 2.451-1.127z"/><path d="m36.788 27.05l-3.233 2.878-1.716 2.072 2.078-1.72z"/><path d="M35.34 25.939 32.96 29.555 31.839 32 33.4 29.797z"/><path d="m33.651 25.24l-1.361 4.108-.451 2.652.938-2.532z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M31.8,2C18.8,2,7.7,10.4,3.6,22h56.6C56,10.4,44.9,2,31.8,2z" fill="#f2b200"/><path d="M31.8,62c13.1,0,24.2-8.3,28.3-20H3.6C7.7,53.7,18.8,62,31.8,62z" fill="#83bf4f"/><path d="m3.6 22c-1.1 3.1-1.7 6.5-1.7 10s.6 6.9 1.7 10h56.6c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10h-56.6" fill="#fff"/><circle cx="31.8" cy="32" r="8" fill="#428bc1"/><circle cx="31.8" cy="32" r="7" fill="#fff"/><g fill="#428bc1"><circle cx="29.2" cy="25.5" r=".5"/><circle cx="27.6" cy="26.4" r=".5"/><circle cx="26.3" cy="27.7" r=".5"/><circle cx="25.4" cy="29.3" r=".5"/><circle cx="24.9" cy="31.1" r=".5"/><circle cx="24.9" cy="32.9" r=".5"/><circle cx="25.4" cy="34.7" r=".5"/><circle cx="26.3" cy="36.3" r=".5"/><circle cx="27.6" cy="37.6" r=".5"/><circle cx="29.2" cy="38.5" r=".5"/><circle cx="30.9" cy="38.9" r=".5"/><path d="m32.3 39c0-.3.2-.5.4-.6.3 0 .5.2.6.4 0 .3-.2.5-.4.6-.4.1-.6-.1-.6-.4"/><circle cx="34.5" cy="38.5" r=".5"/><circle cx="36.1" cy="37.6" r=".5"/><circle cx="37.4" cy="36.3" r=".5"/><circle cx="38.3" cy="34.7" r=".5"/><circle cx="38.8" cy="32.9" r=".5"/><path d="m38.8 31.6c-.3 0-.5-.2-.6-.4 0-.3.2-.5.4-.6.3 0 .5.2.6.4.1.3-.1.5-.4.6"/><circle cx="38.3" cy="29.3" r=".5"/><circle cx="37.4" cy="27.7" r=".5"/><circle cx="36.1" cy="26.4" r=".5"/><path d="m35 25.7c-.1.3-.4.4-.7.3-.3-.1-.4-.4-.3-.7.1-.3.4-.4.7-.3.3.2.4.5.3.7"/><path d="m33.2 25.1c0 .3-.3.5-.6.4-.3 0-.5-.3-.4-.6 0-.3.3-.5.6-.4.3.1.5.4.4.6"/><path d="m31.4 25c0 .3-.2.5-.4.6-.3 0-.5-.2-.6-.4 0-.3.2-.5.4-.6.3-.1.6.1.6.4"/><circle cx="31.8" cy="32" r="1.5"/><path d="m31.8 25l-.2 4.3.2 2.7.3-2.7z"/><path d="m30 25.2l.9 4.3.9 2.5-.4-2.7z"/><path d="m28.3 25.9l2 3.9 1.5 2.2-1.1-2.5z"/><path d="m26.9 27l2.9 3.3 2 1.7-1.7-2.1z"/><path d="m25.8 28.5l3.6 2.4 2.4 1.1-2.2-1.6z"/><path d="m25.1 30.2l4.1 1.3 2.6.5-2.5-.9z"/><path d="m24.8 32l4.4.2 2.6-.2-2.6-.2z"/><path d="m25.1 33.8l4.2-.9 2.5-.9-2.6.5z"/><path d="m25.8 35.5l3.8-1.9 2.2-1.6-2.4 1.1z"/><path d="m26.9 36.9l3.2-2.8 1.7-2.1-2 1.7z"/><path d="m28.3 38.1l2.4-3.7 1.1-2.4-1.5 2.2z"/><path d="m30 38.8l1.4-4.1.4-2.7-.9 2.5z"/><path d="m31.8 39l.3-4.3-.3-2.7-.2 2.7z"/><path d="m33.6 38.8l-.8-4.3-1-2.5.5 2.7z"/><path d="m35.3 38.1l-1.9-3.9-1.6-2.2 1.2 2.5z"/><path d="m36.8 36.9l-2.9-3.2-2.1-1.7 1.8 2.1z"/><path d="m37.9 35.5l-3.6-2.4-2.5-1.1 2.2 1.6z"/><path d="m38.6 33.8l-4.1-1.3-2.7-.5 2.6.9z"/><path d="m38.8 32l-4.3-.3-2.7.3 2.7.2z"/><path d="m38.6 30.2l-4.2.9-2.6.9 2.7-.5z"/><path d="m37.9 28.5l-3.9 1.9-2.2 1.6 2.5-1.1z"/><path d="m36.8 27.1l-3.2 2.8-1.8 2.1 2.1-1.7z"/><path d="m35.3 25.9l-2.3 3.7-1.2 2.4 1.6-2.2z"/><path d="m33.7 25.2l-1.4 4.1-.5 2.7 1-2.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f4.svg
index ec10da0..04d9b4e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m26.815 6.06l-.01-.001-.011.001c-3.61 0-4.713-.966-6.793-1.555-2.398 1.047-4.631 2.4-6.652 4.01.807-.185 1.773-.309 3.061-.309h.011.01c5.188 0 5.193 1.997 10.375 2 5.183-.003 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.997 10.374 2 2.01-.001 3.236-.302 4.292-.669-1.487-1.316-3.106-2.485-4.834-3.489-4.65-.135-4.85-1.983-9.843-1.986-5.184.003-5.188 2-10.379 2"/><g fill="#2a5f9e"><path d="m47.578 10.202h-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.171 4.143.011 4.145 5.183-.002 5.188-1.999 10.377-1.999h.011.011c5.188 0 5.192 1.997 10.374 1.999 3.91-.002 4.876-1.137 7.341-1.695-.938-1.11-1.956-2.15-3.044-3.114-1.054.366-2.282.665-4.287.665h-.01"/><path d="m37.18 4.058h.011.011c4.996 0 5.198 1.846 9.831 1.986-4.423-2.567-9.556-4.04-15.04-4.04-4.265 0-8.803 4.055-5.194 4.057 5.182-.002 5.187-1.999 10.377-1.999"/></g><path fill="#fff" d="m47.578 14.347h-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.997-10.374-2-4.514.002-5.104 1.515-8.606 1.907-.974 1.325-1.838 2.735-2.587 4.215.245.013.499.021.771.021l.035.001c5.187-.001 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.997 10.375 2 5.183-.003 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.997 10.374 2 5.089-.003 5.199-1.922 10.11-1.993-.821-1.357-1.749-2.641-2.768-3.846-2.456.561-3.423 1.694-7.333 1.694h-.01"/><path fill="#2a5f9e" d="m47.578 18.492h-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.171 4.143.011 4.145 5.183-.002 5.188-1.999 10.377-1.999h.011.011c5.188 0 5.192 1.997 10.374 1.999 5.185-.002 5.189-1.999 10.382-1.999h.005.005l.031.001c.685.001 1.274.033 1.8.087-.597-1.47-1.301-2.884-2.112-4.227-4.899.074-5.01 1.993-10.1 1.993h-.01"/><path fill="#fff" d="m57.965 20.638c-5.186.001-5.188 2-10.377 2l-.01-.001-.011.001c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2l-.01-.001-.011.001c-5.188 0-5.193-1.997-10.374-2-5.185.003-5.189 2-10.382 2h-.005-.005l-.03-.001c-.978-.002-1.769-.064-2.443-.167-.418 1.248-.758 2.531-1.01 3.846.89.268 1.955.463 3.453.466l.035.001c5.187-.001 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.997 10.375 2 5.183-.003 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.997 10.374 2 5.185-.003 5.189-2 10.382-2h.005.005l.031.001c1.362.003 2.36.124 3.189.306-.352-1.491-.813-2.939-1.378-4.336-.531-.07-1.125-.113-1.812-.114l-.036-.002"/><path fill="#2a5f9e" d="m57.965 24.782c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.171 4.143.011 4.145 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.001c1.762.003 2.915.205 3.88.479-.123-1.441-.35-2.853-.669-4.229-.842-.231-1.848-.394-3.211-.396h-.036"/><path fill="#fff" d="m57.965 28.928c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.997-10.374-2-5.184.003-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.997-10.374-2-5.185.003-5.189 2-10.382 2h-.005-.005-.03c-1.809-.004-2.977-.215-3.957-.5-.026.519-.041 1.044-.041 1.572 0 .832.043 1.653.109 2.465.977.338 2.139.604 3.889.607h.035c5.187 0 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.998 10.375 2 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.002c1.809.004 2.978.215 3.957.5.026-.521.041-1.045.041-1.574 0-.83-.043-1.65-.109-2.463-.978-.338-2.14-.605-3.89-.608h-.036"/><path fill="#2a5f9e" d="m57.965 33.07c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.996-10.374-2-5.184.004-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.996-10.374-2-5.185.004-5.189 2-10.382 2h-.005-.005-.03c-1.762-.004-2.915-.205-3.88-.479.124 1.441.35 2.852.67 4.229.841.23 1.847.393 3.21.395l.035.002c5.187-.002 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.996 10.375 2 5.183-.004 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.996 10.374 2 5.185-.004 5.189-2 10.382-2h.005.005.031c1.521.004 2.587.154 3.471.371.239-1.27.403-2.568.478-3.889-.99-.348-2.164-.625-3.948-.627l-.038-.002"/><path fill="#fff" d="m57.965 37.22c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.998-10.374-2-5.184.002-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.998-10.374-2-5.185.002-5.189 2-10.382 2h-.005-.005l-.03-.002c-1.362-.002-2.359-.123-3.189-.305.353 1.492.813 2.939 1.379 4.336.53.07 1.124.113 1.811.115h.035c5.187-.002 5.188-2 10.377-2h.011.01c5.188 0 5.193 1.998 10.375 2 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.002c.978 0 1.769.064 2.444.166.418-1.248.757-2.531 1.01-3.846-.891-.268-1.956-.463-3.454-.467h-.038"/><path fill="#2a5f9e" d="m57.965 41.36c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.996-10.374-2-5.184.004-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.996-10.374-2-5.185.004-5.189 2-10.382 2h-.005-.005-.03c-.685-.002-1.273-.033-1.8-.088.597 1.469 1.301 2.883 2.112 4.227 4.898-.074 5.01-1.994 10.1-1.994h.011.01c5.188 0 5.193 1.998 10.375 2 5.183-.002 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.998 10.374 2 5.185-.002 5.189-2 10.382-2h.005.005l.031.002c.273 0 .529.006.774.016.642-1.268 1.195-2.586 1.654-3.949-.676-.129-1.464-.211-2.429-.211l-.036-.003"/><path fill="#fff" d="m57.965 45.508c-5.186.002-5.188 2-10.377 2h-.01-.011c-5.188 0-5.192-1.996-10.374-2-5.184.004-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.996-10.374-2-5.089.004-5.199 1.922-10.11 1.994.82 1.357 1.749 2.641 2.767 3.846 2.456-.561 3.423-1.693 7.332-1.693h.011.01c5.188 0 5.193 1.996 10.375 1.998 5.183-.002 5.188-1.998 10.377-1.998h.011.011c5.188 0 5.192 1.996 10.374 1.998 4.514-.002 5.104-1.514 8.606-1.906.975-1.326 1.84-2.736 2.589-4.215-.246-.014-.5-.021-.772-.021l-.037-.003"/><path fill="#2a5f9e" d="m47.578 51.652l-.011.002c-5.188 0-5.192-1.998-10.374-2-5.184.002-5.188 2-10.378 2l-.01-.002-.011.002c-5.188 0-5.193-1.998-10.374-2-3.91.002-4.876 1.137-7.34 1.695.938 1.109 1.955 2.15 3.043 3.113 1.054-.365 2.282-.664 4.286-.664h.011.01c5.188 0 5.193 1.996 10.375 2 5.183-.004 5.188-2 10.377-2h.011.011c5.188 0 5.192 1.996 10.374 2 1.295-.002 2.268-.127 3.078-.314 2.086-1.658 3.947-3.586 5.527-5.736-3.489.395-4.082 1.906-8.596 1.906l-.009-.002"/><path fill="#fff" d="m47.578 55.799h-.011c-5.188 0-5.192-1.998-10.374-2-5.184.002-5.188 2-10.378 2h-.01-.011c-5.188 0-5.193-1.998-10.374-2-2.01.002-3.236.301-4.292.668 1.487 1.316 3.106 2.486 4.835 3.49 4.649.135 4.849 1.984 9.842 1.986 5.183-.002 5.188-2 10.377-2h.011.011c3.61 0 4.713.967 6.793 1.555 2.398-1.047 4.631-2.4 6.653-4.01-.808.186-1.774.309-3.063.309h-.009"/><path fill="#2a5f9e" d="m26.815 59.943h-.01-.011c-4.996 0-5.198-1.846-9.83-1.986 4.422 2.566 9.555 4.04 15.04 4.04 4.264 0 8.316-.895 11.989-2.498-2.086-.588-3.188-1.557-6.796-1.559-5.183.004-5.187 2-10.378 2"/><path fill="#75a843" d="m54.44 24.646l3.938.054c-.997-1.765-4.337-1.864-7-1.432 1.676-.532 3.74-1.111 4.067-1.175-.827-.61-4.286-2.753-8.689 1.605l-.07.002c-4.402-4.363-7.866-2.218-8.693-1.607.327.064 2.392.644 4.071 1.175-2.668-.433-6.01-.333-7.01 1.432l3.938-.054c-1.646.788-2.544.869-2.784 2.805.095-.039 2.14-.583 4.237-1.136-1.143.569-2.16 1.262-2.623 1.972 1.865.147 3.508-.358 4.75-.954-.77.989-1.25 2.067-1.18 2.689.927-.165 1.883-.959 2.665-1.793-.476 1.825-.438 3.687.087 4.444.766-.592 1.32-1.613 1.725-2.71l-.053 1.067h1.65l-.066-1.511c.414 1.256 1.018 2.484 1.883 3.154.525-.757.563-2.619.092-4.444.777.834 1.733 1.628 2.66 1.793.074-.622-.41-1.7-1.18-2.689 1.242.596 2.885 1.101 4.75.954-.463-.709-1.48-1.403-2.619-1.972 2.094.552 4.139 1.097 4.237 1.136-.244-1.936-1.141-2.02-2.787-2.805"/><path fill="#c94747" d="m45.39 28.23h2.661v21.761h-2.661z"/><path fill="#f1bf31" d="m40.33 42.12l2.183 2.316 8.143-.008 2.21-2.309.233-3.402-5.308-1.623.464-.412-1.658-1.025-1.656 1.025.464.412-4.778 1.189-.297 3.837m11.509-2.803l-1.341 1.967-1.334-.477-1.585-.258.016-2.947 4.244 1.715m-10.483 0l4.221-1.686.039 2.918-1.585.258-1.334.477-1.341-1.967"/><path fill="#2a5f9e" d="m11 11h21v21h-21z"/><g fill="#fff"><path d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.011C3.088,22.869,2,27.306,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m21.876 5.906l-.003.006.003-.006"/><path d="m21.871 5.918l-.036.079.036-.079"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m26.8 6.1c-3.6 0-4.7-1-6.8-1.6-2.4 1-4.6 2.4-6.7 4 .8-.2 1.8-.3 3.1-.3 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 2 0 3.2-.3 4.3-.7-1.5-1.3-3.1-2.5-4.9-3.5-4.7-.1-4.8-2-9.8-2-5.2.1-5.2 2.1-10.4 2.1" fill="#fff"/><g fill="#2a5f9e"><path d="m47.6 10.2c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2 4.1 0 4.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 3.9 0 4.9-1.1 7.3-1.7-.9-1.1-2-2.1-3-3.1-1.1.4-2.3.7-4.3.7"/><path d="m37.2 4.1c5 0 5.2 1.8 9.9 2-4.4-2.6-9.6-4-15-4-4.3 0-8.8 4.1-5.2 4.1 5.1-.1 5.1-2.1 10.3-2.1"/></g><path d="m47.6 14.3c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-4.5 0-5.1 1.5-8.6 1.9-1 1.3-1.8 2.7-2.6 4.2.2 0 .5 0 .8 0 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.1 0 5.2-1.9 10.1-2-.8-1.4-1.7-2.6-2.8-3.8-2.4.6-3.4 1.7-7.3 1.7" fill="#fff"/><path d="m47.6 18.5c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2 4.1 0 4.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 .7 0 1.3 0 1.8.1-.6-1.5-1.3-2.9-2.1-4.2-4.9.1-5 2-10.1 2" fill="#2a5f9e"/><path d="m58 20.6c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1 0-1.8-.1-2.4-.2-.4 1.2-.8 2.5-1 3.8.9.3 2 .5 3.5.5 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.4 0 2.4.1 3.2.3-.4-1.5-.8-2.9-1.4-4.3-.6 0-1.2-.1-1.9-.1" fill="#fff"/><path d="m58 24.8c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2 4.1 0 4.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.8 0 2.9.2 3.9.5-.1-1.4-.3-2.9-.7-4.2-.8-.3-1.8-.4-3.2-.4" fill="#2a5f9e"/><path d="m58 28.9c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1.8 0-3-.2-4-.5 0 .5 0 1 0 1.6 0 .8 0 1.7.1 2.5 1 .3 2.1.6 3.9.6 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.8 0 3 .2 4 .5 0-.5 0-1 0-1.6 0-.8 0-1.6-.1-2.5-1-.3-2.1-.6-3.9-.6" fill="#fff"/><path d="m58 33.1c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1.8 0-2.9-.2-3.9-.5.1 1.4.3 2.9.7 4.2.8.2 1.8.4 3.2.4 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1.5 0 2.6.2 3.5.4.2-1.3.4-2.6.5-3.9-1-.3-2.2-.6-4-.6" fill="#2a5f9e"/><path d="m58 37.2c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-1.4 0-2.4-.1-3.2-.3.4 1.5.8 2.9 1.4 4.3.5.1 1.1.1 1.8.1 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 1 0 1.8.1 2.4.2.4-1.2.8-2.5 1-3.8-.8-.3-1.9-.5-3.4-.5" fill="#fff"/><path d="m58 41.4c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-.7 0-1.3 0-1.8-.1.6 1.5 1.3 2.9 2.1 4.2 4.9-.1 5-2 10.1-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 .3 0 .5 0 .8 0 .6-1.3 1.2-2.6 1.7-3.9-.7-.2-1.5-.2-2.5-.2" fill="#2a5f9e"/><path d="m58 45.5c-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-5.1 0-5.2 1.9-10.1 2 .8 1.4 1.7 2.6 2.8 3.8 2.5-.6 3.4-1.7 7.3-1.7 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 4.5 0 5.1-1.5 8.6-1.9 1-1.3 1.8-2.7 2.6-4.2-.3 0-.5 0-.8 0" fill="#fff"/><path d="m47.6 51.7c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-3.9 0-4.9 1.1-7.3 1.7.9 1.1 2 2.2 3 3.1 1.1-.4 2.3-.7 4.3-.7 5.2 0 5.2 2 10.4 2 5.2 0 5.2-2 10.4-2 5.2 0 5.2 2 10.4 2 1.3 0 2.3-.1 3.1-.3 2.1-1.7 3.9-3.6 5.5-5.7-3.5.3-4.1 1.9-8.6 1.9" fill="#2a5f9e"/><path d="m47.6 55.8c-5.2 0-5.2-2-10.4-2-5.2 0-5.2 2-10.4 2-5.2 0-5.2-2-10.4-2-2 0-3.2.3-4.3.7 1.5 1.3 3.1 2.5 4.8 3.5 4.6.1 4.8 2 9.8 2 5.2 0 5.2-2 10.4-2 3.6 0 4.7 1 6.8 1.6 2.4-1 4.6-2.4 6.7-4-.8.1-1.7.2-3 .2" fill="#fff"/><path d="m26.8 59.9c-5 0-5.2-1.8-9.9-2 4.4 2.6 9.6 4 15 4 4.3 0 8.3-.9 12-2.5-2.1-.6-3.2-1.6-6.8-1.6-5.1.1-5.1 2.1-10.3 2.1" fill="#2a5f9e"/><path d="m54.4 24.6l3.9.1c-1-1.8-4.3-1.9-7-1.4 1.7-.5 3.7-1.1 4.1-1.2-.8-.6-4.3-2.8-8.7 1.6h-.1c-4.4-4.4-7.9-2.2-8.7-1.6.3.1 2.4.6 4.1 1.2-2.7-.4-6-.3-7 1.4l3.9-.1c-1.6.8-2.5.9-2.8 2.8.1 0 2.1-.6 4.2-1.1-1.1.6-2.2 1.3-2.6 2 1.9.1 3.5-.4 4.8-1-.8 1-1.2 2.1-1.2 2.7.9-.2 1.9-1 2.7-1.8-.5 1.8-.4 3.7.1 4.4.8-.6 1.3-1.6 1.7-2.7v1.1h1.7l-.1-1.5c.4 1.3 1 2.5 1.9 3.2.5-.8.6-2.6.1-4.4.8.8 1.7 1.6 2.7 1.8.1-.6-.4-1.7-1.2-2.7 1.2.6 2.9 1.1 4.8 1-.5-.7-1.5-1.4-2.6-2 2.1.6 4.1 1.1 4.2 1.1-.3-2-1.2-2.1-2.9-2.9" fill="#75a843"/><path fill="#c94747" d="m45.4 28.2h2.7v21.8h-2.7z"/><path d="m40.3 42.1l2.2 2.3h8.1l2.2-2.3.2-3.4-5.3-1.6.5-.4-1.7-1-1.7 1 .5.4-4.8 1.2-.2 3.8m11.5-2.8l-1.3 2-1.3-.5-1.6-.3v-2.9l4.2 1.7m-10.4 0l4.2-1.7v2.9l-1.6.3-1.3.5-1.3-2" fill="#f1bf31"/><path fill="#2a5f9e" d="m11 11h21v21h-21z"/><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f6.svg
index 8c40cdf..c260e29 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f6.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="M32,2C18.939,2,7.833,10.349,3.714,22h56.572C56.167,10.349,45.061,2,32,2z"/><path fill="#3e4347" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.607,25.128,2,28.492,2,32c0,3.508,0.607,6.872,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- c0-3.508-0.607-6.871-1.714-10H3.714z"/><g fill="#699635"><path d="m44.724 26.572c-.178-.094-.377-.244-.444-.334-.099-.14-.041-.145.37-.033.735.199 1.211.122 1.683-.278l.415-.35.488.249c.271.136.557.23.638.209.212-.057.651-.62.637-.815-.017-.241.187-.181.285.084.194.518-.089 1.112-.592 1.243-.246.064-.473.041-.845-.089-.457-.16-.535-.157-.764.019-.514.394-1.23.431-1.871.095"/><path d="m46.543 24.908c-.179-.228-.394-1.087-.323-1.299.061-.182.124-.22.29-.167.292.092.358.292.313.973-.032.555-.113.701-.28.493"/><path d="m25.1 24.29c-.058.417.738 1.451 1.099 1.637-.245.11-.549.061-.772.184-1.255 1.255-5.833 5.718-6.67 6.785 2.477.049 5.224-.035 7.546-.14-.001-1.683 1.593-1.77 2.661-2.383.55.866 1.93.799 2.104 2.102 0 1.56.002 3.908.002 5.603-7.01 0-14.15 0-21.16 0-.373 1.645-1.856 2.898-3.924 2.383.639-.668 1.717-.898 2.102-1.82.325-2.023-.65-3.27-1.28-4.416 1.044-.381 1.201-.475 2.262-1.189-.744 2.262 1.934 2.01 3.923 1.963.066-.768.029-1.674-.562-1.785.761-.277.888-.373 2.104-1.403 0 .935 0 2.112 0 3.047 4.726 0 9.826-.037 14.65-.037 0-.951.253-2.484-.501-2.484-.722 0-.033 1.96-.594 1.96s-7.532 0-11.315 0c0-.422-.012-1.303-.012-1.938.481-.479.424-.438 3.7-3.714.325-.327 2.624-2.404 4.634-4.355"/><path d="m53.38 24.21c.791.425 1.415 1.014 2.383 1.261-.112.4-.469.558-.562.981 0 2.848 0 5.696 0 8.544 1.08.238 1.309-.373 1.822-.699.14 1.367 1.01 2.707.98 3.781-1.541 0-3.082 0-4.624 0 .001-4.62.001-9.244.001-13.868"/><path d="m47.22 28.786c0 0 1.681-1.419 1.681-1.474 0 2.428 0 5.03 0 7.458l1.212-.002c0-2.841-.036-5.723-.036-8.364.489-.492 1.453-1.204 1.693-1.701 0 5.076 0 9.374 0 13.356-3.412 0-9.779.004-10.62.004-.155-2.771-.183-5.643 3.048-5.03 0-.471 0-.751 0-1.129-.098-.193-.274.047-.316-.205.514-.514.688-.645 2.076-1.858 0 1.465.027 4.921.027 4.921.338 0 1 .002 1.225.002-.001-.001.01-5.791.01-5.981m-3.988 5.907c.227.342 1 .336.965-.238-.129-.475-1.146-.295-.965.238"/><circle cx="12.489" cy="39.653" r=".649"/><path d="m32.503 24.22c.791.425 1.417 1.013 2.383 1.261-.111.399-.468.558-.562.979 0 2.849 0 5.698 0 8.546 1.08.238 1.307-.375 1.822-.701.14 1.369 1.01 2.709.98 3.783-1.54 0-3.083 0-4.624 0 .001-4.622.001-9.244.001-13.868"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.3,3.7,22h56.6C56.2,10.3,45.1,2,32,2z" fill="#c94747"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#3e4347"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><g fill="#699635"><path d="m44.7 26.6c-.2-.1-.4-.2-.4-.3-.1-.1 0-.1.4 0 .7.2 1.2.1 1.7-.3l.4-.4.5.2c.3.1.6.2.6.2.2-.1.7-.6.6-.8 0-.2.2-.2.3.1.2.5-.1 1.1-.6 1.2-.2.1-.5 0-.8-.1-.5-.2-.5-.2-.8 0-.5.5-1.2.5-1.9.2"/><path d="m46.5 24.9c-.2-.2-.4-1.1-.3-1.3.1-.2.1-.2.3-.2.3.1.4.3.3 1 0 .6-.1.7-.3.5"/><path d="m25.1 24.3c-.1.4.7 1.5 1.1 1.6-.2.1-.5.1-.8.2-1.3 1.3-5.8 5.7-6.7 6.8 2.5 0 5.2 0 7.5-.1 0-1.7 1.6-1.8 2.7-2.4.5.9 1.9.8 2.1 2.1 0 1.6 0 3.9 0 5.6-7 0-14.2 0-21.2 0-.3 1.6-1.7 2.9-3.8 2.4.6-.7 1.7-.9 2.1-1.8.3-2-.7-3.3-1.3-4.4 1-.4 1.2-.5 2.3-1.2-.7 2.3 1.9 2 3.9 2 .1-.8 0-1.7-.6-1.8.8-.3.9-.4 2.1-1.4 0 .9 0 2.1 0 3 4.7 0 9.8 0 14.7 0 0-1 .3-2.5-.5-2.5-.7 0 0 2-.6 2s-7.5 0-11.3 0c0-.4 0-1.3 0-1.9.5-.5.4-.4 3.7-3.7.3-.5 2.6-2.6 4.6-4.5"/><path d="m53.4 24.2c.8.4 1.4 1 2.4 1.3-.1.4-.5.6-.6 1 0 2.8 0 5.7 0 8.5 1.1.2 1.3-.4 1.8-.7.1 1.4 1 2.7 1 3.8-1.5 0-3.1 0-4.6 0 0-4.6 0-9.3 0-13.9"/><path d="m47.2 28.8c0 0 1.7-1.4 1.7-1.5 0 2.4 0 5 0 7.5h1.2c0-2.8 0-5.7 0-8.4.5-.5 1.5-1.2 1.7-1.7 0 5.1 0 9.4 0 13.4-3.4 0-9.8 0-10.6 0-.2-2.8-.2-5.6 3-5 0-.5 0-.8 0-1.1-.1-.2-.3 0-.3-.2.5-.5.7-.6 2.1-1.9 0 1.5 0 4.9 0 4.9.3 0 1 0 1.2 0 0 0 0-5.8 0-6m-4 5.9c.2.3 1 .3 1-.2-.1-.5-1.1-.3-1 .2"/><circle cx="12.5" cy="39.7" r=".6"/><path d="m32.5 24.2c.8.4 1.4 1 2.4 1.3-.1.4-.5.6-.6 1 0 2.8 0 5.7 0 8.5 1.1.2 1.3-.4 1.8-.7.1 1.4 1 2.7 1 3.8-1.5 0-3.1 0-4.6 0 0-4.6 0-9.3 0-13.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f7.svg
index af48389..d7b36f5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M32,2C18.939,2,7.833,10.349,3.714,22h56.572C56.167,10.349,45.061,2,32,2z"/><path fill="#ed4c5c" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.607,25.128,2,28.492,2,32c0,3.508,0.607,6.872,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- c0-3.508-0.607-6.871-1.714-10H3.714z"/><g fill="#fff"><path d="m59.37 44.28c-.087.193-.172.389-.263.58h.263v-.58"/><path d="m4.896 44.865c-.092-.191-.176-.387-.263-.58v.58h.263"/><path d="m5.634 18.799h-.575c-.055.11-.109.222-.162.333h.737v-.333"/><path d="m5.634 21v-.334h-1v-.6h1.533v.934h2.2v-2.267h-.334v1.933h-.6v-1.933h-.332v1.933h-.601v-1.933h-.333v1h-1.542c-.11.244-.221.487-.324.735v.532h1.333"/><path d="m5.634 44.865h-.738c.053.113.107.223.162.334h.575v-.334z"/><path d="m4.634 44.27h1.533v.934h2.2v-2.268h-.334v1.934h-.6v-1.934h-.332v1.934h-.601v-1.934h-.333v1h-1.693c.052.119.106.236.16.354v-.02"/><path d="m5.634 42.998h-1.543c.044.111.087.225.132.334h1.411v-.334"/><path d="m13.634 21h1.333v-.334h-1v-.596h1.533v.93h2.201v-2.267h-.334v1.933h-.599v-1.933h-.334v1.933h-.6v-1.933h-.334v1h-1.866z"/><path d="m13.03 21v-1.267h-1.329v.337h1v.596h-1.534v-.933h-2.2v1.337h.334v-1h1.533v.93z"/><path d="m9.834 20.666h.467v.334h-.467z"/><path d="m8.9 18.799h6.07v.333h-6.07z"/><path d="m11.701 44.27h1v.595h-1.534v-.933h-2.2v1.338h.334v-1h1.533v.93h2.196v-1.268h-1.329z"/><path d="m9.834 44.865h.467v.334h-.467z"/><path d="m8.9 42.998h6.07v.334h-6.07z"/><path d="m17.367 44.865h-.599v-1.933h-.334v1.933h-.6v-1.933h-.334v1h-1.866v1.268h1.333v-.335h-1v-.595h1.533v.93h2.201v-2.268h-.334z"/><path d="m22.967 21h1.334v-.334h-1v-.596h1.533v.93h2.196v-2.267h-.329v1.933h-.601v-1.933h-.332v1.933h-.598v-1.933h-.336v1h-1.867z"/><path d="m22.367 21v-1.267h-1.337v.337h1v.596h-1.53v-.933h-2.199v1.337h.333v-1h1.536v.93z"/><path d="m18.234 18.799h6.07v.333h-6.07z"/><path d="m19.17 20.666h.467v.334h-.467z"/><path d="m26.701 44.865h-.601v-1.933h-.332v1.933h-.598v-1.933h-.336v1h-1.867v1.268h1.334v-.335h-1v-.595h1.533v.93h2.196v-2.268h-.329z"/><path d="m19.17 44.865h.467v.334h-.467z"/><path d="m18.234 42.998h6.07v.334h-6.07z"/><path d="m21.03 44.27h1v.595h-1.53v-.933h-2.199v1.338h.333v-1h1.536v.93h2.197v-1.268h-1.337z"/><path d="m31.701 21v-1.267h-1.334v.337h1v.596h-1.533v-.933h-2.2v1.337h.333v-1h1.533v.93z"/><path d="m27.566 18.799h6.07v.333h-6.07z"/><path d="m28.5 20.666h.467v.334h-.467z"/><path d="m32.3 21h1.333v-.334h-1v-.596h1.537v.93h2.2v-2.267h-.34v1.933h-.596v-1.933h-.334v1.933h-.6v-1.933h-.33v1h-1.87z"/><path d="m27.566 42.998h6.07v.334h-6.07z"/><path d="m30.367 44.27h1v.595h-1.533v-.933h-2.2v1.338h.333v-1h1.533v.93h2.201v-1.268h-1.334z"/><path d="m28.5 44.865h.467v.334h-.467z"/><path d="m36.03 44.865h-.596v-1.933h-.334v1.933h-.6v-1.933h-.33v1h-1.87v1.268h1.333v-.335h-1v-.595h1.537v.93h2.2v-2.268h-.34z"/><path d="m37.834 20.666h.467v.334h-.467z"/><path d="m36.9 18.799h6.07v.333h-6.07z"/><path d="m41.633 21h1.334v-.334h-1v-.596h1.533v.93h2.201v-2.267h-.331v1.933h-.602v-1.933h-.338v1.933h-.596v-1.933h-.334v1h-1.867z"/><path d="m41.03 21v-1.267h-1.329v.337h1v.596h-1.531v-.933h-2.203v1.337h.333v-1h1.534v.93z"/><path d="m36.9 42.998h6.07v.334h-6.07z"/><path d="m45.37 44.865h-.602v-1.933h-.338v1.933h-.596v-1.933h-.334v1h-1.867v1.268h1.334v-.335h-1v-.595h1.533v.93h2.201v-2.268h-.331z"/><path d="m39.701 44.27h1v.595h-1.531v-.933h-2.203v1.338h.333v-1h1.534v.93h2.196v-1.268h-1.329z"/><path d="m37.834 44.865h.467v.334h-.467z"/><path d="m50.37 21v-1.267h-1.34v.337h1v.596h-1.53v-.933h-2.2v1.337h.333v-1h1.537v.93z"/><path d="m47.17 20.666h.465v.334h-.465z"/><path d="m46.23 18.799h6.07v.333h-6.07z"/><path d="m50.967 21h1.333v-.334h-1v-.596h1.534v.93h2.196v-2.267h-.329v1.933h-.601v-1.933h-.332v1.933h-.598v-1.933h-.336v1h-1.867z"/><path d="m47.17 44.865h.465v.334h-.465z"/><path d="m49.03 44.27h1v.595h-1.53v-.933h-2.2v1.338h.333v-1h1.537v.93h2.2v-1.268h-1.34z"/><path d="m46.23 42.998h6.07v.334h-6.07z"/><path d="m54.701 44.865h-.601v-1.933h-.332v1.933h-.598v-1.933h-.336v1h-1.867v1.268h1.333v-.335h-1v-.595h1.534v.93h2.196v-2.268h-.329z"/><path d="m55.57 19.13h3.538c-.053-.111-.107-.223-.162-.333h-3.376v.333"/><path d="m58.37 20.07h1v.6h-1.533v-.933h-2.201v1.333h.334v-1h1.533v.934h2.201v-.528c-.104-.249-.215-.493-.325-.738h-1.01v.332"/><path d="m56.5 20.666h.467v.334h-.467z"/><path d="m56.5 44.865h.467v.334h-.467z"/><path d="m55.57 42.998v.334h4.212c.045-.109.087-.223.131-.334h-4.343"/><path d="m58.37 44.27h1v.02c.053-.117.108-.234.159-.354h-1.159v.334"/><path d="m57.834 44.865v-.934h-2.201v1.334h.334v-1h1.533v.934h1.441c.055-.111.11-.221.163-.334h-1.27"/></g><g fill="#ed4c5c"><path d="m36.508 33.879c.854-2.622.047-5.499-2.043-7.297 2.269 3.358 1.446 7.889-1.805 10.254l.225-5.589v-4.409c-.352-.169-.656-.425-.885-.743-.228.318-.531.574-.885.743v4.409l.227 5.591c-3.253-2.365-4.075-6.898-1.805-10.256-2.091 1.799-2.896 4.676-2.045 7.297.572 1.76 1.791 3.127 3.308 3.93-.929.336-1.912.512-2.911.463 1.18.385 2.387.424 3.519.186l.01.238.582.802.584-.803.01-.238c1.133.238 2.339.199 3.518-.186-.998.049-1.981-.127-2.91-.463 1.515-.802 2.735-2.167 3.306-3.929"/><path d="m38.732 29.13c-.777-1.342-2.064-2.313-3.57-2.689 3.311 2.488 3.979 7.189 1.488 10.5-.004.006-.008.012-.012.018 2.739-1.585 3.676-5.088 2.094-7.829"/><path d="m28.838 26.442c-1.504.376-2.793 1.348-3.568 2.689-1.584 2.74-.646 6.244 2.094 7.828-.004-.006-.009-.012-.014-.018-2.489-3.31-1.823-8.01 1.488-10.499"/><path d="m30.492 26.03c.489.344 1.164.227 1.508-.263.344.489 1.02.606 1.508.263.41-.288.568-.82.383-1.286-.104.555-.639.92-1.195.815-.292-.056-.546-.235-.695-.492-.148.257-.402.437-.695.492-.555.104-1.09-.261-1.195-.815-.187.466-.029.998.381 1.286"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.3,3.7,22h56.6C56.2,10.3,45.1,2,32,2z" fill="#83bf4f"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><g fill="#fff"><path d="m59.4 44.3c-.1.2-.2.4-.3.6h.3v-.6"/><path d="m4.9 44.9c-.1-.2-.2-.4-.3-.6v.6h.3"/><path d="m5.6 18.8h-.5c-.1.1-.2.2-.2.3h.7v-.3"/><path d="m5.6 21v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3v1.9h-.6v-1.9h-.3v1.9h-.6v-1.9h-.3v1h-1.6c-.1.2-.2.5-.3.7v.6h1.3"/><path d="m5.6 44.9h-.7c0 .1.1.2.2.3h.6l-.1-.3"/><path d="m4.6 44.3h1.5v.9h2.2v-2.3h-.3v1.9h-.6v-1.9h-.3v1.9h-.6v-1.9h-.3v1h-1.7c0 .2.1.3.1.4"/><path d="m5.6 43h-1.5c0 .1.1.2.1.3h1.4v-.3"/><path d="m13.6 21h1.4v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3v2h-.6v-2h-.4v2h-.6v-2h-.3v1h-1.9z"/><path d="m13 21v-1.3h-1.3v.4h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.5v.9z"/><path d="m9.8 20.7h.5v.3h-.5z"/><path d="m8.9 18.8h6.1v.3h-6.1z"/><path d="m11.7 44.3h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.5v.9h2.2v-1.3h-1.3z"/><path d="m9.8 44.9h.5v.3h-.5z"/><path d="m8.9 43h6.1v.3h-6.1z"/><path d="m17.4 44.9h-.6v-2h-.4v2h-.6v-2h-.3v1h-1.9v1.3h1.4v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3z"/><path d="m23 21h1.3v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3v2h-.6v-2h-.3v2h-.6v-2h-.4v1h-1.8z"/><path d="m22.4 21v-1.3h-1.4v.4h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.6v.9z"/><path d="m18.2 18.8h6.1v.3h-6.1z"/><path d="m19.2 20.7h.5v.3h-.5z"/><path d="m26.7 44.9h-.6v-2h-.3v2h-.6v-2h-.4v1h-1.8v1.3h1.3v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3z"/><path d="m19.2 44.9h.5v.3h-.5z"/><path d="m18.2 43h6.1v.3h-6.1z"/><path d="m21 44.3h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.6v.9h2.2v-1.3h-1.4z"/><path d="m31.7 21v-1.3h-1.3v.4h1v.6h-1.6v-1h-2.2v1.4h.4v-1h1.5v.9z"/><path d="m27.6 18.8h6.1v.3h-6.1z"/><path d="m28.5 20.7h.5v.3h-.5z"/><path d="m32.3 21h1.3v-.3h-1v-.6h1.6v.9h2.2v-2.3h-.4v2h-.6v-2h-.3v2h-.6v-2h-.3v1h-1.9z"/><path d="m27.6 43h6.1v.3h-6.1z"/><path d="m30.4 44.3h1v.6h-1.6v-1h-2.2v1.4h.4v-1h1.5v.9h2.2v-1.3h-1.3z"/><path d="m28.5 44.9h.5v.3h-.5z"/><path d="m36 44.9h-.6v-2h-.3v2h-.6v-2h-.3v1h-1.9v1.3h1.3v-.3h-1v-.6h1.6v.9h2.2v-2.3h-.4z"/><path d="m37.8 20.7h.5v.3h-.5z"/><path d="m36.9 18.8h6.1v.3h-6.1z"/><path d="m41.6 21h1.4v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3v2h-.6v-2h-.4v2h-.6v-2h-.3v1h-1.9z"/><path d="m41 21v-1.3h-1.3v.4h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.5v.9z"/><path d="m36.9 43h6.1v.3h-6.1z"/><path d="m45.4 44.9h-.6v-2h-.4v2h-.6v-2h-.3v1h-1.9v1.3h1.4v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3z"/><path d="m39.7 44.3h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.5v.9h2.2v-1.3h-1.3z"/><path d="m37.8 44.9h.5v.3h-.5z"/><path d="m50.4 21v-1.3h-1.4v.4h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.6v.9z"/><path d="m47.2 20.7h.5v.3h-.5z"/><path d="m46.2 18.8h6.1v.3h-6.1z"/><path d="m51 21h1.3v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3v2h-.6v-2h-.3v2h-.6v-2h-.4v1h-1.8z"/><path d="m47.2 44.9h.5v.3h-.5z"/><path d="m49 44.3h1v.6h-1.5v-1h-2.2v1.4h.3v-1h1.6v.9h2.2v-1.3h-1.4z"/><path d="m46.2 43h6.1v.3h-6.1z"/><path d="m54.7 44.9h-.6v-2h-.3v2h-.6v-2h-.4v1h-1.8v1.3h1.3v-.3h-1v-.6h1.5v.9h2.2v-2.3h-.3z"/><path d="m55.6 19.1h3.5c-.1-.1-.1-.2-.2-.3h-3.4c.1 0 .1.3.1.3"/><path d="m58.4 20.1h1v.6h-1.5v-.9h-2.2v1.3h.3v-1h1.5v.9h2.2v-.5c-.1-.2-.2-.5-.3-.7h-1v.3"/><path d="m56.5 20.7h.5v.3h-.5z"/><path d="m56.5 44.9h.5v.3h-.5z"/><path d="m55.6 43v.3h4.2c0-.1.1-.2.1-.3h-4.3"/><path d="m58.4 44.3h1c.1-.1.1-.2.2-.4h-1.2v.4"/><path d="m57.8 44.9v-.9h-2.2v1.3h.4v-1h1.5v.9h1.4c.1-.1.1-.2.2-.3 0 0-1.3 0-1.3 0"/></g><g fill="#ed4c5c"><path d="m36.5 33.9c.9-2.6 0-5.5-2-7.3 2.3 3.4 1.4 7.9-1.8 10.3l.2-5.6v-4.4c-.4-.2-.7-.4-.9-.7-.2.3-.5.6-.9.7v4.4l.2 5.6c-3.3-2.4-4.1-6.9-1.8-10.3-2.1 1.8-2.9 4.7-2 7.3.6 1.8 1.8 3.1 3.3 3.9-.9.3-1.9.5-2.9.5 1.2.4 2.4.4 3.5.2v.2l.6.8.6-.8v-.2c1.1.2 2.3.2 3.5-.2-1 0-2-.1-2.9-.5 1.5-.8 2.7-2.2 3.3-3.9"/><path d="m38.7 29.1c-.8-1.3-2.1-2.3-3.6-2.7 3.3 2.5 4 7.2 1.5 10.5 2.8-1.5 3.7-5 2.1-7.8"/><path d="m28.8 26.4c-1.5.4-2.8 1.3-3.6 2.7-1.6 2.7-.6 6.2 2.1 7.8-2.4-3.3-1.8-8 1.5-10.5"/><path d="m30.5 26c.5.3 1.2.2 1.5-.3.3.5 1 .6 1.5.3.4-.3.6-.8.4-1.3-.1.6-.6.9-1.2.8-.3-.1-.5-.2-.7-.5-.1.3-.4.4-.7.5-.6.1-1.1-.3-1.2-.8-.2.5 0 1 .4 1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f8.svg
index f3b95fa..485bbd0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.721 28c-.137-1.016-.315-2.02-.551-3h-58.34c-.235.981-.414 1.984-.551 3h59.44"/><path d="m2.279 36c.137 1.016.315 2.02.551 3h58.34c.235-.982.414-1.984.551-3h-59.44"/><path d="m20 4.489c-1.03.45-2.033.952-3 1.513v51.997c.967.561 1.97 1.063 3 1.512v-55.02"/><path d="m28 2.262v59.47c.986.133 1.984.23 3 .264v-60c-1.016.033-2.01.13-3 .262"/></g><g fill="#ed4c5c"><path d="m2 32c0 1.358.099 2.69.273 4h59.45c.175-1.311.274-2.643.274-4 0-1.357-.099-2.69-.273-4h-59.45c-.174 1.309-.273 2.642-.273 4"/><path d="m20 59.5c2.507 1.096 5.191 1.855 8 2.23v-59.45c-2.809.375-5.493 1.135-8 2.23v54.993"/></g><g fill="#2a5f9e"><path d="M17,25V6.023C9.982,10.083,4.766,16.902,2.83,25H17z"/><path d="M17,39.023V58C9.982,53.939,4.766,47.121,2.83,39.023H17z"/><path d="M32,2c-0.336,0-0.667,0.015-1,0.025V25h30.17C58.016,11.809,46.157,2,32,2z"/><path d="m31 39v22.975c.333.009.664.025 1 .025 14.157 0 26.02-9.811 29.17-23h-30.17"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.7 28c-.1-1-.3-2-.6-3h-58.3c-.2 1-.4 2-.6 3h59.5"/><path d="m2.3 36c.1 1 .3 2 .6 3h58.3c.2-1 .4-2 .6-3h-59.5"/><path d="m20 4.5c-1 .4-2 1-3 1.5v52c1 .6 2 1.1 3 1.5v-55"/><path d="m28 2.3v59.5c1 .1 2 .2 3 .3v-60.1c-1 0-2 .1-3 .3"/></g><g fill="#ed4c5c"><path d="m2 32c0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4 0-1.4-.1-2.7-.3-4h-59.5c-.2 1.3-.3 2.6-.3 4"/><path d="m20 59.5c2.5 1.1 5.2 1.9 8 2.2v-59.4c-2.8.4-5.5 1.1-8 2.2v55"/></g><g fill="#2a5f9e"><path d="M17,25V6C10,10.1,4.8,16.9,2.8,25H17z"/><path d="M17,39v19C10,53.9,4.8,47.1,2.8,39H17z"/><path d="M32,2c-0.3,0-0.7,0-1,0v23h30.2C58,11.8,46.2,2,32,2z"/><path d="m31 39v23c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f9.svg
index 8591cfd..f14b065 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#75a843" d="m1.701 32c0 13.06 8.35 24.17 20 28.28v-56.57c-11.65 4.119-20 15.226-20 28.29"/><path fill="#ed4c5c" d="m61.701 32c0-13.06-8.35-24.17-20-28.29v56.57c11.651-4.119 20-15.224 20-28.29"/><path fill="#fff" d="m21.701 60.28c3.129 1.107 6.492 1.715 10 1.715s6.871-.607 10-1.715v-56.57c-3.129-1.106-6.492-1.713-10-1.713s-6.871.607-10 1.713v56.57"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M1.7,32c0,13.1,8.4,24.2,20,28.3V3.7C10.1,7.8,1.7,18.9,1.7,32z" fill="#75a843"/><path d="m61.7 32c0-13.1-8.4-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="m21.7 60.3c3.1 1.1 6.5 1.7 10 1.7s6.9-.6 10-1.7v-56.6c-3.1-1.1-6.5-1.7-10-1.7s-6.9.6-10 1.7v56.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ee.svg
new file mode 100644
index 0000000..dc8d231
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ee.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m35 46.5h-6v-29h6v29" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1ea.svg
index 534d459..d71bf48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m55.23 13.02h-4.243v-4.243c-11.02-9.03-26.956-9.03-37.974 0v4.242h-4.241c-9.03 11.02-9.03 26.958-.002 37.973h4.244v4.244c11.02 9.02 26.956 9.02 37.974-.002v-4.242h4.242c9.03-11.02 9.03-26.955-.001-37.972"/><g fill="#ed4c5c"><path d="m32 27.759l-18.986-18.987c-.768.627-1.512 1.299-2.228 2.01-.716.717-1.388 1.461-2.02 2.229l18.987 18.986-18.987 18.986c.629.768 1.3 1.512 2.02 2.229.716.715 1.46 1.387 2.228 2.02l18.986-18.989 18.987 18.988c.768-.629 1.512-1.301 2.227-2.02.717-.717 1.389-1.461 2.02-2.229l-18.987-18.985 18.986-18.986c-.627-.768-1.299-1.512-2.02-2.229-.715-.715-1.459-1.387-2.228-2.01l-18.985 18.987"/><path d="m37.11 10.665c1.254 5.082.566 11.358-5.103 14.84-5.669-3.481-6.357-9.758-5.103-14.84 1.338-1.215 7.411-1.964 10.206 0"/></g><g fill="#ffe62e"><path d="m36.945 13.183c-.046-.127-.077-.177-.239-.12-.396.138-1.482.06-1.829-.179.52.215 1.183-.239 1.183-.615 0-.418-.514-.76-1.554-.532-1.04.226-2.308.13-2.308-.216 0-.347.909-.395 1.376-.322.466.072.8.12 1.673-.191-.215.083-.909.107-1.458-.048-.55-.154-1.901-.154-1.913.573-.012.729 1.438.662 2.69.478.729-.107 1.111-.035 1.111.204 0 .227-.669.322-1.184.263s-1.046-.067-1.649.132c-1.089.361-2.342.096-2.67-.427.023-.053.039-.12.039-.226 0-.003 0-.005 0-.009.077-.079.151-.231.184-.343.073-.261-.027-.269-.326-.149-.104-.103-.276-.165-.566-.165-.291 0-.464.063-.566.166-.302-.12-.402-.112-.328.148.031.112.107.269.186.347 0 .002 0 .004 0 .005.002.402.439.994.431 1.017-.569-.052-1.319-1.13-1.454-1.569-.061-.199-.294-.324-.423-.277-.112.042-.155.14-.058.213s.221.084.248.271c-.127-.152-.314-.207-.406-.113-.055.059-.032.191.086.204.173.018.082.17.215.333-.17-.159-.314-.165-.408-.059-.063.072 0 .198.134.185.194-.02.812.896 2.317 1.734-.021.116-.264.094-.452.102-.353.016-.824-.038-1.07-.316-.218-.248-.509-.446-.74-.262-.12.094-.005.218.09.184.093-.035.204.034.304.078-.16-.068-.335-.016-.404.047-.094.083.021.246.135.188.09-.044.273-.074.393.035-.129-.025-.264-.02-.328.05s-.014.171.125.163c.224-.009 1.83 1.012 3.139-.166.191.007 1.522-.043 2.039-.36.344.394.398.35.7.408.311.06.501.06.293.233-.071.061-.37.031-.604.042-.521.022-.759-.361-.913-.162-.116.15-.016.224.201.229-.167 0-.351.009-.314.157.068.281.337-.053.44.063-.088-.021-.229.035-.233.118-.005.086.199.195.423.017.123-.098.274-.135.373-.135.367.002 1.193.189 1.465-.113.105-.117-.03-.215-.138-.322-.104-.104-.13-.247-.109-.484.309.055.706.065 1.264-.036.664-.121.872.102.872.406 0 .21-.123.228-.215.234-.37.021-.528-.14-.674-.087-.099.033-.158.193-.017.248-.116.061-.103.171-.042.213.06.041.213.003.318-.045-.135.061-.273.169-.195.285.049.068.171.127.285-.021.113-.148.326-.24.455-.253.551-.06.801-.896.6-1.451"/><path d="m36.675 17.601c-.043-.12-.072-.168-.227-.113-.374.13-1.4.057-1.729-.17.492.204 1.119-.227 1.119-.581 0-.396-.486-.718-1.47-.504-.983.216-2.181.124-2.181-.204 0-.327.858-.371 1.3-.304.44.067.757.111 1.582-.182-.203.08-.859.102-1.378-.045-.521-.147-1.797-.147-1.81.542-.011.69 1.36.627 2.543.453.689-.103 1.052-.035 1.052.191 0 .215-.633.305-1.119.249-.486-.058-.989-.064-1.561.125-1.028.34-2.213.089-2.523-.405.023-.05.037-.112.037-.211 0-.004 0-.006 0-.01.073-.074.144-.22.174-.324.069-.246-.025-.254-.309-.142-.098-.097-.262-.157-.535-.157-.275 0-.438.061-.535.159-.285-.114-.381-.106-.311.14.029.105.102.254.175.328 0 .002 0 .002 0 .006.003.377.416.938.408.96-.538-.051-1.248-1.068-1.374-1.485-.059-.188-.278-.306-.4-.26-.107.039-.146.131-.055.2s.209.079.234.255c-.119-.144-.298-.195-.383-.104-.053.054-.032.18.08.191.163.017.078.161.203.315-.16-.152-.298-.158-.387-.057-.059.067 0 .188.127.175.184-.019.768.847 2.191 1.641-.021.109-.25.087-.428.095-.334.017-.779-.035-1.012-.298-.207-.235-.48-.423-.7-.249-.112.09-.005.207.085.174.088-.033.192.033.287.075-.15-.066-.316-.016-.381.041-.09.081.019.234.127.181.084-.044.258-.07.371.032-.123-.023-.25-.02-.311.046-.061.067-.014.161.117.155.212-.009 1.73.956 2.967-.157.182.008 1.439-.041 1.93-.34.324.371.375.331.66.385.295.057.475.057.277.222-.067.056-.35.03-.57.039-.493.021-.719-.341-.864-.153-.11.143-.015.211.19.217-.158 0-.332.009-.297.148.064.265.318-.05.417.059-.085-.02-.216.032-.222.113-.004.08.188.183.4.015.115-.093.259-.128.352-.128.348.002 1.129.179 1.385-.107.1-.11-.028-.202-.129-.304-.1-.1-.123-.235-.104-.457.292.051.668.061 1.194-.035.628-.115.825.096.825.384 0 .197-.116.215-.204.221-.35.021-.499-.131-.637-.082-.092.032-.148.184-.015.234-.11.058-.097.162-.04.201.056.039.201.004.301-.042-.127.057-.259.161-.184.27.045.064.16.12.268-.02.108-.141.309-.228.432-.239.528-.053.764-.844.575-1.368"/><path d="m35.433 21.42c-.032-.087-.054-.122-.167-.083-.274.096-1.027.042-1.268-.124.36.149.82-.167.82-.428 0-.29-.356-.525-1.077-.368-.723.157-1.601.091-1.601-.15 0-.239.63-.272.954-.224.322.05.555.083 1.16-.133-.149.059-.631.075-1.012-.033-.382-.108-1.318-.108-1.326.398-.009.505.997.461 1.865.331.506-.074.771-.023.771.142 0 .157-.464.226-.82.183-.356-.042-.726-.048-1.144.092-.756.25-1.625.066-1.854-.297.018-.036.028-.082.028-.156 0-.002 0-.004 0-.006.054-.056.104-.162.126-.238.052-.18-.018-.186-.226-.104-.071-.072-.191-.115-.392-.115-.203 0-.322.043-.395.115-.209-.082-.278-.078-.227.104.021.078.074.186.128.24 0 .001 0 .002 0 .004.003.278.306.689.3.705-.396-.037-.916-.783-1.01-1.088-.043-.139-.205-.226-.294-.192-.079.028-.107.097-.04.146.066.052.153.059.172.188-.088-.104-.219-.142-.281-.078-.039.041-.023.134.059.143.119.012.057.117.148.229-.117-.109-.218-.114-.282-.04-.043.049 0 .138.093.129.135-.014.563.62 1.607 1.203-.016.08-.184.063-.314.069-.244.012-.571-.026-.742-.22-.15-.172-.352-.309-.514-.183-.082.066-.002.152.063.129.065-.023.143.023.211.054-.111-.048-.232-.011-.279.032-.065.059.014.17.094.13.061-.029.189-.051.271.025-.09-.018-.184-.014-.228.034s-.011.117.086.113c.155-.007 1.27.701 2.177-.114.134.005 1.057-.031 1.416-.251.238.271.275.243.484.284.216.04.348.04.203.159-.05.043-.257.023-.418.031-.362.015-.527-.251-.635-.112-.08.104-.01.153.141.157-.116.002-.244.007-.219.109.047.195.233-.036.307.045-.063-.016-.159.022-.162.081-.004.06.137.135.293.012.084-.067.189-.095.258-.093.256 0 .828.131 1.016-.08.074-.08-.02-.15-.095-.223-.072-.072-.09-.172-.076-.336.214.038.49.045.876-.025.461-.084.605.07.605.281 0 .146-.085.158-.149.162-.256.017-.366-.096-.468-.06-.068.023-.109.135-.01.172-.082.042-.072.119-.029.147.041.028.147.003.22-.03-.093.042-.19.117-.134.196.032.048.117.09.196-.014s.226-.166.315-.176c.387-.035.561-.615.423-1"/><path d="m31.999 9.646c2.079 0 4.01.55 5.156 1.264.223-1.754 1.018-3.506 1.955-4.829-.979-.021-1.416.499-1.426 1.038-.245-.692-1.203-.651-1.498-.275 1.07.725.244 2.01-.723 1.743-.455-.124-.695-.442-.78-.902.29-.018.51-.269.491-.558-.018-.291-.268-.509-.558-.491s-.511.268-.491.557c.013.206.143.383.334.458-.307.499-.855.649-1.248.539-.51-.144-.723-.601-.723-1.01 0-1.06 1.018-1.224 1.324-1.041-.02-.712-1.141-1.282-1.487-.692.389-.694.367-1.671-.325-2.323-.692.652-.713 1.629-.325 2.321-.347-.59-1.467-.02-1.488.692.307-.183 1.325-.019 1.325 1.041 0 .407-.214.864-.724 1.01-.394.11-.941-.04-1.248-.539.271-.105.404-.41.299-.681-.105-.271-.41-.404-.681-.3-.271.106-.405.411-.299.682.074.191.253.321.457.333-.086.46-.326.778-.78.902-.968.264-1.793-1.019-.723-1.743-.296-.376-1.253-.417-1.498.275-.01-.539-.448-1.06-1.426-1.038.936 1.323 1.73 3.075 1.955 4.829 1.141-.713 3.078-1.262 5.155-1.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.2 13h-4.2v-4.2c-11-9-27-9-38 0v4.2h-4.2c-9 11-9 27 0 38h4.2v4.2c11 9 27 9 38 0v-4.2h4.2c9.1-11 9.1-27 0-38" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="m32 27.8l-19-19c-.8.6-1.5 1.3-2.2 2-.7.7-1.4 1.5-2 2.2l19 19-19 19c.6.8 1.3 1.5 2 2.2.7.7 1.5 1.4 2.2 2l19-19 19 19c.8-.6 1.5-1.3 2.2-2 .7-.7 1.4-1.5 2-2.2l-19-19 19-19c-.6-.8-1.3-1.5-2-2.2-.7-.7-1.5-1.4-2.2-2l-19 19"/><path d="m37.1 10.7c1.3 5.1.6 11.4-5.1 14.8-5.7-3.5-6.4-9.8-5.1-14.8 1.3-1.3 7.4-2 10.2 0"/></g><g fill="#ffe62e"><path d="m36.9 13.2c0-.1-.1-.2-.2-.1-.4.1-1.5.1-1.8-.2.5.2 1.2-.2 1.2-.6 0-.4-.5-.8-1.6-.5-1 .2-2.3.1-2.3-.2 0-.3.9-.4 1.4-.3.5.1.8.1 1.7-.2-.2.1-.9.1-1.5 0-.5-.2-1.9-.2-1.9.6 0 .7 1.4.7 2.7.5.7-.1 1.1 0 1.1.2 0 .2-.7.3-1.2.3s-1-.1-1.6.1c-1.1.4-2.3.1-2.7-.4 0-.1 0-.1 0-.2.1-.1.2-.2.2-.3.1-.3 0-.3-.3-.1-.1-.1-.3-.2-.6-.2-.3 0-.5.1-.6.2-.3-.1-.4-.1-.3.1 0 .1.1.3.2.3 0 .4.4 1 .4 1-.6-.1-1.3-1.1-1.5-1.6-.1-.2-.3-.3-.4-.3-.1 0-.2.1-.1.2s.2.1.2.3c-.1-.2-.3-.2-.4-.1-.1.1 0 .2.1.2.2 0 .1.2.2.3-.2-.2-.3-.2-.4-.1-.1.1 0 .2.1.2.2 0 .8.9 2.3 1.7 0 .1-.3.1-.5.1-.4 0-.8 0-1.1-.3-.2-.2-.5-.4-.7-.3-.1.1 0 .2.1.2.1 0 .2 0 .3.1-.2-.1-.3 0-.4 0-.1.1 0 .2.1.2.1 0 .3-.1.4 0-.1 0-.3 0-.3.1s0 .2.1.2c.2 0 1.8 1 3.1-.2.2 0 1.5 0 2-.4.3.4.4.4.7.4.3.1.5.1.3.2-.1.1-.4 0-.6 0-.5 0-.8-.4-.9-.2-.1.1 0 .2.2.2-.2 0-.4 0-.3.2.1.3.3-.1.4.1-.1 0-.2 0-.2.1 0 .1.2.2.4 0 .1-.1.3-.1.4-.1.4 0 1.2.2 1.5-.1.1-.1 0-.2-.1-.3-.1-.1-.1-.2-.1-.5.3.1.7.1 1.3 0 .7-.1.9.1.9.4 0 .2-.1.2-.2.2-.4 0-.5-.1-.7-.1-.1 0-.2.2 0 .2-.1.1-.1.2 0 .2.1 0 .2 0 .3 0-.1.1-.3.2-.2.3 0 .1.2.1.3 0 .1-.1.3-.2.5-.3.6 0 .8-.9.6-1.4"/><path d="m36.7 17.6c0-.1-.1-.2-.2-.1-.4.1-1.4.1-1.7-.2.5.2 1.1-.2 1.1-.6 0-.4-.5-.7-1.5-.5-1 .2-2.2.1-2.2-.2 0-.3.9-.4 1.3-.3.4.1.8.1 1.6-.2-.2.1-.9.1-1.4 0-.5-.1-1.8-.1-1.8.5 0 .7 1.4.6 2.5.5.7-.1 1.1 0 1.1.2 0 .2-.6.3-1.1.2-.5-.1-1-.1-1.6.1-1 .3-2.2.1-2.5-.4 0 0 0-.1 0-.2.1-.1.1-.2.2-.3.1-.2 0-.3-.3-.1-.1-.1-.3-.2-.5-.2-.3 0-.4.1-.5.2-.3-.1-.4-.1-.3.1 0 .1.1.3.2.3 0 .4.4.9.4 1-.5-.1-1.2-1.1-1.4-1.5-.1-.2-.3-.3-.4-.3-.1 0-.1.1-.1.2s.2.1.2.3c-.1-.1-.3-.2-.4-.1-.1.1 0 .2.1.2.2 0 .1.2.2.3-.2-.2-.3-.2-.4-.1-.1.1 0 .2.1.2.2 0 .8.8 2.2 1.6 0 .1-.2.1-.4.1-.3 0-.8 0-1-.3-.2-.2-.5-.4-.7-.2-.1.1 0 .2.1.2.1 0 .2 0 .3.1-.1-.1-.3 0-.4 0-.1.1 0 .2.1.2.1 0 .3-.1.4 0-.1 0-.2 0-.3 0-.1.1 0 .2.1.2.2 0 1.7 1 3-.2.2 0 1.4 0 1.9-.3.3.4.4.3.7.4.3.1.5.1.3.2-.1.1-.3 0-.6 0-.5 0-.7-.3-.9-.2-.1.1 0 .2.2.2-.2 0-.3 0-.3.1.1.3.3 0 .4.1-.1 0-.2 0-.2.1 0 .1.2.2.4 0 .1-.1.3-.1.4-.1.3 0 1.1.2 1.4-.1.1-.1 0-.2-.1-.3-.1-.1-.1-.2-.1-.5.3.1.7.1 1.2 0 .6-.1.8.1.8.4 0 .2-.1.2-.2.2-.3 0-.5-.1-.6-.1-.1 0-.1.2 0 .2-.1.1-.1.2 0 .2.1 0 .2 0 .3 0-.1.1-.3.2-.2.3 0 .1.2.1.3 0 .1-.1.3-.2.4-.2.3 0 .6-.8.4-1.3"/><path d="m35.4 21.4c0-.1-.1-.1-.2-.1-.3.1-1 0-1.3-.1.4.1.8-.2.8-.4 0-.3-.4-.5-1.1-.4-.7.2-1.6.1-1.6-.1 0-.2.6-.3 1-.2.3 0 .6.1 1.2-.1-.1.1-.6.1-1 0-.4-.1-1.3-.1-1.3.4 0 .5 1 .5 1.9.3.5-.1.8 0 .8.1 0 .2-.5.2-.8.2-.4 0-.7 0-1.1.1-.8.2-1.6.1-1.9-.3 0 0 0-.1 0-.2.1-.1.1-.2.1-.2.1-.2 0-.2-.2-.1-.1-.1-.2-.1-.4-.1-.2 0-.3 0-.4.1-.2-.1-.3-.1-.2.1 0 .1.1.2.1.2 0 .3.3.7.3.7-.4 0-.9-.8-1-1.1 0-.1-.2-.2-.3-.2-.1 0-.1.1 0 .1.1.1.2.1.2.2-.1-.1-.2-.1-.3-.1 0 0 0 .1.1.1.1 0 .1.1.1.2-.1-.1-.2-.1-.3 0 0 0 0 .1.1.1.1 0 .6.6 1.6 1.2 0 .1-.2.1-.3.1-.2 0-.6 0-.7-.2-.1-.2-.4-.3-.5-.2-.1.1 0 .2.1.1s.1 0 .2.1c-.1 0-.2 0-.3 0-.1.1 0 .2.1.1.1 0 .2-.1.3 0-.1 0-.2 0-.2 0s0 .1.1.1c.2 0 1.3.7 2.2-.1.1 0 1.1 0 1.4-.3 0 .5.1.5.3.5.2 0 .3 0 .2.2 0 0-.3 0-.4 0-.4 0-.5-.3-.6-.1-.1.1 0 .2.1.2-.1 0-.2 0-.2.1 0 .2.2 0 .3 0-.1 0-.2 0-.2.1 0 .1.1.1.3 0 .1-.1.2-.1.3-.1.3 0 .8.1 1-.1.1-.1 0-.1-.1-.2-.1-.1-.1-.2-.1-.3.2 0 .5 0 .9 0 .5-.1.6.1.6.3 0 .1-.1.2-.1.2-.3 0-.4-.1-.5-.1-.1 0-.1.1 0 .2-.1 0-.1.1 0 .1 0 0 .1 0 .2 0-.1 0-.2.1-.1.2 0 0 .1.1.2 0s.2-.2.3-.2c.3-.1.5-.7.3-1.1"/><path d="m32 9.6c2.1 0 4 .6 5.2 1.3.2-1.8 1-3.5 2-4.8-1 0-1.4.5-1.4 1-.2-.7-1.2-.7-1.5-.3 1.1.7.2 2-.7 1.7-.5-.1-.7-.4-.8-.9.3 0 .5-.3.5-.6 0-.3-.3-.5-.6-.5s-.5.3-.5.6c0 .2.1.4.3.5-.3.5-.9.6-1.2.5-.5-.1-.7-.6-.7-1 0-1.1 1-1.2 1.3-1 0-.7-1.1-1.3-1.5-.7.4-.7.4-1.7-.3-2.3-.7.7-.7 1.6-.3 2.3-.3-.6-1.5 0-1.5.7.3-.2 1.3 0 1.3 1 0 .4-.2.9-.7 1-.4.1-.9 0-1.2-.5.3-.1.4-.4.3-.7-.1-.3-.4-.4-.7-.3-.3.1-.4.4-.3.7.1.2.3.3.5.3-.1.5-.3.8-.8.9-1 .3-1.8-1-.7-1.7-.3-.4-1.3-.4-1.5.3 0-.5-.4-1.1-1.4-1 .9 1.3 1.7 3.1 2 4.8.9-.7 2.8-1.3 4.9-1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f2.svg
index ccec0d7..810f5ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f2.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="m53.13 10.699c-11.695-11.6-30.561-11.6-42.26 0l21.13 16.254 21.13-16.254"/><path d="m10.871 53.3c11.695 11.599 30.561 11.599 42.26 0l-21.13-16.254-21.13 16.254"/></g><g fill="#3e4347"><path d="M58.01,46.962c5.32-9.233,5.32-20.689,0-29.924L38.561,32L58.01,46.962z"/><path d="M5.988,17.038c-5.318,9.234-5.318,20.69,0,29.924L25.438,32L5.988,17.038z"/></g><path fill="#ffe62e" d="m53.13 10.699l-21.13 16.253-21.13-16.253c-1.895 1.88-3.535 4.01-4.879 6.342l19.446 14.959-19.444 14.959c1.344 2.329 2.982 4.463 4.879 6.342l21.13-16.254 21.13 16.254c1.896-1.879 3.537-4.01 4.881-6.342l-19.445-14.959 19.445-14.959c-1.342-2.328-2.983-4.462-4.879-6.342"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="M53.1,10.7c-11.7-11.6-30.6-11.6-42.3,0L32,27L53.1,10.7z"/><path d="M10.9,53.3c11.7,11.6,30.6,11.6,42.3,0L32,37L10.9,53.3z"/></g><g fill="#3e4347"><path d="M58,47c5.3-9.2,5.3-20.7,0-29.9L38.6,32L58,47z"/><path d="M6,17C0.7,26.3,0.7,37.7,6,47l19.5-15L6,17z"/></g><path d="M53.1,10.7L32,27L10.9,10.7C9,12.6,7.3,14.7,6,17l19.4,15L6,47c1.3,2.3,3,4.5,4.9,6.3L32,37l21.1,16.3
+ c1.9-1.9,3.5-4,4.9-6.3L38.6,32L58,17C56.7,14.7,55,12.6,53.1,10.7z" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f4.svg
index f6337e7..2acfb9a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M8,22h52.285C56.166,10.35,45.061,2,32,2C22.183,2,13.472,6.719,8,14.01V22z"/><path fill="#f9f9f9" d="M60.285,22H8v20h52.285C61.393,38.871,62,35.508,62,32S61.393,25.129,60.285,22z"/><path fill="#75a843" d="M8,42v7.99C13.472,57.281,22.183,62,32,62c13.06,0,24.166-8.35,28.285-20H8z"/><path fill="#c94747" d="m8 14c-3.767 5.02-6 11.246-6 18s2.233 12.986 6 18l24-18-24-18"/><path fill="#fff" d="m11.04 29.691l.96-2.691.957 2.691 2.579-1.226-1.226 2.585 2.69.95-2.69.957 1.225 2.58-2.578-1.227-.957 2.69-.96-2.69-2.575 1.227 1.225-2.58-2.69-.957 2.69-.95-1.224-2.585z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M8,22h52.3C56.2,10.4,45.1,2,32,2C22.2,2,13.5,6.7,8,14V22z" fill="#3e4347"/><path d="m60.3 22h-52.3v20h52.3c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><path d="M8,42v8c5.5,7.3,14.2,12,24,12c13.1,0,24.2-8.3,28.3-20H8z" fill="#75a843"/><path d="m8 14c-3.8 5-6 11.2-6 18s2.2 13 6 18l24-18-24-18" fill="#c94747"/><path fill="#fff" d="m11 29.7l1-2.7 1 2.7 2.5-1.2-1.2 2.5 2.7 1-2.7 1 1.2 2.5-2.5-1.2-1 2.7-1-2.7-2.5 1.2 1.2-2.5-2.7-1 2.7-1-1.2-2.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f5.svg
index c90b9d5..8ffa66b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ef-1f1f5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f5f5f5" cx="32" cy="32" r="30"/><circle fill="#ed4c5c" cx="32" cy="32" r="12"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f5f5f5"/><circle cx="32" cy="32" r="12" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ef.svg
new file mode 100644
index 0000000..249efde
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ef.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m28.6 35.2v.7c0 2.2.3 3.8.7 4.7.4.9 1.3 1.4 2.7 1.4 1.3 0 2.2-.5 2.7-1.5.3-.6.4-1.6.4-3v-20.4h6.1v20.2c0 2.5-.4 4.4-1.3 5.9-1.4 2.4-4 3.7-7.6 3.7s-6.2-1-7.4-3c-1.3-2-1.9-4.7-1.9-8.1v-.7h5.6z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ea.svg
index 611e521..65828fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M32,2C19.701,2,9.14,9.407,4.51,20h54.981C54.861,9.407,44.3,2,32,2z"/><path fill="#75a843" d="M32,62c12.3,0,22.861-7.407,27.491-18H4.51C9.14,54.593,19.701,62,32,62z"/><path fill="#c94747" d="m62 32c0-2.772-.385-5.452-1.09-8h-57.819c-.706 2.548-1.091 5.228-1.091 8s.385 5.452 1.091 8h57.819c.705-2.548 1.09-5.228 1.09-8"/><g fill="#fff"><path d="m3.714 42c.24.679.509 1.345.796 2h54.981c.286-.655.555-1.321.795-2 .232-.656.437-1.324.624-2h-57.819c.186.676.391 1.344.623 2"/><path d="m60.29 22c-.24-.679-.509-1.345-.795-2h-54.981c-.287.655-.556 1.321-.796 2-.231.656-.437 1.324-.623 2h57.819c-.187-.676-.391-1.344-.624-2"/><path d="m20.21 52.28l.714.413 19.277-33.39c1.128-.302 1.746-1.374 2.365-2.446.413-.715 2.064-3.574 2.78-7.289-2.861 2.478-4.511 5.336-4.924 6.05-.619 1.072-1.238 2.145-.936 3.271l-19.276 33.39"/><path d="m43.794 52.28l-.715.413-19.277-33.39c-1.127-.302-1.746-1.374-2.365-2.446-.413-.715-2.063-3.574-2.779-7.289 2.86 2.478 4.51 5.336 4.923 6.05.619 1.072 1.238 2.145.937 3.271l19.276 33.39"/></g><path fill="#c94747" d="m40 32c0 11.05-8 20-8 20s-8-8.955-8-20c0-11.05 8-20 8-20s8 8.953 8 20"/><g fill="#3e4347"><path d="m26.13 40c1.718-1.652 2.867-4.613 2.867-8 0-3.389-1.149-6.348-2.867-8-.715 2.344-1.133 5.072-1.133 8 0 2.926.418 5.656 1.133 8"/><path d="m37.867 24c-1.718 1.652-2.867 4.611-2.867 8 0 3.387 1.149 6.348 2.867 8 .715-2.344 1.133-5.074 1.133-8 0-2.928-.418-5.656-1.133-8"/></g><g fill="#fff"><ellipse cx="32" cy="32" rx="1.61" ry="2.413"/><path d="m31.433 12.747c-.575 1.741-.96 4.858-.96 8.428 0 3.568.385 6.688.96 8.428.239-2.469.379-5.346.379-8.428 0-3.084-.14-5.959-.379-8.428"/><path d="m32.567 12.747c.575 1.741.96 4.858.96 8.428 0 3.568-.385 6.688-.96 8.428-.239-2.469-.379-5.346-.379-8.428 0-3.084.14-5.959.379-8.428"/><path d="m31.433 34.413c-.575 1.741-.96 4.858-.96 8.428 0 3.568.385 6.688.96 8.428.239-2.469.379-5.346.379-8.428 0-3.084-.14-5.959-.379-8.428"/><path d="m32.567 34.413c.575 1.741.96 4.858.96 8.428 0 3.568-.385 6.688-.96 8.428-.239-2.469-.379-5.346-.379-8.428 0-3.084.14-5.959.379-8.428"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C19.7,2,9.1,9.4,4.5,20h55C54.9,9.4,44.3,2,32,2z" fill="#3e4347"/><path d="M32,62c12.3,0,22.9-7.4,27.5-18h-55C9.1,54.6,19.7,62,32,62z" fill="#75a843"/><path d="m62 32c0-2.8-.4-5.5-1.1-8h-57.8c-.7 2.5-1.1 5.2-1.1 8s.4 5.5 1.1 8h57.8c.7-2.5 1.1-5.2 1.1-8" fill="#c94747"/><g fill="#fff"><path d="m3.7 42c.2.7.5 1.3.8 2h55c.3-.7.6-1.3.8-2 .2-.7.4-1.3.6-2h-57.8c.2.7.4 1.3.6 2"/><path d="m60.3 22c-.2-.7-.5-1.3-.8-2h-55c-.3.7-.6 1.3-.8 2-.2.7-.4 1.3-.6 2h57.8c-.2-.7-.4-1.3-.6-2"/><path d="m20.2 52.3l.7.4 19.3-33.4c1.1-.3 1.7-1.4 2.4-2.4.4-.7 2.1-3.6 2.8-7.3-2.9 2.5-4.5 5.3-4.9 6.1-.6 1.1-1.2 2.1-.9 3.3l-19.4 33.3"/><path d="m43.8 52.3l-.7.4-19.3-33.4c-1.1-.3-1.7-1.4-2.4-2.4-.4-.7-2.1-3.6-2.8-7.3 2.9 2.5 4.5 5.3 4.9 6.1.6 1.1 1.2 2.1.9 3.3l19.4 33.3"/></g><path d="m40 32c0 11-8 20-8 20s-8-9-8-20c0-11 8-20 8-20s8 9 8 20" fill="#c94747"/><g fill="#3e4347"><path d="m26.1 40c1.7-1.7 2.9-4.6 2.9-8 0-3.4-1.1-6.3-2.9-8-.7 2.3-1.1 5.1-1.1 8 0 2.9.4 5.7 1.1 8"/><path d="m37.9 24c-1.7 1.7-2.9 4.6-2.9 8 0 3.4 1.1 6.3 2.9 8 .7-2.3 1.1-5.1 1.1-8 0-2.9-.4-5.7-1.1-8"/></g><g fill="#fff"><ellipse cx="32" cy="32" rx="1.6" ry="2.4"/><path d="m31.4 12.7c-.6 1.7-1 4.9-1 8.4 0 3.6.4 6.7 1 8.4.2-2.5.4-5.3.4-8.4 0-3-.1-5.9-.4-8.4"/><path d="m32.6 12.7c.6 1.7 1 4.9 1 8.4 0 3.6-.4 6.7-1 8.4-.2-2.5-.4-5.3-.4-8.4 0-3 .1-5.9.4-8.4"/><path d="m31.4 34.4c-.6 1.7-1 4.9-1 8.4 0 3.6.4 6.7 1 8.4.2-2.5.4-5.3.4-8.4 0-3-.1-5.9-.4-8.4"/><path d="m32.6 34.4c.6 1.7 1 4.9 1 8.4 0 3.6-.4 6.7-1 8.4-.2-2.5-.4-5.3-.4-8.4 0-3 .1-5.9.4-8.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ec.svg
index d32fdb1..c2b532f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f42f4c" cx="32" cy="32" r="30"/><g fill="#ffe62e"><path d="m49.73 34.3c-1.338-1.148-3.609-.936-5.219-.834 1.764-.938 4.563-2.656 6.488-1.113-1.402-1.926-4.482-1.297-6.412-.863 1.592-1.195 4.092-3.341 6.234-2.113-1.68-1.678-4.65-.593-6.477.158 1.389-1.43 3.521-3.949 5.834-3.07-1.928-1.396-4.668.148-6.367 1.162 1.141-1.629 2.863-4.445 5.277-3.938-2.139-1.084-4.564.89-6.105 2.141.881-1.793 2.125-4.824 4.596-4.713-2.266-.72-4.408 1.573-5.699 3.082.58-1.897 1.348-5.115 3.805-5.385-2.344-.363-4.115 2.246-5.148 3.936.281-1.97.531-5.258 2.916-5.914-2.367.006-3.717 2.861-4.467 4.691-.033-2-.299-5.273 1.953-6.297-2.336.382-3.223 3.404-3.678 5.332-.346-1.967-1.121-5.17.945-6.523-2.254.739-2.645 3.869-2.799 5.842-.646-1.89-1.92-4.932-.088-6.592-2.109 1.077-2.01 4.238-1.852 6.207-.934-1.761-2.665-4.568-1.117-6.494-1.919 1.39-1.316 4.504-.856 6.42-1.199-1.596-3.347-4.094-2.12-6.242-1.673 1.683-.599 4.646.159 6.475-1.434-1.392-3.946-3.516-3.071-5.832-1.392 1.917.136 4.689 1.171 6.371-1.633-1.147-4.446-2.863-3.945-5.283-1.069 2.107.86 4.615 2.151 6.107-1.791-.869-4.841-2.131-4.722-4.596-.731 2.249 1.578 4.421 3.082 5.695-1.896-.579-5.119-1.347-5.385-3.803-.365 2.338 2.245 4.12 3.935 5.145-1.966-.274-5.263-.529-5.914-2.912.001 2.369 2.866 3.713 4.691 4.465-1.993.031-5.281.304-6.296-1.951.375 2.342 3.411 3.215 5.333 3.676-1.97.348-5.168 1.123-6.525-.943.738 2.26 3.87 2.637 5.842 2.799-1.894.646-4.926 1.918-6.591.088 1.081 2.115 4.235 2 6.207 1.85-1.767.932-4.564 2.666-6.496 1.117 1.391 1.91 4.504 1.332 6.42.855-1.59 1.201-4.098 3.35-6.242 2.121 1.679 1.679 4.648.594 6.475-.158-1.388 1.432-3.521 3.949-5.833 3.07 1.921 1.393 4.684-.137 6.371-1.17-1.149 1.639-2.856 4.441-5.281 3.947 2.113 1.068 4.609-.863 6.108-2.152-.875 1.786-2.13 4.85-4.598 4.723 2.255.729 4.416-1.578 5.697-3.082-.581 1.896-1.346 5.118-3.803 5.385 2.337.375 4.121-2.254 5.145-3.936-.277 1.959-.528 5.271-2.913 5.914 2.366-.004 3.718-2.863 4.466-4.691.033 1.991.301 5.285-1.953 6.297 2.338-.369 3.221-3.412 3.678-5.33.343 1.967 1.124 5.168-.943 6.521 2.254-.728 2.643-3.878 2.797-5.842.646 1.889 1.92 4.932.088 6.592 2.111-1.077 2.01-4.238 1.85-6.207.936 1.764 2.665 4.566 1.119 6.496 1.917-1.39 1.32-4.504.855-6.42 1.2 1.596 3.348 4.094 2.122 6.242 1.67-1.683.602-4.648-.16-6.477 1.434 1.391 3.945 3.52 3.072 5.834 1.391-1.918-.137-4.688-1.17-6.371 1.633 1.146 4.447 2.86 3.945 5.281 1.078-2.128-.883-4.58-2.143-6.105 1.789.875 4.832 2.129 4.713 4.594.732-2.254-1.582-4.415-3.082-5.697 1.9.58 5.113 1.348 5.385 3.803.371-2.37-2.26-4.066-3.924-5.145 1.965.287 5.25.527 5.902 2.914-.004-2.38-2.861-3.689-4.682-4.467 1.996-.031 5.27-.299 6.287 1.953-.377-2.357-3.406-3.184-5.322-3.68 1.969-.341 5.16-1.121 6.514.947-.732-2.25-3.873-2.652-5.842-2.799 1.891-.655 4.93-1.914 6.592-.088-.216-.423-.589-.758-.98-1.02m-17.73 9.701c-4.473 0-8.664-2.57-10.696-6.556-2.059-4.04-1.621-9.04 1.104-12.657 2.717-3.607 7.338-5.406 11.78-4.588 4.359.802 8.01 4.069 9.297 8.312 2.302 7.591-3.557 15.489-11.485 15.489"/><path d="m24.843 25.02c-1.757 1.801-2.843 4.26-2.843 6.977 0 2.023.605 3.902 1.638 5.477.837-3.682 2.471-7.07 4.736-9.936-1.067-.975-2.258-1.812-3.531-2.518"/><path d="m31.28 24.432c-.822-.678-1.703-1.285-2.611-1.852-.416.148-.819.318-1.208.518 1.046.635 2.04 1.35 2.965 2.143.278-.276.563-.546.854-.809"/><path d="m29.763 25.926c-1.01-.859-2.098-1.617-3.252-2.281-.329.217-.645.451-.945.705 1.221.703 2.37 1.52 3.407 2.461.257-.301.519-.596.79-.885"/><path d="m29.07 28.18c-2.317 2.955-3.948 6.465-4.682 10.291.464.545.986 1.033 1.555 1.469.381-3.988 1.815-7.674 4.03-10.766-.291-.34-.588-.676-.903-.994"/><path d="m34.03 29.18c2.217 3.092 3.65 6.777 4.03 10.764.568-.434 1.09-.924 1.553-1.467-.734-3.826-2.365-7.336-4.682-10.291-.314.318-.611.654-.902.994"/><path d="m31.18 29.16c.284.359.566.723.824 1.102.258-.379.539-.74.823-1.1-.266-.346-.538-.684-.823-1.014-.286.329-.558.668-.824 1.012"/><path d="m34.13 22.23c-.688-.148-1.399-.232-2.131-.232-.731 0-1.443.084-2.13.232.735.492 1.452 1.01 2.13 1.576.677-.566 1.396-1.083 2.131-1.576"/><path d="m31.45 31.16c-.27-.416-.56-.818-.86-1.211-2.128 3.051-3.478 6.68-3.756 10.602.578.35 1.191.641 1.838.869-.001-.102-.01-.203-.01-.307 0-3.642 1.03-7.04 2.788-9.953"/><path d="m32 26.734c.281-.295.572-.582.87-.861-.284-.279-.575-.553-.872-.816-.297.264-.587.535-.87.814.299.279.589.568.872.863"/><path d="m33.455 28.41c.285-.326.568-.656.875-.965-.256-.301-.52-.596-.789-.885-.307.285-.604.576-.893.879.278.315.547.639.807.971"/><path d="m30.46 26.561c-.27.289-.533.582-.789.885.307.307.59.637.877.965.26-.332.527-.656.805-.971-.288-.303-.587-.594-.893-.879"/><path d="m32 32.07c-1.519 2.676-2.396 5.758-2.396 9.05 0 .199.013.395.02.59.761.188 1.554.297 2.375.297.821 0 1.616-.109 2.379-.297.006-.197.02-.393.02-.59-.001-3.289-.879-6.371-2.398-9.05"/><path d="m32.552 31.16c1.758 2.912 2.79 6.311 2.79 9.953 0 .104-.01.203-.01.307.645-.229 1.26-.521 1.836-.871-.277-3.922-1.629-7.549-3.756-10.6-.301.393-.59.795-.86 1.211"/><path d="m33.576 25.24c.924-.795 1.918-1.508 2.965-2.145-.389-.199-.793-.369-1.209-.518-.908.566-1.789 1.174-2.612 1.852.292.264.577.534.856.811"/><path d="m40.36 37.477c1.034-1.575 1.639-3.454 1.639-5.477 0-2.715-1.086-5.176-2.842-6.977-1.273.705-2.465 1.543-3.533 2.518 2.268 2.871 3.9 6.254 4.736 9.936"/><path d="m35.03 26.811c1.037-.941 2.186-1.758 3.406-2.461-.301-.252-.617-.486-.945-.703-1.154.662-2.246 1.42-3.252 2.279.27.289.533.584.791.885"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f42f4c"/><g fill="#ffe62e"><path d="m49.7 34.3c-1.3-1.1-3.6-.9-5.2-.8 1.8-.9 4.6-2.7 6.5-1.1-1.4-1.9-4.5-1.3-6.4-.9 1.6-1.2 4.1-3.3 6.2-2.1-1.7-1.7-4.7-.6-6.5.2 1.4-1.4 3.5-3.9 5.8-3.1-1.9-1.4-4.7.1-6.4 1.2 1.1-1.6 2.9-4.4 5.3-3.9-2.1-1.1-4.6.9-6.1 2.1.9-1.8 2.1-4.8 4.6-4.7-2.3-.7-4.4 1.6-5.7 3.1.6-1.9 1.3-5.1 3.8-5.4-2.3-.4-4.1 2.2-5.1 3.9.3-2 .5-5.3 2.9-5.9-2.4 0-3.7 2.9-4.5 4.7 0-2-.3-5.3 2-6.3-2.3.4-3.2 3.4-3.7 5.3-.3-2-1.1-5.2.9-6.5-2.3.7-2.6 3.9-2.8 5.8-.6-1.9-1.9-4.9-.1-6.6-2.1 1.1-2 4.2-1.9 6.2-.9-1.8-2.7-4.6-1.1-6.5-1.9 1.4-1.3 4.5-.9 6.4-1.2-1.6-3.3-4.1-2.1-6.2-1.7 1.7-.6 4.6.2 6.5-1.4-1.4-3.9-3.5-3.1-5.8-1.4 1.9.1 4.7 1.2 6.4-1.6-1.1-4.4-2.9-3.9-5.3-1.1 2.1.9 4.6 2.2 6.1-1.8-.9-4.8-2.1-4.7-4.6-.7 2.2 1.6 4.4 3.1 5.7-1.9-.6-5.1-1.3-5.4-3.8-.4 2.3 2.2 4.1 3.9 5.1-2-.3-5.3-.5-5.9-2.9 0 2.4 2.9 3.7 4.7 4.5-2 0-5.3.3-6.3-2 .4 2.3 3.4 3.2 5.3 3.7-2 .3-5.2 1.1-6.5-.9.7 2.3 3.9 2.6 5.8 2.8-1.9.6-4.9 1.9-6.6.1 1.1 2.1 4.2 2 6.2 1.9-1.8.9-4.6 2.7-6.5 1.1 1.4 1.9 4.5 1.3 6.4.9-1.6 1.2-4.1 3.3-6.2 2.1 1.7 1.7 4.6.6 6.5-.2-1.4 1.4-3.5 3.9-5.8 3.1 1.9 1.4 4.7-.1 6.4-1.2-1.1 1.6-2.9 4.4-5.3 3.9 2.1 1.1 4.6-.9 6.1-2.2-.9 1.8-2.1 4.8-4.6 4.7 2.3.7 4.4-1.6 5.7-3.1-.6 1.9-1.3 5.1-3.8 5.4 2.3.4 4.1-2.3 5.1-3.9-.3 2-.5 5.3-2.9 5.9 2.4 0 3.7-2.9 4.5-4.7 0 2 .3 5.3-2 6.3 2.3-.4 3.2-3.4 3.7-5.3.3 2 1.1 5.2-.9 6.5 2.3-.7 2.6-3.9 2.8-5.8.6 1.9 1.9 4.9.1 6.6 2.1-1.1 2-4.2 1.9-6.2.9 1.8 2.7 4.6 1.1 6.5 1.9-1.4 1.3-4.5.9-6.4 1.2 1.6 3.3 4.1 2.1 6.2 1.7-1.7.6-4.6-.2-6.5 1.4 1.4 3.9 3.5 3.1 5.8 1.4-1.9-.1-4.7-1.2-6.4 1.6 1.1 4.4 2.9 3.9 5.3 1.1-2.1-.9-4.6-2.1-6.1 1.8.9 4.8 2.1 4.7 4.6.7-2.3-1.6-4.4-3.1-5.7 1.9.6 5.1 1.3 5.4 3.8.4-2.4-2.3-4.1-3.9-5.1 2 .3 5.2.5 5.9 2.9 0-2.4-2.9-3.7-4.7-4.5 2 0 5.3-.3 6.3 2-.4-2.4-3.4-3.2-5.3-3.7 2-.3 5.2-1.1 6.5.9-.7-2.2-3.9-2.7-5.8-2.8 1.9-.7 4.9-1.9 6.6-.1-.3-.4-.7-.7-1.1-1m-17.7 9.7c-4.5 0-8.7-2.6-10.7-6.6-2.1-4-1.6-9 1.1-12.7 2.7-3.6 7.3-5.4 11.8-4.6 4.4.8 8 4.1 9.3 8.3 2.3 7.7-3.6 15.6-11.5 15.6"/><path d="m24.8 25c-1.8 1.8-2.8 4.3-2.8 7 0 2 .6 3.9 1.6 5.5.8-3.7 2.5-7.1 4.7-9.9-1-1-2.2-1.9-3.5-2.6"/><path d="m31.3 24.4c-.8-.7-1.7-1.3-2.6-1.9-.4.1-.8.3-1.2.5 1 .6 2 1.4 3 2.1.2-.1.5-.4.8-.7"/><path d="m29.8 25.9c-1-.9-2.1-1.6-3.3-2.3-.3.2-.6.5-.9.7 1.2.7 2.4 1.5 3.4 2.5.2-.3.5-.6.8-.9"/><path d="m29.1 28.2c-2.3 3-3.9 6.5-4.7 10.3.5.5 1 1 1.6 1.5.4-4 1.8-7.7 4-10.8-.3-.4-.6-.7-.9-1"/><path d="m34 29.2c2.2 3.1 3.7 6.8 4 10.8.6-.4 1.1-.9 1.6-1.5-.7-3.8-2.4-7.3-4.7-10.3-.3.3-.6.6-.9 1"/><path d="m31.2 29.2c.3.4.6.7.8 1.1.3-.4.5-.7.8-1.1-.3-.3-.5-.7-.8-1-.3.3-.6.6-.8 1"/><path d="m34.1 22.2c-.7-.1-1.4-.2-2.1-.2-.7 0-1.4.1-2.1.2.7.5 1.5 1 2.1 1.6.7-.6 1.4-1.1 2.1-1.6"/><path d="m31.5 31.2c-.3-.4-.6-.8-.9-1.2-2.1 3.1-3.5 6.7-3.8 10.6.6.3 1.2.6 1.8.9 0-.1 0-.2 0-.3.1-3.7 1.1-7.1 2.9-10"/><path d="m32 26.7c.3-.3.6-.6.9-.9-.3-.3-.6-.6-.9-.8-.3.3-.6.5-.9.8.3.3.6.6.9.9"/><path d="m33.5 28.4c.3-.3.6-.7.9-1-.3-.3-.5-.6-.8-.9-.3.3-.6.6-.9.9.2.4.5.7.8 1"/><path d="m30.5 26.6c-.3.3-.5.6-.8.9.3.3.6.6.9 1 .3-.3.5-.7.8-1-.3-.4-.6-.7-.9-.9"/><path d="m32 32.1c-1.5 2.7-2.4 5.8-2.4 9 0 .2 0 .4 0 .6.8.2 1.6.3 2.4.3s1.6-.1 2.4-.3c0-.2 0-.4 0-.6 0-3.3-.9-6.4-2.4-9"/><path d="m32.6 31.2c1.8 2.9 2.8 6.3 2.8 10 0 .1 0 .2 0 .3.6-.2 1.3-.5 1.8-.9-.3-3.9-1.6-7.5-3.8-10.6-.3.3-.6.7-.8 1.2"/><path d="m33.6 25.2c.9-.8 1.9-1.5 3-2.1-.4-.2-.8-.4-1.2-.5-.9.6-1.8 1.2-2.6 1.9.2.2.5.5.8.7"/><path d="m40.4 37.5c1-1.6 1.6-3.5 1.6-5.5 0-2.7-1.1-5.2-2.8-7-1.3.7-2.5 1.5-3.5 2.5 2.2 2.9 3.8 6.3 4.7 10"/><path d="m35 26.8c1-.9 2.2-1.8 3.4-2.5-.3-.3-.6-.5-.9-.7-1.2.7-2.2 1.4-3.3 2.3.3.3.6.6.8.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ed.svg
index 87071a3..a28e024 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ed.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M2,32c0,5.885,1.701,11.369,4.628,16h50.744C60.299,43.369,62,37.885,62,32s-1.701-11.368-4.628-16H6.628
- C3.701,20.632,2,26.115,2,32z"/><g fill="#2a5f9e"><path d="M57.372,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.628,16H57.372z"/><path d="M6.628,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.372-14H6.628z"/></g><path fill="#e2e2e2" d="m45.921 35.742h-.029v-3.067c.096-.391.414-.736.654-.805v-2.7-.188c-.342 0-.521.438-.537.487v-1.153c-.139-.087-.293-.077-.457-.008v.294h-.518v-1.348c-.177 0-.206.636-.612.636-.212 0-.19-.263-.07-.478.105-.191.235-.453.059-.942-.122.375-.449.492-.388.258.103-.403.402-.469.179-1.096-.079.523-.4.5-.322.195.089-.342.27-.482.046-.964-.126.548-.296.517-.296.176 0-.502.019-1.044-.605-1.244 0 0-.036-.46-.261-.46s-.262.46-.262.46c-.624.2-.605.742-.605 1.244 0 .34-.169.372-.294-.176-.226.482-.043.623.045.964.077.304-.243.328-.322-.195-.224.627.075.693.178 1.096.062.234-.265.116-.386-.258-.179.489-.047.751.058.942.119.215.141.478-.07.478-.407 0-.435-.636-.612-.636v2.37h-4.746l.008-2.144c-.313.13-.366.431-.366.431v.389h-.31c0 0-.214-.006-.214-.376 0-.37.128-.619.394-.607v-.75c0 0-.698.096-.698.938v-.715c-.218 0-.246.283-.246 1.018h-.204v-.831c.011-.415.396-.445.408-.748 0 0 .052-.455-.063-.662-.157.608-.441.496-.441.247 0-.218.161-.42.491-.95.105-.168.04-.699-.107-.888-.057.46-.123.681-.313.681-.116 0-.21-.078-.21-.31 0-.293.19-.441.284-.708.11-.312.033-.63-.147-.807-.078.455-.056.636-.248.636-.392-.129 0-.719.083-.868.073-.283-.129-.519-.129-.519-.125.403-.164.437-.299.399-.169-.047-.146-.309.06-.521.13-.132.117-.331-.023-.49-.146.299-.383.259-.348.077l.123-.637h-.33l.043-1.269h-.39c-.04-.265-.169-.633-.566-.639-.398.006-.524.374-.565.639h-.39l.042 1.269h-.329l.113.659c-.019.17-.196.187-.337-.099-.141.159-.154.358-.023.49.206.212.228.474.057.521-.132.038-.173.004-.296-.399 0 0-.226.346-.13.519.084.149.475.738.084.868-.194 0-.171-.182-.249-.636-.183.177-.257.495-.147.807.094.267.284.415.284.708 0 .231-.095.31-.211.31-.188 0-.255-.22-.313-.681-.147.189-.213.72-.108.888.331.53.491.732.491.95 0 .25-.282.361-.438-.247-.115.207-.066.662-.066.662.012.302.396.333.41.748v.831h-.201c0-.723 0-1.018-.268-1.018v.657c-.034-.787-.695-.879-.695-.879v.75c.265-.012.393.237.393.607 0 .37-.213.376-.213.376h-.356v-.388c0 0-.077-.301-.388-.431v2.144h-4.622v-2.37c-.179 0-.204.636-.612.636-.211 0-.188-.263-.07-.478.105-.191.236-.453.059-.942-.121.375-.447.492-.388.258.104-.403.402-.469.177-1.096-.076.523-.398.5-.319.195.087-.342.269-.482.045-.964-.125.548-.296.517-.296.176 0-.502.02-1.044-.605-1.244 0 0-.034-.46-.26-.46s-.262.46-.262.46c-.623.2-.605.742-.605 1.244 0 .34-.17.372-.296-.176-.224.482-.041.623.046.964.079.304-.244.328-.32-.195-.225.627.074.693.178 1.096.061.234-.267.116-.388-.258-.177.489-.047.751.059.942.118.215.142.478-.07.478-.407 0-.435-.636-.612-.636v1.348h-.462v-.294c-.184-.069-.358-.079-.514.008v1.153c-.015-.045-.192-.487-.535-.487v.188 2.699c.239.069.557.415.652.805v3.067c-.095.35-.384.664-.638.799h29.08c-.264-.136-.553-.45-.647-.8"/><g fill="#fff"><path d="m49.668 42.12v-1.87h-.931v-1.607h-.924v-1.207h-.553v-.936h-30.521v.936h-.551v1.207h-.925v1.607h-.93v1.87h-.933v1.88h37.2v-1.88z"/><path d="m22.831 36.541c-.25-.117-.612-.439-.612-.76v-3.297l.34-.504h.057v-1.014c-.173.07-.337.158-.469.257-.028-.1-.057-.197-.089-.292.119-.13.507-.559.595-.764v-.812c-.104.016-.207.06-.304.132.151-.207.297-.442.304-.576v-.811c-.231.033-.45.2-.622.533-.045-.209-.101-.397-.165-.57.108-.105.417-.414.439-.6v-.52c-.176.021-.341.068-.472.282-.017-.069-.036-.128-.057-.183l.324-.412v-.487c-.142.017-.221.076-.324.241-.03-.11-.072-.191-.122-.255h.038l.122-.274v-.381c-.096.01-.146.045-.218.143-.025-.083-.065-.156-.115-.222h.072l.261-.228v-.293c-.096.01-.146.044-.218.141-.06-.195-.191-.347-.37-.44-.177.093-.308.238-.367.433-.071-.097-.124-.124-.22-.133v.293l.261.228h.068c-.047.064-.086.134-.11.215-.07-.099-.123-.126-.219-.136v.381l.122.274h.034c-.049.062-.088.138-.116.244-.105-.166-.183-.213-.324-.23v.487l.324.413c-.021.054-.042.114-.059.183-.13-.214-.296-.261-.471-.282v.52c.046.185.337.492.44.599-.065.172-.119.36-.165.571-.172-.333-.391-.5-.622-.533v.811c.022.138.177.381.328.593-.104-.084-.216-.133-.328-.149v.812c.102.185.412.551.557.718-.039.106-.072.215-.103.329-.132-.095-.289-.179-.454-.247v1.014h.049l.34.504v3.297c0 .32-.361.643-.611.76h.471v7.455h2.307v-7.455h.473z"/><path d="m33.739 28.25v-.987c-.383.103-.619.398-.74.57 0-.171-.061-.373-.156-.574.055-.397.17-.632.402-.765h.149v-.855c-.309.081-.508.253-.597.488 0-.135-.09-.355-.23-.584l.332-.479h.37v-.855c-.281.081-.464.254-.544.489 0-.14-.088-.369-.222-.604l.46-.421v-.71c-.229.071-.487.1-.512.474-.033-.222-.078-.396-.134-.543l.521-.373v-.483c-.201.048-.422.068-.445.322-.023-.126-.056-.23-.094-.321l.29-.156v-.524c-.14.044-.297.063-.313.294-.048-.331-.137-.315-.273-.444-.14.129-.227.113-.276.444-.014-.231-.172-.25-.311-.294v.524l.288.156c-.038.09-.07.194-.094.321-.021-.254-.245-.273-.445-.322v.483l.521.373c-.058.146-.102.321-.136.543-.024-.374-.282-.403-.51-.474v.71l.424.389c-.148.241-.244.477-.24.636-.066-.224-.262-.408-.543-.489v.855h.366l.334.48c-.142.223-.231.436-.229.583-.072-.224-.287-.408-.595-.488v.855h.149c.232.133.35.371.404.771-.098.205-.159.405-.159.568-.124-.171-.358-.467-.741-.57v.987h.151c.3.385.366.953.376 1.442-.075-.109-.174-.208-.319-.267v1.015h.984c-.174.298-.281.647-.26.973-.112-.227-.126-.363-.488-.451v1.014h.046l.203.316v3.485c0 .32-.362.643-.611.76h.515v7.455h2.305v-7.455h.544c-.25-.117-.612-.439-.612-.76v-3.485l.204-.316h.047v-1.014c-.354.088-.375.225-.489.451.022-.325-.084-.675-.258-.973h.983v-1.015c-.127.053-.221.133-.295.227.015-.48.085-1.028.377-1.402h.126"/><path d="m44.42 36.541c-.25-.117-.611-.439-.611-.76v-3.297l.339-.504h.051v-1.014c-.168.068-.323.152-.455.247-.031-.114-.064-.223-.103-.329.143-.167.455-.533.558-.718v-.812c-.114.017-.226.065-.328.149.15-.211.306-.455.328-.593v-.811c-.232.033-.452.2-.623.533-.046-.211-.101-.399-.167-.571.105-.106.396-.414.443-.599v-.52c-.178.021-.343.068-.472.282-.019-.069-.038-.128-.059-.183l.324-.413v-.487c-.142.017-.219.064-.324.23-.028-.106-.069-.182-.116-.244h.034l.121-.274v-.381c-.095.01-.146.038-.217.136-.027-.081-.065-.151-.112-.215h.068l.261-.228v-.293c-.095.01-.146.037-.219.133-.06-.194-.191-.339-.368-.433-.178.093-.309.245-.369.44-.071-.097-.123-.131-.219-.141v.293l.261.228h.07c-.048.066-.087.139-.112.222-.07-.098-.123-.133-.219-.143v.381l.121.274h.041c-.052.064-.093.146-.124.255-.104-.166-.181-.224-.322-.241v.487l.323.412c-.021.055-.04.114-.06.183-.129-.214-.296-.261-.47-.282v.52c.023.186.33.495.441.6-.066.173-.122.359-.165.57-.173-.333-.393-.5-.624-.533v.811c.006.134.153.369.305.576-.098-.073-.2-.117-.305-.132v.812c.088.205.475.634.597.765-.033.095-.062.192-.089.292-.135-.099-.299-.187-.47-.257v1.014h.057l.34.504v3.297c0 .32-.362.643-.612.76h.453v7.455h2.305v-7.455h.493z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#ed4c5c"/><g fill="#2a5f9e"><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z"/></g><path d="m45.9 35.7v-3.1c.1-.4.4-.7.7-.8v-2.7-.1c-.3 0-.5.4-.5.5v-1.2c-.1-.1-.3-.1-.5 0v.3h-.6v-1.3c-.2 0-.2.6-.6.6-.2 0-.2-.3-.1-.5.1-.2.2-.5.1-.9-.1.3-.4.5-.4.2.1-.4.4-.5.2-1.1-.1.5-.4.5-.3.2.1-.3.3-.5 0-1-.1.5-.3.5-.3.2 0-.5 0-1-.6-1.2 0 0 0-.5-.3-.5s-.3.5-.3.5c-.6.2-.6.7-.6 1.2 0 .3-.2.4-.3-.2-.2.5 0 .6 0 1 .1.3-.2.3-.3-.2-.2.6.1.7.2 1.1.1.2-.3.1-.4-.3-.2.5 0 .8.1.9.1.2.1.5-.1.5-.4 0-.4-.6-.6-.6v2.4h-4.7v-2.1c-.3.1-.4.4-.4.4v.4h-.3c0 0-.2 0-.2-.4 0-.4.1-.6.4-.6v-.8c0 0-.7.1-.7.9v-.7c-.2 0-.2.3-.2 1h-.2v-.7c0-.4.4-.4.4-.7 0 0 .1-.5-.1-.7-.2.6-.4.5-.4.2 0-.2.2-.4.5-1 .1-.2 0-.7-.1-.9-.1.5-.1.7-.3.7-.1 0-.2-.1-.2-.3 0-.3.2-.4.3-.7.1-.3 0-.6-.1-.8-.1.5-.1.6-.2.6-.4-.1 0-.7.1-.9.1-.3-.1-.5-.1-.5-.1.4-.2.4-.3.4-.2 0-.1-.3.1-.5.1-.1.1-.3 0-.5-.1.3-.4.3-.3.1l.1-.6h-.3v-1.3h-.4c0-.3-.2-.6-.6-.6-.4 0-.5.4-.6.6h-.6v1.3h-.3l.1.7c0 .2-.2.2-.3-.1-.1.2-.2.4 0 .5.2.2.2.5.1.5-.1 0-.2 0-.3-.4 0 0-.2.3-.1.5.1.1.5.7.1.9-.2 0-.2-.2-.2-.6-.2.2-.3.5-.1.8.1.3.3.4.3.7 0 .2-.1.3-.2.3-.2 0-.3-.2-.3-.7-.1.2-.2.7-.1.9.3.5.5.7.5 1 0 .2-.3.4-.4-.2-.1.2-.1.7-.1.7 0 .3.4.3.4.7v.8h-.2c0-.7 0-1-.3-1v.7c0-.8-.7-.9-.7-.9v.8c.3 0 .4.2.4.6s-.2.4-.2.4h-.4v-.4c0 0-.1-.3-.4-.4v2.1h-4.6v-2.4c-.2 0-.2.6-.6.6-.2 0-.2-.3-.1-.5.1-.2.2-.5.1-.9-.1.4-.4.5-.4.3.1-.4.4-.5.2-1.1-.1.5-.4.5-.3.2.1-.3.3-.5 0-1-.1.5-.3.5-.3.2 0-.5 0-1-.6-1.2 0 0 0-.5-.3-.5s-.4.3-.4.3c-.6.2-.6.7-.6 1.2 0 .3-.2.4-.3-.2-.2.5 0 .6 0 1 .1.3-.2.3-.3-.2-.2.6.1.7.2 1.1.1.2-.3.1-.4-.3-.2.5 0 .8.1.9.1.2.1.5-.1.5-.4 0-.4-.6-.6-.6v1.3h-.5v-.3c-.2-.1-.4-.1-.5 0v1.2c0 0-.2-.5-.5-.5v.2 2.7c.2.1.6.4.7.8v3.1c-.1.3-.4.7-.6.8h29.1c-.4-.1-.7-.4-.8-.8" fill="#e2e2e2"/><g fill="#fff"><path d="m49.7 42.1v-1.9h-1v-1.6h-.9v-1.2h-.5v-.9h-30.6v.9h-.5v1.2h-.9v1.6h-1v1.9h-.9v1.9h37.2v-1.9z"/><path d="m22.8 36.5c-.2-.1-.6-.4-.6-.8v-3.3l.3-.5h.1v-1c-.2.1-.3.2-.5.3 0-.1-.1-.2-.1-.3.1-.1.5-.6.6-.8v-.8c-.1 0-.2.1-.3.1.2-.2.3-.4.3-.6v-.8c-.2 0-.5.2-.6.5 0-.2-.1-.4-.2-.6.1-.1.4-.4.4-.6v-.5c-.2 0-.3.1-.5.3 0-.1 0-.1-.1-.2l.3-.4v-.5c-.1 0-.2.1-.3.2 0-.1-.1-.2-.1-.3l.1-.3v-.4c-.1 0-.1 0-.2.1 0-.1-.1-.2-.1-.2h.1l.3-.2v-.3c-.1 0-.1 0-.2.1-.1-.2-.2-.3-.4-.4-.2.1-.3.2-.4.4-.1-.1-.1-.1-.2-.1v.3l.3.2h.2c0 .1-.1.1-.1.2-.1-.1-.1-.1-.2-.1v.4l.1.3c0 .1-.1.1-.1.2-.1-.2-.2-.2-.3-.2v.5l.3.4c0 .1 0 .1-.1.2-.1-.2-.3-.3-.5-.3v.5c0 .2.3.5.4.6-.1.2-.1.4-.2.6-.2-.3-.4-.5-.6-.5v.8c0 .1.2.4.3.6-.1-.1-.2-.1-.3-.1v.8c.1.2.4.6.6.7 0 .1-.1.2-.1.3-.1.1-.2 0-.4 0v1l.3.5v3.3c0 .3-.4.6-.6.8h.5v7.4h2.3v-7.5h.5"/><path d="m33.7 28.3v-1c-.4.1-.6.4-.7.6 0-.2-.1-.4-.2-.6.1-.4.2-.6.4-.8h.1v-.9c-.3.1-.5.3-.6.5 0-.1-.1-.4-.2-.6l.3-.5h.4v-.9c-.3.1-.5.3-.5.5 0-.1-.1-.4-.2-.6l.5-.4v-.6c-.2.1-.5.1-.5.5 0-.2-.1-.4-.1-.5l.5-.4v-.6c-.2 0-.4.1-.4.3 0-.1-.1-.2-.1-.3l.3-.2v-.5c-.1 0-.3.1-.3.3 0-.3-.1-.3-.3-.4-.1.1-.2.1-.3.4 0-.2-.2-.2-.3-.3v.5l.3.2c0 .1-.1.2-.1.3 0-.3-.2-.3-.4-.3v.5l.5.4c-.1.1-.1.3-.1.5 0-.4-.3-.4-.5-.5v.7l.4.4c-.1.2-.2.5-.2.6-.1-.2-.3-.4-.5-.5v.9h.1l.3.5c-.1.2-.2.4-.2.6-.1-.2-.3-.4-.6-.5v.9h.1c.2.1.4.4.4.8 0 .2 0 .4 0 .5-.1-.2-.4-.5-.7-.6v1h.2c.3.4.4 1 .4 1.4-.1-.1-.2-.2-.3-.3v1h1c-.2.3-.3.6-.3 1-.3-.1-.3-.2-.6-.3v1l.2.3v3.5c0 .3-.4.6-.6.8h.5v7.4h2.3v-7.5h.5c-.2-.1-.6-.4-.6-.8v-3.5l.2-.3v-1c-.4.1-.4.2-.5.5 0-.3-.1-.7-.3-1h1v-1c-.1.1-.2.1-.3.2 0-.5.1-1 .4-1.4.1.1.2.1.2.1"/><path d="m44.4 36.5c-.2-.1-.6-.4-.6-.8v-3.3l.3-.5h.1v-1c-.2.1-.3.2-.5.2 0-.1-.1-.2-.1-.3.1-.2.5-.5.6-.7v-.8c-.1 0-.2.1-.3.1.2-.2.3-.5.3-.6v-.8c-.2 0-.5.2-.6.5 0-.2-.1-.4-.2-.6.1-.1.4-.4.4-.6v-.5c-.2 0-.3.1-.5.3 0-.1 0-.1-.1-.2l.3-.4v-.5c-.1 0-.2.1-.3.2 0-.1-.1-.2-.1-.2l.1-.3v-.4c-.1 0-.1 0-.2.1 0-.1-.1-.2-.1-.2h.1l.3-.2v-.3c-.1 0-.1 0-.2.1-.1-.2-.2-.3-.4-.4-.2.1-.3.2-.4.4-.1-.1-.1-.1-.2-.1v.3l.3.2h.1c0 .1-.1.1-.1.2-.1-.1-.1-.1-.2-.1v.4l.1.3c-.1.1-.1.1-.1.3-.1-.2-.2-.2-.3-.2v.5l.3.4c0 .1 0 .1-.1.2-.1-.2-.2-.2-.4-.3v.5c0 .2.3.5.4.6-.1.2-.1.4-.2.6-.2-.3-.4-.5-.6-.5v.8c0 .1.2.4.3.6-.1-.1-.2-.1-.3-.1v.8c.1.2.5.6.6.8 0 .1-.1.2-.1.3-.1-.1-.3-.2-.5-.3v1h.1l.3.5v3.3c0 .3-.4.6-.6.8h.5v7.4h2.3v-7.5h.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ee.svg
index d8d2ba2..81f5fc9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m17.628 39c6.852 0 6.852-1.988 13.702-1.988s6.85 1.988 13.698 1.988c6.847 0 6.847-1.988 13.693-1.988 1.105 0 2.024.054 2.827.142.292-1.678.452-3.398.452-5.158 0-16.568-13.432-30-30-30s-30 13.432-30 30c0 1.724.153 3.411.433 5.05.465-.022.953-.039 1.498-.039 6.848 0 6.848 1.988 13.697 1.988"/><g fill="#ffce31"><path d="m44.3 33l3.7-1.67-3.97-.873 3.27-2.407-4.06-.03 2.693-3.02-3.982.811 2-3.518-3.725 1.617 1.225-3.86-3.305 2.356.393-4.02-2.742 2.984-.461-4.02-2.06 3.486-1.28-3.836-1.285 3.836-2.061-3.486-.454 4.02-2.744-2.984.394 4.03-3.307-2.348 1.227 3.85-3.73-1.615 2.01 3.516-3.98-.811 2.693 3.02-4.064.04 3.269 2.397-3.968.873 3.7 1.67-3.7 1.672 3.969.871-3.27 2.4 4.064.034-2.693 3.02 6.228-1.268-1.534-2.642-.654-2-.221-2.09.221-2.088.653-2 1.055-1.822 1.412-1.561 1.713-1.236 1.93-.855 2.07-.438h2.107l2.07.434 1.93.855 1.709 1.232 1.411 1.559 1.06 1.824.659 1.998.221 2.09-.217 2.088-.653 2-1.535 2.652 6.229 1.266-2.694-3.02 4.06-.032-3.27-2.4 3.97-.871z"/><circle cx="32" cy="33" r="12"/></g><path fill="#f27a52" d="m32 43c-5.514 0-10-4.486-10-10s4.486-10 10-10 10 4.486 10 10-4.486 10-10 10m0-18c-4.411 0-8 3.588-8 8 0 4.41 3.589 8 8 8s8-3.59 8-8c0-4.412-3.589-8-8-8"/><path fill="#ffce31" d="m43.1 9.287c-1.537 1.051-1.393 1.438-7.273 1.438-2.116 0-3.241.344-3.826.783-.585-.439-1.71-.783-3.826-.783-5.881 0-5.736-.387-7.273-1.438-2.041-1.398-.682 2.758 4.797 2.758 2.303 0 4.142.43 5.299.799-3.391.162-5.998 1.064-5.998 1.064s3.134 1.092 7 1.092 7-1.092 7-1.092-2.607-.902-5.996-1.064c1.157-.369 2.996-.799 5.299-.799 5.478 0 6.838-4.156 4.797-2.758"/><g fill="#428bc1"><path d="m31.3 48.994c-6.848 0-6.848 1.99-13.694 1.99-5.403 0-6.557-1.234-10.162-1.757 1.318 1.875 2.842 3.594 4.544 5.119 1.387.361 3 .657 5.638.657 6.852 0 6.852-1.988 13.702-1.988s6.85 1.988 13.698 1.988c3.894 0 5.577-.641 7.562-1.196 1.517-1.433 2.885-3.02 4.077-4.74-4.884.352-5.579 1.917-11.667 1.917-6.85 0-6.85-1.99-13.698-1.99"/><path d="m31.3 56.994c-6.406 0-6.847 1.734-12.481 1.959 3.978 1.949 8.449 3.047 13.178 3.047 4.706 0 9.158-1.086 13.12-3.02-.041.001-.078.002-.121.002-6.849 0-6.849-1.99-13.697-1.99"/><path d="m58.703 40.994c-6.852 0-6.852 1.99-13.703 1.99-6.849 0-6.849-1.99-13.697-1.99-6.848 0-6.848 1.99-13.694 1.99-6.849 0-6.849-1.99-13.699-1.99-.185 0-.36.003-.535.007.438 1.394.974 2.743 1.602 4.04 5.794.196 6.181 1.962 12.651 1.962 6.852 0 6.852-1.988 13.702-1.988s6.85 1.988 13.698 1.988c6.847 0 6.847-1.988 13.693-1.988.11 0 .206.005.312.006.615-1.273 1.14-2.598 1.571-3.963-.571-.04-1.194-.065-1.901-.065"/></g><g fill="#fff"><path d="m17.609 42.984c6.846 0 6.846-1.99 13.694-1.99 6.849 0 6.849 1.99 13.697 1.99 6.852 0 6.852-1.99 13.703-1.99.707 0 1.33.024 1.901.064.401-1.266.714-2.569.944-3.901-.803-.088-1.722-.142-2.827-.142-6.847 0-6.847 1.988-13.693 1.988-6.849 0-6.849-1.988-13.698-1.988s-6.85 1.988-13.702 1.988c-6.849 0-6.849-1.988-13.698-1.988-.545 0-1.033.017-1.498.039.229 1.348.541 2.666.943 3.946.174-.004.35-.007.535-.007 6.85.001 6.85 1.991 13.699 1.991"/><path d="m45.03 47c-6.849 0-6.849-1.988-13.698-1.988s-6.85 1.988-13.702 1.988c-6.47 0-6.857-1.766-12.651-1.962.709 1.468 1.541 2.863 2.47 4.186 3.605.522 4.759 1.757 10.162 1.757 6.846 0 6.846-1.99 13.694-1.99 6.849 0 6.849 1.99 13.697 1.99 6.088 0 6.783-1.565 11.667-1.917.888-1.28 1.684-2.631 2.366-4.046-.105-.001-.201-.006-.312-.006-6.846 0-6.846 1.988-13.693 1.988"/><path d="m31.33 53.02c-6.85 0-6.85 1.988-13.702 1.988-2.634 0-4.25-.296-5.638-.657 2.044 1.832 4.34 3.387 6.831 4.606 5.635-.225 6.075-1.959 12.481-1.959 6.849 0 6.849 1.99 13.697 1.99.043 0 .08-.001.121-.002 2.754-1.341 5.266-3.095 7.469-5.175-1.984.556-3.668 1.196-7.562 1.196-6.847.001-6.847-1.987-13.697-1.987"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m17.6 39c6.9 0 6.9-2 13.7-2s6.9 2 13.7 2c6.8 0 6.8-2 13.7-2 1.1 0 2 .1 2.8.1.3-1.7.5-3.4.5-5.2 0-16.5-13.4-29.9-30-29.9s-30 13.4-30 30c0 1.7.2 3.4.4 5.1.5 0 1 0 1.5 0 6.9-.1 6.9 1.9 13.7 1.9" fill="#ed4c5c"/><g fill="#ffce31"><path d="m44.3 33l3.7-1.7-4-.8 3.3-2.4-4.1-.1 2.7-3-3.9.8 2-3.5-3.8 1.6 1.3-3.8-3.3 2.3.3-4-2.7 3-.5-4-2 3.4-1.3-3.8-1.3 3.8-2-3.4-.5 4-2.7-3 .4 4-3.4-2.3 1.3 3.8-3.8-1.6 2 3.5-3.9-.8 2.7 3-4.1.1 3.3 2.4-4 .8 3.7 1.7-3.7 1.7 4 .8-3.3 2.4 4.1.1-2.7 3 6.2-1.3-1.5-2.6-.7-2-.2-2.1.2-2.1.7-2 1-1.8 1.4-1.6 1.7-1.2 2-.9 2-.4h2.2l2 .4 1.9.9 1.8 1.2 1.4 1.6 1 1.8.7 2 .2 2.1-.2 2.1-.7 2-1.5 2.6 6.2 1.3-2.7-3 4.1-.1-3.3-2.4 4-.8z"/><circle cx="32" cy="33" r="12"/></g><path d="m32 43c-5.5 0-10-4.5-10-10s4.5-10 10-10 10 4.5 10 10-4.5 10-10 10m0-18c-4.4 0-8 3.6-8 8 0 4.4 3.6 8 8 8s8-3.6 8-8c0-4.4-3.6-8-8-8" fill="#f27a52"/><path d="m43.1 9.3c-1.5 1.1-1.4 1.4-7.3 1.4-2.1 0-3.2.3-3.8.8-.6-.4-1.7-.8-3.8-.8-5.9 0-5.7-.4-7.3-1.4-2-1.4-.7 2.8 4.8 2.8 2.3 0 4.1.4 5.3.8-3.4.2-6 1.1-6 1.1s3.1 1.1 7 1.1 7-1.1 7-1.1-2.6-.9-6-1.1c1.2-.4 3-.8 5.3-.8 5.5-.1 6.8-4.2 4.8-2.8" fill="#ffce31"/><g fill="#428bc1"><path d="m31.3 49c-6.8 0-6.8 2-13.7 2-5.4 0-6.6-1.2-10.2-1.8 1.3 1.9 2.8 3.6 4.5 5.1 1.4.4 3 .7 5.6.7 6.9 0 6.9-2 13.7-2s6.9 2 13.7 2c3.9 0 5.6-.6 7.6-1.2 1.5-1.4 2.9-3 4.1-4.7-4.8.3-5.5 1.9-11.6 1.9-6.8 0-6.8-2-13.7-2"/><path d="m31.3 57c-6.4 0-6.8 1.7-12.5 2 4 1.9 8.4 3 13.2 3 4.7 0 9.2-1.1 13.1-3 0 0-.1 0-.1 0-6.8 0-6.8-2-13.7-2"/><path d="m58.7 41c-6.9 0-6.9 2-13.7 2-6.8 0-6.8-2-13.7-2s-6.8 2-13.7 2c-6.8 0-6.8-2-13.7-2-.2 0-.4 0-.5 0 .4 1.4 1 2.7 1.6 4 5.8.2 6.2 2 12.7 2 6.9 0 6.9-2 13.7-2s6.9 2 13.7 2c6.8 0 6.8-2 13.7-2 .1 0 .2 0 .3 0 .6-1.3 1.1-2.6 1.6-4-.7 0-1.3 0-2 0"/></g><g fill="#fff"><path d="m17.6 43c6.8 0 6.8-2 13.7-2 6.8 0 6.8 2 13.7 2 6.9 0 6.9-2 13.7-2 .7 0 1.3 0 1.9.1.4-1.3.7-2.6.9-3.9-.8-.1-1.7-.1-2.8-.1-6.8 0-6.8 2-13.7 2-6.8 0-6.8-2-13.7-2s-6.9 2-13.7 2c-6.8 0-6.8-2-13.7-2-.5 0-1 0-1.5 0 .3 1.3.6 2.6 1 3.9.2 0 .3 0 .5 0 6.9 0 6.9 2 13.7 2"/><path d="m45 47c-6.8 0-6.8-2-13.7-2s-6.9 2-13.7 2c-6.5 0-6.9-1.8-12.7-2 .7 1.5 1.5 2.9 2.5 4.2 3.6.5 4.8 1.8 10.2 1.8 6.8 0 6.8-2 13.7-2 6.8 0 6.8 2 13.7 2 6.1 0 6.8-1.6 11.7-1.9.9-1.3 1.7-2.6 2.4-4-.1 0-.2 0-.3 0-6.9-.1-6.9 1.9-13.8 1.9"/><path d="m31.3 53c-6.9 0-6.9 2-13.7 2-2.6 0-4.2-.3-5.6-.7 2 1.8 4.3 3.4 6.8 4.6 5.6-.2 6.1-2 12.5-2 6.8 0 6.8 2 13.7 2 0 0 .1 0 .1 0 2.8-1.3 5.3-3.1 7.5-5.2-2 .6-3.7 1.2-7.6 1.2-6.8.1-6.8-1.9-13.7-1.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f2.svg
index 176ba26..8e9ba57 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="M11.006,48v5.404C16.416,58.715,23.82,62,32,62c10.684,0,20.057-5.59,25.373-14H11.006z"/><path fill="#ed4c5c" d="M11.006,32v16h46.367C60.299,43.369,62,37.885,62,32H11.006z"/><path fill="#fff" d="M11.006,32H62c0-5.885-1.701-11.368-4.627-16H11.006V32z"/><path fill="#ffce31" d="M11.006,16h46.367C52.057,7.59,42.684,2,32,2c-8.18,0-15.584,3.285-20.994,8.596V16z"/><path fill="#75a843" d="M11.006,10.578C5.451,16.023,2,23.607,2,32s3.451,15.977,9.006,21.422L32.426,32L11.006,10.578z"/><g fill="#f9f9f9"><path d="m18 41.801c-4.564-.928-8-4.963-8-9.801s3.436-8.872 8-9.8c-.646-.13-1.314-.2-2-.2-5.523 0-10 4.478-10 10 0 5.523 4.477 10 10 10 .686 0 1.354-.07 2-.199"/><path d="m16.764 36l1.236-.94 1.236.94-.466-1.525 1.23-.975h-1.525l-.475-1.5-.461 1.5h-1.539l1.23.975z"/><path d="m16.764 40l1.236-.94 1.236.94-.466-1.525 1.23-.975h-1.525l-.475-1.5-.461 1.5h-1.539l1.23.975z"/><path d="m16.764 28l1.236-.94 1.236.94-.466-1.526 1.23-.974h-1.525l-.475-1.5-.461 1.5h-1.539l1.23.974z"/><path d="m16.764 32l1.236-.94 1.236.94-.466-1.526 1.23-.974h-1.525l-.475-1.5-.461 1.5h-1.539l1.23.974z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M11,48v5.4c5.4,5.3,12.8,8.6,21,8.6c10.7,0,20.1-5.6,25.4-14H11z" fill="#428bc1"/><path d="m11 32v16h46.4c2.9-4.6 4.6-10.1 4.6-16h-51" fill="#ed4c5c"/><path d="M11,32h51c0-5.9-1.7-11.4-4.6-16H11V32z" fill="#fff"/><path d="m11 16h46.4c-5.3-8.4-14.7-14-25.4-14-8.2 0-15.6 3.3-21 8.6 0 0 0 5.4 0 5.4" fill="#ffce31"/><path d="M11,10.6C5.5,16,2,23.6,2,32s3.5,16,9,21.4L32.4,32L11,10.6z" fill="#75a843"/><g fill="#f9f9f9"><path d="m18 41.8c-4.6-.9-8-5-8-9.8s3.4-8.9 8-9.8c-.6-.1-1.3-.2-2-.2-5.5 0-10 4.5-10 10 0 5.5 4.5 10 10 10 .7 0 1.4-.1 2-.2"/><path d="m16.8 36l1.2-.9 1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1z"/><path d="m16.8 40l1.2-.9 1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1z"/><path d="m16.8 28l1.2-.9 1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1z"/><path d="m16.8 32l1.2-.9 1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f3.svg
index d304048..505ac74 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m6.02 47.02c1.943 3.365 4.444 6.204 7.313 8.482l48.36-27.918c-.54-3.625-1.748-7.21-3.69-10.575-1.942-3.366-4.444-6.205-7.313-8.484l-48.36 27.918c.539 3.625 1.748 7.21 3.692 10.577"/><g fill="#ffe62e"><path d="m19.1 59.1l42.821-24.723c.181-2.252.104-4.531-.233-6.796l-48.36 27.918c1.792 1.427 3.728 2.632 5.769 3.601"/><path d="m2.328 36.439l48.36-27.918c-1.793-1.425-3.729-2.631-5.768-3.601l-42.823 24.724c-.181 2.251-.104 4.53.233 6.795"/></g><path fill="#699635" d="m44.909 4.925c-8.611-4.096-19.02-4.03-27.905 1.096-8.884 5.128-14.14 14.11-14.901 23.619l42.806-24.715"/><path fill="#ed4c5c" d="m19.11 59.09c8.612 4.095 19.02 4.03 27.906-1.095 8.884-5.13 14.14-14.11 14.901-23.62l-42.807 24.715"/><g fill="#fff"><path d="m21.998 40.13l4.576.574-3.474-3.237 1.767-4.267-3.932 2.254-3.489-3.214 1.038 4.628-3.917 2.282 4.573.604 1.07 4.626z"/><path d="m44.04 27.396l4.579.581-3.469-3.238 1.762-4.265-3.933 2.253-3.488-3.214 1.039 4.627-3.917 2.28 4.577.61 1.07 4.619z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6 47c1.9 3.4 4.4 6.2 7.3 8.5l48.4-27.9c-.6-3.6-1.8-7.2-3.7-10.6-1.9-3.4-4.4-6.2-7.3-8.5l-48.4 27.9c.6 3.7 1.8 7.2 3.7 10.6" fill="#3e4347"/><g fill="#ffe62e"><path d="m19.1 59.1l42.8-24.7c.2-2.3.1-4.5-.2-6.8l-48.4 27.9c1.8 1.4 3.8 2.6 5.8 3.6"/><path d="m2.3 36.4l48.4-27.9c-1.8-1.4-3.7-2.6-5.8-3.6l-42.8 24.7c-.2 2.3-.1 4.6.2 6.8"/></g><path d="M44.9,4.9c-8.6-4.1-19-4-27.9,1.1C8.1,11.1,2.9,20.1,2.1,29.6L44.9,4.9z" fill="#699635"/><path d="m19.1 59.1c8.6 4.1 19 4 27.9-1.1 8.9-5.1 14.1-14.1 14.9-23.6l-42.8 24.7" fill="#ed4c5c"/><g fill="#fff"><path d="m22 40.1l4.6.6-3.5-3.2 1.8-4.3-4 2.3-3.5-3.3 1.1 4.7-3.9 2.2 4.5.7 1.1 4.6z"/><path d="m44 27.4l4.6.6-3.5-3.3 1.8-4.2-3.9 2.2-3.5-3.2 1 4.6-3.9 2.3 4.6.6 1.1 4.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f5.svg
index 8a4a27e..dc4d679 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2C21.745,2,12.695,7.149,7.285,15h49.43C51.305,7.149,42.256,2,32,2z"/><path d="m32 62c10.255 0 19.304-5.149 24.714-13h-49.43c5.41 7.851 14.46 13 24.715 13"/></g><path fill="#ed4c5c" d="m59.05 19h-54.09c-1.894 3.934-2.956 8.343-2.956 13s1.062 9.07 2.956 13h54.09c1.893-3.934 2.955-8.343 2.955-13s-1.062-9.07-2.955-13"/><g fill="#fff"><path d="m4.956 45c.673 1.398 1.456 2.732 2.329 4h49.43c.873-1.268 1.656-2.602 2.33-4h-54.09"/><path d="m59.05 19c-.674-1.398-1.457-2.732-2.33-4h-49.43c-.873 1.268-1.656 2.602-2.329 4h54.09"/><circle cx="18" cy="32" r="11"/></g><path fill="#ed4c5c" d="m18 35.911l4.946 3.755-1.876-6.105 4.93-3.785-6.1-.018-1.9-6.092-1.9 6.092-6.1.018 4.924 3.785-1.874 6.105z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2C21.7,2,12.7,7.1,7.3,15h49.4C51.3,7.1,42.3,2,32,2z"/><path d="M32,62c10.3,0,19.3-5.1,24.7-13H7.3C12.7,56.9,21.7,62,32,62z"/></g><path d="m59 19h-54c-1.9 3.9-3 8.3-3 13s1.1 9.1 3 13h54c1.9-3.9 3-8.3 3-13s-1.1-9.1-3-13" fill="#ed4c5c"/><g fill="#fff"><path d="m5 45c.7 1.4 1.5 2.7 2.3 4h49.4c.9-1.3 1.7-2.6 2.3-4h-54"/><path d="m59 19c-.7-1.4-1.5-2.7-2.3-4h-49.4c-.9 1.3-1.7 2.6-2.3 4h54"/><circle cx="18" cy="32" r="11"/></g><path fill="#ed4c5c" d="m18 35.9l4.9 3.8-1.8-6.1 4.9-3.8h-6.1l-1.9-6.1-1.9 6.1h-6.1l4.9 3.8-1.8 6.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f7.svg
index 8e184f3..5b28e35 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f5f5f5" cx="32" cy="32" r="30"/><path fill="#ed4c5c" d="m23.418 33.716c2.844 1.895 6.686 1.128 8.582-1.716 1.895-2.843 5.736-3.611 8.58-1.715 2.666 1.776 3.508 5.265 2.041 8.04 3.35-5.625 1.752-12.945-3.758-16.617-5.686-3.792-13.369-2.255-17.16 3.432-.117.178-.215.363-.322.544-1.469 2.771-.627 6.258 2.039 8.04"/><path fill="#003478" d="m42.3 38.865c.119-.178.227-.36.324-.545-.107.182-.205.368-.324.545"/><path fill="#428bc1" d="m40.58 30.28c-2.844-1.896-6.685-1.128-8.58 1.716-1.896 2.844-5.738 3.612-8.582 1.716-2.666-1.777-3.508-5.265-2.039-8.04-3.352 5.625-1.754 12.945 3.756 16.618 5.688 3.792 13.371 2.256 17.16-3.432.119-.178.217-.363.324-.545 1.467-2.771.625-6.259-2.041-8.04"/><g fill="#3e4347"><path d="m7.805 23.307l6.865-10.297-.691-.461-.69-.459-6.865 10.297.691.46z"/><path d="m9.689 24.563l.69.457 6.863-10.294-.689-.46-.692-.46-6.863 10.294z"/><path d="m18.438 15.522l-6.866 10.297.69.461.691.459 6.865-10.297-.688-.46z"/><path d="m48.533 42.523l.687.461 3.21-4.804-.694-.459-.686-.461-3.206 4.8z"/><path d="m56.19 40.693l-3.198 4.804.69.46.688.463 3.2-4.807-.685-.463z"/><path d="m51.797 44.701l3.203-4.805-.69-.458-.691-.461-3.199 4.803.69.46z"/><path d="m48.07 43.22l-.69-.466-3.2 4.804.691.462.692.46 3.201-4.806z"/><path d="m50.648 44.931l-.691-.461-3.201 4.8.694.464.69.456 3.2-4.8z"/><path d="m52.53 46.19l-3.2 4.8.69.46.689.46 3.203-4.8-.692-.464z"/><path d="m7.115 41.15l-.691.463 6.865 10.297.69-.46.691-.46-6.865-10.297z"/><path d="m13.35 44.931l-.69.459 3.201 4.8.692-.456.689-.464-3.202-4.8z"/><path d="m12.262 37.721l-.69.459 6.866 10.3.692-.46.688-.462-6.865-10.298z"/><path d="m8.998 39.896l3.203 4.805.69-.461.691-.46-3.203-4.803-.69.461z"/><path d="m53.22 17.354l.692-.461-3.203-4.803-.689.459-.69.461 3.2 4.803z"/><path d="m48.07 20.786l.694-.46-3.201-4.804-.692.46-.691.46 3.2 4.804z"/><path d="m52.992 18.503l3.198 4.804.695-.46.685-.46-3.2-4.804-.688.457z"/><path d="m54.31 24.563l.69-.463-6.86-10.294-.69.46-.694.46 6.863 10.294z"/><path d="m51.736 26.28l.694-.461-3.21-4.799-.687.456-.689.46 3.206 4.803z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f5f5f5"/><path d="m23.4 33.7c2.8 1.9 6.7 1.1 8.6-1.7 1.9-2.8 5.7-3.6 8.6-1.7 2.7 1.8 3.5 5.3 2 8 3.3-5.6 1.8-12.9-3.8-16.6-5.7-3.8-13.4-2.3-17.2 3.4-.1.2-.2.4-.3.5-1.4 2.9-.5 6.3 2.1 8.1" fill="#ed4c5c"/><path d="m42.3 38.9c.1-.2.2-.4.3-.5-.1.1-.2.3-.3.5" fill="#003478"/><path d="m40.6 30.3c-2.8-1.9-6.7-1.1-8.6 1.7-1.9 2.8-5.7 3.6-8.6 1.7-2.7-1.8-3.5-5.3-2-8-3.4 5.6-1.8 12.9 3.8 16.6 5.7 3.8 13.4 2.3 17.2-3.4.1-.2.2-.4.3-.5 1.4-2.9.5-6.3-2.1-8.1" fill="#428bc1"/><g fill="#3e4347"><path d="m7.8 23.3l6.9-10.3-.7-.5-.7-.4-6.9 10.3.7.4z"/><path d="m9.7 24.6l.7.4 6.8-10.3-.6-.4-.7-.5-6.9 10.3z"/><path d="m18.4 15.5l-6.8 10.3.7.5.7.4 6.8-10.3-.7-.4z"/><path d="m48.5 42.5l.7.5 3.2-4.8-.7-.5-.7-.4-3.2 4.8z"/><path d="m56.2 40.7l-3.2 4.8.7.5.7.4 3.2-4.8-.7-.4z"/><path d="m51.8 44.7l3.2-4.8-.7-.5-.7-.4-3.2 4.8.7.4z"/><path d="m48.1 43.2l-.7-.4-3.2 4.8.7.4.7.5 3.2-4.8z"/><path d="m50.6 44.9l-.6-.4-3.2 4.8.6.4.7.5 3.2-4.8z"/><path d="m52.5 46.2l-3.2 4.8.7.5.7.4 3.2-4.8-.7-.5z"/><path d="m7.1 41.2l-.7.4 6.9 10.3.7-.4.7-.5-6.9-10.3z"/><path d="m13.4 44.9l-.7.5 3.2 4.8.7-.5.6-.4-3.2-4.8z"/><path d="m12.3 37.7l-.7.5 6.8 10.3.7-.5.7-.4-6.8-10.3z"/><path d="m9 39.9l3.2 4.8.7-.5.7-.4-3.2-4.8-.7.4z"/><path d="m53.2 17.4l.7-.5-3.2-4.8-.7.4-.7.5 3.2 4.8z"/><path d="m48.1 20.8l.7-.5-3.2-4.8-.7.5-.7.4 3.2 4.8z"/><path d="m53 18.5l3.2 4.8.7-.5.7-.4-3.2-4.8-.7.4z"/><path d="m54.3 24.6l.7-.5-6.9-10.3-.7.5-.6.4 6.8 10.3z"/><path d="m51.7 26.3l.7-.5-3.2-4.8-.7.5-.7.4 3.2 4.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fc.svg
index c654d34..f3076ff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21-.002c5.428 5.43 12.929 8.789 21.21 8.789 13.07 0 24.18-8.357 28.29-20.02-.098.004-.193.016-.291.016"/><path fill="#699635" d="m60 22c.098 0 .193.012.291.014-4.115-11.659-15.225-20.01-28.29-20.01-8.285 0-15.786 3.357-21.21 8.787v21.21h39.21c0-5.523 4.477-10 10-10"/><path fill="#f9f9f9" d="m60.28 22h-49.5v20h49.5c1.106-3.129 1.714-6.492 1.714-10s-.608-6.871-1.715-10"/><path fill="#3e4347" d="M10.787,10.787C5.357,16.215,2,23.715,2,32c0,8.283,3.358,15.783,8.787,21.213L22,42V22L10.787,10.787z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0" fill="#ed4c5c"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10" fill="#699635"/><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32c0,8.3,3.4,15.8,8.8,21.2L22,42V22L10.8,10.8z" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fe.svg
index 0285775..6d0432c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h20.625v20.625h-20.625z"/><path fill="#fff" d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path fill="#2a5f9e" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#fff" d="M11,18.913H5.011C3.088,22.869,2,27.306,2,32h12V13.913h-3V18.913z"/><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.011V11H11v3h21V2C27.306,2,22.868,3.089,18.912,5.011z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.913V32h6V11h21V5z"/><path fill="#fff" d="m37.93 28.475v11.689c0 1.174 1.036 1.686 2.125 2.125l4.251 1.682 4.25-1.682c1.089-.439 2.125-.951 2.125-2.125v-11.689h-12.751"/><path fill="#42ade2" d="m50.681 36.977c0 0-1.343-.893-3.188-.893-1.846 0-2.134.893-3.188.893-1.282 0-1.344-.893-3.188-.893s-3.188.893-3.188.893v-1.785c0 0 1.343-.895 3.188-.895s1.906.895 3.188.895c1.054 0 1.342-.895 3.188-.895 1.845 0 3.188.895 3.188.895v1.785"/><path fill="#ed4c5c" d="m37.93 27.413v6.04c0 0 1.343-1.512 3.188-1.512s1.906 1.512 3.188 1.512c1.054 0 1.342-1.512 3.188-1.512 1.845 0 3.188 1.512 3.188 1.512v-6.04h-12.752"/><g fill="#42ade2"><path d="m50.681 40.16c0 0-1.343-.834-3.188-.834-1.846 0-2.134.834-3.188.834-1.282 0-1.344-.834-3.188-.834s-3.188.834-3.188.834v-1.668c0 0 1.343-.834 3.188-.834s1.906.834 3.188.834c1.054 0 1.342-.834 3.188-.834 1.845 0 3.188.834 3.188.834v1.668"/><path d="m41.12 41.23c-.889 0-1.655.248-2.218.504.343.217.744.393 1.155.559l4.251 1.682 4.25-1.682c.41-.166.812-.342 1.156-.559-.563-.256-1.331-.504-2.219-.504-1.846 0-2.134 1.063-3.188 1.063-1.281-.001-1.342-1.063-3.187-1.063"/></g><g fill="#ed4c5c"><path d="m34.803 46.48l-1.123-2.314c1.048-.715 2.219-1.307 3.479-1.76l.65 2.555c-1.096.394-2.108.904-3.01 1.519"/><path d="m53.794 46.539c-.914-.633-1.945-1.16-3.067-1.566l.655-2.555c1.29.467 2.484 1.078 3.549 1.818l-1.137 2.303"/></g><g fill="#83bf4f"><path d="m44.31 40.23l1.309 1-.499-1.625 1.31-1-1.619-.006-.501-1.617-.51 1.617-1.62.006 1.307 1-.496 1.625z"/><path d="m41.12 35.979l1.31.998-.495-1.627 1.305-1-1.617-.01-.503-1.614-.508 1.614-1.619.01 1.307 1-.496 1.627z"/><path d="m47.49 35.979l1.317.998-.497-1.627 1.308-1-1.62-.01-.508-1.614-.503 1.614-1.617.01 1.305 1-.495 1.627z"/></g><g fill="#ffe62e"><path d="m44.27 47.746c-2.775 0-5.442-1.211-7.506-3.406l1.501-1.988c1.651 1.756 3.783 2.725 6.01 2.725 2.249 0 4.402-.988 6.06-2.787l1.515 1.973c-2.076 2.247-4.768 3.483-7.578 3.483"/><path d="m35.865 48.609l-1.123-2.314c1.048-.715 2.218-1.307 3.48-1.76l.649 2.555c-1.095.394-2.107.904-3.01 1.519"/><path d="m52.73 48.664c-.913-.635-1.943-1.16-3.065-1.566l.655-2.553c1.288.465 2.483 1.076 3.548 1.816l-1.138 2.303"/><path d="m49.551 30.05c-.048-.127-.081-.176-.254-.12-.421.139-1.575.06-1.942-.178.552.214 1.256-.239 1.256-.614 0-.417-.546-.759-1.65-.533-1.105.226-2.452.13-2.452-.214 0-.346.966-.395 1.461-.322.495.071.851.12 1.778-.192-.229.083-.966.107-1.55-.047-.583-.154-2.02-.154-2.032.573-.013.728 1.528.662 2.858.477.774-.107 1.181-.035 1.181.204 0 .226-.71.322-1.257.262-.547-.059-1.111-.067-1.753.132-1.157.36-2.488.095-2.837-.427.024-.053.042-.119.042-.225 0-.003 0-.006 0-.009.082-.08.16-.232.194-.343.078-.26-.029-.268-.346-.149-.111-.102-.294-.164-.603-.164s-.493.062-.602.165c-.321-.12-.428-.112-.349.148.033.112.114.269.197.346 0 .003 0 .005 0 .006.002.401.467.993.457 1.015-.604-.051-1.401-1.128-1.545-1.566-.063-.2-.312-.325-.449-.278-.12.042-.165.139-.062.213.104.073.235.084.264.27-.135-.153-.334-.207-.432-.113-.058.058-.034.191.092.203.184.019.087.171.229.333-.181-.159-.335-.165-.434-.058-.067.071 0 .197.142.184.206-.02.862.895 2.462 1.732-.022.117-.279.095-.48.103-.375.015-.875-.039-1.137-.317-.231-.248-.541-.446-.787-.261-.127.094-.005.217.096.183.099-.035.217.034.322.078-.17-.068-.355-.015-.43.046-.099.083.023.246.144.188.097-.044.291-.075.418.035-.138-.026-.28-.02-.35.049-.068.069-.015.171.134.164.237-.009 1.943 1.01 3.335-.166.202.006 1.617-.043 2.166-.361.365.393.424.349.743.408.331.059.533.059.313.233-.075.061-.394.032-.643.042-.553.021-.807-.361-.97-.162-.124.151-.017.224.214.229-.178 0-.373.009-.335.157.073.281.358-.052.468.062-.093-.021-.242.035-.248.119-.005.085.212.195.45.017.131-.098.292-.135.396-.135.39.002 1.268.189 1.556-.112.112-.117-.031-.215-.146-.322-.109-.104-.137-.247-.115-.483.327.054.75.064 1.343-.036.705-.121.927.101.927.405 0 .21-.132.228-.229.234-.394.022-.562-.139-.717-.086-.104.034-.168.193-.018.248-.123.06-.108.171-.045.212.064.042.227.004.339-.044-.144.061-.29.168-.207.284.052.069.182.127.303-.021.12-.148.347-.24.483-.253.591-.059.856-.893.643-1.448"/><path d="m48.51 20.616l-2.313.04 2.042-1.978-2.451 1.025.606-2.907-1.671 2.295-.894-2.505-.247 2.737-1.712-1.923.944 3.104-1.822-.126c0 0 1.828 1.278 2.186 1.722h2.75c.68-.807 2.582-1.484 2.582-1.484"/></g><g fill="#83bf4f"><path d="m41.12 23.16c0 .586-1.537 1.063-2.124 1.063-.588 0-1.063-.477-1.063-1.063 0-.586.476-1.063 1.063-1.063.587 0 2.124.477 2.124 1.063"/><ellipse cx="41.12" cy="26.351" rx=".531" ry="1.063"/><ellipse cx="45.37" cy="26.351" rx=".531" ry="1.063"/><ellipse cx="47.49" cy="26.351" rx=".531" ry="1.063"/><path d="m48.556 23.754c0 2.251-1.903 2.422-4.25 2.422-2.348 0-4.251-.171-4.251-2.422 0-1.424 1.903-2.716 4.251-2.716 2.346 0 4.25 1.062 4.25 2.716"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h20.6v20.6h-20.6z"/><path fill="#fff" d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m37.9 28.5v11.7c0 1.2 1 1.7 2.1 2.1l4.3 1.7 4.2-1.7c1.1-.4 2.1-1 2.1-2.1v-11.7h-12.7" fill="#fff"/><path d="m50.7 37c0 0-1.3-.9-3.2-.9-1.8 0-2.1.9-3.2.9-1.3 0-1.3-.9-3.2-.9s-3.2.9-3.2.9v-1.8c0 0 1.3-.9 3.2-.9s1.9.9 3.2.9c1.1 0 1.3-.9 3.2-.9 1.8 0 3.2.9 3.2.9v1.8" fill="#42ade2"/><path d="m37.9 27.4v6c0 0 1.3-1.5 3.2-1.5s1.9 1.5 3.2 1.5c1.1 0 1.3-1.5 3.2-1.5 1.8 0 3.2 1.5 3.2 1.5v-6h-12.8" fill="#ed4c5c"/><g fill="#42ade2"><path d="m50.7 40.2c0 0-1.3-.8-3.2-.8-1.8 0-2.1.8-3.2.8-1.3 0-1.3-.8-3.2-.8s-3.2.8-3.2.8v-1.7c0 0 1.3-.8 3.2-.8s1.9.8 3.2.8c1.1 0 1.3-.8 3.2-.8 1.8 0 3.2.8 3.2.8v1.7"/><path d="m41.1 41.2c-.9 0-1.7.2-2.2.5.3.2.7.4 1.2.6l4.3 1.7 4.2-1.7c.4-.2.8-.3 1.2-.6-.6-.3-1.3-.5-2.2-.5-1.8 0-2.1 1.1-3.2 1.1-1.4 0-1.4-1.1-3.3-1.1"/></g><g fill="#ed4c5c"><path d="m34.8 46.5l-1.1-2.3c1-.7 2.2-1.3 3.5-1.8l.7 2.6c-1.2.4-2.2.9-3.1 1.5"/><path d="m53.8 46.5c-.9-.6-1.9-1.2-3.1-1.6l.7-2.6c1.3.5 2.5 1.1 3.5 1.8l-1.1 2.4"/></g><g fill="#83bf4f"><path d="m44.3 40.2l1.3 1-.5-1.6 1.3-1h-1.6l-.5-1.6-.5 1.6h-1.6l1.3 1-.5 1.6z"/><path d="m41.1 36l1.3 1-.5-1.6 1.3-1.1h-1.6l-.5-1.6-.5 1.6h-1.6l1.3 1.1-.5 1.6z"/><path d="m47.5 36l1.3 1-.5-1.6 1.3-1.1h-1.6l-.5-1.6-.5 1.6h-1.6l1.3 1.1-.5 1.6z"/></g><g fill="#ffe62e"><path d="m44.3 47.7c-2.8 0-5.4-1.2-7.5-3.4l1.5-2c1.7 1.8 3.8 2.7 6 2.7 2.2 0 4.4-1 6.1-2.8l1.5 2c-2.1 2.3-4.8 3.5-7.6 3.5"/><path d="m35.9 48.6l-1.1-2.3c1-.7 2.2-1.3 3.5-1.8l.6 2.6c-1.1.4-2.1.9-3 1.5"/><path d="m52.7 48.7c-.9-.6-1.9-1.2-3.1-1.6l.7-2.6c1.3.5 2.5 1.1 3.5 1.8l-1.1 2.4"/><path d="m49.6 30.1c0-.1-.1-.2-.3-.1-.4.1-1.6.1-1.9-.2.6.2 1.3-.2 1.3-.6 0-.4-.5-.8-1.7-.5-1.1.2-2.5.1-2.5-.2 0-.3 1-.4 1.5-.3.5.1.9.1 1.8-.2-.2.1-1 .1-1.5 0-.6-.2-2-.2-2 .6 0 .7 1.5.7 2.9.5.8-.1 1.2 0 1.2.2 0 .2-.7.3-1.3.3-.5-.1-1.1-.1-1.8.1-1.2.4-2.5.1-2.8-.4 0-.1 0-.1 0-.2.1-.1.2-.2.2-.3.1-.3 0-.3-.3-.1-.1-.1-.3-.2-.6-.2s-.5.1-.6.2c-.3-.1-.4-.1-.3.1 0 .1.1.3.2.3 0 .4.5 1 .5 1-.6-.1-1.4-1.1-1.5-1.6-.1-.2-.3-.3-.4-.3-.1 0-.2.1-.1.2.1.1.2.1.3.3-.1-.2-.3-.2-.4-.1-.1.1 0 .2.1.2.2 0 .1.2.2.3-.2-.2-.3-.2-.4-.1-.1.1 0 .2.1.2.2 0 .9.9 2.5 1.7 0 .1-.3.1-.5.1-.4 0-.9 0-1.1-.3-.2-.2-.5-.4-.8-.3-.1.1 0 .2.1.2.1 0 .2 0 .3.1l-.4 0c-.1.1 0 .2.1.2.1 0 .3-.1.4 0-.1 0-.3 0-.3 0-.1.1 0 .2.1.2.2 0 1.9 1 3.3-.2.2 0 1.6 0 2.2-.4.4.4.4.3.7.4.3.1.5.1.3.2-.1.1-.4 0-.6 0-.6 0-.8-.4-1-.2-.1.2 0 .2.2.2-.2 0-.4 0-.3.2.1.3.4-.1.5.1-.1 0-.2 0-.2.1 0 .1.2.2.5 0 .1-.1.3-.1.4-.1.4 0 1.3.2 1.6-.1.1-.1 0-.2-.1-.3-.1-.1-.1-.2-.1-.5.3.1.8.1 1.3 0 .7-.1.9.1.9.4 0 .2-.1.2-.2.2-.4 0-.6-.1-.7-.1-.1 0-.2.2 0 .2-.1.1-.1.2 0 .2.1 0 .2 0 .3 0-.1.1-.3.2-.2.3.1.1.2.1.3 0 .1-.1.3-.2.5-.3 0 0 .3-.8.1-1.3"/><path d="m48.5 20.6h-2.3l2-2-2.5 1 .6-2.9-1.7 2.3-.9-2.5-.2 2.7-1.7-1.9.9 3.1h-1.7c0 0 1.8 1.3 2.2 1.7h2.8c.6-.8 2.5-1.5 2.5-1.5"/></g><g fill="#83bf4f"><path d="m41.1 23.2c0 .6-1.5 1.1-2.1 1.1-.6 0-1.1-.5-1.1-1.1s.5-1.1 1.1-1.1c.6 0 2.1.5 2.1 1.1"/><ellipse cx="41.1" cy="26.4" rx=".5" ry="1.1"/><ellipse cx="45.4" cy="26.4" rx=".5" ry="1.1"/><ellipse cx="47.5" cy="26.4" rx=".5" ry="1.1"/><path d="m48.6 23.8c0 2.3-1.9 2.4-4.2 2.4-2.3 0-4.3-.2-4.3-2.4 0-1.4 1.9-2.7 4.3-2.7 2.3-.1 4.2 1 4.2 2.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ff.svg
index dae1f06..107bf17 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#00afca" cx="32" cy="32" r="30"/><g fill="#ffe62e"><path d="m56.698 33.14c-.666-.408-1.466.148-1.507.77-.322 4.879-8.852 6.158-13 6.229-4.127.068-12.899-1.439-13.226-6.229-.044-.65-.825-1.141-1.507-.77-2.072 1.131-2.797 3.211-2.308 5.252.916 3.824 5.603 6.496 9.607 7.67-.269.701-.438 1.408-.485 2.082-.06.844 1.098 1.086 1.709.629 2.26-1.688 5.881-2.367 8.871-2.408 1.29-.018 1.292-1.797 0-1.779-2.688.037-5.574.496-8.03 1.613.947-2.064 3-4.154 5.26-4.281.006-.002.01-.004.016-.004.03 0 .064.002.096.004 4.789.08 12.48-1.592 14.508-6.05.316.764.286 1.672.043 2.471-.988 3.25-4.529 4.521-7.758 5.395-1.232.332-.707 2.051.532 1.715 4.243-1.146 7.511-2.766 9.157-6.637.854-2.01.007-4.451-1.971-5.667m-21.12 11.281c-3.253-.9-5.826-2.516-7.776-5.08-.842-1.107-1.096-2.568-.414-3.668 1.459 3.541 6.398 5.252 10.834 5.906-1.063.76-1.967 1.756-2.644 2.842"/><circle cx="42" cy="27" r="7.686"/><path d="m42 18.267c.456-.006.628-.293.628-.635 0-.457-.628-2.632-.628-2.632s-.63 2.175-.63 2.632c0 .342.172.635.63.635"/></g><g transform="matrix(0 1-1 0 0 0)"/><g transform="scale(-1-1)"/><g transform="matrix(0-1 1 0 0 0)"/><g fill="#ffe62e"><path d="m45.34 18.932c.425.166.692-.029.822-.346.176-.425.428-2.673.428-2.673s-1.414 1.769-1.589 2.189c-.131.317-.084.654.339.83"/><path d="m50.07 30.34c-.17.425.028.694.346.823.422.175 2.673.427 2.673.427s-1.77-1.411-2.192-1.586c-.317-.132-.652-.085-.827.336"/><path d="m38.658 35.07c-.424-.169-.691.029-.822.346-.175.422-.428 2.673-.428 2.673s1.414-1.771 1.588-2.192c.132-.317.085-.654-.338-.827"/><path d="m33.932 23.657c.17-.425-.027-.691-.344-.823-.424-.175-2.674-.427-2.674-.427s1.771 1.414 2.191 1.586c.317.132.653.085.827-.336"/><path d="m48.17 20.823c.327.319.651.24.894-.004.322-.322 1.418-2.307 1.418-2.307s-1.984 1.095-2.307 1.417c-.242.243-.326.572-.005.894"/><path d="m48.17 33.17c-.317.328-.237.649.005.893.322.322 2.307 1.417 2.307 1.417s-1.096-1.981-1.418-2.307c-.243-.241-.571-.325-.894-.003"/><path d="m35.826 33.17c-.328-.32-.65-.238-.893.003-.324.325-1.418 2.307-1.418 2.307s1.982-1.095 2.306-1.417c.243-.244.328-.571.005-.893"/><path d="m35.826 20.823c.318-.326.238-.651-.005-.894-.323-.322-2.306-1.417-2.306-1.417s1.094 1.984 1.418 2.307c.243.244.569.329.893.004"/><path d="m50.07 23.657c.181.418.51.468.826.336.423-.172 2.192-1.586 2.192-1.586s-2.251.252-2.673.427c-.316.132-.52.401-.345.823"/><path d="m45.34 35.07c-.421.179-.47.51-.339.826.175.421 1.589 2.192 1.589 2.192s-.252-2.251-.428-2.673c-.13-.315-.401-.519-.822-.345"/><path d="m33.932 30.34c-.18-.418-.51-.468-.826-.336-.421.175-2.191 1.586-2.191 1.586s2.25-.252 2.674-.427c.315-.129.518-.401.343-.823"/><path d="m38.658 18.932c.42-.182.47-.513.338-.829-.174-.421-1.588-2.189-1.588-2.189s.253 2.248.428 2.673c.131.315.4.517.822.345"/><path d="m43.705 18.434c.449.082.672-.164.738-.501.09-.447-.102-2.704-.102-2.704s-1.041 2.01-1.131 2.462c-.065.332.046.652.495.743"/><path d="m50.564 28.704c-.083.447.164.673.5.737.449.091 2.705-.103 2.705-.103s-2.01-1.039-2.459-1.13c-.337-.063-.656.048-.746.496"/><path d="m40.3 35.563c-.449-.082-.673.164-.74.501-.09.447.103 2.704.103 2.704s1.04-2.01 1.13-2.459c.066-.335-.045-.655-.493-.746"/><path d="m33.436 25.296c.084-.45-.162-.673-.499-.74-.448-.088-2.705.103-2.705.103s2.01 1.039 2.459 1.13c.336.066.655-.045.745-.493"/><path d="m46.852 19.736c.383.249.686.108.875-.179.254-.378.939-2.538.939-2.538s-1.729 1.461-1.984 1.842c-.19.284-.209.623.17.875"/><path d="m49.26 31.851c-.25.384-.107.686.178.875.381.256 2.538.941 2.538.941s-1.46-1.731-1.84-1.986c-.286-.191-.622-.211-.876.17"/><path d="m37.15 34.26c-.383-.249-.685-.105-.875.179-.253.381-.939 2.538-.939 2.538s1.731-1.461 1.984-1.842c.191-.283.209-.62-.17-.875"/><path d="m34.74 22.15c.248-.384.106-.683-.18-.875-.379-.252-2.537-.94-2.537-.94s1.461 1.733 1.84 1.985c.285.191.621.211.877-.17"/><path d="m49.26 22.15c.258.378.59.36.876.17.38-.252 1.84-1.985 1.84-1.985s-2.157.688-2.538.94c-.286.193-.432.498-.178.875"/><path d="m46.852 34.26c-.376.258-.359.592-.17.875.255.381 1.984 1.842 1.984 1.842s-.686-2.157-.939-2.538c-.19-.285-.495-.434-.875-.179"/><path d="m34.74 31.851c-.26-.378-.592-.36-.877-.17-.379.255-1.84 1.986-1.84 1.986s2.158-.686 2.537-.941c.287-.19.432-.495.18-.875"/><path d="m37.15 19.736c.377-.258.36-.592.17-.875-.253-.381-1.984-1.842-1.984-1.842s.687 2.16.939 2.538c.191.288.495.434.875.179"/><path d="m50.564 25.296c.096.445.408.56.746.492.447-.091 2.459-1.13 2.459-1.13s-2.256-.19-2.705-.103c-.335.068-.588.294-.5.741"/><path d="m43.705 35.563c-.448.097-.561.41-.494.746.09.448 1.131 2.459 1.131 2.459s.191-2.257.102-2.704c-.067-.336-.292-.588-.739-.501"/><path d="m33.436 28.704c-.096-.448-.408-.56-.745-.495-.448.091-2.459 1.13-2.459 1.13s2.257.193 2.705.103c.336-.065.588-.291.499-.738"/><path d="m40.3 18.434c.447-.097.56-.41.492-.743-.09-.448-1.13-2.462-1.13-2.462s-.192 2.257-.103 2.704c.068.337.292.588.741.501"/><path d="m16.505 51.634h-1.113v3.698h-2.242c1.062.859 2.181 1.649 3.355 2.359v-6.06"/><path d="m15.393 8.668v3.699h1.113v-6.06c-1.174.71-2.293 1.5-3.355 2.359h2.242"/><path d="m12.945 8.829c-.297.244-.586.499-.874.754l3.01 6.484h-2.521v-3.7h-1.111v3.7h-2.522l2.91-6.277c-.817.742-1.588 1.534-2.32 2.362l-2.293 4.944 3.91 8.432h-2.522v-3.703h-1.112v9.813h1.113v-4.052h2.616l-1.503 4.414 1.502 4.414h-2.616v-4.052h-1.112v9.81h1.113v-3.699h2.522l-3.91 8.432 2.293 4.943c.731.828 1.502 1.62 2.32 2.362l-2.91-6.279h2.521v3.703h1.111v-3.703h2.521l-3.01 6.486c.288.255.576.51.874.754l3.835-8.267-3.91-8.432h2.522v3.699h1.113v-9.81h-1.113v4.052h-2.616l1.503-4.413-1.502-4.414h2.616v4.052h1.113v-9.813h-1.113v3.703h-2.522l3.91-8.432-3.836-8.267m2.133 37.05h-2.521v-3.703h-1.111v3.703h-2.523l3.077-6.637 3.078 6.637m-3.078-10.63l-.792-2.329h1.583l-.791 2.329m.792-4.161h-1.583l.791-2.329.792 2.329m-.792-6.322l-3.077-6.637h2.521v3.699h1.111v-3.699h2.521l-3.076 6.637"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#00afca"/><g fill="#ffe62e"><path d="m56.7 33.1c-.7-.4-1.5.1-1.5.8-.3 4.9-8.9 6.2-13 6.2-4.1.1-12.9-1.4-13.2-6.2 0-.7-.8-1.1-1.5-.8-2.1 1.1-2.8 3.2-2.3 5.3.9 3.8 5.6 6.5 9.6 7.7-.3.7-.4 1.4-.5 2.1-.1.8 1.1 1.1 1.7.6 2.3-1.7 5.9-2.4 8.9-2.4 1.3 0 1.3-1.8 0-1.8-2.7 0-5.6.5-8 1.6.9-2.1 3-4.2 5.3-4.3 0 0 .1 0 .1 0 4.8.1 12.5-1.6 14.5-6.1.3.8.3 1.7 0 2.5-1 3.2-4.5 4.5-7.8 5.4-1.2.3-.7 2.1.5 1.7 4.2-1.1 7.5-2.8 9.2-6.6.8-2 0-4.4-2-5.7m-21.1 11.3c-3.3-.9-5.8-2.5-7.8-5.1-.8-1.1-1.1-2.6-.4-3.7 1.5 3.5 6.4 5.3 10.8 5.9-1 .8-1.9 1.8-2.6 2.9"/><circle cx="42" cy="27" r="7.7"/><path d="m42 18.3c.5 0 .6-.3.6-.6 0-.5-.6-2.6-.6-2.6s-.6 2.2-.6 2.6c0 .3.1.6.6.6"/></g><g transform="matrix(0 1-1 0 0 0)"/><g transform="scale(-1-1)"/><g transform="matrix(0-1 1 0 0 0)"/><g fill="#ffe62e"><path d="m45.3 18.9c.4.2.7 0 .8-.3.2-.4.4-2.7.4-2.7s-1.4 1.8-1.6 2.2c0 .3 0 .7.4.8"/><path d="m50.1 30.3c-.2.4 0 .7.3.8.4.2 2.7.4 2.7.4s-1.8-1.4-2.2-1.6c-.3 0-.7 0-.8.4"/><path d="m38.7 35.1c-.4-.2-.7 0-.8.3-.2.4-.4 2.7-.4 2.7s1.4-1.8 1.6-2.2c0-.3 0-.7-.4-.8"/><path d="m33.9 23.7c.2-.4 0-.7-.3-.8-.4-.2-2.7-.4-2.7-.4s1.8 1.4 2.2 1.6c.3 0 .7 0 .8-.4"/><path d="m48.2 20.8c.3.3.7.2.9 0 .3-.3 1.4-2.3 1.4-2.3s-2 1.1-2.3 1.4c-.3.3-.3.6 0 .9"/><path d="m48.2 33.2c-.3.3-.2.6 0 .9.3.3 2.3 1.4 2.3 1.4s-1.1-2-1.4-2.3c-.3-.3-.6-.3-.9 0"/><path d="m35.8 33.2c-.3-.3-.7-.2-.9 0-.3.3-1.4 2.3-1.4 2.3s2-1.1 2.3-1.4c.3-.3.3-.6 0-.9"/><path d="m35.8 20.8c.3-.3.2-.7 0-.9-.3-.3-2.3-1.4-2.3-1.4s1.1 2 1.4 2.3c.3.3.6.3.9 0"/><path d="m50.1 23.7c.2.4.5.5.8.3.4-.2 2.2-1.6 2.2-1.6s-2.3.3-2.7.4c-.3.2-.5.4-.3.9"/><path d="m45.3 35.1c-.4.2-.5.5-.3.8.2.4 1.6 2.2 1.6 2.2s-.3-2.3-.4-2.7c-.2-.3-.4-.5-.9-.3"/><path d="m33.9 30.3c-.2-.4-.5-.5-.8-.3-.4.2-2.2 1.6-2.2 1.6s2.3-.3 2.7-.4c.3-.2.5-.4.3-.9"/><path d="m38.7 18.9c.4-.2.5-.5.3-.8-.2-.4-1.6-2.2-1.6-2.2s.3 2.2.4 2.7c.2.3.4.5.9.3"/><path d="m43.7 18.4c.4.1.7-.2.7-.5.1-.4-.1-2.7-.1-2.7s-1 2-1.1 2.5c-.1.3.1.6.5.7"/><path d="m50.6 28.7c-.1.4.2.7.5.7.4.1 2.7-.1 2.7-.1s-2-1-2.5-1.1c-.3-.1-.6.1-.7.5"/><path d="m40.3 35.6c-.4-.1-.7.2-.7.5-.1.4.1 2.7.1 2.7s1-2 1.1-2.5c.1-.3-.1-.6-.5-.7"/><path d="m33.4 25.3c.1-.5-.2-.7-.5-.7-.4-.1-2.7.1-2.7.1s2 1 2.5 1.1c.3.1.6-.1.7-.5"/><path d="m46.9 19.7c.4.2.7.1.9-.2.3-.4.9-2.5.9-2.5s-1.7 1.5-2 1.8c-.2.3-.2.7.2.9"/><path d="m49.3 31.9c-.2.4-.1.7.2.9.4.3 2.5.9 2.5.9s-1.5-1.7-1.8-2c-.3-.2-.7-.2-.9.2"/><path d="m37.1 34.3c-.4-.2-.7-.1-.9.2-.2.3-.9 2.5-.9 2.5s1.7-1.5 2-1.8c.2-.3.2-.7-.2-.9"/><path d="m34.7 22.1c.2-.4.1-.7-.2-.9-.3-.2-2.5-.9-2.5-.9s1.5 1.7 1.8 2c.3.2.7.2.9-.2"/><path d="m49.3 22.1c.3.4.6.4.9.2.4-.3 1.8-2 1.8-2s-2.2.7-2.5.9c-.3.3-.5.6-.2.9"/><path d="m46.9 34.3c-.4.3-.4.6-.2.9.3.4 2 1.8 2 1.8s-.7-2.2-.9-2.5c-.3-.3-.6-.5-.9-.2"/><path d="m34.7 31.9c-.3-.4-.6-.4-.9-.2-.4.3-1.8 2-1.8 2s2.2-.7 2.5-.9c.3-.3.5-.6.2-.9"/><path d="m37.1 19.7c.4-.3.4-.6.2-.9-.3-.4-2-1.8-2-1.8s.7 2.2.9 2.5c.3.3.6.5.9.2"/><path d="m50.6 25.3c.1.4.4.6.7.5.4-.1 2.5-1.1 2.5-1.1s-2.3-.2-2.7-.1c-.4 0-.6.2-.5.7"/><path d="m43.7 35.6c-.4.1-.6.4-.5.7.1.4 1.1 2.5 1.1 2.5s.2-2.3.1-2.7c0-.4-.2-.6-.7-.5"/><path d="m33.4 28.7c-.1-.4-.4-.6-.7-.5-.4.1-2.5 1.1-2.5 1.1s2.3.2 2.7.1c.4 0 .6-.2.5-.7"/><path d="m40.3 18.4c.4-.1.6-.4.5-.7-.1-.4-1.1-2.5-1.1-2.5s-.2 2.3-.1 2.7c0 .4.2.6.7.5"/><path d="m16.5 51.6h-1.1v3.7h-2.2c1.1.9 2.2 1.6 3.4 2.4v-6.1z"/><path d="m15.4 8.7v3.7h1.1v-6.1c-1.2.7-2.3 1.5-3.4 2.4h2.3"/><path d="m12.9 8.8c-.3.2-.6.5-.9.8l3 6.5h-2.5v-3.7h-1.1v3.7h-2.5l2.9-6.3c-.8.7-1.6 1.5-2.3 2.4l-2.3 4.9 3.9 8.4h-2.5v-3.7h-1.1v9.8h1.1v-4.1h2.6l-1.5 4.5 1.5 4.4h-2.6v-4.1h-1.1v9.8h1.1v-3.7h2.5l-3.9 8.4 2.3 4.9c.7.8 1.5 1.6 2.3 2.4l-2.9-6.3h2.5v3.7h1.1v-3.7h2.5l-3 6.5c.3.3.6.5.9.8l3.8-8.3-3.9-8.4h2.5v3.7h1.1v-9.8h-1.1v4.1h-2.6l1.5-4.4-1.5-4.4h2.6v4.1h1.1v-9.8h-1.1v3.7h-2.5l3.9-8.4-3.8-8.4m2.2 37.1h-2.5v-3.7h-1.1v3.7h-2.6l3.1-6.6 3.1 6.6m-3.1-10.7l-.8-2.3h1.6l-.8 2.3m.8-4.1h-1.6l.8-2.3.8 2.3m-.8-6.3l-3.1-6.6h2.5v3.7h1.1v-3.7h2.5l-3 6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f0.svg
new file mode 100644
index 0000000..0ae3f9a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f0.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m20.2 17.5h6v12l11.2-12h7.8l-11.9 11.9 12.5 17.1h-7.8l-8.9-12.7-2.9 3v9.7h-6v-29" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e6.svg
index 7b36e82..a9ebf08 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e6.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M2,32c0,5.885,1.701,11.367,4.628,16h50.744C60.3,43.367,62,37.885,62,32s-1.7-11.369-4.628-16H6.628
- C3.701,20.631,2,26.115,2,32z"/><g fill="#ed4c5c"><path d="M57.372,16C52.058,7.59,42.685,2,32,2C21.316,2,11.943,7.59,6.628,16H57.372z"/><path d="M6.628,48C11.943,56.41,21.316,62,32,62c10.685,0,20.058-5.59,25.372-14H6.628z"/></g><circle fill="#fff" cx="32" cy="32" r="10"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#2a5f9e"/><g fill="#ed4c5c"><path d="M57.4,16C52.1,7.6,42.7,2,32,2C21.3,2,11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14c10.7,0,20.1-5.6,25.4-14H6.6z"/></g><circle cx="32" cy="32" r="10" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e7.svg
index f0c527f..d000185 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,5.883,1.701,11.367,4.629,16h50.744C60.299,43.367,62,37.883,62,32c0-5.885-1.701-11.369-4.627-16
- H6.629C3.701,20.631,2,26.115,2,32z"/><g fill="#ed4c5c"><path d="M57.373,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.629,16H57.373z"/><path d="M6.629,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.373-14H6.629z"/></g><g fill-rule="evenodd"><path fill="#83bf4f" d="m23.537 45c0 0 6.516-4.291 14.09-.475v-1.582c0 0-6.416-4.166-1.014-4.76 5.404-.593 8.383 2.239 8.383 2.239v-1.357c0 0-9.182-4.879-1.271-3.01v-1.371c0 0-7.123-2.488-2.822-2.488s1.85 0 1.85 0v-.906c0 0-7.283-1.014-1.152-1.412v-.926c0 0-11.02-5.074-2.789-3.066v-1.01c0 0-3.98-.756-.939-1.207 0 0-1.563-2.117-4.197-2.117-2.637 0-2.207-2.557-2.207-2.557l-3.264 3.523c0 0 2.264-.242-1.434 1.736 0 0 3.074.348-3.91 4.445 0 0 2.588-.959 2.588.701s-4.592 3.965-4.592 3.965l.381 1.09c0 0 3.215-2.488 2.984-.83-.23 1.66-5.226 4.301-5.226 4.301l.479.83c0 0 4.057-2.414 4.211-1.359 0 0 .584.707-3.422 2.01l.512.779c0 0 6.127-3.02 7.658-.83s-5.05 4.525-5.05 4.525l.154 1.109"/><g fill="#f9f9f9"><ellipse cx="29.77" cy="26.639" rx=".92" ry=".904"/><ellipse cx="33.413" cy="28.13" rx=".919" ry=".904"/><ellipse cx="26.01" cy="32.928" rx=".919" ry=".906"/><ellipse cx="36.02" cy="33.834" rx=".918" ry=".904"/><ellipse cx="38.927" cy="34.738" rx=".919" ry=".906"/><ellipse cx="27.1" cy="28.842" rx=".919" ry=".906"/><ellipse cx="32.19" cy="32.05" rx=".919" ry=".906"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16c0-5.9-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z"/></g><path d="m23.5 45c0 0 6.5-4.3 14.1-.5v-1.6c0 0-6.4-4.2-1-4.8 5.4-.6 8.4 2.2 8.4 2.2v-1.4c0 0-9.2-4.9-1.3-3v-1.4c0 0-7.1-2.5-2.8-2.5s1.8 0 1.8 0v-.9c0 0-7.3-1-1.2-1.4v-.7c0 0-11-5.1-2.8-3.1v-1c0 0-4-.8-.9-1.2 0 0-1.6-2.1-4.2-2.1-2.6 0-2.2-2.6-2.2-2.6l-3.3 3.5c0 0 2.3-.2-1.4 1.7 0 0 3.1.3-3.9 4.4 0 0 2.6-1 2.6.7s-4.6 4-4.6 4l.4 1.1c0 0 3.2-2.5 3-.8-.2 1.7-5.2 4.3-5.2 4.3l.5.8c0 0 4.1-2.4 4.2-1.4 0 0 .6.7-3.4 2l.5.8c0 0 6.1-3 7.7-.8s-5.1 4.5-5.1 4.5l.1 1.2" fill="#83bf4f"/><g fill="#f9f9f9"><ellipse cx="29.8" cy="26.6" rx=".9" ry=".9"/><ellipse cx="33.4" cy="28.1" rx=".9" ry=".9"/><ellipse cx="26" cy="32.9" rx=".9" ry=".9"/><ellipse cx="36" cy="33.8" rx=".9" ry=".9"/><ellipse cx="38.9" cy="34.7" rx=".9" ry=".9"/><ellipse cx="27.1" cy="28.8" rx=".9" ry=".9"/><ellipse cx="32.2" cy="32" rx=".9" ry=".9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e8.svg
index dd90d97..9f52557 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#49c3f2" cx="32" cy="32" r="30"/><path fill="#fff" d="m32 15l-15 30h30z"/><path fill="#3e4347" d="m32 21l-12 24h24z"/><path fill="#ffce31" d="m32 33l-12 12h24z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#49c3f2"/><path fill="#fff" d="m32 15l-15 30h30z"/><path fill="#3e4347" d="m32 21l-12 24h24z"/><path fill="#ffce31" d="m32 33l-12 12h24z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1ee.svg
index 124a751..51b1147 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#2a5f9e" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><path fill="#ffce31" d="m28.689 20.896c0-2.846-.653-5.154-5.186-5.154-1.228 0-1.98.273-2.828.477-.17-.291-3.193-.281-3.363.021-.812-.178-1.55-.416-2.723-.416-5.3 0-5.146 2.289-5.146 5.113 0 .446-.443 1.286-.443 1.286l1.94 6.777h16.12l1.94-6.777c0 0-.311-.866-.311-1.327"/><g fill="#3e4347"><ellipse cx="19" cy="29" rx="8" ry="1"/><path d="m25.66 25h-1.068c0-1.322-.674-2.4-1.505-2.4-.832 0-1.511 1.078-1.511 2.4h-1.069c0-1.322-.677-2.4-1.507-2.4-.833 0-1.507 1.078-1.507 2.4h-1.069c0-1.322-.679-2.4-1.512-2.4-.83 0-1.505 1.078-1.505 2.4h-1.068c0-4-3.339-2.818-3.339-2.818.49-.762 1.14-1.182 1.83-1.182.83 0 1.57.613 2.041 1.564.472-.951 1.211-1.564 2.041-1.564.831 0 1.573.615 2.044 1.564.474-.949 1.212-1.564 2.044-1.564.83 0 1.57.615 2.041 1.564.474-.949 1.216-1.564 2.046-1.564.831 0 1.569.613 2.041 1.564.472-.951 1.212-1.564 2.042-1.564.69 0 1.34.42 1.83 1.182 0 0-3.34-1.182-3.34 2.818"/></g><g fill="#ffce31"><ellipse cx="16.839" cy="15.876" rx=".527" ry=".533"/><ellipse cx="15.638" cy="15.57" rx=".526" ry=".534"/><ellipse cx="14.431" cy="15.367" rx=".526" ry=".534"/><ellipse cx="13.225" cy="15.247" rx=".527" ry=".534"/><ellipse cx="12.04" cy="15.314" rx=".527" ry=".534"/><ellipse cx="10.914" cy="15.706" rx=".527" ry=".534"/><ellipse cx="9.963" cy="16.413" rx=".528" ry=".534"/><ellipse cx="9.289" cy="17.399" rx=".527" ry=".533"/><ellipse cx="8.965" cy="18.56" rx=".527" ry=".533"/><ellipse cx="8.977" cy="19.763" rx=".527" ry=".533"/><ellipse cx="9.204" cy="20.942" rx=".526" ry=".534"/><ellipse cx="21.16" cy="15.876" rx=".527" ry=".533"/><ellipse cx="22.362" cy="15.57" rx=".527" ry=".534"/><ellipse cx="23.569" cy="15.367" rx=".527" ry=".534"/><ellipse cx="24.775" cy="15.247" rx=".527" ry=".534"/><ellipse cx="25.958" cy="15.314" rx=".527" ry=".534"/><ellipse cx="27.09" cy="15.706" rx=".528" ry=".534"/><ellipse cx="28.04" cy="16.413" rx=".525" ry=".534"/><ellipse cx="28.71" cy="17.399" rx=".527" ry=".533"/><ellipse cx="29.04" cy="18.56" rx=".527" ry=".533"/><ellipse cx="29.02" cy="19.763" rx=".527" ry=".533"/><ellipse cx="28.796" cy="20.942" rx=".527" ry=".533"/><path d="m18.342 11.22c.063.256.268.454.527.505l-.766 1.431.282.529c-.556.2-.984.661-1.14 1.236-.04.151-.064.31-.064.474 0 1 .814 1.817 1.818 1.817s1.818-.813 1.818-1.817c0-.164-.024-.322-.064-.474-.155-.575-.585-1.036-1.14-1.236l.282-.529-.767-1.431c.26-.051.466-.249.528-.505l1.124.716 1.414-.896-1.414-.896-1.135.722c-.074-.245-.28-.432-.537-.474l.786-1.469-.894-1.68-.896 1.679.786 1.469c-.257.042-.463.229-.537.474l-1.135-.722-1.414.896 1.414.896 1.124-.715"/></g><g fill="#3e4347"><path d="m15.464 20.724c-.486.486-1.08.798-1.704.944.949.236 1.991-.006 2.734-.748 1.125-1.125 1.125-2.95 0-4.075-.133-.133-.275-.245-.425-.347.74 1.352.539 3.081-.605 4.226"/><path d="m22.536 20.724c.486.486 1.08.798 1.704.944-.949.236-1.991-.006-2.733-.748-1.125-1.125-1.125-2.95 0-4.075.132-.133.275-.245.424-.347-.74 1.352-.539 3.081.605 4.226"/><ellipse transform="matrix(.9918-.1281.1281.9918-3.145 2.132)" cx="15.01" cy="25.527" rx=".358" ry="1.645"/><ellipse transform="matrix(.9607-.2776.2776.9607-6.705 4.13)" cx="11.231" cy="25.745" rx=".359" ry="1.646"/><ellipse transform="matrix(-.9918-.1281.1281-.9918 42.526 53.789)" cx="22.992" cy="25.527" rx=".358" ry="1.645"/><ellipse transform="matrix(-.9607-.2776.2776-.9607 45.34 57.909)" cx="26.769" cy="25.745" rx=".359" ry="1.646"/><ellipse cx="19" cy="25.43" rx=".375" ry="1.718"/><circle cx="19" cy="20.02" r="1.143"/><circle cx="19" cy="18.03" r="1"/><circle cx="19" cy="16.409" r=".75"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#ed4c5c"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#2a5f9e"/><path d="m28.7 20.9c0-2.8-.7-5.2-5.2-5.2-1.2 0-2 .3-2.8.5-.2-.3-3.2-.3-3.4 0-.8-.2-1.6-.4-2.7-.4-5.3 0-5.1 2.3-5.1 5.1 0 .4-.4 1.3-.4 1.3l1.9 6.8h16.1l1.9-6.8c0 0-.3-.8-.3-1.3" fill="#ffce31"/><g fill="#3e4347"><ellipse cx="19" cy="29" rx="8" ry="1"/><path d="m25.7 25h-1.1c0-1.3-.7-2.4-1.5-2.4-.8 0-1.5 1.1-1.5 2.4h-1.1c0-1.3-.7-2.4-1.5-2.4-.8 0-1.5 1.1-1.5 2.4h-1.1c0-1.3-.7-2.4-1.5-2.4-.8 0-1.5 1.1-1.5 2.4h-1.1c0-4-3.3-2.8-3.3-2.8.5-.8 1.1-1.2 1.8-1.2.8 0 1.6.6 2 1.6.5-1 1.2-1.6 2-1.6.8 0 1.6.6 2 1.6.5-.9 1.2-1.6 2-1.6.8 0 1.6.6 2 1.6.5-.9 1.2-1.6 2-1.6.8 0 1.6.6 2 1.6.5-1 1.2-1.6 2-1.6.7 0 1.3.4 1.8 1.2.4 0-2.9-1.2-2.9 2.8"/></g><g fill="#ffce31"><ellipse cx="16.8" cy="15.9" rx=".5" ry=".5"/><ellipse cx="15.6" cy="15.6" rx=".5" ry=".5"/><ellipse cx="14.4" cy="15.4" rx=".5" ry=".5"/><ellipse cx="13.2" cy="15.2" rx=".5" ry=".5"/><ellipse cx="12" cy="15.3" rx=".5" ry=".5"/><ellipse cx="10.9" cy="15.7" rx=".5" ry=".5"/><ellipse cx="10" cy="16.4" rx=".5" ry=".5"/><ellipse cx="9.3" cy="17.4" rx=".5" ry=".5"/><ellipse cx="9" cy="18.6" rx=".5" ry=".5"/><ellipse cx="9" cy="19.8" rx=".5" ry=".5"/><ellipse cx="9.2" cy="20.9" rx=".5" ry=".5"/><ellipse cx="21.2" cy="15.9" rx=".5" ry=".5"/><ellipse cx="22.4" cy="15.6" rx=".5" ry=".5"/><ellipse cx="23.6" cy="15.4" rx=".5" ry=".5"/><ellipse cx="24.8" cy="15.2" rx=".5" ry=".5"/><ellipse cx="26" cy="15.3" rx=".5" ry=".5"/><ellipse cx="27.1" cy="15.7" rx=".5" ry=".5"/><ellipse cx="28" cy="16.4" rx=".5" ry=".5"/><ellipse cx="28.7" cy="17.4" rx=".5" ry=".5"/><ellipse cx="29" cy="18.6" rx=".5" ry=".5"/><ellipse cx="29" cy="19.8" rx=".5" ry=".5"/><ellipse cx="28.8" cy="20.9" rx=".5" ry=".5"/><path d="m18.3 11.2c.1.3.3.5.5.5l-.8 1.4.3.5c-.6.2-1 .7-1.1 1.2 0 .2-.1.3-.1.5 0 1 .8 1.8 1.8 1.8s1.8-.8 1.8-1.8c0-.2 0-.3-.1-.5-.2-.6-.6-1-1.1-1.2l.3-.5-.8-1.4c.3-.1.5-.2.5-.5l1.1.7 1.4-.9-1.4-.9-1.1.7c-.1-.2-.3-.4-.5-.5l.8-1.5-.8-1.6-.9 1.7.8 1.5c-.3 0-.5.2-.5.5l-1.1-.7-1.5.8 1.4.9 1.1-.7"/></g><g fill="#3e4347"><path d="m15.5 20.7c-.5.5-1.1.8-1.7.9.9.2 2 0 2.7-.7 1.1-1.1 1.1-3 0-4.1-.1-.1-.3-.2-.4-.3.7 1.4.5 3.1-.6 4.2"/><path d="m22.5 20.7c.5.5 1.1.8 1.7.9-.9.2-2 0-2.7-.7-1.1-1.1-1.1-3 0-4.1.1-.1.3-.2.4-.3-.7 1.4-.5 3.1.6 4.2"/><ellipse transform="matrix(.9918-.1281.1281.9918-3.1463 2.1329)" cx="15" cy="25.5" rx=".4" ry="1.6"/><ellipse transform="matrix(.9607-.2776.2776.9607-6.7054 4.1296)" cx="11.2" cy="25.7" rx=".4" ry="1.6"/><ellipse transform="matrix(.1281-.9918.9918.1281-5.2682 45.0593)" cx="23" cy="25.5" rx="1.6" ry=".4"/><ellipse transform="matrix(.2776-.9607.9607.2776-5.3957 44.3142)" cx="26.8" cy="25.7" rx="1.6" ry=".4"/><ellipse cx="19" cy="25.4" rx=".4" ry="1.7"/><circle cx="19" cy="20" r="1.1"/><circle cx="19" cy="18" r="1"/><circle cx="19" cy="16.4" r=".8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f0.svg
index 9b402cf..5eb3cd7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m29.24 8h20.762c-5.01-3.767-11.246-6-18-6-6.755 0-12.986 2.233-18 6h11.589v48h-11.589c5.01 3.767 11.246 6 18 6 6.754 0 12.986-2.233 18-6h-20.762v-48"/><path fill="#c94747" d="M62,32c0-9.814-4.714-18.526-12-24H29.238v48H50C57.286,50.526,62,41.814,62,32z"/><path fill="#ff8736" d="m25.588 8h-11.589c-.14.104-.273.216-.411.323v47.35c.138.107.271.219.411.323h11.589v-48"/><path fill="#699635" d="M2,32c0,9.626,4.539,18.188,11.588,23.677V8.323C6.539,13.813,2,22.374,2,32z"/><g fill="#ffce31"><path d="m34.414 49.588c-1.056.791-3.219.734-4.136 1.658-1.1 1.09.086 2.529.075 2.654l-.06.76c0 0 .74.01 1.054.059.469.072.653.455 1.526.398 2.197-.143 2.109-2.123 2.233-3.816.111-.645.366-1.484.511-2.129.125-.551.151-1.43.152-1.432-.001.006-.645 1.313-1.355 1.848"/><path d="m35.11 12.699c-.124-1.691-.036-3.672-2.233-3.816-.873-.057-1.058.326-1.526.398-.314.049-1.054.059-1.054.059l.06.76c.011.125-1.175 1.564-.075 2.654.917.924 3.08.867 4.136 1.658.71.535 1.354 1.844 1.356 1.848-.001-.004-.027-.881-.152-1.432-.145-.644-.4-1.484-.512-2.129"/><path d="m61.809 28.656c-.769-.039-1.504-.074-2.179-.094.276.24-.758-3.48-.212-3.996.683-.646.215-4.211-.378-4.973.011-.117.046-.268.077-.412-.33-.695-.68-1.378-1.061-2.042-1.109-.365-2.048-1.126-2.435.526-.404-.523-1.516-1.6-2.201-1.27-.083.412-.207.814-.37 1.203-.467.203-2.338-.82-3.273-.637.008 1.979-1.17 1.209-2.582 1.883-2.57 1.229-1.306-1.088-3.03-1.088-3.224 0 1.319 4.863 2.056 5.377.115-.191-.271-.643-.021-.822-.004.002 1.095.869 1.095.639.053-.291.141-.568.265-.834.324.51 2.644 3.162 2.089 3.688-.146.139-2.279-.051-2.332-.135.114-.207.223-.742.177-.791-.687-.738-2.023-.793-2.675-.582-.646.209-1.701 1.037-1.78 2.047.405-.094 1.837-.453 2.01-.297.093.088-.384.76-.43.908.584.006 1.848.311 2.084.291.126-.248.254-.494.385-.74.27.424.548.844.835 1.256.297.217.939-1.762 1.472-.398.179.459-4.893 5.262-5.177 7.06-.158 1.014.012 2.02.408 2.938-.914-1-3.339-3.707-3.857-3.432-1.491.793-.155 5.365.518 6.346.783 1.139 5.524 3.805 5.524.205 0-.217-.156-.543-.408-.928 1.119.742 2.471 1.266 3.062 1.957.702.822 1.292 3.039 1.168 4.168-.325 2.934-4.804.23-4.804 3.424 0-.4 4.391.15 4.715-.092.721-.537 2.86 1.182 2.471-1.193-.396-2.412 2.511-1.266 2.511-3.211 0-1.041-3.134.232-1.372-2.471.683-1.045.176-2.367.985-1.334 1.256 1.604 3.42.468 5.748-.698.721-2.58 1.119-5.294 1.119-8.106 0-1.131-.069-2.245-.191-3.344"/><path d="m39.98 41.82c-.186.672-1.183-3.139-.969-3.342.37.074.745.104 1.123.082.278-.221-.683-.748-1.649-.973.834-.039 1.485-.258 1.485-.535 0-.232-.449-.428-1.083-.51.576-.088.982-.273.982-.492 0-.246-.512-.445-1.207-.518.744-.061 1.308-.268 1.308-.523 0-.199-.343-.363-.833-.461.596-.098 1.014-.314 1.014-.566 0-.213-.315-.395-.768-.506.467-.063.891-.17 1.196-.307 1.723-1.828-.513-2.957-.513-1.104 0 .773-2.242.455-2.557.295-.447-.229-.181-.428-.028-.689.435.182 2.173.455 2.287-2.104.051-1.135.107-16.334 1.463-16.264-5.918-.311-3.29 14.594-3.755 17.883-.431-.74-2.076.129-1.592 1.188.279.613.95.932 1.714 1.07-.526.107-.896.303-.896.537 0 .227.349.416.845.525-.602.086-1.025.277-1.025.502 0 .244.513.445 1.209.518-.746.059-1.31.266-1.31.523 0 .23.45.428 1.085.51-.578.088-.984.273-.984.492 0 .195.34.359.823.457-.353.068-.593.258-.593.637.426.182.834.395 1.229.633.041.818-.375 2.533-.725 3.33-.14-.254-.354-.428-.638-.518-1.264.082.982 1.635.989 1.479-.025.506-.495.398-.672.709-.008-.008 1.568.992 1.562 1.156.245-.16 1.522-1.105 1.57-1.154-.211-.207-.677-.416-.725-.736-.026-.182 1.267-.48 1.397-.875.168-.493-.624-.839-.759-.349"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M29.2,8H50c-5-3.8-11.2-6-18-6c-6.8,0-13,2.2-18,6h11.6v48H14c5,3.8,11.2,6,18,6c6.8,0,13-2.2,18-6H29.2V8z" fill="#ffce31"/><path d="m62 32c0-9.8-4.7-18.5-12-24h-20.8v48h20.8c7.3-5.5 12-14.2 12-24" fill="#c94747"/><path d="m25.6 8h-11.6c-.1.1-.3.2-.4.3v47.4c.1.1.3.2.4.3h11.6v-48" fill="#ff8736"/><path d="M2,32c0,9.6,4.5,18.2,11.6,23.7V8.3C6.5,13.8,2,22.4,2,32z" fill="#699635"/><g fill="#ffce31"><path d="m34.4 49.6c-1.1.8-3.2.7-4.1 1.7-1.1 1.1.1 2.5.1 2.7l-.1.8c0 0 .7 0 1.1.1.5.1.7.5 1.5.4 2.2-.1 2.1-2.1 2.2-3.8.1-.6.4-1.5.5-2.1.1-.6.2-1.4.2-1.4 0-.3-.7 1.1-1.4 1.6"/><path d="m35.1 12.7c-.1-1.7 0-3.7-2.2-3.8-.9-.1-1.1.3-1.5.4-.3 0-1.1.1-1.1.1l.1.8c0 .1-1.2 1.6-.1 2.7.9.9 3.1.9 4.1 1.7.7.5 1.4 1.8 1.4 1.8 0 0 0-.9-.2-1.4-.1-.8-.4-1.7-.5-2.3"/><path d="m61.8 28.7c-.8 0-1.5-.1-2.2-.1.3.2-.8-3.5-.2-4 .7-.6.2-4.2-.4-5 0-.1 0-.3.1-.4-.3-.7-.7-1.4-1.1-2-1.1-.4-2-1.1-2.4.5-.4-.5-1.5-1.6-2.2-1.3-.1.4-.2.8-.4 1.2-.5.2-2.3-.8-3.3-.6 0 2-1.2 1.2-2.6 1.9-2.6 1.2-1.3-1.1-3-1.1-3.2 0 1.3 4.9 2.1 5.4.1-.2-.3-.6 0-.8 0 0 1.1.9 1.1.6.1-.3.1-.6.3-.8.3.5 2.6 3.2 2.1 3.7-.1.1-2.3-.1-2.3-.1.1-.2.2-.7.2-.8-.7-.7-2-.8-2.7-.6-.6.2-1.7 1-1.8 2 .4-.1 1.8-.5 2-.3.1.1-.4.8-.4.9.6 0 1.8.3 2.1.3.1-.2.3-.5.4-.7.3.4.5.8.8 1.3.3.2.9-1.8 1.5-.4.2.5-4.9 5.3-5.2 7.1-.2 1 0 2 .4 2.9-.9-1-3.3-3.7-3.9-3.4-1.5.8-.2 5.4.5 6.3.8 1.1 5.5 3.8 5.5.2 0-.2-.2-.5-.4-.9 1.1.7 2.5 1.3 3.1 2 .7.8 1.3 3 1.2 4.2-.3 2.9-4.8.2-4.8 3.4 0-.4 4.4.2 4.7-.1.7-.5 2.9 1.2 2.5-1.2-.4-2.4 2.5-1.3 2.5-3.2 0-1-3.1.2-1.4-2.5.7-1 .2-2.4 1-1.3 1.3 1.6 3.4.5 5.7-.7.7-2.6 1.1-5.3 1.1-8.1 0-1.3-.1-2.4-.2-3.5"/><path d="m40 41.8c-.2.7-1.2-3.1-1-3.3.4.1.7.1 1.1.1.3-.2-.7-.7-1.6-1 .8 0 1.5-.3 1.5-.5 0-.2-.4-.4-1.1-.5.6-.1 1-.3 1-.5 0-.2-.5-.4-1.2-.5.7-.1 1.3-.3 1.3-.5 0-.2-.3-.4-.8-.5.6-.1 1-.3 1-.6 0-.2-.3-.4-.8-.5.5-.1.9-.2 1.2-.3 1.7-1.8-.5-3-.5-1.1 0 .8-2.2.5-2.6.3-.4-.2-.2-.4 0-.7.4.2 2.2.5 2.3-2.1.1-1.1.1-16.3 1.5-16.3-5.9-.3-3.3 14.6-3.8 17.9-.4-.7-2.1.1-1.6 1.2.3.6 1 .9 1.7 1.1-.5.1-.9.3-.9.5 0 .2.3.4.8.5-.6.1-1 .3-1 .5 0 .2.5.4 1.2.5-.7.1-1.3.3-1.3.5 0 .2.5.4 1.1.5-.6.1-1 .3-1 .5 0 .2.3.4.8.5-.4.1-.6.3-.6.6.4.2.8.4 1.2.6 0 .8-.4 2.5-.7 3.3-.1-.3-.4-.4-.6-.5-1.3.1 1 1.6 1 1.5 0 .5-.5.4-.7.7 0 0 1.6 1 1.6 1.2.2-.2 1.5-1.1 1.6-1.2-.2-.2-.7-.4-.7-.7 0-.2 1.3-.5 1.4-.9.1-.4-.7-.8-.8-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f7.svg
index 04a337f..13995a6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m56 14h-24v6h27.496c-.935-2.141-2.109-4.154-3.496-6"/><path fill="#f9f9f9" d="m61.4 38c.395-1.939.602-3.945.602-6h-60c0 2.055.207 4.061.602 6h58.796"/><path fill="#ed4c5c" d="m32 2v6h18c-5.01-3.768-11.246-6-18-6"/><g fill="#f9f9f9"><path d="m32 14h24c-1.705-2.271-3.729-4.293-6-6h-18v6"/><path d="m59.5 20h-27.496v6h29.398c-.423-2.088-1.068-4.094-1.902-6"/></g><g fill="#ed4c5c"><path d="M32,26v6h30c0-2.055-0.207-4.061-0.602-6H32z"/><path d="m4.504 44h54.992c.834-1.906 1.479-3.912 1.902-6h-58.796c.423 2.088 1.068 4.094 1.902 6"/></g><path fill="#f9f9f9" d="M8,50h48c1.387-1.846,2.561-3.859,3.496-6H4.504C5.439,46.141,6.613,48.154,8,50z"/><path fill="#ed4c5c" d="M8,50c1.707,2.271,3.729,4.293,6,6h36c2.271-1.707,4.295-3.729,6-6H8z"/><path fill="#f9f9f9" d="m14 56c5.01 3.766 11.246 6 18 6s12.986-2.234 18-6h-36"/><path fill="#2a5f9e" d="M32,2C15.432,2,2,15.432,2,32h30V2z"/><path fill="#fff" d="M20 22.244 25.563 26 23.459 19.893 29 16.11 22.14 16.09 20 10 17.859 16.09 11 16.11 16.537 19.893 14.438 26z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56 14h-24v6h27.5c-.9-2.1-2.1-4.2-3.5-6" fill="#ed4c5c"/><path d="m61.4 38c.4-1.9.6-3.9.6-6h-60c0 2.1.2 4.1.6 6h58.8" fill="#f9f9f9"/><path d="m32 2v6h18c-5-3.8-11.2-6-18-6" fill="#ed4c5c"/><g fill="#f9f9f9"><path d="m32 14h24c-1.7-2.3-3.7-4.3-6-6h-18v6"/><path d="m59.5 20h-27.5v6h29.4c-.4-2.1-1.1-4.1-1.9-6"/></g><g fill="#ed4c5c"><path d="m32 26v6h30c0-2.1-.2-4.1-.6-6h-29.4"/><path d="m4.5 44h55c.8-1.9 1.5-3.9 1.9-6h-58.8c.4 2.1 1.1 4.1 1.9 6"/></g><path d="m8 50h48c1.4-1.8 2.6-3.9 3.5-6h-55c.9 2.1 2.1 4.2 3.5 6" fill="#f9f9f9"/><path d="M8,50c1.7,2.3,3.7,4.3,6,6h36c2.3-1.7,4.3-3.7,6-6H8z" fill="#ed4c5c"/><path d="m14 56c5 3.8 11.2 6 18 6s13-2.2 18-6h-36" fill="#f9f9f9"/><path d="M32,2C15.4,2,2,15.4,2,32h30V2z" fill="#2a5f9e"/><path fill="#fff" d="m20 22.2l5.6 3.8-2.1-6.1 5.5-3.8h-6.9l-2.1-6.1-2.1 6.1h-6.9l5.5 3.8-2.1 6.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f8.svg
index 516b7dc..ef9b034 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f8.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,5.885,1.701,11.367,4.627,16h50.744C60.299,43.367,62,37.885,62,32s-1.701-11.369-4.629-16H6.627
- C3.701,20.631,2,26.115,2,32z"/><path fill="#428bc1" d="M57.371,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.627,16H57.371z"/><path fill="#83bf4f" d="M6.627,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.371-14H6.627z"/><path fill="#3e4347" d="m35.13 30.756c.871-1.127 1.41-2.727 1.41-4.533 0-3.491-1.996-6.223-4.545-6.223s-4.547 2.732-4.547 6.223c0 1.807.539 3.406 1.41 4.533l-6.863 7.982c0 0 0 5.262 10 5.262s10-5.262 10-5.262l-6.865-7.982m-.408-4.533c0 1.201-.311 2.311-.807 3.121l-1.467-1.705v-1.639l1.365-.666-1.365-.668v-2.811c1.272.366 2.274 2.209 2.274 4.368m-5.456 0c0-2.158 1-4 2.273-4.367v2.811l-1.363.668 1.364.665v1.639l-1.465 1.705c-.496-.811-.809-1.92-.809-3.121"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#f9f9f9"/><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z" fill="#428bc1"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z" fill="#83bf4f"/><path d="m35.1 30.8c.9-1.1 1.4-2.7 1.4-4.5 0-3.5-2-6.2-4.5-6.2s-4.5 2.7-4.5 6.2c0 1.8.5 3.4 1.4 4.5l-6.9 8c0 0 0 5.3 10 5.3s10-5.3 10-5.3l-6.9-8m-.4-4.6c0 1.2-.3 2.3-.8 3.1l-1.5-1.7v-1.6l1.4-.7-1.4-.7v-2.8c1.3.4 2.3 2.3 2.3 4.4m-5.4 0c0-2.2 1-4 2.3-4.4v2.8l-1.4.7 1.4.7v1.6l-1.5 1.7c-.5-.8-.8-1.9-.8-3.1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f9.svg
index 51b05b0..513d722 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1f9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#c94747" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#699635" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ffce31"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#c94747"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fa.svg
index 5f88201..78de148 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fa.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#c94747" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#f9f9f9" d="M60.286,42C61.393,38.871,62,35.508,62,32s-0.607-6.871-1.714-10H3.714C2.607,25.129,2,28.492,2,32
- s0.607,6.871,1.714,10H60.286z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#428bc1"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#c94747"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fb.svg
index 484949b..b3fa271 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m61.17 39v-14c-3.154-13.191-15.01-23-29.17-23s-26.02 9.809-29.17 23v14c3.154 13.189 15.01 23 29.17 23s26.02-9.811 29.17-23"/><path opacity=".15" fill="#c28fef" d="m61.17 39v-14c-3.154-13.191-15.01-23-29.17-23s-26.02 9.809-29.17 23v14c3.154 13.189 15.01 23 29.17 23s26.02-9.811 29.17-23"/><path fill="#fff" d="m2 32c0 2.41.293 4.752.83 7h58.34c.537-2.248.83-4.59.83-7 0-2.412-.293-4.754-.83-7h-58.34c-.537 2.246-.83 4.588-.83 7"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.2 39v-14c-3.2-13.2-15-23-29.2-23s-26 9.8-29.2 23v14c3.2 13.2 15 23 29.2 23s26-9.8 29.2-23" fill="#c94747"/><path d="m61.2 39v-14c-3.2-13.2-15-23-29.2-23s-26 9.8-29.2 23v14c3.2 13.2 15 23 29.2 23s26-9.8 29.2-23" opacity=".15" fill="#c28fef"/><path d="m2 32c0 2.4.3 4.8.8 7h58.3c.5-2.2.8-4.6.8-7 0-2.4-.3-4.8-.8-7h-58.3c-.5 2.2-.8 4.6-.8 7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fe.svg
index 686f7f0..dd29b3b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1-1f1fe.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M2,32c0,5.885,1.701,11.369,4.628,16h50.744C60.299,43.369,62,37.885,62,32s-1.701-11.367-4.628-16H6.628
- C3.701,20.633,2,26.115,2,32z"/><path fill="#c94747" d="M57.372,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.628,16H57.372z"/><path fill="#83bf4f" d="M6.628,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.372-14H6.628z"/><g fill="#fff"><path d="m38.23 36.666l.01-3.566-3.573-1.1 3.573-1.096-.01-3.57 2.2 2.896 3.57-1.12-2.213 2.89 2.213 2.885-3.57-1.112z"/><path d="m32.833 40c-4.368 0-7.91-3.582-7.91-8s3.542-8 7.91-8c1.673 0 3.223.527 4.5 1.422-1.812-2.096-4.476-3.422-7.446-3.422-5.461 0-9.887 4.477-9.887 10s4.426 10 9.887 10c2.971 0 5.634-1.324 7.446-3.422-1.277.897-2.827 1.422-4.5 1.422"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#3e4347"/><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z" fill="#c94747"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z" fill="#83bf4f"/><g fill="#fff"><path d="m38.2 36.7v-3.6l-3.5-1.1 3.5-1.1v-3.6l2.2 2.9 3.6-1.1-2.2 2.9 2.2 2.9-3.6-1.1z"/><path d="m32.8 40c-4.4 0-7.9-3.6-7.9-8s3.5-8 7.9-8c1.7 0 3.2.5 4.5 1.4-1.8-2.1-4.5-3.4-7.4-3.4-5.5 0-9.9 4.5-9.9 10s4.4 10 9.9 10c3 0 5.6-1.3 7.4-3.4-1.2.9-2.8 1.4-4.5 1.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f1.svg
new file mode 100644
index 0000000..9239d51
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m22.7 17.5h6.1v23.8h14.5v5.2h-20.6v-29" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e6.svg
index 8a31463..f2e7c5a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f42f4c" cx="32" cy="32" r="30"/><path fill="#4f682e" d="m23.348 44l3.305-9.93-8.653-6.133h10.693l3.307-9.937 3.309 9.937h10.691l-8.65 6.134 3.304 9.929-8.654-6.137-8.652 6.137m10.498-7.443l2.684 1.902-1.025-3.078-1.659 1.176m-5.35-1.176l-1.023 3.078 2.684-1.902-1.661-1.176m.705-2.118l2.799 1.985 2.801-1.985-1.068-3.208h-3.463l-1.069 3.208m-4.525-3.208l2.68 1.9.633-1.9h-3.313m11.969 1.9l2.682-1.9h-3.314l.632 1.9m-5.67-4.02h2.053l-1.028-3.086-1.025 3.086"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f42f4c"/><path d="m23.3 44l3.3-9.9-8.6-6.2h10.7l3.3-9.9 3.3 9.9h10.7l-8.7 6.1 3.3 9.9-8.6-6-8.7 6.1m10.5-7.4l2.7 1.9-1-3.1-1.7 1.2m-5.3-1.2l-1 3.1 2.7-1.9-1.7-1.2m.7-2.1l2.8 2 2.8-2-1.1-3.2h-3.5l-1 3.2m-4.5-3.2l2.7 1.9.6-1.9h-3.3m11.9 1.9l2.7-1.9h-3.3l.6 1.9m-5.6-4.1h2l-1-3.1-1 3.1" fill="#4f682e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e8.svg
index 6456e4b..a022834 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#c94747" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#f9f9f9"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e9.svg
index 1f45b62..76845b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.224 20-28.29"/><path fill="#2a5f9e" d="M2,32c0,13.062,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.938,2,32z"/><path fill="#ffe62e" d="m42 3.714c-3.127-1.106-6.492-1.714-10-1.714-3.506 0-6.871.608-10 1.714v56.57c3.129 1.106 6.494 1.714 10 1.714 3.508 0 6.873-.608 10-1.714v-56.57"/><path fill="#997361" d="m41.23 30.862l.129-.022v-1.026l-.828.604.057.116c-.031.027-.064.063-.086.108-.02.039-.027.08-.029.119-.059-.004-.123-.006-.184-.006-.18 0-.246.02-.287.047-.104.067-.094.196-.078.376.01.12.021.27 0 .397-.035.229-.098.276-.139.309-.018.014-.039.036-.061.064.004-3.55.014-6.838.014-6.897 0-.599-1.941-2.401-1.941-2.401l-1.854 1.453.096 1.212c-.443.048-1.945.88-2.141.942-1.6-.891-.533-2.887-.537-2.951.008.006.014.012.02.018l.234.237c0 0 .199-.835-.156-1.359.043-.016.82-.17.82-.17s-1.949-1.368-3.691-.739c.002-.017.008-.03.008-.047 0-.176-.047-.334-.125-.438l-.164-.208-.072.255c-.02.066-.08.11-.152.11h-.207v-.208c0-.072.045-.133.109-.151l.252-.075-.207-.16c-.205-.16-.668-.16-.873 0l-.211.161.256.074c.066.019.109.079.109.151v.208h-.207c-.07 0-.133-.044-.152-.11l-.074-.249-.16.204c-.08.104-.125.263-.125.438 0 .177.045.336.125.437l.16.204.074-.248c.02-.067.08-.111.152-.111h.207v1.511c0 .068-.041.126-.104.147l-.523.187.551.075c.086.011.201.171.232.269l.129.394.127-.395c.031-.098.145-.257.232-.268l.559-.076c.043.157.254 2.057-.756 2.885-.18-.058-1.699-.895-2.141-.942l.094-1.212-1.854-1.453c0 0-1.939 1.803-1.939 2.401 0 .047.006 2.125.01 4.754l-.092-.126-.098.201c-.004.007-.055.113-.098.246-.178-.157-.41-.291-.475-.325l-.164-.092-.033.187c-.008.048-.075.461.047.755-.127-.026-.224-.03-.232-.03l-.179-.008.043.175c.006.021.139.543.465.794.207.159.471.195.645.202l.172.379c0 .035 0 .071 0 .106-.203-.055-.4-.082-.543-.082-.1 0-.162.007-.162.007l-.199.022.096.175c.014.025.055.099.115.178-.057.017-.1.033-.109.036l-.15.058.084.139c.012.021.303.491.717.641.045.017.104.016.154.025 0 2.372-.262 6.806-.262 6.806s2.762-2.469 2.824-2.495c0 0-.543.715-.6 1-.072.355.217 1.26 1.328.886l-.1.454.941.512c-.117.086-.652.327-.652.327l4.416 2.932 4.416-2.932c0 0-2.367-.903-3.154-4.083.037-.017.688-.31.705-.317.27.229 2.271 2.753 2.324 2.811-.023.022-.049.045-.061.067-.006.013-.012.026-.016.04-.061-.005-.107.002-.146.021-.08.04-.133.066-.074.935l.016.226.191-.121c.736-.465.727-.521.709-.609-.008-.046-.033-.09-.068-.131.002-.002.002-.004.004-.006.027.004.041.022.072.022.096 0 .551-.22.658-.376.473-.693.186-1.307.211-1.341.223.304 2.371 2.178 2.371 2.178s-.262-4.273-.262-6.557l.471-.923c.006-.01.037-.027.055-.038.049-.029.109-.064.141-.128.016-.027.021-.059.021-.089.047-.014.096-.036.133-.067.063-.054.064-.124.066-.166.002-.052.006-.131.168-.293.092-.092.219-.17.32-.231.154-.096.268-.165.26-.287-.002-.03-.006-.112-.244-.406.031-.022.059-.052.078-.091.025-.05.037-.097.038-.139m-11.12-9.262c-.094 0-.164.029-.236.055v-.125h.207c.053 0 .094.029.123.067-.033.001-.068.005-.094.003m6.256 16.08c-.117-.204-.832-1.591-.98-1.878.123-.068.246-.138.352-.206.193-.126.377-.292.49-.432.18.652.498 1.707.82 2.271.008.021-.617.356-.682.245m-9.254.104l-.125-.275c.148-.102.357-.27.48-.498.193-.362.129-.831.125-.852l-.023-.165c0 0-.291.109-.342.132-.006-.055.135-.735.199-.966.113.142.299.31.494.435.104.067.227.137.35.205-.068 1.04-1.138 1.987-1.158 1.984m2.867-14.592c-.064-.021-.105-.079-.105-.147v-.394c.291.128.527.314.639.724l-.534-.183m-1.623 16.368l-.635-.443c.027-.053 1.869-2.326 2.141-2.556.018.009.67.301.703.315-.313.676-1.383 2.876-2.432 3.708l.223-1.024"/><g fill="#ffd200"><path d="m27.457 39.22l.743.405-.18.83-.75-.405z"/><path d="m23.979 31.23l-.268.123 3.037 6.657h.324l-3.093-6.78m3.584 7.85l-.219.228.137.302.266-.123-.184-.407"/></g><g fill="#699635"><path d="m24.924 36.481l.449.602-.426.093 1.064.548.615-.179-.084-.438-1.618-.626"/><path d="m26.854 35.535l-.451.652.361 1.303.586-.546.111-.77-.369.174-.238-.813"/><path d="m25.717 35.394l-.791.112-.684-.334.463-.182-.41-.48.648.011.774.873"/><path d="m25.855 33.43l.152.562.299-.247.006 1.091-.553.574-.457-.892.074-.591.479-.497"/><path d="m23.24 32.33l.832.118.596.827-.846.043-.646-.585.359-.062-.295-.341"/><path d="m24.605 31.513l.197.527.289-.315.191 1.014-.406.669-.541-1.441.27-.454"/><path d="m23.1 29.919l.055.715.197.285-.575-.164.417.721.746.172.277-.823-.359-.885-.146.484-.612-.505"/></g><path fill="#ffd200" d="m40.701 30.461l.059.124-.139.118.029.204-.576.009-.018.682-.23.45.063.196-.115.068-.016.254-2.057 4.04-.492.477.064.504-.279.135.146.375.393-.101-.061-.305.447-.247.1-.676 2.057-4.04.195-.165-.01-.133.195-.063.229-.453.539-.416-.332-.469.182-.097.014-.185.137-.023v-.648l-.524.384m-4.521 9.04v.145l-.223-.023v.805l.648-.475-.148-.167.115-.083-.125-.24-.145-.033-.122.071"/><path fill="#f5d402" d="m36.32 27.311c0-.306.4-.607.4-.607h-9.781c0 0 .402.302.402.607v7.28c0 .192.059.317.152.439.094.132.295.313.502.448.643.417 1.717.856 2.529 1.227.678.309.953.433 1.307.869.352-.437.629-.561 1.305-.869.814-.37 1.889-.81 2.529-1.227.209-.135.41-.316.504-.448.094-.122.15-.247.15-.439v-7.28z"/><path fill="#ed4c5c" d="m27.57 31.43v-4.119c0-.234-.119-.376-.119-.376h8.754c0 0-.117.142-.117.376l.002 4.119-4.26 1.29-4.26-1.29"/><path fill="#428bc1" d="m36.09 31.43l-2.637-.05h-3.246l-2.637.05v3.161c0 .159.164.532 1.115 1.01 1.572.783 2.781 1.148 3.145 1.596.361-.447 1.568-.813 3.141-1.596.951-.474 1.117-.847 1.117-1.01l.002-3.161"/><g fill="#ffe62e"><path d="m28.914 33.27l-.84 1.01.695 1.114 1.273-.321.09-1.31-1.218-.491"/><path d="m33.516 34.53c.047.441.406.812.85.918-.076-.124-.127-.262-.143-.409-.055-.523.35-.948.904-.948.088 0 .172.012.256.03-.195-.319-.564-.541-.963-.541-.555 0-.959.426-.904.95"/><path d="m29.588 29.16l1.385 1.482.396-.193.461.212.461-.212.396.193 1.385-1.482-.51-1.646 1.115 1.743-1.539 1.896.346.78-.768.307-.125 2.879.449.432-1.21.712-1.211-.713.449-.432-.123-2.879-.77-.307.346-.78-1.541-1.896 1.117-1.743-.509 1.647"/><path d="m31.832 27.669l.17.479.457-.221-.217.461.477.17-.477.17.217.458-.457-.218-.172.477-.172-.477-.457.218.217-.458-.477-.17.477-.17-.217-.461.457.221.174-.479"/><path d="m29.705 31.409l-.797.597-.891-.563.885-.525.803.491"/><path d="m35.643 31.443l-.891.563-.797-.597.801-.491.887.525"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#2a5f9e"/><path d="m42 3.7c-3.1-1.1-6.5-1.7-10-1.7-3.5 0-6.9.6-10 1.7v56.6c3.1 1.1 6.5 1.7 10 1.7 3.5 0 6.9-.6 10-1.7v-56.6" fill="#ffe62e"/><path d="m41.2 30.9h.1v-1l-.8.6.1.1c0 0-.1.1-.1.1 0 0 0 .1 0 .1-.1 0-.1 0-.2 0-.2 0-.2 0-.3 0-.1.1-.1.2-.1.4 0 .1 0 .3 0 .4 0 .2-.1.3-.1.3 0 0 0 0-.1.1 0-3.5 0-6.8 0-6.9 0-.6-1.9-2.4-1.9-2.4l-1.9 1.5.1 1.2c-.4 0-1.9.9-2.1.9-1.6-.9-.5-2.9-.5-3l.2.2c0 0 .2-.8-.2-1.4 0 0 .8-.2.8-.2s-1.9-1.4-3.7-.7c0 0 0 0 0 0 0-.2 0-.3-.1-.4l-.2-.2-.1.3c0 .1-.1.1-.2.1h-.2v-.2c0-.1 0-.1.1-.2l.3-.1-.1-.1c-.2-.2-.7-.2-.9 0l-.2.2.3.1c.1 0 .1.1.1.2v.1h-.2c-.1 0-.1 0-.2-.1l-.1-.2-.2.2c-.1.1-.1.3-.1.4 0 .2 0 .3.1.4l.2.2.1-.2c0-.1.1-.1.2-.1h.2v1.4c0 .1 0 .1-.1.1l-.5.2.6.1c.1 0 .2.2.2.3l.1.4.1-.4c0-.1.1-.3.2-.3l.6-.1c0 .2.3 2.1-.8 2.9-.2-.1-1.7-.9-2.1-.9l.1-1.2-1.9-1.5c0 0-1.9 1.8-1.9 2.4 0 0 0 2.1 0 4.8l-.1-.1-.1.2c0 0-.1.1-.1.2-.2-.2-.4-.3-.5-.3l-.1-.1v.2c0 0-.1.5 0 .8-.1 0-.2 0-.2 0h-.2v.2c0 0 .1.5.5.8.2.2.5.2.6.2l.2.4c0 0 0 .1 0 .1-.2-.1-.4-.1-.5-.1-.1 0-.2 0-.2 0h-.2l.1.2c0 0 .1.1.1.2-.1 0-.1 0-.1 0h-.1l.1.1c0 0 .3.5.7.6 0 0 .1 0 .2 0 0 2.4-.3 6.8-.3 6.8s2.8-2.5 2.8-2.5c0 0-.5.7-.6 1-.1.4.2 1.3 1.3.9l-.1.5.9.5c-.1.1-.7.3-.7.3l4.4 2.9 4.4-2.9c0 0-2.4-.9-3.2-4.1 0 0 .7-.3.7-.3.3.2 2.3 2.8 2.3 2.8 0 0 0 0-.1.1-.1 0-.1 0-.1 0-.1 0-.1.1-.1.9v.2l.2-.1c.7-.5.7-.5.7-.6 0 0 0-.1-.1-.1 0 0 0 0 .1 0 .1 0 .6-.2.7-.4.5-.7.2-1.3.2-1.3.2.3 2.4 2.2 2.4 2.2s-.3-4.3-.3-6.6l.5-.9c0 0 0 0 .1 0 0 0 .1-.1.1-.1 0 0 0-.1 0-.1 0 0 .1 0 .1-.1.1-.1.1-.1.1-.2 0-.1 0-.1.2-.3.1-.1.2-.2.3-.2.2-.1.3-.2.3-.3 0 0 0-.1-.2-.4 0 0 .1-.1.1-.1.1.1.1 0 .1 0m-11.1-9.3c-.1 0-.2 0-.2.1v-.1h.2c0-.1.1 0 0 0m6.3 16.1c-.1-.2-.8-1.6-1-1.9.1-.1.2-.1.4-.2.2-.1.4-.3.5-.4.2.7.5 1.7.8 2.3 0 0-.7.3-.7.2m-9.3.1l-.1-.3c.1-.1.4-.3.5-.5.2-.4.1-.8.1-.9v-.2c0 0-.3.1-.3.1 0-.1.1-.7.2-1 .1.1.3.3.5.4.1.1.2.1.4.2-.2 1.2-1.3 2.2-1.3 2.2m2.9-14.6c-.1 0-.1-.1-.1-.1v-.4c.3.1.5.3.6.7l-.5-.2m-1.6 16.4l-.6-.4c0-.1 1.9-2.3 2.1-2.6 0 0 .7.3.7.3-.3.7-1.4 2.9-2.4 3.7l.2-1" fill="#997361"/><g fill="#ffd200"><path d="m27.5 39.2l.7.4-.2.9-.7-.5z"/><path d="m24 31.2l-.3.1 3 6.7h.3l-3-6.8m3.6 7.9l-.2.2.1.3.3-.1-.2-.4"/></g><g fill="#699635"><path d="m24.9 36.5l.4.6-.4.1 1.1.5.6-.2-.1-.4-1.6-.6"/><path d="m26.9 35.5l-.5.7.4 1.3.6-.5.1-.8-.4.2-.2-.9"/><path d="m25.7 35.4l-.8.1-.7-.3.5-.2-.4-.5h.6l.8.9"/><path d="m25.9 33.4l.1.6.3-.2v1.1l-.6.6-.5-.9.1-.6.6-.6"/><path d="m23.2 32.3l.8.1.6.8h-.8l-.6-.6.4-.1-.4-.2"/><path d="m24.6 31.5l.2.5.3-.3.2 1-.4.7-.6-1.4.3-.5"/><path d="m23.1 29.9l.1.7.2.3-.6-.2.4.7.7.2.3-.8-.4-.9-.1.5-.6-.5"/></g><path d="m40.7 30.5l.1.1-.1.1v.2h-.6v.7l-.3.4.1.2-.1.1v.3l-2.1 4-.5.5.1.5-.3.1.1.4.4-.1-.1-.3.4-.2.1-.7 2.1-4 .2-.2v-.1l.2-.1.2-.5.5-.4-.2-.5.2-.1v-.2h.1v-.6l-.5.4m-4.5 9v.1h-.2v.8l.6-.5-.1-.2.1-.1-.1-.2h-.1l-.2.1" fill="#ffd200"/><path d="m36.3 27.3c0-.3.4-.6.4-.6h-9.8c0 0 .4.3.4.6v7.3c0 .2.1.3.2.4.1.1.3.3.5.4.6.4 1.7.9 2.5 1.2.7.3 1 .4 1.3.9.4-.4.6-.6 1.3-.9.8-.4 1.9-.8 2.5-1.2.2-.1.4-.3.5-.4.1-.1.2-.2.2-.4v-7.3" fill="#f5d402"/><path d="m27.6 31.4v-4.1c0-.2-.1-.4-.1-.4h8.8c0 0-.1.1-.1.4v4.1l-4.3 1.3-4.3-1.3" fill="#ed4c5c"/><path d="m36.1 31.4h-2.6-3.2-2.6v3.2c0 .2.2.5 1.1 1 1.6.8 2.8 1.1 3.1 1.6.4-.4 1.6-.8 3.1-1.6 1-.5 1.1-.8 1.1-1v-3.2" fill="#428bc1"/><g fill="#ffe62e"><path d="m28.9 33.3l-.8 1 .7 1.1 1.3-.3.1-1.3-1.3-.5"/><path d="m33.5 34.5c0 .4.4.8.8.9-.1-.1-.1-.3-.1-.4-.1-.5.3-.9.9-.9.1 0 .2 0 .3 0-.2-.3-.6-.5-1-.5-.5 0-.9.4-.9.9"/><path d="m29.6 29.2l1.4 1.5.4-.2.5.2.5-.2.4.2 1.4-1.5-.5-1.6 1.1 1.7-1.5 1.9.3.8-.8.3-.1 2.9.4.4-1.2.7-1.2-.7.4-.4-.1-2.9-.8-.3.3-.8-1.5-1.9 1.1-1.7-.5 1.6"/><path d="m31.8 27.7l.2.5.5-.2-.2.5.5.2-.5.2.2.5-.5-.4-.2.5-.1-.5-.5.2.2-.5-.5-.2.5-.2-.2-.5.5.2.1-.3"/><path d="m29.7 31.4l-.8.6-.9-.6.9-.5.8.5"/><path d="m35.6 31.4l-.8.6-.8-.6.8-.5.8.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ea.svg
index 38b3e1b..7eb38ad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffce31" cx="32" cy="32" r="30"/><circle fill="#ed4c5c" cx="31.979" cy="31.961" r="27"/><path fill="#ffce31" d="m45.616 31.34l2.516-1.193 1.135-1.613-.127-.377-1.391.982-1.162.455-.213.021 1.666-1 1.117-2.117-.213-.387-1.201 1.252-1.252.885-.133-.029 2.127-2.545.357-2.045-.215-.143-1.424 2.32-.58.611-.072-.072 1.182-1.994.396-2.098-.285-1.313-.215-.113-.752 2.373-.865 1.648-.082-.061.906-3.563-.336-2.697-.381-.553-.266 2.455-.738 2.213-.059-.139.344-1.619-.174-2.842-.795-1.457-.619 4.611-.271.078-.9 2.502-.879 1.285-.197-.428-.23-.023-1.215 1.887-1.168 1.969.832 1.297.475.822-.844.498-.971.07-.336.486-.383.277-.129.018.643-2.518-1.887-2.217-.291.137-.057-.084-.332-1 .451.043-.008-.369-.068-.941.051-.301.445.301.18-.361.393-.84.641.207 1.172-.445.357-.438 1.205.266 1.342-.609-.137-1.139h-.23l-.307.771-.863.102-1.197-.146-.494.104.793-.539.752.197.342.043-.127-1.037-.924-.395-.52.102-.693-.658-1.795.393-.828-.025-.705-.35.141-.457.246-.084.115-.191-.236-.287.377-.527.367-.18.34-.027.098-.115.25-.17.029-.398-.041-.213.133-.313.006-.129.135-.262-.189-.318-.109-.018-.121-.301-.184-.244.037-.201-.238-.258h-.201l-.475-.273-.189-.098-.061-.209-.25-.104-.141.037-.773-.178-.238-.055-.676-.27-.244-.055.209-.514-.365-.65-.205-.1-.004-.189.367.037.029-.588-.357.045.055-.355-.746-.01.055.355-.359-.023.029.58.379-.049-.037.219-.256.111-.348.617.178.52-.242.052-.676.27-.238.055-.773.178-.141-.037-.25.104-.061.209-.189.098-.477.273h-.199l-.238.258.037.201-.184.244-.121.301-.111.018-.188.318.133.262.006.129.135.313-.043.213.031.398.25.17.098.115.34.027.367.18.377.527-.236.285.115.193.244.084.143.455-.705.352-.828.025-1.795-.393-.693.658-.52-.102-.924.393-.129 1.039.342-.043.752-.197.795.539-.496-.104-1.195.146-.863-.104-.309-.77h-.23l-.137 1.139 1.342.609 1.205-.266.359.436 1.172.447.641-.207.393.84.18.361.443-.301.051.301-.066.941-.01.369.453-.043-.334 1-.053.078-.279-.131-1.885 2.217.641 2.529v-.012l-.137-.018-.383-.277-.334-.486-.973-.07-.844-.498.475-.822.832-1.297-1.168-1.969-1.215-1.887-.23.023-.197.428-.879-1.285-.9-2.502-.271-.078-.619-4.611-.795 1.457-.172 2.842.342 1.619-.057.139-.74-2.213-.268-2.455-.379.553-.336 2.697.906 3.563-.082.061-.865-1.648-.752-2.373-.215.113-.285 1.313.396 2.098 1.182 1.994-.072.072-.58-.611-1.424-2.32-.215.143.357 2.045 2.127 2.545-.133.029-1.252-.885-1.201-1.252-.213.387 1.117 2.117 1.666 1-.215-.021-1.16-.455-1.391-.982-.127.377 1.135 1.613 2.516 1.193.107.102-.881-.184-2.152-.938-.307.139 1.146 1.654 2.223.619.092.072-1.072-.057-1.416-.365-.063-.262-.158-.096-.246.146-.182-.067-.043-.383-.146-.086-.598.256.063.309.186.334-.467.123-.051.188.248.586.146.045.354-.209.123.475-.342.162.08.352.744.674.518 2.838 1.209 2.244.055.162-.072.459.42.484.09.17v.863l.645 1.293.117.205-.25.127-.43.475-.037.584.43.512-.088.217.305.564.518.217.045.287.385.314.537-.018.27.125.045.746-.045.457.402-.072.367.072.457.18.035-.305.088-.484.494-.127.225-.17-.42-.242-.539-.369-.098-.225.125-.188.018-.234.225-.232.26-.289.35-.592.455-.432.699-.584.76-.395.135.494.967-.576 1.119-.609.305.422 1.102-1.086 1.738-1.918.172.078-.047.139-.34.678-.65.805-.33 1.133.215.518-.51.668-.178.865-.205.322-.782.711-.99.652-.088.383.633.42.633.063-.043.248-.188.75.598.215.695-.215-.035.1-.055.445.125.482.357-.117.598-.213.393-.188-.09.285.037.66.365.553.383-.125.438-.508.215.705.838 1.158.838-1.158.215-.705.438.508.383.125.367-.553.035-.66-.09-.285.393.188.598.213.357.117.125-.482-.053-.445-.037-.1.697.215.598-.215-.188-.75-.045-.248.633-.063.635-.42-.09-.383-.99-.652-.775-.713-.205-.322-.18-.865-.508-.668.215-.518-.332-1.133-.65-.805-.34-.678-.045-.135.23-.102 1.742 1.922 1.102 1.086.303-.422 1.119.611.967.574.102-.334.783.252.738.287 1.047.699 1.654.133 2.793-.973 1.148-.639.139-.605-.186-.346-.012-.213-.127-.428-.072-.453-1.092-1.727-.072-.121-.141-.084.008-.455.076-.047.223.137.193-.168.15-.48-.057-.152-.283-.049-.059-.061.143-.254-.084-.188-.629-.178-.143.129.008.342-.115.037-.225-.146-.17.084-.158.561.021.209h.377l.053.07-.178.303-.221.098-.273-.002-1.182.398-.719.861-.244.205-.297.438-.166.359-.104 1.08.502.797-.078.217-.371-.23-1.105-.848-.076-.193.244-.064.025-.217-.59-.332.035-.277.252-.414-.932-.225-.314-.16.189-.271-.027-.242-1-.25-1.461-1.625.012-.018 1.01.852.625-.428-.395-.51.127.012 1.602.693 1.059-.336-.344-.363.107-.082 1.457.025 1.104-.768-.807-.17-.18-.189 1.641.012.809-.928-.895-.225-.316-.154 1.783-.133.885-1.158-.021-.18-1.348.186-.758-.057 2.428-.543.859-1.475-1.498.395-1.072.057.092-.072 2.223-.619 1.146-1.654-.307-.137-2.152.936-.879.184.08-.113.026.012m-29.08 1.857l-.326.186-.164-.344.027-.113.287-.051.043-.008.143.324-.012.008.002-.002m9.916 5.807l-1.127.926-1 .25-.027.242.189.271-.314.16-.932.225.252.414.035.277-.59.332.025.217.637.162-.295.232-1.119.377-1.52.01-.74-.045-.07-.551-.396-1.01-.473-.641.031-.199-.07-.424-.467-.496-.016-.418-.264-1.367-1.01-1.814-.531-1.691-.021-.852.063-.168.449.402 2.43.543-.758.057-1.35-.186-.02.18.885 1.158 1.783.133-.315.153-.895.227.809.926 1.641-.01-.18.189-.807.17 1.104.768 1.457-.025.107.082-.344.363 1.059.336 1.6-.693.129-.012-.395.51.625.428 1.01-.857.01.014.029.037-.307.686h-.002m8.58-23.01l-.146-.27.639.457.27.545-.035.605.01.447.086.123-.346.111-.506.025-.076-.24.395-.635-.287-1.17h-.004v.002m-2.185 1.328l.059-.928-.156-1.172.723.453.521.982-.117.621.053.355-.297.162-.451.146-.469-.174-.203-.074.336-.373h.001v.002m-2.074-1.646l.723-.453-.156 1.172.059.928.34.373-.205.074-.469.174-.451-.146-.297-.162.055-.355-.119-.621.523-.982h-.003v-.002m-1.532 2.363l-.508-.025-.346-.111.088-.123.01-.447-.035-.605.268-.545.639-.457-.146.27-.289 1.17.396.637-.078.238v-.002m5.666 4.084l-.643.352.395.301-.684.6-.65.309-.051.205.281.369.146.068-.752.736-.547.318-.053.523.301.352.008.281-.531.723-.008.004-.533-.727.008-.281.299-.352-.051-.523-.547-.318-.751-.737.146-.068.281-.369-.051-.205-.65-.309-.684-.6.393-.301-.641-.352-.555-.523.727-.65.096-.463.018.006 2.5.355 2.496-.355.02-.006.096.463.727.65-.555.525h-.001"/><path fill="#428bc1" d="m27 31h10v6h-10z"/><path fill="#83bf4f" d="m32 43l4-4h-8l4 4"/><path fill="#ffce31" d="m30.26 36.504l-.563.496h1.383l.27-.423 1.103-.921.667.921.15.423h1.03l-.23-.484.842-.86.438-.258.107-2.96-.803.503.248 1.525-1.119-.876h-2.144l.203-.594-.93-.996-.93.996.248.673-.75.784-.775-.393-.465.86 1.201.586.819.998"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffce31"/><circle cx="32" cy="32" r="27" fill="#ed4c5c"/><path d="m45.6 31.3l2.5-1.2 1.1-1.6-.1-.4-1.4 1-1.2.5h-.2l1.7-1 1.1-2.1-.2-.4-1.2 1.3-1.3.9h-.1l2.1-2.5.4-2-.2-.1-1.4 2.3-.6.6-.1-.1 1.2-2 .4-2.1-.3-1.3-.2-.1-.8 2.4-.8 1.4-.1-.1.9-3.6-.3-2.7-.4-.4-.3 2.5-.7 2.2-.1-.1.3-1.6-.1-3-.8-1.5-.6 4.6-.3.1-.9 2.5-.9 1.3-.2-.4h-.2l-1.2 1.9-1.2 2 .8 1.3.5.8-.8.5-1 .1-.3.5-.4.3h-.1l.6-2.5-1.9-2.2-.3.1v-.2l-.3-1h.5v-.4l-.2-.8.1-.3.4.3.2-.4.4-.8.6.2 1.2-.4.4-.4 1.2.3 1.3-.6-.1-1.1h-.2l-.3.8-.9.1-1.2-.1-.5.1.8-.5.8.2h.3l-.1-1-.9-.4-.5.1-.7-.7-1.8.4h-.8l-.7-.4.1-.5.2-.1.1-.2-.2-.3.4-.5.4-.2h.3l.1-.1.2-.2v-.4-.2l.1-.3v-.1l.1-.3-.2-.3h-.1l-.1-.3-.2-.2v-.2l-.2-.3h-.2l-.5-.3-.2-.1-.1-.2-.2-.1h-.1l-.7-.3-.2-.1-.7-.3-.2-.1.2-.5-.4-.6-.3-.1v-.2h.4v-.6h-.4l.1-.4h-.7l.1.4h-.4v.6h.4v.2l-.3.1-.3.6.2.5-.2.1-.7.3-.2.1-.8.2h-.1l-.2.1-.1.2-.2.1-.5.3h-.2l-.2.3v.2l-.2.2-.1.3h-.1l-.2.3.1.3v.1l.1.3v.2.4l.2.2.1.1h.3l.4.2.4.5-.2.3.1.2.2.1.1.5-.7.4h-.8l-1.8-.5-.7.7-.5-.1-.9.4-.1 1h.3l.8-.2.8.5-.5-.1-1.2.1-.9-.1-.3-.8h-.2l-.1 1.1 1.3.6 1.2-.3.4.4 1.2.4.6-.2.4.8.2.4.4-.3.1.3-.1.9v.4h.5l-.3 1-.1.1-.3-.1-2 2.3.6 2.5h-.1l-.4-.3-.3-.5-1-.1-.8-.4.5-.8.8-1.3-1.2-2-1.2-1.9h-.2l-.2.4-.9-1.3-.9-2.5-.3-.1-.6-4.6-.8 1.5-.2 2.8.3 1.6-.1.1-.7-2.2-.2-2.3-.4.6-.3 2.7.9 3.6-.1.1-.9-1.6-.8-2.4-.2.1-.3 1.3.4 2.1 1.2 2-.1.1-.5-.8-1.4-2.3-.2.1.4 2 2.1 2.5h-.1l-1.3-.9-1.2-1.3-.2.4 1.1 2.1 1.7 1h-.2l-1.2-.5-1.4-1-.1.6 1.1 1.6 2.5 1.2.1.1-.9-.2-2.2-.9-.3.1 1.1 1.7 2.2.6.1.1-1.1-.1-1.4-.4-.1-.3h.1l-.2.1-.2-.1v-.4l-.1-.1-.6.3.1.3.2.3-.5.1-.1.2.2.6h.1l.4-.2.1.5-.3.2.1.4.7.7.5 2.8 1.2 2.2.1.2-.1.5.4.5.1.2v.9l.6 1.3.1.2-.2.1-.4.5v.6l.4.5-.1.2.3.6.5.2v.3l.4.3h.5l.3.1v.7.5l.4-.1.4.1.5.2v-.3l.1-.5.5-.1.2-.2-.4-.2-.5-.4-.1-.2.1-.2v-.2l.2-.2.3-.3.4-.6.5-.4.7-.6.8-.4.1.5 1-.6 1.1-.6.3.4 1.1-1.1 1.7-1.9.2.1v.1l-.3.7-.9.7-.3 1.1.2.5-.5.7-.2.9-.2.3-.8.7-1 .7-.1.4.6.4.6.1v.2l-.2.8.6.2.7-.2v.1l-.1.4.1.5.4-.1.6-.2.4-.2-.1.3v.7l.4.6.4-.1.4-.5.2.7.8 1.2.8-1.2.2-.7.4.5.4.1.4-.6v-.7l-.1-.3.4.2.6.2.4.1.1-.5-.1-.4v-.1l.7.2.6-.2v-.8-.2l.6-.1.6-.4-.1-.4-1-.7-.8-.7-.1-.3-.2-.9-.5-.7.2-.5-.3-1.1-.7-.8-.3-.7v-.1l.2-.1 1.7 1.9 1.1 1.1.3-.4 1.1.6 1 .6.1-.3.8.3.7.3 1 .7 1.7.1 2.8-1 1.1-.6.1-.6-.2-.3v-.2l-.1-.4-.1-.5-1.1-1.7-.1-.1-.1-.1v-.5h.1l.2.1.2-.2.2-.5-.1-.2h-.3l-.1-.1.1-.3-.1-.2-.4-.2-.1.1v.3h-.1-.3-.2l-.2.6v.2h.4l.1.1-.2.3-.2.1h-.3l-1.2.4-.7.8-.2.2-.3.4-.2.4-.1 1.1.5.8-.1.2-.4-.2-1.1-.8-.1-.2.2-.1v-.2l-.6-.3v-.3l.3-.4-.9-.2-.3-.2.2-.3v-.2l-1-.2-1.5-1.6 1 .9.6-.4-.4-.5h.1l1.6.7 1.1-.3-.3-.4.1-.1h1.5l1.1-.8-.8-.2-.1-.3h1.6l.8-.9-.9-.2-.3-.2 1.8-.1.9-1.2v-.2l-1.3.2-.8-.1 2.4-.5.9-1.5-1.5.4-1.1.1.1-.1 2.2-.6 1.1-1.7-.3-.1-2.2.9-.9.2.2-.1m-29.1 1.9l-.3.2-.2-.4v-.1l.3-.1.2.4m9.9 5.8l-1.1.9-1 .2v.2l.2.3-.3.2-.9.2.3.4v.3l-.6.3v.2l.6.2-.3.2-1.1.4h-1.5-.7l-.1-.6-.4-1-.5-.6v-.2l-.1-.4-.5-.5v-.4l-.3-1.4-1-1.8-.5-1.7v-.9l.1-.2.4.4 2.4.5-.8.1-1.4-.2v.2l.9 1.2 1.8.1-.3.2-.9.2.8.9h1.6l-.2.2-.8.2 1.1.8h1.5l.1.1-.3.4 1.1.3 1.6-.7h.1l-.4.5.6.4 1-.9-.2.8m8.6-23l-.1-.3.6.5.3.5v.6.4l.1.1-.4.2h-.5l-.1-.2.4-.6-.3-1.2m-2.2 1.3l.1-.9-.2-1.2.7.5.5 1-.1.6.1.4-.3.2-.5.1-.5-.2-.2-.1.4-.4m-2-1.6l.7-.5-.2 1.2.1.9.3.4-.2.1-.5.2-.5-.1-.3-.2.1-.4-.1-.6.6-1m-1.6 2.3h-.5l-.3-.1.1-.1v-.4-.6l.3-.5.6-.5-.2.2-.3 1.2.4.6-.1.2m5.7 4.1l-.6.4.4.3-.7.6-.7.3-.1.2.3.4.1.1-.8.7-.5.3-.1.5.3.4v.3l-.5.7-.5-.7v-.3l.3-.4-.1-.5-.5-.3-.8-.7.1-.1.3-.4-.1-.2-.6-.3-.7-.6.4-.3-.6-.4-.6-.5.7-.6.1-.5 2.5.4 2.5-.4.1.5.7.6-.3.5" fill="#ffce31"/><path fill="#428bc1" d="m27 31h10v6h-10z"/><path fill="#83bf4f" d="m32 43l4-4h-8z"/><path fill="#ffce31" d="m30.3 36.5l-.6.5h1.4l.3-.4 1.1-.9.6.9.2.4h1l-.2-.5.8-.8.4-.3.2-3-.8.5.2 1.6-1.1-.9h-2.2l.2-.6-.9-1-.9 1 .2.7-.7.8-.8-.4-.5.8 1.2.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1eb.svg
index 8f4c1ab..16bfba0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1eb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="M2,32c0,13.061,8.35,24.166,20,28.285V3.713C10.35,7.832,2,18.939,2,32z"/><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.224 20-28.29"/><path fill="#f9f9f9" d="M22,60.285C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.715V3.713C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.713V60.285z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#428bc1"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ec.svg
index 8445e40..3571c0a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M22,60.287V3.715C10.35,7.834,2,18.939,2,32S10.35,56.168,22,60.287z"/><path fill="#ed4c5c" d="m22 32h40c0-16.568-13.432-30-30-30-3.508 0-6.871.607-10 1.715v28.29"/><path fill="#699635" d="M22,32v28.287C25.129,61.393,28.492,62,32,62c16.568,0,30-13.432,30-30H22z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M22,60.3V3.7C10.4,7.8,2,18.9,2,32S10.4,56.2,22,60.3z" fill="#f9f9f9"/><path d="m22 32h40c0-16.6-13.4-30-30-30-3.5 0-6.9.6-10 1.7v28.3" fill="#ed4c5c"/><path d="m22 32v28.3c3.1 1.1 6.5 1.7 10 1.7 16.6 0 30-13.4 30-30h-40" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ed.svg
index 8724b5f..bc53ad9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ed.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m39.77 3.03c-16-4.288-32.455 5.209-36.743 21.21-1.316 4.913-1.329 9.867-.258 14.5l43.647-33.05c-2.059-1.126-4.279-2.032-6.646-2.666"/><path d="m11.611 54.01c3.466 3.219 7.742 5.666 12.629 6.975 16 4.289 32.453-5.209 36.742-21.21.617-2.303.939-4.613 1.01-6.898l-50.38 21.14"/></g><path fill="#ff8736" d="m58.03 17.08c-2.705-4.715-6.685-8.693-11.611-11.388l-43.647 33.05c.677 2.924 1.783 5.723 3.275 8.299l51.983-29.958"/><g fill="#fff"><path d="m58.03 17.08l-51.983 29.958c1.491 2.574 3.367 4.926 5.567 6.969l50.38-21.14c.166-5.623-1.258-11.07-3.963-15.791"/><path d="m19.64 18.14l6.671-.402-6.671-.401 3.674-1.399-3.882.624 3.187-2.301-3.589 1.608 2.484-3.049-3.05 2.482 1.606-3.588-2.3 3.186.625-3.88-1.4 3.673-.4-6.673-.401 6.673-1.4-3.673.625 3.88-2.299-3.186 1.606 3.588-3.05-2.482 2.483 3.049-3.589-1.608 3.187 2.301-3.882-.624 3.674 1.399-6.67.401 6.67.402-3.674 1.398 3.882-.624-3.187 2.306 3.589-1.612-2.483 3.049 3.05-2.477-1.606 3.582 2.299-3.186-.625 3.881 1.4-3.674.401 6.671.4-6.671 1.4 3.674-.625-3.881 2.3 3.186-1.606-3.582 3.05 2.477-2.484-3.049 3.589 1.612-3.187-2.306 3.882.624z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m39.8 3c-16-4.3-32.5 5.2-36.8 21.2-1.3 4.9-1.3 9.9-.3 14.5l43.6-33c-1.9-1.1-4.2-2-6.5-2.7"/><path d="m11.6 54c3.5 3.2 7.7 5.7 12.6 7 16 4.3 32.5-5.2 36.7-21.2.6-2.3.9-4.6 1-6.9l-50.3 21.1"/></g><path d="m58 17.1c-2.7-4.7-6.7-8.7-11.6-11.4l-43.6 33c.6 3 1.8 5.8 3.2 8.3l52-29.9" fill="#ff8736"/><g fill="#fff"><path d="m58 17.1l-52 29.9c1.5 2.6 3.4 4.9 5.6 7l50.4-21.1c.2-5.6-1.3-11.1-4-15.8"/><path d="m19.6 18.1l6.7-.4-6.7-.4 3.7-1.4-3.9.7 3.2-2.3-3.6 1.6 2.5-3.1-3 2.5 1.6-3.6-2.3 3.2.6-3.9-1.4 3.7-.4-6.7-.4 6.7-1.4-3.7.6 3.9-2.3-3.2 1.6 3.6-3-2.5 2.5 3.1-3.6-1.6 3.2 2.3-3.9-.7 3.6 1.4-6.6.4 6.6.4-3.6 1.4 3.9-.6-3.2 2.3 3.6-1.6-2.5 3.1 3-2.5-1.6 3.6 2.3-3.2-.6 3.9 1.4-3.7.4 6.7.4-6.7 1.4 3.7-.6-3.9 2.3 3.2-1.6-3.6 3 2.5-2.5-3.1 3.6 1.6-3.2-2.3 3.9.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f0.svg
index e59c600..8a3bc3e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m45.58 32.997l16.341 1.072c.047-.684.079-1.373.079-2.069 0-5.393-1.43-10.448-3.921-14.821l-14.268 8.07-2.582-3.236 11.04-12.12c-4.256-3.904-9.641-6.596-15.609-7.527l-2.592 16.203h-4.14l-2.592-16.204c-5.971.932-11.357 3.625-15.613 7.53l11.05 12.12-2.582 3.236-14.272-8.07c-2.488 4.372-3.917 9.425-3.917 14.815 0 .698.032 1.389.079 2.075l16.342-1.076.922 4.04-15.19 6.121c2.208 5.504 5.995 10.201 10.807 13.528l9.339-13.438 3.73 1.797-4.682 15.683c2.741.825 5.644 1.273 8.653 1.273 3.01 0 5.917-.448 8.658-1.274l-4.684-15.683 3.73-1.797 9.34 13.437c4.812-3.328 8.598-8.03 10.805-13.53l-15.19-6.118.921-4.04"/><g fill="#ffce31"><path d="M34.07,18.566l2.592-16.204C35.143,2.125,33.586,2,32,2s-3.143,0.125-4.662,0.362l2.592,16.204H34.07z"/><path d="m43.811 25.25l14.269-8.07c-1.552-2.725-3.513-5.185-5.808-7.289l-11.04 12.12 2.582 3.236"/><path d="m45.58 32.997l-.921 4.04 15.19 6.118c1.138-2.84 1.854-5.892 2.071-9.08l-16.34-1.072"/><path d="m35.975 45.04l4.684 15.683c3.02-.91 5.848-2.285 8.387-4.04l-9.34-13.437-3.731 1.797"/><path d="m24.298 43.25l-9.339 13.438c2.54 1.757 5.362 3.132 8.388 4.04l4.682-15.683-3.731-1.797"/><path d="m18.421 32.999l-16.342 1.076c.219 3.191.935 6.243 2.073 9.08l15.19-6.121-.921-4.04"/><path d="m22.771 22.02l-11.05-12.12c-2.295 2.106-4.256 4.567-5.808 7.292l14.271 8.07 2.583-3.236"/><circle cx="32" cy="32" r="9"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.6 33l16.3 1.1c0-.7.1-1.4.1-2.1 0-5.4-1.4-10.4-3.9-14.8l-14.3 8.1-2.6-3.3 11-12.1c-4.2-3.9-9.6-6.6-15.5-7.5l-2.6 16.2h-4.1l-2.7-16.2c-5.9.9-11.3 3.6-15.6 7.5l11 12.1-2.6 3.2-14.2-8c-2.5 4.4-3.9 9.4-3.9 14.8 0 .7 0 1.4.1 2.1l16.3-1.1.9 4-15.1 6.2c2.2 5.5 6 10.2 10.8 13.5l9.3-13.4 3.7 1.7-4.7 15.7c2.8.9 5.7 1.3 8.7 1.3 3 0 5.9-.4 8.7-1.3l-4.7-15.7 3.7-1.8 9.3 13.5c4.8-3.3 8.6-8 10.8-13.5l-15.1-6.2.9-4" fill="#ed4c5c"/><g fill="#ffce31"><path d="m34.1 18.6l2.6-16.2c-1.6-.3-3.1-.4-4.7-.4s-3.1.1-4.7.4l2.6 16.2h4.2"/><path d="m43.8 25.2l14.3-8.1c-1.6-2.7-3.5-5.2-5.8-7.3l-11.1 12.2 2.6 3.2"/><path d="m45.6 33l-.9 4 15.2 6.1c1.1-2.8 1.9-5.9 2.1-9.1l-16.4-1"/><path d="m36 45l4.7 15.7c3-.9 5.8-2.3 8.4-4l-9.3-13.4-3.8 1.7"/><path d="M24.3,43.2L15,56.7c2.5,1.8,5.4,3.1,8.4,4L28,45L24.3,43.2z"/><path d="m18.4 33l-16.3 1.1c.2 3.2.9 6.2 2.1 9.1l15.1-6.2-.9-4"/><path d="m22.8 22l-11-12.1c-2.3 2.1-4.3 4.6-5.8 7.3l14.3 8.1 2.5-3.3"/><circle cx="32" cy="32" r="9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f1.svg
index 50095cb..650d974 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f1.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#c94747" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#ffce31" d="M22,60.286C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.714V3.714C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.714V60.286z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#83bf4f"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#c94747"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f2.svg
index ea77725..2df73cf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f2.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/><path fill="#ffe62e" d="M32,2C18.938,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.062,2,32,2z"/><path fill="#699635" d="M60.286,42C61.392,38.871,62,35.508,62,32s-0.608-6.871-1.714-10H3.714C2.608,25.129,2,28.492,2,32
- s0.608,6.871,1.714,10H60.286z"/><path fill="#fff" d="M32 41.08 43.744 50 39.3 35.499 51 26.512 36.519 26.469 32 12 27.479 26.469 13 26.512 24.691 35.499 20.256 50z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ffe62e"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#699635"/><path fill="#fff" d="m32 41.1l11.7 8.9-4.4-14.5 11.7-9h-14.5l-4.5-14.5-4.5 14.5h-14.5l11.7 9-4.4 14.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f3.svg
index 7ea4179..bfb46eb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f3.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="M2,32c0,13.061,8.35,24.166,20,28.285V3.713C10.35,7.832,2,18.939,2,32z"/><path d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.224 20-28.29"/></g><path fill="#2872a0" d="M22,60.285C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.715V3.713C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.713V60.285z"/><g transform="scale(5)"><circle fill="#f9cf02" cx="2.636" cy="4.76" r=".715"/><circle fill="#c94747" cx="2.636" cy="4.435" r=".78"/><g fill="#f9cf02"><circle cx="2.636" cy="4.565" r=".52"/><path d="m2.311 3.59c0 .179.146.325.325.325.18 0 .325-.146.325-.325 0-.13-.081-.146-.081-.195 0-.049.049-.114-.049-.195.049.081-.032.097-.032.179 0 .081.032.081.032.146 0 .036-.029.065-.065.065-.036 0-.065-.029-.065-.065 0-.065.065-.13.065-.228s-.016-.129-.065-.211c-.048-.081-.13-.146-.065-.211-.097.033-.048.163-.048.244s-.065.13-.065.228c0 .097.049.114.049.179 0 .036-.029.065-.065.065-.036 0-.065-.029-.065-.065 0-.065.032-.065.032-.146 0-.081-.081-.098-.032-.179-.098.08-.05.145-.05.194 0 .049-.081.065-.081.195"/><path d="m1.206 5.605v3.12h.65v-3.12h-.65m2.21 0v3.12h.65v-3.12h-.65m-1.43.52v.26h1.3v-.26h-1.3m0 1.82v.26h1.3v-.26h-1.3m0-2.34h1.3l-.65.39-.65-.39m0 2.73h1.3l-.65.39-.65-.39"/></g></g><circle fill="#f9cf02" cx="13.182" cy="35.826" r="3.445"/><g fill="#c94747"><path d="m13.182 39.453c-2 0-3.627-1.627-3.627-3.628s1.627-3.628 3.627-3.628c2 0 3.627 1.627 3.627 3.628s-1.627 3.628-3.627 3.628m0-6.89c-1.799 0-3.262 1.464-3.262 3.262s1.463 3.263 3.262 3.263 3.262-1.465 3.262-3.263-1.464-3.262-3.262-3.262"/><path d="m13.182 39.453c-1.05 0-1.905-.854-1.905-1.905s.855-1.905 1.905-1.905c.849 0 1.54-.691 1.54-1.539 0-.849-.69-1.54-1.54-1.54v-.366c1.05 0 1.905.854 1.905 1.906 0 1.051-.855 1.904-1.905 1.904-.849 0-1.54.691-1.54 1.54s.69 1.54 1.54 1.54v.365"/><circle cx="13.182" cy="34.1" r=".65"/><circle cx="13.182" cy="37.548" r=".649"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3"/></g><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#2872a0"/><g transform="scale(5)"><circle cx="2.6" cy="4.8" r=".7" fill="#f9cf02"/><circle cx="2.6" cy="4.4" r=".8" fill="#c94747"/><g fill="#f9cf02"><circle cx="2.6" cy="4.6" r=".5"/><path d="m2.3 3.6c0 .2.1.3.3.3.2 0 .4-.1.4-.3 0-.1-.1-.1-.1-.2s0-.1 0-.2c0 .1 0 .1 0 .2 0 .1 0 .1 0 .1s0 .1-.1.1-.1 0-.1-.1c0-.1.1-.1.1-.2s0-.1-.1-.2c0-.1-.1-.1-.1-.2-.1 0 0 .2 0 .2s-.1.1-.1.2c0 .1 0 .1 0 .2 0 0 0 .1-.1.1s-.1 0-.1-.1c0-.1 0-.1 0-.1 0-.1-.1-.1 0-.2-.1.1 0 .1 0 .2s0 .1 0 .2"/><path d="m1.2 5.6v3.1h.6v-3.1c.1 0-.6 0-.6 0m2.2 0v3.1h.7v-3.1c0 0-.7 0-.7 0m-1.4.5v.3h1.3v-.3h-1.3m0 1.8v.3h1.3v-.3c0 0-1.3 0-1.3 0m0-2.3h1.3l-.7.4-.6-.4m0 2.7h1.3l-.7.4-.6-.4"/></g></g><circle cx="13.2" cy="35.8" r="3.4" fill="#f9cf02"/><g fill="#c94747"><path d="m13.2 39.5c-2 0-3.6-1.6-3.6-3.6s1.6-3.6 3.6-3.6 3.6 1.6 3.6 3.6-1.6 3.6-3.6 3.6m0-6.9c-1.8 0-3.3 1.5-3.3 3.3s1.5 3.3 3.3 3.3 3.3-1.5 3.3-3.3-1.5-3.3-3.3-3.3"/><path d="m13.2 39.5c-1.1 0-1.9-.9-1.9-1.9s.9-1.9 1.9-1.9c.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5v-.4c1.1 0 1.9.9 1.9 1.9 0 1.1-.9 1.9-1.9 1.9-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5v.4"/><circle cx="13.2" cy="34.1" r=".7"/><circle cx="13.2" cy="37.5" r=".6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f4.svg
index 51de323..30c75b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#83bf4f" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m37.45 30.385c-.742.21-1.398.534-1.978.919.099-.59.153-1.214.153-1.861 0-3.562-3.582-7.439-3.582-7.439s-3.583 3.878-3.583 7.439c0 .674.058 1.322.164 1.934-.603-.417-1.289-.77-2.075-.991-3.866-1.094-8.549 1.324-8.549 1.324s3.202 4.999 7.07 6.088c3.273.924 5.764-1.57 6.716-1.932.104-.039.337-.033.439.008.958.381 3.446 2.844 6.708 1.924 3.867-1.089 7.07-6.088 7.07-6.088s-4.683-2.418-8.55-1.325"/><path d="m24.744 48c2.151 1.271 4.623 2 7.256 2s5.104-.729 7.255-2h-14.511"/><path d="m20.301 44c.545.723 1.149 1.387 1.801 2h19.796c.651-.613 1.257-1.277 1.801-2h-23.398"/></g><g fill="#ffe62e"><path d="m32 18.13l2.474 1.87-.936-3.049 2.462-1.891-3.048-.01-.952-3.05-.95 3.05-3.05.01 2.461 1.891-.932 3.049z"/><path d="m24.652 19.343l1.849.233-1.401-1.307.711-1.721-1.591.91-1.405-1.298.415 1.87-1.577.919 1.846.241.432 1.87z"/><path d="m19.34 24.656l1.72-.723-1.87-.43-.245-1.845-.915 1.582-1.87-.421 1.295 1.411-.909 1.584 1.72-.714 1.307 1.403z"/><path d="m44.66 24.655l-.23 1.848 1.302-1.403 1.718.713-.904-1.583 1.296-1.412-1.869.422-.923-1.584-.24 1.845-1.867.432z"/><path d="m39.35 19.342l.72 1.718.43-1.86 1.85-.251-1.584-.919.414-1.87-1.404 1.298-1.586-.91.71 1.721-1.4 1.307z"/></g><path fill="#fff" d="m46.32 40h-10.751c-2.399 0-2.559-1.676-2.566-2h-2c0 .203-.072 2-2.566 2h-10.751c.306.689.637 1.363 1.016 2h9.735c1.765 0 2.88-.641 3.566-1.436.687.795 1.802 1.436 3.566 1.436h9.735c.38-.637.711-1.311 1.016-2"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#83bf4f"/><g fill="#fff"><path d="m37.5 30.4c-.7.2-1.4.5-2 .9.1-.6.2-1.2.2-1.9 0-3.6-3.6-7.4-3.6-7.4s-3.6 3.9-3.6 7.4c0 .7.1 1.3.2 1.9-.6-.4-1.3-.8-2.1-1-3.9-1.1-8.5 1.3-8.5 1.3s3.2 5 7.1 6.1c3.3.9 5.8-1.6 6.7-1.9.1 0 .3 0 .4 0 1 .4 3.4 2.8 6.7 1.9 3.9-1.1 7.1-6.1 7.1-6.1s-4.8-2.3-8.6-1.2"/><path d="m24.7 48c2.2 1.3 4.6 2 7.3 2s5.1-.7 7.3-2h-14.6"/><path d="m20.3 44c.5.7 1.1 1.4 1.8 2h19.8c.7-.6 1.3-1.3 1.8-2h-23.4"/></g><g fill="#ffe62e"><path d="m32 18.1l2.5 1.9-1-3 2.5-1.9-3-.1-1-3-1 3-3 .1 2.5 1.9-1 3z"/><path d="m24.7 19.3l1.8.3-1.4-1.3.7-1.8-1.6 1-1.4-1.3.4 1.8-1.5.9 1.8.3.4 1.9z"/><path d="m19.3 24.7l1.8-.8-1.9-.4-.3-1.8-.9 1.5-1.8-.4 1.3 1.4-1 1.6 1.8-.7 1.3 1.4z"/><path d="m44.7 24.7l-.3 1.8 1.3-1.4 1.8.7-1-1.6 1.3-1.4-1.8.4-.9-1.5-.3 1.8-1.9.4z"/><path d="m39.3 19.3l.8 1.8.4-1.9 1.8-.3-1.5-.9.4-1.8-1.4 1.3-1.6-1 .7 1.8-1.4 1.3z"/></g><path d="m46.3 40h-10.7c-2.4 0-2.6-1.7-2.6-2h-2c0 .2-.1 2-2.6 2h-10.7c.3.7.6 1.4 1 2h9.7c1.8 0 2.9-.6 3.6-1.4.7.8 1.8 1.4 3.6 1.4h9.7c.4-.6.7-1.3 1-2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f5.svg
index 2d08288..823a275 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#0071bc" cx="32" cy="32" r="30"/><path fill="#8c8a8c" d="m37.447 47.896l-1.129-8.348-1.281-11.539c0 0-.051-.757-.104-1.514-.051-.756-.281-.986-.525-1.191l-.142.027c1.696-.708 1.476-2.899 1.476-2.899s.525-.641.436-1.692-1.923-1.167-1.923-1.167c-.013.026-3.948-.051-5.244.014-1.295.063-1.475 1.09-1.475 1.09s.103 1.294.462 3.128c.359 1.833 1.244 1.615 1.244 1.615s.262.016.678.031c-.313.002-.558.007-.691.021-.654.243-.808 1.872-.808 1.872l-1.321 12.204-1.358 9.655c0 0 .205.961 1.462 1.359.18.73 1.191 1.077 1.641 1.141.449.064 1.449-.32 2.025-.372.578-.052 1.526.347 1.795.359.295.013 3.283-.321 3.834-1.475.757-.077 1.025-1.025 1.025-1.025l-.077-1.294"/><g fill="#fff"><path d="m51.3 31.3c.015.015 1.825-1.768-.42-3.563.971-1.825-.203-2.274-.203-2.274s.564-1.478-.971-1.55c.754-1.174-.971-2.478-.971-2.478s.275-1.796-2.447-1.984c.65-2.984-2.348-2.304-2.348-2.304s.551-2.491-3.26-2.144c-.84-2.086-2.636-1.174-2.636-1.174s-1.116-1.535-2.419-.681c-.986-1.217-2.264-.253-2.621-.113-.987-.239-2.515-1.424-3.232-.19-.564-.232-1.694.507-1.694.507s-1.782-1.203-2.984 1.145c-2.361-.928-2.897.999-2.897.999s-1.738-.318-2.23 1.275c-2.55-.174-2.593 1.607-2.593 1.607s-1.622.058-1.767 2.304c-2.318.927-1.463 3.144-1.463 3.144s-1.623.651-1.333 3.375c-1.796 1.275-.029 3.071-.029 3.071s-1.376.941-.101 2.824c-1.709 1.318.507 2.463.507 2.463s-1 1.116.608 2.087c-.869 2.216.812 2.245 1.058 2.332-.063.387.092.772.507.941 0 0-.145 1.854 1.752 1.681-.304.768.507 1.13.521 1.144.015.015-.043 1.564 1.796 1.188.449 1.507 1.318 1.173 1.362 1.173.043 0-.565 1.812 2.188 1.884 1.173 1.261 2.752 1.261 2.752 1.261s1.058-4.883.811-5.606c-.246-.725-2.115-.232-2.115-.232s-.289-1.55-2.303-1.506c.435-.869-.666-.913-.666-.913s1.115-1.304-1.246-1.564c.334-1.55-.348-1.376-1.116-1.724-.014-.564.362-1.521-.84-1.912 1.057-1.392-.623-2.145-.623-2.145s.884-2.101-.333-2.419c1.26-1.304.333-2.463.333-2.463s.869-1.028.536-1.868c.941-.479.84-1.971.84-1.971s1.043-.261 1.304-1.796c1.999-.349 1.825-1.652 1.825-1.652s1.666-.028 1.999-1.506c1.449.405 2.348-1.188 2.348-1.188s1.057.521 2.244-.681c.666 1.028 2.681-.304 2.681-.304s.854.999 2.39.043c.768 1.231 2.057.594 2.057.594s.393.826 1.29.362c.464 1.753 2.781 1.13 2.796 1.13s.145 1.159 1.318.971c.217 1.55 2 1.188 2 1.188s.23 1.869 1.391 2.072c-.508 1.681.896 2.043.896 2.043s-.42 1.231.869 2.317c-1.217.695.146 3.114.16 3.144.014.028-1.072 1.159-.262 2.709-1.332.449-1.07 2.405-1.07 2.405s-1.275 1.043-1.334 2.303c-2.1.406-1.94 2.26-1.94 2.26s-1.638.131-2.072 1.811c-1.448-.304-2.954 1.289-2.954 1.289l.564 4.304c.058.028 3.01.623 3.621-1.377 2.521.667 2.709-1.825 2.709-1.825s1.982-.109 2.057-1.466c1.898-.928 1.392-1.808 1.392-1.808s1.912-.247 1.941-2.274c1.506-.493 1.158-2.217 1.158-2.217s1.348-.681 1.015-3.347c1.099-1.683-.118-3.146-.103-3.131"/><path d="m31.846 36.16l6.693 4.86-2.557-7.87 6.694-4.86h-8.274l-2.556-7.873-2.556 7.873h-8.27l6.689 4.86-2.559 7.87z"/></g><g fill="#ffce31"><path d="m37.27 46.841c0 0 8.59-2.427 11.186-12.97-1.507 10.822-10.906 14.252-10.906 14.252l-.28-1.282"/><path d="m26.02 46.612c0 0-8.512-2.471-11.08-13.202 1.492 11.02 10.806 14.508 10.806 14.508l.276-1.306"/></g><g fill="#ed4c5c"><path d="m48.791 29.76l-.661.082-.232.881.442.798.66-.084.23-.88z"/><path d="m48.858 29.69l.232-.881-.442-.799-.666.08-.226.886.434.796z"/><path d="m48.582 27.84l.148-.897-.5-.753-.66.138-.15.902.506.751z"/><path d="m48.17 25.898l-.09-.905-.68-.601-.595.303.084.906.681.599z"/><path d="m47.48 24.334l-.09-.905-.679-.602-.601.303.09.91.679.599z"/><path d="m46.41 21.855l-.729-.542-.571.354.16.895.73.538.571-.349z"/><path d="m45.32 20.34l-.782-.469-.538.406.25.873.78.472.533-.412z"/><path d="m44.01 18.927l-.84-.352-.465.475.375.836.836.35.464-.479z"/><path d="m42.546 17.625l-.868-.271-.418.52.441.793.867.272.422-.521z"/><path d="m40.99 16.588l-.9-.125-.33.587.57.705.9.124.331-.584z"/><path d="m39.25 15.666l-.91-.042-.28.611.639.654.908.042.276-.613z"/><path d="m37.543 14.979l-.909.019-.235.628.671.609.914-.018.236-.629z"/><path d="m35.808 14.435l-.906.087-.185.645.721.556.902-.088.187-.645z"/><path d="m33.02 14.336l-.086.664.796.439.881-.226.084-.666-.797-.437z"/><path d="m31.16 14.304l-.03.67.829.369.858-.303.028-.669-.835-.371z"/><path d="m29.428 14.364l-.027.666.829.373.86-.303.03-.667-.83-.373z"/><path d="m28.26 14.304l-.747.514.149.655.899.137.749-.51-.15-.659z"/><path d="m26.421 14.765l-.704.575.203.639.906.061.705-.572-.203-.639z"/><path d="m24.74 15.484l-.63.656.278.61.908-.045.631-.655-.279-.611z"/><path d="m23.07 16.343l-.578.707.329.585.902-.123.572-.706-.328-.585z"/><path d="m21.48 17.418l-.492.762.39.549.883-.22.493-.765-.391-.545z"/><path d="m20.01 18.53l-.423.803.433.511.863-.294.426-.803-.435-.511z"/><path d="m18.719 19.883l-.368.831.471.476.837-.352.371-.828-.473-.482z"/><path d="m17.604 21.387l-.297.859.509.438.805-.424.296-.86-.508-.437z"/><path d="m16.584 22.926l-.203.887.553.377.755-.503.203-.887-.553-.38z"/><path d="m15.735 24.672l-.048.908.61.28.657-.63.046-.907-.608-.283z"/><path d="m15.66 25.811l-.6.685.04.909.629.223.598-.686-.035-.912z"/><path d="m15.803 27.736l-.653-.148-.516.75.139.902.357.08-.24-.02-.411.65.255.699.668.05.412-.649-.256-.7-.101-.007.485-.707z"/></g><g fill="#ffce31"><path d="m47.836 27.512l.664-.209-.514-.732z"/><path d="m48.16 29.322l.674-.162-.454-.764z"/><path d="m47.39 25.86l.589-.37-.679-.578z"/><path d="m46.588 24.21l.582-.367-.68-.578.098.945"/><path d="m44.654 21.19l.516-.455-.76-.461z"/><path d="m43.39 19.879l.503-.478-.783-.432z"/><path d="m40.738 17.64l.332-.61-.88-.171z"/><path d="m42.12 18.675l.429-.545-.831-.317z"/><path d="m39.16 16.77l.27-.64-.891-.08z"/><path d="m37.551 16.07l.17-.674-.889.047z"/><path d="m35.816 15.529l.113-.683-.879.123z"/><path d="m28.771 15.326l-.175-.669-.756.473z"/><path d="m30.512 15.1l-.084-.69-.813.365z"/><path d="m23.796 17.198l-.386-.575-.558.694z"/><path d="m25.371 16.394l-.311-.619-.64.621z"/><path d="m20.864 19.239l-.497-.481-.401.795z"/><path d="m22.264 18.09l-.459-.515-.462.762z"/><path d="m19.622 20.464l-.542-.434-.325.827z"/><path d="m18.508 21.909l-.576-.384-.251.855z"/><path d="m17.576 23.387l-.628-.287-.117.879z"/><path d="m16.758 24.965l-.658-.207v.89l.658-.683"/><path d="m16.1 26.585l-.682-.101.14.88z"/><path d="m15.665 28.39l-.69-.054.198.864z"/><path d="m15.486 29.892l-.689.051.293.653z"/><path d="m45.868 22.744l.532-.451-.761-.473z"/><path d="m48.36 31.16l.67-.163-.45-.767z"/><path d="m36.55 18.19l1.382-1.419-1.094-.641z"/><path d="m27.03 18.526l.515-1.912-1.265-.025z"/><path d="m25.14 19.09l.518-1.91-1.265-.02z"/><path d="m23.05 19.74l.516-1.911-1.265-.025z"/><path d="m21.577 21.21l.513-1.909-1.262-.026z"/><path d="m20.03 22.634l.513-1.911-1.266-.026z"/><path d="m23.59 14.356l-1.012 1.704 1.213.365z"/><path d="m26.689 13.401l-1.01 1.699 1.213.369z"/><path d="m15.14 21.77l1 1.705.91-.887z"/><path d="m13.59 25.731l.724 1.843 1.033-.733z"/><path d="m17.16 30.16l-1.321-1.476-.709 1.047z"/><path d="m16.42 28.24l.554-1.897-1.265-.05z"/><path d="m38.746 19.15l1.384-1.423-1.1-.637z"/><path d="m41.995 20.767l.385-1.943-1.26.06z"/><path d="m50.862 29.973l-1.322-1.473-.712 1.049z"/><path d="m46.527 30.658l.743-1.833 1.03.746z"/><path d="m45.828 18.11l-1.98.01.312 1.228z"/><path d="m43.3 15.995l-1.98.005.307 1.229z"/><path d="m39.521 13.976l-1.033 1.689 1.209.385z"/><path d="m37.06 13.384v1.98l1.23-.304z"/><path d="m30.09 17.635l.656-1.869-1.262-.118z"/><path d="m44.553 23.426l.386-1.942-1.263.059.877 1.883"/></g><g fill="#699635"><path d="m18.633 20.528c.979.979-1.01 3.63.058 5.157-.055-.713.934-5.157-.058-5.157"/><path d="m18.321 20.774c-1.54 1.437-1.081 4.299-1.199 6.227.035-.589 1.697-5.729 1.199-6.227"/><path d="m45.986 21.313c-.934 0-.018 4.839-.273 5.623 1.457-1.662-.776-4.575.273-5.623"/><path d="m47.25 24.08c-1.629 2 1.277 3.642 1.156 5.595.129-2.076-1.542-3.535-1.156-5.595"/><path d="m32.902 14.733c-.536-.43-1.266-.488-1.863.307 1.847-.429 2.378 1.615 1.268 2.801 1.533-.447 1.563-1.765 1.014-2.628 1.133.309 1.533 1.323 1.374 2.613 1.885-1.021-.31-3.984-1.793-3.093"/><path d="m48.867 31.948l-.002-.018.002.016-.002-.016c-.268 1.691-1.9 5.94-.83 7.415-.344-.963.621-2.896.949-3.877-.029.6.043 1.178.43 1.71-.667-1.859 1.091-3.258-.547-5.23m0 0v.02-.02m.001.002c.321.623.345 1.264.291 1.898-.067-.601-.241-1.168-.291-1.898"/><path d="m14.293 32.31c-.004.07-.008.123-.01.157l.01-.157"/><path d="m15.311 39.514c1.204-1.653-.715-5.395-1.013-7.273-.165 2.576 1.253 4.781 1.013 7.273"/><path d="m14.283 32.463c-.004.07-.006.099 0 0"/><path d="m14.438 38.797c1.249-1.718-.971-4.325-.142-6.538l-.003.047.003-.047v-.004-.015.016c-2.167 2.612.994 4.173.142 6.541"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#0071bc"/><path d="m37.4 47.9l-1.1-8.3-1.3-11.6c0 0-.1-.8-.1-1.5-.1-.8-.3-1-.5-1.2h-.1c1.7-.7 1.5-2.9 1.5-2.9s.5-.6.4-1.7-1.9-1.2-1.9-1.2c0 0-3.9-.1-5.2 0-1.3.1-1.5 1.1-1.5 1.1s.1 1.3.5 3.1c.4 1.8 1.2 1.6 1.2 1.6s.3 0 .7 0c-.3 0-.6 0-.7 0-.7.2-.8 1.9-.8 1.9l-1.3 12.2-1.4 9.7c0 0 .2 1 1.5 1.4.2.7 1.2 1.1 1.6 1.1.4.1 1.4-.3 2-.4.6-.1 1.5.3 1.8.4.3 0 3.3-.3 3.8-1.5.8-.1 1-1 1-1l-.1-1.2" fill="#8c8a8c"/><g fill="#fff"><path d="m51.3 31.3c0 0 1.8-1.8-.4-3.6 1-1.8-.2-2.3-.2-2.3s.6-1.5-1-1.5c.8-1.2-1-2.5-1-2.5s.3-1.8-2.4-2c.7-3-2.3-2.3-2.3-2.3s.6-2.5-3.3-2.1c-.8-2.1-2.6-1.2-2.6-1.2s-1.1-1.5-2.4-.7c-1-1.2-2.3-.3-2.6-.1-1-.2-2.5-1.4-3.2-.2-.6-.2-1.7.5-1.7.5s-1.8-1.2-3 1.1c-2.4-.9-2.9 1-2.9 1s-1.7-.3-2.2 1.3c-2.5-.2-2.6 1.6-2.6 1.6s-1.6.1-1.8 2.3c-2.3.9-1.5 3.1-1.5 3.1s-1.6.7-1.3 3.4c-1.8 1.3 0 3.1 0 3.1s-1.4.9-.1 2.8c-1.7 1.3.5 2.5.5 2.5s-1 1.1.6 2.1c-.9 2.2.8 2.2 1.1 2.3-.1.4.1.8.5.9 0 0-.1 1.9 1.8 1.7-.3.8.5 1.1.5 1.1 0 0 0 1.6 1.8 1.2.4 1.5 1.3 1.2 1.4 1.2 0 0-.6 1.8 2.2 1.9 1.2 1.3 2.8 1.3 2.8 1.3s1.1-4.9.8-5.6c-.2-.7-2.1-.2-2.1-.2s-.3-1.5-2.3-1.5c.4-.9-.7-.9-.7-.9s1.1-1.3-1.2-1.6c.3-1.5-.3-1.4-1.1-1.7 0-.6.4-1.5-.8-1.9 1.1-1.4-.6-2.1-.6-2.1s.9-2.1-.3-2.4c1.3-1.3.3-2.5.3-2.5s.9-1 .5-1.9c.9-.5.8-2 .8-2s1-.3 1.3-1.8c2-.3 1.8-1.7 1.8-1.7s1.7 0 2-1.5c1.4.4 2.3-1.2 2.3-1.2s1.1.5 2.2-.7c.7 1 2.7-.3 2.7-.3s.9 1 2.4 0c.8 1.2 2.1.6 2.1.6s.4.8 1.3.4c.5 1.8 2.8 1.1 2.8 1.1s.1 1.2 1.3 1c.2 1.5 2 1.2 2 1.2s.2 1.9 1.4 2.1c-.5 1.7.9 2 .9 2s-.4 1.2.9 2.3c-1.2.7.1 3.1.2 3.1 0 0-1.1 1.2-.3 2.7-1.3.4-1.1 2.4-1.1 2.4s-1.3 1-1.3 2.3c-2.1.4-1.9 2.3-1.9 2.3s-1.6.1-2.1 1.8c-1.4-.3-3 1.3-3 1.3l.6 4.3c.1 0 3 .6 3.6-1.4 2.5.7 2.7-1.8 2.7-1.8s2-.1 2.1-1.5c1.9-.9 1.4-1.8 1.4-1.8s1.9-.2 1.9-2.3c1.5-.5 1.2-2.2 1.2-2.2s1.3-.7 1-3.3c.8-1.6-.4-3-.4-3"/><path d="m31.8 36.2l6.7 4.8-2.5-7.8 6.7-4.9h-8.3l-2.6-7.9-2.5 7.9h-8.3l6.7 4.9-2.5 7.8z"/></g><g fill="#ffce31"><path d="m37.3 46.8c0 0 8.6-2.4 11.2-13-1.5 10.9-10.9 14.3-10.9 14.3l-.3-1.3"/><path d="m26 46.6c0 0-8.5-2.5-11.1-13.2 1.5 11 10.8 14.5 10.8 14.5l.3-1.3"/></g><g fill="#ed4c5c"><path d="m48.8 29.8h-.7l-.2.9.4.8.7-.1.2-.8z"/><path d="m48.9 29.7l.2-.9-.5-.8-.6.1-.2.9.4.8z"/><path d="m48.6 27.8l.1-.9-.5-.7-.6.1-.2.9.5.8z"/><path d="m48.2 25.9l-.1-.9-.7-.6-.6.3.1.9.7.6z"/><path d="m47.5 24.3l-.1-.9-.7-.6-.6.3.1.9.7.6z"/><path d="m46.4 21.9l-.7-.6-.6.4.2.9.7.5.6-.3z"/><path d="m45.3 20.3l-.8-.4-.5.4.3.9.7.4.6-.4z"/><path d="m44 18.9l-.8-.3-.5.5.4.8.8.3.5-.4z"/><path d="m42.5 17.6l-.8-.2-.4.5.4.8.9.2.4-.5z"/><path d="m41 16.6l-.9-.1-.3.5.5.8.9.1.4-.6z"/><path d="m39.2 15.7l-.9-.1-.2.6.6.7h.9l.3-.6z"/><path d="m37.5 15h-.9l-.2.6.7.6h.9l.2-.6z"/><path d="m35.8 14.4l-.9.1-.2.7.7.5.9-.1.2-.6z"/><path d="m33 14.3l-.1.7.8.4.9-.2.1-.7-.8-.4z"/><path d="m31.2 14.3l-.1.7.9.3.8-.3v-.6l-.8-.4z"/><path d="m29.4 14.4v.6l.8.4.9-.3v-.7l-.8-.3z"/><path d="m28.3 14.3l-.8.5.2.7.9.1.7-.5-.1-.7z"/><path d="m26.4 14.8l-.7.5.2.7h.9l.7-.5-.2-.7z"/><path d="m24.7 15.5l-.6.6.3.7.9-.1.6-.7-.3-.6z"/><path d="m23.1 16.3l-.6.7.3.6.9-.1.6-.7-.3-.6z"/><path d="m21.5 17.4l-.5.8.4.5.9-.2.5-.8-.4-.5z"/><path d="m20 18.5l-.4.8.4.5.9-.3.4-.8-.4-.5z"/><path d="m18.7 19.9l-.3.8.4.5.9-.4.3-.8-.4-.5z"/><path d="m17.6 21.4l-.3.8.5.5.8-.4.3-.9-.5-.4z"/><path d="m16.6 22.9l-.2.9.5.4.8-.5.2-.9-.6-.4z"/><path d="m15.7 24.7v.9l.6.3.7-.7v-.9l-.6-.3z"/><path d="m15.7 25.8l-.6.7v.9l.6.2.6-.7v-.9z"/><path d="m15.8 27.7l-.7-.1-.5.7.2.9.3.1h-.2l-.4.7.2.6.7.1.4-.7-.2-.6-.1-.1.4-.7z"/></g><g fill="#ffce31"><path d="m47.8 27.5l.7-.2-.5-.7z"/><path d="m48.2 29.3l.6-.1-.4-.8z"/><path d="m47.4 25.9l.6-.4-.7-.6z"/><path d="m46.6 24.2l.6-.4-.7-.5.1.9"/><path d="m44.7 21.2l.5-.5-.8-.4z"/><path d="m43.4 19.9l.5-.5-.8-.4z"/><path d="m40.7 17.6l.4-.6-.9-.1z"/><path d="m42.1 18.7l.4-.6-.8-.3z"/><path d="m39.2 16.8l.2-.7-.9-.1z"/><path d="m37.6 16.1l.1-.7h-.9z"/><path d="m35.8 15.5l.1-.7-.9.2z"/><path d="m28.8 15.3l-.2-.6-.8.4z"/><path d="m30.5 15.1l-.1-.7-.8.4z"/><path d="m23.8 17.2l-.4-.6-.5.7z"/><path d="m25.4 16.4l-.3-.6-.7.6z"/><path d="m20.9 19.2l-.5-.4-.4.8z"/><path d="m22.3 18.1l-.5-.5-.5.7z"/><path d="m19.6 20.5l-.5-.5-.3.9z"/><path d="m18.5 21.9l-.6-.4-.2.9z"/><path d="m17.6 23.4l-.7-.3-.1.9z"/><path d="m16.8 25l-.7-.2v.8z"/><path d="m16.1 26.6l-.7-.1.2.9z"/><path d="m15.7 28.4l-.7-.1.2.9z"/><path d="m15.5 29.9h-.7l.3.7z"/><path d="m45.9 22.7l.5-.4-.8-.5z"/><path d="m48.4 31.2l.6-.2-.4-.8z"/><path d="m36.5 18.2l1.4-1.4-1.1-.7z"/><path d="m27 18.5l.5-1.9h-1.2z"/><path d="m25.1 19.1l.6-1.9h-1.3z"/><path d="m23 19.7l.6-1.9h-1.3z"/><path d="m21.6 21.2l.5-1.9h-1.3z"/><path d="m20 22.6l.5-1.9h-1.2z"/><path d="m23.6 14.4l-1 1.7 1.2.3z"/><path d="m26.7 13.4l-1 1.7 1.2.4z"/><path d="m15.1 21.8l1 1.7.9-.9z"/><path d="m13.6 25.7l.7 1.9 1-.8z"/><path d="m17.2 30.2l-1.4-1.5-.7 1z"/><path d="m16.4 28.2l.6-1.9h-1.3z"/><path d="m38.7 19.1l1.4-1.4-1.1-.6z"/><path d="m42 20.8l.4-2-1.3.1z"/><path d="m50.9 30l-1.4-1.5-.7 1z"/><path d="m46.5 30.7l.8-1.9 1 .8z"/><path d="m45.8 18.1h-2l.4 1.2z"/><path d="m43.3 16h-2l.3 1.2z"/><path d="m39.5 14l-1 1.7 1.2.3z"/><path d="m37.1 13.4v2l1.2-.3z"/><path d="m30.1 17.6l.6-1.8-1.2-.2z"/><path d="m44.6 23.4l.3-1.9h-1.2z"/></g><g fill="#699635"><path d="m18.6 20.5c1 1-1 3.6.1 5.2-.1-.7.9-5.2-.1-5.2"/><path d="m18.3 20.8c-1.5 1.4-1.1 4.3-1.2 6.2.1-.6 1.7-5.7 1.2-6.2"/><path d="m46 21.3c-.9 0 0 4.8-.3 5.6 1.5-1.6-.8-4.5.3-5.6"/><path d="m47.2 24.1c-1.6 2 1.3 3.6 1.2 5.6.1-2.1-1.5-3.6-1.2-5.6"/><path d="m32.9 14.7c-.5-.4-1.3-.5-1.9.3 1.8-.4 2.4 1.6 1.3 2.8 1.5-.4 1.6-1.8 1-2.6 1.1.3 1.5 1.3 1.4 2.6 1.9-1-.3-4-1.8-3.1"/><path d="m48.9 31.9c-.3 1.7-1.9 5.9-.8 7.4-.3-1 .6-2.9.9-3.9 0 .6 0 1.2.4 1.7-.7-1.8 1.1-3.2-.5-5.2m0 .1c.3.6.3 1.3.3 1.9-.1-.7-.3-1.2-.3-1.9"/><path d="m14.3 32.3c0 .1 0 .1 0 .2v-.2"/><path d="m15.3 39.5c1.2-1.7-.7-5.4-1-7.3-.2 2.6 1.3 4.8 1 7.3"/><path d="m14.3 32.5c0 0 0 .1 0 0"/><path d="m14.4 38.8c1.2-1.7-1-4.3-.1-6.5-2.2 2.6 1 4.1.1 6.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f6.svg
index 54fc057..79c46fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f6.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m37.969 2.602h-11.938c-11.768 2.377-21.04 11.634-23.43 23.399v11.997c2.388 11.766 11.662 21.02 23.43 23.4h11.969c11.764-2.387 21.02-11.662 23.398-23.43v-11.967c-2.386-11.765-11.662-21.02-23.429-23.399"/><g fill="#fff"><path d="M38,26V2.602C36.062,2.207,34.055,2,32,2s-4.061,0.207-6,0.602V26H2.602C2.208,27.939,2,29.945,2,32
- s0.208,4.061,0.602,6H26v23.398C27.939,61.793,29.945,62,32,62s4.062-0.207,6-0.602V38h23.399C61.793,36.061,62,34.055,62,32
- s-0.207-4.061-0.601-6H38z"/><path d="m15.636 9.763c-.397.211-.712.517-.712.67 0 .173.232.173-.066.287-.281.114-1.042.268-1.572.249-.183 0-.613-.135-.729-.135-.132.02.563.346.298.268-.364-.114-.58-.152-.298.059.216.152.696.152 1.374.057.265-.037.96-.211 1.209-.248.165-.02.165.152.265.152.894.059 2.483.02 3.178-.095.579-.097.794-.058.959.171.331.441-.017.823-.959 1.053-1.159.287-1.639.536-2.086 1.09-1.076 1.34.182 2.852 2.533 3.063 1.374.134 2.268.439 2.052.688-.082.096-.993.248-2.035.343-2.268.211-3.277.575-4.139 1.531-.479.535-.646.861-.646 1.301 0 .613 0 .613-.877.613-.464 0-1.109-.078-1.407-.191-.463-.135-.529-.135-.364.096.332.459 1.275.861 2.053.861.596 0 .927.133 1.457.574 1.06.897 2.268 1.242 4.271 1.224 2.631-.021 4.138-.823 4.138-2.182 0-1.015-.993-1.606-3.063-1.817-1.043-.115-3.095.076-3.989.383-.166.057.017-.076.414-.307.48-.268 1.274-.459 2.351-.574 2.383-.229 3.46-.841 3.46-1.989 0-1.109-1.06-1.741-3.327-1.989-2.235-.229-2.4-.689-.514-1.359 1.341-.459 2.02-1.146 2.02-2.084 0-1.435-.679-1.914-2.946-2.047-1.376-.079-1.708-.041-2.303.284m1.192.402c-.05.096-.182.191-.265.191-.099 0-.116-.096-.066-.191.05-.115.182-.191.265-.191.099 0 .115.076.066.191m4.783 10.714c.314.133.431.268.331.382-.281.325-2.103.612-3.211.517-1.225-.133-2.549-.594-2.152-.784 1.109-.498 4.02-.556 5.03-.115"/><path d="m44.573 9.763c-.397.211-.712.517-.712.67 0 .173.232.173-.066.287-.281.114-1.042.268-1.572.249-.183 0-.612-.135-.729-.135-.133.02.563.346.299.268-.364-.114-.58-.152-.299.059.216.152.695.152 1.374.057.265-.037.96-.211 1.209-.248.165-.02.165.152.265.152.894.059 2.482.02 3.178-.095.579-.097.795-.058.96.171.331.441-.017.823-.96 1.053-1.158.287-1.639.536-2.086 1.09-1.075 1.34.183 2.852 2.533 3.063 1.374.134 2.268.439 2.052.688-.082.096-.993.248-2.035.343-2.269.211-3.277.575-4.139 1.531-.479.535-.646.861-.646 1.301 0 .613 0 .613-.877.613-.464 0-1.109-.078-1.407-.191-.463-.135-.529-.135-.364.096.332.459 1.275.861 2.053.861.596 0 .927.133 1.457.574 1.059.897 2.268 1.242 4.271 1.224 2.631-.021 4.138-.823 4.138-2.182 0-1.015-.993-1.606-3.063-1.817-1.043-.115-3.095.076-3.988.383-.166.057.016-.076.413-.307.48-.268 1.274-.459 2.351-.574 2.383-.229 3.46-.841 3.46-1.989 0-1.109-1.06-1.741-3.327-1.989-2.234-.229-2.4-.689-.514-1.359 1.341-.459 2.02-1.146 2.02-2.084 0-1.435-.679-1.914-2.946-2.047-1.376-.079-1.707-.041-2.303.284m1.193.402c-.051.096-.183.191-.266.191-.099 0-.115-.096-.066-.191.051-.115.183-.191.266-.191.099 0 .114.076.066.191m4.783 10.714c.314.133.431.268.331.382-.281.325-2.103.612-3.211.517-1.226-.133-2.55-.594-2.152-.784 1.109-.498 4.02-.556 5.03-.115"/><path d="m15.636 40.26c-.397.211-.712.517-.712.67 0 .173.232.173-.066.287-.281.114-1.042.268-1.572.249-.183 0-.613-.135-.729-.135-.132.02.563.346.298.268-.364-.114-.58-.152-.298.059.216.152.696.152 1.374.057.265-.037.96-.211 1.209-.248.165-.02.165.152.265.152.894.059 2.483.02 3.178-.095.579-.097.794-.058.959.171.331.441-.017.823-.959 1.053-1.159.287-1.639.536-2.086 1.09-1.076 1.34.182 2.852 2.533 3.063 1.374.134 2.268.439 2.052.688-.082.096-.993.248-2.035.343-2.268.211-3.277.575-4.139 1.531-.479.535-.646.861-.646 1.301 0 .613 0 .613-.877.613-.464 0-1.109-.078-1.407-.191-.463-.135-.529-.135-.364.096.332.459 1.275.861 2.053.861.596 0 .927.133 1.457.574 1.06.897 2.268 1.242 4.271 1.224 2.631-.021 4.138-.823 4.138-2.182 0-1.015-.993-1.606-3.063-1.817-1.043-.115-3.095.076-3.989.383-.166.057.017-.076.414-.307.48-.268 1.274-.459 2.351-.574 2.383-.229 3.46-.841 3.46-1.989 0-1.109-1.06-1.741-3.327-1.989-2.235-.229-2.4-.689-.514-1.359 1.341-.459 2.02-1.146 2.02-2.084 0-1.435-.679-1.914-2.946-2.047-1.376-.079-1.708-.041-2.303.284m1.192.402c-.05.096-.182.191-.265.191-.099 0-.116-.096-.066-.191.05-.115.182-.191.265-.191.099 0 .115.076.066.191m4.783 10.714c.314.133.431.268.331.382-.281.325-2.103.612-3.211.517-1.225-.133-2.549-.594-2.152-.784 1.109-.498 4.02-.556 5.03-.115"/><path d="m44.573 40.26c-.397.211-.712.517-.712.67 0 .173.232.173-.066.287-.281.114-1.042.268-1.572.249-.183 0-.612-.135-.729-.135-.133.02.563.346.299.268-.364-.114-.58-.152-.299.059.216.152.695.152 1.374.057.265-.037.96-.211 1.209-.248.165-.02.165.152.265.152.894.059 2.482.02 3.178-.095.579-.097.795-.058.96.171.331.441-.017.823-.96 1.053-1.158.287-1.639.536-2.086 1.09-1.075 1.34.183 2.852 2.533 3.063 1.374.134 2.268.439 2.052.688-.082.096-.993.248-2.035.343-2.269.211-3.277.575-4.139 1.531-.479.535-.646.861-.646 1.301 0 .613 0 .613-.877.613-.464 0-1.109-.078-1.407-.191-.463-.135-.529-.135-.364.096.332.459 1.275.861 2.053.861.596 0 .927.133 1.457.574 1.059.897 2.268 1.242 4.271 1.224 2.631-.021 4.138-.823 4.138-2.182 0-1.015-.993-1.606-3.063-1.817-1.043-.115-3.095.076-3.988.383-.166.057.016-.076.413-.307.48-.268 1.274-.459 2.351-.574 2.383-.229 3.46-.841 3.46-1.989 0-1.109-1.06-1.741-3.327-1.989-2.234-.229-2.4-.689-.514-1.359 1.341-.459 2.02-1.146 2.02-2.084 0-1.435-.679-1.914-2.946-2.047-1.376-.079-1.707-.041-2.303.284m1.193.402c-.051.096-.183.191-.266.191-.099 0-.115-.096-.066-.191.051-.115.183-.191.266-.191.099 0 .114.076.066.191m4.783 10.714c.314.133.431.268.331.382-.281.325-2.103.612-3.211.517-1.226-.133-2.55-.594-2.152-.784 1.109-.498 4.02-.556 5.03-.115"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M38,2.6H26C14.3,5,5,14.2,2.6,26v12C5,49.8,14.3,59,26,61.4h12C49.8,59,59,49.7,61.4,38V26
+ C59,14.2,49.7,5,38,2.6z" fill="#2a5f9e"/><g fill="#fff"><path d="m38 26v-23.4c-1.9-.4-3.9-.6-6-.6s-4.1.2-6 .6v23.4h-23.4c-.4 1.9-.6 3.9-.6 6s.2 4.1.6 6h23.4v23.4c1.9.4 3.9.6 6 .6s4.1-.2 6-.6v-23.4h23.4c.4-1.9.6-3.9.6-6s-.2-4.1-.6-6h-23.4"/><path d="m15.6 9.8c-.4.2-.7.5-.7.7 0 .2.2.2-.1.3-.3.1-1 .3-1.6.2-.2 0-.6-.1-.7-.1-.1 0 .6.3.3.3-.4-.1-.6-.2-.3.1.2.2.7.2 1.4.1.3 0 1-.2 1.2-.2.2 0 .2.2.3.2.9.1 2.5 0 3.2-.1.6-.1.8-.1 1 .2.3.4 0 .8-1 1.1-1.2.3-1.6.5-2.1 1.1-1.1 1.3.2 2.9 2.5 3.1 1.4.1 2.3.4 2.1.7-.1.1-1 .2-2 .3-2.3.2-3.3.6-4.1 1.5-.5.5-.6.9-.6 1.3 0 .6 0 .6-.9.6-.5 0-1.1-.1-1.4-.2-.5-.1-.5-.1-.4.1.3.5 1.3.9 2.1.9.6 0 .9.1 1.5.6 1.1.9 2.3 1.2 4.3 1.2 2.6 0 4.1-.8 4.1-2.2 0-1-1-1.6-3.1-1.8-1-.1-3.1.1-4 .4-.2.1 0-.1.4-.3.5-.3 1.3-.5 2.4-.6 2.4-.2 3.5-.8 3.5-2 0-1.1-1.1-1.7-3.3-2-2.2-.2-2.4-.7-.5-1.4 1.3-.5 2-1.1 2-2.1 0-1.4-.7-1.9-2.9-2-1.6-.4-2-.4-2.6 0m1.2.4c0 .1-.2.2-.3.2-.1 0-.1-.1-.1-.2 0-.1.2-.2.3-.2.2 0 .2.1.1.2m4.8 10.7c.3.1.4.3.3.4-.3.3-2.1.6-3.2.5-1.2-.1-2.5-.6-2.2-.8 1.2-.5 4.1-.6 5.1-.1"/><path d="m44.6 9.8c-.4.2-.7.5-.7.7 0 .2.2.2-.1.3-.3.1-1 .3-1.6.2-.2 0-.6-.1-.7-.1-.1 0 .6.3.3.3-.4-.1-.6-.2-.3.1.2.2.7.2 1.4.1.3 0 1-.2 1.2-.2.2 0 .2.2.3.2.9.1 2.5 0 3.2-.1.6-.1.8-.1 1 .2.3.4 0 .8-1 1.1-1.2.3-1.6.5-2.1 1.1-1.1 1.3.2 2.9 2.5 3.1 1.4.1 2.3.4 2.1.7-.1.1-1 .2-2 .3-2.3.2-3.3.6-4.1 1.5-.5.5-.6.9-.6 1.3 0 .6 0 .6-.9.6-.5 0-1.1-.1-1.4-.2-.5-.1-.5-.1-.4.1.3.5 1.3.9 2.1.9.6 0 .9.1 1.5.6 1.1.9 2.3 1.2 4.3 1.2 2.6 0 4.1-.8 4.1-2.2 0-1-1-1.6-3.1-1.8-1-.1-3.1.1-4 .4-.2.1 0-.1.4-.3.5-.3 1.3-.5 2.4-.6 2.4-.2 3.5-.8 3.5-2 0-1.1-1.1-1.7-3.3-2-2.2-.2-2.4-.7-.5-1.4 1.3-.5 2-1.1 2-2.1 0-1.4-.7-1.9-2.9-2-1.7-.4-2-.4-2.6 0m1.2.4c-.1.1-.2.2-.3.2-.1 0-.1-.1-.1-.2.1-.1.2-.2.3-.2.1 0 .1.1.1.2m4.7 10.7c.3.1.4.3.3.4-.3.3-2.1.6-3.2.5-1.2-.1-2.5-.6-2.2-.8 1.2-.5 4.1-.6 5.1-.1"/><path d="m15.6 40.3c-.4.2-.7.5-.7.7 0 .2.2.2-.1.3-.3.1-1 .3-1.6.2-.2 0-.6-.1-.7-.1-.1 0 .6.3.3.3-.4-.1-.6-.2-.3.1.2.2.7.2 1.4.1.3 0 1-.2 1.2-.2.2 0 .2.2.3.2.9.1 2.5 0 3.2-.1.6-.1.8-.1 1 .2.3.4 0 .8-1 1.1-1.2.3-1.6.5-2.1 1.1-1.1 1.3.2 2.9 2.5 3.1 1.4.1 2.3.4 2.1.7-.1.1-1 .2-2 .3-2.3.2-3.3.6-4.1 1.5-.5.5-.6.9-.6 1.3 0 .6 0 .6-.9.6-.5 0-1.1-.1-1.4-.2-.5-.1-.5-.1-.4.1.3.5 1.3.9 2.1.9.6 0 .9.1 1.5.6 1.1.9 2.3 1.2 4.3 1.2 2.6 0 4.1-.8 4.1-2.2 0-1-1-1.6-3.1-1.8-1-.1-3.1.1-4 .4-.2.1 0-.1.4-.3.5-.3 1.3-.5 2.4-.6 2.4-.2 3.5-.8 3.5-2 0-1.1-1.1-1.7-3.3-2-2.2-.2-2.4-.7-.5-1.4 1.3-.5 2-1.1 2-2.1 0-1.4-.7-1.9-2.9-2-1.6-.4-2-.4-2.6 0m1.2.4c0 .1-.2.2-.3.2-.1 0-.1-.1-.1-.2 0-.1.2-.2.3-.2.2 0 .2 0 .1.2m4.8 10.7c.3.1.4.3.3.4-.3.3-2.1.6-3.2.5-1.2-.1-2.5-.6-2.2-.8 1.2-.5 4.1-.6 5.1-.1"/><path d="m44.6 40.3c-.4.2-.7.5-.7.7 0 .2.2.2-.1.3-.3.1-1 .3-1.6.2-.2 0-.6-.1-.7-.1-.1 0 .6.3.3.3-.4-.1-.6-.2-.3.1.2.2.7.2 1.4.1.3 0 1-.2 1.2-.2.2 0 .2.2.3.2.9.1 2.5 0 3.2-.1.6-.1.8-.1 1 .2.3.4 0 .8-1 1.1-1.2.3-1.6.5-2.1 1.1-1.1 1.3.2 2.9 2.5 3.1 1.4.1 2.3.4 2.1.7-.1.1-1 .2-2 .3-2.3.2-3.3.6-4.1 1.5-.5.5-.6.9-.6 1.3 0 .6 0 .6-.9.6-.5 0-1.1-.1-1.4-.2-.5-.1-.5-.1-.4.1.3.5 1.3.9 2.1.9.6 0 .9.1 1.5.6 1.1.9 2.3 1.2 4.3 1.2 2.6 0 4.1-.8 4.1-2.2 0-1-1-1.6-3.1-1.8-1-.1-3.1.1-4 .4-.2.1 0-.1.4-.3.5-.3 1.3-.5 2.4-.6 2.4-.2 3.5-.8 3.5-2 0-1.1-1.1-1.7-3.3-2-2.2-.2-2.4-.7-.5-1.4 1.3-.5 2-1.1 2-2.1 0-1.4-.7-1.9-2.9-2-1.7-.4-2-.4-2.6 0m1.2.4c-.1.1-.2.2-.3.2-.1 0-.1-.1-.1-.2.1-.1.2-.2.3-.2.1 0 .1 0 .1.2m4.7 10.7c.3.1.4.3.3.4-.3.3-2.1.6-3.2.5-1.2-.1-2.5-.6-2.2-.8 1.2-.5 4.1-.6 5.1-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f7.svg
index bdff8c6..7878b6b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#699635" cx="32" cy="32" r="30"/><g fill="#ffce31"><path d="m47.68 28.8c-1.485 7.303-7.94 12.8-15.68 12.8s-14.195-5.497-15.68-12.8c-.209 1.034-.32 2.104-.32 3.2 0 8.837 7.164 16 16 16s16-7.163 16-16c0-1.096-.111-2.166-.32-3.2"/><path d="m26.561 32l5.439-3.75 5.439 3.75-2.059-6.105 5.421-3.895h-6.711l-2.09-6-2.03 6h-6.77l5.415 3.895z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#699635"/><g fill="#ffce31"><path d="m47.7 28.8c-1.5 7.3-7.9 12.8-15.7 12.8s-14.2-5.5-15.7-12.8c-.2 1-.3 2.1-.3 3.2 0 8.8 7.2 16 16 16s16-7.2 16-16c0-1.1-.1-2.2-.3-3.2"/><path d="m26.6 32l5.4-3.8 5.4 3.8-2-6.1 5.4-3.9h-6.7l-2.1-6-2 6h-6.8l5.4 3.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f8.svg
index fda7632..97cb964 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h21v21h-21z"/><path fill="#fff" d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path fill="#2a5f9e" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#fff" d="M11,18.912H5.011C3.088,22.869,2,27.306,2,32h12V13.912h-3V18.912z"/><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><path fill="#fff" d="m36.587 21.776h19.977l-.024 14.215c.166 5.714-3.396 9.26-9.949 10.858-4.653-1.155-10.02-3.546-10.03-10.696l.023-14.377"/><path fill="#42ade2" d="m37.03 22.2h19.09l-.022 13.622c.159 5.476-3.245 8.873-9.508 10.405-4.447-1.107-9.576-3.397-9.583-10.25l.021-13.777"/><path fill="#c94747" d="m37.16 37.466c.86 5.821 5.302 7.589 9.429 8.696 4.663-1.212 8.688-3.496 9.383-8.723l-18.812.027"/><path d="m45.833 24.742l-.026-1.717 1.357.013.013 1.704h3.713l.014 1.33-3.727.014-.029 15.695-1.324.008-.017-15.717-3.7.014v-1.357l3.726.013"/><path fill="#ff9a08" d="m44.69 33.862c-.927.378-.757 1.962-1.977 2.45-1.135.454-1.625 2.509-.111 1.903.055.338 3.539 4.955 3.941 4.731 2.41-1.364.934-8.807-1.853-9.08m1.536 7.751c-.727-.754-3.89-4.162-3.959-4.066.133.082 2.56-2.283 2.773-2.943 1.697.976 2.524 5.539 1.186 7.01"/><path fill="#699635" d="m50.636 37.18c.112-1.188-.066-2.287-.358-2.825s-.337-1.211-.785-1.996c.332.056.516-.628.595-1.458.044-.47.011-.829.111-1.67.102-.841-.201-1.145-.409-1.317-.207-.174-.342-.23-.442-.241-.297-.102-1.021-.012-1.167.033-.146.045-.344.057-.489.034s-.268.101-.503.303v9.878c.077.882-.162 2.759-.655 4.127-.197.547-.112.762.157.941 1.175.784 1.973 0 2.825-.65.278-.212.426-.224.763.135.336.358.717.471.874.358-.943-1.795-.629-4.463-.517-5.652"/><g fill="#fff"><path d="m47.581 27.13c.859.472-.008.654.453 1.547.395-.558 1.615-.463 1.043-1.269-.406-.572.974-2.16-.572-2.182-.526-.007-1.525 1.57-.924 1.904"/><path d="m44.614 29.417c.898-.105 1.457.268 1.2-.965-1.691 0 .697-2.881.477-3.353-.565-1.214-2.957 4.466-1.677 4.318"/><path d="m49.896 29.518c-.033-.174-2.795 2.054-3.285 2.422.26-.195-3.385 2.425-2.146 2.557.521.069.89-.702 1.169-1.141 1.243-1.963 4.262-.151 4.262-3.838"/><path d="m50.46 42.827c-.122-.459-.503-.775-.947-.493.14.508-.533 1.669-.247 1.89.517.39 1.29-1.038 1.194-1.397"/><path d="m46.32 43.3c.157.156.511.162.757-.102-.089-.039-.285-.129-.375-.201-.124.123-.264.264-.382.303"/></g><path fill="#870f00" d="m47.911 25.47c.211-1.365 2.639.648 2.215 1.469-.725 1.401-1.883-1.927-2.215-1.469"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h21v21h-21z"/><path fill="#fff" d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m36.6 21.8h20v14.2c.2 5.7-3.4 9.3-9.9 10.9-4.7-1.2-10-3.5-10-10.7l-.1-14.4" fill="#fff"/><path d="m37 22.2h19.1v13.6c.2 5.5-3.2 8.9-9.5 10.4-4.5-1.1-9.6-3.4-9.6-10.2v-13.8" fill="#42ade2"/><path d="m37.2 37.5c.9 5.8 5.3 7.6 9.4 8.7 4.7-1.2 8.7-3.5 9.4-8.7h-18.8" fill="#c94747"/><path d="m45.8 24.7v-1.7h1.4v1.7h3.7v1.3h-3.7v15.7h-1.3v-15.7h-3.7v-1.4l3.6.1" fill="#231f20"/><path d="m44.7 33.9c-.9.4-.8 2-2 2.5-1.1.5-1.6 2.5-.1 1.9.1.3 3.5 5 3.9 4.7 2.5-1.4 1-8.9-1.8-9.1m1.5 7.7c-.7-.8-3.9-4.2-4-4.1.1.1 2.6-2.3 2.8-2.9 1.7 1 2.6 5.5 1.2 7" fill="#ff9a08"/><path d="m50.6 37.2c.1-1.2-.1-2.3-.4-2.8s-.3-1.2-.8-2c.3.1.5-.6.6-1.5 0-.5 0-.8.1-1.7.1-.8-.2-1.1-.4-1.3-.2-.2-.3-.2-.4-.2-.3-.1-1 0-1.2 0s-.3.1-.5 0-.3.1-.5.3v9.9c.1.9-.2 2.8-.7 4.1-.2.5-.1.8.2.9 1.2.8 2 0 2.8-.7.3-.2.4-.2.8.1.3.4.7.5.9.4-.9-1.7-.6-4.3-.5-5.5" fill="#699635"/><g fill="#fff"><path d="m47.6 27.1c.9.5 0 .7.5 1.5.4-.6 1.6-.5 1-1.3-.4-.6 1-2.2-.6-2.2-.5.1-1.5 1.7-.9 2"/><path d="m44.6 29.4c.9-.1 1.5.3 1.2-1-1.7 0 .7-2.9.5-3.4-.6-1.1-3 4.6-1.7 4.4"/><path d="m49.9 29.5c0-.2-2.8 2.1-3.3 2.4.3-.2-3.4 2.4-2.1 2.6.5.1.9-.7 1.2-1.1 1.2-2 4.2-.2 4.2-3.9"/><path d="m50.5 42.8c-.1-.5-.5-.8-.9-.5.1.5-.5 1.7-.2 1.9.4.4 1.2-1 1.1-1.4"/><path d="m46.3 43.3c.2.2.5.2.8-.1-.1 0-.3-.1-.4-.2-.1.1-.3.3-.4.3"/></g><path d="m47.9 25.5c.2-1.4 2.6.6 2.2 1.5-.7 1.3-1.9-2-2.2-1.5" fill="#870f00"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f9.svg
index f2db4f1..f244732 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,16.568,13.432,30,30,30V2C15.432,2,2,15.432,2,32z"/><g fill="#ed4c5c"><path d="m62 32c0-16.568-13.432-30-30-30v60c16.568 0 30-13.432 30-30"/><path d="m8.63 17.04v5.656h5.656c0 .942.943 1.885 1.885 1.885v5.656h5.655v-5.656c.943 0 1.885-.942 1.885-1.885h5.656v-5.656h-5.656c0-.942-.942-1.885-1.885-1.885v-5.656h-5.655v5.656c-.943 0-1.885.942-1.885 1.885h-5.656"/></g><path fill="#bcbcbc" d="m9.196 17.607v4.524h5.655c0 .943.943 1.886 1.885 1.886v5.655h4.524v-5.655c.942 0 1.886-.942 1.886-1.886h5.654v-4.524h-5.654c0-.942-.943-1.885-1.886-1.885v-5.656h-4.524v5.656c-.942 0-1.885.942-1.885 1.885h-5.655"/><path fill="#94989b" d="m16.383 15.655c.332.331.242.958-.2 1.4-.441.44-1.068.53-1.399.199-.332-.332-.242-.958.2-1.4.441-.441 1.068-.53 1.399-.199"/><g fill="#d0d0d0"><path d="m14.717 16.654l.133-.134.533.268-.267-.533.133-.134.533 1.066-1.065-.533"/><path d="m15.517 15.854l.133-.133.8.799-.133.134-.8-.8"/></g><g transform="matrix(0 1-1 0 211.11.002)"/><g transform="matrix(-1 0 0-1 211.11 211.11)"/><g transform="matrix(0-1 1 0-.002 211.11)"/><g fill="#3e4347"><path d="m17.491 22.886l.188.184-.188.193-.189-.193.189-.184"/><path d="m20.506 22.886l.189.184-.189.193-.188-.193.188-.184"/><path d="m18.874 23.07v.196h-.251v.196h.251v.196l.235.017.016-.212h.251v-.197h-.251v-.196h-.251"/></g><path fill="#94989b" d="m20.691 19.08c.328-.082.566.182.676.172.091.182.3.045.3.045s-.176-.146-.351-.287c-.144-.021-.43-.204-.605-.204-.099.146-.401.307-.401.307s-.137-.206-.229-.249c.043-.086-.095-.286-.215-.434.113-.102.204-.2.265-.272.062-.01.101-.04.134-.072 0 0 .077.018.089-.051.013-.067.017-.11-.038-.223-.19-.011-.467-.124-.67-.102.041-.067.013-.167.013-.167s-.079.021-.168.089c-.054-.033-.128.001-.128.001l-.007.013c.001-.013.004-.025.004-.038 0-.227-.185-.41-.412-.41-.195 0-.359.136-.4.319-1.635-.36-2.44 1.18-1.994 1.646.144.15.539-.071.801-.225-.018.101-.021.181-.021.181s-.008.013-.019.03c-.049-.016-.116-.032-.13-.015-.021.027.37.325.37.325l.29.249c-.149.093-.271.231-.334.454h-.001c-.208.056-.57-.27-.739-.145-.169.125-.09.434.022.587.11.149-.161.203-.234.292-.069.084.179.605.266.618-.031-.064.022-.243.022-.243s.151.011.189-.055-.036-.207-.036-.207.187-.206.185-.365c-.002-.159-.34-.328-.216-.41.135-.09.369.226.571.092.118.276.462.479.683.52.044.148-.1.382-.058.471.034.07.188-.014.471.149-.034.053-.065.102-.099.138l-.327.039-.127.146-.402.031-.631-.012.408.312h3.22l.249-.197-.415-.224-.039-.013c.046-.014.084-.057.084-.057s.105.001.151-.047c.429.304.583-.049.583-.049s-.062-.016-.058-.076c-.046.021-.077-.063-.077-.063s-.008.199-.102.197c-.043-.001-.104-.044-.159-.091.16-.117.306-.362.306-.362l.083-.159.122-.025c0 0 .008-.08-.058-.077-.001-.048-.043-.073-.102-.063.011-.028-.032-.051-.032-.051-.115.029-.121.318-.121.318s-.201.153-.274.191c-.003-.166-.28-.391-.223-.497.058-.106.238.165.396.114.109-.033.179-.143.215-.26.067.057.158.079.158.079s.003-.044-.022-.096c.042.022.137.007.137.007s-.051-.054-.093-.058c.022-.014.067-.048.067-.048s-.115.006-.146-.013c.029-.015.019-.061.019-.061s-.054-.007-.109-.005c-.05-.107-.136-.248-.136-.248l-.103-.006-.089-.217c0 0-.188.122-.185.229.002.08.112.151.167.182-.073.038-.292-.1-.292-.1s.063.097.164.161c-.019 0-.038-.002-.058-.008-.01.108.127.088.179.09.025.078.102.121.102.121s.048.119-.076.107c-.124-.01-.271-.297-.446-.165-.187.14.083.396.083.396s-.04.021-.091.068c-.023-.03-.057-.07-.099-.115.019-.212.085-.642.317-.839-.121-.03-.347.173-.51.342-.121-.097-.29-.22-.344-.271-.024-.046-.056-.111-.089-.186.031-.015.062-.028.095-.039.308.034.565-.094.784-.152.078.063.124.056.217.044.303.161.306.508.382.294.077.265.281.229.281.229l-.223-.383c0 0-.25-.194-.421-.338-.165-.1-.465-.058-.465-.058s.32-.2.329-.492m.198 1.32l.001-.013c.007.004.012.006.012.006s-.006.003-.013.007m-1.82-1.586v-.008m.953-.651c.01.002.017.001.026.002-.053.062-.128.141-.223.226-.064-.077-.116-.132-.116-.132s.212-.019.313-.096zm-.915-.082l-.112.093-.001.046-.003-.001-.142-.074c0 0 .037-.017.057-.038.043.019.122-.063.138-.092.003-.001.005-.002.008-.003.04.014.076.013.083-.01.002-.005.003-.014.005-.025.014-.007.027-.014.04-.021l-.073.125m-.549-.34c.019.059.049.11.089.154-.026.019-.06.039-.06.039s-.016-.007-.042-.014c-.021-.011-.042-.017-.065-.019-.037-.011-.077-.02-.119-.029.04-.05.119-.092.197-.131m-.903 1.613l-.094-.058c.018.003.075.043.092.03.02-.015-.004-.061-.014-.078-.01-.016-.07-.033-.084-.108-.015-.075.038-.179.038-.179s.083-.066.157-.152c.255-.118.362-.25.362-.25l.006.002c-.036.142-.013.312.09.394.013.168.152.502.267.551-.136.032-.28.063-.416.11l-.404-.262m.824 1.705c.104-.049.206-.312.158-.392.126.157.031.39.091.437.069.053.166-.025.166-.025.174.046.484-.052.484-.052.137.077.083-.036.166-.031.02.051.054.085.091.108-.13.022-.271.067-.442.102-.219-.118-.354-.014-.459.126-.116-.065-.215-.131-.255-.273m1.282-.683c-.002.029-.002.064.024.1.026.035.148.041.154.021.017.024.056.044.1.059-.032.036-.057.064-.072.083-.24-.145-.549-.229-.888-.077.362-.039.37.16.37.16s.246-.012.197.165c.144-.021.147.134.147.134s.123-.056.14.052c.081-.043.14.05.167.105-.105-.06-.201-.085-.297-.088-.076-.072-.209-.192-.304-.235-.107.063-.418.073-.472.063-.061-.011-.022-.085-.051-.128.097-.093.048-.302-.007-.428.042.001.116-.009.237-.063.103-.046.193-.111.281-.174.081.098.178.183.274.251"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30V2C15.4,2,2,15.4,2,32z" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="m62 32c0-16.6-13.4-30-30-30v60c16.6 0 30-13.4 30-30"/><path d="m8.6 17v5.7h5.7c0 .9.9 1.9 1.9 1.9v5.7h5.7v-5.7c.9 0 1.9-.9 1.9-1.9h5.7v-5.7h-5.7c0-.9-.9-1.9-1.9-1.9v-5.6h-5.7v5.7c-.9 0-1.9.9-1.9 1.9h-5.7v-.1"/></g><path d="m9.2 17.6v4.5h5.7c0 .9.9 1.9 1.9 1.9v5.7h4.5v-5.7c.9 0 1.9-.9 1.9-1.9h5.7v-4.5h-5.7c0-.9-.9-1.9-1.9-1.9v-5.7h-4.5v5.7c-.9 0-1.9.9-1.9 1.9h-5.7" fill="#bcbcbc"/><path d="m16.4 15.7c.3.3.2 1-.2 1.4-.4.4-1.1.5-1.4.2-.3-.3-.2-1 .2-1.4.4-.5 1.1-.6 1.4-.2" fill="#94989b"/><g fill="#d0d0d0"><path d="m14.7 16.7l.1-.1.5.3-.3-.5.1-.1.5 1.1-.9-.7"/><path d="m15.5 15.9l.1-.1.8.8-.1.1-.8-.8"/></g><g transform="matrix(0 1-1 0 211.112.002)"/><g transform="matrix(-1 0 0-1 211.11 211.114)"/><g transform="matrix(0-1 1 0-.002 211.112)"/><g fill="#3e4347"><path d="m17.5 22.9l.2.2-.2.2-.2-.2z"/><path d="m20.5 22.9l.2.2-.2.2-.2-.2z"/><path d="m18.9 23.1v.2h-.3v.2h.3v.2h.2v-.2h.3v-.2h-.3v-.2h-.2"/></g><path d="m20.7 19.1c.3-.1.6.2.7.2.1.2.3 0 .3 0s-.2-.1-.4-.3c-.1 0-.4-.2-.6-.2-.1.1-.4.3-.4.3s-.1-.2-.2-.2c0-.1-.1-.3-.2-.4.1-.1.2-.2.3-.3.1 0 .1 0 .1-.1 0 0 .1 0 .1-.1 0-.1 0-.1 0-.2-.2 0-.5-.1-.7-.1 0-.1 0-.2 0-.2s-.1 0-.2.1c-.1 0-.1 0-.1 0 0-.2-.2-.4-.4-.4-.2 0-.4.1-.4.3-1.6-.4-2.4 1.2-2 1.6.1.1.5-.1.8-.2 0 .1 0 .2 0 .2 0 0-.1 0-.1 0 0 0 .4.3.4.3l.3.2c-.1.1-.3.2-.3.5-.2.1-.6-.3-.7-.1s-.1.4 0 .6c.1.1-.2.2-.2.3-.1.1.2.6.3.6 0-.1 0-.2 0-.2s.2 0 .2-.1 0-.2 0-.2.2-.2.2-.4-.3-.3-.2-.4c.1-.1.4.2.6.1.1.3.5.5.7.5 0 .1-.1.4-.1.5 0 .1.2 0 .5.1 0 .1-.1.1-.1.1h-.3l-.1.1h-.4-.6l.4.3h3.2l.2-.2-.4-.2c0 0 .1-.1.1-.1s.1 0 .2 0c.4.3.6 0 .6 0s-.1 0-.1-.1c0 0-.1-.1-.1-.1s0 .2-.1.2c0 0-.1 0-.2-.1.2-.1.3-.4.3-.4l.1-.2h.1c0 0 0-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0-.1 0-.1-.1 0-.1.3-.1.3s-.2.2-.3.2c0-.2-.3-.4-.2-.5.1-.1.2.2.4.1.1 0 .2-.1.2-.3.1.1.2.1.2.1s0 0 0-.1c0 0 .1 0 .1 0s-.1-.1-.1-.1c0 0 .1 0 .1 0s-.1 0-.1 0v-.1s-.1 0-.1 0c0-.1-.1-.2-.1-.2h-.1l-.6.2c0 0-.2.1-.2.2 0 .1.1.2.2.2-.1 0-.3-.1-.3-.1s.1.1.2.2c0 0 0 0-.1 0 0 .1.1.1.2.1 0 .1.1.1.1.1s0 .1-.1.1c-.1 0-.3-.3-.4-.2-.2.1.1.4.1.4s0 0-.1.1c0 0-.1-.1-.1-.1 0-.2.1-.6.3-.8-.1 0-.3.2-.5.3-.1-.1-.3-.2-.3-.3 0 0-.1-.1-.1-.2 0 0 .1 0 .1 0 .3 0 .6-.1.8-.2.1.1.1.1.2 0 .3.2.3.5.4.3.1.3.3.2.3.2l-.4-.3c0 0-.2-.2-.4-.3-.2-.1-.5-.1-.5-.1s.4-.2.4-.5m.2 1.3c0 0 0 0 0 0m-.9-2.2c0 0 0 0 0 0 0 .1-.1.1-.2.2-.1-.1-.1-.1-.1-.1s.2-.1.3-.1zm-.9-.1l-.1.1-.1-.1c0 0 0 0 .1 0-.1 0 0-.1.1 0 0-.1 0-.1 0-.1v.1m-.5-.4c0 .1 0 .1.1.2 0 0-.1 0-.1 0 0 0 0 0-.1 0 0 0-.1 0-.1 0 0-.1.1-.1.2-.2m-.9 1.6c-.1 0-.1 0 0 0 0 0 0-.1 0-.1 0 0-.1 0-.1-.1 0-.1 0-.2 0-.2s.1-.1.2-.2c.3-.1.4-.2.4-.2 0 .1 0 .3.1.4 0 .2.2.5.3.6-.1 0-.3.1-.4.1l-.5-.3m.8 1.8c.1 0 .2-.3.2-.4.1.2 0 .4.1.4.1.1.2 0 .2 0 .2 0 .5-.1.5-.1.1.1.1 0 .2 0 0 .1.1.1.1.1s-.3.1-.4.1c-.2-.1-.4 0-.5.1-.3 0-.4-.1-.4-.2m1.3-.7c0 0 0 .1 0 .1 0 0 .1 0 .2 0 0 0 .1 0 .1.1 0 0-.1.1-.1.1-.2-.1-.5-.2-.9-.1.4 0 .4.2.4.2s.2 0 .2.2c.1 0 .1.1.1.1s.1-.1.1.1c.1 0 .1 0 .2.1-.1-.1-.2-.1-.3-.1-.1-.1-.2-.2-.3-.2-.1.1-.4.1-.5.1-.1 0 0-.1-.1-.1.1-.1 0-.3 0-.4 0 0 .1 0 .2-.1.1 0 .2-.1.3-.2.2-.1.3 0 .4.1" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fa.svg
index e30de5e..03c6388 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C21.316,2,11.943,7.59,6.628,16h50.744C52.058,7.59,42.685,2,32,2z"/><path fill="#2a5f9e" d="M6.628,16C3.701,20.632,2,26.115,2,32h60c0-5.885-1.7-11.368-4.628-16H6.628z"/><path fill="#699635" d="M6.628,48C11.943,56.41,21.316,62,32,62c10.685,0,20.058-5.59,25.372-14H6.628z"/><path fill="#ffce31" d="M57.372,48C60.3,43.368,62,37.885,62,32H2c0,5.885,1.701,11.368,4.628,16H57.372z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C21.3,2,11.9,7.6,6.6,16h50.7C52.1,7.6,42.7,2,32,2z" fill="#ed4c5c"/><path d="M6.6,16C3.7,20.6,2,26.1,2,32h60c0-5.9-1.7-11.4-4.6-16H6.6z" fill="#2a5f9e"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14c10.7,0,20.1-5.6,25.4-14H6.6z" fill="#699635"/><path d="M57.4,48c2.9-4.6,4.6-10.1,4.6-16H2c0,5.9,1.7,11.4,4.6,16H57.4z" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fb.svg
index de79f9e..9326ae7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fb.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="M2,32c0,9.814,4.714,18.527,12,24h36.001C57.286,50.527,62,41.814,62,32S57.286,13.475,50.001,8H14
- C6.714,13.475,2,22.186,2,32z"/><g fill="#ed4c5c"><path d="m14 8h36c-5.02-3.766-11.247-6-18-6s-12.986 2.234-18 6"/><path d="m32 62c6.754 0 12.986-2.232 18-6h-36c5.01 3.768 11.246 6 18 6"/></g><path fill="#fff" d="M43,49.641C34.63,47.971,28.334,40.707,28.334,32S34.63,16.029,43,14.361
- C41.816,14.125,40.587,14,39.334,14C29.207,14,21,22.061,21,32c0,9.941,8.207,18,18.334,18C40.587,50,41.816,49.875,43,49.641z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,9.8,4.7,18.5,12,24h36c7.3-5.5,12-14.2,12-24S57.3,13.5,50,8H14C6.7,13.5,2,22.2,2,32z" fill="#699635"/><g fill="#ed4c5c"><path d="m14 8h36c-5-3.8-11.2-6-18-6s-13 2.2-18 6"/><path d="m32 62c6.8 0 13-2.2 18-6h-36c5 3.8 11.2 6 18 6"/></g><path d="m43 49.6c-8.4-1.6-14.7-8.9-14.7-17.6s6.3-16 14.7-17.6c-1.2-.2-2.4-.4-3.7-.4-10.1 0-18.3 8.1-18.3 18 0 9.9 8.2 18 18.3 18 1.3 0 2.5-.1 3.7-.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fc.svg
index 96ab60d..4fd4f5a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fc.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M32,2C18.939,2,7.832,10.35,3.713,22h56.572C56.166,10.35,45.061,2,32,2z"/><path fill="#83bf4f" d="m32 62c13.06 0 24.17-8.35 28.28-20h-56.57c4.119 11.65 15.226 20 28.29 20"/><g fill="#ed4c5c"><path d="M3.713,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.713,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.715-10H3.713z"/><path d="m32 12.34c-5.03 0-9.305 3.213-10.891 7.697h21.777c-1.581-4.484-5.859-7.697-10.886-7.697"/><path d="m32.537 6.79c0-.591-.18-1.164-.537-1.164-.395 0-.537.591-.537 1.164 0 1.432.178 2.148.537 4.207.365-2.059.537-2.794.537-4.207"/><path d="m34.02 6.901c.053-.589-.074-1.175-.434-1.206-.393-.034-.586.542-.637 1.113-.123 1.426-.006 2.155.17 4.237.544-2.02.778-2.734.901-4.144"/><path d="m34.24 11.193c.717-1.965 1.014-2.658 1.26-4.051.104-.582.025-1.177-.328-1.239-.389-.068-.631.488-.73 1.053-.249 1.411-.198 2.147-.202 4.237"/><path d="m36.943 7.511c.152-.57.127-1.169-.217-1.263-.381-.102-.672.433-.82.985-.371 1.383-.383 2.121-.57 4.202.885-1.893 1.242-2.558 1.607-3.924"/><path d="m38.35 8c.203-.555.23-1.153-.105-1.277-.373-.134-.707.372-.904.911-.49 1.345-.566 2.079-.934 4.136 1.048-1.81 1.458-2.441 1.943-3.77"/><path d="m39.711 8.619c.252-.536.33-1.131.006-1.283-.357-.165-.736.31-.979.829-.604 1.297-.746 2.02-1.291 4.04 1.201-1.712 1.666-2.304 2.264-3.585"/><path d="m41.01 9.35c.295-.513.428-1.098.117-1.277-.344-.197-.764.243-1.049.739-.715 1.24-.918 1.95-1.637 3.911 1.346-1.6 1.862-2.15 2.569-3.373"/><path d="m42.25 10.19c.338-.485.52-1.057.227-1.263-.322-.226-.779.176-1.107.646-.822 1.173-1.084 1.861-1.971 3.754 1.478-1.476 2.039-1.978 2.851-3.137"/><path d="m40.28 14.01c1.604-1.343 2.205-1.795 3.115-2.878.379-.453.609-1.01.336-1.236-.301-.254-.789.106-1.158.546-.92 1.096-1.244 1.76-2.293 3.568"/><path d="m41.12 14.771c1.713-1.197 2.354-1.594 3.354-2.595.418-.418.695-.949.443-1.203-.279-.278-.799.039-1.203.444-1.014 1.013-1.393 1.646-2.594 3.354"/><path d="m41.875 15.601c1.811-1.044 2.482-1.384 3.566-2.292.451-.38.775-.886.547-1.159-.252-.303-.799-.032-1.236.335-1.098.92-1.531 1.519-2.877 3.116"/><path d="m42.559 16.493c1.895-.882 2.596-1.161 3.754-1.973.484-.339.85-.815.645-1.108-.227-.322-.793-.101-1.26.229-1.175.82-1.659 1.378-3.139 2.852"/><path d="m43.16 17.441c1.967-.713 2.688-.932 3.912-1.639.512-.296.918-.737.74-1.046-.199-.342-.781-.171-1.277.116-1.24.716-1.771 1.23-3.375 2.569"/><path d="m43.682 18.438c2.02-.538 2.76-.693 4.04-1.29.537-.25.979-.655.828-.979-.166-.357-.762-.237-1.281.005-1.299.605-1.873 1.07-3.586 2.264"/><path d="m44.11 19.479c2.061-.362 2.809-.451 4.137-.936.557-.201 1.033-.565.91-.902-.135-.37-.738-.302-1.277-.107-1.344.49-1.955.904-3.77 1.945"/><path d="m48.652 19.98c.57-.153 1.076-.474.986-.82-.104-.381-.711-.365-1.266-.217-1.076.288-1.707.568-2.826 1.094h2.887c.071-.018.143-.036.219-.057"/><path d="m15.623 18.943c-.57-.153-1.168-.129-1.262.217-.102.381.432.672.986.82.072.021.146.038.219.057h2.893c-1.131-.529-1.77-.808-2.836-1.094"/><path d="m15.752 18.543c1.344.49 2.078.566 4.135.936-1.811-1.048-2.439-1.461-3.77-1.945-.555-.201-1.152-.229-1.275.107-.135.37.371.707.91.902"/><path d="m16.279 17.15c1.295.604 2.02.745 4.04 1.29-1.711-1.2-2.305-1.667-3.586-2.265-.535-.249-1.131-.329-1.281-.005-.168.358.307.737.828.98"/><path d="m16.924 15.803c1.242.717 1.951.92 3.912 1.639-1.6-1.346-2.15-1.861-3.373-2.568-.514-.296-1.098-.427-1.277-.116-.198.34.244.759.738 1.045"/><path d="m17.688 14.521c1.172.821 1.861 1.085 3.754 1.973-1.477-1.479-1.979-2.041-3.139-2.853-.484-.339-1.057-.521-1.262-.229-.227.323.176.779.647 1.109"/><path d="m18.559 13.309c1.096.92 1.76 1.244 3.566 2.292-1.342-1.603-1.793-2.206-2.877-3.116-.451-.379-1.01-.61-1.236-.335-.254.3.107.789.547 1.159"/><path d="m22.885 14.771c-1.197-1.714-1.594-2.354-2.594-3.354-.418-.419-.949-.697-1.203-.444-.277.278.039.798.443 1.203 1.014 1.013 1.645 1.394 3.354 2.595"/><path d="m23.713 14.01c-1.043-1.813-1.383-2.485-2.291-3.568-.381-.453-.885-.775-1.158-.546-.305.253-.033.797.336 1.236.918 1.096 1.517 1.53 3.113 2.878"/><path d="m24.605 13.328c-.881-1.896-1.16-2.596-1.971-3.754-.34-.485-.814-.852-1.109-.646-.322.227-.1.792.229 1.263.82 1.172 1.377 1.656 2.851 3.137"/><path d="m25.555 12.723c-.713-1.965-.93-2.687-1.639-3.911-.295-.512-.736-.918-1.047-.74-.34.197-.168.78.117 1.277.717 1.241 1.229 1.771 2.569 3.374"/><path d="m26.553 12.204c-.539-2.02-.693-2.758-1.291-4.04-.25-.536-.656-.979-.98-.829-.355.167-.236.764.006 1.283.607 1.297 1.069 1.871 2.265 3.585"/><path d="m27.592 11.773c-.361-2.06-.451-2.808-.934-4.136-.203-.556-.566-1.032-.904-.911-.369.135-.301.74-.107 1.277.49 1.348.904 1.959 1.945 3.77"/><path d="m28.664 11.436c-.182-2.083-.203-2.836-.57-4.202-.154-.57-.475-1.078-.82-.985-.381.103-.365.709-.217 1.263.369 1.383.728 2.028 1.607 3.924"/><path d="m29.762 11.193c.002-2.092.043-2.845-.201-4.237-.104-.581-.379-1.114-.732-1.053-.389.068-.424.676-.326 1.239.247 1.411.548 2.085 1.259 4.051"/><path d="m30.877 11.05c.184-2.082.289-2.829.166-4.237-.049-.589-.277-1.144-.633-1.113-.393.034-.484.636-.434 1.206.124 1.426.366 2.124.901 4.144"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#3e4347"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#83bf4f"/><g fill="#ed4c5c"><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z"/><path d="m32 12.3c-5 0-9.3 3.2-10.9 7.7h21.8c-1.6-4.4-5.9-7.7-10.9-7.7"/><path d="m32.5 6.8c0-.6-.2-1.2-.5-1.2-.4 0-.5.6-.5 1.2 0 1.4.2 2.1.5 4.2.4-2.1.5-2.8.5-4.2"/><path d="m34 6.9c.1-.6-.1-1.2-.4-1.2-.4 0-.6.5-.6 1.1-.1 1.4 0 2.2.2 4.2.5-2 .7-2.7.8-4.1"/><path d="m34.2 11.2c.7-2 1-2.7 1.3-4.1.1-.6 0-1.2-.3-1.2-.4-.1-.6.5-.7 1.1-.3 1.4-.3 2.1-.3 4.2"/><path d="m36.9 7.5c.2-.6.1-1.2-.2-1.3-.4-.1-.7.4-.8 1-.4 1.4-.4 2.1-.6 4.2.9-1.9 1.3-2.5 1.6-3.9"/><path d="m38.4 8c.2-.6.2-1.2-.1-1.3-.4-.1-.7.4-.9.9-.5 1.3-.6 2.1-.9 4.1 1-1.7 1.4-2.4 1.9-3.7"/><path d="m39.7 8.6c.3-.5.3-1.1 0-1.3-.4-.2-.7.3-1 .8-.6 1.3-.7 2-1.3 4 1.2-1.6 1.7-2.2 2.3-3.5"/><path d="m41 9.4c.3-.5.4-1.1.1-1.3-.3-.2-.8.2-1 .7-.7 1.2-.9 1.9-1.6 3.9 1.3-1.6 1.8-2.1 2.5-3.3"/><path d="m42.2 10.2c.3-.5.5-1.1.2-1.3-.3-.2-.8.2-1.1.6-.8 1.2-1.1 1.9-2 3.8 1.6-1.4 2.1-2 2.9-3.1"/><path d="m40.3 14c1.6-1.3 2.2-1.8 3.1-2.9.4-.5.6-1 .3-1.2-.3-.3-.8.1-1.2.5-.8 1.1-1.2 1.8-2.2 3.6"/><path d="m41.1 14.8c1.7-1.2 2.4-1.6 3.4-2.6.4-.4.7-.9.4-1.2-.3-.3-.8 0-1.2.4-1 1-1.4 1.7-2.6 3.4"/><path d="m41.9 15.6c1.8-1 2.5-1.4 3.6-2.3.5-.4.8-.9.5-1.2-.3-.3-.8 0-1.2.3-1.1 1-1.6 1.6-2.9 3.2"/><path d="m42.6 16.5c1.9-.9 2.6-1.2 3.8-2 .5-.3.8-.8.6-1.1-.2-.3-.8-.1-1.3.2-1.2.9-1.7 1.4-3.1 2.9"/><path d="m43.2 17.4c2-.7 2.7-.9 3.9-1.6.5-.3.9-.7.7-1-.2-.3-.8-.2-1.3.1-1.2.7-1.7 1.2-3.3 2.5"/><path d="m43.7 18.4c2-.5 2.8-.7 4-1.3.5-.2 1-.7.8-1-.2-.4-.8-.2-1.3 0-1.2.7-1.8 1.1-3.5 2.3"/><path d="m44.1 19.5c2.1-.4 2.8-.5 4.1-.9.6-.2 1-.6.9-.9-.1-.4-.7-.3-1.3-.1-1.3.4-1.9.8-3.7 1.9"/><path d="m48.7 20c.6-.2 1.1-.5 1-.8-.1-.4-.7-.4-1.3-.2-1.1.3-1.7.6-2.8 1.1h2.9c0-.1.1-.1.2-.1"/><path d="m15.6 18.9c-.6-.2-1.2-.1-1.3.2-.1.4.4.7 1 .8.1 0 .1 0 .2.1h2.9c-1.1-.5-1.7-.8-2.8-1.1"/><path d="m15.8 18.5c1.3.5 2.1.6 4.1.9-1.8-1-2.4-1.5-3.8-1.9-.6-.2-1.2-.2-1.3.1-.1.4.4.7 1 .9"/><path d="m16.3 17.1c1.3.6 2 .7 4 1.3-1.7-1.2-2.3-1.7-3.6-2.3-.5-.2-1.1-.3-1.3 0-.1.4.4.8.9 1"/><path d="m16.9 15.8c1.2.7 2 .9 3.9 1.6-1.6-1.3-2.1-1.9-3.4-2.6-.5-.3-1.1-.4-1.3-.1-.1.4.3.8.8 1.1"/><path d="m17.7 14.5c1.2.8 1.9 1.1 3.8 2-1.5-1.5-2-2-3.1-2.9-.5-.3-1.1-.5-1.3-.2-.3.3.1.8.6 1.1"/><path d="m18.6 13.3c1.1.9 1.8 1.2 3.6 2.3-1.3-1.6-1.8-2.2-2.9-3.1-.5-.4-1-.6-1.2-.3-.3.2 0 .7.5 1.1"/><path d="m22.9 14.8c-1.2-1.7-1.6-2.4-2.6-3.4-.4-.4-.9-.7-1.2-.4-.3.3 0 .8.4 1.2 1 1 1.7 1.4 3.4 2.6"/><path d="m23.7 14c-1-1.8-1.4-2.5-2.3-3.6-.4-.4-.9-.7-1.1-.5-.3.3 0 .8.3 1.2.9 1.1 1.5 1.6 3.1 2.9"/><path d="m24.6 13.3c-.9-1.9-1.2-2.6-2-3.8-.3-.5-.8-.9-1.1-.6-.3.2-.1.8.2 1.3.9 1.2 1.4 1.6 2.9 3.1"/><path d="m25.6 12.7c-.7-2-.9-2.7-1.6-3.9-.3-.5-.7-.9-1-.7-.3.2-.2.8.1 1.3.6 1.2 1.1 1.7 2.5 3.3"/><path d="m26.6 12.2c-.5-2-.7-2.8-1.3-4-.2-.5-.7-1-1-.8-.4.2-.2.8 0 1.3.6 1.2 1.1 1.8 2.3 3.5"/><path d="m27.6 11.8c-.4-2.1-.5-2.8-.9-4.1-.2-.6-.6-1-.9-.9-.4.1-.3.7-.1 1.3.4 1.3.9 1.9 1.9 3.7"/><path d="m28.7 11.4c-.2-2.1-.2-2.8-.6-4.2-.2-.6-.5-1.1-.8-1-.4.1-.4.7-.2 1.3.3 1.4.7 2 1.6 3.9"/><path d="m29.8 11.2c0-2.1 0-2.8-.2-4.2-.1-.6-.4-1.1-.7-1.1-.4.1-.4.7-.3 1.2.2 1.5.5 2.1 1.2 4.1"/><path d="m30.9 11c.2-2 .3-2.8.1-4.2 0-.6-.3-1.1-.6-1.1-.4 0-.5.6-.4 1.2.1 1.4.3 2.1.9 4.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fd.svg
index 20a6a93..7ccbceb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.227 20-28.29"/><path fill="#75a843" d="m2 32c0 13.06 8.35 24.17 20 28.29v-56.57c-11.65 4.119-20 15.225-20 28.29"/><path fill="#fff" d="m42 3.718c-3.129-1.106-6.492-1.715-10-1.715-3.507 0-6.872.608-10 1.715v56.57c3.128 1.105 6.493 1.713 10 1.713 3.508 0 6.871-.607 10-1.713v-56.57"/><g fill="#75a843"><path d="m40.744 31.659c-.064-.265-.156.069-.168.207-.039-.265-.127-.526-.27-.753-.289.296-.371.68-.398 1.079-.066-.296-.195-.59-.492-.706h-.002c.17.277.109.477.078.786-.047.449.309.69.318 1.13.018.431-.178.711-.494.976.023-.101.014-.204.045-.307-1.012.352-.811.938-.77 1.765.041.875-.488.713-1.098 1.176.098-.221.102-.468-.021-.678v.002c-.045.556-.768.643-.922 1.143-.078.25-.039.555-.26.744-.188.121-.48.287-.531.524-.221-.11-.443-.104-.678-.06.107-.059.197-.138.268-.238-1.018-.457-1.313.555-2.168.721-.275-.019-.984-.398-1.018.021.854-.006 1.309.788 2.045.812.625.021 1.105-.545 1.73-.549-.057-.041-.404-.192-.656-.189.473-.27.785-.914 1.367-.918 1.047-.008 1.48-.234 1.822-1.188-.107-.008-.209.013-.305.061 0-.442.447-.867.781-1.111 1.031-.191.859-1.045 1.48-1.67-.246.012-.418.133-.594.311.039-.598-.143-1.158.436-1.575.774-.561.663-.742.475-1.516m-4.906 7.16l.002-.009-.002.009m2.562-2.159l-.002.002.002-.002"/><path d="m23.256 31.659c-.187.773-.298.955.474 1.514.577.417.396.978.434 1.575-.174-.178-.348-.299-.594-.311.623.625.45 1.479 1.48 1.67.335.244.784.669.783 1.111-.096-.048-.198-.068-.305-.061.342.953.774 1.18 1.823 1.188.581.004.894.648 1.367.918-.253-.003-.601.148-.657.189.625.004 1.106.57 1.73.549.736-.023 1.192-.817 2.046-.812-.033-.419-.742-.039-1.018-.021-.855-.166-1.15-1.178-2.169-.721.071.101.161.18.269.238-.235-.045-.458-.051-.677.06-.052-.237-.345-.403-.532-.524-.222-.189-.183-.494-.26-.744-.153-.5-.877-.587-.921-1.143l-.001-.002c-.122.21-.118.457-.021.678-.608-.463-1.14-.301-1.098-1.176.041-.827.241-1.413-.77-1.765.03.103.021.206.043.307-.316-.265-.512-.545-.493-.976.01-.44.365-.682.319-1.13-.032-.31-.093-.509.077-.786h-.002c-.296.116-.425.41-.492.706-.028-.399-.109-.783-.397-1.079-.142.227-.231.488-.27.753-.012-.135-.103-.469-.168-.205m4.905 7.152l.003.009-.003-.009m-2.558-2.149l-.003-.002.003.002"/></g><path fill="#428bc1" d="m34.656 37.652c-.168-.049-.295-.15-.381-.304.043-.208.762-.36.949-.386.004-.081.008-.162.014-.242-1.33.414-5.224.65-6.01-.688-.438.56-1.083.151-1.843-.304.146.188.533 1.204.469 1.08.2.08 1.51.359 1.528.679-.07.144-.181.231-.334.263 2.165.803 3.435 1.018 5.604-.098"/><path fill="#ed4c5c" d="m33.373 37.715c.086-.105.141-.24.141-.378 0-.038-.07-.265-.064-.271.219-.24.037-.73-.314-.561-.162.078-.088.109-.273.033-.063-.025-.127-.066-.195-.07-.244-.012-.49-.025-.734-.037-.208-.01-.491.008-.724.019-.147.007-.296-.021-.447-.005-.161.016-.224-.057-.357-.104-.183-.064-.332.078-.375.248-.044.172.132.215.132.343-.001.103-.139.221-.134.36.005.154.088.299.194.406-.41.338.049.832.375.469.087.227.447.21.652.218.357.015.716.017 1.074.017.205 0 .631.055.748-.164.371.309.701-.338.301-.523"/><path fill="#428bc1" d="m36.641 35.14c-.84-1.041-1.242.496-2.139.447.219-1.152-1.574-.824-2.119-.481.125-.138.198-.323.318-.466-.381.049-.874.174-1.212-.06-.615-.425-1.434-.626-1.874.12-.438-.553-1.492-1.219-2.113-.557-.006-.623-.567-1.486-1.282-1.392-.78.103-.473 1.11-.079 1.45.314.271.727.396 1.137.381-.027.168.077.315.198.422.465.412 1.506.549 2 .123.041 1.025 1.963 1.01 2.49.475-.203.479-.379 1.504.326 1.463.57-.035.439-.586.926-.85.43-.232.871-.252 1.295-.082.608.245 2.803.173 2.128-.993"/><g fill="#75a843"><path d="m28.358 32.637c-.073-.22-.303-.366-.342-.404-.356.111-.444-.192-.515-.482-.111-.455-.82-.662-.82-1.1-.001-.434.405-.788.071-1.211-.279-.354-.756-.584-.814-.369-.055.203.425.233.425.728.002.641-.587 1.073.087 1.638.517.431.503 1.573 1.265 1.573.299-.002.56-.098.643-.373"/><path d="m29.854 32.11c-.247-.448.006-.962-.447-1.346-.477-.404-1.523.388-1.586-.617-.014-.218 1.148-1.405 1.256-1.528.304-.35.25-1.138-.09-1.331-.413-.235-.542.046-.813.368.134.077.458.267.455.431-.296.654-1.161.767-1.419 1.46-.198.529-.107 1.314.389 1.649.266.181.522.189.813.163.904-.079.374.078.507.325.149.273.526.971.935.426"/><path d="m26.881 27.21c.024.588.597.466 1.046.437-.035-.188.029-.41.112-.613-.155.057-.452.114-.604.034-.334-.236.685-.588.58-.632-.027-.011-1.013.522-.581-.065.127-.173.292-.447.385-.635.112-.227-.302.028-.272.025-.135.015-.194-.025-.321.078-.592.462-.424.725-.345 1.371"/></g><path fill="#89664c" d="m37.516 27.18c-.498-.654-2.377-2.96-5.119-3.177-.307-.024-1.093.262-1.35.425-.894.57 1.01 1.061 1.113 1.531.039.164.065.335.09.509-.264-.522-.646-.835-.66-.951-.468.223-1.321-.132-1.396-.595-.055.187-.122.321-.262.463-.019-.3-.079-.295-.179-.488.025.294.007.693-.306.803.15-.161.039-.438-.091-.556.037.264-.031.541-.21.742.052-.208-.077-.333-.107-.472-.074.756-1.184 1.116-.143 1.395.409.11.613-.035.974.169.092.052.254.251.301.243-.037.146-.377.509-.107.551-.054.085-.43.747-.436.746.284.04.052.214-.057.427-.276.547.043 1.04.126 1.604-.03-.192.334.121.346.389.02.437.416.552.517.901-.513-.452-.597.008-.029.283-.465.038-.61.327-.147.543-1.213.026-.236.54-.017.606.757.231 1.363-.443 1.36-.549-.001 0 1.631 1.58 1.715 1.56.068-.015.887-.44 1.076-.218.217.26.438-.006.598.113.215.162.99.026 1.225-.1.066-.036 1.092-.243.932-.393-.479-.447-1.059-.818-1.582-1.206-.479-.356-.955-.715-1.432-1.074-.246-.187-.238-.557-.32-.894.893.892 1.832 1.394 1.705-.331.584.45 1.779 3.254 1.908 3.254.268 0 .049-3.03.033-3.292.438.375.365 3.693.451 3.69.425-.017 1.173-4.429-.52-6.651"/><g fill="#ffce31"><path d="m30.31 32.33c-.141-.005-.581-.665-.618-.801.321 1.168-.917.521-.632-.013-.443-.058-1.413.541-.978 1.054-.2.448 1.38.144 1.542-.054.408.871 1.406-.159.686-.186"/><path d="m34.971 35.31c.479-.719-1.58-.9-1.363-1.736-.266.205-.668.945-1.118.7-.237-.13-1.049.362-.564.71h.004c.026-.414.199-.125.477-.17-.11.274-.384.598.099.762-.189-.533.581-.234.446-.595-.174-.19.705-.179.756-.177.26.01 1.254.275.885.568.114.053.298.059.378-.062"/><path d="m28.29 26.7c-.12.25-.545.487-.46.82.035.21.5.694.741.428-.599-.42.077-.707.371-.702.116.002.125.19.138.21.095.138.885-.176.849-.409-.065-.414-1.364-.45-1.639-.347m-.003.004"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#75a843"/><path d="m42 3.7c-3.1-1.1-6.5-1.7-10-1.7-3.5 0-6.9.6-10 1.7v56.6c3.1 1.1 6.5 1.7 10 1.7 3.5 0 6.9-.6 10-1.7v-56.6" fill="#fff"/><g fill="#75a843"><path d="m40.7 31.7c-.1-.3-.2.1-.2.2 0-.3-.1-.5-.3-.8-.3.3-.4.7-.4 1.1-.1-.3-.2-.6-.5-.7.2.3.1.5.1.8 0 .4.3.7.3 1.1 0 .4-.2.7-.5 1 0-.1 0-.2 0-.3-1 .4-.8.9-.8 1.8 0 .9-.5.7-1.1 1.2.1-.2.1-.5 0-.7 0 .6-.8.6-.9 1.1-.1.2 0 .6-.3.7-.2.1-.5.3-.5.5-.2-.1-.4-.1-.7-.1.1-.1.2-.1.3-.2-1-.5-1.3.6-2.2.7-.3 0-1-.4-1 0 .9 0 1.3.8 2 .8.6 0 1.1-.5 1.7-.5-.1 0-.4-.2-.7-.2.5-.3.8-.9 1.4-.9 1 0 1.5-.2 1.8-1.2-.1 0-.2 0-.3.1 0-.4.4-.9.8-1.1 1-.2.9-1 1.5-1.7-.2 0-.4.1-.6.3 0-.6-.1-1.2.4-1.6 1-.5.9-.7.7-1.4m-2.3 5"/><path d="m23.3 31.7c-.2.8-.3 1 .5 1.5.6.4.4 1 .4 1.6-.2-.2-.3-.3-.6-.3.6.6.5 1.5 1.5 1.7.3.2.8.7.8 1.1-.1 0-.2-.1-.3-.1.3 1 .8 1.2 1.8 1.2.6 0 .9.6 1.4.9-.3 0-.6.1-.7.2.6 0 1.1.6 1.7.5.7 0 1.2-.8 2-.8 0-.4-.7 0-1 0-.8-.2-1.1-1.2-2.2-.8.1.1.2.2.3.2-.2 0-.5-.1-.7.1-.1-.2-.3-.4-.5-.5-.2-.2-.2-.5-.3-.7-.2-.5-.9-.6-.9-1.1-.1.2-.1.5 0 .7-.6-.5-1.1-.3-1.1-1.2 0-.8.2-1.4-.8-1.8 0 .1 0 .2 0 .3-.3-.3-.5-.5-.5-1 0-.4.4-.7.3-1.1 0-.3-.1-.5.1-.8-.3.1-.4.4-.5.7 0-.4-.1-.8-.4-1.1-.1.2-.2.5-.3.8.1-.2 0-.5 0-.2m2.3 5"/></g><path d="m34.7 37.7c-.2 0-.3-.2-.4-.3 0-.2.8-.4.9-.4 0-.1 0-.2 0-.2-1.3.4-5.2.7-6-.7-.4.6-1.1.2-1.8-.3.1.2.5 1.2.5 1.1.2.1 1.5.4 1.5.7-.1.1-.2.2-.3.3 2.1.7 3.4.9 5.6-.2" fill="#428bc1"/><path d="m33.4 37.7c.1-.1.1-.2.1-.4 0 0-.1-.3-.1-.3.2-.2 0-.7-.3-.6-.2.1-.1.1-.3 0-.1 0-.1-.1-.2-.1-.2 0-.5 0-.7 0-.2 0-.5 0-.7 0-.1 0-.3 0-.4 0-.2 0-.2-.1-.4-.1-.2-.1-.3.1-.4.2 0 .2.1.2.1.3 0 .1-.1.2-.1.4 0 .2.1.3.2.4-.4.3 0 .8.4.5.1.2.4.2.7.2.4 0 .7 0 1.1 0 .2 0 .6.1.7-.2.3.5.7-.1.3-.3" fill="#ed4c5c"/><path d="m36.6 35.1c-.8-1-1.2.5-2.1.4.2-1.2-1.6-.8-2.1-.5.1-.1.2-.3.3-.5-.4 0-.9.2-1.2-.1-.6-.4-1.4-.6-1.9.1-.4-.6-1.5-1.2-2.1-.6 0-.6-.6-1.5-1.3-1.4-.8.1-.5 1.1-.1 1.5.3.3.7.4 1.1.4 0 .2.1.3.2.4.5.4 1.5.5 2 .1 0 1 2 1 2.5.5-.2.5-.4 1.5.3 1.5.6 0 .4-.6.9-.8.4-.2.9-.3 1.3-.1.7.4 2.9.3 2.2-.9" fill="#428bc1"/><g fill="#75a843"><path d="m28.4 32.6c-.1-.2-.3-.4-.3-.4-.4.1-.4-.2-.5-.5-.1-.5-.8-.7-.8-1.1 0-.4.4-.8.1-1.2-.3-.4-.8-.6-.8-.4-.1.2.4.2.4.7 0 .6-.6 1.1.1 1.6.4.6.4 1.7 1.1 1.7.3 0 .6-.1.7-.4"/><path d="m29.9 32.1c-.2-.4 0-1-.4-1.3-.5-.4-1.5.4-1.6-.6 0-.2 1.1-1.4 1.3-1.5.3-.4.2-1.1-.1-1.3-.4-.2-.5 0-.8.4.1.1.5.3.5.4-.3.7-1.2.8-1.4 1.5-.2.5-.1 1.3.4 1.6.3.2.5.2.8.2.9-.1.4.1.5.3 0 .2.3.9.8.3"/><path d="m26.9 27.2c0 .6.6.5 1 .4 0-.2 0-.4.1-.6-.2.1-.5.1-.6 0-.3-.2.7-.6.6-.6 0 0-1 .5-.6-.1.1-.2.3-.4.4-.6.1-.2-.3 0-.3 0-.1 0-.2 0-.3.1-.6.5-.4.8-.3 1.4"/></g><path d="m37.5 27.2c-.5-.7-2.4-3-5.1-3.2-.3 0-1.1.3-1.4.4-.9.6 1 1.1 1.1 1.5 0 .2.1.3.1.5-.3-.5-.6-.8-.7-1-.5.2-1.3-.1-1.4-.6-.1.2-.1.3-.3.5 0-.3-.1-.3-.2-.5 0 .3 0 .7-.3.8.1-.2 0-.4-.1-.6 0 .3 0 .5-.2.7.1-.2-.1-.3-.1-.5-.1.8-1.2 1.1-.1 1.4.4.1.6 0 1 .2.1.1.3.3.3.2 0 .1-.4.5-.1.6-.1.1-.4.7-.4.7.3 0 .1.2-.1.4-.3.5 0 1 .1 1.6 0-.2.3.1.3.4 0 .4.4.6.5.9-.5-.5-.6 0 0 .3-.5 0-.6.3-.1.5-1.2 0-.2.5 0 .6.8.2 1.4-.4 1.4-.5 0 0 1.6 1.6 1.7 1.6.1 0 .9-.4 1.1-.2.2.3.4 0 .6.1.2.2 1 0 1.2-.1.1 0 1.1-.2.9-.4-.5-.4-1.1-.8-1.6-1.2-.5-.4-1-.7-1.4-1.1-.2-.2-.2-.6-.3-.9.9.9 1.8 1.4 1.7-.3.6.5 1.8 3.3 1.9 3.3.3 0 0-3 0-3.3.4.4.4 3.7.5 3.7.5.1 1.2-4.3-.5-6.5" fill="#89664c"/><g fill="#ffce31"><path d="m30.3 32.3c-.1 0-.6-.7-.6-.8.3 1.2-.9.5-.6 0-.4-.1-1.4.5-1 1.1-.2.4 1.4.1 1.5-.1.4.9 1.4-.1.7-.2"/><path d="m35 35.3c.5-.7-1.6-.9-1.4-1.7-.3.2-.7.9-1.1.7-.2-.1-1 .4-.6.7 0-.4.2-.1.5-.2-.1.3-.4.6.1.8-.2-.6.6-.3.5-.6-.2-.2.7-.2.8-.2.3 0 1.3.3.9.6 0 0 .2 0 .3-.1"/><path d="m28.3 26.7c-.1.2-.5.5-.5.8 0 .2.5.7.7.4-.6-.4.1-.7.4-.7.1 0 .1.2.1.2.1.1.9-.2.8-.4.1-.4-1.2-.4-1.5-.3m0 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fe.svg
index 8489e7b..580bc7f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m56 14h-24v6h27.496c-.935-2.141-2.109-4.154-3.496-6"/><path fill="#f9f9f9" d="m61.4 38c.395-1.939.602-3.945.602-6h-60c0 2.055.208 4.061.601 6h58.797"/><path fill="#ed4c5c" d="m32 2v6h18c-5.01-3.766-11.246-6-18-6"/><g fill="#f9f9f9"><path d="m32 14h24c-1.706-2.272-3.729-4.294-6-6h-18v6"/><path d="m59.5 20h-27.496v6h29.398c-.423-2.087-1.068-4.094-1.902-6"/></g><g fill="#ed4c5c"><path d="m32 26v6h30c0-2.055-.207-4.062-.602-6h-29.398"/><path d="m4.503 44h54.993c.834-1.906 1.479-3.912 1.902-6h-58.797c.424 2.088 1.069 4.094 1.902 6"/></g><path fill="#f9f9f9" d="m8 50h48c1.387-1.846 2.561-3.859 3.496-6h-54.993c.936 2.141 2.11 4.154 3.497 6"/><path fill="#ed4c5c" d="m8 50c1.707 2.271 3.729 4.293 6 6h36c2.271-1.707 4.294-3.729 6-6h-48"/><path fill="#f9f9f9" d="m14 56c5.01 3.766 11.247 6 18 6s12.986-2.234 18-6h-36"/><path fill="#2a5f9e" d="m32 2c-16.568 0-30 13.432-30 30h30v-30"/><g fill="#ffe62e"><path d="m19.884 25.604c-3.02 0-5.476-2.508-5.476-5.6 0-3.094 2.452-5.602 5.476-5.602 1.158 0 2.231.369 3.116.996-1.255-1.469-3.099-2.396-5.155-2.396-3.781 0-6.845 3.134-6.845 7 0 3.865 3.064 6.999 6.845 6.999 2.057 0 3.9-.927 5.155-2.396-.884.631-1.958.998-3.116.998"/><path d="m26 18.82l.667-1.82-.167 1.937 1.371-1.339-.969 1.668 1.801-.598-1.573 1.073 1.87.259-1.87.266 1.573 1.072-1.801-.597.969 1.668-1.371-1.339.167 1.93-.667-1.81-.667 1.81.167-1.93-1.37 1.339.97-1.668-1.803.597 1.578-1.072-1.875-.266 1.875-.259-1.578-1.073 1.803.598-.97-1.668 1.37 1.339-.167-1.937z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56 14h-24v6h27.5c-.9-2.1-2.1-4.2-3.5-6" fill="#ed4c5c"/><path d="m61.4 38c.4-1.9.6-3.9.6-6h-60c0 2.1.2 4.1.6 6h58.8" fill="#f9f9f9"/><path d="m32 2v6h18c-5-3.8-11.2-6-18-6" fill="#ed4c5c"/><g fill="#f9f9f9"><path d="m32 14h24c-1.7-2.3-3.7-4.3-6-6h-18v6"/><path d="m59.5 20h-27.5v6h29.4c-.4-2.1-1.1-4.1-1.9-6"/></g><g fill="#ed4c5c"><path d="m32 26v6h30c0-2.1-.2-4.1-.6-6 0 0-29.4 0-29.4 0"/><path d="m4.5 44h55c.8-1.9 1.5-3.9 1.9-6h-58.8c.4 2.1 1.1 4.1 1.9 6"/></g><path d="m8 50h48c1.4-1.8 2.6-3.9 3.5-6h-55c.9 2.1 2.1 4.2 3.5 6" fill="#f9f9f9"/><path d="M8,50c1.7,2.3,3.7,4.3,6,6h36c2.3-1.7,4.3-3.7,6-6H8z" fill="#ed4c5c"/><path d="m14 56c5 3.8 11.2 6 18 6s13-2.2 18-6h-36" fill="#f9f9f9"/><path d="M32,2C15.4,2,2,15.4,2,32h30V2z" fill="#2a5f9e"/><g fill="#ffe62e"><path d="m19.9 25.6c-3 0-5.5-2.5-5.5-5.6 0-3.1 2.5-5.6 5.5-5.6 1.2 0 2.2.4 3.1 1-1.3-1.5-3.1-2.4-5.2-2.4-3.8 0-6.8 3.1-6.8 7 0 3.9 3.1 7 6.8 7 2.1 0 3.9-.9 5.2-2.4-.9.6-2 1-3.1 1"/><path d="m26 18.8l.7-1.8-.2 1.9 1.4-1.3-1 1.7 1.8-.6-1.6 1 1.9.3-1.9.3 1.6 1-1.8-.6 1 1.7-1.4-1.3.2 1.9-.7-1.8-.7 1.8.2-1.9-1.4 1.3 1-1.7-1.8.6 1.6-1-1.9-.3 1.9-.3-1.6-1 1.8.6-1-1.7 1.4 1.3-.2-1.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ff.svg
index b080402..42ff00c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="m10.79 41.992h-.003v11.221h-.002c5.43 5.43 12.93 8.788 21.22 8.788 12.302 0 22.862-7.404 27.491-18h-47.736c-.352-.657-.672-1.327-.965-2.01"/><path fill="#007168" d="m11.755 20h47.736c-4.629-10.596-15.189-18-27.491-18-8.285 0-15.785 3.358-21.21 8.788h.002v11.221h.003c.293-.681.613-1.351.965-2.01"/><g fill="#3e4347"><path d="m62 32c0-2.776-.393-5.451-1.1-8h-50.11v16h50.11c.707-2.549 1.1-5.224 1.1-8"/><path d="m10.787 22.01v.01l.003-.01z"/><path d="m10.787 41.984v.008h.003z"/></g><g fill="#f9f9f9"><path d="m10.02 24h.763v-1.984c-.28.651-.536 1.312-.763 1.984"/><path d="m10.02 40c.227.672.482 1.333.763 1.984v-1.984h-.763"/></g><g fill="#fff"><path d="m60.29 22.01c-.24-.682-.51-1.35-.797-2.01h-47.736c-.352.657-.672 1.327-.965 2.01-.001.002-.003 1.992-.003 1.992h50.11c-.186-.672-.381-1.34-.612-1.992"/><path d="m60.29 41.992c.23-.652.426-1.32.612-1.992h-50.11v1.984c.001.003.002.006.003.008.293.681.613 1.351.965 2.01h47.736c.287-.658.557-1.326.797-2.01"/></g><path fill="#ed4c5c" d="M10.787,10.787C5.357,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L32,32L10.787,10.787z"/><path fill="#ffe62e" d="m20.646 42.02l-6.516-4.77-6.506 4.772 2.523-7.672-6.549-4.712 8.07.028 2.459-7.684 2.469 7.69 8.07-.036-6.55 4.722 2.528 7.662"/><path fill="#fff" d="m8.476 36.669h4.693c.377.424 1.221.597 2.02-.005 1.472-.807 4.317.005 4.317.005l.561-.596-1.366-4.483-.491-.523c0 0-1.051-.632-3.047-.422-1.996.211-2.697-.069-2.697-.069s-1.751.21-2.241.454c-.054.045-.56.561-.56.561l-1.191 5.078"/><path fill="#3e4347" d="m5.427 37.21l1.104 1.295c.13.076.246.072.361 0l1.635-1.963.688-.852c.106-.126.141-.267.131-.393l1.313-1.167c.108.007.171.02.278.026-.127-.033-.22-.095-.119-.233l.295-.229.229.295c0 0-.328.426-.36.426s-.359 0-.359 0l-.688.621.301.266.452 1.24.557-.395-.359-1.274.784-.852-.293-.458.195-.261c0 0 2.717 1.711 3.764 1.252.029.011.064-1.22.064-1.22s-2.814-.295-2.879-.852c-.066-.556.621-.621.621-.621l-.295-.426.066-.229.49.621 1.112-.948 6.543 7.459c.356-.146.435-.231.458-.589-.009-.008-6.412-7.361-6.412-7.361l.491-.523c.097-.109.13-.154.13-.326l.753-.655c.227.079.371.214.491.394l2.068-1.754c.055.055.221.109.333.048l3.419-3.283-3.727 2.634-.131-.1c0-.107.135-.135 0-.326-.145-.174-.36.164-.393.164-.033 0-.54-.18-.65-.406l-.037.602-.948.883-.72-.032-1.047 1.015-.131.393.163.326c0 0-.556.491-.556.459 0-.033-.113-.145-.118-.158l.478-.431.066-.294-.16-.249c-.049.036-.659.673-.691.608-.055-.061-1.767-1.994-1.767-1.994l.099-.361-1.113-1.209c-.404-.141-1.047-.165-1.178.719-.102.207-.948.032-.948.032l-.458.099-2.585 3.664 1.44 1.733 2.944-3.729.087-1.057.618.691c.205.025.401.029.589-.065l1.744 1.946-.291.285c.1.108.166.178.264.287.099-.066.192-.145.291-.209.033.044.088.125.12.169-.147.08-.249.187-.396.266-.233-.153-.459-.343-.441-.646l-.982.818-.033.164-2.911 2.421-.262.032-.065.752 1.898-1.57v-.229l.195.164 1.473-1.178c0 0 .098.13.064.13s-1.309 1.179-1.309 1.179l-.032.131-.229.195-.13-.098-1.767 1.57h-.262l-.982.982c-.253.021-.473.049-.687.195l-1.758 1.554"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m10.8 42v11.2c5.4 5.4 12.9 8.8 21.2 8.8 12.3 0 22.9-7.4 27.5-18h-47.7c-.4-.7-.7-1.3-1-2" fill="#ffe62e"/><path d="m11.8 20h47.7c-4.6-10.6-15.2-18-27.5-18-8.3 0-15.8 3.4-21.2 8.8v11.2c.3-.7.6-1.3 1-2" fill="#007168"/><path d="m62 32c0-2.8-.4-5.5-1.1-8h-50.1v16h50.1c.7-2.5 1.1-5.2 1.1-8" fill="#3e4347"/><g fill="#f9f9f9"><path d="m10 24h.8v-2c-.3.7-.5 1.3-.8 2"/><path d="m10 40c.2.7.5 1.3.8 2v-2h-.8"/></g><g fill="#fff"><path d="m60.3 22c-.2-.7-.5-1.4-.8-2h-47.7c-.4.7-.7 1.3-1 2 0 0 0 2 0 2h50.1c-.2-.7-.4-1.3-.6-2"/><path d="m60.3 42c.2-.7.4-1.3.6-2h-50.1v2c0 0 0 0 0 0 .3.7.6 1.4 1 2h47.7c.3-.7.5-1.3.8-2"/></g><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#ed4c5c"/><path d="m20.6 42l-6.5-4.8-6.5 4.8 2.5-7.7-6.5-4.7h8.1l2.5-7.7 2.5 7.7h8.1l-6.5 4.7 2.3 7.7" fill="#ffe62e"/><path d="m8.5 36.7h4.7c.4.4 1.2.6 2 0 1.5-.8 4.3 0 4.3 0l.6-.6-1.4-4.5-.5-.5c0 0-1.1-.6-3-.4-2 .2-2.7-.1-2.7-.1s-1.8.2-2.2.5c-.1 0-.6.6-.6.6l-1.2 5" fill="#fff"/><path d="m5.4 37.2l1.1 1.3c.1.1.2.1.4 0l1.6-2 .7-.9c.1-.1.1-.3.1-.4l1.3-1.2c.1 0 .2 0 .3 0-.1 0-.2-.1-.1-.2l.3-.2.2.3c0 0-.3.4-.4.4s-.4 0-.4 0l-.6.7.3.3.5 1.2.6-.4-.4-1.3.8-.9-.3-.5.2-.3c0 0 2.7 1.7 3.8 1.3 0 0 .1-1.2.1-1.2s-2.8-.3-2.9-.9c-.1-.6.6-.6.6-.6l-.3-.4.1-.2.5.6 1.1-.9 6.5 7.5c.4-.1.4-.2.5-.6 0 0-6.4-7.4-6.4-7.4l.5-.5c.1-.1.1-.2.1-.3l.8-.7c.2.1.4.2.5.4l2.1-1.8c.1.1.2.1.3 0l3.4-3.3-3.7 2.6-.1-.1c0-.1.1-.1 0-.3-.1-.2-.4.2-.4.2 0 0-.5-.2-.6-.4v.6l-.9.9h-.7l-1 1-.5.5.2.3c0 0-.6.5-.6.5 0 0-.1-.1-.1-.2l.5-.4v-.3l-.2-.2c0 0-.7.7-.7.6-.1-.1-1.8-2-1.8-2l.1-.4-1.1-1.2c-.4-.1-1-.2-1.2.7-.1.2-.9 0-.9 0l-.5.1-2.6 3.7 1.4 1.7 2.9-3.7.1-1.1.6.7c.2 0 .4 0 .6-.1l1.7 1.9-.3.3c.1.1.2.2.3.3.1-.1.2-.1.3-.2 0 0 .1.1.1.2-.1.1-.2.2-.4.3-.2-.2-.5-.3-.4-.6l-1 .8v.2l-2.9 2.4h-.3l.2.8 1.9-1.6v-.2l.2.2 1.5-1.2c0 0 .1.1.1.1s-1.3 1.2-1.3 1.2v.1l-.4.2-.1-.1-1.8 1.6h-.2l-1 1c-.3 0-.5 0-.7.2l-1.8 1.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f2.svg
new file mode 100644
index 0000000..c04f371
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m37.3 17.5h8.7v29h-5.7v-19.6c0-.6 0-1.4 0-2.4 0-1 0-1.8 0-2.4l-5.5 24.4h-5.8l-5.5-24.4c0 .6 0 1.3 0 2.4 0 1 0 1.8 0 2.4v19.6h-5.5v-29h8.8l5.3 22.8 5.2-22.8" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e6.svg
index 4ad7828..c53c7dd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m16.996 6.01c-10.653 6.15-16.1 17.846-14.81 29.338l47.622-27.495c-9.309-6.86-22.16-7.994-32.812-1.843m8.55 11.427l-3.183-.912.908 3.184-2.3-2.379-.805 3.211-.804-3.211-2.303 2.379.909-3.184-3.182.91 2.378-2.303-3.212-.801 3.212-.807-2.379-2.303 3.183.91-.909-3.182 2.302 2.379.804-3.213.805 3.213 2.303-2.379-.91 3.184 3.182-.91-2.378 2.301 3.212.803-3.212.805 2.379 2.305"/><path fill="#83bf4f" d="m14.187 56.14c9.309 6.86 22.16 7.994 32.813 1.844 10.652-6.15 16.1-17.849 14.81-29.339l-47.623 27.495"/><path fill="#ed4c5c" d="m57.981 16.993c-1.386-2.403-3.065-4.526-4.951-6.38l-50.06 28.906c.663 2.56 1.661 5.077 3.049 7.479 1.387 2.402 3.065 4.525 4.951 6.379l50.06-28.905c-.662-2.561-1.661-5.076-3.049-7.479"/><g fill="#fff"><path d="m61.5 26.511c-.127-.683-.292-1.361-.468-2.039l-50.06 28.904c.499.491 1 .975 1.533 1.426.548.468 1.112.91 1.688 1.334l47.624-27.495c-.081-.711-.18-1.422-.312-2.13"/><path d="m51.5 9.188c-.548-.469-1.114-.91-1.69-1.335l-47.622 27.496c.08.711.18 1.422.312 2.131.127.683.292 1.361.468 2.039l50.06-28.906c-.499-.491-1-.973-1.532-1.425"/></g><path fill="#ffce31" d="m23.17 13.526l2.375-2.3-3.182.91.91-3.184-2.302 2.379-.801-3.213-.808 3.213-2.302-2.379.91 3.182-3.183-.91 2.383 2.302-3.216.807 3.216.797-2.382 2.307 3.182-.911-.91 3.184 2.303-2.379.807 3.211.802-3.211 2.299 2.379-.908-3.184 3.183.912-2.376-2.308 3.209-.801z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m17 6c-10.7 6.2-16.1 17.9-14.8 29.3l47.6-27.4c-9.3-6.9-22.2-8-32.8-1.9m8.5 11.4l-3.2-.9.9 3.2-2.2-2.4-.8 3.2-.8-3.2-2.3 2.4.9-3.2-3.2.9 2.4-2.3-3.2-.8 3.2-.8-2.4-2.3 3.2.9-.9-3.2 2.3 2.4.8-3.2.8 3.2 2.3-2.4-.9 3.2 3.2-.9-2.4 2.3 3.2.8-3.2.8 2.3 2.3" fill="#2a5f9e"/><path d="m14.2 56.1c9.3 6.9 22.2 8 32.8 1.8 10.7-6.2 16.1-17.8 14.8-29.3l-47.6 27.5" fill="#83bf4f"/><path d="m58 17c-1.4-2.4-3.1-4.5-5-6.4l-50 28.9c.7 2.6 1.7 5.1 3 7.5 1.4 2.4 3.1 4.5 5 6.4l50-28.9c-.6-2.6-1.6-5.1-3-7.5" fill="#ed4c5c"/><g fill="#fff"><path d="m61.5 26.5c-.1-.7-.3-1.4-.5-2l-50 28.9c.5.5 1 1 1.5 1.4.5.5 1.1.9 1.7 1.3l47.6-27.5c-.1-.7-.2-1.4-.3-2.1"/><path d="m51.5 9.2c-.5-.5-1.1-.9-1.7-1.3l-47.6 27.4c.1.7.2 1.4.3 2.1.1.7.3 1.4.5 2l50-28.8c-.5-.5-1-1-1.5-1.4"/></g><path fill="#ffce31" d="m23.2 13.5l2.3-2.3-3.1.9.9-3.1-2.3 2.3-.8-3.2-.8 3.2-2.3-2.3.9 3.1-3.2-.9 2.4 2.3-3.2.8 3.2.8-2.4 2.3 3.2-.9-.9 3.2 2.3-2.4.8 3.2.8-3.2 2.3 2.4-.9-3.2 3.1.9-2.3-2.3 3.2-.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e8.svg
index 5c5e94c..7a9113f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1e8.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#2a5f9e" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#ed4c5c" d="M60.286,42C61.393,38.871,62,35.508,62,32s-0.607-6.871-1.714-10H3.714C2.607,25.129,2,28.492,2,32
- s0.607,6.871,1.714,10H60.286z"/><circle fill="#ffe62e" cx="24" cy="32" r="17.7"/><path fill="#3e4347" d="m24 14c-9.926 0-18 8.07-18 18 0 9.928 8.07 18 18 18 9.928 0 18-8.07 18-18 0-9.926-8.07-18-18-18m-17.398 18c0-9.474 7.61-17.203 17.04-17.396v3.857c-1.085.481-1.948.912-2.12 1.867-.022.126-.052 1.445-.083 1.77 0 0 .185.023.626-.334.192-.157.781-.258 1.577-.746v2.01c-1.154.176-2.04 1.167-2.04 2.368 0 1.204.886 2.2 2.04 2.371v.503c-.913-.049-1.716-.332-2.401-1.733-.383-.779-1.382-1.979-1.382-1.979s.472 1.347.542 2.699c.104 1.985 1.856 2.197 3.241 2.217v.363h-2.643v.721h2.643v.362c-1.154.108-2.04.738-2.04 1.498 0 .761.886 1.391 2.04 1.501v.359h-2.643v.721h2.643v.368c-2.038.084-3.02.906-3.136 2.075-.234 2.541-.705 4.518-.705 4.518s.754-.932 1.638-3.118c.41-1 1.304-1.64 2.203-1.775v.262c-.924.246-1.622 1.42-1.622 2.831 0 1.413.698 2.586 1.622 2.831v.824c-1.19.031-2.354.294-2.963.771-.823.65-2.831 2.642-3.558 3.393-6.183-2.674-10.519-8.832-10.519-15.982m23.967 16.11c-.714-.762-2.528-2.67-3.566-3.526-.554-.453-1.563-.704-2.645-.761v-.834c.924-.245 1.624-1.418 1.624-2.831 0-1.411-.7-2.585-1.624-2.831v-.262c.899.136 1.798.771 2.204 1.775.883 2.187 1.64 3.118 1.64 3.118s-.471-1.977-.708-4.518c-.107-1.169-1.096-1.991-3.136-2.075v-.368h2.643v-.72h-2.643v-.359c1.157-.11 2.044-.74 2.044-1.501 0-.76-.887-1.39-2.044-1.498v-.362h2.643v-.721h-2.643v-.363c1.387-.02 3.14-.231 3.242-2.217.07-1.353.542-2.699.542-2.699s-.999 1.2-1.382 1.979c-.686 1.401-1.489 1.685-2.402 1.733v-.502c1.157-.171 2.044-1.167 2.044-2.371 0-1.201-.887-2.192-2.044-2.368v-2.531c.703-.581 1.5-1.479 2.292-2.909.439-.785.23-1.134.231-1.134h-.001c0 0 .023.052-.302.333-.712.616-1.489 1.019-2.221 1.353v-3.539c9.433.193 17.04 7.922 17.04 17.396 0 7.272-4.484 13.515-10.832 16.11"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#83bf4f"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#2a5f9e"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#ed4c5c"/><circle cx="24" cy="32" r="17.7" fill="#ffe62e"/><path d="m24 14c-9.9 0-18 8.1-18 18 0 9.9 8.1 18 18 18 9.9 0 18-8.1 18-18 0-9.9-8.1-18-18-18m-17.4 18c0-9.5 7.6-17.2 17-17.4v3.9c-1.1.5-1.9.9-2.1 1.9 0 .1-.1 1.4-.1 1.8 0 0 .2 0 .6-.3.2-.2.8-.3 1.6-.7v2c-1.2.2-2 1.2-2 2.4 0 1.2.9 2.2 2 2.4v.5c-.9 0-1.7-.3-2.4-1.7-.4-.8-1.4-2-1.4-2s.5 1.3.5 2.7c.1 2 1.9 2.2 3.2 2.2v.4h-2.5v.7h2.6v.4c-1.2.1-2 .7-2 1.5 0 .8.9 1.4 2 1.5v.4h-2.6v.4h2.6v.4c-2 .1-3 .9-3.1 2.1-.2 2.5-.7 4.5-.7 4.5s.8-.9 1.6-3.1c.4-1 1.3-1.6 2.2-1.8v.3c-.9.2-1.6 1.4-1.6 2.8 0 1.4.7 2.6 1.6 2.8v.8c-1.2 0-2.4.3-3 .8-.8.7-2.8 2.6-3.6 3.4-6.1-2.7-10.4-8.8-10.4-16m24 16.1c-.7-.8-2.5-2.7-3.6-3.5-.6-.5-1.6-.7-2.6-.8v-.8c.9-.2 1.6-1.4 1.6-2.8 0-1.4-.7-2.6-1.6-2.8v-.3c.9.1 1.8.8 2.2 1.8.9 2.2 1.6 3.1 1.6 3.1s-.5-2-.7-4.5c-.1-1.2-1.1-2-3.1-2.1v-.4h2.6v-.7h-2.6v-.4c1.2-.1 2-.7 2-1.5 0-.8-.9-1.4-2-1.5v-.4h2.6v-.7h-2.6v-.4c1.4 0 3.1-.2 3.2-2.2.1-1.4.5-2.7.5-2.7s-1 1.2-1.4 2c-.7 1.4-1.5 1.7-2.4 1.7v-.5c1.2-.2 2-1.2 2-2.4 0-1.2-.9-2.2-2-2.4v-2.5c.7-.6 1.5-1.5 2.3-2.9.4-.8.2-1.1.2-1.1 0 0 0 .1-.3.3-.7.6-1.5 1-2.2 1.4v-3.5c9.4.2 17 7.9 17 17.4.1 7.3-4.4 13.5-10.7 16.1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ea.svg
index 1c85683..b7f4707 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ea.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f27a52" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.062,2,32,2z"/><path fill="#83bf4f" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.608,25.129,2,28.492,2,32s0.608,6.871,1.714,10h56.572C61.392,38.871,62,35.508,62,32
- s-0.608-6.871-1.714-10H3.714z"/><circle fill="#f27a52" cx="32" cy="32" r="8"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#f27a52"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#83bf4f"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><circle cx="32" cy="32" r="8" fill="#f27a52"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1eb.svg
index fe6744f..21005fb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="M2,31.999C2,43.51,8.486,53.502,18,58.531V5.466C8.486,10.497,2,20.488,2,31.999z"/><path d="m62 31.999c0-11.511-6.486-21.502-16-26.533v53.06c9.514-5.03 16-15.02 16-26.532"/></g><path fill="#fff" d="m32 1.999c-5.058 0-9.819 1.257-14 3.467v53.06c4.181 2.211 8.942 3.469 14 3.469s9.819-1.258 14-3.469v-53.06c-4.181-2.21-8.942-3.467-14-3.467"/><path fill="#699635" d="m32.31 13.06c-.076.826-.153 1.653-.229 2.48-.28.042-.56.084-.84.126 0 0 .583.327.686.656l-.014.129-.031.03c-.168.131-.668.069-.668.069s.662.559.713.761l.002.014v.014l-.005.011-.022.03c-.155.144-.889.185-.889.185s.813.58.864.909c.046.297.007.472 0 .502-.057-.049-1.369-1.15-2.216-.829l-.077.063-.003.033c.059.184 1.257.371 2.091 1.093-.021.181-2.379-.574-2.466-.101.073.133 2.538.487 2.721.81-.908.033-2.783-.199-2.721.099-.19.346 1.771.15 2.594.432.241.272.218.502-.202.53-.793-.377-2.567-.657-2.572-.176v.003l.003.002.003.006.015.009c.2.1 1.853.051 2.475.461-.882.2-3.873-.404-3.893-.11.085.139.559.742 1.374.717.813-.024 2.697.33 2.825.583l.003.021c-.056.177-2.481-.537-3.414-.098-.968.455 2.772.179 3.384.735.61.557-1.221-.053-1.221-.053s-2.545-.353-2.926-.175c-.383.177-.814.582-.814.582s.253.505.508.403l.08-.013h.003l.003.003.003.002.002.003.003.003.003.01-.174.298c0 0 3.563.858 4.353 1.617.79.759-4.529-1.189-4.529-1.189s-2.139.784.127.835c-.253.367.104.593.127.607 0 0 3.768.785 4.149 1.392.381.607-2.57-.584-3.232-.912-.639-.317-2.415.168-2.517.316l-.002.006v.002.006.004.002l.002.002v.004l.006.008.003.002c.113.125.906.297.931.512v.002l-.009.035c-.1.193-1.046.275-1.085.457l-.003.012c0 .201 4.761 1.188 6.03 2.252 1.273 1.062-3.739-1.268-3.739-1.268s.279.381 0 .48c-.28.102-1.274-1.416-2.903-.48-.297.387 1.422.691 1.859.734-.149.381-.279.508.331.887l.119.08.003.004.002.002v.002.004h-.002-.003c-.095-.016-1.192-.576-1.307-.6h-.006-.003l.127.658c-.563-.455-1.245-.592-1.884-.125-.001.027-.006.462.635.732-.361.735.408.508 1.63 1.19-1.814-.473-1.96.404-.662.607s4.861.33 5.701 1.418c.178.229.226.344.19.381-.14.127-1.429-.801-1.616-.834h-.002l-.003.002-.009.014c-.046.102-.088.539-.088.539-.543-.313-1.041-.594-1.69-.727-.052.102-.041.246-.092.348-.589-.424-1.103-.721-1.958-.762-.034.135-.068.271-.103.406 0 0-.713-.885-2.113 0-.781.557 2.953.203 3.563.859.611.658.127.76.127.76-.509-.188-1.016-.369-1.524-.555 0 0-1.81-.332-2.317.072-.51.406 7.431 1.393 7.66 2.48.153.59-1.866-.617-3.613-1.137-.068.193-.137.387-.205.58-.041-.041-.717-.695-1.475-.809l-.003.004v.006l.155.674c0 0-1.959-.91-2.95-.43-.993.48 3.46.734 3.867 1.189l.061.109-.006.014c-.099.143-1.426-.385-1.558-.123-.152.303-2.315-.557-2.29-.152.025.406.307.633.307.633s4.504.43 4.656.961c.154.531-2.493-.303-2.493-.303s-.257.379-.053.555l.017.018v.002h-.003c-.092-.029-1.526-.963-1.387-.246-.562-.223-2.01-.91-1.807-.379.201.523 3.979 1.268 4.091 1.291-.1.008-1.698.141-1.624.557-2.142-1.297-2.137-.52-2.088-.459v.004c-.121-.02-2.756-.672-.661.455 1.125.605 1.398.84 1.403.932v.008l-.002.008-.003.004-.003.004-.003.004-.003.002-.002.004-.003.002-.18.018h-.006l-.002.002.002.002.186.568-.003.006v.004h-.003v.002h-.003-.003c-.091-.023-1.479-.76-1.955-.811-.484-.051-2.774.633-.332 1.695 2.443 1.063 3.944-.254 5.292-.102 1.35.152 1.987.379 1.859.811-.127.43-1.38-1.412-2.695.182-1.497-.297-2.514-.467-1.74.627-2.445-.908-3.938.277-.859.76 3.03.088 4.887-.734 4.887-.734s.511.939 1.248.281c.703-.629.759.17.784.246l.003.004v.002h.003l.711-.305h.179v6.072c.823.008 1.645.016 2.467.025 0 0-.788-5.287-.356-5.996.419-.686.815-.611.84-.607 0 0 1.604.48 1.782.404l.008-.004.006-.002.011-.008.002-.002c.131-.119-.002-.586.813-.516.251-.09.154-.488.316-.586l.012-.006.022-.01.033-.004c.254-.025 5.166 1.365 6.234.049-.28-.734-1.249-.051-1.503-.025-.229 0-1.197-.455-1.757 0-.509-.379-2.823-.631-2.823-.631-.305-.305 5.522.15 5.854-.076.687-.684-1.272-.607-1.577-.379-.543-.33-1.226-.307-1.642-.078-.199-.475-2.091-.268-3.144-.404-.336-.195-.28-.309-.053-.432 2.197.094 4.384.379 6.592.281.597-.773-.752-1.064-1.578-.406-.484-.793-1.476-.025-2.137-.102-.662-.076-.357-.885.482-.758.841.127 2.343-.053 2.622-.432.28-.381-.167-.764-1.553-.404-.469-.455-1.499 0-1.983.152-.643-.357-2.14-.051-2.649.076-.498-.309 2.622-.811 2.622-.811 1.204-.021 1.883-.229 2.265-.33 1.82-.971-.025-1.072-.98-.367-.593-.461-1.156.039-1.69.217-.501.166-1.428.287-1.541.238l-.006-.002-.003-.002-.003-.004v-.002-.004l.003-.006c.075-.115 1.447-.953 1.447-.953s1.782-.127 2.139-.178c.217-.031.978-.389.978-.521-.007-.082-.323-.074-1.285.168-.864.074-1.373.025-1.703.051-.533-.055-.757-.109-.802-.158l-.006-.01.006-.025.009-.01c.13-.104.972-.178.972-.178s2.57-.234 2.74-.369l.003-.002.003-.006.002-.002c.054-1.045-2.18-.563-2.239-.555.006-.736-2.02-.012-2.11 0h-.003l-.133-.154.006-.059c.051-.15.355-.268.355-.268.561-.135 1.397-.178 1.616-.355 0 0 1.58-.014 1.768-.432-.387-1.063-3.344.189-3.739.381l-.151-.053c-.131-.189.511-.811.532-.832l.003-.004c.098-.027 2.458-.148 3.586-1.668.079-.938-1.349.531-1.349.531-.106-1.219-1.552.078-2.392.178-.84.102-.865-.379-.279-.455.585-.076 1.246-.025 1.577-.912.331-.886 1.324.053 1.503-.278.173-.318-.325-.59-.356-.607 0 0 .737-.759-.459-.734-1.184.023-2.715-.148-2.746-.152.075-.027 1.281-.48 2.415-.455 1.171.025.534-.836-.586-.836-1.119 0-1.704-.379-1.704-.379.636-.236 1.272-.473 1.909-.709-.043-.178-.085-.354-.127-.529 0 0 1.119-.886-.459-.684s-1.757.227-1.757.227l-3.18.482h-.003c-.029-.006-.337-.102-.395-.219l-.006-.014-.002-.016v-.02c.013-.061.108-.129.353-.189.814-.203 3.692-.784 4.124-.631l.122-.006c.162-.146-.378-1.077-1.701-1.208-1.527-.152-2.467.379-2.467.379s-.993-.355-.078-.659c.917-.304 2.367.102 2.367.102s1.629-.481.279-.685c-1.349-.202-1.773.183-2.393.204-.246-.307 2.118-.379 2.266-.633-.249-.455-1.712 0-2.569 0-.363-.153-.388-.403.025-.557.874-.034 1.695.017 2.569-.017-.026-.465 0-1.015-.025-1.478-1.108-.201-2.408.146-3.03.118.166-.507 2.56-.637 2.826-.774.55-.685-2.295-.011-2.365 0-.505-.074-.474-.392-.154-.583.738-.084 2.394.107 2.268-.39-.096-.467-1.147-.217-1.579-.115-.433.101-1.069.023-1.069.023-.277-.37 2.494-.219 2.47-.505-.036-.328-1.757-.102-2.343-.076-.45-.309 2.116-.515 2.237-.555l.003-.003c.096-.842-1.782 0-2.138 0l-.142-.041-.021-.022c-.122-.142-.015-.467-.015-.467l.711-.371.003-.002v-.003-.003l-.003-.002-.009-.009-.6-.218h-.003l-.003-.003-.003-.003-.002-.002.008-.574c0 0 .53-.395.564-.552v-.005-.006-.006-.003l-.003-.006v-.003l-.003-.002-.003-.003-.003-.005-.003-.003-.008-.005-.006-.003c-.134-.064-.688.126-.688.126 0-.169 0-.337 0-.506 0 0 .485-.052.536-.28v-.037l-.002-.017-.014-.03-.006-.006c-.111-.142-.564-.161-.564-.161-.085-.886-.17-1.771-.254-2.656m-.453 8.672v.35c0 0-.57-.029-.677-.118l-.003-.003-.003-.002-.002-.003-.003-.003-.003-.006v-.003l-.003-.002v-.003-.006-.003-.002l.003-.009.003-.002.005-.009.003-.003.005-.006.015-.011c.191-.134.574-.13.649-.151h.002l.003-.003h.003l.003-.002m.81.466c.02 0 1.137.009 1.234.153l.003.006.003.008v.005.009l-.003.008c-.085.181-1.215.289-1.215.289l-.022-.478m-.064.689h.002.003l.586.11.002.003v.002l.003.003v.003.002.003.003.003l-.003.003v.003l-.002.006-.003.002v.003c-.096.117-.522.148-.544.148h-.003v-.003l-.002-.003-.039-.291m-3.406.917c.364-.019 1.089.066 2.447.439l.017.438-.003.002v.003l-.003.003c-.021-.011-2.472-.711-2.695-.7h-.02l-.017-.003-.02-.009-.008-.003-.003-.002-.02-.019-.003-.003-.003-.006v-.003l-.002-.006v-.003-.005-.006l.002-.011.017-.024c.04-.035.133-.073.314-.082m1.271 1.036c.391-.014 1.327.209 1.379.198l-.006.496-.003.003-.003.003-.003.003-.005.003h-.003-.006-.003c-.079-.021-1.46-.457-1.514-.635v-.011l.008-.019.003-.003.003-.003.153-.035m3.845.962c.372-.008.636.024.538.137-.267.307-2.107.56-2.107.56l-.033-.56c.039-.006.974-.126 1.602-.137m-5.27 1.746c.313-.018 1.042.154 2.665.838l.011.402c0 0-2.748-.828-2.845-.967-.047-.066-.135-.257.169-.273m5.386.602l.163.023.003.004.003.008.003.008-.025.045c-.256.285-1.63.57-1.63.57v-.369h.003c.062-.004 1.07-.27 1.48-.289m-6.03.049c.411-.021 1.338.195 3.414 1.174l.012.379h-.003c-.123-.041-3.737-1.303-3.737-1.303-.004-.014-.058-.231.314-.25m6.881 1.58c.105-.006.174.004.19.027l.003.01-.027.043c-.327.293-2.417.65-2.492.656h-.003-.002l-.003-.004-.003-.006v-.002l-.002-.006.032-.34v-.004h.003l.003.004h.003c.134-.003 1.735-.355 2.298-.378m-6.142.92c.621-.031 2.507.826 2.599.853h.003l-.02.398v.006h-.003c-.051-.027-2.633-1.093-2.748-1.01-.072-.168.003-.242.169-.25m5.557.224c.129-.006.224 0 .254.018l.009.008v.002.004.004l-.003.004-.009.008c-.191.169-1.972.519-1.972.519l-.009-.359c.051-.013 1.2-.184 1.73-.208m-.143 1.136c.125-.004.214.002.234.025l.003.002v.006l.003.002-.003.004v.006l-.003.002-.006.008-.008.008c-.192.166-1.701.48-1.701.48l-.042-.371c.042.001 1.051-.157 1.523-.172m-6.371.089c.364-.021 1.267.127 3.494.932l.074.434c0 0-3.709-1.189-3.814-1.227v-.004-.013l.02-.043c.026-.034.086-.069.226-.079m4.887.944c.044.01.666.029.781.125l.003.004.003.002.003.004.003.004.002.004.003.008v.004.002.006.002l-.003.006v.002l-.002.006c-.097.148-.746.203-.746.203s-.032-.292-.047-.382m1.505.846c.146-.004.249.012.271.055l-.081.127c-.532.434-1.692.518-1.692.518v-.478h.002c.066-.008 1.02-.211 1.5-.222m1.478.445c.185-.008.264.023.288.064l.005.014.003.025-.11.162c-.181.17-3.068 1.08-3.068 1.08l-.012-.656c1.688-.509 2.514-.676 2.894-.689m-1.868 1.707c.184-.006.327.004.371.047l.008.012.003.008v.008.014l-.014.029c-.248.24-1.448.275-1.448.275v-.299c.226-.008.728-.08 1.08-.092v-.002m1.203.492l.097.025v.006l-.056.059c-.479.34-2.281.688-2.281.688l.033-.293c.049-.003 1.776-.473 2.207-.485m1.01.377c.212-.002.374.029.467.096h.003v.002.004.006c-.009.064-.144.375-.619.508-.592-.053-3.104.686-3.154.697h-.003v-.006l.033-.303c.866-.514 2.44-.996 3.273-1m-6.433 1.449h.017c1.087.117 1.493.521 1.608.686-.218.377-1.935-.471-1.755-.652l.13-.034m6.229.072l.11.025.03.029.02.066c-.113.174-.701.098-.738.092.03-.008.369-.204.578-.212m-2.329 1.176l.186.027.014.012.006.004.005.008.003.008-.014.084c-.171.316-.917.199-.917.199v-.223h.002c.042.004.453-.109.715-.119m-4.397.838c.229-.012.431.137.641.258.469-.096 1.432.074 1.432.074v.422l-.003.004h-.003c-.088.016-1.215-.035-1.467-.193-.205 0-.787-.305-.831-.461l-.003-.006v-.008-.006-.004-.004l.003-.006v-.002l.231-.068m4.93.207c.177-.008.252.045.114.24-.385.539-1.376.318-1.376.318l-.041-.335c.35.014.989-.205 1.303-.223m-3.707 1.096c.401-.018.837.141.837.141.011.021.216.424.033.559l-.021.014c-.224.117-1.294-.092-1.356-.52.125-.134.312-.184.507-.194m-4.134.209c.367-.021.776.203.823.227h.003l-.014.406c0 0-.727-.201-.956-.607l.144-.026m6.985.057c.41-.004.904.092.976.23l-.017.09c-.203.244-1.354.021-1.354.021v-.295c.103-.031.244-.046.395-.046"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="m2 32c0 11.5 6.5 21.5 16 26.5v-53c-9.5 5-16 15-16 26.5"/><path d="m62 32c0-11.5-6.5-21.5-16-26.5v53.1c9.5-5.1 16-15.1 16-26.6"/></g><path d="M32,2c-5.1,0-9.8,1.3-14,3.5v53.1c4.2,2.2,8.9,3.5,14,3.5s9.8-1.3,14-3.5V5.5C41.8,3.3,37.1,2,32,2z" fill="#fff"/><path d="m32.3 13.1c-.1.8-.2 1.7-.2 2.5-.3 0-.6.1-.8.1 0 0 .6.3.7.7v.1c-.2.1-.7.1-.7.1s.7.6.7.8c-.2.1-.9.2-.9.2s.8.6.9.9c0 .3 0 .5 0 .5-.1 0-1.4-1.1-2.2-.8l-.1.1c.1.2 1.3.4 2.1 1.1 0 .2-2.4-.6-2.5-.1.1.1 2.5.5 2.7.8-.9 0-2.8-.2-2.7.1-.2.3 1.8.1 2.6.4.2.3.2.5-.2.5-.8-.4-2.6-.7-2.6-.2.2.1 1.9.1 2.5.5-.9.2-3.9-.4-3.9-.1.1.1.6.7 1.4.7.8 0 2.7.3 2.8.6-.1.2-2.5-.5-3.4-.1-1 .5 2.8.2 3.4.7.6.6-1.2-.1-1.2-.1s-2.7-.2-3-.1c-.4.2-.8.6-.8.6s.3.5.5.4h.1l-.2.3c0 0 3.6.9 4.4 1.6.8.8-4.5-1.2-4.5-1.2s-2.1.8.1.8c-.3.4.1.6.1.6 0 0 3.8.8 4.1 1.4s-2.6-.6-3.2-.9c-.6-.3-2.4.2-2.5.3.1.1.9.3.9.5-.1.2-1 .3-1.1.5 0 .2 4.8 1.2 6 2.3 1.3 1.1-3.7-1.3-3.7-1.3s.3.4 0 .5c-.3.1-1.3-1.4-2.9-.5-.3.4 1.4.7 1.9.7-.1.4-.3.5.3.9l.1.1c-.1 0-1.2-.6-1.3-.6l.1.7c-.6-.5-1.2-.6-1.9-.1 0 0 0 .5.6.7-.4.7.4.5 1.6 1.2-1.8-.5-2 .4-.7.6s4.9.3 5.7 1.4c.2.2.2.3.2.4-.1.1-1.4-.8-1.6-.8 0 .1-.1.5-.1.5-.5-.3-1-.6-1.7-.7-.1.1 0 .2-.1.3-.6-.4-1.1-.7-2-.8 0 .1-.1.3-.1.4 0 0-.7-.9-2.1 0-.8.6 3 .2 3.6.9.6.7.1.8.1.8-.5-.2-1-.4-1.5-.6 0 0-1.8-.3-2.3.1-.5.4 7.4 1.4 7.7 2.5.2.6-1.9-.6-3.6-1.1-.1.2-.1.4-.2.6 0 0-.7-.7-1.5-.8l.2.7c0 0-2-.9-3-.4-1 .5 3.5.7 3.9 1.2l.1.1c-.1.1-1.4-.4-1.6-.1-.2.3-2.3-.6-2.3-.2 0 .4.3.6.3.6s4.5.4 4.7 1c.2.5-2.5-.3-2.5-.3s-.3.4-.1.6c-.1 0-1.5-1-1.4-.2-.6-.2-2-.9-1.8-.4.2.5 4 1.3 4.1 1.3-.1 0-1.7.1-1.6.6-2.1-1.3-2.1-.5-2.1-.5-.1 0-2.8-.7-.7.5 1.1.6 1.4.8 1.4.9h-.2l.2.6c-.1 0-1.5-.8-2-.8-.5-.1-2.8.6-.3 1.7 2.4 1.1 3.9-.3 5.3-.1 1.4.2 2 .4 1.9.8-.1.4-1.4-1.4-2.7.2-1.5-.3-2.5-.5-1.7.6-2.4-.9-3.9.3-.9.8 3 .1 4.9-.7 4.9-.7s.5.9 1.2.3c.7-.6.8.2.8.2l.7-.3h.2v6.1c.8 0 1.6 0 2.5 0 0 0-.8-5.3-.4-6 .4-.7.8-.6.8-.6 0 0 1.6.5 1.8.4.1-.1 0-.6.8-.5.3-.1.2-.5.3-.6.3 0 5.2 1.4 6.2 0-.3-.7-1.2-.1-1.5 0-.2 0-1.2-.5-1.8 0-.5-.4-2.8-.6-2.8-.6-.3-.3 5.5.2 5.9-.1.7-.7-1.3-.6-1.6-.4-.5-.3-1.2-.3-1.6-.1-.2-.5-2.1-.3-3.1-.4-.3-.2-.3-.3-.1-.4 2.2.1 4.4.4 6.6.3.6-.8-.8-1.1-1.6-.4-.5-.8-1.5 0-2.1-.1-.7-.1-.4-.9.5-.8.8.1 2.3-.1 2.6-.4.3-.4-.2-.8-1.6-.4-.5-.5-1.5 0-2 .2-.6-.4-2.1-.1-2.6.1-.5-.3 2.6-.8 2.6-.8 1.2 0 1.9-.2 2.3-.3 1.8-1 0-1.1-1-.4-.6-.5-1.2 0-1.7.2-.5.2-1.4.3-1.5.2.1-.1 1.4-1 1.4-1s1.8-.1 2.1-.2c.2 0 1-.4 1-.5 0-.1-.3-.1-1.3.2-.9.1-1.4 0-1.7.1-.5-.1-.8-.1-.8-.2.1-.1 1-.2 1-.2s2.6-.2 2.7-.4c.1-1-2.2-.6-2.2-.6 0-.7-2 0-2.1 0l-.1-.2v-.1c.1-.2.4-.3.4-.3.6-.1 1.4-.2 1.6-.4 0 0 1.6 0 1.8-.4-.4-1.1-3.3.2-3.7.4l-.2-.1c-.1-.2.5-.8.5-.8.1 0 2.5-.1 3.6-1.7.1-.9-1.3.5-1.3.5-.1-1.2-1.6.1-2.4.2-.8.1-.9-.4-.3-.5.6-.1 1.2 0 1.6-.9.3-.9 1.3.1 1.5-.3.2-.3-.3-.6-.4-.6 0 0 .7-.8-.5-.7-1.2 0-2.7-.1-2.7-.2.1 0 1.3-.5 2.4-.5 1.2 0 .5-.8-.6-.8-1.1 0-1.7-.4-1.7-.4.6-.2 1.3-.5 1.9-.7 0-.2-.1-.4-.1-.5 0 0 1.1-.9-.5-.7s-1.6.4-1.6.4l-3.2.5c0 0-.3-.1-.4-.2 0-.1.1-.1.4-.2.8-.2 3.7-.8 4.1-.6h.1c.2-.1-.4-1.1-1.7-1.2-1.5-.2-2.5.4-2.5.4s-1-.4-.1-.7c.9-.3 2.4.1 2.4.1s1.6-.5.3-.7c-1.3-.2-1.8.2-2.4.2-.2-.3 2.1-.4 2.3-.6-.2-.5-1.7 0-2.6 0-.4-.2-.4-.4 0-.6.9 0 1.7 0 2.6 0 0-.5 0-1 0-1.5-1.1-.2-2.4.1-3 .1.2-.5 2.6-.6 2.8-.8.5-.7-2.3 0-2.4 0-.5-.1-.5-.4-.2-.6.7-.1 2.4.1 2.3-.4-.1-.5-1.1-.2-1.6-.1-.4.1-1.1 0-1.1 0-.3-.4 2.5-.2 2.5-.5 0-.3-1.8-.1-2.3-.1-.4-.3 2.2-.5 2.3-.5.1-.8-1.8 0-2.1 0h-.1c-.1-.1 0-.5 0-.5l.7-.4-.6-.2v-.6c0 0 .5-.4.6-.6-.1-.1-.7.1-.7.1 0-.2 0-.3 0-.5 0 0 .5-.1.5-.3-.1-.1-.6-.2-.6-.2-.2-1-.3-1.9-.4-2.7m-.4 8.6v.4c0 0-.6 0-.7-.1.2-.2.6-.2.7-.3m.8.5c0 0 1.1 0 1.2.2-.1.2-1.2.3-1.2.3v-.5m-.1.7l.6.1c-.1.1-.5.1-.5.1l-.1-.2m-3.4.9c.4 0 1.1.1 2.4.4v.4c0 0-2.5-.7-2.7-.7 0 0 .1-.1.3-.1m1.3 1c.4 0 1.3.2 1.4.2v.5c-.1 0-1.5-.5-1.5-.6l.1-.1m3.8 1c.4 0 .6 0 .5.1-.3.3-2.1.6-2.1.6v-.6c.1 0 1-.1 1.6-.1m-5.3 1.7c.3 0 1 .2 2.7.8v.4c0 0-2.7-.8-2.8-1-.1.1-.2-.1.1-.2m5.4.6h.2c-.3.3-1.6.6-1.6.6v-.4c0 .1 1-.1 1.4-.2m-6 .1c.4 0 1.3.2 3.4 1.2v.4c-.1 0-3.7-1.3-3.7-1.3 0-.1-.1-.3.3-.3m6.9 1.6c.1 0 .2 0 .2 0-.3.3-2.4.6-2.5.7v-.3c.1 0 1.7-.4 2.3-.4m-6.2.9c.6 0 2.5.8 2.6.9v.4c-.1 0-2.6-1.1-2.7-1-.1-.2 0-.3.1-.3m5.6.2c.1 0 .2 0 .3 0-.2.2-2 .5-2 .5v-.4c0 .1 1.2-.1 1.7-.1m-.1 1.2c.1 0 .2 0 .2 0-.2.2-1.7.5-1.7.5v-.4c0 0 1-.1 1.5-.1m-6.4 0c.4 0 1.3.1 3.5.9l.1.4c0 0-3.7-1.2-3.8-1.2 0 0 0 0 .2-.1m4.9 1c0 0 .7 0 .8.1-.1.1-.7.2-.7.2s-.1-.2-.1-.3m1.5.8c.1 0 .2 0 .3.1l-.1.1c-.5.4-1.7.5-1.7.5v-.5c0 .1 1-.2 1.5-.2m1.5.5c.2 0 .3 0 .3.1l-.1.2c-.2.2-3.1 1.1-3.1 1.1v-.7c1.7-.5 2.5-.7 2.9-.7m-1.9 1.7c.2 0 .3 0 .4 0-.2.2-1.4.3-1.4.3v-.3c.1.1.6 0 1 0m1.2.5c-.4.4-2.2.8-2.2.8v-.3c0 0 1.8-.5 2.2-.5m1 .4c.2 0 .4 0 .5.1 0 .1-.1.4-.6.5-.6-.1-3.1.7-3.2.7v-.3c.9-.6 2.5-1 3.3-1m-6.4 1.4c1.1.1 1.5.5 1.6.7-.2.4-1.9-.5-1.8-.7h.2m6.2.1h.1v.1c-.1.2-.7.1-.7.1.1 0 .4-.2.6-.2m-2.3 1.2h.2v.1c-.2.3-.9.2-.9.2v-.2c0 0 .4-.1.7-.1m-4.4.8c.2 0 .4.1.6.3.5-.1 1.4.1 1.4.1v.4c-.1 0-1.2 0-1.5-.2-.2 0-.8-.3-.8-.5l.3-.1m4.9.2c.2 0 .3 0 .1.2-.4.5-1.4.3-1.4.3v-.3c.4 0 1-.2 1.3-.2m-3.7 1.1c.4 0 .8.1.8.1 0 0 .2.4 0 .6-.2.1-1.3-.1-1.4-.5.2-.1.4-.2.6-.2m-4.1.2c.4 0 .8.2.8.2v.4c0 0-.7-.2-1-.6h.2m6.9.1c.4 0 .9.1 1 .2v.1c-.2.2-1.4 0-1.4 0v-.3c.2 0 .3 0 .4 0" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ec.svg
index f778c07..0701d0c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ec.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/></g><path fill="#f9f9f9" d="M22,60.286C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.714V3.714C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.714V60.286z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3"/></g><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ee.svg
index 817cf9e..8792edd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ee.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="31.903" y1="30.487" x2="32.496" y2="32.05"><stop stop-color="#ff2a2a"/><stop offset="1" stop-color="#f00"/></linearGradient></defs><g fill="#428bc1"><path d="M32,2C18.939,2,7.832,10.35,3.713,22h56.572C56.166,10.35,45.061,2,32,2z"/><path d="m32 62c13.06 0 24.17-8.35 28.28-20h-56.57c4.119 11.65 15.226 20 28.29 20"/></g><path fill="#f9f9f9" d="M3.713,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.713,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.715-10H3.713z"/><path fill="#42ade2" d="m32 25.339l-6.271 10.03h12.541z"/><path fill="#428bc1" d="m28.864 30.355l-3.135 5.01h12.541l-3.13-5.01z"/><path fill="url(#0)" d="m32.956 31.01c.008-.032-.002-.051-.02-.063.035-.097.004-.229 0-.311-.02-.331-.232-.721-.451-1.077-.238-.401-.541-.494-1.016-.212-.211.123-.324.236-.438.467-.045.1-.039.216.01.278.01.018.023.023.039.028.031.014.152.063.273-.06.051-.044.109-.058.135-.073-.061.047-.104.113-.137.14-.082.063-.207.216-.27.37-.061.149-.086.335-.074.356.01.02.086.154.313.247.188.072.305.181.416.273.008.006.01.008.016.015.113.102.1.154.09.395-.002.1.014.317.117.335.014.004.025 0 .037 0 .014.014.029.021.047.026.121.035.217-.063.262-.247.047-.169.082-.269.146-.37.092-.057.129-.136.297-.105.105.018.186-.013.221-.06.02-.009.031-.024.031-.06.001-.087-.077-.171-.044-.292"/><path fill="#83bf4f" d="m37.603 34.397c-1.025-.127-1.863-1.01-2.131-1.877 0 0-.057-.077-.236-.077-.182 0-.236.077-.236.077-.107.348-.307.698-.572 1-.268-.304-.467-.654-.574-1 0 0-.057-.077-.238-.077-.18 0-.236.077-.236.077-.105.348-.307.698-.572 1-.266-.304-.465-.654-.572-1 0 0-.057-.077-.236-.077s-.236.077-.236.077c-.105.346-.305.693-.568.996-.264-.303-.461-.65-.568-.996 0 0-.055-.077-.234-.077-.182 0-.238.077-.238.077-.1.325-.301.688-.57 1.019-.271-.308-.479-.664-.586-1.019 0 0-.055-.077-.236-.077-.18 0-.236.077-.236.077-.268.865-1.25 1.982-2.271 2.115l-.504.736h1.629 1.145.002 1.617.781.838.002.791 2.92 1.164 1.619l-.658-.974"/><path fill="#dbb471" d="m32 23c-4.971 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9m0 16.5c-4.143 0-7.5-3.358-7.5-7.5s3.357-7.5 7.5-7.5 7.5 3.358 7.5 7.5-3.357 7.5-7.5 7.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="31.9021" y1="35.5122" x2="32.4944" y2="33.9449" gradientTransform="matrix(1 0 0-1 0 66)"><stop stop-color="#ff2a2a"/><stop offset="1" stop-color="#f00"/></linearGradient></defs><g fill="#428bc1"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z"/></g><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><path fill="#42ade2" d="m32 25.3l-6.3 10.1h12.6z"/><path fill="#428bc1" d="m28.9 30.4l-3.2 5h12.6l-3.2-5z"/><path d="m33 31c0 0 0 0 0 0 0-.2 0-.3 0-.4 0-.3-.2-.7-.5-1.1-.2-.4-.5-.5-1-.2-.2.1-.3.2-.4.5 0 .1 0 .2 0 .3 0 0 .2.1.3-.1.1 0 .1-.1.1-.1-.1 0-.1.1-.1.1-.1.1-.2.2-.3.4-.1.2-.1.4-.1.5 0 0 .1.2.3.2.2.1.3.2.4.3.1.1.1.2.1.4 0 .1 0 .3.1.3.1 0 .2-.1.3-.2 0-.2.1-.3.1-.4.1-.1.1-.1.3-.1.1 0 .2 0 .2-.1 0 0 0 0 0-.1.2 0 .1-.1.2-.2" fill="url(#0)"/><path d="m37.6 34.4c-1-.1-1.9-1-2.1-1.9 0 0-.1-.1-.2-.1-.2 0-.2.1-.2.1-.1.3-.3.7-.6 1-.3-.3-.5-.7-.6-1 0 0-.1-.1-.2-.1-.2 0-.2.1-.2.1-.1.3-.3.7-.6 1-.3-.3-.5-.7-.6-1 0 0-.1-.1-.2-.1s-.2.1-.2.1c-.1.3-.3.7-.6 1-.3-.3-.5-.7-.6-1 0 0-.1-.1-.2-.1-.2 0-.2.1-.2.1-.1.3-.3.7-.6 1-.3-.3-.5-.7-.6-1 0 0-.1-.1-.2-.1-.2 0-.2.1-.2.1-.3.9-1.2 2-2.3 2.1l-.5.7h1.6 1.1 1.6.8.8.8 2.9 1.2 1.6l-.7-.9" fill="#83bf4f"/><path d="m32 23c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9m0 16.5c-4.1 0-7.5-3.4-7.5-7.5s3.4-7.5 7.5-7.5 7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5" fill="#dbb471"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f1.svg
index a253eca..c150ee5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f1.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C18.939,2,7.833,10.349,3.713,22h56.572C56.166,10.349,45.061,2,32,2z"/><path fill="#428bc1" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.12 11.65 15.226 20 28.29 20"/><path fill="#fff" d="M3.713,22C2.607,25.128,2,28.492,2,32c0,3.508,0.607,6.872,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- c0-3.508-0.607-6.871-1.715-10H3.713z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.3,3.7,22h56.6C56.2,10.3,45.1,2,32,2z" fill="#ed4c5c"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#428bc1"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f4.svg
index 54b0174..85182d9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.721 28c-.138-1.016-.315-2.02-.55-3h-58.34c-.235.981-.413 1.984-.55 3h59.44"/><path d="m2.279 36c.137 1.016.315 2.02.55 3h58.34c.234-.982.412-1.984.55-3h-59.44"/><path d="m20 4.489c-1.03.45-2.034.952-3 1.513v51.997c.966.561 1.97 1.063 3 1.512v-55.02"/><path d="m28 2.262v59.47c.987.133 1.985.23 3 .264v-60c-1.015.033-2.01.13-3 .262"/></g><g fill="#428bc1"><path d="m2 32c0 1.358.099 2.69.273 4h59.45c.175-1.311.274-2.643.274-4 0-1.357-.099-2.69-.273-4h-59.45c-.174 1.309-.273 2.642-.273 4"/><path d="m20 59.5c2.507 1.096 5.192 1.855 8 2.23v-59.45c-2.808.375-5.493 1.135-8 2.23v54.993"/></g><g fill="#ed4c5c"><path d="M17,25V6.023C9.982,10.083,4.766,16.902,2.83,25H17z"/><path d="M17,39.023V58C9.982,53.939,4.766,47.121,2.83,39.023H17z"/><path d="M32,2c-0.335,0-0.667,0.015-1,0.025V25h30.171C58.017,11.809,46.157,2,32,2z"/><path d="m31 39v22.975c.333.009.665.025 1 .025 14.157 0 26.02-9.811 29.17-23h-30.17"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.7 28c-.1-1-.3-2-.5-3h-58.4c-.2 1-.4 2-.5 3h59.4"/><path d="m2.3 36c.1 1 .3 2 .5 3h58.3c.2-1 .4-2 .5-3h-59.3"/><path d="m20 4.5c-1 .4-2 1-3 1.5v52c1 .6 2 1.1 3 1.5v-55"/><path d="m28 2.3v59.5c1 .1 2 .2 3 .3v-60.1c-1 0-2 .1-3 .3"/></g><g fill="#428bc1"><path d="m2 32c0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4 0-1.4-.1-2.7-.3-4h-59.5c-.2 1.3-.3 2.6-.3 4"/><path d="m20 59.5c2.5 1.1 5.2 1.9 8 2.2v-59.4c-2.8.4-5.5 1.1-8 2.2v55"/></g><g fill="#ed4c5c"><path d="M17,25V6C10,10.1,4.8,16.9,2.8,25H17z"/><path d="M17,39v19C10,53.9,4.8,47.1,2.8,39H17z"/><path d="M32,2c-0.3,0-0.7,0-1,0v23h30.2C58,11.8,46.2,2,32,2z"/><path d="m31 39v23c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f5.svg
index 16f2fa1..a1e7545 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f5.svg
@@ -1,4 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M44.46,56.46L20,32h24L18.707,6.706h-2.829V6.7C7.534,12.028,2,21.366,2,32c0,16.568,13.432,30,30,30
- c4.447,0,8.664-0.976,12.46-2.712V56.46z"/><path fill="#f9f9f9" d="M32,2c-4.448,0-8.664,0.979-12.46,2.716v4.85l21.01,21.01H19.54v3.165l23.554,23.554h5.015
- C56.456,51.968,62,42.636,62,32C62,15.432,48.568,2,32,2z"/><path fill="#428bc1" d="M19.54,4.712c-1.271,0.581-2.494,1.248-3.662,1.994L39.172,30h-24L44.46,59.288
- c1.271-0.581,2.494-1.248,3.662-1.994L24.828,34h24L19.54,4.712z"/><g fill="#fff"><path d="m19.553 21.802c.276-.543.447-1.151.447-1.802 0-2.209-1.791-4-4-4s-4 1.791-4 4c0 .651.171 1.259.447 1.802-1.945-.758-3.447-1.802-3.447-1.802s1.5 6 7 6c5.624 0 6.999-6 6.999-6s-1.502 1.045-3.447 1.802"/><path d="m16 39.563l1.608-1.563.611 2.16 2.173-.553-.55 2.174 2.158.609-1.564 1.61 1.564 1.608-2.158.612.55 2.17-2.173-.547-.611 2.157-1.608-1.56-1.608 1.56-.612-2.157-2.173.547.551-2.17-2.158-.612 1.563-1.608-1.563-1.61 2.158-.609-.551-2.174 2.173.553.612-2.16z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M44.5,56.5L20,32h24L18.7,6.7h-2.8v0C7.5,12,2,21.4,2,32c0,16.6,13.4,30,30,30c4.4,0,8.7-1,12.5-2.7V56.5z" fill="#ed4c5c"/><path d="M32,2c-4.4,0-8.7,1-12.5,2.7v4.8l21,21h-21v3.2l23.6,23.6h5C56.5,52,62,42.6,62,32C62,15.4,48.6,2,32,2z" fill="#f9f9f9"/><path d="M19.5,4.7c-1.3,0.6-2.5,1.2-3.7,2L39.2,30h-24l29.3,29.3c1.3-0.6,2.5-1.2,3.7-2L24.8,34h24L19.5,4.7z" fill="#428bc1"/><g fill="#fff"><path d="m19.6 21.8c.3-.5.4-1.2.4-1.8 0-2.2-1.8-4-4-4s-4 1.8-4 4c0 .7.2 1.3.4 1.8-1.9-.8-3.4-1.8-3.4-1.8s1.5 6 7 6c5.6 0 7-6 7-6s-1.5 1-3.4 1.8"/><path d="m16 39.6l1.6-1.6.6 2.2 2.2-.6-.6 2.2 2.2.6-1.6 1.6 1.6 1.6-2.2.6.6 2.2-2.2-.6-.6 2.2-1.6-1.6-1.6 1.6-.6-2.2-2.2.6.6-2.2-2.2-.6 1.6-1.6-1.6-1.6 2.2-.6-.6-2.2 2.2.6.6-2.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f7.svg
index c015d3a..eba9292 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2C16.789,2,4.23,13.324,2.273,28h59.453C59.77,13.324,47.211,2,32,2z"/><path d="M32,62c15.211,0,27.77-11.324,29.727-26H2.273C4.23,50.676,16.789,62,32,62z"/></g><path fill="#ffe62e" d="m61.727 28h-59.45c-.174 1.31-.273 2.643-.273 4s.099 2.69.273 4h59.45c.175-1.31.274-2.643.274-4s-.099-2.69-.273-4"/><path fill="#fff" d="m16 41.18l1.193-2.18.27 2.467 1.935-1.555-.696 2.388 2.388-.698-1.558 1.935 2.468.27-2.178 1.193 2.178 1.19-2.468.27 1.558 1.94-2.388-.698.696 2.388-1.935-1.558-.27 2.468-1.193-2.177-1.193 2.177-.27-2.468-1.935 1.558.696-2.388-2.383.698 1.554-1.94-2.469-.27 2.178-1.19-2.178-1.193 2.469-.27-1.554-1.935 2.383.698-.696-2.388 1.935 1.555.27-2.467z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2C16.8,2,4.2,13.3,2.3,28h59.5C59.8,13.3,47.2,2,32,2z"/><path d="M32,62c15.2,0,27.8-11.3,29.7-26H2.3C4.2,50.7,16.8,62,32,62z"/></g><path d="m61.7 28h-59.4c-.2 1.3-.3 2.6-.3 4 0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4s-.2-2.7-.4-4" fill="#ffe62e"/><path fill="#fff" d="m16 41.2l1.2-2.2.3 2.5 1.9-1.6-.7 2.4 2.4-.7-1.6 1.9 2.5.3-2.2 1.2 2.2 1.2-2.5.3 1.6 1.9-2.4-.7.7 2.4-1.9-1.6-.3 2.5-1.2-2.2-1.2 2.2-.3-2.5-1.9 1.6.7-2.4-2.4.7 1.6-1.9-2.5-.3 2.2-1.2-2.2-1.2 2.5-.3-1.6-1.9 2.4.7-.7-2.4 1.9 1.6.3-2.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1fa.svg
index 57ee188..f4b61fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m42.33 3.826c-1.355-.497-2.758-.898-4.196-1.197l-20.294 10.146h-6.123v-1.046l19.434-9.717c-1.11.031-2.204.123-3.282.271l-16.15 8.08v-.463c-.342.314-.677.636-1 .965-.5.504-.982 1.024-1.445 1.562v.53.889c.53.386.996.853 1.382 1.382h2.292 10.953 18.435v-2.449h-13.538l13.538-6.769v-2.181"/><path d="m21.16 22.571h-8.214-2.292c-.386.529-.852.996-1.382 1.382v.001 2.257 11.05h2.449v-9.83l19.66 9.83h10.953l-24.49-12.245h8.214l16.276 8.138v-1.369l-13.538-6.769h13.538v-2.449h-18.435-2.739z"/></g><g fill="#ed4c5c"><path d="m8.474 13.352c.007.003.013.007.02.01.271.143.529.303.774.481v-.889-.53c-.255.296-.504.599-.748.904l-.046.024"/><path d="m17.84 25.02l24.49 12.25v-4.11l-16.28-8.14z"/><path d="m38.13 2.629c-1.98-.412-4.03-.629-6.134-.629-.283 0-.566.005-.849.013l-19.434 9.717v1.046h6.123l20.294-10.147"/><path d="m23.895 15.225h-10.953-2.292c.201.276.38.57.535.879.421.841.66 1.789.66 2.795 0 1-.238 1.953-.66 2.794-.155.309-.333.603-.535.879h2.292 8.214 2.739 18.435v-3.673-3.674h-18.435m5.288 7l-2.159-1.569-2.159 1.569.825-2.539-1.086-.788-1.074-.78h2.67l.824-2.538.824 2.538h2.67l-1.074.78-1.086.788.825 2.539"/><path d="m9.268 23.954v-.001z"/><path d="m6.877 25.02c-.414.086-.843.132-1.283.132-.439 0-.869-.046-1.283-.132-.482-.101-.944-.258-1.379-.463-.11.431-.21.865-.301 1.303-.413 1.983-.631 4.04-.631 6.144 0 1.797.158 3.556.461 5.266h3.133 3.673v-11.05-2.257-.001c-.701.511-1.511.879-2.39 1.063m.877 9.454l-2.159-1.568-2.159 1.568.825-2.538-2.159-1.569h2.668l.825-2.538.825 2.538h2.669l-2.159 1.569.824 2.538"/></g><g fill="#2872a0"><path d="m28.792 12.775h13.538v-6.765z"/><path d="m11.717 9.897v.463l16.15-8.08c-6.185.853-11.768 3.589-16.15 7.613"/><path d="m11.717 37.27h19.66l-19.66-9.834z"/><path d="m42.33 31.789v-6.769h-13.538z"/><path d="m11.537 16.967v.001l.002-.001z"/><path d="m11.537 16.968l-2.657 1.93-1.015.737.155.475 1.249 3.843c.53-.386.996-.853 1.382-1.382.201-.276.38-.57.535-.879.421-.841.66-1.789.66-2.794-.002-.674-.111-1.322-.309-1.93"/><path d="m10.65 15.225c-.386-.529-.852-.996-1.382-1.382-.245-.179-.504-.339-.774-.481-.654.823-1.266 1.682-1.832 2.572l.336 1.033h2.459 2.08c-.097-.298-.213-.587-.352-.863-.155-.309-.334-.603-.535-.879"/><path d="m3.418 22.866c-.151.474-.292.953-.419 1.437-.022.083-.045.166-.066.25.435.205.897.362 1.379.463.414.086.843.132 1.283.132.44 0 .869-.046 1.283-.132.879-.184 1.689-.552 2.39-1.063l-3.673-2.668-2.177 1.581"/></g><g fill="#ffce31"><path d="m44.4 4.676c-.678-.308-1.369-.592-2.072-.85v2.181 6.769 2.449 3.674 3.673 2.449 6.769 1.369 4.107h-10.953-19.66-2.449-3.673-3.134c.566 3.198 1.64 6.222 3.133 8.984.613 1.133 1.297 2.221 2.045 3.26 5.447 7.564 14.329 12.49 24.361 12.49 16.569 0 30-13.432 30-30 0-12.146-7.217-22.605-17.598-27.324"/><path d="m9.268 23.953l-1.248-3.843-.154-.475 1.015-.737 2.658-1.932h-2.082-2.459l-.336-1.033c-.216.34-.425.685-.627 1.033-.15.259-.297.52-.44.783-.163.301-.319.605-.471.912-.039.079-.079.157-.117.236-.062.127-.123.257-.183.385-.168.359-.332.722-.486 1.089-.342.813-.649 1.646-.919 2.494l2.176-1.581 3.673 2.669"/><path d="m25.689 19.687l-.825 2.543 2.156-1.574 2.16 1.574-.823-2.543 1.086-.789 1.075-.778h-2.67l-.828-2.54-.82 2.54h-2.671l1.075.778z"/><path d="m3.436 34.47l2.159-1.569 2.159 1.569-.825-2.538 2.161-1.57h-2.671l-.824-2.538-.825 2.538h-2.669l2.159 1.57z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m42.3 3.8c-1.4-.5-2.8-.9-4.2-1.2l-20.3 10.2h-6.1v-1l19.5-9.8c-1.1 0-2.2.1-3.3.3l-16.2 8.1v-.5c-.3.3-.7.6-1 1-.5.5-1 1-1.4 1.6v.5.9c.5.4 1 .9 1.4 1.4h2.3 11 18.4v-2.4h-13.6l13.5-6.9v-2.2"/><path d="m21.2 22.6h-8.2-2.3c-.4.5-.9 1-1.4 1.4v2.3 11.1h2.4v-9.8l19.7 9.8h11l-24.6-12.4h8.2l16.3 8.1v-1.4l-13.5-6.7h13.5v-2.4h-18.4-2.7"/></g><g fill="#ed4c5c"><path d="m8.5 13.4c0 0 0 0 0 0 .3.2.5.3.8.5v-.9-.5c-.3.2-.5.5-.8.9"/><path d="m17.8 25l24.5 12.3v-4.1l-16.2-8.2z"/><path d="m38.1 2.6c-2-.4-4-.6-6.1-.6-.3 0-.6 0-.8 0l-19.4 9.7v1h6.1l20.2-10.1"/><path d="m23.9 15.2h-11-2.3c.2.3.4.6.5.9.4.8.7 1.8.7 2.8 0 1-.2 2-.7 2.8-.2.3-.3.6-.5.9h2.3 8.2 2.7 18.4v-3.7-3.7h-18.3m5.3 7l-2.2-1.5-2.2 1.6.8-2.5-1.1-.8-1.1-.8h2.7l.8-2.5.8 2.5h2.7l-1.1.8-1.1.8 1 2.4"/><path d="m6.9 25c-.4.1-.8.1-1.3.1-.4 0-.9 0-1.3-.1-.5-.1-.9-.3-1.4-.5-.1.4-.2.9-.3 1.3-.4 2-.6 4-.6 6.1 0 1.8.2 3.6.5 5.3h3.1 3.7v-11-2.2c-.7.5-1.5.8-2.4 1m.9 9.5l-2.2-1.6-2.2 1.6.8-2.5-2.2-1.6h2.7l.8-2.5.8 2.5h2.7l-2.2 1.6 1 2.5"/></g><g fill="#2872a0"><path d="m28.8 12.8h13.5v-6.8z"/><path d="m11.7 9.9v.5l16.2-8.1c-6.2.8-11.8 3.6-16.2 7.6"/><path d="m11.7 37.3h19.7l-19.7-9.9z"/><path d="m42.3 31.8v-6.8h-13.5z"/><path d="m11.5 17l-2.7 1.9-1 .7.2.5 1.3 3.9c.5-.4 1-.9 1.4-1.4.2-.3.4-.6.5-.9.4-.8.7-1.8.7-2.8-.1-.7-.2-1.3-.4-1.9"/><path d="m10.6 15.2c-.4-.5-.9-1-1.4-1.4-.2-.2-.5-.3-.8-.5-.7.8-1.3 1.7-1.8 2.6l.4 1.1h2.5 2.1c-.1-.3-.2-.6-.4-.9-.2-.3-.3-.6-.6-.9"/><path d="m3.4 22.9c-.2.5-.3 1-.4 1.4 0 .1 0 .2-.1.2.4.2.9.4 1.4.5.4.1.8.1 1.3.1s.9 0 1.3-.1c.9-.2 1.7-.6 2.4-1.1l-3.7-2.7-2.2 1.7"/></g><g fill="#ffce31"><path d="m44.4 4.7c-.7-.3-1.4-.6-2.1-.8v2.1 6.8 2.4 3.7 3.7 2.4 6.8 1.4 4.1h-11-19.6-2.4-3.7-3.1c.6 3.2 1.6 6.2 3.1 9 .6 1.1 1.3 2.2 2 3.3 5.5 7.5 14.4 12.4 24.4 12.4 16.6 0 30-13.4 30-30 0-12.1-7.2-22.6-17.6-27.3"/><path d="m9.3 24l-1.3-3.9-.2-.5 1-.7 2.7-1.9h-2-2.5l-.3-1c-.2.3-.4.7-.6 1-.2.3-.3.5-.4.8-.2.3-.3.6-.5.9 0 .1-.1.2-.1.2-.1.1-.1.3-.2.4-.2.4-.3.7-.5 1.1-.4.8-.7 1.6-1 2.5l2.2-1.6 3.7 2.7"/><path d="m25.7 19.7l-.8 2.5 2.1-1.5 2.2 1.5-.8-2.5 1-.8 1.1-.8h-2.7l-.8-2.5-.8 2.5h-2.7l1.1.8z"/><path d="m3.4 34.5l2.2-1.6 2.2 1.6-.9-2.6 2.2-1.5h-2.7l-.8-2.6-.8 2.6h-2.7l2.2 1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ff.svg
index 5b1cb80..688b145 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M32,2v10H12v20H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><g fill="#fff"><path d="M14,8C6.714,13.473,2,22.186,2,32h12V8z"/><path d="M8,14h24V2C22.186,2,13.473,6.714,8,14z"/><path d="M9.831,11.789L26,32h6v-7.5L17.15,5.938C14.412,7.5,11.941,9.476,9.831,11.789z"/></g><g fill="#ed4c5c"><path d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><path d="m32 27.06l-13-16.06h-6l17 21h2z"/></g><path fill="#fff" d="m37.13 32l1.01-2.926-2.721-1.914h3.393l.976-2.816 1 2.816h3.378l-2.72 1.914 1.01 2.926-2.664-1.796-2.664 1.796"/><path fill="#ed4c5c" d="m39.798 29.521l1.592 1.075-.601-1.747 1.591-1.116h-1.97l-.612-1.713-.598 1.713h-1.98l1.588 1.116-.608 1.747z"/><path fill="#fff" d="m54.634 32l1.01-2.926-2.721-1.914h3.393l.976-2.816 1 2.816h3.378l-2.72 1.914 1.01 2.926-2.664-1.796-2.664 1.796"/><path fill="#ed4c5c" d="m57.3 29.521l1.593 1.075-.603-1.747 1.585-1.116h-1.965l-.61-1.713-.597 1.713h-1.982l1.589 1.116-.605 1.747z"/><path fill="#fff" d="m45.884 21.656l1.01-2.926-2.721-1.914h3.393l.975-2.816 1 2.816h3.378l-2.72 1.914 1.01 2.926-2.664-1.796-2.664 1.796"/><path fill="#ed4c5c" d="m48.548 19.18l1.592 1.072-.6-1.747 1.59-1.116h-1.97l-.612-1.716-.595 1.716h-1.982l1.587 1.116-.603 1.747z"/><path fill="#fff" d="m45.05 48.656l1.326-3.846-3.575-2.516h4.459l1.281-3.701 1.319 3.701h4.44l-3.573 2.516 1.324 3.846-3.501-2.361-3.5 2.361"/><path fill="#ed4c5c" d="m48.548 45.4l2.095 1.411-.791-2.297 2.084-1.464h-2.586l-.802-2.257-.782 2.257h-2.606l2.09 1.464-.8 2.297z"/><path fill="#fff" d="m12.563 11h12.188v3h-12.188z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2v10H12v20H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><g fill="#fff"><path d="M14,8C6.7,13.5,2,22.2,2,32h12V8z"/><path d="M8,14h24V2C22.2,2,13.5,6.7,8,14z"/><path d="M9.8,11.8L26,32h6v-7.5L17.1,5.9C14.4,7.5,11.9,9.5,9.8,11.8z"/></g><g fill="#ed4c5c"><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z"/><path d="m32 27.1l-13-16.1h-6l17 21h2z"/></g><path d="m37.1 32l1-2.9-2.7-1.9h3.4l1-2.8 1 2.8h3.4l-2.7 1.9 1 2.9-2.7-1.8-2.7 1.8" fill="#fff"/><path fill="#ed4c5c" d="m39.8 29.5l1.6 1.1-.6-1.8 1.6-1.1h-2l-.6-1.7-.6 1.7h-2l1.6 1.1-.6 1.8z"/><path d="m54.6 32l1-2.9-2.7-1.9h3.4l1-2.8 1 2.8h3.4l-2.7 1.9 1 2.9-2.7-1.8-2.7 1.8" fill="#fff"/><path fill="#ed4c5c" d="m57.3 29.5l1.6 1.1-.6-1.8 1.6-1.1h-2l-.6-1.7-.6 1.7h-2l1.6 1.1-.6 1.8z"/><path d="m45.9 21.7l1-2.9-2.7-1.9h3.4l1-2.8 1 2.8h3.4l-2.7 1.9 1 2.9-2.7-1.8-2.7 1.8" fill="#fff"/><path fill="#ed4c5c" d="m48.5 19.2l1.6 1.1-.6-1.8 1.6-1.1h-1.9l-.7-1.7-.5 1.7h-2l1.6 1.1-.6 1.8z"/><path d="m45 48.7l1.3-3.8-3.6-2.5h4.5l1.3-3.7 1.3 3.7h4.4l-3.6 2.5 1.3 3.8-3.5-2.4-3.4 2.4" fill="#fff"/><path fill="#ed4c5c" d="m48.5 45.4l2.1 1.4-.7-2.3 2-1.5h-2.5l-.9-2.2-.7 2.2h-2.6l2 1.5-.7 2.3z"/><path fill="#fff" d="m12.6 11h12.2v3h-12.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f3.svg
new file mode 100644
index 0000000..a32f055
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m20.2 17.5h6.4l11.5 20.2v-20.2h5.6v29h-6.1l-11.7-20.6v20.6h-5.6l-.1-29" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f4-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f4-1f1f2.svg
index 372a37c..3a23ddc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f4-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f4-1f1f2.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M32,2c-3.51,0-6.87,0.62-10,1.729V22h38.286C56.167,10.35,45.061,2,32,2z"/><path fill="#ed4c5c" d="M60.286,22H22V3.714C10.35,7.833,2,18.939,2,32s8.35,24.167,20,28.286V42h38.286
- C61.393,38.871,62,35.508,62,32S61.393,25.129,60.286,22z"/><path fill="#699635" d="M22,42v18.271C25.13,61.38,28.49,62,32,62c13.061,0,24.167-8.35,28.286-20H22z"/><path fill="#fff" d="m19.14 22.376l-.246.096-1.583-1.392-1.79-1.953c.051-.245.053-.685.045-1.028l.259-.315h.281c.122.212.348.357.609.357.263 0 .488-.146.61-.357h.399v.455h2.744v-1.506h-2.744v.454h-.353c-.086-.226-.283-.395-.525-.441l.063-.061 2.16-4.543-.247-.126-3.095 4.204.176.235-.176.372-.458.021-.14-.188.422.024v-.269l-.282-.117v-.568l.352-.013.106-.346-.81-.23v-1.965l.563-.733-.983-.678-.984.679.563.733v1.965l-.81.23.106.346.352.013v.568l-.282.117v.269l.422-.024-.14.188-.458-.021-.176-.372.176-.235-3.096-4.204-.247.126 2.16 4.543.063.061c-.242.047-.439.216-.525.441h-.353v-.454h-2.743v1.506h2.744v-.455h.399c.122.212.347.357.61.357.262 0 .488-.146.609-.357h.281l.294.358v.242h-.36l-.132.314-2.428.22-.105-.157c0 0-1.309.173-1.548.502-.046.063-.043.248 0 .313.226.345 1.513.652 1.513.652l.036-.15c0 0 .935.2 1.858.334l-.611.668-1.583 1.392-.246-.096-1.438 1.43.052.193 1.63-.452 1.149-.771-.199-.056 2.551-2.19c.079-.001.151-.005.213-.013.294-.036.87-.24 1.112-.429l.344.335 2.674 2.297-.199.056 1.149.771 1.63.452.054-.194-1.438-1.43"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-3.5,0-6.9,0.6-10,1.7V22h38.3C56.2,10.4,45.1,2,32,2z" fill="#f9f9f9"/><path d="M60.3,22H22V3.7C10.4,7.8,2,18.9,2,32s8.4,24.2,20,28.3V42h38.3c1.1-3.1,1.7-6.5,1.7-10S61.4,25.1,60.3,22z" fill="#ed4c5c"/><path d="M22,42v18.3c3.1,1.1,6.5,1.7,10,1.7c13.1,0,24.2-8.3,28.3-20H22z" fill="#699635"/><path d="m19.1 22.4l-.2.1-1.6-1.4-1.8-2c.1-.2.1-.7 0-1l.3-.3h.3c.1.2.3.4.6.4.3 0 .5-.1.6-.4h.4v.5h2.7v-1.5h-2.7v.5h-.4c-.1-.2-.3-.4-.5-.4l.1-.1 2.2-4.5-.3-.3-3.1 4.2.2.2-.2.4h-.5l-.1-.2h.4v-.3l-.3-.1v-.6h.4l.1-.3-.8-.2v-2l.6-.7-1-.7-1 .7.6.7v2l-.8.2.1.3h.4v.6l-.3.1v.3h.4l-.1.2h-.5l-.2-.4.2-.2-3.1-4.2-.2.1 2.2 4.5.1.1c-.2 0-.4.2-.5.4h-.4v-.5h-2.9v1.5h2.7v-.5h.4c.1.2.3.4.6.4.3 0 .5-.1.6-.4h.3l.3.4v.2h-.4v.5l-2.4.2-.1-.2c0 0-1.3.2-1.5.5 0 .1 0 .2 0 .3.2.3 1.5.7 1.5.7v-.1c0 0 .9.2 1.9.3l-.6.7-1.6 1.4-.2-.1-1.4 1.4-.1.2 1.6-.5 1.1-.8-.2-.1 2.6-2.2c.1 0 .2 0 .2 0 .3 0 .9-.2 1.1-.4l.3.3 2.7 2.3-.2.1 1.1.8 1.6.5.1-.2-1.4-1.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f4.svg
new file mode 100644
index 0000000..079e2b1
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m41.5 44c-2.2 2.3-5.4 3.4-9.5 3.4s-7.3-1.1-9.5-3.4c-2.9-2.8-4.4-6.8-4.4-12 0-5.3 1.5-9.3 4.4-12 2.2-2.3 5.4-3.4 9.5-3.4s7.3 1.1 9.5 3.4c2.9 2.7 4.4 6.7 4.4 12 0 5.2-1.5 9.2-4.4 12m-3.8-4.4c1.4-1.8 2.1-4.3 2.1-7.6 0-3.3-.7-5.8-2.1-7.5s-3.3-2.7-5.7-2.7-4.3.9-5.7 2.7-2.1 4.3-2.1 7.6c0 3.3.7 5.8 2.1 7.6s3.3 2.7 5.7 2.7 4.3-1.1 5.7-2.8" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1e6.svg
index 0904815..cbeb303 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 2v30h30c0-16.568-13.432-30-30-30"/><path fill="#2a5f9e" d="M32,62V32H2C2,48.568,15.432,62,32,62z"/><g fill="#f9f9f9"><path d="m32 62v-30h30c0 16.568-13.432 30-30 30"/><path d="M32,2v30H2C2,15.432,15.432,2,32,2z"/></g><path fill="#2a5f9e" d="m17 20.654l3.09 2.346-1.166-3.81 3.076-2.44h-3.81l-1.19-3.75-1.153 3.75h-3.847l3.08 2.44-1.17 3.81z"/><path fill="#ed4c5c" d="m47 46.654l3.09 2.346-1.166-3.81 3.076-2.44h-3.81l-1.19-3.75-1.153 3.75h-3.847l3.08 2.44-1.17 3.81z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2v30h30c0-16.6-13.4-30-30-30" fill="#ed4c5c"/><path d="M32,62V32H2C2,48.6,15.4,62,32,62z" fill="#2a5f9e"/><g fill="#f9f9f9"><path d="m32 62v-30h30c0 16.6-13.4 30-30 30"/><path d="M32,2v30H2C2,15.4,15.4,2,32,2z"/></g><path fill="#2a5f9e" d="m17 20.7l3.1 2.3-1.2-3.8 3.1-2.4h-3.8l-1.2-3.8-1.2 3.8h-3.8l3.1 2.4-1.2 3.8z"/><path fill="#ed4c5c" d="m47 46.7l3.1 2.3-1.2-3.8 3.1-2.4h-3.8l-1.2-3.8-1.2 3.8h-3.8l3.1 2.4-1.2 3.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ea.svg
index 5a8c035..dab27b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ea.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/></g><path fill="#f9f9f9" d="M42,3.714C38.871,2.607,35.508,2,32,2s-6.871,0.607-10,1.714v56.572C25.129,61.393,28.492,62,32,62
- s6.871-0.607,10-1.714V3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z"/></g><path d="M42,3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7v56.6c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1eb.svg
index 2f94fef..d68516d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1eb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,5.885,1.701,11.368,4.627,16h50.744C60.299,43.368,62,37.885,62,32s-1.701-11.368-4.629-16H6.627
- C3.701,20.632,2,26.115,2,32z"/><g fill="#ed4c5c"><path d="M57.371,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.627,16H57.371z"/><path d="M6.627,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.371-14H6.627z"/><path d="m30.496 34.556c-1.049 1.642-3.992 1.164-4.648.019v-9.791l-1.486-.009v9.998c.72 3.53 4.954 4.427 6.134-.217"/><path d="m37.756 24.774v9.79c-.656 1.146-3.463 1.633-4.512-.009 1.182 4.645 5.412 3.747 6.135.217v-9.998h-1.623"/></g><g fill="#ffce31"><path d="m28.986 19.879l-.367-.638c-.973.258-1.902.623-2.771 1.083.748 1.453 2.613 5.04 2.613 5.04s.033-5.202.525-5.48"/><path d="m34.986 22.725c0 0-.004 1.969-.004 2.707 1.021-1.728 2.047-3.455 3.072-5.182-.248-.126-.498-.245-.752-.356-.479-.193-.967-.358-1.457-.515-.262-.088-.527-.164-.795-.231-.029-.006-.057-.014-.084-.021-.363 1.199-1.09 3.598-1.09 3.598h1.11"/></g><g fill="#2a5f9e"><path d="m34.545 42.39c-1.143.039-1.914 1.106-2.834 1.027-.922-.078-1.291-1.063-2.617-1.063-.043 0-.082-.003-.123 0-.873.047-2.199.575-2.668.908 0 0 2.133 1.738 5.508 1.738 3.404 0 5.621-1.738 5.621-1.738s-1.744-.911-2.887-.872"/><path d="m34.768 40.954c-1.326.104-1.658-.766-2.873-.73-1.217.034-1.916.73-2.838.765-.92.035-2.1-.869-2.801-.834-.557.027-2.254.67-2.926.933.207.183.422.426.643.595h16.01c.104-.077.205-.156.305-.237-.5-.423-1.648-1.265-2.943-1.29-1.732-.037-1.253.694-2.581.798"/><path d="m40.07 38.14c-1.031.035-1.77 1.01-2.615 1.044-.848.035-1.807-1.01-2.764-.974-.959.035-1.953.974-2.912.974s-1.658-1.01-2.873-1.01c-1.217 0-1.77 1.113-2.691 1.044-.922-.07-1.73-1.113-2.615-1.113-.625 0-1.541.622-2.129.965.158.218.326.496.5.703h20.04c.111-.13.221-.263.326-.396-.277-.505-1.303-1.158-2.264-1.238"/><path d="m31.82 36.36c-1.441.035-2.42 1.426-2.344 1.426h4.688c.037-.035-1.051-1.531-2.344-1.426"/><path d="m40.2 37.25c-.83-.036-.717-.25-1.131-.464-.227.428-1.059.998-1.059.998h5.457c.115-.208.225-.527.33-.741-.352-.314-.793-.631-1.182-.648-.792-.036-1.585.89-2.415.855"/><path d="m24.502 36.785c-.414.214-.301.428-1.131.464-.83.035-1.623-.891-2.416-.855-.27.012-.564.169-.838.368.143.312.295.724.461 1.021h4.98c.001 0-.829-.57-1.056-.998"/><path d="m23.861 34.486c-1.18-.383-2.139.834-2.986.869-.57.023-1.156-.379-1.479-.645.092.36.201.749.322 1.096h4.473c0 .001-.295-.59-.33-1.32"/><path d="m42.766 35.35c-.848-.035-1.807-1.252-2.986-.869-.037.729-.332 1.32-.332 1.32h4.57l.479-1.32c-.001 0-.886.904-1.731.869"/><path d="m30.641 35.807h2.32c0 0 .037-.729-1.178-.729-1.217-.001-1.105.764-1.142.729"/></g><path fill="#ed4c5c" d="m29.424 28.678l4.828 1.217v-6.504c-2.211.105-4.055-3.964-.148-4.241-3.832-.522-4.273.417-4.717 1.425l.037 8.103"/><g fill="#ffce31"><path d="m26.529 29.3v.77l2.049.06z"/><path d="m28.568 29.886l.018-1.113c-.572-.371-1.525-1.279-2.057-1.599v1.722l2.039.99"/><path d="m19.04 30.588c-.025.325-.037.654-.037.986 0 .659.051 1.306.148 1.938l4.361.032v-2.754l-4.472-.202"/><path d="m19.936 26.811c-.381.931-.654 1.915-.805 2.939l4.379.4v-2l-3.574-1.337"/><path d="m21.963 23.46c-.66.788-1.229 1.654-1.682 2.584l3.229 1.479v-2.793l-1.547-1.27"/><path d="m26.529 26.404l2.039 1.865.01-2.044-3.633-5.376c-.84.534-1.613 1.16-2.303 1.864.445.467 1.055 1.106 1.404 1.474h2.482v2.217"/><path d="m45 30.497l-5.05.358v2.69h4.764c0 .001.283-1.264.283-3.048"/><path d="m44.838 29.679c-.205-1.78-.814-3.052-.832-3.092l-4.053 1.619v2.026l4.885-.553"/><path d="m43.631 25.778c-.469-.9-1.043-1.74-1.707-2.502-.656.474-1.313.948-1.971 1.422v2.907c1.227-.609 2.453-1.217 3.678-1.827"/><path d="m34.988 30.19l2.042-.08v-.766z"/><path d="m34.979 28.852l.01.903 2.039-.913v-1.711c-.715.584-2.049 1.721-2.049 1.721"/><path d="m39.658 24.19c0 0 1.189-1.159 1.629-1.59-.748-.743-1.588-1.396-2.502-1.943-1.266 1.857-2.529 3.714-3.795 5.569-.002.719-.004 1.437-.004 2.155.68-.618 1.363-1.234 2.041-1.853v-2.339h2.631z"/></g><g fill="#ed4c5c"><path d="m26.807 35.07h2.193c.875 0 1.279-1.246 1.279-1.246h-2.041c-1.025 0-1.431 1.246-1.431 1.246"/><path d="m35.35 33.823h-2.039c0 0 .402 1.246 1.279 1.246h2.191c0 0-.406-1.246-1.431-1.246"/><path d="m26.295 33.21h10.998v.368h-10.998z"/><path d="m31.1 32.749l.693-.659.693.658.211-.2-.697-.661.697-.657-.211-.21-.545.524v-.823h-.296v.823l-.545-.524-.209.21.693.657-.693.661z"/><path d="m37.29 31.23l-.21-.21-.541.524-.002-.823h-.297v.823l-.543-.524-.211.21.694.657-.694.661.211.201.693-.659.69.658.21-.2-.69-.661z"/><path d="m33.4 32.749l.69-.659.695.658.209-.2-.694-.661.694-.657-.209-.21-.545.524v-.823h-.297v.823l-.543-.524-.21.21.693.657-.693.661z"/><path d="m28.805 32.749l.691-.659.694.658.208-.2-.691-.661.691-.657-.208-.21-.545.524v-.823h-.297v.823l-.543-.524-.211.21.696.657-.696.661z"/><path d="m26.506 32.749l.694-.659.691.658.209-.2-.692-.661.692-.657-.209-.21-.545.524v-.823h-.296v.823l-.544-.524-.211.21.693.657-.693.661z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#f9f9f9"/><g fill="#ed4c5c"><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z"/><path d="m30.5 34.6c-1 1.6-4 1.2-4.6 0v-9.8h-1.5v10c.7 3.5 4.9 4.4 6.1-.2"/><path d="m37.8 24.8v9.8c-.7 1.1-3.5 1.6-4.5 0 1.2 4.6 5.4 3.7 6.1.2v-10c0 0-1.6 0-1.6 0"/></g><g fill="#ffce31"><path d="m29 19.9l-.4-.6c-1 .3-1.9.6-2.8 1.1.7 1.5 2.6 5 2.6 5s.1-5.2.6-5.5"/><path d="m35 22.7c0 0 0 2 0 2.7 1-1.7 2-3.5 3.1-5.2-.2-.1-.5-.2-.8-.4-.5-.2-1-.4-1.5-.5-.3-.1-.5-.2-.8-.2 0 0-.1 0-.1 0-.4 1.2-1.1 3.6-1.1 3.6s1.2 0 1.2 0"/></g><g fill="#2a5f9e"><path d="m34.5 42.4c-1.1 0-1.9 1.1-2.8 1-.9-.1-1.3-1.1-2.6-1.1 0 0-.1 0-.1 0-.9 0-2.2.6-2.7.9 0 0 2.1 1.7 5.5 1.7 3.4 0 5.6-1.7 5.6-1.7s-1.7-.8-2.9-.8"/><path d="m34.8 41c-1.3.1-1.7-.8-2.9-.7-1.2 0-1.9.7-2.8.8-.9 0-2.1-.9-2.8-.8-.6 0-2.3.7-2.9.9.2.2.4.4.6.6h16c.1-.1.2-.2.3-.2-.5-.4-1.6-1.3-2.9-1.3-1.8-.2-1.3.5-2.6.7"/><path d="m40.1 38.1c-1 0-1.8 1-2.6 1-.8 0-1.8-1-2.8-1-1 0-2 1-2.9 1s-1.7-1-2.9-1c-1.2 0-1.8 1.1-2.7 1-.9-.1-1.7-1.1-2.6-1.1-.6 0-1.5.6-2.1 1 .2.2.3.5.5.7h20c.1-.1.2-.3.3-.4-.2-.4-1.3-1.1-2.2-1.2"/><path d="m31.8 36.4c-1.4 0-2.4 1.4-2.3 1.4h4.7c0-.1-1.1-1.5-2.4-1.4"/><path d="m40.2 37.2c-.8 0-.7-.2-1.1-.5-.2.4-1.1 1-1.1 1h5.5c.1-.2.2-.5.3-.7-.4-.3-.8-.6-1.2-.6-.8 0-1.6.9-2.4.8"/><path d="m24.5 36.8c-.4.2-.3.4-1.1.5-.8 0-1.6-.9-2.4-.9-.3 0-.6.2-.8.4.1.3.3.7.5 1h5c-.1 0-1-.6-1.2-1"/><path d="m23.9 34.5c-1.2-.4-2.1.8-3 .9-.6 0-1.2-.4-1.5-.6.1.4.2.7.3 1.1h4.5c0-.1-.3-.7-.3-1.4"/><path d="m42.8 35.4c-.8 0-1.8-1.3-3-.9 0 .7-.3 1.3-.3 1.3h4.5l.5-1.3c0 0-.9.9-1.7.9"/><path d="m30.6 35.8h2.4c0 0 0-.7-1.2-.7-1.2 0-1.1.7-1.2.7"/></g><path d="m29.4 28.7l4.8 1.2v-6.5c-2.2.1-4.1-4-.1-4.2-3.8-.5-4.3.4-4.7 1.4v8.1" fill="#ed4c5c"/><g fill="#ffce31"><path d="m26.5 29.3v.8h2.1z"/><path d="m28.6 29.9v-1.1c-.6-.4-1.5-1.3-2.1-1.6v1.7l2.1 1"/><path d="m19 30.6c0 .3 0 .7 0 1 0 .7.1 1.3.1 1.9h4.4v-2.8l-4.5-.1"/><path d="m19.9 26.8c-.4.9-.7 1.9-.8 2.9l4.4.4v-2l-3.6-1.3"/><path d="m22 23.5c-.7.8-1.2 1.7-1.7 2.6l3.2 1.5v-2.8l-1.5-1.3"/><path d="m26.5 26.4l2 1.9v-2l-3.6-5.4c-.8.5-1.6 1.2-2.3 1.9.4.5 1.1 1.1 1.4 1.5h2.5v2.1"/><path d="m45 30.5l-5 .4v2.7h4.8c-.1-.1.2-1.3.2-3.1"/><path d="m44.8 29.7c-.2-1.8-.8-3.1-.8-3.1l-4 1.6v2l4.8-.5"/><path d="m43.6 25.8c-.5-.9-1-1.7-1.7-2.5-.7.5-1.3.9-2 1.4v2.9c1.3-.6 2.5-1.2 3.7-1.8"/><path d="m35 30.2l2-.1v-.8z"/><path d="m35 28.9v.9l2-.9v-1.7c-.7.5-2 1.7-2 1.7"/><path d="m39.7 24.2c0 0 1.2-1.2 1.6-1.6-.7-.7-1.6-1.4-2.5-1.9-1.3 1.9-2.5 3.7-3.8 5.6 0 .7 0 1.4 0 2.2.7-.6 1.4-1.2 2-1.9v-2.3l2.7-.1"/></g><g fill="#ed4c5c"><path d="m26.8 35.1h2.2c.9 0 1.3-1.2 1.3-1.2h-2c-1.1-.1-1.5 1.2-1.5 1.2"/><path d="m35.3 33.8h-2c0 0 .4 1.2 1.3 1.2h2.2c0 .1-.4-1.2-1.5-1.2"/><path d="m26.3 33.2h11v.4h-11z"/><path d="m31.1 32.7l.7-.6.7.6.2-.2-.7-.6.7-.7-.2-.2-.6.5v-.8h-.3v.8l-.5-.5-.2.2.7.7-.7.6z"/><path d="m37.3 31.2l-.2-.2-.6.5v-.8h-.3v.8l-.5-.5-.2.2.7.7-.7.6.2.2.7-.6.7.6.2-.2-.7-.6z"/><path d="m33.4 32.7l.7-.6.7.6.2-.2-.7-.6.7-.7-.2-.2-.6.5v-.8h-.3v.8l-.5-.5-.2.2.7.7-.7.6z"/><path d="m28.8 32.7l.7-.6.7.6.2-.2-.7-.6.7-.7-.2-.2-.6.5v-.8h-.3v.8l-.5-.5-.2.2.7.7-.7.6z"/><path d="m26.5 32.7l.7-.6.7.6.2-.2-.7-.6.7-.7-.2-.2-.6.5v-.8h-.3v.8l-.5-.5-.2.2.7.7-.7.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ec.svg
index 9faaa2c..094bf89 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m32 62c9.814 0 18.528-4.713 24-11.999l-48-36c-3.767 5.01-5.999 11.246-5.999 18 0 16.569 13.432 30 30 30"/><path fill="#c94747" d="m62 32c0-16.568-13.431-30-30-30-9.814 0-18.527 4.714-24 12l48 36c3.767-5.01 5.999-11.246 5.999-18"/><path fill="#ffce31" d="m53.03 29.71c-.213-2.784-1.14-3.183-1.281-3.607-.144-.43.229.114.543.229.315.115-.057-.601-.143-.916-.086-.314.944.658 1.201.744.258.086-.601-2.346-.857-2.518-.258-.172.257.057.429.114s-1.573-2.661-1.945-2.661.314-.143.515-.143-2-1.774-2.375-1.774.801-.458.916-.486c.2.028-2.547-1.459-5.01.028-.143-.114 1.159-1.016 1.202-1.401.015-.101-.429-.315-.458-.43-.028-.114.687-.457.716-.715-.172-.229-.487-.144-.658-.2-.043-.215.601-.744.544-.973-.043-.129-.516-.172-.63-.086s.3-.602.229-.802c-.057-.085-.286-.028-.515.029-.144-.029.744-1.26.572-1.431-.172-.172-2.575 1.259-3.462 2.861-.888 1.602-.2 2.89-.315 3.433-.114.544-.258 1.088-.629 1.088-.372 0-1.23-.572-1.517-.858s-.344-.486-.744-.601c-.4-.115-1.316.229-1.659.257-.344.029-1.688-.257-1.774-.172-.086.086 1.316.602 1.631.773.315.171.344.4.572.543.229.144 2.375.772 1.688 1.66-.484.625-1.631-.63-3.01-.658-1.373-.029-2.346 1.315-2.746 1.773-.401.458-1.688 2.861-1.66 3.119.029.258.802-.716 1.088-.887.028.343-.315.743-.229.858.086.114 1-.688 1.316-.716.086.229-.172.458-.086.801.114.115.63-.572.973-.715.058.258-.314.744-.114 1.059.144.028 1-.973 1.288-1.087.286-.115-.144.944 0 1.03.257-.172 1.059-1.088 1.315-1.202.258-.114-.028 1.173.086 1.173.315-.229 1.116-1.316 1.202-1.487.086-.172-.086 1.659.801 2.632s2.232 2.089 2.375 2.089c.172-.314-.057-.973.086-.944.4.43 1.145 1.059 1.316 1.059s-.115-.687.114-.687c.458.43 1.774 2.117 4.349 2.89-.171-.486-.543-.915-.572-1.145.172.029.773.315.888.286.114-.028-1.259-1.717-1.173-1.945.314-.028.457.172.572.028-.144-.229-1.346-1.573-1.346-1.889 0-.314.372.058.486 0 .115-.057-.457-1.259-.343-1.401.114-.144 1.373.772 1.688.772.122 0 .162-.168.174-.378.853.697 2.522 2.026 3.665 3.72-.011.363-.064.739-.177 1.122-.858 2.089-2.575 3.204-5.093 2.289.143.229 1.487 1.345 2.946.943 1.23-.337 2.683-1.203 2.99-3.179.326.715.529 1.474.529 2.264 0 3.776-3.376 3.662-4.349 3.548 1.087.916 5.207.744 5.207-3.548.002-1.229-.563-2.46-1.349-3.572m-4.367-4.149c.003-.124.015-.216.053-.23.143-.058 1.202.601 1.431.601s.2-.486.286-.43c.062.042 1.377 1.352 1.779 3.175-1.312-1.505-2.858-2.669-3.549-3.116"/><g fill="#fff"><path d="m19.372 41.24l-.379-1.23-.383 1.23h-1.214l.983.743-.359 1.177.959-.72.993.75-.373-1.212.992-.738z"/><path d="m14.408 26.601l-.727 2.341 1.928-1.433 1.985 1.501-.745-2.423 1.984-1.477h-2.438l-.758-2.463-.766 2.463h-2.43z"/><path d="m8.878 34.72l-.757-2.46-.766 2.46h-2.43l1.968 1.49-.729 2.342 1.929-1.432 1.987 1.5-.748-2.42 1.985-1.48z"/><path d="m24.329 35.513l1.984-1.473h-2.438l-.755-2.467-.768 2.467h-2.43l1.968 1.485-.73 2.343 1.93-1.433 1.98 1.502z"/><path d="m16.395 47.702l-.758-2.462-.766 2.462h-2.43l1.967 1.488-.727 2.34 1.928-1.43 1.985 1.503-.745-2.423 1.984-1.478z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c9.8,0,18.5-4.7,24-12L8,14c-3.8,5-6,11.2-6,18C2,48.6,15.4,62,32,62z" fill="#3e4347"/><path d="m62 32c0-16.6-13.4-30-30-30-9.8 0-18.5 4.7-24 12l48 36c3.8-5 6-11.2 6-18" fill="#c94747"/><path d="m53 29.7c-.2-2.8-1.1-3.2-1.3-3.6-.1-.4.2.1.5.2.3.1-.1-.6-.1-.9-.1-.3.9.7 1.2.7.3.1-.6-2.3-.9-2.5-.3-.2.3.1.4.1s-1.6-2.7-1.9-2.7.3-.1.5-.1-2-1.8-2.4-1.8.8-.5.9-.5c.2 0-2.5-1.5-5 0-.1-.1 1.2-1 1.2-1.4 0-.1-.4-.3-.5-.4 0-.1.7-.5.7-.7 0-.2-.3-.1-.5-.1 0-.2.6-.7.5-1 0-.1-.5-.2-.6-.1s.3-.6.2-.8c-.1-.1-.3 0-.5 0-.1 0 .7-1.3.6-1.4-.2-.2-2.6 1.3-3.5 2.9-.9 1.6-.2 2.9-.3 3.4-.1.5-.3 1.1-.6 1.1-.4 0-1.2-.6-1.5-.9s-.3-.5-.7-.6c-.4-.1-1.3.2-1.7.3-.3 0-1.7-.3-1.8-.2-.1.1 1.3.6 1.6.8.3.2.3.4.6.5.2.1 2.4.8 1.7 1.7-.5.6-1.6-.6-3-.7-1.4 0-2.3 1.3-2.7 1.8-.4.5-1.7 2.9-1.7 3.1 0 .3.8-.7 1.1-.9 0 .3-.3.7-.2.9.1.1 1-.7 1.3-.7.1.2-.2.5-.1.8.1.1.6-.6 1-.7.1.3-.3.7-.1 1.1.1 0 1-1 1.3-1.1.3-.1-.1.9 0 1 .3-.2 1.1-1.1 1.3-1.2.3-.1 0 1.2.1 1.2.3-.2 1.1-1.3 1.2-1.5.1-.2-.1 1.7.8 2.6s2.2 2.1 2.4 2.1c.2-.3-.1-1 .1-.9.4.4 1.1 1.1 1.3 1.1s-.1-.7.1-.7c.5.4 1.8 2.1 4.3 2.9-.2-.5-.5-.9-.6-1.1.2 0 .8.3.9.3.1 0-1.3-1.7-1.2-1.9.3 0 .5.2.6 0-.1-.2-1.3-1.6-1.3-1.9 0-.3.4.1.5 0 .1-.1-.5-1.3-.3-1.4.1-.1 1.4.8 1.7.8.1 0 .2-.2.2-.4.9.7 2.5 2 3.7 3.7 0 .4-.1.7-.2 1.1-.9 2.1-2.6 3.2-5.1 2.3.1.2 1.5 1.3 2.9.9 1.2-.3 2.7-1.2 3-3.2.3.7.5 1.5.5 2.3 0 3.8-3.4 3.7-4.3 3.5 1.1.9 5.2.7 5.2-3.5-.1-1.3-.7-2.6-1.5-3.7m-4.3-4.1c0-.1 0-.2.1-.2.1-.1 1.2.6 1.4.6s.2-.5.3-.4c.1 0 1.4 1.4 1.8 3.2-1.4-1.6-2.9-2.8-3.6-3.2" fill="#ffce31"/><g fill="#fff"><path d="m19.4 41.2l-.4-1.2-.4 1.2h-1.2l1 .8-.4 1.2 1-.8 1 .8-.4-1.2 1-.8z"/><path d="m14.4 26.6l-.7 2.3 1.9-1.4 2 1.5-.8-2.4 2-1.5h-2.4l-.8-2.5-.7 2.5h-2.5z"/><path d="m8.9 34.7l-.8-2.4-.7 2.4h-2.5l2 1.5-.7 2.4 1.9-1.5 2 1.5-.8-2.4 2-1.5z"/><path d="m24.3 35.5l2-1.5h-2.4l-.8-2.4-.7 2.4h-2.5l2 1.5-.7 2.4 1.9-1.5 2 1.5z"/><path d="m16.4 47.7l-.8-2.5-.7 2.5h-2.5l2 1.5-.7 2.3 1.9-1.4 2 1.5-.8-2.4 2-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ed.svg
index 4deb7ef..57ebde4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1ed.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M33,32L11.299,53.701C16.683,58.838,23.97,62,32,62c16.568,0,30-13.432,30-30H33z"/><path fill="#428bc1" d="M62,32C62,15.432,48.568,2,32,2c-8.03,0-15.317,3.161-20.701,8.299L33,32H62z"/><path fill="#f9f9f9" d="M11.299,10.299C5.573,15.762,2,23.461,2,32c0,8.539,3.573,16.238,9.299,21.701L33,32L11.299,10.299z"/><g fill="#ffce31"><path d="m12.992 13.61l-.762 1.42 1.096 1.07-1.548-.215-.738 1.428-.198-1.553-1.553-.196 1.428-.74-.219-1.548 1.077 1.095z"/><path d="m13.231 48l-1.101 1.17.779 1.33-1.439-.617-1.084 1.187.213-1.55-1.45-.59 1.571-.346.189-1.554.757 1.34z"/><path d="m30.499 32l-1.54.464.013 1.536-.942-1.25-1.531.49.96-1.24-.96-1.236 1.531.486.942-1.25-.013 1.537z"/><path d="m23.69 30.481l-.596-.433-6.548 1.425.06-.049 6.133-1.634-.711-.517-5.233 1.993 4.316-3.605-.086-.883-4.459 4.575-.072.027 4.489-5.05-.072-.74-.73.058-4.113 5.367.014-.078 3.665-5.257-.873.07-2.747 4.942 1.024-5.58-.625-.62-.52 6.416-.037.069.246-6.796-.524-.521-.524.52.246 6.796-.037-.068-.521-6.416-.624.62 1.024 5.581-2.748-4.943-.871-.069 3.663 5.256.014.076-4.113-5.365-.731-.059-.072.741 4.489 5.04-.07-.026-4.461-4.576-.086.883 4.317 3.605-5.233-1.993-.711.517 6.133 1.634.059.05-6.548-1.425-.596.433.414.614 6.633.933-.073.027-6.313-.594.494.732 5.589-.056-5.271 1.89-.217.859 5.733-2.75h.076l-5.918 3.181-.184.721.707.201 5.672-3.615-.039.068-5.211 3.664.841.24 4.247-3.691-2.842 4.888.378.799 2.648-5.847.061-.053-2.521 6.3.316.672.667-.309 2.06-6.468.011.078-1.671 6.209.795-.367.917-5.598.918 5.598.795.365-1.672-6.207.012-.078 2.06 6.469.667.309.317-.67-2.521-6.302.061.053 2.648 5.847.378-.799-2.842-4.887 4.247 3.69.84-.24-5.21-3.664-.04-.068 5.672 3.615.708-.201-.184-.721-5.919-3.181h.077l5.733 2.75-.217-.859-5.271-1.89 5.588.055.493-.731-6.312.595-.074-.027 6.634-.934.415-.615m-8.822 1.594l-.051-.005.046-.022.045.005-.04.022m.09-.575l-.036-.037.049.013.031.034-.044-.01m.204 1.074l-.043.03.021-.048.039-.024-.017.042m.23-1.455l-.005-.052.03.042v.044l-.026-.034m.297 1.696l-.013-.052.013-.043.014.042-.014.053m.3-1.694l-.026.034v-.046l.031-.042-.005.054m.228 1.454l-.016-.043.038.024.021.049-.043-.03m.206-1.074l-.045.01.03-.035.052-.013-.037.038m.089.574l-.04-.021.045-.006.047.022-.052.005"/><circle cx="15.69" cy="32" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33,32L11.3,53.7C16.7,58.8,24,62,32,62c16.6,0,30-13.4,30-30H33z" fill="#ed4c5c"/><path d="M62,32C62,15.4,48.6,2,32,2c-8,0-15.3,3.2-20.7,8.3L33,32H62z" fill="#428bc1"/><path d="M11.3,10.3C5.6,15.8,2,23.5,2,32s3.6,16.2,9.3,21.7L33,32L11.3,10.3z" fill="#f9f9f9"/><g fill="#ffce31"><path d="m13 13.6l-.8 1.4 1.1 1.1-1.5-.2-.8 1.4-.2-1.5-1.5-.2 1.4-.8-.2-1.5 1.1 1.1z"/><path d="m13.2 48l-1.1 1.2.8 1.3-1.4-.6-1.1 1.2.2-1.6-1.5-.6 1.6-.3.2-1.6.8 1.4z"/><path d="m30.5 32l-1.5.5v1.5l-1-1.2-1.5.4 1-1.2-1-1.2 1.5.4 1-1.2v1.5z"/><path d="m23.7 30.5l-.6-.5-6.5 1.4h.1l6.1-1.6-.8-.5-5.2 2 4.3-3.6-.1-.9-4.5 4.6h-.1l4.5-5-.1-.7-.7.1-4 5.2v-.1l3.7-5.3-.9.1-2.7 4.9 1-5.6-.6-.6-.6 6.5v.1l.2-6.8-.5-.5-.5.5.2 6.8v-.1l-.5-6.4-.6.6 1 5.6-2.7-4.9-.9-.1 3.7 5.3v.1l-4.1-5.4-.7-.1-.1.7 4.5 5h-.1l-4.5-4.6-.1.9 4.3 3.6-5.2-2-.7.5 6.1 1.6h.1l-6.6-1.3-.6.4.4.6 6.6.9h-.1l-6.3-.6.5.7 5.6-.1-5.2 2.1-.2.9 5.7-2.8h.1l-5.9 3.2-.2.7.7.2 5.7-3.6v.1l-5.2 3.7.8.2 4.2-3.7-2.9 4.9.4.8 2.6-5.8.1-.1-2.5 6.3.3.7.7-.3 2.1-6.5v.1l-1.7 6.2.8-.4.9-5.6.9 5.6.8.4-1.7-6.2v-.1l2.1 6.5.7.3.3-.7-2.5-6.3.1.1 2.6 5.8.4-.8-2.8-4.9 4.2 3.7.8-.2-5.2-3.7v-.1l5.7 3.6.7-.2-.2-.7-5.9-3.2h.1l5.7 2.8-.3-.9-5.3-1.9 5.6.1.5-.7-6.3.6h-.1l6.6-.9.5-.7m-7.2 1.6"/><circle cx="15.7" cy="32" r="4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f0.svg
index 71e7a89..3a8cfd9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M17,58V6C8.036,11.192,2,20.889,2,32S8.036,52.808,17,58z"/><path fill="#699635" d="m32 2c-5.466 0-10.586 1.469-15 4.02v51.953c4.414 2.555 9.534 4.02 15 4.02 16.568 0 30-13.432 30-30s-13.432-30-30-30"/><g fill="#fff"><path d="m38 38.13c-6.074 0-11-4.82-11-10.767 0-2.851 1.14-5.435 2.987-7.36-4.15 2.125-6.987 6.373-6.987 11.275 0 7.03 5.82 12.725 13 12.725s13-5.696 13-12.725c0-.691-.071-1.363-.18-2.024-.915 5.04-5.405 8.876-10.82 8.876"/><path d="m40 19.876l2.472-1.876-.934 3.05 2.462 1.893-3.05.011-.95 3.046-.95-3.046-3.05-.011 2.462-1.893-.934-3.05z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,58V6C8,11.2,2,20.9,2,32S8,52.8,17,58z" fill="#f9f9f9"/><path d="M32,2c-5.5,0-10.6,1.5-15,4v52c4.4,2.6,9.5,4,15,4c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#699635"/><g fill="#fff"><path d="m38 38.1c-6.1 0-11-4.8-11-10.8 0-2.9 1.1-5.4 3-7.4-4.1 2.1-7 6.4-7 11.3 0 7 5.8 12.7 13 12.7s13-5.7 13-12.7c0-.7-.1-1.4-.2-2-.9 5.1-5.4 8.9-10.8 8.9"/><path d="m40 19.9l2.5-1.9-1 3.1 2.5 1.8-3 .1-1 3-1-3-3-.1 2.5-1.8-1-3.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f1.svg
index 7be2ecb..bf78dbb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M32,2c16.568,0,30,13.432,30,30H2C2,15.431,15.432,2,32,2z"/><path fill="#ed4c5c" d="m32 62c-16.568 0-30-13.432-30-30h60c0 16.568-13.432 30-30 30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c16.6,0,30,13.4,30,30H2C2,15.4,15.4,2,32,2z" fill="#f9f9f9"/><path d="m32 62c-16.6 0-30-13.4-30-30h60c0 16.6-13.4 30-30 30" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f2.svg
index 60430a6..517c668 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m25.789 9.307h-.005-.016l-6.878.006-3.51.003-.002-2.192v-.097c-.785.523-1.543 1.083-2.273 1.676-1.716 1.393-3.271 2.974-4.642 4.708l2.763-.002.003 2.129.007 6.04h-7.374c-1.202 3.246-1.862 6.755-1.862 10.421 0 3.512.609 6.881 1.719 10.01h22.04v-20.434h-10.37l-.006-5.974-.003-2.2 3.525-.003 6.859-.006h.016.008l-.003-4.088"/><path fill="#0091c8" d="m32 2c-2.132 0-4.21.226-6.216.648v58.704c2.01.421 4.084.648 6.216.648 16.568 0 30-13.432 30-30 0-16.569-13.432-30-30-30"/><path fill="#ffce31" d="m61.47 32.35c.033-.158.259-.676.512-1.205-.009-.311-.018-.619-.035-.928-.205.363-.39.717-.438.873-.229.648-.357.203-.434-1.551-.063-1.375.009-2.759.199-4.107-.742-3.321-2.032-6.435-3.774-9.24-.411.135-.726.23-.736.208-.017-.008.164-.272.445-.663-.085-.13-.165-.263-.251-.391-.598.752-1.203 1.469-1.314 1.512-.152.063-.903.331-1.653.61l-1.386.496 1.055-.991c.585-.534 1.692-1.564 2.455-2.29l.23-.211c-.083-.114-.162-.232-.246-.346l-1.46 1.371c-1.628 1.526-3.154 2.875-3.384 3.01-.229.14-.458.343-.521.458-.141.254.024.712.292.814.166.063.063.28-.51 1.068-.826 1.144-1.462 2.365-1.958 3.726l-.356.954-.204-.7c-.331-1.119-.584-2.747-.584-3.816 0-.979 0-.979.66-1.92.802-1.145 2.685-3.103 3.729-3.892.42-.318 1.132-.75 1.59-.966 1.017-.471 1.271-.688 1.271-1.043 0-.42-.305-.624-.789-.522-.278.051-1.412-.127-3.345-.521-1.604-.318-2.939-.598-2.952-.598 0-.014.128-.56.306-1.221.204-.775.42-1.322.623-1.539.382-.407.395-.877.014-1.233-.637-.598-1.591-.076-1.45.789l.063.433-.841.089c-.458.051-1.552.28-2.417.521-1.755.484-3.129.56-4.03.242-.28-.102-.522-.191-.535-.191-.025 0-.037.14-.037.318 0 .547.342 1.03.902 1.31l.534.267-.355.09c-.191.05-.764.05-1.285.012s-.941-.038-.941 0c0 .267.623.979 1.03 1.183.891.458 2.748.293 4.809-.432 1.03-.356 2.366-.458 2.276-.178-.05.152-1.844 1.5-4.922 3.701-1.553 1.106-1.794 1.411-1.553 1.946.128.292.089.407-.292 1.043-.827 1.399-1.604 3.802-1.604 5.02 0 .61-.038.661-.878 1.551-1.718 1.807-5.075 6.02-5.801 7.273l-.229.396-.241-.307c-.484-.609-1.502-.268-1.502.51 0 .533.33.84.929.84.331 0 .993.252 2.138.838l1.666.828-.318.342c-.61.662-.737 1.184-.42 1.629.153.203.344.242 1.057.242.764 0 1.018.063 1.896.494.864.434 1.196.701 2.468 2.023 3.751 3.92 4.806 4.875 6.938 6.215.607.275 1.102.455 1.334.516.199-.111.605-.418.979-.832 1.746-2.01 3.122-1.506 6.321.348 1.569.93 2.165 1.107 2.386 1.125l.046-.17c.402-1.783.956-2.426 2.394-2.559.831-1.721 1.501-3.535 1.994-5.42-.758.033-1.676.045-2.254.014l-1.297-.076.076-.395c.114-.609.508-1.322 1.082-1.934.278-.305.533-.559.559-.559.038 0 .445.23.916.521.411.252.86.551 1.288.848.23-1.127.389-2.279.488-3.449-.287-1.037-.474-1.982-.416-2.228m-14.63-18.06c.279-1.17.61-2.302.674-2.302.052 0 1.082.204 2.315.458 2.672.547 2.723.56 2.227.7-.204.063-1.488.419-2.838.801l-2.467.687.089-.344m-10.725 20.907l-.406-.037c-.534-.064-4.326-1.807-4.326-1.998 0-.482 3.626-5.15 5.662-7.3l.763-.801.038.42c.025.242.128.788.216 1.22l.18.776-1.057 3.866-1.07 3.854m3.957 1.971c-.115 0-.789-.342-1.501-.762-.7-.42-1.45-.814-1.666-.891l-.382-.139.954-3.486c.521-1.92.991-3.498 1.03-3.498.051 0 .203.306.355.675.229.533.28.914.28 1.971v1.297h.42.407l.024 1.119c.014.609.141 1.564.281 2.111.255 1.083.206 1.603-.202 1.603m1.641-9.283l-.355 1.208-.866.037c-.482.025-.928-.012-1-.088-.179-.179.014-1.095.33-1.565.331-.496 1.247-.992 1.832-.992.229 0 .42.038.42.089-.001.064-.166.649-.357 1.311m2.379 1.271h-1.158l.077-.355c.051-.191.179-.649.28-1.018l.19-.662.445.344c.255.19.648.598.891.903.242.317.433.622.433.674 0 .063-.522.114-1.158.114m.293-13.875c-.534.14-1.374.381-1.857.521-.483.127-.84.216-.814.178.103-.089 4.224-3.103 4.262-3.103l-.025.152c-.025.089-.166.572-.318 1.068l-.254.916-.994.268m4.859 21.785c-1.057-.75-2.163-2.225-2.773-3.688-.382-.904-.407-1.043-.14-1.043.165 0 .19-.268.19-1.59v-1.59h-.382c-.33 0-.394-.063-.534-.546-.102-.318-.164-1.222-.164-2.251 0-1.882.178-2.67.99-4.49.434-.966.573-.929.586.14.014.737.33 2.2.712 3.332.255.75.294 1.018.191 1.45-.063.279-.178 1.145-.255 1.895-.241 2.429.153 4.744 1.197 6.892.317.625.597 1.285.648 1.451l.088.305-.354-.267m3.232-2.543c-.038.09-.306.902-.611 1.818-.292.904-.585 1.705-.637 1.756-.05.064-.317 0-.597-.141-.42-.215-.521-.344-.661-.902-.152-.623-.152-.674.164-1.221.408-.688 1.01-1.158 1.68-1.324.687-.163.725-.163.662.014m3.548 4.885c-.368-.039-1.246-.205-1.946-.344l-1.298-.268.306-.979c.165-.535.458-1.463.649-2.088.33-1.105.381-1.17.891-1.029.228.064.317.256.496 1.121.151.66.47 1.5.902 2.352l.661 1.311-.661-.076m2.15-2.342c-.33.369-.686.93-.8 1.248-.116.316-.242.621-.293.674-.229.254-1.654-3.053-1.654-3.828 0-.268.471-.115 2.01.609l1.323.637-.586.66"/><g fill="#3e4347"><path d="m56.636 47.588l-.046.17c-.221-.018-.816-.195-2.386-1.125-3.199-1.854-4.575-2.361-6.321-.348-.373.414-.779.721-.979.832-.232-.061-.727-.24-1.334-.516-.23-.104-.474-.219-.729-.35-1.921-.994-3.314-1.297-4.388-.953-.656.209-1.161.648-1.49 1.287-.234.432-.429.67-.577.709-.524.139-2.182-.908-2.806-1.301-2.276-1.438-3.735-1.467-5.784-.121-.446.297-.801.525-.968.549-.144.02-.467-.088-.935-.25-.529-.191-.872-.396-.996-.494-.187-.357-.601-.553-1.01-.451l-.12.057-.006.004v.996.76l.006.004c.348.293.846.566 1.526.813 1.6.557 1.991.502 3.487-.49 1.353-.891 2.059-.986 3.843.139 1.949 1.229 3.135 1.801 4.214 1.52.864-.227 1.361-.967 1.706-1.604.15-.293.321-.379.453-.42.324-.102 1.146-.133 3.02.84.216.109 2.136 1.082 2.946 1.082.495 0 1.053-.361 1.497-.73.367-.305.658-.613.761-.727.789-.91.954-1.1 4.074.709 1.296.768 2.261 1.234 3.054 1.332.302-.42.593-.848.873-1.281l.164-.256c.403-.641.784-1.295 1.14-1.967l.086-.168c.14-.268.282-.535.414-.809-1.436.132-1.99.775-2.392 2.558"/><path d="m25.543 33.955l.22.225.006.01v-.469l-.006.004z"/><path d="m23.09 33.955l1.306.345.331-.345-.331-.346z"/><path d="m24.789 33.28l.351.333.341-.333-.341-1.298z"/><path d="m25.769 37.2v-1.721l-.006-.012-.533-1.197h-.235l-1.258 2.93h.802l.456.675h.235l.435-.675h.098z"/><path d="m17.455 33.955l.331.345 1.304-.345-1.304-.346z"/><path d="m15.01 33.955l1.298.345.331-.345-.331-.346z"/><path d="m16.7 33.28l.35.333.344-.333-.344-1.298z"/><path d="m16.908 34.27l-1.259 2.93h.802l.457.675h.242l.428-.675h.867l-1.295-2.93z"/><path d="m9.362 33.955l.331.345 1.301-.345-1.301-.346z"/><path d="m8.546 33.955l-.331-.346-1.3.346 1.3.345z"/><path d="m8.607 33.28l.347.333.347-.333-.347-1.298z"/><path d="m8.815 34.27l-1.259 2.93h.801l.458.675h.235l.434-.675h.869l-1.303-2.93z"/><path d="m24.995 23.688h.235l.435-.678h.098.006v-1.432h-.006-1.409l-.617 1.432h.802z"/><path d="m16.908 23.688h.242l.428-.678h.867l-.636-1.432h-1.543l-.617 1.432h.802z"/><path d="m8.815 23.688h.235l.434-.678h.869l-.637-1.432h-1.543l-.617 1.432h.801z"/><path d="m6.947 26.983l-1.3-.347-.331.347.331.347z"/><path d="m4.5 26.983l-.331-.347-1.3.347 1.3.347z"/><path d="m5.254 26.311l-.347-1.301-.345 1.301.345.33z"/><path d="m4.769 27.301l-1.259 2.929h.801l.458.674h.241l.428-.674h.868l-1.296-2.929z"/><path d="m15.04 26.983l-1.3-.347-.332.347.332.347z"/><path d="m12.592 26.983l-.33-.347-1.301.347 1.301.347z"/><path d="m13.348 26.311l-.348-1.301-.346 1.301.346.33z"/><path d="m12.862 27.301l-1.259 2.929h.801l.458.674h.238l.431-.674h.867l-1.298-2.929z"/><path d="m23.13 26.983l-1.297-.347-.331.347.331.347z"/><path d="m20.686 26.983l-.332-.347-1.304.347 1.304.347z"/><path d="m21.44 26.311l-.35-1.301-.343 1.301.343.33z"/><path d="m20.954 27.301l-1.258 2.929h.801l.457.674h.236l.434-.674h.868l-1.302-2.929z"/><path d="m13.408 41.486l.332.346 1.3-.346-1.3-.346z"/><path d="m10.961 41.486l1.301.346.33-.346-.33-.346z"/><path d="m12.654 40.814l.346.336.348-.336-.348-1.3z"/><path d="m21.502 41.486l.331.346 1.297-.346-1.297-.346z"/><path d="m19.05 41.486l1.304.346.332-.346-.332-.346z"/><path d="m20.747 40.814l.343.336.35-.336-.35-1.3z"/></g><g fill="#ed4c5c"><path d="m22.724 21.565l-7.337-5.961.006 5.974h.873 1.543 6.545 1.409.006l-1.413-.006z"/><path d="m18.891 9.313l6.878-.006h.015v-5.594l-.015.013z"/><path d="m18.909 13.402l6.86 5.552.008.007.007 1.466v-7.03h-.015z"/><path d="m3.896 21.495l-.034.083h4.311 1.543 1.519l-.006-6.04z"/></g><path fill="#dc241f" d="m25.78 2.649l.004.46v-.461z"/><g fill="#699635"><path d="m25.784 20.427l-.007-1.466-.008-.007-6.86-5.552-3.525.003.003 2.199 7.337 5.961 1.632.007 1.413.006h.015.005l-.001-.243z"/><path d="m25.784 3.109l-.004-.46-.012.002c-3.542.749-6.851 2.125-9.811 4-.194.123-.39.245-.58.372v.098l.002 2.192 3.511-.003 6.878-5.588.016-.013.005-.004-.005-.599"/><path d="m8.463 13.411c-1.915 2.421-3.467 5.142-4.567 8.08l7.333-5.958-.003-2.129-2.763.003"/></g><g fill="#fff"><path d="m53.3 48.18c-3.12-1.809-3.285-1.619-4.074-.709-.103.113-.394.422-.761.727-.444.369-1 .73-1.497.73-.811 0-2.73-.973-2.946-1.082-1.877-.973-2.698-.941-3.02-.84-.132.041-.303.127-.453.42-.345.637-.842 1.377-1.706 1.604-1.079.281-2.265-.291-4.214-1.52-1.784-1.125-2.49-1.029-3.843-.139-1.496.992-1.888 1.047-3.487.49-.681-.246-1.179-.52-1.526-.813l-.006-.004v.547l.006.004c.322.396.918.76 1.802 1.078 1.601.559 1.992.504 3.488-.49 1.352-.889 2.059-.986 3.843.141 1.948 1.229 3.136 1.801 4.214 1.52.864-.227 1.361-.967 1.706-1.604.15-.293.321-.379.453-.422.323-.104 1.145-.131 3.02.84.216.111 2.135 1.084 2.946 1.084.707 0 1.546-.734 1.988-1.176.122-.121.22-.227.27-.281.789-.91.953-1.1 4.074.709.92.543 1.665.928 2.312 1.152.159-.209.313-.422.466-.635-.794-.097-1.759-.564-3.055-1.331"/><path d="m32.67 51.689c.847-.111 1.411.029 2.541.668 2.164 1.25 3.073 1.334 4.517.443 1.725-1.027 2.415-1.223 3.764-.943 1.035.193 1.129.193.722-.168-.879-.805-2.604-.805-4.141 0-1.757.891-2.604.918-4.579.029-1.789-.807-2.446-.863-3.326-.279-.564.362-.502.389.502.25"/><path d="m49.891 52.5c-1.443-.334-1.569-.111-.314.557 1.028.537 1.956.596 3.641.156.424-.424.831-.865 1.229-1.314-2.052.669-3.47.865-4.556.601"/><path d="m47.44 55.887c-1.474 1.195-2.415 1.225-3.952.141-1.412-1-2.353-1.029-4.234-.141-1.066.502-1.286.695-.879.834.283.111.941-.027 1.475-.25 1.381-.639 2.07-.557 3.827.527.877.529 1.726.975 1.851.975s.814-.389 1.537-.834c1.415-.914 2.104-1.256 2.984-1.18.256-.193.508-.393.758-.596-1.628-.625-2.076-.521-3.367.524"/><path d="m41.609 59.25c-1.192-.916-2.415-.916-4.234 0-1.663.834-2.228.75-4.298-.723-1.725-1.193-1.787-1.223-2.76-.807-.376.168-.848.529-1.035.834-.377.5-.346.529.22.279.783-.389 2.132-.389 2.384 0 .125.167.784.667 1.474 1.112 1.631 1.029 2.979 1.057 4.642.084 1.255-.723 2.103-.779 3.921-.25.438.137.377-.029-.314-.529"/></g><g fill="#ed4c5c"><path d="m20.59 59.47c-.289-.102-.167-.387.033-.447.298-.094.621.193 1.376.154.187-.01.439-.041.439-.42 0-.549-.426-.945-1.779-.727-1.14.178-1.951.162-2.579.064-.02.197-.016.355.012.49.757.396 1.53.766 2.323 1.098.002-.075.05-.156.175-.212"/><path d="m3.719 42.01c.651 1.842 1.478 3.6 2.46 5.256.506.482 3.204 3.521 2.547 3.656 1.659 2.037 3.581 3.848 5.712 5.391.232-.043 7.293 3.604 7.05 3.787 1.379.518 2.806.934 4.272 1.244v-13.756-.547-.76-.996-3.275h-22.04"/></g><g fill="#ffe62e"><path d="m23.499 48.553c-.092-.229-.155-.316-.488-.215-.809.25-3.02.107-3.73-.32 1.059.385 2.412-.43 2.412-1.105 0-.75-1.049-1.365-3.17-.957-2.124.406-4.71.234-4.71-.385 0-.623 1.854-.709 2.806-.578.951.127 1.634.215 3.416-.344-.439.148-1.855.191-2.977-.088-1.12-.277-3.881-.277-3.904 1.031-.024 1.307 2.936 1.188 5.491.855 1.487-.191 2.268-.063 2.268.367 0 .408-1.364.58-2.415.471-1.05-.105-2.134-.119-3.366.238-2.223.646-4.779.17-5.449-.768.047-.096.08-.215.08-.404v-.014c.158-.145.309-.418.374-.619.149-.467-.057-.48-.664-.266-.214-.184-.564-.295-1.157-.295-.594 0-.948.111-1.156.295-.616-.215-.821-.201-.67.266.064.203.221.486.379.621v.012c.004.723.896 1.785.879 1.826-.499-.041-1.062-.428-1.567-.91.455.77.945 1.514 1.465 2.236.114.158.225.32.342.477.239.32.488.633.74.943.657-.135 1.326-.41 1.961-.912.389.01 3.106-.076 4.161-.646.701.707.813.627 1.427.732.637.107 1.024.107.602.42-.146.109-.757.057-1.234.074-1.062.039-1.55-.648-1.863-.291-.238.271-.032.402.41.41-.341 0-.716.018-.643.283.141.506.688-.094.898.109-.179-.035-.466.064-.477.215-.01.154.406.352.865.029.251-.178.56-.244.761-.244.748.006 2.435.342 2.988-.199.216-.211-.06-.387-.281-.578-.21-.189-.263-.447-.221-.871.628.098 1.439.115 2.579-.064 1.354-.217 1.779.18 1.779.727 0 .379-.253.412-.439.422-.755.039-1.078-.25-1.376-.156-.2.061-.322.348-.033.447-.236.107-.208.305-.087.379.124.076.436.008.651-.078-.276.109-.558.303-.398.51.1.125.349.229.582-.037.231-.266.666-.434.929-.455 1.13-.096 1.639-1.598 1.23-2.596"/><path d="m23.499 57.19c-.092-.229-.155-.316-.488-.215-.809.25-3.02.107-3.73-.32 1.059.385 2.412-.43 2.412-1.104 0-.752-1.049-1.365-3.17-.959-2.124.408-4.71.236-4.71-.385s1.854-.709 2.806-.576c.951.127 1.634.215 3.416-.348-.439.15-1.855.195-2.977-.084-1.12-.277-3.881-.277-3.904 1.029-.024 1.307 2.936 1.189 5.491.857 1.487-.193 2.268-.063 2.268.367 0 .406-1.364.578-2.415.471-1.05-.105-2.134-.121-3.366.238-.228.066-.461.113-.693.156 1.159.838 2.379 1.596 3.654 2.266-.027-.135-.031-.293-.012-.49.628.098 1.439.113 2.579-.064 1.354-.219 1.779.178 1.779.727 0 .379-.253.41-.439.42-.755.039-1.078-.248-1.376-.154-.2.061-.322.346-.033.447-.125.057-.173.137-.175.213.145.061.293.115.438.174l.074.029c.188.074.374.15.563.221.24-.184.563-.301.776-.318 1.132-.098 1.641-1.598 1.232-2.598"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m25.8 9.3h-6.9-3.5v-2.2-.1c-.8.5-1.5 1.1-2.3 1.7-1.7 1.4-3.3 3-4.6 4.7h2.8v2.1 6h-7.4c-1.2 3.3-1.9 6.8-1.9 10.5 0 3.5.6 6.9 1.7 10h22v-20.4h-10.3v-6-2.2h3.5 6.9v-4.1" fill="#fff"/><path d="m32 2c-2.1 0-4.2.2-6.2.6v58.7c2 .4 4.1.6 6.2.6 16.6 0 30-13.4 30-30 0-16.5-13.4-29.9-30-29.9" fill="#0091c8"/><path d="m61.5 32.3c0-.2.3-.7.5-1.2 0-.3 0-.6 0-.9-.2.4-.4.7-.4.9-.2.6-.4.2-.4-1.6-.1-1.4 0-2.8.2-4.1-.7-3.3-2-6.4-3.8-9.2-.4.1-.7.2-.7.2 0 0 .2-.3.4-.7-.1-.1-.2-.3-.3-.4-.6.8-1.2 1.5-1.3 1.5-.2.1-.9.3-1.7.6l-1.4.6 1.1-1c.6-.5 1.7-1.6 2.5-2.3l.2-.2c-.1-.1-.2-.2-.2-.3l-1.5 1.4c-1.6 1.5-3.2 2.9-3.4 3-.2.1-.5.3-.5.5-.1.3 0 .7.3.8.2.1.1.3-.5 1.1-.8 1.1-1.5 2.4-2 3.7l-.4 1-.2-.9c-.3-1.1-.6-2.7-.6-3.8 0-1 0-1 .7-1.9.8-1.1 2.7-3.1 3.7-3.9.4-.3 1.1-.8 1.6-1 1-.5 1.3-.7 1.3-1 0-.4-.3-.6-.8-.5-.3.1-1.4-.1-3.3-.5-1.6-.3-2.9-.6-3-.6 0 0 .1-.6.3-1.2.2-.8.4-1.3.6-1.5.4-.4.4-.9 0-1.2-.6-.6-1.6-.1-1.5.8l.1.4-.8.1c-.5.1-1.6.3-2.4.5-1.8.5-3.1.6-4 .2-.3-.1-.5-.2-.5-.2 0 0 0 .1 0 .3 0 .5.3 1 .9 1.3l.5.3-.4.1c-.2.1-.8.1-1.3 0s-.9 0-.9 0c0 .3.6 1 1 1.2.9.5 2.7.3 4.8-.4 1-.4 2.4-.5 2.3-.2 0 .2-1.8 1.5-4.9 3.7-1.6 1.1-1.8 1.4-1.6 1.9.1.3.1.4-.3 1-.8 1.4-1.6 3.8-1.6 5 0 .6 0 .7-.9 1.6-1.7 1.8-5.1 6-5.8 7.3l-.2.3-.2-.3c-.5-.6-1.5-.3-1.5.5 0 .5.3.8.9.8.3 0 1 .3 2.1.8l1.7.8-.4.5c-.6.7-.7 1.2-.4 1.6.2.2.3.2 1.1.2.8 0 1 .1 1.9.5.9.4 1.2.7 2.5 2 3.8 3.9 4.8 4.9 6.9 6.2.6.3 1.1.5 1.3.5.2-.1.6-.4 1-.8 1.7-2 3.1-1.5 6.3.3 1.6.9 2.2 1.1 2.4 1.1v-.2c.4-1.8 1-2.4 2.4-2.6.8-1.7 1.5-3.5 2-5.4-.8 0-1.7 0-2.3 0l-1.3-.1.1-.4c.1-.6.5-1.3 1.1-1.9.3-.3.5-.6.6-.6 0 0 .4.2.9.5.4.3.9.6 1.3.8.2-1.1.4-2.3.5-3.4-.3-.8-.5-1.7-.4-2m-14.7-18c.3-1.2.6-2.3.7-2.3.1 0 1.1.2 2.3.5 2.7.5 2.7.6 2.2.7-.2.1-1.5.4-2.8.8l-2.5.7.1-.4m-10.7 20.9h-.4c-.5-.1-4.3-1.8-4.3-2 0-.5 3.6-5.1 5.7-7.3l.8-.8v.4c0 .2.1.8.2 1.2l.2.8-1.1 3.9-1.1 3.8m4 2c-.1 0-.8-.3-1.5-.8-.7-.4-1.5-.8-1.7-.9l-.4-.1 1-3.5c.5-1.9 1-3.5 1-3.5.1 0 .2.3.4.7.2.5.3.9.3 2v1.3h.4.4v1.1c0 .6.1 1.6.3 2.1.2 1 .2 1.6-.2 1.6m1.6-9.3l-.4 1.2h-.9c-.5 0-.9 0-1-.1-.2-.2 0-1.1.3-1.6.3-.5 1.2-1 1.8-1 .2 0 .4 0 .4.1.2.1 0 .7-.2 1.4m2.4 1.3h-1.2l.1-.4c.1-.2.2-.6.3-1l.2-.7.4.3c.3.2.6.6.9.9.2.3.4.6.4.7 0 .1-.5.2-1.1.2m.3-13.9c-.5.1-1.4.4-1.9.5-.5.1-.8.2-.8.2.1-.1 4.2-3.1 4.3-3.1v.2c0 .1-.2.6-.3 1.1l-.3.8-1 .3m4.8 21.8c-1.1-.8-2.2-2.2-2.8-3.7-.4-.9-.4-1-.1-1 .2 0 .2-.3.2-1.6v-1.6h-.4c-.3 0-.4-.1-.5-.5-.1-.3-.2-1.2-.2-2.3 0-1.9.2-2.7 1-4.5.4-1 .6-.9.6.1 0 .7.3 2.2.7 3.3.3.8.3 1 .2 1.5-.1.3-.2 1.1-.3 1.9-.2 2.4.2 4.7 1.2 6.9.3.6.6 1.3.6 1.5l.1.3-.3-.3m3.3-2.6c0 .1-.3.9-.6 1.8-.3.9-.6 1.7-.6 1.8 0 .1-.3 0-.6-.1-.4-.2-.5-.3-.7-.9-.2-.6-.2-.7.2-1.2.4-.7 1-1.2 1.7-1.3.6-.3.6-.3.6-.1m3.5 4.9c-.4 0-1.2-.2-1.9-.3l-1.3-.3.3-1c.2-.5.5-1.5.6-2.1.3-1.1.4-1.2.9-1 .2.1.3.3.5 1.1.2.7.5 1.5.9 2.4l.7 1.3-.7-.1m2.2-2.3c-.3.4-.7.9-.8 1.2-.1.3-.2.6-.3.7-.2.3-1.7-3.1-1.7-3.8 0-.3.5-.1 2 .6l1.3.6-.5.7" fill="#ffce31"/><g fill="#3e4347"><path d="m56.6 47.6v.2c-.2 0-.8-.2-2.4-1.1-3.2-1.9-4.6-2.4-6.3-.3-.4.4-.8.7-1 .8-.2-.1-.7-.2-1.3-.5-.2-.1-.5-.2-.7-.3-1.9-1-3.3-1.3-4.4-1-.7.2-1.2.6-1.5 1.3-.2.4-.4.7-.6.7-.5.1-2.2-.9-2.8-1.3-2.3-1.4-3.7-1.5-5.8-.1-.4.3-.8.5-1 .5-.1 0-.5-.1-.9-.2-.5-.2-.9-.4-1-.5-.2-.4-.6-.6-1-.5l-.1.1v1 .6c.3.3.8.6 1.5.8 1.6.6 2 .5 3.5-.5 1.4-.9 2.1-1 3.8.1 1.9 1.2 3.1 1.8 4.2 1.5.9-.2 1.4-1 1.7-1.6.2-.3.3-.4.5-.4.3-.1 1.1-.1 3 .8.2.1 2.1 1.1 2.9 1.1.5 0 1.1-.4 1.5-.7.4-.3.7-.6.8-.7.8-.9 1-1.1 4.1.7 1.3.8 2.3 1.2 3.1 1.3.3-.4.6-.8.9-1.3l.2-.3c.4-.6.8-1.3 1.1-2l.1-.2c.1-.3.3-.5.4-.8-1.5.4-2.1 1-2.5 2.8"/><path d="m25.5 34l.3.2v-.5z"/><path d="m23.1 34l1.3.3.3-.3-.3-.4z"/><path d="m24.8 33.3l.3.3.4-.3-.4-1.3z"/><path d="m25.8 37.2v-1.7l-.6-1.2h-.2l-1.3 2.9h.8l.5.7h.2l.5-.7h.1"/><path d="m17.5 34l.3.3 1.3-.3-1.3-.4z"/><path d="m15 34l1.3.3.3-.3-.3-.4z"/><path d="m16.7 33.3l.3.3.4-.3-.4-1.3z"/><path d="m16.9 34.3l-1.3 2.9h.9l.4.7h.2l.5-.7h.8l-1.3-2.9z"/><path d="m9.4 34l.3.3 1.3-.3-1.3-.4z"/><path d="m8.5 34l-.3-.4-1.3.4 1.3.3z"/><path d="m8.6 33.3l.4.3.3-.3-.3-1.3z"/><path d="m8.8 34.3l-1.2 2.9h.8l.4.7h.3l.4-.7h.9l-1.3-2.9z"/><path d="m25 23.7h.2l.5-.7h.1v-1.4h-1.4l-.7 1.4h.8z"/><path d="m16.9 23.7h.2l.5-.7h.8l-.6-1.4h-1.5l-.7 1.4h.9z"/><path d="m8.8 23.7h.3l.4-.7h.9l-.7-1.4h-1.5l-.6 1.4h.8z"/><path d="m6.9 27l-1.3-.4-.3.4.3.3z"/><path d="m4.5 27l-.3-.4-1.3.4 1.3.3z"/><path d="m5.3 26.3l-.4-1.3-.3 1.3.3.3z"/><path d="m4.8 27.3l-1.3 2.9h.8l.5.7h.2l.4-.7h.9l-1.3-2.9z"/><path d="m15 27l-1.3-.4-.3.4.3.3z"/><path d="m12.6 27l-.3-.4-1.3.4 1.3.3z"/><path d="m13.3 26.3l-.3-1.3-.3 1.3.3.3z"/><path d="m12.9 27.3l-1.3 2.9h.8l.5.7h.2l.4-.7h.9l-1.3-2.9z"/><path d="m23.1 27l-1.3-.4-.3.4.3.3z"/><path d="m20.7 27l-.3-.4-1.3.4 1.3.3z"/><path d="m21.4 26.3l-.3-1.3-.4 1.3.4.3z"/><path d="m21 27.3l-1.3 2.9h.8l.5.7h.2l.4-.7h.9l-1.3-2.9z"/><path d="m13.4 41.5l.3.3 1.3-.3-1.3-.4z"/><path d="m11 41.5l1.3.3.3-.3-.3-.4z"/><path d="m12.7 40.8l.3.3.3-.3-.3-1.3z"/><path d="m21.5 41.5l.3.3 1.3-.3-1.3-.4z"/><path d="m19.1 41.5l1.3.3.3-.3-.3-.4z"/><path d="m20.7 40.8l.4.3.3-.3-.3-1.3z"/></g><g fill="#ed4c5c"><path d="m22.7 21.6l-7.3-6v6h.9 1.5 6.6 1.4-1.4z"/><path d="m18.9 9.3h6.9v-5.6z"/><path d="m18.9 13.4l6.9 5.6v1.4-7z"/><path d="m3.9 21.5v.1h4.3 1.5 1.5v-6.1z"/></g><path fill="#dc241f" d="m25.8 2.6v.5-.5"/><g fill="#699635"><path d="m25.8 20.4v-1.4l-6.9-5.6h-3.5v2.2l7.3 6h1.7 1.4v-.3z"/><path d="m25.8 3.1v-.5c-3.5.7-6.9 2.1-9.8 4-.2.1-.4.2-.6.4v.1 2.2h3.5l6.9-5.6v-.6"/><path d="m8.5 13.4c-1.9 2.4-3.5 5.1-4.6 8.1l7.3-6v-2.1h-2.7"/></g><g fill="#fff"><path d="m53.3 48.2c-3.1-1.8-3.3-1.6-4.1-.7-.1.1-.4.4-.8.7-.4.4-1 .7-1.5.7-.8 0-2.7-1-2.9-1.1-1.9-1-2.7-.9-3-.8-.1 0-.3.1-.5.4-.3.6-.8 1.4-1.7 1.6-1.1.3-2.3-.3-4.2-1.5-1.8-1.1-2.5-1-3.8-.1-1.5 1-1.9 1-3.5.5-.7-.2-1.2-.5-1.5-.8v.5c.3.4.9.8 1.8 1.1 1.6.6 2 .5 3.5-.5 1.4-.9 2.1-1 3.8.1 1.9 1.2 3.1 1.8 4.2 1.5.9-.2 1.4-1 1.7-1.6.2-.3.3-.4.5-.4.3-.1 1.1-.1 3 .8.2.1 2.1 1.1 2.9 1.1.7 0 1.5-.7 2-1.2.1-.1.2-.2.3-.3.8-.9 1-1.1 4.1.7.9.5 1.7.9 2.3 1.2.2-.2.3-.4.5-.6-.8-.1-1.8-.6-3.1-1.3"/><path d="m32.7 51.7c.8-.1 1.4 0 2.5.7 2.2 1.2 3.1 1.3 4.5.4 1.7-1 2.4-1.2 3.8-.9 1 .2 1.1.2.7-.2-.9-.8-2.6-.8-4.1 0-1.8.9-2.6.9-4.6 0-1.8-.8-2.4-.9-3.3-.3-.6.4-.5.4.5.3"/><path d="m49.9 52.5c-1.4-.3-1.6-.1-.3.6 1 .5 2 .6 3.6.2.4-.4.8-.9 1.2-1.3-2 .6-3.4.8-4.5.5"/><path d="m47.4 55.9c-1.5 1.2-2.4 1.2-4 .1-1.4-1-2.4-1-4.2-.1-1.1.5-1.3.7-.9.8.3.1.9 0 1.5-.2 1.4-.6 2.1-.6 3.8.5.9.5 1.7 1 1.9 1s.8-.4 1.5-.8c1.4-.9 2.1-1.3 3-1.2.3-.2.5-.4.8-.6-1.6-.7-2.1-.6-3.4.5"/><path d="m41.6 59.2c-1.2-.9-2.4-.9-4.2 0-1.7.8-2.2.8-4.3-.7-1.7-1.2-1.8-1.2-2.8-.8-.4.2-.8.5-1 .8-.4.5-.3.5.2.3.8-.4 2.1-.4 2.4 0 .1.2.8.7 1.5 1.1 1.6 1 3 1.1 4.6.1 1.3-.7 2.1-.8 3.9-.2.5.1.4 0-.3-.6"/></g><g fill="#ed4c5c"><path d="m20.6 59.5c-.3-.1-.2-.4 0-.4.3-.1.6.2 1.4.2.2 0 .4 0 .4-.4 0-.5-.4-.9-1.8-.7-1.1.2-2 .2-2.6.1 0 .2 0 .4 0 .5.8.4 1.5.8 2.3 1.1.1-.3.2-.4.3-.4"/><path d="m3.7 42c.7 1.8 1.5 3.6 2.5 5.3.5.5 3.2 3.5 2.5 3.7 1.7 2 3.6 3.8 5.7 5.4.2 0 7.3 3.6 7.1 3.8 1.4.5 2.8.9 4.3 1.2v-13.8-.6-.8-1-3.2h-22.1"/></g><g fill="#ffe62e"><path d="m23.5 48.6c-.1-.2-.2-.3-.5-.2-.8.2-3 .1-3.7-.3 1.1.4 2.4-.4 2.4-1.1 0-.8-1-1.4-3.2-1-2.1.4-4.7.2-4.7-.4 0-.6 1.9-.7 2.8-.6 1 .1 1.6.2 3.4-.3-.4.1-1.9.2-3-.1-1.1-.3-3.9-.3-3.9 1 0 1.3 2.9 1.2 5.5.9 1.5-.2 2.3-.1 2.3.4 0 .4-1.4.6-2.4.5-1-.1-2.1-.1-3.4.2-2.2.6-4.8.2-5.4-.8 0-.1.1-.2.1-.4.2-.1.3-.4.4-.6.1-.5-.1-.5-.7-.3-.2-.2-.6-.3-1.2-.3-.6 0-.9.1-1.2.3-.6-.2-.8-.2-.7.3.1.2.2.5.4.6 0 .7.9 1.8.9 1.8-.5 0-1.1-.4-1.6-.9.5.8.9 1.5 1.5 2.2.2.2.3.3.4.5.2.3.5.6.7.9.7-.1 1.3-.4 2-.9.4 0 3.1-.1 4.2-.6.7.7.8.6 1.4.7.6.1 1 .1.6.4-.1.1-.8.1-1.2.1-1.1 0-1.6-.6-1.9-.3-.2.3 0 .4.4.4-.3 0-.7 0-.6.3.1.5.7-.1.9.1-.2 0-.5.1-.5.2 0 .2.4.4.9 0 .3-.2.6-.2.8-.2.7 0 2.4.3 3-.2.2-.2-.1-.4-.3-.6-.2-.2-.3-.4-.2-.9.6.1 1.4.1 2.6-.1 1.4-.2 1.8.2 1.8.7 0 .4-.3.4-.4.4-.8 0-1.1-.2-1.4-.2-.2.1-.3.3 0 .4-.2.1-.2.3-.1.4.1.1.4 0 .7-.1-.3.1-.6.3-.4.5.1.1.3.2.6 0 .2-.3.7-.4.9-.5.9.2 1.4-1.3 1-2.3"/><path d="m23.5 57.2c-.1-.2-.2-.3-.5-.2-.8.2-3 .1-3.7-.3 1.1.4 2.4-.4 2.4-1.1 0-.8-1-1.4-3.2-1-2.1.4-4.7.2-4.7-.4s1.9-.7 2.8-.6c1 .1 1.6.2 3.4-.3-.4.2-1.9.2-3-.1-1.1-.3-3.9-.3-3.9 1 0 1.3 2.9 1.2 5.5.9 1.5-.2 2.3-.1 2.3.4 0 .4-1.4.6-2.4.5-1-.1-2.1-.1-3.4.2-.2.1-.5.1-.7.2 1.2.8 2.4 1.6 3.7 2.3 0-.1 0-.3 0-.5.6.1 1.4.1 2.6-.1 1.4-.2 1.8.2 1.8.7 0 .4-.3.4-.4.4-.8 0-1.1-.2-1.4-.2-.2.1-.3.3 0 .4-.1.1-.2.1-.2.2.1.1.3.1.4.2h.1c.2.1.4.2.6.2.2-.2.6-.3.8-.3 1 0 1.5-1.5 1.1-2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f3.svg
index 4dfeb88..adf57ca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.568,13.432,30,30,30c16.569,0,30-13.432,30-30C62,15.431,48.568,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.912 8.139v5.861h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.011C3.088,22.869,2,27.305,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.011V11H11v3h21V2C27.306,2,22.869,3.087,18.912,5.011z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m34.541 33.848l-.002.007.002-.007"/><path d="m34.537 33.86l-.037.079.037-.079"/><path d="m34.539 33.854l-.002.006.002-.006"/></g><path fill="#ffce31" d="m38.457 26.744c.059-.523-.053-1.061-.436-1.398-.738-.649-1.461-.435-2 .089-.807-.435-1.234 1.108-2.148.849.152.5.393.717.85.544-.48.436 0 .958-.566 1.48 1.023.326 1.568-.239 1.523-1.221.395.348 1 .327 1.328-.066-.545-.175-.547-.646-.326-1.089.326-.652 1.861-.625 1.775.812"/><path fill="#699635" d="m40.818 34.32c-1.154.61-3.266.35-3.461-1.154-.197-1.504 1.262-2.18 1.654-2.373.611-.307 1.09.238.893.872.676-.238.828-1.024.5-1.479.895.065 1.721-.61 2.07-1.568-.314.299-1.168.096-1.871.052.219-.237.215-.704.15-.945-.738.76-1.809.411-3.221 2.61.217-.762.631-2.285.871-3.289.023-.099.041-.198.055-.301.084-1.438-1.447-1.464-1.775-.809.359.403.17.875.041 1.59-.15.848-.479 2.809-.762 3.461-.086-1.023-.762-1.089-.893-1.589-.195.131-.305.479-.262.718-.24-.263-1.068.064-1.373-.328-.326.652.197 1.307.742 1.59-.316.021-.393.403-.742.403.469.545.949.763 1.504.808.555.044.969.25 1.307.924.546 1.091 2.62 1.798 4.573.807"/><path fill="#ffce31" d="m43.693 32.99c-.65 1.807-2.438 3.093-3.244 3.289-1.371.333-4.17 1.692-4.918 2.392-.117-.026-.229-.068-.309-.126-.369-.262-.676-1.11-.021-1.83 2.049-1.918 4.248-1.09 5.621-2.396-1.156.609-3.266.348-3.463-1.155 1.242.327 3.486.349 5.27-1.568.238.263.934 1.091 1.064 1.394"/><g fill="#699635"><path d="m43.03 32.15c-.369.555-1.211 1.317-2.01 1.623.172-.195.229-.445.238-.651-1.023.393-3.072.349-3.9.044 1.242.328 3.486.349 5.27-1.568.178.193.33.367.406.552"/><path d="m35.2 36.715c-1.666 1.558-.566 2.917.086 3.224-.172 1.089.85.958.828 1.872.414-.238.523-.871.459-1.372.523.565 1.852-.065 2.135.979.174-1.155-.719-2.307-1.83-2.2.459-.413.197-1.089-.236-1.262-.088.849-1.045.849-1.418.589-.371-.262-.678-1.11-.024-1.83"/></g><path fill="#ffce31" d="m50.945 36.738c2.68 2.244 2.854 4.03 2.439 5.075-.219-.979-1.328-2.504-2.482-2.896l.043-2.179"/><path fill="#699635" d="m50.945 36.738c1.828 1.262 3.18 2.482 3.572 4.441.395 1.959 1.135 2.482 2.049 1.959-.217 1.131-1.352 1.262-2.309.393.088 1.307-.434 2.876-1.785 3.441-.086-.783.432-1.404.283-2.048-.064-.282-.086-.938.283-1.241-.719.238-1.852-.218-1.959-1.286.826.393 1.893.458 2.307-.589.413-1.042.239-2.828-2.441-5.07"/><path fill="#ffce31" d="m52.803 46.98c.133-.165.16-.427-.039-.55-.168-.104-.395-.149-.484.212-.084.356-.867.414-.691 1.141-.225.037-.441.164-.559.354-.195.322-.977.705-1.283.755.092.136.354.293.564.228-.105.519.227.688.402.587-.01.23.246.508.447.358.135.347.502.44.676.173.162.23.58.145.777.055-.316-.023-.303-.9-.242-1.262.07-.432.049-.696-.023-.869.506-.238.216-.89.455-1.182"/><path fill="#699635" d="m46.16 35.473h4.965c0 0 0 1.308 0 5.88 0 5.01-2.787 7.972-5.619 9.538-2.832-1.568-5.621-4.531-5.621-9.538 0-4.572 0-5.88 0-5.88h3.486c.006.305.033.763.393 1.221.822-.082 1.752-.698 2.396-1.221"/><path fill="#006ec7" d="m51.12 35.473c0 0 0 1.308 0 5.88 0 1.511-.254 2.839-.686 3.993l-4.932-9.05-4.932 9.05c-.432-1.156-.686-2.482-.686-3.993 0-4.572 0-5.88 0-5.88h11.236"/><path fill="#ffce31" d="m50.584 44.914c-.086.268-.246.699-.365.967l-4.715-8.764-4.713 8.764c-.123-.268-.281-.699-.367-.967l5.082-9.423 5.078 9.423"/><path fill="#f7e017" d="m48.44 46.45c-.283.721-1.24.697-1.504 1.132.16.081.311.187.438.277-.326.327-1.092.874-1.525 1.01v-4.63c.506-.031 1.293-.105 1.625-.105.111 0 .203-.165.203-.369s-.09-.369-.203-.369c-.355 0-1.24-.084-1.736-.112 0-.159 0-.738 0-.925 0-.217-.043-.534-.238-.534-.117 0-.18.115-.211.253-.096-.044-.205-.069-.32-.069-.385 0-.699.285-.699.639 0 .354.313.64.699.64.105 0 .205-.022.293-.061v.059c-.494.027-1.373.111-1.73.111-.109 0-.201.165-.201.369s.088.369.201.369c.332 0 1.115.072 1.621.105v4.63c-.238-.696-1.178-.458-1.613-1.155.17-.042.352-.055.523-.021-.326-1.109-1.221-1.196-1.393-1.523 0 .458-.197 1.523.109 1.982.068-.081.17-.168.297-.24.369.806 2.035.809 2.428 2.137.314-.49 1.447-1.056 2.24-1.907.131.065.373.187.48.231.261-.526.304-1.266.216-1.92m-3.472-3.398c-.248 0-.447-.184-.447-.409s.201-.409.447-.409c.115 0 .217.039.295.102l-.002.02c0 .113 0 .373 0 .595-.078.062-.18.101-.293.101"/><path fill="#fff" d="m44.5 39.26h1.871v2.095h-1.871z"/><path fill="#ffce31" d="m39.518 37.23c-.838.711-1.637 1.748-1.834 2.686-.553 2.637-1.285 3.223-2.416 2.658 0 1.416 1.24 1.523 1.785.695 0 1.328.482 2.48 1.568 3.463.459.414.545.131.328-.327s-.217-1.938-.652-2.786c.697.5 1.721.217 1.635-1.156-.893.525-1.781.504-1.873-.74-.114-1.459.455-3.579 1.459-4.493"/><path fill="#699635" d="m39.518 37.23c-1.035.878-1.572 3.03-1.461 4.492.031.406.143.681.316.849.076-.828.652-2.968 2.121-3.921 1.242-.807 3.18-2.613 3.9-4.683-.133-.369-.35-.631-.764-.893-.714 1.954-2.622 2.892-4.112 4.156"/><path fill="#ffce31" d="m40.3 48.22c-.098-.178-.289-.299-.486-.34.182-.646-.516-.726-.58-1.046-.064-.327-.271-.293-.424-.207-.18.105-.168.338-.055.489.201.27-.082.844.367 1.074-.072.152-.1.388-.051.778.039.325.021 1.11-.262 1.12.174.087.545.182.697-.021.146.246.479.175.609-.131.174.142.414-.097.414-.304.152.097.459-.045.379-.511.188.065.426-.065.512-.187-.27-.052-.958-.421-1.12-.714"/><path fill="#96877d" d="m48.963 34.33c.279.312.369.728.219 1.137h-.414c.172-.523.064-1.021-.676-1.087-1.107-.097-2.396 2.048-4.334 2.307-.566-.675-.537-1.961.184-2.571-.373-1.071-1.156-2.25-1.701-2.758-.355-.058-.768-.086-1.031-.07.283-.61 1.09-1.252 1.744-1.514.105-.154.221-.305.324-.438.066-.838 4.053-.445 4.9.076.002.939.373 4.069.785 4.918"/><g fill="#699635"><path d="m53.26 26.545c.566-1.479 2.049-1.327 2.549-.696 1.459-.828 1.654 1.045 2.896.676-.021.348-.436.675-.895.651.48.436-.195 1.09.828 1.48-.871.435-2.09-.021-2.416-1.221-.283.566-1.307.566-1.721.11.893-.238.826-1.066.326-1.394-.503-.329-1.393-.195-1.567.394"/><path d="m48.838 29.806c.406 1.31 1.246 2.53 2.152 3.36 1.045.959 2.625.717 3.508-.197.02 1.823-1.869 1.965-2.918 1.395-.465-.252-.838-.121-.393.282.676.61 2.152 1.063 3.896 1.438 3.049.652 1.961 3.072 1.068 3.049.258-.005.467-.272.098-.604-2.646-2.381-8.02-1.443-7.939-6.758-.564 1.394-2.895.85-1.807-.807.35.283 1.461.18 1.133-1.098l1.202-.06"/></g><g fill="#ffce31"><path d="m51.576 34.36c1.264.827 2.693.827 4.01-.697.414-.479 1.066-.893 1.523-.938.459-.045.436-.479.785-.565-.219-.065-.305-.327-.633-.294.818-.282.576-.938.98-1.252-.328.121-.838-.369-1.307.252.119-.283-.045-.621-.164-.752.045.328-.641.393-.771 1.221-.074.463-.328.435-.369-.283-.031-.525-.283-1.982-.586-2.721-.305-.741-.375-1.757.039-1.909-.064-.104-.15-.199-.258-.268-.504-.33-1.393-.196-1.568.393-.564 1.48 1.023 2.331.893 3.942-.238-1.197-2.178-1.504-2.154-2.68-.631.283-.545.807-.305 1.221-.393-.61-1.285.393-2.047-.435-.088 1.089.871 1.503 1.654 1.545-.393.696.131 1.286.652 1.479.021-1.221 2.521-.721 2.549 1.373.021 1.781-1.895 1.933-2.921 1.368"/><path d="m55.08 36.08c3.049.652 1.961 3.072 1.068 3.049-.568-.013-1.109-.49-1.145-.903-.652.348-.479 1.034.021 1.307-1.373-.162-1.949.74-1.982 1.73.252-.458 1.014-.489 1.297-.393.281.098 1.014.152 1.307-.176-.242.207.152.687-.188 1.056 1.145-.044 1.645-1.11 1.449-1.579 1.484-1.346 1.2-3.546-1.827-4.091"/></g><path fill="#96877d" d="m48.818 28.984h-5.478l-.791-2.964 7.34-1.93z"/><path fill="#ffce31" d="m43.03 28.656h5.871v1.342h-5.871z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.6,13.4,30,30,30c16.6,0,30-13.4,30-30C62,15.4,48.6,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m38.5 26.7c.1-.5-.1-1.1-.4-1.4-.7-.6-1.5-.4-2 .1-.8-.4-1.2 1.1-2.1.8.2.5.4.7.8.5-.5.4 0 1-.6 1.5 1 .3 1.6-.2 1.5-1.2.4.3 1 .3 1.3-.1-.5-.2-.5-.6-.3-1.1.3-.5 1.8-.5 1.8.9" fill="#ffce31"/><path d="m40.8 34.3c-1.2.6-3.3.3-3.5-1.2-.2-1.5 1.3-2.2 1.7-2.4.6-.3 1.1.2.9.9.7-.2.8-1 .5-1.5.9.1 1.7-.6 2.1-1.6-.3.3-1.2.1-1.9.1.2-.2.2-.7.2-.9-.7.8-1.8.4-3.2 2.6.2-.8.6-2.3.9-3.3 0-.1 0-.2.1-.3.1-1.4-1.4-1.5-1.8-.8.4.4.2.9 0 1.6-.2.8-.5 2.8-.8 3.5-.1-1-.8-1.1-.9-1.6-.2.1-.3.5-.3.7-.2-.3-1.1.1-1.4-.3-.3.7.2 1.3.7 1.6-.3 0-.4.4-.7.4.5.5.9.8 1.5.8.6 0 1 .2 1.3.9.6 1.1 2.7 1.8 4.6.8" fill="#699635"/><path d="m43.7 33c-.7 1.8-2.4 3.1-3.2 3.3-1.4.3-4.2 1.7-4.9 2.4-.1 0-.2-.1-.3-.1-.4-.3-.7-1.1 0-1.8 2-1.9 4.2-1.1 5.6-2.4-1.2.6-3.3.3-3.5-1.2 1.2.3 3.5.3 5.3-1.6.2.3.9 1.1 1 1.4" fill="#ffce31"/><g fill="#699635"><path d="m43 32.2c-.4.6-1.2 1.3-2 1.6.2-.2.2-.4.2-.7-1 .4-3.1.3-3.9 0 1.2.3 3.5.3 5.3-1.6.2.3.4.5.4.7"/><path d="m35.2 36.7c-1.7 1.6-.6 2.9.1 3.2-.2 1.1.8 1 .8 1.9.4-.2.5-.9.5-1.4.5.6 1.9-.1 2.1 1 .2-1.2-.7-2.3-1.8-2.2.5-.4.2-1.1-.2-1.3-.1.8-1 .8-1.4.6-.4-.2-.8-1.1-.1-1.8"/></g><path d="m50.9 36.7c2.7 2.2 2.9 4 2.4 5.1-.2-1-1.3-2.5-2.5-2.9l.1-2.2" fill="#ffce31"/><path d="m50.9 36.7c1.8 1.3 3.2 2.5 3.6 4.4.4 2 1.1 2.5 2 2-.2 1.1-1.4 1.3-2.3.4.1 1.3-.4 2.9-1.8 3.4-.1-.8.4-1.4.3-2-.1-.3-.1-.9.3-1.2-.7.2-1.9-.2-2-1.3.8.4 1.9.5 2.3-.6.5-1 .3-2.8-2.4-5.1" fill="#699635"/><path d="m52.8 47c.1-.2.2-.4 0-.5-.2-.1-.4-.1-.5.2-.1.4-.9.4-.7 1.1-.2 0-.4.2-.6.4-.2.3-1 .7-1.3.8.1.1.4.3.6.2-.1.5.2.7.4.6 0 .2.2.5.4.4.1.3.5.4.7.2.2.2.6.1.8.1-.3 0-.3-.9-.2-1.3.1-.4 0-.7 0-.9.5-.4.2-1 .4-1.3" fill="#ffce31"/><path d="m46.2 35.5h5c0 0 0 1.3 0 5.9 0 5-2.8 8-5.6 9.5-2.8-1.6-5.6-4.5-5.6-9.5 0-4.6 0-5.9 0-5.9h3.5c0 .3 0 .8.4 1.2.7-.1 1.6-.7 2.3-1.2" fill="#699635"/><path d="m51.1 35.5c0 0 0 1.3 0 5.9 0 1.5-.3 2.8-.7 4l-4.9-9-4.9 9c-.4-1.2-.7-2.5-.7-4 0-4.6 0-5.9 0-5.9h11.2" fill="#006ec7"/><path d="m50.6 44.9c-.1.3-.2.7-.4 1l-4.7-8.8-4.7 8.8c-.1-.3-.3-.7-.4-1l5.1-9.4 5.1 9.4" fill="#ffce31"/><path d="m48.4 46.5c-.3.7-1.2.7-1.5 1.1.2.1.3.2.4.3-.3.3-1.1.9-1.5 1v-4.6c.5 0 1.3-.1 1.6-.1.1 0 .2-.2.2-.4s-.1-.4-.2-.4c-.4 0-1.2-.1-1.7-.1 0-.2 0-.7 0-.9 0-.2 0-.5-.2-.5-.1 0-.2.1-.2.3-.1-.2-.2-.2-.3-.2-.4 0-.7.3-.7.6s.3.6.7.6c.1 0 .2 0 .3-.1v.1c-.5 0-1.4.1-1.7.1-.1 0-.2.2-.2.4s.1.4.2.4c.3 0 1.1.1 1.6.1v4.6c-.2-.7-1.2-.5-1.6-1.2.2 0 .4-.1.5 0-.3-1.1-1.2-1.2-1.4-1.5 0 .5-.2 1.5.1 2 .1-.1.2-.2.3-.2.4.8 2 .8 2.4 2.1.3-.5 1.4-1.1 2.2-1.9.1.1.4.2.5.2.3-.5.3-1.2.2-1.8m-3.4-3.4c-.2 0-.4-.2-.4-.4s.2-.4.4-.4c.1 0 .2 0 .3.1 0 .1 0 .4 0 .6-.1 0-.2.1-.3.1" fill="#f7e017"/><path fill="#fff" d="m44.5 39.3h1.9v2.1h-1.9z"/><path d="m39.5 37.2c-.8.7-1.6 1.7-1.8 2.7-.6 2.6-1.3 3.2-2.4 2.7 0 1.4 1.2 1.5 1.8.7 0 1.3.5 2.5 1.6 3.5.5.4.5.1.3-.3s-.2-1.9-.7-2.8c.7.5 1.7.2 1.6-1.2-.9.5-1.7.5-1.8-.8-.2-1.4.4-3.6 1.4-4.5" fill="#ffce31"/><path d="m39.5 37.2c-1 .9-1.6 3-1.5 4.5 0 .4.1.7.3.8.1-.8.7-3 2.1-3.9 1.2-.8 3.2-2.6 3.9-4.7-.1-.4-.3-.6-.8-.9-.6 2-2.5 3-4 4.2" fill="#699635"/><path d="m40.3 48.2c-.1-.2-.3-.3-.5-.3.2-.6-.5-.7-.6-1-.1-.3-.3-.3-.4-.2-.2.1-.2.3-.1.5.2.3-.1.8.4 1.1-.1 0-.1.3 0 .7 0 .3 0 1.1-.3 1.1.2.1.5.2.7 0 .1.2.5.2.6-.1.2.1.4-.1.4-.3.2.1.5 0 .4-.5.2.1.4-.1.5-.2-.3-.1-.9-.5-1.1-.8" fill="#ffce31"/><path d="m49 34.3c.3.3.4.7.2 1.1h-.4c.2-.5.1-1-.7-1.1-1.1-.1-2.4 2-4.3 2.3-.6-.7-.5-2 .2-2.6-.4-1.1-1.2-2.2-1.7-2.8-.4-.1-.8-.1-1-.1.3-.6 1.1-1.3 1.7-1.5.1-.2.2-.3.3-.4.1-.8 4.1-.4 4.9.1 0 1.1.4 4.2.8 5" fill="#96877d"/><g fill="#699635"><path d="m53.3 26.5c.6-1.5 2-1.3 2.5-.7 1.5-.8 1.7 1 2.9.7 0 .3-.4.7-.9.7.5.4-.2 1.1.8 1.5-.9.4-2.1 0-2.4-1.2-.3.6-1.3.6-1.7.1.9-.2.8-1.1.3-1.4-.5-.4-1.4-.2-1.5.3"/><path d="m48.8 29.8c.4 1.3 1.2 2.5 2.2 3.4 1 1 2.6.7 3.5-.2 0 1.8-1.9 2-2.9 1.4-.5-.3-.8-.1-.4.3.7.6 2.2 1.1 3.9 1.4 3 .7 2 3.1 1.1 3 .3 0 .5-.3.1-.6-2.6-2.4-8-1.4-7.9-6.8-.6 1.4-2.9.8-1.8-.8.3.3 1.5.2 1.1-1.1h1.1"/></g><g fill="#ffce31"><path d="m51.6 34.4c1.3.8 2.7.8 4-.7.4-.5 1.1-.9 1.5-.9.5 0 .4-.5.8-.6-.2-.1-.3-.3-.6-.3.8-.3.6-.9 1-1.3-.3.1-.8-.4-1.3.3.1-.3 0-.6-.2-.8 0 .3-.6.4-.8 1.2-.1.5-.3.4-.4-.3 0-.5-.3-2-.6-2.7-.3-.7-.4-1.8 0-1.9-.1-.1-.2-.2-.3-.3-.5-.3-1.4-.2-1.6.4-.6 1.5 1 2.3.9 3.9-.1-1.1-2-1.4-2-2.6-.6.3-.5.8-.3 1.2-.4-.6-1.3.4-2-.4-.1 1.1.9 1.5 1.7 1.5-.4.7.1 1.3.7 1.5 0-1.2 2.5-.7 2.5 1.4-.1 1.8-2 1.9-3 1.4"/><path d="m55.1 36.1c3 .7 2 3.1 1.1 3-.6 0-1.1-.5-1.1-.9-.7.3-.5 1 0 1.3-1.4-.2-1.9.7-2 1.7.3-.5 1-.5 1.3-.4.3.1 1 .2 1.3-.2-.2.2.2.7-.2 1.1 1.1 0 1.6-1.1 1.4-1.6 1.5-1.3 1.2-3.5-1.8-4"/></g><path fill="#96877d" d="m48.8 29h-5.5l-.8-3 7.4-1.9z"/><path fill="#ffce31" d="m43 28.7h5.9v1.3h-5.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f7.svg
index cff8005..9008a55 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m10.764 26h50.611c-.899-4.434-2.777-8.512-5.398-12h-45.21v12"/><path d="m10.764 38v12h45.21c2.621-3.488 4.499-7.566 5.398-12h-50.611"/></g><g fill="#ed4c5c"><path d="m61.38 26h-50.611v12h50.611c.394-1.939.602-3.945.602-6 0-2.054-.208-4.06-.602-6"/><path d="m10.764 14h45.21c-5.473-7.286-14.186-12-24-12-8.289 0-15.783 3.371-21.21 8.806v3.194"/><path d="m10.764 50v3.193c5.43 5.436 12.924 8.807 21.21 8.807 9.814 0 18.527-4.715 24-12h-45.21"/></g><path fill="#428bc1" d="m10.764 10.791c-5.43 5.429-8.787 12.929-8.787 21.21 0 8.284 3.357 15.784 8.787 21.21l21.21-21.21-21.21-21.21"/><path fill="#fff" d="m9.961 38l4.02-2.81 4.01 2.81-1.514-4.574 3.999-2.923h-4.956l-1.543-4.503-1.501 4.503h-5l3.998 2.923z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m10.8 26h50.6c-.9-4.4-2.8-8.5-5.4-12h-45.2v12"/><path d="M10.8,38v12H56c2.6-3.5,4.5-7.6,5.4-12H10.8z"/></g><g fill="#ed4c5c"><path d="m61.4 26h-50.6v12h50.6c.4-1.9.6-3.9.6-6 0-2.1-.2-4.1-.6-6"/><path d="m10.8 14h45.2c-5.5-7.3-14.2-12-24-12-8.3 0-15.8 3.4-21.2 8.8 0 0 0 3.2 0 3.2"/><path d="M10.8,50v3.2C16.2,58.6,23.7,62,32,62c9.8,0,18.5-4.7,24-12H10.8z"/></g><path d="M10.8,10.8C5.3,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#428bc1"/><path fill="#fff" d="m10 38l4-2.8 4 2.8-1.5-4.6 4-2.9h-5l-1.5-4.5-1.5 4.5h-5l4 2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f8.svg
index c139d9c..e3f5f42 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21h-.002c5.429 5.43 12.929 8.788 21.21 8.788 13.07 0 24.18-8.356 28.29-20.02-.098.003-.193.015-.291.015"/><path fill="#3e4347" d="m60 22c.098 0 .193.012.291.015-4.115-11.659-15.225-20.02-28.29-20.02-8.285 0-15.785 3.358-21.21 8.788h.002v21.21h39.21c0-5.523 4.477-10 10-10"/><path fill="#f9f9f9" d="m60.29 22h-49.5v20h49.5c1.106-3.129 1.713-6.492 1.713-10s-.607-6.871-1.713-10"/><path fill="#c94747" d="M10.788,10.787C5.358,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L32,32L10.788,10.787z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0" fill="#699635"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10" fill="#3e4347"/><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f9.svg
index 722f2e2..f486607 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="M17,58V6C8.036,11.192,2,20.888,2,32C2,43.111,8.036,52.807,17,58z"/><path fill="#ed4c5c" d="m32 2c-5.466 0-10.586 1.47-15 4.02v51.954c4.414 2.552 9.534 4.02 15 4.02 16.568 0 30-13.432 30-30 0-16.569-13.432-30-30-30"/><g fill="#ffe62e"><path d="m17 20c-6.627 0-12 5.373-12 12 0 6.627 5.373 12 12 12s12-5.373 12-12c0-6.627-5.373-12-12-12m0 22.5c-5.798 0-10.5-4.701-10.5-10.5 0-5.798 4.702-10.5 10.5-10.5s10.5 4.701 10.5 10.5c0 5.799-4.702 10.5-10.5 10.5"/><path d="m21.1 43.682c-.194.193-.513.193-.707 0l-13.723-18.06c-.194-.194-.194-.513 0-.707l.354-.354c.194-.194.513-.194.707 0l13.724 18.06c.194.193.194.512 0 .707l-.355.354"/><path d="m17.25 19.5c.275 0 .5.225.5.5v24c0 .275-.225.5-.5.5h-.5c-.274 0-.5-.225-.5-.5v-24c0-.275.226-.5.5-.5h.5"/><path d="m28.948 33.34l-11.948-2.107v1.523l11.688 2.061c.271.047.531-.135.579-.406l.087-.492c.047-.272-.135-.531-.406-.579"/><path d="m17 31.08l-9.399-6.582c-.226-.158-.539-.103-.696.123l-.287.41c-.158.225-.103.538.122.696l10.26 7.184v-1.831"/><path d="m16.581 30l-9.373 9.395c-.194.193-.194.512 0 .707l.354.354c.194.193.513.193.707 0l8.313-8.333v-2.123z"/><path d="m17 25.549l-12.524 5.841c-.249.116-.358.415-.242.664l.211.453c.117.249.416.358.665.242l11.89-5.545v-1.655"/><path d="m28.08 27.18l-11.948-2.107v1.523l11.688 2.061c.271.048.531-.135.579-.405l.087-.493c.047-.271-.135-.531-.406-.579"/><path d="m16.882 38.875c-.249.115-.357.414-.241.664l.211.453c.116.248.415.357.664.242l9.969-4.648.54-1.907-11.143 5.196"/><path d="m16.907 35.49l-11.205-4.077v1.597l11.205 4.08z"/><path d="m9.125 38.754v1.504l14.809.986c.562-.416 1.084-.883 1.562-1.395l-16.371-1.095"/></g><path fill="#fff" d="m12 27v7c0 2.76 2.238 5 5 5s5-2.24 5-5v-7h-10"/><path fill="#ed4c5c" d="m17 41c-3.859 0-7-3.141-7-7v-9h14v9c0 3.859-3.14 7-7 7m-3-12v5c0 1.654 1.346 3 3 3s3-1.346 3-3v-5h-6"/><g fill="#0071bc"><path d="m16.14 29.362v1.654c0 .253.207.46.46.46h.806c.252 0 .459-.207.459-.46v-1.654h-1.725"/><path d="m16.14 31.862v1.654c0 .254.207.461.46.461h.806c.252 0 .459-.207.459-.461v-1.654h-1.725"/><path d="m14.13 31.862v1.654c0 .254.207.461.46.461h.806c.253 0 .46-.207.46-.461v-1.654h-1.726"/><path d="m18.15 31.862v1.654c0 .254.207.461.46.461h.805c.253 0 .46-.207.46-.461v-1.654h-1.725"/><path d="m16.14 34.3v1.654c0 .252.207.461.46.461h.806c.252 0 .459-.209.459-.461v-1.654h-1.725"/></g><g fill="#fff"><circle cx="17" cy="32.915" r=".249"/><circle cx="16.594" cy="33.416" r=".249"/><circle cx="17.414" cy="33.416" r=".249"/><circle cx="16.594" cy="32.422" r=".249"/><circle cx="17.414" cy="32.422" r=".249"/><circle cx="16.993" cy="30.408" r=".249"/><circle cx="16.586" cy="30.909" r=".249"/><circle cx="17.406" cy="30.909" r=".249"/><circle cx="16.586" cy="29.915" r=".249"/><circle cx="17.406" cy="29.915" r=".249"/><circle cx="19.01" cy="32.915" r=".249"/><circle cx="18.603" cy="33.416" r=".249"/><circle cx="19.422" cy="33.416" r=".249"/><circle cx="18.603" cy="32.422" r=".249"/><circle cx="19.422" cy="32.422" r=".249"/><circle cx="14.984" cy="32.911" r=".249"/><circle cx="14.578" cy="33.412" r=".249"/><circle cx="15.398" cy="33.412" r=".249"/><circle cx="14.578" cy="32.418" r=".249"/><circle cx="15.398" cy="32.418" r=".249"/><circle cx="16.997" cy="35.36" r=".249"/><circle cx="16.59" cy="35.859" r=".249"/><circle cx="17.41" cy="35.859" r=".249"/><circle cx="16.59" cy="34.865" r=".249"/><circle cx="17.41" cy="34.865" r=".249"/></g><path fill="#ffe62e" d="m16 28h2l-.25-1v-1h.237v-.451h-.25v.225h-.159v-.225h-.25v.225h-.208v-.225h-.253v.225h-.195v-.225h-.25v.225h-.172v-.225h-.25v.451h.13.12v1z"/><g fill="#3e4347"><path d="m17.295 28h-.1v-.435c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.435h-.1v-.435c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.435"/><path d="m16.967 26.917h-.589v-.485c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.485m-.489-.099h.39v-.385c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.385z"/><path d="m17.622 26.917h-.589v-.485c0-.163.132-.294.295-.294.162 0 .294.132.294.294v.485m-.489-.099h.39v-.385c0-.107-.087-.195-.194-.195s-.195.087-.195.195v.385z"/></g><path fill="#ffe62e" d="m11 28h2l-.25-1v-1h.237v-.451h-.25v.225h-.159v-.225h-.25v.225h-.208v-.225h-.253v.225h-.195v-.225h-.25v.225h-.172v-.225h-.25v.451h.125.125v1z"/><g fill="#3e4347"><path d="m12.295 28h-.1v-.435c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.435h-.1v-.435c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.435"/><path d="m11.967 26.917h-.589v-.485c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.485m-.489-.099h.39v-.385c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.385"/><path d="m12.622 26.917h-.589v-.485c0-.163.132-.294.295-.294.162 0 .294.132.294.294v.485m-.489-.099h.39v-.385c0-.107-.087-.195-.194-.195s-.195.087-.195.195v.385"/></g><path fill="#ffe62e" d="m11.03 33.896h2l-.247-1v-1h.237v-.451h-.249v.225h-.16v-.225h-.25v.225h-.211v-.225h-.25v.225h-.195v-.225h-.25v.225h-.172v-.225h-.253v.451h.128.125v1z"/><g fill="#3e4347"><path d="m12.328 33.896h-.1v-.435c0-.107-.088-.195-.195-.195s-.194.088-.194.195v.435h-.1v-.435c0-.163.132-.295.294-.295.163 0 .295.132.295.295v.435"/><path d="m12 32.813h-.589v-.485c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.485m-.489-.099h.39v-.385c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.385"/><path d="m12.655 32.813h-.589v-.485c0-.163.132-.294.295-.294.162 0 .294.132.294.294v.485m-.489-.099h.39v-.385c0-.107-.087-.195-.194-.195s-.195.087-.195.195v.385"/></g><path fill="#ffe62e" d="m21 34.02h2l-.25-1v-1h.237v-.45h-.25v.225h-.159v-.225h-.25v.225h-.208v-.225h-.253v.225h-.195v-.225h-.25v.225h-.172v-.225h-.25v.45h.13.12v1z"/><g fill="#3e4347"><path d="m22.295 34.02h-.1v-.435c0-.107-.088-.195-.195-.195s-.194.088-.194.195v.435h-.1v-.435c0-.163.132-.295.294-.295.163 0 .295.132.295.295v.435"/><path d="m21.967 32.938h-.589v-.485c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.485m-.489-.099h.39v-.385c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.385z"/><path d="m22.622 32.938h-.589v-.485c0-.163.132-.294.295-.294.162 0 .294.132.294.294v.485m-.489-.099h.39v-.385c0-.107-.087-.195-.194-.195s-.195.087-.195.195v.385z"/></g><path fill="#ffe62e" d="m21 28h2l-.25-1v-1h.237v-.451h-.25v.225h-.159v-.225h-.25v.225h-.208v-.225h-.253v.225h-.195v-.225h-.25v.225h-.172v-.225h-.25v.451h.13.12v1z"/><g fill="#3e4347"><path d="m22.295 28h-.1v-.435c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.435h-.1v-.435c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.435"/><path d="m21.967 26.917h-.589v-.485c0-.163.132-.294.294-.294.163 0 .295.132.295.294v.485m-.489-.099h.39v-.385c0-.107-.088-.195-.195-.195s-.194.087-.194.195v.385z"/><path d="m22.622 26.917h-.589v-.485c0-.163.132-.294.295-.294.162 0 .294.132.294.294v.485m-.489-.099h.39v-.385c0-.107-.087-.195-.194-.195s-.195.087-.195.195v.385z"/></g><path fill="#ffe62e" d="m14.214 39.553l1.414-1.413-.884-.531-.704-.707.165-.168-.318-.318-.177.176.159.16-.112.113-.159-.16-.177.178.159.157-.149.15-.16-.16-.171.18.154.16-.134.134-.163-.154-.177.173.159.159-.122.121-.159-.158-.177.175.319.32.089-.09.088-.087.707.707z"/><g fill="#3e4347"><path d="m15.13 38.639l-.071.07-.308-.309c-.075-.076-.199-.076-.275 0-.075.076-.075.199 0 .275l.308.309-.07.07-.308-.309c-.115-.115-.115-.301 0-.416s.302-.115.417 0l.307.31"/><path d="m14.13 38.1l-.417.416-.343-.344c-.115-.113-.115-.301 0-.416s.302-.115.416 0l.344.344m-.417.276l.275-.275-.272-.273c-.075-.076-.199-.076-.275 0s-.076.199 0 .275l.272.273"/><path d="m14.596 37.641l-.416.418-.343-.344c-.115-.115-.115-.301 0-.416s.302-.115.416 0l.343.342m-.416.275l.275-.275-.272-.271c-.076-.076-.199-.076-.275 0s-.076.199 0 .275l.272.271"/></g><path fill="#ffe62e" d="m19.771 39.553l-1.415-1.413.884-.531.707-.707-.168-.168.321-.318.174.176-.164.16.119.113.159-.16.176.178-.159.157.149.15.159-.16.177.18-.16.16.139.134.161-.154.17.173-.15.159.12.121.156-.158.177.175-.323.32-.08-.09-.09-.087-.709.707z"/><g fill="#3e4347"><path d="m18.855 38.639l.07.07.308-.309c.076-.076.199-.076.275 0s.076.199 0 .275l-.308.309.07.07.308-.309c.115-.115.115-.301 0-.416-.114-.115-.301-.115-.416 0l-.307.31"/><path d="m20.2 37.762c.115-.115.302-.115.416 0 .115.115.115.303 0 .416l-.343.344-.416-.416.343-.344m.346.345c.076-.076.076-.199 0-.275-.075-.076-.199-.076-.275 0l-.272.273.275.275.272-.273"/><path d="m19.731 37.3c.115-.115.302-.115.417 0 .114.115.114.301 0 .416l-.343.344-.417-.418.343-.342m.346.346c.076-.076.076-.199 0-.275-.075-.076-.199-.076-.275 0l-.272.271.276.275.271-.271"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,58V6C8,11.2,2,20.9,2,32C2,43.1,8,52.8,17,58z" fill="#699635"/><path d="m32 2c-5.5 0-10.6 1.5-15 4v52c4.4 2.6 9.5 4 15 4 16.6 0 30-13.4 30-30 0-16.6-13.4-30-30-30" fill="#ed4c5c"/><g fill="#ffe62e"><path d="m17 20c-6.6 0-12 5.4-12 12s5.4 12 12 12 12-5.4 12-12-5.4-12-12-12m0 22.5c-5.8 0-10.5-4.7-10.5-10.5 0-5.8 4.7-10.5 10.5-10.5s10.5 4.7 10.5 10.5-4.7 10.5-10.5 10.5"/><path d="m21.1 43.7c-.2.2-.5.2-.7 0l-13.7-18.1c-.2-.2-.2-.5 0-.7l.3-.3c.2-.2.5-.2.7 0l13.7 18.1c.2.2.2.5 0 .7l-.3.3"/><path d="m17.2 19.5c.3 0 .5.2.5.5v24c0 .3-.2.5-.5.5h-.5c-.3 0-.5-.2-.5-.5v-24c0-.3.2-.5.5-.5h.5"/><path d="m28.9 33.3l-11.9-2.1v1.5l11.7 2.1c.3 0 .5-.1.6-.4l.1-.5c0-.2-.2-.5-.5-.6"/><path d="m17 31.1l-9.4-6.6c-.2-.2-.5-.1-.7.1l-.3.4c-.2.2-.1.5.1.7l10.3 7.2v-1.8"/><path d="m16.6 30l-9.4 9.4c-.2.2-.2.5 0 .7l.4.4c.2.2.5.2.7 0l8.3-8.3v-2.2"/><path d="m17 25.5l-12.5 5.9c-.2.1-.4.4-.2.7l.2.5c.1.2.4.4.7.2l11.8-5.6v-1.7"/><path d="m28.1 27.2l-11.9-2.1v1.5l11.7 2.1c.3 0 .5-.1.6-.4l.1-.5c-.1-.3-.3-.6-.5-.6"/><path d="m16.9 38.9c-.2.1-.4.4-.2.7l.2.5c.1.2.4.4.7.2l10-4.6.5-1.9-11.2 5.1"/><path d="m16.9 35.5l-11.2-4.1v1.6l11.2 4.1z"/><path d="m9.1 38.8v1.5l14.8 1c.6-.4 1.1-.9 1.6-1.4l-16.4-1.1"/></g><path d="m12 27v7c0 2.8 2.2 5 5 5s5-2.2 5-5v-7h-10" fill="#fff"/><path d="m17 41c-3.9 0-7-3.1-7-7v-9h14v9c0 3.9-3.1 7-7 7m-3-12v5c0 1.7 1.3 3 3 3s3-1.3 3-3v-5h-6" fill="#ed4c5c"/><g fill="#0071bc"><path d="m16.1 29.4v1.6c0 .3.2.5.5.5h.8c.3 0 .5-.2.5-.5v-1.7h-1.8z"/><path d="m16.1 31.9v1.7c0 .3.2.5.5.5h.8c.3 0 .5-.2.5-.5v-1.7h-1.8"/><path d="m14.1 31.9v1.7c0 .3.2.5.5.5h.8c.3 0 .5-.2.5-.5v-1.7h-1.8"/><path d="m18.1 31.9v1.7c0 .3.2.5.5.5h.8c.3 0 .5-.2.5-.5v-1.7h-1.8"/><path d="m16.1 34.3v1.7c0 .3.2.5.5.5h.8c.3 0 .5-.2.5-.5v-1.7h-1.8"/></g><g fill="#fff"><circle cx="17" cy="32.9" r=".2"/><circle cx="16.6" cy="33.4" r=".2"/><circle cx="17.4" cy="33.4" r=".2"/><circle cx="16.6" cy="32.4" r=".2"/><circle cx="17.4" cy="32.4" r=".2"/><circle cx="17" cy="30.4" r=".2"/><circle cx="16.6" cy="30.9" r=".2"/><circle cx="17.4" cy="30.9" r=".2"/><circle cx="16.6" cy="29.9" r=".2"/><circle cx="17.4" cy="29.9" r=".2"/><circle cx="19" cy="32.9" r=".2"/><circle cx="18.6" cy="33.4" r=".2"/><circle cx="19.4" cy="33.4" r=".2"/><circle cx="18.6" cy="32.4" r=".2"/><circle cx="19.4" cy="32.4" r=".2"/><circle cx="15" cy="32.9" r=".2"/><circle cx="14.6" cy="33.4" r=".2"/><circle cx="15.4" cy="33.4" r=".2"/><circle cx="14.6" cy="32.4" r=".2"/><circle cx="15.4" cy="32.4" r=".2"/><circle cx="17" cy="35.4" r=".2"/><circle cx="16.6" cy="35.9" r=".2"/><circle cx="17.4" cy="35.9" r=".2"/><circle cx="16.6" cy="34.9" r=".2"/><circle cx="17.4" cy="34.9" r=".2"/></g><path fill="#ffe62e" d="m16 28h2l-.2-1v-1h.2v-.5h-.3v.3h-.1v-.3h-.3v.3h-.2v-.3h-.2v.3h-.2v-.3h-.3v.3h-.2v-.3h-.2v.5h.1.1v1z"/><g fill="#3e4347"><path d="m17.3 28h-.1v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4h-.1v-.4c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.4"/><path d="m17 26.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/><path d="m17.6 26.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/></g><path fill="#ffe62e" d="m11 28h2l-.2-1v-1h.2v-.5h-.3v.3h-.1v-.3h-.3v.3h-.2v-.3h-.2v.3h-.2v-.3h-.3v.3h-.2v-.3h-.2v.5h.1.1v1z"/><g fill="#3e4347"><path d="m12.3 28h-.1v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4h-.1v-.4c0-.2.1-.3.3-.3.2 0 .3.1.3.3 0 0 0 .4 0 .4"/><path d="m12 26.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/><path d="m12.6 26.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/></g><path fill="#ffe62e" d="m11 33.9h2l-.2-1v-1h.2v-.5h-.2v.3h-.2v-.3h-.2v.3h-.3v-.3h-.2v.3h-.2v-.3h-.2v.3h-.2v-.3h-.3v.5h.2.1v1z"/><g fill="#3e4347"><path d="m12.3 33.9h-.1v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4h-.1v-.4c0-.2.1-.3.3-.3.2 0 .3.1.3.3 0 0 0 .4 0 .4"/><path d="m12 32.8h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/><path d="m12.7 32.8h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/></g><path fill="#ffe62e" d="m21 34h2l-.2-1v-1h.2v-.4h-.3v.2h-.1v-.2h-.3v.2h-.2v-.2h-.2v.2h-.2v-.2h-.3v.2h-.2v-.2h-.2v.4h.1.1v1z"/><g fill="#3e4347"><path d="m22.3 34h-.1v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4h-.1v-.4c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.4"/><path d="m22 32.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/><path d="m22.6 32.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/></g><path fill="#ffe62e" d="m21 28h2l-.2-1v-1h.2v-.5h-.3v.3h-.1v-.3h-.3v.3h-.2v-.3h-.2v.3h-.2v-.3h-.3v.3h-.2v-.3h-.2v.5h.1.1v1z"/><g fill="#3e4347"><path d="m22.3 28h-.1v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4h-.1v-.4c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.4"/><path d="m22 26.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/><path d="m22.6 26.9h-.6v-.5c0-.2.1-.3.3-.3.2 0 .3.1.3.3v.5m-.5-.1h.4v-.4c0-.1-.1-.2-.2-.2s-.2.1-.2.2v.4"/></g><path fill="#ffe62e" d="m14.2 39.6l1.4-1.5-.9-.5-.7-.7.2-.2-.3-.3-.2.2.2.2-.1.1-.2-.2-.2.2.2.1-.2.2-.1-.2-.2.2.2.2-.2.1-.1-.2-.2.2.1.2-.1.1-.1-.2-.2.2.3.3h.1l.1-.1.7.7z"/><g fill="#3e4347"><path d="m15.1 38.6l-.4-.2c-.1-.1-.2-.1-.3 0-.1.1-.1.2 0 .3l.3.3-.1.1-.3-.3c-.1-.1-.1-.3 0-.4s.3-.1.4 0l.4.2"/><path d="m14.1 38.1l-.4.4-.3-.3c-.1-.1-.1-.3 0-.4s.3-.1.4 0l.3.3m-.4.3l.3-.3-.3-.3c-.1-.1-.2-.1-.3 0s-.1.2 0 .3l.3.3"/><path d="m14.6 37.6l-.4.4-.3-.3c-.1-.1-.1-.3 0-.4s.3-.1.4 0l.3.3m-.4.3l.3-.3-.3-.3c-.1-.1-.2-.1-.3 0s-.1.2 0 .3l.3.3"/></g><path fill="#ffe62e" d="m19.8 39.6l-1.4-1.5.8-.5.7-.7-.1-.2.3-.3.2.2-.2.2.1.1.2-.2.2.2-.2.1.2.2.1-.2.2.2-.2.2.2.1.1-.2.2.2-.2.2.2.1.1-.2.2.2-.3.3h-.1l-.1-.1-.7.7z"/><g fill="#3e4347"><path d="m18.9 38.6l.4-.2c.1-.1.2-.1.3 0s.1.2 0 .3l-.4.3.1.1.3-.3c.1-.1.1-.3 0-.4-.1-.1-.3-.1-.4 0l-.3.2"/><path d="m20.2 37.8c.1-.1.3-.1.4 0 .1.1.1.3 0 .4l-.3.3-.4-.4.3-.3m.3.3c.1-.1.1-.2 0-.3-.1-.1-.2-.1-.3 0l-.2.3.3.3.2-.3"/><path d="m19.7 37.3c.1-.1.3-.1.4 0 .1.1.1.3 0 .4l-.3.3-.4-.4.3-.3m.4.3c.1-.1.1-.2 0-.3-.1-.1-.2-.1-.3 0l-.3.3.3.3.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fc.svg
index bf63750..a88c9f8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><circle fill="#ffe62e" cx="24" cy="32" r="16"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#42ade2"/><circle cx="24" cy="32" r="16" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fe.svg
index c27d0b9..93e40d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5-1f1fe.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#ed4c5c" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#f9f9f9" d="M60.286,42C61.393,38.871,62,35.508,62,32s-0.607-6.871-1.714-10H3.714C2.607,25.129,2,28.492,2,32
- s0.607,6.871,1.714,10H60.286z"/><path fill="#3e4347" d="m32 41c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9m0-17.709c-4.803 0-8.709 3.906-8.709 8.709s3.906 8.71 8.709 8.71 8.709-3.907 8.709-8.71-3.906-8.709-8.709-8.709"/><path fill="#ed4c5c" d="m32 24.408c-4.191 0-7.592 3.4-7.592 7.592 0 4.19 3.4 7.592 7.592 7.592 4.19 0 7.592-3.401 7.592-7.592 0-4.191-3.402-7.592-7.592-7.592m0 13.286c-3.144 0-5.694-2.551-5.694-5.694s2.551-5.694 5.694-5.694 5.694 2.551 5.694 5.694-2.551 5.694-5.694 5.694"/><path fill="#ffce31" d="m26 32c0-3.313 2.688-6 6-6s6 2.688 6 6h1.313c0-4.04-3.276-7.313-7.313-7.313s-7.313 3.276-7.313 7.313h1.313"/><path fill="#428bc1" d="m34.867 31.651c0 1.579-1.28 2.858-2.858 2.858-1.579 0-2.859-1.279-2.859-2.858s1.28-2.858 2.859-2.858c1.578 0 2.858 1.279 2.858 2.858"/><path fill="#ffce31" d="m33.554 33.619l-1.551-1.072-1.551 1.072.581-1.715-1.356-1.072h1.744l.582-1.715.581 1.715h1.745l-1.357 1.072.582 1.715"/><path fill="#699635" d="m29.412 29.485c0 0-.356-.102-.641-.097.004-.006.009-.009.012-.015.224-.343.297-.983.297-.983s-.552.325-.779.666c-.117-.248-.332-.501-.332-.501s-.261.294-.222.579c.04.286.403.712.403.712s.538.156.818.076c.279-.08.444-.437.444-.437"/><path fill="#83bf4f" d="m28.899 30.3c0 0-.371-.007-.645.071.003-.006.006-.012.007-.018.128-.388.032-1.026.032-1.026s-.45.456-.58.844c-.178-.209-.452-.399-.452-.399s-.175.353-.063.618c.112.265.575.584.575.584s.561.011.81-.138.316-.536.316-.536"/><path fill="#699635" d="m28.616 31.23c0 0-.358.088-.602.233 0-.007.001-.012.001-.018.021-.408-.237-1-.237-1s-.316.557-.34.963c-.227-.156-.54-.269-.54-.269s-.078.385.1.613c.178.227.708.415.708.415s.545-.132.746-.341c.202-.206.164-.596.164-.596"/><path fill="#83bf4f" d="m28.584 32.19c0 0-.323.179-.521.381-.001-.007-.001-.012-.003-.018-.085-.4-.489-.905-.489-.905s-.161.619-.078 1.018c-.259-.092-.592-.121-.592-.121s.024.392.257.566c.231.174.791.221.791.221s.492-.269.633-.521c.141-.252.002-.621.002-.621"/><path fill="#699635" d="m28.805 33.13c0 0-.266.256-.403.502-.003-.006-.005-.011-.008-.016-.187-.365-.71-.749-.71-.749s.008.639.191 1c-.273-.022-.603.035-.603.035s.126.371.396.479c.268.108.821.01.821.01s.405-.387.476-.666-.16-.599-.16-.599"/><path fill="#83bf4f" d="m29.26 33.982c0 0-.189.315-.259.589-.004-.005-.006-.009-.012-.014-.276-.305-.88-.541-.88-.541s.173.616.445.92c-.271.049-.573.189-.573.189s.219.327.508.363c.288.035.796-.202.796-.202s.291-.478.286-.767c-.007-.287-.311-.537-.311-.537"/><path fill="#699635" d="m29.927 34.688c0 0-.101.354-.097.635-.005-.003-.01-.007-.015-.011-.345-.223-.991-.296-.991-.296s.328.55.671.774c-.249.116-.504.329-.504.329s.296.261.584.222c.287-.041.716-.4.716-.4s.158-.536.077-.813c-.081-.277-.441-.44-.441-.44"/><path fill="#83bf4f" d="m30.752 35.2c0 0-.006.368.072.638-.006-.002-.01-.004-.018-.007-.391-.125-1.033-.03-1.033-.03s.46.446.849.576c-.209.176-.401.447-.401.447s.354.174.622.063c.268-.112.589-.57.589-.57s.012-.558-.139-.805c-.15-.246-.541-.312-.541-.312"/><path fill="#699635" d="m34.588 29.485c0 0 .356-.102.641-.097-.004-.006-.009-.009-.012-.015-.224-.343-.297-.983-.297-.983s.552.325.779.666c.117-.248.332-.501.332-.501s.261.294.222.579c-.04.286-.403.712-.403.712s-.538.156-.818.076c-.28-.08-.444-.437-.444-.437"/><path fill="#83bf4f" d="m35.1 30.3c0 0 .371-.007.644.071-.002-.006-.005-.012-.006-.018-.129-.388-.032-1.026-.032-1.026s.45.456.58.844c.178-.209.452-.399.452-.399s.175.353.063.618c-.112.265-.575.584-.575.584s-.561.011-.81-.138-.316-.536-.316-.536"/><path fill="#699635" d="m35.38 31.23c0 0 .358.088.602.233 0-.007-.001-.012-.001-.018-.021-.408.237-1 .237-1s.316.557.34.963c.226-.156.54-.269.54-.269s.078.385-.1.613c-.178.227-.708.415-.708.415s-.545-.132-.746-.341c-.202-.206-.164-.596-.164-.596"/><path fill="#83bf4f" d="m35.416 32.19c0 0 .323.179.521.381.001-.007.001-.012.003-.018.085-.4.489-.905.489-.905s.161.619.078 1.018c.259-.092.592-.121.592-.121s-.024.392-.257.566c-.231.174-.791.221-.791.221s-.493-.269-.633-.521c-.141-.252-.002-.621-.002-.621"/><path fill="#699635" d="m35.2 33.13c0 0 .266.256.403.502.003-.006.005-.011.008-.016.187-.365.71-.749.71-.749s-.008.639-.191 1c.273-.022.603.035.603.035s-.126.371-.396.479c-.268.108-.821.01-.821.01s-.405-.387-.476-.666.16-.599.16-.599"/><path fill="#83bf4f" d="m34.737 33.982c0 0 .189.315.259.589.004-.005.006-.009.012-.014.276-.305.88-.541.88-.541s-.173.616-.446.92c.271.049.574.189.574.189s-.219.327-.508.363c-.288.035-.796-.202-.796-.202s-.291-.478-.286-.767c.006-.287.311-.537.311-.537"/><path fill="#699635" d="m34.07 34.688c0 0 .101.354.097.635.005-.003.01-.007.015-.011.345-.223.991-.296.991-.296s-.328.55-.671.774c.249.116.504.329.504.329s-.296.261-.584.222c-.287-.041-.716-.4-.716-.4s-.158-.536-.077-.813c.081-.277.441-.44.441-.44"/><path fill="#83bf4f" d="m33.25 35.2c0 0 .006.368-.072.638.006-.002.01-.004.018-.007.391-.125 1.033-.03 1.033-.03s-.46.446-.849.576c.209.176.401.447.401.447s-.354.174-.622.063c-.268-.112-.589-.57-.589-.57s-.012-.558.139-.805c.15-.246.541-.312.541-.312"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#428bc1"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#f9f9f9"/><path d="m32 41c-5 0-9-4-9-9s4-9 9-9 9 4 9 9-4 9-9 9m0-17.7c-4.8 0-8.7 3.9-8.7 8.7s3.9 8.7 8.7 8.7 8.7-3.9 8.7-8.7-3.9-8.7-8.7-8.7" fill="#3e4347"/><path d="m32 24.4c-4.2 0-7.6 3.4-7.6 7.6 0 4.2 3.4 7.6 7.6 7.6 4.2 0 7.6-3.4 7.6-7.6s-3.4-7.6-7.6-7.6m0 13.3c-3.1 0-5.7-2.6-5.7-5.7s2.6-5.7 5.7-5.7 5.7 2.6 5.7 5.7-2.6 5.7-5.7 5.7" fill="#ed4c5c"/><path d="M26,32c0-3.3,2.7-6,6-6s6,2.7,6,6h1.3c0-4-3.3-7.3-7.3-7.3S24.7,28,24.7,32H26z" fill="#ffce31"/><path d="m34.9 31.7c0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9s1.3-2.9 2.9-2.9c1.6 0 2.9 1.3 2.9 2.9" fill="#428bc1"/><path d="m33.6 33.6l-1.6-1.1-1.6 1.1.6-1.7-1.4-1.1h1.7l.6-1.7.6 1.7h1.7l-1.2 1.1.6 1.7" fill="#ffce31"/><path d="m29.4 29.5c0 0-.4-.1-.6-.1.2-.3.3-1 .3-1s-.6.3-.8.7c-.1-.2-.3-.5-.3-.5s-.3.3-.2.6c0 .3.4.7.4.7s.5.2.8.1c.2-.2.4-.5.4-.5" fill="#699635"/><path d="m28.9 30.3c0 0-.4 0-.6.1.1-.4 0-1 0-1s-.5.5-.6.8c-.2-.2-.5-.4-.5-.4s-.2.4-.1.6.6.6.6.6.6 0 .8-.1.4-.6.4-.6" fill="#83bf4f"/><path d="m28.6 31.2c0 0-.4.1-.6.2 0-.4-.2-1-.2-1s-.3.6-.3 1c-.2-.2-.5-.3-.5-.3s-.1.4.1.6c.2.2.7.4.7.4s.5-.1.7-.3c.2-.2.1-.6.1-.6" fill="#699635"/><path d="m28.6 32.2c0 0-.3.2-.5.4-.1-.4-.5-.9-.5-.9s-.2.6-.1 1c-.3-.1-.6-.1-.6-.1s0 .4.3.6c.2.2.8.2.8.2s.5-.3.6-.5 0-.7 0-.7" fill="#83bf4f"/><path d="m28.8 33.1c0 0-.3.3-.4.5-.2-.4-.7-.7-.7-.7s0 .6.2 1c-.3 0-.6 0-.6 0s.1.4.4.5c.3.1.8 0 .8 0s.4-.4.5-.7-.2-.6-.2-.6" fill="#699635"/><path d="m29.3 34c0 0-.2.3-.3.6-.3-.3-.9-.5-.9-.5s.2.6.4.9c-.3 0-.6.2-.6.2s.2.3.5.4c.3 0 .8-.2.8-.2s.3-.5.3-.8c.1-.4-.2-.6-.2-.6" fill="#83bf4f"/><path d="m29.9 34.7c0 0-.1.4-.1.6-.3-.2-1-.3-1-.3s.3.5.7.8c-.2.1-.5.3-.5.3s.3.3.6.2c.3 0 .7-.4.7-.4s.2-.5.1-.8c-.1-.2-.5-.4-.5-.4" fill="#699635"/><path d="m30.8 35.2c0 0 0 .4.1.6-.4-.1-1 0-1 0s.5.4.8.6c-.2.2-.4.4-.4.4s.4.2.6.1c.3-.1.6-.6.6-.6s0-.6-.1-.8c-.3-.2-.6-.3-.6-.3" fill="#83bf4f"/><path d="m34.6 29.5c0 0 .4-.1.6-.1-.2-.3-.3-1-.3-1s.6.3.8.7c.1-.2.3-.5.3-.5s.3.3.2.6c0 .3-.4.7-.4.7s-.5.1-.8 0c-.2-.1-.4-.4-.4-.4" fill="#699635"/><path d="m35.1 30.3c0 0 .4 0 .6.1-.1-.4 0-1 0-1s.5.5.6.8c.2-.2.5-.4.5-.4s.2.4.1.6-.7.6-.7.6-.6 0-.8-.1-.3-.6-.3-.6" fill="#83bf4f"/><path d="m35.4 31.2c0 0 .4.1.6.2 0-.4.2-1 .2-1s.3.6.3 1c.2-.2.5-.3.5-.3s.1.4-.1.6c-.2.2-.7.4-.7.4s-.5-.1-.7-.3c-.2-.2-.1-.6-.1-.6" fill="#699635"/><path d="m35.4 32.2c0 0 .3.2.5.4.1-.4.5-.9.5-.9s.2.6.1 1c.3-.1.6-.1.6-.1s0 .4-.3.6c-.2.2-.8.2-.8.2s-.5-.3-.6-.5c-.1-.3 0-.7 0-.7" fill="#83bf4f"/><path d="m35.2 33.1c0 0 .3.3.4.5.2-.4.7-.7.7-.7s0 .6-.2 1c.3 0 .6 0 .6 0s-.1.4-.4.5c-.3.1-.8 0-.8 0s-.4-.4-.5-.7.2-.6.2-.6" fill="#699635"/><path d="m34.7 34c0 0 .2.3.3.6.3-.3.9-.5.9-.5s-.2.6-.4.9c.3 0 .6.2.6.2s-.2.3-.5.4c-.3 0-.8-.2-.8-.2s-.3-.5-.3-.8c-.1-.4.2-.6.2-.6" fill="#83bf4f"/><path d="m34.1 34.7c0 0 .1.4.1.6.3-.2 1-.3 1-.3s-.3.5-.7.8c.2.1.5.3.5.3s-.3.3-.6.2c-.3 0-.7-.4-.7-.4s-.2-.5-.1-.8c.1-.2.5-.4.5-.4" fill="#699635"/><path d="m33.2 35.2c0 0 0 .4-.1.6.4-.1 1 0 1 0s-.5.4-.8.6c.2.2.4.4.4.4s-.4.2-.6.1c-.3-.1-.6-.6-.6-.6s0-.6.1-.8c.3-.2.6-.3.6-.3" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f5.svg
new file mode 100644
index 0000000..2a769ae
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m41.4 33.9c-1.7 1.4-4.1 2.1-7.3 2.1h-6v10.4h-6v-29h12.5c2.9 0 5.2.7 6.9 2.2 1.7 1.5 2.6 3.8 2.6 6.9-.2 3.6-1 6-2.7 7.4m-4.6-10.4c-.8-.6-1.8-1-3.2-1h-5.5v8.5h5.5c1.4 0 2.5-.3 3.2-1s1.2-1.8 1.2-3.3c-.1-1.5-.5-2.6-1.2-3.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f6-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f6-1f1e6.svg
index 233afd2..6c5ce79 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f6-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f6-1f1e6.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m32 2c-5.266 0-10.213 1.361-14.516 3.746v52.51c4.303 2.383 9.25 3.744 14.516 3.744 16.568 0 30-13.432 30-30s-13.432-30-30-30"/><path opacity=".33" fill="#9450e0" d="m32 2c-5.266 0-10.213 1.361-14.516 3.746v52.51c4.303 2.383 9.25 3.744 14.516 3.744 16.568 0 30-13.432 30-30s-13.432-30-30-30"/><path fill="#f9f9f9" d="M2,32c0,11.303,6.252,21.141,15.484,26.256L28,56l-10-3l10-3l-10-3l10-3l-10-3l10-3l-10-3l10-3l-10-3l10-3
- l-10-3l10-3l-10-3l10-3l-10-3l10-3L17.484,5.746C8.252,10.861,2,20.699,2,32z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-5.3 0-10.2 1.4-14.5 3.7v52.5c4.3 2.4 9.2 3.8 14.5 3.8 16.6 0 30-13.4 30-30s-13.4-30-30-30" fill="#c94747"/><path d="m32 2c-5.3 0-10.2 1.4-14.5 3.7v52.5c4.3 2.4 9.2 3.8 14.5 3.8 16.6 0 30-13.4 30-30s-13.4-30-30-30" opacity=".33" fill="#9450e0"/><path d="m2 32c0 11.3 6.3 21.1 15.5 26.3l10.5-2.3-10-3 10-3-10-3 10-3-10-3 10-3-10-3 10-3-10-3 10-3-10-3 10-3-10-3 10-3-10-3 10-3-10.5-2.3c-9.2 5.2-15.5 15-15.5 26.3" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f6.svg
new file mode 100644
index 0000000..ea3e84d
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m44.9 37.4c-.5 1.7-1.3 3-2.3 4.1l3.3 3.1-3.1 3.4-3.5-3.3c-1.1.6-2 1.1-2.8 1.4-1.3.4-2.9.7-4.7.7-3.8 0-6.9-1.1-9.4-3.4-3-2.7-4.5-6.7-4.5-12 0-5.3 1.5-9.3 4.6-12 2.5-2.2 5.6-3.3 9.4-3.3 3.8 0 6.9 1.2 9.4 3.5 2.9 2.7 4.4 6.5 4.4 11.4.1 2.5-.2 4.7-.8 6.4m-11 3.9c.4-.1.8-.3 1.4-.5l-3-2.8 3.1-3.3 2.9 2.8c.5-.9.8-1.8 1-2.5.3-1.1.4-2.3.4-3.7 0-3.3-.7-5.8-2-7.5-1.3-1.8-3.3-2.7-5.8-2.7-2.4 0-4.3.9-5.7 2.6-1.4 1.7-2.2 4.3-2.2 7.7 0 4 1 6.8 3.1 8.5 1.3 1.1 2.9 1.7 4.8 1.7.7 0 1.4-.1 2-.3" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1ea.svg
index e0310fc..634a34f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m14 8v48l24-24z"/><path fill="#ffce31" d="m56 14c-5.473-7.286-14.186-12-24-12-6.754 0-12.985 2.233-18 6l24 24 18-18"/><path fill="#ed4c5c" d="M56,50c3.768-5.014,6-11.246,6-18c0-6.753-2.232-12.985-6-17.999L38.001,32L56,50z"/><path fill="#699635" d="m38 32l-24 24c5.01 3.768 11.246 6 18 6 9.814 0 18.527-4.713 24-12l-17.999-18"/><path fill="#2a5f9e" d="M6,17.041C3.46,21.445,2,26.55,2,32c0,5.45,1.46,10.555,4,14.959V17.041z"/><path fill="#fff" d="m6 17.04v29.918c1.13 1.961 2.472 3.781 4 5.43v-40.777c-1.528 1.648-2.87 3.469-4 5.429"/><path fill="#ed4c5c" d="M10,11.612v40.776c1.223,1.318,2.56,2.529,4,3.611V8C12.56,9.082,11.223,10.293,10,11.612z"/><circle fill="#fff" cx="38" cy="32" r="12"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m14 8v48l24-24z"/><path d="m56 14c-5.5-7.3-14.2-12-24-12-6.8 0-13 2.2-18 6l24 24 18-18" fill="#ffce31"/><path d="m56 50c3.8-5 6-11.2 6-18 0-6.8-2.2-13-6-18l-18 18 18 18" fill="#ed4c5c"/><path d="M38,32L14,56c5,3.8,11.2,6,18,6c9.8,0,18.5-4.7,24-12L38,32z" fill="#699635"/><path d="m6 17c-2.5 4.4-4 9.5-4 15s1.5 10.6 4 15v-30" fill="#2a5f9e"/><path d="m6 17v30c1.1 2 2.5 3.8 4 5.4v-40.8c-1.5 1.7-2.9 3.5-4 5.4" fill="#fff"/><path d="m10 11.6v40.8c1.2 1.3 2.6 2.5 4 3.6v-48c-1.4 1.1-2.8 2.3-4 3.6" fill="#ed4c5c"/><circle cx="38" cy="32" r="12" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f4.svg
index 83372dc..20553c7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f4.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#c94747" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#ffce31" d="M22,60.286C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.714V3.714C38.871,2.607,35.508,2,32,2
- s-6.871,0.607-10,1.714V60.286z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#2a5f9e"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#c94747"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f8.svg
index 4cf8cc9..276ec5d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m31.999 2c-13.06 0-24.17 8.35-28.29 20h56.57c-4.119-11.65-15.224-20-28.29-20"/><path fill="#f9f9f9" d="m31.999 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#2872a0" d="m3.713 22c-1.106 3.129-1.714 6.492-1.714 10s.607 6.871 1.714 10h56.57c1.108-3.129 1.715-6.492 1.715-10s-.607-6.871-1.715-10h-56.57"/><path fill="#ed4c5c" d="m15.473 21.719v16.17c0 5.583 4.714 10.11 10.526 10.11 5.813 0 10.526-4.525 10.526-10.11v-16.17h-21.05"/><path fill="#fff" d="m29.753 46.34l-.17-.867-.744-1.527.266-.152-.234-.859-.66-1.054-.008-.029.176-.138-.18-.861-.501-1.041.777-1.539.504 1.644.428-.56h.001l.644.88.166-.622.583.344-.13-1.166-.002-.005.021.028 1.411.439-.993-1.343.146.008-.769-1.648.199-.587.474 1.01.208-.388.798 2.247.029-.054.426.783.194-.405.811 1.578.291-.866 1.164.931c0 0-.143-2.961-.082-3.945.158-2.583 1.132-7.853.436-10.345-.329-1.177-2.708-4.069-2.708-4.069s-.14 3.511-.724 4.558c-.241.432-2.036 1.508-2.036 1.508l-.729-.229.29-.082-1.282-1.319.473-2.636 1.271-1.85-1.969.111-1.515.428.399.645-.903 3.072-.903-3.072.399-.645-1.514-.428-1.97-.111 1.271 1.85.473 2.636-1.281 1.319.289.082-.729.229c0 0-1.794-1.076-2.034-1.508-.584-1.047-.726-4.558-.726-4.558s-2.378 2.893-2.707 4.069c-.697 2.492.275 7.761.434 10.345.061.984-.08 3.945-.08 3.945l1.163-.931.291.866.811-1.578.194.405.426-.783.029.054.798-2.247.208.388.474-1.01.199.587-.769 1.648.146-.008-.993 1.343 1.411-.439.021-.028-.002.005-.13 1.166.583-.344.166.622.644-.88h.001l.427.56.505-1.644.777 1.539-.502 1.039-.18.861.176.138-.008.029-.661 1.054-.234.859.267.152-.744 1.527-.171.867h7.508v.002"/><g fill="#ffce31"><path d="m20.05 41.696l.171-.376.909-.38.552-.221-.022-.028.49-.03.08-.074-.663-.277-.112-.08-.415.16-.44.275.815-.936.675-1.609-1.11.715-1.015 1.756-.365.195-1-.025-.498-.051-.553.31.078.06h.415l.331.19.976-.08-1 .321-.277.349.06.63.092-.018.075-.232.457-.08.944-.71-.658 1.029-.102.531.31.677.104-.102.064-.465h.002l.358-.427.274-.997"/><path d="m31.949 41.696l-.171-.376-.909-.38-.549-.221.018-.028-.486-.03-.08-.074.659-.277.112-.08.415.16.441.275-.815-.936-.676-1.609 1.112.715 1.01 1.756.369.195 1-.025.501-.051.549.31-.081.06h-.408l-.335.19-.976-.08 1 .321.274.349-.061.63-.088-.018-.075-.232-.462-.08-.94-.71.663 1.029.097.531-.31.677-.104-.102-.064-.465-.362-.427-.271-.997"/><path d="m21.449 22.2c-.991.107-.944.756-.018 1.674.178.176.238.17.276-.014.066-.318.419-.507.604-.264.126.166.098.26.518.201.14.117.272.227.38.321-.001-.001-.003-.002-.004-.003-.139-.026-.485.082-1.092.232-.45.111-.846-.085-1.178-.48.11.55 1.299.816 1.224.813.117.229.139.256.202.275.386.076.792-.166 1.181-.094.853.158-.57-2.305-.543-2.402.071-.247-1.327-.692-1.55-.259"/><path d="m29.636 24.96c.063-.02.085-.047.202-.275-.075.004 1.113-.263 1.224-.813-.332.396-.728.592-1.178.48-.606-.15-.953-.259-1.092-.232-.001.001-.003.002-.004.003.107-.095.24-.204.38-.321.42.059.392-.035.518-.201.186-.243.538-.055.604.264.037.184.099.189.275.014.928-.918.975-1.566-.017-1.674-.223-.433-1.619.012-1.549.26.027.098-1.397 2.561-.545 2.402.39-.073.796.169 1.182.093"/></g><path fill="#ed4c5c" d="m21.565 28.617v7.285c0 2.189 1.985 3.965 4.434 3.965s4.434-1.775 4.434-3.965v-7.285h-8.868"/><g fill="#fff"><path d="m24.773 27.311h2.5v15h-2.5z"/><path d="m19.12 32.31h13.75v2.5h-13.75z"/><path d="m24 30.436l-.98.976.277-.976-.277-.977.98.977"/><path d="m24 36.686l-.98.976.277-.976-.277-.977.98.977"/><path d="m28.05 30.436l.97.976-.269-.976.269-.977-.97.977"/><path d="m28.05 36.686l.97.976-.269-.976.269-.977-.97.977"/></g><path fill="#428bc1" d="m26.999 11.733l-1.989.012-.011 1.988 1.988-.011.012-1.989"/><g fill="#ffce31"><path d="m25.11 10.364l.19.183.185-.178h.328v1.256l-.817.018-.021.211.01.146 1.014-.02 1.01.02.01-.146-.02-.211-.81-.018v-1.256h.323l.185.178.186-.183.186-.188-.186-.188-.186-.182-.185.186h-.323v-.385l.176-.187-.186-.189-.181-.191-.186.191-.18.189.18.187v.385h-.328l-.185-.186-.19.182-.18.188.18.188"/><path d="m32.463 14.441c-1.29-.725-2.132-.854-2.438-.374-.026.045-.04.097-.055.147-1.627-.824-2.763-.949-3.971-.401-1.209-.548-2.346-.421-3.974.401-.015-.05-.027-.103-.055-.146-.305-.482-1.149-.352-2.438.375-1.273.726-2.515 1.733-2.232 2.148.089.675.498 1.323 1.229 1.978.786.413 2.393.518 4.116.434 2.233-.112 4.479-.112 6.712 0 1.722.083 3.324-.022 4.109-.434.73-.654 1.139-1.303 1.229-1.979.285-.413-.955-1.421-2.232-2.149"/></g><g fill="#ed4c5c"><path d="m27.416 17.24c.779-.726 1.334-1.436 1.664-2.146-.691-.212-1.39-.288-2.034-.209.123.785.247 1.57.37 2.355"/><path d="m24.586 17.241c.123-.785.246-1.57.369-2.355-.645-.079-1.343-.003-2.035.209.33.71.886 1.421 1.666 2.146"/><path d="m32.585 15.758c-.114-.132-.316-.269-.561-.386-.28-.134-.571-.208-.816-.227-.066.809-.432 1.601-1.098 2.401.301-.039.575-.09.785-.166.762-.448 1.331-.884 1.709-1.32.107-.064.095-.172-.019-.302"/><path d="m20.792 15.15c-.245.019-.536.093-.816.227-.503.242-.799.556-.582.689.017.013.032.025.048.036.376.425.93.846 1.662 1.283.211.076.485.127.787.166-.666-.801-1.033-1.593-1.099-2.401"/></g><path fill="#ffce31" d="m18.58 18.485h14.838v2.043h-14.838z"/><g fill="#428bc1"><path d="m18.605 18.901l-.368.658.471.551.707-.696-.81-.513"/><path d="m33.395 18.901l-.811.513.706.696.472-.551-.367-.658"/><path d="m25.999 18.449l-.759.611.759.605.762-.605-.762-.611"/></g><g fill="#ed4c5c"><path d="m22.264 19.797l.728-.667-.792-.547-.728.661.792.553"/><path d="m29.735 19.797l.791-.553-.728-.661-.788.547.725.667"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#f9f9f9"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#2872a0"/><path d="m15.5 21.7v16.2c0 5.6 4.7 10.1 10.5 10.1 5.8 0 10.5-4.5 10.5-10.1v-16.2h-21" fill="#ed4c5c"/><path d="m29.8 46.3l-.2-.9-.8-1.4.3-.2-.2-.9-.7-1.1.2-.1-.2-.9-.5-1 .8-1.5.5 1.6.4-.6.6.9.2-.6.6.3-.1-1.2 1.4.4-1-1.3h.1l-.8-1.6.2-.6.5 1 .2-.4.8 2.2v-.1l.4.8.2-.4.8 1.6.3-.9 1.2.9c0 0-.1-3-.1-3.9.2-2.6 1.1-7.9.4-10.3-.3-1.2-2.7-4.1-2.7-4.1s-.1 3.5-.7 4.6c-.2.4-2 1.5-2 1.5l-.7-.1.3-.1-1.3-1.3.5-2.6 1.3-1.9-2 .1-1.5.4.4.6-.9 3.2-.9-3.1.4-.6-1.5-.5-2-.1 1.3 1.9.5 2.6-1.3 1.3.3.1-.8.2c0 0-1.8-1.1-2-1.5-.6-1-.7-4.6-.7-4.6s-2.4 2.9-2.7 4.1c-.7 2.5.3 7.8.4 10.3.1 1-.1 3.9-.1 3.9l1.2-.9.3.9.8-1.6.2.4.4-.8v.1l.8-2.2.2.4.5-1 .2.6-.8 1.6h.1l-1 1.3 1.4-.4v1.2l.6-.3.2.6.6-.9.4.6.5-1.6.8 1.5-.5 1-.2.9.2.1-.7 1.1-.2.9.3.2-.7 1.5-.2.9 7.5-.2" fill="#fff"/><g fill="#ffce31"><path d="m20 41.7l.2-.4.9-.4.6-.2h.4l.1-.1-.6-.3-.1-.1-.5.2-.4.3.8-1 .7-1.6-1.1.7-1 1.8-.4.2h-1l-.5-.1-.6.3.1.1h.4l.4.2.9-.1-1 .3-.2.4v.6h.1l.1-.3h.5l.9-.8-.7 1.1-.1.5.3.7.2-.1v-.5l.4-.4z"/><path d="m31.9 41.7l-.1-.4-.9-.4-.6-.2h-.4l-.1-.1.6-.3.1-.1.5.2.4.3-.8-1-.7-1.6 1.1.7 1 1.8.4.2h1l.5-.1.6.3-.1.1h-.4l-.4.2-.9-.1 1 .3.2.4v.6h-.1l-.1-.3h-.5l-.9-.8.7 1.1.1.5-.3.7-.2-.1v-.5l-.4-.4z"/><path d="m21.4 22.2c-1 .1-.9.8 0 1.7.2.2.2.2.3 0 .1-.3.4-.5.6-.3.1.2.1.3.5.2.1.1.3.2.4.3-.1 0-.5.1-1.1.2-.5.1-.8-.1-1.2-.5.1.5 1.3.8 1.2.8.1.2.1.3.2.3.4.1.8-.2 1.2-.1.9.2-.6-2.3-.5-2.4.1-.2-1.3-.6-1.6-.2"/><path d="m29.6 25c.1 0 .1 0 .2-.3-.1 0 1.1-.3 1.2-.8-.3.4-.7.6-1.2.5-.6-.1-1-.3-1.1-.2.1-.1.2-.2.4-.3.4.1.4 0 .5-.2.2-.2.5-.1.6.3 0 .2.1.2.3 0 .9-.9 1-1.6 0-1.7-.2-.4-1.6 0-1.5.3 0 .1-1.4 2.6-.5 2.4.3-.2.7 0 1.1 0"/></g><path d="m21.6 28.6v7.3c0 2.2 2 4 4.4 4s4.4-1.8 4.4-4v-7.3h-8.8" fill="#ed4c5c"/><g fill="#fff"><path d="m24.8 27.3h2.5v15h-2.5z"/><path d="m19.1 32.3h13.8v2.5h-13.8z"/><path d="m24 30.4l-1 1 .3-1-.3-.9z"/><path d="m24 36.7l-1 1 .3-1-.3-1z"/><path d="m28 30.4l1 1-.2-1 .2-.9z"/><path d="m28 36.7l1 1-.2-1 .2-1z"/></g><path fill="#428bc1" d="m27 11.7h-2v2h2z"/><g fill="#ffce31"><path d="m25.1 10.4l.2.1.2-.1h.3v1.2h-.8v.3.1h1 1v-.1-.3h-.8v-1.2h.3l.2.1.2-.1.2-.2-.2-.2-.2-.2-.2.2h-.3v-.4l.2-.2-.2-.2-.2-.2-.2.2-.2.2.2.2v.4h-.3l-.2-.2-.2.2-.2.2z"/><path d="m32.5 14.4c-1.3-.7-2.1-.9-2.4-.4 0 0 0 .1-.1.1-1.6-.8-2.8-.9-4-.4-1.2-.5-2.3-.4-4 .4 0-.1 0-.1-.1-.1-.3-.5-1.1-.4-2.4.4-1.3.7-2.5 1.7-2.2 2.1.1.7.5 1.3 1.2 2 .8.4 2.4.5 4.1.4 2.2-.1 4.5-.1 6.7 0 1.7.1 3.3 0 4.1-.4.7-.7 1.1-1.3 1.2-2 .4-.3-.9-1.3-2.1-2.1"/></g><g fill="#ed4c5c"><path d="m27.4 17.2c.8-.7 1.3-1.4 1.7-2.1-.7-.2-1.4-.3-2-.2.1.8.2 1.6.3 2.3"/><path d="m24.6 17.2c.1-.8.2-1.6.4-2.4-.6-.1-1.3 0-2 .2.2.8.8 1.5 1.6 2.2"/><path d="m32.6 15.8c-.1-.1-.3-.3-.6-.4-.3-.1-.6-.2-.8-.2-.1.8-.4 1.6-1.1 2.4.3 0 .6-.1.8-.2.8-.4 1.3-.9 1.7-1.3.1-.1.1-.2 0-.3"/><path d="m20.8 15.1c-.2 0-.5.1-.8.2-.5.2-.8.6-.6.7.4.4.9.8 1.7 1.3.2.1.5.1.8.2-.7-.8-1-1.5-1.1-2.4"/></g><path fill="#ffce31" d="m18.6 18.5h14.8v2h-14.8z"/><g fill="#428bc1"><path d="m18.6 18.9l-.4.7.5.5.7-.7z"/><path d="m33.4 18.9l-.8.5.7.7.5-.5z"/><path d="m26 18.4l-.8.7.8.6.8-.6z"/></g><g fill="#ed4c5c"><path d="m22.3 19.8l.7-.7-.8-.5-.7.6z"/><path d="m29.7 19.8l.8-.6-.7-.6-.8.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fa.svg
index 89c2bca..ba85d44 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m31.942 2c-13.06 0-24.17 8.35-28.29 20h56.57c-4.119-11.65-15.226-20-28.29-20"/><path fill="#ed4c5c" d="m31.942 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#428bc1" d="m3.657 22c-1.107 3.129-1.715 6.492-1.715 10 0 3.508.607 6.872 1.715 10h56.57c1.105-3.129 1.713-6.492 1.713-10 0-3.508-.607-6.871-1.713-10h-56.57"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M31.9,2C18.9,2,7.8,10.4,3.7,22h56.6C56.1,10.4,45,2,31.9,2z" fill="#f9f9f9"/><path d="M31.9,62c13.1,0,24.2-8.4,28.3-20H3.7C7.8,53.7,18.9,62,31.9,62z" fill="#ed4c5c"/><path d="m3.7 22c-1.1 3.1-1.7 6.5-1.7 10s.6 6.9 1.7 10h56.6c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10c-.1 0-56.6 0-56.6 0" fill="#428bc1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fc.svg
index 44b0069..d02fc12 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f7-1f1fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><path fill="#699635" d="m58 47h-52c5.192 8.965 14.889 15 26 15s20.808-6.03 26-15"/><g fill="#ffe62e"><path d="M57.977,47C60.531,42.586,62,37.467,62,32H2c0,5.467,1.469,10.586,4.023,15H57.977z"/><path d="m46.22 19.466l8.666-.508-8.666-.506 8.24-2.731-8.501 1.753 7.251-4.771-7.76 3.895 5.77-6.486-6.484 5.77 3.894-7.758-4.771 7.251 1.754-8.501-2.731 8.236-.502-8.662-.512 8.662-2.728-8.236 1.751 8.501-4.771-7.251 3.89 7.758-6.482-5.77 5.772 6.486-7.76-3.895 7.251 4.771-8.501-1.753 8.239 2.731-8.665.506 8.665.508-8.239 2.734 8.501-1.756-7.251 4.766 7.76-3.89-5.772 6.486 6.482-5.766-3.89 7.754 4.771-7.251-1.751 8.497 2.728-8.235.512 8.665.502-8.665 2.731 8.235-1.754-8.497 4.771 7.251-3.894-7.754 6.484 5.766-5.77-6.486 7.76 3.89-7.251-4.766 8.501 1.756z"/><circle cx="42.38" cy="18.958" r="3.696"/></g><path fill="#42ade2" d="m42.38 23.04c-2.249 0-4.077-1.83-4.077-4.079 0-2.248 1.828-4.078 4.077-4.078s4.077 1.83 4.077 4.078c0 2.249-1.828 4.079-4.077 4.079m0-7.392c-1.827 0-3.314 1.486-3.314 3.313 0 1.828 1.487 3.315 3.314 3.315s3.314-1.487 3.314-3.315c0-1.827-1.487-3.313-3.314-3.313"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#42ade2"/><path d="m58 47h-52c5.2 9 14.9 15 26 15s20.8-6 26-15" fill="#699635"/><g fill="#ffe62e"><path d="M58,47c2.6-4.4,4-9.5,4-15H2c0,5.5,1.5,10.6,4,15H58z"/><path d="m46.2 19.5l8.7-.5-8.7-.5 8.3-2.8-8.5 1.8 7.2-4.8-7.7 3.9 5.7-6.5-6.5 5.8 3.9-7.8-4.7 7.3 1.7-8.5-2.7 8.2-.5-8.7-.5 8.7-2.8-8.2 1.8 8.5-4.8-7.3 3.9 7.8-6.5-5.8 5.8 6.5-7.8-3.9 7.3 4.8-8.5-1.8 8.2 2.8-8.6.5 8.6.5-8.2 2.7 8.5-1.8-7.3 4.8 7.8-3.9-5.8 6.5 6.5-5.8-3.9 7.8 4.8-7.3-1.8 8.5 2.8-8.2.5 8.7.5-8.7 2.7 8.2-1.7-8.5 4.7 7.3-3.9-7.8 6.5 5.8-5.7-6.5 7.7 3.9-7.2-4.8 8.5 1.8z"/><circle cx="42.4" cy="19" r="3.7"/></g><path d="m42.4 23c-2.2 0-4.1-1.8-4.1-4.1 0-2.2 1.8-4.1 4.1-4.1s4.1 1.8 4.1 4.1c0 2.3-1.9 4.1-4.1 4.1m0-7.4c-1.8 0-3.3 1.5-3.3 3.3 0 1.8 1.5 3.3 3.3 3.3s3.3-1.5 3.3-3.3c0-1.8-1.5-3.3-3.3-3.3" fill="#42ade2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f7.svg
new file mode 100644
index 0000000..1e8673f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f7.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m39.6 18.2c1.1.5 2 1.1 2.7 2 .6.7 1.1 1.5 1.5 2.4.4.9.5 1.9.5 3.1 0 1.4-.3 2.7-1 4.1s-1.8 2.3-3.4 2.8c1.3.5 2.3 1.3 2.8 2.3.6 1 .8 2.5.8 4.5v1.9c0 1.3.1 2.2.2 2.7.2.7.5 1.3 1.1 1.7v.7h-6.7c-.2-.6-.3-1.2-.4-1.6-.2-.8-.2-1.6-.3-2.5v-2.7c0-1.8-.3-3.1-1-3.7-.6-.6-1.8-.9-3.5-.9h-5.9v11.4h-5.9v-29h13.9c2 .1 3.6.4 4.6.8m-12.5 4.3v7.8h6.5c1.3 0 2.3-.2 2.9-.5 1.1-.6 1.7-1.6 1.7-3.3 0-1.8-.6-2.9-1.7-3.5-.6-.3-1.6-.5-2.8-.5h-6.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e6.svg
index 4f67cf8..73d0b05 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#699635" cx="32" cy="32" r="30"/><g fill="#fff" fill-rule="evenodd"><path d="m31.673 26.651c-.124-.853.38-1.751 1.345-1.611.693.101 1.494.795 1.076 1.545-.62 1.113-2.215 1.143-3.238 1.66.11.581 3.044-.119 3.496-.108.467.012 1.018.241.686.802-.341.573-1.312.612-1.89.691-.593.082-1.553.102-1.946.641-.563.77.553.914.984 1.149.969.528-.568.975-1.023.886-1.501-.295-1.774-1.137-2.725-2.116-.895 1.154-3.68 3.863-4.334 1.082-1.033.353-2.027.861-3.123.998.467-.745 1.533-1.027 2.266-1.419.955-.509 1.036-1.394 1.564-2.234.157.346.006.709.092 1.063.828-.407 1.805-1.204 1.385-2.218-.047-.113-1.215-2.471-.206-2.051.893.373.643 1.26.784 1.984.253 1.293-.313 2.02-1.271 2.759-.421.324-1.459 1.467-.172 1.454.9-.01 1.725-.963 2.203-1.633.586-.82.377-1.604.033-2.488-.252-.652-1-2.25-.076-2.706.713 1.114 1.036 2.437 1.251 3.726.185 1.104.431 2.17 1.632 2.536-.146-.812.412-1.364 1.09-1.688-.473-.445-3.316.15-2.235-1.416.363-.529 2.41-.884 2.352-1.288"/><path d="m16.404 30.4c.452 1.36 2.217.937 3.178.474 1.602-.771 1.584-1.982 1.584-3.563-.572.291-.465 1.43-.742 1.937-.419.766-1.71 1.516-2.589 1.385-1.28-.191-1.932-2.398-.89-3.213.25.746-.285 2.16.888 2.293.865.099 2.671-.962 2.409-1.997-1.152.351-1.908.021-1.545-1.336.326-1.22 1.539-.342 1.969.302 1.902-1.076-1.524-5.268.463-6.393.408.7.976 1.615.475 2.316-.574.802.029 2.541.092 3.443 1.01-.861.24.694 1.01.792.545.069.709-1.245 1.02-1.212.065.256.123 1.217.594 1.058.561-.186-.104-.986.527-1.196.187.455.146 1.979-.645 1.864-.637-.094-.537-.502-1.187-.096-.553.346-.764-.048-1.218-.254-.141 1.21.268 2.537-.434 3.637-.591.928-1.757 1.357-2.789 1.556-2.623.505-3.348-2.082-2.369-4.168.364.604-.027 1.68.201 2.371"/><path d="m40.754 30.912c.544 1.309 1.536-1.399 1.807-1.806.809-1.218 1.969 1.927 2.501-.085.334-1.261-.08-2.606-.181-3.87-.073-.929-.402-1.656-.962-2.391-.577-.759-1.212-1.475-.853-2.487.975.378.984 1.194 1.5 1.954.142-.597-.329-1.354.054-1.922.453-.671.88 1.186.925 1.387.118.535-.411.699-.094 1.456.248.592.604 1.194 1.016 1.688-.081-.553-1.016-4.663.035-4.748.305-.024.572 1.167.62 1.359.157.634-.181 1.135-.218 1.771-.07 1.195.14 2.553.864 3.531.358.485 1.901 2.294 1.112 2.886-.559-.713-1.01-1.504-1.533-2.239 0 .758.186 1.652-.244 2.337-.392-.174-.168-1.474-.164-1.806.012-1.109-.712-2.048-1.318-2.904-.169 1.464.95 4.311-.356 5.435-.942.811-2.054-.963-2.416-.323-.281.494-.981 2.3-1.752 2.13-.97-.213-1.727-2.991-.608-3.332.041.658.004 1.358.265 1.979"/><path d="m19.414 24.13c.697.098-.027-2.271.024-2.662.056-.409.419-.628.628-.182.271.58.312 1.297.365 1.927.047.533.074 1.082-.318 1.508-.596.646-1.395.256-1.67-.47-1.37 1.238.438 3.259-.773 4.52-.189-1.051.047-2.293-.396-3.288-.239-.537-1.146-.32-1.212-1.244-.029-.428.27-1.466-.074-1.799-.18.439-.389 3.469-1.436 2.639-.77-.61-.604-2.595-.297-3.406.619.336-.123 2.48.653 2.588.388.053.474-1.624.637-1.926.251-.462 1.302-1.884 1.101-.507-.093.633-.576 2.46.564 2.429-.068-1.01-.221-1.983-.363-2.98-.077-.533.151-1.521.619-.646.343.643.088.899.041 1.52-.053.688.188 1.352.254 2.029.565-.539-.18-2.387.324-3.197 1.155.503-.201 2.933 1.329 3.147"/><path d="m32.35 24.3c-.535.681-1.368.065-1.791-.405-.492.642-1.49 1.579-2.293.804-.635-.612.146-1.664-.439-2.237-.261.531-.785 2.875-1.704 1.795-.511-.601-1.162-2.737-.147-3.167-.094.794-.266 1.745.229 2.449.524.744 1.015-1.137 1.179-1.466.338-.682 1.301-1.899 1.105-.378-.078.602-.299 1.974.311 2.387.371.253.92-.199 1.135-.47.434-.548.242-1.284.105-1.9-.111-.5-.264-1.105.043-1.571.42-.639.668.819.689 1.081.021.26.35 3.431 1.133 2.38.663-.892-1.201-2.862.055-3.404.453-.195 1.422 1.834.434 1.175.198.847.624 2.08-.044 2.927"/><path d="m36.08 25.464c.098 1.312 1.24 4.913-.314 5.726-.213-.408.042-1.042.1-1.462.116-.85-.109-1.801-.215-2.644-.236-1.905-.382-3.338-1.714-4.81-.35-.387-.806-.734-.866-1.281-.023-.214-.105-1.118.342-.862.252.145 1.96 1.583 1.055 1.632.105.155.481.997.705.953-.031-.512-.556-1.965.007-2.317.535-.336 1.104 1.643.948 2.02-.198.474-.193.836-.02 1.451.225.795.663 1.501 1.085 2.202.591.984 1.837 2.411 1.456 3.656-.621-.316-.992-1.732-1.262-2.313-.221-.476-.44-.956-.715-1.403-.073-.118-.659-.888-.575-.355 0-.006-.004-.192-.017-.188"/><path d="m49.952 27.399c.061 2.14-.563 4.836-3.212 4.836-.04-.579 1.291-1.173 1.663-1.479.955-.788.887-2.269.815-3.372-.097-1.485-.22-3.01-.473-4.479-.146-.854-.584-2.158.219-2.826.45.384 1.229 1.451.865 1.889-.433.521.112 5.068.123 5.431"/><path d="m37.16 31.939c2.648-1.494 1.809-4.691 1.566-7.196-.066-.688-.142-1.376-.201-2.065-.045-.52-.354-1.201-.171-1.701.491-1.349.902-.052 1.05.658.11.532-.257.552-.229.982.055.818.075 1.633.161 2.449.135 1.271.338 2.559.223 3.841-.175 1.946-1.187 3.985-3.464 3.592.115-.307.81-.417 1.065-.56"/><path d="m41.38 26.889c.147 1.034.493 2.768-.049 3.719-.364.64-.444-.351-.456-.55-.051-.815-.061-1.635-.122-2.45-.16-2.158-.881-4.353-.872-6.517.011-2.715 2.314 1.545.994 1.314.118 1.496.296 2.997.505 4.484"/><path d="m25.1 21.758c.188.546-2.334 1.753-2.641 1.805-.064-.465 1.142-1.17 1.438-1.411.318-.259.497-.297.355-.664-.167-.431-.081-1.095.426-1.258 1.019-.325.287 1.137.422 1.528"/><path d="m14.77 30.736c.043.763.26.406.709.219.213.435-.328 1.481-.841.995-.714-.677-.094-2.269.239-2.978.239.45-.137 1.272-.107 1.764"/><path d="m43.01 24.518c.09-.377-.166-.823.094-1.168.368-.48.823.094.623.3-.229.235-.479-.196-.458.397.011.341.189.916-.136 1.177-.233-.121-1.118-1.403-.957-1.628.276-.385.735.784.834.922"/><path d="m16.891 26.23c-.198.375-2.543 1.719-2.57 1.431-.038-.382 2.896-2.045 2.57-1.431"/><path d="m33.903 31.32c-.311.866.951.101 1.259.034-.437.688-1.847 1.342-1.645-.039-.136.026-.271.053-.406.08-.068-.175 1.134-1.029.792-.075"/><path d="m44.82 30.987c.256-.018.828.855.492 1.081-.226.15-1.099.313-.588-.144.579-.513.031-.932.096-.937"/><path d="m30.732 25.926c.088-.229.139-.464.152-.708.965.792-1.584 2.148-1.123.2.18.195.152.494.389.649.05-.23.1-.46.15-.69.234.125.188.44.432.549"/><path d="m42.43 27.19c-.272-.413 1.478-1.526 1.779-1.728.209.318-1.261 1.461-1.779 1.728"/><path d="m47.965 23.15c-.153-.605-.765-1.803-.248-2.27.469.346.686 1.781.248 2.27"/><path d="m37.08 21.21c-.111-.202-.407-.411-.364-.677.058-.361.35-.333.492-.106.275.441.476 1.473-.027 1.837-.023-.352.08-.723-.101-1.054"/><path d="m24.869 23.854c.047.573-.996 1.213-1.117.417-.053-.333.35-1.361.65-1.113-.37.934-.407 1.203.467.696"/><path d="m37.39 22.835c.439.984.157.142.564-.069.696 1.347-1.507.959-1 .225.077.131.153.263.23.394.071-.184.14-.366.21-.55"/><path d="m43.785 27.375c-.455-.397.111-.85.423-.406.234.334.244 1.112-.187 1.313 0-.316.041-.676-.236-.907"/><path d="m23.324 29.571c.032-.242-.127-1.697.188-1.518.429.247.273 1.357-.188 1.518"/><path d="m19.09 20.22c.059.26.204.722.424.201.781.866-1.991.619-1.031-.276.037.107.226.639.607.075"/><path d="m29.31 22.375c-.039-.443-.558-2.113-.15-2.063.624.079.566 1.548.15 2.063"/><path d="m15.318 21.461c-.313-.09.193-.634.035-.954-.223.097-.408-.175-.182-.363.739-.614.457 1.405.147 1.317"/><path d="m41.2 41.828l-.437-1.244-.437 1.244h-21.791c0 0 .179 1.764 2.376 1.764h19.353v1.443h5.271v-3.207h-4.335m3.417 2.355h-3.565v-.985h3.565v.985"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#699635"/><g fill="#fff"><path d="m31.7 26.7c-.1-.9.4-1.8 1.3-1.6.7.1 1.5.8 1.1 1.5-.6 1.1-2.2 1.1-3.2 1.7.1.6 3-.1 3.5-.1.5 0 1 .2.7.8-.3.6-1.3.6-1.9.7-.6.1-1.6.1-1.9.6-.6.8.6.9 1 1.1 1 .5-.6 1-1 .9-1.5-.3-1.8-1.1-2.7-2.1-.9 1.2-3.7 3.9-4.3 1.1-1 .4-2 .9-3.1 1 .5-.7 1.5-1 2.3-1.4 1-.5 1-1.4 1.6-2.2.2.3 0 .7.1 1.1.8-.4 1.8-1.2 1.4-2.2 0-.1-1.2-2.5-.2-2.1.9.4.6 1.3.8 2 .3 1.3-.3 2-1.3 2.8-.4.3-1.5 1.5-.2 1.5.9 0 1.7-1 2.2-1.6.6-.8.4-1.6 0-2.5-.3-.7-1-2.2-.1-2.7.7 1.1 1 2.4 1.3 3.7.2 1.1.4 2.2 1.6 2.5-.1-.8.4-1.4 1.1-1.7-.5-.4-3.3.1-2.2-1.4.1-.7 2.1-1 2.1-1.4"/><path d="m16.4 30.4c.5 1.4 2.2.9 3.2.5 1.6-.8 1.6-2 1.6-3.6-.6.3-.5 1.4-.7 1.9-.4.8-1.7 1.5-2.6 1.4-1.3-.2-1.9-2.4-.9-3.2.2.7-.3 2.2.9 2.3.9.1 2.7-1 2.4-2-1.2.4-1.9 0-1.5-1.3.3-1.2 1.5-.3 2 .3 1.9-1.1-1.5-5.3.5-6.4.4.7 1 1.6.5 2.3-.6.8 0 2.5.1 3.4 1-.9.2.7 1 .8.5.1.7-1.2 1-1.2.1.3.1 1.2.6 1.1.6-.2-.1-1 .5-1.2.2.5.1 2-.6 1.9-.6-.1-.5-.5-1.2-.1-.6.3-.8 0-1.2-.3-.1 1.2.3 2.5-.4 3.6-.6.9-1.8 1.4-2.8 1.6-2.6.5-3.3-2.1-2.4-4.2.2.6-.2 1.7 0 2.4"/><path d="m40.8 30.9c.5 1.3 1.5-1.4 1.8-1.8.8-1.2 2 1.9 2.5-.1.3-1.3-.1-2.6-.2-3.9-.1-.9-.4-1.7-1-2.4-.6-.8-1.2-1.5-.9-2.5 1 .4 1 1.2 1.5 2 .1-.6-.3-1.4.1-1.9.5-.7.9 1.2.9 1.4.1.5-.4.7-.1 1.5.2.6.6 1.2 1 1.7-.1-.6-1-4.7 0-4.7.3 0 .6 1.2.6 1.4.2.6-.2 1.1-.2 1.8-.1 1.2.1 2.6.9 3.5.4.5 1.9 2.3 1.1 2.9-.6-.7-1-1.5-1.5-2.2 0 .8.2 1.7-.2 2.3-.4-.2-.2-1.5-.2-1.8 0-1.1-.7-2-1.3-2.9-.2 1.5 1 4.3-.4 5.4-.9.8-2.1-1-2.4-.3-.3.5-1 2.3-1.8 2.1-1-.2-1.7-3-.6-3.3.1.5.1 1.2.4 1.8"/><path d="m19.4 24.1c.7.1 0-2.3 0-2.7.1-.4.4-.6.6-.2.3.6.3 1.3.4 1.9 0 .5.1 1.1-.3 1.5-.6.6-1.4.3-1.7-.5-1.4 1.2.4 3.3-.8 4.5-.2-1.1 0-2.3-.4-3.3-.2-.5-1.1-.3-1.2-1.2 0-.4.3-1.5-.1-1.8-.2.4-.4 3.5-1.4 2.6-.8-.6-.6-2.6-.3-3.4.6.3-.1 2.5.7 2.6.4.1.5-1.6.6-1.9.3-.5 1.3-1.9 1.1-.5-.1.6-.6 2.5.6 2.4-.1-1-.2-2-.4-3-.1-.5.2-1.5.6-.6.3.6.1.9 0 1.5-.1.7.2 1.4.3 2 .6-.5-.2-2.4.3-3.2 1.2.7-.1 3.1 1.4 3.3"/><path d="m32.3 24.3c-.5.7-1.4.1-1.8-.4-.5.6-1.5 1.6-2.3.8-.6-.6.1-1.7-.4-2.2-.3.5-.8 2.9-1.7 1.8-.5-.6-1.2-2.7-.1-3.2-.1.8-.3 1.7.2 2.4.5.7 1-1.1 1.2-1.5.3-.7 1.3-1.9 1.1-.4-.1.6-.3 2 .3 2.4.4.3.9-.2 1.1-.5.4-.5.2-1.3.1-1.9-.1-.5-.3-1.1 0-1.6.4-.6.7.8.7 1.1 0 .3.4 3.4 1.1 2.4.7-.9-1.2-2.9.1-3.4.5-.2 1.4 1.8.4 1.2.3.9.7 2.2 0 3"/><path d="m36.1 25.5c.1 1.3 1.2 4.9-.3 5.7-.2-.4 0-1 .1-1.5.1-.9-.1-1.8-.2-2.6-.2-1.9-.4-3.3-1.7-4.8-.3-.4-.8-.7-.9-1.3 0-.2-.1-1.1.3-.9.3.1 2 1.6 1.1 1.6.1.2.5 1 .7 1 0-.5-.6-2 0-2.3.5-.3 1.1 1.6.9 2-.2.5-.2.8 0 1.5.2.8.7 1.5 1.1 2.2.6 1 1.8 2.4 1.5 3.7-.6-.3-1-1.7-1.3-2.3-.2-.5-.4-1-.7-1.4-.1-.1-.7-.9-.6-.4 0-.1 0-.2 0-.2"/><path d="m50 27.4c.1 2.1-.6 4.8-3.2 4.8 0-.6 1.3-1.2 1.7-1.5 1-.8.9-2.3.8-3.4-.1-1.5-.2-3-.5-4.5-.1-.9-.6-2.2.2-2.8.5.4 1.2 1.5.9 1.9-.5.6 0 5.1.1 5.5"/><path d="m37.2 31.9c2.6-1.5 1.8-4.7 1.6-7.2-.1-.7-.1-1.4-.2-2.1 0-.5-.4-1.2-.2-1.7.5-1.3.9-.1 1 .7.1.5-.3.6-.2 1 .1.8.1 1.6.2 2.4.1 1.3.3 2.6.2 3.8-.2 1.9-1.2 4-3.5 3.6.1-.2.8-.3 1.1-.5"/><path d="m41.4 26.9c.1 1 .5 2.8 0 3.7-.4.6-.4-.4-.5-.5-.1-.8-.1-1.6-.1-2.5-.2-2.2-.9-4.4-.9-6.5 0-2.7 2.3 1.5 1 1.3.1 1.5.3 3 .5 4.5"/><path d="m25.1 21.8c.2.5-2.3 1.8-2.6 1.8-.1-.5 1.1-1.2 1.4-1.4.3-.3.5-.3.4-.7-.2-.4-.1-1.1.4-1.3 1-.3.3 1.2.4 1.6"/><path d="m14.8 30.7c0 .8.3.4.7.2.2.4-.3 1.5-.8 1-.7-.7-.1-2.3.2-3 .2.5-.2 1.3-.1 1.8"/><path d="m43 24.5c.1-.4-.2-.8.1-1.2.4-.5.8.1.6.3-.2.2-.5-.2-.5.4 0 .3.2.9-.1 1.2-.2-.1-1.1-1.4-1-1.6.4-.4.8.8.9.9"/><path d="m16.9 26.2c-.2.4-2.5 1.7-2.6 1.4 0-.3 2.9-2 2.6-1.4"/><path d="m33.9 31.3c-.3.9 1 .1 1.3 0-.4.7-1.8 1.3-1.6 0-.1 0-.3.1-.4.1-.2-.2 1-1 .7-.1"/><path d="m44.8 31c.3 0 .8.9.5 1.1-.2.2-1.1.3-.6-.1.6-.6.1-1 .1-1"/><path d="m30.7 25.9c.1-.2.1-.5.2-.7 1 .8-1.6 2.1-1.1.2.2.2.2.5.4.6 0-.2.1-.5.1-.7.2.2.2.5.4.6"/><path d="m42.4 27.2c-.3-.4 1.5-1.5 1.8-1.7.2.3-1.2 1.4-1.8 1.7"/><path d="m48 23.2c-.2-.6-.8-1.8-.2-2.3.4.3.6 1.8.2 2.3"/><path d="m37.1 21.2c-.1-.2-.4-.4-.4-.7.1-.4.3-.3.5-.1.3.4.5 1.5 0 1.8 0-.3.1-.7-.1-1"/><path d="m24.9 23.9c0 .6-1 1.2-1.1.4-.1-.3.4-1.4.6-1.1-.4.9-.4 1.2.5.7"/><path d="m37.4 22.8c.4 1 .2.1.6-.1.7 1.3-1.5 1-1 .2.1.1.2.3.2.4.1-.1.1-.3.2-.5"/><path d="m43.8 27.4c-.5-.4.1-.9.4-.4.2.3.2 1.1-.2 1.3 0-.3.1-.7-.2-.9"/><path d="m23.3 29.6c0-.2-.1-1.7.2-1.5.4.2.3 1.3-.2 1.5"/><path d="m19.1 20.2c.1.3.2.7.4.2.8.9-2 .6-1-.3 0 .1.2.7.6.1"/><path d="m29.3 22.4c0-.4-.6-2.1-.1-2.1.6.1.5 1.6.1 2.1"/><path d="m15.3 21.5c-.3-.1.2-.6 0-1-.2.1-.4-.2-.2-.4.8-.6.5 1.4.2 1.4"/><path d="m41.2 41.8l-.4-1.2-.4 1.2h-21.9c0 0 .2 1.8 2.4 1.8h19.4v1.4h5.3v-3.2h-4.4m3.4 2.4h-3.6v-1h3.6v1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e7.svg
index b41bf0a..1253585 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m60.45 22.494l-8.195-2.196v-.001l-40.518 23.392h.002l-2.196 8.195c3.768 4.262 8.783 7.504 14.688 9.09 16 4.288 32.454-5.209 36.742-21.21 1.584-5.905 1.284-11.869-.523-17.263"/><path fill="#2a5f9e" d="m39.759 3.02c-16-4.288-32.454 5.209-36.742 21.21-1.583 5.906-1.283 11.871.524 17.265l3.682.986 4.513 1.209 40.518-23.393 1.209-4.513.986-3.683c-3.768-4.259-8.784-7.502-14.69-9.08"/><path fill="#ffe62e" d="m3.54 41.493c.641 1.91 1.464 3.749 2.467 5.487l.015.024c1 1.738 2.185 3.372 3.52 4.88l50.907-29.391c-1.282-3.829-3.325-7.368-6-10.393l-50.909 29.393"/><g fill="#fff"><path d="m18.994 20.52l1.999 1.348-.756-2.193 1.993-1.36-2.466-.008-.77-2.187-.768 2.187-2.466.008 1.991 1.36-.756 2.193z"/><path d="m13.604 14.769l1.999 1.351-.755-2.195 1.99-1.361-2.465-.007-.769-2.189-.769 2.189-2.466.007 1.99 1.361-.754 2.195z"/><path d="m24.385 14.769l1.998 1.351-.754-2.195 1.99-1.361-2.469-.007-.765-2.189-.769 2.189-2.466.007 1.99 1.361-.754 2.195z"/><path d="m13.604 26.27l1.999 1.348-.755-2.194 1.99-1.364h-2.465l-.769-2.192-.769 2.192h-2.466l1.99 1.364-.754 2.194z"/><path d="m24.385 26.27l1.998 1.348-.754-2.194 1.99-1.364h-2.469l-.765-2.192-.769 2.192h-2.466l1.99 1.364-.754 2.194z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.4 22.5l-8.2-2.2-40.5 23.4-2.2 8.2c3.8 4.3 8.8 7.5 14.7 9.1 16 4.3 32.5-5.2 36.7-21.2 1.7-5.9 1.4-11.9-.5-17.3" fill="#699635"/><path d="m39.8 3c-16-4.3-32.5 5.2-36.8 21.2-1.6 5.9-1.3 11.9.5 17.3l3.7 1 4.5 1.2 40.5-23.4 1.2-4.5 1-3.7c-3.7-4.3-8.7-7.5-14.6-9.1" fill="#2a5f9e"/><path d="m3.5 41.5c.7 1.9 1.5 3.7 2.5 5.5 1 1.7 2.2 3.4 3.5 4.9l50.9-29.4c-1.3-3.8-3.3-7.4-6-10.4l-50.9 29.4" fill="#ffe62e"/><g fill="#fff"><path d="m19 20.5l2 1.4-.8-2.2 2-1.4h-2.4l-.8-2.2-.8 2.2h-2.4l2 1.4-.8 2.2z"/><path d="m13.6 14.8l2 1.3-.8-2.2 2-1.3h-2.4l-.8-2.2-.8 2.2h-2.4l2 1.3-.8 2.2z"/><path d="m24.4 14.8l2 1.3-.8-2.2 2-1.3h-2.4l-.8-2.2-.8 2.2h-2.5l2 1.3-.7 2.2z"/><path d="m13.6 26.3l2 1.3-.8-2.2 2-1.3h-2.4l-.8-2.2-.8 2.2h-2.4l2 1.3-.8 2.2z"/><path d="m24.4 26.3l2 1.3-.8-2.2 2-1.3h-2.4l-.8-2.2-.8 2.2h-2.5l2 1.3-.7 2.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e8.svg
index 2960276..c1632e6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m62 32c0-5.423-1.439-10.51-3.956-14.898l-43.36 37.27-.691 1.625c.13.098.262.193.393.288l46.609-16.571c.653-2.462 1-5.05 1-7.715"/><path fill="#fcd856" d="m58.04 17.1c-4.413-7.697-12.14-13.25-21.235-14.717l-22.814 53.613 44.05-38.896"/><path fill="#2872a0" d="m32 2c-8.191 0-15.616 3.285-21.03 8.607-5.535 5.444-8.97 13.02-8.97 21.393 0 9.525 4.441 18.01 11.364 23.51.124.098.248.193.373.29.085.065.171.133.258.198l.691-1.625 22.12-51.988c-1.567-.252-3.172-.385-4.809-.385"/><path fill="#fff" d="m14.388 56.29c.056.04.111.082.167.122l40.25-4.92c2.877-3.363 5.02-7.369 6.19-11.773l-46.609 16.571"/><path fill="#699635" d="M32,62c9.129,0,17.305-4.078,22.807-10.512l-40.252,4.92C19.471,59.928,25.493,62,32,62z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-5.4-1.4-10.5-4-14.9l-43.3 37.3-.7 1.6c.1.1.3.2.4.3l46.6-16.6c.7-2.4 1-5 1-7.7" fill="#ed4c5c"/><path d="M58,17.1C53.6,9.4,45.9,3.9,36.8,2.4L14,56L58,17.1z" fill="#fcd856"/><path d="m32 2c-8.2 0-15.6 3.3-21 8.6-5.5 5.4-9 13-9 21.4 0 9.5 4.4 18 11.4 23.5.1.1.2.2.4.3.1.1.2.1.3.2l.7-1.6 22.1-52c-1.7-.3-3.3-.4-4.9-.4" fill="#2872a0"/><path d="m14.4 56.3c.1 0 .1.1.2.1l40.3-4.9c2.9-3.4 5-7.4 6.2-11.8l-46.7 16.6" fill="#fff"/><path d="m32 62c9.1 0 17.3-4.1 22.8-10.5l-40.3 4.9c5 3.5 11 5.6 17.5 5.6" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e9.svg
index 73b8b5a..4fe07ce 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21h-.002c5.43 5.43 12.93 8.788 21.21 8.788 13.07 0 24.18-8.356 28.29-20.02-.098.003-.193.015-.291.015"/><path fill="#ed4c5c" d="m60 22c.098 0 .193.012.291.015-4.115-11.659-15.225-20.02-28.29-20.02-8.285 0-15.785 3.358-21.21 8.788h.002v21.21h39.21c0-5.523 4.477-10 10-10"/><path fill="#f9f9f9" d="m60.29 22h-49.5v20h49.5c1.107-3.129 1.714-6.492 1.714-10s-.607-6.871-1.714-10"/><path fill="#699635" d="M10.787,10.787C5.357,16.216,2,23.716,2,32s3.357,15.784,8.787,21.213L32,32L10.787,10.787z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0" fill="#3e4347"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10" fill="#ed4c5c"/><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#f9f9f9"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ea.svg
index fbacc4a..ccd3877 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m61.17 25c-3.155-13.191-15.01-23-29.17-23-.335 0-.667.015-1 .025v22.975h30.17"/><path d="M17,6.023C9.982,10.084,4.767,16.902,2.829,25H17V6.023z"/><path d="M2.829,39C4.767,47.098,9.982,53.915,17,57.977V39H2.829z"/><path d="m31 61.975c.333.009.665.025 1 .025 14.157 0 26.02-9.811 29.17-23h-30.17v22.975"/></g><path fill="#ffe62e" d="m61.17 25h-30.17v-22.975c-5.091.167-9.857 1.601-14 3.998v18.977h-14.171c-.537 2.246-.829 4.588-.829 7 0 2.411.292 4.753.829 7h14.171v18.977c4.143 2.396 8.909 3.83 14 3.998v-22.975h30.17c.537-2.247.829-4.59.829-7 0-2.412-.292-4.754-.829-7"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m61.2 25c-3.2-13.2-15-23-29.2-23-.3 0-.7 0-1 0v23h30.2"/><path d="M17,6C10,10.1,4.8,16.9,2.8,25H17V6z"/><path d="M2.8,39C4.8,47.1,10,53.9,17,58V39H2.8z"/><path d="m31 62c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2v23"/></g><path d="m61.2 25h-30.2v-23c-5.1.2-9.9 1.6-14 4v19h-14.2c-.5 2.2-.8 4.6-.8 7 0 2.4.3 4.8.8 7h14.2v19c4.1 2.4 8.9 3.8 14 4v-23h30.2c.5-2.2.8-4.6.8-7 0-2.4-.3-4.8-.8-7" fill="#ffe62e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ec.svg
index 13848e3..91caccd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#ed4c5c" d="M32,2C15.432,2,2,15.431,2,32h60C62,15.431,48.568,2,32,2z"/><g fill="#f9f9f9"><path d="m21.232 17.472l-1.232-.945 1.525-.005.475-1.522.477 1.522 1.523.005-1.23.946.47 1.527-1.24-.94-1.234.94z"/><path d="m29.23 17.472l-1.23-.945 1.525-.005.475-1.522.477 1.522 1.523.005-1.23.946.47 1.527-1.24-.94-1.234.94z"/><path d="m22.23 22.472l-1.23-.945 1.525-.005.475-1.522.477 1.522 1.523.005-1.23.946.47 1.527-1.24-.94-1.234.94z"/><path d="m28.23 22.472l-1.23-.945 1.525-.005.475-1.522.477 1.522 1.523.005-1.23.946.47 1.527-1.24-.94-1.234.94z"/><path d="m25.23 14.472l-1.23-.945 1.525-.005.475-1.522.477 1.522 1.523.005-1.23.946.47 1.527-1.24-.94-1.234.94z"/><path d="m24.412 27.958c-4.768 0-8.633-4.056-8.633-9.06s3.865-9.06 8.633-9.06c.35 0 .691.028 1.031.07-1.201-.58-2.533-.91-3.943-.91-5.244 0-9.5 4.477-9.5 10s4.256 10 9.5 10c1.633 0 3.162-.438 4.5-1.201-.516.101-1.045.159-1.588.159"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#f9f9f9"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#ed4c5c"/><g fill="#f9f9f9"><path d="m21.2 17.5l-1.2-1h1.5l.5-1.5.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9z"/><path d="m29.2 17.5l-1.2-1h1.5l.5-1.5.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9z"/><path d="m22.2 22.5l-1.2-1h1.5l.5-1.5.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9z"/><path d="m28.2 22.5l-1.2-1h1.5l.5-1.5.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9z"/><path d="m25.2 14.5l-1.2-1h1.5l.5-1.5.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9z"/><path d="m24.4 28c-4.8 0-8.6-4.1-8.6-9.1s3.9-9.1 8.6-9.1c.4 0 .7 0 1 .1-1.2-.6-2.5-.9-3.9-.9-5.2 0-9.5 4.5-9.5 10s4.3 10 9.5 10c1.6 0 3.2-.4 4.5-1.2-.5.1-1 .2-1.6.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ed.svg
index 7bb3cde..ac8dfd1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ed.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m12 12h20.344v20.344h-20.344z"/><path d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/></g><path fill="#fff" d="M32,2c-4.694,0-9.132,1.088-13.088,3.012V8.14V11H11v2.912V14v4.912H5.011C3.088,22.869,2,27.306,2,32
- h12V17l12,15h6v-7.5L23.601,14H32V2z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h2l17,21h2v-4.941L19,11h13V5z"/><path fill="#49c3f2" d="m57.909 29.22c-.02 7.376-1.184 15.323-10.732 19.11-9.547-3.785-10.711-11.732-10.731-19.11h21.463"/><path fill="#428bc1" d="m47.18 48.33c4.329-1.715 6.934-4.287 8.492-7.272-.233.007-.723-.006-.933-.021-.236-.016-9.154-.91-10.211-1.299-.92-.337-4.427.286-6.06.87 1.526 3.177 4.172 5.921 8.715 7.722"/><path fill="#c94747" d="m40.504 43.756c.146-.046 2.584.387 2.972-.249.364-.598-1.152-1.876-1.098-2.572.017-.206.248-.619.438-.704.429-.192 1.733.294 1.792-.552.105-1.506-1.199-2.706-1.592-4.055-.251-.858-.302-1.72-.377-2.604-.033-.393-.076-.609-.513-.739-.533-.156-.479-.599-.664-1.089-.246.038-.704.382-.704.646 0 .897-.82.948-1.185 1.562-.341-.416-.497-1.139-.845-1.491-.376-.38-.483-.447-.389-1.01-.583-.481-.615.289-1.021.479-.12.154-.481.537-.776.995.271 4.083 1.19 8.139 3.962 11.382"/><path fill="#ffe62e" d="m57.909 29.22c.008-2.778-.146-5.477-.074-7.842-3.568-1.597-8.265-1.925-10.658-1.925-2.395 0-7.088.328-10.656 1.925.071 2.365-.082 5.063-.075 7.842h21.463"/><path fill="#3e4347" d="m49.597 39.901c-1.361.024-2.748.024-3.687-.116-.938-.142-1.235-.274-1.879-.658-.962-.575-1.197-.716-2.559-1.514-.208-.123-.434.028-.141.224 1.374.902 1.894 1.238 2.548 1.666.68.446 2.723 1.689 2.723 1.689h8.134l1.338-2.664c.011-.153-.059-.387-.105-.481-1.479.059-2.93.104-3.968.13-.118.093-.246.339-.27.493-.633.104-1.01.151-1.174.187-.163.036-.796.833-.96 1.044"/><path fill="#c94747" d="m44.721 21.281c-.359.011-1.136.019-1.3.109-.161.093-.233.134.051.184.287.051.77.187 1.036.351.264.164.487.453.413.864-.219 1.239.431 2.43 1.368 2.881.09.043.11.076.093.244-.021.169-.082.45-.134.521-.051.071-.076.189.088.133-.113.21-.364.628-.438.736-.751-.093-1.364.01-1.42.795-.006.077.02.199.138.007.118-.194.249-.379.572-.431-.19.292-.252.553-.221.721.03.169.077.271.159.057s.23-.416.392-.536c.062-.046.103-.057.057.077-.046.133.021.418.112.515.093.098.139.057.113-.103-.025-.157.013-.489.208-.592.281-.147.521-.072.633.123.112.193.21.01.087-.21-.123-.218-.251-.372-.453-.388.177-.316.387-.699.433-.776s.118-.113.177-.066c.062.046.103.041.164-.086.062-.128.17-.507.323-.659.074-.021.197-.05.243-.091.2.29.377.612.424.683.046.072.097.104.051.25-.046.149-.202.618-.229.721-.556.021-.813.031-.991.342-.077.137.046.188.179.117.134-.07.323-.132.418-.117.098.016.144.065.047.112-.342.169-.555.383-.541.679.005.107.051.162.133.016.118-.204.331-.407.592-.464-.015.25.041.618.192.694.154.076.164-.002.108-.148-.093-.236.005-.472.117-.598.241-.267.787.103.888.195.103.091.194.129.138-.107-.076-.318-.525-.5-.907-.552.107-.517.393-1.559.546-1.915.224.123.4-.199.774-.062.633.235 1.582.827 1.746.959.164.134.223.103.305.031s.226 0 .339.021c.109.021.212.051.068-.234-.141-.286-.489-.786-1.068-1.175.346.031.814.031.814-.06 0-.093-.54-.268-.766-.287.215-.052.543-.175.694-.347.09-.103-.018-.128-.336-.133-.979-.021-1.469-.013-1.979-.307-.818-.471-1.284-.965-1.685-1.176-.215-.111-.346-.371-.428-.595-.265-.715-.252-1.037-.875-1.271-.621-.236-1.337.052-1.662.348"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2v10H12v20H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><path d="M32,2c-4.7,0-9.1,1.1-13.1,3v3.1V11H11v2.9V14v4.9H5c-1.9,4-3,8.4-3,13.1h12V17l12,15h6v-7.5L23.6,14H32V2z" fill="#fff"/><g fill="#ed4c5c"><path d="m15.4 14l14.6 18h2v-4.9l-10.6-13.1z"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z"/></g><path d="m57.9 29.2c0 7.4-1.2 15.3-10.7 19.1-9.5-3.8-10.7-11.7-10.7-19.1-.1 0 21.4 0 21.4 0" fill="#49c3f2"/><path d="m47.2 48.3c4.3-1.7 6.9-4.3 8.5-7.3-.2 0-.7 0-.9 0-.2 0-9.2-.9-10.2-1.3-.9-.3-4.4.3-6.1.9 1.5 3.2 4.1 5.9 8.7 7.7" fill="#428bc1"/><path d="m40.5 43.8c.1 0 2.6.4 3-.2.4-.6-1.2-1.9-1.1-2.6 0-.2.2-.6.4-.7.4-.2 1.7.3 1.8-.6.1-1.5-1.2-2.7-1.6-4.1-.3-.9-.3-1.7-.4-2.6 0-.4-.1-.6-.5-.7-.5-.2-.5-.6-.7-1.1-.2 0-.7.4-.7.6 0 .9-.8.9-1.2 1.6-.3-.4-.5-1.1-.8-1.5-.4-.4-.5-.4-.4-1-.6-.5-.6.3-1 .5-.1.2-.5.5-.8 1 .3 4.1 1.2 8.1 4 11.4" fill="#c94747"/><path d="m57.9 29.2c0-2.8-.1-5.5-.1-7.8-3.6-1.6-8.3-1.9-10.7-1.9-2.4 0-7.1.3-10.7 1.9.1 2.4-.1 5.1-.1 7.8h21.6" fill="#ffe62e"/><path d="m49.6 39.9c-1.4 0-2.7 0-3.7-.1-.9-.1-1.2-.3-1.9-.7-1-.6-1.2-.7-2.6-1.5-.2-.1-.4 0-.1.2 1.4.9 1.9 1.2 2.5 1.7.7.4 2.7 1.7 2.7 1.7h8.1l1.3-2.7c0-.2-.1-.4-.1-.5-1.5.1-2.9.1-4 .1-.1.1-.2.3-.3.5-.6.1-1 .2-1.2.2.1.1-.5.9-.7 1.1" fill="#3e4347"/><path d="m44.7 21.3c-.4 0-1.1 0-1.3.1-.2.1-.2.1.1.2.3.1.8.2 1 .4.3.2.5.5.4.9-.2 1.2.4 2.4 1.4 2.9.1 0 .1.1.1.2 0 .2-.1.4-.1.5-.1.1-.1.2.1.1-.1.2-.4.6-.4.7-.8-.1-1.4 0-1.4.8 0 .1 0 .2.1 0 .1-.2.2-.4.6-.4-.3.3-.4.5-.3.7 0 .2.1.3.2.1s.2-.4.4-.5c.1 0 .1-.1.1.1s0 .4.1.5c.1.1.1.1.1-.1 0-.2 0-.5.2-.6.3-.1.5-.1.6.1.1.2.2 0 .1-.2s-.3-.4-.5-.4c.2-.3.4-.7.4-.8 0-.1.1-.1.2-.1.1 0 .1 0 .2-.1.1-.1.2-.5.3-.7.1 0 .2 0 .2-.1.2.3.4.6.4.7 0 .1.1.1.1.2 0 .1-.2.6-.2.7-.6 0-.8 0-1 .3-.1.1 0 .2.2.1.1-.1.3-.1.4-.1.1 0 .1.1 0 .1-.3.2-.6.4-.5.7 0 .1.1.2.1 0 .1-.2.3-.4.6-.5 0 .2 0 .6.2.7.2.1.2 0 .1-.1-.1-.2 0-.5.1-.6.2-.3.8.1.9.2.1.1.2.1.1-.1-.1-.3-.5-.5-.9-.6.1-.5.4-1.6.5-1.9.2.1.4-.2.8-.1.6.2 1.6.8 1.7 1s.2.1.3 0c.1-.1.2 0 .3 0 .1 0 .2.1.1-.2-.1-.3-.5-.8-1.1-1.2.3 0 .8 0 .8-.1s-.5-.3-.8-.3c.2-.1.5-.2.7-.3.1-.1 0-.1-.3-.1-1 0-1.5 0-2-.3-.8-.5-1.3-1-1.7-1.2-.2-.1-.3-.4-.4-.6-.3-.7-.3-1-.9-1.3-.4 0-1.2.3-1.5.6" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ee.svg
index 191e968..85338c9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ee.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.573C56.168,10.35,45.062,2,32,2z"/><g fill="#428bc1"><path d="M60.287,42C61.393,38.871,62,35.508,62,32s-0.607-6.871-1.713-10H3.714C2.608,25.129,2,28.492,2,32
- s0.608,6.871,1.714,10H60.287z"/><path d="m30.19 24.25l.812-11.158c-6.329-2.793-13.671-2.793-20 0l.812 11.158c.364 5.01 4.02 9.294 9.188 10.747 5.165-1.453 8.823-5.733 9.188-10.747"/></g><path fill="#fff" d="m13.5 25.764c.869 3.646 3.709 6.608 7.5 7.824 3.79-1.216 6.63-4.178 7.5-7.824l-3.75-4.657-1.5 1.863-2.25-4.191-2.25 4.191-1.5-1.863-3.75 4.657"/><g fill="#428bc1"><path d="m13.835 26.929c.69 1.114 2.22 1.495 3.415.853.774-.417 1.726-.417 2.5 0 .773.415 1.726.415 2.499 0 .774-.417 1.727-.417 2.501 0 1.196.643 2.724.261 3.415-.853v.672c-.691 1.114-2.219 1.496-3.415.853-.774-.416-1.727-.416-2.501 0-.773.417-1.726.417-2.499 0-.774-.416-1.727-.416-2.5 0-1.195.643-2.725.262-3.415-.853v-.672"/><path d="m13.835 28.27c.69 1.114 2.22 1.496 3.415.853.774-.417 1.726-.417 2.5 0 .773.416 1.726.416 2.499 0 .774-.417 1.727-.417 2.501 0 1.196.643 2.724.261 3.415-.853v.672c-.691 1.114-2.219 1.496-3.415.854-.774-.417-1.727-.417-2.501 0-.773.415-1.726.415-2.499 0-.774-.417-1.727-.417-2.5 0-1.195.643-2.725.26-3.415-.853v-.001-.672"/></g><path fill="#ed4c5c" d="m11.702 12.798l.831 11.409c.339 4.661 3.694 8.658 8.468 10.09 4.774-1.43 8.128-5.427 8.468-10.09l.83-11.409c.232.102.465.202.701.297l-.812 11.158c-.365 5.01-4.02 9.294-9.188 10.747-5.165-1.453-8.824-5.733-9.188-10.747l-.812-11.158c.236-.095.47-.195.702-.297"/><g fill="#ffe62e"><path d="m17 11.9l.22.736.78-.186-.559.55.559.55-.78-.186-.22.736-.22-.736-.78.186.559-.55-.559-.55.78.186z"/><path d="m25 11.9l.22.736.78-.186-.559.55.559.55-.78-.186-.22.736-.22-.736-.78.186.559-.55-.559-.55.78.186z"/><path d="m21 14.8l.22.736.78-.186-.56.55.56.55-.78-.186-.22.736-.22-.736-.78.186.56-.55-.56-.55.78.186z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#f9f9f9"/><g fill="#428bc1"><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z"/><path d="m30.2 24.3l.8-11.2c-6.3-2.8-13.7-2.8-20 0l.8 11.2c.4 5 4 9.3 9.2 10.7 5.2-1.5 8.8-5.7 9.2-10.7"/></g><path d="m13.5 25.8c.9 3.6 3.7 6.6 7.5 7.8 3.8-1.2 6.6-4.2 7.5-7.8l-3.8-4.7-1.5 1.9-2.2-4.2-2.2 4.2-1.5-1.9-3.8 4.7" fill="#fff"/><g fill="#428bc1"><path d="m13.8 26.9c.7 1.1 2.2 1.5 3.4.9.8-.4 1.7-.4 2.5 0 .8.4 1.7.4 2.5 0 .8-.4 1.7-.4 2.5 0 1.2.6 2.7.3 3.4-.9v.7c-.7 1.1-2.2 1.5-3.4.9-.7-.5-1.7-.5-2.5 0-.8.4-1.7.4-2.5 0-.7-.5-1.7-.5-2.5 0-1.2.6-2.7.3-3.4-.9v-.7"/><path d="m13.8 28.3c.7 1.1 2.2 1.5 3.4.9.8-.4 1.7-.4 2.5 0 .8.4 1.7.4 2.5 0 .8-.4 1.7-.4 2.5 0 1.2.6 2.7.3 3.4-.9v.7c-.7 1.1-2.2 1.5-3.4.9-.8-.4-1.7-.4-2.5 0-.8.4-1.7.4-2.5 0-.8-.4-1.7-.4-2.5 0-1.2.6-2.7.3-3.4-.9v-.7"/></g><path d="m11.7 12.8l.8 11.4c.3 4.7 3.7 8.7 8.5 10.1 4.8-1.4 8.1-5.4 8.5-10.1l.8-11.4c.2.1.5.2.7.3l-.8 11.2c-.4 5-4 9.3-9.2 10.7-5.2-1.5-8.8-5.7-9.2-10.7l-.8-11.2c.2-.1.5-.2.7-.3" fill="#ed4c5c"/><g fill="#ffe62e"><path d="m17 11.9l.2.7.8-.2-.6.6.6.6-.8-.2-.2.7-.2-.7-.8.2.6-.6-.6-.6.8.2z"/><path d="m25 11.9l.2.7.8-.2-.6.6.6.6-.8-.2-.2.7-.2-.7-.8.2.6-.6-.6-.6.8.2z"/><path d="m21 14.8l.2.7.8-.1-.6.5.6.6-.8-.2-.2.7-.2-.7-.8.2.6-.6-.6-.5.8.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ef.svg
index 2812a21..e9f5672 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.721 28c-.137-1.016-.315-2.02-.551-3h-58.34c-.235.98-.414 1.984-.551 3h59.44"/><path d="m2.279 36c.137 1.016.315 2.02.551 3h58.34c.235-.982.414-1.984.551-3h-59.44"/><path d="m20 4.488c-1.03.451-2.033.953-3 1.514v51.996c.967.561 1.97 1.063 3 1.512v-55.02"/><path d="m28 2.262v59.48c.986.133 1.984.23 3 .264v-60c-1.016.033-2.01.131-3 .262"/></g><g fill="#2a5f9e"><path d="m2 32c0 1.357.099 2.689.273 4h59.45c.175-1.311.274-2.643.274-4s-.099-2.691-.273-4h-59.45c-.174 1.309-.273 2.643-.273 4"/><path d="m20 59.5c2.507 1.096 5.191 1.855 8 2.23v-59.45c-2.809.375-5.493 1.135-8 2.23v54.993"/></g><g fill="#ed4c5c"><path d="M17,25V6.023C9.982,10.084,4.766,16.902,2.83,25H17z"/><path d="M17,39.023V58C9.982,53.939,4.766,47.121,2.83,39.023H17z"/><path d="M32,2c-0.336,0-0.667,0.014-1,0.025V25h30.17C58.016,11.809,46.157,2,32,2z"/><path d="m31 39v22.975c.333.009.664.025 1 .025 14.157 0 26.02-9.811 29.17-23h-30.17"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m61.7 28c-.1-1-.3-2-.6-3h-58.3c-.2 1-.4 2-.6 3h59.5"/><path d="m2.3 36c.1 1 .3 2 .6 3h58.3c.2-1 .4-2 .6-3h-59.5"/><path d="m20 4.5c-1 .5-2 1-3 1.5v52c1 .6 2 1.1 3 1.5v-55"/><path d="m28 2.3v59.5c1 .1 2 .2 3 .3v-60.1c-1 0-2 .1-3 .3"/></g><g fill="#2a5f9e"><path d="m2 32c0 1.4.1 2.7.3 4h59.5c.2-1.3.3-2.6.3-4s-.1-2.7-.3-4h-59.5c-.2 1.3-.3 2.6-.3 4"/><path d="m20 59.5c2.5 1.1 5.2 1.9 8 2.2v-59.4c-2.8.4-5.5 1.1-8 2.2v55"/></g><g fill="#ed4c5c"><path d="M17,25V6C10,10.1,4.8,16.9,2.8,25H17z"/><path d="M17,39v19C10,53.9,4.8,47.1,2.8,39H17z"/><path d="M32,2c-0.3,0-0.7,0-1,0v23h30.2C58,11.8,46.2,2,32,2z"/><path d="m31 39v23c.3 0 .7 0 1 0 14.2 0 26-9.8 29.2-23h-30.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f0.svg
index 712a038..5b0e543 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f0.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M32,2C18.938,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#ed4c5c" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/><path fill="#428bc1" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.392,38.871,62,35.508,62,32
- s-0.608-6.871-1.714-10H3.714z"/><path fill="#f9f9f9" d="M33.888,19H14.112H14c0,0,0,3.125,0,13.827C14,42,23.593,44.758,24,45c0.406-0.242,10-3,10-12.173
- C34,22.125,34,19,34,19H33.888z"/><path fill="#ed4c5c" d="M16,21v11.91c0,5.606,4.258,8.569,8,10.09c3.742-1.521,8-4.483,8-10.09V21H16z"/><g fill="#f9f9f9"><path d="m23 23h2v14h-2z"/><path d="m19 29h10v2h-10z"/><path d="m21 25h6v2h-6z"/></g><path fill="#428bc1" d="m23.999 35c-1.313 0-2.466.641-3.195 1.617-.504-.382-1.124-.617-1.805-.617-.842 0-1.601.35-2.146.909 1.428 3.104 4.42 4.984 7.147 6.091 2.727-1.107 5.719-2.987 7.146-6.091-.544-.559-1.304-.909-2.147-.909-.68 0-1.3.235-1.804.617-.729-.976-1.883-1.617-3.196-1.617"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#f9f9f9"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#428bc1"/><path d="m33.9 19h-19.8-.1c0 0 0 3.1 0 13.8 0 9.2 9.6 12 10 12.2.4-.2 10-3 10-12.2 0-10.7 0-13.8 0-13.8h-.1" fill="#f9f9f9"/><path d="M16,21v11.9c0,5.6,4.3,8.6,8,10.1c3.7-1.5,8-4.5,8-10.1V21H16z" fill="#ed4c5c"/><g fill="#f9f9f9"><path d="m23 23h2v14h-2z"/><path d="m19 29h10v2h-10z"/><path d="m21 25h6v2h-6z"/></g><path d="m24 35c-1.3 0-2.5.6-3.2 1.6-.5-.4-1.1-.6-1.8-.6-.8 0-1.6.3-2.1.9 1.4 3.1 4.4 5 7.1 6.1 2.7-1.1 5.7-3 7.1-6.1-.5-.6-1.3-.9-2.1-.9-.7 0-1.3.2-1.8.6-.7-1-1.9-1.6-3.2-1.6" fill="#428bc1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f1.svg
index 8191a5b..50fafc2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f1.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#428bc1" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#f9f9f9" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#83bf4f"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#428bc1"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f2.svg
index d9b6df3..abe6318 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#a0cfeb" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#f9f9f9" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/><path fill="#699635" d="m22.899 24.584l-2.25-.334.038-.06 1.048-3.456-2.742 2.336-1.169-1.756-.774 2.04 1.411 2.501 2.878.265 1.56-1.536"/><path fill="#83bf4f" d="m21.09 27.467l-2.257.25.022-.061.111-3.606-2.038 2.96-1.59-1.401-.218 2.172 2.02 2.053 2.848-.482 1.102-1.885"/><path fill="#699635" d="m20.1 30.713l-2.117.822.005-.062-.838-3.518-1.192 3.389-1.898-.946.351 2.155 2.487 1.467 2.627-1.202.575-2.105"/><path fill="#83bf4f" d="m19.988 34.1l-1.828 1.343-.01-.063-1.726-3.18-.274 3.577-2.08-.427.903 1.99 2.783.78 2.224-1.83.008-2.19"/><path fill="#699635" d="m20.764 37.408l-1.418 1.762-.029-.05-2.493-2.638.67 3.528-2.121.13 1.391 1.686 2.89.033 1.672-2.341-.562-2.11"/><path fill="#83bf4f" d="m22.375 40.4l-.912 2.069-.041-.049-3.094-1.899 1.568 3.235-2.02.664 1.783 1.277 2.801-.711 1-2.686-1.093-1.9"/><g fill="#699635"><path d="m24.711 42.879l-.342 2.231-.052-.04-3.484-1.04 2.357 2.726-1.773 1.16 2.055.773 2.52-1.409.268-2.85-1.549-1.551"/><path d="m41.1 24.584l2.25-.334-.04-.06-1.04-3.456 2.74 2.336 1.17-1.756.775 2.04-1.416 2.501-2.878.265-1.561-1.536"/></g><path fill="#83bf4f" d="m42.906 27.467l2.264.25-.02-.061-.12-3.606 2.04 2.96 1.592-1.401.221 2.172-2.02 2.053-2.851-.482-1.104-1.885"/><path fill="#699635" d="m43.899 30.713l2.121.822-.01-.062.836-3.518 1.194 3.389 1.9-.946-.351 2.155-2.489 1.467-2.62-1.202-.581-2.105"/><path fill="#83bf4f" d="m44.01 34.1l1.833 1.343.011-.063 1.722-3.18.274 3.577 2.08-.427-.9 1.99-2.79.78-2.22-1.83-.01-2.19"/><path fill="#699635" d="m43.24 37.408l1.414 1.762.029-.05 2.497-2.638-.67 3.528 2.117.13-1.387 1.686-2.89.033-1.676-2.341.566-2.11"/><path fill="#83bf4f" d="m41.625 40.4l.912 2.069.041-.049 3.094-1.899-1.572 3.235 2.02.664-1.78 1.277-2.803-.711-1.01-2.686 1.093-1.9"/><path fill="#699635" d="m39.29 42.879l.341 2.231.052-.04 3.487-1.04-2.36 2.726 1.773 1.16-2.055.773-2.518-1.409-.272-2.85 1.552-1.551"/><g fill="#f1bf31"><path d="m25.732 16.07l2.183 2.316 8.143-.008 2.21-2.309.233-3.403-5.308-1.622.464-.412-1.658-1.025-1.656 1.025.464.412-4.778 1.189-.297 3.837m11.509-2.802l-1.341 1.966-1.334-.477-1.585-.257.016-2.947 4.244 1.715m-10.482 0l4.221-1.686.039 2.918-1.585.258-1.334.476-1.341-1.966"/><path d="m31.12 7.449l.609-.06-.005.115-.135 1.111h.822l-.131-1.107-.01-.119.608.06.332-.379-.332-.371-.538.094.044-.625-.384-.352-.384.352.043.625-.539-.094-.332.371.332.379"/></g><path fill="#a0cfeb" d="m31.828 22.48c1.851-.033 9.811-1.367 9.811 9.689 0 10.56-9.639 14.759-9.639 14.759s-9.639-4.068-9.639-15.561c0-10.254 9.467-8.887 9.467-8.887"/><path fill="#83bf4f" d="m34.955 38.994c.563-.314 1.214-.494 1.905-.494 1.126 0 2.14.475 2.854 1.234-2.812 5.057-7.713 7.193-7.713 7.193s-4.776-2.02-7.604-7.217c.714-.746 1.718-1.211 2.831-1.211.776 0 1.5.225 2.107.615.715-.77 1.735-1.25 2.869-1.25 1.072.001 2.043.433 2.751 1.13"/><path fill="#f1bf31" d="m43.534 29.471c-.274-3.949-1.44-6.449-2.949-7.758-1.408-1.219-3.036-1.469-4.227-1.051l-.068-.004-3.58 1.555c-.155-.207-.4-.34-.678-.34s-.523.133-.678.34l-3.58-1.555-.123.008c-1.191-.424-2.824-.176-4.236 1.047-1.509 1.309-2.675 3.809-2.949 7.758-.436 6.252 2.24 10.789 5.244 13.533 1.578 1.441 4.107 3.156 6.289 3.99 2.184-.834 4.713-2.549 6.291-3.99 3-2.744 5.68-7.281 5.244-13.533m-20.21 1.025c.2-4.336 1.42-5.697 2.045-6.182.217.652.881 1.059 1.519 1.059.544 0 4.415-2.223 4.415-2.223.147.248.418.416.729.416s.58-.168.729-.416c0 0 3.746 2.223 4.351 2.223.638 0 1.302-.406 1.519-1.059.625.484 1.845 1.846 2.045 6.182.373 8.08-6.675 15.695-8.676 15.695-2 0-9.05-7.617-8.676-15.695"/><g fill="#fff"><path d="m31.882 37.879c.105-.008.213-.014.322-.014.479 0 .937.086 1.361.244l-.465-1.885v-3.789l.465-.66v-1.34l-.721-.23v.809l-.529-.148v-.826l-.424-.143-.422.164v.826l-.53.189v-.818l-.72.283v1.316l.518.635.012 3.768-.529 2.145c.494-.292 1.058-.477 1.662-.526"/><path d="m36.649 38.506c.07-.004.141-.006.211-.006.52 0 1.014.102 1.468.285l-.464-1.82v-3.766l.464-.656v-1.324l-.72-.24v.807l-.529-.178v-.828l-.424-.143-.423.133v.826l-.53.156v-.818l-.719.232v1.334l.517.662.013 3.764-.529 2.053c.498-.274 1.064-.442 1.665-.473"/><path d="m27.12 38.506c.069-.004.14-.006.211-.006.519 0 1.015.102 1.468.285l-.465-1.82v-3.766l.465-.656v-1.324l-.721-.24v.807l-.529-.178v-.828l-.423-.143-.423.133v.826l-.529.156v-.818l-.721.232v1.334l.518.662.012 3.764-.529 2.053c.499-.274 1.064-.442 1.666-.473"/><path d="m27.05 27.18l.032-.043c.494-.088.709.422.798.814.787-.541.53-1.568-.462-1.588-.146-.004-.3.039-.436.09-.287.109-.584.479-.657.773-.265 1.072.766 1.814.786 2.957.784-.353-.039-2.349-.061-3"/><path d="m32.702 27.21c.787-.541.53-1.568-.461-1.59-.146-.002-.301.039-.436.09-.289.109-.585.479-.658.775-.265 1.072.766 1.814.787 2.957.783-.354-.04-2.35-.063-3.01l.032-.043c.494-.087.71.424.799.817"/><path d="m36.698 27.18l.033-.043c.492-.088.709.422.799.814.786-.541.529-1.568-.463-1.588-.146-.004-.301.039-.436.09-.288.109-.584.479-.657.773-.265 1.072.765 1.814.786 2.957.784-.353-.038-2.349-.062-3"/><path d="m45.856 51.898c0 0 1.129-.963 1.238-2.229-.99.744-1.98.852-2.971.852-.988 0-1.622-.598-2.918-.803.073-.447.151-.904.269-1.533.127-.686-.063-1.244-1.062-1.361-2.174-.254-4.279 1-8.125 1.061-3.873-.061-6.527-1.314-8.701-1.061-1 .117-1.188.676-1.061 1.361.116.629.194 1.086.267 1.533-1.296.205-1.929.803-2.917.803-.99 0-1.98-.107-2.97-.852.109 1.266 1.237 2.229 1.237 2.229-1.506.064-2.97-.248-2.97-.248 1.98 2.227 4.428 3.414 7.671 1.752 1.484-.762 3.01.104 4.454.104 1.979 0 1.483-1.602 1.236-2.443 1.123.223 2.366.344 3.729.344v-.004c1.228-.016 2.15-.133 3.2-.34-.247.842-.743 2.443 1.237 2.443 1.439 0 2.969-.865 4.453-.104 3.243 1.662 5.691.475 7.672-1.752.002 0-1.463.313-2.969.248"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#a0cfeb"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#f9f9f9"/><path fill="#699635" d="m22.9 24.6l-2.3-.4h.1l1-3.5-2.7 2.4-1.2-1.8-.8 2.1 1.5 2.5 2.8.2z"/><path fill="#83bf4f" d="m21.1 27.5l-2.3.2h.1l.1-3.7-2.1 3-1.6-1.4-.2 2.2 2 2 2.9-.4z"/><path fill="#699635" d="m20.1 30.7l-2.1.8-.8-3.5-1.2 3.3-1.9-.9.3 2.2 2.5 1.4 2.6-1.2z"/><path fill="#83bf4f" d="m20 34.1l-1.8 1.3h-.1l-1.7-3.2-.3 3.6-2-.4.9 1.9 2.8.8 2.2-1.8z"/><path fill="#699635" d="m20.8 37.4l-1.5 1.8v-.1l-2.5-2.6.7 3.5-2.1.1 1.4 1.7 2.9.1 1.6-2.4z"/><path fill="#83bf4f" d="m22.4 40.4l-.9 2.1-.1-.1-3.1-1.9 1.6 3.3-2 .6 1.8 1.3 2.8-.7 1-2.7z"/><g fill="#699635"><path d="m24.7 42.9l-.3 2.2h-.1l-3.5-1.1 2.4 2.8-1.8 1.1 2.1.8 2.5-1.4.3-2.9z"/><path d="m41.1 24.6l2.3-.4h-.1l-1-3.5 2.7 2.4 1.2-1.8.8 2.1-1.5 2.5-2.8.2z"/></g><path fill="#83bf4f" d="m42.9 27.5l2.3.2h-.1l-.1-3.7 2.1 3 1.6-1.4.2 2.2-2 2-2.9-.4z"/><path fill="#699635" d="m43.9 30.7l2.1.8.8-3.5 1.2 3.3 1.9-.9-.3 2.2-2.5 1.4-2.6-1.2z"/><path fill="#83bf4f" d="m44 34.1l1.8 1.3h.1l1.7-3.2.2 3.6 2.1-.4-.9 1.9-2.8.8-2.2-1.8z"/><path fill="#699635" d="m43.2 37.4l1.5 1.8v-.1l2.5-2.6-.7 3.5 2.1.1-1.4 1.7-2.9.1-1.6-2.4z"/><path fill="#83bf4f" d="m41.6 40.4l.9 2.1.1-.1 3.1-1.9-1.6 3.3 2 .6-1.8 1.3-2.8-.7-1-2.7z"/><path fill="#699635" d="m39.3 42.9l.3 2.2h.1l3.5-1.1-2.4 2.8 1.8 1.1-2.1.8-2.5-1.4-.3-2.9z"/><g fill="#f1bf31"><path d="m25.7 16.1l2.2 2.3h8.1l2.2-2.3.2-3.4-5.2-1.7.5-.4-1.7-1-1.7 1 .5.4-4.8 1.2-.3 3.9m11.5-2.8l-1.3 2-1.3-.5-1.6-.3v-2.9l4.2 1.7m-10.4 0l4.2-1.7v2.9l-1.6.3-1.3.5-1.3-2"/><path d="m31.1 7.4h.6v.1l-.1 1.1h.8l-.1-1.1v-.1h.6l.3-.3-.3-.4-.6.1.1-.6-.4-.4-.4.4.1.6-.6-.1-.3.4z"/></g><path d="m31.8 22.5c1.9 0 9.8-1.4 9.8 9.7 0 10.6-9.6 14.8-9.6 14.8s-9.6-4.1-9.6-15.6c0-10.3 9.4-8.9 9.4-8.9" fill="#a0cfeb"/><path d="m35 39c.6-.3 1.2-.5 1.9-.5 1.1 0 2.1.5 2.9 1.2-2.8 5.1-7.7 7.2-7.7 7.2s-4.8-2-7.6-7.2c.7-.7 1.7-1.2 2.8-1.2.8 0 1.5.2 2.1.6.7-.8 1.7-1.2 2.9-1.2 1 0 1.9.4 2.7 1.1" fill="#83bf4f"/><path d="m43.5 29.5c-.3-3.9-1.4-6.4-2.9-7.8-1.4-1.2-3-1.5-4.2-1.1h-.1l-3.6 1.6c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-3.6-1.6h-.1c-1.2-.4-2.8-.2-4.2 1-1.5 1.3-2.7 3.8-2.9 7.8-.5 6.3 2.2 10.9 5.2 13.6 1.6 1.4 4.1 3.2 6.3 4 2.2-.8 4.7-2.5 6.3-4 3-2.7 5.7-7.3 5.2-13.5m-20.2 1c.2-4.3 1.4-5.7 2-6.2.2.7.9 1.1 1.5 1.1.5 0 4.4-2.2 4.4-2.2.1.2.4.4.7.4s.6-.2.7-.4c0 0 3.7 2.2 4.4 2.2.6 0 1.3-.4 1.5-1.1.6.5 1.8 1.8 2 6.2.4 8.1-6.7 15.7-8.7 15.7-1.8 0-8.8-7.6-8.5-15.7" fill="#f1bf31"/><g fill="#fff"><path d="m31.9 37.9c.1 0 .2 0 .3 0 .5 0 .9.1 1.4.2l-.5-1.9v-3.8l.5-.7v-1.3l-.7-.2v.8l-.5-.1v-.9l-.4-.1-.4.2v.8l-.5.2v-.8l-.7.3v1.3l.5.6v3.8l-.5 2.1c.3-.3.9-.5 1.5-.5"/><path d="m36.6 38.5c.1 0 .1 0 .2 0 .5 0 1 .1 1.5.3l-.4-1.8v-3.8l.5-.7v-1.3l-.8-.2v.8l-.5-.2v-.8l-.4-.1-.4.1v.8l-.5.2v-.8l-.8.2v1.3l.5.7v3.8l-.5 2c.5-.3 1-.5 1.6-.5"/><path d="m27.1 38.5c.1 0 .1 0 .2 0 .5 0 1 .1 1.5.3l-.5-1.8v-3.8l.5-.7v-1.3l-.7-.2v.8l-.5-.2v-.8l-.4-.1-.4.1v.8l-.5.2v-.8l-.7.2v1.3l.5.7v3.8l-.6 2c.5-.3 1-.5 1.6-.5"/><path d="m27 27.2c.5-.1.7.4.8.8.8-.5.5-1.6-.5-1.6-.1 0-.3 0-.4.1-.3.1-.6.5-.7.8-.3 1.1.8 1.8.8 3 .9-.5.1-2.5 0-3.1"/><path d="m32.7 27.2c.8-.5.5-1.6-.5-1.6-.1 0-.3 0-.4.1-.3.1-.6.5-.7.8-.3 1.1.8 1.8.8 3 .8-.4 0-2.4-.1-3 .6-.2.8.3.9.7"/><path d="m36.7 27.2c.5-.1.7.4.8.8.8-.5.5-1.6-.5-1.6-.1 0-.3 0-.4.1-.3.1-.6.5-.7.8-.3 1.1.8 1.8.8 3 .8-.5 0-2.5 0-3.1"/><path d="m45.9 51.9c0 0 1.1-1 1.2-2.2-1 .7-2 .9-3 .9-1 0-1.6-.6-2.9-.8.1-.4.2-.9.3-1.5.1-.7-.1-1.2-1.1-1.4-2.2-.3-4.3 1-8.1 1.1-3.9-.1-6.5-1.3-8.7-1.1-1 .1-1.2.7-1.1 1.4.1.6.2 1.1.3 1.5-1.3.2-1.9.8-2.9.8-1 0-2-.1-3-.9.1 1.3 1.2 2.2 1.2 2.2-1.5.1-3-.2-3-.2 2 2.2 4.4 3.4 7.7 1.8 1.5-.8 3 .1 4.5.1 2 0 1.5-1.6 1.2-2.4 1.1.2 2.4.3 3.7.3 1.2 0 2.2-.1 3.2-.3-.2.8-.7 2.4 1.2 2.4 1.4 0 3-.9 4.5-.1 3.2 1.7 5.7.5 7.7-1.8 0 0-1.4.3-2.9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f3.svg
index c03d45b..548243e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f3.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#699635" d="M2,32c0,13.061,8.35,24.167,20,28.286V3.714C10.35,7.833,2,18.939,2,32z"/><path fill="#ffe62e" d="M42,3.714C38.871,2.607,35.508,2,32,2c-3.507,0-6.871,0.607-10,1.714v56.572
- C25.128,61.393,28.493,62,32,62c3.508,0,6.872-0.607,10-1.714V3.714z"/><path fill="#699635" d="m32 36.25l5.25 3.75-1.98-6.105 5.23-3.785-6.48-.02-2.02-6.09-2.02 6.09-6.478.02 5.23 3.785-1.983 6.105z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#699635"/><path d="m42 3.7c-3.1-1.1-6.5-1.7-10-1.7-3.5 0-6.9.6-10 1.7v56.6c3.1 1.1 6.5 1.7 10 1.7 3.5 0 6.9-.6 10-1.7v-56.6" fill="#ffe62e"/><path fill="#699635" d="m32 36.2l5.3 3.8-2-6.1 5.2-3.8h-6.5l-2-6.1-2 6.1h-6.5l5.2 3.8-2 6.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f4.svg
index 4edfd9c..967be61 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m32 39.22l9.889 7.04-3.739-11.448 9.85-7.095-12.194-.035-3.806-11.422-3.81 11.422-12.19.035 9.846 7.095-3.736 11.448z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#42ade2"/><path fill="#fff" d="m32 39.2l9.9 7.1-3.8-11.5 9.9-7.1h-12.2l-3.8-11.4-3.8 11.4h-12.2l9.8 7.1-3.7 11.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f7.svg
index 21cda4e..6348d1a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="M2,32c0,3.885,0.746,7.593,2.092,11H59.91C61.254,39.593,62,35.885,62,32s-0.746-7.593-2.09-11H4.092
- C2.746,24.407,2,28.115,2,32z"/><g fill="#fff"><path d="m7.285 49h49.43c1.281-1.859 2.355-3.87 3.195-6h-55.818c.84 2.13 1.912 4.141 3.193 6"/><path d="m4.092 21h55.818c-.84-2.13-1.914-4.141-3.195-6h-49.43c-1.281 1.859-2.353 3.87-3.193 6"/></g><path fill="#ffce31" d="M32 37.31 38.18 42 35.844 34.37 42 29.638 34.377 29.615 32 22 29.621 29.615 22 29.638 28.15 34.37 25.82 42z"/><g fill="#699635"><path d="M56.707,15C51.299,7.15,42.254,2,32,2S12.703,7.15,7.295,15H56.707z"/><path d="M7.295,49C12.703,56.85,21.746,62,32,62s19.299-5.15,24.707-13H7.295z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,3.9,0.7,7.6,2.1,11h55.8c1.3-3.4,2.1-7.1,2.1-11s-0.7-7.6-2.1-11H4.1C2.7,24.4,2,28.1,2,32z" fill="#c94747"/><g fill="#fff"><path d="m7.3 49h49.4c1.3-1.9 2.4-3.9 3.2-6h-55.8c.8 2.1 1.9 4.1 3.2 6"/><path d="m4.1 21h55.8c-.8-2.1-1.9-4.1-3.2-6h-49.4c-1.3 1.9-2.4 3.9-3.2 6"/></g><path fill="#ffce31" d="m32 37.3l6.2 4.7-2.4-7.6 6.2-4.8h-7.6l-2.4-7.6-2.4 7.6h-7.6l6.2 4.8-2.4 7.6z"/><g fill="#699635"><path d="M56.7,15C51.3,7.2,42.3,2,32,2S12.7,7.2,7.3,15H56.7z"/><path d="M7.3,49c5.4,7.8,14.5,13,24.7,13s19.3-5.2,24.7-13H7.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f8.svg
index 19c8f84..9bbb665 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M32,2C19.32,2,8.502,9.879,4.112,21h55.776C55.498,9.879,44.68,2,32,2z"/><path fill="#699635" d="M32,62c12.68,0,23.498-7.881,27.889-19H4.112C8.502,54.119,19.32,62,32,62z"/><path fill="#ed4c5c" d="m62 32c0-3.139-.489-6.158-1.383-9h-57.23c-.894 2.842-1.384 5.861-1.384 9 0 3.137.49 6.158 1.384 9h57.23c.894-2.842 1.383-5.863 1.383-9"/><g fill="#fff"><path d="m60.29 22c-.12-.34-.266-.668-.397-1h-55.777c-.132.332-.278.66-.398 1-.116.33-.225.664-.33 1h57.23c-.105-.336-.214-.67-.331-1"/><path d="m3.714 42c.12.34.267.666.398 1h55.776c.132-.334.277-.66.397-1 .117-.33.226-.664.331-1h-57.23c.105.336.214.67.33 1"/></g><path fill="#2a5f9e" d="M10.787,10.787C5.357,16.215,2,23.715,2,32c0,8.283,3.357,15.783,8.787,21.213L32,32L10.787,10.787z"/><path fill="#ffce31" d="m16.782 31.01l3.194-4.207-5.197 1.586-3.312-4.189v5.193l-5.109 1.617 5.109 1.568v5.236l3.312-4.189 5.197 1.585z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C19.3,2,8.5,9.9,4.1,21h55.8C55.5,9.9,44.7,2,32,2z" fill="#3e4347"/><path d="M32,62c12.7,0,23.5-7.9,27.9-19H4.1C8.5,54.1,19.3,62,32,62z" fill="#699635"/><path d="m62 32c0-3.1-.5-6.2-1.4-9h-57.2c-.9 2.8-1.4 5.9-1.4 9 0 3.1.5 6.2 1.4 9h57.2c.9-2.8 1.4-5.9 1.4-9" fill="#ed4c5c"/><g fill="#fff"><path d="m60.3 22c-.1-.3-.3-.7-.4-1h-55.8c-.1.3-.3.7-.4 1-.1.3-.2.7-.3 1h57.2c-.1-.3-.2-.7-.3-1"/><path d="m3.7 42c.1.3.3.7.4 1h55.8c.1-.3.3-.7.4-1 .1-.3.2-.7.3-1h-57.2c.1.3.2.7.3 1"/></g><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32c0,8.3,3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#2a5f9e"/><path fill="#ffce31" d="m16.8 31l3.2-4.2-5.2 1.6-3.3-4.2v5.2l-5.1 1.6 5.1 1.6v5.2l3.3-4.2 5.2 1.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f9.svg
index 6754f9b..08a1d8f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m60 42c-5.523 0-10-4.477-10-10h-39.21v21.21c5.428 5.429 12.928 8.787 21.21 8.787 13.07 0 24.18-8.356 28.29-20.02-.098.003-.193.015-.291.015"/><path d="m60 22c.098 0 .193.012.291.015-4.115-11.659-15.225-20.02-28.29-20.02-8.285 0-15.785 3.358-21.21 8.788v21.21h39.21c0-5.523 4.477-10 10-10"/></g><path fill="#ffe62e" d="m60.29 22h-49.5v20h49.5c1.107-3.129 1.714-6.492 1.714-10s-.607-6.871-1.714-10"/><path fill="#ed4c5c" d="M10.787,10.787C5.358,16.216,2,23.716,2,32s3.358,15.784,8.787,21.213L32,32L10.787,10.787z"/><g fill="#3e4347"><path d="m40 34.12l2.473 1.88-.934-3.052 2.461-1.888-3.049-.01-.951-3.05-.95 3.05-3.05.01 2.461 1.888-.934 3.052z"/><path d="m52 34.12l2.47 1.88-.93-3.052 2.46-1.888-3.049-.01-.951-3.05-.95 3.05-3.05.01 2.46 1.888-.93 3.052z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m60 42c-5.5 0-10-4.5-10-10h-39.2v21.2c5.4 5.4 12.9 8.8 21.2 8.8 13.1 0 24.2-8.4 28.3-20-.1 0-.2 0-.3 0"/><path d="m60 22c.1 0 .2 0 .3 0-4.1-11.6-15.2-20-28.3-20-8.3 0-15.8 3.4-21.2 8.8v21.2h39.2c0-5.5 4.5-10 10-10"/></g><path d="m60.3 22h-49.5v20h49.5c1.1-3.1 1.7-6.5 1.7-10s-.6-6.9-1.7-10" fill="#ffe62e"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#ed4c5c"/><g fill="#3e4347"><path d="m40 34.1l2.5 1.9-1-3.1 2.5-1.8-3-.1-1-3-1 3-3 .1 2.5 1.8-1 3.1z"/><path d="m52 34.1l2.5 1.9-1-3.1 2.5-1.8-3-.1-1-3-1 3-3 .1 2.5 1.8-1 3.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fb.svg
index a703301..9c93704 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="M32,2C18.938,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.062,2,32,2z"/><path d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/></g><path fill="#f9f9f9" d="M3.714,22C2.608,25.129,2,28.492,2,32s0.608,6.871,1.714,10h56.572C61.392,38.871,62,35.508,62,32
- s-0.608-6.871-1.714-10H3.714z"/><g fill="#428bc1"><path d="m35.546 27.933l-1.19 1.191c.402.511.644 1.152.644 1.853 0 1.656-1.344 3-3 3-1.657 0-3-1.344-3-3 0-.7.242-1.343.645-1.853l-1.19-1.191c-.662.798-1.061 1.822-1.061 2.94 0 2.544 2.063 4.606 4.606 4.606s4.606-2.063 4.606-4.606c0-1.118-.398-2.143-1.06-2.94"/><path d="m34.04 25.392l-.684.685c.231.293.37.662.37 1.064 0 .951-.771 1.724-1.724 1.724s-1.724-.772-1.724-1.724c0-.402.139-.771.37-1.064l-.684-.685c-.381.458-.609 1.047-.609 1.689 0 1.461 1.185 2.646 2.646 2.646s2.646-1.186 2.646-2.646c.002-.643-.226-1.231-.607-1.689"/></g><path fill="#699635" d="m28.359 29.511c0 0-.5-.143-.899-.136.005-.008.01-.013.015-.021.315-.482.419-1.384.419-1.384s-.778.458-1.096.937c-.166-.348-.468-.704-.468-.704s-.368.413-.313.815c.057.401.567 1 .567 1s.759.22 1.151.106c.393-.111.624-.614.624-.614"/><path fill="#83bf4f" d="m27.638 30.664c0 0-.521-.01-.904.1.002-.009.007-.016.009-.024.179-.546.044-1.444.044-1.444s-.633.643-.814 1.187c-.251-.293-.637-.56-.637-.56s-.246.494-.088.867c.159.374.809.821.809.821s.789.017 1.14-.192c.349-.211.441-.755.441-.755"/><path fill="#699635" d="m27.24 31.962c0 0-.506.125-.847.329 0-.009.002-.016.002-.024.03-.574-.334-1.407-.334-1.407s-.444.783-.479 1.355c-.317-.219-.759-.378-.759-.378s-.11.542.141.86c.251.32.995.586.995.586s.768-.187 1.05-.479c.285-.291.231-.842.231-.842"/><path fill="#83bf4f" d="m27.2 33.32c0 0-.455.251-.732.536-.002-.01-.002-.017-.005-.025-.119-.563-.688-1.272-.688-1.272s-.225.87-.109 1.432c-.362-.13-.832-.17-.832-.17s.035.551.361.796c.325.244 1.113.31 1.113.31s.693-.377.89-.731c.198-.358.002-.876.002-.876"/><path fill="#699635" d="m27.506 34.641c0 0-.375.359-.567.705-.004-.008-.007-.015-.012-.022-.263-.513-.997-1.053-.997-1.053s.009.898.268 1.412c-.385-.032-.849.049-.849.049s.179.523.557.677c.379.152 1.156.013 1.156.013s.571-.543.669-.937c.097-.395-.225-.844-.225-.844"/><path fill="#83bf4f" d="m28.15 35.837c0 0-.267.443-.364.828-.006-.007-.009-.013-.017-.02-.388-.428-1.236-.76-1.236-.76s.242.865.626 1.294c-.38.068-.806.267-.806.267s.307.459.712.51c.406.05 1.121-.284 1.121-.284s.409-.671.401-1.077c-.007-.406-.437-.758-.437-.758"/><path fill="#699635" d="m29.08 36.829c0 0-.143.496-.137.892-.007-.005-.013-.01-.021-.015-.485-.313-1.394-.416-1.394-.416s.461.773.942 1.089c-.349.164-.709.465-.709.465s.418.364.822.309 1.01-.562 1.01-.562.222-.754.107-1.144c-.111-.389-.618-.618-.618-.618"/><path fill="#83bf4f" d="m30.25 37.545c0 0-.009.517.101.897-.008-.003-.015-.007-.023-.009-.551-.177-1.455-.044-1.455-.044s.647.629 1.195.811c-.296.248-.565.63-.565.63s.499.245.876.088c.376-.158.826-.803.826-.803s.018-.784-.194-1.131c-.212-.347-.761-.439-.761-.439"/><path fill="#699635" d="m35.641 29.511c0 0 .5-.143.899-.136-.005-.008-.01-.013-.015-.021-.315-.482-.419-1.384-.419-1.384s.778.458 1.096.937c.165-.348.468-.704.468-.704s.368.413.312.815c-.056.401-.566 1-.566 1s-.759.22-1.151.106c-.393-.111-.624-.614-.624-.614"/><path fill="#83bf4f" d="m36.36 30.664c0 0 .521-.01.904.1-.002-.009-.007-.016-.009-.024-.179-.546-.044-1.444-.044-1.444s.633.643.814 1.187c.251-.293.637-.56.637-.56s.246.494.088.867c-.159.374-.809.821-.809.821s-.789.017-1.14-.192c-.349-.211-.441-.755-.441-.755"/><path fill="#699635" d="m36.76 31.962c0 0 .505.125.847.329 0-.009-.002-.016-.002-.024-.03-.574.334-1.407.334-1.407s.444.783.479 1.355c.317-.219.759-.378.759-.378s.11.542-.141.86c-.251.32-.995.586-.995.586s-.768-.187-1.051-.479c-.284-.291-.23-.842-.23-.842"/><path fill="#83bf4f" d="m36.805 33.32c0 0 .455.251.732.536.002-.01.002-.017.005-.025.119-.563.688-1.272.688-1.272s.225.87.109 1.432c.362-.13.832-.17.832-.17s-.035.551-.361.796c-.326.244-1.113.31-1.113.31s-.693-.377-.89-.731c-.198-.358-.002-.876-.002-.876"/><path fill="#699635" d="m36.494 34.641c0 0 .375.359.567.705.004-.008.007-.015.012-.022.263-.513.997-1.053.997-1.053s-.01.898-.268 1.412c.385-.032.848.049.848.049s-.178.523-.556.677c-.379.152-1.156.013-1.156.013s-.571-.543-.669-.937c-.098-.395.225-.844.225-.844"/><path fill="#83bf4f" d="m35.851 35.837c0 0 .267.443.364.828.006-.007.009-.013.017-.02.388-.428 1.236-.76 1.236-.76s-.243.865-.626 1.294c.38.068.806.267.806.267s-.307.459-.712.51c-.406.05-1.121-.284-1.121-.284s-.409-.671-.401-1.077c.007-.406.437-.758.437-.758"/><path fill="#699635" d="m34.915 36.829c0 0 .144.496.138.892.007-.005.013-.01.021-.015.485-.313 1.394-.416 1.394-.416s-.461.773-.942 1.089c.349.164.709.465.709.465s-.418.364-.822.309-1.01-.562-1.01-.562-.222-.754-.107-1.144c.111-.389.617-.618.617-.618"/><path fill="#83bf4f" d="m33.755 37.545c0 0 .009.517-.101.897.008-.003.015-.007.023-.009.551-.177 1.455-.044 1.455-.044s-.647.629-1.195.811c.295.248.564.63.564.63s-.498.245-.875.088c-.376-.158-.826-.803-.826-.803s-.018-.784.194-1.131c.212-.347.761-.439.761-.439"/><path fill="#ffce31" d="m38 35.965h-12l6-10 6 10m-10.165-1.059h8.33l-4.165-6.943-4.165 6.943"/><path fill="#3e4347" d="m32.5 30.15l-.5.815-.5-.815v-2.375l.5-.81.5.81v2.375"/><circle fill="#c94747" cx="32" cy="30.965" r="2"/><path fill="#ffc7ce" d="m32 29.465c-.828 0-1.5.672-1.5 1.5h3c0-.828-.672-1.5-1.5-1.5"/><path fill="#fc0" d="m41.717 32.423c0-5.366-4.351-9.717-9.717-9.717s-9.717 4.351-9.717 9.717c0 3.833 2.226 7.139 5.451 8.72l.684-1.202c-2.809-1.341-4.753-4.199-4.753-7.518 0-4.604 3.731-8.335 8.335-8.335s8.335 3.731 8.335 8.335c0 3.367-2 6.262-4.876 7.577l.492 1.294c3.396-1.515 5.766-4.913 5.766-8.871"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z"/></g><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/><g fill="#428bc1"><path d="m35.5 27.9l-1.2 1.2c.4.5.6 1.2.6 1.9 0 1.7-1.3 3-3 3-1.7 0-3-1.3-3-3 0-.7.2-1.3.6-1.9l-1.2-1.2c-.7.8-1.1 1.8-1.1 2.9 0 2.5 2.1 4.6 4.6 4.6s4.6-2.1 4.6-4.6c.2-1-.2-2.1-.9-2.9"/><path d="m34 25.4l-.7.7c.2.3.4.7.4 1.1 0 1-.8 1.7-1.7 1.7s-1.7-.8-1.7-1.7c0-.4.1-.8.4-1.1l-.7-.7c-.4.5-.6 1-.6 1.7 0 1.5 1.2 2.6 2.6 2.6s2.6-1.2 2.6-2.6c0-.7-.2-1.2-.6-1.7"/></g><path d="m28.4 29.5c0 0-.5-.1-.9-.1.3-.5.4-1.4.4-1.4s-.8.5-1.1.9c-.2-.3-.5-.7-.5-.7s-.3.4-.3.8c.1.4.6 1 .6 1s.8.2 1.2.1c.3-.1.6-.6.6-.6" fill="#699635"/><path d="m27.6 30.7c0 0-.5 0-.9.1.2-.5 0-1.4 0-1.4s-.6.6-.8 1.2c-.3-.3-.6-.6-.6-.6s-.2.5-.1.9c.2.4.8.8.8.8s.8 0 1.1-.2c.4-.3.5-.8.5-.8" fill="#83bf4f"/><path d="m27.2 32c0 0-.5.1-.8.3 0-.6-.3-1.4-.3-1.4s-.4.8-.5 1.4c-.3-.2-.8-.4-.8-.4s-.1.5.1.9c.3.3 1 .6 1 .6s.8-.2 1-.5c.4-.4.3-.9.3-.9" fill="#699635"/><path d="m27.2 33.3c0 0-.5.3-.7.5-.1-.6-.7-1.3-.7-1.3s-.2.9-.1 1.4c-.4-.1-.8-.2-.8-.2s0 .6.4.8c.3.2 1.1.3 1.1.3s.7-.4.9-.7c.1-.3-.1-.8-.1-.8" fill="#83bf4f"/><path d="m27.5 34.6c0 0-.4.4-.6.7-.3-.5-1-1.1-1-1.1s0 .9.3 1.4c-.4 0-.8 0-.8 0s.2.5.6.7c.4.2 1.2 0 1.2 0s.6-.5.7-.9c-.1-.3-.4-.8-.4-.8" fill="#699635"/><path d="m28.1 35.8c0 0-.3.4-.4.8-.4-.4-1.2-.8-1.2-.8s.2.9.6 1.3c-.4.1-.8.3-.8.3s.3.5.7.5c.4 0 1.1-.3 1.1-.3s.4-.7.4-1.1c.1-.3-.4-.7-.4-.7" fill="#83bf4f"/><path d="m29.1 36.8c0 0-.1.5-.1.9-.5-.3-1.4-.4-1.4-.4s.5.8.9 1.1c-.3.2-.7.5-.7.5s.4.4.8.3 1-.6 1-.6.2-.8.1-1.1c-.1-.4-.6-.7-.6-.7" fill="#699635"/><path d="m30.2 37.5c0 0 0 .5.1.9-.6-.2-1.5 0-1.5 0s.6.6 1.2.8c-.3.2-.6.6-.6.6s.5.2.9.1c.4-.2.8-.8.8-.8s0-.8-.2-1.1c-.1-.4-.7-.5-.7-.5" fill="#83bf4f"/><path d="m35.6 29.5c0 0 .5-.1.9-.1-.3-.5-.4-1.4-.4-1.4s.8.5 1.1.9c.2-.3.5-.7.5-.7s.3.4.3.8c-.1.4-.6 1-.6 1s-.8.2-1.2.1c-.3-.1-.6-.6-.6-.6" fill="#699635"/><path d="m36.4 30.7c0 0 .5 0 .9.1-.2-.5 0-1.4 0-1.4s.6.6.8 1.2c.3-.3.6-.6.6-.6s.2.5.1.9c-.2.4-.8.8-.8.8s-.8 0-1.1-.2c-.4-.3-.5-.8-.5-.8" fill="#83bf4f"/><path d="m36.8 32c0 0 .5.1.8.3 0-.6.3-1.4.3-1.4s.4.8.5 1.4c.3-.2.8-.4.8-.4s.1.5-.1.9c-.3.3-1 .6-1 .6s-.8-.2-1.1-.5c-.3-.4-.2-.9-.2-.9" fill="#699635"/><path d="m36.8 33.3c0 0 .5.3.7.5.1-.6.7-1.3.7-1.3s.2.9.1 1.4c.4-.1.8-.2.8-.2s0 .6-.4.8c-.3.2-1.1.3-1.1.3s-.7-.4-.9-.7c-.1-.3.1-.8.1-.8" fill="#83bf4f"/><path d="m36.5 34.6c0 0 .4.4.6.7.3-.5 1-1.1 1-1.1s0 .9-.3 1.4c.4 0 .8 0 .8 0s-.2.5-.6.7c-.4.2-1.2 0-1.2 0s-.6-.5-.7-.9c.1-.3.4-.8.4-.8" fill="#699635"/><path d="m35.9 35.8c0 0 .3.4.4.8.4-.4 1.2-.8 1.2-.8s-.2.9-.6 1.3c.4.1.8.3.8.3s-.3.5-.7.5c-.4 0-1.1-.3-1.1-.3s-.4-.7-.4-1.1c-.1-.3.4-.7.4-.7" fill="#83bf4f"/><path d="m34.9 36.8c0 0 .1.5.1.9.5-.3 1.4-.4 1.4-.4s-.5.8-.9 1.1c.3.2.7.5.7.5s-.4.4-.8.3-1-.6-1-.6-.2-.8-.1-1.1c.1-.4.6-.7.6-.7" fill="#699635"/><path d="m33.8 37.5c0 0 0 .5-.1.9.6-.2 1.5 0 1.5 0s-.6.6-1.2.8c.3.2.6.6.6.6s-.5.2-.9.1c-.4-.2-.8-.8-.8-.8s0-.8.2-1.1.7-.5.7-.5" fill="#83bf4f"/><path d="m38 36h-12l6-10 6 10m-10.2-1.1h8.3l-4.1-6.9-4.2 6.9" fill="#ffce31"/><path fill="#3e4347" d="m32.5 30.2l-.5.8-.5-.8v-2.4l.5-.8.5.8z"/><circle cx="32" cy="31" r="2" fill="#c94747"/><path d="m32 29.5c-.8 0-1.5.7-1.5 1.5h3c0-.9-.7-1.5-1.5-1.5" fill="#ffc7ce"/><path d="m41.7 32.4c0-5.4-4.4-9.7-9.7-9.7s-9.7 4.4-9.7 9.7c0 3.8 2.2 7.1 5.5 8.7l.7-1.2c-2.8-1.3-4.8-4.2-4.8-7.5 0-4.6 3.7-8.3 8.3-8.3s8.3 3.7 8.3 8.3c0 3.4-2 6.3-4.9 7.6l.5 1.3c3.4-1.5 5.8-4.9 5.8-8.9" fill="#fc0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fd.svg
index 32c2983..b0cd97a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m10.787 10.787v21.21h51.21c0-16.568-13.432-30-30-30-8.285 0-15.785 3.358-21.21 8.788"/><path fill="#428bc1" d="m10.787 32v21.21-.002c5.429 5.43 12.929 8.789 21.21 8.789 16.568 0 30-13.432 30-30h-51.21"/><path fill="#f9f9f9" d="M10.787,10.787C5.358,16.216,2,23.716,2,32s3.358,15.783,8.787,21.213L32,32L10.787,10.787z"/><path fill="#ff0" d="m18.463 25.533l.01-.377c0 0-.201-.32.033-.666 0 0-.498-.262-.382-.674 0 0-.449-.114-.416-.609 0 0-.485-.033-.535-.445 0 0-.485.079-.699-.322 0 0-.473.092-.606-.24 0 0-.46.159-.732-.23 0 0-.486.197-.689-.172-.202.367-.686.172-.686.172-.27.389-.732.227-.732.227-.129.334-.601.24-.601.24-.212.4-.697.322-.697.322-.047.412-.532.445-.532.445.039.495-.41.607-.41.607.119.411-.377.674-.377.674.239.347.041.664.041.664l-.012.347 8.02.037"/><path fill="#ffce31" d="m18.463 25.533l.01-.377c0 0-.201-.32.033-.666 0 0-.498-.262-.382-.674 0 0-.449-.114-.416-.609 0 0-.485-.033-.535-.445 0 0-.485.079-.699-.322 0 0-.473.092-.606-.24 0 0-.46.159-.732-.23 0 0-.486.197-.689-.172-.202.367-.686.172-.686.172-.27.389-.732.227-.732.227-.129.334-.601.24-.601.24-.212.4-.697.322-.697.322-.047.412-.532.445-.532.445.039.495-.41.607-.41.607.119.411-.377.674-.377.674.239.347.041.664.041.664l-.012.347 8.02.037"/><path fill="#ed4c5c" d="m18.275 25.06c-1.26-.127-2.712-.426-3.832.205-.75-.443-1.797-.415-2.688-.328-.483.086-1.052.086-1.558.168l-.08.012c-.916.061-1.748-.211-2.545-.566.252 1.436.535 2.907.672 4.41.301 2.227-1.054 4.096-.498 6.295.331 1.055 1.491 1.67 2.554 1.791 1.028.061 2.092.229 3.045.436.181.039.395.121.52.176.263.11.455.271.623.443.575-.599 1.417-.765 2.248-.853 1.499-.175 3.344-.079 4.261-1.437v-.076c.499-.75.433-1.896.217-2.746-.015-.295-.095-.557-.138-.84-.914-2.416-.131-5.133.263-7.568-.479.262-1.018.387-1.553.518-.426.059-.902.031-1.334.008l-.177-.048m1.883 6.934"/><path fill="#428bc1" d="m20.16 31.998c-.006.158.08.283.111.43.175 1.058.344 2.456-.743 3.111-1.203.765-2.78.438-4.173.842-.278.078-.661.334-.856.516-.125-.084-.252-.211-.415-.285-1.144-.609-2.633-.404-3.926-.734-.65-.205-1.326-.711-1.492-1.375-.422-1.745.591-3.23.471-4.961-.078-1.32-.3-2.588-.604-3.826 1.01.47 2.181.549 3.316.323.842-.118 1.821-.119 2.61.235.434-.188.943-.27 1.411-.322.891.087 1.849.248 2.765.242.612-.033 1.17-.21 1.702-.445-.314 2.046-.922 4.19-.177 6.249"/><g fill="#fff"><path d="m19.245 34.935h-.683l-.008-2.068h.143l-.004-.435h-.353l-.009-1.95h.237l-2.942-1.899-.005-.987h.284l-1.471-1.053-1.463 1.053h.283l.005.986-2.928 1.897.234.001.01 1.943h-.355v.438l.168.005.007 2.062h-.632l.003.6 9.479.011v-.603"/><path d="m18.373 26.371c.277-.006.349 1.14.349 1.708.238.065.765.398.999.697l-2.675-.003c.23-.296.754-.629.989-.696-.001-.568.058-1.714.338-1.706"/></g><path fill="#ffce31" d="m24.33 32.629l-.469.032c-.049-.45-.154-1.01-.369-1.638v.002l-1.367.434.433 2.221.382.061c-.205 1.682-1.098 4.432-5.168 4.613l.026.234c-.761.324-2.148.543-3.293.538-1.144 0-2.571-.22-3.337-.543l.024-.239c-4.069-.184-4.987-2.932-5.208-4.613l.383-.06.415-2.224-1.372-.438v-.001c-.209.629-.309 1.186-.354 1.638l-.469-.034c-.229 1.848.138 6.387 4.842 7.175l-.005.485c1.327.73 4.415.889 5.088.885.67.004 3.722-.152 5.04-.881l-.008-.48c4.696-.782 5.03-5.32 4.783-7.167"/><path fill="#bc715f" d="m9.58 23.867c.104-.252 1.072-.939 4.245-.639 0 0 .537.328.852.285.18-.023-.106.012-.34-.182-.239-.195-.29-.596.257-.586.543.016 2.579.131 2.616.313.037.185-1.076.261-1.49.251-.415-.012-.366.199.047.184 1.292-.047 2.702-.502 4.192.551.178.128-.449.149-.934-.057 0 0-1.314.068-1.882-.024 0 0-.437.354-1.01.319.074.186-.21.872-1.999.355-.295.091-1.372.271-1.254-.049-.283 0-.779.09-.854-.07-.071-.158.875-.399 1.041-.57 0 0-2 .02-2.38-.119 0 0-1.181.266-1.112.035"/><path fill="#699635" d="m10.222 26.67l.151-.16 1.98.179-.343.531.185.522-.115.218-.465-.155.132.205-.292.01-.075.2-.231-.21.076.21-.303.684-.173.087-.051-.466-.335.457-.323-.44.132-.589-.267-.232-.611.058.186-.719-.659-.706 1.399.316"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m10.8 10.8v21.2h51.2c0-16.6-13.4-30-30-30-8.3 0-15.8 3.4-21.2 8.8" fill="#ed4c5c"/><path d="m10.8 32v21.2c5.4 5.4 12.9 8.8 21.2 8.8 16.6 0 30-13.4 30-30h-51.2" fill="#428bc1"/><path d="M10.8,10.8C5.4,16.2,2,23.7,2,32s3.4,15.8,8.8,21.2L32,32L10.8,10.8z" fill="#f9f9f9"/><path d="m18.5 25.5v-.4c0 0-.2-.3 0-.7 0 0-.5-.3-.4-.7 0 0-.4-.1-.4-.6 0 0-.5 0-.5-.4 0 0-.5.1-.7-.3 0 0-.5.1-.6-.2 0 0-.5.2-.7-.2 0 0-.5.2-.7-.2-.2.4-.7.2-.7.2-.3.4-.7.2-.7.2-.1.3-.6.2-.6.2-.2.4-.7.3-.7.3 0 .4-.5.4-.5.4 0 .5-.4.6-.4.6.1.4-.4.7-.4.7.2.3 0 .7 0 .7v.3l8 .1" fill="#ff0"/><path d="m18.5 25.5v-.4c0 0-.2-.3 0-.7 0 0-.5-.3-.4-.7 0 0-.4-.1-.4-.6 0 0-.5 0-.5-.4 0 0-.5.1-.7-.3 0 0-.5.1-.6-.2 0 0-.5.2-.7-.2 0 0-.5.2-.7-.2-.2.4-.7.2-.7.2-.3.4-.7.2-.7.2-.1.3-.6.2-.6.2-.2.4-.7.3-.7.3 0 .4-.5.4-.5.4 0 .5-.4.6-.4.6.1.4-.4.7-.4.7.2.3 0 .7 0 .7v.3l8 .1" fill="#ffce31"/><path d="m18.3 25.1c-1.3-.1-2.7-.4-3.8.2-.8-.4-1.8-.4-2.7-.3-.5.1-1.1.1-1.6.2h-.1c-.9.1-1.7-.2-2.5-.6.2 1.4.5 2.9.6 4.4.3 2.2-1.1 4.1-.5 6.3.3 1.1 1.5 1.7 2.6 1.8 1 .1 2.1.2 3 .4.2 0 .4.1.5.2.3.1.5.3.6.4.6-.6 1.4-.8 2.2-.9 1.5-.2 3.3-.1 4.3-1.4v-.1c.5-.8.4-1.9.2-2.7 0-.3-.1-.6-.1-.8-.9-2.4-.1-5.1.3-7.6-.5.3-1 .4-1.6.5-.4.1-.9 0-1.3 0h-.1m1.9 6.9" fill="#ed4c5c"/><path d="m20.2 32c0 .2.1.3.1.4.2 1.1.3 2.5-.7 3.1-1.2.8-2.8.4-4.2.8-.3.1-.7.3-.9.5-.1-.1-.3-.2-.4-.3-1.1-.6-2.6-.4-3.9-.7-.6-.2-1.3-.7-1.5-1.4-.4-1.7.6-3.2.5-5-.1-1.3-.3-2.6-.6-3.8 1 .5 2.2.5 3.3.3.8-.1 1.8-.1 2.6.2.4-.2.9-.3 1.4-.3.9.1 1.8.2 2.8.2.6 0 1.2-.2 1.7-.4-.4 2.2-1 4.3-.2 6.4" fill="#428bc1"/><g fill="#fff"><path d="m19.2 34.9h-.7v-2.1h.1v-.4h-.4v-2h.2l-2.9-1.9v-1h.3l-1.5-1.1-1.3 1.2h.3v1l-2.9 1.9h.2v1.9h-.4v.4h.2v2.1h-.6v.6h9.5l-.1-.6"/><path d="m18.4 26.4c.3 0 .3 1.1.3 1.7.2.1.8.4 1 .7h-2.7c.2-.3.8-.6 1-.7 0-.6.1-1.7.4-1.7"/></g><path d="m24.3 32.6h-.5c0-.5-.2-1-.4-1.6l-1.4.4.4 2.2.4.1c-.2 1.7-1.1 4.4-5.2 4.6v.2c-.8.3-2.1.5-3.3.5-1.1 0-2.6-.2-3.3-.5v-.2c-4.1-.2-5-2.9-5.2-4.6l.4-.1.4-2.2-1.2-.4c-.2.6-.3 1.2-.4 1.6h-.5c-.2 1.8.1 6.4 4.8 7.2v.5c1.3.7 4.4.9 5.1.9.7 0 3.7-.2 5-.9v-.5c4.8-.8 5.2-5.3 4.9-7.2" fill="#ffce31"/><path d="m9.6 23.9c.1-.3 1.1-.9 4.2-.6 0 0 .5.3.9.3.2 0-.1 0-.3-.2-.2-.2-.3-.6.3-.6.5 0 2.6.1 2.6.3 0 .2-1.1.3-1.5.3-.4 0-.4.2 0 .2 1.3 0 2.7-.5 4.2.6.2.1-.4.1-.9-.1 0 0-1.3.1-1.9 0 0 0-.4.4-1 .3.1.2-.2.9-2 .4-.3.1-1.4.3-1.3 0-.3 0-.8.1-.9-.1-.1-.2.9-.4 1-.6 0 0-2 0-2.4-.1.1-.2-1.1.1-1-.1" fill="#bc715f"/><path fill="#699635" d="m10.2 26.7l.2-.2 2 .2-.4.5.2.5-.1.3-.5-.2.1.2h-.2l-.1.2-.3-.2.1.2-.3.7-.2.1v-.5l-.3.5-.4-.5.2-.5-.3-.3-.6.1.2-.7-.7-.7 1.4.3"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fe.svg
index 8e41724..62fbea4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1fe.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#ed4c5c" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#f9f9f9" d="M60.286,42C61.393,38.871,62,35.508,62,32s-0.607-6.871-1.714-10H3.714C2.607,25.129,2,28.492,2,32
- s0.607,6.871,1.714,10H60.286z"/><g fill="#75a843"><path d="m21 35.19l4.326 2.81-1.634-4.578 4.308-2.922h-5.336l-1.664-4.5-1.614 4.5h-5.386l4.309 2.922-1.635 4.578z"/><path d="m43 35.19l4.33 2.81-1.638-4.578 4.308-2.922h-5.336l-1.664-4.5-1.61 4.5h-5.39l4.31 2.922-1.636 4.578z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#3e4347"/><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ed4c5c"/><path d="M60.3,42c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10H60.3z" fill="#f9f9f9"/><g fill="#75a843"><path d="m21 35.2l4.3 2.8-1.6-4.6 4.3-2.9h-5.3l-1.7-4.5-1.6 4.5h-5.4l4.3 2.9-1.6 4.6z"/><path d="m43 35.2l4.3 2.8-1.6-4.6 4.3-2.9h-5.3l-1.7-4.5-1.6 4.5h-5.4l4.3 2.9-1.6 4.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ff.svg
index 14ea8e6..deafce4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8-1f1ff.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2C21.744,2,12.695,7.149,7.285,15h49.43C51.305,7.149,42.256,2,32,2z"/><path d="M32,62c10.256,0,19.305-5.149,24.715-13H7.285C12.695,56.851,21.744,62,32,62z"/></g><path fill="#c94747" d="M59.045,19H4.955C3.062,22.934,2,27.343,2,32s1.062,9.066,2.955,13h54.09C60.938,41.066,62,36.657,62,32
- S60.938,22.934,59.045,19z"/><g fill="#ffce31"><path d="m4.955 45c.674 1.398 1.457 2.732 2.33 4h49.43c.873-1.268 1.656-2.602 2.33-4h-54.09"/><path d="m59.05 19c-.674-1.398-1.457-2.732-2.33-4h-49.43c-.873 1.268-1.656 2.602-2.33 4h54.09"/><path d="m58.41 31.563h-52.826c-.259 0-.468.197-.468.438 0 .242.209.438.468.438h52.826c.258 0 .468-.196.468-.438 0-.241-.21-.438-.468-.438"/><path d="m12.44 28.494h38.82l1.79.584 2.688-.876-2.688-.877-1.793.584h-.572c-.001 0-.002 0-.003 0h-.313c-.001 0-.003 0-.004 0h-.313c-.001 0-.002 0-.004 0h-37.608c-.189 0-.344.132-.344.293s.155.292.344.292"/><path d="m9.91 30.25h37.608v.001c.001 0 .003-.001.005-.001h.312v.001c.002 0 .004-.001.005-.001h.312v.001c.002 0 .004-.001.006-.001h.571l1.793.585 2.688-.877-2.688-.876-1.791.583h-38.821c-.189 0-.343.132-.343.293s.154.292.343.292"/></g><path fill="#fff" d="m47.518 32c-3.163 2.921-7.38 8.766-15.813 8.766-7.38 0-4.926-8.766-4.926-8.766s-2.454-8.767 4.926-8.767c8.432 0 12.649 5.844 15.813 8.767"/><path fill="#3e4347" d="m30.601 26.28c.841.874.139 1.226 1.029 1.284.939.063.407.924 1.196.954.553.021-.055 2.06.477 2.732.542.702.996.205 1.01.712.01.523-1.474.472-1.5 2.086-.043.93-1.252.99-1.31 1.588-.071.563 2.381.88 2.348 1.383s-2.647.424-2.762.998c-.059.514 3.592.936 3.886 2.425-.545.163-2.095.319-3.266.32-7.378.005-12.65-5.845-15.812-8.767 3.161-2.922 8.433-8.767 15.813-8.767 0 .001-2.19 1.851-1.104 3.052"/><g fill="#fff"><path d="m21.795 28.883h.768v2.338h-.768z"/><path d="m21.795 32.78h.768v2.337h-.768z"/><path d="m23.328 28.883h.768v2.338h-.768z"/><path d="m23.328 32.78h.768v2.337h-.768z"/><path d="m24.862 28.883h.766v2.338h-.766z"/><path d="m24.862 32.78h.766v2.337h-.766z"/><path d="m26.395 28.883h.768v2.338h-.768z"/><path d="m26.395 32.78h.768v2.337h-.768z"/><path d="m27.928 28.883h.768v2.338h-.768z"/><path d="m27.928 32.78h.768v2.337h-.768z"/><path d="m29.461 28.883h.767v2.338h-.767z"/><path d="m29.461 32.78h.767v2.337h-.767z"/></g><g fill="#3e4347"><path d="m33.392 28.883h.767v2.338h-.767z"/><path d="m33.392 32.78h.767v2.337h-.767z"/><path d="m34.925 28.883h.766v2.338h-.766z"/><path d="m34.925 32.78h.766v2.337h-.766z"/><path d="m36.458 28.883h.767v2.338h-.767z"/><path d="m36.458 32.78h.767v2.337h-.767z"/><path d="m37.991 28.883h.767v2.338h-.767z"/><path d="m37.991 32.78h.767v2.337h-.767z"/><path d="m39.524 28.883h.767v2.338h-.767z"/><path d="m39.524 32.78h.767v2.337h-.767z"/><path d="m41.06 28.883h.767v2.338h-.767z"/><path d="m41.06 32.78h.767v2.337h-.767z"/></g><path fill="#a70000" d="m55.1 31.652v.002-.002"/><g fill="#428bc1"><path d="m29.25 25.841c-3.783-2.623-4.927 1.153-4.624 2.843.457-.55 2.784 1.645 4.23 1.838-1.115-.819 2.314-3.344.394-4.681"/><path d="m56.48 36.29c2.792-3.527-1.308-4.537-3.134-4.237.601.416-1.746 2.592-1.938 3.93.873-1.041 3.646 2.098 5.072.307"/><path d="m9.207 31.765c-4.644.825-2.387 4.144-.829 5.073-.133-.682 3.19-.799 4.317-1.658-1.407.212-1.125-3.831-3.488-3.415"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2C21.7,2,12.7,7.1,7.3,15h49.4C51.3,7.1,42.3,2,32,2z"/><path d="M32,62c10.3,0,19.3-5.1,24.7-13H7.3C12.7,56.9,21.7,62,32,62z"/></g><path d="m59 19h-54c-1.9 3.9-3 8.3-3 13s1.1 9.1 3 13h54c1.9-3.9 3-8.3 3-13s-1.1-9.1-3-13" fill="#c94747"/><g fill="#ffce31"><path d="m5 45c.7 1.4 1.5 2.7 2.3 4h49.4c.9-1.3 1.7-2.6 2.3-4h-54"/><path d="m59 19c-.7-1.4-1.5-2.7-2.3-4h-49.4c-.9 1.3-1.7 2.6-2.3 4h54"/><path d="m58.4 31.6h-52.8c-.3 0-.5.2-.5.4 0 .2.2.4.5.4h52.8c.3 0 .5-.2.5-.4 0-.2-.2-.4-.5-.4"/><path d="m12.4 28.5h38.8l1.8.6 2.7-.9-2.7-.9-1.8.6h-.6c0 0 0 0 0 0h-.3c0 0 0 0 0 0h-.3c0 0 0 0 0 0h-37.6c-.2 0-.3.1-.3.3s.2.3.3.3"/><path d="m9.9 30.2h37.6c0 0 0 0 0 0h.3c0 0 0 0 0 0h.3c0 0 0 0 0 0h.6l1.8.6 2.7-.9-2.7-.9-1.8.6h-38.8c-.2 0-.3.1-.3.3s.1.3.3.3"/></g><path d="m47.5 32c-3.2 2.9-7.4 8.8-15.8 8.8-7.4 0-4.9-8.8-4.9-8.8s-2.5-8.8 4.9-8.8c8.4 0 12.7 5.9 15.8 8.8" fill="#fff"/><path d="m30.6 26.3c.8.9.1 1.2 1 1.3.9.1.4.9 1.2 1 .6 0-.1 2.1.5 2.7.5.7 1 .2 1 .7 0 .5-1.5.5-1.5 2.1 0 .9-1.3 1-1.3 1.6-.1.6 2.4.9 2.3 1.4s-2.6.4-2.8 1c0 .4 3.7.9 4 2.3-.5.2-2.1.3-3.3.3-7.4 0-12.6-5.8-15.8-8.8 3.2-2.9 8.4-8.8 15.8-8.8 0 .1-2.2 2-1.1 3.2" fill="#3e4347"/><g fill="#fff"><path d="m21.8 28.9h.8v2.3h-.8z"/><path d="m21.8 32.8h.8v2.3h-.8z"/><path d="m23.3 28.9h.8v2.3h-.8z"/><path d="m23.3 32.8h.8v2.3h-.8z"/><path d="m24.9 28.9h.8v2.3h-.8z"/><path d="m24.9 32.8h.8v2.3h-.8z"/><path d="m26.4 28.9h.8v2.3h-.8z"/><path d="m26.4 32.8h.8v2.3h-.8z"/><path d="m27.9 28.9h.8v2.3h-.8z"/><path d="m27.9 32.8h.8v2.3h-.8z"/><path d="m29.5 28.9h.8v2.3h-.8z"/><path d="m29.5 32.8h.8v2.3h-.8z"/></g><g fill="#3e4347"><path d="m33.4 28.9h.8v2.3h-.8z"/><path d="m33.4 32.8h.8v2.3h-.8z"/><path d="m34.9 28.9h.8v2.3h-.8z"/><path d="m34.9 32.8h.8v2.3h-.8z"/><path d="m36.5 28.9h.8v2.3h-.8z"/><path d="m36.5 32.8h.8v2.3h-.8z"/><path d="m38 28.9h.8v2.3h-.8z"/><path d="m38 32.8h.8v2.3h-.8z"/><path d="m39.5 28.9h.8v2.3h-.8z"/><path d="m39.5 32.8h.8v2.3h-.8z"/><path d="m41.1 28.9h.8v2.3h-.8z"/><path d="m41.1 32.8h.8v2.3h-.8z"/></g><g fill="#428bc1"><path d="m29.2 25.8c-3.8-2.6-4.9 1.2-4.6 2.8.5-.5 2.8 1.6 4.2 1.8-1.1-.7 2.4-3.2.4-4.6"/><path d="m56.5 36.3c2.8-3.5-1.3-4.5-3.1-4.2.6.4-1.7 2.6-1.9 3.9.8-1.1 3.5 2.1 5 .3"/><path d="m9.2 31.8c-4.6.8-2.4 4.1-.8 5.1-.1-.7 3.2-.8 4.3-1.7-1.4.2-1.1-3.9-3.5-3.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f8.svg
new file mode 100644
index 0000000..a39d201
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f8.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m25.8 37.6c.2 1.3.6 2.3 1.1 3 1 1.2 2.7 1.8 5.2 1.8 1.5 0 2.6-.2 3.6-.5 1.7-.6 2.6-1.7 2.6-3.4 0-1-.4-1.7-1.3-2.2-.8-.5-2.2-1-4-1.4l-3.1-.7c-3.1-.7-5.2-1.4-6.4-2.2-2-1.3-2.9-3.4-2.9-6.3 0-2.6 1-4.8 2.9-6.5 1.9-1.7 4.7-2.6 8.4-2.6 3.1 0 5.7.8 7.9 2.4 2.2 1.6 3.3 4 3.4 7.1h-5.8c-.1-1.7-.9-3-2.3-3.7-1-.5-2.2-.7-3.6-.7-1.6 0-2.9.3-3.8.9s-1.4 1.5-1.4 2.6c0 1 .5 1.8 1.4 2.3.6.3 1.9.7 3.9 1.2l5.1 1.2c2.2.5 3.9 1.2 5 2.1 1.7 1.4 2.6 3.3 2.6 5.9 0 2.7-1 4.9-3.1 6.6-2 1.8-4.9 2.6-8.7 2.6-3.8 0-6.8-.9-9-2.6-2.4-1.5-3.5-3.9-3.5-6.9h5.8" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e6.svg
index 29df0bf..68e6e9c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h21v21h-21z"/><path fill="#fff" d="m18.912 8.14v5.86h-7.312l14.4 18h6v-7.5z"/><path fill="#2a5f9e" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30C62,15.432,48.568,2,32,2z"/><path fill="#fff" d="M11,18.913H5.011C3.088,22.87,2,27.307,2,32h12V13.913h-3V18.913z"/><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.868,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.941,7.94,12.858,5,18.913V32h6V11h21V5z"/><g fill="#d8a322"><path d="m34.541 33.85l-.003.006.003-.006"/><path d="m34.536 33.861l-.036.079.036-.079"/></g><path fill="#bfe5e8" d="m48.26 24.03l-3.689 1.248.057-3.804.779-1.259 2.853 3.815m-6.778.502l2.852-2.851-.037 3.572-2.815-.721"/><g fill="#c7e8eb"><path d="m46.37 26l-.01-.001.01.001"/><path d="m48.14 25.947l-.055.015.055-.015"/><path d="m48.24 25.919l-.002.006.002-.006"/><path d="m48.24 25.904l.033-.078-.033.078"/><path d="m48.24 25.919l.006-.016-.006.016"/><path d="m42.573 25.24c.037.647.215.686.215.686h5.449c0 0 .156-.468.207-.709-1.59.425-3.695.702-5.871.023"/></g><path fill="#00a3d6" d="m48.97 26.22c.043-.169.086-.338.127-.507.066-.265-.121-.397-.148-.671-.014-.163.01-.326.047-.485-.205-.064-.422-.088-.637-.084-.195.003-.447-.053-.502.183.283-.028.596-.048.869.049-.602.505-1.695.543-2.434.597-.637.046-1.316.075-1.934.014-.346-.034-.75-.091-1.111-.165-.246-.05-.488-.114-.723-.202-.037-.288.021-.306-.295-.306-.029.319-.154 1.508.404 1.321-.119-.239-.119-.561-.146-.819 1.16.428 3.434.761 6.05-.037-.045.282-.119.553-.221.82.237.008.481.119.649.292"/><path fill="#bc7e22" d="m44.591 20.861c0 0 0-.098-.098-.098-.092 0-.098.098-.098.098l-.064 4.416h.205l.055-4.416"/><g fill="#fff"><path d="m49.646 39.566v-.001z"/><path d="m41.755 39.56h-.002l.002-.001z"/></g><path fill="#1799f8" d="m41.753 41.45h-.002.002"/><path fill="#00a3d6" d="m39.22 27.459c.824-.412 1.684-.223 2.01.536.246.981-.313 1.751-1.049 2.466l.09.123c.4-.502.926-.882 1.785-.904-.111.268-.447 1.506-.547 1.74.145 0 .289.012.436.012.121.056.199.156.244.313-.4.056-.803.021-1.205-.101-.602-.279-1.148-.368-1.494.156-.246-.38-.313-.747-.189-1.116.178-.457.355-.914.547-1.383.378-1.195-.001-1.74-.626-1.842m-.033 3.537c-.068.446.049.882.094 1.328-.469-.101-1.021-.101-1.367.066-.021-.401.168-.591.381-.758-.814-.168-1.439.055-1.697.947.102-.502.189-1.015.156-1.517.681-.535 1.505-.501 2.433-.066"/><g fill="#9ec1ff"><path d="m35.437 28.786c.145.313.4.636.893.948.234.223.479.313.713.268.727-.245 1.105-.613 1.463-.981.223-.278.379-.558.523-.825.012-.067.178-.067.078.1-.211.213-.287.492-.375.827-.135.335-.205.624-.004.937.045-.234.26-.379.461-.468.234-.156.369-.425.447-.714.021-.391.018-.705.273-.827-.111-.356-.346-.547-.703-.569-.289-.367-.691-.49-1.16-.435-.502 0-.971.278-1.494.067.066.367.436.78 1.607.881-.426.391-.916.77-1.82 1.07-.434.044-.692-.089-.902-.279"/><path d="m39.19 31.07c.111 1.038 1.809 1.704 2.701.924-1.473.134-1.361-.245-2.131-.413.189-.189.502-.257 1.238.101.346.089.703.122 1.049.122l.137-.102c-.012-.156-.109-.172-.188-.262l.352-.049c.324.535.648 1.06.971 1.584-.635.814-1.281 1.35-1.918 1.451-.012-.514.178-.882.436-1.205-1.842.703-3.049-.923-2.647-2.151"/><path d="m36.905 31.98c.078.48.512.837 1.148.814-.324.848-1.539.491-1.439-.189.057-.245.145-.457.291-.625"/></g><g fill="#00a3d6"><path d="m50.565 28.14c.252-1.046 1.109-1.141 1.967-.858.326-.146.629-.303 1.215-.156.418.136.826.125 1.246.031-.314.544-.838.837-1.686.764.564.534 1.172.922 1.895.89.115.346-.094.639-.449.89-.607 0-1.174-.335-1.686-.952.094.356.104.712.031 1.067-.324-.271-.67-.533-.848-.806-.209-.23-.221-.618-.178-.963-.073-.922-1.255-.598-1.507.093"/><path d="m46.767 30.02c.43-.272.744-.565.943-.869l.021.011.094.021.156.042.115.031c.199.063.408.157.598.251.104.221.219.43.459.618.283.366.586.722 1.371.597-.197.073-.377.156-.523.282l-.209-.063.115.188-.01.094c.795.324 1.58.597 2.26.146.053.723-.178 1.184-.732 1.351-1.119.22-2.072-.523-2.533-1.518.096.513.012 1.036-.188 1.56-.408-.367-.701-.9-.66-1.863-.115.502-.313.9-.512 1.287-.355-.785-.377-1.507-.063-2.146-.23.105-.46.074-.702-.02"/></g><path fill="#9ec1ff" d="m49.01 29.816c.346.209.723-.01 1.172.126-.25-.188-.355-.377-.355-.555.377-.136.764 0 1.172.313-.355-.544-.555-1.067-.43-1.549.314-.513.713-.816 1.258-.565-.221.304-.23.774-.096 1.225.105.639.439 1.162.617 1.832.389-.23.797-.408 1.215-.523.252-.063.502.021.754.178.314.419.439.849.178 1.298-.24-.492-.68-.544-1.215-.397.273.167.408.408.262.774-.408-.199-.785-.209-1.141-.094 0 0-.402-.823-.973-.879-.283.021-.576.198-.859.324-.293.063-.523.031-.689-.084.072-.293.408-.377.639-.502-.798.063-1.331-.252-1.509-.922m5.705-1.757c.25.178.459.387.533.68.072.346-.074.649-.451.911.262-.042.523-.21.785-.544.168-.199.336-.388.492-.587-.072-.702-.941-.859-1.359-.46"/><g fill="#d8a322"><path d="m41.07 38.37l-.031-.055.031.055"/><path d="m41.04 38.32l.031.055-.031-.055"/><path d="m57.771 34.475l.004.007-.004-.007"/><path d="m50.42 38.35l.033-.055-.033.055"/><path d="m50.46 38.3l-.033.055.033-.055"/><path d="m57.776 34.487l.037.079-.037-.079"/><path d="m45.14 26.949c0-.541.049-.979.109-.979-.863-.815-1.768 0-1.768 0l.365 2.088c0 0-.75-1.282-.365-2.088 0 0-2.068-.548-2.521.997-.143.485.863 1.812.863 1.812 1.596-.919 3.426-.85 3.426-.85v-.001c-.061 0-.109-.439-.109-.979"/><path d="m49.542 26.967c-.453-1.545-2.521-.997-2.521-.997.383.806-.365 2.088-.365 2.088l.365-2.088c0 0-.904-.815-1.768 0 .061 0 .109.438.109.979 0 .54-.049.979-.109.979v.001c0 0 1.83-.069 3.424.85 0-.001 1.01-1.327.865-1.812"/></g><path fill="#fff" d="m45.708 49.957c.998.014 1.979-.229 2.869-.67.447-.221.865-.483 1.266-.778.109-.079.441-.435.559-.438.139-.005.484.286.645.339.656.219 1.531.128 1.709-.668.074-.34-.137-.746-.041-1.08.035-.123.15-.18.193-.284.07-.175.105-.073.004-.273l-.137-.173c-.41-.416-1.049-.404-1.561-.213-.094.035-.26.169-.355.173-.146.005-.375-.198-.537-.259-.326-.122-.639-.188-.984-.127-.646.113-1.027.596-1.529.953-.373.265-1.061.457-.68 1.055.287.45 1.078-.01 1.52-.102-1.814 1.297-4.066 1.199-5.891 0 .195.04.387.078.578.127.182.045.449.256.619.213.553-.139.521-.819.08-1.039-.502-.252-.848-.68-1.328-.963-.73-.433-1.24-.209-1.955.061-.219.082-.174.086-.377-.016-.146-.074-.305-.121-.465-.157-.279-.062-.557-.071-.832.021-.213.071-.518.252-.598.477-.086.239.049.197.152.396.074.144.063.244.061.405-.014.749-.055 1.476.893 1.582.381.043.85-.07 1.17-.284.287-.19.295-.122.553.081.207.162.42.316.637.463 1.116.742 2.41 1.199 3.762 1.178"/><path fill="#007dd4" d="m40.739 34.675l9.941-.019v5.868c-.033 4.076-1.496 5.483-5.02 6.44-3.592-.998-4.893-2.449-4.918-6.457v-5.832"/><path fill="#1799f8" d="m41 34.948l9.455-.017v5.58c-.031 3.877-1.422 5.215-4.777 6.125-3.416-.949-4.652-2.33-4.678-6.141v-5.547"/><g fill="#fff"><path d="m50.44 40.536c-.031 3.877-1.422 5.216-4.777 6.125-3.416-.948-4.652-2.329-4.678-6.141l9.455.016"/><path d="m47.5 40.529l-1.804-3.449-1.892 3.436z"/></g><path fill="#1799f8" d="m43.804 40.516l1.892 3.455 1.804-3.442"/><g fill="#fff"><path d="m49.29 38.621c-.096-.133-.49-.516-.957-.549 0 0 .009-.07-.229-.137-.399-.113-.218-.434-.124-.645.099-.223.063-.545-.396-.813s-.869-.197-1.334-.576c-.073.32.667.586.607.666-.134.178.63.932.036.65-.111-.053-.465-.145-.75-.021.533.119.814.918 1.702 1.057.017.131.1.252.212.262 0 0 .415.107.606.588.1-.299-.226-.617-.272-.684 0 0 .418-.078.51.164.23.611.889 1.248 1.242 1.318-.396-.28-.61-.944-.853-1.28"/><path d="m42.11 38.615c.096-.133.49-.516.957-.549 0 0-.01-.07.229-.137.398-.113.217-.434.123-.645-.098-.223-.063-.545.396-.813.461-.268.869-.197 1.334-.576.073.32-.667.586-.607.666.135.178-.629.932-.035.65.11-.053.465-.145.75-.021-.533.119-.814.918-1.703 1.057-.017.131-.1.252-.211.262 0 0-.416.107-.607.588-.1-.299.227-.617.272-.684 0 0-.417-.078-.509.164-.231.611-.89 1.248-1.242 1.318.396-.28.609-.944.853-1.28"/></g><g fill="#1799f8"><path d="m42.11 42.57c.096.133.49.516.957.549 0 0-.01.07.229.137.398.113.217.434.123.645-.098.223-.063.545.396.813.461.268.869.197 1.334.576.073-.32-.667-.586-.607-.666.135-.178-.629-.932-.035-.65.11.053.465.145.75.021-.533-.119-.814-.918-1.703-1.057-.017-.131-.1-.252-.211-.262 0 0-.416-.107-.607-.588-.1.299.227.617.272.684 0 0-.417.078-.509-.164-.231-.611-.89-1.248-1.242-1.318.396.28.609.944.853 1.28"/><path d="m49.29 42.576c-.096.133-.49.516-.957.549 0 0 .009.07-.229.137-.399.113-.218.434-.124.645.099.223.063.545-.396.813s-.869.197-1.334.576c-.073-.32.667-.586.607-.666-.134-.178.63-.932.036-.65-.111.053-.465.145-.75.021.533-.119.814-.918 1.702-1.057.017-.131.1-.252.212-.262 0 0 .415-.107.606-.588.1.299-.226.617-.272.684 0 0 .418.078.51-.164.23-.611.889-1.248 1.242-1.318-.396.28-.61.944-.853 1.28"/></g><g fill="#d8a322"><path d="m50.45 39.51c-.367-.405.797-2.211.969-1.954.307.343.667.973.947 1.34.396.519-1.01-.983-1.309-.491-.073.119-1.416 2.875.074 3.553-.736-1.946.18-3.898 1.488-1.943.408.611-.276.176-.508.01-1.049-.75-1.023 1.813-.107 2.681-.765-3.01.392-2.148 1.477-1.14.553.515-1.28 2.657-1.33 2.57-.152-.345-.643-.986-.98-.951-.459.046-.988 1.084-.826 1.672.32.735 1.516.738 2.085.551 4.319-1.43 4.79-7.923 3.614-10.09-.151-.281.869-1.105 1.082-.844 2.346 2.87.139 9.258-.154 9.68 3.215-4.64 2.644-10.861-.996-10.634-.729.044-2.056.426-2.987 2.345 0 0 .1-1.534-.886-1.291-.768.189-2.207.879-1.809 1.635.059-.17 1.404-1.085 1.785-1.154.316.004.332 1.663.146 1.205-.121-.296-.475-.788-.816-.545-.314.248-1.941 1.369-1.086 2.24-.076-.812.877-1.605 1.164-1.777.252-.15 1.057 1.538 1.012 1.838-.146.047-1.01-1.313-1.358-1.128-.241.124-1.319 1.932-.691 2.624"/><path d="m40.97 39.51c.368-.404-.796-2.211-.968-1.953-.307.342-.667.973-.948 1.34-.396.518 1.01-.984 1.311-.492.072.119 1.414 2.875-.076 3.553.737-1.945-.18-3.898-1.487-1.943-.409.611.276.176.508.01 1.049-.75 1.023 1.813.108 2.682.764-3.01-.393-2.148-1.477-1.141-.553.516 1.279 2.658 1.33 2.57.152-.344.642-.986.98-.951.458.047.988 1.084.824 1.672-.32.736-1.516.738-2.084.551-4.32-1.43-4.789-7.922-3.615-10.09.152-.281-.869-1.105-1.082-.844-2.346 2.871-.138 9.258.156 9.68-3.216-4.639-2.645-10.861.995-10.633.729.043 2.056.426 2.987 2.344 0 0-.1-1.533.887-1.291.766.189 2.206.879 1.807 1.635-.059-.17-1.402-1.084-1.785-1.154-.316.004-.331 1.664-.145 1.205.12-.295.474-.787.815-.545.314.248 1.94 1.369 1.087 2.24.074-.811-.877-1.605-1.165-1.777-.253-.15-1.057 1.539-1.013 1.838.147.047 1.01-1.313 1.359-1.127.242.123 1.32 1.931.691 2.623"/></g><path fill="#8ca8c2" d="m47.817 33.633c.244.271.324.637.191.994h-.363c.152-.457.059-.894-.59-.951-.969-.085-2.096 1.791-3.789 2.02-.496-.59-.469-1.715.158-2.248-.324-.938-1.01-1.967-1.484-2.413-.313-.051-.672-.076-.902-.063.246-.533.953-1.095 1.523-1.323.092-.135.191-.266.285-.381.057-.733 3.543-.391 4.285.066.001.818.325 3.556.686 4.299"/><path fill="#d8a322" d="m42.479 29.738c1.781-.775 3.889-.775 5.67 0 .143-.24.285-.479.43-.719-2.051-.892-4.479-.892-6.529 0 .142.24.285.479.429.719"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h21v21h-21z"/><path fill="#fff" d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#2a5f9e"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5" fill="#fff"/><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m48.3 24l-3.7 1.2.1-3.8.8-1.3 2.8 3.9m-6.8.5l2.9-2.9v3.6l-2.9-.7" fill="#bfe5e8"/><path d="m42.6 25.2c0 .6.2.7.2.7h5.4c0 0 .2-.5.2-.7-1.5.4-3.7.7-5.8 0" fill="#c7e8eb"/><path d="m49 26.2c0-.2.1-.3.1-.5.1-.3-.1-.4-.1-.7 0-.2 0-.3 0-.5-.2-.1-.4-.1-.6-.1-.2 0-.4-.1-.5.2.3 0 .6 0 .9 0-.6.5-1.7.5-2.4.6-.6 0-1.3.1-1.9 0-.3 0-.8-.1-1.1-.2-.2 0-.5-.1-.7-.2 0-.3 0-.3-.3-.3 0 .3-.2 1.5.4 1.3-.1-.2-.1-.6-.1-.8 1.2.4 3.4.8 6.1 0 0 .3-.1.6-.2.8 0 .1.2.2.4.4" fill="#00a3d6"/><path d="m44.6 20.9c0 0 0-.1 0 0-.2-.1-.2 0-.2 0l-.1 4.4h.2l.1-4.4" fill="#bc7e22"/><path d="m39.2 27.5c.8-.4 1.7-.2 2 .5.2 1-.3 1.8-1 2.5l.1.1c.4-.5.9-.9 1.8-.9-.1.3-.4 1.5-.5 1.7.1 0 .3 0 .4 0 .1.1.2.2.2.3-.4.1-.8 0-1.2-.1-.6-.3-1.1-.4-1.5.2-.2-.4-.3-.7-.2-1.1.2-.5.4-.9.5-1.4.4-1.2 0-1.7-.6-1.8m0 3.5c-.1.4 0 .9.1 1.3-.5-.1-1-.1-1.4.1 0-.4.2-.6.4-.8-.8-.2-1.4.1-1.7.9.1-.5.2-1 .2-1.5.6-.5 1.5-.4 2.4 0" fill="#00a3d6"/><g fill="#9ec1ff"><path d="m35.4 28.8c.1.3.4.6.9.9.3.3.5.3.7.3.7-.2 1.1-.6 1.5-1 .2-.3.4-.6.5-.8 0-.1.2-.1.1.1-.2.2-.3.5-.4.8-.1.3-.2.6 0 .9 0-.2.3-.4.5-.5.2-.2.4-.4.4-.7 0-.4 0-.7.3-.8-.1-.4-.3-.5-.7-.6-.3-.3-.7-.4-1.2-.4-.5 0-1 .3-1.5.1.1.4.4.8 1.6.9-.4.4-.9.8-1.8 1.1-.4 0-.7-.1-.9-.3"/><path d="m39.2 31.1c.1 1 1.8 1.7 2.7.9-1.5.1-1.4-.2-2.1-.4.2-.2.5-.3 1.2.1.3.1.7.1 1 .1l.1-.1c0-.2-.1-.2-.2-.3h.4c.3.5.6 1.1 1 1.6-.6.8-1.3 1.3-1.9 1.5 0-.5.2-.9.4-1.2-1.8.6-3-1-2.6-2.2"/><path d="m36.9 32c.1.5.5.8 1.1.8-.3.8-1.5.5-1.4-.2.1-.2.2-.5.3-.6"/></g><g fill="#00a3d6"><path d="m50.6 28.1c.3-1 1.1-1.1 2-.9.3-.1.6-.3 1.2-.2.4.1.8.1 1.2 0-.3.5-.8.8-1.7.8.6.5 1.2.9 1.9.9.1.3-.1.6-.4.9-.6 0-1.2-.3-1.7-1 .1.4.1.7 0 1.1-.3-.3-.7-.5-.8-.8-.2-.2-.2-.6-.2-1-.1-.8-1.3-.4-1.5.2"/><path d="m46.8 30c.4-.3.7-.6.9-.9h.1.2.1c.2.1.4.2.6.3.1.2.2.4.5.6.3.4.6.7 1.4.6-.2.1-.4.2-.5.3l-.2-.1.1.2v.1c.8.3 1.6.6 2.3.1.1.7-.2 1.2-.7 1.4-1.1.2-2.1-.5-2.5-1.5.1.5 0 1-.2 1.6-.4-.4-.7-.9-.7-1.9-.1.5-.3.9-.5 1.3-.4-.8-.4-1.5-.1-2.1-.4.1-.6.1-.8 0"/></g><path d="m49 29.8c.3.2.7 0 1.2.1-.2-.2-.4-.4-.4-.6.4-.1.8 0 1.2.3-.4-.5-.6-1.1-.4-1.5.3-.5.7-.8 1.3-.6-.2.3-.2.8-.1 1.2.1.6.4 1.2.6 1.8.4-.2.8-.4 1.2-.5.3-.1.5 0 .8.2.3.4.4.8.2 1.3-.2-.5-.7-.5-1.2-.4.3.2.4.4.3.8-.4-.2-.8-.2-1.1-.1 0 0-.4-.8-1-.9-.3 0-.6.2-.9.3-.3.1-.5 0-.7-.1.1-.3.4-.4.6-.5-.9.2-1.4-.1-1.6-.8m5.7-1.7c.2.2.5.4.5.7.1.3-.1.6-.5.9.3 0 .5-.2.8-.5.2-.2.3-.4.5-.6 0-.8-.9-.9-1.3-.5" fill="#9ec1ff"/><g fill="#d8a322"><path d="m45.1 26.9c0-.5 0-1 .1-1-.9-.8-1.8 0-1.8 0l.4 2.1c0 0-.8-1.3-.4-2.1 0 0-2.1-.5-2.5 1-.1.5.9 1.8.9 1.8 1.6-.9 3.4-.9 3.4-.9 0 .1-.1-.3-.1-.9"/><path d="m49.5 27c-.5-1.5-2.5-1-2.5-1 .4.8-.4 2.1-.4 2.1l.4-2.1c0 0-.9-.8-1.8 0 .1 0 .1.4.1 1 0 .5 0 1-.1 1 0 0 1.8-.1 3.4.9.1-.1 1.1-1.4.9-1.9"/></g><path d="m45.7 50c1 0 2-.2 2.9-.7.4-.2.9-.5 1.3-.8.1-.1.4-.4.6-.4.1 0 .5.3.6.3.7.2 1.5.1 1.7-.7.1-.3-.1-.7 0-1.1 0-.1.2-.2.2-.3.1-.2.1-.1 0-.3l-.1-.2c-.4-.4-1-.4-1.6-.2-.1 0-.3.2-.4.2-.1 0-.4-.2-.5-.3-.3-.1-.6-.2-1-.1-.6.1-1 .6-1.5 1-.4.3-1.1.5-.7 1.1.3.5 1.1 0 1.5-.1-1.8 1.3-4.1 1.2-5.9 0 .2 0 .4.1.6.1.2 0 .4.3.6.2.6-.1.5-.8.1-1-.5-.3-.8-.7-1.3-1-.7-.4-1.2-.2-2 .1-.2.1-.2.1-.4 0-.1-.1-.3-.1-.5-.2-.3-.1-.6-.1-.8 0-.2.1-.5.3-.6.5-.1.2 0 .2.2.4.1.1.1.2.1.4 0 .7-.1 1.5.9 1.6.4 0 .8-.1 1.2-.3.3-.2.3-.1.6.1.2.2.4.3.6.5 1 .7 2.3 1.2 3.6 1.2" fill="#fff"/><path d="m40.7 34.7h9.9v5.9c0 4.1-1.5 5.5-5 6.4-3.6-1-4.9-2.4-4.9-6.5 0 0 0-5.8 0-5.8" fill="#007dd4"/><path d="m41 34.9h9.5v5.6c0 3.9-1.4 5.2-4.8 6.1-3.4-.9-4.7-2.3-4.7-6.1v-5.6" fill="#1799f8"/><g fill="#fff"><path d="m50.4 40.5c0 3.9-1.4 5.2-4.8 6.1-3.4-.9-4.7-2.3-4.7-6.1h9.5"/><path d="m47.5 40.5l-1.8-3.4-1.9 3.4z"/></g><path fill="#1799f8" d="m43.8 40.5l1.9 3.5 1.8-3.5"/><g fill="#fff"><path d="m49.3 38.6c-.1-.1-.5-.5-1-.5 0 0 0-.1-.2-.1-.4-.1-.2-.4-.1-.6.1-.2.1-.5-.4-.8s-.9-.2-1.3-.6c-.1.3.7.6.6.7-.1.2.6.9 0 .7-.1-.1-.5-.1-.8 0 .5.1.8.9 1.7 1.1 0 .1.1.3.2.3 0 0 .4.1.6.6.1-.3-.2-.6-.3-.7 0 0 .4-.1.5.2.2.6.9 1.2 1.2 1.3-.3-.6-.5-1.2-.7-1.6"/><path d="m42.1 38.6c.1-.1.5-.5 1-.5 0 0 0-.1.2-.1.4-.1.2-.4.1-.6-.1-.2-.1-.5.4-.8.5-.3.9-.2 1.3-.6.1.3-.7.6-.6.7.1.2-.6.9 0 .7.1-.1.5-.1.8 0-.5.1-.8.9-1.7 1.1 0 .1-.1.3-.2.3 0 0-.4.1-.6.6-.1-.3.2-.6.3-.7 0 0-.4-.1-.5.2-.2.6-.9 1.2-1.2 1.3.3-.6.5-1.2.7-1.6"/></g><g fill="#1799f8"><path d="m42.1 42.6c.1.1.5.5 1 .5 0 0 0 .1.2.1.4.1.2.4.1.6-.1.2-.1.5.4.8.5.3.9.2 1.3.6.1-.3-.7-.6-.6-.7.1-.2-.6-.9 0-.7.1.1.5.1.8 0-.5-.1-.8-.9-1.7-1.1 0-.1-.1-.3-.2-.3 0 0-.4-.1-.6-.6-.1.3.2.6.3.7 0 0-.4.1-.5-.2-.2-.6-.9-1.2-1.2-1.3.3.6.5 1.2.7 1.6"/><path d="m49.3 42.6c-.1.1-.5.5-1 .5 0 0 0 .1-.2.1-.4.1-.2.4-.1.6.1.2.1.5-.4.8s-.9.2-1.3.6c-.1-.3.7-.6.6-.7-.1-.2.6-.9 0-.7-.1.1-.5.1-.8 0 .5-.1.8-.9 1.7-1.1 0-.1.1-.3.2-.3 0 0 .4-.1.6-.6.1.3-.2.6-.3.7 0 0 .4.1.5-.2.2-.6.9-1.2 1.2-1.3-.3.6-.5 1.2-.7 1.6"/></g><g fill="#d8a322"><path d="m50.4 39.5c-.4-.4.8-2.2 1-2 .3.3.7 1 .9 1.3.4.5-1-1-1.3-.5-.1.1-1.4 2.9.1 3.6-.7-1.9.2-3.9 1.5-1.9.4.6-.3.2-.5 0-1-.8-1 1.8-.1 2.7-.8-3 .4-2.1 1.5-1.1.6.5-1.3 2.7-1.3 2.6-.2-.3-.6-1-1-1-.5 0-1 1.1-.8 1.7.3.7 1.5.7 2.1.6 4.3-1.4 4.8-7.9 3.6-10.1-.2-.3.9-1.1 1.1-.8 2.3 2.9.1 9.3-.2 9.7 3.2-4.6 2.6-10.9-1-10.6-.7 0-2.1.4-3 2.3 0 0 .1-1.5-.9-1.3-.8.2-2.2.9-1.8 1.6.1-.2 1.4-1.1 1.8-1.2.3 0 .3 1.7.1 1.2-.1-.3-.5-.8-.8-.5-.3.2-1.9 1.4-1.1 2.2-.1-.8.9-1.6 1.2-1.8.3-.2 1.1 1.5 1 1.8-.1 0-1-1.3-1.4-1.1-.2.1-1.3 1.9-.7 2.6"/><path d="m41 39.5c.4-.4-.8-2.2-1-2-.3.3-.7 1-.9 1.3-.4.5 1-1 1.3-.5.1.1 1.4 2.9-.1 3.6.7-1.9-.2-3.9-1.5-1.9-.4.6.3.2.5 0 1-.8 1 1.8.1 2.7.8-3-.4-2.1-1.5-1.1-.6.5 1.3 2.7 1.3 2.6.2-.3.6-1 1-1 .5 0 1 1.1.8 1.7-.3.7-1.5.7-2.1.6-4.3-1.4-4.8-7.9-3.6-10.1.2-.3-.9-1.1-1.1-.8-2.3 2.9-.1 9.3.2 9.7-3.2-4.6-2.6-10.9 1-10.6.7 0 2.1.4 3 2.3 0 0-.1-1.5.9-1.3.8.2 2.2.9 1.8 1.6-.1-.2-1.4-1.1-1.8-1.2-.3 0-.3 1.7-.1 1.2.1-.3.5-.8.8-.5.3.2 1.9 1.4 1.1 2.2.1-.8-.9-1.6-1.2-1.8-.3-.2-1.1 1.5-1 1.8.1 0 1-1.3 1.4-1.1.2.1 1.3 1.9.7 2.6"/></g><path d="m47.8 33.6c.2.3.3.6.2 1h-.4c.2-.5.1-.9-.6-1-1-.1-2.1 1.8-3.8 2-.5-.6-.5-1.7.2-2.2-.3-.9-1-2-1.5-2.4-.3 0-.6 0-.9 0 .2-.5 1-1.1 1.5-1.3.1-.1.2-.3.3-.4.1-.7 3.5-.4 4.3.1 0 .8.4 3.5.7 4.2" fill="#8ca8c2"/><path d="m42.5 29.7c1.8-.8 3.9-.8 5.7 0 .1-.2.3-.5.4-.7-2.1-.9-4.5-.9-6.5 0 .1.3.2.5.4.7" fill="#d8a322"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e8.svg
index e72d68f..ba12e33 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.568,13.432,30,30,30c16.569,0,30-13.432,30-30S48.568,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.912 8.139v5.861h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.012C3.088,22.869,2,27.305,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.869,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.939,7.941,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m34.541 33.848l-.002.007.002-.007"/><path d="m34.537 33.86l-.037.079.037-.079"/><path d="m34.539 33.854l-.002.006.002-.006"/></g><path fill="#fff" d="m57.979 26.492v9.268c0 7.61-2.99 14.576-11.855 18.811-8.867-4.234-11.857-11.2-11.857-18.811v-9.268h23.712"/><path fill="#ffce31" d="m57.18 27.437v8.645c0 7.099-2.789 13.596-11.06 17.544-8.271-3.948-11.06-10.445-11.06-17.544v-8.645h22.12"/><path fill="#ff9e3d" d="m40.973 31.23c-.479-.359-.406.021-.615-.58-.152-.444-.551-.457-.885-.682-.176-.117-1.17-1.549-1.465-1.388-.26.142-.373.97-.441 1.147-.24.637.141.482.244.889-.35 0 .061.414.201.44-.119.116-.107.219.039.308-.598 0-1.098.596-1.48.92.32.038.428-.158.715-.176.283-.018.473.264.779.203-.236.162-.5.414-.533.72-.066.64-.762.632-.961 1.174.371.916 1.344.991 2.055 1.54.564.438 1.021.766 1.395 1.406.41.709 1.295 1.748 1.98.563.424-.732.221-2.168.172-2.962-.066-1.037-.152-2.929-1.2-3.522"/><path fill="#ff927f" d="m41.652 29.09c-.795.854-.691 1.367-.723 2.459-.031 1.101-.883 1.221-1.164 2.128-.318 1.03 1.027 1.577 1.25 2.527.105.45.113.968.393 1.359.238.339 1.068.182 1.365-.024.334-.23.139-.664.277-.98.154-.354.654-.319.883-.625.512-.686.467-1.969.08-2.693-.225-.422.084-.898-.359-1.215-.363-.26-.178-.682-.561-.986-.667-.536-.429-1.556-1.441-1.95"/><path fill="#ff9ee1" d="m41.799 37.803c.895-.227.814-1.695.682-2.309s-.477-1.492-.213-2.188c.373-.987-.455-1.922-.242-2.295.215-.373.188-.574.16-.693-.025-.12-.225-.214-.238.039-.014.254-.08.348-.24.508s-.121.506 0 .895c.119.386.373.973-.027 1.746-.4.774-.234 1.119-.08 1.481.239.561.813 2.509.198 2.816"/><g fill="#ff9e3d"><path d="m37.797 29.438c.102 0 .295-.04.295.094"/><path d="m37.598 30.08c.121-.087.334.014.547-.113"/><path d="m37.811 30.611c.16 0 .373-.007.574-.166"/><path d="m38.01 31.05c.146 0 .42-.093.486-.286"/><path d="m38.05 31.359c.287-.014.668.093.721-.008"/><path d="m38.06 32.31c.199-.188.674-.314.781-.508"/><path d="m38.57 29.331c.334.106.197.313.361.44.293.227.025.48.268.547.24.066.236.107.172.373-.074.313.227.327.121.533"/><path d="m40.4 31.02c-.133 0-.525.014-.693.366"/><path d="m37.551 34.874c.154.026.23-.061.273-.147.047-.092.066-.16.207-.166.139-.007.354-.047.4-.153s.213-.007.354-.287c.139-.28.232-.614.605-.733"/></g><path fill="#699635" d="m48.13 40.703c.15.22-.006.457.25.551.301.111.039.507.393.646.313.123.002.5.342.67.303.151-.051.506.354.708s-.076.658.227.835-.1.632.254.811c.354.176-.152.53.178.782.326.254-.076.634.252.861s-.201.53.127.859c.252.253-.092.501.1.886.129.252-.125 1.264-.834 1.162-.252.432-1.238.811-1.594.685-.354.253-1.492.606-2.074.051-.58.556-1.719.202-2.072-.051-.354.126-1.342-.253-1.594-.685-.709.102-.961-.91-.834-1.162.191-.385-.152-.633.1-.886.328-.329-.201-.632.127-.859s-.076-.607.252-.861c.33-.252-.176-.606.178-.782.355-.179-.051-.634.254-.811.303-.177-.178-.633.227-.835s.051-.557.354-.708c.34-.17.027-.547.342-.67.355-.14.092-.535.393-.646.26-.096.094-.338.258-.561.749.296 3.081.508 4.04.01"/><path fill="#ed4c5c" d="m48.16 40.539c-.039-.05-.098-.068-.162-.075-.055-2.429-.496-3.307-1.887-3.307s-1.83.878-1.885 3.307c-.064.007-.123.025-.164.075-.18.227-.15.402.367.604.438.17 1.088.275 1.684.275.594 0 1.244-.105 1.68-.275.52-.202.547-.377.367-.604"/><path fill="#b95a1e" d="m54.643 33.377l.027-.707 2.24-.227-2.229-.152.004-.252-.066-.647 2.186-.414-2.264.085-.305-.574 1.617-1.262-1.877.967-.836-.416-.762-1.221.135-.424-.766 1.752.023.563-.164.578-.141-.58.023-.561-.768-1.752.137.424-.76 1.221-.838.416-1.877-.967 1.617 1.261-.303.575-2.268-.085 2.188.414-.066.647.006.252-2.232.152 2.242.227.027.707-2.01.818 2.027-.492.197 4.263-.512 2.828.766-2.56-.121-4.528h.02l1.1.282.152.476.098.604.158.531.025.063-.025.014.107.63.146.583.006.008.096.53.197.164-.924.929-.133.734.559-.217.127.668.336-.146.242.303.391-.787.391.787.24-.303.338.146.127-.666.559.215-.135-.734-.922-.928.195-.165.098-.532.004-.006.146-.582.109-.631-.027-.014.031-.062.156-.53.098-.605.154-.476 1.098-.282h.021l-.123 4.528.768 2.56-.512-2.828.197-4.263 2.025.492-2.01-.819m-3.516-2.453l-.697-.752.73.539-.033.213m-.225.299l-.105.064-1.197-.884.553-.229.749 1.049m-.021-2.618l.354 1.279-.006.209-.863-.34.515-1.148m-1.563 2.102l1.156.886-.123.172-1.066-.518-.201-.068.234-.472m-.382 1.332l.061-.511 1.236.609-.02.306-.094.283-.84-.283-.352-.086.009-.318m0 1.345l-.008-.64 1.158.356v.017l-.035.467-.994-.197-.121-.003m3.505-2.097l-.105-.064.75-1.049.551.23-1.196.883m-.332-.363l-.033-.213.732-.539-.699.752m.778.841h-.002l-.121-.171 1.156-.885.234.471-.201.067-1.066.518m-.53-3.16l.516 1.148-.863.34-.008-.209.355-1.279m.647 3.533l1.238-.609.061.511.008.318-.352.086-.84.283-.096-.283-.019-.306m1.178 1.249l-.994.197-.035-.467v-.017l1.158-.355-.008.64-.121.002"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.6,13.4,30,30,30c16.6,0,30-13.4,30-30S48.6,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m58 26.5v9.3c0 7.6-3 14.6-11.9 18.8-8.9-4.2-11.9-11.2-11.9-18.8v-9.3h23.8" fill="#fff"/><path d="m57.2 27.4v8.6c0 7.1-2.8 13.6-11.1 17.5-8.3-3.9-11.1-10.4-11.1-17.5v-8.6h22.2" fill="#ffce31"/><path d="m41 31.2c-.5-.4-.4 0-.6-.6-.2-.4-.6-.5-.9-.7-.2-.1-1.2-1.5-1.5-1.4-.3.1-.4 1-.4 1.1-.2.6.1.5.2.9-.3 0 .1.4.2.4-.1.1-.1.2 0 .3-.6 0-1.1.6-1.5.9.3 0 .4-.2.7-.2.3 0 .5.3.8.2-.2.2-.5.4-.5.7-.1.6-.8.6-1 1.2.4.9 1.3 1 2.1 1.5.6.4 1 .8 1.4 1.4.4.7 1.3 1.7 2 .6.4-.7.2-2.2.2-3-.1-.8-.2-2.7-1.2-3.3" fill="#ff9e3d"/><path d="m41.7 29.1c-.8.9-.7 1.4-.7 2.5 0 1.1-.9 1.2-1.2 2.1-.3 1 1 1.6 1.2 2.5.1.5.1 1 .4 1.4.2.3 1.1.2 1.4 0 .3-.2.1-.7.3-1 .2-.4.7-.3.9-.6.5-.7.5-2 .1-2.7-.2-.4.1-.9-.4-1.2-.4-.3-.2-.7-.6-1-.7-.6-.4-1.6-1.4-2" fill="#ff927f"/><path d="m41.8 37.8c.9-.2.8-1.7.7-2.3s-.5-1.5-.2-2.2c.4-1-.5-1.9-.2-2.3.2-.4.2-.6.2-.7 0-.1-.2-.2-.2 0 0 .3-.1.3-.2.5s-.1.5 0 .9c.1.4.4 1 0 1.7-.4.8-.2 1.1-.1 1.5 0 .6.6 2.6 0 2.9" fill="#ff9ee1"/><g fill="#ff9e3d"><path d="m37.8 29.4c.1 0 .3 0 .3.1"/><path d="m37.6 30.1c.1-.1.3 0 .5-.1"/><path d="m37.8 30.6c.2 0 .4 0 .6-.2"/><path d="m38 31.1c.1 0 .4-.1.5-.3"/><path d="m38.1 31.4c.3 0 .7.1.7 0"/><path d="m38.1 32.3c.2-.2.7-.3.8-.5"/><path d="m38.6 29.3c.3.1.2.3.4.4.3.2 0 .5.3.5.2.1.2.1.2.4-.1.3.2.3.1.5"/><path d="m40.4 31c-.1 0-.5 0-.7.4"/><path d="m37.6 34.9c.2 0 .2-.1.3-.1 0-.1.1-.2.2-.2.1 0 .4 0 .4-.2s.2 0 .4-.3c.1-.3.2-.6.6-.7"/></g><path d="m48.1 40.7c.2.2 0 .5.2.6.3.1 0 .5.4.6.3.1 0 .5.3.7.3.2-.1.5.4.7s-.1.7.2.8-.1.6.3.8c.4.2-.2.5.2.8.3.3-.1.6.3.9s-.2.5.1.9c.3.3-.1.5.1.9.1.3-.1 1.3-.8 1.2-.3.4-1.2.8-1.6.7-.4.3-1.5.6-2.1.1-.6.6-1.7.2-2.1-.1-.4.1-1.3-.3-1.6-.7-.7.1-1-.9-.8-1.2.2-.4-.2-.6.1-.9.3-.3-.2-.6.1-.9s-.1-.6.3-.9c.3-.3-.2-.6.2-.8.4-.2-.1-.6.3-.8.3-.2-.2-.6.2-.8s.1-.6.4-.7c.3-.2 0-.5.3-.7.4-.1.1-.5.4-.6.3-.1.1-.3.3-.6.6.3 3 .5 3.9 0" fill="#699635"/><path d="m48.2 40.5c0 0-.1-.1-.2-.1-.1-2.4-.5-3.3-1.9-3.3s-1.8.9-1.9 3.3c-.1 0-.1 0-.2.1-.2.2-.2.4.4.6.4.2 1.1.3 1.7.3.6 0 1.2-.1 1.7-.3.5-.2.5-.3.4-.6" fill="#ed4c5c"/><path d="m54.6 33.4v-.7l2.2-.2-2.2-.2v-.3l-.1-.6 2.2-.4-2.3.1-.3-.6 1.6-1.3-1.9 1-.8-.4-.8-1.2.1-.4-.8 1.8v.6l.1.4-.1-.6v-.6l-.8-1.8.1.4-.8 1.2-.8.4-1.9-1 1.6 1.3-.3.6-2.2.1 2.2.4-.1.6v.3l-2.2.2 2.2.2v.7l-2 .8 2-.5.2 4.3-.5 2.8.8-2.6-.1-4.5 1.1.3.2.5.1.6.2.5v.1l.1.6.1.6.1.5.2.2-.9.9-.1.8.6-.2.1.7.3-.1.2.3.4-.8.4.8.2-.3.3.1.1-.7.6.2-.1-.7-.9-.9.2-.2.1-.5.1-.6.1-.6v-.1l.2-.5.1-.6.2-.5 1.1-.3-.1 4.5.8 2.6-.6-2.9.2-4.3 2 .5-2-.8m-3.5-2.5l-.7-.8.7.5v.3m-.2.3l-.1.1-1.2-.9.6-.2.7 1m0-2.6l.4 1.3v.2l-.9-.3.5-1.2m-1.6 2.1l1.2.9-.1.2-1.1-.5-.2-.1.2-.5m-.4 1.3l.1-.5 1.2.6v.3l-.1.3-.8-.3-.4-.1v-.3m0 1.4v-.6l1.2.4v.5l-1-.2-.2-.1m3.5-2.1l-.1-.1.8-1 .6.2-1.3.9m-.3-.4v-.2l.7-.5-.7.7m.8.9l-.1-.2 1.2-.9.2.5h-.2l-1.1.6m-.5-3.2l.5 1.1-.9.4v-.2l.4-1.3m.6 3.5l1.2-.6.1.5v.3l-.3.1-.8.3-.2-.3v-.3m1.2 1.3l-1 .2v-.5l1.2-.4v.6l-.2.1" fill="#b95a1e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e9.svg
index 0d2818b..3976073 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1e9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M2,32c0,13.06,8.35,24.167,20,28.287V3.714C10.35,7.833,2,18.94,2,32z"/><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.226 20-28.29"/><path fill="#ffce31" d="M22,60.287C25.129,61.393,28.492,62,32,62s6.871-0.607,10-1.713V3.714C38.871,2.608,35.508,2,32,2
- s-6.871,0.607-10,1.714V60.287z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#2a5f9e"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1eb.svg
index 4bddf12..f374f23 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1eb.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="M39.113,2.855V27.6H2.324C2.113,29.037,2,30.505,2,32c0,16.568,13.432,30,30,30c16.569,0,30-13.432,30-30
- C62,17.883,52.246,6.05,39.113,2.855z"/><path fill="#fff" d="m39.11 2.855c-.215-.052-.43-.101-.645-.148v24.25h-12.885v-24.26c-4.833 1.055-9.229 3.271-12.883 6.345v17.917h-10.269c-.037.214-.075.429-.107.644h36.789v-24.745"/><path fill="#2a5f9e" d="M2.431,26.956H12.7V9.039C7.38,13.516,3.642,19.805,2.431,26.956z"/><path fill="#ed4c5c" d="m25.583 2.694v24.26h12.885v-24.25c-2.083-.458-4.245-.707-6.468-.707-2.204 0-4.348.244-6.417.694"/><g fill="#fff"><path d="m42.838 43.751v-4.651h1.943l1.441-2.297h-3.385v-1.472h4.313l1.516-2.415h-14.367l1.518 2.415h4.313v8.42l-3.238-5.064-4.358 6.949h2.12l.428-.767h3.615l2.789 5.01 2.787-5.01h3.613l.428.767h2.121l-4.357-6.949-3.24 5.064m-6.836-.53l.889-1.59.885 1.59h-1.774m9.187 0l.887-1.59.889 1.59h-1.776"/><path d="m42.04 53.23l-.556-1.71-.556 1.71h-1.798l1.456 1.06-.556 1.707 1.454-1.056 1.454 1.056-.558-1.707 1.456-1.06z"/><path d="m36.74 49.23l-.56-1.71-.551 1.71h-1.797l1.448 1.05-.55 1.713 1.45-1.055 1.459 1.055-.559-1.713 1.455-1.05z"/><path d="m47.34 49.23l-.557-1.71-.553 1.71h-1.8l1.455 1.05-.555 1.713 1.453-1.055 1.457 1.055-.558-1.713 1.448-1.05z"/><path d="m31.708 39.04l1.452 1.06-.553-1.71 1.453-1.06h-1.8l-.552-1.705-.558 1.705h-1.793l1.453 1.06-.56 1.71z"/><path d="m52.16 38.39l1.449-1.06h-1.796l-.553-1.705-.557 1.705h-1.797l1.454 1.06-.555 1.71 1.455-1.06 1.451 1.06z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M39.1,2.9v24.7H2.3C2.1,29,2,30.5,2,32c0,16.6,13.4,30,30,30c16.6,0,30-13.4,30-30C62,17.9,52.2,6.1,39.1,2.9z
+ " fill="#2a5f9e"/><path d="m39.1 2.9c-.2-.1-.4-.1-.6-.1v24.2h-12.9v-24.3c-4.8 1-9.2 3.3-12.9 6.3v18h-10.3c0 .2-.1.4-.1.6h36.8c0 0 0-24.7 0-24.7" fill="#fff"/><path d="M2.4,27h10.3V9C7.4,13.5,3.6,19.8,2.4,27z" fill="#2a5f9e"/><path d="m25.6 2.7v24.3h12.9v-24.3c-2.1-.5-4.3-.7-6.5-.7-2.2 0-4.3.2-6.4.7" fill="#ed4c5c"/><g fill="#fff"><path d="m42.8 43.8v-4.7h1.9l1.4-2.3h-3.4v-1.5h4.3l1.5-2.4h-14.2l1.5 2.4h4.3v8.4l-3.2-5.1-4.4 6.9h2.1l.4-.8h3.6l2.8 5 2.8-5h3.6l.4.8h2.1l-4.4-6.9-3.1 5.2m-6.8-.6l.9-1.6.9 1.6h-1.8m9.2 0l.9-1.6.9 1.6h-1.8"/><path d="m42 53.2l-.5-1.7-.6 1.7h-1.8l1.5 1.1-.6 1.7 1.5-1.1 1.4 1.1-.5-1.7 1.4-1.1z"/><path d="m36.7 49.2l-.5-1.7-.6 1.7h-1.8l1.5 1.1-.6 1.7 1.5-1.1 1.4 1.1-.5-1.7 1.4-1.1z"/><path d="m47.3 49.2l-.5-1.7-.6 1.7h-1.8l1.5 1.1-.6 1.7 1.5-1.1 1.4 1.1-.5-1.7 1.4-1.1z"/><path d="m31.7 39l1.5 1.1-.6-1.7 1.5-1.1h-1.8l-.6-1.7-.5 1.7h-1.8l1.4 1.1-.5 1.7z"/><path d="m52.2 38.4l1.4-1.1h-1.8l-.5-1.7-.6 1.7h-1.8l1.5 1.1-.6 1.7 1.5-1.1 1.4 1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ec.svg
index 8dd2384..1c9e70f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m8 50h48c2.621-3.488 4.498-7.566 5.398-12h-58.796c.9 4.434 2.777 8.512 5.398 12"/><path fill="#83bf4f" d="m56 50h-48c5.473 7.286 14.186 12 24 12s18.527-4.714 24-12"/><path fill="#ed4c5c" d="M2,32c0,2.055,0.207,4.061,0.602,6H32V2C15.432,2,2,15.432,2,32z"/><path fill="#83bf4f" d="M32,2v12h24C50.527,6.714,41.814,2,32,2z"/><path fill="#ffce31" d="m56 14h-24v12h29.398c-.9-4.434-2.777-8.512-5.398-12"/><path fill="#83bf4f" d="m61.4 26h-29.398v12h29.398c.395-1.939.602-3.945.602-6s-.207-4.061-.602-6"/><path fill="#fff" d="M18 27.306 24.799 32 22.23 24.367 29 19.638 20.615 19.615 18 12 15.383 19.615 7 19.638 13.768 24.367 11.201 32z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8 50h48c2.6-3.5 4.5-7.6 5.4-12h-58.8c.9 4.4 2.8 8.5 5.4 12" fill="#ffce31"/><path d="m56 50h-48c5.5 7.3 14.2 12 24 12s18.5-4.7 24-12" fill="#83bf4f"/><path d="M2,32c0,2.1,0.2,4.1,0.6,6H32V2C15.4,2,2,15.4,2,32z" fill="#ed4c5c"/><path d="M32,2v12h24C50.5,6.7,41.8,2,32,2z" fill="#83bf4f"/><path d="m56 14h-24v12h29.4c-.9-4.4-2.8-8.5-5.4-12" fill="#ffce31"/><path d="m61.4 26h-29.4v12h29.4c.4-1.9.6-3.9.6-6s-.2-4.1-.6-6" fill="#83bf4f"/><path fill="#fff" d="m18 27.3l6.8 4.7-2.6-7.6 6.8-4.8h-8.4l-2.6-7.6-2.6 7.6h-8.4l6.8 4.8-2.6 7.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ed.svg
index 1f83931..d5a54a4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ed.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M52.388,10C47.035,5.037,39.874,2,32,2s-15.035,3.037-20.388,8H52.388z"/><path d="m11.612 54c5.353 4.963 12.514 8 20.388 8s15.03-3.037 20.388-8h-40.776"/></g><path fill="#2a5f9e" d="M2,32c0,4.268,0.896,8.324,2.504,12h54.992C61.104,40.324,62,36.268,62,32s-0.896-8.324-2.504-12H4.504
- C2.896,23.676,2,27.732,2,32z"/><g fill="#f9f9f9"><path d="m11.628 54h40.744c3.01-2.791 5.46-6.184 7.128-10h-55c1.668 3.816 4.115 7.209 7.128 10"/><path d="m52.37 10h-40.744c-3.01 2.791-5.46 6.184-7.128 10h55c-1.668-3.816-4.115-7.209-7.128-10"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M52.4,10C47,5,39.9,2,32,2s-15,3-20.4,8H52.4z"/><path d="m11.6 54c5.4 5 12.5 8 20.4 8s15-3 20.4-8h-40.8"/></g><path d="m2 32c0 4.3.9 8.3 2.5 12h55c1.6-3.7 2.5-7.7 2.5-12s-.9-8.3-2.5-12h-55c-1.6 3.7-2.5 7.7-2.5 12" fill="#2a5f9e"/><g fill="#f9f9f9"><path d="m11.6 54h40.7c3-2.8 5.5-6.2 7.1-10h-55c1.8 3.8 4.2 7.2 7.2 10"/><path d="m52.4 10h-40.8c-3 2.8-5.5 6.2-7.1 10h55c-1.7-3.8-4.1-7.2-7.1-10"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ef.svg
index 120381d..a7d29de 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ef.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M2,32c0,5.885,1.701,11.368,4.628,16h50.744C60.299,43.368,62,37.885,62,32s-1.701-11.368-4.628-16H6.628
- C3.701,20.632,2,26.115,2,32z"/><path fill="#c94747" d="M57.372,16C52.057,7.59,42.684,2,32,2S11.943,7.59,6.628,16H57.372z"/><path fill="#699635" d="M6.628,48C11.943,56.41,21.316,62,32,62s20.057-5.59,25.372-14H6.628z"/><g fill="#ffce31"><path d="m38.28 36.409c-.567.513-1.296.827-2.07.896-1.914.165-3.605-1.197-3.777-3.041v-2.649c.02-.609.547-1.088 1.179-1.069.396.012.756.218.955.547.47-1.363-.298-2.838-1.714-3.289-1.416-.453-2.945.286-3.415 1.651-.184.532-.184 1.106 0 1.638.318-.524 1.019-.704 1.565-.398.342.192.557.539.568.921v2.649c-.172 1.844-1.863 3.206-3.777 3.041-.774-.068-1.503-.383-2.07-.896-.739 1.789-2.843 2.661-4.699 1.948-.273-.105-.532-.241-.771-.406.335 3.215 5.335 2.558 5.708-.567 1.57 2.657 5.02 1.896 6.04-1.356h.01c1.012 3.253 4.466 4.01 6.04 1.356.373 3.125 5.373 3.782 5.708.567-.239.165-.498.301-.771.406-1.858.712-3.961-.16-4.701-1.949m-8.229-6.469c.12-.842.809-1.505 1.684-1.621 1.077-.142 2.07.584 2.219 1.621-.771-.151-1.557.188-1.951.844-.396-.655-1.181-.995-1.952-.844"/><path d="m28.23 39.972c-.001 0-.354-.204-1.089-.112-.105-.457-.522-.852-.82-1.049-.284.303-.486.861-.388 1.265-.525.093-1.016.426-1.016.426 1.221 1.17 2.615.922 3.313-.53"/><path d="m33.688 39.808c0 0-.313-.258-1.055-.282-.026-.468-.371-.922-.632-1.162-.332.252-.626.772-.597 1.186-.534.009-1.074.261-1.074.261 1.01 1.346 2.425 1.319 3.358-.003"/><path d="m37.682 38.812c-.37.198-.748.665-.789 1.076-.527-.074-1.104.09-1.104.09.765 1.487 2.168 1.683 3.313.523 0 0-.267-.302-.993-.444.053-.465-.211-.967-.427-1.245"/><path d="m22.872 42.42l.487 1.58c5.653-1.621 11.629-1.621 17.281 0l.487-1.58c-5.971-1.712-12.283-1.712-18.255 0"/><path d="m31.17 22.467l-.516 1.523 1.346-.94 1.35.94-.518-1.523 1.348-.944h-1.666l-.514-1.523-.514 1.523h-1.664z"/><path d="m24.757 24.12l-.517 1.526 1.349-.942 1.346.942-.514-1.526 1.346-.94h-1.667l-.511-1.525-.519 1.525h-1.659z"/><path d="m20.06 28.645l-.51 1.525 1.346-.94 1.344.94-.512-1.525 1.342-.944h-1.661l-.513-1.521-.515 1.521h-1.663z"/><path d="m19.18 35.404l1.343.946-.513-1.528 1.345-.942h-1.664l-.511-1.526-.516 1.526h-1.664l1.346.942-.514 1.528z"/><path d="m37.579 24.12l-.519 1.526 1.35-.942 1.347.942-.517-1.526 1.349-.94h-1.663l-.516-1.525-.513 1.525h-1.667z"/><path d="m42.27 28.645l-.511 1.525 1.341-.94 1.35.94-.513-1.525 1.343-.944h-1.662l-.518-1.521-.509 1.521h-1.664z"/><path d="m45.654 34.822l1.346-.942h-1.66l-.518-1.526-.512 1.526h-1.665l1.345.942-.513 1.528 1.345-.946 1.348.946z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,5.9,1.7,11.4,4.6,16h50.7c2.9-4.6,4.6-10.1,4.6-16s-1.7-11.4-4.6-16H6.6C3.7,20.6,2,26.1,2,32z" fill="#f9f9f9"/><path d="M57.4,16C52.1,7.6,42.7,2,32,2S11.9,7.6,6.6,16H57.4z" fill="#c94747"/><path d="M6.6,48c5.3,8.4,14.7,14,25.4,14s20.1-5.6,25.4-14H6.6z" fill="#699635"/><g fill="#ffce31"><path d="m38.3 36.4c-.6.5-1.3.8-2.1.9-1.9.2-3.6-1.2-3.8-3v-2.6c0-.6.5-1.1 1.2-1.1.4 0 .8.2 1 .5.5-1.4-.3-2.8-1.7-3.3-1.4-.5-2.9.3-3.4 1.7-.2.5-.2 1.1 0 1.6.3-.5 1-.7 1.6-.4.3.2.6.5.6.9v2.6c-.2 1.8-1.9 3.2-3.8 3-.8-.1-1.5-.4-2.1-.9-.7 1.8-2.8 2.7-4.7 1.9-.3-.1-.5-.2-.8-.4.3 3.2 5.3 2.6 5.7-.6 1.6 2.7 5 1.9 6-1.4 1 3.3 4.5 4 6 1.4.4 3.1 5.4 3.8 5.7.6-.2.2-.5.3-.8.4-1.8.9-3.9 0-4.6-1.8m-8.3-6.5c.1-.8.8-1.5 1.7-1.6 1.1-.1 2.1.6 2.2 1.6-.8-.2-1.6.2-2 .8-.3-.6-1.1-.9-1.9-.8"/><path d="m28.2 40c0 0-.4-.2-1.1-.1-.1-.5-.5-.9-.8-1-.3.3-.5.9-.4 1.3-.5.1-1 .4-1 .4 1.2 1.1 2.6.8 3.3-.6"/><path d="m33.7 39.8c0 0-.3-.3-1.1-.3 0-.5-.4-.9-.6-1.2-.3.3-.6.8-.6 1.2-.5 0-1.1.3-1.1.3 1 1.4 2.5 1.3 3.4 0"/><path d="m37.7 38.8c-.4.2-.7.7-.8 1.1-.5-.1-1.1.1-1.1.1.8 1.5 2.2 1.7 3.3.5 0 0-.3-.3-1-.4.1-.5-.2-1-.4-1.3"/><path d="m22.9 42.4l.5 1.6c5.7-1.6 11.6-1.6 17.3 0l.5-1.6c-6-1.7-12.4-1.7-18.3 0"/><path d="m31.2 22.5l-.5 1.5 1.3-1 1.3 1-.5-1.5 1.4-1h-1.7l-.5-1.5-.5 1.5h-1.7z"/><path d="m24.8 24.1l-.6 1.5 1.4-.9 1.3.9-.5-1.5 1.4-.9h-1.7l-.5-1.5-.5 1.5h-1.7z"/><path d="m20.1 28.6l-.6 1.6 1.4-1 1.3 1-.5-1.6 1.4-.9h-1.7l-.5-1.5-.5 1.5h-1.7z"/><path d="m19.2 35.4l1.3.9-.5-1.5 1.4-.9h-1.7l-.5-1.5-.5 1.5h-1.7l1.3.9-.5 1.5z"/><path d="m37.6 24.1l-.5 1.5 1.3-.9 1.4.9-.6-1.5 1.4-.9h-1.7l-.5-1.5-.5 1.5h-1.7z"/><path d="m42.3 28.6l-.5 1.6 1.3-1 1.4 1-.6-1.6 1.4-.9h-1.7l-.5-1.5-.5 1.5h-1.7z"/><path d="m45.7 34.8l1.3-.9h-1.7l-.5-1.5-.5 1.5h-1.7l1.4.9-.5 1.5 1.3-.9 1.4.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f0.svg
index ddd6bb5..7c86959 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m53.42 53h-42.04c0 0 25.987-29.384 42.36-38.18 0 0-11.847 21.52 2.969 34.19 3.336-4.835 5.293-10.694 5.293-17.01 0-16.568-13.432-30-30-30s-30 13.432-30 30c0 9.814 4.714 18.526 12 24h36c1.215-.912 2.354-1.918 3.416-3"/><path d="m32 62c4.692 0 9.133-1.079 13.09-3h-26.18c3.955 1.921 8.396 3 13.09 3"/></g><g fill="#ffce31"><path d="m53.738 14.82c-16.371 8.796-42.36 38.18-42.36 38.18h42.04c1.207-1.231 2.309-2.565 3.291-3.988-14.815-12.672-2.969-34.19-2.969-34.19"/><path d="m14 56c1.531 1.149 3.175 2.156 4.913 3h26.18c1.737-.844 3.382-1.851 4.912-3h-36"/></g><g fill="#fff"><path d="m18.495 10.275l.545 1.688h1.777l-1.435 1.047.548 1.685-1.435-1.044-1.435 1.044.547-1.685-1.437-1.047h1.776z"/><path d="m27.14 18.14l.486 1.485h1.564l-1.265.92.483 1.485-1.268-.92-1.263.92.483-1.485-1.27-.92h1.569z"/><path d="m8.297 20.502l.545 1.678h1.762l-1.426 1.03.545 1.68-1.426-1.036-1.425 1.036.545-1.68-1.426-1.03h1.762z"/><path d="m18.455 33.3l.645 1.98h2.08l-1.684 1.224.644 1.98-1.685-1.224-1.684 1.224.643-1.98-1.684-1.224h2.082z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2a5f9e"><path d="m53.4 53h-42c0 0 26-29.4 42.4-38.2 0 0-11.8 21.5 3 34.2 3.2-4.8 5.2-10.7 5.2-17 0-16.6-13.4-30-30-30s-30 13.4-30 30c0 9.8 4.7 18.5 12 24h36c1.2-.9 2.4-1.9 3.4-3"/><path d="m32 62c4.7 0 9.1-1.1 13.1-3h-26.2c4 1.9 8.4 3 13.1 3"/></g><g fill="#ffce31"><path d="m53.7 14.8c-16.3 8.8-42.3 38.2-42.3 38.2h42c1.2-1.2 2.3-2.6 3.3-4-14.8-12.7-3-34.2-3-34.2"/><path d="m14 56c1.5 1.1 3.2 2.2 4.9 3h26.2c1.7-.8 3.4-1.9 4.9-3h-36"/></g><g fill="#fff"><path d="m18.5 10.3l.5 1.7h1.8l-1.4 1 .5 1.7-1.4-1-1.4 1 .5-1.7-1.4-1h1.7z"/><path d="m27.1 18.1l.5 1.5h1.6l-1.3.9.5 1.5-1.3-.9-1.2.9.5-1.5-1.3-.9h1.6z"/><path d="m8.3 20.5l.5 1.7h1.8l-1.4 1 .5 1.7-1.4-1-1.4 1 .5-1.7-1.4-1h1.8z"/><path d="m18.5 33.3l.6 2h2.1l-1.7 1.2.6 2-1.6-1.2-1.7 1.2.6-2-1.7-1.2h2.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f1.svg
index 600f692..43e983a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f1.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2c-7.643,0-14.613,2.862-19.91,7.567l0,0v44.865C17.388,59.138,24.357,62,32,62
- c16.568,0,30-13.432,30-30S48.568,2,32,2z"/><path fill="#ffce31" d="M12.09,9.567c-1.33,1.182-2.547,2.485-3.649,3.883v37.1c1.103,1.397,2.319,2.701,3.649,3.883L42,32
- L12.09,9.567z"/><path fill="#3e4347" d="M8.44,13.439C4.411,18.547,2,24.99,2,32s2.411,13.453,6.44,18.561L27,32L8.44,13.439z"/><path fill="#fff" d="m10.338 33.899l2.378 5.101.949-5.336 5.335-.384-4.752-2.94.918-5.34-3.887 3.515-4.764-2.911 2.349 5.11-3.864 3.546z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-7.6 0-14.6 2.9-19.9 7.6v44.9c5.3 4.6 12.3 7.5 19.9 7.5 16.6 0 30-13.4 30-30s-13.4-30-30-30" fill="#ed4c5c"/><path d="M12.1,9.6c-1.3,1.2-2.5,2.5-3.6,3.9v37.1c1.1,1.4,2.3,2.7,3.6,3.9L42,32L12.1,9.6z" fill="#ffce31"/><path d="M8.4,13.4C4.4,18.5,2,25,2,32s2.4,13.5,6.4,18.6L27,32L8.4,13.4z" fill="#3e4347"/><path fill="#fff" d="m10.3 33.9l2.4 5.1 1-5.3 5.3-.4-4.8-3 1-5.3-3.9 3.5-4.8-2.9 2.4 5.1-3.9 3.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f2.svg
index 9bd76b2..785f91c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="M2,32c0,6.131,1.843,11.83,5,16.58V15.42C3.842,20.17,2,25.869,2,32z"/><path d="m32 2c-5.467 0-10.586 1.469-15 4.02v51.953c4.414 2.555 9.533 4.02 15 4.02 16.568 0 30-13.432 30-30s-13.432-30-30-30"/></g><path fill="#ed4c5c" d="m7 15.42v33.16c2.56 3.852 5.986 7.07 10 9.396v-51.953c-4.01 2.324-7.441 5.545-10 9.397"/><g fill="#fff"><path d="m37.18 8.846c2.484 2.117 4 5.315 3.848 8.827-.264 6.05-5.383 10.74-11.433 10.476-1.362-.059-2.657-.366-3.841-.874 1.914 1.631 4.395 2.615 7.105 2.615 6.05 0 10.965-4.91 10.965-10.965 0-4.52-2.737-8.402-6.644-10.08"/><path d="m26.721 16.905l.469-1.46h1.54l-1.242-.902.474-1.463-1.242.905-1.242-.905.474 1.463-1.242.902h1.54z"/><path d="m26.25 9.806l.471 1.46.469-1.46h1.54l-1.242-.904.474-1.46-1.242.903-1.242-.903.474 1.46-1.242.904z"/><path d="m31.817 12.695l.473 1.461.476-1.461h1.534l-1.24-.902.473-1.461-1.243.903-1.24-.903.473 1.461-1.243.902z"/><path d="m21.916 17.292l.475-1.46-1.241.902-1.244-.902.475 1.46-1.241.908h1.534l.476 1.455.473-1.455h1.537z"/><path d="m26.721 22.546l.469-1.456h1.54l-1.242-.91.474-1.457-1.242.902-1.242-.902.474 1.457-1.242.91h1.54z"/></g><g fill="#ffe62e"><path d="m7 15.42v5.959l2.979-2.98z"/><path d="m17 21.379v-5.959l-2.98 2.979z"/><path d="m7 29.89v5.959l2.979-2.98z"/><path d="m17 35.849v-5.959l-2.98 2.979z"/><path d="m7 42.621v5.959l2.979-2.979z"/><path d="m17 48.58v-5.959l-2.98 2.98z"/></g><path fill="#83bf4f" d="m9.75 42.551l-2.25-3.351 2.25-3.342h4.5l2.25 3.342-2.25 3.351z"/><path fill="#ffe62e" d="m9.75 28.847l-2.25-3.346 2.25-3.351h4.5l2.25 3.351-2.25 3.346z"/><path fill="#ed4c5c" d="m10.367 27.929l-1.633-2.428 1.633-2.431h3.265l1.633 2.431-1.633 2.428z"/><path fill="#fff" d="m11.346 26.473l-.654-.972.654-.973h1.307l.654.973-.654.972z"/><path fill="#83bf4f" d="m9.25 14.612l-.761-1.131 5.531-5.159 1.98 2.945-2.25 3.345z"/><path fill="#ed4c5c" d="m9.867 13.694l-.74-1.099 4-3.757 1.635 2.429-1.635 2.427z"/><path fill="#ffe62e" d="m9.03 48.994l-.771 1.116 5.463 5.23 2.02-2.91-2.206-3.38z"/><g fill="#ed4c5c"><path d="m9.639 49.92l-.753 1.09 3.955 3.808 1.664-2.408-1.601-2.448z"/><path d="m10.367 41.633l-1.633-2.433 1.633-2.424h3.265l1.633 2.424-1.633 2.433z"/></g><g fill="#ffe62e"><path d="m11.292 40.18l-.653-.98.653-.97h1.308l.654.97-.654.98z"/><path d="m10.883 11.913l-.398-.592 1.565-1.467.794 1.087-.654.972z"/></g><path fill="#fff" d="m10.439 51.709l-.399.591 1.566 1.469.795-1.088-.654-.972z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="M2,32c0,6.1,1.8,11.8,5,16.6V15.4C3.8,20.2,2,25.9,2,32z"/><path d="M32,2c-5.5,0-10.6,1.5-15,4v52c4.4,2.6,9.5,4,15,4c16.6,0,30-13.4,30-30S48.6,2,32,2z"/></g><path d="m7 15.4v33.2c2.6 3.9 6 7.1 10 9.4v-52c-4 2.3-7.4 5.6-10 9.4" fill="#ed4c5c"/><g fill="#fff"><path d="m37.2 8.8c2.5 2.1 4 5.3 3.8 8.8-.3 6-5.4 10.7-11.4 10.5-1.4-.1-2.7-.4-3.8-.9 1.9 1.6 4.4 2.6 7.1 2.6 6.1 0 11-4.9 11-11-.1-4.4-2.8-8.3-6.7-10"/><path d="m26.7 16.9l.5-1.5h1.5l-1.2-.9.5-1.4-1.3.9-1.2-.9.5 1.4-1.3.9h1.5z"/><path d="m26.2 9.8l.5 1.5.5-1.5h1.5l-1.2-.9.5-1.5-1.3.9-1.2-.9.5 1.5-1.3.9z"/><path d="m31.8 12.7l.5 1.5.5-1.5h1.5l-1.2-.9.4-1.5-1.2.9-1.3-.9.5 1.5-1.2.9z"/><path d="m21.9 17.3l.5-1.5-1.3.9-1.2-.9.5 1.5-1.3.9h1.6l.4 1.5.5-1.5h1.6z"/><path d="m26.7 22.5l.5-1.4h1.5l-1.2-.9.5-1.5-1.3.9-1.2-.9.5 1.5-1.3.9h1.5z"/></g><g fill="#ffe62e"><path d="m7 15.4v6l3-3z"/><path d="m17 21.4v-6l-3 3z"/><path d="m7 29.9v5.9l3-2.9z"/><path d="m17 35.8v-5.9l-3 3z"/><path d="m7 42.6v6l3-3z"/><path d="m17 48.6v-6l-3 3z"/></g><path fill="#83bf4f" d="m9.8 42.6l-2.3-3.4 2.3-3.3h4.4l2.3 3.3-2.3 3.4z"/><path fill="#ffe62e" d="m9.8 28.8l-2.3-3.3 2.3-3.3h4.4l2.3 3.3-2.3 3.3z"/><path fill="#ed4c5c" d="m10.4 27.9l-1.7-2.4 1.7-2.4h3.2l1.7 2.4-1.7 2.4z"/><path fill="#fff" d="m11.3 26.5l-.6-1 .6-1h1.4l.6 1-.6 1z"/><path fill="#83bf4f" d="m9.2 14.6l-.7-1.1 5.5-5.2 2 3-2.2 3.3z"/><path fill="#ed4c5c" d="m9.9 13.7l-.8-1.1 4-3.8 1.7 2.5-1.7 2.4z"/><path fill="#ffe62e" d="m9 49l-.7 1.1 5.4 5.2 2-2.9-2.2-3.3z"/><g fill="#ed4c5c"><path d="m9.6 49.9l-.7 1.1 3.9 3.8 1.7-2.4-1.6-2.4z"/><path d="m10.4 41.6l-1.7-2.4 1.7-2.4h3.2l1.7 2.4-1.7 2.4z"/></g><g fill="#ffe62e"><path d="m11.3 40.2l-.7-1 .7-1h1.3l.7 1-.7 1z"/><path d="m10.9 11.9l-.4-.6 1.5-1.4.8 1-.6 1z"/></g><path fill="#fff" d="m10.4 51.7l-.4.6 1.6 1.5.8-1.1-.7-1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f3.svg
index 59940d2..b27930a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#fff" cx="32" cy="32" r="17.286"/><circle fill="#ed4c5c" cx="32" cy="32" r="12.965"/><circle fill="#fff" cx="35.457" cy="32" r="10.372"/><path fill="#ed4c5c" d="m38.43 32l3.321-4.572-5.371 1.742-3.33-4.568v5.648l-5.371 1.75 5.371 1.746v5.654l3.33-4.574 5.371 1.746z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ed4c5c"/><circle cx="32" cy="32" r="17.3" fill="#fff"/><circle cx="32" cy="32" r="13" fill="#ed4c5c"/><circle cx="35.5" cy="32" r="10.4" fill="#fff"/><path fill="#ed4c5c" d="m38.4 32l3.4-4.6-5.4 1.8-3.3-4.6v5.7l-5.4 1.7 5.4 1.7v5.7l3.3-4.6 5.4 1.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f4.svg
index 36d244e..4adcb03 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="M26,2.602C12.307,5.381,2,17.486,2,32h24V2.602z"/><g fill="#c94747"><path d="M32,2c-2.055,0-4.062,0.207-6,0.602V32H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path d="m22 18h-5v-5h-4v5h-5v4h5v5h4v-5h5z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26,2.6C12.3,5.4,2,17.5,2,32h24V2.6z" fill="#f9f9f9"/><g fill="#c94747"><path d="M32,2c-2.1,0-4.1,0.2-6,0.6V32H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z"/><path d="m22 18h-5v-5h-4v5h-5v4h5v5h4v-5h5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f7.svg
index 6d1c313..57ab90b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><g fill="#fff"><path d="M41.35 39 41.36 33.645 36 32 41.36 30.355 41.35 25 44.648 29.339 50 27.673 46.681 32 50 36.33 44.648 34.66z"/><path d="m33.25 44c-6.553 0-11.865-5.373-11.865-12 0-6.627 5.313-12 11.865-12 2.509 0 4.834.791 6.75 2.135-2.719-3.147-6.714-5.135-11.17-5.135-8.191 0-14.83 6.716-14.83 15 0 8.286 6.639 15 14.83 15 4.456 0 8.451-1.988 11.17-5.133-1.916 1.344-4.241 2.133-6.75 2.133"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ed4c5c"/><g fill="#fff"><path d="m41.3 39l.1-5.4-5.4-1.6 5.4-1.6-.1-5.4 3.3 4.3 5.4-1.6-3.3 4.3 3.3 4.3-5.4-1.6z"/><path d="m33.2 44c-6.6 0-11.9-5.4-11.9-12s5.3-12 11.9-12c2.5 0 4.8.8 6.8 2.1-2.7-3.1-6.7-5.1-11.2-5.1-8.2 0-14.8 6.7-14.8 15 0 8.3 6.6 15 14.8 15 4.5 0 8.5-2 11.2-5.1-1.9 1.3-4.2 2.1-6.8 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f9.svg
index 3053bd9..d0322a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m53.21 10.781c-8.699-8.7-21.406-10.931-32.17-6.713l38.882 38.884c4.217-10.765 1.986-23.473-6.711-32.17"/><path d="m10.78 53.21c8.699 8.698 21.406 10.929 32.17 6.711l-38.882-38.883c-4.218 10.766-1.987 23.474 6.711 32.17"/></g><path fill="#3e4347" d="m10.78 10.781c-1.961 1.962-3.578 4.132-4.88 6.435l40.878 40.877c2.303-1.303 4.473-2.918 6.436-4.88 1.961-1.962 3.576-4.134 4.881-6.435l-40.88-40.879c-2.302 1.303-4.474 2.919-6.435 4.882"/><g fill="#fff"><path d="m4.92 19.06c-.311.649-.591 1.311-.852 1.977l38.882 38.883c.666-.261 1.326-.541 1.977-.852.627-.299 1.24-.634 1.85-.979l-40.878-40.877c-.344.608-.679 1.222-.979 1.848"/><path d="m21.04 4.068c-.666.261-1.327.541-1.978.852-.627.299-1.24.634-1.849.979l40.879 40.879c.344-.609.68-1.223.979-1.849.311-.65.592-1.312.852-1.978l-38.883-38.883"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m53.2 10.8c-8.7-8.7-21.4-10.9-32.2-6.7l38.9 38.9c4.2-10.8 2-23.5-6.7-32.2"/><path d="m10.8 53.2c8.7 8.7 21.4 10.9 32.2 6.7l-38.9-38.9c-4.2 10.8-2 23.5 6.7 32.2"/></g><path d="m10.8 10.8c-2 2-3.6 4.1-4.9 6.4l40.9 40.9c2.3-1.3 4.5-2.9 6.4-4.9 2-2 3.6-4.1 4.9-6.4l-40.9-40.9c-2.3 1.3-4.5 2.9-6.4 4.9" fill="#3e4347"/><g fill="#fff"><path d="m4.9 19.1c-.3.6-.6 1.3-.9 2l39 38.8c.7-.3 1.3-.5 2-.9.6-.3 1.2-.6 1.8-1l-40.9-40.8c-.3.6-.7 1.2-1 1.9"/><path d="m21 4.1c-.7.3-1.3.5-2 .9-.6.3-1.2.6-1.8 1l40.9 40.9c.3-.6.7-1.2 1-1.8.3-.7.6-1.3.9-2l-39-39"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fb.svg
index abca328..e911e86 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2872a0" d="m12 12h20v20h-20z"/><path fill="#5b97b1" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#fff" d="M32,2c-4.694,0-9.132,1.088-13.088,3.012V8.14V11H11v2.912V14v4.912H5.011C3.088,22.869,2,27.306,2,32
- h12V17l12,15h6v-7.5L23.6,14H32V2z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.94,7.94,12.857,5,18.912V32h6V11h2l17,21h2v-4.941L19,11h13V5z"/><g fill="#ffe62e"><path d="m28.916 50.15l-.666-2.05-.664 2.05h-2.153l1.737 1.27-.661 2.04 1.741-1.26 1.742 1.26-.665-2.05 1.743-1.26z"/><path d="m37.768 48.559l.665-2.047-1.742 1.265-1.741-1.265.665 2.047-1.741 1.265h2.156l.661 2.047.669-2.047h2.149z"/><path d="m38.433 39.3l-1.742 1.262-1.741-1.262.665 2.04-1.741 1.268h2.156l.661 2.047.669-2.047h2.149l-1.741-1.268z"/><path d="m45.22 46.734l.666-2.046-1.736 1.265-1.75-1.265.67 2.046-1.74 1.266h2.149l.671 2.05.66-2.05h2.152z"/><path d="m43.479 32.3l.671 2.05.66-2.05h2.152l-1.742-1.26.666-2.052-1.736 1.262-1.75-1.262.67 2.052-1.74 1.26z"/><path d="m49.685 41.22l-.665-2.04-.67 2.04h-2.15l1.743 1.267-.663 2.047 1.74-1.264 1.741 1.264-.661-2.047 1.737-1.267z"/><path d="m49.743 30.16l.667 2.04.66-2.04h2.16l-1.75-1.265.67-2.047-1.74 1.262-1.743-1.262.663 2.047-1.739 1.265z"/><path d="m55.979 37.17l-.669-2.05-.662 2.05h-2.158l1.75 1.266-.67 2.046 1.74-1.262 1.74 1.262-.66-2.047 1.74-1.265z"/><path d="m54.24 24.59l-.67 2.047 1.74-1.266 1.74 1.266-.66-2.047 1.74-1.266h-2.151l-.669-2.047-.662 2.047h-2.158z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#2a5f9e" d="m12 12h21v21h-21z"/><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#5b97b1"/><path d="m32 2c-4.7 0-9.1 1.1-13.1 3v3.1 2.9h-7.9v2.9.1 4.9h-6c-1.9 4-3 8.4-3 13.1h12v-15l12 15h6v-7.5l-8.4-10.5h8.4v-12" fill="#fff"/><g fill="#ed4c5c"><path d="m15.4 14l14.6 18h2v-4.9l-10.6-13.1z"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z"/></g><g fill="#ffe62e"><path d="m28.9 50.2l-.6-2.1-.7 2.1h-2.2l1.8 1.2-.7 2.1 1.8-1.3 1.7 1.3-.7-2.1 1.8-1.2z"/><path d="m37.8 48.6l.6-2.1-1.7 1.3-1.7-1.3.6 2.1-1.7 1.2h2.1l.7 2.1.7-2.1h2.1z"/><path d="m38.4 39.3l-1.7 1.3-1.7-1.3.6 2-1.7 1.3h2.1l.7 2.1.7-2.1h2.1l-1.7-1.3z"/><path d="m45.2 46.7l.7-2-1.8 1.3-1.7-1.3.7 2-1.8 1.3h2.2l.6 2 .7-2h2.2z"/><path d="m43.5 32.3l.6 2 .7-2h2.2l-1.8-1.3.7-2-1.8 1.3-1.7-1.3.7 2-1.8 1.3z"/><path d="m49.7 41.2l-.7-2-.6 2h-2.2l1.7 1.3-.6 2 1.7-1.2 1.8 1.2-.7-2 1.7-1.3z"/><path d="m49.7 30.2l.7 2 .7-2h2.1l-1.7-1.3.7-2.1-1.8 1.3-1.7-1.3.6 2.1-1.7 1.3z"/><path d="m56 37.2l-.7-2.1-.7 2.1h-2.1l1.7 1.2-.6 2.1 1.7-1.3 1.8 1.3-.7-2.1 1.7-1.2z"/><path d="m54.2 24.6l-.6 2 1.7-1.2 1.8 1.2-.7-2 1.7-1.3h-2.1l-.7-2-.7 2h-2.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fc.svg
index 004211c..8ac4ed8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1fc.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#2a5f9e" d="M32,2C15.432,2,2,15.432,2,32h30V2z"/><path fill="#fff" d="M23.988,20.337L29,19l-5.012-1.337L27.66,14l-5.009,1.349L24,10.34l-3.663,3.672L19,9l-1.337,5.012
- L14,10.34l1.349,5.009L10.34,14l3.672,3.663L9,19l5.012,1.337L10.34,24l5.009-1.349L14,27.66l3.663-3.672L19,29l1.337-5.012
- L24,27.66l-1.349-5.009L27.66,24L23.988,20.337z"/><circle fill="#428bc1" cx="19" cy="19" r="5.667"/><circle fill="#fff" cx="19" cy="19" r="5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#ed4c5c"/><path d="M32,2C15.4,2,2,15.4,2,32h30V2z" fill="#2a5f9e"/><path d="m24 20.3l5-1.3-5-1.3 3.7-3.7-5 1.3 1.3-5-3.7 3.7-1.3-5-1.3 5-3.7-3.7 1.3 5-5-1.3 3.7 3.7-5 1.3 5 1.3-3.7 3.7 5-1.3-1.3 5 3.7-3.7 1.3 5 1.3-5 3.7 3.7-1.3-5 5 1.3-3.7-3.7" fill="#fff"/><circle cx="19" cy="19" r="5.7" fill="#428bc1"/><circle cx="19" cy="19" r="5" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ff.svg
index 454b929..9e65b4b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m16.999 6.01c-10.652 6.15-16.1 17.847-14.81 29.339l47.624-27.495c-9.308-6.861-22.16-7.996-32.814-1.844"/><path fill="#428bc1" d="m14.192 56.14c9.308 6.859 22.16 7.994 32.813 1.843 10.652-6.149 16.1-17.848 14.81-29.338l-47.623 27.495"/><path fill="#3e4347" d="m57.987 16.992c-1.387-2.402-3.067-4.526-4.954-6.381l-50.06 28.907c.662 2.561 1.661 5.076 3.049 7.479 1.387 2.403 3.066 4.526 4.953 6.381l50.06-28.906c-.662-2.562-1.661-5.077-3.048-7.48"/><g fill="#ffce31"><path d="m61.5 26.511c-.127-.683-.292-1.362-.468-2.04l-50.06 28.906c.498.49 1 .973 1.532 1.424.548.469 1.113.91 1.689 1.335l47.622-27.495c-.08-.711-.179-1.422-.311-2.13"/><path d="m51.5 9.188c-.548-.468-1.112-.91-1.688-1.334l-47.624 27.495c.08.711.18 1.422.312 2.13.127.683.292 1.361.468 2.039l50.06-28.906c-.499-.491-1-.973-1.532-1.424"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,6C6.3,12.2,0.9,23.9,2.2,35.3L49.8,7.9C40.5,1,27.7-0.1,17,6z" fill="#83bf4f"/><path d="m14.2 56.1c9.3 6.9 22.2 8 32.8 1.8 10.7-6.1 16.1-17.8 14.8-29.3l-47.6 27.5" fill="#428bc1"/><path d="m58 17c-1.4-2.4-3.1-4.5-5-6.4l-50 28.9c.7 2.6 1.7 5.1 3 7.5 1.4 2.4 3.1 4.5 5 6.4l50-28.9c-.6-2.6-1.6-5.1-3-7.5" fill="#3e4347"/><g fill="#ffce31"><path d="m61.5 26.5c-.1-.7-.3-1.4-.5-2l-50 28.9c.5.5 1 1 1.5 1.4.5.5 1.1.9 1.7 1.3l47.6-27.5c-.1-.7-.2-1.4-.3-2.1"/><path d="m51.5 9.2c-.5-.5-1.1-.9-1.7-1.3l-47.6 27.4c.1.7.2 1.4.3 2.1.1.7.3 1.4.5 2l50-28.8c-.5-.5-1-1-1.5-1.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1f9.svg
new file mode 100644
index 0000000..6d8e6ed
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1f9.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m43.8 17.5v5.1h-8.7v23.9h-6.1v-23.9h-8.7v-5.1c-.1 0 23.5 0 23.5 0" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1e6.svg
index c522cdb..3d4e0e3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="M32,62c16.568,0,30-13.432,30-30H2C2,48.568,15.432,62,32,62z"/><path fill="#428bc1" d="M32,2C15.432,2,2,15.432,2,32h60C62,15.432,48.568,2,32,2z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,62c16.6,0,30-13.4,30-30H2C2,48.6,15.4,62,32,62z" fill="#ffe62e"/><path d="M32,2C15.4,2,2,15.4,2,32h60C62,15.4,48.6,2,32,2z" fill="#428bc1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ec.svg
index 7dc3499..4509376 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M32,2C23.115,2,15.138,5.864,9.645,12h44.708C48.861,5.864,40.883,2,32,2z"/><path fill="#ffe62e" d="m54.35 12h-44.709c-2.584 2.886-4.614 6.273-5.932 10h56.57c-1.316-3.727-3.347-7.114-5.931-10"/><path fill="#ed4c5c" d="m60.28 22h-56.57c-1.106 3.129-1.713 6.492-1.713 10h60c0-3.508-.607-6.871-1.715-10"/><path fill="#3e4347" d="M62,32H2c0,3.508,0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32z"/><path fill="#ffe62e" d="m60.28 42h-56.57c1.317 3.727 3.348 7.114 5.932 10h44.708c2.585-2.886 4.616-6.273 5.932-10"/><path fill="#ed4c5c" d="m54.35 52h-44.709c5.493 6.136 13.47 10 22.355 10 8.883 0 16.861-3.864 22.354-10"/><circle fill="#fff" cx="32" cy="32" r="10"/><g fill="#3e4347"><circle cx="31" cy="26" r="2"/><path d="m31.5 35l.5 6h.5v-6z"/><path d="m31 40.5v.5h2v-1z"/><path d="m34.928 37.25c-1.064-1.671-2.129-3.342-3.195-5.01-.346-.543-1.213-.04-.865.507.904 1.418 1.811 2.84 2.715 4.26-1.365 0-2.217 0-3.582 0v.5c1.67 0 2.824.5 4.496.5.368 0 .638-.43.431-.754"/><path d="m33.928 32.1c-1.137-.418-3.36-.881-1.928-5.098h-1.824c0 0-4.377 8.727 3.752 8.727 1.797 0 2.578 1.455 2.578 3.273 0 0 2.166-5.156-2.578-6.902"/><path d="m29.5 36.5l.5 2h.5v-2z"/><path d="m31 25l-4 2h4z"/></g><path fill="#ed4c5c" d="m35 32.617v3.326c0 0 1.594.65.938 3.057l1.062.531c0 0 1.844-4.797-2-6.914"/><g fill="#94989b"><path d="m31.5 32c0 0-.002 2.584 2.541 2.584 0 0 .959-2.584-2.541-2.584"/><ellipse cx="30.359" cy="31.74" rx=".859" ry="1.552"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C23.1,2,15.1,5.9,9.6,12h44.7C48.9,5.9,40.9,2,32,2z" fill="#3e4347"/><path d="m54.4 12h-44.8c-2.5 2.9-4.6 6.3-5.9 10h56.6c-1.3-3.7-3.4-7.1-5.9-10" fill="#ffe62e"/><path d="m60.3 22h-56.6c-1.1 3.1-1.7 6.5-1.7 10h60c0-3.5-.6-6.9-1.7-10" fill="#ed4c5c"/><path d="m62 32h-60c0 3.5.6 6.9 1.7 10h56.6c1.1-3.1 1.7-6.5 1.7-10" fill="#3e4347"/><path d="m60.3 42h-56.6c1.3 3.7 3.3 7.1 5.9 10h44.7c2.6-2.9 4.7-6.3 6-10" fill="#ffe62e"/><path d="m54.4 52h-44.8c5.5 6.1 13.5 10 22.4 10 8.9 0 16.9-3.9 22.4-10" fill="#ed4c5c"/><circle cx="32" cy="32" r="10" fill="#fff"/><g fill="#3e4347"><circle cx="31" cy="26" r="2"/><path d="m31.5 35l.5 6h.5v-6z"/><path d="m31 40.5v.5h2v-1z"/><path d="m34.9 37.2c-1.1-1.7-2.1-3.3-3.2-5-.3-.5-1.2 0-.9.5.9 1.4 1.8 2.8 2.7 4.3-1.4 0-2.2 0-3.6 0v.5c1.7 0 2.8.5 4.5.5.5 0 .7-.4.5-.8"/><path d="m33.9 32.1c-1.1-.4-3.4-.9-1.9-5.1h-1.8c0 0-4.4 8.7 3.8 8.7 1.8 0 2.6 1.5 2.6 3.3-.1 0 2.1-5.2-2.7-6.9"/><path d="m29.5 36.5l.5 2h.5v-2z"/><path d="m31 25l-4 2h4z"/></g><path d="m35 32.6v3.3c0 0 1.6.7.9 3.1l1.1.5c0 0 1.8-4.8-2-6.9" fill="#ed4c5c"/><g fill="#94989b"><path d="m31.5 32c0 0 0 2.6 2.5 2.6 0 0 1-2.6-2.5-2.6"/><ellipse cx="30.4" cy="31.7" rx=".9" ry="1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f2.svg
index 15b5e53..48488ea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M47.971,6.61C43.346,3.694,37.871,2,32,2v4.61H47.971z"/><path fill="#fff" d="M32,11.22h21.625c-1.688-1.755-3.584-3.305-5.654-4.61H32V11.22z"/><path fill="#ed4c5c" d="M32,15.83h25.262c-1.061-1.655-2.279-3.198-3.637-4.61H32V15.83z"/><path fill="#fff" d="m32 20.439h27.688c-.674-1.614-1.49-3.153-2.426-4.61h-25.26v4.61"/><path fill="#ed4c5c" d="m32 25.05h29.18c-.377-1.588-.875-3.13-1.494-4.61h-27.688v4.61"/><path fill="#fff" d="m32 29.659h29.9c-.121-1.573-.363-3.113-.719-4.61h-29.18v4.61"/><path fill="#ed4c5c" d="m61.9 29.659h-29.9v2.341h-30c0 .764.037 1.52.094 2.27h59.812c.055-.75.094-1.506.094-2.27 0-.789-.041-1.567-.1-2.341"/><path fill="#fff" d="m2.801 38.879h58.4c.352-1.496.59-3.036.709-4.609h-59.812c.117 1.573.356 3.113.707 4.609"/><path fill="#ed4c5c" d="m4.284 43.488h55.43c.613-1.479 1.107-3.02 1.48-4.609h-58.4c.373 1.588.867 3.13 1.483 4.609"/><path fill="#fff" d="m6.692 48.1h50.617c.928-1.457 1.738-2.997 2.408-4.61h-55.43c.67 1.613 1.478 3.153 2.408 4.61"/><path fill="#ed4c5c" d="m10.305 52.709h43.39c1.35-1.413 2.561-2.956 3.615-4.61h-50.616c1.055 1.654 2.266 3.197 3.613 4.61"/><path fill="#fff" d="m15.917 57.32h32.17c2.053-1.308 3.936-2.857 5.609-4.609h-43.39c1.674 1.752 3.557 3.302 5.612 4.609"/><path fill="#ed4c5c" d="M32,62c5.92,0,11.434-1.722,16.084-4.682H15.917C20.564,60.278,26.08,62,32,62z"/><path fill="#428bc1" d="m16.03 6.61c-2.068 1.305-3.967 2.854-5.654 4.61-1.355 1.412-2.574 2.955-3.637 4.61-.934 1.457-1.75 2.996-2.426 4.61-.617 1.479-1.115 3.02-1.492 4.61-.355 1.497-.598 3.037-.719 4.61-.06.773-.1 1.551-.1 2.34h30v-2.341-4.61-4.61-4.61-4.61-4.609-4.61c-5.873 0-11.346 1.694-15.972 4.61"/><g fill="#fff"><path d="m25 3l.473 1.482h1.527l-1.236.98.476 1.514-1.24-.899-1.236.923.476-1.542-1.24-.976h1.527z"/><path d="m29 9l.473 1.482h1.527l-1.236.98.476 1.514-1.24-.896-1.236.92.476-1.542-1.24-.976h1.527z"/><path d="m21 9l.473 1.482h1.527l-1.236.98.476 1.514-1.24-.896-1.236.92.472-1.542-1.236-.976h1.527z"/><path d="m25 15l.473 1.482h1.527l-1.236.98.476 1.514-1.24-.896-1.236.92.476-1.542-1.24-.976h1.527z"/><path d="m17 15l.473 1.482h1.527l-1.236.98.473 1.514-1.237-.896-1.236.92.473-1.542-1.237-.976h1.528z"/><path d="m9 15l.473 1.482h1.527l-1.236.98.473 1.514-1.237-.896-1.236.92.473-1.542-1.237-.976h1.528z"/><path d="m29 21l.473 1.482h1.527l-1.236.98.476 1.514-1.24-.896-1.236.92.476-1.542-1.24-.976h1.527z"/><path d="m21 21l.473 1.482h1.527l-1.236.98.476 1.514-1.24-.896-1.236.92.472-1.542-1.236-.976h1.527z"/><path d="m13 21l.473 1.482h1.527l-1.236.98.473 1.514-1.237-.896-1.236.92.473-1.542-1.237-.976h1.528z"/><path d="m25 27l.473 1.482h1.527l-1.236.98.476 1.515-1.24-.897-1.236.92.476-1.541-1.24-.977h1.527z"/><path d="m17 27l.473 1.482h1.527l-1.236.98.473 1.515-1.237-.897-1.236.92.473-1.541-1.237-.977h1.528z"/><path d="m9 27l.473 1.482h1.527l-1.236.98.473 1.515-1.237-.897-1.236.92.473-1.541-1.237-.977h1.528z"/><path d="m11.764 13l1.236-.923 1.236.899-.473-1.514 1.237-.98h-1.527l-.473-1.482-.473 1.482h-1.422c-.016.016-.031.03-.047.046l1.178.931-.472 1.541"/><path d="m3.764 25l1.236-.923 1.236.899-.473-1.514 1.237-.98h-1.527l-.473-1.482-.473 1.482h-.976c-.039.115-.08.228-.117.343l.803.633-.473 1.542"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M48,6.6C43.3,3.7,37.9,2,32,2v4.6H48z" fill="#ed4c5c"/><path d="M32,11.2h21.6C51.9,9.5,50,7.9,48,6.6H32V11.2z" fill="#fff"/><path d="M32,15.8h25.3c-1.1-1.7-2.3-3.2-3.6-4.6H32V15.8z" fill="#ed4c5c"/><path d="m32 20.4h27.7c-.7-1.6-1.5-3.2-2.4-4.6h-25.3v4.6" fill="#fff"/><path d="M32,25h29.2c-0.4-1.6-0.9-3.1-1.5-4.6H32V25z" fill="#ed4c5c"/><path d="m32 29.7h29.9c-.1-1.6-.4-3.1-.7-4.6h-29.2v4.6" fill="#fff"/><path d="m61.9 29.7h-29.9v2.3h-30c0 .8 0 1.5.1 2.3h59.8c.1-.8.1-1.5.1-2.3 0-.8 0-1.6-.1-2.3" fill="#ed4c5c"/><path d="m2.8 38.9h58.4c.4-1.5.6-3 .7-4.6h-59.8c.1 1.5.4 3.1.7 4.6" fill="#fff"/><path d="m4.3 43.5h55.4c.6-1.5 1.1-3 1.5-4.6h-58.4c.4 1.6.9 3.1 1.5 4.6" fill="#ed4c5c"/><path d="m6.7 48.1h50.6c.9-1.5 1.7-3 2.4-4.6h-55.4c.7 1.6 1.5 3.1 2.4 4.6" fill="#fff"/><path d="m10.3 52.7h43.4c1.3-1.4 2.6-3 3.6-4.6h-50.6c1 1.7 2.3 3.2 3.6 4.6" fill="#ed4c5c"/><path d="m15.9 57.3h32.2c2.1-1.3 3.9-2.9 5.6-4.6h-43.4c1.7 1.8 3.6 3.3 5.6 4.6" fill="#fff"/><path d="m32 62c5.9 0 11.4-1.7 16.1-4.7h-32.2c4.7 3 10.2 4.7 16.1 4.7" fill="#ed4c5c"/><path d="m16 6.6c-2.1 1.3-4 2.9-5.7 4.6-1.4 1.4-2.6 3-3.6 4.6-.9 1.5-1.8 3-2.4 4.6-.6 1.5-1.1 3-1.5 4.6-.4 1.5-.6 3-.7 4.6-.1.8-.1 1.6-.1 2.4h30v-2.3-4.7-4.6-4.6-4.6-4.6-4.6c-5.9 0-11.3 1.7-16 4.6" fill="#428bc1"/><g fill="#fff"><path d="m25 3l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m29 9l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m21 9l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m25 15l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m17 15l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m9 15l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m29 21l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m21 21l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m13 21l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m25 27l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m17 27l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m9 27l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m11.8 13l1.2-.9 1.2.9-.5-1.5 1.2-1h-1.5l-.4-1.5-.5 1.5h-1.4c0 0 0 0 0 0l1.2.9-.5 1.6"/><path d="m3.8 25l1.2-.9 1.2.9-.5-1.5 1.2-1h-1.4l-.5-1.5-.5 1.5h-1c0 .1-.1.2-.1.3l.8.6-.4 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f8.svg
index d57d43c..28e8578 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M47.971,6.609C43.346,3.693,37.871,2,32,2v4.61H47.971z"/><path fill="#fff" d="M32,11.219h21.625c-1.688-1.755-3.584-3.305-5.654-4.61H32V11.219z"/><path fill="#ed4c5c" d="M32,15.829h25.262c-1.061-1.655-2.279-3.198-3.637-4.61H32V15.829z"/><path fill="#fff" d="m32 20.439h27.688c-.674-1.614-1.49-3.153-2.426-4.61h-25.26v4.61"/><path fill="#ed4c5c" d="m32 25.05h29.18c-.377-1.588-.875-3.13-1.494-4.61h-27.688v4.61"/><path fill="#fff" d="m32 29.659h29.9c-.121-1.574-.363-3.113-.719-4.61h-29.18v4.61"/><path fill="#ed4c5c" d="m61.9 29.659h-29.9v2.341h-30c0 .764.037 1.519.094 2.27h59.813c.054-.751.093-1.506.093-2.27 0-.789-.041-1.568-.1-2.341"/><path fill="#fff" d="m2.801 38.879h58.4c.352-1.496.59-3.037.709-4.609h-59.812c.117 1.572.355 3.113.707 4.609"/><path fill="#ed4c5c" d="m4.283 43.488h55.43c.613-1.48 1.107-3.02 1.48-4.609h-58.4c.373 1.588.867 3.129 1.482 4.609"/><path fill="#fff" d="m6.691 48.1h50.617c.928-1.457 1.738-2.996 2.408-4.609h-55.43c.67 1.613 1.479 3.152 2.408 4.609"/><path fill="#ed4c5c" d="m10.305 52.709h43.39c1.35-1.414 2.561-2.957 3.615-4.611h-50.618c1.055 1.654 2.266 3.197 3.614 4.611"/><path fill="#fff" d="m15.916 57.32h32.17c2.053-1.309 3.936-2.857 5.609-4.609h-43.39c1.674 1.752 3.556 3.301 5.611 4.609"/><path fill="#ed4c5c" d="M32,62c5.92,0,11.434-1.723,16.084-4.682H15.916C20.564,60.277,26.08,62,32,62z"/><path fill="#428bc1" d="m16.03 6.609c-2.068 1.305-3.967 2.854-5.654 4.61-1.355 1.412-2.574 2.955-3.637 4.61-.934 1.457-1.75 2.996-2.426 4.61-.617 1.479-1.115 3.02-1.492 4.61-.355 1.497-.598 3.036-.719 4.61-.06.773-.099 1.552-.099 2.341h30v-2.341-4.61-4.61-4.61-4.61-4.61-4.609c-5.873 0-11.346 1.693-15.973 4.609"/><g fill="#fff"><path d="m25 3l.473 1.481h1.527l-1.236.98.476 1.515-1.24-.9-1.236.924.476-1.542-1.24-.977h1.527z"/><path d="m29 9l.473 1.481h1.527l-1.236.98.476 1.515-1.24-.896-1.236.92.476-1.542-1.24-.977h1.527z"/><path d="m21 9l.473 1.481h1.527l-1.236.98.476 1.515-1.24-.896-1.236.92.472-1.542-1.236-.977h1.527z"/><path d="m25 15l.473 1.481h1.527l-1.236.98.476 1.515-1.24-.896-1.236.92.476-1.542-1.24-.977h1.527z"/><path d="m17 15l.473 1.481h1.527l-1.236.98.472 1.515-1.236-.896-1.236.92.472-1.542-1.236-.977h1.527z"/><path d="m9 15l.473 1.481h1.527l-1.236.98.472 1.515-1.236-.896-1.236.92.472-1.542-1.236-.977h1.527z"/><path d="m29 21l.473 1.481h1.527l-1.236.98.476 1.515-1.24-.896-1.236.92.476-1.542-1.24-.977h1.527z"/><path d="m21 21l.473 1.481h1.527l-1.236.98.476 1.515-1.24-.896-1.236.92.472-1.542-1.236-.977h1.527z"/><path d="m13 21l.473 1.481h1.527l-1.236.98.472 1.515-1.236-.896-1.236.92.472-1.542-1.236-.977h1.527z"/><path d="m25 27l.473 1.482h1.527l-1.236.979.476 1.515-1.24-.896-1.236.92.476-1.542-1.24-.976h1.527z"/><path d="m17 27l.473 1.482h1.527l-1.236.979.472 1.515-1.236-.896-1.236.92.472-1.542-1.236-.976h1.527z"/><path d="m9 27l.473 1.482h1.527l-1.236.979.472 1.515-1.236-.896-1.236.92.472-1.542-1.236-.976h1.527z"/><path d="m11.764 13l1.236-.924 1.236.899-.473-1.514 1.237-.98h-1.527l-.473-1.481-.473 1.482h-1.422c-.016.016-.031.03-.047.046l1.178.931-.472 1.541"/><path d="m3.764 25l1.236-.924 1.236.899-.473-1.514 1.237-.98h-1.527l-.473-1.481-.473 1.482h-.976c-.039.115-.08.228-.117.343l.803.633-.473 1.542"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6.6c-4.7-2.9-10.1-4.6-16-4.6v4.6h16" fill="#ed4c5c"/><path d="M32,11.2h21.6C51.9,9.5,50,7.9,48,6.6H32V11.2z" fill="#fff"/><path d="M32,15.8h25.3c-1.1-1.7-2.3-3.2-3.6-4.6H32V15.8z" fill="#ed4c5c"/><path d="m32 20.4h27.7c-.7-1.6-1.5-3.2-2.4-4.6h-25.3v4.6" fill="#fff"/><path d="M32,25h29.2c-0.4-1.6-0.9-3.1-1.5-4.6H32V25z" fill="#ed4c5c"/><path d="m32 29.7h29.9c-.1-1.6-.4-3.1-.7-4.6h-29.2v4.6" fill="#fff"/><path d="m61.9 29.7h-29.9v2.3h-30c0 .8 0 1.5.1 2.3h59.8c.1-.8.1-1.5.1-2.3 0-.8 0-1.6-.1-2.3" fill="#ed4c5c"/><path d="m2.8 38.9h58.4c.4-1.5.6-3 .7-4.6h-59.8c.1 1.5.3 3.1.7 4.6" fill="#fff"/><path d="m4.3 43.5h55.4c.6-1.5 1.1-3 1.5-4.6h-58.4c.4 1.6.9 3.1 1.5 4.6" fill="#ed4c5c"/><path d="m6.7 48.1h50.6c.9-1.5 1.7-3 2.4-4.6h-55.4c.7 1.6 1.5 3.1 2.4 4.6" fill="#fff"/><path d="m10.3 52.7h43.4c1.3-1.4 2.6-3 3.6-4.6h-50.6c1 1.7 2.3 3.2 3.6 4.6" fill="#ed4c5c"/><path d="m15.9 57.3h32.2c2.1-1.3 3.9-2.9 5.6-4.6h-43.4c1.7 1.8 3.6 3.3 5.6 4.6" fill="#fff"/><path d="m32 62c5.9 0 11.4-1.7 16.1-4.7h-32.2c4.7 3 10.2 4.7 16.1 4.7" fill="#ed4c5c"/><path d="m16 6.6c-2.1 1.3-4 2.9-5.7 4.6-1.4 1.4-2.6 3-3.6 4.6-.9 1.5-1.8 3-2.4 4.6-.6 1.5-1.1 3-1.5 4.6-.4 1.5-.6 3-.7 4.6-.1.8-.1 1.6-.1 2.4h30v-2.3-4.7-4.6-4.6-4.6-4.6-4.6c-5.9 0-11.3 1.7-16 4.6" fill="#428bc1"/><g fill="#fff"><path d="m25 3l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m29 9l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m21 9l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m25 15l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m17 15l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m9 15l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m29 21l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m21 21l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m13 21l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m25 27l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m17 27l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m9 27l.5 1.5h1.5l-1.2 1 .4 1.5-1.2-.9-1.2.9.4-1.5-1.2-1h1.5z"/><path d="m11.8 13l1.2-.9 1.2.9-.5-1.5 1.2-1h-1.5l-.4-1.5-.5 1.5h-1.4c0 0 0 0 0 0l1.2.9-.5 1.6"/><path d="m3.8 25l1.2-.9 1.2.9-.5-1.5 1.2-1h-1.4l-.5-1.5-.5 1.5h-1c0 .1-.1.2-.1.3l.8.6-.4 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1fe.svg
index 26b7b66..bc4ad70 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m61.711 28h-1.425v-5.98c-1.024-2.903-2.472-5.605-4.286-8.02h-6v-6c-5.01-3.767-11.246-6-18-6-16.568 0-30 13.432-30 30 0 1.359.113 2.689.289 4h1.425v5.98c1.024 2.903 2.472 5.605 4.286 8.02h6v6c5.01 3.767 11.246 6 18 6 6.76 0 12.985-2.25 18-6.02v-5.977h5.993c1.812-2.411 3.269-5.104 4.293-8v-6h1.44c.175-1.31.274-2.643.274-4 0-1.359-.113-2.689-.289-4"/><g fill="#428bc1"><path d="m3.714 42h56.57c.678-1.918 1.164-3.926 1.44-6h-59.45c.277 2.074.763 4.082 1.441 6"/><path d="M8,50c1.706,2.271,3.728,4.293,6,6h36c2.272-1.707,4.294-3.729,6-6H8z"/><path d="m32 14h24c-1.706-2.271-3.728-4.293-6-6h-18v6"/><path d="m32 28h29.727c-.276-2.074-.763-4.082-1.44-6h-28.29v6"/></g><g fill="#fcd116" stroke="#000" stroke-width=".1" stroke-miterlimit="20"><path d="m16.686 24.793l.039-.094c-.023.038-.045.075-.067.113l-1.353.938c-.777 1.876-.524 2.747-.437 3.431l-.695 1.677c2.655-.868.368-2.472 4.115-5.184l-.912-1.361-.69.48z"/><path d="m15.882 23.268l-.828-.148.094-.039c-.043.011-.086.021-.128.032l-1.62-.293c-1.875.776-2.313 1.571-2.734 2.116l-1.677.694c2.492 1.265 2.01-1.487 6.575-.755l.318-1.607z"/><path d="m14.172 22.289l1.361-.912-.479-.691.094.039c-.039-.022-.076-.045-.113-.067l-.939-1.353c-1.875-.776-2.746-.524-3.43-.437l-1.677-.694c.867 2.655 2.471.367 5.183 4.115z"/><path d="m15.06 19.436l1.607.317.149-.827.039.094c-.01-.044-.021-.086-.032-.129l.292-1.619c-.777-1.876-1.571-2.313-2.117-2.734l-.695-1.677c-1.263 2.491 1.489 2.01.757 6.575z"/><path d="m21.827 13.03c-2.656.869-.368 2.473-4.116 5.185l.912 1.361 2.072-1.438c1.392-3.36-.52-3.495 1.132-5.108z"/><path d="m20.346 20.705l.827.149-.094.039c.043-.011.086-.021.129-.033l1.619.293c1.876-.777 2.313-1.571 2.734-2.117l1.678-.694c-2.492-1.264-2.01 1.487-6.576.756l-.317 1.607z"/><path d="m21.882 21.712l-1.362.912.479.69-.094-.038c.039.022.076.045.113.067l.939 1.353c1.875.776 2.746.523 3.43.437l1.678.694c-.869-2.655-2.472-.367-5.183-4.115z"/><path d="m20.755 24.457l-1.608-.317-.149.827-.039-.094c.011.044.021.086.033.128l-.292 1.62c.777 1.876 1.572 2.313 2.117 2.734l.694 1.677c1.263-2.491-1.489-2.01-.756-6.575z"/><path d="m21.05 23.264l6.95-1.264-6.95-1.264 4.02-5.807-5.806 4.02-1.264-6.95-1.264 6.95-5.807-4.02 4.02 5.807-6.95 1.264 6.95 1.264-4.02 5.806 5.807-4.02 1.264 6.95 1.264-6.95 5.806 4.02z"/><circle cx="18" cy="22" r="3.333"/></g><path d="m20.454 20.667c-.211.242-.333-.182-1.09-.182-.758 0-.879.454-1 .363s.636-.637.879-.666c.242-.03.94.213 1.211.485m-.879.272c.213.182.031.576-.182.576-.212 0-.605-.364-.424-.606"/><path d="m18.576 21.21c.03-.364.333-.425.818-.425.485 0 .697.363.879.455-.212 0-.394-.304-.879-.304-.484 0-.484 0-.818.304m.091.061c.122-.183.273.182.606.182.334 0 .516-.091.728-.242.212-.152-.303.363-.636.363-.335-.001-.789-.182-.698-.303"/><path d="m19.697 21.485c.394-.212.151-.516 0-.576.06.061.303.364 0 .576m-1.697 1.819c.182 0 .243-.061.485-.061s.819.333 1.151.212c-.696.272-.424.091-1.636.091h-.152m1.909.182c-.121-.212-.09-.151-.332-.484.242.181.303.272.332.484m-1.757.302c.757 0 .636-.151 1.636-.575-.727.091-.878.333-1.636.333h-.152m.152-.879c.212 0 .272-.151.515-.151.242 0 .576.091.728.212.029.03-.092-.242-.334-.272-.243-.03-.152-.425-.424-.484 0 .121.091.09.121.272 0 .151-.272.151-.333 0 .061.242-.121.242-.272.242"/><path d="m15.545 20.667c.212.242.333-.182 1.091-.182.758 0 .879.454 1 .363s-.636-.636-.879-.665c-.242-.031-.939.212-1.212.484m.879.272c-.212.182-.03.576.182.576.212 0 .606-.364.424-.606"/><path d="m17.424 21.21c-.03-.364-.333-.425-.818-.425s-.697.363-.878.455c.212 0 .394-.304.878-.304s.485 0 .818.304m-.091.061c-.122-.183-.272.182-.606.182-.333 0-.515-.091-.727-.242-.212-.152.303.363.636.363.334-.001.788-.182.697-.303"/><path d="m16.303 21.485c-.394-.212-.151-.516 0-.576-.06.061-.303.364 0 .576m1.697 1.819c-.182 0-.243-.061-.485-.061s-.818.333-1.151.212c.697.272.424.091 1.636.091h.152m-1.909.182c.121-.212.091-.151.333-.484-.243.181-.304.272-.333.484m1.757.302c-.757 0-.636-.151-1.636-.575.727.091.879.333 1.636.333h.152m-.152-.879c-.212 0-.272-.151-.515-.151-.242 0-.576.091-.728.212-.03.03.091-.242.333-.272.243-.03.152-.425.424-.484 0 .121-.091.09-.121.272 0 .151.272.151.333 0-.061.242.121.242.272.242"/><path d="m18 24.303c-.152 0-.545.092 0 .092s.152-.092 0-.092"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.7 28h-1.4v-6c-1-2.9-2.5-5.6-4.3-8h-6v-6c-5-3.8-11.2-6-18-6-16.6 0-30 13.4-30 30 0 1.4.1 2.7.3 4h1.4v6c1 2.9 2.5 5.6 4.3 8h6v6c5 3.8 11.2 6 18 6 6.8 0 13-2.2 18-6v-6h6c1.8-2.4 3.3-5.1 4.3-8v-6h1.4c.2-1.3.3-2.6.3-4 0-1.4-.1-2.7-.3-4" fill="#f9f9f9"/><g fill="#428bc1"><path d="m3.7 42h56.6c.7-1.9 1.2-3.9 1.4-6h-59.4c.2 2.1.7 4.1 1.4 6"/><path d="M8,50c1.7,2.3,3.7,4.3,6,6h36c2.3-1.7,4.3-3.7,6-6H8z"/><path d="m32 14h24c-1.7-2.3-3.7-4.3-6-6h-18v6"/><path d="m32 28h29.7c-.3-2.1-.8-4.1-1.4-6h-28.3v6"/></g><g fill="#fcd116" stroke="#000" stroke-width=".1" stroke-miterlimit="20"><path d="m16.7 24.8c0-.1 0 0 0 0l-1.4 1c-.8 1.9-.5 2.7-.4 3.4l-.7 1.7c2.7-.9.4-2.5 4.1-5.2l-.9-1.4-.7.5z"/><path d="m15.9 23.3l-.8-.1h.1c0 0-.1 0-.1 0l-1.6-.3c-1.9.8-2.3 1.6-2.7 2.1l-1.8.6c2.5 1.3 2-1.5 6.6-.8l.3-1.5z"/><path d="m14.2 22.3l1.4-.9-.5-.7h.1c0 0-.1 0-.1-.1l-.9-1.4c-1.9-.8-2.7-.5-3.4-.4l-1.8-.6c.9 2.6 2.5.3 5.2 4.1z"/><path d="m15.1 19.4l1.6.3.1-.8v.1c0 0 0-.1 0-.1l.3-1.6c-.8-1.9-1.6-2.3-2.1-2.7l-.7-1.7c-1.3 2.5 1.5 2 .8 6.5z"/><path d="m21.8 13c-2.7.9-.4 2.5-4.1 5.2l.9 1.4 2.1-1.4c1.4-3.4-.5-3.6 1.1-5.2z"/><path d="m20.3 20.7l.8.1h-.1c0 0 .1 0 .1 0l1.6.3c1.9-.8 2.3-1.6 2.7-2.1l1.7-.7c-2.5-1.3-2 1.5-6.6.8l-.2 1.6z"/><path d="m21.9 21.7l-1.4.9.5.7h-.1c0 0 .1 0 .1.1l.9 1.4c1.9.8 2.7.5 3.4.4l1.7.7c-.8-2.7-2.4-.4-5.1-4.2z"/><path d="m20.8 24.5l-1.6-.3-.2.8v-.1c0 0 0 .1 0 .1l-.3 1.6c.8 1.9 1.6 2.3 2.1 2.7l.7 1.7c1.3-2.5-1.5-2-.7-6.5z"/><path d="m21 23.3l7-1.3-7-1.3 4.1-5.8-5.8 4.1-1.3-7-1.3 7-5.8-4.1 4 5.8-6.9 1.3 6.9 1.3-4 5.8 5.8-4 1.3 6.9 1.3-6.9 5.8 4z"/><circle cx="18" cy="22" r="3.3"/></g><path d="m20.5 20.7c-.2.2-.3-.2-1.1-.2-.8 0-.9.5-1 .4s.6-.6.9-.7c.2 0 .9.2 1.2.5m-.9.2c.2.2 0 .6-.2.6-.2 0-.6-.4-.4-.6"/><path d="m18.6 21.2c0-.4.3-.4.8-.4s.7.4.9.5c-.2 0-.4-.3-.9-.3-.5-.1-.5-.1-.8.2m.1.1c.1-.2.3.2.6.2.3 0 .5-.1.7-.2.2-.2-.3.4-.6.4-.4-.1-.8-.3-.7-.4"/><path d="m19.7 21.5c.4-.2.2-.5 0-.6.1.1.3.4 0 .6m-1.7 1.8c.2 0 .2-.1.5-.1s.8.3 1.2.2c-.7.3-.4.1-1.6.1h-.2m1.9.2c-.1-.2-.1-.2-.3-.5.2.2.2.3.3.5m-1.8.3c.8 0 .6-.2 1.6-.6-.7.1-.9.3-1.6.3h-.2m.2-.8c.2 0 .3-.2.5-.2.2 0 .6.1.7.2 0 0-.1-.2-.3-.3-.2 0-.2-.4-.4-.5 0 .1.1.1.1.3 0 .2-.3.2-.3 0 .1.2-.1.2-.3.2"/><path d="m15.5 20.7c.2.2.3-.2 1.1-.2s.9.5 1 .4-.6-.6-.9-.7c-.2 0-.9.2-1.2.5m.9.2c-.2.2 0 .6.2.6s.6-.4.4-.6"/><path d="m17.4 21.2c0-.4-.3-.4-.8-.4s-.7.4-.9.5c.2 0 .4-.3.9-.3s.5-.1.8.2m-.1.1c-.1-.2-.3.2-.6.2-.3 0-.5-.1-.7-.2-.2-.2.3.4.6.4.4-.1.8-.3.7-.4"/><path d="m16.3 21.5c-.4-.2-.2-.5 0-.6-.1.1-.3.4 0 .6m1.7 1.8c-.2 0-.2-.1-.5-.1s-.8.3-1.2.2c.7.3.4.1 1.6.1h.2m-1.9.2c.1-.2.1-.2.3-.5-.2.2-.2.3-.3.5m1.8.3c-.8 0-.6-.2-1.6-.6.7.1.9.3 1.6.3h.2m-.2-.8c-.2 0-.3-.2-.5-.2-.2 0-.6.1-.7.2 0 0 .1-.2.3-.3.2 0 .2-.4.4-.5 0 .1-.1.1-.1.3 0 .2.3.2.3 0-.1.2.1.2.3.2"/><path d="m18 24.3c-.2 0-.5.1 0 0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ff.svg
index de0a636..a6bb6cb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa-1f1ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M32,2C19.32,2,8.502,9.88,4.111,21h55.777C55.498,9.88,44.68,2,32,2z"/><path fill="#83bf4f" d="M32,62c12.68,0,23.498-7.88,27.889-19H4.111C8.502,54.12,19.32,62,32,62z"/><path fill="#fff" d="m62 32c0-3.138-.489-6.158-1.383-9h-57.23c-.894 2.842-1.383 5.862-1.383 9s.489 6.158 1.383 9h57.23c.894-2.842 1.383-5.862 1.383-9"/><g fill="#c94747"><path d="m59.889 21c.131.334.277.66.397 1 .116.33.225.665.331 1"/><path d="m60.29 22c-.12-.34-.267-.666-.397-1h-55.778c-.131.334-.277.66-.397 1-.117.33-.225.665-.331 1h57.23c-.106-.335-.215-.67-.331-1"/><path d="m3.714 42c.12.34.266.666.397 1h55.777c.131-.334.277-.66.397-1 .116-.33.225-.665.331-1h-57.23c.106.335.214.67.331 1"/></g><g fill="#fff"><path d="m20.41 17.285c-2.361 0-4.275-1.918-4.275-4.285 0-2.366 1.914-4.285 4.275-4.285.563 0 1.098.111 1.59.309-.839-.64-1.88-1.024-3.02-1.024-2.752 0-4.984 2.238-4.984 5s2.232 5 4.984 5c1.136 0 2.177-.384 3.02-1.023-.492.197-1.027.308-1.59.308"/><path d="m24.731 15.203l.349 1.068h1.13l-.915.661.35 1.068-.914-.66-.914.66.353-1.068-.92-.661h1.133z"/><path d="m28.992 15.203l.349 1.068h1.128l-.912.661.348 1.068-.913-.66-.912.66.348-1.068-.914-.661h1.129z"/><path d="m33.25 15.203l.352 1.068h1.128l-.913.661.353 1.068-.92-.66-.91.66.348-1.068-.913-.661h1.129z"/><path d="m37.514 15.203l.349 1.068h1.129l-.912.661.347 1.068-.913-.66-.913.66.348-1.068-.909-.661h1.12z"/><path d="m41.775 15.203l.345 1.068h1.13l-.91.661.348 1.068-.913-.66-.913.66.348-1.068-.91-.661h1.13z"/><path d="m28.992 11.602l.349 1.068h1.128l-.912.66.348 1.068-.913-.66-.912.66.348-1.068-.914-.66h1.129z"/><path d="m33.25 11.602l.352 1.068h1.128l-.913.66.353 1.068-.92-.66-.91.66.348-1.068-.913-.66h1.129z"/><path d="m37.514 11.602l.349 1.068h1.129l-.912.66.347 1.068-.913-.66-.913.66.348-1.068-.909-.66h1.12z"/><path d="m41.775 11.602l.345 1.068h1.13l-.91.66.348 1.068-.913-.66-.913.66.348-1.068-.91-.66h1.13z"/><path d="m33.25 8l.352 1.07h1.128l-.913.659.353 1.066-.92-.659-.91.659.348-1.066-.913-.659h1.129z"/><path d="m37.514 8l.349 1.07h1.129l-.912.659.347 1.066-.913-.659-.913.659.348-1.066-.909-.659h1.12z"/><path d="m41.775 8l.345 1.07h1.13l-.91.659.348 1.066-.913-.659-.913.659.348-1.066-.91-.659h1.13z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C19.3,2,8.5,9.9,4.1,21h55.8C55.5,9.9,44.7,2,32,2z" fill="#42ade2"/><path d="M32,62c12.7,0,23.5-7.9,27.9-19H4.1C8.5,54.1,19.3,62,32,62z" fill="#83bf4f"/><path d="m62 32c0-3.1-.5-6.2-1.4-9h-57.2c-.9 2.8-1.4 5.9-1.4 9s.5 6.2 1.4 9h57.2c.9-2.8 1.4-5.9 1.4-9" fill="#fff"/><g fill="#c94747"><path d="m59.9 21c.1.3.3.7.4 1 .1.3.2.7.3 1"/><path d="m60.3 22c-.1-.3-.3-.7-.4-1h-55.8c-.1.3-.3.7-.4 1-.1.3-.2.7-.3 1h57.2c-.1-.3-.2-.7-.3-1"/><path d="m3.7 42c.1.3.3.7.4 1h55.8c.1-.3.3-.7.4-1 .1-.3.2-.7.3-1h-57.2c.1.3.2.7.3 1"/></g><g fill="#fff"><path d="m20.4 17.3c-2.4 0-4.3-1.9-4.3-4.3 0-2.4 1.9-4.3 4.3-4.3.6 0 1.1.1 1.6.3-.8-.6-1.9-1-3-1-2.8 0-5 2.2-5 5s2.2 5 5 5c1.1 0 2.2-.4 3-1-.5.2-1 .3-1.6.3"/><path d="m24.7 15.2l.4 1.1h1.1l-.9.6.3 1.1-.9-.7-.9.7.4-1.1-.9-.6h1.1z"/><path d="m29 15.2l.3 1.1h1.2l-.9.6.3 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.1z"/><path d="m33.3 15.2l.3 1.1h1.1l-.9.6.4 1.1-.9-.7-1 .7.4-1.1-.9-.6h1.1z"/><path d="m37.5 15.2l.4 1.1h1.1l-.9.6.3 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.2z"/><path d="m41.8 15.2l.3 1.1h1.2l-1 .6.4 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.1z"/><path d="m29 11.6l.3 1.1h1.2l-.9.6.3 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.1z"/><path d="m33.3 11.6l.3 1.1h1.1l-.9.6.4 1.1-.9-.7-1 .7.4-1.1-.9-.6h1.1z"/><path d="m37.5 11.6l.4 1.1h1.1l-.9.6.3 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.2z"/><path d="m41.8 11.6l.3 1.1h1.2l-1 .6.4 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.1z"/><path d="m33.3 8l.3 1.1h1.1l-.9.6.4 1.1-.9-.7-1 .7.4-1.1-.9-.6h1.1z"/><path d="m37.5 8l.4 1.1h1.1l-.9.6.3 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.2z"/><path d="m41.8 8l.3 1.1h1.2l-1 .6.4 1.1-.9-.7-.9.7.3-1.1-.9-.6h1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fa.svg
new file mode 100644
index 0000000..9966d13
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fa.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m20.4 17.1h6.2v17.8c0 2 .2 3.4.7 4.4.7 1.6 2.3 2.4 4.8 2.4 2.4 0 4-.8 4.8-2.4.5-.9.7-2.4.7-4.4v-17.8h6.2v17.9c0 3.1-.5 5.5-1.4 7.2-1.8 3.1-5.2 4.7-10.2 4.7-5 0-8.4-1.6-10.2-4.7-1-1.7-1.4-4.1-1.4-7.2l-.2-17.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e6.svg
index 9eebada..d0078ef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f9f9f9" d="m62 32c0-16.568-13.432-30-30-30v60c16.568 0 30-13.432 30-30"/><path fill="#ffe62e" d="M2,32c0,16.568,13.432,30,30,30V2C15.432,2,2,15.432,2,32z"/><path fill="#fff" d="m49 21.328c0 2.943 0 3.807-3 3.807s-3-.863-3-3.807c0-2.941 1.343-5.328 3-5.328 1.656 0 3 2.387 3 5.328"/><g fill="#dbb471"><path d="m47.5 17.791l-1.5-1.208-1.5 1.208-1.5-1.208.539 2.417h4.921l.54-2.417z"/><path d="m47.5 20.609l-1.5-1.391-1.5 1.391-1.5-1.391v2.782h6v-2.782z"/><path d="m47.5 23.5l-1.5-1.5-1.5 1.5-1.5-1.5v3h6v-3z"/><ellipse cx="46" cy="15.13" rx=".5" ry="1.458"/></g><g fill="#fff"><ellipse cx="46" cy="25" rx="3" ry=".681"/><path d="m41.925 32.6c-1.404 0-2.462-2.064-2.616-2.774-.209-.963.281-2.01.801-3.123.255-.546.729-1.562.659-1.86-.121-.353-1.224-1.464-2.31-2.32l1.238-1.57c.815.643 2.741 2.264 3.02 3.43.231.975-.266 2.04-.793 3.167-.271.58-.724 1.55-.657 1.854.056.258.419.848.687 1.113.511-.544 1.294-2.919 1.674-5.259l1.975.32c-.402 2.478-1.386 6.682-3.449 7.01-.078.01-.152.016-.226.016"/><path d="m50.08 32.6c-.074 0-.149-.006-.225-.018-2.063-.324-3.047-4.528-3.449-7.01l1.975-.32c.375 2.305 1.141 4.642 1.689 5.243.266-.272.616-.845.671-1.098.066-.304-.387-1.273-.657-1.854-.527-1.127-1.024-2.192-.793-3.167.275-1.166 2.201-2.787 3.02-3.43l1.238 1.57c-1.105.873-2.187 1.963-2.313 2.333-.066.286.407 1.302.662 1.848.52 1.111 1.01 2.16.801 3.123-.154.711-1.212 2.776-2.616 2.776"/></g><path fill="#dbb471" d="m41.525 36.572c-1.407-.9-3.242-.707-4.451.607-1.432 1.559-1.432 4.09 0 5.648 1.434 1.561 3.757 1.561 5.192 0 1.208-1.313 1.385-3.311.557-4.844l9.582-10.162 1.297 1.412 1.298-1.409-2.595-2.824-10.88 11.572"/><path fill="#fff" d="m40.26 39.41c.324-.324.324-.848 0-1.172s-.848-.324-1.173 0c-.321.324-.321.848 0 1.172-.321-.324-.847-.324-1.17 0-.324.322-.324.848 0 1.172.323.322.849.322 1.17 0-.321.322-.321.846 0 1.17.325.324.849.324 1.173 0s.324-.848 0-1.17c.324.322.848.322 1.172 0 .323-.324.323-.85 0-1.172-.324-.324-.848-.324-1.172 0"/><path fill="#d0d0d0" d="m50.48 36.572c1.407-.9 3.242-.707 4.451.607 1.432 1.559 1.432 4.09 0 5.648-1.434 1.561-3.757 1.561-5.192 0-1.208-1.313-1.385-3.311-.557-4.844l-9.582-10.162-1.297 1.412-1.298-1.409 2.595-2.824 10.88 11.572"/><path fill="#fff" d="m51.744 39.42c-.324-.322-.324-.848 0-1.17.324-.324.848-.324 1.173 0 .321.322.321.848 0 1.17.321-.322.847-.322 1.17 0 .324.324.324.848 0 1.172-.323.324-.849.324-1.17 0 .321.324.321.848 0 1.172-.325.324-.849.324-1.173 0s-.324-.848 0-1.172c-.324.324-.848.324-1.172 0-.323-.324-.323-.848 0-1.172.324-.322.848-.322 1.172 0"/><g fill="#ed4c5c"><path d="m50.41 39.758c-2.919.43-5.907.428-8.826 0-.59-.086-.841.564-.249.652 3.088.451 6.236.453 9.324 0 .592-.088.341-.738-.249-.652"/><path d="m50.3 39.23c-1.784-1.327-3.376-2.921-4.704-4.705-.269-.36-.75-.147-.481.215 1.406 1.887 3.083 3.566 4.971 4.971.362.268.574-.213.214-.481"/><path d="m46.4 34.523c-1.326 1.784-2.92 3.376-4.705 4.704-.359.269-.146.75.215.481 1.887-1.406 3.566-3.083 4.971-4.971.269-.362-.211-.574-.481-.214"/><path d="m45.5 31h1v13h-1z"/><path transform="matrix(-.7071.7071-.7071-.7071 101.04 26.644)" d="m44.5 32.569h1v3.356h-1z"/><path transform="matrix(.7071.7071-.7071.7071 37.982-23.2)" d="m46.5 32.569h1v3.356h-1z"/></g><g fill="#ff717f"><path d="m45.54 42.713c-.552 0-1 .447-1 1v3h2v-3c0-.553-.448-1-1-1"/><path d="m46.54 41.776c-.552 0-1 .447-1 1v3h2v-3c0-.552-.448-1-1-1"/></g><g fill="#94989b"><circle cx="42.554" cy="37.12" r="1.21"/><circle cx="36.785" cy="42.883" r="1.211"/><circle cx="36.786" cy="37.12" r="1.21"/><circle cx="42.554" cy="42.883" r="1.211"/></g><g fill="#dbb471"><circle cx="55.21" cy="37.12" r="1.21"/><circle cx="49.44" cy="42.889" r="1.211"/><circle cx="49.45" cy="37.12" r="1.21"/><circle cx="55.21" cy="42.889" r="1.211"/><path d="m38.14 20.93h1.969v2.182h-1.969z"/><path d="m51.891 20.93h1.969v2.182h-1.969z"/><path transform="matrix(.9645.2641-.2641.9645 8.851-10.681)" d="m43.849 26.442h.618v2.281h-.618z"/><path transform="matrix(.9642.2652-.2652.9642 8.822-10.755)" d="m43.45 26.989h1.576v.605h-1.576z"/><path transform="matrix(-.9645.2641-.2641-.9645 101.27 41.553)" d="m47.533 26.442h.618v2.281h-.618z"/><path transform="matrix(-.9642.2652-.2652-.9642 101.05 40.939)" d="m46.974 26.989h1.576v.605h-1.576z"/></g><g fill="#fff"><path d="m52.5 28.1l-1.718 1.457-1.129-3.036 1.767-.916z"/><path d="m39.497 28.1l1.723 1.457 1.13-3.036-1.773-.916z"/></g><g fill="#dbb471"><path d="m41.501 26.454l-.565-.163-.135.517-.441-.127-.15.579.439.131-.289 1.099.568.163.282-1.098.442.127.153-.582-.435-.128z"/><path d="m51.789 27.26l-.152-.579-.437.127-.14-.517-.56.163.134.518-.434.128.15.582.436-.127.284 1.098.567-.163-.287-1.099z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0-16.6-13.4-30-30-30v60c16.6 0 30-13.4 30-30" fill="#f9f9f9"/><path d="M2,32c0,16.6,13.4,30,30,30V2C15.4,2,2,15.4,2,32z" fill="#ffe62e"/><path d="m49 21.3c0 2.9 0 3.8-3 3.8s-3-.9-3-3.8c0-2.9 1.3-5.3 3-5.3 1.7 0 3 2.4 3 5.3" fill="#fff"/><g fill="#dbb471"><path d="m47.5 17.8l-1.5-1.2-1.5 1.2-1.5-1.2.5 2.4h5l.5-2.4z"/><path d="m47.5 20.6l-1.5-1.4-1.5 1.4-1.5-1.4v2.8h6v-2.8z"/><path d="m47.5 23.5l-1.5-1.5-1.5 1.5-1.5-1.5v3h6v-3z"/><ellipse cx="46" cy="15.1" rx=".5" ry="1.5"/></g><g fill="#fff"><ellipse cx="46" cy="25" rx="3" ry=".7"/><path d="m41.9 32.6c-1.4 0-2.5-2.1-2.6-2.8-.2-1 .3-2 .8-3.1.3-.5.7-1.6.7-1.9-.1-.4-1.2-1.5-2.3-2.3l1.2-1.6c.8.6 2.7 2.3 3 3.4.2 1-.3 2-.8 3.2-.3.6-.7 1.5-.7 1.9.1.3.4.8.7 1.1.5-.5 1.3-2.9 1.7-5.3l2 .3c-.4 2.5-1.4 6.7-3.4 7-.1.1-.2.1-.3.1"/><path d="m50.1 32.6c-.1 0-.1 0-.2 0-2.1-.3-3-4.5-3.4-7l2-.3c.4 2.3 1.1 4.6 1.7 5.2.3-.3.6-.8.7-1.1.1-.3-.4-1.3-.7-1.9-.5-1.1-1-2.2-.8-3.2.3-1.2 2.2-2.8 3-3.4l1.2 1.6c-1.1.9-2.2 2-2.3 2.3-.1.3.4 1.3.7 1.8.5 1.1 1 2.2.8 3.1-.3.8-1.3 2.9-2.7 2.9"/></g><path d="m41.5 36.6c-1.4-.9-3.2-.7-4.5.6-1.4 1.6-1.4 4.1 0 5.6 1.4 1.6 3.8 1.6 5.2 0 1.2-1.3 1.4-3.3.6-4.8l9.6-10.2 1.3 1.4 1.3-1.4-2.6-2.8-10.9 11.6" fill="#dbb471"/><path d="m40.3 39.4c.3-.3.3-.8 0-1.2s-.8-.3-1.2 0c-.3.3-.3.8 0 1.2-.3-.3-.8-.3-1.2 0-.3.3-.3.8 0 1.2.3.3.8.3 1.2 0-.3.3-.3.8 0 1.2.3.3.8.3 1.2 0s.3-.8 0-1.2c.3.3.8.3 1.2 0 .3-.3.3-.8 0-1.2-.4-.3-.9-.3-1.2 0" fill="#fff"/><path d="m50.5 36.6c1.4-.9 3.2-.7 4.5.6 1.4 1.6 1.4 4.1 0 5.6-1.4 1.6-3.8 1.6-5.2 0-1.2-1.3-1.4-3.3-.6-4.8l-9.6-10.2-1.3 1.4-1.3-1.4 2.6-2.8 10.9 11.6" fill="#d0d0d0"/><path d="m51.7 39.4c-.3-.3-.3-.8 0-1.2.3-.3.8-.3 1.2 0 .3.3.3.8 0 1.2.3-.3.8-.3 1.2 0 .3.3.3.8 0 1.2-.3.3-.8.3-1.2 0 .3.3.3.8 0 1.2-.3.3-.8.3-1.2 0s-.3-.8 0-1.2c-.3.3-.8.3-1.2 0-.3-.3-.3-.8 0-1.2.4-.3.9-.3 1.2 0" fill="#fff"/><g fill="#ed4c5c"><path d="m50.4 39.8c-2.9.4-5.9.4-8.8 0-.6-.1-.8.6-.2.7 3.1.5 6.2.5 9.3 0 .6-.2.3-.8-.3-.7"/><path d="m50.3 39.2c-1.8-1.3-3.4-2.9-4.7-4.7-.3-.4-.8-.1-.5.2 1.4 1.9 3.1 3.6 5 5 .3.3.6-.2.2-.5"/><path d="m46.4 34.5c-1.3 1.8-2.9 3.4-4.7 4.7-.4.3-.1.8.2.5 1.9-1.4 3.6-3.1 5-5 .3-.3-.2-.5-.5-.2"/><path d="m45.5 31h1v13h-1z"/><path transform="matrix(.7071-.7071.7071.7071-11.036 41.8509)" d="m44.5 32.6h1v3.4h-1z"/><path transform="matrix(.7071-.7071.7071.7071-10.4499 43.2645)" d="m45.3 33.7h3.4v1h-3.4z"/></g><g fill="#ff717f"><path d="m45.5 42.7c-.6 0-1 .4-1 1v3h2v-3c0-.5-.4-1-1-1"/><path d="m46.5 41.8c-.6 0-1 .4-1 1v3h2v-3c0-.6-.4-1-1-1"/></g><g fill="#94989b"><circle cx="42.6" cy="37.1" r="1.2"/><circle cx="36.8" cy="42.9" r="1.2"/><circle cx="36.8" cy="37.1" r="1.2"/><circle cx="42.6" cy="42.9" r="1.2"/></g><g fill="#dbb471"><circle cx="55.2" cy="37.1" r="1.2"/><circle cx="49.4" cy="42.9" r="1.2"/><circle cx="49.4" cy="37.1" r="1.2"/><circle cx="55.2" cy="42.9" r="1.2"/><path d="m38.1 20.9h2v2.2h-2z"/><path d="m51.9 20.9h2v2.2h-2z"/><path transform="matrix(.2641-.9645.9645.2641 5.8898 62.8879)" d="m43 27.3h2.3v.6h-2.3z"/><path transform="matrix(.2652-.9642.9642.2652 6.1929 62.7084)" d="m43.9 26.5h.6v1.6h-.6z"/><path transform="matrix(.9645-.2641.2641.9645-5.5866 13.6141)" d="m47.5 26.4h.6v2.3h-.6z"/><path transform="matrix(.9642-.2652.2652.9642-5.5273 13.6434)" d="m47 27h1.6v.6h-1.6z"/></g><g fill="#fff"><path d="m52.5 28.1l-1.7 1.5-1.1-3.1 1.7-.9z"/><path d="m39.5 28.1l1.7 1.5 1.1-3.1-1.7-.9z"/></g><g fill="#dbb471"><path d="m41.5 26.5l-.6-.2-.1.5-.4-.1-.2.6.4.1-.2 1.1.5.2.3-1.1.5.1.1-.6-.4-.1z"/><path d="m51.8 27.3l-.2-.6-.4.1-.1-.5-.6.2.1.5-.4.1.1.6.5-.1.3 1.1.5-.2-.2-1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e8.svg
index f3aaa1a..5cafb43 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1e8.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="M32,62c5.885,0,11.368-1.701,16-4.628V6.628C43.368,3.701,37.885,2,32,2c-5.884,0-11.368,1.701-16,4.628
- v50.744C20.632,60.299,26.116,62,32,62z"/><path fill="#2a5f9e" d="M16,6.628C7.59,11.943,2,21.316,2,32s5.59,20.057,14,25.372V6.628z"/><g fill="#699635"><path d="m48 57.37c8.41-5.315 14-14.688 14-25.372s-5.59-20.06-14-25.372v50.744"/><path d="m24.772 17.92l-6.02 10.35 6.02 10.353 6.02-10.353z"/><path d="m39.23 17.92l-6.03 10.35 6.03 10.353 6.02-10.353z"/><path d="M25.978 41.729 32 52.08 38.02 41.729 32 31.377z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 62c5.9 0 11.4-1.7 16-4.6v-50.8c-4.6-2.9-10.1-4.6-16-4.6-5.9 0-11.4 1.7-16 4.6v50.7c4.6 3 10.1 4.7 16 4.7" fill="#ffe62e"/><path d="M16,6.6C7.6,11.9,2,21.3,2,32s5.6,20.1,14,25.4V6.6z" fill="#2a5f9e"/><g fill="#699635"><path d="m48 57.4c8.4-5.3 14-14.7 14-25.4s-5.6-20.1-14-25.4v50.8"/><path d="m24.8 17.9l-6 10.4 6 10.3 6-10.3z"/><path d="m39.2 17.9l-6 10.4 6 10.3 6-10.3z"/><path d="m26 41.7l6 10.4 6-10.4-6-10.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ea.svg
index d86ac35..8274ed0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ea.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="M32,2C18.939,2,7.833,10.35,3.714,22h56.572C56.167,10.35,45.061,2,32,2z"/><path fill="#ed4c5c" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.225 20 28.29 20"/><path fill="#2a5f9e" d="M3.714,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.714,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.714-10H3.714z"/><g fill="#fff"><path d="m34.558 27.15l1.041 1.05-.2-1.462 1.349-.648-1.478-.26-.2-1.455-.72 1.299-1.474-.243 1.034 1.056-.71 1.304z"/><path d="m29.17 27.18l1.369.627-.747-1.296 1-1.068-1.468.26-.755-1.292-.16 1.458-1.468.271 1.369.639-.151 1.461z"/><path d="m24.17 29.03l1.516.12-1.194-.96.518-1.335-1.263.741-1.199-.953.411 1.417-1.259.751 1.52.134.42 1.418z"/><path d="m20.234 32.45l1.464-.4-1.488-.49-.03-1.43-.887 1.12-1.481-.482.929 1.186-.88 1.126 1.462-.387.94 1.185z"/><path d="m17.901 36.981l1.209-.861-1.568.04-.582-1.328-.396 1.348-1.564.05 1.322.79-.384 1.36 1.212-.862 1.329.792z"/><path d="m46.12 36.823l-.533 1.337 1.305-.81 1.238.84-.425-1.342 1.295-.808-1.56-.03-.442-1.348-.538 1.331-1.57-.019z"/><path d="m43.648 32.32l.018 1.428.9-1.197 1.474.373-.91-1.117.89-1.198-1.466.501-.925-1.11.012 1.429-1.471.51z"/><path d="m39.611 28.939l.569 1.331.373-1.422 1.517-.152-1.281-.737.371-1.418-1.17.964-1.288-.726.558 1.331-1.16.98z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#ffe62e"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#ed4c5c"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#2a5f9e"/><g fill="#fff"><path d="m34.6 27.1l1 1.1-.2-1.5 1.3-.6-1.4-.3-.2-1.4-.7 1.3-1.5-.3 1 1.1-.7 1.3z"/><path d="m29.2 27.2l1.3.6-.7-1.3 1-1.1-1.5.3-.7-1.3-.2 1.5-1.5.2 1.4.7-.1 1.4z"/><path d="m24.2 29l1.5.2-1.2-1 .5-1.3-1.3.7-1.2-1 .5 1.5-1.3.7 1.5.1.4 1.5z"/><path d="m20.2 32.5l1.5-.4-1.5-.5v-1.5l-.9 1.2-1.5-.5.9 1.2-.8 1.1 1.4-.4 1 1.2z"/><path d="m17.9 37l1.2-.9-1.6.1-.5-1.4-.4 1.4h-1.6l1.3.8-.4 1.4 1.2-.9 1.4.8z"/><path d="m46.1 36.8l-.5 1.4 1.3-.9 1.2.9-.4-1.4 1.3-.8h-1.6l-.4-1.3-.5 1.3h-1.6z"/><path d="m43.6 32.3l.1 1.4.9-1.1 1.4.3-.9-1.1.9-1.2-1.4.5-1-1.1v1.4l-1.4.5z"/><path d="m39.6 28.9l.6 1.4.4-1.5 1.5-.1-1.3-.7.4-1.5-1.2 1-1.3-.7.6 1.3-1.2 1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ec.svg
index 8e50520..e5afefc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="7" gradientUnits="userSpaceOnUse" x1="-1893.11" x2="-1892.11" gradientTransform="matrix(-.5685-.4287.1896-1.2856-924.06-1484.82)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="-1892.66" x2="-1891.66" gradientTransform="matrix(-.5688-.4289.1897-1.2862-924.24-1472.89)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="8" gradientUnits="userSpaceOnUse" x1="-1890.34" x2="-1889.34" gradientTransform="matrix(-.5702-.43.1901-1.2894-925.3-1486.58)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="A" gradientUnits="userSpaceOnUse" x1="-1890.8" x2="-1889.8" gradientTransform="matrix(-.5699-.4298.1901-1.2888-925-1479.42)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="9" gradientUnits="userSpaceOnUse" x1="-1887.19" x2="-1886.19" gradientTransform="matrix(-.5722-.4314.1908-1.2938-926.4-1489.11)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="6" gradientUnits="userSpaceOnUse" x1="-1889.04" x2="-1888.04" gradientTransform="matrix(-.571-.4306.1904-1.2913-925.58-1495.31)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="-1890.49" x2="-1889.49" gradientTransform="matrix(-.5701-.4299.1901-1.2892-936.37-1492.74)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="5" gradientUnits="userSpaceOnUse" x1="-1891.4" x2="-1890.4" gradientTransform="matrix(-.5696-.4295.1899-1.288-936.31-1475.19)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="1" gradientUnits="userSpaceOnUse" x1="-1892.15" x2="-1891.16" gradientTransform="matrix(-.5691-.4291.1898-1.2869-935.77-1486.53)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="3" gradientUnits="userSpaceOnUse" x1="-1890.85" x2="-1889.85" gradientTransform="matrix(-.5699-.4297.19-1.2887-934.24-1482.3)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="4" gradientUnits="userSpaceOnUse" x1="-1890.89" x2="-1889.89" gradientTransform="matrix(-.5699-.4297.19-1.2887-936.57-1479.4)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="2" gradientUnits="userSpaceOnUse" x1="-1889.49" x2="-1888.49" gradientTransform="matrix(-.5707-.4304.1903-1.2906-936.86-1488.17)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient></defs><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.568,13.432,30,30,30c16.569,0,30-13.432,30-30S48.568,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.912 8.139v5.861h-7.312l14.4 18h6v-7.5z"/><path d="M11,18.912H5.012C3.088,22.869,2,27.305,2,32h12V13.912h-3V18.912z"/></g><path fill="#ed4c5c" d="m32 27.06l-13-16.06h-6l17 21h2z"/><path fill="#fff" d="M18.912,5.012V11H11v3h21V2C27.306,2,22.869,3.088,18.912,5.012z"/><path fill="#ed4c5c" d="M32,5H18.912C12.857,7.939,7.941,12.857,5,18.912V32h6V11h21V5z"/><g fill="#d8a322"><path d="m34.541 33.848l-.002.007.002-.007"/><path d="m34.537 33.86l-.037.079.037-.079"/><path d="m34.539 33.854l-.002.006.002-.006"/></g><path fill="#fff" d="m35.05 22.15l19.475-.073-.037 17.343c0 0 .688 2.637-8.166 6.646 3.18-.324 6.648-3.721 6.648-3.721s1.41-1.807 2.096-.795c.686 1.01 1.336 1.518 1.842 1.914.506.398.904 1.481.145 2.277-.758.794-1.951.903-2.275-.073-.506.254-3.613 4.01-9.971 4.191-6.469-.109-10.01-4.228-10.01-4.228s-.869 1.373-2.096.29c-1.193-1.409-.289-2.313-.289-2.313s1.01-.578 1.301-.977c.469-.541.613-1.264 1.41-1.264.938.071 1.299.831 1.299.831s3.252 3.432 6.756 3.865c-7.912-3.793-8.201-6.143-8.164-6.72l.034-17.193"/><path fill="#006129" d="m35.52 22.621l18.568-.109v16.691c.037 2.168-3.611 4.372-9.32 7.19-5.889-3.035-9.285-4.878-9.322-7.227l.074-16.545"/><path fill="url(#0)" d="m37.639 25.09l.252-.62-.366-1.073-.235 1.693z"/><path fill="url(#1)" d="m37.578 28.3l.252-.617-.363-1.073-.237 1.69z"/><path fill="url(#2)" d="m37.553 31.466l.254-.619-.366-1.071-.241 1.69z"/><path fill="url(#3)" d="m39.633 34.895l.252-.625-.365-1.07-.24 1.695z"/><path fill="url(#4)" d="m37.28 37.699l.255-.619-.365-1.07-.234 1.689z"/><path fill="url(#5)" d="m37.35 41.01l.248-.61-.368-1.08-.234 1.69z"/><path fill="url(#6)" d="m49.01 25.14l.26-.618-.37-1.072-.234 1.69z"/><path fill="url(#7)" d="m48.91 28.29l.25-.615-.363-1.071-.234 1.686z"/><path fill="url(#8)" d="m48.77 31.518l.25-.62-.362-1.072-.238 1.692z"/><path fill="url(#9)" d="m48.928 34.688l.252-.618-.366-1.073-.234 1.691z"/><path fill="url(#A)" d="m48.893 37.858l.257-.618-.371-1.07-.234 1.688z"/><path fill="url(#B)" d="m48.91 41.05l.25-.62-.363-1.07-.234 1.69z"/><g fill="#ffc6b5"><path d="m44.33 24.412c.113.376-.299.638-.271.813.047.257.123.803.451.916.602.206.129.81-.082 1.264.633-.065 1.264-.13 1.896-.195-.578-.926-.496-1.551-.535-2.649-.027-.707-1.551-.933-1.459-.149"/><path d="m43.982 27.22c-.764.413-.723 1.648-.822 2.398-.072.56-1.029 1.316-1.34 1.828-.354.583-.904 1.022-.898 1.736.01 1.244.59.575.863-.133.197-.512-.275-.643.275-1.047.5-.366 1.359-.838 1.639-1.42.401-.835.203-2.426.283-3.362"/></g><path fill="#fff" d="m44.684 26.643c.402.794.813-.048 1.295-.05.504-.002.758.387 1.051.771.475.62-.234.521-.475 1-.273.547.314 1.373-.014 1.753-.275.321-.047 1.807-.057 2.349-.014.845.037 1.41.209 2.187.402 1.801.742 3.331 1.223 4.989.131.448-.047.921.059 1.302.125.448.457.91-.213.934-.291.011-.258.158-.525.147-.215-.007-.441-.047-.656-.036.205-.011-.902.37-.65.111-.152.151.141.608-.545.358-.188-.067-.139-.838-.539-.604.057-.032.285.266.055.445-.387.305-.461-.36-.893-.299-.223.032-1.393.546-1.393.024 0-1.052.281-2.032.273-3.169 0-.182-.002-.362-.002-.543 0-.1-.283-.054-.27-.261.031-.509.104-1.018.162-1.523.129-1.098.295-2.156.514-3.237h-.197c-.143-.918.652-2.263.652-3.276 0-.725-.928-1.075-.336-1.781.414-.495.506-1.465 1.272-1.593"/><path fill="#ffc6b5" d="m47.19 27.819c.537 0 .637 3.221.395 3.582-.393.582-.689 1.176-1.025 1.79-.217.397-.012.876-.096 1.206-.314.914-1.332-.127-.777-.813.346-.42.516-1.093.729-1.589.266-.604.727-1.232.379-1.884-.398-.741-.687-1.971.395-2.292"/><path fill="#9c5100" d="m44.29 24.339c.971-.086 1.953 2.647 2.289 1.49.871-2.925-2.783-2.437-2.289-1.49"/><g fill="#f7c600"><path d="m37.908 25.58c.422.554.338.052.344.697.566.001 1.133.003 1.699.004.008-.144-.051-.262-.178-.354.678-.094.752-.913 1.404-.952l-.389.333c-.354.458-.045.641.01.245.047-.313.734-.207.623-.701-.156-.348-.885.094-1.07.202-.662.381-1.168-.738-1.559-.059-.15.261-1.297.102-1.633.102.107.352.376.448.749.483"/><path d="m37.85 28.793c.42.553.338.049.344.695.564.002 1.133.003 1.699.006.006-.144-.053-.262-.18-.354.676-.094.754-.914 1.404-.952l-.389.333c-.352.458-.045.64.012.245.043-.313.732-.208.623-.701-.16-.348-.885.093-1.072.2-.66.382-1.168-.734-1.557-.057-.15.26-1.299.101-1.633.101.106.352.376.447.749.484"/><path d="m37.824 31.959c.422.549.342.052.342.695.566.001 1.133.003 1.699.004.01-.143-.051-.262-.176-.354.676-.093.752-.912 1.404-.952l-.391.334c-.35.456-.045.643.012.244.045-.312.734-.208.623-.7-.158-.349-.885.093-1.072.201-.66.382-1.168-.736-1.557-.058-.15.261-1.297.102-1.633.102.109.353.376.447.749.484"/><path d="m41.14 34.506c-.375.013-.4.397-.908.397-.359 0-.717 0-1.074 0 .063.213.121.316.361.403.637.23.725.224.729.776.566.001 1.135.003 1.699.004.008-.143-.051-.262-.178-.354.678-.094.754-.912 1.406-.952l-.662.616c-.189.37.787-.32.883-.51.322-.647-.895-.117-1.049-.028-.614.356-.776-.35-1.207-.352"/><path d="m37.553 38.19c.42.554.338.052.344.697.566.001 1.133.003 1.699.004.008-.144-.053-.262-.178-.354.676-.093.752-.911 1.404-.951l-.389.334c-.354.457-.047.643.012.244.043-.313.73-.208.623-.7-.16-.35-.887.092-1.074.2-.66.381-1.168-.735-1.557-.059-.15.261-1.297.103-1.631.103.104.352.374.447.747.482"/><path d="m40.494 41.23c-.266.2-.203.656-.064.468.207-.277.234-.303.529-.529.957-.733-1.027-.149-1.084-.15-.416-.003-.488.067-.75-.229-.455-.515-.412.188-.678.23-.496.077-1.076 0-1.58 0 .063.212.121.315.361.402.635.23.725.224.729.776.566.001 1.135.003 1.699.004.008-.144-.051-.262-.178-.354.678-.092.752-.911 1.404-.951.145.021-.388.333-.388.333"/><path d="m49.28 25.633c.422.552.338.05.344.696.566.002 1.133.003 1.699.005.008-.145-.053-.263-.18-.355.678-.093.752-.913 1.404-.951l-.389.333c-.352.459-.043.64.012.245.043-.313.732-.208.623-.7-.16-.35-.885.092-1.072.2-.66.381-1.168-.734-1.557-.058-.15.26-1.297.101-1.633.101.107.352.376.448.749.484"/><path d="m49.18 28.785c.422.551.344.052.344.697.566.001 1.133.003 1.699.004.008-.144-.053-.262-.178-.354.676-.093.752-.912 1.404-.951l-.389.334c-.355.461-.043.637.01.244.045-.313.734-.208.623-.701-.158-.349-.885.093-1.072.201-.66.381-1.166-.735-1.557-.059-.148.261-1.297.103-1.631.103.104.351.374.446.747.482"/><path d="m49.04 32.01c.422.552.338.051.344.696.566.001 1.133.003 1.699.005.008-.144-.053-.262-.178-.354.676-.094.75-.913 1.402-.952l-.389.333c-.352.458-.043.64.012.245.045-.313.734-.208.623-.701-.158-.348-.885.094-1.072.201-.66.382-1.166-.737-1.557-.058-.15.261-1.297.102-1.633.102.106.352.376.446.749.483"/><path d="m52.711 34.451c-.193-.428-.918.219-1.145.244-.191.022-.398-.002-.59-.003-.285-.001-.207-.392-.545-.395-.379.015-.396.397-.908.397-.357 0-.715 0-1.072 0 .063.213.121.317.361.404.635.23.729.221.729.775.564.003 1.133.004 1.699.006.008-.144-.051-.262-.178-.355.676-.094.752-.913 1.404-.951-.039-.007-.854.64-.635.812.056.044.935-.696.88-.934"/><path d="m52.04 38.08c-.268.201-.205.657-.064.468.205-.276.232-.304.527-.529.957-.732-1.025-.15-1.084-.151-.412-.002-.486.066-.75-.229-.457-.515-.41.188-.678.229-.494.078-1.074 0-1.578 0 .063.212.121.316.361.403.635.231.725.224.729.776.566.002 1.133.003 1.699.005.008-.144-.053-.262-.178-.354.676-.094.752-.913 1.404-.952.145.023-.388.334-.388.334"/><path d="m52.06 41.27c-.27.2-.205.656-.064.468.207-.276.232-.304.527-.53.955-.732-1.023-.149-1.084-.149-.414-.003-.486.067-.75-.229-.455-.517-.408.188-.676.229-.496.077-1.076 0-1.58 0 .063.213.119.316.361.403.633.229.729.222.729.775.566.002 1.133.004 1.699.006.008-.144-.053-.262-.178-.355.676-.093.752-.912 1.404-.951.145.021-.388.333-.388.333"/><path d="m46.854 42.939c.504-.628.32-.899.32-.899l-1.135-.616-.332.702.197.42c0 0 .444 1.022.95.393"/><path d="m43.13 42.965c.172-.05 1.367-.679 1.367-.679l-.148-.171-.332-.285c0 0-1.264.451-1.158.444-.135.068.107.736.271.691"/><path d="m56.906 43.972c-1.01-.36-1.842-2.06-2.42-2.203s-1.301.866-1.266.903c.037.036-3.324 3.793-8.525 3.938-4.662.289-8.852-4.517-8.852-4.517s-.686-.614-1.047-.253c-.182.651-1.771 1.879-1.771 1.879s-.651.396-.579 1.01 1.012 1.229 1.229 1.266c.217.035.65-.434.65-.434l.398-.434c0 0 4.553 4.371 10.08 4.335 5.346.181 9.971-4.335 9.971-4.335s.289-.109.434.469 1.119.182 1.338.036c.216-.144.866-.866.36-1.661"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><defs><linearGradient id="7" gradientUnits="userSpaceOnUse" x1="-2894.4624" x2="-2893.4604" gradientTransform="matrix(-.5685-.4287-.1896 1.2856-1429.1501-2349.261)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="-2893.6753" x2="-2892.6736" gradientTransform="matrix(-.5688-.4289-.1897 1.2862-1429.4056-2337.6003)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="8" gradientUnits="userSpaceOnUse" x1="-2889.7898" x2="-2888.7893" gradientTransform="matrix(-.5702-.43-.1901 1.2894-1430.8381-2352.7778)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="A" gradientUnits="userSpaceOnUse" x1="-2890.5715" x2="-2889.5715" gradientTransform="matrix(-.5699-.4298-.1901 1.2888-1430.4264-2345.3428)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="9" gradientUnits="userSpaceOnUse" x1="-2884.4304" x2="-2883.4304" gradientTransform="matrix(-.5722-.4314-.1908 1.2938-1432.4309-2357.3113)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="6" gradientUnits="userSpaceOnUse" x1="-2887.594" x2="-2886.5928" gradientTransform="matrix(-.571-.4306-.1904 1.2913-1431.3042-2362.3708)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="0" gradientUnits="userSpaceOnUse" x1="-2890.051" x2="-2889.051" gradientTransform="matrix(-.5701-.4299-.1901 1.2892-1441.8746-2358.8357)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="5" gradientUnits="userSpaceOnUse" x1="-2891.5195" x2="-2890.5203" gradientTransform="matrix(-.5696-.4295-.1899 1.288-1441.6945-2340.7271)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="1" gradientUnits="userSpaceOnUse" x1="-2892.8401" x2="-2891.8413" gradientTransform="matrix(-.5691-.4291-.1898 1.2869-1441.012-2351.5571)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="3" gradientUnits="userSpaceOnUse" x1="-2890.6372" x2="-2889.6379" gradientTransform="matrix(-.5699-.4297-.19 1.2887-1439.7017-2348.1484)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="4" gradientUnits="userSpaceOnUse" x1="-2890.6846" x2="-2889.6846" gradientTransform="matrix(-.5699-.4297-.19 1.2887-1442.0317-2345.2524)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="2" gradientUnits="userSpaceOnUse" x1="-2888.3748" x2="-2887.3772" gradientTransform="matrix(-.5707-.4304-.1903 1.2906-1442.5089-2354.9172)"><stop stop-color="#f00"/><stop offset="1" stop-color="#ff0"/></linearGradient></defs><g fill="#2a5f9e"><path d="M32,2v30H2c0,16.6,13.4,30,30,30c16.6,0,30-13.4,30-30S48.6,2,32,2z"/><path d="m12 12h21v21h-21z"/></g><g fill="#fff"><path d="m18.9 8.1v5.9h-7.3l14.4 18h6v-7.5z"/><path d="m11 18.9h-6c-1.9 4-3 8.4-3 13.1h12v-18.1h-3v5"/></g><path fill="#ed4c5c" d="m32 27.1l-13-16.1h-6l17 21h2z"/><path d="M18.9,5v6H11v3h21V2C27.3,2,22.9,3.1,18.9,5z" fill="#fff"/><path d="M32,5H18.9C12.9,7.9,7.9,12.9,5,18.9V32h6V11h21V5z" fill="#ed4c5c"/><path d="m35 22.2l19.5-.1v17.3c0 0 .7 2.6-8.2 6.6 3.2-.3 6.6-3.7 6.6-3.7s1.4-1.8 2.1-.8c.7 1 1.3 1.5 1.8 1.9.5.4.9 1.5.1 2.3-.8.8-2 .9-2.3-.1-.5.3-3.6 4-10 4.2-6.5-.1-10-4.2-10-4.2s-.9 1.4-2.1.3c-1.2-1.4-.3-2.3-.3-2.3s1-.6 1.3-1c.5-.5.6-1.3 1.4-1.3.9.1 1.3.8 1.3.8s3.3 3.4 6.8 3.9c-7.9-3.8-8.2-6.1-8.2-6.7l.2-17.1" fill="#fff"/><path d="m35.5 22.6l18.6-.1v16.7c0 2.2-3.6 4.4-9.3 7.2-5.9-3-9.3-4.9-9.3-7.2v-16.6" fill="#006129"/><path fill="url(#0)" d="m37.6 25.1l.3-.6-.4-1.1-.2 1.7z"/><path fill="url(#1)" d="m37.6 28.3l.2-.6-.3-1.1-.3 1.7z"/><path fill="url(#2)" d="m37.6 31.5l.2-.7-.4-1-.2 1.7z"/><path fill="url(#3)" d="m39.6 34.9l.3-.6-.4-1.1-.2 1.7z"/><path fill="url(#4)" d="m37.3 37.7l.2-.6-.3-1.1-.3 1.7z"/><path fill="url(#5)" d="m37.3 41l.3-.6-.4-1.1-.2 1.7z"/><path fill="url(#6)" d="m49 25.1l.3-.6-.4-1-.2 1.6z"/><path fill="url(#7)" d="m48.9 28.3l.3-.6-.4-1.1-.2 1.7z"/><path fill="url(#8)" d="m48.8 31.5l.2-.6-.3-1.1-.3 1.7z"/><path fill="url(#9)" d="m48.9 34.7l.3-.6-.4-1.1-.2 1.7z"/><path fill="url(#A)" d="m48.9 37.9l.2-.7-.3-1-.3 1.7z"/><path fill="url(#B)" d="m48.9 41l.3-.6-.4-1-.2 1.6z"/><g fill="#ffc6b5"><path d="m44.3 24.4c.1.4-.3.6-.3.8 0 .3.1.8.5.9.6.2.1.8-.1 1.3.6-.1 1.3-.1 1.9-.2-.6-.9-.5-1.6-.5-2.6 0-.7-1.6-1-1.5-.2"/><path d="m44 27.2c-.8.4-.7 1.6-.8 2.4-.1.6-1 1.3-1.3 1.8-.4.6-.9 1-.9 1.7 0 1.2.6.6.9-.1.2-.5-.3-.6.3-1 .5-.4 1.4-.8 1.6-1.4.3-.9.1-2.4.2-3.4"/></g><path d="m44.7 26.6c.4.8.8 0 1.3 0 .5 0 .8.4 1.1.8.5.6-.2.5-.5 1-.3.5.3 1.4 0 1.8-.3.3 0 1.8-.1 2.3 0 .8 0 1.4.2 2.2.4 1.8.7 3.3 1.2 5 .1.4 0 .9.1 1.3.1.4.5.9-.2.9-.3 0-.3.2-.5.1-.2 0-.4 0-.7 0 .2 0-.9.4-.7.1-.2.2.1.6-.5.4-.2-.1-.1-.8-.5-.6.1 0 .3.3.1.4-.4.3-.5-.4-.9-.3-.2 0-1.4.5-1.4 0 0-1.1.3-2 .3-3.2 0-.2 0-.4 0-.5 0-.1-.3-.1-.3-.3 0-.5.1-1 .2-1.5.1-1.1.3-2.2.5-3.2h-.2c-.2-.9.5-2.3.5-3.3 0-.7-.9-1.1-.3-1.8.4-.5.5-1.4 1.3-1.6" fill="#fff"/><path d="m47.2 27.8c.5 0 .6 3.2.4 3.6-.4.6-.7 1.2-1 1.8-.2.4 0 .9-.1 1.2-.3.9-1.3-.1-.8-.8.3-.4.5-1.1.7-1.6.3-.6.7-1.2.4-1.9-.4-.7-.7-2 .4-2.3" fill="#ffc6b5"/><path d="m44.3 24.3c1-.1 2 2.6 2.3 1.5.9-2.9-2.8-2.4-2.3-1.5" fill="#9c5100"/><g fill="#f7c600"><path d="m37.9 25.6c.4.6.3.1.3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.4.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.3-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.2.3-1.3.1-1.6.1.3.5.5.6.9.7"/><path d="m37.8 28.8c.4.6.3 0 .3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.4.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.3-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.2.3-1.3.1-1.6.1.3.6.6.7.9.7"/><path d="m37.8 32c.4.5.3.1.3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.3.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.3-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.2.3-1.3.1-1.6.1.3.5.6.6.9.7"/><path d="m41.1 34.5c-.4 0-.4.4-.9.4-.4 0-.7 0-1.1 0 .1.2.1.3.4.4.6.2.7.2.7.8.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.7.6c-.2.4.8-.3.9-.5.3-.6-.9-.1-1 0-.6.4-.7-.3-1.2-.3"/><path d="m37.6 38.2c.4.6.3.1.3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.4.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.3-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.2.3-1.3.1-1.6.1.2.6.5.7.9.7"/><path d="m40.5 41.2c-.3.2-.2.7-.1.5.2-.3.2-.3.5-.5 1-.7-1-.1-1.1-.2-.4 0-.5.1-.8-.2-.5-.5-.4.2-.7.2-.5.1-1.1 0-1.6 0 .1.2.1.3.4.4.6.2.7.2.7.8.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1 .3.1-.2.4-.2.4"/><path d="m49.3 25.6c.4.6.3 0 .3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.4.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.4-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.2.3-1.3.1-1.6.1.2.6.5.7.9.7"/><path d="m49.2 28.8c.4.6.3.1.3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.4.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.3-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.1.3-1.3.1-1.6.1.2.6.5.6.9.7"/><path d="m49 32c.4.6.3.1.3.7.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1l-.4.3c-.4.5 0 .6 0 .2 0-.3.7-.2.6-.7-.2-.3-.9.1-1.1.2-.7.4-1.2-.7-1.6-.1-.2.3-1.3.1-1.6.1.3.6.6.7.9.7"/><path d="m52.7 34.5c-.2-.4-.9.2-1.1.2-.2 0-.4 0-.6 0-.3 0-.2-.4-.5-.4-.4 0-.4.4-.9.4-.4 0-.7 0-1.1 0 .1.2.1.3.4.4.6.2.7.2.7.8.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1 0 0-.9.6-.6.8 0 .1.9-.6.8-.8"/><path d="m52 38.1c-.3.2-.2.7-.1.5.2-.3.2-.3.5-.5 1-.7-1-.2-1.1-.2-.4 0-.5.1-.8-.2-.5-.5-.4.2-.7.2-.5.1-1.1 0-1.6 0 .1.2.1.3.4.4.6.2.7.2.7.8.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1 .4.1-.2.4-.2.4"/><path d="m52.1 41.3c-.3.2-.2.7-.1.5.2-.3.2-.3.5-.5 1-.7-1-.1-1.1-.1-.4 0-.5.1-.8-.2-.5-.5-.4.2-.7.2-.5.1-1.1 0-1.6 0 .1.2.1.3.4.4.6.2.7.2.7.8.6 0 1.1 0 1.7 0 0-.1-.1-.3-.2-.4.7-.1.8-.9 1.4-1 .3 0-.2.3-.2.3"/><path d="m46.9 42.9c.5-.6.3-.9.3-.9l-1.2-.6-.3.7.2.4c0 0 .4 1.1 1 .4"/><path d="m43.1 43c.2 0 1.4-.7 1.4-.7l-.1-.2-.4-.3c0 0-1.3.5-1.2.4-.1.1.2.8.3.8"/><path d="m56.9 44c-1-.4-1.8-2.1-2.4-2.2s-1.3.9-1.3.9c0 0-3.3 3.8-8.5 3.9-4.7.3-8.9-4.5-8.9-4.5s-.7-.6-1-.3c-.2.7-1.8 1.9-1.8 1.9s-.7.4-.6 1 1 1.2 1.2 1.3c.2 0 .7-.4.7-.4l.4-.4c0 0 4.6 4.4 10.1 4.3 5.3.2 10-4.3 10-4.3s.3-.1.4.5 1.1.2 1.3 0c.3-.2.9-.9.4-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ee.svg
index b6fa488..2364a0c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f5f5f5" cx="32" cy="32" r="30"/><g fill="#ffce31"><path d="m28.708 24.583c-.232.462-.574.705-.574.705s7.89.716 7.607-.005c-.283-.719-.939-1.224-.939-1.224s.639-.072.797-.278c-1.016-.49-1.594-1.517-1.594-1.517.287.087.733-.009.733-.009-1.116-1.565-.597-1.953-1.01-2.991-.41-1.036-1.113-1.243-1.285-1.339-.174-.096-1.336-.191-1.773.028-.438.221-.465.543-.516.543-.05 0-.404-.058-.542.312-.02.055-.033.102-.04.146-.175.002-.371.016-.589.042-1.071.129-.921 1.468-.921 1.468.084-.061.285-.475.661-.414.374.059.513-.035.749-.029.748.018.819.676.818.936-.039.019-.084.062-.15.155-.26.376-.301.635-.301.635-.246 1.167-.93 1.252-.93 1.252.35.191.52.135.554.118-.355.18-.854.818-.854.818-.342.519-.602.432-.602.432.35.346.698.216.698.216"/><path d="m57.06 16.998c-.419-.771-1.705.134-3.228.555 0 0-3.558 1.121-5.689 1.557-.22.021-.436.08-.436.08-.008.003-.016.006-.022.006-5.798 1.477-7.379 2.416-7.379 2.416-1.095.662-.828 2.261-.11 2.794.294.217.274.594.061.799-.255.243-.579.021-.579.021-.965-.478-1.505-.071-1.505-.071s-.889 4.313.241 4.92l-.2 1.401c0 0 .849.691 1.56 0 0 0 .287.346.86.244.575-.101.671-.402.726-.574 0 0 .496.289.916.06.419-.229.419-.575.419-.575s.729.145 1.103-.35c.374-.494.146-.984-.055-1.042 0 0 .789.206 1-.47.183-.576-.228-.874-.228-.874s1.661-.009 2.343-.528c0 0 .564-.355.228-.729 0 0 1.495-.24 1.869-.835 0 0 .164-.164.109-.451 0 0-.01-.165-.174-.174 0 0 1.705-.263 2.197-.825 0 0 .237-.26.118-.604 0 0-.024-.093-.065-.152 0 0 1.552-.328 2.317-1.02 0 0 .442-.394.214-.922 0 0 2.594-.709 1.992-1.853 0 0 1.213-.394.829-1.488-.001-.001 1-.51.565-1.316"/><path d="m19.257 28.768c.215.676 1 .47 1 .47-.201.058-.429.548-.055 1.042.373.494 1.103.35 1.103.35s0 .347.419.575c.42.229.916-.06.916-.06.055.172.15.474.726.574.573.102.861-.244.861-.244.711.691 1.559 0 1.559 0l-.2-1.401c1.13-.607.241-4.92.241-4.92s-.54-.406-1.504.071c0 0-.325.223-.58-.021-.214-.205-.233-.582.061-.799.718-.533.984-2.132-.11-2.794 0 0-1.581-.939-7.378-2.416-.008 0-.016-.003-.023-.006 0 0-.216-.06-.436-.08-2.132-.436-5.689-1.557-5.689-1.557-1.522-.421-2.809-1.326-3.228-.555-.438.806.565 1.314.565 1.314-.382 1.095.83 1.488.83 1.488-.602 1.144 1.992 1.853 1.992 1.853-.229.528.214.922.214.922.766.691 2.317 1.02 2.317 1.02-.041.06-.066.152-.066.152-.119.345.118.604.118.604.492.563 2.197.825 2.197.825-.165.009-.173.174-.173.174-.054.287.11.451.11.451.374.595 1.869.835 1.869.835-.338.373.228.729.228.729.682.52 2.343.528 2.343.528s-.413.299-.231.876"/><path d="m26.15 37.41c0 0 .154-.586 1.111-1.104 0 0 1.086-.409 1.059-.943-.028-.535-2.414-3.402-2.414-3.402s-.176.938-1.56 2.117c0 0-1.067.942-1.041 2.026.028 1.104-.19 1.229-.61 1.604 0 0 .105.007.26-.007-.256.352-.773.942-1.363.956 0 0-1.441-.176-1.85.202-.285.263-.574.479-.693 1.152-.118.672.229.815.31.844 0 0 .064.48.538.355 0 0 .027.499.867.26.838-.24 1.184-.164 1.348-.998.164-.836.316-.822.466-.922.2-.135.577-.263.856-.423.223-.128 1-.526 1.406-.643.012.091.031.186.062.278 0 0 .063-.241.401-.347-.001.003.609-.122.847-1.01"/><path d="m44.27 38.857c-.408-.378-1.851-.202-1.851-.202-.589-.014-1.106-.604-1.362-.956.154.014.26.007.26.007-.42-.375-.639-.5-.611-1.604.027-1.084-1.041-2.026-1.041-2.026-1.383-1.18-1.559-2.117-1.559-2.117s-2.387 2.867-2.414 3.402c-.027.534 1.058.943 1.058.943.957.518 1.112 1.104 1.112 1.104.237.882.848 1.01.848 1.01.337.105.4.347.4.347.031-.093.051-.188.063-.278.402.116 1.184.515 1.406.643.279.16.656.288.856.423.149.1.301.086.465.922.164.834.511.758 1.349.998.84.239.866-.26.866-.26.475.125.538-.355.538-.355.082-.028.428-.172.311-.844-.12-.674-.41-.891-.694-1.154"/><path d="m36.09 36.842c.014-.211-.11-.526-.521-.992-1-1.133-2.594 1.259-3.048 2-.142-.178-.323-.284-.522-.284-.2 0-.383.106-.523.284-.453-.741-2.047-3.133-3.047-2-.412.466-.535.781-.522.992-3.934 3.617-2.02 3.935-2.02 3.935 0 .932.829.712.829.712-.091.988.675.854.675.854-.009 1.114.811.922.811.922.146 1.19 1.049.71 1.049.71-.045 1.019.565 1.075.565 1.075.713.074 1.01-.661 1.087-.921.005.174.013.341.025.501.062.797.489 1.447 1.072 1.447.584 0 1.01-.65 1.072-1.447.014-.16.02-.327.025-.501.08.26.373.995 1.087.921 0 0 .61-.057.565-1.075 0 0 .902.48 1.048-.71 0 0 .82.192.812-.922 0 0 .766.135.674-.854 0 0 .83.22.83-.712-.001-.001 1.913-.317-2.02-3.935"/></g><path fill="#0081c6" d="m47.29 33.862l.8.428-3.96 4.632.433.478 3.97-4.687.497.8 1.879-4.04z"/><g fill="#428bc1"><path d="m47.571 32.23l.659.655.96-4.383-3.01 3.189.87.228-2.8 5.331.87-3.742.792.46-.141-4.499-2.131 3.902.898-.021-1.288 5.475.546.395.058-.258.166.098z"/><path d="m43.38 42.3l-.373-.638.128-.522c-.002-.002-.004-.002-.005-.006l.338-.428c.008-.11-.033-.204-.09-.282v-.002c-.076-.124-.185-.195-.285-.238-.143-.06-.269-.059-.269-.059l-.507.981-.986-.003-.416.79-.265-.066-2.848 3.334 1.48.111.261 1.539 1-1.176-.253 1.07 1.357-.634.916 1.229 1.029-4.349-.368-.367.153-.284"/></g><g fill="#83bf4f"><path d="m20.917 39.06c0 0-.047-.324.568-.563s.663-1.122.539-1.713c0 0-.32.562-.711.749 0 0-.635.33-.664.964 0 0-.006.23-.053.41-.027.099-.309-.79.225-1.454.551-.684.705-1.237.268-2.318 0 0-.041.655-.473 1.028-.431.376-.485.404-.478 1.298 0 0 .007.31-.157.41 0 0-.336-.489-.424-.814-.09-.323-.131-.46.252-.835 0 0 1.227-.792.342-2.527 0 0-.026.598-.451.951-.424.353-.389.59-.41 1.202-.02.612-.061.568-.108.655 0 0-.78-1.434-.179-2.195.602-.764.938-.923.273-2.341 0 0 .029.728-.501 1.087-.53.36-.408 1.203-.408 1.203s.034.316-.075.547c0 0-.75-1.465-.034-2.254.608-.669.65-1.138.321-2.088 0 0-.041.439-.375.678-.334.236-.602.474-.541 1.389 0 0 .028.641-.054.821 0 0-.314-.583-.403-.965s-.124-.604.109-.986 1.156-1.477.055-3.054c0 0-.034.511-.314.972s-.15 1.01-.089 1.426c.062.418-.144.821-.144.821s-.479-.878-.376-1.885c.103-1.01-.308-1.837-1.237-2.434 0 0-.677 1.568.246 2.367 0 0 .786.778.985 1.721 0 0-.595-.057-1.136-1.107-.54-1.052-1.661-.887-1.736-.894 0 0 .185 1.626 1.908 2.089 0 0 1.101.187 1.306.993 0 0 .184.554.26.849 0 0-.349-.137-.67-.611-.322-.476-.281-.533-1.368-.643 0 0-.438-.049-.669-.359 0 0 .457 1.723 1.633 1.708 0 0 1.074-.116 1.675 1.296 0 0-.116-.073-.274-.182-.158-.107-.554-.309-1.339-.215-.786.094-1.01-.036-1.204-.102 0 0 .793 1.455 1.914 1.022 1.122-.432 1.663 1.145 1.676 1.174 0 0-.151-.115-.349-.309-.198-.195-.61-.435-1.388-.188 0 0-.561.216-1.128.043 0 0 .546 1.058 1.825.879 1.278-.18 1.6.944 1.6.944s-.171-.102-.287-.194c-.116-.095-.547-.34-1.469-.065-.923.273-1.258-.044-1.258-.044s.513.936 1.497 1.044c0 0 .547-.007.779-.093.233-.087.848-.224 1.271.389 0 0-.115.021-.293-.059 0 0-.657-.237-1.156.18 0 0-.444.454-1.073.368 0 0 .813.792 2.105.122 0 0 .438-.317.759-.071.321.244 1.065-.237 1.065-.237"/><path d="m20.775 41.05c0 0-.021-.583.718-.626l2.175 3.02c0 0-.082.194-1.067.173 0 0-.104-.001-.158.115-.085.176-1.668-2.685-1.668-2.685"/></g><path fill="#fff" d="m31.93 38.38c0 0 6.583-2.918 6.601-9.666h-13.202c.018 6.748 6.601 9.666 6.601 9.666"/><g fill="#ed4c5c"><path d="m26.346 28.712v4.313c0 0 .505.999 1.015 1.627v-5.939h-1.015v-.001"/><path d="m28.376 28.712v7.108c0 0 .635.622 1.016.922v-8.03h-1.016"/><path d="m30.407 28.712v8.786c0 0 .724.469 1.016.621v-9.407h-1.016"/><path d="m37.515 28.712v4.313c0 0-.504.999-1.016 1.627v-5.939h1.016z"/><path d="m35.483 28.712v7.108c0 0-.635.622-1.016.922v-8.03h1.016"/><path d="m33.452 28.712v8.786c0 0-.724.469-1.014.621v-9.407h1.014"/></g><g fill="#428bc1"><path d="m38.53 23.809c0 0-3.23 1.688-6.601-.14-3.37 1.828-6.601.14-6.601.14v4.903h13.202v-4.903"/><path d="m8.432 36.39c.319-.131.55-.257.549-.599 0-.081-.045-.261-.137-.54l-2.147-6.564c-.127-.39-.224-.622-.269-.707-.096-.186-.286-.26-.541-.367h.265 2.2.266c-.297.141-.567.251-.564.566.001.119.034.289.104.508l1.646 5.151 1.644-5.151c.069-.219.105-.389.104-.508-.003-.323-.285-.439-.562-.566h.262 2.121.263c-.241.098-.438.174-.54.367-.044.085-.141.317-.268.707l-2.148 6.564c-.091.279-.123.462-.137.547 0 0-.099.415.55.592h-2.661"/><path d="m54.21 35.713v-7.433c0-.129-.021-.228-.063-.296-.043-.068-.228-.266-.49-.373h.263 1.934.264c-.264.088-.448.3-.49.37s-.064.17-.064.299v7.433c0 .134.022.234.066.306.044.07.225.243.488.37h-.265-1.934-.263c.263-.12.447-.305.49-.373.043-.069.064-.169.064-.303"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f5f5f5"/><g fill="#ffce31"><path d="m28.7 24.6c-.2.5-.6.7-.6.7s7.9.7 7.6 0c-.3-.7-.9-1.2-.9-1.2s.6-.1.8-.3c-1-.5-1.6-1.5-1.6-1.5.3.1.7 0 .7 0-1.1-1.6-.6-2-1-3-.4-1-1.1-1.2-1.3-1.3-.2-.1-1.3-.2-1.8 0-.4.2-.5.5-.5.5 0 0-.4-.1-.5.3 0 .1 0 .1 0 .1-.2 0-.4 0-.6 0-1.1.1-.9 1.5-.9 1.5.1-.1.3-.5.7-.4.4.1.5 0 .7 0 .7 0 .8.7.8.9 0 0-.1.1-.1.2-.3.4-.3.6-.3.6-.2 1.2-.9 1.3-.9 1.3.4.2.5.1.6.1-.4.2-.9.8-.9.8-.3.5-.6.4-.6.4.3.4.6.3.6.3"/><path d="m57.1 17c-.4-.8-1.7.1-3.2.6 0 0-3.6 1.1-5.7 1.6-.2 0-.4.1-.4.1-5.8 1.5-7.4 2.4-7.4 2.4-1.1.7-.8 2.3-.1 2.8.3.2.3.6.1.8-.3.2-.6 0-.6 0-1-.5-1.5-.1-1.5-.1s-.9 4.3.2 4.9l-.2 1.4c0 0 .8.7 1.6 0 0 0 .3.3.9.2.6-.1.7-.4.7-.6 0 0 .5.3.9.1.4-.2.4-.6.4-.6s.7.1 1.1-.4c.4-.5.1-1-.1-1 0 0 .8.2 1-.5.2-.6-.2-.9-.2-.9s1.7 0 2.3-.5c0 0 .6-.4.2-.7 0 0 1.5-.2 1.9-.8 0 0 .2-.2.1-.5 0 0 0-.2-.2-.2 0 0 1.7-.3 2.2-.8 0 0 .2-.3.1-.6 0 0 0-.1-.1-.2 0 0 1.6-.3 2.3-1 0 0 .4-.4.2-.9 0 0 2.6-.7 2-1.9 0 0 1.2-.4.8-1.5.1.1 1.1-.4.7-1.2"/><path d="m19.3 28.8c.2.7 1 .5 1 .5-.2.1-.4.5-.1 1 .4.5 1.1.4 1.1.4s0 .3.4.6c.4.2.9-.1.9-.1.1.2.1.5.7.6.6.1.9-.2.9-.2.7.7 1.6 0 1.6 0l-.2-1.4c1.1-.6.2-4.9.2-4.9s-.5-.4-1.5.1c0 0-.3.2-.6 0-.2-.2-.2-.6.1-.8.7-.5 1-2.1-.1-2.8 0 0-1.6-.9-7.4-2.4 0 0 0 0 0 0s-.2-.1-.4-.1c-2.1-.4-5.7-1.6-5.7-1.6-1.5-.4-2.8-1.3-3.2-.6-.4.8.6 1.3.6 1.3-.4 1.1.8 1.5.8 1.5-.6 1.1 2 1.9 2 1.9-.2.5.2.9.2.9.8.7 2.3 1 2.3 1 0 .1-.1.2-.1.2-.1.3.1.6.1.6.5.6 2.2.8 2.2.8-.2 0-.2.2-.2.2-.1.3.1.5.1.5.4.6 1.9.8 1.9.8-.3.4.2.7.2.7.7.5 2.3.5 2.3.5s-.3.2-.1.8"/><path d="m26.1 37.4c0 0 .2-.6 1.1-1.1 0 0 1.1-.4 1.1-.9 0-.5-2.4-3.4-2.4-3.4s-.2.9-1.6 2.1c0 0-1.1.9-1 2 0 1.1-.2 1.2-.6 1.6 0 0 .1 0 .3 0-.3.4-.8.9-1.4 1 0 0-1.4-.2-1.9.2-.3.3-.6.5-.7 1.2-.1.7.2.8.3.8 0 0 .1.5.5.4 0 0 0 .5.9.3.8-.2 1.2-.2 1.3-1 .2-.8.3-.8.5-.9.2-.1.6-.3.9-.4.2-.1 1-.5 1.4-.6 0 .1 0 .2.1.3 0 0 .1-.2.4-.3 0-.3.6-.4.8-1.3"/><path d="m44.3 38.9c-.4-.4-1.9-.2-1.9-.2-.6 0-1.1-.6-1.4-1 .2 0 .3 0 .3 0-.4-.4-.6-.5-.6-1.6 0-1.1-1-2-1-2-1.4-1.2-1.6-2.1-1.6-2.1s-2.4 2.9-2.4 3.4c0 .5 1.1.9 1.1.9 1 .5 1.1 1.1 1.1 1.1.2.9.8 1 .8 1 .3.1.4.3.4.3 0-.1.1-.2.1-.3.4.1 1.2.5 1.4.6.3.2.7.3.9.4.1.1.3.1.5.9.2.8.5.8 1.3 1 .8.2.9-.3.9-.3.5.1.5-.4.5-.4.1 0 .4-.2.3-.8-.2-.5-.5-.7-.7-.9"/><path d="m36.1 36.8c0-.2-.1-.5-.5-1-1-1.1-2.6 1.3-3 2-.1-.2-.3-.3-.5-.3-.2 0-.4.1-.5.3-.5-.7-2-3.1-3-2-.4.5-.5.8-.5 1-3.9 3.6-2 3.9-2 3.9 0 .9.8.7.8.7-.1 1 .7.9.7.9 0 1.1.8.9.8.9.1 1.2 1 .7 1 .7 0 1 .6 1.1.6 1.1.7.1 1-.7 1.1-.9 0 .2 0 .3 0 .5.1.8.5 1.4 1.1 1.4.6 0 1-.7 1.1-1.4 0-.2 0-.3 0-.5.1.3.4 1 1.1.9 0 0 .6-.1.6-1.1 0 0 .9.5 1-.7 0 0 .8.2.8-.9 0 0 .8.1.7-.9 0 0 .8.2.8-.7-.2.1 1.7-.2-2.2-3.9"/></g><path fill="#0081c6" d="m47.3 33.9l.8.4-4 4.6.5.5 3.9-4.7.5.8 1.9-4z"/><g fill="#428bc1"><path d="m47.6 32.2l.6.7 1-4.4-3 3.2.8.2-2.7 5.3.8-3.7.8.5-.1-4.5-2.2 3.9h.9l-1.3 5.4.6.4.1-.2.1.1z"/><path d="m43.4 42.3l-.4-.6.1-.5c0 0 0 0 0 0l.3-.4c0-.1 0-.2-.1-.3-.1-.1-.2-.2-.3-.2-.1-.1-.3-.1-.3-.1l-.5 1h-1l-.4.8-.3-.1-2.8 3.3 1.5.1.3 1.5 1-1.2-.3 1.1 1.4-.6.9 1.2 1-4.3-.4-.4.3-.3"/></g><g fill="#83bf4f"><path d="m20.9 39.1c0 0 0-.3.6-.6s.7-1.1.5-1.7c0 0-.3.6-.7.7 0 0-.6.3-.7 1 0 0 0 .2-.1.4 0 .1-.3-.8.2-1.5.6-.7.7-1.2.3-2.3 0 0 0 .7-.5 1-.4.4-.5.4-.5 1.3 0 0 0 .3-.2.4 0 0-.3-.5-.4-.8-.1-.3-.1-.5.3-.8 0 0 1.2-.8.3-2.5 0 0 0 .6-.5 1-.4.4-.4.6-.4 1.2 0 .6-.1.6-.1.7 0 0-.8-1.4-.2-2.2.6-.8.9-.9.3-2.3 0 0 0 .7-.5 1.1-.5.4-.4 1.2-.4 1.2s0 .3-.1.5c0 0-.8-1.5 0-2.3.6-.7.6-1.1.3-2.1 0 0 0 .4-.4.7-.3.2-.6.5-.5 1.4 0 0 0 .6-.1.8 0 0-.3-.6-.4-1s-.1-.6.1-1 1.2-1.5.1-3.1c0 0 0 .5-.3 1s-.1 1-.1 1.4c.1.4-.1.8-.1.8s-.5-.9-.4-1.9c.1-1-.3-1.8-1.2-2.4 0 0-.7 1.6.2 2.4 0 0 .8.8 1 1.7 0 0-.6-.1-1.1-1.1-.5-1.1-1.7-.9-1.7-.9 0 0 .2 1.6 1.9 2.1 0 0 1.1.2 1.3 1 0 0 .2.6.3.8 0 0-.3-.1-.7-.6-.3-.5-.3-.5-1.4-.6 0 0-.4 0-.7-.4 0 0 .5 1.7 1.6 1.7 0 0 1.1-.1 1.7 1.3 0 0-.1-.1-.3-.2-.2-.1-.6-.3-1.3-.2-.8.1-1 0-1.2-.1 0 0 .8 1.5 1.9 1 1.1-.4 1.7 1.1 1.7 1.2 0 0-.2-.1-.3-.3-.2-.2-.6-.4-1.4-.2 0 0-.6.2-1.1 0 0 0 .5 1.1 1.8.9 1.3-.2 1.6.9 1.6.9s-.2-.1-.3-.2c-.1-.1-.5-.3-1.5-.1-.9.3-1.3 0-1.3 0s.5.9 1.5 1c0 0 .5 0 .8-.1.2-.1.8-.2 1.3.4 0 0-.1 0-.3-.1 0 0-.7-.2-1.2.2 0 0-.4.5-1.1.4 0 0 .8.8 2.1.1 0 0 .4-.3.8-.1.5.4 1.2 0 1.2 0"/><path d="m20.8 41c0 0 0-.6.7-.6l2.2 3c0 0-.1.2-1.1.2 0 0-.1 0-.2.1 0 .2-1.6-2.7-1.6-2.7"/></g><path d="m31.9 38.4c0 0 6.6-2.9 6.6-9.7h-13.2c0 6.8 6.6 9.7 6.6 9.7" fill="#fff"/><g fill="#ed4c5c"><path d="m26.3 28.7v4.3c0 0 .5 1 1 1.6v-5.9h-1"/><path d="m28.4 28.7v7.1c0 0 .6.6 1 .9v-8c0 0-1 0-1 0"/><path d="m30.4 28.7v8.8c0 0 .7.5 1 .6v-9.4h-1"/><path d="m37.5 28.7v4.3c0 0-.5 1-1 1.6v-5.9h1"/><path d="m35.5 28.7v7.1c0 0-.6.6-1 .9v-8c0 0 1 0 1 0"/><path d="m33.5 28.7v8.8c0 0-.7.5-1 .6v-9.4h1"/></g><g fill="#428bc1"><path d="m38.5 23.8c0 0-3.2 1.7-6.6-.1-3.4 1.8-6.6.1-6.6.1v4.9h13.2v-4.9"/><path d="m8.4 36.4c.4-.1.6-.3.6-.6 0-.1 0-.3-.1-.5l-2.1-6.6c-.1-.4-.2-.6-.3-.7-.1-.2-.3-.3-.5-.4h.3 2.2.3c-.3.1-.6.3-.6.6 0 .1 0 .3.1.5l1.6 5.2 1.6-5.2c.1-.2.1-.4.1-.5 0-.3-.3-.4-.6-.6h.3 2.1.3c-.2.1-.4.2-.5.4 0 .1-.1.3-.3.7l-2.1 6.6c-.1.3-.1.5-.1.5 0 0-.1.4.6.6h-2.9"/><path d="m54.2 35.7v-7.4c0-.1 0-.2-.1-.3 0-.1-.2-.3-.5-.4h.3 1.9.3c-.3.1-.4.3-.5.4s-.1.2-.1.3v7.4c0 .1 0 .2.1.3 0 .1.2.2.5.4h-.3-1.9-.3c.3-.1.4-.3.5-.4.1-.1.1-.2.1-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1f3.svg
index 5605b79..a35b203 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f42f4c" cx="32" cy="32" r="30"/><path fill="#ffe62e" d="M32 38.963 41.89 46 38.16 34.555 48 27.25 35.803 27.25 32 16 28.31 27.25 16 27.25 25.846 34.555 22.11 46z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f42f4c"/><path fill="#ffe62e" d="m32 39l9.9 7-3.7-11.4 9.8-7.4h-12.2l-3.8-11.2-3.7 11.2h-12.3l9.8 7.4-3.7 11.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1fa.svg
index 4399f21..51ac13f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb-1f1fa.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2C22.807,2,14.583,6.141,9.08,12.652V32h52.09v-7C58.016,11.81,46.157,2,32,2z"/><path fill="#83bf4f" d="M9.08,32v19.348C14.583,57.86,22.807,62,32,62c14.156,0,26.015-9.809,29.17-22.998V32H9.08z"/><g fill="#3e4347"><path d="M9.08,12.652c-0.941,1.114-1.797,2.301-2.57,3.545v3.688H4.559C2.918,23.591,2,27.688,2,32
- s0.918,8.409,2.559,12.114H6.51v3.688c0.773,1.244,1.629,2.431,2.57,3.545L28.427,32L9.08,12.652z"/><path d="m61.926 34v-4h.002c-.115-1.709-.371-3.381-.758-5h-52.09v14h52.09c.387-1.619.643-3.291.758-5h-.002"/></g><path fill="#ffce31" d="m6.51 16.184c-.734 1.182-1.387 2.418-1.955 3.702l12.12 12.11-12.12 12.11c.568 1.284 1.221 2.521 1.955 3.702l13.816-13.816h41.6c.044-.662.074-1.327.074-2s-.03-1.338-.074-2h-41.6l-13.816-13.816"/><g fill="#fdce12"><path d="m7.322 26.688c-1.125 0-4.599.806-4.599 4.431s3.407 3.961 4.079 3.961c.671 0 3.189-.604 2.904-3.322 0 .771-.873 2.399-2.703 2.399-1.829 0-2.97-1.359-2.97-2.702s1.107-3.139 3.037-3.139 3.34 1.712 3.34 3.441c0 1.729-1.359 3.927-3.524 3.927 0 0 0 1.309 0 2.064 1.796 0 5.32-1.376 5.32-5.807 0-4.43-3.76-5.253-4.884-5.253"/><path d="m7.396 30.855c-.02-.008-.036-.02-.056-.028.028-.026.048-.059.08-.079.149-.103.375-.113.542-.181.314-.168.519-.433.681-.863l-.04-.079c-.475-.084-.854.089-1.1.378-.112.163-.159.393-.275.536-.04.053-.095.093-.147.133-.054-.04-.108-.08-.148-.133-.116-.144-.163-.373-.275-.536-.246-.289-.625-.462-1.1-.378l-.039.079c.161.431.365.695.679.863.168.067.394.078.543.181.032.021.053.053.08.079-.02.009-.035.021-.055.028-.385.144-.674.396-.912.684-.207.316-.354.679-.333 1.14l.071.05c.438-.135.727-.351.979-.597.208-.26.386-.539.51-.887.123.348.301.627.509.887.253.246.543.462.979.597l.072-.05c.021-.461-.126-.823-.333-1.14-.24-.287-.529-.54-.912-.684"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C22.8,2,14.6,6.1,9.1,12.7V32h52.1v-7C58,11.8,46.2,2,32,2z" fill="#ed4c5c"/><path d="M9.1,32v19.3C14.6,57.9,22.8,62,32,62c14.2,0,26-9.8,29.2-23v-7H9.1z" fill="#83bf4f"/><g fill="#3e4347"><path d="M9.1,12.7c-0.9,1.1-1.8,2.3-2.6,3.5v3.7h-2C2.9,23.6,2,27.7,2,32s0.9,8.4,2.6,12.1h2v3.7
+ c0.8,1.2,1.6,2.4,2.6,3.5L28.4,32L9.1,12.7z"/><path d="m61.9 34v-4c-.1-1.7-.4-3.4-.8-5h-52v14h52.1c.4-1.6.6-3.3.7-5"/></g><path d="m6.5 16.2c-.7 1.2-1.4 2.4-2 3.7l12.2 12.1-12.1 12.1c.6 1.3 1.2 2.5 2 3.7l13.7-13.8h41.6c0-.7.1-1.3.1-2s0-1.3-.1-2h-41.6l-13.8-13.8" fill="#ffce31"/><g fill="#fdce12"><path d="m7.3 26.7c-1.1 0-4.6.8-4.6 4.4s3.4 4 4.1 4c.7 0 3.2-.6 2.9-3.3 0 .8-.9 2.4-2.7 2.4-1.8 0-3-1.4-3-2.7s1.1-3.1 3-3.1 3.3 1.7 3.3 3.4c0 1.7-1.4 3.9-3.5 3.9 0 0 0 1.3 0 2.1 1.8 0 5.3-1.4 5.3-5.8.1-4.5-3.7-5.3-4.8-5.3"/><path d="m7.4 30.9c0-.1 0-.1 0 0v-.1c.1-.1.4-.1.5-.2.3-.2.5-.4.7-.9v-.1c-.5-.1-.9.1-1.1.4-.1.2-.2.4-.3.5 0 .1-.1.1-.1.1-.1 0-.1-.1-.1-.1-.1-.1-.2-.4-.3-.5-.2-.3-.6-.5-1.1-.4v.1c.2.4.4.7.7.9.2.1.4.1.5.2 0 0 .1.1.1.1 0 0 0 0-.1 0-.4.1-.7.4-.9.7-.2.3-.4.7-.3 1.1h.1c.4-.1.7-.4 1-.6.2-.3.4-.5.5-.9.1.3.3.6.5.9.3.2.5.5 1 .6h.1c0-.5-.1-.8-.3-1.1-.4-.3-.7-.6-1.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fb.svg
new file mode 100644
index 0000000..fd7586d
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m38.4 17.5h6.3l-9.9 29h-5.7l-9.8-29h6.5l6.3 22 6.3-22" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1eb.svg
index 2e3646b..16bfba0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1eb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="M2,32c0,13.062,8.35,24.168,20,28.287V3.715C10.35,7.834,2,18.939,2,32z"/><path fill="#ed4c5c" d="m62 32c0-13.06-8.35-24.17-20-28.29v56.57c11.65-4.119 20-15.225 20-28.29"/><path fill="#f9f9f9" d="M22,60.287C25.128,61.393,28.493,62,32,62s6.872-0.607,10-1.713V3.715C38.872,2.608,35.507,2,32,2
- s-6.872,0.608-10,1.715V60.287z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,13.1,8.4,24.2,20,28.3V3.7C10.4,7.8,2,18.9,2,32z" fill="#428bc1"/><path d="m62 32c0-13.1-8.3-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3" fill="#ed4c5c"/><path d="M22,60.3c3.1,1.1,6.5,1.7,10,1.7s6.9-0.6,10-1.7V3.7C38.9,2.6,35.5,2,32,2s-6.9,0.6-10,1.7V60.3z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1f8.svg
index 4a6f755..67b769c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fc-1f1f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32,2v30H2c0,16.568,13.432,30,30,30s30-13.432,30-30S48.568,2,32,2z"/><path fill="#2a5f9e" d="M32,2C15.432,2,2,15.432,2,32h30V2z"/><g fill="#fff"><path d="m19 13.06l1.236.939-.466-1.523 1.23-.948-1.523-.006-.477-1.522-.479 1.522-1.521.006 1.23.948-.468 1.523z"/><path d="m19 27.06l1.236.94-.466-1.528 1.23-.946-1.523-.004-.477-1.522-.479 1.522-1.521.004 1.23.946-.468 1.528z"/><path d="m14 18.06l1.238.94-.468-1.526 1.23-.946-1.525-.006-.475-1.522-.475 1.522-1.525.006 1.23.946-.466 1.526z"/><path d="m23.996 18.06l1.234.94-.462-1.526 1.232-.946-1.525-.006-.479-1.522-.471 1.522-1.525.006 1.23.946-.47 1.526z"/><path d="m22 22.53l.631.47-.24-.76.629-.475-.78-.004-.24-.761-.24.761-.778.004.627.475-.238.76z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2v30H2c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2z" fill="#ed4c5c"/><path d="M32,2C15.4,2,2,15.4,2,32h30V2z" fill="#2a5f9e"/><g fill="#fff"><path d="m19 13.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m19 27.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m14 18.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m24 18.1l1.2.9-.4-1.5 1.2-1h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5z"/><path d="m22 22.5l.6.5-.2-.8.6-.4h-.8l-.2-.8-.2.8h-.8l.6.4-.2.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fc.svg
new file mode 100644
index 0000000..3f2ce79
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m20 17.5l3.8 16.6.8 4.6.8-4.5 3.3-16.7h6.4l3.4 16.6.9 4.6.9-4.4 3.9-16.8h6.2l-8.2 29h-5.8l-3.5-17-1-5.6-1 5.6-3.5 17h-5.6l-8.2-29c0 0 6.4 0 6.4 0" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fd-1f1f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fd-1f1f0.svg
index 1ae0bab..4a771e9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fd-1f1f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fd-1f1f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><path fill="#dbb471" d="m29.02 26.76c0 0-1 1.537-2.701 2.154 0 0 .078 2.539-1.471 2.689-1.539.154-2.852 0-2.852 0s.23 2.311-.849 1.693c-1.083-.613-4.091-.461-2.856 1.309 1.235 1.768 3.086 2.617 3.628 6.768 0 0 5.168 1.846 5.555 5.461.388 3.613-.073 4.289-.073 4.289s3.165.172 3.165-2.367c0-2.543 1.926-2.383 2.775-2.463s1.697-2.383 2.857-1.383c1.156 1 2.156 1.232 3.086-.23.926-1.461 3.627-1.691 3.627-1.691s.077-4.309 3.088-6.923c0 0-1.467-2.615-4.938-2.615 0 0-.232-3.152-2.935-3.152 0 0-1.853-3.539-5.02-3.539 0 0-1.107-1.402-1.107-3.635 0 0-1.977.324-2.825 1.02-.849.697-1.466.615-1.466.615s.771.691 1.312 2"/><g fill="#fff"><path d="m28 17.467l1.854 1.408-.704-2.289 1.85-1.42-2.287-.006-.713-2.285-.71 2.285-2.29.006 1.847 1.42-.697 2.289z"/><path d="m21 19.467l1.854 1.408-.704-2.289 1.85-1.416-2.287-.01-.713-2.285-.713 2.285-2.287.01 1.847 1.416-.697 2.289z"/><path d="m36 17.467l1.854 1.408-.704-2.289 1.85-1.42-2.287-.006-.713-2.285-.71 2.285-2.29.006 1.847 1.42-.697 2.289z"/><path d="m14 23.467l1.854 1.408-.704-2.289 1.85-1.416-2.287-.01-.713-2.285-.713 2.285-2.287.01 1.847 1.416-.701 2.289z"/><path d="m50 22.467l1.854 1.408-.704-2.289 1.85-1.416-2.287-.01-.713-2.285-.71 2.285-2.29.01 1.847 1.416-.697 2.289z"/><path d="m43 19.467l1.854 1.408-.704-2.289 1.85-1.416-2.287-.01-.713-2.285-.71 2.285-2.29.01 1.847 1.416-.697 2.289z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#428bc1"/><path d="m29 26.8c0 0-1 1.5-2.7 2.2 0 0 .1 2.5-1.5 2.7-1.5.2-2.9 0-2.9 0s.2 2.3-.8 1.7c-1.1-.6-4.1-.5-2.9 1.3 1.2 1.8 3.1 2.6 3.6 6.8 0 0 5.2 1.8 5.6 5.5.4 3.6-.1 4.3-.1 4.3s3.2.2 3.2-2.4c0-2.5 1.9-2.4 2.8-2.5s1.7-2.4 2.9-1.4c1.2 1 2.2 1.2 3.1-.2.9-1.5 3.6-1.7 3.6-1.7s.1-4.3 3.1-6.9c0 0-1.5-2.6-4.9-2.6 0 0-.2-3.2-2.9-3.2 0 0-1.9-3.5-5-3.5 0 0-1.1-1.4-1.1-3.6 0 0-2 .3-2.8 1-.8.7-1.5.6-1.5.6s.7.6 1.2 1.9" fill="#dbb471"/><g fill="#fff"><path d="m28 17.5l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m21 19.5l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m36 17.5l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m14 23.5l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m50 22.5l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/><path d="m43 19.5l1.9 1.4-.7-2.3 1.8-1.4h-2.3l-.7-2.3-.7 2.3h-2.3l1.8 1.4-.7 2.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fd.svg
new file mode 100644
index 0000000..0b95b59
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m26.2 46.5h-7l9.3-14.8-8.9-14.2h7.2l5.2 9.4 5.3-9.4h7l-8.9 14 9.4 15h-7.4l-5.4-9.9-5.8 9.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1ea.svg
index 5f99995..beeca62 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1ea.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="M32,2C18.939,2,7.834,10.35,3.715,22h56.572C56.168,10.35,45.061,2,32,2z"/><path fill="#3e4347" d="m32 62c13.06 0 24.17-8.35 28.29-20h-56.57c4.119 11.65 15.224 20 28.29 20"/><path fill="#f9f9f9" d="M3.715,22C2.607,25.129,2,28.492,2,32s0.607,6.871,1.715,10h56.572C61.393,38.871,62,35.508,62,32
- s-0.607-6.871-1.713-10H3.715z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C18.9,2,7.8,10.4,3.7,22h56.6C56.2,10.4,45.1,2,32,2z" fill="#c94747"/><path d="M32,62c13.1,0,24.2-8.3,28.3-20H3.7C7.8,53.7,18.9,62,32,62z" fill="#3e4347"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32s0.6,6.9,1.7,10h56.6c1.1-3.1,1.7-6.5,1.7-10s-0.6-6.9-1.7-10H3.7z" fill="#f9f9f9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1f9.svg
index 93728f8..b2627bf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fe-1f1f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f5f5f5" cx="32" cy="32" r="30"/><path fill="#ed4c5c" d="m17.773 21.17v-4.063h1.326l.866 3.093.855-3.093h1.33v4.063h-.84v-3.277l-.885 3.277h-.915l-.897-3.277v3.277h-.84m6.909-3.25l-.602 1.729h1.209l-.607-1.729m-.52-.813h1.035l1.57 4.063h-.941l-.295-.836h-1.689l-.287.836h-.943l1.55-4.063m5 4.063h-.895v-1.515l-1.582-2.549h1.096l.932 1.752.861-1.752h1.023l-1.436 2.549v1.515m2.552-2.027c0 .446.105.794.318 1.042.213.247.512.37.895.37.385 0 .686-.123.9-.37.215-.248.322-.596.322-1.042 0-.447-.107-.794-.322-1.04-.215-.248-.516-.373-.9-.373-.383 0-.682.124-.895.37s-.318.594-.318 1.043m-.914 0c0-.657.191-1.178.574-1.562.383-.387.9-.579 1.553-.579.65 0 1.168.192 1.551.579.387.386.58.906.58 1.562 0 .654-.193 1.175-.58 1.562-.383.386-.9.579-1.551.579-.652 0-1.17-.193-1.553-.579-.383-.387-.574-.908-.574-1.562m5.871 2.027v-3.338h-1.293v-.726h3.473v.726h-1.285v3.338h-.895m3.596 0v-3.338h-1.293v-.726h3.473v.726h-1.283v3.338h-.897m2.693 0v-4.063h3.162v.706h-2.277v.866h2.082v.695h-2.082v1.046h2.385v.75h-3.27"/><path fill="#3e4347" d="m22.73 44.749c-1.258.426-3.07 1.301-3.794 1.791-.233.17-.213.359.15 1.086.256.469.512.873.555.873.063 0 .766-.318 1.555-.723.789-.385 1.797-.891 2.26-.982.354-.068.678-.135.877-.219.081.197.031.09.178.395.211.443.08.434.445.555.385.127 1.334-.389 1.334-.389 1.108-.383 1.727-.426 5.711-.426s4.604.043 5.711.447c0 0 .893.303 1.01.342.111.035.174.063.295.035.109-.027.223-.195.273-.297 0 0 .246-.59.309-.795.213.104.598.236.973.352.447.15 1.449.598 2.236.982.789.404 1.492.723 1.557.723.041 0 .299-.404.555-.873.51-1 .553-.916-1.301-1.875-2.473-1.279-4.943-1.854-5.18-1.236-.043.119-.078.186-.137.338-.248-.057-.898-.211-1.547-.316-2-.363-7.5-.363-9.504 0-.649.105-1.09.283-1.457.387-.207-.416-.164-.25-.206-.367-.172-.429-1.301-.361-2.856.192"/><g fill="#dfdfdf"><path d="m24.754 44.44c-.916.029-2.631.615-4.367 1.498-1.492.746-1.534.789-1.13 1.578.171.363.364.684.384.725l.004.004c.08.021.744-.273 1.507-.666.811-.404 1.836-.85 2.283-.977.331-.117.569-.129.865-.191-.054-.314.013-.043-.196-.641.242-.607.708-1.131 1.162-1.244-.118-.064-.289-.091-.512-.086"/><path d="m31.756 44.46c-1.768.018-3.504.104-4.297.227-1.354.225-2.084.654-2.586.916-.186.135-.346.168-.545.289.158.359.152.576.285.889.145.332.072.543.463.551.387.012 1.233-.406 1.233-.406 1.088-.385 1.728-.428 5.69-.428 3.986 0 4.789.127 5.709.447.668.23.943.412 1.213.365.137-.027.209-.225.305-.465.133-.326.291-.764.369-1.313-.209-.031-.115.076-.4-.053-.619-.275-.736-.297-1.143-.469-.482-.203-.936-.203-1.645-.336-.832-.129-2.678-.178-4.482-.215h-.169"/><path d="m39.16 44.46c-.119 0-.223.014-.309.039.186.115.404.313.525.375.445.234.445.451.4.854-.02.186-.035.256-.109.512.168.076.58.246.922.363.426.127 1.447.572 2.258.977.752.387 1.408.678 1.504.666l.006-.004h.004c.02-.041.213-.361.385-.725.277-.533.297-.723.084-.893-.469-.385-2.365-1.26-3.73-1.729-.873-.291-1.514-.439-1.94-.435"/><path d="m38.625 44.634l-.041.051c-.064.08-.074.164-.094.262.143.049.619.346.863.336l.119-.014.006-.002.002-.004.006-.006.006-.002.002-.004v-.002-.004-.002-.004l-.002-.01-.006-.006-.006-.008c-.033-.045-.137-.117-.34-.23-.146-.08-.376-.24-.515-.351"/><path d="m25.393 44.64c-.14.107-.377.254-.529.357-.274.186-.314.33-.434.59l-.006.016v.004h.003.003c.04-.018.246-.205.742-.373.426-.16.199-.082.463-.191-.174-.27-.197-.287-.217-.352l-.025-.051"/></g><path fill="#2a5f9e" d="m26.05 24.776c-.475.246-.719.609-.759 1.102-.038.531.077.907.382 1.192.137.137.254.266.254.299 0 .025-.104.154-.234.277-.304.285-.479.662-.479 1.051 0 .402.123.68.453 1.043l.272.299-.298.33c-.596.662-.577 1.418.044 2.047l.267.279h6.105 6.098l.297-.318c.576-.615.576-1.283.008-1.988l-.293-.357.273-.322c.596-.713.582-1.369-.033-2.055-.277-.305-.285-.363-.064-.506.355-.24.576-1.049.414-1.542-.238-.738-1.27-1.231-1.898-.907-.117.059-.35.221-.525.356-.174.143-.336.253-.369.253-.025 0-.182-.116-.342-.26-.629-.537-1.369-.499-1.998.11l-.238.233-.318-.292c-.641-.603-1.445-.577-2.1.059l-.24.233-.26-.233c-.381-.35-.633-.453-1.074-.46-.422-.007-.816.169-1.129.505l-.154.162-.338-.284c-.623-.534-1.122-.624-1.724-.306"/><path fill="#ed4c5c" d="m25.736 33.08c-.636.705-.629 1.426.013 2.139l.239.266-.272.297c-.148.162-.311.395-.362.514-.207.498-.051 1.166.355 1.547.247.24.254.338.021.623-.104.123-.228.297-.272.389-.485.92.24 2.074 1.314 2.074.429 0 .753-.137 1.043-.447.234-.246.357-.254.564-.033.305.338.707.545 1.045.545.395 0 .641-.123 1.043-.506l.305-.299.277.305c.604.648 1.213.668 2.023.053l.33-.246.285.258c.355.313.621.436.971.436.352 0 .609-.137 1.018-.537l.338-.324.26.232c.498.447.771.59 1.133.59.377 0 .643-.123 1.018-.461.352-.316.539-.686.492-.99-.045-.332-.344-.934-.563-1.141l-.188-.182.291-.33c.635-.746.641-1.322.014-2.063l-.26-.311.271-.33c.609-.719.604-1.387-.012-2.041l-.332-.344-6.06.008-6.07.006-.272.303"/><path fill="#3e4347" d="m24.395 32.23c0 0 .004 6.06.016 8.379-.021.344.18.426.475.654.475.369.982.756 3.703.545 2.5.016 3.02.209 3.285 1.205l.141.559.121-.559c.193-.961.785-1.189 3.197-1.205 3.105.047 3.363-.148 3.807-.529 0 0 .326-.25.408-.49.096-.27.049-.49.049-.49v-8.07-8.493h-7.6-7.602v8.492m15.03.071l.033 6.996c0 .941.068 1.23-.033 1.41-.1.18-.303.418-.303.418-.473.473-.873.568-3.02.541-1.391.002-2.141.041-3.236.215-.172.154-.645.141-.863 1.039-.285-.898-.49-.859-.49-.859-1.162-.488-1.684-.393-3.547-.41-1.206.174-2.5-.053-2.989-.541 0 0-.073.02-.401-.369.002-1.705 0-8.439 0-8.439v-8.388h7.428 7.426v8.387z"/><path fill="#fff" d="m30.93 29.351c.84.541 2.113.367 2.76-.35.264-.297.424-.76.49-.996.066-.232.078-.268.117-.498.102.225.158.342.205.689.07.516-.043.945-.166 1.26-.609 1.607-2.566 2.098-3.791.943-.596-.543-1.066-1.607-.809-2.293.092-.244.113-.383.232-.641.021.176.035.416.156.785.159.507.439.874.806 1.101"/><path fill="#ffce31" d="m29.05 35.659c-.012.379.008.551.066.832-.189-.184-.381-.313-.646-.465-.334-.195-.758-.381-.902-.143-.139.229.26.541.57.717.34.191.537.219.758.305-.188.1-.443.166-.727.348-.277.178-.693.547-.535.783.16.24.623-.029.885-.205.217-.145.506-.375.617-.494-.021.17-.09.508-.084.83.006.391.061.828.352.828.299-.002.359-.518.355-.865-.004-.365-.045-.621-.082-.801.129.131.324.318.58.521.211.166.73.414.885.176.158-.24-.088-.48-.539-.766-.316-.201-.541-.27-.748-.355.209-.086.438-.107.771-.311.494-.301.703-.502.551-.762-.146-.25-.445-.113-.896.174-.242.154-.469.359-.623.506.035-.23.072-.572.07-.824-.006-.377-.086-.861-.342-.863-.258-.002-.322.42-.336.834"/><path fill="#fff" d="m29.779 36.909c0 .219-.178.398-.398.398-.219 0-.398-.18-.398-.398 0-.221.18-.398.398-.398.221 0 .398.178.398.396"/><path fill="#ffce31" d="m34.26 35.659c-.014.379.006.551.066.832-.191-.184-.383-.313-.646-.465-.336-.195-.76-.381-.904-.143-.139.229.26.541.57.717.34.191.535.219.758.305-.188.1-.443.166-.727.348-.277.178-.693.547-.537.783.162.24.625-.029.887-.205.217-.145.506-.375.619-.494-.023.17-.09.508-.084.83.004.391.059.828.35.828.299-.002.361-.518.355-.865-.004-.365-.045-.621-.082-.801.129.131.324.318.58.521.213.166.73.414.885.176.158-.24-.088-.48-.539-.766-.316-.201-.541-.27-.748-.355.209-.086.438-.107.771-.311.494-.301.703-.502.553-.762-.148-.25-.447-.113-.898.174-.242.154-.469.359-.623.506.035-.23.074-.572.07-.824-.004-.377-.086-.861-.342-.863-.258-.002-.323.42-.334.834"/><path fill="#fff" d="m34.992 36.909c0 .219-.178.398-.398.398-.219 0-.396-.18-.396-.398 0-.221.178-.398.396-.398.221 0 .398.178.398.396"/><path fill="#3e4347" d="m23.385 34.743c-.447-1.809-1.402-3.213-2.688-4.01.65.025 1.111-.012 1.111-.012l1.451-.121-1.221-.795c-.359-.234-1.395-1.064-1.436-1.771-.01-.158.02-.404.379-.703l.891-.737-.996-.125.395-.951-1.094.273-.107-.997.406-.262-.859-.776-.793-.07-.923.36-.273-.821-.482.751-.557-.763-.308 1.232-.761-.435-.188.966-1.032-.767.086 1.609-1.549-.259.355 1.199-1.304-.096 1.016 1.927-1.186.734 1.697 1.672.041.455-3.466-.844 2.059 2.1-.563 2.055 2.373.189-.897 1.855 2.919-.734.721 1.895c-.129-.035-.263-.053-.398-.053-1.616 0-3.035 2.453-3.035 3.934 0 1.408 2.359 3.832 4.774 3.832 1.01 0 1.919-.4 2.708-1.191 2.505-2.507 3.579-6.333 2.734-9.747m-5.361 1.641c.623.576 1.837 1.965 1.89 4.078.018.719-.424 1.648-1.127 2.369-.471.484-.899.705-1.121.705h-.002c-1.912-.363-2.904-1.211-2.794-2.389.085-.898.746-1.508.946-1.508.361 0 .386.09.428.471.024.217.061.543.38.688l.181.063h.107c.354 0 .679-.258.852-.672.193-.469.192-1.176-.391-1.76-.188-.188-.396-.324-.618-.41l1.269-1.635"/><path fill="#dfdfdf" d="m18.942 24.288l-1.304.508-.109-.328-.313.486-.355-.488-.208.834-.729-.416-.208 1.063-.813-.605.063 1.168-1.375-.23.333 1.125-1.125-.082.813 1.541-1.042.646 1.375 1.354.119 1.334-2.443-.596 1.033 1.053-.479 1.75 2.5.199-.75 1.551 2.313-.582.625 1.645 1.13-1.455c0 0 2.39 1.639 2.468 4.779.045 1.752-1.937 3.75-2.843 3.578-5.04-.957-2.922-4.887-1.754-4.887 1.16 0 .808 1.109 1.014 1.203.358.162.926-.824.189-1.561-1.367-1.367-3.352 1.406-3.352 3.066 0 1.381 3.773 5.143 6.628 2.287 4.326-4.326 3.52-12.08-.863-13.432-4.357-1.348-3.267-3.246-3.267-3.246.451 3.193 5.601 2.768 5.601 2.768s-2.837-1.84-1.104-3.277l-.5-.063.266-.641-.688.172-.094-.875-.531.547-.753-.17-.187-.498 1.481-.953-.252-.227-.51-.045"/><path fill="#3e4347" d="m43.35 44.489c.789.791 1.701 1.191 2.709 1.191 2.414 0 4.773-2.424 4.773-3.832 0-1.48-1.418-3.934-3.035-3.934-.137 0-.27.018-.398.053l.721-1.895 2.92.734-.898-1.855 2.373-.189-.563-2.055 2.059-2.1-3.467.846.039-.455 1.697-1.672-1.186-.734 1.016-1.927-1.303.096.355-1.199-1.549.259.086-1.609-1.031.768-.189-.966-.76.435-.309-1.232-.555.763-.482-.751-.273.821-.924-.36-.793.07-.859.776.404.262-.105.997-1.095-.275.395.951-.996.125.891.737c.357.299.387.545.379.703-.041.707-1.076 1.537-1.438 1.771l-1.219.795 1.451.121c0 0 .461.037 1.111.012-1.287.795-2.24 2.199-2.688 4.01-.845 3.414.23 7.24 2.736 9.746m3.896-6.47c-.223.086-.432.223-.619.41-.584.584-.584 1.291-.391 1.76.172.414.498.672.852.672h.107l.18-.063c.32-.145.357-.471.381-.688.043-.381.066-.471.428-.471.201 0 .861.609.945 1.508.111 1.178-.881 2.025-2.793 2.389h-.002c-.223 0-.65-.221-1.121-.705-.703-.721-1.145-1.65-1.127-2.369.053-2.113 1.266-3.502 1.891-4.078l1.269 1.635"/><path fill="#dfdfdf" d="m45.06 24.288l-.51.045-.25.227 1.48.953-.188.498-.754.17-.531-.547-.094.875-.688-.172.266.641-.5.063c1.734 1.438-1.104 3.277-1.104 3.277s5.15.426 5.602-2.768c0 0 1.09 1.898-3.268 3.246-4.381 1.355-5.189 9.105-.863 13.432 2.855 2.855 6.629-.906 6.629-2.287 0-1.66-1.984-4.434-3.352-3.066-.736.736-.168 1.723.189 1.561.207-.094-.146-1.203 1.014-1.203 1.168 0 3.289 3.93-1.754 4.887-.906.172-2.887-1.826-2.844-3.578.078-3.141 2.469-4.779 2.469-4.779l1.131 1.455.625-1.645 2.313.582-.75-1.551 2.5-.199-.48-1.75 1.033-1.053-2.443.596.119-1.334 1.375-1.354-1.041-.646.813-1.541-1.125.082.332-1.125-1.375.23.063-1.168-.813.605-.207-1.063-.73.416-.207-.834-.355.488-.313-.486-.109.328-1.305-.508"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f5f5f5"/><path d="m17.8 21.2v-4.1h1.3l.9 3.1.9-3.1h1.3v4.1h-.8v-3.3l-.9 3.3h-.9l-.9-3.3v3.3h-.9m6.9-3.3l-.6 1.7h1.2l-.6-1.7m-.5-.8h1l1.6 4.1h-.9l-.3-.8h-1.7l-.3.8h-.9l1.5-4.1m5 4.1h-.9v-1.5l-1.6-2.5h1.1l.9 1.8.9-1.8h1l-1.4 2.5v1.5m2.5-2.1c0 .4.1.8.3 1 .2.2.5.4.9.4.4 0 .7-.1.9-.4.2-.2.3-.6.3-1 0-.4-.1-.8-.3-1-.2-.2-.5-.4-.9-.4-.4 0-.7.1-.9.4s-.3.6-.3 1m-.9 0c0-.7.2-1.2.6-1.6.4-.4.9-.6 1.6-.6.7 0 1.2.2 1.6.6.4.4.6.9.6 1.6 0 .7-.2 1.2-.6 1.6-.4.4-.9.6-1.6.6-.7 0-1.2-.2-1.6-.6-.4-.4-.6-.9-.6-1.6m5.9 2.1v-3.3h-1.3v-.7h3.5v.7h-1.3v3.3h-.9m3.6 0v-3.3h-1.3v-.7h3.5v.7h-1.3v3.3h-.9m2.7 0v-4.1h3.2v.7h-2.3v.9h2.1v.7h-2.1v1h2.4v.8h-3.3" fill="#ed4c5c"/><path d="m22.7 44.7c-1.3.4-3.1 1.3-3.8 1.8-.2.2-.2.4.1 1.1.3.5.5.9.6.9.1 0 .8-.3 1.6-.7.8-.4 1.8-.9 2.3-1 .4-.1.7-.1.9-.2.1.2 0 .1.2.4.2.4.1.4.4.6.4.1 1.3-.4 1.3-.4 1.1-.4 1.7-.4 5.7-.4s4.6 0 5.7.4c0 0 .9.3 1 .3.1 0 .2.1.3 0 .1 0 .2-.2.3-.3 0 0 .2-.6.3-.8.2.1.6.2 1 .4.4.2 1.4.6 2.2 1 .8.4 1.5.7 1.6.7 0 0 .3-.4.6-.9.5-1 .6-.9-1.3-1.9-2.5-1.3-4.9-1.9-5.2-1.2 0 .1-.1.2-.1.3-.2-.1-.9-.2-1.5-.3-2-.4-7.5-.4-9.5 0-.6.1-1.1.3-1.5.4-.2-.4-.2-.2-.2-.4-.3-.4-1.4-.3-3 .2" fill="#3e4347"/><g fill="#dfdfdf"><path d="m24.8 44.4c-.9 0-2.6.6-4.4 1.5-1.5.7-1.5.8-1.1 1.6.2.4.4.7.4.7.1 0 .7-.3 1.5-.7.8-.4 1.8-.8 2.3-1 .3-.1.6-.1.9-.2-.1-.3 0 0-.2-.6.2-.6.7-1.1 1.2-1.2-.3 0-.4-.1-.6-.1"/><path d="m31.8 44.5c-1.8 0-3.5.1-4.3.2-1.4.2-2.1.7-2.6.9-.2.1-.3.2-.5.3.2.4.2.6.3.9.1.3.1.5.5.6.4 0 1.2-.4 1.2-.4 1.1-.4 1.7-.4 5.7-.4 4 0 4.8.1 5.7.4.7.2.9.4 1.2.4.1 0 .2-.2.3-.5.1-.3.3-.8.4-1.3-.2 0-.1.1-.4-.1-.6-.3-.7-.3-1.1-.5-.5-.2-.9-.2-1.6-.3-.8-.1-2.7-.2-4.5-.2h-.3"/><path d="m39.2 44.5c-.1 0-.2 0-.3 0 .2.1.4.3.5.4.4.2.4.5.4.9 0 .2 0 .3-.1.5.2.1.6.2.9.4.4.1 1.4.6 2.3 1 .8.4 1.4.7 1.5.7 0 0 .2-.4.4-.7.3-.5.3-.7.1-.9-.5-.4-2.4-1.3-3.7-1.7-1-.5-1.6-.6-2-.6"/><path d="m38.6 44.6c-.1.1-.1.2-.1.3.1 0 .6.3.9.3h.1c0 0-.1-.1-.3-.2-.2-.1-.4-.3-.6-.4"/><path d="m25.4 44.6c-.1.1-.4.3-.5.4-.3.2-.3.3-.4.6 0 0 .2-.2.7-.4.4-.2.2-.1.5-.2-.2-.2-.3-.2-.3-.4"/></g><path d="m26.1 24.8c-.5.2-.7.6-.8 1.1 0 .5.1.9.4 1.2.1.1.3.3.3.3 0 0-.1.2-.2.3-.3.3-.5.7-.5 1.1 0 .4.1.7.5 1l.3.3-.3.3c-.6.7-.6 1.4 0 2l.3.3h6.1 6.1l.3-.3c.6-.6.6-1.3 0-2l-.4-.4.3-.3c.6-.7.6-1.4 0-2.1-.3-.3-.3-.4-.1-.5.4-.2.6-1 .4-1.5-.2-.7-1.3-1.2-1.9-.9-.1.1-.3.2-.5.4-.2.1-.3.3-.4.3 0 0-.2-.1-.3-.3-.6-.5-1.4-.5-2 .1l-.2.2-.3-.3c-.6-.6-1.4-.6-2.1.1l-.2.2-.3-.2c-.4-.4-.6-.5-1.1-.5-.4 0-.8.2-1.1.5l-.2.2-.3-.3c-.7-.6-1.2-.6-1.8-.3" fill="#2a5f9e"/><path d="m25.7 33.1c-.6.7-.6 1.4 0 2.1l.2.3-.3.3c-.1.2-.3.4-.4.5-.2.5-.1 1.2.4 1.5.2.2.3.3 0 .6-.1.1-.2.3-.3.4-.5.9.2 2.1 1.3 2.1.4 0 .8-.1 1-.4.2-.2.4-.3.6 0 .3.3.7.5 1 .5.4 0 .6-.1 1-.5l.3-.3.3.3c.6.6 1.2.7 2 .1l.3-.2.3.3c.4.3.6.4 1 .4.4 0 .6-.1 1-.5l.3-.3.3.2c.5.4.8.6 1.1.6.4 0 .6-.1 1-.5.4-.3.5-.7.5-1 0-.3-.3-.9-.6-1.1l-.2-.2.3-.3c.6-.7.6-1.3 0-2.1l-.3-.3.3-.3c.6-.7.6-1.4 0-2l-.3-.3h-6.1-6.1l.1.1" fill="#ed4c5c"/><path d="m24.4 32.2c0 0 0 6.1 0 8.4 0 .3.2.4.5.7.5.4 1 .8 3.7.5 2.5 0 3 .2 3.3 1.2l.1.6.1-.6c.2-1 .8-1.2 3.2-1.2 3.1 0 3.4-.1 3.8-.5 0 0 .3-.2.4-.5.1-.3 0-.5 0-.5v-8.1-8.5h-7.5-7.6c0 0 0 8.5 0 8.5m15 .1v7c0 .9.1 1.2 0 1.4-.1.2-.3.4-.3.4-.5.5-.9.6-3 .5-1.4 0-2.1 0-3.2.2-.2.2-.6.1-.9 1-.3-.9-.5-.9-.5-.9-1.2-.5-1.7-.4-3.5-.4-1.2.2-2.5-.1-3-.5 0 0-.1 0-.4-.4 0-1.7 0-8.4 0-8.4v-8.4h7.4 7.4v8.5" fill="#3e4347"/><path d="m30.9 29.4c.8.5 2.1.4 2.8-.4.3-.3.4-.8.5-1 .1-.2.1-.3.1-.5.1.2.2.3.2.7.1.5 0 .9-.2 1.3-.6 1.6-2.6 2.1-3.8.9-.6-.5-1.1-1.6-.8-2.3.1-.2.1-.4.2-.6 0 .2 0 .4.2.8.2.5.5.8.8 1.1" fill="#fff"/><path d="m29 35.7c0 .4 0 .6.1.8-.2-.2-.4-.3-.6-.5-.3-.2-.8-.4-.9-.1-.1.2.3.5.6.7.3.2.5.2.8.3-.2.1-.4.2-.7.3-.3.2-.7.5-.5.8.2.2.6 0 .9-.2.2-.1.5-.4.6-.5 0 .2-.1.5-.1.8 0 .4.1.8.4.8.3 0 .4-.5.4-.9 0-.4 0-.6-.1-.8.1.1.3.3.6.5.2.2.7.4.9.2.2-.2-.1-.5-.5-.8-.3-.2-.5-.3-.7-.4.2-.1.4-.1.8-.3.5-.3.7-.5.6-.8-.1-.2-.4-.1-.9.2-.2.2-.5.4-.6.5 0-.2.1-.6.1-.8 0-.4-.1-.9-.3-.9-.8.2-.8.6-.9 1.1" fill="#ffce31"/><path d="m29.8 36.9c0 .2-.2.4-.4.4-.2 0-.4-.2-.4-.4 0-.2.2-.4.4-.4.2 0 .4.2.4.4" fill="#fff"/><path d="m34.3 35.7c0 .4 0 .6.1.8-.2-.2-.4-.3-.6-.5-.3-.2-.8-.4-.9-.1-.1.2.3.5.6.7.3.2.5.2.8.3-.2.1-.4.2-.7.3-.3.2-.7.5-.5.8.2.2.6 0 .9-.2.2-.1.5-.4.6-.5 0 .2-.1.5-.1.8 0 .4.1.8.3.8.3 0 .4-.5.4-.9 0-.4 0-.6-.1-.8.1.1.3.3.6.5.2.2.7.4.9.2.2-.2-.1-.5-.5-.8-.3-.2-.5-.3-.7-.4.2-.1.4-.1.8-.3.5-.3.7-.5.6-.8-.1-.2-.4-.1-.9.2-.2.2-.5.4-.6.5 0-.2.1-.6.1-.8 0-.4-.1-.9-.3-.9-.8.2-.8.6-.8 1.1" fill="#ffce31"/><path d="m35 36.9c0 .2-.2.4-.4.4-.2 0-.4-.2-.4-.4 0-.2.2-.4.4-.4.2 0 .4.2.4.4" fill="#fff"/><path d="m23.4 34.7c-.4-1.8-1.4-3.2-2.7-4 .6 0 1.1 0 1.1 0l1.5-.1-1.3-.8c-.4-.2-1.4-1.1-1.4-1.8 0-.2 0-.4.4-.7l.9-.7-1-.1.4-1-1.1.3-.1-1 .4-.3-.9-.8-.8-.1-.9.4-.3-.8-.5.8-.6-.8-.3 1.2-.7-.4-.2 1-1-.8.1 1.6-1.5-.3.4 1.2-1.3-.1 1 1.9-1.2.7 1.7 1.7v.5l-3.5-.8 2.1 2.1-.6 2.1 2.4.2-.9 1.8 2.9-.7.7 1.9c-.1 0-.3-.1-.4-.1-1.6 0-3 2.5-3 3.9 0 1.4 2.4 3.8 4.8 3.8 1 0 1.9-.4 2.7-1.2 2.5-2.4 3.5-6.2 2.7-9.7m-5.4 1.7c.6.6 1.8 2 1.9 4.1 0 .7-.4 1.6-1.1 2.4-.5.5-.9.7-1.1.7-1.9-.4-2.9-1.2-2.8-2.4.1-.9.7-1.5.9-1.5.4 0 .4.1.4.5 0 .2.1.5.4.7l.2.1h.1c.4 0 .7-.3.9-.7.2-.5.2-1.2-.4-1.8-.2-.2-.4-.3-.6-.4l1.2-1.7" fill="#3e4347"/><path d="m18.9 24.3l-1.3.5-.1-.3-.3.5-.4-.5-.2.8-.7-.4-.2 1.1-.8-.6.1 1.2-1.4-.2.3 1.1-1.1-.1.8 1.5-1 .6 1.4 1.4.1 1.3-2.4-.6 1 1.1-.5 1.8 2.5.2-.8 1.6 2.3-.6.6 1.6 1.1-1.5c0 0 2.4 1.6 2.5 4.8 0 1.8-1.9 3.8-2.8 3.6-5-1-2.9-4.9-1.8-4.9 1.2 0 .8 1.1 1 1.2.4.2.9-.8.2-1.6-1.4-1.4-3.4 1.4-3.4 3.1 0 1.4 3.8 5.1 6.6 2.3 4.3-4.3 3.5-12.1-.9-13.4-4.4-1.3-3.3-3.2-3.3-3.2.5 3.2 5.6 2.8 5.6 2.8s-2.6-2-.9-3.5h-.5l.3-.6-.7.2-.1-.9-.5.5-.8-.2-.2-.5 1.5-1-.3-.2h-.5" fill="#dfdfdf"/><path d="m43.4 44.5c.8.8 1.7 1.2 2.7 1.2 2.4 0 4.8-2.4 4.8-3.8 0-1.5-1.4-3.9-3-3.9-.1 0-.3 0-.4.1l.7-1.9 2.9.7-1-1.9 2.4-.2-.5-2.1 2.1-2.1-3.5.8v-.5l1.7-1.7-1.2-.7 1-1.9-1.3.1.4-1.2-1.5.3.1-1.6-1 .8-.2-1-.8.4-.3-1.2-.6.8-.5-.8-.3.8-.9-.4-.8.1-.9.8.4.3-.1 1-1.1-.3.4 1-1 .1.9.7c.4.3.4.5.4.7 0 .7-1.1 1.5-1.4 1.8l-1.2.8 1.5.1c0 0 .5 0 1.1 0-1.3.8-2.2 2.2-2.7 4-.9 3.5.1 7.3 2.7 9.8m3.8-6.5c-.2.1-.4.2-.6.4-.6.6-.6 1.3-.4 1.8.2.4.5.7.9.7h.1l.2-.1c.3-.1.4-.5.4-.7 0-.4.1-.5.4-.5.2 0 .9.6.9 1.5.1 1.2-.9 2-2.8 2.4-.2 0-.7-.2-1.1-.7-.7-.7-1.1-1.7-1.1-2.4.1-2.1 1.3-3.5 1.9-4.1l1.2 1.7" fill="#3e4347"/><path d="m45.1 24.3h-.5l-.2.2 1.5 1-.3.5-.8.2-.5-.5-.1.9-.7-.2.3.6h-.5c1.7 1.4-1.1 3.3-1.1 3.3s5.2.4 5.6-2.8c0 0 1.1 1.9-3.3 3.2-4.4 1.4-5.2 9.1-.9 13.4 2.9 2.9 6.6-.9 6.6-2.3 0-1.7-2-4.4-3.4-3.1-.7.7-.2 1.7.2 1.6.2-.1-.1-1.2 1-1.2 1.2 0 3.3 3.9-1.8 4.9-.9.2-2.9-1.8-2.8-3.6.1-3.1 2.5-4.8 2.5-4.8l1.1 1.5.6-1.6 2.3.6-.8-1.6 2.5-.2-.5-1.8 1-1.1-2.4.6.1-1.3 1.4-1.4-1-.6.8-1.5-1.1.1.3-1.1-1.2.3.1-1.2-.8.6-.2-1.1-.7.4-.2-.8-.4.6-.3-.5-.1.3-1.3-.5" fill="#dfdfdf"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1fe.svg
new file mode 100644
index 0000000..fe9e109
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M38,17.5h6.9l-9.7,18.1v10.9h-6.1V35.6l-10-18.1h7.1l6,12.6L38,17.5z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1e6.svg
index 7e85255..5253e63 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1e6.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="M60.899,40C61.604,37.451,62,34.773,62,32c0-2.774-0.401-5.451-1.108-8H31.74L14.823,7.417
- c-4.031,2.822-7.326,6.609-9.569,11.026L19,32L5.254,45.557c2.244,4.418,5.546,8.195,9.578,11.018L31.74,40H60.899z"/><path fill="#3e4347" d="M3.55,22.49C2.55,25.479,2,28.674,2,32c0,3.326,0.55,6.521,1.55,9.51L13.191,32L3.55,22.49z"/><path fill="#428bc1" d="M18.334,58.686C22.435,60.793,27.072,62,32,62c12.328,0,22.897-7.449,27.512-18.08H33.397L18.334,58.686z"/><path fill="#ed4c5c" d="M59.516,20.081C54.903,9.447,44.329,2,32,2c-4.929,0-9.575,1.197-13.677,3.303l15.074,14.777H59.516z"/><path fill="#fff" d="m60.52 22.688c-.291-.89-.634-1.755-1-2.607h-26.12l-15.07-14.778c-.672.345-1.331.707-1.972 1.1-.522.32-1.028.664-1.528 1.014l16.917 16.583h29.15c-.12-.439-.232-.882-.372-1.312"/><path fill="#ffce31" d="m5.254 18.443c-.114.224-.24.44-.349.667-.52 1.091-.969 2.221-1.355 3.379l9.641 9.511-9.641 9.51c.388 1.158.836 2.289 1.356 3.381.108.227.233.443.348.666l13.746-13.557-13.746-13.557"/><path fill="#fff" d="m31.74 40l-16.908 16.574c.348.242.69.492 1.048.721.791.506 1.615.961 2.454 1.391l15.06-14.766h26.11c.438-1.012.844-2.041 1.171-3.107.082-.268.143-.543.217-.813h-29.16"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,40c0.7-2.5,1.1-5.2,1.1-8c0-2.8-0.4-5.5-1.1-8H31.7L14.8,7.4c-4,2.8-7.3,6.6-9.6,11L19,32L5.3,45.6
+ c2.2,4.4,5.5,8.2,9.6,11L31.7,40H60.9z" fill="#699635"/><path d="m3.5 22.5c-1 3-1.5 6.2-1.5 9.5s.5 6.5 1.5 9.5l9.6-9.5-9.6-9.5" fill="#3e4347"/><path d="M18.3,58.7C22.4,60.8,27.1,62,32,62c12.3,0,22.9-7.4,27.5-18.1H33.4L18.3,58.7z" fill="#428bc1"/><path d="m59.5 20.1c-4.6-10.7-15.2-18.1-27.5-18.1-4.9 0-9.6 1.2-13.7 3.3l15.1 14.8h26.1" fill="#ed4c5c"/><path d="m60.5 22.7c-.3-.9-.6-1.8-1-2.6h-26.1l-15.1-14.8c-.7.3-1.3.7-2 1.1-.5.3-1 .7-1.5 1l16.9 16.6h29.2c-.1-.4-.2-.9-.4-1.3" fill="#fff"/><path d="m5.3 18.4c-.1.2-.2.4-.3.7-.5 1.1-1 2.2-1.4 3.4l9.6 9.5-9.6 9.5c.4 1.2.8 2.3 1.4 3.4.1.2.2.4.3.7l13.7-13.6-13.7-13.6" fill="#ffce31"/><path d="m31.7 40l-16.9 16.6c.3.2.7.5 1 .7.8.5 1.6 1 2.5 1.4l15.1-14.8h26.1c.4-1 .8-2 1.2-3.1.1-.3.1-.5.2-.8h-29.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1f2.svg
index 8aee90f..16306c7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M42,32h10h10C62,15.431,48.569,2,32,2S2,15.431,2,32s13.431,30,30,30V32H42z"/><path fill="#ff8736" d="M52,54.355C58.136,48.862,62,40.884,62,32H52V54.355z"/><path fill="#3e4347" d="M42,32v28.286c3.727-1.317,7.114-3.348,10-5.931V32H42z"/><path fill="#c94747" d="M42,32H32v30c3.508,0,6.871-0.607,10-1.714V32z"/><g fill="#ff8736" stroke="#2b2b2b" stroke-width=".25" stroke-miterlimit="10"><path d="m57.52 22.273c1.291-.741 1.493-1.396 1.475-1.422.017-.119-.867.514-2.486 1.231 1.982-.962 1.981-1.769 1.894-1.787-.31-.037-1.503.829-3.067 1.511 1.432-.672 2.148-1.515 2.049-1.625-.304.254-3.431 1.479-3.431 1.479l-.033-.012c.371-.231.655-.69.352-.657-.511.353-2.397.732-2.989.833-.372.114-1.542.505-1.763.48-2.037-.139-2.547.139-2.547.139.007 0 .042.046.094.113-.024-.016-.048-.029-.067-.041-.014-.008-.023-.019-.036-.028-.044-.054-.06-.104-.069-.137-.293-.635.096-.841.323-.871.186-.02.241.006.375-.054-.099-.035-.199-.07-.3-.105.237.049.535.045.446.357.232-.081.729-.621-.562-.743-.419-.442-2.146-.695-2.577 1.231.034.027.053.05.162.124-.544-.242-2.02-.429-2.544-.508-1.431-.378-2.917-1.29-3.06-1.178-.19.077.865.979.809.998-.914-.489-1.75-.837-2.528-1.151-.548-.188-1.096-.625-1.156-.542-.201.382.877 1.345 1.078 1.458.201.108 1.779.78 1.756.788-2.377-.989-2.775-1.169-2.896-1.284-.209-.042-.72-.675-.861-.634-.078.069.078 1.069 1.212 1.518.035.023.16.073.316.133-.316-.12-.551-.21-.579-.22-.496-.178-1.104-.803-1.216-.732-.108.064.279.74.78.951.165.066.623.272 1.166.488-.492-.18-1.056-.387-1.432-.531-.368-.187-.541-.42-.598-.37-.083.05.134 1.048 2.74 1.611.008.003.028.002.053 0-.048.007-.087.012-.101.011-.072-.01-.529.049-.537.07-.026.067.166.426 1.511.351.172-.01 1.105-.311 1.027-.246-.039.032-1.271.399-1.364.406-.082.012-.515.054-.531.095-.019.058.321.313 1.043.354.641.031 1.856-.359 1.832-.334-.024.026-1.172.386-1.203.408-.041.021-.461.042-.476.072-.035.073.605.622 2.5.037-.19.235-1.108.396-1.107.438-.004.03.203.215.523.279.16.033.38.026.581-.003.36-.066.74-.197 1.224-.606.057.128-1.206.716-1.146.771.273.233 1.184-.03 1.243-.062.061-.03 1.753-.905 1.746-1.01.027.129-2.183 1.23-2.158 1.275.142.208.896-.011.933-.03.035-.019.963-.478.988-.49.025-.015-1.089.597-.99.691-.041.342 1.275-.107 1.731-.293-.246.119-.711.367-.712.507.3.464 1.258.317 1.405.215.074-.051-.087.345-.035.31.019-.008.209-.215.282-.364-.024.13-.129.335-.189.569-.062.234-.08.499-.164.779-.017.105.428-.15.499-.775-.037.445-.176.973-.125 1.01.037.025.096-.009.157-.066l-.02.056c-.005.076-.09.537-.603.537-.627 0-.645.512-.645.512s-.052.037-.017.285c.104-.168.154-.221.154-.221.07.01.357.089.813-.238-.414.396-.167.544-.167.544s-.099.312.219.374c-.098-.126-.041-.237-.041-.237s.443-.042.415-.537c.018.448.281.559.281.559s0 .249.289.27c-.156-.126-.121-.322-.121-.322s.373-.248.057-.671c.056-.029.106-.075.153-.124-.004.047-.01.092.002.151 0 .264.007.332.202.479-.052-.173-.034-.295-.034-.295s.259.143.512-.248c-.173.385-.052.523-.011.532.039.069-.07.381.275.376-.132-.117-.069-.286-.069-.286s.362-.052.235-.653c.133-.121.186-.006.186-.006s.04.359.355.285c.145.074-.022.269-.022.269s.231.007.3-.174c.068-.18.148-.501-.229-.633-.048-.127.148-.138.148-.138s.242.074.312.185c.068.111.046-.289-.253-.332-.368-.012-.392-.08-.392-.096 0-.006-.009-.129-.021-.293.292.206.608.246.617.232.004-.057-.629-.838-.468-.939.161.03.424.386.638.27-.064-.138-.256-.06-.473-.414-.038-.07-.069-.148-.101-.23.013.013.468.479.907.455.166-.127-.344-.405-.344-.469.179.152.936.746 1.418.531.193-.252-.344-.215-.936-.896.412.252 1.445.808 1.928.594.134-.131-.355-.442-.834-.779.188.099.33.171.394.197.454.19.964-.074.978-.113-.007-.059-.201-.101-.494-.168.573.063 1.019-.041 1.072-.122-.021-.075-.104-.102-.661-.24 1.234.157 2.162-.492 2.162-.492s.292-.092-.207-.085c3.439-.403 4.04-1.875 3.98-1.886-.146-.017-.672.362-1.511.733 1.468-.674 2.231-1.618 2.186-1.681.014-.128-.516.104-1.184.41zm-19.443.765c.261-.054.574-.127.548-.11-.007.005-.294.063-.548.11zm-1.036-1.091c.712.263 1.957.685 1.94.729-.003.01-1.149-.427-1.94-.729zm11.651 2.965c-.129-.137-.224-.255-.207-.313.043.08.129.183.235.291l-.028.022zm6.538-.918c-1 .26-2.238.369-3.673.028 1.426.302 2.655.224 3.673-.028zm.554-.953c-.223.085-.422.152-.576.186.203-.061.393-.123.576-.186zm-9.621 3.386c.005-.079.007-.161-.002-.251.009.074.007.161.002.251zm1.626 1.453c-.021.024-.42-.035-.66.098-.054-.021-.253-.103-.358-.177-.058-.11-.005-.715-.005-.717.095.129.202.249.301.292-.021-.263.003-.251-.082-.511.049-.345.056-.82.067-1.358.517.905.722 1.289.578 1.984.063.023.137-.063.206-.18l.028.469c0 0-.041.063-.075.1zm.341-2.644c.02.018.039.036.06.053l-.011.008c-.015-.02-.034-.04-.049-.061zm7.375-1.319c.06-.018.119-.035.178-.054-.059.019-.119.036-.178.054z"/><path d="m46.17 27.521l.004-.01c.001-.017-.001-.022-.004.01z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M42,32h10h10C62,15.4,48.6,2,32,2S2,15.4,2,32s13.4,30,30,30V32H42z" fill="#83bf4f"/><path d="m52 54.4c6.1-5.5 10-13.5 10-22.4h-10v22.4" fill="#ff8736"/><path d="M42,32v28.3c3.7-1.3,7.1-3.3,10-5.9V32H42z" fill="#3e4347"/><path d="M42,32H32v30c3.5,0,6.9-0.6,10-1.7V32z" fill="#c94747"/><g fill="#ff8736" stroke="#2b2b2b" stroke-width=".25" stroke-miterlimit="10"><path d="m57.5 22.3c1.3-.7 1.5-1.4 1.5-1.4 0-.1-.9.5-2.5 1.2 2-1 2-1.8 1.9-1.8-.3 0-1.5.8-3.1 1.5 1.4-.7 2.1-1.5 2-1.6-.3.3-3.4 1.5-3.4 1.5.4-.2.7-.7.4-.7-.5.4-2.4.7-3 .8-.4.1-1.5.5-1.8.5-2-.1-2.5.1-2.5.1 0 0 0 0 .1.1 0 0 0 0-.1 0 0-.1-.1-.1-.1-.1-.3-.6.1-.8.3-.9.2 0 .2 0 .4-.1-.1 0-.2-.1-.3-.1.2 0 .5 0 .4.4.2-.1.7-.6-.6-.7-.4-.4-2.1-.7-2.6 1.2 0 0 .1 0 .2.1-.5-.2-2-.4-2.5-.5-1.4-.4-2.9-1.3-3.1-1.2-.2.1.9 1 .8 1-.9-.5-1.8-.8-2.5-1.2-.5-.2-1.1-.6-1.2-.5-.2.4.9 1.3 1.1 1.5.2.1 1.8.8 1.8.8-2.4-1-2.8-1.2-2.9-1.3-.2 0-.7-.7-.9-.6-.1.1.1 1.1 1.2 1.5 0 0 .2.1.3.1l-.6-.2c-.5-.2-1.1-.8-1.2-.7-.1.1.3.7.8 1 .2.1.6.3 1.2.5-.5-.2-1.1-.4-1.4-.5-.4-.2-.5-.4-.6-.4-.1 0 .1 1 2.7 1.6 0 0 0 0 .1 0 0 0-.1 0-.1 0-.1 0-.5 0-.5.1 0 .1.2.4 1.5.4.2 0 1.1-.3 1-.2 0 0-1.3.4-1.4.4-.1 0-.5.1-.5.1 0 .1.3.3 1 .4.6 0 1.9-.4 1.8-.3 0 0-1.2.4-1.2.4 0 0-.5 0-.5.1 0 .1.6.6 2.5 0-.2.2-1.1.4-1.1.4 0 0 .2.2.5.3.2 0 .4 0 .6 0 .4-.1.7-.2 1.2-.6.1.1-1.2.7-1.1.8.3.2 1.2 0 1.2-.1.1 0 1.8-.9 1.7-1 0 .1-2.2 1.2-2.2 1.3.1.2.9 0 .9 0 0 0 1-.5 1-.5 0 0-1.1.6-1 .7 0 .3 1.3-.1 1.7-.3-.2.1-.7.4-.7.5.3.5 1.3.3 1.4.2.1-.1-.1.3 0 .3 0 0 .2-.2.3-.4 0 .1-.1.3-.2.6-.1.2-.1.5-.2.8 0 .1.4-.1.5-.8 0 .4-.2 1-.1 1 0 0 .1 0 .2-.1v.1c0 .1-.1.5-.6.5-.6 0-.6.5-.6.5s-.1 0 0 .3c.1-.2.2-.2.2-.2.1 0 .4.1.8-.2-.4.4-.2.5-.2.5s-.1.3.2.4c-.1-.1 0-.2 0-.2s.4 0 .4-.5c0 .4.3.6.3.6s0 .2.3.3c-.2-.1-.1-.3-.1-.3s.4-.2.1-.7c.1 0 .1-.1.2-.1 0 0 0 .1 0 .2 0 .3 0 .3.2.5-.1-.2 0-.3 0-.3s.3.1.5-.2c-.2.4-.1.5 0 .5 0 .1-.1.4.3.4-.1-.1-.1-.3-.1-.3s.4-.1.2-.7c.1-.1.2 0 .2 0s0 .4.4.3c.1.1 0 .3 0 .3s.2 0 .3-.2c.1-.2.1-.5-.2-.6 0-.1.1-.1.1-.1s.2.1.3.2c.1.1 0-.3-.3-.3-.4 0-.4-.1-.4-.1 0 0 0-.1 0-.3.3.2.6.2.6.2 0-.1-.6-.8-.5-.9.2 0 .4.4.6.3-.1-.1-.3-.1-.5-.4 0-.1-.1-.1-.1-.2 0 0 .5.5.9.5.2-.1-.3-.4-.3-.5.2.2.9.7 1.4.5.2-.3-.3-.2-.9-.9.4.3 1.4.8 1.9.6.1-.1-.4-.4-.8-.8.2.1.3.2.4.2.5.2 1-.1 1-.1 0-.1-.2-.1-.5-.2.6.1 1 0 1.1-.1 0-.1-.1-.1-.7-.2 1.2.2 2.2-.5 2.2-.5s.3-.1-.2-.1c3.4-.4 4-1.9 4-1.9-.1 0-.7.4-1.5.7 1.5-.7 2.2-1.6 2.2-1.7-.1-.8-.6-.5-1.3-.2zm-19.4.7c.3-.1.6-.1.5-.1 0 0-.3.1-.5.1zm-1.1-1.1c.7.3 2 .7 1.9.7.1.1-1.1-.4-1.9-.7zm11.7 3c-.1-.1-.2-.3-.2-.3 0 .1.1.2.2.3zm6.5-.9c-1 .3-2.2.4-3.7 0 1.5.3 2.7.2 3.7 0zm.6-1c-.2.1-.4.2-.6.2.2 0 .4-.1.6-.2zm-9.6 3.4c0-.1 0-.2 0-.3 0 .1 0 .2 0 .3zm1.6 1.5c0 0-.4 0-.7.1-.1 0-.3-.1-.4-.2-.1-.1 0-.7 0-.7.1.1.2.2.3.3 0-.3 0-.3-.1-.5 0-.3.1-.8.1-1.4.5.9.7 1.3.6 2 .1 0 .1-.1.2-.2v.5c.1 0 0 0 0 .1zm.3-2.7c.1.1.1.1 0 0h0zm7.4-1.3c.1 0 .1 0 .2-.1-.1.1-.1.1-.2.1z"/><path d="m46.2 27.5c0 0 0 0 0 0z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1fc.svg
index daea1a5..77f539e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ff-1f1fc.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75a843"><path d="M32,2c-6.159,0-11.882,1.858-16.646,5.041h33.291C43.882,3.858,38.159,2,32,2z"/><path d="M32,62c6.159,0,11.882-1.858,16.646-5.041H15.354C20.118,60.142,25.841,62,32,62z"/></g><path fill="#ed4c5c" d="m7.05 47.04h50.904c1.777-3.06 3.03-6.46 3.633-10.08h-58.17c.604 3.622 1.856 7.02 3.633 10.08"/><path fill="#3e4347" d="m3 32c0 1.719.152 3.401.431 5.04h58.14c.278-1.64.43-3.322.43-5.04s-.152-3.401-.431-5.04h-58.14c-.279 1.64-.431 3.322-.431 5.04"/><path fill="#ed4c5c" d="m3.415 27.04h58.17c-.604-3.622-1.855-7.02-3.633-10.08h-50.904c-1.777 3.06-3.03 6.46-3.633 10.08"/><g fill="#ffce31"><path d="m12.304 17.04h45.697c-2.338-4.054-5.592-7.51-9.485-10.08h-33.03c-1.117.738-2.175 1.557-3.181 2.434v7.648"/><path d="m12.304 46.959v7.648c1.01.877 2.063 1.695 3.181 2.434h33.03c3.894-2.572 7.147-6.03 9.485-10.08h-45.697"/></g><path fill="#f9f9f9" d="M12.631,12.204H9.478C4.828,17.487,2,24.41,2,32c0,7.746,2.944,14.801,7.765,20.123h2.539L32.427,32
- L12.631,12.204z"/><path fill="#3e4347" d="m12.304 9.382c-1.01.878-1.953 1.819-2.835 2.822l19.796 19.796-19.796 19.796c.882 1 1.829 1.944 2.835 2.822l22.618-22.618-22.618-22.618"/><path fill="#ed4c5c" d="m17.46 33.93l5.379-4.516-6.344-1.066-3.281-6.655-3.284 6.655-6.341 1.066 5.379 4.516-1.399 6.703 5.645-3.223 5.641 3.223z"/><g fill="#ffce31"><path d="m11.341 30.11c.69 1.502.861 1.602 2.586 2.191 1.726.592 6.6 1.154 7.079 1.209-.313-.313-5.803-4.381-6.931-5.193-1.126-.814-1.442-1.182-1.442-1.182s-1.015-1.83-1.367-2.365c-.351-.537-.996-1.295-1.847-1.295s-1.367.5-1.613 1.387c-.138.037-.864.48-.838.938.207-.025 1.527-.395 1.981 1.094.457 1.492.482 3.934.013 5.139-.467 1.207-1.195 2.119-1.195 3.178 0 .148.099.443.345.443.088.47.778 3.808.778 3.808h9.831l1.562-6.04"/><g stroke="#000" stroke-linejoin="round" stroke-linecap="round" stroke-width=".2"><path d="m11.341 30.11c.69 1.502.861 1.602 2.586 2.191 1.726.592 6.6 1.154 7.079 1.209-.313-.313-5.803-4.381-6.931-5.193-1.126-.814-1.442-1.182-1.442-1.182s-1.015-1.83-1.367-2.365c-.351-.537-.996-1.295-1.847-1.295s-1.367.5-1.613 1.387c-.138.037-.864.48-.838.938.207-.025 1.527-.395 1.981 1.094.457 1.492.482 3.934.013 5.139-.467 1.207-1.195 2.119-1.195 3.178 0 .148.099.443.345.443.088.47.778 3.808.778 3.808h9.831l1.562-6.04"/><path d="m8.111 35.654c0 0 2.096-.121 2.661-.121.568 0 5.845.006 8.786.688"/><path d="m8.854 35.613c0 0-.21-.254-.075-.758.135-.506 1.613-1.813 1.613-3.66"/><path d="m10.119 35.533c0 0-.171-.824 1.715-1.527.529-.162 2.044-1.012 2.093-1.703"/><path d="m11.634 34.08c0 0 4.623.02 8.283.76"/><path d="m12.791 33.531c0 0 1.59.055 1.847-.02.26-.074.719-.266.9-.809"/><path d="m13.732 33.551c0 0 .851-.443 1.017-1.016"/><path d="m11.167 39.463c0 0-.363-2.52-.436-3.93l.949.904 1-.875.863.92.999-.848.86.969.988-.84.786.916.986-.713 1.172 1.113"/><path d="m19.13 37.875c-3.521-.506-8.229-.471-8.229-.471"/><path d="m9.266 28.695c0 0 2.864-1.367 3.367-1.559"/><path d="m10.81 36.531l.961.879.87-.873.88.908.949-.841.874.919.985-.812.811.939.98-.75 1.03.911"/><circle cx="13.541" cy="34.867" r=".383"/><circle cx="15.15" cy="34.976" r=".382"/><circle cx="9.151" cy="24.659" r=".296"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75a843"><path d="M32,2c-6.2,0-11.9,1.9-16.6,5h33.3C43.9,3.9,38.2,2,32,2z"/><path d="m32 62c6.2 0 11.9-1.9 16.6-5h-33.2c4.7 3.1 10.4 5 16.6 5"/></g><path d="M7,47H58c1.8-3.1,3-6.5,3.6-10.1H3.4C4,40.6,5.3,44,7,47z" fill="#ed4c5c"/><path d="m3 32c0 1.7.2 3.4.4 5h58.1c.3-1.6.4-3.3.4-5s-.2-3.4-.4-5h-58.1c-.2 1.6-.4 3.3-.4 5" fill="#3e4347"/><path d="m3.4 27h58.2c-.6-3.6-1.9-7-3.6-10h-51c-1.7 3-3 6.4-3.6 10" fill="#ed4c5c"/><g fill="#ffce31"><path d="m12.3 17h45.7c-2.3-4-5.6-7.5-9.5-10h-33c-1.1.7-2.2 1.6-3.2 2.4v7.6"/><path d="m12.3 47v7.6c1 .9 2.1 1.7 3.2 2.4h33c3.9-2.6 7.1-6 9.5-10.1h-45.7z"/></g><path d="M12.6,12.2H9.5C4.8,17.5,2,24.4,2,32c0,7.7,2.9,14.8,7.8,20.1h2.5L32.4,32L12.6,12.2z" fill="#f9f9f9"/><path d="M12.3,9.4c-1,0.9-2,1.8-2.8,2.8L29.3,32L9.5,51.8c0.9,1,1.8,1.9,2.8,2.8L34.9,32L12.3,9.4z" fill="#3e4347"/><path fill="#ed4c5c" d="m17.5 33.9l5.3-4.5-6.3-1.1-3.3-6.6-3.3 6.6-6.3 1.1 5.4 4.5-1.4 6.7 5.6-3.2 5.7 3.2z"/><g fill="#ffce31"><path d="m11.3 30.1c.7 1.5.9 1.6 2.6 2.2 1.7.6 6.6 1.2 7.1 1.2-.3-.3-5.8-4.4-6.9-5.2-1.1-.8-1.4-1.2-1.4-1.2s-1-1.8-1.4-2.4c-.4-.5-1-1.3-1.8-1.3s-1.4.6-1.7 1.5c-.1 0-.9.5-.8.9.2 0 1.5-.4 2 1.1.5 1.5.5 3.9 0 5.1-.5 1.2-1.2 2.1-1.2 3.2 0 .1.1.4.3.4.1.5.8 3.8.8 3.8h9.8l1.6-6"/><g stroke="#000" stroke-linejoin="round" stroke-linecap="round" stroke-width=".2"><path d="m11.3 30.1c.7 1.5.9 1.6 2.6 2.2 1.7.6 6.6 1.2 7.1 1.2-.3-.3-5.8-4.4-6.9-5.2-1.1-.8-1.4-1.2-1.4-1.2s-1-1.8-1.4-2.4c-.4-.5-1-1.3-1.8-1.3s-1.4.6-1.7 1.5c-.1 0-.9.5-.8.9.2 0 1.5-.4 2 1.1.5 1.5.5 3.9 0 5.1-.5 1.2-1.2 2.1-1.2 3.2 0 .1.1.4.3.4.1.5.8 3.8.8 3.8h9.8l1.6-6"/><path d="m8.1 35.7c0 0 2.1-.1 2.7-.1.6 0 5.8 0 8.8.7"/><path d="m8.9 35.6c0 0-.2-.3-.1-.8.1-.5 1.6-1.8 1.6-3.7"/><path d="m10.1 35.5c0 0-.2-.8 1.7-1.5.5-.2 2-1 2.1-1.7"/><path d="m11.6 34.1c0 0 4.6 0 8.3.8"/><path d="m12.8 33.5c0 0 1.6.1 1.8 0 .3-.1.7-.3.9-.8"/><path d="m13.7 33.6c0 0 .9-.4 1-1"/><path d="m11.2 39.5c0 0-.4-2.5-.4-3.9l.9.9 1-.9.9.9 1-.8.9 1 1-.8.8.9 1-.7 1.2 1.1"/><path d="m19.1 37.9c-3.5-.5-8.2-.5-8.2-.5"/><path d="m9.3 28.7c0 0 2.9-1.4 3.4-1.6"/><path d="m10.8 36.5l1 .9.8-.9.9.9 1-.8.8.9 1-.8.8 1 1-.8 1 .9"/><circle cx="13.5" cy="34.9" r=".4"/><circle cx="15.2" cy="35" r=".4"/><circle cx="9.2" cy="24.7" r=".3"/></g></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f1ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f1ff.svg
new file mode 100644
index 0000000..133cd3c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f1ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M20.8,41.4l14.8-18.8H21.2v-5.1h22v4.9l-15,19h15.1v5.1H20.8V41.4z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f201.svg b/build/js/jsxc/lib/emojione/assets/svg/1f201.svg
index c725af2..44714e7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f201.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f201.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m17.08 46.742c-.784 0-2.457.052-3.084.258v-6.518c.68.157 2.092.26 2.979.26h7.374v-17.638h-7.165c-.836 0-2.457.104-3.03.207v-6.311c.785.155 2.353.311 3.03.311h9.204c.629 0 3.189-.103 3.555-.155 0 1.087-.051 2.897-.051 4.19v20.17c0 1.551.104 5.224.104 5.224h-12.916"/><path d="m37.13 46.742c-.781 0-2.449.052-3.127.258v-6.518c.73.157 2.137.26 3.02.26h7.35v-17.638h-7.141c-.834 0-2.451.104-3.02.207v-6.311c.781.155 2.344.311 2.971.311h9.225c.627 0 3.18-.103 3.543-.155 0 1.087-.051 2.897-.051 4.19v20.17c0 1.551.104 5.224.104 5.224h-12.874"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><g fill="#fff"><path d="m14.1 47v-6.4h10.3v-17.4h-10.3v-6.2h15.9v30z"/><path d="m34.1 47v-6.4h10.3v-17.4h-10.3v-6.2h15.9v30z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f202.svg b/build/js/jsxc/lib/emojione/assets/svg/1f202.svg
index f3ba2f0..a6e36bc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f202.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f202.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m20.14 30.4c-1.783 0-3.306.053-4.144.105v-5.78c.682.105 2.412.315 4.144.315h2.414v-3.153c0-1.313-.157-2.89-.21-3.573h5.928c-.105.684-.264 2.208-.264 3.627v3.1h8.185v-3.363c0-1.419-.104-2.942-.21-3.678h6.086c-.105.735-.262 2.259-.262 3.678v3.363h2.046c1.835 0 3.198-.158 4.144-.264v5.729c-.734-.053-2.309-.105-4.144-.105h-2.046v.42c0 8.986-2.729 15.187-11.961 19.18l-4.355-4.361c6.979-2.365 10.702-5.727 10.702-14.607v-.633h-8.185v4.047c0 1.576.158 3.31.211 4.045h-5.875c.104-.735.21-2.469.21-4.045v-4.047h-2.414"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4fd1d9"/><path d="m20.1 30.4c-1.8 0-3.3.1-4.1.1v-5.8c.7.1 2.4.3 4.1.3h2.4v-3.2c0-1.3-.2-2.9-.2-3.6h5.9c0 .8-.2 2.3-.2 3.7v3.1h8.2v-3.4c0-1.4-.1-2.9-.2-3.7h6.1c-.1.7-.3 2.3-.3 3.7v3.4h2c1.8 0 3.2-.2 4.1-.3v5.7c-.7-.1-2.3-.1-4.1-.1h-2v.4c0 9-2.7 15.2-12 19.2l-4.4-4.4c7-2.4 10.7-5.7 10.7-14.6v-.6h-8.1v4c0 1.6.2 3.3.2 4h-5.9c.1-.7.2-2.5.2-4v-4h-2.4z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f21a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f21a.svg
index 07b950c..74c92f2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f21a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f21a.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m19.981 24.2c-.767.731-1.495 1.424-2.262 2-.844-.81-2.684-2.271-3.72-3 3.221-2.118 6.249-5.622 7.938-9.203l4.445 1.31c-.422.925-.918 1.81-1.494 2.695h23v4.04h-3.604v4.928h4.983v4.08h-4.983v4.892h4.446v4.08h-33.31v-4.08h4.562v-4.892h-5.138v-4.08h5.138v-2.773m-5.521 24.03c1.688-1.617 3.411-4.581 4.294-7.392l4.409 1.077c-.844 2.927-2.492 6.085-4.371 8.09l-4.332-1.772m9.547-21.252h2.759v-4.928h-2.759v4.928m0 8.971h2.759v-4.892h-2.759v4.892m5.864 5.736c.461 2.349.883 5.391.921 7.199l-4.448.655c0-1.847-.307-5-.729-7.354l4.256-.5m3.527-14.707v-4.928h-2.838v4.928h2.838m-2.837 4.08v4.892h2.838v-4.892h-2.838m6.941 10.472c.919 2.273 1.878 5.275 2.224 7.162l-4.563.886c-.231-1.85-1.111-4.968-1.955-7.316l4.294-.732m2.606-19.48h-2.915v4.928h2.915v-4.928m0 9.01h-2.915v4.892h2.915v-4.892m5.061 9.627c1.725 2.349 3.873 5.581 4.83 7.7l-4.678 1.578c-.805-2.041-2.836-5.428-4.523-7.893l4.371-1.385"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#eda454"/><path d="m20 24.2c-.8.7-1.5 1.4-2.3 2-.8-.8-2.7-2.3-3.7-3 3.2-2.1 6.2-5.6 7.9-9.2l4.4 1.3c-.4.9-.9 1.8-1.5 2.7h23v4h-3.6v5h5v4.1h-5v4.9h4.4v4h-33.2v-4.1h4.6v-4.9h-5.1v-4h5.1v-2.8m-5.5 24c1.7-1.6 3.4-4.6 4.3-7.4l4.4 1.1c-.8 2.9-2.5 6.1-4.4 8.1l-4.3-1.8m9.5-21.2h2.8v-5h-2.8v5m0 8.9h2.8v-4.9h-2.8v4.9m5.9 5.8c.5 2.3.9 5.4.9 7.2l-4.4.7c0-1.8-.3-5-.7-7.4l4.2-.5m3.5-14.7v-5h-2.8v5h2.8m-2.8 4.1v4.9h2.8v-4.9h-2.8m6.9 10.4c.9 2.3 1.9 5.3 2.2 7.2l-4.6.9c-.2-1.8-1.1-5-2-7.3l4.4-.8m2.6-19.5h-2.9v5h2.9v-5m0 9.1h-2.9v4.9h2.9v-4.9m5.1 9.6c1.7 2.3 3.9 5.6 4.8 7.7l-4.7 1.6c-.8-2-2.8-5.4-4.5-7.9l4.4-1.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f22f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f22f.svg
index 3d892c0..07d785a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f22f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f22f.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#75a843" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m28.28 34.37c-1.488.425-2.979.85-4.506 1.273v9.375c0 2.276-.381 3.357-1.678 4.091-1.26.694-3.092.81-5.766.81-.114-1.157-.726-3.01-1.26-4.205 1.488.077 3.02.077 3.513.077.534-.038.726-.193.726-.734v-8.218l-4.238 1.081-1.069-4.36c1.527-.347 3.359-.771 5.307-1.234v-6.869h-4.734v-4.243h4.734v-7.217h4.465v7.217h3.895v4.243h-3.895v5.788c1.338-.348 2.674-.694 3.971-1.041l.535 4.166m1.297-1.968h18.555v17.439h-4.505v-1.504h-9.735v1.66h-4.314v-17.595zm13.82-6.328c1.91 0 2.215-.617 2.482-4.437.955.695 2.863 1.428 4.123 1.66-.571 5.438-1.908 6.907-6.26 6.907h-7.406c-5.308 0-6.681-1.313-6.681-5.75v-10.457h4.541v5.05c3.817-.964 7.636-2.199 10.155-3.395l3.359 3.317c-3.894 1.583-8.971 2.894-13.515 3.821v1.619c0 1.467.383 1.659 2.558 1.659h6.644zm-9.505 10.11v2.354h9.735v-2.354h-9.735m9.735 8.489v-2.546h-9.735v2.546h9.735"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#4bd37b"/><path d="m28.3 34.4c-1.5.4-3 .8-4.5 1.3v9.3c0 2.3-.4 3.4-1.7 4.1-1.3.7-3.1.8-5.8.8-.1-1.2-.7-3-1.3-4.2 1.5.1 3 .1 3.5.1.5 0 .7-.2.7-.7v-8.2l-4.2 1.1-1-4.4c1.5-.3 3.4-.8 5.3-1.2v-6.9h-4.7v-4.2h4.7v-7.3h4.5v7.2h3.9v4.2h-3.9v5.8c1.3-.3 2.7-.7 4-1l.5 4.2m1.3-2h18.6v17.4h-4.5v-1.5h-9.7v1.7h-4.3l-.1-17.6m13.8-6.3c1.9 0 2.2-.6 2.5-4.4 1 .7 2.9 1.4 4.1 1.7-.6 5.4-1.9 6.9-6.3 6.9h-7.4c-5.3 0-6.7-1.3-6.7-5.8v-10.5h4.5v5.1c3.8-1 7.6-2.2 10.2-3.4l3.4 3.3c-3.9 1.6-9 2.9-13.5 3.8v1.6c0 1.5.4 1.7 2.6 1.7h6.6m-9.5 10.1v2.4h9.7v-2.4h-9.7m9.7 8.5v-2.5h-9.7v2.5c0 0 9.7 0 9.7 0" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f232.svg b/build/js/jsxc/lib/emojione/assets/svg/1f232.svg
index c666930..5cc5826 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f232.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f232.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m20.13 24.577c-1.533 2.054-3.278 3.893-5.105 5.133-.683-1.025-2-2.652-3.02-3.463 2.468-1.37 4.979-3.852 6.766-6.419h-5.106v-4.106h6.468v-3.722h4.681v3.722h5.404v4.106h-5.404v.043c1.703.942 5.32 3.209 6.341 3.893l-2.64 3.423c-.808-.813-2.296-2.01-3.701-3.123v5.563h-4.681v-5.05zm4.639 19.04c-2.085 3.037-5.489 6.074-8.468 7.873-.937-.855-2.853-2.398-3.958-3.125 2.979-1.496 5.957-3.85 7.659-6.246l4.767 1.498m-11.361-6.545h37.4v4.277h-16.08v5.775c0 2.396-.512 3.51-2.342 4.193-1.745.644-4.084.685-7.191.685-.298-1.367-1.063-3.164-1.703-4.404 2.128.127 4.596.127 5.234.084.681-.043.895-.172.895-.686v-5.646h-16.212v-4.278m4.638-6.246h28.509v4.106h-28.509v-4.106m26.553-10.996c1.998 2.439 4.893 4.964 7.404 6.333-1.022.814-2.428 2.396-3.15 3.466-1.744-1.242-3.617-3.209-5.318-5.306v5.306h-4.767v-5.521c-1.703 2.182-3.701 4.151-5.744 5.436-.682-1.028-2.042-2.61-2.979-3.423 2.64-1.327 5.404-3.765 7.234-6.291h-5.575v-4.106h7.06v-3.722h4.767v3.722h6.979v4.106h-5.914m-2.384 22.12c2.852 1.84 6.596 4.705 8.469 6.717l-4.341 2.652c-1.618-1.924-5.234-4.963-8.17-6.973l4.04-2.396"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><path d="m20.1 24.6c-1.5 2.1-3.3 3.9-5.1 5.1-.7-1-2-2.7-3-3.5 2.5-1.4 5-3.9 6.8-6.4h-5.1v-4.1h6.5v-3.7h4.7v3.7h5.4v4.1h-5.4c1.7.9 5.3 3.2 6.3 3.9l-2.6 3.4c-.8-.8-2.3-2-3.7-3.1v5.6h-4.7l-.1-5m4.7 19c-2.1 3-5.5 6.1-8.5 7.9-.9-.9-2.9-2.4-4-3.1 3-1.5 6-3.9 7.7-6.2l4.8 1.4m-11.4-6.5h37.4v4.3h-16.1v5.8c0 2.4-.5 3.5-2.3 4.2-1.8.6-4.1.6-7.2.6-.3-1.4-1.1-3.2-1.7-4.4 2.1.1 4.6.1 5.2.1.7 0 .9-.2.9-.7v-5.6h-16.2v-4.3m4.6-6.3h28.5v4.1h-28.5v-4.1m26.6-11c2 2.4 4.9 5 7.4 6.3-1 .8-2.4 2.4-3.2 3.5-1.7-1.2-3.6-3.2-5.3-5.3v5.3h-4.8v-5.5c-1.7 2.2-3.7 4.2-5.7 5.4-.7-1-2-2.6-3-3.4 2.6-1.3 5.4-3.8 7.2-6.3h-5.6v-4.1h7.1v-3.7h4.8v3.7h7v4.1h-5.9m-2.4 22.1c2.9 1.8 6.6 4.7 8.5 6.7l-4.3 2.7c-1.6-1.9-5.2-5-8.2-7l4-2.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f233.svg b/build/js/jsxc/lib/emojione/assets/svg/1f233.svg
index a0dd8e1..ae8c7bd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f233.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f233.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c28fef" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m30.14 21.859c-.697 6.589-2.827 10.756-12.663 12.939-.387-1.111-1.549-3.02-2.479-3.97 8.442-1.508 9.797-4.286 10.417-8.97h-5.344v4.604h-4.53v-8.891h14.02v-3.571h4.725v3.572h14.367v8.216h-4.764v-3.929h-5.461v6.271c0 1.071.232 1.23 1.434 1.23h3.446c.968 0 1.161-.396 1.316-2.898.853.675 2.749 1.35 3.95 1.628-.465 4.167-1.704 5.279-4.802 5.279h-4.607c-4.338 0-5.268-1.271-5.268-5.199v-6.312h-3.755zm18.858 23.855v4.286h-33.883v-4.286h14.443v-5.913h-10.377v-4.248h26.526v4.248h-11.424v5.913h14.715"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#c28fef"/><path d="m30.1 21.9c-.7 6.6-2.8 10.8-12.7 12.9-.4-1.1-1.5-3-2.5-4 8.4-1.5 9.8-4.3 10.4-9h-5.3v4.6h-4.5v-8.9h14v-3.5h4.7v3.6h14.4v8.2h-4.8v-3.9h-5.5v6.3c0 1.1.2 1.2 1.4 1.2h3.4c1 0 1.2-.4 1.3-2.9.9.7 2.7 1.4 4 1.6-.5 4.2-1.7 5.3-4.8 5.3h-4.6c-4.3 0-5.3-1.3-5.3-5.2v-6.3h-3.6m18.9 23.8v4.3h-33.9v-4.3h14.4v-5.9h-10.3v-4.2h26.5v4.2h-11.4v5.9c0 0 14.7 0 14.7 0" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f234.svg b/build/js/jsxc/lib/emojione/assets/svg/1f234.svg
index 9c74847..ea346b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f234.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f234.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><g fill="#fff"><path d="m32 12c0 0-9.97 8.641-22.22 14.6l3.197 6.09c0 0 7.914-2.589 19.03-11.527 11.11 8.938 19.02 11.527 19.02 11.527l3.197-6.09c-12.251-5.959-22.22-14.6-22.22-14.6"/><path d="m20.85 29.505h22.299v5.14h-22.299z"/><path d="m16.02 36.805v15.195h31.965v-15.195h-31.965m25.541 9.757h-19.12v-4.319h19.12v4.319"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><g fill="#fff"><path d="M32,12c0,0-10,8.6-22.2,14.6l3.2,6.1c0,0,7.9-2.6,19-11.5c11.1,8.9,19,11.5,19,11.5l3.2-6.1
+ C42,20.6,32,12,32,12z"/><path d="m20.9 29.5h22.3v5.1h-22.3z"/><path d="m16 36.8v15.2h32v-15.2h-32m25.6 9.8h-19.2v-4.3h19.1l.1 4.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f235.svg b/build/js/jsxc/lib/emojione/assets/svg/1f235.svg
index 22cb22f..ed4265d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f235.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f235.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.478,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m19.605 32c-1.58-1.373-4.957-3.133-7.606-4.205l2.693-3.861c2.606.814 6.03 2.401 7.734 3.775l-2.821 4.291m-6.493 16.523c1.921-3.305 4.657-8.711 6.836-13.733l4.02 3.047c-1.923 4.593-4.145 9.527-6.367 13.691l-4.486-3.01m3.93-36.22c2.522 1.16 5.728 3.049 7.351 4.551l-3.162 4.03c-1.454-1.501-4.613-3.646-7.181-4.892l2.992-3.692m22.78 15.237v2.575h11.239v17.04c0 2.232-.43 3.39-1.882 4.078-1.454.686-3.505.729-6.41.729-.085-1.243-.599-3.047-1.154-4.248 1.582.086 3.418.086 3.974.086.558-.043.727-.215.727-.688v-12.575h-7.05v6.826h2.094v-5.066h2.949v10.171h-2.949v-1.416h-7.734v2.49h-3.03v-11.245h3.03v5.066h1.923v-6.826h-6.71v17.468h-4.485v-21.888h10.597v-2.575h-11.881v-4.462h6.794v-3.177h-5.471v-4.42h5.471v-3.478h4.744v3.477h5.725v-3.477h4.916v3.477h5.556v4.42h-5.556v3.177h6.751v4.462h-12.177zm-5.215-4.462h5.725v-3.177h-5.725v3.177"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><path d="m19.6 32c-1.6-1.4-5-3.1-7.6-4.2l2.7-3.9c2.6.8 6 2.4 7.7 3.8l-2.8 4.3m-6.5 16.5c1.9-3.3 4.7-8.7 6.8-13.7l4 3c-1.9 4.6-4.1 9.5-6.4 13.7l-4.4-3m3.9-36.2c2.5 1.2 5.7 3 7.4 4.6l-3.2 4c-1.5-1.5-4.6-3.6-7.2-4.9l3-3.7m22.8 15.2v2.6h11.2v17c0 2.2-.4 3.4-1.9 4.1-1.5.7-3.5.7-6.4.7-.1-1.2-.6-3-1.2-4.2 1.6.1 3.4.1 4 .1.6 0 .7-.2.7-.7v-12.6h-7.1v6.8h2.1v-5.1h2.9v10.2h-2.9v-1.4h-7.7v2.5h-3v-11.2h3v5.1h1.9v-6.8h-6.7v17.4h-4.5v-21.9h10.8v-2.6h-11.9v-4.5h6.8v-3.2h-5.5v-4.4h5.5v-3.4h4.7v3.5h5.7v-3.5h4.9v3.5h5.6v4.4h-5.6v3.2h6.8v4.5h-12.2zm-5.2-4.4h5.7v-3.2h-5.7v3.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f236.svg b/build/js/jsxc/lib/emojione/assets/svg/1f236.svg
index 1caf395..8d2d4e3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f236.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f236.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.478,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m28.996 22.963c-.471 1.041-.98 2.041-1.57 3.042h18.18v19.02c0 2.271-.432 3.504-2.041 4.197-1.531.732-3.769.77-6.948.77-.197-1.27-.824-3.195-1.414-4.428 2 .117 4.28.117 4.947.117.667-.039.903-.232.903-.771v-2.309h-14.172v7.354h-4.634v-16.75c-1.57 1.695-3.259 3.234-5.183 4.504-.667-1-2.158-2.656-3.062-3.504 4.162-2.732 7.42-6.775 9.774-11.242h-8.597v-4.312h10.56c.63-1.579 1.141-3.119 1.533-4.659l4.827 1.078c-.393 1.193-.785 2.387-1.255 3.581h19.16v4.312h-21m12.05 7.05h-14.172v2.465h14.172v-2.465m0 8.779v-2.504h-14.172v2.504h14.172"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#eda454"/><path d="m29 23c-.5 1-1 2-1.6 3h18.2v19c0 2.3-.4 3.5-2 4.2-1.6.8-3.8.8-7 .8-.2-1.3-.8-3.2-1.4-4.4 2 .1 4.3.1 4.9.1.7 0 .9-.2.9-.8v-2.3h-14.1v7.4h-4.6v-16.8c-1.6 1.7-3.3 3.2-5.2 4.5-.7-1-2.2-2.7-3.1-3.5 4.2-2.7 7.4-6.8 9.8-11.2h-8.6v-4.3h10.6c.6-1.6 1.1-3.1 1.5-4.7l4.8 1.1c-.4 1.2-.8 2.4-1.3 3.6h19.2v4.3h-21m12 7h-14.1v2.5h14.1v-2.5m0 8.8v-2.5h-14.1v2.5h14.1" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f237.svg b/build/js/jsxc/lib/emojione/assets/svg/1f237.svg
index 08faed0..01c87d7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f237.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f237.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M62,52c0,5.523-4.477,10-10,10H12C6.476,62,2,57.523,2,52V12C2,6.477,6.476,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m47 42.517c0 2.598-.625 3.823-2.318 4.546-1.768.758-4.344.829-8.135.829-.258-1.263-1.143-3.319-1.842-4.51 2.576.145 5.67.108 6.479.108.883 0 1.18-.289 1.18-1.046v-5.231h-15.757c-.957 4.04-2.797 7.974-6.221 10.787-.662-.902-2.429-2.49-3.387-3.103 5.559-4.654 6.075-11.545 6.075-17.03v-11.869h23.926v26.517m-4.637-9.454v-4.4h-14.761c-.037 1.371-.111 2.886-.258 4.4h15.02m-14.761-12.878v4.402h14.762v-4.402h-14.762"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#eda454"/><path d="m47 42.5c0 2.6-.6 3.8-2.3 4.5-1.8.8-4.3.8-8.1.8-.3-1.3-1.1-3.3-1.8-4.5 2.6.1 5.7.1 6.5.1.9 0 1.2-.3 1.2-1v-5.2h-15.9c-1 4-2.8 8-6.2 10.8-.7-.9-2.4-2.5-3.4-3.1 5.6-4.7 6.1-11.5 6.1-17v-11.9h23.9v26.5m-4.6-9.4v-4.4h-14.8c0 1.4-.1 2.9-.3 4.4h15.1m-14.8-12.9v4.4h14.8v-4.4h-14.8" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f238.svg b/build/js/jsxc/lib/emojione/assets/svg/1f238.svg
index 718065d..2bec669 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f238.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f238.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m47 20.584v20.295h-4.61v-1.646h-8.253v8.776h-4.647v-8.776h-8.07v1.817h-4.425v-20.466h12.49v-4.594h4.646v4.594h12.864m-25.575 3.908v3.462h8.07v-3.462h-8.07m8.06 10.834v-3.635h-8.07v3.635h8.07m4.647-10.834v3.462h8.253v-3.462h-8.253m8.253 10.834v-3.635h-8.253v3.635h8.253"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#eda454"/><path d="m47 20.6v20.3h-4.6v-1.6h-8.3v8.7h-4.6v-8.8h-8.1v1.8h-4.4v-20.4h12.5v-4.6h4.6v4.6h12.9m-25.6 3.9v3.5h8.1v-3.5h-8.1m8.1 10.8v-3.6h-8.1v3.6h8.1m4.6-10.8v3.5h8.3v-3.5h-8.3m8.3 10.8v-3.6h-8.3v3.6h8.3" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f239.svg b/build/js/jsxc/lib/emojione/assets/svg/1f239.svg
index f9b4a86..c989838 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f239.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f239.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e84d88" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m27.12 17.223h8v6.68h-1.982v2.951h-6.099v1.632h5.564v3.066h-5.564v1.672h7.661v3.534h-19.591v-3.534h7.775v-1.672h-5.64v-3.066h5.641v-1.632h-6.02v-2.951h-1.868v-6.68h7.776v-3.223h4.346v3.223m-9.986 20.855h15.97v11.533h-4.308v-1.32h-7.585v1.709h-4.077v-11.922m13.798-17.36h-11.931v2.874h3.888v-2.097h4.154v2.097h3.889v-2.874m-9.721 20.815v3.301h7.585v-3.301h-7.585m19.821-1.94h-4.308v-21.711h4.308v21.711m7.966-25.13v29.941c0 2.563-.458 3.847-1.982 4.584-1.486.776-3.85.931-6.976.931-.189-1.319-.839-3.455-1.485-4.776 2.21.116 4.384.077 5.146.077.647 0 .914-.232.914-.854v-29.903h4.383"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#c28fef"/><path d="m27.1 17.2h8v6.7h-2v3h-6.1v1.6h5.6v3.1h-5.6v1.7h7.7v3.5h-19.6v-3.5h7.8v-1.7h-5.6v-3.1h5.6v-1.6h-6v-3h-1.9v-6.7h7.8v-3.2h4.3c0 0 0 3.2 0 3.2m-10 20.9h16v11.5h-4.3v-1.3h-7.6v1.7h-4.1c0 0 0-11.9 0-11.9m13.8-17.4h-11.9v2.9h3.9v-2.1h4.1v2.1h3.9v-2.9m-9.7 20.8v3.3h7.6v-3.3h-7.6m19.8-1.9h-4.3v-21.7h4.3v21.7m8-25.1v29.9c0 2.6-.5 3.8-2 4.6-1.5.8-3.8.9-7 .9-.2-1.3-.8-3.5-1.5-4.8 2.2.1 4.4.1 5.1.1.6 0 .9-.2.9-.9v-29.8h4.5" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f23a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f23a.svg
index de21091..2c743f7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f23a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f23a.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="m48 20.06v8.167h-4.34v-4.295h-23.584v4.295h-4.076v-8.167h4.566c-.68-1.226-1.623-2.607-2.49-3.757l3.886-1.688c1.244 1.458 2.717 3.49 3.359 4.908l-1.209.536h5.813c-.529-1.38-1.547-3.259-2.453-4.715l3.924-1.342c1.096 1.496 2.342 3.682 2.867 5.061l-2.641.997h6.189c1.207-1.647 2.641-3.986 3.357-5.788l4.832 1.533c-1.094 1.457-2.227 2.99-3.283 4.255h5.283m-14.227 15.14c-.301.844-.641 1.61-.98 2.338h12.49v12.461h-4.453v-1.265h-17.697v1.265h-4.264v-12.461h9.473c.188-.766.414-1.57.564-2.338h-6.867v-9.391h19.697v9.392h-7.963m7.06 6.248h-17.697v3.336h17.697v-3.336m-14.641-9.584h11.207v-2.684h-11.207v2.684"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#eda454"/><path d="m48 20.1v8.2h-4.3v-4.3h-23.6v4.3h-4.1v-8.2h4.6c-.7-1.2-1.6-2.6-2.5-3.8l3.9-1.7c1.2 1.5 2.7 3.5 3.4 4.9l-1.2.5h5.8c-.5-1.4-1.5-3.3-2.5-4.7l3.9-1.3c1.1 1.5 2.3 3.7 2.9 5.1l-2.6 1h6.2c1.2-1.6 2.6-4 3.4-5.8l4.8 1.5c-1.1 1.5-2.2 3-3.3 4.3-.1 0 5.2 0 5.2 0m-14.2 15.1c-.3.8-.6 1.6-1 2.3h12.5v12.5h-4.5v-1.3h-17.7v1.3h-4.3v-12.5h9.5c.2-.8.4-1.6.6-2.3h-6.9v-9.4h19.7v9.4h-7.9m7 6.2h-17.7v3.3h17.7v-3.3m-14.6-9.5h11.2v-2.7h-11.2v2.7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f250.svg b/build/js/jsxc/lib/emojione/assets/svg/1f250.svg
index 6b2894d..0518c4a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f250.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f250.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#fff" cx="32" cy="32" r="24"/><g fill="#ed4c5c"><path d="m23.24 22.814c-1.906 3.312-5.219 6.575-8.23 8.784.654 1.204 1.756 3.916 2.01 4.968 1.055-.854 2.109-1.807 3.164-2.859v15.06h4.416v-20.18c1.055-1.354 2.01-2.811 2.762-4.166l-4.12-1.606"/><path d="m26.756 16.84l-4.168-1.706c-1.506 2.359-4.467 5.22-7.02 6.928.598.954 1.605 2.911 1.955 3.915 3.162-2.209 6.828-5.873 9.236-9.137"/><path d="m44.32 35.764v-1.756h3.764v-3.814h-20.779v3.814h12.299v1.756h-13.204v3.916h4.619l-2.459 1.605c1.506 1.506 3.26 3.564 4.064 4.971l3.365-2.41c-.705-1.205-2.211-2.811-3.566-4.166h7.18v4.518c0 .453-.15.604-.652.604-.504 0-1.959 0-3.465-.051.553 1.154 1.205 2.861 1.355 4.115 2.561 0 4.367-.049 5.723-.703 1.406-.652 1.756-1.807 1.756-3.865v-4.618h4.668v-3.916h-4.668"/><path d="m47.34 16.188h-18.572v12.55h18.572v-12.55m-4.967 9.487h-8.885v-1.756h8.885v1.756m0-4.669h-8.885v-1.705h8.885v1.705"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m32 2c-16.6 0-30 13.4-30 30 0 16.6 13.4 30 30 30s30-13.4 30-30c0-16.6-13.4-30-30-30m0 54c-13.3 0-24-10.7-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.3-10.7 24-24 24"/><path d="m23.2 22.8c-1.9 3.3-5.2 6.6-8.2 8.8.7 1.2 1.8 3.9 2 5 1.1-.9 2.1-1.8 3.2-2.9v15.1h4.4v-20.2c1.1-1.4 2-2.8 2.8-4.2l-4.2-1.6"/><path d="m26.8 16.8l-4.2-1.7c-1.5 2.4-4.5 5.2-7 6.9.6 1 1.6 2.9 2 3.9 3.1-2.1 6.7-5.8 9.2-9.1"/><path d="m44.3 35.8v-1.8h3.8v-3.8h-20.8v3.8h12.3v1.8h-13.2v3.9h4.6l-2.5 1.6c1.5 1.5 3.3 3.6 4.1 5l3.4-2.4c-.7-1.2-2.2-2.8-3.6-4.2h7.2v4.5c0 .5-.2.6-.7.6-.5 0-2 0-3.5-.1.6 1.2 1.2 2.9 1.4 4.1 2.6 0 4.4-.1 5.7-.7 1.4-.7 1.8-1.8 1.8-3.9v-4.6h4.7v-3.9l-4.7.1"/><path d="m47.3 16.2h-18.5v12.5h18.6v-12.5zm-4.9 9.5h-8.9v-1.8h8.9c0 0 0 1.8 0 1.8m0-4.7h-8.9v-1.7h8.9c0 0 0 1.7 0 1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f251.svg b/build/js/jsxc/lib/emojione/assets/svg/1f251.svg
index 6b0cb12..4da18fa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f251.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f251.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff8736" d="m62 32c0 16.527-13.477 30-30 30-16.527 0-30-13.473-30-30 0-16.526 13.473-30 30-30 16.523 0 30 13.474 30 30"/><g fill="#fff"><path d="m48 18v4.857h-3.59v21.264c0 2.658-.547 4.143-2.393 4.957-1.794.82-4.484.922-8.273.922-.201-1.482-1.047-3.73-1.744-5.113 2.592.156 5.432.156 6.23.104.797-.049 1.096-.256 1.096-.971v-21.16h-23.326v-4.857h32"/><path d="M19,26.5v17h4.639v-2.678H35V26.5H19z M30.057,36.393h-6.418v-5.461h6.418V36.393z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.5-13.5,30-30,30C15.5,62,2,48.5,2,32C2,15.5,15.5,2,32,2C48.5,2,62,15.5,62,32z" fill="#eda454"/><g fill="#fff"><path d="m48 18v4.9h-3.6v21.3c0 2.7-.5 4.1-2.4 5-1.8.8-4.5.9-8.3.9-.2-1.5-1-3.7-1.7-5.1 2.6.2 5.4.2 6.2.1.8 0 1.1-.3 1.1-1v-21.2h-23.3v-4.9h32"/><path d="m19 26.5v17h4.6v-2.7h11.4v-14.3h-16m11.1 9.9h-6.4v-5.5h6.4v5.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f300.svg b/build/js/jsxc/lib/emojione/assets/svg/1f300.svg
index 695569d..00f6030 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f300.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f300.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m34.15 31.13c2.547 6.07-3.762 9.743-9.03 7.436-3.931-1.723-5.195-6.282-5.142-10.19.132-9.751 11.319-14.954 19.774-13.424 10.862 1.965 15.519 14.458 13.815 24.25-1.846 10.612-11.505 17.566-21.55 19.413-3.482.64-2 5.936 1.461 5.299 15-2.76 26.413-15.06 25.965-30.618-.434-15.08-13.331-26.391-28.2-23.6-12.675 2.379-20.413 16.09-14.732 27.816 2.784 5.75 9.66 8.278 15.649 6.956 6.376-1.407 9.681-9.09 7.285-14.798-1.349-3.217-6.67-1.806-5.299 1.46"/><path d="m31.756-.02c-14.581 1.212-26.1 13.2-27.21 27.752-1.103 14.458 11.365 27.835 25.857 27.321 14.771-.527 24.273-17.261 17.03-30-6.798-11.961-27.07-5.244-22.22 8.795 1.152 3.327 6.462 1.896 5.299-1.461-1.807-5.22 1.76-8.84 7.297-8.08 4.281.587 6.324 5.443 6.782 9.199 1.5 12.29-12.81 18.82-22.677 14.437-9.33-4.146-13.472-14.832-11.21-24.403 2.274-9.624 11.332-17.252 21.05-18.06 3.505-.291 3.533-5.789-.001-5.496"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4fd1d9"><path d="m58 33.2c-.4-14.1-12.6-24.7-26.7-22.1-12 2.2-19.3 15.1-13.9 26.1 2.6 5.4 9.1 7.8 14.8 6.5 6-1.3 9.2-8.5 6.9-13.9-1.3-3-6.3-1.7-5 1.4 2.4 5.7-3.6 9.1-8.5 7-3.7-1.6-4.9-5.9-4.9-9.6.1-9.1 10.7-14 18.7-12.6 10.2 1.9 14.6 13.6 13 22.8-1.7 9.9-10.8 16.5-20.3 18.2-3.3.6-1.9 5.6 1.4 5 14.1-2.6 24.9-14.2 24.5-28.8"/><path d="m46.6 25.5c-6.4-11.2-25.6-4.9-21 8.2 1.1 3.1 6.1 1.8 5-1.4-1.7-4.9 1.7-8.3 6.9-7.6 4 .6 6 5.1 6.4 8.6 1.5 11.7-12.1 17.8-21.4 13.7-8.8-3.9-12.7-13.9-10.6-22.9 2.2-9 10.7-16.2 19.9-16.9 3.3-.3 3.3-5.4 0-5.2-13.8 1.1-24.7 12.4-25.7 26-1.1 13.6 10.7 26.1 24.4 25.6 14-.5 23-16.1 16.1-28.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f301.svg b/build/js/jsxc/lib/emojione/assets/svg/1f301.svg
index 2ea1de8..a94c77a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f301.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f301.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m0 0h64v64h-64z"/><g fill="#dae3ea"><path d="m19.677 6.373c0 .804-.651 1.455-1.455 1.455h-12.934c-.804 0-1.455-.651-1.455-1.455 0-.804.651-1.455 1.455-1.455h12.934c.803 0 1.455.651 1.455 1.455"/><path d="m25.407 3.462c0 .804-.652 1.456-1.455 1.456h-12.933c-.804 0-1.455-.652-1.455-1.456 0-.804.651-1.455 1.455-1.455h12.934c.802 0 1.454.652 1.454 1.455"/><path d="m60.17 19.588c0 .805-.651 1.456-1.455 1.456h-12.934c-.804 0-1.455-.651-1.455-1.456 0-.804.651-1.455 1.455-1.455h12.934c.804 0 1.455.651 1.455 1.455"/><path d="m56.793 16.678c0 .804-.651 1.455-1.455 1.455h-12.934c-.804 0-1.455-.651-1.455-1.455 0-.804.651-1.455 1.455-1.455h12.934c.804 0 1.455.651 1.455 1.455"/></g><path fill="#7c8d93" d="m48 30.738c3.25 0 16 0 16 0v18.262h-20v-14.262c0-2.201 1.8-4 4-4"/><g fill="#d6eef0"><path d="m60.8 34h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/><path d="m55.8 34h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/></g><g fill="#7c8d93"><path d="m51.31 27.994h11.02v2.864h-11.02z"/><path d="m0 28.11h13.14v-5.222l-13.14 3z"/><path d="m0 28h13v21h-13z"/></g><g fill="#d6eef0"><path d="m9.5 36c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m9.5 44c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><path fill="#62727a" d="m23 4l-10 11.316v33.684h20v-33.684z"/><path fill="#d6eef0" d="m30 28c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path fill="#ffdd7d" d="m30 44c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path fill="#d6eef0" d="m30 20c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path fill="#62727a" d="m50 23v-4l-6-2v-11h-2v11l-6 2v4h-3v26h20v-26z"/><g fill="#d6eef0"><path d="m41.5 30c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 38c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><g fill="#6adbc6"><path d="m41.5 46c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 46c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><path fill="#d6eef0" d="m30 36c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path fill="#d0d0d0" d="m0 56.01l64-9.98v17.97h-64z"/><path fill="#e8e8e8" d="m47 40.937c.383 0 .744.077 1.08.208.38-2.379 2.43-4.202 4.919-4.202 2 0 3.721 1.183 4.518 2.882.684-.545 1.54-.885 2.484-.885 2.207 0 3.999 1.789 3.999 3.993 0 2.206-1.792 3.994-3.999 3.994h-13c-1.657 0-3-1.341-3-2.995 0-1.654 1.343-2.995 3-2.995"/><ellipse fill="#d0d0d0" cx="8" cy="52.918" rx="8" ry="7.988"/><g fill="#e8e8e8"><path d="m8.9 42.533c.497 0 .968.109 1.403.293.495-3.331 3.159-5.884 6.396-5.884 2.604 0 4.836 1.657 5.873 4.04.888-.765 2-1.239 3.229-1.239 2.87 0 5.199 2.504 5.199 5.591 0 3.089-2.329 5.592-5.199 5.592h-16.901c-2.154 0-3.9-1.878-3.9-4.194 0-2.315 1.746-4.194 3.9-4.194"/><path d="m0 53.966c2.489 0 4.54 1.813 4.92 4.182.336-.13.697-.208 1.08-.208 1.657 0 3 1.336 3 2.98 0 1.646-1.343 3.03-3 3.03h-6v-9.984"/></g><path fill="#d0d0d0" d="m58.2 41.574c-2.67 0-5.087.949-7.02 2.477-2.252-4.75-7.104-8.06-12.764-8.06-7.03 0-12.82 5.095-13.896 11.746-.944-.365-1.969-.584-3.049-.584-4.684 0-8.476 3.752-8.476 8.371 0 4.622 3.792 8.423 8.476 8.423h42.525v-20.78c-1.697-1.01-3.676-1.596-5.797-1.596"/><g fill="#e8e8e8"><path d="m59.2 50.32c-.611 0-1.191.125-1.727.333-.609-3.806-3.889-6.724-7.871-6.724-3.205 0-5.953 1.894-7.229 4.611-1.094-.873-2.463-1.417-3.975-1.417-3.531 0-6.398 2.862-6.398 6.39 0 3.53 2.867 6.391 6.398 6.391h20.801c2.652 0 4.801-2.146 4.801-4.793.001-2.644-2.147-4.791-4.8-4.791"/><path d="m28 57.96c-.383 0-.744.077-1.08.208-.38-2.379-2.43-4.202-4.919-4.202-2 0-3.721 1.183-4.518 2.882-.684-.546-1.54-.885-2.484-.885-2.207 0-3.999 1.789-3.999 3.993 0 2.206 1.792 3.994 3.999 3.994h13c1.657 0 3-1.342 3-2.995s-1.343-2.995-3-2.995"/></g><g fill="#d0d0d0"><path d="m47 63.9c-.945-4.557-5.063-7.987-10-7.987s-9.05 3.431-10 7.987h20"/><path d="m21.5 63.95c-1.7-3.577-4.865-5.991-8.5-5.991s-6.8 2.414-8.5 5.991h17"/><path d="m0 42.934v7.987h9.799c-.927-4.558-4.961-7.987-9.799-7.987"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m0 0h64v64h-64z"/><g fill="#dae3ea"><path d="m19.7 6.4c0 .8-.7 1.5-1.5 1.5h-12.9c-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5h12.9c.8 0 1.5.7 1.5 1.5"/><path d="m25.4 3.5c0 .8-.7 1.5-1.5 1.5h-12.9c-.8 0-1.5-.7-1.5-1.5.1-.8.7-1.5 1.5-1.5h13c.8 0 1.4.7 1.4 1.5"/><path d="m60.2 19.6c0 .8-.7 1.5-1.5 1.5h-12.9c-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5h12.9c.8 0 1.5.7 1.5 1.5"/><path d="m56.8 16.7c0 .8-.7 1.5-1.5 1.5h-12.9c-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5h12.9c.8 0 1.5.7 1.5 1.5"/></g><path d="m48 30.7c3.2 0 16 0 16 0v18.3h-20v-14.3c0-2.2 1.8-4 4-4" fill="#7c8d93"/><g fill="#d6eef0"><path d="m60.8 34h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/><path d="m55.8 34h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/></g><g fill="#7c8d93"><path d="m51.3 28h11v2.9h-11z"/><path d="m0 28.1h13.1v-5.2l-13.1 3z"/><path d="m0 28h13v21h-13z"/></g><g fill="#d6eef0"><path d="m9.5 36c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/><path d="m9.5 44c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/></g><path fill="#62727a" d="m23 4l-10 11.3v33.7h20v-33.7z"/><path d="m30 28c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2" fill="#d6eef0"/><path d="m30 44c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2" fill="#ffdd7d"/><path d="m30 20c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2" fill="#d6eef0"/><path fill="#62727a" d="m50 23v-4l-6-2v-11h-2v11l-6 2v4h-3v26h20v-26z"/><g fill="#d6eef0"><path d="m41.5 30c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 38c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/></g><g fill="#6adbc6"><path d="m41.5 46c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 46c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/></g><path d="m30 36c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2" fill="#d6eef0"/><path fill="#d0d0d0" d="m0 56l64-10v18h-64z"/><path d="m47 40.9c.4 0 .7.1 1.1.2.4-2.4 2.4-4.2 4.9-4.2 2 0 3.7 1.2 4.5 2.9.7-.5 1.5-.9 2.5-.9 2.2 0 4 1.8 4 4 0 2.2-1.8 4-4 4h-13c-1.7 0-3-1.3-3-3 0-1.6 1.3-3 3-3" fill="#e8e8e8"/><ellipse cx="8" cy="52.9" rx="8" ry="8" fill="#d0d0d0"/><g fill="#e8e8e8"><path d="m8.9 42.5c.5 0 1 .1 1.4.3.5-3.3 3.2-5.9 6.4-5.9 2.6 0 4.8 1.7 5.9 4 .9-.8 2-1.2 3.2-1.2 2.9 0 5.2 2.5 5.2 5.6 0 3.1-2.3 5.6-5.2 5.6h-16.9c-2.2 0-3.9-1.9-3.9-4.2 0-2.3 1.7-4.2 3.9-4.2"/><path d="m0 54c2.5 0 4.5 1.8 4.9 4.2.4-.2.7-.3 1.1-.3 1.7 0 3 1.3 3 3 0 1.6-1.3 3-3 3h-6v-9.9"/></g><path d="m58.2 41.6c-2.7 0-5.1.9-7 2.5-2.3-4.8-7.1-8.1-12.8-8.1-7 0-12.8 5.1-13.9 11.7-.9-.4-2-.6-3-.6-4.7 0-8.5 3.8-8.5 8.4 0 4.6 3.8 8.4 8.5 8.4h42.5v-20.7c-1.7-1-3.7-1.6-5.8-1.6" fill="#d0d0d0"/><g fill="#e8e8e8"><path d="m59.2 50.3c-.6 0-1.2.1-1.7.3-.6-3.8-3.9-6.7-7.9-6.7-3.2 0-6 1.9-7.2 4.6-1.1-.9-2.5-1.4-4-1.4-3.5 0-6.4 2.9-6.4 6.4 0 3.5 2.9 6.4 6.4 6.4h20.8c2.7 0 4.8-2.1 4.8-4.8 0-2.6-2.1-4.8-4.8-4.8"/><path d="m28 58c-.4 0-.7.1-1.1.2-.4-2.4-2.4-4.2-4.9-4.2-2 0-3.7 1.2-4.5 2.9-.7-.6-1.6-.9-2.5-.9-2.2 0-4 1.8-4 4 0 2.2 1.8 4 4 4h13c1.7 0 3-1.3 3-3s-1.3-3-3-3"/></g><g fill="#d0d0d0"><path d="m47 63.9c-.9-4.6-5.1-8-10-8s-9.1 3.4-10 8h20"/><path d="m21.5 64c-1.7-3.6-4.9-6-8.5-6s-6.8 2.4-8.5 6h17"/><path d="m0 42.9v8h9.8c-.9-4.5-5-8-9.8-8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f302.svg b/build/js/jsxc/lib/emojione/assets/svg/1f302.svg
index c6c69ed..2e02d28 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f302.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f302.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(-.7071.7071-.7071-.7071 86.17 4.947)" fill="#d0d0d0" d="m34.04 19.03h16.05v2.587h-16.05z"/><path fill="#f2b200" d="m36.736 26.26c-4.757-4.756-3.914-9.196-2.326-12.491l-31.671 46.22 47.05-32.01c-3.292 1.566-8.471 2.865-13.05-1.715"/><path fill="#ffce31" d="m21.567 11.1c-2.949-2.948-4.271-6.741-3.739-9.829l-15.09 58.725 32.15-46.913c-3.13 3.13-9.09 2.242-13.319-1.983"/><path fill="#ff8736" d="m61.6 45.04c-3.088.53-6.882-.792-9.829-3.74-4.225-4.225-5.113-10.188-1.983-13.319l-47.05 32.01 58.86-14.954"/><g fill="#3e4347"><path d="m46.816 13.733l.101.101 1.729 1.729.346.346 6.262-6.262c1.025-1.025 2.979-.735 4.364.65 1.384 1.385 1.675 3.339.649 4.365l-.019.017c-.513.514-.367 1.491.325 2.183.693.692 1.67.838 2.183.324.001-.002.002-.003.005-.004.005-.004.009-.01.013-.014 2.052-2.051 1.47-5.958-1.3-8.728-2.769-2.77-6.677-3.351-8.729-1.3l-6.261 6.262.332.331"/><path d="m.462 62.27c.506.505 1.219.611 1.594.236.003-.002 1.357-1.357 3.132-3.131-.154-.385-.399-.765-.731-1.098-.336-.333-.715-.578-1.1-.732-1.773 1.773-3.129 3.128-3.132 3.131-.374.375-.269 1.088.237 1.594"/><path d="m44.42 21.3c-.103.01-.269-.107-.417-.258l-.384-.382 1.151-1.153c-.189.957.111 1.75-.35 1.793"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-2.0487 35.6909)" fill="#d0d0d0" d="m34 19h16v2.6h-16z"/><path d="m36.7 26.3c-4.8-4.8-3.9-9.2-2.3-12.5l-31.7 46.2 47-32c-3.2 1.5-8.4 2.8-13-1.7" fill="#f2b200"/><path d="m21.6 11.1c-2.9-2.9-4.3-6.7-3.7-9.8l-15.2 58.7 32.1-46.9c-3 3.1-9 2.2-13.2-2" fill="#ffce31"/><path d="m61.6 45c-3.1.5-6.9-.8-9.8-3.7-4.2-4.2-5.1-10.2-2-13.3l-47 32 58.8-15" fill="#ff8736"/><g fill="#3e4347"><path d="m46.8 13.7l.1.1 1.7 1.7.3.3 6.3-6.3c1-1 3-.7 4.4.6 1.4 1.4 1.7 3.3.6 4.4-.5.5-.4 1.5.3 2.2.7.7 1.7.8 2.2.3 2.1-2.1 1.5-6-1.3-8.7-2.8-2.8-6.7-3.4-8.7-1.3l-6.3 6.3.4.4"/><path d="m.5 62.3c.5.5 1.2.6 1.6.2 0 0 1.4-1.4 3.1-3.1-.2-.4-.4-.8-.7-1.1-.3-.3-.7-.6-1.1-.7-1.8 1.8-3.1 3.1-3.1 3.1-.4.3-.3 1.1.2 1.6"/><path d="m44.4 21.3c-.1 0-.3-.1-.4-.3l-.4-.4 1.2-1.2c-.2 1.1.1 1.9-.4 1.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f303.svg b/build/js/jsxc/lib/emojione/assets/svg/1f303.svg
index af2d244..cb533e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f303.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f303.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 0h64v64h-64z"/><path fill="#3e4347" d="m48 45.738c3.25 0 16 0 16 0v18.262h-20v-14.262c0-2.201 1.8-4 4-4"/><g fill="#d0d0d0"><path d="m60.8 49h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/><path d="m55.8 49h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/></g><g fill="#3e4347"><path d="m51.31 42.994h11.02v2.864h-11.02z"/><path d="m0 43.11h13.14v-5.222l-13.14 3z"/></g><path fill="#ffdd7d" d="m57.716 1.623c0 0 .523 6.943-3.33 11.08-3.857 4.136-10.636 3.895-10.636 3.895 4.183 3.604 10.698 3.174 14.554-.96 3.86-4.136 3.593-10.408-.588-14.01"/><path fill="#6adbc6" d="M10.556 14.334 8.89 11 7.222 14.334 3.89 16 7.222 17.666 8.89 21 10.556 17.666 13.89 16z"/><path transform="matrix(-.7071.7071-.7071-.7071 26.489 21.03)" fill="#fff" d="m7.122 14.232h3.536v3.536h-3.536z"/><path fill="#6adbc6" d="m34.25 8.666l-1.667-3.334-1.668 3.334-3.332 1.666 3.332 1.666 1.668 3.334 1.667-3.334 3.333-1.666z"/><path transform="matrix(-.7071.7071-.7071-.7071 62.929-5.402)" fill="#fff" d="m30.815 8.564h3.536v3.536h-3.536z"/><path fill="#6adbc6" d="M56.666 25.751 55 22.417 53.33 25.751 50 27.417 53.33 29.08 55 32.417 56.666 29.08 60 27.417z"/><path transform="matrix(-.7071.7071-.7071-.7071 113.28 7.913)" fill="#fff" d="m53.23 25.649h3.536v3.536h-3.536z"/><path fill="#3e4347" d="m0 43h13v21h-13z"/><g fill="#ed4c5c"><path d="m9.5 51c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m9.5 59c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><path fill="#121314" d="m23 19l-10 11.32v33.68h20v-33.68z"/><g fill="#ffdd7d"><path d="m30 43c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 59c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 35c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/></g><path fill="#121314" d="m50 38v-4l-6-2v-11h-2v11l-6 2v4h-3v26h20v-26z"/><g fill="#6adbc6"><path d="m41.5 45c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 53c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m41.5 61c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 61c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><path fill="#ffdd7d" d="m30 51c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 0h64v64h-64z"/><path d="m48 45.7c3.2 0 16 0 16 0v18.3h-20v-14.3c0-2.2 1.8-4 4-4" fill="#3e4347"/><g fill="#d0d0d0"><path d="m60.8 49h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/><path d="m55.8 49h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/></g><g fill="#3e4347"><path d="m51.3 43h11v2.9h-11z"/><path d="m0 43.1h13.1v-5.2l-13.1 3z"/></g><path d="m57.7 1.6c0 0 .5 6.9-3.3 11.1-3.9 4.1-10.6 3.9-10.6 3.9 4.2 3.6 10.7 3.2 14.6-1 3.8-4.1 3.5-10.4-.7-14" fill="#ffdd7d"/><path fill="#6adbc6" d="m10.6 14.3l-1.7-3.3-1.7 3.3-3.3 1.7 3.3 1.7 1.7 3.3 1.7-3.3 3.3-1.7z"/><path transform="matrix(.7071-.7071.7071.7071-8.7102 10.9723)" fill="#fff" d="m7.1 14.2h3.5v3.5h-3.5z"/><path fill="#6adbc6" d="m34.2 8.7l-1.6-3.4-1.7 3.4-3.3 1.6 3.3 1.7 1.7 3.3 1.6-3.3 3.4-1.7z"/><path transform="matrix(.7071-.7071.7071.7071 2.2377 26.066)" fill="#fff" d="m30.8 8.6h3.5v3.5h-3.5z"/><path fill="#6adbc6" d="m56.7 25.8l-1.7-3.4-1.7 3.4-3.3 1.6 3.3 1.7 1.7 3.3 1.7-3.3 3.3-1.7z"/><path transform="matrix(.7071-.7071.7071.7071-3.2773 46.9215)" fill="#fff" d="m53.2 25.6h3.5v3.5h-3.5z"/><path fill="#3e4347" d="m0 43h13v21h-13z"/><g fill="#ed4c5c"><path d="m9.5 51c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/><path d="m9.5 59c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/></g><path fill="#121314" d="m23 19l-10 11.3v33.7h20v-33.7z"/><g fill="#ffdd7d"><path d="m30 43c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 59c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 35c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/></g><path fill="#121314" d="m50 38v-4l-6-2v-11h-2v11l-6 2v4h-3v26h20v-26z"/><g fill="#6adbc6"><path d="m41.5 45c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 53c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m41.5 61c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 61c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/></g><path d="m30 51c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2" fill="#ffdd7d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f304.svg b/build/js/jsxc/lib/emojione/assets/svg/1f304.svg
index f83ca0e..1d032f0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f304.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f304.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m0 0h64v64h-64z"/><g fill="#ffdf99"><circle cx="32" cy="32" r="10.72"/><path d="m3.486 4.158c2.257 4.452 5.591 8.386 9.173 11.826 3.318 3.187 7.175 6.409 11.484 8.159-1.889-4.648-5.449-8.775-8.945-12.289-3.507-3.502-7.637-7.07-12.288-8.945.171.425.368.841.576 1.249"/><path d="m42.21 19.859c-.886 1.357-1.739 2.777-2.352 4.283 4.647-1.882 8.779-5.451 12.289-8.945 3.516-3.521 7.03-7.635 8.945-12.288-3.641 1.462-6.949 4.052-9.852 6.64-3.407 3.04-6.528 6.483-9.03 10.31"/><path d="m29.906.361c-.371 3.654-.374 7.371-.007 11.03.314 3.179.83 6.546 2.102 9.501 2.024-4.699 2.407-10.339 2.363-15.39-.012-1.357-.064-2.715-.171-4.068-.014-.173-.063-1.429-.185-1.429-.211 0-.421 0-.632 0-.749 0-1.497 0-2.246 0-.542 0-1.171-.243-1.224.361"/><path d="m18.702 3.215c.965 3.543 2.299 7.01 3.956 10.291 1.437 2.859 3.127 5.798 5.36 8.119.198-5.112-1.468-10.511-3.309-15.213-.539-1.376-1.125-2.734-1.77-4.063-.292-.604-.788-2.349-1.516-2.349-1.162 0-2.324 0-3.486 0 .216 1.08.473 2.153.765 3.215"/><path d="m42.955 2.244c-1.825 3.188-3.339 6.583-4.49 10.07-1.01 3.036-1.896 6.315-1.945 9.534 2.787-2.59 4.896-6.06 6.647-9.405 2.062-3.933 3.712-8.118 4.737-12.443-.825 0-1.65 0-2.476 0-.353 0-.704 0-1.057 0-.342 0-1.229 1.917-1.416 2.244"/><path d="m63.64 29.905c-3.653-.371-7.372-.376-11.02-.007-3.171.313-6.557.818-9.5 2.102 4.719 2.01 10.323 2.405 15.389 2.362 1.357-.012 2.715-.065 4.068-.172.173-.014 1.43-.063 1.43-.183 0-.211 0-.421 0-.632 0-.749 0-1.498 0-2.247-.001-.544.242-1.165-.362-1.223"/><path d="m60.785 18.701c-3.543.961-7.01 2.3-10.291 3.955-2.858 1.438-5.8 3.126-8.119 5.361 5.135.155 10.484-1.459 15.213-3.31 1.376-.539 2.734-1.124 4.064-1.769.603-.292 2.348-.788 2.348-1.516 0-1.162 0-2.324 0-3.486-1.08.217-2.152.472-3.215.765"/><path d="m.362 34.1c3.653.371 7.372.365 11.03-.006 3.18-.315 6.541-.834 9.501-2.094-4.714-2-10.329-2.398-15.389-2.364-1.357.009-2.715.061-4.068.167-.174.013-1.431.061-1.431.184 0 .211 0 .422 0 .633 0 .751 0 1.502 0 2.253 0 .547-.243 1.168.362 1.227"/><path d="m2.245 21.05c3.187 1.824 6.582 3.341 10.07 4.489 3.03 1.01 6.319 1.908 9.535 1.945-2.601-2.783-6.06-4.893-9.405-6.647-3.931-2.061-8.12-3.718-12.445-4.736 0 .825 0 1.65 0 2.475 0 .352 0 .704 0 1.055 0 .342 1.918 1.233 2.245 1.419"/></g><path fill="#3e4347" d="m0 29.834v11.266l16.717-4.371z"/><path fill="#d0d0d0" d="m64 31.822l-16.72-9.547-15.28 12.721-15.283-7.726-16.717 11.262v4.188h64z"/><path fill="#3e4347" d="m47.28 22.275l5.583 6.641-10.142 3.582 12.922 4.231-12.922 3.771-26-13.23-4.203 7.726 8.767 1.733-4.564 5.991h47.28v-10.898z"/><path fill="#83bf4f" d="m64 39.757c-1.826.308-3.557.903-5.137 1.743-.922-1.204-2.373-1.98-4.01-1.98-1.418 0-2.699.587-3.617 1.529-.352-.332-.824-.536-1.348-.536-.785 0-1.461.459-1.777 1.123-.703-.345-1.49-.54-2.324-.54-1.166 0-2.244.379-3.117 1.019-1.359-1.587-3.375-2.595-5.629-2.595-2.197 0-4.169.958-5.527 2.477-.557-.89-1.543-1.483-2.671-1.483-1.423 0-2.625.943-3.02 2.239-.963-1.019-2.324-1.656-3.836-1.656-1.082 0-2.086.325-2.924.884-.057-2.91-2.431-5.25-5.354-5.25-2.664 0-4.873 1.943-5.287 4.489-1.275-1.061-2.914-1.699-4.701-1.699-1.361 0-2.635.371-3.729 1.016v23.463h64v-24.24"/><g fill="#699635"><path d="m63.52 47.23c-2.449-1.239-5.371-1.157-7.689.342-.648-2.393-2.818-4.378-5.357-4.421-2.476-.042-6.107 1.816-6.107 4.704-1.903-.812-4.269-.672-5.93.638-.987-1.627-3.108-2.146-4.815-1.454-.709.288-.945.952-1.67.387-.789-.615-1.7-1.07-2.659-1.35-1.864-.543-3.875-.385-5.641.42-.417.19-.818.415-1.2.669-.402.268-.769.761-1.204.955-.246.109-.678-.234-.888-.313-.533-.202-1.115-.318-1.684-.355-.858-.055-1.564.169-2.378.361-.279.066-.488-.256-.683-.396-.325-.232-.789-.438-1.194-.446-.574-.013-1.109.354-1.671.334-.235-.008-.674-.412-.891-.527-.466-.247-.961-.439-1.477-.554-1.823-.402-3.815.249-5.05 1.649-.487.55-1.519-.211-2.097-.395-1.055-.336-2.139-.562-3.229-.734 1.708.452 3.4 1.01 4.917 1.933.494.302.85-.519 1.219-.795.779-.586 1.724-.912 2.696-.953.885-.037 1.685.189 2.466.594.516.267.771.91 1.304 1.151.235.106.485-.216.639-.346.307-.256.742-.33 1.127-.245.362.08.668.296.867.607.152.24.239.623.6.564.916-.15 1.59-.587 2.569-.494.975.092 1.872.493 2.685 1.021.444.289.586-.079.974-.41.423-.361.847-.726 1.288-1.065 3.055-2.355 6.909-.541 9.177 1.871.819-1.03 1.688-2.185 3.187-1.832 1.263.297 1.747 1.701 2.133 2.782 1.01-.976 2.054-2.04 3.507-2.25 1.555-.226 2.907.518 4.212 1.254.155-2.78 1.094-5.261 4.134-5.798 3.02-.535 4.997 1.893 5.655 4.529 2.509-2.064 5.637-2.739 8.645-1.34-.17-.11-.343-.216-.521-.312.085.048.098.054.038.02m-49.39.819h.004c-.004 0-.004 0-.008 0 .002 0 .003 0 .004 0m27.912.772"/><path d="m64 58.35c-2.315-1.829-5.602-2.221-8.289-1.01-.729.329-1.403.772-2.01 1.291-.736.628-1.026.098-1.877-.116-.728-.184-1.5-.226-2.244-.148-.063.006-1.487.384-1.486.385-.434-.581-1.211-.911-1.925-.921-.293-.003-.6.056-.874.156-.621.229-.521.208-1.107-.158-1.276-.798-2.751-1.047-4.213-.659-.649.172-1.268.46-1.814.849-.366.261-.914 1.103-1.419.914-1.579-.59-3.065-1.042-4.739-1.303 1.613.427 3.347.915 4.761 1.834.544.354.652.041 1.025-.396.563-.657 1.571-1.047 2.401-1.191.854-.147 1.729-.071 2.533.255.697.283 1.059.758 1.61 1.235.513.443.841-.049 1.318-.309.804-.436 1.453.266 1.812.898.3.53 1.222-.133 1.721-.241.975-.212 2.092-.092 2.983.36.221.112 1.121.934 1.355.773.535-.365.863-.994 1.399-1.388 2.847-2.085 6.707-1.491 9.08 1.038.002-.68-.018-1.588.002-2.148m-17.875.584c.013 0 .013 0 0 0m4.119.672c.005 0 .021 0 0 0"/><path d="m35.15 55.11c-2.426-1.269-5.392-1.16-7.691.34-.647-2.403-2.818-4.359-5.357-4.42-1.561-.037-3.165.478-4.313 1.559-.499.47-1.044 1.085-1.286 1.735-.158.425-.174 1.074-.508 1.409-1.41-.622-3.205-.699-4.637-.085-.365.156-1.223.915-1.489.472-.354-.59-1.055-1.022-1.682-1.263-.71-.271-1.479-.335-2.223-.172-.318.069-.628.177-.921.319-.235.114-.791.678-1.046.633-.221-.039-.507-.406-.684-.531-.357-.253-.736-.473-1.13-.659-.692-.328-1.428-.554-2.178-.701 0 .482-.019.966-.019 1.447 0 .185 1.349.563 1.594.688 1.018.521 1.803 1.353 2.578 2.174.821-1.028 1.686-2.186 3.186-1.832 1.262.298 1.747 1.701 2.133 2.782 1-.975 2.054-2.039 3.507-2.249 1.555-.226 2.909.519 4.214 1.254.156-2.781 1.09-5.258 4.131-5.798 3.03-.536 4.991 1.894 5.657 4.528 2.519-2.062 5.628-2.727 8.645-1.339-.169-.109-.343-.218-.521-.312.088.048.101.054.04.021"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m0 0h64v64h-64z"/><g fill="#ffdf99"><circle cx="32" cy="32" r="10.7"/><path d="m3.5 4.2c2.3 4.5 5.6 8.4 9.2 11.8 3.3 3.2 7.2 6.4 11.5 8.2-1.9-4.6-5.4-8.8-8.9-12.3-3.6-3.5-7.7-7.1-12.4-9 .2.4.4.9.6 1.3"/><path d="m42.2 19.9c-.9 1.4-1.7 2.8-2.4 4.3 4.6-1.9 8.8-5.5 12.3-8.9 3.5-3.5 7-7.6 8.9-12.3-3.6 1.5-6.9 4.1-9.9 6.6-3.3 3-6.4 6.4-8.9 10.3"/><path d="m29.9.4c-.4 3.7-.4 7.4 0 11 .3 3.2.8 6.5 2.1 9.5 2-4.7 2.4-10.3 2.4-15.4 0-1.4-.1-2.7-.2-4.1 0-.1-.1-1.4-.2-1.4-.2 0-.4 0-.6 0-.7 0-1.5 0-2.2 0-.6 0-1.2-.2-1.3.4"/><path d="m18.7 3.2c1 3.5 2.3 7 4 10.3 1.4 2.9 3.1 5.8 5.4 8.1.2-5.1-1.5-10.5-3.3-15.2-.5-1.4-1.1-2.7-1.8-4.1-.4-.6-.8-2.3-1.6-2.3-1.2 0-2.3 0-3.5 0 .3 1.1.5 2.2.8 3.2"/><path d="m43 2.2c-1.8 3.2-3.3 6.6-4.5 10.1-1 3-1.9 6.3-1.9 9.5 2.8-2.6 4.9-6.1 6.6-9.4 2.1-3.9 3.7-8.1 4.7-12.4-.8 0-1.7 0-2.5 0-.4 0-.7 0-1.1 0-.3 0-1.2 1.9-1.3 2.2"/><path d="m63.6 29.9c-3.7-.4-7.4-.4-11 0-3.2.3-6.6.8-9.5 2.1 4.7 2 10.3 2.4 15.4 2.4 1.4 0 2.7-.1 4.1-.2.2 0 1.4-.1 1.4-.2 0-.2 0-.4 0-.6 0-.7 0-1.5 0-2.2 0-.6.2-1.2-.4-1.3"/><path d="m60.8 18.7c-3.5 1-7 2.3-10.3 4-2.9 1.4-5.8 3.1-8.1 5.4 5.1.2 10.5-1.5 15.2-3.3 1.4-.5 2.7-1.1 4.1-1.8.6-.3 2.3-.8 2.3-1.5 0-1.2 0-2.3 0-3.5-1.1.2-2.2.4-3.2.7"/><path d="m.4 34.1c3.7.4 7.4.4 11 0 3.2-.3 6.5-.8 9.5-2.1-4.7-2-10.3-2.4-15.4-2.4-1.4 0-2.7.1-4.1.2-.1 0-1.4.1-1.4.2 0 .2 0 .4 0 .6 0 .8 0 1.5 0 2.3 0 .5-.2 1.1.4 1.2"/><path d="m2.2 21c3.2 1.8 6.6 3.3 10.1 4.5 3 1 6.3 1.9 9.5 1.9-2.6-2.8-6.1-4.9-9.4-6.6-3.9-2-8.1-3.7-12.4-4.7 0 .8 0 1.6 0 2.5 0 .4 0 .7 0 1.1 0 .3 1.9 1.2 2.2 1.3"/></g><path fill="#3e4347" d="m0 29.8v11.3l16.7-4.4z"/><path fill="#d0d0d0" d="m64 31.8l-16.7-9.5-15.3 12.7-15.3-7.7-16.7 11.2v4.2h64z"/><path fill="#3e4347" d="m47.3 22.3l5.6 6.6-10.2 3.6 12.9 4.2-12.9 3.8-26-13.2-4.2 7.7 8.8 1.7-4.6 6h47.3v-10.9z"/><path d="m64 39.8c-1.8.3-3.6.9-5.1 1.7-.9-1.2-2.4-2-4-2-1.4 0-2.7.6-3.6 1.5-.4-.3-.8-.5-1.3-.5-.8 0-1.5.5-1.8 1.1-.7-.3-1.5-.5-2.3-.5-1.2 0-2.2.4-3.1 1-1.4-1.6-3.4-2.6-5.6-2.6-2.2 0-4.2 1-5.5 2.5-.6-.9-1.5-1.5-2.7-1.5-1.4 0-2.6.9-3 2.2-1-1-2.3-1.7-3.8-1.7-1.1 0-2.1.3-2.9.9-.1-2.9-2.4-5.2-5.4-5.2-2.7 0-4.9 1.9-5.3 4.5-1.3-1.1-2.9-1.7-4.7-1.7-1.4 0-2.6.4-3.7 1v23.5h64l-.2-24.2" fill="#83bf4f"/><g fill="#699635"><path d="m63.5 47.2c-2.4-1.2-5.4-1.2-7.7.3-.6-2.4-2.8-4.4-5.4-4.4-2.5 0-6.1 1.8-6.1 4.7-1.9-.8-4.3-.7-5.9.6-1-1.6-3.1-2.1-4.8-1.5-.7.3-.9 1-1.7.4-.8-.6-1.7-1.1-2.7-1.3-1.9-.5-3.9-.4-5.6.4-.4.2-.8.4-1.2.7-.4.3-.8.8-1.2 1-.2.1-.7-.2-.9-.3-.5-.2-1.1-.3-1.7-.4-.9-.1-1.6.2-2.4.4-.3.1-.5-.3-.7-.4-.3-.2-.8-.4-1.2-.4-.6 0-1.1.4-1.7.3-.2 0-.7-.4-.9-.5-.5-.2-1-.4-1.5-.6-1.8-.4-3.8.2-5.1 1.6-.5.5-1.5-.2-2.1-.4-1.1-.3-2.1-.6-3.2-.7 1.7.5 3.4 1 4.9 1.9.5.3.8-.5 1.2-.8.8-.6 1.7-.9 2.7-1 .9 0 1.7.2 2.5.6.5.3.8.9 1.3 1.2.2.1.5-.2.6-.3.3-.3.7-.3 1.1-.2.4.1.7.3.9.6.2.2.2.6.6.6.9-.2 1.6-.6 2.6-.5 1 .1 1.9.5 2.7 1 .4.3.6-.1 1-.4.4-.4.8-.7 1.3-1.1 3.1-2.4 6.9-.5 9.2 1.9.8-1 1.7-2.2 3.2-1.8 1.3.3 1.7 1.7 2.1 2.8 1-1 2.1-2 3.5-2.2 1.6-.2 2.9.5 4.2 1.3.2-2.8 1.1-5.3 4.1-5.8 3-.5 5 1.9 5.7 4.5 2.5-2.1 5.6-2.7 8.6-1.3 0-.3-.1-.4-.3-.5m-49.4.8c0 0 0 0 0 0m27.9.8"/><path d="m64 58.4c-2.3-1.8-5.6-2.2-8.3-1-.7.3-1.4.8-2 1.3-.7.6-1 .1-1.9-.1-.7-.2-1.5-.2-2.2-.1-.1 0-1.5.4-1.5.4-.4-.6-1.2-.9-1.9-.9-.3 0-.6.1-.9.2-.6.2-.5.2-1.1-.2-1.3-.8-2.8-1-4.2-.7-.6.2-1.3.5-1.8.8-.4.3-.9 1.1-1.4.9-1.6-.6-3.1-1-4.7-1.3 1.6.4 3.3.9 4.8 1.8.5.4.7 0 1-.4.6-.7 1.6-1 2.4-1.2.9-.1 1.7-.1 2.5.3.7.3 1.1.8 1.6 1.2.5.4.8 0 1.3-.3.8-.4 1.5.3 1.8.9.3.5 1.2-.1 1.7-.2 1-.2 2.1-.1 3 .4.2.1 1.1.9 1.4.8.5-.4.9-1 1.4-1.4 2.8-2.1 6.7-1.5 9.1 1-.1-.8-.1-1.7-.1-2.2m-17.9.5c0 0 0 0 0 0m4.1.7c0 0 .1 0 0 0"/><path d="m35.1 55.1c-2.4-1.3-5.4-1.2-7.7.3-.6-2.4-2.8-4.4-5.4-4.4-1.6 0-3.2.5-4.3 1.6-.5.5-1 1.1-1.3 1.7-.2.4-.2 1.1-.5 1.4-1.4-.6-3.2-.7-4.6-.1-.4.2-1.2.9-1.5.5-.4-.6-1.1-1-1.7-1.3-.7-.3-1.5-.3-2.2-.2-.3.2-.6.3-.9.4-.2.1-.8.7-1 .6-.2 0-.5-.4-.7-.5-.4-.3-.7-.5-1.1-.7-.7-.3-1.4-.6-2.2-.7 0 .5 0 1 0 1.4 0 .2 1.3.6 1.6.7 1 .5 1.8 1.4 2.6 2.2.8-1 1.7-2.2 3.2-1.8 1.3.3 1.7 1.7 2.1 2.8 1-1 2.1-2 3.5-2.2 1.6-.2 2.9.5 4.2 1.3.2-2.8 1.1-5.3 4.1-5.8 3-.5 5 1.9 5.7 4.5 2.5-2.1 5.6-2.7 8.6-1.3-.1-.2-.3-.3-.5-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f305.svg b/build/js/jsxc/lib/emojione/assets/svg/1f305.svg
index 77100fd..dfc8498 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f305.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f305.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m0 0h64v64h-64z"/><g fill="#ffdf99"><circle cx="32" cy="32" r="10.72"/><path d="m3.485 4.157c.391.771.984 1.837 1.772 3.04.785 1.204 1.763 2.549 2.885 3.916 1.118 1.369 2.386 2.757 3.712 4.084 1.33 1.324 2.718 2.59 4.088 3.708 1.368 1.121 2.713 2.098 3.917 2.886.603.392 1.167.739 1.681 1.035.513.296.97.544 1.355.737.384.198.696.342.912.438.216.095.335.142.335.142s-.047-.12-.143-.335c-.095-.216-.238-.528-.437-.912-.193-.386-.441-.843-.738-1.354-.295-.515-.642-1.079-1.035-1.682-.787-1.204-1.765-2.548-2.885-3.917-1.118-1.37-2.384-2.758-3.707-4.088-1.328-1.326-2.716-2.594-4.086-3.712-1.366-1.122-2.711-2.1-3.915-2.886-1.203-.787-2.27-1.381-3.04-1.771-.382-.198-.694-.34-.911-.435-.216-.096-.336-.142-.336-.142s.046.12.142.336c.095.217.239.529.434.912"/><path d="m42.21 19.859c-.393.603-.74 1.167-1.035 1.682-.296.512-.544.969-.738 1.354-.197.384-.341.696-.437.912-.095.215-.142.335-.142.335s.12-.047.335-.142c.216-.096.527-.239.912-.438.385-.193.843-.441 1.354-.737.515-.296 1.08-.644 1.682-1.035 1.204-.788 2.548-1.765 3.917-2.886 1.369-1.118 2.758-2.384 4.088-3.708 1.326-1.327 2.593-2.715 3.712-4.084 1.121-1.367 2.099-2.712 2.886-3.916.787-1.203 1.381-2.27 1.771-3.04.197-.383.341-.695.436-.912.095-.216.142-.336.142-.336s-.12.046-.336.142c-.216.095-.528.237-.913.436-.771.39-1.836.983-3.039 1.771-1.205.786-2.549 1.764-3.916 2.886-1.37 1.118-2.757 2.386-4.085 3.712-1.323 1.33-2.59 2.718-3.707 4.088-1.122 1.369-2.099 2.712-2.887 3.916"/><path d="m29.905.361c-.179 1.759-.265 3.636-.27 5.513.001 1.877.086 3.753.264 5.513.174 1.759.433 3.401.729 4.81.294 1.407.628 2.58.897 3.4.132.41.252.733.337.954.086.219.138.337.138.337s.051-.118.138-.337c.085-.221.205-.544.337-.954.27-.82.603-1.993.897-3.4.296-1.408.554-3.051.728-4.81.179-1.76.264-3.636.264-5.513-.004-1.877-.089-3.754-.269-5.513-.013-.122-.027-.241-.038-.361h-4.113c-.013.12-.026.239-.039.361"/><path d="m18.701 3.215c.465 1.707 1.058 3.488 1.729 5.241.677 1.751 1.429 3.472 2.227 5.05.794 1.581 1.625 3.02 2.404 4.229.391.604.765 1.152 1.114 1.629.349.479.665.892.938 1.228.271.335.497.594.655.769s.248.267.248.267.007-.128.007-.364c.001-.235-.004-.579-.027-1.01-.021-.432-.062-.95-.124-1.538-.06-.589-.148-1.247-.263-1.957-.228-1.419-.575-3.046-1.042-4.751-.463-1.706-1.056-3.489-1.724-5.243-.674-1.752-1.426-3.474-2.222-5.05-.295-.593-.597-1.164-.899-1.711h-3.785c.203 1.014.457 2.097.764 3.215"/><path d="m42.955 2.244c-.879 1.534-1.721 3.213-2.488 4.926-.763 1.716-1.448 3.465-2 5.144-.558 1.68-.988 3.284-1.291 4.69-.304 1.405-.476 2.612-.564 3.472-.046.43-.067.773-.079 1.01s-.012.364-.012.364.095-.087.263-.253c.168-.165.408-.411.696-.732.58-.642 1.361-1.577 2.203-2.743.843-1.165 1.746-2.561 2.621-4.098.879-1.534 1.719-3.215 2.483-4.929.76-1.716 1.444-3.466 1.996-5.146.461-1.39.833-2.729 1.121-3.948h-3.588c-.453.703-.91 1.454-1.36 2.244"/><path d="m63.64 29.905c-1.76-.18-3.636-.265-5.513-.27-1.877.001-3.753.086-5.513.264-1.76.174-3.401.433-4.809.729-1.408.294-2.582.627-3.402.896-.41.133-.733.252-.953.337-.22.087-.337.138-.337.138s.117.052.337.138c.22.085.543.206.953.338.82.27 1.994.603 3.402.897 1.407.296 3.049.554 4.809.728 1.76.179 3.636.264 5.513.264 1.877-.004 3.753-.089 5.513-.269.122-.013.241-.026.361-.039v-4.113c-.12-.012-.239-.025-.361-.038"/><path d="m60.784 18.701c-1.706.464-3.488 1.056-5.24 1.729-1.751.676-3.472 1.429-5.05 2.227-1.579.794-3.02 1.624-4.229 2.404-.604.39-1.151.765-1.629 1.114-.479.349-.892.665-1.227.938-.336.271-.595.498-.77.656-.174.157-.266.248-.266.248s.128.007.363.007.58-.005 1.01-.027c.433-.021.95-.063 1.538-.124.59-.06 1.247-.148 1.958-.263 1.42-.229 3.046-.576 4.751-1.043 1.706-.462 3.489-1.055 5.243-1.723 1.751-.675 3.474-1.426 5.05-2.223.59-.296 1.162-.598 1.709-.9v-3.785c-1.013.204-2.095.457-3.214.765"/><path d="m.361 34.1c1.76.179 3.636.264 5.513.264 1.877-.004 3.753-.089 5.513-.269 1.76-.175 3.402-.436 4.81-.73.704-.146 1.349-.301 1.921-.456.571-.153 1.07-.301 1.48-.437.411-.131.733-.251.953-.335.22-.086.337-.138.337-.138s-.117-.05-.337-.136c-.22-.085-.542-.204-.953-.336-.41-.136-.909-.282-1.48-.437-.572-.155-1.217-.309-1.921-.456-1.407-.296-3.05-.555-4.81-.729-1.76-.18-3.636-.265-5.513-.27-1.877.001-3.753.086-5.513.264-.122.012-.241.025-.361.039v4.124c.12.013.239.027.361.038"/><path d="m2.245 21.05c1.534.879 3.213 1.721 4.926 2.487 1.716.763 3.465 1.449 5.144 2 1.679.557 3.283.987 4.689 1.29 1.405.304 2.614.477 3.474.564.428.046.771.068 1.01.079.236.013.364.013.364.013s-.086-.096-.252-.263c-.166-.169-.412-.408-.733-.697-.642-.58-1.577-1.361-2.743-2.202-1.165-.843-2.56-1.747-4.096-2.621-1.536-.879-3.216-1.719-4.93-2.483-1.717-.76-3.467-1.444-5.146-1.996-1.391-.461-2.73-.834-3.949-1.122v3.586c.704.454 1.453.911 2.245 1.363"/></g><path fill="#42ade2" d="m0 32h64v32h-64z"/><g fill="#ffdf99"><ellipse cx="30.982" cy="36.19" rx="12.864" ry="1.419"/><ellipse cx="34.01" cy="41.1" rx="10.292" ry="1.135"/><ellipse cx="30.07" cy="45.51" rx="8.232" ry=".908"/><ellipse cx="32.559" cy="49.51" rx="6.587" ry=".726"/><ellipse cx="30.19" cy="53.05" rx="5.269" ry=".582"/><ellipse cx="32.559" cy="56.21" rx="4.216" ry=".464"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m0 0h64v64h-64z"/><g fill="#ffdf99"><circle cx="32" cy="32" r="10.7"/><path d="m3.5 4.2c.4.8 1 1.8 1.8 3 .7 1.2 1.7 2.5 2.8 3.9 1.1 1.4 2.4 2.8 3.7 4.1 1.3 1.3 2.7 2.6 4.1 3.7 1.4 1.1 2.7 2.1 3.9 2.9.6.4 1.2.7 1.7 1 .5.3 1 .5 1.4.7.4.2.7.3.9.4.2.1.3.1.3.1s0-.1-.1-.3c-.1-.2-.2-.5-.4-.9-.2-.4-.4-.8-.7-1.4-.3-.5-.6-1.1-1-1.7-.8-1.2-1.8-2.5-2.9-3.9-1.1-1.4-2.4-2.8-3.7-4.1-1.3-1.3-2.7-2.6-4.1-3.7-1.5-1-2.8-2-4-2.7-1.2-.8-2.3-1.4-3-1.8-.4-.2-.7-.4-1-.4-.2-.1-.3-.2-.3-.2s.1.1.2.3c0 .3.2.6.4 1"/><path d="m42.2 19.9c-.4.6-.7 1.2-1 1.7-.3.5-.5 1-.7 1.4-.2.4-.3.7-.4.9-.1.2-.1.3-.1.3s.1 0 .3-.1c.2-.1.5-.2.9-.4.4-.2.8-.4 1.4-.7.5-.3 1.1-.6 1.7-1 1.2-.8 2.5-1.8 3.9-2.9 1.4-1.1 2.8-2.4 4.1-3.7 1.3-1.3 2.6-2.7 3.7-4.1 1-1.6 2-2.9 2.7-4.1.8-1.2 1.4-2.3 1.8-3 .2-.4.3-.7.4-.9.1-.3.2-.4.2-.4s-.1.1-.3.1c-.2.1-.5.2-.9.4-.8.4-1.8 1-3 1.8-1.3.8-2.6 1.8-4 2.9-1.4 1.1-2.8 2.4-4.1 3.7-1.3 1.3-2.6 2.7-3.7 4.1-1.1 1.4-2.1 2.8-2.9 4"/><path d="m29.9.4c-.2 1.8-.3 3.6-.3 5.5 0 1.9.1 3.8.3 5.5.2 1.8.4 3.4.7 4.8.3 1.4.6 2.6.9 3.4.1.4.3.7.3 1 .1.2.1.3.1.3s.1-.1.1-.3c.1-.2.2-.5.3-1 .3-.8.6-2 .9-3.4.3-1.4.6-3.1.7-4.8.2-1.8.3-3.6.3-5.5 0-1.9-.1-3.8-.3-5.5 0-.1 0-.2 0-.4h-4.1c.1.1.1.2.1.4"/><path d="m18.7 3.2c.5 1.7 1.1 3.5 1.7 5.2.7 1.8 1.4 3.5 2.2 5.1.8 1.6 1.6 3 2.4 4.2.4.6.8 1.2 1.1 1.6.3.5.7.9.9 1.2.3.3.5.6.7.8s.2.3.2.3 0-.1 0-.4c0-.2 0-.6 0-1 0-.4-.1-1-.1-1.5-.1-.6-.1-1.2-.3-2-.2-1.4-.6-3-1-4.8-.5-1.7-1.1-3.5-1.7-5.2-.7-1.8-1.4-3.5-2.2-5.1-.3-.5-.6-1.1-.9-1.6h-3.8c.2 1 .5 2.1.8 3.2"/><path d="m43 2.2c-.9 1.5-1.7 3.2-2.5 4.9-.8 1.7-1.4 3.5-2 5.1-.6 1.7-1 3.3-1.3 4.7-.3 1.4-.5 2.6-.6 3.5 0 .4-.1.8-.1 1s0 .4 0 .4.1-.1.3-.3c.2-.2.4-.4.7-.7.6-.6 1.4-1.6 2.2-2.7.8-1.2 1.7-2.6 2.6-4.1.9-1.5 1.7-3.2 2.5-4.9.8-1.7 1.4-3.5 2-5.1.5-1.4.8-2.7 1.1-3.9h-3.6c-.4.6-.9 1.4-1.3 2.1"/><path d="m63.6 29.9c-1.8-.2-3.6-.3-5.5-.3-1.9 0-3.8.1-5.5.3-1.8.2-3.4.4-4.8.7-1.4.3-2.6.6-3.4.9-.4.1-.7.3-1 .3-.2.1-.3.1-.3.1s.1.1.3.1c.2.1.5.2 1 .3.8.3 2 .6 3.4.9 1.4.3 3 .6 4.8.7 1.8.2 3.6.3 5.5.3 1.9 0 3.8-.1 5.5-.3.1 0 .2 0 .4 0v-4.1c-.1.1-.2.1-.4.1"/><path d="m60.8 18.7c-1.7.5-3.5 1.1-5.2 1.7-1.8.7-3.5 1.4-5.1 2.2-1.6.8-3 1.6-4.2 2.4-.6.4-1.2.8-1.6 1.1-.5.3-.9.7-1.2.9-.3.3-.6.5-.8.7-.2.2-.3.2-.3.2s.1 0 .4 0 .6 0 1 0c.4 0 1-.1 1.5-.1.6-.1 1.2-.1 2-.3 1.4-.2 3-.6 4.8-1 1.7-.5 3.5-1.1 5.2-1.7 1.8-.7 3.5-1.4 5.1-2.2.6-.3 1.2-.6 1.7-.9v-3.8c-1.1.2-2.2.5-3.3.8"/><path d="m.4 34.1c1.8.2 3.6.3 5.5.3 1.9 0 3.8-.1 5.5-.3 1.8-.2 3.4-.4 4.8-.7.7-.1 1.3-.3 1.9-.5.6-.2 1.1-.3 1.5-.4.4-.1.7-.3 1-.3.2-.1.3-.1.3-.1s-.1 0-.3-.1c-.2-.1-.5-.2-1-.3-.4-.1-.9-.3-1.5-.4-.6-.2-1.2-.3-1.9-.5-1.4-.3-3.1-.6-4.8-.7-1.8-.2-3.6-.3-5.5-.3-1.9 0-3.8.1-5.5.3-.1 0-.2 0-.4 0v4.1c.1-.1.2-.1.4-.1"/><path d="m2.2 21c1.5.9 3.2 1.7 4.9 2.5 1.7.8 3.5 1.4 5.1 2 1.7.6 3.3 1 4.7 1.3 1.4.3 2.6.5 3.5.6.4 0 .8.1 1 .1.2 0 .4 0 .4 0s-.1-.1-.3-.3c-.2-.2-.4-.4-.7-.7-.6-.6-1.6-1.4-2.7-2.2-1.2-.8-2.6-1.7-4.1-2.6-1.5-.9-3.2-1.7-4.9-2.5-1.7-.8-3.5-1.4-5.1-2-1.4-.5-2.7-.8-3.9-1.1v3.6c.6.4 1.4.9 2.1 1.3"/></g><path fill="#42ade2" d="m0 32h64v32h-64z"/><g fill="#ffdf99"><ellipse cx="31" cy="36.2" rx="12.9" ry="1.4"/><ellipse cx="34" cy="41.1" rx="10.3" ry="1.1"/><ellipse cx="30.1" cy="45.5" rx="8.2" ry=".9"/><ellipse cx="32.6" cy="49.5" rx="6.6" ry=".7"/><ellipse cx="30.2" cy="53.1" rx="5.3" ry=".6"/><ellipse cx="32.6" cy="56.2" rx="4.2" ry=".5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f306.svg b/build/js/jsxc/lib/emojione/assets/svg/1f306.svg
index 6647d9d..0bf2b32 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f306.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f306.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fbbf67" d="m0 0h64v64h-64z"/><path opacity=".7" fill="#f15744" d="m0 0h64v64h-64z"/><path fill="#62727a" d="m48 45.738c3.25 0 16 0 16 0v18.262h-20v-14.262c0-2.201 1.8-4 4-4"/><g fill="#d0d0d0"><path d="m60.8 49h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/><path d="m55.8 49h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/></g><g fill="#62727a"><path d="m51.31 42.994h11.02v2.864h-11.02z"/><path d="m0 43.11h13.14v-5.222l-13.14 3z"/><path d="m0 43h13v21h-13z"/></g><g fill="#ed4c5c"><path d="m9.5 51c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m9.5 59c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><path fill="#3e4347" d="m50 38v-4l-6-2v-11h-2v11l-6 2v4h-3v-7.68l-10-11.32-10 11.32v33.68h20 20v-26z"/><g fill="#6adbc6"><path d="m41.5 45c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 53c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m41.5 61c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 61c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><g fill="#ffdd7d"><path d="m30 43c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 59c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 35c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 51c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fbbf67" d="m0 0h64v64h-64z"/><path opacity=".7" fill="#f15744" d="m0 0h64v64h-64z"/><path d="m48 45.7c3.2 0 16 0 16 0v18.3h-20v-14.3c0-2.2 1.8-4 4-4" fill="#62727a"/><g fill="#d0d0d0"><path d="m60.8 49h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/><path d="m55.8 49h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/></g><g fill="#62727a"><path d="m51.3 43h11v2.9h-11z"/><path d="m0 43.1h13.1v-5.2l-13.1 3z"/><path d="m0 43h13v21h-13z"/></g><g fill="#ed4c5c"><path d="m9.5 51c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/><path d="m9.5 59c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/></g><path fill="#3e4347" d="m50 38v-4l-6-2v-11h-2v11l-6 2v4h-3v-7.7l-10-11.3-10 11.3v33.7h20 20v-26z"/><g fill="#6adbc6"><path d="m41.5 45c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 53c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m41.5 61c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 61c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/></g><g fill="#ffdd7d"><path d="m30 43c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 59c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 35c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 51c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f307.svg b/build/js/jsxc/lib/emojione/assets/svg/1f307.svg
index 8b64cd4..d6648a4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f307.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f307.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ef8a45" d="m0 0h64v64h-64z"/><g fill="#f9b04e"><path opacity=".5" d="m28.25 0l1.75 28h4l1.75-28z"/><path opacity=".5" d="M46.848 0 37.04 28.604 40.736 30.14 56.48 0z"/><path opacity=".5" d="M64 8.415 43.31 31.857 46.14 34.687 64 18.93z"/><path opacity=".5" d="m64 29.369l-16.13 7.901 1.535 3.69 14.6-5.01z"/><path opacity=".5" d="M23.264 30.14 26.959 28.604 17.15 0 7.518 0z"/><path opacity=".5" d="M0 18.93 17.857 34.686 20.686 31.857 0 8.414z"/><path opacity=".5" d="M0 35.952 14.604 40.959 16.14 37.26 0 29.367z"/><path d="m0 48.875l14-.875v-4l-14-.87z"/></g><circle fill="#ffc466" cx="32" cy="38.652" r="25.348"/><path fill="#62727a" d="m48 45.738c3.25 0 16 0 16 0v18.262h-20v-14.262c0-2.201 1.8-4 4-4"/><g fill="#d0d0d0"><path d="m60.8 49h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/><path d="m55.8 49h.4c.439 0 .8.436.8.967v14.03h-2v-14.03c0-.531.36-.967.8-.967"/></g><g fill="#62727a"><path d="m51.31 42.994h11.02v2.864h-11.02z"/><path d="m0 43.11h13.14v-5.222l-13.14 3z"/><path d="m0 43h13v21h-13z"/></g><g fill="#ed4c5c"><path d="m9.5 51c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m9.5 59c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><path fill="#3e4347" d="m50 38v-4l-6-2v-11h-2v11l-6 2v4h-3v-7.68l-10-11.32-10 11.32v33.68h20 20v-26z"/><g fill="#6adbc6"><path d="m41.5 45c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 53c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m41.5 61c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m49.5 61c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><g fill="#ffdd7d"><path d="m30 43c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 59c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 35c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 51c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ef8a45" d="m0 0h64v64h-64z"/><g fill="#f9b04e"><path opacity=".5" d="m28.2 0l1.8 28h4l1.8-28z"/><path opacity=".5" d="M46.8 0 37 28.6 40.7 30.1 56.5 0z"/><path opacity=".5" d="M64 8.4 43.3 31.9 46.1 34.7 64 18.9z"/><path opacity=".5" d="M64 29.4 47.9 37.3 49.4 41 64 36z"/><path opacity=".5" d="M23.3 30.1 27 28.6 17.2 0 7.5 0z"/><path opacity=".5" d="M0 18.9 17.9 34.7 20.7 31.9 0 8.4z"/><path opacity=".5" d="m0 36l14.6 5 1.5-3.7-16.1-7.9z"/><path d="m0 48.9l14-.9v-4l-14-.9z"/></g><circle cx="32" cy="38.7" r="25.3" fill="#ffc466"/><path d="m48 45.7c3.2 0 16 0 16 0v18.3h-20v-14.3c0-2.2 1.8-4 4-4" fill="#62727a"/><g fill="#d0d0d0"><path d="m60.8 49h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/><path d="m55.8 49h.4c.4 0 .8.4.8 1v14h-2v-14c0-.6.4-1 .8-1"/></g><g fill="#62727a"><path d="m51.3 43h11v2.9h-11z"/><path d="m0 43.1h13.1v-5.2l-13.1 3z"/><path d="m0 43h13v21h-13z"/></g><g fill="#ed4c5c"><path d="m9.5 51c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/><path d="m9.5 59c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/></g><path fill="#3e4347" d="m50 38v-4l-6-2v-11h-2v11l-6 2v4h-3v-7.7l-10-11.3-10 11.3v33.7h20 20v-26z"/><g fill="#6adbc6"><path d="m41.5 45c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 53c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m41.5 61c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m49.5 61c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/></g><g fill="#ffdd7d"><path d="m30 43c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 59c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 35c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 51c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f308.svg b/build/js/jsxc/lib/emojione/assets/svg/1f308.svg
index 5d3af65..22ae3f5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f308.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f308.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f66" d="M62,6.503V2C35.034,2,13.172,23.776,13.172,50.638h4.521C17.692,26.264,37.532,6.503,62,6.503z"/><path fill="#fffb80" d="m17.692 50.638h4.521c0-21.884 17.814-39.631 39.786-39.631v-4.504c-24.467 0-44.31 19.761-44.31 44.13"/><path fill="#a3e66f" d="m62 15.51v-4.503c-21.972 0-39.786 17.747-39.786 39.631h4.521c0-19.4 15.79-35.13 35.27-35.13"/><path fill="#66c2ff" d="m26.735 50.638h4.521c0-16.911 13.766-30.624 30.743-30.624v-4.504c-19.474 0-35.26 15.728-35.26 35.13"/><path fill="#9180ff" d="m62 24.518v-4.504c-16.978 0-30.743 13.713-30.743 30.624h4.521c-.001-14.426 11.742-26.12 26.22-26.12"/><path fill="#fff" d="m10.137 60.65c-.724 0-1.44-.116-2.129-.344-2.781-.913-4.651-3.484-4.651-6.398 0-1.946.848-3.796 2.326-5.078.382-.332.796-.619 1.24-.856h-.023l.45-1.56c1.123-3.894 4.75-6.613 8.819-6.613.405 0 .821.032 1.311.103.375.054.742.13 1.102.226l.18-.323c1.644-2.945 4.766-4.775 8.146-4.775 5.135 0 9.312 4.154 9.312 9.261 0 .25-.017.492-.036.736l-.015.182c.396.15.782.332 1.155.547 2.482 1.422 4.02 4.072 4.02 6.912 0 3.74-2.56 6.938-6.225 7.774-.598.138-1.205.209-1.801.209h-23.19z"/><path fill="#75d6ff" d="m26.907 36.38c4.394 0 7.955 3.544 7.955 7.912 0 .213-.015.42-.032.627-1.839.141-3.509.869-4.821 2 .977-.558 2.105-.882 3.313-.882.447 0 .884.045 1.306.128.723.143 1.4.403 2.02.757 1.999 1.146 3.347 3.286 3.347 5.745 0 3.149-2.209 5.784-5.17 6.461-.482.11-.982.174-1.498.174h-23.19c-.595 0-1.165-.099-1.7-.274-2.162-.711-3.723-2.733-3.723-5.119 0-1.623.722-3.074 1.861-4.062.516-.45 1.117-.8 1.776-1.029.56-.193 1.159-.306 1.786-.306 1.749 0 3.299.826 4.292 2.105h.048c-1.151-2.108-3.304-3.595-5.823-3.833.937-3.25 3.944-5.635 7.514-5.635.382 0 .752.036 1.118.089.725.104 1.417.302 2.063.588 2.405 1.068 4.163 3.305 4.555 5.984 0-.014 0-.031 0-.046 0-3.052-1.573-5.738-3.957-7.305 1.359-2.43 3.965-4.08 6.96-4.08m0-2.696c-3.658 0-7.05 1.869-9 4.92-.075-.011-.151-.022-.227-.035-.559-.078-1.036-.114-1.507-.114-4.671 0-8.834 3.12-10.123 7.589l-.307 1.063c-.333.212-.651.451-.952.712-1.77 1.535-2.787 3.756-2.787 6.091 0 3.497 2.245 6.582 5.585 7.679.822.273 1.683.411 2.552.411h23.19c.7 0 1.41-.081 2.112-.244 4.278-.977 7.271-4.715 7.271-9.09 0-3.321-1.804-6.418-4.706-8.08-.14-.08-.281-.156-.425-.229 0-.022 0-.044 0-.066.001-5.851-4.784-10.609-10.667-10.609z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,6.5V2C35,2,13.2,23.8,13.2,50.6h4.5C17.7,26.3,37.5,6.5,62,6.5z" fill="#f66"/><path d="M17.7,50.6h4.5C22.2,28.8,40,11,62,11V6.5C37.5,6.5,17.7,26.3,17.7,50.6z" fill="#fffb80"/><path d="m62 15.5v-4.5c-22 0-39.8 17.7-39.8 39.6h4.5c0-19.4 15.8-35.1 35.3-35.1" fill="#a3e66f"/><path d="M26.7,50.6h4.5C31.3,33.7,45,20,62,20v-4.5C42.5,15.5,26.7,31.2,26.7,50.6z" fill="#66c2ff"/><path d="m62 24.5v-4.5c-17 0-30.7 13.7-30.7 30.6h4.5c0-14.4 11.7-26.1 26.2-26.1" fill="#9180ff"/><path d="m10.1 60.7c-.7 0-1.4-.1-2.1-.3-2.8-.9-4.7-3.5-4.7-6.4 0-1.9.8-3.8 2.3-5.1.4-.3.8-.6 1.2-.9l.4-1.6c1.1-3.9 4.8-6.6 8.8-6.6.4 0 .8 0 1.3.1.4.1.7.1 1.1.2l.2-.3c1.6-2.9 4.8-4.8 8.1-4.8 5.1 0 9.3 4.2 9.3 9.3 0 .2 0 .5 0 .7v.2c.4.2.8.3 1.2.5 2.5 1.4 4 4.1 4 6.9 0 3.7-2.6 6.9-6.2 7.8-.6.1-1.2.2-1.8.2l-23.1.1" fill="#fff"/><path d="m26.9 36.4c4.4 0 8 3.5 8 7.9 0 .2 0 .4 0 .6-1.8.1-3.5.9-4.8 2 1-.6 2.1-.9 3.3-.9.4 0 .9 0 1.3.1.7.1 1.4.4 2 .8 2 1.1 3.3 3.3 3.3 5.7 0 3.1-2.2 5.8-5.2 6.5-.5.1-1 .2-1.5.2h-23.2c-.6 0-1.2-.1-1.7-.3-2.2-.7-3.7-2.7-3.7-5.1 0-1.6.7-3.1 1.9-4.1.5-.5 1.1-.8 1.8-1 .6-.2 1.2-.3 1.8-.3 1.7 0 3.3.8 4.3 2.1-1.2-2.1-3.3-3.6-5.8-3.8.9-3.2 3.9-5.6 7.5-5.6.4 0 .8 0 1.1.1.7.1 1.4.3 2.1.6 2.4 1.1 4.2 3.3 4.6 6 0-3.1-1.6-5.7-4-7.3 1.3-2.6 3.9-4.2 6.9-4.2m0-2.7c-3.7 0-7.1 1.9-9 4.9-.1 0-.2 0-.2 0-.6-.1-1-.1-1.5-.1-4.7 0-8.8 3.1-10.1 7.6l-.3 1.1c-.3.2-.7.5-1 .7-1.8 1.5-2.8 3.7-2.8 6 0 3.5 2.2 6.6 5.6 7.7.8.3 1.7.4 2.6.4h23.2c.7 0 1.4-.1 2.1-.2 4.3-1 7.3-4.7 7.3-9.1 0-3.3-1.8-6.4-4.7-8.1-.1-.1-.3-.2-.4-.2 0 0 0 0 0-.1-.1-5.9-4.9-10.6-10.8-10.6z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f309.svg b/build/js/jsxc/lib/emojione/assets/svg/1f309.svg
index fcf92d0..cdaab31 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f309.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f309.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 0h64v64h-64z"/><path fill="#428bc1" d="m0 52h64v12h-64z"/><path fill="#3e4347" d="m64 28.891v-2c-4.842-.541-9.09-3.02-12-6.635v-10.252h-6v10.264c-3.303 4.095-8.342 6.736-14 6.736-5.66 0-10.699-2.641-14-6.736v-10.264h-6v10.252c-2.908 3.611-7.158 6.094-12 6.635v2c1.742-.174 3.416-.58 5-1.174v6.283h-5v6h9l1.199 6h1.801v6h6v-6h1.801l1.199-6h22l1.199 6h1.801v6h6v-6h1.801l1.199-6h9v-6h-5v-6.283c1.582.594 3.256 1 5 1.174m-18-5.645v4.754c0 2.973-2.164 5.434-5 5.91v-7.07c1.85-.938 3.533-2.155 5-3.598m-23 3.598v7.07c-2.836-.477-5-2.938-5-5.91v-4.754c1.465 1.443 3.148 2.66 5 3.598m-11-3.592v4.748c0 2.973-2.164 5.434-5 5.91v-7.07c1.85-.938 3.535-2.149 5-3.588m13 10.748v-6.275c1.883.707 3.898 1.139 6 1.244v5.03h-6m8 0v-5.03c2.102-.105 4.117-.537 6-1.244v6.275h-6m24-.09c-2.836-.477-5-2.938-5-5.91v-4.748c1.465 1.439 3.15 2.65 5 3.588v7.07"/><circle fill="#fff" cx="32" cy="12" r="8"/><g fill="#d0d0d0"><circle cx="35" cy="9" r="2"/><circle cx="29" cy="15" r="2"/><circle cx="29" cy="9" r="1"/><circle cx="35" cy="15" r="1"/></g><g fill="#fff"><path d="m40 53c0 .551-.451 1-1 1h-14c-.551 0-1-.449-1-1 0-.549.449-1 1-1h14c.549 0 1 .451 1 1"/><path d="m38 57c0 .551-.451 1-1 1h-10c-.551 0-1-.449-1-1 0-.549.449-1 1-1h10c.549 0 1 .451 1 1"/><path d="m36 61c0-.549-.451-1-1-1h-6c-.551 0-1 .451-1 1 0 .551.449 1 1 1h6c.549 0 1-.449 1-1"/><path transform="matrix(.7078-.7064.7064.7078-2.461 4.051)" d="m2.96 4.292h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-8.268 9.286)" d="m6.384 13.929h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078 2.785 15.794)" d="m19.776 3.822h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-2.167 33.988)" d="m39.29 18.905h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078 13.794 42.41)" d="m57.45 3.822h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-13.683 55.773)" d="m59.869 43.718h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-23.1 40.16)" d="m36.29 47.29h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-23.2 32.762)" d="m27.29 43.719h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-31.856 18.216)" d="m5.384 46.907h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078 6.788 42.41)" d="m53.952 12.292h1.414v1.416h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078 5.136 47.644)" d="m59.45 16.905h1.414v1.416h-1.414z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 0h64v64h-64z"/><path fill="#428bc1" d="m0 52h64v12h-64z"/><path d="m64 28.9v-2c-4.8-.5-9.1-3-12-6.6v-10.3h-6v10.3c-3.3 4.1-8.3 6.7-14 6.7-5.7 0-10.7-2.6-14-6.7v-10.3h-6v10.3c-2.9 3.6-7.2 6.1-12 6.6v2c1.7-.2 3.4-.6 5-1.2v6.3h-5v6h9l1.2 6h1.8v6h6v-6h1.8l1.2-6h22l1.2 6h1.8v6h6v-6h1.8l1.2-6h9v-6h-5v-6.3c1.6.6 3.3 1 5 1.2m-18-5.7v4.8c0 3-2.2 5.4-5 5.9v-7.1c1.8-.9 3.5-2.1 5-3.6m-23 3.6v7.1c-2.8-.5-5-2.9-5-5.9v-4.8c1.5 1.5 3.1 2.7 5 3.6m-11-3.5v4.7c0 3-2.2 5.4-5 5.9v-7.1c1.9-.9 3.5-2.1 5-3.5m13 10.7v-6.3c1.9.7 3.9 1.1 6 1.2v5h-6zm8 0v-5c2.1-.1 4.1-.5 6-1.2v6.2h-6m24-.1c-2.8-.5-5-2.9-5-5.9v-4.7c1.5 1.4 3.2 2.6 5 3.6v7" fill="#3e4347"/><circle cx="32" cy="12" r="8" fill="#fff"/><g fill="#d0d0d0"><circle cx="35" cy="9" r="2"/><circle cx="29" cy="15" r="2"/><circle cx="29" cy="9" r="1"/><circle cx="35" cy="15" r="1"/></g><g fill="#fff"><path d="m40 53c0 .6-.5 1-1 1h-14c-.6 0-1-.4-1-1 0-.5.4-1 1-1h14c.5 0 1 .5 1 1"/><path d="m38 57c0 .6-.5 1-1 1h-10c-.6 0-1-.4-1-1 0-.5.4-1 1-1h10c.5 0 1 .5 1 1"/><path d="m36 61c0-.5-.5-1-1-1h-6c-.6 0-1 .5-1 1 0 .6.4 1 1 1h6c.5 0 1-.4 1-1"/><path transform="matrix(.7078-.7064.7064.7078-2.4606 4.0513)" d="m3 4.3h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-8.2677 9.2859)" d="m6.4 13.9h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078 2.7844 15.7931)" d="m19.8 3.8h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-2.1674 33.9877)" d="m39.3 18.9h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078 13.7929 42.4078)" d="m57.5 3.8h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-13.6838 55.7724)" d="m59.9 43.7h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-23.0967 40.1627)" d="m36.3 47.3h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-23.2023 32.7612)" d="m27.3 43.7h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-31.8562 18.2149)" d="m5.4 46.9h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078 6.787 42.4103)" d="m54 12.3h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078 5.1352 47.6433)" d="m59.5 16.9h1.4v1.4h-1.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f30a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f30a.svg
index 39b3dbb..efdfafc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f30a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f30a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m58.919 2.589c-.371-.141-.748-.224-1.123-.263-.951-.215-2.199-.326-3.795-.326-15.322 0-27.53 8.78-33.377 22.541-7.616 17.926-7.183 33.19-18.624 33.19 0 2.356 1.919 4.266 4.289 4.266 2.37 0 4.292-1.91 4.292-4.266 0 2.355 1.922 4.266 4.292 4.266 2.369 0 4.291-1.91 4.291-4.266 0 2.355 1.922 4.266 4.291 4.266s4.291-1.91 4.291-4.266c0 2.355 1.922 4.266 4.291 4.266 2.37 0 4.291-1.91 4.291-4.266 0 2.355 1.922 4.266 4.29 4.266 2.37 0 4.292-1.91 4.292-4.266-.001 2.356 1.921 4.266 4.29 4.266 2.37 0 4.291-1.91 4.291-4.266 0 2.355 1.922 4.266 4.29 4.266 2.37 0 4.219-1.958 4.219-4.313 0 0-28.792-4.479-19.743-23.818 1.188-2.404 2.877-3.589 3.914-4.122.523.699 1.23 1.262 2.092 1.587 2.43.916 5.115-.383 5.998-2.902.459-1.309.338-2.687-.221-3.841 1.143-.509 2.09-1.484 2.549-2.793.381-1.084.363-2.217.029-3.23 1.199-.493 2.197-1.49 2.674-2.846.484-1.383.322-2.844-.32-4.03 1.23-.482 2.26-1.494 2.744-2.876.885-2.522-.367-5.307-2.797-6.223"/><path fill="#fff" d="m50.39 23.07c-.137.563.926 2.335.432 3.743-.672 1.913-3.967 2.427-2.123 3.122 1.846.697 3.885-.289 4.557-2.204.502-1.431.096-2.976-.912-3.954 1.379-.078 2.648-.99 3.15-2.421.502-1.432.096-2.978-.914-3.955 1.381-.077 2.648-.99 3.152-2.421.514-1.47.07-3.055-.996-4.03 1.422-.034 2.744-.953 3.26-2.422.67-1.913-.281-4.03-2.125-4.725-1.846-.697.361 1.893-.311 3.807-.514 1.466-2.568 2.109-2.67 2.645-.254.477.922 2.338.406 3.805-.494 1.408-2.406 2.059-2.648 2.58-.004.009-.01.017-.012.026-.004.009-.006.019-.008.028-.139.561.924 2.334.43 3.742s-2.406 2.057-2.648 2.579c-.004.01-.01.017-.012.026-.004.011-.004.02-.008.028"/><g fill="#428bc1"><path d="m54.946 4.452c-1.4-.124-2.84-.014-4.232.14-3.582.391-7.04 1.348-10.344 2.838-4.03 1.818-7.674 4.559-10.656 7.902-4.03 4.514-6.77 10.08-8.565 15.903-.559 1.812 2.183 2.582 2.735.782 1.838-5.963 4.74-11.524 9.03-15.881 1.752-1.779 3.365-3.049 5.48-4.355.92-.569 1.873-1.082 2.846-1.549.225-.107.449-.211.676-.313.371-.168-.266.114.107-.047.109-.048.223-.095.334-.141.469-.197.945-.379 1.424-.553 1.459-.528 2.957-.94 4.473-1.252.334-.068.668-.13 1-.188.146-.024.293-.048.439-.071.113-.018.711-.103.215-.035.563-.076 1.127-.137 1.691-.184 1.104-.092 2.238-.152 3.344-.055.771.067 1.418-.721 1.418-1.471 0-.852-.646-1.402-1.418-1.47"/><path d="m52.46 11.609c-1.844-.252-3.801-.004-5.615.32-4.291.767-8.275 2.815-11.613 5.688-4.156 3.575-7.01 8.479-9.02 13.617-.291.744.311 1.614.99 1.809.811.232 1.455-.284 1.744-1.026 1.227-3.14 2.842-6.178 4.92-8.797 1.689-2.13 3.563-3.866 5.705-5.27.939-.616 1.926-1.153 2.941-1.624.033-.015.418-.186.121-.057.113-.05.229-.097.342-.145.225-.093.451-.182.678-.268.469-.178.943-.337 1.422-.484.83-.253 1.674-.451 2.523-.607.186-.034.369-.064.555-.093.09-.015.18-.027.268-.041-.432.063-.119.018-.027.006.35-.044.701-.078 1.055-.106.99-.077 2.02-.116 3.01.02.77.105 1.418-.749 1.418-1.472-.001-.88-.651-1.364-1.419-1.47"/><path d="m49.983 17.579c-2.426-.065-4.988.597-7.213 1.541-5.256 2.231-8.986 6.598-10.891 12.11-.26.756.289 1.608.992 1.809.787.226 1.482-.273 1.744-1.026.898-2.604 2.27-4.927 4.162-6.829.838-.845 1.475-1.341 2.443-1.974.43-.281.877-.539 1.33-.78.236-.126.477-.244.719-.359.117-.057.236-.11.355-.164-.283.128.102-.04.133-.053.793-.33 1.611-.597 2.439-.814.359-.094.721-.175 1.084-.248.18-.035.361-.067.541-.099.117-.021.711-.105.203-.036.645-.088 1.305-.158 1.957-.141 1.832.048 1.829-2.893.002-2.942"/><path d="m47.714 24.16c-4.371-.045-8.453 3.043-10.301 7.02-.336.722-.197 1.584.508 2.01.627.381 1.605.194 1.941-.528.598-1.285 1.357-2.396 2.387-3.345.387-.359.764-.619 1.266-.928.209-.13.426-.246.645-.36.127-.065.254-.125.383-.185-.258.12.141-.059.158-.065.746-.304 1.527-.51 2.318-.634.189-.03-.346.039.07-.005.111-.013.225-.021.336-.028.096-.006.193-.012.289-.011 1.83.019 1.828-2.922 0-2.941"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.9 2.6c-.4-.1-.7-.2-1.1-.3-1-.2-2.2-.3-3.8-.3-15.3 0-27.5 8.8-33.4 22.5-7.6 18-7.2 33.2-18.6 33.2 0 2.4 1.9 4.3 4.3 4.3s4.3-1.9 4.3-4.3c0 2.4 1.9 4.3 4.3 4.3 2.4 0 4.3-1.9 4.3-4.3 0 2.4 1.9 4.3 4.3 4.3 2.4 0 4.3-1.9 4.3-4.3 0 2.4 1.9 4.3 4.3 4.3s4.3-1.9 4.3-4.3c0 2.4 1.9 4.3 4.3 4.3 2.4 0 4.3-1.9 4.3-4.3 0 2.4 1.9 4.3 4.3 4.3s4.3-1.9 4.3-4.3c0 2.4 1.9 4.3 4.3 4.3 2.4 0 4.2-2 4.2-4.3 0 0-28.8-4.5-19.7-23.8 1.2-2.4 2.9-3.6 3.9-4.1.5.7 1.2 1.3 2.1 1.6 2.4.9 5.1-.4 6-2.9.5-1.3.3-2.7-.2-3.8 1.1-.5 2.1-1.5 2.5-2.8.4-1.1.4-2.2 0-3.2 1.2-.5 2.2-1.5 2.7-2.8.5-1.4.3-2.8-.3-4 1.2-.5 2.3-1.5 2.7-2.9.8-2.7-.5-5.5-2.9-6.4" fill="#75d6ff"/><path d="m50.4 23.1c-.1.6.9 2.3.4 3.7-.7 1.9-4 2.4-2.1 3.1 1.8.7 3.9-.3 4.6-2.2.5-1.4.1-3-.9-4 1.4-.1 2.6-1 3.2-2.4.5-1.4.1-3-.9-4 1.4-.1 2.6-1 3.2-2.4.5-1.5.1-3.1-1-4 1.4 0 2.7-1 3.3-2.4.7-1.9-.3-4-2.1-4.7-1.8-.7.4 1.9-.3 3.8-.8 1.5-2.8 2.1-2.9 2.7-.3.5.9 2.3.4 3.8-.5 1.4-2.4 2.1-2.6 2.6-.1.6.9 2.3.4 3.7s-2.4 2.1-2.7 2.7c0-.1 0-.1 0 0" fill="#fff"/><g fill="#4fa1d9"><path d="m54.9 4.5c-1.4-.1-2.8 0-4.2.1-3.6.4-7 1.3-10.3 2.8-4 1.8-7.7 4.6-10.7 7.9-4 4.5-6.8 10.1-8.6 15.9-.6 1.8 2.2 2.6 2.7.8 1.8-6 4.7-11.5 9-15.9 1.8-1.8 3.4-3 5.5-4.4.9-.6 1.9-1.1 2.8-1.5.2-.1.4-.2.7-.3.4-.2-.3.1.1 0 .1 0 .2-.1.3-.1.5-.2.9-.4 1.4-.6 1.5-.5 3-.9 4.5-1.3.3-.1.7-.1 1-.2.1 0 .3 0 .4-.1.1 0 .7-.1.2 0 .6-.1 1.1-.1 1.7-.2 1.1-.1 2.2-.2 3.3-.1.8.1 1.4-.7 1.4-1.5.3-.7-.4-1.3-1.2-1.3"/><path d="m52.5 11.6c-1.8-.3-3.8 0-5.6.3-4.3.8-8.3 2.8-11.6 5.7-4.2 3.6-7 8.5-9 13.6-.3.7.3 1.6 1 1.8.8.2 1.5-.3 1.7-1 1.2-3.1 2.8-6.2 4.9-8.8 1.7-2.1 3.6-3.9 5.7-5.3.9-.6 1.9-1.2 2.9-1.6 0 0 .4-.2.1-.1.1 0 .2-.1.3-.1.2-.1.5-.2.7-.3.5-.2.9-.3 1.4-.5.8-.3 1.7-.5 2.5-.6.2 0 .4-.1.6-.1.1 0 .2 0 .3 0 .3 0 .7-.1 1.1-.1 1-.1 2-.1 3 0 .8.1 1.4-.7 1.4-1.5 0-.8-.7-1.3-1.4-1.4"/><path d="m50 17.6c-2.4-.1-5 .6-7.2 1.5-5.3 2.2-9 6.6-10.9 12.1-.3.8.3 1.6 1 1.8.8.2 1.5-.3 1.7-1 .9-2.6 2.3-4.9 4.2-6.8.8-.8 1.5-1.3 2.4-2 .4-.3.9-.5 1.3-.8.2-.1.5-.2.7-.4.1-.1.2-.1.4-.2-.3.1.1 0 .1-.1.8-.3 1.6-.6 2.4-.8.4-.1.7-.2 1.1-.2.2 0 .4-.1.5-.1.1 0 .7-.1.2 0 .6-.1 1.3-.2 2-.1 1.9.1 1.9-2.9.1-2.9"/><path d="m47.7 24.2c-4.4 0-8.5 3-10.3 7-.3.7-.2 1.6.5 2 .6.4 1.6.2 1.9-.5.6-1.3 1.4-2.4 2.4-3.3.4-.4.8-.6 1.3-.9.2-.1.4-.2.6-.4.1-.1.3-.1.4-.2-.3.1.1-.1.2-.1.7-.3 1.5-.5 2.3-.6.2 0-.3 0 .1 0 .1 0 .2 0 .3 0 .1 0 .2 0 .3 0 1.8-.1 1.8-3 0-3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f30b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f30b.svg
index 0b412a5..51ce7a8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f30b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f30b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m40.513 31.891c-1.448-3.245-1.925-1.15-3.204-2.111-1.28-.96-3.688.961-5.309.384-1.621-.575-3.953.769-5.384-.095-1.436-.864-2.179.002-2.498.527-.432.718-1.384 2.974-1.454 3.133-8.02 18.16-20.664 28.27-20.664 28.27h60c0 0-12.973-11.01-21.487-30.11"/><g fill="#89664c"><path d="m24.907 34.384c-.756 1.634-.982 2.922-.763 4.73.22 1.815-.077 3.521-1.364 4.85-.752.777-1.663 1.375-2.497 2.053-1.399 1.135-2.531 2.417-3.282 4.093-.547-3.182 2.181-5.262 4.076-7.217 1.342-1.386 1.198-2.913 1.447-4.722.221-1.627 1.06-2.903 2.383-3.787"/><path d="m16.189 52.698c.152 2.076-1.659 4.204-3.275 5.17-1.687 1.045-3.617 1.734-5.237 2.884.248-2.02 2.567-3.502 4.088-4.464 1.613-.893 3.124-2.284 4.424-3.59"/><path d="m28.15 35.823c-.21 1.317-.34 2.607-.103 3.934.229 1.291.739 2.456 1.152 3.687.911 2.711-.126 6.138-1.963 8.2.264-2.642.811-5.424-.101-7.992-.934-2.637-1.075-5.706 1.015-7.829"/><path d="m24.1 46.08c1.155 2.47-.375 5.574-2.167 7.246-.93.868-1.751 1.814-1.806 3.182-.099 1.251.347 2.544.829 3.669-2.61-1.669-3.254-5.284-1.083-7.603 1.838-1.964 3.549-3.753 4.227-6.494"/><path d="m31.492 34.384c-.984 2.931.042 5.294 1.971 7.458 1.3 1.481 3.465 5.095 1.071 6.638.91-2.4-1.821-4.5-3.188-6.03-1.959-2.202-2.587-6.15.146-8.06"/><path d="m32.2 48.48c-.759 2.403-.094 4.361 1.152 6.408.764 1.32 1.836 3.987.469 5.29.032-1.76-1.545-3.417-2.473-4.771-1.426-2.068-1.715-5.573.852-6.927"/><path d="m25.817 51.644c-.59 1.869.659 3.455 1.666 4.869.512.71 2.026 3.727.417 4.239.375-1.089-1.761-2.82-2.308-3.492-1.165-1.438-2.224-4.777.225-5.616"/><path d="m35.04 34.769c-.333 2.02.977 3.962 2.39 5.204.559.512 1.194.947 1.688 1.533 2.73 2.975.63 7.956-2.053 10.138 1.065-3.01 2.54-6.981-.077-9.547.01.01.019.019.029.026-1.749-1.619-4-5.04-1.977-7.354"/><path d="m35.04 52.698c3.348.201 6.991 4.954 4.38 8.05-.463-1.517-.921-3.02-1.814-4.337-.844-1.243-1.769-2.443-2.566-3.717"/><path d="m38.38 34.769c3.069 2.11 5.104 6.069 6.173 9.603.402 1.332.672 2.737.844 4.1.163 1.643.564 3.911 2.207 4.659-1.859.273-3.239-1.953-3.769-3.475-.433-1.304-.663-2.679-1.017-4.01-.994-3.776-2.507-7.512-4.438-10.88"/><path d="m41.43 50.78c.886 2.294 2.093 4.313 4.096 5.73.531.377 1.061.754 1.523 1.223.343.347 1.825 2.224.563 2.444.615-.948-2.648-1.731-3.02-2.111-2.446-1.164-4.573-4.505-3.165-7.286"/><path d="m48.42 51.644c2 .46 3.999 2.321 4.248 4.473-.001-.011-.001-.021-.003-.032.272 2.107 2.212 3.172 3.865 4.094-2.149.525-4.962-.597-5.669-2.887-.211-.687-.194-1.409-.435-2.089-.451-1.293-1.277-2.423-2.01-3.559"/></g><g fill="#ed4c5c"><path d="m40.639 29.506c-.007-.009-.011-.015-.017-.024 1.392-1.363 3.461-1.892 2.749-3.911-1.247-3.535-7.2 5.563-4.413.289 2.791-5.279-.128-5.898-.932-4.746-.806 1.151-2.844 12.512-3.335 5.752-.492-6.76 7.18-27.471 3.03-24.594-4.15 2.876-3.604 21.716-6.04 24.88-2.431 3.165 2.478-20.716.616-23.15-1.39-1.82-4.873-1.44-3.36 13.948 1.512 15.39-1 7.192-2.345 3.309-1.339-3.882-2.729-2.452-1.315 4.604 1.13 5.65-1.5-2.302-4.57-8.197-3.069-5.898-10-2.589-4.14 1.726 5.435 3.998 6.206 7.502 7.257 10.392-1.062.973-1.981 3.179-2.992 6.525-.708 2.35 1.774-1.487 2.84-2.582 1.064-1.095 1.723 3.251 3.344.66 1.622-2.593 2.938-1.196 5.675 2.063 2.736 3.263 4.408 2.398 5.574.816s1.672-1.918 4.206-.24c2.532 1.677.896-.718.896-.718-.98-1.245-2.062-5.755-2.733-6.8"/><path d="m40.05 18.982c1.689-1.854 2.499-7.609 1.235-5.689-1.266 1.916-2.296 6.853-1.235 5.689"/><path d="m47.793 18.725c-1.555 1.599-5.369 6.083-3.3 5.434 1.63-.513 4.855-7.03 3.3-5.434"/><path d="m46.885 9.84c-1.758.958-4.811 8.625-4.984 11.508-.187 3.072 6.74-12.466 4.984-11.508"/><path d="m24.11 16.591c3.177 2.276-3.311-9.947-3.783-7.518-.474 2.428 2.38 6.512 3.783 7.518"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.5 31.9c-1.4-3.2-1.9-1.1-3.2-2.1-1.3-1-3.7 1-5.3.4-1.6-.6-4 .8-5.4-.1-1.4-.9-2.2 0-2.5.5-.4.7-1.4 3-1.5 3.1-8 18.2-20.6 28.3-20.6 28.3h60c0 0-13-11-21.5-30.1" fill="#594640"/><g fill="#89664c"><path d="m24.9 34.4c-.8 1.6-1 2.9-.8 4.7.2 1.8-.1 3.5-1.4 4.8-.8.8-1.7 1.4-2.5 2.1-1.4 1.1-2.5 2.4-3.3 4.1-.5-3.2 2.2-5.3 4.1-7.2 1.3-1.4 1.2-2.9 1.4-4.7.3-1.7 1.2-2.9 2.5-3.8"/><path d="m16.2 52.7c.2 2.1-1.7 4.2-3.3 5.2-1.7 1-3.6 1.7-5.2 2.9.2-2 2.6-3.5 4.1-4.5 1.6-.9 3.1-2.3 4.4-3.6"/><path d="m28.1 35.8c-.2 1.3-.3 2.6-.1 3.9.2 1.3.7 2.5 1.2 3.7.9 2.7-.1 6.1-2 8.2.3-2.6.8-5.4-.1-8-.9-2.6-1-5.7 1-7.8"/><path d="m24.1 46.1c1.2 2.5-.4 5.6-2.2 7.2-.9.9-1.8 1.8-1.8 3.2-.1 1.3.3 2.5.8 3.7-2.6-1.7-3.3-5.3-1.1-7.6 1.9-2 3.6-3.8 4.3-6.5"/><path d="m31.5 34.4c-1 2.9 0 5.3 2 7.5 1.3 1.5 3.5 5.1 1.1 6.6.9-2.4-1.8-4.5-3.2-6-2-2.3-2.6-6.2.1-8.1"/><path d="m32.2 48.5c-.8 2.4-.1 4.4 1.2 6.4.8 1.3 1.8 4 .5 5.3 0-1.8-1.5-3.4-2.5-4.8-1.5-2.1-1.8-5.6.8-6.9"/><path d="m25.8 51.6c-.6 1.9.7 3.5 1.7 4.9.5.7 2 3.7.4 4.2.4-1.1-1.8-2.8-2.3-3.5-1.2-1.4-2.2-4.7.2-5.6"/><path d="m35 34.8c-.3 2 1 4 2.4 5.2.6.5 1.2.9 1.7 1.5 2.7 3 .6 8-2.1 10.1 1.1-3 2.5-7-.1-9.5-1.6-1.6-3.9-5-1.9-7.3"/><path d="m35 52.7c3.3.2 7 5 4.4 8.1-.5-1.5-.9-3-1.8-4.3-.8-1.3-1.8-2.5-2.6-3.8"/><path d="m38.4 34.8c3.1 2.1 5.1 6.1 6.2 9.6.4 1.3.7 2.7.8 4.1.2 1.6.6 3.9 2.2 4.7-1.9.3-3.2-2-3.8-3.5-.4-1.3-.7-2.7-1-4-1-3.8-2.5-7.6-4.4-10.9"/><path d="m41.4 50.8c.9 2.3 2.1 4.3 4.1 5.7.5.4 1.1.8 1.5 1.2.3.3 1.8 2.2.6 2.4.6-.9-2.6-1.7-3-2.1-2.5-1.1-4.6-4.4-3.2-7.2"/><path d="m48.4 51.6c2 .5 4 2.3 4.2 4.5.3 2.1 2.2 3.2 3.9 4.1-2.1.5-5-.6-5.7-2.9-.2-.7-.2-1.4-.4-2.1-.4-1.3-1.3-2.4-2-3.6"/></g><g fill="#ed4c5c"><path d="m40.6 29.5c0 0 0 0 0 0 1.4-1.4 3.4-1.9 2.7-3.9-1.2-3.5-7.2 5.6-4.4.3 2.8-5.3-.1-5.9-.9-4.7-.8 1.2-2.8 12.5-3.3 5.8-.5-6.8 7.2-27.5 3-24.6-4.2 2.9-3.6 21.7-6 24.9-2.4 3 2.5-20.9.6-23.3-1.4-1.8-4.9-1.4-3.4 13.9 1.5 15.4-1 7.2-2.3 3.3-1.3-3.9-2.7-2.5-1.3 4.6 1.1 5.6-1.5-2.3-4.6-8.2-3.1-5.9-10-2.6-4.1 1.7 5.4 4 6.2 7.5 7.3 10.4-1.1 1-2 3.2-3 6.5-.7 2.3 1.8-1.5 2.8-2.6 1.1-1.1 1.7 3.3 3.3.7 1.6-2.6 2.9-1.2 5.7 2.1 2.7 3.3 4.4 2.4 5.6.8s1.7-1.9 4.2-.2c2.5 1.7.9-.7.9-.7-1-1.2-2.1-5.7-2.8-6.8"/><path d="M40,19c1.7-1.9,2.5-7.6,1.2-5.7C40,15.2,39,20.1,40,19z"/><path d="m47.8 18.7c-1.6 1.6-5.4 6.1-3.3 5.4 1.6-.5 4.8-7 3.3-5.4"/><path d="m46.9 9.8c-1.8 1-4.8 8.6-5 11.5-.2 3.1 6.7-12.4 5-11.5"/><path d="m24.1 16.6c3.2 2.3-3.3-9.9-3.8-7.5-.4 2.4 2.4 6.5 3.8 7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f30c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f30c.svg
index 510c9e1..de7a021 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f30c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f30c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3f3261" d="m0 0h64v46h-64z"/><path fill="#42ade2" d="m0 46h64v10.02h-64z"/><path fill="#296d8f" d="m0 34h64v1.016h-64z"/><path fill="#3283ab" d="m0 37h64v2h-64z"/><path fill="#3b9ac9" d="m0 40.982h64v3.02h-64z"/><path fill="#3e4347" d="m0 55c0 0 5.775-3.779 8-4 2.836-.281 8.164 3.281 11 3 2.225-.221 5.789-3.668 8-4 1.504-.227 4.514 1.319 6 1 1.763-.378 4.197-3.974 6-4 2.358-.035 5.643 4.939 8 5 2.573.066 6.472-4.516 9-5 1.98-.379 8 1.036 8 1.036v15.964h-64v-9"/><g fill="#fff"><path transform="matrix(.7071-.7071.7071.7071-14.13 12.893)" d="m7.439 22.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-9.127 14.965)" d="m12.439 17.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-9.491 20.09)" d="m18.439 20.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-3.256 19.16)" d="m20.439 12.45h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-5.613 23.45)" d="m24.439 17.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-.199 24.521)" d="m28.439 11.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-5.27 28.28)" d="m30.439 19.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071 1.852 29.471)" d="m35.439 11.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071 5.73 32.835)" d="m41.44 8.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071 2.488 35.01)" d="m42.44 13.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071 4.245 39.25)" d="m48.44 13.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071 9.488 37.906)" d="m49.44 6.439h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071 14.659 42.39)" d="m57.44 2.439h2.121v2.121h-2.121z"/></g><g fill="#d9d9ff"><path transform="matrix(.7071-.7071.7071.7071-1.391 31.642)" d="m36.793 16.793h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 5.644 36.25)" d="m45.877 10.606h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 12.46 45.58)" d="m60.54 7.04h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-11.08 26.75)" d="m26.04 26.04h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-15.695 9.608)" d="m3.043 23.04h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-9.496 8.08)" d="m4.293 14.793h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 1.719 15.65)" d="m19.04 5.04h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-.601 41.05)" d="m48.543 20.543h1.414v1.414h-1.414z"/></g><g fill="#efe8ff"><path transform="matrix(.7071-.7071.7071.7071 9.127 34.534)" d="m45.543 5.543h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 10.669 41.39)" d="m54.59 7.107h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 7.826 43.39)" d="m55.59 11.543h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 5.4 29.04)" d="m37.04 7.293h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-1.588 27.17)" d="m31.29 14.793h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-6.606 18.269)" d="m18.04 16.401h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-14.949 18.411)" d="m14.04 26.543h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-10.315 11.314)" d="m7.793 17.401h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-18.731 11.279)" d="m3.543 27.543h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-2.503 7.457)" d="m7.04 6.04h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-7.03 41.02)" d="m45.29 28.29h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 1.308 48.75)" d="m58.793 22.09h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 7.458 23.01)" d="m30.793 1.793h1.414v1.414h-1.414z"/></g><g fill="#ffb8f0"><path transform="matrix(.7071-.7071.7071.7071 4.381 43.577)" d="m54.44 16.15h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-12.393 21.08)" d="m18.896 25.15h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-1.867 12.993)" d="m14.396 8.396h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-.609 2.53)" d="m2.396 1.646h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 13.45 36.472)" d="m50.4 1.646h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-8.482 30.02)" d="m31.646 24.896h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-12.544 8.717)" d="m3.896 19.15h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-.664 36.898)" d="m43.854 18.896h.707v.707h-.707z"/></g><g fill="#d9adff"><path transform="matrix(.7071-.7071.7071.7071-3.427 47.23)" d="m54.939 27.396h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 5.769 48.14)" d="m60.65 16.755h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-9.755 33.45)" d="m35.15 28.15h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 2.501 26.717)" d="m33.15 9.986h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-2.431 22.13)" d="m25.15 13.646h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-8.07 25.505)" d="m26.396 22.15h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-11.986 16.563)" d="m13.646 22.396h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-7.01 12.07)" d="m10.708 14.15h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-6.152 4.827)" d="m2.396 9.486h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 2.979 11.192)" d="m14.646 1.646h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-18.402 15.907)" d="m9.646 29.812h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 7.599 40.34)" d="m52.15 10.646h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 12.141 39.81)" d="m53.771 4.896h.707v.707h-.707z"/></g><g fill="#906eed"><path transform="matrix(.7071-.7071.7071.7071-5.184 35.08)" d="m39.4 23.442h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-1.743 52.29)" d="m61.896 27.896h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-4.055 25.876)" d="m28.854 17.479h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-4.079 15.15)" d="m15.896 12.146h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 3.312 20.996)" d="m26.646 6.146h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 11.09 29.784)" d="m41.15 1.146h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-14.55 24.874)" d="m22.396 29.646h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-18.18 8.601)" d="m.937 25.896h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 1.937 45.18)" d="m55.15 19.896h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 9.619 45.722)" d="m59.65 10.896h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 16.347 44.799)" d="m61.896 2.313h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 1.625 32.26)" d="m39.4 13.813h.707v.707h-.707z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3f3261" d="m0 0h64v46h-64z"/><path fill="#42ade2" d="m0 46h64v10h-64z"/><path fill="#296d8f" d="m0 34h64v1h-64z"/><path fill="#3283ab" d="m0 37h64v2h-64z"/><path fill="#3b9ac9" d="m0 41h64v3h-64z"/><path d="m0 55c0 0 5.8-3.8 8-4 2.8-.3 8.2 3.3 11 3 2.2-.2 5.8-3.7 8-4 1.5-.2 4.5 1.3 6 1 1.8-.4 4.2-4 6-4 2.4 0 5.6 4.9 8 5 2.6.1 6.5-4.5 9-5 2-.4 8 1 8 1v16h-64v-9" fill="#3e4347"/><g fill="#fff"><path transform="matrix(.7071-.7071.7071.7071-14.1276 12.8927)" d="m7.4 22.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-9.1277 14.9638)" d="m12.4 17.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-9.4917 20.0851)" d="m18.4 20.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-3.2567 19.1596)" d="m20.4 12.5h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-5.613 23.449)" d="m24.4 17.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-.1989 24.5201)" d="m28.4 11.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-5.2699 28.2774)" d="m30.4 19.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071 1.8513 29.4699)" d="m35.4 11.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071 5.73 32.8338)" d="m41.4 8.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071 2.4873 35.0054)" d="m42.4 13.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071 4.2447 39.248)" d="m48.4 13.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071 9.4873 37.9049)" d="m49.4 6.4h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071 14.6588 42.3902)" d="m57.4 2.4h2.1v2.1h-2.1z"/></g><g fill="#c79cff"><path transform="matrix(.7071-.7071.7071.7071-1.3911 31.6419)" d="m36.8 16.8h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 5.6442 36.253)" d="m45.9 10.6h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 12.4592 45.58)" d="m60.5 7h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-11.0803 26.7498)" d="m26 26h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-15.6954 9.6077)" d="m3 23h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-9.4957 8.0753)" d="m4.3 14.8h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 1.7187 15.6494)" d="m19 5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-.6013 41.0487)" d="m48.5 20.5h1.4v1.4h-1.4z"/></g><g fill="#ffabed"><path transform="matrix(.7071-.7071.7071.7071 9.1266 34.5341)" d="m45.5 5.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 10.6691 41.3863)" d="m54.6 7.1h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 7.8254 43.3929)" d="m55.6 11.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 5.3997 29.0363)" d="m37 7.3h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-1.5878 27.1671)" d="m31.3 14.8h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-6.6057 18.2687)" d="m18 16.4h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-14.9485 18.4109)" d="m14 26.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-10.3148 11.3138)" d="m7.8 17.4h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-18.7309 11.2792)" d="m3.5 27.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-2.5031 7.4571)" d="m7 6h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-7.0332 41.0205)" d="m45.3 28.3h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 1.3077 48.7494)" d="m58.8 22.1h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 7.4582 23.006)" d="m30.8 1.8h1.4v1.4h-1.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f30d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f30d.svg
index fbe19e0..efe3dee 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f30d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f30d.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#008db3" d="M58.404,22.718l1.646,19.946C55.751,53.968,44.813,62,32,62C15.432,62,2,48.568,2,32S15.432,2,32,2
- c6.007,0,11.602,1.766,16.293,4.806L58.404,22.718z"/><g fill="#ffc942"><path d="m48.29 6.802c.346.957.617 2.14-.439 1.587-1.68-.881-3.922-1.939-3.201-1.25s1 1.532-.139 1.392c-1.143-.142-3.143-.382-4.02.898-.881 1.281-2.08 1.041-2.4 1.521-.32.479-.801 2.561-1.682 1.921-.879-.641-2.721-2.902-1.199-2.252 1.52.65 3.201-.069 1.84-1.67-1.361-1.602-2.801-1.041-3.361-1.921-.561-.881-2.641-2-4.082.24-1.441 2.24-2.744 5.124-3.533 5.724-.789.599-2.469 1.72-2.23 2.6.24.881.32 3.042 1.201 2.401s1.441-.88 1.762-.32c.32.561.24 1.841.881 1.761 0 0 1.439-1.04 1.52-1.921.08-.88-1.041-1.44-.16-2.721.881-1.281 2.563-3.769 2.162-2.524-.4 1.243-1.281 3-.641 3.805s4.082-.24 2.48.561c-1.6.8-2.4 1.36-2.721 2.4-.32 1.041-.561 1.842-1.361 1.441s-1.76-.24-2.24-.24-.641-1.841-1.281-1.44c-.641.399.24 1.73-.48 1.785-.721.056-.801.855-1.6 1.496-.801.641-1.922 1.761-2.643 1.921s1.121.961.801 1.841c-.32.881-1.92.801-2.48.881s-.08 1.28-.4 2c-.32.72.32 1.44 1.279 1.44.961 0 2-.24 2.082-1.121.08-.88 1.041-2.4 1.682-2.081.639.32 2.057-.56 2.389-.079.332.479 2.172 2.16 2.01 2.4s-1.119.721-.719.881c0 0 .254.504.521.397s.721-1.414.961-1.574.32-.854-.135-1.174c-.453-.32-2.16-1.521-1.787-2.081s1.334.693 1.707 1.12c.375.428.961.881.988 1.814s.561.881.641 1.334c.08.454.266.644.801.575.533-.068.746-1.242.453-1.535-.293-.294-.293-.935.266-.935.561 0 1.254-.479 1.281-.773.027-.293.561-2.107.961-2.107s.666.72.826 1.094c.16.373 1.174-.294 1.014-.667-.16-.374.08-.507.375-.507.293 0 .053.773.346 1.014.295.24 1.654 1.121 1.201 1.574s-1.201.187-1.707-.214c-.508-.399-1.814-.16-2.162.24-.346.4-.641.587-1.227.614-.588.026-.508 1.094 0 1.547.506.454 1.201.054 1.707.374.508.32 1.307-.427 1.441.08.133.507-.08 2.027-.588 2.081-.506.053-2.084.427-3.244-.107-1.158-.533-2.277-.746-2.385-.187-.107.561-.133.968-.934.471s-1.494-.791-2-.791c-.506 0-.533-.854-.426-1.601.105-.747-1.229-.48-2-.293-.773.187-2.4.747-3.361.747s-1.441.213-1.602.64-1.094.427-1.121 1.228c-.025.801.135 1.033-.719 1.37-.854.338-1.121 1.885-1.549 2.312-.426.428.428 1.441 0 1.975-.426.534-.832 1.921-.123 2.241.711.32 1.404 1.654 1.725 2.188.32.534 1.387.961 2.455.801 1.066-.16 3.148-.801 4.162-.32s2.24.374 1.654 1.388c-.588 1.014.266 2.295 1.014 3.042.746.747.48 2.454.105 3.041-.373.587-.266 1.601.107 2.135.373.533.641 1.654.641 2.135 0 .479.801 1.387.906 2.348.107.96-.586 2.081.32 2.081.908 0 3.203.106 3.363-.32s2.027-1.975 2.508-2.722 1.547-1.921 1.227-2.614c-.32-.694.053-1.281 1.068-1.654 1.014-.374.959-3.202.479-3.949-.479-.747.428-2.401 1.549-2.935 1.119-.533 3.734-5.069 2.881-4.695-.854.373-2.615.693-3.201.319-.588-.373-4.057-6.438-3.576-6.794s3.307 5.457 3.789 6.207c.482.751 5.23-2.134 5.764-2.828.533-.693-.32-1.44-.641-1.44s-1.387-.747-1.654-.32-2.348-2.882-1.602-2.562c.748.32 2.242 1.334 3.576 2.081s2.988-.533 3.949.961c.959 1.494 1.6.48 1.547 1.228s1.227 3.575 1.654 4.482c.426.906 1.334-.374 1.441-1.441.105-1.067 2.24-2.774 2.986-3.361.748-.587 2.135.267 2.35 1.494.213 1.227 1.227-.214 1.227.747 0 .96-.174 2.334.5 3.488 1.259-3.317 1.948-6.912 1.948-10.667 0-10.564-5.461-19.854-13.713-25.2"/><path d="m16.393 10.63c-.561.155-1.199.88-2 .48-.801-.4-2.48.159-1.441 1.12 1.041.961.631 1.601 1.557 1.681s1.645-1.28 2.285-1.2.261-2.264-.401-2.081"/><path d="m40.715 49.74c-.68.075-.535 1.494-1.281 1.654-.748.16-.111.8-.455 1.334-.346.533-.51 1.654 0 2.348.508.693.723.747 1.256-.373.533-1.121 1.919-5.123.48-4.963"/><path d="m20.65 17.27c-.287-.018-.588.187-.908.24-.318.054-.506.453-.533.907-.025.453.801.641.48.934-.32.294-1.895.587-1.654 1.067s.533.934.213 1.44c-.318.507.32.561.881.374s.961-.881.908-1.334c-.055-.454.854-.561.613-.24s-.773 1.398-.508 1.673c.268.274-.826.781-.426.969.4.187 1.451-.801 2.107-.641s.826-.16.906-.721c.08-.56-.826-1.334-1.146-1.974-.319-.64-.052-2.641-.933-2.694"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M58.4,22.7L60,42.7C55.8,54,44.8,62,32,62C15.4,62,2,48.6,2,32S15.4,2,32,2c6,0,11.6,1.8,16.3,4.8L58.4,22.7z" fill="#008db3"/><g fill="#ffc942"><path d="m48.3 6.8c.3 1 .6 2.1-.4 1.6-1.7-.9-3.9-1.9-3.2-1.2s1 1.5-.1 1.4c-1.1-.1-3.1-.4-4 .9-.9 1.3-2.1 1-2.4 1.5-.3.5-.8 2.6-1.7 1.9-.9-.6-2.7-2.9-1.2-2.3 1.5.6 3.2-.1 1.8-1.7-1.4-1.6-2.8-1-3.4-1.9-.6-.9-2.6-2-4.1.2-1.4 2.2-2.7 5.1-3.5 5.7-.8.6-2.5 1.7-2.2 2.6.2.9.3 3 1.2 2.4s1.4-.9 1.8-.3c.3.6.2 1.8.9 1.8 0 0 1.4-1 1.5-1.9.1-.9-1-1.4-.2-2.7s2.6-3.8 2.2-2.5c-.4 1.2-1.3 3-.6 3.8.6.8 4.1-.2 2.5.6-1.6.8-2.4 1.4-2.7 2.4-.3 1-.6 1.8-1.4 1.4s-1.8-.2-2.2-.2-.6-1.8-1.3-1.4c-.6.4.2 1.7-.5 1.8-.7.1-.8.9-1.6 1.5-.8.6-1.9 1.8-2.6 1.9s1.1 1 .8 1.8c-.3.9-1.9.8-2.5.9s-.1 1.3-.4 2c-.3.7.3 1.4 1.3 1.4 1 0 2-.2 2.1-1.1.1-.9 1-2.4 1.7-2.1.6.3 2.1-.6 2.4-.1.3.5 2.2 2.2 2 2.4s-1.3.7-.9.9c0 0 .3.5.5.4s.7-1.4 1-1.6.3-.9-.1-1.2c-.5-.3-2.2-1.5-1.8-2.1s1.3.7 1.7 1.1c.4.4 1 .9 1 1.8s.6.9.6 1.3c.1.5.3.6.8.6.5-.1.7-1.2.5-1.5-.3-.3-.3-.9.3-.9.6 0 1.3-.5 1.3-.8 0-.3.6-2.1 1-2.1s.7.7.8 1.1c.2.4 1.2-.3 1-.7-.2-.4.1-.5.4-.5.3 0 .1.8.3 1 .3.2 1.7 1.1 1.2 1.6s-1.2.2-1.7-.2c-.5-.4-1.8-.2-2.2.2-.3.4-.6.6-1.2.6-.6 0-.5 1.1 0 1.5.5.5 1.2.1 1.7.4.5.3 1.3-.4 1.4.1.1.5-.1 2-.6 2.1-.5.1-2.1.4-3.2-.1-1.2-.5-2.3-.7-2.4-.2-.1.6-.1 1-.9.5s-1.5-.8-2-.8c-.5 0-.5-.9-.4-1.6.1-.7-1.2-.5-2-.3s-2.4.7-3.4.7-1.4.2-1.6.6-1.1.4-1.1 1.2c0 .8.1 1-.7 1.4-.9.3-1.1 1.9-1.5 2.3-.4.4.4 1.4 0 2-.4.5-.8 1.9-.1 2.2.7.3 1.4 1.7 1.7 2.2.3.5 1.4 1 2.5.8 1.1-.2 3.1-.8 4.2-.3s2.2.4 1.7 1.4c-.6 1 .3 2.3 1 3 .7.7.5 2.5.1 3-.4.6-.3 1.6.1 2.1.4.5.6 1.7.6 2.1 0 .5.8 1.4.9 2.3.1 1-.6 2.1.3 2.1.9 0 3.2.1 3.4-.3s2-2 2.5-2.7 1.5-1.9 1.2-2.6c-.6-.5-.2-1 .8-1.4 1-.4 1-3.2.5-3.9-.5-.7.4-2.4 1.5-2.9 1.1-.5 3.7-5.1 2.9-4.7-.9.4-2.6.7-3.2.3-.6-.4-4.1-6.4-3.6-6.8s3.3 5.5 3.8 6.2c.5.8 5.2-2.1 5.8-2.8.5-.7-.3-1.4-.6-1.4s-1.4-.7-1.7-.3-2.3-2.9-1.6-2.6c.7.3 2.2 1.3 3.6 2.1s3-.5 3.9 1c1 1.5 1.6.5 1.5 1.2s1.2 3.6 1.7 4.5c.4.9 1.3-.4 1.4-1.4.1-1.1 2.2-2.8 3-3.4.7-.6 2.1.3 2.3 1.5.2 1.2 1.2-.2 1.2.7 0 1-.2 2.3.5 3.5 1.4-3.5 2.1-7 2.1-10.8 0-10.6-5.5-19.9-13.7-25.2"/><path d="m16.4 10.6c-.6.2-1.2.9-2 .5-.8-.4-2.5.2-1.4 1.1 1 1 .6 1.6 1.6 1.7s1.6-1.3 2.3-1.2.2-2.3-.5-2.1"/><path d="m40.7 49.7c-.7.1-.5 1.5-1.3 1.7-.7.2-.1.8-.5 1.3-.3.5-.5 1.7 0 2.3.5.7.7.7 1.3-.4.6-1 2-5 .5-4.9"/><path d="m20.6 17.3c-.3 0-.6.2-.9.2-.3.1-.5.5-.5.9 0 .5.8.6.5.9-.3.3-1.9.6-1.7 1.1s.5.9.2 1.4c-.3.5.3.6.9.4s1-.9.9-1.3c-.1-.5.9-.6.6-.2s-.8 1.4-.5 1.7c.3.3-.8.8-.4 1 .4.2 1.5-.8 2.1-.6s.8-.2.9-.7c.1-.6-.8-1.3-1.1-2-.3-.8-.1-2.8-1-2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f30e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f30e.svg
index afd083f..96eb2c4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f30e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f30e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#008db3" d="m62 32c0 16.568-13.432 30-30 30s-30-13.432-30-30c0-14.398 10.144-26.428 23.674-29.332l.847.014.61-.288c.49-.08.984-.148 1.482-.204l1.05.032.731-.18c.142-.007.283-.014.426-.02l1.18.164.781-.176c.149.004.298.009.446.015l1.646.414 1.942-.054c.23.037.46.077.688.119l7.117 4.534 7.763 2.951c5.915 5.48 9.617 13.314 9.617 22.01"/><g fill="#ffc942"><path d="m33.455 11.469c1.955.624 1.877-.61 3.111.829.707.825 1.99 2.334 3.514 2.706.211.053.688-.403.688-.768 0-.363-1.051-1.131-1.656-1.295-.607-.164.242-1.29-.566-1.635s-1.697-1.635-2.02-2.645c-.324-1.01-1.738-.162-2.223-.363-.484-.203-1.09-.082-1.615.686s.266 2.325.767 2.485"/><path d="m44.04 39.729c-.021-.423-3.866-2.526-4.334-2.555-.769-.045-1.816-.431-2.519-.019-.304.173-.551.404-.741.694-.132.25-.882-.216-1.172-.061-.695.37-1.087-.831-.889-1.292.481-1.126-1.229-.413-1.406-.722.209.363-.058-3.207-.658-1.191-.454 1.526-2.23-.224-2.02-1.332.332-1.715 2.914-1.963 3.483-1.66.287.152 1.337 1.676 1.471 1.633.289-.091-.17-1.793-.227-2.02-.207-.829 1.387-1.108 1.5-1.976.096-.737.595-.481 1.092-.875.722-.571.158-1.636 1.082-2.182.314-.187 1.491-.323 1.646-.652.142-.301-.993-1.125-.017-1.363.876-.213 1.771.166 2.01-1.098.216-1.146-1.051-1.412-1.436-2.302-.116-.269-.262-1.807-.804-1.522-.67.352-1.087 1.203-1.634.192-.986-1.82-3.434-2.606-2.288.258.591 1.479-1.62 5.978-1.939 1.818-.111-1.444-4.434-1.88-2.982-3.479 1.475-1.624 3.484-1.68 4.03-4.173.758-3.458-1.636-.516-2.86-1.185-1.826-.997-.279-.459-1.223.836-.358.492-1.534-.312-2.054-.233-.484.072-1.729 1.145-2.062.477-.613-1.222-4.897-1.978-6.06-1.542-2.416.907-3.255-.319-5.671-.797-.838-.165-4.952-.283-4.684 1.141.105.559.499.999.673 1.529.257.784-.921.18-1.192.371-.072.051 1.388 1.079 1.507 1.201.395.402-1.515.894-1.703 1.567-.384 1.371 2.617.979 2.069 2.621-.168.501-1.887 1.317-2.051 2.997-.031.323 2.134-2.082 3.535-1.573 1.237.449 1.129-2.909 2.666-2.909 2.861 0 3.415 2.789 4.924 4.658.704.871 1.269 1.234 1.396 2.373.117 1.06-.111 2.35.273 3.357.368.964 1.115 1.031 1.609 1.809.585.918.917 1.808 1.713 2.602 1.156 1.157 3.122 2.931 4.935 2.659.359-.054 1.708.715 2.01.944.473.355.713.899 1.057 1.358.319.427 1.332.158 1.777.363.396.183-1.028 3.183-.498 3.973.583.868.583 1.841 1.457 2.527.827.648 1.076.699 1.178 1.823.164 1.829-.367 3.675-.809 5.377-.227.875.23 1.841-.109 2.676-.426 1.044-.714 1.94-.342 3.097.646 2.01 4.271 2.343 2.119.586-.915-.748.988-2.552.396-2.727-1.019-.425.188-.81.322-1.253.268-.881 4.313-4.529 4.612-5.133.251-.506.089-1.029.5-1.468.457-.486 1.085-.314 1.599-.658 1.068-.715.683-1.926 1.124-2.914.875-1.961 1.245-1.183.046-2.715-.442-.56-3.348-.354-3.432-1.935"/><path d="m22.416 10.08c.736.768 1.465-.404 1.586 0s.141 1.168 1.02 1.23-.818.627-.252.87c.564.242 1.777 1.01 2.221.687.445-.323.971-.565 1.172-.323.203.243 1.414-.04 1.07-.444-.342-.404-1.271-1.363-1.232-1.914.041-.551 1.092-1.965-.08-1.844-.764.08-.93.769-.93 1.172 0 .404-1.09-.605-1.293-.586-.201.021-.969-1.231-1.252-1.231s-2.182-.606-2.02 0-.746 1.616-.01 2.383"/><path d="m39.35 15.854c-.57-.326-1.656-1.818-2.141-1.334-.486.484.121 1.576.523 2.061.404.484 2.102 1.535 1.859 1.051s.889-1.132-.241-1.778"/><path d="m23.529 5.578c.297-.027.754.996 1.186 1.104.432.108.646.62.809.741s1.967-.578 2.396-.741c.5-.188-.539-1.158-.889-1.857-.35-.701-.08 1.158-.592.856s-.432-.722-1.051-.722-.189-1.267-.971-.997-1.183 1.643-.888 1.616"/><path d="m30.02 8c-.527.108-.431.458-.728.754-.295.297-.268.7 0 1.051.27.35.701.967 1.023.375.324-.591 0-1.075 0-1.453 0-.377-.035-.781-.295-.727"/><path d="m31.1 9.887c.135.324.377-.564.902-1.023.525-.457-.256-1.615-.74-1.023-.328.4-.297 1.723-.162 2.046"/><path d="m31 10.291c-.281.395-.502 1.45 0 1.535.502.086.807-.484.586-.889s-.469-.808-.586-.646"/><path d="m33.04 3.477c-.484.216.701.62-.107.836-.809.215-.836.889-1.535.322-.701-.564-1.463.189-.934.539s1.418 1.186 1.391 1.643c-.025.459.836.675 1.645.621.807-.055 1.777.188 1.803-.162.027-.351.123-.495.027-.755-.141-.382-.484-.754-1.318-.431-.836.323-1.377.162-1.496-.242-.121-.404 1.631-1.186 2.41-.646.781.539 1.51-.297.943-.674s-.189-.781.201-.835c.283-.038.539-.752.748-1.308-1.176-.189-2.373-.311-3.588-.359.005.761.291 1.238-.19 1.451"/><path d="m25.873 2.804c.541.229 1.422-.004 1.256-.41-.488.08-.973.171-1.453.274.045.053.109.099.197.136"/><path d="m26.21 3.234c-.76-.39-.717.566-.367.943s1.348-.438.367-.943"/><path d="m30.82 2.023c.568.104.938.546 1.031.871.102.34.918-.399.93-.885-.26-.005-.519-.009-.781-.009-.395 0-.787.008-1.18.023"/><path d="m29.23 3.143c-.342.469-.047 1.039.357.566.404-.475.08-1.659.404-1.147.322.512.916 1.325 1.32 1.362.402.038.053-.474 0-.904-.045-.359-1.01-.834-.922-.977-.598.031-1.191.08-1.779.146.425.275.867.618.62.954"/><path d="m31 7.193c.473.189 0-.969 0-.969-.496.297-.473.782 0 .969"/><path d="m29.29 6.439c.082.324.594.432.863 0 .27-.431-.014-2-.385-1.508-.385.512-.828.27-1.609 0s1.051 1.186 1.131 1.508"/><path d="m34.566 33.973c.666-.081 1.051.727 1.818.687s1.879 1.094 2.523.425c.525-.546-2.303-.99-3.23-1.475-.929-.486-1.779.443-1.111.363"/><path d="m37.859 3.611c.928.445.768.43.201.861s-.363 1.375.889 1.308 2.02-1.307 2.586.444c.564 1.75.162 3.667.889 4.203.727.537.121.904 0 1.407s.201.866.768.705.404.89 0 1.333c-.404.445-.885 1.293.365 2.828s1.412 1.334 1.816 1.858c.404.525.727-.194.848-.804s-.283-2.743 1.131-2.747c1.414-.005 1.818-1.136 1.98-1.499s1.293-.323 1.898-.849c.537-.465 1.137-.858 1.154-2.671-4.072-3.773-9.195-6.432-14.879-7.486-.11.422-.105.891.354 1.109"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0 16.6-13.4 30-30 30s-30-13.4-30-30c0-14.4 10.1-26.4 23.7-29.3h.8l.6-.3c.5-.1 1-.1 1.5-.2h1l.8-.2c.1 0 .3 0 .4 0l1.2.2.8-.2c.1 0 .3 0 .4 0l1.6.4 1.9-.1c.2 0 .5.1.7.1l7.2 4.6 7.8 3c5.9 5.5 9.6 13.3 9.6 22" fill="#008db3"/><g fill="#ffc942"><path d="m33.5 11.5c2 .6 1.9-.6 3.1.8.7.8 2 2.3 3.5 2.7.2.1.7-.4.7-.8 0-.4-1.1-1.1-1.7-1.3-.6-.2.2-1.3-.6-1.6s-1.7-1.6-2-2.6c-.3-1-1.7-.2-2.2-.4-.5-.2-1.1-.1-1.6.7s.3 2.3.8 2.5"/><path d="m44 39.7c0-.4-3.9-2.5-4.3-2.6-.8 0-1.8-.4-2.5 0-.3.2-.6.4-.7.7-.1.2-.9-.2-1.2-.1-.7.4-1.1-.8-.9-1.3.5-1.1-1.2-.4-1.4-.7.2.4-.1-3.2-.7-1.2-.5 1.5-2.2-.2-2-1.3.3-1.7 2.9-2 3.5-1.7.3.2 1.3 1.7 1.5 1.6.3-.1-.2-1.8-.2-2-.2-.8 1.4-1.1 1.5-2 .1-.7.6-.5 1.1-.9.7-.6.2-1.6 1.1-2.2.3-.2 1.5-.3 1.6-.7.1-.3-1-1.1 0-1.4.9-.2 1.8.2 2-1.1.2-1.1-1.1-1.4-1.4-2.3-.1-.3-.3-1.8-.8-1.5-.7.4-1.1 1.2-1.6.2-1-1.8-3.4-2.6-2.3.3.6 1.5-1.6 6-1.9 1.8-.1-1.4-4.4-1.9-3-3.5 1.5-1.6 3.5-1.7 4-4.2.8-3.5-1.6-.5-2.9-1.2-1.8-1-.3-.5-1.2.8-.4.5-1.5-.3-2.1-.2-.5.1-1.7 1.1-2.1.5-.6-1.2-4.9-2-6.1-1.5-2.4.9-3.3-.3-5.7-.8-.8-.2-5-.3-4.7 1.1.1.6.5 1 .7 1.5.3.8-.9.2-1.2.4-.1.1 1.4 1.1 1.5 1.2.4.4-1.5.9-1.7 1.6-.4 1.4 2.6 1 2.1 2.6-.2.5-1.9 1.3-2.1 3 0 .3 2.1-2.1 3.5-1.6 1.2.4 1.1-2.9 2.7-2.9 2.9 0 3.4 2.8 4.9 4.7.7.9 1.3 1.2 1.4 2.4.1 1.1-.1 2.4.3 3.4.4 1 1.1 1 1.6 1.8.6.9.9 1.8 1.7 2.6 1.2 1.2 3.1 2.9 4.9 2.7.4-.1 1.7.7 2 .9.5.4.7.9 1.1 1.4.3.4 1.3.2 1.8.4.4.2-1 3.2-.5 4 .6.9.6 1.8 1.5 2.5.8.6 1.1.7 1.2 1.8.2 1.8-.4 3.7-.8 5.4-.2.9.2 1.9-.1 2.7-.4 1-.7 1.9-.3 3.1.6 2 4.3 2.3 2.1.6-.9-.7 1-2.6.4-2.7-1-.4.2-.8.3-1.3.3-.9 4.3-4.5 4.6-5.1.3-.5.1-1 .5-1.5.5-.5 1.1-.3 1.6-.7 1.1-.7.7-1.9 1.1-2.9.9-2 1.2-1.2 0-2.7-.4-.5-3.3-.3-3.4-1.9"/><path d="m22.4 10.1c.7.8 1.5-.4 1.6 0s.1 1.2 1 1.2-.8.6-.3.9c.6.2 1.8 1 2.2.7.4-.3 1-.6 1.2-.3.2.2 1.4 0 1.1-.4-.3-.4-1.3-1.4-1.2-1.9 0-.6 1.1-2-.1-1.8-.7-.1-.9.6-.9 1 0 .4-1.1-.6-1.3-.6-.2 0-1-1.2-1.3-1.2s-2.2-.6-2 0-.7 1.6 0 2.4"/><path d="m39.4 15.9c-.6-.3-1.7-1.8-2.1-1.3-.5.5.1 1.6.5 2.1.4.5 2.1 1.5 1.9 1.1s.8-1.3-.3-1.9"/><path d="m23.5 5.6c.3 0 .8 1 1.2 1.1.4.1.6.6.8.7s2-.6 2.4-.7c.5-.2-.5-1.2-.9-1.9-.3-.7 0 1.2-.6.9s-.4-.7-1-.7-.2-1.3-1-1-1.2 1.6-.9 1.6"/><path d="m30 8c-.5.1-.4.5-.7.8-.3.3-.3.7 0 1.1.3.4.7 1 1 .4.3-.6 0-1.1 0-1.5 0-.4 0-.9-.3-.8"/><path d="m31.1 9.9c.1.3.4-.6.9-1 .5-.5-.3-1.6-.7-1-.4.3-.3 1.7-.2 2"/><path d="m31 10.3c-.3.4-.5 1.4 0 1.5.5.1.8-.5.6-.9s-.5-.8-.6-.6"/><path d="m33 3.5c-.5.2.7.6-.1.8-.8.2-.8.9-1.5.3-.7-.6-1.5.2-.9.5s1.4 1.2 1.4 1.6c0 .5.8.7 1.6.6.8-.1 1.8.2 1.8-.2 0-.4.1-.5 0-.8-.1-.4-.5-.8-1.3-.4-.8.3-1.4.2-1.5-.2-.1-.4 1.6-1.2 2.4-.6.8.5 1.5-.3.9-.7s-.2-.8.2-.8c.3 0 .5-.8.7-1.3-1.2-.2-2.4-.3-3.6-.4.1.9.4 1.4-.1 1.6"/><path d="m25.9 2.8c.5.2 1.4 0 1.3-.4-.5.1-1 .2-1.5.3 0 0 .1.1.2.1"/><path d="m26.2 3.2c-.8-.4-.7.6-.4.9s1.4-.4.4-.9"/><path d="m30.8 2c.6.1.9.5 1 .9.2.3 1-.4 1-.9-.3 0-.5 0-.8 0-.4 0-.8 0-1.2 0"/><path d="m29.2 3.1c-.3.5 0 1 .4.6.4-.5.1-1.7.4-1.1.3.5.9 1.3 1.3 1.4.4 0 .1-.5 0-.9 0-.4-1-.8-.9-1-.6 0-1.2.1-1.8.1.4.3.9.6.6.9"/><path d="m31 7.2c.5.2 0-1 0-1-.5.3-.5.8 0 1"/><path d="m29.3 6.4c.1.3.6.4.9 0 .3-.4 0-2-.4-1.5-.4.5-.8.3-1.6 0s1 1.2 1.1 1.5"/><path d="m34.6 34c.7-.1 1.1.7 1.8.7s1.9 1.1 2.5.4c.5-.5-2.3-1-3.2-1.5-1-.5-1.8.5-1.1.4"/><path d="m37.9 3.6c.9.4.8.4.2.9s-.4 1.4.9 1.3 2-1.3 2.6.4c.6 1.8.2 3.7.9 4.2.7.5.1.9 0 1.4s.2.9.8.7.4.9 0 1.3c-.4.4-.9 1.3.4 2.8s1.4 1.3 1.8 1.9c.4.5.7-.2.8-.8s-.4-2.7 1.1-2.7c1.4 0 1.8-1.1 2-1.5s1.3-.3 1.9-.8c.5-.5 1.1-.9 1.2-2.7-4.1-3.8-9.2-6.4-14.9-7.5-.2.4-.2.9.3 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f30f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f30f.svg
index 77526c4..3766698 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f30f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f30f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#008db3" d="m62 32c0 16.568-13.432 30-30 30s-30-13.432-30-30c0-4.381.939-8.542 2.627-12.294l32.02-17.348c2.271.354 4.456.961 6.527 1.793l.659 1.52 1.13-.732c10.08 4.836 17.03 15.14 17.03 27.06"/><g fill="#ffc942"><path d="m7.504 20.89c.939 1.794 2.051-.599 1.965 1.196-.084 1.795 1.197 5.811 1.967 5.299.77-.514.768-3.452 2.137-3.82 1.367-.367 3.332-2.675 3.93-1.649.6 1.025.428 2.905.941 2.479.512-.428 1.195 0 1.109 1.281-.084 1.282 1.111 3.077 1.453 3.761s-2.137-1.966-3.332-3.59c-1.197-1.623.854 3.419 2.393 5.299 1.537 1.88 7.35 3.247 8.887 4.02 1.539.769 5.727-1.453 4.102-1.367 0 0-3.674.513-5.04-.171s-4.445-.684-4.958-1.625c-.512-.941-.512-2.309-1.453-3.59-.939-1.282-1.537-3.59-.256-2.564s2.65 1.197 2.82.513c.172-.684-2.393-2.991-.77-4.02 1.625-1.025 3.162-.256 3.932-1.025.77-.769 2.564-3.076 2.137-4.188-.428-1.11-.514-1.88 0-2.222.512-.342-2.479-.342-1.281-1.196 1.195-.854 2.477-1.623 2.563 0 .086 1.624 0 3.076.598 3.076.6 0 1.539-1.794 1.283-2.563-.258-.769.256-2.478 1.453-2.563 1.195-.086 2.563-2.051 2.904-4.02s.342-3.504-.598-3.333c-.828.15-.934-1.029.254-1.953-1.514-.236-3.065-.358-4.643-.358-12.187 0-22.68 7.27-27.373 17.709.977-.051 2.312.103 2.877 1.181"/><path d="m42.627 7.9c-.672 1.192 1.129-.476 2.336-2.963-.586-.281-1.182-.543-1.787-.786.023 1.027-.022 2.811-.549 3.749"/><path d="m34.25 16.873c1.367-.94 3.59-.94 3.59-2.82s5.383-5.127 4.102-5.04c-1.281.086-3.76 2.479-3.76.854 0-1.623 0-4.614-.342-5.384-.42-.943-.182 4.358-.561 5.299-.381.939.047 4.188-1.148 4.614-1.197.428-3.248 1.282-3.248 2.479s0 .94 1.367 0"/><path d="m35.809 32.709c.74.57-.398 2.165.398 1.823.799-.342 1.652.551 2.053.048.398-.504.455-.891 1.709.157 1.252 1.049 2.164.832 1.367 0-.799-.832-1.539-2.25-3.191-2.737 0 0-1.766-.202-3.02-.772 0 0-1.719-.911-2.254-.342-.537.57-.463-1.595-.871-1.196-.406.398.219 1.709-.977 1.367-1.197-.342-1.596.058-1.938-.911s-2.051-.456-.684-1.196c1.367-.741 2.051-.969 2.107-.399.059.57 1.426-.513.912-2.051-.512-1.538-1.881-1.025-1.822-2.963.025-.884-1.367.342-1.141 1.425.229 1.082-.285 1.311-.797 2.165-.514.854-2.621 2.849-3.191 2.849-.568 0-.398 1.14 0 1.823s2.393.798 2.793.911c.398.114.854-3.076.969-2.222.113.854.283 3.418.568 2.849.285-.57 1.367.228 1.367-.342 0-.57-.455-1.532.627-.994s2.564.88 2.508.254c-.055-.628 1.767-.115 2.508.454m-6.61-6.666c.533 2.145-.74 2.45-1.139 2.108s1.01-2.63 1.139-2.108"/><path d="m40.652 39.66c-1.652-1.481-2.393-3.872-2.793-4.215-.658-.566-.361 2.05-.578 2.563-.219.513-1.188-.627-1.643-.854-.457-.228-.172-.569 0-1.025.17-.456-.855-.853-1.652-.683-.799.17-.807-.059-1.115.568s-.064 1.174-.871.757c-.807-.416-1.318.211-1.889.838-.57.626-.797.854-1.025 1.311-.229.455-3.361.17-3.361 1.651s1.311 2.678 1.025 3.817.229 2.336 1.197 1.767c.969-.57 2.393-.399 2.791-.854.398-.456 3.076-1.197 3.533-.342.455.854.969 1.318 1.766 1.343s.912.765.912 1.335c0 .569 1.195.113 1.879.342.684.228 2.336.057 2.451-1.254.113-1.311.854-2.222 1.139-2.905s-.113-2.678-1.766-4.16"/><path d="m39.17 48.776c-.797-.114-.17 1.766.342 1.937.514.171.783-1.122.742-1.937-.033-.616-.285.114-1.084 0"/><path d="m51.762 47.12c-.512.057-.912-1.254-1.254-.969-.668.558.799 1.88 0 2.621-.797.74-1.025 1.854-1.652 1.952s-1.594 1.01-.969 1.522c.627.513 1.596 0 1.938-.968.342-.969.627-1.375 1.311-1.656s.627-1.08 1.254-1.563c.626-.484-.115-.997-.628-.939"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0 16.6-13.4 30-30 30s-30-13.4-30-30c0-4.4.9-8.5 2.6-12.3l32-17.3c2.3.4 4.5 1 6.5 1.8l.7 1.5 1.2-.8c10 4.9 17 15.2 17 27.1" fill="#008db3"/><g fill="#ffc942"><path d="m7.5 20.9c.9 1.8 2.1-.6 2 1.2-.1 1.8 1.2 5.8 2 5.3.8-.5.8-3.5 2.1-3.8 1.4-.4 3.3-2.7 3.9-1.6.6 1 .4 2.9.9 2.5.5-.4 1.2 0 1.1 1.3-.1 1.3 1.1 3.1 1.5 3.8s-2.1-2-3.3-3.6c-1.2-1.6.9 3.4 2.4 5.3 1.5 1.9 7.4 3.2 8.9 4 1.5.8 5.7-1.5 4.1-1.4 0 0-3.7.5-5-.2s-4.4-.7-5-1.6c-.5-.9-.5-2.3-1.5-3.6-.9-1.3-1.5-3.6-.3-2.6s2.6 1.2 2.8.5c.2-.7-2.4-3-.8-4 1.6-1 3.2-.3 3.9-1 .8-.8 2.6-3.1 2.1-4.2-.4-1.1-.5-1.9 0-2.2.5-.3-2.5-.3-1.3-1.2 1.2-.9 2.5-1.6 2.6 0 .1 1.6 0 3.1.6 3.1.6 0 1.5-1.8 1.3-2.6-.3-.8.3-2.5 1.5-2.6 1.2-.1 2.6-2.1 2.9-4s.3-3.5-.6-3.3c-.8.2-.9-1 .3-2-1.5-.3-3-.4-4.6-.4-12.2 0-22.7 7.3-27.4 17.7 1 0 2.3.1 2.9 1.2"/><path d="m42.6 7.9c-.7 1.2 1.1-.5 2.3-3-.6-.3-1.2-.5-1.8-.8.1 1.1.1 2.9-.5 3.8"/><path d="m34.3 16.9c1.4-.9 3.6-.9 3.6-2.8s5.4-5.1 4.1-5c-1.3.1-3.8 2.5-3.8.9 0-1.6 0-4.6-.3-5.4-.4-.9-.2 4.4-.6 5.3-.4.9 0 4.2-1.1 4.6-1.2.4-3.2 1.3-3.2 2.5s-.1.8 1.3-.1"/><path d="m35.8 32.7c.7.6-.4 2.2.4 1.8.8-.3 1.7.6 2.1 0 .4-.5.5-.9 1.7.2 1.3 1 2.2.8 1.4 0-.8-.8-1.5-2.2-3.2-2.7 0 0-1.8-.2-3-.8 0 0-1.7-.9-2.3-.3-.5.6-.5-1.6-.9-1.2-.4.4.2 1.7-1 1.4-1.2-.3-1.6.1-1.9-.9s-2.1-.5-.7-1.2c1.4-.7 2.1-1 2.1-.4.1.6 1.4-.5.9-2.1-.5-1.5-1.9-1-1.8-3 0-.9-1.4.3-1.1 1.4.2 1.1-.3 1.3-.8 2.2-.6.9-2.7 2.9-3.2 2.9-.6 0-.4 1.1 0 1.8s2.4.8 2.8.9c.4.1.9-3.1 1-2.2.1.9.3 3.4.6 2.8.3-.6 1.4.2 1.4-.3s-.5-1.5.6-1c1.1.5 2.6.9 2.5.3-.2-.7 1.7-.2 2.4.4m-6.6-6.7c.5 2.1-.7 2.5-1.1 2.1s1-2.6 1.1-2.1"/><path d="m40.7 39.7c-1.7-1.5-2.4-3.9-2.8-4.2-.7-.6-.4 2-.6 2.6-.2.5-1.2-.6-1.6-.9-.5-.2-.2-.6 0-1 .2-.5-.9-.9-1.7-.7-.8.2-.8-.1-1.1.6s-.1 1.2-.9.8c-.8-.4-1.3.2-1.9.8-.6.6-.8.9-1 1.3-.2.5-3.4.2-3.4 1.7s1.3 2.7 1 3.8.2 2.3 1.2 1.8c1-.6 2.4-.4 2.8-.9.4-.5 3.1-1.2 3.5-.3.5.9 1 1.3 1.8 1.3s.9.8.9 1.3c0 .6 1.2.1 1.9.3.7.2 2.3.1 2.5-1.3.1-1.3.9-2.2 1.1-2.9s-.1-2.7-1.7-4.1"/><path d="m39.2 48.8c-.8-.1-.2 1.8.3 1.9.5.2.8-1.1.7-1.9 0-.6-.2.1-1 0"/><path d="m51.8 47.1c-.5.1-.9-1.3-1.3-1-.7.6.8 1.9 0 2.6-.8.7-1 1.9-1.7 2s-1.6 1-1 1.5c.6.5 1.6 0 1.9-1 .3-1 .6-1.4 1.3-1.7s.6-1.1 1.3-1.6c.7-.3 0-.8-.5-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f310.svg b/build/js/jsxc/lib/emojione/assets/svg/1f310.svg
index 6ee5b61..5290ca3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f310.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f310.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m32 2c-16.542 0-30 13.459-30 30 0 16.543 13.458 30 30 30s30-13.457 30-30c0-16.541-13.458-30-30-30m20.05 46.2c-1.195-1.083-2.464-2.058-3.793-2.923 1.674-3.385 2.703-7.07 3.01-10.859h6.409c-.486 5.191-2.517 9.941-5.628 13.782m-45.722-13.782h6.297c.312 3.803 1.35 7.514 3.039 10.914-1.299.852-2.538 1.809-3.708 2.868-3.111-3.841-5.142-8.591-5.628-13.782m5.627-18.625c1.171 1.061 2.41 2.02 3.709 2.867-1.783 3.588-2.842 7.52-3.084 11.547h-6.304c.375-5.438 2.443-10.418 5.679-14.414m17.943-6.238v9.648c-2.927-.234-5.746-.955-8.368-2.125 2.19-3.07 5.04-5.653 8.368-7.523m0 13.869v6.783h-13.1c.235-3.359 1.127-6.57 2.558-9.488 3.283 1.531 6.839 2.452 10.541 2.705m0 10.994v6.15c-3.714.255-7.282 1.181-10.574 2.723-1.327-2.732-2.182-5.727-2.473-8.873h13.05m0 10.373v9.668c-3.363-1.867-6.226-4.447-8.413-7.523 2.634-1.182 5.469-1.911 8.413-2.145m4.21 9.58v-9.58c2.894.23 5.681.938 8.277 2.084-2.167 3.05-4.988 5.623-8.277 7.496m0-13.803v-6.15h12.934c-.297 3.111-1.157 6.088-2.488 8.812-3.256-1.505-6.78-2.41-10.446-2.662m0-10.361v-6.783c3.666-.25 7.192-1.156 10.45-2.662 1.418 2.906 2.302 6.102 2.536 9.445h-12.986m0-11v-9.584c3.292 1.872 6.113 4.445 8.282 7.496-2.597 1.149-5.386 1.856-8.282 2.088m10.427-6.241c-1.984-2.404-4.327-4.471-6.918-6.138 4.357.971 8.302 3.048 11.524 5.92-.954.857-1.962 1.637-3.02 2.333-.496-.727-1.026-1.433-1.59-2.115m-25.18.001c-.55.666-1.068 1.354-1.556 2.063-1.026-.684-2.01-1.445-2.938-2.281 3.181-2.835 7.06-4.896 11.355-5.883-2.569 1.659-4.891 3.713-6.861 6.101m-1.554 36c.408.594.838 1.174 1.29 1.738 2.02 2.521 4.44 4.689 7.13 6.428-4.292-.986-8.178-3.048-11.359-5.884.931-.837 1.912-1.599 2.939-2.282m26.772 2.01c.548-.666 1.065-1.355 1.551-2.064 1.054.696 2.061 1.476 3.02 2.333-3.223 2.872-7.167 4.948-11.524 5.92 2.61-1.679 4.965-3.763 6.958-6.189m6.738-20.773c-.241-4.01-1.289-7.92-3.057-11.492 1.329-.864 2.598-1.839 3.793-2.922 3.237 3.996 5.305 8.977 5.68 14.414h-6.416"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-16.5 0-30 13.5-30 30 0 16.5 13.5 30 30 30 16.5 0 30-13.5 30-30 0-16.5-13.5-30-30-30m20 46.2c-1.2-1.1-2.5-2.1-3.8-2.9 1.7-3.4 2.7-7.1 3-10.9h6.4c-.4 5.2-2.4 10-5.6 13.8m-45.7-13.8h6.3c.3 3.8 1.4 7.5 3 10.9-1.3.9-2.5 1.8-3.7 2.9-3.1-3.8-5.1-8.6-5.6-13.8m5.7-18.6c1.2 1.1 2.4 2 3.7 2.9-1.8 3.6-2.8 7.5-3.1 11.5h-6.3c.3-5.4 2.4-10.4 5.7-14.4m17.9-6.2v9.6c-2.9-.2-5.7-1-8.4-2.1 2.2-3.1 5.1-5.7 8.4-7.5m0 13.8v6.8h-13.1c.2-3.4 1.1-6.6 2.6-9.5 3.2 1.6 6.8 2.5 10.5 2.7m0 11v6.2c-3.7.3-7.3 1.2-10.6 2.7-1.3-2.7-2.2-5.7-2.5-8.9h13.1m0 10.4v9.7c-3.4-1.9-6.2-4.4-8.4-7.5 2.6-1.2 5.5-2 8.4-2.2m4.2 9.6v-9.6c2.9.2 5.7.9 8.3 2.1-2.2 3-5 5.6-8.3 7.5m0-13.8v-6.2h12.9c-.3 3.1-1.2 6.1-2.5 8.8-3.2-1.5-6.7-2.4-10.4-2.6m0-10.4v-6.8c3.7-.2 7.2-1.2 10.5-2.7 1.4 2.9 2.3 6.1 2.5 9.4h-13zm0-11v-9.6c3.3 1.9 6.1 4.4 8.3 7.5-2.6 1.2-5.4 1.9-8.3 2.1m10.4-6.2c-2-2.4-4.3-4.5-6.9-6.1 4.4 1 8.3 3 11.5 5.9-1 .9-2 1.6-3 2.3-.5-.7-1-1.5-1.6-2.1m-25.1 0c-.5.7-1.1 1.4-1.6 2.1-1-.7-2-1.4-2.9-2.3 3.2-2.8 7.1-4.9 11.4-5.9-2.7 1.6-5 3.7-6.9 6.1m-1.6 36c.4.6.8 1.2 1.3 1.7 2 2.5 4.4 4.7 7.1 6.4-4.3-1-8.2-3-11.4-5.9 1-.8 2-1.5 3-2.2m26.8 2c.5-.7 1.1-1.4 1.6-2.1 1.1.7 2.1 1.5 3 2.3-3.2 2.9-7.2 4.9-11.5 5.9 2.5-1.6 4.9-3.7 6.9-6.1m6.7-20.8c-.2-4-1.3-7.9-3.1-11.5 1.3-.9 2.6-1.8 3.8-2.9 3.2 4 5.3 9 5.7 14.4 0 0-6.4 0-6.4 0" fill="#4fd1d9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f311.svg b/build/js/jsxc/lib/emojione/assets/svg/1f311.svg
index 47d9cf3..78fd41e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f311.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f311.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3e4347" cx="32" cy="32" r="30"/><g fill="#464d51"><circle cx="50" cy="35.25" r="7"/><circle cx="18.12" cy="39.05" r="6"/><circle cx="24.16" cy="50.05" r="9"/><circle cx="23.998" cy="17.248" r="4"/><circle cx="36.998" cy="18.248" r="4"/><circle cx="12.12" cy="25.922" r="4"/><circle cx="38.998" cy="9.248" r="2"/><circle cx="8.121" cy="39.05" r="2"/><circle cx="52" cy="50.05" r="2"/><circle cx="24.998" cy="29.923" r="3"/><circle cx="14.998" cy="15.748" r="2"/><circle cx="46" cy="52.623" r="4"/><path d="m24.16 10.75c0 2.758 2.236 4.998 5 4.998 2.762 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.763 0-5 2.238-5 5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#3e4347"/><g fill="#464d51"><circle cx="50" cy="35.2" r="7"/><circle cx="18.1" cy="39" r="6"/><circle cx="24.2" cy="50" r="9"/><circle cx="24" cy="17.2" r="4"/><circle cx="37" cy="18.2" r="4"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="39" cy="9.2" r="2"/><circle cx="8.1" cy="39" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/><circle cx="46" cy="52.6" r="4"/><path d="m24.2 10.8c0 2.8 2.2 5 5 5 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8-.1-5 2.2-5 5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f312.svg b/build/js/jsxc/lib/emojione/assets/svg/1f312.svg
index 6811491..7bae646 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f312.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f312.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m49 32c0-16.568-7.611-30-17-30-16.568 0-30 13.432-30 30s13.432 30 30 30c9.389 0 17-13.432 17-30"/><path fill="#ffe8a6" d="M32,2c9.389,0,17,13.432,17,30s-7.611,30-17,30c16.568,0,30-13.432,30-30S48.568,2,32,2z"/><g fill="#464d51"><path d="m48.869 28.348c-3.328.54-5.87 3.42-5.87 6.901 0 3.184 2.127 5.866 5.04 6.715.623-3.118.965-6.47.965-9.964 0-1.237-.048-2.455-.131-3.652"/><path d="m24.16 41.05c-.133 0-.261.014-.393.02.227-.632.356-1.309.356-2.02 0-3.313-2.687-6-6-6-3.313 0-5.999 2.688-5.999 6 0 2.854 1.995 5.237 4.665 5.845-1.023 1.461-1.628 3.235-1.628 5.154 0 4.97 4.03 9 8.999 9s9-4.03 9-9c.001-4.971-4.03-9-9-9"/><path d="m23.999 21.248c2.209 0 3.999-1.79 3.999-4 0-.645-.167-1.245-.438-1.785.504.172 1.035.285 1.598.285 2.761 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.764 0-5 2.238-5 5 0 .961.284 1.851.756 2.613-.295-.069-.599-.115-.914-.115-2.209 0-4 1.791-4 4 0 2.21 1.792 4 4 4"/><circle cx="36.999" cy="18.248" r="4"/><circle cx="12.12" cy="25.923" r="4"/><circle cx="38.998" cy="9.248" r="2"/><circle cx="8.12" cy="39.05" r="2"/><circle cx="24.998" cy="29.923" r="3"/><circle cx="14.998" cy="15.748" r="2"/><path d="m41.999 52.623c0 .93.33 1.773.862 2.453 1.262-1.853 2.369-4.02 3.284-6.438-.05-.002-.096-.015-.146-.015-2.208 0-4 1.791-4 4"/></g><g fill="#f4dc9f"><path d="m56.999 35.25c0-3.866-3.135-7-7-7-.385 0-.76.039-1.129.1.083 1.197.131 2.415.131 3.652 0 3.494-.342 6.846-.965 9.964.623.182 1.281.284 1.963.284 3.866 0 7-3.134 7-6.999"/><circle cx="51.999" cy="50.05" r="2"/><path d="m46 56.623c2.209 0 3.999-1.79 3.999-4 0-2.159-1.714-3.907-3.854-3.985-.915 2.417-2.02 4.586-3.284 6.438.733.936 1.86 1.547 3.139 1.547"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49 32c0-16.6-7.6-30-17-30-16.6 0-30 13.4-30 30s13.4 30 30 30c9.4 0 17-13.4 17-30" fill="#3e4347"/><path d="M32,2c9.4,0,17,13.4,17,30s-7.6,30-17,30c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#ffe8a6"/><g fill="#464d51"><path d="m48.9 28.3c-3.3.5-5.9 3.4-5.9 6.9 0 3.2 2.1 5.9 5 6.7.6-3.1 1-6.5 1-10 0-1.1 0-2.4-.1-3.6"/><path d="m24.2 41c-.1 0-.3 0-.4 0 .2-.6.4-1.3.4-2 0-3.3-2.7-6-6-6-3.3 0-6 2.7-6 6 0 2.9 2 5.2 4.7 5.8-1 1.5-1.6 3.2-1.6 5.2 0 5 4 9 9 9s9-4 9-9c-.1-4.9-4.2-9-9.1-9"/><path d="m24 21.2c2.2 0 4-1.8 4-4 0-.6-.2-1.2-.4-1.8.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8 0-5 2.2-5 5 0 1 .3 1.9.8 2.6-.3-.1-.6-.1-.9-.1-2.2 0-4 1.8-4 4-.1 2.3 1.7 4 3.9 4"/><circle cx="37" cy="18.2" r="4"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="39" cy="9.2" r="2"/><circle cx="8.1" cy="39" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/><path d="m42 52.6c0 .9.3 1.8.9 2.5 1.3-1.9 2.4-4 3.3-6.4 0 0-.1 0-.1 0-2.3-.1-4.1 1.7-4.1 3.9"/></g><g fill="#f4dc9f"><path d="m57 35.2c0-3.9-3.1-7-7-7-.4 0-.8 0-1.1.1.1 1.2.1 2.5.1 3.7 0 3.5-.3 6.8-1 10 .6.2 1.3.3 2 .3 3.9-.1 7-3.2 7-7.1"/><circle cx="52" cy="50" r="2"/><path d="m46 56.6c2.2 0 4-1.8 4-4 0-2.2-1.7-3.9-3.9-4-.9 2.4-2 4.6-3.3 6.4.8 1 1.9 1.6 3.2 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f313.svg b/build/js/jsxc/lib/emojione/assets/svg/1f313.svg
index 9a7b117..2a604a0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f313.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f313.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe8a6" d="M32.001,2c-1.104,0-2,13.432-2,30s0.896,30,2,30C48.568,62,62,48.568,62,32S48.568,2,32.001,2z"/><path fill="#3e4347" d="m30 32c0-16.568.896-30 2-30-16.568 0-30 13.432-30 30s13.432 30 30 30c-1.105 0-2-13.432-2-30"/><g fill="#f4dc9f"><circle cx="50" cy="35.25" r="7"/><path d="m30.15 43.34c.14 5.105.369 9.508.66 12.751 1.454-1.599 2.349-3.716 2.349-6.05 0-2.667-1.166-5.05-3.01-6.703"/><circle cx="37" cy="18.248" r="4"/><circle cx="39" cy="9.248" r="2"/><circle cx="52" cy="50.05" r="2"/><circle cx="46" cy="52.623" r="4"/><path d="m34.16 10.75c0-2.114-1.315-3.913-3.168-4.645-.268 2.353-.496 5.608-.666 9.491 2.196-.527 3.834-2.492 3.834-4.846"/></g><g fill="#464d51"><path d="m24.16 41.05c-.133 0-.262.015-.393.02.227-.631.355-1.309.355-2.02 0-3.314-2.687-6-6-6-3.314 0-6 2.688-6 6 0 2.854 1.995 5.237 4.666 5.844-1.023 1.461-1.629 3.235-1.629 5.154 0 4.971 4.03 9 9 9 2.639 0 5-1.143 6.651-2.952-.291-3.243-.521-7.646-.66-12.751-1.591-1.424-3.686-2.297-5.99-2.297"/><path d="m24 21.248c2.209 0 4-1.789 4-4 0-.645-.168-1.245-.438-1.784.505.171 1.036.284 1.599.284.403 0 .791-.061 1.166-.151.17-3.883.398-7.139.666-9.491-.569-.225-1.185-.357-1.832-.357-2.764 0-5 2.238-5 5 0 .961.285 1.851.756 2.612-.295-.068-.598-.114-.914-.114-2.209 0-4 1.791-4 4-.001 2.21 1.79 3.999 3.999 3.999"/><circle cx="12.12" cy="25.924" r="4"/><circle cx="8.121" cy="39.05" r="2"/><circle cx="25" cy="29.924" r="3"/><circle cx="15" cy="15.748" r="2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-1.1,0-2,13.4-2,30s0.9,30,2,30c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#ffe8a6"/><path d="m30 32c0-16.6.9-30 2-30-16.6 0-30 13.4-30 30s13.4 30 30 30c-1.1 0-2-13.4-2-30" fill="#3e4347"/><g fill="#f4dc9f"><circle cx="50" cy="35.2" r="7"/><path d="m30.1 43.3c.1 5.1.4 9.5.7 12.8 1.5-1.6 2.3-3.7 2.3-6 .1-2.7-1.1-5.1-3-6.8"/><circle cx="37" cy="18.2" r="4"/><circle cx="39" cy="9.2" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="46" cy="52.6" r="4"/><path d="m34.2 10.8c0-2.1-1.3-3.9-3.2-4.6-.3 2.4-.5 5.6-.7 9.5 2.2-.6 3.9-2.6 3.9-4.9"/></g><g fill="#464d51"><path d="m24.2 41c-.1 0-.3 0-.4 0 .2-.6.4-1.3.4-2 0-3.3-2.7-6-6-6-3.3 0-6 2.7-6 6 0 2.9 2 5.2 4.7 5.8-1 1.5-1.6 3.2-1.6 5.2 0 5 4 9 9 9 2.6 0 5-1.1 6.7-3-.3-3.2-.5-7.6-.7-12.8-1.7-1.3-3.8-2.2-6.1-2.2"/><path d="m24 21.2c2.2 0 4-1.8 4-4 0-.6-.2-1.2-.4-1.8.5.2 1 .3 1.6.3.4 0 .8-.1 1.2-.2.2-3.9.4-7.1.7-9.5-.6-.2-1.2-.4-1.8-.4-2.8 0-5 2.2-5 5 0 1 .3 1.9.8 2.6-.3-.1-.6-.1-.9-.1-2.2 0-4 1.8-4 4-.2 2.4 1.6 4.1 3.8 4.1"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="8.1" cy="39" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f314.svg b/build/js/jsxc/lib/emojione/assets/svg/1f314.svg
index c880433..8fd4cf6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f314.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f314.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe8a6" d="M32,2c-9.389,0-17,13.432-17,30s7.611,30,17,30c16.568,0,30-13.432,30-30S48.568,2,32,2z"/><path fill="#3e4347" d="m15 32c0-16.568 7.611-30 17-30-16.568 0-30 13.432-30 30s13.432 30 30 30c-9.389 0-17-13.432-17-30"/><g fill="#f4dc9f"><circle cx="49.998" cy="35.25" r="7"/><path d="m24.16 41.05c-.132 0-.261.014-.392.02.227-.632.355-1.309.355-2.02 0-3.313-2.687-6-6-6-1.129 0-2.181.317-3.083.859.139 3.898.697 7.595 1.601 10.948.049.013.098.027.147.038-.033.047-.069.092-.102.14 1.669 6.097 4.473 11.05 7.927 13.991 4.759-.237 8.548-4.16 8.548-8.977.001-4.97-4.03-8.999-9-8.999"/><path d="m23.999 21.248c2.209 0 3.999-1.79 3.999-4 0-.645-.167-1.245-.438-1.785.504.172 1.035.285 1.598.285 2.762 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.764 0-5 2.238-5 5 0 .961.285 1.851.756 2.613-.295-.069-.598-.115-.914-.115-2.209 0-4 1.791-4 4 0 2.21 1.792 4 4 4"/><circle cx="37" cy="18.248" r="4"/><path d="m15.614 24.01c-.23 1.471-.398 2.986-.499 4.538.618-.704 1.01-1.616 1.01-2.628 0-.695-.193-1.34-.506-1.91"/><circle cx="38.998" cy="9.248" r="2"/><circle cx="52" cy="50.05" r="2"/><circle cx="24.998" cy="29.923" r="3"/><circle cx="46" cy="52.623" r="4"/></g><g fill="#464d51"><path d="m15.04 33.906c-1.745 1.05-2.917 2.957-2.917 5.142 0 2.801 1.922 5.146 4.518 5.807-.904-3.354-1.462-7.05-1.601-10.949"/><path d="m16.684 45.03c-.963 1.433-1.526 3.158-1.526 5.02 0 4.97 4.03 9 8.999 9 .153 0 .303-.016.454-.023-3.455-2.947-6.258-7.895-7.927-13.992"/><path d="m12.12 29.923c1.198 0 2.261-.538 2.994-1.373.101-1.552.269-3.067.499-4.538-.68-1.239-1.98-2.089-3.493-2.089-2.209 0-4 1.791-4 3.999 0 2.21 1.792 4 4 4"/><circle cx="8.12" cy="39.05" r="2"/><circle cx="14.998" cy="15.748" r="2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-9.4,0-17,13.4-17,30s7.6,30,17,30c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#ffe8a6"/><path d="m15 32c0-16.6 7.6-30 17-30-16.6 0-30 13.4-30 30s13.4 30 30 30c-9.4 0-17-13.4-17-30" fill="#3e4347"/><g fill="#f4dc9f"><circle cx="50" cy="35.2" r="7"/><path d="m24.2 41c-.1 0-.3 0-.4 0 .2-.6.4-1.3.4-2 0-3.3-2.7-6-6-6-1.1 0-2.2.3-3.1.9.1 3.9.7 7.6 1.6 10.9 0 0 .1 0 .1 0 0 0-.1.1-.1.1 1.7 6.1 4.5 11 7.9 14 4.8-.2 8.5-4.2 8.5-9 .1-4.8-4-8.9-8.9-8.9"/><path d="m24 21.2c2.2 0 4-1.8 4-4 0-.6-.2-1.2-.4-1.8.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8 0-5 2.2-5 5 0 1 .3 1.9.8 2.6-.3-.1-.6-.1-.9-.1-2.2 0-4 1.8-4 4-.1 2.3 1.7 4 3.9 4"/><circle cx="37" cy="18.2" r="4"/><path d="m15.6 24c-.2 1.5-.4 3-.5 4.5.6-.7 1-1.6 1-2.6 0-.7-.2-1.3-.5-1.9"/><circle cx="39" cy="9.2" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="46" cy="52.6" r="4"/></g><g fill="#464d51"><path d="m15 33.9c-1.7 1-2.9 3-2.9 5.1 0 2.8 1.9 5.1 4.5 5.8-.9-3.3-1.4-7-1.6-10.9"/><path d="m16.7 45c-1 1.4-1.5 3.2-1.5 5 0 5 4 9 9 9 .2 0 .3 0 .5 0-3.5-2.9-6.3-7.9-8-14"/><path d="m12.1 29.9c1.2 0 2.3-.5 3-1.4.1-1.6.3-3.1.5-4.5-.7-1.2-2-2.1-3.5-2.1-2.2 0-4 1.8-4 4 0 2.2 1.8 4 4 4"/><circle cx="8.1" cy="39" r="2"/><circle cx="15" cy="15.7" r="2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f315.svg b/build/js/jsxc/lib/emojione/assets/svg/1f315.svg
index 2b8fc6e..cdcbea5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f315.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f315.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffe8a6" cx="32" cy="32" r="30"/><g fill="#f4dc9f"><circle cx="49.999" cy="35.25" r="7"/><circle cx="18.12" cy="39.05" r="6"/><circle cx="24.16" cy="50.05" r="9"/><circle cx="23.998" cy="17.248" r="4"/><circle cx="36.998" cy="18.248" r="4"/><circle cx="12.12" cy="25.922" r="4"/><circle cx="38.998" cy="9.248" r="2"/><circle cx="8.12" cy="39.05" r="2"/><circle cx="51.999" cy="50.05" r="2"/><circle cx="24.998" cy="29.923" r="3"/><circle cx="14.998" cy="15.748" r="2"/><circle cx="45.999" cy="52.623" r="4"/><path d="m24.16 10.75c0 2.758 2.237 4.998 5 4.998 2.761 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.763 0-5 2.238-5 5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffe8a6"/><g fill="#f4dc9f"><circle cx="50" cy="35.2" r="7"/><circle cx="18.1" cy="39" r="6"/><circle cx="24.2" cy="50" r="9"/><circle cx="24" cy="17.2" r="4"/><circle cx="37" cy="18.2" r="4"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="39" cy="9.2" r="2"/><circle cx="8.1" cy="39" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/><circle cx="46" cy="52.6" r="4"/><path d="m24.2 10.8c0 2.8 2.2 5 5 5 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8-.1-5 2.2-5 5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f316.svg b/build/js/jsxc/lib/emojione/assets/svg/1f316.svg
index d9ddaaa..0e1aa7b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f316.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f316.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe8a6" d="m49 32c0-16.568-7.611-30-17-30-16.568 0-30 13.432-30 30s13.432 30 30 30c9.389 0 17-13.432 17-30"/><path fill="#3e4347" d="M32,2c9.389,0,17,13.432,17,30s-7.611,30-17,30c16.568,0,30-13.432,30-30S48.568,2,32,2z"/><g fill="#f4dc9f"><path d="m48.87 28.348c-3.328.54-5.871 3.42-5.871 6.901 0 3.184 2.127 5.866 5.04 6.715.622-3.118.964-6.47.964-9.964 0-1.237-.048-2.455-.13-3.652"/><path d="m24.16 41.05c-.133 0-.262.014-.393.02.227-.632.355-1.309.355-2.02 0-3.313-2.687-6-6-6-3.314 0-6 2.688-6 6 0 2.854 1.995 5.237 4.666 5.845-1.023 1.461-1.629 3.235-1.629 5.154 0 4.97 4.03 9 9 9s9-4.03 9-9c.001-4.971-4.03-9-8.999-9"/><path d="m23.999 21.248c2.209 0 4-1.79 4-4 0-.645-.168-1.245-.438-1.785.504.172 1.035.285 1.598.285 2.76 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.764 0-5 2.238-5 5 0 .961.285 1.851.756 2.613-.295-.069-.598-.115-.914-.115-2.209 0-4 1.791-4 4 0 2.21 1.791 4 4 4"/><circle cx="36.999" cy="18.248" r="4"/><circle cx="12.12" cy="25.923" r="4"/><circle cx="38.999" cy="9.248" r="2"/><circle cx="8.12" cy="39.05" r="2"/><circle cx="24.999" cy="29.923" r="3"/><circle cx="14.999" cy="15.748" r="2"/><path d="m41.999 52.623c0 .93.33 1.773.862 2.453 1.263-1.853 2.37-4.02 3.284-6.438-.049-.002-.096-.015-.145-.015-2.208 0-4 1.791-4 4"/></g><g fill="#464d51"><path d="m56.999 35.25c0-3.866-3.135-7-7-7-.386 0-.761.039-1.129.1.082 1.197.13 2.415.13 3.652 0 3.494-.342 6.846-.964 9.964.623.182 1.28.284 1.963.284 3.865 0 7-3.134 7-6.999"/><circle cx="51.999" cy="50.05" r="2"/><path d="m46 56.623c2.209 0 3.998-1.79 3.998-4 0-2.159-1.713-3.907-3.854-3.985-.914 2.417-2.02 4.586-3.284 6.438.734.936 1.86 1.547 3.14 1.547"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49 32c0-16.6-7.6-30-17-30-16.6 0-30 13.4-30 30s13.4 30 30 30c9.4 0 17-13.4 17-30" fill="#ffe8a6"/><path d="M32,2c9.4,0,17,13.4,17,30s-7.6,30-17,30c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#3e4347"/><g fill="#f4dc9f"><path d="m48.9 28.3c-3.3.5-5.9 3.4-5.9 6.9 0 3.2 2.1 5.9 5 6.7.6-3.1 1-6.5 1-10 0-1.1 0-2.4-.1-3.6"/><path d="m24.2 41c-.1 0-.3 0-.4 0 .2-.6.4-1.3.4-2 0-3.3-2.7-6-6-6-3.3 0-6 2.7-6 6 0 2.9 2 5.2 4.7 5.8-1 1.5-1.6 3.2-1.6 5.2 0 5 4 9 9 9s9-4 9-9c-.1-4.9-4.2-9-9.1-9"/><path d="m24 21.2c2.2 0 4-1.8 4-4 0-.6-.2-1.2-.4-1.8.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8 0-5 2.2-5 5 0 1 .3 1.9.8 2.6-.3-.1-.6-.1-.9-.1-2.2 0-4 1.8-4 4-.1 2.3 1.7 4 3.9 4"/><circle cx="37" cy="18.2" r="4"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="39" cy="9.2" r="2"/><circle cx="8.1" cy="39" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/><path d="m42 52.6c0 .9.3 1.8.9 2.5 1.3-1.9 2.4-4 3.3-6.4 0 0-.1 0-.1 0-2.3-.1-4.1 1.7-4.1 3.9"/></g><g fill="#464d51"><path d="m57 35.2c0-3.9-3.1-7-7-7-.4 0-.8 0-1.1.1.1 1.2.1 2.5.1 3.7 0 3.5-.3 6.8-1 10 .6.2 1.3.3 2 .3 3.9-.1 7-3.2 7-7.1"/><circle cx="52" cy="50" r="2"/><path d="m46 56.6c2.2 0 4-1.8 4-4 0-2.2-1.7-3.9-3.9-4-.9 2.4-2 4.6-3.3 6.4.8 1 1.9 1.6 3.2 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f317.svg b/build/js/jsxc/lib/emojione/assets/svg/1f317.svg
index 17094ec..fe9e6db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f317.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f317.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe8a6" d="m34 32c0-16.568-.895-30-2-30-16.568 0-30 13.432-30 30s13.431 30 30 30c1.105 0 2-13.432 2-30"/><path fill="#3e4347" d="M32,2c1.105,0,2,13.432,2,30s-0.895,30-2,30c16.568,0,30-13.432,30-30S48.568,2,32,2z"/><g fill="#f4dc9f"><path d="m24.16 41.05c-.132 0-.261.014-.392.02.226-.632.355-1.31.355-2.02 0-3.313-2.688-6-6-6-3.314 0-6 2.688-6 6 0 2.855 1.994 5.238 4.665 5.846-1.022 1.461-1.628 3.235-1.628 5.154 0 4.969 4.03 9 8.999 9s9-4.03 9-9c.001-4.971-4.03-9-9-9"/><path d="m24 21.248c2.209 0 3.999-1.791 3.999-4 0-.645-.167-1.245-.438-1.785.504.172 1.035.285 1.598.285 1.91 0 3.552-1.085 4.394-2.659-.107-1.989-.232-3.767-.37-5.285-.911-1.241-2.368-2.056-4.02-2.056-2.764 0-5 2.238-5 5 0 .961.285 1.851.756 2.613-.295-.069-.598-.115-.914-.115-2.209 0-4 1.791-4 4s1.791 4 4 4"/><path d="m33.854 20.691c-.045-1.643-.1-3.21-.162-4.691-.436.641-.692 1.414-.692 2.248-.001.925.326 1.766.854 2.443"/><circle cx="12.12" cy="25.922" r="4"/><circle cx="8.121" cy="39.05" r="2"/><circle cx="24.999" cy="29.922" r="3"/><circle cx="14.999" cy="15.748" r="2"/></g><g fill="#464d51"><circle cx="49.999" cy="35.25" r="7"/><path d="m37 14.248c-1.375 0-2.588.695-3.309 1.752.063 1.481.117 3.049.162 4.691.731.94 1.862 1.557 3.146 1.557 2.209 0 3.999-1.791 3.999-4s-1.789-4-3.998-4"/><circle cx="38.999" cy="9.248" r="2"/><circle cx="52" cy="50.05" r="2"/><circle cx="46" cy="52.623" r="4"/><path d="m33.18 7.804c.138 1.519.263 3.296.37 5.285.375-.701.607-1.489.607-2.339 0-1.106-.37-2.119-.977-2.946"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 32c0-16.6-.9-30-2-30-16.6 0-30 13.4-30 30s13.4 30 30 30c1.1 0 2-13.4 2-30" fill="#ffe8a6"/><path d="M32,2c1.1,0,2,13.4,2,30s-0.9,30-2,30c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#3e4347"/><g fill="#f4dc9f"><path d="m24.2 41c-.1 0-.3 0-.4 0 .2-.6.4-1.3.4-2 0-3.3-2.7-6-6-6-3.3 0-6 2.7-6 6 0 2.9 2 5.2 4.7 5.8-1 1.5-1.6 3.2-1.6 5.2 0 5 4 9 9 9s9-4 9-9c-.1-4.9-4.2-9-9.1-9"/><path d="m24 21.2c2.2 0 4-1.8 4-4 0-.6-.2-1.2-.4-1.8.5.2 1 .3 1.6.3 1.9 0 3.6-1.1 4.4-2.7-.1-2-.2-3.8-.4-5.3-.9-1.2-2.4-2.1-4-2.1-2.8 0-5 2.2-5 5 0 1 .3 1.9.8 2.6-.3-.1-.6-.1-.9-.1-2.2 0-4 1.8-4 4s1.7 4.1 3.9 4.1"/><path d="m33.9 20.7c0-1.6-.1-3.2-.2-4.7-.4.6-.7 1.4-.7 2.2 0 1 .3 1.8.9 2.5"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="8.1" cy="39" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/></g><g fill="#464d51"><circle cx="50" cy="35.2" r="7"/><path d="m37 14.2c-1.4 0-2.6.7-3.3 1.8.1 1.5.1 3 .2 4.7.7.9 1.9 1.6 3.1 1.6 2.2 0 4-1.8 4-4s-1.8-4.1-4-4.1"/><circle cx="39" cy="9.2" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="46" cy="52.6" r="4"/><path d="m33.2 7.8c.1 1.5.3 3.3.4 5.3.4-.7.6-1.5.6-2.3 0-1.2-.4-2.2-1-3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f318.svg b/build/js/jsxc/lib/emojione/assets/svg/1f318.svg
index d694d95..0cc59a6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f318.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f318.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M32,2c-9.389,0-17,13.432-17,30s7.611,30,17,30c16.568,0,30-13.432,30-30S48.568,2,32,2z"/><path fill="#ffe8a6" d="m15 32c0-16.568 7.611-30 17-30-16.568 0-30 13.432-30 30s13.432 30 30 30c-9.389 0-17-13.432-17-30"/><g fill="#464d51"><circle cx="49.998" cy="35.25" r="7"/><path d="m24.16 41.05c-.132 0-.261.014-.392.02.227-.632.355-1.309.355-2.02 0-3.313-2.687-6-6-6-1.129 0-2.181.317-3.083.859.139 3.898.697 7.595 1.601 10.948.049.013.098.027.147.038-.033.047-.069.092-.102.14 1.669 6.097 4.473 11.05 7.927 13.991 4.759-.237 8.548-4.16 8.548-8.977.001-4.97-4.03-8.999-9-8.999"/><path d="m23.999 21.248c2.209 0 3.999-1.79 3.999-4 0-.645-.167-1.245-.438-1.785.504.172 1.035.285 1.598.285 2.762 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.764 0-5 2.238-5 5 0 .961.285 1.851.756 2.613-.295-.069-.598-.115-.914-.115-2.209 0-4 1.791-4 4 0 2.21 1.792 4 4 4"/><circle cx="37" cy="18.248" r="4"/><path d="m15.614 24.01c-.23 1.471-.398 2.986-.499 4.538.618-.704 1.01-1.616 1.01-2.628 0-.695-.193-1.34-.506-1.91"/><circle cx="38.998" cy="9.248" r="2"/><circle cx="52" cy="50.05" r="2"/><circle cx="24.998" cy="29.923" r="3"/><circle cx="46" cy="52.623" r="4"/></g><g fill="#f4dc9f"><path d="m15.04 33.906c-1.745 1.05-2.917 2.957-2.917 5.142 0 2.801 1.922 5.146 4.518 5.807-.904-3.354-1.462-7.05-1.601-10.949"/><path d="m16.684 45.03c-.963 1.433-1.526 3.158-1.526 5.02 0 4.97 4.03 9 8.999 9 .153 0 .303-.016.454-.023-3.455-2.947-6.258-7.895-7.927-13.992"/><path d="m12.12 29.923c1.198 0 2.261-.538 2.994-1.373.101-1.552.269-3.067.499-4.538-.68-1.239-1.98-2.089-3.493-2.089-2.209 0-4 1.791-4 3.999 0 2.21 1.792 4 4 4"/><circle cx="8.12" cy="39.05" r="2"/><circle cx="14.998" cy="15.748" r="2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-9.4,0-17,13.4-17,30s7.6,30,17,30c16.6,0,30-13.4,30-30S48.6,2,32,2z" fill="#3e4347"/><path d="m15 32c0-16.6 7.6-30 17-30-16.6 0-30 13.4-30 30s13.4 30 30 30c-9.4 0-17-13.4-17-30" fill="#ffe8a6"/><g fill="#464d51"><circle cx="50" cy="35.2" r="7"/><path d="m24.2 41c-.1 0-.3 0-.4 0 .2-.6.4-1.3.4-2 0-3.3-2.7-6-6-6-1.1 0-2.2.3-3.1.9.1 3.9.7 7.6 1.6 10.9 0 0 .1 0 .1 0 0 0-.1.1-.1.1 1.7 6.1 4.5 11 7.9 14 4.8-.2 8.5-4.2 8.5-9 .1-4.8-4-8.9-8.9-8.9"/><path d="m24 21.2c2.2 0 4-1.8 4-4 0-.6-.2-1.2-.4-1.8.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8 0-5 2.2-5 5 0 1 .3 1.9.8 2.6-.3-.1-.6-.1-.9-.1-2.2 0-4 1.8-4 4-.1 2.3 1.7 4 3.9 4"/><circle cx="37" cy="18.2" r="4"/><path d="m15.6 24c-.2 1.5-.4 3-.5 4.5.6-.7 1-1.6 1-2.6 0-.7-.2-1.3-.5-1.9"/><circle cx="39" cy="9.2" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="46" cy="52.6" r="4"/></g><g fill="#f4dc9f"><path d="m15 33.9c-1.7 1-2.9 3-2.9 5.1 0 2.8 1.9 5.1 4.5 5.8-.9-3.3-1.4-7-1.6-10.9"/><path d="m16.7 45c-1 1.4-1.5 3.2-1.5 5 0 5 4 9 9 9 .2 0 .3 0 .5 0-3.5-2.9-6.3-7.9-8-14"/><path d="m12.1 29.9c1.2 0 2.3-.5 3-1.4.1-1.6.3-3.1.5-4.5-.7-1.2-2-2.1-3.5-2.1-2.2 0-4 1.8-4 4 0 2.2 1.8 4 4 4"/><circle cx="8.1" cy="39" r="2"/><circle cx="15" cy="15.7" r="2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f319.svg b/build/js/jsxc/lib/emojione/assets/svg/1f319.svg
index 7dfc5d1..3fd5b28 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f319.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f319.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="M43.137,2c3.234,4.797,5.123,10.559,5.123,16.756c0,16.701-13.688,30.24-30.571,30.24
- c-5.737,0-11.102-1.565-15.689-4.285C7.208,54.962,17.929,62,30.316,62C47.814,62,62,47.969,62,30.659
- C62,17.866,54.246,6.871,43.137,2z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M43.1,2c3.2,4.8,5.1,10.6,5.1,16.8C48.3,35.5,34.6,49,17.7,49C12,49,6.6,47.4,2,44.7C7.2,55,17.9,62,30.3,62
+ C47.8,62,62,48,62,30.7C62,17.9,54.2,6.9,43.1,2z" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f31a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f31a.svg
index 8b6a813..201d831 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f31a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f31a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3e4347" cx="32" cy="32" r="30"/><g fill="#464d51"><circle cx="25.941" cy="7.804" r="3.413"/><circle cx="46.869" cy="14.6" r="5.671"/><circle cx="34.743" cy="14.13" r="2.6"/><circle cx="57.49" cy="36.992" r="2.02"/><circle cx="55.47" cy="22.292" r="2.02"/><circle cx="22.528" cy="15.67" r="2.02"/><circle cx="14.411" cy="16.733" r="4.631"/><circle cx="51.946" cy="29.43" r="2.6"/></g><g opacity=".7" fill="#fff"><path d="m33.795 32.984c.095-.344.382-.633.677-.848.299-.221.629-.365.948-.51.649-.263 1.294-.413 1.916-.54 1.247-.24 2.419-.359 3.51-.521 1.093-.164 2.086-.35 3.038-.717.957-.359 1.892-.963 2.947-1.87.115 1.38-.521 2.827-1.639 3.833-1.117 1.012-2.565 1.531-3.913 1.722-1.362.196-2.673.102-3.899-.097-.615-.103-1.21-.229-1.792-.354-.594-.115-1.128-.274-1.793-.098"/><path d="m17.825 35.12c-1.096.267-1.599.803-2.344 1.284-.717.487-1.55 1-2.612 1.313-1.038.318-2.396.337-3.491-.211-1.094-.539-1.822-1.471-2.079-2.557 1.11.179 1.979.329 2.701.281.716-.035 1.297-.189 2.046-.397.74-.204 1.604-.499 2.646-.644.521-.063 1.095-.09 1.674.038.573.136 1.143.409 1.459.893"/><path d="m14.322 23.531c1.668-.143 3.444.148 5.04 1.073.781.475 1.487 1.106 2.072 1.836.576.736 1.01 1.569 1.348 2.418.683 1.708.901 3.5.965 5.238.043 1.745-.102 3.461-.362 5.141-.133.84-.282 1.674-.471 2.497-.154.708-.209 1.328-.145 1.938.131 1.181.83 2.127 2.088 2.712 1.242.554 2.799.747 4.333.592 1.546-.139 3.099-.597 4.531-1.461-1.021 1.348-2.573 2.289-4.236 2.843-1.674.52-3.54.722-5.411.16-.923-.284-1.873-.763-2.617-1.55-.753-.771-1.256-1.809-1.443-2.837-.204-1.017-.136-2.066.031-2.97.133-.792.271-1.579.383-2.367.438-3.137.725-6.321.084-9.206-.345-1.424-.971-2.752-2.053-3.775-1.057-1.061-2.548-1.745-4.134-2.282"/><path d="m19.06 53.37c2.734.033 5.348.229 7.919.136 2.566-.068 5.076-.335 7.489-.923 2.412-.588 4.764-1.501 7.08-2.617 2.327-1.099 4.561-2.468 6.977-3.75-1.576 2.217-3.519 4.17-5.771 5.777-2.252 1.594-4.819 2.839-7.574 3.504-2.754.669-5.605.739-8.338.355-2.736-.397-5.358-1.24-7.777-2.482"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#3e4347"/><g fill="#464d51"><circle cx="25.9" cy="7.8" r="3.4"/><circle cx="46.9" cy="14.6" r="5.7"/><circle cx="34.7" cy="14.1" r="2.6"/><circle cx="57.5" cy="37" r="2"/><circle cx="55.5" cy="22.3" r="2"/><circle cx="22.5" cy="15.7" r="2"/><circle cx="14.4" cy="16.7" r="4.6"/><circle cx="51.9" cy="29.4" r="2.6"/></g><g opacity=".7" fill="#fff"><path d="m33.8 33c.1-.3.4-.6.7-.8.3-.2.6-.4.9-.5.6-.3 1.3-.4 1.9-.5 1.2-.2 2.4-.4 3.5-.5 1.1-.2 2.1-.4 3-.7 1-.4 1.9-1 2.9-1.9.1 1.4-.5 2.8-1.6 3.8-1.1 1-2.6 1.5-3.9 1.7-1.4.2-2.7.1-3.9-.1-.6-.1-1.2-.2-1.8-.4-.5-.1-1-.3-1.7-.1"/><path d="m17.8 35.1c-1.1.3-1.6.8-2.3 1.3-.7.5-1.6 1-2.6 1.3-1 .3-2.4.3-3.5-.2-1.1-.5-1.8-1.5-2.1-2.5 1.1.2 2 .3 2.7.3.7 0 1.3-.2 2-.4.7-.2 1.6-.5 2.6-.6.5-.1 1.1-.1 1.7 0 .6.1 1.2.3 1.5.8"/><path d="m14.3 23.5c1.7-.1 3.4.1 5 1.1.8.5 1.5 1.1 2.1 1.8.6.7 1 1.6 1.3 2.4.7 1.7.9 3.5 1 5.2 0 1.7-.1 3.5-.4 5.1-.1.8-.3 1.7-.5 2.5-.2.7-.2 1.3-.1 1.9.1 1.2.8 2.1 2.1 2.7 1.2.6 2.8.7 4.3.6 1.5-.1 3.1-.6 4.5-1.5-1 1.3-2.6 2.3-4.2 2.8-1.7.5-3.5.7-5.4.2-.9-.3-1.9-.8-2.6-1.5-.8-.8-1.3-1.8-1.4-2.8-.2-1-.1-2.1 0-3 .1-.8.3-1.6.4-2.4.4-3.1.7-6.3.1-9.2-.3-1.4-1-2.8-2.1-3.8-1-.8-2.5-1.5-4.1-2.1"/><path d="m19.1 53.4c2.7 0 5.3.2 7.9.1 2.6-.1 5.1-.3 7.5-.9 2.4-.6 4.8-1.5 7.1-2.6 2.3-1.1 4.6-2.5 7-3.8-1.6 2.2-3.5 4.2-5.8 5.8-2.3 1.6-4.8 2.8-7.6 3.5-2.8.7-5.6.7-8.3.4-2.8-.4-5.4-1.3-7.8-2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f31b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f31b.svg
index 7613451..1f67f81 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f31b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f31b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe8a6" d="m22.402 2.154c5.04 2.469 9.391 6.371 12.356 11.522 1.563 2.715 2.625 5.575 3.213 8.479.803 3.943.119 9.505-6.827 7.61-3.719-1.015-7.316 5.671-.355 7.57 2.01.548-4.725 2.127.422 4.895 0 0-5.488 1.34-2.146 3.904 1.51 1.158-.205 3.136-1.068 3.853-1.422 1.181-2.977 2.248-4.658 3.182-4.861 2.694-10.154 3.913-15.339 3.807 9.316 6.075 21.762 6.891 32.25 1.073 14.818-8.217 20.12-26.542 11.838-40.93-6.121-10.635-17.949-16.13-29.688-14.965"/><g fill="#f4dc9f"><path d="m42.895 47.48c-1.473-.401-2.996.445-3.404 1.888-.41 1.441.451 2.938 1.922 3.34s2.994-.444 3.402-1.888c.408-1.443-.452-2.939-1.92-3.34"/><path d="m46.908 15c-1.471-.401-2.994.443-3.404 1.888-.406 1.442.455 2.938 1.924 3.339 1.473.4 2.994-.443 3.402-1.886.41-1.445-.451-2.94-1.922-3.341"/><path d="m34.13 48.52c-2.434-.663-4.954.734-5.631 3.122-.676 2.39.748 4.864 3.182 5.528 2.434.664 4.956-.734 5.633-3.123.675-2.387-.75-4.862-3.184-5.527"/><path d="m51.12 31.1c-2.561-.698-5.213.771-5.926 3.285-.711 2.514.787 5.118 3.35 5.816 2.559.698 5.211-.772 5.924-3.286.711-2.514-.787-5.116-3.348-5.815"/><path d="m24.267 55.15c-1.166-.317-2.375.352-2.699 1.498-.324 1.145.357 2.329 1.525 2.647 1.166.318 2.373-.351 2.699-1.495.325-1.146-.359-2.33-1.525-2.65"/><path d="m38.506 7.395c-.912-.249-1.859.275-2.111 1.171-.254.896.279 1.825 1.193 2.074.912.249 1.857-.277 2.111-1.172.254-.897-.281-1.824-1.193-2.073"/></g><path fill="#7f5629" d="m45.529 41.731c-.313.548-.878.944-1.448 1.224-.582.278-1.198.469-1.821.595-1.247.264-2.514.307-3.767.271-1.253-.056-2.497-.202-3.719-.463-1.22-.255-2.427-.603-3.564-1.127 2.478.246 4.894.502 7.321.591 1.21.054 2.42.054 3.614-.041.596-.055 1.19-.131 1.765-.284.581-.144 1.132-.362 1.619-.766"/><path fill="#b79918" d="m37.438 46.811c-1.269.065-2.439-.087-3.605-.177-.581-.061-1.156-.098-1.729-.122-.577-.011-1.14-.01-1.761.128.412-.505 1.064-.771 1.685-.904.631-.142 1.271-.145 1.895-.098 1.242.131 2.449.475 3.515 1.173"/><path fill="#7f5629" d="m34.533 37.501c-.326-.192-.56-.285-.788-.354l-.74-.176c-.537-.151-1.145-.36-1.617-.903.682-.223 1.25-.205 1.874-.063.302.093.643.218.915.495.27.264.421.656.356 1"/><path fill="#fff" d="m44.05 23.01c2.721.742 4.744 3.624 3.986 6.294-.756 2.669-4 4.113-6.723 3.371-2.721-.742-2.164-2.921-1.408-5.589.758-2.671 1.426-4.819 4.145-4.076"/><path fill="#7f5629" d="m42.756 24.612c1.699.463 3.135 2.313 2.662 3.981-.473 1.668-2.674 2.524-4.373 2.06-1.699-.463-1.338-1.82-.865-3.49.472-1.669.877-3.02 2.576-2.551"/><path fill="#b79918" d="m37.13 35.23c.692.972 1.726 1.496 2.731 2.042l3.138 1.542c1.043.55 2.104 1.123 3.037 1.927.465.398.896.865 1.199 1.423.298.558.415 1.228.236 1.804-.087-1.227-.994-1.988-1.909-2.606-.944-.613-1.979-1.13-3.02-1.657-1.033-.543-2.092-1.08-3.082-1.766-.958-.674-2-1.517-2.33-2.709"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.4 2.2c5 2.5 9.4 6.4 12.4 11.5 1.6 2.7 2.6 5.6 3.2 8.5.8 3.9.1 9.5-6.8 7.6-3.7-1-7.3 5.7-.4 7.6 2 .5-4.7 2.1.4 4.9 0 0-5.5 1.3-2.1 3.9 1.5 1.2-.2 3.1-1.1 3.9-1.4 1.2-3 2.2-4.7 3.2-4.8 2.6-10.1 3.8-15.3 3.7 9.3 6.1 21.8 6.9 32.3 1.1 14.8-8.2 20.1-26.5 11.8-40.9-6.1-10.7-18-16.2-29.7-15" fill="#ffe8a6"/><g fill="#f4dc9f"><path d="m42.9 47.5c-1.5-.4-3 .4-3.4 1.9-.4 1.4.5 2.9 1.9 3.3s3-.4 3.4-1.9c.4-1.4-.4-2.9-1.9-3.3"/><path d="m46.9 15c-1.5-.4-3 .4-3.4 1.9-.4 1.4.5 2.9 1.9 3.3 1.5.4 3-.4 3.4-1.9.4-1.4-.4-2.9-1.9-3.3"/><path d="m34.1 48.5c-2.4-.7-5 .7-5.6 3.1-.7 2.4.7 4.9 3.2 5.5s5-.7 5.6-3.1c.7-2.3-.7-4.8-3.2-5.5"/><path d="m51.1 31.1c-2.6-.7-5.2.8-5.9 3.3-.7 2.5.8 5.1 3.3 5.8 2.6.7 5.2-.8 5.9-3.3.8-2.5-.7-5.1-3.3-5.8"/><path d="m24.3 55.1c-1.2-.3-2.4.4-2.7 1.5-.3 1.1.4 2.3 1.5 2.6 1.2.3 2.4-.4 2.7-1.5.3-1-.4-2.2-1.5-2.6"/><path d="m38.5 7.4c-.9-.2-1.9.3-2.1 1.2-.3.9.3 1.8 1.2 2.1.9.2 1.9-.3 2.1-1.2.3-.9-.3-1.9-1.2-2.1"/></g><path d="m45.5 41.7c-.3.5-.9.9-1.4 1.2-.6.3-1.2.5-1.8.6-1.2.3-2.5.3-3.8.3-1.3-.1-2.5-.2-3.7-.5-1.2-.3-2.4-.6-3.6-1.1 2.5.2 4.9.5 7.3.6 1.2.1 2.4.1 3.6 0 .6-.1 1.2-.1 1.8-.3.6-.1 1.1-.4 1.6-.8" fill="#7f5629"/><path d="m37.4 46.8c-1.3.1-2.4-.1-3.6-.2-.6-.1-1.2-.1-1.7-.1-.6 0-1.1 0-1.8.1.4-.5 1.1-.8 1.7-.9.6-.1 1.3-.1 1.9-.1 1.3.2 2.5.5 3.5 1.2" fill="#b79918"/><path d="m34.5 37.5c-.3-.2-.6-.3-.8-.4l-.7-.1c-.5-.2-1.1-.4-1.6-.9.7-.2 1.2-.2 1.9-.1.3.1.6.2.9.5.2.3.4.7.3 1" fill="#7f5629"/><path d="m44.1 23c2.7.7 4.7 3.6 4 6.3-.8 2.7-4 4.1-6.7 3.4-2.7-.7-2.2-2.9-1.4-5.6.7-2.7 1.3-4.8 4.1-4.1" fill="#fff"/><path d="m42.8 24.6c1.7.5 3.1 2.3 2.7 4s-2.7 2.5-4.4 2.1c-1.7-.5-1.3-1.8-.9-3.5.5-1.7.9-3.1 2.6-2.6" fill="#7f5629"/><path d="m37.1 35.2c.7 1 1.7 1.5 2.7 2l3.1 1.5c1 .5 2.1 1.1 3 1.9.5.4.9.9 1.2 1.4.3.6.4 1.2.2 1.8-.1-1.2-1-2-1.9-2.6-.9-.6-2-1.1-3-1.7-1-.5-2.1-1.1-3.1-1.8-.8-.4-1.8-1.3-2.2-2.5" fill="#b79918"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f31c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f31c.svg
index 30cb161..53b98ca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f31c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f31c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe8a6" d="m41.598 2.154c-5.04 2.469-9.39 6.371-12.355 11.522-1.563 2.715-2.625 5.575-3.213 8.479-.803 3.943-.119 9.505 6.826 7.61 3.718-1.015 7.316 5.671.355 7.57-2.01.548 4.725 2.127-.421 4.895 0 0 5.488 1.34 2.146 3.904-1.51 1.158.205 3.136 1.068 3.853 1.422 1.181 2.977 2.248 4.658 3.182 4.859 2.693 10.152 3.912 15.338 3.806-9.316 6.075-21.762 6.891-32.25 1.073-14.819-8.216-20.12-26.541-11.838-40.929 6.121-10.635 17.949-16.13 29.687-14.965"/><g fill="#f4dc9f"><path d="m21.11 47.48c1.473-.401 2.996.445 3.404 1.888.41 1.441-.451 2.938-1.922 3.34s-2.994-.444-3.402-1.888c-.408-1.443.451-2.939 1.92-3.34"/><path d="m17.09 15c1.471-.401 2.994.443 3.402 1.888.408 1.442-.453 2.938-1.922 3.339-1.473.4-2.996-.443-3.402-1.886-.41-1.445.452-2.94 1.922-3.341"/><path d="m29.872 48.52c2.434-.663 4.953.734 5.63 3.122.676 2.39-.748 4.864-3.181 5.528-2.434.664-4.955-.734-5.633-3.123-.676-2.387.75-4.862 3.184-5.527"/><path d="m12.885 31.1c2.561-.698 5.213.771 5.926 3.285.711 2.514-.787 5.118-3.348 5.816s-5.213-.772-5.926-3.286c-.71-2.514.788-5.116 3.348-5.815"/><path d="m39.732 55.15c1.166-.317 2.375.352 2.699 1.498.324 1.145-.357 2.329-1.525 2.647-1.166.318-2.373-.351-2.699-1.495-.324-1.146.359-2.33 1.525-2.65"/><path d="m25.495 7.395c.912-.249 1.859.275 2.111 1.171.254.896-.279 1.825-1.193 2.074-.912.249-1.857-.277-2.111-1.172-.255-.897.281-1.824 1.193-2.073"/></g><path fill="#7f5629" d="m18.471 41.731c.487.403 1.038.621 1.62.766.574.153 1.168.229 1.764.284 1.194.095 2.404.095 3.614.041 2.426-.089 4.842-.345 7.32-.591-1.137.524-2.344.872-3.564 1.127-1.221.261-2.465.407-3.718.463-1.252.035-2.52-.008-3.767-.271-.623-.126-1.239-.316-1.821-.595-.57-.279-1.135-.676-1.448-1.224"/><path fill="#b79918" d="m26.563 46.811c1.065-.697 2.272-1.042 3.517-1.173.624-.047 1.263-.044 1.894.098.621.133 1.273.399 1.685.904-.621-.138-1.185-.139-1.761-.128-.574.024-1.149.062-1.729.122-1.167.09-2.337.242-3.606.177"/><path fill="#7f5629" d="m29.467 37.501c-.065-.345.085-.737.356-1 .272-.277.613-.402.915-.495.623-.143 1.192-.16 1.874.063-.472.543-1.08.752-1.616.903l-.741.176c-.229.069-.461.162-.788.354"/><path fill="#fff" d="m19.95 23.01c-2.721.742-4.744 3.624-3.986 6.294.756 2.669 4 4.113 6.723 3.371 2.721-.742 2.164-2.921 1.408-5.589-.759-2.671-1.427-4.819-4.145-4.076"/><path fill="#7f5629" d="m21.245 24.612c-1.699.463-3.135 2.313-2.662 3.981.473 1.668 2.674 2.524 4.373 2.06 1.699-.463 1.338-1.82.865-3.49-.473-1.669-.877-3.02-2.576-2.551"/><path fill="#b79918" d="m26.875 35.23c-.326 1.191-1.372 2.034-2.331 2.708-.99.686-2.048 1.223-3.083 1.766-1.041.527-2.075 1.044-3.02 1.657-.916.618-1.822 1.38-1.909 2.606-.179-.576-.062-1.246.236-1.804.302-.558.734-1.024 1.199-1.423.934-.804 1.994-1.377 3.037-1.927l3.138-1.542c1.01-.545 2.041-1.069 2.732-2.041"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.6 2.2c-5 2.5-9.4 6.4-12.4 11.5-1.6 2.7-2.6 5.6-3.2 8.5-.8 3.9-.1 9.5 6.8 7.6 3.7-1 7.3 5.7.4 7.6-2 .5 4.7 2.1-.4 4.9 0 0 5.5 1.3 2.1 3.9-1.5 1.2.2 3.1 1.1 3.9 1.4 1.2 3 2.2 4.7 3.2 4.9 2.7 10.2 3.9 15.3 3.8-9.3 6.1-21.8 6.9-32.3 1.1-14.8-8.4-20.1-26.7-11.8-41.1 6.1-10.6 18-16.1 29.7-14.9" fill="#ffe8a6"/><g fill="#f4dc9f"><path d="m21.1 47.5c1.5-.4 3 .4 3.4 1.9.4 1.4-.5 2.9-1.9 3.3s-3-.4-3.4-1.9c-.4-1.4.4-2.9 1.9-3.3"/><path d="m17.1 15c1.5-.4 3 .4 3.4 1.9.4 1.4-.5 2.9-1.9 3.3-1.5.4-3-.4-3.4-1.9-.4-1.4.4-2.9 1.9-3.3"/><path d="m29.9 48.5c2.4-.7 5 .7 5.6 3.1.7 2.4-.7 4.9-3.2 5.5-2.4.7-5-.7-5.6-3.1-.7-2.3.7-4.8 3.2-5.5"/><path d="m12.9 31.1c2.6-.7 5.2.8 5.9 3.3.7 2.5-.8 5.1-3.3 5.8s-5.2-.8-5.9-3.3c-.8-2.5.7-5.1 3.3-5.8"/><path d="m39.7 55.1c1.2-.3 2.4.4 2.7 1.5.3 1.1-.4 2.3-1.5 2.6-1.2.3-2.4-.4-2.7-1.5-.3-1 .4-2.2 1.5-2.6"/><path d="m25.5 7.4c.9-.2 1.9.3 2.1 1.2.3.9-.3 1.8-1.2 2.1-.9.2-1.9-.3-2.1-1.2-.3-.9.3-1.9 1.2-2.1"/></g><path d="m18.5 41.7c.5.4 1 .6 1.6.8.6.2 1.2.2 1.8.3 1.2.1 2.4.1 3.6 0 2.4-.1 4.8-.3 7.3-.6-1.1.5-2.3.9-3.6 1.1-1.2.3-2.5.4-3.7.5-1.3 0-2.5 0-3.8-.3-.6-.1-1.2-.3-1.8-.6-.6-.2-1.1-.6-1.4-1.2" fill="#7f5629"/><path d="m26.6 46.8c1.1-.7 2.3-1 3.5-1.2.6 0 1.3 0 1.9.1.6.1 1.3.4 1.7.9-.6-.1-1.2-.1-1.8-.1-.6 0-1.1.1-1.7.1-1.2.1-2.4.3-3.6.2" fill="#b79918"/><path d="m29.5 37.5c-.1-.3.1-.7.4-1 .3-.3.6-.4.9-.5.6-.1 1.2-.2 1.9.1-.5.5-1.1.8-1.6.9l-.7.2c-.4 0-.6.1-.9.3" fill="#7f5629"/><path d="m20 23c-2.7.7-4.7 3.6-4 6.3.8 2.7 4 4.1 6.7 3.4 2.7-.7 2.2-2.9 1.4-5.6-.8-2.7-1.4-4.8-4.1-4.1" fill="#fff"/><path d="m21.2 24.6c-1.7.5-3.1 2.3-2.7 4s2.7 2.5 4.4 2.1c1.7-.5 1.3-1.8.9-3.5-.5-1.7-.9-3.1-2.6-2.6" fill="#7f5629"/><path d="m26.9 35.2c-.3 1.2-1.4 2-2.3 2.7-1 .7-2 1.2-3.1 1.8-1 .5-2.1 1-3 1.7-.9.6-1.8 1.4-1.9 2.6-.2-.6-.1-1.2.2-1.8.3-.6.7-1 1.2-1.4.9-.8 2-1.4 3-1.9l3.1-1.5c1-.7 2.1-1.2 2.8-2.2" fill="#b79918"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f31d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f31d.svg
index e5399d7..90c6d50 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f31d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f31d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffe8a6" cx="32" cy="31.998" r="30"/><g fill="#f4dc9f"><circle cx="49.999" cy="35.25" r="7"/><circle cx="18.12" cy="39.05" r="6"/><circle cx="24.16" cy="50.05" r="9"/><circle cx="23.998" cy="17.246" r="4"/><circle cx="36.998" cy="18.246" r="4"/><circle cx="12.12" cy="25.92" r="4"/><circle cx="38.998" cy="9.246" r="2"/><circle cx="8.12" cy="39.04" r="2"/><circle cx="51.999" cy="50.04" r="2"/><circle cx="24.998" cy="29.921" r="3"/><circle cx="14.998" cy="15.746" r="2"/><circle cx="45.999" cy="52.621" r="4"/><path d="m24.16 10.748c0 2.758 2.237 4.998 5 4.998 2.761 0 5-2.24 5-4.998 0-2.764-2.24-5-5-5-2.763 0-5 2.238-5 5"/></g><g fill="#d3b475"><path d="m15.259 46.872c-.393-.71-.604-1.513-.629-2.349-.026-.824.172-1.771.854-2.475.703-.683 1.647-.882 2.473-.855.838.025 1.641.236 2.35.63-.805.012-1.574.034-2.301.149-.717.121-1.393.346-1.814.783-.438.422-.662 1.098-.784 1.814-.117.728-.138 1.497-.149 2.303"/><path d="m43.691 41.825c.711-.394 1.513-.603 2.35-.629.831-.021 1.755.157 2.488.868.652.674.873 1.641.841 2.457-.024.838-.236 1.641-.629 2.351-.013-.806-.035-1.575-.149-2.301-.129-.724-.33-1.378-.798-1.829-.394-.41-1.09-.654-1.801-.771-.725-.114-1.496-.136-2.302-.146"/></g><g fill="#7f5629"><ellipse cx="18.983" cy="26.574" rx="3.5" ry="4"/><ellipse cx="45.02" cy="26.414" rx="3.501" ry="4"/><path d="m46.683 42.768c-.296 1.434-1.229 2.709-2.292 3.756-1.079 1.042-2.378 1.87-3.699 2.508-2.738 1.293-5.715 1.872-8.691 1.88-2.971-.004-5.966-.591-8.677-1.874l-.518-.255-.464-.257c-.341-.192-.666-.387-.974-.596-.625-.417-1.216-.885-1.759-1.406-1.062-1.048-1.997-2.322-2.293-3.756.988 1.053 2.096 1.79 3.292 2.357.591.289 1.199.538 1.813.759l.913.303.499.149.456.124c2.517.662 5.117.94 7.713.953 2.591-.002 5.209-.289 7.701-.94 1.286-.339 2.504-.764 3.695-1.34 1.194-.57 2.302-1.309 3.285-2.365"/><path d="m35.396 39.2c-.854.828-2.134 1.268-3.404 1.223-1.263-.054-2.561-.466-3.6-1.373-.518-.446-.975-1.028-1.229-1.728-.264-.692-.323-1.473-.2-2.193.03-.158.079-.395.119-.515.064-.198.124-.358.191-.515.133-.314.281-.6.432-.874.302-.547.617-1.046.915-1.539 1.247-1.917 2.229-3.825 2.265-5.947.051-2.119-.832-4.283-1.946-6.357 1.751 1.552 3.225 3.691 3.505 6.281.16 1.279-.065 2.597-.467 3.796-.421 1.201-1.05 2.278-1.661 3.286-.626.98-1.308 1.952-1.5 2.757-.23.842.026 1.696.663 2.433 1.316 1.424 3.733 2.211 5.917 1.265"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffe8a6"/><g fill="#f4dc9f"><circle cx="50" cy="35.2" r="7"/><circle cx="18.1" cy="39" r="6"/><circle cx="24.2" cy="50" r="9"/><circle cx="24" cy="17.2" r="4"/><circle cx="37" cy="18.2" r="4"/><circle cx="12.1" cy="25.9" r="4"/><circle cx="39" cy="9.2" r="2"/><circle cx="8.1" cy="39" r="2"/><circle cx="52" cy="50" r="2"/><circle cx="25" cy="29.9" r="3"/><circle cx="15" cy="15.7" r="2"/><circle cx="46" cy="52.6" r="4"/><path d="m24.2 10.8c0 2.8 2.2 5 5 5 2.8 0 5-2.2 5-5 0-2.8-2.2-5-5-5-2.8-.1-5 2.2-5 5"/></g><g fill="#827717"><path d="m37 39c-3.5 4.9-11.3 4.8-9.8-3.7.6-3.3 2.2-13 2.2-13s0 6.2 0 10.6c0 7.6 2.1 7.3 7.6 6.1"/><path d="m42.8 43.9c-7 4.8-14.7 4.8-21.6 0-.8-.6-1.6.4-1 1.4 2.1 3.5 6.4 6.6 11.8 6.6s9.7-3.1 11.8-6.6c.6-1-.2-2-1-1.4"/><path d="m38.4 24.7c3.7 7 11.2 7 14.9 0 .2-.4-.3-.5-.9-.9-3.7 2.9-9.8 2.7-13.1 0-.6.4-1.1.6-.9.9"/><path d="m10.7 24.7c3.7 7 11.2 7 14.9 0 .2-.4-.3-.5-.9-.9-3.7 2.9-9.8 2.7-13.1 0-.6.4-1.1.6-.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f31e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f31e.svg
index 00cb333..f86c173 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f31e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f31e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe62e"><path d="m20.519 59.717l7.03-7.2c-2.498-.54-4.824-1.529-6.904-2.87l-.123 10.07"/><path d="m43.482 4.284l-7.03 7.199c2.498.541 4.824 1.529 6.904 2.871l.123-10.07"/><path d="m4.283 43.479l10.07-.122c-1.341-2.08-2.33-4.406-2.869-6.903l-7.201 7.02"/><path d="m59.717 20.52l-10.07.123c1.342 2.08 2.33 4.407 2.871 6.904l7.199-7.03"/><path d="m4.284 20.519l7.2 7.03c.54-2.498 1.529-4.824 2.87-6.904l-10.07-.123"/><path d="m59.717 43.48l-7.201-7.03c-.539 2.497-1.527 4.824-2.869 6.904l10.07.122"/><path d="m20.52 4.283l.122 10.07c2.08-1.342 4.407-2.33 6.904-2.87l-7.03-7.2"/><path d="m43.48 59.716l-.121-10.07c-2.08 1.341-4.408 2.33-6.904 2.87l7.02 7.199"/></g><g fill="#ffce31"><path d="m14.751 43.962l-3.965 9.251 9.252-3.965c-2.062-1.433-3.853-3.225-5.287-5.286"/><path d="m49.25 20.04l3.965-9.252-9.252 3.965c2.062 1.434 3.853 3.225 5.287 5.287"/><path d="m11.351 28.26l-9.351 3.74 9.352 3.74c-.22-1.215-.352-2.461-.352-3.739s.132-2.524.351-3.741"/><path d="m52.648 35.741l9.352-3.741-9.352-3.741c.219 1.217.352 2.463.352 3.741 0 1.279-.133 2.525-.352 3.741"/><path d="m20.04 14.751l-9.252-3.965 3.965 9.252c1.433-2.062 3.224-3.853 5.287-5.287"/><path d="m43.963 49.25l9.25 3.965-3.965-9.251c-1.432 2.062-3.223 3.853-5.285 5.286"/><path d="m35.742 11.352l-3.742-9.352-3.741 9.352c1.217-.219 2.462-.352 3.741-.352 1.279 0 2.525.133 3.742.352"/><path d="m28.26 52.648l3.741 9.352 3.742-9.352c-1.217.219-2.463.352-3.742.352-1.279 0-2.524-.133-3.741-.352"/><circle cx="32" cy="32" r="19"/></g><g fill="#664e27"><path d="m22.21 37.839c1.649.971 3.243 1.559 4.875 1.949 1.627.391 3.268.557 4.913.561 1.647-.007 3.288-.174 4.911-.564 1.633-.391 3.227-.978 4.879-1.945-.707 1.812-2.277 3.235-4.03 4.147-1.77.919-3.775 1.361-5.76 1.359-1.986-.002-3.99-.444-5.757-1.364-1.752-.911-3.323-2.334-4.03-4.143"/><circle cx="24.717" cy="28.575" r="2.85"/><circle cx="39.28" cy="28.575" r="2.85"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffca28"><path d="m20.5 59.7l7-7.2c-2.5-.5-4.8-1.5-6.9-2.9l-.1 10.1"/><path d="m43.5 4.3l-7 7.2c2.5.5 4.8 1.5 6.9 2.9l.1-10.1"/><path d="m11.5 36.5l-7.2 7 10.1-.1c-1.4-2.1-2.4-4.4-2.9-6.9"/><path d="m52.5 27.5l7.2-7-10.1.1c1.4 2.1 2.4 4.4 2.9 6.9"/><path d="m14.4 20.6l-10.1-.1 7.2 7c.5-2.5 1.5-4.8 2.9-6.9"/><path d="m49.6 43.4l10.1.1-7.2-7c-.5 2.5-1.5 4.8-2.9 6.9"/><path d="m27.5 11.5l-7-7.2.1 10.1c2.1-1.4 4.4-2.4 6.9-2.9"/><path d="m36.5 52.5l7 7.2-.1-10.1c-2.1 1.4-4.4 2.4-6.9 2.9"/><path d="m14.8 44l-4 9.3 9.3-4c-2.1-1.5-3.9-3.3-5.3-5.3"/><path d="m49.2 20l4-9.3-9.3 4c2.1 1.5 3.9 3.3 5.3 5.3"/><path d="m11 32c0-1.3.1-2.5.4-3.7l-9.4 3.7 9.4 3.7c-.3-1.2-.4-2.4-.4-3.7"/><path d="m62 32l-9.4-3.7c.2 1.2.4 2.5.4 3.7 0 1.3-.1 2.5-.4 3.7l9.4-3.7"/><path d="m20 14.8l-9.3-4 4 9.3c1.5-2.1 3.3-3.9 5.3-5.3"/><path d="m44 49.2l9.3 4-4-9.3c-1.5 2.1-3.3 3.9-5.3 5.3"/><path d="m35.7 11.4l-3.7-9.4-3.7 9.4c1.2-.2 2.5-.4 3.7-.4 1.3 0 2.5.1 3.7.4"/><path d="m28.3 52.6l3.7 9.4 3.7-9.4c-1.2.3-2.4.4-3.7.4-1.3 0-2.5-.1-3.7-.4"/><path d="m32 13c-10.5 0-19 8.5-19 19 0 10.5 8.5 19 19 19 10.5 0 19-8.5 19-19 0-10.5-8.5-19-19-19m-11.6 17.7c1.2-3.2 3-4.9 4.7-4.9s3.5 1.6 4.7 4.9c.1.3-.5.9-.8.6-1.1-1.2-2.5-1.7-3.9-1.7s-2.8.5-3.9 1.7c-.4.4-1-.2-.8-.6m20.3 7.5c-1.6 2.6-4.7 4.8-8.7 4.8-4 0-7.2-2.3-8.7-4.8-.4-.7.1-1.4.8-1 5.1 3.6 10.8 3.6 15.9 0 .6-.4 1.1.4.7 1m2.2-6.9c-1.1-1.2-2.5-1.7-3.9-1.7-1.4 0-2.8.5-3.9 1.7-.3.3-.9-.3-.8-.6 1.2-3.2 3-4.9 4.7-4.9 1.8 0 3.5 1.6 4.7 4.9.1.4-.5 1-.8.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f31f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f31f.svg
index 77b4ec1..1356525 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f31f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f31f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M32 2 39.08 23.01 62 23.01 43.46 36 50.54 57.01 32 44.02 13.459 57.01 20.541 36 2 23.01 24.919 23.01z"/><path fill="#fff" d="m32 13.413l4.25 12.987h13.75l-11.123 8.03 4.243 12.983-11.12-8.02-11.125 8.02 4.245-12.983-11.12-8.03h13.751z"/><g fill="#ffdf85"><path d="m46.23 20.344l3.93-11.487-10.439 7.213 1.459 4.274z"/><path d="m27.911 50.03l4.088 11.97 4.091-11.97-4.091-2.82z"/><path d="m50.68 34.31l-3.825 2.638 1.625 4.753h12.9z"/><path d="m24.277 16.07l-10.437-7.213 3.925 11.487h5.05z"/><path d="m13.321 34.31l-10.705 7.391h12.904l1.62-4.753z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,23H39.1L32,2l-7.1,21H2l18.5,13l-7.1,21L32,44l18.5,13l-7.1-21L62,23z" fill="#ffce31"/><g fill="#ffdf85"><path d="m46.2 20.3l4-11.4-10.5 7.2 1.5 4.2z"/><path d="m27.9 50l4.1 12 4.1-12-4.1-2.8z"/><path d="m50.7 34.3l-3.8 2.6 1.6 4.8h12.9z"/><path d="m24.3 16.1l-10.5-7.2 4 11.4h5z"/><path d="m13.3 34.3l-10.7 7.4h12.9l1.6-4.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f320.svg b/build/js/jsxc/lib/emojione/assets/svg/1f320.svg
index c11e100..c79d56a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f320.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f320.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#f5a300" d="M7 30.982 21.05 41.25 14.204 62 32.14 49.18 50.07 62 57 2z"/><path fill="#fff" d="m38.869 39.859l10.888-7.779h-13.457l-4.16-12.6-4.16 12.6h-13.459l10.889 7.779-4.159 12.601 10.889-7.788 10.89 7.788z" id="0"/><use xlink:href="#0"/><g fill="#ffce31"><path d="m38.99 28.432h3.5l14.51-26.432-19.244 22.693z"/><path d="m57 2l-22.441 13.01 1.831 5.549z"/><path d="M53.891 28.432 57 2 47.19 28.432z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#f5a300" d="M7 31 21.1 41.3 14.2 62 32.1 49.2 50.1 62 57 2z"/><path fill="#fff" d="m38.9 39.9l10.9-7.8h-13.5l-4.2-12.6-4.1 12.6h-13.5l10.9 7.8-4.1 12.6 10.8-7.8 10.9 7.8z" id="0"/><use xlink:href="#0"/><g fill="#ffce31"><path d="m39 28.4h3.5l14.5-26.4-19.2 22.7z"/><path d="m57 2l-22.4 13 1.8 5.6z"/><path d="M53.9 28.4 57 2 47.2 28.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f321.svg b/build/js/jsxc/lib/emojione/assets/svg/1f321.svg
index 1604088..b641912 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f321.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f321.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e5e5e5"><circle cx="32.377" cy="54.4" r="9.603"/><path d="m22.774 8.787l3.602 42.01h12l3.602-42.01c-.001-11.716-19.21-11.716-19.21 0"/></g><g fill="#f5f5f5"><path d="m26.616 8.542l2.16 42.26h7.201l2.16-42.26c.001-6.791-11.521-6.791-11.521 0"/><circle cx="32.377" cy="54.4" r="7.202"/></g><g fill="#ed4c5c"><path d="m28.536 20.667l1.44 29.373h4.801l1.443-29.373z"/><circle cx="32.377" cy="54.4" r="6"/></g><ellipse fill="#a5203c" cx="32.377" cy="20.667" rx="3.841" ry="1.286"/><g fill="#51575b"><path d="m31.18 27.916h-5.206l-.08-1.585h5.206z"/><path d="m31.21 32.417h-4.99l-.08-1.584h5z"/><path d="m31.22 36.918h-4.793l-.074-1.588h4.787z"/><path d="m31.25 41.42h-4.323l-.069-1.586h4.322z"/><path d="m31.29 45.92h-4l-.06-1.58h4z"/></g><g fill="#42ade2"><path d="m18.994 18.588c0 0-1.77.529-3.96 8.871-1.45 5.521-8.854 3.25-7.209-2.709 1.733-6.275 11.169-6.162 11.169-6.162"/><path d="m19.217 30.524c0 0-.59 1.038 2.118 5.916 1.791 3.227-2.685 5.479-4.582 1.957-1.996-3.707 2.464-7.873 2.464-7.873"/><path d="m19.468 7.684c0 0-1.186.135-3.534 5.196-1.551 3.349-6.01 1.058-4.28-2.548 1.82-3.797 7.814-2.648 7.814-2.648"/><path d="m44.19 24.383c0 0 1.357 1.252-.336 9.708-1.121 5.597 6.529 6.807 7.666.73 1.198-6.398-7.33-10.438-7.33-10.438"/><path d="m44.619 12.06c0 0 1.624-.009 5.61 6.45 2.633 4.273 8.283.462 5.371-4.13-3.069-4.837-10.981-2.32-10.981-2.32"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.9 46.2l3.1-36c0-11-18-11-18 0l3.1 36c-1.9 1.7-3.1 4.1-3.1 6.8 0 5 4 9 9 9 5 0 9-4 9-9 0-2.7-1.2-5.1-3.1-6.8m-5.9 13.6c-3.7 0-6.7-3-6.7-6.8 0-2.4 1.3-4.6 3.3-5.8l-2-37.2c0-6.4 10.8-6.4 10.8 0l-1.9 37.2c1.9 1.2 3.3 3.3 3.3 5.8 0 3.7-3.1 6.8-6.8 6.8" opacity=".8" fill="#a1b8c7"/><g fill="#ed4c5c"><path d="m28.4 21.4l1.4 27.5h4.4l1.4-27.5z"/><path d="m37.6 53c0 3.1-2.5 5.6-5.6 5.6-3.1 0-5.6-2.5-5.6-5.6 0-3.1 2.5-5.6 5.6-5.6 3.1 0 5.6 2.5 5.6 5.6"/></g><ellipse cx="32" cy="21.4" rx="3.6" ry="1.2" fill="#a5203c"/><g fill="#51575b"><path d="m30.9 28.2h-4.9l-.1-1.5h4.9z"/><path d="m30.9 32.4h-4.7v-1.5h4.6z"/><path d="m30.9 36.6h-4.5v-1.5h4.4z"/><path d="m30.9 40.8h-4l-.1-1.5h4.1z"/><path d="m31 45h-3.8v-1.4h3.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f324.svg b/build/js/jsxc/lib/emojione/assets/svg/1f324.svg
index 152aa5f..0bfacd2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f324.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f324.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m16.629 38.53l-5.949 13.536 13.877-5.801c-3.094-2.097-5.78-4.718-7.928-7.735"/><path d="m47.37 24.01l5.947-13.539-13.875 5.802c3.094 2.098 5.78 4.719 7.928 7.737"/><path d="m16.03 25.793l-14.03 5.473 14.03 5.475c-.328-1.779-.527-3.601-.527-5.471 0-1.874.199-3.696.527-5.477"/><path d="m47.973 36.743l14.03-5.473-14.03-5.477c.328 1.781.527 3.604.527 5.477 0 1.871-.199 3.693-.527 5.473"/><path d="m24.559 16.27l-13.877-5.801 5.947 13.537c2.15-3.02 4.836-5.638 7.93-7.736"/><path d="m39.443 47.729l13.877 5.802-5.947-13.537c-2.15 3.02-4.836 5.638-7.93 7.735"/><path d="m37.611 15.685l-5.609-13.685-5.611 13.685c1.822-.319 3.691-.515 5.609-.515 1.92 0 3.789.195 5.611.515"/><path d="m26.391 48.31l5.611 13.685 5.609-13.685c-1.822.32-3.691.515-5.611.515-1.918 0-3.787-.195-5.609-.515"/></g><path fill="#fff" d="m29.997 45.765c-.712 0-1.416-.117-2.093-.347-2.733-.922-4.57-3.517-4.57-6.456 0-1.963.833-3.829 2.285-5.123.375-.336.782-.625 1.218-.864l-.021-.002.442-1.573c1.103-3.929 4.667-6.672 8.666-6.672.398 0 .807.032 1.287.103.368.054.729.131 1.083.228l.177-.325c1.616-2.973 4.683-4.819 8.01-4.819 5.05 0 9.149 4.191 9.149 9.345 0 .252-.017.496-.035.743l-.016.183c.39.151.77.335 1.136.552 2.439 1.436 3.955 4.109 3.955 6.975 0 3.774-2.515 7-6.116 7.844-.588.14-1.184.211-1.77.211h-22.783z"/><path fill="#75d6ff" d="m46.48 21.274c4.316 0 7.815 3.575 7.815 7.983 0 .215-.014.423-.03.633-1.807.141-3.449.877-4.739 2.02.96-.563 2.07-.891 3.258-.891.439 0 .867.046 1.282.13.71.144 1.375.406 1.981.764 1.964 1.156 3.289 3.315 3.289 5.797 0 3.177-2.171 5.836-5.081 6.518-.474.112-.964.177-1.472.177h-22.783-.001c-.584 0-1.145-.1-1.671-.277-2.124-.717-3.658-2.758-3.658-5.165 0-1.638.71-3.102 1.829-4.099.507-.453 1.097-.807 1.745-1.038.55-.195 1.139-.309 1.756-.309 1.718 0 3.242.835 4.217 2.124h.048c-1.132-2.127-3.247-3.627-5.723-3.867.921-3.279 3.877-5.687 7.385-5.687.374 0 .738.037 1.099.091.712.104 1.393.304 2.027.593 2.364 1.077 4.092 3.335 4.475 6.04 0-.015.002-.032.002-.046 0-3.08-1.547-5.79-3.89-7.371 1.334-2.454 3.895-4.118 6.84-4.118m0-2.721c-3.597 0-6.932 1.888-8.85 4.966-.074-.012-.148-.023-.223-.035-.55-.079-1.019-.116-1.48-.116-4.591 0-8.682 3.147-9.948 7.656l-.302 1.073c-.327.215-.64.455-.936.719-1.739 1.55-2.738 3.79-2.738 6.146 0 3.528 2.206 6.642 5.488 7.748.808.275 1.653.415 2.508.415h22.784c.687 0 1.385-.083 2.075-.247 4.205-.985 7.145-4.756 7.145-9.168 0-3.352-1.771-6.476-4.623-8.153-.139-.081-.277-.159-.418-.232.001-.021.001-.044.001-.066 0-5.904-4.703-10.706-10.483-10.706z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><circle cx="32" cy="32" r="14"/><path d="m37.6 15.7l-5.6-13.7-5.6 13.7c1.8-.3 3.7-.5 5.6-.5 1.9 0 3.8.2 5.6.5"/><path d="m26.4 48.3l5.6 13.7 5.6-13.7c-1.8.3-3.7.5-5.6.5-1.9 0-3.8-.2-5.6-.5"/><path d="m48.3 37.6l13.7-5.6-13.7-5.6c.3 1.8.5 3.7.5 5.6 0 1.9-.2 3.8-.5 5.6"/><path d="m15.7 26.4l-13.7 5.6 13.7 5.6c-.3-1.8-.5-3.7-.5-5.6 0-1.9.2-3.8.5-5.6"/><path d="m47.5 24.4l5.7-13.6-13.6 5.7c1.5 1.1 3 2.2 4.3 3.6 1.4 1.4 2.5 2.8 3.6 4.3"/><path d="m16.5 39.6l-5.7 13.6 13.6-5.7c-1.5-1.1-3-2.2-4.3-3.6-1.4-1.4-2.5-2.8-3.6-4.3"/><path d="m39.6 47.5l13.6 5.7-5.7-13.6c-1.1 1.5-2.2 3-3.6 4.3-1.4 1.4-2.8 2.5-4.3 3.6"/><path d="m24.4 16.5l-13.6-5.7 5.7 13.6c1.1-1.5 2.2-3 3.6-4.3 1.4-1.4 2.8-2.5 4.3-3.6"/></g><path d="m30 45.8c-.7 0-1.4-.1-2.1-.3-2.7-.9-4.6-3.5-4.6-6.5 0-2 .8-3.8 2.3-5.1.4-.3.8-.6 1.2-.9l.4-1.6c1.1-3.9 4.7-6.7 8.7-6.7.4 0 .8 0 1.3.1.4.1.7.1 1.1.2l.2-.3c1.6-3 4.7-4.8 8-4.8 5 0 9.1 4.2 9.1 9.3 0 .3 0 .5 0 .7v.2c.4.2.8.3 1.1.6 2.4 1.4 4 4.1 4 7 0 3.8-2.5 7-6.1 7.8-.6.1-1.2.2-1.8.2l-22.8.1" fill="#fff"/><path d="m46.5 21.3c4.3 0 7.8 3.6 7.8 8 0 .2 0 .4 0 .6-1.8.1-3.4.9-4.7 2 1-.6 2.1-.9 3.3-.9.4 0 .9 0 1.3.1.7.1 1.4.4 2 .8 2 1.2 3.3 3.3 3.3 5.8 0 3.2-2.2 5.8-5.1 6.5-.5.1-1 .2-1.5.2h-22.9c-.6 0-1.1-.1-1.7-.3-2.1-.7-3.7-2.8-3.7-5.2 0-1.6.7-3.1 1.8-4.1.5-.5 1.1-.8 1.7-1 .5-.2 1.1-.3 1.8-.3 1.7 0 3.2.8 4.2 2.1-1.1-2.1-3.2-3.6-5.7-3.9.9-3.3 3.9-5.7 7.4-5.7.4 0 .7 0 1.1.1.7.1 1.4.3 2 .6 2.4 1.1 4.1 3.3 4.5 6 0-3.1-1.5-5.8-3.9-7.4 1.5-2.4 4-4 7-4m0-2.7c-3.6 0-6.9 1.9-8.9 5-.1 0-.1 0-.2 0-.5-.1-1-.1-1.5-.1-4.6 0-8.7 3.1-9.9 7.7l-.3 1.1c-.3.2-.6.5-.9.7-1.8 1.4-2.8 3.6-2.8 6 0 3.5 2.2 6.6 5.5 7.7.8.3 1.7.4 2.5.4h22.8c.7 0 1.4-.1 2.1-.2 4.2-1 7.1-4.8 7.1-9.2 0-3.4-1.8-6.5-4.6-8.2-.1-.1-.3-.2-.4-.2 0 0 0 0 0-.1 0-5.8-4.7-10.6-10.5-10.6z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f325.svg b/build/js/jsxc/lib/emojione/assets/svg/1f325.svg
index da16639..41fc056 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f325.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f325.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m11.751 28.354l-3.966 9.02 9.252-3.867c-2.062-1.399-3.853-3.147-5.286-5.157"/><path d="m32.25 18.672l3.964-9.03-9.25 3.868c2.062 1.399 3.853 3.146 5.286 5.158"/><path d="m11.351 19.862l-9.351 3.649 9.352 3.649c-.22-1.185-.352-2.4-.352-3.647 0-1.248.132-2.463.351-3.651"/><path d="m32.648 27.16l9.351-3.649-9.351-3.65c.219 1.187.352 2.402.352 3.65s-.133 2.463-.352 3.649"/><path d="m17.04 13.513l-9.252-3.867 3.965 9.02c1.433-2.01 3.224-3.759 5.287-5.158"/><path d="m26.961 34.486l9.251 3.868-3.964-9.02c-1.433 2.01-3.224 3.759-5.287 5.157"/><path d="m25.741 13.12l-3.741-9.123-3.741 9.123c1.216-.213 2.462-.343 3.74-.343 1.28 0 2.526.13 3.742.343"/><path d="m18.259 34.877l3.741 9.123 3.74-9.123c-1.215.213-2.461.343-3.74.343-1.279 0-2.525-.13-3.741-.343"/></g><path fill="#fff" d="m17.195 58.11c-.996 0-1.982-.161-2.93-.48-3.826-1.279-6.398-4.88-6.398-8.958 0-2.725 1.166-5.314 3.199-7.109.525-.466 1.096-.867 1.705-1.2l-.03-.002.619-2.184c1.544-5.451 6.534-9.258 12.133-9.258.558 0 1.13.046 1.803.144.515.074 1.021.181 1.516.315l.247-.452c2.263-4.124 6.556-6.687 11.208-6.687 7.06 0 12.81 5.816 12.81 12.967 0 .349-.022.688-.049 1.03l-.021.254c.545.21 1.076.466 1.59.767 3.415 1.992 5.537 5.701 5.537 9.677 0 5.238-3.521 9.714-8.563 10.885-.823.193-1.658.292-2.478.292h-31.898"/><path fill="#75d6ff" d="m40.27 24.13c6.04 0 10.942 4.961 10.942 11.08 0 .298-.02.587-.043.878-2.529.195-4.828 1.216-6.635 2.802 1.345-.781 2.898-1.235 4.561-1.235.615 0 1.215.063 1.796.181.993.199 1.925.564 2.774 1.06 2.749 1.604 4.604 4.601 4.604 8.04 0 4.408-3.04 8.098-7.114 9.05-.662.155-1.35.245-2.06.245h-31.896-.001c-.817 0-1.603-.138-2.339-.386-2.974-.994-5.122-3.826-5.122-7.166 0-2.273.994-4.305 2.561-5.688.71-.63 1.536-1.119 2.444-1.44.77-.271 1.594-.428 2.457-.428 2.405 0 4.539 1.157 5.904 2.947h.066c-1.584-2.951-4.545-5.03-8.01-5.366 1.29-4.551 5.428-7.89 10.339-7.89.524 0 1.034.051 1.538.125.997.145 1.949.422 2.838.822 3.31 1.496 5.728 4.628 6.265 8.38 0-.021.002-.045.002-.064 0-4.274-2.166-8.03-5.445-10.228 1.868-3.405 5.454-5.714 9.576-5.714m0-3.776c-5.03 0-9.703 2.618-12.388 6.89-.104-.016-.208-.031-.312-.048-.77-.11-1.426-.162-2.073-.162-6.427 0-12.154 4.368-13.927 10.624l-.423 1.49c-.458.298-.896.632-1.31.998-2.435 2.15-3.833 5.258-3.833 8.528 0 4.896 3.088 9.215 7.684 10.751 1.13.382 2.314.575 3.51.575h31.897c.962 0 1.939-.114 2.906-.342 5.885-1.367 10-6.601 10-12.723 0-4.649-2.48-8.984-6.473-11.313-.193-.112-.388-.22-.585-.321.001-.031.001-.062.001-.093 0-8.189-6.584-14.854-14.676-14.854z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><circle cx="22" cy="24" r="9.3"/><path d="m25.7 13.1l-3.7-9.1-3.7 9.1c1.2-.2 2.5-.3 3.7-.3 1.3 0 2.5.1 3.7.3"/><path d="m18.3 34.9l3.7 9.1 3.7-9.1c-1.2.2-2.5.3-3.7.3-1.3 0-2.5-.1-3.7-.3"/><path d="m32.9 27.7l9.1-3.7-9.1-3.7c.2 1.2.3 2.5.3 3.7 0 1.3-.1 2.5-.3 3.7"/><path d="m11.1 20.3l-9.1 3.7 9.1 3.7c-.2-1.2-.3-2.5-.3-3.7 0-1.3.1-2.5.3-3.7"/><path d="m32.3 19l3.8-9.1-9.1 3.8c1 .7 2 1.5 2.9 2.4.9.9 1.7 1.8 2.4 2.9"/><path d="m11.7 29l-3.8 9.1 9.1-3.8c-1-.7-2-1.5-2.9-2.4-.9-.9-1.7-1.8-2.4-2.9"/><path d="m27 34.3l9.1 3.8-3.8-9.1c-.7 1-1.5 2-2.4 2.9-.9.9-1.8 1.7-2.9 2.4"/><path d="m17 13.7l-9.1-3.8 3.8 9.1c.7-1 1.5-2 2.4-2.9.9-.9 1.8-1.7 2.9-2.4"/></g><path d="m17.2 58.1c-1 0-2-.2-2.9-.5-3.8-1.3-6.4-4.9-6.4-9 0-2.7 1.2-5.3 3.2-7.1.5-.5 1.1-.9 1.7-1.2l.6-2.2c1.5-5.5 6.5-9.3 12.1-9.3.6 0 1.1 0 1.8.1.5.1 1 .2 1.5.3l.2-.5c2.3-4.1 6.6-6.7 11.2-6.7 7.1 0 12.8 5.8 12.8 13 0 .3 0 .7 0 1v.3c.5.2 1.1.5 1.6.8 3.4 2 5.5 5.7 5.5 9.7 0 5.2-3.5 9.7-8.6 10.9-.8.2-1.7.3-2.5.3l-31.8.1" fill="#fff"/><path d="m40.3 24.1c6 0 10.9 5 10.9 11.1 0 .3 0 .6 0 .9-2.5.2-4.8 1.2-6.6 2.8 1.3-.8 2.9-1.2 4.6-1.2.6 0 1.2.1 1.8.2 1 .2 1.9.6 2.8 1.1 2.7 1.6 4.6 4.6 4.6 8 0 4.4-3 8.1-7.1 9-.7.2-1.3.2-2.1.2h-32c-.8 0-1.6-.1-2.3-.4-3-1-5.1-3.8-5.1-7.2 0-2.3 1-4.3 2.6-5.7.7-.6 1.5-1.1 2.4-1.4.8-.3 1.6-.4 2.5-.4 2.4 0 4.5 1.2 5.9 2.9h.1c-1.6-3-4.5-5-8-5.4 1.3-4.6 5.4-7.9 10.3-7.9.5 0 1 .1 1.5.1 1 .1 1.9.4 2.8.8 3.3 1.5 5.7 4.6 6.3 8.4 0 0 0 0 0-.1 0-4.3-2.2-8-5.4-10.2 1.8-3.3 5.3-5.6 9.5-5.6m0-3.7c-5 0-9.7 2.6-12.4 6.9-.1 0-.2 0-.3 0-.8-.1-1.4-.2-2.1-.2-6.4 0-12.2 4.4-13.9 10.6l-.4 1.5c-.5.3-.9.6-1.3 1-2.5 2.1-3.9 5.2-3.9 8.5 0 4.9 3.1 9.2 7.7 10.8 1.1.4 2.3.6 3.5.6h31.9c1 0 1.9-.1 2.9-.3 5.9-1.4 10-6.6 10-12.7 0-4.6-2.5-9-6.5-11.3-.2-.1-.4-.2-.6-.3 0 0 0-.1 0-.1 0-8.4-6.5-15-14.6-15z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f326.svg b/build/js/jsxc/lib/emojione/assets/svg/1f326.svg
index d3f6d62..8f83b29 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f326.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f326.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m10.777 23.918l-3.569 8.122 8.327-3.48c-1.857-1.259-3.469-2.832-4.758-4.642"/><path d="m29.22 15.205l3.568-8.124-8.325 3.481c1.856 1.26 3.468 2.833 4.757 4.643"/><path d="m10.417 16.276l-8.417 3.284 8.417 3.284c-.197-1.066-.316-2.16-.316-3.282-.001-1.124.119-2.217.316-3.286"/><path d="m29.583 22.846l8.417-3.284-8.417-3.285c.197 1.068.316 2.162.316 3.285s-.119 2.216-.316 3.284"/><path d="m15.535 10.562l-8.327-3.48 3.568 8.123c1.291-1.811 2.903-3.384 4.759-4.643"/><path d="m24.466 29.438l8.326 3.481-3.568-8.123c-1.289 1.81-2.903 3.383-4.758 4.642"/><path d="m23.367 10.211l-3.366-8.211-3.367 8.211c1.094-.191 2.216-.309 3.366-.309 1.151 0 2.272.118 3.367.309"/><path d="m16.634 29.789l3.367 8.211 3.366-8.211c-1.095.191-2.216.309-3.367.309-1.15 0-2.272-.118-3.366-.309"/></g><path fill="#fff" d="m23.995 33.471c-.844 0-1.681-.136-2.484-.401-3.246-1.065-5.428-4.066-5.428-7.467 0-2.27.99-4.428 2.715-5.925.445-.388.93-.723 1.445-1l-.025-.001.525-1.819c1.309-4.545 5.543-7.717 10.291-7.717.473 0 .959.037 1.529.119.436.062.865.151 1.285.263l.21-.377c1.92-3.438 5.563-5.572 9.507-5.572 5.991 0 10.865 4.848 10.865 10.807 0 .291-.019.575-.041.859l-.018.212c.462.175.912.387 1.348.639 2.896 1.66 4.696 4.751 4.696 8.06 0 4.366-2.987 8.096-7.263 9.07-.698.161-1.407.244-2.102.244h-27.06"/><path fill="#b6c1d1" d="m43.565 5.147c5.126 0 9.281 4.134 9.281 9.232 0 .248-.017.489-.035.732-2.146.162-4.096 1.014-5.629 2.336 1.141-.651 2.458-1.03 3.867-1.03.523 0 1.031.053 1.525.149.842.167 1.633.47 2.352.884 2.333 1.338 3.906 3.835 3.906 6.703 0 3.675-2.578 6.75-6.03 7.538-.563.132-1.146.205-1.747.205 0 0 0 0-.002 0h-27.05c-.694 0-1.359-.114-1.984-.322-2.521-.827-4.344-3.188-4.344-5.973 0-1.894.843-3.587 2.171-4.739.603-.524 1.303-.933 2.073-1.2.653-.226 1.353-.357 2.084-.357 2.041 0 3.851.966 5.01 2.457l.057-.001c-1.345-2.461-3.857-4.195-6.797-4.473 1.095-3.792 4.604-6.576 8.77-6.576.445 0 .879.043 1.305.104.846.121 1.653.353 2.407.686 2.808 1.247 4.858 3.857 5.314 6.984 0-.018.002-.037.002-.054 0-3.563-1.837-6.696-4.618-8.524 1.582-2.837 4.624-4.761 8.12-4.761m0-3.147c-4.27 0-8.23 2.183-10.508 5.742-.088-.014-.177-.026-.266-.041-.651-.092-1.208-.134-1.758-.134-5.451 0-10.309 3.641-11.813 8.854l-.358 1.242c-.388.248-.759.526-1.11.832-2.066 1.791-3.253 4.383-3.253 7.106 0 4.08 2.62 7.682 6.518 8.962.958.317 1.962.479 2.978.479h27.05c.817 0 1.646-.095 2.466-.285 4.993-1.14 8.483-5.501 8.483-10.604 0-3.875-2.104-7.488-5.489-9.43-.163-.094-.329-.182-.496-.267 0-.026 0-.052 0-.078 0-6.823-5.585-12.378-12.449-12.378z"/><g fill="#42ade2"><path d="m28.765 46.03c-.572 1.569-.086 3.189 1.086 3.616s2.586-.502 3.156-2.071c.674-1.85.719-4.382.262-7.316-2.202 1.924-3.832 3.922-4.504 5.771"/><path d="m41.862 47.575c.672-1.85.719-4.382.262-7.316-2.203 1.924-3.832 3.922-4.506 5.771-.57 1.569-.086 3.189 1.086 3.616s2.586-.501 3.158-2.071"/><path d="m50.978 40.26c-2.202 1.924-3.832 3.922-4.505 5.771-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.849.719-4.382.262-7.316"/><path d="m19.91 46.03c-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.85.719-4.382.262-7.316-2.202 1.924-3.832 3.922-4.505 5.771"/><path d="m21.814 58.28c-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.85.719-4.382.262-7.316-2.202 1.924-3.832 3.922-4.505 5.771"/><path d="m34.912 59.825c.673-1.85.719-4.382.262-7.316-2.202 1.924-3.832 3.922-4.505 5.771-.571 1.569-.086 3.189 1.086 3.616s2.586-.501 3.157-2.071"/><path d="m44.03 52.51c-2.203 1.924-3.832 3.922-4.506 5.771-.57 1.569-.086 3.189 1.086 3.616s2.586-.502 3.158-2.071c.672-1.849.719-4.382.262-7.316"/><path d="m12.96 58.28c-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.85.719-4.382.262-7.316-2.202 1.924-3.832 3.922-4.505 5.771"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><circle cx="20" cy="20" r="8.4"/><path d="m23.4 10.2l-3.4-8.2-3.4 8.2c1.1-.2 2.2-.3 3.4-.3 1.2 0 2.3.1 3.4.3"/><path d="m16.6 29.8l3.4 8.2 3.4-8.2c-1.1.2-2.2.3-3.4.3-1.2 0-2.3-.1-3.4-.3"/><path d="m29.8 23.4l8.2-3.4-8.2-3.4c.2 1.1.3 2.2.3 3.4 0 1.2-.1 2.3-.3 3.4"/><path d="m10.2 16.6l-8.2 3.4 8.2 3.4c-.2-1.1-.3-2.2-.3-3.4 0-1.2.1-2.3.3-3.4"/><path d="m29.3 15.5l3.4-8.2-8.2 3.4c.9.6 1.8 1.3 2.6 2.2.9.8 1.6 1.7 2.2 2.6"/><path d="m10.7 24.5l-3.4 8.2 8.2-3.4c-.9-.6-1.8-1.3-2.6-2.2-.9-.8-1.6-1.6-2.2-2.6"/><path d="m24.5 29.3l8.2 3.4-3.4-8.2c-.6.9-1.3 1.8-2.2 2.6-.8.9-1.6 1.6-2.6 2.2"/><path d="m15.5 10.7l-8.2-3.4 3.4 8.2c.6-.9 1.3-1.8 2.2-2.6.8-.9 1.7-1.6 2.6-2.2"/></g><path d="m24 33.5c-.8 0-1.7-.1-2.5-.4-3.2-1.1-5.4-4.1-5.4-7.5 0-2.3 1-4.4 2.7-5.9.4-.4.9-.7 1.4-1l.5-1.8c1.3-4.5 5.5-7.7 10.3-7.7.5 0 1 0 1.5.1.4.1.9.2 1.3.3l.2-.4c1.9-3.4 5.6-5.6 9.5-5.6 6 0 10.9 4.8 10.9 10.8 0 .3 0 .6 0 .9v.2c.5.2.9.4 1.3.6 2.9 1.7 4.7 4.8 4.7 8.1 0 4.4-3 8.1-7.3 9.1-.7.2-1.4.2-2.1.2h-27" fill="#fff"/><path d="m43.6 5.1c5.1 0 9.3 4.1 9.3 9.2 0 .2 0 .5 0 .7-2.1.2-4.1 1-5.6 2.3 1.1-.7 2.5-1 3.9-1 .5 0 1 .1 1.5.1.8.2 1.6.5 2.4.9 2.3 1.3 3.9 3.8 3.9 6.7 0 3.7-2.6 6.8-6 7.5-.6.1-1.1.2-1.7.2h-27.3c-.7 0-1.4-.1-2-.3-2.5-.8-4.3-3.2-4.3-6 0-1.9.8-3.6 2.2-4.7.6-.5 1.3-.9 2.1-1.2.7-.2 1.4-.4 2.1-.4 2 0 3.9 1 5 2.5h.1c-1.3-2.5-3.9-4.2-6.8-4.5 1.1-3.8 4.6-6.6 8.8-6.6.4 0 .9 0 1.3.1.8.1 1.7.4 2.4.7 2.8 1.2 4.9 3.9 5.3 7 0 0 0 0 0-.1 0-3.6-1.8-6.7-4.6-8.5 1.4-2.6 4.5-4.6 8-4.6m0-3.1c-4.3 0-8.2 2.2-10.5 5.7-.1 0-.2 0-.3 0-.7-.1-1.2-.1-1.8-.1-5.5 0-10.3 3.6-11.8 8.9l-.4 1.2c-.4.2-.8.5-1.1.8-2.1 1.8-3.3 4.4-3.3 7.1 0 4.1 2.6 7.7 6.5 9 1 .3 2 .5 3 .5h27.1c.8 0 1.6-.1 2.5-.3 5-1.1 8.5-5.5 8.5-10.6 0-3.9-2.1-7.5-5.5-9.4-.2-.1-.3-.2-.5-.3 0 0 0-.1 0-.1 0-6.8-5.6-12.4-12.4-12.4z" fill="#b6c1d1"/><g fill="#75d6ff"><path d="m28.8 46c-.6 1.6-.1 3.2 1.1 3.6s2.6-.5 3.2-2.1c.7-1.8.7-4.4.3-7.3-2.3 2-4 4-4.6 5.8"/><path d="m41.9 47.6c.7-1.8.7-4.4.3-7.3-2.2 1.9-3.8 3.9-4.5 5.8-.6 1.6-.1 3.2 1.1 3.6s2.5-.6 3.1-2.1"/><path d="m51 40.3c-2.2 1.9-3.8 3.9-4.5 5.8-.6 1.6-.1 3.2 1.1 3.6s2.6-.5 3.2-2.1c.6-1.9.6-4.4.2-7.3"/><path d="m19.9 46c-.6 1.6-.1 3.2 1.1 3.6s2.6-.5 3.2-2.1c.7-1.8.7-4.4.3-7.3-2.3 2-3.9 4-4.6 5.8"/><path d="m21.8 58.3c-.6 1.6-.1 3.2 1.1 3.6s2.6-.5 3.2-2.1c.7-1.8.7-4.4.3-7.3-2.3 1.9-3.9 3.9-4.6 5.8"/><path d="m34.9 59.8c.7-1.8.7-4.4.3-7.3-2.2 1.9-3.8 3.9-4.5 5.8-.6 1.6-.1 3.2 1.1 3.6s2.5-.5 3.1-2.1"/><path d="m44 52.5c-2.2 1.9-3.8 3.9-4.5 5.8-.6 1.6-.1 3.2 1.1 3.6s2.6-.5 3.2-2.1c.6-1.8.7-4.4.2-7.3"/><path d="m13 58.3c-.6 1.6-.1 3.2 1.1 3.6s2.6-.5 3.2-2.1c.7-1.8.7-4.4.3-7.3-2.3 1.9-4 3.9-4.6 5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f327.svg b/build/js/jsxc/lib/emojione/assets/svg/1f327.svg
index ecafbb9..52e6a1e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f327.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f327.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m23.916 44.848c-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.85.719-4.382.262-7.316-2.202 1.923-3.832 3.921-4.505 5.771"/><path d="m37.01 46.39c.673-1.85.719-4.382.262-7.316-2.202 1.924-3.832 3.922-4.505 5.771-.571 1.569-.086 3.189 1.086 3.616s2.585-.502 3.157-2.071"/><path d="m46.13 39.08c-2.203 1.924-3.832 3.922-4.506 5.771-.57 1.569-.086 3.189 1.086 3.616s2.586-.502 3.158-2.071c.672-1.849.719-4.381.262-7.316"/><path d="m15.06 44.848c-.571 1.569-.086 3.189 1.086 3.616s2.585-.502 3.158-2.071c.672-1.85.719-4.382.262-7.316-2.203 1.923-3.833 3.921-4.506 5.771"/><path d="m16.966 57.1c-.571 1.569-.086 3.189 1.086 3.616 1.171.427 2.585-.502 3.158-2.071.672-1.85.719-4.382.262-7.316-2.203 1.923-3.833 3.921-4.506 5.771"/><path d="m30.06 58.643c.674-1.85.719-4.382.262-7.316-2.201 1.924-3.832 3.922-4.504 5.771-.572 1.569-.086 3.189 1.086 3.616s2.586-.502 3.156-2.071"/><path d="m39.18 51.33c-2.202 1.924-3.832 3.922-4.505 5.771-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.849.719-4.381.262-7.316"/><path d="m8.112 57.1c-.571 1.569-.086 3.189 1.086 3.616s2.586-.502 3.157-2.071c.673-1.85.719-4.382.262-7.316-2.202 1.923-3.832 3.921-4.505 5.771"/></g><path fill="#fff" d="m19.322 33.659c-.818 0-1.627-.131-2.406-.389-3.143-1.031-5.256-3.938-5.256-7.23 0-2.198.958-4.288 2.628-5.738.431-.375.9-.699 1.401-.968l-.025-.001.508-1.763c1.269-4.4 5.368-7.473 9.966-7.473.458 0 .929.036 1.481.115.422.06.838.146 1.244.255l.203-.365c1.859-3.329 5.387-5.396 9.207-5.396 5.802 0 10.521 4.694 10.521 10.466 0 .281-.018.557-.04.832l-.017.205c.447.169.883.375 1.305.618 2.806 1.608 4.549 4.602 4.549 7.811 0 4.228-2.893 7.84-7.03 8.785-.677.156-1.363.236-2.035.236h-26.2"/><path fill="#b6c1d1" d="m38.27 6.23c4.964 0 8.988 4 8.988 8.941 0 .24-.017.474-.035.709-2.078.157-3.966.981-5.45 2.262 1.104-.631 2.38-.997 3.745-.997.506 0 .998.051 1.477.145.815.162 1.581.455 2.277.855 2.26 1.296 3.783 3.714 3.783 6.492 0 3.559-2.497 6.536-5.844 7.3-.545.127-1.109.198-1.691.198h-.002-26.2-.001c-.672 0-1.316-.11-1.921-.312-2.442-.802-4.207-3.088-4.207-5.784 0-1.834.816-3.474 2.103-4.59.583-.508 1.262-.903 2.01-1.162.633-.219 1.31-.347 2.02-.347 1.976 0 3.729.936 4.851 2.38l.055-.001c-1.302-2.383-3.734-4.063-6.581-4.331 1.06-3.673 4.458-6.369 8.492-6.369.431 0 .851.042 1.264.102.819.117 1.601.341 2.331.664 2.719 1.207 4.705 3.735 5.146 6.764 0-.018.002-.036.002-.053 0-3.449-1.779-6.484-4.473-8.255 1.533-2.747 4.479-4.611 7.865-4.611m0-3.047c-4.135 0-7.971 2.113-10.177 5.561-.085-.013-.171-.025-.257-.039-.631-.089-1.17-.13-1.702-.13-5.279 0-9.984 3.525-11.44 8.575l-.347 1.202c-.376.24-.736.51-1.076.806-2 1.735-3.149 4.245-3.149 6.883 0 3.951 2.537 7.438 6.312 8.679.928.308 1.901.464 2.883.464h26.2c.791 0 1.594-.092 2.388-.275 4.835-1.104 8.216-5.327 8.216-10.27 0-3.753-2.037-7.252-5.316-9.132-.158-.091-.318-.177-.48-.259 0-.025 0-.05 0-.075-.001-6.611-5.409-11.99-12.06-11.99z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75d6ff"><path d="m23.6 45.4c-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2.7-1.9.7-4.6.3-7.6-2.3 2-4 4-4.7 6"/><path d="m37.2 47c.7-1.9.7-4.6.3-7.6-2.3 2-4 4.1-4.7 6-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.6 3.3-2.2"/><path d="m46.6 39.4c-2.3 2-4 4.1-4.7 6-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2.8-1.9.8-4.6.3-7.6"/><path d="m14.4 45.4c-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2.7-1.9.7-4.6.3-7.6-2.3 2-4 4-4.7 6"/><path d="m16.4 58.1c-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2.7-1.9.7-4.6.3-7.6-2.3 2-4 4.1-4.7 6"/><path d="m30 59.7c.7-1.9.7-4.6.3-7.6-2.3 2-4 4.1-4.7 6-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2"/><path d="m39.4 52.1c-2.3 2-4 4.1-4.7 6-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2.8-1.9.8-4.5.3-7.6"/><path d="m7.2 58.1c-.6 1.6-.1 3.3 1.1 3.8 1.2.4 2.7-.5 3.3-2.2.7-1.9.7-4.6.3-7.6-2.3 2-4 4.1-4.7 6"/></g><path d="m18.9 33.7c-.8 0-1.7-.1-2.5-.4-3.3-1.1-5.4-4.1-5.4-7.5 0-2.3 1-4.5 2.7-6 .4-.4.9-.7 1.5-1l.5-1.8c1.3-4.6 5.6-7.8 10.3-7.8.5 0 1 0 1.5.1.4.1.9.2 1.3.3l.2-.4c1.9-3.5 5.6-5.6 9.5-5.6 6 0 10.9 4.9 10.9 10.9 0 .3 0 .6 0 .9v.2c.5.2.9.4 1.4.6 2.9 1.7 4.7 4.8 4.7 8.1 0 4.4-3 8.2-7.3 9.1-.7.2-1.4.2-2.1.2l-27.2.1" fill="#fff"/><path d="m38.5 5.2c5.1 0 9.3 4.2 9.3 9.3 0 .2 0 .5 0 .7-2.2.2-4.1 1-5.6 2.4 1.1-.7 2.5-1 3.9-1 .5 0 1 .1 1.5.1.8.2 1.6.5 2.4.9 2.3 1.3 3.9 3.9 3.9 6.8 0 3.7-2.6 6.8-6.1 7.6-.6.1-1.1.2-1.8.2h-27.1c-.7 0-1.4-.1-2-.3-2.5-.8-4.4-3.2-4.4-6 0-1.9.8-3.6 2.2-4.8.6-.5 1.3-.9 2.1-1.2.7-.2 1.4-.4 2.1-.4 2 0 3.9 1 5 2.5h.1c-1.3-2.5-3.9-4.2-6.8-4.5 1.1-3.8 4.6-6.6 8.8-6.6.4 0 .9 0 1.3.1.8.1 1.7.4 2.4.7 2.8 1.3 4.9 3.9 5.3 7 0 0 0 0 0-.1 0-3.6-1.8-6.8-4.6-8.6 1.5-2.9 4.6-4.8 8.1-4.8m0-3.2c-4.3 0-8.3 2.2-10.5 5.8-.1 0-.2 0-.3 0-.7-.1-1.2-.1-1.8-.1-5.5 0-10.3 3.7-11.9 8.9l-.4 1.3c-.4.2-.8.5-1.1.8-2.1 1.8-3.3 4.4-3.3 7.2 0 4.1 2.6 7.7 6.5 9 1 .3 2 .5 3 .5h27.3c.8 0 1.7-.1 2.5-.3 5-1.1 8.5-5.5 8.5-10.7 0-3.9-2.1-7.5-5.5-9.5-.2-.1-.3-.2-.5-.3 0 0 0-.1 0-.1 0-6.9-5.6-12.5-12.5-12.5z" fill="#b6c1d1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f328.svg b/build/js/jsxc/lib/emojione/assets/svg/1f328.svg
index 55102d6..dc0e858 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f328.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f328.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75d6ff"><path d="m20.579 43.17l1.521-2.343-2.344 1.523-.606-4.14-.615 4.14-2.345-1.523 1.522 2.343-4.138.612 4.14.608-1.524 2.347 2.345-1.517.615 4.13.608-4.13 2.342 1.517-1.522-2.347 4.141-.608z"/><path d="m50.717 43.17l1.523-2.343-2.346 1.523-.614-4.14-.608 4.14-2.342-1.523 1.519 2.343-4.138.612 4.14.608-1.521 2.347 2.342-1.517.608 4.13.615-4.13 2.345 1.517-1.525-2.347 4.14-.608z"/><path d="m35.648 43.17l1.522-2.343-2.346 1.523-.604-4.14-.615 4.14-2.345-1.523 1.521 2.343-4.138.612 4.14.608-1.523 2.347 2.344-1.517.616 4.13.606-4.13 2.344 1.517-1.524-2.347 4.141-.608z"/><path d="m13.149 54.32l1.523-2.348-2.346 1.518-.609-4.14-.607 4.14-2.349-1.518 1.52 2.338-4.137.617 4.14.613-1.523 2.343 2.339-1.523.617 4.14.611-4.14 2.344 1.523-1.525-2.343 4.142-.613z"/><path d="m43.29 54.32l1.518-2.348-2.345 1.518-.609-4.14-.614 4.14-2.343-1.518 1.523 2.338-4.14.617 4.14.613-1.523 2.343 2.343-1.523.614 4.14.611-4.14 2.343 1.523-1.528-2.343 4.15-.613z"/><path d="m28.22 54.32l1.519-2.348-2.344 1.518-.61-4.14-.605 4.14-2.35-1.518 1.521 2.338-4.141.617 4.143.613-1.523 2.343 2.34-1.523.615 4.14.611-4.14 2.343 1.523-1.519-2.343 4.137-.613z"/></g><path fill="#fff" d="m21.05 33.977c-.816 0-1.627-.129-2.406-.389-3.143-1.031-5.256-3.938-5.256-7.229 0-2.198.958-4.289 2.629-5.738.431-.376.9-.699 1.4-.969l-.025-.002.509-1.763c1.269-4.398 5.367-7.472 9.966-7.472.458 0 .929.037 1.48.115.424.062.84.146 1.246.256l.203-.365c1.857-3.329 5.387-5.397 9.207-5.397 5.802 0 10.521 4.695 10.521 10.466 0 .282-.019.557-.041.832l-.017.204c.448.17.884.377 1.306.619 2.805 1.608 4.549 4.602 4.549 7.811 0 4.228-2.893 7.842-7.03 8.786-.677.156-1.362.235-2.034.235h-26.2"/><path fill="#75d6ff" d="m40 6.547c4.963 0 8.988 4 8.988 8.942 0 .241-.018.474-.037.708-2.076.159-3.965.983-5.449 2.263 1.105-.63 2.381-.996 3.746-.996.506 0 .998.05 1.476.144.815.162 1.581.456 2.278.856 2.259 1.295 3.783 3.713 3.783 6.491 0 3.559-2.498 6.536-5.844 7.301-.545.125-1.109.198-1.691.198h-.002-26.2c-.672 0-1.316-.112-1.922-.313-2.441-.801-4.206-3.087-4.206-5.783 0-1.835.815-3.476 2.104-4.592.582-.506 1.261-.901 2.01-1.162.633-.218 1.31-.345 2.02-.345 1.977 0 3.729.935 4.85 2.38l.056-.001c-1.301-2.382-3.733-4.063-6.581-4.332 1.06-3.674 4.458-6.368 8.492-6.368.431 0 .85.042 1.264.101.82.118 1.602.341 2.332.665 2.719 1.205 4.704 3.734 5.146 6.763 0-.017.002-.036.002-.052 0-3.45-1.779-6.485-4.475-8.256 1.534-2.747 4.479-4.612 7.866-4.612m0-3.047c-4.135 0-7.971 2.113-10.178 5.562-.084-.015-.17-.026-.256-.039-.631-.09-1.17-.131-1.703-.131-5.278 0-9.983 3.525-11.439 8.576l-.347 1.202c-.376.239-.736.51-1.075.804-2 1.736-3.149 4.246-3.149 6.885 0 3.951 2.536 7.438 6.312 8.678.928.308 1.9.464 2.883.464h26.2c.791 0 1.594-.091 2.387-.274 4.836-1.105 8.217-5.328 8.217-10.271 0-3.753-2.037-7.253-5.317-9.132-.157-.09-.317-.178-.479-.259 0-.025 0-.049 0-.075-.002-6.61-5.411-11.99-12.06-11.99z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75d6ff"><path d="m20.6 43.2l1.5-2.4-2.3 1.5-.7-4.1-.6 4.1-2.3-1.5 1.5 2.4-4.1.6 4.1.6-1.5 2.3 2.3-1.5.6 4.2.7-4.2 2.3 1.5-1.5-2.3 4.1-.6z"/><path d="m50.7 43.2l1.5-2.4-2.3 1.5-.6-4.1-.6 4.1-2.4-1.5 1.5 2.4-4.1.6 4.2.6-1.6 2.3 2.4-1.5.6 4.2.6-4.2 2.3 1.5-1.5-2.3 4.2-.6z"/><path d="m35.6 43.2l1.6-2.4-2.4 1.5-.6-4.1-.6 4.1-2.3-1.5 1.5 2.4-4.2.6 4.2.6-1.5 2.3 2.3-1.5.6 4.2.6-4.2 2.4 1.5-1.6-2.3 4.2-.6z"/><path d="m13.1 54.3l1.6-2.3-2.4 1.5-.6-4.1-.6 4.1-2.3-1.5 1.5 2.3-4.2.6 4.2.6-1.5 2.4 2.3-1.5.6 4.1.6-4.1 2.4 1.5-1.6-2.4 4.2-.6z"/><path d="m43.3 54.3l1.5-2.3-2.3 1.5-.6-4.1-.7 4.1-2.3-1.5 1.5 2.3-4.1.6 4.1.6-1.5 2.4 2.3-1.5.7 4.1.6-4.1 2.3 1.5-1.5-2.4 4.1-.6z"/><path d="m28.2 54.3l1.5-2.3-2.3 1.5-.6-4.1-.6 4.1-2.4-1.5 1.6 2.3-4.2.6 4.2.6-1.6 2.4 2.4-1.5.6 4.1.6-4.1 2.3 1.5-1.5-2.4 4.2-.6z"/></g><path d="m21.1 34c-.8 0-1.6-.1-2.4-.4-3.1-1-5.3-3.9-5.3-7.2 0-2.2 1-4.3 2.6-5.7.4-.4.9-.7 1.4-1l.5-1.8c1.3-4.4 5.4-7.5 10-7.5.5 0 .9 0 1.5.1.4.1.8.1 1.2.3l.2-.4c1.9-3.3 5.4-5.4 9.2-5.4 5.8 0 10.5 4.7 10.5 10.5 0 .3 0 .6 0 .8v.2c.4.2.9.4 1.3.6 2.8 1.6 4.5 4.6 4.5 7.8 0 4.2-2.9 7.8-7 8.8-.7.2-1.4.2-2 .2h-26.2z" fill="#fff"/><path d="m40 6.5c5 0 9 4 9 8.9 0 .2 0 .5 0 .7-2.1.2-4 1-5.4 2.3 1.1-.6 2.4-1 3.7-1 .5 0 1 0 1.5.1.8.2 1.6.5 2.3.9 2.3 1.3 3.8 3.7 3.8 6.5 0 3.6-2.5 6.5-5.8 7.3-.5.1-1.1.2-1.7.2h-26.3c-.7 0-1.3-.1-1.9-.3-2.4-.8-4.2-3.1-4.2-5.8 0-1.8.8-3.5 2.1-4.6.6-.5 1.3-.9 2-1.2.6-.2 1.3-.3 2-.3 2 0 3.7.9 4.9 2.4h.1c-1.3-2.4-3.7-4.1-6.6-4.3 1.1-3.7 4.5-6.4 8.5-6.4.4 0 .9 0 1.3.1.8.1 1.6.3 2.3.7 2.7 1.2 4.7 3.7 5.1 6.8 0 0 0 0 0-.1 0-3.4-1.8-6.5-4.5-8.3 1.5-2.7 4.4-4.6 7.8-4.6m0-3c-4.1 0-8 2.1-10.2 5.6-.1 0-.2 0-.3 0-.6-.1-1.2-.1-1.7-.1-5.3 0-10 3.5-11.4 8.6l-.3 1.2c-.4.2-.7.5-1.1.8-2 1.7-3.1 4.2-3.1 6.9 0 4 2.5 7.4 6.3 8.7.9.3 1.9.5 2.9.5h26.2c.8 0 1.6-.1 2.4-.3 4.8-1.1 8.2-5.3 8.2-10.3 0-3.8-2-7.3-5.3-9.1-.2-.1-.3-.2-.5-.3 0 0 0 0 0-.1 0-6.7-5.4-12.1-12.1-12.1z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f329.svg b/build/js/jsxc/lib/emojione/assets/svg/1f329.svg
index cafc30c..d7844b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f329.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f329.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m24.527 31.937l-4.93 16.11h12.543l-4.254 13.95 16.514-20.242h-11.874l2.912-9.821z"/><path fill="#fff" d="m18.2 32.477c-.818 0-1.628-.131-2.406-.389-3.144-1.031-5.257-3.938-5.257-7.23 0-2.198.958-4.288 2.629-5.738.431-.375.899-.699 1.4-.968l-.024-.001.508-1.763c1.269-4.4 5.367-7.473 9.967-7.473.457 0 .928.036 1.48.115.423.06.839.146 1.245.255l.203-.365c1.858-3.329 5.386-5.396 9.206-5.396 5.803 0 10.522 4.694 10.522 10.466 0 .281-.019.557-.04.832l-.018.205c.448.169.885.375 1.306.618 2.806 1.608 4.549 4.602 4.549 7.811 0 4.228-2.893 7.84-7.03 8.785-.676.156-1.362.236-2.035.236h-26.2"/><path fill="#b6c1d1" d="m37.15 5.05c4.965 0 8.989 4 8.989 8.941 0 .24-.017.474-.036.709-2.078.157-3.965.981-5.449 2.262 1.104-.631 2.38-.997 3.745-.997.506 0 .998.051 1.476.145.816.162 1.582.455 2.279.855 2.258 1.296 3.782 3.714 3.782 6.492 0 3.559-2.497 6.536-5.844 7.3-.544.127-1.109.198-1.692.198h-26.2-.001c-.672 0-1.316-.11-1.921-.312-2.442-.802-4.207-3.088-4.207-5.784 0-1.834.816-3.474 2.103-4.59.583-.508 1.262-.903 2.01-1.162.633-.219 1.31-.347 2.02-.347 1.976 0 3.729.936 4.85 2.38l.055-.001c-1.301-2.383-3.733-4.063-6.58-4.331 1.059-3.673 4.457-6.369 8.492-6.369.431 0 .85.042 1.264.102.818.117 1.602.341 2.331.664 2.719 1.207 4.705 3.735 5.146 6.764 0-.018.002-.036.002-.053 0-3.449-1.779-6.484-4.474-8.255 1.533-2.748 4.48-4.611 7.864-4.611m0-3.048c-4.135 0-7.97 2.113-10.176 5.561-.085-.013-.171-.025-.257-.039-.631-.089-1.171-.13-1.702-.13-5.279 0-9.984 3.525-11.44 8.575l-.347 1.202c-.377.24-.736.51-1.076.806-2 1.735-3.149 4.245-3.149 6.882 0 3.951 2.537 7.438 6.313 8.679.927.308 1.9.464 2.882.464h26.2c.791 0 1.594-.092 2.388-.275 4.834-1.105 8.216-5.328 8.216-10.27 0-3.753-2.037-7.252-5.317-9.132-.157-.091-.317-.177-.479-.259 0-.025 0-.05 0-.075-.001-6.61-5.409-11.989-12.06-11.989z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m24.5 31.9l-4.9 16.2h12.5l-4.2 13.9 16.5-20.2h-11.9l2.9-9.9z"/><path d="m18.2 32.5c-.8 0-1.6-.1-2.4-.4-3.1-1-5.3-3.9-5.3-7.2 0-2.2 1-4.3 2.6-5.7.4-.4.9-.7 1.4-1l.5-1.8c1.3-4.4 5.4-7.5 10-7.5.5 0 .9 0 1.5.1.4.1.8.1 1.2.3l.2-.4c1.9-3.3 5.4-5.4 9.2-5.4 5.9 0 10.6 4.7 10.6 10.5 0 .3 0 .6 0 .8v.2c.4.2.9.4 1.3.6 2.8 1.6 4.5 4.6 4.5 7.8 0 4.2-2.9 7.8-7 8.8-.7.2-1.4.2-2 .2h-26.3z" fill="#fff"/><path d="m37.1 5c5 0 9 4 9 8.9 0 .2 0 .5 0 .7-2.1.2-4 1-5.4 2.3 1.1-.6 2.4-1 3.7-1 .5 0 1 .1 1.5.1.8.2 1.6.5 2.3.9 2.3 1.3 3.8 3.7 3.8 6.5 0 3.6-2.5 6.5-5.8 7.3-.7.2-1.2.3-1.8.3h-26.2c-.7 0-1.3-.1-1.9-.3-2.4-.8-4.2-3.1-4.2-5.8 0-1.8.8-3.5 2.1-4.6.6-.5 1.3-.9 2-1.2.6-.2 1.3-.3 2-.3 2 0 3.7.9 4.9 2.4h.1c-1.3-2.4-3.7-4.1-6.6-4.3 1.1-3.7 4.5-6.4 8.5-6.4.4 0 .9 0 1.3.1.8.1 1.6.3 2.3.7 2.7 1.2 4.7 3.7 5.1 6.8 0 0 0 0 0-.1 0-3.4-1.8-6.5-4.5-8.3 1.5-2.8 4.5-4.7 7.8-4.7m0-3c-4.1 0-7.9 2.1-10.1 5.6-.1 0-.2 0-.3 0-.6-.1-1.2-.1-1.7-.1-5.3 0-10 3.5-11.4 8.6l-.3 1.2c-.4.2-.7.5-1.1.8-2 1.7-3.1 4.2-3.1 6.9 0 4 2.5 7.4 6.3 8.7.9.3 1.9.5 2.9.5h26.2c.8 0 1.6-.1 2.4-.3 4.8-1.1 8.2-5.3 8.2-10.3 0-3.8-2-7.3-5.3-9.1-.2-.1-.3-.2-.5-.3 0 0 0-.1 0-.1-.1-6.7-5.5-12.1-12.2-12.1z" fill="#b6c1d1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f32a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f32a.svg
index 2b7e5b9..87326d9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f32a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f32a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#97a3a2" d="m14.641 3.698c-3.204.09-11.807.38-10.212 7.961 1.595 7.581-.829 6.747 0 9.246.829 2.498 2.212 5.521 2.461 8.474.25 2.954 4.875 6.679 4.875 6.679s-4.737.967-.75 5.78c3.987 4.813 3.25 6.546 6.25 7.316 0 0 2.023 7.285 4.375 7.19 0 0 4.25 7.377 10.375 2.405 0 0-2.881-1.854.439-3.817 0 0-.254-4.123-1.814-6.747 0 0 7.579-9.236 7.875-12 0 0 5.146.397 7.376-3.211 0 0 10.874 2.056 12.875-3.082 0 0 4.999-11.3-15.13-21.316.001.001-12.876-5.331-28.999-4.878"/><g fill="#c8d9d8"><path d="m6.498 20.607c.008.021.02.038.028.059-.021-.068-.146-.401-.028-.059"/><path d="m26.946 59.07c.009 0 .019.002.027.002.171.005.094.002-.027-.002"/><path d="m40.633 34.32c.351-.042-.012-.181 0 0"/><path d="m61.04 22.407c.045.142.097.282.151.42-.832-1.909-2.146-3.556-3.677-4.919.456.293 4.362 2.359 4.373 2.408-.464-2.061-4.938-4.613-6.508-5.793-2.721-2.043-5.574-3.901-8.559-5.506-5.622-3.03-11.685-5.04-17.936-6.117-6.163-1.066-13.236-1.416-19.332.25-2.239.612-4.643 1.688-5.886 3.82-.744 1.277-.898 2.819-.629 4.264.127.663.334 1.298.624 1.904-.558.625-.991 1.362-1.266 2.162-.938 2.726-.06 5.801 1.219 8.246 1.455 2.783.749 6.03 2.448 9.04.646 1.147 1.436 2.206 2.348 3.143.766.787-.484 2.066-.564 3.177-.205 2.818 1.931 4.958 4.115 6.266 1.312.787 1.15.804 1.665 2.216.212.584 1.682 1.962 1.577 2.409-.732 2.824.19 5.641 2.699 7.135.877.523 2.288.537 2.604 1.623.383 1.312 1.42 2.245 2.61 2.778 1.298.581 2.787.754 4.189.62.706-.065 1.498-.15 2.5-.453 2.198-.664 3.393-1.95 4.343-4.04-.562-.216-1.136-.381-1.726-.492 4.01-2.061 4.665-7.383-.569-7.892.55-.466.979-1.036 1.33-1.672.604-1.1 1.22-1.573 2.02-2.514 1.175-1.382 1.247-2.555 2.665-3.693 1.493-1.197 1.575-2.699 3.507-2.979 1.938-.283 3.953-.845 5.466-2.191.318-.281.787-1.156 1.194-1.272 1.1-.313 2.623-.023 3.778-.134 2.087-.198 4.196-.618 6.08-1.602 3.534-1.846 4.762-5.773 3.559-9.55-.075-.152-.37-1.085-.411-1.065m-54.12-.939c-.74-1.451-1.559-3.417-.973-5.05 1.263 1.353 2.705 2.514 4.191 3.596-1.144.304-2.254.739-3.218 1.456m4.332 11.526c-.229-.201-.148-.13.005.004-.003-.002-.004-.002-.005-.004m-2.262-3.122c1.495 1.167 3.118 2.15 4.791 3.02-1.075.443-1.499.883-2.355.239-.995-.925-1.808-2.042-2.436-3.257m7.01 17.86c.108-.204-.269-.265-.115-.096-.365-.261-.665-.582-.88-.987.145.263 1.14.325 1.415.399-.14.228-.279.458-.42.684m.817-4.847c-.006-.002-.009-.002-.015-.004-1.48-.494-3.01-1.093-4.178-2.189-.579-.544-1.555-2.734-.01-1.834 3.198 1.865 6.708 3.166 10.294 3.975-2.363.68-3.643.866-6.091.052m8.453 5.3c-.269.041-.47.065-.641.084-1.42.188-2.854.267-4.286.234 1.13-1.073 3.437-.315 4.927-.318m-3.597 5.487c-.001.002-.001.002-.002.004-.001 0-.001 0-.002.002-.921 1.121-2.841-1.093-2.767-2.077.091-1.224.888-.585 1.79-.489 1.349.144 2.708.189 4.062.123-1.136.648-2.239 1.408-3.081 2.437m6.843 5.115c.048-.068.079-.114 0 0-.368.527-1.335.293-1.853.271.095.004.19.006.286.011-.88-.034-1.784-.19-2.573-.615 1.629.026 3.262-.101 4.864-.417-.273.218-.513.469-.724.75m-1.706-4.528c1.131-.542 3.701-.815 4.37-1.174-1.309.822-2.873 1.038-4.37 1.174m-2.425-15.305c-2.967-.62-5.871-1.607-8.584-2.998 3.1-1.618 5.34.008 8.553.814 1.567.394 3.149.727 4.741.999 1.277.218 3.363.004 4.127 1.341-2.886.777-5.949.45-8.837-.156m11.04-4.518c-.352-.018-.703-.044-1.054-.068.313.021.63.04.944.062-2.632-.178-5.248-.584-7.828-1.147.631-.005 5.261.805 5.57.041.883-2.179-10.569-2.554-11.385-2.472-4.411.447-9.734-3.153-12.665-6.381 2.653-2.443 5.734-1.375 8.361.145-.389.142-3.342 1.226-3.059 1.91.153.371 2.097-.24 2.333-.289 1.455-.301 2.568-.57 3.905.141 2.097 1.114 4.238 2.142 6.416 3.078 2.036.874 4.104 1.655 6.202 2.356 1.836.613 3.815.397 3.872 2.691-.536-.014-1.075-.035-1.612-.067m5.214-.114c-.019-.181-.034-.36-.052-.541.493.102.986.202 1.48.303-.472.106-.948.186-1.428.238m1.168-4.412c-.237-.05-.204-.042-.097-.018-1.399-.285-2.487-.299-3.437-1.429-.713-.846-1.586-1.539-2.506-2.127-2.092-1.336-4.369-2.461-6.634-3.45-4.981-2.176-10.713-2.19-15.224-5.164 6.08.748 12.04 1.7 17.827 3.832 4.396 1.62 11.01 4.01 12.906 8.907-.95-.143-1.894-.345-2.835-.551m16.534-2.627c-.315 1.467-1.732 2.245-2.998 2.694.956-2.893-.859-5.776-3.02-7.483-.839-.662-2.124-1.614-3.262-1.485-1.499.171 1.062 3.463 1.35 3.923 1.46 2.349 1.838 4.39-1.076 5.599-1.18.491-.935-.458-1.296-1.373-.594-1.504-1.563-2.798-2.687-3.927-4.142-4.159-10.269-6.098-15.767-7.452-3.809-.938-7.717-1.408-11.63-1.539-1.561-.052-3.123-.056-4.683 0-1.852.067-2.669-.837-3.968-2.076 6.122-1.503 13.186.159 19.223 1.436 3.073.65 6.123 1.401 9.166 2.183 1.69.436 3.38.881 5.067 1.326.864.228 2.428.985 3.332.687.326-.107-2.329-1.604-2.398-1.638-1.823-.888-3.718-1.63-5.611-2.344-3.55-1.336-7.169-2.476-10.838-3.412-3.747-.956-7.553-1.813-11.41-2.118-2.048-.162-4.131-.176-6.171.107-1.164.161-2.922 1.389-2.921-.479.004-5.337 15.12-4.238 18.1-4.03 7.729.532 15.312 2.64 22.3 6.07-4.79-1.878-9.836-3.082-14.952-3.451-2.47-.177-4.96-.183-7.434-.096-1.588.054-6.221-.363-7.44.875-.041.042 2.999.496 3.272.514 2.476.159 4.953.292 7.423.524 4.253.399 8.469 1.169 12.559 2.447 3.961 1.238 7.916 2.882 11.419 5.176 2.753 1.806 7.444 5.38 6.349 9.349"/><path d="m21.67 53.672c.202-.247.494-.604 0 0"/><path d="m61.45 23.472c1.231 3.865.032.068 0 0"/><path d="m6.917 21.468c.986-.734-.136-.265 0 0"/><path d="m24.625 48.27c.214-.028.428-.052.641-.084-1.177.003-1.51.177-.641.084"/><path d="m40.633 34.32c.48-.058-.013-.18 0 0"/><path d="m18.229 34.937c-.794.309.032-.012 0 0"/><path d="m35.38 34.434c.014.001.026.001.041.002-.022-.002-.062-.005-.108-.008.022.002.044.005.067.006"/></g><g fill="#fff"><path d="m43.33 18.628c-.246-.193-.556-.428-.965-.69-.432-.255-.943-.544-1.526-.86-.593-.313-1.341-.629-2.116-.979-.401-.169-.857-.328-1.313-.5-.462-.166-.918-.352-1.447-.504-2.039-.67-4.48-1.244-7.04-1.765-.651-.118-1.293-.235-1.927-.351-.636-.119-1.259-.225-1.868-.311-1.223-.18-2.4-.354-3.528-.503-1.129-.146-2.204-.278-3.21-.397-1.01-.116-1.963-.196-2.827-.276-1.723-.166-3.143-.209-4.109-.227-.97-.013-1.502.03-1.511.132-.009.101.505.251 1.428.435.923.19 2.255.382 3.889.672.818.135 1.713.281 2.672.438.96.167 1.985.338 3.068.514 1.077.182 2.205.372 3.376.569.595.092 1.174.198 1.752.312.583.109 1.177.22 1.776.331 2.371.483 4.578.959 6.443 1.492.49.118.91.269 1.349.4.429.137.866.259 1.262.393.767.28 1.529.525 2.182.774.645.254 1.243.48 1.785.677.524.205.972.388 1.365.528.786.282 1.318.419 1.51.367.185-.048.017-.283-.466-.671"/><path d="m32.08 29.2c-2.83-1.102-6.641-2.64-10.601-4.735-7.812-4.302-13.678-8.617-14.394-8.095-.315.224.797 1.544 2.956 3.466 2.191 1.897 5.486 4.392 9.687 6.674 4.243 2.249 8.555 3.666 11.705 4.376.39.107.769.175 1.133.225.362.054.701.105 1.021.15.639.087 1.187.148 1.641.181.903.065 1.411.018 1.448-.153.079-.358-1.741-1.076-4.596-2.089"/><path d="m33.06 36.434c-.628-.242-1.552-.491-2.661-.82-.557-.154-1.166-.32-1.816-.498-.643-.19-1.328-.386-2.051-.58-1.436-.439-3.01-.921-4.666-1.425-3.33-1.03-6.275-1.993-8.31-2.744-2.061-.731-3.135-1.317-3.599-1.193-.205.064-.2.351.145.793.332.453 1.027 1.01 1.996 1.61 1.943 1.198 4.997 2.477 8.499 3.559.897.275 1.697.518 2.579.741.865.221 1.695.447 2.5.611.812.159 1.583.301 2.305.424.723.117 1.399.186 2.01.256 1.23.145 2.229.156 2.92.135.692-.028 1.078-.117 1.1-.272.018-.157-.327-.361-.955-.597"/><path d="m28.936 41.28c-1.774-.458-4.182-1.027-6.8-1.672-2.587-.684-4.886-1.313-6.543-1.82-.217-.058-.424-.112-.621-.165-.184-.06-.358-.114-.523-.166-.336-.104-.647-.185-.922-.242-.552-.117-.964-.142-1.163-.041-.195.101-.153.317.117.641.135.162.33.349.576.562.125.104.262.216.415.333.159.106.339.211.529.321 1.491.934 3.986 1.918 6.897 2.683 2.93.723 5.699 1.092 7.698 1.162 2.01.065 3.225-.119 3.234-.426.013-.33-1.13-.718-2.894-1.17"/><path d="m28.67 46.48c1.361-.315 1.803-.784 1.428-.981-.388-.219-1.144-.265-2.124-.351-.989-.072-2.386-.171-4.04-.251-3.296-.175-6.324-.16-6.682.36-.352.496 2.248 1.347 6.182 1.562 1.959.094 3.894-.016 5.231-.339"/><path d="m27.5 54.954c-.759.063-1.395.221-1.835.344-.448.143-.759.327-.728.514.027.189.425.347 1.124.447.723.114 1.604.095 2.544.012 1.813-.216 2.819-.739 2.395-1.08-.434-.351-1.984-.416-3.5-.237"/><path d="m25.654 52.639c-.417.221-.691.458-.631.636.061.181.479.268 1.185.239.73-.016 1.593-.192 2.507-.441 1.749-.537 2.651-1.231 2.174-1.491-.485-.267-2.023-.054-3.484.394-.738.195-1.338.464-1.751.663"/><path d="m27.714 49.99c1.749-.536 2.651-1.231 2.174-1.491-.486-.267-2.023-.054-3.484.394-.736.196-1.336.467-1.75.664-.417.221-.691.457-.631.636.061.181.479.268 1.185.239.73-.014 1.592-.191 2.506-.442"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M4.3,11.1C4.3,31,19.5,61,27.1,61c9.7,0,2.1-19.6,2.1-19.6l30.2-11.9C63.9,2.5,4.3-3.6,4.3,11.1z" fill="#97a3a2"/><path d="m58.1 17.6c15.3 4.8-17.3-21-48.6-14.6-9.1 1.9-6 9.9-6 9.9-2.1 3-2 7.2 0 10.3 1.7 2.6 0 7.1 4.9 12.1.8.8-2.1 5.2 3.6 9.3 1.2.9 3.2 2.4 2.7 4.7-.6 2.8 5 5.4 6 8.6 2.1 6.5 10.1 4.6 13.8-1.1 0 0-1.3.4-1.8-.5 4.1-2 4.7-7.3-.6-7.8 4.8-4.1 2.6-9.5 9.6-10.8 5.7-1 6.7-3.4 6.7-3.4 7.9.1 18.9-5.2 9.7-16.7m-51.2 3.6c-.7-1.4-1.6-3.4-1-5 1.3 1.3 2.7 2.5 4.2 3.6-1.1.2-2.3.7-3.2 1.4m2.1 8.3c2.2 2.5 4.9 3 4.9 3-2 .9-4.5 1.3-4.9-3m6.1 16.6c0 0 1.4 0 1.4.4.2 2.7-1.4-.4-1.4-.4m-2.5-7.7c3.2 1.8 6.8 3.1 10.4 3.9-12.7 1.7-11.9-4.8-10.4-3.9m12.7 9.4c0 0-2.6.7-4.8.2 1.5-1.6 4.8-.2 4.8-.2m-3.5 5.3c0 0 0 0 0 0-.8 1.2-2.8-1.1-2.8-2.1.1-2 5.9-.4 5.9-.4s-2.4 1.4-3.1 2.5m2.7 4.7c1.6 0 3.3-.1 4.9-.4-.9 1.2-2.8 2.7-4.9.4m2.5-4.2c2.7-1.2 4.4-1.2 4.4-1.2s-2 1.7-4.4 1.2m-11.1-18.1c5.3-2.6 9.9 1.3 17.6 3.1-2.9.8-12.9.6-17.6-3.1m11.8-2.6c0 0 7.1.5 5.8-.7-4.3-4.1-18.6 1.7-24.5-8 2.7-2.4 5.8-1.4 8.5.1-4.9 3.1.4 1.1 3.2 1.7 5 1.1 14.7 4 16.7 8-6 .7-9.7-1.1-9.7-1.1m13.3.5c.6.5 3.2.1 3.2.1-1.5.8-3.9 2.5-3.2-.1m-27.1-15.9c17.7 1.5 28.9 6.3 31.1 12.6-13.4-1.1-8.1-7.6-31.1-12.6m42 12.1c-.2-5.7-9.5-14.6-5-5 1.9 4.1-.4 7.4-2.4 4.2-9.8-15.5-30.3-9.5-39.2-14.8 8.9-4.3 43.7 8 34.8 4-25.7-11.8-37.4-5.4-37.4-8.3 0-5.3 17.5-8.3 40.9 2-28.8-5.6-31.7-2.6-26.9-2.1 35.2 3.6 41.2 14.1 35.2 20" fill="#c8d9d8"/><g fill="#fff"><path d="m30.3 13.5c-22.4-4.5-24.2-4.8-3.1.8 28.3 7.5 19 2.4 3.1-.8"/><path d="m20.5 22.7c-10.8-7.4-15.3-9.5-8.6-3.7 14.1 12.1 27.1 12.9 29.3 12.7 4.8-.6-8-.4-20.7-9"/><path d="m17.6 30.7c-9.3-5.5-13-6.2-7-1.4 12.8 10.1 22.9 8.3 24.4 7.5 3.2-2-6.5.4-17.4-6.1"/><path d="m20.7 39.4c-7.3-2.9-10-2.8-4.9.1 10.6 6.1 17 2.8 17.8 1.8 1.7-2.3-4.2 1.5-12.9-1.9"/><path d="m21 44.7c-6.1-1.4-8.1-.5-3.7.8 8 2.4 12.3.9 13.1.3 2-1.3-2.3.6-9.4-1.1"/><path d="m27.8 49.3c7.7-2.8-3-1.5-4.3.4-.5.7 3.3 0 4.3-.4"/><path d="m28.3 52.7c7.2-2.1-2.6-1.6-3.9.1-.5.5 3 .1 3.9-.1"/><path d="m24.9 55.3c-.5.5 2.6.5 3.5.3 6.7-1.2-2.1-1.7-3.5-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f32b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f32b.svg
index a357ee2..a294ee3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f32b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f32b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#979797" d="m2 29.632c15.773-12.639 23.327.452 32.799.452 7.548 0 16.788-13.14 27.2-2.356-11.949-5.748-16.323 6.476-28.662 6.476-9.588-.001-13.191-11.333-31.34-4.572"/><path fill="#d0d0d0" d="m62 39.706c-9.204-7.579-15.13-1.421-22.725 1.77-4.81 2.02-9.797 1.481-14.771-3.787 3.568 1.288 11.45 5.629 19.253-1.983-6.725 2.984-15.12.874-21.874-2.496-7.436-3.707-13.63-4.334-19.883 2.495 3.943-2.965 9.627-2.266 13.999-1.101-2.848.106-8.894.772-13.999 8.665 15.441-12.791 21 4.731 33.08 4.731 11.705 0 10.664-13.13 26.918-8.294"/><path fill="#979797" d="M2,25.269c1.883-5.427,15.233-13.172,25.779,0.091C13.041,18.565,2,25.269,2,25.269z"/><path fill="#d0d0d0" d="m42.13 19.833c6.188-6.839 16.08-3.106 19.865.281-3.059-.354-12.473-2.357-16.525 1.955-6.397 6.807-13.891 5.826-16.252 3.35 0 0 7.611.27 12.912-5.586"/><path fill="#979797" d="m45.38 35.38c7.963-13.262 16.616-2.121 16.616-2.121-9.442-3.28-16.616 2.121-16.616 2.121"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 29.6c15.8-12.6 23.3.5 32.8.5 7.5 0 16.8-13.1 27.2-2.4-11.9-5.7-16.3 6.5-28.7 6.5-9.5 0-13.2-11.3-31.3-4.6" fill="#979797"/><path d="m62 39.7c-9.2-7.6-15.1-1.4-22.7 1.8-4.8 2-9.8 1.5-14.8-3.8 3.6 1.3 11.5 5.6 19.3-2-6.7 3-15.1.9-21.9-2.5-7.5-3.7-13.6-4.3-19.9 2.5 3.9-3 9.6-2.3 14-1.1-2.8.1-8.9.8-14 8.7 15.4-12.8 21 4.7 33.1 4.7 11.7 0 10.6-13.1 26.9-8.3" fill="#d0d0d0"/><path d="m2 25.3c1.9-5.4 15.2-13.2 25.8.1-14.8-6.8-25.8-.1-25.8-.1" fill="#979797"/><path d="m42.1 19.8c6.2-6.8 16.1-3.1 19.9.3-3.1-.4-12.5-2.4-16.5 2-6.4 6.8-13.9 5.8-16.3 3.4 0-.1 7.6.2 12.9-5.7" fill="#d0d0d0"/><path d="m45.4 35.4c8-13.3 16.6-2.1 16.6-2.1-9.4-3.3-16.6 2.1-16.6 2.1" fill="#979797"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f32c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f32c.svg
index 227cc30..652f28b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f32c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f32c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c8d2da" d="M21.979,55.293L0.04,40.464V64C2.318,57.729,21.979,55.293,21.979,55.293z"/><path fill="#e4eef7" d="m17.346 54.33c-9.155-4.893-10.828-15.399-10.828-15.399s-1.419-5.62 6.01-15.609c4.088-5.498 16.444-9.635 18.1-5.48 3.451 8.643.035 11.53 1.468 13.64 1.761 2.593 2.969 3.482 3.975 4.01.731.383 1.171.952 1.116 2.037-.08 1.547-2.938 1.793-3.03 2.238-.227 1.116.663 1.628 2.02 2.524 1.354.895-1.111 1.795-.635 4.652.479 2.854.734 3.936.734 3.936-1.114.816-3.525.776-3.254 2.514.626 4.064-4.716 6.803-15.681.941"/><path fill="#91999f" d="m33.705 45.46c.642-.408 1.255-.84 1.724-1.322.438-.479.78-1.047.409-2.098.433.117.865.57 1.035 1.184.155.625.042 1.313-.189 1.847-.22.518-.512.94-.839 1.307.35.371.671.867.81 1.418.171.577.159 1.146.09 1.649-.096.51-.229.978-.465 1.423-.376-.925-.622-1.819-1-2.309-.199-.238-.377-.416-.64-.589-.253-.182-.56-.358-.885-.542l-1.652-.938 1.604-1.03"/><path fill="#adb5bc" d="m30.22 33.23c-4.254 2.942-7.726-.235-7.726-.235 3.7.892 7.726.235 7.726.235"/><path fill="#c8d2da" d="m29.504 42.22c.502.505.881 1.152 1.18 1.849.305.695.501 1.463.602 2.259.076.799.052 1.635-.166 2.41-.205.777-.593 1.479-1.112 1.951.206-.749.353-1.439.405-2.135.052-.695.035-1.387-.046-2.079-.15-1.392-.508-2.76-.863-4.255"/><g fill="#91999f"><path d="m26.508 24.878c-3.267 0-6.582 2.951-6.582 2.951 7.098-3.246 12.08 0 12.08 0-.637-.807-2.947-2.956-5.503-2.951"/><path d="m14.223 26.35c0 0-6.525 20.704 0 37.65h-4.805c0 0-7.02-18.763.789-38.17l4.02.518"/></g><path fill="#adb5bc" d="m10.262 26.26c0 0-6.525 20.796 0 37.742h-4.805c0 0-7.02-18.854.789-38.26l4.02.516"/><path fill="#91999f" d="M6.41,26.35c0,0-6.525,20.704,0,37.65H0.04V40.464L6.41,26.35z"/><path fill="#c8d2da" d="m18.1 8.584c0 0 3.634-1.037 5.343-.119 11.585 6.223 6.04 7.258 1.949 5.663-2.931-1.144-7.292-5.544-7.292-5.544"/><path fill="#adb5bc" d="m26.47 13.455c0 0 3.763-1.253 5.343-.12 7.617 5.467 1.246 16.1 1.246 16.1s1.465-10.385-2.623-11.98c-2.93-1.145-3.966-4-3.966-4"/><g fill="#c8d2da"><path d="m.04 8.702c12.288-5.861 19.623.713 19.623.713l-19.623 21.318v-22.03"/><path d="m19.516 21.308c7.323-6.609 10.92-3.854 10.92-3.854-10.773-18.02-30.908 7.05-30.396 23.01 0 0 12.909-13.228 19.476-19.16"/><path d="m15.927 31.04c8.495-8.727 12.209-16.657 12.209-16.657-9.03 11.451-24.911 17.957-28.11 45.963 0 0 8-21.2 15.897-29.31"/></g><path fill="#adb5bc" d="m12.153 17.434c7.708-7.414 13.721-4.907 13.721-4.907-8.632-10.786-23.272-4.657-25.834 14.06v13.881c0 0 5.731-16.891 12.11-23.03"/><path fill="none" stroke="#fff" stroke-miterlimit="10" d="m.04 16.184c0 0 16.16 7.735 31.772 5.236"/><g fill="#fff"><ellipse cx="2.602" cy="17.271" rx="1.945" ry="1.995"/><ellipse cx="7.676" cy="19.267" rx="1.158" ry="1.188"/><ellipse cx="12.95" cy="20.909" rx=".983" ry="1.01"/><ellipse cx="17.77" cy="21.308" rx="1.746" ry="1.792"/><ellipse cx="24.422" cy="22.313" rx=".979" ry="1"/><ellipse cx="29.504" cy="21.917" rx="1.368" ry="1.402"/></g><g fill="#42ade2"><path d="m36.516 45.8c4-.938 7.846-2.295 10.598-4.888 1.398-1.243 2.311-2.883 2.495-4.689.202-1.779-.313-3.652-1.507-4.954-1.139-1.307-3.056-1.757-4.637-1.016-1.609.713-2.635 2.48-2.394 4.303.114.895.502 1.751 1.165 2.401.598.586 1.563.888 2.442.652.874-.223 1.694-.892 1.995-1.808.313-.906.185-2.01-.462-2.818.737.717 1.07 1.86.822 2.921-.237 1.069-1.084 1.987-2.157 2.36-1.087.383-2.355.156-3.292-.617-.87-.713-1.45-1.789-1.667-2.906-.222-1.124-.075-2.326.434-3.388.118-.256.299-.54.471-.782l.236-.302c.142-.158.204-.231.319-.344.41-.411.888-.766 1.413-1.039 1.049-.551 2.298-.751 3.486-.537 1.188.208 2.297.849 3.104 1.695 1.633 1.689 2.379 4.092 2.142 6.373-.114 1.141-.441 2.26-.978 3.276-.534 1.019-1.266 1.917-2.072 2.667-1.633 1.508-3.635 2.518-5.695 3.06-2.059.544-4.197.72-6.261.38"/><path d="m50.606 43.07c2.833-1.287 5.59-2.507 7.764-4.297.525-.454 1.022-.94 1.425-1.457.361-.491.641-1.096.787-1.711.291-1.238.107-2.596-.617-3.623-.08-.115-.21-.277-.268-.342-.136-.145-.273-.284-.354-.34-.198-.163-.465-.338-.729-.431-.534-.215-1.141-.251-1.709-.079-.563.17-1.097.54-1.468 1.045-.332.455-.556 1.1-.532 1.733.011.635.253 1.282.653 1.761.401.492 1.028.752 1.672.65.626-.1 1.268-.55 1.518-1.195.264-.645.212-1.473-.26-2.09.565.522.833 1.396.626 2.206-.202.827-.864 1.514-1.726 1.763-.855.261-1.871-.016-2.518-.643-.659-.628-1.048-1.469-1.157-2.357-.103-.892.063-1.813.579-2.631.486-.76 1.224-1.374 2.104-1.71.877-.333 1.886-.366 2.791-.054.461.152.861.375 1.264.682.229.172.359.305.493.433.207.211.316.349.466.538 1.108 1.447 1.463 3.385 1.057 5.118-.199.874-.557 1.694-1.092 2.442-.514.709-1.107 1.313-1.774 1.816-1.31 1.03-2.804 1.713-4.323 2.165-1.524.443-3.094.695-4.672.608"/><path d="m36.516 46.781c2.143-.509 4.349-.685 6.562-.669 2.211.046 4.452.301 6.633 1.01 1.082.364 2.173.801 3.163 1.472.234.15.517.363.718.52.256.207.49.412.703.629.433.436.821.915 1.147 1.433 1.33 2.057 1.708 4.701.944 7.04-.186.579-.443 1.145-.748 1.658-.335.558-.729 1.035-1.204 1.461-.938.852-2.183 1.369-3.452 1.433-1.268.07-2.554-.354-3.523-1.081-1.057-.787-1.681-1.938-1.908-3.138-.229-1.199-.041-2.462.529-3.522.558-1.074 1.68-1.914 2.902-2 1.226-.111 2.423.493 3.02 1.522.592 1.01.53 2.289-.044 3.211.461-.993.309-2.179-.287-2.997-.573-.807-1.682-1.206-2.603-1.025-1.982.339-2.83 2.759-2.33 4.552.23.918.808 1.743 1.52 2.228.796.533 1.71.766 2.611.677.898-.09 1.747-.504 2.403-1.125.325-.307.615-.687.828-1.065.235-.427.417-.86.55-1.318.531-1.824.188-3.867-.845-5.453-1.01-1.615-2.796-2.556-4.724-3.268-1.936-.686-4.01-1.12-6.123-1.438-2.111-.333-4.259-.543-6.444-.739"/><path d="m47.778 45.41c2.778-.629 5.611-.812 8.473-.64 1.437.095 2.869.302 4.349.829.37.137.738.322 1.11.561l.139.096.104.075.051.042.204.164c.148.135.357.322.487.479.578.644.977 1.428 1.181 2.258.368 1.665-.065 3.54-1.484 4.723-.711.568-1.664.836-2.565.716-.45-.059-.884-.21-1.265-.433-.104-.066-.166-.097-.301-.194-.076-.063-.12-.089-.223-.184-.197-.178-.341-.338-.466-.526-.503-.741-.661-1.643-.495-2.467.084-.412.242-.81.48-1.149.253-.366.601-.645 1-.811.803-.35 1.771-.096 2.268.543.514.635.478 1.53.077 2.104.264-.658.056-1.41-.402-1.799-.466-.39-1.141-.419-1.591-.127-.228.141-.417.354-.524.586-.122.258-.201.531-.219.811-.044.557.149 1.118.488 1.494.08.095.184.187.249.235.024.026.133.091.194.134l.15.073c.233.107.479.166.725.174.492.021.965-.18 1.331-.501.73-.658 1-1.921.71-2.943-.142-.522-.401-1.015-.768-1.404-.096-.109-.153-.152-.261-.254l-.206-.161-.052-.04c.057.043-.007-.003-.004 0l-.078-.051c-.22-.135-.485-.249-.767-.363-1.142-.457-2.497-.679-3.829-.915-2.694-.435-5.465-.692-8.27-1.135"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M23.3,53L2,37.5V62C4.2,55.5,23.3,53,23.3,53z" fill="#c8d2da"/><path d="m18.8 51.9c-8.9-5.1-10.5-16-10.5-16s-1.4-5.8 5.8-16.2c4-5.7 15.9-10 17.5-5.7 3.3 9 0 12 1.4 14.2 1.7 2.7 2.9 3.6 3.8 4.2.7.4 1.1 1 1.1 2.1-.1 1.6-2.8 1.9-2.9 2.3-.2 1.2.6 1.7 2 2.6 1.3.9-1.1 1.9-.6 4.8.5 3 .7 4.1.7 4.1-1.1.9-3.4.9-3.1 2.7.6 4.2-4.6 7-15.2.9" fill="#e4eef7"/><path d="m34.6 42.7c.6-.4 1.2-.9 1.7-1.4.4-.5.8-1.1.4-2.2.4.1.8.6 1 1.2.2.6 0 1.4-.2 1.9-.2.5-.5 1-.8 1.4.3.4.7.9.8 1.5.2.6.2 1.2.1 1.7-.1.5-.2 1-.4 1.5-.4-1-.6-1.9-1-2.4-.2-.2-.4-.4-.6-.6-.2-.2-.5-.4-.9-.6l-1.6-1 1.5-1" fill="#91999f"/><path d="m31.2 30c-4.1 3.1-7.5-.2-7.5-.2 3.6.9 7.5.2 7.5.2" fill="#adb5bc"/><path d="m30.5 39.4c.5.5.9 1.2 1.1 1.9.3.7.5 1.5.6 2.3.1.8 0 1.7-.2 2.5-.2.8-.6 1.5-1.1 2 .2-.8.3-1.5.4-2.2 0-.7 0-1.4 0-2.2-.1-1.4-.4-2.8-.8-4.3" fill="#c8d2da"/><g fill="#91999f"><path d="m27.6 21.3c-3.2 0-6.4 3.1-6.4 3.1 6.9-3.4 11.7 0 11.7 0-.5-.8-2.8-3.1-5.3-3.1"/><path d="m15.7 22.9c0 0-6.3 21.5 0 39.1h-4.7c0 0-6.8-19.5.8-39.7l3.9.6"/></g><path d="m11.9 22.8c0 0-6.3 21.6 0 39.2h-4.6c0 0-6.8-19.6.8-39.8l3.8.6" fill="#adb5bc"/><path d="M8.2,22.9c0,0-6.3,21.5,0,39.1H2V37.5L8.2,22.9z" fill="#91999f"/><path d="m19.5 4.4c0 0 3.5-1.1 5.2-.1 11.2 6.5 5.8 7.5 1.9 5.9-2.9-1.2-7.1-5.8-7.1-5.8" fill="#c8d2da"/><path d="m27.6 9.5c0 0 3.6-1.3 5.2-.1 7.4 5.6 1.2 16.7 1.2 16.7s1.4-10.8-2.5-12.5c-2.9-1.2-3.9-4.1-3.9-4.1" fill="#adb5bc"/><g fill="#c8d2da"><path d="M2,4.5c11.9-6.1,19,0.7,19,0.7L2,27.4V4.5z"/><path d="M20.9,17.6c7.1-6.9,10.6-4,10.6-4C21-5.1,2,20.9,2,37.5C2,37.5,14.5,23.8,20.9,17.6z"/><path d="m17.4 27.7c8.2-9.1 11.8-17.3 11.8-17.3-8.7 11.9-24.1 18.7-27.2 47.8 0 0 7.8-22 15.4-30.5"/></g><path d="M13.7,13.6C21.2,5.9,27,8.5,27,8.5C18.7-2.7,4.5,3.7,2,23.1v14.4C2,37.5,7.6,20,13.7,13.6z" fill="#adb5bc"/><g fill="#42ade2"><path d="m38 43.3c4.8.9 10.2-1.6 12.3-6 1.7-3.6 1-10.3-3.7-11.2-3.7-.7-6.1 3.1-5.6 6.3 1.1 6.7 9 2.1 5.5-1.7 1.7 3.1-2.7 5.8-4.2 2.8-1.3-2.7 1.2-7.3 4.6-5.5 3.8 2 2.8 8 .3 10.5-2.4 2.6-5.8 3.9-9.2 4.8"/><path d="m57.2 30.3c1.2 1.8-1.3 4.3-2.8 2.2-1.6-2.2 1.1-5.8 3.5-3.6 4.3 4.5-2.7 10.4-7.6 11.6 3.9.2 8.5-1.9 10-5.7 1-2.6.5-6.8-2.5-8-3.3-1.3-6.1 2.8-4.5 5.6 2.1 3.8 6.3.4 3.9-2.1"/><path d="m38 44.3c4.4.4 9.7.7 13.3 3.4 2.8 2.1 3.8 7 1.3 9.7-2.5 2.7-6.1 0-5.8-3.2.3-3.8 5.8-2.7 4.7.9 2.6-4.8-6.9-6.7-5.6.8.8 4.7 7.4 5.6 9.3 1.2 4.6-11.1-9.5-14.9-17.2-12.8"/><path d="m47.8 42.9c3.9.2 13.6.3 12.5 5.9-.5 2.3-3.6 2.3-3.4-.3.1-2.1 2.8-1.6 2.4.5 2-4-5.6-3.5-3.3 1.3 1.5 3.2 5.7 1.3 6-1.9.6-7.4-9.7-6.6-14.2-5.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f32d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f32d.svg
index eca28c0..e9acb62 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f32d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f32d.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d9a559" d="m51.28 4.362c5.819 5.82.033 21.04-12.922 33.994-12.955 12.957-28.17 18.741-33.993 12.922-8.621-8.621 8.176-12.83 21.13-25.785 12.956-12.955 17.16-29.752 25.785-21.13"/><path fill="#fbbf67" d="m27.17 27.17c12.428-12.43 16.81-28.377 24.756-22.05-.199-.266-.409-.525-.646-.762-8.62-8.621-12.829 8.176-25.786 21.13-12.954 12.955-29.751 17.16-21.13 25.785.236.238.494.447.762.646-6.331-7.946 9.616-12.327 22.04-24.753"/><path fill="#c94747" d="m54.623 5.194c5.792 5.795-2.046 20.336-15.85 34.14-13.804 13.805-28.345 21.643-34.14 15.85-6.715-6.717 10.424-11.957 24.23-25.762 13.804-13.805 19.05-30.942 25.763-24.23"/><path fill="#fbbf67" d="m59.791 12.876c5.744 5.746-.104 20.902-13.06 33.857s-28.11 18.803-33.858 13.06c-5.744-5.744 9.02-11.988 21.974-24.943 12.955-12.955 19.2-27.717 24.943-21.973"/><g opacity=".5" fill="#3e4347"><path opacity=".5" d="m54.49 12.534c.685-.449 1.345-.754 1.984-.875.284-2.672-.277-4.893-1.849-6.465-1.342-1.34-2.622-1.719-3.925-1.375 3.602 2.149 4.488 5.258 3.79 8.715"/><path opacity=".5" d="m13.234 53.54c-8.285 2.873-9.681-3.064-9.682-3.07-.756 1.578-.528 3.104 1.081 4.713 1.672 1.67 4.073 2.201 6.973 1.789.042-1.084.629-2.217 1.628-3.432"/></g><path fill="#d9a559" d="m43.661 43.661c-18.81 18.809-30.22 15.951-31.21 15.658.127.156.263.316.42.473 5.745 5.744 20.904-.104 33.859-13.06 12.251-12.25 18.14-26.463 13.888-32.832 1.42 5.366-1.681 14.481-16.96 29.76"/><g fill="#3e4347"><path opacity=".5" d="m14.358 44.903c2.228.521 3.9 1.389 3.735 1.936-.165.551-2.107.57-4.334.051-2.229-.521-3.9-1.389-3.735-1.936.165-.551 2.106-.57 4.334-.051"/><path opacity=".5" d="m20.223 40.714c2.227.521 3.899 1.389 3.733 1.938-.165.549-2.105.57-4.332.049-2.229-.52-3.901-1.389-3.735-1.936.164-.549 2.106-.571 4.334-.051"/><path opacity=".5" d="m26.924 35.688c2.228.52 3.9 1.389 3.735 1.936-.164.549-2.107.57-4.334.051-2.229-.521-3.899-1.389-3.735-1.938.165-.549 2.107-.568 4.334-.049"/><path opacity=".5" d="m32.789 29.823c2.229.521 3.901 1.389 3.737 1.936-.166.551-2.106.57-4.334.051-2.229-.521-3.9-1.389-3.735-1.938s2.104-.568 4.332-.049"/><path opacity=".5" d="m39.492 23.12c2.228.52 3.899 1.387 3.735 1.936-.165.549-2.106.57-4.334.051-2.229-.521-3.899-1.389-3.736-1.938.166-.549 2.108-.57 4.335-.049"/><path opacity=".5" d="m45.36 15.581c2.228.52 3.9 1.389 3.735 1.936-.165.549-2.105.57-4.334.051-2.228-.521-3.901-1.389-3.735-1.938.166-.547 2.106-.568 4.334-.049"/></g><path fill="#ffce31" d="m10.545 52.12c.795-4.41 4.895-2.689 6.818-5.654.952-1.469 1.541-3.152 2.329-4.717.729-1.445 3.588-.914 5.094-1.439 3.656-1.268 2.095-8.328 6.58-7.885 2.097.205 4.784-.75 5.12-3.24.171-1.275.166-2.352.025-3.645-.398-3.617 4.259-2.975 5.997-3.943 2.387-1.33 3.359-2.77 2.613-5.514-.766-2.809 3.4.184 7.081-3.5 1.776-1.775.548-4.928-.45-6.06-1.52-1.727-2.669.236-2.517 2.516.105 1.574-3.02.92-4.253.904-.778-.008-1.899.207-2.475.801-1.823 1.877.373 3.973-.832 6.244-1.457 2.746-5.193.865-7.639 4.395-2.375 3.428-.503 7.695-3.797 7.371-2.404-.236-3.994 2.232-5.05 3.979-1.146 1.885-1.622 4.787-4.576 4.465-.998-.107-1.71.313-2.486.846-3.248 2.238-1.778 5.801-6.151 6.973-3.471.93-4.243 2.711-4.871 6.203-.404 2.241 3.038 3.171 3.444.903"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.3 4.4c5.8 5.8 0 21-12.9 34s-28.2 18.7-34 12.9c-8.6-8.6 8.2-12.8 21.1-25.8 12.9-13 17.2-29.8 25.8-21.1" fill="#d9a559"/><path d="m27.2 27.2c12.4-12.5 16.8-28.4 24.7-22.1-.2-.3-.4-.5-.6-.8-8.6-8.6-12.8 8.2-25.8 21.1-13 13-29.8 17.2-21.1 25.8.2.2.5.4.8.6-6.4-7.8 9.5-12.2 22-24.6" fill="#fbbf67"/><path d="M54.6,5.2c5.8,5.8-2,20.3-15.8,34.1C25,53.1,10.4,61,4.6,55.2c-6.7-6.7,10.4-12,24.2-25.8
+ C42.7,15.6,47.9-1.5,54.6,5.2z" fill="#c94747"/><path d="m59.8 12.9c5.7 5.7-.1 20.9-13.1 33.9s-28.1 18.7-33.8 13c-5.7-5.7 9-12 22-24.9 12.9-13 19.1-27.8 24.9-22" fill="#fbbf67"/><g opacity=".5" fill="#3e4347"><path d="m54.5 12.5c.7-.4 1.3-.8 2-.9.3-2.7-.3-4.9-1.8-6.5-1.3-1.3-2.6-1.7-3.9-1.4 3.5 2.3 4.4 5.4 3.7 8.8" opacity=".5"/><path d="m13.2 53.5c-8.3 2.9-9.7-3.1-9.7-3.1-.7 1.6-.5 3.2 1.1 4.8 1.7 1.7 4.1 2.2 7 1.8 0-1.1.6-2.2 1.6-3.5" opacity=".5"/></g><path d="m43.7 43.7c-18.8 18.8-30.2 16-31.2 15.7.1.2.3.3.4.5 5.7 5.7 20.9-.1 33.9-13.1 12.2-12.3 18.1-26.5 13.8-32.9 1.4 5.4-1.7 14.5-16.9 29.8" fill="#d9a559"/><g fill="#3e4347"><path d="m14.4 44.9c2.2.5 3.9 1.4 3.7 1.9-.2.6-2.1.6-4.3.1-2.2-.5-3.9-1.4-3.7-1.9.1-.6 2-.6 4.3-.1" opacity=".5"/><path d="m20.2 40.7c2.2.5 3.9 1.4 3.7 1.9-.2.5-2.1.6-4.3 0-2.2-.5-3.9-1.4-3.7-1.9.2-.5 2.1-.5 4.3 0" opacity=".5"/><path d="m26.9 35.7c2.2.5 3.9 1.4 3.7 1.9-.2.5-2.1.6-4.3.1-2.2-.5-3.9-1.4-3.7-1.9.2-.6 2.1-.6 4.3-.1" opacity=".5"/><path d="m32.8 29.8c2.2.5 3.9 1.4 3.7 1.9-.2.6-2.1.6-4.3.1-2.2-.5-3.9-1.4-3.7-1.9s2.1-.6 4.3-.1" opacity=".5"/><path d="m39.5 23.1c2.2.5 3.9 1.4 3.7 1.9-.2.5-2.1.6-4.3.1-2.2-.5-3.9-1.4-3.7-1.9.1-.6 2.1-.6 4.3-.1" opacity=".5"/><path d="m45.4 15.6c2.2.5 3.9 1.4 3.7 1.9-.2.5-2.1.6-4.3.1-2.2-.5-3.9-1.4-3.7-1.9.1-.6 2-.6 4.3-.1" opacity=".5"/></g><path d="m10.5 52.1c.8-4.4 4.9-2.7 6.8-5.7 1-1.5 1.5-3.2 2.3-4.7.7-1.4 3.6-.9 5.1-1.4 3.7-1.3 2.1-8.3 6.6-7.9 2.1.2 4.8-.8 5.1-3.2.2-1.3.2-2.4 0-3.6-.4-3.6 4.3-3 6-3.9 2.4-1.3 3.4-2.8 2.6-5.5-.8-2.8 3.4.2 7.1-3.5 1.8-1.8.5-4.9-.5-6.1-1.5-1.7-2.7.2-2.5 2.5.1 1.6-3 .9-4.3.9-.8 0-1.9.2-2.5.8-1.8 1.9.4 4-.8 6.2-1.5 2.7-5.2.9-7.6 4.4-2.4 3.4-.5 7.7-3.8 7.4-2.4-.2-4 2.2-5.1 4-1.1 1.9-1.6 4.8-4.6 4.5-1-.1-1.7.3-2.5.8-3.2 2.2-1.8 5.8-6.2 7-3.5.9-4.2 2.7-4.9 6.2-.1 2.2 3.3 3.1 3.7.8" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f32e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f32e.svg
index 5385357..7ce2afa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f32e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f32e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d3976e" d="m16.383 61.923c-6.147 0-11.979-.027-14.257-30.822-3.097-41.982 52.1-26.739 52.1-2.469-.001 13.223-37.847 33.29-37.847 33.29"/><path opacity=".5" fill="#fff" d="m3.603 31.1c-1.327-17.976 8.04-25.43 19.18-26.21-.012-.022-.01-.044-.016-.063-11.765.208-22.03 7.512-20.646 26.27 2.107 28.52 7.343 30.806 12.902 30.806-5.142-.886-9.504-4.798-11.425-30.806"/><path fill="#594640" d="m19.344 25.512l-14.954 6.559-2.235 4.949 2.656 1.59-1.92 4.253 1.453.872-2.053 4.547 3.256 1.952-1.937 4.288 4.114 2.466-.727 1.612 4.478 2.686.892-1.973 2.229 2.535 3.618-.928 11.678-22.48-10.548-12.928m-2.076 29.383l.001-.002 1.188-1.352.001.003-1.19 1.351"/><path fill="#89664c" d="m23.14 42.904l-.42-.478 1.855-2.11-.402-.458 2.18-2.477-2.556-2.905-2.556 2.905.402.458-1.251 1.422-1.193-1.357 2.457-2.792-2.555-2.904-1.552 1.763-2.177-2.474-1.381 1.57-1.414-.847-1.623 3.592.512.308-.795 1.759-1.519-.911 1.561-3.453-3.252-1.951-.986 2.181-2.77-1.66-1.621 3.592 3.251 1.951.986-2.183 1.675 1.01-1.282 2.84-2.272-1.36-1.622 3.593 3.251 1.95 1.346-2.98 2.166 1.299-.146.32 2 1.2-.552.628-3.05-1.83-1.292 2.86-2.703-1.621-1.625 3.593 3.253 1.949 1.291-2.859 2.706 1.619.843-1.865.667.758-1.046 2.315-1.573-.94-1.275 2.821-1.923-1.152-1.622 3.593 3.252 1.952 1.275-2.825 1.922 1.152.331-.733 1.03 1.173-.515 1.139-2.286-1.371-1.624 3.594 3.252 1.946 1.409-3.117 2.354 3.358 2.218-2.521 1.798 2.044 2.555-2.905-2.555-2.905-2.219 2.522-.701-.797.46-1.019 2.304-2.722 1.235 1.404 2.556-2.906-2.556-2.904-2.427 2.758-1.236-1.402-1.978 2.246 1.331-2.945-1.157-.693.677-.771.563.337 1.697 1.928 2.555-2.902-2.555-2.908-.192.219-.934-.559 1.177-1.338 1.701 1.936-.229.26 2.311 2.625-.527.598 2.557 2.905 2.555-2.905-2.309-2.625.526-.6m-6.918-3.566l-1.373-1.562.107-.238-.512-.308.292-.646.636.724 1.553-1.765 1.316 1.497-2.02 2.298"/><g fill="#d3976e"><path d="m4.911 39.28l-1.414-.842-.705 1.562 1.414.85z"/><path d="m5.834 42.29l-1.416-.85-.706 1.57 1.415.844z"/><path d="m9.628 38.07l-2.265-1.357-1.132 2.497 2.267 1.363z"/><path d="m13.964 36.829l.707-1.559-1.416-.851-.706 1.563z"/><path d="m12.903 38.752l-1.415-.848-.707 1.564 1.416.852z"/><path d="m10.577 42.24l-.706 1.564 1.415.847.707-1.561z"/><path d="m11.133 45.68l-.706 1.56 1.415.85.707-1.561z"/><path d="m13.156 41.493l1.416.847.706-1.563-1.415-.849z"/><path d="m4.543 44.701l-1.413-.847-.709 1.566 1.418.85z"/><path d="m4.679 50.713l-.705 1.567 1.414.85.706-1.567z"/><path d="m7.357 56.35l1.416.85.706-1.559-1.419-.851z"/><path d="m7.316 46.27l.704-1.567-1.413-.849-.707 1.566z"/><path d="m7.58 47.41l-1.131 2.504 2.266 1.356 1.131-2.5z"/><path d="m10.781 52.975l1.415.847.707-1.562-1.416-.85z"/><path d="m12.11 56.689l1.414.851.706-1.565-1.415-.845z"/><path d="m18.215 35.15l-1.115-1.261-1.11 1.261 1.11 1.268z"/><path d="m19.344 39.11l-1.781-2.02-1.78 2.02 1.78 2.02z"/><path d="m22.43 40.29l1.112 1.261 1.112-1.261-1.112-1.27z"/><path d="m19.808 40.916l-1.113 1.264 1.113 1.27 1.112-1.27z"/><path d="m20.396 45.41l1.114 1.258 1.111-1.258-1.111-1.27z"/><path d="m16.451 47.1l1.113 1.26 1.112-1.26-1.112-1.266z"/><path d="m18.06 48.987l1.11 1.263 1.11-1.263-1.11-1.265z"/><path d="m15.729 45.834l1.111-1.264-1.111-1.27-1.114 1.27z"/><path d="m14.217 47.36l-1.78 2.03 1.78 2.02 1.78-2.02z"/><path d="m16.766 53.36l1.112 1.263 1.112-1.263-1.112-1.27z"/><path d="m14.91 57.2l1.11 1.27 1.12-1.27-1.12-1.262z"/></g><path fill="#ffec40" d="m45.706 8.807l-9.466-6.281-1.327-.526.387 3.9-11.3-2.321-1.196.346-9.241 6.492-2.067 3.055-1.578 3.467-3.625 7.091-3.054 2.354.539 1.436 3.748-2.71 11.416-.307-12.25 3.387.983 4.426 18.04 1.227z"/><g fill="#83bf4f"><path d="m19.35 11.13c-1.124.019-3.852-2.218-3.71-3.217.111-.789 2.541-.856 3.239-1.365.526-.382.982-1.794 1.64-1.938 2.896-.628 4.854 1.48 5.411 2.06.383.398-5.134 4.433-6.58 4.46"/><path d="m11.537 17.14c.282-.815 1.04-2.789.382-3.379-.523-.47-2.377-.131-3 .265-.583.368-1.081 1.687-1.214 2.308-.118.563.446 1.751.175 2.274-.488.948-3.408 1.528-3.735 2.527-.21.642.517 2.02 1.071 2.447.472.363 1.869.743 2.443.495 1.951-.845 3.242-5.092 3.878-6.937"/><path d="m24.657 31.31c-.933-.928-4.579-.357-5.648.498-.764.61-.324 2.768-.859 3.55-.298.436-1.61.813-1.77 1.301-.204.629.732 1.898 1.632 2.107.898.206 2.541 1.544 3.441 1.271.956-.296 4.236-7.699 3.204-8.727"/></g><g fill="#ed4c5c"><path d="m13.33 25.512l-2.628 6.138 6.599 2.38 3.656-6.685z"/><path d="m9.705 24.26l3.415 2.737 5.682-4.02-3.702-2.963z"/><path d="m20.889 19.502l4.655 3.518 5.926-3.592-3.104-4.211z"/><path d="m15.886 11.453l.371 4.833 6.508-3.01-.262-3.396-3.02-1.675z"/></g><path fill="#c94747" d="m22.769 5.02l-.813 4.56 6.66.558.464-3.739z"/><g fill="#ed4c5c"><path d="m26.701 7.491l-1.714 4.125 7.577 1.176 1.526-3.798z"/><path d="m30.21 3.03l-1.677 5.067 7.257.746-.379-4.934z"/><path d="m36.16 2.508l.381 5 6.679-.739.84-3.043z"/></g><g fill="#c94747"><path d="m19.485 8.207l.515 6.699 3.271-1.642-.278-3.597z"/><path d="m33.676 3.619l.384 5.02 1.73.201-.379-4.934z"/><path d="m36.16 2.508l4.607 1.552-.089 2.99 2.602-.133.78-3.187z"/><path d="m45.34 3.99l-4.366 3.294 6.986 2.293-.318-4.142z"/><path d="m20.889 19.502l6.151-2.066 2.787 2.989 1.643-.997-3.104-4.211z"/><path d="m13.892 20.964l2.783 3.516 2.127-1.507-3.702-2.963z"/><path d="m15.596 33.419l1.705.611 3.656-6.685-7.787-1.819 4.737 2.494z"/><path d="m26.701 7.491l5.703 1.886-1.154 3.21 1.314.205 1.526-3.798z"/></g><g fill="#83bf4f"><path d="m35.15 11.71c-1.01-.255-3.771 1.1-3.671 1.995.038.337 1.147.59.843 1.13-.261.461-3.855-.369-4.585.404-.977 1.033 1.428 4.655 2.057 4.815 2.19.557 8.108-7.651 5.356-8.344"/><path d="m40.32 9.741c-.833-.493-1.954-2.321-1.77-3.215.136-.667 1.447-1.941 2.2-1.906.672.032.973 1.842 1.646 1.87.604.025 1.148-1.553 1.752-1.536 1.076.03 2.862 1.946 2.737 2.91-.104.814-2.01 1.848-2.898 2.076-.89.233-2.909.25-3.667-.199"/><path d="m6.725 26.523c-1.023.309-1.71 2.58-2.652 3.048-.302.149-1.133-.116-1.355.119-.521.547-.297 2.295.217 2.822.443.452 2.521-.113 2.655.482.156.67-2.478 1.014-2.487 1.705-.004.382.926.894 1.353.898.663.004 1.632-.376 2.529-.898-.314.533-.417 1.034-.003 1.32 1.016.698 2.721 1.617 3.538 1.157.766-.431.229-2.577.911-3.112.692-.548 2.867.051 3.628-.419.413-.253-.477-9.487-8.334-7.122"/><path d="m18.04 21.854c-1.416-.016-4.746-1.07-4.962-2.316-.085-.493 1.346-1.014 1.541-1.487.245-.59-.683-2.11-.108-2.479.826-.534 2.715 1.472 3.707 1.296.459-.082.918-1.187 1.381-1.155.54.033 1.096 1.077 1.281 1.526.385.931 1.027 3.202.307 3.985-.518.562-2.346.64-3.147.63"/></g><g fill="#ffffd4"><path d="m20.696 23.952l-10.903 1.444-2.831 2.143 1.275.928 10.721-3.447 2.789-.268z"/><path d="m29.796 11.949l-4.686-.412-10.3 3.422 1.6 1.279 8.486-2.717 4.987-.441z"/><path d="m23.602 21.423l-1.146.1 2.093 5.096 3.07.571.833-1.793-1.817-.7z"/><path d="m21.504 27.725l2.239 6.182-1.683 1.113-1.78-5.473z"/><path d="m18.269 9.301l-5.585 2.334-1.188 1.837.806.759 1.697-1.589z"/><path d="m38.566 7.288l-2.041-.583-1.612-4.705-1.352.119 1.619 5.467 2.734 1.072z"/><path d="m29.614 5.261l-6.81-1.336-.684 1.028 7.16 1.98z"/><path d="m11.843 28.577l-4.921 3.633 1.283 2.08 3.402-3.473z"/></g><g fill="#ffec40"><path d="m20 29.572l.789 6.588 1.271-1.14-1.818-5.97z"/><path d="m6.922 32.21l-.601-1.693 5.739-3.01-.19 1.421z"/></g><path fill="#fbbf67" d="m16.383 61.923c0 0 4.183 0 6.636-16.221 2.48-16.401 13.484-38.53 30.625-38.53 5.943 0 9.979 3.944 7.722 25.17-.4 3.738-39.763 29.58-44.983 29.58"/><path fill="#fddfb3" d="m53.664 6.153c-21.651 0-28.388 24.61-30.646 39.55-2.453 16.22-9.104 16.17-9.104 16.17s4.177.527 5.415-.541c1.771-1.526 3.861-5.365 5.166-13.98 2.26-14.933 10.35-39.661 29.736-39.661 5.455 0 7.345 7.922 7.345 7.922s-.971-9.456-7.912-9.456"/><g fill="#d3976e"><path d="m39.17 40.835l1-1.071 1 1.072-1 1.071z"/><path d="m40.481 26.783l1-1.072.999 1.072-1 1.071z"/><path d="m56.11 26.783l1-1.071 1 1.071-1 1.071z"/><path d="m54.23 15.771l1-1.07 1 1.07-1 1.071z"/></g><g fill="#fddfb3"><path d="m48.34 33.36l-1 1.071 1 1.07 1-1.07-1-1.071"/><path d="m50.655 20.757l-.998 1.072.998 1.07 1-1.07-1-1.072"/><path d="m42.969 17.03l-.999 1.07.999 1.07 1-1.07-1-1.07"/><path d="m33.537 32.802l-1 1.072 1 1.069 1-1.069-1-1.072"/><path d="m31.23 46.39l-1 1.07 1 1.071 1-1.071-1-1.07"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m16.4 61.9c-6.1 0-12 0-14.3-30.8-3.1-42 52.1-26.7 52.1-2.5 0 13.3-37.8 33.3-37.8 33.3" fill="#d3976e"/><path d="m3.6 31.1c-1.3-18 8-25.4 19.2-26.2 0 0 0 0 0-.1-11.8.2-22.1 7.5-20.7 26.3 2.1 28.5 7.4 30.8 12.9 30.8-5.1-.9-9.5-4.8-11.4-30.8" opacity=".5" fill="#fff"/><path d="m19.3 25.5l-15 6.6-2.1 4.9 2.7 1.6-1.9 4.3 1.5.9-2.1 4.5 3.3 2-1.9 4.3 3.9 2.4-.7 1.6 4.5 2.7.9-2 2.2 2.5 3.6-.9 11.7-22.5-10.6-12.9" fill="#594640"/><path d="m23 39l3-4-22.3-2.9-1.6 3.6 3.3 2 1-2.2 1.7 1-1.3 2.8-2.3-1.4-1.6 3.6 3.3 1.9 1.3-3 2.2 1.3-.1.3 2 1.2-.6.6-3.1-1.8-1.4 3-2.7-1.6-1.6 3.6 3.3 1.9 1.3-2.9 2.7 1.6.8-1.9.7.8-1 2.3-1.6-.9-1.3 2.8-1.9-1.2-1.6 3.6 3.3 2 1.3-2.8 1.9 1.2.3-.7 1 1.2-.6 1-2.3-1.4-1.6 3.6 3.3 1.9 1.4-3.1 2.4 3.4 2.2-2.5 1.8 2 2.6-2.9-2.6-2.8-2.2 2.5-.8-.8.5-1 2.3-2.7 1.2 1.4 2.6-2.9-2.6-3-2.4 2.8-1.2-1.4-2 2.2 1.3-2.9-1.2-.7.7-.8.6.3 1.7 1.9 2.6-2.9-2.6-2.9-.2.2-.9-.5 1.2-1.3 1.7 1.9-.3.3 2.3 2.6-.5.6 2.6 2.9 2.6-2.9-2-7.1" fill="#89664c"/><g fill="#d3976e"><path d="m9.6 38.1l-2.2-1.4-1.2 2.5 2.3 1.4z"/><path d="m14 36.8l.7-1.5-1.4-.9-.8 1.6z"/><path d="m10.6 42.2l-.7 1.6 1.4.9.7-1.6z"/><path d="m11.1 45.7l-.7 1.5 1.4.9.7-1.6z"/><path d="m13.2 41.5l1.4.8.7-1.5-1.4-.9z"/><path d="m4.5 44.7l-1.4-.8-.7 1.5 1.4.9z"/><path d="m4.7 50.7l-.7 1.6 1.4.8.7-1.5z"/><path d="m7.4 56.4l1.4.8.7-1.6-1.4-.8z"/><path d="m7.3 46.3l.7-1.6-1.4-.8-.7 1.5z"/><path d="m7.6 47.4l-1.2 2.5 2.3 1.4 1.1-2.5z"/><path d="m10.8 53l1.4.8.7-1.5-1.4-.9z"/><path d="m12.1 56.7l1.4.8.7-1.5-1.4-.9z"/><path d="m18.2 35.2l-1.1-1.3-1.1 1.3 1.1 1.2z"/><path d="m19.3 39.1l-1.7-2-1.8 2 1.8 2z"/><path d="m19.8 40.9l-1.1 1.3 1.1 1.2 1.1-1.2z"/><path d="m20.4 45.4l1.1 1.3 1.1-1.3-1.1-1.3z"/><path d="m16.5 47.1l1.1 1.3 1.1-1.3-1.1-1.3z"/><path d="m16.8 53.4l1.1 1.2 1.1-1.2-1.1-1.3z"/><path d="m14.9 57.2l1.1 1.3 1.1-1.3-1.1-1.3z"/></g><path fill="#ffec40" d="m45.7 8.8l-9.5-6.3-1.3-.5.4 3.9-11.3-2.3-1.2.3-11.8 8.1-4.7 12-3.3 1v2l7-2-3.3 3.2 1 4.4 18 1.2z"/><g fill="#83bf4f"><path d="m22.5 4.6c-2.2-.4-4 2-6.1 2.7-2.2.8 1.8 3.8 3 3.8 3.4 0 9.8-5.2 3.1-6.5"/><path d="m11.5 17.1c.8-2.3.5-5.1-2.6-3.1-2.6 1.7.2 4.3-3 5.8-3.1 1.4-1 5.4 1.7 4.2 2.4-.9 3.2-4.6 3.9-6.9"/><path d="m11.5 17.1c0 .1 0 .1 0 0"/><path d="m24.7 31.3c.2.3.5.5 0 0-3.7-3.6-9.1 5-7.9 6.6 4.7 6.2 10.1-4.3 7.9-6.6"/></g><g fill="#ed4c5c"><path d="m13.3 25.5l-2.6 6.1 6.6 2.4 3.7-6.7z"/><path d="m9.7 24.3l3.4 2.7 5.7-4-3.7-3z"/><path d="m20.9 19.5l4.6 3.5 6-3.6-3.1-4.2z"/><path d="m15.9 11.5l.4 4.8 6.5-3-.3-3.4-3-1.7z"/><path d="m29.4 3.2l-1.7 5.1 7.3.7-.4-4.9z"/><path d="m37 3l.4 5 6.7-.7.8-3.1z"/></g><g fill="#83bf4f"><path d="m35.2 11.7c2.7.7-1.1-.2 0 0"/><path d="m36 12c-.9-.7-2.7 2.2-3.7 2.8-1.2.8-10.7 3.1-2.5 5.2 2.6.7 8.2-6.4 6.2-8"/><path d="m40.3 9.7c-.8-.5.8.5 0 0"/><path d="m43.3 5.7c-1.7 2.3-1.4-2.6-3.9-.4-1.5 1.3-.7 3.5.9 4.4 1.4.9 6.3.4 6.6-1.9.2-1.5-2.4-3.7-3.6-2.1"/><path d="m7 26c-1.4 0-4.3 3.7-4.3 3.7-2.6 2.8 2.8 2.8 2.9 3.3-.8.6-1.6 1.2-2.5 1.7 0 2 4.2-.2 3.9 0-2.4 4.1 7.5-.7 8.1-1.1 3.4-2.1-2.1-7.6-8.1-7.6"/><path d="m18 21.9c-1.4-.1.8 0 0 0"/><path d="m20.4 16.3c-3.4-6.3-3.8 0-4.4.7-.4.4-5 0-2.9 2.5.9 1.1 3.6 2.7 5 2.3 2.9-.8 3-4.2 2.3-5.5"/></g><g fill="#ffffd4"><path d="m20.7 24l-10.9 1.4-2.8 2.1 1.2 1 10.8-3.5 2.7-.2z"/><path d="m29 12.7l-4.7-.4-10.3 3.4 1.6 1.3 8.5-2.7 5-.5z"/><path d="m23.1 21.2l-1.1.1 2.1 5.1 3.1.6.8-1.8-1.8-.7z"/><path d="m21.5 27.7l2.2 6.2-1.6 1.1-1.8-5.5z"/><path d="m38.6 7.3l-2.1-.6-1.6-4.7-1.3.1 1.6 5.5 2.7 1.1z"/><path d="m29.6 5.3l-6.8-1.4-.7 1.1 7.2 1.9z"/></g><path d="m16.4 61.9c0 0 4.2 0 6.6-16.2 2.5-16.4 13.5-38.5 30.6-38.5 5.9 0 10 3.9 7.7 25.2-.3 3.7-39.7 29.5-44.9 29.5" fill="#fbbf67"/><path d="m53.7 6.2c-21.7 0-28.4 24.6-30.7 39.5-2.5 16.2-9.1 16.2-9.1 16.2s4.2.5 5.4-.5c1.8-1.5 3.9-5.4 5.2-14 2.3-15 10.3-39.7 29.7-39.7 5.5 0 7.3 7.9 7.3 7.9s-.9-9.4-7.8-9.4" fill="#fddfb3"/><g fill="#d3976e"><path d="m39.2 40.8l1-1 1 1-1 1.1z"/><path d="m40.5 26.8l1-1.1 1 1.1-1 1.1z"/><path d="m56.1 26.8l1-1.1 1 1.1-1 1.1z"/><path d="m54.2 15.8l1-1.1 1 1.1-1 1z"/></g><g fill="#fddfb3"><path d="m48.3 33.4l-1 1 1 1.1 1-1.1-1-1"/><path d="m50.7 20.8l-1 1 1 1.1 1-1.1-1-1"/><path d="m43 17l-1 1.1 1 1.1 1-1.1-1-1.1"/><path d="m33.5 32.8l-1 1.1 1 1 1-1-1-1.1"/><path d="m31.2 46.4l-1 1.1 1 1 1-1-1-1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f32f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f32f.svg
index b63f127..6ae9039 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f32f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f32f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fddfb3" d="m58.19 4.134c-3.786-3.972-21.769-4.915-47.15 20.246-10.156 10.07-6.317 32.01 10.195 36.18 18.225 4.604 24.14-5.03 27.344-9.396 10.1-13.765 18.629-43.531 9.61-47.03"/><path fill="#89664c" d="m44.819 30.25c-6.271-10.237-15.15-10.257-19.901-9.979-22.646 1.346-23.511 35.21-1.714 39.18 24.24 4.412 27.889-18.964 21.615-29.2"/><path fill="#f2b200" d="m25.494 47.818l-3.635 4.392 1.742 3.571 5.719-.155 1.489-6.627-2.084-2.341z"/><path opacity=".6" fill="#ed4c5c" d="m25.494 47.818l-3.635 4.392 1.742 3.571 5.719-.155 1.489-6.627-2.084-2.341z"/><g fill="#f2b200"><path d="m28.348 46.793l-2.854 1.025-3.635 4.392.438.9 4.655-.13z"/><path d="m23.541 22.2l-3.607 5.79 2.566 3.873 6.66-1.207.778-8.02-2.788-2.366z"/></g><path opacity=".6" fill="#ed4c5c" d="m23.541 22.2l-3.607 5.79 2.566 3.873 6.66-1.207.778-8.02-2.788-2.366z"/><path fill="#f2b200" d="m26.731 20.494l-3.19 1.706-3.607 5.79.647.977 5.429-.983z"/><path fill="#d3976e" d="m25.318 29.23l-6.05 1.95-1.299 7.96 7 .365.353-10.275"/><path opacity=".5" fill="#fff" d="m25.318 29.23l-5.359 9.91 5.01.365.353-10.275"/><g fill="#d3976e"><path d="m25.959 50.73l-3.125-6.94-7.375-.56.203 9.07 10.297-1.57"/><path d="m19.791 47.48c0 0-5.718.262-6.703 2.526-.985 2.263-2.526 6.3-1.482 8.05 1.045 1.745 5.882 2.461 8.249.975 2.365-1.487 1.724-11.739-.064-11.547"/></g><path opacity=".5" fill="#89664c" d="m13.09 50.01c-.985 2.263-2.526 6.3-1.482 8.05-.922-3.354 4.483-1.844 6-2.433 1.517-.591 2.186-8.14 2.186-8.14s-5.719.262-6.704 2.527"/><path fill="#d3976e" d="m16.673 47.03c0 0-1.989-6.274-4.359-6.677-2.372-.404-6.536-.88-7.813.814-1.278 1.695-.451 7.292 1.631 9.466 2.085 2.176 11.264-1.673 10.541-3.603"/><path opacity=".5" fill="#89664c" d="m12.314 40.35c-2.372-.404-6.536-.88-7.813.814 2.782-2.049 3.059 4.42 4.061 5.924 1 1.507 8.11-.062 8.11-.062s-1.988-6.274-4.358-6.676"/><path fill="#d3976e" d="m14.334 29.774c0 0-5.03-2.448-6.753-.956-1.721 1.491-4.604 4.255-4.375 6.248.23 1.994 4.128 4.873 6.741 4.697 2.611-.175 6-9.318 4.387-9.989"/><path opacity=".5" fill="#89664c" d="m7.581 28.818c-1.721 1.491-4.604 4.255-4.375 6.248.495-3.322 4.578.506 6.112.707 1.535.201 5.02-5.999 5.02-5.999s-5.03-2.448-6.754-.956"/><path opacity=".5" fill="#fff" d="m14.334 29.774c0 0-3.074 5.474-4.719 5.966-.141.474-.198.91-.134 1.285.177 1.041.21 1.94.14 2.738.109.002.22.008.326 0 2.611-.175 6-9.318 4.387-9.989"/><path fill="#d3976e" d="m23.764 23.02c0 0-4.786-3.877-6.915-2.749-2.131 1.127-5.753 3.296-5.937 5.456-.181 2.163 3.316 6.201 6.105 6.691 2.792.487 8.307-8.274 6.747-9.398"/><path opacity=".5" fill="#89664c" d="m16.85 20.276c-2.131 1.127-5.753 3.296-5.937 5.456 1.226-3.374 4.717 1.713 6.292 2.321 1.574.608 6.56-5.03 6.56-5.03s-4.786-3.878-6.915-2.75"/><path opacity=".5" fill="#fff" d="m23.764 23.02c0 0-4.403 4.977-6.239 5.07-.25.463-.402.908-.416 1.319-.033 1.142-.189 2.1-.434 2.923.114.029.229.064.342.085 2.792.488 8.307-8.273 6.747-9.397"/><path fill="#f2b200" d="m10.145 45.43l-1.22 4.245 2.204 1.825 3.842-2.08-.871-5.03-2.09-.87z"/><path opacity=".6" fill="#ed4c5c" d="m10.145 45.43l-1.22 4.245 2.204 1.825 3.842-2.08-.871-5.03-2.09-.87z"/><path fill="#f2b200" d="m11.793 43.745l-1.648 1.685-1.22 4.245.556.465 3.128-1.7z"/><g fill="#ffc7ce"><path d="m26.22 42.26c-3.626 2.036-4.396 3.02-3.942 6.111.452 3.088 3.036-.794 8.166-2.273 5.13-1.479 2.465-7.594-4.224-3.838"/><path d="m29.16 31.489c-2.794-3.225-3.866-3.75-6.404-2.392-2.538 1.357 1.555 2.96 4.296 7.92 2.741 4.963 7.263.42 2.108-5.528"/></g><path fill="#83bf4f" d="m9.395 40.4c-5.101 3.356-8.675 6.262-6.96 7.553 2.18 1.641 8.932-4.516 11.547-7.682 2.616-3.165 5.938-6.793-4.587.129"/><path opacity=".5" fill="#c7e755" d="m2.435 47.951c2.18 1.641 8.932-4.516 11.547-7.682 1.302-1.576 2.777-3.264 2.635-3.711-.556.612-7.355 7.999-14.182 11.393"/><path fill="#83bf4f" d="m13.953 49.72c-4.914 3.495-8.336 6.489-6.592 7.712 2.217 1.555 8.655-4.77 11.12-7.992 2.464-3.221 5.608-6.928-4.529.28"/><path opacity=".5" fill="#c7e755" d="m7.361 57.43c2.217 1.555 8.655-4.77 11.12-7.992 1.226-1.602 2.619-3.322 2.461-3.762-.526.622-6.964 8.165-13.582 11.754"/><path fill="#83bf4f" d="m27.504 53.744c-5.696 2.229-9.803 4.334-8.382 5.962 1.807 2.069 9.7-2.565 12.918-5.128 3.219-2.564 7.225-5.432-4.536-.834"/><path opacity=".5" fill="#c7e755" d="m19.12 59.706c1.807 2.069 9.7-2.565 12.918-5.128 1.601-1.276 3.395-2.625 3.347-3.096-.67.485-8.862 6.319-16.265 8.224"/><path fill="#83bf4f" d="m28.745 38.38c-6.03 1.123-10.462 2.417-9.361 4.273 1.398 2.358 10.03-.708 13.676-2.617 3.642-1.907 8.119-3.97-4.315-1.656"/><path opacity=".5" fill="#c7e755" d="m19.384 42.651c1.398 2.358 10.03-.708 13.676-2.617 1.813-.946 3.83-1.935 3.87-2.403-.751.348-9.901 4.532-17.546 5.02"/><path fill="#83bf4f" d="m32.359 21.808c-5.519-1.509-9.767-2.219-9.582-.191.233 2.578 8.723 3.498 12.55 3.364 3.828-.136 8.418-.06-2.968-3.173"/><path opacity=".5" fill="#c7e755" d="m22.777 21.617c.233 2.578 8.723 3.498 12.55 3.364 1.905-.068 3.996-.082 4.216-.464-.769-.01-10.138-.193-16.766-2.9"/><g fill="#fffbe9"><path d="m32.01 61.764c-.793.408-.084.206 0 0"/><path d="m44.18 28.336l-3.517-3.316-2.333-.19-1.28-2.54-4.119-.18-.881 3.1-3.11-.1v3.01l-2.422 1.267 4.058 3.592-.746 4.513 2.103 5.648-3.753 3.92.638 1.655 1.918-1.345-2.656 7.01 3.13-2.579-2.27 6.369h1.996l-1.996 3.01 7.983-2.01 5.117-3.66 4.2-5.559-1.335-2.801 2.623-3.92.182-4.401-1.103-4.479-2.701-3.535z"/></g><g fill="#e8e1d6"><path d="m42.47 51.2l-1.14 4.03 2.608-2.79.009-.03.901-3.802-2.378 2.592"/><path d="m44.954 38.852l.526 2.853 2.048-2.887-.695-2.865-1.879 2.899"/><path d="m42.45 31.621l.132 3.067 2.388 1.941.09-3.085-2.61-1.923"/><path d="m36.31 41.14l.128 3.07 2.387 1.94.094-3.09-2.609-1.92"/><path d="m41.674 51.19l-3.089 2.01-1.662 2.97 2.993-1 1.758-3.98"/><path d="m41.814 28.424l-1.614-2.798-3.663-1.088 1.793 2.767 3.484 1.119"/><path d="m33.782 34.447l2.338 2.121 3.398-.021-2.288-2.133-3.448.033"/><path d="m34.927 48.03l2.333 2.13 3.403-.03-2.293-2.13-3.443.03"/><path d="m35.925 25.9l-3.625-.79-2.817 1.431 3.512.813 2.93-1.454"/><path d="m33.387 31.911l-3.625-.791-2.818 1.432 3.512.808 2.931-1.449"/><path d="m40.15 40.04l1.89-2.86-.76-2.83-1.716 2.87.586 2.82"/><path d="m34.66 38.738l-1.044-2.791-1.306 2.809.88 2.791 1.47-2.809"/><path d="m43.907 43.34l-1.045-2.791-1.302 2.811.87 2.79 1.477-2.81"/><path d="m38.27 30.908l-1.04-2.788-1.305 2.806.871 2.79 1.474-2.808"/><path d="m32.33 60.28l.75-2.72-.464-1.658 1.01.928 2.714-.182-.944-1.937-1.722-.291.466-3.33-.84.556.04-1.346-.683-1.694.693-1.667-.438-2.789-1.702 2.784.723 1.216-.773 3.19 1.07 1.98-1.294.84.461 2.22-.561 2.7 1.494 1.2"/></g><path fill="#ffc7ce" d="m23.02 50.37c-2.352-2.883-3.272-3.368-5.509-2.259-2.236 1.107 1.281 2.616 3.549 7.01 2.267 4.387 6.3.567 1.96-4.746"/><path fill="#f2b200" d="m13.997 34.91l-.023 6.44 3.757 1.476 4.489-4.706-3.17-6.521-3.222-.211z"/><path opacity=".6" fill="#ed4c5c" d="m13.997 34.91l-.023 6.44 3.757 1.476 4.489-4.706-3.17-6.521-3.222-.211z"/><path fill="#f2b200" d="m15.615 31.803l-1.618 3.107-.023 6.44.947.373 3.653-3.833z"/><g fill="#89664c"><path opacity=".5" d="m39.27 12.02l-1 1-1-1 1-1z"/><path opacity=".5" d="m53.886 25.11l-.998 1-.998-1 .998-1z"/><path opacity=".5" d="m37.534 15.343l-.997 1-.998-1 .998-1z"/><path opacity=".5" d="m48.935 7.272l-.997 1-.999-1 .999-1z"/><path transform="matrix(.7057-.7085.7085.7057 7.712 38.12)" opacity=".5" d="m49.39 9.424h.707v.707h-.707z"/><path transform="matrix(.705-.7092.7092.705-3.905 43.837)" opacity=".5" d="m50.39 26.26h.706v.707h-.706z"/><path transform="matrix(.7057-.7085.7085.7057 10.551 36.943)" opacity=".5" d="m49.39 5.416h.707v.707h-.707z"/><path opacity=".5" d="m55.38 28.12l-1.494 1.499-1.496-1.499 1.496-1.507z"/><path opacity=".5" d="m35.61 13.83l-1.996 2-1.996-2 1.996-2z"/><path opacity=".5" d="m32.424 17.508c9.1 2.492 25.487 2.916 25.765-13.374 0 0 2.087 16.732-14.433 16.88-12.933.109-15.668-4.855-24.919-3.77 0 0 5.208-2.029 13.587.264"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.2 4.1c-3.8-4-21.8-4.9-47.1 20.2-10.2 10.1-6.3 32 10.2 36.2 18.2 4.6 24.1-5 27.3-9.4 10.1-13.7 18.6-43.5 9.6-47" fill="#fddfb3"/><path d="M44.8,30.2C38.5,20,29.7,20,24.9,20.3C2.3,21.6,1.4,55.5,23.2,59.4C47.4,63.9,51.1,40.5,44.8,30.2z" fill="#89664c"/><g fill="#d3976e"><path d="m25.3 29.2l-6 2-1.3 7.9 7 .4z"/><path d="m26 50.7l-3.2-6.9-7.3-.6.2 9.1z"/><path d="m19.8 47.5c0 0-5.7.3-6.7 2.5-1 2.3-2.5 6.3-1.5 8 1 1.7 5.9 2.5 8.2 1 2.4-1.5 1.8-11.7 0-11.5"/></g><path d="m13.1 50c-1 2.3-2.5 6.3-1.5 8-.9-3.4 4.5-1.8 6-2.4 1.5-.6 2.2-8.1 2.2-8.1s-5.7.2-6.7 2.5" opacity=".5" fill="#89664c"/><path d="m16.7 47c0 0-2-6.3-4.4-6.7-2.4-.4-6.5-.9-7.8.8-1.3 1.7-.5 7.3 1.6 9.5 2.1 2.2 11.3-1.6 10.6-3.6" fill="#d3976e"/><path d="m12.3 40.4c-2.4-.4-6.5-.9-7.8.8 2.8-2 3.1 4.4 4.1 5.9 1 1.5 8.1-.1 8.1-.1s-2-6.2-4.4-6.6" opacity=".5" fill="#89664c"/><path d="m14.3 29.8c0 0-5-2.4-6.8-1s-4.5 4.3-4.3 6.3c.2 2 4.1 4.9 6.7 4.7 2.7-.2 6-9.4 4.4-10" fill="#d3976e"/><path d="m7.6 28.8c-1.7 1.5-4.6 4.3-4.4 6.2.5-3.3 4.6.5 6.1.7 1.5.2 5-6 5-6s-5-2.4-6.7-.9" opacity=".5" fill="#89664c"/><path d="m23.8 23c0 0-4.8-3.9-6.9-2.7-2.1 1.1-5.8 3.3-5.9 5.5-.2 2.2 3.3 6.2 6.1 6.7 2.7.4 8.2-8.4 6.7-9.5" fill="#d3976e"/><path d="m16.9 20.3c-2.1 1.1-5.8 3.3-5.9 5.5 1.2-3.4 4.7 1.7 6.3 2.3 1.6.6 6.6-5 6.6-5s-4.9-4-7-2.8" opacity=".5" fill="#89664c"/><g fill="#ffc7ce"><path d="m26.2 42.3c-3.6 2-4.4 3-3.9 6.1.5 3.1 3-.8 8.2-2.3s2.4-7.6-4.3-3.8"/><path d="m29.2 31.5c-2.8-3.2-3.9-3.8-6.4-2.4-2.5 1.4 1.6 3 4.3 7.9s7.2.4 2.1-5.5"/></g><g fill="#83bf4f"><path d="m9.4 40.4c-5.1 3.4-8.7 6.3-7 7.6 2.2 1.6 8.9-4.5 11.5-7.7 2.7-3.2 6-6.8-4.5.1"/><path d="m14 49.7c-4.9 3.5-8.3 6.5-6.6 7.7 2.2 1.6 8.7-4.8 11.1-8 2.4-3.2 5.6-6.9-4.5.3"/><path d="m27.5 53.7c-5.7 2.2-9.8 4.3-8.4 6 1.8 2.1 9.7-2.6 12.9-5.1 3.3-2.6 7.3-5.5-4.5-.9"/><path d="m28.7 38.4c-6 1.1-10.5 2.4-9.4 4.3 1.4 2.4 10-.7 13.7-2.6 3.7-2 8.2-4-4.3-1.7"/><path d="m32.4 21.8c-5.5-1.5-9.8-2.2-9.6-.2.2 2.6 8.7 3.5 12.6 3.4 3.8-.2 8.3-.1-3-3.2"/></g><g fill="#fffbe9"><path d="m32 61.8c-.8.4-.1.2 0 0"/><path d="m44.2 28.3l-3.5-3.3-2.4-.2-1.3-2.5-4.1-.2-.8 3.1-3.2-.1v3l-2.4 1.3 4.1 3.6-.8 4.5 2.1 5.6-3.7 4 .6 1.6 1.9-1.3-2.6 7 3.1-2.6-2.3 6.4h2l-2 3 8-2 5.1-3.7 4.2-5.5-1.3-2.8 2.6-4 .2-4.4-1.1-4.5-2.7-3.5z"/></g><g fill="#e8e1d6"><path d="m42.5 51.2l-1.2 4 2.6-2.8.9-3.8z"/><path d="m45 38.9l.5 2.8 2-2.9-.7-2.8z"/><path d="m42.5 31.6l.1 3.1 2.4 1.9.1-3.1z"/><path d="m36.3 41.1l.1 3.1 2.4 1.9.1-3z"/><path d="m30.4 45l.1 3.1 2.4 1.9.1-3.1z"/><path d="m41.7 51.2l-3.1 2-1.7 3 3-1z"/><path d="m35 53l-3.1 2-1.7 3 3-1z"/><path d="m41.8 28.4l-1.6-2.8-3.7-1.1 1.8 2.8z"/><path d="m33.8 34.4l2.3 2.2 3.4-.1-2.3-2.1z"/><path d="m34.9 48l2.4 2.2 3.4-.1-2.3-2.1z"/><path d="m35.9 25.9l-3.6-.8-2.8 1.4 3.5.9z"/><path d="m33.4 31.9l-3.6-.8-2.9 1.5 3.6.8z"/><path d="m40.2 40l1.8-2.8-.7-2.9-1.7 2.9z"/><path d="m34.7 38.7l-1.1-2.8-1.3 2.9.9 2.7z"/><path d="m43.9 43.3l-1-2.8-1.3 2.9.8 2.8z"/><path d="m38.3 30.9l-1.1-2.8-1.3 2.8.9 2.8z"/></g><path d="m23 50.4c-2.4-2.9-3.3-3.4-5.5-2.3-2.2 1.1 1.3 2.6 3.5 7 2.3 4.4 6.4.6 2-4.7" fill="#ffc7ce"/><g fill="#e8662d"><path d="m25.5 47.8l-3.6 4.4 1.7 3.6 5.7-.2 1.5-6.6-2.1-2.3-3.2 1.1"/><path d="m28.7 46.7l-3.2 1.1-3.6 4.4 1.7 3.6 5.7-.2 1.5-6.6-2.1-2.3"/><path d="m23.5 22.2l-3.6 5.8 2.6 3.9 6.7-1.2.7-8.1-2.7-2.3-3.7 1.9"/><path d="m27.2 20.3l-3.7 1.9-3.6 5.8 2.6 3.9 6.7-1.2.7-8.1-2.7-2.3"/><path d="m10.1 45.4l-1.2 4.3 2.2 1.8 3.9-2.1-.9-5-2.1-.9-1.9 1.9"/><path d="m12 43.5l-1.9 1.9-1.2 4.3 2.2 1.8 3.9-2.1-.9-5-2.1-.9"/><path d="m14 34.9v6.4l3.7 1.5 4.5-4.7-3.2-6.5-3.2-.2-1.8 3.5"/><path d="m15.8 31.4l-1.8 3.5v6.4l3.7 1.5 4.5-4.7-3.2-6.5-3.2-.2"/></g><g fill="#89664c"><path opacity=".5" d="m39.3 12l-1 1-1-1 1-1z"/><path opacity=".5" d="m53.9 25.1l-1 1-1-1 1-1z"/><path opacity=".5" d="m37.5 15.3l-1 1-1-1 1-1z"/><path opacity=".5" d="m48.9 7.3l-1 1-1-1 1-1z"/><path transform="matrix(.705-.7092.7092.705 7.7418 38.1628)" opacity=".5" d="m49.4 9.4h.7v.7h-.7z"/><path transform="matrix(.705-.7092.7092.705-3.9034 43.8373)" opacity=".5" d="m50.4 26.3h.7v.7h-.7z"/><path transform="matrix(.7064-.7078.7078.7064 10.5203 36.9043)" opacity=".5" d="m49.4 5.4h.7v.7h-.7z"/><path opacity=".5" d="m55.4 28.1l-1.5 1.5-1.5-1.5 1.5-1.5z"/><path opacity=".5" d="m35.6 13.8l-2 2-2-2 2-2z"/><path d="m32.4 17.5c9.1 2.5 25.5 2.9 25.8-13.4 0 0 2.1 16.7-14.4 16.9-12.9.1-15.7-4.9-24.9-3.8-.1 0 5.1-2 13.5.3" opacity=".33"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f330.svg b/build/js/jsxc/lib/emojione/assets/svg/1f330.svg
index 8338ae6..5def656 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f330.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f330.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="M62,32c0,15.465-13.432,28-30,28C15.431,60,2,47.465,2,32C2,16.536,32,4,32,4S62,16.536,62,32z"/><path fill="#e0ac7e" d="M32,50.915c-10.341,0-19.908-3.063-27.743-8.255C8.751,52.836,19.476,60,32,60
- c12.523,0,23.25-7.164,27.742-17.34C51.908,47.853,42.34,50.915,32,50.915z"/><g fill="#846144"><path d="m32 4c-3.417 3-6.73 6.01-9.799 9.219-1.51 1.625-3.01 3.244-4.349 4.98-1.362 1.714-2.637 3.486-3.701 5.362-2.164 3.71-3.681 7.794-3.648 12.03-.009 4.243 1.643 8.444 4.084 12.271-1.707-1.51-3.166-3.327-4.308-5.375-1.115-2.058-1.881-4.366-2.113-6.763-.281-2.395.021-4.832.611-7.146.617-2.317 1.603-4.5 2.786-6.534 2.413-4.049 5.549-7.532 9.03-10.521 3.48-2.991 7.297-5.559 11.404-7.526"/><path d="m32 4c4.107 1.967 7.924 4.535 11.404 7.527 3.484 2.988 6.62 6.472 9.03 10.521 1.183 2.033 2.168 4.217 2.786 6.534.591 2.314.893 4.751.611 7.146-.232 2.396-.998 4.705-2.113 6.763-1.143 2.048-2.602 3.865-4.309 5.375 2.441-3.827 4.093-8.03 4.084-12.271.032-4.239-1.483-8.323-3.648-12.03-1.063-1.876-2.339-3.648-3.7-5.362-1.34-1.736-2.84-3.355-4.35-4.98-3.068-3.209-6.38-6.22-9.798-9.22"/><path d="m32 4c-1.253 4.064-2.625 7.934-3.925 11.796-1.307 3.853-2.551 7.676-3.569 11.509-1.01 3.832-1.817 7.673-2.02 11.528-.202 3.854.231 7.723 2.104 11.566-1.755-1.229-3.158-3.01-4.16-4.999-.998-1.996-1.585-4.191-1.872-6.392-.553-4.423.018-8.838 1.119-12.988 1.113-4.161 2.776-8.108 4.819-11.814 2.07-3.688 4.472-7.197 7.506-10.206"/><path d="m32 4c3.034 3.01 5.437 6.518 7.507 10.206 2.043 3.706 3.706 7.653 4.819 11.814 1.101 4.15 1.672 8.565 1.119 12.988-.287 2.2-.874 4.396-1.872 6.392-1 1.986-2.405 3.771-4.16 4.999 1.873-3.844 2.307-7.713 2.104-11.566-.205-3.855-1.016-7.697-2.02-11.528-1.019-3.833-2.263-7.656-3.569-11.509-1.301-3.862-2.673-7.732-3.926-11.796"/><path d="m32 4c1.034 3.91 1.571 7.819 1.959 11.729.367 3.91.537 7.819.54 11.729.004 3.91-.167 7.819-.533 11.729-.385 3.909-.924 7.819-1.966 11.729-1.042-3.909-1.581-7.819-1.966-11.729-.366-3.91-.538-7.819-.533-11.729.002-3.91.173-7.819.54-11.729.387-3.91.924-7.819 1.959-11.729"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,15.5-13.4,28-30,28C15.4,60,2,47.5,2,32C2,16.5,32,4,32,4S62,16.5,62,32z" fill="#947151"/><path d="m32 50.9c-10.3 0-19.9-3.1-27.7-8.3 4.5 10.2 15.2 17.4 27.7 17.4 12.5 0 23.2-7.2 27.7-17.3-7.8 5.2-17.4 8.2-27.7 8.2" fill="#e0ac7e"/><g fill="#846144"><path d="m32 4c-3.4 3-6.7 6-9.8 9.2-1.5 1.6-3 3.2-4.3 5-1.4 1.7-2.6 3.5-3.7 5.4-2.2 3.7-3.7 7.8-3.6 12 0 4.2 1.6 8.4 4.1 12.3-1.7-1.5-3.2-3.3-4.3-5.4-1.1-2.1-1.9-4.4-2.1-6.8-.3-2.4 0-4.8.6-7.1.6-2.3 1.6-4.5 2.8-6.5 2.4-4 5.5-7.5 9-10.5 3.4-3.1 7.2-5.6 11.3-7.6"/><path d="m32 4c4.1 2 7.9 4.5 11.4 7.5 3.5 3 6.6 6.5 9 10.5 1.2 2 2.2 4.2 2.8 6.5.6 2.3.9 4.8.6 7.1-.2 2.4-1 4.7-2.1 6.8-1.1 2-2.6 3.9-4.3 5.4 2.4-3.8 4.1-8 4.1-12.3 0-4.2-1.5-8.3-3.6-12-1.1-1.9-2.3-3.6-3.7-5.4-1.3-1.7-2.8-3.4-4.3-5-3.2-3.1-6.5-6.1-9.9-9.1"/><path d="m32 4c-1.3 4.1-2.6 7.9-3.9 11.8-1.3 3.9-2.6 7.7-3.6 11.5-1 3.8-1.8 7.7-2 11.5-.2 3.9.2 7.7 2.1 11.6-1.8-1.2-3.2-3-4.2-5-1-2-1.6-4.2-1.9-6.4-.6-4.4 0-8.8 1.1-13 1.1-4.2 2.8-8.1 4.8-11.8 2.2-3.7 4.6-7.2 7.6-10.2"/><path d="m32 4c3 3 5.4 6.5 7.5 10.2 2 3.7 3.7 7.7 4.8 11.8 1.1 4.1 1.7 8.6 1.1 13-.3 2.2-.9 4.4-1.9 6.4-1 2-2.4 3.8-4.2 5 1.9-3.8 2.3-7.7 2.1-11.6-.2-3.9-1-7.7-2-11.5-1-3.8-2.3-7.7-3.6-11.5-1.2-3.9-2.5-7.7-3.8-11.8"/><path d="m32 4c1 3.9 1.6 7.8 2 11.7.4 3.9.5 7.8.5 11.7 0 3.9-.2 7.8-.5 11.7-.4 3.9-.9 7.8-2 11.7-1-3.9-1.6-7.8-2-11.7-.4-3.9-.5-7.8-.5-11.7 0-3.9.2-7.8.5-11.7.4-3.9 1-7.8 2-11.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f331.svg b/build/js/jsxc/lib/emojione/assets/svg/1f331.svg
index d771825..90f17ee 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f331.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f331.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m48.531 38.42c-8.01 0-10.145-6.625-10.145-6.625s2.139-8.259 10.145-8.259c5.517 0 14.469 7.441 14.469 7.441s-8.952 7.443-14.469 7.443"/><path d="M18.027,6.665c6.253,6.351,2.551,13.592,2.551,13.592s-7.746,4.385-14-1.966C2.269,13.915,1,1,1,1
- S13.718,2.289,18.027,6.665z"/></g><g fill="#75a843"><path d="m63 30.976c-4.974-1.04-10.09-1.581-15.08-1.024-4.946.535-9.854 2.298-13.231 5.7-1.673 1.677-2.945 3.735-3.528 5.925-.144.545-.25 1.095-.298 1.641-.055.567-.043 1.019-.002 1.703l.189 3.815.754 15.264h-5l.755-15.265.189-3.815c.027-.588.054-1.411.186-2.104.119-.716.308-1.408.539-2.077.938-2.679 2.635-4.963 4.685-6.738 2.058-1.781 4.474-3.044 6.979-3.862 2.511-.823 5.115-1.21 7.699-1.31 5.182-.191 10.274.745 15.16 2.147"/><path d="m1 1c5.25 3.174 9.967 7.219 14.203 11.693 4.224 4.494 8.02 9.418 11.148 14.805 1.541 2.711 2.972 5.501 3.863 8.655.216.794.389 1.618.458 2.512l.107 2.361.206 4.595.824 18.379h-5l.823-18.38.206-4.595.051-1.149c.014-.366.042-.809.039-1.085-.011-.636-.107-1.327-.255-2.02-.613-2.796-1.826-5.595-3.163-8.278-2.729-5.378-6.178-10.44-10.09-15.1-3.926-4.649-8.362-8.922-13.422-12.389"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="M48.5,38.4c-8,0-10.1-6.6-10.1-6.6s2.1-8.3,10.1-8.3C54,23.5,63,31,63,31S54,38.4,48.5,38.4z"/><path d="M18,6.7c6.3,6.4,2.6,13.6,2.6,13.6s-7.7,4.4-14-2C2.3,13.9,1,1,1,1S13.7,2.3,18,6.7z"/></g><g fill="#75a843"><path d="m63 31c-5-1-10.1-1.6-15.1-1-4.9.5-9.9 2.3-13.2 5.7-1.7 1.7-2.9 3.7-3.5 5.9-.1.5-.2 1.1-.3 1.6-.1.6 0 1 0 1.7l.2 3.8.7 15.3h-5l.8-15.3.2-3.8c0-.6.1-1.4.2-2.1.1-.7.3-1.4.5-2.1.9-2.7 2.6-5 4.7-6.7 2.1-1.8 4.5-3 7-3.9 2.5-.8 5.1-1.2 7.7-1.3 5.1-.2 10.2.8 15.1 2.2"/><path d="m1 1c5.2 3.2 10 7.2 14.2 11.7 4.2 4.5 8 9.4 11.1 14.8 1.5 2.7 3 5.5 3.9 8.7.2.8.4 1.6.5 2.5l.1 2.4.2 4.6.8 18.3h-5l.8-18.4.2-4.6.1-1.1c0-.4 0-.8 0-1.1 0-.6-.1-1.3-.3-2-.6-2.8-1.8-5.6-3.2-8.3-2.7-5.4-6.2-10.4-10.1-15.1-3.8-4.7-8.2-8.9-13.3-12.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f332.svg b/build/js/jsxc/lib/emojione/assets/svg/1f332.svg
index ab9d5f2..be20988 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f332.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f332.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m25 52.13h14v11.875h-14z"/><path fill="#71a03a" d="m32 34.931l-30 20.2c0 0 14.5 3.439 30 3.439 15.501 0 30-3.439 30-3.439l-30-20.2"/><path fill="#76aa3f" d="m32 23.62l-25 20.2c0 0 12.08 3.438 25 3.438s25-3.438 25-3.438l-25-20.2"/><path fill="#7cb545" d="m32 12.31l-20 20.2c0 0 9.667 3.438 20 3.438 10.334 0 20-3.438 20-3.438l-20-20.2"/><path fill="#83bf4f" d="M32,1L17,20.811c0,0,7.25,3.831,15,3.831s15-3.831,15-3.831L32,1z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m25 52.1h14v11.9h-14z"/><path d="M32,34.9L2,55.1c0,0,14.5,3.4,30,3.4c15.5,0,30-3.4,30-3.4L32,34.9z" fill="#71a03a"/><path d="M32,23.6L7,43.8c0,0,12.1,3.4,25,3.4s25-3.4,25-3.4L32,23.6z" fill="#76aa3f"/><path d="M32,12.3L12,32.5c0,0,9.7,3.4,20,3.4c10.3,0,20-3.4,20-3.4L32,12.3z" fill="#7cb545"/><path d="M32,1L17,20.8c0,0,7.2,3.8,15,3.8s15-3.8,15-3.8L32,1z" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f333.svg b/build/js/jsxc/lib/emojione/assets/svg/1f333.svg
index 1749a55..4f29da3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f333.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f333.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><ellipse cx="17.824" cy="38.31" rx="15.824" ry="15.191"/><ellipse cx="17.824" cy="21.425" rx="14.983" ry="14.383"/><ellipse cx="34.19" cy="16.897" rx="15.52" ry="14.898"/><ellipse cx="48.969" cy="28.533" rx="13.03" ry="12.509"/><ellipse cx="39.508" cy="40.24" rx="13.03" ry="12.51"/></g><g fill="#947151"><path d="m28.928 64.04c.293-4.03-.276-8.242-.925-12.63-.649-4.377-1.362-8.91-1.425-13.519-.083-4.601.549-9.255 2.066-13.553 1.507-4.305 3.809-8.223 6.547-11.717-2.259 3.823-3.979 7.941-4.862 12.187-.892 4.25-.896 8.578-.262 12.81.62 4.245 1.84 8.398 3.067 12.682 1.212 4.265 2.485 8.796 2.793 13.661l-6.999.079"/><path d="m28.359 36.18c2.028.191 4.198.133 6.29-.104 2.104-.244 4.192-.691 6.194-1.406 1.999-.713 3.914-1.699 5.609-3.01 1.697-1.302 3.157-2.933 4.275-4.792-.972 1.939-2.318 3.708-3.955 5.176-1.634 1.473-3.538 2.649-5.558 3.549-2.02.902-4.16 1.537-6.336 1.961-2.19.415-4.369.654-6.67.616l.151-1.994"/><path d="m27.835 34.811c-1.482-.877-2.775-1.854-4.03-2.933-1.244-1.079-2.402-2.257-3.421-3.546-2.038-2.556-3.516-5.654-3.699-8.882.523 3.192 2.263 5.993 4.451 8.223 1.096 1.124 2.311 2.126 3.592 3.02 1.274.887 2.654 1.708 4.01 2.33l-.899 1.785"/><path d="m29.413 46.21c-1.749-.08-3.342-.384-4.95-.821-1.592-.443-3.138-1.048-4.583-1.833-2.897-1.551-5.35-3.903-6.859-6.736 1.801 2.663 4.406 4.655 7.291 5.835 1.442.598 2.952 1.012 4.48 1.271 1.515.254 3.114.373 4.566.285l.055 1.999"/></g><g fill="#75a843"><path d="m9.808 41.901c0 2.196-1.786 3.976-1.786 3.976s-1.786-1.779-1.786-3.976c0-2.194 1.786-3.974 1.786-3.974s1.786 1.78 1.786 3.974"/><path d="m56.11 33.26c0 2.195-1.785 3.975-1.785 3.975s-1.785-1.779-1.785-3.975 1.785-3.976 1.785-3.976 1.785 1.78 1.785 3.976"/><path d="m14.807 46.971c0 2.196-1.786 3.977-1.786 3.977s-1.785-1.78-1.785-3.977c0-2.195 1.785-3.975 1.785-3.975s1.786 1.779 1.786 3.975"/><path d="m9.808 20.923c0 2.196-1.786 3.976-1.786 3.976s-1.786-1.78-1.786-3.976c0-2.195 1.786-3.975 1.786-3.975s1.786 1.78 1.786 3.975"/><path d="m14.807 15.11c0 2.196-1.786 3.976-1.786 3.976s-1.785-1.78-1.785-3.976c0-2.195 1.785-3.975 1.785-3.975s1.786 1.78 1.786 3.975"/><path d="m40.549 18.02c0 2.196-1.786 3.976-1.786 3.976s-1.786-1.78-1.786-3.976c0-2.195 1.786-3.975 1.786-3.975s1.786 1.779 1.786 3.975"/><path d="m45.46 12.621c0 2.196-1.785 3.975-1.785 3.975s-1.783-1.779-1.783-3.975c0-2.195 1.783-3.975 1.783-3.975s1.785 1.779 1.785 3.975"/><path d="m22.24 35.809c0 2.195-1.785 3.975-1.785 3.975s-1.783-1.779-1.783-3.975 1.783-3.975 1.783-3.975 1.785 1.779 1.785 3.975"/><path d="m16.591 30.658c0 2.196-1.785 3.976-1.785 3.976s-1.783-1.779-1.783-3.976c0-2.195 1.783-3.975 1.783-3.975s1.785 1.78 1.785 3.975"/><path d="m26.05 20.923c0 2.196-1.785 3.975-1.785 3.975s-1.783-1.779-1.783-3.975c0-2.195 1.783-3.975 1.783-3.975s1.785 1.78 1.785 3.975"/><path d="m29.967 14.04c0 2.196-1.785 3.975-1.785 3.975s-1.783-1.779-1.783-3.975c0-2.195 1.783-3.975 1.783-3.975s1.785 1.78 1.785 3.975"/><path d="m35.433 30.658c0 2.196-1.785 3.976-1.785 3.976s-1.783-1.779-1.783-3.976c0-2.195 1.783-3.975 1.783-3.975s1.785 1.78 1.785 3.975"/><path d="m49.02 39.783c0 2.196-1.785 3.976-1.785 3.976s-1.783-1.779-1.783-3.976c0-2.195 1.783-3.975 1.783-3.975s1.785 1.78 1.785 3.975"/><path d="m45.46 23.12c0 2.196-1.785 3.976-1.785 3.976s-1.783-1.779-1.783-3.976c0-2.195 1.783-3.975 1.783-3.975s1.785 1.78 1.785 3.975"/><path d="m39.509 42.995c0 2.196-1.786 3.976-1.786 3.976s-1.785-1.779-1.785-3.976c0-2.194 1.785-3.974 1.785-3.974s1.786 1.78 1.786 3.974"/><path d="m44.21 47.48c0 2.196-1.785 3.976-1.785 3.976s-1.785-1.779-1.785-3.976c0-2.194 1.785-3.975 1.785-3.975s1.785 1.78 1.785 3.975"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><ellipse cx="17.8" cy="38.3" rx="15.8" ry="15.2"/><ellipse cx="17.8" cy="21.4" rx="15" ry="14.4"/><ellipse cx="34.2" cy="16.9" rx="15.5" ry="14.9"/><ellipse cx="49" cy="28.5" rx="13" ry="12.5"/><ellipse cx="39.5" cy="40.2" rx="13" ry="12.5"/></g><g fill="#947151"><path d="m28.9 64c.3-4-.3-8.2-.9-12.6-.6-4.4-1.4-8.9-1.4-13.5-.1-4.6.5-9.3 2.1-13.6 1.5-4.3 3.8-8.2 6.5-11.7-2.3 3.8-4 7.9-4.9 12.2-.9 4.2-.9 8.6-.3 12.8.6 4.2 1.8 8.4 3.1 12.7 1.2 4.3 2.5 8.8 2.8 13.7h-7"/><path d="m28.4 36.2c2 .2 4.2.1 6.3-.1 2.1-.2 4.2-.7 6.2-1.4 2-.7 3.9-1.7 5.6-3 1.7-1.3 3.2-2.9 4.3-4.8-1 1.9-2.3 3.7-4 5.2-1.6 1.5-3.5 2.6-5.6 3.5-2 .9-4.2 1.5-6.3 2-2.2.4-4.4.7-6.7.6l.2-2"/><path d="m27.8 34.8c-1.5-.9-2.8-1.9-4-2.9-1.2-1.1-2.4-2.3-3.4-3.5-2-2.6-3.5-5.7-3.7-8.9.5 3.2 2.3 6 4.5 8.2 1.1 1.1 2.3 2.1 3.6 3 1.3.9 2.7 1.7 4 2.3l-1 1.8"/><path d="m29.4 46.2c-1.7-.1-3.3-.4-4.9-.8-1.6-.4-3.1-1-4.6-1.8-2.9-1.6-5.4-3.9-6.9-6.8 1.8 2.7 4.4 4.7 7.3 5.8 1.4.6 3 1 4.5 1.3 1.5.3 3.1.4 4.6.3v2"/></g><g fill="#75a843"><path d="m9.8 41.9c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m56.1 33.3c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4 1.8-4 1.8-4 1.8 1.8 1.8 4"/><path d="m14.8 47c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m9.8 20.9c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m14.8 15.1c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m40.5 18c0 2.2-1.8 4-1.8 4s-1.7-1.8-1.7-4c0-2.2 1.8-4 1.8-4s1.7 1.8 1.7 4"/><path d="m45.5 12.6c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m22.2 35.8c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4 1.8-4 1.8-4 1.8 1.8 1.8 4"/><path d="m16.6 30.7c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m26.1 20.9c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m30 14c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m35.4 30.7c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m49 39.8c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m45.5 23.1c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m39.5 43c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/><path d="m44.2 47.5c0 2.2-1.8 4-1.8 4s-1.8-1.8-1.8-4c0-2.2 1.8-4 1.8-4s1.8 1.8 1.8 4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f334.svg b/build/js/jsxc/lib/emojione/assets/svg/1f334.svg
index b8f6e14..b0cec6d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f334.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f334.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m44.14 64h-10.03l-5.591-30.83h6.335z"/><g fill="#6d533e"><path d="m33.508 60.666l.432 2.394 6.09-1.212z"/><path d="m32.31 54.05l.428 2.38 6.07-1.2z"/><path d="m31.12 47.5l.403 2.23 5.687-1.129z"/><path d="m29.923 40.911l.387 2.159 5.5-1.091z"/><path d="m28.733 34.36l.367 2.01 5.11-1.02z"/><path d="m42.829 59.667l-.669-2.237-5.572 1.1z"/><path d="m40.813 52.968l-.633-2.087-5.19 1.031z"/><path d="m38.808 46.31l-.608-2.02-5.01 1z"/><path d="m36.823 39.719l-.623-2.082-5.18 1.029z"/></g><path fill="#83bf4f" d="m31.97 28.602c11.186-2.794 26.877-.095 19.06 12.226l-.51-3.02-2.79 2.408.771-3.721-2.679 2.27.505-3.548-2.981 2.218.666-3.897-3.402 2.233.524-3.441-3.287 2.065.405-2.961-2.869 1.364.046-2.355-1.95.748-1.508-2.588"/><g fill="#75a843"><path d="m31.817 31.27c-1.456-13.423 4.689-33.28 18.53-25.518l-3.826 1.102 2.479 3.081-4.464-.375 2.327 2.964-4.297-.073 2.209 3.347-4.7-.214 2.152 3.865-4.162-.112 1.965 3.75-3.588-.042 1.174 3.343-2.905.309.577 2.303-3.471 2.27"/><path d="m32.565 28.855c-2.26-13.514-13.933-30.563-25.68-18.13l4.148-.291-1.635 3.863 4.378-1.949-1.516 3.698 4.296-1.597-1.292 4.03 4.661-1.877-1.091 4.507 4.148-1.586-.934 4.331 3.593-1.316-.253 3.654 3-.733.061 2.434 4.114.966"/></g><g fill="#83bf4f"><path d="m33.17 31.05c-8.224-11.531-26.446-22.594-31.17-6.522l3.554-1.906.323 4.198 2.999-3.521.351 3.998 3.087-3.165.702 4.211 3.282-3.567 1.102 4.576 2.959-3.099 1.16 4.351 2.59-2.631 1.455 3.462 2.335-1.86 1.172 2.213 4.101-.738"/><path d="m33.743 29.21c-12.154-2.395-29.609 1.283-21.738 13.98l.745-3.237 2.927 2.416-.625-3.915 2.814 2.274-.342-3.746 3.15 2.204-.494-4.109 3.61 2.199-.366-3.631 3.497 2.025-.27-3.127 3.079 1.303.091-2.502 2.106.693 1.816-2.827"/><path d="m30.828 29.11c8.223-10.642 26.444-20.853 31.17-6.02l-3.556-1.76-.322 3.875-2.997-3.25-.353 3.688-3.086-2.92-.702 3.886-3.281-3.292-1.103 4.222-2.959-2.858-1.162 4.02-2.588-2.427-1.457 3.193-2.333-1.718-1.172 2.045-4.101-.681"/></g><path fill="#68584d" d="m36.794 32.553c1.141 1.337 1.119 3.209-.047 4.182-1.168.974-3.039.678-4.18-.658-1.139-1.336-1.117-3.209.049-4.182 1.168-.973 3.039-.678 4.178.658"/><path fill="#726256" d="m37.26 26.817c1.68.858 2.436 2.718 1.684 4.151-.75 1.434-2.72 1.901-4.4 1.042-1.68-.858-2.434-2.717-1.686-4.151.75-1.433 2.72-1.9 4.402-1.042"/><path fill="#847266" d="m33.16 33.898c-1.24 2.145-3.763 3.02-5.636 1.965-1.872-1.061-2.384-3.656-1.144-5.799 1.24-2.144 3.765-3.02 5.637-1.964 1.872 1.059 2.385 3.656 1.143 5.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m44.1 64h-10l-5.6-30.8h6.4z"/><g fill="#6d533e"><path d="m33.5 60.7l.4 2.4 6.1-1.3z"/><path d="m32.3 54l.4 2.4 6.1-1.2z"/><path d="m31.1 47.5l.4 2.2 5.7-1.1z"/><path d="m29.9 40.9l.4 2.2 5.5-1.1z"/><path d="m28.7 34.4l.4 2 5.1-1z"/><path d="m42.8 59.7l-.6-2.3-5.6 1.1z"/><path d="m40.8 53l-.6-2.1-5.2 1z"/><path d="m38.8 46.3l-.6-2-5 1z"/><path d="m36.8 39.7l-.6-2.1-5.2 1.1z"/></g><path d="m32 28.6c11.2-2.8 26.9-.1 19.1 12.2l-.5-3-2.8 2.4.8-3.7-2.7 2.3.5-3.5-3 2.2.7-3.9-3.4 2.2.5-3.4-3.3 2.1.4-3-2.9 1.4v-2.4l-2 .7-1.4-2.6" fill="#83bf4f"/><g fill="#75a843"><path d="m31.8 31.3c-1.4-13.5 4.7-33.3 18.5-25.6l-3.8 1.1 2.5 3.1-4.5-.4 2.3 3-4.3-.1 2.2 3.3-4.7-.2 2.2 3.9-4.2-.1 2 3.8h-3.6l1.2 3.3-2.9.3.6 2.3-3.5 2.3"/><path d="m32.6 28.9c-2.3-13.6-14-30.6-25.7-18.2l4.1-.3-1.6 3.9 4.4-1.9-1.5 3.6 4.3-1.6-1.3 4 4.7-1.9-1.1 4.5 4.1-1.6-1 4.4 3.6-1.3-.3 3.7 3-.7.1 2.4 4.2 1"/></g><g fill="#83bf4f"><path d="m33.2 31c-8.3-11.5-26.5-22.5-31.2-6.5l3.6-1.9.3 4.2 3-3.5.4 4 3.1-3.2.7 4.2 3.3-3.6 1.1 4.6 3-3.1 1.2 4.4 2.6-2.6 1.5 3.5 2.3-1.9 1.2 2.2 3.9-.8"/><path d="m33.7 29.2c-12.2-2.4-29.6 1.3-21.7 14l.7-3.2 2.9 2.4-.6-3.9 2.8 2.3-.3-3.8 3.1 2.2-.5-4.1 3.6 2.2-.4-3.6 3.5 2-.3-3.1 3.1 1.3.1-2.5 2.1.7 1.9-2.9"/><path d="m30.8 29.1c8.2-10.6 26.4-20.9 31.2-6l-3.6-1.8-.3 3.9-3-3.2-.4 3.7-3.1-2.9-.6 3.8-3.3-3.3-1.1 4.2-3-2.9-1.2 4-2.6-2.4-1.5 3.2-2.3-1.7-1.2 2-4-.6"/></g><path d="m36.8 32.6c1.1 1.3 1.1 3.2 0 4.2-1.2 1-3 .7-4.2-.7-1.1-1.3-1.1-3.2 0-4.2 1.2-1 3.1-.7 4.2.7" fill="#68584d"/><path d="m37.3 26.8c1.7.9 2.4 2.7 1.7 4.2-.8 1.4-2.7 1.9-4.4 1-1.7-.9-2.4-2.7-1.7-4.2.7-1.4 2.7-1.8 4.4-1" fill="#726256"/><path d="m33.2 33.9c-1.2 2.1-3.8 3-5.6 2-1.9-1.1-2.4-3.7-1.1-5.8 1.2-2.1 3.8-3 5.6-2 1.8 1.1 2.3 3.7 1.1 5.8" fill="#847266"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f335.svg b/build/js/jsxc/lib/emojione/assets/svg/1f335.svg
index 2ab643d..b980aad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f335.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f335.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m15.182 31.385c0 1.66-1.358 3.01-3.03 3.01h-2.122c-1.673 0-3.03-1.348-3.03-3.01v-13.331c0-5.872 8.182-5.872 8.182 0v13.331"/><path d="m23.418 26.27c1.673 0 3.03 1.347 3.03 3.01v2.105c-.001 1.66-1.357 3.01-3.03 3.01h-13.389c-1.673.001-3.03-1.347-3.03-3.01v-2.105c0-1.66 1.356-3.01 3.03-3.01h13.389z"/></g><g fill="#699635"><path d="m26.911 28.503v-1.177h-11.03c-.249 0-1.749-.055-1.749-1.764v-7.03c0-4.253-3.046-4.879-3.046-4.879s1.879.76 1.879 4.879v7.742c0 2.23 1.8 2.23 2.212 2.23h11.729"/><path d="m13.423 29.744c-.249 0-1.75-.199-1.75-2.818v-8.395c0-3.337-.583-4.879-.583-4.879s-.584 1.542-.584 4.879v9.106c0 3.284 1.799 3.284 2.212 3.284h14.273v-1.177h-13.568"/><path d="m9.211 29.368v-10.838c0-4.121 1.88-4.879 1.88-4.879s-3.046.626-3.046 4.879v11.522c0 3.285 2.844 3.285 3.256 3.285h15.692v-1.176h-15.01c-.24.001-2.769-.294-2.769-2.793"/></g><g fill="#83bf4f"><path d="m46.43 47.18c0 2.146 1.756 3.886 3.914 3.886h2.742c2.162 0 3.914-1.74 3.914-3.886v-17.221c0-7.584-10.57-7.584-10.57 0v17.221"/><path d="m35.791 40.58c-2.162 0-3.916 1.74-3.916 3.885v2.719c.002 2.146 1.753 3.886 3.916 3.886h17.295c2.162 0 3.914-1.74 3.914-3.886v-2.719c0-2.145-1.752-3.885-3.914-3.885h-17.295"/></g><g fill="#699635"><path d="m31.28 43.46v-1.52h14.241c.322 0 2.26-.071 2.26-2.279v-9.08c0-5.494 3.936-6.302 3.936-6.302s-2.43.982-2.43 6.303v10c0 2.881-2.322 2.881-2.855 2.881h-15.15"/><path d="m48.701 45.06c.322 0 2.26-.258 2.26-3.641v-10.844c0-4.312.754-6.303.754-6.303s.752 1.992.752 6.302v11.764c0 4.243-2.322 4.243-2.855 4.243h-18.44v-1.521h17.529"/><path d="m54.14 44.578v-14c0-5.324-2.428-6.302-2.428-6.302s3.934.808 3.934 6.302v14.886c0 4.243-3.674 4.243-4.205 4.243h-20.272v-1.52h19.392c.311.001 3.579-.38 3.579-3.609"/></g><path fill="#83bf4f" d="M39.51,64H22.791V9.999C22.791-2,39.51-2,39.51,9.999V64z"/><g fill="#699635"><path d="M37.373,64V10.971C37.373,2.279,31.15,1,31.15,1s3.84,1.554,3.84,9.972V64H37.373z"/><path d="M32.342,64V10.972C32.342,4.153,31.15,1,31.15,1s-1.192,3.152-1.192,9.971V64H32.342z"/><path d="M27.309,64V10.971C27.309,2.549,31.15,1,31.15,1s-6.224,1.279-6.224,9.971V64H27.309z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="M15.2,31.4c0,1.7-1.4,3-3,3H10c-1.7,0-3-1.3-3-3V18.1c0-5.9,8.2-5.9,8.2,0V31.4z"/><path d="m23.4 26.3c1.7 0 3 1.3 3 3v2.1c0 1.7-1.4 3-3 3h-13.4c-1.7 0-3-1.3-3-3v-2.1c0-1.7 1.4-3 3-3h13.4"/></g><g fill="#699635"><path d="m26.9 28.5v-1.2h-11c-.2 0-1.7-.1-1.7-1.8v-7c0-4.3-3-4.9-3-4.9s1.9.8 1.9 4.9v7.7c0 2.2 1.8 2.2 2.2 2.2l11.6.1"/><path d="m13.4 29.7c-.2 0-1.8-.2-1.8-2.8v-8.4c0-3.3-.6-4.9-.6-4.9s-.6 1.5-.6 4.9v9.1c0 3.3 1.8 3.3 2.2 3.3h14.4v-1.2c0 0-13.6 0-13.6 0"/><path d="m9.2 29.4v-10.9c0-4.1 1.9-4.9 1.9-4.9s-3 .6-3 4.9v11.5c0 3.3 2.8 3.3 3.3 3.3h15.6v-1.2h-15c-.3.1-2.8-.2-2.8-2.7"/></g><g fill="#83bf4f"><path d="m46.4 47.2c0 2.1 1.8 3.9 3.9 3.9h2.7c2.2 0 3.9-1.7 3.9-3.9v-17.2c0-7.6-10.6-7.6-10.6 0 .1 0 .1 17.2.1 17.2"/><path d="m35.8 40.6c-2.2 0-3.9 1.7-3.9 3.9v2.7c0 2.1 1.8 3.9 3.9 3.9h17.3c2.2 0 3.9-1.7 3.9-3.9v-2.7c0-2.1-1.8-3.9-3.9-3.9h-17.3"/></g><g fill="#699635"><path d="m31.3 43.5v-1.5h14.2c.3 0 2.3-.1 2.3-2.3v-9.1c0-5.5 3.9-6.3 3.9-6.3s-2.4 1-2.4 6.3v10c0 2.9-2.3 2.9-2.9 2.9 0 0-15.1 0-15.1 0"/><path d="m48.7 45.1c.3 0 2.3-.3 2.3-3.6v-10.9c0-4.3.8-6.3.8-6.3s.8 2 .8 6.3v11.8c0 4.2-2.3 4.2-2.9 4.2h-18.5v-1.5c0 0 17.5 0 17.5 0"/><path d="m54.1 44.6v-14c0-5.3-2.4-6.3-2.4-6.3s3.9.8 3.9 6.3v14.9c0 4.2-3.7 4.2-4.2 4.2h-20.2v-1.5h19.4c.3 0 3.5-.4 3.5-3.6"/></g><path d="M39.5,64H22.8V10c0-12,16.7-12,16.7,0V64z" fill="#83bf4f"/><g fill="#699635"><path d="M37.4,64V11c0-8.7-6.2-10-6.2-10S35,2.6,35,11v53H37.4z"/><path d="M32.3,64V11c0-6.8-1.2-10-1.2-10S30,4.2,30,11v53H32.3z"/><path d="m27.3 64v-53c0-8.4 3.8-10 3.8-10s-6.2 1.3-6.2 10v53h2.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f336.svg b/build/js/jsxc/lib/emojione/assets/svg/1f336.svg
index bdb99eb..3763d91 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f336.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f336.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#6c9925" d="m6.569 2.54c-3.533 3.247-.729 10.773-.729 10.773-4.096 4.655-2.83 12.786-2.83 12.786l4.937-13.251c-.686-7.25 2.083-9.322 2.083-9.322.429-1.131-2.136-2.206-3.461-.986"/><path fill="#8cc63e" d="m7.551 3.302c-2.929 2.692-.129 9.77-.129 9.77-4.095 4.653-2.732 8.991-2.802 11.644l19.938-11.814c-2.152-5.833-14.468-2.688-14.468-2.688-2.631-4.287-.06-6.689-.06-6.689s-.806.309-2.479-.223"/><path fill="#ed4040" d="m42.858 47.984c-9.724-9.258-10.786-16.832-10.786-25.21 0-6.599-4.03-11.284-8.3-12.09-2.157-.407-8.963-.713-6.707 1.346 2.225 2.032-8.119.381-8.13 4.735-.007 3.089-2.649-.591-5.651 7.114-3.127 8.03-.119 13.515 4.448 18.521 8.764 9.604 29.425 27.06 50.722 16.11 10.97-5.635-6.162-1.545-15.596-10.526"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.6 2.5c-3.6 3.3-.8 10.8-.8 10.8-4.1 4.7-2.8 12.8-2.8 12.8l4.9-13.3c-.6-7.2 2.1-9.3 2.1-9.3.5-1.1-2.1-2.2-3.4-1" fill="#6c9925"/><path d="m7.6 3.3c-3 2.7-.2 9.8-.2 9.8-4.1 4.7-2.7 9-2.8 11.6l19.9-11.8c-2.2-5.8-14.5-2.7-14.5-2.7-2.5-4.3 0-6.7 0-6.7s-.8.3-2.4-.2" fill="#8cc63e"/><path d="m42.9 48c-9.7-9.3-10.8-16.8-10.8-25.2 0-6.6-4-11.3-8.3-12.1-2.2-.4-9-.7-6.7 1.3 2.2 2-8.1.4-8.1 4.7 0 3.1-2.6-.6-5.7 7.1-3.1 8-.1 13.5 4.4 18.5 8.8 9.6 29.4 27.1 50.7 16.1 11-5.5-6.1-1.4-15.5-10.4" fill="#ed4040"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f337.svg b/build/js/jsxc/lib/emojione/assets/svg/1f337.svg
index 8df0654..6512189 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f337.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f337.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M39.75,45.086C33.402,50.401,33.879,64,33.879,64h2.223C41.885,46.211,62,39.461,62,39.461
- S49.153,37.211,39.75,45.086z"/><path fill="#75a843" d="m33.639 1l2.501 63h-5z"/><path fill="#aa1f65" d="m45.21 25.09c0 10.983-5.18 15.684-11.57 15.684-6.39 0-11.571-4.701-11.571-15.684 0-10.983 11.571-24.09 11.571-24.09s11.57 13.11 11.57 24.09"/><path fill="#d33777" d="m36.98 19.946c14.752 9.257 4.758 22.515-3.645 22.515-8.401 0-15.213-8.634-15.213-19.284 0-10.65 8.271-19.284 8.271-19.284s-.276 9.238 10.587 16.05"/><path fill="#e84d88" d="m30.3 19.946c-14.751 9.257-4.759 22.515 3.644 22.515 8.401 0 15.213-8.634 15.213-19.284 0-10.65-8.271-19.284-8.271-19.284s.278 9.238-10.586 16.05"/><path fill="#83bf4f" d="M24.759,43.145C31.325,49.711,33.506,64,33.506,64H28.75C21,45.836,2,32.5,2,32.5
- S18.212,36.598,24.759,43.145z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M39.8,45.1C33.4,50.4,33.9,64,33.9,64h2.2C41.9,46.2,62,39.5,62,39.5S49.2,37.2,39.8,45.1z" fill="#83bf4f"/><path fill="#75a843" d="m33.6 1l2.5 63h-5z"/><path d="M45.2,25.1c0,11-5.2,15.7-11.6,15.7s-11.6-4.7-11.6-15.7S33.6,1,33.6,1S45.2,14.1,45.2,25.1z" fill="#aa1f65"/><path d="m37 19.9c14.8 9.3 4.8 22.5-3.6 22.5-8.4 0-15.2-8.6-15.2-19.3s8.3-19.3 8.3-19.3-.4 9.3 10.5 16.1" fill="#d33777"/><path d="m30.3 19.9c-14.8 9.3-4.8 22.5 3.6 22.5 8.4 0 15.2-8.6 15.2-19.3s-8.2-19.2-8.2-19.2.3 9.2-10.6 16" fill="#e84d88"/><path d="M24.8,43.1c6.6,6.6,8.7,20.9,8.7,20.9h-4.8C21,45.8,2,32.5,2,32.5S18.2,36.6,24.8,43.1z" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f338.svg b/build/js/jsxc/lib/emojione/assets/svg/1f338.svg
index 415806e..eb6d6da 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f338.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f338.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff506e"><path d="m36.12 2c-.454 1.945-2.119 3.393-4.117 3.393-2 0-3.665-1.45-4.118-3.396-3.126 1.711-5.298 5.618-5.298 12.302 0 9.348 9.416 20.505 9.416 20.505s9.413-11.156 9.413-20.505c0-6.68-2.172-10.59-5.296-12.299"/><path d="m62 24.32c-1.869.424-3.844-.51-4.719-2.389-.875-1.883-.357-4.083 1.121-5.357-2.838-2.196-7.148-2.53-12.892.392-8.04 4.086-13.51 17.825-13.51 17.825s13.708 3.979 21.744-.108c5.742-2.92 8.152-6.675 8.256-10.363"/><path d="m2 24.32c1.867.424 3.84-.51 4.718-2.389.875-1.883.355-4.083-1.12-5.357 2.835-2.196 7.146-2.53 12.891.392 8.03 4.086 13.511 17.825 13.511 17.825s-13.709 3.979-21.746-.108c-5.74-2.92-8.15-6.675-8.254-10.363"/><path d="m46.46 61.936c-.684-1.868-.103-4.05 1.541-5.241 1.645-1.191 3.802-.99 5.232.343 1.641-3.269 1.303-7.776-2.332-13.271-5.085-7.688-18.896-11.258-18.896-11.258s-1.673 14.78 3.411 22.469c3.633 5.491 7.547 7.412 11.04 6.958"/><path d="m17.54 61.936c.683-1.868.103-4.05-1.54-5.241-1.645-1.191-3.803-.99-5.232.343-1.641-3.269-1.303-7.776 2.332-13.271 5.084-7.688 18.896-11.258 18.896-11.258s1.672 14.78-3.412 22.469c-3.633 5.491-7.547 7.412-11.04 6.958"/></g><g fill="#fff0f3"><path d="m35.611 5.686c-.398 1.707-1.857 2.977-3.611 2.977s-3.215-1.272-3.611-2.979c-2.744 1.501-4.648 4.929-4.648 10.791 0 8.201 8.26 17.988 8.26 17.988s8.258-9.787 8.258-17.988c-.001-5.86-1.907-9.289-4.648-10.789"/><path d="m58.32 25.26c-1.641.371-3.371-.447-4.139-2.097-.768-1.651-.314-3.581.982-4.699-2.49-1.926-6.27-2.22-11.309.344-7.05 3.584-11.85 15.637-11.85 15.637s12.02 3.49 19.07-.096c5.04-2.561 7.153-5.855 7.242-9.09"/><path d="m5.684 25.26c1.637.371 3.369-.447 4.139-2.097.767-1.651.311-3.581-.983-4.699 2.487-1.926 6.27-2.22 11.309.344 7.05 3.584 11.851 15.637 11.851 15.637s-12.02 3.49-19.07-.096c-5.04-2.561-7.152-5.855-7.241-9.09"/><path d="m44.684 58.26c-.6-1.639-.09-3.554 1.352-4.599 1.442-1.045 3.335-.869 4.59.302 1.439-2.868 1.143-6.822-2.046-11.643-4.46-6.744-16.575-9.876-16.575-9.876s-1.468 12.966 2.992 19.71c3.186 4.818 6.618 6.504 9.687 6.106"/><path d="m19.315 58.26c.599-1.639.091-3.554-1.352-4.599s-3.335-.869-4.589.302c-1.439-2.868-1.143-6.822 2.045-11.643 4.46-6.744 16.576-9.876 16.576-9.876s1.467 12.966-2.992 19.71c-3.187 4.818-6.62 6.504-9.688 6.106"/></g><g fill="#ff506e"><path d="m28.735 40.904l-1.233-.614 7.758-17.19 1.234.606z"/><path d="m37.475 23.324c.039.921-.64 1.701-1.521 1.745-.879.043-1.625-.668-1.667-1.59-.04-.921.64-1.701 1.521-1.745.878-.043 1.624.668 1.667 1.59"/><path d="m29.713 40.521c.043.921-.637 1.701-1.518 1.745-.882.043-1.628-.668-1.668-1.59-.043-.921.637-1.701 1.519-1.745.882-.043 1.627.669 1.667 1.59"/><path d="m23.936 36.445l-.543-1.305 16.667-7.586.545 1.309z"/><path d="m41.924 28.339c-.068.92-.836 1.605-1.715 1.536-.879-.073-1.533-.875-1.465-1.795.066-.92.834-1.608 1.713-1.535.879.072 1.537.875 1.467 1.794"/><path d="m25.26 35.922c-.07.919-.837 1.604-1.716 1.532-.879-.069-1.534-.872-1.468-1.792.069-.919.836-1.607 1.715-1.535s1.535.875 1.469 1.795"/><path d="m39.927 36.703l-16.439-8.117.582-1.286 16.44 8.113z"/><path d="m40.29 37.728c-.882.041-1.628-.669-1.667-1.592-.043-.919.637-1.699 1.518-1.744.882-.042 1.627.669 1.668 1.591.042.919-.637 1.7-1.519 1.745"/><path d="m23.856 29.607c-.882.044-1.628-.666-1.667-1.589-.043-.922.637-1.702 1.518-1.744.882-.045 1.627.666 1.668 1.588.042.923-.64 1.703-1.519 1.745"/><path d="M34.997 41 27.75 23.564 29 22.996 36.25 40.44z"/><path d="m35.5 42.38c-.879-.071-1.536-.874-1.467-1.793.068-.92.836-1.606 1.715-1.534.879.071 1.534.873 1.465 1.793-.067.92-.834 1.606-1.713 1.534"/><path d="m28.25 24.945c-.879-.073-1.537-.875-1.468-1.795s.836-1.605 1.715-1.534 1.534.874 1.468 1.793c-.07.92-.836 1.607-1.715 1.536"/><ellipse cx="31.999" cy="32" rx="3.384" ry="3.539"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff506e"><path d="m36.1 2c-.4 1.9-2.1 3.4-4.1 3.4-2 0-3.7-1.5-4.1-3.4-3.1 1.7-5.3 5.6-5.3 12.3 0 9.3 9.4 20.5 9.4 20.5s9.4-11.2 9.4-20.5c0-6.7-2.2-10.6-5.3-12.3"/><path d="m62 24.3c-1.9.4-3.8-.5-4.7-2.4-.9-1.9-.4-4.1 1.1-5.4-2.8-2.2-7.1-2.5-12.9.4-8 4.2-13.5 17.9-13.5 17.9s13.7 4 21.7-.1c5.8-2.9 8.2-6.7 8.3-10.4"/><path d="m2 24.3c1.9.4 3.8-.5 4.7-2.4.9-1.9.4-4.1-1.1-5.4 2.8-2.2 7.1-2.5 12.9.4 8 4.1 13.5 17.8 13.5 17.8s-13.7 4-21.7-.1c-5.8-2.8-8.2-6.6-8.3-10.3"/><path d="m46.5 61.9c-.7-1.9-.1-4 1.5-5.2 1.6-1.2 3.8-1 5.2.3 1.6-3.3 1.3-7.8-2.3-13.3-5.1-7.6-18.9-11.2-18.9-11.2s-1.7 14.8 3.4 22.5c3.6 5.5 7.6 7.4 11.1 6.9"/><path d="m17.5 61.9c.7-1.9.1-4-1.5-5.2-1.6-1.2-3.8-1-5.2.3-1.6-3.3-1.3-7.8 2.3-13.3 5.1-7.6 18.9-11.2 18.9-11.2s1.7 14.8-3.4 22.5c-3.6 5.5-7.6 7.4-11.1 6.9"/></g><g fill="#fff0f3"><path d="m35.6 5.7c-.4 1.7-1.9 3-3.6 3s-3.2-1.3-3.6-3c-2.7 1.5-4.6 4.9-4.6 10.8 0 8.2 8.3 18 8.3 18s8.3-9.8 8.3-18c-.1-5.9-2-9.3-4.8-10.8"/><path d="m58.3 25.3c-1.6.4-3.4-.4-4.1-2.1-.8-1.7-.3-3.6 1-4.7-2.5-1.9-6.3-2.2-11.3.3-7.1 3.6-11.9 15.6-11.9 15.6s12 3.5 19.1-.1c5-2.5 7.1-5.8 7.2-9"/><path d="m5.7 25.3c1.6.4 3.4-.4 4.1-2.1.8-1.7.3-3.6-1-4.7 2.5-1.9 6.3-2.2 11.3.3 7 3.6 11.9 15.6 11.9 15.6s-12 3.5-19.1-.1c-5-2.5-7.1-5.8-7.2-9"/><path d="m44.7 58.3c-.6-1.6-.1-3.6 1.4-4.6s3.3-.9 4.6.3c1.4-2.9 1.1-6.8-2-11.6-4.6-6.8-16.7-10-16.7-10s-1.5 13 3 19.7c3.2 4.9 6.6 6.6 9.7 6.2"/><path d="m19.3 58.3c.6-1.6.1-3.6-1.4-4.6s-3.3-.9-4.6.3c-1.4-2.9-1.1-6.8 2-11.6 4.5-6.7 16.6-9.9 16.6-9.9s1.5 13-3 19.7c-3.1 4.8-6.5 6.5-9.6 6.1"/></g><g fill="#ff506e"><path d="m28.7 40.9l-1.2-.6 7.8-17.2 1.2.6z"/><path d="m37.5 23.3c0 .9-.6 1.7-1.5 1.7-.9 0-1.6-.7-1.7-1.6 0-.9.6-1.7 1.5-1.7.9 0 1.6.7 1.7 1.6"/><path d="m29.7 40.5c0 .9-.6 1.7-1.5 1.7-.9 0-1.6-.7-1.7-1.6 0-.9.6-1.7 1.5-1.7.9 0 1.7.7 1.7 1.6"/><path d="m23.9 36.4l-.5-1.3 16.7-7.5.5 1.3z"/><path d="m41.9 28.3c-.1.9-.8 1.6-1.7 1.5-.9-.1-1.5-.9-1.5-1.8.1-.9.8-1.6 1.7-1.5.9.1 1.6.9 1.5 1.8"/><path d="m25.3 35.9c-.1.9-.8 1.6-1.7 1.5-.9-.1-1.5-.9-1.5-1.8.1-.9.8-1.6 1.7-1.5s1.5.9 1.5 1.8"/><path d="m39.9 36.7l-16.4-8.1.6-1.3 16.4 8.1z"/><path d="m40.3 37.7c-.9 0-1.6-.7-1.7-1.6 0-.9.6-1.7 1.5-1.7.9 0 1.6.7 1.7 1.6.1.9-.6 1.7-1.5 1.7"/><path d="m23.9 29.6c-.9 0-1.6-.7-1.7-1.6 0-.9.6-1.7 1.5-1.7.9 0 1.6.7 1.7 1.6 0 .9-.7 1.7-1.5 1.7"/><path d="m35 41l-7.2-17.4 1.2-.6 7.2 17.4z"/><path d="m35.5 42.4c-.9-.1-1.5-.9-1.5-1.8.1-.9.8-1.6 1.7-1.5.9.1 1.5.9 1.5 1.8-.1.9-.8 1.6-1.7 1.5"/><path d="m28.3 24.9c-.9-.1-1.5-.9-1.5-1.8s.8-1.6 1.7-1.5 1.5.9 1.5 1.8c-.1.9-.9 1.6-1.7 1.5"/><ellipse cx="32" cy="32" rx="3.4" ry="3.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f339.svg b/build/js/jsxc/lib/emojione/assets/svg/1f339.svg
index 0e29598..e7122eb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f339.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f339.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#75a843" d="m32.89 17.304l2.501 46.696h-5z"/><path fill="#83bf4f" d="m27.06 45.32c6.841 3.661 5.327 10.11 5.327 10.11s-5.65 5.061-12.494 1.398c-4.714-2.521-8.783-12.369-8.783-12.369s11.233-1.66 15.95.861"/><path fill="#947151" d="m40.933 48.36l-7.365-2.07-.035 4.03z"/><path fill="#871212" d="m25.587 22.19c3.718 9.54 5.245 14.456 11.711 14.456 6.469 0 16.32-16.617 6.899-21.992-9.231-5.266-8.94-12.65-8.94-12.65s-15.709 4.688-9.67 20.19"/><path fill="#991d1d" d="m45.15 24.2c-4.79 9.134-5.243 14.457-11.711 14.457s-18.331-21.8-7.83-25.12c12.997-4.114 16.319-8.87 16.319-8.87s10.375 5.897 3.222 19.537"/><path fill="#ad2727" d="m45.986 16.04c.031-3.912-17.05-7.177-19.998-13.253 0 0-8.25 5.912-5.066 11.961 1.771 3.361 24.961 14.454 25.06 1.292"/><path fill="#cc3636" d="m36.823 19.463c10.4 12.962 4.817 20.751-3.688 20.751-8.502 0-17.806-8.205-15.396-17.774 2.422-9.621-1.016-17.774-1.016-17.774s12.152 4.889 20.1 14.797"/><path fill="#e24b4b" d="m27.301 18.471c-11.835 11.896-2.059 21.743 6.447 21.743 8.504 0 15.397-7.957 15.397-17.774 0-9.816 2.635-15.832 2.635-15.832s-16.05 3.388-24.479 11.863"/><path fill="#75a843" d="m34.01 36.07c13.147-.177 7.391 4.961-1.115 4.961-20.92 0-19.994-18.258-19.994-18.258s9.44 13.456 21.11 13.297"/><path fill="#83bf4f" d="m34.01 36.07c-3.533 1.441-12.719 3.476-4.41 5.127 16.424 3.261 23.291-17.783 23.291-17.783s-8.393 8.382-18.881 12.656"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#75a843" d="m32.9 17.3l2.5 46.7h-5z"/><path d="m27.1 45.3c6.8 3.7 5.3 10.1 5.3 10.1s-5.6 5.1-12.5 1.4c-4.7-2.5-8.8-12.4-8.8-12.4s11.2-1.6 16 .9" fill="#83bf4f"/><path fill="#947151" d="m40.9 48.4l-7.3-2.1-.1 4z"/><path d="M25.6,22.2c3.7,9.5,5.2,14.5,11.7,14.5c6.5,0,16.3-16.6,6.9-22C35,9.4,35.3,2,35.3,2S19.5,6.7,25.6,22.2z" fill="#871212"/><path d="m45.2 24.2c-4.8 9.1-5.2 14.5-11.7 14.5s-18.3-21.8-7.8-25.1c13-4.1 16.3-8.9 16.3-8.9s10.3 5.9 3.2 19.5" fill="#991d1d"/><path d="m46 16c0-3.9-17-7.2-20-13.3 0 0-8.2 5.9-5.1 12 1.8 3.4 25 14.5 25.1 1.3" fill="#ad2727"/><path d="m36.8 19.5c10.4 13 4.8 20.8-3.7 20.8-8.5 0-17.8-8.2-15.4-17.8 2.4-9.6-1-17.8-1-17.8s12.2 4.9 20.1 14.8" fill="#cc3636"/><path d="m27.3 18.5c-11.8 11.9-2.1 21.7 6.4 21.7 8.5 0 15.4-8 15.4-17.8 0-9.8 2.6-15.8 2.6-15.8s-16 3.4-24.4 11.9" fill="#e24b4b"/><path d="m34 36.1c13.1-.2 7.4 5-1.1 5-20.9 0-20-18.3-20-18.3s9.4 13.4 21.1 13.3" fill="#75a843"/><path d="M34,36.1c-3.5,1.4-12.7,3.5-4.4,5.1C46,44.5,52.9,23.4,52.9,23.4S44.5,31.8,34,36.1z" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f33a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f33a.svg
index 3fc8cbb..5577887 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f33a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f33a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m45.643 35.02c-9.465-3.094-15.15 15.67-15.15 15.67s3.148 6.191 12.988 7.744c17.646 2.787 18.523-20.907 18.523-20.907s-8.736-.016-16.357-2.507"/><path d="m18.359 35.02c9.467-3.094 15.15 15.67 15.15 15.67s-3.15 6.191-12.986 7.744c-17.648 2.787-18.527-20.907-18.527-20.907s8.736-.016 16.359-2.507"/></g><g fill="#ffc7ce"><circle cx="32" cy="18.876" r="13.539"/><circle cx="23.414" cy="41.739" r="13.539"/><circle cx="40.589" cy="41.739" r="13.54"/><circle cx="19.408" cy="27.07" r="13.539"/><circle cx="44.595" cy="27.07" r="13.54"/></g><g fill="#ff506e"><circle cx="32" cy="21.381" r="10.571"/><circle cx="25.296" cy="39.23" r="10.571"/><circle cx="38.706" cy="39.23" r="10.571"/><path d="m32.74 27.778c0 5.839-4.732 10.572-10.572 10.572-5.836 0-10.572-4.732-10.572-10.572 0-5.84 4.736-10.572 10.572-10.572 5.84 0 10.572 4.732 10.572 10.572"/><circle cx="41.835" cy="27.778" r="10.571"/></g><g fill="#ffc7ce"><path d="m30.795 27.325c-.354-.109-.707-.214-1.07-.298-2.592-.599-3.936-3.02-5.811-5.186-1.455-1.691-1.479-4.986-.525-7.254.361-.86-.008-1.577 1.01-1.997 2.453-1.014 3.76-3.081 6.525-3.841.518-.143 1.059-.212 1.604-.249-1.57-.109-3.17.062-4.559.661-2.633 1.135-3.641 3.364-5.93 4.707-.301.178-.547.386-.768.607-.475.475-.787 1.035-.949 1.65-.631 2.379.842 5.499 2.52 6.973 2.152 1.891 3.822 4.095 6.475 4.331.912.08 1.814.27 2.719.44.002-.042.012-.089.014-.132-.314-.108-.629-.214-.947-.315-.105-.033-.205-.066-.308-.097"/><path d="m32.357 27.842c.688-3.682 5.396-8.885 7.809-9.862 1.746-.705 3.578-.588 5.4-.075.996.279 1.992.672 2.965 1.121 2.764 1.273 4.389 4.16 5.311 6.918.465 1.387.822 3.01.893 4.661.234-2.649-.623-5.454-1.684-7.588-1.297-2.605-3.307-5.239-6.219-6.117-1.029-.309-2.066-.561-3.094-.701-1.875-.253-3.705-.117-5.34.823-2.25 1.302-6.191 7.107-6.363 10.848-.021.445 0 .865.096 1.239.105.417.221.755.34 1.052-.074-.31-.141-.657-.189-1.079-.044-.385-.007-.804.075-1.24"/><path d="m50.35 40.532c-.129-.553-.195-1.111-.234-1.669-.166-2.54.332-3.063-1.27-4.97-1.959-2.32-5.01-2.836-8.605-4.293-3.1-1.258-4.402.879-7.16.659-.186-.016-.373-.004-.561.029-.031.006-.063.019-.092.025.023-.003.051-.01.076-.01.189-.008.379.007.561.048 2.699.601 4.285-1.333 7.18.339 3.363 1.943 6.588 2.895 8.207 5.467 1.324 2.107.479 2.539.291 5.077-.039.558-.049 1.119.002 1.685.281 2.99-3.482 7.449-6.123 9.242.912-.285 1.758-.675 2.469-1.227 2.401-1.857 6-7.279 5.259-10.402"/><path d="m34.527 37.36c-1.137-2.633.328-5.285-2.141-6.265-.092-.037-.197-.065-.301-.095.059.027.123.054.176.084 2.311 1.313.49 3.736 1.25 6.5.76 2.762.605 6.127-.707 8.436-.941 1.656-2.717 2.865-4.664 3.7-.764.328-1.553.605-2.334.82-1.586.436-3.455.677-5.01.373.018.021.039.045.057.067 1.635 2.092 5.207 1.412 7.84.277.74-.321 1.484-.705 2.195-1.136 1.814-1.097 3.402-2.54 4.107-4.31.982-2.467.669-5.822-.466-8.451"/><path d="m31.445 30.747c-3.168.533-4.141 3.184-6.578 3.886-2.529.728-6.115 1.905-8.514 1.207-1.078-.313-1.869-1.092-2.533-2.078-.813-1.208-1.439-2.735-2.145-4.191-1.676-3.455.381-6.225.938-9.32-.75.473-1.254 1.035-1.191 1.927.244 3.475-1.977 6.774.369 10.271.9 1.344 1.73 2.77 2.705 3.854.793.885 1.682 1.545 2.797 1.707 2.473.359 5.861-1.305 8.262-2.374 2.316-1.034 2.916-3.794 5.98-4.761.111-.035.219-.074.342-.104.297-.077.512-.195.68-.342-.191.134-.436.227-.758.262-.123.013-.236.037-.354.056"/></g><path fill="#83bf4f" d="m31.11 32.356l-7.07-9.334 2.578-1.697 7.08 9.334c1.372 1.81-1.339 3.328-2.58 1.697"/><path fill="#fabf49" d="m26.02 20.381h2.809l.885.885 1.346-1.348-1.346-1.347-.885.885h-2.809l-.551-.558 2.214-2.215h1.251v-1.906h-1.904v1.253l-2.217 2.213-.563-.558v-2.805l.89-.884-1.347-1.349-1.349 1.349.885.884v2.805l-.557.558-2.214-2.213v-1.253h-1.908v1.906h1.252l2.218 2.214-.561.559h-2.805l-.885-.885-1.348 1.347 1.348 1.348.885-.885h2.807l.559.557-2.218 2.212h-1.251v1.91h1.907v-1.253l2.215-2.214.556.557v2.806l-.885.884 1.349 1.35 1.347-1.35-.89-.884v-2.806l.562-.558 2.218 2.215v1.253h1.904v-1.91h-1.251l-2.215-2.213z"/><path fill="#ffd582" d="m27.315 22.16l2.775-.376 1 .756 1.15-1.52-1.514-1.152-.757.998-2.779.381-.626-.477 1.893-2.495 1.238-.175-.261-1.884-1.887.261.17 1.239-1.891 2.494-.626-.475-.386-2.779.756-.997-1.52-1.151-1.151 1.518.997.754.383 2.78-.475.629-2.495-1.891-.169-1.24-1.892.26.262 1.888 1.238-.171 2.492 1.895-.473.626-2.779.384-.998-.757-1.15 1.517 1.519 1.15.751-.99 2.786-.386.626.476-1.893 2.495-1.237.17.259 1.887 1.888-.259-.171-1.239 1.892-2.496.628.476.382 2.776-.756 1 1.516 1.15 1.15-1.516-.99-.756-.384-2.778.474-.63 2.497 1.892.17 1.239 1.889-.258-.26-1.889-1.239.17-2.495-1.892z"/><path fill="#fc6" d="m28.768 24.742l2.793.278.793.963 1.474-1.209-1.21-1.473-.968.789-2.79-.27-.5-.61 2.422-1.99 1.248.126.18-1.896-1.89-.187-.13 1.245-2.418 1.987-.502-.61.277-2.795.966-.79-1.209-1.473-1.474 1.213.795.96-.274 2.793-.609.501-1.986-2.419.121-1.246-1.898-.187-.185 1.898 1.246.122 1.98 2.419-.604.502-2.792-.273-.795-.97-1.472 1.21 1.21 1.475.966-.795 2.795.275.499.608-2.423 1.987-1.244-.122-.185 1.896 1.895.188.123-1.246 2.422-1.987.497.611-.273 2.79-.968.793 1.21 1.477 1.473-1.21-.794-.97.277-2.792.606-.499 1.989 2.421-.122 1.245 1.9.187.182-1.898-1.242-.122-1.99-2.422z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.6 35.1c-6.6-2.2-20.7-2.2-27.3 0-7.6 2.5-16.3 2.5-16.3 2.5s.9 24 18.5 21.2c6.1-1 9.7-3.8 11.5-5.8 1.8 2 5.3 4.8 11.5 5.8 17.6 2.8 18.5-21.2 18.5-21.2s-8.7 0-16.4-2.5" fill="#83bf4f"/><path d="m57.8 27c0-7.5-6-13.6-13.4-13.7-2-4.9-6.8-8.3-12.4-8.3-5.6 0-10.4 3.4-12.4 8.3-7.4.2-13.2 6.3-13.2 13.7 0 4 1.7 7.6 4.4 10.1-.6 1.5-.9 3.1-.9 4.8 0 7.6 6.1 13.7 13.5 13.7 3.3 0 6.3-1.2 8.6-3.1 2.3 1.9 5.3 3.1 8.6 3.1 7.5 0 13.5-6.1 13.5-13.7 0-1.6-.3-3.2-.8-4.6 2.8-2.6 4.5-6.2 4.5-10.3" fill="#ffc7ce"/><g fill="#ff506e"><path d="m33.3 48.5c1.6 1 3.4 1.5 5.4 1.5 5.8 0 10.6-4.8 10.6-10.7 0-.8-.1-1.5-.2-2.2-3.4-4.8-11.5-7.3-16.7-6.7 2 .9 5.9 7.8.9 18.1"/><path d="m14.9 37.6c-.1.5-.1 1.1-.1 1.7 0 5.9 4.7 10.7 10.6 10.7 2.2 0 4.2-.7 5.8-1.8 4.8-8.2 2.5-17.3 1.2-17.8-2.7 3.6-8 9-17.5 7.2"/><path d="m40.7 15.2c-1.9-2.8-5.1-4.7-8.7-4.7-3.2 0-6.1 1.5-8 3.8-1.4 5 1.6 11.9 8.4 16.2-1.7-4.2.6-12.6 8.3-15.3"/><path d="m42.4 17.1c-5.7 1.6-11.1 9-10.1 13.3 4.4-2.3 14.3-1.5 17.5 3.5 1.2-1.7 2-3.9 2-6.2 0-5.5-4.1-10-9.4-10.6"/><path d="m20.1 17.3c-4.7 1.1-8.1 5.3-8.1 10.4 0 2.9 1.2 5.6 3.1 7.5 7.4 1.1 14.8-3.6 17.3-4.8-4.6-.8-12.6-6.9-12.3-13.1"/></g><path d="m31.1 32.4l-7.1-9.5 2.6-1.7 7.1 9.5c1.4 1.8-1.3 3.3-2.6 1.7" fill="#83bf4f"/><path fill="#fabf49" d="m26 20.2h2.8l.9.9 1.4-1.3-1.4-1.4-.9.9h-2.8l-.5-.6 2.2-2.2h1.2v-1.9h-1.9v1.2l-2.2 2.3-.5-.6v-2.8l.8-.9-1.3-1.4-1.4 1.4.9.9v2.8l-.5.6-2.2-2.3v-1.2h-2v1.9h1.3l2.2 2.2-.5.6h-2.8l-.9-.9-1.4 1.4 1.4 1.3.9-.9h2.8l.5.6-2.2 2.2h-1.2v2h1.9v-1.3l2.2-2.2.5.5v2.9l-.9.9 1.4 1.3 1.3-1.3-.8-.9v-2.9l.5-.5 2.2 2.2v1.3h1.9v-2h-1.2l-2.2-2.2z"/><path fill="#ffd582" d="m27.3 22l2.8-.3 1 .7 1.1-1.5-1.5-1.2-.7 1-2.8.4-.6-.5 1.9-2.5 1.2-.2-.3-1.9-1.9.3.2 1.2-1.9 2.6-.6-.5-.4-2.8.8-1-1.5-1.2-1.2 1.5 1 .8.4 2.8-.5.6-2.5-1.9-.2-1.2-1.9.2.3 1.9 1.2-.1 2.5 1.9-.4.6-2.8.4-1-.8-1.2 1.6 1.6 1.2.7-1.1 2.8-.3.6.4-1.9 2.6-1.2.1.3 1.9 1.8-.2-.1-1.3 1.9-2.5.6.5.4 2.8-.8 1 1.5 1.2 1.2-1.6-1-.7-.4-2.8.5-.7 2.5 1.9.1 1.3 1.9-.3-.2-1.9-1.3.2-2.5-1.9z"/><path fill="#fc6" d="m28.8 24.6l2.8.3.8 1 1.4-1.2-1.2-1.5-1 .8-2.7-.3-.5-.6 2.4-2 1.2.1.2-1.9-1.9-.2-.1 1.3-2.4 2-.5-.6.2-2.9 1-.8-1.2-1.5-1.5 1.3.8.9-.2 2.9-.7.5-1.9-2.5.1-1.2-1.9-.2-.2 1.9 1.2.1 2 2.5-.6.5-2.8-.3-.8-1-1.4 1.2 1.2 1.5.9-.8 2.8.3.5.6-2.4 2-1.2-.1-.2 1.9 1.9.2.1-1.2 2.4-2.1.5.7-.3 2.8-.9.8 1.2 1.5 1.5-1.2-.8-1 .2-2.8.6-.5 2 2.4-.1 1.3 1.9.2.2-2-1.3-.1-1.9-2.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f33b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f33b.svg
index 9f3b040..3834929 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f33b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f33b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m39.43 49.49c-6.723 5.194-8.551 14.512-8.551 14.512h2.418c9.02-13.06 26.549-22.18 26.549-22.18s-11.832 1.033-20.416 7.667"/><path fill="#75a843" d="m30.474 1l2.5 63h-5z"/><path fill="#83bf4f" d="m23.929 50.738c5.824 6.184 6.545 13.262 6.545 13.262h-2.416c-9.02-15.309-23.903-20.602-23.903-20.602s12.83-.031 19.774 7.34"/><g fill="#f4bc58"><path d="m42.808 23.607c-5.303-1.42-7.92-.209-8.51 1.992s1.07 4.559 6.373 5.98c5.303 1.421 12.828-.834 12.828-.834s-5.389-5.717-10.691-7.138"/><path d="m18.544 25.651c5.301 1.42 7.92.209 8.508-1.992.592-2.202-1.07-4.56-6.373-5.981-5.301-1.421-12.826.835-12.826.835s5.388 5.717 10.691 7.138"/><path d="m29.653 12.498c-1.42 5.301-.209 7.918 1.992 8.509 2.201.59 4.561-1.071 5.98-6.373 1.422-5.302-.834-12.828-.834-12.828s-5.716 5.389-7.138 10.692"/><path d="m31.696 36.762c1.422-5.303.211-7.92-1.992-8.51-2.201-.59-4.559 1.072-5.979 6.373-1.422 5.303.836 12.828.836 12.828s5.715-5.39 7.135-10.691"/><path d="m38.532 15.328c-4.754 2.745-5.748 5.452-4.609 7.427 1.141 1.973 3.98 2.466 8.736-.279 4.754-2.745 8.48-9.661 8.48-9.661s-7.855-.231-12.607 2.513"/><path d="m22.819 33.93c4.752-2.744 5.748-5.451 4.609-7.424-1.141-1.975-3.982-2.468-8.736.277-4.754 2.745-8.48 9.661-8.48 9.661s7.853.23 12.607-2.514"/><path d="m21.374 16.773c2.744 4.753 5.453 5.748 7.426 4.608 1.975-1.14 2.467-3.981-.279-8.735-2.744-4.754-9.66-8.48-9.66-8.48s-.231 7.853 2.513 12.607"/><path d="m39.976 32.485c-2.744-4.753-5.451-5.748-7.426-4.608-1.973 1.14-2.465 3.981.279 8.736 2.744 4.753 9.662 8.479 9.662 8.479s.231-7.854-2.515-12.607"/></g><g fill="#fc6"><path d="m34.804 13.174c0 5.49-1.85 7.704-4.129 7.704s-4.127-2.214-4.127-7.704c0-5.488 4.127-12.174 4.127-12.174s4.129 6.686 4.129 12.174"/><path d="m26.548 36.08c0-5.49 1.848-7.704 4.127-7.704s4.129 2.214 4.129 7.704c0 5.488-4.129 12.174-4.129 12.174s-4.127-6.686-4.127-12.174"/><path d="m42.13 28.756c-5.488 0-7.705-1.848-7.705-4.126 0-2.279 2.217-4.126 7.705-4.126s12.174 4.126 12.174 4.126-6.686 4.126-12.174 4.126"/><path d="m19.222 20.503c5.488 0 7.703 1.847 7.703 4.126 0 2.279-2.215 4.126-7.703 4.126s-12.174-4.126-12.174-4.126 6.685-4.126 12.174-4.126"/><path d="m41.692 19.448c-3.881 3.881-6.754 4.14-8.365 2.529s-1.352-4.483 2.529-8.366c3.881-3.881 11.527-5.69 11.527-5.69s-1.808 7.645-5.691 11.527"/><path d="m19.657 29.811c3.883-3.881 6.754-4.142 8.365-2.53 1.613 1.612 1.354 4.484-2.529 8.366-3.881 3.881-11.525 5.691-11.525 5.691s1.808-7.645 5.689-11.527"/><path d="m35.856 35.646c-3.881-3.881-4.141-6.754-2.529-8.365 1.613-1.612 4.484-1.352 8.365 2.529 3.883 3.883 5.691 11.527 5.691 11.527s-7.646-1.81-11.527-5.691"/><path d="m25.493 13.611c3.883 3.882 4.143 6.754 2.529 8.366-1.611 1.612-4.482 1.352-8.365-2.53-3.881-3.881-5.689-11.526-5.689-11.526s7.644 1.809 11.525 5.69"/></g><g fill="#ffd68d"><path d="m31.696 12.497c1.422 5.302.211 7.92-1.992 8.509-2.201.59-4.559-1.071-5.979-6.373-1.421-5.302.835-12.827.835-12.827s5.714 5.389 7.136 10.691"/><path d="m29.653 36.762c-1.42-5.303-.209-7.92 1.992-8.51s4.561 1.07 5.98 6.373c1.422 5.303-.836 12.828-.836 12.828s-5.714-5.39-7.136-10.691"/><path d="m42.806 25.651c-5.301 1.42-7.918.209-8.508-1.992-.59-2.202 1.07-4.56 6.373-5.98 5.303-1.421 12.828.835 12.828.835s-5.389 5.716-10.693 7.137"/><path d="m18.542 23.607c5.303-1.42 7.922-.209 8.51 1.992.59 2.201-1.07 4.559-6.373 5.98-5.301 1.421-12.826-.835-12.826-.835s5.388-5.716 10.689-7.137"/><path d="m39.976 16.773c-2.744 4.754-5.451 5.748-7.426 4.608-1.973-1.14-2.467-3.981.279-8.735 2.744-4.754 9.662-8.48 9.662-8.48s.231 7.853-2.515 12.607"/><path d="m21.374 32.485c2.744-4.754 5.453-5.748 7.426-4.608 1.975 1.14 2.467 3.981-.279 8.734-2.744 4.755-9.66 8.48-9.66 8.48s-.231-7.853 2.513-12.606"/><path d="m38.532 33.93c-4.754-2.744-5.75-5.451-4.609-7.425 1.141-1.974 3.98-2.467 8.734.277 4.756 2.746 8.482 9.662 8.482 9.662s-7.855.23-12.607-2.514"/><path d="m22.819 15.328c4.752 2.745 5.748 5.452 4.609 7.426-1.141 1.974-3.982 2.467-8.736-.278-4.754-2.745-8.48-9.661-8.48-9.661s7.853-.231 12.607 2.513"/></g><circle fill="#947151" cx="30.676" cy="24.385" r="13.167"/><circle fill="#3e4347" cx="30.677" cy="24.386" r="9.98"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M39.4,49.5C32.7,54.7,30.9,64,30.9,64h2.4c9-13.1,26.5-22.2,26.5-22.2S48,42.9,39.4,49.5z" fill="#83bf4f"/><path fill="#75a843" d="m30.5 1l2.5 63h-5z"/><path d="m23.9 50.7c5.8 6.2 6.5 13.3 6.5 13.3h-2.4c-9-15.3-23.8-20.6-23.8-20.6s12.8 0 19.7 7.3" fill="#83bf4f"/><g fill="#f4bc58"><path d="m42.8 23.6c-5.3-1.4-7.9-.2-8.5 2s1.1 4.6 6.4 6 12.8-.8 12.8-.8-5.4-5.8-10.7-7.2"/><path d="m18.5 25.7c5.3 1.4 7.9.2 8.5-2 .6-2.2-1.1-4.6-6.4-6-5.3-1.4-12.8.8-12.8.8s5.4 5.7 10.7 7.2"/><path d="m29.7 12.5c-1.4 5.3-.2 7.9 2 8.5 2.2.6 4.6-1.1 6-6.4 1.3-5.3-.9-12.8-.9-12.8s-5.7 5.4-7.1 10.7"/><path d="m31.7 36.8c1.4-5.3.2-7.9-2-8.5-2.2-.6-4.6 1.1-6 6.4-1.4 5.3.8 12.8.8 12.8s5.8-5.4 7.2-10.7"/><path d="m38.5 15.3c-4.8 2.7-5.7 5.5-4.6 7.4 1.1 2 4 2.5 8.7-.3 4.8-2.7 8.5-9.7 8.5-9.7s-7.8-.1-12.6 2.6"/><path d="m22.8 33.9c4.8-2.7 5.7-5.5 4.6-7.4-1.1-2-4-2.5-8.7.3s-8.5 9.7-8.5 9.7 7.9.2 12.6-2.6"/><path d="m21.4 16.8c2.7 4.8 5.5 5.7 7.4 4.6 2-1.1 2.5-4-.3-8.7-2.7-4.8-9.7-8.5-9.7-8.5s-.2 7.8 2.6 12.6"/><path d="m40 32.5c-2.7-4.8-5.5-5.7-7.4-4.6-2 1.1-2.5 4 .3 8.7 2.7 4.8 9.7 8.5 9.7 8.5s.1-7.9-2.6-12.6"/></g><g fill="#fc6"><path d="m34.8 13.2c0 5.5-1.8 7.7-4.1 7.7s-4.1-2.2-4.1-7.7c-.1-5.5 4.1-12.2 4.1-12.2s4.1 6.7 4.1 12.2"/><path d="m26.5 36.1c0-5.5 1.8-7.7 4.1-7.7s4.1 2.2 4.1 7.7c0 5.5-4.1 12.2-4.1 12.2s-4.1-6.7-4.1-12.2"/><path d="m42.1 28.8c-5.5 0-7.7-1.8-7.7-4.1 0-2.3 2.2-4.1 7.7-4.1s12.2 4.1 12.2 4.1-6.7 4.1-12.2 4.1"/><path d="m19.2 20.5c5.5 0 7.7 1.8 7.7 4.1s-2.2 4.1-7.7 4.1-12.2-4.1-12.2-4.1 6.7-4.1 12.2-4.1"/><path d="m41.7 19.4c-3.9 3.9-6.8 4.1-8.4 2.5s-1.4-4.5 2.5-8.4c3.9-3.9 11.5-5.7 11.5-5.7s-1.7 7.8-5.6 11.6"/><path d="m19.7 29.8c3.9-3.9 6.8-4.1 8.4-2.5 1.6 1.6 1.4 4.5-2.5 8.4-4 3.8-11.6 5.6-11.6 5.6s1.8-7.6 5.7-11.5"/><path d="m35.9 35.6c-3.9-3.9-4.1-6.8-2.5-8.4 1.6-1.6 4.5-1.4 8.4 2.5 3.9 3.9 5.7 11.5 5.7 11.5s-7.8-1.7-11.6-5.6"/><path d="m25.5 13.6c3.9 3.9 4.1 6.8 2.5 8.4-1.6 1.6-4.5 1.4-8.4-2.5-3.8-3.9-5.6-11.6-5.6-11.6s7.6 1.8 11.5 5.7"/></g><g fill="#ffd68d"><path d="m31.7 12.5c1.4 5.3.2 7.9-2 8.5-2.2.6-4.6-1.1-6-6.4-1.4-5.3.8-12.8.8-12.8s5.8 5.4 7.2 10.7"/><path d="m29.7 36.8c-1.4-5.3-.2-7.9 2-8.5s4.6 1.1 6 6.4c1.4 5.3-.8 12.8-.8 12.8s-5.8-5.4-7.2-10.7"/><path d="m42.8 25.7c-5.3 1.4-7.9.2-8.5-2-.6-2.2 1.1-4.6 6.4-6 5.3-1.4 12.8.8 12.8.8s-5.4 5.7-10.7 7.2"/><path d="m18.5 23.6c5.3-1.4 7.9-.2 8.5 2 .6 2.2-1.1 4.6-6.4 6-5.2 1.4-12.7-.9-12.7-.9s5.3-5.7 10.6-7.1"/><path d="m40 16.8c-2.7 4.8-5.5 5.7-7.4 4.6-2-1.1-2.5-4 .3-8.7 2.7-4.8 9.7-8.5 9.7-8.5s.1 7.8-2.6 12.6"/><path d="m21.4 32.5c2.7-4.8 5.5-5.7 7.4-4.6 2 1.1 2.5 4-.3 8.7-2.7 4.8-9.7 8.5-9.7 8.5s-.2-7.9 2.6-12.6"/><path d="m38.5 33.9c-4.8-2.7-5.8-5.5-4.6-7.4s4-2.5 8.7.3c4.8 2.7 8.5 9.7 8.5 9.7s-7.8.2-12.6-2.6"/><path d="m22.8 15.3c4.8 2.7 5.7 5.5 4.6 7.4-1.1 2-4 2.5-8.7-.3s-8.5-9.7-8.5-9.7 7.9-.1 12.6 2.6"/></g><circle cx="30.7" cy="24.4" r="13.2" fill="#947151"/><circle cx="30.7" cy="24.4" r="10" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f33c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f33c.svg
index 65e8b0f..15d4207 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f33c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f33c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m43.801 63.43c-7.748 2.02-10.992-1.96-10.992-1.96s.604-6.168 8.352-8.186c5.338-1.389 15.323 1.428 15.323 1.428s-7.344 7.328-12.683 8.718"/><path d="m21.01 58.03c7.748 2.02 10.992-1.959 10.992-1.959s-.604-6.169-8.352-8.186c-5.338-1.389-15.323 1.428-15.323 1.428s7.344 7.329 12.683 8.717"/></g><path fill="none" stroke="#75a843" stroke-width="4" stroke-miterlimit="10" d="m32 28c0 3.81 0 36 0 36"/><g fill="#ffd68d"><path d="m50.31 19.591c-4.922 4.922-15.04 8.408-16.67 6.773-1.637-1.637 1.849-11.751 6.771-16.673 6.937-6.937 16.836 2.962 9.899 9.9"/><path d="m13.692 36.408c4.922-4.922 15.04-8.408 16.673-6.771 1.635 1.634-1.852 11.748-6.773 16.67-6.938 6.938-16.838-2.961-9.9-9.899"/><path d="m40.41 46.31c-4.922-4.922-8.408-15.04-6.773-16.671 1.637-1.637 11.751 1.849 16.674 6.771 6.936 6.938-2.963 16.837-9.901 9.9"/><path d="m23.592 9.691c4.922 4.922 8.408 15.04 6.771 16.674-1.635 1.634-11.75-1.852-16.672-6.774-6.937-6.937 2.963-16.837 9.901-9.9"/></g><g fill="#ffe9ab"><path d="m50.891 34.999c-6.96 0-16.576-4.686-16.576-6.998 0-2.314 9.616-7 16.576-7 9.811 0 9.811 14 0 14"/><path d="m13.11 21c6.961 0 16.576 4.687 16.576 7 .001 2.312-9.615 6.998-16.576 6.998-9.811.001-9.811-13.999 0-13.999"/><path d="m25 46.891c0-6.961 4.687-16.578 6.998-16.578 2.314 0 7 9.617 7 16.578 0 9.811-14 9.81-14 0"/><path d="m39 9.107c0 6.961-4.688 16.579-7 16.578-2.311.001-6.998-9.616-6.998-16.577 0-9.811 14-9.811 14-.001"/></g><circle fill="#f29a2e" cx="32" cy="28" r="9.638"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#83bf4f"><path d="m43.8 63.4c-7.7 2-11-2-11-2s.6-6.2 8.4-8.2c5.3-1.4 15.3 1.4 15.3 1.4s-7.4 7.4-12.7 8.8"/><path d="m21 58c7.7 2 11-2 11-2s-.6-6.2-8.4-8.2c-5.3-1.4-15.3 1.4-15.3 1.4s7.4 7.4 12.7 8.8"/></g><path d="m32 28c0 3.8 0 36 0 36" fill="none" stroke="#75a843" stroke-width="4" stroke-miterlimit="10"/><g fill="#ffd68d"><path d="m50.3 19.6c-4.9 4.9-15 8.4-16.7 6.8-1.6-1.6 1.8-11.8 6.8-16.7 6.9-6.9 16.8 3 9.9 9.9"/><path d="m13.7 36.4c4.9-4.9 15-8.4 16.7-6.8 1.6 1.6-1.9 11.7-6.8 16.7-6.9 6.9-16.8-3-9.9-9.9"/><path d="m40.4 46.3c-4.9-4.9-8.4-15-6.8-16.7 1.6-1.6 11.8 1.8 16.7 6.8 6.9 6.9-3 16.8-9.9 9.9"/><path d="m23.6 9.7c4.9 4.9 8.4 15 6.8 16.7-1.6 1.6-11.8-1.9-16.7-6.8-6.9-6.9 3-16.8 9.9-9.9"/></g><g fill="#ffe9ab"><path d="m50.9 35c-7 0-16.6-4.7-16.6-7 0-2.3 9.6-7 16.6-7 9.8 0 9.8 14 0 14"/><path d="m13.1 21c7 0 16.6 4.7 16.6 7 0 2.3-9.6 7-16.6 7-9.8 0-9.8-14 0-14"/><path d="m25 46.9c0-7 4.7-16.6 7-16.6 2.3 0 7 9.6 7 16.6 0 9.8-14 9.8-14 0"/><path d="m39 9.1c0 7-4.7 16.6-7 16.6-2.3 0-7-9.6-7-16.6 0-9.8 14-9.8 14 0"/></g><circle cx="32" cy="28" r="9.6" fill="#f29a2e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f33d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f33d.svg
index 98d8fbe..074139d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f33d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f33d.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8cc63e" d="m59.26 48.43c.94.979.939 2.566 0 3.547l-4.197 4.375c-.939.98-2.463.98-3.402 0l1.343-6.186 6.256-1.736"/><path fill="#64892f" d="m56.636 52.32c5.403-4.49 9.392-11.455-1.703-22.62-8.372-8.426-.95-13.811-.95-13.811s-25.06-.036 2.653 36.431"/><path fill="#c9ac1c" d="m11.301 7.308c-5.062 4.917 1.097 19.636 21.827 39.77 11.325 11 16.85 9.162 21.825 4.156 4.975-5.01 6.804-10.566-4.13-21.964-20.01-20.858-34.635-27.06-39.522-21.962"/><g fill="#ffe62e"><path d="m13.643 6.442c-1.751-1.366-5.26 1.796-2.607 4.03 1.612 1.358 5.279-1.94 2.607-4.03"/><path d="m16.984 9.708c-1.854-1.47-5.374 1.681-2.561 4.074 1.71 1.455 5.39-1.831 2.561-4.074"/><path d="m20.383 13.03c-1.676-1.292-5.176 1.879-2.639 3.994 1.542 1.287 5.199-2.02 2.639-3.994"/><path d="m23.746 16.318c-1.676-1.292-5.176 1.879-2.64 3.995 1.542 1.287 5.201-2.02 2.64-3.995"/><path d="m27.11 19.605c-1.677-1.292-5.177 1.879-2.64 3.995 1.543 1.286 5.201-2.02 2.64-3.995"/><path d="m30.516 22.937c-1.676-1.292-5.176 1.879-2.639 3.995 1.542 1.286 5.199-2.02 2.639-3.995"/><path d="m33.779 26.501c-1.676-1.292-5.176 1.879-2.639 3.995 1.543 1.286 5.2-2.02 2.639-3.995"/><path d="m37.07 29.71c-1.676-1.292-5.176 1.879-2.64 3.995 1.544 1.285 5.201-2.02 2.64-3.995"/><path d="m40.17 32.831c-1.676-1.292-5.176 1.878-2.64 3.994 1.542 1.286 5.2-2.02 2.64-3.994"/><path d="m43.545 36.09c-1.676-1.291-5.176 1.879-2.639 3.994 1.541 1.287 5.199-2.02 2.639-3.994"/><path d="m46.664 39.574c-1.677-1.291-5.177 1.879-2.641 3.994 1.543 1.287 5.201-2.02 2.641-3.994"/><path d="m50.26 42.842c-1.676-1.293-5.176 1.879-2.64 3.994 1.542 1.287 5.2-2.02 2.64-3.994"/><path d="m53.51 46.22c-1.677-1.291-5.177 1.879-2.641 3.994 1.543 1.287 5.2-2.02 2.641-3.994"/><path d="m56.28 49c-1.053-.664-4.479 2.58-2.92 3.713.948.687 4.527-2.699 2.92-3.713"/><path d="m59.53 44.684c.505.869-.824 3.158-1.699 3.645-2.39 1.329.67-5.421 1.699-3.645"/><path d="m32.645 17.533c-1.676-1.292-5.176 1.879-2.64 3.994 1.542 1.286 5.2-2.02 2.64-3.994"/><path d="m37.94 15.821c-1.654-1.314-4.788 1.488-2.275 3.628 1.527 1.302 4.802-1.621 2.275-3.628"/><path d="m41.484 19.253c-1.654-1.314-4.788 1.488-2.275 3.627 1.527 1.302 4.803-1.621 2.275-3.627"/><path d="m45.42 22.516c-1.874-1.488-5.423 1.686-2.577 4.108 1.73 1.474 5.439-1.836 2.577-4.108"/><path d="m49.29 26.409c-1.874-1.488-5.424 1.686-2.577 4.109 1.729 1.474 5.438-1.836 2.577-4.109"/><path d="m52.918 30.368c-1.873-1.488-5.422 1.686-2.576 4.109 1.729 1.472 5.438-1.837 2.576-4.109"/><path d="m56.48 34.861c-1.36-1.964-4.539-.449-2.487 2.676 1.246 1.902 4.567.322 2.487-2.676"/><path d="m36.13 21.04c-1.677-1.292-5.177 1.879-2.641 3.994 1.543 1.286 5.2-2.02 2.641-3.994"/><path d="m39.621 24.554c-1.676-1.292-5.176 1.879-2.639 3.995 1.542 1.285 5.2-2.02 2.639-3.995"/><path d="m43.14 28.09c-1.676-1.292-5.176 1.879-2.64 3.994 1.542 1.286 5.2-2.02 2.64-3.994"/><path d="m46.627 31.603c-1.677-1.292-5.177 1.878-2.641 3.993 1.543 1.287 5.201-2.02 2.641-3.993"/><path d="m50.19 35.19c-1.677-1.293-5.176 1.879-2.64 3.994 1.544 1.286 5.201-2.02 2.64-3.994"/><path d="m53.612 38.633c-1.677-1.293-5.177 1.877-2.64 3.994 1.544 1.285 5.201-2.02 2.64-3.994"/><path d="m57.15 42.19c-1.677-1.291-5.177 1.879-2.641 3.996 1.544 1.286 5.201-2.02 2.641-3.996"/><path d="m29.32 14.186c-1.676-1.292-5.176 1.879-2.64 3.995 1.543 1.286 5.201-2.02 2.64-3.995"/><path d="m34.95 15.486c1.138-1.698-2.097-4.903-3.973-2.324-1.141 1.567 2.235 4.918 3.973 2.324"/><path d="m25.783 11.04c-1.677-1.292-5.177 1.879-2.64 3.994 1.543 1.287 5.201-2.02 2.64-3.994"/><path d="m22.3 8.441c-1.521-1.172-4.696 1.704-2.395 3.624 1.4 1.167 4.717-1.834 2.395-3.624"/><path d="m18.637 6.911c-1.241-1.028-3.232.708-1.339 2.37 1.151 1.01 3.233-.8 1.339-2.37"/><path d="m14.416 5.506c-.608.808.958 2.553 1.957 1.331.607-.744-1.027-2.566-1.957-1.331"/><path d="m16.494 5.286c-.178.362 1.521 1.78 1.971.496.273-.782-1.708-1.034-1.971-.496"/><path d="m18.881 6.02c-.211.432 1.815 2.124 2.352.591.325-.932-2.038-1.233-2.352-.591"/><path d="m21.68 6.802c-.309.368 1.255 2.5 2.142 1.143.537-.826-1.683-1.69-2.142-1.143"/><path d="m58.59 42.48c.863-.086 1.498-4.838-1.354-4.195-1.732.393.075 4.326 1.354 4.195"/><path d="m27.68 9.841c-.799.66.83 4.827 3.303 2.37 1.502-1.495-2.118-3.348-3.303-2.37"/><path d="m24.348 7.974c-.645.532.67 3.896 2.667 1.914 1.214-1.208-1.71-2.705-2.667-1.914"/><path d="m21.541 28.706c-1.285-1.687 1.867-5.209 3.969-2.656 1.279 1.552-2.01 5.232-3.969 2.656"/><path d="m19.84 34.03c-1.306-1.665 1.479-4.818 3.605-2.289 1.293 1.537-1.611 4.832-3.605 2.289"/><path d="m25.03 32.21c-1.284-1.687 1.867-5.209 3.97-2.656 1.278 1.552-2.01 5.233-3.97 2.656"/><path d="m28.518 35.727c-1.283-1.688 1.867-5.208 3.97-2.656 1.278 1.552-2.01 5.232-3.97 2.656"/><path d="m18.215 25.359c-1.284-1.687 1.867-5.209 3.969-2.656 1.279 1.552-2.01 5.233-3.969 2.656"/><path d="m19.507 31.03c-1.688 1.145-4.873-2.111-2.31-3.999 1.559-1.148 4.888 2.249 2.31 3.999"/><path d="m15.09 21.801c-1.283-1.687 1.867-5.208 3.971-2.656 1.277 1.552-2.01 5.232-3.971 2.656"/><path d="m12.506 18.297c-1.165-1.53 1.693-4.726 3.602-2.41 1.16 1.408-1.823 4.747-3.602 2.41"/><path d="m10.986 14.609c-1.021-1.248.703-3.252 2.354-1.346 1.01 1.158-.794 3.253-2.354 1.346"/><path d="m9.589 10.363c.803-.612 2.537.964 1.323 1.969-.739.612-2.55-1.033-1.323-1.969"/><path d="m9.371 12.454c.36-.178 1.77 1.532.493 1.983-.777.275-1.028-1.718-.493-1.983"/><path d="m10.1 14.856c.43-.213 2.11 1.827.588 2.366-.927.328-1.226-2.049-.588-2.366"/><path d="m10.877 17.673c.366-.311 2.485 1.262 1.135 2.154-.82.542-1.678-1.693-1.135-2.154"/><path d="m13.898 23.71c.654-.803 4.795.835 2.354 3.324-1.485 1.512-3.326-2.132-2.354-3.324"/><path d="m12.04 20.357c.529-.649 3.873.674 1.902 2.683-1.201 1.222-2.687-1.72-1.902-2.683"/></g><path fill="#8cc63e" d="M2,30.549c0,0,22.259,8.168,30.48,20.902c5.367,8.313,16.137,11.387,22.628,0.73
- C35.5,25.706,2,30.549,2,30.549z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.3 48.4c.9 1 .9 2.6 0 3.5l-4.2 4.4c-.9 1-2.5 1-3.4 0l1.3-6.2 6.3-1.7" fill="#8cc63e"/><path d="m56.6 52.3c5.4-4.5 9.4-11.5-1.7-22.6-8.4-8.4-1-13.8-1-13.8s-25 0 2.7 36.4" fill="#64892f"/><path d="m11.3 7.3c-5.1 4.9 1.1 19.6 21.8 39.8 11.3 11 16.8 9.2 21.8 4.2s6.8-10.6-4.1-22c-20-20.9-34.6-27.1-39.5-22" fill="#c9ac1c"/><g fill="#ffe62e"><path d="m13.6 6.4c-1.8-1.4-5.3 1.8-2.6 4 1.6 1.4 5.3-1.9 2.6-4"/><path d="m17 9.7c-1.9-1.5-5.4 1.7-2.6 4.1 1.7 1.4 5.4-1.8 2.6-4.1"/><path d="m20.4 13c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2 2.6-4"/><path d="m23.7 16.3c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m27.1 19.6c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m30.5 22.9c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m33.8 26.5c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2 2.6-4"/><path d="m37.1 29.7c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2 2.6-4"/><path d="m40.2 32.8c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2 2.6-4"/><path d="m43.5 36.1c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m46.7 39.6c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2.1 2.6-4"/><path d="m50.3 42.8c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2 2.6-4"/><path d="m53.5 46.2c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m56.3 49c-1.1-.7-4.5 2.6-2.9 3.7.9.7 4.5-2.7 2.9-3.7"/><path d="m59.5 44.7c.5.9-.8 3.2-1.7 3.6-2.4 1.4.7-5.4 1.7-3.6"/><path d="m32.6 17.5c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m37.9 15.8c-1.7-1.3-4.8 1.5-2.3 3.6 1.6 1.4 4.9-1.6 2.3-3.6"/><path d="m41.5 19.3c-1.7-1.3-4.8 1.5-2.3 3.6 1.5 1.3 4.8-1.6 2.3-3.6"/><path d="m45.4 22.5c-1.9-1.5-5.4 1.7-2.6 4.1 1.8 1.5 5.5-1.8 2.6-4.1"/><path d="m49.3 26.4c-1.9-1.5-5.4 1.7-2.6 4.1 1.7 1.5 5.4-1.8 2.6-4.1"/><path d="m52.9 30.4c-1.9-1.5-5.4 1.7-2.6 4.1 1.8 1.4 5.5-1.9 2.6-4.1"/><path d="m56.5 34.9c-1.4-2-4.5-.4-2.5 2.7 1.2 1.8 4.6.3 2.5-2.7"/><path d="m36.1 21c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m39.6 24.6c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.2 5.2-2.1 2.6-4"/><path d="m43.1 28.1c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m46.6 31.6c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m50.2 35.2c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m53.6 38.6c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m57.1 42.2c-1.7-1.3-5.2 1.9-2.6 4 1.6 1.3 5.2-2 2.6-4"/><path d="m29.3 14.2c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.2-2 2.6-4"/><path d="m35 15.5c1.1-1.7-2.1-4.9-4-2.3-1.2 1.5 2.2 4.9 4 2.3"/><path d="m25.8 11c-1.7-1.3-5.2 1.9-2.6 4 1.5 1.3 5.1-2 2.6-4"/><path d="m22.3 8.4c-1.5-1.2-4.7 1.7-2.4 3.6 1.4 1.2 4.7-1.8 2.4-3.6"/><path d="m18.6 6.9c-1.2-1-3.2.7-1.3 2.4 1.1 1 3.2-.8 1.3-2.4"/><path d="m14.4 5.5c-.6.8 1 2.6 2 1.3.6-.7-1.1-2.5-2-1.3"/><path d="m16.5 5.3c-.2.4 1.5 1.8 2 .5.2-.8-1.7-1.1-2-.5"/><path d="m18.9 6c-.2.4 1.8 2.1 2.4.6.3-.9-2.1-1.2-2.4-.6"/><path d="m21.7 6.8c-.3.4 1.3 2.5 2.1 1.1.6-.8-1.7-1.6-2.1-1.1"/><path d="m58.6 42.5c.9-.1 1.5-4.8-1.4-4.2-1.7.4.1 4.3 1.4 4.2"/><path d="m27.7 9.8c-.8.7.8 4.8 3.3 2.4 1.5-1.5-2.1-3.3-3.3-2.4"/><path d="m24.3 8c-.6.5.7 3.9 2.7 1.9 1.2-1.2-1.7-2.7-2.7-1.9"/><path d="m21.5 28.7c-1.3-1.7 1.9-5.2 4-2.7 1.3 1.6-2 5.3-4 2.7"/><path d="m19.8 34c-1.3-1.7 1.5-4.8 3.6-2.3 1.3 1.6-1.6 4.9-3.6 2.3"/><path d="m25 32.2c-1.3-1.7 1.9-5.2 4-2.7 1.3 1.6-2 5.3-4 2.7"/><path d="m28.5 35.7c-1.3-1.7 1.9-5.2 4-2.7 1.3 1.6-2 5.3-4 2.7"/><path d="m18.2 25.4c-1.3-1.7 1.9-5.2 4-2.7 1.3 1.6-2 5.2-4 2.7"/><path d="m19.5 31c-1.7 1.1-4.9-2.1-2.3-4 1.6-1.1 4.9 2.3 2.3 4"/><path d="m15.1 21.8c-1.3-1.7 1.9-5.2 4-2.7 1.2 1.6-2.1 5.3-4 2.7"/><path d="m12.5 18.3c-1.2-1.5 1.7-4.7 3.6-2.4 1.2 1.4-1.8 4.7-3.6 2.4"/><path d="m11 14.6c-1-1.2.7-3.3 2.4-1.3.9 1.1-.9 3.2-2.4 1.3"/><path d="m9.6 10.4c.8-.6 2.5 1 1.3 2-.7.5-2.5-1.1-1.3-2"/><path d="m9.4 12.5c.4-.2 1.8 1.5.5 2-.8.2-1.1-1.8-.5-2"/><path d="m10.1 14.9c.4-.2 2.1 1.8.6 2.4-.9.2-1.2-2.1-.6-2.4"/><path d="m10.9 17.7c.4-.3 2.5 1.3 1.1 2.2-.8.5-1.7-1.8-1.1-2.2"/><path d="m13.9 23.7c.7-.8 4.8.8 2.4 3.3-1.5 1.5-3.4-2.1-2.4-3.3"/><path d="m12 20.4c.5-.6 3.9.7 1.9 2.7-1.2 1.2-2.6-1.8-1.9-2.7"/></g><path d="M2,30.5c0,0,22.3,8.2,30.5,20.9c5.4,8.3,16.1,11.4,22.6,0.7C35.5,25.7,2,30.5,2,30.5z" fill="#8cc63e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f33e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f33e.svg
index 5f29dc0..5b02cf7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f33e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f33e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75a843"><path d="m10.69 27.466c-.574 3.037-.881 6.079-.754 9.1.133 3.01.682 5.986 1.645 8.827.957 2.843 2.314 5.55 3.953 8.093.828 1.268 1.717 2.502 2.682 3.682.957 1.189 1.98 2.33 3.086 3.41-1.318-.82-2.502-1.838-3.633-2.908-1.115-1.086-2.158-2.254-3.1-3.506-1.896-2.49-3.412-5.297-4.42-8.289-1.01-2.988-1.496-6.162-1.387-9.303.092-3.141.754-6.243 1.928-9.103"/><path d="m51.33 27.965c-3.197 1.844-6.283 3.814-9.17 6.03-2.883 2.223-5.574 4.672-7.998 7.363-2.426 2.69-4.584 5.617-6.44 8.74-.918 1.566-1.771 3.176-2.523 4.838-.762 1.66-1.438 3.363-1.961 5.131.195-1.84.691-3.641 1.27-5.403.604-1.757 1.328-3.477 2.182-5.134 1.691-3.322 3.852-6.41 6.352-9.184 2.502-2.771 5.344-5.23 8.432-7.305 3.079-2.083 6.393-3.802 9.856-5.079"/></g><g fill="#f4bc58"><path d="m28.463 14.719c-1.461 1.75-4.115 1.181-4.115 1.181s-1.035-2.509.426-4.259c1.461-1.751 5.05-2.301 5.05-2.301s.101 3.629-1.36 5.379"/><path d="m23.17 15.07c.422 1.803-1.242 3.247-1.242 3.247s-2.135-.553-2.557-2.356c-.424-1.803.971-4.399.971-4.399s2.405 1.706 2.828 3.508"/><path d="m25.971 20.06c-1.803.423-3.246-1.242-3.246-1.242s.553-2.133 2.355-2.556 4.4.972 4.4.972-1.706 2.403-3.509 2.826"/><path d="m20.2 19.618c.646 1.735-.822 3.377-.822 3.377s-2.186-.28-2.832-2.02c-.648-1.735.408-4.486.408-4.486s2.599 1.389 3.246 3.124"/><path d="m23.606 24.21c-1.734.647-3.377-.822-3.377-.822s.279-2.186 2.01-2.833c1.736-.647 4.486.409 4.486.409s-1.389 2.6-3.123 3.246"/><path d="m18.209 24.366c.855 1.737-.502 3.599-.502 3.599s-2.305-.061-3.158-1.799c-.855-1.738-.043-4.711-.043-4.711s2.85 1.173 3.703 2.911"/><path d="m22.23 28.783c-1.738.855-3.602-.502-3.602-.502s.063-2.304 1.801-3.158c1.736-.854 4.711-.043 4.711-.043s-1.174 2.85-2.91 3.703"/><path d="m16.401 30.02c1.242 1.721.115 3.98.115 3.98s-2.498.355-3.74-1.365c-1.24-1.721-.91-5.081-.91-5.081s3.295.746 4.535 2.466"/><path d="m21.557 34.06c-1.721 1.241-3.98.116-3.98.116s-.355-2.5 1.365-3.741 5.08-.909 5.08-.909-.744 3.292-2.465 4.534"/><path d="m15.295 36.661c1.527 1.646.639 4.167.639 4.167s-2.58.697-4.107-.949-1.615-5.221-1.615-5.221 3.556.357 5.083 2"/><path d="m21.235 40.23c-1.646 1.527-4.166.639-4.166.639s-.697-2.58.949-4.107 5.221-1.615 5.221-1.615-.358 3.556-2 5.083"/><path d="m24.493 15.843c-2.547 3.06-4.264 6.662-5.367 10.414-.543 1.881-.967 3.796-1.252 5.737-.299 1.938-.49 3.893-.58 5.855-.109 1.961-.119 3.93-.064 5.896.039 1.97.176 3.937.334 5.904.174 1.965.391 3.93.664 5.889.264 1.961.582 3.916.951 5.867-.621-1.889-1.09-3.824-1.516-5.769-.408-1.948-.75-3.913-1-5.89-.268-1.977-.428-3.967-.533-5.962-.088-1.995-.086-3.997.006-5.997.113-1.998.314-3.996.656-5.973.354-1.974.814-3.936 1.475-5.834.648-1.901 1.479-3.744 2.508-5.466 1.036-1.714 2.269-3.312 3.722-4.671"/></g><g fill="#fc6"><path d="m51.722 8.707c-2.424 1.695-5.553.08-5.553.08s-.443-3.493 1.98-5.188c2.426-1.695 7.104-1.164 7.104-1.164s-1.107 4.577-3.531 6.272"/><path d="m44.976 7.353c-.082 2.4-2.658 3.642-2.658 3.642s-2.482-1.417-2.398-3.818c.081-2.401 2.71-5.177 2.71-5.177s2.43 2.952 2.346 5.353"/><path d="m46.788 14.542c-2.4-.083-3.643-2.658-3.643-2.658s1.418-2.483 3.818-2.399c2.4.083 5.178 2.711 5.178 2.711s-2.953 2.429-5.353 2.346"/><path d="m39.712 12.03c.221 2.392-2.178 3.949-2.178 3.949s-2.643-1.093-2.861-3.485c-.221-2.392 2.037-5.478 2.037-5.478s2.781 2.623 3 5.01"/><path d="m42.42 18.934c-2.393.22-3.949-2.178-3.949-2.178s1.094-2.642 3.484-2.862c2.393-.22 5.479 2.038 5.479 2.038s-2.623 2.782-5.01 3"/><path d="m35.606 17.298c.479 2.465-1.854 4.336-1.854 4.336s-2.862-.861-3.342-3.327c-.479-2.466 1.547-5.913 1.547-5.913s3.171 2.438 3.649 4.904"/><path d="m39.14 24.2c-2.467.479-4.338-1.853-4.338-1.853s.861-2.863 3.328-3.342c2.465-.479 5.912 1.547 5.912 1.547s-2.438 3.169-4.902 3.648"/><path d="m31.418 23.769c.969 2.576-1.209 5.02-1.209 5.02s-3.25-.405-4.219-2.981c-.969-2.576.588-6.67.588-6.67s3.872 2.052 4.84 4.628"/><path d="m36.501 30.574c-2.576.969-5.02-1.208-5.02-1.208s.406-3.25 2.983-4.219c2.576-.969 6.67.588 6.67.588s-2.053 3.87-4.629 4.839"/><path d="m27.78 31.701c1.352 2.58-.619 5.434-.619 5.434s-3.467-.006-4.818-2.586-.248-7.083-.248-7.083 4.331 1.654 5.685 4.235"/><path d="m34 38.19c-2.581 1.352-5.434-.618-5.434-.618s.004-3.467 2.586-4.819c2.581-1.352 7.084-.246 7.084-.246s-1.656 4.33-4.236 5.683"/><path d="m46.37 8.764c-4.229 2.965-7.604 6.892-10.26 11.213-1.32 2.17-2.502 4.424-3.52 6.755-1.029 2.325-1.936 4.708-2.713 7.134-.805 2.418-1.486 4.879-2.088 7.361-.621 2.479-1.117 4.986-1.588 7.504-.449 2.52-.848 5.05-1.17 7.598-.336 2.545-.604 5.102-.803 7.67-.137-2.576-.066-5.159.063-7.738.152-2.577.391-5.152.746-7.715.334-2.564.813-5.111 1.359-7.644.566-2.528 1.248-5.03 2.045-7.507.82-2.463 1.75-4.895 2.85-7.254 1.115-2.351 2.358-4.65 3.833-6.802 1.455-2.161 3.123-4.185 4.996-5.991 1.881-1.794 3.969-3.376 6.25-4.584"/></g><path fill="#83bf4f" d="m39.43 39.518c-2.48.509-4.883 1.178-7.108 2.201-2.219 1.026-4.25 2.39-5.973 4.084-1.73 1.688-3.15 3.686-4.293 5.855-.563 1.09-1.068 2.217-1.496 3.383-.439 1.162-.807 2.357-1.1 3.589-.041-1.271.137-2.542.387-3.794.27-1.25.643-2.485 1.141-3.676.977-2.385 2.432-4.611 4.305-6.438 1.867-1.83 4.146-3.238 6.588-4.092 2.437-.871 5.02-1.228 7.549-1.112"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75a843"><path d="m10.7 27.5c-.6 3-.9 6.1-.8 9.1.1 3 .7 6 1.6 8.8 1 2.8 2.3 5.5 4 8.1.8 1.3 1.7 2.5 2.7 3.7 1 1.2 2 2.3 3.1 3.4-1.3-.8-2.5-1.8-3.6-2.9-1.1-1.1-2.2-2.3-3.1-3.5-1.9-2.5-3.4-5.3-4.4-8.3-1-3-1.5-6.2-1.4-9.3.1-3.2.7-6.3 1.9-9.1"/><path d="m51.3 28c-3.2 1.8-6.3 3.8-9.2 6-2.9 2.2-5.6 4.7-8 7.4-2.4 2.7-4.6 5.6-6.4 8.7-.9 1.6-1.8 3.2-2.5 4.8-.8 1.7-1.4 3.4-2 5.1.2-1.8.7-3.6 1.3-5.4.6-1.8 1.3-3.5 2.2-5.1 1.7-3.3 3.9-6.4 6.4-9.2 2.5-2.8 5.3-5.2 8.4-7.3 3.1-2 6.4-3.8 9.8-5"/></g><g fill="#f4bc58"><path d="m28.5 14.7c-1.5 1.8-4.1 1.2-4.1 1.2s-1-2.5.4-4.3c1.5-1.8 5-2.3 5-2.3s.1 3.7-1.3 5.4"/><path d="m23.2 15.1c.4 1.8-1.2 3.2-1.2 3.2s-2.1-.6-2.6-2.4c-.4-1.8 1-4.4 1-4.4s2.3 1.8 2.8 3.6"/><path d="m26 20.1c-1.8.4-3.2-1.2-3.2-1.2s.6-2.1 2.4-2.6 4.4 1 4.4 1-1.8 2.3-3.6 2.8"/><path d="m20.2 19.6c.6 1.7-.8 3.4-.8 3.4s-2.2-.3-2.8-2c-.6-1.7.4-4.5.4-4.5s2.6 1.4 3.2 3.1"/><path d="m23.6 24.2c-1.7.6-3.4-.8-3.4-.8s.3-2.2 2-2.8c1.7-.6 4.5.4 4.5.4s-1.4 2.6-3.1 3.2"/><path d="m18.2 24.4c.9 1.7-.5 3.6-.5 3.6s-2.3-.1-3.2-1.8c-.9-1.7 0-4.7 0-4.7s2.9 1.1 3.7 2.9"/><path d="m22.2 28.8c-1.7.9-3.6-.5-3.6-.5s.1-2.3 1.8-3.2c1.7-.9 4.7 0 4.7 0s-1.1 2.8-2.9 3.7"/><path d="m16.4 30c1.2 1.7.1 4 .1 4s-2.5.4-3.7-1.4c-1.2-1.7-.9-5.1-.9-5.1s3.3.8 4.5 2.5"/><path d="m21.6 34.1c-1.7 1.2-4 .1-4 .1s-.4-2.5 1.4-3.7 5.1-.9 5.1-.9-.8 3.2-2.5 4.5"/><path d="m15.3 36.7c1.5 1.6.6 4.2.6 4.2s-2.6.7-4.1-.9-1.6-5.2-1.6-5.2 3.6.2 5.1 1.9"/><path d="m21.2 40.2c-1.6 1.5-4.2.6-4.2.6s-.7-2.6.9-4.1 5.2-1.6 5.2-1.6-.2 3.6-1.9 5.1"/><path d="m24.5 15.8c-2.5 3.1-4.3 6.7-5.4 10.4-.5 1.9-1 3.8-1.3 5.7-.3 1.9-.5 3.9-.6 5.9-.1 2-.1 3.9-.1 5.9 0 2 .2 3.9.3 5.9.2 2 .4 3.9.7 5.9.3 2 .6 3.9 1 5.9-.6-1.9-1.1-3.8-1.5-5.8-.4-1.9-.8-3.9-1-5.9-.3-2-.4-4-.5-6-.1-2-.1-4 0-6 .1-2 .3-4 .7-6 .4-2 .8-3.9 1.5-5.8.6-1.9 1.5-3.7 2.5-5.5 1-1.6 2.2-3.2 3.7-4.6"/></g><g fill="#fc6"><path d="m51.7 8.7c-2.4 1.7-5.6.1-5.6.1s-.4-3.5 2-5.2c2.4-1.7 7.1-1.2 7.1-1.2s-1.1 4.6-3.5 6.3"/><path d="m45 7.4c-.1 2.4-2.7 3.6-2.7 3.6s-2.5-1.4-2.4-3.8c.1-2.4 2.7-5.2 2.7-5.2s2.5 3 2.4 5.4"/><path d="m46.8 14.5c-2.4-.1-3.6-2.7-3.6-2.7s1.4-2.5 3.8-2.4c2.4.1 5.2 2.7 5.2 2.7s-3 2.5-5.4 2.4"/><path d="m39.7 12c.2 2.4-2.2 3.9-2.2 3.9s-2.6-1.1-2.9-3.5c-.2-2.4 2-5.5 2-5.5s2.9 2.7 3.1 5.1"/><path d="m42.4 18.9c-2.4.2-3.9-2.2-3.9-2.2s1.1-2.6 3.5-2.9c2.4-.2 5.5 2 5.5 2s-2.7 2.9-5.1 3.1"/><path d="m35.6 17.3c.5 2.5-1.9 4.3-1.9 4.3s-2.9-.9-3.3-3.3c-.5-2.5 1.5-5.9 1.5-5.9s3.2 2.4 3.7 4.9"/><path d="m39.1 24.2c-2.5.5-4.3-1.9-4.3-1.9s.9-2.9 3.3-3.3c2.5-.5 5.9 1.5 5.9 1.5s-2.4 3.2-4.9 3.7"/><path d="m31.4 23.8c1 2.6-1.2 5-1.2 5s-3.2-.4-4.2-3 .6-6.7.6-6.7 3.9 2.1 4.8 4.7"/><path d="m36.5 30.6c-2.6 1-5-1.2-5-1.2s.4-3.2 3-4.2c2.6-1 6.7.6 6.7.6s-2.1 3.8-4.7 4.8"/><path d="m27.8 31.7c1.4 2.6-.6 5.4-.6 5.4s-3.5 0-4.8-2.6-.2-7.1-.2-7.1 4.2 1.7 5.6 4.3"/><path d="m34 38.2c-2.6 1.4-5.4-.6-5.4-.6s0-3.5 2.6-4.8c2.6-1.4 7.1-.2 7.1-.2s-1.7 4.2-4.3 5.6"/><path d="m46.4 8.8c-4.2 3-7.6 6.9-10.3 11.2-1.3 2.2-2.5 4.4-3.5 6.8-1 2.3-1.9 4.7-2.7 7.1-.8 2.4-1.5 4.9-2.1 7.4-.6 2.5-1.1 5-1.6 7.5-.4 2.5-.8 5.1-1.2 7.6-.3 2.5-.6 5.1-.8 7.7-.1-2.6-.1-5.2.1-7.7.2-2.6.4-5.2.7-7.7.3-2.6.8-5.1 1.4-7.6.6-2.5 1.2-5 2-7.5.8-2.5 1.8-4.9 2.9-7.3 1.1-2.4 2.4-4.6 3.8-6.8 1.5-2.2 3.1-4.2 5-6 1.9-1.9 4-3.5 6.3-4.7"/></g><path d="m39.4 39.5c-2.5.5-4.9 1.2-7.1 2.2-2.2 1-4.2 2.4-6 4.1-1.7 1.7-3.1 3.7-4.3 5.9-.6 1.1-1.1 2.2-1.5 3.4-.4 1.2-.8 2.4-1.1 3.6 0-1.3.1-2.5.4-3.8.3-1.2.6-2.5 1.1-3.7 1-2.4 2.4-4.6 4.3-6.4 1.9-1.8 4.1-3.2 6.6-4.1 2.5-.9 5.1-1.3 7.6-1.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f33f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f33f.svg
index af62f5c..174e902 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f33f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f33f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#46a03c" d="m25.43 2c1.12 2.277 2.032 4.655 2.857 7.06.817 2.408 1.52 4.859 2.112 7.338 1.186 4.959 1.933 10.04 2.206 15.16.273 5.119.066 10.281-.652 15.391-.715 5.109-1.949 10.161-3.678 15.05l-3.237-1.247c3.844-9.144 5.808-19.11 5.833-29.15.019-5.02-.429-10.05-1.32-15.02-.446-2.484-1-4.951-1.679-7.389-.683-2.435-1.454-4.852-2.442-7.188"/><g fill="#4ebd3b"><path d="m35.476 42.01c-4.947 2.152-4.562 7.349-4.562 7.349s3.689 4.398 8.639 2.247c3.411-1.482 7.746-8.459 7.746-8.459s-8.412-2.62-11.823-1.137"/><path d="m32.726 24.673c-3.718 2.964-.563 6.505-.563 6.505s5.666 2.227 9.385-.737c2.564-2.043 2.313-8.242 2.313-8.242s-8.571.431-11.135 2.474"/><path d="m30.834 11.855c-2.782 2.24-.418 4.92-.418 4.92s4.242 1.687 7.03-.553c1.919-1.544 1.728-6.232 1.728-6.232s-6.416.322-8.335 1.865"/><path d="m29.28 33.26c4.703 2.217 2.137 6.15 2.137 6.15s-5.581 3.096-10.285.88c-3.243-1.528-4.43-7.521-4.43-7.521s9.336-1.037 12.578.491"/><path d="m30.603 18.263c2.861 2.863-.071 5.166-.071 5.166s-4.923.905-7.785-1.958c-1.973-1.974-1.245-6.778-1.245-6.778s7.128 1.597 9.101 3.57"/><path d="m30.18 6.573c.938 2.594-1.696 3.416-1.696 3.416s-3.478-.588-4.416-3.183c-.647-1.789 1.359-4.806 1.359-4.806s4.106 2.785 4.753 4.573"/></g><g fill="#46a03c"><path d="m31.416 39.41c-.47-.486-1.082-.795-1.669-1.117-.59-.324-1.193-.623-1.806-.904-1.223-.563-2.456-1.107-3.704-1.617-1.243-.521-2.501-1.01-3.756-1.512l-1.891-.734-1.89-.756c1.329.287 2.635.66 3.93 1.071 1.296.405 2.569.882 3.828 1.397 1.253.527 2.493 1.092 3.685 1.756.594.334 1.182.68 1.75 1.059.28.195.556.398.819.615.262.219.531.444.704.742"/><path d="m30.531 23.428c-.295-.463-.468-.982-.734-1.447-.244-.475-.525-.924-.832-1.354-.622-.854-1.355-1.622-2.16-2.311-1.605-1.393-3.447-2.502-5.304-3.624 2.051.708 4.01 1.755 5.683 3.188.827.723 1.582 1.55 2.155 2.5.289.472.528.974.717 1.489.185.518.301 1.048.475 1.559"/><path d="m32.16 31.18c.262-.575.584-1.12.924-1.656.354-.526.739-1.032 1.147-1.52.816-.975 1.764-1.839 2.775-2.61 1.022-.76 2.114-1.427 3.27-1.956.576-.264 1.163-.505 1.759-.719.603-.195 1.204-.386 1.822-.518-1.157.503-2.292 1.027-3.38 1.633-1.084.611-2.136 1.272-3.122 2.02-.995.739-1.922 1.565-2.797 2.447-.871.887-1.663 1.853-2.398 2.877"/><path d="m30.416 16.775c.283-.928.75-1.8 1.322-2.593.569-.797 1.258-1.513 2.027-2.126.776-.606 1.636-1.11 2.554-1.461.913-.359 1.883-.559 2.85-.605-1.858.534-3.576 1.347-5.05 2.521-.74.576-1.412 1.238-2.033 1.95-.611.719-1.189 1.48-1.675 2.314"/><path d="m28.486 9.989c-.412-1.413-.688-2.822-1.154-4.167-.449-1.351-1.053-2.626-1.902-3.822.588.441 1.097 1 1.495 1.628.407.625.714 1.309.955 2.01.23.705.397 1.427.493 2.157.105.728.126 1.462.113 2.195"/><path d="m30.914 49.35c.454-.594.995-1.124 1.56-1.623.578-.485 1.197-.922 1.84-1.319 1.288-.796 2.691-1.383 4.122-1.856 1.436-.46 2.904-.804 4.39-1.024.742-.11 1.486-.203 2.231-.274.748-.054 1.494-.109 2.242-.114-.736.135-1.474.248-2.204.395-.733.129-1.464.27-2.188.431-1.45.321-2.89.675-4.293 1.138-1.406.45-2.775 1.01-4.081 1.691-1.303.686-2.524 1.534-3.619 2.555"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m25.1 2c1.2 2.3 2.1 4.7 3 7.1.9 2.4 1.6 4.9 2.2 7.3 1.2 5 2 10 2.3 15.2.3 5.1.1 10.3-.7 15.4-.7 5.1-2 10.2-3.8 15.1l-3.4-1.2c4-9.1 6.1-19.1 6.1-29.2 0-5-.4-10.1-1.4-15-.5-2.5-1-5-1.8-7.4-.6-2.5-1.4-5-2.5-7.3" fill="#75a843"/><g fill="#83bf4f"><path d="m35.6 42c-5.2 2.2-4.8 7.3-4.8 7.3s3.9 4.4 9 2.2c3.6-1.5 8.1-8.5 8.1-8.5s-8.7-2.5-12.3-1"/><path d="m32.8 24.7c-3.9 3-.6 6.5-.6 6.5s5.9 2.2 9.8-.7c2.7-2 2.4-8.2 2.4-8.2s-9 .3-11.6 2.4"/><path d="m30.8 11.9c-2.9 2.2-.4 4.9-.4 4.9s4.4 1.7 7.3-.6c2-1.5 1.8-6.2 1.8-6.2s-6.7.3-8.7 1.9"/><path d="m29.2 33.3c4.9 2.2 2.2 6.2 2.2 6.2s-5.8 3.1-10.8.9c-3.4-1.5-4.6-7.5-4.6-7.5s9.8-1.2 13.2.4"/><path d="m30.5 18.3c3 2.9-.1 5.2-.1 5.2s-5.1.9-8.1-2c-2.1-2-1.3-6.8-1.3-6.8s7.5 1.6 9.5 3.6"/><path d="m30.1 6.6c1 2.6-1.8 3.4-1.8 3.4s-3.6-.6-4.6-3.2c-.7-1.8 1.4-4.8 1.4-4.8s4.3 2.8 5 4.6"/></g><g fill="#75a843"><path d="m31.4 39.4c-.5-.5-1.1-.8-1.7-1.1-.6-.3-1.2-.6-1.9-.9-1.3-.6-2.6-1.1-3.9-1.6-1.3-.5-2.6-1-3.9-1.5l-2-.7-2-.8c1.4.3 2.8.7 4.1 1.1 1.4.4 2.7.9 4 1.4 1.3.5 2.6 1.1 3.9 1.8.6.3 1.2.7 1.8 1.1.3.2.6.4.9.6.2.1.5.3.7.6"/><path d="m30.5 23.4c-.3-.5-.5-1-.8-1.4-.3-.5-.5-.9-.9-1.4-.7-.9-1.4-1.6-2.3-2.3-1.7-1.4-3.6-2.5-5.5-3.6 2.1.7 4.2 1.8 5.9 3.2.9.7 1.7 1.5 2.3 2.5.3.5.6 1 .8 1.5.2.5.3 1 .5 1.5"/><path d="m32.2 31.2c.3-.6.6-1.1 1-1.7.4-.5.8-1 1.2-1.5.9-1 1.8-1.8 2.9-2.6 1.1-.8 2.2-1.4 3.4-2 .6-.3 1.2-.5 1.8-.7.6-.2 1.3-.4 1.9-.5-1.2.5-2.4 1-3.5 1.6-1.1.6-2.2 1.3-3.3 2-1 .7-2 1.6-2.9 2.4-.9 1-1.8 2-2.5 3"/><path d="m30.3 16.8c.3-.9.8-1.8 1.4-2.6.6-.8 1.3-1.5 2.1-2.1.8-.6 1.7-1.1 2.7-1.5 1-.4 2-.6 3-.6-1.9.5-3.7 1.3-5.3 2.5-.8.6-1.5 1.2-2.1 1.9-.6.8-1.2 1.5-1.8 2.4"/><path d="m28.3 10c-.4-1.4-.7-2.8-1.2-4.2-.5-1.4-1.1-2.6-2-3.8.6.4 1.1 1 1.6 1.6.4.6.7 1.3 1 2 .2.7.4 1.4.5 2.2.1.7.1 1.5.1 2.2"/><path d="m30.9 49.4c.5-.6 1-1.1 1.6-1.6.6-.5 1.3-.9 1.9-1.3 1.3-.8 2.8-1.4 4.3-1.9 1.5-.5 3-.8 4.6-1 .8-.1 1.6-.2 2.3-.3.8-.1 1.6-.1 2.3-.1-.8.1-1.5.2-2.3.4-.8.1-1.5.3-2.3.4-1.5.3-3 .7-4.5 1.1-1.5.5-2.9 1-4.3 1.7-1.2.7-2.5 1.5-3.6 2.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f340.svg b/build/js/jsxc/lib/emojione/assets/svg/1f340.svg
index 015cda5..0b06567 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f340.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f340.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4bae42"><circle cx="32" cy="31" r="2.79"/><path d="m4.237 39.995c-5.795 9.806 4.214 12.814 8.708 9.52-3.322 4.979-.071 14.423 9.522 8.703 10.686-6.372 7.826-24.547 8.328-26.552-1.75.246-20.323-2.216-26.558 8.329"/></g><path fill="#46a03c" d="m12.945 49.51c1.373-1.602 2.806-3.142 4.25-4.674 1.437-1.538 2.917-3.03 4.398-4.527 1.493-1.481 2.988-2.961 4.525-4.398l2.309-2.154c.79-.697 1.56-1.413 2.366-2.095-.68.806-1.397 1.576-2.095 2.367l-2.153 2.308c-1.437 1.537-2.918 3.03-4.398 4.525-1.495 1.48-2.989 2.962-4.527 4.398-1.533 1.442-3.073 2.876-4.675 4.25"/><path fill="#4bae42" d="m59.762 22c5.795-9.805-4.214-12.815-8.708-9.52 3.322-4.979.07-14.423-9.522-8.702-10.687 6.371-7.826 24.544-8.328 26.551 1.75-.245 20.322 2.215 26.558-8.329"/><path fill="#46a03c" d="m51.05 12.485c-1.374 1.602-2.807 3.143-4.251 4.674-1.436 1.538-2.917 3.03-4.397 4.527-1.493 1.48-2.987 2.961-4.525 4.398l-2.309 2.153c-.789.699-1.561 1.416-2.366 2.097.681-.807 1.397-1.577 2.095-2.367l2.154-2.309c1.438-1.538 2.917-3.03 4.398-4.526 1.495-1.48 2.989-2.96 4.527-4.397 1.532-1.442 3.073-2.877 4.674-4.25"/><path fill="#4ebd3b" d="m22.465 3.778c-9.805-5.795-12.815 4.214-9.521 8.708-4.979-3.322-14.422-.07-8.702 9.523 6.37 10.685 24.545 7.827 26.55 8.327-.245-1.751 2.218-20.323-8.327-26.558"/><path fill="#46a03c" d="m12.945 12.486c1.602 1.374 3.142 2.807 4.674 4.25 1.538 1.437 3.03 2.917 4.527 4.397 1.481 1.494 2.961 2.989 4.399 4.526l2.153 2.308c.697.79 1.415 1.561 2.095 2.367-.807-.681-1.577-1.398-2.366-2.095l-2.309-2.153c-1.538-1.438-3.03-2.918-4.526-4.399-1.48-1.495-2.961-2.989-4.398-4.527-1.441-1.532-2.875-3.073-4.249-4.674"/><path fill="#4ebd3b" d="m41.535 58.22c9.805 5.796 12.814-4.214 9.52-8.708 4.979 3.323 14.423.071 8.703-9.522-6.371-10.685-24.545-7.826-26.551-8.326.245 1.748-2.217 20.32 8.328 26.556"/><path fill="#46a03c" d="m51.05 49.51c-1.601-1.373-3.142-2.807-4.674-4.25-1.538-1.437-3.03-2.918-4.527-4.397-1.481-1.493-2.96-2.988-4.398-4.526l-2.155-2.309c-.697-.791-1.414-1.562-2.095-2.367.806.682 1.577 1.397 2.366 2.095l2.309 2.154c1.538 1.438 3.03 2.918 4.525 4.398 1.48 1.495 2.962 2.989 4.397 4.527 1.445 1.533 2.878 3.073 4.252 4.675"/><path fill="#309126" d="m32 35.38l2.5 24.614c.141 1.381-.865 2.613-2.246 2.754s-2.614-.865-2.754-2.246c-.017-.167-.015-.347 0-.508l2.5-24.614"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="31" rx="2.8" ry="2.8" fill="#699635"/><path d="m3.8 40c-5.9 9.8 4.3 12.8 8.8 9.5-3.4 5-.1 14.4 9.7 8.7 10.9-6.4 7.9-24.5 8.5-26.6-1.8.3-20.7-2.1-27 8.4" fill="#7bb246"/><path d="m12.6 49.5c1.4-1.6 2.9-3.1 4.3-4.7 1.5-1.5 3-3 4.5-4.5 1.5-1.5 3-3 4.6-4.4l2.3-2.2c.8-.7 1.6-1.4 2.4-2.1-.7.8-1.4 1.6-2.1 2.4l-2.2 2.3c-1.5 1.5-3 3-4.5 4.5-1.5 1.5-3 3-4.6 4.4-1.5 1.5-3 2.9-4.7 4.3" fill="#699635"/><path d="m60.2 22c5.9-9.8-4.3-12.8-8.8-9.5 3.4-5 .1-14.4-9.7-8.7-10.9 6.4-7.9 24.5-8.5 26.6 1.8-.3 20.7 2.1 27-8.4" fill="#7bb246"/><path d="m51.4 12.5c-1.4 1.6-2.9 3.1-4.3 4.7-1.5 1.5-3 3-4.5 4.5-1.5 1.5-3 3-4.6 4.4l-2.3 2.2c-.8.7-1.6 1.4-2.4 2.1.7-.8 1.4-1.6 2.1-2.4l2.2-2.3c1.5-1.5 3-3 4.5-4.5 1.5-1.5 3-3 4.6-4.4 1.5-1.5 3-2.9 4.7-4.3" fill="#699635"/><path d="m22.3 3.8c-10-5.8-13 4.2-9.7 8.7-5-3.3-14.6-.1-8.8 9.5 6.5 10.7 24.9 7.8 27 8.3-.3-1.7 2.2-20.3-8.5-26.5" fill="#83bf4f"/><path d="m12.6 12.5c1.6 1.4 3.2 2.8 4.7 4.2 1.6 1.4 3.1 2.9 4.6 4.4 1.5 1.5 3 3 4.5 4.5l2.2 2.3c.7.8 1.4 1.6 2.1 2.4-.8-.7-1.6-1.4-2.4-2.1l-2.3-2.1c-1.6-1.4-3.1-2.9-4.6-4.4-1.5-1.5-3-3-4.5-4.5-1.4-1.6-2.9-3.1-4.3-4.7" fill="#699635"/><path d="m41.7 58.2c10 5.8 13-4.2 9.7-8.7 5.1 3.3 14.6.1 8.8-9.5-6.5-10.7-24.9-7.8-27-8.3.3 1.7-2.2 20.3 8.5 26.5" fill="#83bf4f"/><g fill="#699635"><path d="m51.4 49.5c-1.6-1.4-3.2-2.8-4.7-4.2-1.6-1.4-3.1-2.9-4.6-4.4-1.5-1.5-3-3-4.5-4.5l-2.2-2.4c-.7-.8-1.4-1.6-2.1-2.4.8.7 1.6 1.4 2.4 2.1l2.3 2.2c1.6 1.4 3.1 2.9 4.6 4.4 1.5 1.5 3 3 4.5 4.5 1.4 1.6 2.9 3.1 4.3 4.7"/><path d="m32 36.8l2.5 22.7c.1 1.3-.9 2.4-2.2 2.5-1.4.1-2.6-.8-2.8-2.1 0-.2 0-.3 0-.5l2.5-22.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f341.svg b/build/js/jsxc/lib/emojione/assets/svg/1f341.svg
index a782e22..35a4563 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f341.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f341.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff8e66" d="m59.28 33.605c-1.078-.474-1.128-1.445-1.018-2.103l2.576-9.136-8.684 1.817c-.301.04-1.134-.025-1.559-1.738l-.77-3.11-6.02 6.959c0 0-3.901 4.259-2.68-2.242l2.617-13.89-4.834 2.418c-.276.108-1.229.245-2.493-2.161l-4.417-8.419-4.417 8.419c-1.264 2.406-2.217 2.27-2.493 2.161l-4.833-2.417 2.613 13.89c1.222 6.501-2.68 2.242-2.68 2.242l-6.02-6.959-.77 3.11c-.425 1.713-1.253 1.778-1.559 1.738l-8.684-1.817 2.576 9.136c.11.657.061 1.629-1.018 2.103l-2.715 1.199c0 0 9.963 8.01 13.228 10.742.637.527 2.176 2.076 1.645 3.738l-1.163 3.633 13.633-2.084c.703-.061 4.619-.061 5.316 0l13.633 2.084-1.163-3.633c-.533-1.662 1.01-3.211 1.645-3.738 3.263-2.734 13.226-10.742 13.226-10.742l-2.718-1.2"/><path fill="#c65c3c" d="m56.752 35.528c-1.764.138-3.53.23-5.298.306-2.915.122-5.834.188-8.751.227 1.263-.943 2.531-1.881 3.803-2.814l7.264-5.313 3.609-2.69c1.182-.922 2.409-1.803 3.462-2.876-1.107 1.01-2.378 1.819-3.607 2.673l-3.749 2.482-7.206 4.68c.474-1.949.952-3.897 1.458-5.839l.958-3.541c.344-1.173.663-2.356 1.135-3.486-.549 1.097-.949 2.261-1.372 3.409l-1.2 3.476c-.754 2.251-1.479 4.509-2.19 6.775-2.223 1.452-4.44 2.913-6.636 4.421-1.24.854-2.475 1.72-3.69 2.63-.598.449-1.189.908-1.774 1.395l-.36-13.862c1.357-3.095 3.03-6.05 4.875-8.903 1.918-2.95 4.01-5.797 6.263-8.513-2.38 2.606-4.608 5.357-6.675 8.23-1.64 2.288-3.17 4.669-4.516 7.158l-.555-21.264-.553 21.263c-1.346-2.489-2.876-4.87-4.516-7.158-2.066-2.873-4.295-5.624-6.675-8.23 2.254 2.716 4.345 5.563 6.263 8.513 1.845 2.852 3.518 5.809 4.875 8.903l-.36 13.862c-.585-.486-1.177-.945-1.774-1.395-1.216-.91-2.45-1.775-3.69-2.63-2.195-1.508-4.413-2.969-6.636-4.421-.711-2.267-1.437-4.524-2.19-6.775l-1.2-3.476c-.423-1.148-.823-2.313-1.372-3.409.472 1.13.791 2.313 1.135 3.486l.958 3.541c.506 1.941.984 3.89 1.458 5.839l-7.206-4.68-3.75-2.482c-1.229-.854-2.5-1.662-3.607-2.673 1.053 1.073 2.28 1.954 3.462 2.876l3.609 2.69 7.264 5.313c1.271.934 2.54 1.871 3.803 2.814-2.917-.039-5.836-.104-8.751-.227-1.768-.075-3.534-.168-5.298-.306-1.759-.155-3.534-.277-5.249-.722 1.695.526 3.47.732 5.223.973 1.76.221 3.524.397 5.29.556 3.362.299 6.728.532 10.1.725.692.523 1.388 1.042 2.073 1.571 1.119.865 2.229 1.744 3.308 2.643-1.923 1.873-3.749 3.805-5.636 5.688-1.052 1.055-2.113 2.102-3.204 3.115-1.096 1.01-2.206 2.01-3.444 2.844 1.284-.766 2.455-1.707 3.609-2.654 1.15-.955 2.271-1.945 3.384-2.941 2.02-1.801 3.987-3.666 6.01-5.426.375.322.754.645 1.109.975.417.396.829.801 1.141 1.197l-.467 17.929h3l-.466-17.932c.312-.396.724-.801 1.141-1.197.355-.33.734-.652 1.109-.975 2.026 1.76 3.996 3.625 6.01 5.426 1.112.996 2.233 1.986 3.384 2.941 1.154.947 2.325 1.889 3.609 2.654-1.238-.836-2.349-1.834-3.444-2.844-1.091-1.014-2.152-2.061-3.204-3.115-1.887-1.883-3.713-3.814-5.636-5.688 1.079-.898 2.188-1.777 3.308-2.643.686-.529 1.381-1.048 2.073-1.571 3.372-.192 6.737-.426 10.1-.725 1.766-.158 3.53-.335 5.29-.556 1.753-.24 3.527-.446 5.223-.973-1.716.448-3.491.57-5.249.726"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.3 33.6c-1.1-.5-1.1-1.4-1-2.1l2.6-9.1-8.7 1.8c-.3 0-1.1 0-1.6-1.7l-.8-3.1-6 7c0 0-3.9 4.3-2.7-2.2l2.6-13.9-4.8 2.4c-.3.1-1.2.2-2.5-2.2l-4.4-8.5-4.4 8.4c-1.3 2.4-2.2 2.3-2.5 2.2l-4.8-2.4 2.6 13.9c1.2 6.5-2.7 2.2-2.7 2.2l-6-7-.8 3.1c-.4 1.7-1.3 1.8-1.6 1.7l-8.7-1.8 2.6 9.1c.1.7.1 1.6-1 2.1l-2.7 1.3c0 0 10 8 13.2 10.7.6.5 2.2 2.1 1.6 3.7l-1.2 3.6 13.6-2.1c.7-.1 4.6-.1 5.3 0l13.6 2.1-1.2-3.6c-.5-1.7 1-3.2 1.6-3.7 3.5-2.7 13.5-10.7 13.5-10.7l-2.7-1.2" fill="#ff8e66"/><path d="m56.8 35.5c-1.8.1-3.5.2-5.3.3-2.9.1-5.8.2-8.8.2 1.3-.9 2.5-1.9 3.8-2.8l7.3-5.3 3.6-2.7c1.2-.9 2.4-1.8 3.5-2.9-1.1 1-2.4 1.8-3.6 2.7l-3.7 2.5-7.2 4.7c.5-1.9 1-3.9 1.5-5.8l1-3.5c.3-1.2.7-2.4 1.1-3.5-.5 1.1-.9 2.3-1.4 3.4l-1.2 3.5c-.8 2.3-1.5 4.5-2.2 6.8-2.2 1.5-4.4 2.9-6.6 4.4-1.2.9-2.5 1.7-3.7 2.6-.6.4-1.2.9-1.8 1.4l-.4-13.9c1.4-3.1 3-6.1 4.9-8.9 1.9-2.9 4-5.8 6.3-8.5-2.4 2.6-4.6 5.4-6.7 8.2-1.6 2.3-3.2 4.7-4.5 7.2l-.7-21.3-.6 21.3c-1.3-2.5-2.9-4.9-4.5-7.2-2.1-2.9-4.3-5.6-6.7-8.2 2.3 2.7 4.3 5.6 6.3 8.5 1.8 2.9 3.5 5.8 4.9 8.9l-.4 13.8c-.6-.5-1.2-.9-1.8-1.4-1.2-.9-2.5-1.8-3.7-2.6-2.2-1.5-4.4-3-6.6-4.4-.7-2.3-1.4-4.5-2.2-6.8l-1.2-3.5c-.4-1.1-.8-2.3-1.4-3.4.5 1.1.8 2.3 1.1 3.5l1 3.5c.5 1.9 1 3.9 1.5 5.8l-7.2-4.7-3.7-2.4c-1.2-.9-2.5-1.7-3.6-2.7 1.1 1.1 2.3 2 3.5 2.9l3.6 2.7 7.3 5.3c1.3.9 2.5 1.9 3.8 2.8-2.9 0-5.8-.1-8.8-.2-1.8-.1-3.5-.2-5.3-.3-1.8-.2-3.5-.3-5.2-.7 1.7.5 3.5.7 5.2 1 1.8.2 3.5.4 5.3.6 3.4.3 6.7.5 10.1.7.7.5 1.4 1 2.1 1.6 1.1.9 2.2 1.7 3.3 2.6-1.9 1.9-3.7 3.8-5.6 5.7-1.1 1.1-2.1 2.1-3.2 3.1-1.1 1-2.2 2-3.4 2.8 1.3-.8 2.5-1.7 3.6-2.7 1.1-1 2.3-1.9 3.4-2.9 2-1.8 4-3.7 6-5.4.4.3.8.6 1.1 1 .4.4.8.8 1.1 1.2l-.6 17.9h3l-.5-17.9c.3-.4.7-.8 1.1-1.2.4-.3.7-.7 1.1-1 2 1.8 4 3.6 6 5.4 1.1 1 2.2 2 3.4 2.9 1.2.9 2.3 1.9 3.6 2.7-1.2-.8-2.3-1.8-3.4-2.8-1.1-1-2.2-2.1-3.2-3.1-1.9-1.9-3.7-3.8-5.6-5.7 1.1-.9 2.2-1.8 3.3-2.6.7-.5 1.4-1 2.1-1.6 3.4-.2 6.7-.4 10.1-.7 1.8-.2 3.5-.3 5.3-.6 1.8-.2 3.5-.4 5.2-1-1.7.4-3.5.6-5.2.7" fill="#c65c3c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f342.svg b/build/js/jsxc/lib/emojione/assets/svg/1f342.svg
index f7ec269..7ca377c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f342.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f342.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffd93b" d="m56.54 31.346c.014-.452.113-.888.277-1.307-1.869-1.109-3.03-2.708-2.983-4.459.079-2.823 3.271-5.08 7.407-5.459 1.01-9.474.721-17.08.721-17.08s-37.09-1.31-50.54 11.693c-.238.229-.44.447-.668.672 1.982 1.227 3.278 3.225 3.278 5.489 0 3.733-3.511 6.759-7.841 6.759-1.292 0-2.508-.274-3.583-.751-3.897 11.734 12.01 15.14 15.508 18.518 4.484 4.335 9.01 28.442 31.747 6.47 4.134-3.997 6.866-10.155 8.673-16.764-1.281-1.041-2.037-2.359-1.998-3.777"/><path fill="#db9523" d="m24.527 40.89l4.573-4.62 18.98 11.77-18.252-12.508 7.572-7.654 17.02 7.529-16.27-8.287 7.09-7.178 12.88-.652-11.89-.35 15.733-15.903-16.453 15.203-.36-11.492-.68 12.452-7.42 6.86-8.577-15.735 7.787 16.459-7.915 7.316-12.942-17.644 12.182 18.346-4.783 4.418-12.876-7.624 12.134 8.312-12.429 11.482 2.306 2.23 11.88-12.01 8.599 11.733z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.5 31.3c0-.5.1-.9.3-1.3-1.9-1.1-3-2.7-3-4.5.1-2.8 3.3-5.1 7.4-5.5 1-9.4.8-17 .8-17s-37.1-1.3-50.6 11.7c-.2.2-.4.4-.7.7 2 1.2 3.3 3.2 3.3 5.5 0 3.7-3.5 6.8-7.8 6.8-1.3 0-2.5-.3-3.6-.8-3.9 11.7 12 15.1 15.5 18.5 4.5 4.3 9 28.4 31.7 6.5 4.1-4 6.9-10.2 8.7-16.8-1.2-1-2-2.3-2-3.8" fill="#ffd93b"/><path fill="#db9523" d="m24.5 40.9l4.6-4.6 19 11.7-18.3-12.5 7.6-7.6 17 7.5-16.3-8.3 7.1-7.2 12.9-.6-11.9-.4 15.8-15.9-16.5 15.2-.4-11.5-.6 12.5-7.4 6.9-8.6-15.8 7.8 16.5-8 7.3-12.9-17.6 12.2 18.3-4.8 4.4-12.9-7.6 12.2 8.3-12.5 11.5 2.3 2.2 11.9-12 8.6 11.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f343.svg b/build/js/jsxc/lib/emojione/assets/svg/1f343.svg
index c50b51f..c19539d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f343.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f343.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m28.596 38.39c-15.443 2.759-6.877 10.519-6.389 13.216.488 2.699-4.865 12.68 10.577 9.919 16.15-2.885 20.796-18.554 20.796-18.554s-19.664-5.533-24.984-4.581"/><path fill="#699635" d="m25.87 50.35l3.18-.547.603-9.826-.099 9.738 5.446-1.245 1.03-7.93-.504 7.84 4.694-1.13 3.09-4.604-2.399 4.484 12.669-4.161-12.591 4.594 5.311 3.142-5.99-2.996-4.664 1.331 4.424 7.13-4.94-7.02-5.415 1.456 3.495 9.03-4-8.927-3.15.677-.56 6.58.068-6.47-8.2 1.77-.248-1.395 8.255-1.435-2.325-6.01z"/><path fill="#42ade2" d="m20.485 49.822c-2.729-1.01-5.221-2.912-6.983-5.432-1.754-2.52-2.809-5.578-3.02-8.707-.12-1.564-.058-3.147.174-4.711.252-1.561.684-3.094 1.268-4.572 1.17-2.954 2.971-5.694 5.298-7.916.287-.282.585-.55.886-.817l.474-.405.429-.349c.648-.51 1.27-.959 1.939-1.403 1.328-.872 2.733-1.652 4.223-2.266 2.967-1.245 6.217-1.932 9.505-1.859 3.282.055 6.614.856 9.603 2.626 1.479.902 2.87 2.07 3.979 3.582 1.112 1.493 1.886 3.406 1.979 5.402.11 1.995-.454 3.941-1.357 5.499-.894 1.574-2.072 2.84-3.283 3.912-2.489 2.198-5.562 3.709-8.881 4.184-1.656.232-3.377.208-5.081-.205-1.688-.411-3.406-1.245-4.705-2.678-1.316-1.417-1.96-3.416-1.923-5.202.017-1.807.54-3.43 1.216-4.874 1.393-2.886 3.37-5.215 5.49-7.301 2.138-2.073 4.439-3.909 6.815-5.609 4.772-3.375 9.846-6.209 15.05-8.721-4.821 3.185-9.546 6.504-13.88 10.222-2.17 1.849-4.232 3.811-6.068 5.923-1.815 2.108-3.483 4.371-4.428 6.779-.471 1.192-.733 2.417-.66 3.505.068 1.094.48 1.989 1.169 2.666 1.384 1.393 3.974 1.791 6.323 1.315 2.386-.454 4.651-1.708 6.399-3.415 1.82-1.751 2.865-3.876 2.643-5.64-.178-1.764-1.577-3.504-3.596-4.633-1.992-1.174-4.461-1.74-6.931-1.822-4.976-.139-10.06 1.87-14.03 5.207-1.944 1.657-3.597 3.687-4.786 5.999-.591 1.156-1.058 2.38-1.399 3.643-.361 1.259-.588 2.564-.661 3.883-.126 2.633.282 5.35 1.441 7.818 1.126 2.483 2.995 4.685 5.366 6.372"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.6 38.4c-15.4 2.8-6.9 10.5-6.4 13.2.5 2.7-4.9 12.7 10.6 9.9 16.1-2.9 20.8-18.5 20.8-18.5s-19.7-5.6-25-4.6" fill="#83bf4f"/><path fill="#699635" d="m25.9 50.4l3.1-.6.7-9.8-.1 9.7 5.4-1.2 1-8-.5 7.9 4.7-1.2 3.1-4.6-2.4 4.5 12.7-4.1-12.6 4.6 5.3 3.1-6-3-4.7 1.3 4.5 7.2-5-7-5.4 1.4 3.5 9-4-8.9-3.1.7-.6 6.6.1-6.5-8.2 1.8-.3-1.4 8.3-1.5-2.4-6z"/><path d="m20.5 49.8c-2.7-1-5.2-2.9-7-5.4-1.8-2.5-2.8-5.6-3-8.7-.1-1.6-.1-3.1.2-4.7.3-1.6.7-3.1 1.3-4.6 1.2-3 3-5.7 5.3-7.9.3-.3.6-.5.9-.8l.5-.4.4-.3c.6-.5 1.3-1 1.9-1.4 1.3-.9 2.7-1.7 4.2-2.3 3-1.2 6.2-1.9 9.5-1.9 3.3.1 6.6.9 9.6 2.6 1.5.9 2.9 2.1 4 3.6 1.1 1.5 1.9 3.4 2 5.4.1 2-.5 3.9-1.4 5.5-.9 1.6-2.1 2.8-3.3 3.9-2.5 2.2-5.6 3.7-8.9 4.2-1.7.2-3.4.2-5.1-.2-1.7-.4-3.4-1.2-4.7-2.7-1.3-1.4-2-3.4-1.9-5.2 0-1.8.5-3.4 1.2-4.9 1.4-2.9 3.4-5.2 5.5-7.3 2.1-2.1 4.4-3.9 6.8-5.6 4.8-3.4 9.8-6.2 15.1-8.7-4.8 3.2-9.6 6.5-13.9 10.2-2.2 1.8-4.2 3.8-6.1 5.9-1.8 2.1-3.5 4.4-4.4 6.8-.5 1.2-.7 2.4-.7 3.5.1 1.1.5 2 1.2 2.7 1.4 1.4 4 1.8 6.3 1.3 2.4-.5 4.7-1.7 6.4-3.4 1.8-1.8 2.9-3.9 2.6-5.6-.2-1.8-1.6-3.5-3.6-4.6-2-1.2-4.5-1.7-6.9-1.8-5-.1-10.1 1.9-14 5.2-1.9 1.7-3.6 3.7-4.8 6-.6 1.2-1.1 2.4-1.4 3.6-.4 1.3-.6 2.6-.7 3.9-.1 2.6.3 5.3 1.4 7.8 1.2 2.4 3.1 4.6 5.5 6.3" fill="#42ade2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f344.svg b/build/js/jsxc/lib/emojione/assets/svg/1f344.svg
index b77aa12..853a49d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f344.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f344.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e84d88" d="m54.711 13.662c-3.158-3.103-6.984-5.783-10.738-7.79-.184 5.567-5.467 10.03-11.973 10.03-6.505 0-11.787-4.467-11.973-10.03-3.752 2.01-7.58 4.687-10.738 7.79 2.083 3.282 1.128 8.832-2.326 12.819-1.486 1.717-3.208 2.87-4.904 3.436.934 17.496 13.979 16.806 29.941 16.806 15.963 0 29.01.69 29.942-16.807-1.697-.566-3.418-1.718-4.904-3.436-3.454-3.987-4.409-9.537-2.327-12.819"/><g fill="#fdeeff"><path d="M32,15.906c6.506,0,11.79-4.467,11.973-10.033C39.428,3.442,34.994,2,32,2
- c-2.994,0-7.428,1.442-11.973,3.873C20.212,11.439,25.495,15.906,32,15.906z"/><path d="m9.289 13.662c-4.251 4.174-7.289 9.109-7.289 14.189 0 .719.023 1.402.059 2.066 1.696-.566 3.417-1.718 4.904-3.436 3.454-3.987 4.409-9.537 2.326-12.819"/><path d="m54.711 13.662c-2.082 3.282-1.127 8.832 2.326 12.819 1.486 1.717 3.207 2.87 4.904 3.436.036-.664.059-1.348.059-2.066 0-5.08-3.037-10.02-7.289-14.189"/></g><path fill="#a52355" d="m50 41.53c0 4.283-8.06 5.196-18 5.196-9.941 0-18-.913-18-5.196 0-4.187 8.609-8.06 18-8.06 9.391.001 18 3.876 18 8.06"/><path fill="#e2ccaf" d="M47,64H17c0,0,2.82-8.25,3.687-14.874C21.682,41.52,22.21,35.237,32,35.237
- c9.792,0,10.319,6.281,11.315,13.89C44.182,55.75,47,64,47,64z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54.7 13.7c-3.2-3.1-7-5.8-10.7-7.8-.2 5.6-5.5 10-12 10-6.5 0-11.8-4.5-12-10-3.8 2-7.6 4.7-10.7 7.8 2.1 3.3 1.1 8.8-2.3 12.8-1.5 1.7-3.2 2.9-4.9 3.4.9 17.5 13.9 16.8 29.9 16.8 16 0 29 .7 29.9-16.8-1.7-.6-3.4-1.7-4.9-3.4-3.4-4-4.4-9.6-2.3-12.8" fill="#e84d88"/><g fill="#fdeeff"><path d="m32 15.9c6.5 0 11.8-4.5 12-10-4.6-2.5-9-3.9-12-3.9s-7.4 1.4-12 3.9c.2 5.5 5.5 10 12 10"/><path d="m9.3 13.7c-4.3 4.1-7.3 9.1-7.3 14.2 0 .7 0 1.4.1 2.1 1.7-.6 3.4-1.7 4.9-3.4 3.4-4.1 4.4-9.7 2.3-12.9"/><path d="m54.7 13.7c-2.1 3.3-1.1 8.8 2.3 12.8 1.5 1.7 3.2 2.9 4.9 3.4 0-.7.1-1.3.1-2.1 0-5-3-10-7.3-14.1"/></g><path d="m50 41.5c0 4.3-8.1 5.2-18 5.2s-18-.9-18-5.2c0-4.2 8.6-8.1 18-8.1 9.4.1 18 3.9 18 8.1" fill="#a52355"/><path d="M47,64H17c0,0,2.8-8.2,3.7-14.9c1-7.6,1.5-13.9,11.3-13.9c9.8,0,10.3,6.3,11.3,13.9C44.2,55.8,47,64,47,64z" fill="#e2ccaf"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f345.svg b/build/js/jsxc/lib/emojione/assets/svg/1f345.svg
index 529b11d..b0f3efc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f345.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f345.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ef4d3c" d="M61.96,31.649C62.842,46.975,48.851,60,32.093,60S0.44,46.182,2.132,30.932
- C4.513,9.443,20.423,8.006,32.093,8.006C39.19,8.006,60.246,1.845,61.96,31.649z"/><path fill="#8cc63e" d="m10.979 27.02c6.183-9.639 16.822-6.802 19.621-10.356 0 6.869 4.993 3.536 7.517 6.63 3.245 3.978 4.434 11.11 8.167 12.51-3.676-7.896 2.344-7.589-6.117-18.18 4.459 2.769 6.769-.033 12.854 2.461-5.207-8.51-13.537-6.05-13.537-6.05s5.239-4.785 9.6-2.29c-4.621-6.802-17.863 1.846-17.863 1.846s-5.532-9.468-17.344.444c6.865-2.802 14.545 0 14.545 0s-12.528-3.109-17.443 12.99"/><g fill="#64892f"><path d="m10.979 27.02c0 0 7.256-13.467 19.85-12.271-11.06-5.161-19.85 5.674-19.85 12.271"/><path d="m13.876 14.03c0 0 9.208-6.903 17.344 0-2.442-8.476-14.709-4.511-17.344 0"/><path d="m33.2 14.85c12.17 5.639 8.07 11.963 13.08 20.953-3.34-7.43 4.979-20.953-13.08-20.953"/><path d="m28.421 14.03c0 0 2.802-4.161 3.807-9.39.132-.687 3.07-.627 2.973.069-.955 6.729 1.681 10.449 1.681 10.449s-2.115.718-4.718.718c-2.54 0-3.743-1.846-3.743-1.846"/></g><ellipse fill="#8cc63e" cx="33.714" cy="4.639" rx="1.486" ry=".637"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,31.6C62.8,47,48.9,60,32.1,60S0.4,46.2,2.1,30.9C4.5,9.4,20.4,8,32.1,8C39.2,8,60.2,1.8,62,31.6z" fill="#ef4d3c"/><path d="m11 27c6.2-9.6 16.8-6.8 19.6-10.4 0 6.9 5 3.5 7.5 6.6 3.2 4 4.4 11.1 8.2 12.5-3.7-7.9 2.3-7.6-6.1-18.2 4.5 2.8 6.8 0 12.9 2.5-5.3-8.4-13.6-6-13.6-6s5.2-4.8 9.6-2.3c-4.6-6.8-17.9 1.8-17.9 1.8s-5.5-9.4-17.3.5c6.9-2.8 14.5 0 14.5 0s-12.5-3.1-17.4 13" fill="#8cc63e"/><g fill="#64892f"><path d="M11,27c0,0,7.3-13.5,19.9-12.3C19.8,9.6,11,20.4,11,27z"/><path d="m13.9 14c0 0 9.2-6.9 17.3 0-2.4-8.4-14.7-4.5-17.3 0"/><path d="m33.2 14.9c12.2 5.6 8.1 12 13.1 21-3.4-7.5 5-21-13.1-21"/><path d="m28.4 14c0 0 2.8-4.2 3.8-9.4.1-.7 3.1-.6 3 .1-1 6.7 1.7 10.4 1.7 10.4s-2.1.7-4.7.7c-2.6.1-3.8-1.8-3.8-1.8"/></g><ellipse cx="33.7" cy="4.6" rx="1.5" ry=".6" fill="#8cc63e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f346.svg b/build/js/jsxc/lib/emojione/assets/svg/1f346.svg
index 821476c..78a52f6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f346.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f346.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#7a2d77" d="m53.37 34.431c-7.638-9.102-19.516-10.328-30.587-21.12-6.683-6.516-18.512 6.394-15.258 12.566 4.303 8.164 14.191 23.901 23.14 30.817 19.02 14.692 38.12-3.884 22.7-22.261"/><path opacity=".15" d="m10 27.877c2.175-2.632 1.588-6.941 1.588-6.941s1.651 2.01 4.207 2.043l.186-4.439c0 0 3.779-.141 7.07-3.845l-11.172-.354-3.94 6.363 2.061 7.173"/><g fill="#83b730"><path d="m10.924 12.473l-.932 1.657c-2.441-1.666-5.799-6.05-2.381-12.13l1.464.999c-3.104 5.526 1.359 9.137 1.849 9.471"/><path d="m17.234 16.208c3.83.418 7.336-2.552 7.336-2.552s-2.704-3.646-6.531-4.067c-3.83-.421-7.115.722-7.339 2.547-.221 1.826 2.7 3.65 6.534 4.072"/><path d="m5.062 20.223c-.477 3.957 1.975 7.479 1.975 7.479s3.228-2.898 3.712-6.856c.484-3.957-.402-7.306-1.969-7.48-1.571-.168-3.23 2.899-3.718 6.857"/></g><path fill="#8cc63e" d="m8.668 17.972c2.545 3.541 7.906 3.536 7.906 3.536s1.236-5.742-1.307-9.283c-2.539-3.543-6.081-5.125-7.906-3.538-1.814 1.582-1.235 5.743 1.307 9.285"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53.4 34.4c-7.6-9.1-19.5-10.3-30.6-21.1-6.7-6.5-18.5 6.4-15.3 12.6 4.3 8.2 14.2 23.9 23.1 30.8 19.1 14.7 38.2-3.9 22.8-22.3" fill="#7a2d77"/><path d="m10 27.9c2.2-2.6 1.6-6.9 1.6-6.9s1.7 2 4.2 2l.2-4.4c0 0 3.8-.1 7.1-3.8l-11.2-.4-3.9 6.4 2 7.1" opacity=".15"/><g fill="#83b730"><path d="m10.9 12.5l-.9 1.6c-2.4-1.6-5.8-6-2.4-12.1l1.5 1c-3.1 5.5 1.3 9.1 1.8 9.5"/><path d="m17.2 16.2c3.8.4 7.3-2.6 7.3-2.6s-2.6-3.6-6.5-4c-3.8-.4-7.1.7-7.3 2.5-.2 1.9 2.7 3.7 6.5 4.1"/><path d="m5.1 20.2c-.5 4 2 7.5 2 7.5s3.2-2.9 3.7-6.9c.5-4-.4-7.3-2-7.5-1.6-.1-3.2 3-3.7 6.9"/></g><path d="m8.7 18c2.5 3.5 7.9 3.5 7.9 3.5s1.2-5.7-1.3-9.3c-2.5-3.5-6.1-5.1-7.9-3.5-1.9 1.6-1.3 5.7 1.3 9.3" fill="#8cc63e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f347.svg b/build/js/jsxc/lib/emojione/assets/svg/1f347.svg
index 4151cd4..e924fc2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f347.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f347.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8cc63e" fill-rule="evenodd"><path d="m38.835 22.11c5.812-4.714-.82-18.419-.82-18.419s-.58 2.604-2.058 5.798c-5.12-4.931-13.394-7.487-13.394-7.487s4.424 6.691 5.547 14.94c-3.475-.037-6.161-.883-6.161-.883s9.119 12.351 16.886 6.05"/><path d="m48.27 40.587c-5.468 5.056-3.039 14.58-3.039 14.58s.971-2.214 2.76-5.097c3 2.826 8.937 3.055 8.937 3.055s-2.108-4.391-1.336-10.754c2.7-.734 4.622-.646 4.622-.646s-4.636-7.895-11.944-1.138"/></g><g fill="#843dc9"><ellipse cx="44.693" cy="23.01" rx="6.567" ry="6.89"/><ellipse cx="25.306" cy="25.976" rx="6.144" ry="6.444"/><ellipse cx="30.855" cy="55.55" rx="6.145" ry="6.445"/><ellipse cx="42.813" cy="48.47" rx="4.687" ry="4.916"/></g><ellipse fill="#ab7dcc" cx="35.37" cy="27.75" rx="8.03" ry="8.421"/><g fill="#6f43a3"><ellipse cx="29.36" cy="36.3" rx="7.03" ry="7.375"/><ellipse cx="43.4" cy="37.852" rx="7.03" ry="7.375"/></g><ellipse fill="#843dc9" cx="19.16" cy="39.795" rx="8.879" ry="9.314"/><ellipse fill="#6f43a3" cx="21.982" cy="51.733" rx="6.107" ry="6.407"/><path fill="none" stroke="#9fc427" stroke-width="2" stroke-miterlimit="10" d="m15.08 49.792c6.798-4.513 33.667-16.503 38.689-34.745"/><g fill="#ab7dcc"><ellipse cx="32.03" cy="44.654" rx="8.319" ry="8.727"/><path d="m18.276 52.21c0 4.714-3.644 8.536-8.139 8.537-4.493-.001-8.137-3.823-8.137-8.537 0-4.718 3.644-8.539 8.138-8.538 4.495-.001 8.138 3.821 8.138 8.538"/><ellipse cx="53.35" cy="32.09" rx="8.654" ry="9.08"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8cc63e"><path d="m38.8 22.1c5.8-4.7-.8-18.4-.8-18.4s-.6 2.6-2 5.8c-5.2-4.9-13.4-7.5-13.4-7.5s4.4 6.7 5.5 14.9c-3.5 0-6.2-.9-6.2-.9s9.2 12.4 16.9 6.1"/><path d="m48.3 40.6c-5.5 5.1-3 14.6-3 14.6s1-2.2 2.8-5.1c3 2.8 8.9 3.1 8.9 3.1s-2.1-4.4-1.3-10.8c2.7-.7 4.6-.6 4.6-.6s-4.7-8-12-1.2"/></g><g fill="#843dc9"><ellipse cx="44.7" cy="23" rx="6.6" ry="6.9"/><ellipse cx="25.3" cy="26" rx="6.1" ry="6.4"/><ellipse cx="30.9" cy="55.6" rx="6.1" ry="6.4"/><ellipse cx="42.8" cy="48.5" rx="4.7" ry="4.9"/></g><ellipse cx="35.4" cy="27.8" rx="8" ry="8.4" fill="#ab7dcc"/><g fill="#6f43a3"><ellipse cx="29.4" cy="36.3" rx="7" ry="7.4"/><ellipse cx="43.4" cy="37.9" rx="7" ry="7.4"/></g><ellipse cx="19.2" cy="39.8" rx="8.9" ry="9.3" fill="#843dc9"/><ellipse cx="22" cy="51.7" rx="6.1" ry="6.4" fill="#6f43a3"/><path d="m15.1 49.8c6.8-4.5 33.7-16.5 38.7-34.7" fill="none" stroke="#9fc427" stroke-width="2" stroke-miterlimit="10"/><g fill="#ab7dcc"><ellipse cx="32" cy="44.7" rx="8.3" ry="8.7"/><path d="m18.3 52.2c0 4.7-3.6 8.5-8.1 8.5-4.5 0-8.1-3.8-8.1-8.5 0-4.7 3.6-8.5 8.1-8.5 4.4 0 8.1 3.8 8.1 8.5"/><ellipse cx="53.3" cy="32.1" rx="8.7" ry="9.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f348.svg b/build/js/jsxc/lib/emojione/assets/svg/1f348.svg
index 94ed217..d715aaa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f348.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f348.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f5f0ae" d="m61.3 29.22c-3.544-14.564-19.536-23.784-35.719-20.593-16.18 3.19-26.424 17.583-22.879 32.14 3.544 14.565 19.536 23.784 35.717 20.594 16.182-3.191 26.426-17.584 22.881-32.14"/><g fill="#d0d18b"><path d="m29.32 8.34c-.177-.065-.343-.116-.518-.179-1.069.104-2.143.258-3.218.47-1.073.212-2.118.477-3.139.784-.13.122-.256.23-.387.356 1.328.522 2.749 1.13 4.247 1.819 1.043-1.189 2.052-2.276 3.02-3.25"/><path d="m23.372 16.754l4.858 2.755 3.132-4.33-4.785-2.458z"/><path d="m25.343 25.802l5.22 3.298 3.211-4.96-5.185-3.157z"/><path d="m27.717 35.863l5.333 3.437 3.24-5.13-5.326-3.428z"/><path d="m38.665 44.24l-5.219-3.299-3.216 4.955 5.19 3.154z"/><path d="m40.632 53.27l-4.854-2.75-3.132 4.326 4.782 2.454z"/><path d="m34.689 61.67c.171.063.33.111.499.172 1.073-.105 2.15-.258 3.229-.471s2.13-.48 3.153-.789c.126-.117.246-.221.373-.342-1.326-.521-2.746-1.127-4.242-1.813-1.04 1.186-2.048 2.272-3.01 3.243"/><path d="m33.646 14.11l2.803-3.672-4.706-2.041-2.916 3.293z"/><path d="m30.979 19.746l5.191 3.14 2.97-4.532-5.1-2.941z"/><path d="m41.822 27.825l-5.231-3.374-3.165 4.948 5.305 3.427z"/><path d="m44.26 37.859l-5.13-3.379-3.225 5.112 5.175 3.299z"/><path d="m46.22 47.47l-4.8-3-3.25 4.8 4.789 2.78z"/><path d="m43.2 53.38l-3.252 4.01 4.172 1.88 3.33-3.614z"/><path d="m38.902 8.723c-1.388-.295-2.807-.502-4.247-.617 1.156.459 2.331.955 3.533 1.52.247-.314.478-.605.714-.903"/><path d="m35.922 14.419l5.064 2.916 2.58-3.938-4.928-2.667z"/><path d="m38.558 23.284l5.174 3.362 2.748-4.616-5.04-3.263z"/><path d="m44.16 28.25l-3.03 4.97 5.06 3.378 2.9-4.948z"/><path d="m51.18 41.37l-4.634-3.16-3.136 5 4.71 3.02z"/><path d="m52.54 50.3l-4.17-2.605-3.24 4.555 4.17 2.32z"/><path d="m46.927 58.42c1.24-.641 2.42-1.355 3.532-2.137-.35-.18-.689-.354-1.054-.543-.821.953-1.651 1.838-2.478 2.68"/><path d="m46.36 11.309c-1.66-.815-3.406-1.491-5.218-2.02-.147.2-.289.388-.441.593 1.621.806 3.256 1.698 4.869 2.655.273-.425.531-.827.79-1.231"/><path d="m46.07 13.807l-2.45 3.908 4.926 3.255 2.253-4.03z"/><path d="m53.587 25.843l-4.587-3.384-2.61 4.561 4.79 3.392z"/><path d="m51.564 31.987l-2.776 4.886 4.492 3.157 2.59-4.8z"/><path d="m57.47 44.37l-3.92-2.817-2.962 4.807 4.04 2.626z"/><path d="m51.566 54.56c.229.127.44.242.663.363 1.402-1.154 2.676-2.426 3.806-3.791-.418-.266-.836-.529-1.276-.811-1.023 1.477-2.094 2.901-3.193 4.239"/><path d="m52.644 15.415c-1.391-1.186-2.904-2.247-4.514-3.173-.156.256-.306.501-.467.766 1.582.991 3.128 2.042 4.604 3.128.131-.248.251-.48.377-.721"/><path d="m55.06 24.852l1.829-4-4.14-3.36-2.112 3.98z"/><path d="m59.31 29.631l-3.84-3.296-2.25 4.5 4.13 3.235z"/><path d="m55.22 40.31l3.762 2.82 2.208-4.612-3.524-2.942z"/><path d="m56.44 49.11c.266.178.511.342.768.512 1.035-1.443 1.916-2.979 2.63-4.578-.223-.17-.436-.33-.666-.504-.836 1.541-1.754 3.076-2.732 4.57"/><path d="m60.933 27.883c-.607-2.01-1.464-3.902-2.518-5.668-.394.994-.817 2.024-1.299 3.118 1.295 1.116 2.488 2.219 3.57 3.287.09-.254.163-.49.247-.737"/><path d="m61.59 30.606c-.189-.19-.365-.379-.563-.574-.487 1.378-1.061 2.828-1.719 4.331.942.809 1.803 1.584 2.621 2.336.139-2 .04-4.04-.339-6.093"/><path d="m20.79 16.587l3.26-4-4.179-1.887-3.328 3.617z"/><path d="m17.773 22.505l4.798 2.997 3.256-4.802-4.797-2.78z"/><path d="m19.73 32.11l5.128 3.38 3.232-5.108-5.174-3.302z"/><path d="m30.568 40.574l-5.308-3.424-3.09 5 5.232 3.37z"/><path d="m33.01 50.23l-5.187-3.14-2.968 4.527 5.095 2.943z"/><path d="m30.347 55.865l-2.803 3.665 4.706 2.04 2.92-3.29z"/><path d="m17 11.616c-1.209.627-2.359 1.324-3.444 2.087.341.176.673.344 1.027.529.801-.93 1.608-1.792 2.417-2.616"/><path d="m11.451 19.674l4.169 2.601 3.248-4.549-4.176-2.324z"/><path d="m12.812 28.603l4.635 3.158 3.141-5-4.718-3.02z"/><path d="m19.836 41.725l3.02-4.973-5.06-3.377-2.899 4.945z"/><path d="m25.437 46.688l-5.176-3.368-2.746 4.623 5.04 3.267z"/><path d="m28.07 55.55l-5.06-2.913-2.582 3.933 4.927 2.67z"/><path d="m25.07 61.27c1.423.305 2.878.516 4.354.629-1.184-.467-2.39-.975-3.622-1.555-.251.323-.489.62-.732.926"/><path d="m12.427 15.411c-.221-.123-.423-.232-.64-.352-1.403 1.156-2.68 2.425-3.811 3.79.413.263.824.523 1.259.8 1.022-1.475 2.093-2.899 3.192-4.238"/><path d="m6.523 25.606l3.918 2.812 2.964-4.808-4.04-2.624z"/><path d="m12.429 37.986l2.777-4.886-4.49-3.157-2.592 4.797z"/><path d="m17.603 42.955l-4.792-3.394-2.405 4.569 4.584 3.38z"/><path d="m17.926 56.17l2.447-3.91-4.926-3.26-2.253 4.04z"/><path d="m17.622 58.684c1.658.814 3.404 1.492 5.214 2.02.154-.205.301-.4.457-.611-1.621-.807-3.256-1.699-4.869-2.656-.278.43-.539.838-.802 1.251"/><path d="m7.551 20.861c-.259-.172-.499-.332-.75-.499-1.035 1.444-1.918 2.977-2.634 4.577.219.166.427.324.652.493.836-1.54 1.754-3.077 2.732-4.571"/><path d="m8.775 29.662l-3.765-2.817-2.201 4.609 3.518 2.942z"/><path d="m4.68 40.34l3.843 3.297 2.252-4.497-4.133-3.242z"/><path d="m8.937 45.12l-1.833 4 4.141 3.36 2.112-3.98z"/><path d="m11.341 54.57c1.392 1.188 2.903 2.252 4.513 3.178.159-.262.312-.514.477-.783-1.582-.992-3.129-2.043-4.604-3.129-.134.252-.256.49-.386.734"/><path d="m2.068 33.28c-.142 1.996-.043 4.04.334 6.088.189.193.363.377.561.572.487-1.381 1.061-2.832 1.719-4.332-.94-.808-1.798-1.58-2.614-2.328"/><path d="m3.06 42.09c.607 2.01 1.462 3.906 2.516 5.674.395-.996.819-2.029 1.303-3.127-1.295-1.117-2.489-2.219-3.571-3.285-.091.253-.163.49-.248.738"/></g><g fill-rule="evenodd"><path fill="#8cc63e" d="m35.647 11.847l-11.335.016c.625-.705 2.672-1.72 6.156-1.72 3.157 0 5.095.733 5.179 1.704"/><path fill="#64892f" d="m35.647 11.847c.088.971-2.471 2.52-5.713 2.814-3.241.296-5.938-.773-6.02-1.745-.086-.971 1.387-2.977 6.07-1.508 3.107.974 5.583-.532 5.667.439"/></g><path fill="#64892f" d="m29.26 12.52c-.607-3.518-1.146-4.489-1.891-5.833-.248-.446-.514-.926-.805-1.525l1.924-.96c.271.56.518 1.01.748 1.421.818 1.476 1.464 2.639 2.133 6.524l-2.109.373"/><g fill="#8cc63e"><path d="m26.563 5.465l2.208.171c.818 1.476-.182 2.998.487 6.883.001.001-1.95-5.71-2.695-7.05"/><path d="m31.955 6.411c-2.501.228-4.966-.329-7.685-.943-3-.678-6.802-1.297-10.607-1.297-1.544 0-1.618-2.171-.075-2.171 4.912 0 8.02.643 11.149 1.348 3.746.847 6.769 1.554 9.918.231l.72 1.985c-1.178.495-2.285.744-3.42.847"/></g><ellipse transform="matrix(.941-.3384.3384.941.501 12.09)" fill="#ceff80" cx="34.927" cy="4.607" rx=".665" ry="1.066"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.3 29.2c-3.5-14.5-19.5-23.8-35.7-20.6-16.2 3.2-26.4 17.6-22.9 32.2 3.5 14.6 19.5 23.8 35.7 20.6 16.2-3.2 26.4-17.6 22.9-32.2" fill="#f5f0ae"/><g fill="#d0d18b"><path d="m29.3 8.3c-.2-.1-.3-.1-.5-.2-1.1.1-2.1.3-3.2.5-1.1.2-2.1.5-3.1.8-.1.1-.3.2-.4.4 1.3.5 2.7 1.1 4.2 1.8 1-1.2 2.1-2.3 3-3.3"/><path d="m23.4 16.8l4.8 2.7 3.2-4.3-4.8-2.5z"/><path d="m25.3 25.8l5.3 3.3 3.2-5-5.2-3.1z"/><path d="m27.7 35.9l5.3 3.4 3.3-5.1-5.3-3.5z"/><path d="m38.7 44.2l-5.3-3.3-3.2 5 5.2 3.2z"/><path d="m40.6 53.3l-4.8-2.8-3.2 4.3 4.8 2.5z"/><path d="m34.7 61.7c.2.1.3.1.5.2 1.1-.1 2.2-.3 3.2-.5s2.1-.5 3.2-.8c.1-.1.2-.2.4-.3-1.3-.5-2.7-1.1-4.2-1.8-1.1 1.1-2.1 2.2-3.1 3.2"/><path d="m33.6 14.1l2.8-3.7-4.7-2-2.9 3.3z"/><path d="m31 19.7l5.2 3.2 2.9-4.5-5.1-3z"/><path d="m41.8 27.8l-5.2-3.3-3.2 4.9 5.3 3.4z"/><path d="m44.3 37.9l-5.2-3.4-3.2 5.1 5.2 3.3z"/><path d="m46.2 47.5l-4.8-3-3.2 4.8 4.8 2.8z"/><path d="m43.2 53.4l-3.3 4 4.2 1.9 3.4-3.6z"/><path d="m38.9 8.7c-1.4-.3-2.8-.5-4.2-.6 1.2.5 2.3 1 3.5 1.5.2-.3.5-.6.7-.9"/><path d="m35.9 14.4l5.1 2.9 2.6-3.9-5-2.7z"/><path d="m38.6 23.3l5.1 3.3 2.8-4.6-5.1-3.2z"/><path d="m44.2 28.2l-3.1 5 5.1 3.4 2.9-5z"/><path d="m51.2 41.4l-4.7-3.2-3.1 5 4.7 3z"/><path d="m52.5 50.3l-4.1-2.6-3.3 4.5 4.2 2.4z"/><path d="m46.9 58.4c1.2-.6 2.4-1.4 3.5-2.1-.3-.2-.7-.4-1.1-.5-.7.9-1.5 1.8-2.4 2.6"/><path d="m46.4 11.3c-1.7-.8-3.4-1.5-5.2-2-.1.2-.3.4-.4.6 1.6.8 3.3 1.7 4.9 2.7.1-.5.4-.9.7-1.3"/><path d="m46.1 13.8l-2.5 3.9 4.9 3.3 2.3-4.1z"/><path d="m53.6 25.8l-4.6-3.3-2.6 4.5 4.8 3.4z"/><path d="m51.6 32l-2.8 4.9 4.5 3.1 2.6-4.8z"/><path d="m57.5 44.4l-3.9-2.8-3 4.8 4 2.6z"/><path d="m51.6 54.6c.2.1.4.2.7.4 1.4-1.2 2.7-2.4 3.8-3.8-.4-.3-.8-.5-1.3-.8-1.1 1.4-2.1 2.8-3.2 4.2"/><path d="m52.6 15.4c-1.4-1.2-2.9-2.2-4.5-3.2-.2.3-.3.5-.5.8 1.6 1 3.1 2 4.6 3.1.2-.2.3-.4.4-.7"/><path d="m55.1 24.9l1.8-4-4.2-3.4-2.1 4z"/><path d="m59.3 29.6l-3.8-3.3-2.3 4.5 4.2 3.3z"/><path d="m55.2 40.3l3.8 2.8 2.2-4.6-3.5-2.9z"/><path d="m56.4 49.1c.3.2.5.3.8.5 1-1.4 1.9-3 2.6-4.6-.2-.2-.4-.3-.7-.5-.8 1.6-1.7 3.1-2.7 4.6"/><path d="m60.9 27.9c-.6-2-1.5-3.9-2.5-5.7-.4 1-.8 2-1.3 3.1 1.3 1.1 2.5 2.2 3.6 3.3.1-.2.1-.5.2-.7"/><path d="m61.6 30.6c-.2-.2-.4-.4-.6-.6-.5 1.4-1.1 2.8-1.7 4.3.9.8 1.8 1.6 2.6 2.3.2-1.9.1-3.9-.3-6"/><path d="m20.8 16.6l3.2-4-4.1-1.9-3.4 3.6z"/><path d="m17.8 22.5l4.8 3 3.2-4.8-4.8-2.8z"/><path d="m19.7 32.1l5.2 3.4 3.2-5.1-5.2-3.3z"/><path d="m30.6 40.6l-5.3-3.5-3.1 5 5.2 3.4z"/><path d="m33 50.2l-5.2-3.1-2.9 4.5 5.1 3z"/><path d="m30.3 55.9l-2.8 3.6 4.8 2.1 2.9-3.3z"/><path d="m17 11.6c-1.2.6-2.4 1.3-3.4 2.1.3.2.7.3 1 .5.8-.9 1.6-1.8 2.4-2.6"/><path d="m11.5 19.7l4.1 2.6 3.3-4.6-4.2-2.3z"/><path d="m12.8 28.6l4.6 3.2 3.2-5-4.7-3.1z"/><path d="m19.8 41.7l3.1-4.9-5.1-3.4-2.9 4.9z"/><path d="m25.4 46.7l-5.1-3.4-2.8 4.6 5.1 3.3z"/><path d="m28.1 55.6l-5.1-3-2.6 4 5 2.6z"/><path d="m25.1 61.3c1.4.3 2.9.5 4.4.6-1.2-.5-2.4-1-3.6-1.6-.3.4-.6.7-.8 1"/><path d="m12.4 15.4c-.2-.1-.4-.2-.6-.4-1.4 1.2-2.7 2.4-3.8 3.8.4.3.8.5 1.3.8 1-1.4 2-2.8 3.1-4.2"/><path d="m6.5 25.6l3.9 2.8 3-4.8-4-2.6z"/><path d="m12.4 38l2.8-4.9-4.5-3.2-2.6 4.8z"/><path d="m17.6 43l-4.8-3.4-2.4 4.5 4.6 3.4z"/><path d="m17.9 56.2l2.5-3.9-5-3.3-2.2 4z"/><path d="m17.6 58.7c1.7.8 3.4 1.5 5.2 2 .2-.2.3-.4.5-.6-1.6-.8-3.3-1.7-4.9-2.7-.3.5-.5.9-.8 1.3"/><path d="m7.6 20.9c-.3-.2-.5-.3-.8-.5-1 1.4-1.9 3-2.6 4.6.2.2.4.3.7.5.8-1.6 1.7-3.1 2.7-4.6"/><path d="m8.8 29.7l-3.8-2.9-2.2 4.7 3.5 2.9z"/><path d="m4.7 40.3l3.8 3.3 2.3-4.5-4.2-3.2z"/><path d="m8.9 45.1l-1.8 4 4.1 3.4 2.2-4z"/><path d="m11.3 54.6c1.4 1.2 2.9 2.3 4.5 3.2.2-.3.3-.5.5-.8-1.6-1-3.1-2-4.6-3.1-.1.2-.2.4-.4.7"/><path d="m2.1 33.3c-.1 2 0 4 .3 6.1.2.2.4.4.6.6.5-1.4 1.1-2.8 1.7-4.3-1-.9-1.8-1.7-2.6-2.4"/><path d="m3.1 42.1c.6 2 1.5 3.9 2.5 5.7.4-1 .8-2 1.3-3.1-1.3-1.1-2.5-2.2-3.6-3.3-.1.2-.2.4-.2.7"/></g><path d="m35.6 11.8h-11.3c.6-.7 2.7-1.7 6.2-1.7 3.1 0 5.1.8 5.1 1.7" fill="#8cc63e"/><g fill="#64892f"><path d="m35.6 11.8c.1 1-2.5 2.5-5.7 2.8-3.2.3-5.9-.8-6-1.7-.1-1 1.4-3 6.1-1.5 3.1 1 5.6-.5 5.6.4"/><path d="m29.3 12.5c-.6-3.5-1.2-4.5-1.9-5.8-.2-.4-.5-.9-.8-1.5l1.9-1c.3.6.5 1 .7 1.4.8 1.5 1.5 2.6 2.1 6.5l-2 .4"/></g><g fill="#8cc63e"><path d="m26.6 5.5l2.2.2c.8 1.5-.2 3 .5 6.9 0-.1-2-5.8-2.7-7.1"/><path d="m32 6.4c-2.5.2-5-.3-7.7-.9-3-.7-6.8-1.3-10.6-1.3-1.6 0-1.7-2.2-.1-2.2 4.9 0 8 .6 11.1 1.3 3.7.8 6.8 1.6 9.9.2l.7 2c-1.1.6-2.2.8-3.3.9"/></g><ellipse transform="matrix(.941-.3384.3384.941.5018 12.091)" cx="34.9" cy="4.6" rx=".7" ry="1.1" fill="#ceff80"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f349.svg b/build/js/jsxc/lib/emojione/assets/svg/1f349.svg
index 5709409..0f7a175 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f349.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f349.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f55" d="M2.098,50.285c16.181,15.627,43.56,15.627,59.806-0.063L31.967,2L2.098,50.285z"/><path fill="#ceff80" d="m5.958 44.05l-1.125 1.551c11.849 10.399 36.891 14.502 54.33-.074l-1.119-1.526c-15.174 11.478-36.955 11.478-52.08.049"/><path fill="#8cc63e" d="m4.852 45.579l-2.852 4.617c16.199 15.748 43.734 15.748 60-.064l-2.842-4.608c-15.494 12.457-38.857 12.46-54.31.055"/><g fill="#3e4347" fill-rule="evenodd"><path d="m16.01 38.545c-.016-1.293 2.352-4.605 2.352-4.605s2.455 3.425 2.471 4.72c.018 1.296-1.049 2.319-2.381 2.288-1.333-.032-2.426-1.109-2.442-2.403"/><path d="m28.422 43.12c-.016-1.293 2.352-4.605 2.352-4.605s2.455 3.425 2.471 4.72c.018 1.296-1.049 2.32-2.381 2.288-1.335-.032-2.426-1.109-2.442-2.403"/><path d="m36.514 31.536c-.016-1.293 2.354-4.605 2.354-4.605s2.455 3.425 2.471 4.72c.018 1.296-1.049 2.32-2.381 2.288-1.335-.032-2.429-1.109-2.444-2.403"/><path d="m44.727 42.471c-.016-1.293 2.352-4.605 2.352-4.605s2.455 3.424 2.471 4.719c.018 1.296-1.049 2.32-2.381 2.289-1.335-.032-2.427-1.109-2.442-2.403"/><path d="m27.17 20.878c-.016-1.293 2.352-4.605 2.352-4.605s2.455 3.425 2.471 4.72c.018 1.295-1.049 2.319-2.381 2.288-1.335-.032-2.426-1.109-2.442-2.403"/></g><g fill="#64892f"><path d="m28.23 54.722v7.122c2.51.205 5.04.204 7.547-.009v-7.121c-2.51.212-5.04.216-7.547.008"/><path d="m10.552 49.41l-2.182 5.832c2.141 1.37 4.396 2.525 6.729 3.479l2.338-6.244c-2.375-.814-4.68-1.838-6.885-3.067"/><path d="m53.44 49.37c-2.205 1.23-4.51 2.258-6.881 3.074l2.334 6.234c2.33-.957 4.586-2.116 6.727-3.488l-2.18-5.82"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2.1,50.3c16.2,15.6,43.6,15.6,59.8-0.1L32,2L2.1,50.3z" fill="#f55"/><path d="M6,44l-1.1,1.6C16.7,56,41.7,60.1,59.2,45.5L58,44C42.9,55.5,21.1,55.5,6,44z" fill="#ceff80"/><path d="M4.9,45.6L2,50.2c16.2,15.7,43.7,15.7,60-0.1l-2.8-4.6C43.7,58,20.3,58,4.9,45.6z" fill="#8cc63e"/><g fill="#3e4347"><path d="m16 38.5c0-1.3 2.4-4.6 2.4-4.6s2.5 3.4 2.5 4.7c0 1.3-1 2.3-2.4 2.3-1.4 0-2.5-1.1-2.5-2.4"/><path d="m28.4 43.1c0-1.3 2.4-4.6 2.4-4.6s2.5 3.4 2.5 4.7c0 1.3-1 2.3-2.4 2.3-1.4 0-2.5-1.1-2.5-2.4"/><path d="m36.5 31.5c0-1.3 2.4-4.6 2.4-4.6s2.5 3.4 2.5 4.7c0 1.3-1 2.3-2.4 2.3-1.4 0-2.5-1.1-2.5-2.4"/><path d="m44.7 42.5c0-1.3 2.4-4.6 2.4-4.6s2.5 3.4 2.5 4.7c0 1.3-1 2.3-2.4 2.3-1.4-.1-2.5-1.1-2.5-2.4"/><path d="m27.2 20.9c0-1.3 2.4-4.6 2.4-4.6s2.4 3.4 2.4 4.7c0 1.3-1 2.3-2.4 2.3-1.3-.1-2.4-1.1-2.4-2.4"/></g><g fill="#64892f"><path d="m28.2 54.7v7.1c2.5.2 5 .2 7.5 0v-7.1c-2.4.2-5 .2-7.5 0"/><path d="m10.6 49.4l-2.2 5.8c2.1 1.4 4.4 2.5 6.7 3.5l2.3-6.2c-2.3-.8-4.6-1.9-6.8-3.1"/><path d="m53.4 49.4c-2.2 1.2-4.5 2.3-6.9 3.1l2.3 6.2c2.3-1 4.6-2.1 6.7-3.5l-2.1-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f34a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f34a.svg
index ea4d985..a6c48c5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f34a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f34a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#628c2c" d="m30.19 11.5l.187-1.214c.034.018 3.63 2.104 7.816.709l.245.78c-4.519 1.506-8.099-.193-8.248-.275"/><g fill-rule="evenodd"><ellipse fill="#f29a2e" cx="27.881" cy="38.11" rx="25.881" ry="23.887"/><path fill="#7fb539" d="m21.957 18.891c.172-1.196 4.674-.553 4.674-.553s-.194-2.979.566-3.167c.85-.21 2.131 2.849 2.131 2.849s3.646-1.44 4.091-.485c.384.825-2.531 2.569-2.531 2.569s3.814 3.056 3.049 4.071c-.82 1.088-4.921-2.169-4.921-2.169s-2.563 4.396-3.715 3.769c-1.095-.597.896-5.01.896-5.01s-4.406-.7-4.24-1.873"/></g><g fill="#ffc44a"><path d="m18.618 29.1l-.775.794.775.795.775-.795-.775-.794"/><path d="m12.6 28.639l-.774.797.774.794.775-.794-.775-.797"/><path d="m7.757 28.639l-.775.796.775.795.774-.795-.774-.796"/><path d="m21.953 32.438l-.773.792.773.8.774-.8-.774-.792"/><path d="m18.618 36.521l-.775.799.775.79.775-.79-.775-.799"/><path d="m13.375 36.521l-.775.799.775.79.775-.79-.775-.799"/><path d="m7.382 36.961l-.775.795.775.797.774-.797-.774-.795"/><path d="m15.996 32.631l-.775.797.775.792.774-.792-.774-.797"/><path d="m10.752 32.631l-.774.797.774.792.775-.792-.775-.797"/><path d="m5.51 32.631l-.775.796.775.793.774-.793-.774-.796"/><path d="m21.406 25.564l-.775.796.775.8.774-.8-.774-.796"/><path d="m15.623 25.564l-.775.795.775.801.774-.801-.774-.795"/><path d="m9.978 24.768l-.774.796.774.796.774-.796-.774-.796"/><path d="m19.2 22.494l-.77.796.77.8.779-.8-.779-.796"/><path d="m17 19.49l-.77.796.77.794.779-.794-.779-.796"/><path d="m13.375 21.697l-.775.797.775.796.775-.796-.775-.797"/><path d="m15.996 40.515l-.775.795.775.8.774-.8-.774-.795"/><path d="m10.46 40.514l-.774.796.774.8.775-.8-.775-.796"/></g><path fill-rule="evenodd" fill="#8cc63e" d="m47.41 6.184c6.481 5.405 14.59 3.901 14.59 3.901s-13.14 16.486-23.98 9.747c-10.182-6.333 0-21.479 9.39-13.648"/><path fill="#628c2c" d="m30.498 2.842l-1.875.917c2.938 9.327-.676 14.513-1.549 15.359-1.225 1.188 1.609 2.332 2.884.612.265-.356 3.992-5.93.54-16.888"/><ellipse fill="#8cc63e" cx="29.573" cy="3.345" rx=".999" ry="1.344"/><path fill="#7fb539" d="m33.84 11.784c1-.707 2.106-1.269 3.271-1.687 1.174-.392 2.416-.589 3.66-.604 2.508-.028 4.896.743 7.217 1.333 2.319.631 4.665 1.045 7.04.923 2.371-.114 4.711-.773 6.975-1.664-1.049.632-2.166 1.142-3.318 1.574-1.162.397-2.368.687-3.598.832-2.469.309-4.973-.107-7.327-.728-2.358-.627-4.645-1.387-7-1.529-2.358-.158-4.723.481-6.914 1.55"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m30.2 11.5l.2-1.2c0 0 3.6 2.1 7.8.7l.2.8c-4.5 1.5-8.1-.2-8.2-.3" fill="#628c2c"/><ellipse cx="27.9" cy="38.1" rx="25.9" ry="23.9" fill="#f29a2e"/><path d="m22 18.9c.2-1.2 4.7-.6 4.7-.6s-.2-3 .6-3.2c.7-.1 2 2.9 2 2.9s3.6-1.4 4.1-.5c.4.8-2.5 2.6-2.5 2.6s3.8 3.1 3 4.1c-.8 1.1-4.9-2.2-4.9-2.2s-2.6 4.4-3.7 3.8c-1.1-.6.9-5 .9-5s-4.4-.7-4.2-1.9" fill="#7fb539"/><g fill="#ffc44a"><path d="m18.6 29.1l-.8.8.8.8.8-.8-.8-.8"/><path d="m12.6 28.6l-.8.8.8.8.8-.8-.8-.8"/><path d="m7.8 28.6l-.8.8.8.8.7-.8-.7-.8"/><path d="m22 32.4l-.8.8.8.8.7-.8-.7-.8"/><path d="m18.6 36.5l-.8.8.8.8.8-.8-.8-.8"/><path d="m13.4 36.5l-.8.8.8.8.7-.8-.7-.8"/><path d="m7.4 37l-.8.8.8.8.8-.8-.8-.8"/><path d="m16 32.6l-.8.8.8.8.8-.8-.8-.8"/><path d="m10.8 32.6l-.8.8.8.8.7-.8-.7-.8"/><path d="m5.5 32.6l-.8.8.8.8.8-.8-.8-.8"/><path d="m21.4 25.6l-.8.8.8.8.8-.8-.8-.8"/><path d="m15.6 25.6l-.8.8.8.8.8-.8-.8-.8"/><path d="m10 24.8l-.8.8.8.8.8-.8-.8-.8"/><path d="m19.2 22.5l-.8.8.8.8.8-.8-.8-.8"/><path d="m17 19.5l-.8.8.8.8.8-.8-.8-.8"/><path d="m13.4 21.7l-.8.8.8.8.7-.8-.7-.8"/><path d="m16 40.5l-.8.8.8.8.8-.8-.8-.8"/><path d="m10.5 40.5l-.8.8.8.8.7-.8-.7-.8"/></g><path d="m47.4 6.2c6.5 5.4 14.6 3.9 14.6 3.9s-13.1 16.5-24 9.7c-10.2-6.3 0-21.4 9.4-13.6" fill="#8cc63e"/><path d="m30.5 2.8l-1.9.9c2.9 9.3-.7 14.5-1.5 15.4-1.2 1.2 1.6 2.3 2.9.6.2-.3 4-5.9.5-16.9" fill="#628c2c"/><ellipse cx="29.6" cy="3.3" rx="1" ry="1.3" fill="#8cc63e"/><path d="m33.8 11.8c1-.7 2.1-1.3 3.3-1.7 1.2-.4 2.4-.6 3.7-.6 2.5 0 4.9.7 7.2 1.3 2.3.6 4.7 1 7 .9 2.4-.1 4.7-.8 7-1.7-1 .6-2.2 1.1-3.3 1.6-1.2.4-2.4.7-3.6.8-2.5.3-5-.1-7.3-.7-2.4-.6-4.6-1.4-7-1.5-2.4-.1-4.8.5-7 1.6" fill="#7fb539"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f34b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f34b.svg
index 8f81c63..e6dafd4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f34b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f34b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill-rule="evenodd" fill="#77a836" d="m28.15 4.645c-7.223-3.253-12.233 6.863-12.233 6.863s2.059 4.738 5.326 5.733c11.559 3.522 21.64-12.01 21.64-12.01s-7.605 2.622-14.733-.59"/><path fill="#947151" d="m8.98 7.877c-.386-.046-.506 1.453-.126 1.534 6.366 1.367 8.985 6.131 9.194 7.01.293 1.232 2.094-.09 1.48-1.564-.127-.306-3.865-6.169-10.548-6.98"/><path fill="#64892f" d="m57.822 57.841c.268.277 1.521.604 2.1.006.575-.598.261-1.896-.006-2.172-.268-.278-.953-.017-1.531.581-.578.599-.829 1.307-.563 1.585"/><path fill="#ffe62e" d="m17.285 19.06c-.513-.697.138-2.346 1.521-3.778 1.386-1.432 2.976-2.104 3.651-1.576 8.393-5.444 21.22-2.908 30.42 6.621 8.225 8.516 11.05 20.02 7.812 28.579 1.63 2.101 1.054 5.688-1.438 8.266-2.494 2.584-5.965 3.179-7.993 1.481-8.262 3.339-19.361.41-27.578-8.097-9.205-9.53-11.654-22.803-6.395-31.496"/><path fill-rule="evenodd" fill="#8cc63e" d="m18.669 16.1c-1.458-4.199-7.623-6.609-7.623-6.609s-12.618 7.113-8.05 16.339c4.511 9.105 1.605 19.17 1.605 19.17s19.232-14.04 14.07-28.899"/><path fill="#7fb539" d="m11.05 9.491c-.899 1.158-1.663 2.472-2.291 3.884-.599 1.428-1.01 2.975-1.234 4.553-.446 3.183-.047 6.342.176 9.385.268 3.05.304 6.099-.218 9.09-.509 2.993-1.582 5.863-2.878 8.595.828-1.23 1.542-2.569 2.181-3.963.603-1.412 1.101-2.898 1.458-4.44.731-3.085.715-6.334.466-9.425-.256-3.098-.661-6.125-.416-9.144.231-3.02 1.285-5.925 2.756-8.537"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.2 4.6c-7.2-3.3-12.2 6.9-12.2 6.9s2.1 4.7 5.3 5.7c11.6 3.5 21.6-12 21.6-12s-7.6 2.7-14.7-.6" fill="#77a836"/><path d="m9 7.9c-.4 0-.5 1.5-.1 1.5 6.4 1.4 9 6.1 9.2 7 .3 1.2 2.1-.1 1.5-1.6-.2-.2-3.9-6.1-10.6-6.9" fill="#947151"/><path d="m57.8 57.8c.3.3 1.5.6 2.1 0 .6-.6.3-1.9 0-2.2-.3-.3-1 0-1.5.6-.6.7-.8 1.4-.6 1.6" fill="#64892f"/><path d="m17.3 19.1c-.5-.7.1-2.3 1.5-3.8 1.4-1.4 3-2.1 3.7-1.6 8.4-5.4 21.2-2.9 30.4 6.6 8.2 8.5 11.1 20 7.8 28.6 1.6 2.1 1.1 5.7-1.4 8.3-2.5 2.6-6 3.2-8 1.5-8.3 3.3-19.4.4-27.6-8.1-9.2-9.6-11.7-22.8-6.4-31.5" fill="#ffe62e"/><path d="M18.7,16.1C17.2,11.9,11,9.5,11,9.5S-1.6,16.6,3,25.8C7.5,34.9,4.6,45,4.6,45S23.8,31,18.7,16.1z" fill="#8cc63e"/><path d="m11 9.5c-.9 1.2-1.7 2.5-2.3 3.9-.6 1.4-1 3-1.2 4.6-.4 3.2 0 6.3.2 9.4.3 3 .3 6.1-.2 9.1-.5 3-1.6 5.9-2.9 8.6.8-1.2 1.5-2.6 2.2-4 .6-1.4 1.1-2.9 1.5-4.4.7-3.2.7-6.4.4-9.5-.3-3.1-.7-6.2-.4-9.2.2-3 1.3-5.9 2.7-8.5" fill="#7fb539"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f34c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f34c.svg
index 6003781..9f7af93 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f34c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f34c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2eacc" d="m46.596 42.18c-6.489 9.362-16.808 1.186-10.319-8.176 11.785-11.316 11.483-27.446 15.943-27.982 5.613-.674 9.771 15.999-5.624 36.16"/><path fill="#9c6525" d="m5.455 40.734l-3.455 2.95c.856 1.35 1.821 2.619 2.878 3.801 1.721-1.394 3.65-3.228 4.922-4.974-1.519-.458-2.974-1.051-4.345-1.777"/><path fill="#fee801" d="m34.21 20.13c-7.189-1.834-11.881 3.224-11.881 3.224 6.792-3.631 16.848 4.626 15.38 7.257-5.129 9.193-15.238 14.488-25.69 12.464-.759-.147-1.495-.345-2.223-.563-1.271 1.746-3.201 3.58-4.922 4.974 14.08 7.02 30.94 2.875 38.08-11.268 2.91-5.765-2.646-14.532-8.745-16.09"/><path fill="#e5c900" d="m61.991 43.19c0 0-1.37-5.73-8.178-8.43-6.636-2.63-10.854 1.453-10.854 1.453-5.391 9.654-16.01 15.217-26.984 13.09-3.285-.637-6.297-1.925-8.971-3.688-.705.671-1.432 1.307-2.126 1.867 3.841 4.305 8.941 7.406 14.845 8.551 9.261 1.795 18.278-1.621 24.4-8.29 9.414-11.87 17.868-4.552 17.868-4.552"/><path fill="#f5f5f5" d="m34.549 41.11c2.923-1.837 4.414-4.918 3.328-6.881-.347-.629-.93-1.045-1.639-1.289-.178.253-.356.506-.541.75.52.204.95.528 1.213 1 .882 1.595-.328 4.098-2.704 5.589-2.31 1.452-4.856 1.4-5.808-.072-.371.219-.747.426-1.13.625.008.015.012.031.021.045 1.086 1.965 4.335 2.066 7.26.23"/><path fill="#42ade2" d="m28.398 40.21c.951 1.473 3.498 1.524 5.808.072 2.376-1.491 3.586-3.994 2.704-5.589-.263-.475-.693-.799-1.213-1-2.02 2.664-4.506 4.875-7.299 6.52"/><path fill="#fee801" d="m61.991 43.19c.222 5.295-3.674 13.652-10.326 14.764-6.653 1.112 8.433-19.828-1.615-24.06 0 0 11.552-.018 11.941 9.294"/><path fill="#e5c900" d="m35.92 20.755c-14.852-6.11-19.875 12.637-12.459 10.415 2.689-.807 4.217-6.33 12.459-10.415"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46.6 42.2c-6.5 9.4-16.8 1.2-10.3-8.2 11.8-11.3 11.5-27.4 15.9-28 5.6-.7 9.8 16-5.6 36.2" fill="#f2eacc"/><path d="m5.5 40.7l-3.5 3c.9 1.3 1.8 2.6 2.9 3.8 1.7-1.4 3.6-3.2 4.9-5-1.5-.4-3-1-4.3-1.8" fill="#9c6525"/><path d="m34.2 20.1c-7.2-1.8-11.9 3.2-11.9 3.2 6.8-3.6 16.8 4.6 15.4 7.3-5.1 9.2-15.2 14.5-25.7 12.5-.8-.1-1.5-.3-2.2-.6-1.3 1.7-3.2 3.6-4.9 5 14.1 7 30.9 2.9 38.1-11.3 2.9-5.7-2.7-14.5-8.8-16.1" fill="#fee801"/><path d="m62 43.2c0 0-1.4-5.7-8.2-8.4-6.6-2.7-10.8 1.4-10.8 1.4-5.4 9.7-16 15.2-27 13.1-3.3-.6-6.3-1.9-9-3.7-.7.7-1.4 1.3-2.1 1.9 3.8 4.3 8.9 7.4 14.8 8.6 9.3 1.8 18.3-1.6 24.4-8.3 9.4-11.9 17.9-4.6 17.9-4.6" fill="#e5c900"/><path d="m34.5 41.1c2.9-1.8 4.4-4.9 3.3-6.9-.3-.6-.9-1-1.6-1.3-.2.3-.4.5-.5.8.5.2 1 .5 1.2 1 .9 1.6-.3 4.1-2.7 5.6-2.3 1.5-4.9 1.4-5.8-.1-.4.2-.7.4-1.1.6 1.1 2 4.3 2.1 7.2.3" fill="#f5f5f5"/><path d="m28.4 40.2c1 1.5 3.5 1.5 5.8.1 2.4-1.5 3.6-4 2.7-5.6-.3-.5-.7-.8-1.2-1-2 2.7-4.5 4.9-7.3 6.5" fill="#42ade2"/><path d="m62 43.2c.2 5.3-3.7 13.7-10.3 14.8-6.7 1.1 8.4-19.9-1.7-24.1 0 0 11.6 0 12 9.3" fill="#fee801"/><path d="m35.9 20.8c-14.8-6.2-19.9 12.6-12.4 10.4 2.6-.8 4.2-6.4 12.4-10.4" fill="#e5c900"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f34d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f34d.svg
index b5e9684..350c11f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f34d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f34d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#64892f"><path d="m16.935 11.238c4.893 4.894 5.663 8.215 4.092 9.788-1.573 1.572-4.894.802-9.787-4.092-4.895-4.895-7.936-13.632-7.936-13.632s8.736 3.041 13.631 7.936"/><path d="m23.71 14.12c2.924 6.273 2.512 9.657.496 10.597-2.02.94-4.872-.919-7.796-7.193-2.927-6.272-2.795-15.522-2.795-15.522s7.169 5.845 10.1 12.12"/><path d="m29.632 21.245c-2.881 6.294-5.724 8.173-7.746 7.249-2.02-.925-2.458-4.306.422-10.6 2.88-6.294 10.01-12.191 10.01-12.191s.197 9.248-2.683 15.542"/><path d="m26.912 17.956c-.398 6.91-2.365 9.694-4.587 9.565-2.22-.128-3.853-3.12-3.453-10.03.399-6.911 4.899-14.992 4.899-14.992s3.542 8.546 3.141 15.457"/><path d="m33.2 23.979c-4.449 5.302-7.689 6.358-9.394 4.93-1.703-1.429-1.226-4.805 3.224-10.11s12.888-9.09 12.888-9.09-2.268 8.968-6.718 14.27"/><path d="m14.12 23.708c6.273 2.926 9.656 2.514 10.595.498.941-2.02-.918-4.872-7.19-7.797-6.274-2.926-15.524-2.795-15.524-2.795s5.847 7.169 12.12 10.09"/><path d="m21.245 29.631c6.294-2.88 8.174-5.724 7.248-7.746-.924-2.02-4.307-2.457-10.6.423-6.293 2.88-12.189 10.01-12.189 10.01s9.247.196 15.541-2.685"/><path d="m17.957 26.912c6.909-.398 9.693-2.366 9.564-4.587-.128-2.219-3.119-3.853-10.03-3.454s-14.991 4.9-14.991 4.9 8.546 3.541 15.457 3.141"/><path d="m23.98 33.2c5.302-4.448 6.358-7.689 4.929-9.393-1.429-1.704-4.805-1.225-10.11 3.224-5.303 4.449-9.09 12.888-9.09 12.888s8.969-2.269 14.271-6.719"/></g><path fill="#b46137" d="m55.909 31.2c7.997 7.997 5.762 16.826-1.062 23.649-6.823 6.824-15.653 9.06-23.648 1.063-7.997-7.997-14.739-25.803-7.916-32.627 6.824-6.824 24.63-.082 32.626 7.915"/><g fill="#e7a74f"><path d="m47.05 47.05c-.973.973-2.11 4.344-1.207 5.248.906.904 4.276-.233 5.25-1.207.972-.973 2.11-4.344 1.206-5.248s-4.277.234-5.249 1.207"/><path d="m52.873 52.873c-.973.974-1.821 4.635-.916 5.539.904.904 7.359-5.552 6.455-6.455-.904-.905-4.566-.057-5.539.916"/><path d="m34.833 34.832c-.974.973-2.11 4.344-1.208 5.248.905.904 4.275-.233 5.249-1.206.973-.974 2.111-4.345 1.207-5.249s-4.276.234-5.248 1.207"/><path d="m40.941 40.941c-.973.973-2.111 4.344-1.207 5.248s4.276-.234 5.249-1.207 2.111-4.344 1.207-5.248-4.276.234-5.249 1.207"/><path d="m28.975 28.973c-.973.973-2.11 4.345-1.207 5.249s4.275-.233 5.249-1.206c.972-.973 2.11-4.346 1.206-5.25s-4.277.234-5.248 1.207"/><path d="m29.13 52c-1.383 1.383-1.01 5.797 3.589 6.958 1.219.308 3.497-7.446 2.593-8.351-1.676-1.675-5.292.502-6.182 1.393"/><path d="m36.449 57.65c-3.495 3.496 2.351 5.733 4.706 3.377.891-.889 1.17-3.402.266-4.307-.903-.904-4.081.041-4.972.93"/><path d="m38.15 48.996c-.973.973-2.101 5.096-1.196 6s5.218-.031 6.191-1c.973-.973 1.526-4.82.622-5.725-.904-.903-4.645-.244-5.617.729"/><path d="m44.34 55.19c-.973.974-1.764 4.691-.859 5.596 1.676 1.678 4.855.346 5.827-.627.973-.973 1.532-4.924.628-5.828-.904-.905-4.622-.114-5.596.859"/><path d="m32.21 43.06c-.974.973-2.355 4.841-1.451 5.745.903.904 5.111-.139 6.083-1.111.973-.973 1.772-4.686.868-5.59-.904-.904-4.527-.017-5.5.956"/><path d="m20.572 31.27c-.972.973-1.421 3.656-.519 4.561.904.904 3.589.454 4.561-.519.973-.974 2.111-4.345 1.207-5.249s-4.275.234-5.249 1.207"/><path d="m20.638 38.05c-.889.89.761 6.509 1.65 5.618.89-.889 2.447-4.68 1.543-5.584s-2.304-.924-3.193-.034"/><path d="m24.321 45.34c-1.161 1.16-1.399 6.221 1.848 6.666 1.247.171 4.154-6.388 3.25-7.292-.904-.905-4.208-.265-5.098.626"/><path d="m26.24 37.09c-.973.973-1.835 4.73-.931 5.636.903.904 4.772.152 5.746-.821.972-.973 1.614-4.731.71-5.636s-4.551-.153-5.525.821"/><path d="m52.01 29.13c1.383-1.383 5.796-1.01 6.957 3.588.309 1.22-7.447 3.498-8.351 2.594-1.675-1.678.502-5.292 1.394-6.182"/><path d="m57.65 36.449c3.495-3.496 5.733 2.35 3.378 4.707-.891.889-3.404 1.169-4.307.266-.905-.905.041-4.083.929-4.973"/><path d="m48.996 38.15c.973-.973 5.097-2.101 6-1.196s-.032 5.218-1.01 6.192c-.973.973-4.819 1.525-5.724.621-.903-.904-.244-4.644.729-5.617"/><path d="m55.19 44.34c.973-.973 4.689-1.764 5.595-.859 1.677 1.677.346 4.855-.627 5.828s-4.923 1.532-5.827.628c-.905-.904-.115-4.623.859-5.597"/><path d="m43.06 32.21c.973-.974 4.841-2.356 5.744-1.451.904.904-.138 5.112-1.111 6.085s-4.685 1.771-5.588.866c-.905-.903-.018-4.527.955-5.5"/><path d="m31.27 20.572c.973-.973 3.656-1.423 4.561-.519s.454 3.588-.519 4.561c-.974.973-4.344 2.111-5.249 1.207-.905-.904.234-4.277 1.207-5.249"/><path d="m38.06 20.637c.888-.889 6.508.761 5.617 1.651-.889.889-4.68 2.447-5.584 1.542s-.924-2.303-.033-3.193"/><path d="m45.34 24.32c1.163-1.161 6.223-1.399 6.667 1.848.172 1.246-6.388 4.154-7.291 3.25-.906-.904-.265-4.208.624-5.098"/><path d="m37.09 26.24c.973-.973 4.73-1.836 5.635-.932s.153 4.773-.82 5.747c-.973.972-4.732 1.614-5.636.71-.905-.905-.153-4.552.821-5.525"/></g><g fill="#84b234"><path d="m21.91 18.431c3.731 3.732 4.512 6.07 3.551 7.03-.96.96-3.298.179-7.03-3.552s-6.482-9.96-6.482-9.96 6.228 2.749 9.96 6.481"/><path d="m25.719 31.508c3.302-2.652 3.783-4.798 2.672-6.076-1.11-1.278-3.392-1.206-6.695 1.447-3.302 2.652-5.267 8.159-5.267 8.159s5.986-.878 9.29-3.53"/><path d="m21.385 24.16c4.657-.046 6.887 1.182 7.234 2.717.351 1.536-1.313 2.8-5.968 2.846-4.657.044-10.892-2.684-10.892-2.684s4.97-2.835 9.626-2.879"/><path d="m20.91 20.394c4.774 1.292 6.702 3.03 6.62 4.51-.081 1.479-2.145 2.14-6.919.848-4.773-1.293-10.368-5.526-10.368-5.526s5.893-1.124 10.667.168"/><path d="m31.509 25.717c-2.652 3.303-4.799 3.783-6.075 2.673-1.279-1.111-1.206-3.393 1.445-6.696 2.653-3.303 8.159-5.266 8.159-5.266s-.877 5.987-3.529 9.289"/><path d="m24.16 21.385c-.046 4.656 1.182 6.885 2.718 7.234 1.535.35 2.801-1.313 2.846-5.969.044-4.657-2.684-10.892-2.684-10.892s-2.835 4.971-2.88 9.627"/><path d="m20.396 20.909c1.291 4.775 3.03 6.703 4.51 6.621 1.479-.083 2.139-2.145.848-6.919-1.295-4.775-5.527-10.37-5.527-10.37s-1.123 5.894.169 10.668"/></g><path fill="#8cc63e" d="m29.788 22.538c-1.119-2.154-3.348-3.82-3.348-3.82s-.758 1.684-1.186 3.634c-2.123-.919-5.643-2.74-5.643-2.74s1.82 3.521 2.741 5.643c-1.951.428-3.634 1.185-3.634 1.185s1.666 2.228 3.819 3.347c-1.649 2.323-2.462 5.478-2.462 5.478s6.226-1.841 9.785-5.402c3.562-3.562 5.403-9.787 5.403-9.787s-3.152.813-5.475 2.462"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#64892f"><path d="m16.9 11.2c4.9 4.9 5.7 8.2 4.1 9.8-1.6 1.6-4.9.8-9.8-4.1-4.9-4.9-7.9-13.6-7.9-13.6s8.7 3 13.6 7.9"/><path d="m23.7 14.1c2.9 6.3 2.5 9.7.5 10.6-2 .9-4.9-.9-7.8-7.2-2.9-6.3-2.8-15.5-2.8-15.5s7.2 5.8 10.1 12.1"/><path d="m29.6 21.2c-2.9 6.3-5.7 8.2-7.7 7.2-2-.9-2.5-4.3.4-10.6s10-12.2 10-12.2.2 9.4-2.7 15.6"/><path d="m26.9 18c-.4 6.9-2.4 9.7-4.6 9.6-2.2-.1-3.9-3.1-3.5-10 .4-6.9 4.9-15 4.9-15s3.6 8.4 3.2 15.4"/><path d="m33.2 24c-4.4 5.3-7.7 6.4-9.4 4.9-1.7-1.4-1.2-4.8 3.2-10.1s12.9-9.1 12.9-9.1-2.2 9-6.7 14.3"/><path d="m14.1 23.7c6.3 2.9 9.7 2.5 10.6.5.9-2-.9-4.9-7.2-7.8-6.3-2.9-15.5-2.8-15.5-2.8s5.8 7.2 12.1 10.1"/><path d="m21.2 29.6c6.3-2.9 8.2-5.7 7.2-7.7-.9-2-4.3-2.5-10.6.4s-12.2 10-12.2 10 9.4.2 15.6-2.7"/><path d="m18 26.9c6.9-.4 9.7-2.4 9.6-4.6-.1-2.2-3.1-3.9-10-3.5s-15 4.9-15 4.9 8.4 3.6 15.4 3.2"/><path d="m24 33.2c5.3-4.4 6.4-7.7 4.9-9.4-1.4-1.7-4.8-1.2-10.1 3.2-5.3 4.4-9.1 12.9-9.1 12.9s9-2.2 14.3-6.7"/></g><path d="m55.9 31.2c8 8 5.8 16.8-1.1 23.6-6.8 6.8-15.7 9.1-23.6 1.1-8-8-14.7-25.8-7.9-32.6 6.8-6.8 24.6-.1 32.6 7.9" fill="#b46137"/><g fill="#e7a74f"><path d="m47.1 47.1c-1 1-2.1 4.3-1.2 5.2.9.9 4.3-.2 5.2-1.2 1-1 2.1-4.3 1.2-5.2s-4.3.2-5.2 1.2"/><path d="m52.9 52.9c-1 1-1.8 4.6-.9 5.5.9.9 7.4-5.6 6.5-6.5-1-.8-4.7 0-5.6 1"/><path d="m34.8 34.8c-1 1-2.1 4.3-1.2 5.2.9.9 4.3-.2 5.2-1.2 1-1 2.1-4.3 1.2-5.2s-4.2.3-5.2 1.2"/><path d="m40.9 40.9c-1 1-2.1 4.3-1.2 5.2s4.3-.1 5.3-1.1 2.1-4.3 1.2-5.2-4.3.2-5.3 1.1"/><path d="M29,29c-1,1-2.1,4.3-1.2,5.2S32,34,33,33c1-1,2.1-4.3,1.2-5.2S29.9,28,29,29z"/><path d="m29.1 52c-1.4 1.4-1 5.8 3.6 7 1.2.3 3.5-7.4 2.6-8.4-1.7-1.7-5.3.5-6.2 1.4"/><path d="m36.4 57.7c-3.5 3.5 2.4 5.7 4.7 3.4.9-.9 1.2-3.4.3-4.3-.9-1-4.1 0-5 .9"/><path d="m38.1 49c-1 1-2.1 5.1-1.2 6s5.2 0 6.2-1c1-1 1.5-4.8.6-5.7-.8-.9-4.6-.3-5.6.7"/><path d="m44.3 55.2c-1 1-1.8 4.7-.9 5.6 1.7 1.7 4.9.3 5.8-.6 1-1 1.5-4.9.6-5.8-.8-1-4.5-.2-5.5.8"/><path d="m32.2 43.1c-1 1-2.4 4.8-1.5 5.7.9.9 5.1-.1 6.1-1.1 1-1 1.8-4.7.9-5.6s-4.5 0-5.5 1"/><path d="m20.6 31.3c-1 1-1.4 3.7-.5 4.6.9.9 3.6.5 4.6-.5 1-1 2.1-4.3 1.2-5.2s-4.4.1-5.3 1.1"/><path d="m20.6 38.1c-.9.9.8 6.5 1.6 5.6.9-.9 2.4-4.7 1.5-5.6s-2.2-.9-3.1 0"/><path d="m24.3 45.3c-1.2 1.2-1.4 6.2 1.8 6.7 1.2.2 4.2-6.4 3.2-7.3-.8-.9-4.1-.2-5 .6"/><path d="m26.2 37.1c-1 1-1.8 4.7-.9 5.6.9.9 4.8.2 5.7-.8 1-1 1.6-4.7.7-5.6s-4.5-.2-5.5.8"/><path d="m52 29.1c1.4-1.4 5.8-1 7 3.6.3 1.2-7.4 3.5-8.4 2.6-1.7-1.7.5-5.3 1.4-6.2"/><path d="m57.7 36.4c3.5-3.5 5.7 2.3 3.4 4.7-.9.9-3.4 1.2-4.3.3-1-.9 0-4.1.9-5"/><path d="m49 38.1c1-1 5.1-2.1 6-1.2s0 5.2-1 6.2c-1 1-4.8 1.5-5.7.6-.9-.8-.3-4.6.7-5.6"/><path d="m55.2 44.3c1-1 4.7-1.8 5.6-.9 1.7 1.7.3 4.9-.6 5.8s-4.9 1.5-5.8.6c-1-.8-.2-4.5.8-5.5"/><path d="m43.1 32.2c1-1 4.8-2.4 5.7-1.5.9.9-.1 5.1-1.1 6.1s-4.7 1.8-5.6.9c-.9-.9 0-4.5 1-5.5"/><path d="m31.3 20.6c1-1 3.7-1.4 4.6-.5s.5 3.6-.5 4.6c-1 1-4.3 2.1-5.2 1.2-1-1 .1-4.4 1.1-5.3"/><path d="m38.1 20.6c.9-.9 6.5.8 5.6 1.7-.9.9-4.7 2.4-5.6 1.5s-.9-2.3 0-3.2"/><path d="m45.3 24.3c1.2-1.2 6.2-1.4 6.7 1.8.2 1.2-6.4 4.2-7.3 3.2-.9-.8-.2-4.1.6-5"/><path d="m37.1 26.2c1-1 4.7-1.8 5.6-.9s.2 4.8-.8 5.7c-1 1-4.7 1.6-5.6.7-.9-.8-.2-4.5.8-5.5"/></g><g fill="#84b234"><path d="m21.9 18.4c3.7 3.7 4.5 6.1 3.6 7-1 1-3.3.2-7-3.6s-6.5-10-6.5-10 6.2 2.9 9.9 6.6"/><path d="m25.7 31.5c3.3-2.7 3.8-4.8 2.7-6.1-1.1-1.3-3.4-1.2-6.7 1.4-3.3 2.7-5.3 8.2-5.3 8.2s6-.8 9.3-3.5"/><path d="m21.4 24.2c4.7 0 6.9 1.2 7.2 2.7.4 1.5-1.3 2.8-6 2.8-4.6.1-10.8-2.7-10.8-2.7s4.9-2.8 9.6-2.8"/><path d="m20.9 20.4c4.8 1.3 6.7 3 6.6 4.5-.1 1.5-2.1 2.1-6.9.8-4.8-1.3-10.4-5.5-10.4-5.5s5.9-1.1 10.7.2"/><path d="m31.5 25.7c-2.7 3.3-4.8 3.8-6.1 2.7-1.3-1.1-1.2-3.4 1.4-6.7 2.7-3.3 8.2-5.3 8.2-5.3s-.8 6-3.5 9.3"/><path d="m24.2 21.4c0 4.7 1.2 6.9 2.7 7.2 1.5.4 2.8-1.3 2.8-6 0-4.7-2.7-10.9-2.7-10.9s-2.8 5-2.8 9.7"/><path d="m20.4 20.9c1.3 4.8 3 6.7 4.5 6.6 1.5-.1 2.1-2.1.8-6.9-1.3-4.8-5.5-10.4-5.5-10.4s-1.1 5.9.2 10.7"/></g><path d="m29.8 22.5c-1.1-2.2-3.3-3.8-3.3-3.8s-.8 1.7-1.2 3.6c-2.1-.9-5.6-2.7-5.6-2.7s1.8 3.5 2.7 5.6c-2 .4-3.6 1.2-3.6 1.2s1.7 2.2 3.8 3.3c-1.6 2.3-2.5 5.5-2.5 5.5s6.2-1.8 9.8-5.4c3.6-3.6 5.4-9.8 5.4-9.8s-3.2.9-5.5 2.5" fill="#8cc63e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f34e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f34e.svg
index e3ef5ec..1353d5d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f34e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f34e.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill-rule="evenodd" fill="#83bf4f" d="m31.434 4.901c1.127 2.467-.53 10.864-.53 10.864s-7.52-4.425-8.646-6.89c-1.128-2.466.012-5.354 2.545-6.452 2.536-1.097 5.504.013 6.631 2.478"/><path fill="#947151" d="m33.31 16.304h-2.625c0-4.258 2.395-11.594 12.02-11.594v2.554c-8.751 0-9.395 8.188-9.395 9.04"/><path fill-rule="evenodd" fill="#ef4d3c" d="M32,15.839C24.742,8.395,3,8.071,3,29.318
- C3,42.748,18.782,62,25.668,62c3.125,0,4.25-1.953,6.063-1.953c1.844,0,2.438,1.95,6.436,1.95C45.059,61.997,61,42.81,61,29.318
- C61,8.071,39.258,8.395,32,15.839z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.4 4.9c1.1 2.5-.5 10.9-.5 10.9s-7.5-4.4-8.6-6.9c-1.1-2.5 0-5.4 2.5-6.5 2.5-1.1 5.5 0 6.6 2.5" fill="#83bf4f"/><path d="m33.3 16.3h-2.6c0-4.3 2.4-11.6 12-11.6v2.6c-8.7 0-9.4 8.2-9.4 9" fill="#947151"/><path d="M32,15.8C24.7,8.4,3,8.1,3,29.3C3,42.7,18.8,62,25.7,62c3.1,0,4.2-2,6.1-2c1.8,0,2.4,2,6.4,2
+ C45.1,62,61,42.8,61,29.3C61,8.1,39.3,8.4,32,15.8z" fill="#ef4d3c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f34f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f34f.svg
index 6ee1df3..27561bc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f34f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f34f.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill-rule="evenodd" fill="#64892f" d="m31.432 4.901c1.128 2.467-.529 10.864-.529 10.864s-7.52-4.425-8.646-6.89c-1.127-2.466.014-5.354 2.545-6.452 2.536-1.097 5.505.013 6.63 2.478"/><path fill="#947151" d="m33.31 16.304h-2.625c0-4.258 2.394-11.594 12.02-11.594v2.554c-8.752 0-9.395 8.188-9.395 9.04"/><path fill-rule="evenodd" fill="#8cc63e" d="m32 15.839c-7.258-7.444-29-7.768-29 13.479 0 13.43 15.781 32.683 22.667 32.683 3.125 0 4.25-1.953 6.06-1.953 1.844 0 2.438 1.949 6.437 1.949 6.891 0 22.833-19.19 22.833-32.679 0-21.247-21.742-20.923-29-13.479"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.4 4.9c1.1 2.5-.5 10.9-.5 10.9s-7.5-4.4-8.6-6.9c-1.1-2.5 0-5.4 2.5-6.5 2.5-1.1 5.5 0 6.6 2.5" fill="#64892f"/><path d="m33.3 16.3h-2.6c0-4.3 2.4-11.6 12-11.6v2.6c-8.7 0-9.4 8.2-9.4 9" fill="#947151"/><path d="M32,15.8C24.7,8.4,3,8.1,3,29.3C3,42.7,18.8,62,25.7,62c3.1,0,4.2-2,6.1-2c1.8,0,2.4,1.9,6.4,1.9
+ C45.1,62,61,42.8,61,29.3C61,8.1,39.3,8.4,32,15.8z" fill="#8cc63e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f350.svg b/build/js/jsxc/lib/emojione/assets/svg/1f350.svg
index 1def22b..467a86e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f350.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f350.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ced74d" d="m47.574 27.752c-3.767-6.16-3.546-16.682-13.394-16.692-9.862-.01-8.874 10.532-12.615 16.692-2.73 4.499-8.233 10.616-8.224 17.23.028 22.69 42.52 22.69 42.492 0-.008-6.622-5.5-12.721-8.259-17.23"/><path fill="#947151" d="m35.17 2.077c-.124-.271-1.145.245-1.046.526 1.666 4.72-.376 8.33-.863 8.816-.683.682.897 1.338 1.608.351.149-.205 2.455-4.986.301-9.693"/><path fill-rule="evenodd" fill="#8cc63e" d="M21.167,5.234C16.591,10.719,9,13.078,9,13.078
- s15.468,3.828,23.642-4.091c2.309-2.238,1.922-6.021,1.922-6.021S25.803-0.32,21.167,5.234z"/><path fill="#7fb539" d="m34.563 2.966c-1.055.008-2.168.135-3.305.363-1.138.246-2.293.626-3.409 1.105-2.25.968-4.211 2.324-6.152 3.555-1.933 1.253-3.937 2.397-6.085 3.261-2.146.867-4.387 1.426-6.612 1.828 1.08-.066 2.195-.228 3.322-.443 1.129-.239 2.272-.555 3.406-.958 2.277-.799 4.422-2.01 6.387-3.268 1.969-1.267 3.841-2.576 5.918-3.578 2.071-1.01 4.331-1.589 6.53-1.865"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.6 27.8c-3.8-6.2-3.5-16.7-13.4-16.7-9.9 0-8.9 10.5-12.6 16.7-2.7 4.5-8.2 10.6-8.2 17.2 0 22.7 42.5 22.7 42.5 0-.1-6.6-5.6-12.7-8.3-17.2" fill="#ced74d"/><path d="m35.2 2.1c-.1-.3-1.1.2-1 .5 1.7 4.7-.4 8.3-.9 8.8-.7.7.9 1.3 1.6.4.1-.2 2.4-5 .3-9.7" fill="#947151"/><path d="M21.2,5.2C16.6,10.7,9,13.1,9,13.1S24.5,16.9,32.6,9c2.3-2.2,1.9-6,1.9-6S25.8-0.3,21.2,5.2z" fill="#8cc63e"/><path d="m34.6 3c-1.1 0-2.2.1-3.3.4-1.2.2-2.3.6-3.5 1-2.2 1-4.2 2.3-6.2 3.6-1.9 1.3-3.9 2.4-6.1 3.3-2.1.9-4.4 1.4-6.6 1.8 1.1-.1 2.2-.2 3.3-.4 1.1-.2 2.3-.6 3.4-1 2.3-.8 4.4-2 6.4-3.3 2-1.3 3.8-2.6 5.9-3.6 2.2-1 4.5-1.6 6.7-1.8" fill="#7fb539"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f351.svg b/build/js/jsxc/lib/emojione/assets/svg/1f351.svg
index cb6993a..574969a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f351.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f351.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8e6244" d="m34.37 9.09c0-2.301-3.408-2.735-3.408-.487 0 2.635-1.361 3.594-1.361 5.01 0 1.767 4.02 2.084 4.02.204-.001-1.863.752-1.602.752-4.727"/><path fill="#a87451" d="m33.09 8.8c2.766 0-2.296-3.595-2.296-.279 0 2.635-1.89 3.872-1.068 5.59 1.787-2.244.454-5.311 3.364-5.311"/><path fill="#ff9463" d="m4.45 32.674c-.002-16.204 13.203-26.1 27.24-18.526 14.281-7.204 30.3 2.322 30.31 18.525 0 14.55-7.967 22.693-17.972 26.416-3.616 1.346-10.378 2.978-14.246 2.909-2.818-.051-2.749-1.469-5.444-2.27-10.885-3.231-19.888-11.587-19.888-27.05"/><path fill="#8cc63e" d="m32.433 8.34c-.114 0-.229-.062-.309-.184-1.995-2.979-3.935-2.295-3.935-2.295l-.205-1.017c0 0 2.44-.838 4.759 2.627.148.22.129.552-.043.741-.077.086-.172.128-.267.128"/><g fill-rule="evenodd"><path fill="#7fb539" d="m24.294 2.056c-9.976-.952-20.248 10.541-20.248 10.541s6.98-2.646 13.05-1.371c6.144 1.29 11.451-6.01 11.451-6.01s-1.43-2.892-4.248-3.162"/><path fill="#8cc63e" d="M14.998,10.015C9.804,17.014,2,21.033,2,21.033
- s14.858,1.539,23.912-8.849c2.556-2.935,2.63-7.128,2.63-7.128S20.263,2.924,14.998,10.015z"/></g><path fill="#7fb539" d="m28.542 5.056c-1.046.198-2.164.541-3.316 1-1.157.481-2.348 1.116-3.511 1.857-2.345 1.494-4.451 3.373-6.522 5.107-2.067 1.758-4.189 3.407-6.424 4.766-2.23 1.361-4.516 2.393-6.769 3.245 1.078-.268 2.201-.65 3.343-1.095 1.147-.472 2.318-1.032 3.49-1.689 2.352-1.309 4.621-3.055 6.721-4.827 2.103-1.78 4.116-3.591 6.293-5.092 2.174-1.51 4.483-2.569 6.695-3.274"/><path fill="#d97448" d="m40.48 33.873c.423 3.576.253 7.13-.701 10.508-.988 3.367-2.833 6.521-5.847 9.205 4.188-1.578 7.253-4.689 8.916-8.209 1.718-3.533 2.172-7.488 1.707-11.41-.485-3.926-1.879-7.88-4.269-11.54-2.341-3.618-5.777-7.125-10.292-9.112 3.491 2.973 5.726 6.386 7.404 9.872 1.623 3.507 2.65 7.107 3.082 10.686"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34.4 9.1c0-2.3-3.4-2.7-3.4-.5 0 2.6-1.4 3.6-1.4 5 0 1.8 4 2.1 4 .2 0-1.8.8-1.6.8-4.7" fill="#8e6244"/><path d="m33.1 8.8c2.8 0-2.3-3.6-2.3-.3 0 2.6-1.9 3.9-1.1 5.6 1.8-2.2.5-5.3 3.4-5.3" fill="#a87451"/><path d="m4.4 32.7c0-16.2 13.2-26.1 27.2-18.5 14.4-7.3 30.4 2.3 30.4 18.5 0 14.5-8 22.7-18 26.4-3.6 1.3-10.4 3-14.2 2.9-2.8-.1-2.7-1.5-5.4-2.3-10.9-3.2-20-11.6-20-27" fill="#ff9463"/><path d="m32.4 8.3c-.1 0-.2-.1-.3-.2-2-3-3.9-2.3-3.9-2.3l-.2-1c0 0 2.4-.8 4.8 2.6.1.2.1.6 0 .7-.2.2-.3.2-.4.2" fill="#8cc63e"/><path d="M24.3,2.1C14.3,1.1,4,12.6,4,12.6s7-2.6,13-1.4c6.1,1.3,11.5-6,11.5-6S27.1,2.3,24.3,2.1z" fill="#7fb539"/><path d="M15,10C9.8,17,2,21,2,21s14.9,1.5,23.9-8.8c2.6-2.9,2.6-7.1,2.6-7.1S20.3,2.9,15,10z" fill="#8cc63e"/><path d="m28.5 5.1c-1 .2-2.2.5-3.3 1-1.2.5-2.3 1.1-3.5 1.9-2.3 1.5-4.5 3.4-6.5 5.1-2.1 1.8-4.2 3.4-6.4 4.8-2.3 1.2-4.5 2.3-6.8 3.1 1.1-.3 2.2-.6 3.3-1.1 1.1-.5 2.3-1 3.5-1.7 2.4-1.3 4.6-3.1 6.7-4.8 2.1-1.8 4.1-3.6 6.3-5.1 2.2-1.5 4.5-2.5 6.7-3.2" fill="#7fb539"/><path d="m40.5 33.9c.4 3.6.3 7.1-.7 10.5-1 3.4-2.8 6.5-5.8 9.2 4.2-1.6 7.3-4.7 8.9-8.2 1.7-3.5 2.2-7.5 1.7-11.4-.5-3.9-1.9-7.9-4.3-11.5-2.3-3.6-5.8-7.1-10.3-9.1 3.5 3 5.7 6.4 7.4 9.9 1.6 3.4 2.6 7 3.1 10.6" fill="#d97448"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f352.svg b/build/js/jsxc/lib/emojione/assets/svg/1f352.svg
index a70d06b..d43aca6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f352.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f352.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#d33b23" d="m61.04 39.21c3.747 10.468-4.113 18.43-12.85 19.867-8.734 1.438-18.36-3.579-18.79-14.661-.567-14.688 10.08-12.955 13.93-13.588 6.292-1.036 12.927-4.978 17.71 8.382"/><path fill="none" stroke="#83bf4f" stroke-width="2" stroke-miterlimit="10" d="m45.08 33.988c-2.091-2.36-10.558-9.956-7.661-25.04"/><path fill="#ef4d3c" d="m38.542 42.16c2.175 12.387-8.14 19.84-18.18 19.84-10.04 0-19.83-7.377-18.18-19.84 2.19-16.52 13.759-12.625 18.18-12.625 7.231 0 15.404-3.186 18.18 12.625"/><path fill="none" stroke="#9fc427" stroke-width="2" stroke-miterlimit="10" d="m20.362 33.05c0-4.091 5.953-25.487 34.11-30.05"/></g><path fill="#ce0f00" d="m13.252 31.576c2.254.337 4.364.67 6.507.902 1.068.12 2.134.203 3.212.27 1.08.057 2.163.066 3.314.086-.994.586-2.12.918-3.255 1.083-1.139.175-2.298.178-3.436.052-1.138-.129-2.26-.378-3.333-.77-1.069-.384-2.118-.883-3.01-1.623"/><path fill="#a51000" d="m38.453 34.794l5.64-1.309c.916-.223 1.82-.469 2.734-.725l2.795-.872c-.622.818-1.449 1.455-2.338 1.949-.889.504-1.851.863-2.835 1.104-.985.237-1.994.366-3.01.353-1.01-.006-2.031-.12-2.99-.5"/><path fill-rule="evenodd" fill="#64892f" d="m46.32 7.097c-3.82 8.894 9.326 21.2 9.326 21.2s-1.321-9.304 2.224-17.618c2.199-5.162-3.397-8.677-3.397-8.677s-6.236.636-8.153 5.097"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61 39.2c3.7 10.5-4.1 18.4-12.8 19.9-8.7 1.4-18.4-3.6-18.8-14.7-.6-14.7 10.1-13 13.9-13.6 6.3-1 13-5 17.7 8.4" fill="#d33b23"/><path d="M45.1,34C43,31.6,34.5,24,37.4,9" fill="none" stroke="#83bf4f" stroke-width="2" stroke-miterlimit="10"/><path d="m38.5 42.2c2.2 12.3-8.1 19.8-18.1 19.8-10 0-19.8-7.4-18.2-19.8 2.2-16.5 13.8-12.6 18.2-12.6 7.2-.1 15.4-3.3 18.1 12.6" fill="#ef4d3c"/><path d="m20.4 33c0-4.1 6-25.5 34.1-30" fill="none" stroke="#9fc427" stroke-width="2" stroke-miterlimit="10"/><path d="m13.3 31.6c2.3.3 4.4.7 6.5.9 1.1.1 2.1.2 3.2.3 1.1.1 2.2.1 3.3.1-1 .6-2.1.9-3.3 1.1-1.1.2-2.3.2-3.4.1-1.1-.1-2.3-.4-3.3-.8-1.1-.5-2.2-1-3-1.7" fill="#ce0f00"/><path d="m38.5 34.8l5.6-1.3c.9-.2 1.8-.5 2.7-.7l2.8-.9c-.6.8-1.4 1.5-2.3 1.9-.9.5-1.9.9-2.8 1.1-1 .2-2 .4-3 .4-1.1 0-2.1-.1-3-.5" fill="#a51000"/><path d="m46.3 7.1c-3.8 8.9 9.3 21.2 9.3 21.2s-1.3-9.3 2.2-17.6c2.3-5.2-3.3-8.7-3.3-8.7s-6.3.6-8.2 5.1" fill="#64892f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f353.svg b/build/js/jsxc/lib/emojione/assets/svg/1f353.svg
index 5a7561c..709e0db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f353.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f353.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8cc63e" d="m23.549 13.07c1.415-3.865 12.156-11.07 12.156-11.07s3.374 12.875 1.96 16.736c-1.417 3.862-5.726 5.724-9.623 4.16-3.9-1.567-5.912-5.966-4.493-9.826"/><path fill="#64892f" d="m17.16 20.809c-1.718-3.74.805-16.464.805-16.464s11.449 6.705 13.165 10.44c1.716 3.737-.021 8.116-3.877 9.777-3.858 1.665-8.38-.017-10.09-3.753"/><path fill="#8cc63e" d="m20.722 17.227c-3.724-1.726-16.388.81-16.388.81s6.674 11.499 10.392 13.226c3.722 1.724 8.08-.019 9.732-3.895 1.655-3.879-.017-8.419-3.736-10.141"/><path fill="#64892f" d="m13.02 23.647c-3.846 1.425-11.02 12.214-11.02 12.214s12.814 3.392 16.657 1.971c3.847-1.426 5.7-5.754 4.145-9.667-1.561-3.92-5.943-5.941-9.785-4.518"/><path fill="#ef4d3c" d="m51.53 16.714c11.496 11.551 12.812 36.72 7.386 42.17-5.48 5.506-30.409 4.123-41.958-7.479-8.505-8.545-4.522-21.428 4.332-30.32 8.828-8.869 21.735-12.917 30.24-4.371"/><g fill="#fff0f0"><path d="m40.748 15.718c-.53 0-.989.187-1.252.563-.533.763-.061 2.02 1.058 2.799.568.397 1.193.597 1.741.597.53 0 .988-.187 1.25-.563.535-.763.062-2.02-1.056-2.799-.568-.398-1.193-.597-1.741-.597"/><path d="m44.39 33.24c-.333 0-.638.099-.875.304-.703.61-.548 1.941.346 2.973.593.683 1.363 1.063 2.02 1.063.333 0 .638-.098.874-.304.704-.61.548-1.94-.346-2.972-.594-.684-1.363-1.064-2.02-1.064"/><path d="m35.762 24.593c-.322 0-.618.093-.851.289-.714.6-.582 1.934.297 2.979.591.702 1.367 1.095 2.029 1.095.323 0 .618-.093.852-.289.713-.599.579-1.932-.297-2.979-.591-.703-1.368-1.095-2.03-1.095"/><path d="m50.5 25.582c-.209 0-.41.047-.592.146-.817.448-.949 1.781-.295 2.979.509.93 1.343 1.505 2.073 1.505.21 0 .411-.047.593-.147.818-.447.949-1.781.295-2.979-.508-.93-1.343-1.504-2.074-1.504"/><path d="m55.08 38.803c-.1 0-.199.013-.298.038-.901.234-1.354 1.496-1.01 2.816.307 1.176 1.143 2 1.959 2 .1 0 .199-.013.297-.038.902-.236 1.354-1.496 1.01-2.817-.308-1.175-1.142-2-1.959-2"/><path d="m53.904 51.21c-.348 0-.663.104-.903.322-.689.623-.508 1.953.407 2.965.597.658 1.357 1.021 2.01 1.021.348 0 .663-.104.904-.321.69-.626.509-1.953-.408-2.965-.596-.659-1.356-1.022-2.01-1.022"/><path d="m31.727 49.687c-.55 0-1.022.197-1.285.589-.519.773-.02 2.02 1.114 2.776.56.375 1.17.563 1.707.563.55 0 1.022-.197 1.285-.589.518-.772.021-2.02-1.114-2.776-.56-.376-1.17-.563-1.707-.563"/><path d="m20.18 46.39c-.551 0-1.023.197-1.286.589-.518.773-.02 2.02 1.114 2.776.561.375 1.17.563 1.707.563.55 0 1.022-.197 1.285-.589.517-.772.02-2.02-1.115-2.776-.559-.376-1.169-.563-1.705-.563"/><path d="m41.636 54.5c-.784 0-1.439.319-1.672.894-.347.863.396 1.979 1.662 2.488.425.172.854.253 1.252.253.783 0 1.438-.319 1.67-.894.348-.863-.395-1.979-1.661-2.488-.425-.171-.855-.253-1.251-.253"/><path d="m43.854 44.524c-.606 0-1.122.224-1.382.66-.477.801.088 2.02 1.261 2.714.533.316 1.101.472 1.605.472.605 0 1.122-.224 1.382-.66.476-.801-.089-2.02-1.262-2.714-.532-.317-1.099-.472-1.604-.472"/><path d="m33.19 37.43c-.457 0-.858.153-1.118.466-.595.718-.227 2.01.824 2.877.592.49 1.274.744 1.863.744.457 0 .857-.152 1.117-.466.595-.718.227-2.01-.824-2.877-.592-.49-1.274-.744-1.862-.744"/><path d="m24.535 23.897c-.378 0-.717.117-.965.36-.664.654-.427 1.973.53 2.945.6.609 1.34.938 1.973.938.378 0 .717-.117.965-.361.664-.653.427-1.973-.53-2.944-.6-.61-1.341-.938-1.973-.938"/><path d="m21.668 34.74c-.477 0-.893.161-1.154.491-.578.729-.181 2.01.889 2.856.587.466 1.254.704 1.832.704.476 0 .892-.161 1.152-.491.577-.729.181-2.01-.889-2.857-.585-.464-1.251-.703-1.83-.703"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m23.5 13.1c1.5-3.9 12.2-11.1 12.2-11.1s3.4 12.9 2 16.7c-1.4 3.9-5.7 5.7-9.6 4.2-4-1.6-6-6-4.6-9.8" fill="#8cc63e"/><path d="m17.2 20.8c-1.8-3.7.8-16.5.8-16.5s11.4 6.7 13.1 10.5c1.7 3.7 0 8.1-3.9 9.8-3.8 1.6-8.3-.1-10-3.8" fill="#64892f"/><path d="m20.7 17.2c-3.7-1.7-16.4.8-16.4.8s6.7 11.5 10.4 13.3c3.7 1.7 8.1 0 9.7-3.9 1.7-3.9 0-8.5-3.7-10.2" fill="#8cc63e"/><path d="m13 23.6c-3.8 1.5-11 12.3-11 12.3s12.8 3.4 16.7 2c3.8-1.4 5.7-5.8 4.1-9.7-1.6-4-5.9-6-9.8-4.6" fill="#64892f"/><path d="m51.5 16.7c11.5 11.6 12.8 36.7 7.4 42.2-5.5 5.5-30.4 4.1-42-7.5-8.5-8.5-4.5-21.4 4.3-30.3 8.9-8.9 21.8-12.9 30.3-4.4" fill="#ef4d3c"/><g fill="#fff0f0"><path d="m40.7 15.7c-.5 0-1 .2-1.3.6-.5.8-.1 2 1.1 2.8.6.4 1.2.6 1.7.6.5 0 1-.2 1.2-.6.5-.8.1-2-1.1-2.8-.4-.4-1-.6-1.6-.6"/><path d="m44.4 33.2c-.3 0-.6.1-.9.3-.7.6-.5 1.9.3 3 .6.7 1.4 1.1 2 1.1.3 0 .6-.1.9-.3.7-.6.5-1.9-.3-3-.6-.7-1.4-1.1-2-1.1"/><path d="m35.8 24.6c-.3 0-.6.1-.9.3-.7.6-.6 1.9.3 3 .6.7 1.4 1.1 2 1.1.3 0 .6-.1.9-.3.7-.6.6-1.9-.3-3-.6-.7-1.4-1.1-2-1.1"/><path d="m50.5 25.6c-.2 0-.4 0-.6.1-.8.4-.9 1.8-.3 3 .5.9 1.3 1.5 2.1 1.5.2 0 .4 0 .6-.1.8-.4.9-1.8.3-3-.5-.9-1.4-1.5-2.1-1.5"/><path d="m55.1 38.8c-.1 0-.2 0-.3 0-.9.2-1.4 1.5-1 2.8.3 1.2 1.1 2 2 2 .1 0 .2 0 .3 0 .9-.2 1.4-1.5 1-2.8-.4-1.2-1.2-2-2-2"/><path d="m53.9 51.2c-.3 0-.7.1-.9.3-.7.6-.5 2 .4 3 .6.7 1.4 1 2 1 .3 0 .7-.1.9-.3.7-.6.5-2-.4-3-.6-.6-1.3-1-2-1"/><path d="m31.7 49.7c-.5 0-1 .2-1.3.6-.5.8 0 2 1.1 2.8.6.4 1.2.6 1.7.6.5 0 1-.2 1.3-.6.5-.8 0-2-1.1-2.8-.5-.4-1.1-.6-1.7-.6"/><path d="m20.2 46.4c-.6 0-1 .2-1.3.6-.5.8 0 2 1.1 2.8.6.4 1.2.6 1.7.6.5 0 1-.2 1.3-.6.5-.8 0-2-1.1-2.8-.6-.4-1.2-.6-1.7-.6"/><path d="m41.6 54.5c-.8 0-1.4.3-1.7.9-.3.9.4 2 1.7 2.5.4.2.9.3 1.3.3.8 0 1.4-.3 1.7-.9.3-.9-.4-2-1.7-2.5-.4-.2-.9-.3-1.3-.3"/><path d="m43.9 44.5c-.6 0-1.1.2-1.4.7-.5.8.1 2 1.3 2.7.5.3 1.1.5 1.6.5.6 0 1.1-.2 1.4-.7.5-.8-.1-2-1.3-2.7-.6-.3-1.1-.5-1.6-.5"/><path d="m33.2 37.4c-.5 0-.9.2-1.1.5-.6.7-.2 2 .8 2.9.6.5 1.3.7 1.9.7.5 0 .9-.2 1.1-.5.6-.7.2-2-.8-2.9-.6-.4-1.3-.7-1.9-.7"/><path d="m24.5 23.9c-.4 0-.7.1-1 .4-.7.7-.4 2 .5 2.9.6.6 1.3.9 2 .9.4 0 .7-.1 1-.4.7-.7.4-2-.5-2.9-.6-.6-1.3-.9-2-.9"/><path d="m21.7 34.7c-.5 0-.9.2-1.2.5-.6.7-.2 2 .9 2.9.6.5 1.3.7 1.8.7.5 0 .9-.2 1.2-.5.6-.7.2-2-.9-2.9-.6-.4-1.3-.7-1.8-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f354.svg b/build/js/jsxc/lib/emojione/assets/svg/1f354.svg
index 4ccea17..3460875 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f354.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f354.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e7a74f" d="m61.999 44.46c0 12-10.864 17.543-29.814 17.543-18.951 0-29.816-5.539-29.816-17.543 0-17.545 59.63-17.545 59.63 0"/><path fill="#ba8443" d="m61.84 36.21c0 12.01-10.807 17.545-29.654 17.545-18.849 0-29.656-5.539-29.656-17.545 0-17.544 59.31-17.544 59.31 0"/><path fill="#826046" d="m2.369 36.52c0-4.964 5.897-11.94 29.816-11.94s29.814 6.976 29.814 11.94c0 9.07-8.38 15.705-29.814 15.705-21.435 0-29.816-6.633-29.816-15.705"/><path fill="#68472c" d="m3.03 31.29c0-4.965 5.766-11.94 29.16-11.94 23.393 0 29.16 6.976 29.16 11.94 0 9.07-8.195 15.706-29.16 15.706s-29.16-6.635-29.16-15.706"/><path fill="#ef4d3c" d="m3.153 24.841c1.448-3.02 5.106-3.195 17.15 1.946 12.04 5.141 14.322 7.847 12.875 10.871-2.647 5.531-9.679 9.6-20.471 4.992s-12.203-12.278-9.554-17.809"/><path fill="#d33b23" d="m4.173 21.391c1.448-3.02 5.106-3.196 17.15 1.946 12.04 5.141 14.322 7.847 12.874 10.871-2.648 5.53-9.678 9.601-20.471 4.992-10.792-4.607-12.202-12.279-9.553-17.809"/><path fill="#ef4d3c" d="m29.25 34.523c-.793-3.233 2-5.466 14.879-8.284 12.876-2.818 16.428-1.975 17.221 1.259 1.452 5.912-1.519 13.175-13.06 15.701-11.538 2.526-17.59-2.763-19.04-8.676"/><path fill="#d33b23" d="m28 31.26c-.794-3.233 2-5.467 14.88-8.284 12.873-2.818 16.426-1.975 17.22 1.259 1.451 5.912-1.519 13.175-13.06 15.701-11.538 2.524-17.591-2.764-19.04-8.676"/><path fill="#ffe62e" d="m9.678 30.924l20.07 19.19 19.512-19.19z"/><path fill="#8cc63e" d="m60.729 25.869c0 0 .856 3.393-.019 4.37-.779.871-3.343-.073-4.4.703-.952.698-.716 3.389-1.867 3.997-1.056.556-3.208-1.116-4.412-.646-1.12.438-1.512 3.118-2.745 3.475-1.164.335-2.959-1.708-4.21-1.452-1.193.243-2.02 2.827-3.277 2.992-1.213.158-2.691-2.121-3.957-2.041-1.224.078-2.393 2.529-3.657 2.529-1.263 0-2.432-2.451-3.656-2.529-1.265-.08-2.745 2.2-3.957 2.041-1.261-.165-2.084-2.749-3.277-2.992-1.251-.256-3.049 1.787-4.213 1.451-1.233-.355-1.626-3.036-2.746-3.475-1.204-.471-3.356 1.201-4.412.645-1.153-.608-.916-3.3-1.868-3.998-1.06-.776-3.622.167-4.402-.704-.874-.977-.015-4.368-.015-4.368l57.09.002"/><path fill="#e7a74f" d="m61.999 23.445c0 6.481-13.349 9.723-29.814 9.723-16.466 0-29.816-3.242-29.816-9.723 0-11.843 13.349-21.445 29.816-21.445 16.465 0 29.814 9.602 29.814 21.445"/><g fill="#ffc17a"><path d="m16.261 14.449l-1.514 1.5-1.514-1.5 1.514-1.5 1.514 1.5"/><path d="m23.725 11.984l-1.515 1.5-1.513-1.5 1.513-1.5 1.515 1.5"/><path d="m27.96 18.833l-1.514 1.5-1.513-1.5 1.513-1.5 1.514 1.5"/><path d="m33.19 13.449l-1 1-1.01-1 1.01-1 1 1"/><path d="m51.949 17.333l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m58.08 18.333l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m46.42 10.984l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m15.893 9.734l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m10.508 14.449l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m16.766 21.05l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m28.465 5.734l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m37.989 4.734l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m22.21 6.734l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m50.874 9.109l-1.01 1-1.01-1 1.01-1 1.01 1"/><path d="m40.01 21.673l-1.516 1.497-1.514-1.497 1.514-1.503 1.516 1.503"/><path d="m37.637 13.984l-1.517 1.5-1.511-1.5 1.511-1.5 1.517 1.5"/><path d="m43.22 8.234l-1.519 1.5-1.511-1.5 1.511-1.5 1.519 1.5"/><path d="m47.576 14.652l-1.516 1.498-1.511-1.498 1.511-1.5 1.516 1.5"/><path d="m53.968 12.484l-1.518 1.5-1.51-1.5 1.51-1.5 1.518 1.5"/><path d="m49.09 21.268l-1.513 1.5-1.517-1.5 1.517-1.5 1.513 1.5"/><path d="m12.526 18.673l-1.516 1.497-1.511-1.497 1.511-1.503 1.516 1.503"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 44.5c0 12-10.9 17.5-29.8 17.5-19 0-29.8-5.5-29.8-17.5 0-17.6 59.6-17.6 59.6 0" fill="#e7a74f"/><path d="m61.8 36.2c0 12-10.8 17.5-29.7 17.5-18.8 0-29.7-5.5-29.7-17.5.1-17.5 59.4-17.5 59.4 0" fill="#ba8443"/><path d="m2.4 36.5c0-5 5.9-11.9 29.8-11.9s29.8 7 29.8 11.9c0 9.1-8.4 15.7-29.8 15.7-21.4 0-29.8-6.6-29.8-15.7" fill="#826046"/><path d="M3,31.3c0-5,5.8-11.9,29.2-11.9c23.4,0,29.2,7,29.2,11.9c0,9.1-8.2,15.7-29.2,15.7S3,40.4,3,31.3z" fill="#68472c"/><path d="m3.2 24.8c1.4-3 5.1-3.2 17.1 1.9 12 5.1 14.3 7.8 12.9 10.9-2.6 5.5-9.7 9.6-20.5 5s-12.2-12.2-9.5-17.8" fill="#ef4d3c"/><path d="m4.2 21.4c1.4-3 5.1-3.2 17.1 1.9 12 5.1 14.3 7.8 12.9 10.9-2.6 5.5-9.7 9.6-20.5 5-10.8-4.6-12.2-12.3-9.5-17.8" fill="#d33b23"/><path d="m29.3 34.5c-.8-3.2 2-5.5 14.9-8.3s16.4-2 17.2 1.3c1.5 5.9-1.5 13.2-13.1 15.7-11.5 2.5-17.6-2.8-19-8.7" fill="#ef4d3c"/><path d="m28 31.3c-.8-3.2 2-5.5 14.9-8.3 12.9-2.8 16.4-2 17.2 1.3 1.5 5.9-1.5 13.2-13.1 15.7-11.5 2.5-17.5-2.8-19-8.7" fill="#d33b23"/><path fill="#ffe62e" d="m9.7 30.9l20 19.2 19.6-19.2z"/><path d="m60.7 25.9c0 0 .9 3.4 0 4.4-.8.9-3.3-.1-4.4.7-1 .7-.7 3.4-1.9 4-1.1.6-3.2-1.1-4.4-.6-1.1.4-1.5 3.1-2.7 3.5-1.2.3-3-1.7-4.2-1.5-1.2.2-2 2.8-3.3 3-1.2.2-2.7-2.1-4-2-1.2.1-2.4 2.5-3.7 2.5-1.3 0-2.4-2.5-3.7-2.5-1.3-.1-2.7 2.2-4 2-1.3-.2-2.1-2.7-3.3-3-1.3-.3-3 1.8-4.2 1.5-1.2-.4-1.6-3-2.7-3.5-1.2-.5-3.4 1.2-4.4.6-1.2-.6-.9-3.3-1.9-4-1.1-.8-3.6.2-4.4-.7-.9-1 0-4.4 0-4.4h57.2" fill="#8cc63e"/><path d="M62,23.4c0,6.5-13.3,9.7-29.8,9.7c-16.5,0-29.8-3.2-29.8-9.7C2.4,11.6,15.7,2,32.2,2C48.7,2,62,11.6,62,23.4z
+ " fill="#e7a74f"/><g fill="#ffc17a"><path d="m16.3 14.4l-1.6 1.5-1.5-1.5 1.5-1.5z"/><path d="m23.7 12l-1.5 1.5-1.5-1.5 1.5-1.5z"/><path d="m28 18.8l-1.6 1.5-1.5-1.5 1.5-1.5z"/><path d="m33.2 13.4l-1 1-1-1 1-1z"/><path d="m51.9 17.3l-1 1-1-1 1-1z"/><path d="m58.1 18.3l-1 1-1-1 1-1z"/><path d="m46.4 11l-1 1-1-1 1-1z"/><path d="m15.9 9.7l-1 1-1-1 1-1z"/><path d="m10.5 14.4l-1 1-1-1 1-1z"/><path d="m16.8 21.1l-1 1-1.1-1 1.1-1z"/><path d="m28.5 5.7l-1 1-1.1-1 1.1-1z"/><path d="m38 4.7l-1 1-1-1 1-1z"/><path d="m22.2 6.7l-1 1-1-1 1-1z"/><path d="m50.9 9.1l-1 1-1-1 1-1z"/><path d="m40 21.7l-1.5 1.5-1.5-1.5 1.5-1.5z"/><path d="m37.6 14l-1.5 1.5-1.5-1.5 1.5-1.5z"/><path d="m43.2 8.2l-1.5 1.5-1.5-1.5 1.5-1.5z"/><path d="m47.6 14.7l-1.5 1.5-1.6-1.5 1.6-1.5z"/><path d="m54 12.5l-1.5 1.5-1.6-1.5 1.6-1.5z"/><path d="m49.1 21.3l-1.5 1.5-1.5-1.5 1.5-1.5z"/><path d="m12.5 18.7l-1.5 1.5-1.5-1.5 1.5-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f355.svg b/build/js/jsxc/lib/emojione/assets/svg/1f355.svg
index 46c3e82..4bd17b7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f355.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f355.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f6da77" d="M62.252,47.064C62.169,22.736,41.517,2.083,17.089,2.004L2.255,62L62.252,47.064z"/><path fill="#860d16" d="m54.5 48.994l2.053-.354c-.974-19.04-14.589-38.929-41.04-40.918l-.341 2.028c20.35 2.538 36.782 18.967 39.32 39.24"/><path fill="#c98e52" d="m56.52 48.641l5.732-1.432c.001-24.439-20.77-45.21-45.31-45.21l-1.433 5.72c23.439 2.219 38.782 17.559 41.01 40.921"/><g fill="#83bf4f"><path d="m13.462 41.652c-1.661 0-3.219-.643-4.389-1.811-.481-.479-.482-1.26-.001-1.74.465-.467 1.279-.469 1.743 0 1.41 1.408 3.882 1.408 5.296 0 .705-.705 1.092-1.643 1.092-2.641 0-1-.388-1.939-1.093-2.643-.48-.48-.48-1.262-.001-1.74.463-.467 1.28-.465 1.745 0 1.169 1.168 1.815 2.725 1.816 4.381-.001 1.656-.646 3.213-1.815 4.381-1.172 1.171-2.732 1.813-4.393 1.813"/><path d="m38.569 21.899c.036.164.034.33-.004.493-.064.291-.242.537-.496.694-.251.158-.553.208-.843.142-.797-.185-1.618-.05-2.317.385-.694.433-1.18 1.109-1.363 1.904-.375 1.602.707 3.305 2.294 3.674.579.137.968.76.837 1.334-.139.602-.74.975-1.341.838-1.976-.459-3.538-2.035-3.979-4.02-.174-.773-.166-1.559.014-2.333.318-1.375 1.157-2.546 2.36-3.292 1.201-.752 2.626-.988 4-.668.414.1.746.431.836.845"/><path d="m43.918 50.881c-.155.029-.313.023-.465-.018-.274-.074-.503-.248-.644-.494-.139-.242-.178-.527-.104-.801.203-.744.1-1.523-.287-2.195-.385-.674-1.01-1.154-1.76-1.354-1.502-.408-3.154.553-3.557 2.037-.148.545-.751.891-1.295.746-.563-.15-.896-.732-.747-1.293.505-1.85 2.048-3.27 3.941-3.619.738-.137 1.483-.104 2.21.092 1.293.348 2.372 1.178 3.042 2.338.667 1.162.843 2.512.494 3.799-.105.391-.431.69-.828.762"/></g><g fill="#b21725"><path d="m37.12 36.2c1.391 4.094-.847 8.531-4.993 9.906-4.159 1.375-8.654-.828-10.05-4.93-1.396-4.092.843-8.531 4.995-9.908 4.156-1.373 8.648.835 10.05 4.932"/><path d="m49.562 36.959c.832 2.461-.509 5.127-3 5.955-2.502.824-5.204-.5-6.04-2.961-.834-2.463.511-5.129 3.01-5.957 2.49-.82 5.195.504 6.03 2.963"/><path d="m29.02 19.01c1.138 3.348-.694 6.979-4.085 8.104-3.4 1.127-7.08-.676-8.223-4.03-1.135-3.347.697-6.979 4.088-8.101 3.398-1.123 7.07.682 8.22 4.03"/><path d="m34.36 54.01l-9.69 2.414c-.865-2.551.895-5.699 3.531-6.367 3.196-.809 5.29 1.404 6.159 3.953"/><path d="m19.596 47.03c1.169 3.447-.715 7.182-4.207 8.342-3.508 1.16-7.292-.695-8.465-4.154-1.17-3.445.713-7.18 4.204-8.342 3.498-1.152 7.285.707 8.468 4.154"/></g><path fill="#e0a763" d="m15.515 7.722c5.298.089 10.634 1.081 15.642 3.05 5.01 1.948 9.661 4.937 13.514 8.751 3.833 3.834 6.841 8.47 8.805 13.479 1.984 5 2.986 10.34 3.075 15.639-.919-5.217-2.329-10.303-4.511-15.02-2.184-4.71-5.111-9.05-8.779-12.677-3.639-3.654-7.994-6.566-12.711-8.736-4.729-2.17-9.817-3.568-15.03-4.482"/><g fill="#ffab41"><path transform="matrix(.7071-.7071.7071.7071-3.995 17.255)" d="m17.417 12.04h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-4.151 28.02)" d="m30.339 17.608h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-14.316 18.317)" d="m13.539 25.02h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-16.314 24.782)" d="m20.343 30.67h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-11.316 37.412)" d="m38.09 30.951h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-17.938 49.725)" d="m49.639 45.1h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-25.21 28.389)" d="m20.248 43.22h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-29.948 31.468)" d="m21.597 50.47h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-39.29 21.543)" d="m4.946 56.785h2.828v2.828h-2.828z"/><path transform="matrix(.7071-.7071.7071.7071-7.738 15.985)" d="m14.366 16.272h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-11.49 28.04)" d="m27.04 26.826h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-7.583 37.572)" d="m40.501 26.879h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-21.21 21.17)" d="m13.892 35.13h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-27.15 18.624)" d="m7.848 41.02h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-36.618 20.616)" d="m5.516 53.45h2.121v2.121h-2.121z"/><path transform="matrix(.7072-.707.707.7072-33.386 29.893)" d="m18.339 54.2h2.122v2.122h-2.122z"/><path transform="matrix(.7071-.7071.7071.7071-24.729 36.962)" d="m31.19 47.27h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-24.687 42.2)" d="m37.534 49.839h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-18.19 46.37)" d="m45.821 44.09h2.121v2.121h-2.121z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62.3 47.1c-.1-24.4-20.8-45-45.2-45.1l-14.8 60 60-14.9" fill="#f6da77"/><path d="m54.5 49l2.1-.4c-1-19-14.6-38.9-41-40.9l-.3 2c20.2 2.6 36.7 19 39.2 39.3" fill="#860d16"/><path d="M56.5,48.6l5.7-1.4C62.3,22.8,41.5,2,16.9,2l-1.4,5.7C39,9.9,54.3,25.3,56.5,48.6z" fill="#c98e52"/><g fill="#83bf4f"><path d="m13.5 41.7c-1.7 0-3.2-.6-4.4-1.8-.5-.5-.5-1.3 0-1.7.5-.5 1.3-.5 1.7 0 1.4 1.4 3.9 1.4 5.3 0 .7-.7 1.1-1.6 1.1-2.6 0-1-.4-1.9-1.1-2.6-.5-.5-.5-1.3 0-1.7.5-.5 1.3-.5 1.7 0 1.2 1.2 1.8 2.7 1.8 4.4 0 1.7-.6 3.2-1.8 4.4-1.1.9-2.7 1.6-4.3 1.6"/><path d="m38.6 21.9c0 .2 0 .3 0 .5-.1.3-.2.5-.5.7-.3.2-.6.2-.8.1-.8-.2-1.6 0-2.3.4-.7.4-1.2 1.1-1.4 1.9-.4 1.6.7 3.3 2.3 3.7.6.1 1 .8.8 1.3-.1.6-.7 1-1.3.8-2-.5-3.5-2-4-4-.2-.8-.2-1.6 0-2.3.3-1.4 1.2-2.5 2.4-3.3 1.2-.8 2.6-1 4-.7.3.2.7.5.8.9"/><path d="m43.9 50.9c-.2 0-.3 0-.5 0-.3-.1-.5-.2-.6-.5-.1-.2-.2-.5-.1-.8.2-.7.1-1.5-.3-2.2-.4-.7-1-1.2-1.8-1.4-1.5-.4-3.2.6-3.6 2-.1.5-.8.9-1.3.7-.6-.2-.9-.7-.7-1.3.5-1.8 2-3.3 3.9-3.6.7-.1 1.5-.1 2.2.1 1.3.3 2.4 1.2 3 2.3.7 1.2.8 2.5.5 3.8 0 .5-.3.8-.7.9"/></g><g fill="#b21725"><path d="m37.1 36.2c1.4 4.1-.8 8.5-5 9.9-4.2 1.4-8.7-.8-10-4.9-1.4-4.1.8-8.5 5-9.9 4.1-1.4 8.6.8 10 4.9"/><path d="m49.6 37c.8 2.5-.5 5.1-3 6-2.5.8-5.2-.5-6-3-.8-2.5.5-5.1 3-6 2.4-.8 5.1.5 6 3"/><path d="m29 19c1.1 3.3-.7 7-4.1 8.1-3.4 1.1-7.1-.7-8.2-4-1.1-3.3.7-7 4.1-8.1 3.4-1.1 7.1.7 8.2 4"/><path d="m34.4 54l-9.7 2.4c-.9-2.6.9-5.7 3.5-6.4 3.2-.8 5.3 1.5 6.2 4"/><path d="m19.6 47c1.2 3.4-.7 7.2-4.2 8.3-3.5 1.2-7.3-.7-8.5-4.2-1.2-3.4.7-7.2 4.2-8.3 3.5-1.1 7.3.8 8.5 4.2"/></g><path d="m15.5 7.7c5.3.1 10.6 1.1 15.6 3.1 5 1.9 9.7 4.9 13.5 8.8 3.8 3.8 6.8 8.5 8.8 13.5 2 5 3 10.3 3.1 15.6-.9-5.2-2.3-10.3-4.5-15-2.2-4.7-5.1-9.1-8.8-12.7-3.6-3.7-8-6.6-12.7-8.7-4.7-2.3-9.8-3.7-15-4.6" fill="#e0a763"/><g fill="#ffab41"><path transform="matrix(.7071-.7071.7071.7071-3.9946 17.2545)" d="m17.4 12h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-4.1507 28.0237)" d="m30.3 17.6h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-14.3158 18.3168)" d="m13.5 25h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-16.3143 24.7814)" d="m20.3 30.7h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-11.3159 37.4112)" d="m38.1 31h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-17.9387 49.7234)" d="m49.6 45.1h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-25.2128 28.3886)" d="m20.2 43.2h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-29.9482 31.4675)" d="m21.6 50.5h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-39.29 21.5427)" d="m4.9 56.8h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-7.7377 15.9843)" d="m14.4 16.3h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-11.4898 28.0347)" d="m27 26.8h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-7.5833 37.5714)" d="m40.5 26.9h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-21.212 21.1733)" d="m13.9 35.1h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-27.1462 18.6237)" d="m7.8 41h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-36.6179 20.6153)" d="m5.5 53.4h2.1v2.1h-2.1z"/><path transform="matrix(.7072-.707.707.7072-33.3849 29.894)" d="m18.3 54.2h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-24.7295 36.9615)" d="m31.2 47.3h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-24.6875 42.1982)" d="m37.5 49.8h2.1v2.1h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-18.1918 46.3728)" d="m45.8 44.1h2.1v2.1h-2.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f356.svg b/build/js/jsxc/lib/emojione/assets/svg/1f356.svg
index 43025ad..d1b3e05 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f356.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f356.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ddd"><path d="m26.514 42.63l-5.66-5.168c0 0-6.32 6.437-8.08 6.652-1.994.244-5.934-2.098-9.107 1.077-2.219 2.219-2.219 5.813 0 8.03 1.547 1.545 3.76 2.01 5.712 1.403-.608 1.948-.144 4.163 1.401 5.71 2.219 2.218 5.813 2.218 8.03.001 3.174-3.176.832-7.115 1.075-9.109-.126-2.188 6.628-8.598 6.628-8.598"/><path d="m42.63 26.513l-5.168-5.66c0 0 6.437-6.32 6.652-8.08.244-1.994-2.097-5.934 1.076-9.106 2.22-2.22 5.813-2.22 8.03 0 1.545 1.545 2.01 3.76 1.403 5.711 1.948-.609 4.163-.144 5.71 1.401 2.218 2.22 2.217 5.814 0 8.03-3.175 3.173-7.114.832-9.108 1.075-2.188-.127-8.598 6.627-8.598 6.627"/></g><path fill="#a86332" d="m31.874 10.63c-3.152.764-20.48 18.09-21.242 21.242-1.186 4.886 16.612 22.681 21.496 21.495 3.146-.762 20.476-18.09 21.241-21.241 1.184-4.882-16.612-22.681-21.495-21.496"/><g fill="#e6b858"><path d="m14.614 31.925l-1 1 1 1 1-1-1-1"/><path d="m17.948 33.3l-1 1 1 1 1-1-1-1"/><path transform="matrix(.7071-.7071.7071.7071-2.99 32.401)" d="m36.909 19.1h1.414v1.415h-1.414z"/></g><path transform="matrix(-.707-.7072.7072-.707 47.935 50.2)" fill="#e6d0a3" d="m33.31 14.11h2.121v2.121h-2.121z"/><path transform="matrix(-.7069-.7073.7073-.7069 42.987 55.9)" fill="#e6b858" d="m32.368 18.337h1.414v1.415h-1.414z"/><g fill="#e6d0a3"><path transform="matrix(-.7071-.7071.7071-.7071 44.734 45.875)" d="m31.16 12.966h1.414v1.414h-1.414z"/><path transform="matrix(-.7073.7069-.7069-.7073 54.926 26.299)" d="m21.311 23.814h1.414v1.415h-1.414z"/></g><g fill="#e6b858"><path transform="matrix(.7071.7071-.7071.7071 27.739-9.65)" d="m24.457 27.598h2.121v2.121h-2.121z"/><path transform="matrix(.7069.7073-.7073.7069 29.541-10.978)" d="m27.311 29.451h1.415v1.414h-1.415z"/></g><g fill="#804c26"><path d="m44.2 38.811l-1 1 1 1 1-1-1-1"/><path d="m40.945 40.06l-1.5 1.501 1.5 1.499 1.505-1.499-1.505-1.501"/><path d="m39.21 36.09l-1 1 1 1 1-1-1-1"/><path d="m30.782 47.37l-1.502 1.503 1.502 1.497 1.498-1.497-1.498-1.503"/><path d="m28.548 42.901l-.999 1 1 1 1-1-1-1"/><path d="m27.855 46.45l-1 1 1 1 1-1-1-1"/><path d="m47.518 29.21l-1 1 1 1 1-1-1-1"/><path d="m50.637 29.943l-1 .999 1 1 1-1-1-1"/><path d="m42.945 35.561l-1 1 1 1 1-1-1-1"/></g><g fill="#e6b858"><path d="m49.803 37.481l-26.883-19.689 1.551-1.551 26.19 20.382z"/><path d="m37.38 49.727l-23.01-23.01.774-.87 23.819 22.617z"/></g><g fill="#804c26"><path d="m38.825 48.877l-24.04-22.951.771-.866 25.908 20.756z"/><path d="M49.22 38.07 20.735 19.356 23.07 17.02 50.24 37.46z"/></g><g fill="#fff"><path opacity=".4" d="m11.649 59.833c-.576-2.981.598-5.876 2.777-7.58-.061.009-.121.004-.182.016-2.51.485-4.141 2.989-3.639 5.589.172.877.576 1.642 1.113 2.268-.02-.099-.051-.193-.069-.293"/><path opacity=".4" d="m3.959 50.903c-.414-2.152.432-4.243 2.01-5.473-.043.007-.086.003-.131.011-1.813.351-2.988 2.158-2.627 4.03.123.634.416 1.186.805 1.637-.017-.07-.039-.138-.053-.21"/><path opacity=".4" d="m59.84 11.411c-2.98-.575-5.877.598-7.58 2.778.009-.062.004-.121.016-.182.484-2.511 2.988-4.141 5.588-3.639.879.171 1.643.575 2.268 1.113-.099-.022-.193-.052-.292-.07"/><path opacity=".4" d="m50.91 3.722c-2.152-.415-4.242.432-5.473 2.01.006-.044.003-.087.012-.131.35-1.813 2.157-2.989 4.03-2.627.634.123 1.186.415 1.638.804-.07-.017-.139-.038-.211-.052"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ddd"><path d="m26.5 42.6l-5.7-5.2c0 0-6.3 6.4-8.1 6.7-2 .2-5.9-2.1-9.1 1.1-2.2 2.2-2.2 5.8 0 8 1.5 1.5 3.8 2 5.7 1.4-.6 1.9-.1 4.2 1.4 5.7 2.2 2.2 5.8 2.2 8 0 3.2-3.2.8-7.1 1.1-9.1 0-2.2 6.7-8.6 6.7-8.6"/><path d="m42.6 26.5l-5.2-5.7c0 0 6.4-6.3 6.7-8.1.2-2-2.1-5.9 1.1-9.1 2.2-2.2 5.8-2.2 8 0 1.5 1.5 2 3.8 1.4 5.7 1.9-.6 4.2-.1 5.7 1.4 2.2 2.2 2.2 5.8 0 8-3.2 3.2-7.1.8-9.1 1.1-2.2 0-8.6 6.7-8.6 6.7"/></g><path d="m31.9 10.6c-3.2.8-20.5 18.1-21.2 21.2-1.2 4.9 16.6 22.7 21.5 21.5 3.1-.8 20.5-18.1 21.2-21.2 1.2-4.9-16.6-22.7-21.5-21.5" fill="#a86332"/><g fill="#e6b858"><path d="m14.6 31.9l-1 1 1 1 1-1-1-1"/><path d="m17.9 33.3l-1 1 1 1 1-1-1-1"/><path transform="matrix(.7071-.7071.7071.7071-2.9902 32.4005)" d="m36.9 19.1h1.4v1.4h-1.4z"/></g><path transform="matrix(.7072-.707.707.7072-.6649 28.7401)" fill="#e6d0a3" d="m33.3 14.1h2.1v2.1h-2.1z"/><path transform="matrix(.7073-.7069.7069.7073-3.7809 28.9561)" fill="#e6b858" d="m32.4 18.3h1.4v1.4h-1.4z"/><g fill="#e6d0a3"><path transform="matrix(.7071-.7071.7071.7071-.334 26.5385)" d="m31.2 13h1.4v1.4h-1.4z"/><path transform="matrix(.7073-.7069.7069.7073-10.8884 22.7414)" d="m21.3 23.8h1.4v1.4h-1.4z"/></g><g fill="#e6b858"><path transform="matrix(.7071-.7071.7071.7071-12.7901 26.4372)" d="m24.5 27.6h2.1v2.1h-2.1z"/><path transform="matrix(.7073-.7069.7069.7073-13.1185 28.6322)" d="m27.3 29.5h1.4v1.4h-1.4z"/></g><g fill="#804c26"><path d="m44.2 38.8l-1 1 1 1 1-1-1-1"/><path d="m40.9 40.1l-1.5 1.5 1.5 1.5 1.5-1.5-1.5-1.5"/><path d="m39.2 36.1l-1 1 1 1 1-1-1-1"/><path d="m30.8 47.4l-1.5 1.5 1.5 1.5 1.5-1.5-1.5-1.5"/><path d="m28.5 42.9l-1 1 1 1 1-1-1-1"/><path d="m27.9 46.4l-1 1 1 1 1-1-1-1"/><path d="m47.5 29.2l-1 1 1 1 1-1-1-1"/><path d="m50.6 29.9l-1 1 1 1 1-1-1-1"/><path d="m42.9 35.6l-1 1 1 1 1-1-1-1"/></g><g fill="#e6b858"><path d="m49.8 37.5l-26.9-19.7 1.6-1.6 26.2 20.4z"/><path d="m37.4 49.7l-23-23 .7-.9 23.9 22.7z"/></g><g fill="#804c26"><path d="m38.8 48.9l-24-23 .8-.8 25.9 20.7z"/><path d="M49.2 38.1 20.7 19.4 23.1 17 50.2 37.5z"/></g><g fill="#fff"><path d="m11.6 59.8c-.6-3 .6-5.9 2.8-7.6-.1 0-.1 0-.2 0-2.5.5-4.1 3-3.6 5.6.2.9.6 1.6 1.1 2.3 0-.1 0-.2-.1-.3" opacity=".4"/><path d="m4 50.9c-.4-2.2.4-4.2 2-5.5 0 0-.1 0-.1 0-1.8.4-3 2.2-2.6 4 .1.6.4 1.2.8 1.6-.1 0-.1 0-.1-.1" opacity=".4"/><path d="m59.8 11.4c-3-.6-5.9.6-7.6 2.8 0-.1 0-.1 0-.2.5-2.5 3-4.1 5.6-3.6.9.2 1.6.6 2.3 1.1-.1 0-.2-.1-.3-.1" opacity=".4"/><path d="m50.9 3.7c-2.2-.4-4.2.4-5.5 2 0 0 0-.1 0-.1.3-1.8 2.2-3 4-2.6.6.1 1.2.4 1.6.8.1 0 0-.1-.1-.1" opacity=".4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f357.svg b/build/js/jsxc/lib/emojione/assets/svg/1f357.svg
index a70044d..dca233f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f357.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f357.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ddd" d="m28.362 35.635c-4.511-4.512-10.495 7.04-15.06 7.599-2.093.257-6.226-2.2-9.556 1.129-2.328 2.329-2.328 6.101 0 8.429 1.623 1.621 3.945 2.109 5.993 1.473-.64 2.044-.151 4.369 1.469 5.991 2.33 2.327 6.101 2.327 8.43.001 3.33-3.332.874-7.466 1.128-9.559.562-4.563 12.11-10.551 7.597-15.06"/><path opacity=".15" d="m22.924 46.94l1-1.106 1.94-6.664-7.655.864-1.24 1.12 2.877.717c-1.838 2.268-3.048 4.252-3.048 4.252s3.274.08 5.571-.352l.553 1.169"/><g fill="#fff"><path opacity=".4" d="m11.534 58.746c-.575-2.98.598-5.876 2.778-7.58-.062.01-.121.004-.182.016-2.511.485-4.141 2.989-3.639 5.589.171.878.575 1.642 1.113 2.268-.021-.099-.051-.193-.07-.293"/><path opacity=".4" d="m3.846 49.816c-.415-2.152.432-4.242 2.01-5.473-.044.007-.087.004-.131.012-1.813.35-2.989 2.158-2.627 4.03.123.633.415 1.186.804 1.637-.017-.07-.039-.138-.052-.211"/></g><path fill="#a8693f" d="m54.46 35.437c20.58-20.58-5.319-46.48-25.899-25.9-8.229 8.229-6.696 18.17-8.313 25.971-.575 2.765-3.038 4.829-3.038 4.829s1.708.646 3.646 1c-1.615 1.994-2.682 3.737-2.682 3.737s2.403.224 4.854-.313c.314 1.175.636 2.025.636 2.025s2.063-2.465 4.827-3.039c7.797-1.621 17.74-.086 25.969-8.313"/><g fill="#c28d69"><path transform="matrix(-.7068-.7074.7074-.7068 57.62 60.897)" d="m40.687 17.765h1.484v1.485h-1.484z"/><path transform="matrix(.7074-.7068.7068.7074 3.747 36.32)" d="m45 12.893h1.484v1.484h-1.484z"/><path transform="matrix(-.7071-.7071.7071-.7071 47.44 65.811)" d="m36.609 22.338h1.483v1.485h-1.483z"/><path transform="matrix(-.7074-.7068.7068-.7074 35.692 70.68)" d="m31.733 27.21h1.484v1.484h-1.484z"/><path transform="matrix(-.7069-.7073.7073-.7069 51.32 40.739)" d="m33.36 8.995h1.484v1.484h-1.484z"/><path transform="matrix(-.7071-.7071.7071-.7071 40.627 45.781)" d="m29.05 13.735h1.483v1.483h-1.483z"/><path transform="matrix(-.7074-.7068.7068-.7074 30.993 53.36)" d="m25.799 19.524h1.484v1.483h-1.484z"/><path transform="matrix(.7069-.7073.7073.7069 7.322 29.587)" d="m38.621 5.216h1.484v1.484h-1.484z"/><path transform="matrix(-.7071-.7071.7071-.7071 49.08 52.963)" d="m34.767 15.574h1.485v1.484h-1.485z"/><path transform="matrix(-.7069-.7073.7073-.7069 62.855 48.22)" d="m40.37 10.04h2.099v2.099h-2.099z"/><path transform="matrix(-.7068-.7074.7074-.7068 25.855 64.06)" d="m25.462 25.93h1.484v1.485h-1.484z"/><path transform="matrix(-.7069-.7073.7073-.7069 38.25 60.41)" d="m30.594 21.232h2.099v2.099h-2.099z"/><path transform="matrix(.7076-.7066.7066.7076 8.981 34.677)" d="m45.648 5.744h1.485v1.484h-1.485z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.4 35.6c-4.5-4.5-10.5 7-15.1 7.6-2.1.3-6.2-2.2-9.6 1.1-2.3 2.3-2.3 6.1 0 8.4 1.6 1.6 3.9 2.1 6 1.5-.6 2-.2 4.4 1.5 6 2.3 2.3 6.1 2.3 8.4 0 3.3-3.3.9-7.5 1.1-9.6.6-4.5 12.2-10.5 7.7-15" fill="#ddd"/><path d="m22.9 46.9l1-1.1 1.9-6.7-7.6.9-1.2 1.2 2.9.7c-1.8 2.3-3 4.3-3 4.3s3.3.1 5.6-.4l.4 1.1" opacity=".15"/><g fill="#fff"><path d="m11.5 58.7c-.6-3 .6-5.9 2.8-7.6-.1 0-.1 0-.2 0-2.5.5-4.1 3-3.6 5.6.2.9.6 1.6 1.1 2.3 0-.1 0-.2-.1-.3" opacity=".4"/><path d="m3.8 49.8c-.4-2.2.4-4.2 2-5.5 0 0-.1 0-.1 0-1.8.3-3 2.2-2.6 4 .1.7.4 1.3.8 1.7 0 0 0-.1-.1-.2" opacity=".4"/></g><path d="m54.5 35.4c20.5-20.5-5.4-46.4-25.9-25.9-8.2 8.2-6.7 18.2-8.3 26-.6 2.8-3 4.8-3 4.8s1.7.6 3.6 1c-1.6 2-2.7 3.7-2.7 3.7s2.4.2 4.9-.3c.3 1.2.6 2 .6 2s2.1-2.5 4.8-3c7.8-1.6 17.7 0 26-8.3" fill="#a8693f"/><g fill="#c28d69"><path transform="matrix(.7074-.7068.7068.7074-.961 34.6969)" d="m40.7 17.8h1.5v1.5h-1.5z"/><path transform="matrix(.7074-.7068.7068.7074 3.7484 36.3218)" d="m45 12.9h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-5.3803 33.1712)" d="m36.6 22.3h1.5v1.5h-1.5z"/><path transform="matrix(.7068-.7074.7074.7068-10.2532 31.1707)" d="m31.7 27.2h1.5v1.5h-1.5z"/><path transform="matrix(.7073-.7069.7069.7073 3.0984 26.9566)" d="m33.4 9h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-1.5101 25.3087)" d="m29.1 13.7h1.5v1.5h-1.5z"/><path transform="matrix(.7068-.7074.7074.7068-6.5542 24.7174)" d="m25.8 19.5h1.5v1.5h-1.5z"/><path transform="matrix(.7069-.7073.7073.7069 7.3234 29.5868)" d="m38.6 5.2h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-1.1374 29.8877)" d="m34.8 15.6h1.5v1.5h-1.5z"/><path transform="matrix(.7073-.7069.7069.7073 4.2855 32.5232)" d="m40.4 10h2.1v2.1h-2.1z"/><path transform="matrix(.7074-.7068.7068.7074-11.1857 26.3239)" d="m25.5 25.9h1.5v1.5h-1.5z"/><path transform="matrix(.7073-.7069.7069.7073-6.4897 28.8897)" d="m30.6 21.2h2.1v2.1h-2.1z"/><path transform="matrix(.7076-.7066.7066.7076 8.9808 34.6762)" d="m45.6 5.7h1.5v1.5h-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f358.svg b/build/js/jsxc/lib/emojione/assets/svg/1f358.svg
index 71cbb27..5e38bb4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f358.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f358.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#a87451" d="m62 32c0 1.209-1.244 2.33-1.385 3.5-.142 1.195.801 2.582.52 3.73-.285 1.168-1.76 1.955-2.178 3.064-.421 1.121.161 2.695-.389 3.746-.553 1.059-2.173 1.467-2.846 2.445-.674.982-.482 2.652-1.268 3.545-.787.893-2.456.9-3.343 1.691-.885.791-1.094 2.459-2.068 3.139-.973.676-2.597.283-3.647.842-1.044.553-1.644 2.121-2.756 2.547-1.101.42-2.581-.352-3.739-.066-1.142.283-2.097 1.66-3.286 1.805-1.162.141-2.415-.967-3.615-.967s-2.455 1.107-3.617.967c-1.188-.145-2.143-1.521-3.284-1.805-1.158-.285-2.641.486-3.741.066-1.112-.426-1.712-1.996-2.756-2.547-1.051-.559-2.675-.166-3.646-.844-.977-.68-1.186-2.348-2.07-3.137-.887-.793-2.556-.801-3.343-1.693-.785-.893-.594-2.561-1.268-3.543-.672-.977-2.293-1.385-2.845-2.446-.548-1.051.034-2.625-.387-3.746-.418-1.107-1.895-1.895-2.18-3.063-.279-1.148.663-2.533.52-3.73-.14-1.17-1.383-2.291-1.383-3.5s1.243-2.33 1.383-3.5c.144-1.195-.799-2.583-.52-3.73.285-1.167 1.76-1.956 2.178-3.063.423-1.121-.159-2.695.389-3.747.553-1.059 2.173-1.468 2.846-2.446.676-.982.484-2.651 1.27-3.543.785-.894 2.454-.901 3.341-1.692s1.096-2.459 2.07-3.138c.973-.677 2.595-.284 3.646-.842 1.046-.553 1.644-2.122 2.758-2.548 1.099-.42 2.581.353 3.739.066 1.14-.282 2.097-1.661 3.284-1.805 1.161-.14 2.416.968 3.616.968s2.453-1.108 3.615-.968c1.189.144 2.145 1.522 3.286 1.805 1.158.286 2.641-.486 3.739-.065 1.114.425 1.712 1.994 2.758 2.547 1.051.558 2.675.165 3.646.842.977.68 1.184 2.348 2.07 3.139s2.556.8 3.341 1.692c.785.892.594 2.561 1.27 3.543.673.979 2.291 1.388 2.844 2.446.55 1.052-.032 2.626.391 3.747.418 1.107 1.893 1.896 2.176 3.063.279 1.147-.661 2.535-.52 3.73.14 1.169 1.384 2.29 1.384 3.499"/><g fill="#8e6244"><ellipse cx="31.999" cy="8.413" rx="1.25" ry="3.647"/><ellipse cx="31.999" cy="18.16" rx="1.25" ry="3.647"/><ellipse cx="31.999" cy="27.912" rx="1.25" ry="3.648"/><ellipse cx="31.999" cy="37.662" rx="1.25" ry="3.648"/><ellipse cx="26.649" cy="9.86" rx="1.25" ry="3.648"/><ellipse cx="26.649" cy="19.61" rx="1.25" ry="3.648"/><ellipse cx="26.649" cy="29.359" rx="1.25" ry="3.648"/><ellipse cx="21.3" cy="8.413" rx="1.25" ry="3.647"/><ellipse cx="21.3" cy="18.16" rx="1.25" ry="3.647"/><ellipse cx="21.3" cy="27.912" rx="1.25" ry="3.648"/><ellipse cx="21.3" cy="37.662" rx="1.25" ry="3.648"/><ellipse cx="15.95" cy="11.86" rx="1.25" ry="3.648"/><ellipse cx="15.95" cy="21.61" rx="1.25" ry="3.648"/><ellipse cx="15.95" cy="31.359" rx="1.25" ry="3.648"/><ellipse cx="11.6" cy="18.16" rx="1.25" ry="3.647"/><ellipse cx="10.6" cy="27.912" rx="1.25" ry="3.648"/><ellipse cx="11.6" cy="37.662" rx="1.25" ry="3.648"/><ellipse cx="10.6" cy="47.41" rx="1.25" ry="3.648"/><ellipse cx="5.249" cy="31.652" rx="1.25" ry="3.646"/><ellipse cx="7.249" cy="22.19" rx="1.25" ry="3.648"/><ellipse cx="7.249" cy="41.11" rx="1.25" ry="3.648"/><ellipse cx="37.35" cy="9.86" rx="1.25" ry="3.648"/><ellipse cx="37.35" cy="19.61" rx="1.25" ry="3.648"/><ellipse cx="37.35" cy="29.359" rx="1.25" ry="3.648"/><ellipse cx="42.7" cy="8.413" rx="1.25" ry="3.647"/><ellipse cx="42.7" cy="18.16" rx="1.25" ry="3.647"/><ellipse cx="42.7" cy="27.912" rx="1.25" ry="3.648"/><ellipse cx="42.7" cy="37.662" rx="1.25" ry="3.648"/><ellipse cx="48.05" cy="11.86" rx="1.25" ry="3.648"/><ellipse cx="48.05" cy="21.61" rx="1.25" ry="3.648"/><ellipse cx="48.05" cy="31.359" rx="1.25" ry="3.648"/><ellipse cx="52.4" cy="18.16" rx="1.25" ry="3.647"/><ellipse cx="53.4" cy="27.912" rx="1.25" ry="3.648"/><ellipse cx="52.4" cy="37.662" rx="1.25" ry="3.648"/><ellipse cx="53.4" cy="47.41" rx="1.25" ry="3.648"/><ellipse cx="58.749" cy="31.652" rx="1.25" ry="3.646"/><ellipse cx="56.749" cy="22.19" rx="1.25" ry="3.648"/><ellipse cx="56.749" cy="41.11" rx="1.25" ry="3.648"/></g><path fill="#334037" d="m49.03 59.914c0 2.782-34.06 2.782-34.06 0v-23.1h34.06v23.1"/><g fill="#3f4f44"><path d="m19.772 47.35l-1.089 1.517 1.089 1.523 1.092-1.522z"/><path d="m32.2 47.35l-1.09 1.517 1.09 1.523 1.09-1.521z"/><path d="m44.622 47.35l-1.092 1.517 1.092 1.523 1.09-1.521z"/><path d="m19.772 38.17l-1.089 1.519 1.089 1.521 1.092-1.52z"/><path d="m32.2 38.17l-1.09 1.519 1.09 1.521 1.09-1.519z"/><path d="m44.622 38.17l-1.092 1.519 1.092 1.521 1.09-1.519z"/><path d="m19.772 56.52l-1.089 1.53 1.089 1.52 1.092-1.52z"/><path d="m32.2 56.52l-1.09 1.53 1.09 1.52 1.09-1.52z"/><path d="m44.622 56.52l-1.092 1.53 1.092 1.52 1.09-1.52z"/><path d="m38.41 51.936l-1.09 1.524 1.09 1.517 1.091-1.517z"/><path d="m25.985 51.936l-1.089 1.524 1.089 1.517 1.095-1.517z"/><path d="m38.41 42.76l-1.09 1.52 1.09 1.521 1.091-1.521z"/><path d="m25.985 42.76l-1.089 1.52 1.089 1.521 1.095-1.521z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0 1.2-1.2 2.3-1.4 3.5-.1 1.2.8 2.6.5 3.7-.3 1.2-1.8 2-2.2 3.1-.4 1.1.2 2.7-.4 3.7-.6 1.1-2.2 1.5-2.8 2.4-.7 1-.5 2.7-1.3 3.5-.8.9-2.5.9-3.3 1.7-.9.8-1.1 2.5-2.1 3.1-1 .7-2.6.3-3.6.8-1 .6-1.6 2.1-2.8 2.5-1.1.4-2.6-.4-3.7-.1-1.1.3-2.1 1.7-3.3 1.8-1.2.1-2.4-1-3.6-1s-2.5 1.1-3.6 1c-1.2-.1-2.1-1.5-3.3-1.8-1.2-.3-2.6.5-3.7.1-1.1-.4-1.7-2-2.8-2.5-1.1-.6-2.7-.2-3.6-.8-1-.7-1.2-2.3-2.1-3.1-.9-.8-2.6-.8-3.3-1.7-.8-.9-.6-2.6-1.3-3.5-.7-1-2.3-1.4-2.8-2.4-.5-1.1 0-2.6-.4-3.7-.4-1.1-1.9-1.9-2.2-3.1-.3-1.1.7-2.5.5-3.7-.2-1.2-1.4-2.3-1.4-3.5s1.2-2.3 1.4-3.5c.1-1.2-.8-2.6-.5-3.7.3-1.2 1.8-2 2.2-3.1.4-1.1-.2-2.7.3-3.7.6-1.1 2.2-1.5 2.8-2.4.7-1 .5-2.7 1.3-3.5.8-.9 2.5-.9 3.3-1.7s1.2-2.6 2.2-3.3c1-.7 2.6-.3 3.6-.8 1-.6 1.6-2.1 2.8-2.5 1.1-.4 2.6.4 3.7.1 1.1-.3 2.1-1.7 3.3-1.8 1.2-.1 2.4 1 3.6 1s2.5-1.1 3.6-1c1.2.1 2.1 1.5 3.3 1.8 1.2.3 2.6-.5 3.7-.1 1.1.4 1.7 2 2.8 2.5 1.1.6 2.7.2 3.6.8 1 .7 1.2 2.3 2.1 3.1s2.6.8 3.3 1.7.6 2.6 1.3 3.5c.7 1 2.3 1.4 2.8 2.4.5 1.1 0 2.6.4 3.7.4 1.1 1.9 1.9 2.2 3.1.3 1.1-.7 2.5-.5 3.7.2 1.4 1.4 2.5 1.4 3.7" fill="#a87451"/><g fill="#8e6244"><ellipse cx="32" cy="8.4" rx="1.2" ry="3.6"/><ellipse cx="32" cy="18.2" rx="1.2" ry="3.6"/><ellipse cx="32" cy="27.9" rx="1.2" ry="3.6"/><ellipse cx="32" cy="37.7" rx="1.2" ry="3.6"/><ellipse cx="26.6" cy="9.9" rx="1.2" ry="3.6"/><ellipse cx="26.6" cy="19.6" rx="1.2" ry="3.6"/><ellipse cx="26.6" cy="29.4" rx="1.2" ry="3.6"/><ellipse cx="21.3" cy="8.4" rx="1.2" ry="3.6"/><ellipse cx="21.3" cy="18.2" rx="1.2" ry="3.6"/><ellipse cx="21.3" cy="27.9" rx="1.2" ry="3.6"/><ellipse cx="21.3" cy="37.7" rx="1.2" ry="3.6"/><ellipse cx="15.9" cy="11.9" rx="1.3" ry="3.6"/><ellipse cx="15.9" cy="21.6" rx="1.3" ry="3.6"/><ellipse cx="15.9" cy="31.4" rx="1.3" ry="3.6"/><ellipse cx="11.6" cy="18.2" rx="1.2" ry="3.6"/><ellipse cx="10.6" cy="27.9" rx="1.2" ry="3.6"/><ellipse cx="11.6" cy="37.7" rx="1.2" ry="3.6"/><ellipse cx="10.6" cy="47.4" rx="1.2" ry="3.6"/><ellipse cx="5.2" cy="31.7" rx="1.2" ry="3.6"/><ellipse cx="7.2" cy="22.2" rx="1.3" ry="3.6"/><ellipse cx="7.2" cy="41.1" rx="1.3" ry="3.6"/><ellipse cx="37.3" cy="9.9" rx="1.2" ry="3.6"/><ellipse cx="37.3" cy="19.6" rx="1.2" ry="3.6"/><ellipse cx="37.3" cy="29.4" rx="1.2" ry="3.6"/><ellipse cx="42.7" cy="8.4" rx="1.2" ry="3.6"/><ellipse cx="42.7" cy="18.2" rx="1.2" ry="3.6"/><ellipse cx="42.7" cy="27.9" rx="1.2" ry="3.6"/><ellipse cx="42.7" cy="37.7" rx="1.2" ry="3.6"/><ellipse cx="48" cy="11.9" rx="1.2" ry="3.6"/><ellipse cx="48" cy="21.6" rx="1.2" ry="3.6"/><ellipse cx="48" cy="31.4" rx="1.2" ry="3.6"/><ellipse cx="52.4" cy="18.2" rx="1.2" ry="3.6"/><ellipse cx="53.4" cy="27.9" rx="1.2" ry="3.6"/><ellipse cx="52.4" cy="37.7" rx="1.2" ry="3.6"/><ellipse cx="53.4" cy="47.4" rx="1.2" ry="3.6"/><ellipse cx="58.7" cy="31.7" rx="1.2" ry="3.6"/><ellipse cx="56.7" cy="22.2" rx="1.2" ry="3.6"/><ellipse cx="56.7" cy="41.1" rx="1.2" ry="3.6"/></g><path d="M49,59.9c0,2.8-34.1,2.8-34.1,0V36.8H49V59.9z" fill="#334037"/><g fill="#3f4f44"><path d="m19.8 47.3l-1.1 1.6 1.1 1.5 1.1-1.5z"/><path d="m32.2 47.3l-1.1 1.6 1.1 1.5 1.1-1.5z"/><path d="m44.6 47.3l-1.1 1.6 1.1 1.5 1.1-1.5z"/><path d="m19.8 38.2l-1.1 1.5 1.1 1.5 1.1-1.5z"/><path d="m32.2 38.2l-1.1 1.5 1.1 1.5 1.1-1.5z"/><path d="m44.6 38.2l-1.1 1.5 1.1 1.5 1.1-1.5z"/><path d="m19.8 56.5l-1.1 1.5 1.1 1.6 1.1-1.6z"/><path d="m32.2 56.5l-1.1 1.5 1.1 1.6 1.1-1.6z"/><path d="m44.6 56.5l-1.1 1.5 1.1 1.6 1.1-1.6z"/><path d="m38.4 51.9l-1.1 1.6 1.1 1.5 1.1-1.5z"/><path d="m26 51.9l-1.1 1.6 1.1 1.5 1.1-1.5z"/><path d="m38.4 42.8l-1.1 1.5 1.1 1.5 1.1-1.5z"/><path d="m26 42.8l-1.1 1.5 1.1 1.5 1.1-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f359.svg b/build/js/jsxc/lib/emojione/assets/svg/1f359.svg
index f727ce8..0c7cf79 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f359.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f359.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e1d6" d="m61.841 46.767c-.661-1.631-.927-1.993-1.359-4.207-.348-1.775-.569-2.568-.637-4.432-.088-2.432-1.354-5.465-2.321-7.648-1.153-2.617-2.91-6.307-5.292-8.02 2.075-1.039-.912-2.245-1.545-2.406.354-1.909.059-1.632-.61-3.168-1.248-2.881-3.905-3.395-4.788-6.04-.955-2.861-4.409-4.333-6.703-5.294-.989-.415-5.869-5.332-7.186-2.856.039-.073-6.983.288-5.561 2.081-2.663 0-9.716 6.653-8.45 7.349-.59.642-2.421.481-2.514 1.638-.153 1.933 2.293 1.318-.72 2.821-1.467.731-3.265 2.199-3.795 3.848-.438 1.356 1.544.851.694 1.971-2.124-2.66-2.138 2.143-2.028 2.78-1.304-1.17-2.606 5.231-3.058 6.482-1.084 1.203-1.741 2.848-2.103 4.41-1.01.26-2.117 3.381-1.816 4.125.747 1.842.055 2.629.141 4.815.121 3.226 1.935 3.509 1.287 6.167-.484 1.994.274 2.227 1.788 2.762 1.889.67 2.332 2.461 4.592 3.314 1.203.453 2.399-.043 2.574 1.096.284 1.76 33.85 4.469 37.493.512 1.01 3.878 3.576-2.368 3.828-3.535 1.374 3.01 2.477-.551 2.624-1.744 3.29 2.617 2.486-1.418 1.432-3.173 1.235-.285 4.825-1.7 4.03-3.645"/><path fill="#fffbe9" d="m59.908 46.922c-.235-.446-.605-.714-1.109-.802.07-.482.095-.969.072-1.457-.042-1.148-.252-2.303-.611-3.393-.592-1.791.594-5.615-1.514-6.834-.003-2.593-2.188-4.234-2.54-6.396-.285-1.746-2.678-5.283-4.726-5.131-1.158.085-.021.401-1.795.01-.415-.934.37-1.157 1.108-.934.778.235.906-.788.891-1.304.982-1.177-.2-1.521-.602-2.485-.996-2.394-2.494-3.25-4.153-4.783-.809-.749-1.811-1.422-2.883-1.704.07-.899.472-1.762-.88-2.076 1.902-1.146-1.665-1.94-2.338-1.971-.293-.856-1.934-.785-2.578-.742-.544-.865-1.379-1.573-2.25-2.082-1.34-.784-3.485-.594-4.991-.367-1.141.173-4.643 1.887-1.731 2.429-.805.758-1.122 1.626-2.37 1.196-.484-.167-4.171-.945-3.39.728-.897.578-1.437 1.732-1.772 2.706-.768.157-3.136 1.127-1.512 2.04-.53.595-2.288.509-2.364 1.592-.081 1.113 1.09.347.776 1.683-.238 1.016-.549.598-1.445 1.059-1.314.676-2.58 1.82-3.296 3.134-.751 1.376.97 1.751.408 2.503-1.71-2.187-2.092 1.304-1.938 2.412.117.837.354 1.669.725 2.427.465.948-.329 1.313-.74 2.296-.404-1.728-1.63-.541-2.137.358-.89 1.577-1.435 3.693-1.179 5.512-1.298.002-4.157.941-2.091 2.543-.94.234-1.337 1.012-.807 1.87.627 1.019.172 1.396.054 2.618-.09.93-.119 6.254 1.788 5.818-.395.936-.801 2.044-.711 3.082.089 1.029.83.646 1.473 1.082 1.778 1.21 4.201-1.252 5.444-.514-2.158 2.081 1.82 2.709 3.128 2.567-2.819 2.069-.857 3.8 1.918 3.108 1.376-.344 31.935-2.611 31.993-2.275.641 3.594 2.641.527 3.063-1.392 1.163 2.626 2.287-.325 2.459-1.651 2.938 2.393 2.398-1.229 1.359-3.01 1.176-.283 4.507-1.645 3.794-3.467"/><g fill="#e8e1d6"><path d="m35.05 23.2c.196.682.641 1.51 1.292 2.316 1.258 1.554 2.77 2.402 3.354 1.87.582-.528.011-2.209-1.252-3.735-.563-.681-1.169-1.207-1.719-1.543.666-.604.997-1.231.797-1.673-.329-.731-1.965-.694-3.667.085-.737.337-1.361.761-1.82 1.193.035-.089.058-.18.055-.272-.024-.804-1.56-1.406-3.433-1.351-1.873.057-3.396.748-3.4 1.555-.004.812 1.534 1.432 3.438 1.374 1.189-.036 2.228-.327 2.834-.737-.257.377-.354.735-.234 1.022.313.758 1.987.718 3.726-.09.009-.005.018-.011.029-.014"/><path d="m26.943 31.959c-1.88-.726-3.628-.616-3.923.243-.297.871.995 2.181 2.9 2.929 1.918.753 3.707.644 3.978-.251.267-.882-1.063-2.19-2.955-2.921"/><path d="m11.947 41.745c-.003.377.006.766.046 1.17.226 2.309 1.108 4.04 1.972 3.808.853-.228 1.331-2.305 1.07-4.597-.253-2.24-1.123-3.852-1.947-3.641-.187.047-.353.195-.5.404-.239-.472-.545-.953-.926-1.415-1.27-1.536-2.797-2.249-3.438-1.612-.645.642-.157 2.42 1.109 3.992.862 1.074 1.855 1.756 2.614 1.891"/><path d="m12.677 50.789c.688-.77.112-2.854-1.259-4.633-1.35-1.752-2.98-2.562-3.665-1.837-.691.73-.178 2.756 1.171 4.552 1.366 1.823 3.059 2.695 3.753 1.918"/><path d="m12.687 52.983c-2.037-.764-3.976-.527-4.343.528-.372 1.067.993 2.575 3.063 3.364 2.085.799 4.063.557 4.403-.541.336-1.08-1.069-2.581-3.123-3.351"/><path d="m16.672 23.275c1.583-1.151 2.514-2.582 2.102-3.205-.411-.621-1.999-.22-3.57.904-1.591 1.134-2.576 2.587-2.175 3.238.402.652 2.042.227 3.643-.937"/><path d="m11.314 34.34c.687.382 2.077-.864 3.085-2.755.985-1.853 1.224-3.618.552-3.976-.669-.356-2.01.813-3.01 2.64-1.022 1.863-1.313 3.708-.625 4.091"/><path d="m19.354 30.817c.151-.752.168-1.727.009-2.753-.029-.189-.067-.368-.106-.547.929.933 1.892 1.345 2.386.923.26-.223.34-.646.276-1.17 1.633-.186 2.875-.851 2.882-1.603.007-.841-1.542-1.468-3.455-1.41-.273.009-.536.033-.792.067-1.088-1.407-2.383-2.138-2.989-1.645-.403.33-.404 1.129-.071 2.077-.035.002-.068-.01-.103-.002-.781.19-1.187 1.977-.902 4.03.219 1.579.782 2.855 1.393 3.302-.485.519-.85 1.043-1.059 1.509-1.041-.038-1.841.243-2.036.808-.312.889.974 2.146 2.881 2.801 1.924.663 3.721.462 4-.449.231-.744-.636-1.723-2.01-2.403.316-.189.636-.401.957-.653 1.68-1.32 2.654-2.957 2.206-3.672-.417-.663-1.918-.298-3.469.792"/><path d="m26.938 14.394c.073-.746-1.322-1.449-3.113-1.579-1.785-.132-3.315.357-3.413 1.098-.102.746 1.288 1.463 3.102 1.598 1.821.135 3.35-.37 3.424-1.117"/><path d="m23.568 12.21c1.67-.709 2.792-1.816 2.52-2.469-.27-.649-1.813-.615-3.462.076-1.664.697-2.82 1.802-2.57 2.471.251.672 1.832.639 3.512-.078"/><path d="m28.25 16.491c-.286-.702-1.891-.662-3.594.083-1.72.75-2.909 1.943-2.64 2.665.269.725 1.909.689 3.648-.085 1.725-.767 2.875-1.96 2.586-2.663"/><path d="m36.38 26.983c-1.938-.152-3.552.415-3.602 1.279-.055.867 1.499 1.705 3.469 1.862 1.976.16 3.593-.429 3.613-1.302.022-.868-1.535-1.688-3.48-1.839"/><path d="m44.808 30.604c1.633-.807 2.674-2.028 2.49-2.832.206-.012.377-.071.486-.201.484-.574-.312-2.142-1.757-3.482-.406-.377-.819-.688-1.217-.94.256-.188.414-.408.414-.657-.003-.813-1.532-1.581-3.418-1.723-1.881-.144-3.425.389-3.451 1.198-.026.813 1.498 1.596 3.407 1.744.269.021.527.025.778.019.238.691.848 1.574 1.714 2.395.4.377.809.695 1.204.954-.606.074-1.301.277-2 .619-1.743.844-2.875 2.188-2.513 3 .367.818 2.105.778 3.867-.095"/><path d="m36.937 30.995c-.317.012-.645.037-.984.094-1.955.33-3.442 1.321-3.313 2.22.075.53.703.903 1.601 1.057.529.636 2.136.536 3.805-.288 1.806-.894 2.963-2.285 2.598-3.105-.351-.79-1.983-.769-3.707.022"/><path d="m50.03 35.464c1.672-.869 2.733-2.18 2.552-3.057.34.074.69.135 1.061.166 2.036.164 3.642-.453 3.586-1.369-.057-.911-1.727-1.77-3.729-1.932-.583-.046-1.124-.021-1.608.05.081-.788-.031-1.86-.364-3.01-.609-2.093-1.71-3.621-2.472-3.448-.764.174-.921 1.993-.342 4.101.361 1.301.916 2.402 1.475 3.035-.176.18-.272.387-.266.611.009.359.279.711.719 1.018-.629.084-1.347.303-2.072.674-.081.041-.154.09-.235.134-.625-.554-1.804-.99-3.165-1.099-1.988-.161-3.613.434-3.626 1.336-.015.909 1.613 1.785 3.635 1.949.306.025.597.027.879.018-.137.34-.173.658-.056.924.391.888 2.204.847 4.03-.104"/><path d="m30.665 12.981c1.622.796 3.202.901 3.521.237.314-.662-.745-1.826-2.35-2.6-1.589-.769-3.137-.871-3.466-.229-.332.646.69 1.804 2.295 2.592"/><path d="m26.2 8.913c1.086-.031 2.038-.275 2.607-.621-.149.152-.233.315-.231.484.009.705 1.453 1.242 3.224 1.193 1.769-.049 3.175-.666 3.14-1.37-.033-.698-1.474-1.221-3.22-1.172-1.075.03-2.02.271-2.587.614.148-.151.233-.314.23-.481-.012-.691-1.426-1.206-3.162-1.159-1.737.047-3.156.641-3.17 1.334-.011.695 1.405 1.227 3.169 1.178"/><path d="m27.423 26.503c1.729.921 3.427 1.043 3.78.275.349-.767-.768-2.112-2.477-3-1.692-.886-3.353-1-3.72-.265-.368.743.704 2.084 2.417 2.994"/><path d="m18.257 19.671c1.64.853 3.272.967 3.635.252.36-.711-.674-1.959-2.296-2.791-1.607-.821-3.199-.932-3.578-.244-.378.691.618 1.937 2.239 2.783"/><path d="m30.827 19.358c1.681.853 3.318.965 3.646.251.322-.71-.773-1.957-2.438-2.787-1.646-.822-3.246-.933-3.588-.247-.343.693.717 1.938 2.38 2.783"/><path d="m28.15 28.12c-1.952.061-3.544.815-3.551 1.692-.009.885 1.593 1.56 3.583 1.497 1.982-.064 3.572-.838 3.546-1.721-.023-.874-1.625-1.528-3.578-1.468"/><path d="m41.2 11.916c1.354 1.254 2.858 1.853 3.341 1.323.478-.526-.251-1.958-1.603-3.184-1.336-1.211-2.79-1.775-3.271-1.277-.481.504.196 1.903 1.533 3.138"/><path d="m36.36 13.89c.665.649 1.369 1.128 1.978 1.387-1.619.76-2.678 1.937-2.351 2.655.332.732 1.979.695 3.66-.086 1.668-.773 2.723-1.98 2.37-2.691-.238-.483-1.069-.609-2.097-.406-.028-.722-.682-1.839-1.718-2.831-1.344-1.281-2.822-1.877-3.331-1.351-.509.534.148 2.01 1.489 3.323"/><path d="m43.14 15.06c-.551.477-.007 2.027 1.238 3.483 1.267 1.479 2.762 2.282 3.317 1.778.555-.502-.045-2.099-1.313-3.547-1.249-1.428-2.692-2.189-3.242-1.714"/><path d="m49.721 42.496c-1.826 1.046-2.957 2.657-2.516 3.595.45.953 2.322.847 4.168-.23 1.824-1.065 2.91-2.672 2.44-3.591-.465-.904-2.289-.808-4.092.226"/><path d="m57.52 33.77c-.722-.576-2.184.458-3.289 2.35-1.121 1.922-1.455 4.01-.719 4.629.739.626 2.258-.487 3.368-2.45 1.089-1.933 1.368-3.944.64-4.529"/><path d="m49.21 50.913c-1.23 1.875-1.654 3.982-.925 4.69.734.712 2.334-.28 3.556-2.194 1.199-1.881 1.564-3.926.842-4.598-.72-.662-2.266.268-3.473 2.102"/></g><path fill="#334037" d="m47.06 59.875c0 2.833-31.21 2.833-31.21 0v-23.515h31.21v23.515"/><g fill="#3f4f44"><path d="m20.256 47.08l-.999 1.548.999 1.552 1-1.55z"/><path d="m31.638 47.08l-1 1.548 1 1.552 1-1.55z"/><path d="m43.02 47.08l-1 1.548 1 1.552 1-1.55z"/><path d="m20.256 37.737l-.999 1.543.999 1.553 1-1.543z"/><path d="m31.638 37.737l-1 1.543 1 1.553 1-1.543z"/><path d="m43.02 37.737l-1 1.543 1 1.553 1-1.543z"/><path d="m20.256 56.42l-.999 1.552.999 1.548 1-1.546z"/><path d="m31.638 56.42l-1 1.552 1 1.548 1-1.546z"/><path d="m43.02 56.42l-1 1.552 1 1.548 1-1.546z"/><path d="m37.33 51.753l-1 1.547 1 1.549 1-1.549z"/><path d="m25.947 51.753l-.999 1.547.999 1.549 1-1.549z"/><path d="m37.33 42.41l-1 1.546 1 1.55 1-1.548z"/><path d="m25.947 42.41l-.999 1.546.999 1.55 1-1.548z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.1 36.2c1.2-4.3-3.5-10.6-6-12.1-.8-10.1-6.6-11-6.6-11-6.6-14.8-18.5-14.8-25 0 0 0-5.9.9-6.6 11-2.5 1.6-7.2 7.8-6 12.1-5.6 3.8-6.2 14.3-2.7 15.2-2.2 11.5 57.8 11.5 55.6 0 3.6-.9 2.9-11.3-2.7-15.2" fill="#e6eded"/><g fill="#d2d8d9"><path d="m50.4 35c-7.5-1.9-9.2 3.5-1.7 5.5 7.5 2 9.2-3.6 1.7-5.5"/><path d="m54.8 47c-5.5-5.4-9.7-1.6-4.2 3.9 5.5 5.5 9.8 1.5 4.2-3.9"/><path d="m42.6 24.8c-3.1 7 1.9 9.6 5.1 2.6 3.3-7-1.9-9.7-5.1-2.6"/><path d="m37 17.1c-7.1-3-9.6 2.1-2.5 5.2 7.1 3.2 9.6-2.2 2.5-5.2"/><path d="m30.1 6.6c-7.2 2.7-5.5 8.1 1.8 5.5 7.3-2.7 5.4-8.2-1.8-5.5"/><path d="m22.2 19.8c-6.5-4-9.8.6-3.3 4.7 6.6 4.2 9.9-.7 3.3-4.7"/><path d="m30.3 27.5c-7.4 2.1-6.2 7.6 1.3 5.6 7.5-2 6.1-7.7-1.3-5.6"/><path d="m12.5 31c-6.8 3.5-4.6 8.7 2.3 5.3 7-3.5 4.6-8.9-2.3-5.3"/><path d="m11.2 46c-7.4-2.2-9.3 3.1-2 5.4 7.5 2.3 9.4-3.2 2-5.4"/></g><path d="M47,59.8c0,2.9-30,2.9-30,0V36h30V59.8z" fill="#334037"/><g fill="#3f4f44"><path d="m20.6 47.1l-1 1.6 1 1.5 1-1.5z"/><path d="m32 47.1l-1 1.6 1 1.5 1-1.5z"/><path d="m43.4 47.1l-1 1.6 1 1.5 1-1.5z"/><path d="m20.6 37.8l-1 1.5 1 1.6 1-1.6z"/><path d="m32 37.8l-1 1.5 1 1.6 1-1.6z"/><path d="m43.4 37.8l-1 1.5 1 1.6 1-1.6z"/><path d="m20.6 56.5l-1 1.5 1 1.6 1-1.6z"/><path d="m32 56.5l-1 1.5 1 1.6 1-1.6z"/><path d="m43.4 56.5l-1 1.5 1 1.6 1-1.6z"/><path d="m37.7 51.8l-1 1.6 1 1.5 1-1.5z"/><path d="m26.3 51.8l-1 1.6 1 1.5 1-1.5z"/><path d="m37.7 42.5l-1 1.5 1 1.6 1-1.6z"/><path d="m26.3 42.5l-1 1.5 1 1.6 1-1.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f35a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f35a.svg
index 550c426..08398ca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f35a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f35a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#3e4347" cx="32" cy="55.56" rx="14.445" ry="4.424"/><path fill="#62727a" d="m62 32.09c0 16.329-13.432 24.987-30 24.987-16.57 0-30-8.658-30-24.987 0-11.08 13.432-15.16 30-15.16s30 4.07 30 15.16"/><path fill="#f7f2df" d="m57.14 30.933c-.19-.455 1.283.42 1.267-.862-.014-1.031-.973-3.65-1.582-4.501-1.186-1.657-2.258-1.234-.854-2.51.652-.592-.893-2.219-1.193-2.778 5.424 1.654-5.489-8.6-4-3.75-.033 0-2.382-3.097-2.813-3.468 1.943-.393 1.159-1.715-.26-2.288-.882-.343-1.792-.529-2.73-.557.456-.784-.864-1.279-1.317-1.407-2.484-.702-1.907-3.531-4.519-4.682-2.54-1.119-.213 3.85.26 4.437-1.423-.504-1.688.113-2.767-1.072-1.092-1.2-2.749-2.13-4.286-2.602-2.554-.785-8.721 2.361-4.172 2.736-1.8 1.013-4.438-.971-6.928.146-2.709-.461-7.475 4.71-4.01 4.168-.473.793-2.678.771-3.453 1.073-1.651.644-4.495 3.537-.756 3.069-.636.294-1.19.699-1.66 1.215-.468-3.582-3.561 3.695-3.537 5.322.037 2.496-.175 5.397-.801 7.643-.76 2.72-1.251 5.572-.033 6.735 9.412 8.981 43 8 52-2 .748-.831 1.448-3.395-1.858-4.067"/><g fill="#e8e1d6"><path d="m24.823 36.618c.173-.561-.556-1.291-1.738-1.846-.028-.246-.066-.5-.122-.758-.395-1.844-1.353-3.214-2.139-3.058-.703.14-1.025 1.454-.803 3.048-1.055-.045-1.847.188-1.996.672-.229.738 1.108 1.771 2.985 2.307.058.018.114.027.172.043.351.434.729.674 1.075.605.188-.037.347-.162.477-.35 1.1.066 1.935-.163 2.089-.663"/><path d="m13.305 34.07c2.441.613 2.273-4.987 2.796-6.02.347-.687 1.314-2.866.337-3.595.996-.635 1.482-2.079 1.713-3.137.575.448 1.198.802 1.869 1.063-.229.43-3.048.969-1.669 2.076-1.111-.24-1.66 4.663-1.416 5.665 1.076 4.427 3.904 2.79 2.687-1.125.686.774 1.5 1.048 2.445.823.074-.348.147-.696.221-1.044.903-.049 1.73-.318 2.48-.808 2.123-1.74-4.075-1.93-4.115-1.973.973-.555 7.243-2.485 2.699-3.448.041-.051 8.799-5.438 3.01-4.447-1.646.282-3.197 1.243-4.56 2.111-1.181-.75-4.645-2.477-5.407-1.582 1.128-3.849-2.139-1.89-3.122.059-1.148 2.274-.356 5.526 1.998 2.233-.735 2.28.607 2.8-.808 4.427-1.324 1.524-2.654 6.139-1.699 8.194-1.01-.93-.562-3.191-1.283-4.569-1.92-3.669-2.643 1.155-2.027 2.955-2.154.569 2.102 4.303 2.628 4.605 3.21 1.839 2.405-2.22 1.219-2.458"/><path d="m7.723 25.686c.471-.2.966-.468 1.457-.816 1.578-1.117 2.469-2.523 1.994-3.144-.478-.621-2.14-.221-3.717.896-1.576 1.117-2.472 2.524-1.994 3.146.194.253.595.328 1.101.26-.515.511-1.01 1.419-1.304 2.518-.492 1.82-.265 3.454.512 3.649.776.193 1.807-1.127 2.3-2.947.455-1.681.287-3.184-.349-3.562"/><path d="m15.365 33.8c-.782.174-1.052 1.801-.605 3.633.446 1.834 1.439 3.178 2.223 3 .78-.174 1.053-1.803.606-3.637-.446-1.83-1.443-3.172-2.224-2.996"/><path d="m24.829 17.397c1.578-1.116 2.468-2.523 1.993-3.144-.477-.621-2.139-.22-3.718.897-1.575 1.115-2.471 2.523-1.993 3.145.476.621 2.142.218 3.718-.898"/><path d="m11.879 17.431c1.578-1.116 2.469-2.524 1.994-3.145-.477-.621-2.139-.219-3.717.897-1.576 1.117-2.471 2.524-1.994 3.144.475.621 2.141.219 3.717-.896"/><path d="m39.32 31.545c.938-2.158.619-2.833-2.552-3.038 1.877-.726 4.776-2.269 3.746-4.305-.666-1.316-1.985-2.88-3.482-3.284-.799-.215-1.298.896-2.38 1.013.479-.2.588-.554.327-1.064 1.824.467.313-5.067-1.236-5.541-.871-.266-5.278-.983-5.413.828-.097 1.258 3.209 1.703 3.896 2.584-6.06-2.596-2.112 4.286 2.216 3.262-.438.771-1.088 1.316-1.948 1.638.921-2.097-5.688-1.409-6.567-.782-2.148 1.533 4.655 2.183 6.04 1.321-1.146 1.536 1.2 1.504 1.922 1.375.355 1.638-.24 1.643-.947 3.03-.93 1.826 3.58 3.242 4.563 3.395-2.75 1.01-4.124-.756-6.816 1.167-.225-1.731 1.508-.924 1.466-2.312-.032-1.171-3.03-1.526-3.716-1.391-5.964 1.199-1.255 1.707-.583 4.098-.506-.043-2.541-.015-1.94 1.166.65 1.277-1.398 2.678-1.802 4.438-.988 4.313 3.823-.237 3.928-2.843 3.708 1.57 2.924-2.489 5.398-1.758 1.556.461 11.556-.539 5.878-2.994m-2.707-7.03c.763-.457.698.119 1.428.771-1.637.137-1.081.462-1.428-.771"/><path d="m14.816 13.696c1.956.138 3.584-.374 3.643-1.143.058-.771-1.476-1.504-3.431-1.641-1.952-.136-3.585.374-3.643 1.145-.058.767 1.479 1.503 3.431 1.639"/><path d="m21.355 10.972c1.955.137 3.584-.376 3.643-1.145.059-.77-1.477-1.503-3.432-1.64-1.953-.137-3.584.375-3.643 1.143-.058.769 1.479 1.505 3.432 1.642"/><path d="m25.947 11.47c-.32-.707-2.035-.669-3.83.083-1.795.753-2.991 1.934-2.67 2.642.32.706 2.036.671 3.832-.083 1.794-.751 2.99-1.935 2.668-2.642"/><path d="m45.21 35.13c2.865.449 5.217-1.851 1.292-2.634.95-1.855.469-3.649 1.359-5.276.969-1.769-2.546-1.052-3.03-.898 1.328-1.481-3.01-6.418-4.566-5.182-1.725 1.359 2.507 5.339 3.974 5.399-3.141 1.234-3.599 4.114.317 2.868-.375.931-.598 1.946-.544 2.955-1.274.125-6.01 1.638 1.195 2.768"/><path d="m53.806 32.608c-.631-.044-1.22-.015-1.741.063-.018-.394-.068-.813-.161-1.248-.396-1.842-1.352-3.21-2.139-3.055-.786.156-1.103 1.779-.707 3.621.396 1.844 1.354 3.209 2.141 3.055.085-.018.162-.059.236-.109.589.23 1.332.402 2.161.461 1.953.137 3.583-.377 3.643-1.145.057-.77-1.478-1.504-3.433-1.643"/><path d="m42.43 35.388c-.32-.707-2.035-.668-3.829.084-.47.195-.896.422-1.267.662-1.7-.482-3.2-.361-3.444.316-.263.729 1.024 1.816 2.876 2.432 1.851.615 3.564.523 3.827-.205.096-.266-.02-.58-.288-.9 1.482-.745 2.411-1.756 2.125-2.389"/><path d="m47.973 37.17c.017-.074.032-.146.021-.219-.12-.762-1.788-1.15-3.726-.865-1.935.283-3.406 1.131-3.285 1.895.12.76 1.771 1.143 3.694.867-.536.502-.793 1-.624 1.375.319.707 2.035.672 3.832-.08 1.794-.754 2.989-1.938 2.667-2.645-.243-.537-1.298-.641-2.579-.328"/><path d="m29.11 14.293c1.761.829 3.47.937 3.824.247.354-.693-.786-1.924-2.545-2.753-1.758-.828-3.471-.94-3.824-.246-.352.691.788 1.924 2.545 2.752"/><path d="m39.936 14.539c.354-.694-.786-1.924-2.546-2.754-1.757-.828-3.47-.94-3.823-.247-.353.692.788 1.926 2.546 2.754 1.758.83 3.469.938 3.823.247"/><path d="m25.609 9.292c1.76.83 3.471.938 3.822.247.354-.694-.783-1.924-2.543-2.753-1.76-.827-3.471-.94-3.824-.246-.353.691.788 1.925 2.545 2.752"/><path d="m33.498 10.99c1.957-.055 3.525-.725 3.502-1.494-.007-.235-.175-.449-.441-.636.124.017.249.035.363.041 1.228.957 2.469 1.355 2.953.881.562-.55-.117-2.066-1.515-3.383-1.398-1.318-2.987-1.938-3.549-1.388-.076.075-.126.169-.157.277-1.334-.417-2.47-.381-2.75.167-.352.692.788 1.926 2.546 2.755.029.014.059.024.088.037-.355-.037-.729-.058-1.124-.047-1.957.054-3.526.721-3.503 1.492.024.768 1.628 1.351 3.587 1.298"/><path d="m27.812 28.08c1.761.83 3.471.938 3.825.248.353-.693-.787-1.924-2.546-2.752-1.757-.829-3.47-.941-3.823-.247-.354.691.787 1.923 2.544 2.751"/><path d="m46.1 15.19c.563-.55-.117-2.064-1.514-3.38-1.4-1.319-2.988-1.939-3.55-1.391-.563.552.116 2.064 1.515 3.382 1.396 1.318 2.986 1.941 3.549 1.389"/><path d="m46.879 13.339c-.231.739 1.104 1.774 2.979 2.315 1.876.54 3.585.382 3.815-.358.23-.737-1.104-1.774-2.98-2.316-1.877-.541-3.584-.378-3.814.359"/><path d="m39.16 18.988c1.875.541 3.583.382 3.813-.357.23-.738-1.102-1.777-2.979-2.317-1.875-.541-3.583-.378-3.813.359-.231.738 1.103 1.774 2.979 2.315"/><path d="m52.52 18.764c.23-.739-1.102-1.775-2.979-2.317-1.875-.54-3.584-.378-3.813.36-.231.739 1.103 1.775 2.978 2.315 1.875.54 3.584.382 3.814-.358"/><path d="m44.34 10.199c1.875.54 3.584.382 3.813-.357.23-.738-1.102-1.776-2.98-2.317-1.875-.54-3.584-.379-3.813.36-.231.739 1.104 1.774 2.98 2.314"/><path d="m53.983 28.926c.396 1.845 1.354 3.209 2.14 3.056.787-.157 1.102-1.776.705-3.62-.395-1.842-1.353-3.21-2.139-3.054-.786.156-1.101 1.776-.706 3.618"/><path d="m56.791 25.702c.785-.158 1.102-1.776.705-3.62-.396-1.843-1.354-3.211-2.14-3.056-.785.157-1.102 1.778-.707 3.62.398 1.846 1.356 3.21 2.142 3.056"/><path d="m43.23 16.584c-.618.488-.114 2.064 1.13 3.52 1.243 1.454 2.755 2.233 3.374 1.744.62-.49.113-2.064-1.129-3.517-1.243-1.455-2.754-2.238-3.375-1.747"/><path d="m49.3 19.622c-.619.489-.117 2.065 1.129 3.521.057.066.115.123.172.185-.327-.063-.67-.115-1.034-.141-1.953-.137-3.585.374-3.644 1.143-.058.77 1.479 1.505 3.432 1.642 1.829.128 3.354-.316 3.595-1 .35.089.651.076.853-.083.621-.489.115-2.063-1.129-3.518-1.243-1.453-2.754-2.236-3.374-1.746"/></g><path fill="#62727a" d="m59 24.29v5.462c0 7.528-12.09 10.851-27 10.851-14.91 0-27-3.322-27-10.851v-5.462c-1.92 2.081-3 4.657-3 7.796 0 16.329 13.43 24.987 30 24.987 16.568 0 30-8.658 30-24.987 0-3.139-1.078-5.715-3-7.796"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 34.1c0 16.3-13.4 25-30 25-16.6 0-30-8.7-30-25 0-11.1 13.4-15.2 30-15.2 16.6 0 30 4.1 30 15.2" fill="#62727a"/><path d="m57.3 26.1c2.9-7.2-2.9-4.9-1.6-7.4 2.1-3.9-4.6-9.2-6.9-8.6-.7-4.5-6.2-7.6-13-5.6-1.4-3.5-19-4.6-20.6 5.5-2.4-.6-9 4.8-6.9 8.6 1.3 2.5-4.5.2-1.6 7.4-1.7 1.9-2.1 9.2-1.3 10 4.6 5 15.6 8 26.6 8s22-3 26.6-8c.8-.8.4-8.1-1.3-9.9" fill="#e6eded"/><ellipse cx="32" cy="57.6" rx="14.4" ry="4.4" fill="#3e4347"/><path d="m59 26.3v5.5c0 7.5-12.1 10.9-27 10.9-14.9 0-27-3.3-27-10.9v-5.5c-1.9 2.1-3 4.7-3 7.8 0 16.3 13.4 25 30 25 16.6 0 30-8.7 30-25 0-3.1-1.1-5.7-3-7.8" fill="#62727a"/><g fill="#d2d8d9"><path d="m51.7 28.3c-7.4-1.9-9.1 3.5-1.7 5.4 7.5 2 9.1-3.5 1.7-5.4"/><path d="m44 33.2c-5.4-5.3-9.6-1.6-4.2 3.9 5.5 5.4 9.7 1.4 4.2-3.9"/><path d="m46.9 18.2c-6.5 3.9-3.9 8.9 2.7 5 6.7-3.9 3.9-9-2.7-5"/><path d="m42.4 8.5c-7-3-9.5 2.1-2.5 5.1 7 3.1 9.5-2.1 2.5-5.1"/><path d="m25.2 4.9c-7.1 2.7-5.4 8 1.7 5.4 7.3-2.6 5.4-8.1-1.7-5.4"/><path d="m17.4 16.6c-6.5-4-9.7.6-3.2 4.7 6.4 4.1 9.7-.7 3.2-4.7"/><path d="m32.1 18.7c-7.3 2.1-6.1 7.6 1.3 5.6 7.4-2.1 6.1-7.7-1.3-5.6"/><path d="m11.9 28.5c-6.8 3.5-4.5 8.6 2.3 5.2 7-3.4 4.5-8.7-2.3-5.2"/><path d="m28.2 33.4c-7.3-2.2-9.2 3-1.9 5.4 7.3 2.3 9.2-3.2 1.9-5.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f35b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f35b.svg
index e5b3e9e..5880aea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f35b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f35b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m57.977 36.12c0 7.664-11.628 13.877-25.976 13.877-14.352 0-25.975-6.213-25.975-13.877 0-7.659 11.623-13.874 25.975-13.874 14.348.001 25.976 6.215 25.976 13.874"/><path fill="#c7d7d7" d="m62 30.975c0 9.378-13.43 16.978-30 16.978-16.568 0-29.999-7.599-29.999-16.978 0-9.373 13.431-16.975 29.999-16.975 16.571 0 30 7.602 30 16.975"/><g fill="#aa4800"><path d="m56.702 29.525c0 6.245-11.06 11.305-24.701 11.305-13.641 0-24.699-5.061-24.699-11.305 0-6.234 11.06-11.298 24.699-11.298 13.643 0 24.701 5.064 24.701 11.298"/><path d="m15.922 37.973c0 0 1.395.455.569 2.26-.826 1.809 2.068 4.127 4.672 2.75s6.375-.939 7.789 0c1.414.941 5.414 1.232 7.514 0s3.699-2.201 7.25-2.152c3.551.051 6.218-3.244 8.02-4.508 1.806-1.262-3.373-1.527-6.273-.514s-17.521 3.684-22.762 1.914c-5.238-1.768-8.927-.774-6.782.25"/></g><g fill="#ce9500"><path d="m42.07 29.44c.443-1.313 1.258-4.631 3.621-4.568 2.362.063 1.884 2.805 1.884 2.805s.184 3.784-.437 3.577c-.621-.206-1.33-.947-2.51-.647-1.179.301-3.294 1.01-2.558-1.167"/><path d="m33.28 35.674c.776-1.623 1.394-2.219 2.242-2.467.85-.253.929-1.452 2.145-.996 1.216.46 2.277-.679 2.592 1.292.313 1.969-1.951 1.854-2.327 3.064-.374 1.205-2.235.639-3.045 1.809-.813 1.169-2.561-.71-1.607-2.702"/><path d="m36.497 25.331c-.221.712-.336 2.496.617 1.427.953-1.072 2.182-2.049 3.127-1.607.947.441 1.369-1.091.48-2.276-.889-1.183-1.848-.998-2.246-1.047-.398-.048-1.525.292-1.457 1.323.069 1.031-.164 1.036-.521 2.18"/><path d="m27.777 32.01c-1.65-.204-3.861 1.227-4.02 3.143-.158 1.916.847 3.313 2.01 2.844 1.162-.469 1.852-2.844 2.433-3.609.58-.768.572-2.255-.424-2.378"/></g><path fill="#fffbe9" d="m37.39 19.697c.973-.102-.537-.853-.751-.944-.418-.181-.861-.348-1.304-.459-.49-.438-.101-.67-.929-.97-.586-.213-.452-.343-.844-.78-.501-.56-1.135-1.019-1.777-1.4-.462-.274-2.884-1.238-1.748.193-.284-.005-3.354.302-2.695 1.01-.939-.403-2-.625-3.02-.644-.402-.008-2.08.16-1.086.825-.394.176-.627.173-1.08.241-.111-.276-.446-.311-.7-.294-.556.034-.684.187-1.249.039-.267-.069-.721-.176-.968.032-.999.825-3.601.095-4.361 1.703-.215.454-.178.871-.928.876-.658.004-1.487-.785-1.704.35-.71.273-3.352 2.23-1.031 2.093-.463.643-1.138.611-1.644 1.377-.583-.558-1.051-.171-1.463-.63-.266-.295-.829-.761-1.21-.354-.839.896.26 2.688.337 3.632-.354-.398-1.926-1.693-2.113-.45-.091.606.226 1.271.528 1.772.498.827.456.773.28 1.692-.162.846-.088.63-.902.806-.416.09-1.033.36-.882.904.082.228.222.413.419.556.658.522.135.125.169.75.032.493.692.618 1.072.648.446.035.912-.014 1.346-.122.15.124.31.234.478.333-.081.205-.128.485.096.627.178.088.365.111.562.072.629-.084.343.055.724.496.479.557 1.208.922 1.923 1.055.419.076.957.098 1.317-.176.661-.506-.335-.939.232-1.352.379-.276 2.438-1.857 1.794-2.5.934.137 1.956-.072 2.822-.42.349-.14.815-.337 1.016-.684.082-.13.075-.258-.021-.384-.304-.104-.312-.258-.024-.459.812-.212 1.315.05 2.107-.491.374.074.999.166 1.3-.158.413-.455.737-.434 1.379-.606-.526 1.01 3.148-.09 3.415-.206.238-.104 1.375-.549 1.204-.984-.203-.517-1.582-.219-1.93-.15.621-.817-.669.133.411-.604.48-.325.806-.194 1.308.006.835.333 1.895.203 2.75.059.53-.09 1.954-.228 2.233-.819.264-.558-1.829-.506-2.01-.495.473-.481-.572-.587-.781-.603.501-.37.849-.185 1.425-.469.455-.225 1.415.101 1.793.472.337.33.947.616 1.325.174.493-.576-.024-1.401.072-1.964.398.443 1.094 1.048 1.749.959.922-.133-.023-1.484-.285-1.781.317-.221.609-.46.785-.815.381.124.782.238 1.185.268.891.063.252-.587-.118-.851"/><g fill="#e8e1d6"><path d="m26.474 16.715c.38.032.797.044 1.232.027 1.411-.058 2.444-.34 2.304-.71-.145-.37-1.425-.716-2.852-.689-.008 0-.014.001-.021.001-.298-.033-.614-.053-.942-.052-1.441.003-2.493.4-2.354.81.132.394 1.289.626 2.633.613"/><path d="m15.876 19.456c1.366-.335 2.361-.898 2.207-1.334-.153-.434-1.415-.603-2.804-.3-1.386.3-2.354.981-2.178 1.45.177.469 1.411.519 2.775.184"/><path d="m10.543 23.59c.409.32 1.495-.237 2.468-1.159.972-.925 1.461-1.873 1.052-2.206-.406-.334-1.558.085-2.53 1.022-.974.937-1.398 2.024-.99 2.343"/><path d="m25.05 17.09c-.128.379.916.938 2.317 1.27 1.401.329 2.642.346 2.784.021.145-.324-.875-.912-2.294-1.295-1.416-.385-2.68-.375-2.807.004"/><path d="m24.613 20.686c.148-.25.249-.494.313-.723.141.681.489 1.225.889 1.43-.4.112-.838.294-1.257.549-1.059.642-1.585 1.475-1.205 1.766.379.294 1.518-.054 2.575-.682 1.058-.632 1.633-1.315 1.256-1.623-.115-.092-.31-.133-.547-.134.293-.293.446-.853.354-1.501-.13-.924-.716-1.702-1.307-1.712-.418-.008-.711.393-.797.968-.067-.112-.165-.194-.293-.242.292-.155.449-.325.394-.492-.135-.401-1.398-.662-2.816-.508-1.385.149-2.377.666-2.274 1.096-.002-.002-.002-.004-.004-.006-.387-.321-1.571-.057-2.61.684-1.041.739-1.542 1.66-1.151 1.97.389.312 1.519-.098 2.56-.823.882-.619 1.409-1.272 1.309-1.654.351.323 1.463.413 2.691.249.246-.033.476-.076.694-.122-.275.232-.537.545-.74.919-.085.156-.148.31-.202.461-.406-.002-.971.392-1.465 1.029-.081-.817-.398-1.399-.837-1.417-.579-.02-1.123.994-1.206 2.28-.008.12-.007.235-.007.351-.51.128-1.152.469-1.74.989-.991.876-1.441 1.906-1.046 2.213.396.31 1.485-.212 2.478-1.074.234-.205.438-.411.613-.61.148.272.339.434.558.422.121-.007.239-.068.354-.163.047.062.103.111.173.138.492.183 1.389-.632 2.039-1.749.178-.307.314-.604.414-.882.536.082 1.334-.541 1.84-1.397"/><path d="m8.08 25.12c-.501-.186-1.379.685-1.922 2.01-.543 1.325-.559 2.572-.075 2.722.482.15 1.296-.825 1.856-2.113.562-1.293.641-2.434.141-2.621"/><path d="m9.431 24.792c.554-.073.988-1.153.973-2.411-.014-1.258-.494-2.257-1.076-2.231-.582.023-1.021 1.101-.979 2.405.044 1.307.53 2.311 1.082 2.237"/><path d="m14.759 28.14c.538-.038 1.076-1.046 1.211-2.235.136-1.192-.205-2.153-.769-2.167-.567-.012-1.122.973-1.229 2.214-.109 1.24.248 2.228.787 2.188"/><path d="m7.744 30.74c-.472.324-.39 1.505.157 2.592.548 1.09 1.335 1.654 1.787 1.299.45-.352.411-1.465-.115-2.528-.526-1.061-1.357-1.692-1.829-1.363"/><path d="m14.936 30.332c-.221-.364-1.09-.62-2.186-.593-.417.011-.808.068-1.156.155.236-.472.384-1.194.369-1.975-.023-1.271-.49-2.245-1.046-2.179s-.967 1.188-.912 2.509c.039.954.296 1.723.634 2.037-.217.149-.357.316-.373.493-.049.535.96.889 2.254.803.158-.011.314-.026.465-.047-.362.366-.544.718-.455.95.175.457 1.278.264 2.499-.359 1.218-.623 2.106-1.412 1.954-1.834-.132-.362-1.01-.349-2.047.04"/><path d="m17.903 22.11c-.147-.414-1.386-.542-2.745-.206-1.362.333-2.309 1.028-2.139 1.479.171.452 1.376.461 2.716.092 1.335-.37 2.319-.947 2.168-1.365"/><path d="m18.06 26.07c-1.299.448-2.198 1.219-2.041 1.646.158.434 1.3.331 2.575-.152 1.273-.485 2.218-1.139 2.078-1.535-.137-.394-1.319-.408-2.612.041"/><path d="m36.11 20.02c-.479-.267-1.552-.089-2.374.472-.486.33-.771.705-.831 1.01-.115-.048-.257-.092-.42-.131.247-.232.443-.574.532-.97.178-.791-.15-1.538-.746-1.673-.59-.134-1.209.438-1.369 1.284-.089.461-.024.89.143 1.201-.172-.002-.35.001-.529.01-1.396.071-2.414.49-2.29.859.052.152.291.266.642.342-.355.1-.734.245-1.102.445-.602.326-1.027.709-1.229 1.033-.438-.012-.96.028-1.511.139-1.35.268-2.314.867-2.176 1.262.139.399 1.314.414 2.646.109 1.069-.245 1.912-.603 2.143-.922.445-.119.958-.324 1.457-.59.95-.507 1.518-1.054 1.375-1.375.153-.005.31-.013.469-.025 1.063-.083 1.918-.28 2.205-.519.484.214 1.504-.075 2.322-.588.828-.519 1.125-1.098.643-1.369"/><path d="m33.441 18.386c.574.005.721-.663.312-1.539-.406-.874-1.224-1.65-1.813-1.682-.589-.034-.712.71-.287 1.614.42.906 1.217 1.604 1.788 1.607"/><path d="m12.408 24.755c-.547.155-.746 1.271-.455 2.47.291 1.2.938 1.994 1.458 1.798.521-.196.74-1.275.477-2.434-.264-1.156-.932-1.989-1.48-1.834"/></g><g fill="#56832f"><path transform="matrix(.8001-.5999.5999.8001-12.84 11.944)" d="m10 24.737h3v1h-3z"/><path transform="matrix(.9923-.124.124.9923-2.514 2.454)" d="m16.95 20.919h3v1h-3z"/><path transform="matrix(.9923-.124.124.9923-2.18 3.815)" d="m28.05 18.919h3v1h-3z"/><path transform="matrix(.9923-.124.124.9923-2.576 3.466)" d="m25.05 21.919h3v1h-3z"/><path transform="matrix(.8682.4961-.4961.8682 16.759-3.278)" d="m13.05 29.415h3v1h-3z"/><path transform="matrix(.8682.4961-.4961.8682 15.257-6.332)" d="m18.05 25.06h3v1h-3z"/><path transform="matrix(.8682.4961-.4961.8682 12.311-9.239)" d="m22.05 18.06h3v1h-3z"/><path transform="matrix(.8682.4961-.4961.8682 14.654-.065)" d="m5.95 27.06h3v1h-3z"/><path transform="matrix(-.3561.9345-.9345-.3561 64.09 15.947)" d="m25.05 29.555h3v1h-3z"/><path transform="matrix(.9923-.124.124.9923-3.105 4.234)" d="m30.95 26.555h3v1h-3z"/><path transform="matrix(.9923-.124.124.9923-2.895 6.338)" d="m47.95 25.919h3v1h-3z"/><path transform="matrix(.9923-.1237.1237.9923-3.879 5.637)" d="m41.95 33.555h3v1h-3z"/><path transform="matrix(.8682.4961-.4961.8682 22.458-10.74)" d="m29.95 36.415h3v.999h-3z"/><path transform="matrix(.8682.4961-.4961.8682 20.18-13.577)" d="m34.15 30.703h3v1h-3z"/><path transform="matrix(.8682.4961-.4961.8682 19.557-15.813)" d="m38.05 28.415h3v1h-3z"/><path transform="matrix(.8683.496-.496.8683 19.15-6.305)" d="m19.95 32.415h2.999v1h-2.999z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58 36.6c0 8.5-11.7 15.4-26 15.4-14.4 0-26-6.9-26-15.4 0-8.5 11.6-15.4 26-15.4 14.3 0 26 6.9 26 15.4" fill="#94989b"/><path d="m62 30.9c0 10.4-13.4 18.9-30 18.9-16.6 0-30-8.4-30-18.9 0-10.5 13.4-18.9 30-18.9 16.6 0 30 8.4 30 18.9" fill="#c7d7d7"/><path d="m56.7 29.2c0-6.9-11.1-12.6-24.7-12.6-13.6 0-24.7 5.6-24.7 12.6 0 3.9 3.5 7.4 9.1 9.7.3.3.6 1 .1 2.2-.8 2 2.1 4.6 4.7 3.1s6.4-1 7.8 0 5.4 1.4 7.5 0 3.7-2.4 7.2-2.4 6.2-3.6 8-5c0 0 0 0 0 0 3.2-2.1 5-4.7 5-7.6" fill="#ba5327"/><g fill="#fbbf67"><path d="m52.4 28c-1.5-2.5-4.8 1-6.7.5-4.2-1.1-1.1 5 .6 5.3 2 .4 7.6-3.3 6.1-5.8"/><path d="m37.5 33.8c-3-.1-3.4-1-4.9.4-3.2 3 6.7 6.4 7.9 5.2 1.4-1.5 0-5.5-3-5.6"/><path d="m43 20.5c-3.5-.1-3.7-.7-5.4 1-3.8 3.6 1.2 7.5 2.6 6 1.6-1.8 6.2-6.9 2.8-7"/><path d="m26.3 32.1c-2.8-.3-6.5 1.5-6.8 4-.3 2.4 1.4 4.2 3.4 3.6 2-.6 3.1-3.6 4.1-4.6 1-1 .9-2.8-.7-3"/></g><path d="m31 13.8c-1.3-.2-2.2 2.3-3.5 2.1-.9-.1-2.9-2-3.7-1.8-1 .2-2.3 3.1-3.3 3.4-1.4.3-2-2.5-3.4-2.1-3.3.9-5.1 6.4-8.8 6.4-2.8.1-5.7 10-2.7 10 5.4 0 4.9 3.3 5.6 3.3.8.1.8-2.6 1.4-3 .8-.6 3.1.5 3.8-.2.6-.5 0-2.7.6-3.2.7-.6 2.9.7 3.8.3.5-.2.7-2.5 1.1-2.1 3 3.2 5 1.9 5.6.5.4-1-1.4-3.5-.6-4.3.8-.8 2.7 2.7 3.7 2.2.4-.2.1-1.5.4-1.7.6-.5 2.5 1 3 .3.3-.5-1.2-1.9-.9-2.4.4-.6 2.2.6 2.8.2 1-.5 2-3.7 1.8-4.8-.5-1.7-5.3-2.9-6.7-3.1" fill="#fffbe9"/><g fill="#e8e1d6"><path d="m14.7 18.3c-1.2 1.7-1.6 3.5-1 4 .6.5 2-.4 3.2-2.1 1.2-1.7 1.6-3.5 1-4-.6-.5-2 .4-3.2 2.1"/><path d="m18.6 27.3c-1.7-.9-3.4-1.1-3.7-.3-.3.7.8 2.1 2.5 3 1.7.9 3.4 1.1 3.7.3.3-.8-.8-2.1-2.5-3"/><path d="m9.3 25c-1.5 1.2-2.3 2.8-1.8 3.4.2.3 1.4-.8 1.1 2-.2 1.8 2.1 0 3.5-1.3 3.2-3.2.7-6.9-2.8-4.1"/><path d="m25.4 23.9c.8-.1-.4-2.3-1.8-3.6-1.5-1.3-3.4-1.9-3.5-1.1-.2 1.9-1.2 1.3-1.4 1.7-.4.7.5 2.3 2.1 3.4 1.5 1.1 3.1 1.5 3.5.8.1-.3-.7-1.1 1.1-1.2"/><path d="m33.5 18.7c1.5-1.2 2.3-2.8 1.8-3.4-.5-.7-3.9 1.8-7.1.9-1.8-.5-3.5.6-3.5 1.4 0 .6.7 1.1 1.8 1.4-.5.9-.7 1.7-.3 2.1.5.6 2.1 0 3.5-1.3 0-.3 2.3.1 3.8-1.1"/></g><g fill="#699635"><path d="m16.8 24.4c-.6-1.9-2.4-3.2-2.4-3.2s.2 2 .4 2.9c-2-.8-2-4.7-2-4.7s-1.3.9-1.2 2.4c-2.2-1.9-4-1-4-1s2.7 1.7 3.1 2.9c-1.5.1-2.4.7-3 2.1 0 0 3-1.6 5.3-.4-.9.8-.4 2.8-.4 2.8 3.6-4.2 5.9-.4 7.5-1.5-1.2-2-3.3-2.3-3.3-2.3"/><path d="m37.6 14.3c0 0-2.1 1.5-3 1.3.5-1.3.5-2.2-.2-3.1 0 0-.2 3-1.8 4.3-.2-1-1.6-1.4-1.6-1.4 1.3 4.5-2 4.8-2 6.4 1.8-.2 2.7-1.7 2.7-1.7 1.4.3 2.9-.6 2.9-.6s-1.3-.6-2-.8c1.2-1.2 3.7.2 3.7.2s0-1.4-1-1.9c2.2-1 2.3-2.7 2.3-2.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f35c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f35c.svg
index 79a128e..93c4cdb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f35c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f35c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m45.866 46.3c-3.834.888-8.943 1.035-14.03 1.035-5.076 0-9.573-.146-14.01-1.03v11.733c4.433 2.608 8.971 3.967 14.01 3.967 5.04 0 10.195-1.364 14.03-3.979v-11.726"/><path d="m31.999 20.665c-16.568 0-30 5.342-30 11.927 0 .284.025.562.075.839.093.528.271 1.05.532 1.559 2.789 5.438 14.889 9.528 29.393 9.528s26.605-4.091 29.395-9.528c.262-.509.438-1.03.531-1.559.05-.277.074-.555.074-.839 0-6.585-13.43-11.927-30-11.927"/></g><path fill="#f2b200" d="m31.999 44.518c14.504 0 26.605-4.091 29.395-9.528.058-.162.115-.328.173-.492-2.422-5.62-14.736-9.898-29.567-9.898-14.83 0-27.14 4.278-29.566 9.898.057.164.115.331.174.492 2.788 5.437 14.887 9.528 29.391 9.528"/><g fill="#e8e8e8"><path d="m17.692 2c2.123 1.056 3.956 3.249 4.41 6.06.47 2.803-.535 5.71-2.224 7.784-1.205 1.467-1.808 3.345-1.839 5.469-.013 1.052.074 2.157.342 3.235.113.548.292 1.078.501 1.604.221.518.473 1.031.929 1.432-.61-.052-1.174-.447-1.639-.869-.475-.431-.863-.945-1.226-1.481-.676-1.098-1.183-2.33-1.423-3.655-.252-1.321-.254-2.733.063-4.116.156-.688.395-1.366.699-2.01.168-.318.324-.619.546-.951.243-.378.342-.494.591-.825 1.242-1.552 2.09-3.409 2.17-5.408.124-2.01-.659-4.152-1.9-6.267"/><path d="m30.892 2c2.123 1.056 3.957 3.249 4.412 6.06.469 2.803-.537 5.71-2.227 7.781-1.205 1.468-1.808 3.346-1.84 5.47-.012 1.053.074 2.157.344 3.235.113.549.29 1.08.5 1.604.221.52.473 1.033.93 1.433-.612-.054-1.174-.449-1.641-.869-.473-.432-.863-.946-1.225-1.48-.676-1.099-1.183-2.334-1.423-3.657-.251-1.321-.254-2.731.062-4.114.156-.688.396-1.366.699-2.01.168-.316.325-.619.547-.949.243-.379.342-.494.59-.825 1.243-1.555 2.09-3.411 2.172-5.411.121-2.01-.66-4.149-1.9-6.264"/><path d="m44.09 2c2.123 1.056 3.956 3.249 4.412 6.06.468 2.803-.537 5.71-2.225 7.784-1.206 1.467-1.81 3.345-1.841 5.469-.013 1.052.073 2.157.342 3.235.114.548.292 1.078.502 1.604.221.518.474 1.031.929 1.432-.611-.052-1.175-.447-1.64-.869-.473-.431-.863-.945-1.226-1.481-.676-1.098-1.183-2.33-1.423-3.655-.249-1.321-.254-2.733.063-4.116.155-.688.395-1.366.7-2.01.166-.318.322-.619.545-.951.242-.378.342-.494.59-.825 1.242-1.552 2.09-3.409 2.172-5.408.123-2.01-.658-4.152-1.9-6.267"/></g><g fill="#ffe299"><path d="m17.09 39.842c-3.335 0-8.06-1.55-9.06-4.256-.422-1.139-.35-2.917 2.404-4.924 4.595-3.349 10.254-1.413 15.246.295 2.778.95 5.402 1.848 7.669 1.848 3.974 0 6.714-1.182 9.131-2.225 2.614-1.128 5.083-2.191 8.437-1.466 3.125.678 5.208 2.918 5.067 5.45-.124 2.232-2.112 4.788-7.324 5.267l-.095-1.127c4.527-.414 6.245-2.443 6.342-4.205.109-1.958-1.621-3.717-4.207-4.277-3.03-.655-5.246.299-7.809 1.403-2.51 1.083-5.355 2.309-9.542 2.309-2.438 0-5.142-.924-8-1.903-4.986-1.704-10.143-3.468-14.297-.438-1.748 1.272-2.425 2.479-2.02 3.583.851 2.292 5.949 3.922 9.134 3.467l.146 1.121c-.377.051-.788.078-1.223.078"/><path d="m40.08 39.587c-2.15 0-4.406-.604-6.646-1.787-8.776-4.643-15.507-3.488-18.1-2.074l-.498-1c.844-.46 3.24-1.513 7.275-1.362 3.805.143 7.777 1.297 11.809 3.43 5.897 3.119 11.578 1.793 14.826-3.46l.904.615c-1.742 2.82-4.182 4.669-7.05 5.351-.815.192-1.657.289-2.516.289"/><path d="m33.1 41.16c-5.971-3.28-11.205-.051-11.257-.018l-.558-.968c.234-.148 5.812-3.588 12.314-.017l-.499 1"/></g><path fill="#e8e8e8" d="m31.999 44.518c-14.504 0-26.604-4.091-29.393-9.528 5.101 14.13 16.344 23.946 29.393 23.946 13.05 0 24.293-9.818 29.395-23.946-2.79 5.437-14.891 9.528-29.395 9.528"/><g fill="#b2c1c0"><path d="m16.17 49.804c-.985-.315-1.976-.661-2.971-1.034-.55-.807-1.106-1.615-1.673-2.428.317.119.633.234.949.349.341.507.678 1.012 1.012 1.517.428.153.854.302 1.278.444-.647-1.033-1.307-2.071-1.979-3.113-1.329-.445-2.669-.938-4.02-1.475-.229-.307-.458-.611-.689-.918 1.739.69 3.46 1.311 5.167 1.854 1 1.607 1.979 3.209 2.925 4.804"/><path d="m21.419 51.22c-1.012-.22-2.025-.472-3.045-.756-.395-.757-.797-1.518-1.204-2.276.354.099.71.192 1.063.284.239.476.476.951.71 1.427.378.096.755.19 1.132.279-.445-.977-.899-1.957-1.361-2.937-1.261-.299-2.527-.641-3.801-1.025-.167-.285-.335-.569-.504-.854 1.701.512 3.389.95 5.065 1.315.668 1.517 1.316 3.03 1.945 4.543"/><path d="m26.487 52.07c-.961-.11-1.926-.25-2.891-.419-.242-.724-.49-1.448-.74-2.173.307.054.613.105.92.153.142.454.282.909.422 1.363.373.06.746.114 1.119.164-.249-.941-.502-1.884-.762-2.826-1.244-.168-2.494-.377-3.747-.629-.109-.271-.219-.542-.329-.812 1.674.336 3.339.601 4.998.791.346 1.465.683 2.928 1.01 4.388"/><path d="m31.643 52.38c-.998-.007-1.996-.044-2.995-.115-.096-.706-.195-1.413-.295-2.118.348.024.695.044 1.044.061.044.445.089.891.133 1.337.33.016.659.029.989.04-.056-.926-.111-1.852-.169-2.777-1.192-.035-2.386-.111-3.582-.225-.051-.263-.103-.524-.153-.783 1.657.156 3.311.241 4.963.254.021 1.442.043 2.884.065 4.326"/><path d="m36.556 52.17c-.92.088-1.839.148-2.758.184.052-.704.105-1.407.158-2.111.304-.013.607-.025.912-.042-.05.445-.098.89-.146 1.335.329-.018.66-.04.989-.064.138-.93.278-1.859.422-2.79-1.195.089-2.388.141-3.581.152.006-.259.012-.519.017-.777 1.605-.016 3.211-.1 4.821-.252-.287 1.454-.565 2.909-.834 4.365"/><path d="m41.737 51.4c-.969.195-1.935.362-2.897.499.197-.717.397-1.434.601-2.149.35-.052.699-.104 1.049-.161-.146.455-.291.911-.436 1.367.291-.048.582-.098.873-.149.332-.955.671-1.91 1.016-2.867-1.158.208-2.313.38-3.464.516.063-.263.126-.525.19-.788 1.611-.189 3.229-.449 4.854-.775-.612 1.504-1.208 3.01-1.786 4.507"/><path d="m46.854 50.11c-.941.283-1.878.541-2.811.772.349-.747.702-1.493 1.062-2.242.31-.077.62-.154.93-.237-.243.477-.484.953-.724 1.429.336-.089.673-.181 1.01-.277.536-1 1.082-2 1.639-3.01-1.223.346-2.438.651-3.648.919.119-.273.24-.545.361-.817 1.63-.36 3.269-.788 4.922-1.285-.942 1.586-1.855 3.168-2.741 4.746"/><path d="m52.18 48.24c-1 .401-1.996.771-2.985 1.114.501-.79 1.01-1.582 1.526-2.376.359-.125.72-.252 1.08-.383-.344.508-.687 1.015-1.025 1.521.3-.108.6-.22.899-.334.74-1.067 1.496-2.14 2.265-3.213-1.246.473-2.484.904-3.717 1.298.18-.288.358-.576.539-.865 1.707-.545 3.428-1.163 5.166-1.854-1.287 1.707-2.537 3.405-3.748 5.092"/></g><g fill="#ffe299"><path d="m24.709 10.87l-.511-.952c2.645-1.419 3.814-6.114 3.825-6.162l1.05.255c-.051.212-1.293 5.211-4.364 6.859"/><path d="m31.01 10.405l-.899-.599c.018-.026 1.729-2.619 2.124-5.147l1.067.167c-.434 2.768-2.217 5.466-2.292 5.579"/></g><g fill="#d3976e"><path d="m61.999 10.225l-40.582-7.611-.217 1.072 40.37 9.647z"/><path d="m59.691 19.323l-38.641-14.531-.399 1.019 38.08 16.5z"/></g><g fill="#ffe299"><path d="m27.16 10.934c-.56 0-1.11-.28-1.536-.791-1.229-1.473-.635-4.587.18-6.328.383-.817 1.02-1.794 1.871-1.794.615 0 .958.268 1.138.494.46.577.287 1.398.267 1.491l-1.053-.243.526.121-.528-.116c.037-.168.037-.464-.058-.58-.048-.059-.146-.087-.292-.087-.07 0-.453.219-.909 1.21-.773 1.681-1.093 4.205-.313 5.139.242.291.521.433.781.399.316-.039.633-.344.867-.833l.975.466c-.402.841-1.01 1.351-1.709 1.439-.069.009-.138.013-.207.013"/><path d="m29.475 11.459c-.567 0-1.122-.298-1.512-.82-1.821-2.442-.774-5.769.312-7.293.646-.904 1.34-1.294 1.955-1.098.617.198.93.902.93 2.092h-1.081c0-.757-.141-1-.186-1.057-.154.032-.657.392-1.154 1.389-.719 1.437-1.125 3.692.09 5.319.195.264.467.409.706.383.276-.03.442-.282.532-.486l.988.437c-.285.646-.795 1.055-1.4 1.124-.06.005-.12.01-.18.01"/><path d="m26.702 40.13c.493-2 1.055-4.27-.206-9.378-.975-3.947.274-6.704 1.376-9.138.779-1.72 1.451-3.205 1.275-4.873-.941-8.872.501-13.276 2.165-14.439.467-.325.972-.396 1.39-.189.442.217.713.701.742 1.329.018.373-.03.846-.145 1.404l-1.059-.215c.094-.465.139-.858.124-1.137-.013-.257-.093-.389-.14-.412-.033-.017-.139-.002-.294.104-1.085.759-2.665 4.441-1.71 13.441.207 1.96-.557 3.647-1.365 5.434-1.08 2.383-2.196 4.849-1.312 8.432 1.324 5.367.729 7.772.206 9.896-.312 1.269-1.372 1.055-1.047-.259"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 28.3h-60c0 0 1.8 16.6 4.9 21.2 3.5 5.1 11.8 12.5 25.1 12.5 13.3 0 21.6-7.4 25.1-12.5 3.1-4.6 4.9-21.2 4.9-21.2" fill="#e0dac6"/><path d="m62 28.3c0 5.7-13.4 10.3-30 10.3-16.6.1-30-4.6-30-10.3 0-5.7 13.4-10.3 30-10.3 16.6 0 30 4.6 30 10.3" fill="#f9f3d9"/><path d="m61 28.1c0 5.2-13 9.4-29 9.4-16 0-29-4.2-29-9.4 0-5.2 13-9.4 29-9.4 16 .1 29 4.3 29 9.4" fill="#e0dac6"/><path d="m32 22c-14.3 0-26.2 3.3-28.6 7.7 2.4 4.4 14.3 7.8 28.6 7.8 14.3 0 26.2-3.3 28.6-7.8-2.4-4.3-14.3-7.7-28.6-7.7" fill="#f2b200"/><path d="m32 46.8c13.2 0 24.3-3.2 28.4-7.7.5-2.4.8-4.8 1.1-6.7-2.6 4.8-14.8 8.4-29.5 8.4-14.7 0-26.9-3.6-29.5-8.4.3 1.9.6 4.3 1.1 6.7 4.1 4.5 15.2 7.7 28.4 7.7" fill="#b3682a"/><g fill="#ffe299"><path d="m47.6 34.1l-.2-2.5.8-.1c4-.3 5.6-1.8 5.6-2.9.1-1.3-1.4-2.5-3.6-2.9-.6-.1-1.2-.2-1.8-.2-2 0-3.6.6-5.6 1.3-2.6 1-5.5 2-9.8 2-2.5 0-5.3-.8-8.2-1.7-2.9-.9-6-1.8-8.7-1.8-1.9 0-3.5.4-4.9 1.3-.8.5-2 1.4-1.7 2.2.6 1.3 4.2 2.6 7.3 2.6.4 0 .7 0 1.1-.1l.7-.1.4 2.5-.9.3c-.4 0-.8.1-1.3.1-3.3 0-8.5-1.3-9.7-4.1-.4-1-.7-3.1 2.7-5.2 1.8-1.1 3.9-1.7 6.3-1.7 3.2 0 6.6 1 9.5 1.9 2.7.8 5.3 1.6 7.4 1.6 3.8 0 6.5-1 8.9-1.9 2-.7 4.1-1.5 6.5-1.5.8 0 1.5.1 2.3.2 3.5.7 5.8 2.9 5.7 5.5-.1 2.2-2.3 4.8-8 5.2h-.8"/><path d="m39.7 33.8c-2.3 0-4.6-.5-6.9-1.6-5.1-2.3-9.2-2.8-11.8-2.8-3.2 0-5 .7-5.7 1l-.6.3-1.2-2.2.7-.3c.9-.4 3.4-1.4 7.6-1.2 3.9.1 8 1.1 12.1 3 2 .9 3.9 1.4 5.8 1.4 3.3 0 6.2-1.5 8-4.1l.4-.6 2.2 1.3-.5.7c-1.8 2.6-4.4 4.3-7.5 4.9-.8.1-1.7.2-2.6.2"/><path d="m33.1 35.4l-.6-.3c-1.7-.8-3.4-1.2-5.3-1.2-3.1 0-5.3 1.2-5.3 1.2l-.6.3-1.4-2.1.7-.4c.3-.2 2.9-1.5 6.5-1.5 2.2 0 4.4.5 6.4 1.5l.7.3-1.1 2.2"/><path d="m22.4 12.6l-1.2-2.3.7-.4c2.3-1.2 3.4-5.6 3.4-5.7l.2-.7 2.5.7-.2.7c-.1.2-1.4 5.5-4.7 7.3l-.7.4"/><path d="m33.2 14.2l-2.1-1.4.4-.6c0 0 1.6-2.5 2-4.8l.1-.7 2.6.4-.2.6c-.5 3-2.3 5.8-2.4 5.9l-.4.6"/><path d="m29.2 13.2l-2.1-1.4.4-.6c0 0 1.6-2.5 2-4.8l.1-.7 2.6.3-.1.7c-.5 3-2.3 5.8-2.4 5.9l-.5.6"/></g><g fill="#d3976e"><path d="m62 12l-40.6-7.7-.2 1.1 40.4 9.7z"/><path d="m59.7 21.1l-38.6-14.6-.4 1 38 16.5z"/></g><g fill="#ffe299"><path d="m25.2 12.4c-.8 0-1.5-.4-2.1-1.1-1.5-1.8-.8-5.3.1-7.1.8-1.8 1.8-2.2 2.5-2.2.7 0 1.3.3 1.7.8.6.8.5 1.8.4 2.1l-2.2-.1c0 .1-.2.5-.2.5-.7 1.7-.8 3.8-.4 4.4.1.1.1.1.2.1 0 0 .1.1.2-.2l2.4.9c-.5 1.1-1.3 1.7-2.3 1.9-.1 0-.2 0-.3 0"/><path d="m29.5 13.9c-.8 0-1.6-.4-2.1-1.1-2.1-2.8-.9-6.5.3-8.2.9-1.2 1.7-1.5 2.2-1.5.2 0 .4 0 .5.1.7.3 1.8.8 1.6 3.1l-2.3-.4c-.6 1.2-1.1 4.2-.2 5.5l2.3 1c-.4.9-1.1 1.5-2 1.6-.2-.1-.2-.1-.3-.1"/><path d="m33.5 25.1c.8-2.1-1.2-5.6-1.9-7.3-1.3-3.2-1.1-11.7 1.3-13.3.7-.5 1.5-.6 2.2-.2.7.3 1.4 1.5 1.2 2.9l-2.3-.5c-.6 1.8-1 8.1.2 10.8.9 1.9 2.6 4.9 1.6 8.1-.7 2-2.9 1-2.3-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f35d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f35d.svg
index 33e4527..52f7db9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f35d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f35d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m57.977 49.18c0 7.07-11.627 12.797-25.976 12.797-14.352 0-25.975-5.729-25.975-12.797 0-7.06 11.623-12.795 25.975-12.795 14.349 0 25.976 5.73 25.976 12.795"/><path fill="#c7d7d7" d="m62 43.963c0 8.649-13.43 15.658-30 15.658-16.567 0-29.999-7.01-29.999-15.658 0-8.645 13.432-15.655 29.999-15.655 16.571 0 30 7.01 30 15.655"/><path fill="#94989b" d="m56.702 42.626c0 5.758-11.06 10.428-24.701 10.428-13.64 0-24.699-4.67-24.699-10.428 0-5.752 11.06-10.42 24.699-10.42 13.644 0 24.701 4.668 24.701 10.42"/><path fill="#d3976e" d="m50.21 50.52c-2.811.508-3.263 3.717-11.424 2.92-3.788-.369-5.968.82-10.718 1.184s-29.848-4.454-19.707-15.943c10.142-11.487 48.39-6.243 48.813 1.219.421 7.462-4.732 10.217-6.964 10.62"/><path fill="#839391" d="m8.431 19.364c-.895.569.234.658.234.658s10.18-3.482 10.656-2.533c.478.951-10.334 3.967-10.11 5.214.209 1.163 10.965-3.407 11.22-2.375.252 1.033-9.812 4.835-9.812 4.835s-.808.786.248.655c12.957-1.611 17.05-5.543 17.05-5.543s.895-.734.572-1.611c-.029-.078 28.415-10.23 32.23-11.605 1.855-.667-.059-5.691-1.912-5.02-3.82 1.377-32.21 11.684-32.23 11.605-.322-.875-1.482-.869-1.482-.869s-5.694-.412-16.667 6.593"/><g fill="#ffe299"><path d="m57.58 39.737c-.334-2.107-2.671-3.959-7.117-5.638-2.621-2.117-6.346-2.701-8.558-2.85-2.104-.142-4.249-.004-6.205.357-.923.104-1.762.269-2.514.491-4.259-1.2-8.778-.937-11.565-.565-1.375.184-2.735.444-4.04.764v-14.292c0-.41-.336-.743-.75-.743s-.75.333-.75.743v14.696c-.952.276-1.863.583-2.717.917v-14.489c0-.41-.336-.743-.75-.743s-.75.333-.75.743v15.13c-1.521.706-2.783 1.49-3.65 2.307-.979.924-1.424 1.864-1.322 2.797.032.292.121.565.255.823-.542.738-.843 1.463-.853 2.138-.012.784.331 1.721 1.75 2.21-1.033 1.074-1.173 2.153-1.097 2.878.172 1.623 1.506 3.056 3.966 4.256 3.74 1.828 6.903 2.38 9.36 2.38.922 0 1.739-.079 2.455-.196 1.207.582 2.579.916 4.103.984.207.01.411.014.612.014 2.703 0 4.856-.783 4.954-.818l-.24-1.16c-.06.021-1.534 1-5.157.134.062-.021 3 0 5.502-1.089 0 0 2.056.496 3.52.599.313.021.643.033.988.033 1.273 0 2.756-.153 4.313-.425 1.616-.015 3.502-.179 5.687-.595 4.641-.885 7.512-2.8 7.313-4.88-.011-.112-.039-.218-.068-.321.234-.364.402-.744.465-1.141.044-.277.032-.544-.013-.805.658-.425 1.216-.868 1.651-1.325.996-1.044 1.408-2.157 1.224-3.314m-31.26-5.937c.291.048.401.136.426.164 0 .002-.001.005-.001.007-2.784-.062-5.771.661-9.164 2.211v-.786c.018-.009.037-.018.054-.026 2.481-.753 5.379-1.326 8.685-1.57m17.399 15.848l-.25-1.145c-.427.166-.783.255-1.088.301.074-.201.154-.407.239-.618 1.292-.169 2.547-.39 3.747-.656-.527.904-1.489 1.654-2.648 2.118m-.163.067c-.063.023-.128.044-.192.066.063-.021.126-.043.192-.066m-9.152-2.465c-3.427-.266-6.333-1.044-8.293-2.304-.357-.229-.722-.445-1.093-.649.393.086.784.169 1.204.271 4.06.979 7.535 1.735 10.553 2.183-.058.125-.107.248-.151.372-.717.082-1.448.127-2.22.127m-19.982 2.609c-1.178-1.171-1.793-2.557-1.656-3.656.671.559 1.507 1.056 2.507 1.464.858.351 1.781.615 2.732.791.071.187.137.371.223.565.311.699.688 1.319 1.099 1.896-1.243-.014-2.455-.093-3.585-.256-.541-.214-.992-.477-1.32-.804m2.975-4.907c-.043.654.009 1.39.197 2.202-1.773-.401-3.299-1.111-4.333-1.968 1.024-.297 2.413-.403 4.136-.234m26.486-8.47c.313.164.604.325.848.479-.167.371-.323.784-.476 1.213-.806-.4-1.689-.891-2.657-1.485.714-.132 1.502-.218 2.285-.207m3.196.945c.251.194.459.39.63.575-.178.184-.363.382-.552.585.024-.238.003-.532-.155-.877-.087-.189-.217-.381-.38-.574.157.089.314.179.457.291m4.072 5.188c-.439.023-.967.023-1.586-.014-.004-.165.003-.324.027-.475.021-.008.048-.014.069-.022.505.104 1.016.267 1.529.47-.012.014-.025.028-.039.041m-6.05-4.04c.136-.38.273-.738.417-1.051.493.407.719.731.747.895-.036.048-.21.216-.735.328-.144-.059-.278-.105-.429-.172m5.983 2.693c.485-.407.792-.831.985-1.183.299.007.592.061.868.213-.009.014-.014.025-.022.04-.297.471-.606.896-.923 1.3-.303-.139-.605-.264-.908-.37m-.866-3.138c-.065-.138-.146-.281-.23-.428.657-.23 1.114-.108 1.362.136-.411.021-.788.126-1.132.292m-9.403-2.894c.094.03.193.055.286.086.159.053.293.106.442.16-.492.089-.961.192-1.365.302-.206-.136-.431-.297-.643-.439.423-.041.845-.082 1.28-.109m-22.316 4.911c-1.466.581-3.319 1.117-5.208 1.191.043-.094.071-.196.071-.307v-.335c.923-.159 1.834-.437 2.717-.799v.013c0 .409 5.223-.874 2.42.237m-4.16-.888c.504-.36 1.097-.714 1.74-1.062v.436c-.572.244-1.151.46-1.74.626m1.74-2.364c-1.119.575-2.01 1.152-2.717 1.719v-.151c.483-.486 1.409-1.331 2.717-2.188v.62m2.214 8.163c.118.017.221.021.342.041-.152.69-.183 1.378-.09 2.049-.207-.737-.295-1.435-.252-2.09m28.821 3.142c.174-.309.301-.625.395-.945.496-.126.98-.259 1.451-.398.266.471.588.929.962 1.367-.809.391-1.754.786-2.862 1.176-.475.167-.957.324-1.441.473.626-.478 1.142-1.044 1.495-1.673m-35.25-8.05c-.268.365-.473.723-.616 1.066-.62-.105-1.23-.277-1.818-.541-.356-.159-.641-.334-.889-.513.776-.759 1.896-1.586 3.323-2.39v2.378m-2.348 5.869c.108-.359.369-.752.797-1.138.305.015.615.024.936.024.005 0 .011-.001.017-.001-.569.469-.949 1.053-1.096 1.741-.112.523-.08 1.05.069 1.565-.544-.626-.959-1.403-.723-2.191m1.519.957c.092-.431.389-.841.881-1.185-.252 1.368.234 2.924 1.332 4.306-.083-.027-.159-.062-.24-.091-1.551-1.046-2.145-2.228-1.973-3.03m8.497-1.708c.942.192 1.952.449 3.051.802 1.212.389 2.315.716 3.348 1-.949.041-1.995.132-3.175.302-1.092.157-2.173.173-3.21.086-.195-.711-.207-1.449-.014-2.19m20.769 3.147c-.052.377.02.742.218 1.026.43.616 1.369.759 2.572.422-1.537.451-3.328.41-4.921-.412-.523-.271-.749-.583-.828-.894.959-.005 1.952-.062 2.959-.142m11.543-1.276c-.249-.268-.525-.601-.801-.981.315-.119.62-.242.916-.367.459.119.803.274 1.039.439-.296.287-.683.592-1.154.909m-34.26-13.625c1.229-.303 2.517-.554 3.834-.737-1.465.303-2.744.798-3.834 1.333v-.596m-1.5.406v.732c-.944.328-1.854.687-2.717 1.081v-.878c.844-.338 1.755-.652 2.717-.935m-8.299 5.26c-.047-.429.299-1.026.95-1.639.749-.706 1.827-1.394 3.132-2.025v.958c-1.696.91-3.068 1.894-4.02 2.876-.019-.057-.056-.115-.062-.17m-.589 3.16c.005-.359.223-.825.613-1.344.347.302.79.575 1.337.82.559.25 1.173.411 1.81.531-.015.143-.023.281-.023.415-.625.232-1.19.508-1.694.823-1.27-.167-2.052-.639-2.043-1.245m.644 4.894c-.082-.773.416-1.438.847-1.86.037-.036.085-.068.125-.104-.042.101-.096.197-.127.301-.244.813-.358 2.439 1.622 4.209.622.556 1.421.981 2.322 1.319.085.057.169.114.258.169-.541-.22-1.092-.46-1.661-.738-2.036-.994-3.269-2.194-3.386-3.296m24.758 2.209c-.033.007-.697.152-1.772.349-.727-.504-.968-.937-.973-.946l-.376.332-.381.318c.032.067.135.267.36.532-.728.119-1.561.243-2.451.36l-.396-.875c-.019.016-.739.573-1.95 1.145-.746.072-1.512.133-2.289.179-.297-.189-.593-.391-.884-.62-.586-.462-1.043-.979-1.388-1.525.928.042 1.858.005 2.757-.125 7.673-1.107 9.967.976 9.991.998l.265-.486-.271.48.541-.962c-.015-.015-.089-.082-.217-.176.383.023.731.012 1.094.015.707.058 1.428.101 2.174.114.087.865.571 1.586 1.417 2.02.101.052.205.088.308.135-2.759-.392-4.06-1.219-4.082-1.233l-.403 1.075c.054.036.511.333 1.411.659-.992-.127-1.804-.323-2.47-.55.061-.013.11-.024.134-.029l-.149-1.186m22.517-6.716c.003-.04.01-.079.011-.119.507-.514.773-1.062.819-1.663.078-1.01-.475-2.01-1.699-3.069-.09-.29-.212-.546-.348-.761-.06-.094-.14-.177-.209-.266 2.306 1.326 2.907 2.457 3.01 3.135.106.668-.196 1.381-.899 2.118-.201.211-.432.42-.689.625"/><path d="m10.504 33.775c.414 0 .75-.333.75-.742v-12.75c0-.41-.336-.743-.75-.743s-.75.333-.75.743v12.75c0 .409.336.742.75.742"/><path d="m14.722 28.69c.414 0 .75-.333.75-.743v-12.749c0-.41-.336-.743-.75-.743s-.75.333-.75.743v12.749c0 .41.336.743.75.743"/><path d="m18.941 26.871c.414 0 .75-.333.75-.743v-12.749c0-.41-.336-.743-.75-.743s-.75.333-.75.743v12.749c0 .411.336.743.75.743"/></g><path fill="#ec6430" d="m15.16 41.07c1.047 1.953 2.451.843 3.151 3.01.7 2.161 2.44-.16 3.903 1.149 1.463 1.309 3.61-1.643 4.634-.305 1.024 1.338.872.946 2.528 1.239 1.656.294 1.894-.927 3.88-.255 1.985.673 1.521-.733 2.877-.104 1.355.629 1.926-.107 3.506-.063s1.119-1.73 3.594-1.09c2.474.641.69-1.852 3.796-1.653 3.106.197-2.396-6.266-5.065-5.487-2.671.776-3.103-2.01-4.886-1.889-1.783.117-.754-2.76-2.661-2.434s-3.01-.827-4.917.312c-1.904 1.139-4.02.677-4.601 1.316s-.371.224-2.182.944c-1.812.722-3.465.83-3.465.83s-5.442 1.966-4.092 4.485"/><g fill="#ef4d3c"><path d="m37.24 36.479l.383 2.05 1.467 1.336-.75-2.585-1.1-.801"/><path d="m19.17 41.32l2.746.361-1.997 2.409-.749-2.77"/><path d="m19.745 37.695l-3.334 2.595 2.589-.29.745-2.305"/><path d="m22.08 37.695l-1.745 2.595 1.745-.545v-2.05"/><path d="m24.345 36.785l2.587-1.288 1.813-.076-1.505 1.364h-2.895"/><path d="m23.678 38.952l-.333 2.622.98-.414 1.086-1.84-1.733-.368"/><path d="m23.15 43.964l2.42-2.148.926-1.526v2.472l-2.366 1.548-.98-.346"/><path d="m33.871 34.05l1.538 1.356-.763 1.483-2.646-1.889 1.871-.95"/><path d="m27.611 38.34l2.867-1.13-1.478 2.79-1.389-1.66"/><path d="m28.345 41.66l-.275 2.51 1.93.83-1.655-3.34"/><path d="m30.14 39.923l1.09 2.706 1.305 1.983-.535-3.302-1.86-1.387"/><path d="m34.33 43.964l2.512-.981v1.629l-2.512.355v-1"/><path d="m35.421 38.28l-.421 2.72 1.807.96v-2.502l-1.386-1.178"/><path d="M39.43 40.802 39 43 40.1 44.612 42 42 39.43 40.802z"/><path d="m40.08 38.898l1.572-.211 1.548.211-1.15 1.112-1.97-1.112"/><path d="m43.18 40.705l2.82.295-.62 1.506-.95 1-.752-1.548-.498-1.255"/></g><g fill="#8cc63e"><path d="m26.585 33.01l-1.355 1.777.587.928 1.273-2.01-.505-.696"/><path d="m26.89 35.739l-.489 1.102 1.759 2.111.246-1.602-1.516-1.611"/><path d="m24.603 36.28l-.695.421.312 2.028.533-.329-.15-2.12"/><path d="m29.323 33.754l1.369 2.142-.721.364-1.077-1.772.429-.734"/><path d="m31.13 34.867l.344 3.06.816-.367-.405-2.45-.755-.243"/><path d="m33.2 37.06l.546 1.806h.863l-.863-2.142-.546.336"/><path d="m33.86 36.06l-1.075-1.408.465-.734 1.01 1.591-.4.551"/><path d="m36.15 33.754l-1.365 2.142.721.364 1.077-1.772-.433-.734"/><path d="m35.861 37.626l.439.754 1.384-1.847-.737-.523-1.086 1.616"/><path d="m33.893 32.926l-2.108.047.275.965 1.706-.096.127-.916"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58 49.2c0 7.1-11.7 12.8-26 12.8-14.4 0-26-5.7-26-12.8 0-7.1 11.6-12.8 26-12.8 14.3 0 26 5.7 26 12.8" fill="#94989b"/><path d="m62 44c0 8.6-13.4 15.7-30 15.7-16.6 0-30-7-30-15.7 0-8.6 13.4-15.7 30-15.7 16.6 0 30 7 30 15.7" fill="#c7d7d7"/><path d="m56.7 42.7c0 5.8-11.1 10.4-24.7 10.4-13.6 0-24.7-4.7-24.7-10.4 0-5.8 11.1-10.4 24.7-10.4 13.6-.1 24.7 4.6 24.7 10.4" fill="#94989b"/><path d="m50.2 50.5c-2.8.5-3.3 3.7-11.4 2.9-3.8-.4-6 .8-10.7 1.2s-29.9-4.4-19.7-15.9c10.1-11.5 48.4-6.2 48.8 1.2.4 7.5-4.8 10.2-7 10.6" fill="#d3976e"/><path d="m8.4 19.4c-.9.6.3.6.3.6s10.2-3.5 10.7-2.5c.5 1-10.3 4-10.1 5.2.2 1.2 11-3.4 11.2-2.4.3 1-9.8 4.8-9.8 4.8s-.8.8.2.7c13-1.6 17.1-5.5 17.1-5.5s.9-.7.6-1.6c0-.1 28.4-10.2 32.2-11.6 1.9-.7-.1-5.7-1.9-5-3.9 1.3-32.3 11.6-32.3 11.6-.3-.9-1.5-.9-1.5-.9s-5.7-.4-16.7 6.6" fill="#839391"/><g fill="#ffe299"><path d="m57.6 39.8c-.3-2.1-2.7-4-7.1-5.6-2.6-2.1-6.3-2.7-8.6-2.9-2.1-.1-4.2 0-6.2.4-.9.1-1.9-.9-2.7-.6-4.3-1.2-8.2 1-11 1-3 0-15 2-14.9 8.2-.5.6-3.1 2.7.9 4.3-1 1.1-1.2 2.2-1.1 2.9.2 1.6 1.5 3.1 4 4.3 3.7 1.8 6.9 2.4 9.4 2.4 3.7-.2 5.5 3.6 13.7 2.8l-1-2c-.1 0-3 0-6-2 .1 0 17.8-1.2 20-1.5 5-.5 8.6-4.6 9-6.5.3-1.4 1.8-4.1 1.6-5.2m-31.3-6c.3 0-5.9 2.6-9.3 4.2l.6-2.6c0 0 0 0 .1 0 2.4-.8 5.3-1.3 8.6-1.6m17.4 15.9c0 0-1.2-1.3-1.1-1.5 1.3-.2 2.5-.4 3.7-.7-.5 1-1.4 1.7-2.6 2.2m-.1 0c-.1 0-.1 0-.2.1 0 0 .1 0 .2-.1m-18.6-5.4c.4.1 8.7 2 11.8 2.5-1.8 1.2-7.8 2.2-11.8-2.5m-9 6.7c0 0-2.1-2.9-2-4 .7.6 3.1 1.3 4 1.5.1.2 1.6 2.9 2 3.5-2 0-4-1-4-1m1.1-7.2c0 .7 0 1.4.2 2.2-1.8-.4-3.3-1.1-4.3-2 1-.3 2.4-.4 4.1-.2m21.9-10.8c6 2 9.8 4.8 10 5-.2.4.2 1.6 0 2-.8-.4-7-5-11-6 .7-.1 1-1 1-1m9 11c.5-.4 3-3 3-3s1 0 2 0c.6 0-2.7 3.6-3 4-.3-.1-1.7-.9-2-1m-.9 4.2c.2-.3.3-.6.4-.9.5-.1 1-.3 1.5-.4.3.5.6.9 1 1.4-.8.4-1.8.8-2.9 1.2-.5.2-1 .3-1.4.5.5-.6 1.1-1.1 1.4-1.8m-35.2-8c-.3.4-.5.7-.6 1.1-.6-.1-1.2-.3-1.8-.5-.4-.2-.6-.3-.9-.5.8-.8 1.9-1.6 3.3-2.4v2.3m-.9 6.8c.1-.4.4-.8.9-1.2-.3 1.4.2 2.9 1.3 4.3-.1 0-.2-.1-.2-.1-1.5-1-2.1-2.2-2-3m8-3.2c.9.2 5.9 3 6.9 3.3-.9 0-4.9-.1-6.9-1.1-.2-.7-.2-1.4 0-2.2m21.3 4.6c-.1.4 0 .7.2 1 .4.6-.8.8-2.3 0-.5-.3-.7-.6-.8-.9.9.1 1.9 0 2.9-.1m11.5-1.2c-.2-.3-.5-.6-.8-1 .3-.1.6-.2.9-.4.5.1.8.3 1 .4-.2.3-.6.6-1.1 1m-30.3 3c-.7-.3-1-1-1.4-1.5 6.9-.7 15.1 1.9 15.9 2.3.1.1-10 1-14.5-.8m33.6-7.4c.9-2.8-3-5.7-3.1-5.8 1 0 5 2 3.1 5.8"/><path d="m13 35v-14.7c0-.4-.6-.7-1.2-.7s-1.2.3-1.2.7v15.7l2.4-1"/><path d="m16 42v-26.8c0-.4-.6-.7-1.2-.7s-1.2.3-1.2.7v26.8h2.4"/><path d="m18.9 26.9c.7 0 1.2-.3 1.2-.7v-12.8c0-.4-.6-.7-1.2-.7s-1.2.3-1.2.7v12.7c0 .5.6.8 1.2.8"/></g><path d="m15.2 41.1c1 2 2.5.8 3.2 3 .7 2.2 2.4-.2 3.9 1.1 1.5 1.3 5.5.6 7.2.9 1.7.3 1.9-.9 3.9-.3 2 .7 1.7-1.9 6.4-.2 1.5.6 1.1-1.7 3.6-1.1 2.5.6.7-1.9 3.8-1.7 3.1.2-2.4-6.3-5.1-5.5-2.7.8-6-4.5-10-4.5-8.3.2-18.3 5.8-16.9 8.3" fill="#ec6430"/><g fill="#8cc63e"><path d="m21.5 36.5l-.7 1.5.7 1.5.7-1.5z"/><path d="m24.5 34l-.5 1 .5 1 .5-1z"/><path d="m27.5 37l-.5 1 .5 1 .5-1z"/><path d="m28.5 32.5l-.7 1.5.7 1.5.7-1.5z"/><path d="m31.5 35.5l-.7 1.5.7 1.5.7-1.5z"/><path d="m34.5 33l-.5 1 .5 1 .5-1z"/><path d="m37.5 37l-.5 1 .5 1 .5-1z"/><path d="m40.5 36.5l-.7 1.5.7 1.5.7-1.5z"/><path d="m44.5 39l-.5 1 .5 1 .5-1z"/><path d="m34.5 39l-.5 1 .5 1 .5-1z"/><path d="m30.5 41l-.5 1 .5 1 .5-1z"/><path d="m24.5 39l-.5 1 .5 1 .5-1z"/><path d="m18.5 38l-.5 1 .5 1 .5-1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f35e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f35e.svg
index b2224f8..bbaae9c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f35e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f35e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#995024" d="m44.11 29.452l15.674-7.189c.1-.226.412-.696.625-1.014.711-1.06 1.592-2.378 1.592-4.01 0-6.976-9.283-13.244-21.561-13.244-12.275 0-25.04 5.297-32.28 10.358-1.178.823 35.949 15.09 35.949 15.09"/><path fill="#b3682a" d="m60.65 30.12c-.779-5.393-.904-7.261-.861-7.856l-15.674 7.189-6.602 30.486c4.625 0 20.453-9.814 22.303-12.41 2.15-3.01 2.41-5.92.961-16.524-.03-.208-.075-.512-.127-.885"/><path fill="#fff3e3" d="m42.34 28.97c.225-1.279 2.176-2.986 2.176-4.537 0-5.602-9.113-13.245-20.354-13.245s-20.353 7.643-20.353 13.245c0 1.551 1.951 3.258 2.176 4.537.262 1.49-.764 8.07-.971 9.571-2.324 17.02-.195 19.303 7.842 19.303 2.949 0 6.695-.309 11.307-.309s8.357.309 11.307.309c8.04 0 10.168-2.283 7.842-19.303-.207-1.502-1.234-8.08-.972-9.571"/><path fill="#c0773b" d="m3.809 24.433c0-5.602 9.113-13.245 20.354-13.245s20.354 7.643 20.354 13.245c0 1.551-1.951 3.258-2.176 4.537l1.77.481c.098-.226.412-.696.625-1.014.709-1.06 1.59-2.377 1.59-4 0-6.976-9.885-15.401-22.16-15.401-12.277.001-22.16 8.427-22.16 15.402 0 1.627.881 2.945 1.592 4 .215.321.531.796.627 1.02l1.766-.487c-.225-1.28-2.176-2.987-2.176-4.538"/><path fill="#cb8d44" d="m44.969 37.31c-.779-5.393-.904-7.262-.859-7.857l-1.77-.481c-.262 1.49.766 8.07.971 9.571 2.326 17.02.197 19.303-7.842 19.303-2.949 0-6.695-.309-11.307-.309s-8.357.309-11.307.309c-8.04 0-10.166-2.285-7.842-19.303.207-1.502 1.232-8.08.971-9.571l-1.766.487c.046.542-.072 2.388-.863 7.851-.053.373-.098.676-.127.885-1.447 10.604-1.188 15.666.961 18.68 1.852 2.595 4.803 3.126 8.666 3.126 1.342 0 2.863-.063 4.473-.129 2.02-.084 4.303-.178 6.834-.178s4.818.094 6.834.178c1.611.067 3.131.129 4.473.129 3.863 0 6.816-.531 8.668-3.127 2.148-3.01 2.408-8.08.959-18.68-.03-.209-.073-.511-.127-.884"/><g fill="#ede0d1"><circle cx="9.264" cy="48.99" r="1.75"/><circle cx="11.764" cy="43.908" r="1.5"/><circle cx="14.849" cy="47.24" r=".917"/><circle cx="28.931" cy="27.07" r="2.384"/><circle cx="32.432" cy="30.16" r=".666"/><circle cx="35.07" cy="32.408" r="1"/><circle cx="30.432" cy="32.408" r="1.5"/><circle cx="35.598" cy="48.16" r="1.75"/><circle cx="31.932" cy="48.574" r="1"/><circle cx="11.02" cy="24.69" r=".95"/><circle cx="11.02" cy="20.795" r="1.55"/><circle cx="13.931" cy="23.74" r=".95"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m44.1 29.5l15.7-7.2c.1-.2.4-.7.6-1 .7-1.1 1.6-2.4 1.6-4 0-7-9.3-13.3-21.6-13.3-12.3 0-25 5.3-32.3 10.4-1.1.8 36 15.1 36 15.1" fill="#995024"/><path d="m60.6 30.1c-.8-5.4-.9-7.3-.9-7.9l-15.7 7.2-6.6 30.5c4.6 0 20.5-9.8 22.3-12.4 2.2-3 2.4-5.9 1-16.5 0-.2 0-.5-.1-.9" fill="#b3682a"/><path d="m42.3 29c.2-1.3 2.2-3 2.2-4.5 0-5.6-9.1-13.2-20.4-13.2s-20.3 7.5-20.3 13.1c0 1.6 2 3.3 2.2 4.5.3 1.5-.8 8.1-1 9.6-2.3 17-.2 19.3 7.8 19.3 2.9 0 6.7-.3 11.3-.3s8.4.3 11.3.3c8 0 10.2-2.3 7.8-19.3-.1-1.5-1.1-8-.9-9.5" fill="#fff3e3"/><path d="m3.8 24.4c0-5.6 9.1-13.2 20.4-13.2s20.4 7.6 20.4 13.2c0 1.6-2 3.3-2.2 4.5l1.8.5c.1-.2.4-.7.6-1 .7-1.1 1.6-2.4 1.6-4 0-7-9.9-15.4-22.2-15.4-12.3 0-22.2 8.5-22.2 15.4 0 1.6.9 2.9 1.6 4 .2.3.5.8.6 1l1.8-.4c-.2-1.3-2.2-3-2.2-4.6" fill="#c0773b"/><path d="m45 37.3c-.8-5.4-.9-7.3-.9-7.9l-1.8-.4c-.3 1.5.8 8.1 1 9.6 2.3 17 .2 19.3-7.8 19.3-2.9 0-6.7-.3-11.3-.3s-8.4.3-11.3.3c-8 0-10.2-2.3-7.8-19.3.1-1.6 1.1-8.1.9-9.6l-1.8.5c0 .5-.1 2.4-.9 7.9-.1.4-.1.7-.1.9-1.4 10.5-1.2 15.6 1 18.6 1.8 2.6 4.8 3.1 8.7 3.1 1.3 0 2.9-.1 4.5-.1 2-.1 4.3-.2 6.8-.2s4.8.1 6.8.2c1.6.1 3.1.1 4.5.1 3.9 0 6.8-.5 8.7-3.1 2.1-3 2.4-8.1 1-18.7-.1-.2-.2-.5-.2-.9" fill="#cb8d44"/><g fill="#ede0d1"><circle cx="9.3" cy="49" r="1.8"/><circle cx="11.8" cy="43.9" r="1.5"/><circle cx="14.8" cy="47.2" r=".9"/><circle cx="28.9" cy="27.1" r="2.4"/><circle cx="32.4" cy="30.2" r=".7"/><circle cx="35.1" cy="32.4" r="1"/><circle cx="30.4" cy="32.4" r="1.5"/><circle cx="35.6" cy="48.2" r="1.8"/><circle cx="31.9" cy="48.6" r="1"/><circle cx="11" cy="24.7" r="1"/><circle cx="11" cy="20.8" r="1.5"/><circle cx="13.9" cy="23.7" r="1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f35f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f35f.svg
index 80c42b3..fe9e1ba 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f35f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f35f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffc800" d="m24.45 42.517c-1.975.346-3.95.688-5.926 1.034-2.43-13.918-2.43-28.15 0-42.07 1.975.352 3.947.702 5.922 1.054-2.304 13.226-2.304 26.751.004 39.979"/><path fill="#ffd41f" d="m29.951 42.532c1.975-.311 3.95-.622 5.925-.938-3.975-11.638-5.973-24.21-5.652-37.16-2.037.726-4.066 1.507-6.089 2.343.011 12.43 2.039 24.498 5.816 35.759"/><g fill="#ffe62e"><path d="m16.382 39.547c1.969-.344 3.938-.688 5.904-1.03-3.829-11.234-5.751-23.371-5.438-35.872-2.088.962-4.162 1.995-6.222 3.1.139 11.756 2.141 23.16 5.756 33.802"/><path d="m39.92 42.03c1.884-.328 3.769-.657 5.651-.986.982-11.596 4.076-22.415 8.75-31.976-2.197-.085-4.397-.148-6.602-.189-4.384 10.08-7.135 21.287-7.799 33.15"/><path d="m13.252 40.4c1.679-.293 3.354-.586 5.03-.879-4.93-7.228-8.703-15.89-10.676-25.601-1.898 1.278-3.768 2.66-5.598 4.145 2.624 8.445 6.514 15.963 11.24 22.335"/><path d="m45.41 38.474c1.855-.324 3.71-.647 5.564-.972 2.178-9.921 6.04-18.813 11.02-26.344-1.719-1.019-3.418-2.091-5.096-3.215-5.473 8.765-9.535 19.09-11.484 30.531"/><path d="m38.42 42.517c-1.976.346-3.95.688-5.925 1.034-2.317-13.276-2.317-26.854 0-40.13 1.974.353 3.947.703 5.922 1.055-2.193 12.587-2.193 25.458.003 38.04"/></g><path fill="#ffc800" d="m48.649 39.517c-1.976.346-3.95.688-5.926 1.034-2.07-11.865-2.07-24 0-35.866 1.87.943 3.752 1.854 5.645 2.73-1.665 10.641-1.571 21.484.281 32.1"/><path fill="#ffe62e" d="m25.783 41.469c-1.97-.375-3.939-.752-5.908-1.127 1.972-10.332 1.972-20.942 0-31.27 2.243 1.062 4.469 2.23 6.667 3.511 1.312 9.596 1.061 19.355-.759 28.889"/><g fill="#ffc800"><path d="m18.15 40.53c-1.916-.365-3.832-.731-5.748-1.098-1.214-11.832-4.808-22.677-10.05-31.956 2.301-.188 4.604-.354 6.91-.497 4.926 9.973 8.095 21.348 8.89 33.551"/><path d="m39.35 39.35c-1.463-.278-2.927-.559-4.39-.838 7.423-7.128 13.693-16.741 17.546-28.331 1.764 1.277 3.497 2.645 5.196 4.1-4.646 10.236-11.07 18.694-18.352 25.07"/></g><g fill="#ffd41f"><path d="m40.581 38.1c-1.971.344-3.939.688-5.909 1.03-.448-10.229.929-20.229 3.892-29.553 1.596 1.47 3.228 2.867 4.893 4.192-2.172 7.74-3.183 15.944-2.876 24.331"/><path d="m21.815 35.638c-1.941.338-3.885.678-5.826 1.018-3.598-6.618-6.11-14.23-7.109-22.502 2.087.663 4.182 1.299 6.281 1.907 1.07 7.215 3.41 13.833 6.654 19.577"/></g><path fill="#ffc800" d="m29.897 44.02c-1.924-.47-3.846-1-5.76-1.604-.773-7.451-.381-14.942 1.145-22.21 1.434 1.379 2.906 2.687 4.412 3.918-.923 6.584-.86 13.291.203 19.894"/><path fill="#ffd41f" d="m53.57 40.04c-1.735.304-3.473.605-5.209.909 1.719-8.844 5.074-16.758 9.494-23.393 1.285 1.367 2.613 2.66 3.979 3.878-3.609 5.328-6.49 11.597-8.264 18.606"/><g fill="#ffe62e"><path d="m40.23 41.633c-1.979-.289-3.953-.586-5.928-.889 3.487-7.198 5.676-15.39 6.119-24.14 2.082 1.232 4.131 2.602 6.135 4.103-1.017 7.534-3.212 14.591-6.326 20.931"/><path d="m50.701 37.531c-1.38-.162-2.757-.331-4.134-.509 2.66-5.727 4.283-12.199 4.539-19.08 1.449.975 2.869 2.04 4.256 3.194-.699 5.876-2.317 11.401-4.661 16.394"/></g><path fill="#ef4d3c" d="m46.591 27.916c0 5.351-6.557 9.688-14.641 9.688-8.08 0-14.639-4.338-14.639-9.688h-13.11l4.529 30.1c8.672 6 37.762 6 46.43 0l4.527-30.1h-13.1"/><g fill="#ab2d1f"><path d="m33.09 55.715l-.606.349c-.063-.133-.189-.228-.34-.228h-.381c-.148 0-.277.095-.339.228l-.606-.349-1.457-.834v1.668 1.668l1.457-.834.606-.349c.062.135.188.229.339.229h.381c.147 0 .278-.094.34-.229l.606.349 1.455.834v-1.668-1.668l-1.455.834"/><path d="m29.687 50.997c.244.382.584.659.979.852.395.188.84.284 1.287.284.447-.002.895-.096 1.287-.286.395-.189.734-.468.978-.85.054.445-.177.934-.606 1.277-.424.35-1.041.554-1.657.552-.617.002-1.233-.203-1.658-.554-.433-.341-.663-.83-.61-1.275"/><path d="m38.4 46.54v-.122c0-.094-.01-.112-.063-.139-.089-.046-.182-.089-.275-.121-.07-.025-.146-.048-.229-.068-.979-2.278-3.242-3.875-5.881-3.875-2.637 0-4.901 1.597-5.881 3.875-.082.021-.158.043-.229.068-.094.032-.188.075-.274.121-.053.026-.063.045-.063.139v.122c0 .229-.026.141.136.234.055.031.104.07.147.119-.152.547-.232 1.123-.232 1.72 0 3.532 2.863 6.396 6.396 6.396 3.532 0 6.396-2.863 6.396-6.396 0-.597-.08-1.173-.232-1.722.046-.047.095-.086.148-.117.165-.093.136-.005.136-.234m-6.446-3.568c2.151 0 4.02 1.204 4.973 2.977-.758-.07-1.601-.055-2.093-.012-.792.067-1.453.246-1.993.522-.508.254-1.267.254-1.772 0-.541-.276-1.203-.455-1.994-.522-.491-.043-1.334-.06-2.092.012.949-1.773 2.819-2.977 4.971-2.977m0 11.283c-3.115 0-5.644-2.525-5.644-5.642 0-.044.002-.084.002-.128.199.755.646 1.242 1.313 1.494.716.27 1.519.26 2.229-.024.391-.155.732-.401 1-.801.477-.699.332-1.138.578-1.738.215-.522.816-.522 1.031 0 .244.603.104 1.039.578 1.738.271.399.614.646 1 .801.711.284 1.514.294 2.23.024.668-.252 1.113-.739 1.313-1.494 0 .041.002.084.002.128.003 3.115-2.526 5.642-5.64 5.642"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.5 42.5c-2 .3-4 .7-5.9 1-2.4-13.9-2.4-28.1 0-42.1 2 .4 3.9.7 5.9 1.1-2.4 13.3-2.4 26.8 0 40" fill="#ffc800"/><path d="m30 42.5c2-.3 4-.6 5.9-.9-4-11.6-6-24.2-5.7-37.2-2 .7-4.1 1.5-6.1 2.3 0 12.5 2.1 24.6 5.9 35.8" fill="#ffd41f"/><g fill="#ffe62e"><path d="m16.4 39.5c2-.3 3.9-.7 5.9-1-3.8-11.2-5.8-23.4-5.4-35.9-2.1 1-4.2 2-6.2 3.1.1 11.8 2.1 23.2 5.7 33.8"/><path d="m39.9 42c1.9-.3 3.8-.7 5.7-1 1-11.6 4.1-22.4 8.8-32-2.2-.1-4.4-.1-6.6-.2-4.5 10.2-7.2 21.4-7.9 33.2"/><path d="m13.3 40.4c1.7-.3 3.4-.6 5-.9-4.9-7.2-8.7-15.9-10.7-25.6-1.9 1.3-3.8 2.7-5.6 4.1 2.6 8.5 6.5 16 11.3 22.4"/><path d="m45.4 38.5c1.9-.3 3.7-.6 5.6-1 2.2-9.9 6-18.8 11-26.3-1.7-1-3.4-2.1-5.1-3.2-5.5 8.7-9.5 19-11.5 30.5"/><path d="m38.4 42.5c-2 .3-4 .7-5.9 1-2.3-13.3-2.3-26.9 0-40.1 2 .4 3.9.7 5.9 1.1-2.2 12.6-2.2 25.4 0 38"/></g><path d="m48.6 39.5c-2 .3-4 .7-5.9 1-2.1-11.9-2.1-24 0-35.9 1.9.9 3.8 1.9 5.6 2.7-1.6 10.8-1.5 21.6.3 32.2" fill="#ffc800"/><path d="m25.8 41.5c-2-.4-3.9-.8-5.9-1.1 2-10.3 2-20.9 0-31.3 2.2 1.1 4.5 2.2 6.7 3.5 1.3 9.6 1 19.3-.8 28.9" fill="#ffe62e"/><g fill="#ffc800"><path d="m18.1 40.5c-1.9-.4-3.8-.7-5.7-1.1-1.2-11.8-4.8-22.7-10.1-32 2.4-.1 4.7-.3 7-.4 4.9 10 8.1 21.3 8.8 33.5"/><path d="m39.4 39.4c-1.5-.3-2.9-.6-4.4-.8 7.4-7.1 13.7-16.7 17.5-28.3 1.8 1.3 3.5 2.6 5.2 4.1-4.6 10.1-11.1 18.6-18.3 25"/></g><g fill="#ffd41f"><path d="m40.6 38.1c-2 .3-3.9.7-5.9 1-.4-10.2.9-20.2 3.9-29.6 1.6 1.5 3.2 2.9 4.9 4.2-2.2 7.8-3.2 16-2.9 24.4"/><path d="m21.8 35.6c-1.9.3-3.9.7-5.8 1-3.6-6.6-6.1-14.2-7.1-22.4 2.1.7 4.2 1.3 6.3 1.9 1 7.2 3.4 13.8 6.6 19.5"/></g><path d="m29.9 44c-1.9-.5-3.8-1-5.8-1.6-.8-7.5-.4-14.9 1.1-22.2 1.4 1.4 2.9 2.7 4.4 3.9-.8 6.6-.8 13.3.3 19.9" fill="#ffc800"/><path d="m53.6 40c-1.7.3-3.5.6-5.2.9 1.7-8.8 5.1-16.8 9.5-23.4 1.3 1.4 2.6 2.7 4 3.9-3.7 5.4-6.6 11.6-8.3 18.6" fill="#ffd41f"/><g fill="#ffe62e"><path d="m40.2 41.6c-2-.3-4-.6-5.9-.9 3.5-7.2 5.7-15.4 6.1-24.1 2.1 1.2 4.1 2.6 6.1 4.1-1 7.5-3.2 14.6-6.3 20.9"/><path d="m50.7 37.5c-1.4-.2-2.8-.3-4.1-.5 2.7-5.7 4.3-12.2 4.5-19.1 1.4 1 2.9 2 4.3 3.2-.7 5.9-2.4 11.4-4.7 16.4"/></g><path d="m46.6 27.9c0 5.4-6.6 9.7-14.6 9.7-8.1 0-14.6-4.3-14.6-9.7h-13.2l4.5 30.1c8.7 6 37.8 6 46.4 0l4.5-30.1c.1 0-13 0-13 0" fill="#ef4d3c"/><g fill="#ab2d1f"><path d="m33.1 55.7l-.6.3c-.1-.1-.2-.2-.3-.2h-.4c-.1 0-.3.1-.3.2l-.6-.3-1.5-.8v1.7 1.7l1.5-.8.6-.3c.1.1.2.2.3.2h.4c.1 0 .3-.1.3-.2l.6.3 1.5.8v-1.7-1.7l-1.5.8"/><path d="m29.7 51c.2.4.6.7 1 .9.4.2.8.3 1.3.3.4 0 .9-.1 1.3-.3.4-.2.7-.5 1-.8.1.4-.2.9-.6 1.3-.4.3-1 .6-1.7.6-.6 0-1.2-.2-1.7-.6-.4-.5-.7-1-.6-1.4"/><path d="m38.4 46.5v-.1c0-.1 0-.1-.1-.1-.1 0-.2-.1-.3-.1-.1 0-.1 0-.2-.1-1-2.3-3.2-3.9-5.9-3.9-2.6 0-4.9 1.6-5.9 3.9-.1 0-.2 0-.2.1-.1 0-.2.1-.3.1-.1 0-.1 0-.1.1v.1c0 .2 0 .1.1.2.1 0 .1.1.1.1-.2.5-.2 1.1-.2 1.7 0 3.5 2.9 6.4 6.4 6.4 3.5 0 6.4-2.9 6.4-6.4 0-.6-.1-1.2-.2-1.7 0 0 .1-.1.1-.1.3 0 .3.1.3-.2m-6.4-3.5c2.2 0 4 1.2 5 3-.8-.1-1.6-.1-2.1 0-.8.1-1.5.2-2 .5-.5.3-1.3.3-1.8 0-.5-.3-1.2-.5-2-.5-.5 0-1.3-.1-2.1 0 .9-1.8 2.8-3 5-3m0 11.3c-3.1 0-5.6-2.5-5.6-5.6 0 0 0-.1 0-.1.2.8.6 1.2 1.3 1.5.7.3 1.5.3 2.2 0 .4-.2.7-.4 1-.8.5-.7.3-1.1.6-1.7.2-.5.8-.5 1 0 .2.6.1 1 .6 1.7.3.4.6.6 1 .8.7.3 1.5.3 2.2 0 .7-.3 1.1-.7 1.3-1.5 0 0 0 .1 0 .1 0 3-2.5 5.6-5.6 5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f360.svg b/build/js/jsxc/lib/emojione/assets/svg/1f360.svg
index 18aba24..bfbbd9c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f360.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f360.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#996254" d="m55.46 21.787l-37.08 25.392c-6.922-22.03-8.691-27.862-13.62-36.03-.6-.995-2.756-3.702-2.756-3.702s2.681-3.371 13.661-3.371c19.346 0 39.795 17.711 39.795 17.711"/><g fill="#73493f"><path d="m17.271 7.643c-4.216 3.735-6.866 9.223-7.713 13.05 0 0-.695-1.303-1.054-2.46 1.733-4.836 8.819-10.636 8.767-10.595"/><path d="m24.21 11.245c0 0-8.688 10.07-11.421 18.407 0 0-.705-1.689-1.101-3.239 2.764-7 12.522-15.168 12.522-15.168"/><path d="m14.781 4.089c0 0 1.282-.216 2.45.025-2.674 1.154-5.03 2.602-7.225 4.738-.039.041 2.137-3.497 4.775-4.763"/><path d="m34.989 8.853c0 0 2.01.815 2.898 1.387-5.956.289-14.955 9.643-14.955 9.643s5.323-8.214 12.06-11.03"/></g><path fill="#fd9d33" d="m46.15 57.22c14.168-6.824 20.81-21 11.62-32.924-7.92-10.255-21.778-6.883-30.701 2.378-7.311 7.597-11.06 16.12-7.512 24.331 3.922 9.08 15.539 11.546 26.593 6.215"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.5 21.8l-37.1 25.4c-6.9-22-8.7-27.9-13.6-36-.6-1-2.8-3.8-2.8-3.8s2.7-3.4 13.7-3.4c19.3.1 39.8 17.8 39.8 17.8" fill="#996254"/><g fill="#73493f"><path d="m17.3 7.6c-4.2 3.7-6.9 9.2-7.7 13.1 0 0-.7-1.3-1.1-2.5 1.7-4.8 8.8-10.6 8.8-10.6"/><path d="m24.2 11.2c0 0-8.7 10.1-11.4 18.4 0 0-.7-1.7-1.1-3.2 2.8-7 12.5-15.2 12.5-15.2"/><path d="m14.8 4.1c0 0 1.3-.2 2.5 0-2.7 1.2-5 2.6-7.2 4.7-.1.1 2-3.4 4.7-4.7"/><path d="m35 8.9c0 0 2 .8 2.9 1.4-6 .3-15 9.6-15 9.6s5.4-8.2 12.1-11"/></g><path d="m46.1 57.2c14.2-6.8 20.8-21 11.6-32.9-7.9-10.3-21.7-6.9-30.6 2.4-7.3 7.6-11.1 16.1-7.5 24.3 3.9 9.1 15.5 11.5 26.5 6.2" fill="#fd9d33"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f361.svg b/build/js/jsxc/lib/emojione/assets/svg/1f361.svg
index d5f2b7f..6cc82e3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f361.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f361.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m50.914 48.568c-.648-.646-1.697-.646-2.344 0-.648.648-.648 1.697 0 2.346l10.6 10.6c.646.648 1.697.648 2.344 0 .648-.646.648-1.697 0-2.344l-10.6-10.602"/><ellipse transform="matrix(.7071-.7071.7071.7071-19.467 46.997)" fill="#8cc63e" cx="46.999" cy="46.998" rx="13.621" ry="11.971"/><path fill="#f29a2e" d="m38.29 35.947c-.646-.647-1.695-.647-2.344 0-.646.647-.646 1.697 0 2.344l3.67 3.67c.646.646 1.697.646 2.344 0 .646-.648.646-1.697 0-2.344l-3.67-3.67"/><ellipse transform="matrix(.7071-.7071.7071.7071-12.804 30.911)" fill="#dae3ea" cx="30.911" cy="30.911" rx="13.622" ry="11.971"/><path fill="#f29a2e" d="m22.21 19.86c-.648-.647-1.697-.647-2.345 0-.647.647-.647 1.697 0 2.344l3.668 3.669c.648.647 1.697.647 2.346 0 .646-.647.646-1.697 0-2.344l-3.669-3.669"/><ellipse transform="matrix(.7071-.7071.7071.7071-6.14 14.824)" fill="#ff99ad" cx="14.823" cy="14.823" rx="13.621" ry="11.972"/><path fill="#f29a2e" d="m6.118 3.773c-.647-.647-1.697-.647-2.345 0-.647.647-.647 1.697 0 2.344l3.67 3.669c.647.647 1.697.647 2.344 0 .647-.647.647-1.697 0-2.344l-3.669-3.669"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 48.6c-.6-.6-1.7-.6-2.3 0-.6.6-.6 1.7 0 2.3l10.6 10.6c.6.6 1.7.6 2.3 0 .6-.6.6-1.7 0-2.3l-10.6-10.6" fill="#f29a2e"/><ellipse transform="matrix(.7071-.7071.7071.7071-19.4657 46.9979)" cx="47" cy="47" rx="13.6" ry="12" fill="#8cc63e"/><path d="m38.3 35.9c-.6-.6-1.7-.6-2.3 0-.6.6-.6 1.7 0 2.3l3.7 3.7c.6.6 1.7.6 2.3 0 .6-.6.6-1.7 0-2.3l-3.7-3.7" fill="#f29a2e"/><ellipse transform="matrix(.7071-.7071.7071.7071-12.8038 30.9107)" cx="30.9" cy="30.9" rx="13.6" ry="12" fill="#dae3ea"/><path d="m22.2 19.9c-.6-.6-1.7-.6-2.3 0-.6.6-.6 1.7 0 2.3l3.7 3.7c.6.6 1.7.6 2.3 0 .6-.6.6-1.7 0-2.3l-3.7-3.7" fill="#f29a2e"/><ellipse transform="matrix(.7071-.7071.7071.7071-6.1407 14.823)" cx="14.8" cy="14.8" rx="13.6" ry="12" fill="#ff99ad"/><path d="m6.1 3.8c-.6-.6-1.7-.6-2.3 0-.6.6-.6 1.7 0 2.3l3.7 3.7c.6.6 1.7.6 2.3 0 .6-.6.6-1.7 0-2.3l-3.7-3.7" fill="#f29a2e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f362.svg b/build/js/jsxc/lib/emojione/assets/svg/1f362.svg
index f88c5b7..f00dbf6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f362.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f362.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m52.28 49.806c-.684-.684-1.792-.684-2.475 0-.684.683-.684 1.792 0 2.476l7.316 7.316c.684.684 1.791.684 2.475 0 .684-.684.684-1.791 0-2.475l-7.316-7.317"/><path fill="#dae3ea" d="m60.74 38.578c1.566 1.566 1.689 3.983.273 5.398l-17.04 17.04c-1.416 1.416-3.832 1.293-5.398-.273l-7.67-7.67c-1.567-1.566-1.69-3.984-.274-5.398l17.04-17.04c1.415-1.415 3.832-1.292 5.399.274l7.669 7.669"/><path fill="#f29a2e" d="m38.955 36.48c-.684-.684-1.792-.684-2.476 0-.683.684-.683 1.791 0 2.475l3.874 3.873c.684.684 1.791.684 2.475 0 .684-.684.684-1.791 0-2.475l-3.873-3.873"/><ellipse transform="matrix(.7071-.7071.7071.7071-12.908 31.16)" fill="#8e725e" cx="31.16" cy="31.16" rx="14.381" ry="12.638"/><path fill="#f29a2e" d="m21.972 19.497c-.684-.683-1.792-.683-2.475 0-.684.684-.684 1.792 0 2.475l3.873 3.874c.684.684 1.791.684 2.475 0 .684-.683.684-1.791 0-2.475l-3.873-3.874"/><path fill="#62727a" d="m29.942 7.02c4.937 4.936-1.21 10.477-6.826 16.09-5.616 5.616-11.157 11.763-16.09 6.827-2.64-2.64-5.103-21.38-1.781-24.702s22.06-.858 24.701 1.782"/><path fill="#f29a2e" d="m4.987 2.513c-.684-.684-1.791-.684-2.475 0-.684.684-.684 1.791 0 2.475l3.873 3.874c.684.684 1.792.684 2.476 0 .684-.684.684-1.792 0-2.475l-3.874-3.874"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.3 49.8c-.7-.7-1.8-.7-2.5 0-.7.7-.7 1.8 0 2.5l7.3 7.3c.7.7 1.8.7 2.5 0 .7-.7.7-1.8 0-2.5l-7.3-7.3" fill="#f29a2e"/><path d="m60.7 38.6c1.6 1.6 1.7 4 .3 5.4l-17 17c-1.4 1.4-3.8 1.3-5.4-.3l-7.7-7.7c-1.6-1.6-1.7-4-.3-5.4l17-17c1.4-1.4 3.8-1.3 5.4.3l7.7 7.7" fill="#dae3ea"/><path d="m39 36.5c-.7-.7-1.8-.7-2.5 0-.7.7-.7 1.8 0 2.5l3.9 3.9c.7.7 1.8.7 2.5 0 .7-.7.7-1.8 0-2.5l-3.9-3.9" fill="#f29a2e"/><ellipse transform="matrix(.7071-.7071.7071.7071-12.9089 31.1628)" cx="31.2" cy="31.2" rx="14.4" ry="12.6" fill="#8e725e"/><path d="m22 19.5c-.7-.7-1.8-.7-2.5 0-.7.7-.7 1.8 0 2.5l3.9 3.9c.7.7 1.8.7 2.5 0 .7-.7.7-1.8 0-2.5l-3.9-3.9" fill="#f29a2e"/><path d="M29.9,7c4.9,4.9-1.2,10.5-6.8,16.1S12,34.9,7,29.9C4.4,27.3,1.9,8.6,5.2,5.2S27.3,4.4,29.9,7z" fill="#62727a"/><path d="m5 2.5c-.7-.7-1.8-.7-2.5 0-.7.7-.7 1.8 0 2.5l3.9 3.9c.7.7 1.8.7 2.5 0 .7-.7.7-1.8 0-2.5l-3.9-3.9" fill="#f29a2e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f363.svg b/build/js/jsxc/lib/emojione/assets/svg/1f363.svg
index f6ef550..93aed08 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f363.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f363.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f7f2df" d="m50 45c6.05-8.248-45.498-10.161-45.498-10.161s-1.205 1.71-.274 3.03c.556.786 1.072 1.234.772 2.134-.33.989.828 1.979 1 3 .277 1.645-.627 2.385 1.299 3.253.703.316 4.364 1.583 4.6.027.614 1.367 1.849 2.657 3.21 3.289 1.435.666 3.158.818 4.511 1.083.691 1.578 1.657.899 2.816 1.749 1.181.866 2.983 1.679 4.488 1.419 1.318-.229 1.168-.938 2.608.177-.116 1.618 1.429.933 2.469 1.261 1.04.327 5.246.252 5.771.496.643.295-.524 1.616.424 2.141 1.486.824 3.273-2.806 3.957-3.443-.122.614-.397 3.283.99 2.866 1.764-.531 1.314-3.058 2.791-3.641 1.668-.66 2.8-1.711 3.199-3.485.151-.674.199-1.356.153-2.045 1.166-.262 1.307-2.542.714-3.147"/><g fill="#e8e1d6"><path d="m27.731 51.48c-1.674-.906-3.336-1.109-3.715-.46-.377.649.672 1.908 2.348 2.813 1.671.903 3.336 1.11 3.715.46.378-.651-.673-1.911-2.348-2.813"/><path d="m12.01 45.46c-1.711-.833-3.383-.966-3.729-.302-.348.666.758 1.879 2.471 2.711 1.714.834 3.385.971 3.73.305.349-.665-.758-1.882-2.472-2.714"/><path d="m18.591 48.551c-1.712-.833-3.384-.967-3.729-.303-.348.666.76 1.879 2.472 2.713 1.713.832 3.383.969 3.729.303.348-.664-.757-1.881-2.472-2.713"/><path d="m38.695 52.48c.245-.482.299-.904.082-1.168-.484-.594-2.096-.172-3.594.94-1.5 1.112-2.319 2.494-1.834 3.088.222.27.683.319 1.253.199-.379.671-.478 1.262-.179 1.57.531.557 2.1.012 3.498-1.211 1.4-1.224 2.104-2.666 1.57-3.221-.17-.176-.453-.23-.796-.197"/><path d="m33.34 50.05c.022.081.053.158.104.222.488.595 2.096.173 3.594-.939 1.5-1.111 2.322-2.496 1.836-3.088-.484-.594-2.096-.172-3.592.939-.113.084-.214.171-.319.258-.001-.202-.05-.376-.171-.501-.345-.358-1.129-.251-2.02.199-.324-.05-.661-.088-1.018-.1-1.909-.061-3.472.498-3.485 1.244-.011.515.722.979 1.796 1.243-.52.784-.683 1.495-.343 1.847.533.557 2.099.013 3.5-1.214.041-.036.076-.074.116-.11"/><path d="m44.514 48.03c-.713-.314-1.924.775-2.699 2.436-.471 1.01-.815 3.535-.106 3.568.779.036 1.922-.778 2.697-2.437.776-1.657.824-3.256.108-3.567"/><path d="m49.52 42.03c-.713-.313-1.922.777-2.697 2.437-.775 1.658-.822 3.258-.104 3.568.715.314 1.924-.776 2.695-2.435.775-1.66.824-3.257.106-3.57"/><path d="m14.03 44.537c-.347.667.761 1.88 2.474 2.713 1.712.833 3.382.97 3.73.303.347-.663-.759-1.881-2.474-2.714-1.711-.832-3.383-.967-3.73-.302"/><path d="m9.98 41.19c-.111-1.823-.839-3.275-1.62-3.24-.782.034-1.324 1.539-1.211 3.362s.836 3.276 1.62 3.241c.78-.034 1.324-1.538 1.211-3.363"/><path d="m15.444 42.558c1.113-1.467 1.5-3.02.863-3.463-.635-.443-2.054.387-3.167 1.854-1.114 1.468-1.503 3.02-.868 3.462.637.445 2.057-.384 3.172-1.853"/><path d="m28.903 46.45c.016-.747-1.52-1.404-3.434-1.465-1.908-.061-3.47.498-3.485 1.244-.015.748 1.522 1.402 3.433 1.463 1.912.061 3.472-.493 3.486-1.242"/></g><g fill="#3f4237"><path d="m13.391 13.677h25.4v9.884h-25.4z"/><path d="m38.16 21.13c2.477 4.749-2.432 10.317-12.06 10.317-9.635 0-14.543-5.568-12.06-10.317 1.754-3.368 6.972-5.454 12.06-5.454 5.092 0 10.308 2.086 12.06 5.454"/></g><path fill="#8cc63e" d="m38.16 11.429c2.477 4.75-2.43 10.316-12.06 10.316-9.635 0-14.543-5.566-12.06-10.316 1.754-3.367 6.972-5.453 12.06-5.453 5.092 0 10.308 2.086 12.06 5.453"/><path fill="#ffeee2" d="m37.06 11.429c2.01 4.238-2.551 9.02-10.966 9.02-8.418 0-12.979-4.776-10.969-9.02 1.471-3.102 6.236-5.066 10.969-5.066s9.495 1.965 10.966 5.066"/><path fill="#f55" d="m31.576 11.902c.462 1.942-1.96 3.773-5.483 3.773-3.521 0-5.945-1.831-5.484-3.773.394-1.662 2.828-2.844 5.484-2.844s5.089 1.182 5.483 2.844"/><g fill="#3f4237"><path d="m36.598 21.378h25.402v9.884h-25.402z"/><path d="m61.36 28.832c2.477 4.748-2.43 10.316-12.06 10.316-9.633 0-14.539-5.568-12.06-10.316 1.758-3.368 6.973-5.455 12.06-5.455s10.308 2.086 12.06 5.455"/></g><path fill="#8cc63e" d="m61.36 19.13c2.477 4.749-2.432 10.317-12.07 10.317-9.633 0-14.539-5.568-12.06-10.317 1.756-3.368 6.971-5.454 12.06-5.454s10.308 2.086 12.07 5.454"/><path fill="#ffeee2" d="m60.27 19.13c2.01 4.239-2.551 9.02-10.969 9.02-8.416 0-12.979-4.775-10.967-9.02 1.471-3.103 6.236-5.067 10.967-5.067 4.732 0 9.498 1.965 10.969 5.067"/><path fill="#f55" d="m54.783 19.605c.459 1.94-1.963 3.771-5.486 3.771-3.521 0-5.943-1.831-5.482-3.771.395-1.663 2.828-2.845 5.482-2.845 2.656 0 5.09 1.182 5.486 2.845"/><path fill="#ec6430" d="m2 31.22c-.105 2.209 1.512 5.082 3.777 6.517s36.445 14.467 38.17 12.589c1.725-1.879-6.723-12.676-11.447-14.725-12.479-5.411-30.503-4.381-30.503-4.381"/><path fill="#e8491f" d="m43.477 46.36c-.141 1.098.125 4.22.479 3.972 2.188-1.551 8.299-9.421 5.492-15.683l-5.971 11.711"/><path fill="#f3813b" d="m2 31.22c0 0 5.649-7.03 7.699-7.771 5.924-2.127 6.078-1.989 10.537-.958 4.463 1.031 24.619 6.02 29.21 12.152 1.199 1.602-4.713 12.25-6 12.958-1.15.631-8.184-1.394-17.643-7.47-10.727-6.89-21.532-8.359-23.8-8.911"/><path fill="#f4a24e" d="m38.31 45.524c-.545-.282-1.078-.59-1.613-.893-.315-3.267.898-7.118.737-10.429-.651 3.02-2.353 6-3.207 8.997-.24-.143-.479-.283-.719-.426-1.919-1.172-3.857-2.345-5.828-3.481 1.3-3.893 2.097-8.298.186-12.08.941 3.809-.555 7.536-2.49 10.79-.526-.288-1.05-.579-1.583-.858-1.71-.893-3.461-1.733-5.252-2.49-.755-3.376 2.192-7.63-.889-10.46 1.835 2.871-.653 6.306-1.544 9.5-.93-.341-1.871-.657-2.824-.938-3.65-1.1-7.486-1.748-11.28-1.529 3.648 1.026 7.106 2.267 10.479 3.729 3.364 1.478 6.641 3.132 9.923 4.847 3.286 1.705 6.564 3.495 10.02 5.04 1.72.786 3.5 1.488 5.337 2.044 1.84.513 3.777.923 5.682.719-1.842-.461-3.512-1.217-5.137-2.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50 45c6-8.2-45.5-10.2-45.5-10.2s-1.2 1.7-.3 3c.6.9 1.1 1.3.8 2.2-.3 1 .8 2 1 3 .3 1.6-.6 2.4 1.3 3.3.7.3 4.4 1.6 4.6 0 .6 1.4 1.8 2.7 3.2 3.3 1.4.7 3.2.8 4.5 1.1.7 1.6 1.7.9 2.8 1.7 1.2.9 3 1.7 4.5 1.4 1.3-.2 1.2-.9 2.6.2-.1 1.6 1.4.9 2.5 1.3 1 .3 5.2.3 5.8.5.6.3-.5 1.6.4 2.1 1.5.8 3.3-2.8 4-3.4-.1.6-.4 3.3 1 2.9 1.8-.5 1.3-3.1 2.8-3.6 1.7-.7 2.8-1.7 3.2-3.5.2-.7.2-1.4.2-2 1.1-.4 1.2-2.7.6-3.3" fill="#f7f2df"/><g fill="#e8e1d6"><path d="m27.7 51.5c-1.7-.9-3.3-1.1-3.7-.5-.4.6.7 1.9 2.3 2.8 1.7.9 3.3 1.1 3.7.5.5-.7-.6-1.9-2.3-2.8"/><path d="m12 45.5c-1.7-.8-3.4-1-3.7-.3-.4.6.7 1.8 2.5 2.7 1.7.8 3.4 1 3.7.3.3-.7-.8-1.9-2.5-2.7"/><path d="m18.6 48.6c-1.7-.8-3.4-1-3.7-.3-.3.7.8 1.9 2.5 2.7 1.7.8 3.4 1 3.7.3.3-.7-.8-1.9-2.5-2.7"/><path d="m38.7 52.5c.2-.5.3-.9.1-1.2-.5-.6-2.1-.2-3.6.9-1.5 1.1-2.3 2.5-1.8 3.1.2.3.7.3 1.3.2-.4.7-.5 1.3-.2 1.6.5.6 2.1 0 3.5-1.2 1.4-1.2 2.1-2.7 1.6-3.2-.3-.2-.6-.3-.9-.2"/><path d="m33.3 50.1c0 .1.1.2.1.2.5.6 2.1.2 3.6-.9 1.5-1.1 2.3-2.5 1.8-3.1-.5-.6-2.1-.2-3.6.9-.1.1-.2.2-.3.3 0-.2 0-.4-.2-.5-.3-.4-1.1-.3-2 .2-.3 0-.7-.1-1-.1-1.9-.1-3.5.5-3.5 1.2 0 .5.7 1 1.8 1.2-.5.8-.7 1.5-.3 1.8.5.6 2.1 0 3.5-1.2.1 0 .1 0 .1 0"/><path d="m44.5 48c-.7-.3-1.9.8-2.7 2.4-.5 1-.8 3.5-.1 3.6.8 0 1.9-.8 2.7-2.4.8-1.7.8-3.3.1-3.6"/><path d="m49.5 42c-.7-.3-1.9.8-2.7 2.4-.8 1.7-.8 3.3-.1 3.6.7.3 1.9-.8 2.7-2.4.8-1.7.8-3.3.1-3.6"/><path d="m14 44.5c-.3.7.8 1.9 2.5 2.7 1.7.8 3.4 1 3.7.3.3-.7-.8-1.9-2.5-2.7-1.6-.8-3.3-.9-3.7-.3"/><path d="m10 41.2c-.1-1.8-.8-3.3-1.6-3.2-.8 0-1.3 1.5-1.2 3.4s.8 3.3 1.6 3.2c.7-.1 1.3-1.6 1.2-3.4"/><path d="m15.4 42.6c1.1-1.5 1.5-3 .9-3.5-.6-.4-2.1.4-3.2 1.9-1.1 1.5-1.5 3-.9 3.5.7.4 2.1-.5 3.2-1.9"/><path d="m28.9 46.4c0-.7-1.5-1.4-3.4-1.5-1.9-.1-3.5.5-3.5 1.2 0 .7 1.5 1.4 3.4 1.5 1.9.1 3.5-.4 3.5-1.2"/></g><g fill="#3f4237"><path d="m13.4 13.7h25.4v9.9h-25.4z"/><path d="m38.2 21.1c2.5 4.7-2.4 10.3-12.1 10.3-9.6 0-14.5-5.6-12.1-10.3 1.8-3.4 7-5.5 12.1-5.5 5.1.1 10.3 2.2 12.1 5.5"/></g><path d="m38.2 11.4c2.5 4.8-2.4 10.3-12.1 10.3-9.6 0-14.5-5.6-12.1-10.3 1.8-3.3 7-5.4 12.1-5.4s10.3 2.1 12.1 5.4" fill="#8cc63e"/><path d="m37.1 11.4c2 4.2-2.6 9-11 9-8.4 0-13-4.8-11-9 1.5-3.1 6.2-5.1 11-5.1s9.5 2 11 5.1" fill="#ffeee2"/><path d="m31.6 11.9c.5 1.9-2 3.8-5.5 3.8-3.5 0-5.9-1.8-5.5-3.8.4-1.7 2.8-2.8 5.5-2.8s5.1 1.1 5.5 2.8" fill="#f55"/><g fill="#3f4237"><path d="m36.6 21.4h25.4v9.9h-25.4z"/><path d="m61.4 28.8c2.5 4.7-2.4 10.3-12.1 10.3-9.6 0-14.5-5.6-12.1-10.3 1.8-3.4 7-5.5 12.1-5.5s10.3 2.2 12.1 5.5"/></g><path d="m61.4 19.1c2.5 4.7-2.4 10.3-12.1 10.3-9.6 0-14.5-5.6-12.1-10.3 1.8-3.4 7-5.5 12.1-5.5s10.3 2.2 12.1 5.5" fill="#8cc63e"/><path d="m60.3 19.1c2 4.2-2.6 9-11 9-8.4 0-13-4.8-11-9 1.5-3.1 6.2-5.1 11-5.1 4.7.1 9.5 2 11 5.1" fill="#ffeee2"/><path d="m54.8 19.6c.5 1.9-2 3.8-5.5 3.8-3.5 0-5.9-1.8-5.5-3.8.4-1.7 2.8-2.8 5.5-2.8 2.7 0 5.1 1.1 5.5 2.8" fill="#f55"/><path d="M2,31.2c-0.1,2.2,1.5,5.1,3.8,6.5S42.2,52.2,44,50.3c1.7-1.9-6.7-12.7-11.4-14.7C20,30.2,2,31.2,2,31.2z" fill="#ec6430"/><path d="m43.5 46.4c-.1 1.1.1 4.2.5 4 2.2-1.6 8.3-9.4 5.5-15.7l-6 11.7" fill="#e8491f"/><path d="m2 31.2c0 0 5.6-7 7.7-7.8 5.9-2.1 6.1-2 10.5-1 4.5 1 24.6 6 29.2 12.2 1.2 1.6-4.7 12.2-6 13-1.2.6-8.2-1.4-17.6-7.5-10.7-6.9-21.5-8.3-23.8-8.9" fill="#f3813b"/><path d="m38.3 45.5c-.5-.3-1.1-.6-1.6-.9-.3-3.3.9-7.1.7-10.4-.7 3-2.4 6-3.2 9-.2-.1-.5-.3-.7-.4-1.9-1.2-3.9-2.3-5.8-3.5 1.3-3.9 2.1-8.3.2-12.1.9 3.8-.6 7.5-2.5 10.8-.5-.3-1-.6-1.6-.9-1.7-.9-3.5-1.7-5.3-2.5-.8-3.4 2.2-7.6-.9-10.5 1.8 2.9-.7 6.3-1.5 9.5-.9-.3-1.9-.7-2.8-.9-3.7-1-7.5-1.7-11.3-1.5 3.6 1 7.1 2.3 10.5 3.7 3.4 1.5 6.6 3.1 9.9 4.8 3.3 1.7 6.6 3.5 10 5 1.7.8 3.5 1.5 5.3 2 1.8.5 3.8.9 5.7.7-1.8-.3-3.5-1-5.1-1.9" fill="#f4a24e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f364.svg b/build/js/jsxc/lib/emojione/assets/svg/1f364.svg
index 49ff103..c64f840 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f364.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f364.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f46c6c" d="m27.683 12.215c-3.796 5.201-23.07 9.573-23.07 9.573s2.75-5.378 10.394-8.827c0 0-8.02 3.262-13.01 1.527 0 0 7.737-8.678 24.02-10.169l1.659 7.896"/><path fill="#f8bd17" d="m58.17 43.874c.004.003-.018.014-.014.018s.01-.021.014-.018"/><path fill="#f8d317" d="m60.868 27.08c-.672-2.758.569-5.837-1.688-6.9-1.136-.535-1.754-2.076-2.027-3.331-.281-1.289-.086-2.289-1.09-3.171-1.014-.889-2.677-1.463-3.675-2.375-.935-.856-.559-2.169-1.258-3.212-.882-1.309-2.109-1.702-3.576-1.938-1.397-.224-2.49-.686-3.598-1.596-1.115-.914-2.178-1.877-3.693-1.836-1.207.036-2.358.575-3.571.549-1.353-.032-2.332-1.345-3.675-1.266-1.11.066-1.875 1.062-2.837 1.521-1.117.535-2.237-.13-3.372-.036-1.094.09-1.687 1.133-2.177 2.035-.681 1.254-1.948 1.423-2.96 2.289.002.001.004.002.006.003-.732.511-.941 1.672-.031 3.258-.148-.259-.284-.494.002.004.753 1.309.642 3.232 1.653 4.358 1.065 1.185 3.452-.573 4.767.083 1.573.784 2.105 1.69 3.991 2.034 1.216.221 2.865 2.744 3.66 3.188 1.15.642 3.03 1.811 3.671 2.813.566.88 1.122 3.03 1.335 4.127.246 1.254-.566 3.264-1.432 3.87-1.162.812-2.589 2.336-3.612 3.276-1.706 1.568-3.736-.265-5.637.304-1.158.345-2.099 1.192-3.347 1.198-1.337.008-2.534-.69-3.854-.789-1.588-.12-3.893 1.568-5.04 2.544-1.376 1.164-2.896 1.324-4.472 2-1.528.655-2.031 2.112-2.443 3.658-.399 1.485-2.274 1.579-2.731 2.352-.863 1.458 1.281 3.474 2.302 6.859 1.153 3.826 1.707 1.614 4.801 3.262 1.167.641 1.901 2.427 3.376 3.035 1.673.679 3.338-.492 4.944.5 1.077.666 1.554 2.507 2.991 2.217 1.3-.262 2.519-2.262 3.913-1.779 3.47 1.202 3.317-.527 6.507-.438 1.747.05 3.579 1.694 5.122.33 1.393-1.231 2.284-3.103 4.118-3.269 3.51-.317 3.69-3.052 6.428-4.638 3.632-2.104 4.928-6.235 5.516-8.303.808-2.838 1.223-5.943 3.266-9.669 1.296-2.367.024-4.685-.571-7.123"/><g fill="#f8b100"><path d="m21.832 42.06c-.98 1.112-2.11 1.91-3.199 2.337 1.514 1.064 3.604.82 4.916-.667 1.309-1.484 1.376-3.698.253-5.203-.323 1.175-.991 2.419-1.97 3.533"/><path d="m32.28 46.702c-.979 1.114-2.108 1.909-3.198 2.338 1.516 1.063 3.605.819 4.915-.664 1.309-1.488 1.376-3.7.254-5.207-.323 1.176-.99 2.421-1.971 3.533"/><path d="m25.309 54.705c-.979 1.113-2.108 1.908-3.198 2.337 1.515 1.064 3.605.82 4.915-.664 1.309-1.487 1.376-3.7.253-5.206-.323 1.175-.99 2.42-1.97 3.533"/><path d="m39.932 53.23c-.979 1.114-2.108 1.909-3.198 2.338 1.515 1.063 3.605.819 4.914-.664 1.31-1.488 1.376-3.7.254-5.207-.323 1.175-.991 2.42-1.97 3.533"/><path d="m52.606 45.52c-.979 1.113-2.108 1.909-3.198 2.338 1.516 1.063 3.606.819 4.915-.664 1.309-1.488 1.376-3.701.254-5.207-.323 1.174-.99 2.42-1.971 3.533"/><path d="m37.965 37.455c-.979 1.112-2.109 1.908-3.198 2.337 1.516 1.063 3.606.819 4.915-.666s1.378-3.697.255-5.205c-.323 1.177-.992 2.42-1.972 3.534"/><path d="m45.496 40.43c-.979 1.111-2.108 1.908-3.199 2.336 1.515 1.064 3.607.819 4.916-.665 1.31-1.485 1.378-3.699.254-5.206-.323 1.176-.99 2.421-1.971 3.535"/><path d="m48.686 28.357c-.979 1.112-2.108 1.909-3.197 2.336 1.513 1.064 3.606.82 4.914-.666 1.309-1.484 1.378-3.696.254-5.204-.324 1.176-.989 2.42-1.971 3.534"/><path d="m41.3 19.05c-.979 1.114-2.109 1.911-3.197 2.339 1.515 1.063 3.605.819 4.914-.666 1.309-1.486 1.378-3.698.253-5.205-.323 1.174-.991 2.419-1.97 3.532"/><path d="m50.997 17.502c-.98 1.112-2.11 1.909-3.199 2.336 1.514 1.063 3.606.819 4.913-.666 1.31-1.485 1.38-3.696.256-5.204-.322 1.176-.99 2.42-1.97 3.534"/><path d="m41.08 10.06c-.98 1.113-2.108 1.909-3.2 2.336 1.516 1.065 3.606.821 4.915-.664 1.311-1.485 1.378-3.698.256-5.205-.323 1.174-.99 2.418-1.971 3.533"/><path d="m31.562 10.443c-1.124.961-2.356 1.588-3.494 1.854 1.351 1.271 3.457 1.326 4.96.043s1.885-3.466.98-5.117c-.482 1.12-1.317 2.256-2.446 3.22"/><path d="m15.592 41.14l-1.014 1.01 1.014 1 1.013-1z"/><path d="m16.501 48.31l-1.014 1.01 1.014 1.01 1.014-1.01z"/><path d="m29.749 39.15l-1.014 1.01 1.014 1 1.014-1z"/><path d="m39.711 44.42l-1.014 1.01 1.014 1 1.014-1z"/><path d="m43.834 33.811l-1.014 1 1.014 1.01 1.014-1.01z"/><path d="m54.35 33.2l-1.01 1.01 1.01 1 1.02-1z"/><path d="m50.776 39.521l-1.013 1.01 1.013 1 1.014-1z"/><path d="m47.24 50.17l-1.01 1 1.01 1.01 1.02-1.01z"/><path d="m33.07 53.43l-1.01 1.01 1.01 1 1.02-1z"/><path d="m18.633 52.679l-1.014 1.01 1.014 1 1.013-1z"/><path d="m11.869 48.31l-1.014 1 1.014 1.01 1.014-1.01z"/><path d="m58.17 36.18l-1.02 1 1.02 1.01 1.01-1.01z"/><path d="m25.09 10.94l-1.02 1.01 1.02 1 1.01-1z"/><path d="m55.05 22.04l-1.02 1.01 1.02 1.01 1.01-1.01z"/><path d="m45.49 23.818l-1.01 1 1.01 1 1.01-1z"/><path d="m49.27 12.961l-1.01 1.01 1.01 1.01 1.01-1.01z"/><path d="m36.732 15.843l-1.013 1 1.013 1.01 1.014-1.01z"/><path d="m39.11 4.975l-1.01 1 1.01 1.01 1.02-1.01z"/><path d="m29.749 5.521l-1.014 1 1.014 1.01 1.014-1.01z"/><path d="m24.591 46.19l-1.014 1 1.014 1.01 1.013-1.01z"/><path d="m56.06 27.08l-1.01 1.01 1.01 1 1.02-1z"/><path d="m46.5 8.239l-1.01 1.01 1.01 1.01 1.02-1.01z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m27.7 12.2c-3.8 5.2-23.1 9.6-23.1 9.6s2.8-5.4 10.4-8.8c0 0-8 3.3-13 1.5 0 0 7.7-8.7 24-10.2l1.7 7.9" fill="#f46c6c"/><path d="m58.2 43.9c0 0 0 0 0 0" fill="#f8bd17"/><path d="m60.9 27.1c-.7-2.8.6-5.8-1.7-6.9-1.1-.5-1.8-2.1-2-3.3-.3-1.3-.1-2.3-1.1-3.2-1-.9-2.7-1.5-3.7-2.4-.9-.9-.6-2.2-1.3-3.2-.9-1.3-2.1-1.7-3.6-1.9-1.4-.2-2.5-.7-3.6-1.6-1.1-.9-2.2-1.9-3.7-1.8-1.2 0-2.4.6-3.6.5-1.4 0-2.3-1.3-3.7-1.3-1.1.1-1.9 1.1-2.8 1.5-1.1.5-2.2-.1-3.4 0-1.1.1-1.7 1.1-2.2 2-.7 1.3-1.9 1.4-3 2.3-.7.5-.9 1.7 0 3.3.8 1.3.6 3.2 1.7 4.4 1.1 1.2 3.5-.6 4.8.1 1.6.8 2.1 1.7 4 2 1.2.2 2.9 2.7 3.7 3.2 1.2.6 3 1.8 3.7 2.8.6.9 1.1 3 1.3 4.1.2 1.3-.6 3.3-1.4 3.9-1.2.8-2.6 2.3-3.6 3.3-1.7 1.6-3.7-.3-5.6.3-1.2.3-2.1 1.2-3.3 1.2-1.3 0-2.5-.7-3.9-.8-1.6-.1-3.9 1.6-5 2.5-1.4 1.2-2.9 1.3-4.5 2-1.5.7-2 2.1-2.4 3.7-.4 1.5-2.3 1.6-2.7 2.4-.9 1.5 1.3 3.5 2.3 6.9 1.2 3.8 1.7 1.6 4.8 3.3 1.2.6 1.9 2.4 3.4 3 1.7.7 3.3-.5 4.9.5 1.1.7 1.6 2.5 3 2.2 1.3-.3 2.5-2.3 3.9-1.8 3.5 1.2 3.3-.5 6.5-.4 1.7 0 3.6 1.7 5.1.3 1.4-1.2 2.3-3.1 4.1-3.3 3.5-.3 3.7-3.1 6.4-4.6 3.6-2.1 4.9-6.2 5.5-8.3.8-2.8 1.2-5.9 3.3-9.7 1.2-2.5 0-4.8-.6-7.2" fill="#f8d317"/><g fill="#f8b100"><path d="m21.8 42.1c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.3 1.2-1 2.4-2 3.6"/><path d="m32.3 46.7c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.4 1.2-1 2.5-2 3.6"/><path d="m25.3 54.7c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.3 1.2-1 2.5-2 3.6"/><path d="m39.9 53.2c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.3 1.3-1 2.5-2 3.6"/><path d="m52.6 45.5c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.3 1.3-1 2.5-2 3.6"/><path d="m38 37.5c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7s1.4-3.7.3-5.2c-.4 1.2-1.1 2.4-2 3.6"/><path d="m45.5 40.4c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.4 1.3-1 2.5-2 3.6"/><path d="m48.7 28.4c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.4 1.2-1 2.4-2 3.6"/><path d="m41.3 19.1c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.4 1.2-1 2.4-2 3.6"/><path d="m51 17.5c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.4 1.2-1 2.5-2 3.6"/><path d="m41.1 10.1c-1 1.1-2.1 1.9-3.2 2.3 1.5 1.1 3.6.8 4.9-.7 1.3-1.5 1.4-3.7.3-5.2-.4 1.2-1 2.4-2 3.6"/><path d="m31.6 10.4c-1.1 1-2.4 1.6-3.5 1.9 1.4 1.3 3.5 1.3 5 0s1.9-3.5 1-5.1c-.6 1.1-1.4 2.3-2.5 3.2"/><path d="m15.6 41.1l-1 1 1 1.1 1-1.1z"/><path d="m16.5 48.3l-1 1 1 1 1-1z"/><path d="m29.7 39.2l-1 1 1 1 1.1-1z"/><path d="m39.7 44.4l-1 1 1 1 1-1z"/><path d="m43.8 33.8l-1 1 1 1 1-1z"/><path d="m54.4 33.2l-1.1 1 1.1 1 1-1z"/><path d="m50.8 39.5l-1 1 1 1 1-1z"/><path d="m47.2 50.2l-1 1 1 1 1.1-1z"/><path d="m33.1 53.4l-1 1 1 1 1-1z"/><path d="m18.6 52.7l-1 1 1 1 1-1z"/><path d="m11.9 48.3l-1 1 1 1 1-1z"/><path d="m58.2 36.2l-1 1 1 1 1-1z"/><path d="m25.1 10.9l-1 1 1 1 1-1z"/><path d="m55 22l-1 1 1 1.1 1.1-1.1z"/><path d="m45.5 23.8l-1 1 1 1 1-1z"/><path d="m49.3 13l-1 1 1 1 1-1z"/><path d="m36.7 15.8l-1 1 1 1.1 1-1.1z"/><path d="m39.1 5l-1 1 1 1 1-1z"/><path d="m29.7 5.5l-1 1 1 1 1.1-1z"/><path d="m24.6 46.2l-1 1 1 1 1-1z"/><path d="m56.1 27.1l-1.1 1 1.1 1 1-1z"/><path d="m46.5 8.2l-1 1 1 1 1-1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f365.svg b/build/js/jsxc/lib/emojione/assets/svg/1f365.svg
index 506f21a..9932d34 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f365.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f365.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#b2c1c0" d="m62 32.07c.006 2.501-4.309 4.412-4.918 6.717-.633 2.39 2.148 6.185.943 8.274-1.223 2.121-5.91 1.615-7.631 3.335-1.719 1.719-1.213 6.407-3.334 7.631-2.09 1.204-5.885-1.576-8.271-.946-2.307.61-4.217 4.925-6.721 4.918-2.506-.007-4.4-4.332-6.715-4.958-2.391-.646-6.207 2.116-8.301.9-2.125-1.233-1.617-5.929-3.344-7.653-1.725-1.726-6.418-1.219-7.65-3.343-1.217-2.096 1.543-5.908.898-8.3-.623-2.313-4.951-4.21-4.957-6.717-.008-2.502 4.307-4.412 4.916-6.718.631-2.39-2.15-6.184-.945-8.273 1.223-2.121 5.91-1.616 7.631-3.335 1.719-1.72 1.213-6.408 3.334-7.63 2.09-1.205 5.885 1.575 8.273.943 2.308-.608 4.218-4.923 6.72-4.916 2.508.007 4.402 4.333 6.717 4.958 2.389.646 6.203-2.114 8.299-.898 2.125 1.232 1.617 5.928 3.344 7.653 1.727 1.725 6.418 1.219 7.652 3.342 1.217 2.095-1.545 5.91-.898 8.3.624 2.313 4.95 4.209 4.958 6.716"/><path fill="#e2f0f2" d="m62 30.858c.006 2.401-4.309 4.234-4.918 6.446-.633 2.293 2.148 5.935.943 7.94-1.223 2.036-5.91 1.55-7.631 3.2-1.719 1.649-1.213 6.148-3.334 7.323-2.09 1.155-5.885-1.513-8.271-.907-2.307.585-4.217 4.726-6.721 4.719-2.506-.007-4.4-4.157-6.715-4.758-2.391-.619-6.207 2.03-8.301.863-2.125-1.184-1.617-5.688-3.344-7.344-1.725-1.656-6.418-1.17-7.65-3.208-1.217-2.01 1.543-5.671.898-7.966-.623-2.22-4.951-4.04-4.957-6.445-.008-2.402 4.307-4.234 4.916-6.447.631-2.292-2.15-5.934-.945-7.939 1.223-2.035 5.91-1.551 7.631-3.2 1.719-1.65 1.213-6.149 3.334-7.322 2.09-1.156 5.885 1.512 8.273.905 2.308-.584 4.218-4.724 6.72-4.718 2.508.007 4.402 4.158 6.717 4.758 2.389.62 6.203-2.028 8.299-.861 2.125 1.183 1.617 5.688 3.344 7.344s6.418 1.17 7.652 3.208c1.217 2.01-1.545 5.671-.898 7.964.624 2.22 4.95 4.04 4.958 6.445"/></g><path fill="#fc97b2" d="m51.06 37.872c-.911 2.968-2.593 5.793-4.933 8.07-2.325 2.288-5.328 3.983-8.59 4.799-6.504 1.681-14.01-.21-18.783-5.14-2.404-2.431-4-5.596-4.681-8.839-.685-3.258-.494-6.585.356-9.664.849-3.082 2.385-5.945 4.506-8.323 2.089-2.426 4.98-4.247 8.208-5.069 3.222-.815 6.807-.609 9.996.801 3.163 1.376 6.02 3.933 7.444 7.376 1.44 3.394 1.427 7.407-.127 10.837-.762 1.716-1.886 3.281-3.294 4.526-1.53 1.366-3.347 2.216-5.291 2.622-1.938.373-3.966.261-5.828-.371-1.859-.627-3.561-1.726-4.835-3.184-1.37-1.539-2.195-3.489-2.364-5.481-.178-1.992.337-4 1.372-5.653.509-.818 1.176-1.58 1.883-2.15.848-.687 1.709-1.11 2.671-1.389 1.897-.55 3.952-.269 5.563.697.807.481 1.505 1.095 2.04 1.846.557.782.885 1.666.988 2.565.216 1.803-.584 3.582-1.892 4.548l-.354-.354c.875-1.177 1.046-2.671.614-3.856-.203-.593-.562-1.122-.991-1.501-.457-.403-.991-.736-1.55-.93-1.121-.394-2.341-.312-3.323.146-.478.218-.955.584-1.24.917-.415.459-.714.9-.949 1.412-.939 2.01-.415 4.479 1.072 5.819 1.618 1.535 3.941 2.163 6.04 1.672 1.039-.206 2.05-.739 2.816-1.376.884-.762 1.618-1.691 2.155-2.73 1.066-2.083 1.259-4.653.47-6.937-.405-1.153-.996-2.176-1.869-3.156-.816-.896-1.861-1.781-2.977-2.444-2.247-1.355-5.01-2.044-7.782-1.751-2.779.25-5.474 1.569-7.5 3.639-2.04 2.074-3.477 4.766-3.998 7.624-.542 2.855-.161 5.821.889 8.405 1.048 2.603 2.743 4.807 4.756 6.576 2.02 1.775 4.377 3.155 6.959 3.942 2.575.803 5.345 1 8.05.6 2.711-.407 5.356-1.447 7.712-3.061 2.361-1.615 4.392-3.795 6.135-6.305l.451.226"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32.1c0 2.5-4.3 4.4-4.9 6.7-.6 2.4 2.1 6.2.9 8.3-1.2 2.1-5.9 1.6-7.6 3.3-1.7 1.7-1.2 6.4-3.3 7.6-2.1 1.2-5.9-1.6-8.3-.9-2.3.6-4.2 4.9-6.7 4.9-2.5 0-4.4-4.3-6.7-5-2.4-.6-6.2 2.1-8.3.9-2.1-1.2-1.6-5.9-3.3-7.7-1.7-1.7-6.4-1.2-7.7-3.3-1.3-2.1 1.5-5.9.9-8.3-.6-2.3-5-4.2-5-6.7 0-2.5 4.3-4.4 4.9-6.7.6-2.4-2.1-6.2-.9-8.3 1.2-2.1 5.9-1.6 7.6-3.3 1.7-1.7 1.2-6.4 3.3-7.6 2.1-1.2 5.9 1.6 8.3.9 2.3-.6 4.2-4.9 6.7-4.9 2.5 0 4.4 4.3 6.7 5 2.4.6 6.2-2.1 8.3-.9 2.1 1.2 1.6 5.9 3.3 7.7s6.4 1.2 7.7 3.3c1.2 2.1-1.5 5.9-.9 8.3.7 2.3 5 4.2 5 6.7" fill="#b2c1c0"/><path d="m62 30.9c0 2.4-4.3 4.2-4.9 6.4-.6 2.3 2.1 5.9.9 7.9-1.2 2-5.9 1.5-7.6 3.2-1.7 1.6-1.2 6.1-3.3 7.3-2.1 1.2-5.9-1.5-8.3-.9-2.3.6-4.2 4.7-6.7 4.7-2.5 0-4.4-4.2-6.7-4.8-2.4-.6-6.2 2-8.3.9-2.1-1.2-1.6-5.7-3.3-7.3-1.7-1.7-6.4-1.2-7.7-3.2-1.2-2 1.5-5.7.9-8-.6-2.2-5-4-5-6.4 0-2.4 4.3-4.2 4.9-6.4.6-2.3-2.1-6-.9-8 1.2-2 5.9-1.6 7.6-3.2 1.7-1.6 1.2-6.1 3.3-7.3 2.1-1.2 5.9 1.5 8.3.9 2.3-.6 4.2-4.7 6.7-4.7 2.5 0 4.4 4.2 6.7 4.8 2.4.6 6.2-2 8.3-.9 2.1 1.2 1.6 5.7 3.3 7.3s6.4 1.2 7.7 3.2c1.2 2-1.5 5.7-.9 8 .7 2.2 5 4.1 5 6.5" fill="#e2f0f2"/><path d="m51.1 37.9c-.9 3-2.6 5.8-4.9 8.1-2.3 2.3-5.3 4-8.6 4.8-6.5 1.7-14-.2-18.8-5.1-2.4-2.4-4-5.6-4.7-8.8-.7-3.3-.5-6.6.4-9.7.8-3.1 2.4-5.9 4.5-8.3 2.1-2.4 5-4.2 8.2-5.1 3.2-.8 6.8-.6 10 .8 3.2 1.4 6 3.9 7.4 7.4 1.4 3.4 1.4 7.4-.1 10.8-.8 1.7-1.9 3.3-3.3 4.5-1.5 1.4-3.3 2.2-5.3 2.6-1.9.4-4 .3-5.8-.4-1.9-.6-3.6-1.7-4.8-3.2-1.4-1.5-2.2-3.5-2.4-5.5-.2-2 .3-4 1.4-5.7.5-.8 1.2-1.6 1.9-2.1.8-.7 1.7-1.1 2.7-1.4 1.9-.5 4-.3 5.6.7.8.5 1.5 1.1 2 1.8.6.8.9 1.7 1 2.6.2 1.8-.6 3.6-1.9 4.5l-.4-.4c.9-1.2 1-2.7.6-3.9-.2-.6-.6-1.1-1-1.5-.5-.4-1-.7-1.5-.9-1.1-.4-2.3-.3-3.3.1-.5.2-1 .6-1.2.9-.4.5-.7.9-.9 1.4-.9 2-.4 4.5 1.1 5.8 1.6 1.5 3.9 2.2 6 1.7 1-.2 2-.7 2.8-1.4.9-.8 1.6-1.7 2.2-2.7 1.1-2.1 1.3-4.7.5-6.9-.4-1.2-1-2.2-1.9-3.2-.8-.9-1.9-1.8-3-2.4-2.2-1.4-5-2-7.8-1.8-2.8.2-5.5 1.6-7.5 3.6-2 2.1-3.5 4.8-4 7.6-.5 2.9-.2 5.8.9 8.4 1 2.6 2.7 4.8 4.8 6.6 2 1.8 4.4 3.2 7 3.9 2.6.8 5.3 1 8.1.6 2.7-.4 5.4-1.4 7.7-3.1 2.4-1.6 4.4-3.8 6.1-6.3l.2.6" fill="#fc97b2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f366.svg b/build/js/jsxc/lib/emojione/assets/svg/1f366.svg
index 1429f89..aab1e61 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f366.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f366.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffc861" d="m20.222 45.26l2.287 12.768h.012c.072 2.779 3.925 3.974 10.912 3.974 6.984 0 10.84-1.195 10.91-3.975h.014l2.283-12.768h-26.418z"/><path fill="#b17f4a" d="m20.284 45.602c0 0 3.102 2.689 13.148 2.689 10.05 0 13.146-2.689 13.146-2.689h-26.294"/><path fill="#ffc861" d="m16.433 34.99l1 8.08h.016c.094 2.777 6.795 3.975 15.984 3.975 9.188 0 15.889-1.197 15.982-3.975h.018l1-8.08h-34"/><path fill="#b17f4a" d="m16.884 38.645c.002.002 3.832 3.816 16.549 3.816 12.713 0 16.51-3.518 16.51-3.518l-33.06-.298"/><path fill="#ffe0b5" d="m52.966 32.917c0 8.197-8.656 8.201-19.334 8.201-10.68 0-19.336-.004-19.336-8.201 0-5.725 8.656-10.365 19.336-10.365 10.678-.001 19.334 4.64 19.334 10.365"/><path fill="#8f6453" d="m50.11 29.06c-6.04-4.113-12.602.842-19.4-.691-1.658-.375-3.02-.971-4.139-1.676l-2.309-7.389c0 0 4.627-5.617-2.316-6.04-6.945-.426-11.705 14.254-6.377 21.972 3.605 5.225 9.936 2.063 13.279 2.127 3.65.068 6.303 2.152 14.59.195 6.104-1.443 7.613-1.9 8.287-.264.001.001 2.381-5.512-1.615-8.233"/><path fill="#ffe0b5" d="m28.353 34.727c0 0-10.926 5.168-16.348-2.667-5.424-7.838 1.102-20.723 8.377-20.299 7.275.426 2.426 6.04 2.426 6.04l5.545 16.923"/><path fill="#8f6453" d="m49.835 28.897c.662-.332 3.201-6.451.422-10.465-2.775-4.01-6.412-4.887-9.646-7.08-1.758-1.189-4.824-4.457-.592-7.336 0 0-8.998-5.713-15.934 2.076-4.33 4.861-4.938 9.535-3.438 15.199 1.777 6.721 17.943 10.1 17.943 10.1l11.245-2.5"/><path fill="#ffe0b5" d="m40.02 4.02c-2.045.037-4.04.189-5.857.732-1.824.496-3.443 1.381-4.691 2.551-2.525 2.334-3.475 5.859-2.967 9.166.486 3.326 2.418 6.424 5.396 8.416 2.971 2.053 6.875 2.912 10.939 3.176-1.955.596-4.04.834-6.16.746-2.109-.131-4.273-.617-6.236-1.615-1.969-.979-3.715-2.447-5.01-4.225-1.301-1.779-2.146-3.859-2.471-6.01-.316-2.156-.113-4.395.676-6.463.787-2.063 2.186-3.949 4.04-5.248 1.836-1.322 4.055-1.986 6.191-2.141 2.155-.118 4.246.212 6.159.919"/><path fill="#8f6453" d="m20.319 12.795c-2.264 1.629-3.549 3.771-4.322 6.01-.758 2.24-.969 4.621-.541 6.801.432 2.18 1.527 4.115 3.408 5.482 1.869 1.398 4.424 2.16 7.182 2.73-2.666.842-5.789.904-8.641-.424-1.412-.658-2.686-1.693-3.625-2.953-.943-1.26-1.547-2.721-1.842-4.201-.578-2.973.035-6.01 1.5-8.537.744-1.26 1.709-2.404 2.891-3.285 1.188-.865 2.565-1.505 3.99-1.627"/><g fill="#ffe0b5"><path d="m40.02 4.02c-2.586 1.123-4.303 2.758-5.02 4.666-.76 1.895-.762 4.04-.305 6.123.467 2.094 1.387 4.143 2.715 6.04 1.318 1.918 3.059 3.645 5.201 5.389-2.822-.068-5.627-1.25-7.834-3.148-2.211-1.898-3.834-4.512-4.463-7.4-.635-2.854-.27-6.137 1.648-8.686.947-1.258 2.281-2.244 3.729-2.748 1.449-.506 2.966-.567 4.332-.235"/><path d="m40.02 4.02c-.783 1.053-1.555 2.084-1.859 3.127-.322 1.043-.115 1.842.422 2.646.539.809 1.375 1.604 2.275 2.383.908.783 1.885 1.568 2.867 2.385 1.953 1.641 3.961 3.449 5.473 5.75.744 1.146 1.352 2.428 1.617 3.785.254 1.354.193 2.754-.326 3.965-.506-2.572-1.863-4.449-3.531-6.119-1.668-1.674-3.633-3.156-5.592-4.805-.977-.83-1.969-1.686-2.906-2.672-.926-.988-1.859-2.09-2.43-3.553-.275-.727-.434-1.566-.324-2.389.1-.826.453-1.576.91-2.164.947-1.163 2.138-1.868 3.404-2.339"/></g><path fill="#8f6453" d="m51.728 37.3c0 0 6.178-5.685-1.84-9.738-6.725-3.396-13.201.844-20.324-.689-8.182-1.764-9.535-8.436-9.535-8.436-2.291 5.602-.176 12.148 5.057 14.917 5.234 2.768 12.352 3.359 17.814 1.951 6.347-1.636 8.121.358 8.828 1.995"/><path fill="#ffe0b5" d="m20.03 18.432c.564 1.516 1.408 2.838 2.357 4.049.949 1.205 2.02 2.283 3.195 3.174 2.348 1.801 5.119 2.783 8.05 2.977.732.057 1.477.063 2.225.025.375-.012.752-.037 1.129-.072l1.189-.129c1.727-.174 3.463-.232 5.217-.059 1.744.172 3.516.551 5.123 1.342 1.586.783 3.03 2.039 3.555 3.611-1.211-1.144-2.656-1.751-4.158-2.031-1.498-.293-3.041-.32-4.59-.229-1.543.096-3.107.303-4.645.58l-.598.107-.658.104c-.441.063-.887.117-1.334.152-.898.064-1.807.072-2.721.014-1.82-.133-3.652-.561-5.328-1.324-1.674-.76-3.178-1.838-4.389-3.121-1.215-1.287-2.16-2.758-2.797-4.316-.598-1.559-1.045-3.219-.823-4.854"/><g fill="#e3a93d"><path d="m21.62 47.622c.012.077.023.155.036.233.969.221 1.942.415 2.922.581.056.482.112.967.17 1.451-.96-.163-1.917-.354-2.866-.57.012.077.023.156.036.234 1.249.284 2.508.523 3.774.715-.066-.638-.134-1.274-.2-1.911-1.299-.196-2.591-.44-3.872-.733"/><path d="m26.513 48.5c.008.077.015.154.022.231.983.129 1.97.229 2.96.305.025.479.05.959.075 1.438-.97-.073-1.938-.172-2.903-.299.008.077.014.155.021.231 1.27.167 2.545.285 3.822.357-.025-.633-.05-1.266-.076-1.897-1.31-.072-2.619-.195-3.921-.366"/><path d="m31.463 48.914c.003.076.005.153.007.229.991.038 1.983.046 2.977.027-.007.479-.014.958-.021 1.438-.973.019-1.945.01-2.919-.026.003.076.005.152.007.229 1.278.048 2.56.048 3.838 0 .018-.632.033-1.265.051-1.896-1.314.048-2.627.048-3.94-.001"/><path d="m36.432 48.866c-.003.077-.007.152-.01.23.99-.057 1.979-.141 2.966-.251-.038.481-.077.962-.115 1.443-.967.107-1.937.19-2.907.245-.003.076-.007.153-.01.229 1.277-.072 2.553-.19 3.822-.357.058-.636.115-1.271.175-1.907-1.303.172-2.612.295-3.921.368"/><path d="m41.37 48.35c-.008.077-.017.154-.024.231.981-.149 1.958-.325 2.931-.528-.07.486-.14.973-.209 1.459-.953.199-1.911.372-2.874.517-.008.077-.016.154-.023.232 1.267-.191 2.525-.431 3.774-.715.1-.644.199-1.287.298-1.93-1.282.294-2.575.538-3.873.734"/><path d="m21.982 49.972c.013.078.024.156.036.234.939.214 1.883.401 2.833.563.056.482.112.967.169 1.45-.93-.157-1.855-.342-2.776-.552.013.077.024.154.036.232 1.211.275 2.431.508 3.656.692-.066-.638-.133-1.273-.2-1.91-1.258-.188-2.51-.426-3.754-.709"/><path d="m26.726 50.822c.008.076.015.154.021.231.954.125 1.91.224 2.869.295.025.479.051.959.076 1.438-.94-.069-1.878-.166-2.813-.288.007.077.014.152.021.229 1.229.161 2.465.276 3.701.347-.024-.633-.05-1.265-.075-1.897-1.27-.071-2.538-.19-3.8-.355"/><path d="m31.524 51.23c.002.076.003.153.006.229.961.035 1.923.045 2.884.026-.006.479-.013.957-.02 1.437-.942.018-1.885.01-2.827-.025.002.076.005.151.007.229 1.238.046 2.479.046 3.717 0 .017-.632.033-1.264.05-1.896-1.272.046-2.545.046-3.817 0"/><path d="m36.34 51.18c-.004.076-.006.154-.009.229.96-.054 1.918-.134 2.873-.242-.038.48-.076.962-.114 1.443-.936.105-1.875.185-2.816.237-.004.077-.006.152-.009.229 1.236-.07 2.472-.186 3.701-.347.058-.635.116-1.271.175-1.906-1.263.166-2.531.285-3.801.357"/><path d="m41.13 50.683c-.009.077-.017.155-.024.231.951-.144 1.898-.313 2.84-.511-.069.485-.139.973-.207 1.458-.925.192-1.853.36-2.785.501-.007.076-.016.153-.023.23 1.226-.185 2.445-.417 3.656-.692.099-.644.198-1.286.298-1.929-1.244.284-2.496.522-3.755.712"/><path d="m22.346 52.32c.013.078.023.154.036.23.909.209 1.823.391 2.741.545.058.485.113.97.17 1.454-.899-.152-1.795-.33-2.686-.534.013.078.024.155.036.232 1.171.269 2.351.491 3.537.67-.066-.636-.133-1.272-.199-1.908-1.22-.184-2.432-.413-3.635-.689"/><path d="m26.939 53.15c.007.076.013.152.021.228.923.122 1.849.217 2.777.285.026.481.051.961.076 1.442-.91-.067-1.816-.16-2.722-.279.008.076.015.153.021.229 1.189.156 2.384.268 3.581.335-.025-.633-.051-1.264-.075-1.896-1.229-.068-2.457-.183-3.679-.344"/><path d="m31.585 53.54c.002.076.004.15.006.227.93.034 1.861.043 2.792.025-.007.479-.013.959-.019 1.438-.913.017-1.824.009-2.736-.024.002.076.004.152.006.229 1.199.043 2.398.043 3.598 0 .016-.633.032-1.265.049-1.896-1.232.046-2.465.046-3.696.001"/><path d="m36.25 53.49c-.003.075-.006.151-.009.227.93-.053 1.857-.132 2.783-.235-.038.481-.077.964-.115 1.445-.906.103-1.814.18-2.726.23-.003.076-.006.152-.009.229 1.197-.067 2.392-.179 3.58-.335.06-.636.117-1.27.175-1.905-1.221.16-2.448.275-3.679.344"/><path d="m40.884 53.01c-.007.076-.015.151-.023.229.921-.14 1.838-.304 2.75-.496-.069.487-.139.975-.209 1.462-.893.187-1.791.349-2.692.484-.009.077-.017.152-.024.229 1.187-.179 2.366-.401 3.537-.67.1-.643.198-1.284.298-1.928-1.205.275-2.417.505-3.637.69"/><path d="m22.709 54.672c.012.078.024.154.036.232.879.201 1.763.376 2.651.527.056.483.113.968.17 1.451-.87-.147-1.735-.32-2.596-.517.012.079.024.157.036.235 1.131.259 2.271.475 3.418.647-.066-.637-.134-1.274-.2-1.911-1.178-.176-2.352-.398-3.515-.664"/><path d="m27.15 55.47c.007.078.015.154.021.23.893.117 1.789.209 2.687.275.025.479.05.959.074 1.439-.878-.065-1.755-.155-2.629-.271.007.079.015.156.021.233 1.148.15 2.304.259 3.46.324-.025-.633-.051-1.266-.075-1.899-1.189-.065-2.376-.175-3.559-.331"/><path d="m31.646 55.845c.002.076.004.152.006.228.899.035 1.8.042 2.7.025-.007.479-.012.957-.019 1.437-.882.018-1.764.009-2.645-.023.002.077.004.154.006.231 1.158.043 2.318.043 3.477 0 .016-.632.033-1.265.049-1.897-1.191.043-2.384.043-3.574-.001"/><path d="m36.15 55.801c-.003.076-.006.153-.009.229.898-.05 1.796-.125 2.69-.227-.038.48-.076.962-.113 1.442-.876.1-1.755.173-2.635.224-.003.076-.006.153-.009.231 1.156-.065 2.312-.174 3.46-.324.058-.636.116-1.271.175-1.908-1.182.156-2.368.266-3.559.333"/><path d="m40.641 55.34c-.008.076-.017.153-.024.23.892-.135 1.777-.294 2.659-.479-.069.485-.138.973-.207 1.458-.863.182-1.731.337-2.604.469-.009.078-.017.155-.024.233 1.146-.173 2.287-.389 3.418-.647.1-.644.199-1.286.298-1.93-1.164.266-2.338.488-3.516.666"/><path d="m23.07 57.02c.013.077.025.156.036.234.85.194 1.704.364 2.563.51.056.482.112.966.17 1.45-.84-.143-1.676-.309-2.507-.498.013.078.025.155.036.232 1.093.25 2.193.458 3.3.625-.066-.636-.134-1.273-.2-1.91-1.14-.172-2.274-.387-3.398-.643"/><path d="m27.364 57.79c.007.077.014.154.021.231.862.113 1.729.202 2.596.267.025.479.05.96.075 1.439-.849-.063-1.694-.15-2.538-.262.007.078.014.154.021.231 1.108.145 2.223.25 3.34.313-.025-.633-.052-1.266-.076-1.898-1.15-.063-2.296-.171-3.439-.321"/><path d="m31.706 58.15c.002.076.004.153.006.229.869.032 1.739.041 2.608.023-.007.479-.013.958-.019 1.437-.852.017-1.702.009-2.552-.022.002.077.004.152.005.229 1.118.041 2.237.041 3.355 0 .016-.632.033-1.264.049-1.896-1.149.042-2.302.042-3.452 0"/><path d="m36.06 58.11c-.003.077-.006.154-.009.231.868-.05 1.735-.123 2.6-.22-.038.48-.077.962-.115 1.442-.845.096-1.693.168-2.542.215-.003.077-.006.152-.01.229 1.116-.063 2.231-.168 3.34-.313.059-.635.117-1.271.175-1.907-1.144.152-2.29.26-3.439.323"/><path d="m40.4 57.664c-.008.077-.016.154-.023.231.859-.13 1.717-.283 2.568-.462-.069.485-.138.973-.208 1.458-.833.175-1.672.324-2.513.451-.008.079-.017.155-.024.231 1.106-.167 2.208-.375 3.3-.625.099-.642.198-1.285.298-1.929-1.124.258-2.258.473-3.398.645"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.3 45.3l2.3 12.7c.1 2.8 3.9 4 10.9 4 7 0 10.8-1.2 10.9-4l2.3-12.8-26.4.1" fill="#ffc861"/><path d="m20.4 45.6c0 0 3.2 2.3 13.2 2.3 10 0 13.1-2.3 13.1-2.3h-26.3" fill="#b17f4a"/><path d="m16.5 35l1 8.1c.1 2.8 6.8 4 16 4 9.2 0 15.9-1.2 16-4l1-8.1h-34" fill="#ffc861"/><path d="m17.1 39.9c0 0 3.7 3.6 16.4 3.6 12.7 0 16.5-4.3 16.5-4.3l-32.9.7" fill="#b17f4a"/><path d="M20.8,12c-8.1,0-16.2,13.1-6.3,23.3c0,6.7,9.2,6.7,19.1,6.7c13.6,0,18-3.9,18-3.9L20.8,12z" fill="#ffe0b5"/><path d="m50.5 28.5c.9-2 1.9-6.5-.2-9.7-2.8-4.1-6.4-5-9.6-7.2-1.8-1.3-4.8-4.6-.6-7.6 0 0-8.9-5.8-15.9 2.1-2 2.3-3.1 4.7-3.6 6.8-12.7 3.9-10.9 27.2 7.8 22.6-15.3-.5-13.3-15.5-8-21.7-.6 2.8-.2 4.8-.2 4.8-2.3 5.7-.1 12.7 5.1 15.5 1 .6 2.1 1 3.2 1.4 0 0-7.1 3.5-12.7.5 3.6 5.3 9.9 2.1 13.2 2.2 3.6.1 2.5 3.3 10.8 1.3 6.1-1.5 8-2.6 12-1.4-.1 0 5.8-5.5-1.3-9.6" fill="#8f6453"/><g fill="#ffe0b5"><path d="m40.1 4c-19.9-5-22.7 18.6-10 23.5 2.2.4 4.3.3 6.4 0-13-2.7-13.6-22-1.4-23-10.7 6.3-4.4 22.2 7.5 22.2-9.9-5.9-11.5-16.9-5.3-21.1-6.3 14 9.5 12 13.1 22.9 2.3-14.4-17-10.1-10.3-24.5"/><path d="m20.1 18.8c1.4 5.8 7 10.4 13.6 10.4 7.1 0 12.9-2.6 18.4 4.8-7.4-3.8-11.6-1.3-18.6-1.3-8.3 0-14.9-6.7-13.4-13.9"/></g><g fill="#e3a93d"><path d="m21.7 47.6l3 .8.1 1.5-2.8-.3 3.8.7-.2-1.9z"/><path d="m26.6 48.5l3 .5v1.5l-2.8-.1 3.8.4-.1-1.9z"/><path d="m31.5 48.9l3 .3v1.4l-2.9.2h3.8l.1-1.9z"/><path d="m36.5 48.9l3-.1-.1 1.5-3 .5 3.9-.4.1-1.9z"/><path d="m41.5 48.4l2.9-.3-.3 1.4-2.8.8 3.7-.7.3-2z"/><path d="m22.1 50l2.8.8.2 1.4-2.7-.3 3.6.7-.2-1.9z"/><path d="m26.8 50.8l2.9.5.1 1.5-2.8-.1 3.7.4-.1-1.9z"/><path d="m31.6 51.2l2.9.3v1.4l-2.8.2h3.7v-1.9z"/><path d="m36.4 51.2h2.9l-.1 1.4-2.9.5 3.7-.4.2-1.9z"/><path d="m41.2 50.7l2.8-.3-.2 1.5-2.8.7 3.7-.7.3-1.9z"/><path d="m22.4 52.3l2.8.8.2 1.5-2.7-.4 3.6.7-.2-1.9z"/><path d="m27 53.1l2.8.6.1 1.4h-2.7l3.6.3-.1-1.9z"/><path d="m31.7 53.5l2.8.3-.1 1.4-2.7.2h3.6l.1-1.9z"/><path d="m36.3 53.5h2.8l-.1 1.4-2.8.5 3.6-.3.2-2z"/><path d="m41 53l2.7-.3-.2 1.5-2.7.7 3.5-.7.3-1.9z"/><path d="m22.8 54.7l2.7.7.1 1.5-2.5-.3 3.4.6-.2-1.9z"/><path d="m27.2 55.5l2.7.5.1 1.4h-2.6l3.5.3-.1-1.9z"/><path d="m31.7 55.8l2.7.3v1.4l-2.6.2h3.4l.1-1.9z"/><path d="m36.2 55.8h2.7l-.1 1.4-2.6.5 3.4-.3.2-1.9z"/><path d="m40.7 55.3l2.7-.2-.3 1.4-2.6.7 3.4-.6.3-1.9z"/><path d="m23.1 57l2.6.8.2 1.4-2.5-.3 3.3.7-.2-1.9z"/><path d="m27.4 57.8l2.7.5v1.4h-2.5l3.4.3-.1-1.9z"/><path d="m31.8 58.2l2.6.2v1.4l-2.6.3h3.4v-1.9z"/><path d="m36.1 58.1h2.6l-.1 1.5-2.5.4 3.3-.3.2-1.9z"/><path d="m40.5 57.7l2.5-.3-.2 1.5-2.5.7 3.3-.7.3-1.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f367.svg b/build/js/jsxc/lib/emojione/assets/svg/1f367.svg
index c7b7e3e..296c4f7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f367.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f367.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f0154f" d="m18.711 13.51c0-1.828 1.658-1.828 1.658-3.655 0-1.829-.564-1.829-.564-3.657 0-.241-.008-.449-.018-.635-.248.163-.491.331-.715.51-.442.352-.526 1.086-.933 1.473-.408.387-.638.899-1.01 1.318-.37.419-1.13.544-1.462.992-.33.447-.307 1.107-.596 1.581-.288.472-1.029.726-1.274 1.223-.243.494-.204 1.116-.402 1.633-.196.511-.672.958-.822 1.488-.147.525-.213 1.097-.313 1.639-.098.536-.208 1.098-.258 1.647-.049.539.529 1.11.529 1.663 0 .552-.183 1.09-.134 1.63.05.55-.226 1.143-.127 1.678.1.541.505 1.026.653 1.551.149.531.094 1.13.291 1.642.198.517.72.905.963 1.399.244.498 4.425 1.33 4.425-.497s1.501-1.827 1.501-3.655.207-1.828.207-3.656c0-1.826-1.279-1.826-1.279-3.654s-.322-1.83-.322-3.658"/><path fill="#f27a52" d="m27.783 9.854c0-1.829-1.588-1.829-1.588-3.657 0-1.83 1.718-1.83 1.718-3.66 0-.127-.015-.246-.036-.361-.354.045-.704.09-1.039.176-.561.143-.977.709-1.516.896-.544.188-1.13.243-1.65.474-.523.232-.91.684-1.408.955-.499.275-1.295.108-1.766.423-.001 0-.002 0-.003 0-.23.153-.472.307-.708.463.01.186.018.394.018.635 0 1.828.564 1.828.564 3.657 0 1.827-1.658 1.827-1.658 3.655s.322 1.828.322 3.656 1.279 1.828 1.279 3.654c0 1.828-.207 1.828-.207 3.656s-1.501 1.828-1.501 3.655 7.679 1.827 7.679 0-.408-1.827-.408-3.655 1.353-1.828 1.353-3.656c0-1.826-.433-1.826-.433-3.654s1.102-1.828 1.102-3.656-.114-1.828-.114-3.656"/><path fill="#fad85c" d="m34.598 28.13c0-1.827.311-1.827.311-3.655s1.228-1.828 1.228-3.656c0-1.826-1.541-1.826-1.541-3.654s.817-1.828.817-3.656-.818-1.828-.818-3.655c0-1.829.543-1.829.543-3.657 0-1.83-.81-1.83-.81-3.66 0-.134-.005-.258-.013-.377-.189-.018-.381-.033-.574-.049-.571-.049-1.136-.113-1.718-.113s-1.139.143-1.709.188c-.479.04-.977-.113-1.455-.118-.1-.002-.201-.006-.3.011-.226.037-.454.065-.683.095.021.115.036.234.036.361 0 1.83-1.718 1.83-1.718 3.66 0 1.828 1.588 1.828 1.588 3.657 0 1.827.113 1.827.113 3.655s-1.102 1.828-1.102 3.656.433 1.828.433 3.654c0 1.828-1.353 1.828-1.353 3.656s.408 1.828.408 3.655 8.317 1.829 8.317.002"/><path fill="#8cc63e" d="m42.672 28.13c0-1.827 1.031-1.827 1.031-3.655s-.473-1.828-.473-3.656c0-1.826.551-1.826.551-3.654s-1.4-1.828-1.4-3.656 1.293-1.828 1.293-3.655c0-1.829-.619-1.829-.619-3.657 0-.449-.015-.789-.037-1.072-.377-.201-.78-.363-1.158-.571-.498-.272-.906-.706-1.43-.938-.521-.23-1.034-.508-1.579-.695-.39-.135-.757-.377-1.144-.556-.148-.069-.298-.13-.453-.169-.553-.141-1.233.188-1.805.094-.375-.063-.753-.098-1.135-.129.008.119.013.243.013.377 0 1.83.81 1.83.81 3.66 0 1.828-.543 1.828-.543 3.657 0 1.827.818 1.827.818 3.655s-.817 1.828-.817 3.656 1.541 1.828 1.541 3.654c0 1.828-1.228 1.828-1.228 3.656s-.311 1.828-.311 3.655 8.08 1.826 8.08-.001"/><path fill="#42ade2" d="m51.635 19.1c-.05-.55.264-1.146.165-1.682-.101-.542-.419-1.051-.567-1.576-.149-.531-.2-1.103-.396-1.614-.197-.516-.73-.901-.975-1.396-.244-.497-.176-1.153-.463-1.626-.289-.475-.626-.943-.957-1.391-.33-.448-.578-.99-.949-1.408-.369-.42-1.079-.564-1.486-.952-.373-.355-.717-.744-1.11-1.079-.034-.029-.065-.064-.103-.095-.44-.352-.945-.628-1.418-.943-.115-.077-.234-.146-.357-.212.022.283.037.623.037 1.072 0 1.828.619 1.828.619 3.657 0 1.827-1.293 1.827-1.293 3.655s1.4 1.828 1.4 3.656-.551 1.828-.551 3.654c0 1.828.473 1.828.473 3.656s-1.031 1.828-1.031 3.655 6.961 1 7.206.503c.243-.494.847-.857 1.045-1.373.196-.512.141-1.117.29-1.649.148-.525.131-1.088.232-1.63.098-.535.28-1.063.33-1.612.048-.54.224-1.089.224-1.641 0-.552-.316-1.089-.365-1.629"/><path fill="#e0e1e5" d="M13.872 30.553 32 62 50.13 30.553z"/><path fill="#c1c4cb" d="m52 29.668c0 .979-.834 1.771-1.865 1.771 0 0-9.125-.531-18.14-.531s-18.14.531-18.14.531c-1.03 0-1.865-.792-1.865-1.771 0-.979.834-1.771 1.865-1.771 0 0 9.125-.53 18.14-.53s18.14.53 18.14.53c1.031-.001 1.865.792 1.865 1.771"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.7 13.5c0-1.8 1.7-1.8 1.7-3.7 0-1.8-.6-1.8-.6-3.7 0-.2 0-.4 0-.6-.2.2-.5.3-.7.5-.4.4-.5 1.1-.9 1.5-.4.4-.6.9-1 1.3-.4.4-1.1.5-1.5 1-.3.4-.3 1.1-.6 1.6-.3.5-1 .7-1.3 1.2-.2.5-.2 1.1-.4 1.6-.2.5-.7 1-.8 1.5-.1.5-.2 1.1-.3 1.6-.1.5-.2 1.1-.3 1.6 0 .5.5 1.1.5 1.7 0 .6-.2 1.1-.1 1.6.1.5-.2 1.1-.1 1.7.1.5.5 1 .7 1.6.1.5.1 1.1.3 1.6.2.5.7.9 1 1.4.2.5 4.4 1.3 4.4-.5s1.5-1.8 1.5-3.7.2-1.8.2-3.7c0-1.8-1.3-1.8-1.3-3.7s-.4-1.6-.4-3.4" fill="#f0154f"/><path d="m27.8 9.9c0-1.8-1.6-1.8-1.6-3.7 0-1.8 1.7-1.8 1.7-3.7 0-.1 0-.2 0-.4-.4 0-.7.1-1 .2-.6.1-1 .7-1.5.9-.5.2-1.1.2-1.6.5-.5.2-.9.7-1.4 1-.6.3-1.4.1-1.9.4-.2.2-.5.3-.7.5 0 .2 0 .4 0 .6 0 1.8.6 1.8.6 3.7 0 1.8-1.7 1.8-1.7 3.7s.3 1.8.3 3.7 1.3 1.8 1.3 3.7c0 1.8-.2 1.8-.2 3.7s-1.5 1.8-1.5 3.7 7.7 1.8 7.7 0-.4-1.8-.4-3.7 1.4-1.8 1.4-3.7c0-1.8-.4-1.8-.4-3.7s1.1-1.8 1.1-3.7-.2-1.9-.2-3.7" fill="#f27a52"/><path d="m34.6 28.1c0-1.8.3-1.8.3-3.7s1.2-1.8 1.2-3.7c0-1.8-1.5-1.8-1.5-3.7s.8-1.8.8-3.7-.8-1.8-.8-3.7c0-1.8.5-1.8.5-3.7 0-1.8-.8-1.8-.8-3.7 0-.1 0-.3 0-.4-.2 0-.4 0-.6 0-.5.3-1.1.2-1.7.2s-1.1.1-1.7.2c-.5 0-1-.1-1.5-.1-.1 0-.2 0-.3 0-.2 0-.5.1-.7.1 0 .1 0 .2 0 .4 0 1.8-1.7 1.8-1.7 3.7 0 1.8 1.6 1.8 1.6 3.7 0 1.8.1 1.8.1 3.7s-1.1 1.8-1.1 3.7.4 1.8.4 3.7c0 1.8-1.4 1.8-1.4 3.7s.4 1.8.4 3.7 8.5 1.5 8.5-.4" fill="#fad85c"/><path d="m42.7 28.1c0-1.8 1-1.8 1-3.7s-.5-1.8-.5-3.7c0-1.8.6-1.8.6-3.7s-1.4-1.8-1.4-3.7 1.3-1.8 1.3-3.7c0-1.8-.6-1.8-.6-3.7 0-.4 0-.8 0-1.1-.4-.2-.8-.4-1.2-.6-.5-.3-.9-.7-1.4-.9-.5-.2-1-.5-1.6-.7-.4-.1-.8-.4-1.1-.6-.1-.1-.3-.1-.5-.2-.6-.1-1.2.2-1.8.1-.4-.1-.8-.1-1.1-.1 0 .1 0 .2 0 .4 0 1.8.8 1.8.8 3.7 0 1.8-.5 1.8-.5 3.7 0 1.8.8 1.8.8 3.7s-.8 1.8-.8 3.7 1.5 1.8 1.5 3.7c0 1.8-1.2 1.8-1.2 3.7s-.3 1.8-.3 3.7 8 1.9 8 0" fill="#8cc63e"/><path d="m51.6 19.1c0-.5.3-1.1.2-1.7-.1-.5-.4-1.1-.6-1.6-.1-.5-.2-1.1-.4-1.6-.2-.5-.7-.9-1-1.4-.2-.5-.2-1.2-.5-1.6-.3-.5-.6-.9-1-1.4-.3-.4-.6-1-.9-1.4-.4-.4-1.1-.6-1.5-1-.4-.4-.7-.7-1.1-1.1 0 0-.1-.1-.1-.1-.4-.4-.9-.6-1.4-.9-.1-.1-.2-.1-.4-.2 0 .3 0 .6 0 1.1 0 1.8.6 1.8.6 3.7 0 1.8-1.3 1.8-1.3 3.7s1.4 1.8 1.4 3.7-.6 1.8-.6 3.7c0 1.8.5 1.8.5 3.7s-1 1.8-1 3.7 7 1 7.2.5c.2-.5.8-.9 1-1.4.2-.5.1-1.1.3-1.6.1-.5.1-1.1.2-1.6.1-.5.3-1.1.3-1.6 0-.5.2-1.1.2-1.6s0-1.5-.1-2" fill="#42ade2"/><path fill="#e0e1e5" d="M13.9 30.6 32 62 50.1 30.6z"/><path d="m52 29.7c0 1-.8 1.8-1.9 1.8 0 0-9.1-.5-18.1-.5s-18.1.5-18.1.5c-1 0-1.9-.8-1.9-1.8 0-1 .8-1.8 1.9-1.8 0 0 9.1-.5 18.1-.5s18.1.5 18.1.5c1.1 0 1.9.8 1.9 1.8" fill="#c1c4cb"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f368.svg b/build/js/jsxc/lib/emojione/assets/svg/1f368.svg
index e3fd961..c1524bf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f368.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f368.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#c1c9cb" cx="31.999" cy="57.775" rx="14.445" ry="4.225"/><path fill="#acafb5" d="m37.16 55.656c3.515 3.345-13.848 3.345-10.333 0 5.399-5.14 5.167-31.409 5.167-31.409s-.102 26.396 5.166 31.409"/><g fill="#839391"><path fill-rule="evenodd" d="m23.18 18.11c0 0-10.09-11.454-11.01-12.619-.956-1.206-3.106-3.288-5.753-3.288-5.955 0-5.834 3.974 0 4.243 3.793.177 13.721 13.991 13.721 13.991l3.043-2.327"/><path d="m59.56 27.15c0 0 0 .199.002.541-.001-.342-.002-.541-.002-.541"/></g><path fill="#dfe9eb" d="m61.999 25.835c0 15.595-13.432 23.865-30 23.865-16.57 0-30-8.27-30-23.865 0-10.588 13.432-14.476 30-14.476s30 3.889 30 14.476"/><ellipse fill="#ff78b5" cx="31.999" cy="16.25" rx="14.979" ry="14.249"/><ellipse fill="#bedd4b" cx="44.37" cy="26.388" rx="14.979" ry="14.25"/><ellipse fill="#9b5c54" cx="19.629" cy="26.388" rx="14.979" ry="14.25"/><path fill="#dfe9eb" d="m58.999 18.388v5.219c0 7.188-12.09 10.362-27 10.362-14.91 0-27-3.173-27-10.362v-5.219c-1.92 1.989-3 4.448-3 7.447 0 15.595 13.43 23.865 30 23.865 16.568 0 30-8.27 30-23.865 0-2.999-1.078-5.458-3-7.447"/><g fill="#fff"><path d="m60.827 27.909c.102 1.074-.432 2.149-1.131 2.975-.703.843-1.568 1.525-2.465 2.132-1.817 1.19-3.805 2.063-5.832 2.769-4.064 1.412-8.313 2.143-12.566 2.517-4.262.328-8.549.265-12.779-.256-4.229-.509-8.412-1.44-12.379-2.933 4.179.687 8.34 1.166 12.512 1.378 4.168.195 8.341.172 12.484-.182 4.143-.325 8.267-.95 12.269-2.01 1.989-.554 3.968-1.194 5.799-2.125.92-.455 1.794-1 2.561-1.672.75-.67 1.408-1.526 1.527-2.593"/><g fill-rule="evenodd"><path transform="matrix(.7073-.7069.7069.7073-7.662 25.01)" opacity=".3" d="m25.316 20.698h2.121v2.122h-2.121z"/><path transform="matrix(.7075-.7068.7068.7075-5.387 22.444)" opacity=".3" d="m23.711 17.02h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-5.548 26.554)" opacity=".3" d="m28.595 19.272h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-9.941 27.19)" opacity=".3" d="m27.17 24.897h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-10.557 22.01)" opacity=".3" d="m20.607 23.05h1.414v1.415h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078-4.586 25.372)" opacity=".3" d="m28.02 17.875h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-4.685 19.381)" opacity=".3" d="m20.732 15h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-5.803 19.43)" opacity=".3" d="m20.232 16.375h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-7.869 27.496)" opacity=".3" d="m28.949 22.905h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-11.324 23.14)" opacity=".3" d="m21.96 24.905h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-11.862 27.14)" opacity=".3" d="m26.523 27.555h.706v.708h-.706z"/><path transform="matrix(.7073-.7069.7069.7073-1.016 42.16)" opacity=".3" d="m49.34 21.244h2.121v2.122h-2.121z"/><path transform="matrix(.7075-.7068.7068.7075 1.256 39.584)" opacity=".3" d="m47.736 17.567h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075 1.476 34.784)" opacity=".3" d="m42.05 14.901h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-6.628 40.806)" opacity=".3" d="m45.27 27.701h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075 1.094 43.693)" opacity=".3" d="m52.618 19.817h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-1.61 39.13)" opacity=".3" d="m45.753 20.802h1.414v1.415h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078 2.049 42.503)" opacity=".3" d="m52.05 18.421h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078 3.482 38.635)" opacity=".3" d="m48.09 14.755h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-1.235 44.626)" opacity=".3" d="m52.972 23.451h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-4.769 41.25)" opacity=".3" d="m47.12 26.04h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-.351 35.929)" opacity=".3" d="m42.902 18.03h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078-5.966 42.923)" opacity=".3" d="m48.548 28.318h.706v.708h-.706z"/><path transform="matrix(.7075-.7068.7068.7075 5.754 26.431)" opacity=".3" d="m34.1 5.558h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075 3.979 28.12)" opacity=".3" d="m35.25 8.546h1.414v1.415h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075.964 27.586)" opacity=".3" d="m33.1 11.921h1.414v1.415h-1.414z"/><path transform="matrix(.7078-.7064.7064.7078 6.81 27.714)" opacity=".3" d="m36.552 5.272h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078 6.06 30.1)" opacity=".3" d="m39.06 7.367h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078 4.07 26.28)" opacity=".3" d="m33.451 7.867h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078 1.989 26.315)" opacity=".3" d="m32.451 10.4h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078 4.843 22.24)" opacity=".3" d="m28.949 4.911h.706v.708h-.706z"/><path transform="matrix(.7078-.7064.7064.7078 6.426 24.07)" opacity=".3" d="m31.951 3.911h.706v.708h-.706z"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="57.8" rx="14.4" ry="4.2" fill="#c1c9cb"/><path d="m37.2 55.7c3.5 3.3-13.8 3.3-10.3 0 5.4-5.1 5.2-31.4 5.2-31.4s-.2 26.3 5.1 31.4" fill="#acafb5"/><g fill="#839391"><path d="m23.2 18.1c0 0-10.1-11.5-11-12.6-1-1.2-3.1-3.3-5.8-3.3-6 0-5.8 4 0 4.2 3.8.2 13.7 14 13.7 14l3.1-2.3"/><path d="m59.6 27.2c0 0 0 .2 0 .5 0-.3 0-.5 0-.5"/></g><path d="m62 25.8c0 15.6-13.4 23.9-30 23.9-16.6 0-30-8.3-30-23.9 0-10.6 13.4-14.5 30-14.5s30 3.9 30 14.5" fill="#dfe9eb"/><ellipse cx="32" cy="16.2" rx="15" ry="14.2" fill="#ff78b5"/><ellipse cx="44.4" cy="26.4" rx="15" ry="14.2" fill="#bedd4b"/><ellipse cx="19.6" cy="26.4" rx="15" ry="14.2" fill="#9b5c54"/><path d="m59 18.4v5.2c0 7.2-12.1 10.4-27 10.4-14.9 0-27-3.2-27-10.4v-5.2c-1.9 2-3 4.4-3 7.4 0 15.6 13.4 23.9 30 23.9 16.6 0 30-8.3 30-23.9 0-3-1.1-5.4-3-7.4" fill="#dfe9eb"/><g fill="#fff"><path d="m60.8 27.9c.1 1.1-.4 2.1-1.1 3-.7.8-1.6 1.5-2.5 2.1-1.8 1.2-3.8 2.1-5.8 2.8-4.1 1.4-8.3 2.1-12.6 2.5-4.3.3-8.5.3-12.8-.3-4.2-.5-8.4-1.4-12.4-2.9 4.2.7 8.3 1.2 12.5 1.4 4.2.2 8.3.2 12.5-.2 4.1-.3 8.3-1 12.3-2 2-.6 4-1.2 5.8-2.1.9-.5 1.8-1 2.6-1.7.7-.7 1.4-1.5 1.5-2.6"/><path transform="matrix(.7073-.7069.7069.7073-7.6604 25.0134)" opacity=".3" d="m25.3 20.7h2.1v2.1h-2.1z"/><path transform="matrix(.7075-.7068.7068.7075-5.3863 22.4458)" opacity=".3" d="m23.7 17h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-5.5475 26.5559)" opacity=".3" d="m28.6 19.3h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-9.9405 27.1938)" opacity=".3" d="m27.2 24.9h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-10.5563 22.0159)" opacity=".3" d="m20.6 23.1h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078-4.5862 25.3714)" opacity=".3" d="m28 17.9h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-4.6855 19.3809)" opacity=".3" d="m20.7 15h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-5.803 19.4295)" opacity=".3" d="m20.2 16.4h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-7.8689 27.4949)" opacity=".3" d="m28.9 22.9h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-11.3241 23.1425)" opacity=".3" d="m22 24.9h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-11.8624 27.1402)" opacity=".3" d="m26.5 27.6h.7v.7h-.7z"/><path transform="matrix(.7073-.7069.7069.7073-1.0143 42.156)" opacity=".3" d="m49.3 21.2h2.1v2.1h-2.1z"/><path transform="matrix(.7075-.7068.7068.7075 1.2577 39.5849)" opacity=".3" d="m47.7 17.6h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075 1.4776 34.7849)" opacity=".3" d="m42.1 14.9h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-6.6259 40.8079)" opacity=".3" d="m45.3 27.7h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075 1.0956 43.6941)" opacity=".3" d="m52.6 19.8h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-1.6089 39.1304)" opacity=".3" d="m45.8 20.8h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078 2.0477 42.5026)" opacity=".3" d="m52 18.4h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078 3.4806 38.6348)" opacity=".3" d="m48.1 14.8h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-1.2357 44.6249)" opacity=".3" d="m53 23.5h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-4.7698 41.2489)" opacity=".3" d="m47.1 26h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-.3512 35.9284)" opacity=".3" d="m42.9 18h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078-5.9665 42.9218)" opacity=".3" d="m48.5 28.3h.7v.7h-.7z"/><path transform="matrix(.7075-.7068.7068.7075 5.755 26.432)" opacity=".3" d="m34.1 5.6h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075 3.98 28.1204)" opacity=".3" d="m35.3 8.5h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075.9651 27.5868)" opacity=".3" d="m33.1 11.9h1.4v1.4h-1.4z"/><path transform="matrix(.7078-.7064.7064.7078 6.8089 27.7143)" opacity=".3" d="m36.6 5.3h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078 6.0615 30.0977)" opacity=".3" d="m39.1 7.4h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078 4.0696 26.2814)" opacity=".3" d="m33.5 7.9h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078 1.9884 26.3154)" opacity=".3" d="m32.5 10.4h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078 4.8423 22.2375)" opacity=".3" d="m28.9 4.9h.7v.7h-.7z"/><path transform="matrix(.7078-.7064.7064.7078 6.4259 24.066)" opacity=".3" d="m32 3.9h.7v.7h-.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f369.svg b/build/js/jsxc/lib/emojione/assets/svg/1f369.svg
index 5962513..6620235 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f369.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f369.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#ffd170" d="m2 33.32c0 13.08 13.431 23.68 30 23.68 16.567 0 30-10.602 30-23.68 0-13.08-13.433-23.681-30-23.681-16.569 0-30 10.601-30 23.681m18.925 2.188c0-3.8 4.958-6.881 11.07-6.881 6.114 0 11.07 3.081 11.07 6.881 0 3.799-4.959 6.881-11.07 6.881-6.117 0-11.07-3.082-11.07-6.881"/><path fill="#ff4085" d="m2 26.932c0 1.914.234 3.735.693 5.449.604 2.257.979 6.232 2.346 8.089.68.922 2.162-.34 3.361-.34 2.233 0 2.616 4.857 5.272 4.857 3.984 0 2.102 3.338 7.616 3.338 2.947 0 4.227-2.732 5.745-2.732 3.817 0 3.628 5.092 7.255 5.092 3.802 0 3.604-6.02 7.06-6.02 3.375 0 4.079 3.104 6.732 3.104 2.812 0 2.106-9.201 5.226-9.201 3.593 0 5.601-1.424 6.354-2.748 1.505-2.647 2.337-5.633 2.337-8.887 0-10.582-13.434-19.932-30-19.932s-30 9.35-30 19.932m18.925.314c0-1.234 1.326-2.109 2.241-3.11.671-.733 1.186-2.647 2.227-3.182 1.915-.981 3.614 2.473 6.29 2.473 1.382 0 4.253-2.443 5.474-2.155 2.046.482 1.155 1.779 2.415 2.864 1.313 1.131 3.502 1.609 3.502 3.11 0 3.801-2.438 6.881-11.07 6.881-8.639 0-11.08-3.081-11.08-6.881"/><g fill="#63b6e6"><path d="m40.511 38.859l-5.758 3.02c-.93.488-1.754-1.061-.824-1.549l5.758-3.02c.927-.49 1.751 1.059.824 1.547"/><path d="m51.34 19.77l-6.148-2.14c-.992-.345-.422-2 .57-1.657l6.15 2.14c.991.345.42 2-.572 1.657"/></g><g fill="#9729cc"><path d="m17.485 33.11l-6.171 2.076c-.996.336-1.56-1.324-.564-1.658l6.171-2.077c.996-.335 1.56 1.325.564 1.659"/><path d="m28.876 15.628l-6.05-2.41c-.976-.389-.333-2.02.644-1.63l6.05 2.412c.975.388.333 2.02-.644 1.628"/></g><g fill="#fff"><path d="m12.632 26.896l-5.848-2.863c-.942-.463-.177-2.039.766-1.576l5.848 2.863c.943.463.177 2.039-.766 1.576"/><path d="m57.04 24.751l-6.172 2.075c-.996.334-1.56-1.324-.564-1.659l6.172-2.075c.996-.334 1.56 1.325.564 1.659"/></g><g fill="#fff080"><path d="m25.425 40.4l-6.508.281c-1.05.047-1.127-1.703-.078-1.75l6.508-.281c1.049-.047 1.127 1.703.078 1.75"/><path d="m42.78 11.929l-6.26 1.8c-1.01.293-1.496-1.392-.487-1.683l6.26-1.802c1.01-.29 1.495 1.392.487 1.685"/></g><g fill="#84e060"><path d="m46.587 32.824l6.49.297c1.047.047.955 1.801-.093 1.752l-6.489-.297c-1.047-.047-.955-1.801.092-1.752"/><path d="m18.618 17.314l-6.297 1.652c-1.016.266-1.455-1.43-.438-1.697l6.297-1.652c1.015-.267 1.454 1.429.438 1.697"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 33.3c0 13.1 13.4 23.7 30 23.7 16.6 0 30-10.6 30-23.7 0-13.1-13.4-23.7-30-23.7-16.6 0-30 10.6-30 23.7m18.9 2.2c0-3.8 5-6.9 11.1-6.9 6.1 0 11.1 3.1 11.1 6.9 0 3.8-5 6.9-11.1 6.9-6.1 0-11.1-3.1-11.1-6.9" fill="#ffd170"/><path d="m2 26.9c0 1.9.2 3.7.7 5.4.6 2.3 1 6.2 2.3 8.1.7.9 2.2-.3 3.4-.3 2.2 0 2.6 4.9 5.3 4.9 4 0 2.1 3.3 7.6 3.3 2.9 0 4.2-2.7 5.7-2.7 3.8 0 3.6 5.1 7.3 5.1 3.8 0 3.6-6 7.1-6 3.4 0 4.1 3.1 6.7 3.1 2.8 0 2.1-9.2 5.2-9.2 3.6 0 5.6-1.4 6.4-2.7 1.5-2.6 2.3-5.6 2.3-8.9 0-10.6-13.4-20-30-20s-30 9.4-30 19.9m18.9.3c0-1.2 1.3-2.1 2.2-3.1.7-.7 1.2-2.6 2.2-3.2 1.9-1 3.6 2.5 6.3 2.5 1.4 0 4.3-2.4 5.5-2.2 2 .5 1.2 1.8 2.4 2.9 1.3 1.1 3.5 1.6 3.5 3.1 0 3.8-2.4 6.9-11.1 6.9-8.5 0-11-3.1-11-6.9" fill="#ff4085"/><g fill="#63b6e6"><path d="m40.5 38.9l-5.8 3c-.9.5-1.8-1.1-.8-1.5l5.8-3c.9-.6 1.7 1 .8 1.5"/><path d="m51.3 19.8l-6.1-2.1c-1-.3-.4-2 .6-1.7l6.2 2.1c.9.4.3 2-.7 1.7"/></g><g fill="#9729cc"><path d="m17.5 33.1l-6.2 2.1c-1 .3-1.6-1.3-.6-1.7l6.2-2.1c1-.3 1.6 1.4.6 1.7"/><path d="m28.9 15.6l-6-2.4c-1-.4-.3-2 .6-1.6l6 2.4c1 .4.4 2-.6 1.6"/></g><g fill="#fff"><path d="m12.6 26.9l-5.8-2.9c-.9-.5-.2-2 .8-1.6l5.8 2.9c.9.5.2 2.1-.8 1.6"/><path d="m57 24.8l-6.2 2.1c-1 .3-1.6-1.3-.6-1.7l6.2-2.1c1.1-.3 1.6 1.3.6 1.7"/></g><g fill="#fff080"><path d="m25.4 40.4l-6.5.3c-1 0-1.1-1.7-.1-1.8l6.5-.3c1.1 0 1.2 1.8.1 1.8"/><path d="m42.8 11.9l-6.3 1.8c-1 .3-1.5-1.4-.5-1.7l6.3-1.8c1-.2 1.5 1.4.5 1.7"/></g><g fill="#84e060"><path d="m46.6 32.8l6.5.3c1 0 1 1.8-.1 1.8l-6.5-.3c-1.1-.1-1-1.8.1-1.8"/><path d="m18.6 17.3l-6.3 1.7c-1 .3-1.5-1.4-.4-1.7l6.3-1.7c1-.2 1.4 1.4.4 1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f36a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f36a.svg
index 600b7fd..8daf311 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f36a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f36a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dda85f" d="m36.912 22.734l2.536-18.588c-2.424-.652-4.82-2.146-7.449-2.146-2.633 0-5.03 1.502-7.461 2.15-2.514.672-5.342.592-7.54 1.863-2.232 1.293-3.568 3.793-5.379 5.604-1.813 1.813-4.313 3.148-5.604 5.379-1.273 2.201-1.191 5.03-1.863 7.541-.648 2.428-2.152 4.83-2.152 7.462 0 2.633 1.504 5.03 2.152 7.463.672 2.512.59 5.34 1.863 7.539 1.291 2.232 3.791 3.568 5.604 5.379 1.811 1.811 3.146 4.313 5.379 5.604 2.198 1.274 5.03 1.192 7.54 1.864 2.428.65 4.828 2.152 7.461 2.152 2.635 0 5.04-1.502 7.465-2.152 2.512-.672 5.34-.59 7.538-1.864 2.232-1.291 3.568-3.793 5.379-5.604 1.813-1.811 4.313-3.146 5.604-5.379 1.273-2.199 1.191-5.03 1.863-7.539.648-2.43 2.152-4.83 2.152-7.463 0-2.632-2.104-8.08-2.104-8.08l-22.984-1.184"/><path fill="#f2cb7d" d="m59.42 22.404c-.963.257-2.384.24-3.884-.368-2.065-.838-3.416-2.46-3.786-4.515-.983.277-3.387-.01-5.02-1.037-2.388-1.496-2.862-5.666-2.862-5.666-2.705-.783-4.739-3.964-4.414-6.672-2.222-.599-5.04-.479-7.449-.479-2.413 0-4.614 1.377-6.839 1.971-2.305.616-4.896.543-6.913 1.708-2.046 1.186-3.27 3.478-4.93 5.137-1.661 1.661-3.953 2.886-5.137 4.931-1.167 2.02-1.092 4.608-1.708 6.913-.594 2.225-1.973 4.427-1.973 6.839 0 2.413 1.379 4.614 1.973 6.841.616 2.303.541 4.895 1.708 6.911 1.184 2.046 3.476 3.271 5.137 4.931 1.66 1.659 2.884 3.953 4.93 5.137 2.02 1.167 4.608 1.092 6.913 1.708 2.225.596 4.426 1.973 6.839 1.973 2.415 0 4.615-1.377 6.843-1.973 2.303-.616 4.895-.541 6.91-1.708 2.046-1.184 3.271-3.478 4.931-5.137 1.661-1.66 3.953-2.885 5.137-4.931 1.167-2.02 1.092-4.608 1.708-6.911.594-2.227 2.96-3.977 3.321-6.362.624-4.125-1.325-8.581-1.43-9.241"/><g fill="#dda85f"><path d="m50.11 10.828l-1.379 1.375-1.371-1.375 1.371-1.375 1.379 1.375"/><path d="m55.849 17.756l-.699.697-.7-.697.7-.696.699.696"/><path d="m50.805 13.219l-.695.697-.7-.697.7-.699.695.699"/><path d="m44.556 7.135l-.698.697-.698-.697.698-.699.698.699"/><path d="m57.24 20.336l-.69.694-.701-.694.701-.699.69.699"/><path d="m57.763 17.756l-.703.697-.69-.697.69-.696.703.696"/></g><path fill="#6d4934" d="m11.808 20.621c-.967 1.662.501 4.844 2.455 5.654 2.927 1.216 4.638 1.396 6.397-1.661.62-1.077 1.413-3.979 1.115-4.662-.436-1-2.106-2.972-3.198-2.977-3.124-.013-6.06 2.425-6.769 3.646"/><path fill="#a37f6a" d="m12.29 20.618c-.716 1.231 1.129 4.798 3.46 4.542 3.259-.358 3.02-7.243 1.557-7.243-2.315 0-4.491 1.797-5.02 2.701"/><path fill="#6d4934" d="m45.24 39.09c1.439-.381 2.376-2.927 1.752-4.44-.938-2.268-1.775-3.304-4.413-2.594-.929.251-2.952 1.405-3.162 1.942-.312.787-.474 2.78.121 3.381 1.703 1.718 4.646 1.99 5.702 1.711"/><path fill="#a37f6a" d="m43.763 36.705c1.066-.281 2.765-3.661.971-3.948-3.134-.501-5.528.953-5.196 2.681.337 1.76 3.441 1.475 4.225 1.267"/><path fill="#6d4934" d="m24.902 44.519c-.33-1.249-2.539-2.062-3.852-1.52-1.967.813-2.866 1.54-2.25 3.828.218.806 1.219 2.561 1.685 2.743.683.271 2.412.411 2.933-.105 1.49-1.478 1.727-4.03 1.484-4.946"/><path fill="#a37f6a" d="m23.16 43.591c-.244-.925-4.419.446-3.976 1.959.779 2.659.8 3.145 1.641 2.954 1.517-.342 2.516-4.233 2.335-4.913"/><path fill="#6d4934" d="m51.09 25.519c-1.249.33-2.062 2.539-1.52 3.852.813 1.967 2.699 2.3 4.794 1.191 1.771-.938 1.892-4.146 1.375-4.666-1.477-1.491-3.732-.62-4.649-.377"/><path fill="#a37f6a" d="m50.619 26.583c-.646.704-1.096 3.506.417 3.063 2.659-.779 4.583-3.542 3.375-3.917-1.484-.461-3.111.113-3.792.854"/><path transform="matrix(.7071-.7071.7071.7071-4.13 22.19)" fill="#6d4934" d="m23.308 14.665h2.834v2.834h-2.834z"/><g fill="#dda85f"><path transform="matrix(.7069-.7073.7073.7069-18.815 21.612)" d="m15.255 32.09h2.833v2.834h-2.833z"/><path transform="matrix(.7071-.7071.7071.7071-20.951 39.08)" d="m35.29 43.41h2.834v2.834h-2.834z"/><path transform="matrix(.7071-.7071.7071.7071-17.6 36.04)" d="m32.79 37.35h3.819v3.818h-3.819z"/><path transform="matrix(.7071-.7071.7071.7071 1.079 22.272)" d="m25.515 7.925h3.819v3.818h-3.819z"/></g><g fill="#6d4934"><path transform="matrix(.7071-.7071.7071.7071-20.11 44.09)" d="m41.742 44.903h2.834v2.834h-2.834z"/><path transform="matrix(.7071-.7071.7071.7071-9.967 46.46)" d="m49.679 33.843h2.834v2.834h-2.834z"/><path transform="matrix(.7071-.7071.7071.7071-4.857 37.507)" d="m42.14 23.909h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-22.76 21.579)" d="m13.961 37.557h1.414v1.414h-1.414z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m36.9 22.7l2.5-18.6c-2.4-.6-4.8-2.1-7.4-2.1-2.6 0-5 1.5-7.5 2.2-2.5.6-5.3.5-7.5 1.8-2.2 1.3-3.6 3.8-5.4 5.6-1.8 1.8-4.3 3.2-5.6 5.4-1.3 2.2-1.2 5-1.9 7.5-.6 2.5-2.1 4.9-2.1 7.5 0 2.6 1.5 5 2.2 7.5.6 2.5.5 5.3 1.8 7.5 1.3 2.2 3.8 3.6 5.6 5.4 1.8 1.8 3.1 4.3 5.4 5.6 2.2 1.3 5 1.2 7.5 1.9 2.5.6 4.9 2.1 7.5 2.1 2.6 0 5-1.5 7.5-2.2 2.5-.7 5.3-.6 7.5-1.9 2.2-1.3 3.6-3.8 5.4-5.6 1.8-1.8 4.3-3.1 5.6-5.4 1.3-2.2 1.2-5 1.9-7.5.6-2.4 2.1-4.8 2.1-7.4 0-2.6-2.1-8.1-2.1-8.1l-23-1.2" fill="#dda85f"/><path d="m59.4 22.4c-1 .3-2.4.2-3.9-.4-2.1-.8-3.4-2.5-3.8-4.5-1 .3-3.4 0-5-1-2.4-1.5-2.9-5.7-2.9-5.7-2.7-.8-4.7-4-4.4-6.7-2.2-.6-5-.5-7.4-.5-2.4 0-4.6 1.4-6.8 2-2.3.6-4.9.5-6.9 1.7-2 1.2-3.3 3.5-4.9 5.1-1.7 1.7-4 2.9-5.1 4.9-1.2 2-1.1 4.6-1.7 6.9-.6 2.2-2 4.4-2 6.8 0 2.4 1.4 4.6 2 6.8.6 2.3.5 4.9 1.7 6.9 1.2 2 3.5 3.3 5.1 4.9 1.7 1.7 2.9 4 4.9 5.1 2 1.2 4.6 1.1 6.9 1.7 2.2.6 4.4 2 6.8 2 2.4 0 4.6-1.4 6.8-2 2.3-.6 4.9-.5 6.9-1.7 2-1.2 3.3-3.5 4.9-5.1 1.7-1.7 4-2.9 5.1-4.9 1.2-2 1.1-4.6 1.7-6.9.6-2.2 3-4 3.3-6.4.8-3.9-1.2-8.3-1.3-9" fill="#f2cb7d"/><g fill="#dda85f"><path d="m50.1 10.8l-1.4 1.4-1.3-1.4 1.3-1.3z"/><path d="m55.8 17.8l-.6.7-.7-.7.7-.7z"/><path d="m50.8 13.2l-.7.7-.7-.7.7-.7z"/><path d="m44.6 7.1l-.7.7-.7-.7.7-.7z"/><path d="m57.2 20.3l-.7.7-.7-.7.7-.7z"/><path d="m57.8 17.8l-.7.7-.7-.7.7-.7z"/></g><path d="m11.8 20.6c-1 1.7.5 4.8 2.5 5.7 2.9 1.2 4.6 1.4 6.4-1.7.6-1.1 1.4-4 1.1-4.7-.4-1-2.1-3-3.2-3-3.1.1-6.1 2.5-6.8 3.7" fill="#6d4934"/><path d="m12.3 20.6c-.7 1.2 1.1 4.8 3.5 4.5 3.3-.4 3-7.2 1.6-7.2-2.4 0-4.6 1.8-5.1 2.7" fill="#a37f6a"/><path d="m45.2 39.1c1.4-.4 2.4-2.9 1.8-4.4-.9-2.3-1.8-3.3-4.4-2.6-.9.3-3 1.4-3.2 1.9-.3.8-.5 2.8.1 3.4 1.7 1.7 4.7 2 5.7 1.7" fill="#6d4934"/><path d="m43.8 36.7c1.1-.3 2.8-3.7 1-3.9-3.1-.5-5.5 1-5.2 2.7.3 1.7 3.4 1.4 4.2 1.2" fill="#a37f6a"/><path d="m24.9 44.5c-.3-1.2-2.5-2.1-3.9-1.5-2 .8-2.9 1.5-2.2 3.8.2.8 1.2 2.6 1.7 2.7.7.3 2.4.4 2.9-.1 1.5-1.4 1.7-4 1.5-4.9" fill="#6d4934"/><path d="m23.2 43.6c-.2-.9-4.4.4-4 2 .8 2.7.8 3.1 1.6 3 1.5-.4 2.5-4.3 2.4-5" fill="#a37f6a"/><path d="m51.1 25.5c-1.2.3-2.1 2.5-1.5 3.9.8 2 2.7 2.3 4.8 1.2 1.8-.9 1.9-4.1 1.4-4.7-1.5-1.5-3.8-.6-4.7-.4" fill="#6d4934"/><path d="m50.6 26.6c-.6.7-1.1 3.5.4 3.1 2.7-.8 4.6-3.5 3.4-3.9-1.5-.5-3.1 0-3.8.8" fill="#a37f6a"/><path transform="matrix(.7071-.7071.7071.7071-4.1299 22.1932)" fill="#6d4934" d="m23.3 14.7h2.8v2.8h-2.8z"/><g fill="#dda85f"><path transform="matrix(.7069-.7073.7073.7069-18.8143 21.6132)" d="m15.3 32.1h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-20.9511 39.0836)" d="m35.3 43.4h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-17.6007 36.0363)" d="m32.8 37.4h3.8v3.8h-3.8z"/><path transform="matrix(.7071-.7071.7071.7071 1.0787 22.2721)" d="m25.5 7.9h3.8v3.8h-3.8z"/></g><g fill="#6d4934"><path transform="matrix(.7071-.7071.7071.7071-20.1126 44.0843)" d="m41.7 44.9h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-9.967 46.4574)" d="m49.7 33.8h2.8v2.8h-2.8z"/><path transform="matrix(.7071-.7071.7071.7071-4.8567 37.5067)" d="m42.1 23.9h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-22.7604 21.5789)" d="m14 37.6h1.4v1.4h-1.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f36b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f36b.svg
index 50963be..493e7b3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f36b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f36b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b37b47" d="m14.609 3.685h8.559v8.423h-8.559z"/><path fill="#a16745" d="m14.609 3.685l-1.713-1.685v11.791l1.713-1.681z"/><path fill="#633f2c" d="m23.17 12.11l1.709 1.681v-11.791l-1.709 1.685z"/><path fill="#8c5b3e" d="M23.17 3.685 24.879 2 12.896 2 14.609 3.685z"/><path fill="#523420" d="m23.17 12.11h-8.561l-1.713 1.681h11.983z"/><path fill="#b37b47" d="m26.59 3.685h8.559v8.423h-8.559z"/><path fill="#a16745" d="m26.59 12.11v-8.425l-1.711-1.685v11.791z"/><path fill="#633f2c" d="m36.861 13.791v-7.309c-.549-.429-1.01-.985-1.316-1.667-.176-.391-.27-.794-.328-1.197l-.068.066v8.423l1.712 1.684"/><path fill="#8c5b3e" d="m35.15 3.685l.068-.066c-.079-.548-.062-1.094.055-1.619h-10.392l1.711 1.685h8.558"/><path fill="#523420" d="m35.15 12.11h-8.56l-1.711 1.681h11.982z"/><path fill="#b37b47" d="m39.34 10.818c-.502-1.114-.506-2.322-.119-3.386-.219-.021-.436-.063-.648-.115v4.79h1.65c-.358-.365-.66-.794-.883-1.289"/><path fill="#a16745" d="m38.572 7.317c-.623-.152-1.205-.438-1.711-.835v7.309l1.711-1.684v-4.79"/><path fill="#523420" d="m36.861 13.791h7.324c-.025-.128-.057-.256-.072-.384-1.436.216-2.887-.274-3.891-1.3h-1.65l-1.711 1.684"/><path fill="#b37b47" d="m14.609 15.477h8.559v8.422h-8.559z"/><path fill="#a16745" d="m14.609 15.477l-1.713-1.686v11.793l1.713-1.686z"/><path fill="#633f2c" d="m23.17 15.477v8.421l1.709 1.686v-11.793z"/><path fill="#8c5b3e" d="m23.17 15.477l1.709-1.686h-11.983l1.713 1.686z"/><path fill="#523420" d="m23.17 23.898h-8.561l-1.713 1.686h11.983z"/><path fill="#b37b47" d="m26.59 15.477h8.559v8.422h-8.559z"/><path fill="#a16745" d="m26.59 15.477l-1.711-1.686v11.793l1.711-1.686z"/><path fill="#633f2c" d="m35.15 15.477v8.421l1.711 1.686v-11.793z"/><path fill="#8c5b3e" d="m35.15 15.477l1.711-1.686h-11.982l1.711 1.686z"/><path fill="#523420" d="m26.59 23.898l-1.711 1.686h11.982l-1.711-1.686z"/><path fill="#b37b47" d="m44.922 15.477h-6.35v8.422h8.557v-6.821c-.867-.292-1.647-.834-2.207-1.601"/><path fill="#a16745" d="m36.861 13.791v11.793l1.711-1.686v-8.421z"/><path fill="#633f2c" d="m47.13 17.08v6.821l1.713 1.686v-8.283c-.586.038-1.166-.04-1.713-.224"/><path fill="#8c5b3e" d="m38.572 15.477h6.35c-.182-.249-.342-.518-.473-.81-.129-.287-.205-.581-.264-.876h-7.324l1.711 1.686"/><path fill="#523420" d="m38.572 23.898l-1.711 1.686h11.981l-1.712-1.686z"/><path fill="#b37b47" d="m14.609 27.27h8.559v8.424h-8.559z"/><path fill="#a16745" d="m14.609 27.27l-1.713-1.686v11.796l1.713-1.689z"/><path fill="#633f2c" d="m23.17 27.27v8.421l1.709 1.689v-11.796z"/><g fill="#8c5b3e"><path d="m23.17 27.27l1.709-1.686h-11.983l1.713 1.686z"/><path d="m23.17 35.691h-8.561l-1.713 1.689h11.983z"/></g><path fill="#b37b47" d="m26.59 27.27h8.559v8.424h-8.559z"/><path fill="#a16745" d="m26.59 27.27l-1.711-1.686v11.796l1.711-1.689z"/><path fill="#633f2c" d="m35.15 35.691l1.711 1.689v-11.796l-1.711 1.686z"/><g fill="#8c5b3e"><path d="m26.59 27.27h8.56l1.711-1.686h-11.982z"/><path d="m26.59 35.691l-1.711 1.689h11.982l-1.711-1.689z"/></g><path fill="#b37b47" d="m38.572 27.27h8.557v8.424h-8.557z"/><path fill="#a16745" d="m38.572 35.691v-8.421l-1.711-1.686v11.796z"/><path fill="#633f2c" d="m47.13 35.691l1.712 1.689v-11.796l-1.712 1.686z"/><g fill="#8c5b3e"><path d="m38.572 27.27h8.558l1.712-1.686h-11.981z"/><path d="m38.572 35.691l-1.711 1.689h11.981l-1.712-1.689z"/></g><path fill-rule="evenodd" fill="#ff4a4a" d="m12.896 36.768v24.19l.571 1.041h34.803l.572-1.041v-24.19z"/><path fill="#a33737" d="m41.37 41.987c-.339-3.567-28.469-5.22-28.469-5.22s11.926.94 16.223 7.803c6.886 11 15.805 11.667 15.805 11.667-2.042-5.354-2.899-7.3-3.559-14.25"/><path fill="#fff" d="m51.06 37.644c-.037-.39-.099-.747-.168-1.094l.007-.003-.009-.008c-.565-2.817-2.041-4.205-2.041-4.205s-1.089-.19-2.938-.373l-.025-.023-.031.018c-2.135-.209-5.277-.398-8.972-.279l-.012-.004.002.005c-1.636.053-3.376.168-5.188.371l-.09-.021-.045.037c-.371.042-.74.08-1.115.13-1.137.15-2.822.518-4.703.981l.002-.025-.023.016-.039.025c-1.545.382-3.217.828-4.83 1.273-1.369.378-2.689.755-3.852 1.092-2.385.69-4.088 1.21-4.088 1.21s2.59.081 5.934.704c2.01.375 4.279.945 6.432 1.812.002 0 .004.001.004.001 1.02.411 2.01.888 2.93 1.441l-.004.012.082.034c1.176.716 2.234 1.557 3.086 2.549.67.781 1.33 1.497 1.982 2.166v.006l.004-.002c1.215 1.248 2.395 2.313 3.52 3.213v.058l.012-.002.048-.008c1.993 1.589 3.816 2.675 5.374 3.419 3.293 1.572 5.395 1.609 5.395 1.609-.401-1.054-.482-2.047-.37-3.02.149-1.28.643-2.522 1.231-3.802.007-.015.014-.029.021-.045l.016-.002-.012-.007c.889-1.926 1.957-3.949 2.355-6.337.151-.918.215-1.882.117-2.924"/><path fill="#9ba8a7" d="m43.594 43.85l-.024.054 1.9 3.466.01.03 3.062-.481-.022-.052z"/><g fill="#bac9c9"><path d="m48.542 46.919l.036-.006.004-.009-.062-.037z"/><path d="m43.514 43.8l.056.104.024-.054z"/></g><path fill="#c8d6d6" d="m42.751 33.716l-.731 7.354 3.515-1.79 5.354-2.73-.001-.006z"/><path fill="#bac9c9" d="m50.938 40.567c.153-.917.218-1.882.119-2.924-.037-.39-.099-.747-.168-1.094l-5.354 2.729 5.403 1.289"/><path fill="#9ba8a7" d="m48.52 46.867l.06.037c.889-1.926 1.957-3.949 2.355-6.337l-5.402-1.289 2.987 7.589"/><g fill="#bac9c9"><path d="m39.12 35.778l2.9 5.292.731-7.354z"/><path d="m45.47 47.4h.01l-.01-.03z"/><path d="m32.598 39.967l.004.001v-.006z"/><path d="m29.03 38.569v-.006.002z"/><path d="m42.12 47.931l.03-.005-.03-.034z"/></g><path fill="#9ba8a7" d="m45.11 51.04l2.21-.29-1.84-3.35h-.01z"/><path fill="#dce3e3" d="m31.58 32.06l-2.547 6.504 3.223-1.17-.66-5.336c-.006 0-.012.001-.016.002"/><path fill="#effcfc" d="m43.594 43.85l1.941-4.57-3.515 1.79 1.494 2.73z"/><g fill="#bac9c9"><path d="m43.513 43.8h.001l-1.494-2.73-5.151 2.624 6.701.21-.056-.104z"/><path d="m50.888 36.544c0-.002 0-.003-.001-.005l-4.979-4.578c-.02-.002-.036-.004-.057-.006l-3.101 1.761 8.138 2.828"/></g><g fill="#c8d6d6"><path d="m48.52 46.867l-2.985-7.587-1.941 4.57z"/><path d="m48.846 32.33c0 0-1.089-.19-2.938-.373l4.979 4.578c-.566-2.817-2.041-4.205-2.041-4.205"/><path d="m39.03 35.826l.09-.048-1.24-2.26-5.278 6.444v.006l9.418 1.102-2.9-5.292z"/></g><path fill="#dce3e3" d="m42.12 47.892l.032.034 3.316-.522.003-.029-1.901-3.47-6.661 4.831c.006.005.012.01.019.014l5.194-.818-.002-.04"/><path fill="#9ba8a7" d="m29.03 38.569l-.83 2.151-.002.003c.025.016.053.03.078.046l4.693 1.937-3.939-4.137"/><path fill="#bac9c9" d="m32.598 39.967l.004-.005-.346-2.568-3.223 1.17-.004.006 3.939 4.137-4.693-1.937c1.176.716 2.234 1.557 3.086 2.549.67.781 1.33 1.497 1.982 2.166l-.742-5.517h-.003"/><path fill="#9ba8a7" d="m33.35 45.49c1.215 1.248 2.395 2.313 3.52 3.213v-5.01l-3.52 1.794"/><path fill="#dce3e3" d="m36.869 43.694l5.151-2.624-9.418-1.102.738 5.512.01.01 3.518-1.796"/><path fill="#bac9c9" d="m25.26 39.28h.01-.01"/><path fill="#9ba8a7" d="m26.656 36.05l-.932-2.825-.26 3.411.031.009-.031-.009-.201 2.646.004.004c1.02.411 2.01.888 2.93 1.441l.002-.003-1.543-4.674"/><path fill="#c8d6d6" d="m36.928 48.749c1.993 1.589 3.816 2.675 5.374 3.419l-.18-4.237-5.194.818"/><path fill="#dce3e3" d="m45.48 47.4l1.836 3.35.005.01c.149-1.28.643-2.522 1.231-3.802l-.016-.039-3.056.481"/><path fill="#c8d6d6" d="m43.57 43.904l-6.701-.21v5.01c.014.011.027.023.041.034l6.661-4.831"/><path fill="#bac9c9" d="m45.11 51.04l.362-3.64-3.316.522 5.544 5.852c-.401-1.054-.482-2.047-.37-3.02l-.005-.01-2.215.294"/><path fill="#9ba8a7" d="m48.542 46.919l.016.039c.007-.015.014-.029.021-.045l-.037.006"/><path fill="#effcfc" d="m42.12 47.931l.18 4.237c3.293 1.572 5.395 1.609 5.395 1.609l-5.544-5.852-.031.006"/><path fill="#bac9c9" d="m21.906 35.626l-1.068-1.162-2.01 3.01c2.01.375 4.279.945 6.432 1.812v-.003l-3.358-3.653"/><path fill="#c8d6d6" d="m28.2 40.721l.83-2.151-.002-.004.006-.002 2.547-6.504c-.012.001-.021.002-.033.004l-4.891 3.982 1.543 4.675"/><path fill="#dce3e3" d="m26.656 36.05l4.891-3.982c-.371.042-.74.08-1.115.13-1.137.15-2.822.518-4.703.981l-.004.046.931 2.825"/><path fill="#c8d6d6" d="m25.26 39.28l.205-2.648-3.559-1.01z"/><path fill="#bac9c9" d="m32.26 37.39l.346 2.568 5.278-6.444-6.198-1.47c-.029.003-.057.006-.086.01l.66 5.336"/><path fill="#effcfc" d="m39.12 35.778l3.631-2.062-5.871-2.04-.01.001 1.01 1.841z"/><path fill="#c8d6d6" d="m36.87 31.677c-1.636.053-3.376.168-5.188.371l6.198 1.47-1.01-1.841"/><path fill="#effcfc" d="m20.838 34.464c-1.369.378-2.689.755-3.852 1.092l1.846 1.914 2.01-3.01"/><path fill="#c8d6d6" d="m16.986 35.556c-2.385.69-4.088 1.21-4.088 1.21s2.59.081 5.934.704l-1.846-1.914"/><path fill="#dce3e3" d="m45.852 31.955c-2.135-.209-5.277-.398-8.972-.279l5.871 2.04 3.101-1.761"/><path fill="#effcfc" d="m25.465 36.632l.26-3.411-.012-.041c-.016.003-.029.007-.045.011l-3.762 2.436 3.559 1"/><path fill="#bac9c9" d="m25.725 33.22l.004-.046c-.006.002-.012.004-.016.005l.012.041"/><path fill="#dce3e3" d="m25.668 33.19c-1.545.382-3.217.828-4.83 1.273l1.068 1.162 3.762-2.435"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b37b47" d="m15 4h8v8h-8z"/><path fill="#a16745" d="m15 4l-2-2v12l2-2z"/><path fill="#633f2c" d="m23 12l2 2v-12l-2 2z"/><path fill="#8c5b3e" d="m23 4l2-2h-12l2 2z"/><path fill="#523420" d="m23 12h-8l-2 2h12z"/><path fill="#b37b47" d="m27 4h8v8h-8z"/><path fill="#a16745" d="m27 12v-8l-2-2v12z"/><path d="m37 14v-7.5c-1.2-1-2-2.5-2-2.5v8l2 2" fill="#633f2c"/><path d="m35 4c0 0-.1-1.2.3-2h-10.3l2 2h8" fill="#8c5b3e"/><path fill="#523420" d="m35 12h-8l-2 2h12z"/><path d="M39,7.3V12h1.3C39,10,39,7.3,39,7.3z" fill="#b37b47"/><path d="m39 7.3c-.6-.2-1.5-.4-2-.8v7.5l2-2v-4.7" fill="#a16745"/><path d="m37 14h7.2c0 0-2.7-.6-4-2h-1.2l-2 2" fill="#523420"/><path fill="#b37b47" d="m15 16h8v8h-8z"/><path fill="#a16745" d="m15 16l-2-2v12l2-2z"/><path fill="#633f2c" d="m23 16v8l2 2v-12z"/><path fill="#8c5b3e" d="m23 16l2-2h-12l2 2z"/><path fill="#523420" d="m23 24h-8l-2 2h12z"/><path fill="#b37b47" d="m27 16h8v8h-8z"/><path fill="#a16745" d="m27 16l-2-2v12l2-2z"/><path fill="#633f2c" d="m35 16v8l2 2v-12z"/><path fill="#8c5b3e" d="m35 16l2-2h-12l2 2z"/><path fill="#523420" d="m27 24l-2 2h12l-2-2z"/><path d="m44.8 16h-5.8v8h8v-6.9c-.9-.3-1.7-.3-2.2-1.1" fill="#b37b47"/><path fill="#a16745" d="m37 14v12l2-2v-8z"/><path d="m47 17.1v6.9l2 2v-8.7c-.6 0-1.5 0-2-.2" fill="#633f2c"/><path d="m39 16h5.8c-.4-.5-.5-1.2-.6-2h-7.2l2 2" fill="#8c5b3e"/><path fill="#523420" d="m39 24l-2 2h12l-2-2z"/><path fill="#b37b47" d="m15 28h8v8h-8z"/><path fill="#a16745" d="m15 28l-2-2v11.4l2-1.4z"/><path fill="#633f2c" d="m23 28v8h2v-10z"/><g fill="#8c5b3e"><path d="m23 28l2-2h-12l2 2z"/><path d="m23 36h-8l-2 1.4z"/></g><path fill="#b37b47" d="m27 28h8v8h-8z"/><path fill="#a16745" d="m27 28l-2-2v10h2z"/><path fill="#633f2c" d="m35 36h2v-10l-2 2z"/><path fill="#8c5b3e" d="m27 28h8l2-2h-12z"/><path fill="#b37b47" d="m39 28h8v8h-8z"/><path fill="#a16745" d="m39 36v-8l-2-2v10z"/><path fill="#633f2c" d="m47 36h2v-10l-2 2z"/><path fill="#8c5b3e" d="m39 28h8l2-2h-12z"/><path fill="#9e6eeb" d="m13 36.8h36v23.2h-36z"/><path d="m45.4 34.9l-32.4 1.9c21.6 0 15.6 20.3 31.7 20.3-4.6-5.9.7-22.2.7-22.2" fill="#7350ab"/><g fill="#f8d317"><path d="m49 32.4c-7.1-5.6-36 4.4-36 4.4 24.9-1.9 17.6 18.9 34.9 17-4.2-9.8 7.6-16.4 1.1-21.4"/><path d="m13 60h36v2h-36z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f36c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f36c.svg
index 8836778..2c26a67 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f36c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f36c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b5b5" d="m22.809 41.19c5.422 5.422 3.314 16.324-.338 19.977-3.654 3.652-3.217-5.578-8.639-11-5.424-5.424-14.654-4.984-11-8.639 3.652-3.652 14.555-5.761 19.977-.338"/><path fill="#ffe6e8" d="m2.832 41.529c0 0 6.09.326 7.145 5.129.508 2.314-.758 4.508 1.05 6.314 1.806 1.807 4 .543 6.315 1.051 4.803 1.053 5.129 7.145 5.129 7.145 3.652-3.652 5.76-14.555.338-19.977-5.422-5.423-16.325-3.314-19.977.338"/><path fill="#f2b5b5" d="m41.19 22.811c-5.422-5.424-3.315-16.324.34-19.979 3.652-3.652 3.215 5.578 8.639 11 5.422 5.424 14.652 4.984 10.998 8.639-3.652 3.652-14.553 5.761-19.977.34"/><path fill="#ffe6e8" d="m61.17 22.471c0 0-6.09-.324-7.144-5.129-.507-2.314.757-4.508-1.05-6.314-1.805-1.805-4-.543-6.314-1.049-4.805-1.055-5.129-7.146-5.129-7.146-3.655 3.654-5.762 14.555-.34 19.979 5.424 5.42 16.325 3.311 19.977-.341"/><g fill="#f0154f"><path d="m31.97 32.02c-.001-.004-.002-.008-.003-.012-2.844 1.984-6.777 1.721-9.309-.811-2.177-2.176-2.673-5.385-1.511-8.05-3.509 4.293-4.081 10.182-1.725 14.998 8.627 2.101 11.01-4.286 12.548-6.124"/><path d="m31.954 31.957c0 0-.001-.002 0-.002-1.952-2.838-1.672-6.75.855-9.277 2.171-2.17 5.359-2.68 8.02-1.547-4.287-3.49-10.156-4.059-14.964-1.715-2.14 8.633 4.243 11.01 6.094 12.541"/><path d="m32.03 31.965c-.003.01-.007.02-.01.029.006.008.01.016.015.021 2.847-1.996 6.79-1.738 9.327.799 2.15 2.15 2.658 5.307 1.552 7.953 3.442-4.273 4-10.1 1.683-14.877-8.614-2.124-11.02 4.188-12.567 6.075"/><path d="m32.13 32.16c1.882 2.828 1.583 6.682-.918 9.182-2.166 2.168-5.349 2.678-8 1.553 4.277 3.461 10.116 4.02 14.905 1.699 2.088-8.451-4.01-10.897-5.986-12.434"/></g><path fill="#ffe6e8" d="m41.71 21.922c-.287-.277-.581-.543-.886-.791-2.655-1.133-5.844-.623-8.02 1.547-2.527 2.527-2.808 6.439-.855 9.277-.001 0 0 .002 0 .002-1.852-1.535-8.234-3.908-6.094-12.541-.361.178-.717.369-1.064.578-.961.576-1.868 1.277-2.696 2.105-.062.063-.118.125-.179.188-.271.281-.53.568-.773.865-1.162 2.666-.666 5.875 1.511 8.05 2.531 2.531 6.465 2.795 9.309.811.001.004.002.008.003.012-1.539 1.838-3.921 8.225-12.547 6.125.185.379.387.75.608 1.115.57.938 1.258 1.822 2.067 2.633.069.068.141.133.21.201.292.277.591.545.898.795 2.652 1.125 5.835.615 8-1.553 2.501-2.5 2.8-6.354.918-9.182 1.981 1.537 8.07 3.982 5.986 12.434.367-.178.729-.371 1.081-.584.965-.578 1.874-1.279 2.705-2.111.067-.066.129-.137.193-.203.289-.301.564-.609.82-.928 1.106-2.646.599-5.803-1.552-7.953-2.537-2.537-6.48-2.795-9.327-.799-.005-.006-.009-.014-.015-.021.003-.01.007-.02.01-.029 1.543-1.887 3.953-8.199 12.566-6.074-.166-.344-.344-.684-.54-1.014-.587-.992-1.305-1.926-2.157-2.777-.059-.062-.124-.121-.186-.179"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.8 41.2c5.4 5.4 3.3 16.3-.3 20-3.7 3.7-3.2-5.6-8.6-11-5.4-5.4-14.7-5-11-8.6 3.6-3.7 14.5-5.8 19.9-.4" fill="#f2b5b5"/><path d="m2.8 41.5c0 0 6.1.3 7.1 5.1.6 2.4-.7 4.6 1.1 6.4 1.8 1.8 4 .5 6.3 1.1 4.8 1.1 5.1 7.1 5.1 7.1 3.7-3.7 5.8-14.6.3-20-5.3-5.4-16.2-3.3-19.9.3" fill="#ffe6e8"/><path d="m41.2 22.8c-5.4-5.4-3.3-16.3.3-20 3.7-3.7 3.2 5.6 8.6 11 5.4 5.4 14.7 5 11 8.6-3.6 3.7-14.5 5.8-19.9.4" fill="#f2b5b5"/><path d="m61.2 22.5c0 0-6.1-.3-7.1-5.1-.5-2.3.8-4.5-1-6.3-1.8-1.8-4-.5-6.3-1-4.8-1.1-5.1-7.1-5.1-7.1-3.7 3.7-5.8 14.6-.3 20 5.2 5.2 16.1 3.1 19.8-.5" fill="#ffe6e8"/><g fill="#f0154f"><path d="m32 32c0 0 0 0 0 0-2.8 2-6.8 1.7-9.3-.8-2.2-2.2-2.7-5.4-1.5-8.1-3.5 4.3-4.1 10.2-1.7 15 8.5 2.1 10.9-4.2 12.5-6.1"/><path d="m32 32c0 0 0 0 0 0-2-2.8-1.7-6.8.9-9.3 2.2-2.2 5.4-2.7 8-1.5-4.3-3.5-10.2-4.1-15-1.7-2.2 8.5 4.2 10.9 6.1 12.5"/><path d="m32 32c0 0 0 0 0 0 2.9-1.9 6.8-1.7 9.3.8 2.2 2.2 2.7 5.3 1.6 8 3.4-4.3 4-10.1 1.7-14.9-8.6-2.1-11 4.2-12.6 6.1"/><path d="m32.1 32.2c1.9 2.8 1.6 6.7-.9 9.2-2.2 2.2-5.3 2.7-8 1.6 4.3 3.5 10.1 4 14.9 1.7 2.1-8.6-4-11-6-12.5"/></g><path d="m41.7 21.9c-.3-.3-.6-.5-.9-.8-2.7-1.1-5.8-.6-8 1.5-2.5 2.6-2.8 6.5-.8 9.4-1.9-1.5-8.2-3.9-6.1-12.5-.4.2-.7.4-1.1.6-1 .6-1.9 1.3-2.7 2.1-.1.1-.1.1-.2.2-.3.3-.5.6-.8.9-1.2 2.7-.7 5.9 1.5 8.1 2.5 2.5 6.5 2.8 9.3.8-1.5 1.8-3.9 8.2-12.5 6.1.2.4.4.8.6 1.1.6.9 1.3 1.8 2.1 2.6.1.1.1.1.2.2.3.3.6.5.9.8 2.7 1.1 5.8.6 8-1.6 2.5-2.5 2.8-6.4.9-9.2 2 1.5 8.1 4 6 12.4.4-.2.7-.4 1.1-.6 1-.6 1.9-1.3 2.7-2.1.1-.1.1-.1.2-.2.3-.3.6-.6.8-.9 1.1-2.6.6-5.8-1.6-8-2.5-2.5-6.4-2.8-9.3-.8 1.5-1.9 4-8.2 12.6-6.1-.2-.3-.3-.7-.5-1-.6-1-1.3-1.9-2.2-2.8-.1-.1-.1-.1-.2-.2" fill="#ffe6e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f36d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f36d.svg
index ed4a873..887f57c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f36d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f36d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m57.702 61.31c1.057 1.063 2.471.808 3.463-.19.988-1 1.183-2.364.126-3.428l-28.686-28.834c-1.057-1.063-2.718-1.112-3.71-.114-.99.998-.937 2.671.123 3.731l28.684 28.835"/><path fill="#fbbf67" d="m28.886 28.756c-.734.742-.473 2.21.586 3.271l28.701 28.819c1.056 1.06 2.264 1.012 3 .266.735-.743.723-1.899-.338-2.964l-28.701-28.819c-1.059-1.061-2.512-1.317-3.248-.573"/><path fill="#b2f25e" d="m37.798 34.13c2.036 4.237 3.182 9.244 2.574 14.701.752-.47 1.475-.97 2.17-1.498 2.096-1.613 3.148-3.543 3.448-5.245.304-1.718-.122-3.235-.927-4.429-.804-1.199-1.988-2.083-3.279-2.664-1.291-.58-2.689-.863-3.986-.865"/><path fill="#a93feb" d="m33.708 35.386c-.141.104-.279.21-.421.308.669 2.555.894 5.319.534 8.159-.356 2.836-1.307 5.747-2.875 8.514 3.369-.526 6.612-1.779 9.426-3.54.607-5.457-.538-10.464-2.574-14.701-1.55-.001-2.922.363-4.09 1.26"/><path fill="#b2f25e" d="m29.337 37.478c-.26 2.612-1.115 5.247-2.551 7.713-1.43 2.466-3.436 4.75-5.893 6.689 3.227.822 6.684 1.021 10.05.486 1.57-2.767 2.52-5.678 2.875-8.514.359-2.84.135-5.604-.534-8.159-1.258.884-2.581 1.48-3.95 1.785"/><path fill="#a93feb" d="m25.12 37.531c-2.552 4.598-7.29 8.292-13.11 10.271 2.649 1.834 5.654 3.26 8.887 4.077 2.459-1.939 4.463-4.224 5.893-6.69 1.436-2.467 2.291-5.101 2.551-7.712-1.366.306-2.789.328-4.222.054"/><path fill="#b2f25e" d="m20.896 35.857c-1.025.823-2.146 1.562-3.341 2.206-.607.315-1.192.646-1.82.915-.628.276-1.278.51-1.959.704-2.708.775-5.8.851-8.937.187.854 1.599 1.915 3.122 3.165 4.49.624.685 1.295 1.331 2 1.928l.538.438.481.37c.322.24.648.478.979.707 5.819-1.979 10.558-5.674 13.11-10.271-1.432-.271-2.87-.843-4.219-1.674"/><path fill="#a93feb" d="m18.04 33.23c-2.429.767-5.175.834-7.922.227-2.756-.604-5.512-1.873-8.07-3.705.202 3.426 1.085 6.91 2.795 10.117 3.138.664 6.229.589 8.937-.187.68-.194 1.33-.428 1.959-.704.628-.27 1.213-.6 1.82-.915 1.196-.645 2.316-1.383 3.342-2.206-.646-.396-1.426-.976-1.752-1.291-.413-.383-.782-.827-1.104-1.336"/><path fill="#b2f25e" d="m16.778 29.521c-5.076-1.023-9.988-4.532-13.418-9.793-1.045 3.194-1.516 6.593-1.315 10.02 2.562 1.833 5.319 3.102 8.07 3.705 2.747.607 5.493.54 7.922-.227-.645-1.01-1.096-2.294-1.264-3.709"/><path fill="#a93feb" d="m17.1 25.12c-4.286-2.977-7.625-7.993-8.963-14.165-2.104 2.587-3.738 5.575-4.783 8.769 3.432 5.26 8.343 8.769 13.418 9.793-.172-1.413-.062-2.937.328-4.397"/><path fill="#b2f25e" d="m19.04 21.04c-1.457-2.183-2.542-4.746-3.116-7.536-.556-2.808-.485-5.901.265-9.04-1.572.774-3.07 1.736-4.439 2.854-.684.558-1.342 1.16-1.949 1.785-.58.592-1.133 1.215-1.66 1.86 1.336 6.172 4.676 11.188 8.963 14.165.387-1.465 1.049-2.858 1.936-4.087"/><path fill="#a93feb" d="m22.06 18.2c-.573-2.541-.514-5.319.18-8.095.693-2.772 2.01-5.539 3.869-8.09-3.35.106-6.771.893-9.92 2.446-.75 3.139-.82 6.233-.265 9.04.574 2.79 1.661 5.354 3.116 7.537.222-.308.459-.604.711-.891.246-.281.527-.578.75-.785.476-.45.994-.838 1.559-1.164"/><path fill="#b2f25e" d="m25.918 16.989c1.185-5.124 4.747-10.02 9.95-13.426-3.098-1.108-6.402-1.659-9.758-1.55-1.858 2.55-3.178 5.315-3.869 8.09-.693 2.775-.753 5.554-.18 8.095 1.121-.655 2.434-1.073 3.857-1.207"/><path fill="#a93feb" d="m30.31 17.437c3.043-4.286 7.988-7.63 14.09-8.904-2.532-2.183-5.436-3.862-8.532-4.969-5.203 3.403-8.766 8.302-9.95 13.426 1.421-.139 2.941.015 4.396.447"/><path fill="#b2f25e" d="m34.35 19.484c1.08-.729 2.252-1.361 3.499-1.88 1.253-.513 2.55-.942 3.94-1.186 2.771-.501 5.828-.336 8.905.584-.72-1.662-1.64-3.242-2.721-4.681-.542-.719-1.125-1.403-1.739-2.047-.609-.636-1.199-1.189-1.836-1.741-6.097 1.274-11.04 4.618-14.09 8.902 1.457.43 2.844 1.135 4.04 2.049"/><path fill="#a93feb" d="m36.991 22.492c2.495-.536 5.224-.394 7.914.456 2.688.845 5.335 2.393 7.683 4.558.171-3.539-.452-7.176-1.893-10.503-3.077-.92-6.134-1.085-8.905-.584-1.391.243-2.688.673-3.941 1.186-1.246.52-2.42 1.152-3.499 1.88.298.229.585.471.86.725.135.127.271.259.399.39.111.115.22.23.324.352.416.476.772.988 1.058 1.54"/><path fill="#b2f25e" d="m37.915 26.18c4.94 1.409 9.48 5.539 11.972 11.438 1.596-3.104 2.534-6.566 2.7-10.111-2.347-2.165-4.994-3.713-7.681-4.558-2.692-.85-5.42-.993-7.915-.455.576 1.099.897 2.36.924 3.686"/><path opacity=".1" d="m7.565 32.752c.635 4.053 2.428 7.948 5.088 11.04.33.388.676.76 1.029 1.121.344.349.695.688 1.06 1.016.728.653 1.495 1.267 2.301 1.827 1.61 1.121 3.365 2.041 5.2 2.72 3.669 1.364 7.604 1.348 11.32.511 4.65-1.046 10.191-4.742 11.93-7.29l1.896-10.04c1.014-3.416 1.164-7.089.632-9.986-.444-2.424-1.362-4.836-2.747-7.01-.692-1.086-1.496-2.113-2.396-3.052-.443-.465-.936-.926-1.404-1.334l-.341-.288-.31-.25c-.207-.164-.418-.325-.631-.48-3.418-2.52-7.622-3.905-11.814-3.929-4.195-.048-8.417 1.265-11.88 3.725-.865.612-1.681 1.29-2.438 2.02-.751.734-1.413 1.471-2.045 2.282-1.256 1.608-2.299 3.405-3.071 5.312-1.552 3.807-2.031 8.03-1.379 12.09m16.537-6.981c.155-.235.325-.465.514-.681.093-.106.198-.218.292-.314.088-.091.182-.172.273-.253.736-.634 1.641-1.02 2.614-1.104.971-.088 1.96.141 2.774.628.205.121.4.263.591.416.053.048.032.029.037.031 2.287-.438 4.954.094 7.526 1.65.021 1.407-.268 2.864-.849 4.201-.294.679-.658 1.327-1.091 1.932-.217.301-.447.592-.695.872-.121.139-.25.273-.382.408-.115.115-.231.229-.352.336-.96.865-2.103 1.458-3.347 1.748-1.24.291-2.566.257-3.787-.093-1.225-.349-2.333-.996-3.262-1.915-.844-.834-1.397-1.817-1.676-2.933-.275-1.109-.242-2.318.1-3.402.172-.538.414-1.053.72-1.527"/><g fill="#b2f25e"><path d="m34.784 33.431c1.111 2.327 1.632 5.05 1.404 7.909-.223 2.851-1.186 5.824-2.895 8.598 3.578-.533 7.04-2 9.932-4.234.096-1.631.002-3.223-.262-4.719-.277-1.486-.691-2.896-1.235-4.219-1.085-2.642-2.673-4.902-4.603-6.632-.273.631-.611 1.233-1.013 1.795-.202.279-.415.55-.644.81-.115.131-.236.255-.357.382-.104.106-.214.211-.327.31"/><path d="m28.16 34.969c-2.608 4.437-7.956 7.646-14.469 7.656.308.36.628.707.957 1.043.318.325.645.64.983.942.677.607 1.39 1.18 2.139 1.698 1.497 1.043 3.126 1.896 4.831 2.527 2.809-1.609 5.04-3.761 6.576-6.157 1.539-2.398 2.381-5.04 2.5-7.622-1.151.269-2.384.237-3.517-.087"/><path d="m23.57 30.464c-2.525.015-5.142-.787-7.485-2.376-2.343-1.582-4.409-3.955-5.842-6.953-1.441 3.543-1.886 7.467-1.281 11.233 2.763 1.781 5.749 2.709 8.559 2.802 2.822.106 5.443-.645 7.607-1.978-.785-.776-1.299-1.691-1.558-2.728"/><path d="m25.331 24.723c-1.191-2.238-1.65-4.984-1.17-7.807.469-2.822 1.867-5.706 4.141-8.176-3.896-.045-7.82 1.176-11.04 3.461-.229 1.679-.215 3.313.008 4.843.24 1.519.662 2.947 1.246 4.249 1.168 2.608 2.985 4.681 5.145 6.01.156-.505.381-.981.666-1.421.145-.22.303-.432.479-.634.086-.099.182-.2.271-.289.079-.087.167-.162.251-.237"/><path d="m30.339 24.279c.418-.471.883-.91 1.387-1.31.494-.406 1.072-.742 1.604-1.095 1.067-.708 2.382-1.172 3.86-1.308 2.935-.279 6.404.864 9.365 3.36-.412-2.254-1.266-4.496-2.553-6.517-.641-1.01-1.388-1.964-2.226-2.836-.413-.432-.867-.861-1.306-1.239l-.316-.27-.286-.231c-.194-.15-.389-.303-.587-.447-3.27.673-6.05 2.213-8.03 4.245-1.989 2.028-3.184 4.534-3.489 7.06.903-.078 1.821.133 2.579.586"/></g><g fill="#a93feb"><path d="m37.13 30.13c1.93 1.729 3.518 3.99 4.603 6.632.544 1.323.958 2.732 1.235 4.219.264 1.498.357 3.088.262 4.719.722-.555 1.41-1.154 2.055-1.793.635-.63 1.201-1.255 1.756-1.932 1.097-1.342 2.054-2.809 2.851-4.362-2.492-5.899-7.03-10.03-11.972-11.438.026 1.323-.241 2.696-.79 3.955"/><path d="m31.679 35.06c-.12 2.581-.961 5.225-2.501 7.623-1.536 2.396-3.767 4.547-6.577 6.157 3.411 1.267 7.113 1.644 10.693 1.102 1.709-2.774 2.672-5.747 2.895-8.599.229-2.854-.293-5.581-1.404-7.908-.889.803-1.952 1.355-3.106 1.625"/><path d="m25.13 33.19c-2.163 1.334-4.785 2.084-7.605 1.979-2.811-.093-5.797-1.021-8.559-2.803.59 3.767 2.255 7.386 4.728 10.256 6.511-.009 11.859-3.219 14.468-7.655-1.139-.324-2.173-.926-3.03-1.777"/><path d="m23.663 27.304c-2.159-1.33-3.977-3.401-5.145-6.01-.584-1.302-1.01-2.73-1.246-4.249-.223-1.531-.235-3.164-.008-4.843-.803.569-1.562 1.201-2.265 1.881-.698.681-1.313 1.363-1.901 2.119-1.168 1.495-2.136 3.165-2.854 4.934 1.431 2.998 3.497 5.371 5.84 6.953 2.344 1.589 4.961 2.391 7.486 2.376-.255-1.028-.225-2.151.093-3.16"/><path d="m27.76 23.696c.307-2.527 1.501-5.03 3.489-7.06 1.98-2.032 4.762-3.572 8.03-4.245-3.174-2.339-7.082-3.628-10.979-3.649-2.273 2.47-3.672 5.354-4.141 8.175-.48 2.822-.021 5.569 1.17 7.807.686-.589 1.524-.947 2.43-1.026"/><path d="m30.923 24.695c2.603-.497 5.734.354 8.588 2.656 2.4 2.15 4.174 5.402 4.893 9.121 2.053-3.53 2.984-8.02 2.152-12.545-2.961-2.497-6.43-3.641-9.365-3.36-1.479.136-2.793.6-3.86 1.308-.532.353-1.11.688-1.604 1.095-.504.399-.969.839-1.387 1.31.19.113.373.244.549.387.048.044.028.028.034.028"/></g><path opacity=".1" d="m14.829 38.25c2.193 3.49 5.647 6.094 9.491 7.357 3.851 1.273 8.128 1.189 11.968-.286 3.846-1.457 8.636-5.02 11.207-12.02 0 0-.846-1.191-1.191-1.529-.751 2.686-1.9 4.702-1.9 4.702l-4.893-9.121c-.791-4.865-4.33-9.01-8.906-10.312-4.686-1.329-13.689 1.488-16.639 9.342-1.426 3.792-1.34 8.392.863 11.868m16.654-13.8c-.096.016-.191.027-.285.045-.252-.136-.117-.142.285-.045"/><g fill="#b2f25e"><path d="m30.923 24.695c2.713 1.896 5 5.178 6.17 9.404.518 3.216.027 6.717-1.441 9.945 3.574-1.354 6.7-4.02 8.753-7.574-.721-3.719-2.494-6.971-4.894-9.121-2.854-2.299-5.986-3.151-8.588-2.654"/><path d="m30.923 24.695c-.992 4.272-3.396 8.258-6.787 11.133-2.41 1.293-5.336 1.913-8.423 1.646 2.039 3.244 5.245 5.663 8.817 6.838 2.838-1.684 5.05-4.03 6.422-6.723 1.374-4.481 1.282-9.08-.029-12.894"/><path d="m30.28 25.38c-2.489.511-4.482-.027-5.336-.904-.652-.474-1.288-1.119-1.775-1.973-.477-.855-.826-1.921-.718-3.228-.899.507-6.364 3.18-7.698 8.03 4.687 5.601 12.247 1.671 15.527-1.923"/></g><g fill="#a93feb"><path d="m30.923 24.695c1.312 3.815 1.404 8.413.029 12.896-1.367 2.688-3.584 5.04-6.422 6.723 3.579 1.184 7.553 1.106 11.12-.267 1.469-3.23 1.959-6.731 1.441-9.947-1.166-4.225-3.456-7.509-6.169-9.405"/><path d="m30.923 24.695c-2.961 2.992-10.662 6.214-16.17 2.608-.766 3.685-.588 6.997.962 10.171 3.087.267 6.01-.354 8.423-1.646 3.39-2.874 5.795-6.86 6.787-11.133"/><path d="m30.28 25.38c-1.061-.578 7.463 2.114 8.299 3.842.082-.545.077-1.218.025-1.939l-.088-.596-.045-.299-.068-.321c-.105-.433-.245-.893-.433-1.377-.386-.964-.979-2.047-1.882-3.123-.46-.529-.99-1.049-1.588-1.505-.295-.234-.611-.444-.936-.634-.316-.205-.648-.365-.977-.536-.665-.311-1.328-.544-1.963-.714-.637-.164-1.232-.254-1.793-.307-1.116-.095-2.045-.014-2.834.126-1.574.291-2.636.781-3.547 1.28-.108 1.307.24 2.372.718 3.228.485.854 1.123 1.499 1.775 1.973.855.875 2.848 1.413 5.337.902"/></g><path opacity=".1" d="m25.853 35.97c1.427 1.384 3.303 2.047 5.646 1.462 2.851-.708 8.392-2.787 8.01-10.08-.418-.293-1.01-.746-1.01-.746s.271 1.398.072 2.616l-13.293 2.728c-.613 1.364-.472 3.01.569 4.02"/><path fill="#b2f25e" d="m30.28 25.38c.295.05.754.316 1.26.865.502.544 1.045 1.381 1.373 2.474 1.063 2.697.256 5.674-1.699 8 1.828-.338 3.635-1.23 4.939-2.55.654-.652 1.178-1.378 1.58-2.172.398-.804.703-1.66.845-2.781-2.024-8.31-10.349-4.88-8.298-3.841"/><path fill="#a93feb" d="m30.28 25.38c1.672 3.349-1.709 6.125-5.16 7.188-.232.821-.092 1.832.85 2.796.467.473 1.144.91 1.945 1.178.1.033.201.065.305.093.042.012.158.038.235.054l.214.043c.213.044.434.073.656.097.447.039.912.033 1.392-.028.165-.02.332-.045.497-.074 1.955-2.332 2.762-5.308 1.7-8.01-.329-1.093-.872-1.93-1.374-2.474-.506-.552-.965-.818-1.26-.868"/><path fill="#b2f25e" d="m30.28 25.38c-1.422 3.771-4.654 4.378-5.16 7.188 2.352-.281 7.613-3.13 5.16-7.188"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.7 61.3c1.1 1.1 2.5.8 3.5-.2 1-1 1.2-2.4.1-3.4l-28.7-28.8c-1.1-1.1-2.7-1.1-3.7-.1-1 1-.9 2.7.1 3.7l28.7 28.8" fill="#f29a2e"/><path d="m28.9 28.8c-.7.7-.5 2.2.6 3.3l28.7 28.8c1.1 1.1 2.3 1 3 .3.7-.7.7-1.9-.3-3l-28.8-28.9c-1-1-2.5-1.3-3.2-.5" fill="#fbbf67"/><path d="m37.8 34.1c2 4.2 3.2 9.2 2.6 14.7.8-.5 1.5-1 2.2-1.5 2.1-1.6 3.1-3.5 3.4-5.2.3-1.7-.1-3.2-.9-4.4-.8-1.2-2-2.1-3.3-2.7-1.3-.6-2.7-.9-4-.9" fill="#b2f25e"/><path d="m33.7 35.4c-.1.1-.3.2-.4.3.7 2.6.9 5.3.5 8.2-.4 2.8-1.3 5.7-2.9 8.5 3.4-.5 6.6-1.8 9.4-3.5.6-5.5-.5-10.5-2.6-14.7-1.5-.1-2.8.3-4 1.2" fill="#a93feb"/><path d="m29.3 37.5c-.3 2.6-1.1 5.2-2.6 7.7-1.4 2.5-3.4 4.8-5.9 6.7 3.2.8 6.7 1 10.1.5 1.6-2.8 2.5-5.7 2.9-8.5.4-2.8.1-5.6-.5-8.2-1.3.9-2.6 1.5-4 1.8" fill="#b2f25e"/><path d="m25.1 37.5c-2.6 4.6-7.3 8.3-13.1 10.3 2.6 1.8 5.7 3.3 8.9 4.1 2.5-1.9 4.5-4.2 5.9-6.7 1.4-2.5 2.3-5.1 2.6-7.7-1.4.3-2.9.3-4.3 0" fill="#a93feb"/><path d="m20.9 35.9c-1 .8-2.1 1.6-3.3 2.2-.6.3-1.2.6-1.8.9-.6.3-1.3.5-2 .7-2.7.8-5.8.9-8.9.2.8 1.6 1.9 3.1 3.1 4.5.6.7 1.3 1.3 2 1.9l.5.4.5.4c.3.2.6.5 1 .7 5.8-2 10.6-5.7 13.1-10.3-1.4-.2-2.9-.8-4.2-1.6" fill="#b2f25e"/><path d="m18 33.2c-2.4.8-5.2.8-7.9.2-2.8-.6-5.5-1.9-8.1-3.7.2 3.4 1.1 6.9 2.8 10.1 3.1.7 6.2.6 8.9-.2.7-.2 1.3-.4 2-.7.6-.3 1.2-.6 1.8-.9 1.2-.6 2.3-1.4 3.3-2.2-.6-.4-1.4-1-1.8-1.3-.3-.3-.6-.8-1-1.3" fill="#a93feb"/><path d="m16.8 29.5c-5.1-1-10-4.5-13.4-9.8-1 3.2-1.5 6.6-1.3 10 2.6 1.8 5.3 3.1 8.1 3.7 2.7.6 5.5.5 7.9-.2-.7-1-1.2-2.3-1.3-3.7" fill="#b2f25e"/><path d="m17.1 25.1c-4.3-3-7.6-8-9-14.2-2.1 2.6-3.7 5.6-4.8 8.8 3.4 5.3 8.3 8.8 13.4 9.8-.1-1.4 0-2.9.4-4.4" fill="#a93feb"/><path d="m19 21c-1.5-2.2-2.5-4.7-3.1-7.5-.6-2.8-.5-5.9.3-9-1.6.8-3.1 1.7-4.4 2.9-.7.6-1.3 1.2-1.9 1.8-.7.5-1.2 1.1-1.8 1.8 1.3 6.2 4.7 11.2 9 14.2.4-1.5 1.1-2.9 1.9-4.2" fill="#b2f25e"/><path d="m22.1 18.2c-.6-2.5-.5-5.3.2-8.1.7-2.8 2-5.5 3.9-8.1-3.4.1-6.8.9-9.9 2.4-.8 3.1-.8 6.2-.3 9 .6 2.8 1.7 5.4 3.1 7.5.2-.3.5-.6.7-.9.2-.3.5-.6.8-.8.4-.3.9-.7 1.5-1" fill="#a93feb"/><path d="m25.9 17c1.2-5.1 4.7-10 10-13.4-3.1-1.1-6.4-1.7-9.8-1.5-1.9 2.5-3.2 5.3-3.9 8.1-.7 2.8-.8 5.6-.2 8.1 1.2-.8 2.5-1.2 3.9-1.3" fill="#b2f25e"/><path d="m30.3 17.4c3-4.3 8-7.6 14.1-8.9-2.5-2.2-5.4-3.9-8.5-5-5.2 3.4-8.8 8.3-10 13.4 1.4 0 3 .1 4.4.5" fill="#a93feb"/><path d="m34.4 19.5c1.1-.7 2.3-1.4 3.5-1.9 1.3-.5 2.5-.9 3.9-1.2 2.8-.5 5.8-.3 8.9.6-.7-1.7-1.6-3.2-2.7-4.7-.5-.7-1.1-1.4-1.7-2-.6-.6-1.2-1.2-1.8-1.7-6.1 1.3-11 4.6-14.1 8.9 1.4.4 2.8 1.1 4 2" fill="#b2f25e"/><path d="m37 22.5c2.5-.5 5.2-.4 7.9.5 2.7.8 5.3 2.4 7.7 4.6.2-3.5-.5-7.2-1.9-10.5-3.1-.9-6.1-1.1-8.9-.6-1.4.2-2.7.7-3.9 1.2-1.2.5-2.4 1.2-3.5 1.9.3.2.6.5.9.7.1.1.3.3.4.4.1.1.2.2.3.4.3.3.7.8 1 1.4" fill="#a93feb"/><path d="m37.9 26.2c4.9 1.4 9.5 5.5 12 11.4 1.6-3.1 2.5-6.6 2.7-10.1-2.3-2.2-5-3.7-7.7-4.6-2.7-.9-5.4-1-7.9-.5.6 1.2.9 2.5.9 3.8" fill="#b2f25e"/><path d="m7.6 32.8c.6 4.1 2.4 7.9 5.1 11 .3.4.7.8 1 1.1.3.3.7.7 1.1 1 .7.7 1.5 1.3 2.3 1.8 1.6 1.1 3.4 2 5.2 2.7 3.7 1.4 7.6 1.3 11.3.5 4.7-1 10.2-4.7 11.9-7.3l1.9-10c1-3.4 1.2-7.1.6-10-.4-2.4-1.4-4.8-2.7-7-.7-1.1-1.5-2.1-2.4-3.1-.4-.5-.9-.9-1.4-1.3l-.4-.2-.3-.2c-.2-.2-.4-.3-.6-.5-3.4-2.5-7.6-3.9-11.8-3.9-4.2 0-8.4 1.3-11.9 3.7-.9.6-1.7 1.3-2.4 2-.8.7-1.4 1.5-2 2.3-1.3 1.6-2.3 3.4-3.1 5.3-1.6 3.8-2.1 8-1.4 12.1m16.5-7c.2-.2.3-.5.5-.7.1-.1.2-.2.3-.3.1-.1.2-.2.3-.3.7-.6 1.6-1 2.6-1.1 1-.1 2 .1 2.8.6.2.1.4.3.6.4 2.3-.4 5 .1 7.5 1.6 0 1.4-.3 2.9-.8 4.2-.3.7-.7 1.3-1.1 1.9-.2.3-.4.6-.7.9-.1.1-.2.3-.4.4-.1.1-.2.2-.4.3-1 .9-2.1 1.5-3.3 1.7-1.2.3-2.6.3-3.8-.1-1.2-.3-2.3-1-3.3-1.9-.8-.8-1.4-1.8-1.7-2.9-.3-1.1-.2-2.3.1-3.4.3-.3.5-.9.8-1.3" opacity=".1"/><g fill="#b2f25e"><path d="m34.8 33.4c1.1 2.3 1.6 5.1 1.4 7.9-.2 2.9-1.2 5.8-2.9 8.6 3.6-.5 7-2 9.9-4.2.1-1.6 0-3.2-.3-4.7-.3-1.5-.7-2.9-1.2-4.2-1.1-2.6-2.7-4.9-4.6-6.6-.3.6-.6 1.2-1 1.8-.2.3-.4.6-.6.8-.1.1-.2.3-.4.4-.1 0-.2.1-.3.2"/><path d="m28.2 35c-2.6 4.4-8 7.6-14.5 7.7.3.4.6.7 1 1 .3.3.6.6 1 .9.7.6 1.4 1.2 2.1 1.7 1.5 1 3.1 1.9 4.8 2.5 2.8-1.6 5-3.8 6.6-6.2 1.5-2.4 2.4-5 2.5-7.6-1.2.3-2.4.3-3.5 0"/><path d="m23.6 30.5c-2.5 0-5.1-.8-7.5-2.4-2.3-1.6-4.4-4-5.8-7-1.5 3.6-1.9 7.5-1.3 11.3 2.8 1.8 5.7 2.7 8.6 2.8 2.8.1 5.4-.6 7.6-2-.9-.8-1.4-1.7-1.6-2.7"/><path d="m25.3 24.7c-1.2-2.2-1.6-5-1.2-7.8.5-2.8 1.9-5.7 4.1-8.2-3.9 0-7.8 1.2-11 3.5-.2 1.7-.2 3.3 0 4.8.2 1.5.7 2.9 1.2 4.2 1.2 2.6 3 4.7 5.1 6 .2-.5.4-1 .7-1.4.1-.2.3-.4.5-.6.1-.1.2-.2.3-.3.2 0 .2-.1.3-.2"/><path d="m30.3 24.3c.4-.5.9-.9 1.4-1.3.5-.4 1.1-.7 1.6-1.1 1.1-.7 2.4-1.2 3.9-1.3 2.9-.3 6.4.9 9.4 3.4-.4-2.3-1.3-4.5-2.6-6.5-.6-1-1.4-2-2.2-2.8-.4-.4-.9-.9-1.3-1.2l-.3-.3-.3-.2c-.2-.1-.4-.3-.6-.4-3.3.7-6.1 2.2-8 4.2-2 2-3.2 4.5-3.5 7.1.9-.3 1.8-.1 2.5.4"/></g><g fill="#a93feb"><path d="m37.1 30.1c1.9 1.7 3.5 4 4.6 6.6.5 1.3 1 2.7 1.2 4.2.3 1.5.4 3.1.3 4.7.7-.6 1.4-1.2 2.1-1.8.6-.6 1.2-1.3 1.8-1.9 1.1-1.3 2.1-2.8 2.9-4.4-2.5-5.9-7-10-12-11.4-.1 1.4-.3 2.8-.9 4"/><path d="m31.7 35.1c-.1 2.6-1 5.2-2.5 7.6-1.5 2.4-3.8 4.5-6.6 6.2 3.4 1.3 7.1 1.6 10.7 1.1 1.7-2.8 2.7-5.7 2.9-8.6.2-2.9-.3-5.6-1.4-7.9-.9.7-2 1.3-3.1 1.6"/><path d="m25.1 33.2c-2.2 1.3-4.8 2.1-7.6 2-2.8-.1-5.8-1-8.6-2.8.6 3.8 2.3 7.4 4.7 10.3 6.5 0 11.9-3.2 14.5-7.7-1.1-.4-2.1-1-3-1.8"/><path d="m23.7 27.3c-2.2-1.3-4-3.4-5.1-6-.6-1.3-1-2.7-1.2-4.2-.2-1.5-.2-3.2 0-4.8-.8.6-1.6 1.2-2.3 1.9-.7.7-1.3 1.4-1.9 2.1-1.2 1.5-2.1 3.2-2.9 4.9 1.4 3 3.5 5.4 5.8 7 2.3 1.6 5 2.4 7.5 2.4-.3-1.2-.3-2.3.1-3.3"/><path d="m27.8 23.7c.3-2.5 1.5-5 3.5-7.1 2-2 4.8-3.6 8-4.2-3.2-2.3-7.1-3.6-11-3.6-2.3 2.5-3.7 5.4-4.1 8.2-.5 2.8 0 5.6 1.2 7.8.6-.7 1.5-1 2.4-1.1"/><path d="m30.9 24.7c2.6-.5 5.7.4 8.6 2.7 2.4 2.1 4.2 5.4 4.9 9.1 2.1-3.5 3-8 2.2-12.5-3-2.5-6.4-3.6-9.4-3.4-1.5.1-2.8.6-3.9 1.3-.5.4-1.1.7-1.6 1.1-.5.4-1 .8-1.4 1.3.2.1.4.2.6.4"/></g><path d="m14.8 38.2c2.2 3.5 5.6 6.1 9.5 7.4 3.9 1.3 8.1 1.2 12-.3 3.8-1.5 8.6-5 11.2-12 0 0-.8-1.2-1.2-1.5-.8 2.7-1.9 4.7-1.9 4.7l-4.9-9.1c-.8-4.9-4.3-9-8.9-10.3-4.7-1.3-13.7 1.5-16.6 9.3-1.5 3.8-1.4 8.4.8 11.8m16.7-13.7c-.1 0-.2 0-.3 0-.3-.1-.1-.1.3 0" opacity=".1"/><g fill="#b2f25e"><path d="m30.9 24.7c2.7 1.9 5 5.2 6.2 9.4.5 3.2 0 6.7-1.4 9.9 3.6-1.4 6.7-4 8.8-7.6-.7-3.7-2.5-7-4.9-9.1-2.9-2.3-6.1-3.1-8.7-2.6"/><path d="m30.9 24.7c-1 4.3-3.4 8.3-6.8 11.1-2.4 1.3-5.3 1.9-8.4 1.6 2 3.2 5.2 5.7 8.8 6.8 2.8-1.7 5.1-4 6.4-6.7 1.4-4.4 1.3-9 0-12.8"/><path d="m30.3 25.4c-2.5.5-4.5 0-5.3-.9-.7-.5-1.3-1.1-1.8-2-.5-.9-.8-1.9-.7-3.2-.9.5-6.4 3.2-7.7 8 4.6 5.6 12.2 1.7 15.5-1.9"/></g><g fill="#a93feb"><path d="m30.9 24.7c1.3 3.8 1.4 8.4 0 12.9-1.4 2.7-3.6 5-6.4 6.7 3.6 1.2 7.6 1.1 11.1-.3 1.5-3.2 2-6.7 1.4-9.9-1.1-4.2-3.4-7.5-6.1-9.4"/><path d="m30.9 24.7c-3 3-10.7 6.2-16.2 2.6-.8 3.7-.6 7 1 10.2 3.1.3 6-.4 8.4-1.6 3.4-2.9 5.8-6.9 6.8-11.2"/><path d="m30.3 25.4c-1.1-.6 7.5 2.1 8.3 3.8.1-.5.1-1.2 0-1.9l-.1-.6v-.3l-.1-.3c-.1-.4-.2-.9-.4-1.4-.4-1-1-2-1.9-3.1-.5-.5-1-1-1.6-1.5-.3-.2-.6-.4-.9-.6-.3-.2-.6-.4-1-.5-.7-.3-1.3-.5-2-.7-.6-.2-1.2-.3-1.8-.3-1.1-.1-2 0-2.8.1-1.6.3-2.6.8-3.5 1.3-.1 1.3.2 2.4.7 3.2.5.9 1.1 1.5 1.8 2 .8.8 2.8 1.3 5.3.8"/></g><path d="m25.9 36c1.4 1.4 3.3 2 5.6 1.5 2.9-.7 8.4-2.8 8-10.1-.4-.3-1-.7-1-.7s.3 1.4.1 2.6l-13.3 2.7c-.6 1.3-.5 3 .6 4" opacity=".1"/><path d="m30.3 25.4c.3 0 .8.3 1.3.9.5.5 1 1.4 1.4 2.5 1.1 2.7.3 5.7-1.7 8 1.8-.3 3.6-1.2 4.9-2.5.7-.7 1.2-1.4 1.6-2.2.4-.8.7-1.7.8-2.8-2-8.4-10.4-5-8.3-3.9" fill="#b2f25e"/><path d="m30.3 25.4c1.7 3.3-1.7 6.1-5.2 7.2-.2.8-.1 1.8.9 2.8.5.5 1.1.9 1.9 1.2.1 0 .2.1.3.1 0 0 .2 0 .2.1h.2c.2 0 .4.1.7.1.4 0 .9 0 1.4 0 .2 0 .3 0 .5-.1 2-2.3 2.8-5.3 1.7-8-.3-1.1-.9-1.9-1.4-2.5-.5-.6-.9-.9-1.2-.9" fill="#a93feb"/><path d="m30.3 25.4c-1.4 3.8-4.7 4.4-5.2 7.2 2.4-.3 7.6-3.2 5.2-7.2" fill="#b2f25e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f36e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f36e.svg
index b805da0..de1d431 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f36e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f36e.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0e1e5" d="M32,52C15.458,52,2,44.565,2,35.431c0-9.136,13.458-16.567,30-16.567s30,7.432,30,16.567
- C62,44.565,48.542,52,32,52z"/><path fill="#f5f5f5" d="m60.49 34.774c0 8.415-12.755 15.236-28.488 15.236s-28.488-6.821-28.488-15.236c0-8.41 12.755-15.231 28.488-15.231s28.488 6.822 28.488 15.231"/><path fill="#a8521a" d="m51.5 25.78c-3.607-2.05-35.25-8.243-42.17 4.458-1.932 3.541-.354 8.376 5.499 11.704 3.608 2.054 11.253 5.481 16.11 6.254 4.857.77 9.393-2.052 13.223-2.925 6.215-1.409 10.236-4.304 10.579-8.795.343-4.488 2.609-7.371-3.243-10.696"/><ellipse fill="#7d3d15" cx="32" cy="33.724" rx="19.238" ry="10.659"/><path fill="#ffd170" d="m45.599 16.792h-27.2c0 0-3.054 17.33-3.054 17.534 0 3.763 7.455 6.81 16.652 6.81 9.196 0 16.652-3.047 16.652-6.81.001-.205-3.052-17.534-3.052-17.534"/><path fill="#7d3d15" d="m45.877 17.928c0-3.133-6.213-5.674-13.877-5.674s-13.877 2.541-13.877 5.674 6.213 5.674 13.877 5.674c8.469 0 13.877-3.993 13.877-5.674"/><path fill="#a8521a" d="m44.818 17.06c0-2.796-5.756-5.063-12.855-5.063s-12.854 2.267-12.854 5.063c0 2.798 5.754 5.065 12.854 5.065 7.845-.001 12.855-3.565 12.855-5.065"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,52C15.5,52,2,44.6,2,35.4c0-9.1,13.5-16.6,30-16.6s30,7.4,30,16.6C62,44.6,48.5,52,32,52z" fill="#e0e1e5"/><path d="M60.5,34.8C60.5,43.2,47.7,50,32,50S3.5,43.2,3.5,34.8c0-8.4,12.8-15.2,28.5-15.2S60.5,26.4,60.5,34.8z" fill="#f5f5f5"/><path d="m51.5 25.8c-3.6-2-35.2-8.2-42.2 4.5-1.9 3.5-.4 8.4 5.5 11.7 3.6 2.1 11.3 5.5 16.1 6.3 4.9.8 9.4-2.1 13.2-2.9 6.2-1.4 10.2-4.3 10.6-8.8.4-4.6 2.6-7.5-3.2-10.8" fill="#a8521a"/><ellipse cx="32" cy="33.7" rx="19.2" ry="10.7" fill="#7d3d15"/><path d="m45.6 16.8h-27.2c0 0-3.1 17.3-3.1 17.5 0 3.8 7.5 6.8 16.7 6.8 9.2 0 16.7-3 16.7-6.8 0-.2-3.1-17.5-3.1-17.5" fill="#ffd170"/><path d="m45.9 17.9c0-3.1-6.2-5.7-13.9-5.7s-13.9 2.5-13.9 5.7 6.2 5.7 13.9 5.7c8.5 0 13.9-4 13.9-5.7" fill="#7d3d15"/><path d="m44.8 17.1c0-2.8-5.8-5.1-12.9-5.1s-12.9 2.3-12.9 5.1c0 2.8 5.8 5.1 12.9 5.1 7.9-.1 12.9-3.6 12.9-5.1" fill="#a8521a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f36f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f36f.svg
index 07c3a19..031903f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f36f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f36f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8f6453" d="m32.979 15.973l-27.464 6.631c0 0-3.515 6.213-3.515 12.608 0 4.259.895 7.723 4.387 11.449 3.491 3.726 3.129 3.473 3.491 5.285.363 1.812 3.226 10.05 22.345 10.05 0 0 0 0 .002 0 19.12 0 22.309-8.212 22.345-10.05.048-2.438 1.26-3.02 4.752-6.74l-26.343-29.23"/><path fill="#ffce31" d="m55.53 12.455c-1.971-1.243-.688-1.22-1.201-4.21-.49-2.863-5.798-6.245-22.08-6.245-16.292 0-21.623 3.254-22.14 6.245-.512 2.99.695 2.857-1.202 4.21-1.896 1.352-6.07 10.476-4.115 12.289 2.269 2.102 5.498-3.242 10.09-3.242 3.168 0 3.565 6.618 6.207 6.618 2.641 0 11.213-6.618 13.203-6.618 7.395 0 5.811 13.366 12.279 13.366 5.02 0 9.648 15.953 12.939 12.05 5.174-6.137 1.478-31.02-3.984-34.464"/><path fill="#e3a300" d="m53.926 11.863c0 .529-9.411 5.056-21.701 5.056-12.291 0-21.7-4.526-21.7-5.056s9.409 3.396 21.7 3.396c12.29 0 21.701-3.925 21.701-3.396"/><path fill="#724e41" d="m54.617 49.51c0 .529-8.05 6.338-22.4 6.338-14.357 0-22.403-5.809-22.403-6.338 0-.528 8.05 4.421 22.403 4.421 14.355 0 22.4-4.95 22.4-4.421"/><path fill="#e3a300" d="m47.35 7.92c1.09-.407 1.718-.86 1.718-1.343 0-1.693-7.54-3.066-16.841-3.066s-16.84 1.373-16.84 3.066c0 .482.627.936 1.717 1.343 2.736-1.021 8.47-1.725 15.12-1.725 6.653 0 12.387.704 15.12 1.725"/><path fill="#bd8800" d="m47.35 7.92c-2.735-1.021-8.47-1.725-15.12-1.725-6.652 0-12.387.704-15.12 1.725 2.736 1.02 8.47 1.723 15.12 1.723 6.653 0 12.387-.704 15.12-1.723"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m33 16l-27.5 6.6c0 0-3.5 6.2-3.5 12.6 0 4.3.9 7.7 4.4 11.4 3.5 3.7 3.1 3.5 3.5 5.3.3 1.9 3.2 10.1 22.3 10.1 19.1 0 22.3-8.2 22.3-10.1 0-2.4 1.3-3 4.8-6.7l-26.3-29.2" fill="#8f6453"/><path d="m55.5 12.5c-2-1.2-.7-1.2-1.2-4.2-.5-2.9-5.8-6.3-22.1-6.3-16.2 0-21.6 3.3-22.1 6.2-.5 3 .7 2.9-1.2 4.2-1.9 1.4-6.1 10.5-4.1 12.3 2.3 2.1 5.5-3.2 10.1-3.2 3.2 0 3.6 6.6 6.2 6.6 2.6 0 11.2-6.6 13.2-6.6 7.4 0 5.8 13.4 12.3 13.4 5 0 9.6 16 12.9 12.1 5.2-6.2 1.5-31.1-4-34.5" fill="#ffce31"/><path d="m53.9 11.9c0 .5-9.4 5.1-21.7 5.1-12.3 0-21.7-4.5-21.7-5.1s9.4 3.4 21.7 3.4c12.3 0 21.7-4 21.7-3.4" fill="#e3a300"/><path d="m54.6 49.5c0 .5-8 6.3-22.4 6.3-14.4 0-22.4-5.8-22.4-6.3 0-.5 8 4.4 22.4 4.4 14.4 0 22.4-4.9 22.4-4.4" fill="#724e41"/><path d="m47.3 7.9c1.1-.4 1.7-.9 1.7-1.3 0-1.7-7.5-3.1-16.8-3.1s-16.8 1.4-16.8 3.1c0 .5.6.9 1.7 1.3 2.7-1 8.5-1.7 15.1-1.7s12.4.7 15.1 1.7" fill="#e3a300"/><path d="m47.3 7.9c-2.7-1-8.5-1.7-15.1-1.7-6.7 0-12.4.7-15.1 1.7 2.7 1 8.5 1.7 15.1 1.7s12.4-.7 15.1-1.7" fill="#bd8800"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f370.svg b/build/js/jsxc/lib/emojione/assets/svg/1f370.svg
index ebb7596..c42ca1b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f370.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f370.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d3976e"><path d="M57.695 54.677 2 62 2 51.593 57.725 44.07z"/><path d="M57.757 33.18 2 40.906 2 29.931 57.787 21.996z"/></g><path fill="#fff" d="M57.725 44.07 2 51.593 2 40.906 57.757 33.18z"/><path fill="#ef4d3c" d="m20.815 39.718c.188 4.39-3.544 8.441-8.327 9.09-4.774.649-8.864-2.327-9.146-6.691l17.473-2.401"/><path fill="#ff717f" d="m18.567 40.02c.148 3.263-2.626 6.287-6.187 6.774-3.558.483-6.6-1.737-6.801-4.987l12.988-1.787"/><path fill="#ef4d3c" d="m56.16 34.857c-.004 4.443-3.936 8.542-8.776 9.201-4.83.657-8.815-2.353-8.908-6.771l17.684-2.43"/><path fill="#ff717f" d="m53.882 35.17c.006 3.302-2.912 6.362-6.518 6.853-3.602.493-6.564-1.757-6.622-5.05l13.14-1.807"/><path fill="#ef4d3c" d="m21.19 47.624c-.184-4.35 3.589-8.452 8.441-9.118 4.857-.668 8.875 2.371 8.968 6.749l-17.409 2.369"/><path fill="#ff717f" d="m23.423 47.32c-.128-3.231 2.68-6.271 6.275-6.763 3.601-.494 6.584 1.756 6.661 5l-12.936 1.76"/><g fill="#c98659"><path d="m2.984 34.736l2.753 2.03 2.459-2.756-2.753-2.042z"/><path d="m20.764 34.22l2.708 2.04 2.523-2.76-2.712-2.046z"/><path d="m47.46 31.508l2.65 2.046 2.619-2.775-2.649-2.06z"/><path d="m25.616 30.615l2.162 1.635 2.033-2.22-2.165-1.644z"/><path d="m45.581 27.863l-2.08 2.237 2.129 1.636 2.079-2.224z"/><path d="m18.669 28.15l-2.01 2.234 2.183 1.636 2.01-2.22z"/><path d="m8.519 36.38l2.396 1.78 2.175-2.41-2.403-1.787z"/><path d="m14.341 31.3l-1.403 1.564 1.539 1.146 1.403-1.552z"/><path d="m30.765 32.35l1.515 1.152 1.436-1.56-1.516-1.155z"/><path d="m35.14 28.798l1.513 1.162 1.457-1.574-1.518-1.166z"/><path d="m39.686 32.09l1.504 1.15 1.455-1.556-1.505-1.154z"/><path d="m49.638 25.406l-1.508-1.176-1.477 1.591 1.507 1.168z"/><path d="m34.06 34.23l1.511 1.14 1.439-1.55-1.504-1.146z"/><path d="m16.08 36.711l1.532 1.139 1.408-1.55-1.533-1.14z"/><path d="m10.512 30.771l-1.55-1.158-1.395 1.567 1.548 1.16z"/><path d="m54.55 24.23l-1.49 1.582 1.5 1.168 1.49-1.583z"/><path d="m56.03 50.1l-2.58-1.96-2.572 2.659 2.582 1.951z"/><path d="m38.574 50.595l-2.623-1.961-2.509 2.656 2.618 1.95z"/><path d="m12.533 53.19l-2.679-1.95-2.415 2.636 2.675 1.937z"/><path d="m33.786 54.03l-2.092-1.55-1.983 2.1 2.091 1.54z"/><path d="m14.489 56.61l1.939-2.09-2.126-1.551-1.934 2.101z"/><path d="m40.472 56.34l2.01-2.09-2.079-1.551-2 2.099z"/><path d="m50.685 48.51l-2.285-1.727-2.24 2.337 2.28 1.725z"/><path d="m44.764 53.38l1.426-1.484-1.461-1.099-1.429 1.493z"/><path d="m28.78 52.39l-1.49-1.1-1.387 1.484 1.484 1.094z"/><path d="m24.555 55.739l-1.485-1.089-1.375 1.47 1.485 1.09z"/><path d="m20.08 52.631l-1.492-1.101-1.377 1.49 1.494 1.09z"/><path d="m10.687 58.887l1.495 1.075 1.352-1.462-1.494-1.08z"/><path d="m25.543 50.591l-1.493-1.101-1.389 1.492 1.489 1.098z"/><path d="m43.24 48.19l-1.471-1.11-1.429 1.506 1.473 1.104z"/><path d="m48.47 53.884l1.445 1.09 1.435-1.474-1.453-1.1z"/><path d="m6.04 59.971l1.342-1.461-1.502-1.08-1.341 1.464z"/></g><path fill="#8f6453" d="m62 21.577c0-4.271-17.843-8.744-21.735-8.226-16.686 2.219-38.27 16.58-38.27 16.58 16.568-2.167 50.08-6.477 52.973-6.842 1.516-.191 2.428.071 2.428 1.318 0 4.306-.02 30.31-.02 30.31l4.619-.551c0 0 0-28.713 0-32.59"/><path fill="#724e41" d="m55.94 20.948c8.533-1.187-15.456-7.695-19.16-7.215-15.898 2.063-31.963 14.419-31.963 14.419s49.06-6.917 51.13-7.204"/><g fill-rule="evenodd"><path fill="#8cc63e" d="m42.28 10.01l1.93-2.693-4.402-.466-.508-4.072-2.9 1.781-3.483-2.56-.972 10.994 13.1.234z"/><path fill="#ef4d3c" d="m39.776 18.502c-4.138 3.828-13.153 4.267-15.11 2.46-1.974-1.828-1.478-10.131 2.679-13.978 3.061-2.83 7.675-1.503 10.863 1.443 3.177 2.941 4.625 7.239 1.565 10.07"/><g fill="#ffffc4"><path d="m29.25 16.438l-.717.662.717.662.707-.662z"/><path d="m39.468 12.38l-.712.66.712.663.712-.663z"/><path d="m36.06 13.04l-.71.663.71.662.716-.662z"/><path d="m32.785 12.38l-.715.66.715.663.71-.663z"/><path d="m36.55 9.689l-.712.662.712.659.71-.659z"/><path d="m34.471 6.851l-.711.662.711.662.709-.662z"/><path d="m32.07 9.299l-.709.661.709.662.714-.662z"/><path d="m29.12 12.174l-.713.662.713.661.711-.661z"/><path d="m32.958 16.03l-.708.658.708.662.713-.662z"/><path d="m38.21 16.13l-.711.663.711.661.713-.661z"/><path d="m35.35 18.791l-.707.662.707.657.71-.657z"/><path d="m30.669 19.453l-.712.657.712.666.712-.666z"/><path d="m26.23 18.13l-.709.661.709.662.714-.662z"/><path d="m25.747 14.703l-.707.661.707.666.711-.666z"/><path d="m27.935 8.175l-.715.661.715.662.712-.662z"/><path d="m26.23 11.205l-.709.661.709.662.714-.662z"/><path d="m30.873 6l-.713.665.713.662.712-.662z"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d3976e"><path d="M57.7 54.7 2 62 2 51.6 57.7 44.1z"/><path d="M57.8 33.2 2 40.9 2 29.9 57.8 22z"/></g><path fill="#fff" d="M57.7 44.1 2 51.6 2 40.9 57.8 33.2z"/><path d="m20.8 39.7c.2 4.4-3.5 8.4-8.3 9.1-4.8.6-8.9-2.3-9.1-6.7l17.4-2.4" fill="#ef4d3c"/><path d="m18.6 40c.1 3.3-2.6 6.3-6.2 6.8-3.6.5-6.6-1.7-6.8-5l13-1.8" fill="#ff717f"/><path d="m56.2 34.9c0 4.4-3.9 8.5-8.8 9.2-4.8.7-8.8-2.4-8.9-6.8l17.7-2.4" fill="#ef4d3c"/><path d="m53.9 35.2c0 3.3-2.9 6.4-6.5 6.9-3.6.5-6.6-1.8-6.6-5l13.1-1.9" fill="#ff717f"/><path d="m21.2 47.6c-.2-4.3 3.6-8.5 8.4-9.1 4.9-.7 8.9 2.4 9 6.7l-17.4 2.4" fill="#ef4d3c"/><path d="m23.4 47.3c-.1-3.2 2.7-6.3 6.3-6.8 3.6-.5 6.6 1.8 6.7 5l-13 1.8" fill="#ff717f"/><g fill="#c98659"><path d="m3 34.7l2.7 2.1 2.5-2.8-2.8-2z"/><path d="m20.8 34.2l2.7 2.1 2.5-2.8-2.7-2z"/><path d="m47.5 31.5l2.6 2.1 2.6-2.8-2.6-2.1z"/><path d="m25.6 30.6l2.2 1.7 2-2.3-2.2-1.6z"/><path d="m45.6 27.9l-2.1 2.2 2.1 1.6 2.1-2.2z"/><path d="m18.7 28.2l-2 2.2 2.1 1.6 2.1-2.2z"/><path d="m8.5 36.4l2.4 1.8 2.2-2.4-2.4-1.8z"/><path d="m14.3 31.3l-1.4 1.6 1.6 1.1 1.4-1.5z"/><path d="m30.8 32.4l1.5 1.1 1.4-1.6-1.5-1.1z"/><path d="m35.1 28.8l1.6 1.2 1.4-1.6-1.5-1.2z"/><path d="m39.7 32.1l1.5 1.1 1.4-1.5-1.5-1.2z"/><path d="m49.6 25.4l-1.5-1.2-1.4 1.6 1.5 1.2z"/><path d="m34.1 34.2l1.5 1.2 1.4-1.6-1.5-1.1z"/><path d="m16.1 36.7l1.5 1.1 1.4-1.5-1.5-1.1z"/><path d="m10.5 30.8l-1.5-1.2-1.4 1.6 1.5 1.1z"/><path d="m54.6 24.2l-1.5 1.6 1.5 1.2 1.4-1.6z"/><path d="m56 50.1l-2.6-2-2.5 2.7 2.6 2z"/><path d="m38.6 50.6l-2.6-2-2.6 2.7 2.7 1.9z"/><path d="m12.5 53.2l-2.6-2-2.5 2.7 2.7 1.9z"/><path d="m33.8 54l-2.1-1.5-2 2.1 2.1 1.5z"/><path d="m14.5 56.6l1.9-2.1-2.1-1.5-1.9 2.1z"/><path d="m40.5 56.3l2-2.1-2.1-1.5-2 2.1z"/><path d="m50.7 48.5l-2.3-1.7-2.2 2.3 2.2 1.7z"/><path d="m44.8 53.4l1.4-1.5-1.5-1.1-1.4 1.5z"/><path d="m28.8 52.4l-1.5-1.1-1.4 1.5 1.5 1.1z"/><path d="m24.6 55.7l-1.5-1-1.4 1.4 1.5 1.1z"/><path d="m20.1 52.6l-1.5-1.1-1.4 1.5 1.5 1.1z"/><path d="m10.7 58.9l1.5 1.1 1.3-1.5-1.5-1.1z"/><path d="m25.5 50.6l-1.5-1.1-1.3 1.5 1.5 1.1z"/><path d="m43.2 48.2l-1.4-1.1-1.5 1.5 1.5 1.1z"/><path d="m48.5 53.9l1.4 1.1 1.4-1.5-1.4-1.1z"/><path d="m6 60l1.4-1.5-1.5-1.1-1.4 1.5z"/></g><path d="m62 21.6c0-4.3-17.8-8.7-21.7-8.2-16.7 2.2-38.3 16.5-38.3 16.5 16.6-2.2 50.1-6.5 53-6.8 1.5-.2 2.4.1 2.4 1.3 0 4.3 0 30.3 0 30.3l4.6-.6c0 .1 0-28.6 0-32.5" fill="#8f6453"/><path d="m55.9 20.9c8.5-1.2-15.5-7.7-19.2-7.2-15.9 2.1-32 14.4-32 14.4s49.2-6.9 51.2-7.2" fill="#724e41"/><path fill="#8cc63e" d="m42.3 10l1.9-2.7-4.4-.4-.5-4.1-2.9 1.8-3.5-2.6-1 11 13.1.2z"/><path d="m39.8 18.5c-4.1 3.8-13.2 4.3-15.1 2.5-2-1.8-1.5-10.1 2.7-14 3.1-2.8 7.7-1.5 10.9 1.4 3.1 3 4.5 7.3 1.5 10.1" fill="#ef4d3c"/><g fill="#ffffc4"><path d="m29.2 16.4l-.7.7.7.7.8-.7z"/><path d="m39.5 12.4l-.7.6.7.7.7-.7z"/><path d="m36.1 13l-.7.7.7.7.7-.7z"/><path d="m32.8 12.4l-.7.6.7.7.7-.7z"/><path d="m36.5 9.7l-.7.7.7.6.8-.6z"/><path d="m34.5 6.9l-.7.6.7.7.7-.7z"/><path d="m32.1 9.3l-.7.7.7.6.7-.6z"/><path d="m29.1 12.2l-.7.6.7.7.7-.7z"/><path d="m33 16l-.8.7.8.7.7-.7z"/><path d="m38.2 16.1l-.7.7.7.7.7-.7z"/><path d="m35.4 18.8l-.8.7.8.6.7-.6z"/><path d="m30.7 19.5l-.7.6.7.7.7-.7z"/><path d="m26.2 18.1l-.7.7.7.7.7-.7z"/><path d="m25.7 14.7l-.7.7.7.6.8-.6z"/><path d="m27.9 8.2l-.7.6.7.7.7-.7z"/><path d="m26.2 11.2l-.7.7.7.6.7-.6z"/><path d="m30.9 6l-.7.7.7.6.7-.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f371.svg b/build/js/jsxc/lib/emojione/assets/svg/1f371.svg
index 9ef3a80..dbc80e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f371.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f371.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#3e4347" d="M62,55.628C62,56.385,61.385,57,60.625,57H3.377C2.617,57,2,56.385,2,55.628V8.373
- C2,7.616,2.617,7,3.377,7h57.248C61.385,7,62,7.616,62,8.373V55.628z" id="0"/><use xlink:href="#0"/><g fill="#ff5760"><path d="m36.13 36.809c0-1.511-1.238-2.747-2.752-2.747h-24.496c-1.513 0-2.752 1.236-2.752 2.747v13.323c0 1.511 1.239 2.749 2.752 2.749h24.496c1.514 0 2.752-1.238 2.752-2.749v-13.323"/><path d="m43.01 34.06c-1.514 0-2.752 1.236-2.752 2.747v13.323c0 1.511 1.238 2.749 2.752 2.749h12.11c1.514 0 2.752-1.238 2.752-2.749v-13.323c0-1.511-1.238-2.747-2.752-2.747h-12.11"/><path d="m23.745 13.869c0-1.512-1.241-2.748-2.754-2.748h-12.11c-1.513 0-2.752 1.236-2.752 2.748v13.323c0 1.511 1.239 2.747 2.752 2.747h12.11c1.513 0 2.754-1.236 2.754-2.747v-13.323"/><path d="m30.625 11.12c-1.516 0-2.754 1.236-2.754 2.748v13.323c0 1.511 1.238 2.747 2.754 2.747h24.494c1.514 0 2.752-1.236 2.752-2.747v-13.323c0-1.512-1.238-2.748-2.752-2.748h-24.494"/></g><path fill="#fff" d="m33.514 41.41c0-1.139-.923-2.062-2.063-2.062 1.141 0 2.063-.921 2.063-2.06 0-1.138-.923-2.06-2.063-2.06-1.142 0-2.064.922-2.064 2.06 0-1.138-.924-2.06-2.065-2.06-1.138 0-2.063.922-2.063 2.06 0-1.138-.926-2.06-2.063-2.06-1.141 0-2.065.922-2.065 2.06 0-1.138-.923-2.06-2.063-2.06s-2.068.923-2.068 2.061c0-1.138-.923-2.06-2.063-2.06-1.139 0-2.063.922-2.063 2.06 0-1.138-.926-2.06-2.064-2.06-1.141 0-2.064.922-2.064 2.06 0 1.139.924 2.06 2.064 2.06-1.141 0-2.064.923-2.064 2.062 0 1.138.924 2.06 2.064 2.06-1.141 0-2.064.923-2.064 2.062 0 1.137.924 2.06 2.064 2.06-1.141 0-2.064.924-2.064 2.062 0 1.137.924 2.06 2.064 2.06 1.139 0 2.064-.923 2.064-2.06 0 1.137.924 2.06 2.063 2.06 1.141 0 2.063-.923 2.063-2.06 0 1.137.925 2.06 2.065 2.06s2.063-.923 2.063-2.06c0 1.137.925 2.06 2.065 2.06 1.138 0 2.063-.923 2.063-2.06 0 1.137.925 2.06 2.063 2.06 1.142 0 2.065-.923 2.065-2.06 0 1.137.923 2.06 2.064 2.06 1.141 0 2.063-.923 2.063-2.06 0-1.138-.923-2.062-2.063-2.062 1.141 0 2.063-.923 2.063-2.06 0-1.139-.923-2.062-2.063-2.062 1.143-.001 2.066-.923 2.066-2.061"/><circle fill="#ff5760" cx="21.13" cy="43.47" r="2.064"/><ellipse fill="#3e4347" cx="14.937" cy="20.531" rx="7.981" ry="7.966"/><ellipse fill="#c94747" cx="14.938" cy="20.531" rx="6.386" ry="6.374"/><path fill="#fbbf67" d="m54.844 37.15c0-1.062-.861-1.922-1.926-1.922-.352 0-.68.096-.963.259-.285-.163-.613-.259-.965-.259-.35 0-.68.096-.963.259-.283-.163-.611-.259-.963-.259s-.68.096-.963.259c-.283-.163-.613-.259-.963-.259-.352 0-.68.096-.965.259-.283-.163-.611-.259-.963-.259-1.064 0-1.926.86-1.926 1.922-1.064 0-1.928.862-1.928 1.925 0 1.062.863 1.921 1.928 1.921 0 1.063.861 1.925 1.926 1.925.352 0 .68-.096.963-.261.285.165.613.261.965.261.35 0 .68-.096.963-.261.283.165.611.261.963.261s.68-.096.963-.261c.283.165.613.261.963.261.352 0 .68-.096.965-.261.283.165.611.261.963.261 1.064 0 1.926-.862 1.926-1.925 1.064 0 1.928-.859 1.928-1.921-.001-1.062-.864-1.925-1.928-1.925"/><g fill="#89664c"><path d="m45.998 37.24c.332 1.188.332 2.476 0 3.664-.119.429.545.608.664.183.363-1.306.363-2.727 0-4.03-.119-.427-.783-.245-.664.182"/><path d="m48.75 37.24c.332 1.188.332 2.476 0 3.664-.119.429.545.608.664.183.363-1.306.363-2.727 0-4.03-.119-.427-.783-.245-.664.182"/><path d="m51.5 37.24c.332 1.188.332 2.476 0 3.664-.119.429.545.608.664.183.363-1.306.363-2.727 0-4.03-.119-.427-.783-.245-.664.182"/></g><path fill="#fbbf67" d="m54.99 45.942c0-1.063-.861-1.923-1.926-1.923-.352 0-.68.096-.963.26-.283-.164-.613-.26-.963-.26-.352 0-.68.096-.965.26-.283-.164-.611-.26-.963-.26s-.68.096-.963.26c-.283-.164-.611-.26-.963-.26s-.68.096-.963.26c-.285-.164-.613-.26-.965-.26-1.063 0-1.926.86-1.926 1.923-1.064 0-1.928.861-1.928 1.924 0 1.062.863 1.922 1.928 1.922 0 1.063.863 1.924 1.926 1.924.352 0 .68-.096.965-.26.283.164.611.26.963.26s.68-.096.963-.26c.283.164.611.26.963.26s.68-.096.963-.26c.285.164.613.26.965.26.35 0 .68-.096.963-.26.283.164.611.26.963.26 1.064 0 1.926-.86 1.926-1.924 1.064 0 1.928-.86 1.928-1.922 0-1.062-.863-1.924-1.928-1.924"/><g fill="#89664c"><path d="m46.15 46.03c.332 1.188.332 2.476 0 3.664-.119.429.545.607.664.182.363-1.305.363-2.727 0-4.03-.12-.427-.784-.246-.664.182"/><path d="m48.896 46.03c.332 1.188.332 2.476 0 3.664-.119.429.545.607.664.182.363-1.305.363-2.727 0-4.03-.119-.427-.783-.246-.664.182"/><path d="m51.648 46.03c.332 1.188.332 2.476 0 3.664-.119.429.545.607.664.182.363-1.305.363-2.727 0-4.03-.119-.427-.783-.246-.664.182"/></g><g fill="#83bf4f"><path d="m32.586 22.75c.049-.023.097-.044.146-.064-.101.045-.209.091-.312.131 1.46-.553 2.931-.933 4.473-1.176-.088.009-.176.02-.263.033 1.571-.217 3.188-.224 4.76-.016-.079-.012-.158-.021-.238-.029.648.108 1.29.221 1.926.392.446.12.891.258 1.325.418-.034-.013.892.354.397.146.874.368 1.883.635 2.578-.232.563-.698.506-1.92-.268-2.454-.982-.682-2.455-1.01-3.603-1.285-1.325-.32-2.691-.512-4.057-.53-2.792-.041-5.724.434-8.289 1.56-2.207.967-.783 4.136 1.425 3.106"/><path d="m32.586 27.352c.05-.022.097-.044.146-.065-.1.047-.209.093-.312.132 1.463-.544 2.928-.937 4.473-1.176-.088.009-.176.021-.263.034 1.581-.21 3.177-.208 4.76-.018-.079-.011-.158-.021-.238-.028.647.111 1.29.22 1.926.391.446.12.891.259 1.325.418-.033-.011.891.356.397.146.871.375 1.885.632 2.578-.23.563-.702.506-1.921-.268-2.456-.982-.681-2.455-1.01-3.603-1.282-1.325-.32-2.691-.511-4.057-.53-2.792-.043-5.723.436-8.289 1.56-2.208.963-.782 4.133 1.425 3.104"/><path d="m32.586 18.15c.05-.023.097-.045.146-.065-.101.047-.209.093-.312.134 1.46-.551 2.93-.94 4.473-1.176-.088.008-.176.02-.263.031 1.572-.208 3.188-.231 4.76-.016-.079-.011-.158-.02-.238-.03.648.111 1.29.223 1.926.393.447.12.891.261 1.325.418-.033-.011.891.355.397.146.869.378 1.886.629 2.578-.231.563-.701.506-1.921-.268-2.455-.983-.681-2.454-1.01-3.603-1.284-1.325-.32-2.691-.51-4.057-.531-2.794-.04-5.722.437-8.289 1.562-2.208.968-.783 4.135 1.425 3.104"/></g><path fill-rule="evenodd" fill="#dae3ea" d="m57.11 19.75c-.001-.411-.573-.566-.69-.93.063-.364.482-.512.646-.825.207-.399-.378-.697-.569-.956-.314-.424.284-.91.043-1.328-.209-.357-.799-.192-1.076-.469-.278-.277-.109-.867-.471-1.078-.356-.207-.79.23-1.167.128-.386-.103-.642-.896-1.114-.652-.341.178-.517.704-.958.656-.315-.034-.867-.394-1.103-.02-.203.323-.093.87-.499 1.049-.39.171-1.079.11-.943.729.096.432.303.757-.063 1.116-.282.278-.668.563-.317.959.191.215.697.482.454.814-.253.343-.873.638-.456 1.109.212.239.728.521.456.891-.192.26-.771.557-.566.954.125.243.729.55.647.862-.102.387-.894.644-.646 1.115.179.341.707.515.661.958-.031.316-.387.871-.014 1.104.325.204.873.094 1.052.501.172.392.111 1.081.731.948.435-.092.76-.3 1.12.069.279.286.564.673.963.318.332-.299.5-.637 1-.499.547.15.885.244 1.034-.411.117-.509.267-.659.776-.776.498-.112.624-.333.474-.82-.154-.501-.099-.704.282-1.06.481-.451.255-.713-.151-1.106-.721-.701.93-.975.309-1.675-.155-.177-.61-.446-.535-.731.099-.379.691-.524.69-.944"/><g fill="#839391"><path d="m50.31 16.728c.187-.368.018-.99.429-1.222.336-.192.885.17 1.129.067.363-.208.565-.749 1.051-.726.437.021.681.66.955.721.386.044.843-.272 1.201-.035.383.221.222.867.396 1.21-.284-.267-.259-.715-.56-.954-.203-.135-.803.328-1.141.222-.356-.092-.579-.668-.91-.668-.136 0-.556.579-.84.655-.421.086-.775-.243-1.18-.206-.241.151-.28.703-.53.936"/><path d="m50.31 20.728c.187-.368.018-.991.429-1.224.336-.189.873.154 1.129.069.362-.208.565-.75 1.051-.727.437.022.682.663.955.722.386.044.844-.272 1.201-.034.384.222.221.866.396 1.208-.284-.266-.259-.714-.56-.954-.203-.135-.803.33-1.141.222-.355-.091-.58-.667-.91-.667-.136 0-.556.58-.84.657-.422.084-.775-.244-1.18-.209-.241.151-.28.704-.53.937"/><path d="m50.31 18.729c.187-.368.018-.992.429-1.224.336-.19.885.17 1.129.067.363-.206.565-.748 1.051-.725.437.021.681.662.955.721.386.044.843-.272 1.201-.035.383.221.222.866.396 1.209-.284-.266-.259-.714-.56-.954-.203-.135-.803.33-1.141.222-.356-.091-.579-.667-.91-.667-.136 0-.556.581-.84.656-.422.085-.775-.245-1.18-.207-.241.15-.28.702-.53.937"/></g><g fill="#fc97b2"><path d="m55.31 24.396c-.005.017-.008.024-.012.039.007-.021.012-.039.012-.039"/><path d="m55.29 24.436c-.004.011-.007.021-.011.035.003-.011.007-.024.011-.035"/><path d="m55.26 24.536c-.007.023-.006.019 0 0"/><path d="m51.567 24.719c-.912-1.061-.35-3.107 1.257-2.913 1.303.157 1.73 2.374.275 2.216-.562-.061-.976-.907-.334-1.19.609-.287.747.415.672.777.787-.581-.426-1.554-1.123-.99-.653.525-.425 1.512.258 1.88 1.945 1.05 2.96-2.465.771-3-1.967-.481-3.172 2.119-2.105 3.592 1.084 1.497 3.53 1.056 4.068-.692-.585.308-.885.971-1.713 1.096-.761.11-1.528-.195-2.026-.775"/><path d="m55.27 24.503c-.004.013-.007.024-.01.033.003-.009.007-.017.01-.033"/><path d="m55.28 24.471c-.004.01-.008.023-.011.032.004-.011.007-.022.011-.032"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m62 55.6c0 .8-.6 1.4-1.4 1.4h-57.2c-.8 0-1.4-.6-1.4-1.4v-47.2c0-.8.6-1.4 1.4-1.4h57.2c.8 0 1.4.6 1.4 1.4v47.2" fill="#3e4347" id="0"/><use xlink:href="#0"/><g fill="#ff5760"><path d="m36.1 36.8c0-1.5-1.2-2.7-2.8-2.7h-24.4c-1.5 0-2.8 1.2-2.8 2.7v13.3c0 1.5 1.2 2.7 2.8 2.7h24.5c1.5 0 2.8-1.2 2.8-2.7-.1 0-.1-13.3-.1-13.3"/><path d="m23.7 13.9c0-1.5-1.2-2.7-2.8-2.7h-12c-1.5 0-2.8 1.2-2.8 2.7v13.3c0 1.5 1.2 2.7 2.8 2.7h12.1c1.5 0 2.8-1.2 2.8-2.7-.1 0-.1-13.3-.1-13.3"/><path d="m30.6 11.1c-1.5 0-2.8 1.2-2.8 2.7v13.3c0 1.5 1.2 2.7 2.8 2.7h24.5c1.5 0 2.8-1.2 2.8-2.7v-13.2c0-1.5-1.2-2.7-2.8-2.7h-24.5z"/></g><path d="m33.5 41.4c0-1.1-.9-2.1-2.1-2.1 1.1 0 2.1-.9 2.1-2.1 0-1.1-.9-2.1-2.1-2.1-1.1 0-2.1.9-2.1 2.1 0-1.1-.9-2.1-2.1-2.1-1.1 0-2.1.9-2.1 2.1 0-1.1-.9-2.1-2.1-2.1-1.1 0-2.1.9-2.1 2.1 0-1.1-.9-2.1-2.1-2.1s-1.8 1.1-1.8 2.2c0-1.1-.9-2.1-2.1-2.1-1.1 0-2.1.9-2.1 2.1 0-1.1-.9-2.1-2.1-2.1-1.1 0-2.1.9-2.1 2.1 0 1.1.9 2.1 2.1 2.1-1.1 0-2.1.9-2.1 2.1 0 1.1.9 2.1 2.1 2.1-1.1 0-2.1.9-2.1 2.1 0 1.1.9 2.1 2.1 2.1-1.1 0-2.1.9-2.1 2.1 0 1.1.9 2.1 2.1 2.1 1.1 0 2.1-.9 2.1-2.1 0 1.1.9 2.1 2.1 2.1 1.1 0 2.1-.9 2.1-2.1 0 1.1.9 2.1 2.1 2.1s2.1-.9 2.1-2.1c0 1.1.9 2.1 2.1 2.1 1.1 0 2.1-.9 2.1-2.1 0 1.1.9 2.1 2.1 2.1 1.1 0 2.1-.9 2.1-2.1 0 1.1.9 2.1 2.1 2.1 1.1 0 2.1-.9 2.1-2.1 0-1.1-.9-2.1-2.1-2.1 1.1 0 2.1-.9 2.1-2.1 0-1.1-.9-2.1-2.1-2.1.9-.1 1.8-1.1 1.8-2.2" fill="#fff"/><circle cx="21.1" cy="43.5" r="2.1" fill="#ff5760"/><ellipse cx="14.9" cy="20.5" rx="8" ry="8" fill="#3e4347"/><ellipse cx="14.9" cy="20.5" rx="6.4" ry="6.4" fill="#c94747"/><path d="m57.1 19.8c0-.4-.6-.6-.7-.9.1-.4.5-.5.6-.8.2-.4-.4-.7-.6-1-.3-.4.3-.9 0-1.3-.2-.4-.8-.2-1.1-.5-.3-.3-.1-.9-.5-1.1-.4-.2-.8.2-1.2.1-.4-.1-.6-.9-1.1-.7-.3.2-.5.7-1 .7-.3 0-.9-.4-1.1 0-.2.3-.1.9-.5 1-.4.2-1.1.1-.9.7.1.4.3.8-.1 1.1-.3.3-.7.6-.3 1 .2.2.7.5.5.8-.3.3-.9.6-.5 1.1.2.2.7.5.5.9-.2.3-.8.6-.6 1 .1.2.7.5.6.9-.1.4-.9.6-.6 1.1.2.3.7.5.7 1 0 .3-.4.9 0 1.1.3.2.9.1 1.1.5.2.4.1 1.1.7.9.4-.1.8-.3 1.1.1.3.3.6.7 1 .3.3-.3.5-.6 1-.5.5.1.9.2 1-.4.1-.5.3-.7.8-.8.5-.1.6-.3.5-.8-.2-.5-.1-.7.3-1.1.5-.5.3-.7-.2-1.1-.7-.7.9-1 .3-1.7-.2-.2-.6-.4-.5-.7.2-.4.8-.5.8-.9" fill="#dae3ea"/><g fill="#839391"><path d="m50.3 16.7c.2-.4 0-1 .4-1.2.3-.2.9.2 1.1.1.4-.2.6-.7 1.1-.7.4 0 .7.7 1 .7.4 0 .8-.3 1.2 0 .4.2.2.9.4 1.2-.3-.3-.3-.7-.6-1-.2-.1-.8.3-1.1.2-.4-.1-.6-.7-.9-.7-.1 0-.6.6-.8.7-.4.1-.8-.2-1.2-.2-.3.1-.3.7-.6.9"/><path d="m50.3 20.7c.2-.4 0-1 .4-1.2.3-.2.9.2 1.1.1.4-.2.6-.8 1.1-.7.4 0 .7.7 1 .7.4 0 .8-.3 1.2 0 .4.2.2.9.4 1.2-.3-.3-.3-.7-.6-1-.2-.1-.8.3-1.1.2-.4-.1-.6-.7-.9-.7-.1 0-.6.6-.8.7-.4.1-.8-.2-1.2-.2-.3.1-.3.7-.6.9"/><path d="m50.3 18.7c.2-.4 0-1 .4-1.2.3-.2.9.2 1.1.1.4-.2.6-.7 1.1-.7.4 0 .7.7 1 .7.4 0 .8-.3 1.2 0 .4.2.2.9.4 1.2-.3-.3-.3-.7-.6-1-.2-.1-.8.3-1.1.2-.4-.1-.6-.7-.9-.7-.1 0-.6.6-.8.7-.4.1-.8-.2-1.2-.2-.3.1-.3.7-.6.9"/></g><g fill="#fc97b2"><path d="m55.3 24.4c0 0 0 0 0 0"/><path d="m55.3 24.4c0 0 0 .1 0 0"/><path d="m55.3 24.5c0 .1 0 .1 0 0"/><path d="m51.6 24.7c-.9-1.1-.3-3.1 1.3-2.9 1.3.2 1.7 2.4.3 2.2-.6-.1-1-.9-.3-1.2.6-.3.7.4.7.8.8-.6-.4-1.6-1.1-1-.7.5-.4 1.5.3 1.9 1.9 1 3-2.5.8-3-2-.5-3.2 2.1-2.1 3.6 1.1 1.5 3.5 1.1 4.1-.7-.6.3-.9 1-1.7 1.1-1.1.1-1.8-.2-2.3-.8"/></g><path d="m55.3 24.5c0 0 0 0 0 0" fill="#fc97b2" id="1"/><use xlink:href="#1"/><g fill="#83bf4f"><path d="m45.4 18c-4.2-1.3-8.7-1.3-13 0-1.7.6-3-2.4-.9-3.1 4.8-1.5 10-1.5 14.8 0 2.1.7.8 3.7-.9 3.1"/><path d="m45.4 22.6c-4.2-1.3-8.7-1.3-13 0-1.7.6-3-2.4-.9-3.1 4.8-1.5 10-1.5 14.8 0 2.1.7.8 3.7-.9 3.1"/><path d="m45.4 27.2c-4.2-1.3-8.7-1.3-13 0-1.7.6-3-2.4-.9-3.1 4.8-1.5 10-1.5 14.8 0 2.1.7.8 3.7-.9 3.1"/></g><path d="m43 34.1c-1.5 0-2.8 1.2-2.8 2.7v13.3c0 1.5 1.2 2.7 2.8 2.7h12.1c1.5 0 2.8-1.2 2.8-2.7v-13.3c0-1.5-1.2-2.7-2.8-2.7 0 0-12.1 0-12.1 0" fill="#ff5760"/><path d="m54.8 37.1c0-1.1-1.3-1.8-1.9-1.9-.5-.1-1.6.1-1.9.3-.3-.2-1.4-.5-1.9-.5-.5 0-1.8.3-2.1.5-.3-.2-1.3-.3-1.8-.3-.7.1-1.9.9-1.9 1.9-1.1 0-1.9.9-1.9 1.9s.9 1.9 1.9 1.9c0 1.1 1.3 1.8 1.9 1.9.4.1 1.5-.1 1.8-.3.3.2 1.5.3 2.1.3.5 0 1.7-.2 1.9-.3.3.2 1.4.3 1.9.3.7-.1 1.9-.9 1.9-1.9 1.1 0 1.9-.9 1.9-1.9s-.8-1.9-1.9-1.9" fill="#fbbf67"/><g fill="#89664c"><path d="m51.6 36.5h1v5h-1z"/><path d="m45.6 36.5h1v5h-1z"/><path d="m48.6 36.5h1v5h-1z"/></g><path d="m54.8 46.1c0-1.1-1.3-1.8-1.9-1.9-.5-.1-1.6.1-1.9.3-.3-.2-1.4-.5-1.9-.5-.5 0-1.8.3-2.1.5-.3-.2-1.3-.3-1.8-.3-.7.1-1.9.9-1.9 1.9-1.1 0-1.9.9-1.9 1.9s.9 1.9 1.9 1.9c0 1.1 1.3 1.8 1.9 1.9.4.1 1.5-.1 1.8-.3.3.2 1.5.3 2.1.3.5 0 1.7-.2 1.9-.3.3.2 1.4.3 1.9.3.7-.1 1.9-.9 1.9-1.9 1.1 0 1.9-.9 1.9-1.9s-.8-1.9-1.9-1.9" fill="#fbbf67"/><g fill="#89664c"><path d="m51.6 45.5h1v5h-1z"/><path d="m45.6 45.5h1v5h-1z"/><path d="m48.6 45.5h1v5h-1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f372.svg b/build/js/jsxc/lib/emojione/assets/svg/1f372.svg
index 01b7658..52663af 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f372.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f372.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m32.498 44.31c-13.195 0-24.2-4.071-26.741-9.481 4.64 14.06 1.871 27.17 26.741 27.17 24.869 0 22.1-13.12 26.741-27.17-2.537 5.41-13.546 9.482-26.741 9.482"/><path fill="#6f7980" d="m20.15 20.466c14.13-3.891 46.5 1.971 39.439 15.413 3.86 4.379 5.298 9.06-13.333 8.808-28.592 6.751-52.18-7.224-41.74-17.667-2.52-5.124 2.994-7.736 15.634-6.554"/><path fill="#3e4347" d="m32.498 43.672c12.488 0 22.907-3.854 25.309-8.974.159-.483.311-.975.457-1.469.043-.261.065-.521.065-.79 0-6.199-11.564-11.23-25.831-11.23s-25.831 5.03-25.831 11.23c0 .269.021.529.064.79.146.494.298.985.458 1.469 2.402 5.12 12.821 8.974 25.309 8.974"/><path fill="#fbbf67" d="m32.498 43.672c12.488 0 22.907-3.854 25.309-8.974.05-.155.1-.31.149-.464-2.086-5.291-12.688-9.321-25.458-9.321-12.771 0-23.372 4.03-25.458 9.321.05.154.099.312.149.464 2.402 5.12 12.821 8.974 25.309 8.974"/><path fill="#d33b23" d="m36.16 30.668c-4.958 0-10.237 3.337-14.337 3.337s-3.561.921-2.037 1.329c1.522.408 2.201 1.46 7.06 1.46 3.232 0 6.081-3.493 7.08-4.067.996-.576 12.469-2.059 2.239-2.059"/><g fill="#ff8736"><path d="m31.18 28.887c.302-.981 1.152-1.786 1.866-1.853.713-.065 1.921-.528 2.524 0 .604.529 1.811 1.918 1.865 2.58.055.661 0 2.182-1.316 2.844 0 0-.568.553-2.052 0-2.832-1.059-3.276-2.301-2.887-3.571"/><path d="m26.956 37.02c-.517.274-.714 1.851-.494 2.247.22.398.823 1.522 1.701 1.654.878.133 2.688.264 3.457-.662s.713-2.049 0-2.91c-.714-.858-2.305-1.585-4.664-.329"/><path d="m43.967 28.887c-.619.653.658 2.446 1.921 2.844 1.262.396 2.688.595 3.731.396 1.042-.198 1.536-1.653 1.481-2.579s-.549-1.85-2.744-1.85c-2.194 0-3.511.263-4.389 1.189"/><path d="m38.811 36.27c-.394.337-.825 1.07-.96 1.629l-.163.68c-.134.56-.098 1.389.082 1.843.179.454.719.777 1.198.715l5.498-.702c.48-.063.993-.565 1.139-1.12l.182-.688c.146-.555-.013-1.346-.354-1.76l-.13-.159c-.341-.412-1-.865-1.472-1.01l-.549-.164c-.469-.141-1.247-.256-1.729-.256h-.714c-.482 0-1.199.276-1.593.614l-.435.373"/><path d="m15.926 28.556c0 0 .494-1.389 1.207-1.785.714-.397 1.592-.926 2.415-.926s1.701.065 2.194.727c.494.662 1.317 1.654.934 2.514-.385.859-1.372 2.447-2.141 2.579-.767.131-3.347-3.109-4.609-3.109"/></g><g fill="#d3976e"><path d="m15.39 34.778c.6.254.274-.727.769-2.173.139-.401-1.401-.515-2.033-.906-.633-.393-1.951-1.178-2.227 0-.275 1.176-.797 2.059-.192 2.327.605.27 3.159.531 3.683.752"/><path d="m20.2 36.968c-.226-.23.514-2.288.514-2.55s.439-.326 1.466 0c1.026.327 2.346.98 2.785 1.014.439.032.66.483.587 1.144-.184 1.632-4.82.926-5.352.392"/><path d="m26.648 33.27c.242-.765 1.686-2.173 2.528-2.197.844-.023 2.675 1.249 3.151 1.87s-.221 1.871-.221 1.871-2.345-.745-4.03-.621-1.548-.545-1.428-.923"/><path d="m27.968 27.374c-.508-.12 1.575-1.829 2.235-1.57.659.264 2.638 1.21 2.895 1.57.256.359-.604 1.078-5.13 0"/><path d="m40.33 27.552c-.426.178-1.613 1.668-1.539 2.058.072.394.659 2.811 2.308 3.138 1.649.326 2.641.556 3.078 0 .904-1.149-1.1-1.635-1.173-2.287-.072-.655-1.501-3.399-2.674-2.909"/><path d="m42.3 38.993c-.604-.352-2.086.228-2.524-.23-.44-.456-1.21-.064-1.649-.456-.44-.393-1.612.196-1.43 1.764.184 1.569.586 2.94 1.686 2.94s1.648-.556 2.456-.75c.806-.198 1.648-.387 1.868-1.093.22-.705.213-1.816-.407-2.175"/><path d="m53.622 34.35c-.232.712-.454 1.209-1.346 1.738-.891.529-2.495 1-2.93 1.593s-1.956.613-2.517-.161c-.561-.777-.669-3.309-.091-3.166.579.144 1.052.068 1.26-.287.209-.356 1.566-1.506 2.951-1.188 1.388.316.785-.75 1.936-.262 1.15.485.892 1.259.737 1.733"/></g><g fill="#83bf4f"><path d="m10.309 36.747l.667-.161-.667-.795-.668.795.668.161"/><path d="m13.289 37.665l-.976 1.177.026.151.974.217.92-.19.031-.178-.975-1.177"/><path d="m12.877 28.985l-.213.695.603.098.655-.117-.143-.581-.902-.095"/><path d="m16.746 32.23l-.29 1.02.832.114.902-.134-.19-.866-1.254-.134"/><path d="m24.568 25.08l-.697.841.005.031.653.098.741-.125v-.004l-.702-.841"/><path d="m27.05 24.505l-.641.771.03.18.611.082.61-.082.031-.18-.641-.771"/><path d="m27.691 29.946l-.808.974.039.23.773.17.765-.17.039-.23-.808-.974"/><path d="m35.27 24.498l-.808.974.053.316.665.084.85-.142.05-.258-.81-.974"/><path d="m37.525 24.635l-.779.939.041.245.767.125.706-.106.05-.264-.785-.939"/><path d="m35.74 39.21l-.779.94.029.18.726.09.776-.1.029-.17-.781-.94"/><path d="m36.688 35.483l-.834 1.01.04.241.79.099.8-.102.04-.238-.836-1.01"/><path d="m37.38 33.27l-.747.9.056.34.671.107.72-.124.06-.323-.76-.9"/><path d="m44.851 33.973l-.831 1.01.04.281.733.08.852-.11.043-.251-.837-1.01"/><path d="m45.673 25.563l-.863 1.04.039.236.717.096.943-.166.027-.166-.863-1.04"/><path d="m47.826 32.1l-.863 1.04.03.19.789.076.88-.106.027-.16-.863-1.04"/><path d="m47.2 39.605l-.541 1.245.711.066.88-.105v-.561l-1.05-.645"/><path d="m52.735 39.03l-.018-.517-1.125-.69-.582 1.217.826.08.899-.09"/><path d="m39.703 25.796l-.835 1.01.04.247.79.09.8-.1.041-.237-.836-1.01"/><path d="m16.541 35.18l-.78.94.024.14.692.05.823-.06.021-.13-.78-.94"/></g><path fill="#d3976e" d="m32.494 40.723c-.97-.808-2.151-1.306-2.954-1.109s-1.866.285-2.488-.036c-.623-.324-1.649.195-1.869.57-.22.381-.952 1.131-.55 1.785.403.653 6.109 1.498 7.861.393.934-.589.328-1.331 0-1.603"/><g fill="#699635"><path d="m48.848 35.816l4.232.454-.267-.772.397-.148 1.1.73.08-.423-.14-.547 1.693.19-.943-.921-.201-.059.671-.99.03-.657-2.94 1.822.382-1.405-2.025 2.07-2.341.482.272.174"/><path d="m28.971 28.07l.309.03-1.09-.581-1.641-.009.491-1.36.543-.34-.718-.141-.725.571-.699 1.89-.063.05.226-2.394-1.414 3.304-2.233.656 1.133.658 2.907.27-.222-.574-.565-.537.602-.333 2.932.467-.331-.687-1.059-.82 1.617-.12"/><path d="m21.285 37.648l-2.431-.95 1.142 1.342-.636.12-2.422-1.517-.768.112 1.761 1.465-1.746-.14 1.72 1.01-1.26 1.02-.04.739.17.126-.048-.203.212-.273 3.201-1.249-.306.87.176.721 4.11-4.451-2.835 1.258"/><path d="m44.877 33.09l.313.03-1.09-.58-1.65-.008.5-1.352.54-.347-.719-.142-.731.569-.69 1.89-.07.05.23-2.391-1.42 3.301-2.227.657 1.129.66 2.911.269-.221-.576-.562-.535.598-.335 2.933.47-.331-.69-1.06-.82 1.617-.12"/></g><g fill="#e8e8e8"><path d="m19.481 2c1.932 1.05 3.6 3.232 4.01 6.03.426 2.787-.487 5.68-2.024 7.743-1.097 1.459-1.645 3.328-1.673 5.443-.012 1.047.067 2.145.312 3.218.104.546.265 1.074.455 1.598.201.514.431 1.026.846 1.423-.556-.052-1.068-.444-1.491-.863-.432-.429-.786-.941-1.115-1.476-.615-1.092-1.075-2.319-1.295-3.636-.229-1.314-.231-2.721.058-4.096.142-.687.358-1.359.637-1.998.151-.318.294-.619.496-.948.221-.377.312-.491.537-.823 1.131-1.545 1.901-3.391 1.975-5.379.109-2-.603-4.131-1.732-6.235"/><path d="m31.489 2c1.932 1.05 3.6 3.232 4.01 6.03.428 2.79-.488 5.683-2.024 7.745-1.097 1.46-1.646 3.328-1.675 5.442-.011 1.046.067 2.146.313 3.22.103.545.264 1.072.455 1.595.201.517.43 1.029.845 1.426-.557-.052-1.067-.446-1.491-.865-.432-.43-.785-.941-1.114-1.474-.615-1.092-1.076-2.321-1.295-3.638-.229-1.314-.231-2.722.056-4.094.143-.687.361-1.359.637-2 .152-.315.296-.616.497-.945.221-.377.311-.491.536-.823 1.132-1.545 1.902-3.393 1.977-5.382.11-1.997-.601-4.128-1.731-6.232"/><path d="m43.497 2c1.932 1.05 3.6 3.232 4.02 6.03.425 2.787-.489 5.68-2.025 7.743-1.097 1.459-1.646 3.328-1.674 5.443-.012 1.047.066 2.145.312 3.218.104.546.265 1.074.455 1.598.202.514.432 1.026.846 1.423-.556-.052-1.068-.444-1.491-.863-.431-.429-.786-.941-1.115-1.476-.615-1.092-1.075-2.319-1.295-3.636-.227-1.314-.23-2.721.058-4.096.142-.687.359-1.359.638-1.998.15-.318.293-.619.495-.948.221-.377.312-.491.537-.823 1.131-1.545 1.901-3.391 1.976-5.379.109-2-.602-4.131-1.732-6.235"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.5 44.3c-13.2 0-24.2-4.1-26.7-9.5 4.6 14.1 1.8 27.2 26.7 27.2 24.9 0 22.1-13.1 26.7-27.2-2.5 5.4-13.5 9.5-26.7 9.5" fill="#3e4347"/><path d="m20.2 20.5c14.1-3.9 46.5 2 39.4 15.4 3.9 4.4 5.3 9.1-13.3 8.8-28.6 6.7-52.2-7.2-41.8-17.7-2.5-5.1 3-7.7 15.7-6.5" fill="#6f7980"/><path d="m32.5 43.7c12.5 0 22.9-3.9 25.3-9 .2-.5.3-1 .5-1.5 0-.3.1-.5.1-.8 0-6.2-11.6-11.2-25.8-11.2s-25.8 5-25.8 11.2c0 .3 0 .5.1.8.1.5.3 1 .5 1.5 2.2 5.1 12.6 9 25.1 9" fill="#3e4347"/><path d="m32.5 43.7c12.5 0 22.9-3.9 25.3-9 0-.2.1-.3.1-.5-2.1-5.3-12.7-9.3-25.5-9.3-12.8 0-23.4 4-25.5 9.3.1.2.1.3.1.5 2.6 5.1 13 9 25.5 9" fill="#fbbf67"/><path d="m36 30.4c-5-.1-11.1 3.9-15.2 3.6-6.8-.5.2 2.8 5 2.8 3.2 0 5.4-2.9 7.1-4.1 2.4-1.5 8.3-2.2 3.1-2.3" fill="#d33b23"/><g fill="#ff8736"><path d="m21.2 27.1c-1.3-3.6-8.8 2.3-2.4 3.6 1 .2 3.5-.4 2.4-3.6"/><path d="m35.7 38.4c-1.6-4.4-10.9 2.9-2.9 4.4 1.2.2 4.3-.5 2.9-4.4"/><path d="m37.4 25.8c-1.5-3.6-10.8 2.3-2.9 3.6 1.1.1 4.2-.5 2.9-3.6"/><path d="m52.7 29.7c-.6-3.9-12.5-1.7-4.3 2.4 1.2.6 4.8 1.1 4.3-2.4"/></g><g fill="#89664c"><path d="m15.1 33.2c-1.1-1.5-2.7-3.5-3.3-2.5-.9 1.4-1.2 4.2-.5 4.3 5 1 4.6-.6 3.8-1.8"/><path d="m42.6 30.4c-1.8.8-2.9.2-3.7 1.4-1.9 2.7 4.6 3.6 5.8 2 .9-1.1-.9-3.9-2.1-3.4"/><path d="m44.1 37.1c-1.3-.6-1 1.4-3-.2-1.4-1.1-4.4 1.7-2.4 3.6 2.2 2.1 2.8.1 3.7.3 1.9.3 5.2-2.2 1.7-3.7"/><path d="m22.1 37.7c-1.2-1.2-3.1 2.2-2.4 3.1 1.5 2 6.9 1.6 8.3.1 1.8-1.8-3-.4-5.9-3.2"/></g><g fill="#699635"><path d="m17.5 36.7c0 0 .1 1.2.3 1.7-1.3-.5-1.3-2.8-1.3-2.8s-.9.5-.8 1.4c-1.4-1.2-2.6-.6-2.6-.6s1.8 1 2.1 1.7c-1 .1-1.6.4-2 1.2 0 0 2-1 3.5-.3-.6.5-.3 1.7-.3 1.7 2.4-2.5 3.9-.3 5-.9-.9-1.2-2.2-1.4-2.2-1.4-.5-1-1.7-1.7-1.7-1.7"/><path d="m28.3 26.9c-1.2-.2-2.4.4-2.4.4s1.1.5 1.6.7c-1.1.9-3.1-.3-3.1-.3s0 1 .8 1.4c-1.7.6-1.9 2-1.9 2s1.8-1 2.5-.9c-.5.9-.5 1.6.1 2.3 0 0 .2-2.2 1.6-3.1.1.8 1.3 1.1 1.3 1.1-.9-3.3 1.8-3.5 1.8-4.7-1.4 0-2.3 1.1-2.3 1.1"/><path d="m51.6 35.9c.5-.5 2.6-.8 2.6-.8s-.9-1-2.7-.5c.4-.8-.2-1.6-.2-1.6s-.9 2.1-2.3 2.1c.4-.5.9-1.5.9-1.5s-1.4.3-2.2 1.2c0 0-1.3-.4-2.5.4.7 1 3-.5 4.2 2.7 0 0 .7-1 .4-1.7 1.6-.1 3.1 1.6 3.1 1.6 0-.9-.4-1.4-1.3-1.9"/></g><g opacity=".6" fill="#a6aeb0"><path d="m33.3 11.4c-3.7-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m22.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m44.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f373.svg b/build/js/jsxc/lib/emojione/assets/svg/1f373.svg
index 97e3f93..4f80ed5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f373.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f373.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m60.26 3.957l-.214-.215c-2.316-2.322-6.072-2.322-8.389 0l-10.05 10.09c-10.01-6.223-23.317-4.986-32 3.729-10.135 10.17-10.133 26.652 0 36.816 10.135 10.168 26.565 10.17 36.702 0 8.621-8.647 9.903-21.859 3.862-31.872l10.1-10.13c2.316-2.324 2.316-6.09 0-8.414m-4.654 8.184c-2.053 0-3.717-1.67-3.719-3.73 0-2.059 1.666-3.729 3.719-3.729s3.719 1.67 3.719 3.729c-.001 2.06-1.666 3.73-3.719 3.73"/><path fill="#fff" d="m12.208 30.05c-4.095 9.108-1.162 19.326 6.552 22.823 7.709 3.493 17.281-1.058 21.377-10.165 4.092-9.109 1.158-19.329-6.553-22.823-7.712-3.495-17.281 1.053-21.376 10.165"/><circle fill="#f29a2e" cx="22.95" cy="35.965" r="8"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 4l-.3-.3c-2.3-2.3-6.1-2.3-8.4 0l-10 10.1c-10-6.2-23.3-5-32 3.7-10.1 10.2-10.1 26.7 0 36.8 10.1 10.2 26.6 10.2 36.7 0 8.6-8.6 9.9-21.9 3.9-31.9l10.1-10.1c2.3-2.3 2.3-6 0-8.3m-4.7 8.1c-2.1 0-3.7-1.7-3.7-3.7 0-2.1 1.7-3.7 3.7-3.7s3.7 1.7 3.7 3.7c0 2.1-1.6 3.7-3.7 3.7" fill="#3e4347"/><path d="m12.2 30.1c-4.1 9.1-1.2 19.3 6.6 22.8 7.7 3.5 17.3-1.1 21.4-10.2 4.1-9.1 1.2-19.3-6.6-22.8-7.7-3.5-17.3 1-21.4 10.2" fill="#fff"/><circle cx="23" cy="36" r="8" fill="#f29a2e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f374.svg b/build/js/jsxc/lib/emojione/assets/svg/1f374.svg
index 6deded0..e9d6b48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f374.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f374.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#94989b" d="m6.146 3.073c-1.793 1.788-5.262 13.174 9.445 27.902 4.699 4.713 8.168 1.241 11.11 4.19 2.93 2.943 26.28 26.34 26.28 26.34s5.742-1.879 6.551-6.729l-52.08-52.18c0 0-.41-.429-1.312.477"/><path fill="#b2c1c0" d="m61.819 11.04c.703-1.308-.891-.912-.891-.912s-10.627 10.202-12.1 8.952c-1.475-1.25 10.405-11.03 8.999-12.853-1.301-1.703-11.74 10.454-12.994 8.971-1.242-1.483 8.939-12.12 8.939-12.12s.387-1.602-.912-.9c-16.01 8.606-18.05 16.632-18.05 16.632s-.551 1.563.645 2.771c.117.106-29.2 29.26-33.13 33.2-1.91 1.908 5.098 8.802 6.996 6.894 3.925-3.936 33.02-33.3 33.13-33.2 1.207 1.206 2.766.652 2.766.652s8.01-2.045 16.602-18.09"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.1 3.1c-1.7 1.8-5.2 13.1 9.5 27.9 4.7 4.7 8.2 1.2 11.1 4.2 2.9 2.9 26.3 26.3 26.3 26.3s5.7-1.9 6.6-6.7l-52.1-52.2c0 0-.5-.4-1.4.5" fill="#94989b"/><path d="m61.8 11c.7-1.3-.9-.9-.9-.9s-10.6 10.2-12.1 9c-1.5-1.2 10.4-11 9-12.9-1.3-1.7-11.7 10.5-13 9-1.2-1.5 8.9-12.1 8.9-12.1s.4-1.6-.9-.9c-16 8.6-18 16.6-18 16.6s-.6 1.6.6 2.8c.1.1-29.2 29.3-33.1 33.2-1.9 1.9 5.1 8.8 7 6.9 3.9-3.9 33-33.3 33.1-33.2 1.2 1.2 2.8.7 2.8.7s8-2.1 16.6-18.2" fill="#b2c1c0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f375.svg b/build/js/jsxc/lib/emojione/assets/svg/1f375.svg
index 1790ccb..7f210fc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f375.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f375.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ccc5b2" d="m57.977 52.42c0 5.289-11.627 9.576-25.976 9.576-14.352 0-25.975-4.287-25.975-9.576 0-5.285 11.623-9.574 25.975-9.574 14.349 0 25.976 4.289 25.976 9.574"/><ellipse fill="#f9f3d9" cx="32" cy="48.52" rx="30" ry="11.717"/><path fill="#e0dac6" d="m51 48.52c0 3.314-8.506 6-19 6-10.492 0-18.999-2.688-18.999-6 0-3.311 8.507-5.998 18.999-5.998 10.495 0 19 2.688 19 5.998"/><path fill="#ccc5b2" d="m50.4 46.697c0 3.346-8.24 6.05-18.402 6.05-10.161 0-18.394-2.709-18.394-6.05 0-3.338 8.232-6.05 18.394-6.05 10.162 0 18.402 2.713 18.402 6.05"/><path fill="#e0dac6" d="m52 43.836h-40l-4.998-16.859h50z"/><path fill="#f9f3d9" d="m57 26.977c0 4.541-11.19 8.225-25 8.225-13.806-.001-24.999-3.684-24.999-8.225 0-4.543 11.193-8.225 24.999-8.225 13.811 0 25 3.682 25 8.225"/><g fill="#e0dac6"><path d="m52 43.834c0 3.633-8.954 6.578-20 6.578-11.05 0-20-2.945-20-6.578 0-3.635 8.955-6.58 20-6.58 11.05 0 20 2.945 20 6.58"/><ellipse cx="32" cy="27.334" rx="22.324" ry="6.453"/></g><path fill="#96b269" d="m51.898 30.25c-3.684-2.098-11.201-3.537-19.899-3.537-8.695 0-16.213 1.439-19.895 3.537 3.682 2.098 11.199 3.537 19.895 3.537 8.698 0 16.216-1.439 19.899-3.537"/><g fill="#e8e8e8"><path d="m18.645 2c1.996.975 3.699 2.969 4.119 5.492.434 2.516-.492 5.129-2.07 7.01-1.131 1.336-1.694 3.047-1.725 4.971-.012.953.068 1.953.318 2.928.105.496.27.977.467 1.451.205.471.44.936.869 1.297-.576-.053-1.104-.418-1.537-.801-.443-.393-.806-.859-1.143-1.346-.629-.992-1.098-2.105-1.322-3.297-.232-1.188-.236-2.457.057-3.701.145-.619.365-1.229.65-1.811.154-.287.301-.561.507-.857.226-.344.321-.449.551-.75 1.167-1.412 1.958-3.102 2.034-4.914.114-1.824-.612-3.76-1.775-5.674"/><path d="m30.964 2c1.995.975 3.698 2.969 4.119 5.492.433 2.518-.492 5.131-2.071 7.01-1.131 1.336-1.694 3.047-1.725 4.971-.012.953.068 1.953.318 2.928.105.496.271.977.467 1.451.206.471.441.936.87 1.297-.577-.053-1.103-.418-1.537-.801-.444-.393-.806-.859-1.144-1.344-.629-.994-1.098-2.107-1.322-3.299-.232-1.188-.236-2.457.057-3.701.145-.619.365-1.229.65-1.811.154-.287.301-.559.507-.857.226-.344.321-.449.551-.75 1.167-1.412 1.958-3.102 2.035-4.914.115-1.824-.612-3.76-1.775-5.674"/><path d="m43.28 2c1.996.975 3.698 2.969 4.118 5.492.433 2.518-.491 5.131-2.071 7.01-1.131 1.336-1.693 3.047-1.724 4.971-.012.953.067 1.953.319 2.928.105.496.27.977.466 1.451.206.471.441.936.87 1.297-.576-.053-1.104-.418-1.537-.801-.443-.393-.807-.859-1.143-1.344-.63-.994-1.099-2.107-1.323-3.299-.231-1.188-.236-2.457.056-3.699.145-.621.366-1.23.65-1.813.154-.287.301-.559.508-.857.225-.342.32-.449.551-.75 1.166-1.412 1.957-3.102 2.034-4.914.115-1.824-.611-3.76-1.774-5.674"/></g><path fill="#4e6b20" d="m27.676 46.611l-4.289-5.627-6.16 3.486-1.32 6.444 10.449 2.136 1.321-6.439z"/><path fill="#8cc63e" d="m26.816 47.18l-3.42-6.196-6.602 2.547-2.25 6.18 10.02 3.649 2.249-6.18z"/><circle fill="#4e6b20" cx="22.521" cy="43.39" r="1.209"/><path fill="none" stroke="#fff" stroke-miterlimit="10" d="m22.521 42.85v-10"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.6 55.3h-27.2c0 0 .4 2.6 4 4.8 1.3.8 4.5 1.9 9.6 1.9 5.1 0 8.3-1.1 9.6-1.9 3.7-2.1 4-4.8 4-4.8" fill="#d2d8d9"/><g fill="#eff6f7"><path d="m57 31.7h-50c0 0 .7 11.1 7.3 20.1 2.5 3.3 8.3 8.1 17.7 8.1 9.3 0 15.2-4.8 17.7-8.1 6.6-9 7.3-20.1 7.3-20.1"/><ellipse cx="32" cy="31.7" rx="25" ry="9.7"/></g><path d="m32 27c10.6 0 19.5 2.7 21.5 6.4.3-.5.5-1.1.5-1.6 0-4.4-9.8-8-22-8-12.2 0-22 3.6-22 8 0 .6.2 1.1.5 1.6 2-3.7 10.9-6.4 21.5-6.4" fill="#d2d8d9"/><path d="m32 39.7c10.6 0 19.5-2.7 21.5-6.4-2-3.6-10.9-6.3-21.5-6.3-10.6 0-19.5 2.7-21.5 6.4 2 3.6 10.9 6.3 21.5 6.3" fill="#96b269"/><path fill="#4e6b20" d="m25.5 52l-4.3-5.7-6.1 3.5-1.4 6.5 10.5 2.1z"/><path fill="#8cc63e" d="m24.7 52.5l-3.5-6.2-6.6 2.6-2.2 6.1 10 3.7z"/><circle cx="20.4" cy="48.7" r="1.2" fill="#4e6b20"/><path fill="#b59267" d="m19.9 38.2h1v10h-1z"/><g opacity=".6" fill="#a6aeb0"><path d="m33.3 11.4c-3.7-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m22.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m44.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f376.svg b/build/js/jsxc/lib/emojione/assets/svg/1f376.svg
index 8c6754e..b573b45 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f376.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f376.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0dbc6" d="m23.396 35.94c.03.149.05.301.05.454 0 2.54-4.36 4.597-9.737 4.597-5.375 0-9.734-2.057-9.734-4.597 0-.153.018-.305.048-.454-.42 1.197-.661 2.487-.661 3.841 0 6.075 4.634 11 10.348 11 5.717 0 10.349-4.925 10.349-11-.001-1.353-.242-2.643-.663-3.841"/><g fill="#b7b198"><path d="m4.02 35.94c.077-.22.158-.438.249-.652-.112.213-.201.429-.249.652"/><path d="m23.15 35.29c.089.214.17.433.247.652-.046-.223-.136-.439-.247-.652"/><path d="m13.709 40.991c5.377 0 9.737-2.057 9.737-4.597 0-.153-.02-.305-.05-.454-.077-.22-.158-.438-.247-.652-1.051-2-4.872-3.489-9.44-3.489-4.565 0-8.387 1.487-9.438 3.489-.09.214-.171.433-.249.652-.03.149-.048.301-.048.454.001 2.541 4.36 4.597 9.735 4.597"/></g><path fill="#fff" d="m13.709 40.991c4.145 0 7.675-1.224 9.08-2.946-1.396-1.729-4.927-2.959-9.08-2.959-4.151 0-7.68 1.23-9.08 2.959 1.406 1.723 4.935 2.946 9.08 2.946"/><path fill="#b7b198" d="m42.729 50.36c7.646 0 13.842 2.606 13.842 5.821 0 3.216-6.207 5.822-13.842 5.822-7.646 0-13.841-2.605-13.841-5.822.001-3.214 6.196-5.821 13.841-5.821"/><path fill="#eae4cc" d="m34.29 5.406c-.35 2.203 1.908 6.416 2.02 8.655.157 3.316-18.433 24.674-8.627 40.452 4.439 7.138 25.665 7.138 30.1 0 9.803-15.8-8.786-37.11-8.628-40.452.1-2.239 2.367-6.452 2.01-8.655-.733-4.542-16.14-4.542-16.874 0"/><path fill="#b7b198" d="m35.672 5.724c-.785 4.868 14.891 4.865 14.1 0-.643-4.03-13.461-4.03-14.1 0"/><path fill="#e0dbc6" d="m34.2 46.1c.033.16.054.322.054.486 0 2.721-4.671 4.923-10.428 4.923-5.759 0-10.425-2.202-10.425-4.923 0-.164.017-.326.051-.486-.45 1.282-.709 2.664-.709 4.113 0 6.508 4.963 11.782 11.08 11.782 6.122 0 11.08-5.274 11.08-11.781 0-1.449-.258-2.831-.709-4.114"/><g fill="#b7b198"><path d="m13.45 46.1c.082-.235.169-.47.265-.698-.119.228-.214.459-.265.698"/><path d="m33.936 45.41c.093.229.18.463.263.698-.05-.239-.146-.47-.263-.698"/><path d="m23.824 51.52c5.757 0 10.428-2.202 10.428-4.923 0-.164-.021-.326-.054-.486-.083-.235-.17-.47-.263-.698-1.126-2.145-5.22-3.737-10.111-3.737-4.89 0-8.982 1.593-10.11 3.737-.096.229-.183.463-.265.698-.034.16-.051.322-.051.486 0 2.721 4.666 4.923 10.425 4.923"/></g><path fill="#fff" d="m23.824 51.52c4.437 0 8.22-1.311 9.723-3.155-1.494-1.852-5.275-3.169-9.723-3.169s-8.226 1.317-9.724 3.169c1.506 1.844 5.287 3.155 9.724 3.155"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m44.1 50.4c7.6 0 13.8 2.6 13.8 5.8 0 3.2-6.2 5.8-13.8 5.8-7.6 0-13.8-2.6-13.8-5.8 0-3.2 6.1-5.8 13.8-5.8" fill="#b7b198"/><path d="m35.6 5.4c-.3 2.2 1.9 6.4 2 8.7.2 3.3-18.4 24.7-8.6 40.5 4.4 7.1 25.7 7.1 30.1 0 9.8-15.8-8.8-37.1-8.6-40.5.1-2.2 2.4-6.5 2-8.7-.7-4.5-16.1-4.5-16.9 0" fill="#f9f3d9"/><g fill="#b7b198"><path d="m37 5.7c-.8 4.9 14.9 4.9 14.1 0-.6-4-13.4-4-14.1 0"/><ellipse cx="13" cy="58.5" rx="10.1" ry="3.5"/></g><g fill="#f9f3d9"><path d="m2 43.8h22v13.1h-22z"/><ellipse cx="13" cy="43.8" rx="11" ry="3.8"/><ellipse cx="13" cy="56.9" rx="11" ry="3.8"/></g><path d="m22.1 45.1c.5-.3.7-.7.7-1.1 0-1.6-4.4-3-9.8-3-5.4 0-9.8 1.3-9.8 3 0 .4.3.8.7 1.1 1.5-1.1 5-1.9 9.1-1.9 4.1 0 7.7.8 9.1 1.9" fill="#b7b198"/><path d="m22.1 45.1c-1.5-1.1-5-1.9-9.1-1.9-4.1 0-7.7.8-9.1 1.9 1.5 1.1 5 1.9 9.1 1.9 4.1-.1 7.7-.9 9.1-1.9" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f377.svg b/build/js/jsxc/lib/emojione/assets/svg/1f377.svg
index 65e953c..e2652b0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f377.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f377.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c7d7d7"><path d="m15.708 2c0 0-5.708 7.05-5.708 18.445 0 11.169 9.848 21.519 22 21.519 12.15 0 22-10.35 22-21.519 0-11.403-5.708-18.443-5.709-18.445h-32.583"/><path d="m35.31 57.04c-3.266-4.808-2.01-28.865-2.01-28.865h-2.603c0 0 1.251 24.06-2.02 28.865-2.169 3.196-9.771 1.554-9.771 4.962h26.18c.001-3.409-7.605-1.766-9.774-4.962"/></g><path fill="#fff" d="m52.06 20.325c-.087-10.248-5.199-16.565-5.2-16.568h-29.717c0 0-5.205 6.432-5.205 16.824 0 .687.047 1.37.128 2.049 13.995 4.451 28.56-3.858 39.994-2.305"/><path fill="#961623" d="m12.06 22.63c1.102 9.367 9.602 17.577 19.937 17.577 11.08 0 20.06-9.439 20.06-19.626 0-.088-.006-.17-.007-.256-11.433-1.553-25.998 6.756-39.994 2.305"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m15.1 22.1c.9 8 8.2 14.9 16.9 14.9 9.4 0 17.1-8 17.1-16.7 0-.1 0-.1 0-.2-9.8-1.3-22.1 5.8-34 2" fill="#961623"/><path d="m54 20.4c0-11.4-5.7-18.4-5.7-18.4h-32.6c0 0-5.7 7.1-5.7 18.4 0 10.8 9.3 20.9 20.9 21.5-.1 6.3-.7 12.8-2.2 15.1-2.2 3.2-9.8 1.6-9.8 5h26.2c0-3.4-7.6-1.8-9.8-5-1.5-2.3-2.1-8.8-2.2-15.1 11.6-.6 20.9-10.6 20.9-21.5m-22 18.9c-9.8 0-17.9-7.8-18.9-16.7-.1-.6-.1-1.3-.1-1.9 0-9.9 4.9-15.9 4.9-15.9h28.2c0 0 4.8 6 4.9 15.7 0 .1 0 .2 0 .2 0 9.6-8.5 18.6-19 18.6" opacity=".8" fill="#a1b8c7"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f378.svg b/build/js/jsxc/lib/emojione/assets/svg/1f378.svg
index 81bc082..a8c9960 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f378.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f378.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c7d7d7"><path d="m45.533 61.15c-.051-.022-7.807-2.227-11.451-5.404-.77-3.789-.834-13.473-.836-13.547-.003-.24-.156-.434-.348-.434h-1.764c-.191 0-.347.193-.349.434 0 .074-.065 9.753-.856 13.549-3.679 3.239-11.407 5.38-11.461 5.402-.162.065-.264.271-.238.483.025.212.173.37.344.37h26.852c.171 0 .318-.158.344-.368.027-.211-.072-.417-.237-.485"/><path d="M59,18.579c0,0-21.882,24.495-27,24.495S5,18.579,5,18.579H59z"/></g><path fill="#f3ffd2" d="m53.861 20.91c0 0-17.717 19.833-21.861 19.833-4.143 0-21.862-19.833-21.862-19.833h43.723"/><path fill="#f29a2e" d="m46.23 3.439c.012-.029.023-.061.033-.091.2-.593-.018-1.183-.486-1.318-.468-.14-1.01.229-1.207.821l-13.261 36.676.818.29 14.1-36.38"/><path fill="#8cc63e" d="m46.05 19.04c-.355 2.523-3.457 4.197-6.929 3.734-3.471-.461-5.998-2.881-5.643-5.404.355-2.525 3.457-4.196 6.93-3.735 3.471.461 5.996 2.879 5.642 5.405"/><path fill="#ce114b" d="m38.4 18.02c-.223 1.586-1.391 2.738-2.609 2.576-1.217-.161-2.023-1.577-1.802-3.162.224-1.586 1.392-2.738 2.61-2.576 1.217.161 2.026 1.577 1.801 3.162"/><path fill="#8cc63e" d="m29.854 27.03c-1.387 2.16-.104 5.373 2.869 7.175 2.972 1.802 6.507 1.511 7.895-.649 1.389-2.161.104-5.374-2.869-7.175-2.972-1.803-6.507-1.513-7.895.649"/><path fill="#ce114b" d="m36.402 30.996c-.871 1.357-.732 2.97.312 3.601 1.042.634 2.594.048 3.466-1.312.871-1.356.732-2.968-.311-3.601-1.043-.631-2.596-.045-3.467 1.312"/><path fill="#c7d7d7" d="m31.28 18.579h16.865v2.331h-16.865z"/><path opacity=".5" fill="#eeffd4" d="m53.862 20.91c0 0-17.717 19.833-21.862 19.833-4.143 0-21.861-19.833-21.861-19.833h43.723"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.7 3.3c0 0 0 0 0 0 .2-.6 0-1.2-.4-1.3-.4-.1-.9.2-1.1.8l-12.5 34.2.8.3 13.2-34" fill="#f29a2e"/><path d="m45.5 17.9c-.3 2.4-3.2 3.9-6.5 3.5-3.2-.4-5.6-2.7-5.3-5 .3-2.4 3.2-3.9 6.5-3.5 3.3.4 5.6 2.6 5.3 5" fill="#8cc63e"/><path d="m38.4 16.9c-.2 1.5-1.3 2.6-2.4 2.4-1.1-.1-1.9-1.5-1.7-2.9.2-1.5 1.3-2.6 2.4-2.4 1.1.1 1.9 1.5 1.7 2.9" fill="#ce114b"/><path d="m30.4 25.3c-1.3 2-.1 5 2.7 6.7 2.8 1.7 6.1 1.4 7.4-.6 1.3-2 .1-5-2.7-6.7-2.8-1.6-6.1-1.4-7.4.6" fill="#8cc63e"/><path d="m36.5 29c-.8 1.3-.7 2.8.3 3.4 1 .6 2.4 0 3.2-1.2.8-1.3.7-2.8-.3-3.4-.9-.6-2.4 0-3.2 1.2" fill="#ce114b"/><path d="m59 18.6h-54c0 0 19.1 21.4 25.8 24.2 0 2.1-.2 9.7-.9 13-3.7 3.2-11.4 5.4-11.5 5.4-.2.1-.3.3-.2.5 0 .2.2.4.3.4h26.9c.2 0 .3-.2.3-.4 0-.2-.1-.4-.2-.5-.1 0-7.8-2.2-11.5-5.4-.7-3.3-.8-10.9-.8-13 6.8-2.9 25.8-24.2 25.8-24.2m-27 22.1c-4.1 0-21.9-19.8-21.9-19.8h43.7c.1 0-17.7 19.8-21.8 19.8" opacity=".8" fill="#a1b8c7"/><path d="m49.4 22.7c0 0-14.1 15.8-17.4 15.8-3.3 0-17.4-15.8-17.4-15.8s34.8 0 34.8 0" opacity=".7" fill="#f3ffd2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f379.svg b/build/js/jsxc/lib/emojione/assets/svg/1f379.svg
index ee0cc62..b96f8f0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f379.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f379.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c7d7d7"><path d="m43.34 61.05c-.039-.024-4.152-.784-5.871-4.951-1.623-3.935-1.887-8.113 3.08-9.865.252-.09-5.443-.446-5.443-.446s-5.696.356-5.444.446c4.968 1.752 4.703 5.931 3.081 9.865-1.719 4.167-5.834 4.927-5.873 4.951-.121.072-.193.3-.176.537.021.236.126.411.253.411h8.158 8.157c.126 0 .233-.175.253-.411.02-.237-.054-.465-.175-.537"/><path d="m47.41 12.35h-12.309-12.31c5.03 11.896-12.182 34.35 12.31 34.35 24.491-.001 7.281-22.459 12.309-34.35"/></g><g fill-rule="evenodd"><circle fill="#64892f" cx="47.2" cy="12.349" r="10.347"/><circle fill="#fdffb8" cx="47.2" cy="12.35" r="9.7"/><g fill="#ced74d"><path d="m44.47 3.499c.268-.341 5.559-.352 5.723.155.063.188.33.305.295.502-.131.74-2.909 6.966-2.909 6.966-.091-.028-.393-.356-.581-.078-.164.244-2.881-6.786-2.78-6.897.131-.144.088-.437.252-.648"/><path d="m49.973 21.21c-.266.342-5.556.353-5.72-.153-.063-.19-.33-.306-.297-.504.131-.738 2.91-6.966 2.91-6.966.09.03.393.359.582.08.166-.244 2.881 6.786 2.78 6.896-.131.145-.088.436-.255.647"/><path d="m56.06 9.602c.345.263.354 5.491-.156 5.652-.191.062-.308.327-.509.293-.746-.131-7.05-2.876-7.05-2.876.03-.09.363-.389.081-.575-.246-.161 6.868-2.846 6.979-2.746.147.129.442.088.656.252"/><path d="m38.36 15.04c-.346-.266-.354-5.491.156-5.655.191-.06.308-.325.507-.289.748.128 7.05 2.874 7.05 2.874-.027.089-.361.386-.077.575.245.161-6.87 2.845-6.981 2.746-.146-.13-.442-.089-.655-.251"/><path d="m39.17 8.181c-.055-.428 3.68-4.131 4.157-3.887.178.089.45-.017.569.147.435.614 2.927 6.96 2.927 6.96-.085.044-.534.02-.469.349.058.289-6.892-2.784-6.9-2.934-.013-.193-.249-.371-.284-.635"/><path d="m55.46 16.628c.055.427-3.68 4.131-4.158 3.888-.178-.09-.449.016-.565-.146-.437-.616-2.929-6.959-2.929-6.959.084-.044.534-.022.468-.352-.058-.286 6.892 2.786 6.901 2.934.01.195.25.371.283.635"/><path d="m51.48 4.244c.432-.053 4.18 3.636 3.934 4.107-.092.176.016.447-.148.562-.623.432-7.04 2.894-7.04 2.894-.043-.084-.021-.529-.355-.462-.289.057 2.82-6.81 2.97-6.817.194-.013.374-.25.642-.284"/><path d="m42.977 20.357c-.433.053-4.181-3.635-3.935-4.107.092-.177-.016-.445.148-.563.623-.43 7.04-2.891 7.04-2.891.044.082.021.527.355.462.29-.059-2.819 6.809-2.97 6.817-.196.011-.374.247-.642.282"/></g></g><g fill="#c10259"><path d="m25.278 9.528c-2.621-2.622-6.875-2.624-9.497 0l1.425 1.424c1.835-1.836 4.812-1.835 6.648 0l1.424-1.424"/><path transform="matrix(.7066-.7076.7076.7066-4.308 30.705)" d="m33.867 5.97h2.02v29.16h-2.02z"/><path transform="matrix(-.7071.7071-.7071-.7071 30.733 17.08)" d="m5.232 13.898h13.194v2.01h-13.194z"/></g><path fill="#c7d7d7" d="m47.41 12.35h-12.309-12.31c5.03 11.896-12.182 34.35 12.31 34.35 24.491-.001 7.281-22.459 12.309-34.35m-12.309 32.583c-20.545 0-6.107-20.987-10.326-31.657h10.326 10.326c-4.218 10.669 10.218 31.657-10.326 31.657"/><path opacity=".7" fill="#ffedc5" d="m45.43 13.275h-10.326-10.326c4.219 10.67-10.219 31.657 10.326 31.657 20.544.001 6.108-20.987 10.326-31.657"/><g opacity=".8"><path fill="#f65500" d="m23.882 32.4c-.673 6.906.586 12.532 11.223 12.532 8.855 0 11.21-3.9 11.361-9.19-7.164 1.279-13.501-4.826-22.584-3.342"/><path fill="#fcb334" d="m46.47 35.742c.115-3.974-1.01-8.729-1.563-13.212-6.093.237-11.764-4.207-19.309-3.713-.082 4.305-1.285 9.201-1.713 13.583 9.08-1.484 15.421 4.621 22.585 3.342"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.2 8.5c-2.1-5.3-8.2-7.9-13.6-5.8-5.4 2.1-8 8.1-5.9 13.4 2.2 5.3 8.3 7.9 13.7 5.8 5.4-2.1 8-8.1 5.8-13.4" fill="#64892f"/><path d="m56.6 8.8c-2-5-7.8-7.4-12.8-5.4-5.1 2-7.5 7.6-5.5 12.6 2 5 7.8 7.4 12.8 5.4 5.1-2 7.6-7.7 5.5-12.6" fill="#fdffb8"/><g fill="#ced74d"><path d="m44.7 3.5c.3-.3 5.7-.4 5.8.2.1.2.3.3.3.5-.1.7-3 7-3 7-.1 0-.4-.4-.6-.1-.2.2-2.9-6.8-2.8-6.9.2-.2.1-.5.3-.7"/><path d="m50.3 21.2c-.3.3-5.7.4-5.8-.2-.1-.2-.3-.3-.3-.5.1-.7 3-7 3-7 .1 0 .4.4.6.1.2-.2 2.9 6.8 2.8 6.9-.2.2-.1.5-.3.7"/><path d="m56.5 9.6c.4.3.4 5.5-.2 5.7-.2.1-.3.3-.5.3-.8-.1-7.2-2.9-7.2-2.9 0-.1.4-.4.1-.6-.2-.2 7-2.8 7.1-2.7.2.1.5 0 .7.2"/><path d="m38.5 15c-.4-.3-.4-5.5.2-5.7.2-.1.3-.3.5-.3.8.1 7.2 2.9 7.2 2.9 0 .1-.4.4-.1.6.2.2-7 2.8-7.1 2.7-.2 0-.5 0-.7-.2"/><path d="m39.3 8.2c-.1-.4 3.7-4.2 4.2-3.9.2.1.5 0 .6.1.4.6 3 7 3 7-.1 0-.5 0-.5.3.1.3-7-2.8-7-2.9 0-.2-.3-.4-.3-.6"/><path d="m55.9 16.6c.1.4-3.7 4.1-4.2 3.9-.2-.1-.5 0-.6-.1-.4-.6-3-7-3-7 .1 0 .5 0 .5-.4-.1-.3 7 2.8 7 2.9 0 .3.2.5.3.7"/><path d="m51.8 4.2c.4-.1 4.3 3.6 4 4.1-.1.2 0 .4-.2.6-.6.4-7.2 2.9-7.2 2.9 0-.1 0-.5-.4-.5-.3.1 2.9-6.8 3-6.8.4 0 .6-.2.8-.3"/><path d="m43.2 20.4c-.4.1-4.3-3.6-4-4.1.1-.2 0-.4.2-.6.6-.4 7.2-2.9 7.2-2.9 0 .1 0 .5.4.5.3-.1-2.9 6.8-3 6.8-.4 0-.6.2-.8.3"/></g><path d="M24.3,9c-2.5-2.5-6.7-2.5-9.2,0L6,17.9l1.4,1.4l9.1-8.9c1.8-1.8,4.7-1.8,6.5,0l20,19.7l1.4-1.4L24.3,9z" fill="#c10259"/><path d="m47.7 12.4h-12.5-12.6c4.7 10.9-9.5 30.6 7 33.9 5.1 1.8 4.8 5.9 3.1 9.9-1.8 4.2-5.9 4.9-6 5-.1.1-.2.3-.2.5 0 .2.1.4.3.4h8.3 8.3c.1 0 .2-.2.3-.4 0-.2-.1-.5-.2-.5 0 0-4.2-.8-6-5-1.7-3.9-1.9-8.1 3.1-9.9 16.6-3.4 2.4-23.1 7.1-33.9m-12.5 32.5c-20.9 0-6.2-21-10.5-31.7h10.5 10.5c-4.3 10.7 10.4 31.7-10.5 31.7" opacity=".8" fill="#a1b8c7"/><g opacity=".8"><path d="m25.2 32.3c-.6 6.1.5 11 9.9 11 7.8 0 9.9-3.4 10-8.1-6.2 1.2-11.8-4.2-19.9-2.9" fill="#f65500"/><path d="m45.2 35.3c.1-3.5-.9-7.7-1.4-11.6-5.4.2-10.4-3.7-17.1-3.3-.1 3.8-1.1 8.1-1.5 11.9 8.1-1.3 13.7 4.1 20 3" fill="#fcb334"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f37a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f37a.svg
index 672be02..85e65ba 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f37a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f37a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c7d7d7" d="m45.5 49.23v-4.802c4.376 0 7.714-2.943 8.558-6.325.864-3.461 1.649-8.735 1.098-12.222-.565-3.566-9.655-1.093-9.655-1.093v-4.805c0 0 12.793-2.876 13.689 2.608.664 4.07.197 11.705-.775 15.505-1.39 5.428-6.439 11.134-12.915 11.134"/><g fill="#fff"><path d="m45.5 24.484c0 0 3.98-2.01 9.638-1.297-5.458-2.547-9.638-.585-9.638-.585v1.882"/><path d="m45.5 45.41c0 0 3.781.133 7.594-2.717-2.541 4.772-7.594 4.633-7.594 4.633v-1.916"/></g><path fill="#c7d7d7" d="M45.867,9.034H12.369v48.771c0,5.426,33.499,5.426,33.499,0V9.034z"/><path fill="#fff" d="m14.726 12.06h28.784v14.54h-28.784z"/><path fill="#ff9617" d="M43.51,26.605H14.726v27.432c0,4.403,28.784,4.403,28.784,0V26.605z"/><g fill="#d8d2b8"><path d="m43.51 8.838c0 2.533-3.087 4.59-6.9 4.59-3.813 0-6.901-2.057-6.901-4.59 0-2.542 3.088-4.598 6.901-4.598 3.813 0 6.9 2.056 6.9 4.598"/><path d="m48.5 10.837c0 2.13-2.026 3.855-4.526 3.855-2.497 0-4.521-1.726-4.521-3.855 0-2.136 2.024-3.862 4.521-3.862 2.5 0 4.526 1.726 4.526 3.862"/><path d="m15.654 23.4c0 2.084-1.882 3.778-4.207 3.778-2.328 0-4.213-1.694-4.213-3.778 0-2.094 1.885-3.787 4.213-3.787 2.325-.003 4.207 1.694 4.207 3.787"/><path d="m17.757 28.498c0 2.084-1.882 3.779-4.207 3.779-2.328 0-4.213-1.695-4.213-3.779 0-2.094 1.885-3.787 4.213-3.787 2.325-.001 4.207 1.693 4.207 3.787"/><path d="m26.04 11.186c0 4.112-3.715 7.45-8.299 7.45-4.581 0-8.301-3.338-8.301-7.45 0-4.126 3.72-7.461 8.301-7.461 4.585-.002 8.299 3.335 8.299 7.461"/><path d="m18.388 16.71c0 3.585-3.104 6.489-6.945 6.489-3.836 0-6.943-2.904-6.943-6.489 0-3.593 3.107-6.497 6.943-6.497 3.842-.002 6.945 2.904 6.945 6.497"/><path d="m34.59 7.596c0 3.01-2.819 5.46-6.293 5.46-3.473 0-6.291-2.447-6.291-5.46 0-3.03 2.818-5.471 6.291-5.471 3.474-.003 6.293 2.444 6.293 5.471"/></g><g fill="#fff"><path d="m43.19 9.545c0 2.485-2.9 4.5-6.474 4.5-3.576 0-6.477-2.02-6.477-4.5 0-2.492 2.901-4.505 6.477-4.505 3.573 0 6.474 2.01 6.474 4.505"/><path d="m47.579 11c0 1.88-1.976 3.404-4.413 3.404-2.439 0-4.415-1.524-4.415-3.404 0-1.884 1.976-3.41 4.415-3.41 2.438 0 4.413 1.526 4.413 3.41"/><path d="m16.812 23.2c0 1.978-1.842 3.583-4.108 3.583-2.269 0-4.108-1.605-4.108-3.583 0-1.985 1.84-3.59 4.108-3.59 2.266-.001 4.108 1.605 4.108 3.59"/><path d="m36.452 12.614c0 1.978-1.841 3.585-4.111 3.585-2.266 0-4.107-1.607-4.107-3.585 0-1.984 1.842-3.59 4.107-3.59 2.27-.001 4.111 1.606 4.111 3.59"/><path d="m26.661 11.92c0 3.899-3.622 7.06-8.096 7.06-4.469 0-8.098-3.165-8.098-7.06 0-3.914 3.629-7.07 8.098-7.07 4.474-.005 8.096 3.159 8.096 7.07"/><path d="m19.2 16.918c0 3.265-3.037 5.914-6.779 5.914-3.741 0-6.777-2.649-6.777-5.914 0-3.275 3.036-5.92 6.777-5.92 3.742-.001 6.779 2.645 6.779 5.92"/><path d="m34.59 8.516c0 2.855-2.655 5.176-5.935 5.176-3.275 0-5.936-2.32-5.936-5.176 0-2.868 2.66-5.186 5.936-5.186 3.28-.002 5.935 2.317 5.935 5.186"/><path d="m18.565 28.496c0 1.979-1.839 3.584-4.109 3.584-2.267 0-4.105-1.604-4.105-3.584 0-1.984 1.839-3.588 4.105-3.588 2.27-.001 4.109 1.604 4.109 3.588"/><path d="m23.751 24.911c0 1.905-1.772 3.451-3.955 3.451-2.186 0-3.955-1.546-3.955-3.451 0-1.91 1.77-3.457 3.955-3.457 2.183-.002 3.955 1.547 3.955 3.457"/></g><g fill="#d8d2b8"><path d="m26.04 21.729c-.336-.443-.769-.771-1.248-.98-.22-.089-.527-.195-.746-.218-.229-.038-.497-.041-.743-.04l-.356.002-.142-.382c-.177-.478-.463-.909-.862-1.233-.189-.16-.438-.304-.637-.408-.16-.079-.295-.132-.393-.162-.111-.034-.25-.075-.375-.1-1.045-.23-2.229.037-3.041.726l-.459.389-.368-.344c-.085-.078-.181-.163-.274-.22-.168-.094-.205-.115-.348-.173-.244-.101-.52-.163-.807-.164-.577-.02-1.195.179-1.698.592.222-.577.85-1.046 1.603-1.22.379-.078.787-.085 1.185-.016.183.023.45.122.575.171.201.079.372.181.541.29l-.827.047c.929-1.122 2.701-1.657 4.272-1.291.196.045.378.101.58.176.215.081.382.157.512.228.375.199.672.409.934.683.537.525.852 1.193.932 1.863l-.5-.379c.345.043.668.11.995.244.169.068.33.139.438.213.115.063.289.173.391.266.48.391.8.913.866 1.44"/><path d="m29.554 6.211c-.604-.093-1.178-.054-1.689.097-.145.046-.219.078-.365.138-.15.05-.25.116-.342.172-.189.117-.38.281-.549.436l-.244.223-.414-.171c-.523-.215-1.081-.342-1.631-.319-.262.003-.564.059-.779.103-.367.093-.5.161-.763.29-.923.471-1.521 1.391-1.495 2.372l.016.567-.55-.011c-.128-.002-.262 0-.37.018-.195.035-.245.048-.387.094-.252.077-.492.205-.692.381-.415.339-.669.863-.661 1.461-.336-.526-.301-1.249.079-1.839.202-.289.479-.548.815-.742.148-.098.409-.192.535-.236.211-.068.408-.103.611-.131l-.533.556c-.324-1.358.481-2.866 1.899-3.571.319-.165.808-.328 1.091-.382.44-.09.809-.13 1.218-.097.801.037 1.565.301 2.178.705l-.658.054c.277-.188.56-.346.904-.452.177-.061.341-.108.481-.123.134-.03.348-.058.495-.057.66-.021 1.314.143 1.8.464"/></g><g fill="#fcb334"><ellipse cx="33.791" cy="34.389" rx="5.363" ry="5.139"/><ellipse cx="26.04" cy="42.891" rx="4.02" ry="3.854"/><ellipse cx="33.969" cy="46.44" rx="2.684" ry="2.569"/><ellipse cx="28" cy="51.863" rx="1.879" ry="1.799"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fff"><path d="m16.1 12.5h26v14.1h-26z"/><path d="m46.1 24.1c0 0 4.1-2 9.8-1.3-5.6-2.6-9.8-.6-9.8-.6v1.9" opacity=".8"/><path d="m46.1 45.5c0 0 3.8.1 7.7-2.7-2.6 4.8-7.7 4.7-7.7 4.7v-2" opacity=".8"/></g><path d="m59.7 22.6c-.8-5-11.4-3.1-13.6-2.7v-11h-34.1v49c0 5.4 34.1 5.4 34.1 0v-8.6c6.4-.2 11.4-5.8 12.8-11.2 1-3.8 1.5-11.5.8-15.5m-16 31.5c0 4.4-29.3 4.4-29.3 0v-42.1h29.3v42.1m10.8-16c-.8 3.3-4.1 6.2-8.3 6.3v-19.7c1.7-.4 9-2 9.5 1.2.4 3.5-.4 8.8-1.2 12.2" opacity=".8" fill="#a1b8c7"/><path d="m42.1 26.6h-26v26.2c0 3.9 26 3.9 26 0v-26.2" fill="#fdb73e"/><g fill="#d8d2b8"><path d="m43.7 8.7c0 2.5-3.1 4.6-7 4.6-3.9 0-7-2.1-7-4.6 0-2.6 3.1-4.6 7-4.6 3.9 0 7 2.1 7 4.6"/><path d="m48.8 10.7c0 2.1-2.1 3.9-4.6 3.9-2.5 0-4.6-1.7-4.6-3.9 0-2.1 2.1-3.9 4.6-3.9 2.5.1 4.6 1.8 4.6 3.9"/><path d="m15.4 23.4c0 2.1-1.9 3.8-4.3 3.8-2.4 0-4.3-1.7-4.3-3.8 0-2.1 1.9-3.8 4.3-3.8 2.3 0 4.3 1.7 4.3 3.8"/><path d="m17.5 28.5c0 2.1-1.9 3.8-4.3 3.8-2.4 0-4.3-1.7-4.3-3.8 0-2.1 1.9-3.8 4.3-3.8 2.4 0 4.3 1.7 4.3 3.8"/><path d="m25.9 11.1c0 4.1-3.8 7.5-8.5 7.5-4.7 0-8.5-3.4-8.5-7.5 0-4.1 3.8-7.5 8.5-7.5 4.8 0 8.5 3.4 8.5 7.5"/><path d="m18.1 16.6c0 3.6-3.2 6.5-7.1 6.5-3.9 0-7.1-2.9-7.1-6.5 0-3.6 3.2-6.5 7.1-6.5 4 0 7.1 2.9 7.1 6.5"/><path d="m34.6 7.5c0 3-2.9 5.5-6.4 5.5-3.5 0-6.4-2.5-6.4-5.5 0-3 2.9-5.5 6.4-5.5 3.6 0 6.4 2.5 6.4 5.5"/></g><g fill="#fff"><path d="m43.4 9.5c0 2.5-3 4.5-6.6 4.5-3.6 0-6.6-2-6.6-4.5 0-2.5 3-4.5 6.6-4.5 3.6-.1 6.6 1.9 6.6 4.5"/><path d="m47.9 10.9c0 1.9-2 3.4-4.5 3.4-2.5 0-4.5-1.5-4.5-3.4 0-1.9 2-3.4 4.5-3.4 2.4 0 4.5 1.5 4.5 3.4"/><path d="m16.5 23.2c0 2-1.9 3.6-4.2 3.6-2.3 0-4.2-1.6-4.2-3.6 0-2 1.9-3.6 4.2-3.6 2.4 0 4.2 1.6 4.2 3.6"/><path d="m36.5 12.5c0 2-1.9 3.6-4.2 3.6-2.3 0-4.2-1.6-4.2-3.6 0-2 1.9-3.6 4.2-3.6 2.4 0 4.2 1.6 4.2 3.6"/><path d="m26.6 11.8c0 3.9-3.7 7.1-8.2 7.1-4.6 0-8.2-3.2-8.2-7.1 0-3.9 3.7-7.1 8.2-7.1 4.5 0 8.2 3.2 8.2 7.1"/><path d="m19 16.9c0 3.3-3.1 5.9-6.9 5.9-3.8 0-6.9-2.7-6.9-5.9 0-3.3 3.1-5.9 6.9-5.9 3.8-.1 6.9 2.6 6.9 5.9"/><path d="m28.7 22.1c0 3.3-3.1 5.9-6.9 5.9s-6.9-2.7-6.9-5.9c0-3.3 3.1-5.9 6.9-5.9 3.8-.1 6.9 2.6 6.9 5.9"/><path d="m34.6 8.4c0 2.9-2.7 5.2-6 5.2-3.3 0-6-2.3-6-5.2 0-2.9 2.7-5.2 6-5.2 3.3 0 6 2.3 6 5.2"/><path d="m18.3 28.5c0 2-1.9 3.6-4.2 3.6-2.3 0-4.2-1.6-4.2-3.6 0-2 1.9-3.6 4.2-3.6 2.3 0 4.2 1.6 4.2 3.6"/><path d="m22.3 26.6c0 1.9-1.8 3.5-4 3.5-2.2 0-4-1.6-4-3.5 0-1.9 1.8-3.5 4-3.5 2.2 0 4 1.6 4 3.5"/></g><g fill="#d8d2b8"><path d="m25.9 21.7c-.3-.4-.8-.8-1.3-1-.2-.1-.5-.2-.8-.2-.2 0-.5 0-.8 0h-.4l-.1-.4c-.2-.5-.5-.9-.9-1.2-.2-.2-.4-.3-.6-.4-.2-.1-.3-.1-.4-.2-.1 0-.3-.1-.4-.1-1.1-.2-2.3 0-3.1.7l-.5.4-.4-.3c-.1-.1-.2-.2-.3-.2-.2-.1-.2-.1-.4-.2-.2-.1-.5-.2-.8-.2-.6 0-1.2.2-1.7.6.2-.6.9-1.1 1.6-1.2.4-.1.8-.1 1.2 0 .2 0 .5.1.6.2.2.1.4.2.6.3h-.8c.9-1.1 2.8-1.7 4.4-1.3.2 0 .4.1.6.2.2.1.4.2.5.2.4.2.7.4 1 .7.5.5.9 1.2.9 1.9l-.5-.4c.4 0 .7.1 1 .2.2.1.3.1.4.2.1.1.3.2.4.3.6.3 1 .9 1 1.4"/><path d="m29.5 6.1c-.6-.1-1.2-.1-1.7.1-.1 0-.2.1-.4.1-.2.1-.3.1-.3.2-.2.1-.4.3-.6.4l-.2.2-.5-.1c-.5-.2-1.1-.3-1.7-.3-.3 0-.6.1-.8.1-.4.1-.5.2-.8.3-.9.5-1.5 1.4-1.5 2.4v.6h-.6c-.1 0-.3 0-.4 0-.2 0-.2 0-.4.1-.3.1-.5.2-.7.4-.4.3-.7.9-.7 1.5-.3-.5-.3-1.3.1-1.8.2-.3.5-.6.8-.7.1-.1.4-.2.5-.2.5-.3.7-.4.9-.4l-.5.6c-.3-1.4.5-2.9 1.9-3.6.3-.2.8-.3 1.1-.4.4-.1.8-.1 1.2-.1.8 0 1.6.3 2.2.7l-.7.1c.3-.2.6-.3.9-.5.2-.1.3-.1.5-.1.1 0 .4-.1.5-.1.7 0 1.4.2 1.9.5"/></g><g fill="#fee0af"><ellipse cx="33.8" cy="34.4" rx="5.5" ry="5.2"/><ellipse cx="25.9" cy="42.9" rx="4.1" ry="3.9"/><ellipse cx="34" cy="46.5" rx="2.7" ry="2.6"/><ellipse cx="27.9" cy="51.9" rx="1.9" ry="1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f37b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f37b.svg
index d4ca989..76c8bdc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f37b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f37b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c7d7d7" d="m53.945 50.52l-.619-3.513c3.201-.563 5.264-3.148 5.443-5.73.187-2.643.08-6.603-.772-9.08-.874-2.536-7.204.445-7.204.445l-.62-3.514c0 0 8.987-3.755 10.351.142 1.01 2.892 1.654 8.537 1.434 11.442-.317 4.15-3.276 8.976-8.01 9.81"/><g fill="#fff"><path d="m50.754 32.422c0 0 2.652-1.984 6.883-2.192-4.321-1.158-7.126.814-7.126.814l.243 1.378"/><path d="m53.45 47.731c0 0 2.783-.39 5.205-2.967-1.244 3.817-4.958 4.368-4.958 4.368l-.247-1.401"/></g><path fill="#c7d7d7" d="m52.688 20.427l-24.506 4.32 6.292 35.679c.7 3.97 25.2-.352 24.506-4.32l-6.292-35.679"/><path transform="matrix(.9848-.1736.1736.9848-4.596 7.71)" fill="#fff" d="m31.07 24.723h21.382v10.802h-21.382z"/><path fill="#ff9617" d="m53.23 33.585l-21.06 3.714 3.54 20.07c.567 3.223 21.623-.491 21.06-3.712l-3.54-20.07"/><g fill="#d8d2b8"><path d="m50.938 20.588c.326 1.853-1.666 3.756-4.457 4.247-2.789.493-5.313-.614-5.639-2.468-.328-1.859 1.665-3.761 4.454-4.254 2.79-.491 5.313.615 5.642 2.475"/><path d="m54.846 21.406c.274 1.558-.985 3.081-2.814 3.405-1.826.322-3.529-.681-3.805-2.237-.275-1.563.982-3.087 2.81-3.41 1.828-.322 3.533.679 3.809 2.242"/><path d="m32.437 34.833c.27 1.525-.889 3.01-2.589 3.307-1.704.3-3.3-.696-3.569-2.22-.27-1.532.89-3.01 2.594-3.313 1.699-.304 3.294.694 3.564 2.226"/><path d="m34.635 38.29c.269 1.525-.89 3.01-2.59 3.309-1.703.3-3.301-.696-3.569-2.221-.271-1.532.89-3.01 2.593-3.313 1.7-.302 3.295.695 3.566 2.225"/><path d="m38.464 24.558c.53 3.01-1.757 5.929-5.11 6.521-3.352.59-6.502-1.372-7.03-4.381-.532-3.02 1.76-5.938 5.11-6.528 3.354-.592 6.502 1.369 7.03 4.388"/><path d="m33.576 29.588c.463 2.621-1.435 5.146-4.245 5.642-2.806.495-5.454-1.229-5.917-3.853-.463-2.627 1.437-5.152 4.242-5.647 2.81-.497 5.456 1.228 5.92 3.858"/><path d="m44.25 20.83c.388 2.203-1.357 4.356-3.899 4.805-2.54.448-4.919-.979-5.307-3.183-.391-2.214 1.356-4.366 3.897-4.813 2.541-.451 4.918.977 5.309 3.191"/></g><g fill="#fff"><path d="m50.791 21.15c.321 1.817-1.541 3.666-4.154 4.127-2.616.462-4.997-.638-5.318-2.457-.321-1.822 1.541-3.67 4.157-4.131 2.613-.46 4.995.638 5.315 2.461"/><path d="m54.19 21.644c.242 1.375-1.01 2.745-2.789 3.06-1.785.315-3.428-.545-3.67-1.92-.242-1.379 1.01-2.749 2.791-3.064 1.784-.317 3.424.546 3.668 1.924"/><path d="m33.26 34.54c.256 1.447-.885 2.858-2.543 3.151-1.66.292-3.213-.646-3.467-2.092-.256-1.453.881-2.863 2.541-3.155 1.658-.294 3.213.644 3.469 2.096"/><path d="m46.26 24.26c.255 1.448-.884 2.86-2.545 3.152-1.656.294-3.212-.646-3.467-2.092-.256-1.452.885-2.863 2.541-3.155 1.661-.295 3.215.644 3.471 2.095"/><path d="m39.01 25.02c.503 2.853-1.739 5.635-5.01 6.212-3.27.576-6.333-1.271-6.835-4.122-.505-2.864 1.743-5.645 5.01-6.221 3.271-.579 6.329 1.267 6.835 4.131"/><path d="m34.19 29.635c.421 2.389-1.459 4.719-4.198 5.2-2.736.483-5.301-1.063-5.721-3.451-.423-2.396 1.457-4.723 4.194-5.204 2.739-.485 5.302 1.058 5.725 3.455"/><path d="m44.37 21.502c.368 2.09-1.274 4.129-3.673 4.553-2.396.422-4.643-.932-5.01-3.02-.371-2.098 1.276-4.136 3.673-4.559 2.4-.424 4.64.928 5.01 3.03"/><path d="m35.23 38.19c.256 1.449-.882 2.859-2.543 3.151-1.658.294-3.211-.644-3.466-2.092-.256-1.452.883-2.862 2.54-3.153 1.662-.294 3.213.641 3.469 2.094"/><path d="m38.557 34.895c.245 1.395-.852 2.754-2.448 3.035-1.599.281-3.093-.622-3.339-2.02-.246-1.396.85-2.756 2.448-3.039s3.092.622 3.339 2.02"/></g><g fill="#d8d2b8"><path d="m39.824 32.27c-.304-.279-.662-.464-1.039-.556-.173-.036-.411-.075-.574-.063-.174.003-.369.035-.55.067l-.26.048-.153-.262c-.191-.327-.455-.604-.789-.791-.16-.093-.36-.165-.519-.216-.128-.038-.233-.06-.309-.068-.086-.012-.192-.023-.288-.024-.793-.033-1.625.314-2.13.922l-.287.345-.313-.205c-.071-.047-.153-.095-.229-.124-.135-.047-.164-.059-.276-.082-.19-.041-.4-.053-.611-.016-.425.06-.851.284-1.165.651.086-.451.486-.875 1.014-1.099.268-.105.564-.164.865-.166.137-.005.346.032.443.052.156.032.295.085.433.144l-.599.141c.535-.941 1.762-1.561 2.959-1.496.148.008.289.025.447.055.167.031.299.064.402.1.301.098.545.214.771.379.461.315.777.764.922 1.243l-.414-.213c.257-.014.503-.005.76.05.132.03.259.061.348.1.092.031.233.09.32.145.402.222.704.563.821.939"/><path d="m40.39 20.466c-.453.01-.869.113-1.224.289-.1.052-.15.085-.249.147-.104.057-.167.117-.228.17-.123.11-.242.255-.346.391l-.15.193-.324-.072c-.41-.088-.836-.109-1.234-.022-.191.035-.405.116-.557.175-.258.117-.346.184-.521.312-.614.464-.932 1.213-.787 1.928l.084.413-.402.064c-.095.015-.191.033-.27.06-.138.05-.172.065-.27.119-.175.088-.334.213-.458.368-.261.3-.378.716-.295 1.152-.315-.342-.382-.874-.18-1.354.111-.237.281-.462.501-.648.096-.09.273-.192.36-.242.146-.077.286-.128.431-.175l-.317.477c-.413-.951-.019-2.157.929-2.857.211-.162.548-.344.748-.42.311-.122.574-.199.879-.229.59-.075 1.184.02 1.684.235l-.475.126c.178-.175.364-.326.604-.447.121-.068.235-.124.336-.153.094-.038.246-.087.355-.105.479-.102.978-.068 1.376.105"/></g><g fill="#fcb334"><ellipse transform="matrix(-.1736-.9848.9848-.1736 15.386 93.98)" cx="47.12" cy="40.532" rx="3.817" ry="3.985"/><ellipse transform="matrix(-.1736-.9848.9848-.1736 2.906 97.94)" cx="42.546" cy="47.753" rx="2.863" ry="2.99"/><ellipse transform="matrix(-.1735-.9848.9848-.1735 8.701 105.95)" cx="48.808" cy="49.32" rx="1.908" ry="1.992"/><ellipse transform="matrix(-.1735-.9848.9848-.1735-.268 107.9)" cx="45.14" cy="54.06" rx="1.337" ry="1.397"/></g><path fill="#c7d7d7" d="m10.78 43.938l.676-3.83c-3.49-.614-5.737-3.432-5.935-6.247-.203-2.881-.088-7.198.843-9.901.952-2.765 7.853.487 7.853.487l.676-3.832c0 0-9.797-4.091-11.283.154-1.102 3.154-1.803 9.308-1.563 12.474.344 4.524 3.569 9.783 8.733 10.695"/><g fill="#fff"><path d="m14.259 24.2c0 0-2.892-2.163-7.504-2.39 4.711-1.264 7.77.889 7.77.889l-.266 1.501"/><path d="m11.317 40.893c0 0-3.034-.425-5.674-3.234 1.355 4.165 5.404 4.764 5.404 4.764l.27-1.53"/></g><path fill="#c7d7d7" d="m12.152 11.13l26.713 4.71-6.858 38.894c-.764 4.325-27.477-.385-26.713-4.712l6.858-38.892"/><path transform="matrix(-.9848-.1736.1736-.9848 43.987 47.25)" fill="#fff" d="m12.406 15.813h23.308v11.773h-23.308z"/><path fill="#ff9617" d="m11.561 25.473l22.954 4.047-3.858 21.877c-.619 3.51-23.572-.536-22.953-4.048l3.857-21.876"/><g fill="#d8d2b8"><path d="m14.06 11.304c-.356 2.02 1.816 4.095 4.858 4.631 3.039.536 5.791-.669 6.147-2.69.357-2.025-1.815-4.1-4.856-4.635-3.041-.537-5.791.667-6.149 2.694"/><path d="m9.798 12.197c-.299 1.699 1.074 3.359 3.068 3.71 1.99.352 3.848-.74 4.147-2.438.3-1.703-1.072-3.364-3.063-3.715-1.992-.353-3.851.74-4.152 2.443"/><path d="m34.23 26.835c-.294 1.66.969 3.276 2.822 3.604 1.857.327 3.598-.759 3.891-2.421.295-1.67-.97-3.285-2.827-3.612-1.853-.33-3.593.758-3.886 2.429"/><path d="m31.832 30.604c-.293 1.662.969 3.278 2.823 3.605 1.857.328 3.598-.761 3.891-2.421.295-1.67-.97-3.286-2.826-3.614-1.855-.327-3.594.759-3.888 2.43"/><path d="m27.657 15.633c-.579 3.278 1.914 6.463 5.571 7.106 3.653.646 7.089-1.494 7.667-4.772.58-3.292-1.918-6.474-5.57-7.116-3.658-.648-7.088 1.49-7.668 4.782"/><path d="m32.985 21.11c-.504 2.859 1.564 5.61 4.626 6.151 3.06.54 5.946-1.341 6.45-4.198.505-2.866-1.565-5.617-4.624-6.156-3.062-.543-5.947 1.337-6.452 4.203"/><path d="m21.347 11.568c-.423 2.401 1.479 4.751 4.25 5.239 2.77.487 5.361-1.067 5.785-3.47.426-2.414-1.479-4.76-4.248-5.247-2.77-.49-5.361 1.064-5.787 3.478"/></g><g fill="#fff"><path d="m14.218 11.914c-.35 1.982 1.68 3.995 4.529 4.498 2.852.503 5.447-.695 5.797-2.678.351-1.988-1.68-3.999-4.531-4.502-2.849-.503-5.445.694-5.795 2.682"/><path d="m10.51 12.456c-.265 1.5 1.097 2.993 3.04 3.336 1.946.344 3.736-.597 4-2.094.265-1.502-1.096-2.997-3.042-3.34-1.942-.343-3.733.596-3.998 2.098"/><path d="m33.33 26.514c-.278 1.576.965 3.117 2.771 3.435 1.81.319 3.502-.702 3.779-2.278.279-1.584-.961-3.122-2.771-3.441-1.806-.321-3.5.7-3.779 2.284"/><path d="m19.16 15.309c-.278 1.576.963 3.117 2.773 3.437 1.807.318 3.501-.704 3.779-2.281.279-1.583-.964-3.121-2.771-3.44-1.81-.322-3.503.701-3.781 2.284"/><path d="m27.06 16.13c-.549 3.11 1.896 6.143 5.463 6.772 3.564.627 6.903-1.386 7.451-4.495.551-3.12-1.899-6.151-5.463-6.779-3.567-.634-6.9 1.381-7.451 4.502"/><path d="m32.31 21.17c-.459 2.604 1.591 5.144 4.577 5.67 2.982.527 5.776-1.159 6.235-3.762.461-2.613-1.589-5.148-4.572-5.675-2.985-.527-5.779 1.157-6.24 3.767"/><path d="m21.22 12.301c-.401 2.278 1.389 4.502 4 4.963 2.612.459 5.061-1.016 5.461-3.294.404-2.287-1.392-4.509-4-4.97-2.615-.463-5.057 1.015-5.461 3.301"/><path d="m31.19 30.488c-.278 1.578.962 3.117 2.774 3.437 1.807.317 3.499-.702 3.777-2.281.279-1.583-.962-3.119-2.77-3.439-1.81-.32-3.502.701-3.781 2.283"/><path d="m27.556 26.899c-.269 1.52.928 3 2.668 3.309 1.742.308 3.372-.677 3.639-2.195.269-1.522-.925-3.01-2.668-3.313-1.74-.309-3.371.677-3.639 2.199"/></g><g fill="#d8d2b8"><path d="m26.17 24.04c.331-.308.722-.506 1.133-.607.189-.04.448-.081.627-.068.188.002.402.037.598.073l.284.053.167-.285c.208-.357.496-.661.86-.863.174-.102.393-.181.565-.236.139-.041.254-.063.336-.074.094-.011.21-.023.313-.026.864-.037 1.771.343 2.323 1.01l.312.373.342-.222c.078-.05.167-.104.25-.137.146-.051.18-.062.302-.089.208-.046.437-.057.667-.017.462.066.927.309 1.27.711-.094-.491-.529-.954-1.105-1.198-.291-.116-.615-.18-.943-.18-.148-.007-.375.033-.482.056-.171.035-.321.092-.473.155l.654.153c-.583-1.025-1.922-1.701-3.227-1.631-.162.01-.314.029-.486.059-.183.035-.327.073-.44.11-.327.106-.593.231-.84.413-.503.343-.848.832-1.01 1.355l.452-.232c-.281-.015-.549-.007-.828.056-.144.029-.282.063-.38.107-.101.033-.255.097-.348.156-.44.246-.768.617-.897 1.028"/><path d="m25.557 11.171c.494.011.947.123 1.334.314.108.059.163.094.271.163.113.061.184.129.25.185.134.121.263.277.376.424l.163.212.355-.077c.446-.098.909-.12 1.344-.024.209.039.442.126.607.19.28.126.377.199.567.339.671.504 1.017 1.322.859 2.102l-.093.451.439.067c.104.018.209.036.293.067.15.055.189.072.295.128.19.098.363.233.5.401.284.328.412.783.321 1.257.343-.371.416-.953.196-1.477-.12-.259-.306-.505-.546-.705-.106-.1-.299-.212-.393-.265-.159-.083-.313-.139-.471-.191l.348.521c.45-1.037.02-2.354-1.014-3.116-.23-.175-.598-.375-.815-.457-.339-.134-.626-.217-.958-.248-.644-.084-1.289.02-1.836.257l.518.134c-.194-.188-.396-.354-.657-.486-.132-.073-.257-.135-.366-.166-.104-.044-.27-.096-.387-.115-.522-.112-1.067-.072-1.5.115"/></g><g fill="#fcb334"><ellipse transform="matrix(.1737-.9848.9848.1737-17.491 45.25)" cx="18.217" cy="33.05" rx="4.161" ry="4.344"/><ellipse transform="matrix(.1737-.9848.9848.1737-21.12 56.666)" cx="23.21" cy="40.917" rx="3.121" ry="3.259"/><ellipse transform="matrix(.1738-.9848.9848.1738-28.445 51.35)" cx="16.38" cy="42.628" rx="2.079" ry="2.172"/><ellipse transform="matrix(.1733-.9849.9849.1733-30.23 59.58)" cx="20.377" cy="47.795" rx="1.457" ry="1.521"/></g><g fill="#42ade2"><path d="m44.48 14.777l9.59-8.291-4.57-3.249z"/><path d="m48.893 16.485l9.107 2.032v-4.829z"/><path d="M41.33 11.723 43.587 2 38.676 2z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.5 25.1l6.2 35.4c.7 3.9 25-.3 24.3-4.3l-1.3-7.2c2.5-1.9 4-5.2 4.2-8 .2-2.9-.4-8.5-1.4-11.3-.8-2.2-3.9-1.9-6.5-1.3l-1.3-7.4-24.2 4.1m28.6 20.1l-2.4-13.6c1.5-.3 3-.3 3.4.8.8 2.5.9 6.4.8 9-.2 1.4-.8 2.7-1.8 3.8m-26.5-18.2l20.9-3.7 5.4 30.4c.6 3.2-20.3 6.9-20.9 3.7l-5.4-30.4" opacity=".8" fill="#a1b8c7"/><path d="m52.2 34.1l-18.7 3.3 3.3 18.9c.5 2.9 19.2-.4 18.7-3.3l-3.3-18.9" fill="#fdb73e"/><path d="m26.6 26.5c-.3-4.2 5-7.2 8.9-5.5 1.3-3.6 5.9-3.6 7.9-1.8 1.6-.9 5.2-1.5 7.1.5 3.9-1.6 7.2 4.6 1 5.3-9-1.5-19.1 16.5-19.1 16.5-1.7.3-4-.5-3.5-3.2-1 .1-2.6-1.6-2.2-3.2-4.1-1.1-3.8-7.5-.1-8.6" fill="#d8d2b8"/><path d="m27.4 26.9c-.3-4.7 5.9-6.4 8.7-5.3 1-2.7 5-3.9 7.3-1.7 1.2-.8 5-1.6 6.8.3 4.2-1.7 6.2 5 .4 4.9l1.6 9-13.6 2.4c-.1 1-1.5 2-3.2 1.7.3 1.7-1.4 3.2-3 3.4-1.9.2-3.4-1.6-2.6-3.7-1.8 0-2.6-1.6-2.2-3-3.9-1-3.9-7.2-.2-8" fill="#fff"/><g fill="#fee0af"><path d="m46.6 37c2.1-.4 4.2 1 4.5 3 .4 2.1-1.1 4-3.2 4.4-2.1.4-4.2-1-4.5-3-.4-2 1.1-4 3.2-4.4"/><ellipse transform="matrix(.9848-.1736.1736.9848-7.6637 8.1429)" cx="42.7" cy="47.9" rx="3" ry="2.8"/><ellipse transform="matrix(.9848-.1735.1735.9848-7.8355 9.2385)" cx="48.9" cy="49.4" rx="2" ry="1.9"/><path d="m45.1 52.8c.8-.1 1.5.3 1.6 1.1.1.7-.4 1.4-1.1 1.5-.8.1-1.5-.3-1.6-1.1-.2-.6.3-1.3 1.1-1.5"/></g><path d="m12.2 11.1l-1.4 8.2c-2.9-.7-6.3-.9-7.1 1.5-1.2 3.1-1.9 9.3-1.7 12.4.2 3.2 1.9 6.7 4.7 8.8l-1.4 8c-.8 4.3 25.9 9 26.7 4.7l6.9-38.9-26.7-4.7m-6.7 22.8c-.2-2.9-.1-7.2.9-9.9.4-1.2 2-1.3 3.7-.9l-2.7 14.9c-1.1-1.2-1.8-2.7-1.9-4.1m25.2 17.5c-.6 3.5-23.6-.5-22.9-4l5.9-33.5 23 4-6 33.5" opacity=".8" fill="#a1b8c7"/><path d="m12.8 25.7l20.5 3.6-3.6 20.8c-.6 3.1-21.1-.5-20.5-3.6l3.6-20.8" fill="#fdb73e"/><path d="m41 17.4c.3-4.7-5.5-7.9-9.8-6.1-1.4-3.9-6.5-4-8.7-1.9-1.8-1-5.8-1.7-7.8.6-4.3-1.8-7.9 5.1-1.1 5.8 10-1.7 21 18.2 21 18.2 1.9.3 4.4-.6 3.8-3.6 1.1.2 2.8-1.8 2.5-3.5 4.4-1.2 4.1-8.3.1-9.5" fill="#d8d2b8"/><path d="m40 17.9c.3-5.2-6.5-7.1-9.5-5.8-1.1-2.9-5.5-4.3-8.1-1.9-1.3-.9-5.4-1.8-7.4.3-4.6-1.8-6.9 5.5-.5 5.4l-1.7 9.9 15 2.6c.1 1.1 1.7 2.2 3.5 1.9-.4 1.9 1.5 3.6 3.3 3.8 2 .2 3.8-1.8 2.8-4 2 0 2.8-1.8 2.4-3.3 4.3-1.3 4.3-8.1.2-8.9" fill="#fff"/><g fill="#d8d2b8"><path d="m32.7 14.9c.2-1.8-1.2-4-4.5-3.3-.4-.8-1.3-1.2-2.7-.4 1.6 0 2.1.5 2.4 1.3 3.3 0 3.6 3 3.6 3s1.4.1 1.8 1.9c.6-.8.5-2-.6-2.5"/><path d="m34.5 22.3c-2.4-2.3-4.8-1.3-5.6.3-1.2-.2-1.9.7-2 1.6 1.4-1.3 2.6-.6 2.6-.6s1.9-2.3 4.7-.5c.7-.6 1.4-.6 2.7.2-.7-1.3-1.6-1.4-2.4-1"/></g><g fill="#fee0af"><path d="m18.9 28.9c-2.4-.4-4.6 1.1-5 3.3-.4 2.3 1.2 4.4 3.6 4.9 2.4.4 4.6-1.1 5-3.3.4-2.3-1.2-4.4-3.6-4.9"/><ellipse transform="matrix(.1733-.9849.9849.1733-21.1092 56.6803)" cx="23.2" cy="40.9" rx="3.1" ry="3.3"/><path d="m16.7 40.6c-1.2-.2-2.3.5-2.5 1.7-.2 1.1.6 2.2 1.8 2.4 1.2.2 2.3-.5 2.5-1.7.2-1.1-.6-2.2-1.8-2.4"/><path d="m20.6 46.4c-.8-.1-1.6.4-1.8 1.2-.1.8.4 1.5 1.2 1.7.8.1 1.6-.4 1.8-1.2.2-.8-.3-1.6-1.2-1.7"/></g><g fill="#42ade2"><path d="m44.5 14.8l9.6-8.3-4.6-3.3z"/><path d="m48.9 16.5l9.1 2v-4.8z"/><path d="m41.3 11.7l2.3-9.7h-4.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f37c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f37c.svg
index 5f05134..1491a98 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f37c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f37c.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="m12.907 8.358c-.656-.106-1.548-1.75-3.898-4.102-2.821-2.818-4.789-2.661-6.102-1.347-1.312 1.311-1.47 3.28 1.35 6.1 2.351 2.351 3.995 3.242 4.101 3.898.587 3.678-1.812 7.08-.35 8.539l13.437-13.438c-1.462-1.461-4.862.938-8.538.35"/><path fill="#b4d7ee" d="m60.986 39.57c1.352 1.352 1.352 3.545-.001 4.896l-16.52 16.52c-1.351 1.352-3.544 1.352-4.895 0l-26.763-26.763c-1.353-1.351-1.352-3.544 0-4.895l16.521-16.521c1.352-1.351 3.544-1.352 4.896 0l26.762 26.763"/><path fill="#fff" d="m56.53 40.14c1.034 1.033 1.034 2.713 0 3.748l-12.648 12.646c-1.035 1.035-2.713 1.035-3.747 0l-18.311-18.31 32.792.002 1.914 1.914"/><g fill="#2090bc"><path transform="matrix(.7071-.7071.7071.7071-15.587 23.415)" d="m15.985 29.31h8.97v2.423h-8.97z"/><path transform="matrix(.7071-.7071.7071.7071-17.452 27.916)" d="m20.485 33.811h8.97v2.423h-8.97z"/><path transform="matrix(.707-.7072.7072.707-19.316 32.422)" d="m24.985 38.31h8.97v2.423h-8.97z"/><path transform="matrix(.7072-.707.707.7072-21.18 36.907)" d="m29.486 42.812h8.97v2.422h-8.97z"/><path transform="matrix(.7071-.7072.7072.7071-23.04 41.42)" d="m33.987 47.31h8.968v2.423h-8.968z"/><path transform="matrix(.7072-.7071.7071.7072-24.907 45.91)" d="m38.486 51.812h8.969v2.423h-8.969z"/><path d="m6.699 25.356c-1.533-1.533-.423-2.906 1.11-4.439l13.11-13.11c1.532-1.533 2.906-2.642 4.438-1.109l3.374 3.375c1.532 1.532.426 2.906-1.108 4.438l-13.11 13.11c-1.533 1.534-2.908 2.642-4.44 1.11l-3.375-3.375"/></g><g fill="#095972"><path transform="matrix(.7067-.7076.7076.7067-15.317 14.414)" d="m9.184 21.98h1.081v7.397h-1.081z"/><path transform="matrix(.7071-.7071.7071.7071.887 21.11)" d="m25.382 5.784h1.077v7.397h-1.077z"/><path transform="matrix(.7071-.7071.7071.7071-1.812 19.988)" d="m22.682 8.483h1.08v7.397h-1.08z"/><path transform="matrix(.7076-.7067.7067.7076-4.515 18.854)" d="m19.982 11.183h1.079v7.397h-1.079z"/><path transform="matrix(.7071-.7071.7071.7071-7.211 17.752)" d="m17.284 13.882h1.077v7.397h-1.077z"/><path transform="matrix(.7076-.7067.7067.7076-9.908 16.618)" d="m14.584 16.581h1.079v7.397h-1.079z"/><path transform="matrix(.7071-.7071.7071.7071-12.61 15.515)" d="m11.883 19.28h1.08v7.398h-1.08z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.9 8.4c-.6-.1-1.5-1.8-3.9-4.1-2.8-2.9-4.8-2.7-6.1-1.4-1.3 1.3-1.5 3.3 1.4 6.1 2.4 2.4 4 3.2 4.1 3.9.5 3.7-1.9 7.1-.4 8.5l13.4-13.4c-1.4-1.5-4.8.9-8.5.4" fill="#ffe62e"/><path d="M61,39.6c1.4,1.4,1.4,3.5,0,4.9L44.5,61c-1.4,1.4-3.5,1.4-4.9,0L12.8,34.2c-1.4-1.4-1.4-3.5,0-4.9l16.5-16.5
+ c1.4-1.4,3.5-1.4,4.9,0L61,39.6z" fill="#b4d7ee"/><path d="m56.5 40.1c1 1 1 2.7 0 3.7l-12.6 12.7c-1 1-2.7 1-3.7 0l-18.4-18.3h32.8l1.9 1.9" fill="#fff"/><g fill="#2090bc"><path transform="matrix(.7071-.7071.7071.7071-15.5879 23.4144)" d="m16 29.3h9v2.4h-9z"/><path transform="matrix(.7071-.7071.7071.7071-17.4524 27.9141)" d="m20.5 33.8h9v2.4h-9z"/><path transform="matrix(.707-.7072.7072.707-19.3167 32.4211)" d="m25 38.3h9v2.4h-9z"/><path transform="matrix(.7072-.707.707.7072-21.1777 36.9065)" d="m29.5 42.8h9v2.4h-9z"/><path transform="matrix(.7071-.7072.7072.7071-23.0432 41.4224)" d="m34 47.3h9v2.4h-9z"/><path transform="matrix(.7072-.7071.7071.7072-24.9059 45.9132)" d="m38.5 51.8h9v2.4h-9z"/><path d="m6.7 25.4c-1.5-1.5-.4-2.9 1.1-4.4l13.1-13.2c1.5-1.5 2.9-2.6 4.4-1.1l3.4 3.4c1.5 1.5.4 2.9-1.1 4.4l-13.1 13.1c-1.5 1.5-2.9 2.6-4.4 1.1l-3.4-3.3"/></g><g fill="#095972"><path transform="matrix(.7067-.7076.7076.7067-15.3166 14.4145)" d="m9.2 22h1.1v7.4h-1.1z"/><path transform="matrix(.7071-.7071.7071.7071.8863 21.1058)" d="m25.4 5.8h1.1v7.4h-1.1z"/><path transform="matrix(.7071-.7071.7071.7071-1.8119 19.9882)" d="m22.7 8.5h1.1v7.4h-1.1z"/><path transform="matrix(.7076-.7067.7067.7076-4.5142 18.8545)" d="m20 11.2h1.1v7.4h-1.1z"/><path transform="matrix(.7071-.7071.7071.7071-7.2112 17.7513)" d="m17.3 13.9h1.1v7.4h-1.1z"/><path transform="matrix(.7076-.7067.7067.7076-9.9077 16.6192)" d="m14.6 16.6h1.1v7.4h-1.1z"/><path transform="matrix(.7071-.7071.7071.7071-12.6104 15.5146)" d="m11.9 19.3h1.1v7.4h-1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f37d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f37d.svg
index 277c38a..95bd382 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f37d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f37d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#dae3ea" cx="31" cy="32" r="22"/><path fill="#acb8bf" d="m31 17.08c8.647 0 15.675 6.633 15.969 14.92.007-.18.031-.358.031-.54 0-8.54-7.164-15.46-16-15.46-8.838 0-16 6.921-16 15.46 0 .181.021.359.026.54.299-8.287 7.326-14.92 15.974-14.92"/><path fill="#fff" d="m31 46.92c-8.648 0-15.675-6.633-15.974-14.92-.005.18-.026.357-.026.54 0 8.54 7.162 15.46 16 15.46 8.836 0 16-6.921 16-15.46 0-.182-.024-.359-.031-.54-.294 8.287-7.322 14.92-15.969 14.92"/><g fill="#acb8bf"><path d="m60.52 7.42c-.239-.94-.714-.01-.714-.01s-.167 9.74-1.247 9.845c-1.08.106-.248-10.02-1.525-10.216-1.188-.189-.509 10.377-1.592 10.27-1.077-.114-1.26-9.849-1.26-9.849s-.48-.929-.717.005c-2.928 11.509-.558 16.215-.558 16.215s.4.989 1.35.995c.088-.005.021 27.335.027 31.01-.002 1.787 5.499 1.732 5.495-.047-.004-3.676-.11-31.01-.024-31.01.953 0 1.352-.989 1.352-.989s2.361-4.703-.587-16.219"/><path d="m2.62 7c1.238-.003 6.373 3.7 6.38 17.462.005 4.401-2.395 4.4-2.391 7.154.003 2.748.019 24.606.019 24.606s-2.634 1.807-4.592-.084l-.036-48.748c.001.001-.005-.391.62-.39"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32.8" cy="32" r="22" fill="#dae3ea"/><path d="m32.7 17.1c-8.6 0-15.7 6.6-16 14.9 0-.2 0-.4 0-.5 0-8.5 7.2-15.5 16-15.5 8.8 0 16 6.9 16 15.5 0 .2 0 .4 0 .5-.3-8.3-7.3-14.9-16-14.9" fill="#acb8bf"/><path d="m32.7 46.9c8.6 0 15.7-6.6 16-14.9 0 .2 0 .4 0 .5 0 8.5-7.2 15.5-16 15.5-8.8 0-16-6.9-16-15.5 0-.2 0-.4 0-.5.4 8.3 7.4 14.9 16 14.9" fill="#fff"/><g fill="#acb8bf"><path d="m3.5 7.4c.2-.9.7 0 .7 0s.2 9.7 1.2 9.8c1.1.2.3-10 1.6-10.2 1.2-.2.5 10.4 1.6 10.3 1.1-.1 1.3-9.9 1.3-9.9s.5-.9.7 0c2.9 11.5.6 16.2.6 16.2s-.4 1-1.4 1c-.1 0 0 27.3 0 31 0 1.8-5.5 1.7-5.5 0 0-3.7.1-31 0-31-1 0-1.4-1-1.4-1s-2.4-4.7.6-16.2"/><path d="m55.6 7c1.2 0 6.4 3.7 6.4 17.5 0 4.4-2.4 4.4-2.4 7.2 0 2.7 0 24.6 0 24.6s-2.6 1.7-4.6-.2v-48.7c0 0 0-.4.6-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f37e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f37e.svg
index 54753f2..2471401 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f37e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f37e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m33.34 12.18c-.944-1.31.08-1.895 1.336-1.661-1.195-1.468-.458-2.486 1.424-2.086.588.124-.23 1.117-.758 1.081 1.583 1.185.715 2.436-.961 2.141 1.481 2.034-1.063 1.534-2.176 1.618-.291 1.522 1.447 3.259.867 3.259-1.295 0-3.358-4.804.268-4.352"/><path fill="#ff8736" d="m9.412 19.75c-1.01.454-3.89-4.052-.358-4.091-2.027-1.844-1.767-2.732.955-2.787-3.118-3.124 1.809-4.255 2.328-2.583.154.502-1.509-.44-2.051.457-.625 1.037 3.837 3.654-.768 3.5 1.693 1.724 1.796 2.527-.905 2.817.352.49 1.439 2.398.799 2.687"/><path fill="#c28fef" d="m19.2 21.311c-1.209 1.574-3.052 2.453-4.448 3.829-1.453 1.433-2.321 5.374-2.321 5.374s.52-4.11 1.908-5.692c1.257-1.431 3.056-2.474 4.03-4.139 1.74-2.976.187-6.96-2.035-9.235.467-.416 1.086-.941 1.46-1.303 2.089 2.683 3.948 7.862 1.407 11.166"/><path fill="#ff8736" d="m40.34 49.36c-4.843 1.984-12.374 1.352-12.374 1.352s8.464 1.134 12.708-.549c6.625-2.628 15.513 2.814 15.513 2.814s1.172-.804 1.74-1.194c-4.072-2.531-12.281-4.597-17.587-2.423"/><path fill="#42ade2" d="m53.669 40.04c-2 .64-3.7 1.915-5.554 2.858-1.727.882-3.657 1.549-5.623 1.275-2.14-.298-5.488-3.082-5.488-3.082s3.556 2.451 5.694 2.501c2.185.048 4.153-1.092 5.883-2.309 3.233-2.274 6.945-4.639 11.1-3.73-.196.733-.588 2.196-.588 2.196s-2.093-.774-5.427.291"/><g fill="#ed4c5c"><path transform="matrix(.7071-.7071.7071.7071 3.343 21.907)" d="m27.05 5.858h2.121v2.121h-2.121z"/><path transform="matrix(.7069-.7073.7073.7069-25.425 52.83)" d="m49.969 56.03h2.121v2.122h-2.121z"/></g><path transform="matrix(.7073-.7069.7069.7073-4.1 48.851)" fill="#c28fef" d="m55.885 28.317h2.121v2.121h-2.121z"/><path transform="matrix(.7071-.7071.7071.7071-28.597 41.27)" fill="#42ade2" d="m34.455 54.09h2.12v2.121h-2.12z"/><path fill="#d3976e" d="m61.787 8.194l-1.395-2.402c-.439-.756-1.419-1.016-2.176-.58l-.691.396c-.57.326-.862.959-.782 1.572l-1.491.857c-.761.436-1.021 1.412-.582 2.164l.396.69c.442.758 1.419 1.016 2.178.582l1.479-.852c.497.393 1.208.475 1.79.139l.691-.397c.759-.435 1.023-1.411.583-2.169"/><path fill="#89664c" d="m61.787 8.194c0 0 .07.971-.813 1.477-.255.148-.483.283-.704.371-.179.07-.845.188-1.52-.982-.796-1.373-1.486-1.867-1.486-1.867s1.691 2.232.448 3.109c-.924.634-2.145 1.454-3.043-.1l.396.69c.442.758 1.419 1.016 2.178.582l1.479-.852c.497.393 1.208.475 1.79.139l.691-.397c.76-.436 1.024-1.412.584-2.17"/><path fill="#b2c1c0" d="m42.549 11.847c0 0 1.725 1.264 2.298 4.611.448 2.63 3.02 1.667 4.178 2.815l-3.866 1.539-3.664-.355-1.392.713c0 0 1.245-1.611 1.392-2.256.53-2.356.659-6.674 1.054-7.07"/><path fill="#3e4347" d="m42.549 11.847c0 0 1.725 1.264 2.298 4.611.448 2.63 3.02 1.667 4.178 2.815l-3.866 1.539-3.664-.355-1.392.713c0 0 1.245-1.611 1.392-2.256.53-2.356.659-6.674 1.054-7.07"/><path fill="#46732f" d="m35.456 32.446c3.414-6.664 5.4-8.219 7.278-10.09 0 0 .182-.18 1.887-1.869.336-.332 1.026-.396 1.61-.975.585-.582 1.452-2.568 2.076-3.183 0 0 .347.166.668-.15.316-.316-.169-1.115-1.444-2.381-1.275-1.268-2.08-1.748-2.398-1.432-.32.314-.15.66-.15.66-.621.619-2.623 1.479-3.209 2.063-.582.58-.646 1.264-.977 1.6-1.702 1.69-1.886 1.872-1.886 1.872-1.89 1.863-3.454 3.836-10.165 7.227-7.37 3.723-9.155 3.746-12.747 7.326l-13.42 13.324c-.783.777-.76 1.904 0 2.663l9.395 9.327c.766.756 1.9.779 2.683 0l13.42-13.322c3.604-3.569 3.628-5.342 7.379-12.656"/><path fill="#ffe791" d="m23.998 46.38c.674-2.512.025-5.303-1.961-7.275-1.985-1.971-4.796-2.615-7.328-1.945l-1.394-1.385-9.395 9.326 12.08 11.99 9.394-9.326-1.394-1.385"/><g fill="#3e4347"><path d="m14.14 39.549c2.338-.822 4.604-.377 6.217 1.223 1.611 1.6 2.059 3.85 1.23 6.17l-.102.281 2.224 2.206.673-.664-1.807-1.792c.822-2.576.266-5.066-1.548-6.867-1.815-1.801-4.321-2.354-6.919-1.539l-1.806-1.793-.67.666 2.226 2.211.282-.102"/><path d="M17.675 55.43 5.598 43.44 4.926 44.1 17 56.09z"/></g><g fill="#ffe791"><path d="m35.456 32.446c3.414-6.664 6.741-9.551 8.618-11.426l-2.268-.67-1.704.82 1.034-1.361-.365-3.066c-1.737 1.68-5.314 5.65-12.02 9.04-.643.324-1.229.613-1.792.887l7.608 7.552c.275-.559.566-1.139.894-1.777"/><path d="m32.1 34.443l2.684-5.323-2.684-2.67-5.366 2.67 1.536 2.537.14 1.121 1.132.14 2.558 1.525"/></g><path opacity=".5" fill="#3e4347" d="m40.1 21.17c0 0 2.079-2.281.716-4.507l-1.601 1.589c.399.746.809 1.967.367 3.432 0 0 2-.645 3.39.428l.925-.918c-.686-.41-2.515-1.299-3.797-.024"/><g fill="#ffe791"><path d="m42.19 18.534c.402-.746.531-2.136.057-3.384 0 0 .699-.084.796-.57.099-.484-.489-1.789-.489-2.732 0 0-.838.707-1.552.707-.711 0 .603 1.346.728 1.998 0 0-.963-.152-1.857-.152-.896 0 2.078 4.938.235 6.771-.001-.002 1.505-1.562 2.082-2.638"/><path d="m40.1 21.17c0 0 1.354-1.398 3.554-1.398 0 0 .24 1.018.631.629.393-.391-.193-1.332 1.342-1.332 1.538 0 2.18.662 3.396.205 0 0 .108 1.496-1.084 1.756-1.192.258-2.151-.189-2.151.408 0 .832-.635 1.877-1.891.629-1.263-1.25-2.617-1.516-3.797-.897"/></g><g fill="#e8e8e8"><path d="m51.33 15.04c-1.186.363-2.476-.432-2.871-1.775-.394-1.344.251-2.726 1.441-3.091 1.188-.359 2.476.433 2.872 1.776.396 1.344-.251 2.726-1.442 3.09"/><path d="m48.598 13.435c-1.387.422-2.773-.133-3.096-1.24-.327-1.107.53-2.347 1.915-2.771 1.385-.422 2.772.133 3.101 1.241.326 1.108-.538 2.348-1.92 2.77"/><path d="m53.43 18.524c-1.187.361-2.518-.576-2.965-2.095-.447-1.52.154-3.045 1.346-3.406 1.19-.365 2.52.574 2.966 2.094.448 1.519-.156 3.044-1.347 3.407"/><path d="m50.2 17.417c-1.602.488-3.289-.445-3.773-2.085-.484-1.641.426-3.365 2.023-3.854 1.602-.49 3.293.445 3.776 2.086.482 1.641-.426 3.364-2.026 3.853"/><path d="m52.53 20.838c-.934.283-2.01-.594-2.414-1.959-.404-1.363.025-2.698.953-2.983.935-.283 2.01.592 2.415 1.958.402 1.365-.026 2.699-.954 2.984"/><path d="m49.859 20.262c-.876.266-1.808-.266-2.079-1.191-.272-.926.216-1.891 1.096-2.158.874-.267 1.804.268 2.079 1.191.272.926-.219 1.891-1.096 2.158"/><path d="m51.2 22.417c-.777.236-1.625-.301-1.893-1.205-.265-.902.15-1.824.93-2.063s1.627.301 1.892 1.203c.266.902-.15 1.828-.929 2.065"/></g><g fill="#3e4347"><path opacity=".33" d="m54.58 14.652c.004.195.006.359.005.408 0 1.283-.597 2.382-1.461 2.931.059.188.095.387.095.596 0 .932-.609 1.686-1.374 1.734-.185.604-.616 1.029-1.124 1.029-.672 0-1.501-.443-1.41-.139.268.904 1.115 1.441 1.893 1.205.623-.191 1.01-.82 1-1.527.109-.006.219-.018.329-.051.793-.244 1.215-1.256 1.072-2.395 1.066-.459 1.591-1.89 1.169-3.327-.05-.169-.127-.314-.197-.464"/><path opacity=".33" d="m51.42 12.906c-.402 0-.77.141-1.076.371.088-.012.178-.029.27-.029 1.193 0 2.157 1.021 2.158 2.277-.001.26-.05.502-.123.734.372-.354.608-.857.609-1.426 0-1.062-.823-1.927-1.838-1.927"/><path opacity=".33" d="m48.642 12.298c.456-.389 1.071-.471 1.646-.283-.004-.004-.004-.004-.002-.006-.582-.703-1.582-.818-2.236-.26-.655.557-.717 1.58-.137 2.283.077.094.164.178.255.248-.238-.724-.08-1.511.474-1.982"/><path d="m30.771 31.686l-1.252-1.242.878-.871.147.146-.714.711.382.381.671-.666.146.146-.67.668.426.42.744-.738.146.146-.904.899"/><path d="m31.893 30.573l-1.251-1.244.241-.24 1.174.594c.108.057.188.1.243.127-.032-.059-.077-.145-.137-.262l-.579-1.154.216-.214 1.25 1.242-.153.152-1.049-1.039.695 1.391-.146.143-1.415-.709 1.064 1.059-.153.154"/><path d="m32.653 28.608c-.208-.207-.316-.422-.327-.646-.008-.223.072-.42.244-.59.111-.111.239-.184.386-.219.146-.035.29-.025.436.025.146.051.281.139.406.264.127.125.215.262.266.412.05.146.057.293.017.434-.04.143-.112.266-.217.369-.114.115-.246.189-.392.219-.148.035-.294.025-.438-.025-.144-.054-.271-.136-.381-.243m.168-.162c.15.15.307.23.473.236.164.008.307-.047.427-.164.119-.119.177-.262.167-.426-.01-.166-.096-.326-.258-.488-.1-.1-.205-.174-.314-.215-.111-.043-.218-.053-.324-.029-.105.023-.198.072-.279.152-.113.113-.171.25-.172.412-.003.16.091.336.28.522"/><path d="m34.19 27.584l.125-.164c.1.09.182.139.25.143.063.004.125-.02.18-.074.041-.041.066-.086.076-.133.009-.047.004-.094-.018-.137-.021-.045-.068-.102-.141-.172l-.861-.855.16-.16.854.846c.104.104.174.197.205.279.033.08.039.162.016.246-.024.082-.072.16-.143.23-.105.105-.221.156-.338.15-.12-.007-.242-.074-.365-.199"/><path d="m35.505 26.987l-1.252-1.244.16-.16 1.251 1.244-.159.16"/><path d="m35.29 25.989c-.208-.207-.318-.422-.326-.645-.01-.225.072-.422.242-.592.112-.109.24-.186.387-.219.146-.035.29-.025.436.025.146.051.281.139.407.264s.215.264.266.412c.05.148.056.293.017.434-.041.143-.113.266-.217.371-.115.111-.246.186-.394.219-.146.031-.292.023-.436-.029-.146-.051-.273-.133-.382-.24m.166-.16c.152.148.311.227.477.234.164.01.307-.045.426-.164s.177-.264.166-.428c-.01-.164-.096-.326-.257-.486-.101-.1-.206-.172-.316-.215-.109-.043-.217-.053-.323-.029-.104.021-.199.072-.277.152-.115.113-.172.25-.174.41-.003.164.091.336.278.526"/><path d="m37.27 25.24l-1.252-1.244.165-.164 1.618.344-.98-.977.154-.152 1.251 1.242-.165.166-1.619-.346.981.977-.153.154"/><path d="m38.493 24.02l-1.251-1.242.878-.871.147.148-.716.709.383.381.67-.666.146.146-.67.666.426.422.744-.74.147.146-.904.901"/><path fill-rule="evenodd" d="m13.725 48.4l-.434-.117c.034-.09.017-.189-.05-.258l-.174-.172c-.066-.068-.167-.084-.256-.051l-.117-.432-.282-1.039-.756.756-.756.756 1.037.281.434.117c-.033.09-.018.189.051.258l.172.171c.067.068.169.084.257.051l.119.434.279 1.037.757-.756.755-.756-1.036-.28"/><path d="m14.322 44.717c-.063.283-.035.564.058.828.091.266.251.51.454.713s.447.361.713.453c.264.094.544.121.828.059-.18.227-.504.342-.854.305-.352-.035-.724-.221-1-.502-.281-.279-.467-.65-.501-1-.038-.35.078-.675.304-.854"/><path fill-rule="evenodd" d="m20.288 46.645l.056-.055c.042-.043.046-.057.035-.092-.02-.061-.043-.121-.07-.18-.021-.043-.045-.088-.073-.135.589-1.475.287-3.225-.907-4.42-1.195-1.195-2.945-1.498-4.422-.908-.046-.027-.091-.053-.134-.072-.058-.029-.119-.051-.181-.07-.033-.012-.047-.008-.09.035l-.055.055c-.104.104-.076.051-.046.168.011.039.015.078.013.121-.316.18-.614.402-.885.672-1.603 1.602-1.603 4.197 0 5.799 1.602 1.599 4.196 1.599 5.798 0 .271-.271.494-.568.673-.887.042 0 .082.004.121.014.117.031.063.058.167-.045m-1.304-4.538c.976.975 1.277 2.367.906 3.602-.313-.377-.702-.752-.943-.955-.391-.326-.771-.545-1.142-.664-.345-.115-.688-.459-.804-.805-.119-.371-.338-.75-.665-1.141-.204-.242-.579-.631-.954-.943 1.235-.371 2.627-.07 3.602.906m-5.112 5.114c-1.414-1.412-1.412-3.701 0-5.113.019-.02.038-.039.058-.057-.251.43-.271.854-.082 1.27.203.447.571.807 1.021 1 .248.107.514.15.817.092.533-.102.667-.363 1.05-.525.336-.139.607.133.467.467-.16.385-.424.518-.525 1.051-.057.305-.014.57.093.816.193.451.554.82 1 1.023.417.188.84.17 1.271-.084-.019.02-.038.041-.058.059-1.412 1.411-3.701 1.411-5.112.001"/></g><path fill="#e8e8e8" d="m49.795 25.12c-1.039.438-2.134-.396-2.448-1.859-.314-1.465.276-3 1.313-3.439 1.04-.438 2.136.398 2.448 1.861s-.276 3-1.313 3.437"/><path opacity=".33" fill="#3e4347" d="m51.11 21.686c-.166-.781-.561-1.375-1.047-1.701.24.322.432.725.533 1.201.313 1.463-.275 3-1.313 3.438-.483.203-.977.123-1.4-.16.495.662 1.215.955 1.915.66 1.037-.434 1.625-1.975 1.312-3.438"/><path fill="#e8e8e8" d="m47.627 28.68c-1.038.436-2.133-.396-2.447-1.859-.314-1.467.276-3 1.313-3.439 1.039-.438 2.135.396 2.448 1.861.312 1.463-.277 3-1.314 3.437"/><path opacity=".33" fill="#3e4347" d="m48.94 25.25c-.167-.781-.561-1.375-1.047-1.701.239.322.431.723.533 1.201.313 1.463-.276 3-1.313 3.438-.483.203-.977.121-1.4-.162.495.664 1.215.957 1.914.662 1.037-.434 1.626-1.975 1.313-3.438"/><path fill="#e8e8e8" d="m47.09 33.1c-1.038.436-2.133-.396-2.447-1.859-.314-1.467.276-3 1.313-3.439 1.039-.438 2.135.396 2.448 1.861.312 1.463-.277 3-1.314 3.437"/><path opacity=".33" fill="#3e4347" d="m48.4 29.661c-.167-.781-.561-1.375-1.047-1.701.239.322.431.723.533 1.201.313 1.463-.276 3-1.313 3.438-.483.203-.977.121-1.4-.162.495.664 1.215.957 1.914.662 1.037-.434 1.626-1.975 1.313-3.438"/><path fill="#e8e8e8" d="m50.752 31.467c-.744.313-1.527-.283-1.753-1.33-.225-1.049.198-2.15.94-2.461.744-.314 1.527.283 1.752 1.332.224 1.047-.197 2.149-.939 2.459"/><path opacity=".33" fill="#3e4347" d="m51.691 29.01c-.119-.559-.4-.984-.75-1.217.172.23.309.518.383.859.223 1.047-.199 2.15-.941 2.461-.346.145-.697.086-1-.115.355.475.869.684 1.371.473.742-.31 1.163-1.412.939-2.461"/><path fill="#e8e8e8" d="m46.869 38.15c-.638.268-1.31-.244-1.504-1.143-.192-.9.171-1.846.807-2.111.639-.27 1.312.242 1.504 1.143.191.898-.17 1.843-.807 2.111"/><path opacity=".33" fill="#3e4347" d="m47.676 36.03c-.103-.48-.344-.844-.644-1.045.147.199.265.445.328.738.191.898-.17 1.844-.808 2.111-.296.125-.599.074-.859-.1.305.408.746.588 1.176.406.637-.264.998-1.211.807-2.11"/><g fill="#e8e8e8"><path d="m47.4 26.19c-1.038.436-2.133-.396-2.447-1.861s.276-3 1.313-3.438c1.039-.439 2.135.396 2.448 1.861.311 1.463-.277 3-1.314 3.438"/><path d="m48.45 21.717c-1.038.438-2.133-.396-2.447-1.859-.314-1.465.276-3 1.313-3.438 1.039-.438 2.135.397 2.449 1.86.312 1.463-.278 3-1.315 3.437"/></g><path opacity=".33" fill="#3e4347" d="m50.07 17.547c-.467-.002-.889-.197-1.198-.512.145.703.737 1.23 1.442 1.23.82 0 1.484-.705 1.484-1.571-.002-.164-.029-.318-.074-.467-.203.76-.865 1.318-1.654 1.32"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.3 26.8c0 0 1.7-2.2 5.6-3.2 3.1-.9 2.3-3.7 3.8-5.2l1.3 4.2-1 4.2.6 1.5c0 0-1.7-1.2-2.4-1.3-2.6-.3-7.5.2-7.9-.2" fill="#b2c1c0"/><path d="m18.3 26.8c0 0 1.7-2.2 5.6-3.2 3.1-.9 2.3-3.7 3.8-5.2l1.3 4.2-1 4.2.6 1.5c0 0-1.7-1.2-2.4-1.3-2.6-.3-7.5.2-7.9-.2" fill="#3e4347"/><path d="m38.3 30.7c-6.2-2.6-6.7-2.9-8.6-4.8l-1.2-2.6c-.3-.3-.3-1.1-.9-1.7-.6-.6-2.8-1.3-3.4-2 0 0 .2-.4-.1-.7-.3-.3-1.3.3-2.9 2-1.6 1.6-2.3 2.6-2 2.9.3.3.7.1.7.1.6.6 1.4 2.8 2 3.4.6.6 1.4.6 1.7.9l2.6 1.2c1.9 1.9 2.1 2.4 4.7 8.7 2.2 5.3 3.6 11.1 6.9 16 1.9 2.9 5.3 6.5 9.2 7.7.6.2 1.8.5 2.6-.3l11.8-11.9c.8-.8.5-2.1.3-2.7-1.1-3.8-4.8-7.3-7.6-9.3-4.7-3.3-10.6-4.7-15.8-6.9" fill="#46732f"/><path d="m39.9 31.3c-.5-.2-1.1-.4-1.7-.7-6.1-2.6-9.2-6.8-9.2-6.8l-1 2.7.7 1.9-1.4-1-3.6.8c0 0 4.5 3.4 7.3 9.9.2.6.4 1.1.7 1.6l1.7-1.7.7 1.7 2.7-1.8 1.1-.3.3-1.1 1.8-2.7-1.7-.7 1.6-1.8" fill="#ffe791"/><path d="m28.7 28.4c0 0-2.4-2.1-5.1-.2l1.7 1.5c.9-.6 2.3-1 3.9-.7 0 0-.6-2.1.9-3.9l-.9-1c-.6.7-1.8 2.9-.5 4.3" opacity=".5" fill="#3e4347"/><g fill="#ffe791"><path d="m25.9 26.3c-.8-.4-2.4-.3-3.9.4 0 0 0-.8-.6-.8-.5-.1-2.1.8-3.2.9 0 0 .7.9.6 1.7-.1.8 1.6-.9 2.4-1.1 0 0-.3 1.1-.4 2.2-.1 1 6-3 7.8-1.2.1 0-1.5-1.6-2.7-2.1"/><path d="m28.7 28.4c0 0-1.4-1.4-1.1-3.9 0 0 1.2-.4.8-.8-.4-.4-1.6.4-1.4-1.4.2-1.8 1-2.6.7-3.9 0 0 1.7-.3 1.9 1 .1 1.3-.5 2.5.2 2.4 1-.1 2.1.5.5 2.1-1.7 1.6-2.2 3.2-1.6 4.5"/><path d="m59.7 45.5c-4.7 4.7-9.3 9.3-14 14-2.5-1.6-4.6-3.7-6.2-6.2 4.7-4.7 9.3-9.3 14-14 2.5 1.7 4.5 3.7 6.2 6.2"/></g><g fill="#ede2d1"><path d="m18.5 22.7c.2-1.2-7.9-.7-10.4-.3-5.1.7-4.5 6.7.2 3.5 4.3-2.9 10.2-2.9 10.2-3.2"/><path d="m24.2 12.5c.2.3 4.3-8 2.9-7.5-1.1.6-3 7.2-2.9 7.5"/><path d="m21.2 20.4c.3-1.1-5.5-17.4-7.1-18.2-1.6-.8-3.9.7 2.6 10.9 2.8 4.4 3.9 9.3 4.5 7.3"/><path d="m16.9 24.3c-1.9.4-5.1 3.7-3.4 3 1.7-.6 4.6-3.3 3.4-3"/><path d="m23.1 18.3c1.3-1.2 4.4-4.6 2.8-4.1-1.4.3-4.1 5.3-2.8 4.1"/><path d="m21.8 8.3c-1 1.2-.7 7.7.1 9.8.8 2.2.8-11.1-.1-9.8"/><path d="m11.6 20.3c3.9-1.9-11.5-2.2-9.4-.4 2.1 1.8 7.6 1.2 9.4.4"/><ellipse transform="matrix(.9275-.3739.3739.9275-9.6759 5.4583)" cx="9.2" cy="27.7" rx="1.3" ry=".9"/><ellipse transform="matrix(.6623-.7492.7492.6623.1471 23.5294)" cx="26.2" cy="11.6" rx=".8" ry=".5"/><ellipse transform="matrix(.817-.5767.5767.817-14.2715 12.3578)" cx="12.3" cy="28.7" rx="1" ry=".7"/><ellipse transform="matrix(.9396-.3424.3424.9396-.4841 6.8167)" cx="19.1" cy="4.8" rx="1.1" ry="1.6"/><ellipse transform="matrix(.9821-.1884.1884.9821-.7659 4.6257)" cx="24" cy="6.3" rx=".5" ry=".8"/></g><path d="m8.9 10.1l-2.3 3.5c-.7 1.1-.4 2.6.7 3.4l1 .7c.8.6 1.9.5 2.7 0l2.2 1.5c1.1.7 2.6.4 3.4-.7l.7-1c.7-1.1.4-2.6-.7-3.4l-2.2-1.5c.2-.9-.2-2-1-2.5l-1-.7c-1.3-.7-2.8-.4-3.5.7" fill="#d3976e"/><path d="m8.9 10.1c0 0 1.3-.8 2.6.1.4.2.7.5 1 .7.2.2.8 1-.3 2.7-1.3 2-1.5 3.3-1.5 3.3s1.9-3.8 4-2.7c1.5.8 3.4 1.9 1.9 4.2l.7-1c.7-1.1.4-2.6-.7-3.4l-2.2-1.5c.2-.9-.2-2-1-2.5l-1-.7c-1.3-.6-2.8-.3-3.5.8" fill="#89664c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f37f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f37f.svg
index 45cfe66..74510dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f37f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f37f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#edd8b4" d="m57.957 18.294c0 0 1.688-6.426-4.662-5.02-.025-2.719-2.762-2.898-2.762-2.898.879-4.654-5.314-6.16-6.906-3.277-6.986-4.766-11.225-1.744-11.225-1.744s-2.978-6.24-9.09-1.699c-1.871-.758-9.348-.502-8.795 5.545-2.979-2.045-6.979 1.211-5.783 4.197-1.803.406-3.424 2.07-2.937 4.52 0 0-2.391 3.869.974 5.35l48.48 4.02c3.076-1.039 1.555-3.857 1.555-3.857 4.078-1.774 1.15-5.14 1.15-5.14"/><path fill="#fff8d6" d="m15.901 17.04c0 0 2.051-.5 1.515-2.244-.597-1.941-2.819-1.033-2.819-1.033s-.124-2.143-2.195-2.713c-2.068-.568-4.856 1.131-4.27 4.084 0 0-2.084 1.102-1.082 3 .996 1.904 2.486 1.09 2.486 1.09.876 2.635 3.295.664 3.295.664s2.02 2.361 3.748.049c1.134-1.516-.678-2.901-.678-2.901"/><path fill="#edd8b4" d="m13.41 14.615c-.843.006-.734-.895-1.312-1.525-1.456-1.59-.439 1.727-2.174 1.467-1.359-.205-1.954 1.771.195 2.154.894.158-.349 1.367.398 1.869.764.514 2.082-1.391 2.523-.707.924 1.426 2.769-1.125 1.143-1.271-.731-.067 1.802-2-.773-1.987"/><path fill="#c9ae81" d="m12.507 16.296c-.446-.389.61.223 1.097-.34.48-.564-.217-.854-.779-.381-.553.473-.453-1.488-1.046-1.672-.589-.186-.03.852.246 1.51.276.648.172 1.018-.747.361-.914-.652-1.641-.891-1.887-.395-.245.49.68.561 1.679.891 1 .33.247.068.222 1.082-.022 1.01 1.216.385.916-.465-.297-.85.998.898 1.576.547.579-.351-.34-.315-1.277-1.138"/><path fill="#fff8d6" d="m24.22 8.986c0 0 2.051-.5 1.515-2.244-.596-1.941-2.818-1.033-2.818-1.033s-.125-2.141-2.195-2.713c-2.069-.568-4.857 1.131-4.27 4.084 0 0-2.085 1.102-1.082 3 .996 1.904 2.486 1.09 2.486 1.09.875 2.635 3.293.664 3.293.664s2.02 2.361 3.75.051c1.135-1.518-.679-2.903-.679-2.903"/><path fill="#edd8b4" d="m21.725 6.558c-.844.006-.734-.893-1.313-1.525-1.455-1.59-.438 1.727-2.172 1.467-1.359-.203-1.954 1.771.194 2.154.894.16-.349 1.367.397 1.869.766.516 2.083-1.391 2.525-.707.923 1.426 2.768-1.125 1.143-1.271-.733-.067 1.801-2-.774-1.987"/><path fill="#c9ae81" d="m20.823 8.242c-.445-.389.61.221 1.097-.342.479-.563-.216-.854-.778-.381-.555.473-.454-1.488-1.046-1.672-.59-.186-.032.854.245 1.512.276.646.172 1.016-.746.359-.914-.652-1.641-.891-1.887-.395-.246.49.68.563 1.678.893 1 .33.248.068.223 1.08-.023 1.01 1.215.387.916-.463-.297-.85.998.898 1.576.547.578-.353-.341-.318-1.278-1.138"/><path fill="#fff8d6" d="m54.682 24.55c0 0 1.77 1.621 3.293.063 1.695-1.736-.613-3.271-.613-3.271s2.193-1.414 1.545-3.699c-.648-2.287-4.137-3.875-6.908-1.535 0 0-2.428-1.291-3.836.801-1.414 2.086.352 2.992.352 2.992-2.26 2.416 1.287 3.492 1.287 3.492s-1.275 3.324 2.219 3.549c2.292.147 2.661-2.392 2.661-2.392"/><path fill="#edd8b4" d="m55.744 20.744c-.516-.791.502-1.229.822-2.156.803-2.328-2.096.633-2.867-1.15-.607-1.398-3.061-.762-2.164 1.484.369.936-1.658.5-1.74 1.504-.082 1.031 2.732 1.115 2.279 1.943-.953 1.729 2.865 1.916 2.037.303-.375-.729 3.211.476 1.633-1.928"/><path fill="#c9ae81" d="m53.42 20.914c.141-.654.133.707 1.023.822.887.111.771-.719-.068-.959-.834-.236 1.301-1.326 1.139-1.996-.16-.664-.922.486-1.451 1.145-.52.654-.973.779-.836-.482.139-1.252-.047-2.078-.721-2.01-.67.066-.186.979.068 2.115.258 1.141.078.273-1.01.861-1.078.588.328 1.375 1.045.58.721-.793-.346 1.479.377 1.809s.131-.509.434-1.887"/><path fill="#fff8d6" d="m44.936 9.603c0 0 2.051-.502 1.516-2.244-.598-1.943-2.82-1.033-2.82-1.033s-.125-2.143-2.195-2.713c-2.068-.57-4.857 1.131-4.27 4.084 0 0-2.084 1.102-1.082 3 .996 1.906 2.486 1.09 2.486 1.09.877 2.637 3.293.666 3.293.666s2.02 2.361 3.75.049c1.134-1.518-.678-2.901-.678-2.901"/><path fill="#edd8b4" d="m42.44 7.175c-.844.006-.734-.895-1.313-1.527-1.455-1.59-.438 1.727-2.172 1.467-1.359-.203-1.953 1.773.195 2.156.895.158-.35 1.365.398 1.867.764.516 2.082-1.389 2.523-.707.924 1.426 2.768-1.125 1.143-1.27-.731-.066 1.801-2.01-.774-1.986"/><path fill="#c9ae81" d="m41.541 8.857c-.445-.389.611.223 1.098-.34.48-.564-.217-.854-.779-.381-.553.471-.453-1.488-1.047-1.674-.588-.186-.031.854.246 1.512.277.648.172 1.018-.746.361-.914-.652-1.641-.891-1.887-.395-.244.488.68.561 1.678.891 1 .33.248.068.223 1.08-.021 1.01 1.215.387.916-.463-.297-.85.998.898 1.576.547.579-.353-.34-.318-1.278-1.138"/><path fill="#fff8d6" d="m39.5 17.912c0 0 2.143-.523 1.584-2.344-.625-2.027-2.945-1.078-2.945-1.078s-.131-2.238-2.293-2.834c-2.158-.594-5.07 1.182-4.457 4.266 0 0-2.177 1.15-1.13 3.135 1.04 1.99 2.597 1.139 2.597 1.139.914 2.75 3.439.693 3.439.693s2.107 2.465 3.914.053c1.184-1.587-.709-3.03-.709-3.03"/><path fill="#edd8b4" d="m36.9 15.376c-.881.006-.768-.934-1.371-1.594-1.52-1.66-.459 1.803-2.27 1.531-1.418-.211-2.039 1.852.205 2.25.934.166-.365 1.428.416 1.951.797.537 2.172-1.451 2.635-.738.965 1.488 2.891-1.176 1.191-1.326-.763-.07 1.882-2.093-.806-2.074"/><path fill="#c9ae81" d="m35.957 17.13c-.467-.404.637.232 1.145-.355.502-.59-.227-.891-.813-.396-.578.492-.475-1.555-1.092-1.748-.615-.193-.033.891.258 1.578.287.678.178 1.063-.781.377-.955-.682-1.712-.93-1.97-.412-.254.512.71.586 1.751.932 1.047.344.26.072.232 1.127-.023 1.051 1.27.404.957-.482-.311-.887 1.041.938 1.646.57.606-.37-.354-.333-1.333-1.191"/><path fill="#fff8d6" d="m26.93 14.185c0 0 .816-1.85-.991-2.502-2.01-.729-2.587 1.498-2.587 1.498s-1.896-1.205-3.639.01c-1.736 1.215-1.98 4.346.887 5.691 0 0-.327 2.24 1.898 2.635 2.225.404 2.434-1.211 2.434-1.211 2.771.936 2.561-2.08 2.561-2.08s3.231-.09 2.314-2.797c-.601-1.773-2.877-1.244-2.877-1.244"/><path fill="#edd8b4" d="m23.355 14.589c-.507.639-1.205.012-2.093.064-2.233.133 1.202 1.377-.069 2.525-.997.902.323 2.547 1.95 1.16.678-.576.951 1.092 1.831.832.901-.264.079-2.412.927-2.33 1.773.168.723-2.768-.389-1.631-.499.513-.612-2.571-2.157-.62"/><path fill="#c9ae81" d="m24.24 16.289c-.6.102.559-.324.375-1.031-.188-.705-.857-.354-.795.355.065.701-1.541-.559-2.057-.225-.516.33.707.539 1.434.73.719.184.969.486-.146.779-1.107.295-1.75.697-1.479 1.184.269.482.891-.172 1.775-.725.889-.555.209-.145 1.054.488.841.625 1.065-.684.161-.973-.902-.291 1.369-.205 1.42-.855s-.477.064-1.742.273"/><path fill="#fff8d6" d="m33.943 5.636c0 0 .814-1.842-.986-2.492-2-.725-2.576 1.494-2.576 1.494s-1.89-1.199-3.623.01c-1.73 1.209-1.973 4.328.883 5.67 0 0-.326 2.229 1.891 2.623 2.215.402 2.424-1.207 2.424-1.207 2.759.932 2.55-2.072 2.55-2.072s3.217-.09 2.305-2.783c-.602-1.768-2.868-1.243-2.868-1.243"/><path fill="#edd8b4" d="m30.384 6.04c-.504.637-1.2.012-2.084.064-2.224.133 1.197 1.371-.069 2.516-.992.896.322 2.537 1.942 1.154.676-.574.948 1.086 1.823.828.897-.262.079-2.4.925-2.32 1.764.168.715-2.756-.388-1.625-.497.511-.61-2.561-2.149-.617"/><path fill="#c9ae81" d="m31.26 7.734c-.598.1.557-.324.374-1.029-.188-.701-.853-.352-.792.355.065.699-1.535-.559-2.049-.225-.512.33.704.537 1.429.729.716.184.965.482-.146.777-1.104.293-1.743.693-1.473 1.178.266.479.886-.172 1.769-.721.884-.555.206-.145 1.048.484.839.625 1.062-.68.161-.969-.898-.288 1.364-.204 1.415-.851.051-.646-.474.063-1.736.272"/><path fill="#fff8d6" d="m50.44 12.343c0 0 .873-1.98-1.063-2.682-2.156-.777-2.77 1.607-2.77 1.607s-2.035-1.289-3.898.012c-1.861 1.299-2.123 4.652.949 6.096 0 0-.35 2.398 2.033 2.822 2.383.436 2.607-1.299 2.607-1.299 2.969 1 2.742-2.227 2.742-2.227s3.463-.096 2.48-2.996c-.644-1.899-3.08-1.333-3.08-1.333"/><path fill="#edd8b4" d="m46.611 12.777c-.543.686-1.291.014-2.244.068-2.391.145 1.289 1.479-.072 2.707-1.068.965.346 2.73 2.09 1.242.727-.617 1.018 1.17 1.961.893.965-.285.084-2.584.992-2.498 1.9.182.773-2.965-.416-1.748-.535.551-.656-2.754-2.311-.664"/><path fill="#c9ae81" d="m47.557 14.599c-.641.109.6-.35.402-1.105-.201-.756-.918-.381-.852.379.068.752-1.65-.6-2.203-.24-.551.354.758.578 1.537.783.77.197 1.037.521-.156.836-1.189.314-1.877.746-1.584 1.268.285.516.953-.186 1.9-.775.951-.596.223-.156 1.129.52.902.672 1.141-.73.174-1.039-.967-.313 1.467-.223 1.521-.918.052-.697-.511.067-1.868.291"/><path fill="#ed4c5c" d="m10.781 17.687c-2.606 0-4.448 2.094-4.112 4.676l7.94 39.637h6.489l-5.283-39.637c-.172-2.582-2.425-4.676-5.03-4.676"/><path fill="#f9f9f9" d="m20.222 17.687c-2.606 0-4.579 2.094-4.407 4.676l5.283 39.637h6.489l-2.627-39.637c-.008-2.582-2.131-4.676-4.738-4.676"/><path fill="#ed4c5c" d="m29.663 17.687c-2.605 0-4.711 2.094-4.702 4.676l2.626 39.637h6.489l.027-39.637c.155-2.582-1.834-4.676-4.44-4.676"/><path fill="#f9f9f9" d="m39.1 17.687c-2.607 0-4.844 2.094-4.998 4.676l-.028 39.637h6.49l2.682-39.637c.316-2.582-1.539-4.676-4.146-4.676"/><path fill="#c94747" d="m40.469 62l4.182-2.832 1.943-35.458c.307-2.311-.236-4.598-1.23-5.104-1.01-.512-2.043 1.174-2.281 3.756l-2.614 39.638"/><path fill="#e8e8e8" d="m48.12 56.822l1.877-31.768c.35-2.037-.125-4.105-1.08-4.611-.965-.508-2.02.957-2.322 3.268l-1.944 35.457 3.469-2.346"/><path fill="#c94747" d="m50.994 54.875l2.297-28.477c.371-1.768-.057-3.609-.969-4.115-.926-.51-1.977.734-2.326 2.771l-1.877 31.768 2.875-1.947"/><path fill="#e8e8e8" d="m52.895 53.588l2.283-25.975c.375-1.492.35-2.803-.527-3.309-.881-.51-.988.326-1.359 2.094l-2.297 28.477 1.9-1.287"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51 11.9c1.9-5.8-5.4-9-8.4-5.8-3.9-6.4-12.2-1.8-12.2-1.8s-4.5-5-10.3-.4c-2.1-2.1-8.4-2.6-8.2 7.6-7 .6-6.9 10.4-3.7 11.9l46.2 4c4.5-1.8 6.2-13.8-3.4-15.5" fill="#edd8b4"/><path d="m21.8 4.8c.5-4.3-7.8-3.5-6.5 1.2-3.1 1.1-.9 5.8 1.6 4.6.1 3.7 6.3 2.8 5.4-1.1 2.3 1 4.3-5.2-.5-4.7" fill="#fff8d6"/><path d="m20.7 6.1c.9-1.6-2.1-3.4-2.3-.5-1.8-1.5-4.1 2.7-.9 2.8-1.5 2.3 2.4 3.7 3.1 1.5 3.1-.3 2.2-4.3.1-3.8" fill="#edd8b4"/><path d="m20.8 7.7c-1.2-.3-1-.4-.9-1.3.2-1.7-.8-1.7-.7-.1.1 1-.1 1.4-1.1.6-1.3-.9-1.4.1-.2.5 1.1.5.7.2.7 1.6 0 1.1.6 1.4.7 0 .1-1.4 0-1.3 1.1-.6 1.1.6 1.5-.4.4-.7" fill="#c9ae81"/><path d="m17.9 15.8c2.3-2-3.3-7.4-5.4-1.9-4.4-2.7-6.5 5.4-2.2 7.7 2.1 1.2 14.2.4 7.6-5.8" fill="#fff8d6"/><path d="m13.3 15.8c-1.2-1.8-4.8.5-1.9 2.3-6.3 2.9 11.4 5 5.9-.3 1.4-3.6-3.3-4.6-4-2" fill="#edd8b4"/><path d="m15.1 16.5c-1 1.1-1 .9-1.9.4-1.7-1.1-2.3.6-.4 1.4 1.1.4 1 .6 2.5 1.4 1.2.6 1.8 0 .3-.8-1.5-.8-1.4-.6 0-1.5 1.3-1.1.4-2-.5-.9" fill="#c9ae81"/><path d="m55.6 18.6c2.1-1.8-2.9-6.6-4.8-1.7-3.9-2.4-7.3 6-2 6.9-.4 3.6 5.2 3.6 5.2.6 3.6 1.7 5.9-4.8 1.6-5.8" fill="#fff8d6"/><path d="m51.5 18.6c-1.1-1.6-4.4.4-1.7 2-2.4 1.1.6 5.2 2.3 2.1 1.6 2.5 4.8-.7 3.1-2.4 1.1-3.1-3.1-4-3.7-1.7" fill="#edd8b4"/><path d="m53.1 19.2c-.9 1-.9.8-1.7.3-1.5-1-2.1-.1-.4.6 1 .4 1.3.7 0 1.4-1.5.8-.5 1.4.4.5 1-1 .5-.7 1.8 0 1.1.5 1.6 0 .3-.7-1.3-.7-1.3-.6 0-1.4 1.2-.8.4-1.7-.4-.7" fill="#c9ae81"/><path d="m35.8 7c2.2-1.9-3.1-6.9-5-1.8-4.1-2.5-7.6 6.2-2.1 7.2-.4 3.7 5.4 3.8 5.5.6 3.7 1.8 6-5 1.6-6" fill="#fff8d6"/><path d="m31.5 7c-1.1-1.7-4.5.4-1.8 2.1-2.5 1.1.6 5.4 2.4 2.2 1.6 2.6 5-.7 3.2-2.5 1.3-3.3-3.2-4.2-3.8-1.8" fill="#edd8b4"/><path d="m33.1 7.6c-1 1.1-.9.9-1.8.4-1.6-1-2.2-.1-.4.6 1 .4 1.3.8.1 1.4-1.6.9-.6 1.5.4.5 1-1 .5-.7 1.9 0 1.1.6 1.7 0 .3-.7-1.4-.8-1.3-.6 0-1.4 1.2-.9.4-1.7-.5-.8" fill="#c9ae81"/><path d="m27.6 16.1c.6-2.9-7-4-5.3 1.6-5 .4-2.9 7.4 2.9 7.4 8.2-.1 6.7-10.9 2.4-9" fill="#fff8d6"/><path d="m23.2 18.8c-1.6 7.9 9.9 5 5.1-.8-1-3.6-4.5-1.8-5.1.8" fill="#edd8b4"/><path d="m25.7 18.2c-.1 1.5-1.2.8-2 1.5-2.3 2 3.9 3.9 4.9.3.2-.9-2.6.1-2.1-1.4.6-1.5-.6-1.7-.8-.4" fill="#c9ae81"/><path d="m45.3 9.3c.6-2.9-6.9-3.9-5.2 1.6-4.9.4-2.3 9.7 2.8 7.2 2 3.3 6.8-.1 4.9-2.7 4.1-.9 1.8-7.9-2.5-6.1" fill="#fff8d6"/><path d="m41.8 11.9c-2-.7-3.4 3.1-.1 2.8-1.3 2.4 3.9 4.1 3.3.4 3 1.2 3.7-3.6 1.1-3.9-1.1-3.6-5.3-1.7-4.3.7" fill="#edd8b4"/><path d="m43.6 11.4c-.1 1.5-.2 1.3-1.2 1.3-1.9.1-1.8 1.2 0 .8 1.1-.3 1.6-.2.9 1.2-.8 1.7.5 1.6.7.1.2-1.5 0-.9 1.5-1.1 1.3-.2 1.4-1-.2-.8-1.6.2-1.4.3-.9-1.2.5-1.4-.7-1.6-.8-.3" fill="#c9ae81"/><path d="m7.8 22.4l7.9 39.6h6.5l-5.3-39.6c-.4-5.6-9.9-5.6-9.1 0" fill="#ed4c5c"/><path d="m16.9 22.4l5.3 39.6h6.5l-2.7-39.6c0-5.6-9.5-5.6-9.1 0" fill="#f9f9f9"/><path d="m26 22.4l2.7 39.6h6.5v-39.6c.3-5.6-9.2-5.6-9.2 0" fill="#ed4c5c"/><path d="m35.2 22.4v39.6h6.4l2.7-39.6c.6-5.6-8.8-5.6-9.1 0" fill="#f9f9f9"/><path d="m41.6 62l4.1-2.8 1.9-35.5c.6-4.3-3-5.9-3.4-1.3l-2.6 39.6" fill="#c94747"/><path d="m49.2 56.8l1.9-31.8c.7-4-2.8-5.6-3.4-1.3l-1.9 35.5 3.4-2.4" fill="#e8e8e8"/><path d="m52.1 54.9l2.3-28.5c.8-3.7-2.6-5.3-3.3-1.3l-1.9 31.8 2.9-2" fill="#c94747"/><path d="m54 53.6l2.3-26c.2-2.9-1.6-3.9-1.9-1.2l-2.3 28.5 1.9-1.3" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f380.svg b/build/js/jsxc/lib/emojione/assets/svg/1f380.svg
index e0e5632..12c535e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f380.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f380.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="m15.347 13.1c0 0 .717 20.21-13.347 32.904h13v16c0 0 13.553-19.215 13.553-48.915l-13.206.011"/><path d="m48.654 13.1c0 0-.719 20.21 13.346 32.904h-13v16c0 0-13.553-19.215-13.553-48.915l13.207.011"/></g><path fill="#ff5760" d="m30.662 13.97c0 5.081-5.659 10.02-12.577 10.981l-5.537.768c-6.917.959-11.576-1.293-10.353-5 1.224-3.709 1.224-9.782 0-13.492-1.223-3.71 3.436-5.962 10.353-5l5.537.768c6.917.958 12.577 5.9 12.577 10.981"/><path fill="#c94747" d="m3.887 21.265c-.543.52.082 1.072.271 1.317.568.742 2.268 1.536 5.333 1.536.88 0 1.817-.068 2.785-.202l5.537-.768c3.875-.538 7.358-2.517 9.306-4.983-.001 0-16.803-3.049-23.23 3.1"/><path fill="#ff5760" d="m33.34 13.97c0 5.081 5.658 10.02 12.576 10.981l5.537.768c6.916.959 11.574-1.293 10.352-5-1.223-3.709-1.223-9.782 0-13.492 1.223-3.71-3.436-5.962-10.352-5l-5.537.768c-6.918.958-12.576 5.9-12.576 10.981"/><g fill="#c94747"><path d="m60.11 21.265c.545.52-.082 1.072-.27 1.317-.568.742-2.268 1.536-5.332 1.536-.881 0-1.818-.068-2.785-.202l-5.537-.768c-3.875-.538-7.357-2.517-9.307-4.983.001 0 16.804-3.049 23.23 3.1"/><path d="m31.22 12.534c0 0-1.658 1.446-5.754-2.02-4.662-3.947-11.547 1.292-2.42 3.61 4.875 1.237 8.174-1.589 8.174-1.589"/><path d="m32.784 12.534c0 0 1.658 1.446 5.753-2.02 4.662-3.947 11.547 1.292 2.42 3.61-4.875 1.237-8.173-1.589-8.173-1.589"/><path d="m32 20.915c-3.738 0-4.661 2.764-4.661-6.842 0-9.608.923-6.843 4.661-6.843 3.738 0 4.662-2.766 4.662 6.843 0 9.606-.924 6.842-4.662 6.842"/></g><path fill="#ff5760" d="m32 21.09c-3.03 0-3.777 2.835-3.777-7.02 0-9.858.748-7.02 3.777-7.02 3.03 0 3.777-2.837 3.777 7.02 0 9.856-.748 7.02-3.777 7.02"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="m15.3 13.1c0 0 .7 20.2-13.3 32.9h13v16c0 0 13.6-19.2 13.6-48.9h-13.3"/><path d="m48.7 13.1c0 0-.7 20.2 13.3 32.9h-13v16c0 0-13.6-19.2-13.6-48.9h13.3"/></g><path d="m30.7 14c0 5.1-5.7 10-12.6 11l-5.5.8c-6.9 1-11.6-1.3-10.4-5 1.2-3.7 1.2-9.8 0-13.5-1.2-3.7 3.4-6 10.4-5l5.5.7c6.9.9 12.6 5.9 12.6 11" fill="#ff5760"/><path d="m3.9 21.3c-.5.5.1 1.1.3 1.3.6.7 2.3 1.5 5.3 1.5.9 0 1.8-.1 2.8-.2l5.5-.8c3.9-.5 7.4-2.5 9.3-5 0 .1-16.8-3-23.2 3.2" fill="#c94747"/><path d="m33.3 14c0 5.1 5.7 10 12.6 11l5.5.8c6.9 1 11.6-1.3 10.4-5-1.2-3.7-1.2-9.8 0-13.5s-3.4-6-10.4-5l-5.5.7c-6.9.9-12.6 5.9-12.6 11" fill="#ff5760"/><g fill="#c94747"><path d="m60.1 21.3c.5.5-.1 1.1-.3 1.3-.6.7-2.3 1.5-5.3 1.5-.9 0-1.8-.1-2.8-.2l-5.5-.8c-3.9-.5-7.4-2.5-9.3-5 0 .1 16.8-3 23.2 3.2"/><path d="m31.2 12.5c0 0-1.7 1.4-5.8-2-4.7-3.9-11.5 1.3-2.4 3.6 4.9 1.3 8.2-1.6 8.2-1.6"/><path d="m32.8 12.5c0 0 1.7 1.4 5.8-2 4.7-3.9 11.5 1.3 2.4 3.6-4.9 1.3-8.2-1.6-8.2-1.6"/><path d="m32 20.9c-3.7 0-4.7 2.8-4.7-6.8 0-9.6.9-6.8 4.7-6.8s4.7-2.8 4.7 6.8c0 9.6-1 6.8-4.7 6.8"/></g><path d="m32 21.1c-3 0-3.8 2.8-3.8-7 0-9.9.7-7 3.8-7s3.8-2.8 3.8 7c0 9.8-.8 7-3.8 7" fill="#ff5760"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f381.svg b/build/js/jsxc/lib/emojione/assets/svg/1f381.svg
index 2a174d1..bd62608 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f381.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f381.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#076170" d="m31.859 30.28v31.723c0 0 13.05-9.187 22.254-11.914 0 0 .375-19.594 6.103-29.427l-28.357 9.618"/><path fill="#b3690e" d="m40.11 57.15c0 0 .549-28.1 1.535-29.55.985-1.454 9.647-2.961 9.647-2.961s-3.544 26.311-2.651 27.985c.001.001-3.616 1.515-8.531 4.526"/><path fill="#3baacf" d="M31.859,62c0,0-9.202-7.751-23.474-11.914c0,0,1.126-16.077-4.132-28.422l27.606,8.613V62z"/><path fill="#e9c243" d="m14.183 52.688c0 0 8.38 3.441 9.01 4.466s.563-28.26.563-28.26-11.478-3.176-12.464-3.176c0 0 3.521 11.842 2.887 26.968"/><path opacity=".3" d="m31.859 30.28v5.308l25.741-8.796c.716-2.247 1.577-4.349 2.615-6.13l-28.356 9.618"/><path opacity=".3" d="m6.146 27.15c-.514-1.867-1.137-3.716-1.892-5.488l27.606 8.613v5.308l-25.714-8.433"/><path fill="#4fc7e8" d="M2 18.865 30.545 25.18 62 17.645 31.08 15.922z"/><path fill="#3baacf" d="m2 18.865l2.253 6.315 26.292 7.393v-7.393z"/><path fill="#076170" d="m30.545 32.573c0 0 23.756-8.828 29.671-9.187 0 0 .36-3.542 1.784-5.742l-31.455 7.536v7.393"/><g fill="#f0ae11"><path d="m10.545 20.756l5.727 5.504 6.391-2.823 9.337-2.885 11.644 1.447 6.06 1.211 4.901-3.793z"/><path d="m22.663 23.437l9.337-2.885 11.644 1.447 10.96-2.582-23.17-2.257-20.892 3.596z"/></g><path fill="#f8d048" d="m10.545 20.756v7.01l11.665 3.229.453-7.557z"/><path fill="#c47116" d="m43.644 21.999l.165 6.681 10.02-2.96.773-6.303z"/><path fill="#ea9f07" d="m37.25 17.338c0 0-.04-6.991 6.77-13.11 0 0-4.144 1.473-6.06 1.1-2.371-.462-3.116-3.328-3.116-3.328s-5.842 12.593-4.13 14.245c1.711 1.651 6.535 1.093 6.535 1.093"/><path fill="#f8d048" d="m28.447 21.361c0 0-3.888-7.972-12.174-12.167 0 0 6.468-.649 8.04-1.401 1.948-.93 3.01-3.373 3.01-3.373s7.219 12.638 6.592 14.544-5.471 2.397-5.471 2.397"/><path fill="#ea9f07" d="m32.583 20.463c0 0-6.06 2.358-13.895 2.358-16.366 0-18.731-11.866-2.532-10.703 13.324.955 16.427 8.345 16.427 8.345"/><path fill="#f0ae11" d="m31.453 20.425c0 0 7.201.56 13.916-1.145 14.02-3.558 8.816-14.239-4.357-9.723-10.834 3.716-9.559 10.868-9.559 10.868"/><g fill="#824000"><path d="m32.583 20.465c0 0-3.778 1.47-8.666 1.47-10.208 0-11.683-7.4-1.58-6.676 8.311.595 10.246 5.206 10.246 5.206"/><path d="m32.581 20.456c0 0 5.02.39 9.705-.798 9.779-2.481 6.146-9.931-3.038-6.78-7.557 2.591-6.667 7.578-6.667 7.578"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.9 30.3v31.7c0 0 13.1-9.2 22.3-11.9 0 0 .4-19.6 6.1-29.4l-28.4 9.6" fill="#076170"/><path d="m40.1 57.2c0 0 .5-28.1 1.5-29.5 1-1.5 9.6-3 9.6-3s-3.5 26.3-2.7 28c.1-.1-3.5 1.4-8.4 4.5" fill="#b3690e"/><path d="M31.9,62c0,0-9.2-7.8-23.5-11.9c0,0,1.1-16.1-4.1-28.4l27.6,8.6V62z" fill="#3baacf"/><path d="m14.2 52.7c0 0 8.4 3.4 9 4.5s.6-28.3.6-28.3-11.5-3.2-12.5-3.2c0 0 3.5 11.9 2.9 27" fill="#e9c243"/><path d="m31.9 30.3v5.3l25.7-8.8c.7-2.2 1.6-4.3 2.6-6.1l-28.3 9.6" opacity=".3"/><path d="m6.1 27.2c-.5-1.9-1.1-3.7-1.9-5.5l27.6 8.6v5.3l-25.7-8.4" opacity=".3"/><path fill="#4fc7e8" d="m2 18.9l28.5 6.3 31.5-7.6-30.9-1.7z"/><path fill="#3baacf" d="m2 18.9l2.3 6.3 26.2 7.4v-7.4z"/><path d="m30.5 32.6c0 0 23.8-8.8 29.7-9.2 0 0 .4-3.5 1.8-5.7l-31.5 7.5v7.4" fill="#076170"/><g fill="#f0ae11"><path d="m10.5 20.8l5.8 5.5 6.4-2.9 9.3-2.8 11.6 1.4 6.1 1.2 4.9-3.8z"/><path d="m22.7 23.4l9.3-2.8 11.6 1.4 11-2.6-23.2-2.2-20.9 3.6z"/></g><path fill="#f8d048" d="m10.5 20.8v7l11.7 3.2.5-7.6z"/><path fill="#c47116" d="m43.6 22l.2 6.7 10-3 .8-6.3z"/><path d="m37.3 17.3c0 0 0-7 6.8-13.1 0 0-4.1 1.5-6.1 1.1-2.4-.4-3.2-3.3-3.2-3.3s-5.8 12.6-4.1 14.2c1.7 1.7 6.6 1.1 6.6 1.1" fill="#ea9f07"/><path d="m28.4 21.4c0 0-3.9-8-12.2-12.2 0 0 6.5-.6 8-1.4 1.9-.9 3-3.4 3-3.4s7.2 12.6 6.6 14.5-5.4 2.5-5.4 2.5" fill="#f8d048"/><path d="m32.6 20.5c0 0-6.1 2.4-13.9 2.4-16.4-.1-18.7-11.9-2.5-10.8 13.3 1 16.4 8.4 16.4 8.4" fill="#ea9f07"/><path d="m31.5 20.4c0 0 7.2.6 13.9-1.1 14-3.6 8.8-14.2-4.4-9.7-10.8 3.7-9.5 10.8-9.5 10.8" fill="#f0ae11"/><g fill="#824000"><path d="m32.6 20.5c0 0-3.8 1.5-8.7 1.5-10.2 0-11.7-7.4-1.6-6.7 8.3.6 10.3 5.2 10.3 5.2"/><path d="m32.6 20.5c0 0 5 .4 9.7-.8 9.8-2.5 6.1-9.9-3-6.8-7.6 2.6-6.7 7.6-6.7 7.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f382.svg b/build/js/jsxc/lib/emojione/assets/svg/1f382.svg
index c9f6154..0bbef8c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f382.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f382.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#d0d0d0" cx="32" cy="49.38" rx="30" ry="12.616"/><path fill="#d3976e" d="M7.7,24.841v22.496c0,5.645,10.879,10.221,24.3,10.221c13.419,0,24.298-4.576,24.298-10.221V24.841H7.7z"/><g fill="#cea9f7"><path d="m7.703 29.662c-.001.008-.003.017-.003.026l.014-.026h-.011"/><path d="m56.3 29.662c0 .009 0 .018 0 .026v-.026"/></g><g fill="#ffdd7d"><path d="m56.3 31.415c-.11 4.01-10.05 8.446-24.299 8.446-14.244 0-24.19-4.438-24.3-8.447v6.125c1.333.955 2.992 1.827 4.956 2.592 5.2 2.024 12.07 3.14 19.344 3.14 7.273 0 14.14-1.115 19.343-3.14 1.965-.765 3.623-1.637 4.955-2.592v-6.124"/><path d="m56.3 40.962c-.109 4.01-10.05 8.447-24.298 8.447-14.244 0-24.19-4.438-24.3-8.447v6.127c1.333.954 2.992 1.826 4.956 2.592 5.2 2.023 12.07 3.139 19.344 3.139 7.273 0 14.14-1.115 19.343-3.139 1.965-.766 3.623-1.638 4.955-2.592v-6.127"/></g><ellipse fill="#ff2c68" cx="32" cy="24.841" rx="24.3" ry="10.22"/><path fill="#a80038" d="m32 35.06c-13.421 0-24.3-4.575-24.3-10.22v16.878c0 .915.843 1.655 1.883 1.655 1.041 0 1.885-.74 1.885-1.655v-3.854c0-1.215 1.119-2.199 2.5-2.199 1.382 0 2.502.984 2.502 2.199v4.755c0 1.413 1.303 2.558 2.909 2.558 1.607 0 2.909-1.145 2.909-2.558v-4.858c0-1.271 1.173-2.301 2.618-2.301 1.447 0 2.619 1.029 2.619 2.301v3.098c0 .706.65 1.279 1.455 1.279.803 0 1.453-.573 1.453-1.279v-2.459c0-.918.848-1.662 1.893-1.662 1.042 0 1.888.744 1.888 1.662v4.22c0 1.413 1.305 2.558 2.91 2.558 1.607 0 2.91-1.145 2.91-2.558v-4.73c0-1.2 1.107-2.173 2.473-2.173s2.473.973 2.473 2.173v3.452c0 .707.65 1.278 1.455 1.278.803 0 1.455-.571 1.455-1.278v-2.416c0-.629.578-1.14 1.293-1.14.717 0 1.297.511 1.297 1.14v3.694c0 1.413 1.301 2.558 2.908 2.558s2.91-1.145 2.91-2.558v-17.71c-.085 5.61-10.931 10.15-24.298 10.15"/><path fill="#ffa4a4" d="m52.47 25.22c-1.799 1.964-4.084 3.493-6.544 4.568-2.469 1.068-5.095 1.769-7.757 2.134-5.331.73-10.765.363-15.985-.773-2.592-.591-5.229-1.325-7.604-2.671-1.165-.685-2.331-1.518-3.03-2.783-.34-.626-.51-1.39-.361-2.109.138-.722.54-1.338.999-1.848.937-1.022 2.143-1.695 3.349-2.264 1.227-.55 2.509-.953 3.808-1.261 2.602-.597 5.256-.957 7.927-1.046 2.668-.1 5.359.005 8.02.463 1.319.232 2.652.521 3.958 1.015.649.244 1.289.548 1.901.944.602.405 1.217.897 1.61 1.688.191.391.302.871.249 1.342-.05.471-.237.897-.47 1.244-.476.696-1.094 1.145-1.707 1.522-1.257.756-2.609 1.148-3.949 1.443-2.693.562-5.432.629-8.146.345-1.368-.172-2.685-.399-4.048-.883-.669-.253-1.34-.551-1.97-1.075-.309-.265-.624-.606-.803-1.105-.196-.495-.11-1.14.145-1.554.519-.841 1.212-1.176 1.874-1.496.685-.298 1.365-.47 2.051-.6 1.369-.252 2.74-.307 4.105-.229 1.372.094 2.712.286 4.051.856.33.151.659.333.964.609.289.253.629.744.494 1.306-.145.525-.507.791-.814.995-.317.203-.648.33-1 .44-1.357.393-2.731.389-4.073.218-.673-.107-1.33-.231-1.969-.54-.297-.162-.649-.359-.753-.778-.057-.461.339-.701.616-.847l.072.132c-.264.16-.527.421-.45.664.076.242.375.41.653.528.574.229 1.245.311 1.88.36 1.285.069 2.611-.053 3.784-.457.525-.168 1.179-.6 1.205-.9.082-.214-.439-.64-.991-.827-1.125-.414-2.458-.541-3.718-.587-1.277-.029-2.567.07-3.793.34-.609.136-1.213.318-1.735.568-.513.245-1.029.618-1.182.938-.074.159-.072.232-.023.358.048.126.189.3.383.458.394.322.948.579 1.517.779 1.137.389 2.449.608 3.705.741 2.545.27 5.159.183 7.659-.286 1.241-.245 2.475-.593 3.502-1.189.516-.296.99-.659 1.268-1.058.278-.407.332-.761.145-1.169-.185-.413-.612-.818-1.098-1.149-.493-.332-1.049-.612-1.628-.855-1.157-.485-2.412-.806-3.689-1.075-2.547-.506-5.162-.79-7.784-.812-2.618-.007-5.261.158-7.821.738-2.521.573-5.154 1.442-6.912 3.334-.419.47-.732 1.031-.827 1.62-.097.588.047 1.192.363 1.71.65 1.043 1.761 1.773 2.893 2.352 2.313 1.151 4.876 1.716 7.455 2.182 5.145.942 10.404 1.389 15.595.843 5.153-.53 10.352-2.142 14.34-5.657l.101.106"/><g fill="#428bc1"><path d="m14.991 12.645l-3.199 1.643v1.916l3.199-1.645z"/><path d="m11.792 19.49v1.818l3.199-1.644v-1.817z"/></g><g fill="#42ade2"><path d="m14.991 14.559l-3.199 1.645v3.286l3.199-1.643z"/><path d="m14.991 11.626c0-.542-.495-.981-1.104-.981h-.992c-.609 0-1.104.439-1.104.981v2.662l3.199-1.643v-1.019"/><path d="m11.792 22.424c0 .542.495.982 1.104.982h.992c.099 0 .195-.013.286-.035l.496-.255c.199-.177.322-.422.322-.692v-2.76l-3.199 1.644v1.116z"/></g><path fill="#ff8b00" d="m15.1 9.172c0 .813-.74 1.472-1.654 1.472-.913 0-1.655-.66-1.655-1.472 0-.813 1.655-3.437 1.655-3.437s1.654 2.624 1.654 3.437"/><path fill="#fff033" d="m14.274 9.956c0 .407-.37.737-.828.737s-.827-.33-.827-.737c0-.405.827-1.717.827-1.717s.828 1.312.828 1.717"/><g fill="#428bc1"><path d="m33.35 8.04l-2.798 1.444v1.675l2.798-1.438z"/><path d="m30.552 14.04v1.585l2.798-1.437v-1.59z"/></g><g fill="#42ade2"><path d="m33.35 9.721l-2.798 1.438v2.881l2.798-1.442z"/><path d="m33.35 7.154c0-.475-.433-.86-.966-.86h-.867c-.533 0-.966.385-.966.86v2.33l2.799-1.439v-.891"/><path d="m30.552 16.603c0 .475.433.858.966.858h.867c.088 0 .172-.011.251-.031l.434-.222c.174-.155.281-.37.281-.605v-2.415l-2.799 1.438v.977"/></g><path fill="#ff8b00" d="m33.447 5.01c0 .711-.647 1.288-1.447 1.288s-1.448-.577-1.448-1.288c0-.712 1.448-3.01 1.448-3.01s1.447 2.295 1.447 3.01"/><path fill="#fff033" d="m32.724 5.694c0 .355-.323.644-.724.644s-.724-.289-.724-.644c.001-.356.724-1.503.724-1.503s.724 1.147.724 1.503"/><g fill="#428bc1"><path d="m52.1 12.63l-3.202 1.644v1.915l3.202-1.644z"/><path d="m48.898 19.477v1.817l3.202-1.643v-1.818z"/></g><g fill="#42ade2"><path d="m52.1 14.545l-3.202 1.644v3.288l3.202-1.644z"/><path d="m52.1 11.612c0-.542-.494-.982-1.102-.982h-.992c-.609 0-1.104.44-1.104.982v2.662l3.197-1.644v-1.018"/><path d="m48.898 22.41c0 .542.494.983 1.104.983h.992c.098 0 .195-.014.285-.035l.496-.254c.197-.178.32-.423.32-.694v-2.759l-3.197 1.643v1.116"/></g><path fill="#ff8b00" d="m52.2 9.159c0 .812-.738 1.472-1.652 1.472s-1.654-.66-1.654-1.472c0-.814 1.654-3.437 1.654-3.437s1.652 2.623 1.652 3.437"/><path fill="#fff033" d="m51.38 9.944c0 .407-.371.735-.828.735s-.828-.329-.828-.735c0-.408.828-1.719.828-1.719s.828 1.311.828 1.719"/><g fill="#42ade2"><path d="m23.878 19.563l-3.868 1.986v2.317l3.868-1.988z"/><path d="m20.01 27.84v2.2l3.868-1.99v-2.197z"/></g><g fill="#9fe4ff"><path d="m23.878 21.878l-3.868 1.988v3.974l3.868-1.987z"/><path d="m23.878 18.331c0-.655-.597-1.187-1.333-1.187h-1.2c-.737 0-1.334.532-1.334 1.187v3.218l3.867-1.986v-1.232"/><path d="m20.01 31.387c0 .656.597 1.188 1.334 1.188h1.2c.119 0 .236-.017.346-.042l.599-.308c.24-.215.388-.51.388-.837v-3.336l-3.867 1.986v1.349"/></g><path fill="#ff8b00" d="m24.01 15.365c0 .982-.896 1.779-2 1.779s-2-.797-2-1.779c0-.984 2-4.154 2-4.154s2 3.17 2 4.154"/><path fill="#fff033" d="m23.01 16.314c0 .491-.448.89-1 .89-.553 0-.999-.399-.999-.89 0-.492.999-2.078.999-2.078s1 1.586 1 2.078"/><g fill="#42ade2"><path d="m43.898 19.535l-3.868 1.987v2.316l3.868-1.988z"/><path d="m40.03 27.813v2.197l3.868-1.99v-2.195z"/></g><g fill="#9fe4ff"><path d="m43.898 21.85l-3.868 1.988v3.975l3.868-1.988z"/><path d="m43.898 18.303c0-.655-.598-1.187-1.334-1.187h-1.199c-.736 0-1.334.532-1.334 1.187v3.219l3.867-1.988v-1.231"/><path d="m40.03 31.358c0 .657.598 1.188 1.334 1.188h1.199c.119 0 .236-.016.346-.042l.6-.309c.24-.213.389-.51.389-.837v-3.336l-3.867 1.987v1.349z"/></g><path fill="#ff8b00" d="m44.03 15.337c0 .983-.895 1.78-2 1.78-1.104 0-2-.797-2-1.78 0-.983 2-4.154 2-4.154s2 3.171 2 4.154"/><path fill="#fff033" d="m43.03 16.286c0 .492-.449.89-1 .89s-1-.398-1-.89 1-2.077 1-2.077 1 1.585 1 2.077"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="49.4" rx="30" ry="12.6" fill="#d0d0d0"/><path d="M7.7,24.8v22.5C7.7,53,18.6,57.6,32,57.6c13.4,0,24.3-4.6,24.3-10.2V24.8H7.7z" fill="#d3976e"/><g fill="#cea9f7"><path d="m7.7 29.7c0 0 0 0 0 0"/><path d="m56.3 29.7c0 0 0 0 0 0"/></g><g fill="#ffdd7d"><path d="m56.3 31.4c-.1 4-15.4 8.4-24.3 8.4-8.9 0-24.2-4.4-24.3-8.4v6.1c12.5 9 36.1 9 48.6 0v-6.1"/><path d="m56.3 41c-.1 4-15.4 8.4-24.3 8.4-8.9 0-24.2-4.4-24.3-8.4v6.1c12.5 9 36.1 9 48.6 0v-6.1"/></g><path d="m7.7 24.8v16.9c0 .9.8 1.7 1.9 1.7 1 0 1.9-.7 1.9-1.7v-3.9c0-1.2 1.1-2.2 2.5-2.2s2.5 1 2.5 2.2v4.8c0 1.4 1.3 2.6 2.9 2.6s2.9-1.1 2.9-2.6v-4.9c0-1.3 1.2-2.3 2.6-2.3 1.4 0 2.6 1 2.6 2.3v3.1c0 .7.6 1.3 1.5 1.3.8 0 1.5-.6 1.5-1.3v-2.5c0-.9.8-1.7 1.9-1.7 1 0 1.9.7 1.9 1.7v4.2c0 1.4 1.3 2.6 2.9 2.6 1.6 0 2.9-1.1 2.9-2.6v-4.7c0-1.2 1.1-2.2 2.5-2.2s2.5 1 2.5 2.2v3.5c0 .7.7 1.3 1.5 1.3s1.5-.6 1.5-1.3v-2.4c0-.6.6-1.1 1.3-1.1.7 0 1.3.5 1.3 1.1v3.7c0 1.4 1.3 2.6 2.9 2.6 1.6 0 2.9-1.1 2.9-2.6v-17.7l-48.8-.1" fill="#a80038"/><ellipse cx="32" cy="24.8" rx="24.3" ry="10.2" fill="#ff2c68"/><path d="m14.4 23.8c-.1-6.5 28.7-7.4 28.8-1.6.1 4.3-18.3 4.5-18.4 1.1-.1-2.4 11.4-2.5 11.4-.7 0 1.8-9.3 2.1-7.1-.2-3.7 2.8 8.1 2.9 8 .3-.1-3-13.9-2.6-13.9.5.1 4.6 21.4 4.1 21.3-1.1-.1-6.8-32-6.5-31.8 1.6.2 8.9 31.2 12.1 41.3.8-13.7 10.4-39.5 5.4-39.6-.7" fill="#ffa4a4"/><path d="m11.8 11.6v10.8c0 1.5 3.2 1.3 3.2 0v-10.8c0-1.5-3.2-1.5-3.2 0" fill="#42ade2"/><g fill="#428bc1"><path d="m15 12.6l-3.2 1.7v1.9l3.2-1.6z"/><path d="m11.8 19.5v1.8l3.2-1.6v-1.9z"/></g><path d="m15.1 9.2c0 2.5-3.3 2.5-3.3 0 0-.8 1.7-3.4 1.7-3.4s1.6 2.6 1.6 3.4" fill="#ff8b00"/><path d="m14.3 10c0 1.4-1.7 1.4-1.7 0 0-.4.8-1.7.8-1.7s.9 1.3.9 1.7" fill="#fff033"/><path d="m30.6 7.2v9.4c0 1.5 2.8 1.2 2.8 0v-9.4c0-1.5-2.8-1.5-2.8 0" fill="#42ade2"/><g fill="#428bc1"><path d="m33.4 8l-2.8 1.5v1.7l2.8-1.5z"/><path d="m30.6 14v1.6l2.8-1.4v-1.6z"/></g><path d="m33.4 5c0 2.3-2.9 2.3-2.9 0 0-.7 1.4-3 1.4-3s1.5 2.3 1.5 3" fill="#ff8b00"/><path d="m32.7 5.7c0 1.4-1.4 1.4-1.4 0 0-.4.7-1.5.7-1.5s.7 1.1.7 1.5" fill="#fff033"/><path d="m48.9 11.6v10.8c0 1.5 3.2 1.3 3.2 0v-10.8c0-1.5-3.2-1.5-3.2 0" fill="#42ade2"/><g fill="#428bc1"><path d="m52.1 12.6l-3.2 1.7v1.9l3.2-1.7z"/><path d="m48.9 19.5v1.8l3.2-1.7v-1.8z"/></g><path d="m52.2 9.2c0 2.5-3.3 2.5-3.3 0 0-.8 1.7-3.4 1.7-3.4s1.6 2.5 1.6 3.4" fill="#ff8b00"/><path d="m51.4 9.9c0 1.4-1.7 1.4-1.7 0 0-.4.8-1.7.8-1.7s.9 1.3.9 1.7" fill="#fff033"/><path d="m20 18.3v13.1c0 1.7 3.9 1.3 3.9 0v-13.1c0-1.6-3.9-1.6-3.9 0" fill="#9fe4ff"/><g fill="#42ade2"><path d="m23.9 19.6l-3.9 1.9v2.4l3.9-2z"/><path d="m20 27.8v2.2l3.9-1.9v-2.2z"/></g><path d="m24 15.4c0 2.7-4 2.7-4 0 0-1 2-4.2 2-4.2s2 3.2 2 4.2" fill="#ff8b00"/><path d="m23 16.3c0 1.5-2 1.5-2 0 0-.5 1-2.1 1-2.1s1 1.6 1 2.1" fill="#fff033"/><path d="m40 18.3v13.1c0 1.7 3.9 1.3 3.9 0v-13.1c0-1.7-3.9-1.7-3.9 0" fill="#9fe4ff"/><g fill="#42ade2"><path d="m43.9 19.5l-3.9 2v2.3l3.9-1.9z"/><path d="m40 27.8v2.2l3.9-2v-2.2z"/></g><path d="m44 15.3c0 2.7-4 2.7-4 0 0-1 2-4.2 2-4.2s2 3.3 2 4.2" fill="#ff8b00"/><path d="m43 16.3c0 1.5-2 1.5-2 0 0-.5 1-2.1 1-2.1s1 1.6 1 2.1" fill="#fff033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f383.svg b/build/js/jsxc/lib/emojione/assets/svg/1f383.svg
index aadffcb..21144b7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f383.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f383.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e9841a" d="m62 37.586c0 16.06-20.933 24.414-30 24.414-9.07 0-30-8.351-30-24.414 0-18.876 12.417-28.978 26.06-26.384 1.662.316 5.098.707 6.378.36 15.56-4.213 27.558 6.646 27.558 26.02"/><g fill="#ba6b24"><path d="m18.201 37.948c0-13.189 4.76-19.242 9.243-25.824-10.15 1.952-19.776 6.528-19.776 24.936 0 14.269 12.223 22.568 19.994 24.478-5.432-5.856-9.461-13.737-9.461-23.59"/><path d="m45.576 37.948c0-13.189-6.358-18.8-10.681-25.382 9.789 1.951 20.839 6.085 20.839 24.493 0 14.269-11.789 22.568-19.287 24.478 5.241-5.855 9.129-13.736 9.129-23.589"/><path d="m37.19 34.977c0 20.13-5.186 27.02-5.186 27.02s-5.184-6.896-5.184-27.02c0-20.13 5.367-24.939 5.367-24.939s5 4.812 5 24.939"/></g><g fill="#ffce31"><path d="m25.71 28.735c1.071 5.28-4.381 9.627-5.815 9.181-4.53-1.413-10.616-10.514-10.616-12.267 0-1.491 11.11 3.585 12.239 3.95 1.548.499 3.921-2.198 4.192-.864"/><path d="m38.29 28.735c-1.071 5.28 4.381 9.627 5.815 9.181 4.531-1.413 10.617-10.514 10.617-12.267 0-1.491-11.11 3.585-12.24 3.95-1.548.499-3.921-2.198-4.192-.864"/></g><g fill="#fff"><path d="m25.71 28.735c1.071 5.28-4.381 9.627-5.815 9.181-4.53-1.413-7.37-8-7.37-9.756 0-1.491 7.864 1.074 8.993 1.438 1.548.5 3.921-2.197 4.192-.863"/><path d="m38.29 28.735c-1.071 5.28 4.381 9.627 5.815 9.181 4.531-1.413 7.371-8 7.371-9.756 0-1.491-7.865 1.074-8.994 1.438-1.548.5-3.921-2.197-4.192-.863"/></g><path fill="#ffce31" d="m37.713 38.684c0 3.384-2.557.343-5.713.343-3.154 0-5.711 3.041-5.711-.343 0-3.385 4.54-5.427 5.711-5.427 1.173 0 5.713 2.042 5.713 5.427"/><path fill="#fff" d="m36.18 36.845c0 2.238-1.868.227-4.176.227-2.305 0-4.174 2.01-4.174-.227 0-2.237 3.318-3.588 4.174-3.588.857 0 4.176 1.35 4.176 3.588"/><path fill="#ffce31" d="m6.804 35.513l3.124 12.767 4.765-2.11 3.696 6.509 6.347-2.349 4.127 4.82 3.808-4.571 7.459 5.311 2.856-6.79 3.651 3.579 2.22-5.682 3.493 1.977 6.347-13.461-7.347 8.404-3.25-3.375-2.75 5.158-4.645-2.49-3.02 4.33-4.939-3.705-4.03 5.515-4.284-5.763-5.252 3.04-2.917-5.597-4.668 2.475z"/><path fill="#fff" d="m17.93 48.45l6.17-.848 4.616 5 4.324-3.952 6.06 4.274 2.815-6.192 4.185 1.116 2-7.307-2.75 5.158-4.645-2.49-3.02 4.33-4.939-3.705-4.03 5.515-4.284-5.763-5.252 3.04-2.917-5.597z"/><path fill="#83bf4f" d="m24.14 12.882c0 0 1.58.941 1.36 2.183 0 0 5.513.846 9.597.41 0 0 .977-2.956-.202-4.197-.394-.412.725-4.803 2.772-5.979.729-.419-4.512-4.13-6.01-2.864-4.291 3.614-4.4 8.893-4.4 8.893-1.899.429-3.113 1.554-3.113 1.554"/><path fill="#699635" d="m25.503 15.06c0 0 2.059-1.779 1.76-3.863 0 0-2.198.698-3.12 1.68 0 0 1.326.819 1.36 2.183"/><path fill="#75a843" d="m35.1 15.475c0 0-3.498-5.791.461-10.223.537-.602 2.581-.292 2.581-.292-1.753 1.618-3.332 5.296-2.404 6.145.929.85 2.874 1.941 3.456 2.392.58.45-2.736.564-4.094 1.978"/><path fill="#adea73" d="m37.88 5.295c-.701.42-2.605.065-4.252-.795-1.649-.862-2.419-1.902-1.718-2.322.7-.422 2.605-.066 4.254.795 1.649.86 2.418 1.9 1.716 2.322"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 37.6c0 16-20.9 24.4-30 24.4-9.1 0-30-8.4-30-24.4 0-18.9 12.4-29 26.1-26.4 1.7.3 5.1.7 6.4.4 15.5-4.3 27.5 6.6 27.5 26" fill="#e9841a"/><g fill="#ba6b24"><path d="m18.2 37.9c0-13.2 4.8-19.2 9.2-25.8-10.1 2-19.8 6.5-19.8 24.9 0 14.3 12.2 22.6 20 24.5-5.4-5.8-9.4-13.7-9.4-23.6"/><path d="m45.6 37.9c0-13.2-6.4-18.8-10.7-25.4 9.8 2 20.8 6.1 20.8 24.5 0 14.3-11.8 22.6-19.3 24.5 5.3-5.8 9.2-13.7 9.2-23.6"/><path d="m37.2 35c0 20.1-5.2 27-5.2 27s-5.2-6.9-5.2-27 5.4-25 5.4-25 5 4.9 5 25"/></g><g fill="#ffce31"><path d="m25.7 28.7c1.1 5.3-4.4 9.6-5.8 9.2-4.5-1.4-10.6-10.5-10.6-12.3 0-1.5 11.1 3.6 12.2 4 1.6.5 3.9-2.2 4.2-.9"/><path d="m38.3 28.7c-1.1 5.3 4.4 9.6 5.8 9.2 4.5-1.4 10.6-10.5 10.6-12.3 0-1.5-11.1 3.6-12.2 4-1.6.5-3.9-2.2-4.2-.9"/></g><g fill="#fff"><path d="m25.7 28.7c1.1 5.3-4.4 9.6-5.8 9.2-4.5-1.4-7.4-8-7.4-9.8 0-1.5 7.9 1.1 9 1.4 1.6.6 3.9-2.1 4.2-.8"/><path d="m38.3 28.7c-1.1 5.3 4.4 9.6 5.8 9.2 4.5-1.4 7.4-8 7.4-9.8 0-1.5-7.9 1.1-9 1.4-1.6.6-3.9-2.1-4.2-.8"/></g><path d="m37.7 38.7c0 3.4-2.6.3-5.7.3-3.2 0-5.7 3-5.7-.3 0-3.4 4.5-5.4 5.7-5.4 1.2 0 5.7 2 5.7 5.4" fill="#ffce31"/><path d="m36.2 36.8c0 2.2-1.9.2-4.2.2-2.3 0-4.2 2-4.2-.2 0-2.2 3.3-3.6 4.2-3.6.9.1 4.2 1.4 4.2 3.6" fill="#fff"/><path fill="#ffce31" d="m6.8 35.5l3.1 12.8 4.8-2.1 3.7 6.5 6.3-2.4 4.2 4.8 3.8-4.5 7.4 5.3 2.9-6.8 3.6 3.6 2.3-5.7 3.4 2 6.4-13.5-7.3 8.4-3.3-3.4-2.8 5.2-4.6-2.5-3 4.3-4.9-3.7-4.1 5.6-4.3-5.8-5.2 3-2.9-5.6-4.7 2.5z"/><path fill="#fff" d="m17.9 48.4l6.2-.8 4.6 5 4.3-3.9 6.1 4.2 2.8-6.2 4.2 1.1 2-7.3-2.8 5.2-4.6-2.5-3 4.3-4.9-3.7-4.1 5.6-4.3-5.8-5.2 3-2.9-5.6z"/><path d="m24.1 12.9c0 0 1.6.9 1.4 2.2 0 0 5.5.8 9.6.4 0 0 1-3-.2-4.2-.4-.4.7-4.8 2.8-6 .7-.4-4.5-4.1-6-2.9-4.3 3.6-4.4 8.9-4.4 8.9-1.9.5-3.2 1.6-3.2 1.6" fill="#83bf4f"/><path d="m25.5 15.1c0 0 2.1-1.8 1.8-3.9 0 0-2.2.7-3.1 1.7-.1 0 1.3.8 1.3 2.2" fill="#699635"/><path d="m35.1 15.5c0 0-3.5-5.8.5-10.2.5-.6 2.5-.3 2.5-.3-1.8 1.6-3.3 5.3-2.4 6.1.9.9 2.9 1.9 3.5 2.4.6.4-2.7.6-4.1 2" fill="#75a843"/><path d="m37.9 5.3c-.7.4-2.6.1-4.3-.8-1.6-.9-2.4-1.9-1.7-2.3.7-.4 2.6-.1 4.3.8 1.6.8 2.4 1.9 1.7 2.3" fill="#adea73"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f384.svg b/build/js/jsxc/lib/emojione/assets/svg/1f384.svg
index 831ce42..27bbe5f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f384.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f384.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d3976e" d="m36.447 62h-8.894l1.917-20.78h5.06z"/><path fill="#699635" d="m62 48.718c-19.07 0-30-31.754-30-31.754s-10.934 31.754-30 31.754c0 0 9.251 6.45 18.738-1.655 0 0-2.383 5.625-5.607 12.07 0 0 7.322.86 12.318-11.181.97 3.458 2.414 7.419 4.551 11.194 2.137-3.775 3.581-7.736 4.551-11.194 4.996 12.04 12.318 11.181 12.318 11.181-3.225-6.449-5.607-12.07-5.607-12.07 9.487 8.105 18.738 1.655 18.738 1.655"/><path fill="#75a843" d="m52 33.402c-12.711 0-20-21.17-20-21.17s-7.29 21.17-20 21.17c0 0 6.168 4.301 12.493-1.102 0 0-1.59 3.749-3.739 8.05 0 0 4.881.574 8.213-7.453.645 2.304 1.609 4.945 3.03 7.462 1.424-2.518 2.389-5.158 3.03-7.462 3.331 8.03 8.213 7.453 8.213 7.453-2.149-4.299-3.739-8.05-3.739-8.05 6.325 5.403 12.493 1.102 12.493 1.102"/><path fill="#83bf4f" d="m45.33 23.24c-8.475 0-13.334-14.11-13.334-14.11s-4.859 14.11-13.334 14.11c0 0 4.113 2.866 8.329-.735 0 0-1.06 2.5-2.493 5.366 0 0 3.255.383 5.475-4.969.431 1.536 1.074 3.296 2.023 4.975.949-1.68 1.592-3.439 2.02-4.976 2.221 5.352 5.476 4.969 5.476 4.969-1.434-2.866-2.493-5.366-2.493-5.366 4.216 3.602 8.329.736 8.329.736"/><path fill="#ffce31" d="m32 2l1.965 3.981 4.395.639-3.18 3.098.749 4.372-3.929-2.06-3.93 2.06.752-4.372-3.179-3.098 4.397-.639z"/><circle fill="#ed4c5c" cx="32" cy="21.358" r="3.283"/><circle fill="#f2b200" cx="32" cy="40.57" r="3.283"/><circle fill="#9450e0" cx="38.696" cy="30.881" r="3.283"/><circle fill="#6aced8" cx="25.888" cy="30.881" r="3.283"/><circle fill="#83bf4f" cx="20.2" cy="47.05" r="3.283"/><circle fill="#ff717f" cx="41.18" cy="47.21" r="3.282"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d3976e" d="m36.4 62h-8.8l1.9-20.8h5z"/><path d="m62 48.7c-19.1 0-30-31.7-30-31.7s-10.9 31.7-30 31.7c0 0 9.3 6.5 18.7-1.7 0 0-2.4 5.6-5.6 12.1 0 0 7.3.9 12.3-11.2 1 3.5 2.4 7.4 4.6 11.2 2.1-3.8 3.6-7.7 4.6-11.2 5 12 12.3 11.2 12.3 11.2-3.2-6.4-5.6-12.1-5.6-12.1 9.4 8.2 18.7 1.7 18.7 1.7" fill="#699635"/><path d="m52 33.4c-12.7 0-20-21.2-20-21.2s-7.3 21.2-20 21.2c0 0 6.2 4.3 12.5-1.1 0 0-1.6 3.7-3.7 8 0 0 4.9.6 8.2-7.5.6 2.3 1.6 4.9 3 7.5 1.4-2.5 2.4-5.2 3-7.5 3.3 8 8.2 7.5 8.2 7.5-2.1-4.3-3.7-8-3.7-8 6.3 5.4 12.5 1.1 12.5 1.1" fill="#75a843"/><path d="m45.3 23.2c-8.4 0-13.3-14.1-13.3-14.1s-4.9 14.1-13.3 14.1c0 0 4.1 2.9 8.3-.7 0 0-1.1 2.5-2.5 5.4 0 0 3.3.4 5.5-5 .4 1.5 1.1 3.3 2 5 .9-1.7 1.6-3.4 2-5 2.2 5.4 5.5 5 5.5 5-1.4-2.9-2.5-5.4-2.5-5.4 4.2 3.6 8.3.7 8.3.7" fill="#83bf4f"/><path fill="#ffce31" d="m32 2l2 4 4.4.6-3.2 3.1.7 4.4-3.9-2.1-3.9 2.1.7-4.4-3.2-3.1 4.4-.6z"/><circle cx="32" cy="21.4" r="3.3" fill="#ed4c5c"/><circle cx="32" cy="40.6" r="3.3" fill="#f2b200"/><circle cx="38.7" cy="30.9" r="3.3" fill="#9450e0"/><circle cx="25.9" cy="30.9" r="3.3" fill="#6aced8"/><circle cx="20.2" cy="47" r="3.3" fill="#83bf4f"/><circle cx="41.2" cy="47.2" r="3.3" fill="#ff717f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fb.svg
index b640f01..13c2657 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m13.11 23.528c2.609 2.695 2.936 6.727.73 9.01-2.205 2.277-6.107 1.941-8.715-.754-2.609-2.695-2.936-6.729-.73-9.01 2.206-2.277 6.108-1.939 8.715.756"/><path fill="#ff4848" d="m62 62.999h-60c0-34.615 13.432-37.904 30-37.904 16.566 0 30 3.289 30 37.904"/><path fill="#ffe1bd" d="m54.23 19.06c0 13.588-2.549 24.605-22.23 24.605s-22.23-11.02-22.23-24.605c0-4.366 44.46-4.366 44.46 0"/><path fill="#fff" d="m26.21 25.18c0 3.424-2.688 6.199-5.998 6.199-3.316 0-6-2.775-6-6.199 0-3.422 2.686-6.201 6-6.201 3.31-.001 5.998 2.779 5.998 6.201"/><path fill="#0a84a5" d="m24.713 25.18c0 2.566-2.02 4.648-4.502 4.648-2.484 0-4.5-2.082-4.5-4.648 0-2.57 2.02-4.65 4.5-4.65 2.486-.001 4.502 2.079 4.502 4.65"/><path fill="#231f20" d="m21.712 25.18c0 .854-.673 1.546-1.501 1.546-.829 0-1.499-.692-1.499-1.546 0-.855.67-1.554 1.499-1.554.828 0 1.501.698 1.501 1.554"/><ellipse fill="#fff" cx="43.791" cy="25.18" rx="6" ry="6.197"/><path fill="#0a84a5" d="m48.29 25.18c0 2.566-2.02 4.648-4.5 4.648s-4.5-2.082-4.5-4.648c0-2.57 2.02-4.65 4.5-4.65s4.5 2.079 4.5 4.65"/><path fill="#231f20" d="m45.29 25.18c0 .854-.674 1.547-1.5 1.547-.828 0-1.5-.693-1.5-1.547 0-.856.672-1.555 1.5-1.555.826 0 1.5.698 1.5 1.555"/><path fill="#e2e9ed" d="m57.32 40.22c0 18.324-10.984 21.693-24.537 21.693-13.551 0-24.537-3.369-24.537-21.693 0-10.322 10.986-10.691 24.537-10.691s24.537.368 24.537 10.691"/><ellipse fill="#664e27" cx="31.96" cy="36.794" rx="3.522" ry="3.641"/><g fill="#fff"><path d="m49.31 22.743c-2.959-.244 6.08 7.404-8.152 6.313-4.982-.383-9.203 3.258-9.203 6.518 0 3.936 4.053 6.928 10.299 6.928 7.344 0 12.637-4.508 13.684-10.945.456-2.802-1.667-8.406-6.628-8.814"/><path d="m22.842 29.06c-14.232 1.092-5.193-6.557-8.152-6.313-4.959.408-7.084 6.01-6.627 8.813 1.047 6.438 6.342 10.945 13.684 10.945 6.246 0 10.299-2.992 10.299-6.928-.001-3.26-4.222-6.9-9.204-6.517"/></g><g fill="#e0a372"><path d="m42.836 30.519c.27 1.084-.73 2.285-2.23 2.684s-2.936-.159-3.206-1.243.73-2.285 2.23-2.684c1.503-.398 2.936.157 3.206 1.243"/><path d="m21.252 30.519c-.27 1.084.73 2.285 2.23 2.684 1.502.398 2.938-.158 3.205-1.242.27-1.084-.729-2.285-2.23-2.684-1.5-.399-2.936.156-3.205 1.242"/></g><ellipse fill="#e6b796" cx="32.04" cy="29.71" rx="7.519" ry="5.18"/><path fill="#fff" d="m60 17.646c0 2.148-1.236 3.891-3.994 3.891h-48.01c-2.756 0-3.992-1.742-3.992-3.891 0-2.148 1.236-3.891 3.992-3.891h48.01c2.758 0 3.994 1.742 3.994 3.891"/><path fill="#ff4848" d="m42.791 16.815c-17.523-3.518-33.672-3.061-33.672-3.061 0-7.244 12.721-12.756 26.22-12.756 14.24 0 24.455 7.531 26.03 20.521 1.934 15.93-11.818 26.314-10.25 22.764 8.08-18.288-1.613-26.12-8.328-27.468"/><ellipse fill="#fff" cx="47.903" cy="48.769" rx="6.651" ry="6.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 23.5c2.6 2.7 2.9 6.7.7 9-2.2 2.3-6.1 1.9-8.7-.8-2.6-2.7-2.9-6.7-.7-9 2.2-2.2 6.1-1.9 8.7.8" fill="#ffe1bd"/><path d="m62 63h-60c0-34.6 13.4-37.9 30-37.9 16.6 0 30 3.3 30 37.9" fill="#ff4848"/><path d="m54.2 19.1c0 13.6-2.5 24.6-22.2 24.6s-22.2-11.1-22.2-24.6c0-4.4 44.4-4.4 44.4 0" fill="#ffe1bd"/><path d="m26.2 25.2c0 3.4-2.7 6.2-6 6.2-3.3 0-6-2.8-6-6.2 0-3.4 2.7-6.2 6-6.2 3.3 0 6 2.8 6 6.2" fill="#fff"/><path d="m24.7 25.2c0 2.6-2 4.6-4.5 4.6-2.5 0-4.5-2.1-4.5-4.6 0-2.6 2-4.6 4.5-4.6 2.5-.1 4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m21.7 25.2c0 .9-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.9.7-1.6 1.5-1.6.8 0 1.5.7 1.5 1.6" fill="#231f20"/><ellipse cx="43.8" cy="25.2" rx="6" ry="6.2" fill="#fff"/><path d="m48.3 25.2c0 2.6-2 4.6-4.5 4.6s-4.5-2.1-4.5-4.6c0-2.6 2-4.6 4.5-4.6s4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m45.3 25.2c0 .9-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.9.7-1.6 1.5-1.6.8 0 1.5.7 1.5 1.6" fill="#231f20"/><path d="m57.3 40.2c0 18.3-11 21.7-24.5 21.7-13.6 0-24.5-3.4-24.5-21.7 0-10.3 11-10.7 24.5-10.7s24.5.4 24.5 10.7" fill="#e2e9ed"/><ellipse cx="32" cy="36.8" rx="3.5" ry="3.6" fill="#664e27"/><g fill="#fff"><path d="m49.3 22.7c-3-.2 6.1 7.4-8.2 6.3-5-.4-9.2 3.3-9.2 6.5 0 3.9 4.1 6.9 10.3 6.9 7.3 0 12.6-4.5 13.7-10.9.5-2.7-1.6-8.3-6.6-8.8"/><path d="m22.8 29.1c-14.2 1.1-5.2-6.6-8.2-6.3-5 .4-7.1 6-6.6 8.8 1 6.4 6.3 10.9 13.7 10.9 6.2 0 10.3-3 10.3-6.9 0-3.3-4.2-6.9-9.2-6.5"/></g><g fill="#e0a372"><path d="m42.8 30.5c.3 1.1-.7 2.3-2.2 2.7s-2.9-.2-3.2-1.2.7-2.3 2.2-2.7c1.5-.4 3 .1 3.2 1.2"/><path d="m21.3 30.5c-.3 1.1.7 2.3 2.2 2.7 1.5.4 2.9-.2 3.2-1.2.3-1.1-.7-2.3-2.2-2.7-1.5-.4-3 .1-3.2 1.2"/></g><ellipse cx="32" cy="29.7" rx="7.5" ry="5.2" fill="#e6b796"/><path d="m60 17.6c0 2.1-1.2 3.9-4 3.9h-48c-2.8 0-4-1.7-4-3.9 0-2.1 1.2-3.9 4-3.9h48c2.8.1 4 1.8 4 3.9" fill="#fff"/><path d="m42.8 16.8c-17.5-3.5-33.7-3.1-33.7-3.1 0-7.2 12.7-12.7 26.2-12.7 14.2 0 24.5 7.5 26 20.5 1.9 15.9-11.8 26.3-10.2 22.8 8.1-18.3-1.6-26.1-8.3-27.5" fill="#ff4848"/><ellipse cx="47.9" cy="48.8" rx="6.7" ry="6.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fc.svg
index 70ee89e..4089865 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m13.11 23.528c2.609 2.695 2.936 6.727.73 9.01-2.205 2.277-6.107 1.941-8.715-.754-2.609-2.695-2.936-6.729-.73-9.01 2.205-2.277 6.107-1.939 8.715.756"/><path fill="#ff4848" d="m62 62.999h-60c0-34.615 13.432-37.904 30-37.904 16.566 0 30 3.289 30 37.904"/><path fill="#fed0ac" d="m54.23 19.06c0 13.588-2.549 24.605-22.23 24.605-19.682 0-22.23-11.02-22.23-24.605 0-4.366 44.46-4.366 44.46 0"/><path fill="#fff" d="m26.21 25.18c0 3.424-2.688 6.199-5.998 6.199-3.316 0-6-2.775-6-6.199 0-3.422 2.686-6.201 6-6.201 3.311-.001 5.998 2.779 5.998 6.201"/><path fill="#0a84a5" d="m24.712 25.18c0 2.566-2.02 4.648-4.502 4.648-2.484 0-4.5-2.082-4.5-4.648 0-2.57 2.02-4.65 4.5-4.65 2.487-.001 4.502 2.079 4.502 4.65"/><path fill="#231f20" d="m21.712 25.18c0 .854-.674 1.546-1.502 1.546s-1.498-.692-1.498-1.546c0-.855.67-1.554 1.498-1.554s1.502.698 1.502 1.554"/><ellipse fill="#fff" cx="43.791" cy="25.18" rx="6" ry="6.197"/><path fill="#0a84a5" d="m48.29 25.18c0 2.566-2.02 4.648-4.5 4.648s-4.5-2.082-4.5-4.648c0-2.57 2.02-4.65 4.5-4.65s4.5 2.079 4.5 4.65"/><ellipse fill="#231f20" cx="43.791" cy="25.18" rx="1.5" ry="1.548"/><path fill="#e2e9ed" d="m57.32 40.22c0 18.324-10.984 21.693-24.538 21.693-13.551 0-24.537-3.369-24.537-21.693 0-10.322 10.986-10.691 24.537-10.691 13.552-.001 24.538.368 24.538 10.691"/><ellipse fill="#664e27" cx="31.96" cy="36.794" rx="3.523" ry="3.641"/><g fill="#fff"><path d="m49.31 22.743c-2.959-.244 6.08 7.404-8.152 6.313-4.982-.383-9.204 3.258-9.204 6.518 0 3.936 4.053 6.928 10.299 6.928 7.344 0 12.637-4.508 13.684-10.945.457-2.802-1.666-8.406-6.627-8.814"/><path d="m22.841 29.06c-14.232 1.092-5.193-6.557-8.152-6.313-4.959.408-7.084 6.01-6.627 8.813 1.047 6.438 6.342 10.945 13.684 10.945 6.246 0 10.299-2.992 10.299-6.928-.001-3.26-4.221-6.9-9.204-6.517"/></g><g fill="#ef9b92"><path d="m42.836 30.519c.27 1.084-.73 2.285-2.23 2.684s-2.936-.159-3.206-1.243.73-2.285 2.23-2.684c1.503-.398 2.936.157 3.206 1.243"/><path d="m21.251 30.519c-.27 1.084.73 2.285 2.23 2.684 1.502.398 2.938-.158 3.205-1.242.27-1.084-.729-2.285-2.23-2.684-1.499-.399-2.935.156-3.205 1.242"/></g><ellipse fill="#ffa599" cx="32.04" cy="29.71" rx="7.519" ry="5.18"/><path fill="#fff" d="m60 17.646c0 2.148-1.236 3.891-3.994 3.891h-48.01c-2.756 0-3.992-1.742-3.992-3.891 0-2.148 1.236-3.891 3.992-3.891h48.01c2.758 0 3.994 1.742 3.994 3.891"/><path fill="#ff4848" d="m42.791 16.815c-17.524-3.518-33.672-3.061-33.672-3.061 0-7.244 12.721-12.756 26.22-12.756 14.24 0 24.455 7.531 26.03 20.521 1.934 15.93-11.818 26.314-10.25 22.764 8.08-18.288-1.613-26.12-8.328-27.468"/><ellipse fill="#fff" cx="47.903" cy="48.769" rx="6.651" ry="6.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 23.5c2.6 2.7 2.9 6.7.7 9-2.2 2.3-6.1 1.9-8.7-.8-2.6-2.7-2.9-6.7-.7-9 2.2-2.2 6.1-1.9 8.7.8" fill="#fed0ac"/><path d="m62 63h-60c0-34.6 13.4-37.9 30-37.9 16.6 0 30 3.3 30 37.9" fill="#ff4848"/><path d="m54.2 19.1c0 13.6-2.5 24.6-22.2 24.6s-22.2-11.1-22.2-24.6c0-4.4 44.4-4.4 44.4 0" fill="#fed0ac"/><path d="m26.2 25.2c0 3.4-2.7 6.2-6 6.2-3.3 0-6-2.8-6-6.2 0-3.4 2.7-6.2 6-6.2 3.3 0 6 2.8 6 6.2" fill="#fff"/><path d="m24.7 25.2c0 2.6-2 4.6-4.5 4.6-2.5 0-4.5-2.1-4.5-4.6 0-2.6 2-4.6 4.5-4.6 2.5-.1 4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m21.7 25.2c0 .9-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5c0-.9.7-1.6 1.5-1.6s1.5.7 1.5 1.6" fill="#231f20"/><ellipse cx="43.8" cy="25.2" rx="6" ry="6.2" fill="#fff"/><path d="m48.3 25.2c0 2.6-2 4.6-4.5 4.6s-4.5-2.1-4.5-4.6c0-2.6 2-4.6 4.5-4.6s4.5 2 4.5 4.6" fill="#0a84a5"/><ellipse cx="43.8" cy="25.2" rx="1.5" ry="1.5" fill="#231f20"/><path d="m57.3 40.2c0 18.3-11 21.7-24.5 21.7-13.6 0-24.5-3.4-24.5-21.7 0-10.3 11-10.7 24.5-10.7 13.5 0 24.5.4 24.5 10.7" fill="#e2e9ed"/><ellipse cx="32" cy="36.8" rx="3.5" ry="3.6" fill="#664e27"/><g fill="#fff"><path d="m49.3 22.7c-3-.2 6.1 7.4-8.2 6.3-5-.4-9.2 3.3-9.2 6.5 0 3.9 4.1 6.9 10.3 6.9 7.3 0 12.6-4.5 13.7-10.9.5-2.7-1.6-8.3-6.6-8.8"/><path d="m22.8 29.1c-14.2 1.1-5.2-6.6-8.2-6.3-5 .4-7.1 6-6.6 8.8 1 6.4 6.3 10.9 13.7 10.9 6.2 0 10.3-3 10.3-6.9 0-3.3-4.2-6.9-9.2-6.5"/></g><g fill="#ef9b92"><path d="m42.8 30.5c.3 1.1-.7 2.3-2.2 2.7s-2.9-.2-3.2-1.2.7-2.3 2.2-2.7c1.5-.4 3 .1 3.2 1.2"/><path d="m21.3 30.5c-.3 1.1.7 2.3 2.2 2.7 1.5.4 2.9-.2 3.2-1.2.3-1.1-.7-2.3-2.2-2.7-1.5-.4-3 .1-3.2 1.2"/></g><ellipse cx="32" cy="29.7" rx="7.5" ry="5.2" fill="#ffa599"/><path d="m60 17.6c0 2.1-1.2 3.9-4 3.9h-48c-2.8 0-4-1.7-4-3.9 0-2.1 1.2-3.9 4-3.9h48c2.8.1 4 1.8 4 3.9" fill="#fff"/><path d="m42.8 16.8c-17.5-3.5-33.7-3.1-33.7-3.1 0-7.2 12.7-12.7 26.2-12.7 14.2 0 24.5 7.5 26 20.5 1.9 15.9-11.8 26.3-10.2 22.8 8.1-18.3-1.6-26.1-8.3-27.5" fill="#ff4848"/><ellipse cx="47.9" cy="48.8" rx="6.7" ry="6.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fd.svg
index 34de76d..9286b2f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m13.11 23.528c2.609 2.695 2.936 6.727.73 9.01-2.205 2.277-6.107 1.941-8.715-.754-2.609-2.695-2.936-6.729-.73-9.01 2.206-2.277 6.108-1.939 8.715.756"/><path fill="#ff4848" d="m62 62.999h-60c0-34.615 13.432-37.904 30-37.904 16.566 0 30 3.289 30 37.904"/><path fill="#d6a57c" d="m54.23 19.06c0 13.588-2.549 24.605-22.23 24.605s-22.23-11.02-22.23-24.605c0-4.366 44.46-4.366 44.46 0"/><path fill="#fff" d="m26.21 25.18c0 3.424-2.688 6.199-5.998 6.199-3.316 0-6-2.775-6-6.199 0-3.422 2.686-6.201 6-6.201 3.31-.001 5.998 2.779 5.998 6.201"/><path fill="#0a84a5" d="m24.713 25.18c0 2.566-2.02 4.648-4.502 4.648-2.484 0-4.5-2.082-4.5-4.648 0-2.57 2.02-4.65 4.5-4.65 2.486-.001 4.502 2.079 4.502 4.65"/><path fill="#231f20" d="m21.711 25.18c0 .854-.672 1.546-1.501 1.546-.828 0-1.499-.692-1.499-1.546 0-.855.671-1.554 1.499-1.554.829 0 1.501.698 1.501 1.554"/><ellipse fill="#fff" cx="43.791" cy="25.18" rx="6" ry="6.197"/><path fill="#0a84a5" d="m48.29 25.18c0 2.566-2.02 4.648-4.5 4.648s-4.5-2.082-4.5-4.648c0-2.57 2.02-4.65 4.5-4.65s4.5 2.079 4.5 4.65"/><ellipse fill="#231f20" cx="43.791" cy="25.18" rx="1.5" ry="1.548"/><path fill="#e2e9ed" d="m57.32 40.22c0 18.324-10.984 21.693-24.537 21.693-13.551 0-24.537-3.369-24.537-21.693 0-10.322 10.986-10.691 24.537-10.691s24.537.368 24.537 10.691"/><ellipse fill="#664e27" cx="31.96" cy="36.794" rx="3.522" ry="3.641"/><g fill="#fff"><path d="m49.31 22.743c-2.959-.244 6.08 7.404-8.152 6.313-4.982-.383-9.203 3.258-9.203 6.518 0 3.936 4.053 6.928 10.299 6.928 7.344 0 12.637-4.508 13.684-10.945.456-2.802-1.667-8.406-6.628-8.814"/><path d="m22.842 29.06c-14.232 1.092-5.193-6.557-8.152-6.313-4.959.408-7.084 6.01-6.627 8.813 1.047 6.438 6.342 10.945 13.684 10.945 6.246 0 10.299-2.992 10.299-6.928-.001-3.26-4.222-6.9-9.204-6.517"/></g><g fill="#8a6859"><path d="m42.836 30.519c.27 1.084-.73 2.285-2.23 2.684s-2.936-.159-3.206-1.243.73-2.285 2.23-2.684c1.503-.398 2.936.157 3.206 1.243"/><path d="m21.252 30.519c-.27 1.084.73 2.285 2.23 2.684 1.502.398 2.938-.158 3.205-1.242.27-1.084-.729-2.285-2.23-2.684-1.5-.399-2.936.156-3.205 1.242"/></g><ellipse fill="#b58360" cx="32.04" cy="29.71" rx="7.519" ry="5.18"/><path fill="#fff" d="m60 17.646c0 2.148-1.236 3.891-3.994 3.891h-48.01c-2.756 0-3.992-1.742-3.992-3.891 0-2.148 1.236-3.891 3.992-3.891h48.01c2.758 0 3.994 1.742 3.994 3.891"/><path fill="#ff4848" d="m42.791 16.815c-17.523-3.518-33.672-3.061-33.672-3.061 0-7.244 12.721-12.756 26.22-12.756 14.24 0 24.455 7.531 26.03 20.521 1.934 15.93-11.818 26.314-10.25 22.764 8.08-18.288-1.613-26.12-8.328-27.468"/><ellipse fill="#fff" cx="47.903" cy="48.769" rx="6.651" ry="6.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 23.5c2.6 2.7 2.9 6.7.7 9-2.2 2.3-6.1 1.9-8.7-.8-2.6-2.7-2.9-6.7-.7-9 2.2-2.2 6.1-1.9 8.7.8" fill="#d6a57c"/><path d="m62 63h-60c0-34.6 13.4-37.9 30-37.9 16.6 0 30 3.3 30 37.9" fill="#ff4848"/><path d="m54.2 19.1c0 13.6-2.5 24.6-22.2 24.6s-22.2-11.1-22.2-24.6c0-4.4 44.4-4.4 44.4 0" fill="#d6a57c"/><path d="m26.2 25.2c0 3.4-2.7 6.2-6 6.2-3.3 0-6-2.8-6-6.2 0-3.4 2.7-6.2 6-6.2 3.3 0 6 2.8 6 6.2" fill="#fff"/><path d="m24.7 25.2c0 2.6-2 4.6-4.5 4.6-2.5 0-4.5-2.1-4.5-4.6 0-2.6 2-4.6 4.5-4.6 2.5-.1 4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m21.7 25.2c0 .9-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.9.7-1.6 1.5-1.6.8 0 1.5.7 1.5 1.6" fill="#231f20"/><ellipse cx="43.8" cy="25.2" rx="6" ry="6.2" fill="#fff"/><path d="m48.3 25.2c0 2.6-2 4.6-4.5 4.6s-4.5-2.1-4.5-4.6c0-2.6 2-4.6 4.5-4.6s4.5 2 4.5 4.6" fill="#0a84a5"/><ellipse cx="43.8" cy="25.2" rx="1.5" ry="1.5" fill="#231f20"/><path d="m57.3 40.2c0 18.3-11 21.7-24.5 21.7-13.6 0-24.5-3.4-24.5-21.7 0-10.3 11-10.7 24.5-10.7s24.5.4 24.5 10.7" fill="#e2e9ed"/><ellipse cx="32" cy="36.8" rx="3.5" ry="3.6" fill="#664e27"/><g fill="#fff"><path d="m49.3 22.7c-3-.2 6.1 7.4-8.2 6.3-5-.4-9.2 3.3-9.2 6.5 0 3.9 4.1 6.9 10.3 6.9 7.3 0 12.6-4.5 13.7-10.9.5-2.7-1.6-8.3-6.6-8.8"/><path d="m22.8 29.1c-14.2 1.1-5.2-6.6-8.2-6.3-5 .4-7.1 6-6.6 8.8 1 6.4 6.3 10.9 13.7 10.9 6.2 0 10.3-3 10.3-6.9 0-3.3-4.2-6.9-9.2-6.5"/></g><g fill="#8a6859"><path d="m42.8 30.5c.3 1.1-.7 2.3-2.2 2.7s-2.9-.2-3.2-1.2.7-2.3 2.2-2.7c1.5-.4 3 .1 3.2 1.2"/><path d="m21.3 30.5c-.3 1.1.7 2.3 2.2 2.7 1.5.4 2.9-.2 3.2-1.2.3-1.1-.7-2.3-2.2-2.7-1.5-.4-3 .1-3.2 1.2"/></g><ellipse cx="32" cy="29.7" rx="7.5" ry="5.2" fill="#b58360"/><path d="m60 17.6c0 2.1-1.2 3.9-4 3.9h-48c-2.8 0-4-1.7-4-3.9 0-2.1 1.2-3.9 4-3.9h48c2.8.1 4 1.8 4 3.9" fill="#fff"/><path d="m42.8 16.8c-17.5-3.5-33.7-3.1-33.7-3.1 0-7.2 12.7-12.7 26.2-12.7 14.2 0 24.5 7.5 26 20.5 1.9 15.9-11.8 26.3-10.2 22.8 8.1-18.3-1.6-26.1-8.3-27.5" fill="#ff4848"/><ellipse cx="47.9" cy="48.8" rx="6.7" ry="6.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fe.svg
index af7edbc..3745e8e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m13.11 23.528c2.609 2.695 2.936 6.727.73 9.01-2.205 2.277-6.107 1.941-8.715-.754-2.609-2.695-2.936-6.729-.73-9.01 2.206-2.277 6.108-1.939 8.715.756"/><path fill="#ff4848" d="m62 62.999h-60c0-34.615 13.432-37.904 30-37.904 16.566 0 30 3.289 30 37.904"/><path fill="#b47d56" d="m54.23 19.06c0 13.588-2.549 24.605-22.23 24.605s-22.23-11.02-22.23-24.605c0-4.366 44.46-4.366 44.46 0"/><path fill="#fff" d="m26.21 25.18c0 3.424-2.688 6.199-5.998 6.199-3.316 0-6-2.775-6-6.199 0-3.422 2.686-6.201 6-6.201 3.31-.001 5.998 2.779 5.998 6.201"/><path fill="#0a84a5" d="m24.713 25.18c0 2.566-2.02 4.648-4.502 4.648-2.484 0-4.5-2.082-4.5-4.648 0-2.57 2.02-4.65 4.5-4.65 2.486-.001 4.502 2.079 4.502 4.65"/><path fill="#231f20" d="m21.712 25.18c0 .854-.673 1.546-1.501 1.546s-1.499-.692-1.499-1.546c0-.855.671-1.554 1.499-1.554s1.501.698 1.501 1.554"/><ellipse fill="#fff" cx="43.791" cy="25.18" rx="6" ry="6.197"/><path fill="#0a84a5" d="m48.29 25.18c0 2.566-2.02 4.648-4.5 4.648s-4.5-2.082-4.5-4.648c0-2.57 2.02-4.65 4.5-4.65s4.5 2.079 4.5 4.65"/><ellipse fill="#231f20" cx="43.791" cy="25.18" rx="1.5" ry="1.548"/><path fill="#e2e9ed" d="m57.32 40.22c0 18.324-10.984 21.693-24.537 21.693-13.551 0-24.537-3.369-24.537-21.693 0-10.322 10.986-10.691 24.537-10.691s24.537.368 24.537 10.691"/><ellipse fill="#664e27" cx="31.96" cy="36.794" rx="3.522" ry="3.641"/><g fill="#fff"><path d="m49.31 22.743c-2.959-.244 6.08 7.404-8.152 6.313-4.982-.383-9.203 3.258-9.203 6.518 0 3.936 4.053 6.928 10.299 6.928 7.344 0 12.637-4.508 13.684-10.945.456-2.802-1.667-8.406-6.628-8.814"/><path d="m22.842 29.06c-14.232 1.092-5.193-6.557-8.152-6.313-4.959.408-7.084 6.01-6.627 8.813 1.047 6.438 6.342 10.945 13.684 10.945 6.246 0 10.299-2.992 10.299-6.928-.001-3.26-4.222-6.9-9.204-6.517"/></g><g fill="#734c31"><path d="m42.836 30.519c.27 1.084-.73 2.285-2.23 2.684s-2.936-.159-3.206-1.243.73-2.285 2.23-2.684c1.503-.398 2.936.157 3.206 1.243"/><path d="m21.252 30.519c-.27 1.084.73 2.285 2.23 2.684 1.502.398 2.938-.158 3.205-1.242.27-1.084-.729-2.285-2.23-2.684-1.5-.399-2.936.156-3.205 1.242"/></g><ellipse fill="#935e3e" cx="32.04" cy="29.71" rx="7.519" ry="5.18"/><path fill="#fff" d="m60 17.646c0 2.148-1.236 3.891-3.994 3.891h-48.01c-2.756 0-3.992-1.742-3.992-3.891 0-2.148 1.236-3.891 3.992-3.891h48.01c2.758 0 3.994 1.742 3.994 3.891"/><path fill="#ff4848" d="m42.791 16.815c-17.523-3.518-33.672-3.061-33.672-3.061 0-7.244 12.721-12.756 26.22-12.756 14.24 0 24.455 7.531 26.03 20.521 1.934 15.93-11.818 26.314-10.25 22.764 8.08-18.288-1.613-26.12-8.328-27.468"/><ellipse fill="#fff" cx="47.903" cy="48.769" rx="6.651" ry="6.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 23.5c2.6 2.7 2.9 6.7.7 9-2.2 2.3-6.1 1.9-8.7-.8-2.6-2.7-2.9-6.7-.7-9 2.2-2.2 6.1-1.9 8.7.8" fill="#b47d56"/><path d="m62 63h-60c0-34.6 13.4-37.9 30-37.9 16.6 0 30 3.3 30 37.9" fill="#ff4848"/><path d="m54.2 19.1c0 13.6-2.5 24.6-22.2 24.6s-22.2-11.1-22.2-24.6c0-4.4 44.4-4.4 44.4 0" fill="#b47d56"/><path d="m26.2 25.2c0 3.4-2.7 6.2-6 6.2-3.3 0-6-2.8-6-6.2 0-3.4 2.7-6.2 6-6.2 3.3 0 6 2.8 6 6.2" fill="#fff"/><path d="m24.7 25.2c0 2.6-2 4.6-4.5 4.6-2.5 0-4.5-2.1-4.5-4.6 0-2.6 2-4.6 4.5-4.6 2.5-.1 4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m21.7 25.2c0 .9-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5c0-.9.7-1.6 1.5-1.6s1.5.7 1.5 1.6" fill="#231f20"/><ellipse cx="43.8" cy="25.2" rx="6" ry="6.2" fill="#fff"/><path d="m48.3 25.2c0 2.6-2 4.6-4.5 4.6s-4.5-2.1-4.5-4.6c0-2.6 2-4.6 4.5-4.6s4.5 2 4.5 4.6" fill="#0a84a5"/><ellipse cx="43.8" cy="25.2" rx="1.5" ry="1.5" fill="#231f20"/><path d="m57.3 40.2c0 18.3-11 21.7-24.5 21.7-13.6 0-24.5-3.4-24.5-21.7 0-10.3 11-10.7 24.5-10.7s24.5.4 24.5 10.7" fill="#e2e9ed"/><ellipse cx="32" cy="36.8" rx="3.5" ry="3.6" fill="#664e27"/><g fill="#fff"><path d="m49.3 22.7c-3-.2 6.1 7.4-8.2 6.3-5-.4-9.2 3.3-9.2 6.5 0 3.9 4.1 6.9 10.3 6.9 7.3 0 12.6-4.5 13.7-10.9.5-2.7-1.6-8.3-6.6-8.8"/><path d="m22.8 29.1c-14.2 1.1-5.2-6.6-8.2-6.3-5 .4-7.1 6-6.6 8.8 1 6.4 6.3 10.9 13.7 10.9 6.2 0 10.3-3 10.3-6.9 0-3.3-4.2-6.9-9.2-6.5"/></g><g fill="#734c31"><path d="m42.8 30.5c.3 1.1-.7 2.3-2.2 2.7s-2.9-.2-3.2-1.2.7-2.3 2.2-2.7c1.5-.4 3 .1 3.2 1.2"/><path d="m21.3 30.5c-.3 1.1.7 2.3 2.2 2.7 1.5.4 2.9-.2 3.2-1.2.3-1.1-.7-2.3-2.2-2.7-1.5-.4-3 .1-3.2 1.2"/></g><ellipse cx="32" cy="29.7" rx="7.5" ry="5.2" fill="#935e3e"/><path d="m60 17.6c0 2.1-1.2 3.9-4 3.9h-48c-2.8 0-4-1.7-4-3.9 0-2.1 1.2-3.9 4-3.9h48c2.8.1 4 1.8 4 3.9" fill="#fff"/><path d="m42.8 16.8c-17.5-3.5-33.7-3.1-33.7-3.1 0-7.2 12.7-12.7 26.2-12.7 14.2 0 24.5 7.5 26 20.5 1.9 15.9-11.8 26.3-10.2 22.8 8.1-18.3-1.6-26.1-8.3-27.5" fill="#ff4848"/><ellipse cx="47.9" cy="48.8" rx="6.7" ry="6.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3ff.svg
index 5e99d94..af8c967 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f385-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m13.11 23.528c2.609 2.695 2.936 6.727.73 9.01-2.205 2.277-6.107 1.941-8.715-.754-2.609-2.695-2.936-6.729-.73-9.01 2.206-2.277 6.108-1.939 8.715.756"/><path fill="#ff4848" d="m62 62.999h-60c0-34.615 13.432-37.904 30-37.904 16.566 0 30 3.289 30 37.904"/><path fill="#8a6859" d="m54.23 19.06c0 13.588-2.549 24.605-22.23 24.605s-22.23-11.02-22.23-24.605c0-4.366 44.46-4.366 44.46 0"/><path fill="#fff" d="m26.21 25.18c0 3.424-2.688 6.199-5.998 6.199-3.316 0-6-2.775-6-6.199 0-3.422 2.686-6.201 6-6.201 3.31-.001 5.998 2.779 5.998 6.201"/><path fill="#0a84a5" d="m24.713 25.18c0 2.566-2.02 4.648-4.502 4.648-2.484 0-4.5-2.082-4.5-4.648 0-2.57 2.02-4.65 4.5-4.65 2.486-.001 4.502 2.079 4.502 4.65"/><path fill="#231f20" d="m21.712 25.18c0 .854-.673 1.546-1.502 1.546-.828 0-1.498-.692-1.498-1.546 0-.855.67-1.554 1.498-1.554.829 0 1.502.698 1.502 1.554"/><ellipse fill="#fff" cx="43.791" cy="25.18" rx="6" ry="6.197"/><path fill="#0a84a5" d="m48.29 25.18c0 2.566-2.02 4.648-4.5 4.648s-4.5-2.082-4.5-4.648c0-2.57 2.02-4.65 4.5-4.65s4.5 2.079 4.5 4.65"/><ellipse fill="#231f20" cx="43.791" cy="25.18" rx="1.5" ry="1.548"/><path fill="#e2e9ed" d="m57.32 40.22c0 18.324-10.984 21.693-24.537 21.693-13.551 0-24.537-3.369-24.537-21.693 0-10.322 10.986-10.691 24.537-10.691s24.537.368 24.537 10.691"/><ellipse fill="#664e27" cx="31.96" cy="36.794" rx="3.522" ry="3.641"/><g fill="#fff"><path d="m49.31 22.743c-2.959-.244 6.08 7.404-8.152 6.313-4.982-.383-9.203 3.258-9.203 6.518 0 3.936 4.053 6.928 10.299 6.928 7.344 0 12.637-4.508 13.684-10.945.456-2.802-1.667-8.406-6.628-8.814"/><path d="m22.842 29.06c-14.232 1.092-5.193-6.557-8.152-6.313-4.959.408-7.084 6.01-6.627 8.813 1.047 6.438 6.342 10.945 13.684 10.945 6.246 0 10.299-2.992 10.299-6.928-.001-3.26-4.222-6.9-9.204-6.517"/></g><g fill="#5c3f34"><path d="m42.836 30.519c.27 1.084-.73 2.285-2.23 2.684s-2.936-.159-3.206-1.243.73-2.285 2.23-2.684c1.503-.398 2.936.157 3.206 1.243"/><path d="m21.252 30.519c-.27 1.084.73 2.285 2.23 2.684 1.502.398 2.938-.158 3.205-1.242.27-1.084-.729-2.285-2.23-2.684-1.5-.399-2.936.156-3.205 1.242"/></g><ellipse fill="#7d5442" cx="32.04" cy="29.71" rx="7.519" ry="5.18"/><path fill="#fff" d="m60 17.646c0 2.148-1.236 3.891-3.994 3.891h-48.01c-2.756 0-3.992-1.742-3.992-3.891 0-2.148 1.236-3.891 3.992-3.891h48.01c2.758 0 3.994 1.742 3.994 3.891"/><path fill="#ff4848" d="m42.791 16.815c-17.523-3.518-33.672-3.061-33.672-3.061 0-7.244 12.721-12.756 26.22-12.756 14.24 0 24.455 7.531 26.03 20.521 1.934 15.93-11.818 26.314-10.25 22.764 8.08-18.288-1.613-26.12-8.328-27.468"/><ellipse fill="#fff" cx="47.903" cy="48.769" rx="6.651" ry="6.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 23.5c2.6 2.7 2.9 6.7.7 9-2.2 2.3-6.1 1.9-8.7-.8-2.6-2.7-2.9-6.7-.7-9 2.2-2.2 6.1-1.9 8.7.8" fill="#8a6859"/><path d="m62 63h-60c0-34.6 13.4-37.9 30-37.9 16.6 0 30 3.3 30 37.9" fill="#ff4848"/><path d="m54.2 19.1c0 13.6-2.5 24.6-22.2 24.6s-22.2-11.1-22.2-24.6c0-4.4 44.4-4.4 44.4 0" fill="#8a6859"/><path d="m26.2 25.2c0 3.4-2.7 6.2-6 6.2-3.3 0-6-2.8-6-6.2 0-3.4 2.7-6.2 6-6.2 3.3 0 6 2.8 6 6.2" fill="#fff"/><path d="m24.7 25.2c0 2.6-2 4.6-4.5 4.6-2.5 0-4.5-2.1-4.5-4.6 0-2.6 2-4.6 4.5-4.6 2.5-.1 4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m21.7 25.2c0 .9-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.9.7-1.6 1.5-1.6.8 0 1.5.7 1.5 1.6" fill="#231f20"/><ellipse cx="43.8" cy="25.2" rx="6" ry="6.2" fill="#fff"/><path d="m48.3 25.2c0 2.6-2 4.6-4.5 4.6s-4.5-2.1-4.5-4.6c0-2.6 2-4.6 4.5-4.6s4.5 2 4.5 4.6" fill="#0a84a5"/><ellipse cx="43.8" cy="25.2" rx="1.5" ry="1.5" fill="#231f20"/><path d="m57.3 40.2c0 18.3-11 21.7-24.5 21.7-13.6 0-24.5-3.4-24.5-21.7 0-10.3 11-10.7 24.5-10.7s24.5.4 24.5 10.7" fill="#e2e9ed"/><ellipse cx="32" cy="36.8" rx="3.5" ry="3.6" fill="#664e27"/><g fill="#fff"><path d="m49.3 22.7c-3-.2 6.1 7.4-8.2 6.3-5-.4-9.2 3.3-9.2 6.5 0 3.9 4.1 6.9 10.3 6.9 7.3 0 12.6-4.5 13.7-10.9.5-2.7-1.6-8.3-6.6-8.8"/><path d="m22.8 29.1c-14.2 1.1-5.2-6.6-8.2-6.3-5 .4-7.1 6-6.6 8.8 1 6.4 6.3 10.9 13.7 10.9 6.2 0 10.3-3 10.3-6.9 0-3.3-4.2-6.9-9.2-6.5"/></g><g fill="#5c3f34"><path d="m42.8 30.5c.3 1.1-.7 2.3-2.2 2.7s-2.9-.2-3.2-1.2.7-2.3 2.2-2.7c1.5-.4 3 .1 3.2 1.2"/><path d="m21.3 30.5c-.3 1.1.7 2.3 2.2 2.7 1.5.4 2.9-.2 3.2-1.2.3-1.1-.7-2.3-2.2-2.7-1.5-.4-3 .1-3.2 1.2"/></g><ellipse cx="32" cy="29.7" rx="7.5" ry="5.2" fill="#7d5442"/><path d="m60 17.6c0 2.1-1.2 3.9-4 3.9h-48c-2.8 0-4-1.7-4-3.9 0-2.1 1.2-3.9 4-3.9h48c2.8.1 4 1.8 4 3.9" fill="#fff"/><path d="m42.8 16.8c-17.5-3.5-33.7-3.1-33.7-3.1 0-7.2 12.7-12.7 26.2-12.7 14.2 0 24.5 7.5 26 20.5 1.9 15.9-11.8 26.3-10.2 22.8 8.1-18.3-1.6-26.1-8.3-27.5" fill="#ff4848"/><ellipse cx="47.9" cy="48.8" rx="6.7" ry="6.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f385.svg b/build/js/jsxc/lib/emojione/assets/svg/1f385.svg
index 5bf1044..9f07458 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f385.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f385.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m13.11 23.528c2.609 2.695 2.936 6.727.73 9.01-2.205 2.277-6.107 1.941-8.715-.754-2.609-2.695-2.936-6.729-.73-9.01 2.206-2.277 6.108-1.939 8.715.756"/><path fill="#ff4848" d="m62 62.999h-60c0-34.615 13.432-37.904 30-37.904 16.566 0 30 3.289 30 37.904"/><path fill="#ffdd67" d="m54.23 19.06c0 13.588-2.549 24.605-22.23 24.605s-22.23-11.02-22.23-24.605c0-4.366 44.46-4.366 44.46 0"/><path fill="#fff" d="m26.21 25.18c0 3.424-2.688 6.199-5.998 6.199-3.316 0-6-2.775-6-6.199 0-3.422 2.686-6.201 6-6.201 3.31-.001 5.998 2.779 5.998 6.201"/><path fill="#0a84a5" d="m24.713 25.18c0 2.566-2.02 4.648-4.502 4.648-2.484 0-4.5-2.082-4.5-4.648 0-2.57 2.02-4.65 4.5-4.65 2.486-.001 4.502 2.079 4.502 4.65"/><path fill="#231f20" d="m21.712 25.18c0 .853-.673 1.546-1.501 1.546-.828 0-1.499-.693-1.499-1.546 0-.855.671-1.554 1.499-1.554.828 0 1.501.698 1.501 1.554"/><ellipse fill="#fff" cx="43.791" cy="25.18" rx="6" ry="6.197"/><path fill="#0a84a5" d="m48.29 25.18c0 2.566-2.02 4.648-4.5 4.648s-4.5-2.082-4.5-4.648c0-2.57 2.02-4.65 4.5-4.65s4.5 2.079 4.5 4.65"/><path fill="#231f20" d="m45.29 25.18c0 .854-.673 1.547-1.5 1.547-.828 0-1.5-.694-1.5-1.547 0-.856.672-1.555 1.5-1.555.827-.001 1.5.698 1.5 1.555"/><path fill="#e2e9ed" d="m57.32 40.22c0 18.324-10.984 21.693-24.537 21.693-13.551 0-24.537-3.369-24.537-21.693 0-10.322 10.986-10.691 24.537-10.691s24.537.368 24.537 10.691"/><ellipse fill="#664e27" cx="31.96" cy="36.794" rx="3.522" ry="3.641"/><g fill="#fff"><path d="m49.31 22.743c-2.959-.244 6.08 7.404-8.152 6.313-4.982-.383-9.203 3.258-9.203 6.518 0 3.936 4.053 6.928 10.299 6.928 7.344 0 12.637-4.508 13.684-10.945.456-2.802-1.667-8.406-6.628-8.814"/><path d="m22.842 29.06c-14.232 1.092-5.193-6.557-8.152-6.313-4.959.408-7.084 6.01-6.627 8.813 1.047 6.438 6.342 10.945 13.684 10.945 6.246 0 10.299-2.992 10.299-6.928-.001-3.26-4.222-6.9-9.204-6.517"/></g><g fill="#eba352"><path d="m42.836 30.519c.27 1.084-.73 2.285-2.23 2.684s-2.936-.159-3.206-1.243.73-2.285 2.23-2.684c1.503-.398 2.936.157 3.206 1.243"/><path d="m21.252 30.519c-.27 1.084.73 2.285 2.23 2.684 1.502.398 2.938-.158 3.205-1.242.27-1.084-.729-2.285-2.23-2.684-1.5-.399-2.936.156-3.205 1.242"/></g><ellipse fill="#ffc267" cx="32.04" cy="29.71" rx="7.519" ry="5.18"/><path fill="#fff" d="m60 17.646c0 2.148-1.236 3.891-3.994 3.891h-48.01c-2.756 0-3.992-1.742-3.992-3.891 0-2.148 1.236-3.891 3.992-3.891h48.01c2.758 0 3.994 1.742 3.994 3.891"/><path fill="#ff4848" d="m42.791 16.815c-17.523-3.518-33.672-3.061-33.672-3.061 0-7.244 12.721-12.756 26.22-12.756 14.24 0 24.455 7.531 26.03 20.521 1.934 15.93-11.818 26.314-10.25 22.764 8.08-18.288-1.613-26.12-8.328-27.468"/><ellipse fill="#fff" cx="47.903" cy="48.769" rx="6.651" ry="6.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 23.5c2.6 2.7 2.9 6.7.7 9-2.2 2.3-6.1 1.9-8.7-.8-2.6-2.7-2.9-6.7-.7-9 2.2-2.2 6.1-1.9 8.7.8" fill="#ffdd67"/><path d="m62 63h-60c0-34.6 13.4-37.9 30-37.9 16.6 0 30 3.3 30 37.9" fill="#ff4848"/><path d="m54.2 19.1c0 13.6-2.5 24.6-22.2 24.6s-22.2-11.1-22.2-24.6c0-4.4 44.4-4.4 44.4 0" fill="#ffdd67"/><path d="m26.2 25.2c0 3.4-2.7 6.2-6 6.2-3.3 0-6-2.8-6-6.2 0-3.4 2.7-6.2 6-6.2 3.3 0 6 2.8 6 6.2" fill="#fff"/><path d="m24.7 25.2c0 2.6-2 4.6-4.5 4.6-2.5 0-4.5-2.1-4.5-4.6 0-2.6 2-4.6 4.5-4.6 2.5-.1 4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m21.7 25.2c0 .9-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5c0-.9.7-1.6 1.5-1.6.8 0 1.5.7 1.5 1.6" fill="#231f20"/><ellipse cx="43.8" cy="25.2" rx="6" ry="6.2" fill="#fff"/><path d="m48.3 25.2c0 2.6-2 4.6-4.5 4.6s-4.5-2.1-4.5-4.6c0-2.6 2-4.6 4.5-4.6s4.5 2 4.5 4.6" fill="#0a84a5"/><path d="m45.3 25.2c0 .9-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.9.7-1.6 1.5-1.6.8 0 1.5.7 1.5 1.6" fill="#231f20"/><path d="m57.3 40.2c0 18.3-11 21.7-24.5 21.7-13.6 0-24.5-3.4-24.5-21.7 0-10.3 11-10.7 24.5-10.7s24.5.4 24.5 10.7" fill="#e2e9ed"/><ellipse cx="32" cy="36.8" rx="3.5" ry="3.6" fill="#664e27"/><g fill="#fff"><path d="m49.3 22.7c-3-.2 6.1 7.4-8.2 6.3-5-.4-9.2 3.3-9.2 6.5 0 3.9 4.1 6.9 10.3 6.9 7.3 0 12.6-4.5 13.7-10.9.5-2.7-1.6-8.3-6.6-8.8"/><path d="m22.8 29.1c-14.2 1.1-5.2-6.6-8.2-6.3-5 .4-7.1 6-6.6 8.8 1 6.4 6.3 10.9 13.7 10.9 6.2 0 10.3-3 10.3-6.9 0-3.3-4.2-6.9-9.2-6.5"/></g><g fill="#eba352"><path d="m42.8 30.5c.3 1.1-.7 2.3-2.2 2.7s-2.9-.2-3.2-1.2.7-2.3 2.2-2.7c1.5-.4 3 .1 3.2 1.2"/><path d="m21.3 30.5c-.3 1.1.7 2.3 2.2 2.7 1.5.4 2.9-.2 3.2-1.2.3-1.1-.7-2.3-2.2-2.7-1.5-.4-3 .1-3.2 1.2"/></g><ellipse cx="32" cy="29.7" rx="7.5" ry="5.2" fill="#ffc267"/><path d="m60 17.6c0 2.1-1.2 3.9-4 3.9h-48c-2.8 0-4-1.7-4-3.9 0-2.1 1.2-3.9 4-3.9h48c2.8.1 4 1.8 4 3.9" fill="#fff"/><path d="m42.8 16.8c-17.5-3.5-33.7-3.1-33.7-3.1 0-7.2 12.7-12.7 26.2-12.7 14.2 0 24.5 7.5 26 20.5 1.9 15.9-11.8 26.3-10.2 22.8 8.1-18.3-1.6-26.1-8.3-27.5" fill="#ff4848"/><ellipse cx="47.9" cy="48.8" rx="6.7" ry="6.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f386.svg b/build/js/jsxc/lib/emojione/assets/svg/1f386.svg
index fc3d26b..9b8995a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f386.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f386.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m0 0h64v64h-64z"/><path fill="#3e4347" d="m0 0h64v64h-64z"/><g fill="#6adbc6"><path d="m32 30.76c0 0-1.731-10.846-1.731-11.602s.775-1.37 1.731-1.37 1.731.613 1.731 1.37-1.731 11.602-1.731 11.602"/><path d="m32 33.29c0 0 1.731 10.846 1.731 11.602 0 .757-.775 1.37-1.731 1.37s-1.731-.613-1.731-1.37c0-.756 1.731-11.602 1.731-11.602"/><path d="m30.733 32.03c0 0-10.846 1.731-11.602 1.731-.757 0-1.37-.775-1.37-1.731s.613-1.731 1.37-1.731c.757 0 11.602 1.731 11.602 1.731"/><path d="m33.27 32.03c0 0 10.846-1.731 11.603-1.731.756 0 1.369.775 1.369 1.731s-.613 1.731-1.369 1.731c-.758.001-11.603-1.731-11.603-1.731"/><path d="m31.1 31.13c0 0-8.894-6.445-9.428-6.98-.535-.535-.421-1.516.256-2.192.676-.676 1.657-.791 2.192-.256.535.535 6.98 9.428 6.98 9.428"/><path d="m32.896 32.922c0 0 8.894 6.445 9.428 6.98.535.534.421 1.516-.256 2.191-.676.676-1.657.791-2.192.256-.535-.535-6.98-9.427-6.98-9.427"/><path d="m31.1 32.922c0 0-6.445 8.893-6.979 9.428-.535.535-1.517.42-2.192-.256-.677-.676-.791-1.657-.256-2.191.534-.536 9.427-6.981 9.427-6.981"/><path d="m32.896 31.13c0 0 6.445-8.893 6.979-9.428.535-.535 1.517-.42 2.192.256.677.676.791 1.658.256 2.192-.534.535-9.427 6.98-9.427 6.98"/></g><g fill="#ffce31"><path d="m31.15 29.913c0 0-8.919-17.453-9.429-18.715-.51-1.263-.205-2.576.682-2.934.887-.358 2.02.375 2.528 1.637s6.219 20.01 6.219 20.01"/><path d="m32.854 34.14c0 0 8.919 17.452 9.429 18.716.51 1.262.205 2.575-.682 2.934-.887.357-2.02-.375-2.528-1.637-.51-1.263-6.219-20.01-6.219-20.01"/><path d="m29.887 32.881c0 0-17.453 8.918-18.715 9.428-1.263.51-2.576.205-2.935-.682-.357-.887.375-2.02 1.638-2.528 1.262-.511 20.01-6.218 20.01-6.218"/><path d="m34.11 31.17c0 0 17.453-8.918 18.715-9.428 1.263-.51 2.576-.205 2.935.682.357.886-.375 2.02-1.638 2.528-1.262.51-20.01 6.218-20.01 6.218"/><path d="m29.901 31.14c0 0-18.646-6.04-19.9-6.566-1.253-.532-1.966-1.677-1.592-2.557.373-.88 1.692-1.162 2.945-.63 1.253.531 18.547 9.753 18.547 9.753"/><path d="m34.1 32.917c0 0 18.646 6.03 19.9 6.566 1.253.532 1.966 1.677 1.592 2.557-.373.88-1.692 1.163-2.945.63-1.253-.531-18.547-9.753-18.547-9.753"/><path d="m31.11 34.13c0 0-6.03 18.646-6.566 19.9-.532 1.252-1.677 1.966-2.557 1.592-.88-.373-1.162-1.691-.631-2.945.533-1.253 9.754-18.547 9.754-18.547"/><path d="m32.891 29.928c0 0 6.03-18.647 6.566-19.9.532-1.253 1.677-1.966 2.557-1.593s1.163 1.692.631 2.945c-.533 1.254-9.754 18.548-9.754 18.548"/></g><g fill="#42ade2"><path d="m32.01 47.24c0 0 1.733 12.63 1.733 13.51.001.881-.774 1.596-1.73 1.596s-1.731-.713-1.731-1.594 1.728-13.512 1.728-13.512"/><path d="m31.995 15.769c0 0-1.734-11.805-1.734-12.627-.001-.823.774-1.491 1.73-1.491s1.731.667 1.731 1.49-1.727 12.628-1.727 12.628"/><path d="m42.783 42.775c0 0 10.157 7.704 10.779 8.326.623.623.58 1.676-.096 2.353s-1.729.72-2.352.097-8.331-10.776-8.331-10.776"/><path d="m20.519 20.526c0 0-9.572-7.121-10.155-7.703-.582-.582-.506-1.602.17-2.278s1.696-.752 2.278-.17c.582.582 7.707 10.151 7.707 10.151"/><path d="m42.783 21.23c0 0 7.709-10.153 8.332-10.776.623-.623 1.676-.58 2.352.097s.719 1.729.096 2.352c-.623.622-10.78 8.327-10.78 8.327"/><path d="m20.519 43.47c0 0-7.125 9.57-7.707 10.152s-1.603.506-2.278-.171-.752-1.696-.17-2.278c.582-.582 10.155-7.703 10.155-7.703"/><path d="m47.24 31.994c0 0 12.63-1.734 13.511-1.734s1.595.775 1.595 1.73c.001.957-.713 1.732-1.594 1.732s-13.512-1.728-13.512-1.728"/><path d="m15.769 32.01c0 0-11.805 1.733-12.627 1.734-.824 0-1.491-.775-1.491-1.731s.667-1.731 1.49-1.731 12.628 1.728 12.628 1.728"/><circle cx="20.596" cy="4.782" r="1.862"/><circle cx="43.679" cy="4.782" r="1.861"/><circle cx="20.07" cy="59.34" r="1.862"/><circle cx="43.15" cy="59.34" r="1.862"/><circle cx="4.597" cy="43.34" r="1.861"/><circle cx="4.597" cy="20.258" r="1.862"/><circle cx="59.15" cy="43.864" r="1.862"/><circle cx="59.15" cy="20.782" r="1.862"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#6adbc6"><path d="m32 30.8c0 0-1.7-10.7-1.7-11.5s.8-1.3 1.7-1.3 1.7.6 1.7 1.4-1.7 11.4-1.7 11.4"/><path d="m32 33.3c0 0 1.7 10.7 1.7 11.5 0 .7-.8 1.4-1.7 1.4s-1.7-.6-1.7-1.4c0-.8 1.7-11.5 1.7-11.5"/><path d="m30.7 32c0 0-10.7 1.7-11.5 1.7-.7 0-1.4-.8-1.4-1.7s.6-1.7 1.4-1.7c.8 0 11.5 1.7 11.5 1.7"/><path d="m33.3 32c0 0 10.7-1.7 11.5-1.7.7 0 1.4.8 1.4 1.7s-.6 1.7-1.4 1.7-11.5-1.7-11.5-1.7"/><path d="m31.1 31.1c0 0-8.8-6.4-9.3-6.9-.5-.5-.4-1.5.3-2.2.7-.7 1.6-.8 2.2-.3.4.7 6.8 9.4 6.8 9.4"/><path d="m32.9 32.9c0 0 8.8 6.4 9.3 6.9.5.5.4 1.5-.3 2.2-.7.7-1.6.8-2.2.3-.4-.6-6.8-9.4-6.8-9.4"/><path d="m31.1 32.9c0 0-6.4 8.8-6.9 9.3-.5.5-1.5.4-2.2-.3-.7-.7-.8-1.6-.3-2.2.6-.4 9.4-6.8 9.4-6.8"/><path d="m32.9 31.1c0 0 6.4-8.8 6.9-9.3.5-.5 1.5-.4 2.2.3.7.7.8 1.6.3 2.2-.6.5-9.4 6.8-9.4 6.8"/></g><g fill="#ffce31"><path d="m31.2 29.9c0 0-8.8-17.3-9.3-18.5s-.2-2.5.7-2.9 2 .4 2.5 1.6 6.1 19.8 6.1 19.8"/><path d="m32.8 34.1c0 0 8.8 17.3 9.3 18.5.5 1.2.2 2.5-.7 2.9-.9.4-2-.4-2.5-1.6s-6.1-19.8-6.1-19.8"/><path d="m29.9 32.9c0 0-17.3 8.8-18.5 9.3-1.2.5-2.5.2-2.9-.7-.4-.9.4-2 1.6-2.5 1.3-.5 19.8-6.1 19.8-6.1"/><path d="m34.1 31.2c0 0 17.3-8.8 18.5-9.3 1.2-.5 2.5-.2 2.9.7.4.9-.4 2-1.6 2.5-1.3.4-19.8 6.1-19.8 6.1"/><path d="m29.9 31.1c0 0-18.4-6-19.7-6.5s-1.9-1.6-1.5-2.5c.4-.9 1.7-1.1 2.9-.6 1.2.5 18.3 9.6 18.3 9.6"/><path d="m34.1 32.9c0 0 18.4 6 19.7 6.5 1.2.5 1.9 1.7 1.6 2.5-.4.9-1.7 1.1-2.9.6-1.3-.5-18.4-9.6-18.4-9.6"/><path d="m31.1 34.1c0 0-6 18.4-6.5 19.7-.5 1.2-1.7 1.9-2.5 1.6-.9-.4-1.1-1.7-.6-2.9.5-1.3 9.6-18.4 9.6-18.4"/><path d="m32.9 30c0 0 6-18.4 6.5-19.7.5-1.3 1.6-2 2.5-1.6.9.4 1.1 1.7.6 2.9-.5 1.3-9.6 18.4-9.6 18.4"/></g><g fill="#42ade2"><path d="m32 47.1c0 0 1.7 12.5 1.7 13.4 0 .9-.8 1.6-1.7 1.6-.9 0-1.7-.7-1.7-1.6 0-.9 1.7-13.4 1.7-13.4"/><path d="M32,16c0,0-1.7-11.7-1.7-12.5C30.3,2.7,31,2,32,2s1.7,0.7,1.7,1.5S32,16,32,16z"/><path d="m42.7 42.7c0 0 10 7.6 10.7 8.2.6.6.6 1.7-.1 2.3s-1.7.7-2.3.1c-.7-.6-8.3-10.6-8.3-10.6"/><path d="m20.7 20.7c0 0-9.5-7-10-7.6-.6-.6-.5-1.6.2-2.3.7-.7 1.7-.7 2.3-.2.4.6 7.5 10.1 7.5 10.1"/><path d="m42.7 21.3c0 0 7.6-10 8.2-10.7.6-.6 1.7-.6 2.3.1.7.7.7 1.7.1 2.3-.6.7-10.6 8.3-10.6 8.3"/><path d="m20.7 43.3c0 0-7 9.5-7.6 10-.6.6-1.6.5-2.3-.2s-.8-1.6-.2-2.1c.6-.6 10.1-7.7 10.1-7.7"/><path d="m47.1 32c0 0 12.5-1.7 13.4-1.7s1.5.7 1.5 1.7c0 .9-.7 1.7-1.6 1.7-.8 0-13.3-1.7-13.3-1.7"/><path d="M16,32c0,0-11.7,1.7-12.5,1.7C2.7,33.7,2,33,2,32s0.7-1.7,1.5-1.7C4.3,30.3,16,32,16,32z"/><circle cx="20.7" cy="5.1" r="1.8"/><circle cx="43.5" cy="5.1" r="1.8"/><circle cx="20.2" cy="59" r="1.8"/><circle cx="43" cy="59" r="1.8"/><circle cx="4.9" cy="43.2" r="1.8"/><circle cx="4.9" cy="20.4" r="1.8"/><circle cx="58.8" cy="43.7" r="1.8"/><circle cx="58.8" cy="20.9" r="1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f387.svg b/build/js/jsxc/lib/emojione/assets/svg/1f387.svg
index ea7924e..2014225 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f387.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f387.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m0 0h64v64h-64z"/><path fill="#d0d0d0" d="m30.914 32h2.174v32h-2.174z"/><path fill="#ffdd7d" d="M32 3.2 34.967 22.869 48.928 8.7 39.768 26.357 59.39 23.1 41.6 32 59.39 40.898 39.768 37.643 48.928 55.3 34.967 41.13 32 60.799 29.03 41.13 15.07 55.3 24.23 37.643 4.61 40.898 22.401 32 4.61 23.1 24.23 26.357 15.07 8.7 29.03 22.869z"/><path fill="#ffce31" d="M25.326 52.54 27.768 37.824 14.526 44.695 25.15 34.23 10.401 32 25.15 29.774 14.526 19.304 27.768 26.17 25.326 11.457 32 24.799 38.676 11.456 36.23 26.17 49.48 19.304 38.848 29.774 53.6 32 38.848 34.23 49.48 44.695 36.23 37.824 38.676 52.54 32 39.2z"/><path fill="#fff" d="m41.521 18.893l-5.151 9.933 11.04-1.833-10.01 5.01 10.01 5.01-11.04-1.84 5.151 9.93-7.851-7.97-1.67 11.07-1.668-11.07-7.853 7.97 5.152-9.93-11.04 1.84 10.01-5.01-10.01-5.01 11.04 1.833-5.152-9.933 7.853 7.971 1.668-11.07 1.67 11.07z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m0 0h64v64h-64z"/><path fill="#d0d0d0" d="m30.9 32h2.2v32h-2.2z"/><path fill="#ffdd7d" d="m32 3.2l3 19.7 13.9-14.2-9.1 17.7 19.6-3.3-17.8 8.9 17.8 8.9-19.6-3.3 9.1 17.7-13.9-14.2-3 19.7-3-19.7-13.9 14.2 9.1-17.7-19.6 3.3 17.8-8.9-17.8-8.9 19.6 3.3-9.1-17.7 13.9 14.2z"/><path fill="#ffce31" d="m25.3 52.5l2.5-14.7-13.3 6.9 10.7-10.5-14.8-2.2 14.8-2.2-10.7-10.5 13.3 6.9-2.5-14.7 6.7 13.3 6.7-13.3-2.5 14.7 13.3-6.9-10.7 10.5 14.8 2.2-14.8 2.2 10.7 10.5-13.3-6.9 2.5 14.7-6.7-13.3z"/><path fill="#fff" d="m41.5 18.9l-5.1 9.9 11-1.8-10 5 10 5-11-1.8 5.1 9.9-7.8-8-1.7 11.1-1.7-11.1-7.8 8 5.1-9.9-11 1.8 10-5-10-5 11 1.8-5.1-9.9 7.8 8 1.7-11.1 1.7 11.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f388.svg b/build/js/jsxc/lib/emojione/assets/svg/1f388.svg
index b383bad..d29c08e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f388.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f388.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M52,22.547c0,11.347-8.844,24.368-19.753,24.368c-10.91,0-19.752-13.021-19.752-24.368
- C12.495,11.199,21.337,2,32.247,2C43.156,2,52,11.199,52,22.547z"/><g fill="#94989b"><path d="m31.546 49.14c-.006-.035-.015-.09-.021-.133.003.029.011.072.021.133"/><path d="m31.551 49.17c-.002-.014-.003-.02-.005-.031l.005.031"/></g><path fill="#b2c1c0" d="m33.03 49.17h-1.476c0 1.82-.361 3.934-1.862 5.176-2.138 1.768-4.89.718-7.378.643-3.02-.092-5.559 1.193-7.74 3.192-.758.693-1.602 1.708-2.291 2.476-.785.875.252 1.924 1.058.965 1.548-1.844 2.574-3.129 4.635-4.295 2.583-1.461 4.963-.732 7.763-.58 3.207.172 6.103-1.355 7.02-4.65.198-.723.275-2.035.275-2.927"/><path fill="#94989b" d="m31.524 49c-.013-.076-.009-.053 0 0"/><path fill="#b2c1c0" d="m30.801 48.04c.965 0 1.932 0 2.894 0 .933 0 .933-1.273 0-1.273-.962 0-1.929 0-2.894 0-.933 0-.933 1.273 0 1.273"/><path fill="#ed4c5c" d="m30.06 49.955c1.448 0 2.896 0 4.34 0 1.4 0 1.4-1.912 0-1.912-1.444 0-2.892 0-4.34 0-1.402 0-1.402 1.912 0 1.912"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52 22.5c0 11.3-8.8 24.4-19.8 24.4-10.9 0-19.8-13-19.8-24.4.1-11.3 8.9-20.5 19.8-20.5 11 0 19.8 9.2 19.8 20.5" fill="#ed4c5c"/><g fill="#94989b"><path d="m31.5 49.1c0 0 0-.1 0-.1 0 0 0 .1 0 .1"/><path d="m31.6 49.2c-.1 0-.1-.1 0 0"/></g><path d="m33 49.2h-1.5c0 1.8-.4 3.9-1.9 5.2-2.1 1.8-4.9.7-7.4.6-3-.1-5.6 1.2-7.7 3.2-.8.7-1.6 1.7-2.3 2.5-.8.9.3 1.9 1.1 1 1.5-1.8 2.6-3.1 4.6-4.3 2.6-1.5 5-.7 7.8-.6 3.2.2 6.1-1.4 7-4.7.2-.7.3-2 .3-2.9" fill="#b2c1c0"/><path d="m31.5 49c0-.1 0 0 0 0" fill="#94989b"/><path d="m30.8 48c1 0 1.9 0 2.9 0 .9 0 .9-1.3 0-1.3-1 0-1.9 0-2.9 0-.9.1-.9 1.3 0 1.3" fill="#b2c1c0"/><path d="m30.1 50c1.4 0 2.9 0 4.3 0 1.4 0 1.4-1.9 0-1.9-1.4 0-2.9 0-4.3 0-1.4-.1-1.4 1.9 0 1.9" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f389.svg b/build/js/jsxc/lib/emojione/assets/svg/1f389.svg
index 9eec927..b0adb4c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f389.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f389.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f7b600" d="m2 61l8.552-2.99-6.467-3.01z"/><path fill="#ffdd7d" d="m26.943 36.398l-12.158-12.218-1.959 5.641z"/><path fill="#f7b600" d="m12.826 29.821l-2.186 6.299 26.809 12.485 1.213-.425-11.719-11.782z"/><path fill="#ffdd7d" d="m8.455 42.41l20.03 9.33 8.967-3.135-26.809-12.485z"/><path fill="#f7b600" d="m6.27 48.703l13.248 6.172 8.964-3.135-20.03-9.33z"/><path fill="#ffdd7d" d="m6.27 48.703l-2.185 6.293 6.467 3.01 8.966-3.135z"/><path fill="#493816" d="m31.889 31.2c6.746 6.638 10.229 13.974 7.779 16.386-2.451 2.41-9.91-1.016-16.656-7.654-6.746-6.637-10.227-13.974-7.776-16.385 2.45-2.412 9.907 1.014 16.653 7.653"/><path fill="#42ade2" d="m23.496 14.48c-1.631-2.264.139-3.275 2.309-2.87-2.063-2.538-.791-4.297 2.461-3.607 1.016.216-.398 1.933-1.309 1.869 2.734 2.048 1.234 4.21-1.661 3.701 2.56 3.515-1.839 2.649-3.762 2.796-.503 2.631 2.502 5.631 1.5 5.631-2.239 0-5.804-8.301.462-7.52"/><path fill="#ff8736" d="m44.545 19.334c-1.479.666-5.707-5.944-.525-6-2.975-2.705-2.592-4.01 1.4-4.089-4.574-4.584 2.654-6.244 3.416-3.789.227.735-2.213-.648-3.01.67-.918 1.521 5.629 5.361-1.127 5.134 2.484 2.529 2.635 3.709-1.328 4.134.518.716 2.111 3.518 1.172 3.941"/><path fill="#ed4c5c" d="m46.23 34.936l1.52-1.291c0 0 1.436 2.074 2.445 2.861.775-3.56.568-5.724 4.719-3.254-2.346-6.197 1.52-3.856 5.174-2.177-.211-1.572.033-1.406 1.615-1.851 1.404 5.268-2.369 3.743-5.447 2.01 1.762 4.753-.082 4.535-3.932 2.91-.066 2.02-.725 4.299-1.934 4.494-1.375.223-4.16-3.704-4.16-3.704"/><path fill="#c28fef" d="m35.01 20.05c-1.846 2.403-4.66 3.745-6.793 5.847-2.219 2.188-3.545 8.208-3.545 8.208s.793-6.278 2.914-8.694c1.92-2.185 4.666-3.777 6.152-6.319 2.658-4.546.285-10.63-3.107-14.1.713-.635 1.658-1.438 2.23-1.989 3.192 4.095 6.03 12 2.149 17.05"/><path fill="#ff8736" d="m38.09 25.18c-2.645 1.901-4.463 4.66-6.305 7.289-1.627 2.321-6.709 5.169-6.709 5.169s4.83-3.256 6.264-5.699c1.766-3.01 3.572-6.106 6.375-8.28 5.604-4.347 13.682-3.859 20.02-1.572-.361.918-1.107 2.812-1.107 2.812s-13.198-3.556-18.538.281"/><g fill="#42ade2"><path d="m49.25 24.718c-1.682 2.229-2.547 4.921-3.836 7.37-1.199 2.283-2.783 4.49-5.129 5.701-2.553 1.32-8.328.869-8.328.869s5.744-.068 8.106-1.658c2.41-1.625 3.674-4.373 4.617-7.02 1.766-4.955 3.98-10.373 9.193-12.578.35.945 1.049 2.836 1.049 2.836s-2.869.764-5.672 4.482"/><path transform="matrix(.707-.7072.7072.707-8.317 8.457)" d="m4.049 12.267h4v4h-4z"/></g><path transform="matrix(.7071-.7071.7071.7071-13.475 13.864)" fill="#ff8736" d="m7.997 21.2h4v4h-4z"/><path transform="matrix(.707-.7072.7072.707-1.906 15.06)" fill="#ed4c5c" d="m15.22 7.828h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-16.808 46.736)" fill="#c28fef" d="m46.01 41.657h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-25.514 45.12)" fill="#ed4c5c" d="m39.705 51.36h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-23.462 54.55)" fill="#ff8736" d="m52.11 53.594h4v4h-4z"/><g fill="#42ade2"><path transform="matrix(.7071-.7071.7071.7071-13.521 52.773)" d="m54.942 40.708h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071 6.223 40.683)" d="m50.22 10.829h4v4h-4z"/></g><path transform="matrix(.7071-.7071.7071.7071-14.685 24.21)" fill="#ed4c5c" d="m19.878 27.829h4v4h-4z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f7b600" d="m2 61l8.6-3-6.5-3z"/><path fill="#ffdd7d" d="m26.9 36.4l-12.1-12.2-2 5.6z"/><path fill="#f7b600" d="m12.8 29.8l-2.2 6.3 26.8 12.5 1.3-.4-11.8-11.8z"/><path fill="#ffdd7d" d="m8.5 42.4l20 9.3 8.9-3.1-26.8-12.5z"/><path fill="#f7b600" d="m6.3 48.7l13.2 6.2 9-3.2-20-9.3z"/><path fill="#ffdd7d" d="m6.3 48.7l-2.2 6.3 6.5 3 8.9-3.1z"/><path d="m31.9 31.2c6.7 6.6 10.2 14 7.8 16.4-2.5 2.4-9.9-1-16.7-7.7-6.7-6.6-10.2-14-7.8-16.4 2.5-2.4 9.9 1.1 16.7 7.7" fill="#493816"/><path d="m23.5 14.5c-1.6-2.3.1-3.3 2.3-2.9-2.1-2.5-.8-4.3 2.5-3.6 1 .2-.4 1.9-1.3 1.9 2.7 2 1.2 4.2-1.7 3.7 2.6 3.5-1.8 2.6-3.8 2.8-.5 2.6 2.5 5.6 1.5 5.6-2.2 0-5.8-8.3.5-7.5" fill="#42ade2"/><path d="m44.5 19.3c-1.5.7-5.7-5.9-.5-6-3-2.7-2.6-4 1.4-4.1-4.6-4.6 2.7-6.2 3.4-3.8.2.7-2.2-.6-3 .7-.9 1.5 5.6 5.4-1.1 5.1 2.5 2.5 2.6 3.7-1.3 4.1.5.8 2.1 3.6 1.1 4" fill="#ff8736"/><path d="m46.2 34.9l1.5-1.3c0 0 1.4 2.1 2.4 2.9.8-3.6.6-5.7 4.7-3.3-2.3-6.2 1.5-3.9 5.2-2.2-.2-1.6 0-1.4 1.6-1.9 1.4 5.3-2.4 3.7-5.4 2 1.8 4.8-.1 4.5-3.9 2.9-.1 2-.7 4.3-1.9 4.5-1.4.4-4.2-3.6-4.2-3.6" fill="#ed4c5c"/><path d="m35 20.1c-1.8 2.4-4.7 3.7-6.8 5.8-2.2 2.2-3.5 8.2-3.5 8.2s.8-6.3 2.9-8.7c1.9-2.2 4.7-3.8 6.2-6.3 2.6-4.6.2-10.6-3.2-14.1.7-.6 1.7-1.4 2.2-2 3.3 4.1 6.1 12 2.2 17.1" fill="#c28fef"/><path d="m38.1 25.2c-2.6 1.9-4.5 4.7-6.3 7.3-1.6 2.3-6.7 5.2-6.7 5.2s4.8-3.3 6.3-5.7c1.8-3 3.6-6.1 6.4-8.3 5.6-4.3 13.7-3.9 20-1.6-.4.9-1.1 2.8-1.1 2.8s-13.3-3.6-18.6.3" fill="#ff8736"/><g fill="#42ade2"><path d="m49.2 24.7c-1.7 2.2-2.5 4.9-3.8 7.4-1.2 2.3-2.8 4.5-5.1 5.7-2.6 1.3-8.3.9-8.3.9s5.7-.1 8.1-1.7c2.4-1.6 3.7-4.4 4.6-7 1.8-5 4-10.4 9.2-12.6.3.9 1 2.8 1 2.8s-2.9.8-5.7 4.5"/><path transform="matrix(.707-.7072.7072.707-8.3165 8.458)" d="m4 12.3h4v4h-4z"/></g><path transform="matrix(.7071-.7071.7071.7071-13.4747 13.8633)" fill="#ff8736" d="m8 21.2h4v4h-4z"/><path transform="matrix(.707-.7072.7072.707-1.905 15.0572)" fill="#ed4c5c" d="m15.2 7.8h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-16.8081 46.7362)" fill="#c28fef" d="m46 41.7h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-25.5139 45.1176)" fill="#ed4c5c" d="m39.7 51.4h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-23.4619 54.546)" fill="#ff8736" d="m52.1 53.6h4v4h-4z"/><g fill="#42ade2"><path transform="matrix(.7071-.7071.7071.7071-13.5212 52.7722)" d="m54.9 40.7h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071 6.223 40.6826)" d="m50.2 10.8h4v4h-4z"/></g><path transform="matrix(.7071-.7071.7071.7071-14.6842 24.2063)" fill="#ed4c5c" d="m19.9 27.8h4v4h-4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f38a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f38a.svg
index 4ab859e..a29c16a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f38a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f38a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d3976e" d="m44.43 18.01h-2.255c0-1.031-.154-2.048-.458-3.02-1.327-4.262-5.222-7.125-9.69-7.125-4.457 0-8.349 2.854-9.684 7.104-.308.981-.464 2-.464 3.044h-2.255c0-1.269.191-2.521.567-3.72.786-2.5 2.316-4.654 4.428-6.228 2.152-1.606 4.715-2.455 7.407-2.455 2.698 0 5.264.852 7.419 2.463 2.084 1.557 3.654 3.775 4.425 6.246.371 1.191.56 2.434.56 3.693"/><path fill="#ffdd7d" d="m29.885 12.375c-2.482-4.979-7.409-8.375-13.09-8.375-8.168 0-14.796 7.03-14.796 15.699 0 4.01 1.421 7.673 3.756 10.447 0 0 6.02-15.725 24.13-17.771"/><path fill="#594640" d="m29.885 12.375c-18.11 2.046-24.13 17.772-24.13 17.772 11.168-1.073 20.444-8.161 24.13-17.772"/><path fill="#ffdd7d" d="m34.12 12.375c2.481-4.979 7.41-8.375 13.09-8.375 8.171 0 14.795 7.03 14.795 15.699 0 4.01-1.42 7.673-3.755 10.447 0 0-6.02-15.725-24.13-17.771"/><path fill="#594640" d="m34.12 12.375c18.11 2.046 24.13 17.772 24.13 17.772-11.167-1.073-20.444-8.161-24.13-17.772"/><path fill="#42ade2" d="m42.39 60l-3.361-1.563c1.297-3.144.696-4.15-.214-5.674-1.044-1.748-2.473-4.141-.513-8.85.563-1.352.278-1.824-.488-3.09-1.01-1.672-2.393-3.963-1.122-8.282 1.315-4.487-1.691-9.83-1.722-9.884l3.12-2.048c.162.276 3.937 6.853 2.104 13.09-.759 2.587-.141 3.607.713 5.02.893 1.476 2.113 3.499.755 6.765-1.169 2.807-.633 3.703.252 5.191 1.08 1.806 2.558 4.281.476 9.322"/><path fill="#ed4c5c" d="m24.26 59.924c-2.204-4.982-.791-7.498.243-9.334.852-1.51 1.365-2.422.126-5.193-1.44-3.228-.27-5.283.587-6.785.818-1.437 1.409-2.477.586-5.04-1.988-6.185 1.621-12.865 1.776-13.148l3.172 1.963-1.585-.98 1.587.977c-.029.055-2.918 5.446-1.476 9.933 1.375 4.282.048 6.61-.921 8.31-.733 1.287-1 1.768-.409 3.104 2.077 4.651.707 7.083-.292 8.859-.873 1.549-1.45 2.572-.071 5.679l-3.323 1.655"/><path fill="#c28fef" d="m5.752 57.49c-.839-5.383 1.178-7.446 2.651-8.952 1.213-1.239 1.945-1.986 1.466-4.985-.557-3.488 1.107-5.172 2.322-6.401 1.162-1.175 2-2.026 1.87-4.716-.318-6.489 4.896-12.01 5.12-12.238l2.556 2.717-1.278-1.358 1.281 1.354c-.042.045-4.229 4.505-3.997 9.212.22 4.492-1.663 6.398-3.04 7.79-1.041 1.052-1.429 1.445-1.198 2.89.804 5.03-1.15 7.02-2.574 8.482-1.244 1.27-2.066 2.109-1.54 5.467l-3.639.738"/><path fill="#83bf4f" d="m59.54 57.49c.839-5.383-1.178-7.446-2.651-8.952-1.214-1.239-1.945-1.986-1.467-4.985.558-3.488-1.107-5.172-2.321-6.401-1.163-1.175-2-2.026-1.871-4.716.318-6.489-4.896-12.01-5.12-12.238l-2.555 2.717 1.278-1.358-1.281 1.354c.042.045 4.228 4.505 3.997 9.212-.221 4.492 1.663 6.398 3.039 7.79 1.042 1.052 1.429 1.445 1.199 2.89-.804 5.03 1.15 7.02 2.573 8.482 1.244 1.27 2.066 2.109 1.541 5.467l3.639.738"/><g fill="#42ade2"><path transform="matrix(.7071-.7071.7071.7071-18.62 25.413)" d="m19.366 33.18h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-25.09 51.37)" d="m47.47 53.968h4v4h-4z"/></g><g fill="#83bf4f"><path transform="matrix(.7071-.7071.7071.7071-26.341 26.461)" d="m16.771 43.03h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-10.786 31.514)" d="m30.648 26.778h4v4h-4z"/></g><g fill="#ed4c5c"><path transform="matrix(.7071-.7071.7071.7071-34.906 27.666)" d="m13.943 53.968h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-18.419 46.616)" d="m45.06 43.541h4v4h-4z"/></g><g fill="#c28fef"><path transform="matrix(.7071-.7071.7071.7071-29.705 39.35)" d="m30.648 53.53h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-12.217 41.704)" d="m42.23 33.6h4v4h-4z"/></g><path transform="matrix(.7071-.7071.7071.7071-20.693 36.2)" fill="#ed4c5c" d="m31.356 41.08h4v4h-4z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m44.4 18h-2.3c0-1-.2-2-.5-3-1.3-4.3-5.2-7.1-9.7-7.1-4.5 0-8.3 2.9-9.7 7.1-.3 1-.5 2-.5 3h-2.3c0-1.3.2-2.5.6-3.7.8-2.5 2.3-4.7 4.4-6.2 2.2-1.6 4.7-2.5 7.4-2.5 2.7 0 5.3.9 7.4 2.5 2.1 1.6 3.7 3.8 4.4 6.2.6 1.2.8 2.5.8 3.7" fill="#d3976e"/><path d="m29.9 12.4c-2.5-5-7.4-8.4-13.1-8.4-8.2 0-14.8 7-14.8 15.7 0 4 1.4 7.7 3.8 10.4 0 0 6-15.7 24.1-17.7" fill="#ffdd7d"/><path d="m29.9 12.4c-18.1 2-24.1 17.8-24.1 17.8 11.1-1.1 20.4-8.2 24.1-17.8" fill="#594640"/><path d="m34.1 12.4c2.5-5 7.4-8.4 13.1-8.4 8.2 0 14.8 7 14.8 15.7 0 4-1.4 7.7-3.8 10.4 0 0-6-15.7-24.1-17.7" fill="#ffdd7d"/><path d="m34.1 12.4c18.1 2 24.1 17.8 24.1 17.8-11.1-1.1-20.4-8.2-24.1-17.8" fill="#594640"/><path d="m42.4 60l-3.4-1.6c1.3-3.1.7-4.2-.2-5.7-1-1.7-2.5-4.1-.5-8.8.6-1.4.3-1.8-.5-3.1-1-1.7-2.4-4-1.1-8.3 1.3-4.5-1.7-9.8-1.7-9.9l3.1-2c.2.3 3.9 6.9 2.1 13.1-.8 2.6-.1 3.6.7 5 .9 1.5 2.1 3.5.8 6.8-1.2 2.8-.6 3.7.3 5.2 1 1.8 2.5 4.3.4 9.3" fill="#42ade2"/><path d="m24.3 59.9c-2.2-5-.8-7.5.2-9.3.9-1.5 1.4-2.4.1-5.2-1.4-3.2-.3-5.3.6-6.8.8-1.4 1.4-2.5.6-5-2-6.2 1.6-12.9 1.8-13.1l3.2 2-1.6-1 1.6 1c0 .1-2.9 5.4-1.5 9.9 1.4 4.3 0 6.6-.9 8.3-.7 1.3-1 1.8-.4 3.1 2.1 4.7.7 7.1-.3 8.9-.9 1.5-1.5 2.6-.1 5.7l-3.3 1.5" fill="#ed4c5c"/><path d="m5.8 57.5c-.8-5.4 1.2-7.4 2.7-9 1.2-1.2 1.9-2 1.5-5-.6-3.5 1.1-5.2 2.3-6.4 1.2-1.2 2-2 1.9-4.7-.3-6.5 4.9-12 5.1-12.2l2.6 2.7-1.3-1.4 1.3 1.4c0 0-4.2 4.5-4 9.2.2 4.5-1.7 6.4-3 7.8-1 1.1-1.4 1.4-1.2 2.9.8 5-1.1 7-2.6 8.5-1.2 1.3-2.1 2.1-1.5 5.5l-3.8.7" fill="#c28fef"/><path d="m59.5 57.5c.8-5.4-1.2-7.4-2.7-9-1.2-1.2-1.9-2-1.5-5 .6-3.5-1.1-5.2-2.3-6.4-1.2-1.2-2-2-1.9-4.7.3-6.5-4.9-12-5.1-12.2l-2.6 2.7 1.3-1.4-1.3 1.4c0 0 4.2 4.5 4 9.2-.2 4.5 1.7 6.4 3 7.8 1 1.1 1.4 1.4 1.2 2.9-.8 5 1.2 7 2.6 8.5 1.2 1.3 2.1 2.1 1.5 5.5l3.8.7" fill="#83bf4f"/><g fill="#42ade2"><path transform="matrix(.7071-.7071.7071.7071-18.6201 25.4129)" d="m19.4 33.2h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-25.0871 51.3699)" d="m47.5 54h4v4h-4z"/></g><g fill="#83bf4f"><path transform="matrix(.7071-.7071.7071.7071-26.3413 26.4612)" d="m16.8 43h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-10.7864 31.5143)" d="m30.6 26.8h4v4h-4z"/></g><g fill="#ed4c5c"><path transform="matrix(.7071-.7071.7071.7071-34.9053 27.6654)" d="m13.9 54h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-18.4185 46.6152)" d="m45.1 43.5h4v4h-4z"/></g><g fill="#c28fef"><path transform="matrix(.7071-.7071.7071.7071-29.7046 39.3498)" d="m30.6 53.5h4v4h-4z"/><path transform="matrix(.7071-.7071.7071.7071-12.2172 41.704)" d="m42.2 33.6h4v4h-4z"/></g><path transform="matrix(.7071-.7071.7071.7071-20.6923 36.2035)" fill="#ed4c5c" d="m31.4 41.1h4v4h-4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f38b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f38b.svg
index edd4c15..ad576db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f38b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f38b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="m16.626 18.474c0 0-4.579-2.834-14.626 0 0 0 10.426 1.241 15.73 4.591l-1.104-4.591"/><path d="m19.678 23.06c0 0-4.578-2.835-14.625 0 0 0 8.647.135 14.713 4.589.918.674-.088-4.589-.088-4.589"/><path d="m23.04 33.999c0 0 3.511-13.499 11.142-19.979 7.631-6.479 9.92-11.474 9.92-11.474s-5.01 27.943-20.373 35.23l-.689-3.779"/></g><path fill="#594640" d="m34.98 33.538c-3.724-1.715-4.812-4.65-4.856-4.775l1.188-.479-.594.238.594-.242c.009.025.967 2.545 4.173 4.02l-.505 1.238"/><path fill="#75a843" d="M24.572 59.15 14.14 9.204 19.11 8.04 29.54 57.981z"/><path fill="#83bf4f" d="m31.67 61.46l-9.412-57.78 5.01-.92 9.414 57.78z"/><g fill="#699635"><path d="m15.42 15.1c1.653-.399 3.307-.8 4.961-1.199.799-.193.459-1.494-.34-1.302-1.652.4-3.307.8-4.959 1.199-.799.193-.46 1.494.338 1.302"/><path d="m18.245 28.26c1.653-.4 3.307-.8 4.961-1.199.799-.193.459-1.495-.338-1.302-1.654.399-3.308.799-4.961 1.199-.8.192-.461 1.495.338 1.302"/><path d="m21.07 41.42c1.653-.4 3.307-.799 4.961-1.199.799-.193.46-1.494-.338-1.301-1.653.398-3.308.799-4.961 1.199-.799.193-.461 1.494.338 1.301"/><path d="m23.893 54.59c1.654-.4 3.307-.801 4.961-1.199.799-.193.46-1.494-.338-1.301-1.654.398-3.308.799-4.961 1.197-.8.194-.461 1.496.338 1.303"/></g><g fill="#75a843"><path d="m23.625 11.826c1.669-.319 3.337-.639 5-.958.808-.154.465-1.455-.337-1.302-1.669.319-3.338.639-5.01.958-.807.155-.463 1.455.339 1.302"/><path d="m25.881 25.11c1.669-.318 3.338-.639 5.01-.958.807-.154.465-1.455-.338-1.301-1.668.318-3.337.639-5 .958-.807.155-.463 1.455.337 1.301"/><path d="m28.14 38.4c1.67-.318 3.338-.639 5-.959.807-.154.465-1.453-.337-1.301-1.668.32-3.338.639-5.01.959-.806.154-.463 1.455.338 1.301"/><path d="m30.397 51.681c1.668-.32 3.337-.639 5.01-.959.807-.154.465-1.455-.338-1.301-1.668.318-3.337.639-5 .957-.807.154-.463 1.455.338 1.303"/></g><path fill="#ed4c5c" d="m32.22 39.03c0 0 4.372 8.818 14.165 13.162 9.793 4.346 11.955 8.26 11.955 8.26l3.658-13.482c0 0-2.799-4.471-14.217-9.734-3.578-1.65-6.643-5.811-9.791-10.768l-5.77 12.562"/><path fill="#ffce31" d="m32.459 39.872l-1.139-.592 6.102-13.17 1.141.601z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="m16.6 18.5c0 0-4.6-2.8-14.6 0 0 0 10.4 1.2 15.7 4.6l-1.1-4.6"/><path d="m19.7 23.1c0 0-4.6-2.8-14.6 0 0 0 8.6.1 14.7 4.6.9.6-.1-4.6-.1-4.6"/><path d="M23,34c0,0,3.5-13.5,11.1-20c7.6-6.5,9.9-11.5,9.9-11.5s-5,27.9-20.4,35.2L23,34z"/></g><path d="m35 33.5c-3.7-1.7-4.8-4.6-4.9-4.8l1.2-.5-.6.2.6-.2c0 0 1 2.5 4.2 4l-.5 1.3" fill="#594640"/><path fill="#75a843" d="m24.6 59.2l-10.5-50 5-1.2 10.4 50z"/><path fill="#83bf4f" d="m31.7 61.5l-9.4-57.8 5-.9 9.4 57.7z"/><g fill="#699635"><path d="m15.4 15.1c1.7-.4 3.3-.8 5-1.2.8-.2.5-1.5-.3-1.3-1.7.4-3.3.8-5 1.2-.8.2-.5 1.5.3 1.3"/><path d="m18.2 28.3c1.7-.4 3.3-.8 5-1.2.8-.2.5-1.5-.3-1.3-1.7.4-3.3.8-5 1.2-.8.2-.5 1.5.3 1.3"/><path d="m21.1 41.4c1.7-.4 3.3-.8 5-1.2.8-.2.5-1.5-.3-1.3-1.7.4-3.3.8-5 1.2-.9.2-.5 1.5.3 1.3"/><path d="m23.9 54.6c1.7-.4 3.3-.8 5-1.2.8-.2.5-1.5-.3-1.3-1.7.4-3.3.8-5 1.2-.8.2-.5 1.5.3 1.3"/></g><g fill="#75a843"><path d="m23.6 11.8c1.7-.3 3.3-.6 5-1 .8-.2.5-1.5-.3-1.3-1.7.3-3.3.6-5 1-.8.2-.5 1.5.3 1.3"/><path d="m25.9 25.1c1.7-.3 3.3-.6 5-1 .8-.2.5-1.5-.3-1.3-1.7.3-3.3.6-5 1-.9.2-.5 1.5.3 1.3"/><path d="m28.1 38.4c1.7-.3 3.3-.6 5-1 .8-.2.5-1.5-.3-1.3-1.7.3-3.3.6-5 1-.8.1-.5 1.4.3 1.3"/><path d="m30.4 51.7c1.7-.3 3.3-.6 5-1 .8-.2.5-1.5-.3-1.3-1.7.3-3.3.6-5 1-.8.1-.5 1.4.3 1.3"/></g><path d="m32.2 39c0 0 4.4 8.8 14.2 13.2 9.8 4.3 12 8.3 12 8.3l3.6-13.5c0 0-2.8-4.5-14.2-9.7-3.6-1.7-6.6-5.8-9.8-10.8l-5.8 12.5" fill="#ed4c5c"/><path fill="#ffce31" d="m32.5 39.9l-1.2-.6 6.1-13.2 1.2.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f38c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f38c.svg
index 7effcd4..959e668 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f38c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f38c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e6eff4" d="m32.16 23.585c6.01 9.841 17.618 1.514 23.631 11.354 2.043-6.737 4.162-13.453 6.207-20.19-6.01-9.841-17.621-1.512-23.633-11.353-2.045 6.738-4.162 13.454-6.205 20.19"/><path fill="#ff2449" d="m51.44 21.262c-.848 2.79-3.486 4.113-5.891 2.956-2.408-1.155-3.672-4.355-2.824-7.147.846-2.792 3.484-4.116 5.891-2.956 2.406 1.155 3.669 4.357 2.824 7.147"/><path fill="#3e4347" d="m39.38 3.344c.168-.548-.141-1.13-.689-1.298-.547-.168-1.129.139-1.297.688l-18.15 59.27h2.173l17.961-58.656"/><path fill="#e6eff4" d="m31.838 23.585c-6.01 9.841-17.618 1.514-23.631 11.354-2.043-6.738-4.162-13.453-6.207-20.19 6.01-9.841 17.62-1.512 23.632-11.353 2.045 6.739 4.162 13.454 6.206 20.19"/><path fill="#ff2449" d="m12.563 21.262c.848 2.79 3.485 4.113 5.891 2.956 2.406-1.155 3.671-4.355 2.823-7.147-.847-2.792-3.483-4.116-5.891-2.956-2.406 1.155-3.67 4.357-2.823 7.147"/><path fill="#4c5256" d="m26.602 2.733c-.168-.549-.75-.855-1.299-.688s-.855.75-.688 1.298l17.961 58.657h2.172l-18.15-59.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.2 23.6c6 9.8 17.6 1.5 23.6 11.4 2-6.7 4.2-13.5 6.2-20.2-6-9.8-17.6-1.5-23.6-11.4-2.1 6.7-4.2 13.4-6.2 20.2" fill="#e6eff4"/><path d="m51.4 21.3c-.8 2.8-3.5 4.1-5.9 3-2.4-1.2-3.7-4.4-2.8-7.1.8-2.8 3.5-4.1 5.9-3 2.4 1.1 3.7 4.3 2.8 7.1" fill="#ff2449"/><path d="m39.4 3.3c.2-.5-.1-1.1-.7-1.3-.5-.2-1.1.1-1.3.7l-18.1 59.3h2.2l17.9-58.7" fill="#3e4347"/><path d="m31.8 23.6c-6 9.8-17.6 1.5-23.6 11.4-2-6.8-4.2-13.5-6.2-20.3 6-9.8 17.6-1.5 23.6-11.4 2.1 6.8 4.2 13.5 6.2 20.3" fill="#e6eff4"/><path d="m12.6 21.3c.8 2.8 3.5 4.1 5.9 3 2.4-1.2 3.7-4.4 2.8-7.1-.8-2.8-3.5-4.1-5.9-3-2.4 1.1-3.7 4.3-2.8 7.1" fill="#ff2449"/><path d="m26.6 2.7c-.2-.5-.8-.9-1.3-.7s-.9.8-.7 1.3l18 58.7h2.2l-18.2-59.3" fill="#4c5256"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f38d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f38d.svg
index 838f4db..952e4c4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f38d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f38d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m14.19 20.554h10.177v34.431h-10.177z"/><ellipse fill="#fed0ac" cx="19.279" cy="20.554" rx="5.088" ry="6.256"/><path fill="#d3976e" d="m16.03 22.521c.797 2.098 2.825 3.01 4.533 2.028 1.706-.979 2.442-3.473 1.648-5.571l-6.181 3.543"/><path fill="#83bf4f" d="m14.19 32.12h10.177v1.468h-10.177z"/><g fill="#699635"><path d="m39.633 30.773h10.176v22.13h-10.176z"/><path d="m26.911 8.257h10.176v46.728h-10.176z"/></g><g fill="#83bf4f"><path d="m26.911 19.819h10.176v1.468h-10.176z"/><path d="m26.911 32.12h10.176v1.468h-10.176z"/></g><ellipse fill="#fed0ac" cx="31.998" cy="8.257" rx="5.088" ry="6.256"/><path fill="#d3976e" d="m28.748 10.225c.797 2.098 2.825 3.01 4.533 2.028 1.706-.979 2.442-3.473 1.649-5.571l-6.182 3.543"/><ellipse fill="#fed0ac" cx="44.72" cy="30.774" rx="5.087" ry="6.255"/><path fill="#d3976e" d="m41.47 32.741c.797 2.099 2.824 3.01 4.532 2.027 1.706-.978 2.443-3.472 1.649-5.571l-6.181 3.544"/><g fill="#83bf4f"><path d="m14.19 51.949h1.113 1.113c0-12.778-1.113-16.07-1.113-16.07s-1.113 3.288-1.113 16.07"/><path d="m16.417 51.949h1.113 1.113c0-12.778-1.113-16.07-1.113-16.07s-1.113 3.288-1.113 16.07"/><path d="m19.756 35.883c0 0-.001.002-.001.003 0-.001 0-.003.001-.003l-.001.006c-.016.049-1.112 3.378-1.112 16.06h1.112.001 1.113c0-12.683-1.097-16.01-1.113-16.06v-.006"/><path d="m21.983 35.883c0 0 0 .002 0 .003 0-.001-.002-.003-.002-.003v.006c-.016.049-1.112 3.378-1.112 16.06h1.112.002 1.113c0-12.683-1.096-16.01-1.113-16.06v-.006"/><path d="m23.1 51.949h1.112 1.114c0-12.778-1.114-16.07-1.114-16.07s-1.112 3.288-1.112 16.07"/><path d="m26.436 35.883c0 0 0 .002 0 .003 0-.001-.002-.003-.002-.003v.006c-.016.049-1.112 3.378-1.112 16.06h1.112.002 1.112c0-12.683-1.096-16.01-1.112-16.06v-.006"/><path d="m27.547 51.949h1.112 1.114c0-12.778-1.114-16.07-1.114-16.07s-1.112 3.288-1.112 16.07"/><path d="m29.774 51.949h1.112 1.113c0-12.778-1.113-16.07-1.113-16.07s-1.112 3.288-1.112 16.07"/><path d="m31.999 51.949h1.114 1.111c0-12.778-1.111-16.07-1.111-16.07s-1.114 3.288-1.114 16.07"/><path d="m34.23 51.949h1.114 1.112c0-12.778-1.112-16.07-1.112-16.07s-1.114 3.288-1.114 16.07"/><path d="m36.451 51.949h1.114 1.111c0-12.778-1.111-16.07-1.111-16.07s-1.114 3.288-1.114 16.07"/><path d="m39.792 35.883c0 0-.002.002-.002.003 0-.001 0-.003 0-.003v.006c-.017.049-1.113 3.378-1.113 16.06h1.113.002 1.112c0-12.683-1.097-16.01-1.112-16.06v-.006"/><path d="m40.904 51.949h1.113 1.112c0-12.778-1.112-16.07-1.112-16.07s-1.113 3.288-1.113 16.07"/><path d="m43.13 51.949h1.113 1.113c0-12.778-1.113-16.07-1.113-16.07s-1.113 3.288-1.113 16.07"/><path d="m46.47 35.883c0 0 0 .002 0 .003 0-.001-.001-.003 0-.003v.006c-.017.049-1.112 3.378-1.112 16.06h1.112 1.113c0-12.683-1.096-16.01-1.112-16.06v-.006"/><path d="m48.695 35.883c0 0-1.113 3.288-1.113 16.07h1.113 1.113c.001-12.778-1.113-16.07-1.113-16.07"/></g><path fill="#c7b299" d="m12.1 44.555h39.81v16.231h-39.81z"/><path fill="#d3976e" d="m10 60.15h44v3.853h-44z"/><path fill="#af1734" d="m11.62 52.822h40.761v3.853h-40.761z"/><g fill="#ffce31"><path d="m10.422 45.52c0 0-.399 5.01 2.474 7.863 2.875 2.849 7.931 2.454 7.931 2.454s.397-5.01-2.476-7.862c-2.872-2.85-7.929-2.455-7.929-2.455"/><path d="m53.58 45.52c0 0-5.056-.395-7.929 2.455-2.873 2.849-2.476 7.862-2.476 7.862s5.057.395 7.931-2.454c2.874-2.85 2.474-7.863 2.474-7.863"/></g><path fill="#ffdd7d" d="m44.865 45.08c-2.26-2.241-7.02-1.158-10.625 2.419-.913.904-1.663 1.883-2.24 2.874-.578-.991-1.328-1.97-2.24-2.874-3.609-3.577-8.367-4.66-10.627-2.419-2.26 2.24-1.167 6.957 2.441 10.534 3.508 3.479 8.095 4.59 10.426 2.59 2.328 2 6.916.889 10.425-2.59 3.608-3.577 4.701-8.294 2.44-10.534"/><path fill="#af1734" d="m43.41 60.47c-.654 0-1.22.354-1.528.873-1.364-.073-3.336-.563-3.99-2.688-1.371-4.452-5.278-6.542-5.444-6.63l-.411.769-.49-.917c-.166.087-4.075 2.177-5.445 6.629-.649 2.112-2.628 2.604-3.993 2.681-.311-.516-.874-.865-1.524-.865-.983 0-1.78.79-1.78 1.765s.797 1.765 1.78 1.765c.6 0 1.128-.297 1.451-.747 2.171-.092 4.972-.988 5.912-4.04.845-2.749 2.928-4.451 3.937-5.143.884.567 3.247 2.317 4.163 5.291.94 3.053 3.742 3.949 5.913 4.04.32.452.848.748 1.449.748.982 0 1.779-.79 1.779-1.765s-.796-1.765-1.779-1.765"/><path fill="#c9243c" d="m39.16 48.849c-1.212 0-2.388.223-3.16.409-2.01.482-3.259 1.46-3.998 2.243-.739-.783-1.994-1.761-4-2.243-.771-.187-1.947-.409-3.159-.409-3.317 0-5.219 1.703-5.219 4.673 0 2.854.921 4.3 2.737 4.3 0 0 0 0 .001 0 1.253 0 2.734-.764 4.45-1.646 1.602-.825 3.412-1.746 5.188-2.117 1.777.37 3.588 1.291 5.19 2.117 1.716.884 3.198 1.646 4.452 1.646 1.815 0 2.736-1.446 2.736-4.3.001-2.97-1.901-4.673-5.218-4.673m-13.238 5.629c-1.429.736-2.779 1.432-3.56 1.432h-.001c-.2-.001-.807-.001-.807-2.388 0-1.285.373-2.761 3.289-2.761 1.021 0 2.034.192 2.704.355 1.317.316 2.205.895 2.769 1.401-1.563.502-3.046 1.266-4.394 1.961m15.721 1.431c-.783 0-2.132-.695-3.562-1.432-1.347-.694-2.829-1.457-4.388-1.958.567-.509 1.456-1.089 2.763-1.403.67-.163 1.684-.355 2.704-.355 2.916 0 3.289 1.476 3.289 2.761 0 2.387-.607 2.387-.806 2.387"/><ellipse fill="#ed4c5c" cx="32" cy="52.723" rx="2.709" ry="2.686"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m14.2 20.6h10.2v34.4h-10.2z"/><ellipse cx="19.3" cy="20.6" rx="5.1" ry="6.3" fill="#fed0ac"/><path d="m16 22.5c.8 2.1 2.8 3 4.5 2 1.7-1 2.4-3.5 1.6-5.6l-6.1 3.6" fill="#d3976e"/><path fill="#83bf4f" d="m14.2 32.1h10.2v1.5h-10.2z"/><g fill="#699635"><path d="m39.6 30.8h10.2v22.1h-10.2z"/><path d="m26.9 8.3h10.2v46.7h-10.2z"/></g><g fill="#83bf4f"><path d="m26.9 19.8h10.2v1.5h-10.2z"/><path d="m26.9 32.1h10.2v1.5h-10.2z"/></g><ellipse cx="32" cy="8.3" rx="5.1" ry="6.3" fill="#fed0ac"/><path d="m28.7 10.2c.8 2.1 2.8 3 4.5 2 1.7-1 2.4-3.5 1.6-5.6l-6.1 3.6" fill="#d3976e"/><ellipse cx="44.7" cy="30.8" rx="5.1" ry="6.3" fill="#fed0ac"/><path d="m41.5 32.7c.8 2.1 2.8 3 4.5 2 1.7-1 2.4-3.5 1.6-5.6l-6.1 3.6" fill="#d3976e"/><g fill="#83bf4f"><path d="m14.2 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m16.4 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m19.8 35.9c0 0 0 0 0 0 0 .1-1.1 3.4-1.1 16.1h1.1 1.1c0-12.7-1.1-16.1-1.1-16.1"/><path d="m22 35.9c0 0 0 0 0 0 0 .1-1.1 3.4-1.1 16.1h1.1 1.1c0-12.7-1.1-16.1-1.1-16.1"/><path d="m23.1 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m26.4 35.9c0 0 0 0 0 0 0 .1-1.1 3.4-1.1 16.1h1.1 1.1c0-12.7-1-16.1-1.1-16.1"/><path d="m27.5 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m29.8 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="M32,51.9h1.1h1.1c0-12.8-1.1-16.1-1.1-16.1S32,39.2,32,51.9z"/><path d="m34.2 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m36.5 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m39.8 35.9c0 0 0 0 0 0 0 .1-1.1 3.4-1.1 16.1h1.1 1.1c0-12.7-1.1-16.1-1.1-16.1"/><path d="m40.9 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m43.1 51.9h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1s-1.1 3.4-1.1 16.1"/><path d="m46.5 35.9c0 0 0 0 0 0 0 .1-1.1 3.4-1.1 16.1h1.1 1.1c0-12.7-1.1-16.1-1.1-16.1"/><path d="m48.7 35.9c0 0-1.1 3.3-1.1 16.1h1.1 1.1c0-12.8-1.1-16.1-1.1-16.1"/></g><path fill="#c7b299" d="m12.1 44.6h39.8v16.2h-39.8z"/><path fill="#d3976e" d="m10 60.1h44v3.9h-44z"/><path fill="#af1734" d="m11.6 52.8h40.8v3.9h-40.8z"/><g fill="#ffce31"><path d="m10.4 45.5c0 0-.4 5 2.5 7.9 2.9 2.8 7.9 2.5 7.9 2.5s.4-5-2.5-7.9c-2.8-2.9-7.9-2.5-7.9-2.5"/><path d="m53.6 45.5c0 0-5.1-.4-7.9 2.5-2.9 2.8-2.5 7.9-2.5 7.9s5.1.4 7.9-2.5c2.9-2.9 2.5-7.9 2.5-7.9"/></g><path d="m44.9 45.1c-2.3-2.2-7-1.2-10.6 2.4-.9.9-1.7 1.9-2.2 2.9-.6-1-1.3-2-2.2-2.9-3.6-3.6-8.4-4.7-10.6-2.4-2.3 2.2-1.2 7 2.4 10.5 3.5 3.5 8.1 4.6 10.4 2.6 2.3 2 6.9.9 10.4-2.6 3.5-3.6 4.6-8.3 2.4-10.5" fill="#ffdd7d"/><path d="m43.4 60.5c-.7 0-1.2.4-1.5.9-1.4-.1-3.3-.6-4-2.7-1.4-4.5-5.3-6.5-5.4-6.6l-.5.7-.5-.9c-.2.1-4.1 2.2-5.4 6.6-.6 2.1-2.6 2.6-4 2.7-.3-.5-.9-.9-1.5-.9-1 0-1.8.8-1.8 1.8s.8 1.8 1.8 1.8c.6 0 1.1-.3 1.5-.7 2.2-.1 5-1 5.9-4 .8-2.7 2.9-4.5 3.9-5.1.9.6 3.2 2.3 4.2 5.3.9 3.1 3.7 3.9 5.9 4 .3.5.8.7 1.4.7 1 0 1.8-.8 1.8-1.8s-.8-1.8-1.8-1.8" fill="#af1734"/><path d="m39.2 48.8c-1.2 0-2.4.2-3.2.4-2 .5-3.3 1.5-4 2.2-.7-.8-2-1.8-4-2.2-.8-.2-1.9-.4-3.2-.4-3.3 0-5.2 1.7-5.2 4.7 0 2.9.9 4.3 2.7 4.3 1.3 0 2.7-.8 4.4-1.6 1.6-.8 3.4-1.7 5.2-2.1 1.8.4 3.6 1.3 5.2 2.1 1.7.9 3.2 1.6 4.5 1.6 1.8 0 2.7-1.4 2.7-4.3.1-2.9-1.8-4.7-5.1-4.7m-13.3 5.7c-1.4.7-2.8 1.4-3.6 1.4-.2 0-.8 0-.8-2.4 0-1.3.4-2.8 3.3-2.8 1 0 2 .2 2.7.4 1.3.3 2.2.9 2.8 1.4-1.5.5-3 1.3-4.4 2m15.7 1.4c-.8 0-2.1-.7-3.6-1.4-1.3-.7-2.8-1.5-4.4-2 .6-.5 1.5-1.1 2.8-1.4.7-.2 1.7-.4 2.7-.4 2.9 0 3.3 1.5 3.3 2.8 0 2.4-.6 2.4-.8 2.4" fill="#c9243c"/><ellipse cx="32" cy="52.7" rx="2.7" ry="2.7" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f38e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f38e.svg
index ba36026..05628ca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f38e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f38e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ce95a0" d="m52.802 37.11c-1.318-1.308-10.855-1.246-12.11 0-.693.686-6.06 20.2-1.348 23.967 1.594 1.271 13.342 1.17 14.805 0 4.71-3.767-.653-23.281-1.346-23.967"/><g fill="#d51c46"><path d="m47.665 61.992c-2.645-2.081-4.938-4.376-5.334-8.197 0 0-3.03 7.349-1.479 7.797 1.729.497 6.813.4 6.813.4"/><path d="m38.669 43.27h16.15v5.328h-16.15z"/></g><path fill="#454749" d="m45.962 33.11h1.576v3.238h-1.576z"/><g fill="#f0c0c6"><path d="m47.48 33.11c-1.514 13.191 7.232 17.643 7.232 17.643 8.328-6.283 7.236-12.482 7.236-12.482-4.921-4.04-14.468-5.161-14.468-5.161"/><path d="m46.01 33.11c1.514 13.191-7.234 17.643-7.234 17.643-8.326-6.283-7.232-12.482-7.232-12.482 4.921-4.04 14.466-5.161 14.466-5.161"/></g><path fill="#258399" d="m23.308 37.11c-1.318-1.308-10.852-1.246-12.11 0-.693.686-6.06 20.2-1.346 23.967 1.594 1.271 13.34 1.17 14.805 0 4.71-3.767-.653-23.281-1.346-23.967"/><g fill="#d7d16f"><path d="m18.17 61.992c-2.641-2.081-4.936-4.376-5.334-8.197 0 0-3.03 7.349-1.479 7.797 1.733.497 6.813.4 6.813.4"/><path d="m9.177 43.27h16.15v5.328h-16.15z"/></g><path fill="#454749" d="m16.468 33.11h1.576v3.238h-1.576z"/><g fill="#3baacf"><path d="m17.989 33.11c-1.514 13.191 7.236 17.643 7.236 17.643 8.328-6.283 7.232-12.482 7.232-12.482-4.921-4.04-14.468-5.161-14.468-5.161"/><path d="m16.515 33.11c1.512 13.191-7.232 17.643-7.232 17.643-8.327-6.283-7.236-12.482-7.236-12.482 4.919-4.04 14.468-5.161 14.468-5.161"/></g><path fill="#454749" d="m17.466 10.158c-7.287 0-12.609 4.363-12.609 8.237l-.047 7.203h24.91l-.047-7.203c0-2.941-4.205-8.237-12.207-8.237"/><path fill="#fed0ac" d="m28.491 26.843c0 0 2.371.423 2.371-2.084 0-1.982-2.371-1.854-2.371-1.854v-1.838c-1.955-.636-7.727-1.193-11.229-1.193-3.518 0-9.301.561-11.252 1.199v1.832c0 0-2.371-.227-2.371 1.854 0 2.508 2.371 2.084 2.371 2.084 0 3.74 2.791 7.84 11.486 7.84 8.233 0 10.995-3.35 10.995-7.84"/><g fill="#454749"><path d="m25.425 27.1c0 1.333-1.154.998-2.582.998-1.426 0-2.582.335-2.582-.998 0-1.331 1.156-2.411 2.582-2.411 1.428-.001 2.582 1.08 2.582 2.411"/><path d="m14.241 27.1c0 1.333-1.156.998-2.584.998-1.426 0-2.582.335-2.582-.998 0-1.331 1.156-2.411 2.582-2.411 1.428-.001 2.584 1.08 2.584 2.411"/><path d="m14.03 30.724c0 1.297 1.443 2.391 3.227 2.391 1.781 0 3.227-1.111 3.227-2.412 0 0-1.586.568-3.217.568-1.707 0-3.237-.547-3.237-.547"/><path d="m46.946 7.126c-7.285 0-13.629 4.676-13.629 11.247 0 0-1.633 13.201.973 16.278h12.656 12.254c2.604-3.077.975-16.278.975-16.278 0-5.637-5.229-11.247-13.229-11.247"/></g><path fill="#fed0ac" d="m58.778 26.843c0 0 1.566.423 1.566-2.084 0-1.981-1.572-1.854-1.572-1.854s-3.145 1.803-5.656-4.265c0 0-.053 1.252-1.83 2.917-3.145 2.946-16.564 1.348-16.564 1.348s-1.602-.227-1.602 1.854c0 2.508 1.646 2.084 1.646 2.084 0 3.74 3.516 7.84 12.207 7.84 8.239 0 11.805-3.35 11.805-7.84"/><g fill="#454749"><path d="m54.907 27.1c0 1.334-1.154.999-2.582.999s-2.584.335-2.584-.999c0-1.331 1.156-2.411 2.584-2.411s2.582 1.08 2.582 2.411"/><path d="m43.722 27.1c0 1.334-1.154.999-2.584.999-1.426 0-2.582.335-2.582-.999 0-1.331 1.156-2.411 2.582-2.411 1.429-.001 2.584 1.08 2.584 2.411"/></g><path fill="#d33b23" d="m46.18 30.14c-.416-.215-2.672.588-2.672.588 0 1.297 1.443 2.391 3.229 2.391 1.779 0 3.227-1.111 3.227-2.412 0 0-2.26-.771-2.66-.566-.17.086-.559.56-.559.56s-.401-.475-.565-.561"/><ellipse fill="#454749" cx="17.245" cy="6.477" rx="9.422" ry="4.477"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ce95a0" d="m47 19.7l-13.3 38.3h26.6z"/><g fill="#d51c46"><path d="m36.9 48.7h3v9.3h-3z"/><path d="m42.6 48.7h3v9.3h-3z"/><path d="m48.4 48.7h3v9.3h-3z"/><path d="m54.1 48.7h3v9.3h-3z"/><path d="m51 42.6c0 3.5-7.9 3.5-7.9 0 0-3.5 4-9.3 4-9.3s3.9 5.8 3.9 9.3"/></g><path d="m61.9 42.4c-.2-1.8-5.6-10.4-11-12-1.2-.4 1.6 5.8 1.3 7.7-.2 1.3-3.2 4.5-2.2 4.8h-6c1-.3-1.9-3.4-2.1-4.7-.3-1.9 2.5-8.1 1.3-7.7-5.4 1.7-10.8 10.2-11 12-.5 4.6.5 9.3 2 11.3-.3 1.3-.4 2.7-.4 4.2 0 0 7.4-7.7 13.3-7.7s13.2 7.7 13.2 7.7c0-1.5-.2-2.9-.4-4.2 1.5-2.1 2.5-6.7 2-11.4" fill="#f0c0c6"/><path d="m33.9 52.1c.2.7 2.9.1 3.1-.8 2.5-9.1 7.3-8.2 6.7-8.6-2.5-1.9-11.5 2-9.8 9.4" fill="#ce95a0"/><path d="m43.1 43.4c-1.5-2.2-8.3 1.9-7.7 3.6 1.3 3.2 6.5 4.4 6.3-1.2.1 0 2.8-.3 1.4-2.4" fill="#fee8d8"/><path d="m60.1 52.1c-.2.7-2.9.1-3.1-.8-2.5-9.1-7.3-8.2-6.7-8.6 2.5-1.9 11.5 2 9.8 9.4" fill="#ce95a0"/><path d="m50.9 43.4c1.5-2.2 8.3 1.9 7.7 3.6-1.3 3.2-6.5 4.4-6.3-1.2-.1 0-2.8-.3-1.4-2.4" fill="#fee8d8"/><path fill="#258399" d="M17 19.7 3.7 58 30.3 58z"/><g fill="#d7d16f"><path d="m6.9 48.7h3v9.3h-3z"/><path d="m12.6 48.7h3v9.3h-3z"/><path d="m18.4 48.7h3v9.3h-3z"/><path d="m24.1 48.7h3v9.3h-3z"/><path d="m21 42.6c0 3.5-7.9 3.5-7.9 0 0-3.5 4-9.3 4-9.3s3.9 5.8 3.9 9.3"/></g><path d="m31.9 42.4c-.2-1.8-5.6-10.4-11-12-1.2-.4 1.6 5.8 1.3 7.7-.2 1.3-3.2 4.5-2.2 4.8h-6c1-.3-1.9-3.4-2.1-4.7-.3-1.9 2.5-8.1 1.3-7.7-5.4 1.7-10.8 10.2-11 12-.5 4.6.5 9.3 2 11.3-.3 1.3-.4 2.7-.4 4.2 0 0 7.4-7.7 13.3-7.7s13.2 7.7 13.2 7.7c0-1.5-.2-2.9-.4-4.2 1.5-2.1 2.5-6.7 2-11.4" fill="#3baacf"/><path d="m3.9 52.1c.2.7 2.9.1 3.1-.8 2.5-9.1 7.3-8.2 6.7-8.6-2.5-1.9-11.5 2-9.8 9.4" fill="#258399"/><path d="m13.1 43.4c-1.5-2.2-8.3 1.9-7.7 3.6 1.3 3.2 6.5 4.4 6.3-1.2.1 0 2.8-.3 1.4-2.4" fill="#fee8d8"/><path d="m30.1 52.1c-.2.7-2.9.1-3.1-.8-2.5-9.1-7.3-8.2-6.7-8.6 2.5-1.9 11.5 2 9.8 9.4" fill="#258399"/><path d="m20.9 43.4c1.5-2.2 8.3 1.9 7.7 3.6-1.3 3.2-6.5 4.4-6.3-1.2-.1 0-2.8-.3-1.4-2.4" fill="#fee8d8"/><path d="M2,58h60v4H2V58z" fill="#89664c"/><path d="m28 18.3c0-1.7-1.7-4.4-5-5.9-.4-.9-1.1-1.7-1.9-2.3.7-1.3 1.1-2.7 1.1-3.6 0-6-10.3-6-10.3 0 0 .9.4 2.3 1.1 3.6-.9.7-1.6 1.5-2 2.4-3 1.4-4.9 3.7-4.9 5.8v6.2h22l-.1-6.2" fill="#454749"/><path d="m26.9 25.6c0 0 2.1.4 2.1-1.8 0-1.7-2.1-1.6-2.1-1.6v-1.6c-5.8-1.9-14-1.9-19.8 0v1.6c0 0-2.1-.2-2.1 1.6 0 2.2 2.1 1.8 2.1 1.8 0 9.1 19.8 9.8 19.8 0" fill="#fee8d8"/><g fill="#454749"><path d="m24.2 25.8c0 1.2-4.6 1.2-4.6 0 .1-3.1 4.6-3.1 4.6 0"/><path d="m14.3 25.8c0 1.2-4.6 1.2-4.6 0 .1-3.1 4.6-3.1 4.6 0"/><path d="m14.2 28.9c0 3.1 5.7 3.1 5.7 0 0 0-1.4.5-2.8.5-1.6 0-2.9-.5-2.9-.5"/><path d="m51.2 9.2c.4-1 .7-2 .7-2.7 0-6-9.7-6-9.7 0 0 .7.2 1.7.7 2.7-8.5 1.4-16 7.5-6.1 19.8 1.3 1.6 19.3 1.5 20.6 0 9.8-12.5 2.4-18.4-6.2-19.8"/></g><path d="m57.8 22.7c-.9 1.3-10-2.7-10.8-3.3-.8.6-10 4.6-10.8 3.2-.3.2-.5.6-.5 1.1 0 2.2 2 1.8 2 1.8 0 9.1 18.6 9.8 18.6 0 0 0 2 .4 2-1.8-.1-.4-.3-.8-.5-1" fill="#fee8d8"/><g fill="#454749"><path d="m53.8 25.8c0 1.2-4.3 1.2-4.3 0 0-3.1 4.3-3.1 4.3 0"/><path d="m44.5 25.8c0 1.2-4.3 1.2-4.3 0 0-3.1 4.3-3.1 4.3 0"/></g><path d="m46.5 28.4c-.3-.2-2.2.5-2.2.5 0 3.1 5.3 3.1 5.3 0 0 0-1.9-.7-2.2-.5-.1.1-.5.5-.5.5s-.2-.4-.4-.5" fill="#d33b23"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f38f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f38f.svg
index 90f3ca7..8f1261b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f38f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f38f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m16.338 23.18l-11.867-3.18 11.865-3.284.215 1-8.185 2.267 8.182 2.195z"/><path d="m16.338 47.987l-11.867-3.19 11.865-3.287.215 1-8.185 2.267 8.182 2.198z"/></g><g fill="#6adbc6"><path d="m58.12 19.783c0 0-9.33 9.923-20.84 9.923s-20.841-4.438-20.841-9.923c0-5.476 9.331-9.914 20.841-9.914s20.84 9.914 20.84 9.914"/><path d="m51.21 19.783c0-5.476 3.912-9.914 8.736-9.914 4.826 0-.363 9.914-.363 9.914s5.189 9.923.363 9.923c-4.824 0-8.736-4.438-8.736-9.923"/></g><path fill="#428bc1" d="m16.671 16.197c-.924 0-1.673.853-1.673 1.898s.749 1.898 1.673 1.898c-.924 0-1.673.853-1.673 1.898s.749 1.898 1.673 1.898c.923 0 3.037-3.797 3.037-3.797s-2.114-3.795-3.037-3.795"/><path fill="#fff" d="m27.421 17.217c0 1.846-1.318 3.349-2.946 3.349-1.627 0-2.946-1.503-2.946-3.349s1.319-3.34 2.946-3.34c1.628 0 2.946 1.494 2.946 3.34"/><ellipse cx="24.475" cy="17.217" rx="1.474" ry="1.67"/><g fill="#428bc1"><path d="m30.356 14.13c1.537 2.391 2.039 5.396 1.342 8.253-.612 2.496-2.183 4.579-4.193 5.774-.52.316-.06 1.204.46.896 2.237-1.336 3.898-3.647 4.61-6.398.795-3.067.222-6.478-1.434-9.04-.341-.536-1.132-.017-.785.519"/><path d="m35.537 28.24c2.179-.044 3.91-2.01 3.949-4.482s-1.829-4.438-3.949-4.482c0 .343 0 .686 0 1.028 2.179-.044 3.91-2 3.949-4.482.039-2.47-1.83-4.438-3.949-4.482-.587-.009-.587 1.02 0 1.037 1.68.035 3.01 1.538 3.039 3.445s-1.404 3.419-3.039 3.454c-.587.009-.587 1.02 0 1.028 1.68.035 3.01 1.547 3.039 3.454s-1.404 3.419-3.039 3.454c-.587.009-.587 1.037 0 1.028"/><path d="m47.03 25.619c1.551-.044 2.756-1.415 2.797-3.173.039-1.758-1.307-3.129-2.797-3.173 0 .343 0 .686 0 1.028 1.551-.044 2.756-1.406 2.797-3.173.039-1.758-1.307-3.129-2.797-3.173-.588-.018-.586 1.02 0 1.037 1.049.026 1.859.949 1.887 2.136.027 1.195-.879 2.109-1.887 2.145-.588.018-.588 1.01 0 1.028 1.049.035 1.859.949 1.887 2.145.027 1.187-.879 2.109-1.887 2.145-.586.017-.588 1.046 0 1.028"/><path d="m41.22 27.25c1.94-.044 3.473-1.784 3.512-3.981.039-2.206-1.63-3.946-3.512-3.99 0 .343 0 .686 0 1.028 1.94-.044 3.473-1.784 3.512-3.981.039-2.206-1.63-3.946-3.512-3.99-.588-.018-.586 1.02 0 1.028 1.441.035 2.573 1.327 2.603 2.962s-1.205 2.918-2.603 2.953c-.587.009-.587 1.02 0 1.028 1.441.035 2.573 1.318 2.603 2.962.029 1.635-1.205 2.918-2.603 2.953-.586.009-.588 1.046 0 1.028"/></g><g fill="#ff717f"><path d="m58.12 44.577c0 0-9.33 9.923-20.84 9.923s-20.841-4.438-20.841-9.923c0-5.476 9.331-9.914 20.841-9.914s20.84 9.914 20.84 9.914"/><path d="m51.21 44.577c0-5.476 3.912-9.914 8.736-9.914 4.826 0-.363 9.914-.363 9.914s5.189 9.923.363 9.923c-4.824 0-8.736-4.438-8.736-9.923"/></g><path fill="#c94747" d="m16.671 40.991c-.924 0-1.673.853-1.673 1.898s.749 1.898 1.673 1.898c-.924 0-1.673.853-1.673 1.898s.749 1.898 1.673 1.898c.923 0 3.037-3.797 3.037-3.797s-2.114-3.795-3.037-3.795"/><path fill="#fff" d="m27.421 42.01c0 1.846-1.318 3.349-2.946 3.349-1.627 0-2.946-1.503-2.946-3.349s1.319-3.34 2.946-3.34c1.628 0 2.946 1.494 2.946 3.34"/><ellipse cx="24.475" cy="42.01" rx="1.474" ry="1.67"/><g fill="#c94747"><path d="m30.356 38.926c1.537 2.391 2.039 5.396 1.342 8.253-.612 2.496-2.183 4.579-4.193 5.774-.52.308-.06 1.204.46.888 2.237-1.327 3.898-3.639 4.61-6.39.795-3.067.222-6.478-1.434-9.04-.341-.536-1.132-.017-.785.519"/><path d="m35.537 53.03c2.179-.044 3.91-2.01 3.949-4.482.039-2.479-1.829-4.438-3.949-4.482 0 .343 0 .686 0 1.028 2.179-.044 3.91-2 3.949-4.482.039-2.47-1.83-4.438-3.949-4.482-.587-.009-.587 1.02 0 1.037 1.68.026 3.01 1.538 3.039 3.445s-1.404 3.419-3.039 3.454c-.587.009-.587 1.02 0 1.028 1.68.035 3.01 1.547 3.039 3.454s-1.404 3.419-3.039 3.445c-.587.018-.587 1.046 0 1.037"/><path d="m47.03 50.41c1.551-.044 2.756-1.415 2.797-3.173.039-1.758-1.307-3.129-2.797-3.173 0 .343 0 .686 0 1.028 1.551-.044 2.756-1.415 2.797-3.173.039-1.758-1.307-3.129-2.797-3.173-.588-.018-.586 1.01 0 1.037 1.049.026 1.859.94 1.887 2.136s-.879 2.109-1.887 2.145c-.588.018-.588 1.01 0 1.028 1.049.035 1.859.949 1.887 2.145.027 1.187-.879 2.109-1.887 2.145-.586.017-.588 1.046 0 1.028"/><path d="m41.22 52.04c1.94-.044 3.473-1.784 3.512-3.99.039-2.197-1.63-3.938-3.512-3.981 0 .343 0 .686 0 1.028 1.94-.044 3.473-1.784 3.512-3.981.039-2.206-1.63-3.946-3.512-3.99-.588-.018-.586 1.02 0 1.028 1.441.035 2.573 1.318 2.603 2.962.029 1.635-1.205 2.918-2.603 2.953-.587.009-.587 1.02 0 1.028 1.441.035 2.573 1.318 2.603 2.953.029 1.644-1.205 2.927-2.603 2.962-.586.009-.588 1.046 0 1.028"/></g><path fill="#f2b200" d="m3.473 12.849h2.945v51.15h-2.945z"/><path fill="#ffce31" d="m4.856 14.12h.915v49.877h-.915z"/><path fill="#f2b200" d="m7.892 12.849c0 1.846-1.319 3.34-2.946 3.34s-2.946-1.494-2.946-3.34 1.318-3.349 2.945-3.349 2.947 1.503 2.947 3.349"/><path fill="#ffce31" d="m6.418 12.01c0-.466-.329-.835-.736-.835-.406 0-.736.369-.736.835 0 .457.33.835.736.835.407 0 .736-.378.736-.835"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m16.3 21.6l-11.8-3.2 11.8-3.3.3 1-8.2 2.3 8.1 2.2z"/><path d="m16.3 46.1l-11.8-3.1 11.8-3.3.3 1-8.2 2.3 8.1 2.1z"/></g><g fill="#6adbc6"><path d="m58.1 18.2c0 0-9.3 9.8-20.8 9.8s-20.8-4.4-20.8-9.8c0-5.4 9.3-9.8 20.8-9.8s20.8 9.8 20.8 9.8"/><path d="m51.2 18.2c0-5.4 3.9-9.8 8.7-9.8 4.8 0-.4 9.8-.4 9.8s5.2 9.8.4 9.8c-4.8 0-8.7-4.4-8.7-9.8"/></g><path d="m16.7 14.6c-.9 0-1.7.8-1.7 1.9 0 1 .7 1.9 1.7 1.9-.9 0-1.7.8-1.7 1.9 0 1 .7 1.9 1.7 1.9.9 0 3-3.8 3-3.8s-2.1-3.8-3-3.8" fill="#428bc1"/><path d="m27.4 15.6c0 1.8-1.3 3.3-2.9 3.3-1.6 0-2.9-1.5-2.9-3.3s1.3-3.3 2.9-3.3c1.6 0 2.9 1.5 2.9 3.3" fill="#fff"/><ellipse cx="24.5" cy="15.6" rx="1.5" ry="1.7" fill="#231f20"/><g fill="#428bc1"><path d="m30.4 12.6c1.5 2.4 2 5.3 1.3 8.2-.6 2.5-2.2 4.5-4.2 5.7-.5.3-.1 1.2.5.9 2.2-1.3 3.9-3.6 4.6-6.3.8-3 .2-6.4-1.4-9-.4-.6-1.2 0-.8.5"/><path d="m35.5 26.6c2.2 0 3.9-2 3.9-4.4s-1.8-4.4-3.9-4.4c0 .3 0 .7 0 1 2.2 0 3.9-2 3.9-4.4 0-2.4-1.8-4.4-3.9-4.4-.6 0-.6 1 0 1 1.7 0 3 1.5 3 3.4 0 1.9-1.4 3.4-3 3.4-.6 0-.6 1 0 1 1.7 0 3 1.5 3 3.4 0 1.9-1.4 3.4-3 3.4-.5 0-.5 1 0 1"/><path d="m47 24c1.6 0 2.8-1.4 2.8-3.1 0-1.7-1.3-3.1-2.8-3.1 0 .3 0 .7 0 1 1.6 0 2.8-1.4 2.8-3.1 0-1.7-1.3-3.1-2.8-3.1-.6 0-.6 1 0 1 1 0 1.9.9 1.9 2.1 0 1.2-.9 2.1-1.9 2.1-.6 0-.6 1 0 1 1 0 1.9.9 1.9 2.1 0 1.2-.9 2.1-1.9 2.1-.6 0-.6 1 0 1"/><path d="m41.2 25.6c1.9 0 3.5-1.8 3.5-3.9 0-2.2-1.6-3.9-3.5-4 0 .3 0 .7 0 1 1.9 0 3.5-1.8 3.5-3.9 0-2.2-1.6-3.9-3.5-4-.6 0-.6 1 0 1 1.4 0 2.6 1.3 2.6 2.9s-1.2 2.9-2.6 2.9c-.6 0-.6 1 0 1 1.4 0 2.6 1.3 2.6 2.9 0 1.6-1.2 2.9-2.6 2.9-.6.2-.6 1.2 0 1.2"/></g><g fill="#ff717f"><path d="m58.1 42.8c0 0-9.3 9.8-20.8 9.8s-20.8-4.4-20.8-9.8c0-5.4 9.3-9.8 20.8-9.8s20.8 9.8 20.8 9.8"/><path d="m51.2 42.8c0-5.4 3.9-9.8 8.7-9.8 4.8 0-.4 9.8-.4 9.8s5.2 9.8.4 9.8c-4.8 0-8.7-4.4-8.7-9.8"/></g><path d="m16.7 39.2c-.9 0-1.7.8-1.7 1.9s.7 1.9 1.7 1.9c-.9 0-1.7.8-1.7 1.9 0 1 .7 1.9 1.7 1.9.9 0 3-3.8 3-3.8s-2.1-3.8-3-3.8" fill="#c94747"/><path d="m27.4 40.2c0 1.8-1.3 3.3-2.9 3.3-1.6 0-2.9-1.5-2.9-3.3 0-1.8 1.3-3.3 2.9-3.3 1.6 0 2.9 1.5 2.9 3.3" fill="#fff"/><ellipse cx="24.5" cy="40.2" rx="1.5" ry="1.7" fill="#231f20"/><g fill="#c94747"><path d="m30.4 37.2c1.5 2.4 2 5.3 1.3 8.2-.6 2.5-2.2 4.5-4.2 5.7-.5.3-.1 1.2.5.9 2.2-1.3 3.9-3.6 4.6-6.3.8-3 .2-6.4-1.4-9-.4-.6-1.2-.1-.8.5"/><path d="m35.5 51.1c2.2 0 3.9-2 3.9-4.4 0-2.5-1.8-4.4-3.9-4.4 0 .3 0 .7 0 1 2.2 0 3.9-2 3.9-4.4 0-2.4-1.8-4.4-3.9-4.4-.6 0-.6 1 0 1 1.7 0 3 1.5 3 3.4 0 1.9-1.4 3.4-3 3.4-.6 0-.6 1 0 1 1.7 0 3 1.5 3 3.4 0 1.9-1.4 3.4-3 3.4-.5 0-.5 1 0 1"/><path d="m47 48.5c1.6 0 2.8-1.4 2.8-3.1 0-1.7-1.3-3.1-2.8-3.1 0 .3 0 .7 0 1 1.6 0 2.8-1.4 2.8-3.1 0-1.7-1.3-3.1-2.8-3.1-.6 0-.6 1 0 1 1 0 1.9.9 1.9 2.1 0 1.2-.9 2.1-1.9 2.1-.6 0-.6 1 0 1 1 0 1.9.9 1.9 2.1 0 1.2-.9 2.1-1.9 2.1-.6 0-.6 1.1 0 1"/><path d="m41.2 50.1c1.9 0 3.5-1.8 3.5-4 0-2.2-1.6-3.9-3.5-3.9 0 .3 0 .7 0 1 1.9 0 3.5-1.8 3.5-3.9 0-2.2-1.6-3.9-3.5-4-.6 0-.6 1 0 1 1.4 0 2.6 1.3 2.6 2.9 0 1.6-1.2 2.9-2.6 2.9-.6 0-.6 1 0 1 1.4 0 2.6 1.3 2.6 2.9 0 1.6-1.2 2.9-2.6 2.9-.6.2-.6 1.3 0 1.2"/></g><path fill="#f2b200" d="m3.5 11.3h2.9v50.7h-2.9z"/><path fill="#ffce31" d="m4.9 12.6h.9v49.4h-.9z"/><path d="m7.9 11.3c0 1.8-1.3 3.3-2.9 3.3s-3-1.5-3-3.3 1.3-3.3 2.9-3.3 3 1.5 3 3.3" fill="#f2b200"/><path d="m6.4 10.5c0-.5-.3-.8-.7-.8-.4 0-.7.4-.7.8 0 .5.3.8.7.8.4 0 .7-.4.7-.8" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f390.svg b/build/js/jsxc/lib/emojione/assets/svg/1f390.svg
index b3cdf46..6a2c3ac 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f390.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f390.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#6adbc6" d="m29.2 19.287c-3.384-10.461-13.172-9.788-13.172-9.788s-9.785-.673-13.168 9.788c-3.384 10.466 4.347 20.224 4.347 20.224.056.632 4.154 1.143 9.201 1.143 5.05 0 9.143-.511 9.198-1.143h.016c-.001 0 6.962-9.758 3.578-20.224"/><g fill="#ed4c5c"><path d="m15.577 2h.967v7.49h-.967z"/><ellipse cx="16.06" cy="6.607" rx="1.485" ry="1.457"/></g><g fill="#6adbc6"><path d="m14.576 8.06h2.971v1.632h-2.971z"/><path d="m14.653 40.599h2.87v3.589h-2.87z"/></g><path fill="#ffc7ce" d="m15.604 10.324h.967v33.863h-.967z"/><path fill="#fff" d="m16.318 39.711c-2.229 0-4.323-.11-5.903-.31-.783-.098-1.4-.215-1.837-.343-.278-.084-.925-.276-.925-.768 0-.49.647-.687.925-.765.437-.13 1.054-.244 1.837-.347 1.58-.195 3.673-.306 5.903-.306 2.227 0 4.324.11 5.903.306.783.103 1.4.217 1.836.347.278.078.926.274.926.765 0 .491-.647.684-.926.768-.436.128-1.053.245-1.836.343-1.578.2-3.676.31-5.903.31m-7.657-1.42c.311.108.946.263 2.215.407 1.502.165 3.434.256 5.442.256s3.94-.091 5.44-.256c1.271-.145 1.906-.299 2.218-.407-.312-.105-.946-.262-2.218-.406-1.5-.164-3.432-.258-5.44-.258s-3.94.094-5.442.258c-1.27.144-1.904.301-2.215.406"/><g fill="#ed4c5c"><path d="m26.634 49.53c-8.804 1.084-11.03-5.347-11.03-5.347h.967c0 0 2.24 5.654 10.414 4.438l-.352.909"/><path transform="matrix(.9216.3881-.3881.9216 21.23-6.505)" d="m26.421 42.72h.591v13.14h-.591z"/></g><path fill="#e6eff4" d="m24.424 55.45c0 0 7.03 6.03 18.806 3.926 11.778-2.101 16.516 2.62 16.516 2.62l2.254-13.847c0 0-4.352-5.04-20.11-1.58-9.635 2.113-12.337-3.214-12.337-3.214l-5.134 12.09"/><g fill="#f46767"><path d="m36.18 53.36c.451.825-.115 2.01-1.268 2.639-1.153.63-2.453.471-2.906-.357-.452-.826.115-2.01 1.268-2.639 1.152-.63 2.452-.474 2.906.357"/><ellipse transform="matrix(.8772-.4801.4801.8772-17.488 29.969)" cx="49.848" cy="49.17" rx="3.455" ry="2.506"/></g><g fill="#83bf4f"><ellipse transform="matrix(.8773-.4799.4799.8773-19.388 25.16)" cx="39.514" cy="50.5" rx="1.816" ry="1.295"/><ellipse transform="matrix(.8774-.4798.4798.8774-21.19 28.17)" cx="44.513" cy="55.54" rx="2.48" ry="1.847"/><ellipse transform="matrix(.8773-.4799.4799.8773-19.418 33.07)" cx="54.975" cy="54.52" rx="1.905" ry="1.771"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.2 19.3c-3.4-10.5-13.2-9.8-13.2-9.8s-9.8-.7-13.1 9.8c-3.4 10.5 4.3 20.2 4.3 20.2.1.6 4.2 1.1 9.2 1.1 5 0 9.1-.5 9.2-1.1 0 0 7-9.7 3.6-20.2" fill="#6adbc6"/><g fill="#ed4c5c"><path d="m15.6 2h1v7.5h-1z"/><ellipse cx="16.1" cy="6.6" rx="1.5" ry="1.5"/></g><g fill="#6adbc6"><path d="m14.6 8.1h3v1.6h-3z"/><path d="m14.7 40.6h2.9v3.6h-2.9z"/></g><path fill="#ffc7ce" d="m15.6 10.3h1v33.9h-1z"/><path d="m16.3 39.7c-2.2 0-4.3-.1-5.9-.3-.8-.1-1.4-.2-1.8-.3-.3-.1-.9-.3-.9-.8 0-.5.6-.7.9-.8.4-.1 1.1-.2 1.8-.3 1.6-.2 3.7-.3 5.9-.3 2.2 0 4.3.1 5.9.3.8.1 1.4.2 1.8.3.3.1.9.3.9.8s-.6.7-.9.8c-.4.1-1.1.2-1.8.3-1.6.2-3.7.3-5.9.3m-7.6-1.4c.3.1.9.3 2.2.4 1.5.2 3.4.3 5.4.3s3.9-.1 5.4-.3c1.3-.1 1.9-.3 2.2-.4-.3-.1-.9-.3-2.2-.4-1.5-.2-3.4-.3-5.4-.3s-3.9.1-5.4.3c-1.3.1-1.9.3-2.2.4" fill="#fff"/><g fill="#ed4c5c"><path d="m26.6 49.5c-8.8 1.1-11-5.3-11-5.3h1c0 0 2.2 5.7 10.4 4.4l-.4.9"/><path transform="matrix(.3881-.9216.9216.3881-29.0782 54.784)" d="m20.1 49h13.1v.6h-13.1z"/></g><path d="m24.4 55.5c0 0 7 6 18.8 3.9 11.8-2.1 16.5 2.6 16.5 2.6l2.3-13.8c0 0-4.4-5-20.1-1.6-9.6 2.1-12.3-3.2-12.3-3.2l-5.2 12.1" fill="#e6eff4"/><g fill="#f46767"><path d="m36.2 53.4c.5.8-.1 2-1.3 2.6s-2.5.5-2.9-.4c-.5-.8.1-2 1.3-2.6 1.1-.6 2.4-.5 2.9.4"/><ellipse transform="matrix(.8772-.4801.4801.8772-17.4878 29.97)" cx="49.8" cy="49.2" rx="3.5" ry="2.5"/></g><g fill="#83bf4f"><ellipse transform="matrix(.8773-.4799.4799.8773-19.3882 25.158)" cx="39.5" cy="50.5" rx="1.8" ry="1.3"/><ellipse transform="matrix(.8774-.4798.4798.8774-21.1927 28.1677)" cx="44.5" cy="55.5" rx="2.5" ry="1.8"/><ellipse transform="matrix(.8773-.4799.4799.8773-19.4185 33.0703)" cx="55" cy="54.5" rx="1.9" ry="1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f391.svg b/build/js/jsxc/lib/emojione/assets/svg/1f391.svg
index e42437e..7a1e114 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f391.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f391.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m0 0h64v64h-64z"/><circle fill="#d0d0d0" cx="49.36" cy="14.371" r="9.629"/><g fill="#94989b"><circle cx="42.748" cy="13.407" r=".912"/><circle cx="49.27" cy="10.602" r="1.509"/><circle cx="46.96" cy="18.06" r="1.588"/><circle cx="55.844" cy="12.07" r=".723"/><circle cx="53.799" cy="18.644" r=".566"/></g><path fill="#699635" d="m15.209 41.661c.998 3.364 1.756 6.829 2.271 10.293.008.137.017.273.026.41.214 3.203.459 8.02.724 11.636h1.12c.101-4.071.417-9.378 1-12.978.672-4.131 1.649-8.254 3.079-12.191 1.047-2.884 2.33-5.647 3.64-8.43.116-.246.071-.536-.179-.682-.219-.128-.566-.067-.682.179-1.761 3.741-3.486 7.514-4.674 11.483-.628 2.099-1.158 4.229-1.594 6.376.127-1.301.272-2.599.441-3.895.682-5.237 1.686-10.47 3.18-15.539 1.028-3.484 2.285-6.895 3.557-10.296.096-.255-.103-.546-.348-.614-.28-.077-.519.094-.614.349-1.826 4.88-3.597 9.788-4.761 14.875-1.19 5.203-2.028 10.48-2.52 15.794-.129 1.4-.234 2.803-.316 4.207-.027-.221-.055-.439-.084-.654-.006-.098-.013-.195-.019-.289-.192-2.924-.357-5.85-.482-8.777-.088-2.066-.155-4.135-.187-6.202-.02-1.326-.024-2.652.001-3.977.014-.7.035-1.401.077-2.1.012-.191.023-.383.045-.573.03-.271-.25-.499-.499-.499-.295 0-.469.229-.499.499-.025.219-.037.439-.05.659-.043.736-.063 1.474-.075 2.21-.023 1.37-.015 2.74.008 4.111.036 2.12.108 4.239.202 6.358.019.429.041.857.061 1.285-.007-.031-.015-.063-.023-.094-.504-2.035-1.083-4.051-1.795-6.02-1.082-3-2.425-5.899-3.782-8.783-.116-.246-.463-.307-.682-.179-.25.146-.295.437-.179.683 1.748 3.717 3.441 7.421 4.61 11.368"/><g fill="#ffdd7d"><path d="m27.649 20.09c.389-.612.86-1.154 1.502-1.809 0 0-.511.179-1.262.617.406-.674.901-1.25 1.595-1.958 0 0-.512.179-1.263.617.406-.675.9-1.25 1.595-1.958 0 0-.539.188-1.321.651.422-.739.937-1.346 1.68-2.103 0 0-.514.18-1.269.621.419-.727.93-1.327 1.665-2.076 0 0-.475.167-1.182.57.373-.562.824-1.074 1.422-1.685 0 0-.482.169-1.198.58.389-.612.861-1.154 1.502-1.809 0 0-.512.179-1.263.617.406-.674.901-1.25 1.595-1.958 0 0-.511.179-1.262.617.405-.674.9-1.25 1.594-1.957 0 0-.538.188-1.32.651.422-.739.937-1.345 1.68-2.103 0 0-.515.18-1.269.62.419-.726.93-1.327 1.665-2.075 0 0-4.254.557-5.202 4.388-1.177 4.753-3.07 12.398-4.456 17.995 2.399-4.242 5.97-7.636 5.97-7.636s-.482.172-1.198.583"/><path d="m28.22 32.547c.479-.543 1.03-1 1.768-1.55 0 0-.533.096-1.344.411.506-.603 1.084-1.094 1.881-1.683 0 0-.533.096-1.344.411.506-.603 1.085-1.093 1.881-1.683 0 0-.561.102-1.405.436.532-.664 1.135-1.182 1.988-1.813 0 0-.536.097-1.35.414.527-.652 1.126-1.165 1.969-1.789 0 0-.496.089-1.256.378.456-.497.981-.932 1.667-1.44 0 0-.502.091-1.274.385.479-.544 1.03-1 1.768-1.551 0 0-.533.097-1.344.412.506-.602 1.085-1.093 1.881-1.683 0 0-.533.096-1.343.411.507-.603 1.085-1.094 1.882-1.683 0 0-.562.102-1.406.436.532-.664 1.136-1.182 1.988-1.813 0 0-.535.097-1.35.413.528-.651 1.126-1.165 1.969-1.788 0 0-4.288-.117-5.825 3.518-1.907 4.51-4.976 11.763-7.222 17.07 3.035-3.813 7.094-6.605 7.094-6.605s-.502.088-1.273.382"/><path d="m13.401 29.525c-.076-.72-.043-1.438.053-2.351 0 0-.29.458-.606 1.269-.101-.781-.071-1.539.033-2.524 0 0-.29.458-.606 1.268-.101-.78-.071-1.539.033-2.524 0 0-.304.481-.63 1.33-.128-.841-.102-1.636.009-2.691 0 0-.291.46-.608 1.274-.123-.83-.096-1.617.015-2.66 0 0-.269.425-.571 1.181-.057-.672-.023-1.353.066-2.203 0 0-.272.432-.578 1.199-.076-.721-.043-1.438.053-2.351 0 0-.29.458-.606 1.268-.101-.78-.071-1.539.033-2.524 0 0-.29.458-.606 1.268-.101-.781-.071-1.539.034-2.524 0 0-.304.482-.63 1.331-.128-.841-.102-1.636.009-2.692 0 0-.291.46-.608 1.274-.123-.829-.096-1.618.015-2.66 0 0-2.986 3.079-1.349 6.67 2.031 4.456 5.299 11.621 7.691 16.867-.755-4.813-.067-9.691-.067-9.691s-.273.43-.579 1.196"/><path d="m19.438 32.08c.196-.698.491-1.353.917-2.165 0 0-.438.318-1.031.955.194-.763.501-1.457.963-2.334 0 0-.438.319-1.031.955.193-.762.501-1.456.962-2.334 0 0-.461.335-1.077 1 .192-.829.509-1.558 1-2.498 0 0-.439.32-1.035.959.191-.816.508-1.539.995-2.467 0 0-.406.296-.967.887.195-.646.479-1.266.876-2.023 0 0-.413.301-.98.901.196-.698.491-1.353.917-2.165 0 0-.438.319-1.03.955.194-.763.501-1.457.962-2.334 0 0-.438.318-1.03.955.193-.763.501-1.457.961-2.334 0 0-.46.335-1.076 1 .19-.83.508-1.559 1-2.498 0 0-.44.32-1.035.959.191-.816.507-1.539.995-2.467 0 0-3.913 1.759-3.716 5.701.244 4.891.636 12.757.922 18.516 1.075-4.754 3.516-9.03 3.516-9.03s-.415.303-.982.902"/></g><g fill="#fff"><circle cx="44.25" cy="43.499" r="3.367"/><circle cx="49.45" cy="43.42" r="3.367"/><circle cx="54.46" cy="43.42" r="3.367"/><circle cx="46.758" cy="39.39" r="3.367"/><circle cx="51.959" cy="39.31" r="3.367"/><circle cx="49.36" cy="35.941" r="3.367"/></g><g fill="#fed0ac"><path d="m38.832 44.81h21.05v4.112h-21.05z"/><path d="m40.887 46.866h17.13v17.13h-17.13z"/></g><g fill="#d3976e"><path d="m38.832 44.81h2.055v4.112h-2.055z"/><path d="m57.83 44.81h2.056v4.112h-2.056z"/><path d="m40.887 48.922h2.057v15.08h-2.057z"/><path d="m55.967 48.922h2.055v15.08h-2.055z"/></g><g fill="#89664c"><path d="m40.887 48.922h2.057v2.056h-2.057z"/><path d="m55.967 48.922h2.055v2.056h-2.055z"/></g><path fill="#d3976e" d="m42.943 48.922h13.02v2.056h-13.02z"/><path fill="#3e4347" d="m50.883 54.58c.008-.047.013-.096.013-.144 0-.744 0-1.347-1.536-1.347-1.537 0-1.537.603-1.537 1.347 0 .048.004.097.013.144-1.549.361-1.549 1.367-1.549 2.551 0 1.489 2.114 2.695 3.073 2.695 1.09 0 3.071-1.206 3.071-2.695 0-1.184 0-2.19-1.548-2.551"/><g fill="#d0d0d0"><path d="m48.4 40.753c-.096-.018-.195-.026-.296-.026-.533 0-1.01.248-1.317.634-.308-.363-.768-.595-1.283-.595-.131 0-.258.016-.38.044.161.635.684 1.125 1.335 1.24-.024.116-.039.236-.039.361 0 .414.151.794.4 1.088.23-.288.367-.653.367-1.051 0-.143-.018-.282-.052-.415.633-.145 1.128-.645 1.265-1.28"/><path d="m53.596 40.675c-.096-.017-.194-.025-.295-.025-.533 0-1.01.248-1.316.633-.309-.363-.77-.595-1.283-.595-.132 0-.259.016-.381.044.162.635.684 1.125 1.336 1.24-.025.117-.04.237-.04.361 0 .414.151.794.399 1.088.23-.288.368-.652.368-1.049 0-.145-.019-.283-.052-.417.631-.145 1.127-.645 1.264-1.28"/><path d="m50.996 36.642c-.096-.017-.194-.026-.295-.026-.534 0-1.01.247-1.317.634-.308-.364-.769-.595-1.283-.595-.132 0-.259.016-.38.043.161.636.684 1.126 1.335 1.241-.026.116-.04.236-.04.359 0 .416.151.795.4 1.09.23-.289.367-.653.367-1.051 0-.143-.018-.282-.051-.415.631-.146 1.127-.647 1.264-1.28"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m0 0h64v64h-64z"/><circle cx="49.4" cy="14.4" r="9.6" fill="#d0d0d0"/><g fill="#94989b"><circle cx="42.7" cy="13.4" r=".9"/><circle cx="49.3" cy="10.6" r="1.5"/><circle cx="47" cy="18.1" r="1.6"/><circle cx="55.8" cy="12.1" r=".7"/><circle cx="53.8" cy="18.6" r=".6"/></g><path d="m15.2 41.7c1 3.4 1.8 6.8 2.3 10.3 0 .1 0 .3 0 .4.2 3.2.5 8 .7 11.6h1.1c.1-4.1.4-9.4 1-13 .7-4.1 1.6-8.3 3.1-12.2 1-2.9 2.3-5.6 3.6-8.4.1-.2.1-.5-.2-.7-.2-.1-.6-.1-.7.2-1.8 3.7-3.5 7.5-4.7 11.5-.6 2.1-1.2 4.2-1.6 6.4.1-1.3.3-2.6.4-3.9.7-5.2 1.7-10.5 3.2-15.5 1-3.5 2.3-6.9 3.6-10.3.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.3-1.8 4.9-3.6 9.8-4.8 14.9-1.2 5.2-2 10.5-2.5 15.8-.1 1.4-.2 2.8-.3 4.2 0-.2-.1-.4-.1-.7 0-.1 0-.2 0-.3-.2-2.9-.4-5.8-.5-8.8-.1-2.1-.2-4.1-.2-6.2 0-1.3 0-2.7 0-4 0-.7 0-1.4.1-2.1 0-.2 0-.4 0-.6 0-.3-.2-.5-.5-.5-.3 0-.5.2-.5.5 0 .2 0 .4 0 .7 0 .7-.1 1.5-.1 2.2 0 1.4 0 2.7 0 4.1 0 2.1.1 4.2.2 6.4 0 .4 0 .9.1 1.3 0 0 0-.1 0-.1-.5-2-1.1-4.1-1.8-6-1.1-3-2.4-5.9-3.8-8.8-.1-.2-.5-.3-.7-.2-.2.1-.3.4-.2.7 1.8 3.7 3.5 7.4 4.7 11.4" fill="#699635"/><g fill="#ffdd7d"><path d="m27.6 20.1c.4-.6.9-1.2 1.5-1.8 0 0-.5.2-1.3.6.4-.7.9-1.2 1.6-2 0 0-.5.2-1.3.6.4-.7.9-1.2 1.6-2 0 0-.5.2-1.3.7.4-.7.9-1.3 1.7-2.1 0 0-.5.2-1.3.6.4-.7.9-1.3 1.7-2.1 0 0-.5.2-1.2.6.4-.6.8-1.1 1.4-1.7 0 0-.5.2-1.2.6.4-.6.9-1.2 1.5-1.8 0 0-.5.2-1.3.6.4-.7.9-1.2 1.6-2 0 0-.5.2-1.3.6.4-.7.9-1.2 1.6-2 0 0-.5.2-1.3.7.4-.7.9-1.3 1.7-2.1 0 0-.5.2-1.3.6.4-.7.9-1.3 1.7-2.1 0 0-4.3.6-5.2 4.4-1.2 4.8-3.1 12.4-4.5 18 2.4-4.2 6-7.6 6-7.6s-.3.3-1.1.7"/><path d="m28.2 32.5c.5-.5 1-1 1.8-1.5 0 0-.5.1-1.3.4.5-.6 1.1-1.1 1.9-1.7 0 0-.5.1-1.3.4.5-.6 1.1-1.1 1.9-1.7 0 0-.6.1-1.4.4.5-.7 1.1-1.2 2-1.8 0 0-.5.1-1.4.4.5-.7 1.1-1.2 2-1.8 0 0-.5.1-1.3.4.5-.5 1-.9 1.7-1.4 0 0-.5.1-1.3.4.5-.5 1-1 1.8-1.6 0 0-.5.1-1.3.4.5-.6 1.1-1.1 1.9-1.7 0 0-.5.1-1.3.4.5-.6 1.1-1.1 1.9-1.7 0 0-.6.1-1.4.4.5-.7 1.1-1.2 2-1.8 0 0-.5.1-1.3.4.5-.7 1.1-1.2 2-1.8 0 0-4.3-.1-5.8 3.5-1.9 4.5-5 11.8-7.2 17.1 3-3.8 7.1-6.6 7.1-6.6s-.9.3-1.7.5"/><path d="m13.4 29.5c-.1-.7 0-1.4.1-2.4 0 0-.3.5-.6 1.3-.1-.8-.1-1.5 0-2.5 0 0-.3.5-.6 1.3-.1-.8-.1-1.5 0-2.5 0 0-.3.5-.6 1.3-.1-.8-.1-1.6 0-2.7 0 0-.3.5-.6 1.3-.1-.8-.1-1.6 0-2.7 0 0-.3.4-.6 1.2-.1-.7 0-1.4.1-2.2 0 0-.3.4-.6 1.2-.1-.7 0-1.4.1-2.4 0 0-.3.5-.6 1.3-.1-.8-.1-1.5 0-2.5 0 0-.3.5-.6 1.3-.1-.8-.1-1.5 0-2.5 0 0-.3.5-.6 1.3-.1-.8-.1-1.6 0-2.7 0 0-.3.5-.6 1.3-.1-.8-.1-1.6 0-2.7 0 0-3 3.1-1.3 6.7 2 4.5 5.3 11.6 7.7 16.9-.8-4.8-.1-9.7-.1-9.7s-.3.4-.6 1.1"/><path d="m19.4 32.1c.2-.7.5-1.4.9-2.2 0 0-.4.3-1 1 .2-.8.5-1.5 1-2.3 0 0-.4.3-1 1 .2-.8.5-1.5 1-2.3 0 0-.5.3-1.1 1 .2-.8.5-1.6 1-2.5 0 0-.4.3-1 1 .2-.8.5-1.5 1-2.5 0 0-.4.3-1 .9.2-.6.5-1.3.9-2 0 0-.4.3-1 .9.2-.7.5-1.4.9-2.2 0 0-.4.3-1 1 .2-.8.5-1.5 1-2.3 0 0-.4.3-1 1 .2-.8.5-1.5 1-2.3 0 0-.5.3-1.1 1 .2-.8.5-1.6 1-2.5 0 0-.4.3-1 1 .2-.8.5-1.5 1-2.5 0 0-3.9 1.8-3.7 5.7.2 4.9.6 12.8.9 18.5 1.1-4.8 3.5-9 3.5-9s-.6 0-1.2.6"/></g><g fill="#fff"><circle cx="44.3" cy="43.5" r="3.4"/><circle cx="49.5" cy="43.4" r="3.4"/><circle cx="54.5" cy="43.4" r="3.4"/><circle cx="46.8" cy="39.4" r="3.4"/><circle cx="52" cy="39.3" r="3.4"/><circle cx="49.4" cy="35.9" r="3.4"/></g><g fill="#fed0ac"><path d="m38.8 44.8h21.1v4.1h-21.1z"/><path d="m40.9 46.9h17.1v17.1h-17.1z"/></g><g fill="#d3976e"><path d="m38.8 44.8h2.1v4.1h-2.1z"/><path d="m57.8 44.8h2.1v4.1h-2.1z"/><path d="m40.9 48.9h2.1v15.1h-2.1z"/><path d="m56 48.9h2.1v15.1h-2.1z"/></g><g fill="#89664c"><path d="m40.9 48.9h2.1v2.1h-2.1z"/><path d="m56 48.9h2.1v2.1h-2.1z"/></g><path fill="#d3976e" d="m42.9 48.9h13v2.1h-13z"/><path d="m50.9 54.6c0 0 0-.1 0-.1 0-.7 0-1.3-1.5-1.3-1.5 0-1.5.6-1.5 1.3 0 0 0 .1 0 .1-1.5.4-1.5 1.4-1.5 2.6 0 1.5 2.1 2.7 3.1 2.7 1.1 0 3.1-1.2 3.1-2.7-.2-1.2-.2-2.3-1.7-2.6" fill="#3e4347"/><g fill="#d0d0d0"><path d="m48.4 40.8c-.1 0-.2 0-.3 0-.5 0-1 .2-1.3.6-.3-.4-.8-.6-1.3-.6-.1 0-.3 0-.4 0 .2.6.7 1.1 1.3 1.2 0 .1 0 .2 0 .4 0 .4.2.8.4 1.1.2-.3.4-.7.4-1.1 0-.1 0-.3-.1-.4.7-.1 1.2-.6 1.3-1.2"/><path d="m53.6 40.7c-.1 0-.2 0-.3 0-.5 0-1 .2-1.3.6-.3-.4-.8-.6-1.3-.6-.1 0-.3 0-.4 0 .2.6.7 1.1 1.3 1.2 0 .1 0 .2 0 .4 0 .4.2.8.4 1.1.2-.3.4-.7.4-1 0-.1 0-.3-.1-.4.7-.2 1.2-.7 1.3-1.3"/><path d="m51 36.6c-.1 0-.2 0-.3 0-.5 0-1 .2-1.3.6-.3-.4-.8-.6-1.3-.6-.1 0-.3 0-.4 0 .2.6.7 1.1 1.3 1.2 0 .1 0 .2 0 .4 0 .4.2.8.4 1.1.2-.3.4-.7.4-1.1 0-.1 0-.3-.1-.4.7 0 1.2-.5 1.3-1.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f392.svg b/build/js/jsxc/lib/emojione/assets/svg/1f392.svg
index cd2f37c..812ae04 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f392.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f392.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5f6262"><path d="m40.688 10.891h4.073c-.324-14.521-20.02-14.521-20.344 0h4.073c.373-9.26 11.826-9.26 12.198 0"/><path d="m45.545 10.846v2.697c7.256 1.264 13.756 7.306 13.756 18.15v14.752c0 5.01-6.471 5.982-13.756 5.982v2.443c8.195 0 18.455-1.09 18.455-6.727v-16.596c0-13.672-9.182-20.566-18.455-20.701"/></g><path fill="#428bc1" d="m34.03 6.319c-3.799 0-15.01 2.178-15.01 2.178s-9.432 11.419-9.432 24.13v21.09c0 6.06 6.05 7.982 14.224 8.432l.924 1.831c0 0 32.476.724 32.476-10.263v-21.1c-.001-17.241-11.161-26.313-23.18-26.313"/><path fill="#42ade2" d="m47.623 55.44c0 7.165-8.443 8.552-18.86 8.552h-9.901c-10.418 0-18.862-1.386-18.862-8.552v-21.09c0-35.1 47.623-35.1 47.623 0v21.09"/><path fill="#5f6262" d="m47.623 45.16l-38.03 8.57c0 6.06 6.05 7.982 14.224 8.432l.924 1.831c0 0 32.476.724 32.476-10.263v-10.28l-9.589 1.71"/><path fill="#7e8484" d="m47.623 55.44c0 7.165-8.443 8.552-18.86 8.552h-9.901c-10.418 0-18.862-1.386-18.862-8.552v-10.28h47.623v10.28"/><path fill="#428bc1" d="m44.03 52.4c0 2.939-2.363 5.32-5.279 5.32h-30.872c-2.916 0-5.278-2.381-5.278-5.32v-18.225c0-2.939 2.362-5.321 5.278-5.321h30.872c2.916 0 5.279 2.382 5.279 5.321v18.225"/><path fill="#42ade2" d="m43.04 51.957c0 2.8-2.249 5.067-5.03 5.067h-29.404c-2.776 0-5.03-2.268-5.03-5.067v-17.356c0-2.799 2.25-5.068 5.03-5.068h29.403c2.777 0 5.03 2.269 5.03 5.068v17.356z"/><path fill="#428bc1" d="m43.04 43.28h-39.452v-4.711h39.452"/><path fill="#93ced6" d="m3.588 39.24h39.456v3.367h-39.456z"/><path fill="#42ade2" d="m3.588 39.916h39.456v2.02h-39.456z"/><g fill="#93ced6"><path d="m4.354 37.22h2.314v.675h-2.314z"/><path d="m7.586 37.22h2.314v.675h-2.314z"/><path d="m10.816 37.22h2.315v.675h-2.315z"/><path d="m14.05 37.22h2.314v.675h-2.314z"/><path d="m17.279 37.22h2.313v.675h-2.313z"/><path d="m20.509 37.22h2.314v.675h-2.314z"/><path d="m23.74 37.22h2.315v.675h-2.315z"/><path d="m26.971 37.22h2.314v.675h-2.314z"/><path d="m30.2 37.22h2.315v.675h-2.315z"/><path d="m33.434 37.22h2.313v.675h-2.313z"/><path d="m36.664 37.22h2.314v.675h-2.314z"/><path d="m39.895 37.22h2.314v.675h-2.314z"/><path d="m4.354 43.958h2.314v.675h-2.314z"/><path d="m7.586 43.958h2.314v.675h-2.314z"/><path d="m10.816 43.958h2.315v.675h-2.315z"/><path d="m14.05 43.958h2.314v.675h-2.314z"/><path d="m17.279 43.958h2.313v.675h-2.313z"/><path d="m20.509 43.958h2.314v.675h-2.314z"/><path d="m23.74 43.958h2.315v.675h-2.315z"/><path d="m26.971 43.958h2.314v.675h-2.314z"/><path d="m30.2 43.958h2.315v.675h-2.315z"/><path d="m33.434 43.958h2.313v.675h-2.313z"/><path d="m36.664 43.958h2.314v.675h-2.314z"/><path d="m39.895 43.958h2.314v.675h-2.314z"/></g><ellipse fill="#fff" cx="33.1" cy="41.13" rx="2.278" ry="1.875"/><g fill="#c9c9c9"><path d="m33.1 43.35c-1.438 0-2.605-.993-2.605-2.213 0-1.221 1.168-2.214 2.605-2.214 1.436 0 2.605.993 2.605 2.214 0 1.22-1.17 2.213-2.605 2.213m0-3.753c-1.076 0-1.951.691-1.951 1.54 0 .848.875 1.538 1.951 1.538s1.951-.69 1.951-1.538c0-.849-.875-1.54-1.951-1.54"/><path d="m32.551 40.34h2.803v1.588h-2.803z"/></g><path fill="#fff" d="m35.2 47.37c.146.832-.233 1.631-.873 1.631h-1.35c-.639 0-1.018-.799-.873-1.631l.596-3.42c.05-.273.329-.475.632-.475h.64c.303 0 .584.201.631.475l.597 3.42"/><path fill="#c9c9c9" d="m34.33 49.34h-1.35c-.328 0-.631-.152-.854-.426-.318-.396-.447-.994-.342-1.602l.597-3.422c.077-.428.487-.75.953-.75h.64c.469 0 .879.322.953.751l.598 3.421c.105.607-.021 1.206-.342 1.601-.222.275-.525.427-.853.427m-.995-5.526c-.161 0-.292.104-.31.198l-.596 3.42c-.07.4.008.814.199 1.05.1.123.217.184.352.184h1.35c.135 0 .252-.061.352-.184.191-.237.27-.649.2-1.05l-.599-3.422c-.016-.093-.146-.196-.309-.196h-.639"/><path fill="#9b9596" d="m33.35 40.06h.598v4.129h-.598z"/><path transform="matrix(.7072.707-.707.7072 24.765-24.902)" fill="#c9c9c9" d="m41.05 16.654h2.802v1.588h-2.802z"/><path fill="#fff" d="m43.757 24.486c.146.832-.233 1.631-.874 1.631h-1.35c-.639 0-1.018-.799-.872-1.631l.596-3.42c.05-.273.329-.475.632-.475h.639c.303 0 .584.201.632.475l.597 3.42"/><path fill="#c9c9c9" d="m42.883 26.455h-1.35c-.327 0-.63-.152-.853-.426-.319-.396-.448-.994-.342-1.602l.597-3.422c.076-.428.486-.75.953-.75h.639c.47 0 .879.322.953.751l.598 3.421c.106.607-.021 1.206-.342 1.601-.222.275-.525.427-.853.427m-.994-5.526c-.162 0-.293.104-.31.198l-.597 3.42c-.07.4.008.814.2 1.05.1.123.216.184.351.184h1.35c.135 0 .253-.061.352-.184.191-.237.271-.649.201-1.05l-.599-3.422c-.016-.093-.146-.196-.31-.196h-.638"/><path fill="#9b9596" d="m41.91 17.18h.598v4.129h-.598z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5f6262"><path d="m40.7 10.9h4.1c-.3-14.5-20-14.5-20.3 0h4.1c.3-9.3 11.7-9.3 12.1 0"/><path d="m45.5 10.8v2.7c7.3 1.3 13.8 7.3 13.8 18.1v14.8c0 5-6.5 6-13.8 6v2.4c8.2 0 18.5-1.1 18.5-6.7v-16.6c0-13.6-9.2-20.5-18.5-20.7"/></g><path d="m34 6.3c-3.8 0-15 2.2-15 2.2s-9.4 11.4-9.4 24.1v21.1c0 6.1 6.1 8 14.2 8.4l.9 1.8c0 0 32.5.7 32.5-10.3v-21c0-17.2-11.1-26.3-23.2-26.3" fill="#428bc1"/><path d="M47.6,55.4c0,7.2-8.4,8.6-18.9,8.6h-9.9C8.4,64,0,62.6,0,55.4V34.3c0-35.1,47.6-35.1,47.6,0V55.4z" fill="#42ade2"/><path d="m47.6 45.2l-38 8.6c0 6.1 6.1 8 14.2 8.4l.9 1.8c0 0 32.5.7 32.5-10.3v-10.3l-9.6 1.8" fill="#5f6262"/><path d="M47.6,55.4c0,7.2-8.4,8.6-18.9,8.6h-9.9C8.4,64,0,62.6,0,55.4V45.2h47.6V55.4z" fill="#7e8484"/><path d="m44 52.4c0 2.9-2.4 5.3-5.3 5.3h-30.8c-2.9 0-5.3-2.4-5.3-5.3v-18.2c0-2.9 2.4-5.3 5.3-5.3h30.9c2.9 0 5.3 2.4 5.3 5.3v18.2z" fill="#428bc1"/><path d="m43 52c0 2.8-2.2 5.1-5 5.1h-29.4c-2.8 0-5-2.3-5-5.1v-17.4c0-2.8 2.2-5.1 5-5.1h29.4c2.8 0 5 2.3 5 5.1v17.4" fill="#42ade2"/><path fill="#428bc1" d="m43 43.3h-39.4v-4.7h39.4"/><path fill="#93ced6" d="m3.6 39.2h39.5v3.4h-39.5z"/><path fill="#42ade2" d="m3.6 39.9h39.5v2h-39.5z"/><g fill="#93ced6"><path d="m4.4 37.2h2.3v.7h-2.3z"/><path d="m7.6 37.2h2.3v.7h-2.3z"/><path d="m10.8 37.2h2.3v.7h-2.3z"/><path d="m14 37.2h2.3v.7h-2.3z"/><path d="m17.3 37.2h2.3v.7h-2.3z"/><path d="m20.5 37.2h2.3v.7h-2.3z"/><path d="m23.7 37.2h2.3v.7h-2.3z"/><path d="m27 37.2h2.3v.7h-2.3z"/><path d="m30.2 37.2h2.3v.7h-2.3z"/><path d="m33.4 37.2h2.3v.7h-2.3z"/><path d="m36.7 37.2h2.3v.7h-2.3z"/><path d="m39.9 37.2h2.3v.7h-2.3z"/><path d="m4.4 44h2.3v.7h-2.3z"/><path d="m7.6 44h2.3v.7h-2.3z"/><path d="m10.8 44h2.3v.7h-2.3z"/><path d="m14 44h2.3v.7h-2.3z"/><path d="m17.3 44h2.3v.7h-2.3z"/><path d="m20.5 44h2.3v.7h-2.3z"/><path d="m23.7 44h2.3v.7h-2.3z"/><path d="m27 44h2.3v.7h-2.3z"/><path d="m30.2 44h2.3v.7h-2.3z"/><path d="m33.4 44h2.3v.7h-2.3z"/><path d="m36.7 44h2.3v.7h-2.3z"/><path d="m39.9 44h2.3v.7h-2.3z"/></g><ellipse cx="33.1" cy="41.1" rx="2.3" ry="1.9" fill="#fff"/><g fill="#c9c9c9"><path d="m33.1 43.3c-1.4 0-2.6-1-2.6-2.2 0-1.2 1.2-2.2 2.6-2.2 1.4 0 2.6 1 2.6 2.2 0 1.3-1.2 2.2-2.6 2.2m0-3.7c-1.1 0-2 .7-2 1.5 0 .8.9 1.5 2 1.5s2-.7 2-1.5c0-.8-.9-1.5-2-1.5"/><path d="m32.6 40.3h2.8v1.6h-2.8z"/></g><path d="m35.2 47.4c.1.8-.2 1.6-.9 1.6h-1.3c-.6 0-1-.8-.9-1.6l.6-3.4c0-.3.3-.5.6-.5h.7c.3 0 .6.2.6.5l.6 3.4" fill="#fff"/><path d="m34.3 49.3h-1.3c-.3 0-.6-.2-.9-.4-.3-.4-.4-1-.3-1.6l.6-3.4c.1-.4.5-.8 1-.8h.6c.5 0 .9.3 1 .8l.6 3.4c.1.6 0 1.2-.3 1.6-.3.3-.6.4-1 .4m-1-5.5c-.2 0-.3.1-.3.2l-.6 3.4c-.1.4 0 .8.2 1 .1.1.2.2.4.2h1.3c.1 0 .3-.1.4-.2.2-.2.3-.6.2-1l-.6-3.4c0-.1-.1-.2-.3-.2h-.7" fill="#c9c9c9"/><path fill="#9b9596" d="m33.4 40.1h.6v4.1h-.6z"/><path transform="matrix(.707-.7072.7072.707.09814 35.132)" fill="#c9c9c9" d="m41.7 16h1.6v2.8h-1.6z"/><path d="m43.8 24.5c.1.8-.2 1.6-.9 1.6h-1.3c-.6 0-1-.8-.9-1.6l.6-3.4c0-.3.3-.5.6-.5h.6c.3 0 .6.2.6.5l.7 3.4" fill="#fff"/><path d="m42.9 26.5h-1.3c-.3 0-.6-.2-.9-.4-.3-.4-.4-1-.3-1.6l.6-3.4c.1-.4.5-.8 1-.8h.6c.5 0 .9.3 1 .8l.6 3.4c.1.6 0 1.2-.3 1.6-.4.2-.7.4-1 .4m-1-5.6c-.2 0-.3.1-.3.2l-.6 3.4c-.1.4 0 .8.2 1 .1.1.2.2.4.2h1.3c.1 0 .3-.1.4-.2.2-.2.3-.6.2-1l-.6-3.4c0-.1-.1-.2-.3-.2h-.7" fill="#c9c9c9"/><path fill="#9b9596" d="m41.9 17.2h.6v4.1h-.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f393.svg b/build/js/jsxc/lib/emojione/assets/svg/1f393.svg
index aba5e0c..743f8c1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f393.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f393.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#596066" d="m13.13 30.18v6.812c0 14.03 37.743 14.03 37.743 0v-6.812h-37.743"/><path fill="#3e4347" d="M62 25.445 32 38.947 2 25.445 32 11.942z"/><g fill="#ffce31"><path d="m31.869 24.828c-4.586 2.065-14.585 6.565-14.999 6.752-.209.093-.361.317-.361.617 0 2.25 0 4.502 0 6.75 0 .826.982.826.982 0 0-2.098 0-4.197 0-6.295 4.466-2.01 14.226-6.402 14.64-6.589.594-.268.338-1.504-.262-1.235"/><ellipse cx="17" cy="38.947" rx="1.875" ry="2.445"/><path d="m17 51.943c1.035 0 1.875-.547 1.875-1.223v-11.773h-3.75v11.773c0 .676.84 1.223 1.875 1.223"/></g><g fill="#594640"><path d="m18.277 39.15c-.063.049-.128.092-.197.133v12.432c.069-.031.135-.066.197-.105v-12.46"/><path d="m17.491 39.512c-.064.016-.13.025-.196.035v12.381c.066-.008.132-.018.196-.029v-12.387"/><path d="m16.705 39.547c-.066-.01-.132-.02-.196-.035v12.387c.064.012.13.021.196.029v-12.381"/><path d="m15.92 39.29c-.069-.041-.135-.084-.196-.133v12.459c.062.039.127.074.196.105v-12.431"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M13.1,30.2V37c0,14,37.7,14,37.7,0v-6.8H13.1z" fill="#596066"/><path fill="#3e4347" d="M62 25.4 32 38.9 2 25.4 32 11.9z"/><g fill="#ffce31"><path d="m31.9 24.8c-4.6 2.1-14.6 6.6-15 6.8-.2.1-.4.3-.4.6 0 2.2 0 4.5 0 6.8 0 .8 1 .8 1 0 0-2.1 0-4.2 0-6.3 4.5-2 14.2-6.4 14.6-6.6.6-.3.4-1.5-.2-1.3"/><ellipse cx="17" cy="38.9" rx="1.9" ry="2.4"/><path d="m17 51.9c1 0 1.9-.5 1.9-1.2v-11.8h-3.8v11.8c0 .7.9 1.2 1.9 1.2"/></g><g fill="#594640"><path d="m18.3 39.2c-.1 0-.1.1-.2.1v12.4c.1 0 .1-.1.2-.1v-12.4"/><path d="m17.5 39.5c-.1 0-.1 0-.2 0v12.4c.1 0 .1 0 .2 0v-12.4"/><path d="m16.7 39.5c-.1 0-.1 0-.2 0v12.4c.1 0 .1 0 .2 0v-12.4"/><path d="m15.9 39.3c-.1 0-.1-.1-.2-.1v12.5c.1 0 .1.1.2.1v-12.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f396.svg b/build/js/jsxc/lib/emojione/assets/svg/1f396.svg
index 8ed5107..316e3a4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f396.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f396.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffc200" d="m33.943 31.767c0 1.073-.869 1.943-1.943 1.943s-1.943-.87-1.943-1.943h-.869c0 1.554 1.258 2.813 2.813 2.813s2.813-1.259 2.813-2.813h-.871"/><g fill="#e68a00"><path d="m33 37.28h-2v-3.959c0-1.552 2-1.552 2 0v3.959"/><ellipse cx="32" cy="48.5" rx="13.5" ry="13.5"/></g><ellipse fill="#ffc200" cx="32" cy="48.5" rx="12.5" ry="12.5"/><g fill="#e68a00"><path d="m30.26 46.24l-1.744-2.391-7.789 1.129 5.642 1.826z"/><path d="m33.74 46.24l1.744-2.391-3.484-7.04v5.914z"/><path d="m34.818 49.54l2.821.91 5.631-5.472-5.635 1.826z"/><path d="m32 51.578v2.962l6.969 3.65-3.487-4.79z"/><path d="m29.18 49.54l-2.815.91-1.335 7.74 3.49-4.79z"/></g><g fill="#ffe394"><path d="m32 42.727v-5.914l-3.484 7.04 1.744 2.391z"/><path d="m37.635 46.804l5.635-1.826-7.786-1.129-1.744 2.391z"/><path d="m34.818 49.54l.664 3.86 3.487 4.79-1.33-7.74z"/><path d="m28.52 53.4l-3.49 4.79 6.97-3.65v-2.962z"/><path d="m26.369 46.804l-5.642-1.826 5.638 5.472 2.815-.91z"/></g><g fill="#f3f7fa"><path d="m22 28.24l2.27 3.744h2.73v-29.984h-5z"/><path d="m37 2v29.984h2.732l2.268-3.744v-26.24z"/></g><g fill="#42ade2"><path d="m17 19.992l5 8.248v-26.24h-5z"/><path d="m27 2h10v29.984h-10z"/><path d="m42 2v26.24l4.995-8.248h.005v-17.992z"/></g><path fill="#d3976e" d="m23 30.06h18v1h-18z"/><path fill="#89664c" d="m23 31.06h18v1h-18z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m33.9 31.8c0 1.1-.9 1.9-1.9 1.9s-1.9-.9-1.9-1.9h-.9c0 1.6 1.3 2.8 2.8 2.8s2.8-1.3 2.8-2.8c0 0-.9 0-.9 0" fill="#ffc200"/><g fill="#e68a00"><path d="m33 37.3h-2v-4c0-1.6 2-1.6 2 0v4"/><ellipse cx="32" cy="48.5" rx="13.5" ry="13.5"/></g><ellipse cx="32" cy="48.5" rx="12.5" ry="12.5" fill="#ffc200"/><g fill="#e68a00"><path d="m30.3 46.2l-1.8-2.4-7.8 1.2 5.7 1.8z"/><path d="m33.7 46.2l1.8-2.4-3.5-7v5.9z"/><path d="m34.8 49.5l2.8 1 5.7-5.5-5.7 1.8z"/><path d="m32 51.6v2.9l7 3.7-3.5-4.8z"/><path d="m29.2 49.5l-2.8 1-1.4 7.7 3.5-4.8z"/></g><g fill="#ffe394"><path d="m32 42.7v-5.9l-3.5 7 1.8 2.4z"/><path d="m37.6 46.8l5.7-1.8-7.8-1.2-1.8 2.4z"/><path d="m34.8 49.5l.7 3.9 3.5 4.8-1.4-7.7z"/><path d="m28.5 53.4l-3.5 4.8 7-3.7v-2.9z"/><path d="m26.4 46.8l-5.7-1.8 5.7 5.5 2.8-1z"/></g><g fill="#f3f7fa"><path d="m22 28.2l2.3 3.8h2.7v-30h-5z"/><path d="m37 2v30h2.7l2.3-3.8v-26.2z"/></g><g fill="#42ade2"><path d="m17 20l5 8.2v-26.2h-5z"/><path d="m27 2h10v30h-10z"/><path d="m42 2v26.2l5-8.2v-18z"/></g><path fill="#d3976e" d="m23 30.1h18v1h-18z"/><path fill="#89664c" d="m23 31.1h18v1h-18z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f397.svg b/build/js/jsxc/lib/emojione/assets/svg/1f397.svg
index 5fbe327..1187506 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f397.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f397.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m32.1 2c-.004 0-.016 0-.016 0s-12.637 0-14.711 4.904c-.817 1.93-.117 7.615.126 9.384 1.702-3.2 7.454-5.554 14.29-5.554 7.208 0 13.213 2.619 14.53 6.086h.271v-9.721c0-2.376-6.279-5.099-14.49-5.099"/><path fill="#ff5760" d="m34.12 2.055c0 0 17.883-.923 17.883 16.664 0 17.586-31.23 43.19-31.23 43.19l-4.897-11.139c0 .001 54.16-44.41 18.239-48.711"/><path fill="#ff717f" d="m29.755 2.107c0 0-17.755-.879-17.755 16.708s31.23 43.19 31.23 43.19l4.897-11.139c0 0-54.28-44.46-18.367-48.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 2c0 0 0 0 0 0s-12.7 0-14.7 4.9c-.8 1.9-.1 7.6.1 9.4 1.7-3.2 7.5-5.6 14.3-5.6 7.2 0 13.2 2.6 14.5 6.1h.3v-9.7c0-2.4-6.3-5.1-14.5-5.1" fill="#c94747"/><path d="m34.1 2.1c0 0 17.9-.9 17.9 16.7 0 17.6-31.2 43.2-31.2 43.2l-4.9-11.1c0-.1 54.1-44.5 18.2-48.8" fill="#ff5760"/><path d="m29.8 2.1c0 0-17.8-.9-17.8 16.7s31.2 43.2 31.2 43.2l4.9-11.1c0 0-54.3-44.5-18.3-48.8" fill="#ff717f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f399.svg b/build/js/jsxc/lib/emojione/assets/svg/1f399.svg
index 695d079..44c4b3f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f399.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f399.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m20.997 25.05v14.953c0 6.223 4.76 11 11 11 6.244 0 11-4.777 11-11v-14.953h-22.01"/><path fill="#94989b" d="M45,27v-1.953L43.003,25v7H45v-2h2v10.99c0,8.24-6.731,13.943-15,13.943S17,49.23,17,40.99V30h2v2h1.997
- v-6.953H19V27h-5v13.99C14,53.027,22.625,58,32,58s18-4.973,18-17.01V27H45z"/><g fill="#3e4347"><path d="m29 53h6v6h-6z"/><path d="m30 58h4v4h-4z"/></g><path fill="#d0d0d0" d="m32 0c-6.19 0-11 3.808-11 10v14.982l22.01.064v-15.05c0-6.192-4.812-10-11-10"/><g fill="#94989b"><path d="m27.865 15h-6.868v3h6.868c.762 0 1.378-.67 1.378-1.5 0-.826-.616-1.5-1.378-1.5"/><path d="m27.865 10h-6.868v3h6.868c.762 0 1.378-.672 1.378-1.5s-.616-1.5-1.378-1.5"/><path d="m36.13 15h6.869v3h-6.869c-.763 0-1.378-.67-1.378-1.5 0-.826.615-1.5 1.378-1.5"/><path d="m36.13 10h6.869v3h-6.869c-.763 0-1.378-.672-1.378-1.5s.615-1.5 1.378-1.5"/><path d="m27.865 20h-6.868v3h6.868c.762 0 1.378-.672 1.378-1.498 0-.829-.616-1.502-1.378-1.502"/><path d="m36.13 20h6.869v3h-6.869c-.763 0-1.378-.672-1.378-1.498 0-.829.615-1.502 1.378-1.502"/></g><path fill="#3e4347" d="m46 64h-28c0 0 6.297-3 14-3s14 3 14 3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m14 28h36v1h-36z"/><g fill="#94989b"><path d="m46 24.5v14.7c0 10.5-6.7 14.9-14 14.9-7.3 0-14-4.4-14-14.9v-14.7h-2v14.5c0 12 7.7 17 16 17s16-5 16-17v-14.5h-2"/><path d="m30 56h4v4h-4z"/></g><g fill="#3e4347"><path d="M21,25v13c0,6.2,4.8,11,11,11c6.2,0,11-4.8,11-11V25H21z"/><path d="m29 52h6v5h-6z"/></g><path d="m32 2c-6.2 0-11 3.8-11 10v13h22v-13c0-6.2-4.8-10-11-10" fill="#94989b"/><path d="m32 2.8c-5.7 0-10.1 3.7-10.1 9.7v12.5h20.2v-12.5c0-6-4.4-9.7-10.1-9.7" fill="#d0d0d0"/><path d="m46 62h-28c0 0 6.3-3 14-3s14 3 14 3" fill="#3e4347"/><path fill="#b0b8b8" d="m20 25h24v7h-24z"/><g fill="#3e4347"><path d="m19 24.5h26v2h-26z"/><path d="m19 27.5h26v2h-26z"/><path d="m19 30.5h26v2h-26z"/><path d="m13 25.5h2v6h-2z"/><path d="m49 25.5h2v6h-2z"/></g><g fill="#94989b"><path d="m25.3 22.5c0 .7-.6 1.2-1.3 1.2-.7 0-1.3-.5-1.3-1.1 0-.6.6-1.1 1.3-1.2.7 0 1.3.5 1.3 1.1"/><path d="m30.7 22.5c0 .7-.6 1.3-1.3 1.3-.7 0-1.3-.6-1.4-1.3 0-.7.6-1.3 1.3-1.3.7 0 1.4.5 1.4 1.3"/><path d="m36 22.5c0 .7-.6 1.3-1.4 1.3-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.3 1.4-1.3.7 0 1.3.6 1.3 1.3"/><path d="m41.4 22.6c0 .6-.6 1.1-1.3 1.1s-1.3-.5-1.3-1.2c0-.7.6-1.2 1.3-1.1.7.1 1.3.6 1.3 1.2"/><path d="m25.2 16.2c0 .7-.6 1.3-1.3 1.4-.7.1-1.3-.2-1.3-.8 0-.6.6-1.3 1.3-1.5.7-.2 1.3.2 1.3.9"/><path d="m30.6 15.6c0 .7-.6 1.3-1.4 1.4-.8 0-1.4-.5-1.4-1.2 0-.7.6-1.3 1.4-1.4.8-.1 1.4.4 1.4 1.2"/><path d="m36.1 15.8c0 .7-.6 1.2-1.4 1.2-.8 0-1.4-.6-1.4-1.4 0-.7.6-1.3 1.4-1.2.8 0 1.4.7 1.4 1.4"/><path d="m41.4 16.8c0 .6-.6 1-1.3.8-.7-.1-1.3-.8-1.3-1.4 0-.7.6-1.1 1.3-.9.7.2 1.3.9 1.3 1.5"/><path d="m27.9 19.1c0 .7-.6 1.3-1.3 1.3-.7 0-1.3-.4-1.4-1.1s.6-1.3 1.3-1.4c.8 0 1.4.5 1.4 1.2"/><path d="m33.4 19c0 .7-.6 1.3-1.4 1.3-.7 0-1.4-.6-1.4-1.3 0-.7.6-1.3 1.4-1.3.8 0 1.4.6 1.4 1.3"/><path d="m38.7 19.4c0 .7-.6 1.1-1.4 1.1-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.2 1.4-1.1.8 0 1.4.6 1.3 1.3"/><path d="m27.8 12.4c0 .7-.6 1.3-1.3 1.5-.7.1-1.3-.3-1.3-.9 0-.7.6-1.4 1.3-1.6.7-.2 1.3.3 1.3 1"/><path d="m33.4 12.1c0 .7-.6 1.3-1.4 1.3-.8 0-1.4-.5-1.4-1.3 0-.7.6-1.3 1.4-1.3.8 0 1.4.6 1.4 1.3"/><path d="m38.8 13c0 .7-.6 1-1.3.9-.7-.1-1.3-.8-1.3-1.5 0-.7.6-1.2 1.4-1 .7.2 1.3.9 1.2 1.6"/><path d="m25.1 9.8c0 .7-.6 1.4-1.3 1.7-.7.3-1.2.1-1.2-.6 0-.6.5-1.4 1.2-1.8.7-.3 1.3 0 1.3.7"/><path d="m30.6 8.7c0 .7-.6 1.3-1.4 1.4-.8.1-1.4-.4-1.4-1 0-.7.6-1.4 1.4-1.5.7-.2 1.4.4 1.4 1.1"/><path d="m36.2 9c0 .7-.6 1.1-1.4 1-.8 0-1.4-.6-1.4-1.3 0-.7.6-1.3 1.4-1.1.8 0 1.4.7 1.4 1.4"/><path d="m41.4 10.9c0 .6-.5.8-1.2.6-.7-.3-1.3-1-1.3-1.7 0-.7.6-1 1.3-.6.6.3 1.2 1.1 1.2 1.7"/><path d="m27.7 5.7c0 .7-.6 1.4-1.3 1.6-.7.2-1.3-.1-1.3-.7 0-.7.6-1.5 1.3-1.7.7-.3 1.3.1 1.3.8"/><path d="m33.4 5.2c0 .7-.6 1.2-1.4 1.2-.8 0-1.4-.5-1.4-1.2 0-.7.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4"/><path d="m38.9 6.6c0 .7-.6.9-1.3.7-.7-.2-1.4-.9-1.3-1.6 0-.7.6-1.1 1.4-.8.7.2 1.2 1 1.2 1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f39a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f39a.svg
index 4100294..426ccd1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f39a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f39a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m12.889 2.692c0 7.5 0 57.34 0 58.62 0 3.59 5.563 3.59 5.563 0 0-7.5 0-57.34 0-58.62-.001-3.589-5.563-3.589-5.563 0"/><path fill="#6d7275" d="m4.79 43.18c2.754 0 19.01 0 21.759 0 2.613 0 4.791-2.473 4.791-5.437s-2.178-5.437-4.791-5.437c-2.752 0-19 0-21.759 0-2.61 0-4.79 2.473-4.79 5.437s2.179 5.437 4.79 5.437"/><path fill="#94989b" d="m5.1 40.607c2.682 0 18.458 0 21.14 0 2.544 0 4.665-1.889 4.665-4.149 0-2.262-2.121-4.148-4.665-4.148-2.681 0-18.458 0-21.14 0-2.543 0-4.665 1.887-4.665 4.148.001 2.261 2.122 4.149 4.665 4.149"/><g fill="#c7e755"><path d="m50.922 64h-13.192c-4.104 0-4.104-6.547 0-6.547h13.191c4.104 0 4.104 6.547.001 6.547"/><path d="m52.922 52.51h-15.192c-4.104 0-4.104-6.547 0-6.547h15.191c4.104 0 4.104 6.547.001 6.547"/><path d="m54.922 41.02h-17.192c-4.104 0-4.104-6.547 0-6.547h17.191c4.104 0 4.104 6.547.001 6.547"/></g><g fill="#5b636b"><path d="m56.922 29.529h-19.19c-4.104 0-4.104-6.548 0-6.548h19.19c4.104 0 4.104 6.548.001 6.548"/><path d="m58.922 18.04h-21.19c-4.104 0-4.104-6.547 0-6.547h21.19c4.104 0 4.104 6.547.001 6.547"/><path d="m60.922 6.548h-23.19c-4.104 0-4.104-6.547 0-6.547h23.19c4.104 0 4.104 6.547.001 6.547"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m14 4.5c0 7 0 53.8 0 55 0 3.4 6 3.4 6 0 0-7 0-53.8 0-55 0-3.3-6-3.3-6 0" fill="#333"/><path d="m6.6 42c2.6 0 18.2 0 20.8 0 2.5 0 4.6-2.3 4.6-5 0-2.7-2.1-5-4.6-5-2.6 0-18.2 0-20.8 0-2.5 0-4.6 2.3-4.6 5 0 2.7 2.1 5 4.6 5" fill="#6d7275"/><path d="m6.9 39.6c2.6 0 17.7 0 20.2 0 2.4 0 4.5-1.7 4.5-3.8s-2-3.8-4.5-3.8c-2.6 0-17.7 0-20.2 0-2.4 0-4.5 1.7-4.5 3.8s2 3.8 4.5 3.8" fill="#94989b"/><g fill="#5b636b"><path d="m59 10h-20c-4 0-4-6 0-6h20c4 0 4 6 0 6"/><path d="m57 20h-18c-4 0-4-6 0-6h18c4 0 4 6 0 6"/><path d="m55 30h-16c-4 0-4-6 0-6h16c4 0 4 6 0 6"/></g><g fill="#c7e755"><path d="m53 40h-14c-4 0-4-6 0-6h14c4 0 4 6 0 6"/><path d="m51 50h-12c-4 0-4-6 0-6h12c4 0 4 6 0 6"/><path d="m49 60h-10c-4 0-4-6 0-6h10c4 0 4 6 0 6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f39b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f39b.svg
index 4d2c6af..54dda72 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f39b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f39b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#7d8993" cx="30.27" cy="36.681" r="23.11"/><circle fill="#5b636b" cx="30.27" cy="38.33" r="20.247"/><path fill="#fff" d="m31.645 33.695c0 .758-.614 1.373-1.372 1.373-.758 0-1.373-.615-1.373-1.373v-15.285c0-.758.614-1.373 1.373-1.373.758 0 1.372.615 1.372 1.373v15.285"/><path fill="#94989b" d="m63.42 43.41c1.141-6.09.597-12.502-1.647-18.327-2.23-5.803-6.146-10.975-11.199-14.684-5.02-3.713-11.188-5.91-17.487-6.159-6.274-.274-12.638 1.398-18.01 4.769-5.345 3.345-9.674 8.316-12.27 14.14-2.596 5.766-3.419 12.353-2.365 18.642.706 4.295 2.341 8.437 4.713 12.11h3.166c-2.261-3.387-3.817-7.245-4.5-11.227-.918-5.281-.35-10.828 1.613-15.724 1.98-4.985 5.383-9.324 9.658-12.395 4.308-3.115 9.512-4.872 14.737-5.02 5.271-.171 10.545 1.327 14.891 4.144 4.42 2.845 7.909 7.05 9.931 11.777 2.087 4.829 2.63 10.2 1.699 15.276-.916 4.962-3.249 9.521-6.741 13.164h9.919c1.863-3.244 3.198-6.799 3.889-10.49"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="30.3" cy="36.7" r="23.1" fill="#7d8993"/><circle cx="30.3" cy="38.3" r="20.2" fill="#5b636b"/><path d="m31.6 33.7c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4v-15.3c0-.8.6-1.4 1.4-1.4.8 0 1.4.6 1.4 1.4v15.3" fill="#fff"/><path d="m63.4 43.4c1.1-6.1.6-12.5-1.6-18.3-2.2-5.8-6.1-11-11.2-14.7-5-3.7-11.2-5.9-17.5-6.2-6.3-.2-12.6 1.4-18 4.8-5.3 3.3-9.7 8.3-12.3 14.1-2.6 5.8-3.4 12.4-2.4 18.6.7 4.3 2.3 8.4 4.7 12.1h3.2c-2.3-3.4-3.8-7.2-4.5-11.2-.9-5.3-.3-10.8 1.6-15.7 2-5 5.4-9.3 9.7-12.4 4.3-3.1 9.5-4.9 14.7-5 5.3-.2 10.5 1.3 14.9 4.1 4.4 2.8 7.9 7 9.9 11.8 2.1 4.8 2.6 10.2 1.7 15.3-.9 5-3.2 9.5-6.7 13.2h9.9c1.9-3.2 3.2-6.8 3.9-10.5" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f39e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f39e.svg
index 1c70ff2..1a65cc8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f39e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f39e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m64 27.661l-6.225-6.225-6.896 6.896c-.307.306-.803.307-1.109 0l-14.1-14.1c-.307-.307-.307-.803 0-1.109l6.896-6.896-6.222-6.224-36.34 36.34 6.223 6.224 6.682-6.681c.307-.306.803-.306 1.11 0l14.1 14.1c.305.308.305.805 0 1.11l-6.68 6.681 6.222 6.223 36.34-36.34m-8.244-.083c-.279-.279-.279-.731 0-1.01l2.102-2.104c.279-.278.732-.278 1.012 0l2.102 2.104c.277.277.277.729 0 1.01l-2.102 2.103c-.279.279-.732.279-1.012 0l-2.102-2.103m-21.535-21.534c-.277-.278-.277-.73 0-1.01l2.104-2.102c.279-.279.729-.279 1.01 0l2.104 2.102c.279.279.279.731 0 1.01l-2.104 2.104c-.279.277-.729.277-1.01 0l-2.104-2.104m-26.07 30.28c.278.279.278.731 0 1.01l-2.103 2.103c-.279.279-.731.278-1.01 0l-2.103-2.103c-.278-.278-.278-.73 0-1.01l2.103-2.103c.278-.279.73-.279 1.01 0l2.103 2.103m34.05 9.02c.279.279.279.731 0 1.01l-2.102 2.103c-.279.278-.732.278-1.01 0l-2.104-2.103c-.277-.278-.277-.73 0-1.01l2.104-2.102c.277-.279.73-.279 1.01 0l2.102 2.102m6.266-6.267c.279.279.279.731 0 1.01l-2.102 2.103c-.279.278-.73.278-1.01 0l-2.102-2.103c-.279-.278-.279-.73 0-1.01l2.102-2.102c.279-.279.73-.279 1.01 0l2.102 2.102m-20.502-26.769c-.277-.278-.277-.73 0-1.01l2.104-2.104c.277-.278.73-.278 1.01 0l2.102 2.104c.279.278.279.73 0 1.01l-2.102 2.103c-.277.279-.73.279-1.01 0l-2.104-2.103m21.533 21.534c-.279-.279-.279-.731 0-1.01l2.104-2.103c.279-.278.73-.278 1.01 0l2.102 2.103c.279.278.279.73 0 1.01l-2.102 2.103c-.279.278-.73.278-1.01 0l-2.104-2.103m-27.777-15.289c-.279-.279-.279-.73 0-1.01l2.102-2.102c.279-.279.73-.279 1.01 0l2.102 2.102c.279.279.279.73 0 1.01l-2.102 2.102c-.279.279-.73.279-1.01 0l-2.102-2.102m-6.268 6.265c-.279-.279-.279-.73 0-1.01l2.102-2.103c.279-.279.732-.279 1.012 0l2.102 2.103c.277.278.277.729 0 1.01l-2.102 2.103c-.279.279-.732.279-1.012 0l-2.102-2.103m1.899 7.735c-.307-.307-.307-.805 0-1.111l14.1-14.1c.307-.308.805-.308 1.111 0l14.1 14.1c.307.307.307.805 0 1.111l-14.1 14.1c-.307.308-.805.308-1.111 0l-14.1-14.1m-8.146-1.489c-.277-.279-.277-.73 0-1.01l2.104-2.103c.278-.278.73-.278 1.01 0l2.103 2.103c.279.279.279.73 0 1.01l-2.103 2.103c-.279.279-.731.279-1.01 0l-2.104-2.103m21.536 21.534c-.279-.277-.279-.729 0-1.01l2.104-2.104c.277-.277.73-.277 1.01 0l2.104 2.104c.277.278.277.73 0 1.01l-2.104 2.103c-.277.279-.73.279-1.01 0l-2.104-2.103m-6.265 6.267c-.279-.279-.279-.73 0-1.01l2.102-2.103c.279-.278.73-.278 1.01 0l2.104 2.103c.277.279.277.73 0 1.01l-2.104 2.102c-.279.279-.73.279-1.01 0l-2.102-2.102"/><g fill="#fff"><path d="m32.555 46.657l14.1-14.1c.307-.307.307-.805 0-1.111l-14.1-14.1c-.307-.308-.805-.308-1.111 0l-14.1 14.1c-.307.307-.307.805 0 1.111l14.1 14.1c.306.308.804.308 1.111 0"/><path d="m58.869 29.681l2.102-2.103c.277-.279.277-.731 0-1.01l-2.102-2.104c-.279-.278-.732-.278-1.012 0l-2.102 2.104c-.279.277-.279.729 0 1.01l2.102 2.103c.28.279.733.279 1.012 0"/><path d="m52.602 35.947l2.102-2.103c.279-.279.279-.731 0-1.01l-2.102-2.103c-.279-.278-.73-.278-1.01 0l-2.104 2.103c-.279.278-.279.73 0 1.01l2.104 2.103c.279.279.73.279 1.01 0"/><path d="m45.35 36.979l-2.102 2.102c-.279.279-.279.731 0 1.01l2.102 2.103c.279.278.73.278 1.01 0l2.102-2.103c.279-.278.279-.73 0-1.01l-2.102-2.102c-.28-.28-.731-.28-1.01 0"/><path d="m39.08 43.24l-2.104 2.102c-.277.279-.277.731 0 1.01l2.104 2.103c.277.278.73.278 1.01 0l2.102-2.103c.279-.278.279-.73 0-1.01l-2.102-2.102c-.279-.279-.733-.279-1.01 0"/><path d="m33.844 54.703l2.104-2.103c.277-.277.277-.729 0-1.01l-2.104-2.104c-.277-.277-.73-.277-1.01 0l-2.104 2.104c-.279.278-.279.73 0 1.01l2.104 2.103c.277.279.73.279 1.01 0"/><path d="m27.578 60.97l2.104-2.102c.277-.279.277-.73 0-1.01l-2.104-2.103c-.279-.278-.73-.278-1.01 0l-2.102 2.103c-.279.279-.279.73 0 1.01l2.102 2.102c.28.279.731.279 1.01 0"/><path d="m37.33 8.147l2.104-2.104c.279-.278.279-.73 0-1.01l-2.104-2.102c-.279-.279-.729-.279-1.01 0l-2.104 2.102c-.277.279-.277.731 0 1.01l2.104 2.104c.28.278.729.278 1.01 0"/><path d="m31.07 14.413l2.102-2.103c.279-.278.279-.73 0-1.01l-2.102-2.104c-.277-.278-.73-.278-1.01 0l-2.104 2.104c-.277.278-.277.73 0 1.01l2.104 2.103c.278.279.731.279 1.01 0"/><path d="m24.822 20.657l2.102-2.102c.279-.279.279-.73 0-1.01l-2.102-2.102c-.279-.279-.73-.279-1.01 0l-2.102 2.102c-.279.279-.279.73 0 1.01l2.102 2.102c.28.28.731.28 1.01 0"/><path d="m18.557 26.924l2.102-2.103c.277-.279.277-.73 0-1.01l-2.102-2.103c-.279-.279-.732-.279-1.012 0l-2.102 2.103c-.279.278-.279.729 0 1.01l2.102 2.103c.279.279.732.279 1.012 0"/><path d="m12.31 33.17l2.103-2.103c.279-.279.279-.73 0-1.01l-2.103-2.103c-.279-.278-.731-.278-1.01 0l-2.104 2.103c-.277.279-.277.73 0 1.01l2.104 2.103c.278.279.73.279 1.01 0"/><path d="m5.03 34.22l-2.103 2.103c-.278.279-.278.731 0 1.01l2.103 2.103c.278.278.73.279 1.01 0l2.103-2.103c.278-.278.278-.73 0-1.01l-2.103-2.103c-.279-.28-.731-.28-1.01 0"/><path d="m28.12 49.985l-14.1-14.1c-.308-.306-.804-.306-1.11 0l-6.682 6.681 15.216 15.214 6.68-6.681c.304-.306.304-.803-.001-1.111"/><path d="m35.666 14.229l14.1 14.1c.307.307.803.306 1.109 0l6.896-6.896-15.212-15.213-6.896 6.896c-.308.307-.308.803-.001 1.109"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 27.9l-5.8-5.8-6.5 6.5c-.3.3-.8.3-1 0l-13.3-13.3c-.3-.3-.3-.8 0-1l6.5-6.5-5.8-5.8-34.1 34.1 5.8 5.8 6.3-6.3c.3-.3.8-.3 1 0l13.2 13.2c.3.3.3.8 0 1l-6.3 6.3 5.8 5.8 34.2-34m-7.7 0c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m-20.2-20.2c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m-24.5 28.4c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2m32 8.4c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2m5.8-5.9c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2m-19.2-25.1c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m20.2 20.2c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m-26-14.3c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m-5.9 5.9c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m1.8 7.2c-.3-.3-.3-.8 0-1l13.2-13.2c.3-.3.8-.3 1 0l13.2 13.2c.3.3.3.8 0 1l-13.2 13.2c-.3.3-.8.3-1 0l-13.2-13.2m-7.7-1.4c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m20.2 20.2c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2m-5.9 5.9c-.3-.3-.3-.7 0-.9l2-2c.3-.3.7-.3.9 0l2 2c.3.3.3.7 0 .9l-2 2c-.3.3-.7.3-.9 0l-2-2" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f39f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f39f.svg
index 4f6d958..6e4c9b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f39f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f39f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fbbf67" d="m64 41.676l-.927-2.548c-.007.002-.012.006-.02.009-.701.255-1.478-.107-1.734-.811-.255-.703.105-1.479.809-1.736.007-.001.014-.004.021-.007l-.927-2.546c-.006.002-.013.006-.019.008-.703.256-1.479-.107-1.736-.811-.255-.703.107-1.479.81-1.736.007-.001.014-.003.02-.006l-.926-2.547c-.007.002-.014.005-.02.008-.703.255-1.479-.107-1.733-.809-.257-.703.105-1.481.808-1.737.006-.003.014-.004.02-.006l-.926-2.547c-.007.001-.015.004-.021.006-.681.248-1.43-.085-1.708-.745-2.698.321-5.361-1.236-6.331-3.901l-37.3 13.588c1.132 3.109-.472 6.546-3.579 7.68l7.253 19.938c3.107-1.131 6.543.471 7.673 3.581l37.31-13.588c-.975-2.677.08-5.602 2.381-7.082-.204-.676.146-1.402.811-1.655"/><path fill="#f55" d="m56.56 46.713l-32.18 11.72c-1.723.627-3.636-.264-4.265-1.989l-5.7-15.675c-.628-1.726.265-3.64 1.987-4.268l32.18-11.719c1.725-.628 3.637.265 4.264 1.989l5.701 15.676c.627 1.725-.265 3.638-1.988 4.266m-39.583-8.648c-.863.315-1.308 1.271-.995 2.134l5.702 15.676c.313.86 1.269 1.307 2.13.994l32.18-11.719c.862-.315 1.309-1.271.996-2.135l-5.701-15.675c-.313-.861-1.272-1.308-2.133-.994l-32.17 11.719"/><g fill="#89664c"><path d="m30.883 43.1l-.896.327c-.079.029-.16-.01-.2-.084l-.465-1.037-.613.223.31 1.096c.019.081-.02.163-.097.192l-.898.326c-.079.029-.149-.014-.169-.096l-1.672-6.903c-.021-.081.028-.166.105-.195l1.304-.475c.078-.029.17.005.208.08l3.152 6.364c.038.075.012.154-.069.182m-2.043-1.871l-1.161-2.606-.079.026.786 2.744.454-.164"/><path d="m32.813 37.1l1.249 3.436c.248.682-.11 1.448-.791 1.697l-1.479.539c-.078.029-.161-.011-.188-.088l-2.054-5.648c-.029-.078.009-.16.086-.188l1.482-.539c.68-.249 1.445.108 1.695.791m-1.138.47c-.047-.13-.195-.198-.322-.151l-.315.114 1.387 3.811.315-.115c.126-.046.196-.193.149-.322l-1.214-3.337"/><path d="m37.05 34.3l2.055 5.647c.029.079-.008.16-.089.188l-.945.346c-.079.028-.161-.011-.189-.089l-.955-2.624.205 2.586c.004.076-.056.097-.101.036l-1.506-2.112.955 2.625c.029.079-.008.16-.088.189l-.945.346c-.08.028-.161-.01-.189-.089l-2.054-5.647c-.029-.078.009-.16.089-.189l.837-.306c.078-.029.175.016.218.078l1.886 2.757-.326-3.324c-.005-.077.038-.171.117-.199l.839-.306c.078-.029.158.009.186.087"/><path d="m41.14 39.2c.027.079-.009.161-.089.19l-.877.321c-.08.027-.161-.011-.189-.089l-2.055-5.648c-.027-.078.009-.16.089-.189l.877-.317c.081-.03.162.008.19.087l2.054 5.645"/><path d="m42.601 32.28l.319.878c.029.08-.008.16-.087.188l-.701.257 1.685 4.631c.028.078-.009.159-.088.189l-.878.318c-.068.026-.161-.01-.188-.088l-1.685-4.631-.689.253c-.078.028-.161-.008-.19-.089l-.319-.878c-.027-.078.011-.16.09-.188l2.544-.928c.077-.029.158.01.187.088"/><path d="m35.731 50.25l-.375.139c-.681.247-1.446-.111-1.694-.793l-1.659-4.561c-.248-.681.108-1.449.79-1.698l.374-.137c.682-.247 1.448.11 1.695.794l1.659 4.559c.25.682-.109 1.45-.79 1.697m-2.327-5.939l-.079.028c-.129.048-.198.197-.151.324l1.624 4.465c.046.127.195.194.322.148l.078-.028c.129-.047.198-.196.153-.324l-1.624-4.462c-.045-.128-.195-.196-.323-.151"/><path d="m38.791 42.511l2.055 5.646c.027.078-.01.159-.088.188l-.633.23c-.077.028-.188.001-.233-.059l-1.982-2.196.933 2.566c.028.079-.008.16-.088.188l-.877.32c-.081.03-.16-.01-.188-.086l-2.055-5.647c-.028-.081.008-.161.087-.19l.652-.236c.078-.028.188-.003.234.06l2.07 2.498-1.042-2.861c-.027-.079.009-.16.089-.188l.878-.32c.079-.029.161.007.188.087"/><path d="m43.83 46.07l.319.879c.029.079-.007.16-.087.188l-2.141.78c-.079.027-.159-.009-.188-.089l-2.053-5.647c-.029-.079.009-.16.087-.188l2.141-.779c.079-.029.16.009.188.089l.318.877c.03.081-.008.161-.088.191l-1.124.407.41 1.126.977-.355c.078-.03.16.008.188.088l.319.879c.028.078-.009.159-.087.188l-.977.355.483 1.332 1.124-.41c.084-.028.164.011.191.089"/></g><g opacity=".5" fill="#947151"><path d="m25.359 54.81l30.41-25.536c-1.48-1.767-1.748-4.131-.928-6.127-2.354-.099-4.527-1.582-5.383-3.933l-37.3 13.588c1.132 3.109-.472 6.546-3.579 7.68l2.335 6.419 6.01 7.171c2.535-2.13 6.31-1.799 8.435.738"/><path opacity=".5" d="m25.359 54.81l30.41-25.536c-1.48-1.767-1.748-4.131-.928-6.127-2.354-.099-4.527-1.582-5.383-3.933l-37.3 13.588c1.132 3.109-.472 6.546-3.579 7.68l2.335 6.419 6.01 7.171c2.535-2.13 6.31-1.799 8.435.738"/></g><path fill="#fbbf67" d="m52.49 16.13l-1.742-2.076c-.005.004-.009.009-.015.015-.572.479-1.426.405-1.906-.168-.48-.574-.407-1.426.167-1.908.005-.004.01-.009.016-.014l-1.741-2.075c-.005.004-.01.01-.015.013-.573.481-1.427.407-1.908-.166-.48-.574-.405-1.427.167-1.909.006-.004.012-.008.017-.013l-1.741-2.076c-.006.004-.011.009-.016.014-.573.48-1.426.406-1.905-.166-.481-.574-.407-1.428.166-1.909.005-.005.012-.008.017-.012l-1.741-2.077c-.006.004-.012.009-.017.013-.555.467-1.373.41-1.86-.116-2.427 1.224-5.461.672-7.283-1.501l-30.411 25.536c2.125 2.535 1.795 6.315-.738 8.442l13.629 16.254c2.534-2.127 6.31-1.797 8.436.739l30.411-25.536c-1.831-2.184-1.839-5.293-.184-7.471-.422-.566-.341-1.366.197-1.833"/><path fill="#f55" d="m47.22 23.412l-26.23 22.03c-1.405 1.179-3.508.996-4.688-.41l-10.713-12.779c-1.18-1.405-.996-3.511.409-4.689l26.23-22.03c1.404-1.18 3.507-.996 4.686.41l10.715 12.778c1.178 1.407.994 3.509-.411 4.69m-40.15 5.423c-.702.59-.794 1.642-.205 2.344l10.716 12.779c.589.702 1.639.794 2.342.205l26.23-22.02c.702-.591.795-1.642.206-2.346l-10.714-12.778c-.589-.702-1.643-.794-2.344-.205l-26.23 22.03"/><g fill="#89664c"><path d="m21.855 28.802l-.73.614c-.065.054-.154.045-.217-.011l-.792-.815-.499.418.664.924c.046.07.038.16-.025.215l-.732.613c-.064.055-.146.039-.191-.032l-3.931-5.914c-.048-.069-.03-.166.033-.22l1.063-.892c.063-.055.161-.054.223.004l5.138 4.901c.061.058.063.141-.004.195m-2.559-1.06l-1.982-2.053-.064.054 1.677 2.31.369-.311"/><path d="m21.617 22.502l2.348 2.8c.466.556.393 1.399-.163 1.865l-1.206 1.014c-.063.055-.154.046-.208-.019l-3.858-4.604c-.055-.064-.047-.153.016-.207l1.209-1.013c.554-.466 1.395-.392 1.862.164m-.908.831c-.088-.105-.251-.119-.354-.032l-.258.216 2.605 3.106.258-.217c.103-.086.118-.248.03-.354l-2.281-2.719"/><path d="m24.641 18.426l3.86 4.604c.054.064.047.154-.019.208l-.771.648c-.064.053-.154.044-.208-.02l-1.794-2.14 1.076 2.36c.03.07-.019.11-.082.068l-2.137-1.469 1.795 2.14c.053.063.047.153-.018.207l-.771.648c-.065.054-.154.046-.208-.019l-3.86-4.604c-.053-.063-.046-.153.019-.208l.684-.574c.063-.054.169-.045.23-.001l2.714 1.946-1.442-3.01c-.031-.07-.022-.175.042-.229l.684-.574c.064-.05.152-.042.206.022"/><path d="m30.17 21.63c.054.064.047.155-.019.21l-.715.601c-.065.054-.154.046-.208-.019l-3.86-4.604c-.054-.063-.047-.154.019-.208l.715-.601c.065-.055.155-.046.209.018l3.859 4.603"/><path d="m29.17 14.624l.6.716c.056.065.048.152-.017.207l-.571.479 3.166 3.774c.053.064.046.153-.019.209l-.715.601c-.057.048-.154.046-.208-.019l-3.166-3.774-.562.473c-.063.053-.153.047-.209-.019l-.6-.716c-.053-.063-.045-.154.019-.208l2.075-1.742c.064-.054.154-.045.207.019"/><path d="m28.857 33.868l-.306.258c-.555.465-1.397.392-1.862-.166l-3.118-3.717c-.466-.556-.394-1.399.162-1.865l.306-.258c.555-.465 1.398-.391 1.864.165l3.116 3.718c.467.555.394 1.399-.162 1.865m-4.216-4.784l-.064.054c-.104.089-.119.252-.031.355l3.052 3.64c.086.104.25.117.354.03l.064-.054c.104-.089.119-.252.033-.356l-3.051-3.638c-.089-.105-.253-.119-.357-.031"/><path d="m29.09 25.543l3.86 4.604c.054.064.046.153-.019.207l-.516.433c-.063.054-.177.066-.239.024l-2.613-1.385 1.753 2.093c.055.064.047.152-.018.206l-.716.601c-.064.056-.153.046-.205-.018l-3.86-4.603c-.055-.066-.048-.153.017-.208l.531-.446c.064-.053.177-.066.241-.024l2.799 1.641-1.956-2.333c-.055-.065-.047-.153.019-.208l.715-.602c.063-.054.153-.047.207.018"/><path d="m35.04 27.17l.601.718c.055.063.048.152-.019.206l-1.743 1.466c-.065.054-.153.046-.208-.019l-3.859-4.604c-.054-.064-.046-.153.018-.207l1.745-1.465c.064-.055.153-.047.207.019l.601.715c.055.065.047.153-.019.209l-.916.769.77.917.796-.668c.063-.055.153-.047.207.019l.601.717c.054.064.046.152-.018.206l-.797.669.911 1.086.916-.771c.064-.054.154-.045.206.018"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 41.7l-.9-2.5c0 0 0 0 0 0-.7.3-1.5-.1-1.7-.8-.3-.7.1-1.5.8-1.7l-1-2.7c0 0 0 0 0 0-.7.3-1.5-.1-1.7-.8-.3-.7.1-1.5.8-1.7l-.9-2.5c0 0 0 0 0 0-.7.3-1.5-.1-1.7-.8-.3-.7.1-1.5.8-1.7l-.9-2.5c0 0 0 0 0 0-.7.2-1.4-.1-1.7-.7-2.7.3-5.4-1.2-6.3-3.9l-37.4 13.4c1.1 3.1-.5 6.5-3.6 7.7l7.3 19.9c3.1-1.1 6.5.5 7.7 3.6l37.3-13.6c-1-2.7.1-5.6 2.4-7.1-.3-.6 0-1.4.7-1.6" fill="#fbbf67"/><path d="m56.6 46.7l-32.2 11.7c-1.7.6-3.6-.3-4.3-2l-5.7-15.7c-.6-1.7.3-3.6 2-4.3l32.2-11.7c1.7-.6 3.6.3 4.3 2l5.7 15.7c.6 1.8-.3 3.7-2 4.3m-39.6-8.6c-.9.3-1.3 1.3-1 2.1l5.7 15.7c.3.9 1.3 1.3 2.1 1l32.2-11.7c.9-.3 1.3-1.3 1-2.1l-5.7-15.7c-.3-.9-1.3-1.3-2.1-1l-32.2 11.7" fill="#f55"/><g fill="#89664c"><path d="m30.9 43.1l-.9.3c-.1 0-.2 0-.2-.1l-.5-1-.6.2.3 1.1c0 .1 0 .2-.1.2l-.9.3c-.1 0-.1 0-.2-.1l-1.7-6.9c0-.1 0-.2.1-.2l1.3-.5c.1 0 .2 0 .2.1l3.2 6.4c.1.1.1.2 0 .2m-2.1-1.9l-1.2-2.6h-.1l.8 2.7.5-.1"/><path d="m32.8 37.1l1.2 3.4c.2.7-.1 1.4-.8 1.7l-1.5.5c-.1 0-.2 0-.2-.1l-2-5.6c0-.1 0-.2.1-.2l1.5-.5c.7-.2 1.5.1 1.7.8m-1.1.5c0-.1-.2-.2-.3-.2l-.4.1 1.4 3.8.3-.1c.1 0 .2-.2.1-.3l-1.1-3.3"/><path d="m37 34.3l2.1 5.6c0 .1 0 .2-.1.2l-.9.3c-.1 0-.2 0-.2-.1l-1-2.6.2 2.6c0 .1-.1.1-.1 0l-1.5-2.1 1 2.6c0 .1 0 .2-.1.2l-.9.3c-.1 0-.2 0-.2-.1l-2.1-5.6c0-.1 0-.2.1-.2l.8-.3c.1 0 .2 0 .2.1l1.9 2.8-.3-3.3c0-.1 0-.2.1-.2l.8-.3c.1 0 .2 0 .2.1"/><path d="m41.1 39.2c0 .1 0 .2-.1.2l-.9.3c-.1 0-.2 0-.2-.1l-2-5.6c0-.1 0-.2.1-.2l.9-.3c.1 0 .2 0 .2.1l2 5.6"/><path d="m42.6 32.3l.3.9c0 .1 0 .2-.1.2l-.7.3 1.7 4.6c0 .1 0 .2-.1.2l-.9.3c-.1 0-.2 0-.2-.1l-1.6-4.7-.7.3c-.1 0-.2 0-.2-.1l-.3-.9c0-.1 0-.2.1-.2l2.5-.9c.1 0 .2 0 .2.1"/><path d="m35.7 50.3l-.4.1c-.7.2-1.4-.1-1.7-.8l-1.6-4.6c-.2-.7.1-1.4.8-1.7l.4-.1c.7-.2 1.4.1 1.7.8l1.7 4.6c.2.6-.2 1.4-.9 1.7m-2.3-6c-.2.1-.3.2-.2.4l1.6 4.5c0 .1.2.2.3.1h.1c.1 0 .2-.2.2-.3l-1.6-4.5c-.1-.2-.3-.2-.4-.2"/><path d="m38.8 42.5l2.1 5.6c0 .1 0 .2-.1.2l-.6.2c-.1 0-.2 0-.2-.1l-2-2.2.9 2.6c0 .1 0 .2-.1.2l-.9.3c-.1 0-.2 0-.2-.1l-2.1-5.6c0-.1 0-.2.1-.2l.7-.2c.1 0 .2 0 .2.1l2.1 2.5-1-2.9c0-.1 0-.2.1-.2l.9-.3c0 0 .1 0 .1.1"/><path d="m43.8 46.1l.3.9c0 .1 0 .2-.1.2l-2.1.8c-.1 0-.2 0-.2-.1l-2.1-5.6c0-.1 0-.2.1-.2l2.1-.8c.1 0 .2 0 .2.1l.3.9c0 .1 0 .2-.1.2l-1.1.4.4 1.1 1-.4c.1 0 .2 0 .2.1l.3.9c0 .1 0 .2-.1.2l-1 .4.5 1.3 1.1-.4c.2-.1.3-.1.3 0"/></g><g opacity=".5" fill="#947151"><path d="m25.4 54.8l30.4-25.5c-1.5-1.8-1.7-4.1-.9-6.1-2.4-.1-4.5-1.6-5.4-3.9l-37.3 13.5c1.1 3.1-.5 6.5-3.6 7.7l2.3 6.4 6 7.2c2.6-2.2 6.3-1.8 8.5.7"/><path d="m25.4 54.8l30.4-25.5c-1.5-1.8-1.7-4.1-.9-6.1-2.4-.1-4.5-1.6-5.4-3.9l-37.3 13.5c1.1 3.1-.5 6.5-3.6 7.7l2.3 6.4 6 7.2c2.6-2.2 6.3-1.8 8.5.7" opacity=".5"/></g><path d="m52.5 16.1l-1.7-2.1c0 0 0 0 0 0-.6.5-1.4.4-1.9-.2-.5-.6-.4-1.4.2-1.9l-1.7-2.1c0 0 0 0 0 0-.6.5-1.4.4-1.9-.2-.5-.6-.4-1.4.2-1.9l-1.7-2.1c0 0 0 0 0 0-.6.5-1.4.4-1.9-.2-.7-.4-.6-1.2-.1-1.7l-1.7-2.1c0 0 0 0 0 0-.6.5-1.4.4-1.9-.1-2.4 1.2-5.4.7-7.3-1.5l-30.4 25.5c2.2 2.6 1.8 6.4-.7 8.5l13.6 16.3c2.5-2.1 6.3-1.8 8.4.7l30.4-25.5c-1.8-2.2-1.8-5.3-.2-7.5-.3-.6-.2-1.4.3-1.9" fill="#fbbf67"/><path d="m47.2 23.4l-26.2 22c-1.4 1.2-3.5 1-4.7-.4l-10.7-12.8c-1.2-1.4-1-3.5.4-4.7l26.2-22c1.4-1.2 3.5-1 4.7.4l10.7 12.8c1.2 1.4 1 3.5-.4 4.7m-40.1 5.4c-.7.6-.8 1.6-.2 2.3l10.7 12.9c.6.7 1.6.8 2.3.2l26.2-22c.7-.6.8-1.6.2-2.3l-10.7-12.9c-.6-.7-1.6-.8-2.3-.2l-26.2 22" fill="#f55"/><g fill="#89664c"><path d="m21.9 28.8l-.7.6c-.1.1-.2 0-.2 0l-.8-.8-.6.4.7.9c0 .1 0 .2 0 .2l-.7.6c-.1.1-.1 0-.2 0l-3.9-5.9c0-.1 0-.2 0-.2l1.1-.9c.1-.1.2-.1.2 0l5.1 4.9c0 .1 0 .1 0 .2m-2.6-1.1l-2-2.1-.1.1 1.7 2.3.4-.3"/><path d="m21.6 22.5l2.3 2.8c.5.6.4 1.4-.2 1.9l-1.2 1c-.1.1-.2 0-.2 0l-3.9-4.6c-.1-.1 0-.2 0-.2l1.2-1c.7-.5 1.5-.5 2 .1m-.9.8c-.1-.1-.3-.1-.4 0l-.3.2 2.6 3.1.3-.2c.1-.1.1-.2 0-.4l-2.2-2.7"/><path d="m24.6 18.4l3.9 4.6c.1.1 0 .2 0 .2l-.8.6c-.1.1-.2 0-.2 0l-1.8-2.1 1.1 2.4c0 .1 0 .1-.1.1l-2.1-1.5 1.8 2.1c.1.1 0 .2 0 .2l-.8.6c-.1.1-.2 0-.2 0l-3.9-4.6c-.1-.1 0-.2 0-.2l.7-.6c.1-.1.2 0 .2 0l2.7 1.9-1.4-3c0-.1 0-.2 0-.2l.7-.6c.1.1.2.1.2.1"/><path d="m30.2 21.6c.1.1 0 .2 0 .2l-.7.6c-.1.1-.2 0-.2 0l-3.9-4.6c-.1-.1 0-.2 0-.2l.7-.6c.1-.1.2 0 .2 0l3.9 4.6"/><path d="m29.2 14.6l.6.7c.1.1 0 .2 0 .2l-.6.5 3.2 3.8c.1.1 0 .2 0 .2l-.7.6c-.1 0-.2 0-.2 0l-3.2-3.8-.6.5c-.1.1-.2 0-.2 0l-.6-.7c-.1-.1 0-.2 0-.2l2.1-1.7c0-.1.1-.1.2-.1"/><path d="m28.9 33.9l-.3.3c-.6.5-1.4.4-1.9-.2l-3.1-3.7c-.5-.6-.4-1.4.2-1.9l.3-.3c.6-.5 1.4-.4 1.9.2l3 3.7c.5.6.4 1.4-.1 1.9m-4.3-4.8c-.2.1-.2.3-.1.4l3.1 3.6c.1.1.2.1.4 0l.1-.1c.1-.1.1-.3 0-.4l-3.1-3.5c-.1-.1-.3-.1-.4 0"/><path d="m29.1 25.5l3.9 4.6c.1.1 0 .2 0 .2l-.5.4c-.1.1-.2.1-.2 0l-2.6-1.4 1.8 2.1c.1.1 0 .2 0 .2l-.7.6c-.1.1-.2 0-.2 0l-3.9-4.6c-.1-.1 0-.2 0-.2l.5-.4c.1-.1.2-.1.2 0l2.8 1.6-2-2.3c-.1-.1 0-.2 0-.2l.7-.6c0 0 .1 0 .2 0"/><path d="m35 27.2l.6.7c.1.1 0 .2 0 .2l-1.7 1.5c-.1.1-.2 0-.2 0l-3.9-4.6c-.1-.1 0-.2 0-.2l1.7-1.5c.1-.1.2 0 .2 0l.6.7c.1.1 0 .2 0 .2l-.9.8.8.9.8-.7c.1-.1.2 0 .2 0l.6.7c.1.1 0 .2 0 .2l-.8.7.9 1.1.9-.8c.1 0 .2 0 .2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a0.svg
index 744bfbd..1c1feb0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m29.5 4.813l-.31-.75v-.938l.31-1.125h-4.31l.313.75v.938l-.313 1.125.313.75v.937l-.313 1.125.313.75v.938l-.313 1.125.313.75v.942l-.313 1.12.313.75v.938l-.313 1.122.313.753v.937l-.313 1.125.313.75v.938l-.313 1.125.313.749v.938l-.313 1.125.313.75v.94l-.313 1.123.313.747v.94l-.313 1.13.313.745v.938l-.313 1.125.313.75v.937l-.313 1.125.313.75v.938l-.313 1.125.313.747v.94l-.313 1.13.313.75v.93l-.313 1.13.313.748v.937l-.313 1.125.313.75v.938l-.313 1.125.313.75v.937l-.313 1.124.313.746v.94l-.313 1.13.313.75v.93l-.313 1.13.313.749v.938l-.313 1.123.313.94h3.687l.31-.94-.31-.75v-.93l.31-1.13-.31-.75v-.94l.31-1.12-.31-.752v-.938l.31-1.126-.31-.748v-.938l.31-1.125-.31-.753v-.93l.31-1.13-.31-.75v-.94l.31-1.12-.31-.75v-.94l.31-1.12-.31-.755v-.937l.31-1.125-.31-.75v-.938l.31-1.125-.31-.75v-.94l.31-1.122-.31-.748v-.94l.31-1.12-.31-.755v-.937l.31-1.125-.31-.75v-.938l.31-1.125-.31-.75v-.937l.31-1.125-.31-.75v-.938l.31-1.125-.31-.745v-.942l.31-1.128-.31-.747v-.938l.31-1.125-.31-.75v-.937l.31-1.125-.31-.75v-.938l.31-1.125-.31-.75v-.937z"/><path fill="#181f27" d="m44.609 28.21c.303-2.38 1.366-6.452 5.056-9.287 4.651-3.574 9.318-3.237 9.736-7.48 0 0 6.427 7.678-.936 13.335-5.313 4.082-8.743 1.463-10.776 3.271-.918-.136-1.946-.107-3.08.161"/><path fill="#4e697c" d="m52.37 23.714c-1.348.181-3.133.613-4.488 1.475 1.099-1.347 2.81-2.423 4.072-3.074 2.584-1.453 5.656-2.496 7.125-5.313-1.591 2.665-4.669 3.715-7.333 4.933-1.324.681-3.01 1.616-4.229 2.854.875-2.062 2.473-3.824 4.409-4.931 1.655-.945 3.352-1.847 4.938-2.903 1.28-.853 2.383-1.873 2.716-3.428-.403 1.523-1.513 2.479-2.82 3.277-1.702 1.039-3.53 1.845-5.268 2.819-2.882 1.543-5.076 4.521-5.482 7.803-.046.224-.075.453-.08.691 0 .009-.004.019-.006.028.002 0 .002 0 .004 0 0 .01-.004.02-.004.029.002 0 .002 0 .002 0 0 .009-.002.016-.002.025.15-.009.3-.017.45-.025.14.009.28.018.42.027 0 0 0 0-.002-.002.32-2.63 3.911-3.496 6.02-3.922 2.536-.538 5.02-1.787 6.561-3.94-1.692 2.143-4.366 3.224-7.01 3.577"/><path fill="#d4daf4" d="m40.32 39.26c0 0 4.07 5.993 9.571 5.993 5.502 0 5.456.205 6.405 4.852.95 4.646 3.579 8.07 3.579 8.07l2.124-4.482c0 0-2.343-1.204-2.613-6.984-.271-5.782-2.325-4.929-4.974-5.993-2.653-1.063-4.74-5.328-4.74-5.328s3.859-10.05-7.04-11.767c-10.901-1.713-11.864 7.626-22.06-1.798-10.2-9.423-15.889-5.097-15.889-5.097l1.76 1.278c0 0-1.53 8.498-3.487 9.97-2.347 1.763.146 3.933 2.039 4.01.161.007 1.934-2.611 2.377-2.435 1.187.47-.372 2.461-.063 2.609.837.399 1.557-1.013 1.557-2.272 0 0 2.817-1.681 3.86-4.93 0 0-1.082 7.788 3.617 11.814 0 0-.696 2.218-1.798 2.747-7.782 3.735-7.143 3.813-7.143 9.739 0 5.925-1.557 8.151-1.557 8.151s.841.797 4.075.797c0 0 1.31-4.254.977-9.219-.333-4.966 4.437-5.074 6.779-5.074 3.751 0 5.716-2.863 5.716-2.863s4.814 4.614 16.931-1.789"/><g fill="#7e93a4"><path d="m40.32 39.26c0 0 4.07 5.993 9.571 5.993 1.894 0 3.129.025 3.976.245.069.425.118.917.145 1.49.214 4.626 2.091 5.588 2.091 5.588l-1.699 3.589c0 0-2.103-2.741-2.86-6.457-.762-3.718-.725-3.884-5.127-3.884-3.729 0-6.638-4.511-7.436-5.888.435-.207.881-.435 1.339-.676"/><path d="m12.69 44.9c1.52-.954 3.646-.989 4.982-.989 3.751 0 5.716-2.863 5.716-2.863s.469.448 1.481.871c-.615.998-2.04 2.835-4.228 2.835-1.875 0-5.691.086-5.424 4.056.265 3.973-.782 7.374-.782 7.374-2.586 0-3.261-.635-3.261-.635s1.248-1.78 1.248-6.521c0-2.024-.098-3.209.268-4.128"/></g><g fill="#3e4347"><path d="m8.559 21.952c0-.414-.509-.751-1.131-.751s-1.124.337-1.124.751c0 .413.501.75 1.124.75s1.131-.337 1.131-.75"/><path d="m3.091 30.02c.22.353.593.531.837.392.242-.137.258-.535.04-.89-.218-.354-.589-.531-.833-.392-.244.137-.261.537-.044.89"/></g><g fill="#181f27"><path d="m14.895 54.16c-.22 1.245-.459 2.02-.459 2.02-2.586 0-3.261-.635-3.261-.635s.369-.523.704-1.758c1.381.443 2.425.438 3.02.373"/><path d="m54.865 51.03c.581 1.231 1.238 1.574 1.238 1.574l-1.699 3.583c0 0-.808-1.053-1.605-2.742 1.051-.65 1.717-1.716 2.066-2.415"/><path d="m10.491 55.677c-.276 1.555-.574 2.527-.574 2.527-3.234 0-4.075-.797-4.075-.797s.459-.653.875-2.199c1.73.557 3.036.553 3.774.469"/><path d="m60.45 51.727c.728 1.544 1.548 1.966 1.548 1.966l-2.123 4.481c0 0-1.012-1.318-2.01-3.43 1.31-.81 2.145-2.147 2.582-3.02"/></g><g fill="#6c3c78"><path d="m12.229 26.21l.851-.28-1.95-5.377-.846.281z"/><path d="m10.694 21.884l.894.068.602-7.345-.896-.068z"/><path d="m6.997 29.686l.83.324 3.852-9.05-.83-.325z"/><path d="m11.514 21.358l.092-.855-5.812-.575-.093.855z"/></g><ellipse fill="#a35cff" cx="11.03" cy="21.311" rx="1.381" ry="1.323"/><path fill="#181f27" d="m5.583 17.383c-1.441.081-2.307 2.501-.615 3.342s5.499-1.181 5.826-1.943c.326-.762-1.958.732-4.354-.778l-.857-.621"/><path fill="#a35cff" d="m14.627 36.06h35.975v-2.89h-36.953z"/><path fill="#6c3c78" d="m13.878 33.835l12.08-4.324-1.055-2.708-12.08 4.327z"/><path fill="#a35cff" d="m26.294 48.18c.15.501.606 1.199 1.968 1.635.791.255 1.822.394 2.895.394 2.078 0 4.516-.509 5.133-1.93.257-.604.077-1.282-.544-2.02-.362-.437-.9-.923-1.601-1.45-.743-.559-1.502-1.039-1.961-1.317v-3.303h-1.749v3.309c-.445.274-1.175.743-1.898 1.293-.685.519-1.22 1-1.589 1.439-.61.715-.824 1.349-.654 1.948m1.698-.416c.035-.115.271-.659 1.8-1.793.571-.421 1.145-.791 1.525-1.028.374.232.943.591 1.512 1 1.456 1.053 1.757 1.595 1.818 1.743-.103.13-.39.343-1.014.527-.684.209-1.563.322-2.475.322-.892 0-1.725-.107-2.346-.308-.511-.165-.76-.358-.82-.466"/><path fill="#6c3c78" d="m37.23 22.702v13.07c0 3.133-2.649 5.676-5.921 5.676-3.278 0-5.929-2.543-5.929-5.676v-11.419c4.615 1.842 7.606-.191 11.85-1.65"/><path fill="#a35cff" d="m28.94 35.771v-10.687c1.653.007 3.162-.445 4.739-1.038v11.725c0 1.25-1.063 2.269-2.366 2.269-1.313-.001-2.373-1.019-2.373-2.269"/><path fill="#181f27" d="m7.46 15.735c.063-1.694 1.529-4.04 8.01-4.296 6.298-.249.322 1.996-.286 3.111 0 0 4.12-.822 8.238 1.639 2.472 1.476-1.85 1.172-1.876 2.736 0 0 3.71.765 4.159 3.047.198 1-1.396-.363-1.886.955 0 0 5.835 1.106 2.753 5.277-2.508 3.395-4.997 2.488-5.567 2.208-.57-.278.724-2.84.561-3.677-.163-.835-.571-1.114-1.346.36-.229.436-1.611-1.772-.591-5.203 0 0-1.147.887-2.172-1.324 0 0-1.958-.132-2.217-2.432 0 0-1.177-.015-2.6-1.348.001.002-5.211-.286-5.183-1.053"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m26 2h4v60h-4z"/><path d="m44.6 28.7c.3-2.4 1.4-6.5 5.1-9.3 4.7-3.6 9.3-3.2 9.7-7.5 0 0 6.4 7.7-.9 13.3-5.3 4.1-8.7 1.5-10.8 3.3l-3.1.2" fill="#181f27"/><path d="m40.3 39.8c0 0 4.1 6 9.6 6 5.5 0 5.5.2 6.4 4.9 1 4.6 3.6 8.1 3.6 8.1l2.1-4.5c0 0-2.3-1.2-2.6-7-.3-5.8-2.3-4.9-5-6-2.7-1.1-4.7-5.3-4.7-5.3s3.9-10.1-7-11.8c-10.9-1.7-11.9 7.6-22.1-1.8-10.2-9.4-15.9-5.1-15.9-5.1l1.8 1.3c0 0-1.5 8.5-3.5 10-2.3 1.8.1 3.9 2 4 .2 0 1.9-2.6 2.4-2.4 1.2.5-.4 2.5-.1 2.6.8.4 1.6-1 1.6-2.3 0 0 2.8-1.7 3.9-4.9 0 0-1.1 7.8 3.6 11.8 0 0-.7 2.2-1.8 2.7-7.8 3.7-7.1 3.8-7.1 9.7 0 5.9-1.6 8.2-1.6 8.2s.8.8 4.1.8c0 0 1.3-4.3 1-9.2-.3-5 4.4-5.1 6.8-5.1 3.8 0 5.7-2.9 5.7-2.9s4.7 4.6 16.8-1.8" fill="#d4daf4"/><g fill="#7e93a4"><path d="m40.3 39.8c0 0 4.1 6 9.6 6 1.9 0 3.1 0 4 .2.1.4.1.9.1 1.5.2 4.6 2.1 5.6 2.1 5.6l-1.7 3.6c0 0-2.1-2.7-2.9-6.5-.8-3.7-.7-3.9-5.1-3.9-3.7 0-6.6-4.5-7.4-5.9.4-.2.9-.4 1.3-.6"/><path d="m12.7 45.4c1.5-1 3.6-1 5-1 3.8 0 5.7-2.9 5.7-2.9s.5.4 1.5.9c-.6 1-2 2.8-4.2 2.8-1.9 0-5.7.1-5.4 4.1.3 4-.8 7.4-.8 7.4-2.6 0-3.3-.6-3.3-.6s1.2-1.8 1.2-6.5c0-2.1-.1-3.3.3-4.2"/></g><g fill="#181f27"><path d="m8.6 22.5c0-.4-.5-.8-1.1-.8-.6 0-1.1.3-1.1.8s.5.8 1.1.8c.6-.1 1.1-.4 1.1-.8"/><path d="m3.1 30.5c.2.4.6.5.8.4s.3-.5 0-.9c-.2-.4-.6-.5-.8-.4-.2.2-.2.6 0 .9"/><path d="m14.9 54.7c-.2 1.2-.5 2-.5 2-2.6 0-3.3-.6-3.3-.6s.4-.5.7-1.8c1.5.4 2.5.4 3.1.4"/><path d="m54.9 51.5c.6 1.2 1.2 1.6 1.2 1.6l-1.7 3.6c0 0-.8-1.1-1.6-2.7 1-.7 1.7-1.8 2.1-2.5"/><path d="m10.5 56.2c-.3 1.6-.6 2.5-.6 2.5-3.2 0-4.1-.8-4.1-.8s.5-.7.9-2.2c1.7.6 3.1.6 3.8.5"/><path d="m60.5 52.2c.7 1.5 1.5 2 1.5 2l-2.1 4.5c0 0-1-1.3-2-3.4 1.3-.9 2.1-2.2 2.6-3.1"/></g><path fill="#6c3c78" d="m13.1 26.4l-1.5-4.1.6-7.2-.9-.1-.5 5.9-5-.5-.1.9 4.8.6-3.5 8.3.8.3 3.1-7.3 1.3 3.5z"/><ellipse cx="11" cy="21.8" rx="1.4" ry="1.3" fill="#a35cff"/><path d="m5.6 17.9c-1.5.1-2.3 2.5-.6 3.3 1.7.8 5.5-1.2 5.8-1.9.3-.8-2 .7-4.4-.8l-.8-.6" fill="#181f27"/><path fill="#a35cff" d="m14.6 36.6h36v-2.9h-37z"/><path fill="#6c3c78" d="m13.9 34.3l12.1-4.3-1.1-2.7-12.1 4.3z"/><path d="m26.3 48.7c2.2 2.3 7.7 2.2 10 0 1.4-1.3-2-3.5-4.1-4.7v-3.3h-1.7v3.3c-2.2 1.3-5.6 3.3-4.2 4.7m1.7-.4c-.4-.5 2.9-2.6 3.3-2.8.4.2 3.7 2.2 3.3 2.7-.5 1-6 1-6.6.1" fill="#a35cff"/><path d="m37.2 23.2v13.1c0 3.1-2.7 5.7-5.9 5.7-3.3 0-5.9-2.5-5.9-5.7v-11.4c4.6 1.8 7.6-.2 11.8-1.7" fill="#6c3c78"/><path d="m28.9 36.3v-10.7c1.7 0 3.2-.4 4.7-1v11.7c0 1.2-1.1 2.3-2.4 2.3-1.2-.1-2.3-1.1-2.3-2.3" fill="#a35cff"/><path d="m7.5 16.2c-.5-1.6 1.5-4 8-4.3 6.3-.2.3 2-.3 3.1 0 0 4.1-.8 8.2 1.6 2.5 1.5-1.9 1.2-1.9 2.7 0 0 3.7.8 4.2 3 .2 1-1.4-.4-1.9 1 0 0 5.8 1.1 2.8 5.3-2.5 3.4-5 2.5-5.6 2.2-.6-.3.7-2.8.6-3.7-.2-.8-.6-1.1-1.3.4-.2.4-1.6-1.8-.6-5.2 0 0-7.9.4-6.6-3.4.9-2.9-5.1-.9-5.6-2.7" fill="#181f27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a1.svg
index 9e3fdd2..72c71cd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="0" d="m8 26h48v2h-48z" fill="#d0d0d0"/></defs><path fill="#d0d0d0" d="m32 2c-13.807 0-25 11.193-25 25s11.193 25 25 25 25-11.193 25-25-11.193-25-25-25m0 47c-12.15 0-22-9.85-22-22s9.85-22 22-22 22 9.85 22 22-9.85 22-22 22"/><use xlink:href="#0"/><path fill="#d0d0d0" d="m31 3h2v48h-2z"/><use transform="matrix(.7071.7071-.7071.7071 28.465-14.719)" xlink:href="#0"/><use transform="matrix(-.7071.7071-.7071-.7071 73.72 23.465)" xlink:href="#0"/><circle fill="#3e4347" cx="31.979" cy="27.02" r="8.218"/><circle fill="#94989b" cx="31.979" cy="27.02" r="5.506"/><path fill="#ed4c5c" d="m34.896 2.779h-2.118c0-.427-.348-.779-.778-.779s-.778.352-.778.779h-2.118c-1.462 0-2.648 1.188-2.648 2.645v5.791c0 1.459 1.187 2.643 2.648 2.643h5.793c1.459 0 2.648-1.184 2.648-2.643v-5.791c0-1.457-1.19-2.645-2.649-2.645m1.091 5.539h-7.975v-2.894c0-.6.489-1.088 1.091-1.088h5.793c.602 0 1.091.488 1.091 1.088v2.894"/><path fill="#3e4347" d="m26.455 9.875h11.09v1.557h-11.09z"/><path fill="#ed4c5c" d="m34.896 50.92h-2.118c0-.43-.349-.777-.778-.777s-.778.348-.778.777h-2.118c-1.462 0-2.648 1.186-2.648 2.645v5.789c0 1.459 1.187 2.646 2.648 2.646h5.793c1.459 0 2.648-1.188 2.648-2.646v-5.789c0-1.46-1.19-2.645-2.649-2.645m1.091 5.541h-7.975v-2.896c0-.6.489-1.088 1.091-1.088h5.793c.602 0 1.091.488 1.091 1.088v2.896"/><path fill="#3e4347" d="m26.455 58.02h11.09v1.555h-11.09z"/><path fill="#f2b200" d="m10.441 26.85h-2.118c0-.43-.349-.779-.778-.779s-.778.35-.778.779h-2.119c-1.461 0-2.648 1.187-2.648 2.646v5.791c0 1.457 1.187 2.643 2.648 2.643h5.793c1.459 0 2.648-1.186 2.648-2.643v-5.791c.001-1.459-1.189-2.646-2.648-2.646m1.091 5.541h-7.974v-2.895c0-.602.489-1.088 1.091-1.088h5.793c.602 0 1.091.486 1.091 1.088v2.895"/><path fill="#3e4347" d="m2 33.947h11.09v1.555h-11.09z"/><path fill="#42ade2" d="m59.35 26.85h-2.118c0-.43-.349-.779-.778-.779s-.778.35-.778.779h-2.118c-1.462 0-2.648 1.188-2.648 2.646v5.791c0 1.457 1.187 2.643 2.648 2.643h5.793c1.462 0 2.648-1.186 2.648-2.643v-5.791c-.001-1.459-1.188-2.646-2.649-2.646m1.09 5.541h-7.975v-2.895c0-.602.489-1.088 1.091-1.088h5.793c.602 0 1.091.486 1.091 1.088v2.895"/><path fill="#3e4347" d="m50.91 33.947h11.09v1.555h-11.09z"/><path fill="#42ade2" d="m17.864 9.83h-2.119c0-.428-.349-.779-.778-.777-.43-.002-.778.35-.778.777h-2.119c-1.461 0-2.648 1.186-2.648 2.645v5.791c0 1.459 1.188 2.643 2.649 2.643h5.792c1.46 0 2.648-1.184 2.648-2.643v-5.791c.001-1.459-1.189-2.645-2.647-2.645m1.09 5.539h-7.975v-2.895c0-.6.49-1.088 1.092-1.088h5.792c.602 0 1.091.488 1.091 1.088v2.895"/><path fill="#3e4347" d="m9.422 16.926h11.09v1.557h-11.09z"/><path fill="#f2b200" d="m51.929 43.869l-2.117.002c0-.432-.349-.779-.778-.777-.43-.002-.779.346-.779.777l-2.117-.002c-1.462 0-2.648 1.186-2.648 2.646v5.789c0 1.457 1.187 2.645 2.648 2.645h5.792c1.459.002 2.649-1.188 2.649-2.645v-5.789c0-1.46-1.19-2.646-2.65-2.646m1.092 5.541h-7.977v-2.895c0-.602.49-1.09 1.092-1.09h5.792c.603 0 1.092.488 1.092 1.09l.001 2.895"/><path fill="#3e4347" d="m43.488 50.967h11.09v1.555h-11.09z"/><path fill="#83bf4f" d="m17.604 44.13h-2.118c0-.432-.349-.777-.777-.779-.431 0-.779.348-.779.779h-2.117c-1.462 0-2.649 1.186-2.649 2.645v5.791c0 1.459 1.188 2.643 2.649 2.643h5.792c1.459 0 2.648-1.184 2.648-2.643v-5.791c-.001-1.46-1.19-2.645-2.649-2.645m1.09 5.541l-7.974-.002v-2.895c0-.6.49-1.088 1.092-1.088h5.792c.602 0 1.091.488 1.091 1.088v2.897z"/><path fill="#3e4347" d="m9.163 51.23h11.09v1.557h-11.09z"/><path fill="#83bf4f" d="m52.19 9.57h-2.118c.001-.43-.348-.777-.778-.777s-.778.348-.778.777h-2.118c-1.461 0-2.649 1.188-2.649 2.646v5.789c0 1.459 1.188 2.645 2.65 2.645h5.792c1.462-.002 2.649-1.186 2.649-2.645v-5.791c0-1.456-1.188-2.644-2.65-2.644m1.092 5.539l-7.976.002v-2.895c0-.602.489-1.09 1.091-1.09h5.793c.602 0 1.092.488 1.092 1.09v2.893"/><path fill="#3e4347" d="m43.746 16.666h11.09v1.557h-11.09z"/><g fill="#ed4c5c"><circle cx="31.979" cy="27.02" r="2.753"/><path d="m32.98 26.35l-1.087.618-.895-.509-20.348 37.541h2.594l18.776-34.78 18.777 34.78h2.593z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m32 2c-13.8 0-25 11.2-25 25s11.2 25 25 25 25-11.2 25-25-11.2-25-25-25m0 47c-12.1 0-22-9.8-22-22s9.9-22 22-22 22 9.9 22 22-9.8 22-22 22" fill="#d0d0d0"/><path fill="#d0d0d0" d="m8 26h48v2h-48z" id="0"/><path fill="#d0d0d0" d="m31 3h2v48h-2z" id="1"/><use transform="matrix(.7071-.7071.7071.7071-9.719 30.5354)" xlink:href="#1"/><use transform="matrix(.7071-.7071.7071.7071-9.7192 30.5358)" xlink:href="#0"/><circle cx="32" cy="27" r="8.2" fill="#3e4347"/><circle cx="32" cy="27" r="5.5" fill="#94989b"/><path d="m34.9 2.8h-2.1c0-.4-.4-.8-.8-.8s-.8.4-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c0-1.4-1.1-2.6-2.6-2.6m1.1 5.5h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#ed4c5c"/><path fill="#3e4347" d="m26.5 9.9h11.1v1.6h-11.1z"/><path d="m34.9 50.9h-2.1c0-.4-.3-.8-.8-.8s-.8.3-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c0-1.4-1.1-2.6-2.6-2.6m1.1 5.6h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#ed4c5c"/><path fill="#3e4347" d="m26.5 58h11.1v1.6h-11.1z"/><path d="m10.4 26.9h-2.1c0-.4-.3-.8-.8-.8s-.8.4-.8.8h-2.1c-1.4 0-2.6 1.1-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c.1-1.5-1.1-2.6-2.6-2.6m1.1 5.5h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#f2b200"/><path fill="#3e4347" d="m2 33.9h11.1v1.6h-11.1z"/><path d="m59.4 26.9h-2.1c0-.4-.3-.8-.8-.8s-.8.4-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c0-1.5-1.2-2.6-2.6-2.6m1 5.5h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#42ade2"/><path fill="#3e4347" d="m50.9 33.9h11.1v1.6h-11.1z"/><path d="m17.9 9.8h-2.1c0-.4-.3-.8-.8-.8-.4 0-.8.4-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c0-1.4-1.2-2.6-2.6-2.6m1.1 5.6h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1 0 0 0 2.9 0 2.9" fill="#42ade2"/><path fill="#3e4347" d="m9.4 16.9h11.1v1.6h-11.1z"/><path d="m51.9 43.9h-2.1c0-.4-.3-.8-.8-.8-.4 0-.8.3-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c.1-1.4-1.1-2.6-2.6-2.6m1.1 5.5h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#f2b200"/><path fill="#3e4347" d="m43.5 51h11.1v1.6h-11.1z"/><path d="m17.6 44.1h-2.1c0-.4-.3-.8-.8-.8-.4 0-.8.3-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.6 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c.1-1.4-1.1-2.6-2.6-2.6m1.1 5.6h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#83bf4f"/><path fill="#3e4347" d="m9.2 51.2h11.1v1.6h-11.1z"/><path d="m52.2 9.6h-2.1c0-.4-.3-.8-.8-.8s-.8.3-.8.8h-2.1c-1.5 0-2.6 1.2-2.6 2.6v5.8c0 1.5 1.2 2.6 2.7 2.6h5.8c1.5 0 2.6-1.2 2.6-2.6v-5.8c-.1-1.4-1.2-2.6-2.7-2.6m1.1 5.5h-8v-2.9c0-.6.5-1.1 1.1-1.1h5.8c.6 0 1.1.5 1.1 1.1v2.9" fill="#83bf4f"/><path fill="#3e4347" d="m43.7 16.7h11.1v1.6h-11.1z"/><g fill="#ed4c5c"><circle cx="32" cy="27" r="2.8"/><path d="m33 26.4l-1.1.6-.9-.5-20.4 37.5h2.6l18.8-34.8 18.8 34.8h2.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a2.svg
index 6d7b56e..e8efa01 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#870014"><path d="m40 32.544h4v31.456h-4z"/><path d="m28 64h-4v-21.456l4-1z"/><path d="m8 52.54h4v11.456h-4z"/><path d="m56 32.544h4v31.456h-4z"/></g><path fill="#ed4c5c" d="m38.26 32.515c-.42.139-.84.289-1.26.437-1.103.375-2.191.769-3.262 1.185-5.317 2.083-10.55 4.682-15.622 7.799-.308.192-.606.395-.918.59-1.052.661-2.082 1.333-3.098 2.02-5.02 3.435-9.684 7.233-14.1 11.214v8.181c14.377-13.52 34.483-28.675 64-29.772v-6.02c-9.507.304-18.01 1.868-25.74 4.37"/><g fill="#94989b"><path d="m37 32.951c-1.09.381-2.181.758-3.262 1.185 1.071-.416 2.159-.81 3.262-1.185"/><path d="m17.198 42.524c.312-.195.61-.397.918-.59-.032.021-.07.038-.103.061-.28.17-.534.356-.815.529"/></g><path transform="matrix(-.8908.4544-.4544-.8908 44.898 45.648)" fill="#fed0ac" d="m15.15 26.839h3.621v2.761h-3.621z"/><path fill="#384044" d="m12.865 30.355l2.504-1.278c.258.507 1.191.549 2.082.094.887-.454 1.401-1.232 1.144-1.738l2.502-1.279 3.737 8.216-7.506 3.83-4.463-7.845"/><path fill="#594640" d="m6.851 22.1c.55 1.079 1.811 3.184 1.811 3.184l10.968-5.57c0 0-.833-2.352-1.383-3.429-2.401-4.705-13.797 1.112-11.396 5.815"/><path fill="#fed0ac" d="m10.245 19.962c4.563-2.328 5.28-4.29 7.214-.522 0 0 1.105-1.816 2.104.143.383.748.389 1.519-.62 2.115 1.146 2.243.995 3.441-2.345 5.804-2.676 1.892-6.04 1.531-7.416-1.159-2.687-5.262-1.487-5.078 1.063-6.381"/><g fill="#594640"><path d="m11.354 26.483c.449.877 1.996 1.016 3.44.278 1.443-.737 2.239-2.07 1.792-2.948 0 0-1.351.787-2.576 1.412-1.224.626-2.656 1.258-2.656 1.258"/><path d="m14.334 21.69c.244.479.846.662 1.34.412.497-.256.7-.85.458-1.33-.245-.479-.844-.659-1.343-.406-.492.253-.701.845-.455 1.324"/><path d="m9.148 24.339c.244.478.846.662 1.342.407.494-.251.702-.848.458-1.326-.247-.48-.848-.659-1.343-.407-.497.255-.701.843-.457 1.326"/></g><path fill="#384044" d="m6.02 25.804l7.833 4.368c1.231.687.38 2.328-.855 1.641l-7.833-4.367.855-1.642"/><path fill="#fed0ac" d="m6.02 25.804c-1.486-.829-1.762-.506-1.995-.052-.239.452-.345.865 1.14 1.693l.855-1.641"/><path d="m31.344 33.5l-.441-1.17 8.593-3.21.446 1.18z"/><path d="m15.977 44.44c.536 1.039.121 2.318-.916 2.854-1.044.531-2.321.118-2.853-.924-.537-1.039-.121-2.317.92-2.848 1.046-.532 2.32-.124 2.849.918"/><path d="m30.798 36.817c.536 1.04.121 2.316-.919 2.856-1.043.53-2.319.115-2.85-.927-.537-1.038-.121-2.316.921-2.848 1.042-.527 2.319-.121 2.848.919"/><path d="m24.642 27.895c0 0-1.467.749-.72 3.313.748 2.563.748 2.563.748 2.563l2.355-1.205-2.383-4.671"/><path fill="#83bf4f" d="m26.578 25.515l-2.532 1.293 2.183 4.271c.418.822.099 1.83-.729 2.249l-9.356 4.785c-.821.42-1.824.093-2.245-.726l-2.186-4.269-3.696 1.891c-.655.34-.918 1.141-.581 1.798l.444 10.05c.34.66 1.144.919 1.8.583l22.284-11.398c.659-.337.916-1.146.58-1.802l-4.166-8.146c-.339-.656-1.146-.915-1.8-.581"/><path d="m36.652 30.811c-.223-.679-.957-1.051-1.639-.825-.679.224-1.054.953-.829 1.631.226.686.958 1.057 1.64.833.682-.226 1.051-.96.828-1.639"/><path fill="#384044" d="m21.429 17.937l-1.059 8.908c-.169 1.399 1.663 1.672 1.829.27l1.057-8.905-1.827-.273"/><g fill="#fed0ac"><path d="m21.429 17.937c.199-1.689.622-1.723 1.126-1.647.507.072.907.229.701 1.92l-1.827-.273"/><path transform="matrix(-.9867.1628-.1628-.9867 102.36 26.391)" d="m48.29 16.01h3.624v2.765h-3.624z"/></g><path fill="#89664c" d="m45.545 18.18l2.772-.458c.093.56.969.885 1.957.722.984-.162 1.713-.75 1.619-1.31l2.772-.455 1.064 8.96-8.317 1.367-1.867-8.826"/><path fill="#594640" d="m42.32 8.485c.197 1.195.757 3.583.757 3.583l12.143-1.975c0 0-.078-2.491-.274-3.688-.861-5.208-13.482-3.129-12.626 2.08"/><path fill="#fed0ac" d="m46.21 7.479c5.056-.832 6.335-2.48 7.03 1.696 0 0 1.604-1.397 1.961.773.137.829-.092 1.563-1.231 1.829.406 2.482-.104 3.579-4 4.814-3.124.989-6.221-.378-6.711-3.358-.961-5.829.125-5.288 2.95-5.754"/><g fill="#594640"><path d="m45.28 14.03c.16.971 1.592 1.574 3.19 1.311s2.762-1.292 2.603-2.265c0 0-1.526.339-2.882.562-1.355.224-2.911.392-2.911.392"/><ellipse transform="matrix(-.9867.1625-.1625-.9867 102.13 12.06)" cx="50.574" cy="10.207" rx="1.01" ry=".975"/><ellipse transform="matrix(-.9868.162-.162-.9868 90.87 14.894)" cx="44.83" cy="11.153" rx="1.01" ry=".975"/></g><path fill="#89664c" d="m40.4 11.762l6.137 6.541c.964 1.028-.346 2.334-1.313 1.302l-6.135-6.54 1.311-1.303"/><path fill="#fed0ac" d="m40.4 11.762c-1.162-1.239-1.522-1.018-1.885-.657-.365.359-.591.72.574 1.96l1.311-1.303"/><path d="m44.23 32.546c.194 1.153-.589 2.245-1.741 2.441-1.154.188-2.246-.595-2.434-1.747-.197-1.153.588-2.247 1.74-2.435 1.159-.185 2.248.589 2.435 1.741"/><path d="m60.665 29.786c.195 1.153-.59 2.242-1.742 2.439-1.152.188-2.244-.593-2.434-1.749-.195-1.151.589-2.243 1.742-2.431 1.158-.187 2.249.585 2.434 1.741"/><path d="m57.55 19.383c0 0-1.624.266-1.691 2.935-.068 2.67-.068 2.67-.068 2.67l2.609-.432-.85-5.173"/><path fill="#c28fef" d="m60.08 17.734l-2.806.462.783 4.73c.148.914-.464 1.772-1.379 1.922l-10.368 1.717c-.907.151-1.768-.468-1.919-1.375l-.783-4.732-4.097.682c-.729.122-1.222.807-1.103 1.535l.444 9.206c.122.731.812 1.222 1.538 1.103l21.62-3.581c.731-.12 1.221-.814 1.101-1.542l-1.495-9.03c-.122-.728-.806-1.219-1.536-1.1"/><path fill="#89664c" d="m57.48 8.951l-3.715 8.163c-.585 1.282 1.076 2.097 1.662.812l3.711-8.16-1.658-.815"/><path fill="#fed0ac" d="m57.48 8.951c.704-1.547 1.117-1.455 1.574-1.229.46.224.791.493.084 2.043l-1.658-.814"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#870014"><path d="m39.5 30.9h3.8v30.1h-3.8z"/><path d="m28.2 61h-3.7v-20.5l3.7-1z"/><path d="m9.5 50h3.8v11h-3.8z"/><path d="m54.5 30.9h3.8v30.1h-3.8z"/></g><path d="m2 53.1v7.8c13.5-12.9 32.3-27.4 60-28.4v-5.8c-21.6 0-46.1 11.8-60 26.4" fill="#ed4c5c"/><g fill="#94989b"><path d="m36.7 31.3c-1 .4-2 .7-3.1 1.1 1-.4 2.1-.8 3.1-1.1"/><path d="m18.1 40.5c.3-.2.6-.4.9-.6 0 0-.1 0-.1.1-.3.1-.5.3-.8.5"/></g><g fill="#ffdd67"><path d="m15.8 26.4l3-1.6 1.2 2.3-3 1.6z"/><path d="m7.6 24.5c-1.4-.8-1.6-.5-1.8-.1-.2.4-.3.8 1.1 1.6l.7-1.5"/></g><g fill="#384044"><path d="m31.4 31.8l-.4-1.1 8-3.1.4 1.2z"/><path d="m17 42.3c.5 1 .1 2.2-.9 2.7-1 .5-2.2.1-2.7-.9-.5-1 3.1-2.8 3.6-1.8"/><path d="m30.9 35c.5 1 .1 2.2-.9 2.7-1 .5-2.2.1-2.7-.9-.5-1 3.1-2.8 3.6-1.8"/><path d="m25.1 26.5c0 0-1.4.7-.7 3.2.7 2.5.7 2.5.7 2.5l2.2-1.2-2.2-4.5"/></g><path d="m26.9 24.2l-2.4 1.2 2 4.1c.4.8.1 1.8-.7 2.2l-8.8 4.6c-.8.4-1.7.1-2.1-.7l-2-4.1-3.5 1.8c-.5.3-.7 1.1-.4 1.7l.4 9.6c.3.6 1.1.9 1.7.6l20.9-11c.6-.3.9-1.1.5-1.7l-3.9-7.8c-.3-.6-1.1-.8-1.7-.5" fill="#83bf4f"/><g fill="#384044"><path d="m36.4 29.2c-.2-.6-.9-1-1.5-.8-.6.2-1 .9-.8 1.6.2.7.9 1 1.5.8.6-.2 1-.9.8-1.6"/><path d="m25 32.1l-2-6 .8-9-1.7-.3-1 8.2-1.7 1c.2.5-.2 1.2-1.1 1.7-.8.4-1.7.4-2-.1l-1.7.9-7.1-4-.7 1.5 7.5 4.6 3.6 5.2 7.1-3.7"/></g><g fill="#ffdd67"><path d="m22.1 16.9c.2-1.6.6-1.6 1.1-1.6.5.1.9.2.7 1.8l-1.8-.2"/><path d="m47.1 15.4l3.3-.6.5 2.6-3.4.6z"/><path d="m39.9 11c-1.1-1.2-1.4-1-1.8-.6-.3.3-.6.7.5 1.9l1.3-1.3"/></g><g fill="#384044"><path d="m43.7 30.5c.2 1.1-.6 2.1-1.6 2.3-1.1.2-2.1-.6-2.3-1.7-.2-1 3.7-1.7 3.9-.6"/><path d="m58.7 28.1c.2 1.1-.6 2.1-1.6 2.3-1.1.2-2.1-.6-2.3-1.7-.2-1.1 3.7-1.8 3.9-.6"/><path d="m56 18.3c0 0-1.5.3-1.6 2.8-.1 2.6-.1 2.6-.1 2.6l2.4-.4-.7-5"/></g><path d="m58.3 16.7l-2.6.4.7 4.5c.1.9-.4 1.7-1.3 1.8l-9.7 1.6c-.9.1-1.7-.4-1.8-1.3l-.7-4.5-3.9.8c-.7.1-1.1.8-1 1.5l.4 8.8c.1.7.8 1.2 1.4 1.1l20.3-3.4c.7-.1 1.1-.8 1-1.5l-1.4-8.6c0-.8-.7-1.3-1.4-1.2" fill="#c28fef"/><path d="m54.1 17.5l3.3-8.4-1.6-.8-3.3 7.5-1.9.3c.1.5-.6 1.1-1.5 1.3-.9.2-1.7-.2-1.8-.7l-1.9.3-5.5-6-1.2 1.2 5.9 6.9 1.8 5.9 7.8-1.3-.1-6.2" fill="#89664c"/><path d="m55.9 8.3c.7-1.5 1-1.4 1.5-1.2.4.2.7.5.1 2l-1.6-.8" fill="#ffdd67"/><path d="m41.9 10.3l.8 1 10.6-1.7.3-1.3c-.7-4.3-1.9-5.9-6.7-5.2-4.8.8-5.7 2.8-5 7.2" fill="#ffb300"/><path d="m53.2 8.5c0 .3 0 .5-.1.6-.1.3-.3.4-.3.4s0-.5-.1-1.1c-.9-3.9-.8-2-5.2-1.3-4.3.7-4.9-1.2-4.5 2.8.1.7.2 1.1.2 1.1s-.3-.1-.4-.3c-.1-.1-.2-.3-.3-.6-.4 0-.9.1-.8 1.3.1.7.5 1.3 1.4 1.2.7 2.4 4.2 3.5 5.7 3.3 1.5-.2 4.5-2.4 4.4-4.9.9-.2 1.1-.9 1-1.6-.1-1.1-.7-1.1-1-.9" fill="#ffdd67"/><g fill="#937237"><circle cx="45.8" cy="10.9" r=".9"/><circle cx="50.3" cy="10.2" r=".9"/><path d="m49.9 13.1c-.8.9-1.9 1-2.9.5-.1-.1-.2.1-.1.2.4.5 1 .9 1.7.7s1.2-.7 1.4-1.2c.1-.2 0-.3-.1-.2"/></g><path d="m9.2 22.7l1 .8 9.8-4.3v-1.3c-1.7-4-3.4-5.2-7.8-3.3-4.5 1.8-4.8 4.1-3 8.1" fill="#ffb300"/><path d="m19.6 18.1c.1.2.1.5.1.6 0 .3-.2.5-.2.5s-.1-.5-.4-1.1c-1.8-3.5-1.3-1.7-5.3.1-4 1.8-5 .1-3.6 3.9.3.6.5 1 .5 1s-.3 0-.5-.2c-.1-.1-.3-.3-.4-.5-.4.1-.9.4-.4 1.5.3.7.8 1.1 1.7.8 1.3 2.1 5 2.3 6.4 1.7 1.4-.6 3.7-3.5 3-5.9.8-.4.8-1.1.5-1.8-.6-1-1.1-.9-1.4-.6" fill="#ffdd67"/><g fill="#937237"><circle cx="13.1" cy="22.3" r=".9"/><circle cx="17.2" cy="20.5" r=".9"/><path d="m17.6 23.4c-.6 1.1-1.5 1.5-2.7 1.2-.1 0-.2.1 0 .2.5.4 1.2.6 1.9.3s1-1 1.1-1.6c0-.1-.2-.2-.3-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a3.svg
index 1c6ad92..daa26dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m13.09 16.855h1v5.45h-1z"/><path fill="#94989b" d="m52.22 44.31c-.021-.081-2.174-8.241-7.83-26.759-3.362-11-11.993-14.624-19.06-13.332-5.772 1.056-11.329 5.665-10.733 13.581l-1.994.146c-.586-7.786 4.497-14.228 12.361-15.667 7.945-1.452 17.624 2.53 21.342 14.703 5.67 18.563 7.83 26.753 7.852 26.833l-1.937.495"/><g fill="#3e4347"><path d="m51.17 44.871c-.247-.91.302-1.85 1.227-2.095l.536-.142c.924-.243 1.875.298 2.123 1.209l4.308 15.86c.248.913-.301 1.851-1.226 2.095l-.536.143c-.925.244-1.876-.298-2.124-1.211l-4.308-15.859"/><path d="m51.688 40.73c1.616 3.42.116 7.484-3.351 9.08-3.467 1.594-7.587.114-9.204-3.307-1.616-3.42-.116-7.484 3.351-9.08 3.466-1.595 7.588-.114 9.204 3.303"/></g><path fill="#94989b" d="m48.549 42.18c.81 1.711.059 3.741-1.674 4.539-1.733.798-3.794.057-4.603-1.651-.808-1.71-.058-3.744 1.675-4.54 1.735-.797 3.794-.058 4.602 1.652"/><path fill="#d0d0d0" d="m35.402 55.24l-1.707-1.68 11.385-11.24 1.711 1.69z"/><path fill="#3e4347" d="m32.847 52.811h5.723v2.43h-5.723z"/><path fill="#c7e755" d="m18.241 53.24c2.28-3.397 4.601-8.15 4.524-13.399-.145-10.241-4.333-18.503-9.356-18.451-5.02.052-8.978 8.396-8.83 18.639.073 5.247 2.527 9.951 4.904 13.3-2.791 1.352-4.661 3.927-4.618 6.862.061 4.294 9.09-.417 9.09-.417s9.159 4.523 9.1.229c-.041-2.935-1.982-5.47-4.81-6.763"/><path fill="#428bc1" d="m10.119 21.628c-.011-.821.76-1.497 1.723-1.505.96-.01 1.749.649 1.759 1.47-.01-.821.762-1.496 1.719-1.506.964-.011 1.754.648 1.766 1.472.011.82-3.444 2.737-3.444 2.737s-3.512-1.846-3.523-2.668"/><path fill="#fff" d="m11.189 31.18c1.697-.018 3.054-1.204 3.03-2.653-.018-1.447-1.408-2.606-3.102-2.589-1.694.017-3.053 1.205-3.03 2.652.018 1.45 1.409 2.608 3.102 2.59"/><path d="m11.171 29.875c.848-.009 1.526-.604 1.516-1.328-.012-.725-.704-1.305-1.552-1.295-.849.009-1.526.603-1.515 1.326.01.725.704 1.304 1.551 1.297"/><g fill="#428bc1"><path d="m8.4 33.826c2.208 1.345 4.973 1.763 7.582 1.114 2.282-.567 4.17-1.985 5.246-3.785.277-.465 1.102-.065.822.402-1.195 2-3.296 3.501-5.81 4.161-2.802.738-5.931.26-8.31-1.189-.493-.3-.027-1.01.47-.703"/><path d="m21.4 38.3c-.016 1.938-1.793 3.499-4.063 3.556-2.27.058-4.093-1.585-4.159-3.471.314-.004.631-.007.947-.01-.016 1.939-1.795 3.498-4.063 3.557-2.27.059-4.094-1.586-4.164-3.473-.015-.52.934-.53.948-.009.058 1.495 1.452 2.662 3.203 2.671 1.749.01 3.118-1.281 3.128-2.736.002-.521.931-.532.947-.01.053 1.495 1.452 2.662 3.199 2.671 1.751.009 3.117-1.282 3.131-2.736.001-.524.949-.533.946-.01"/><path d="m19.14 48.556c-.02 1.382-1.256 2.467-2.873 2.52-1.614.053-2.887-1.132-2.947-2.458.314-.004.631-.007.947-.012-.02 1.381-1.26 2.469-2.875 2.52-1.613.053-2.889-1.133-2.948-2.459-.021-.521.927-.531.948-.01.042.934.897 1.648 1.99 1.659 1.09.013 1.922-.801 1.938-1.698.012-.522.926-.533.947-.012.046.936.895 1.647 1.99 1.66 1.094.014 1.924-.803 1.936-1.699.014-.521.96-.532.947-.011"/><path d="m20.558 43.36c-.012 1.728-1.59 3.107-3.611 3.163-2.02.058-3.635-1.413-3.699-3.088.316-.002.633-.005.947-.008-.014 1.727-1.592 3.108-3.615 3.162-2.02.056-3.635-1.413-3.697-3.088-.02-.521.928-.529.948-.009.044 1.281 1.238 2.276 2.739 2.287 1.502.01 2.668-1.102 2.678-2.345.004-.522.929-.532.947-.008.048 1.28 1.24 2.276 2.742 2.286 1.5.01 2.668-1.1 2.675-2.344.007-.519.955-.53.946-.008"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m12.7 16.9h1v5.5h-1z"/><path d="m52.6 44.3c0-.1-2.2-8.2-8-26.8-3.4-10.9-12.2-14.6-19.4-13.3-5.9 1.1-11.6 5.7-11 13.6l-2 .1c-.6-7.8 4.6-14.2 12.6-15.7 8.1-1.5 18 2.5 21.8 14.7 5.8 18.6 8 26.8 8 26.8l-2 .6" fill="#94989b"/><g fill="#3e4347"><path d="m51.6 44.9c-.3-.9.3-1.8 1.3-2.1l.5-.1c.9-.2 1.9.3 2.2 1.2l4.4 15.9c.3.9-.3 1.8-1.3 2.1l-.5.1c-.9.2-1.9-.3-2.2-1.2l-4.4-15.9"/><path d="m52.1 40.7c1.7 3.4.1 7.5-3.4 9.1-3.5 1.6-7.7.1-9.4-3.3-1.7-3.4-.1-7.5 3.4-9.1 3.5-1.6 7.8-.1 9.4 3.3"/></g><path d="m48.9 42.2c.8 1.7.1 3.7-1.7 4.5-1.8.8-3.9.1-4.7-1.7-.8-1.7-.1-3.7 1.7-4.5 1.8-.8 3.9 0 4.7 1.7" fill="#94989b"/><path fill="#d0d0d0" d="m35.5 55.2l-1.8-1.6 11.7-11.3 1.7 1.7z"/><path fill="#3e4347" d="m32.9 52.8h5.8v2.4h-5.8z"/><path d="m18 53.2c2.3-3.4 4.7-8.1 4.6-13.4-.1-10.2-4.4-18.5-9.6-18.5-5.1.1-9.1 8.5-9 18.7.1 5.2 2.6 10 5 13.3-2.8 1.4-4.8 3.9-4.7 6.9.1 4.3 9.3-.4 9.3-.4s9.4 4.5 9.3.2c-.1-2.9-2.1-5.5-4.9-6.8" fill="#c7e755"/><path d="m9.7 21.6c0-.8.8-1.5 1.8-1.5 1 0 1.8.6 1.8 1.5 0-.8.8-1.5 1.8-1.5 1 0 1.8.6 1.8 1.5 0 .8-3.5 2.7-3.5 2.7s-3.7-1.8-3.7-2.7" fill="#428bc1"/><path d="m10.8 31.2c1.7 0 3.1-1.2 3.1-2.7 0-1.4-1.4-2.6-3.2-2.6-1.7 0-3.1 1.2-3.1 2.7 0 1.4 1.4 2.6 3.2 2.6" fill="#fff"/><path d="m10.7 29.9c.9 0 1.6-.6 1.5-1.3 0-.7-.7-1.3-1.6-1.3-.9 0-1.6.6-1.5 1.3.1.7.8 1.3 1.6 1.3" fill="#231f20"/><g fill="#428bc1"><path d="m7.9 33.8c2.3 1.3 5.1 1.8 7.7 1.1 2.3-.6 4.3-2 5.4-3.8.3-.5 1.1-.1.8.4-1.2 2-3.4 3.5-5.9 4.2-2.9.7-6.1.3-8.5-1.2-.5-.3 0-1 .5-.7"/><path d="m21.2 38.3c0 1.9-1.8 3.5-4.1 3.6-2.3.1-4.2-1.6-4.2-3.5.3 0 .6 0 1 0 0 1.9-1.8 3.5-4.1 3.6-2.3.1-4.2-1.6-4.3-3.5 0-.5 1-.5 1 0 .1 1.5 1.5 2.7 3.3 2.7 1.8 0 3.2-1.3 3.2-2.7 0-.5.9-.5 1 0 .1 1.5 1.5 2.7 3.3 2.7 1.8 0 3.2-1.3 3.2-2.7-.3-.7.7-.7.7-.2"/><path d="m18.9 48.6c0 1.4-1.3 2.5-2.9 2.5-1.6.1-2.9-1.1-3-2.5.3 0 .6 0 1 0 0 1.4-1.3 2.5-2.9 2.5-1.8.1-3.1-1.1-3.1-2.4 0-.5.9-.5 1 0 0 .9.9 1.6 2 1.7 1.1 0 2-.8 2-1.7 0-.5.9-.5 1 0 0 .9.9 1.6 2 1.7 1.1 0 2-.8 2-1.7-.1-.7.9-.7.9-.1"/><path d="m20.3 43.4c0 1.7-1.6 3.1-3.7 3.2-2.1.1-3.7-1.4-3.8-3.1.3 0 .6 0 1 0 0 1.7-1.6 3.1-3.7 3.2-2.1.1-3.7-1.4-3.8-3.1 0-.5.9-.5 1 0 0 1.3 1.3 2.3 2.8 2.3 1.5 0 2.7-1.1 2.7-2.3 0-.5.9-.5 1 0 0 1.3 1.3 2.3 2.8 2.3 1.5 0 2.7-1.1 2.7-2.3.1-.7 1-.8 1-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a4.svg
index 73921d5..810538a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m40.03 23.969c4.766 4.766 12.337 5.01 17.394.737l-18.13-18.13c-4.272 5.057-4.03 12.628.737 17.394"/><path fill="#3e4347" d="m40.03 23.969c-1.61-1.61-2.703-3.543-3.28-5.589l-30.508 34.388 1.221 1.221-5.464 6.949 1.063 1.062 6.949-5.464 1.221 1.221 34.387-30.508c-2.046-.577-3.977-1.67-5.589-3.28"/><path fill="#94989b" d="m58.23 5.768c-4.766-4.766-12.337-5.01-17.394-.737l18.13 18.13c4.272-5.057 4.03-12.628-.738-17.393"/><path fill="#3e4347" d="m58.97 23.16l-18.13-18.13c-.276.233-.547.477-.808.737-.26.261-.504.531-.737.808l18.13 18.13c.276-.233.548-.477.808-.737.26-.261.503-.531.737-.808"/><path transform="matrix(.7072-.707.707.7072-19.499 29.406)" fill="#d0d0d0" d="m23.615 36.444h4.279v3.603h-4.279z"/><path transform="matrix(.707-.7072.7072.707-16.475 30.674)" fill="#94989b" d="m26.641 33.418h4.279v3.603h-4.279z"/><g fill="#42ade2"><path d="m57.678 37.33c-.649-3.567-4-4.252-4-4.252l-6.275 11.596c-.187-1.344-1.242-2.762-2.867-3.641-2.332-1.263-4.954-.936-5.856.73-.901 1.666.258 4.04 2.591 5.303s4.955.936 5.856-.73l5.01-9.252c.529-.008 1.319.309 2.405 1.554 2.273 2.603 5.358 2.899 5.358 2.899s-1.653-1.108-2.217-4.207"/><path d="m29.369 5.439c-2.982-4.395-7.881-3.325-7.881-3.325l-1.54 19.252c-1.045-1.688-3.299-2.963-5.996-3.179-3.873-.31-7.192 1.683-7.413 4.448-.222 2.767 2.738 5.261 6.611 5.57s7.192-1.683 7.414-4.448l1.229-15.361c.703-.324 1.949-.368 4.142.656 4.588 2.141 8.896.711 8.896.711s-2.871-.506-5.462-4.324"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c6cedb"><path d="m40 24c4.8 4.8 12.3 5 17.4.7l-18.1-18.1c-4.3 5-4 12.6.7 17.4"/><path d="m58.2 5.8c-4.7-4.8-12.3-5-17.4-.8l18.2 18.2c4.2-5.1 4-12.7-.8-17.4"/></g><g fill="#3e4347"><path d="m59.3 23.5l-18.8-18.8c-.2.3-.5.5-.8.8-.2.2-.5.5-.7.8l18.7 18.7c.3-.2.5-.5.8-.7.3-.3.5-.6.8-.8"/><path d="M32 20.9 6.2 52.8 7.5 54 2 60.9 3.1 62 10 56.5 11.2 57.8 43.1 32z"/></g><g fill="#4fd1d9"><path d="m57.7 37.3c-.7-3.6-4-4.3-4-4.3l-6.3 11.6c-.2-1.3-1.2-2.8-2.9-3.6-2.3-1.3-5-.9-5.9.7s.3 4 2.6 5.3c2.3 1.3 5 .9 5.9-.7l5-9.3c.5 0 1.3.3 2.4 1.6 2.3 2.6 5.4 2.9 5.4 2.9s-1.7-1.1-2.2-4.2"/><path d="m29.4 5.4c-3-4.4-7.9-3.3-7.9-3.3l-1.5 19.3c-1-1.7-3.3-3-6-3.2-3.9-.3-7.2 1.7-7.4 4.4-.2 2.8 2.7 5.3 6.6 5.6 3.9.3 7.2-1.7 7.4-4.4l1.2-15.4c.7-.3 1.9-.4 4.1.7 4.6 2.1 8.9.7 8.9.7s-2.8-.5-5.4-4.4"/></g><path fill="#3e4347" d="m49.8 27.7l-13.5-13.5-1.7 3.5 11.7 11.7z"/><g fill="#c6cedb"><path d="M43.1 32 32 20.9 34.6 17.7 46.3 29.4z"/><path transform="matrix(.7071-.7071.7071.7071 3.8777 39.0969)" d="m48.7 1.4h.8v27h-.8z"/></g><path transform="matrix(.7071-.7071.7071.7071-36.9346 22.1915)" fill="#8a94a0" d="m7.7 52.2h1.2v7.1h-1.2z"/><g fill="#c6cedb"><circle cx="16.5" cy="47.5" r=".7"/><circle cx="13.2" cy="50.8" r="1.8"/></g><path fill="#3e4347" d="m11.1 50.4h4.1v.9h-4.1z"/><circle cx="34" cy="30" r="1.8" fill="#c6cedb"/><path transform="matrix(.707-.7072.7072.707-11.2329 32.8452)" fill="#3e4347" d="m33.6 27.9h.9v4.1h-.9z"/><g fill="#c6cedb"><path d="m11.6 55.4c-.1.1-.3.1-.4 0l-2.7-2.7c-.1-.1-.1-.3 0-.4.1-.1.3-.1.4 0l2.7 2.7c.1.2.1.3 0 .4"/><path transform="matrix(.7071-.7071.7071.7071-17.9881 30.0394)" d="m22.1 34.2h10.2v5h-10.2z"/></g><path transform="matrix(.7072-.707.707.7072-19.4992 29.4068)" fill="#8a94a0" d="m23.6 36.4h4.3v3.6h-4.3z"/><g fill="#3e4347"><path transform="matrix(.7071-.7071.7071.7071-20.4843 29.0067)" d="m24.5 37.7h.5v3h-.5z"/><path transform="matrix(.7071-.7071.7071.7071-19.8279 29.2768)" d="m25.2 37.1h.5v3h-.5z"/><path transform="matrix(.7071-.7071.7071.7071-19.1734 29.5485)" d="m25.8 36.4h.5v3h-.5z"/><path transform="matrix(.7071-.7071.7071.7071-18.5188 29.82)" d="m26.5 35.8h.5v3h-.5z"/><path transform="matrix(.707-.7072.7072.707-16.4761 30.6727)" d="m26.6 33.4h4.3v3.6h-4.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a5.svg
index 94ca04a..da84a9f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m3.591 22c-.601 0-1.091.494-1.091 1.1v19.8c0 .607.49 1.1 1.091 1.1l2.909-.746v-20.508l-2.909-.746"/><g fill="#3e4347"><path d="m6.5 22.746v20.504l40-10.25z"/><path d="m42.5 41.02h-5l-9 20.98h-4.106v2h6.696l7.41-18v16h-3v2h9v-2h-3v-16l7.57 18h6.43v-2h-4z"/><circle cx="29.5" cy="12" r="12"/></g><circle fill="#94989b" cx="29.5" cy="11.999" r="4"/><circle fill="#3e4347" cx="49.5" cy="12" r="12"/><circle fill="#94989b" cx="49.5" cy="11.999" r="4"/><path fill="#3e4347" d="m61.5 42.9c0 .607-.498 1.1-1.102 1.1h-41.798c-.608 0-1.1-.492-1.1-1.1v-19.8c0-.606.492-1.101 1.1-1.101h41.799c.604 0 1.102.494 1.102 1.101v19.8"/><g fill="#94989b"><path d="m59.5 41c0 .553-.498 1-1.11 1h-37.779c-.613 0-1.111-.447-1.111-1 0-.551.498-1 1.111-1h37.779c.612 0 1.11.449 1.11 1"/><path d="m41.5 26h16v12h-16z"/></g><path fill="#3e4347" d="m42.5 27h14v10h-14z"/><g fill="#94989b"><path d="m21.5 33h16v4h-16z"/><path d="m21.5 27h16v4h-16z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m3.6 22c-.6 0-1.1.5-1.1 1.1v19.8c0 .6.5 1.1 1.1 1.1l2.9-.7v-20.6l-2.9-.7" fill="#94989b"/><g fill="#3e4347"><path d="m6.5 22.7v20.6l40-10.3z"/><path d="m42.5 41h-5l-9 21h-4.1v2h6.7l7.4-18v16h-3v2h9v-2h-3v-16l7.6 18h6.4v-2h-4z"/><circle cx="29.5" cy="12" r="12"/></g><circle cx="29.5" cy="12" r="4" fill="#94989b"/><circle cx="49.5" cy="12" r="12" fill="#3e4347"/><circle cx="49.5" cy="12" r="4" fill="#94989b"/><path d="m61.5 42.9c0 .6-.5 1.1-1.1 1.1h-41.8c-.6 0-1.1-.5-1.1-1.1v-19.8c0-.6.5-1.1 1.1-1.1h41.8c.6 0 1.1.5 1.1 1.1v19.8" fill="#3e4347"/><g fill="#94989b"><path d="m59.5 41c0 .6-.5 1-1.1 1h-37.8c-.6 0-1.1-.4-1.1-1 0-.6.5-1 1.1-1h37.8c.6 0 1.1.4 1.1 1"/><path d="m41.5 26h16v12h-16z"/></g><path fill="#3e4347" d="m42.5 27h14v10h-14z"/><g fill="#94989b"><path d="m21.5 33h16v4h-16z"/><path d="m21.5 27h16v4h-16z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a6.svg
index e3504dc..1dca8b5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m42 16c-3.01 0-5.636 1.668-7 4.131-1.364-2.463-3.986-4.131-7-4.131-4.418 0-8 3.582-8 8s3.582 8 8 8c3.01 0 5.636-1.668 7-4.131 1.364 2.463 3.986 4.131 7 4.131 4.418 0 8-3.582 8-8s-3.582-8-8-8m-14 11c-1.658 0-3-1.344-3-3s1.342-3 3-3 3 1.344 3 3-1.342 3-3 3m14 0c-1.658 0-3-1.344-3-3s1.342-3 3-3 3 1.344 3 3-1.342 3-3 3"/><path d="m46 32h-23c-1.1 0-2 .9-2 2v.5l-5-2.5v16l5-2.5v.5c0 1.1.9 2 2 2h23c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m42 16c-3 0-5.6 1.7-7 4.1-1.4-2.5-4-4.1-7-4.1-4.4 0-8 3.6-8 8s3.6 8 8 8c3 0 5.6-1.7 7-4.1 1.4 2.5 4 4.1 7 4.1 4.4 0 8-3.6 8-8s-3.6-8-8-8m-14 11c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3m14 0c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3"/><path d="m46 32h-23c-1.1 0-2 .9-2 2v.5l-5-2.5v16l5-2.5v.5c0 1.1.9 2 2 2h23c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a7.svg
index a76f565..15d0289 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#454749" d="m47.48 45.13c-6.633 12.07-6.518 13.06-9.592 11.301-3.072-1.759-4.257-3.361 2.375-15.432 6.632-12.07 8.59-11.875 11.664-10.115 3.072 1.759 2.184 2.177-4.447 14.246"/><path fill="#258399" d="m53.715 48.698c-4.221 7.684-9.434 11.392-11.893 9.984-3.075-1.762-1.496-1.781 5.136-13.851 6.634-12.07 5.826-13.457 8.9-11.697 2.459 1.408 2.079 7.883-2.143 15.564"/><path fill="#454749" d="m16.522 45.13c6.632 12.07 6.519 13.06 9.591 11.301 3.074-1.759 4.259-3.361-2.373-15.432-6.632-12.07-8.59-11.875-11.665-10.115-3.072 1.759-2.183 2.177 4.447 14.246"/><path fill="#258399" d="m10.285 48.698c4.22 7.684 9.435 11.392 11.894 9.984 3.074-1.762 1.494-1.781-5.138-13.851-6.632-12.07-5.825-13.457-8.899-11.697-2.461 1.408-2.079 7.883 2.143 15.564"/><path fill="#3baacf" d="m11.267 57.714c0 0 5.409 1.423 5.843 0 2.483-8.149-11.406-12.938-11.406-22.12 0-14.823 11.772-26.84 26.296-26.84 14.522 0 26.295 12.02 26.295 26.84 0 9.18-13.889 13.969-11.405 22.12.434 1.423 5.841 0 5.841 0 5.707-5.574 9.269-13.42 9.269-22.12 0-16.912-13.433-30.62-30-30.62-16.569 0-30 13.708-30 30.62 0 8.698 3.561 16.544 9.267 22.12"/><path fill="#454749" d="m14.86 17.644c3.468-.668 7.996-5.738 17.14-5.738 9.142 0 13.67 5.07 17.14 5.738 1.371.264 3.79-1.889 3.79-1.889-5.495-6.302-12.02-9.52-20.931-9.52-8.916 0-15.436 3.218-20.931 9.52 0 0 2.418 2.153 3.791 1.889"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 45.1c-6.6 12.1-6.5 13.1-9.6 11.3-3.1-1.8-4.3-3.4 2.4-15.4s8.6-11.9 11.7-10.1c3 1.7 2.1 2.2-4.5 14.2" fill="#454749"/><path d="m53.7 48.7c-4.2 7.7-9.4 11.4-11.9 10-3.1-1.8-1.5-1.8 5.1-13.9 6.6-12.1 5.8-13.5 8.9-11.7 2.5 1.4 2.1 7.9-2.1 15.6" fill="#258399"/><path d="m16.5 45.1c6.6 12.1 6.5 13.1 9.6 11.3 3.1-1.8 4.3-3.4-2.4-15.4s-8.6-11.9-11.7-10.1c-3 1.7-2.1 2.2 4.5 14.2" fill="#454749"/><path d="m10.3 48.7c4.2 7.7 9.4 11.4 11.9 10 3.1-1.8 1.5-1.8-5.1-13.9-6.6-12.1-5.8-13.5-8.9-11.7-2.5 1.4-2.1 7.9 2.1 15.6" fill="#258399"/><path d="m11.3 57.7c0 0 5.4 1.4 5.8 0 2.5-8.1-11.4-12.9-11.4-22.1 0-14.8 11.8-26.8 26.3-26.8 14.5 0 26.3 12 26.3 26.8 0 9.2-13.9 14-11.4 22.1.4 1.4 5.8 0 5.8 0 5.7-5.6 9.3-13.4 9.3-22.1 0-16.9-13.4-30.6-30-30.6-16.6 0-30 13.7-30 30.6 0 8.7 3.6 16.5 9.3 22.1" fill="#3baacf"/><path d="m14.9 17.6c3.5-.7 8-5.7 17.1-5.7 9.1 0 13.7 5.1 17.1 5.7 1.4.3 3.8-1.9 3.8-1.9-5.5-6.3-12-9.5-20.9-9.5-8.9 0-15.4 3.2-20.9 9.5 0 .1 2.4 2.2 3.8 1.9" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a8.svg
index 10101f9..c70f95e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f6c799" d="m49.575 23.596c8.866-15.1-9.263-24.925-32.24-14.38-14.12 6.48-23.894 26.481-4.384 43.665 13.851 12.201 49.05 5.293 49.05-8.73-.001-15.426-21.693-4.77-12.425-20.555m4.894 24.601c-2.762 2.434-7.242 2.434-10 0-2.764-2.434-2.763-4.503 0-6.937 2.762-2.434 7.241-2.434 10 0s2.762 4.505 0 6.937"/><path fill="#2caece" d="m33.16 45.07c-3.054-2.38-8-2.38-11.06 0-3.052 2.38-3.052 6.238 0 8.618 3.052 2.38 8 2.38 11.06 0 3.05-2.379 3.05-6.238 0-8.618"/><path fill="#fdf516" d="m19.646 33.567c-3.353-1.594-7.988-.567-10.353 2.293-2.365 2.861-1.564 6.475 1.787 8.07 3.353 1.596 7.987.568 10.352-2.293 2.366-2.861 1.565-6.474-1.786-8.07"/><path fill="#f55" d="m16.998 20.643c-2.94-1.597-7.159-.894-9.424 1.57-2.265 2.463-1.717 5.751 1.224 7.347 2.94 1.596 7.159.893 9.424-1.57 2.265-2.463 1.717-5.753-1.224-7.347"/><path fill="#83bf4f" d="m28.385 10.754c-2.811-1.592-6.899-.988-9.128 1.35-2.229 2.338-1.759 5.523 1.052 7.116 2.812 1.592 6.898.987 9.128-1.351 2.23-2.338 1.759-5.523-1.052-7.115"/><path fill="#9156b7" d="m44.669 9.687c-2.161-1.775-5.945-2.205-8.45-.96-2.505 1.244-2.783 3.692-.622 5.467 2.162 1.775 5.946 2.206 8.451.96 2.503-1.244 2.781-3.692.621-5.467"/><path fill-rule="evenodd" fill="#947151" d="m40.04 42.15c-1.854 2.117-11.537 3.979-11.537 3.979s3.819-3.53 5.534-9.227c.803-2.666 4.693-2.657 6.352-1.208 1.658 1.452 1.501 4.343-.349 6.456"/><path fill="#666" d="m58.697 12.267c.981-.065 2.898 1.559 2.966 2.512.304 4.316-17.685 19.715-17.685 19.715l-2.963-2.512c.001 0 13.243-19.42 17.682-19.715"/><path fill="#ccc" d="m38.419 34.878l2.961 2.512 2.599-2.896-2.959-2.512z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.6 23.6c8.8-15.1-9.3-24.9-32.3-14.4-14.1 6.5-23.9 26.5-4.3 43.7 13.9 12.2 49 5.3 49-8.7 0-15.5-21.7-4.8-12.4-20.6m4.9 24.6c-2.8 2.4-7.2 2.4-10 0-2.8-2.4-2.8-4.5 0-6.9 2.8-2.4 7.2-2.4 10 0s2.7 4.5 0 6.9" fill="#f6c799"/><path d="m33.2 45.1c-3.1-2.4-8-2.4-11.1 0-3.1 2.4-3.1 6.2 0 8.6s8 2.4 11.1 0c3-2.4 3-6.3 0-8.6" fill="#2caece"/><path d="m19.6 33.6c-3.4-1.6-8-.6-10.4 2.3-2.4 2.9-1.6 6.5 1.8 8.1 3.4 1.6 8 .6 10.4-2.3 2.4-2.9 1.6-6.5-1.8-8.1" fill="#fdf516"/><path d="m17 20.6c-2.9-1.6-7.2-.9-9.4 1.6-2.3 2.5-1.7 5.8 1.2 7.3 2.9 1.6 7.2.9 9.4-1.6s1.7-5.7-1.2-7.3" fill="#f55"/><path d="m28.4 10.8c-2.8-1.6-6.9-1-9.1 1.4s-1.8 5.5 1.1 7.1c2.8 1.6 6.9 1 9.1-1.4s1.7-5.6-1.1-7.1" fill="#83bf4f"/><path d="m44.7 9.7c-2.2-1.8-5.9-2.2-8.5-1-2.5 1.2-2.8 3.7-.6 5.5 2.2 1.8 5.9 2.2 8.5 1 2.5-1.3 2.7-3.7.6-5.5" fill="#9156b7"/><path d="m40 42.1c-1.9 2.1-11.5 4-11.5 4s3.8-3.5 5.5-9.2c.8-2.7 4.7-2.7 6.4-1.2 1.7 1.4 1.5 4.3-.4 6.4" fill="#947151"/><path d="m58.7 12.3c1-.1 2.9 1.6 3 2.5.3 4.3-17.7 19.7-17.7 19.7l-3-2.5c0 0 13.3-19.4 17.7-19.7" fill="#666"/><path fill="#ccc" d="m38.4 34.9l3 2.5 2.6-2.9-3-2.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3a9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3a9.svg
index 86b3700..d61f2f3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3a9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3a9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m61.34 41.824c-3.232-7.523-15.262-.974-29.338-.974-14.07 0-26.11-6.549-29.337.975-3.624 7.195 7.824 20.12 29.337 20.12 21.514 0 32.961-12.923 29.338-20.12"/><path d="m32 1.943c-14.05.067-24.07 6.193-22.72 9.567 3.835 12.499 5.244 23.783 4 36.28 12.554 3.03 24.867 2.84 37.422-.191-1.243-12.5.183-23.592 4.02-36.09 1.343-3.375-8.67-9.502-22.721-9.568"/></g><path fill="#ed4c5c" d="m13.622 40.531c.217 2.51-1.14 7.254-1.14 7.254 11.62 11.06 27.417 11.06 39.04 0 0 0-1.094-4.693-1.139-7.254-11.803 10.625-24.954 10.625-36.757 0"/><path fill="#656d72" d="m54.969 10.394c0 4.666-10.283 8.447-22.969 8.447-12.685 0-22.968-3.781-22.968-8.447 0-4.669 10.283-8.451 22.968-8.451 12.686 0 22.969 3.782 22.969 8.451"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m61.3 41.8c-3.2-7.5-15.3-1-29.3-1-14.1 0-26.1-6.5-29.3 1-3.7 7.2 7.8 20.1 29.3 20.1 21.5 0 33-12.9 29.3-20.1"/><path d="m32 1.9c-14 .1-24.1 6.2-22.7 9.6 3.8 12.5 5.2 23.8 4 36.3 12.6 3 24.9 2.8 37.4-.2-1.2-12.5.2-23.6 4-36.1 1.4-3.4-8.6-9.5-22.7-9.6"/></g><path d="m13.6 40.5c.2 2.5-1.1 7.3-1.1 7.3 11.6 11.1 27.4 11.1 39 0 0 0-1.1-4.7-1.1-7.3-11.8 10.7-25 10.7-36.8 0" fill="#ed4c5c"/><path d="m55 10.4c0 4.7-10.3 8.4-23 8.4-12.7 0-23-3.8-23-8.4 0-4.7 10.3-8.5 23-8.5 12.7 0 23 3.8 23 8.5" fill="#656d72"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3aa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3aa.svg
index ae83a28..6d0fdff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3aa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3aa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m56.16 37.966h-24.16-24.16l-5.837 26.03h30 30z"/><path fill="#f2f2f2" d="m10.174 64h13.42l1.746-26.03h-11.669z"/><path fill="#c94747" d="M2,37.966c0,2.303,2.613,4.17,5.836,4.17c3.223,0,5.834-1.867,5.834-4.17H2z"/><path fill="#d0d0d0" d="m13.671 37.966c0 2.303 2.614 4.17 5.837 4.17 3.222 0 5.832-1.867 5.832-4.17h-11.669"/><path fill="#f2f2f2" d="m53.826 64h-13.416l-1.75-26.03h11.67z"/><path fill="#c94747" d="M62,37.966c0,2.303-2.613,4.17-5.836,4.17s-5.834-1.867-5.834-4.17H62z"/><path fill="#d0d0d0" d="m50.33 37.966c0 2.303-2.613 4.17-5.836 4.17s-5.834-1.867-5.834-4.17h11.67"/><path fill="#ed4c5c" d="m32 12c-1.232 10.445-14.19 25.966-30 25.966h30 30c-15.809 0-28.768-15.521-30-25.966"/><g fill="#fff"><path d="m13.671 37.966h11.648c0 0 6.681-7.866 6.681-25.966 0 0-6.681 25.966-18.329 25.966"/><path d="M32,12c0,18.1,6.682,25.966,6.682,25.966H50.33C38.682,37.966,32,12,32,12z"/></g><path fill="#c94747" d="M32,37.966h-6.66c0,2.303,3.438,4.17,6.66,4.17c3.223,0,6.66-1.867,6.66-4.17H32z"/><path fill="#3e4347" d="M31.988 42.09 21.35 64 42.651 64z"/><g fill="#c94747"><path d="m21.371 64c0 0-2.448 0-4.12-4.938 0 0 4.127-.548 14.727-16.929.001.003-5.236 21.867-10.607 21.867"/><path d="m42.629 64c0 0 2.448 0 4.121-4.938 0 0-4.128-.548-14.729-16.929 0 .003 5.237 21.867 10.608 21.867"/></g><path fill="#94989b" d="m31.22 4.948h1.594v9.714h-1.594z"/><path fill="#d0d0d0" d="m31.619 4.948h.797v9.714h-.797z"/><ellipse fill="#ed4c5c" cx="32" cy="5.365" rx="1.536" ry="1.365"/><path fill="#c94747" d="m32 5.863c-.678 0-1.25-.389-1.455-.933-.051.139-.08.285-.08.435 0 .754.687 1.365 1.535 1.365.848 0 1.536-.611 1.536-1.365 0-.149-.03-.296-.081-.435-.203.545-.776.933-1.455.933"/><ellipse fill="#ffc7ce" cx="32.407" cy="4.931" rx=".407" ry=".363"/><path fill="#ed4c5c" d="m32.814 7.081c0 1.36 0 2.72 0 4.077 2.887-3.125 5.77 1.088 8.65-2.037-2.88 1.767-5.763-3.806-8.65-2.04"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m56.2 38h-24.2-24.2l-5.8 26h30 30z"/><path fill="#f2f2f2" d="m10.2 64h13.4l1.7-26h-11.6z"/><path d="m2 38c0 2.3 2.6 4.2 5.8 4.2s5.8-1.9 5.8-4.2c.1 0-11.6 0-11.6 0" fill="#c94747"/><path d="m13.7 38c0 2.3 2.6 4.2 5.8 4.2 3.2 0 5.8-1.9 5.8-4.2 0 0-11.6 0-11.6 0" fill="#d0d0d0"/><path fill="#f2f2f2" d="m53.8 64h-13.4l-1.7-26h11.6z"/><path d="m62 38c0 2.3-2.6 4.2-5.8 4.2s-5.8-1.9-5.8-4.2c-.1 0 11.6 0 11.6 0" fill="#c94747"/><path d="m50.3 38c0 2.3-2.6 4.2-5.8 4.2s-5.8-1.9-5.8-4.2c0 0 11.6 0 11.6 0" fill="#d0d0d0"/><path d="m32 12c-1.2 10.4-14.2 26-30 26h30 30c-15.8 0-28.8-15.6-30-26" fill="#ed4c5c"/><g fill="#fff"><path d="m13.7 38h11.6c0 0 6.7-7.9 6.7-26 0 0-6.7 26-18.3 26"/><path d="M32,12c0,18.1,6.7,26,6.7,26h11.6C38.7,38,32,12,32,12z"/></g><path d="m32 38h-6.7c0 2.3 3.4 4.2 6.7 4.2 3.2 0 6.7-1.9 6.7-4.2 0 0-6.7 0-6.7 0" fill="#c94747"/><path fill="#3e4347" d="m32 42.1l-10.6 21.9h21.3z"/><g fill="#c94747"><path d="m21.4 64c0 0-2.4 0-4.1-4.9 0 0 4.1-.5 14.7-16.9 0-.1-5.3 21.8-10.6 21.8"/><path d="m42.6 64c0 0 2.4 0 4.1-4.9 0 0-4.1-.5-14.7-16.9 0-.1 5.3 21.8 10.6 21.8"/></g><path fill="#94989b" d="m31.2 4.9h1.6v9.7h-1.6z"/><path fill="#d0d0d0" d="m31.6 4.9h.8v9.7h-.8z"/><ellipse cx="32" cy="5.4" rx="1.5" ry="1.4" fill="#ed4c5c"/><path d="m32 5.9c-.7 0-1.2-.4-1.5-.9-.1.1-.1.3-.1.4 0 .8.7 1.4 1.5 1.4s1.5-.6 1.5-1.4c0-.1 0-.3-.1-.4 0 .5-.6.9-1.3.9" fill="#c94747"/><ellipse cx="32.4" cy="4.9" rx=".4" ry=".4" fill="#ffc7ce"/><path d="m32.8 7.1c0 1.4 0 2.7 0 4.1 2.9-3.1 5.8 1.1 8.6-2-2.8 1.7-5.7-3.9-8.6-2.1" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ab.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ab.svg
index b0ecfd8..4e2c9b8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ab.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ab.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fbbf67" d="m57.999 32c0-3.313 1.791-6 4-6v-9h-23.649c0 .828-.672 1.5-1.5 1.5s-1.5-.672-1.5-1.5h-33.35v9c2.209 0 4 2.687 4 6s-1.791 6-4 6v9h33.35c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5h23.649v-9c-2.209 0-4-2.687-4-6"/><path fill="#ed4c5c" d="m6.999 19h50v26h-50z"/><path fill="#fbbf67" d="m7.999 20h48v24h-48z"/><g fill="#89664c"><path fill-rule="evenodd" d="m48.555 38.19l-.68.394c-.067-.152-.213-.258-.379-.258h-.426c-.166 0-.309.106-.378.258l-.678-.394-1.625-.938v1.876 1.876l1.625-.938.678-.393c.069.151.212.257.378.257h.426c.166 0 .312-.105.379-.257l.68.393 1.623.938v-1.876-1.876l-1.623.938"/><path d="m44.756 32.878c.271.431.649.744 1.092.958.439.213.937.319 1.437.32.499-.002.998-.108 1.438-.322s.818-.525 1.09-.956c.062.504-.197 1.05-.676 1.438-.474.394-1.161.625-1.853.621-.688.004-1.377-.229-1.851-.622-.478-.387-.736-.934-.677-1.437"/><path fill-rule="evenodd" d="m54.48 27.864v-.136c0-.107-.012-.128-.067-.156-.1-.052-.203-.1-.309-.138-.078-.027-.163-.053-.256-.075-1.092-2.564-3.62-4.359-6.566-4.359-2.944 0-5.473 1.795-6.565 4.358-.091.023-.179.049-.257.076-.105.038-.208.086-.308.138-.056.028-.067.049-.067.156v.136c0 .257-.03.158.15.264.06.037.114.081.165.134-.17.616-.262 1.265-.262 1.936 0 3.974 3.198 7.196 7.144 7.196 3.946 0 7.145-3.223 7.145-7.196 0-.671-.09-1.319-.262-1.936.051-.053.105-.099.165-.134.183-.106.15-.007.15-.264m-7.198-4.02c2.403 0 4.491 1.356 5.554 3.348-.848-.077-1.788-.061-2.338-.012-.884.077-1.622.277-2.226.59-.565.285-1.415.285-1.979 0-.604-.313-1.343-.513-2.227-.59-.549-.049-1.489-.065-2.337.012 1.063-1.992 3.151-3.348 5.553-3.348m0 12.695c-3.479 0-6.3-2.844-6.3-6.347 0-.049.002-.096.004-.143.22.848.717 1.396 1.462 1.68.802.303 1.698.292 2.493-.027.435-.176.817-.451 1.119-.9.533-.788.372-1.279.647-1.958.238-.588.911-.588 1.151 0 .272.679.114 1.17.646 1.958.304.449.685.725 1.121.9.792.319 1.688.33 2.49.027.746-.284 1.245-.833 1.465-1.681 0 .048.001.095.001.144.001 3.503-2.819 6.347-6.299 6.347"/></g><g fill="#fff"><circle cx="36.85" cy="21.286" r="1.5"/><circle cx="36.85" cy="25.571" r="1.5"/><circle cx="36.85" cy="29.857" r="1.5"/><circle cx="36.85" cy="34.14" r="1.5"/><circle cx="36.85" cy="38.429" r="1.5"/><circle cx="36.85" cy="42.714" r="1.5"/></g><g fill="#89664c"><path d="m14.432 23.439h-2.922v1.173h2.682v.959h-2.682v1.42h3.057v.992h-4.185v-5.521h4.05v.977"/><path d="m19.13 22.462h1.66v5.521h-1.075v-3.734c0-.107.001-.258.003-.451.003-.194.004-.344.004-.448l-1.046 4.634h-1.121l-1.039-4.634c0 .104.001.254.003.448.003.193.005.344.005.451v3.734h-1.075v-5.521h1.679l1 4.342.997-4.342"/><path d="m26.11 27.492c-.416.43-1.02.645-1.809.645s-1.392-.215-1.809-.645c-.561-.526-.84-1.286-.84-2.276 0-1.012.279-1.771.84-2.278.417-.429 1.02-.644 1.809-.644s1.393.215 1.809.644c.558.507.836 1.267.836 2.278 0 .99-.278 1.75-.836 2.276m-.72-.839c.269-.337.402-.816.402-1.438 0-.62-.134-1.099-.402-1.438-.268-.338-.631-.508-1.088-.508s-.822.169-1.094.507c-.272.337-.408.816-.408 1.438 0 .621.136 1.101.408 1.438.271.338.637.506 1.094.506s.82-.167 1.088-.505"/><path d="m28.497 25.889v.128c.009.428.053.728.132.901s.247.26.505.26c.255 0 .425-.095.507-.285.05-.112.073-.301.073-.568v-3.862h1.154v3.844c0 .47-.079.841-.237 1.116-.27.464-.754.696-1.454.696-.701 0-1.172-.188-1.41-.563-.24-.376-.359-.889-.359-1.538v-.128h1.089z"/><path d="m33.14 27.983h-1.146v-5.521h1.146v5.521"/><path d="m21.668 33.8c-.417.43-1.021.645-1.81.645s-1.392-.215-1.809-.645c-.561-.526-.84-1.285-.84-2.276 0-1.012.279-1.771.84-2.278.417-.429 1.02-.644 1.809-.644s1.393.215 1.81.644c.557.508.835 1.267.835 2.278 0 .991-.278 1.749-.835 2.276m-.722-.839c.27-.337.403-.815.403-1.438 0-.62-.134-1.098-.403-1.437-.268-.339-.63-.508-1.088-.508-.457 0-.821.168-1.094.506-.271.337-.408.816-.408 1.438s.137 1.101.408 1.438c.272.338.637.507 1.094.507.458.001.821-.168 1.088-.506"/><path d="m23.365 28.771h1.209l2.191 3.85v-3.85h1.075v5.521h-1.153l-2.247-3.917v3.917h-1.075v-5.521"/><path d="m33.01 29.747h-2.922v1.173h2.682v.96h-2.682v1.419h3.057v.992h-4.185v-5.521h4.05v.977"/><path d="m21.506 39.18c.198.064.357.186.479.357.099.141.166.292.201.455.036.163.054.318.054.466 0 .374-.075.691-.227.951-.203.35-.519.525-.943.525h-1.214v-2.815h1.214c.175.003.32.024.436.061m-1.079.428v1.837h.544c.277 0 .473-.137.581-.41.061-.15.091-.329.091-.537 0-.286-.046-.506-.136-.66-.09-.152-.269-.229-.536-.229h-.544z"/><path d="m24.763 39.616h-1.489v.598h1.367v.49h-1.367v.724h1.559v.506h-2.134v-2.815h2.064v.497"/><path d="m25.559 39.41c.227-.231.516-.348.865-.348.47 0 .812.155 1.028.467.119.175.184.349.193.524h-.589c-.038-.135-.085-.236-.145-.306-.104-.121-.259-.183-.465-.183-.21 0-.375.086-.496.259-.122.172-.182.417-.182.732 0 .316.063.552.191.709s.29.236.486.236c.202 0 .356-.067.462-.202.059-.072.107-.183.146-.327h.585c-.051.307-.18.557-.387.748-.207.192-.473.289-.797.289-.4 0-.716-.13-.944-.39-.229-.261-.344-.618-.344-1.073.002-.49.133-.868.393-1.135"/><path d="m29.18 40.02v-.372c.172-.007.291-.019.359-.034.11-.023.199-.072.268-.145.047-.05.082-.115.106-.198.014-.05.021-.087.021-.111h.454v2.77h-.558v-1.909h-.65z"/><path d="m33.14 39.626c-.082.081-.195.224-.341.429-.146.206-.268.418-.364.638-.079.171-.148.382-.211.63-.063.248-.094.452-.094.611h-.565c.016-.497.179-1.013.489-1.55.2-.331.367-.563.503-.693h-1.38l.007-.49h1.956v.425"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58 32c0-3.3 1.8-6 4-6v-9h-23.7c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5h-33.3v9c2.2 0 4 2.7 4 6s-1.8 6-4 6v9h33.4c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5h23.6v-9c-2.2 0-4-2.7-4-6" fill="#fbbf67"/><path fill="#ed4c5c" d="m7 19h50v26h-50z"/><path fill="#fbbf67" d="m8 20h48v24h-48z"/><g fill="#89664c"><path d="m48.6 38.2l-.7.4c-.1-.2-.2-.3-.4-.3h-.4c-.2 0-.3.1-.4.3l-.7-.4-1.6-.9v1.9 1.8l1.6-.9.7-.4c.1.2.2.3.4.3h.4c.2 0 .3-.1.4-.3l.7.4 1.6.9v-1.9-1.9l-1.6 1"/><path d="m44.8 32.9c.3.4.6.7 1.1 1 .4.2.9.3 1.4.3.5 0 1-.1 1.4-.3s.8-.5 1.1-1c.1.5-.2 1-.7 1.4-.5.4-1.2.6-1.9.6-.7 0-1.4-.2-1.9-.6-.3-.4-.6-.9-.5-1.4"/><path d="m54.5 27.9v-.1c0-.1 0-.1-.1-.2-.1-.1-.2-.1-.3-.1-.1 0-.2-.1-.3-.1-1.1-2.6-3.6-4.4-6.6-4.4-2.9 0-5.5 1.8-6.6 4.4-.1 0-.2 0-.3.1-.1 0-.2.1-.3.1-.1 0-.1 0-.1.2v.1c0 .3 0 .2.2.3.1 0 .1.1.2.1-.2.6-.3 1.3-.3 1.9 0 4 3.2 7.2 7.1 7.2s7.1-3.2 7.1-7.2c0-.7-.1-1.3-.3-1.9.1-.1.1-.1.2-.1.4-.2.4-.1.4-.3m-7.2-4.1c2.4 0 4.5 1.4 5.6 3.3-.8-.1-1.8-.1-2.3 0-.9.1-1.6.3-2.2.6-.6.3-1.4.3-2 0-.6-.3-1.3-.5-2.2-.6-.5 0-1.5-.1-2.3 0 .9-1.9 3-3.3 5.4-3.3m0 12.7c-3.5 0-6.3-2.8-6.3-6.3 0 0 0-.1 0-.1.2.8.7 1.4 1.5 1.7.8.3 1.7.3 2.5 0 .4-.2.8-.5 1.1-.9.5-.8.4-1.3.6-2 .2-.6.9-.6 1.2 0 .3.7.1 1.2.6 2 .3.4.7.7 1.1.9.8.3 1.7.3 2.5 0 .7-.3 1.2-.8 1.5-1.7 0 0 0 .1 0 .1 0 3.5-2.8 6.3-6.3 6.3"/></g><g fill="#fff"><circle cx="36.8" cy="21.3" r="1.5"/><circle cx="36.8" cy="25.6" r="1.5"/><circle cx="36.8" cy="29.9" r="1.5"/><circle cx="36.8" cy="34.1" r="1.5"/><circle cx="36.8" cy="38.4" r="1.5"/><circle cx="36.8" cy="42.7" r="1.5"/></g><g fill="#89664c"><path d="m14.4 23.4h-2.9v1.2h2.7v1h-2.7v1.4h3.1v1h-4.2v-5.5h4.1v.9z"/><path d="m19.1 22.5h1.7v5.5h-1.1v-3.7c0-.1 0-.3 0-.5 0-.2 0-.3 0-.4l-1 4.6h-1.1l-1-4.6c0 .1 0 .3 0 .4 0 .2 0 .3 0 .5v3.7h-1.1v-5.5h1.7l1 4.3.9-4.3"/><path d="m26.1 27.5c-.4.4-1 .6-1.8.6s-1.4-.2-1.8-.6c-.6-.5-.8-1.3-.8-2.3 0-1 .3-1.8.8-2.3.4-.4 1-.6 1.8-.6s1.4.2 1.8.6c.6.5.8 1.3.8 2.3 0 1-.2 1.8-.8 2.3m-.7-.8c.3-.3.4-.8.4-1.4 0-.6-.1-1.1-.4-1.4-.3-.3-.6-.5-1.1-.5s-.8.2-1.1.5c-.3.3-.4.8-.4 1.4 0 .6.1 1.1.4 1.4.3.3.6.5 1.1.5s.8-.2 1.1-.5"/><path d="m28.5 25.9v.1c0 .4.1.7.1.9s.2.3.5.3c.3 0 .4-.1.5-.3 0-.1.1-.3.1-.6v-3.9h1.2v3.8c0 .5-.1.8-.2 1.1-.3.5-.8.7-1.5.7-.7 0-1.2-.2-1.4-.6-.2-.4-.4-.9-.4-1.5v-.1l1.1.1"/><path d="M33.1,28H32v-5.5h1.1V28z"/><path d="m21.7 33.8c-.4.4-1 .6-1.8.6s-1.4-.2-1.8-.6c-.6-.5-.8-1.3-.8-2.3 0-1 .3-1.8.8-2.3.4-.4 1-.6 1.8-.6s1.4.2 1.8.6c.6.5.8 1.3.8 2.3 0 1-.3 1.8-.8 2.3m-.8-.8c.3-.3.4-.8.4-1.4 0-.6-.1-1.1-.4-1.4-.3-.3-.6-.5-1.1-.5-.5 0-.8.2-1.1.5-.3.3-.4.8-.4 1.4 0 .6.1 1.1.4 1.4.3.3.6.5 1.1.5.5 0 .9-.2 1.1-.5"/><path d="m23.4 28.8h1.2l2.2 3.8v-3.9h1.1v5.5h-1.2l-2.2-3.9v3.9h-1.1v-5.4"/><path d="m33 29.7h-2.9v1.2h2.7v1h-2.7v1.4h3.1v1h-4.2v-5.5h4v.9"/><path d="m21.5 39.2c.2.1.4.2.5.4.1.1.2.3.2.5 0 .2.1.3.1.5 0 .4-.1.7-.2 1-.2.3-.5.5-.9.5h-1.2v-2.8h1.2c0-.2.2-.2.3-.1m-1.1.4v1.8h.6c.3 0 .5-.1.6-.4.1-.2.1-.3.1-.5 0-.3 0-.5-.1-.7-.1-.2-.3-.2-.5-.2h-.7"/><path d="m24.8 39.6h-1.5v.6h1.4v.5h-1.4v.7h1.6v.5h-2.1v-2.8h2.1c-.1 0-.1.5-.1.5"/><path d="m25.6 39.4c.2-.2.5-.3.9-.3.5 0 .8.2 1 .5.1.2.2.3.2.5h-.6c0-.1-.1-.2-.1-.3-.1-.1-.3-.2-.5-.2-.2 0-.4.1-.5.3-.1.2-.2.4-.2.7 0 .3.1.6.2.7s.3.2.5.2c.2 0 .4-.1.5-.2.1-.1.1-.2.1-.3h.6c-.1.3-.2.6-.4.7-.3.2-.5.3-.8.3-.4 0-.7-.1-.9-.4-.2-.3-.3-.6-.3-1.1-.1-.4 0-.8.3-1.1"/><path d="m29.2 40v-.4c.2 0 .3 0 .4 0 .1 0 .2-.1.3-.1 0 0 .1-.1.1-.2 0 0 0-.1 0-.1h.5v2.8h-.6v-2h-.7"/><path d="m33.1 39.6c-.1.1-.2.2-.3.4-.1.2-.3.4-.4.6-.1.2-.1.4-.2.6s-.1.5-.1.6h-.6c0-.5.2-1 .5-1.5.2-.3.4-.6.5-.7h-1.4v-.5h2v.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ac.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ac.svg
index e36a879..7e70040 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ac.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ac.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#686b6d" d="m16.13 31.19l-10.903-.7v-13.47z"/><g fill="#333"><path d="m4.897 11.691l5.978 9.773 5.452-.596-6.437-10.1z"/><path d="m3.203 22.303l2.653-.293-3.371-5.726z"/><path d="m15.319 9.774l6.958 10.446 6.521-.715-7.553-10.821z"/><path d="m27.736 7.489l8.234 11.233 7.929-.868-9.01-11.68z"/><path d="m59.26 16.18l-.525-4.402-7.172-8.674-8.777 1.616 9.928 12.172z"/></g><g fill="#fff"><path d="m21.245 8.684l7.553 10.821 7.172-.783-8.234-11.233z"/><path d="m9.89 10.772l6.437 10.1 5.95-.648-6.958-10.446z"/><path d="m42.786 4.72l-7.9 1.454 9.01 11.68 8.815-.962z"/><path d="m2 12.225l.485 4.059 3.371 5.726 5.02-.546-5.978-9.773z"/><path d="m58.31 8.189l-.74-6.189-6.01 1.104 7.172 8.674z"/></g><path fill="#ebf2f2" d="M58.735 11.778 61.58 15.922 59.94 2.186 57.57 2z"/><path fill="#686b6d" d="m59.26 16.18l-.525-4.402 2.845 4.144z"/><path fill="#333" d="m2.958 22.75v8.979l56.697 3.651v-12.63z"/><g fill="#fff"><path d="m22.774 33.01l6.567.42 7.101-10.68h-7.212z"/><path d="m11.288 32.27l5.492.351 5.889-9.871h-5.984z"/><path d="m36.569 33.895l7.991.515 8.72-11.66h-8.86z"/><path d="m6.154 22.75l-3.196 6.189v2.79l3.277.211 4.965-9.19z"/><path d="m59.655 26.734l-6.215 8.248 6.215.398z"/></g><path fill="#ebf2f2" d="m59.655 26.734l2.345-3.984v12.24l-2.345.39z"/><path fill="#686b6d" d="m59.655 22.75v3.984l2.345-3.984z"/><path fill="#333" d="m2.958 31.729v17.96l56.697 12.311v-26.62z"/><g fill="#fff"><path d="m59.655 36.86l-56.697-4.132.003-1.185 56.694 3.657z"/><path d="m59.655 53.13l-56.697-9.427v-.998l56.697 8.943z"/><path d="m59.655 45.733l-56.697-7.02v-.998l56.697 6.544z"/><path d="m13.778 44.957l-.984-.159v-5.408l.984.12z"/></g><path fill="#181919" d="m13.353 32.432l-10.904-.703v-13.464z"/><g fill="#fff"><path d="m4.582 22.22c0 .562-.385 1.018-.856 1.022-.467.003-.843-.442-.843-.995 0-.555.375-1.01.843-1.022.471-.012.856.433.856.995"/><path d="m4.582 29.913c0 .562-.385.993-.856.966-.467-.025-.843-.495-.843-1.048 0-.554.375-.986.843-.968.471.019.856.489.856 1.05"/><path d="m10.154 30.18c0 .588-.421 1.04-.937 1.012-.512-.029-.923-.521-.923-1.101s.411-1.031.923-1.01c.516.02.937.513.937 1.1"/></g><path fill="#686b6d" d="m62 60.52l-2.345 1.48v-25.14l2.345-.39z"/><g fill="#ebf2f2"><path d="m62 34.99l-2.345.39v1.48l2.345-.39z"/><path d="m62 43.688l-2.345.612v1.433l2.345-.603z"/><path d="m62 50.667l-2.345 1.022v1.441l2.345-1.03z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#686b6d" d="m16.1 31.2l-10.9-.7v-13.5z"/><g fill="#333"><path d="m4.9 11.7l6 9.8 5.4-.6-6.4-10.1z"/><path d="m3.2 22.3l2.7-.3-3.4-5.7z"/><path d="m15.3 9.8l7 10.4 6.5-.7-7.6-10.8z"/><path d="m27.7 7.5l8.3 11.2 7.9-.8-9-11.7z"/><path d="m59.3 16.2l-.6-4.4-7.1-8.7-8.8 1.6 9.9 12.2z"/></g><g fill="#fff"><path d="m21.2 8.7l7.6 10.8 7.2-.8-8.3-11.2z"/><path d="m9.9 10.8l6.4 10.1 6-.7-7-10.4z"/><path d="m42.8 4.7l-7.9 1.5 9 11.7 8.8-1z"/><path d="m2 12.2l.5 4.1 3.4 5.7 5-.5-6-9.8z"/><path d="m58.3 8.2l-.7-6.2-6 1.1 7.1 8.7z"/></g><path fill="#ebf2f2" d="m58.7 11.8l2.9 4.1-1.7-13.7-2.3-.2z"/><path fill="#686b6d" d="m59.3 16.2l-.6-4.4 2.9 4.1z"/><path fill="#333" d="m3 22.8v8.9l56.7 3.7v-12.6z"/><g fill="#fff"><path d="m22.8 33l6.5.4 7.1-10.6h-7.2z"/><path d="m11.3 32.3l5.5.3 5.9-9.8h-6z"/><path d="m36.6 33.9l8 .5 8.7-11.6h-8.9z"/><path d="m6.2 22.8l-3.2 6.1v2.8l3.2.2 5-9.1z"/><path d="m59.7 26.7l-6.3 8.3 6.3.4z"/></g><path fill="#ebf2f2" d="m59.7 26.7l2.3-3.9v12.2l-2.3.4z"/><path fill="#686b6d" d="m59.7 22.8v3.9l2.3-3.9z"/><path fill="#333" d="m3 31.7v18l56.7 12.3v-26.6z"/><g fill="#fff"><path d="m59.7 36.9l-56.7-4.2v-1.2l56.7 3.7z"/><path d="m59.7 53.1l-56.7-9.4v-1l56.7 8.9z"/><path d="m59.7 45.7l-56.7-7v-1l56.7 6.6z"/><path d="m13.8 45l-1-.2v-5.4l1 .1z"/></g><path fill="#181919" d="m13.4 32.4l-11-.7v-13.4z"/><g fill="#fff"><path d="m4.6 22.2c0 .6-.4 1-.9 1-.5 0-.8-.4-.8-1 0-.6.4-1 .8-1 .5 0 .9.5.9 1"/><path d="m4.6 29.9c0 .6-.4 1-.9 1-.5 0-.8-.5-.8-1 0-.6.4-1 .8-1 .5 0 .9.5.9 1"/><path d="m10.2 30.2c0 .6-.4 1-.9 1-.5 0-.9-.5-.9-1.1s.4-1 .9-1c.4 0 .9.5.9 1.1"/></g><path fill="#686b6d" d="m62 60.5l-2.3 1.5v-25.1l2.3-.4z"/><g fill="#ebf2f2"><path d="m62 35l-2.3.4v1.5l2.3-.4z"/><path d="m62 43.7l-2.3.6v1.4l2.3-.6z"/><path d="m62 50.7l-2.3 1v1.4l2.3-1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ad.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ad.svg
index b385010..f947698 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ad.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ad.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m30.887 49.45h.002-.002"/><path fill="#42ade2" d="m43.638 6.928c-6.836 0-13.01-1.889-17.443-4.928-.846 3.646-1.311 7.621-1.312 11.784 0 17.607 18.559 31.883 18.559 31.883s18.559-14.276 18.558-31.883c0-4.076-.444-7.972-1.255-11.556-4.406 2.906-10.443 4.7-17.11 4.7"/><g fill="#3e4347"><path d="m51.647 32.584c0-1.754-3.674-7.149-8.205-7.149-4.533 0-8.205 5.396-8.205 7.149 0 1.756 3.674-.794 8.204-.794 4.536 0 8.206 2.551 8.206.794"/><path d="m41.22 14.917c-1.228-.544-3.592-1.625-5.169-1.625-1.388 0-4.02 1.035-5.255 1.605-1.091.504-1.253.943-1.041 1.63.219.704 1.047 1.102 1.835.924 0 0 3.198-1.512 4.372-1.513 1.195-.003 4.463 1.532 4.463 1.532.788.182 1.618-.223 1.838-.924.212-.687.049-1.143-1.043-1.629"/><path d="m56.734 14.917c-1.226-.545-3.593-1.625-5.167-1.627-1.392.002-4.02 1.037-5.256 1.607-1.093.506-1.256.943-1.043 1.628.221.705 1.048 1.104 1.835.926 0 0 3.199-1.511 4.373-1.512 1.196-.001 4.465 1.531 4.465 1.531.786.182 1.617-.223 1.834-.924.214-.687.05-1.142-1.041-1.629"/></g><path fill="#ff717f" d="m19.478 26.737c-6.212 2.261-12.447 2.59-17.478 1.294.438 3.59 1.331 7.356 2.706 11.137 5.822 15.998 27.404 22.832 27.404 22.832s12.141-19.11 6.317-35.1c-1.348-3.703-3.041-7.097-4.964-10.09-3.04 4.098-7.936 7.723-13.985 9.926"/><g fill="#3e4347"><path d="m33.563 42.794c.58 1.595-.974 7.711-5.092 9.211-4.117 1.498-9.24-2.189-9.82-3.783-.578-1.594 3.601-.493 7.72-1.991 4.116-1.499 6.61-5.03 7.192-3.437"/><path d="m19.314 34.96c-1.293-.091-3.799-.29-5.231.23-1.261.46-3.312 2.271-4.243 3.197-.823.82-.828 1.271-.407 1.824.43.569 1.317.655 1.972.233 0 0 2.407-2.431 3.473-2.82 1.086-.397 4.561-.083 4.561-.083.776-.095 1.399-.736 1.363-1.447-.036-.695-.334-1.055-1.488-1.134"/><path d="m33.414 29.83c-1.295-.092-3.803-.291-5.233.229-1.264.46-3.313 2.271-4.243 3.196-.825.821-.827 1.273-.408 1.827.431.566 1.316.654 1.974.231 0 0 2.403-2.431 3.471-2.819 1.087-.398 4.563-.083 4.563-.083.774-.096 1.395-.737 1.359-1.448-.034-.695-.331-1.055-1.483-1.133"/></g><path fill="#dbb046" d="m24.978 13.815c-.177 1.775-.624 3.492-1.309 5.16-.344.835-.777 1.644-1.324 2.42-.555.762-1.284 1.502-2.284 1.908-.998.428-2.164.314-3.03-.078-.894-.372-1.612-.924-2.327-1.452-1.377-1.083-2.765-2.257-3.809-3.807-.519-.774-.92-1.661-1.13-2.61-.192-.951-.212-1.948-.048-2.908.309-1.935 1.263-3.694 2.533-5.08 1.285-1.377 2.852-2.464 4.59-3.123 1.708-.654 3.708-.927 5.408-.23l-.045.195c-1.733-.038-3.292.621-4.694 1.438-1.397.841-2.649 1.902-3.672 3.121-1.02 1.212-1.856 2.572-2.234 4.057-.367 1.485-.241 3.059.351 4.578.597 1.527 1.728 2.877 3.12 3.87.681.498 1.466.871 2.241 1 .786.135 1.481-.041 2.04-.412 1.122-.76 2.066-2.151 2.905-3.589.85-1.453 1.608-3 2.529-4.524l.19.062"/><path fill="#ffce31" d="m24.814 13.857c-1.781-1.175-3.872-1.702-5.748-1.434-.92.142-1.745.535-2.138 1.144-.399.598-.457 1.453-.276 2.384.088.463.218.94.393 1.415.178.479.39 1.066.507 1.626.239 1.135.231 2.312-.034 3.413-.521 2.194-2.109 4.155-4.385 4.916-1.124.371-2.446.398-3.618-.09-1.179-.471-2.133-1.373-2.796-2.378-.666-.979-1.157-2.121-1.399-3.298-.253-1.179-.231-2.378-.104-3.516.3-2.281 1.083-4.347 1.627-6.328.253-.987.451-1.975.237-2.854-.187-.892-.978-1.612-1.929-2.109l.064-.189c.542.1 1.088.271 1.589.586.504.303.962.772 1.229 1.345.555 1.159.475 2.406.357 3.51-.275 2.235-.894 4.271-1.056 6.276-.209 1.985-.023 3.91.975 5.573.916 1.621 2.598 2.716 4.561 2.41.944-.162 1.901-.604 2.617-1.325.728-.709 1.221-1.658 1.396-2.659.178-1.01-.007-2.039-.396-2.956-.193-.471-.43-.864-.725-1.35-.287-.495-.539-1.027-.723-1.604-.17-.578-.301-1.206-.244-1.874.042-.661.254-1.371.686-1.942.864-1.188 2.251-1.62 3.44-1.668 2.417-.07 4.706 1.043 6.03 2.831l-.136.145"/><circle fill="#ffd86c" cx="24.883" cy="13.784" r="2.452"/><path fill="#dbb046" d="m42.06 38.567c-1.107 1.489-1.947 3.145-2.556 4.945-.305.901-.514 1.854-.607 2.868-.076 1.01.01 2.138.556 3.223.53 1.099 1.583 1.914 2.584 2.286 1.01.409 1.998.545 2.968.695 1.914.24 3.901.42 5.869.047.98-.189 1.941-.553 2.788-1.115.833-.574 1.555-1.319 2.097-2.179 1.109-1.712 1.559-3.792 1.479-5.83-.099-2.045-.638-4.086-1.62-5.934-.487-.921-1.105-1.825-1.845-2.596l-.683.885c.398.73.712 1.496.977 2.262.571 1.723.865 3.501.856 5.221-.007 1.714-.271 3.398-1.01 4.82-.745 1.417-1.963 2.519-3.53 3.218-1.578.702-3.476.855-5.339.534-.921-.147-1.84-.47-2.58-.969-.751-.507-1.206-1.179-1.41-1.896-.398-1.445-.203-3.238.114-4.982.319-1.765.783-3.534 1.089-5.405l-.202-.098"/><path fill="#ffce31" d="m40.891 37.935c2.233.78 4.175 2.261 5.324 4.081.556.9.84 1.884.639 2.632-.188.746-.83 1.365-1.706 1.824-.434.23-.91.435-1.418.597-.513.162-1.136.366-1.668.636-1.082.543-2.02 1.332-2.705 2.296-1.378 1.912-1.791 4.605-.746 7.104.521 1.229 1.459 2.406 2.701 3.108 1.233.72 2.649.955 3.935.869 1.267-.066 2.537-.396 3.655-.964 1.126-.562 2.07-1.376 2.888-2.243 1.607-1.777 2.69-3.834 3.879-5.626.606-.877 1.252-1.706 2.111-2.104.851-.429 2-.214 3.089.288l.104-.183c-.472-.408-1.01-.772-1.622-1-.608-.24-1.317-.329-1.969-.183-1.331.283-2.271 1.182-3.067 2.02-1.588 1.725-2.768 3.617-4.254 5.091-1.436 1.501-3.109 2.617-5.166 2.847-1.963.275-4.061-.472-5.242-2.393-.557-.935-.899-2.066-.843-3.172.038-1.107.44-2.17 1.113-2.988.676-.823 1.636-1.348 2.652-1.615.517-.144 1-.198 1.605-.262.605-.078 1.214-.21 1.81-.433.586-.235 1.183-.538 1.676-1.03.499-.477.913-1.133 1.057-1.891.321-1.545-.341-3.046-1.167-4.119-1.701-2.164-4.255-3.428-6.646-3.4l-.019.217"/><ellipse transform="matrix(-.6386-.7695.7695-.6386 37.909 93.46)" fill="#ffd86c" cx="40.899" cy="37.827" rx="2.79" ry="2.549"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m30.9 49.5v-.1z"/><path d="m43.6 6.9c-6.8 0-13-1.9-17.4-4.9-.8 3.6-1.3 7.6-1.3 11.8 0 17.6 18.6 31.9 18.6 31.9s18.5-14.3 18.5-31.9c0-4.1-.4-8-1.3-11.6-4.4 2.9-10.4 4.7-17.1 4.7" fill="#42ade2"/><g fill="#3e4347"><path d="m51.6 32.6c0-1.8-3.7-7.1-8.2-7.1-4.5 0-8.2 5.4-8.2 7.1 0 1.8 3.7-.8 8.2-.8 4.6 0 8.2 2.5 8.2.8"/><path d="m41.2 14.9c-1.2-.5-3.6-1.6-5.2-1.6-1.4 0-4 1-5.3 1.6-1.1.5-1.3.9-1 1.6.2.7 1 1.1 1.8.9 0 0 3.2-1.5 4.4-1.5 1.2 0 4.5 1.5 4.5 1.5.8.2 1.6-.2 1.8-.9.3-.6.1-1.1-1-1.6"/><path d="m56.7 14.9c-1.2-.5-3.6-1.6-5.2-1.6-1.4 0-4 1-5.3 1.6-1.1.5-1.3.9-1 1.6.2.7 1 1.1 1.8.9 0 0 3.2-1.5 4.4-1.5 1.2 0 4.5 1.5 4.5 1.5.8.2 1.6-.2 1.8-.9.3-.6.1-1.1-1-1.6"/></g><path d="m19.5 26.7c-6.2 2.3-12.5 2.6-17.5 1.3.4 3.6 1.3 7.4 2.7 11.1 5.8 16.1 27.4 22.9 27.4 22.9s12.1-19.1 6.3-35.1c-1.3-3.7-3-7.1-5-10.1-3 4.1-7.9 7.7-13.9 9.9" fill="#ff717f"/><g fill="#3e4347"><path d="m33.6 42.8c.6 1.6-1 7.7-5.1 9.2-4.1 1.5-9.2-2.2-9.8-3.8-.6-1.6 3.6-.5 7.7-2 4.1-1.5 6.6-5 7.2-3.4"/><path d="m19.3 35c-1.3-.1-3.8-.3-5.2.2-1.3.5-3.3 2.3-4.2 3.2-.9.8-.9 1.3-.5 1.8.4.6 1.3.7 2 .2 0 0 2.4-2.4 3.5-2.8 1.1-.4 4.6-.1 4.6-.1.8-.1 1.4-.7 1.4-1.4-.1-.7-.4-1.1-1.6-1.1"/><path d="m33.4 29.8c-1.3-.1-3.8-.3-5.2.2-1.3.5-3.3 2.3-4.2 3.2-.8.8-.8 1.3-.4 1.8.4.6 1.3.7 2 .2 0 0 2.4-2.4 3.5-2.8 1.1-.4 4.6-.1 4.6-.1.8-.1 1.4-.7 1.4-1.4-.2-.6-.5-1-1.7-1.1"/></g><path d="m25 13.8c-.2 1.8-.6 3.5-1.3 5.2-.3.8-.8 1.6-1.3 2.4-.6.8-1.3 1.5-2.3 1.9-1 .4-2.2.3-3-.1-.9-.4-1.6-.9-2.3-1.5-1.4-1.1-2.8-2.3-3.8-3.8-.5-.8-.9-1.7-1.1-2.6-.2-1-.2-1.9 0-2.9.3-1.9 1.3-3.7 2.5-5.1 1.3-1.4 2.9-2.5 4.6-3.1 1.7-.7 3.7-.9 5.4-.2v.2c-1.7 0-3.3.6-4.7 1.4-1.4.8-2.6 1.9-3.7 3.1-1 1.2-1.9 2.6-2.2 4.1-.4 1.5-.2 3.1.4 4.6.6 1.5 1.7 2.9 3.1 3.9.7.5 1.5.9 2.2 1 .8.1 1.5 0 2-.4 1.1-.8 2.1-2.2 2.9-3.6.9-1.5 1.6-3 2.5-4.5h.1" fill="#dbb046"/><path d="m24.8 13.9c-1.8-1.2-3.9-1.7-5.7-1.4-.9.1-1.7.5-2.1 1.1-.4.6-.5 1.5-.3 2.4.1.5.2.9.4 1.4.2.5.4 1.1.5 1.6.2 1.1.2 2.3 0 3.4-.5 2.2-2.1 4.2-4.4 4.9-1.1.4-2.4.4-3.6-.1-1.2-.5-2.1-1.4-2.8-2.4-.7-1-1.2-2.1-1.4-3.3-.3-1.2-.2-2.4-.1-3.5.3-2.3 1.1-4.3 1.6-6.3.3-1 .5-2 .2-2.9-.2-.8-1-1.6-1.9-2.1l.1-.2c.5.1 1.1.3 1.6.6.5.3 1 .8 1.2 1.3.6 1.2.5 2.4.4 3.5-.3 2.2-.9 4.3-1.1 6.3-.2 2 0 3.9 1 5.6.9 1.6 2.6 2.7 4.6 2.4.9-.2 1.9-.6 2.6-1.3.7-.7 1.2-1.7 1.4-2.7.2-1 0-2-.4-3-.2-.5-.4-.9-.7-1.4-.3-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.2-1.9 0-.7.3-1.4.7-1.9.9-1.2 2.3-1.6 3.4-1.7 2.4-.1 4.7 1 6 2.8l-.3.4" fill="#ffce31"/><circle cx="24.9" cy="13.8" r="2.5" fill="#ffd86c"/><path d="m42.1 38.6c-1.1 1.5-1.9 3.1-2.6 4.9-.3.9-.5 1.9-.6 2.9-.1 1 0 2.1.6 3.2.5 1.1 1.6 1.9 2.6 2.3 1 .4 2 .5 3 .7 1.9.2 3.9.4 5.9 0 1-.2 1.9-.6 2.8-1.1.8-.6 1.6-1.3 2.1-2.2 1.1-1.7 1.6-3.8 1.5-5.8-.1-2-.6-4.1-1.6-5.9-.5-.9-1.1-1.8-1.8-2.6l-.7.9c.4.7.7 1.5 1 2.3.6 1.7.9 3.5.9 5.2 0 1.7-.3 3.4-1 4.8-.7 1.4-2 2.5-3.5 3.2-1.6.7-3.5.9-5.3.5-.9-.1-1.8-.5-2.6-1-.8-.5-1.2-1.2-1.4-1.9-.4-1.4-.2-3.2.1-5 .3-1.8.8-3.5 1.1-5.4h-.5" fill="#dbb046"/><path d="m40.9 37.9c2.2.8 4.2 2.3 5.3 4.1.6.9.8 1.9.6 2.6-.2.7-.8 1.4-1.7 1.8-.4.2-.9.4-1.4.6-.5.2-1.1.4-1.7.6-1 .6-2 1.4-2.6 2.4-1.4 1.9-1.8 4.6-.7 7.1.5 1.2 1.5 2.4 2.7 3.1 1.2.7 2.6 1 3.9.9 1.3-.1 2.5-.4 3.7-1 1.1-.6 2.1-1.4 2.9-2.2 1.6-1.8 2.7-3.8 3.9-5.6.6-.9 1.3-1.7 2.1-2.1.9-.4 2-.2 3.1.3l.1-.2c-.5-.4-1-.8-1.6-1-.6-.2-1.3-.3-2-.2-1.3.3-2.3 1.2-3.1 2-1.6 1.7-2.8 3.6-4.3 5.1-1.4 1.5-3.1 2.6-5.2 2.8-2 .3-4.1-.5-5.2-2.4-.6-.9-.9-2.1-.8-3.2 0-1.1.4-2.2 1.1-3 .7-.8 1.6-1.3 2.7-1.6.5-.1 1-.2 1.6-.3.6-.1 1.2-.2 1.8-.4.6-.2 1.2-.5 1.7-1 .5-.5.9-1.1 1.1-1.9.3-1.5-.3-3-1.2-4.1-1.7-2.2-4.3-3.4-6.6-3.4l-.2.2" fill="#ffce31"/><ellipse transform="matrix(.7695-.6386.6386.7695-14.7314 34.8373)" cx="40.9" cy="37.8" rx="2.5" ry="2.8" fill="#ffd86c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ae.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ae.svg
index 137364f..534a483 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ae.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ae.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m61.876 44.2l-4.392-22.11c-.965-5.144-5.388-9.04-10.715-9.09v-.004h-29.432c-5.376-.002-9.854 3.914-10.824 9.09l-4.39 22.1c-.081.39-.129.79-.123 1.205-.005 3.091 2.461 5.598 5.505 5.598 1.959 0 3.681-1.039 4.657-2.607l7.243-9.04c1.157 1.094 2.71 1.763 4.416 1.765 3.577-.002 6.48-2.949 6.48-6.591h3.5c0 3.639 2.904 6.59 6.482 6.59 1.677 0 3.202-.647 4.354-1.704l7.197 8.98c.979 1.564 2.702 2.607 4.658 2.607 3.043 0 5.512-2.507 5.508-5.601.004-.415-.043-.815-.124-1.203"/><g fill="#94989b"><path d="m20.923 25.24c.701.715 1.503.505 1.781-.468l.004-3.126c-.282-.972-1.084-1.181-1.787-.465l-.718.729c-.703.717-.703 1.884.001 2.6l.719.73"/><path d="m15.801 17.759c-.961.279-1.166 1.099-.46 1.813l.719.729c.703.716 1.854.716 2.558 0l.714-.728c.705-.716.499-1.535-.455-1.817l-3.076.003"/><path d="m13.753 21.19c-.703-.716-1.509-.507-1.784.466l-.004 3.126c.28.973 1.085 1.183 1.789.465l.716-.729c.704-.715.703-1.883 0-2.6l-.717-.728"/><path d="m18.875 28.671c.954-.283 1.16-1.098.457-1.813l-.716-.73c-.705-.714-1.854-.714-2.558.001l-.718.729c-.706.717-.501 1.531.457 1.817l3.078-.004"/></g><g fill="#f2b200"><path d="m49.46 23.22c-.999-.003-1.809.822-1.807 1.839-.002 1.016.807 1.839 1.805 1.838 1 .001 1.813-.822 1.813-1.841-.001-1.016-.813-1.838-1.811-1.836"/><path d="m44.25 25.05c-1 0-1.81.824-1.808 1.841 0 1.015.809 1.841 1.808 1.841.998 0 1.812-.825 1.812-1.841-.003-1.017-.812-1.841-1.812-1.841"/><path d="m49.29 21.374c.999 0 1.808-.825 1.81-1.839-.002-1.017-.81-1.84-1.81-1.839-1-.004-1.812.82-1.81 1.839 0 1.014.81 1.839 1.81 1.839"/><path d="m44.08 23.21c1 .005 1.81-.82 1.808-1.839 0-1.014-.808-1.837-1.805-1.839-1 .002-1.813.825-1.813 1.841.002 1.017.809 1.84 1.81 1.837"/></g><g fill="#94989b"><ellipse cx="40.29" cy="34.526" rx="4.343" ry="4.416"/><path d="m23.821 30.11c-2.399 0-4.346 1.978-4.345 4.416 0 2.44 1.944 4.415 4.341 4.413 2.401.004 4.348-1.973 4.344-4.414 0-2.437-1.943-4.412-4.34-4.415"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.9 44.2l-4.4-22.1c-1-5.1-5.4-9-10.7-9.1h-29.5c-5.4 0-9.9 3.9-10.8 9.1l-4.4 22.1c-.1.4-.1.8-.1 1.2 0 3.1 2.5 5.6 5.5 5.6 2 0 3.7-1 4.7-2.6l7.2-9c1.2 1.1 2.7 1.8 4.4 1.8 3.6 0 6.5-2.9 6.5-6.6h3.5c0 3.6 2.9 6.6 6.5 6.6 1.7 0 3.2-.6 4.4-1.7l7.2 9c1 1.6 2.7 2.6 4.7 2.6 3 0 5.5-2.5 5.5-5.6-.1-.5-.1-.9-.2-1.3" fill="#333"/><g fill="#94989b"><path d="m20.9 25.2c.7.7 1.5.5 1.8-.5v-3.1c-.3-1-1.1-1.2-1.8-.5l-.7.7c-.7.7-.7 1.9 0 2.6l.7.8"/><path d="m15.8 17.8c-1 .3-1.2 1.1-.5 1.8l.7.7c.7.7 1.9.7 2.6 0l.7-.7c.7-.7.5-1.5-.5-1.8h-3"/><path d="m13.8 21.2c-.7-.7-1.5-.5-1.8.5v3.1c.3 1 1.1 1.2 1.8.5l.7-.7c.7-.7.7-1.9 0-2.6l-.7-.8"/><path d="m18.9 28.7c1-.3 1.2-1.1.5-1.8l-.7-.7c-.7-.7-1.9-.7-2.6 0l-.7.7c-.7.7-.5 1.5.5 1.8h3"/></g><g fill="#f2b200"><path d="m49.5 23.2c-1 0-1.8.8-1.8 1.8 0 1 .8 1.8 1.8 1.8 1 0 1.8-.8 1.8-1.8 0-1-.8-1.8-1.8-1.8"/><path d="m44.2 25.1c-1 0-1.8.8-1.8 1.8 0 1 .8 1.8 1.8 1.8 1 0 1.8-.8 1.8-1.8.1-1-.8-1.8-1.8-1.8"/><path d="m49.3 21.4c1 0 1.8-.8 1.8-1.8 0-1-.8-1.8-1.8-1.8-1 0-1.8.8-1.8 1.8 0 .9.8 1.8 1.8 1.8"/><path d="m44.1 23.2c1 0 1.8-.8 1.8-1.8 0-1-.8-1.8-1.8-1.8-1 0-1.8.8-1.8 1.8 0 1 .8 1.8 1.8 1.8"/></g><g fill="#94989b"><ellipse cx="40.3" cy="34.5" rx="4.3" ry="4.4"/><path d="m23.8 30.1c-2.4 0-4.3 2-4.3 4.4 0 2.4 1.9 4.4 4.3 4.4 2.4 0 4.3-2 4.3-4.4.1-2.4-1.9-4.4-4.3-4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3af.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3af.svg
index ec7d0f2..fe4adfa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3af.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3af.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#fff" cx="26.649" cy="31.976" rx="21.603" ry="26.412"/><ellipse fill="#ed4c5c" cx="28.994" cy="31.977" rx="2.709" ry="3.912"/><path fill="#428bc1" d="m41.43 36.795c.12-.487.229-.981.313-1.485.036-.214.055-.435.084-.65.044-.326.095-.649.123-.981.047-.56.072-1.126.072-1.7s-.025-1.141-.072-1.7c-.028-.339-.081-.667-.126-.999-.027-.211-.045-.425-.08-.633-.087-.516-.196-1.021-.32-1.52-.003-.01-.004-.021-.008-.03-1.768-7.02-7.238-12.157-13.707-12.157-7.893 0-14.314 7.643-14.314 17.04 0 9.393 6.421 17.04 14.314 17.04 6.467 0 11.938-5.133 13.707-12.152.005-.023.007-.046.014-.067m-12.842 4.983c-4.421 0-8.02-4.397-8.02-9.801 0-5.405 3.596-9.804 8.02-9.804.955 0 1.868.216 2.719.593 2.914 1.621 4.942 5.136 4.942 9.211 0 4.08-2.035 7.599-4.958 9.215-.845.372-1.752.586-2.703.586"/><path fill="#3e4347" d="m51.623 31.976c0-.508-.012-1.014-.032-1.516-.654-15.84-11.52-28.484-24.78-28.484-13.682 0-24.811 13.458-24.811 30s11.129 30 24.811 30c13.261 0 24.13-12.645 24.78-28.485.02-.502.032-1.01.032-1.515m-24 22.722c-10.249 0-18.587-10.193-18.587-22.723 0-12.531 8.338-22.725 18.587-22.725 4.124 0 7.937 1.652 11.02 4.442 4.488 4.256 7.381 10.865 7.381 18.282 0 7.415-2.893 14.02-7.381 18.28-3.086 2.792-6.899 4.444-11.02 4.444"/><path fill="#fff" d="m33.1 29.29h18.13v5.25h-18.12z"/><path fill="#f2b200" d="m45.511 35.976l16.489 8.607-2.261-11.719h-16.609z"/><g fill="#c94747"><path d="m51.576 39.14l-2.106-1.1-3.07-5.561h2.11z"/><path d="m57.908 42.45l-2.111-1.11-3.069-8.861h2.11z"/></g><path fill="#f2b200" d="m45.511 27.851l16.489-8.608-2.261 11.719h-16.609z"/><g fill="#c94747"><path d="m51.576 24.685l-2.106 1.101-3.07 5.561h2.11z"/><path d="m57.908 21.38l-2.111 1.101-3.069 8.866h2.11z"/></g><path fill="#754e27" d="m60.17 30.579c-2.313.002-27.1 0-30.338.002-.187-.002-.373 0-.559-.002-.917.002-.918 2.668 0 2.664 2.313.004 27.1.002 30.338.004.186-.004.372 0 .559-.004.916.004.916-2.66 0-2.664"/><path fill="#b28769" d="m59.55 31.19c-2.22 0-26.01 0-29.12 0-.179 0-.357 0-.537 0-.879 0-.88 1.438 0 1.437 2.219.001 26.01.001 29.12.001.179-.001.357 0 .536-.001.88.001.88-1.435 0-1.437"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="26.6" cy="32" rx="21.6" ry="26.4" fill="#fff"/><ellipse cx="29" cy="32" rx="2.7" ry="3.9" fill="#ed4c5c"/><path d="m41.4 36.8c.1-.5.2-1 .3-1.5 0-.2.1-.4.1-.7 0-.3.1-.6.1-1 0-.6.1-1.1.1-1.7s0-1.1-.1-1.7c0-.3-.1-.7-.1-1 0-.2 0-.4-.1-.6-.1-.5-.2-1-.3-1.5-1.8-7-7.2-12.2-13.7-12.2-7.9 0-14.3 7.6-14.3 17 0 9.4 6.4 17 14.3 17 6.5.1 11.9-5 13.7-12.1m-12.8 5c-4.4 0-8-4.4-8-9.8 0-5.4 3.6-9.8 8-9.8 1 0 1.9.2 2.7.6 2.9 1.6 4.9 5.1 4.9 9.2 0 4.1-2 7.6-5 9.2-.8.4-1.7.6-2.6.6" fill="#428bc1"/><path d="m51.6 32c0-.5 0-1 0-1.5-.7-15.9-11.5-28.5-24.8-28.5-13.7 0-24.8 13.4-24.8 30s11.1 30 24.8 30c13.3 0 24.1-12.6 24.8-28.5 0-.5 0-1 0-1.5m-24 22.7c-10.2 0-18.6-10.2-18.6-22.7 0-12.6 8.4-22.7 18.6-22.7 4.1 0 7.9 1.7 11 4.4 4.5 4.2 7.4 10.9 7.4 18.3 0 7.4-2.9 14-7.4 18.3-3 2.7-6.9 4.4-11 4.4" fill="#3e4347"/><path fill="#fff" d="m33.1 29.3h18.1v5.3h-18.1z"/><path fill="#f2b200" d="m45.5 36l16.5 8.6-2.3-11.7h-16.6z"/><g fill="#c94747"><path d="m51.6 39.1l-2.1-1.1-3.1-5.5h2.1z"/><path d="m57.9 42.4l-2.1-1.1-3.1-8.8h2.1z"/></g><path fill="#f2b200" d="m45.5 27.9l16.5-8.7-2.3 11.8h-16.6z"/><g fill="#c94747"><path d="m51.6 24.7l-2.1 1.1-3.1 5.5h2.1z"/><path d="m57.9 21.4l-2.1 1.1-3.1 8.8h2.1z"/></g><path d="m60.2 30.6c-2.3 0-27.1 0-30.3 0-.2 0-.4 0-.6 0-.9 0-.9 2.7 0 2.7 2.3 0 27.1 0 30.3 0 .2 0 .4 0 .6 0 .9-.1.9-2.7 0-2.7" fill="#754e27"/><path d="m59.6 31.2c-2.2 0-26 0-29.1 0-.2 0-.4 0-.5 0-.9 0-.9 1.4 0 1.4 2.2 0 26 0 29.1 0 .2 0 .4 0 .5 0 .8 0 .8-1.4 0-1.4" fill="#b28769"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b0.svg
index 9a23eba..bf844ef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b0.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="M64,53.839c0,2.564-1.727,4.642-3.856,4.642H3.856C1.727,58.48,0,56.403,0,53.839V13.548
- c0-2.564,1.727-4.642,3.856-4.642h56.287c2.13,0,3.856,2.077,3.856,4.642V53.839z"/><path fill="#b2b2b2" d="m3.938 54.953c5.672 0 11.345 0 17.02 0-1.767-13.817-1.767-28.702 0-42.52-5.672 0-11.345 0-17.02 0-4.49 13.818-4.49 28.703 0 42.52"/><path fill="#d0d0d0" d="m2.862 51.3c5.89 0 11.78 0 17.67 0-1.203-11.54-1.203-23.679 0-35.22-5.89 0-11.78 0-17.67 0-3.056 11.54-3.056 23.679 0 35.22"/><path fill="#fff" d="m1.983 47.566c6.067 0 12.135 0 18.203 0-.742-9.152-.742-18.594 0-27.745-6.068 0-12.135 0-18.203 0-1.884 9.152-1.884 18.593 0 27.745"/><path fill="#4187b7" d="m19.556 17.05c-5.354 0-10.708 0-16.06 0 .375-1.549.803-3.088 1.284-4.615 5.113 0 10.227 0 15.34 0-.211 1.526-.398 3.066-.561 4.615"/><path fill="#fbbf67" d="m19.746 54.953c-.367-2.846-4.04-5.199-8.321-5.198-4.272-.001-7.205 2.353-6.278 5.198 4.866 0 9.732 0 14.599 0"/><path fill="#b2b2b2" d="m23.491 54.953c5.672 0 11.345 0 17.02 0 1.361-13.817 1.361-28.702 0-42.52-5.673 0-11.345 0-17.02 0-1.361 13.818-1.361 28.703 0 42.52"/><path fill="#d0d0d0" d="m23.16 51.3c5.89 0 11.78 0 17.67 0 .927-11.54.927-23.679 0-35.22-5.89 0-11.78 0-17.67 0-.926 11.54-.926 23.679 0 35.22"/><path fill="#fff" d="m22.898 47.563c6.068 0 12.136 0 18.203 0 .571-9.15.571-18.591 0-27.741-6.067 0-12.135 0-18.203 0-.57 9.151-.57 18.591 0 27.741"/><path fill="#4187b7" d="m40.03 17.05c-5.354 0-10.708 0-16.06 0 .106-1.549.226-3.088.362-4.615 5.113 0 10.227 0 15.34 0 .136 1.526.256 3.066.361 4.615"/><path fill="#fbbf67" d="m39.3 54.953c.279-2.846-3.02-5.199-7.301-5.198-4.274-.001-7.579 2.353-7.3 5.198 4.867 0 9.734 0 14.601 0"/><path fill="#b2b2b2" d="m43.05 54.953c5.673 0 11.345 0 17.02 0 4.489-13.817 4.489-28.702 0-42.52-5.673 0-11.345 0-17.02 0 1.767 13.818 1.767 28.703 0 42.52"/><path fill="#d0d0d0" d="m43.47 51.3c5.891 0 11.78 0 17.67 0 3.056-11.54 3.056-23.679 0-35.22-5.89 0-11.779 0-17.67 0 1.203 11.54 1.203 23.679 0 35.22"/><path fill="#fff" d="m43.814 47.563c6.067 0 12.135 0 18.203 0 1.883-9.15 1.883-18.591-.001-27.741-6.067 0-12.135 0-18.202 0 .742 9.151.742 18.591 0 27.741"/><path fill="#4187b7" d="m60.51 17.05c-5.354 0-10.709 0-16.06 0-.164-1.549-.351-3.088-.561-4.615 5.113 0 10.227 0 15.34 0 .481 1.526.909 3.066 1.284 4.615"/><path fill="#fbbf67" d="m58.854 54.953c.926-2.846-2.01-5.199-6.279-5.198-4.276-.001-7.953 2.353-8.32 5.198 4.865 0 9.732 0 14.599 0"/><path fill="#3390ff" d="m49.51 40.752c-.146 0-.284-.063-.379-.174s-.138-.257-.115-.4c.027-.186.681-4.257 4.24-7.256-.373-.056-.818-.102-1.282-.102-1.737 0-2.797.604-3.148 1.794-.063.213-.258.358-.479.358h-1.443c-.276 0-.5-.224-.5-.5v-5.726c0-.276.224-.5.5-.5h1.443c.26 0 .473.198.498.451.888-.407 2.463-.988 4.211-.988.767 0 1.497.114 2.171.339 1.269.423 1.834.82 2.173 1.058.075.053.169.119.2.131.039-.025.381-.251.526-.348.082-.054.178-.083.276-.083h2.501c.206 0 .391.126.466.318.074.192.024.41-.127.55-.042.039-4.155 3.916-4.155 10.579 0 .276-.224.5-.5.5h-7.08z"/><path fill="#161616" d="m53.06 28.21c.658 0 1.341.089 2.01.313 1.927.643 2.119 1.208 2.491 1.208.175 0 .39-.125.843-.425h2.501c0 0-4.316 3.965-4.316 10.947h-7.08c0 0 .704-4.666 4.917-7.598 0 0-1.145-.333-2.453-.333-1.455 0-3.113.413-3.628 2.152h-1.443v-5.726h1.443v.766c-.001-.001 2.183-1.304 4.708-1.304m7.847 1.096h.005m-7.852-2.096c-1.576 0-3.02.449-3.986.847-.182-.19-.438-.309-.723-.309h-1.443c-.553 0-1 .448-1 1v5.726c0 .553.447 1 1 1h1.443c.443 0 .833-.292.959-.717.104-.354.425-1.436 2.669-1.436.038 0 .077.001.115.001-2.965 3.01-3.541 6.604-3.568 6.781-.043.288.041.581.231.802.189.221.467.348.758.348h7.08c.553 0 1-.447 1-1 0-6.24 3.68-9.91 3.975-10.193.211-.184.345-.453.345-.754 0-.552-.445-1-.998-1h-.005-2.501c-.196 0-.389.058-.553.167-.049.033-.152.101-.251.163-.355-.247-.984-.651-2.214-1.062-.726-.241-1.509-.364-2.329-.364z"/><path fill="#fff" d="m27.605 40.752c-.146 0-.284-.063-.379-.174-.095-.11-.137-.257-.116-.4.028-.186.681-4.257 4.241-7.256-.374-.056-.819-.102-1.283-.102-1.737 0-2.796.604-3.148 1.794-.063.213-.258.358-.479.358h-1.443c-.276 0-.5-.224-.5-.5v-5.726c0-.276.224-.5.5-.5h1.443c.26 0 .473.198.498.451.888-.407 2.463-.988 4.211-.988.767 0 1.497.114 2.171.339 1.269.423 1.834.82 2.173 1.058.075.053.169.119.2.131.039-.025.381-.251.526-.348.082-.054.178-.083.276-.083h2.501c.206 0 .391.126.466.318.074.192.024.41-.127.55-.042.039-4.155 3.916-4.155 10.579 0 .276-.224.5-.5.5h-7.08z"/><path fill="#161616" d="m31.15 28.21c.659 0 1.341.089 2.01.313 1.927.643 2.119 1.208 2.491 1.208.175 0 .39-.125.843-.425h2.501c0 0-4.316 3.965-4.316 10.947h-7.08c0 0 .704-4.666 4.917-7.598 0 0-1.144-.333-2.453-.333-1.455 0-3.113.413-3.628 2.152h-1.443v-5.726h1.443v.766c-.001-.001 2.184-1.304 4.708-1.304m7.848 1.096h.005m-7.853-2.096c-1.576 0-3.02.449-3.985.847-.182-.19-.439-.309-.723-.309h-1.443c-.552 0-1 .448-1 1v5.726c0 .553.448 1 1 1h1.443c.443 0 .833-.292.959-.717.105-.354.425-1.436 2.669-1.436.039 0 .077.001.115.001-2.964 3.01-3.541 6.604-3.567 6.781-.043.288.041.581.231.802.19.221.466.348.758.348h7.08c.553 0 1-.447 1-1 0-6.24 3.68-9.91 3.975-10.193.211-.184.345-.453.345-.754 0-.552-.445-1-.998-1h-.005-2.501c-.196 0-.389.058-.553.167-.049.033-.152.101-.251.163-.355-.247-.984-.651-2.214-1.062-.727-.241-1.51-.364-2.331-.364z"/><path fill="#ed4c5c" d="m5.699 40.752c-.146 0-.284-.063-.379-.174-.095-.11-.137-.257-.116-.4.028-.186.681-4.257 4.241-7.256-.374-.056-.819-.102-1.283-.102-1.737 0-2.796.604-3.148 1.794-.063.213-.258.358-.479.358h-1.443c-.276 0-.5-.224-.5-.5v-5.726c0-.276.224-.5.5-.5h1.443c.26 0 .473.198.498.451.888-.407 2.463-.988 4.211-.988.767 0 1.497.114 2.171.339 1.269.423 1.834.82 2.172 1.058.075.053.169.119.201.131.038-.025.38-.251.526-.348.082-.054.178-.083.276-.083h2.501c.206 0 .391.126.465.318.075.192.024.41-.126.55-.042.039-4.155 3.916-4.155 10.579 0 .276-.224.5-.5.5h-7.08z"/><path fill="#161616" d="m9.244 28.21c.659 0 1.341.089 2.01.313 1.927.643 2.119 1.208 2.491 1.208.175 0 .39-.125.843-.425h2.501c0 0-4.316 3.965-4.316 10.947h-7.08c0 0 .704-4.666 4.917-7.598 0 0-1.144-.333-2.453-.333-1.455 0-3.113.413-3.628 2.152h-1.443v-5.726h1.443v.766c0-.001 2.185-1.304 4.709-1.304m7.848 1.096h.005m-7.853-2.096c-1.576 0-3.02.449-3.985.847-.182-.19-.439-.309-.723-.309h-1.444c-.552 0-1 .448-1 1v5.726c0 .553.448 1 1 1h1.443c.443 0 .833-.292.959-.717.105-.354.425-1.436 2.669-1.436.039 0 .077.001.115.001-2.964 3.01-3.541 6.604-3.567 6.781-.043.288.041.581.231.802.19.221.466.348.758.348h7.08c.552 0 1-.447 1-1 0-6.24 3.68-9.91 3.975-10.193.211-.184.344-.453.344-.754 0-.552-.445-1-.998-1h-.005-2.501c-.196 0-.389.058-.552.167-.049.033-.152.101-.251.163-.355-.247-.984-.651-2.214-1.062-.726-.241-1.51-.364-2.33-.364z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 53.8c0 2.6-1.7 4.6-3.9 4.6h-56.2c-2.1 0-3.9-2.1-3.9-4.6v-40.3c0-2.5 1.7-4.6 3.9-4.6h56.3c2.1 0 3.9 2.1 3.9 4.6l-.1 40.3" fill="#333"/><path d="m3.9 55c5.7 0 11.3 0 17 0-1.8-13.8-1.8-28.7 0-42.5-5.7 0-11.3 0-17 0-4.5 13.8-4.5 28.6 0 42.5" fill="#b2b2b2"/><path d="m2.9 51.3c5.9 0 11.8 0 17.7 0-1.2-11.5-1.2-23.7 0-35.2-5.9 0-11.8 0-17.7 0-3.1 11.5-3.1 23.7 0 35.2" fill="#d0d0d0"/><path d="m2 47.6c6.1 0 12.1 0 18.2 0-.7-9.2-.7-18.6 0-27.7-6.1 0-12.1 0-18.2 0-1.9 9.1-1.9 18.5 0 27.7" fill="#fff"/><path d="m19.6 17c-5.4 0-10.7 0-16.1 0 .4-1.5.8-3.1 1.3-4.6 5.1 0 10.2 0 15.3 0-.2 1.6-.4 3.1-.5 4.6" fill="#4187b7"/><path d="m19.7 55c-.4-2.8-4-5.2-8.3-5.2-4.3 0-7.2 2.4-6.3 5.2 4.9 0 9.8 0 14.6 0" fill="#fbbf67"/><path d="m23.5 55c5.7 0 11.3 0 17 0 1.4-13.8 1.4-28.7 0-42.5-5.7 0-11.3 0-17 0-1.4 13.8-1.4 28.6 0 42.5" fill="#b2b2b2"/><path d="m23.2 51.3c5.9 0 11.8 0 17.7 0 .9-11.5.9-23.7 0-35.2-5.9 0-11.8 0-17.7 0-1 11.5-1 23.7 0 35.2" fill="#d0d0d0"/><path d="m22.9 47.6c6.1 0 12.1 0 18.2 0 .6-9.1.6-18.6 0-27.7-6.1 0-12.1 0-18.2 0-.6 9.1-.6 18.5 0 27.7" fill="#fff"/><path d="m40 17c-5.4 0-10.7 0-16.1 0 .1-1.5.2-3.1.4-4.6 5.1 0 10.2 0 15.3 0 .2 1.6.3 3.1.4 4.6" fill="#4187b7"/><path d="m39.3 55c.3-2.8-3-5.2-7.3-5.2-4.3 0-7.6 2.4-7.3 5.2 4.9 0 9.7 0 14.6 0" fill="#fbbf67"/><path d="m43 55c5.7 0 11.3 0 17 0 4.5-13.8 4.5-28.7 0-42.5-5.7 0-11.3 0-17 0 1.8 13.8 1.8 28.6 0 42.5" fill="#b2b2b2"/><path d="m43.5 51.3c5.9 0 11.8 0 17.7 0 3.1-11.5 3.1-23.7 0-35.2-5.9 0-11.8 0-17.7 0 1.2 11.5 1.2 23.7 0 35.2" fill="#d0d0d0"/><path d="m43.8 47.6c6.1 0 12.1 0 18.2 0 1.9-9.1 1.9-18.6 0-27.7-6.1 0-12.1 0-18.2 0 .8 9.1.8 18.5 0 27.7" fill="#fff"/><path d="m60.5 17c-5.4 0-10.7 0-16.1 0-.2-1.5-.4-3.1-.6-4.6 5.1 0 10.2 0 15.3 0 .6 1.6 1 3.1 1.4 4.6" fill="#4187b7"/><path d="m58.9 55c.9-2.8-2-5.2-6.3-5.2-4.3 0-8 2.4-8.3 5.2 4.8 0 9.7 0 14.6 0" fill="#fbbf67"/><path d="m49.5 40.8c-.1 0-.3-.1-.4-.2s-.1-.3-.1-.4c0-.2.7-4.3 4.2-7.3-.4-.1-.8-.1-1.3-.1-1.7 0-2.8.6-3.1 1.8-.1.2-.3.4-.5.4h-1.4c-.3 0-.5-.2-.5-.5v-5.7c0-.3.2-.5.5-.5h1.4c.3 0 .5.2.5.5.9-.4 2.5-1 4.2-1 .8 0 1.5.1 2.2.3 1.3.4 1.8.8 2.2 1.1.1.1.2.1.2.1 0 0 .4-.3.5-.3.1-.1.2-.1.3-.1h2.5c.2 0 .4.1.5.3.1.2 0 .4-.1.5 0 0-4.2 3.9-4.2 10.6 0 .3-.2.5-.5.5h-7.1" fill="#3390ff"/><path d="m53.1 28.2c.7 0 1.3.1 2 .3 1.9.6 2.1 1.2 2.5 1.2.2 0 .4-.1.8-.4h2.5c0 0-4.3 4-4.3 10.9h-7.1c0 0 .7-4.7 4.9-7.6 0 0-1.1-.3-2.5-.3-1.5 0-3.1.4-3.6 2.2h-1.4v-5.7h1.4v.8c0-.1 2.2-1.4 4.8-1.4m0-1c-1.6 0-3 .4-4 .8-.2-.2-.4-.3-.7-.3h-1.4c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h1.4c.4 0 .8-.3 1-.7.1-.4.4-1.4 2.7-1.4 0 0 .1 0 .1 0-3 3-3.5 6.6-3.6 6.8 0 .3 0 .6.2.8.2.2.5.3.8.3h7.1c.6 0 1-.4 1-1 0-6.2 3.7-9.9 4-10.2.2-.2.3-.5.3-.8 0-.6-.4-1-1-1h-2.5c-.2 0-.4.1-.6.2 0 0-.2.1-.3.2-.4-.2-1-.7-2.2-1.1-.7-.2-1.5-.3-2.3-.3z" fill="#161616"/><path d="m27.6 40.8c-.1 0-.3-.1-.4-.2-.1-.1-.1-.3-.1-.4 0-.2.7-4.3 4.2-7.3-.4-.1-.8-.1-1.3-.1-1.7 0-2.8.6-3.1 1.8-.1.2-.3.4-.5.4h-1.4c-.3 0-.5-.2-.5-.5v-5.7c0-.3.2-.5.5-.5h1.4c.3 0 .5.2.5.5.9-.4 2.5-1 4.2-1 .8 0 1.5.1 2.2.3 1.3.4 1.8.8 2.2 1.1.1.1.2.1.2.1 0 0 .4-.3.5-.3.1-.1.2-.1.3-.1h2.5c.2 0 .4.1.5.3.1.2 0 .4-.1.5 0 0-4.2 3.9-4.2 10.6 0 .3-.2.5-.5.5h-7.1" fill="#fff"/><path d="m31.1 28.2c.7 0 1.3.1 2 .3 1.9.6 2.1 1.2 2.5 1.2.2 0 .4-.1.8-.4h2.6c0 0-4.3 4-4.3 10.9h-7.1c0 0 .7-4.7 4.9-7.6 0 0-1.1-.3-2.5-.3-1.5 0-3.1.4-3.6 2.2h-1.4v-5.7h1.4v.8c0-.1 2.2-1.4 4.7-1.4m0-1c-1.6 0-3 .4-4 .8-.2-.2-.4-.3-.7-.3h-1.4c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h1.4c.4 0 .8-.3 1-.7.1-.4.4-1.4 2.7-1.4 0 0 .1 0 .1 0-3 3-3.5 6.6-3.6 6.8 0 .3 0 .6.2.8.2.2.5.3.8.3h7.1c.6 0 1-.4 1-1 0-6.2 3.7-9.9 4-10.2.2-.2.3-.5.3-.8 0-.6-.4-1-1-1h-2.5c-.2 0-.4.1-.6.2 0 0-.2.1-.3.2-.4-.2-1-.7-2.2-1.1-.6-.2-1.4-.3-2.3-.3z" fill="#161616"/><path d="m5.7 40.8c-.1 0-.3-.1-.4-.2-.1-.1-.1-.3-.1-.4 0-.2.7-4.3 4.2-7.3-.4-.1-.8-.1-1.3-.1-1.7 0-2.8.6-3.1 1.8 0 .2-.2.4-.5.4h-1.4c-.3 0-.5-.2-.5-.5v-5.7c0-.3.2-.5.5-.5h1.4c.3 0 .5.2.5.5.9-.4 2.5-1 4.2-1 .8 0 1.5.1 2.2.3 1.3.4 1.8.8 2.2 1.1.1.1.2.1.2.1 0 0 .4-.3.5-.3.1-.1.2-.1.3-.1h2.5c.2 0 .4.1.5.3.1.2 0 .4-.1.5 0 0-4.2 3.9-4.2 10.6 0 .3-.2.5-.5.5h-7.1" fill="#ed4c5c"/><path d="m9.2 28.2c.7 0 1.3.1 2 .3 1.9.6 2.1 1.2 2.5 1.2.2 0 .4-.1.8-.4h2.5c0 0-4.3 4-4.3 10.9h-7c0 0 .7-4.7 4.9-7.6 0 0-1.1-.3-2.5-.3-1.5 0-3.1.4-3.6 2.2h-1.4v-5.7h1.4v.8c0-.1 2.2-1.4 4.7-1.4m0-1c-1.6 0-3 .4-4 .8-.2-.2-.4-.3-.7-.3h-1.4c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h1.4c.4 0 .8-.3 1-.7.1-.4.4-1.4 2.7-1.4 0 0 .1 0 .1 0-3 3-3.5 6.6-3.6 6.8 0 .3 0 .6.2.8.2.2.5.3.8.3h7.1c.6 0 1-.4 1-1 0-6.2 3.7-9.9 4-10.2.2-.2.3-.5.3-.8 0-.6-.4-1-1-1h-2.5c-.2 0-.4.1-.6.2 0 0-.2.1-.3.2-.4-.2-1-.7-2.2-1.1-.7-.2-1.4-.3-2.3-.3z" fill="#161616"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b1.svg
index 84a5990..c4dcbfe 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#333" cx="32" cy="32" r="30"/><ellipse transform="matrix(.7706-.6373.6373.7706-7.147 28.679)" fill="#f5f5f5" cx="36.27" cy="24.268" rx="13.14" ry="13.866"/><path fill="#3e4347" d="m45.26 23.2c1.785 2.871.785 6.313-2.895 8.601-3.68 2.287-7.209 1.663-8.994-1.207-1.131-1.818-1.089-3.803.021-5.621-1.657.036-3.104-.689-4.071-2.244-1.681-2.703-.658-5.958 2.483-7.912 3.116-1.938 6.49-1.416 8.171 1.286.968 1.556.979 3.174.236 4.63 2.12-.19 3.918.65 5.05 2.467m-3.104 1.565c-.922-1.483-2.868-1.864-4.641-.762-1.771 1.102-2.307 2.993-1.369 4.5.967 1.556 2.944 1.983 4.717.882 1.772-1.103 2.246-3.089 1.293-4.62m-10.11-3.501c.894 1.436 2.677 1.854 4.292.849 1.593-.991 2.01-2.813 1.136-4.225-.877-1.41-2.683-1.813-4.275-.823-1.616 1-2.046 2.763-1.153 4.199"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#333"/><ellipse transform="matrix(.7706-.6373.6373.7706-7.1472 28.6786)" cx="36.3" cy="24.3" rx="13.1" ry="13.9" fill="#f5f5f5"/><path d="m45.3 23.2c1.8 2.9.8 6.3-2.9 8.6-3.7 2.3-7.2 1.7-9-1.2-1.1-1.8-1.1-3.8 0-5.6-1.7 0-3.1-.7-4.1-2.2-1.7-2.7-.7-6 2.5-7.9 3.1-1.9 6.5-1.4 8.2 1.3 1 1.6 1 3.2.2 4.6 2.1-.3 3.9.6 5.1 2.4m-3.1 1.6c-.9-1.5-2.9-1.9-4.6-.8-1.8 1.1-2.3 3-1.4 4.5 1 1.6 2.9 2 4.7.9 1.7-1.1 2.2-3.1 1.3-4.6m-10.2-3.5c.9 1.4 2.7 1.9 4.3.8 1.6-1 2-2.8 1.1-4.2-.9-1.4-2.7-1.8-4.3-.8-1.5 1-1.9 2.7-1.1 4.2" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b2.svg
index c9d97b5..56434d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m60.59 41.896c1.168-2.5 1.695-4.72 1.184-4.959-.317-.146-.955.494-1.671 1.591l-8.093-13.974-22.04-19.435-5.128-.829c1.472-.865 2.396-1.686 2.224-2.058-.24-.513-2.458.017-4.958 1.183-2.5 1.165-4.333 2.525-4.095 3.038.116.248.699.248 1.548.056-1.486 2.51-8.91 15.461-8.91 15.461l-1.896 25.495 1.1 1.135c-.59-.345-1.032-.482-1.199-.313-.4.4.856 2.305 2.806 4.255 1.951 1.951 3.855 3.207 4.257 2.808.203-.205-.028-.806-.561-1.601l15.815 2.603 23.11-8.491 3.604-4.132c-.368 1.23-.446 2.116-.134 2.261.512.239 1.874-1.594 3.038-4.094"/><g fill="#e8e8e8"><path d="m44.1 59.789c-1.862 1.861-5.547 2.715-8.226 1.905l-19.718-5.954c-2.682-.809-3.346-2.977-1.482-4.839l13.702-13.702c1.862-1.863 5.546-2.717 8.227-1.906l19.719 5.953c2.682.81 3.344 2.977 1.481 4.839l-13.703 13.704"/><path d="m4.213 19.895c-1.863 1.862-2.717 5.545-1.906 8.226l5.954 19.72c.81 2.681 2.976 3.343 4.838 1.48l13.701-13.701c1.864-1.863 2.718-5.548 1.907-8.228l-5.953-19.72c-.81-2.681-2.977-3.344-4.839-1.481l-13.702 13.704"/></g><path fill="#f5f5f5" d="m54.956 15.738c-.92-2.776-3.919-5.774-6.693-6.694l-20.427-6.774c-2.777-.92-4.282.586-3.362 3.362l6.773 20.427c.919 2.776 3.917 5.774 6.693 6.694l20.428 6.773c2.776.92 4.282-.586 3.362-3.362l-6.774-20.426"/><g enable-background="new "><path fill="#ed4c5c" d="m41.14 18.12c-.71 0-1.229.273-1.386.814-.319 1.084.926 2.841 2.776 3.925.925.544 1.825.814 2.537.814.709 0 1.228-.271 1.388-.814.318-1.084-.926-2.841-2.776-3.925-.925-.541-1.827-.814-2.539-.814"/></g><g enable-background="new " fill="#333"><path d="m29.03 48.681c.671.237 1.069.667 1.036 1.23-.063 1.13-1.825 2.369-3.935 2.77-1.053.201-1.993.155-2.663-.084-.669-.237-1.067-.668-1.034-1.231.064-1.127 1.826-2.367 3.933-2.771 1.057-.199 1.996-.153 2.663.086"/><path d="m39.23 46.39c.669.239 1.065.667 1.036 1.231-.065 1.129-1.822 2.367-3.933 2.77-1.053.199-1.994.152-2.663-.085-.668-.238-1.066-.668-1.035-1.231.064-1.13 1.825-2.368 3.932-2.77 1.053-.201 1.994-.153 2.663.085"/><path d="m49.01 44.39c.67.238 1.067.666 1.036 1.232-.063 1.128-1.822 2.366-3.932 2.768-1.054.201-1.996.154-2.664-.084-.67-.238-1.066-.667-1.035-1.231.063-1.129 1.825-2.367 3.931-2.769 1.054-.202 1.997-.154 2.664.084"/></g><g fill="#333"><path d="m21.02 26.09c.559-.438 1.136-.543 1.596-.216.917.658 1.021 2.809.234 4.804-.396.997-.938 1.768-1.498 2.206-.56.439-1.135.543-1.596.214-.916-.659-1.021-2.806-.234-4.802.396-.997.939-1.767 1.498-2.206"/><path d="m9.657 22.629c.56-.439 1.135-.545 1.594-.218.919.659 1.023 2.81.234 4.804-.395.998-.938 1.768-1.496 2.206-.561.438-1.137.545-1.594.215-.921-.657-1.024-2.807-.235-4.802.394-.998.938-1.766 1.497-2.205"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.6 41.9c1.2-2.5 1.7-4.7 1.2-5-.3-.1-1 .5-1.7 1.6l-8.1-14-22-19.4-5.1-.8c1.5-.9 2.4-1.7 2.2-2.1-.2-.5-2.5 0-5 1.2-2.5 1.2-4.3 2.5-4.1 3 .1.2.7.2 1.5.1-1.4 2.5-8.9 15.5-8.9 15.5l-1.8 25.5 1.1 1.1c-.6-.3-1-.5-1.2-.3-.4.4.9 2.3 2.8 4.3 2 2 3.9 3.2 4.3 2.8.2-.2 0-.8-.6-1.6l15.8 2.6 23.1-8.5 3.6-4.1c-.4 1.2-.4 2.1-.1 2.3.5.1 1.8-1.7 3-4.2" fill="#d0d0d0"/><g fill="#e8e8e8"><path d="m44.1 59.8c-1.9 1.9-5.5 2.7-8.2 1.9l-19.7-6c-2.7-.8-3.3-3-1.5-4.8l13.7-13.7c1.9-1.9 5.5-2.7 8.2-1.9l19.7 6c2.7.8 3.3 3 1.5 4.8l-13.7 13.7"/><path d="m4.2 19.9c-1.9 1.9-2.7 5.5-1.9 8.2l6 19.7c.8 2.7 3 3.3 4.8 1.5l13.7-13.7c1.9-1.9 2.7-5.5 1.9-8.2l-6-19.7c-.8-2.7-3-3.3-4.8-1.5l-13.7 13.7"/></g><path d="m55 15.7c-1-2.7-4-5.7-6.7-6.7l-20.5-6.7c-2.8-.9-4.3.6-3.4 3.4l6.8 20.4c.9 2.8 3.9 5.8 6.7 6.7l20.4 6.8c2.8.9 4.3-.6 3.4-3.4l-6.7-20.5" fill="#f5f5f5"/><g enable-background="new"><path d="m41.1 18.1c-.7 0-1.2.3-1.4.8-.3 1.1.9 2.8 2.8 3.9.9.5 1.8.8 2.5.8.7 0 1.2-.3 1.4-.8.3-1.1-.9-2.8-2.8-3.9-.8-.5-1.8-.8-2.5-.8" fill="#ed4c5c"/></g><g enable-background="new" fill="#333"><path d="m29 48.7c.7.2 1.1.7 1 1.2-.1 1.1-1.8 2.4-3.9 2.8-1.1.2-2 .2-2.7-.1-.7-.2-1.1-.7-1-1.2.1-1.1 1.8-2.4 3.9-2.8 1.1-.2 2.1-.2 2.7.1"/><path d="m39.2 46.4c.7.2 1.1.7 1 1.2-.1 1.1-1.8 2.4-3.9 2.8-1.1.2-2 .2-2.7-.1-.7-.2-1.1-.7-1-1.2.1-1.1 1.8-2.4 3.9-2.8 1.1-.2 2.1-.2 2.7.1"/><path d="m49 44.4c.7.2 1.1.7 1 1.2-.1 1.1-1.8 2.4-3.9 2.8-1.1.2-2 .2-2.7-.1-.7-.2-1.1-.7-1-1.2.1-1.1 1.8-2.4 3.9-2.8 1.1-.2 2-.1 2.7.1"/></g><g fill="#333"><path d="m21 26.1c.6-.4 1.1-.5 1.6-.2.9.7 1 2.8.2 4.8-.4 1-.9 1.8-1.5 2.2-.6.4-1.1.5-1.6.2-.9-.7-1-2.8-.2-4.8.4-1 1-1.8 1.5-2.2"/><path d="m9.7 22.6c.6-.4 1.1-.5 1.6-.2.9.7 1 2.8.2 4.8-.4 1-.9 1.8-1.5 2.2-.6.4-1.1.5-1.6.2-.9-.7-1-2.8-.2-4.8.4-1 .9-1.7 1.5-2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b3.svg
index 189ee21..3fe632f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#bec0c6" d="m2.846 28.913c1.345-6.973 4.278-10.846 4.074-14.654-.094-1.736-2.01-3.654-2.01-6.705 0-7.404 8.771-7.125 8.745-.029-.012 3.049-1.675 5.03-1.769 6.766-.208 3.811 2.56 7.691 3.833 14.68 1.985 10.943.479 14.188-.141 14.85-2.131 2.287-8.266 2.957-10.758 1.131-3.655-2.681-3.104-10.195-1.977-16.04"/><path fill="#e8ecef" d="m16.248 28.913c-1.271-6.986-4.287-10.846-4.079-14.654.094-1.736 2.01-3.654 2.01-6.705 0-4.627-3.617-6.363-6.33-5.207 0 0-.938 2.434-.938 5.209 0 4.307 2.188 6.928 2.188 6.928-6.695 16.501-5.422 26.986-2.574 29.23 1.952 1.541 7.349 1.939 9.06.102 1.212-1.298 2.651-3.964.665-14.907"/><g fill="#c9150d"><path d="m6.497 12.741h6.095c-.236.531-.44 2.139-.411 2.451h-5.272c.029-.312-.176-1.92-.412-2.451"/><path d="m6.39 17.769h6.324c.287.777.486 1.588.873 2.453h-8.06c.387-.866.573-1.676.859-2.453"/></g><path fill="#bec0c6" d="m24.369 28.913c1.346-6.973 4.278-10.846 4.074-14.654-.094-1.736-2.01-3.654-2.01-6.705 0-7.404 8.771-7.125 8.745-.029-.012 3.049-1.675 5.03-1.769 6.766-.208 3.811 2.56 7.691 3.833 14.68 1.985 10.943.479 14.188-.141 14.85-2.131 2.287-8.266 2.957-10.758 1.131-3.655-2.681-3.104-10.195-1.977-16.04"/><path fill="#e8ecef" d="m37.771 28.913c-1.271-6.986-4.287-10.846-4.079-14.654.094-1.736 2.01-3.654 2.01-6.705 0-4.627-3.617-6.363-6.33-5.207 0 0-.938 2.434-.938 5.209 0 4.307 2.188 6.928 2.188 6.928-6.693 16.502-5.421 26.986-2.573 29.23 1.952 1.541 7.349 1.939 9.06.102 1.211-1.298 2.651-3.964.664-14.907"/><g fill="#c9150d"><path d="m28.02 12.741h6.095c-.236.531-.44 2.139-.411 2.451h-5.271c.028-.312-.177-1.92-.413-2.451"/><path d="m27.913 17.769h6.324c.287.777.486 1.588.873 2.453h-8.06c.387-.866.573-1.676.859-2.453"/></g><path fill="#bec0c6" d="m12.685 32.583c1.529-7.924 4.861-12.325 4.629-16.652-.106-1.973-2.28-4.153-2.28-7.62 0-8.413 9.968-8.096 9.938-.033-.013 3.466-1.902 5.716-2.01 7.689-.235 4.329 2.909 8.74 4.356 16.682 2.256 12.435.543 16.12-.16 16.874-2.421 2.6-9.393 3.36-12.225 1.285-4.156-3.045-3.53-11.584-2.248-18.225"/><path fill="#e8ecef" d="m27.914 32.583c-1.444-7.938-4.871-12.325-4.635-16.652.106-1.973 2.279-4.153 2.279-7.62 0-5.258-4.111-7.229-7.193-5.916 0 0-1.066 2.766-1.066 5.92 0 4.893 2.485 7.872 2.485 7.872-7.605 18.752-6.16 30.665-2.924 33.22 2.218 1.751 8.351 2.203 10.297.115 1.378-1.475 3.01-4.503.757-16.94"/><g fill="#c9150d"><path d="m16.833 14.206h6.927c-.27.604-.501 2.432-.468 2.786h-5.99c.033-.354-.199-2.181-.469-2.786"/><path d="m16.711 19.919h7.188c.326.884.553 1.806.992 2.787h-9.154c.439-.981.65-1.903.974-2.787"/></g><circle fill="#4d4d4d" cx="42.21" cy="42.21" r="19.79"/><circle cx="41.71" cy="44.489" r="3.5"/><circle cx="32.31" cy="34.865" r="3"/><circle cx="44.71" cy="30.29" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.8 28.9c1.3-7 4.3-10.8 4.1-14.7-.1-1.7-2-3.7-2-6.7 0-7.4 8.8-7.1 8.7 0 0 3-1.7 5-1.8 6.8-.2 3.8 2.6 7.7 3.8 14.7 2 10.9.5 14.2-.1 14.8-2.1 2.3-8.3 3-10.8 1.1-3.5-2.6-3-10.1-1.9-16" fill="#bec0c6"/><path d="m16.2 28.9c-1.3-7-4.3-10.8-4.1-14.7.1-1.7 2-3.7 2-6.7 0-4.6-3.6-6.4-6.3-5.2 0 0-.9 2.4-.9 5.2 0 4.3 2.2 6.9 2.2 6.9-6.7 16.6-5.4 27.1-2.6 29.3 2 1.5 7.3 1.9 9.1.1 1.2-1.3 2.6-3.9.6-14.9" fill="#e8ecef"/><g fill="#c9150d"><path d="m6.5 12.7h6.1c-.2.5-.4 2.1-.4 2.5h-5.3c0-.3-.2-1.9-.4-2.5"/><path d="m6.4 17.8h6.3c.3.8.5 1.6.9 2.5h-8.1c.4-.9.6-1.8.9-2.5"/></g><path d="m24.4 28.9c1.3-7 4.3-10.8 4.1-14.7-.1-1.7-2-3.7-2-6.7 0-7.4 8.8-7.1 8.7 0 0 3-1.7 5-1.8 6.8-.2 3.8 2.6 7.7 3.8 14.7 2 10.9.5 14.2-.1 14.8-2.1 2.3-8.3 3-10.8 1.1-3.6-2.6-3.1-10.1-1.9-16" fill="#bec0c6"/><path d="m37.8 28.9c-1.3-7-4.3-10.8-4.1-14.7.1-1.7 2-3.7 2-6.7 0-4.6-3.6-6.4-6.3-5.2 0 0-.9 2.4-.9 5.2 0 4.3 2.2 6.9 2.2 6.9-6.7 16.5-5.4 27-2.6 29.2 2 1.5 7.3 1.9 9.1.1 1.1-1.2 2.6-3.8.6-14.8" fill="#e8ecef"/><g fill="#c9150d"><path d="m28 12.7h6.1c-.2.5-.4 2.1-.4 2.5h-5.3c.1-.3-.1-1.9-.4-2.5"/><path d="m27.9 17.8h6.3c.3.8.5 1.6.9 2.5h-8.1c.4-.9.6-1.8.9-2.5"/></g><path d="m12.7 32.6c1.5-7.9 4.9-12.3 4.6-16.7-.1-2-2.3-4.2-2.3-7.6 0-8.4 10-8.1 9.9 0 0 3.5-1.9 5.7-2 7.7-.2 4.3 2.9 8.7 4.4 16.7 2.3 12.4.5 16.1-.2 16.9-2.4 2.6-9.4 3.4-12.2 1.3-4.1-3.1-3.5-11.7-2.2-18.3" fill="#bec0c6"/><path d="m27.9 32.6c-1.4-7.9-4.9-12.3-4.6-16.7.1-2 2.3-4.2 2.3-7.6 0-5.3-4.1-7.2-7.2-5.9 0 0-1.1 2.8-1.1 5.9 0 4.9 2.5 7.9 2.5 7.9-7.6 18.8-6.2 30.7-2.9 33.2 2.2 1.8 8.4 2.2 10.3.1 1.3-1.5 3-4.5.7-16.9" fill="#e8ecef"/><g fill="#c9150d"><path d="m16.8 14.2h6.9c-.3.6-.5 2.4-.5 2.8h-6c.1-.4-.1-2.2-.4-2.8"/><path d="m16.7 19.9h7.2c.3.9.6 1.8 1 2.8h-9.2c.5-1 .7-1.9 1-2.8"/></g><circle cx="42.2" cy="42.2" r="19.8" fill="#4d4d4d"/><g fill="#231f20"><circle cx="41.7" cy="44.5" r="3.5"/><circle cx="32.3" cy="34.9" r="3"/><circle cx="44.7" cy="30.3" r="3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b4.svg
index 684552c..9618a3c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b4.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="M52.61,0h-41.22C8.97,0,7,1.839,7,4.1V59.9c0,2.261,1.97,4.1,4.391,4.1h41.22c2.421,0,4.391-1.839,4.391-4.1
- V4.1C57.001,1.839,55.031,0,52.61,0z"/><path fill="#b70000" d="M51.322,2H12.679C10.409,2,9,3.677,9,5.797V34l46,24.313V6C55,3.88,53.592,2,51.322,2z"/><circle fill="#fff" cx="24.955" cy="18.956" r="13.04"/><path fill="#333" d="m55.44 58.16h-46.875v-24.11c24.08 0 46.875 10.142 46.875 24.11"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M52.6,0H11.4C9,0,7,1.8,7,4.1v55.8c0,2.3,2,4.1,4.4,4.1h41.2c2.4,0,4.4-1.8,4.4-4.1V4.1C57,1.8,55,0,52.6,0z" fill="#333"/><path d="M51.3,2H12.7C10.4,2,9,3.7,9,5.8V34l46,24.3V6C55,3.9,53.6,2,51.3,2z" fill="#b70000"/><circle cx="25" cy="19" r="13" fill="#fff"/><path d="M55.4,58.2H8.6V34C32.6,34,55.4,44.2,55.4,58.2z" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b5.svg
index 4dd5489..7ce21dd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m47.43 13.195c-3.938 11.482-27.598-18.701-29.374-9.469-1.354 7.03 8.884 25.485 15.264 38.76-6.896-5.155-17.09-5.37-21.02 1.069-3.983 6.529 1.627 14.723 10.1 17.503 6.613 2.172 12.881.146 15.576-3.899 1.707-2.564 2.225-6 1.254-9.268-2.764-9.299-13.232-27.735-14.12-32.12 0 0 16.486 17.13 26.22 14.05 5.337-1.688-3.907-16.629-3.907-16.629"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m25.4 2v36.7c-1.2-.4-3.7-.6-5.2-.6-13.6 0-13.6 16.6 0 16.6 5.9 0 11.7-3.7 11.7-8.3v-20.6l15.5 5.2v15c-1.2-.4-3.7-.6-5.2-.6-13.6 0-13.6 16.6 0 16.6 5.9 0 11.7-3.7 11.7-8.3v-33.1-5.2-4l-28.5-9.4m22 21.5l-15.5-5.3v-6.3l15.5 5.4v6.2" fill="#4d5357"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b6.svg
index 3842341..9c0b8a8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m46.37 14.805c-2.777-.847-5.689-1.67-7.546-2.346-1.148-.419-2.363-1.145-3.01-3.857l-4.695-1.369v29.74c-1.425-.729-3.087-1.146-4.862-1.146-5.276 0-9.554 3.691-9.554 8.246s4.277 8.246 9.554 8.246c5.275 0 9.556-3.691 9.556-8.246l.002-25.695c1.297.398 3.488 1.064 7.134 2.158 6.453 1.936 3.19 7.257 2.304 9.901 0 0 3.73-4.369 4.468-7.722.923-4.203.388-6.772-3.354-7.91"/><path d="m21.93 16.769c-1.866-.568-3.822-1.122-5.07-1.575-.771-.281-1.587-.77-2.02-2.592l-3.154-.92v19.98c-.957-.49-2.074-.771-3.268-.771-3.544 0-6.418 2.48-6.418 5.541 0 3.059 2.874 5.539 6.418 5.539 3.545 0 6.42-2.48 6.42-5.539l.002-17.263c.871.268 2.344.716 4.793 1.45 4.335 1.299 2.143 4.875 1.547 6.651 0 0 2.506-2.936 3-5.188.621-2.822.261-4.548-2.252-5.313"/><path d="m59.757 34.31c-1.663-.507-3.406-1-4.518-1.404-.688-.25-1.415-.686-1.8-2.31l-2.812-.819v17.804c-.853-.436-1.848-.686-2.911-.686-3.158 0-5.719 2.209-5.719 4.936s2.561 4.938 5.719 4.938c3.159 0 5.721-2.211 5.721-4.938v-15.383c.777.238 2.089.638 4.271 1.292 3.863 1.159 1.91 4.345 1.379 5.928 0 0 2.233-2.616 2.675-4.622.554-2.518.234-4.055-2.01-4.736"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m17.6 30.5v-16.9c0 0 8.2 3.9 3.8 12.6-.1.3 1.1.6 1.3.3 9-15.4-2.9-14.3-5-24.6h-4.4v23.5c-.8-.3-2.3-.4-3.3-.4-10.7.1-10.7 11 0 11 3.9 0 7.6-2.4 7.6-5.5"/><path d="m53.6 2h-4.4v23.5c-.8-.3-2.3-.4-3.3-.4-10.6 0-10.6 10.9.1 10.9 3.9 0 7.6-2.4 7.6-5.5v-16.9c0 0 8.2 3.9 3.8 12.6-.1.3 1.1.6 1.3.3 9-15.3-2.9-14.2-5.1-24.5"/><path d="m26.3 28v23.5c-.8-.3-2.3-.4-3.3-.4-10.7 0-10.7 10.9 0 10.9 3.9 0 7.6-2.4 7.6-5.5v-16.9c0 0 8.2 3.9 3.8 12.6-.1.3 1.1.6 1.3.3 9-15.4-2.9-14.3-5-24.6h-4.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b7.svg
index b9a0bb9..a3bf5ca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m52.4 9.994c0 0-.137-1.896 1.758-2.724 0 0 .237 2.126-1.758 2.724"/><path fill="#ffce31" d="m53.872 7.432c-1.523-1.016-3.471-2.319-4.369-2.953-1.635-1.154-6.342-4.692-8.217-.44-1.018 2.306-2.654 7.06-3.477 9.425-5.03 14.5-11.932 33.519-14.08 29.05-3.441-7.155 10.475-15.343 5-21.949l-25.591 8.981c0 0 6.288 2.813 3.486 7.77-16.333 28.895 24.19 39.3 32.527-7.231 2.654-14.798 4.605-23.942 6.512-23.942 1.859 0 5.561 2.66 6.867 3.555 1.283-.881 1.363-1.884 1.338-2.27"/><path fill="#333" d="m39.796 8.715c-.93-.313-2.037.339-2.477 1.457-.441 1.118-.045 2.274.881 2.586.93.313 2.037-.34 2.477-1.457.439-1.118.045-2.275-.881-2.586"/><path fill="#f2b200" d="m38.876 7.834c-.926-.312-2.035.341-2.475 1.459-.439 1.116-.045 2.275.883 2.585.926.313 2.033-.34 2.475-1.456.439-1.118.043-2.274-.883-2.588"/><path fill="#333" d="m38.4 13.794c-.93-.313-2.037.339-2.477 1.457s-.045 2.275.881 2.586c.93.313 2.037-.34 2.477-1.457.439-1.118.044-2.275-.881-2.586"/><path fill="#f2b200" d="m37.476 12.914c-.926-.311-2.035.342-2.475 1.459-.439 1.116-.045 2.275.883 2.585.926.313 2.033-.34 2.475-1.455.439-1.119.042-2.276-.883-2.589"/><path fill="#333" d="m33.759 27.671c-.928-.313-2.035.339-2.475 1.457-.441 1.118-.045 2.275.881 2.586.928.313 2.037-.34 2.477-1.457.439-1.118.043-2.275-.883-2.586"/><path fill="#f2b200" d="m32.841 26.791c-.926-.311-2.035.341-2.475 1.459-.439 1.116-.047 2.275.883 2.585.926.313 2.033-.34 2.473-1.456.439-1.118.045-2.275-.881-2.588"/><path fill="#333" d="m31.442 32.958c-.93-.313-2.037.338-2.477 1.457s-.045 2.275.881 2.586c.93.313 2.037-.34 2.477-1.457.442-1.118.045-2.275-.881-2.586"/><path fill="#f2b200" d="m30.522 32.08c-.926-.311-2.035.341-2.475 1.458-.439 1.116-.045 2.275.883 2.585.926.313 2.033-.34 2.475-1.456.44-1.117.043-2.274-.883-2.587"/><path fill="#333" d="m29.12 38.04c-.928-.313-2.035.339-2.477 1.457-.439 1.118-.043 2.275.883 2.586.928.313 2.035-.34 2.475-1.457.441-1.118.045-2.274-.881-2.586"/><g fill="#f2b200"><path d="m28.2 37.16c-.924-.311-2.035.342-2.475 1.459-.438 1.116-.045 2.275.883 2.585.928.313 2.035-.339 2.475-1.455.439-1.118.045-2.275-.883-2.589"/><path d="m54.16 7.27c0 1.243-.73 2.305-1.758 2.724.309.528 1.871 3 4.309 3.693 0 0 1.586-1.653 3.895-.875.395.134 1.848.803 1.262.121-3.893-4.52-7.708-5.663-7.708-5.663"/><path d="m28.733 20.569c.896 2.048-4.342 5.517-11.697 7.747-7.354 2.23-14.04 2.378-14.937.33-.895-2.049 4.343-5.517 11.697-7.747s14.04-2.378 14.937-.33"/></g><path fill="#333" d="m27.405 20.812c.727 1.663-4.121 4.66-10.83 6.695-6.707 2.034-12.735 2.335-13.461.671-.726-1.662 4.122-4.66 10.829-6.694 6.708-2.033 12.736-2.334 13.462-.672"/><g fill="none" stroke-linecap="round" stroke-width="2" stroke-miterlimit="10"><path stroke="#ce9915" d="m43.544 11.338c-1.271 6.575-4.203 37.698-16.08 45.17"/><path stroke="#e2af23" d="m42.499 9.414c-1.271 6.575-5.189 39.623-17.07 47.1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 10c0 0-.1-1.9 1.8-2.7 0 0 .2 2.1-1.8 2.7" fill="#333"/><path d="m53.9 7.4c-1.5-1-3.5-2.3-4.4-3-1.6-1.2-6.3-4.7-8.2-.4-1 2.3-2.7 7.1-3.5 9.4-5 14.6-11.9 33.6-14.1 29.1-3.4-7.2 10.5-15.3 5-21.9l-25.6 9c0 0 6.3 2.8 3.5 7.8-16.3 28.9 24.2 39.3 32.5-7.2 2.7-14.8 4.6-23.9 6.5-23.9 1.9 0 5.6 2.7 6.9 3.6 1.3-1.1 1.4-2.1 1.4-2.5" fill="#ffce31"/><path d="m39.8 8.7c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.1 0-2.3-.9-2.6" fill="#333"/><path d="m38.9 7.8c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.1 0-2.3-.9-2.6" fill="#f2b200"/><path d="m38.4 13.8c-.9-.3-2 .3-2.5 1.5s0 2.3.9 2.6c.9.3 2-.3 2.5-1.5.4-1.1 0-2.3-.9-2.6" fill="#333"/><path d="m37.5 12.9c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.1 0-2.3-.9-2.6" fill="#f2b200"/><path d="m33.8 27.7c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.2 0-2.3-.9-2.6" fill="#333"/><path d="m32.8 26.8c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.5-1.1.1-2.3-.9-2.6" fill="#f2b200"/><path d="m31.4 33c-.9-.3-2 .3-2.5 1.5s0 2.3.9 2.6c.9.3 2-.3 2.5-1.5.5-1.2.1-2.3-.9-2.6" fill="#333"/><path d="m30.5 32.1c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.2 0-2.3-.9-2.6" fill="#f2b200"/><path d="m29.1 38c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.1 0-2.3-.9-2.6" fill="#333"/><g fill="#f2b200"><path d="m28.2 37.2c-.9-.3-2 .3-2.5 1.5-.4 1.1 0 2.3.9 2.6.9.3 2-.3 2.5-1.5.4-1.2 0-2.3-.9-2.6"/><path d="m54.2 7.3c0 1.2-.7 2.3-1.8 2.7.3.5 1.9 3 4.3 3.7 0 0 1.6-1.7 3.9-.9.4.1 1.8.8 1.3.1-3.9-4.5-7.7-5.6-7.7-5.6"/><path d="m28.7 20.6c.9 2-4.3 5.5-11.7 7.7-7.4 2.2-14 2.4-14.9.3-.9-2 4.3-5.5 11.7-7.7s14-2.4 14.9-.3"/></g><path d="m27.4 20.8c.7 1.7-4.1 4.7-10.8 6.7-6.7 2-12.7 2.3-13.5.7-.7-1.7 4.1-4.7 10.8-6.7 6.8-2 12.8-2.4 13.5-.7" fill="#333"/><g fill="none" stroke-linecap="round" stroke-width="2" stroke-miterlimit="10"><path d="m43.5 11.3c-1.3 6.6-4.2 37.7-16.1 45.2" stroke="#ce9915"/><path d="M42.5,9.4C41.2,16,37.3,49,25.4,56.5" stroke="#e2af23"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b8.svg
index 3538a5d..e31145b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e27c17" d="m28.954 31.404c.287.287.568.582.865.894.068.071.136.143.205.215-.024.039-.049.075-.073.109-.68 1.031-1.704 2.585-1.536 4.57.175 2.044.689 3.43 1.619 4.359.686.686 1.456.987 2.193 1.085-.09.038-.183.075-.283.117-1.776.73-4.21 1.729-5.078 4.541-.318 1.026-.516 2.166-.725 3.374-.411 2.381-.88 5.081-2.338 6.539-2.038 2.039-4.439 2.876-7.139 2.491-2.641-.376-5.461-1.946-7.938-4.425-2.478-2.477-4.049-5.294-4.424-7.938-.384-2.699.454-5.101 2.491-7.139 1.398-1.398 3.442-2.117 6.628-2.327 5.935-.394 7.286-3.851 8.181-6.138.698-1.789.934-2.393 2.67-2.525 1.933-.144 3.181.697 4.682 2.198m1.563-1.564c-1.644-1.644-3.484-3.059-6.413-2.836-6.662.505-2.294 8.093-10.829 8.662-3.051.2-5.948.871-8.04 2.969-5.33 5.329-3.628 12.642 1.933 18.204 5.56 5.56 12.875 7.262 18.203 1.934 2.778-2.777 2.685-7.816 3.614-10.826 1.2-3.89 7.464-2.574 7.177-6.902-.026-.407-.126-.665-.281-.819-.78-.78-2.963 1.076-4.277-.237-.479-.478-.843-1.38-.979-2.982-.208-2.438 2.782-4.222 1.691-5.314-.603-.602-1.185-1.243-1.794-1.853z"/><path fill="#ff9d27" d="m26.13 50.651c.208-1.206.406-2.347.724-3.375.867-2.811 3.301-3.809 5.079-4.539.098-.04.193-.079.281-.117-.737-.097-1.506-.399-2.191-1.085-.93-.93-1.444-2.315-1.62-4.359-.168-1.984.857-3.539 1.535-4.569.023-.035.048-.072.074-.111-.069-.073-.138-.144-.205-.214-.297-.313-.577-.607-.864-.894-1.502-1.501-2.749-2.342-4.684-2.195-1.735.131-1.971.733-2.669 2.524-.895 2.289-2.245 5.746-8.181 6.138-3.186.21-5.23.929-6.628 2.328-2.038 2.037-2.875 4.439-2.492 7.139.376 2.643 1.949 5.46 4.426 7.938 2.478 2.478 5.297 4.049 7.937 4.425 2.702.384 5.102-.454 7.141-2.491 1.457-1.46 1.924-4.16 2.337-6.543"/><g fill="#3e4347"><path transform="matrix(.7073.7069-.7069.7073 35.513-4.746)" d="m19.964 38.785h7.05v3.456h-7.05z"/><path transform="matrix(.707.7072-.7072.707 37.519.049)" d="m15.177 43.574h7.05v3.454h-7.05z"/><path transform="matrix(.707.7072-.7072.707 39.26 4.121)" d="m11.927 48.46h5.459v1.969h-5.459z"/><path d="m28.793 39.661l-4.452-4.451 25.499-24.07 3.02 3.02z"/><circle cx="22.566" cy="53.656" r="2.304"/><circle cx="17.07" cy="56.55" r="1.843"/><path d="m52.647 19.245c-.653.653-1.049 1.312-.463 1.9.589.589 1.25.192 1.902-.461.652-.652 1.049-1.312.46-1.9-.588-.587-1.246-.19-1.899.461"/><path transform="matrix(-.7071-.7071.7071-.7071 75.922 69.25)" d="m51.2 18.411h2.199v.976h-2.199z"/><path d="m56.09 15.803c-.651.653-1.049 1.313-.46 1.902.588.587 1.248.191 1.899-.462.65-.651 1.049-1.312.46-1.9-.587-.588-1.247-.191-1.899.46"/><path transform="matrix(-.7071-.7071.7071-.7071 84.23 65.805)" d="m54.644 14.969h2.199v.978h-2.199z"/><path d="m59.53 12.363c-.651.652-1.048 1.312-.459 1.9.588.587 1.246.192 1.899-.46.653-.654 1.048-1.313.461-1.9-.587-.59-1.248-.191-1.901.46"/><path transform="matrix(-.7071-.7071.7071-.7071 92.53 62.37)" d="m58.08 11.529h2.199v.978h-2.199z"/><path d="m44.756 11.354c-.652.652-1.31 1.049-1.899.46-.589-.589-.191-1.248.461-1.901.65-.653 1.312-1.048 1.899-.459.589.588.191 1.248-.461 1.9"/><path transform="matrix(.7062.708-.708.7062 21.533-28.494)" d="m44 11.211h2.199v.977h-2.199z"/><path d="m48.2 7.914c-.652.651-1.311 1.05-1.899.46-.589-.588-.192-1.247.461-1.9.651-.652 1.311-1.047 1.899-.46.588.588.192 1.247-.461 1.9"/><path transform="matrix(.7069.7073-.7073.7069 20.07-31.915)" d="m47.44 7.769h2.199v.977h-2.199z"/><path d="m51.637 4.472c-.65.653-1.309 1.051-1.898.461-.589-.588-.191-1.246.461-1.899.65-.652 1.313-1.051 1.901-.462.588.589.188 1.248-.464 1.9"/><path transform="matrix(.7071.7071-.7071.7071 18.632-35.35)" d="m50.883 4.329h2.2v.978h-2.2z"/><path d="m54.825 15.91c-5.375 5.378-6.896 6.808-10.218 3.484-3.323-3.322-1.893-4.842 3.485-10.219 7.198-7.199 7.146-9.294 11.586-4.853 4.439 4.44 2.346 4.388-4.853 11.588"/></g><g fill="#8a959b"><circle cx="53.775" cy="6.609" r="1.283"/><circle cx="50.32" cy="10.06" r="1.283"/><circle cx="46.864" cy="13.522" r="1.282"/><circle cx="57.4" cy="10.238" r="1.282"/><path d="m54.855 14.6c-.502.502-1.315.502-1.813 0-.5-.501-.503-1.312-.001-1.814.499-.499 1.313-.5 1.816 0 .498.501.498 1.313-.002 1.814"/><circle cx="50.49" cy="17.15" r="1.284"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29 31.4c.3.3.6.6.9.9.1.1.1.1.2.2 0 0 0 .1-.1.1-.7 1-1.7 2.6-1.5 4.6.2 2 .7 3.4 1.6 4.4.7.7 1.5 1 2.2 1.1-.1 0-.2.1-.3.1-1.8.7-4.2 1.7-5.1 4.5-.3 1-.5 2.2-.7 3.4-.4 2.4-.9 5.1-2.3 6.5-2 2-4.4 2.9-7.1 2.5-2.6-.4-5.5-1.9-7.9-4.4-2.5-2.5-4-5.3-4.4-7.9-.4-2.7.5-5.1 2.5-7.1 1.4-1.4 3.4-2.1 6.6-2.3 5.9-.4 7.3-3.9 8.2-6.1.7-1.8.9-2.4 2.7-2.5 1.7-.3 3 .5 4.5 2m1.5-1.6c-1.6-1.6-3.5-3.1-6.4-2.8-6.7.5-2.3 8.1-10.8 8.7-3.1.2-5.9.9-8 3-5.4 5.3-3.7 12.6 1.9 18.1 5.6 5.6 12.9 7.3 18.2 1.9 2.7-2.7 2.7-7.7 3.6-10.8 1.2-3.9 7.5-2.6 7.2-6.9 0-.4-.1-.7-.3-.8-.8-.8-3 1.1-4.3-.2-.5-.5-.8-1.4-1-3-.2-2.4 2.8-4.2 1.7-5.3-.6-.6-1.2-1.2-1.8-1.9z" fill="#e27c17"/><path d="m26.1 50.7c.2-1.2.4-2.3.7-3.4.9-2.8 3.3-3.8 5.1-4.5.1 0 .2-.1.3-.1-.7-.1-1.5-.4-2.2-1.1-.9-.9-1.4-2.3-1.6-4.4-.2-2 .9-3.5 1.5-4.6 0 0 0-.1.1-.1-.1-.1-.1-.1-.2-.2-.3-.3-.6-.6-.9-.9-1.5-1.5-2.7-2.3-4.7-2.2-1.7.1-2 .7-2.7 2.5-.9 2.3-2.2 5.7-8.2 6.1-3.2.2-5.2.9-6.6 2.3-2 2-2.9 4.4-2.5 7.1.4 2.6 1.9 5.5 4.4 7.9 2.5 2.5 5.3 4 7.9 4.4 2.7.4 5.1-.5 7.1-2.5 1.6-1.3 2.1-4 2.5-6.3" fill="#ff9d27"/><g fill="#3e4347"><path transform="matrix(.7069-.7073.7073.7069-21.7706 28.4867)" d="m21.8 37h3.5v7h-3.5z"/><path transform="matrix(.7072-.707.707.7072-26.5526 26.4877)" d="m17 41.8h3.5v7h-3.5z"/><path transform="matrix(.7072-.707.707.7072-30.6637 24.8381)" d="m13.7 46.7h2v5.5h-2z"/><path d="m28.8 39.7l-4.5-4.5 25.5-24.1 3.1 3.1z"/><circle cx="22.6" cy="53.7" r="2.3"/><circle cx="17.1" cy="56.5" r="1.8"/><path d="m52.6 19.2c-.7.7-1 1.3-.5 1.9.6.6 1.2.2 1.9-.5.7-.7 1-1.3.5-1.9-.5-.5-1.2-.1-1.9.5"/><path transform="matrix(.7071-.7071.7071.7071 1.9549 42.5188)" d="m51.8 17.8h1v2.2h-1z"/><path d="m56.1 15.8c-.7.7-1 1.3-.5 1.9.6.6 1.2.2 1.9-.5.7-.7 1-1.3.5-1.9-.6-.5-1.3-.1-1.9.5"/><path transform="matrix(.7071-.7071.7071.7071 5.3958 43.944)" d="m55.3 14.4h1v2.2h-1z"/><path d="m59.5 12.4c-.7.7-1 1.3-.5 1.9.6.6 1.2.2 1.9-.5.7-.7 1-1.3.5-1.9-.6-.6-1.2-.2-1.9.5"/><path transform="matrix(.7071-.7071.7071.7071 8.8357 45.3696)" d="m58.7 10.9h1v2.2h-1z"/><path d="m44.8 11.4c-.7.7-1.3 1-1.9.5-.6-.6-.2-1.2.5-1.9.7-.7 1.3-1 1.9-.5.5.5.1 1.2-.5 1.9"/><path transform="matrix(.708-.7062.7062.708 4.9065 35.2665)" d="m44.6 10.6h1v2.2h-1z"/><path d="m48.2 7.9c-.7.7-1.3 1-1.9.5-.6-.6-.2-1.2.5-1.9.7-.7 1.3-1 1.9-.5.5.6.1 1.3-.5 1.9"/><path transform="matrix(.7073-.7069.7069.7073 8.3722 36.7323)" d="m48.1 7.2h1v2.2h-1z"/><path d="m51.6 4.5c-.7.7-1.3 1.1-1.9.5-.6-.6-.2-1.2.5-1.9.7-.7 1.3-1.1 1.9-.5.6.6.2 1.2-.5 1.9"/><path transform="matrix(.7071-.7071.7071.7071 11.8187 38.1681)" d="m51.5 3.7h1v2.2h-1z"/><path d="m54.8 15.9c-5.4 5.4-6.9 6.8-10.2 3.5-3.3-3.3-1.9-4.8 3.5-10.2 7.2-7.2 7.1-9.3 11.6-4.9 4.4 4.5 2.3 4.4-4.9 11.6"/></g><g fill="#8a959b"><circle cx="53.8" cy="6.6" r="1.3"/><circle cx="50.3" cy="10.1" r="1.3"/><circle cx="46.9" cy="13.5" r="1.3"/><circle cx="57.4" cy="10.2" r="1.3"/><path d="m54.9 14.6c-.5.5-1.3.5-1.8 0-.5-.5-.5-1.3 0-1.8.5-.5 1.3-.5 1.8 0 .5.5.5 1.3 0 1.8"/><circle cx="50.5" cy="17.1" r="1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3b9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3b9.svg
index 57010a0..4605d3f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3b9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3b9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c5d4d8"><path d="m40.682 47.774c-2.204 4.1-4.342 8.404-6.438 12.95 4.4 1.505 8.756 2.598 13.02 3.276.563-3.949 1.371-7.736 2.392-11.357 1.04-3.684 2.298-7.193 3.737-10.529-1.977-1.749-4.02-3.64-6.133-5.64-2.276 3.597-4.461 7.354-6.583 11.3"/><path d="m62.744 15.94c-2.86 3.188-5.569 6.481-8.152 9.913-2.485 3.302-4.856 6.732-7.136 10.319 2.088 1.998 4.117 3.888 6.073 5.641 1.45-3.325 3.083-6.473 4.858-9.444 1.743-2.919 3.627-5.665 5.612-8.234-.411-2.797-.843-5.549-1.255-8.195"/></g><g fill="#eae7e4"><path d="m0 18.24c16.202 33.567 34.24 42.484 34.24 42.484 2.096-4.546 4.233-8.851 6.438-12.95 2.122-3.946 4.308-7.703 6.583-11.301-8.434-7.998-17.82-17.755-27.455-27.27-3.808 1.754-7.616 3.512-11.44 5.258-2.78 1.27-5.568 2.533-8.37 3.783"/><path d="m40.01 0c-2.796 1.242-5.58 2.499-8.355 3.762-3.818 1.739-7.623 3.489-11.432 5.246 9.551 9.474 18.878 19.17 27.23 27.16 2.279-3.589 4.65-7.02 7.136-10.319 2.583-3.432 5.292-6.725 8.152-9.913l-22.735-15.941"/></g><g fill="#333"><path d="m40.594 47.937c.059-.107.116-.217.175-.325-10.995-9.453-21.286-21.939-32.2-33.17-.098.045-.197.09-.296.136 10.937 11.283 21.243 23.858 32.32 33.36"/><path d="m49.708 52.48c-.031.109-.064.221-.094.331-2.958-1.368-5.967-3-9.02-4.873.059-.107.116-.217.175-.325 3.03 1.862 6.01 3.496 8.94 4.867"/><path d="m54.693 25.717c-.068.09-.135.182-.204.271-6.531-7.05-14.691-14.357-22.952-22.12.099-.045.198-.092.296-.136 8.235 7.718 16.367 14.956 22.86 21.986"/><path d="m58.31 32.503c.052-.089.106-.178.158-.267-1.198-2.152-2.467-4.334-3.773-6.52-.068.09-.135.182-.204.271 1.321 2.189 2.602 4.369 3.819 6.516"/><path d="m53.53 41.813c-.044.1-.088.201-.132.3-10.21-9.03-22.309-21.822-34.773-34.08.143-.063.283-.124.426-.186 12.349 12.202 24.379 24.916 34.479 33.967"/></g><path d="m47.15 22.963c1.342-1.469 2.698-2.922 4.07-4.359-7.088-4.371-15.674-10.1-25.607-15.995l1.224 3.353c6.94 6.078 14.384 11.57 20.313 17"/><path d="m38.679 31.807c1.342-1.471-14.13-17.944-24.07-23.836l1.589 2.891c6.942 6.077 15.852 15.929 22.477 20.945"/><path fill="#55646d" d="m51.814 17.988c-1.575 1.639-3.127 3.295-4.66 4.975-1.636-1.854-3.307-7.295-3.307-7.295l5.471-4.635c0 0 1.125 5.182 2.496 6.955"/><path fill="#333" d="m43.848 15.668l5.471-4.635-17.686-10.875c0 0-4.01 1.631-6.02 2.451 5.798 4.819 18.231 13.06 18.231 13.06"/><path fill="#55646d" d="m29.341 43.05c1.516-1.91 5.369-5.621 5.369-5.621-2.452-2.195-6.365-8.06-6.365-8.06l-8.258 7.89c0-.001 5.235 4.859 9.254 5.796"/><path fill="#333" d="m28.345 29.363l-8.258 7.89c0 0-12.454-14.29-16.656-24.36l6.03-3.289 18.889 19.759"/><path fill="#55646d" d="m43.12 27.468c-1.489 1.696-4.444 4.339-4.444 4.339s-4.712-3.621-6.957-5.818c1.774-1.592 7.347-6.158 7.347-6.158s2.172 5.69 4.054 7.637"/><path fill="#333" d="m31.722 25.988c1.774-1.592 7.347-6.158 7.347-6.158l-18.455-15.16-6 3.305c0 0 11.408 12.04 17.11 18.02"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c5d4d8"><path d="m40.1 46.8c-2.1 3.8-4.1 7.9-6 12.1 4.1 1.4 8.2 2.4 12.2 3.1.5-3.7 1.3-7.3 2.2-10.6 1-3.5 2.2-6.7 3.5-9.9-1.9-1.6-3.8-3.4-5.7-5.3-2.1 3.4-4.2 6.9-6.2 10.6"/><path d="m60.8 16.9c-2.7 3-5.2 6.1-7.6 9.3-2.3 3.1-4.6 6.3-6.7 9.7 2 1.9 3.9 3.6 5.7 5.3 1.4-3.1 2.9-6.1 4.6-8.9 1.6-2.7 3.4-5.3 5.3-7.7-.5-2.6-.9-5.2-1.3-7.7"/></g><g fill="#eae7e4"><path d="m2 19.1c15.2 31.5 32.1 39.8 32.1 39.8 2-4.3 4-8.3 6-12.1 2-3.7 4-7.2 6.2-10.6-7.9-7.5-16.7-16.6-25.7-25.6-3.6 1.6-7.1 3.3-10.7 4.9-2.7 1.2-5.3 2.4-7.9 3.6"/><path d="m39.5 2c-2.6 1.2-5.2 2.3-7.8 3.5-3.6 1.6-7.1 3.3-10.7 4.9 9 8.9 17.7 18 25.5 25.5 2.1-3.4 4.4-6.6 6.7-9.7 2.4-3.2 5-6.3 7.6-9.3l-21.3-14.9"/></g><g fill="#333"><path d="m40.1 46.9c.1-.1.1-.2.2-.3-10.3-8.9-20-20.6-30.2-31.1-.1 0-.2.1-.3.1 10.2 10.6 19.9 22.4 30.3 31.3"/><path d="m48.6 51.2c0 .1-.1.2-.1.3-2.8-1.3-5.6-2.8-8.5-4.6.1-.1.1-.2.2-.3 2.9 1.8 5.7 3.3 8.4 4.6"/><path d="m53.3 26.1c-.1.1-.1.2-.2.3-6.1-6.6-13.8-13.5-21.5-20.8.1 0 .2-.1.3-.1 7.7 7.2 15.3 14 21.4 20.6"/><path d="m56.7 32.5c0-.1.1-.2.1-.2-1.1-2-2.3-4.1-3.5-6.1-.1.1-.1.2-.2.3 1.2 1.9 2.4 4 3.6 6"/><path d="m52.2 41.2c0 .1-.1.2-.1.3-9.6-8.5-21-20.5-32.6-32 .1-.1.3-.1.4-.2 11.5 11.5 22.8 23.4 32.3 31.9"/></g><g fill="#231f20"><path d="m46.2 23.5c1.3-1.4 2.5-2.7 3.8-4.1-6.6-4.1-14.7-9.5-24-15l1.1 3.1c6.6 5.8 13.5 10.9 19.1 16"/><path d="M38.3,31.8C39.5,30.4,25,15,15.7,9.5l1.5,2.7C23.7,17.9,32,27.1,38.3,31.8z"/></g><path d="m50.6 18.9c-1.5 1.5-2.9 3.1-4.4 4.7-1.5-1.7-3.1-6.8-3.1-6.8l5.1-4.3c0-.2 1.1 4.7 2.4 6.4" fill="#55646d"/><path d="m43.1 16.7l5.1-4.3-16.5-10.3c0 0-3.8 1.5-5.6 2.3 5.4 4.6 17 12.3 17 12.3" fill="#333"/><path d="m29.5 42.4c1.4-1.8 5-5.3 5-5.3-2.3-2.1-6-7.6-6-7.6l-7.7 7.4c0 0 4.9 4.6 8.7 5.5" fill="#55646d"/><path d="m28.6 29.5l-7.7 7.4c0 0-11.7-13.4-15.6-22.8l5.6-3.1 17.7 18.5" fill="#333"/><path d="m42.4 27.8c-1.4 1.6-4.2 4.1-4.2 4.1s-4.4-3.4-6.5-5.5c1.7-1.5 6.9-5.8 6.9-5.8s2.1 5.3 3.8 7.2" fill="#55646d"/><path d="m31.7 26.4c1.7-1.5 6.9-5.8 6.9-5.8l-17.3-14.2-5.6 3.1c0 0 10.7 11.3 16 16.9" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ba.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ba.svg
index d435f2b..248ae7d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ba.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ba.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f2b200"><path d="m14.08 45.563l1.827-1.786-10.11-9.879-1.828 1.784z"/><path d="m18.949 40.803l1.827-1.783-10.11-9.88-1.83 1.782z"/><path d="m13.707 26.16l10.112 9.89 1.826-1.79-10.11-9.879z"/><path d="m32.728 58.43l-13.857-13.541-3.649 3.571 13.858 13.54z"/><path d="M37.595 53.672 23.74 40.13 20.09 43.697 33.947 57.24z"/><path d="M42.464 48.918 28.608 35.38 24.957 38.939 38.814 52.48z"/></g><g fill="#ffce31"><path d="m18.871 44.889l-8.761-8.569-3.658 3.567 8.77 8.573z"/><path d="m15.01 31.598l-3.653 3.562 8.733 8.537 3.65-3.567z"/><path d="m19.838 26.803l-3.648 3.57 8.767 8.566 3.651-3.559z"/><path d="M7.771 34.04 4.121 37.607 2 35.533 5.65 31.965z"/><path d="m12.642 29.28l-3.654 3.57-2.121-2.075 3.653-3.565z"/><path d="m17.511 24.527l-3.654 3.563-2.121-2.07 3.651-3.573z"/><path d="m39.32 47.984l-11.199 10.95c-3.786 3.699-9.943 3.699-13.729 0-3.784-3.699-3.784-9.717.001-13.418l11.201-10.949c3.784-3.699 9.942-3.699 13.727 0 3.785 3.699 3.785 9.716-.001 13.417m-21.776.61c-2.046 2-2.047 5.256-.001 7.26 2.046 2 5.38 2 7.427-.002l11.202-10.949c2.045-1.998 2.046-5.256-.003-7.256-2.047-2-5.376-2-7.423 0l-11.202 10.947"/><path d="m26.317 32.664c-7.736 7.561-15.318 14.971-17.916 17.51-1.744 1.705-1.65 3.176-1.65 3.176l2.663 2.602c0 0 1.502.09 3.245-1.613 2.599-2.541 10.181-9.951 17.916-17.512 10.182-9.953 30.675-3.439 30.675-3.439l-31.443-30.368c0 0 6.693 19.691-3.49 29.644"/></g><g fill="#f2b200"><path d="m9.165 54.06c0 0 1.782.309 3.527-1.396 2.601-2.539 10.42-9.746 18.16-17.309 10.184-9.953 30.335-3.496 30.335-3.496s-16.224-12.784-30.738 1.404c-11.987 11.715-21.279 20.797-21.279 20.797"/><path d="m3.518 54.951l4.257 4.158c1.715-1.691 1.624-3.145 1.624-3.145l-2.66-2.605c-.001 0-1.491-.086-3.221 1.592"/><path d="m30.15 2.338c-1.913 1.871 3.589 10.279 12.289 18.781 8.698 8.506 17.302 13.883 19.213 12.02 1.915-1.869-4.318-9.566-13.02-18.07-8.698-8.503-16.569-14.596-18.482-12.729"/></g><path fill="#333" d="m43.02 20.549c7.83 7.65 15.464 12.598 17.05 11.05 1.592-1.555-4.197-8.305-12.03-15.957-7.826-7.653-14.735-13.311-16.322-11.758-1.593 1.555 3.469 9.02 11.299 16.67"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f2b200"><path d="m14.1 45.6l1.8-1.8-10.1-9.9-1.8 1.8z"/><path d="m18.9 40.8l1.9-1.8-10.1-9.9-1.9 1.8z"/><path d="m13.7 26.2l10.1 9.8 1.8-1.7-10.1-9.9z"/><path d="m32.7 58.4l-13.8-13.5-3.7 3.6 13.9 13.5z"/><path d="m37.6 53.7l-13.9-13.6-3.6 3.6 13.8 13.5z"/><path d="M42.5 48.9 28.6 35.4 25 38.9 38.8 52.5z"/></g><g fill="#ffce31"><path d="m18.9 44.9l-8.8-8.6-3.6 3.6 8.7 8.6z"/><path d="m15 31.6l-3.6 3.6 8.7 8.5 3.6-3.6z"/><path d="m19.8 26.8l-3.6 3.6 8.8 8.5 3.6-3.5z"/><path d="M7.8 34 4.1 37.6 2 35.5 5.7 32z"/><path d="m12.6 29.3l-3.6 3.5-2.1-2 3.6-3.6z"/><path d="m17.5 24.5l-3.6 3.6-2.2-2.1 3.7-3.6z"/><path d="m39.3 48l-11.2 10.9c-3.8 3.7-9.9 3.7-13.7 0-3.8-3.7-3.8-9.7 0-13.4l11.2-10.9c3.8-3.7 9.9-3.7 13.7 0s3.8 9.7 0 13.4m-21.8.6c-2 2-2 5.3 0 7.3 2 2 5.4 2 7.4 0l11.2-10.9c2-2 2-5.3 0-7.3-2-2-5.4-2-7.4 0l-11.2 10.9"/><path d="m26.3 32.7c-7.7 7.6-15.3 15-17.9 17.5-1.7 1.7-1.7 3.2-1.7 3.2l2.7 2.6c0 0 1.5.1 3.2-1.6 2.6-2.5 10.2-10 17.9-17.5 10.2-10 30.7-3.4 30.7-3.4l-31.4-30.5c0 0 6.7 19.7-3.5 29.7"/></g><g fill="#f2b200"><path d="M9.2,54.1c0,0,1.8,0.3,3.5-1.4c2.6-2.5,10.4-9.7,18.2-17.3c10.2-10,30.3-3.5,30.3-3.5S45,19.1,30.4,33.3
+ C18.5,45,9.2,54.1,9.2,54.1z"/><path d="m3.5 55l4.3 4.2c1.7-1.8 1.6-3.2 1.6-3.2l-2.7-2.6c0 0-1.5-.1-3.2 1.6"/><path d="m30.1 2.3c-1.9 1.9 3.6 10.3 12.3 18.8 8.7 8.5 17.3 13.9 19.2 12 1.9-1.9-4.3-9.6-13-18.1-8.7-8.4-16.5-14.5-18.5-12.7"/></g><path d="m43 20.5c7.8 7.6 15.5 12.6 17.1 11 1.6-1.6-4.2-8.3-12-16-7.9-7.5-14.8-13.2-16.4-11.6-1.6 1.5 3.5 9 11.3 16.6" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3bb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3bb.svg
index 916b10a..3e9cf6e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3bb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3bb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff8736" d="m28.429 53.996c.214-2.683.803-2.731 1.666-2.841 3.111-.394 2.438-1.437 1.771-1.771-3.648-1.833-2.938-3.476-2.33-4.301 2.19-2.962 6.03.6 6.03.6-.39-4.416 3.994-4.835 5.83-5.832 8.359-4.538 1.308-12.439-1.556-15.644-3.203-2.861-11.11-9.913-15.646-1.556-.997 1.836-1.416 6.221-5.831 5.83 0 0 3.562 3.842.599 6.03-.824.61-2.468 1.319-4.301-2.329-.334-.667-1.375-1.34-1.771 1.771-.11.863-.138 1.528-2.841 1.665-2.888.146-15.653 5.752-1.515 19.891 14.14 14.14 19.679 1.169 19.893-1.514"/><g fill="#333"><path d="M29.884 38.934 25.06 34.1 50.948 10.631 53.36 13.04z"/><path d="m9.337 49.897c0 0-4.366 4.864-2.237 6.992 2.128 2.127 6.99-2.238 6.99-2.238l-4.753-4.754"/><path transform="matrix(-.7062-.708.708-.7062 1.997 89.62)" d="m19.312 33.26h.561v22.282h-.561z"/><path transform="matrix(-.7071-.7071.7071-.7071.468 85.81)" d="m17.726 31.669h.561v22.282h-.561z"/><path transform="matrix(.7072-.7071.7071.7072-26.311 28.441)" d="m10.04 45.701h22.282v.563h-22.282z"/><path d="m16.556 40.33c-1.8-1.8-4.266 1.209-5.622 2.195-.226.166-.899.661-1.184.378-.363-.362-.172-.94-.428-1.328-.457-.689-.91.208-.967.612-.085.604-.008 1.271.357 1.773 1.487 2.054 4.249-.686 5.464-1.715.308-.262.952-.882 1.417-.729.496.162.298 1.046.528 1.39.478.722.922-.268.971-.668.082-.666-.044-1.416-.536-1.908"/><path d="m22.63 55.03c-.083-1.049-2.365-.071-1.317-1.743.531-.849 1.33-1.519 1.921-2.328.689-.944 1.437-2.518.432-3.522-.452-.452-1.114-.594-1.734-.552-.4.026-1.375.191-.992.833.466.776 2.224.004 1.279 1.483-.504.788-1.223 1.446-1.796 2.184-.692.892-1.558 2.401-.8 3.502.402.587 3.117 1.388 3.01.143"/></g><path fill="#ff8736" d="m60.716 6.661l-3.386-3.383-3.392.012-7.101 7.101-.014 3.393 3.743 3.744 3.036-.378 7.102-7.1z"/><g fill="#594640"><circle cx="57.15" cy="13.604" r="1.274"/><circle cx="60.726" cy="10.03" r="1.274"/><circle cx="53.593" cy="17.16" r="1.273"/><circle cx="50.38" cy="6.845" r="1.274"/><circle cx="53.953" cy="3.274" r="1.273"/><circle cx="46.822" cy="10.406" r="1.273"/></g><path fill="#333" d="m58.36 50.906c-.127-.111-12.779-10.938-16.671-14.823-5.813-5.81-22.43-24.26-22.593-24.444l-.138-.147-6.189 2.994 41.34 41.34 4.611-4.611-.36-.309m-2.279 1.625l-2.054 2.054-39.53-39.527 2.793-1.352c1.604 1.779 16.934 18.768 22.472 24.305 3.52 3.52 14.188 12.696 16.319 14.52"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m26.7 56.4c.3-2.8 1.6-3.6 2.6-3.8 3.3-.5 2.6-1.6 1.9-1.9-3.8-1.9-.8-5.9-.1-6.8 2.4-3.2 6.3-1 6.3-1-.3-4.6 3.5-4.4 5.5-5.5 8.9-4.9 1.3-12.3-1.4-14.9-2.6-2.6-10-10.2-14.9-1.4-1.1 1.9-.8 5.8-5.5 5.5 0 0 2.2 4-1 6.3-.9.7-4.9 3.7-6.8-.1-.3-.7-1.4-1.4-1.9 1.9-.1.9-.9 2.4-3.8 2.6-6.7.5-8.4 9.9.4 18.7 9 9 18.1 6.9 18.7.4" fill="#de7f11"/><g fill="#333"><path d="M30.5 37.4 26.6 33.5 54 8 56 10z"/><path transform="matrix(.7073-.7069.7069.7073 11.0519 44.7558)" d="m59 6.7h1.2v4.6h-1.2z"/><path transform="matrix(.7072-.707.707.7072 12.0094 40.4338)" d="m54.2 3.8h1.2v3.9h-1.2z"/><path d="m53.4 6.2l-.9-1.8 1-1 1.8.8z"/><path transform="matrix(.7072-.707.707.7072 9.3326 43.685)" d="m56.8 8.3h1.2v4.6h-1.2z"/><path d="m59 10.2l.8 1.8-.9 1-1.9-.8z"/><path transform="matrix(.7072-.707.707.7072 9.7062 39.2416)" d="m51.6 5.6h1.2v4.6h-1.2z"/></g><path fill="#b3660d" d="M60.6 6.9 57.1 3.4 59 2 62 5z"/><path fill="#de7f11" d="m55.5 11.4l2.7-4.1 1.3-.2 2.5-3.8-1.3-1.3-3.8 2.5-.2 1.3-4.1 2.7z"/><g fill="#333"><path d="m24.2 35.3c.1-.3.2-.8-.2-1.2-2.7-2.7-7 6.3-8.8 4.5-.4-.4-.3-.7-.2-.9.2 0 .4 0 .6-.2.3-.3.3-.8 0-1-.3-.3-.8-.3-1 0-.2.2-.3.6-.1.9-.2.3-.6 1.1.1 1.8 2.5 2.5 7.2-6.1 8.8-4.5.1.1.1.3.1.4-.2 0-.3.1-.5.2-.3.3-.3.8 0 1 .3.3.8.3 1 0 .5-.3.5-.7.2-1"/><path d="m28.7 39.8c.3-.1.8-.2 1.2.2 2.7 2.7-6.3 7-4.5 8.8.4.4.7.3.9.2 0-.2 0-.4.2-.6.3-.3.8-.3 1 0 .3.3.3.8 0 1-.2.2-.6.3-.9.1-.3.2-1.1.6-1.8-.1-2.5-2.5 6.1-7.2 4.5-8.9-.1-.1-.3-.1-.4-.1 0 .2-.1.3-.2.5-.3.3-.8.3-1 0-.3-.3-.3-.8 0-1 .3-.3.8-.3 1-.1"/><path d="m16 42.9c0 0-1.3 2.1-1.5 2.9-.3.7-.3 2.2-.6 2.8-1.1 2-6.6 6.6-6.6 6.6l1.6 1.6c0 0 4.6-5.5 6.6-6.6.6-.4 2.2-.4 2.8-.7.8-.3 2.9-1.5 2.9-1.5l-5.2-5.1"/><path transform="matrix(.7062-.708.708.7062-21.1557 26.8091)" d="m13.9 38.6h15.7v.5h-15.7z"/><path transform="matrix(.7062-.708.708.7062-22.5582 30.2004)" d="m17.3 42h15.7v.5h-15.7z"/><path transform="matrix(.7071-.7071.7071.7071-22.0751 29.0115)" d="m16.2 40.9h15.7v.5h-15.7z"/><path transform="matrix(.7071-.7071.7071.7071-21.607 27.8836)" d="m15 39.8h15.7v.5h-15.7z"/></g><path transform="matrix(.7071-.7071.7071.7071-15.5515 31.0479)" fill="#b3660d" d="m29 1.4h1.5v65.8h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-18.0181 30.0266)" fill="#e2d8c7" d="m26.5 3.9h1.5v65.8h-1.5z"/><g fill="#333"><path d="m5.5 16.1l-3.5-3.5 5-2.1 2 2.1z"/><path d="m47.9 58.5l3.5 3.5 2.1-5-2.1-2z"/><path transform="matrix(.7071-.7071.7071.7071-26.7496 51.1074)" d="m47.6 54.8h1.5v6.1h-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3bc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3bc.svg
index c20d737..c074024 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3bc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3bc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#bacad3" d="m63.959 21.328c0-.641 0-1.282 0-1.922-18.477-7.811-36.954 4.707-55.43 3.59 0-2.056 0-5.063 0-7.426 18.47-.878 35.37-16.07 55.43-10.136-.146-.627.145-1.255 0-1.881-20.14-6.657-37.08 9.855-55.43 10.856-6.101.574-5.625.513-8.528.842 0 10.991 0 21.982 0 32.973l8.528.899c0-.004 0-.007 0-.01 17.252 5.931 39.63-2.178 55.43 10.714.131-.63-.132-1.261 0-1.89-15.717-13.707-38.13-3.946-55.43-10.06 0-1.49 0-4.307 0-5.748 18.477 3.289 36.954-7.983 55.43 1.981 0-.642 0-1.284 0-1.925-18.477-10.746-36.954 2.125-55.43-1.232 0-1.957 0-5.05 0-7.333 18.477 3.102 36.954-13.158 55.43-.901 0-.643 0-1.283 0-1.926-18.477-12.09-36.954 4.344-55.43 1.412 0-2.355 0-4.874 0-7.556 18.477 1.522 36.954-12.248 55.43-3.322"/><path fill="#333" d="m40.654 41.945c5.398-2.433 8.994-8.583 7.01-14.183-1.381-5.196-8.51-7.435-13.156-4.706-.331-1.127-.663-2.254-.994-3.381-.047-.158-.092-.316-.146-.471-.072-.207.933-1.137 1.083-1.313.997-1.169 1.963-2.371 2.844-3.621 1.539-2.186 2.97-4.837 2.489-7.54-.436-2.454-2.436-4.64-5.199-4.728-2.378-.076-4.664 1.278-5.883 3.152-1.418 2.179-1.105 4.513-.357 6.852.463 1.446.902 2.895 1.33 4.351.159.54.318 1.079.477 1.619.029.1.148.498.172.491-.289.543-.963 1.055-1.393 1.508-1.658 1.744-3.566 3.374-4.737 5.467-1.127 2.01-1.64 4.326-1.444 6.596.392 4.533 3.631 8.555 8.139 10.174 2.104.756 4.356.945 6.577.634.78 2.477 1.404 4.994 2.18 7.473.667 2.136 2.18 4.723 1.473 6.99-.636 2.04-2.92 3.279-5.118 3.02 2.554-.758 3.836-3.611 2.346-5.771-1.254-1.816-4.09-2.276-5.914-.967-3.83 2.754-.23 7.645 3.536 8.285 2.439.416 4.927-.562 6.395-2.425 1.63-2.067 1.441-4.321.804-6.687-.708-2.623-1.458-5.229-2.224-7.837-.161-.551-.322-1.101-.484-1.65-.088-.3-.176-.6-.264-.899-.106-.344.134-.303.458-.436m4.393-13.279c1.279 4.356-1.252 9.208-5.664 10.97-1.092-3.711-2.182-7.422-3.273-11.133-.264-.894-.525-1.786-.788-2.681-.21-.713-.517-.912.25-1.272 3.805-1.791 8.364.331 9.475 4.116m-13.29-22.995c.932-.831 2.507-1.432 3.749-.873 1.229.553 1.666 1.991 1.61 3.18-.144 3.09-2.675 5.843-4.658 8.111-.447-1.519-.893-3.036-1.34-4.553-.593-2.02-1.181-4.241.639-5.865m.399 19.08c.174.438-.593 1.193-.817 1.63-.302.59-.528 1.213-.666 1.854-.286 1.324-.193 2.708.233 3.997.133.394.729.46.955.1.236-.38-.131-1.318-.137-1.766-.017-1.272.35-2.541 1.063-3.624 1.313 4.461 2.625 8.92 3.936 13.381-4.283.566-8.635-1.783-10.393-5.474-1.088-2.285-1.165-5.01-.132-7.324 1.062-2.382 3.159-4.178 4.985-6.04.317 1.081.56 2.213.973 3.265"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 21.3c0-.6 0-1.3 0-1.9-18.5-7.8-37 4.7-55.5 3.6 0-2.1 0-5.1 0-7.4 18.5-.9 35.4-16.1 55.5-10.2-.1-.6.1-1.3 0-1.9-20.2-6.6-37.1 9.9-55.5 10.9-6.1.6-5.6.5-8.5.9 0 11 0 22 0 33l8.5.9c0 0 0 0 0 0 17.3 5.8 39.7-2.3 55.5 10.6.1-.6-.1-1.3 0-1.9-15.8-13.7-38.2-3.9-55.5-10 0-1.5 0-4.3 0-5.7 18.5 3.3 37-8 55.4 2 0-.6 0-1.3 0-1.9-18.4-10.9-36.9 2-55.4-1.3 0-2 0-5 0-7.3 18.5 3.1 37-13.2 55.4-.9 0-.6 0-1.3 0-1.9-18.5-12.1-37 4.3-55.4 1.4 0-2.4 0-4.9 0-7.6 18.5 1.5 37-12.3 55.5-3.4" fill="#bacad3"/><path d="m40.7 41.9c5.4-2.4 9-8.6 7-14.2-1.4-5.2-8.5-7.4-13.2-4.7-.3-1.1-.7-2.3-1-3.4 0-.2-.1-.3-.1-.5-.1-.2.9-1.1 1.1-1.3 1-1.2 2-2.4 2.8-3.6 1.5-2.2 3-4.8 2.5-7.5-.4-2.5-2.4-4.6-5.2-4.7-2.4-.1-4.7 1.3-5.9 3.2-1.4 2.2-1.1 4.5-.4 6.9.5 1.4.9 2.9 1.3 4.4.2.5.3 1.1.5 1.6 0 .1.1.5.2.5-.3.5-1 1.1-1.4 1.5-1.7 1.7-3.6 3.4-4.7 5.5-1.1 2-1.6 4.3-1.4 6.6.4 4.5 3.6 8.6 8.1 10.2 2.1.8 4.4.9 6.6.6.8 2.5 1.4 5 2.2 7.5.7 2.1 2.2 4.7 1.5 7-.6 2-2.9 3.3-5.1 3 2.6-.8 3.8-3.6 2.3-5.8-1.3-1.8-4.1-2.3-5.9-1-3.8 2.8-.2 7.6 3.5 8.3 2.4.4 4.9-.6 6.4-2.4 1.6-2.1 1.4-4.3.8-6.7-.7-2.6-1.5-5.2-2.2-7.8-.2-.6-.3-1.1-.5-1.7-.1-.3-.2-.6-.3-.9-.1-.5.1-.4.5-.6m4.3-13.2c1.3 4.4-1.3 9.2-5.7 11-1.1-3.7-2.2-7.4-3.3-11.1-.3-.9-.5-1.8-.8-2.7-.2-.7-.5-.9.2-1.3 4-1.8 8.5.3 9.6 4.1m-13.2-23c.9-.8 2.5-1.4 3.7-.9 1.2.6 1.7 2 1.6 3.2-.1 3.1-2.7 5.8-4.7 8.1-.4-1.5-.9-3-1.3-4.6-.6-2-1.2-4.2.7-5.8m.4 19.1c.2.4-.6 1.2-.8 1.6-.3.6-.5 1.2-.7 1.9-.3 1.3-.2 2.7.2 4 .1.4.7.5 1 .1.2-.4-.1-1.3-.1-1.8 0-1.3.3-2.5 1.1-3.6 1.3 4.5 2.6 8.9 3.9 13.4-4.3.6-8.6-1.8-10.4-5.5-1.1-2.3-1.2-5-.1-7.3 1.1-2.4 3.2-4.2 5-6 .2 1 .4 2.1.9 3.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3bd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3bd.svg
index a3fd36b..b612348 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3bd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3bd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#6adbc6" d="m49.44 4.709c-.281-1.611-.424-3.188-.448-4.709h-3.938c.075.513.113 1.034.113 1.564 0 6.544-5.895 11.848-13.169 11.848-7.269 0-13.165-5.304-13.165-11.848 0-.53.037-1.052.112-1.564h-3.938c-.021 1.521-.171 3.098-.448 4.709-1.684 9.699-4.117 17.578-10.661 19.494 0 0 2.823 4.54 2.823 12.324.003 13.438-2.82 27.473-2.82 27.473h56.2c0 0-3.531-14.03-3.531-27.884 0-7.374 3.531-11.913 3.531-11.913-6.543-1.915-8.981-9.795-10.663-19.494"/><path fill="#428bc1" d="m31.997 13.413c7.274 0 13.169-5.304 13.169-11.848 0-.53-.038-1.052-.113-1.564-3.627 1.646-6.973 3.704-13.06 3.704-6.161 0-9.425-2.02-13.05-3.704-.075.513-.112 1.034-.112 1.564 0 6.543 5.895 11.848 13.164 11.848"/><path fill="#ffce31" d="m5.378 54.788c-.836 5.991-1.479 9.212-1.479 9.212h8.314l42.944-43.1c-2.152-2.561-3.55-6.275-4.596-10.637l-45.18 44.529"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.4 4.7c-.2-1.6-.4-3.2-.4-4.7h-3.9c.1.5.1 1 .1 1.6 0 6.5-5.9 11.8-13.2 11.8-7.3 0-13.2-5.3-13.2-11.8 0-.5 0-1.1.1-1.6h-3.9c0 1.5-.2 3.1-.4 4.7-1.7 9.7-4.1 17.6-10.7 19.5 0 0 2.8 4.5 2.8 12.3 0 13.5-2.8 27.5-2.8 27.5h56.2c0 0-3.5-14-3.5-27.9 0-7.4 3.5-11.9 3.5-11.9-6.5-1.9-9-9.8-10.7-19.5" fill="#6adbc6"/><path d="m32 13.4c7.3 0 13.2-5.3 13.2-11.8 0-.5 0-1.1-.1-1.6-3.6 1.6-7 3.7-13.1 3.7-6.2 0-9.4-2-13.1-3.7-.1.5-.1 1-.1 1.6 0 6.5 5.9 11.8 13.2 11.8" fill="#428bc1"/><path d="m5.4 54.8c-.8 6-1.5 9.2-1.5 9.2h8.3l42.9-43.1c-2.2-2.6-3.5-6.3-4.6-10.6l-45.1 44.5" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3be.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3be.svg
index 038860b..25ead51 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3be.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3be.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#c7e755" cx="13" cy="13" r="11"/><g fill="#fff"><path d="m10.615 15.385c-2.353-2.353-5.485-3.46-8.574-3.32-.035.41-.049.822-.036 1.232 2.784-.151 5.619.834 7.741 2.957 2.123 2.123 3.108 4.958 2.957 7.742.411.011.822-.001 1.232-.036.14-3.087-.968-6.222-3.32-8.575"/><path d="m23.996 12.704c-2.784.15-5.619-.835-7.74-2.958-2.125-2.122-3.109-4.957-2.958-7.742-.41-.011-.822.001-1.232.036-.139 3.088.967 6.223 3.319 8.576 2.354 2.353 5.488 3.459 8.576 3.319.034-.41.047-.822.035-1.231"/></g><path fill="#d0d0d0" d="m52.797 34.842l1.045-1.043-2.276-2.274 3.988-3.99 1.538 1.537 1.041-1.044-1.535-1.535 3.754-3.753-1.044-1.044-3.754 3.754-3.167-3.169 3.982-3.981 3.122 3.125 1.046-1.045-3.126-3.125 2.489-2.487-1.046-1.043-2.485 2.489-3.173-3.174 3.519-3.521-1.042-1.043-3.521 3.521-3.177-3.176 2.487-2.487-1.044-1.044-2.485 2.487-3.125-3.125-1.044 1.043 3.123 3.125-3.979 3.982-3.168-3.167 3.753-3.754-1.046-1.043-3.751 3.753-1.536-1.538-1.042 1.043 1.533 1.535-3.99 3.99-2.273-2.274-1.046 1.043 2.276 2.276-3.99 3.988-1.535-1.536-1.042 1.044 1.533 1.536-3.752 3.754 1.04 1.043 3.756-3.754 3.169 3.168-3.982 3.98-3.125-3.125-1.043 1.045 3.122 3.125-2.488 2.486 1.045 1.046 2.489-2.488 3.178 3.176-3.524 3.518v.002l1.045 1.045 3.52-3.521 3.175 3.174-2.491 2.486 1.046 1.045 2.486-2.486 3.125 3.125 1.045-1.043-3.126-3.127 3.981-3.982 3.169 3.168-3.752 3.752 1.046 1.043 3.747-3.75 1.537 1.535 1.048-1.043-1.537-1.537 3.988-3.989 2.276 2.273m1.713-8.352l-3.988 3.99-3.168-3.168 3.988-3.988 3.168 3.166m-13.235 4.812l-3.17-3.175 3.986-3.988 3.174 3.173-3.99 3.99m-3.402-11.382l3.176 3.176-3.989 3.988-3.177-3.175 3.99-3.989m5.03-5.03l3.174 3.175-3.989 3.988-3.174-3.175 3.989-3.988m.228 8.208l3.989-3.99 3.173 3.172-3.984 3.991-3.178-3.173m12.19-5.844l-3.979 3.984-3.178-3.172 3.983-3.983 3.174 3.171m-7.392-7.391l3.174 3.176-3.982 3.982-3.173-3.176 3.981-3.982m-9.238.815l3.164 3.167-3.986 3.989-3.166-3.167 3.988-3.989m-9.02 9.02l3.988-3.99 3.17 3.169-3.992 3.988-3.166-3.167m-.816 9.237l3.982-3.983 3.176 3.175-3.983 3.982-3.175-3.174m7.393 7.393l-3.171-3.174 3.98-3.982 3.174 3.173-3.983 3.983m9.235-.816l-3.168-3.167 3.995-3.989 3.163 3.169-3.99 3.987"/><g fill="#ff717f"><path d="m57.667 7.519c-6.849-6.847-19.374-5.426-27.973 3.176-8.603 8.602-10.03 21.13-3.181 27.973 6.851 6.85 19.377 5.428 27.977-3.174 8.604-8.602 10.02-21.13 3.177-27.975m-28.709 28.708c-5.774-5.773-4.575-16.334 2.677-23.587 7.255-7.252 17.813-8.451 23.588-2.678 5.775 5.775 4.576 16.335-2.676 23.589-7.255 7.254-17.814 8.451-23.589 2.676"/><path d="m38.09 42.926c.668-.037-5.826-2.348-5.826-2.348s-8.188 3.695-9.769 2.113c-1.582-1.582 2.112-9.769 2.112-9.769s-2.312-6.494-2.35-5.825c-.361 6.502-1.442 12.879-4.513 16.508-.397.471-1.043.99-1.043.99l1.942 1.943 1.945 1.945c0 0 .521-.645.989-1.045 3.633-3.069 10.01-4.149 16.513-4.512"/></g><g fill="#4d4f59"><path transform="matrix(.7071-.7071.7071.7071-33.24 24.334)" d="m3.082 48.856h19.347v6.876h-19.347z"/><path d="m9.989 50.2l3.376 6.35 2.157-2.16-3.375-6.35z"/><path d="m5.679 54.51l3.371 6.347 2.158-2.156-3.377-6.351z"/></g><g fill="#5f606c"><path d="m3.484 56.703l4.862 4.857.704-.703-3.371-6.347z"/><path d="m7.831 52.35l3.377 6.351 2.157-2.151-3.376-6.35z"/><path d="m17.17 43.02l-.713.71 3.375 6.35 2.198-2.195z"/></g><path fill="#4d4f59" d="m14.3 45.887l3.375 6.343 2.157-2.15-3.375-6.35z"/><path fill="#5f606c" d="m12.147 48.04l3.375 6.35 2.153-2.16-3.375-6.343z"/><g fill="#4d4f59"><path transform="matrix(.707.7072-.7072.707 43.23 12.361)" d="m2.645 57.24h8.105v2.216h-8.105z"/><path transform="matrix(.7069.7073-.7073.7069 38.22.248)" d="m14.758 45.13h8.104v2.219h-8.104z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="13" cy="13" r="11" fill="#c7e755"/><g fill="#fff"><path d="m10.6 15.4c-2.3-2.4-5.5-3.5-8.6-3.3 0 .4 0 .8 0 1.2 2.8-.2 5.6.8 7.7 3 2.1 2.1 3.1 5 3 7.7.4 0 .8 0 1.2 0 .2-3.1-.9-6.3-3.3-8.6"/><path d="m24 12.7c-2.8.1-5.6-.8-7.7-3-2.1-2.1-3.1-5-3-7.7-.4 0-.8 0-1.2 0-.1 3.1 1 6.2 3.3 8.6 2.4 2.4 5.5 3.5 8.6 3.3 0-.4 0-.8 0-1.2"/></g><path d="m52.8 34.8l1-1-2.3-2.3 4-4 1.5 1.5 1-1-1.5-1.5 3.8-3.8-1-1-3.8 3.8-3.2-3.2 4-4 3.1 3.1 1-1-3.1-3.1 2.5-2.5-1-1-2.5 2.5-3.1-3.3 3.5-3.5-1-1-3.5 3.5-3.2-3.2 2.5-2.5-1-1-2.5 2.5-3.1-3.1-1 1 3.1 3.1-4 4-3.2-3.2 3.8-3.8-1-1-3.8 3.8-1.5-1.5-1 1 1.5 1.5-4 4-2.3-2.3-1 1 2.3 2.3-4 4-1.5-1.5-1 1 1.5 1.5-3.8 3.8 1 1 3.8-3.8 3.2 3.2-4 4-3.1-3.1-1 1 3.1 3.1-2.5 2.5 1 1 2.5-2.5 3.2 3.2-3.5 3.5 1 1 3.5-3.5 3.2 3.2-2.5 2.5 1 1 2.5-2.5 3.1 3.1 1-1-3.1-3.1 4-4 3.2 3.2-3.8 3.8 1 1 3.7-3.8 1.5 1.5 1-1-1.5-1.5 4-4 2.3 2.4m1.7-8.3l-4 4-3.2-3.2 4-4 3.2 3.2m-13.2 4.8l-3.2-3.2 4-4 3.2 3.2-4 4m-3.4-11.4l3.2 3.2-4 4-3.2-3.2 4-4m5-5l3.2 3.2-4 4-3.2-3.2 4-4m.2 8.2l4-4 3.2 3.2-4 4-3.2-3.2m12.2-5.8l-4 4-3.2-3.2 4-4 3.2 3.2m-7.4-7.4l3.2 3.2-4 4-3.1-3.3 3.9-3.9m-9.2.8l3.2 3.2-4 4-3.2-3.2 4-4m-9 9l4-4 3.2 3.2-4 4-3.2-3.2m-.8 9.2l4-4 3.2 3.2-4 4-3.2-3.2m7.3 7.4l-3.2-3.2 4-4 3.2 3.2-4 4m9.3-.8l-3.2-3.2 4-4 3.2 3.2-4 4" fill="#d0d0d0"/><g fill="#ff717f"><path d="m57.7 7.5c-6.8-6.8-19.4-5.4-28 3.2-8.6 8.6-10 21.1-3.2 28 6.9 6.8 19.4 5.4 28-3.2 8.6-8.6 10-21.1 3.2-28m-28.7 28.7c-5.8-5.8-4.6-16.3 2.7-23.6 7.3-7.3 17.8-8.5 23.6-2.7 5.8 5.8 4.6 16.3-2.7 23.6-7.3 7.3-17.9 8.5-23.6 2.7"/><path d="m38.1 42.9c.7 0-5.8-2.3-5.8-2.3s-8.2 3.7-9.8 2.1c-1.6-1.6 2.1-9.8 2.1-9.8s-2.3-6.5-2.4-5.8c-.4 6.5-1.4 12.9-4.5 16.5-.4.5-1 1-1 1l1.9 1.9 1.9 1.9c0 0 .5-.6 1-1 3.7-3 10.1-4.1 16.6-4.5"/></g><g fill="#4d4f59"><path transform="matrix(.7071-.7071.7071.7071-33.2398 24.3359)" d="m3.1 48.9h19.3v6.9h-19.3z"/><path d="m10 50.2l3.4 6.3 2.1-2.1-3.4-6.4z"/><path d="m5.7 54.5l3.4 6.4 2.1-2.2-3.4-6.3z"/></g><g fill="#5f606c"><path d="m3.5 56.7l4.8 4.9.8-.7-3.4-6.4z"/><path d="m7.8 52.4l3.4 6.3 2.2-2.2-3.4-6.3z"/><path d="m17.2 43l-.7.7 3.3 6.4 2.2-2.2z"/></g><path fill="#4d4f59" d="m14.3 45.9l3.4 6.3 2.1-2.1-3.3-6.4z"/><path fill="#5f606c" d="m12.1 48l3.4 6.4 2.2-2.2-3.4-6.3z"/><g fill="#4d4f59"><path transform="matrix(.7072-.707.707.7072-39.2943 21.8214)" d="m5.6 54.3h2.2v8.1h-2.2z"/><path transform="matrix(.7073-.7069.7069.7073-27.18 26.8327)" d="m17.7 42.2h2.2v8.1h-2.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3bf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3bf.svg
index 6e1b0ed..c18b670 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3bf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3bf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#287700" d="m50.41 33.36c-.523-.546-2.398.158-3.02-.283-.961-.686-.81-3.953-1.935-4.307-8.282-2.61-23.352 13.928-27.06 21.782-.468.992-.701 4.182.249 4.73l3.176-1.834-.538-.932 9.747-5.627.538.932 7.264-4.194-1.282-2.223 9.747-5.628 1.283 2.223 1.996-1.152c.325-.81.429-2.856-.173-3.487"/><g fill="#3e4347"><path transform="matrix(-.5001-.8659.8659-.5001-3.796 98.15)" d="m25.891 44.542h1.076v11.255h-1.076z"/><path transform="matrix(-.4997-.8662.8662-.4997 30.2 96.85)" d="m41.786 34.07h2.566v11.256h-2.566z"/></g><path fill="#79c600" d="m44.657 24.471c-2-2.608-4.81-5.02-6.878-5.336-4.107-.631-13.09 5.339-13.668 9.454-.581 4.157-4.482 9.878-6.797 14.185l7.778 7.151c3.934-3.244 8.259-8.213 11-10.139 1.552-1.091 5.102-2.328 6.825-3.641-.384-3.778-.245-8.314 1.739-11.674"/><g fill="#b6ef00"><path d="m16.497 44.39c-1.387 2.971-1.894 5.251-.78 6.612.85 1.037 3.385 2.129 4.679 1.777 1.389-.379 3.01-1.457 4.697-2.852l-7.778-7.151c-.304.564-.581 1.105-.818 1.614"/><path d="m47.13 29.28c-.207-1.341-1.173-3.115-2.473-4.806-1.984 3.36-2.123 7.896-1.738 11.675.158-.121.303-.242.427-.363 1.345-1.316 4.069-4.647 3.784-6.506"/><path d="m26.481 2.389c-2.124 11.247-9.524 10.665-9.524 10.665-2.069 1.109-4.856 2.093-4.881 3.706-.025 1.618 9.09 12.535 11.184 13.699 1.378.768 12.1-1.285 13.708-2.856 1.57-1.536 2.654-6.276 2.382-8.456-.212-1.686-10.593-14.543-12.869-16.758"/></g><g fill="#3e4347"><path d="m26.09 2.068c-.473-.149-1.142-.041-1.849.216-1.342.487-2.815 1.509-3.316 2.307-.661 1.054-.838 2.718-1.121 4.257-.192 1.047-.434 2.037-.908 2.738-.368.544-1.093 1.017-1.936 1.468 0 0 7.4.582 9.524-10.665-.193-.188-.328-.3-.394-.321"/><circle cx="34.02" cy="24.616" r="2.602"/><path d="m16.994 25.617l3.126 3.593 7.437-6.01-2.927-3.586z"/><path d="m12.462 20.293l3.122 3.592 7.446-6.01-2.93-3.583z"/></g><path fill="#287700" d="m23.806 13.539l.849 1.074-2.477 1.956-.848-1.074 2.476-1.956m.132-1.119l-3.727 2.943 1.835 2.323 3.727-2.942-1.835-2.324z"/><path fill="#60aa00" d="m22.37 13.405l2.081 2.636-3.25 2.566-2.081-2.636 3.25-2.566m.13-1.118l-4.499 3.553 3.068 3.886 4.5-3.554-3.069-3.885z"/><path fill="#287700" d="m28.28 18.836l.848 1.074-2.476 1.956-.849-1.074 2.477-1.956m.132-1.118l-3.727 2.942 1.835 2.323 3.727-2.942-1.835-2.323z"/><path fill="#60aa00" d="m26.845 18.703l2.081 2.636-3.25 2.566-2.081-2.636 3.25-2.566m.132-1.119l-4.5 3.553 3.068 3.886 4.5-3.553-3.068-3.886z"/><path fill="#287700" d="m19.458 36.454l7.562 5.137 2.13-3.321-7.327-5.21z"/><path fill="#b6ef00" d="m30.02 40.42l-.798 1.111-2.562-1.843.799-1.11 2.561 1.842m1.112-.181l-3.855-2.772-1.729 2.403 3.854 2.772 1.73-2.403z"/><path fill="#3e4347" d="m29.749 38.999l-1.961 2.727-3.362-2.418 1.962-2.727 3.361 2.418m1.111-.182l-4.654-3.348-2.892 4.02 4.654 3.349 2.892-4.02z"/><path fill="#287700" d="m16.224 41.517l6.766 4.593 1.909-2.96-6.559-4.665z"/><path fill="#b6ef00" d="m25.671 45.06l-.715.994-2.292-1.649.715-.993 2.292 1.648m.996-.163l-3.449-2.48-1.547 2.15 3.449 2.48 1.547-2.15z"/><path fill="#3e4347" d="m25.432 43.794l-1.755 2.439-3.01-2.164 1.755-2.439 3.01 2.164m.995-.162l-4.166-2.996-2.586 3.597 4.165 2.995 2.587-3.596z"/><path fill="#42ade2" d="m13.91 57.52c-4.457 2.574-8.221-.151-10.347-2.143.142.935.455 1.857.957 2.726 1.766 3.058 5.831 5.271 10.377 2.646 3.173-1.831 49.04-28.08 49.04-28.08v-3.773l-50.03 28.623"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.4 33.4c-.5-.5-2.4.2-3-.3-1-.7-.8-4-1.9-4.3-8.3-2.6-23.4 13.9-27.1 21.8-.5 1-.7 4.2.2 4.7l3.2-1.8-.5-.9 9.7-5.6.5.9 7.3-4.2-1.3-2.2 9.7-5.6 1.3 2.2 2-1.2c.4-.9.5-2.9-.1-3.5" fill="#287700"/><g fill="#3e4347"><path transform="matrix(.866-.5001.5001.866-21.5498 19.9433)" d="m20.8 49.6h11.3v1.1h-11.3z"/><path transform="matrix(.8662-.4997.4997.8662-14.076 26.8337)" d="m37.4 38.4h11.3v2.6h-11.3z"/></g><path d="m44.7 24.5c-2-2.6-4.8-5-6.9-5.3-4.1-.6-13.1 5.3-13.7 9.5-.6 4.2-4.5 9.9-6.8 14.2l7.8 7.2c3.9-3.2 8.3-8.2 11-10.1 1.6-1.1 5.1-2.3 6.8-3.6-.4-4-.2-8.6 1.8-11.9" fill="#79c600"/><g fill="#b6ef00"><path d="m16.5 44.4c-1.4 3-1.9 5.3-.8 6.6.8 1 3.4 2.1 4.7 1.8 1.4-.4 3-1.5 4.7-2.9l-7.8-7.2c-.3.6-.6 1.2-.8 1.7"/><path d="m47.1 29.3c-.2-1.3-1.2-3.1-2.5-4.8-2 3.4-2.1 7.9-1.7 11.7.2-.1.3-.2.4-.4 1.4-1.3 4.1-4.7 3.8-6.5"/><path d="m26.5 2.4c-2.1 11.2-9.5 10.7-9.5 10.7-2.1 1.1-4.9 2.1-4.9 3.7 0 1.6 9.1 12.5 11.2 13.7 1.4.8 12.1-1.3 13.7-2.9 1.6-1.5 2.7-6.3 2.4-8.5-.3-1.6-10.6-14.5-12.9-16.7"/></g><g fill="#3e4347"><path d="m26.1 2.1c-.5-.1-1.1 0-1.8.2-1.3.5-2.8 1.5-3.3 2.3-.7 1.1-.8 2.7-1.1 4.3-.2 1-.4 2-.9 2.7-.4.5-1.1 1-1.9 1.5 0 0 7.4.6 9.5-10.7-.3-.2-.4-.3-.5-.3"/><circle cx="34" cy="24.6" r="2.6"/><path d="m17 25.6l3.1 3.6 7.5-6-3-3.6z"/><path d="m12.5 20.3l3.1 3.6 7.4-6-2.9-3.6z"/></g><path d="m23.8 13.5l.8 1.1-2.5 2-.8-1.1 2.5-2m.1-1.1l-3.7 2.9 1.8 2.3 3.7-2.9-1.8-2.3z" fill="#287700"/><path d="m22.4 13.4l2.1 2.6-3.2 2.6-2.2-2.6 3.3-2.6m.1-1.1l-4.5 3.5 3.1 3.9 4.5-3.6-3.1-3.8z" fill="#60aa00"/><path d="m28.3 18.8l.8 1.1-2.5 2-.8-1.1 2.5-2m.1-1.1l-3.7 2.9 1.8 2.3 3.7-2.9-1.8-2.3z" fill="#287700"/><path d="m26.8 18.7l2.1 2.6-3.2 2.6-2.1-2.6 3.2-2.6m.2-1.1l-4.5 3.6 3.1 3.9 4.5-3.6-3.1-3.9z" fill="#60aa00"/><path fill="#287700" d="m19.5 36.5l7.5 5.1 2.2-3.3-7.4-5.2z"/><path d="m30 40.4l-.8 1.1-2.6-1.8.8-1.1 2.6 1.8m1.1-.2l-3.9-2.8-1.7 2.4 3.9 2.8 1.7-2.4z" fill="#b6ef00"/><path d="m29.7 39l-2 2.7-3.4-2.4 2-2.7 3.4 2.4m1.2-.2l-4.7-3.3-2.9 4 4.7 3.3 2.9-4z" fill="#3e4347"/><path fill="#287700" d="m16.2 41.5l6.8 4.6 1.9-3-6.6-4.6z"/><path d="m25.7 45.1l-.7 1-2.3-1.6.7-1 2.3 1.6m1-.2l-3.4-2.5-1.5 2.2 3.4 2.5 1.5-2.2z" fill="#b6ef00"/><path d="m25.4 43.8l-1.8 2.4-3-2.2 1.8-2.4 3 2.2m1-.2l-4.2-3-2.6 3.6 4.2 3 2.6-3.6z" fill="#3e4347"/><path d="m13.9 57.5c-4.5 2.6-8.2-.2-10.3-2.1.1.9.5 1.9 1 2.7 1.8 3.1 5.8 5.3 10.4 2.6 3.2-1.8 49-28.1 49-28.1v-3.8l-50.1 28.7" fill="#42ade2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c0.svg
index 8419c75..4c88cd0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m42.22 62c-.236 0-.474-.066-.676-.2-.391-.259-.572-.712-.457-1.146.025-.103 2.545-10.779-12.281-22.541-.49-.39-.549-1.075-.131-1.531.42-.456 1.156-.511 1.648-.122 11.837 9.391 13.361 18.15 13.303 22.267 9.509-6.139 14.843-12.444 15.866-18.762.948-5.859-2.259-9.521-2.396-9.675-.412-.46-.348-1.145.146-1.528.493-.385 1.228-.326 1.642.129.164.182 4.01 4.502 2.929 11.334-1.171 7.418-7.548 14.686-18.954 21.6-.194.116-.417.175-.639.175"/><path d="m31.773 62c-.268 0-.535-.086-.751-.254-.406-.316-.532-.848-.307-1.294.181-.368 4.368-9.253-6.937-21.18-.427-.451-.381-1.138.104-1.535.485-.396 1.223-.352 1.648.098 8.409 8.872 8.859 16.359 8.218 20.382 19.09-13.587 17.27-24.97 17.248-25.09-.087-.475.172-.948.636-1.161.463-.212 1.023-.117 1.375.237 12.822 12.953 4.04 20.901 3.95 20.981-.472.409-1.209.388-1.651-.049-.441-.437-.419-1.121.047-1.532.283-.253 6.24-5.802-2.051-15.724-.578 4.885-4.02 14.877-20.857 25.919-.201.133-.436.199-.672.199"/><path d="m51.32 62c-.108 0-.219-.014-.328-.043-.618-.169-.974-.77-.794-1.345.136-.447 2.905-10.241-10.218-21.474-1.028 3.455-4.225 11.11-13.549 18.527-.491.393-1.229.338-1.647-.119-.421-.455-.362-1.141.128-1.531 11.588-9.222 13.192-18.962 13.206-19.06.06-.393.345-.725.743-.864.398-.141.848-.069 1.172.188 16.02 12.712 12.563 24.447 12.408 24.939-.149.475-.615.782-1.121.782"/></g><path fill="#ed4c5c" d="m30.545 41.18c-12.659 0-11.127-6.159-9.403-8.475 4.694-6.305 22.481-12.709 31.839-12.709 10.804 0 9.06 5.958 6.786 9.02-5.103 6.853-19.9 12.169-29.22 12.169m22.436-18.11c-7.729 0-21.908 5.169-26.618 9.705-.943.908-2.563 3.342 4.182 3.342 8.41 0 21.17-5.229 25.09-9.839 1.398-1.644 2.112-3.208-2.656-3.208"/><circle fill="#ff8736" cx="22" cy="22" r="20"/><g fill="#231f20"><path d="m7.764 7.953c.423 1.673 1.132 3.23 1.947 4.728.794 1.507 1.687 2.96 2.612 4.39 1.872 2.846 3.897 5.593 6.081 8.204 2.167 2.624 4.488 5.121 7 7.398 1.266 1.128 2.579 2.207 3.992 3.142 1.398.962 2.918 1.747 4.586 2.198-1.737-.115-3.398-.792-4.958-1.564-1.551-.813-3-1.798-4.372-2.879-2.746-2.159-5.173-4.676-7.404-7.337-2.206-2.684-4.221-5.526-5.925-8.557-.856-1.511-1.628-3.074-2.279-4.688-.605-1.625-1.195-3.298-1.284-5.04"/><path d="m2.01 21.461c1.201 2.5 2.656 4.829 4.537 6.733 1.876 1.906 4.135 3.364 6.586 4.466 2.437 1.147 5.066 1.932 7.648 3.036 1.286.554 2.573 1.211 3.676 2.15 1.098.939 1.898 2.252 2.087 3.635-.52-1.296-1.416-2.342-2.533-3.049-1.107-.727-2.371-1.2-3.651-1.645-2.577-.851-5.276-1.586-7.853-2.766-2.563-1.181-5-2.836-6.824-5.05-1.841-2.185-3.059-4.812-3.673-7.515"/><path d="m38.09 33.888c-1.595.671-3.527 1.016-5.293.21-1.752-.849-2.778-2.588-3.47-4.227-1.373-3.368-1.884-6.878-2.647-10.277-.715-3.403-1.525-6.787-3.038-9.844-1.489-3.044-3.954-5.658-7.269-6.946 1.728.358 3.373 1.162 4.808 2.261 1.419 1.125 2.583 2.563 3.489 4.126 1.827 3.142 2.726 6.657 3.476 10.09l1.014 5.162c.329 1.708.712 3.397 1.253 5 .563 1.577 1.332 3.149 2.729 4 1.39.901 3.252.796 4.948.433"/><path d="m33.586 5.695c.919.612 1.591 1.544 2.133 2.503.546.967.974 1.997 1.326 3.05.676 2.117 1.037 4.333 1.109 6.563.153 4.443-.866 9.05-3.402 12.857-1.273 1.884-2.91 3.53-4.792 4.799-1.892 1.255-3.987 2.172-6.155 2.721-4.344 1.137-8.851 1-13.152.283 4.362.142 8.751-.14 12.828-1.408 4.062-1.253 7.725-3.714 10.03-7.229 2.353-3.478 3.393-7.76 3.48-12.01.029-2.133-.161-4.285-.647-6.377-.491-2.067-1.183-4.211-2.755-5.749"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m42.2 62c-.2 0-.5-.1-.7-.2-.4-.3-.6-.7-.5-1.1 0-.1 2.5-10.8-12.3-22.5-.5-.4-.5-1.1-.1-1.5.4-.5 1.2-.5 1.6-.1 11.8 9.4 13.4 18.1 13.3 22.3 9.5-6.1 14.8-12.4 15.9-18.8.9-5.9-2.3-9.5-2.4-9.7-.4-.5-.3-1.1.1-1.5.5-.4 1.2-.3 1.6.1.2.2 4 4.5 2.9 11.3-1.2 7.4-7.5 14.7-19 21.6.1 0-.2.1-.4.1"/><path d="m31.8 62c-.3 0-.5-.1-.8-.3-.4-.3-.5-.8-.3-1.3.2-.4 4.4-9.3-6.9-21.2-.4-.5-.4-1.1.1-1.5.5-.4 1.2-.4 1.6.1 8.4 8.9 8.9 16.4 8.2 20.4 19.1-13.6 17.3-25 17.3-25.1-.1-.5.2-.9.6-1.2.5-.2 1-.1 1.4.2 12.8 13 4 20.9 4 21-.5.4-1.2.4-1.7 0-.4-.4-.4-1.1 0-1.5.3-.3 6.2-5.8-2.1-15.7-.6 4.9-4 14.9-20.9 25.9-.1.1-.3.2-.5.2"/><path d="m51.3 62c-.1 0-.2 0-.3 0-.6-.2-1-.8-.8-1.3.1-.4 2.9-10.2-10.2-21.5-1 3.5-4.2 11.1-13.5 18.5-.5.4-1.2.3-1.6-.1-.4-.5-.4-1.1.1-1.5 11.6-9.2 13.2-19 13.2-19.1.1-.4.3-.7.7-.9.4-.1.8-.1 1.2.2 16 12.7 12.6 24.4 12.4 24.9-.2.5-.7.8-1.2.8"/></g><path d="m30.5 41.2c-12.7 0-11.1-6.2-9.4-8.5 4.7-6.3 22.5-12.7 31.9-12.7 10.8 0 9.1 6 6.8 9-5.1 6.9-19.9 12.2-29.3 12.2m22.5-18.1c-7.7 0-21.9 5.2-26.6 9.7-.9.9-2.6 3.3 4.2 3.3 8.4 0 21.2-5.2 25.1-9.8 1.3-1.7 2-3.2-2.7-3.2" fill="#ed4c5c"/><circle cx="22" cy="22" r="20" fill="#ff8736"/><g fill="#231f20"><path d="m7.8 8c.4 1.7 1.1 3.2 1.9 4.7.8 1.5 1.7 3 2.6 4.4 1.9 2.8 3.9 5.6 6.1 8.2 2.2 2.6 4.5 5.1 7 7.4 1.3 1.1 2.6 2.2 4 3.1 1.4 1 2.9 1.7 4.6 2.2-1.7-.1-3.4-.8-5-1.6-1.6-.8-3-1.8-4.4-2.9-2.7-2.2-5.2-4.7-7.4-7.3-2.2-2.7-4.2-5.5-5.9-8.6-.8-1.4-1.6-3-2.3-4.6-.6-1.6-1.1-3.3-1.2-5"/><path d="m2 21.5c1.2 2.5 2.7 4.8 4.5 6.7 1.9 1.9 4.1 3.4 6.6 4.5 2.4 1.1 5.1 1.9 7.6 3 1.3.6 2.6 1.2 3.7 2.2 1.1.9 1.9 2.3 2.1 3.6-.5-1.3-1.4-2.3-2.5-3-1.1-.7-2.4-1.2-3.7-1.6-2.6-.9-5.3-1.6-7.9-2.8-2.6-1.2-5-2.8-6.8-5-1.8-2.3-3-4.9-3.6-7.6"/><path d="m38.1 33.9c-1.6.7-3.5 1-5.3.2-1.8-.8-2.8-2.6-3.5-4.2-1.4-3.4-1.9-6.9-2.6-10.3-.7-3.4-1.5-6.8-3-9.8-1.5-3-4-5.7-7.3-6.9 1.7.4 3.4 1.2 4.8 2.3 1.4 1.1 2.6 2.6 3.5 4.1 1.8 3.1 2.7 6.7 3.5 10.1l1 5.2c.3 1.7.7 3.4 1.3 5 .6 1.6 1.3 3.1 2.7 4 1.3.8 3.2.7 4.9.3"/><path d="m33.6 5.7c.9.6 1.6 1.5 2.1 2.5.5 1 1 2 1.3 3.1.7 2.1 1 4.3 1.1 6.6.2 4.4-.9 9.1-3.4 12.9-1.3 1.9-2.9 3.5-4.8 4.8-1.9 1.3-4 2.2-6.2 2.7-4.3 1.1-8.9 1-13.2.3 4.4.1 8.8-.1 12.8-1.4 4.1-1.3 7.7-3.7 10-7.2 2.4-3.5 3.4-7.8 3.5-12 0-2.1-.2-4.3-.6-6.4-.4-2.2-1-4.4-2.6-5.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c1.svg
index b010cc9..a57b1b0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m18.686 13.02c-3.7.543-7.12 1.836-9.987 4.628-1-2.709-2.01-5.419-3.01-8.128 2.867-2.792 6.289-4.084 9.987-4.628 1 2.709 2.01 5.419 3.01 8.128"/><path fill="#fff" d="m30.337 12.886c-3.977-.207-7.953-.413-11.651.129-1-2.709-2.01-5.419-3.01-8.128 3.7-.542 7.676-.336 11.652-.129 1 2.709 2 5.418 3.01 8.128"/><path fill="#333" d="m41.989 12.756c-3.699.543-7.676.337-11.652.13-1-2.709-2.01-5.418-3.01-8.128 3.977.207 7.951.414 11.651-.13 1 2.709 2.01 5.419 3.01 8.128"/><g fill="#fff"><path d="m51.976 8.128c-2.867 2.792-6.288 4.085-9.986 4.627-1-2.709-2.01-5.418-3.01-8.128 3.699-.542 7.12-1.835 9.987-4.627 1 2.709 2.01 5.419 3.01 8.128"/><path d="m21.694 21.14c-3.7.543-7.12 1.836-9.988 4.627-1-2.709-2-5.419-3.01-8.128 2.867-2.792 6.287-4.084 9.987-4.628 1 2.71 2 5.42 3.01 8.129"/></g><path fill="#333" d="m33.35 21.01c-3.978-.207-7.954-.414-11.651.13-1-2.709-2.01-5.419-3.01-8.129 3.698-.542 7.675-.336 11.651-.129 1 2.709 2.01 5.419 3.01 8.128"/><path fill="#fff" d="m44.997 20.884c-3.699.543-7.675.337-11.651.13-1-2.709-2.01-5.419-3.01-8.128 3.977.207 7.953.414 11.652-.13 1 2.71 2.01 5.419 3.01 8.128"/><g fill="#333"><path d="m54.983 16.257c-2.866 2.792-6.287 4.085-9.986 4.627-1-2.709-2.01-5.418-3.01-8.128 3.698-.542 7.119-1.835 9.986-4.627 1 2.708 2.01 5.418 3.01 8.128"/><path d="m24.702 29.27c-3.7.543-7.121 1.836-9.987 4.627-1-2.709-2.01-5.418-3.01-8.128 2.868-2.792 6.288-4.084 9.988-4.627 1 2.709 2 5.419 3.01 8.128"/></g><path fill="#fff" d="m36.35 29.14c-3.978-.206-7.953-.413-11.652.13-1-2.709-2.01-5.419-3.01-8.128 3.697-.543 7.674-.336 11.651-.13 1 2.709 2.01 5.418 3.01 8.128"/><path fill="#333" d="m48.01 29.01c-3.699.543-7.675.336-11.65.13-1-2.709-2.01-5.419-3.01-8.128 3.977.207 7.952.414 11.651-.13 1 2.709 2.01 5.419 3.01 8.128"/><g fill="#fff"><path d="m57.992 24.386c-2.866 2.792-6.288 4.084-9.987 4.627-1-2.709-2.01-5.419-3.01-8.128 3.699-.542 7.12-1.835 9.986-4.627 1 2.708 2.01 5.418 3.01 8.128"/><path d="m27.71 37.4c-3.699.542-7.12 1.835-9.986 4.627-1-2.709-2.01-5.418-3.01-8.129 2.866-2.791 6.287-4.084 9.987-4.627 1 2.709 2.01 5.419 3.01 8.129"/></g><path fill="#333" d="m39.36 37.27c-3.977-.206-7.952-.413-11.651.131-1-2.71-2.01-5.42-3.01-8.129 3.699-.543 7.675-.336 11.652-.13 1 2.71 2 5.419 3.01 8.128"/><path fill="#fff" d="m51.01 37.14c-3.698.543-7.674.336-11.651.129-1-2.709-2.01-5.418-3.01-8.128 3.976.206 7.951.413 11.65-.13 1 2.71 2.01 5.42 3.01 8.129"/><g fill="#333"><path d="m61 32.514c-2.866 2.792-6.288 4.085-9.987 4.628-1-2.709-2.01-5.419-3.01-8.129 3.699-.543 7.121-1.835 9.987-4.627 1 2.709 2.01 5.418 3.01 8.128"/><path d="M25.875 64 23.981 64 3 7.304 4.653 6.712z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.7 13c-3.7.5-7.1 1.8-10 4.6-1-2.7-2-5.4-3-8.1 2.9-2.8 6.3-4.1 10-4.6 1 2.7 2 5.4 3 8.1" fill="#333"/><path d="m30.3 12.9c-4-.2-8-.4-11.7.1-1-2.7-2-5.4-3-8.1 3.7-.5 7.7-.3 11.7-.1 1 2.7 2 5.4 3 8.1" fill="#fff"/><path d="m42 12.8c-3.7.5-7.7.3-11.7.1-1-2.7-2-5.4-3-8.1 4 .2 8 .4 11.7-.1 1 2.6 2 5.3 3 8.1" fill="#333"/><g fill="#fff"><path d="m52 8.1c-2.9 2.8-6.3 4.1-10 4.6-1-2.7-2-5.4-3-8.1 3.7-.5 7.1-1.8 10-4.6 1 2.7 2 5.4 3 8.1"/><path d="m21.7 21.1c-3.7.5-7.1 1.8-10 4.6-1-2.7-2-5.4-3-8.1 2.9-2.8 6.3-4.1 10-4.6 1 2.7 2 5.4 3 8.1"/></g><path d="m33.3 21c-4-.2-8-.4-11.7.1-1-2.7-2-5.4-3-8.1 3.7-.5 7.7-.3 11.7-.1 1 2.7 2 5.4 3 8.1" fill="#333"/><path d="m45 20.9c-3.7.5-7.7.3-11.7.1-1-2.7-2-5.4-3-8.1 4 .2 8 .4 11.7-.1 1 2.7 2 5.4 3 8.1" fill="#fff"/><g fill="#333"><path d="m55 16.3c-2.9 2.8-6.3 4.1-10 4.6-1-2.7-2-5.4-3-8.1 3.7-.5 7.1-1.8 10-4.6 1 2.6 2 5.3 3 8.1"/><path d="m24.7 29.3c-3.7.5-7.1 1.8-10 4.6-1-2.7-2-5.4-3-8.1 2.9-2.8 6.3-4.1 10-4.6 1 2.7 2 5.4 3 8.1"/></g><path d="m36.4 29.1c-4-.2-8-.4-11.7.1-1-2.7-2-5.4-3-8.1 3.7-.5 7.7-.3 11.7-.1.9 2.7 2 5.4 3 8.1" fill="#fff"/><path d="m48 29c-3.7.5-7.7.3-11.6.1-1-2.7-2-5.4-3-8.1 4 .2 8 .4 11.7-.1.9 2.7 1.9 5.4 2.9 8.1" fill="#333"/><g fill="#fff"><path d="m58 24.4c-2.9 2.8-6.3 4.1-10 4.6-1-2.7-2-5.4-3-8.1 3.7-.5 7.1-1.8 10-4.6 1 2.7 2 5.4 3 8.1"/><path d="m27.7 37.4c-3.7.5-7.1 1.8-10 4.6-1-2.7-2-5.4-3-8.1 2.9-2.8 6.3-4.1 10-4.6 1 2.7 2 5.4 3 8.1"/></g><path d="m39.4 37.3c-4-.2-8-.4-11.7.1-1-2.7-2-5.4-3-8.1 3.7-.5 7.7-.3 11.7-.1 1 2.7 2 5.4 3 8.1" fill="#333"/><path d="m51 37.1c-3.7.5-7.7.3-11.7.1-1-2.7-2-5.4-3-8.1 4 .2 8 .4 11.6-.1 1.1 2.7 2.1 5.4 3.1 8.1" fill="#fff"/><g fill="#333"><path d="m61 32.5c-2.9 2.8-6.3 4.1-10 4.6-1-2.7-2-5.4-3-8.1 3.7-.5 7.1-1.8 10-4.6 1 2.7 2 5.4 3 8.1"/><path d="M25.9 64 24 64 3 7.3 4.7 6.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c2.svg
index 620a26d..347e2d7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#44618b" d="m33.3 15.07l19.535-4.108 1.05 5.501-20.07 2.717z"/><path fill="#86d0bf" d="m53.614 8.958l-.002-.016 2.25-.364c.527-.085 1.02.257 1.102.767.008.058-.006.112-.01.168 1.771-.092 4.07.293 4.477 3.468.068.536.449 3.506-3.104 3.986-5.234.695-5.234.695-5.754-3.341l-.349-2.719c-.118-.911.497-1.747 1.39-1.949"/><path fill="#44618b" d="m56.37 9.725c-.186.24-.319.409-.584.534-.242.125-.516.166-.784.205-.444.068-.89.138-1.335.209-.339.054-.257.577.084.523.457-.073.914-.142 1.367-.212.315-.051.631-.112.916-.257.325-.161.552-.415.768-.693.211-.266-.221-.576-.432-.309"/><path fill="#b6ef00" d="m64 58.12c0 7.42-9.894 7.42-9.894 0v-38.658c0-7.419 9.894-7.419 9.894.001v38.657"/><path fill="#3e4347" d="m57.45 37.527l.017-6.566-8.627.02-2.263-2.894-8.678 13.07v-.037l2.609 3.479c1.688 2.225 3.27 3.112 5.142 3.107 2.403-.006 10.888-.026 10.888-.026l.015-6.567-8.626.02-2.262-2.893-.751-.961c.531.18 1.076.273 1.649.271 2.404-.005 10.887-.026 10.887-.026"/><g fill="#86d0bf"><path d="m56.54 47.692c-.006 2.01 1.752 3.626 3.926 3.62h.019l.021-10.21-3.952.01-.014 6.58"/><path d="m56.54 37.48c-.004 2.01 1.754 3.625 3.928 3.62h.018l.021-10.211-3.951.011-.016 6.58"/></g><g fill="#44618b"><path d="M24.629 34.12 12.157 29.31 9.8 34.389 22.253 39.2z"/><path d="m27.18 20.21l-7.07 12.327 2.143 6.663 10.12-16.883z"/></g><path fill="#86d0bf" d="m11.89 27.18l.006-.015-2.094-.901c-.491-.211-1.052.001-1.255.476-.022.054-.021.11-.032.166-1.694-.521-4.02-.707-5.186 2.273-.197.504-1.29 3.291 2.039 4.623 4.907 1.947 4.907 1.947 6.394-1.84l1-2.553c.336-.855-.056-1.815-.873-2.229"/><path fill="#44618b" d="m9.03 27.25c.12.278.21.475.436.66.205.179.46.286.711.39.415.174.829.351 1.243.528.316.135.109.621-.209.486-.424-.182-.852-.36-1.273-.538-.294-.126-.585-.263-.826-.473-.276-.234-.434-.537-.575-.858-.14-.31.353-.505.493-.195"/><path fill="#badede" d="M18.03 39.809 36.06 64 0 64z"/><path fill="#d6eef0" d="m18.03 39.809l5.11 6.861-5.11 6.86-5.114-6.86z"/><path fill="#badede" d="m35.639 46.4l13.11 17.6h-26.23z"/><path fill="#d6eef0" d="m35.639 46.4l3.721 4.99-3.721 4.99-3.721-4.99z"/><path fill="#44618b" d="m48.753 27.846l-9.982 14.5-14.869-12.25c-.977-.98-1.163-2.221-.198-3.189l10.461-10.514c.962-.968 2.531-.958 3.507.021l11.08 11.432"/><path fill="#86d0bf" d="m45.944 31.924l-17.986 1.514-8.287-6.738 24.369-3.72 4.713 4.866z"/><path fill="#44618b" d="m32.989 24.554l-1.166 1.172 9.66 9.624 1.637-1.878z"/><path fill="#fed0ac" d="m16.945 27.26c-2.662-2.663.668-3.292.668-3.292-6.635-7.357-.953-5.48 3.604-10.04 4.561-4.561 2.684-10.241 10.04-3.608 0 0 .625-3.329 3.288-.665 1.019 1.018 1.476 2.229.285 3.597 3.581 4.657 1.746 8.19-2.179 12.12-3.923 3.924-7.452 5.754-12.11 2.175-1.367 1.19-2.578.734-3.598-.285"/><g fill="#594640"><path d="m25.18 24.496c1.197 1.197 3.678.723 5.501-1.101 1.822-1.821 2.298-4.304 1.101-5.501 0 0-1.648 1.861-3.195 3.407-1.546 1.546-3.407 3.195-3.407 3.195"/><path d="m28.652 14.77c.607.605 1.596.607 2.2.002.606-.607.606-1.597 0-2.203-.608-.609-1.593-.604-2.2.003-.605.605-.609 1.589 0 2.198"/><circle cx="23.386" cy="20.04" r="1.556"/></g><path fill="#d3976e" d="m27.307 19.05c.408.407 1.061.406 1.467 0 .406-.404.406-1.06 0-1.466l-1.467 1.466"/><path fill="#ffdc06" d="m17.11 2.784c1.959 1.972 1.98 5.147.043 7.094s-5.098 1.928-7.06-.044c-1.959-1.971-1.979-5.146-.043-7.095 1.938-1.945 5.1-1.927 7.06.045"/><path fill="#44618b" d="m31.14 6.31c4.845 4.844-3.223 4.63-8.07 9.475-4.846 4.844-4.631 12.913-9.475 8.07-4.846-4.844-4.846-12.698-.002-17.542 4.845-4.845 12.699-4.845 17.543 0"/><g fill="#86d0bf"><path d="m13.684 23.933c1.066-3.781 3.287-7.635 6.596-10.942 3.309-3.309 7.162-5.529 10.941-6.596-.027-.028-.05-.056-.079-.083-1.021-1.021-2.179-1.814-3.411-2.405-3.531 1.143-7.088 3.282-10.17 6.365-3.084 3.083-5.223 6.64-6.365 10.171.592 1.231 1.385 2.39 2.406 3.411.027.028.052.051.082.079"/><path d="m53.37 30.89h4.099v7.01h-4.099z"/><path d="m53.37 41.1h4.099v7.01h-4.099z"/></g><g fill="#44618b"><circle cx="56.33" cy="32.806" r=".916"/><circle cx="56.33" cy="43.02" r=".916"/><path d="m59.861 30.892h.646v20.415h-.646z"/><path d="m56.676 38.43l-.799-.412c0 0-.368-1.109.343-2.132l.974.229c-.734 1.199-.518 2.315-.518 2.315"/><path d="m57.39 39.732l-.845-.84c0 0-.205-1.016.506-2.038l.974.229c-.734 1.2-.635 2.649-.635 2.649"/><path d="m56.676 48.729l-.799-.411c0 0-.368-1.109.343-2.132l.974.229c-.734 1.199-.518 2.314-.518 2.314"/><path d="m57.39 50.03l-.845-.839c0 0-.205-1.016.506-2.038l.974.229c-.734 1.2-.635 2.648-.635 2.648"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#badede" d="M18.9 38.8 35.8 62 2 62z"/><path fill="#d6eef0" d="m18.9 38.8l4.8 6.6-4.8 6.6-4.8-6.6z"/><path fill="#badede" d="m35.4 45.1l12.3 16.9h-24.6z"/><path fill="#d6eef0" d="m35.4 45.1l3.5 4.8-3.5 4.8-3.5-4.8z"/><path fill="#44618b" d="m33.2 15.1l18.3-4 1 5.3-18.8 2.6z"/><path d="m52.3 9.2l2.1-.4c.5-.1 1 .2 1 .7 0 .1 0 .1 0 .2 1.7-.1 3.8.3 4.2 3.3.1.5.4 3.4-2.9 3.8-4.9.7-4.9.7-5.4-3.2l-.3-2.5c-.2-.9.4-1.7 1.3-1.9" fill="#86d0bf"/><path d="m54.8 9.9c-.2.2-.3.4-.5.5-.2.1-.5.2-.7.2-.4.1-.8.1-1.3.2-.3.1-.2.6.1.5.4-.1.9-.1 1.3-.2.3 0 .6-.1.9-.2.3-.2.5-.4.7-.7.2-.2-.3-.5-.5-.3" fill="#44618b"/><path d="m62 56.4c0 7.1-9.3 7.1-9.3 0v-37.1c0-7.1 9.3-7.1 9.3 0v37.1" fill="#b6ef00"/><path d="m55.9 36.6v-6.3h-8.1l-2.1-2.8-8.1 12.5 2.4 3.3c1.6 2.1 3.1 3 4.8 3 2.3 0 10.2 0 10.2 0v-6.3h-8.1l-2.1-2.8-.7-.9c.5.2 1 .3 1.5.3 2.3 0 10.3 0 10.3 0" fill="#3e4347"/><g fill="#86d0bf"><path d="m55 46.4c0 1.9 1.6 3.5 3.7 3.5v-9.8l-3.7-.1v6.4"/><path d="m55 36.6c0 1.9 1.6 3.5 3.7 3.5v-9.8h-3.7v6.3"/></g><g fill="#44618b"><path d="m25.1 33.3l-11.7-4.6-2.2 4.9 11.7 4.6z"/><path d="m27.5 20l-6.6 11.8 2 6.4 9.4-16.2z"/></g><path d="m13.1 26.7l-2-.9c-.5-.2-1 0-1.2.5 0 .1 0 .1 0 .2-1.6-.5-3.8-.7-4.9 2.2-.1.4-1.1 3 2 4.3 4.6 1.9 4.6 1.9 6-1.8l.9-2.4c.4-.8 0-1.7-.8-2.1" fill="#86d0bf"/><g fill="#44618b"><path d="m10.5 26.7c.1.3.2.5.4.6.2.2.4.3.7.4.4.2.8.3 1.2.5.3.1.1.6-.2.5-.4-.2-.8-.3-1.2-.5-.3-.1-.5-.3-.8-.5-.3-.2-.4-.5-.5-.8-.2-.3.2-.5.4-.2"/><path d="m47.7 27.3l-9.4 13.9-13.9-11.7c-.9-.9-1.1-2.1-.2-3.1l9.8-10.1c.9-.9 2.4-.9 3.3 0l10.4 11"/></g><path fill="#86d0bf" d="m45.1 31.2l-16.9 1.5-7.8-6.5 22.9-3.6 4.4 4.7z"/><path fill="#44618b" d="m32.9 24.1l-1.1 1.2 9.1 9.2 1.5-1.8z"/><g fill="#86d0bf"><path d="m52 30.2h3.8v6.7h-3.8z"/><path d="m52 40h3.8v6.7h-3.8z"/></g><g fill="#44618b"><ellipse cx="54.8" cy="32.1" rx=".9" ry=".9"/><ellipse cx="54.8" cy="41.9" rx=".9" ry=".9"/><path d="m58.1 30.2h.6v19.6h-.6z"/><path d="m55.1 37.5l-.7-.4c0 0-.3-1.1.3-2l.9.2c-.7 1.1-.5 2.2-.5 2.2"/><path d="m55.8 38.7l-.8-.8c0 0-.2-1 .5-2l.9.2c-.7 1.2-.6 2.6-.6 2.6"/><path d="m55.1 47.3l-.7-.3c0 0-.3-1.1.3-2l.9.2c-.7 1.1-.5 2.1-.5 2.1"/><path d="m55.8 48.6l-.8-.8c0 0-.2-1 .5-2l.9.2c-.7 1.2-.6 2.6-.6 2.6"/></g><path d="m33.2 9.4c-6.9-6.4-7 .2-11.3 4.6-4.3 4.4-10.9 4.3-4.7 11.4 0 0 2.7 2.8 4 1.7 4.4 3.4 7.7 1.7 11.4-2.1 3.7-3.8 5.4-7.2 2-11.6 1.2-1.4-1.4-4-1.4-4" fill="#ffdd67"/><path d="m26.7 24.1c.9 1 2.9.6 4.3-.9 1.4-1.5 1.8-3.4.9-4.4 0 0-1.3 1.5-2.5 2.7-1.2 1.3-2.7 2.6-2.7 2.6" fill="#594640"/><path d="m17.6 3.3c1.7 1.8 1.7 4.7 0 6.5-1.7 1.8-4.5 1.8-6.3 0-1.7-1.8-1.7-4.7 0-6.5 1.7-1.7 4.5-1.7 6.3 0" fill="#86d0bf"/><path d="m29.7 4.8c3.7 3.8-3.2 4.4-7.9 9.2-4.7 4.8-5.2 11.9-9 8.1-3.7-3.8-3-10.8 1.7-15.6 4.7-4.8 11.5-5.5 15.2-1.7" fill="#44618b"/><path d="m32.3 8.5c-6 4.5-11.4 9.9-15.9 16-.9 1.2-4.7-1.1-3.7-2.4 4.9-6.5 10.7-12.4 17.2-17.3 1.3-1 3.6 2.8 2.4 3.7" fill="#86d0bf"/><path d="m29.2 8.8c-1.9 0-4.1 1.6-7.5 5s-5 5.6-5 7.5c0 2.4 3 5 5.2 5 1.7 0 6.2-4.5 4.5-6.1-.8-.8-1.7-1.5-.8-2.4s1.6-.1 2.4.8c1.6 1.6 6.1-2.9 6.1-4.5.1-2.3-2.5-5.3-4.9-5.3" fill="#79c600"/><g fill="#3e4347"><path transform="matrix(.7073-.7069.7069.7073-12.4615 19.727)" d="m16.9 23.2h1.4v3.5h-1.4z"/><path transform="matrix(.7069-.7073.7073.7069 2.6317 26.1928)" d="m32.2 8.2h1.4v3.5h-1.4z"/></g><g fill="#b6ef00"><path d="m21.7 13.8c-.5.5-.9.9-1.3 1.3v10.9c.5.2 1 .3 1.5.3.2 0 .4 0 .6-.1v-13.1c-.3.2-.6.5-.8.7"/><path d="m29.2 8.8c-.5 0-1 .1-1.6.3v9c.1.1.3.3.4.4.4.4 1 .4 1.7.2v-9.9c-.2 0-.3 0-.5 0"/></g><path d="m32.6 17.3c-1.5 1.5-3.7 2.8-4.9 1.6-.1-.1-.2-.2-.3-.3-.4-.4-.8-.8-1-.8-.1 0-.3.1-.5.3-.2.2-.3.4-.3.5 0 .3.4.7.8 1 .1.1.2.2.3.3 1.2 1.2-.1 3.4-1.6 4.9-.9.9-2.3 1.9-3.2 1.9-1.2 0-2.6-.6-3.8-1.7-1.2-1.1-1.9-2.5-1.9-3.7 0-1.9 1.4-4.1 5.2-7.8 3.8-3.8 5.9-5.2 7.8-5.2 1.2 0 2.6.7 3.7 1.9 1.1 1.2 1.7 2.6 1.7 3.8 0 1-1 2.3-2 3.3m-7.3.2c.4-.4.7-.5 1.1-.5.6 0 1.1.5 1.7 1 .1.1.2.2.2.3.7.7 2.4-.3 3.7-1.6 1.1-1.1 1.7-2.2 1.7-2.6 0-1-.6-2.2-1.5-3.2-.9-1-2.1-1.6-3.1-1.6-1.7 0-3.7 1.4-7.2 4.9s-4.9 5.5-4.9 7.2c0 1 .6 2.1 1.6 3.1 1 .9 2.2 1.5 3.2 1.5.5 0 1.5-.6 2.6-1.7 1.3-1.3 2.3-3 1.6-3.7-.1-.1-.2-.2-.3-.2-.5-.5-1-1-1-1.7.1-.5.3-.9.6-1.2" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fb.svg
index 3ca51d6..4b9b89b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m29.93 18.528l2.33-.636 2.391 8.524-6 1.634z"/><path fill="#e6b796" d="m29.857 18.349c1.073 3.828.788 5.993-2 6.754l.794 2.95c3.298-.899 3.512-5.323 2.26-9.792l-1.05.088"/><path fill="#ffe1bd" d="m28.21 4.675l-11.979 7.652c-.751 3.141.687 4.303.962 5.494.123.529-.687 1.781-1.118 2.438-.961 1.463 1.426 1.783 2.178 1.401.834 1.035.104 1.579 2.01.875 1.049-.389 2.229-1.767 2.229-1.767-3.921 4.238-2.353 5.115-.54 4.072.695 2.482 2.258 2.057 5.682 1.123 2.791-.76 4.342-3.875 3.27-7.703l3.561-1.663-6.259-11.922"/><path fill="#594640" d="m22.257 2.531c9.681-2.641 13.221 5.124 13.453 11.11.123 3.188-.947 5.532-2.596 6.862l-1.115-.344-1.092-1.902c0 0 1.771-.952 1.734-3.236-.018-1.045-1.529-2.635-3.01-2.318-1.033.223-2.287 1.365-2.533 1.678-.694-2.477-.902-5.18-2.82-5.45-1.576-.222-6.865 4.122-8.05 3.394-3.177-1.946.195-8.209 6.03-9.798"/><g fill="#664e27"><path d="m29.792 15.267c-.188.025-.359.1-.498.208.033-.198.088-.394.153-.597.083-.25.196-.492.296-.77-.505.292-.884.816-.974 1.432-.085.622.19 1.232.62 1.615-.032-.295-.103-.558-.127-.813-.014-.164-.018-.32-.012-.476.073-.017.143-.034.211-.046.144-.021.266-.053.394-.064.128-.021.255-.021.401-.038.145-.013.296-.006.487-.034-.191-.303-.576-.46-.951-.417"/><path d="m20.254 16.531c.222.792-.064 1.563-.64 1.719-.574.156-1.221-.359-1.443-1.151s.063-1.563.639-1.72 1.221.359 1.444 1.152"/><path d="m22.496 20.769c0 0-.931 2.624-1.237 3.039-.652.889-1.059.532-.805-.134.263-.684 2.042-2.905 2.042-2.905"/></g><g fill="#d3976e"><path d="m49.767 54.25c-.357 1.784.84 3.512 2.67 3.859l1.533-7.674c.18-.891-.42-1.756-1.336-1.93l-1.657-.313-1.21 6.06"/><path d="m17.454 57.875c-1.831-.35-3.607.816-3.963 2.6l7.879 1.495c.914.173 1.803-.409 1.98-1.304l.323-1.612-6.219-1.179"/></g><path fill="#3b946f" d="m47.604 31.894l-3.048-6.213c-.364-.736-1.199-1.103-1.99-.964v-.009l-6.894.245c-1.01.03-1.791.848-1.758 1.825.033.977.878 1.745 1.881 1.713l6.01-.215 2.521 5.136 3.28-1.518"/><path fill="#ffe1bd" d="m45.842 32.21l-1.673.593c-.595.212-.9.854-.68 1.434l.295.785c.158.417.541.688.967.73.471 1.018 1.377 2.249 3.373 1.537.33-.118 2.157-.768 1.363-2.869-1.17-3.093-1.17-3.093-3.645-2.21"/><path fill="#e6b796" d="m45.22 35.755c1.411-.566.662-1.977.305-2.996-.054-.151-.295-.086-.242.066.295.84 1.072 2.207-.129 2.689-.148.059-.085.301.066.241"/><path fill="#3e4347" d="m42.31 46.547l-3.3-4.962v-.006h-11.613l-7.777 5.263-2.202 11.02 6.256 1.183 1.7-8.5 6.776-4.45h2.11l4.179 6.04 11.318 2.14 1.22-6.09z"/><path fill="#47b892" d="m39.01 41.579l-3.601-16.601-8.985 1.648c-.391.057-.765.23-1.055.532l-4.084 4.287-5.508-1.903-1.209 3.335 6.662 2.304c.79.27 1.646-.044 2.104-.687l.008.007 3.271-3.435.786 10.512h11.611"/><path fill="#ffe1bd" d="m15.584 31.442l.747-1.571c.265-.561.014-1.228-.561-1.484l-.779-.354c-.413-.188-.883-.113-1.213.147-1.072-.398-2.606-.646-3.496 1.234-.147.31-.964 2.027 1.122 2.97 3.073 1.39 3.073 1.39 4.18-.942"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m30.1 15.8l2.5-2 1.7 9.4-6.1 1.1z"/><path d="m26.8 20.9c2 .8 1.4 3.4 1.4 3.4 2.5-.5 3.3-5.6 2.8-8.6l-4.2 5.2" fill="#e6b796"/><path d="m29.7 3.3l-10.1 5.7c-.9 2.8.3 3.9.4 5 .1.5-.7 1.5-1.2 2.1-1 1.2 1.1 1.7 1.8 1.4.7 1-.6 1.9 2.5.7 0 0-3 2-.6 2.2 0 1.3.2 3.9 6.5.1 1.9-1.1 2-4.8 2-4.8l3.3-1.2-4.6-11.2" fill="#ffe1bd"/><path d="m21.9 3.7c6.7-3.7 11.2-.7 12.2.8 2.6 4 1.9 9.2-.7 13.4 0 0-1.7-.4-2.3-2.3 0 0 1.9.5 2-3.4.1-3.3-3.6-4.3-4.5.3l-.5.1c-1.3-2-.1-5-2.8-5.4-2.3-.3-5.9 2.3-5.9 2.3-.9-1.1-.2-4.3 2.5-5.8" fill="#594640"/><path d="m22.7 13.5c.1.7-.2 1.3-.6 1.4-.5.1-.7-.4-.8-1.1-.1-.7-.1-1.3.4-1.3.4-.1.9.3 1 1" fill="#664e27"/><path d="m29.7 13.2c-.2-1.3.7-2.7 1.8-2.9 0 0-1.6 1.9-.7 3.9-.1 0-1-.1-1.1-1" fill="#e6b796"/><path d="m24.2 17.7c0 0-1.1 1.2-1.6 1.5-.9.7-1.1.4-.6-.1.4-.4 1.1-.9 1.1-.9l1.1-.5" fill="#664e27"/><g fill="#d3976e"><path d="m51.4 53.5c-.4 2 .9 3.9 2.9 4.3l1.7-8.5c.2-1-.5-1.9-1.5-2.1l-1.8-.3-1.3 6.6"/><path d="m16.1 57.5c-2-.4-3.9.9-4.3 2.9l8.6 1.6c1 .2 2-.5 2.2-1.4l.4-1.8-6.9-1.3"/></g><path d="m49 28.8l-3.3-6.8c-.4-.8-1.3-1.2-2.2-1.1l-7.5.3c-1.1 0-2 .9-1.9 2 0 1.1 1 1.9 2.1 1.9l6.6-.2 2.7 5.7 3.5-1.8" fill="#3b946f"/><path d="m47.1 29.2l-1.8.7c-.6.2-1 .9-.7 1.6l.3.9c.2.5.6.8 1.1.8.5 1.1 1.5 2.5 3.7 1.7.4-.1 2.4-.8 1.5-3.2-1.4-3.5-1.4-3.5-4.1-2.5" fill="#ffe1bd"/><path d="m46.4 33.1c1.5-.6.7-2.2.3-3.3-.1-.2-.3-.1-.3.1.3.9 1.2 2.4-.1 3-.1 0 0 .2.1.2" fill="#e6b796"/><path fill="#3e4347" d="m43.2 45l-3.6-5.5h-12.6l-8.5 5.8-2.4 12.1 6.8 1.4 1.9-9.4 8.6-4.2 5.6 5.9 12.4 2.4 1.3-6.7z"/><path d="m39.6 39.5l-3.9-18.3-9.8 1.8c-.4.1-.8.3-1.1.6l-4.5 4.7-6-2.1-1.3 3.7 7.3 2.5c.9.3 1.8 0 2.3-.8l3.6-3.8.8 11.7c0 0 12.6 0 12.6 0" fill="#47b892"/><path d="m14.1 28.3l.8-1.7c.3-.6 0-1.4-.6-1.6l-.9-.4c-.5-.2-1-.1-1.3.2-1.2-.4-2.8-.7-3.8 1.4-.2.3-1.1 2.2 1.2 3.3 3.4 1.4 3.4 1.4 4.6-1.2" fill="#ffe1bd"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fc.svg
index 27f4100..fd2a61a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m29.93 18.528l2.33-.635 2.391 8.523-6 1.634z"/><path fill="#e0a372" d="m29.857 18.35c1.073 3.828.788 5.993-2 6.754l.794 2.95c3.298-.899 3.512-5.323 2.26-9.792l-1.05.088"/><path fill="#fed0ac" d="m28.21 4.676l-11.979 7.652c-.751 3.141.687 4.303.962 5.494.123.529-.687 1.781-1.118 2.438-.961 1.463 1.426 1.783 2.178 1.401.834 1.035.104 1.579 2.01.875 1.049-.389 2.229-1.767 2.229-1.767-3.921 4.238-2.353 5.115-.54 4.072.695 2.482 2.258 2.057 5.682 1.123 2.791-.76 4.342-3.875 3.27-7.703l3.561-1.663-6.259-11.922"/><path fill="#dbb471" d="m22.257 2.531c9.682-2.641 13.221 5.124 13.453 11.11.123 3.188-.947 5.532-2.596 6.862l-1.115-.344-1.092-1.902c0 0 1.771-.952 1.734-3.236-.018-1.045-1.529-2.635-3.01-2.318-1.033.223-2.287 1.365-2.533 1.678-.694-2.477-.902-5.18-2.82-5.45-1.576-.222-6.865 4.122-8.05 3.394-3.177-1.945.195-8.209 6.03-9.798"/><g fill="#664e27"><path d="m29.792 15.268c-.188.025-.359.1-.498.208.033-.198.088-.394.153-.597.083-.25.196-.492.296-.77-.505.292-.884.816-.974 1.432-.085.622.19 1.232.62 1.615-.032-.295-.103-.558-.127-.813-.014-.164-.018-.32-.012-.476.073-.017.143-.034.211-.046.144-.021.266-.053.394-.064.128-.021.255-.021.401-.038.145-.013.296-.006.487-.034-.191-.303-.576-.46-.951-.417"/><path d="m20.254 16.531c.222.792-.064 1.563-.64 1.719-.574.156-1.221-.359-1.443-1.151s.063-1.563.639-1.72 1.221.359 1.444 1.152"/><path d="m22.496 20.77c0 0-.931 2.624-1.237 3.039-.652.889-1.059.532-.805-.134.263-.685 2.042-2.905 2.042-2.905"/></g><g fill="#d3976e"><path d="m49.767 54.25c-.357 1.784.84 3.512 2.67 3.859l1.533-7.674c.18-.891-.42-1.756-1.336-1.93l-1.657-.313-1.21 6.06"/><path d="m17.454 57.875c-1.831-.35-3.607.816-3.963 2.6l7.879 1.495c.914.173 1.803-.409 1.98-1.304l.323-1.612-6.219-1.179"/></g><path fill="#3b946f" d="m47.604 31.895l-3.048-6.213c-.364-.736-1.199-1.103-1.99-.964v-.009l-6.894.245c-1.01.03-1.791.848-1.758 1.825.033.977.878 1.745 1.881 1.713l6.01-.215 2.521 5.136 3.28-1.518"/><path fill="#fed0ac" d="m45.842 32.21l-1.673.594c-.595.212-.9.854-.68 1.434l.295.785c.158.417.541.688.967.73.471 1.018 1.377 2.249 3.373 1.537.33-.118 2.157-.768 1.363-2.869-1.17-3.094-1.17-3.094-3.645-2.211"/><path fill="#e0a372" d="m45.22 35.755c1.411-.566.662-1.977.305-2.995-.054-.151-.295-.086-.242.066.295.84 1.072 2.206-.129 2.688-.148.059-.085.301.066.241"/><path fill="#3e4347" d="m42.31 46.547l-3.3-4.962v-.006h-11.613l-7.777 5.263-2.202 11.02 6.256 1.183 1.7-8.5 6.776-4.45h2.11l4.179 6.04 11.318 2.14 1.22-6.09z"/><path fill="#47b892" d="m39.01 41.579l-3.601-16.601-8.986 1.648c-.389.057-.764.23-1.054.532l-4.084 4.287-5.508-1.903-1.209 3.335 6.662 2.304c.79.27 1.646-.044 2.104-.687l.008.007 3.271-3.435.786 10.512h11.611"/><path fill="#fed0ac" d="m15.584 31.442l.747-1.571c.265-.561.014-1.228-.561-1.484l-.779-.354c-.413-.188-.883-.113-1.213.147-1.072-.398-2.606-.646-3.496 1.234-.147.31-.964 2.027 1.122 2.97 3.073 1.39 3.073 1.39 4.18-.942"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m30.1 15.8l2.5-2 1.7 9.4-6.1 1.1z"/><path d="m26.8 20.9c2 .8 1.4 3.4 1.4 3.4 2.5-.5 3.3-5.6 2.8-8.6l-4.2 5.2" fill="#e0a372"/><path d="m29.7 3.3l-10.1 5.7c-.9 2.8.3 3.9.4 5 .1.5-.7 1.5-1.2 2.1-1 1.2 1.1 1.7 1.8 1.4.7 1-.6 1.9 2.5.7 0 0-3 2-.6 2.2 0 1.3.2 3.9 6.5.1 1.9-1.1 2-4.8 2-4.8l3.3-1.2-4.6-11.2" fill="#fed0ac"/><path d="m21.9 3.7c6.7-3.7 11.2-.7 12.2.8 2.6 4 1.9 9.2-.7 13.4 0 0-1.7-.4-2.3-2.3 0 0 1.9.5 2-3.4.1-3.3-3.6-4.3-4.5.3l-.5.1c-1.3-2-.1-5-2.8-5.4-2.3-.3-5.9 2.3-5.9 2.3-.9-1.1-.2-4.3 2.5-5.8" fill="#dbb471"/><path d="m22.7 13.5c.1.7-.2 1.3-.6 1.4-.5.1-.7-.4-.8-1.1-.1-.7-.1-1.3.4-1.3.4-.1.9.3 1 1" fill="#664e27"/><path d="m29.7 13.2c-.2-1.3.7-2.7 1.8-2.9 0 0-1.6 1.9-.7 3.9-.1 0-1-.1-1.1-1" fill="#e0a372"/><path d="m24.2 17.7c0 0-1.1 1.2-1.6 1.5-.9.7-1.1.4-.6-.1.4-.4 1.1-.9 1.1-.9l1.1-.5" fill="#664e27"/><g fill="#d3976e"><path d="m51.4 53.5c-.4 2 .9 3.9 2.9 4.3l1.7-8.5c.2-1-.5-1.9-1.5-2.1l-1.8-.3-1.3 6.6"/><path d="m16.1 57.5c-2-.4-3.9.9-4.3 2.9l8.6 1.6c1 .2 2-.5 2.2-1.4l.4-1.8-6.9-1.3"/></g><path d="m49 28.8l-3.3-6.8c-.4-.8-1.3-1.2-2.2-1.1l-7.5.3c-1.1 0-2 .9-1.9 2 0 1.1 1 1.9 2.1 1.9l6.6-.2 2.7 5.7 3.5-1.8" fill="#3b946f"/><path d="m47.1 29.2l-1.8.7c-.6.2-1 .9-.7 1.6l.3.9c.2.5.6.8 1.1.8.5 1.1 1.5 2.5 3.7 1.7.4-.1 2.4-.8 1.5-3.2-1.4-3.5-1.4-3.5-4.1-2.5" fill="#fed0ac"/><path d="m46.4 33.1c1.5-.6.7-2.2.3-3.3-.1-.2-.3-.1-.3.1.3.9 1.2 2.4-.1 3-.1 0 0 .2.1.2" fill="#e0a372"/><path fill="#3e4347" d="m43.2 45l-3.6-5.5h-12.6l-8.5 5.8-2.4 12.1 6.8 1.4 1.9-9.4 8.6-4.2 5.6 5.9 12.4 2.4 1.3-6.7z"/><path d="m39.6 39.5l-3.9-18.3-9.8 1.8c-.4.1-.8.3-1.1.6l-4.5 4.7-6-2.1-1.3 3.7 7.3 2.5c.9.3 1.8 0 2.3-.8l3.6-3.8.8 11.7c0 0 12.6 0 12.6 0" fill="#47b892"/><path d="m14.1 28.3l.8-1.7c.3-.6 0-1.4-.6-1.6l-.9-.4c-.5-.2-1-.1-1.3.2-1.2-.4-2.8-.7-3.8 1.4-.2.3-1.1 2.2 1.2 3.3 3.4 1.4 3.4 1.4 4.6-1.2" fill="#fed0ac"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fd.svg
index ba3ec4a..6e8a3ba 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m29.93 18.528l2.33-.635 2.391 8.523-6 1.634z"/><path fill="#b58360" d="m29.857 18.35c1.073 3.828.788 5.993-2 6.754l.794 2.95c3.298-.899 3.512-5.323 2.26-9.792l-1.05.088"/><path fill="#d6a57c" d="m28.21 4.676l-11.979 7.652c-.751 3.141.687 4.303.962 5.494.123.529-.687 1.781-1.118 2.438-.961 1.463 1.426 1.783 2.178 1.401.834 1.035.104 1.579 2.01.875 1.049-.389 2.229-1.767 2.229-1.767-3.921 4.238-2.353 5.115-.54 4.072.695 2.482 2.258 2.057 5.682 1.123 2.791-.76 4.342-3.875 3.27-7.703l3.561-1.663-6.259-11.922"/><path fill="#594640" d="m22.257 2.531c9.682-2.641 13.221 5.124 13.453 11.11.123 3.188-.947 5.532-2.596 6.862l-1.115-.344-1.092-1.902c0 0 1.771-.952 1.734-3.236-.018-1.045-1.529-2.635-3.01-2.318-1.033.223-2.287 1.365-2.533 1.678-.694-2.477-.902-5.18-2.82-5.45-1.576-.222-6.865 4.122-8.05 3.394-3.177-1.945.195-8.209 6.03-9.798"/><g fill="#664e27"><path d="m29.792 15.268c-.188.025-.359.1-.498.208.033-.198.088-.394.153-.597.083-.25.196-.492.296-.77-.505.292-.884.816-.974 1.432-.085.622.19 1.232.62 1.615-.032-.295-.103-.558-.127-.813-.014-.164-.018-.32-.012-.476.073-.017.143-.034.211-.046.144-.021.266-.053.394-.064.128-.021.255-.021.401-.038.145-.013.296-.006.487-.034-.191-.303-.576-.46-.951-.417"/><path d="m20.254 16.531c.222.792-.064 1.563-.64 1.719-.574.156-1.221-.359-1.443-1.151s.063-1.563.639-1.72 1.221.359 1.444 1.152"/><path d="m22.496 20.77c0 0-.931 2.624-1.237 3.039-.652.889-1.059.532-.805-.134.263-.685 2.042-2.905 2.042-2.905"/></g><g fill="#d3976e"><path d="m49.767 54.25c-.357 1.784.84 3.512 2.67 3.859l1.533-7.674c.18-.891-.42-1.756-1.336-1.93l-1.657-.313-1.21 6.06"/><path d="m17.454 57.875c-1.831-.35-3.607.816-3.963 2.6l7.879 1.495c.914.173 1.803-.409 1.98-1.304l.323-1.612-6.219-1.179"/></g><path fill="#3b946f" d="m47.604 31.895l-3.048-6.213c-.364-.736-1.199-1.103-1.99-.964v-.009l-6.894.245c-1.01.03-1.791.848-1.758 1.825.033.977.878 1.745 1.881 1.713l6.01-.215 2.521 5.136 3.28-1.518"/><path fill="#d6a57c" d="m45.842 32.21l-1.673.594c-.595.212-.9.854-.68 1.434l.295.785c.158.417.541.688.967.73.471 1.018 1.377 2.249 3.373 1.537.33-.118 2.157-.768 1.363-2.869-1.17-3.094-1.17-3.094-3.645-2.211"/><path fill="#b58360" d="m45.22 35.755c1.411-.566.662-1.977.305-2.995-.054-.151-.295-.086-.242.066.295.84 1.072 2.206-.129 2.688-.148.059-.085.301.066.241"/><path fill="#3e4347" d="m42.31 46.547l-3.3-4.962v-.006h-11.613l-7.777 5.263-2.202 11.02 6.256 1.183 1.7-8.5 6.776-4.45h2.11l4.179 6.04 11.318 2.14 1.22-6.09z"/><path fill="#47b892" d="m39.01 41.579l-3.601-16.601-8.986 1.648c-.389.057-.764.23-1.054.532l-4.084 4.287-5.508-1.903-1.209 3.335 6.662 2.304c.79.27 1.646-.044 2.104-.687l.008.007 3.271-3.435.786 10.512h11.611"/><path fill="#d6a57c" d="m15.584 31.442l.747-1.571c.265-.561.014-1.228-.561-1.484l-.779-.354c-.413-.188-.883-.113-1.213.147-1.072-.398-2.606-.646-3.496 1.234-.147.31-.964 2.027 1.122 2.97 3.073 1.39 3.073 1.39 4.18-.942"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m30.1 15.8l2.5-2 1.7 9.4-6.1 1.1z"/><path d="m26.8 20.9c2 .8 1.4 3.4 1.4 3.4 2.5-.5 3.3-5.6 2.8-8.6l-4.2 5.2" fill="#b58360"/><path d="m29.7 3.3l-10.1 5.7c-.9 2.8.3 3.9.4 5 .1.5-.7 1.5-1.2 2.1-1 1.2 1.1 1.7 1.8 1.4.7 1-.6 1.9 2.5.7 0 0-3 2-.6 2.2 0 1.3.2 3.9 6.5.1 1.9-1.1 2-4.8 2-4.8l3.3-1.2-4.6-11.2" fill="#d6a57c"/><path d="m21.9 3.7c6.7-3.7 11.2-.7 12.2.8 2.6 4 1.9 9.2-.7 13.4 0 0-1.7-.4-2.3-2.3 0 0 1.9.5 2-3.4.1-3.3-3.6-4.3-4.5.3l-.5.1c-1.3-2-.1-5-2.8-5.4-2.3-.3-5.9 2.3-5.9 2.3-.9-1.1-.2-4.3 2.5-5.8" fill="#594640"/><path d="m22.7 13.5c.1.7-.2 1.3-.6 1.4-.5.1-.7-.4-.8-1.1s-.1-1.3.4-1.3c.4-.1.9.3 1 1" fill="#664e27"/><path d="m29.7 13.2c-.2-1.3.7-2.7 1.8-2.9 0 0-1.6 1.9-.7 3.9-.1 0-1-.1-1.1-1" fill="#b58360"/><path d="m24.2 17.7c0 0-1.1 1.2-1.6 1.5-.9.7-1.1.4-.6-.1.4-.4 1.1-.9 1.1-.9l1.1-.5" fill="#664e27"/><g fill="#d3976e"><path d="m51.4 53.5c-.4 2 .9 3.9 2.9 4.3l1.7-8.5c.2-1-.5-1.9-1.5-2.1l-1.8-.3-1.3 6.6"/><path d="m16.1 57.5c-2-.4-3.9.9-4.3 2.9l8.6 1.6c1 .2 2-.5 2.2-1.4l.4-1.8-6.9-1.3"/></g><path d="m49 28.8l-3.3-6.8c-.4-.8-1.3-1.2-2.2-1.1l-7.5.3c-1.1 0-2 .9-1.9 2 0 1.1 1 1.9 2.1 1.9l6.6-.2 2.8 5.7 3.4-1.8" fill="#3b946f"/><path d="m47.1 29.2l-1.8.7c-.6.2-1 .9-.7 1.6l.3.9c.2.5.6.8 1.1.8.5 1.1 1.5 2.5 3.7 1.7.4-.1 2.4-.8 1.5-3.2-1.4-3.5-1.4-3.5-4.1-2.5" fill="#d6a57c"/><path d="m46.4 33.1c1.5-.6.7-2.2.3-3.3-.1-.2-.3-.1-.3.1.3.9 1.2 2.4-.1 3-.1 0 0 .2.1.2" fill="#b58360"/><path fill="#3e4347" d="m43.2 45l-3.6-5.5h-12.6l-8.5 5.8-2.4 12.1 6.8 1.4 1.9-9.4 8.6-4.2 5.6 5.9 12.4 2.4 1.3-6.7z"/><path d="m39.6 39.5l-3.9-18.3-9.8 1.8c-.4.1-.8.3-1.1.6l-4.5 4.7-6-2.1-1.3 3.7 7.3 2.5c.9.3 1.8 0 2.3-.8l3.6-3.8.8 11.7c0 0 12.6 0 12.6 0" fill="#47b892"/><path d="m14.1 28.3l.8-1.7c.3-.6 0-1.4-.6-1.6l-.9-.4c-.5-.2-1-.1-1.3.2-1.2-.4-2.8-.7-3.8 1.4-.2.3-1.1 2.2 1.2 3.3 3.4 1.4 3.4 1.4 4.6-1.2" fill="#d6a57c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fe.svg
index f8da142..819f33c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m29.93 18.528l2.33-.635 2.391 8.523-6 1.634z"/><path fill="#935e3e" d="m29.857 18.35c1.073 3.828.788 5.993-2 6.754l.794 2.95c3.298-.899 3.512-5.323 2.26-9.792l-1.05.088"/><path fill="#b47d56" d="m28.21 4.676l-11.979 7.652c-.751 3.141.687 4.303.962 5.494.123.529-.687 1.781-1.118 2.438-.961 1.463 1.426 1.783 2.178 1.401.834 1.035.104 1.579 2.01.875 1.049-.389 2.229-1.767 2.229-1.767-3.921 4.238-2.353 5.115-.54 4.072.695 2.482 2.258 2.057 5.682 1.123 2.791-.76 4.342-3.875 3.27-7.703l3.561-1.663-6.259-11.922"/><path fill="#231f20" d="m22.257 2.531c9.682-2.641 13.221 5.124 13.453 11.11.123 3.188-.947 5.532-2.596 6.862l-1.115-.344-1.092-1.902c0 0 1.771-.952 1.734-3.236-.018-1.045-1.529-2.635-3.01-2.318-1.033.223-2.287 1.365-2.533 1.678-.694-2.477-.902-5.18-2.82-5.45-1.576-.222-6.865 4.122-8.05 3.394-3.177-1.945.195-8.209 6.03-9.798"/><g fill="#574137"><path d="m29.792 15.268c-.188.025-.359.1-.498.208.033-.198.088-.394.153-.597.083-.25.196-.492.296-.77-.505.292-.884.816-.974 1.432-.085.622.19 1.232.62 1.615-.032-.295-.103-.558-.127-.813-.014-.164-.018-.32-.012-.476.073-.017.143-.034.211-.046.144-.021.266-.053.394-.064.128-.021.255-.021.401-.038.145-.013.296-.006.487-.034-.191-.303-.576-.46-.951-.417"/><path d="m20.254 16.531c.222.792-.064 1.563-.64 1.719-.574.156-1.221-.359-1.443-1.151s.063-1.563.639-1.72 1.221.359 1.444 1.152"/><path d="m22.496 20.77c0 0-.931 2.624-1.237 3.039-.652.889-1.059.532-.805-.134.263-.685 2.042-2.905 2.042-2.905"/></g><g fill="#d3976e"><path d="m49.767 54.25c-.357 1.784.84 3.512 2.67 3.859l1.533-7.674c.18-.891-.42-1.756-1.336-1.93l-1.657-.313-1.21 6.06"/><path d="m17.454 57.875c-1.831-.35-3.607.816-3.963 2.6l7.879 1.495c.914.173 1.803-.409 1.98-1.304l.323-1.612-6.219-1.179"/></g><path fill="#3b946f" d="m47.604 31.895l-3.048-6.213c-.364-.736-1.199-1.103-1.99-.964v-.009l-6.894.245c-1.01.03-1.791.848-1.758 1.825.033.977.878 1.745 1.881 1.713l6.01-.215 2.521 5.136 3.28-1.518"/><path fill="#b47d56" d="m45.842 32.21l-1.673.594c-.595.212-.9.854-.68 1.434l.295.785c.158.417.541.688.967.73.471 1.018 1.377 2.249 3.373 1.537.33-.118 2.157-.768 1.363-2.869-1.17-3.094-1.17-3.094-3.645-2.211"/><path fill="#935e3e" d="m45.22 35.755c1.411-.566.662-1.977.305-2.995-.054-.151-.295-.086-.242.066.295.84 1.072 2.206-.129 2.688-.148.059-.085.301.066.241"/><path fill="#3e4347" d="m42.31 46.547l-3.3-4.962v-.006h-11.613l-7.777 5.263-2.202 11.02 6.256 1.183 1.7-8.5 6.776-4.45h2.11l4.179 6.04 11.318 2.14 1.22-6.09z"/><path fill="#47b892" d="m39.01 41.579l-3.601-16.601-8.986 1.648c-.389.057-.764.23-1.054.532l-4.084 4.287-5.508-1.903-1.209 3.335 6.662 2.304c.79.27 1.646-.044 2.104-.687l.008.007 3.271-3.435.786 10.512h11.611"/><path fill="#b47d56" d="m15.584 31.442l.747-1.571c.265-.561.014-1.228-.561-1.484l-.779-.354c-.413-.188-.883-.113-1.213.147-1.072-.398-2.606-.646-3.496 1.234-.147.31-.964 2.027 1.122 2.97 3.073 1.39 3.073 1.39 4.18-.942"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m30.1 15.8l2.5-2 1.7 9.4-6.1 1.1z"/><path d="m26.8 20.9c2 .8 1.4 3.4 1.4 3.4 2.5-.5 3.3-5.6 2.8-8.6l-4.2 5.2" fill="#935e3e"/><path d="m29.7 3.3l-10.1 5.7c-.9 2.8.3 3.9.4 5 .1.5-.7 1.5-1.2 2.1-1 1.2 1.1 1.7 1.8 1.4.7 1-.6 1.9 2.5.7 0 0-3 2-.6 2.2 0 1.3.2 3.9 6.5.1 1.9-1.1 2-4.8 2-4.8l3.3-1.2-4.6-11.2" fill="#b47d56"/><path d="m21.9 3.7c6.7-3.7 11.2-.7 12.2.8 2.6 4 1.9 9.2-.7 13.4 0 0-1.7-.4-2.3-2.3 0 0 1.9.5 2-3.4.1-3.3-3.6-4.3-4.5.3l-.5.1c-1.3-2-.1-5-2.8-5.4-2.3-.3-5.9 2.3-5.9 2.3-.9-1.1-.2-4.3 2.5-5.8" fill="#231f20"/><path d="m22.7 13.5c.1.7-.2 1.3-.6 1.4-.5.1-.7-.4-.8-1.1-.1-.7-.1-1.3.4-1.3.4-.1.9.3 1 1" fill="#664e27"/><path d="m29.7 13.2c-.2-1.3.7-2.7 1.8-2.9 0 0-1.6 1.9-.7 3.9-.1 0-1-.1-1.1-1" fill="#935e3e"/><path d="m24.2 17.7c0 0-1.1 1.2-1.6 1.5-.9.7-1.1.4-.6-.1.4-.4 1.1-.9 1.1-.9l1.1-.5" fill="#664e27"/><g fill="#d3976e"><path d="m51.4 53.5c-.4 2 .9 3.9 2.9 4.3l1.7-8.5c.2-1-.5-1.9-1.5-2.1l-1.8-.3-1.3 6.6"/><path d="m16.1 57.5c-2-.4-3.9.9-4.3 2.9l8.6 1.6c1 .2 2-.5 2.2-1.4l.4-1.8-6.9-1.3"/></g><path d="m49 28.8l-3.3-6.8c-.4-.8-1.3-1.2-2.2-1.1l-7.5.3c-1.1 0-2 .9-1.9 2 0 1.1 1 1.9 2.1 1.9l6.6-.2 2.7 5.7 3.5-1.8" fill="#3b946f"/><path d="m47.1 29.2l-1.8.7c-.6.2-1 .9-.7 1.6l.3.9c.2.5.6.8 1.1.8.5 1.1 1.5 2.5 3.7 1.7.4-.1 2.4-.8 1.5-3.2-1.4-3.5-1.4-3.5-4.1-2.5" fill="#b47d56"/><path d="m46.4 33.1c1.5-.6.7-2.2.3-3.3-.1-.2-.3-.1-.3.1.3.9 1.2 2.4-.1 3-.1 0 0 .2.1.2" fill="#935e3e"/><path fill="#3e4347" d="m43.2 45l-3.6-5.5h-12.6l-8.5 5.8-2.4 12.1 6.8 1.4 1.9-9.4 8.6-4.2 5.6 5.9 12.4 2.4 1.3-6.7z"/><path d="m39.6 39.5l-3.9-18.3-9.8 1.8c-.4.1-.8.3-1.1.6l-4.5 4.7-6-2.1-1.3 3.7 7.3 2.5c.9.3 1.8 0 2.3-.8l3.6-3.8.8 11.7c0 0 12.6 0 12.6 0" fill="#47b892"/><path d="m14.1 28.3l.8-1.7c.3-.6 0-1.4-.6-1.6l-.9-.4c-.5-.2-1-.1-1.3.2-1.2-.4-2.8-.7-3.8 1.4-.2.3-1.1 2.2 1.2 3.3 3.4 1.4 3.4 1.4 4.6-1.2" fill="#b47d56"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3ff.svg
index ce1c18d..622c252 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c3-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m29.93 18.528l2.33-.635 2.391 8.523-6 1.634z"/><path fill="#705041" d="m29.857 18.35c1.073 3.828.788 5.993-2 6.754l.794 2.95c3.298-.899 3.512-5.323 2.26-9.792l-1.05.088"/><path fill="#8a6859" d="m28.21 4.676l-11.979 7.652c-.751 3.141.687 4.303.962 5.494.123.529-.687 1.781-1.118 2.438-.961 1.463 1.426 1.783 2.178 1.401.834 1.035.104 1.579 2.01.875 1.049-.389 2.229-1.767 2.229-1.767-3.921 4.238-2.353 5.115-.54 4.072.695 2.482 2.258 2.057 5.682 1.123 2.791-.76 4.342-3.875 3.27-7.703l3.561-1.663-6.259-11.922"/><path fill="#231f20" d="m22.257 2.531c9.682-2.641 13.221 5.124 13.453 11.11.123 3.188-.947 5.532-2.596 6.862l-1.115-.344-1.092-1.902c0 0 1.771-.952 1.734-3.236-.018-1.045-1.529-2.635-3.01-2.318-1.033.223-2.287 1.365-2.533 1.678-.694-2.477-.902-5.18-2.82-5.45-1.576-.222-6.865 4.122-8.05 3.394-3.177-1.945.195-8.209 6.03-9.798"/><g fill="#47352d"><path d="m29.792 15.268c-.188.025-.359.1-.498.208.033-.198.088-.394.153-.597.083-.25.196-.492.296-.77-.505.292-.884.816-.974 1.432-.085.622.19 1.232.62 1.615-.032-.295-.103-.558-.127-.813-.014-.164-.018-.32-.012-.476.073-.017.143-.034.211-.046.144-.021.266-.053.394-.064.128-.021.255-.021.401-.038.145-.013.296-.006.487-.034-.191-.303-.576-.46-.951-.417"/><path d="m20.254 16.531c.222.792-.064 1.563-.64 1.719-.574.156-1.221-.359-1.443-1.151s.063-1.563.639-1.72 1.221.359 1.444 1.152"/><path d="m22.496 20.77c0 0-.931 2.624-1.237 3.039-.652.889-1.059.532-.805-.134.263-.685 2.042-2.905 2.042-2.905"/></g><g fill="#d3976e"><path d="m49.767 54.25c-.357 1.784.84 3.512 2.67 3.859l1.533-7.674c.18-.891-.42-1.756-1.336-1.93l-1.657-.313-1.21 6.06"/><path d="m17.454 57.875c-1.831-.35-3.607.816-3.963 2.6l7.879 1.495c.914.173 1.803-.409 1.98-1.304l.323-1.612-6.219-1.179"/></g><path fill="#3b946f" d="m47.604 31.895l-3.048-6.213c-.364-.736-1.199-1.103-1.99-.964v-.009l-6.894.245c-1.01.03-1.791.848-1.758 1.825.033.977.878 1.745 1.881 1.713l6.01-.215 2.521 5.136 3.28-1.518"/><path fill="#8a6859" d="m45.842 32.21l-1.673.594c-.595.212-.9.854-.68 1.434l.295.785c.158.417.541.688.967.73.471 1.018 1.377 2.249 3.373 1.537.33-.118 2.157-.768 1.363-2.869-1.17-3.094-1.17-3.094-3.645-2.211"/><path fill="#705041" d="m45.22 35.755c1.411-.566.662-1.977.305-2.995-.054-.151-.295-.086-.242.066.295.84 1.072 2.206-.129 2.688-.148.059-.085.301.066.241"/><path fill="#3e4347" d="m42.31 46.547l-3.3-4.962v-.006h-11.613l-7.777 5.263-2.202 11.02 6.256 1.183 1.7-8.5 6.776-4.45h2.11l4.179 6.04 11.318 2.14 1.22-6.09z"/><path fill="#47b892" d="m39.01 41.579l-3.601-16.601-8.986 1.648c-.389.057-.764.23-1.054.532l-4.084 4.287-5.508-1.903-1.209 3.335 6.662 2.304c.79.27 1.646-.044 2.104-.687l.008.007 3.271-3.435.786 10.512h11.611"/><path fill="#8a6859" d="m15.584 31.442l.747-1.571c.265-.561.014-1.228-.561-1.484l-.779-.354c-.413-.188-.883-.113-1.213.147-1.072-.398-2.606-.646-3.496 1.234-.147.31-.964 2.027 1.122 2.97 3.073 1.39 3.073 1.39 4.18-.942"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m30.1 15.8l2.5-2 1.7 9.4-6.1 1.1z"/><path d="m26.8 20.9c2 .8 1.4 3.4 1.4 3.4 2.5-.5 3.3-5.6 2.8-8.6l-4.2 5.2" fill="#705041"/><path d="m29.7 3.3l-10.1 5.7c-.9 2.8.3 3.9.4 5 .1.5-.7 1.5-1.2 2.1-1 1.2 1.1 1.7 1.8 1.4.7 1-.6 1.9 2.5.7 0 0-3 2-.6 2.2 0 1.3.2 3.9 6.5.1 1.9-1.1 2-4.8 2-4.8l3.3-1.2-4.6-11.2" fill="#8a6859"/><path d="m21.9 3.7c6.7-3.7 11.2-.7 12.2.8 2.6 4 1.9 9.2-.7 13.4 0 0-1.7-.4-2.3-2.3 0 0 1.9.5 2-3.4.1-3.3-3.6-4.3-4.5.3l-.5.1c-1.3-2-.1-5-2.8-5.4-2.3-.3-5.9 2.3-5.9 2.3-.9-1.1-.2-4.3 2.5-5.8" fill="#231f20"/><path d="m22.7 13.5c.1.7-.2 1.3-.6 1.4-.5.1-.7-.4-.8-1.1-.1-.7-.1-1.3.4-1.3.4-.1.9.3 1 1" fill="#574137"/><path d="m29.7 13.2c-.2-1.3.7-2.7 1.8-2.9 0 0-1.6 1.9-.7 3.9-.1 0-1-.1-1.1-1" fill="#705041"/><path d="m24.2 17.7c0 0-1.1 1.2-1.6 1.5-.9.7-1.1.4-.6-.1.4-.4 1.1-.9 1.1-.9l1.1-.5" fill="#574137"/><g fill="#d3976e"><path d="m51.4 53.5c-.4 2 .9 3.9 2.9 4.3l1.7-8.5c.2-1-.5-1.9-1.5-2.1l-1.8-.3-1.3 6.6"/><path d="m16.1 57.5c-2-.4-3.9.9-4.3 2.9l8.6 1.6c1 .2 2-.5 2.2-1.4l.4-1.8-6.9-1.3"/></g><path d="m49 28.8l-3.3-6.8c-.4-.8-1.3-1.2-2.2-1.1l-7.5.3c-1.1 0-2 .9-1.9 2 0 1.1 1 1.9 2.1 1.9l6.6-.2 2.7 5.7 3.5-1.8" fill="#3b946f"/><path d="m47.1 29.2l-1.8.7c-.6.2-1 .9-.7 1.6l.3.9c.2.5.6.8 1.1.8.5 1.1 1.5 2.5 3.7 1.7.4-.1 2.4-.8 1.5-3.2-1.4-3.5-1.4-3.5-4.1-2.5" fill="#8a6859"/><path d="m46.4 33.1c1.5-.6.7-2.2.3-3.3-.1-.2-.3-.1-.3.1.3.9 1.2 2.4-.1 3-.1 0 0 .2.1.2" fill="#705041"/><path fill="#3e4347" d="m43.2 45l-3.6-5.5h-12.6l-8.5 5.8-2.4 12.1 6.8 1.4 1.9-9.4 8.6-4.2 5.6 5.9 12.4 2.4 1.3-6.7z"/><path d="m39.6 39.5l-3.9-18.3-9.8 1.8c-.4.1-.8.3-1.1.6l-4.5 4.7-6-2.1-1.3 3.7 7.3 2.5c.9.3 1.8 0 2.3-.8l3.6-3.8.8 11.7c0 0 12.6 0 12.6 0" fill="#47b892"/><path d="m14.1 28.3l.8-1.7c.3-.6 0-1.4-.6-1.6l-.9-.4c-.5-.2-1-.1-1.3.2-1.2-.4-2.8-.7-3.8 1.4-.2.3-1.1 2.2 1.2 3.3 3.4 1.4 3.4 1.4 4.6-1.2" fill="#8a6859"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c3.svg
index dee2291..e292a29 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m29.928 18.528l2.332-.636 2.39 8.524-6 1.634z"/><path fill="#eba352" d="m29.856 18.349c1.073 3.828.788 5.993-2 6.754l.794 2.95c3.298-.899 3.512-5.323 2.26-9.792l-1.05.088"/><path fill="#ffdd67" d="m28.21 4.675l-11.978 7.653c-.751 3.141.687 4.303.962 5.494.123.529-.687 1.781-1.118 2.438-.961 1.463 1.426 1.783 2.178 1.401.834 1.035.104 1.579 2.01.875 1.049-.389 2.229-1.767 2.229-1.767-3.921 4.238-2.353 5.115-.54 4.072.695 2.482 2.258 2.057 5.682 1.123 2.791-.76 4.342-3.875 3.27-7.703l3.561-1.663-6.26-11.923"/><path fill="#231f20" d="m22.255 2.531c9.682-2.641 13.221 5.124 13.454 11.11.123 3.188-.947 5.532-2.596 6.862l-1.116-.344-1.092-1.902c0 0 1.771-.952 1.734-3.236-.018-1.045-1.529-2.635-3.01-2.318-1.033.223-2.287 1.365-2.533 1.678-.694-2.477-.902-5.18-2.82-5.45-1.576-.222-6.865 4.122-8.05 3.394-3.177-1.946.195-8.209 6.03-9.798"/><g fill="#664e27"><path d="m29.791 15.267c-.188.025-.359.1-.498.208.033-.198.088-.394.153-.597.083-.25.196-.492.296-.77-.505.292-.884.816-.974 1.432-.085.622.19 1.232.62 1.615-.032-.295-.103-.558-.127-.813-.014-.164-.018-.32-.012-.476.073-.017.143-.034.211-.046.144-.021.266-.053.394-.064.128-.021.255-.021.401-.038.145-.013.296-.006.487-.034-.192-.303-.576-.46-.951-.417"/><path d="m20.252 16.531c.222.792-.064 1.563-.64 1.719-.574.156-1.221-.359-1.443-1.151s.063-1.563.639-1.72 1.222.359 1.444 1.152"/><path d="m22.495 20.769c0 0-.931 2.624-1.237 3.039-.652.889-1.059.532-.805-.134.262-.684 2.042-2.905 2.042-2.905"/></g><g fill="#d3976e"><path d="m49.766 54.25c-.357 1.784.84 3.512 2.67 3.859l1.533-7.674c.18-.891-.42-1.756-1.336-1.93l-1.657-.313-1.21 6.06"/><path d="m17.453 57.875c-1.831-.35-3.607.816-3.963 2.6l7.879 1.495c.914.173 1.803-.409 1.98-1.304l.323-1.612-6.219-1.179"/></g><path fill="#3b946f" d="m47.603 31.894l-3.048-6.213c-.364-.736-1.199-1.103-1.991-.964v-.009l-6.894.245c-1.01.03-1.791.848-1.758 1.825.033.977.878 1.745 1.881 1.713l6.01-.215 2.521 5.136 3.28-1.518"/><path fill="#ffdd67" d="m45.841 32.21l-1.673.593c-.595.212-.9.854-.68 1.434l.295.785c.158.417.541.688.967.73.471 1.018 1.377 2.249 3.373 1.537.33-.118 2.157-.768 1.363-2.869-1.17-3.093-1.17-3.093-3.645-2.21"/><path fill="#eba352" d="m45.22 35.755c1.411-.566.662-1.977.304-2.996-.053-.151-.294-.086-.24.066.295.84 1.07 2.207-.13 2.689-.148.059-.084.301.066.241"/><path fill="#3e4347" d="m42.31 46.547l-3.3-4.962v-.006h-11.614l-7.777 5.263-2.202 11.02 6.255 1.183 1.701-8.5 6.767-4.45h2.12l4.178 6.04 11.318 2.14 1.22-6.09z"/><path fill="#47b892" d="m39.01 41.579l-3.601-16.601-8.987 1.648c-.389.057-.764.23-1.054.532l-4.084 4.287-5.508-1.903-1.209 3.335 6.662 2.304c.79.27 1.646-.044 2.104-.687l.008.007 3.271-3.435.786 10.512h11.612"/><path fill="#ffdd67" d="m15.583 31.442l.747-1.571c.265-.561.014-1.228-.561-1.484l-.779-.354c-.413-.188-.883-.113-1.213.147-1.072-.398-2.606-.646-3.496 1.234-.147.31-.964 2.027 1.122 2.97 3.072 1.39 3.072 1.39 4.18-.942"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m30.1 15.8l2.5-2 1.7 9.4-6.1 1.1z"/><path d="m26.8 20.9c2 .8 1.4 3.4 1.4 3.4 2.5-.5 3.3-5.6 2.8-8.6l-4.2 5.2" fill="#eba352"/><path d="m29.7 3.3l-10.1 5.7c-.9 2.8.3 3.9.4 5 .1.5-.7 1.5-1.2 2.1-1 1.2 1.1 1.7 1.8 1.4.7 1-.6 1.9 2.5.7 0 0-3 2-.6 2.2 0 1.3.2 3.9 6.5.1 1.9-1.1 2-4.8 2-4.8l3.3-1.2-4.6-11.2" fill="#ffdd67"/><path d="m21.9 3.7c6.7-3.7 11.2-.7 12.2.8 2.6 4 1.9 9.2-.7 13.4 0 0-1.7-.4-2.3-2.3 0 0 1.9.5 2-3.4.1-3.3-3.6-4.3-4.5.3l-.5.1c-1.3-2-.1-5-2.8-5.4-2.3-.3-5.9 2.3-5.9 2.3-.9-1.1-.2-4.3 2.5-5.8" fill="#ffb300"/><path d="m22.7 13.5c.1.7-.2 1.3-.6 1.4-.5.1-.7-.4-.8-1.1s-.1-1.3.4-1.3c.4-.1.9.3 1 1" fill="#937237"/><path d="m29.7 13.2c-.2-1.3.7-2.7 1.8-2.9 0 0-1.6 1.9-.7 3.9-.1 0-1-.1-1.1-1" fill="#eba352"/><path d="m24.2 17.7c0 0-1.1 1.2-1.6 1.5-.9.7-1.1.4-.6-.1.4-.4 1.1-.9 1.1-.9l1.1-.5" fill="#937237"/><g fill="#d3976e"><path d="m51.4 53.5c-.4 2 .9 3.9 2.9 4.3l1.7-8.5c.2-1-.5-1.9-1.5-2.1l-1.8-.3-1.3 6.6"/><path d="m16.1 57.5c-2-.4-3.9.9-4.3 2.9l8.6 1.6c1 .2 2-.5 2.2-1.4l.4-1.8-6.9-1.3"/></g><path d="m49 28.8l-3.3-6.8c-.4-.8-1.3-1.2-2.2-1.1l-7.5.3c-1.1 0-2 .9-1.9 2 0 1.1 1 1.9 2.1 1.9l6.6-.2 2.8 5.7 3.4-1.8" fill="#3b946f"/><path d="m47.1 29.2l-1.8.7c-.6.2-1 .9-.7 1.6l.3.9c.2.5.6.8 1.1.8.5 1.1 1.5 2.5 3.7 1.7.4-.1 2.4-.8 1.5-3.2-1.4-3.5-1.4-3.5-4.1-2.5" fill="#ffdd67"/><path d="m46.4 33.1c1.5-.6.7-2.2.3-3.3-.1-.2-.3-.1-.3.1.3.9 1.2 2.4-.1 3-.1 0 0 .2.1.2" fill="#eba352"/><path fill="#3e4347" d="m43.2 45l-3.6-5.5h-12.6l-8.5 5.8-2.4 12.1 6.8 1.4 1.9-9.4 8.6-4.2 5.6 5.9 12.4 2.4 1.3-6.7z"/><path d="m39.6 39.5l-3.9-18.3-9.8 1.8c-.4.1-.8.3-1.1.6l-4.5 4.7-6-2.1-1.3 3.7 7.3 2.5c.9.3 1.8 0 2.3-.8l3.6-3.8.8 11.7h12.6" fill="#47b892"/><path d="m14.1 28.3l.8-1.7c.3-.6 0-1.4-.6-1.6l-.9-.4c-.5-.2-1-.1-1.3.2-1.1-.5-2.8-.8-3.8 1.3-.2.3-1.1 2.2 1.2 3.3 3.4 1.5 3.4 1.5 4.6-1.1" fill="#ffdd67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fb.svg
index b00468f..b76cc56 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m43.617 2.945c-3.625.818-14.01 2.424-10.469 6.551 4.781 5.564 7.672 12.811 7.672 20.74 0 13.807-8.77 25.551-21.01 29.93 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764s-14.971-28.06-18.387-27.29"/><g fill="#428bc1"><path d="m47.03 3.563c4.04 5.334 5.982 11.371 5.982 18.592 0 13.734-8.674 25.432-20.816 29.863-3.398 3.619-7.623 6.447-12.383 8.148 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764 0-11.601-6.149-21.859-14.977-26.673"/><path d="m53.53 8.857c0 0-7.078-8.451-16.605-2.471-7.297 4.578-1.537 11.57 2.02 8.752 1.318-1.045-2.717-1.186-2.803-1.898-.168-1.424 2.197-.082 2.693-.688.584-.713-1.705-1.225-1.115-1.896.615-.701 1.977.529 2.416-.121.49-.723-.609-1.588.148-2.156.57-.43 1.547.545 2.732.08 1.514-.59-.076-2.746 2.461-2.57 4.604.32 8.06 2.968 8.06 2.968"/></g><path fill="#42ade2" d="m51.17 6.355c0 0-7.992-7.178-16.199-.645-7.607 6.06-1.719 13.375 2.256 10.117 1.473-1.207-3.039-1.369-3.133-2.195-.189-1.645 2.455-.094 3.01-.793.652-.824-1.906-1.416-1.248-2.191.689-.813 2.209.609 2.703-.141.547-.834-.682-1.834.164-2.492.639-.496 1.729.627 3.055.094 1.693-.682.105-1.93 2.752-2.973 3.115-1.226 6.64 1.219 6.64 1.219"/><path fill="#bbecff" d="m52.29 7.33c0 0-7.91-9.768-18.563-2.857-8.16 5.293-1.721 13.375 2.254 10.117 1.475-1.209-3.037-1.371-3.133-2.195-.188-1.646 2.457-.094 3.01-.793.652-.824-1.904-1.418-1.246-2.193.688-.811 2.209.611 2.701-.141.549-.832-.682-1.832.166-2.49.637-.498 1.729.627 3.055.094 1.691-.682-.086-3.176 2.75-2.973 5.147.369 9.01 3.431 9.01 3.431"/><path fill="#f15744" d="m45.47 55.682c-14.725 10.893-28.14 4.789-29.621 2.953-2.68-3.311 13.145-2.137 20.436-9.623 9.58-9.832 10.262-12.873 15.15-13.357 4.277-.426 5.066 11.868-5.961 20.03"/><g fill="#ffe1bd"><path d="m35.988 22.04l.506-.551c.266-.293.666-.391 1.018-.283.727-.688 1.871-1.404 3.215-.158.221.207 1.449 1.348.098 2.824-1.994 2.172-1.994 2.172-3.664.623l-1.125-1.043c-.401-.371-.423-1-.048-1.412"/><path d="m31.496 30.09l4.824-6.834 2.42 1.984-4.808 6.83z"/><path d="m23.73 31.826l8.172-2.238 2.03 2.482-8.588 2.403z"/><path d="m37.543 21.832c.195-.225.178-.563-.037-.75-.217-.189-.551-.16-.746.064l-.834.963.781.686.836-.963"/></g><path fill="#e6b796" d="m37.39 21.459c.008.168.01.291-.059.438-.061.141-.164.254-.264.369-.166.189-.332.379-.496.568-.129.145.096.34.223.195.17-.195.34-.389.51-.582.117-.135.229-.275.299-.439.084-.184.09-.375.082-.57-.006-.192-.301-.17-.295.021"/><g fill="#ffe1bd"><path d="m7.469 28.22l-.373-.648c-.197-.346-.566-.525-.934-.498-.559-.83-1.523-1.779-3.104-.855-.262.152-1.707.998-.705 2.736 1.479 2.555 1.479 2.555 3.441 1.406l1.324-.773c.472-.277.63-.888.351-1.368"/><path d="m11.32 37.686l-4.433-8.348-2.795 1.414 4.424 8.348z"/><path d="m17.256 32.469l-7.373 2.957-1.367 3.674 10.291-3.91z"/><path d="m5.996 27.682c-.141-.262-.053-.586.197-.725.254-.137.574-.037.717.227l.605 1.121-.912.496-.607-1.119"/></g><path fill="#e6b796" d="m6.227 27.35c-.043.164-.072.281-.037.439.029.15.104.285.178.418.121.221.242.441.361.662.094.17-.166.313-.26.143-.123-.227-.248-.453-.371-.678-.086-.158-.166-.318-.199-.494-.041-.199-.006-.385.045-.576.044-.184.329-.1.283.086"/><g fill="#ffe1bd"><path d="m27.514 38.3c0 0-.045 2.898-2.541 5.406-2.5 2.516-6.07 2.248-6.07 2.248s-4.135-12.258-1.65-13.484c1.953-.965 10.02-.738 9.641 0-1.492 2.929.616 5.83.616 5.83"/><path d="m41.967 46.03c1.031-1.037 2.771-.965 3.887.158l.01.01-5.246 5.27-2.031-2.041 3.38-3.397"/><path d="m37.18 51.758c1.031-1.037 2.771-.965 3.889.158l.008.008-5.246 5.271-2.031-2.041 3.38-3.396"/><path d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281 2.654-.324 4.432 4.453 3.375-3.389c0 0-4.359-4.381-5.594-5.621-.962-.967-2.235-1.326-4.249-1.049"/></g><path fill="#3e4347" d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281c-.001 0-1.349-3.438.618-5.93"/><path fill="#ffe1bd" d="m27.361 45.06l-3.135.447 2.514 5.482 2.656-.324 4.432 4.453 3.375-3.391c0 0-4.359-4.379-5.594-5.619-.961-.967-2.234-1.325-4.248-1.048"/><path fill="#3e4347" d="m27.361 45.06l.158-6.764c0 0-1.621 2.453-8.611 7.654 0 0 .656 5.305 5.547 5.32.576.002 2.285-.281 2.285-.281s-1.345-3.436.621-5.929"/><path fill="#ffe1bd" d="m23.822 31.26v-1.211h-3.422v1.211c0 .67-.533 1.209-1.191 1.209h5.805c-.657 0-1.192-.539-1.192-1.209"/><path fill="#594640" d="m12.08 15.764c0 1.813 0 7.354 0 7.354h20.06c0 0 0-5.541 0-7.354 0-9.51-20.06-9.51-20.06 0"/><path fill="#ffe1bd" d="m11.398 21.855c0-3.293 2.412-1.621 2.412-1.621.439-8.654 2.754-3.979 8.299-3.979 5.551 0 7.865-4.676 8.309 3.979 0 0 2.406-1.672 2.406 1.621 0 1.262-.459 2.293-2.02 2.4-.656 5.096-3.922 6.146-8.699 6.146-4.773 0-8.04-1.051-8.693-6.146-1.555-.107-2.02-1.138-2.02-2.4"/><g fill="#574137"><path d="m18.1 25.24c0 1.48 1.797 2.723 4.02 2.723s4.02-1.242 4.02-2.723c0 0-2.137.131-4.02.131-1.88 0-4.02-.131-4.02-.131"/><path d="m26.04 21.17c0 .75.602 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.736 0-1.338.605-1.338 1.359"/><path d="m18.295 21.17c0 .75.598 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.74 0-1.338.605-1.338 1.359"/></g><path fill="#e6b796" d="m22.615 22.738c0 .502.398.906.893.906s.892-.404.892-.906h-1.785"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,62H2v-9c38-5.8,60-25,60-25V62z" fill="#75d6ff"/><path d="m18.9 60.9c-2.5-.1-13.3-.4-13.3-2.4 0-.8 3.6-2.4 8.1-3.6 19.9-5.4 39.5-5.7 39.5-4.5 0 .6-.8 1.6 0 2.3 2.2 2 5 2 5 2.1 0 2.2-16.7 7.2-39.3 6.1" fill="#7924a6"/><path d="m53.2 52.7c-.4-.4-.4-.8-.3-1.3-5.6.7-36.2 4.8-46 5.9-.9.5-1.4.9-1.4 1.2 0 .4.4.7 1 .9l48.8-5.4c-.7-.3-1.4-.7-2.1-1.3" fill="#b86acb"/><g fill="#ffe1bd"><path d="m54.9 25.8c-2.2.7-4.1-.3-5.4.1-.3-.7-2.2-1.8-4.6-2.5 0 0-1.5-1.8-3.5-2.1-2-.3-2.8.2-2.6-2.4l-3.3-.7c-.7 2.4-2.9 1.9-4.2 1.8-3.4-.2-5 1.4-5.8 3.9-1 .8-1.9 1.8-2.7 3.1-.8 1.2-1.4 2-1.4 4.3 0 1.7 0 4.7 0 4.7l2.4-.2.5-5.7c0 0 3-1 3.7-3.3-.8 4.5.7 3.7-.3 7.4 0 0 9.9 1.3 9.9 1.3.3-5.9 2.5-3.7 3.5-9.1 0 0 4.6 1.8 7 2.3 2.6.6 7.8-.4 7.8-.4l-1-2.5"/><path d="m60 26.6c-.3-1.8-1.8-2-2.9-1.9 0 0 0-.6-.7-.5l-1.4.2c-.6.1-.9.6-.8 1.1l.3 1.6c.4 2.3.4 2.3 3.7 1.8 2.1-.3 1.8-2 1.8-2.3"/></g><path d="m56.7 24.8c-.1.1-.2.2-.4.3-.2.1-.3.1-.5.1-.3 0-.6.1-.8.1-.2 0-.1.3.1.3.3-.1.6-.1.9-.1.2 0 .4-.1.6-.2.2-.1.3-.2.5-.4 0-.1-.2-.3-.4-.1" fill="#e6b796"/><path d="m25.4 36.4c-.1-.5-.5-.8-1.1-.8l-1.6.1c-2.3.1-2.3.1-2.1 2.9.1 1.9 1.9 1.8 2.2 1.8 1.8-.1 2.1-1.3 2.1-2.3 0 0 .6-.1.6-.6l-.1-1.1" fill="#ffe1bd"/><path d="m38.2 35c0 0 .2.6.6 1 3.6.6 7.5 1.6 8.2 3.2.4 1.1-1.3 4.7-1.6 6.2-.8 4.4-7.4-3-8.4-2.2-.7.5.7 2.3.3 2.7-1.1 1-6.6 2.7-8.6.3-.7-.8-.2-2.3-.6-2.8-3.5-3.2-1.2-5.4-.1-9.5-.1 0 1.6.7 10.2 1.1" fill="#ff71d0"/><g fill="#e6b796"><path d="m23.5 28.8l.9 1.3-.2 2.4c-.1-1.4-.7-3.7-.7-3.7"/><ellipse cx="38.5" cy="27.6" rx=".5" ry=".4"/><ellipse cx="31.3" cy="26.6" rx=".5" ry=".4"/><path d="m28.2 25.1c0 0 .2 2.1 2.7 2.9-1.9-1.4-2.7-2.9-2.7-2.9"/><path d="m45.1 27.4c0 0 2 .9 4-.8-2.1.9-4 .8-4 .8"/></g><g fill="#8f4074"><path d="m36.6 44c0 1.8-1.6 3.2-3.5 3.2s-4 .1-4-1.7.9-4.7 4-4.8c1.9 0 3.5 1.5 3.5 3.3"/><path d="m45.4 42.9c0 1.8-1.2 5.2-2.3 2.1-.6-1.7 1.1-6 2.8-6 2.3 0-.5 2.2-.5 3.9"/></g><g fill="#ffe1bd"><path d="m35.7 44.9c1.7-3.7-4.5-5.5-5.5-1.3-1.1 4.1-.9 6.1-1.1 8.3-.1 1.2-1.1 2-.9 2.4.6 1.5.6 3.7 1.2 4.1.6.5 3.9-.2 4-.7.2-1.2-1.9-2.6-1.3-5.4.4-2.3 2.5-4.9 3.6-7.4"/><path d="m51.3 42.5c0-.8-2.6-2.6-5.4-3.4-1.6.4-2.6 4-2.1 4.6.8 1 2.8 1.4 2.8 1.4-1.4 1.7.3 3.2-.3 6.1-.4 1.9-.3 3.5 1.1 4.5.6.5 4.3-.4 4.1-1.1-.6-1.4-2.3-2.6-2.3-3.8-.4-3 2.2-4.5 2.1-8.3"/></g><g fill="#6ceda9"><path d="m26.2 40.3c0 0 0 1.8 1.9 3.1 0 0 .1-3.8 3-4.9-.1 0-3.7-.3-4.9 1.8"/><path d="m27.4 35.4c0 0-.9 1.2-1.1 3.3 0 0 1.8-2.7 6.1-2.3 0 .1-2.7-1.9-5-1"/><path d="m39.6 36.1c0 0 1.6 0 3.2.7 0 0-3.2-.4-4.8.8 0 0 .1-1.6 1.6-1.5"/><path d="m43.6 37.1c0 0 1.5.4 2.4 1.1 0 0-3-.7-4.6.5.1 0 .7-1.7 2.2-1.6"/><path d="m38.4 35.5c-3.5.8-9-1.2-10.7-.9-.3.1 0-1.3.3-1.3 3.8 0 6.6 1.2 10 1 .3 0 .7 1.1.4 1.2"/></g><path d="m29.9 9.9l.7 1.7 14.8 1.7.8-1.6c.7-6-.4-8.7-7-9.5-6.6-.9-8.6 1.6-9.3 7.7" fill="#594640"/><path d="m45.6 11.6c-.1.3-.2.7-.3.8-.2.3-.6.5-.6.5s.2-.7.2-1.6c.3-5.5-.4-2.9-6.4-3.6-6.1-.7-6.1-3.4-7.1 2.1-.1.9-.1 1.6-.1 1.6s-.3-.2-.5-.6c-.1-.2-.1-.5-.1-.9-.6-.2-1.3-.2-1.5 1.5-.1 1 .2 1.9 1.4 2.2 0 3.5 4.4 6.3 6.4 6.6 2.1.2 6.9-1.5 7.8-4.9 1.3.1 1.8-.7 1.9-1.8.3-1.8-.5-2-1.1-1.9" fill="#ffe1bd"/><g fill="#664e27"><circle cx="34.9" cy="12.1" r="1.3"/><circle cx="41.1" cy="12.9" r="1.3"/><path d="m39.6 16.6c-1.4.9-2.9.7-4.1-.5-.1-.1-.3.1-.2.3.3.8 1 1.5 2.1 1.6 1 .1 1.9-.4 2.4-1.1.1-.2-.1-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fc.svg
index 2e5c91a..f595853 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m43.617 2.945c-3.625.818-14.01 2.424-10.469 6.551 4.781 5.564 7.672 12.811 7.672 20.74 0 13.807-8.77 25.551-21.01 29.93 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764s-14.971-28.06-18.387-27.29"/><g fill="#428bc1"><path d="m47.03 3.563c4.04 5.334 5.982 11.371 5.982 18.592 0 13.734-8.674 25.432-20.816 29.863-3.398 3.619-7.623 6.447-12.383 8.148 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764 0-11.601-6.149-21.859-14.977-26.673"/><path d="m53.53 8.857c0 0-7.078-8.451-16.605-2.471-7.297 4.578-1.537 11.57 2.02 8.752 1.318-1.045-2.717-1.186-2.803-1.898-.168-1.424 2.197-.082 2.693-.688.584-.713-1.705-1.225-1.115-1.896.615-.701 1.977.529 2.416-.121.49-.723-.609-1.588.148-2.156.57-.43 1.547.545 2.732.08 1.514-.59-.076-2.746 2.461-2.57 4.604.32 8.06 2.968 8.06 2.968"/></g><path fill="#42ade2" d="m51.17 6.355c0 0-7.992-7.178-16.199-.645-7.607 6.06-1.719 13.375 2.256 10.117 1.473-1.207-3.039-1.369-3.133-2.195-.189-1.645 2.455-.094 3.01-.793.652-.824-1.906-1.416-1.248-2.191.689-.813 2.209.609 2.703-.141.547-.834-.682-1.834.164-2.492.639-.496 1.729.627 3.055.094 1.693-.682.105-1.93 2.752-2.973 3.115-1.226 6.64 1.219 6.64 1.219"/><path fill="#bbecff" d="m52.29 7.33c0 0-7.91-9.768-18.563-2.857-8.16 5.293-1.721 13.375 2.254 10.117 1.475-1.209-3.037-1.371-3.133-2.195-.188-1.646 2.457-.094 3.01-.793.652-.824-1.904-1.418-1.246-2.193.688-.811 2.209.611 2.701-.141.549-.832-.682-1.832.166-2.49.637-.498 1.729.627 3.055.094 1.691-.682-.086-3.176 2.75-2.973 5.147.369 9.01 3.431 9.01 3.431"/><path fill="#f15744" d="m45.47 55.682c-14.725 10.893-28.14 4.789-29.621 2.953-2.68-3.311 13.145-2.137 20.436-9.623 9.58-9.832 10.262-12.873 15.15-13.357 4.277-.426 5.066 11.868-5.961 20.03"/><g fill="#fed0ac"><path d="m35.988 22.04l.506-.551c.266-.293.666-.391 1.018-.283.727-.688 1.871-1.404 3.215-.158.221.207 1.449 1.348.098 2.824-1.994 2.172-1.994 2.172-3.664.623l-1.125-1.043c-.401-.371-.423-1-.048-1.412"/><path d="m31.496 30.09l4.824-6.834 2.42 1.984-4.808 6.83z"/><path d="m23.73 31.826l8.172-2.238 2.03 2.482-8.588 2.403z"/><path d="m37.543 21.832c.195-.225.178-.563-.037-.75-.217-.189-.551-.16-.746.064l-.834.963.781.686.836-.963"/></g><path fill="#e0a372" d="m37.39 21.459c.008.168.01.291-.059.438-.061.141-.164.254-.264.369-.166.189-.332.379-.496.568-.129.145.096.34.223.195.17-.195.34-.389.51-.582.117-.135.229-.275.299-.439.084-.184.09-.375.082-.57-.006-.192-.301-.17-.295.021"/><g fill="#fed0ac"><path d="m7.469 28.22l-.373-.648c-.197-.346-.566-.525-.934-.498-.559-.83-1.523-1.779-3.104-.855-.262.152-1.707.998-.705 2.736 1.479 2.555 1.479 2.555 3.441 1.406l1.324-.773c.472-.277.63-.888.351-1.368"/><path d="m11.32 37.686l-4.433-8.348-2.795 1.414 4.424 8.348z"/><path d="m17.256 32.469l-7.373 2.957-1.367 3.674 10.291-3.91z"/><path d="m5.996 27.682c-.141-.262-.053-.586.197-.725.254-.137.574-.037.717.227l.605 1.121-.912.496-.607-1.119"/></g><path fill="#e0a372" d="m6.227 27.35c-.043.164-.072.281-.037.439.029.15.104.285.178.418.121.221.242.441.361.662.094.17-.166.313-.26.143-.123-.227-.248-.453-.371-.678-.086-.158-.166-.318-.199-.494-.041-.199-.006-.385.045-.576.044-.184.329-.1.283.086"/><g fill="#fed0ac"><path d="m27.514 38.3c0 0-.045 2.898-2.541 5.406-2.5 2.516-6.07 2.248-6.07 2.248s-4.135-12.258-1.65-13.484c1.953-.965 10.02-.738 9.641 0-1.492 2.929.616 5.83.616 5.83"/><path d="m41.967 46.03c1.031-1.037 2.771-.965 3.887.158l.01.01-5.246 5.27-2.031-2.041 3.38-3.397"/><path d="m37.18 51.758c1.031-1.037 2.771-.965 3.889.158l.008.008-5.246 5.271-2.031-2.041 3.38-3.396"/><path d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281 2.654-.324 4.432 4.453 3.375-3.389c0 0-4.359-4.381-5.594-5.621-.962-.967-2.235-1.326-4.249-1.049"/></g><path fill="#3e4347" d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281c-.001 0-1.349-3.438.618-5.93"/><path fill="#fed0ac" d="m27.361 45.06l-3.135.447 2.514 5.482 2.656-.324 4.432 4.453 3.375-3.391c0 0-4.359-4.379-5.594-5.619-.961-.967-2.234-1.325-4.248-1.048"/><path fill="#3e4347" d="m27.361 45.06l.158-6.764c0 0-1.621 2.453-8.611 7.654 0 0 .656 5.305 5.547 5.32.576.002 2.285-.281 2.285-.281s-1.345-3.436.621-5.929"/><path fill="#fed0ac" d="m23.822 31.26v-1.211h-3.422v1.211c0 .67-.533 1.209-1.191 1.209h5.805c-.657 0-1.192-.539-1.192-1.209"/><path fill="#dbb471" d="m12.08 15.764c0 1.813 0 7.354 0 7.354h20.06c0 0 0-5.541 0-7.354 0-9.51-20.06-9.51-20.06 0"/><path fill="#fed0ac" d="m11.398 21.855c0-3.293 2.412-1.621 2.412-1.621.439-8.654 2.754-3.979 8.299-3.979 5.551 0 7.865-4.676 8.309 3.979 0 0 2.406-1.672 2.406 1.621 0 1.262-.459 2.293-2.02 2.4-.656 5.096-3.922 6.146-8.699 6.146-4.773 0-8.04-1.051-8.693-6.146-1.555-.107-2.02-1.138-2.02-2.4"/><g fill="#574137"><path d="m18.1 25.24c0 1.48 1.797 2.723 4.02 2.723s4.02-1.242 4.02-2.723c0 0-2.137.131-4.02.131-1.88 0-4.02-.131-4.02-.131"/><path d="m26.04 21.17c0 .75.602 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.736 0-1.338.605-1.338 1.359"/><path d="m18.295 21.17c0 .75.598 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.74 0-1.338.605-1.338 1.359"/></g><path fill="#e0a372" d="m22.615 22.738c0 .502.398.906.893.906s.892-.404.892-.906h-1.785"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,62H2v-9c38-5.8,60-25,60-25V62z" fill="#75d6ff"/><path d="m18.9 60.9c-2.5-.1-13.3-.4-13.3-2.4 0-.8 3.6-2.4 8.1-3.6 19.9-5.4 39.5-5.7 39.5-4.5 0 .6-.8 1.6 0 2.3 2.2 2 5 2 5 2.1 0 2.2-16.7 7.2-39.3 6.1" fill="#7924a6"/><path d="m53.2 52.7c-.4-.4-.4-.8-.3-1.3-5.6.7-36.2 4.8-46 5.9-.9.5-1.4.9-1.4 1.2 0 .4.4.7 1 .9l48.8-5.4c-.7-.3-1.4-.7-2.1-1.3" fill="#b86acb"/><g fill="#fed0ac"><path d="m54.9 25.8c-2.2.7-4.1-.3-5.4.1-.3-.7-2.2-1.8-4.6-2.5 0 0-1.5-1.8-3.5-2.1-2-.3-2.8.2-2.6-2.4l-3.3-.7c-.7 2.4-2.9 1.9-4.2 1.8-3.4-.2-5 1.4-5.8 3.9-1 .8-1.9 1.8-2.7 3.1-.8 1.2-1.4 2-1.4 4.3 0 1.7 0 4.7 0 4.7l2.4-.2.5-5.7c0 0 3-1 3.7-3.3-.8 4.5.7 3.7-.3 7.4 0 0 9.9 1.3 9.9 1.3.3-5.9 2.5-3.7 3.5-9.1 0 0 4.6 1.8 7 2.3 2.6.6 7.8-.4 7.8-.4l-1-2.5"/><path d="m60 26.6c-.3-1.8-1.8-2-2.9-1.9 0 0 0-.6-.7-.5l-1.4.2c-.6.1-.9.6-.8 1.1l.3 1.6c.4 2.3.4 2.3 3.7 1.8 2.1-.3 1.8-2 1.8-2.3"/></g><path d="m56.7 24.8c-.1.1-.2.2-.4.3-.2.1-.3.1-.5.1-.3 0-.6.1-.8.1-.2 0-.1.3.1.3.3-.1.6-.1.9-.1.2 0 .4-.1.6-.2.2-.1.3-.2.5-.4 0-.1-.2-.3-.4-.1" fill="#e0a372"/><path d="m25.4 36.4c-.1-.5-.5-.8-1.1-.8l-1.6.1c-2.3.1-2.3.1-2.1 2.9.1 1.9 1.9 1.8 2.2 1.8 1.8-.1 2.1-1.3 2.1-2.3 0 0 .6-.1.6-.6l-.1-1.1" fill="#fed0ac"/><path d="m38.2 35c0 0 .2.6.6 1 3.6.6 7.5 1.6 8.2 3.2.4 1.1-1.3 4.7-1.6 6.2-.8 4.4-7.4-3-8.4-2.2-.7.5.7 2.3.3 2.7-1.1 1-6.6 2.7-8.6.3-.7-.8-.2-2.3-.6-2.8-3.5-3.2-1.2-5.4-.1-9.5-.1 0 1.6.7 10.2 1.1" fill="#ff71d0"/><g fill="#e0a372"><path d="m23.5 28.8l.9 1.3-.2 2.4c-.1-1.4-.7-3.7-.7-3.7"/><ellipse cx="38.5" cy="27.6" rx=".5" ry=".4"/><ellipse cx="31.3" cy="26.6" rx=".5" ry=".4"/><path d="m28.2 25.1c0 0 .2 2.1 2.7 2.9-1.9-1.4-2.7-2.9-2.7-2.9"/><path d="m45.1 27.4c0 0 2 .9 4-.8-2.1.9-4 .8-4 .8"/></g><g fill="#8f4074"><path d="m36.6 44c0 1.8-1.6 3.2-3.5 3.2s-4 .1-4-1.7.9-4.7 4-4.8c1.9 0 3.5 1.5 3.5 3.3"/><path d="m45.4 42.9c0 1.8-1.2 5.2-2.3 2.1-.6-1.7 1.1-6 2.8-6 2.3 0-.5 2.2-.5 3.9"/></g><g fill="#fed0ac"><path d="m35.7 44.9c1.7-3.7-4.5-5.5-5.5-1.3-1.1 4.1-.9 6.1-1.1 8.3-.1 1.2-1.1 2-.9 2.4.6 1.5.6 3.7 1.2 4.1.6.5 3.9-.2 4-.7.2-1.2-1.9-2.6-1.3-5.4.4-2.3 2.5-4.9 3.6-7.4"/><path d="m51.3 42.5c0-.8-2.6-2.6-5.4-3.4-1.6.4-2.6 4-2.1 4.6.8 1 2.8 1.4 2.8 1.4-1.4 1.7.3 3.2-.3 6.1-.4 1.9-.3 3.5 1.1 4.5.6.5 4.3-.4 4.1-1.1-.6-1.4-2.3-2.6-2.3-3.8-.4-3 2.2-4.5 2.1-8.3"/></g><g fill="#6ceda9"><path d="m26.2 40.3c0 0 0 1.8 1.9 3.1 0 0 .1-3.8 3-4.9-.1 0-3.7-.3-4.9 1.8"/><path d="m27.4 35.4c0 0-.9 1.2-1.1 3.3 0 0 1.8-2.7 6.1-2.3 0 .1-2.7-1.9-5-1"/><path d="m39.6 36.1c0 0 1.6 0 3.2.7 0 0-3.2-.4-4.8.8 0 0 .1-1.6 1.6-1.5"/><path d="m43.6 37.1c0 0 1.5.4 2.4 1.1 0 0-3-.7-4.6.5.1 0 .7-1.7 2.2-1.6"/><path d="m38.4 35.5c-3.5.8-9-1.2-10.7-.9-.3.1 0-1.3.3-1.3 3.8 0 6.6 1.2 10 1 .3 0 .7 1.1.4 1.2"/></g><path d="m29.9 9.9l.7 1.7 14.8 1.7.8-1.6c.7-6-.4-8.7-7-9.5-6.6-.9-8.6 1.6-9.3 7.7" fill="#dbb471"/><path d="m45.6 11.6c-.1.3-.2.7-.3.8-.2.3-.6.5-.6.5s.2-.7.2-1.6c.3-5.5-.4-2.9-6.4-3.6-6.1-.7-6.1-3.4-7.1 2.1-.1.9-.1 1.6-.1 1.6s-.3-.2-.5-.6c-.1-.2-.1-.5-.1-.9-.6-.2-1.3-.2-1.5 1.5-.1 1 .2 1.9 1.4 2.2 0 3.5 4.4 6.3 6.4 6.6 2.1.2 6.9-1.5 7.8-4.9 1.3.1 1.8-.7 1.9-1.8.3-1.8-.5-2-1.1-1.9" fill="#fed0ac"/><g fill="#664e27"><circle cx="34.9" cy="12.1" r="1.3"/><circle cx="41.1" cy="12.9" r="1.3"/><path d="m39.6 16.6c-1.4.9-2.9.7-4.1-.5-.1-.1-.3.1-.2.3.3.8 1 1.5 2.1 1.6 1 .1 1.9-.4 2.4-1.1.1-.2-.1-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fd.svg
index c974bf7..5ddcf25 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m43.617 2.945c-3.625.818-14.01 2.424-10.469 6.551 4.781 5.564 7.672 12.811 7.672 20.74 0 13.807-8.77 25.551-21.01 29.93 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764s-14.971-28.06-18.387-27.29"/><g fill="#428bc1"><path d="m47.03 3.563c4.04 5.334 5.982 11.371 5.982 18.592 0 13.734-8.674 25.432-20.816 29.863-3.398 3.619-7.623 6.447-12.383 8.148 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764 0-11.601-6.149-21.859-14.977-26.673"/><path d="m53.53 8.857c0 0-7.078-8.451-16.605-2.471-7.297 4.578-1.537 11.57 2.02 8.752 1.318-1.045-2.717-1.186-2.803-1.898-.168-1.424 2.197-.082 2.693-.688.584-.713-1.705-1.225-1.115-1.896.615-.701 1.977.529 2.416-.121.49-.723-.609-1.588.148-2.156.57-.43 1.547.545 2.732.08 1.514-.59-.076-2.746 2.461-2.57 4.604.32 8.06 2.968 8.06 2.968"/></g><path fill="#42ade2" d="m51.17 6.355c0 0-7.992-7.178-16.199-.645-7.607 6.06-1.719 13.375 2.256 10.117 1.473-1.207-3.039-1.369-3.133-2.195-.189-1.645 2.455-.094 3.01-.793.652-.824-1.906-1.416-1.248-2.191.689-.813 2.209.609 2.703-.141.547-.834-.682-1.834.164-2.492.639-.496 1.729.627 3.055.094 1.693-.682.105-1.93 2.752-2.973 3.115-1.226 6.64 1.219 6.64 1.219"/><path fill="#bbecff" d="m52.29 7.33c0 0-7.91-9.768-18.563-2.857-8.16 5.293-1.721 13.375 2.254 10.117 1.475-1.209-3.037-1.371-3.133-2.195-.188-1.646 2.457-.094 3.01-.793.652-.824-1.904-1.418-1.246-2.193.688-.811 2.209.611 2.701-.141.549-.832-.682-1.832.166-2.49.637-.498 1.729.627 3.055.094 1.691-.682-.086-3.176 2.75-2.973 5.147.369 9.01 3.431 9.01 3.431"/><path fill="#f15744" d="m45.47 55.682c-14.725 10.893-28.14 4.789-29.621 2.953-2.68-3.311 13.145-2.137 20.436-9.623 9.58-9.832 10.262-12.873 15.15-13.357 4.277-.426 5.066 11.868-5.961 20.03"/><g fill="#d6a57c"><path d="m35.988 22.04l.506-.551c.266-.293.666-.391 1.018-.283.727-.688 1.871-1.404 3.215-.158.221.207 1.449 1.348.098 2.824-1.994 2.172-1.994 2.172-3.664.623l-1.125-1.043c-.401-.371-.423-1-.048-1.412"/><path d="m31.496 30.09l4.824-6.834 2.42 1.984-4.808 6.83z"/><path d="m23.73 31.826l8.172-2.238 2.03 2.482-8.588 2.403z"/><path d="m37.543 21.832c.195-.225.178-.563-.037-.75-.217-.189-.551-.16-.746.064l-.834.963.781.686.836-.963"/></g><path fill="#b58360" d="m37.39 21.459c.008.168.01.291-.059.438-.061.141-.164.254-.264.369-.166.189-.332.379-.496.568-.129.145.096.34.223.195.17-.195.34-.389.51-.582.117-.135.229-.275.299-.439.084-.184.09-.375.082-.57-.006-.192-.301-.17-.295.021"/><g fill="#d6a57c"><path d="m7.469 28.22l-.373-.648c-.197-.346-.566-.525-.934-.498-.559-.83-1.523-1.779-3.104-.855-.262.152-1.707.998-.705 2.736 1.479 2.555 1.479 2.555 3.441 1.406l1.324-.773c.472-.277.63-.888.351-1.368"/><path d="m11.32 37.686l-4.433-8.348-2.795 1.414 4.424 8.348z"/><path d="m17.256 32.469l-7.373 2.957-1.367 3.674 10.291-3.91z"/><path d="m5.996 27.682c-.141-.262-.053-.586.197-.725.254-.137.574-.037.717.227l.605 1.121-.912.496-.607-1.119"/></g><path fill="#b58360" d="m6.227 27.35c-.043.164-.072.281-.037.439.029.15.104.285.178.418.121.221.242.441.361.662.094.17-.166.313-.26.143-.123-.227-.248-.453-.371-.678-.086-.158-.166-.318-.199-.494-.041-.199-.006-.385.045-.576.044-.184.329-.1.283.086"/><g fill="#d6a57c"><path d="m27.514 38.3c0 0-.045 2.898-2.541 5.406-2.5 2.516-6.07 2.248-6.07 2.248s-4.135-12.258-1.65-13.484c1.953-.965 10.02-.738 9.641 0-1.492 2.929.616 5.83.616 5.83"/><path d="m41.967 46.03c1.031-1.037 2.771-.965 3.887.158l.01.01-5.246 5.27-2.031-2.041 3.38-3.397"/><path d="m37.18 51.758c1.031-1.037 2.771-.965 3.889.158l.008.008-5.246 5.271-2.031-2.041 3.38-3.396"/><path d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281 2.654-.324 4.432 4.453 3.375-3.389c0 0-4.359-4.381-5.594-5.621-.962-.967-2.235-1.326-4.249-1.049"/></g><path fill="#3e4347" d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281c-.001 0-1.349-3.438.618-5.93"/><path fill="#d6a57c" d="m27.361 45.06l-3.135.447 2.514 5.482 2.656-.324 4.432 4.453 3.375-3.391c0 0-4.359-4.379-5.594-5.619-.961-.967-2.234-1.325-4.248-1.048"/><path fill="#3e4347" d="m27.361 45.06l.158-6.764c0 0-1.621 2.453-8.611 7.654 0 0 .656 5.305 5.547 5.32.576.002 2.285-.281 2.285-.281s-1.345-3.436.621-5.929"/><path fill="#d6a57c" d="m23.822 31.26v-1.211h-3.422v1.211c0 .67-.533 1.209-1.191 1.209h5.805c-.657 0-1.192-.539-1.192-1.209"/><path fill="#594640" d="m12.08 15.764c0 1.813 0 7.354 0 7.354h20.06c0 0 0-5.541 0-7.354 0-9.51-20.06-9.51-20.06 0"/><path fill="#d6a57c" d="m11.398 21.855c0-3.293 2.412-1.621 2.412-1.621.439-8.654 2.754-3.979 8.299-3.979 5.551 0 7.865-4.676 8.309 3.979 0 0 2.406-1.672 2.406 1.621 0 1.262-.459 2.293-2.02 2.4-.656 5.096-3.922 6.146-8.699 6.146-4.773 0-8.04-1.051-8.693-6.146-1.555-.107-2.02-1.138-2.02-2.4"/><g fill="#574137"><path d="m18.1 25.24c0 1.48 1.797 2.723 4.02 2.723s4.02-1.242 4.02-2.723c0 0-2.137.131-4.02.131-1.88 0-4.02-.131-4.02-.131"/><path d="m26.04 21.17c0 .75.602 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.736 0-1.338.605-1.338 1.359"/><path d="m18.295 21.17c0 .75.598 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.74 0-1.338.605-1.338 1.359"/></g><path fill="#b58360" d="m22.615 22.738c0 .502.398.906.893.906s.892-.404.892-.906h-1.785"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,62H2v-9c38-5.8,60-25,60-25V62z" fill="#75d6ff"/><path d="m18.9 60.9c-2.5-.1-13.3-.4-13.3-2.4 0-.8 3.6-2.4 8.1-3.6 19.9-5.4 39.5-5.7 39.5-4.5 0 .6-.8 1.6 0 2.3 2.2 2 5 2 5 2.1 0 2.2-16.7 7.2-39.3 6.1" fill="#7924a6"/><path d="m53.2 52.7c-.4-.4-.4-.8-.3-1.3-5.6.7-36.2 4.8-46 5.9-.9.5-1.4.9-1.4 1.2 0 .4.4.7 1 .9l48.8-5.4c-.7-.3-1.4-.7-2.1-1.3" fill="#b86acb"/><g fill="#d6a57c"><path d="m54.9 25.8c-2.2.7-4.1-.3-5.4.1-.3-.7-2.2-1.8-4.6-2.5 0 0-1.5-1.8-3.5-2.1-2-.3-2.8.2-2.6-2.4l-3.3-.7c-.7 2.4-2.9 1.9-4.2 1.8-3.4-.2-5 1.4-5.8 3.9-1 .8-1.9 1.8-2.7 3.1-.8 1.2-1.4 2-1.4 4.3 0 1.7 0 4.7 0 4.7l2.4-.2.5-5.7c0 0 3-1 3.7-3.3-.8 4.5.7 3.7-.3 7.4 0 0 9.9 1.3 9.9 1.3.3-5.9 2.5-3.7 3.5-9.1 0 0 4.6 1.8 7 2.3 2.6.6 7.8-.4 7.8-.4l-1-2.5"/><path d="m60 26.6c-.3-1.8-1.8-2-2.9-1.9 0 0 0-.6-.7-.5l-1.4.2c-.6.1-.9.6-.8 1.1l.3 1.6c.4 2.3.4 2.3 3.7 1.8 2.1-.3 1.8-2 1.8-2.3"/></g><path d="m56.7 24.8c-.1.1-.2.2-.4.3-.2.1-.3.1-.5.1-.3 0-.6.1-.8.1-.2 0-.1.3.1.3.3-.1.6-.1.9-.1.2 0 .4-.1.6-.2.2-.1.3-.2.5-.4 0-.1-.2-.3-.4-.1" fill="#b58360"/><path d="m25.4 36.4c-.1-.5-.5-.8-1.1-.8l-1.6.1c-2.3.1-2.3.1-2.1 2.9.1 1.9 1.9 1.8 2.2 1.8 1.8-.1 2.1-1.3 2.1-2.3 0 0 .6-.1.6-.6l-.1-1.1" fill="#d6a57c"/><path d="m38.2 35c0 0 .2.6.6 1 3.6.6 7.5 1.6 8.2 3.2.4 1.1-1.3 4.7-1.6 6.2-.8 4.4-7.4-3-8.4-2.2-.7.5.7 2.3.3 2.7-1.1 1-6.6 2.7-8.6.3-.7-.8-.2-2.3-.6-2.8-3.5-3.2-1.2-5.4-.1-9.5-.1 0 1.6.7 10.2 1.1" fill="#ff71d0"/><g fill="#b58360"><path d="m23.5 28.8l.9 1.3-.2 2.4c-.1-1.4-.7-3.7-.7-3.7"/><ellipse cx="38.5" cy="27.6" rx=".5" ry=".4"/><ellipse cx="31.3" cy="26.6" rx=".5" ry=".4"/><path d="m28.2 25.1c0 0 .2 2.1 2.7 2.9-1.9-1.4-2.7-2.9-2.7-2.9"/><path d="m45.1 27.4c0 0 2 .9 4-.8-2.1.9-4 .8-4 .8"/></g><g fill="#8f4074"><path d="m36.6 44c0 1.8-1.6 3.2-3.5 3.2s-4 .1-4-1.7.9-4.7 4-4.8c1.9 0 3.5 1.5 3.5 3.3"/><path d="m45.4 42.9c0 1.8-1.2 5.2-2.3 2.1-.6-1.7 1.1-6 2.8-6 2.3 0-.5 2.2-.5 3.9"/></g><g fill="#d6a57c"><path d="m35.7 44.9c1.7-3.7-4.5-5.5-5.5-1.3-1.1 4.1-.9 6.1-1.1 8.3-.1 1.2-1.1 2-.9 2.4.6 1.5.6 3.7 1.2 4.1.6.5 3.9-.2 4-.7.2-1.2-1.9-2.6-1.3-5.4.4-2.3 2.5-4.9 3.6-7.4"/><path d="m51.3 42.5c0-.8-2.6-2.6-5.4-3.4-1.6.4-2.6 4-2.1 4.6.8 1 2.8 1.4 2.8 1.4-1.4 1.7.3 3.2-.3 6.1-.4 1.9-.3 3.5 1.1 4.5.6.5 4.3-.4 4.1-1.1-.6-1.4-2.3-2.6-2.3-3.8-.4-3 2.2-4.5 2.1-8.3"/></g><g fill="#6ceda9"><path d="m26.2 40.3c0 0 0 1.8 1.9 3.1 0 0 .1-3.8 3-4.9-.1 0-3.7-.3-4.9 1.8"/><path d="m27.4 35.4c0 0-.9 1.2-1.1 3.3 0 0 1.8-2.7 6.1-2.3 0 .1-2.7-1.9-5-1"/><path d="m39.6 36.1c0 0 1.6 0 3.2.7 0 0-3.2-.4-4.8.8 0 0 .1-1.6 1.6-1.5"/><path d="m43.6 37.1c0 0 1.5.4 2.4 1.1 0 0-3-.7-4.6.5.1 0 .7-1.7 2.2-1.6"/><path d="m38.4 35.5c-3.5.8-9-1.2-10.7-.9-.3.1 0-1.3.3-1.3 3.8 0 6.6 1.2 10 1 .3 0 .7 1.1.4 1.2"/></g><path d="m29.9 9.9l.7 1.7 14.8 1.7.8-1.6c.7-6-.4-8.7-7-9.5-6.6-.9-8.6 1.6-9.3 7.7" fill="#594640"/><path d="m45.6 11.6c-.1.3-.2.7-.3.8-.2.3-.6.5-.6.5s.2-.7.2-1.6c.3-5.5-.4-2.9-6.4-3.6-6.1-.7-6.1-3.4-7.1 2.1-.1.9-.1 1.6-.1 1.6s-.3-.2-.5-.6c-.1-.2-.1-.5-.1-.9-.6-.2-1.3-.2-1.5 1.5-.1 1 .2 1.9 1.4 2.2 0 3.5 4.4 6.3 6.4 6.6 2.1.2 6.9-1.5 7.8-4.9 1.3.1 1.8-.7 1.9-1.8.3-1.8-.5-2-1.1-1.9" fill="#d6a57c"/><g fill="#664e27"><circle cx="34.9" cy="12.1" r="1.3"/><circle cx="41.1" cy="12.9" r="1.3"/><path d="m39.6 16.6c-1.4.9-2.9.7-4.1-.5-.1-.1-.3.1-.2.3.3.8 1 1.5 2.1 1.6 1 .1 1.9-.4 2.4-1.1.1-.2-.1-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fe.svg
index 4bd733c..bf0fa36 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m43.617 2.945c-3.625.818-14.01 2.424-10.469 6.551 4.781 5.564 7.672 12.811 7.672 20.74 0 13.807-8.77 25.551-21.01 29.93 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764s-14.971-28.06-18.387-27.29"/><g fill="#428bc1"><path d="m47.03 3.563c4.04 5.334 5.982 11.371 5.982 18.592 0 13.734-8.674 25.432-20.816 29.863-3.398 3.619-7.623 6.447-12.383 8.148 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764 0-11.601-6.149-21.859-14.977-26.673"/><path d="m53.53 8.857c0 0-7.078-8.451-16.605-2.471-7.297 4.578-1.537 11.57 2.02 8.752 1.318-1.045-2.717-1.186-2.803-1.898-.168-1.424 2.197-.082 2.693-.688.584-.713-1.705-1.225-1.115-1.896.615-.701 1.977.529 2.416-.121.49-.723-.609-1.588.148-2.156.57-.43 1.547.545 2.732.08 1.514-.59-.076-2.746 2.461-2.57 4.604.32 8.06 2.968 8.06 2.968"/></g><path fill="#42ade2" d="m51.17 6.355c0 0-7.992-7.178-16.199-.645-7.607 6.06-1.719 13.375 2.256 10.117 1.473-1.207-3.039-1.369-3.133-2.195-.189-1.645 2.455-.094 3.01-.793.652-.824-1.906-1.416-1.248-2.191.689-.813 2.209.609 2.703-.141.547-.834-.682-1.834.164-2.492.639-.496 1.729.627 3.055.094 1.693-.682.105-1.93 2.752-2.973 3.115-1.226 6.64 1.219 6.64 1.219"/><path fill="#bbecff" d="m52.29 7.33c0 0-7.91-9.768-18.563-2.857-8.16 5.293-1.721 13.375 2.254 10.117 1.475-1.209-3.037-1.371-3.133-2.195-.188-1.646 2.457-.094 3.01-.793.652-.824-1.904-1.418-1.246-2.193.688-.811 2.209.611 2.701-.141.549-.832-.682-1.832.166-2.49.637-.498 1.729.627 3.055.094 1.691-.682-.086-3.176 2.75-2.973 5.147.369 9.01 3.431 9.01 3.431"/><path fill="#f15744" d="m45.47 55.682c-14.725 10.893-28.14 4.789-29.621 2.953-2.68-3.311 13.145-2.137 20.436-9.623 9.58-9.832 10.262-12.873 15.15-13.357 4.277-.426 5.066 11.868-5.961 20.03"/><g fill="#b47d56"><path d="m35.988 22.04l.506-.551c.266-.293.666-.391 1.018-.283.727-.688 1.871-1.404 3.215-.158.221.207 1.449 1.348.098 2.824-1.994 2.172-1.994 2.172-3.664.623l-1.125-1.043c-.401-.371-.423-1-.048-1.412"/><path d="m31.496 30.09l4.824-6.834 2.42 1.984-4.808 6.83z"/><path d="m23.73 31.826l8.172-2.238 2.03 2.482-8.588 2.403z"/><path d="m37.543 21.832c.195-.225.178-.563-.037-.75-.217-.189-.551-.16-.746.064l-.834.963.781.686.836-.963"/></g><path fill="#935e3e" d="m37.39 21.459c.008.168.01.291-.059.438-.061.141-.164.254-.264.369-.166.189-.332.379-.496.568-.129.145.096.34.223.195.17-.195.34-.389.51-.582.117-.135.229-.275.299-.439.084-.184.09-.375.082-.57-.006-.192-.301-.17-.295.021"/><g fill="#b47d56"><path d="m7.469 28.22l-.373-.648c-.197-.346-.566-.525-.934-.498-.559-.83-1.523-1.779-3.104-.855-.262.152-1.707.998-.705 2.736 1.479 2.555 1.479 2.555 3.441 1.406l1.324-.773c.472-.277.63-.888.351-1.368"/><path d="m11.32 37.686l-4.433-8.348-2.795 1.414 4.424 8.348z"/><path d="m17.256 32.469l-7.373 2.957-1.367 3.674 10.291-3.91z"/><path d="m5.996 27.682c-.141-.262-.053-.586.197-.725.254-.137.574-.037.717.227l.605 1.121-.912.496-.607-1.119"/></g><path fill="#935e3e" d="m6.227 27.35c-.043.164-.072.281-.037.439.029.15.104.285.178.418.121.221.242.441.361.662.094.17-.166.313-.26.143-.123-.227-.248-.453-.371-.678-.086-.158-.166-.318-.199-.494-.041-.199-.006-.385.045-.576.044-.184.329-.1.283.086"/><g fill="#b47d56"><path d="m27.514 38.3c0 0-.045 2.898-2.541 5.406-2.5 2.516-6.07 2.248-6.07 2.248s-4.135-12.258-1.65-13.484c1.953-.965 10.02-.738 9.641 0-1.492 2.929.616 5.83.616 5.83"/><path d="m41.967 46.03c1.031-1.037 2.771-.965 3.887.158l.01.01-5.246 5.27-2.031-2.041 3.38-3.397"/><path d="m37.18 51.758c1.031-1.037 2.771-.965 3.889.158l.008.008-5.246 5.271-2.031-2.041 3.38-3.396"/><path d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281 2.654-.324 4.432 4.453 3.375-3.389c0 0-4.359-4.381-5.594-5.621-.962-.967-2.235-1.326-4.249-1.049"/></g><path fill="#3e4347" d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281c-.001 0-1.349-3.438.618-5.93"/><path fill="#b47d56" d="m27.361 45.06l-3.135.447 2.514 5.482 2.656-.324 4.432 4.453 3.375-3.391c0 0-4.359-4.379-5.594-5.619-.961-.967-2.234-1.325-4.248-1.048"/><path fill="#3e4347" d="m27.361 45.06l.158-6.764c0 0-1.621 2.453-8.611 7.654 0 0 .656 5.305 5.547 5.32.576.002 2.285-.281 2.285-.281s-1.345-3.436.621-5.929"/><path fill="#b47d56" d="m23.822 31.26v-1.211h-3.422v1.211c0 .67-.533 1.209-1.191 1.209h5.805c-.657 0-1.192-.539-1.192-1.209"/><path fill="#231f20" d="m12.08 15.764c0 1.813 0 7.354 0 7.354h20.06c0 0 0-5.541 0-7.354 0-9.51-20.06-9.51-20.06 0"/><path fill="#b47d56" d="m11.398 21.855c0-3.293 2.412-1.621 2.412-1.621.439-8.654 2.754-3.979 8.299-3.979 5.551 0 7.865-4.676 8.309 3.979 0 0 2.406-1.672 2.406 1.621 0 1.262-.459 2.293-2.02 2.4-.656 5.096-3.922 6.146-8.699 6.146-4.773 0-8.04-1.051-8.693-6.146-1.555-.107-2.02-1.138-2.02-2.4"/><g fill="#47352d"><path d="m18.1 25.24c0 1.48 1.797 2.723 4.02 2.723s4.02-1.242 4.02-2.723c0 0-2.137.131-4.02.131-1.88 0-4.02-.131-4.02-.131"/><path d="m26.04 21.17c0 .75.602 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.736 0-1.338.605-1.338 1.359"/><path d="m18.295 21.17c0 .75.598 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.74 0-1.338.605-1.338 1.359"/></g><path fill="#935e3e" d="m22.615 22.738c0 .502.398.906.893.906s.892-.404.892-.906h-1.785"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,62H2v-9c38-5.8,60-25,60-25V62z" fill="#75d6ff"/><path d="m18.9 60.9c-2.5-.1-13.3-.4-13.3-2.4 0-.8 3.6-2.4 8.1-3.6 19.9-5.4 39.5-5.7 39.5-4.5 0 .6-.8 1.6 0 2.3 2.2 2 5 2 5 2.1 0 2.2-16.7 7.2-39.3 6.1" fill="#7924a6"/><path d="m53.2 52.7c-.4-.4-.4-.8-.3-1.3-5.6.7-36.2 4.8-46 5.9-.9.5-1.4.9-1.4 1.2 0 .4.4.7 1 .9l48.8-5.4c-.7-.3-1.4-.7-2.1-1.3" fill="#b86acb"/><g fill="#b47d56"><path d="m54.9 25.8c-2.2.7-4.1-.3-5.4.1-.3-.7-2.2-1.8-4.6-2.5 0 0-1.5-1.8-3.5-2.1-2-.3-2.8.2-2.6-2.4l-3.3-.7c-.7 2.4-2.9 1.9-4.2 1.8-3.4-.2-5 1.4-5.8 3.9-1 .8-1.9 1.8-2.7 3.1-.8 1.2-1.4 2-1.4 4.3 0 1.7 0 4.7 0 4.7l2.4-.2.5-5.7c0 0 3-1 3.7-3.3-.8 4.5.7 3.7-.3 7.4 0 0 9.9 1.3 9.9 1.3.3-5.9 2.5-3.7 3.5-9.1 0 0 4.6 1.8 7 2.3 2.6.6 7.8-.4 7.8-.4l-1-2.5"/><path d="m60 26.6c-.3-1.8-1.8-2-2.9-1.9 0 0 0-.6-.7-.5l-1.4.2c-.6.1-.9.6-.8 1.1l.3 1.6c.4 2.3.4 2.3 3.7 1.8 2.1-.3 1.8-2 1.8-2.3"/></g><path d="m56.7 24.8c-.1.1-.2.2-.4.3-.2.1-.3.1-.5.1-.3 0-.6.1-.8.1-.2 0-.1.3.1.3.3-.1.6-.1.9-.1.2 0 .4-.1.6-.2.2-.1.3-.2.5-.4 0-.1-.2-.3-.4-.1" fill="#935e3e"/><path d="m25.4 36.4c-.1-.5-.5-.8-1.1-.8l-1.6.1c-2.3.1-2.3.1-2.1 2.9.1 1.9 1.9 1.8 2.2 1.8 1.8-.1 2.1-1.3 2.1-2.3 0 0 .6-.1.6-.6l-.1-1.1" fill="#b47d56"/><path d="m38.2 35c0 0 .2.6.6 1 3.6.6 7.5 1.6 8.2 3.2.4 1.1-1.3 4.7-1.6 6.2-.8 4.4-7.4-3-8.4-2.2-.7.5.7 2.3.3 2.7-1.1 1-6.6 2.7-8.6.3-.7-.8-.2-2.3-.6-2.8-3.5-3.2-1.2-5.4-.1-9.5-.1 0 1.6.7 10.2 1.1" fill="#ff71d0"/><g fill="#935e3e"><path d="m23.5 28.8l.9 1.3-.2 2.4c-.1-1.4-.7-3.7-.7-3.7"/><ellipse cx="38.5" cy="27.6" rx=".5" ry=".4"/><ellipse cx="31.3" cy="26.6" rx=".5" ry=".4"/><path d="m28.2 25.1c0 0 .2 2.1 2.7 2.9-1.9-1.4-2.7-2.9-2.7-2.9"/><path d="m45.1 27.4c0 0 2 .9 4-.8-2.1.9-4 .8-4 .8"/></g><g fill="#8f4074"><path d="m36.6 44c0 1.8-1.6 3.2-3.5 3.2s-4 .1-4-1.7.9-4.7 4-4.8c1.9 0 3.5 1.5 3.5 3.3"/><path d="m45.4 42.9c0 1.8-1.2 5.2-2.3 2.1-.6-1.7 1.1-6 2.8-6 2.3 0-.5 2.2-.5 3.9"/></g><g fill="#b47d56"><path d="m35.7 44.9c1.7-3.7-4.5-5.5-5.5-1.3-1.1 4.1-.9 6.1-1.1 8.3-.1 1.2-1.1 2-.9 2.4.6 1.5.6 3.7 1.2 4.1.6.5 3.9-.2 4-.7.2-1.2-1.9-2.6-1.3-5.4.4-2.3 2.5-4.9 3.6-7.4"/><path d="m51.3 42.5c0-.8-2.6-2.6-5.4-3.4-1.6.4-2.6 4-2.1 4.6.8 1 2.8 1.4 2.8 1.4-1.4 1.7.3 3.2-.3 6.1-.4 1.9-.3 3.5 1.1 4.5.6.5 4.3-.4 4.1-1.1-.6-1.4-2.3-2.6-2.3-3.8-.4-3 2.2-4.5 2.1-8.3"/></g><g fill="#6ceda9"><path d="m26.2 40.3c0 0 0 1.8 1.9 3.1 0 0 .1-3.8 3-4.9-.1 0-3.7-.3-4.9 1.8"/><path d="m27.4 35.4c0 0-.9 1.2-1.1 3.3 0 0 1.8-2.7 6.1-2.3 0 .1-2.7-1.9-5-1"/><path d="m39.6 36.1c0 0 1.6 0 3.2.7 0 0-3.2-.4-4.8.8 0 0 .1-1.6 1.6-1.5"/><path d="m43.6 37.1c0 0 1.5.4 2.4 1.1 0 0-3-.7-4.6.5.1 0 .7-1.7 2.2-1.6"/><path d="m38.4 35.5c-3.5.8-9-1.2-10.7-.9-.3.1 0-1.3.3-1.3 3.8 0 6.6 1.2 10 1 .3 0 .7 1.1.4 1.2"/></g><path d="m29.9 9.9l.7 1.7 14.8 1.7.8-1.6c.7-6-.4-8.7-7-9.5-6.6-.9-8.6 1.6-9.3 7.7" fill="#231f20"/><path d="m45.6 11.6c-.1.3-.2.7-.3.8-.2.3-.6.5-.6.5s.2-.7.2-1.6c.3-5.5-.4-2.9-6.4-3.6-6.1-.7-6.1-3.4-7.1 2.1-.1.9-.1 1.6-.1 1.6s-.3-.2-.5-.6c-.1-.2-.1-.5-.1-.9-.6-.2-1.3-.2-1.5 1.5-.1 1 .2 1.9 1.4 2.2 0 3.5 4.4 6.3 6.4 6.6 2.1.2 6.9-1.5 7.8-4.9 1.3.1 1.8-.7 1.9-1.8.3-1.8-.5-2-1.1-1.9" fill="#b47d56"/><g fill="#664e27"><circle cx="34.9" cy="12.1" r="1.3"/><circle cx="41.1" cy="12.9" r="1.3"/><path d="m39.6 16.6c-1.4.9-2.9.7-4.1-.5-.1-.1-.3.1-.2.3.3.8 1 1.5 2.1 1.6 1 .1 1.9-.4 2.4-1.1.1-.2-.1-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3ff.svg
index 43c090c..294226d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c4-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m43.617 2.945c-3.625.818-14.01 2.424-10.469 6.551 4.781 5.564 7.672 12.811 7.672 20.74 0 13.807-8.77 25.551-21.01 29.93 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764s-14.971-28.06-18.387-27.29"/><g fill="#428bc1"><path d="m47.03 3.563c4.04 5.334 5.982 11.371 5.982 18.592 0 13.734-8.674 25.432-20.816 29.863-3.398 3.619-7.623 6.447-12.383 8.148 3.309 1.184 6.876 1.834 10.59 1.834 17.455 0 31.604-14.221 31.604-31.764 0-11.601-6.149-21.859-14.977-26.673"/><path d="m53.53 8.857c0 0-7.078-8.451-16.605-2.471-7.297 4.578-1.537 11.57 2.02 8.752 1.318-1.045-2.717-1.186-2.803-1.898-.168-1.424 2.197-.082 2.693-.688.584-.713-1.705-1.225-1.115-1.896.615-.701 1.977.529 2.416-.121.49-.723-.609-1.588.148-2.156.57-.43 1.547.545 2.732.08 1.514-.59-.076-2.746 2.461-2.57 4.604.32 8.06 2.968 8.06 2.968"/></g><path fill="#42ade2" d="m51.17 6.355c0 0-7.992-7.178-16.199-.645-7.607 6.06-1.719 13.375 2.256 10.117 1.473-1.207-3.039-1.369-3.133-2.195-.189-1.645 2.455-.094 3.01-.793.652-.824-1.906-1.416-1.248-2.191.689-.813 2.209.609 2.703-.141.547-.834-.682-1.834.164-2.492.639-.496 1.729.627 3.055.094 1.693-.682.105-1.93 2.752-2.973 3.115-1.226 6.64 1.219 6.64 1.219"/><path fill="#bbecff" d="m52.29 7.33c0 0-7.91-9.768-18.563-2.857-8.16 5.293-1.721 13.375 2.254 10.117 1.475-1.209-3.037-1.371-3.133-2.195-.188-1.646 2.457-.094 3.01-.793.652-.824-1.904-1.418-1.246-2.193.688-.811 2.209.611 2.701-.141.549-.832-.682-1.832.166-2.49.637-.498 1.729.627 3.055.094 1.691-.682-.086-3.176 2.75-2.973 5.147.369 9.01 3.431 9.01 3.431"/><path fill="#f15744" d="m45.47 55.682c-14.725 10.893-28.14 4.789-29.621 2.953-2.68-3.311 13.145-2.137 20.436-9.623 9.58-9.832 10.262-12.873 15.15-13.357 4.277-.426 5.066 11.868-5.961 20.03"/><g fill="#8a6859"><path d="m35.988 22.04l.506-.551c.266-.293.666-.391 1.018-.283.727-.688 1.871-1.404 3.215-.158.221.207 1.449 1.348.098 2.824-1.994 2.172-1.994 2.172-3.664.623l-1.125-1.043c-.401-.371-.423-1-.048-1.412"/><path d="m31.496 30.09l4.824-6.834 2.42 1.984-4.808 6.83z"/><path d="m23.73 31.826l8.172-2.238 2.03 2.482-8.588 2.403z"/><path d="m37.543 21.832c.195-.225.178-.563-.037-.75-.217-.189-.551-.16-.746.064l-.834.963.781.686.836-.963"/></g><path fill="#705041" d="m37.39 21.459c.008.168.01.291-.059.438-.061.141-.164.254-.264.369-.166.189-.332.379-.496.568-.129.145.096.34.223.195.17-.195.34-.389.51-.582.117-.135.229-.275.299-.439.084-.184.09-.375.082-.57-.006-.192-.301-.17-.295.021"/><g fill="#8a6859"><path d="m7.469 28.22l-.373-.648c-.197-.346-.566-.525-.934-.498-.559-.83-1.523-1.779-3.104-.855-.262.152-1.707.998-.705 2.736 1.479 2.555 1.479 2.555 3.441 1.406l1.324-.773c.472-.277.63-.888.351-1.368"/><path d="m11.32 37.686l-4.433-8.348-2.795 1.414 4.424 8.348z"/><path d="m17.256 32.469l-7.373 2.957-1.367 3.674 10.291-3.91z"/><path d="m5.996 27.682c-.141-.262-.053-.586.197-.725.254-.137.574-.037.717.227l.605 1.121-.912.496-.607-1.119"/></g><path fill="#705041" d="m6.227 27.35c-.043.164-.072.281-.037.439.029.15.104.285.178.418.121.221.242.441.361.662.094.17-.166.313-.26.143-.123-.227-.248-.453-.371-.678-.086-.158-.166-.318-.199-.494-.041-.199-.006-.385.045-.576.044-.184.329-.1.283.086"/><g fill="#8a6859"><path d="m27.514 38.3c0 0-.045 2.898-2.541 5.406-2.5 2.516-6.07 2.248-6.07 2.248s-4.135-12.258-1.65-13.484c1.953-.965 10.02-.738 9.641 0-1.492 2.929.616 5.83.616 5.83"/><path d="m41.967 46.03c1.031-1.037 2.771-.965 3.887.158l.01.01-5.246 5.27-2.031-2.041 3.38-3.397"/><path d="m37.18 51.758c1.031-1.037 2.771-.965 3.889.158l.008.008-5.246 5.271-2.031-2.041 3.38-3.396"/><path d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281 2.654-.324 4.432 4.453 3.375-3.389c0 0-4.359-4.381-5.594-5.621-.962-.967-2.235-1.326-4.249-1.049"/></g><path fill="#3e4347" d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281c-.001 0-1.349-3.438.618-5.93"/><path fill="#8a6859" d="m27.361 45.06l-3.135.447 2.514 5.482 2.656-.324 4.432 4.453 3.375-3.391c0 0-4.359-4.379-5.594-5.619-.961-.967-2.234-1.325-4.248-1.048"/><path fill="#3e4347" d="m27.361 45.06l.158-6.764c0 0-1.621 2.453-8.611 7.654 0 0 .656 5.305 5.547 5.32.576.002 2.285-.281 2.285-.281s-1.345-3.436.621-5.929"/><path fill="#8a6859" d="m23.822 31.26v-1.211h-3.422v1.211c0 .67-.533 1.209-1.191 1.209h5.805c-.657 0-1.192-.539-1.192-1.209"/><path fill="#231f20" d="m12.08 15.764c0 1.813 0 7.354 0 7.354h20.06c0 0 0-5.541 0-7.354 0-9.51-20.06-9.51-20.06 0"/><path fill="#8a6859" d="m11.398 21.855c0-3.293 2.412-1.621 2.412-1.621.439-8.654 2.754-3.979 8.299-3.979 5.551 0 7.865-4.676 8.309 3.979 0 0 2.406-1.672 2.406 1.621 0 1.262-.459 2.293-2.02 2.4-.656 5.096-3.922 6.146-8.699 6.146-4.773 0-8.04-1.051-8.693-6.146-1.555-.107-2.02-1.138-2.02-2.4"/><g fill="#47352d"><path d="m18.1 25.24c0 1.48 1.797 2.723 4.02 2.723s4.02-1.242 4.02-2.723c0 0-2.137.131-4.02.131-1.88 0-4.02-.131-4.02-.131"/><path d="m26.04 21.17c0 .75.602 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.736 0-1.338.605-1.338 1.359"/><path d="m18.295 21.17c0 .75.598 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.74 0-1.338.605-1.338 1.359"/></g><path fill="#705041" d="m22.615 22.738c0 .502.398.906.893.906s.892-.404.892-.906h-1.785"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,62H2v-9c38-5.8,60-25,60-25V62z" fill="#75d6ff"/><path d="m18.9 60.9c-2.5-.1-13.3-.4-13.3-2.4 0-.8 3.6-2.4 8.1-3.6 19.9-5.4 39.5-5.7 39.5-4.5 0 .6-.8 1.6 0 2.3 2.2 2 5 2 5 2.1 0 2.2-16.7 7.2-39.3 6.1" fill="#7924a6"/><path d="m53.2 52.7c-.4-.4-.4-.8-.3-1.3-5.6.7-36.2 4.8-46 5.9-.9.5-1.4.9-1.4 1.2 0 .4.4.7 1 .9l48.8-5.4c-.7-.3-1.4-.7-2.1-1.3" fill="#b86acb"/><g fill="#8a6859"><path d="m54.9 25.8c-2.2.7-4.1-.3-5.4.1-.3-.7-2.2-1.8-4.6-2.5 0 0-1.5-1.8-3.5-2.1-2-.3-2.8.2-2.6-2.4l-3.3-.7c-.7 2.4-2.9 1.9-4.2 1.8-3.4-.2-5 1.4-5.8 3.9-1 .8-1.9 1.8-2.7 3.1-.8 1.2-1.4 2-1.4 4.3 0 1.7 0 4.7 0 4.7l2.4-.2.5-5.7c0 0 3-1 3.7-3.3-.8 4.5.7 3.7-.3 7.4 0 0 9.9 1.3 9.9 1.3.3-5.9 2.5-3.7 3.5-9.1 0 0 4.6 1.8 7 2.3 2.6.6 7.8-.4 7.8-.4l-1-2.5"/><path d="m60 26.6c-.3-1.8-1.8-2-2.9-1.9 0 0 0-.6-.7-.5l-1.4.2c-.6.1-.9.6-.8 1.1l.3 1.6c.4 2.3.4 2.3 3.7 1.8 2.1-.3 1.8-2 1.8-2.3"/></g><path d="m56.7 24.8c-.1.1-.2.2-.4.3-.2.1-.3.1-.5.1-.3 0-.6.1-.8.1-.2 0-.1.3.1.3.3-.1.6-.1.9-.1.2 0 .4-.1.6-.2.2-.1.3-.2.5-.4 0-.1-.2-.3-.4-.1" fill="#705041"/><path d="m25.4 36.4c-.1-.5-.5-.8-1.1-.8l-1.6.1c-2.3.1-2.3.1-2.1 2.9.1 1.9 1.9 1.8 2.2 1.8 1.8-.1 2.1-1.3 2.1-2.3 0 0 .6-.1.6-.6l-.1-1.1" fill="#8a6859"/><path d="m38.2 35c0 0 .2.6.6 1 3.6.6 7.5 1.6 8.2 3.2.4 1.1-1.3 4.7-1.6 6.2-.8 4.4-7.4-3-8.4-2.2-.7.5.7 2.3.3 2.7-1.1 1-6.6 2.7-8.6.3-.7-.8-.2-2.3-.6-2.8-3.5-3.2-1.2-5.4-.1-9.5-.1 0 1.6.7 10.2 1.1" fill="#ff71d0"/><g fill="#705041"><path d="m23.5 28.8l.9 1.3-.2 2.4c-.1-1.4-.7-3.7-.7-3.7"/><ellipse cx="38.5" cy="27.6" rx=".5" ry=".4"/><ellipse cx="31.3" cy="26.6" rx=".5" ry=".4"/><path d="m28.2 25.1c0 0 .2 2.1 2.7 2.9-1.9-1.4-2.7-2.9-2.7-2.9"/><path d="m45.1 27.4c0 0 2 .9 4-.8-2.1.9-4 .8-4 .8"/></g><g fill="#8f4074"><path d="m36.6 44c0 1.8-1.6 3.2-3.5 3.2s-4 .1-4-1.7.9-4.7 4-4.8c1.9 0 3.5 1.5 3.5 3.3"/><path d="m45.4 42.9c0 1.8-1.2 5.2-2.3 2.1-.6-1.7 1.1-6 2.8-6 2.3 0-.5 2.2-.5 3.9"/></g><g fill="#8a6859"><path d="m35.7 44.9c1.7-3.7-4.5-5.5-5.5-1.3-1.1 4.1-.9 6.1-1.1 8.3-.1 1.2-1.1 2-.9 2.4.6 1.5.6 3.7 1.2 4.1.6.5 3.9-.2 4-.7.2-1.2-1.9-2.6-1.3-5.4.4-2.3 2.5-4.9 3.6-7.4"/><path d="m51.3 42.5c0-.8-2.6-2.6-5.4-3.4-1.6.4-2.6 4-2.1 4.6.8 1 2.8 1.4 2.8 1.4-1.4 1.7.3 3.2-.3 6.1-.4 1.9-.3 3.5 1.1 4.5.6.5 4.3-.4 4.1-1.1-.6-1.4-2.3-2.6-2.3-3.8-.4-3 2.2-4.5 2.1-8.3"/></g><g fill="#6ceda9"><path d="m26.2 40.3c0 0 0 1.8 1.9 3.1 0 0 .1-3.8 3-4.9-.1 0-3.7-.3-4.9 1.8"/><path d="m27.4 35.4c0 0-.9 1.2-1.1 3.3 0 0 1.8-2.7 6.1-2.3 0 .1-2.7-1.9-5-1"/><path d="m39.6 36.1c0 0 1.6 0 3.2.7 0 0-3.2-.4-4.8.8 0 0 .1-1.6 1.6-1.5"/><path d="m43.6 37.1c0 0 1.5.4 2.4 1.1 0 0-3-.7-4.6.5.1 0 .7-1.7 2.2-1.6"/><path d="m38.4 35.5c-3.5.8-9-1.2-10.7-.9-.3.1 0-1.3.3-1.3 3.8 0 6.6 1.2 10 1 .3 0 .7 1.1.4 1.2"/></g><path d="m29.9 9.9l.7 1.7 14.8 1.7.8-1.6c.7-6-.4-8.7-7-9.5-6.6-.9-8.6 1.6-9.3 7.7" fill="#231f20"/><path d="m45.6 11.6c-.1.3-.2.7-.3.8-.2.3-.6.5-.6.5s.2-.7.2-1.6c.3-5.5-.4-2.9-6.4-3.6-6.1-.7-6.1-3.4-7.1 2.1-.1.9-.1 1.6-.1 1.6s-.3-.2-.5-.6c-.1-.2-.1-.5-.1-.9-.6-.2-1.3-.2-1.5 1.5-.1 1 .2 1.9 1.4 2.2 0 3.5 4.4 6.3 6.4 6.6 2.1.2 6.9-1.5 7.8-4.9 1.3.1 1.8-.7 1.9-1.8.3-1.8-.5-2-1.1-1.9" fill="#8a6859"/><g fill="#574137"><circle cx="34.9" cy="12.1" r="1.3"/><circle cx="41.1" cy="12.9" r="1.3"/><path d="m39.6 16.6c-1.4.9-2.9.7-4.1-.5-.1-.1-.3.1-.2.3.3.8 1 1.5 2.1 1.6 1 .1 1.9-.4 2.4-1.1.1-.2-.1-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c4.svg
index 0234549..53b845c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c4.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M43.613,2.945c-3.625,0.818-14.012,2.424-10.469,6.551c4.781,5.564,7.672,12.811,7.672,20.74
- c0,13.807-8.77,25.551-21.01,29.93C23.115,61.35,26.681,62,30.396,62C47.852,62,62,47.779,62,30.236S47.029,2.174,43.613,2.945z"/><g fill="#428bc1"><path d="m47.02 3.563c4.04 5.334 5.982 11.371 5.982 18.592 0 13.734-8.674 25.432-20.817 29.863-3.398 3.619-7.623 6.447-12.383 8.148 3.31 1.184 6.876 1.834 10.591 1.834 17.456 0 31.604-14.221 31.604-31.764 0-11.601-6.148-21.859-14.977-26.673"/><path d="m53.53 8.857c0 0-7.078-8.451-16.605-2.471-7.297 4.578-1.537 11.57 2.02 8.752 1.318-1.045-2.717-1.186-2.803-1.898-.168-1.424 2.197-.082 2.693-.688.584-.713-1.705-1.225-1.115-1.896.615-.701 1.977.529 2.416-.121.49-.723-.609-1.588.148-2.156.57-.43 1.547.545 2.732.08 1.514-.59-.076-2.746 2.461-2.57 4.604.32 8.05 2.968 8.05 2.968"/></g><path fill="#42ade2" d="m51.16 6.355c0 0-7.992-7.178-16.199-.645-7.608 6.06-1.719 13.375 2.256 10.117 1.473-1.207-3.039-1.369-3.133-2.195-.189-1.645 2.455-.094 3.01-.793.652-.824-1.906-1.416-1.248-2.191.689-.813 2.209.609 2.703-.141.547-.834-.682-1.834.164-2.492.639-.496 1.729.627 3.055.094 1.693-.682.105-1.93 2.752-2.973 3.115-1.226 6.64 1.219 6.64 1.219"/><path fill="#bbecff" d="m52.29 7.33c0 0-7.91-9.768-18.563-2.857-8.161 5.293-1.721 13.375 2.254 10.117 1.475-1.209-3.038-1.371-3.133-2.195-.188-1.646 2.458-.094 3.01-.793.652-.824-1.904-1.418-1.246-2.193.688-.811 2.209.611 2.701-.141.549-.832-.682-1.832.166-2.49.637-.498 1.729.627 3.055.094 1.691-.682-.086-3.176 2.75-2.973 5.147.369 9.01 3.431 9.01 3.431"/><path fill="#f15744" d="m45.47 55.682c-14.725 10.893-28.14 4.789-29.622 2.953-2.68-3.311 13.145-2.137 20.436-9.623 9.58-9.832 10.262-12.873 15.15-13.357 4.278-.426 5.067 11.868-5.96 20.03"/><g fill="#ffdd67"><path d="m35.984 22.04l.506-.551c.266-.293.666-.391 1.018-.283.727-.688 1.871-1.404 3.215-.158.221.207 1.449 1.348.098 2.824-1.994 2.172-1.994 2.172-3.664.623l-1.125-1.043c-.401-.371-.423-1-.048-1.412"/><path d="m31.492 30.09l4.818-6.834 2.426 1.984-4.808 6.83z"/><path d="m23.726 31.826l8.172-2.238 2.03 2.482-8.589 2.403z"/><path d="m37.539 21.832c.195-.225.178-.563-.037-.75-.217-.189-.551-.16-.746.064l-.834.963.781.686.836-.963"/></g><path fill="#eba352" d="m37.39 21.459c.008.168.01.291-.059.438-.061.141-.164.254-.264.369-.166.189-.332.379-.496.568-.129.145.096.34.223.195.17-.195.34-.389.51-.582.117-.135.229-.275.299-.439.084-.184.09-.375.082-.57-.006-.192-.301-.17-.295.021"/><g fill="#ffdd67"><path d="m7.464 28.22l-.373-.648c-.197-.346-.566-.525-.934-.498-.559-.83-1.523-1.779-3.104-.855-.262.152-1.707.998-.705 2.736 1.479 2.555 1.479 2.555 3.441 1.406l1.324-.773c.472-.277.631-.888.351-1.368"/><path d="m11.316 37.686l-4.434-8.348-2.795 1.414 4.424 8.348z"/><path d="m17.251 32.469l-7.373 2.957-1.367 3.674 10.291-3.91z"/><path d="m5.992 27.682c-.141-.262-.053-.586.197-.725.254-.137.574-.037.717.227l.605 1.121-.912.496-.607-1.119"/></g><path fill="#eba352" d="m6.222 27.35c-.043.164-.072.281-.037.439.029.15.104.285.178.418.121.221.242.441.361.662.094.17-.166.313-.26.143-.123-.227-.248-.453-.371-.678-.086-.158-.166-.318-.199-.494-.041-.199-.006-.385.045-.576.045-.184.33-.1.283.086"/><g fill="#ffdd67"><path d="m27.509 38.3c0 0-.045 2.898-2.541 5.406-2.5 2.516-6.07 2.248-6.07 2.248s-4.135-12.258-1.65-13.484c1.953-.965 10.02-.738 9.641 0-1.491 2.929.616 5.83.616 5.83"/><path d="m41.963 46.03c1.031-1.037 2.771-.965 3.887.158l.01.01-5.246 5.27-2.031-2.041 3.38-3.397"/><path d="m37.17 51.758c1.031-1.037 2.771-.965 3.889.158l.008.008-5.246 5.271-2.031-2.041 3.38-3.396"/><path d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281 2.655-.324 4.432 4.453 3.375-3.389c0 0-4.359-4.381-5.594-5.621-.963-.967-2.236-1.326-4.25-1.049"/></g><path fill="#3e4347" d="m32.12 39.36l-3.137.447.02-.02-1.484-1.49c0 0-1.459 2.324-5.03 5.91l3.455 3.473c.648-.652 3.268-2.109 3.268-2.109l2.287-.281c-.001 0-1.349-3.438.618-5.93"/><path fill="#ffdd67" d="m27.357 45.06l-3.135.447 2.514 5.482 2.656-.324 4.432 4.453 3.375-3.391c0 0-4.36-4.379-5.594-5.619-.961-.967-2.234-1.325-4.248-1.048"/><path fill="#3e4347" d="m27.357 45.06l.158-6.764c0 0-1.621 2.453-8.611 7.654 0 0 .656 5.305 5.547 5.32.576.002 2.285-.281 2.285-.281s-1.346-3.436.621-5.929"/><path fill="#ffdd67" d="m23.818 31.26v-1.211h-3.422v1.211c0 .67-.533 1.209-1.191 1.209h5.805c-.657 0-1.192-.539-1.192-1.209"/><path fill="#231f20" d="m12.08 15.764c0 1.813 0 7.354 0 7.354h20.06c0 0 0-5.541 0-7.354-.001-9.51-20.06-9.51-20.06 0"/><path fill="#ffdd67" d="m11.394 21.855c0-3.293 2.412-1.621 2.412-1.621.439-8.654 2.754-3.979 8.299-3.979 5.551 0 7.865-4.676 8.309 3.979 0 0 2.406-1.672 2.406 1.621 0 1.262-.459 2.293-2.02 2.4-.656 5.096-3.922 6.146-8.699 6.146-4.773 0-8.04-1.051-8.693-6.146-1.555-.107-2.02-1.138-2.02-2.4"/><g fill="#574137"><path d="m18.09 25.24c0 1.48 1.797 2.723 4.02 2.723s4.02-1.242 4.02-2.723c0 0-2.137.131-4.02.131-1.879 0-4.02-.131-4.02-.131"/><path d="m26.04 21.17c0 .75.602 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.737 0-1.338.605-1.338 1.359"/><path d="m18.291 21.17c0 .75.598 1.363 1.338 1.363.738 0 1.34-.613 1.34-1.363 0-.754-.602-1.359-1.34-1.359-.741 0-1.338.605-1.338 1.359"/></g><path fill="#eba352" d="m22.611 22.738c0 .502.398.906.893.906s.893-.404.893-.906h-1.786"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,62H2v-9c38-5.8,60-25,60-25V62z" fill="#75d6ff"/><path d="m18.9 60.9c-2.5-.1-13.3-.4-13.3-2.4 0-.8 3.6-2.4 8.1-3.6 19.9-5.4 39.5-5.7 39.5-4.5 0 .6-.8 1.6 0 2.3 2.2 2 5 2 5 2.1 0 2.2-16.7 7.2-39.3 6.1" fill="#7924a6"/><path d="m53.2 52.7c-.4-.4-.4-.8-.3-1.3-5.6.7-36.2 4.8-46 5.9-.9.5-1.4.9-1.4 1.2 0 .4.4.7 1 .9l48.8-5.4c-.7-.3-1.4-.7-2.1-1.3" fill="#b86acb"/><g fill="#ffdd67"><path d="m54.9 25.8c-2.2.7-4.1-.3-5.4.1-.3-.7-2.2-1.8-4.6-2.5 0 0-1.5-1.8-3.5-2.1-2-.3-2.8.2-2.6-2.4l-3.3-.7c-.7 2.4-2.9 1.9-4.2 1.8-3.4-.2-5 1.4-5.8 3.9-1 .8-1.9 1.8-2.7 3.1-.8 1.2-1.4 2-1.4 4.3 0 1.7 0 4.7 0 4.7l2.4-.2.5-5.7c0 0 3-1 3.7-3.3-.8 4.5.7 3.7-.3 7.4 0 0 9.9 1.3 9.9 1.3.3-5.9 2.5-3.7 3.5-9.1 0 0 4.6 1.8 7 2.3 2.6.6 7.8-.4 7.8-.4l-1-2.5"/><path d="m60 26.6c-.3-1.8-1.8-2-2.9-1.9 0 0 0-.6-.7-.5l-1.4.2c-.6.1-.9.6-.8 1.1l.3 1.6c.4 2.3.4 2.3 3.7 1.8 2.1-.3 1.8-2 1.8-2.3"/></g><path d="m56.7 24.8c-.1.1-.2.2-.4.3-.2.1-.3.1-.5.1-.3 0-.6.1-.8.1-.2 0-.1.3.1.3.3-.1.6-.1.9-.1.2 0 .4-.1.6-.2.2-.1.3-.2.5-.4 0-.1-.2-.3-.4-.1" fill="#eba352"/><path d="m25.4 36.4c-.1-.5-.5-.8-1.1-.8l-1.6.1c-2.3.1-2.3.1-2.1 2.9.1 1.9 1.9 1.8 2.2 1.8 1.8-.1 2.1-1.3 2.1-2.3 0 0 .6-.1.6-.6l-.1-1.1" fill="#ffdd67"/><path d="m38.2 35c0 0 .2.6.6 1 3.6.6 7.5 1.6 8.2 3.2.4 1.1-1.3 4.7-1.6 6.2-.8 4.4-7.4-3-8.4-2.2-.7.5.7 2.3.3 2.7-1.1 1-6.6 2.7-8.6.3-.7-.8-.2-2.3-.6-2.8-3.5-3.2-1.2-5.4-.1-9.5-.1 0 1.6.7 10.2 1.1" fill="#ff71d0"/><g fill="#eba352"><path d="m23.5 28.8l.9 1.3-.2 2.4c-.1-1.4-.7-3.7-.7-3.7"/><ellipse cx="38.5" cy="27.6" rx=".5" ry=".4"/><ellipse cx="31.3" cy="26.6" rx=".5" ry=".4"/><path d="m28.2 25.1c0 0 .2 2.1 2.7 2.9-1.9-1.4-2.7-2.9-2.7-2.9"/><path d="m45.1 27.4c0 0 2 .9 4-.8-2.1.9-4 .8-4 .8"/></g><g fill="#8f4074"><path d="m36.6 44c0 1.8-1.6 3.2-3.5 3.2s-4 .1-4-1.7.9-4.7 4-4.8c1.9 0 3.5 1.5 3.5 3.3"/><path d="m45.4 42.9c0 1.8-1.2 5.2-2.3 2.1-.6-1.7 1.1-6 2.8-6 2.3 0-.5 2.2-.5 3.9"/></g><g fill="#ffdd67"><path d="m35.7 44.9c1.7-3.7-4.5-5.5-5.5-1.3-1.1 4.1-.9 6.1-1.1 8.3-.1 1.2-1.1 2-.9 2.4.6 1.5.6 3.7 1.2 4.1.6.5 3.9-.2 4-.7.2-1.2-1.9-2.6-1.3-5.4.4-2.3 2.5-4.9 3.6-7.4"/><path d="m51.3 42.5c0-.8-2.6-2.6-5.4-3.4-1.6.4-2.6 4-2.1 4.6.8 1 2.8 1.4 2.8 1.4-1.4 1.7.3 3.2-.3 6.1-.4 1.9-.3 3.5 1.1 4.5.6.5 4.3-.4 4.1-1.1-.6-1.4-2.3-2.6-2.3-3.8-.4-3 2.2-4.5 2.1-8.3"/></g><g fill="#6ceda9"><path d="m26.2 40.3c0 0 0 1.8 1.9 3.1 0 0 .1-3.8 3-4.9-.1 0-3.7-.3-4.9 1.8"/><path d="m27.4 35.4c0 0-.9 1.2-1.1 3.3 0 0 1.8-2.7 6.1-2.3 0 .1-2.7-1.9-5-1"/><path d="m39.6 36.1c0 0 1.6 0 3.2.7 0 0-3.2-.4-4.8.8 0 0 .1-1.6 1.6-1.5"/><path d="m43.6 37.1c0 0 1.5.4 2.4 1.1 0 0-3-.7-4.6.5.1 0 .7-1.7 2.2-1.6"/><path d="m38.4 35.5c-3.5.8-9-1.2-10.7-.9-.3.1 0-1.3.3-1.3 3.8 0 6.6 1.2 10 1 .3 0 .7 1.1.4 1.2"/></g><path d="m29.9 9.9l.7 1.7 14.8 1.7.8-1.6c.7-6-.4-8.7-7-9.5-6.6-.9-8.6 1.6-9.3 7.7" fill="#ffb300"/><path d="m45.6 11.6c-.1.3-.2.7-.3.8-.2.3-.6.5-.6.5s.2-.7.2-1.6c.3-5.5-.4-2.9-6.4-3.6-6.1-.7-6.1-3.4-7.1 2.1-.1.9-.1 1.6-.1 1.6s-.3-.2-.5-.6c-.1-.2-.1-.5-.1-.9-.6-.2-1.3-.2-1.5 1.5-.1 1 .2 1.9 1.4 2.2 0 3.5 4.4 6.3 6.4 6.6 2.1.2 6.9-1.5 7.8-4.9 1.3.1 1.8-.7 1.9-1.8.3-1.8-.5-2-1.1-1.9" fill="#ffdd67"/><g fill="#937237"><circle cx="34.9" cy="12.1" r="1.3"/><circle cx="41.1" cy="12.9" r="1.3"/><path d="m39.6 16.6c-1.4.9-2.9.7-4.1-.5-.1-.1-.3.1-.2.3.3.8 1 1.5 2.1 1.6 1 .1 1.9-.4 2.4-1.1.1-.2-.1-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c5.svg
index 0237654..4862d3c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m47.821 2l-12.661 18.986h6.333l12.657-18.986z"/><path fill="#e8e8e8" d="m41.493 2l-12.657 18.986h6.324l12.661-18.986z"/><path fill="#ed4c5c" d="m35.16 2l-12.653 18.986h6.329l12.657-18.986z"/><path fill="#ffc200" d="m20.397 16.767c-.58 0-1.055.474-1.055 1.055v9.493c0 .581.475 1.055 1.055 1.055h23.2c.578 0 1.055-.474 1.055-1.055v-9.493c0-.581-.477-1.055-1.055-1.055h-23.2m22.15 7.383c0 .58-.477 1.055-1.055 1.055h-18.986c-.58 0-1.055-.475-1.055-1.055v-4.219c0-.581.475-1.055 1.055-1.055h18.986c.578 0 1.055.474 1.055 1.055v4.219"/><path fill="#ed4c5c" d="m22.507 20.986h6.329l-12.657-18.986h-6.328z"/><path fill="#e8e8e8" d="m28.836 20.986h6.324l-12.653-18.986h-6.328z"/><path opacity=".5" fill="#3e4347" d="m33.05 5.165l-3.159 4.746 7.379 11.08h4.223l1.055-1.582z"/><path fill="#428bc1" d="m35.16 20.986h6.333l-12.657-18.986h-6.329z"/><circle fill="#ffc200" cx="32" cy="42.28" r="19.716"/><path fill="#e68a00" d="m32.27 24.36c-10.05 0-18.2 8.16-18.2 18.229 0 3 .738 5.829 2.02 8.326-.649-1.985-1.012-4.1-1.012-6.298 0-10.677 8.249-19.403 18.705-20.18-.502-.041-1-.077-1.517-.077"/><path fill="#ffe394" d="m45.98 31c5.135 8.968 2.451 20.569-6.404 26.521-1.827 1.225-3.78 2.108-5.784 2.687 2.781-.345 5.533-1.317 8.02-2.99 8.354-5.613 10.62-16.816 5.063-25.02-.282-.417-.587-.808-.899-1.193"/><path fill="#f2b200" d="m32 34.31v-6.382l-3.245 9.989 1.495 1.794z"/><path fill="#e68a00" d="m33.754 39.711l1.486-1.794-3.24-9.989v6.382z"/><path fill="#c47500" d="m34.838 43.05l2.412 1.04 8.499-6.173-6.319 1.794z"/><path fill="#ffe394" d="m39.43 39.711l6.319-1.794h-10.509l-1.486 1.794z"/><path fill="#ffd252" d="m30.25 39.711l-1.495-1.794h-10.504l6.32 1.794z"/><path fill="#ffdb75" d="m24.571 39.711l-6.32-1.794 8.498 6.173 2.411-1.04z"/><path fill="#e68a00" d="m34.838 43.05l1.753 5.39 3.907 5.64-3.248-9.99z"/><g fill="#f2b200"><path d="m32 45.11v2.796l8.498 6.174-3.907-5.64z"/><path d="m29.16 43.05l-2.411 1.04-3.248 9.99 3.906-5.64z"/></g><path fill="#e68a00" d="m27.407 48.44l-3.906 5.64 8.499-6.174v-2.796z"/><path fill="#ffce31" d="m33.754 39.711l-1.754-5.401-1.75 5.401h-5.679l4.589 3.339-1.753 5.39 4.593-3.33 4.591 3.33-1.753-5.39 4.592-3.339z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m47.8 2l-12.6 19h6.3l12.6-19z"/><path fill="#e8e8e8" d="m41.5 2l-12.7 19h6.4l12.6-19z"/><path fill="#ed4c5c" d="m35.2 2l-12.7 19h6.3l12.7-19z"/><path d="m20.4 16.8c-.6 0-1.1.5-1.1 1.1v9.5c0 .6.5 1.1 1.1 1.1h23.2c.6 0 1.1-.5 1.1-1.1v-9.5c0-.6-.5-1.1-1.1-1.1h-23.2m22.1 7.3c0 .6-.5 1.1-1.1 1.1h-19c-.6 0-1.1-.5-1.1-1.1v-4.2c0-.6.5-1.1 1.1-1.1h19c.6 0 1.1.5 1.1 1.1v4.2" fill="#ffc200"/><path fill="#ed4c5c" d="m22.5 21h6.3l-12.6-19h-6.3z"/><path fill="#e8e8e8" d="m28.8 21h6.4l-12.7-19h-6.3z"/><path opacity=".5" fill="#3e4347" d="m33.1 5.2l-3.2 4.7 7.4 11.1h4.2l1-1.6z"/><path fill="#428bc1" d="m35.2 21h6.3l-12.7-19h-6.3z"/><circle cx="32" cy="42.3" r="19.7" fill="#ffc200"/><path d="m32.3 24.4c-10.1 0-18.2 8.2-18.2 18.2 0 3 .7 5.8 2 8.3-.6-2-1-4.1-1-6.3 0-10.7 8.2-19.4 18.7-20.2-.5 0-1 0-1.5 0" fill="#e68a00"/><path d="m46 31c5.1 9 2.5 20.6-6.4 26.5-1.8 1.2-3.8 2.1-5.8 2.7 2.8-.3 5.5-1.3 8-3 8.4-5.6 10.6-16.8 5.1-25-.3-.4-.6-.8-.9-1.2" fill="#ffe394"/><path fill="#f2b200" d="m32 34.3v-6.4l-3.2 10 1.4 1.8z"/><path fill="#e68a00" d="m33.8 39.7l1.4-1.8-3.2-10v6.4z"/><path fill="#c47500" d="m34.8 43l2.4 1.1 8.5-6.2-6.3 1.8z"/><path fill="#ffe394" d="m39.4 39.7l6.3-1.8h-10.5l-1.4 1.8z"/><path fill="#ffd252" d="m30.2 39.7l-1.4-1.8h-10.5l6.3 1.8z"/><path fill="#ffdb75" d="m24.6 39.7l-6.3-1.8 8.4 6.2 2.5-1.1z"/><path fill="#e68a00" d="m34.8 43l1.8 5.4 3.9 5.7-3.3-10z"/><g fill="#f2b200"><path d="m32 45.1v2.8l8.5 6.2-3.9-5.7z"/><path d="m29.2 43l-2.5 1.1-3.2 10 3.9-5.7z"/></g><path fill="#e68a00" d="m27.4 48.4l-3.9 5.7 8.5-6.2v-2.8z"/><path fill="#ffce31" d="m33.8 39.7l-1.8-5.4-1.8 5.4h-5.6l4.6 3.3-1.8 5.4 4.6-3.3 4.6 3.3-1.8-5.4 4.6-3.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c6.svg
index 8c32144..025592e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f2b200"><path d="m12.687 31.713c-.54 0-1.062-.12-1.548-.365-1.309-.66-2.868-2.458-2.868-7.284 0-10.09-5.324-15.849-5.379-15.906l-.892-.945 4.736-5.213.81 1.222c.102.148 2.578 3.738 6.533 2.683l.549 2.579c-3.896 1.041-6.711-1.139-8.07-2.57l-1.207 1.329c1.679 2.223 5.286 8.02 5.286 16.821 0 2.62.537 4.394 1.473 4.866.71.357 1.765-.031 2.754-1.013 2.59-2.573 4.493-8.986 4.512-9.05l2.248.827c-.084.291-2.119 7.158-5.19 10.207-1.197 1.188-2.518 1.812-3.747 1.812"/><path d="m51.31 31.712c.541 0 1.063-.12 1.549-.365 1.309-.659 2.867-2.458 2.867-7.284 0-10.09 5.324-15.849 5.379-15.905l.892-.947-4.736-5.211-.811 1.221c-.102.148-2.578 3.739-6.533 2.682l-.549 2.579c3.896 1.041 6.711-1.138 8.07-2.57l1.207 1.328c-1.678 2.223-5.285 8.02-5.285 16.821 0 2.621-.537 4.395-1.473 4.866-.711.359-1.766-.03-2.754-1.012-2.59-2.572-4.494-8.985-4.514-9.05l-2.248.826c.086.291 2.121 7.158 5.191 10.207 1.197 1.189 2.519 1.813 3.748 1.813"/><path d="m28.95 24.931h6.099v24.478h-6.099z"/></g><path fill="#ffce31" d="m30.2 24.931h3.599v24.478h-3.599z"/><path fill="#f2b200" d="m11.825 2c1.72 15.382 10.1 27.718 20.18 27.718 10.08 0 18.455-12.336 20.17-27.718h-40.35"/><path fill="#ffce31" d="m15.716 2c1.389 15.561 8.152 28.04 16.284 28.04 8.132 0 14.894-12.481 16.283-28.04h-32.567"/><path fill="#f2b200" d="m47.648 54h-31.3c0 0 7.01-9.03 15.65-9.03 8.642 0 15.647 9.03 15.647 9.03"/><path fill="#ffce31" d="m43.873 54h-23.748c0 0 5.316-9.183 11.875-9.183 6.559 0 11.873 9.183 11.873 9.183"/><path fill="#bc845e" d="m11.816 56h40.37v6h-40.37z"/><path fill="#916140" d="m16.351 54h31.3v2h-31.3z"/><path fill="#f2b200" d="m22 57.5h20v3h-20z"/><path fill="#ce9c7a" d="m11.816 56h2v6h-2z"/><path fill="#916140" d="m50.18 56h2v6h-2z"/><path fill="#ffce31" d="m23 57.5h18v3h-18z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f2b200"><path d="m12.7 31.7c-.5 0-1.1-.1-1.5-.4-1.3-.7-2.9-2.5-2.9-7.3 0-10-5.4-15.8-5.4-15.8l-.9-1 4.7-5.2.8 1.2c.1.1 2.6 3.7 6.5 2.7l.5 2.6c-3.9 1-6.7-1.1-8.1-2.6l-1 1.3c1.7 2.2 5.3 8 5.3 16.8 0 2.6.5 4.4 1.5 4.9.7.4 1.8 0 2.8-1 2.6-2.6 4.5-9 4.5-9l2.2.8c-.1.3-2.1 7.2-5.2 10.2-1.3 1.2-2.6 1.8-3.8 1.8"/><path d="m51.3 31.7c.5 0 1.1-.1 1.5-.4 1.3-.7 2.9-2.5 2.9-7.3 0-10.1 5.3-15.8 5.4-15.9l.9-.9-4.7-5.2-.8 1.2c-.1.1-2.6 3.7-6.5 2.7l-.5 2.6c3.9 1 6.7-1.1 8.1-2.6l1.2 1.3c-1.7 2.2-5.3 8-5.3 16.8 0 2.6-.5 4.4-1.5 4.9-.7.4-1.8 0-2.8-1-2.6-2.6-4.5-9-4.5-9l-2.2.8c.1.3 2.1 7.2 5.2 10.2 1.1 1.2 2.4 1.8 3.6 1.8"/><path d="m29 24.9h6.1v24.5h-6.1z"/></g><path fill="#ffce31" d="m30.2 24.9h3.6v24.5h-3.6z"/><path d="M11.8,2C13.5,17.4,21.9,29.7,32,29.7S50.5,17.4,52.2,2H11.8z" fill="#f2b200"/><path d="M15.7,2c1.4,15.6,8.2,28,16.3,28S46.9,17.6,48.3,2H15.7z" fill="#ffce31"/><path d="m47.6 54h-31.2c0 0 7-9 15.6-9 8.6 0 15.6 9 15.6 9" fill="#f2b200"/><path d="M43.9,54H20.1c0,0,5.3-9.2,11.9-9.2S43.9,54,43.9,54z" fill="#ffce31"/><path fill="#bc845e" d="m11.8 56h40.4v6h-40.4z"/><path fill="#916140" d="m16.4 54h31.3v2h-31.3z"/><path fill="#f2b200" d="m22 57.5h20v3h-20z"/><path fill="#ce9c7a" d="m11.8 56h2v6h-2z"/><path fill="#916140" d="m50.2 56h2v6h-2z"/><path fill="#ffce31" d="m23 57.5h18v3h-18z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fb.svg
index 172671b..308dd7a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m30.716 12.342l1.414-.54 2.02 5.198-3.648 1.391z"/><path fill="#e6b796" d="m30.659 12.234c.905 2.335.86 3.709-.834 4.354l.677 1.802c2-.764 1.862-3.55.806-6.274l-.649.118"/><path fill="#ffe1bd" d="m28.788 3.763l-7 5.522c-.275 2.01.694 2.654.94 3.386.108.324-.32 1.157-.549 1.595-.51.977 1 1.033 1.444.748.585.598.163.983 1.312.426.629-.307 1.281-1.242 1.281-1.242-2.184 2.895-1.152 3.348-.085 2.584.585 1.516 1.535 1.154 3.613.361 1.693-.646 2.47-2.691 1.563-5.03l2.119-1.259-4.637-7.095"/><path fill="#594640" d="m24.94 2.779c5.879-2.241 8.565 2.412 9.08 6.152.272 1.99-.252 3.525-1.197 4.459l-.716-.148-.8-1.126c0 0 1.047-.704.882-2.134-.074-.654-1.115-1.56-2.02-1.271-.631.203-1.342.994-1.477 1.205-.585-1.511-.882-3.191-2.093-3.246-.998-.043-4.03 3-4.813 2.615-2.102-1.026-.386-5.156 3.153-6.506"/><g fill="#574137"><path d="m30.427 10.307c-.115.027-.216.084-.298.16.011-.125.032-.252.06-.383.037-.162.092-.32.138-.501-.297.214-.501.565-.52.956-.015.396.194.762.487.975-.039-.182-.098-.342-.13-.5-.019-.102-.03-.2-.037-.298.046-.015.087-.03.128-.042.089-.021.164-.049.243-.064.077-.021.156-.027.248-.047.089-.018.184-.023.302-.052-.139-.179-.389-.254-.621-.204"/><path d="m24.556 11.676c.188.483.057.983-.293 1.116-.35.134-.783-.151-.972-.634-.188-.483-.056-.984.292-1.117.349-.132.784.151.973.635"/><path d="m26.22 14.197c0 0-.419 1.701-.584 1.98-.352.596-.628.396-.51-.036.119-.444 1.094-1.944 1.094-1.944"/></g><g fill="#3e4347"><path d="m31.787 13.721l-.903.461-3.864-5.621.902-.461z"/><path d="m31.634 13.981l-.989-.135 1.675-4.596.99.135z"/><path transform="matrix(.9794-.2018.2018.9794-2.344 6.648)" d="m30.755 12.958h1.35v3.725h-1.35z"/></g><path fill="#f15744" d="m35.16 9.553c-.056 1.357-4.714-.502-7.418-.611-2.969-.121-7.454 1.109-7.409.008.164-4 3.614-7.109 7.708-6.942 4.095.166 7.282 3.544 7.119 7.545"/><path fill="#3b946f" d="m30.339 18.841l-2.901 4.975-1.129.384.569 1.04 2.673-.24 2.799-5.585z"/><path fill="#94989b" d="m40.23 23.18c0 0-7.291 5.6-7.791 6.18-.502.584-.828 1.098-1.174 2.47l2.891 1.296c-.001-.001 6.281-8.387 6.074-9.946"/><g fill="#89664c"><path d="m60.828 32.33c2.611-4.04-7.907-6.089-12.07-.438v1.325c0 0 8.585-2.481 6.623 2.407-2.184 5.441 6.623 9.994 6.623 9.994s-4.844-7.621-1.176-13.288"/><path d="m9.236 12.307c0 0-.725-1.496-.343-4.157 0 0 2 1.364 3.381 4.496l-3.038-.339"/></g><path fill="#574137" d="m12.691 59.1l.563-4.379c0 0-.852.02-1.788-.23-.257.811-.647 2.225-.898 3.901 1.174.627 2.123.708 2.123.708"/><path fill="#89664c" d="m27.2 48.06c-.696.523-1.52 1.184-2.109 1.771l-3.463-1.015c0 0 3.154-4.841 10.71-8.03 0 0-8.498-3.136-11.351.981 0 0-3.808 5.668-5.094 7.02-1.29 1.351.062 2.559.71 2.759.649.198 9.672.958 9.672.958s1.234-1.045 2.782-1.646c-.658-1.424-1.373-2.309-1.857-2.795"/><path fill="#574137" d="m28.55 47.08c0 0-.604.408-1.354.975.483.486 1.198 1.371 1.857 2.795.741-.289 1.551-.477 2.331-.4 0-.001-1.164-2.534-2.834-3.37"/><path fill="#89664c" d="m38.29 36.434l-.783 5.815c0 0 7.891 1.333 11.201.093 0 0 2.936 7.171 8.359 11.7.406-.731.898-1.896 1.24-3.623-2.124-1.346-5.414-4.39-6.939-10.812 0 0-6.414.774-13.08-3.173"/><path fill="#574137" d="m57.07 54.04c.727.612 1.502 1.173 2.32 1.661 0 0 .813-2.02.87-4.324 0 0-.805-.231-1.95-.96-.341 1.727-.833 2.892-1.24 3.623"/><g fill="#b7805c"><path d="m44.829 28.05c-8.04.958-15.725 2.966-17.15-1.396-5.81-17.812-16.659-14.998-16.659-14.998-1.893-2.277-3.862-2.662-3.862-2.662-.158 2.259.716 4.166.716 4.166-.563 2.871-5.352 12.03-5.827 13.281-.479 1.248 2.883 3.422 2.883 3.422.698-.133.865-1.255 2.438-1.219.397.009-.713 1.408-.29 1.551.783.264 1.744-2.028 3.363-2.912 6.088-3.326 4.064-5.513 4.064-5.513 2.496 1.738 1.077 5.515-.002 7.489-2.544 4.65.118 11.49.118 11.49-2.46 1.905-7.911 2.979-7.911 2.979-1.861 9.82 1.466 13.383 3.853 14.663.251-1.677.642-3.091.898-3.901-.925-.247-1.93-.752-2.291-1.785-.731-2.088.667-6.786.667-6.786 6.472.776 10.546-1.237 15.188-2.383 4.646-1.146 9.14-.345 13.577.435 17.1 3 14.87-16.952 6.223-15.921"/><path d="m37.671 43.26c4.439 10.01 14.01 4.531 14.01 4.531-2.188 6.121-.58 10.313.795 12.48 1.19-.605 1.934-1.965 2.287-2.778-3.071-3.462-.879-8.07-.285-9.877.653-1.988-.298-3.269-.298-3.269-2.676-.615-4.249 1.221-7.423-2.867-3.17-4.086-9.09 1.78-9.09 1.78"/></g><g fill="#574137"><path d="m53.868 62c1.53-.068 1.975-3.508 1.975-3.508-.417-.318-.774-.65-1.079-.997-.354.813-1.097 2.173-2.287 2.778.73 1.147 1.391 1.727 1.391 1.727"/><path d="m34.14 38.16c0 0 .315 2.238-1.202 5.185 0 0 1.167-.048 2.221.108 0 0 .855-.974 1.225-5.069l-2.244-.224"/></g><path fill="#89664c" d="m28.16 27.617c0 0 2.354 2.556.926 4.762-1.96 3.03 4.086 8.526 10.984 5.445 4.939-2.203.176-7.631 2.371-9.653 0 0-8.277 1.837-14.281-.554"/><g fill="#333"><path d="m5.425 25.449l-.498-.547c5.685-5.254 6.959-7.486 6.975-7.51l.642.365c-.052.094-1.346 2.359-7.119 7.692"/><path d="m13.195 18.445c-.839-1.207-1.768-2.303-2.751-3.264-1.01-.984-2.1-1.585-2.566-2.02.005.004-.109.486-.21.797.446.422 1.424.938 2.266 1.755 1.407 1.37 3.214 3.93 4.841 7.511.166-.113.5-.58.562-.623-.685-1.488-1.256-2.888-2.142-4.158"/><path d="m6.769 28.7c.19-.095.683 0 .683 0-1.156-3.159-3.056-5.264-3.774-5.675l-.315.65c.235.141.466.303.912.748.636.639 1.812 2.386 2.494 4.277"/></g><g fill="#89664c"><path d="m7.264 18.994c0 0 .982.42 1.658-.407.678-.829.274-2.87.274-2.87s-1.331 1.056-1.932 3.277"/><path d="m2.901 26.07c0 0 1.346-.176.866 1.392-.482 1.564-.936-.848-.866-1.392"/></g><path fill="#333" d="m21.475 26.2c-3.137-.051-6.58-1.091-8.914-1.955-2.542-.941-4.356-1.883-4.376-1.891l-.275.533c.019.01 1.861.967 4.436 1.919 1.513.562 2.979 1.01 4.361 1.339 1.591.379 3.068.596 4.406.646.208-.204.362-.591.362-.591"/><path fill="#47b892" d="m28.746 24.369c0 0-5.97.869-6.674 1.085 0 0 .07.401-.351 1.239l8.505.668 3.686-5.582 6.313 1.4c0 0 2.989.15 5.953-2.688 0 0-5.801-6.227-12.75-5.759 0 0-1.143 2.313-3.363 3.409l-1.319 6.228"/><path fill="#d0d0d0" d="m40.23 23.18c0 0-5.842 4.909-7.04 7.828-.808 1.979 1.317 4.92 1.704 5.871 0 0 2.242.23 3.52-1.096 0 0 .084-1.063-1.504-3.713 0 0 5.789-2.078 8.08-4.117 2.29-2.037 2.886-4.04 1.19-7.461l-5.953 2.688"/><path fill="#333" d="m35.852 42.927c0 0-3.695 1.96-3.875 2.573-.182.613.619.885.619.885s3.25.385 6.826-.516l-.882-10.397c0 0-.866 1.214-3.8 1.421l1.112 6.03"/><path fill="#ffe1bd" d="m22.17 26.03l.006-1.065c.001-.381-.31-.689-.694-.689l-.521-.002c-.277-.001-.517.156-.631.387-.695.047-1.607.293-1.612 1.566-.001.209-.007 1.375 1.389 1.379 2.054.005 2.054.005 2.063-1.576"/><path fill="#c9150d" d="m29.428 9.154c0 0-9.101 2.672-10.507 2.461-1.406-.209.758-2.135 1.418-2.617s8.467-.547 9.09.156"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m30.2 12.5l1.5-1.9 2.8 6.6-4.3 1.8z"/><path d="m28.6 16.7c1.6.3 1.6 2.3 1.6 2.3 1.7-.7 1.5-4.6.7-6.7l-2.3 4.4" fill="#e6b796"/><path d="m28 3.4l-6.5 5.8c-.2 2.2.8 2.8 1.1 3.6.1.3-.3 1.2-.5 1.7-.5 1.1 1.1 1.1 1.6.8.6.6-.1 1.5 1.9.1 0 0-1.9 2-.1 1.7.2 1 .8 2.8 4.8-1 1.2-1.1.7-3.8.7-3.8l2.2-1.4-5.2-7.5" fill="#ffe1bd"/><path d="m22.3 4.9c4.3-3.7 8.1-2.3 9.1-1.3 2.5 2.5 2.9 6.4 1.6 9.9 0 0-1.3 0-2.1-1.3 0 0 1.5 0 .9-2.8-.5-2.4-3.3-2.6-3.2.9l-.3.1c-1.3-1.1-.9-3.6-2.9-3.4-1.8.1-4 2.6-4 2.6-.9-.7-.9-3.1.9-4.7" fill="#594640"/><path d="m24.4 12c.2.5.1 1-.2 1.1-.3.1-.6-.2-.8-.7-.2-.5-.3-.9.1-1 .3-.2.7.1.9.6" fill="#664e27"/><path d="m29.5 10.6c-.4-.9.1-2.1.8-2.4 0 0-.9 1.7.1 3 0 0-.7.1-.9-.6" fill="#e6b796"/><path d="m26.2 14.8c0 0-.6 1.1-.9 1.4-.5.6-.7.5-.5 0 .2-.4.7-.9.7-.9l.7-.5" fill="#664e27"/><g fill="#3e4347"><path d="m31.8 13.7l-.9.5-3.9-5.6.9-.5z"/><path d="m31.6 14l-1-.2 1.7-4.6 1 .2z"/><path transform="matrix(.9794-.2018.2018.9794-2.3443 6.6467)" d="m30.8 13h1.3v3.7h-1.3z"/></g><path d="m35.2 9.6c-.1 1.4-4.7-.5-7.4-.6-3-.1-7.5 1.1-7.4 0 .2-4 3.6-7.1 7.7-6.9 4 .1 7.2 3.5 7.1 7.5" fill="#f15744"/><path fill="#3b946f" d="m30.3 18.8l-2.9 5-1.1.4.6 1 2.6-.2 2.8-5.6z"/><path d="m40.2 23.2c0 0-7.3 5.6-7.8 6.2-.5.6-.8 1.1-1.2 2.5l2.9 1.3c0-.1 6.3-8.5 6.1-10" fill="#94989b"/><g fill="#89664c"><path d="m60.8 32.3c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.4 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 12.3c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 59.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 48.1c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.8 10.7-8 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.4.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.6c-.6-1.7-1.3-2.6-1.8-3" fill="#89664c"/><path d="m28.5 47.1c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.6-2.8-3.4" fill="#574137"/><path d="m38.3 36.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0 0-6.4.8-13.1-3.2" fill="#89664c"/><path d="m57.1 54c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-2-1-.3 1.7-.8 2.9-1.2 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 28.1c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15-16.7-15-1.9-2.3-3.8-2.7-3.8-2.7-.2 2.3.7 4.2.7 4.2-.6 2.8-5.4 12-5.9 13.2-.5 1.2 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 43.3c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 62c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 38.2c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 27.6c0 0 2.4 2.6.9 4.8-2 3 4.1 8.5 11 5.4 4.9-2.2.2-7.6 2.4-9.7-.1.1-8.3 1.9-14.3-.5" fill="#89664c"/><g fill="#333"><path d="m5.4 25.4l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 .1-1.3 2.3-7.1 7.6"/><path d="m13.2 18.4c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 28.7c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.6c.2.1.5.3.9.7.6.8 1.8 2.5 2.5 4.4"/></g><g fill="#89664c"><path d="m7.3 19c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1.1-2 3.3"/><path d="m2.9 26.1c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4"/></g><path d="m21.5 26.2c-3.1-.1-6.6-1.1-8.9-2-2.5-.9-4.4-1.9-4.4-1.9l-.3.5c0 0 1.9 1 4.4 1.9 1.5.6 3 1 4.4 1.3 1.6.4 3.1.6 4.4.6.2 0 .4-.4.4-.4" fill="#333"/><path d="m28.7 24.4c0 0-6 .9-6.7 1.1 0 0 .1.4-.4 1.2l8.5.7 3.7-5.6 6.3 1.4c0 0 3 .1 6-2.7 0 0-5.8-6.2-12.8-5.8 0 0-1.1 2.3-3.4 3.4l-1.2 6.3" fill="#47b892"/><path d="m40.2 23.2c0 0-5.8 4.9-7 7.8-.8 2 1.3 4.9 1.7 5.9 0 0 2.2.2 3.5-1.1 0 0 .1-1.1-1.5-3.7 0 0 5.8-2.1 8.1-4.1 2.3-2 2.9-4 1.2-7.5l-6 2.7" fill="#d0d0d0"/><path d="m35.8 42.9c0 0-3.7 2-3.9 2.6-.2.6.6.9.6.9s3.2.4 6.8-.5l-.9-10.4c0 0-.9 1.2-3.8 1.4l1.2 6" fill="#333"/><path d="m22.2 26v-1.1c0-.4-.3-.7-.7-.7h-.5c-.3 0-.5.2-.6.4-.7 0-1.6.3-1.6 1.6 0 .2 0 1.4 1.4 1.4 2 0 2 0 2-1.6" fill="#ffe1bd"/><path d="m29.4 9.2c0 0-9.1 2.7-10.5 2.5-1.4-.2.8-2.1 1.4-2.6s8.5-.6 9.1.1" fill="#c9150d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fc.svg
index 0d25cbd..f841b3e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m30.716 12.342l1.414-.54 2.02 5.198-3.648 1.391z"/><path fill="#e0a372" d="m30.659 12.234c.905 2.335.86 3.709-.834 4.354l.677 1.802c2-.764 1.862-3.55.806-6.274l-.649.118"/><path fill="#fed0ac" d="m28.788 3.763l-7 5.522c-.275 2.01.694 2.654.94 3.386.108.324-.32 1.157-.549 1.595-.51.977 1 1.033 1.444.748.585.598.163.983 1.312.426.629-.307 1.281-1.242 1.281-1.242-2.184 2.895-1.152 3.348-.085 2.584.585 1.516 1.535 1.154 3.613.361 1.693-.646 2.47-2.691 1.563-5.03l2.119-1.259-4.637-7.095"/><path fill="#dbb471" d="m24.94 2.779c5.879-2.241 8.565 2.412 9.08 6.152.272 1.99-.252 3.525-1.197 4.459l-.716-.148-.8-1.126c0 0 1.047-.704.882-2.134-.074-.654-1.115-1.56-2.02-1.271-.631.203-1.342.994-1.477 1.205-.585-1.511-.882-3.191-2.093-3.246-.998-.043-4.03 3-4.813 2.615-2.102-1.026-.386-5.156 3.153-6.506"/><g fill="#574137"><path d="m30.427 10.307c-.115.027-.216.084-.298.16.011-.125.032-.252.06-.383.037-.162.092-.32.138-.501-.297.214-.501.565-.52.956-.015.396.194.762.487.975-.039-.182-.098-.342-.13-.5-.019-.102-.03-.2-.037-.298.046-.015.087-.03.128-.042.089-.021.164-.049.243-.064.077-.021.156-.027.248-.047.089-.018.184-.023.302-.052-.139-.179-.389-.254-.621-.204"/><path d="m24.556 11.676c.188.483.057.983-.293 1.116-.35.134-.783-.151-.972-.634-.188-.483-.056-.984.292-1.117.349-.132.784.151.973.635"/><path d="m26.22 14.197c0 0-.419 1.701-.584 1.98-.352.596-.628.396-.51-.036.119-.444 1.094-1.944 1.094-1.944"/></g><g fill="#3e4347"><path d="m31.787 13.721l-.903.461-3.864-5.621.902-.461z"/><path d="m31.634 13.981l-.989-.135 1.675-4.596.99.135z"/><path transform="matrix(.9794-.2018.2018.9794-2.344 6.648)" d="m30.755 12.958h1.35v3.725h-1.35z"/></g><path fill="#f15744" d="m35.16 9.553c-.056 1.357-4.714-.502-7.418-.611-2.969-.121-7.454 1.109-7.409.008.164-4 3.614-7.109 7.708-6.942 4.095.166 7.282 3.544 7.119 7.545"/><path fill="#3b946f" d="m30.339 18.841l-2.901 4.975-1.129.384.569 1.04 2.673-.24 2.799-5.585z"/><path fill="#94989b" d="m40.23 23.18c0 0-7.291 5.6-7.791 6.18-.502.584-.828 1.098-1.174 2.47l2.891 1.296c-.001-.001 6.281-8.387 6.074-9.946"/><g fill="#89664c"><path d="m60.828 32.33c2.611-4.04-7.907-6.089-12.07-.438v1.325c0 0 8.585-2.481 6.623 2.407-2.184 5.441 6.623 9.994 6.623 9.994s-4.844-7.621-1.176-13.288"/><path d="m9.236 12.307c0 0-.725-1.496-.343-4.157 0 0 2 1.364 3.381 4.496l-3.038-.339"/></g><path fill="#574137" d="m12.691 59.1l.563-4.379c0 0-.852.02-1.788-.23-.257.811-.647 2.225-.898 3.901 1.174.627 2.123.708 2.123.708"/><path fill="#89664c" d="m27.2 48.06c-.696.523-1.52 1.184-2.109 1.771l-3.463-1.015c0 0 3.154-4.841 10.71-8.03 0 0-8.498-3.136-11.351.981 0 0-3.808 5.668-5.094 7.02-1.29 1.351.062 2.559.71 2.759.649.198 9.672.958 9.672.958s1.234-1.045 2.782-1.646c-.658-1.424-1.373-2.309-1.857-2.795"/><path fill="#574137" d="m28.55 47.08c0 0-.604.408-1.354.975.483.486 1.198 1.371 1.857 2.795.741-.289 1.551-.477 2.331-.4 0-.001-1.164-2.534-2.834-3.37"/><path fill="#89664c" d="m38.29 36.434l-.783 5.815c0 0 7.891 1.333 11.201.093 0 0 2.936 7.171 8.359 11.7.406-.731.898-1.896 1.24-3.623-2.124-1.346-5.414-4.39-6.939-10.812 0 0-6.414.774-13.08-3.173"/><path fill="#574137" d="m57.07 54.04c.727.612 1.502 1.173 2.32 1.661 0 0 .813-2.02.87-4.324 0 0-.805-.231-1.95-.96-.341 1.727-.833 2.892-1.24 3.623"/><g fill="#b7805c"><path d="m44.829 28.05c-8.04.958-15.725 2.966-17.15-1.396-5.81-17.812-16.659-14.998-16.659-14.998-1.893-2.277-3.862-2.662-3.862-2.662-.158 2.259.716 4.166.716 4.166-.563 2.871-5.352 12.03-5.827 13.281-.479 1.248 2.883 3.422 2.883 3.422.698-.133.865-1.255 2.438-1.219.397.009-.713 1.408-.29 1.551.783.264 1.744-2.028 3.363-2.912 6.088-3.326 4.064-5.513 4.064-5.513 2.496 1.738 1.077 5.515-.002 7.489-2.544 4.65.118 11.49.118 11.49-2.46 1.905-7.911 2.979-7.911 2.979-1.861 9.82 1.466 13.383 3.853 14.663.251-1.677.642-3.091.898-3.901-.925-.247-1.93-.752-2.291-1.785-.731-2.088.667-6.786.667-6.786 6.472.776 10.546-1.237 15.188-2.383 4.646-1.146 9.14-.345 13.577.435 17.1 3 14.87-16.952 6.223-15.921"/><path d="m37.671 43.26c4.439 10.01 14.01 4.531 14.01 4.531-2.188 6.121-.58 10.313.795 12.48 1.19-.605 1.934-1.965 2.287-2.778-3.071-3.462-.879-8.07-.285-9.877.653-1.988-.298-3.269-.298-3.269-2.676-.615-4.249 1.221-7.423-2.867-3.17-4.086-9.09 1.78-9.09 1.78"/></g><g fill="#574137"><path d="m53.868 62c1.53-.068 1.975-3.508 1.975-3.508-.417-.318-.774-.65-1.079-.997-.354.813-1.097 2.173-2.287 2.778.73 1.147 1.391 1.727 1.391 1.727"/><path d="m34.14 38.16c0 0 .315 2.238-1.202 5.185 0 0 1.167-.048 2.221.108 0 0 .855-.974 1.225-5.069l-2.244-.224"/></g><path fill="#89664c" d="m28.16 27.617c0 0 2.354 2.556.926 4.762-1.96 3.03 4.086 8.526 10.984 5.445 4.939-2.203.176-7.631 2.371-9.653 0 0-8.277 1.837-14.281-.554"/><g fill="#333"><path d="m5.425 25.449l-.498-.547c5.685-5.254 6.959-7.486 6.975-7.51l.642.365c-.052.094-1.346 2.359-7.119 7.692"/><path d="m13.195 18.445c-.839-1.207-1.768-2.303-2.751-3.264-1.01-.984-2.1-1.585-2.566-2.02.005.004-.109.486-.21.797.446.422 1.424.938 2.266 1.755 1.407 1.37 3.214 3.93 4.841 7.511.166-.113.5-.58.562-.623-.685-1.488-1.256-2.888-2.142-4.158"/><path d="m6.769 28.7c.19-.095.683 0 .683 0-1.156-3.159-3.056-5.264-3.774-5.675l-.315.65c.235.141.466.303.912.748.636.639 1.812 2.386 2.494 4.277"/></g><g fill="#89664c"><path d="m7.264 18.994c0 0 .982.42 1.658-.407.678-.829.274-2.87.274-2.87s-1.331 1.056-1.932 3.277"/><path d="m2.901 26.07c0 0 1.346-.176.866 1.392-.482 1.564-.936-.848-.866-1.392"/></g><path fill="#333" d="m21.475 26.2c-3.137-.051-6.58-1.091-8.914-1.955-2.542-.941-4.356-1.883-4.376-1.891l-.275.533c.019.01 1.861.967 4.436 1.919 1.513.562 2.979 1.01 4.361 1.339 1.591.379 3.068.596 4.406.646.208-.204.362-.591.362-.591"/><path fill="#47b892" d="m28.746 24.369c0 0-5.97.869-6.674 1.085 0 0 .07.401-.351 1.239l8.505.668 3.686-5.582 6.313 1.4c0 0 2.989.15 5.953-2.688 0 0-5.801-6.227-12.75-5.759 0 0-1.143 2.313-3.363 3.409l-1.319 6.228"/><path fill="#d0d0d0" d="m40.23 23.18c0 0-5.842 4.909-7.04 7.828-.808 1.979 1.317 4.92 1.704 5.871 0 0 2.242.23 3.52-1.096 0 0 .084-1.063-1.504-3.713 0 0 5.789-2.078 8.08-4.117 2.29-2.037 2.886-4.04 1.19-7.461l-5.953 2.688"/><path fill="#333" d="m35.852 42.927c0 0-3.695 1.96-3.875 2.573-.182.613.619.885.619.885s3.25.385 6.826-.516l-.882-10.397c0 0-.866 1.214-3.8 1.421l1.112 6.03"/><path fill="#fed0ac" d="m22.17 26.03l.006-1.065c.001-.381-.31-.689-.694-.689l-.521-.002c-.277-.001-.517.156-.631.387-.695.047-1.607.293-1.612 1.566-.001.209-.007 1.375 1.389 1.379 2.054.005 2.054.005 2.063-1.576"/><path fill="#c9150d" d="m29.428 9.154c0 0-9.101 2.672-10.507 2.461-1.406-.209.758-2.135 1.418-2.617s8.467-.547 9.09.156"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m30.2 12.5l1.5-1.9 2.8 6.6-4.3 1.8z"/><path d="m28.6 16.7c1.6.3 1.6 2.3 1.6 2.3 1.7-.7 1.5-4.6.7-6.7l-2.3 4.4" fill="#e0a372"/><path d="m28 3.4l-6.5 5.8c-.2 2.2.8 2.8 1.1 3.6.1.3-.3 1.2-.5 1.7-.5 1.1 1.1 1.1 1.6.8.6.6-.1 1.5 1.9.1 0 0-1.9 2-.1 1.7.2 1 .8 2.8 4.8-1 1.2-1.1.7-3.8.7-3.8l2.2-1.4-5.2-7.5" fill="#fed0ac"/><path d="m22.3 4.9c4.3-3.7 8.1-2.3 9.1-1.3 2.5 2.5 2.9 6.4 1.6 9.9 0 0-1.3 0-2.1-1.3 0 0 1.5 0 .9-2.8-.5-2.4-3.3-2.6-3.2.9l-.3.1c-1.3-1.1-.9-3.6-2.9-3.4-1.8.1-4 2.6-4 2.6-.9-.7-.9-3.1.9-4.7" fill="#dbb471"/><path d="m24.4 12c.2.5.1 1-.2 1.1-.3.1-.6-.2-.8-.7-.2-.5-.3-.9.1-1 .3-.2.7.1.9.6" fill="#664e27"/><path d="m29.5 10.6c-.4-.9.1-2.1.8-2.4 0 0-.9 1.7.1 3 0 0-.7.1-.9-.6" fill="#e0a372"/><path d="m26.2 14.8c0 0-.6 1.1-.9 1.4-.5.6-.7.5-.5 0 .2-.4.7-.9.7-.9l.7-.5" fill="#664e27"/><g fill="#3e4347"><path d="m31.8 13.7l-.9.5-3.9-5.6.9-.5z"/><path d="m31.6 14l-1-.2 1.7-4.6 1 .2z"/><path transform="matrix(.9794-.2018.2018.9794-2.3443 6.6467)" d="m30.8 13h1.3v3.7h-1.3z"/></g><path d="m35.2 9.6c-.1 1.4-4.7-.5-7.4-.6-3-.1-7.5 1.1-7.4 0 .2-4 3.6-7.1 7.7-6.9 4 .1 7.2 3.5 7.1 7.5" fill="#f15744"/><path fill="#3b946f" d="m30.3 18.8l-2.9 5-1.1.4.6 1 2.6-.2 2.8-5.6z"/><path d="m40.2 23.2c0 0-7.3 5.6-7.8 6.2-.5.6-.8 1.1-1.2 2.5l2.9 1.3c0-.1 6.3-8.5 6.1-10" fill="#94989b"/><g fill="#89664c"><path d="m60.8 32.3c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.4 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 12.3c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 59.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 48.1c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.8 10.7-8 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.4.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.6c-.6-1.7-1.3-2.6-1.8-3" fill="#89664c"/><path d="m28.5 47.1c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.6-2.8-3.4" fill="#574137"/><path d="m38.3 36.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0 0-6.4.8-13.1-3.2" fill="#89664c"/><path d="m57.1 54c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-2-1-.3 1.7-.8 2.9-1.2 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 28.1c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15-16.7-15-1.9-2.3-3.8-2.7-3.8-2.7-.2 2.3.7 4.2.7 4.2-.6 2.8-5.4 12-5.9 13.2-.5 1.2 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 43.3c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 62c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 38.2c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 27.6c0 0 2.4 2.6.9 4.8-2 3 4.1 8.5 11 5.4 4.9-2.2.2-7.6 2.4-9.7-.1.1-8.3 1.9-14.3-.5" fill="#89664c"/><g fill="#333"><path d="m5.4 25.4l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 .1-1.3 2.3-7.1 7.6"/><path d="m13.2 18.4c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 28.7c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.6c.2.1.5.3.9.7.6.8 1.8 2.5 2.5 4.4"/></g><g fill="#89664c"><path d="m7.3 19c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1.1-2 3.3"/><path d="m2.9 26.1c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4"/></g><path d="m21.5 26.2c-3.1-.1-6.6-1.1-8.9-2-2.5-.9-4.4-1.9-4.4-1.9l-.3.5c0 0 1.9 1 4.4 1.9 1.5.6 3 1 4.4 1.3 1.6.4 3.1.6 4.4.6.2 0 .4-.4.4-.4" fill="#333"/><path d="m28.7 24.4c0 0-6 .9-6.7 1.1 0 0 .1.4-.4 1.2l8.5.7 3.7-5.6 6.3 1.4c0 0 3 .1 6-2.7 0 0-5.8-6.2-12.8-5.8 0 0-1.1 2.3-3.4 3.4l-1.2 6.3" fill="#47b892"/><path d="m40.2 23.2c0 0-5.8 4.9-7 7.8-.8 2 1.3 4.9 1.7 5.9 0 0 2.2.2 3.5-1.1 0 0 .1-1.1-1.5-3.7 0 0 5.8-2.1 8.1-4.1 2.3-2 2.9-4 1.2-7.5l-6 2.7" fill="#d0d0d0"/><path d="m35.8 42.9c0 0-3.7 2-3.9 2.6-.2.6.6.9.6.9s3.2.4 6.8-.5l-.9-10.4c0 0-.9 1.2-3.8 1.4l1.2 6" fill="#333"/><path d="m22.2 26v-1.1c0-.4-.3-.7-.7-.7h-.5c-.3 0-.5.2-.6.4-.7 0-1.6.3-1.6 1.6 0 .2 0 1.4 1.4 1.4 2 0 2 0 2-1.6" fill="#fed0ac"/><path d="m29.4 9.2c0 0-9.1 2.7-10.5 2.5-1.4-.2.8-2.1 1.4-2.6s8.5-.6 9.1.1" fill="#c9150d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fd.svg
index 5a1cacf..ca972a6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m30.716 12.342l1.414-.54 2.02 5.198-3.648 1.391z"/><path fill="#b58360" d="m30.659 12.234c.905 2.335.86 3.709-.834 4.354l.677 1.802c2-.764 1.862-3.55.806-6.274l-.649.118"/><path fill="#d6a57c" d="m28.788 3.763l-7 5.522c-.275 2.01.694 2.654.94 3.386.108.324-.32 1.157-.549 1.595-.51.977 1 1.033 1.444.748.585.598.163.983 1.312.426.629-.307 1.281-1.242 1.281-1.242-2.184 2.895-1.152 3.348-.085 2.584.585 1.516 1.535 1.154 3.613.361 1.693-.646 2.47-2.691 1.563-5.03l2.119-1.259-4.637-7.095"/><path fill="#594640" d="m24.94 2.779c5.879-2.241 8.565 2.412 9.08 6.152.272 1.99-.252 3.525-1.197 4.459l-.716-.148-.8-1.126c0 0 1.047-.704.882-2.134-.074-.654-1.115-1.56-2.02-1.271-.631.203-1.342.994-1.477 1.205-.585-1.511-.882-3.191-2.093-3.246-.998-.043-4.03 3-4.813 2.615-2.102-1.026-.386-5.156 3.153-6.506"/><g fill="#574137"><path d="m30.427 10.307c-.115.027-.216.084-.298.16.011-.125.032-.252.06-.383.037-.162.092-.32.138-.501-.297.214-.501.565-.52.956-.015.396.194.762.487.975-.039-.182-.098-.342-.13-.5-.019-.102-.03-.2-.037-.298.046-.015.087-.03.128-.042.089-.021.164-.049.243-.064.077-.021.156-.027.248-.047.089-.018.184-.023.302-.052-.139-.179-.389-.254-.621-.204"/><path d="m24.556 11.676c.188.483.057.983-.293 1.116-.35.134-.783-.151-.972-.634-.188-.483-.056-.984.292-1.117.349-.132.784.151.973.635"/><path d="m26.22 14.197c0 0-.419 1.701-.584 1.98-.352.596-.628.396-.51-.036.119-.444 1.094-1.944 1.094-1.944"/></g><g fill="#3e4347"><path d="m31.787 13.721l-.903.461-3.864-5.621.902-.461z"/><path d="m31.634 13.981l-.989-.135 1.675-4.596.99.135z"/><path transform="matrix(.9794-.2018.2018.9794-2.344 6.648)" d="m30.755 12.958h1.35v3.725h-1.35z"/></g><path fill="#f15744" d="m35.16 9.553c-.056 1.357-4.714-.502-7.418-.611-2.969-.121-7.454 1.109-7.409.008.164-4 3.614-7.109 7.708-6.942 4.095.166 7.282 3.544 7.119 7.545"/><path fill="#3b946f" d="m30.339 18.841l-2.901 4.975-1.129.384.569 1.04 2.673-.24 2.799-5.585z"/><path fill="#94989b" d="m40.23 23.18c0 0-7.291 5.6-7.791 6.18-.502.584-.828 1.098-1.174 2.47l2.891 1.296c-.001-.001 6.281-8.387 6.074-9.946"/><g fill="#89664c"><path d="m60.828 32.33c2.611-4.04-7.907-6.089-12.07-.438v1.325c0 0 8.585-2.481 6.623 2.407-2.184 5.441 6.623 9.994 6.623 9.994s-4.844-7.621-1.176-13.288"/><path d="m9.236 12.307c0 0-.725-1.496-.343-4.157 0 0 2 1.364 3.381 4.496l-3.038-.339"/></g><path fill="#574137" d="m12.691 59.1l.563-4.379c0 0-.852.02-1.788-.23-.257.811-.647 2.225-.898 3.901 1.174.627 2.123.708 2.123.708"/><path fill="#89664c" d="m27.2 48.06c-.696.523-1.52 1.184-2.109 1.771l-3.463-1.015c0 0 3.154-4.841 10.71-8.03 0 0-8.498-3.136-11.351.981 0 0-3.808 5.668-5.094 7.02-1.29 1.351.062 2.559.71 2.759.649.198 9.672.958 9.672.958s1.234-1.045 2.782-1.646c-.658-1.424-1.373-2.309-1.857-2.795"/><path fill="#574137" d="m28.55 47.08c0 0-.604.408-1.354.975.483.486 1.198 1.371 1.857 2.795.741-.289 1.551-.477 2.331-.4 0-.001-1.164-2.534-2.834-3.37"/><path fill="#89664c" d="m38.29 36.434l-.783 5.815c0 0 7.891 1.333 11.201.093 0 0 2.936 7.171 8.359 11.7.406-.731.898-1.896 1.24-3.623-2.124-1.346-5.414-4.39-6.939-10.812 0 0-6.414.774-13.08-3.173"/><path fill="#574137" d="m57.07 54.04c.727.612 1.502 1.173 2.32 1.661 0 0 .813-2.02.87-4.324 0 0-.805-.231-1.95-.96-.341 1.727-.833 2.892-1.24 3.623"/><g fill="#b7805c"><path d="m44.829 28.05c-8.04.958-15.725 2.966-17.15-1.396-5.81-17.812-16.659-14.998-16.659-14.998-1.893-2.277-3.862-2.662-3.862-2.662-.158 2.259.716 4.166.716 4.166-.563 2.871-5.352 12.03-5.827 13.281-.479 1.248 2.883 3.422 2.883 3.422.698-.133.865-1.255 2.438-1.219.397.009-.713 1.408-.29 1.551.783.264 1.744-2.028 3.363-2.912 6.088-3.326 4.064-5.513 4.064-5.513 2.496 1.738 1.077 5.515-.002 7.489-2.544 4.65.118 11.49.118 11.49-2.46 1.905-7.911 2.979-7.911 2.979-1.861 9.82 1.466 13.383 3.853 14.663.251-1.677.642-3.091.898-3.901-.925-.247-1.93-.752-2.291-1.785-.731-2.088.667-6.786.667-6.786 6.472.776 10.546-1.237 15.188-2.383 4.646-1.146 9.14-.345 13.577.435 17.1 3 14.87-16.952 6.223-15.921"/><path d="m37.671 43.26c4.439 10.01 14.01 4.531 14.01 4.531-2.188 6.121-.58 10.313.795 12.48 1.19-.605 1.934-1.965 2.287-2.778-3.071-3.462-.879-8.07-.285-9.877.653-1.988-.298-3.269-.298-3.269-2.676-.615-4.249 1.221-7.423-2.867-3.17-4.086-9.09 1.78-9.09 1.78"/></g><g fill="#574137"><path d="m53.868 62c1.53-.068 1.975-3.508 1.975-3.508-.417-.318-.774-.65-1.079-.997-.354.813-1.097 2.173-2.287 2.778.73 1.147 1.391 1.727 1.391 1.727"/><path d="m34.14 38.16c0 0 .315 2.238-1.202 5.185 0 0 1.167-.048 2.221.108 0 0 .855-.974 1.225-5.069l-2.244-.224"/></g><path fill="#89664c" d="m28.16 27.617c0 0 2.354 2.556.926 4.762-1.96 3.03 4.086 8.526 10.984 5.445 4.939-2.203.176-7.631 2.371-9.653 0 0-8.277 1.837-14.281-.554"/><g fill="#333"><path d="m5.425 25.449l-.498-.547c5.685-5.254 6.959-7.486 6.975-7.51l.642.365c-.052.094-1.346 2.359-7.119 7.692"/><path d="m13.195 18.445c-.839-1.207-1.768-2.303-2.751-3.264-1.01-.984-2.1-1.585-2.566-2.02.005.004-.109.486-.21.797.446.422 1.424.938 2.266 1.755 1.407 1.37 3.214 3.93 4.841 7.511.166-.113.5-.58.562-.623-.685-1.488-1.256-2.888-2.142-4.158"/><path d="m6.769 28.7c.19-.095.683 0 .683 0-1.156-3.159-3.056-5.264-3.774-5.675l-.315.65c.235.141.466.303.912.748.636.639 1.812 2.386 2.494 4.277"/></g><g fill="#89664c"><path d="m7.264 18.994c0 0 .982.42 1.658-.407.678-.829.274-2.87.274-2.87s-1.331 1.056-1.932 3.277"/><path d="m2.901 26.07c0 0 1.346-.176.866 1.392-.482 1.564-.936-.848-.866-1.392"/></g><path fill="#333" d="m21.475 26.2c-3.137-.051-6.58-1.091-8.914-1.955-2.542-.941-4.356-1.883-4.376-1.891l-.275.533c.019.01 1.861.967 4.436 1.919 1.513.562 2.979 1.01 4.361 1.339 1.591.379 3.068.596 4.406.646.208-.204.362-.591.362-.591"/><path fill="#47b892" d="m28.746 24.369c0 0-5.97.869-6.674 1.085 0 0 .07.401-.351 1.239l8.505.668 3.686-5.582 6.313 1.4c0 0 2.989.15 5.953-2.688 0 0-5.801-6.227-12.75-5.759 0 0-1.143 2.313-3.363 3.409l-1.319 6.228"/><path fill="#d0d0d0" d="m40.23 23.18c0 0-5.842 4.909-7.04 7.828-.808 1.979 1.317 4.92 1.704 5.871 0 0 2.242.23 3.52-1.096 0 0 .084-1.063-1.504-3.713 0 0 5.789-2.078 8.08-4.117 2.29-2.037 2.886-4.04 1.19-7.461l-5.953 2.688"/><path fill="#333" d="m35.852 42.927c0 0-3.695 1.96-3.875 2.573-.182.613.619.885.619.885s3.25.385 6.826-.516l-.882-10.397c0 0-.866 1.214-3.8 1.421l1.112 6.03"/><path fill="#d6a57c" d="m22.17 26.03l.006-1.065c.001-.381-.31-.689-.694-.689l-.521-.002c-.277-.001-.517.156-.631.387-.695.047-1.607.293-1.612 1.566-.001.209-.007 1.375 1.389 1.379 2.054.005 2.054.005 2.063-1.576"/><path fill="#c9150d" d="m29.428 9.154c0 0-9.101 2.672-10.507 2.461-1.406-.209.758-2.135 1.418-2.617s8.467-.547 9.09.156"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m30.2 12.5l1.5-1.9 2.8 6.6-4.3 1.8z"/><path d="m28.6 16.7c1.6.3 1.6 2.3 1.6 2.3 1.7-.7 1.5-4.6.7-6.7l-2.3 4.4" fill="#b58360"/><path d="m28 3.4l-6.5 5.8c-.2 2.2.8 2.8 1.1 3.6.1.3-.3 1.2-.5 1.7-.5 1.1 1.1 1.1 1.6.8.6.6-.1 1.5 1.9.1 0 0-1.9 2-.1 1.7.2 1 .8 2.8 4.8-1 1.2-1.1.7-3.8.7-3.8l2.2-1.4-5.2-7.5" fill="#d6a57c"/><path d="m22.3 4.9c4.3-3.7 8.1-2.3 9.1-1.3 2.5 2.5 2.9 6.4 1.6 9.9 0 0-1.3 0-2.1-1.3 0 0 1.5 0 .9-2.8-.5-2.4-3.3-2.6-3.2.9l-.3.1c-1.3-1.1-.9-3.6-2.9-3.4-1.8.1-4 2.6-4 2.6-.9-.7-.9-3.1.9-4.7" fill="#594640"/><path d="m24.4 12c.2.5.1 1-.2 1.1-.3.1-.6-.2-.8-.7-.2-.5-.3-.9.1-1 .3-.2.7.1.9.6" fill="#664e27"/><path d="m29.5 10.6c-.4-.9.1-2.1.8-2.4 0 0-.9 1.7.1 3 0 0-.7.1-.9-.6" fill="#b58360"/><path d="m26.2 14.8c0 0-.6 1.1-.9 1.4-.5.6-.7.5-.5 0 .2-.4.7-.9.7-.9l.7-.5" fill="#664e27"/><g fill="#3e4347"><path d="m31.8 13.7l-.9.5-3.9-5.6.9-.5z"/><path d="m31.6 14l-1-.2 1.7-4.6 1 .2z"/><path transform="matrix(.9794-.2018.2018.9794-2.3443 6.6467)" d="m30.8 13h1.3v3.7h-1.3z"/></g><path d="m35.2 9.6c-.1 1.4-4.7-.5-7.4-.6-3-.1-7.5 1.1-7.4 0 .2-4 3.6-7.1 7.7-6.9 4 .1 7.2 3.5 7.1 7.5" fill="#f15744"/><path fill="#3b946f" d="m30.3 18.8l-2.9 5-1.1.4.6 1 2.6-.2 2.8-5.6z"/><path d="m40.2 23.2c0 0-7.3 5.6-7.8 6.2-.5.6-.8 1.1-1.2 2.5l2.9 1.3c0-.1 6.3-8.5 6.1-10" fill="#94989b"/><g fill="#89664c"><path d="m60.8 32.3c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.4 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 12.3c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 59.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 48.1c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.8 10.7-8 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.4.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.6c-.6-1.7-1.3-2.6-1.8-3" fill="#89664c"/><path d="m28.5 47.1c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.6-2.8-3.4" fill="#574137"/><path d="m38.3 36.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0 0-6.4.8-13.1-3.2" fill="#89664c"/><path d="m57.1 54c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-2-1-.3 1.7-.8 2.9-1.2 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 28.1c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15-16.7-15-1.9-2.3-3.8-2.7-3.8-2.7-.2 2.3.7 4.2.7 4.2-.6 2.8-5.4 12-5.9 13.2-.5 1.2 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 43.3c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 62c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 38.2c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 27.6c0 0 2.4 2.6.9 4.8-2 3 4.1 8.5 11 5.4 4.9-2.2.2-7.6 2.4-9.7-.1.1-8.3 1.9-14.3-.5" fill="#89664c"/><g fill="#333"><path d="m5.4 25.4l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 .1-1.3 2.3-7.1 7.6"/><path d="m13.2 18.4c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 28.7c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.6c.2.1.5.3.9.7.6.8 1.8 2.5 2.5 4.4"/></g><g fill="#89664c"><path d="m7.3 19c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1.1-2 3.3"/><path d="m2.9 26.1c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4"/></g><path d="m21.5 26.2c-3.1-.1-6.6-1.1-8.9-2-2.5-.9-4.4-1.9-4.4-1.9l-.3.5c0 0 1.9 1 4.4 1.9 1.5.6 3 1 4.4 1.3 1.6.4 3.1.6 4.4.6.2 0 .4-.4.4-.4" fill="#333"/><path d="m28.7 24.4c0 0-6 .9-6.7 1.1 0 0 .1.4-.4 1.2l8.5.7 3.7-5.6 6.3 1.4c0 0 3 .1 6-2.7 0 0-5.8-6.2-12.8-5.8 0 0-1.1 2.3-3.4 3.4l-1.2 6.3" fill="#47b892"/><path d="m40.2 23.2c0 0-5.8 4.9-7 7.8-.8 2 1.3 4.9 1.7 5.9 0 0 2.2.2 3.5-1.1 0 0 .1-1.1-1.5-3.7 0 0 5.8-2.1 8.1-4.1 2.3-2 2.9-4 1.2-7.5l-6 2.7" fill="#d0d0d0"/><path d="m35.8 42.9c0 0-3.7 2-3.9 2.6-.2.6.6.9.6.9s3.2.4 6.8-.5l-.9-10.4c0 0-.9 1.2-3.8 1.4l1.2 6" fill="#333"/><path d="m22.2 26v-1.1c0-.4-.3-.7-.7-.7h-.5c-.3 0-.5.2-.6.4-.7 0-1.6.3-1.6 1.6 0 .2 0 1.4 1.4 1.4 2 0 2 0 2-1.6" fill="#d6a57c"/><path d="m29.4 9.2c0 0-9.1 2.7-10.5 2.5-1.4-.2.8-2.1 1.4-2.6s8.5-.6 9.1.1" fill="#c9150d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fe.svg
index fe97ee3..c8f3850 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m30.716 12.342l1.414-.54 2.02 5.198-3.648 1.391z"/><path fill="#935e3e" d="m30.659 12.234c.905 2.335.86 3.709-.834 4.354l.677 1.802c2-.764 1.862-3.55.806-6.274l-.649.118"/><path fill="#b47d56" d="m28.788 3.763l-7 5.522c-.275 2.01.694 2.654.94 3.386.108.324-.32 1.157-.549 1.595-.51.977 1 1.033 1.444.748.585.598.163.983 1.312.426.629-.307 1.281-1.242 1.281-1.242-2.184 2.895-1.152 3.348-.085 2.584.585 1.516 1.535 1.154 3.613.361 1.693-.646 2.47-2.691 1.563-5.03l2.119-1.259-4.637-7.095"/><path fill="#231f20" d="m24.94 2.779c5.879-2.241 8.565 2.412 9.08 6.152.272 1.99-.252 3.525-1.197 4.459l-.716-.148-.8-1.126c0 0 1.047-.704.882-2.134-.074-.654-1.115-1.56-2.02-1.271-.631.203-1.342.994-1.477 1.205-.585-1.511-.882-3.191-2.093-3.246-.998-.043-4.03 3-4.813 2.615-2.102-1.026-.386-5.156 3.153-6.506"/><g fill="#47352d"><path d="m30.427 10.307c-.115.027-.216.084-.298.16.011-.125.032-.252.06-.383.037-.162.092-.32.138-.501-.297.214-.501.565-.52.956-.015.396.194.762.487.975-.039-.182-.098-.342-.13-.5-.019-.102-.03-.2-.037-.298.046-.015.087-.03.128-.042.089-.021.164-.049.243-.064.077-.021.156-.027.248-.047.089-.018.184-.023.302-.052-.139-.179-.389-.254-.621-.204"/><path d="m24.556 11.676c.188.483.057.983-.293 1.116-.35.134-.783-.151-.972-.634-.188-.483-.056-.984.292-1.117.349-.132.784.151.973.635"/><path d="m26.22 14.197c0 0-.419 1.701-.584 1.98-.352.596-.628.396-.51-.036.119-.444 1.094-1.944 1.094-1.944"/></g><g fill="#3e4347"><path d="m31.787 13.721l-.903.461-3.864-5.621.902-.461z"/><path d="m31.634 13.981l-.989-.135 1.675-4.596.99.135z"/><path transform="matrix(.9794-.2018.2018.9794-2.344 6.648)" d="m30.755 12.958h1.35v3.725h-1.35z"/></g><path fill="#f15744" d="m35.16 9.553c-.056 1.357-4.714-.502-7.418-.611-2.969-.121-7.454 1.109-7.409.008.164-4 3.614-7.109 7.708-6.942 4.095.166 7.282 3.544 7.119 7.545"/><path fill="#3b946f" d="m30.339 18.841l-2.901 4.975-1.129.384.569 1.04 2.673-.24 2.799-5.585z"/><path fill="#94989b" d="m40.23 23.18c0 0-7.291 5.6-7.791 6.18-.502.584-.828 1.098-1.174 2.47l2.891 1.296c-.001-.001 6.281-8.387 6.074-9.946"/><g fill="#89664c"><path d="m60.828 32.33c2.611-4.04-7.907-6.089-12.07-.438v1.325c0 0 8.585-2.481 6.623 2.407-2.184 5.441 6.623 9.994 6.623 9.994s-4.844-7.621-1.176-13.288"/><path d="m9.236 12.307c0 0-.725-1.496-.343-4.157 0 0 2 1.364 3.381 4.496l-3.038-.339"/></g><path fill="#47352d" d="m12.691 59.1l.563-4.379c0 0-.852.02-1.788-.23-.257.811-.647 2.225-.898 3.901 1.174.627 2.123.708 2.123.708"/><path fill="#89664c" d="m27.2 48.06c-.696.523-1.52 1.184-2.109 1.771l-3.463-1.015c0 0 3.154-4.841 10.71-8.03 0 0-8.498-3.136-11.351.981 0 0-3.808 5.668-5.094 7.02-1.29 1.351.062 2.559.71 2.759.649.198 9.672.958 9.672.958s1.234-1.045 2.782-1.646c-.658-1.424-1.373-2.309-1.857-2.795"/><path fill="#47352d" d="m28.55 47.08c0 0-.604.408-1.354.975.483.486 1.198 1.371 1.857 2.795.741-.289 1.551-.477 2.331-.4 0-.001-1.164-2.534-2.834-3.37"/><path fill="#89664c" d="m38.29 36.434l-.783 5.815c0 0 7.891 1.333 11.201.093 0 0 2.936 7.171 8.359 11.7.406-.731.898-1.896 1.24-3.623-2.124-1.346-5.414-4.39-6.939-10.812 0 0-6.414.774-13.08-3.173"/><path fill="#47352d" d="m57.07 54.04c.727.612 1.502 1.173 2.32 1.661 0 0 .813-2.02.87-4.324 0 0-.805-.231-1.95-.96-.341 1.727-.833 2.892-1.24 3.623"/><g fill="#b7805c"><path d="m44.829 28.05c-8.04.958-15.725 2.966-17.15-1.396-5.81-17.812-16.659-14.998-16.659-14.998-1.893-2.277-3.862-2.662-3.862-2.662-.158 2.259.716 4.166.716 4.166-.563 2.871-5.352 12.03-5.827 13.281-.479 1.248 2.883 3.422 2.883 3.422.698-.133.865-1.255 2.438-1.219.397.009-.713 1.408-.29 1.551.783.264 1.744-2.028 3.363-2.912 6.088-3.326 4.064-5.513 4.064-5.513 2.496 1.738 1.077 5.515-.002 7.489-2.544 4.65.118 11.49.118 11.49-2.46 1.905-7.911 2.979-7.911 2.979-1.861 9.82 1.466 13.383 3.853 14.663.251-1.677.642-3.091.898-3.901-.925-.247-1.93-.752-2.291-1.785-.731-2.088.667-6.786.667-6.786 6.472.776 10.546-1.237 15.188-2.383 4.646-1.146 9.14-.345 13.577.435 17.1 3 14.87-16.952 6.223-15.921"/><path d="m37.671 43.26c4.439 10.01 14.01 4.531 14.01 4.531-2.188 6.121-.58 10.313.795 12.48 1.19-.605 1.934-1.965 2.287-2.778-3.071-3.462-.879-8.07-.285-9.877.653-1.988-.298-3.269-.298-3.269-2.676-.615-4.249 1.221-7.423-2.867-3.17-4.086-9.09 1.78-9.09 1.78"/></g><g fill="#47352d"><path d="m53.868 62c1.53-.068 1.975-3.508 1.975-3.508-.417-.318-.774-.65-1.079-.997-.354.813-1.097 2.173-2.287 2.778.73 1.147 1.391 1.727 1.391 1.727"/><path d="m34.14 38.16c0 0 .315 2.238-1.202 5.185 0 0 1.167-.048 2.221.108 0 0 .855-.974 1.225-5.069l-2.244-.224"/></g><path fill="#89664c" d="m28.16 27.617c0 0 2.354 2.556.926 4.762-1.96 3.03 4.086 8.526 10.984 5.445 4.939-2.203.176-7.631 2.371-9.653 0 0-8.277 1.837-14.281-.554"/><g fill="#333"><path d="m5.425 25.449l-.498-.547c5.685-5.254 6.959-7.486 6.975-7.51l.642.365c-.052.094-1.346 2.359-7.119 7.692"/><path d="m13.195 18.445c-.839-1.207-1.768-2.303-2.751-3.264-1.01-.984-2.1-1.585-2.566-2.02.005.004-.109.486-.21.797.446.422 1.424.938 2.266 1.755 1.407 1.37 3.214 3.93 4.841 7.511.166-.113.5-.58.562-.623-.685-1.488-1.256-2.888-2.142-4.158"/><path d="m6.769 28.7c.19-.095.683 0 .683 0-1.156-3.159-3.056-5.264-3.774-5.675l-.315.65c.235.141.466.303.912.748.636.639 1.812 2.386 2.494 4.277"/></g><g fill="#89664c"><path d="m7.264 18.994c0 0 .982.42 1.658-.407.678-.829.274-2.87.274-2.87s-1.331 1.056-1.932 3.277"/><path d="m2.901 26.07c0 0 1.346-.176.866 1.392-.482 1.564-.936-.848-.866-1.392"/></g><path fill="#333" d="m21.475 26.2c-3.137-.051-6.58-1.091-8.914-1.955-2.542-.941-4.356-1.883-4.376-1.891l-.275.533c.019.01 1.861.967 4.436 1.919 1.513.562 2.979 1.01 4.361 1.339 1.591.379 3.068.596 4.406.646.208-.204.362-.591.362-.591"/><path fill="#47b892" d="m28.746 24.369c0 0-5.97.869-6.674 1.085 0 0 .07.401-.351 1.239l8.505.668 3.686-5.582 6.313 1.4c0 0 2.989.15 5.953-2.688 0 0-5.801-6.227-12.75-5.759 0 0-1.143 2.313-3.363 3.409l-1.319 6.228"/><path fill="#d0d0d0" d="m40.23 23.18c0 0-5.842 4.909-7.04 7.828-.808 1.979 1.317 4.92 1.704 5.871 0 0 2.242.23 3.52-1.096 0 0 .084-1.063-1.504-3.713 0 0 5.789-2.078 8.08-4.117 2.29-2.037 2.886-4.04 1.19-7.461l-5.953 2.688"/><path fill="#333" d="m35.852 42.927c0 0-3.695 1.96-3.875 2.573-.182.613.619.885.619.885s3.25.385 6.826-.516l-.882-10.397c0 0-.866 1.214-3.8 1.421l1.112 6.03"/><path fill="#b47d56" d="m22.17 26.03l.006-1.065c.001-.381-.31-.689-.694-.689l-.521-.002c-.277-.001-.517.156-.631.387-.695.047-1.607.293-1.612 1.566-.001.209-.007 1.375 1.389 1.379 2.054.005 2.054.005 2.063-1.576"/><path fill="#c9150d" d="m29.428 9.154c0 0-9.101 2.672-10.507 2.461-1.406-.209.758-2.135 1.418-2.617s8.467-.547 9.09.156"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m30.2 12.5l1.5-1.9 2.8 6.6-4.3 1.8z"/><path d="m28.6 16.7c1.6.3 1.6 2.3 1.6 2.3 1.7-.7 1.5-4.6.7-6.7l-2.3 4.4" fill="#935e3e"/><path d="m28 3.4l-6.5 5.8c-.2 2.2.8 2.8 1.1 3.6.1.3-.3 1.2-.5 1.7-.5 1.1 1.1 1.1 1.6.8.6.6-.1 1.5 1.9.1 0 0-1.9 2-.1 1.7.2 1 .8 2.8 4.8-1 1.2-1.1.7-3.8.7-3.8l2.2-1.4-5.2-7.5" fill="#b47d56"/><path d="m22.3 4.9c4.3-3.7 8.1-2.3 9.1-1.3 2.5 2.5 2.9 6.4 1.6 9.9 0 0-1.3 0-2.1-1.3 0 0 1.5 0 .9-2.8-.5-2.4-3.3-2.6-3.2.9l-.3.1c-1.3-1.1-.9-3.6-2.9-3.4-1.8.1-4 2.6-4 2.6-.9-.7-.9-3.1.9-4.7" fill="#231f20"/><path d="m24.4 12c.2.5.1 1-.2 1.1-.3.1-.6-.2-.8-.7-.2-.5-.3-.9.1-1 .3-.2.7.1.9.6" fill="#664e27"/><path d="m29.5 10.6c-.4-.9.1-2.1.8-2.4 0 0-.9 1.7.1 3 0 0-.7.1-.9-.6" fill="#935e3e"/><path d="m26.2 14.8c0 0-.6 1.1-.9 1.4-.5.6-.7.5-.5 0 .2-.4.7-.9.7-.9l.7-.5" fill="#664e27"/><g fill="#3e4347"><path d="m31.8 13.7l-.9.5-3.9-5.6.9-.5z"/><path d="m31.6 14l-1-.2 1.7-4.6 1 .2z"/><path transform="matrix(.9794-.2018.2018.9794-2.3443 6.6467)" d="m30.8 13h1.3v3.7h-1.3z"/></g><path d="m35.2 9.6c-.1 1.4-4.7-.5-7.4-.6-3-.1-7.5 1.1-7.4 0 .2-4 3.6-7.1 7.7-6.9 4 .1 7.2 3.5 7.1 7.5" fill="#f15744"/><path fill="#3b946f" d="m30.3 18.8l-2.9 5-1.1.4.6 1 2.6-.2 2.8-5.6z"/><path d="m40.2 23.2c0 0-7.3 5.6-7.8 6.2-.5.6-.8 1.1-1.2 2.5l2.9 1.3c0-.1 6.3-8.5 6.1-10" fill="#94989b"/><g fill="#89664c"><path d="m60.8 32.3c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.4 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 12.3c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 59.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 48.1c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.8 10.7-8 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.4.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.6c-.6-1.7-1.3-2.6-1.8-3" fill="#89664c"/><path d="m28.5 47.1c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.6-2.8-3.4" fill="#574137"/><path d="m38.3 36.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0 0-6.4.8-13.1-3.2" fill="#89664c"/><path d="m57.1 54c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-2-1-.3 1.7-.8 2.9-1.2 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 28.1c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15-16.7-15-1.9-2.3-3.8-2.7-3.8-2.7-.2 2.3.7 4.2.7 4.2-.6 2.8-5.4 12-5.9 13.2-.5 1.2 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 43.3c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 62c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 38.2c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 27.6c0 0 2.4 2.6.9 4.8-2 3 4.1 8.5 11 5.4 4.9-2.2.2-7.6 2.4-9.7-.1.1-8.3 1.9-14.3-.5" fill="#89664c"/><g fill="#333"><path d="m5.4 25.4l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 .1-1.3 2.3-7.1 7.6"/><path d="m13.2 18.4c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 28.7c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.6c.2.1.5.3.9.7.6.8 1.8 2.5 2.5 4.4"/></g><g fill="#89664c"><path d="m7.3 19c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1.1-2 3.3"/><path d="m2.9 26.1c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4"/></g><path d="m21.5 26.2c-3.1-.1-6.6-1.1-8.9-2-2.5-.9-4.4-1.9-4.4-1.9l-.3.5c0 0 1.9 1 4.4 1.9 1.5.6 3 1 4.4 1.3 1.6.4 3.1.6 4.4.6.2 0 .4-.4.4-.4" fill="#333"/><path d="m28.7 24.4c0 0-6 .9-6.7 1.1 0 0 .1.4-.4 1.2l8.5.7 3.7-5.6 6.3 1.4c0 0 3 .1 6-2.7 0 0-5.8-6.2-12.8-5.8 0 0-1.1 2.3-3.4 3.4l-1.2 6.3" fill="#47b892"/><path d="m40.2 23.2c0 0-5.8 4.9-7 7.8-.8 2 1.3 4.9 1.7 5.9 0 0 2.2.2 3.5-1.1 0 0 .1-1.1-1.5-3.7 0 0 5.8-2.1 8.1-4.1 2.3-2 2.9-4 1.2-7.5l-6 2.7" fill="#d0d0d0"/><path d="m35.8 42.9c0 0-3.7 2-3.9 2.6-.2.6.6.9.6.9s3.2.4 6.8-.5l-.9-10.4c0 0-.9 1.2-3.8 1.4l1.2 6" fill="#333"/><path d="m22.2 26v-1.1c0-.4-.3-.7-.7-.7h-.5c-.3 0-.5.2-.6.4-.7 0-1.6.3-1.6 1.6 0 .2 0 1.4 1.4 1.4 2 0 2 0 2-1.6" fill="#935e3e"/><path d="m29.4 9.2c0 0-9.1 2.7-10.5 2.5-1.4-.2.8-2.1 1.4-2.6s8.5-.6 9.1.1" fill="#c9150d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3ff.svg
index a54368d..1ee4554 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c7-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m30.716 12.342l1.414-.54 2.02 5.198-3.648 1.391z"/><path fill="#705041" d="m30.659 12.234c.905 2.335.86 3.709-.834 4.354l.677 1.802c2-.764 1.862-3.55.806-6.274l-.649.118"/><path fill="#8a6859" d="m28.788 3.763l-7 5.522c-.275 2.01.694 2.654.94 3.386.108.324-.32 1.157-.549 1.595-.51.977 1 1.033 1.444.748.585.598.163.983 1.312.426.629-.307 1.281-1.242 1.281-1.242-2.184 2.895-1.152 3.348-.085 2.584.585 1.516 1.535 1.154 3.613.361 1.693-.646 2.47-2.691 1.563-5.03l2.119-1.259-4.637-7.095"/><path fill="#231f20" d="m24.94 2.779c5.879-2.241 8.565 2.412 9.08 6.152.272 1.99-.252 3.525-1.197 4.459l-.716-.148-.8-1.126c0 0 1.047-.704.882-2.134-.074-.654-1.115-1.56-2.02-1.271-.631.203-1.342.994-1.477 1.205-.585-1.511-.882-3.191-2.093-3.246-.998-.043-4.03 3-4.813 2.615-2.102-1.026-.386-5.156 3.153-6.506"/><g fill="#47352d"><path d="m30.427 10.307c-.115.027-.216.084-.298.16.011-.125.032-.252.06-.383.037-.162.092-.32.138-.501-.297.214-.501.565-.52.956-.015.396.194.762.487.975-.039-.182-.098-.342-.13-.5-.019-.102-.03-.2-.037-.298.046-.015.087-.03.128-.042.089-.021.164-.049.243-.064.077-.021.156-.027.248-.047.089-.018.184-.023.302-.052-.139-.179-.389-.254-.621-.204"/><path d="m24.556 11.676c.188.483.057.983-.293 1.116-.35.134-.783-.151-.972-.634-.188-.483-.056-.984.292-1.117.349-.132.784.151.973.635"/><path d="m26.22 14.197c0 0-.419 1.701-.584 1.98-.352.596-.628.396-.51-.036.119-.444 1.094-1.944 1.094-1.944"/></g><g fill="#3e4347"><path d="m31.787 13.721l-.903.461-3.864-5.621.902-.461z"/><path d="m31.634 13.981l-.989-.135 1.675-4.596.99.135z"/><path transform="matrix(.9794-.2018.2018.9794-2.344 6.648)" d="m30.755 12.958h1.35v3.725h-1.35z"/></g><path fill="#f15744" d="m35.16 9.553c-.056 1.357-4.714-.502-7.418-.611-2.969-.121-7.454 1.109-7.409.008.164-4 3.614-7.109 7.708-6.942 4.095.166 7.282 3.544 7.119 7.545"/><path fill="#3b946f" d="m30.339 18.841l-2.901 4.975-1.129.384.569 1.04 2.673-.24 2.799-5.585z"/><path fill="#94989b" d="m40.23 23.18c0 0-7.291 5.6-7.791 6.18-.502.584-.828 1.098-1.174 2.47l2.891 1.296c-.001-.001 6.281-8.387 6.074-9.946"/><g fill="#89664c"><path d="m60.828 32.33c2.611-4.04-7.907-6.089-12.07-.438v1.325c0 0 8.585-2.481 6.623 2.407-2.184 5.441 6.623 9.994 6.623 9.994s-4.844-7.621-1.176-13.288"/><path d="m9.236 12.307c0 0-.725-1.496-.343-4.157 0 0 2 1.364 3.381 4.496l-3.038-.339"/></g><path fill="#47352d" d="m12.691 59.1l.563-4.379c0 0-.852.02-1.788-.23-.257.811-.647 2.225-.898 3.901 1.174.627 2.123.708 2.123.708"/><path fill="#89664c" d="m27.2 48.06c-.696.523-1.52 1.184-2.109 1.771l-3.463-1.015c0 0 3.154-4.841 10.71-8.03 0 0-8.498-3.136-11.351.981 0 0-3.808 5.668-5.094 7.02-1.29 1.351.062 2.559.71 2.759.649.198 9.672.958 9.672.958s1.234-1.045 2.782-1.646c-.658-1.424-1.373-2.309-1.857-2.795"/><path fill="#47352d" d="m28.55 47.08c0 0-.604.408-1.354.975.483.486 1.198 1.371 1.857 2.795.741-.289 1.551-.477 2.331-.4 0-.001-1.164-2.534-2.834-3.37"/><path fill="#89664c" d="m38.29 36.434l-.783 5.815c0 0 7.891 1.333 11.201.093 0 0 2.936 7.171 8.359 11.7.406-.731.898-1.896 1.24-3.623-2.124-1.346-5.414-4.39-6.939-10.812 0 0-6.414.774-13.08-3.173"/><path fill="#47352d" d="m57.07 54.04c.727.612 1.502 1.173 2.32 1.661 0 0 .813-2.02.87-4.324 0 0-.805-.231-1.95-.96-.341 1.727-.833 2.892-1.24 3.623"/><g fill="#b7805c"><path d="m44.829 28.05c-8.04.958-15.725 2.966-17.15-1.396-5.81-17.812-16.659-14.998-16.659-14.998-1.893-2.277-3.862-2.662-3.862-2.662-.158 2.259.716 4.166.716 4.166-.563 2.871-5.352 12.03-5.827 13.281-.479 1.248 2.883 3.422 2.883 3.422.698-.133.865-1.255 2.438-1.219.397.009-.713 1.408-.29 1.551.783.264 1.744-2.028 3.363-2.912 6.088-3.326 4.064-5.513 4.064-5.513 2.496 1.738 1.077 5.515-.002 7.489-2.544 4.65.118 11.49.118 11.49-2.46 1.905-7.911 2.979-7.911 2.979-1.861 9.82 1.466 13.383 3.853 14.663.251-1.677.642-3.091.898-3.901-.925-.247-1.93-.752-2.291-1.785-.731-2.088.667-6.786.667-6.786 6.472.776 10.546-1.237 15.188-2.383 4.646-1.146 9.14-.345 13.577.435 17.1 3 14.87-16.952 6.223-15.921"/><path d="m37.671 43.26c4.439 10.01 14.01 4.531 14.01 4.531-2.188 6.121-.58 10.313.795 12.48 1.19-.605 1.934-1.965 2.287-2.778-3.071-3.462-.879-8.07-.285-9.877.653-1.988-.298-3.269-.298-3.269-2.676-.615-4.249 1.221-7.423-2.867-3.17-4.086-9.09 1.78-9.09 1.78"/></g><g fill="#47352d"><path d="m53.868 62c1.53-.068 1.975-3.508 1.975-3.508-.417-.318-.774-.65-1.079-.997-.354.813-1.097 2.173-2.287 2.778.73 1.147 1.391 1.727 1.391 1.727"/><path d="m34.14 38.16c0 0 .315 2.238-1.202 5.185 0 0 1.167-.048 2.221.108 0 0 .855-.974 1.225-5.069l-2.244-.224"/></g><path fill="#89664c" d="m28.16 27.617c0 0 2.354 2.556.926 4.762-1.96 3.03 4.086 8.526 10.984 5.445 4.939-2.203.176-7.631 2.371-9.653 0 0-8.277 1.837-14.281-.554"/><g fill="#333"><path d="m5.425 25.449l-.498-.547c5.685-5.254 6.959-7.486 6.975-7.51l.642.365c-.052.094-1.346 2.359-7.119 7.692"/><path d="m13.195 18.445c-.839-1.207-1.768-2.303-2.751-3.264-1.01-.984-2.1-1.585-2.566-2.02.005.004-.109.486-.21.797.446.422 1.424.938 2.266 1.755 1.407 1.37 3.214 3.93 4.841 7.511.166-.113.5-.58.562-.623-.685-1.488-1.256-2.888-2.142-4.158"/><path d="m6.769 28.7c.19-.095.683 0 .683 0-1.156-3.159-3.056-5.264-3.774-5.675l-.315.65c.235.141.466.303.912.748.636.639 1.812 2.386 2.494 4.277"/></g><g fill="#89664c"><path d="m7.264 18.994c0 0 .982.42 1.658-.407.678-.829.274-2.87.274-2.87s-1.331 1.056-1.932 3.277"/><path d="m2.901 26.07c0 0 1.346-.176.866 1.392-.482 1.564-.936-.848-.866-1.392"/></g><path fill="#333" d="m21.475 26.2c-3.137-.051-6.58-1.091-8.914-1.955-2.542-.941-4.356-1.883-4.376-1.891l-.275.533c.019.01 1.861.967 4.436 1.919 1.513.562 2.979 1.01 4.361 1.339 1.591.379 3.068.596 4.406.646.208-.204.362-.591.362-.591"/><path fill="#47b892" d="m28.746 24.369c0 0-5.97.869-6.674 1.085 0 0 .07.401-.351 1.239l8.505.668 3.686-5.582 6.313 1.4c0 0 2.989.15 5.953-2.688 0 0-5.801-6.227-12.75-5.759 0 0-1.143 2.313-3.363 3.409l-1.319 6.228"/><path fill="#d0d0d0" d="m40.23 23.18c0 0-5.842 4.909-7.04 7.828-.808 1.979 1.317 4.92 1.704 5.871 0 0 2.242.23 3.52-1.096 0 0 .084-1.063-1.504-3.713 0 0 5.789-2.078 8.08-4.117 2.29-2.037 2.886-4.04 1.19-7.461l-5.953 2.688"/><path fill="#333" d="m35.852 42.927c0 0-3.695 1.96-3.875 2.573-.182.613.619.885.619.885s3.25.385 6.826-.516l-.882-10.397c0 0-.866 1.214-3.8 1.421l1.112 6.03"/><path fill="#8a6859" d="m22.17 26.03l.006-1.065c.001-.381-.31-.689-.694-.689l-.521-.002c-.277-.001-.517.156-.631.387-.695.047-1.607.293-1.612 1.566-.001.209-.007 1.375 1.389 1.379 2.054.005 2.054.005 2.063-1.576"/><path fill="#c9150d" d="m29.428 9.154c0 0-9.101 2.672-10.507 2.461-1.406-.209.758-2.135 1.418-2.617s8.467-.547 9.09.156"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m30.2 12.5l1.5-1.9 2.8 6.6-4.3 1.8z"/><path d="m28.6 16.7c1.6.3 1.6 2.3 1.6 2.3 1.7-.7 1.5-4.6.7-6.7l-2.3 4.4" fill="#705041"/><path d="m28 3.4l-6.5 5.8c-.2 2.2.8 2.8 1.1 3.6.1.3-.3 1.2-.5 1.7-.5 1.1 1.1 1.1 1.6.8.6.6-.1 1.5 1.9.1 0 0-1.9 2-.1 1.7.2 1 .8 2.8 4.8-1 1.2-1.1.7-3.8.7-3.8l2.2-1.4-5.2-7.5" fill="#8a6859"/><path d="m22.3 4.9c4.3-3.7 8.1-2.3 9.1-1.3 2.5 2.5 2.9 6.4 1.6 9.9 0 0-1.3 0-2.1-1.3 0 0 1.5 0 .9-2.8-.5-2.4-3.3-2.6-3.2.9l-.3.1c-1.3-1.1-.9-3.6-2.9-3.4-1.8.1-4 2.6-4 2.6-.9-.7-.9-3.1.9-4.7" fill="#231f20"/><path d="m24.4 12c.2.5.1 1-.2 1.1-.3.1-.6-.2-.8-.7-.2-.5-.3-.9.1-1 .3-.2.7.1.9.6" fill="#574137"/><path d="m29.5 10.6c-.4-.9.1-2.1.8-2.4 0 0-.9 1.7.1 3 0 0-.7.1-.9-.6" fill="#705041"/><path d="m26.2 14.8c0 0-.6 1.1-.9 1.4-.5.6-.7.5-.5 0 .2-.4.7-.9.7-.9l.7-.5" fill="#574137"/><g fill="#3e4347"><path d="m31.8 13.7l-.9.5-3.9-5.6.9-.5z"/><path d="m31.6 14l-1-.2 1.7-4.6 1 .2z"/><path transform="matrix(.9794-.2018.2018.9794-2.3443 6.6467)" d="m30.8 13h1.3v3.7h-1.3z"/></g><path d="m35.2 9.6c-.1 1.4-4.7-.5-7.4-.6-3-.1-7.5 1.1-7.4 0 .2-4 3.6-7.1 7.7-6.9 4 .1 7.2 3.5 7.1 7.5" fill="#f15744"/><path fill="#3b946f" d="m30.3 18.8l-2.9 5-1.1.4.6 1 2.6-.2 2.8-5.6z"/><path d="m40.2 23.2c0 0-7.3 5.6-7.8 6.2-.5.6-.8 1.1-1.2 2.5l2.9 1.3c0-.1 6.3-8.5 6.1-10" fill="#94989b"/><g fill="#89664c"><path d="m60.8 32.3c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.4 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 12.3c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 59.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 48.1c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.8 10.7-8 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.4.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.6c-.6-1.7-1.3-2.6-1.8-3" fill="#89664c"/><path d="m28.5 47.1c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.6-2.8-3.4" fill="#574137"/><path d="m38.3 36.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0 0-6.4.8-13.1-3.2" fill="#89664c"/><path d="m57.1 54c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-2-1-.3 1.7-.8 2.9-1.2 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 28.1c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15-16.7-15-1.9-2.3-3.8-2.7-3.8-2.7-.2 2.3.7 4.2.7 4.2-.6 2.8-5.4 12-5.9 13.2-.5 1.2 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 43.3c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 62c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 38.2c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 27.6c0 0 2.4 2.6.9 4.8-2 3 4.1 8.5 11 5.4 4.9-2.2.2-7.6 2.4-9.7-.1.1-8.3 1.9-14.3-.5" fill="#89664c"/><g fill="#333"><path d="m5.4 25.4l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 .1-1.3 2.3-7.1 7.6"/><path d="m13.2 18.4c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 28.7c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.6c.2.1.5.3.9.7.6.8 1.8 2.5 2.5 4.4"/></g><g fill="#89664c"><path d="m7.3 19c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1.1-2 3.3"/><path d="m2.9 26.1c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4"/></g><path d="m21.5 26.2c-3.1-.1-6.6-1.1-8.9-2-2.5-.9-4.4-1.9-4.4-1.9l-.3.5c0 0 1.9 1 4.4 1.9 1.5.6 3 1 4.4 1.3 1.6.4 3.1.6 4.4.6.2 0 .4-.4.4-.4" fill="#333"/><path d="m28.7 24.4c0 0-6 .9-6.7 1.1 0 0 .1.4-.4 1.2l8.5.7 3.7-5.6 6.3 1.4c0 0 3 .1 6-2.7 0 0-5.8-6.2-12.8-5.8 0 0-1.1 2.3-3.4 3.4l-1.2 6.3" fill="#47b892"/><path d="m40.2 23.2c0 0-5.8 4.9-7 7.8-.8 2 1.3 4.9 1.7 5.9 0 0 2.2.2 3.5-1.1 0 0 .1-1.1-1.5-3.7 0 0 5.8-2.1 8.1-4.1 2.3-2 2.9-4 1.2-7.5l-6 2.7" fill="#d0d0d0"/><path d="m35.8 42.9c0 0-3.7 2-3.9 2.6-.2.6.6.9.6.9s3.2.4 6.8-.5l-.9-10.4c0 0-.9 1.2-3.8 1.4l1.2 6" fill="#333"/><path d="m22.2 26v-1.1c0-.4-.3-.7-.7-.7h-.5c-.3 0-.5.2-.6.4-.7 0-1.6.3-1.6 1.6 0 .2 0 1.4 1.4 1.4 2 0 2 0 2-1.6" fill="#8a6859"/><path d="m29.4 9.2c0 0-9.1 2.7-10.5 2.5-1.4-.2.8-2.1 1.4-2.6s8.5-.6 9.1.1" fill="#c9150d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c7.svg
index 0c3ac60..f790b68 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m30.712 12.342l1.418-.54 2.01 5.198-3.642 1.391z"/><path fill="#eba352" d="m30.655 12.234c.905 2.335.86 3.709-.834 4.354l.677 1.802c2-.764 1.862-3.55.806-6.274l-.649.118"/><path fill="#ffdd67" d="m28.784 3.763l-7 5.522c-.275 2.01.694 2.654.94 3.386.108.324-.32 1.157-.549 1.595-.51.977 1 1.033 1.444.748.585.598.163.983 1.312.426.629-.307 1.281-1.242 1.281-1.242-2.184 2.895-1.152 3.348-.085 2.584.585 1.516 1.535 1.154 3.613.361 1.693-.646 2.47-2.691 1.563-5.03l2.119-1.259-4.637-7.095"/><path fill="#231f20" d="m24.937 2.779c5.879-2.241 8.565 2.412 9.08 6.152.272 1.99-.252 3.525-1.197 4.459l-.716-.148-.8-1.126c0 0 1.047-.704.882-2.134-.074-.654-1.115-1.56-2.02-1.271-.631.203-1.342.994-1.477 1.205-.586-1.511-.884-3.191-2.095-3.246-.998-.043-4.03 3-4.813 2.615-2.101-1.026-.385-5.156 3.155-6.506"/><g fill="#574137"><path d="m30.423 10.307c-.115.027-.216.084-.298.16.011-.125.032-.252.06-.383.037-.162.092-.32.138-.501-.297.214-.501.565-.52.956-.015.396.194.762.487.975-.039-.182-.098-.342-.13-.5-.019-.102-.03-.2-.037-.298.046-.015.087-.03.128-.042.089-.021.164-.049.243-.064.077-.021.156-.027.248-.047.089-.018.184-.023.302-.052-.139-.179-.389-.254-.621-.204"/><path d="m24.552 11.676c.188.483.057.983-.293 1.116-.35.134-.783-.151-.972-.634-.188-.483-.056-.984.292-1.117.349-.132.784.151.973.635"/><path d="m26.21 14.197c0 0-.419 1.701-.584 1.98-.352.596-.628.396-.51-.036.119-.444 1.094-1.944 1.094-1.944"/></g><g fill="#3e4347"><path d="m31.783 13.721l-.903.461-3.86-5.621.898-.461z"/><path d="m31.63 13.981l-.989-.135 1.669-4.596.99.135z"/><path transform="matrix(.9794-.2018.2018.9794-2.344 6.647)" d="m30.751 12.958h1.35v3.725h-1.35z"/></g><path fill="#f15744" d="m35.16 9.553c-.056 1.357-4.714-.502-7.418-.611-2.969-.121-7.454 1.109-7.409.008.164-4 3.614-7.109 7.708-6.942 4.095.166 7.282 3.544 7.119 7.545"/><path fill="#3b946f" d="m30.335 18.841l-2.901 4.975-1.129.384.569 1.04 2.673-.24 2.793-5.585z"/><path fill="#94989b" d="m40.22 23.18c0 0-7.291 5.6-7.791 6.18-.502.584-.828 1.098-1.174 2.47l2.891 1.296c-.001-.001 6.281-8.387 6.074-9.946"/><g fill="#89664c"><path d="m60.824 32.33c2.611-4.04-7.907-6.089-12.07-.438v1.325c0 0 8.585-2.481 6.623 2.407-2.184 5.441 6.623 9.994 6.623 9.994s-4.844-7.621-1.176-13.288"/><path d="m9.232 12.307c0 0-.725-1.496-.343-4.157 0 0 2 1.364 3.381 4.496l-3.038-.339"/></g><path fill="#574137" d="m12.688 59.1l.563-4.379c0 0-.852.02-1.788-.23-.257.811-.647 2.225-.898 3.901 1.173.627 2.123.708 2.123.708"/><path fill="#89664c" d="m27.19 48.06c-.696.523-1.52 1.184-2.109 1.771l-3.463-1.015c0 0 3.154-4.841 10.71-8.03 0 0-8.498-3.136-11.351.981 0 0-3.808 5.668-5.094 7.02-1.29 1.351.062 2.559.71 2.759.649.198 9.672.958 9.672.958s1.234-1.045 2.782-1.646c-.658-1.424-1.373-2.309-1.857-2.795"/><path fill="#574137" d="m28.546 47.08c0 0-.604.408-1.354.975.483.486 1.198 1.371 1.857 2.795.741-.289 1.551-.477 2.331-.4 0-.001-1.164-2.534-2.834-3.37"/><path fill="#89664c" d="m38.29 36.434l-.783 5.815c0 0 7.891 1.333 11.201.093 0 0 2.936 7.171 8.359 11.7.406-.731.898-1.896 1.24-3.623-2.124-1.346-5.414-4.39-6.939-10.812 0 0-6.414.774-13.08-3.173"/><path fill="#574137" d="m57.06 54.04c.727.612 1.502 1.173 2.32 1.661 0 0 .813-2.02.87-4.324 0 0-.805-.231-1.95-.96-.341 1.727-.833 2.892-1.24 3.623"/><g fill="#b7805c"><path d="m44.825 28.05c-8.03.958-15.725 2.966-17.15-1.396-5.81-17.812-16.658-14.998-16.658-14.998-1.894-2.277-3.863-2.662-3.863-2.662-.158 2.259.716 4.166.716 4.166-.563 2.871-5.352 12.03-5.827 13.281-.479 1.248 2.883 3.422 2.883 3.422.698-.133.865-1.255 2.438-1.219.397.009-.713 1.408-.29 1.551.783.264 1.744-2.028 3.363-2.912 6.088-3.326 4.064-5.513 4.064-5.513 2.496 1.738 1.077 5.515-.002 7.489-2.544 4.65.118 11.49.118 11.49-2.46 1.905-7.911 2.979-7.911 2.979-1.861 9.82 1.466 13.383 3.853 14.663.251-1.677.642-3.091.898-3.901-.925-.247-1.93-.752-2.291-1.785-.731-2.088.667-6.786.667-6.786 6.472.776 10.546-1.237 15.188-2.383 4.646-1.146 9.14-.345 13.577.435 17.1 3 14.87-16.952 6.223-15.921"/><path d="m37.667 43.26c4.439 10.01 14.01 4.531 14.01 4.531-2.188 6.121-.58 10.313.795 12.48 1.19-.605 1.934-1.965 2.287-2.778-3.071-3.462-.879-8.07-.285-9.877.653-1.988-.298-3.269-.298-3.269-2.676-.615-4.249 1.221-7.423-2.867-3.17-4.086-9.09 1.78-9.09 1.78"/></g><g fill="#574137"><path d="m53.864 62c1.53-.068 1.975-3.508 1.975-3.508-.417-.318-.774-.65-1.079-.997-.354.813-1.097 2.173-2.287 2.778.73 1.147 1.391 1.727 1.391 1.727"/><path d="m34.13 38.16c0 0 .315 2.238-1.202 5.185 0 0 1.167-.048 2.221.108 0 0 .855-.974 1.225-5.069l-2.244-.224"/></g><path fill="#89664c" d="m28.16 27.617c0 0 2.354 2.556.926 4.762-1.96 3.03 4.086 8.526 10.984 5.445 4.939-2.203.176-7.631 2.371-9.653 0 0-8.277 1.837-14.281-.554"/><g fill="#333"><path d="m5.421 25.449l-.498-.547c5.685-5.254 6.959-7.486 6.975-7.51l.642.365c-.052.094-1.346 2.359-7.119 7.692"/><path d="m13.191 18.445c-.839-1.207-1.768-2.303-2.751-3.264-1.01-.984-2.1-1.585-2.566-2.02.005.004-.109.486-.21.797.446.422 1.424.938 2.266 1.755 1.407 1.37 3.214 3.93 4.841 7.511.166-.113.5-.58.562-.623-.685-1.488-1.256-2.888-2.142-4.158"/><path d="m6.765 28.7c.19-.095.683 0 .683 0-1.156-3.159-3.056-5.264-3.774-5.675l-.315.65c.235.141.466.303.912.748.636.639 1.812 2.386 2.494 4.277"/></g><g fill="#89664c"><path d="m7.26 18.994c0 0 .982.42 1.658-.407.678-.829.274-2.87.274-2.87s-1.331 1.056-1.932 3.277"/><path d="m2.897 26.07c0 0 1.346-.176.866 1.392-.482 1.564-.936-.848-.866-1.392"/></g><path fill="#333" d="m21.471 26.2c-3.137-.051-6.58-1.091-8.914-1.955-2.542-.941-4.356-1.883-4.376-1.891l-.275.533c.019.01 1.861.967 4.436 1.919 1.513.562 2.979 1.01 4.361 1.339 1.591.379 3.068.596 4.406.646.208-.204.362-.591.362-.591"/><path fill="#47b892" d="m28.742 24.369c0 0-5.97.869-6.674 1.085 0 0 .07.401-.351 1.239l8.505.668 3.686-5.582 6.313 1.4c0 0 2.989.15 5.953-2.688 0 0-5.801-6.227-12.75-5.759 0 0-1.143 2.313-3.363 3.409l-1.319 6.228"/><path fill="#d0d0d0" d="m40.22 23.18c0 0-5.842 4.909-7.04 7.828-.808 1.979 1.317 4.92 1.704 5.871 0 0 2.242.23 3.52-1.096 0 0 .084-1.063-1.504-3.713 0 0 5.789-2.078 8.08-4.117 2.29-2.037 2.886-4.04 1.19-7.461l-5.953 2.688"/><path fill="#333" d="m35.848 42.927c0 0-3.695 1.96-3.875 2.573-.182.613.619.885.619.885s3.25.385 6.826-.516l-.882-10.397c0 0-.866 1.214-3.8 1.421l1.112 6.03"/><path fill="#ffdd67" d="m22.17 26.03l.006-1.065c.001-.381-.31-.689-.694-.689l-.521-.002c-.277-.001-.517.156-.631.387-.695.047-1.607.293-1.612 1.566-.001.209-.007 1.375 1.389 1.379 2.054.005 2.054.005 2.063-1.576"/><path fill="#c9150d" d="m29.424 9.154c0 0-9.101 2.672-10.507 2.461-1.406-.209.758-2.135 1.418-2.617s8.467-.547 9.09.156"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m30.2 12.5l1.5-1.9 2.8 6.6-4.3 1.8z"/><path d="m28.6 16.7c1.6.3 1.6 2.3 1.6 2.3 1.7-.7 1.5-4.6.7-6.7l-2.3 4.4" fill="#eba352"/><path d="m28 3.4l-6.5 5.8c-.2 2.2.8 2.8 1.1 3.6.1.3-.3 1.2-.5 1.7-.5 1.1 1.1 1.1 1.6.8.6.6-.1 1.5 1.9.1 0 0-1.9 2-.1 1.7.2 1 .8 2.8 4.8-1 1.2-1.1.7-3.8.7-3.8l2.2-1.4-5.2-7.5" fill="#ffdd67"/><path d="m22.3 4.9c4.3-3.7 8.1-2.3 9.1-1.3 2.5 2.5 2.9 6.4 1.6 9.9 0 0-1.3 0-2.1-1.3 0 0 1.5 0 .9-2.8-.5-2.4-3.3-2.6-3.2.9l-.3.1c-1.3-1.1-.9-3.6-2.9-3.4-1.8.1-4 2.6-4 2.6-.9-.7-.9-3.1.9-4.7" fill="#ffb300"/><path d="m24.4 12c.2.5.1 1-.2 1.1-.3.1-.6-.2-.8-.7-.2-.5-.3-.9.1-1 .3-.2.7.1.9.6" fill="#937237"/><path d="m29.5 10.6c-.4-.9.1-2.1.8-2.4 0 0-.9 1.7.1 3 0 0-.7 0-.9-.6" fill="#eba352"/><path d="m26.2 14.8c0 0-.6 1.1-.9 1.4-.5.6-.7.5-.5 0 .2-.4.7-.9.7-.9l.7-.5" fill="#937237"/><g fill="#3e4347"><path d="m31.8 13.7l-.9.5-3.9-5.6.9-.5z"/><path d="m31.6 14l-1-.2 1.7-4.6 1 .2z"/><path transform="matrix(.9794-.2018.2018.9794-2.3443 6.6467)" d="m30.8 13h1.3v3.7h-1.3z"/></g><path d="m35.2 9.6c-.1 1.4-4.7-.5-7.4-.6-3-.1-7.5 1.1-7.4 0 .2-4 3.6-7.1 7.7-6.9 4 .1 7.2 3.5 7.1 7.5" fill="#f15744"/><path fill="#3b946f" d="m30.3 18.8l-2.9 5-1.1.4.6 1 2.6-.2 2.8-5.6z"/><path d="m40.2 23.2c0 0-7.3 5.6-7.8 6.2-.5.6-.8 1.1-1.2 2.5l2.9 1.3c0-.1 6.3-8.5 6.1-10" fill="#94989b"/><g fill="#89664c"><path d="m60.8 32.3c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.4 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 12.3c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 59.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 48.1c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.8 10.7-8 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.3.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.6c-.6-1.7-1.3-2.6-1.8-3" fill="#89664c"/><path d="m28.5 47.1c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.6-2.8-3.4" fill="#574137"/><path d="m38.3 36.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0 0-6.4.8-13.1-3.2" fill="#89664c"/><path d="m57.1 54c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-2-1-.3 1.7-.8 2.9-1.2 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 28.1c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15-16.7-15-1.9-2.3-3.8-2.7-3.8-2.7-.2 2.3.7 4.2.7 4.2-.6 2.8-5.4 12-5.9 13.2-.5 1.2 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 43.3c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 62c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 38.2c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 27.6c0 0 2.4 2.6.9 4.8-2 3 4.1 8.5 11 5.4 4.9-2.2.2-7.6 2.4-9.7-.1.1-8.3 1.9-14.3-.5" fill="#89664c"/><g fill="#333"><path d="m5.4 25.4l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 .1-1.3 2.3-7.1 7.6"/><path d="m13.2 18.4c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 28.7c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.6c.2.1.5.3.9.7.6.8 1.8 2.5 2.5 4.4"/></g><g fill="#89664c"><path d="m7.3 19c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1.1-2 3.3"/><path d="m2.9 26.1c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4"/></g><path d="m21.5 26.2c-3.1-.1-6.6-1.1-8.9-2-2.5-.9-4.4-1.9-4.4-1.9l-.3.5c0 0 1.9 1 4.4 1.9 1.5.6 3 1 4.4 1.3 1.6.4 3.1.6 4.4.6.2 0 .4-.4.4-.4" fill="#333"/><path d="m28.7 24.4c0 0-6 .9-6.7 1.1 0 0 .1.4-.4 1.2l8.5.7 3.7-5.6 6.3 1.4c0 0 3 .1 6-2.7 0 0-5.8-6.2-12.8-5.8 0 0-1.1 2.3-3.4 3.4l-1.2 6.3" fill="#47b892"/><path d="m40.2 23.2c0 0-5.8 4.9-7 7.8-.8 2 1.3 4.9 1.7 5.9 0 0 2.2.2 3.5-1.1 0 0 .1-1.1-1.5-3.7 0 0 5.8-2.1 8.1-4.1 2.3-2 2.9-4 1.2-7.5l-6 2.7" fill="#d0d0d0"/><path d="m35.8 42.9c0 0-3.7 2-3.9 2.6-.2.6.6.9.6.9s3.2.4 6.8-.5l-.9-10.4c0 0-.9 1.2-3.8 1.4l1.2 6" fill="#333"/><path d="m22.2 26v-1.1c0-.4-.3-.7-.7-.7h-.5c-.3 0-.5.2-.6.4-.7 0-1.6.3-1.6 1.6 0 .2 0 1.4 1.4 1.4 2 0 2 0 2-1.6" fill="#ffdd67"/><path d="m29.4 9.2c0 0-9.1 2.7-10.5 2.5-1.4-.2.8-2.1 1.4-2.6s8.5-.6 9.1.1" fill="#c9150d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c8.svg
index c05d596..85ecdbf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m2.779 40.34c-2.06 11.619.406 16.695 2.295 18.584 1.889 1.889 6.967 4.356 18.587 2.296-4.264-2.274-8.321-5.283-11.96-8.923-3.638-3.638-6.647-7.697-8.922-11.957"/><path d="m61.07 23.807c2.06-11.62.308-17.407-1.583-19.297-1.89-1.89-7.682-3.643-19.299-1.583 4.263 2.276 8.321 5.283 11.961 8.921 3.637 3.641 6.645 7.698 8.921 11.959"/><path d="m30.831 5.378c-5.623 2-11.183 5.072-15.855 9.747-4.673 4.673-7.742 10.231-9.745 15.855 1.89 6.092 5.569 12.05 10.654 17.14 5.083 5.085 11.04 8.764 17.14 10.654 5.623-2 11.183-5.072 15.856-9.746 4.673-4.675 7.742-10.234 9.746-15.857-1.891-6.091-5.569-12.05-10.655-17.13-5.085-5.085-11.04-8.764-17.14-10.655"/></g><g fill="#fff"><path d="m5.23 30.981c-1.123 3.149-1.911 6.313-2.451 9.36 2.274 4.26 5.283 8.319 8.922 11.957 3.639 3.64 7.696 6.648 11.96 8.923 3.045-.54 6.21-1.327 9.359-2.45-6.093-1.891-12.05-5.569-17.14-10.654-5.084-5.087-8.763-11.05-10.654-17.14"/><path d="m52.15 11.848c-3.64-3.638-7.698-6.645-11.961-8.921-3.046.541-6.211 1.329-9.36 2.451 6.094 1.891 12.05 5.569 17.14 10.655 5.086 5.085 8.765 11.04 10.655 17.13 1.122-3.149 1.909-6.315 2.45-9.36-2.276-4.261-5.284-8.318-8.921-11.959"/><path d="m37.827 19.837c2.111 2.112 4.225 4.223 6.337 6.336 1.021 1.021 2.605-.563 1.583-1.584-2.111-2.111-4.224-4.225-6.335-6.337-1.022-1.02-2.606.564-1.585 1.585"/><path d="m33.08 24.589c2.112 2.113 4.225 4.225 6.337 6.338 1.021 1.02 2.605-.563 1.584-1.586-2.113-2.113-4.225-4.225-6.337-6.336-1.021-1.021-2.606.563-1.584 1.584"/><path d="m28.322 29.342c2.111 2.112 4.225 4.223 6.337 6.336 1.021 1.02 2.604-.563 1.583-1.584-2.112-2.113-4.225-4.224-6.337-6.337-1.019-1.019-2.604.564-1.583 1.585"/><path d="m23.569 34.09c2.113 2.112 4.225 4.225 6.337 6.336 1.021 1.021 2.605-.563 1.584-1.584-2.112-2.114-4.225-4.225-6.337-6.337-1.019-1.022-2.604.562-1.584 1.585"/><path d="m18.818 38.847c2.111 2.111 4.223 4.223 6.336 6.336 1.021 1.021 2.605-.562 1.584-1.583-2.112-2.114-4.224-4.226-6.337-6.339-1.019-1.021-2.604.564-1.583 1.586"/><path d="m21.354 44.23c2.113-2.112 21.329-21.33 23.442-23.443 1.021-1.02-.563-2.604-1.584-1.582-2.112 2.111-21.329 21.328-23.442 23.439-1.02 1.024.563 2.608 1.584 1.586"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m2.8 40.3c-2.1 11.7.4 16.7 2.3 18.6s7 4.4 18.6 2.3c-4.3-2.3-8.3-5.3-12-8.9-3.6-3.6-6.6-7.7-8.9-12"/><path d="m61.1 23.8c2.1-11.6.3-17.4-1.6-19.3-1.9-1.9-7.7-3.6-19.3-1.6 4.3 2.3 8.3 5.3 12 8.9 3.6 3.7 6.6 7.7 8.9 12"/><path d="m30.8 5.4c-5.6 2-11.2 5.1-15.9 9.7-4.6 4.7-7.7 10.3-9.7 15.9 1.9 6.1 5.6 12 10.7 17.1 5.1 5.1 11 8.8 17.1 10.7 5.6-2 11.2-5.1 15.9-9.7 4.7-4.7 7.7-10.2 9.7-15.9-1.9-6.1-5.6-12-10.7-17.1-5-5.2-11-8.8-17.1-10.7"/></g><g fill="#fff"><path d="m5.2 31c-1.1 3.1-1.9 6.3-2.5 9.4 2.3 4.3 5.3 8.3 8.9 12 3.6 3.6 7.7 6.6 12 8.9 3-.5 6.2-1.3 9.4-2.5-6.1-1.9-12.1-5.6-17.1-10.7-5.1-5.1-8.8-11-10.7-17.1"/><path d="m52.2 11.8c-3.6-3.6-7.7-6.6-12-8.9-3 .5-6.2 1.3-9.4 2.5 6.1 1.9 12.1 5.5 17.2 10.6 5.1 5.1 8.8 11 10.7 17.1 1.1-3.1 1.9-6.3 2.5-9.4-2.4-4.2-5.4-8.2-9-11.9"/><path d="m37.8 19.8c2.1 2.1 4.2 4.2 6.3 6.3 1 1 2.6-.6 1.6-1.6-2.1-2.1-4.2-4.2-6.3-6.3-1-1-2.6.6-1.6 1.6"/><path d="m33.1 24.6c2.1 2.1 4.2 4.2 6.3 6.3 1 1 2.6-.6 1.6-1.6-2.1-2.1-4.2-4.2-6.3-6.3-1.1-1-2.6.6-1.6 1.6"/><path d="m28.3 29.3c2.1 2.1 4.2 4.2 6.3 6.3 1 1 2.6-.6 1.6-1.6-2.1-2.1-4.2-4.2-6.3-6.3-1-1-2.6.6-1.6 1.6"/><path d="m23.6 34.1c2.1 2.1 4.2 4.2 6.3 6.3 1 1 2.6-.6 1.6-1.6-2.1-2.1-4.2-4.2-6.3-6.3-1.1-1-2.7.6-1.6 1.6"/><path d="m18.8 38.8c2.1 2.1 4.2 4.2 6.3 6.3 1 1 2.6-.6 1.6-1.6-2.1-2.1-4.2-4.2-6.3-6.3-1-1-2.6.6-1.6 1.6"/><path d="m21.4 44.2c2.1-2.1 21.3-21.3 23.4-23.4 1-1-.6-2.6-1.6-1.6-2.1 2.1-21.3 21.3-23.4 23.4-1 1.1.5 2.7 1.6 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3c9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3c9.svg
index 12beed0..dca5f04 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3c9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3c9.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m52.42 2.281c-2.742-.378-6.753-.435-11.336.211l-38.59 38.59c-.646 4.581-.589 8.592-.21 11.334l9.301 9.303c2.743.379 6.753.436 11.336-.211l38.59-38.589c.646-4.582.589-8.592.211-11.334l-9.302-9.304"/><g fill="#e8e8e8"><path d="m22.917 61.51c8.215-1.157 18.266-4.576 26.14-12.449 7.873-7.875 11.292-17.926 12.449-26.14.244-1.733-3 1.871-3.587 3.515-2.263 6.33-6.06 13.307-12.12 19.369-6.06 6.06-13.04 9.857-19.371 12.12-1.644.587-5.249 3.831-3.514 3.587"/><path d="m41.08 2.493c-8.214 1.159-18.266 4.574-26.14 12.448-7.875 7.876-11.292 17.928-12.449 26.14-.245 1.734 3-1.869 3.587-3.514 2.262-6.329 6.06-13.306 12.12-19.369 6.06-6.06 13.04-9.855 19.371-12.12 1.645-.587 5.248-3.832 3.515-3.588"/></g><path fill="#3e4347" d="m59.09 4.908c-1.648-1.646-3.973-2.622-6.676-2.627-1.48-.204-8.51 1.662-10.07 2.333-7.42 1.909-16.511 5.947-24.15 13.585-7.636 7.638-11.676 16.726-13.584 24.14-.667 1.542-2.539 8.589-2.333 10.07.002 2.703.976 5.02 2.626 6.675 0 0 0 0 .001.001 1.649 1.648 3.973 2.621 6.674 2.625 1.483.203 8.522-1.662 10.07-2.332 7.421-1.908 16.512-5.947 24.15-13.584 7.641-7.64 11.679-16.73 13.586-24.15.67-1.558 2.536-8.588 2.332-10.07-.004-2.704-.977-5.03-2.625-6.673-.002-.001-.002-.001-.002-.002"/><path fill="#ed4c5c" d="m54.833 15.725c.198-4.01-2.545-6.75-6.559-6.557-5.646-.497-18.733 1.236-28.3 10.805-9.568 9.569-11.303 22.655-10.805 28.3-.199 4.01 2.545 6.755 6.559 6.558 5.646.498 18.735-1.236 28.3-10.804 9.57-9.57 11.305-22.656 10.805-28.3"/><path fill="#e8e8e8" d="m53.09 17.643c-.052-3.871-2.866-6.679-6.735-6.735-5.488-.82-18.04.069-26.708 8.741-8.675 8.673-9.562 21.22-8.741 26.707.049 3.869 2.867 6.685 6.735 6.735 5.49.821 18.04-.067 26.709-8.741s9.561-21.22 8.74-26.707"/><g fill="#3e4347"><path d="m21.805 50.52c.012-.012.006-.04-.012-.058l-4.152-4.153-.351.316c-.248-.248-.521-.521-.754-.767.217-.216.52-.52.771-.77.182-.182 1.227-1.228 1.361-1.361.239-.239.444-.443.578-.578.536.489 1.084 1 1.616 1.511-.143.195-.312.436-.477.656l-.766-.58c-.092-.067-.168-.097-.268-.033-.099.064-.304.198-.666.561-.012.012-.042.041-.059.059l1.67 1.67c.172-.19.336-.354.491-.526.034-.034.008-.131-.093-.243l-.291-.361c.178-.196.379-.38.558-.54.276.288.594.605.912.924.313.324.631.643.86.872-.16.178-.335.389-.522.576l-.376-.331c-.145-.12-.227-.145-.279-.093-.173.154-.345.311-.514.48l1.563 1.563c.168.168.234.153.497-.109.234-.234.354-.406.409-.514.03-.086.017-.158-.058-.279l-.537-.877c.243-.154.503-.291.731-.412.442.582.893 1.174 1.339 1.771-.298.297-1.113 1.094-1.924 1.906-.27.268-.552.568-.791.809-.248-.248-.508-.519-.745-.758l.279-.331"/><path d="m20.734 43.26c-.247-.247-.541-.554-.782-.806.408-.41 1.016-1.018 1.459-1.461.883.531 2.987 1.854 4.434 2.775l.047-.047c-.904-1.465-1.99-3.204-2.758-4.451.408-.408.964-.963 1.355-1.354.247.248.533.545.783.808l-.26.313c-.012.012 0 .035.027.062 1.254 1.254 2.779 2.768 4.11 4.087l.347-.295c.23.23.505.504.737.748-.193.193-.479.479-.701.701-.28.28-.606.606-.853.852-.238-.238-.513-.512-.736-.748l.307-.358c.012-.012 0-.036-.018-.052-.934-.924-1.92-1.898-2.992-2.946l-.047.048c1.182 1.893 1.946 3.264 2.537 4.334-.072.091-.309.346-.49.526-1.231-.694-2.528-1.466-4.444-2.694l-.053.055c1.075 1.098 2.069 2.116 3.075 3.143l.438-.367c.229.23.504.504.736.748-.204.205-.508.509-.752.754-.211.21-.404.402-.597.596-.238-.238-.513-.513-.736-.748l.271-.324c.009-.026.006-.041-.013-.059-1.258-1.269-2.844-2.881-4.084-4.131l-.347.291"/><path d="m30.612 41.982c-.897-.197-1.771-.72-2.707-1.656-1.167-1.166-1.709-2.479-1.672-3.4.018-.705.248-1.201.697-1.65.373-.373.854-.57 1.442-.578.874-.024 2.094.611 3.127 1.645.857.857 1.578 1.975 1.742 2.943.149.874-.064 1.582-.637 2.154-.514.513-1.272.689-1.992.542m1.517-2.277c-.207-.605-.776-1.326-1.519-2.067-.716-.716-1.45-1.253-1.997-1.52-.455-.233-.816-.208-1.032.008-.239.239-.271.535-.166.907.157.497.657 1.253 1.495 2.092.901.901 1.557 1.394 2.147 1.563.449.135.742.054.929-.133.182-.181.286-.392.143-.85"/><path d="m32.404 31.516c-.017.018 0 .035.019.053.911.91 1.879 1.867 2.78 2.803.652.675 1.135 1.287 1.289 2.02.164.702.036 1.378-.564 1.979-.328.328-.572.502-.859.647-.625-.507-1.257-1.022-1.866-1.526.104-.246.238-.521.384-.772l1.105.731c.051.038.1.041.15.045.155.004.327-.081.415-.169.094-.093.228-.298.118-.595-.137-.358-.525-.747-.923-1.145-.963-.963-2.039-2.025-3.069-3.045l-.646.592c-.238-.238-.504-.504-.728-.738.321-.321.794-.794 1.145-1.145.274-.275.59-.59.806-.807.23.23.504.504.728.74l-.284.337"/><path d="m33.12 30.764c-.24-.238-.514-.514-.752-.751.245-.245.622-.604.891-.874.292-.291.616-.633.855-.872.238.238.513.513.745.757l-.335.389c-.013.012.005.029.031.056l4.117 4.151.418-.364c.248.247.512.513.754.766-.238.239-.593.575-.891.872-.263.264-.586.605-.85.868-.247-.248-.512-.513-.754-.766l.313-.365c.012-.012 0-.035-.018-.054l-4.144-4.143-.38.33"/><path d="m40.19 32.404c-.897-.197-1.771-.721-2.707-1.656-1.167-1.167-1.708-2.479-1.673-3.398.019-.708.248-1.203.697-1.652.374-.373.854-.571 1.443-.577.874-.025 2.094.61 3.127 1.643.857.857 1.576 1.975 1.74 2.942.15.875-.064 1.584-.637 2.156-.512.513-1.27.689-1.99.542m1.518-2.278c-.208-.604-.776-1.325-1.52-2.067-.715-.715-1.45-1.252-1.997-1.518-.455-.233-.815-.208-1.031.007-.24.239-.271.535-.166.907.157.496.656 1.252 1.494 2.092.902.901 1.558 1.393 2.148 1.563.449.135.741.053.929-.133.181-.182.286-.393.143-.851"/><path d="m44.06 28.25c.009-.027.006-.043-.012-.061l-4.158-4.145-.356.321c-.247-.248-.512-.512-.745-.757.328-.328.783-.783 1.121-1.121 1.407.519 3.834 1.485 5.511 2.158l.029-.029c-1.021-1.01-2.056-2.044-3.083-3.048l-.439.402c-.237-.238-.521-.521-.744-.757.229-.228.502-.501.759-.759.204-.204.441-.458.616-.634.238.238.504.503.74.763l-.23.284c-.012.012-.01.026.025.061l4.804 4.862c-.028.206-.246.583-.538.875-1.084-.312-3.02-.934-5.207-1.773l-.041.042c.896.906 1.744 1.754 2.611 2.635l.459-.404c.24.238.507.518.749.771-.245.245-.563.545-.845.826-.187.187-.375.394-.539.558-.248-.248-.513-.513-.754-.766l.267-.304"/><path d="m48.33 24.01c.01-.012.005-.042-.013-.06l-4.152-4.152-.351.316c-.248-.248-.521-.521-.754-.766.217-.216.52-.52.771-.771.181-.181 1.226-1.227 1.36-1.36.239-.24.443-.444.578-.578.536.489 1.084 1 1.616 1.511-.144.195-.312.435-.478.655l-.766-.579c-.09-.068-.167-.098-.267-.033s-.304.198-.667.56c-.011.012-.04.041-.058.059l1.669 1.67c.174-.19.336-.354.492-.526.034-.036.008-.131-.094-.244l-.291-.362c.178-.196.38-.379.559-.54.276.288.594.605.912.924.313.324.63.643.859.872-.16.179-.334.389-.521.576l-.377-.33c-.145-.121-.227-.146-.278-.093-.173.155-.345.31-.515.479l1.563 1.564c.168.168.235.153.499-.11.232-.233.353-.406.408-.513.031-.086.017-.159-.058-.279l-.538-.876c.244-.154.504-.291.732-.414.442.583.893 1.174 1.338 1.771-.297.298-1.111 1.095-1.923 1.907-.27.268-.552.569-.792.809-.247-.247-.506-.518-.745-.757l.282-.33"/><path fill-rule="evenodd" d="m29.12 27.789l-.152.559c-.115-.043-.244-.021-.332.066l-.223.223c-.088.087-.108.217-.064.332l-.561.152-1.341.363.977.977.978.977.363-1.34.152-.561c.114.043.244.022.332-.064l.223-.223c.088-.088.108-.219.065-.333l.56-.152 1.341-.363-.978-.978-.977-.976-.363 1.341"/><path d="m24.363 27.02c.366.081.728.046 1.069-.074.343-.119.66-.325.924-.588.261-.263.466-.579.585-.92.119-.342.156-.705.075-1.071.293.231.443.651.394 1.104-.044.452-.285.935-.647 1.293-.361.363-.844.604-1.295.648-.454.049-.875-.1-1.105-.392"/><path fill-rule="evenodd" d="m26.854 19.303l-.07-.071c-.056-.055-.072-.061-.117-.046-.078.025-.158.055-.232.091-.057.027-.114.058-.174.095-1.91-.763-4.17-.371-5.715 1.174-1.546 1.545-1.938 3.805-1.176 5.714-.036.06-.068.119-.094.175-.037.074-.066.153-.091.232-.015.045-.009.061.046.116l.071.072c.134.134.063.099.216.06.05-.014.102-.019.156-.018.23.409.521.795.871 1.145 2.068 2.069 5.425 2.069 7.496-.001 2.068-2.07 2.068-5.425-.001-7.495-.349-.349-.734-.64-1.144-.871-.001-.054.004-.107.017-.156.041-.152.076-.082-.059-.216m-5.865 1.684c1.259-1.259 3.061-1.649 4.656-1.169-.486.404-.971.906-1.234 1.22-.422.504-.706.995-.86 1.475-.148.445-.593.89-1.038 1.039-.479.153-.971.438-1.475.86-.314.263-.816.748-1.22 1.233-.481-1.595-.091-3.396 1.171-4.658m6.61 6.611c-1.826 1.826-4.786 1.827-6.611.002-.024-.025-.049-.051-.073-.076.558.326 1.104.352 1.643.107.577-.263 1.044-.739 1.293-1.322.137-.318.193-.663.119-1.057-.131-.689-.471-.861-.679-1.357-.182-.433.171-.785.603-.603.498.208.669.547 1.358.678.393.075.737.019 1.057-.119.583-.25 1.059-.715 1.321-1.293.244-.538.219-1.085-.107-1.643.025.024.053.048.077.073 1.824 1.825 1.824 4.785-.001 6.61"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M59,5c-5.6-5.6-28.4-4.2-43.3,10.7C0.8,30.6-0.6,53.3,5,59c5.6,5.6,28.4,4.2,43.3-10.7
+ C63.2,33.4,64.6,10.7,59,5z" fill="#e8e8e8"/><path d="m58 14c-1.5 3.3-3.1 6.4-5 9.5-3.6 5.9-7.9 11.6-12.4 16.9-4.2 5-9.2 10.3-15.2 13.2-3.1 1.5-6.3 1.7-9.5 2.4-2.9.7-6.5 2.4-6.9 5.1 8.8 2.7 26.8-.3 39.3-12.8 12-12 15.2-29 13.1-38.2-1.4.9-2.5 2.1-3.4 3.9" fill="#c5d4d8"/><path d="m38.9 3.1c-1.5.3-3 .7-4.5 1.2-6.1 2.9-12.4 7.4-17.4 12.3-14.7 14.8-15.8 37.1-13 39.8 4 4 23.9-1.8 38-17.7 11.6-13 17-27.3 17.6-33-.3-.2-.5-.5-.6-.7-3.1-3-11-4-20.1-1.9m.8 33.3c-12.8 12.8-29 16.5-32.6 12.9-2.9-2.9.2-19.6 13-32.4 12.8-12.9 29.3-16.1 32.4-12.9 3.6 3.6 0 19.6-12.8 32.4" fill="#4b53a2"/><g fill="#cb2c41"><path d="m16.7 27.1c-4.6 7.4-5.8 14.5-4 16.3 1.8 1.8 8.9.5 16.3-4-6.3 3.2-12.3 3.6-14.1 1.9-1.8-1.9-1.4-7.9 1.8-14.2"/><path d="m29.8 14c6.3-3.2 12.3-3.6 14.1-1.9s1.3 7.8-1.9 14.1c4.6-7.4 5.8-14.5 4-16.3-1.7-1.7-8.8-.5-16.2 4.1"/><path d="m59.5 5.7c0 0 0 0 0 0-.6 5.8-6 20-17.6 33-14.1 15.9-33.9 21.8-37.9 17.7-2.7-2.7-1.7-25 13.1-39.8 5-5 11.3-9.4 17.4-12.3-6.5 2.1-13.2 5.8-18.8 11.4-14.9 14.9-16.3 37.7-10.7 43.3 1.8 1.8 5.5 2.9 10 3 8.6-2.5 21.5-8.2 32.5-23.7 6.3-8.6 11.2-18.3 14.5-23.9-.2-3.8-1.1-6.8-2.5-8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fb.svg
index aca7526..8484a53 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m14.393 7.459v3.824c0 1.363-1.102 2.477-2.457 2.482l-1.84.015c-.977.007-1.822-.558-2.221-1.38-2.455-.156-5.666-1.026-5.662-5.599 0-.753-.004-4.935 4.92-4.965 7.256-.049 7.256-.049 7.26 5.623"/><path fill="#e6b796" d="m7.91 11.438c.113-2.94 3.527-2.456 5.588-2.518.16-.005.16-.255 0-.25-2.236.066-5.715-.4-5.838 2.768-.006.161.244.161.25 0"/><g fill="#ffe1bd"><path d="m36.29 10.263c-.395-1.7.668-3.38 2.373-3.755 1.709-.373 3.408.703 3.803 2.404l6.42 27.719c.393 1.7-.67 3.379-2.375 3.756-1.711.373-3.408-.705-3.803-2.405l-6.418-27.719"/><path d="m13.08 10.607c-1.74-.143-3.02-1.664-2.855-3.404.162-1.74 1.705-3.03 3.447-2.891l25.928 2.101c1.738.144 3.02 1.665 2.854 3.405-.164 1.74-1.707 3.03-3.447 2.89l-25.927-2.101"/><path d="m63 45.05l-16.899 15.459c-6.81-15.758-10.744-17.334-10.744-17.334l5.676-14.07c0 0 4.342-2.087 21.967 15.942"/></g><path fill="#e6b796" d="m26.572 46.621c9.291 8.486 21.842-10.388 12.625-23.786l-12.625 23.786"/><circle fill="#ffe1bd" cx="26.11" cy="30.09" r="14.956"/><path fill="#f15744" d="m25.17 29.15c4.072-4.072 8.629-6.889 12.762-8.205-.383-.492-.789-.975-1.242-1.428-5.84-5.841-15.309-5.841-21.15 0-5.842 5.84-5.842 15.311 0 21.15.453.453.934.857 1.428 1.24 1.315-4.132 4.134-8.688 8.202-12.759"/><g fill="#413735"><path d="m27.971 33.981c-.664-1.485-3.01-1.874-5.246-.872-2.227 1-3.494 3.02-2.832 4.502.664 1.486 3.01 1.879 5.238.877 2.232-1 3.508-3.02 2.84-4.507"/><path d="m30.01 31.945c-1.486-.664-1.875-3.01-.873-5.248 1-2.224 3.02-3.494 4.502-2.83 1.486.664 1.879 3.01.877 5.237-1 2.234-3.02 3.509-4.506 2.841"/><path d="m27.23 34.435l3.231-3.235-.805-.655-3.084 3.085z"/></g><path fill="#e6b796" d="m29.508 35.24c.488.488 1.273.488 1.762-.001.488-.487.488-1.272 0-1.763l-1.762 1.764"/><path fill="#574137" d="m36.23 36.07c.789.789-.375 1.475-1.516 2.615s-1.824 2.307-2.617 1.516c-.789-.793-.506-2.357.635-3.498 1.14-1.141 2.705-1.425 3.498-.633"/><path fill="#e6b796" d="m47.18 35.15c0-.589.094-1.151.26-1.671-1.055.512-1.801 1.756-1.801 3.211 0 1.912 1.285 3.463 2.869 3.463.547 0 1.059-.189 1.494-.51-1.629-.552-2.822-2.351-2.822-4.493"/><path fill="#42ade2" d="m59.43 43.57c-1.152 0-2.193-.439-2.996-1.145-.957-.838-1.574-2.053-1.574-3.426 0 2.525-2.047 4.57-4.572 4.57s-4.57-2.045-4.57-4.57c0 2.525-2.047 4.57-4.572 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.047 4.57-4.57 4.57-2.525 0-4.572-2.045-4.572-4.57 0 1.373-.615 2.588-1.572 3.426-.805.703-1.846 1.145-3 1.145-2.523 0-4.57-2.045-4.57-4.57v25h64v-25c-.004 2.525-2.051 4.57-4.576 4.57"/><g fill="#428bc1"><path d="m23.22 57.5c-1.646.199-3.469.096-5.04-.426-2.041-.623-3.855-1.736-5.984-2.123-2.863-.5-5.994-.053-8.672 1.055 3.496-.199 6.844-.539 10.199.697 2.984 1.098 6.375 2.258 9.492.797"/><path d="m35.639 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.613-3.857-1.744-5.988-2.123-2.838-.49-6.02-.076-8.668 1.057 3.484-.227 6.855-.537 10.197.697 2.97 1.095 6.388 2.263 9.492.797"/><path d="m48.06 57.5c-1.492.184-3.672.254-5.03-.426-2.045-.615-3.857-1.744-5.988-2.123-2.859-.502-5.996-.053-8.67 1.055 3.494-.201 6.846-.541 10.199.697 2.976 1.098 6.38 2.262 9.49.797"/><path d="m60.48 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.611-3.855-1.74-5.986-2.123-2.844-.49-6.02-.074-8.672 1.057 3.484-.227 6.857-.535 10.199.697 2.98 1.095 6.376 2.257 9.492.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.3 12.3c6.1 7.6 7.7 11.6 7.2 18.3 7.6 0 9.4 6.2 14.4 6.2v9.8h-29.5c0 0 1.1-1.7-.1-4.1l1.1-8.4c0 0 1.9 2.6 5 .9 0 0-3.5-2.7-1.4-6.9-1.2-2.6-1.3-3.7-.9-7.6-6.6-2.7-12.7-2.2-19.3-1.8-2.1 3.3-8.2 4.8-10.8 4.3-1.5-.3 4-1.6 3-2.1 0 0-2.8.9-6.8.3-.5-.1 1-3.8 2.2-4.7 1.1-.8 4-2.4 6.7-2.3 1.7.1 3.4 1 4.8 1 1.7.1 3.9-.8 6.1-1.3 5.7-1.5 10.8-2.4 18.3-1.6" fill="#ffe1bd"/><g fill="#e6b796"><path d="m37 28.1c0 0 2.9 4.3 8.9 3.2-5.3-.9-8.9-3.2-8.9-3.2"/><path d="m39.9 23.4c0 0-2.1-5.2-8.1-4.2 4.7 1 8.1 4.2 8.1 4.2"/><path d="m52.3 42.5c0 0 1.9-9.2-5.2-11 5.7 2.5 5.2 11 5.2 11"/><path d="m32.9 34.5l-.9 7.9c3.9.6 7.3-.1 7.3-.1-2.5-6.4-6.4-7.8-6.4-7.8"/><ellipse transform="matrix(.1104-.9939.9939.1104 5.0751 83.6497)" cx="49.3" cy="39" rx="1.2" ry=".9"/></g><path d="m8.4 36.7c-.8 6.5 4.7 12.5 12.2 13.4 3.3.4 7-1.1 9.6-2.6 3.2-1.8 5.3-6.4 5.4-7.6.1-1.2-.8-6.1-3.5-8.6-2.2-2-5.4-4.3-8.7-4.7-7.5-.9-14.2 3.6-15 10.1" fill="#ffe1bd"/><path d="m20.7 38.2c1.1-9.4 6.1-10.6 6.1-10.6 0 0-1.1-.8-3.5-1.1-7.5-.9-14.2 3.6-15 10.1-.8 6.5 4.7 12.5 12.2 13.4 2.4.3 3.6-.2 3.6-.2 0 .1-4.5-2.2-3.4-11.6" fill="#f15744"/><path d="m25.1 40c-1.4-.5-3.1.9-3.8 3-.7 2.1-.1 4.2 1.3 4.7 1.4.5 3.1-.9 3.8-3 .7-2.2.2-4.3-1.3-4.7" fill="#231f20"/><path d="m24.9 41.1c-1-.3-2.2.6-2.7 2.1-.5 1.5-.1 2.9.9 3.3 1 .3 2.2-.6 2.7-2.1.5-1.5.1-3-.9-3.3" fill="#44618b"/><path d="m24.7 37.9c-1.5-.1-2.5-2-2.4-4.2.2-2.2 1.5-3.9 3-3.8 1.5.1 2.5 2 2.4 4.2-.2 2.2-1.5 3.9-3 3.8" fill="#231f20"/><path d="m24.8 36.7c-1.1-.1-1.8-1.4-1.7-3 .1-1.6 1.1-2.8 2.1-2.7 1.1.1 1.8 1.4 1.7 3-.1 1.6-1.1 2.8-2.1 2.7" fill="#44618b"/><g fill="#428bc1"><path d="m24.2 37.2l-.2 3.2h1.2l.3-3.1z"/><path d="m26 30.5l1.4-2.5-1.1-.6-1.7 2.6z"/></g><path d="m27.3 40.1c.6.1 1.2-.4 1.3-1 .1-.6-.4-1.2-1-1.3l-.3 2.3" fill="#e6b796"/><path d="m32.6 36.9c1 .1.6 1.3.4 2.7s0 2.7-1 2.6c-1-.1-1.7-1.4-1.5-2.9.1-1.4 1.1-2.5 2.1-2.4" fill="#574137"/><g fill="#44618b"><path transform="matrix(.0921-.9957.9957.0921-17.8931 61.2024)" d="m24.3 39.9h.6v1h-.6z"/><path transform="matrix(.0666-.9978.9978.0666-14.0109 59.6251)" d="m24.6 36.8h.6v1h-.6z"/><path transform="matrix(.4235-.9059.9059.4235-12.7597 40.372)" d="m25.1 29.6h.6v1.2h-.6z"/></g><path fill="#75d6ff" d="m2 42h60v20h-60z"/><g fill="#42ade2"><path d="m23.8 55.8c-1.5.2-3.3.1-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.8 2.1 8.8.7"/><path d="m35.4 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m47 55.8c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m58.7 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fc.svg
index 968dab6..456bee3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m14.393 7.459v3.824c0 1.363-1.102 2.477-2.457 2.482l-1.84.015c-.977.007-1.822-.558-2.221-1.38-2.455-.156-5.666-1.026-5.662-5.599 0-.753-.004-4.935 4.92-4.965 7.256-.049 7.256-.049 7.26 5.623"/><path fill="#e0a372" d="m7.91 11.438c.113-2.94 3.527-2.456 5.588-2.518.16-.005.16-.255 0-.25-2.236.066-5.715-.4-5.838 2.768-.006.161.244.161.25 0"/><g fill="#fed0ac"><path d="m36.29 10.263c-.395-1.7.668-3.38 2.373-3.755 1.709-.373 3.408.703 3.803 2.404l6.42 27.719c.393 1.7-.67 3.379-2.375 3.756-1.711.373-3.408-.705-3.803-2.405l-6.418-27.719"/><path d="m13.08 10.607c-1.74-.143-3.02-1.664-2.855-3.404.162-1.74 1.705-3.03 3.447-2.891l25.928 2.101c1.738.144 3.02 1.665 2.854 3.405-.164 1.74-1.707 3.03-3.447 2.89l-25.927-2.101"/><path d="m63 45.05l-16.899 15.459c-6.81-15.758-10.744-17.334-10.744-17.334l5.676-14.07c0 0 4.342-2.087 21.967 15.942"/></g><path fill="#e0a372" d="m26.572 46.621c9.291 8.486 21.842-10.388 12.625-23.786l-12.625 23.786"/><circle fill="#fed0ac" cx="26.11" cy="30.09" r="14.956"/><path fill="#f15744" d="m25.17 29.15c4.072-4.072 8.629-6.889 12.762-8.205-.383-.492-.789-.975-1.242-1.428-5.84-5.841-15.309-5.841-21.15 0-5.842 5.84-5.842 15.311 0 21.15.453.453.934.857 1.428 1.24 1.315-4.132 4.134-8.688 8.202-12.759"/><g fill="#413735"><path d="m27.971 33.981c-.664-1.485-3.01-1.874-5.246-.872-2.227 1-3.494 3.02-2.832 4.502.664 1.486 3.01 1.879 5.238.877 2.232-1 3.508-3.02 2.84-4.507"/><path d="m30.01 31.945c-1.486-.664-1.875-3.01-.873-5.248 1-2.224 3.02-3.494 4.502-2.83 1.486.664 1.879 3.01.877 5.237-1 2.234-3.02 3.509-4.506 2.841"/><path d="m27.23 34.435l3.231-3.235-.805-.655-3.084 3.085z"/></g><path fill="#e0a372" d="m29.508 35.24c.488.488 1.273.488 1.762-.001.488-.487.488-1.272 0-1.763l-1.762 1.764"/><path fill="#574137" d="m36.23 36.07c.789.789-.375 1.475-1.516 2.615s-1.824 2.307-2.617 1.516c-.789-.793-.506-2.357.635-3.498 1.14-1.141 2.705-1.425 3.498-.633"/><path fill="#e0a372" d="m47.18 35.15c0-.589.094-1.151.26-1.671-1.055.512-1.801 1.756-1.801 3.211 0 1.912 1.285 3.463 2.869 3.463.547 0 1.059-.189 1.494-.51-1.629-.552-2.822-2.351-2.822-4.493"/><path fill="#42ade2" d="m59.43 43.57c-1.152 0-2.193-.439-2.996-1.145-.957-.838-1.574-2.053-1.574-3.426 0 2.525-2.047 4.57-4.572 4.57s-4.57-2.045-4.57-4.57c0 2.525-2.047 4.57-4.572 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.047 4.57-4.57 4.57-2.525 0-4.572-2.045-4.572-4.57 0 1.373-.615 2.588-1.572 3.426-.805.703-1.846 1.145-3 1.145-2.523 0-4.57-2.045-4.57-4.57v25h64v-25c-.004 2.525-2.051 4.57-4.576 4.57"/><g fill="#428bc1"><path d="m23.22 57.5c-1.646.199-3.469.096-5.04-.426-2.041-.623-3.855-1.736-5.984-2.123-2.863-.5-5.994-.053-8.672 1.055 3.496-.199 6.844-.539 10.199.697 2.984 1.098 6.375 2.258 9.492.797"/><path d="m35.639 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.613-3.857-1.744-5.988-2.123-2.838-.49-6.02-.076-8.668 1.057 3.484-.227 6.855-.537 10.197.697 2.97 1.095 6.388 2.263 9.492.797"/><path d="m48.06 57.5c-1.492.184-3.672.254-5.03-.426-2.045-.615-3.857-1.744-5.988-2.123-2.859-.502-5.996-.053-8.67 1.055 3.494-.201 6.846-.541 10.199.697 2.976 1.098 6.38 2.262 9.49.797"/><path d="m60.48 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.611-3.855-1.74-5.986-2.123-2.844-.49-6.02-.074-8.672 1.057 3.484-.227 6.857-.535 10.199.697 2.98 1.095 6.376 2.257 9.492.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.3 12.3c6.1 7.6 7.7 11.6 7.2 18.3 7.6 0 9.4 6.2 14.4 6.2v9.8h-29.5c0 0 1.1-1.7-.1-4.1l1.1-8.4c0 0 1.9 2.6 5 .9 0 0-3.5-2.7-1.4-6.9-1.2-2.6-1.3-3.7-.9-7.6-6.6-2.7-12.7-2.2-19.3-1.8-2.1 3.3-8.2 4.8-10.8 4.3-1.5-.3 4-1.6 3-2.1 0 0-2.8.9-6.8.3-.5-.1 1-3.8 2.2-4.7 1.1-.8 4-2.4 6.7-2.3 1.7.1 3.4 1 4.8 1 1.7.1 3.9-.8 6.1-1.3 5.7-1.5 10.8-2.4 18.3-1.6" fill="#fed0ac"/><g fill="#e0a372"><path d="m37 28.1c0 0 2.9 4.3 8.9 3.2-5.3-.9-8.9-3.2-8.9-3.2"/><path d="m39.9 23.4c0 0-2.1-5.2-8.1-4.2 4.7 1 8.1 4.2 8.1 4.2"/><path d="m52.3 42.5c0 0 1.9-9.2-5.2-11 5.7 2.5 5.2 11 5.2 11"/><path d="m32.9 34.5l-.9 7.9c3.9.6 7.3-.1 7.3-.1-2.5-6.4-6.4-7.8-6.4-7.8"/><ellipse transform="matrix(.1104-.9939.9939.1104 5.0751 83.6497)" cx="49.3" cy="39" rx="1.2" ry=".9"/></g><path d="m8.4 36.7c-.8 6.5 4.7 12.5 12.2 13.4 3.3.4 7-1.1 9.6-2.6 3.2-1.8 5.3-6.4 5.4-7.6.1-1.2-.8-6.1-3.5-8.6-2.2-2-5.4-4.3-8.7-4.7-7.5-.9-14.2 3.6-15 10.1" fill="#fed0ac"/><path d="m20.7 38.2c1.1-9.4 6.1-10.6 6.1-10.6 0 0-1.1-.8-3.5-1.1-7.5-.9-14.2 3.6-15 10.1-.8 6.5 4.7 12.5 12.2 13.4 2.4.3 3.6-.2 3.6-.2 0 .1-4.5-2.2-3.4-11.6" fill="#f15744"/><path d="m25.1 40c-1.4-.5-3.1.9-3.8 3-.7 2.1-.1 4.2 1.3 4.7 1.4.5 3.1-.9 3.8-3 .7-2.2.2-4.3-1.3-4.7" fill="#231f20"/><path d="m24.9 41.1c-1-.3-2.2.6-2.7 2.1-.5 1.5-.1 2.9.9 3.3 1 .3 2.2-.6 2.7-2.1.5-1.5.1-3-.9-3.3" fill="#44618b"/><path d="m24.7 37.9c-1.5-.1-2.5-2-2.4-4.2.2-2.2 1.5-3.9 3-3.8 1.5.1 2.5 2 2.4 4.2-.2 2.2-1.5 3.9-3 3.8" fill="#231f20"/><path d="m24.8 36.7c-1.1-.1-1.8-1.4-1.7-3 .1-1.6 1.1-2.8 2.1-2.7 1.1.1 1.8 1.4 1.7 3-.1 1.6-1.1 2.8-2.1 2.7" fill="#44618b"/><g fill="#428bc1"><path d="m24.2 37.2l-.2 3.2h1.2l.3-3.1z"/><path d="m26 30.5l1.4-2.5-1.1-.6-1.7 2.6z"/></g><path d="m27.3 40.1c.6.1 1.2-.4 1.3-1 .1-.6-.4-1.2-1-1.3l-.3 2.3" fill="#e0a372"/><path d="m32.6 36.9c1 .1.6 1.3.4 2.7s0 2.7-1 2.6c-1-.1-1.7-1.4-1.5-2.9.1-1.4 1.1-2.5 2.1-2.4" fill="#574137"/><g fill="#44618b"><path transform="matrix(.0921-.9957.9957.0921-17.8931 61.2024)" d="m24.3 39.9h.6v1h-.6z"/><path transform="matrix(.0666-.9978.9978.0666-14.0109 59.6251)" d="m24.6 36.8h.6v1h-.6z"/><path transform="matrix(.4235-.9059.9059.4235-12.7597 40.372)" d="m25.1 29.6h.6v1.2h-.6z"/></g><path fill="#75d6ff" d="m2 42h60v20h-60z"/><g fill="#42ade2"><path d="m23.8 55.8c-1.5.2-3.3.1-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.8 2.1 8.8.7"/><path d="m35.4 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m47 55.8c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m58.7 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fd.svg
index 046332a..57e0642 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m14.393 7.459v3.824c0 1.363-1.102 2.477-2.457 2.482l-1.84.015c-.977.007-1.822-.558-2.221-1.38-2.455-.156-5.666-1.026-5.662-5.599 0-.753-.004-4.935 4.92-4.965 7.256-.049 7.256-.049 7.26 5.623"/><path fill="#b58360" d="m7.91 11.438c.113-2.94 3.527-2.456 5.588-2.518.16-.005.16-.255 0-.25-2.236.066-5.715-.4-5.838 2.768-.006.161.244.161.25 0"/><g fill="#d6a57c"><path d="m36.29 10.263c-.395-1.7.668-3.38 2.373-3.755 1.709-.373 3.408.703 3.803 2.404l6.42 27.719c.393 1.7-.67 3.379-2.375 3.756-1.711.373-3.408-.705-3.803-2.405l-6.418-27.719"/><path d="m13.08 10.607c-1.74-.143-3.02-1.664-2.855-3.404.162-1.74 1.705-3.03 3.447-2.891l25.928 2.101c1.738.144 3.02 1.665 2.854 3.405-.164 1.74-1.707 3.03-3.447 2.89l-25.927-2.101"/><path d="m63 45.05l-16.899 15.459c-6.81-15.758-10.744-17.334-10.744-17.334l5.676-14.07c0 0 4.342-2.087 21.967 15.942"/></g><path fill="#b58360" d="m26.572 46.621c9.291 8.486 21.842-10.388 12.625-23.786l-12.625 23.786"/><circle fill="#d6a57c" cx="26.11" cy="30.09" r="14.956"/><path fill="#f15744" d="m25.17 29.15c4.072-4.072 8.629-6.889 12.762-8.205-.383-.492-.789-.975-1.242-1.428-5.84-5.841-15.309-5.841-21.15 0-5.842 5.84-5.842 15.311 0 21.15.453.453.934.857 1.428 1.24 1.315-4.132 4.134-8.688 8.202-12.759"/><g fill="#413735"><path d="m27.971 33.981c-.664-1.485-3.01-1.874-5.246-.872-2.227 1-3.494 3.02-2.832 4.502.664 1.486 3.01 1.879 5.238.877 2.232-1 3.508-3.02 2.84-4.507"/><path d="m30.01 31.945c-1.486-.664-1.875-3.01-.873-5.248 1-2.224 3.02-3.494 4.502-2.83 1.486.664 1.879 3.01.877 5.237-1 2.234-3.02 3.509-4.506 2.841"/><path d="m27.23 34.435l3.231-3.235-.805-.655-3.084 3.085z"/></g><path fill="#b58360" d="m29.508 35.24c.488.488 1.273.488 1.762-.001.488-.487.488-1.272 0-1.763l-1.762 1.764"/><path fill="#574137" d="m36.23 36.07c.789.789-.375 1.475-1.516 2.615s-1.824 2.307-2.617 1.516c-.789-.793-.506-2.357.635-3.498 1.14-1.141 2.705-1.425 3.498-.633"/><path fill="#b58360" d="m47.18 35.15c0-.589.094-1.151.26-1.671-1.055.512-1.801 1.756-1.801 3.211 0 1.912 1.285 3.463 2.869 3.463.547 0 1.059-.189 1.494-.51-1.629-.552-2.822-2.351-2.822-4.493"/><path fill="#42ade2" d="m59.43 43.57c-1.152 0-2.193-.439-2.996-1.145-.957-.838-1.574-2.053-1.574-3.426 0 2.525-2.047 4.57-4.572 4.57s-4.57-2.045-4.57-4.57c0 2.525-2.047 4.57-4.572 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.047 4.57-4.57 4.57-2.525 0-4.572-2.045-4.572-4.57 0 1.373-.615 2.588-1.572 3.426-.805.703-1.846 1.145-3 1.145-2.523 0-4.57-2.045-4.57-4.57v25h64v-25c-.004 2.525-2.051 4.57-4.576 4.57"/><g fill="#428bc1"><path d="m23.22 57.5c-1.646.199-3.469.096-5.04-.426-2.041-.623-3.855-1.736-5.984-2.123-2.863-.5-5.994-.053-8.672 1.055 3.496-.199 6.844-.539 10.199.697 2.984 1.098 6.375 2.258 9.492.797"/><path d="m35.639 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.613-3.857-1.744-5.988-2.123-2.838-.49-6.02-.076-8.668 1.057 3.484-.227 6.855-.537 10.197.697 2.97 1.095 6.388 2.263 9.492.797"/><path d="m48.06 57.5c-1.492.184-3.672.254-5.03-.426-2.045-.615-3.857-1.744-5.988-2.123-2.859-.502-5.996-.053-8.67 1.055 3.494-.201 6.846-.541 10.199.697 2.976 1.098 6.38 2.262 9.49.797"/><path d="m60.48 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.611-3.855-1.74-5.986-2.123-2.844-.49-6.02-.074-8.672 1.057 3.484-.227 6.857-.535 10.199.697 2.98 1.095 6.376 2.257 9.492.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.3 12.3c6.1 7.6 7.7 11.6 7.2 18.3 7.6 0 9.4 6.2 14.4 6.2v9.8h-29.5c0 0 1.1-1.7-.1-4.1l1.1-8.4c0 0 1.9 2.6 5 .9 0 0-3.5-2.7-1.4-6.9-1.2-2.6-1.3-3.7-.9-7.6-6.6-2.7-12.7-2.2-19.3-1.8-2.1 3.3-8.2 4.8-10.8 4.3-1.5-.3 4-1.6 3-2.1 0 0-2.8.9-6.8.3-.5-.1 1-3.8 2.2-4.7 1.1-.8 4-2.4 6.7-2.3 1.7.1 3.4 1 4.8 1 1.7.1 3.9-.8 6.1-1.3 5.7-1.5 10.8-2.4 18.3-1.6" fill="#d6a57c"/><g fill="#b58360"><path d="m37 28.1c0 0 2.9 4.3 8.9 3.2-5.3-.9-8.9-3.2-8.9-3.2"/><path d="m39.9 23.4c0 0-2.1-5.2-8.1-4.2 4.7 1 8.1 4.2 8.1 4.2"/><path d="m52.3 42.5c0 0 1.9-9.2-5.2-11 5.7 2.5 5.2 11 5.2 11"/><path d="m32.9 34.5l-.9 7.9c3.9.6 7.3-.1 7.3-.1-2.5-6.4-6.4-7.8-6.4-7.8"/><ellipse transform="matrix(.1104-.9939.9939.1104 5.0751 83.6497)" cx="49.3" cy="39" rx="1.2" ry=".9"/></g><path d="m8.4 36.7c-.8 6.5 4.7 12.5 12.2 13.4 3.3.4 7-1.1 9.6-2.6 3.2-1.8 5.3-6.4 5.4-7.6.1-1.2-.8-6.1-3.5-8.6-2.2-2-5.4-4.3-8.7-4.7-7.5-.9-14.2 3.6-15 10.1" fill="#d6a57c"/><path d="m20.7 38.2c1.1-9.4 6.1-10.6 6.1-10.6 0 0-1.1-.8-3.5-1.1-7.5-.9-14.2 3.6-15 10.1-.8 6.5 4.7 12.5 12.2 13.4 2.4.3 3.6-.2 3.6-.2 0 .1-4.5-2.2-3.4-11.6" fill="#f15744"/><path d="m25.1 40c-1.4-.5-3.1.9-3.8 3-.7 2.1-.1 4.2 1.3 4.7 1.4.5 3.1-.9 3.8-3 .7-2.2.2-4.3-1.3-4.7" fill="#231f20"/><path d="m24.9 41.1c-1-.3-2.2.6-2.7 2.1-.5 1.5-.1 2.9.9 3.3 1 .3 2.2-.6 2.7-2.1.5-1.5.1-3-.9-3.3" fill="#44618b"/><path d="m24.7 37.9c-1.5-.1-2.5-2-2.4-4.2.2-2.2 1.5-3.9 3-3.8 1.5.1 2.5 2 2.4 4.2-.2 2.2-1.5 3.9-3 3.8" fill="#231f20"/><path d="m24.8 36.7c-1.1-.1-1.8-1.4-1.7-3 .1-1.6 1.1-2.8 2.1-2.7 1.1.1 1.8 1.4 1.7 3-.1 1.6-1.1 2.8-2.1 2.7" fill="#44618b"/><g fill="#428bc1"><path d="m24.2 37.2l-.2 3.2h1.2l.3-3.1z"/><path d="m26 30.5l1.4-2.5-1.1-.6-1.7 2.6z"/></g><path d="m27.3 40.1c.6.1 1.2-.4 1.3-1 .1-.6-.4-1.2-1-1.3l-.3 2.3" fill="#b58360"/><path d="m32.6 36.9c1 .1.6 1.3.4 2.7s0 2.7-1 2.6c-1-.1-1.7-1.4-1.5-2.9.1-1.4 1.1-2.5 2.1-2.4" fill="#574137"/><g fill="#44618b"><path transform="matrix(.0921-.9957.9957.0921-17.8931 61.2024)" d="m24.3 39.9h.6v1h-.6z"/><path transform="matrix(.0666-.9978.9978.0666-14.0109 59.6251)" d="m24.6 36.8h.6v1h-.6z"/><path transform="matrix(.4235-.9059.9059.4235-12.7597 40.372)" d="m25.1 29.6h.6v1.2h-.6z"/></g><path fill="#75d6ff" d="m2 42h60v20h-60z"/><g fill="#42ade2"><path d="m23.8 55.8c-1.5.2-3.3.1-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.8 2.1 8.8.7"/><path d="m35.4 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m47 55.8c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m58.7 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fe.svg
index 2cab7a4..12d607b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m14.393 7.459v3.824c0 1.363-1.102 2.477-2.457 2.482l-1.84.015c-.977.007-1.822-.558-2.221-1.38-2.455-.156-5.666-1.026-5.662-5.599 0-.753-.004-4.935 4.92-4.965 7.256-.049 7.256-.049 7.26 5.623"/><path fill="#935e3e" d="m7.91 11.438c.113-2.94 3.527-2.456 5.588-2.518.16-.005.16-.255 0-.25-2.236.066-5.715-.4-5.838 2.768-.006.161.244.161.25 0"/><g fill="#b47d56"><path d="m36.29 10.263c-.395-1.7.668-3.38 2.373-3.755 1.709-.373 3.408.703 3.803 2.404l6.42 27.719c.393 1.7-.67 3.379-2.375 3.756-1.711.373-3.408-.705-3.803-2.405l-6.418-27.719"/><path d="m13.08 10.607c-1.74-.143-3.02-1.664-2.855-3.404.162-1.74 1.705-3.03 3.447-2.891l25.928 2.101c1.738.144 3.02 1.665 2.854 3.405-.164 1.74-1.707 3.03-3.447 2.89l-25.927-2.101"/><path d="m63 45.05l-16.899 15.459c-6.81-15.758-10.744-17.334-10.744-17.334l5.676-14.07c0 0 4.342-2.087 21.967 15.942"/></g><path fill="#935e3e" d="m26.572 46.621c9.291 8.486 21.842-10.388 12.625-23.786l-12.625 23.786"/><circle fill="#b47d56" cx="26.11" cy="30.09" r="14.956"/><path fill="#f15744" d="m25.17 29.15c4.072-4.072 8.629-6.889 12.762-8.205-.383-.492-.789-.975-1.242-1.428-5.84-5.841-15.309-5.841-21.15 0-5.842 5.84-5.842 15.311 0 21.15.453.453.934.857 1.428 1.24 1.315-4.132 4.134-8.688 8.202-12.759"/><g fill="#413735"><path d="m27.971 33.981c-.664-1.485-3.01-1.874-5.246-.872-2.227 1-3.494 3.02-2.832 4.502.664 1.486 3.01 1.879 5.238.877 2.232-1 3.508-3.02 2.84-4.507"/><path d="m30.01 31.945c-1.486-.664-1.875-3.01-.873-5.248 1-2.224 3.02-3.494 4.502-2.83 1.486.664 1.879 3.01.877 5.237-1 2.234-3.02 3.509-4.506 2.841"/><path d="m27.23 34.435l3.231-3.235-.805-.655-3.084 3.085z"/></g><path fill="#935e3e" d="m29.508 35.24c.488.488 1.273.488 1.762-.001.488-.487.488-1.272 0-1.763l-1.762 1.764"/><path fill="#47352d" d="m36.23 36.07c.789.789-.375 1.475-1.516 2.615s-1.824 2.307-2.617 1.516c-.789-.793-.506-2.357.635-3.498 1.14-1.141 2.705-1.425 3.498-.633"/><path fill="#935e3e" d="m47.18 35.15c0-.589.094-1.151.26-1.671-1.055.512-1.801 1.756-1.801 3.211 0 1.912 1.285 3.463 2.869 3.463.547 0 1.059-.189 1.494-.51-1.629-.552-2.822-2.351-2.822-4.493"/><path fill="#42ade2" d="m59.43 43.57c-1.152 0-2.193-.439-2.996-1.145-.957-.838-1.574-2.053-1.574-3.426 0 2.525-2.047 4.57-4.572 4.57s-4.57-2.045-4.57-4.57c0 2.525-2.047 4.57-4.572 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.047 4.57-4.57 4.57-2.525 0-4.572-2.045-4.572-4.57 0 1.373-.615 2.588-1.572 3.426-.805.703-1.846 1.145-3 1.145-2.523 0-4.57-2.045-4.57-4.57v25h64v-25c-.004 2.525-2.051 4.57-4.576 4.57"/><g fill="#428bc1"><path d="m23.22 57.5c-1.646.199-3.469.096-5.04-.426-2.041-.623-3.855-1.736-5.984-2.123-2.863-.5-5.994-.053-8.672 1.055 3.496-.199 6.844-.539 10.199.697 2.984 1.098 6.375 2.258 9.492.797"/><path d="m35.639 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.613-3.857-1.744-5.988-2.123-2.838-.49-6.02-.076-8.668 1.057 3.484-.227 6.855-.537 10.197.697 2.97 1.095 6.388 2.263 9.492.797"/><path d="m48.06 57.5c-1.492.184-3.672.254-5.03-.426-2.045-.615-3.857-1.744-5.988-2.123-2.859-.502-5.996-.053-8.67 1.055 3.494-.201 6.846-.541 10.199.697 2.976 1.098 6.38 2.262 9.49.797"/><path d="m60.48 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.611-3.855-1.74-5.986-2.123-2.844-.49-6.02-.074-8.672 1.057 3.484-.227 6.857-.535 10.199.697 2.98 1.095 6.376 2.257 9.492.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.3 12.3c6.1 7.6 7.7 11.6 7.2 18.3 7.6 0 9.4 6.2 14.4 6.2v9.8h-29.5c0 0 1.1-1.7-.1-4.1l1.1-8.4c0 0 1.9 2.6 5 .9 0 0-3.5-2.7-1.4-6.9-1.2-2.6-1.3-3.7-.9-7.6-6.6-2.7-12.7-2.2-19.3-1.8-2.1 3.3-8.2 4.8-10.8 4.3-1.5-.3 4-1.6 3-2.1 0 0-2.8.9-6.8.3-.5-.1 1-3.8 2.2-4.7 1.1-.8 4-2.4 6.7-2.3 1.7.1 3.4 1 4.8 1 1.7.1 3.9-.8 6.1-1.3 5.7-1.5 10.8-2.4 18.3-1.6" fill="#b47d56"/><g fill="#935e3e"><path d="m37 28.1c0 0 2.9 4.3 8.9 3.2-5.3-.9-8.9-3.2-8.9-3.2"/><path d="m39.9 23.4c0 0-2.1-5.2-8.1-4.2 4.7 1 8.1 4.2 8.1 4.2"/><path d="m52.3 42.5c0 0 1.9-9.2-5.2-11 5.7 2.5 5.2 11 5.2 11"/><path d="m32.9 34.5l-.9 7.9c3.9.6 7.3-.1 7.3-.1-2.5-6.4-6.4-7.8-6.4-7.8"/><ellipse transform="matrix(.1104-.9939.9939.1104 5.0751 83.6497)" cx="49.3" cy="39" rx="1.2" ry=".9"/></g><path d="m8.4 36.7c-.8 6.5 4.7 12.5 12.2 13.4 3.3.4 7-1.1 9.6-2.6 3.2-1.8 5.3-6.4 5.4-7.6.1-1.2-.8-6.1-3.5-8.6-2.2-2-5.4-4.3-8.7-4.7-7.5-.9-14.2 3.6-15 10.1" fill="#b47d56"/><path d="m20.7 38.2c1.1-9.4 6.1-10.6 6.1-10.6 0 0-1.1-.8-3.5-1.1-7.5-.9-14.2 3.6-15 10.1-.8 6.5 4.7 12.5 12.2 13.4 2.4.3 3.6-.2 3.6-.2 0 .1-4.5-2.2-3.4-11.6" fill="#f15744"/><path d="m25.1 40c-1.4-.5-3.1.9-3.8 3-.7 2.1-.1 4.2 1.3 4.7 1.4.5 3.1-.9 3.8-3 .7-2.2.2-4.3-1.3-4.7" fill="#231f20"/><path d="m24.9 41.1c-1-.3-2.2.6-2.7 2.1-.5 1.5-.1 2.9.9 3.3 1 .3 2.2-.6 2.7-2.1.5-1.5.1-3-.9-3.3" fill="#44618b"/><path d="m24.7 37.9c-1.5-.1-2.5-2-2.4-4.2.2-2.2 1.5-3.9 3-3.8 1.5.1 2.5 2 2.4 4.2-.2 2.2-1.5 3.9-3 3.8" fill="#231f20"/><path d="m24.8 36.7c-1.1-.1-1.8-1.4-1.7-3 .1-1.6 1.1-2.8 2.1-2.7 1.1.1 1.8 1.4 1.7 3-.1 1.6-1.1 2.8-2.1 2.7" fill="#44618b"/><g fill="#428bc1"><path d="m24.2 37.2l-.2 3.2h1.2l.3-3.1z"/><path d="m26 30.5l1.4-2.5-1.1-.6-1.7 2.6z"/></g><path d="m27.3 40.1c.6.1 1.2-.4 1.3-1 .1-.6-.4-1.2-1-1.3l-.3 2.3" fill="#935e3e"/><path d="m32.6 36.9c1 .1.6 1.3.4 2.7s0 2.7-1 2.6c-1-.1-1.7-1.4-1.5-2.9.1-1.4 1.1-2.5 2.1-2.4" fill="#574137"/><g fill="#44618b"><path transform="matrix(.0921-.9957.9957.0921-17.8931 61.2024)" d="m24.3 39.9h.6v1h-.6z"/><path transform="matrix(.0666-.9978.9978.0666-14.0109 59.6251)" d="m24.6 36.8h.6v1h-.6z"/><path transform="matrix(.4235-.9059.9059.4235-12.7597 40.372)" d="m25.1 29.6h.6v1.2h-.6z"/></g><path fill="#75d6ff" d="m2 42h60v20h-60z"/><g fill="#42ade2"><path d="m23.8 55.8c-1.5.2-3.3.1-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.8 2.1 8.8.7"/><path d="m35.4 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m47 55.8c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m58.7 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3ff.svg
index 86a086d..99fe3f2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ca-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m14.393 7.459v3.824c0 1.363-1.102 2.477-2.457 2.482l-1.84.015c-.977.007-1.822-.558-2.221-1.38-2.455-.156-5.666-1.026-5.662-5.599 0-.753-.004-4.935 4.92-4.965 7.256-.049 7.256-.049 7.26 5.623"/><path fill="#705041" d="m7.91 11.438c.113-2.94 3.527-2.456 5.588-2.518.16-.005.16-.255 0-.25-2.236.066-5.715-.4-5.838 2.768-.006.161.244.161.25 0"/><g fill="#8a6859"><path d="m36.29 10.263c-.395-1.7.668-3.38 2.373-3.755 1.709-.373 3.408.703 3.803 2.404l6.42 27.719c.393 1.7-.67 3.379-2.375 3.756-1.711.373-3.408-.705-3.803-2.405l-6.418-27.719"/><path d="m13.08 10.607c-1.74-.143-3.02-1.664-2.855-3.404.162-1.74 1.705-3.03 3.447-2.891l25.928 2.101c1.738.144 3.02 1.665 2.854 3.405-.164 1.74-1.707 3.03-3.447 2.89l-25.927-2.101"/><path d="m63 45.05l-16.899 15.459c-6.81-15.758-10.744-17.334-10.744-17.334l5.676-14.07c0 0 4.342-2.087 21.967 15.942"/></g><path fill="#705041" d="m26.572 46.621c9.291 8.486 21.842-10.388 12.625-23.786l-12.625 23.786"/><circle fill="#8a6859" cx="26.11" cy="30.09" r="14.956"/><path fill="#f15744" d="m25.17 29.15c4.072-4.072 8.629-6.889 12.762-8.205-.383-.492-.789-.975-1.242-1.428-5.84-5.841-15.309-5.841-21.15 0-5.842 5.84-5.842 15.311 0 21.15.453.453.934.857 1.428 1.24 1.315-4.132 4.134-8.688 8.202-12.759"/><g fill="#413735"><path d="m27.971 33.981c-.664-1.485-3.01-1.874-5.246-.872-2.227 1-3.494 3.02-2.832 4.502.664 1.486 3.01 1.879 5.238.877 2.232-1 3.508-3.02 2.84-4.507"/><path d="m30.01 31.945c-1.486-.664-1.875-3.01-.873-5.248 1-2.224 3.02-3.494 4.502-2.83 1.486.664 1.879 3.01.877 5.237-1 2.234-3.02 3.509-4.506 2.841"/><path d="m27.23 34.435l3.231-3.235-.805-.655-3.084 3.085z"/></g><path fill="#705041" d="m29.508 35.24c.488.488 1.273.488 1.762-.001.488-.487.488-1.272 0-1.763l-1.762 1.764"/><path fill="#47352d" d="m36.23 36.07c.789.789-.375 1.475-1.516 2.615s-1.824 2.307-2.617 1.516c-.789-.793-.506-2.357.635-3.498 1.14-1.141 2.705-1.425 3.498-.633"/><path fill="#705041" d="m47.18 35.15c0-.589.094-1.151.26-1.671-1.055.512-1.801 1.756-1.801 3.211 0 1.912 1.285 3.463 2.869 3.463.547 0 1.059-.189 1.494-.51-1.629-.552-2.822-2.351-2.822-4.493"/><path fill="#42ade2" d="m59.43 43.57c-1.152 0-2.193-.439-2.996-1.145-.957-.838-1.574-2.053-1.574-3.426 0 2.525-2.047 4.57-4.572 4.57s-4.57-2.045-4.57-4.57c0 2.525-2.047 4.57-4.572 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.047 4.57-4.57 4.57-2.525 0-4.572-2.045-4.572-4.57 0 1.373-.615 2.588-1.572 3.426-.805.703-1.846 1.145-3 1.145-2.523 0-4.57-2.045-4.57-4.57v25h64v-25c-.004 2.525-2.051 4.57-4.576 4.57"/><g fill="#428bc1"><path d="m23.22 57.5c-1.646.199-3.469.096-5.04-.426-2.041-.623-3.855-1.736-5.984-2.123-2.863-.5-5.994-.053-8.672 1.055 3.496-.199 6.844-.539 10.199.697 2.984 1.098 6.375 2.258 9.492.797"/><path d="m35.639 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.613-3.857-1.744-5.988-2.123-2.838-.49-6.02-.076-8.668 1.057 3.484-.227 6.855-.537 10.197.697 2.97 1.095 6.388 2.263 9.492.797"/><path d="m48.06 57.5c-1.492.184-3.672.254-5.03-.426-2.045-.615-3.857-1.744-5.988-2.123-2.859-.502-5.996-.053-8.67 1.055 3.494-.201 6.846-.541 10.199.697 2.976 1.098 6.38 2.262 9.49.797"/><path d="m60.48 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.611-3.855-1.74-5.986-2.123-2.844-.49-6.02-.074-8.672 1.057 3.484-.227 6.857-.535 10.199.697 2.98 1.095 6.376 2.257 9.492.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.3 12.3c6.1 7.6 7.7 11.6 7.2 18.3 7.6 0 9.4 6.2 14.4 6.2v9.8h-29.5c0 0 1.1-1.7-.1-4.1l1.1-8.4c0 0 1.9 2.6 5 .9 0 0-3.5-2.7-1.4-6.9-1.2-2.6-1.3-3.7-.9-7.6-6.6-2.7-12.7-2.2-19.3-1.8-2.1 3.3-8.2 4.8-10.8 4.3-1.5-.3 4-1.6 3-2.1 0 0-2.8.9-6.8.3-.5-.1 1-3.8 2.2-4.7 1.1-.8 4-2.4 6.7-2.3 1.7.1 3.4 1 4.8 1 1.7.1 3.9-.8 6.1-1.3 5.7-1.5 10.8-2.4 18.3-1.6" fill="#8a6859"/><g fill="#705041"><path d="m37 28.1c0 0 2.9 4.3 8.9 3.2-5.3-.9-8.9-3.2-8.9-3.2"/><path d="m39.9 23.4c0 0-2.1-5.2-8.1-4.2 4.7 1 8.1 4.2 8.1 4.2"/><path d="m52.3 42.5c0 0 1.9-9.2-5.2-11 5.7 2.5 5.2 11 5.2 11"/><path d="m32.9 34.5l-.9 7.9c3.9.6 7.3-.1 7.3-.1-2.5-6.4-6.4-7.8-6.4-7.8"/><ellipse transform="matrix(.1104-.9939.9939.1104 5.0751 83.6497)" cx="49.3" cy="39" rx="1.2" ry=".9"/></g><path d="m8.4 36.7c-.8 6.5 4.7 12.5 12.2 13.4 3.3.4 7-1.1 9.6-2.6 3.2-1.8 5.3-6.4 5.4-7.6.1-1.2-.8-6.1-3.5-8.6-2.2-2-5.4-4.3-8.7-4.7-7.5-.9-14.2 3.6-15 10.1" fill="#8a6859"/><path d="m20.7 38.2c1.1-9.4 6.1-10.6 6.1-10.6 0 0-1.1-.8-3.5-1.1-7.5-.9-14.2 3.6-15 10.1-.8 6.5 4.7 12.5 12.2 13.4 2.4.3 3.6-.2 3.6-.2 0 .1-4.5-2.2-3.4-11.6" fill="#f15744"/><path d="m25.1 40c-1.4-.5-3.1.9-3.8 3-.7 2.1-.1 4.2 1.3 4.7 1.4.5 3.1-.9 3.8-3 .7-2.2.2-4.3-1.3-4.7" fill="#231f20"/><path d="m24.9 41.1c-1-.3-2.2.6-2.7 2.1-.5 1.5-.1 2.9.9 3.3 1 .3 2.2-.6 2.7-2.1.5-1.5.1-3-.9-3.3" fill="#44618b"/><path d="m24.7 37.9c-1.5-.1-2.5-2-2.4-4.2.2-2.2 1.5-3.9 3-3.8 1.5.1 2.5 2 2.4 4.2-.2 2.2-1.5 3.9-3 3.8" fill="#231f20"/><path d="m24.8 36.7c-1.1-.1-1.8-1.4-1.7-3 .1-1.6 1.1-2.8 2.1-2.7 1.1.1 1.8 1.4 1.7 3-.1 1.6-1.1 2.8-2.1 2.7" fill="#44618b"/><g fill="#428bc1"><path d="m24.2 37.2l-.2 3.2h1.2l.3-3.1z"/><path d="m26 30.5l1.4-2.5-1.1-.6-1.7 2.6z"/></g><path d="m27.3 40.1c.6.1 1.2-.4 1.3-1 .1-.6-.4-1.2-1-1.3l-.3 2.3" fill="#705041"/><path d="m32.6 36.9c1 .1.6 1.3.4 2.7s0 2.7-1 2.6c-1-.1-1.7-1.4-1.5-2.9.1-1.4 1.1-2.5 2.1-2.4" fill="#574137"/><g fill="#44618b"><path transform="matrix(.0921-.9957.9957.0921-17.8931 61.2024)" d="m24.3 39.9h.6v1h-.6z"/><path transform="matrix(.0666-.9978.9978.0666-14.0109 59.6251)" d="m24.6 36.8h.6v1h-.6z"/><path transform="matrix(.4235-.9059.9059.4235-12.7597 40.372)" d="m25.1 29.6h.6v1.2h-.6z"/></g><path fill="#75d6ff" d="m2 42h60v20h-60z"/><g fill="#42ade2"><path d="m23.8 55.8c-1.5.2-3.3.1-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.8 2.1 8.8.7"/><path d="m35.4 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m47 55.8c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m58.7 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ca.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ca.svg
index 93e0fa1..5b62b5c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ca.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ca.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m14.389 7.459v3.824c0 1.363-1.102 2.477-2.457 2.482l-1.84.015c-.977.007-1.822-.558-2.221-1.38-2.455-.156-5.666-1.026-5.662-5.599 0-.753-.004-4.935 4.92-4.965 7.256-.049 7.256-.049 7.26 5.623"/><path fill="#eba352" d="m7.906 11.438c.113-2.94 3.527-2.456 5.588-2.518.16-.005.16-.255 0-.25-2.236.066-5.715-.4-5.838 2.768-.006.161.244.161.25 0"/><g fill="#ffdd67"><path d="m36.28 10.263c-.395-1.7.668-3.38 2.373-3.755 1.709-.373 3.408.703 3.803 2.404l6.42 27.719c.393 1.7-.67 3.379-2.375 3.756-1.711.373-3.408-.705-3.803-2.405l-6.418-27.719"/><path d="m13.08 10.607c-1.74-.143-3.02-1.664-2.855-3.404.162-1.74 1.705-3.03 3.447-2.891l25.928 2.101c1.738.144 3.02 1.665 2.854 3.405-.164 1.74-1.707 3.03-3.447 2.89l-25.927-2.101"/><path d="m63 45.05l-16.898 15.459c-6.811-15.758-10.745-17.334-10.745-17.334l5.676-14.07c0 0 4.342-2.087 21.967 15.942"/></g><path fill="#eba352" d="m26.568 46.621c9.291 8.486 21.842-10.388 12.625-23.786l-12.625 23.786"/><circle fill="#ffdd67" cx="26.11" cy="30.09" r="14.956"/><path fill="#f15744" d="m25.17 29.15c4.072-4.072 8.629-6.889 12.762-8.205-.383-.492-.789-.975-1.242-1.428-5.84-5.841-15.309-5.841-21.15 0-5.842 5.84-5.842 15.311 0 21.15.453.453.934.857 1.428 1.24 1.315-4.132 4.134-8.688 8.202-12.759"/><g fill="#413735"><path d="m27.967 33.981c-.664-1.485-3.01-1.874-5.246-.872-2.227 1-3.494 3.02-2.832 4.502.664 1.486 3.01 1.879 5.238.877 2.232-1 3.508-3.02 2.84-4.507"/><path d="m30 31.945c-1.486-.664-1.875-3.01-.873-5.248 1-2.224 3.02-3.494 4.502-2.83 1.486.664 1.879 3.01.877 5.237-1 2.234-3.02 3.509-4.506 2.841"/><path d="m27.22 34.435l3.237-3.235-.805-.655-3.084 3.085z"/></g><path fill="#eba352" d="m29.504 35.24c.488.488 1.273.488 1.762-.001.488-.487.488-1.272 0-1.763l-1.762 1.764"/><path fill="#574137" d="m36.22 36.07c.789.789-.375 1.475-1.516 2.615s-1.824 2.307-2.617 1.516c-.789-.793-.506-2.357.635-3.498 1.14-1.141 2.705-1.425 3.498-.633"/><path fill="#eba352" d="m47.18 35.15c0-.589.094-1.151.26-1.671-1.055.512-1.801 1.756-1.801 3.211 0 1.912 1.285 3.463 2.869 3.463.547 0 1.059-.189 1.494-.51-1.629-.552-2.822-2.351-2.822-4.493"/><path fill="#42ade2" d="m59.43 43.57c-1.152 0-2.193-.439-2.996-1.145-.957-.838-1.574-2.053-1.574-3.426 0 2.525-2.047 4.57-4.572 4.57s-4.57-2.045-4.57-4.57c0 2.525-2.047 4.57-4.572 4.57s-4.574-2.044-4.574-4.569c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.045 4.57-4.57 4.57s-4.572-2.045-4.572-4.57c0 2.525-2.047 4.57-4.57 4.57-2.525 0-4.572-2.045-4.572-4.57 0 1.373-.615 2.588-1.572 3.426-.805.703-1.846 1.145-3 1.145-2.525-.001-4.572-2.046-4.572-4.571v25h64v-25c0 2.525-2.047 4.57-4.572 4.57"/><g fill="#428bc1"><path d="m23.22 57.5c-1.646.199-3.469.096-5.04-.426-2.041-.623-3.855-1.736-5.984-2.123-2.863-.5-5.994-.053-8.672 1.055 3.496-.199 6.844-.539 10.199.697 2.984 1.098 6.375 2.258 9.492.797"/><path d="m35.635 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.613-3.857-1.744-5.988-2.123-2.838-.49-6.02-.076-8.668 1.057 3.484-.227 6.855-.537 10.197.697 2.97 1.095 6.388 2.263 9.492.797"/><path d="m48.05 57.5c-1.492.184-3.672.254-5.03-.426-2.045-.615-3.857-1.744-5.988-2.123-2.859-.502-5.996-.053-8.67 1.055 3.494-.201 6.846-.541 10.199.697 2.976 1.098 6.38 2.262 9.49.797"/><path d="m60.47 49.563c-1.496.178-3.67.254-5.03-.428-2.045-.611-3.855-1.74-5.986-2.123-2.844-.49-6.02-.074-8.672 1.057 3.484-.227 6.857-.535 10.199.697 2.98 1.095 6.376 2.257 9.492.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.3 12.3c6.1 7.6 7.7 11.6 7.2 18.3 7.6 0 9.4 6.2 14.4 6.2v9.8h-29.5c0 0 1.1-1.7-.1-4.1l1.1-8.4c0 0 1.9 2.6 5 .9 0 0-3.5-2.7-1.4-6.9-1.2-2.6-1.3-3.7-.9-7.6-6.6-2.7-12.7-2.2-19.3-1.8-2.1 3.3-8.2 4.8-10.8 4.3-1.5-.3 4-1.6 3-2.1 0 0-2.8.9-6.8.3-.5-.1 1-3.8 2.2-4.7 1.1-.8 4-2.4 6.7-2.3 1.7.1 3.4 1 4.8 1 1.7.1 3.9-.8 6.1-1.3 5.7-1.5 10.8-2.4 18.3-1.6" fill="#ffdd67"/><g fill="#eba352"><path d="m37 28.1c0 0 2.9 4.3 8.9 3.2-5.3-.9-8.9-3.2-8.9-3.2"/><path d="m39.9 23.4c0 0-2.1-5.2-8.1-4.2 4.7 1 8.1 4.2 8.1 4.2"/><path d="m52.3 42.5c0 0 1.9-9.2-5.2-11 5.7 2.5 5.2 11 5.2 11"/><path d="m32.9 34.5l-.9 7.9c3.9.6 7.3-.1 7.3-.1-2.5-6.4-6.4-7.8-6.4-7.8"/><ellipse transform="matrix(.1104-.9939.9939.1104 5.0751 83.6497)" cx="49.3" cy="39" rx="1.2" ry=".9"/></g><path d="m8.4 36.7c-.8 6.5 4.7 12.5 12.2 13.4 3.3.4 7-1.1 9.6-2.6 3.2-1.8 5.3-6.4 5.4-7.6.1-1.2-.8-6.1-3.5-8.6-2.2-2-5.4-4.3-8.7-4.7-7.5-.9-14.2 3.6-15 10.1" fill="#ffdd67"/><path d="m20.7 38.2c1.1-9.4 6.1-10.6 6.1-10.6 0 0-1.1-.8-3.5-1.1-7.5-.9-14.2 3.6-15 10.1-.8 6.5 4.7 12.5 12.2 13.4 2.4.3 3.6-.2 3.6-.2 0 .1-4.5-2.2-3.4-11.6" fill="#f15744"/><path d="m25.1 40c-1.4-.5-3.1.9-3.8 3-.7 2.1-.1 4.2 1.3 4.7 1.4.5 3.1-.9 3.8-3 .7-2.2.2-4.3-1.3-4.7" fill="#231f20"/><path d="m24.9 41.1c-1-.3-2.2.6-2.7 2.1-.5 1.5-.1 2.9.9 3.3 1 .3 2.2-.6 2.7-2.1.5-1.5.1-3-.9-3.3" fill="#44618b"/><path d="m24.7 37.9c-1.5-.1-2.5-2-2.4-4.2.2-2.2 1.5-3.9 3-3.8 1.5.1 2.5 2 2.4 4.2-.2 2.2-1.5 3.9-3 3.8" fill="#231f20"/><path d="m24.8 36.7c-1.1-.1-1.8-1.4-1.7-3 .1-1.6 1.1-2.8 2.1-2.7 1.1.1 1.8 1.4 1.7 3-.1 1.6-1.1 2.8-2.1 2.7" fill="#44618b"/><g fill="#428bc1"><path d="m24.2 37.2l-.2 3.2h1.2l.3-3.1z"/><path d="m26 30.5l1.4-2.5-1.1-.6-1.7 2.6z"/></g><path d="m27.3 40.1c.6.1 1.2-.4 1.3-1 .1-.6-.4-1.2-1-1.3l-.3 2.3" fill="#eba352"/><path d="m32.6 36.9c1 .1.6 1.3.4 2.7s0 2.7-1 2.6c-1-.1-1.7-1.4-1.5-2.9.1-1.4 1.1-2.5 2.1-2.4" fill="#574137"/><g fill="#44618b"><path transform="matrix(.0921-.9957.9957.0921-17.8931 61.2024)" d="m24.3 39.9h.6v1h-.6z"/><path transform="matrix(.0666-.9978.9978.0666-14.0109 59.6251)" d="m24.6 36.8h.6v1h-.6z"/><path transform="matrix(.4239-.9057.9057.4239-12.7666 40.3521)" d="m25.1 29.6h.6v1.2h-.6z"/></g><path fill="#75d6ff" d="m2 42h60v20h-60z"/><g fill="#42ade2"><path d="m23.8 55.8c-1.5.2-3.3.1-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.8 2.1 8.8.7"/><path d="m35.4 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m47 55.8c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6 0-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/><path d="m58.7 48.1c-1.4.2-3.4.2-4.7-.4-1.9-.6-3.6-1.7-5.6-2-2.7-.5-5.6-.1-8.1 1 3.3-.2 6.4-.5 9.6.7 2.7 1 5.9 2.1 8.8.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fb.svg
index a0bba07..1d993f5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m22.522 16.16c0 1.705 0 6.91 0 6.91h18.945c0 0 0-5.205 0-6.91.001-8.935-18.945-8.935-18.945 0"/><g fill="#ffe1bd"><path d="m39.841 20.365c-.418-8.132-2.604-3.739-7.847-3.739-5.236 0-7.425-4.393-7.839 3.739 0 0-2.277-1.571-2.277 1.525 0 1.183.436 2.152 1.904 2.254.546 4.192 2.974 5.472 6.598 5.726v.856c0 .519-.35.938-.818 1.074h-4.846l-.004 11.05c0 0 2.515 1.408 7.288 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-11.05h-4.854c-.469-.137-.82-.556-.82-1.074v-.857c3.626-.254 6.06-1.533 6.599-5.726 1.471-.102 1.904-1.071 1.904-2.254-.001-3.096-2.274-1.525-2.274-1.525"/><path d="m49.23 9.403c-1.656-.486-2.327.599-2.652 1.482-.343.057-.642.307-.744.666l-.197.677c-.146.5.135 1.023.63 1.167l.08.023-2.693 10.928 2.892.65 2.673-10.879c.599-.068.78-.683 1.276-2.381.526-1.809-.989-2.253-1.265-2.333"/><path d="m17.729 13.396c.495-.144.776-.667.63-1.167l-.197-.677c-.103-.359-.401-.609-.744-.666-.325-.884-.994-1.969-2.65-1.482-.275.08-1.791.523-1.264 2.334.494 1.698.678 2.313 1.274 2.381l2.673 10.879 2.892-.65-2.693-10.928.079-.024"/></g><g fill="#594640"><path d="m28.2 25.07c0 1.391 1.697 2.557 3.794 2.557 2.095 0 3.794-1.166 3.794-2.557 0 0-2.02.124-3.794.124s-3.794-.124-3.794-.124"/><ellipse cx="35.654" cy="20.729" rx="1.264" ry="1.28"/><ellipse cx="28.337" cy="20.729" rx="1.265" ry="1.28"/></g><path fill="#e6b796" d="m31.15 23.15c0 .471.375.851.842.851s.843-.38.843-.851h-1.685"/><path fill="#94989b" d="m5.484 15.376v-1.789c0 0 8.771-4.491 26.507-4.491 17.738 0 26.516 4.491 26.516 4.491v1.789c0 0-8.777-4.492-26.516-4.492-17.736 0-26.507 4.492-26.507 4.492"/><path fill="#ffe1bd" d="m46.868 11.4c.071-.271-.084-.547-.344-.615-.263-.069-.533.096-.604.367l-.304 1.16.948.247.304-1.159"/><path fill="#e6b796" d="m46.583 11.149c.076.14.129.242.133.395.008.144-.031.281-.067.421-.063.229-.123.456-.183.686-.048.175.223.246.269.07.063-.234.126-.469.188-.703.044-.163.081-.327.071-.496-.007-.188-.082-.352-.17-.514-.084-.158-.326-.016-.241.141"/><path fill="#ffe1bd" d="m17.13 11.4c-.071-.271.084-.547.344-.615.263-.069.533.096.604.367l.304 1.16-.948.247-.304-1.159"/><path fill="#e6b796" d="m17.415 11.149c-.076.14-.129.242-.133.395-.008.144.031.281.067.421.063.229.123.456.183.686.048.175-.223.246-.269.07-.063-.234-.126-.469-.188-.703-.044-.163-.081-.327-.071-.496.007-.188.082-.352.17-.514.084-.158.326-.016.241.141"/><path fill="#428bc1" d="m24.712 42.42v1.557-1.557"/><g fill="#3e4347"><path d="M56.888 21.975 53.17 20.606 58.28 6.4 62 7.768z"/><path d="M52.794 23.561 47.648 21.665 54.728 2 59.874 3.894z"/><path d="M7.114 21.975 10.833 20.606 5.719 6.4 2 7.768z"/><path d="M11.206 23.561 16.354 21.665 9.274 2 4.128 3.894z"/></g><path fill="#47b892" d="m46.548 24.997l-2.756-1.24-5.627 8.04h-2.932c-.362 1.465-1.672 2.553-3.233 2.553s-2.875-1.088-3.235-2.553h-2.932l-5.627-8.04-2.756 1.24 7.266 10.348-.004 8.632c0 0 2.515 1.408 7.288 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-8.635 7.262-10.345"/><g fill="#d3976e"><path d="m20.2 59.29c-1.376 0-2.49 1.209-2.49 2.701v.012h7v-2.713h-4.515"/><path d="m43.801 59.29c1.377 0 2.49 1.209 2.49 2.701v.012h-7.01v-2.713h4.515"/></g><path fill="#f2b200" d="m24.712 41.898v1.67-1.67"/><path fill="#3e4347" d="m41.651 48.28l-2.392-1.796h.026l-.002-2.921c0 0-2.518 1.51-7.284 1.51-4.773 0-7.288-1.51-7.288-1.51v2.921h.026l-2.39 1.796c-1.531 1.161-2.143 2.248-2.143 3.532 0 1.648 0 7.47 0 7.47h4.506v-5.918l3.818-3.01h.025c.479-.417 1.088-.668 1.75-.668 0 0 2.54 0 3.387 0 .865 0 1.891.78 1.891.78l3.703 2.896v5.918h4.506c0 0 0-5.821 0-7.47.002-1.283-.609-2.37-2.139-3.531"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.6 19.9l1 1.8h16.9l.7-1.9c0-6.8-1.6-9.7-9.1-9.8-7.6-.1-9.5 3-9.5 9.9" fill="#594640"/><path d="m40.5 19.8c-.1.4-.1.8-.3 1-.2.4-.6.6-.6.6s.1-.8.1-1.8c-.4-6.3-.8-3.3-7.7-3.3-6.9 0-7.3-3-7.7 3.3 0 1.1.1 1.8.1 1.8s-.4-.2-.6-.6c-.1-.2-.2-.6-.3-1-.7-.2-1.5 0-1.5 1.9 0 1.2.4 2.1 1.9 2.2.5 3.9 5.8 6.5 8.1 6.5 2.4 0 7.6-2.6 8.1-6.5 1.5-.1 1.9-1.1 1.9-2.2 0-1.9-.8-2.1-1.5-1.9" fill="#ffe1bd"/><g fill="#664e27"><circle cx="28.4" cy="21.8" r="1.5"/><circle cx="35.5" cy="21.8" r="1.5"/><path d="m34.3 26.3c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.5-.2-.3"/></g><g fill="#ffe1bd"><path d="m30.4 29.9v.9c0 .5-.4.9-.8 1.1h-4.8v11c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-11h-4.9c-.5-.1-.8-.6-.8-1.1v-.9h-3.3"/><path d="m49.2 9.4c-1.7-.5-2.3.6-2.7 1.5-.3.1-.6.3-.7.7l-.2.7c-.1.5.1 1 .6 1.2h.1l-2.7 10.9 2.9.6 2.7-10.9c.6-.1.8-.7 1.3-2.4.5-1.8-1-2.2-1.3-2.3"/><path d="m17.7 13.4c.5-.1.8-.7.6-1.2l-.2-.7c-.1-.4-.4-.6-.7-.7-.3-.9-1-2-2.7-1.5-.3.1-1.8.5-1.3 2.3.5 1.7.7 2.3 1.3 2.4l2.8 11 2.9-.6-2.7-11"/></g><path d="m5.5 15.4v-1.8c0 0 8.8-4.5 26.5-4.5 17.7 0 26.5 4.5 26.5 4.5v1.8c0 0-8.8-4.5-26.5-4.5-17.7 0-26.5 4.5-26.5 4.5" fill="#94989b"/><path d="m46.9 11.4c.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.4l-.3 1.2.9.2.3-1.2" fill="#ffe1bd"/><path d="m46.6 11.1c.1.1.1.2.1.4 0 .1 0 .3-.1.4-.1.2-.1.5-.2.7 0 .2.2.2.3.1.1-.2.1-.5.2-.7 0-.2.1-.3.1-.5 0-.2-.1-.4-.2-.5-.1-.1-.3 0-.2.1" fill="#e6b796"/><path d="m17.1 11.4c-.1-.3.1-.5.3-.6.3-.1.5.1.6.4l.3 1.2-.9.2-.3-1.2" fill="#ffe1bd"/><path d="m17.4 11.1c-.1.1-.1.2-.1.4 0 .1 0 .3.1.4.1.2.1.5.2.7 0 .2-.2.2-.3.1-.1-.2-.1-.5-.2-.7 0-.2-.1-.3-.1-.5 0-.2.1-.4.2-.5.1-.1.3 0 .2.1" fill="#e6b796"/><path d="m24.7 42.4v1.6-1.6" fill="#428bc1"/><g fill="#3e4347"><path d="m56.9 22l-3.7-1.4 5.1-14.2 3.7 1.4z"/><path d="m52.8 23.6l-5.2-1.9 7.1-19.7 5.2 1.9z"/><path d="M7.1 22 10.8 20.6 5.7 6.4 2 7.8z"/><path d="M11.2 23.6 16.4 21.7 9.3 2 4.1 3.9z"/></g><path d="m46.5 25l-2.8-1.2-5.6 8h-2.9c-.4 1.5-1.7 2.6-3.2 2.6s-2.9-1.1-3.2-2.6h-2.9l-5.6-8-2.8 1.2 7.3 10.3v8.6c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-8.6l7.1-10.3" fill="#47b892"/><g fill="#d3976e"><path d="m20.2 59.3c-1.4 0-2.5 1.2-2.5 2.7h7v-2.7h-4.5"/><path d="m43.8 59.3c1.4 0 2.5 1.2 2.5 2.7h-7v-2.7h4.5"/></g><path d="m24.7 41.9v1.7-1.7" fill="#f2b200"/><path d="m41.7 48.3l-2.4-1.8v-2.9c0 0-2.5 1.5-7.3 1.5-4.8 0-7.3-1.5-7.3-1.5v2.9l-2.4 1.8c-1.5 1.2-2.1 2.2-2.1 3.5 0 1.6 0 7.5 0 7.5h4.5v-5.9l3.8-3c.5-.4 1.1-.7 1.8-.7 0 0 2.5 0 3.4 0 .9 0 1.9.8 1.9.8l3.7 2.9v5.9h4.5c0 0 0-5.8 0-7.5 0-1.3-.6-2.4-2.1-3.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fc.svg
index bc12b4e..4b386c0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m22.522 16.16c0 1.705 0 6.91 0 6.91h18.946c0 0 0-5.205 0-6.91.001-8.935-18.946-8.935-18.946 0"/><g fill="#fed0ac"><path d="m39.841 20.365c-.418-8.132-2.604-3.739-7.847-3.739-5.236 0-7.425-4.393-7.838 3.739 0 0-2.278-1.571-2.278 1.525 0 1.183.436 2.152 1.904 2.254.546 4.192 2.974 5.472 6.598 5.726v.856c0 .519-.351.938-.819 1.074h-4.845l-.003 11.05c0 0 2.514 1.408 7.287 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-11.05h-4.854c-.469-.137-.82-.556-.82-1.074v-.857c3.625-.254 6.06-1.533 6.6-5.726 1.47-.102 1.904-1.071 1.904-2.254-.001-3.096-2.275-1.525-2.275-1.525"/><path d="m49.23 9.403c-1.657-.486-2.328.599-2.653 1.482-.343.057-.642.307-.744.666l-.197.677c-.146.5.136 1.023.63 1.167l.08.023-2.693 10.928 2.892.65 2.673-10.879c.6-.068.78-.683 1.276-2.381.526-1.809-.989-2.253-1.264-2.333"/><path d="m17.729 13.396c.494-.144.776-.667.63-1.167l-.197-.677c-.103-.359-.401-.609-.743-.666-.326-.884-.995-1.969-2.652-1.482-.274.08-1.79.523-1.263 2.334.494 1.698.677 2.313 1.274 2.381l2.673 10.879 2.892-.65-2.693-10.928.079-.024"/></g><g fill="#594640"><path d="m28.2 25.07c0 1.391 1.697 2.557 3.794 2.557 2.095 0 3.794-1.166 3.794-2.557 0 0-2.02.124-3.794.124-1.775 0-3.794-.124-3.794-.124"/><ellipse cx="35.654" cy="20.729" rx="1.264" ry="1.28"/><path d="m27.07 20.729c0 .706.566 1.28 1.266 1.28.695 0 1.266-.574 1.266-1.28 0-.707-.57-1.277-1.266-1.277-.699 0-1.266.57-1.266 1.277"/></g><path fill="#e0a372" d="m31.15 23.15c0 .471.375.851.842.851s.843-.38.843-.851h-1.685"/><path fill="#94989b" d="m5.484 15.376v-1.789c0 0 8.771-4.491 26.507-4.491 17.739 0 26.515 4.491 26.515 4.491v1.789c0 0-8.775-4.492-26.515-4.492-17.736 0-26.507 4.492-26.507 4.492"/><path fill="#fed0ac" d="m46.868 11.4c.071-.271-.084-.547-.345-.615-.262-.069-.532.096-.604.367l-.305 1.16.949.247.305-1.159"/><path fill="#e0a372" d="m46.582 11.149c.077.14.131.242.134.395.008.144-.03.281-.067.421-.063.229-.123.456-.184.686-.047.175.224.246.27.07.063-.234.127-.469.188-.703.044-.163.081-.327.071-.496-.007-.188-.082-.352-.17-.514-.084-.158-.326-.016-.242.141"/><path fill="#fed0ac" d="m17.13 11.4c-.071-.271.084-.547.345-.615.262-.069.532.096.604.367l.305 1.16-.949.247-.305-1.159"/><path fill="#e0a372" d="m17.416 11.149c-.077.14-.131.242-.134.395-.008.144.031.281.067.421.063.229.123.456.184.686.047.175-.224.246-.27.07-.063-.234-.126-.469-.188-.703-.044-.163-.081-.327-.071-.496.007-.188.082-.352.17-.514.084-.158.326-.016.242.141"/><path fill="#428bc1" d="m24.713 42.42v1.557-1.557"/><g fill="#3e4347"><path d="M56.888 21.975 53.17 20.606 58.28 6.4 62 7.768z"/><path d="M52.793 23.561 47.648 21.665 54.727 2 59.874 3.894z"/><path d="M7.114 21.975 10.833 20.606 5.719 6.4 2 7.768z"/><path d="M11.207 23.561 16.354 21.665 9.274 2 4.128 3.894z"/></g><path fill="#47b892" d="m46.548 24.997l-2.756-1.24-5.627 8.04h-2.932c-.362 1.465-1.672 2.553-3.233 2.553s-2.875-1.088-3.235-2.553h-2.932l-5.627-8.04-2.756 1.24 7.266 10.348-.003 8.632c0 0 2.514 1.408 7.287 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-8.635 7.262-10.345"/><g fill="#d3976e"><path d="m20.2 59.29c-1.375 0-2.49 1.209-2.49 2.701v.012h7.01v-2.713h-4.516"/><path d="m43.801 59.29c1.377 0 2.49 1.209 2.49 2.701v.012h-7.01v-2.713h4.515"/></g><path fill="#f2b200" d="m24.713 41.898v1.67-1.67"/><path fill="#3e4347" d="m41.651 48.28l-2.392-1.796h.026l-.002-2.921c0 0-2.518 1.51-7.284 1.51-4.773 0-7.287-1.51-7.287-1.51v2.921h.025l-2.39 1.796c-1.531 1.161-2.143 2.248-2.143 3.532 0 1.648 0 7.47 0 7.47h4.507v-5.918l3.817-3.01h.025c.478-.417 1.088-.668 1.751-.668 0 0 2.539 0 3.385 0 .866 0 1.892.78 1.892.78l3.703 2.896v5.918h4.506c0 0 0-5.821 0-7.47.002-1.283-.609-2.37-2.139-3.531"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.6 19.9l1 1.8h16.9l.7-1.9c0-6.8-1.6-9.7-9.1-9.8-7.6-.1-9.5 3-9.5 9.9" fill="#dbb471"/><path d="m40.5 19.8c-.1.4-.1.8-.3 1-.2.4-.6.6-.6.6s.1-.8.1-1.8c-.4-6.3-.8-3.3-7.7-3.3-6.9 0-7.3-3-7.7 3.3 0 1.1.1 1.8.1 1.8s-.4-.2-.6-.6c-.1-.2-.2-.6-.3-1-.7-.2-1.5 0-1.5 1.9 0 1.2.4 2.1 1.9 2.2.5 3.9 5.8 6.5 8.1 6.5 2.4 0 7.6-2.6 8.1-6.5 1.5-.1 1.9-1.1 1.9-2.2 0-1.9-.8-2.1-1.5-1.9" fill="#fed0ac"/><g fill="#664e27"><circle cx="28.4" cy="21.8" r="1.5"/><circle cx="35.5" cy="21.8" r="1.5"/><path d="m34.3 26.3c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.5-.2-.3"/></g><g fill="#fed0ac"><path d="m30.4 29.9v.9c0 .5-.4.9-.8 1.1h-4.8v11c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-11h-4.9c-.5-.1-.8-.6-.8-1.1v-.9h-3.3"/><path d="m49.2 9.4c-1.7-.5-2.3.6-2.7 1.5-.3.1-.6.3-.7.7l-.2.7c-.1.5.1 1 .6 1.2h.1l-2.7 10.9 2.9.6 2.7-10.9c.6-.1.8-.7 1.3-2.4.5-1.8-1-2.2-1.3-2.3"/><path d="m17.7 13.4c.5-.1.8-.7.6-1.2l-.2-.7c-.1-.4-.4-.6-.7-.7-.3-.9-1-2-2.7-1.5-.3.1-1.8.5-1.3 2.3.5 1.7.7 2.3 1.3 2.4l2.8 11 2.9-.6-2.7-11"/></g><path d="m5.5 15.4v-1.8c0 0 8.8-4.5 26.5-4.5 17.7 0 26.5 4.5 26.5 4.5v1.8c0 0-8.8-4.5-26.5-4.5-17.7 0-26.5 4.5-26.5 4.5" fill="#94989b"/><path d="m46.9 11.4c.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.4l-.3 1.2.9.2.3-1.2" fill="#fed0ac"/><path d="m46.6 11.1c.1.1.1.2.1.4 0 .1 0 .3-.1.4-.1.2-.1.5-.2.7 0 .2.2.2.3.1.1-.2.1-.5.2-.7 0-.2.1-.3.1-.5 0-.2-.1-.4-.2-.5-.1-.1-.3 0-.2.1" fill="#e0a372"/><path d="m17.1 11.4c-.1-.3.1-.5.3-.6.3-.1.5.1.6.4l.3 1.2-.9.2-.3-1.2" fill="#fed0ac"/><path d="m17.4 11.1c-.1.1-.1.2-.1.4 0 .1 0 .3.1.4.1.2.1.5.2.7 0 .2-.2.2-.3.1-.1-.2-.1-.5-.2-.7 0-.2-.1-.3-.1-.5 0-.2.1-.4.2-.5.1-.1.3 0 .2.1" fill="#e0a372"/><path d="m24.7 42.4v1.6-1.6" fill="#428bc1"/><g fill="#3e4347"><path d="m56.9 22l-3.7-1.4 5.1-14.2 3.7 1.4z"/><path d="m52.8 23.6l-5.2-1.9 7.1-19.7 5.2 1.9z"/><path d="M7.1 22 10.8 20.6 5.7 6.4 2 7.8z"/><path d="M11.2 23.6 16.4 21.7 9.3 2 4.1 3.9z"/></g><path d="m46.5 25l-2.8-1.2-5.6 8h-2.9c-.4 1.5-1.7 2.6-3.2 2.6s-2.9-1.1-3.2-2.6h-2.9l-5.6-8-2.8 1.2 7.3 10.3v8.6c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-8.6l7.1-10.3" fill="#47b892"/><g fill="#d3976e"><path d="m20.2 59.3c-1.4 0-2.5 1.2-2.5 2.7h7v-2.7h-4.5"/><path d="m43.8 59.3c1.4 0 2.5 1.2 2.5 2.7h-7v-2.7h4.5"/></g><path d="m24.7 41.9v1.7-1.7" fill="#f2b200"/><path d="m41.7 48.3l-2.4-1.8v-2.9c0 0-2.5 1.5-7.3 1.5-4.8 0-7.3-1.5-7.3-1.5v2.9l-2.4 1.8c-1.5 1.2-2.1 2.2-2.1 3.5 0 1.6 0 7.5 0 7.5h4.5v-5.9l3.8-3c.5-.4 1.1-.7 1.8-.7 0 0 2.5 0 3.4 0 .9 0 1.9.8 1.9.8l3.7 2.9v5.9h4.5c0 0 0-5.8 0-7.5 0-1.3-.6-2.4-2.1-3.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fd.svg
index c298c46..0677833 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m22.522 16.16c0 1.705 0 6.91 0 6.91h18.946c0 0 0-5.205 0-6.91.001-8.935-18.946-8.935-18.946 0"/><g fill="#d6a57c"><path d="m39.841 20.365c-.418-8.132-2.604-3.739-7.847-3.739-5.236 0-7.425-4.393-7.838 3.739 0 0-2.278-1.571-2.278 1.525 0 1.183.436 2.152 1.904 2.254.546 4.192 2.974 5.472 6.598 5.726v.856c0 .519-.351.938-.819 1.074h-4.845l-.003 11.05c0 0 2.514 1.408 7.287 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-11.05h-4.854c-.469-.137-.82-.556-.82-1.074v-.857c3.625-.254 6.06-1.533 6.6-5.726 1.47-.102 1.904-1.071 1.904-2.254-.001-3.096-2.275-1.525-2.275-1.525"/><path d="m49.23 9.403c-1.657-.486-2.328.599-2.653 1.482-.343.057-.642.307-.744.666l-.197.677c-.146.5.136 1.023.63 1.167l.08.023-2.693 10.928 2.892.65 2.673-10.879c.6-.068.78-.683 1.276-2.381.526-1.809-.989-2.253-1.264-2.333"/><path d="m17.729 13.396c.494-.144.776-.667.63-1.167l-.197-.677c-.103-.359-.401-.609-.743-.666-.326-.884-.995-1.969-2.652-1.482-.274.08-1.79.523-1.263 2.334.494 1.698.677 2.313 1.274 2.381l2.673 10.879 2.892-.65-2.693-10.928.079-.024"/></g><g fill="#594640"><path d="m28.2 25.07c0 1.391 1.697 2.557 3.794 2.557 2.095 0 3.794-1.166 3.794-2.557 0 0-2.02.124-3.794.124-1.775 0-3.794-.124-3.794-.124"/><ellipse cx="35.654" cy="20.729" rx="1.264" ry="1.28"/><path d="m27.07 20.729c0 .706.566 1.28 1.266 1.28.695 0 1.266-.574 1.266-1.28 0-.707-.57-1.277-1.266-1.277-.699 0-1.266.57-1.266 1.277"/></g><path fill="#b58360" d="m31.15 23.15c0 .471.375.851.842.851s.843-.38.843-.851h-1.685"/><path fill="#94989b" d="m5.484 15.376v-1.789c0 0 8.771-4.491 26.507-4.491 17.739 0 26.515 4.491 26.515 4.491v1.789c0 0-8.775-4.492-26.515-4.492-17.736 0-26.507 4.492-26.507 4.492"/><path fill="#d6a57c" d="m46.868 11.4c.071-.271-.084-.547-.345-.615-.262-.069-.532.096-.604.367l-.305 1.16.949.247.305-1.159"/><path fill="#b58360" d="m46.582 11.149c.077.14.131.242.134.395.008.144-.03.281-.067.421-.063.229-.123.456-.184.686-.047.175.224.246.27.07.063-.234.127-.469.188-.703.044-.163.081-.327.071-.496-.007-.188-.082-.352-.17-.514-.084-.158-.326-.016-.242.141"/><path fill="#d6a57c" d="m17.13 11.4c-.071-.271.084-.547.345-.615.262-.069.532.096.604.367l.305 1.16-.949.247-.305-1.159"/><path fill="#b58360" d="m17.416 11.149c-.077.14-.131.242-.134.395-.008.144.031.281.067.421.063.229.123.456.184.686.047.175-.224.246-.27.07-.063-.234-.126-.469-.188-.703-.044-.163-.081-.327-.071-.496.007-.188.082-.352.17-.514.084-.158.326-.016.242.141"/><path fill="#428bc1" d="m24.713 42.42v1.557-1.557"/><g fill="#3e4347"><path d="M56.888 21.975 53.17 20.606 58.28 6.4 62 7.768z"/><path d="M52.793 23.561 47.648 21.665 54.727 2 59.874 3.894z"/><path d="M7.114 21.975 10.833 20.606 5.719 6.4 2 7.768z"/><path d="M11.207 23.561 16.354 21.665 9.274 2 4.128 3.894z"/></g><path fill="#47b892" d="m46.548 24.997l-2.756-1.24-5.627 8.04h-2.932c-.362 1.465-1.672 2.553-3.233 2.553s-2.875-1.088-3.235-2.553h-2.932l-5.627-8.04-2.756 1.24 7.266 10.348-.003 8.632c0 0 2.514 1.408 7.287 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-8.635 7.262-10.345"/><g fill="#d3976e"><path d="m20.2 59.29c-1.375 0-2.49 1.209-2.49 2.701v.012h7.01v-2.713h-4.516"/><path d="m43.801 59.29c1.377 0 2.49 1.209 2.49 2.701v.012h-7.01v-2.713h4.515"/></g><path fill="#f2b200" d="m24.713 41.898v1.67-1.67"/><path fill="#3e4347" d="m41.651 48.28l-2.392-1.796h.026l-.002-2.921c0 0-2.518 1.51-7.284 1.51-4.773 0-7.287-1.51-7.287-1.51v2.921h.025l-2.39 1.796c-1.531 1.161-2.143 2.248-2.143 3.532 0 1.648 0 7.47 0 7.47h4.507v-5.918l3.817-3.01h.025c.478-.417 1.088-.668 1.751-.668 0 0 2.539 0 3.385 0 .866 0 1.892.78 1.892.78l3.703 2.896v5.918h4.506c0 0 0-5.821 0-7.47.002-1.283-.609-2.37-2.139-3.531"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.6 19.9l1 1.8h16.9l.7-1.9c0-6.8-1.6-9.7-9.1-9.8-7.6-.1-9.5 3-9.5 9.9" fill="#594640"/><path d="m40.5 19.8c-.1.4-.1.8-.3 1-.2.4-.6.6-.6.6s.1-.8.1-1.8c-.4-6.3-.8-3.3-7.7-3.3-6.9 0-7.3-3-7.7 3.3 0 1.1.1 1.8.1 1.8s-.4-.2-.6-.6c-.1-.2-.2-.6-.3-1-.7-.2-1.5 0-1.5 1.9 0 1.2.4 2.1 1.9 2.2.5 3.9 5.8 6.5 8.1 6.5 2.4 0 7.6-2.6 8.1-6.5 1.5-.1 1.9-1.1 1.9-2.2 0-1.9-.8-2.1-1.5-1.9" fill="#d6a57c"/><g fill="#664e27"><circle cx="28.4" cy="21.8" r="1.5"/><circle cx="35.5" cy="21.8" r="1.5"/><path d="m34.3 26.3c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.5-.2-.3"/></g><g fill="#d6a57c"><path d="m30.4 29.9v.9c0 .5-.4.9-.8 1.1h-4.8v11c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-11h-4.9c-.5-.1-.8-.6-.8-1.1v-.9h-3.3"/><path d="m49.2 9.4c-1.7-.5-2.3.6-2.7 1.5-.3.1-.6.3-.7.7l-.2.7c-.1.5.1 1 .6 1.2h.1l-2.7 10.9 2.9.6 2.7-10.9c.6-.1.8-.7 1.3-2.4.5-1.8-1-2.2-1.3-2.3"/><path d="m17.7 13.4c.5-.1.8-.7.6-1.2l-.2-.7c-.1-.4-.4-.6-.7-.7-.3-.9-1-2-2.7-1.5-.3.1-1.8.5-1.3 2.3.5 1.7.7 2.3 1.3 2.4l2.8 11 2.9-.6-2.7-11"/></g><path d="m5.5 15.4v-1.8c0 0 8.8-4.5 26.5-4.5 17.7 0 26.5 4.5 26.5 4.5v1.8c0 0-8.8-4.5-26.5-4.5-17.7 0-26.5 4.5-26.5 4.5" fill="#94989b"/><path d="m46.9 11.4c.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.4l-.3 1.2.9.2.3-1.2" fill="#d6a57c"/><path d="m46.6 11.1c.1.1.1.2.1.4 0 .1 0 .3-.1.4-.1.2-.1.5-.2.7 0 .2.2.2.3.1.1-.2.1-.5.2-.7 0-.2.1-.3.1-.5 0-.2-.1-.4-.2-.5-.1-.1-.3 0-.2.1" fill="#b58360"/><path d="m17.1 11.4c-.1-.3.1-.5.3-.6.3-.1.5.1.6.4l.3 1.2-.9.2-.3-1.2" fill="#d6a57c"/><path d="m17.4 11.1c-.1.1-.1.2-.1.4 0 .1 0 .3.1.4.1.2.1.5.2.7 0 .2-.2.2-.3.1-.1-.2-.1-.5-.2-.7 0-.2-.1-.3-.1-.5 0-.2.1-.4.2-.5.1-.1.3 0 .2.1" fill="#b58360"/><path d="m24.7 42.4v1.6-1.6" fill="#428bc1"/><g fill="#3e4347"><path d="m56.9 22l-3.7-1.4 5.1-14.2 3.7 1.4z"/><path d="m52.8 23.6l-5.2-1.9 7.1-19.7 5.2 1.9z"/><path d="M7.1 22 10.8 20.6 5.7 6.4 2 7.8z"/><path d="M11.2 23.6 16.4 21.7 9.3 2 4.1 3.9z"/></g><path d="m46.5 25l-2.8-1.2-5.6 8h-2.9c-.4 1.5-1.7 2.6-3.2 2.6s-2.9-1.1-3.2-2.6h-2.9l-5.6-8-2.8 1.2 7.3 10.3v8.6c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-8.6l7.1-10.3" fill="#47b892"/><g fill="#d3976e"><path d="m20.2 59.3c-1.4 0-2.5 1.2-2.5 2.7h7v-2.7h-4.5"/><path d="m43.8 59.3c1.4 0 2.5 1.2 2.5 2.7h-7v-2.7h4.5"/></g><path d="m24.7 41.9v1.7-1.7" fill="#f2b200"/><path d="m41.7 48.3l-2.4-1.8v-2.9c0 0-2.5 1.5-7.3 1.5-4.8 0-7.3-1.5-7.3-1.5v2.9l-2.4 1.8c-1.5 1.2-2.1 2.2-2.1 3.5 0 1.6 0 7.5 0 7.5h4.5v-5.9l3.8-3c.5-.4 1.1-.7 1.8-.7 0 0 2.5 0 3.4 0 .9 0 1.9.8 1.9.8l3.7 2.9v5.9h4.5c0 0 0-5.8 0-7.5 0-1.3-.6-2.4-2.1-3.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fe.svg
index 963a7bc..7df96c4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m22.522 16.16c0 1.705 0 6.91 0 6.91h18.946c0 0 0-5.205 0-6.91.001-8.935-18.946-8.935-18.946 0"/><g fill="#b47d56"><path d="m39.841 20.365c-.418-8.132-2.604-3.739-7.846-3.739-5.237 0-7.426-4.393-7.84 3.739 0 0-2.277-1.571-2.277 1.525 0 1.183.436 2.152 1.904 2.254.546 4.192 2.974 5.472 6.598 5.726v.856c0 .519-.35.938-.818 1.074h-4.846l-.004 11.05c0 0 2.515 1.408 7.288 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-11.05h-4.854c-.469-.137-.82-.556-.82-1.074v-.857c3.626-.254 6.06-1.533 6.599-5.726 1.471-.102 1.904-1.071 1.904-2.254-.001-3.096-2.274-1.525-2.274-1.525"/><path d="m49.23 9.403c-1.656-.486-2.326.599-2.652 1.482-.343.057-.641.307-.744.666l-.197.677c-.146.5.136 1.023.63 1.167l.081.023-2.694 10.928 2.892.65 2.674-10.879c.598-.068.779-.683 1.275-2.381.526-1.809-.989-2.253-1.265-2.333"/><path d="m17.729 13.396c.495-.144.776-.667.63-1.167l-.197-.677c-.103-.359-.401-.609-.744-.666-.325-.884-.994-1.969-2.65-1.482-.275.08-1.791.523-1.264 2.334.494 1.698.678 2.313 1.274 2.381l2.673 10.879 2.892-.65-2.693-10.928.079-.024"/></g><g fill="#47352d"><path d="m28.2 25.07c0 1.391 1.697 2.557 3.794 2.557 2.095 0 3.794-1.166 3.794-2.557 0 0-2.02.124-3.794.124s-3.794-.124-3.794-.124"/><ellipse cx="35.654" cy="20.729" rx="1.264" ry="1.28"/><ellipse cx="28.338" cy="20.729" rx="1.265" ry="1.28"/></g><path fill="#935e3e" d="m31.15 23.15c0 .471.375.851.842.851.468 0 .843-.38.843-.851h-1.685"/><path fill="#94989b" d="m5.484 15.376v-1.789c0 0 8.771-4.491 26.507-4.491 17.739 0 26.516 4.491 26.516 4.491v1.789c0 0-8.776-4.492-26.516-4.492-17.736 0-26.507 4.492-26.507 4.492"/><path fill="#b47d56" d="m46.868 11.4c.071-.271-.084-.547-.344-.615-.262-.069-.533.096-.604.367l-.304 1.16.948.247.304-1.159"/><path fill="#935e3e" d="m46.583 11.149c.076.14.13.242.133.395.008.144-.031.281-.067.421-.063.229-.122.456-.183.686-.048.175.223.246.269.07.063-.234.126-.469.188-.703.044-.163.081-.327.072-.496-.008-.188-.083-.352-.171-.514-.084-.158-.326-.016-.241.141"/><path fill="#b47d56" d="m17.13 11.4c-.071-.271.084-.547.345-.615.262-.069.532.096.604.367l.304 1.16-.948.247-.305-1.159"/><path fill="#935e3e" d="m17.416 11.149c-.077.14-.13.242-.134.395-.008.144.031.281.067.421.063.229.123.456.184.686.048.175-.224.246-.27.07-.063-.234-.126-.469-.188-.703-.044-.163-.08-.327-.071-.496.007-.188.082-.352.17-.514.085-.158.326-.016.242.141"/><path fill="#428bc1" d="m24.712 42.42v1.557-1.557"/><g fill="#3e4347"><path d="M56.888 21.975 53.17 20.606 58.28 6.4 62 7.768z"/><path d="M52.794 23.561 47.648 21.665 54.728 2 59.874 3.894z"/><path d="M7.114 21.975 10.833 20.606 5.719 6.4 2 7.768z"/><path d="M11.206 23.561 16.354 21.665 9.274 2 4.128 3.894z"/></g><path fill="#47b892" d="m46.548 24.997l-2.756-1.24-5.627 8.04h-2.932c-.362 1.465-1.672 2.553-3.233 2.553s-2.875-1.088-3.235-2.553h-2.932l-5.627-8.04-2.756 1.24 7.266 10.348-.004 8.632c0 0 2.515 1.408 7.288 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-8.635 7.262-10.345"/><g fill="#d3976e"><path d="m20.2 59.29c-1.375 0-2.49 1.209-2.49 2.701v.012h7v-2.713h-4.515"/><path d="m43.802 59.29c1.377 0 2.49 1.209 2.49 2.701v.012h-7.01v-2.713h4.516"/></g><path fill="#f2b200" d="m24.712 41.898v1.67-1.67"/><path fill="#3e4347" d="m41.651 48.28l-2.391-1.796h.025l-.002-2.921c0 0-2.518 1.51-7.284 1.51-4.773 0-7.288-1.51-7.288-1.51v2.921h.026l-2.39 1.796c-1.531 1.161-2.143 2.248-2.143 3.532 0 1.648 0 7.47 0 7.47h4.506v-5.918l3.818-3.01h.025c.479-.417 1.088-.668 1.751-.668 0 0 2.539 0 3.386 0 .865 0 1.891.78 1.891.78l3.703 2.896v5.918h4.506c0 0 0-5.821 0-7.47.002-1.283-.609-2.37-2.139-3.531"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.6 19.9l1 1.8h16.9l.7-1.9c0-6.8-1.6-9.7-9.1-9.8-7.6-.1-9.5 3-9.5 9.9" fill="#231f20"/><path d="m40.5 19.8c-.1.4-.1.8-.3 1-.2.4-.6.6-.6.6s.1-.8.1-1.8c-.4-6.3-.8-3.3-7.7-3.3-6.9 0-7.3-3-7.7 3.3 0 1.1.1 1.8.1 1.8s-.4-.2-.6-.6c-.1-.2-.2-.6-.3-1-.7-.2-1.5 0-1.5 1.9 0 1.2.4 2.1 1.9 2.2.5 3.9 5.8 6.5 8.1 6.5 2.4 0 7.6-2.6 8.1-6.5 1.5-.1 1.9-1.1 1.9-2.2 0-1.9-.8-2.1-1.5-1.9" fill="#b47d56"/><g fill="#664e27"><circle cx="28.4" cy="21.8" r="1.5"/><circle cx="35.5" cy="21.8" r="1.5"/><path d="m34.3 26.3c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.5-.2-.3"/></g><g fill="#b47d56"><path d="m30.4 29.9v.9c0 .5-.4.9-.8 1.1h-4.8v11c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-11h-4.9c-.5-.1-.8-.6-.8-1.1v-.9h-3.3"/><path d="m49.2 9.4c-1.7-.5-2.3.6-2.7 1.5-.3.1-.6.3-.7.7l-.2.7c-.1.5.1 1 .6 1.2h.1l-2.7 10.9 2.9.6 2.7-10.9c.6-.1.8-.7 1.3-2.4.5-1.8-1-2.2-1.3-2.3"/><path d="m17.7 13.4c.5-.1.8-.7.6-1.2l-.2-.7c-.1-.4-.4-.6-.7-.7-.3-.9-1-2-2.7-1.5-.3.1-1.8.5-1.3 2.3.5 1.7.7 2.3 1.3 2.4l2.8 11 2.9-.6-2.7-11"/></g><path d="m5.5 15.4v-1.8c0 0 8.8-4.5 26.5-4.5 17.7 0 26.5 4.5 26.5 4.5v1.8c0 0-8.8-4.5-26.5-4.5-17.7 0-26.5 4.5-26.5 4.5" fill="#94989b"/><path d="m46.9 11.4c.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.4l-.3 1.2.9.2.3-1.2" fill="#b47d56"/><path d="m46.6 11.1c.1.1.1.2.1.4 0 .1 0 .3-.1.4-.1.2-.1.5-.2.7 0 .2.2.2.3.1.1-.2.1-.5.2-.7 0-.2.1-.3.1-.5 0-.2-.1-.4-.2-.5-.1-.1-.3 0-.2.1" fill="#935e3e"/><path d="m17.1 11.4c-.1-.3.1-.5.3-.6.3-.1.5.1.6.4l.3 1.2-.9.2-.3-1.2" fill="#b47d56"/><path d="m17.4 11.1c-.1.1-.1.2-.1.4 0 .1 0 .3.1.4.1.2.1.5.2.7 0 .2-.2.2-.3.1-.1-.2-.1-.5-.2-.7 0-.2-.1-.3-.1-.5 0-.2.1-.4.2-.5.1-.1.3 0 .2.1" fill="#935e3e"/><path d="m24.7 42.4v1.6-1.6" fill="#428bc1"/><g fill="#3e4347"><path d="m56.9 22l-3.7-1.4 5.1-14.2 3.7 1.4z"/><path d="m52.8 23.6l-5.2-1.9 7.1-19.7 5.2 1.9z"/><path d="M7.1 22 10.8 20.6 5.7 6.4 2 7.8z"/><path d="M11.2 23.6 16.4 21.7 9.3 2 4.1 3.9z"/></g><path d="m46.5 25l-2.8-1.2-5.6 8h-2.9c-.4 1.5-1.7 2.6-3.2 2.6s-2.9-1.1-3.2-2.6h-2.9l-5.6-8-2.8 1.2 7.3 10.3v8.6c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-8.6l7.1-10.3" fill="#47b892"/><g fill="#d3976e"><path d="m20.2 59.3c-1.4 0-2.5 1.2-2.5 2.7h7v-2.7h-4.5"/><path d="m43.8 59.3c1.4 0 2.5 1.2 2.5 2.7h-7v-2.7h4.5"/></g><path d="m24.7 41.9v1.7-1.7" fill="#f2b200"/><path d="m41.7 48.3l-2.4-1.8v-2.9c0 0-2.5 1.5-7.3 1.5-4.8 0-7.3-1.5-7.3-1.5v2.9l-2.4 1.8c-1.5 1.2-2.1 2.2-2.1 3.5 0 1.6 0 7.5 0 7.5h4.5v-5.9l3.8-3c.5-.4 1.1-.7 1.8-.7 0 0 2.5 0 3.4 0 .9 0 1.9.8 1.9.8l3.7 2.9v5.9h4.5c0 0 0-5.8 0-7.5 0-1.3-.6-2.4-2.1-3.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3ff.svg
index 9366c4e..252bf0e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cb-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m22.522 16.16c0 1.705 0 6.91 0 6.91h18.946c0 0 0-5.205 0-6.91.001-8.935-18.946-8.935-18.946 0"/><g fill="#8a6859"><path d="m39.841 20.365c-.418-8.132-2.604-3.739-7.847-3.739-5.236 0-7.425-4.393-7.838 3.739 0 0-2.278-1.571-2.278 1.525 0 1.183.436 2.152 1.904 2.254.546 4.192 2.974 5.472 6.598 5.726v.856c0 .519-.351.938-.819 1.074h-4.845l-.003 11.05c0 0 2.514 1.408 7.287 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-11.05h-4.854c-.469-.137-.82-.556-.82-1.074v-.857c3.625-.254 6.06-1.533 6.6-5.726 1.47-.102 1.904-1.071 1.904-2.254-.001-3.096-2.275-1.525-2.275-1.525"/><path d="m49.23 9.403c-1.657-.486-2.328.599-2.653 1.482-.343.057-.642.307-.744.666l-.197.677c-.146.5.136 1.023.63 1.167l.08.023-2.693 10.928 2.892.65 2.673-10.879c.6-.068.78-.683 1.276-2.381.526-1.809-.989-2.253-1.264-2.333"/><path d="m17.729 13.396c.494-.144.776-.667.63-1.167l-.197-.677c-.103-.359-.401-.609-.743-.666-.326-.884-.995-1.969-2.652-1.482-.274.08-1.79.523-1.263 2.334.494 1.698.677 2.313 1.274 2.381l2.673 10.879 2.892-.65-2.693-10.928.079-.024"/></g><g fill="#47352d"><path d="m28.2 25.07c0 1.391 1.697 2.557 3.794 2.557 2.095 0 3.794-1.166 3.794-2.557 0 0-2.02.124-3.794.124-1.775 0-3.794-.124-3.794-.124"/><ellipse cx="35.654" cy="20.729" rx="1.264" ry="1.28"/><path d="m27.07 20.729c0 .706.566 1.28 1.266 1.28.695 0 1.266-.574 1.266-1.28 0-.707-.57-1.277-1.266-1.277-.699 0-1.266.57-1.266 1.277"/></g><path fill="#705041" d="m31.15 23.15c0 .471.375.851.842.851s.843-.38.843-.851h-1.685"/><path fill="#94989b" d="m5.484 15.376v-1.789c0 0 8.771-4.491 26.507-4.491 17.739 0 26.515 4.491 26.515 4.491v1.789c0 0-8.775-4.492-26.515-4.492-17.736 0-26.507 4.492-26.507 4.492"/><path fill="#8a6859" d="m46.868 11.4c.071-.271-.084-.547-.345-.615-.262-.069-.532.096-.604.367l-.305 1.16.949.247.305-1.159"/><path fill="#705041" d="m46.582 11.149c.077.14.131.242.134.395.008.144-.03.281-.067.421-.063.229-.123.456-.184.686-.047.175.224.246.27.07.063-.234.127-.469.188-.703.044-.163.081-.327.071-.496-.007-.188-.082-.352-.17-.514-.084-.158-.326-.016-.242.141"/><path fill="#8a6859" d="m17.13 11.4c-.071-.271.084-.547.345-.615.262-.069.532.096.604.367l.305 1.16-.949.247-.305-1.159"/><path fill="#705041" d="m17.416 11.149c-.077.14-.131.242-.134.395-.008.144.031.281.067.421.063.229.123.456.184.686.047.175-.224.246-.27.07-.063-.234-.126-.469-.188-.703-.044-.163-.081-.327-.071-.496.007-.188.082-.352.17-.514.084-.158.326-.016.242.141"/><path fill="#428bc1" d="m24.713 42.42v1.557-1.557"/><g fill="#3e4347"><path d="M56.888 21.975 53.17 20.606 58.28 6.4 62 7.768z"/><path d="M52.793 23.561 47.648 21.665 54.727 2 59.874 3.894z"/><path d="M7.114 21.975 10.833 20.606 5.719 6.4 2 7.768z"/><path d="M11.207 23.561 16.354 21.665 9.274 2 4.128 3.894z"/></g><path fill="#47b892" d="m46.548 24.997l-2.756-1.24-5.627 8.04h-2.932c-.362 1.465-1.672 2.553-3.233 2.553s-2.875-1.088-3.235-2.553h-2.932l-5.627-8.04-2.756 1.24 7.266 10.348-.003 8.632c0 0 2.514 1.408 7.287 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-8.635 7.262-10.345"/><g fill="#d3976e"><path d="m20.2 59.29c-1.375 0-2.49 1.209-2.49 2.701v.012h7.01v-2.713h-4.516"/><path d="m43.801 59.29c1.377 0 2.49 1.209 2.49 2.701v.012h-7.01v-2.713h4.515"/></g><path fill="#f2b200" d="m24.713 41.898v1.67-1.67"/><path fill="#3e4347" d="m41.651 48.28l-2.392-1.796h.026l-.002-2.921c0 0-2.518 1.51-7.284 1.51-4.773 0-7.287-1.51-7.287-1.51v2.921h.025l-2.39 1.796c-1.531 1.161-2.143 2.248-2.143 3.532 0 1.648 0 7.47 0 7.47h4.507v-5.918l3.817-3.01h.025c.478-.417 1.088-.668 1.751-.668 0 0 2.539 0 3.385 0 .866 0 1.892.78 1.892.78l3.703 2.896v5.918h4.506c0 0 0-5.821 0-7.47.002-1.283-.609-2.37-2.139-3.531"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.6 19.9l1 1.8h16.9l.7-1.9c0-6.8-1.6-9.7-9.1-9.8-7.6-.1-9.5 3-9.5 9.9" fill="#231f20"/><path d="m40.5 19.8c-.1.4-.1.8-.3 1-.2.4-.6.6-.6.6s.1-.8.1-1.8c-.4-6.3-.8-3.3-7.7-3.3-6.9 0-7.3-3-7.7 3.3 0 1.1.1 1.8.1 1.8s-.4-.2-.6-.6c-.1-.2-.2-.6-.3-1-.7-.2-1.5 0-1.5 1.9 0 1.2.4 2.1 1.9 2.2.5 3.9 5.8 6.5 8.1 6.5 2.4 0 7.6-2.6 8.1-6.5 1.5-.1 1.9-1.1 1.9-2.2 0-1.9-.8-2.1-1.5-1.9" fill="#8a6859"/><g fill="#574137"><circle cx="28.4" cy="21.8" r="1.5"/><circle cx="35.5" cy="21.8" r="1.5"/><path d="m34.3 26.3c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.5-.2-.3"/></g><g fill="#8a6859"><path d="m30.4 29.9v.9c0 .5-.4.9-.8 1.1h-4.8v11c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-11h-4.9c-.5-.1-.8-.6-.8-1.1v-.9h-3.3"/><path d="m49.2 9.4c-1.7-.5-2.3.6-2.7 1.5-.3.1-.6.3-.7.7l-.2.7c-.1.5.1 1 .6 1.2h.1l-2.7 10.9 2.9.6 2.7-10.9c.6-.1.8-.7 1.3-2.4.5-1.8-1-2.2-1.3-2.3"/><path d="m17.7 13.4c.5-.1.8-.7.6-1.2l-.2-.7c-.1-.4-.4-.6-.7-.7-.3-.9-1-2-2.7-1.5-.3.1-1.8.5-1.3 2.3.5 1.7.7 2.3 1.3 2.4l2.8 11 2.9-.6-2.7-11"/></g><path d="m5.5 15.4v-1.8c0 0 8.8-4.5 26.5-4.5 17.7 0 26.5 4.5 26.5 4.5v1.8c0 0-8.8-4.5-26.5-4.5-17.7 0-26.5 4.5-26.5 4.5" fill="#94989b"/><path d="m46.9 11.4c.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.4l-.3 1.2.9.2.3-1.2" fill="#8a6859"/><path d="m46.6 11.1c.1.1.1.2.1.4 0 .1 0 .3-.1.4-.1.2-.1.5-.2.7 0 .2.2.2.3.1.1-.2.1-.5.2-.7 0-.2.1-.3.1-.5 0-.2-.1-.4-.2-.5-.1-.1-.3 0-.2.1" fill="#705041"/><path d="m17.1 11.4c-.1-.3.1-.5.3-.6.3-.1.5.1.6.4l.3 1.2-.9.2-.3-1.2" fill="#8a6859"/><path d="m17.4 11.1c-.1.1-.1.2-.1.4 0 .1 0 .3.1.4.1.2.1.5.2.7 0 .2-.2.2-.3.1-.1-.2-.1-.5-.2-.7 0-.2-.1-.3-.1-.5 0-.2.1-.4.2-.5.1-.1.3 0 .2.1" fill="#705041"/><path d="m24.7 42.4v1.6-1.6" fill="#428bc1"/><g fill="#3e4347"><path d="m56.9 22l-3.7-1.4 5.1-14.2 3.7 1.4z"/><path d="m52.8 23.6l-5.2-1.9 7.1-19.7 5.2 1.9z"/><path d="M7.1 22 10.8 20.6 5.7 6.4 2 7.8z"/><path d="M11.2 23.6 16.4 21.7 9.3 2 4.1 3.9z"/></g><path d="m46.5 25l-2.8-1.2-5.6 8h-2.9c-.4 1.5-1.7 2.6-3.2 2.6s-2.9-1.1-3.2-2.6h-2.9l-5.6-8-2.8 1.2 7.3 10.3v8.6c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-8.6l7.1-10.3" fill="#47b892"/><g fill="#d3976e"><path d="m20.2 59.3c-1.4 0-2.5 1.2-2.5 2.7h7v-2.7h-4.5"/><path d="m43.8 59.3c1.4 0 2.5 1.2 2.5 2.7h-7v-2.7h4.5"/></g><path d="m24.7 41.9v1.7-1.7" fill="#f2b200"/><path d="m41.7 48.3l-2.4-1.8v-2.9c0 0-2.5 1.5-7.3 1.5-4.8 0-7.3-1.5-7.3-1.5v2.9l-2.4 1.8c-1.5 1.2-2.1 2.2-2.1 3.5 0 1.6 0 7.5 0 7.5h4.5v-5.9l3.8-3c.5-.4 1.1-.7 1.8-.7 0 0 2.5 0 3.4 0 .9 0 1.9.8 1.9.8l3.7 2.9v5.9h4.5c0 0 0-5.8 0-7.5 0-1.3-.6-2.4-2.1-3.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cb.svg
index da59763..606b007 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m22.521 16.16c0 1.705 0 6.911 0 6.911h18.946c0 0 0-5.206 0-6.911.001-8.935-18.946-8.935-18.946 0"/><g fill="#ffdd67"><path d="m39.84 20.365c-.418-8.131-2.604-3.739-7.846-3.739-5.237 0-7.425-4.393-7.839 3.739 0 0-2.278-1.571-2.278 1.525 0 1.183.436 2.152 1.904 2.254.546 4.192 2.974 5.472 6.597 5.725v.857c0 .519-.35.938-.818 1.074h-4.845l-.004 11.05c0 0 2.514 1.408 7.288 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-11.05h-4.854c-.469-.136-.82-.555-.82-1.074v-.856c3.626-.253 6.06-1.533 6.599-5.725 1.471-.102 1.904-1.071 1.904-2.254-.001-3.097-2.274-1.526-2.274-1.526"/><path d="m49.23 9.403c-1.656-.486-2.327.599-2.652 1.482-.343.058-.642.308-.744.667l-.197.677c-.146.5.136 1.023.63 1.167l.08.024-2.693 10.927 2.892.651 2.673-10.879c.599-.068.78-.682 1.276-2.381.526-1.811-.989-2.255-1.265-2.335"/><path d="m17.728 13.396c.495-.144.776-.667.63-1.167l-.197-.677c-.103-.359-.401-.609-.744-.667-.326-.883-.994-1.968-2.651-1.482-.275.081-1.791.524-1.263 2.334.494 1.699.677 2.313 1.274 2.381l2.673 10.879 2.892-.651-2.693-10.927.079-.023"/></g><g fill="#594640"><path d="m28.2 25.07c0 1.391 1.698 2.557 3.794 2.557 2.095 0 3.794-1.167 3.794-2.557 0 0-2.02.124-3.794.124-1.776 0-3.794-.124-3.794-.124"/><ellipse cx="35.653" cy="20.73" rx="1.264" ry="1.28"/><path d="m27.07 20.73c0 .706.566 1.28 1.265 1.28.696 0 1.265-.574 1.265-1.28 0-.708-.569-1.277-1.265-1.277-.699 0-1.265.569-1.265 1.277"/></g><path fill="#eba352" d="m31.15 23.14c0 .472.375.852.842.852.467 0 .843-.38.843-.852h-1.685"/><path fill="#94989b" d="m5.483 15.376v-1.789c0 0 8.771-4.492 26.506-4.492 17.74 0 26.516 4.492 26.516 4.492v1.789c0 0-8.776-4.492-26.516-4.492-17.735 0-26.506 4.492-26.506 4.492"/><path fill="#ffdd67" d="m46.867 11.4c.071-.271-.084-.547-.344-.615-.263-.069-.533.096-.604.367l-.304 1.16.948.247.304-1.159"/><path fill="#eba352" d="m46.582 11.15c.076.139.13.242.133.394.008.144-.031.282-.067.421-.063.229-.123.456-.183.686-.048.175.223.246.269.07.063-.234.126-.469.188-.703.044-.163.081-.327.071-.496-.007-.188-.082-.352-.17-.514-.084-.158-.326-.016-.241.142"/><path fill="#ffdd67" d="m17.13 11.4c-.071-.271.084-.547.344-.615.262-.069.533.096.604.367l.304 1.16-.948.247-.304-1.159"/><path fill="#eba352" d="m17.415 11.15c-.077.139-.13.242-.133.394-.008.144.031.282.067.421.063.229.123.456.183.686.048.175-.223.246-.269.07-.063-.234-.126-.469-.188-.703-.044-.163-.081-.327-.071-.496.007-.188.082-.352.17-.514.083-.158.325-.016.241.142"/><path fill="#428bc1" d="m24.711 42.42v1.557-1.557"/><g fill="#3e4347"><path d="M56.887 21.975 53.17 20.606 58.28 6.4 61.999 7.768z"/><path d="M52.793 23.561 47.647 21.666 54.727 2 59.873 3.894z"/><path d="M7.113 21.975 10.832 20.606 5.718 6.4 1.999 7.768z"/><path d="M11.206 23.561 16.353 21.666 9.274 2 4.127 3.894z"/></g><path fill="#47b892" d="m46.547 24.997l-2.756-1.24-5.627 8.04h-2.932c-.362 1.465-1.672 2.553-3.233 2.553-1.562 0-2.875-1.088-3.235-2.553h-2.932l-5.627-8.04-2.756 1.24 7.266 10.348-.003 8.632c0 0 2.514 1.408 7.288 1.408 4.767 0 7.284-1.408 7.284-1.408l.002-8.635 7.261-10.345"/><g fill="#d3976e"><path d="m20.2 59.29c-1.375 0-2.49 1.209-2.49 2.701v.012h7v-2.713h-4.515"/><path d="m43.8 59.29c1.377 0 2.49 1.209 2.49 2.701v.012h-7.01v-2.713h4.515"/></g><path fill="#f2b200" d="m24.711 41.898v1.67-1.67"/><path fill="#3e4347" d="m41.65 48.28l-2.392-1.796h.026l-.002-2.921c0 0-2.518 1.51-7.284 1.51-4.773 0-7.288-1.51-7.288-1.51v2.921h.026l-2.39 1.796c-1.531 1.161-2.143 2.248-2.143 3.532 0 1.649 0 7.47 0 7.47h4.506v-5.918l3.818-3.01h.025c.478-.418 1.088-.669 1.75-.669 0 0 2.54 0 3.386 0 .865 0 1.891.78 1.891.78l3.703 2.896v5.918h4.506c0 0 0-5.82 0-7.47.003-1.283-.608-2.37-2.138-3.531"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.6 19.9l1 1.8h16.9l.7-1.9c0-6.8-1.6-9.7-9.1-9.8-7.6-.1-9.5 3-9.5 9.9" fill="#ffb300"/><path d="m40.5 19.8c-.1.4-.1.8-.3 1-.2.4-.6.6-.6.6s.1-.8.1-1.8c-.4-6.3-.8-3.3-7.7-3.3-6.9 0-7.3-3-7.7 3.3 0 1.1.1 1.8.1 1.8s-.4-.2-.6-.6c-.1-.2-.2-.6-.3-1-.7-.2-1.5 0-1.5 1.9 0 1.2.4 2.1 1.9 2.2.5 3.9 5.8 6.5 8.1 6.5 2.4 0 7.6-2.6 8.1-6.5 1.5-.1 1.9-1.1 1.9-2.2 0-1.9-.8-2.1-1.5-1.9" fill="#ffdd67"/><g fill="#937237"><circle cx="28.4" cy="21.8" r="1.5"/><circle cx="35.5" cy="21.8" r="1.5"/><path d="m34.3 26.3c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.5-.2-.3"/></g><g fill="#ffdd67"><path d="m30.4 29.9v.9c0 .5-.4.9-.8 1.1h-4.8v11c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-11h-4.9c-.5-.1-.8-.6-.8-1.1v-.9h-3.3"/><path d="m49.2 9.4c-1.7-.5-2.3.6-2.7 1.5-.3.1-.6.3-.7.7l-.2.7c-.1.5.1 1 .6 1.2h.1l-2.7 10.9 2.9.6 2.7-10.9c.6-.1.8-.7 1.3-2.4.5-1.8-1-2.2-1.3-2.3"/><path d="m17.7 13.4c.5-.1.8-.7.6-1.2l-.2-.7c-.1-.4-.4-.6-.7-.7-.3-.9-1-2-2.7-1.5-.3.1-1.8.5-1.3 2.3.5 1.7.7 2.3 1.3 2.4l2.8 11 2.9-.6-2.7-11"/></g><path d="m5.5 15.4v-1.8c0 0 8.8-4.5 26.5-4.5 17.7 0 26.5 4.5 26.5 4.5v1.8c0 0-8.8-4.5-26.5-4.5-17.7 0-26.5 4.5-26.5 4.5" fill="#94989b"/><path d="m46.9 11.4c.1-.3-.1-.5-.3-.6-.3-.1-.5.1-.6.4l-.3 1.2.9.2.3-1.2" fill="#ffdd67"/><path d="m46.6 11.1c.1.1.1.2.1.4 0 .1 0 .3-.1.4-.1.2-.1.5-.2.7 0 .2.2.2.3.1.1-.2.1-.5.2-.7 0-.2.1-.3.1-.5 0-.2-.1-.4-.2-.5-.1-.1-.3 0-.2.1" fill="#eba352"/><path d="m17.1 11.4c-.1-.3.1-.5.3-.6.3-.1.5.1.6.4l.3 1.2-.9.2-.3-1.2" fill="#ffdd67"/><path d="m17.4 11.1c-.1.1-.1.2-.1.4 0 .1 0 .3.1.4.1.2.1.5.2.7 0 .2-.2.2-.3.1-.1-.2-.1-.5-.2-.7 0-.2-.1-.3-.1-.5 0-.2.1-.4.2-.5.1-.1.3 0 .2.1" fill="#eba352"/><path d="m24.7 42.4v1.6-1.6" fill="#428bc1"/><g fill="#3e4347"><path d="m56.9 22l-3.7-1.4 5.1-14.2 3.7 1.4z"/><path d="m52.8 23.6l-5.2-1.9 7.1-19.7 5.2 1.9z"/><path d="M7.1 22 10.8 20.6 5.7 6.4 2 7.8z"/><path d="M11.2 23.6 16.4 21.7 9.3 2 4.1 3.9z"/></g><path d="m46.5 25l-2.8-1.2-5.6 8h-2.9c-.4 1.5-1.7 2.6-3.2 2.6s-2.9-1.1-3.2-2.6h-2.9l-5.6-8-2.8 1.2 7.3 10.3v8.6c0 0 2.5 1.4 7.3 1.4 4.8 0 7.3-1.4 7.3-1.4v-8.6l7.1-10.3" fill="#47b892"/><g fill="#d3976e"><path d="m20.2 59.3c-1.4 0-2.5 1.2-2.5 2.7h7v-2.7h-4.5"/><path d="m43.8 59.3c1.4 0 2.5 1.2 2.5 2.7h-7v-2.7h4.5"/></g><path d="m24.7 41.9v1.7-1.7" fill="#f2b200"/><path d="m41.7 48.3l-2.4-1.8v-2.9c0 0-2.5 1.5-7.3 1.5-4.8 0-7.3-1.5-7.3-1.5v2.9l-2.4 1.8c-1.5 1.2-2.1 2.2-2.1 3.5 0 1.6 0 7.5 0 7.5h4.5v-5.9l3.8-3c.5-.4 1.1-.7 1.8-.7 0 0 2.5 0 3.4 0 .9 0 1.9.8 1.9.8l3.7 2.9v5.9h4.5c0 0 0-5.8 0-7.5 0-1.3-.6-2.4-2.1-3.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cc.svg
index c8731a1..25cce19 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#f7931e"><path d="m35.554 31.866c-.184-1.119.598-2.164 1.746-2.334l10.07-3.265.661 4.053-10.07 3.262c-1.147.173-2.225-.597-2.406-1.716"/><path d="m47.46 30.25c-1.12-.294-1.761-1.407-1.463-2.499l3.151-9.824 4.067 1.057-3.149 9.823c-.296 1.094-1.479 1.738-2.606 1.443"/></g><path fill="#cea284" d="m51.15 18.986l-2.031-.336c-.724-.12-1.217-.788-1.099-1.491l.157-.954c.086-.506.461-.894.935-1.029.305-1.257 1.055-2.843 3.484-2.441.398.066 2.619.431 2.193 2.984-.626 3.764-.626 3.764-3.639 3.267"/><path fill="#999" d="m11.11.101l-.598 1.7 34.07 11.44.597-1.701z"/><path fill="#3e4347" d="m58.15 15.24c.66.219 1.01.923.781 1.565l-.188.536c-.228.643-.946.986-1.607.764l-15.01-5.04c-.657-.219-1.012-.922-.783-1.566l.19-.535c.227-.643.947-.986 1.607-.764l15.01 5.04"/><path fill="#d0d0d0" d="m8.917.669c-1.359 1.302-4.4 5.309-3.851 6.414.554 1.106 8.778 3.295 8.37-3.046-.144-2.253-1.082-3.519-2.074-3.851-.485-.162-1.426-.489-2.445.483" id="0"/><use xlink:href="#0"/><path fill="#fed0ac" d="m34.839 24.58l-2.16 1.016 3.768 8 5.563-2.618z"/><path fill="#f9c19b" d="m34.777 24.398c1.691 3.592 3.315 5.05 5.898 3.834l1.33 2.748c-3.054 1.438-6.097-1.781-8.07-5.974l.843-.608"/><path fill="#fed0ac" d="m27.1 12.968l13.949-1.896c2.608 1.899 2.291 3.704 2.86 4.786.253.48 1.674.909 2.425 1.129 1.673.493.096 2.269-.716 2.462.051 1.321.951 1.265-.936 1.958-1.04.38-2.819.094-2.819.094 5.694.694 5.093 2.366 3.057 2.742 1.098 2.33-.348 3.01-3.519 4.503-2.584 1.217-5.773-.149-7.465-3.741l-3.749 1.027-3.087-13.06"/><g fill="#594640"><path d="m30.16 7.514c-8.964 4.221-6.551 12.385-2.821 17.08 1.985 2.499 4.314 3.587 6.413 3.537l.61-.978-.422-2.144c0 0-1.947.417-3.406-1.34-.669-.804-.573-2.981.739-3.691.916-.495 2.6-.434 2.988-.355-1.095-2.325-2.7-4.509-1.443-5.946 1.037-1.182 7.824-1.287 8.234-2.6 1.111-3.518-5.493-6.101-10.892-3.559"/><path d="m32.817 22.02c.156-.101.333-.155.508-.162-.153-.128-.321-.243-.504-.354-.224-.136-.468-.246-.723-.394.569-.103 1.194.052 1.662.46.47.417.662 1.057.59 1.623-.168-.244-.287-.488-.435-.698-.097-.132-.196-.253-.301-.368-.065.035-.13.066-.188.102-.122.076-.234.131-.337.204-.109.065-.206.149-.326.229-.116.083-.226.186-.387.288-.053-.354.133-.721.441-.93"/><ellipse transform="matrix(-.9047.426-.426-.9047 86.49 13.437)" cx="41.741" cy="16.391" rx="1.066" ry="1.489"/><path d="m41.861 21.501c0 0 2.406 1.392 2.906 1.51 1.065.254 1.139-.278.514-.619-.642-.35-3.42-.891-3.42-.891"/></g><path fill="#fbb03b" d="m43.829 30.572h-8.994c-1.265 0-1.441 1.809-1.305 3.525l.608 10.6 12.12-.006-2.428-14.12"/><g fill="#d3976e"><path d="m45.03 64h7.691c0-1.514-1.224-2.749-2.76-2.819v-.005h-5.953c-.1 1.027-.158 1.658-.158 1.675.001.635.529 1.149 1.18 1.149"/><path d="m34.09 61.17l-5.933-.029c-.287 1.033-.461 1.658-.461 1.675 0 .636.527 1.149 1.18 1.149h7.692c0-1.421-1.079-2.595-2.478-2.795"/></g><path fill="#3e4347" d="m34.13 44.5l-5.976 16.676h5.941c0 0 2.893-6.673 4.963-10.802.2-.399.549-.728 1.028-.728.59 0 .902.488 1.082 1.029 2.077 6.228 2.84 10.5 2.84 10.5h5.953l-3.733-16.675h-12.1"/><g fill="#fbb03b"><path d="m38.995 32.846c-.183-1.119.599-2.164 1.748-2.334l10.07-3.264 1.426 3.906-10.835 3.41c-1.148.172-2.223-.598-2.407-1.718"/><path d="m50.905 31.23c-1.121-.294-1.761-1.407-1.465-2.499l3.152-9.823 4.067 1.057-3.148 9.823c-.296 1.094-1.481 1.737-2.606 1.442"/></g><path fill="#fed0ac" d="m54.59 19.967l-2.032-.336c-.723-.121-1.217-.788-1.098-1.491l.158-.954c.085-.507.461-.895.934-1.029.305-1.257 1.055-2.843 3.483-2.44.399.066 2.621.431 2.193 2.984-.624 3.762-.624 3.762-3.638 3.266"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#3b946f"><path d="m35.3 31.9c-.2-1 .6-2 1.6-2.2l9.3-3.1.6 3.8-9.3 3.1c-1 .1-2-.6-2.2-1.6"/><path d="m46.3 30.4c-1-.3-1.6-1.3-1.4-2.3l2.9-9.2 3.8 1-2.9 9.1c-.2 1-1.3 1.6-2.4 1.4"/></g><path d="m49.7 19.8l-1.9-.3c-.7-.1-1.1-.7-1-1.4l.1-.9c.1-.5.4-.8.9-1 .3-1.2 1-2.7 3.2-2.3.4.1 2.4.4 2 2.8-.5 3.6-.5 3.6-3.3 3.1" fill="#eba352"/><path fill="#999" d="m12.7 2.1l-.6 1.6 31.6 10.7.5-1.6z"/><path d="m56.2 16.3c.6.2.9.9.7 1.5l-.2.5c-.2.6-.9.9-1.5.7l-13.9-4.7c-.6-.2-.9-.9-.7-1.5l.2-.5c.2-.6.9-.9 1.5-.7l13.9 4.7" fill="#3e4347"/><path d="m10.6 2.6c-1.3 1.2-4.1 5-3.6 6 .5 1 8.1 3.1 7.7-2.9-.1-2.1-1-3.3-1.9-3.6-.4-.1-1.2-.4-2.2.5" fill="#d0d0d0" id="0"/><use xlink:href="#0"/><g fill="#d3976e"><path d="m44.1 62h7.1c0-1.4-1.1-2.6-2.6-2.6h-5.5c-.1 1-.1 1.6-.1 1.6 0 .5.5 1 1.1 1"/><path d="m33.9 59.4h-5.5c-.3 1-.4 1.6-.4 1.6 0 .6.5 1.1 1.1 1.1h7.1c0-1.5-1-2.6-2.3-2.7"/></g><path d="m34 43.7l-5.5 15.6h5.5c0 0 2.7-6.3 4.6-10.1.2-.4.5-.7 1-.7.5 0 .8.5 1 1 1.9 5.8 2.6 9.8 2.6 9.8h5.5l-3.5-15.6c0 0-11.2 0-11.2 0" fill="#3e4347"/><path fill="#ffdd67" d="m35.4 24l-3.1-.7 2.7 9.1 5.9-1.8z"/><path d="m40.6 27c-1.4 1.6.3 3.7.3 3.7-2.4.7-5.5-3.5-6.4-6.4l6.1 2.7" fill="#eba352"/><path d="m29.9 12.6l11.6.4c2.1 2 1.6 3.6 1.9 4.6.2.5 1.4 1 2 1.3 1.4.7-.2 2-.9 2.1-.1 1.2 1.4 1.4-1.9 1.7 0 0 3.6.4 1.5 1.7.6 1.2 1.6 3.5-5.7 3-2.2-.1-3.9-3.3-3.9-3.3l-3.5.6-1.1-12.1" fill="#ffdd67"/><path d="m37.1 9.5c-7.6-.2-10.3 4.6-10.4 6.3-.5 4.8 2.5 9 6.8 11.6 0 0 1.3-1.1 1-3.1 0 0-1.5 1.3-3.3-2.1-1.6-2.9 1.2-5.5 4.1-1.8l.4-.1c.3-2.4-2.2-4.5 0-6.1 1.9-1.4 6.3-.7 6.3-.7.3-1.5-1.8-4-4.9-4" fill="#ffb300"/><path d="m40.9 18.5c.2.7.7 1.1 1.2.9.5-.1.4-.7.2-1.4-.2-.7-.5-1.2-1-1-.4.2-.6.9-.4 1.5" fill="#937237"/><path d="m34.5 21.4c-.4-1.3-1.8-2.1-2.9-1.7 0 0 2.3 1 2.5 3.2 0-.1.7-.6.4-1.5" fill="#eba352"/><path d="m41.5 22.9c0 0 1.6.6 2.1.6 1.1.2 1.1-.2.5-.4-.5-.2-1.4-.3-1.4-.3l-1.2.1" fill="#937237"/><g fill="#47b892"><path d="m43 30.7h-8.3c-1.2 0-1.3 1.7-1.2 3.3l.6 9.9h11.2l-2.3-13.2"/><path d="m38.5 32.8c-.2-1 .6-2 1.6-2.2l9.3-3.1 1.3 3.7-10 3.2c-1.1.2-2.1-.6-2.2-1.6"/><path d="m49.5 31.3c-1-.3-1.6-1.3-1.4-2.3l2.9-9.2 3.8 1-2.9 9.2c-.3.9-1.4 1.6-2.4 1.3"/></g><path d="m52.9 20.7l-1.9-.3c-.7-.1-1.1-.7-1-1.4l.1-.9c.1-.5.4-.8.9-1 .3-1.2 1-2.7 3.2-2.3.4.1 2.4.4 2 2.8-.5 3.6-.5 3.6-3.3 3.1" fill="#ffdd67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cd.svg
index cdee2c1..ea58df5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f7931e"><path d="m29.09 23.596c-.937.085-1.64.901-1.566 1.818l.523 6.301 3.398-.316-.525-6.3c-.07-.919-.89-1.591-1.83-1.503"/><path d="m31.29 30.979c-.443-.804-1.46-1.07-2.289-.619l-5.844 3.151 1.599 2.915 5.845-3.148c.828-.451 1.133-1.495.689-2.299"/></g><path fill="#cea284" d="m24.377 34.829l-.642-1.496c-.229-.533-.86-.776-1.406-.542l-.743.316c-.394.168-.638.535-.661.927-.96.489-2.105 1.392-1.335 3.18.125.294.827 1.93 2.813 1.082 2.927-1.248 2.927-1.248 1.974-3.467"/><path fill="#e6e6e6" d="m56.97 35.2l-16.15 10.246.877 1.23 16.9-8.132c.056-1.29-.525-2.553-1.623-3.344"/><path fill="#3e4347" d="m40.06 44.656l4.811-2.344c0 0 2.354 1.978.725 3.281-2.344 1.875-2.344 3.173-2.344 3.173h-3.191v-4.11"/><circle fill="#fff" cx="11.375" cy="52.625" r="7.5"/><g fill="#3e4347"><path d="m10.906 45.594l-.468 7.03.541 7.03h.865l.469-7.03-.469-7.03z"/><path d="m11.375 43.25c-5.178 0-9.375 4.197-9.375 9.375 0 5.18 4.197 9.375 9.375 9.375 5.177 0 9.375-4.195 9.375-9.375 0-5.178-4.198-9.375-9.375-9.375m0 15.938c-3.625 0-6.563-2.937-6.563-6.563 0-3.625 2.938-6.563 6.563-6.563 3.624 0 6.563 2.938 6.563 6.563 0 3.626-2.939 6.563-6.563 6.563"/><path d="m18.407 52.16l-7.03-.472-7.03.542v.86l7.03.47 7.03-.47z"/><path d="m17.698 55.734l-5.855-3.921-6.361-3.046-.432.753 5.855 3.92 6.324 3.11z"/><path d="m8.265 58.949l3.921-5.859 3.045-6.356-.747-.434-3.922 5.86-3.109 6.32z"/><path d="m5.52 56.55l6.324-3.11 5.818-3.99-.433-.745-6.324 3.108-5.855 3.923z"/><path d="m7.453 46.771l3.11 6.319 3.984 5.823.749-.433-3.11-6.32-3.921-5.86z"/></g><path fill="#e6e6e6" d="m11.375 47.938c-2.589 0-4.688 2.097-4.688 4.688s2.099 4.688 4.688 4.688c2.588 0 4.688-2.097 4.688-4.688s-2.1-4.688-4.688-4.688m0 7.5c-1.554 0-2.813-1.258-2.813-2.813s1.259-2.813 2.813-2.813c1.553 0 2.813 1.258 2.813 2.813s-1.26 2.813-2.813 2.813"/><circle fill="#fff" cx="52.625" cy="52.625" r="6.563"/><path fill="#94989b" d="m35.75 42.08v6.32l16.44 6.92 1.795-5.05z"/><path fill="#3e4347" d="m52.625 43.25c-5.178 0-9.375 4.197-9.375 9.375 0 5.18 4.197 9.375 9.375 9.375s9.375-4.195 9.375-9.375c0-5.178-4.197-9.375-9.375-9.375m0 15.938c-3.625 0-6.563-2.937-6.563-6.563 0-3.625 2.938-6.563 6.563-6.563 3.624 0 6.563 2.938 6.563 6.563 0 3.626-2.939 6.563-6.563 6.563"/><path fill="#94989b" d="m13.895 35.691v6.563h14.535c0 0 .429-1.752 0-2.02-7.267-4.543-14.535-4.543-14.535-4.543"/><path fill="#3e4347" d="m28.43 40.31l23.258-5.556v3.576l-19.538 9.608z"/><path fill="#94989b" d="m48.662 34.695c0 0-.98-.621-3.068-.094s-9.375 1.91-9.375 1.91l1.348 1.862 10.371-2.448.724-1.23"/><path fill="#ed4c5c" d="m28.89 40.44c-.553.069-1.01-.368-1.01-.842v-1.496c0-.473.461-.885.981-1.069 1.532-.546 4.374-1.751 5.881-2.188.529-.154 1.208.127 1.486.536l1.845 2.23c.277.41.118.564-.506.766 0-.001-6.464 1.782-8.676 2.063"/><g fill="#94989b"><path d="m11.375 52.625v.685l8.306-11.88-.014-1.93h-2.507l-6.409 13.13z"/><path d="m13.25 52.625c0 1.036-.84 1.875-1.875 1.875-1.036 0-1.875-.839-1.875-1.875 0-1.032.839-1.875 1.875-1.875 1.035 0 1.875.843 1.875 1.875"/></g><path fill="#c94747" d="m19.414 46.17c-1.89-2.353-4.786-3.861-8.04-3.861-2.486 0-4.766.881-6.547 2.346l14.586 1.515"/><g fill="#3e4347"><path d="m52.16 45.594l-.472 7.03.542 7.03h.86l.47-7.03-.47-7.03z"/><path d="m59.656 52.16l-7.03-.472-7.03.542v.86l7.03.47 7.03-.47z"/><path d="m58.947 55.734l-5.857-3.921-6.358-3.046-.432.753 5.86 3.92 6.32 3.11z"/><path d="m49.51 58.949l3.93-5.859 3.04-6.356-.746-.434-3.921 5.86-3.11 6.32z"/><path d="m46.77 56.55l6.32-3.11 5.821-3.99-.431-.745-6.32 3.108-5.86 3.923z"/><path d="m48.703 46.771l3.11 6.319 3.985 5.823.752-.433-3.11-6.32-3.92-5.86z"/></g><path fill="#e6e6e6" d="m52.625 47.938c-2.589 0-4.688 2.097-4.688 4.688s2.099 4.688 4.688 4.688 4.688-2.097 4.688-4.688-2.099-4.688-4.688-4.688m0 7.5c-1.553 0-2.813-1.258-2.813-2.813s1.26-2.813 2.813-2.813 2.813 1.258 2.813 2.813-1.26 2.813-2.813 2.813"/><path fill="#ed4c5c" d="m52.53 31.936c-6.466 1.896-3.067 4.122-7.659 6.447-1.678.85-1.619 2.392-1.619 2.392s5.248-.322 11.785-3.896c3.215-1.758 3.215-5.566 3.215-5.566-2.143-.001-3.737.041-5.722.623"/><path fill="#ccc" d="m39.5 46.885c0 2.071-1.679 3.748-3.75 3.748s-3.75-1.677-3.75-3.748c0-2.073 1.678-3.752 3.75-3.752s3.75 1.679 3.75 3.752"/><circle fill="#94989b" cx="35.75" cy="46.883" r="1.875"/><path fill="#ed4c5c" d="m41.798 47.718c-.531-.145-1.137-.249-1.829-.249-1.915 0-1.316 2.344-4.04 2.344-1.45 0-3.618-1.806-3.154-3.17.853-2.512 3.526-3.449-1.24-5.268-5.949-2.267-14.822-3.281-16.406-3.281-1.7 0-.392-1.946 0-2.402 3.393-3.956 7.811-3.339 7.811-3.339l-1.412-1.289c-4.211 0-7.924 2.1-10.151 5.304-.874 1.256-2.289 3.141-1.543 3.649 2.02 1.373 8.111 5.42 8.111 5.42.035.023 2.368 1.574 2.809 2.384.857 1.578.956 8 .956 8 0 .71.491 1.388 1.375 1.311l18.367-2.547c-.035-.355-.017-.718-.055-1.082-.193-1.838-.021-4.346.404-5.787"/><path fill="#c94747" d="m21.964 42.39c-.441-.332-.802-.232-.802.222 0 .452.359 1.095.796 1.432l4.144 3.166c.439.337 1.249.609 1.8.609h.278c.551 0 .643-.271.202-.603l-6.418-4.826"/><path fill="#94989b" d="m54.5 52.625c0 1.036-.841 1.875-1.875 1.875s-1.875-.839-1.875-1.875c0-1.032.841-1.875 1.875-1.875s1.875.843 1.875 1.875"/><circle fill="#3e4347" cx="18.875" cy="36.38" r="1.875"/><circle fill="#94989b" cx="18.875" cy="36.38" r=".938"/><path fill="#c94747" d="m11.375 38.973h2.52c0 0 .85-.029.85.352s-1.685 1.641-1.685 1.641-3.439-1.759-1.685-1.993"/><path fill="#e6e6e6" d="m14.745 39.32c0-.381-.85-.352-.85-.352h-1.084c0 0-.908.996.249 1.992 0 .001 1.685-1.259 1.685-1.64"/><g fill="#3e4347"><path d="m26.766 50.979c-.465.273-.929.891-1.029 1.368l-.19.908c-.101.479.007 1.046.24 1.258.233.213.546 0 .696-.471l.859-2.704c.149-.471-.11-.634-.576-.359"/><path d="m38.883 49.946c-.465.272-.93.89-1.029 1.368l-.191.908c-.1.479.009 1.045.241 1.258.232.212.546.002.696-.471l.858-2.705c.15-.469-.11-.632-.575-.358"/></g><path fill="#d3976e" d="m30.08 47.992c-1.897-.478-3.801.636-4.25 2.482l8.16 2.052c.949.236 1.901-.318 2.124-1.245l.409-1.67-6.443-1.619"/><path fill="#fbb03b" d="m48 28.405l-12.13 5.321-10.193-9.06c0 0 4.631-4.708 6.081-4.749 8.04-.23 16.243 8.486 16.243 8.486"/><path fill="#3e4347" d="m48 28.405l-12.406 5.03-1.386.779-3.488 13.936 5.797 1.457 3.403-11.217c0 0 5.55-2.354 7.08-3.628 1.269-1.057 2.939-3.524 1.01-6.361"/><g fill="#fbb03b"><path d="m27.18 22.923c-.936.085-1.639.9-1.565 1.818l.524 6.301 3.398-.316-.526-6.3c-.071-.919-.891-1.591-1.831-1.503"/><path d="m29.376 30.31c-.443-.804-1.459-1.07-2.289-.619l-5.844 3.151 1.598 2.916 5.846-3.149c.831-.451 1.134-1.495.689-2.299"/></g><path fill="#fed0ac" d="m22.468 34.16l-.641-1.496c-.231-.533-.861-.776-1.406-.542l-.744.315c-.394.168-.639.536-.662.928-.96.489-2.106 1.391-1.336 3.179.126.295.828 1.93 2.814 1.082 2.928-1.246 2.928-1.246 1.975-3.466"/><path fill="#ed4c5c" d="m37.34 13.477c0 6.338-1.769 6.121-11.476 11.477-3.238 1.786-7.67 1.761-9.832-5.629-.688-2.352-1.644-3.208-1.644-5.848 0-6.339 5.137-11.477 11.476-11.477 6.339 0 11.476 5.138 11.476 11.477"/><path fill="#3e4347" d="m28.461 13.185c.678 1.862-7.539 6.563-12.548 8.386-1.243.453-3.699-6.292-2.454-6.745 5.01-1.823 14.325-3.504 15-1.641"/><circle fill="#94989b" cx="28.25" cy="12.892" r="1.994"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.4 31.4l-.5-6.3-3.4.3.5 5.5-9.4 4.4 3.8 3c0 0 2.7-1.1 2.5-2l5.7-3.1c.7-.3 1-1.1.8-1.8" fill="#231f20"/><path d="m57 35.2l-16.2 10.2.9 1.2 16.9-8.1c0-1.2-.5-2.5-1.6-3.3" fill="#e6e6e6"/><g fill="#3e4347"><path d="m40.1 44.7l4.8-2.3c0 0 2.2 1.9-.2 4.1l-4.6-1.8"/><path d="m11.4 43.2c-5.2 0-9.4 4.2-9.4 9.4 0 5.2 4.2 9.4 9.4 9.4 5.2 0 9.4-4.2 9.4-9.4 0-5.2-4.2-9.4-9.4-9.4m0 16c-3.6 0-6.6-2.9-6.6-6.6 0-3.6 2.9-6.6 6.6-6.6 3.6 0 6.6 2.9 6.6 6.6-.1 3.7-3 6.6-6.6 6.6"/><path d="m18.4 52.2l-4.3-.3 3.6-2.4-.5-.8-3.8 1.9 1.8-3.9-.7-.4-2.4 3.5-.3-4.2h-.9l-.3 4.2-2.3-3.5-.8.5 1.8 3.8-3.8-1.8-.4.7 3.5 2.4-4.3.3v.9l4.3.3-3.5 2.3.4.8 3.8-1.8-1.8 3.8.8.4 2.3-3.5.4 4.3h.8l.3-4.3 2.4 3.5.8-.4-1.9-3.8 3.8 1.8.5-.8-3.5-2.3 4.2-.3z"/></g><path d="m11.4 47.9c-2.6 0-4.7 2.1-4.7 4.7 0 2.6 2.1 4.7 4.7 4.7 2.6 0 4.7-2.1 4.7-4.7 0-2.6-2.1-4.7-4.7-4.7m0 7.5c-1.6 0-2.8-1.3-2.8-2.8s1.3-2.8 2.8-2.8c1.6 0 2.8 1.3 2.8 2.8s-1.3 2.8-2.8 2.8" fill="#e6e6e6"/><path fill="#94989b" d="m35.8 42.1v6.3l16.4 6.9 1.8-5z"/><path d="m52.6 43.2c-5.2 0-9.4 4.2-9.4 9.4 0 5.2 4.2 9.4 9.4 9.4 5.2 0 9.4-4.2 9.4-9.4 0-5.2-4.2-9.4-9.4-9.4m0 16c-3.6 0-6.6-2.9-6.6-6.6 0-3.6 2.9-6.6 6.6-6.6 3.6 0 6.6 2.9 6.6 6.6 0 3.7-3 6.6-6.6 6.6" fill="#3e4347"/><path d="m13.9 35.7v2.8l14.6 2.1c-5.1-4.9-14.6-4.9-14.6-4.9" fill="#94989b"/><path fill="#3e4347" d="m28.4 40.3l22.4-7.3.9 5.3-19.6 9.6z"/><path d="m27.7 40.8l.2-2.7c0-.5.5-.9 1-1.1 1.5-.5 5.9-2.2 5.9-2.2l2.8 3.5-9.9 2.5" fill="#ed4c5c"/><path fill="#3e4347" d="m11.4 53.3l8.3-11.9-2.5-1.9-6.4 13.1z"/><path d="m19.4 46.2c-1.9-2.4-4.8-3.9-8-3.9-2.5 0-4.8.9-6.5 2.3l14.5 1.6" fill="#c94747"/><path fill="#3e4347" d="m59.7 52.2l-4.3-.3 3.5-2.4-.4-.8-3.9 1.9 1.9-3.9-.8-.4-2.3 3.5-.3-4.2h-.9l-.3 4.2-2.4-3.5-.8.5 1.9 3.8-3.9-1.8-.4.7 3.6 2.4-4.3.3v.9l4.2.3-3.5 2.3.5.8 3.8-1.8-1.9 3.8.8.4 2.4-3.5.3 4.3h.9l.3-4.3 2.4 3.5.7-.4-1.8-3.8 3.8 1.8.4-.8-3.5-2.3 4.3-.3z"/><path d="m52.6 47.9c-2.6 0-4.7 2.1-4.7 4.7 0 2.6 2.1 4.7 4.7 4.7 2.6 0 4.7-2.1 4.7-4.7 0-2.6-2.1-4.7-4.7-4.7m0 7.5c-1.6 0-2.8-1.3-2.8-2.8s1.3-2.8 2.8-2.8 2.8 1.3 2.8 2.8-1.2 2.8-2.8 2.8" fill="#e6e6e6"/><g fill="#ed4c5c"><path d="m44.9 38.4c-1.7.8-1.6 2.4-1.6 2.4s5.2-.3 11.8-3.9c3.2-1.8 3.2-5.6 3.2-5.6-11.4-.2-8.1 4.4-13.4 7.1"/><path d="m41.8 47.7c-5.1 0-5.5-4.5-10.3-6.3-6-2.3-14.8-3.3-16.4-3.3-1.7 0-.4-1.9 0-2.4 3.4-4 7.8-3.3 7.8-3.3l-1.4-1.3c-4.2 0-7.9 2.1-10.1 5.3-.9 1.3-2.3 3.1-1.5 3.6 2 1.4 8.1 5.4 8.1 5.4 0 0 2.4 1.6 2.8 2.4.9 1.6 1 8 1 8 0 .7.5 1.4 1.4 1.3l18.4-2.5c-.5-1.3-.8-3.6.2-6.9"/></g><path d="m11.4 39h2.5l-.8 2c0 0-3.6-2-1.7-2" fill="#fff"/><path d="m30.1 48c-1.9-.5-3.8.6-4.3 2.5l8.2 2.1c.9.2 1.9-.3 2.1-1.2l.4-1.7-6.4-1.7" fill="#666c70"/><path d="m48 28.4l-13.8 5.8-3.5 13.9 5.8 1.5 3.4-11.2c0 0 5.6-2.4 7.1-3.6 1.3-1.1 2.9-3.6 1-6.4" fill="#231f20"/><path d="m48 28.4c0 0-8.2-8.7-16.2-8.5l-6.1 4.8.5 5.5-4.8 2.6 1.6 2.9 5.8-3.1c.7-.4.9-1 .9-1.9-.1-.7-.2-2.8-.2-2.8l6.6 5.8 11.9-5.3" fill="#3e4347"/><path d="m22.5 34.2l-.6-1.5c-.2-.5-.9-.8-1.4-.5l-.7.3c-.5.1-.8.5-.8.9-1 .5-2.1 1.4-1.3 3.2.1.3.8 1.9 2.8 1.1 2.9-1.3 2.9-1.3 2-3.5" fill="#666c70"/><path d="m37.3 13.5c0 6.3-1.8 6.1-11.5 11.5-3.2 1.8-7.7 1.8-9.8-5.6-.7-2.4-1.6-3.2-1.6-5.8 0-6.5 5.1-11.6 11.5-11.6 6.3 0 11.4 5.1 11.4 11.5" fill="#ed4c5c"/><path d="m28.5 13.2c.7 1.9-7.5 6.6-12.5 8.4-1.2.5-3.7-6.3-2.5-6.7 5-1.9 14.3-3.6 15-1.7" fill="#3e4347"/><circle cx="28.2" cy="12.9" r="2" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ce.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ce.svg
index 1fcb0c3..f6bb1d8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ce.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ce.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m48.548 34.15l4.713-2.81c1.647-1.191 4.402.006 6.15 2.678 1.746 2.67 1.827 5.801.18 6.994-.114.082-.233.153-.356.212l-4.356 2.595-6.331-9.669"/><path fill="#62696d" d="m49.09 41.03c1.747 2.668 4.137 3.979 5.784 2.786 1.649-1.191 1.567-4.322-.18-6.991-1.748-2.673-4.502-3.872-6.15-2.678-1.514 1.094-.702 4.978.546 6.883"/><path fill="#3e4347" d="m50.45 40.11c.929 1.42 2.075 2.078 2.951 1.445.878-.634.834-2.3-.096-3.719-.93-1.423-2.395-2.059-3.271-1.425-.877.634-.514 2.28.416 3.699"/><path fill="#b2c1c0" d="m51.25 37.967c.893-.452 2.078.783 1.481 1.701l-3.906 2.407-1.213-2.055 3.638-2.053"/><path fill="#9c2c1b" d="m47.652 33.391v5.372l-4.063-3.743z"/><path fill="#3e4347" d="m28.49 16.56l5.435-3.236c1.899-1.376 5.076.009 7.091 3.086 2.02 3.08 2.107 6.689.208 8.07-.133.093-.271.174-.411.243l-5.02 2.993-7.3-11.152"/><path fill="#62696d" d="m29.12 24.495c2.02 3.077 4.77 4.59 6.67 3.217 1.902-1.374 1.808-4.985-.208-8.07-2.02-3.08-5.189-4.462-7.091-3.087-1.745 1.263-.809 5.738.629 7.935"/><path fill="#9c2c1b" d="m51.07 48.858l-11.344-6.265-2.953 1.697-11.553-2.615-14.321-10.762v-5.114l14.321 10.04 11.553 4.137 2.953-2.088 11.344 9.214z"/><path fill="#d33b23" d="m55.26 44.36l-4.19 2.74-11.344-9.214-2.953 2.088-11.553-4.137-14.321-10.04 3.629-2.072 2.34.533 8.282-4.531-.06-1.134 3.297-1.983 14.883 9.841 4.382 6.938-3.048 1.493z"/><path fill="#f15744" d="m15.607 15.759v4.441l10.623 5.083 4.649-2.233-12.352-4.787v-2.504z"/><path fill="#9c2c1b" d="m30.879 26.86v-3.81l-4.649 2.233-10.623-5.083v-4.441h-.612v4.809l11.235 8.416z"/><path fill="#f15744" d="m43.27 26.453l4.382 6.938-10.879 6.583-11.553-4.137z"/><g fill="#ffe62e"><path d="m43.27 26.453l4.382 6.938-1.172.709-4.46-7z"/><path d="m28.49 16.56l14.78 9.893-1.25.647-14.76-9.812z"/><path d="m27.542 34.63l10.878 4.349-1.647.994-11.553-4.137z"/><path d="m12.74 24.747l14.802 9.883-2.322 1.207-14.321-10.04z"/></g><path fill="#9c2c1b" d="m26.23 28.984c-.309 2.115 2.885 4.754 6.02 5.217 5.445.806 7.903-2.346 6.33-5.479-1.454-2.897-7.521-2.274-7.521-2.274l-4.83 2.536"/><path fill="#3e4347" d="m4.997 29.92l6.155-3.666c2.152-1.56 5.752.008 8.03 3.496 2.283 3.487 2.389 7.574.236 9.134-.15.109-.306.199-.465.276l-5.689 3.389-8.27-12.629"/><path fill="#62696d" d="m5.709 38.908c2.283 3.486 5.404 5.199 7.559 3.641 2.152-1.554 2.046-5.644-.237-9.133-2.283-3.488-5.88-5.057-8.03-3.496-1.977 1.43-.916 6.5.711 8.988"/><path fill="#3e4347" d="m7.475 37.706c1.215 1.855 2.713 2.718 3.857 1.889 1.145-.828 1.088-3-.125-4.858-1.216-1.857-3.129-2.688-4.274-1.86-1.145.826-.673 2.973.542 4.829"/><path fill="#b2c1c0" d="m43.543 42.45c.893-.453 2.078.783 1.481 1.699l-3.906 2.406-1.213-2.053 3.638-2.052"/><path fill="#3e4347" d="m31.488 43.34l5.434-3.236c1.899-1.377 5.075.007 7.092 3.089 2.01 3.077 2.106 6.686.207 8.06-.133.095-.271.175-.411.242l-5.02 2.993-7.299-11.151"/><path fill="#62696d" d="m32.12 51.27c2.02 3.077 4.771 4.59 6.671 3.214 1.901-1.374 1.808-4.982-.208-8.06-2.02-3.079-5.189-4.46-7.09-3.086-1.746 1.262-.809 5.739.627 7.936"/><path fill="#3e4347" d="m33.673 50.22c1.072 1.638 2.395 2.397 3.405 1.666 1.012-.731.962-2.651-.11-4.289-1.073-1.64-2.76-2.372-3.771-1.642-1.012.73-.594 2.624.476 4.265"/><path fill="#d33b23" d="M22.72 9 26.696 12.628 8.138 22.422 2 16.758z"/><path fill="#42ade2" d="m27.602 28.697c0 3.01 3.556 4.516 6.415 4.516 2.86 0 3.942-1.51 3.942-4.516 0-3.01-2.319-5.443-5.18-5.443-2.859 0-5.177 2.436-5.177 5.443"/><path fill="#3e4347" d="m30.692 28.626c.121-1.08 3.922-1.052 6.801-1.261.907-.064.805 3.349-.033 3.41-4.533.327-6.889-1.067-6.768-2.149"/><path fill="#f15744" d="m60.05 40.895l1.95 4.385-13.1 8.78-5.902-2.65 11.847-7.33z"/><g fill="#ffe62e"><path d="m4.796 15.711l6.404 5.095 1.783-.941-5.744-5.069z"/><path d="m19.15 10.335l4.365 3.973 1.318-.697-4.02-3.897z"/><path d="m57.18 42.65l2.21 4.38 1.1-.74-2.02-4.427z"/><path d="m45.62 49.786l4.89 3.193 1.132-.759-4.688-3.258z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.5 34.1l4.7-2.8c1.6-1.2 4.4 0 6.2 2.7 1.7 2.7 1.8 5.8.2 7-.1.1-.2.2-.4.2l-4.4 2.6-6.3-9.7" fill="#3e4347"/><path d="m49.1 41c1.7 2.7 4.1 4 5.8 2.8 1.6-1.2 1.6-4.3-.2-7-1.7-2.7-4.5-3.9-6.2-2.7-1.5 1.1-.7 5 .6 6.9" fill="#62696d"/><path d="m50.4 40.1c.9 1.4 2.1 2.1 3 1.4.9-.6.8-2.3-.1-3.7-.9-1.4-2.4-2.1-3.3-1.4-.8.6-.5 2.3.4 3.7" fill="#3e4347"/><path d="m51.2 38c.9-.5 2.1.8 1.5 1.7l-3.9 2.4-1.2-2.1 3.6-2" fill="#b2c1c0"/><path fill="#9c2c1b" d="m47.7 33.4v5.4l-4.1-3.8z"/><path d="m28.5 16.6l5.4-3.2c1.9-1.4 5.1 0 7.1 3.1 2 3.1 2.1 6.7.2 8.1-.1.1-.3.2-.4.2l-5 3-7.3-11.2" fill="#3e4347"/><path d="m29.1 24.5c2 3.1 4.8 4.6 6.7 3.2 1.9-1.4 1.8-5-.2-8.1-2-3.1-5.2-4.5-7.1-3.1-1.8 1.3-.8 5.8.6 8" fill="#62696d"/><path fill="#9c2c1b" d="m51.1 48.9l-11.4-6.3-2.9 1.7-11.6-2.6-14.3-10.8v-5.1l14.3 10 11.6 4.2 2.9-2.1 11.4 9.2z"/><path fill="#d33b23" d="m55.3 44.4l-4.2 2.7-11.4-9.2-2.9 2.1-11.6-4.2-14.3-10 3.6-2.1 2.4.6 8.3-4.6-.1-1.1 3.3-2 14.9 9.9 4.4 6.9-3.1 1.5z"/><path fill="#f15744" d="m15.6 15.8v4.4l10.6 5.1 4.7-2.2-12.4-4.8v-2.5z"/><path fill="#9c2c1b" d="m30.9 26.9v-3.8l-4.7 2.2-10.6-5.1v-4.4h-.6v4.8l11.2 8.4z"/><path fill="#f15744" d="m43.3 26.5l4.4 6.9-10.9 6.6-11.6-4.2z"/><g fill="#ffe62e"><path d="m43.3 26.5l4.4 6.9-1.2.7-4.5-7z"/><path d="m28.5 16.6l14.8 9.9-1.3.6-14.7-9.8z"/><path d="m27.5 34.6l10.9 4.4-1.6 1-11.6-4.2z"/><path d="m12.7 24.7l14.8 9.9-2.3 1.2-14.3-10z"/></g><path d="m26.2 29c-.3 2.1 2.9 4.8 6 5.2 5.4.8 7.9-2.3 6.3-5.5-1.5-2.9-7.5-2.3-7.5-2.3l-4.8 2.6" fill="#9c2c1b"/><path d="m5 29.9l6.2-3.7c2.2-1.6 5.8 0 8 3.5 2.3 3.5 2.4 7.6.2 9.1-.1.1-.3.2-.5.3l-5.7 3.4-8.2-12.6" fill="#3e4347"/><path d="m5.7 38.9c2.3 3.5 5.4 5.2 7.6 3.6 2.2-1.6 2-5.6-.2-9.1-2.3-3.5-5.9-5.1-8-3.5-2.1 1.5-1 6.5.6 9" fill="#62696d"/><path d="m7.5 37.7c1.2 1.9 2.7 2.7 3.9 1.9 1.1-.8 1.1-3-.1-4.9-1.3-1.8-3.2-2.7-4.4-1.8-1.1.8-.6 2.9.6 4.8" fill="#3e4347"/><path d="m43.5 42.5c.9-.5 2.1.8 1.5 1.7l-3.9 2.4-1.2-2.1 3.6-2" fill="#b2c1c0"/><path d="m31.5 43.3l5.4-3.2c1.9-1.4 5.1 0 7.1 3.1 2 3.1 2.1 6.7.2 8.1-.1.1-.3.2-.4.2l-5 3-7.3-11.2" fill="#3e4347"/><path d="m32.1 51.3c2 3.1 4.8 4.6 6.7 3.2 1.9-1.4 1.8-5-.2-8.1-2-3.1-5.2-4.5-7.1-3.1-1.8 1.3-.8 5.8.6 8" fill="#62696d"/><path d="m33.7 50.2c1.1 1.6 2.4 2.4 3.4 1.7 1-.7 1-2.7-.1-4.3-1.1-1.6-2.8-2.4-3.8-1.6-1 .7-.6 2.6.5 4.2" fill="#3e4347"/><path fill="#d33b23" d="m22.7 9l4 3.6-18.6 9.8-6.1-5.6z"/><path d="m27.6 28.7c0 3 3.6 4.5 6.4 4.5 2.9 0 3.9-1.5 3.9-4.5 0-3-2.3-5.4-5.2-5.4-2.8 0-5.1 2.4-5.1 5.4" fill="#42ade2"/><path d="m30.7 28.6c.1-1.1 3.9-1.1 6.8-1.3.9-.1.8 3.3 0 3.4-4.6.4-6.9-1-6.8-2.1" fill="#3e4347"/><path fill="#f15744" d="m60 40.9l2 4.4-13.1 8.8-5.9-2.7 11.8-7.3z"/><g fill="#ffe62e"><path d="m4.8 15.7l6.4 5.1 1.8-.9-5.8-5.1z"/><path d="m19.2 10.3l4.3 4 1.3-.7-4-3.9z"/><path d="m57.2 42.7l2.2 4.3 1.1-.7-2-4.4z"/><path d="m45.6 49.8l4.9 3.2 1.1-.8-4.6-3.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3cf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3cf.svg
index 2843006..1723dfe 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3cf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3cf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="52.27" cy="52.44" r="9.564"/><g fill="#e8e8e8"><path transform="matrix(.7071.7071-.7071.7071 52.39-21.605)" d="m42.711 51.754h19.13v1.366h-19.13z"/><path transform="matrix(.7073.7069-.7069.7073 51.57-23.537)" d="m52.84 49.822h2.732v1.366h-2.732z"/><path transform="matrix(.7073.7069-.7069.7073 54.47-24.738)" d="m55.739 52.719h2.732v1.367h-2.732z"/><path transform="matrix(.7071.7071-.7071.7071 48.691-22.337)" d="m49.941 46.923h2.735v1.367h-2.735z"/><path transform="matrix(.7069.7073-.7073.7069 53.21-19.672)" d="m48.975 53.687h2.734v1.365h-2.734z"/><path transform="matrix(.7071.7071-.7071.7071 56.09-20.874)" d="m51.874 56.58h2.732v1.364h-2.732z"/><path d="m55.655 58.715l-.966.967 1.48 1.48c.431-.193.854-.412 1.259-.674l-1.773-1.773"/><path d="m43.548 48.541l1.48 1.48.967-.965-1.773-1.773c-.26.403-.481.826-.674 1.258"/><path transform="matrix(.7071.7071-.7071.7071 50.29-18.472)" d="m46.08 50.788h2.732v1.366h-2.732z"/><path d="m48.893 46.16l.966-.965-1.479-1.48c-.433.191-.854.412-1.259.674l1.772 1.771"/><path d="m61 56.33l-1.479-1.48-.967.967 1.772 1.771c.26-.404.482-.826.674-1.258"/></g><path fill="#dbb471" d="m38.4 15.283l-36.12 36.12c-.95.949.59 4.03 3.439 6.881 2.85 2.85 5.93 4.389 6.88 3.438l36.12-36.12-10.32-10.321"/><path fill="#e8e8e8" d="m47.858 19.582l14.14-14.14c-.211-.805-.612-1.568-1.242-2.197-.629-.631-1.395-1.031-2.196-1.244l-14.14 14.14c-1.426 1.426-3.735 1.424-5.16 0l8.601 8.6c-1.426-1.425-1.426-3.735-.001-5.161"/><path opacity=".5" fill="#fff" d="m12.978 51.779c-.714.713-1.438 2.285-1.364 3.291.108 1.465 1.342 6.295 1.342 6.295l35.762-35.762-4.781-4.783c0 0-23.22 23.22-30.959 30.959"/><g fill="#3e4347"><path opacity=".15" d="m12.222 51.02c-.713.713-2.286 1.438-3.292 1.363-1.464-.107-6.293-1.342-6.293-1.342l35.761-35.762 4.783 4.781c0 .001-23.22 23.22-30.959 30.96"/><path d="m47.858 24.742c-.814-.814-1.147-1.916-1.031-2.977-.83-.441-1.796-.996-2.875-1.717-.721-1.078-1.277-2.045-1.717-2.875-1.062.115-2.164-.217-2.978-1.031 0 0 .796 2.365 2.976 5.625 3.26 2.18 5.625 2.975 5.625 2.975"/><path d="m60.28 7.16l1.719-1.719c-.211-.805-.612-1.568-1.242-2.197-.629-.631-1.395-1.031-2.196-1.244l-1.721 1.721c.804.211 1.567.613 2.197 1.244.63.629 1.03 1.392 1.243 2.195"/></g><g fill="#b2c1c0"><path d="m49.42 18.02l-4.172-2.709-.829.83c-.344.344-.74.602-1.163.779l4.428 2.875c.061-.07.108-.148.176-.215l1.56-1.56"/><path d="m59.966 7.475l-4.17-2.709-1.756 1.757 4.17 2.709z"/><path d="m56.45 10.99l-4.17-2.709-1.76 1.759 4.172 2.706z"/><path d="m52.933 14.506l-4.171-2.707-1.752 1.756 4.16 2.709z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="52.3" cy="52.4" r="9.6" fill="#ed4c5c"/><g fill="#e8e8e8"><path transform="matrix(.7071-.7071.7071.7071-21.7674 52.3219)" d="m51.6 42.9h1.4v19.1h-1.4z"/><path transform="matrix(.7069-.7073.7073.7069-19.8336 53.1442)" d="m53.5 49.1h1.4v2.7h-1.4z"/><path transform="matrix(.7069-.7073.7073.7069-21.0336 56.044)" d="m56.4 52h1.4v2.7h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-18.6344 50.224)" d="m50.6 46.2h1.4v2.7h-1.4z"/><path transform="matrix(.7073-.7069.7069.7073-23.6996 51.4987)" d="m49.7 53h1.4v2.7h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-24.8989 54.4193)" d="m52.6 55.9h1.4v2.7h-1.4z"/><path d="m55.7 58.7l-1 1 1.5 1.5c.4-.2.9-.4 1.3-.7l-1.8-1.8"/><path d="m43.5 48.5l1.5 1.5 1-1-1.8-1.8c-.2.5-.5.9-.7 1.3"/><path transform="matrix(.7071-.7071.7071.7071-22.4991 48.6224)" d="m46.8 50.1h1.4v2.7h-1.4z"/><path d="m48.9 46.2l1-1-1.5-1.5c-.4.2-.9.4-1.3.7l1.8 1.8"/><path d="m61 56.3l-1.5-1.5-1 1 1.8 1.8c.3-.4.5-.8.7-1.3"/></g><path d="m38.4 15.3l-36.1 36.1c-1 .9.6 4 3.4 6.9 2.8 2.8 5.9 4.4 6.9 3.4l36.1-36.1-10.3-10.3" fill="#dbb471"/><path d="m47.9 19.6l14.1-14.2c-.2-.8-.6-1.6-1.2-2.2-.6-.6-1.4-1-2.2-1.2l-14.2 14.1c-1.4 1.4-3.7 1.4-5.2 0l8.6 8.6c-1.4-1.4-1.4-3.7.1-5.1" fill="#e8e8e8"/><path d="m13 51.8c-.7.7-1.4 2.3-1.4 3.3.1 1.5 1.3 6.3 1.3 6.3l35.8-35.8-4.8-4.8c0 0-23.2 23.2-30.9 31" opacity=".5" fill="#fff"/><g fill="#3e4347"><path d="m12.2 51c-.7.7-2.3 1.4-3.3 1.4-1.4-.1-6.3-1.4-6.3-1.4l35.8-35.8 4.8 4.8c0 .1-23.2 23.3-31 31" opacity=".15"/><path d="m47.9 24.7c-.8-.8-1.1-1.9-1-3-.9-.4-1.9-.9-2.9-1.7-.7-1.1-1.3-2-1.7-2.9-1.1.1-2.2-.2-3-1 0 0 .8 2.4 3 5.6 3.2 2.2 5.6 3 5.6 3"/><path d="m60.3 7.2l1.7-1.8c-.2-.8-.6-1.6-1.2-2.2-.6-.6-1.4-1-2.2-1.2l-1.7 1.7c.7.2 1.5.6 2.1 1.3.7.6 1.1 1.4 1.3 2.2"/></g><g fill="#b2c1c0"><path d="m49.4 18l-4.2-2.7-.8.8c-.3.3-.7.6-1.2.8l4.4 2.9c.1-.1.1-.1.2-.2l1.6-1.6"/><path d="m60 7.5l-4.2-2.7-1.8 1.7 4.2 2.7z"/><path d="m56.5 11l-4.2-2.7-1.8 1.7 4.2 2.7z"/><path d="m52.9 14.5l-4.1-2.7-1.8 1.8 4.2 2.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d0.svg
index 59fb3db..bf0a613 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#e8e8e8" cx="32" cy="32" r="30"/><path fill="#b2c1c0" d="m28.404 17.959c-.105-3.066.305-5.941.911-8.438 14.468.322 25.21 7.094 30.533 11.324-.499-1.246-1.079-2.449-1.734-3.605-6.04-4.178-15.804-9.186-28.29-9.582.744-2.473 1.621-4.436 2.23-5.656-.019 0-.035-.002-.054-.002-.692 0-1.376.033-2.057.078-2.407 5.23-6.772 18.01.976 29.967-2.025 3.973-4.766 6.893-7.723 9.04-10.1-18.332-5.623-32.406-4.068-36.18-.865.41-1.707.863-2.524 1.354-1.929 5.854-4.302 19.07 5.04 35.887-2.603 1.623-5.297 2.707-7.761 3.43-6.952-12.684-6.464-25.362-5.465-32.1-.821 1.043-1.575 2.143-2.254 3.291-.598 7.318-.054 18.283 5.851 29.3-2.514.592-4.651.814-6.01.896.352.607.716 1.207 1.106 1.787 5.73-.527 18.994-3.133 25.477-15.83 4.453-.232 8.352.682 11.685 2.172-10.815 17.898-25.23 21.07-29.29 21.611.784.541 1.594 1.045 2.428 1.512 6.03-1.258 18.67-5.814 28.56-22.303 2.706 1.443 4.991 3.234 6.849 5.01-7.511 12.365-18.74 18.279-25.07 20.779 1.306.186 2.639.289 3.993.301 6.636-3.143 15.853-9.09 22.438-19.707 1.769 1.881 3.03 3.621 3.781 4.758.352-.605.688-1.223.996-1.855-3.322-4.695-12.214-14.879-26.445-14.15-2.428-3.738-3.586-7.572-3.963-11.205 20.895.416 30.844 11.301 33.36 14.555.061-.79.102-1.587.102-2.392 0-.156-.01-.313-.012-.469-4.109-4.599-14.373-13.252-33.584-13.572"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#e8e8e8"/><path d="m28.4 18c-.1-3.1.3-5.9.9-8.4 14.5.3 25.2 7.1 30.5 11.3-.5-1.2-1.1-2.4-1.7-3.6-6-4.2-15.8-9.2-28.3-9.6.7-2.5 1.6-4.4 2.2-5.7 0 0 0 0-.1 0-.7 0-1.4 0-2.1.1-2.4 5.2-6.8 18 1 30-2 4-4.8 6.9-7.7 9-10-18.3-5.5-32.4-4-36.2-.9.4-1.7.9-2.5 1.4-1.9 5.9-4.3 19.1 5 35.9-2.6 1.6-5.3 2.7-7.8 3.4-7-12.7-6.5-25.4-5.5-32.1-.8 1-1.6 2.1-2.3 3.3-.4 7.3.1 18.2 6 29.3-2.5.6-4.7.8-6 .9.4.6.7 1.2 1.1 1.8 5.7-.5 19-3.1 25.5-15.8 4.5-.2 8.4.7 11.7 2.2-10.8 17.8-25.3 21-29.3 21.5.8.5 1.6 1 2.4 1.5 6-1.3 18.7-5.8 28.6-22.3 2.7 1.4 5 3.2 6.8 5-7.5 12.4-18.7 18.3-25.1 20.8 1.3.2 2.6.3 4 .3 6.6-3.1 15.9-9.1 22.4-19.7 1.8 1.9 3 3.6 3.8 4.8.4-.6.7-1.2 1-1.9-3.3-4.7-12.2-14.9-26.4-14.2-2.4-3.7-3.6-7.6-4-11.2 20.9.4 30.8 11.3 33.4 14.6.1-.8.1-1.6.1-2.4 0-.2 0-.3 0-.5-4.1-4.6-14.4-13.2-33.6-13.5" fill="#b2c1c0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d1.svg
index e58fac0..22278e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff8736" d="m49.542 37.09c-6.881 0-12.458 5.574-12.458 12.459 0 6.877 5.577 12.455 12.458 12.455s12.458-5.578 12.458-12.455c0-6.885-5.577-12.459-12.458-12.459"/><g fill="#3e4347"><path d="m55.29 5.252l-5 11.26 3.342-12.5 2.178-2.01h-2.755l-34.498 39.766c-1.525 1.824-4.29 2.02-6.168.439s-2.164-4.34-.638-6.166c1.522-1.816 1.236-4.578-.645-6.156-1.88-1.58-4.642-1.383-6.165.434-4.571 5.457-3.709 13.75 1.921 18.486 5.536 4.66 13.642 4.156 18.255-1.049l34.21-42.43-1.505-2.15-2.531 2.08"/><path d="M59.32 2 60.56 3.779 59.832 4.688 62 2z"/></g><path opacity=".5" fill="#c7e755" d="m59.32 5.322l.512-.634-.512.634"/><path fill="#3e4347" d="m59.32 2h-.08l-1.423 1.172 1.503 2.15.512-.634.728-.909z"/><g fill="#c7e755"><path opacity=".5" d="m59.32 2h-.08l-1.423 1.172 1.503 2.15.512-.634.728-.909z"/><path d="m57.768 2h-1.964l-2.178 2.01-3.346 12.502 5.01-11.26 2.527-2.08-.517-.746z"/><path d="m57.3 2.426l.517.746 1.423-1.172h-1.472z"/><path d="m46.02 12.1l-25.06 29.93.526.855 25.06-29.93z"/><path d="m47.07 13.811l-25.05 29.929.519.858 25.06-29.932z"/><path d="m23.07 45.45l.52.86 25.06-29.929-.517-.858z"/><path opacity=".5" d="m54.45 5l2.384 3.406 1.246-1.539-2.206-3.154z"/><path opacity=".5" d="m52.865 9.381l1.485 2.113 1.24-1.543-1.933-2.763z"/><path opacity=".5" d="m51.28 13.756l.577.824 1.243-1.54-1.03-1.474z"/><path d="m11.128 43.688l-5.359.472 5.83 4.9z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m49.5 37.1c-6.9 0-12.5 5.6-12.5 12.5 0 6.9 5.6 12.5 12.5 12.5s12.5-5.7 12.5-12.6c0-6.8-5.6-12.4-12.5-12.4" fill="#ff8736" id="0"/><path d="m53.5 2l-34.9 39.8c-1.5 1.8-4.3 2-6.2.4s-2.2-4.3-.6-6.2c1.5-1.8 1.2-4.6-.6-6.2-1.9-1.6-4.6-1.4-6.2.4-4.6 5.5-3.7 13.8 1.9 18.5 5.5 4.7 13.6 4.2 18.3-1l36.8-45.7h-8.5" fill="#3e4347"/><path d="m38.3 31.4c0 0 .5-6.2 1.2-8.1 2.3-6.5 16.1-21.3 16.1-21.3h-2.9l-21.6 25.3c-.2 11.9-7.5 21.9-7.5 21.9 2.3-1.1 14.7-17.8 14.7-17.8" fill="#c7e755"/><use xlink:href="#0"/><path d="m31.1 27.3c0 0-1.9 2.3-3.4 4.1 2.5 6.6-4 17.8-4 17.8s10.6-14 7.4-21.9" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d2.svg
index aab06d5..84c1cd5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m23.345 36.924c-5.492-.373-12.11-1.699-18.502-3.168-1.888-.404-4.066 9.428-2.01 10.08 12.804 4.045 26.298 2.992 31.29 2.201 1.752-.273 3.145-2.41 3.157-2.434l7.971-13.412-4.638-2.85c-7.124 8.438-13.749 9.831-17.268 9.587"/><path fill="#ed4c5c" d="M56.473,2c0,0-14.149,23.311-15.86,25.338l4.638,2.85L62,2H56.473z"/><g fill="#3e4347"><ellipse cx="48.743" cy="57.02" rx="13.257" ry="4.98"/><ellipse cx="48.743" cy="51.08" rx="13.257" ry="4.979"/><path d="m35.485 51.08h26.515v5.943h-26.515z"/></g><ellipse opacity=".5" fill="#b2c1c0" cx="48.743" cy="51.08" rx="13.257" ry="4.979"/><path fill="#3e4347" d="m56.47 2h5.527"/><path fill="#e8e8e8" d="m9.131 34.609l-1.597 10.86c8.458 1.854 16.721 1.711 22.17 1.195l1.767-12c-3.344 1.799-6.178 2.199-8.09 2.086-4.283-.248-9.249-1.096-14.255-2.139"/><g fill="#b2c1c0"><path d="m9.239 45.807c.496.094.992.184 1.486.264l2.782-10.604c-.493-.094-.985-.182-1.483-.277l-2.785 10.617"/><path d="m24.15 46.98c.537-.014 1.068-.023 1.58-.049l3.618-11.293c-.608.242-1.198.449-1.757.602l-3.441 10.74"/><path d="m16.12 46.732c.51.045 1.015.084 1.516.111l.77-10.6c-.501-.068-1-.135-1.509-.209l-.777 10.698"/><path d="m22.14 36.65l-2.27 10.301c.518.02 1.035.039 1.539.045l2.256-10.242c-.092-.004-.193 0-.281-.006-.405-.023-.828-.06-1.244-.098"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m23.3 36.9c-5.5-.4-12.1-1.7-18.5-3.2-1.9-.4-4.1 9.4-2 10.1 12.8 4 26.3 3 31.3 2.2 1.8-.3 3.1-2.4 3.2-2.4l8-13.4-4.6-2.9c-7.2 8.5-13.8 9.9-17.4 9.6" fill="#3e4347"/><path d="M56.5,2c0,0-14.1,23.3-15.9,25.3l4.6,2.9L62,2H56.5z" fill="#ed4c5c"/><g fill="#3e4347"><ellipse cx="48.7" cy="57" rx="13.3" ry="5"/><ellipse cx="48.7" cy="51.1" rx="13.3" ry="5"/><path d="m35.5 51.1h26.5v5.9h-26.5z"/></g><ellipse cx="48.7" cy="51.1" rx="13.3" ry="5" opacity=".5" fill="#b2c1c0"/><path d="m9.1 34.6l-1.6 10.9c8.5 1.9 16.7 1.7 22.2 1.2l1.8-12c-3.3 1.8-6.2 2.2-8.1 2.1-4.3-.3-9.3-1.1-14.3-2.2" fill="#e8e8e8"/><g fill="#b2c1c0"><path d="m9.2 45.8c.5.1 1 .2 1.5.3l2.8-10.6c-.5-.1-1-.2-1.5-.3l-2.8 10.6"/><path d="m24.2 47c.5 0 1.1 0 1.6 0l3.6-11.3c-.6.2-1.2.4-1.8.6l-3.4 10.7"/><path d="m16.1 46.7c.5 0 1 .1 1.5.1l.8-10.6c-.5-.1-1-.1-1.5-.2l-.8 10.7"/><path d="m22.1 36.7l-2.2 10.3c.5 0 1 0 1.5 0l2.3-10.2c-.1 0-.2 0-.3 0-.4-.1-.8-.1-1.3-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d3.svg
index de638d7..f7ecc84 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m55.32 8.659c-6.211-6.193-20.527-11.897-34.08 1.616-8.963 8.939-12.169 20.233 0 32.372 12.172 12.138 23.496 8.937 32.454 0 13.553-13.514 7.834-27.797 1.625-33.988"/><path fill="#fed0ac" d="m30.811 49.29l-16.232-16.186c0 0 3.413 7.929-2.432 13.76 0 0-4.938 4.924-10.147 9.433.586 1.167.362 1.336 2.545 3.511 1.774 1.77 1.904 1.634 2.876 2.189 4.555-5.254 9.596-10.277 9.596-10.277 5.84-5.83 13.794-2.43 13.794-2.43"/><g fill="#d3976e"><path opacity=".5" d="m7.588 61.807c3.322-3.814 6.856-7.475 8.493-9.141l8.708-9.374-4.19-4.183-9.398 8.689c-1.678 1.638-5.359 5.179-9.201 8.502.586 1.167.362 1.336 2.545 3.511 1.762 1.758 1.904 1.639 2.852 2.18.054-.054.106-.097.161-.149l.03-.035"/><path d="m5.899 61.07c.6.49.883.572 1.498.924.054-.054.106-.097.161-.149l.03-.034c3.322-3.814 6.856-7.475 8.493-9.141l8.708-9.374-2.397 1.444-16.493 16.33"/></g><g fill="#3e4347"><path d="m30.811 49.29l-6.02-6-8.08 8.698c1.628-1.595 6.447-5.306 14.1-2.697"/><path d="m14.579 33.11l6.02 6-8.726 8.06c1.605-1.627 5.326-6.434 2.705-14.07"/></g><g fill="#ff8736"><circle cx="54.14" cy="54.14" r="7.862"/><path d="m59.59 51.1c-.395.776-1.969.763-3.516-.023-1.549-.791-2.484-2.058-2.088-2.829.393-.776 1.967-.763 3.514.024 1.549.789 2.486 2.056 2.09 2.828"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.3 8.7c-6.2-6.2-20.5-11.9-34.1 1.6-9 8.9-12.2 20.2 0 32.4 12.2 12.1 23.5 8.9 32.5 0 13.6-13.6 7.8-27.8 1.6-34" fill="#ed4c5c"/><path d="m30.8 49.3l-16.2-16.2c0 0 3.4 7.9-2.4 13.8 0 0-4.9 4.9-10.1 9.4.6 1.2.4 1.3 2.5 3.5 1.8 1.8 1.9 1.6 2.9 2.2 4.5-5.3 9.5-10.3 9.5-10.3 5.9-5.8 13.8-2.4 13.8-2.4" fill="#fed0ac"/><g fill="#d3976e"><path d="m7.6 61.8c3.3-3.8 6.9-7.5 8.5-9.1l8.7-9.4-4.2-4.2-9.4 8.7c-1.7 1.6-5.4 5.2-9.2 8.5.6 1.2.4 1.3 2.5 3.5 1.8 1.8 1.9 1.6 2.9 2.2.1-.1.1-.1.2-.2" opacity=".5"/><path d="m5.9 61.1c.6.5.9.6 1.5.9.1-.1.1-.1.2-.1 3.3-3.8 6.9-7.5 8.5-9.1l8.7-9.4-2.4 1.4-16.5 16.3"/></g><g fill="#3e4347"><path d="m30.8 49.3l-6-6-8.1 8.7c1.6-1.6 6.5-5.3 14.1-2.7"/><path d="m14.6 33.1l6 6-8.7 8.1c1.6-1.7 5.3-6.5 2.7-14.1"/></g><g fill="#ff8736"><circle cx="54.1" cy="54.1" r="7.9"/><path d="m59.6 51.1c-.4.8-2 .8-3.5 0-1.5-.8-2.5-2.1-2.1-2.8.4-.8 2-.8 3.5 0 1.6.8 2.5 2 2.1 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d4.svg
index 7fac6f2..fad85a3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m0 0h64v64h-64z"/><g fill="#62727a"><path opacity=".33" d="m64 33.648l-13 2.572-9-4.72-29.749 4.89-12.25-2.953v30.06h64z"/><path opacity=".33" d="m0 43.648l10 3.572 12-5.72 36.75 5.89 5.25-3.95v20.06h-64z"/><path d="M55.75 49.705 45 41.21 34 23 27.75 32.1 19 38.12 14.5 47.47 10 49.705 0 64 64 64z"/></g><g fill="#fff"><path d="m34 23l-1.67 7.537 4.504 6.02-5.504-.247 8 5.69-6 3.841-5.663 12.539 1.503-9.03-11.17-2.26 12.501-4.01-2.751-10.98z"/><path d="m51.04 45.983l-5.54 6.127-8 6.27 11.5-4.692 6.75-3.983z"/><path d="m14.5 47.47l-4.5 2.235 8 6.425z"/><path d="m43.9 19.558c-.201-.267-.324-.594-.324-.951 0-.888.732-1.606 1.636-1.606.817 0 1.49.591 1.612 1.361.455-.186.954-.291 1.479-.291 1.519 0 2.821.867 3.457 2.115.345-.416.863-.687 1.452-.687.331 0 .636.091.906.238.558-.989 1.619-1.667 2.852-1.667 1.343 0 2.493.796 2.998 1.932.09-.015.182-.027.275-.027.97 0 1.757.772 1.757 1.726s-.787 1.725-1.757 1.725c-.258 0-.5-.057-.72-.154-.6.742-1.514 1.227-2.554 1.227-.02 0-.039-.006-.061-.006-.186.687-.817 1.195-1.575 1.195-.223 0-.437-.045-.63-.124-.495.853-1.42 1.436-2.493 1.436-1.124 0-2.088-.639-2.563-1.562-.42.153-.87.249-1.345.249-1.282 0-2.41-.618-3.115-1.56-.242.078-.495.132-.763.132-1.34 0-2.425-1.066-2.425-2.381.001-1.137.815-2.084 1.901-2.32"/></g><path fill="#b4d7ee" d="m59.779 22.15c-.245 0-.475-.048-.684-.13-.571.625-1.439 1.032-2.428 1.032-.02 0-.038-.005-.06-.005-.175.578-.774 1.01-1.495 1.01-.214 0-.416-.038-.599-.104-.473.72-1.352 1.211-2.373 1.211-1.068 0-1.984-.538-2.436-1.315-.399.129-.827.21-1.278.21-1.219 0-2.293-.521-2.962-1.313-.23.065-.471.111-.726.111-.457 0-.883-.119-1.24-.32.333.685 1.055 1.162 1.896 1.162.231 0 .45-.045.659-.111.608.793 1.585 1.313 2.692 1.313.409 0 .8-.08 1.162-.209.412.776 1.245 1.314 2.218 1.314.928 0 1.727-.491 2.155-1.211.167.067.352.104.544.104.654 0 1.201-.428 1.361-1.01.02 0 .036.005.053.005.899 0 1.688-.408 2.207-1.033.189.082.399.13.621.13.668 0 1.229-.415 1.434-.989-.22.092-.461.147-.721.147"/><path fill="#fff" d="m28.339 8.581c.282-.374.455-.831.455-1.332 0-1.242-1.026-2.249-2.291-2.249-1.145 0-2.086.827-2.257 1.905-.638-.26-1.336-.406-2.069-.406-2.127 0-3.95 1.213-4.841 2.961-.482-.582-1.208-.962-2.032-.962-.464 0-.891.128-1.27.334-.78-1.385-2.267-2.333-3.992-2.333-1.88 0-3.49 1.114-4.197 2.703-.126-.019-.254-.038-.385-.038-1.358 0-2.46 1.082-2.46 2.416s1.102 2.415 2.46 2.415c.36 0 .699-.08 1.01-.216.84 1.038 2.12 1.717 3.575 1.717.028 0 .056-.008.085-.009.26.961 1.145 1.674 2.206 1.674.312 0 .61-.063.882-.174.693 1.197 1.988 2.01 3.491 2.01 1.573 0 2.923-.895 3.587-2.187.589.215 1.219.349 1.884.349 1.794 0 3.373-.865 4.361-2.184.339.11.692.185 1.067.185 1.875 0 3.395-1.492 3.395-3.333 0-1.592-1.14-2.919-2.661-3.249"/><path fill="#b4d7ee" d="m27.13 12.181c-.358 0-.696-.063-1.018-.152-.94 1.088-2.443 1.803-4.153 1.803-.633 0-1.231-.11-1.793-.288-.634 1.066-1.916 1.806-3.416 1.806-1.432 0-2.663-.675-3.322-1.662-.259.092-.544.144-.842.144-1.01 0-1.853-.589-2.099-1.383-.029.002-.054.008-.082.008-1.387 0-2.603-.562-3.404-1.417-.293.111-.616.177-.959.177-.374-.002-.724-.084-1.039-.217.073 1.04.981 1.866 2.104 1.866.309 0 .6-.064.865-.177.723.856 1.823 1.417 3.074 1.417.024 0 .048-.007.073-.008.224.795.984 1.383 1.897 1.383.267 0 .524-.052.76-.143.595.988 1.709 1.662 3 1.662 1.353 0 2.513-.739 3.084-1.806.506.178 1.049.288 1.621.288 1.542 0 2.9-.715 3.75-1.803.291.09.597.152.919.152 1.398 0 2.564-.931 2.851-2.169-.531.324-1.174.519-1.873.519"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m0 0h64v64h-64z"/><g fill="#62727a"><path opacity=".33" d="m64 33.6l-13 2.6-9-4.7-29.8 4.9-12.2-3v30.1h64z"/><path opacity=".33" d="m0 43.6l10 3.6 12-5.7 36.8 5.9 5.2-4v20.1h-64z"/><path d="m55.8 49.7l-10.8-8.5-11-18.2-6.2 9.1-8.8 6-4.5 9.4-4.5 2.2-10 14.3h64z"/></g><g fill="#fff"><path d="m34 23l-1.7 7.5 4.5 6.1-5.5-.3 8 5.7-6 3.8-5.6 12.6 1.5-9-11.2-2.3 12.5-4-2.7-11z"/><path d="m51 46l-5.5 6.1-8 6.3 11.5-4.7 6.8-4z"/><path d="m14.5 47.5l-4.5 2.2 8 6.4z"/><path d="m43.9 19.6c-.2-.3-.3-.6-.3-1 0-.9.7-1.6 1.6-1.6.8 0 1.5.6 1.6 1.4.5-.2 1-.3 1.5-.3 1.5 0 2.8.9 3.5 2.1.3-.4.9-.7 1.5-.7.3 0 .6.1.9.2.6-1 1.6-1.7 2.9-1.7 1.3 0 2.5.8 3 1.9.1 0 .2 0 .3 0 1 0 1.8.8 1.8 1.7s-.8 1.7-1.8 1.7c-.3 0-.5-.1-.7-.2-.8.9-1.7 1.4-2.7 1.4 0 0 0 0-.1 0-.2.7-.8 1.2-1.6 1.2-.2 0-.4 0-.6-.1-.5.9-1.4 1.4-2.5 1.4-1.1 0-2.1-.6-2.6-1.6-.4.2-.9.2-1.3.2-1.3 0-2.4-.6-3.1-1.6-.2.1-.5.1-.8.1-1.3 0-2.4-1.1-2.4-2.4 0-1 .8-1.9 1.9-2.1"/></g><path d="m59.8 22.1c-.2 0-.5 0-.7-.1-.6.6-1.4 1-2.4 1 0 0 0 0-.1 0-.2.6-.8 1-1.5 1-.2 0-.4 0-.6-.1-.5.7-1.4 1.2-2.4 1.2-1.1 0-2-.5-2.4-1.3-.4.1-.8.2-1.3.2-1.2 0-2.3-.5-3-1.3-.2.1-.5.1-.7.1-.5 0-.9-.1-1.2-.3.3.7 1.1 1.2 1.9 1.2.2 0 .5 0 .7-.1.6.8 1.6 1.3 2.7 1.3.4 0 .8-.1 1.2-.2.4.8 1.2 1.3 2.2 1.3.9 0 1.7-.5 2.2-1.2.2.1.4.1.5.1.7 0 1.2-.4 1.4-1 0 0 0 0 .1 0 .9 0 1.7-.4 2.2-1 .2.1.4.1.6.1.7 0 1.2-.4 1.4-1-.3.1-.6.1-.8.1" fill="#b4d7ee"/><path d="m28.3 8.6c.3-.4.5-.8.5-1.3 0-1.2-1-2.2-2.3-2.2-1.1 0-2.1.8-2.3 1.9-.6-.3-1.3-.4-2.1-.4-2.1 0-4 1.2-4.8 3-.5-.6-1.2-1-2-1-.5 0-.9.1-1.3.3-.8-1.4-2.3-2.3-4-2.3-1.9 0-3.5 1.1-4.2 2.7-.1 0-.3 0-.4 0-1.3-.1-2.4.9-2.4 2.3s1.1 2.4 2.5 2.4c.4 0 .7-.1 1-.2.8 1 2.1 1.7 3.6 1.7 0 0 .1 0 .1 0 .3 1 1.1 1.7 2.2 1.7.3 0 .6-.1.9-.2.7 1.2 2 2 3.5 2 1.6 0 2.9-.9 3.6-2.2.6.2 1.2.3 1.9.3 1.8 0 3.4-.9 4.4-2.2.3.1.7.2 1.1.2 1.9 0 3.4-1.5 3.4-3.3-.2-1.6-1.3-2.9-2.9-3.2" fill="#fff"/><path d="m27.1 12.2c-.4 0-.7-.1-1-.2-.9 1.1-2.4 1.8-4.2 1.8-.6 0-1.2-.1-1.8-.3-.6 1.1-1.9 1.8-3.4 1.8-1.4 0-2.7-.7-3.3-1.7-.3.1-.5.1-.8.1-1 0-1.9-.6-2.1-1.4 0 0-.1 0-.1 0-1.4.2-2.6-.4-3.4-1.3-.3.1-.6.2-1 .2-.4 0-.7-.1-1-.2.1 1 1 1.9 2.1 1.9.3 0 .6-.1.9-.2.7.9 1.8 1.4 3.1 1.4 0 0 0 0 .1 0 .2.8 1 1.4 1.9 1.4.3 0 .5-.1.8-.1.6 1 1.7 1.7 3 1.7 1.4 0 2.5-.7 3.1-1.8.5.2 1 .3 1.6.3 1.5 0 2.9-.7 3.8-1.8.3.1.6.2.9.2 1.4 0 2.6-.9 2.9-2.2-.7.2-1.4.4-2.1.4" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d5.svg
index 3f5b910..166f1a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d5.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><g fill="#b2c1c0"><path d="m0 15l4-4 6.5-4 11.5 9 16 21h-38z"/><path opacity=".5" d="m38 37l-16-21-11.5-9-1.5 7 4 4-1 6 4 4-2 9z"/></g><path fill="#fff" d="m10.5 7l-6.5 4-2 2h3l-1.5 4.09 4.5-2.04 1 4.95 4-2 3.875 2v-3.5l5.125-.5z"/><path opacity=".5" fill="#b2c1c0" d="m38 37l-16-21-11.5-9-.5 5 3 6-1 6 4 4-2 9z"/><g fill="#83bf4f"><path d="m.019 32c.064 0-.065 0 0 0"/><path d="M50.193,34.498l0.006,0.029C46.962,33.117,43.613,32.023,40,32c-3.61-0.025-6.771,1.65-9.607,2.391
- C14,38.667,0,32,0,32v32h64V36.254C59.612,36.817,54.778,36.234,50.193,34.498z"/></g><g fill="#699635"><circle cx="5" cy="45" r="4"/><circle cx="6" cy="40" r="3"/><circle cx="12.167" cy="43" r="6"/></g><path fill="#89664c" d="m55.818 33.818h2.727v8.182h-2.727z"/><path fill="#699635" d="m59.36 22.874c-1.2-2.256-3.162-2.256-4.363 0l-4.173 7.844c-1.201 2.255.013 4.101 2.696 4.101 0 0 2.711-1 3.658-1s3.658 1 3.658 1c2.684 0 3.897-1.846 2.696-4.101l-4.172-7.844"/><path fill="#75a843" d="m58.926 18.444c-.958-1.804-2.525-1.804-3.488 0l-3.34 6.276c-.959 1.804.01 3.28 2.157 3.28 0 0 2.195-1 2.927-1s2.925 1 2.925 1c2.149 0 3.12-1.476 2.159-3.279l-3.34-6.277"/><path fill="#83bf4f" d="m58.49 14.02c-.718-1.354-1.894-1.354-2.613 0l-2.506 4.707c-.721 1.353.008 2.459 1.619 2.459 0 0 1.645-1 2.193-1 .548 0 2.192 1 2.192 1 1.612 0 2.341-1.107 1.62-2.459l-2.505-4.707"/><g fill="#fff"><path d="m34 7c0 1.104-.896 2-2 2h-10c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h10c1.104 0 2 .896 2 2"/><path d="m38 9c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m42 17c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m52 12c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/></g><path fill="#ffdd7d" d="m30.834 36.01h18l7.342 13.38-2.49 6.249-15.41 2.521z"/><path fill="#dbb471" d="m24.398 55.03l-1.258-5.71 7.694-13.31 8.71 16.636-1.264 6.514z"/><path fill="#89664c" d="m30.834 36.01l-3.862 19.806 6.088 1.794z"/><g fill="#ffdd7d"><path d="m30.834 36.01c0 0 1.374 12.142 3.661 16.638l-1.439 4.961-2.222-21.599"/><path d="m26.972 55.816l-1.363-3.903c0 0 4.455-11.611 5.226-15.904l-3.863 19.807"/></g><circle fill="#699635" cx="19" cy="45" r="4"/><path fill="#dbb471" d="m38.544 51.646l17.636-2.256-1.49 7.249-16.41 2.521z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><g fill="#b2c1c0"><path d="m0 15l4-4 6.5-4 11.5 9 16 21h-38z"/><path opacity=".5" d="m38 37l-16-21-11.5-9-1.5 7 4 4-1 6 4 4-2 9z"/></g><path fill="#fff" d="m10.5 7l-6.5 4-2 2h3l-1.5 4.1 4.5-2.1 1 5 4-2 3.9 2v-3.5l5.1-.5z"/><path opacity=".5" fill="#b2c1c0" d="m38 37l-16-21-11.5-9-.5 5 3 6-1 6 4 4-2 9z"/><g fill="#83bf4f"><path d="m0 32c.1 0 0 0 0 0"/><path d="m50.2 34.5c-3.2-1.4-6.6-2.5-10.2-2.5-3.6 0-6.8 1.7-9.6 2.4-16.4 4.3-30.4-2.4-30.4-2.4v32h64v-27.7c-4.4.5-9.2-.1-13.8-1.8"/></g><g fill="#699635"><circle cx="5" cy="45" r="4"/><circle cx="6" cy="40" r="3"/><circle cx="12.2" cy="43" r="6"/></g><path fill="#89664c" d="m55.8 33.8h2.7v8.2h-2.7z"/><path d="m59.4 22.9c-1.2-2.3-3.2-2.3-4.4 0l-4.2 7.8c-1.2 2.3 0 4.1 2.7 4.1 0 0 2.7-1 3.7-1s3.7 1 3.7 1c2.7 0 3.9-1.8 2.7-4.1l-4.2-7.8" fill="#699635"/><path d="m58.9 18.4c-1-1.8-2.5-1.8-3.5 0l-3.3 6.3c-1 1.8 0 3.3 2.2 3.3 0 0 2.2-1 2.9-1s2.9 1 2.9 1c2.1 0 3.1-1.5 2.2-3.3l-3.4-6.3" fill="#75a843"/><path d="m58.5 14c-.7-1.4-1.9-1.4-2.6 0l-2.5 4.7c-.7 1.4 0 2.5 1.6 2.5 0 0 1.6-1 2.2-1s2.2 1 2.2 1c1.6 0 2.3-1.1 1.6-2.5l-2.5-4.7" fill="#83bf4f"/><g fill="#fff"><path d="m34 7c0 1.1-.9 2-2 2h-10c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><path d="m38 9c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m42 17c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m52 12c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/></g><path fill="#ffdd7d" d="m30.8 36h18l7.4 13.4-2.5 6.2-15.4 2.6z"/><path fill="#dbb471" d="m24.4 55l-1.3-5.7 7.7-13.3 8.7 16.6-1.2 6.6z"/><path fill="#89664c" d="m30.8 36l-3.8 19.8 6.1 1.8z"/><g fill="#ffdd7d"><path d="m30.8 36c0 0 1.4 12.1 3.7 16.6l-1.4 5-2.3-21.6"/><path d="M27,55.8l-1.4-3.9c0,0,4.5-11.6,5.2-15.9L27,55.8z"/></g><circle cx="19" cy="45" r="4" fill="#699635"/><path fill="#dbb471" d="m38.5 51.6l17.7-2.2-1.5 7.2-16.4 2.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d6.svg
index 01eb920..7aa2ca8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><circle fill="#ffe62e" cx="52" cy="12" r="7"/><g fill="#fff"><path d="m22 7c0 1.104-.896 2-2 2h-10c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h10c1.104 0 2 .896 2 2"/><path d="m26 9c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m40 12c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m19 19c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/></g><path fill="#6adbc6" d="m0 32h64v32h-64z"/><path fill="#ffdd7d" d="m64 40c0 0-78.43-.867-46.25 23.996h46.25v-23.996"/><path fill="#94989b" d="m39.12 53.18c-.107.548-.639.906-1.184.803-.548-.104-.901-.633-.792-1.181l4.698-23.795c.108-.548.639-.907 1.186-.802.546.104.897.632.791 1.18l-4.699 23.795"/><path fill="#f27a52" d="m41.644 35.2c3.717.711 3.248 3.649 6.158 4.205 2.912.558 3.588-2.342 7.313-1.628.753.144.753.144.753.144.522 1.385 1.341.996 1.817-.866 0 0 0 0 .151-.776 1.699-8.593-10.345-12.935-10.345-12.935-1.74-.945-4.783-1.528-6.758-1.292 0 0-12.819-.411-14.519 8.181-.152.778-.152.778-.152.778-.266 1.902.344 2.564 1.357 1.472 0 0 0 0 .759.144 3.715.711 3.246 3.648 6.157 4.206 2.912.555 3.592-2.342 7.309-1.633"/><path fill="#f9f3d9" d="m46.39 25.08l-.262-.122c-.351-.198-.818-.377-1.328-.531.509 2.882 1.287 7.607 1.801 12.236.322.389.559.563.98.643.572.107.885-.059 1.704-.56 1.136-.696 2.694-1.649 5.261-1.157l.342.064c1.314-6.842-8.403-10.537-8.498-10.573"/><path fill="#c94747" d="m40.965 24.02l-.275.018c-.098-.001-10.126-.054-11.5 6.717l.336.064c2.46.47 3.491 1.912 4.245 2.966.541.76.757 1.028 1.311 1.134.549.105.852-.064 1.644-.568.063-.04.133-.082.196-.125 2.118-3.936 4.438-7.801 5.898-10.173-.694-.089-1.353-.109-1.855-.033"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><circle cx="52" cy="12" r="7" fill="#ffe62e"/><g fill="#fff"><path d="m22 7c0 1.1-.9 2-2 2h-10c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><path d="m26 9c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m40 12c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m19 19c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/></g><path fill="#6adbc6" d="m0 32h64v32h-64z"/><path d="M64,40c0,0-78.4-0.9-46.3,24H64V40z" fill="#ffdd7d"/><path d="m39.1 53.2c-.1.5-.6.9-1.2.8-.5-.1-.9-.6-.8-1.2l4.7-23.8c.1-.5.6-.9 1.2-.8.5.1.9.6.8 1.2l-4.7 23.8" fill="#94989b"/><path d="m41.6 35.2c3.7.7 3.2 3.6 6.2 4.2 2.9.6 3.6-2.3 7.3-1.6.8.1.8.1.8.1.5 1.4 1.3 1 1.8-.9 0 0 0 0 .2-.8 1.7-8.6-10.3-12.9-10.3-12.9-1.7-.9-4.8-1.5-6.8-1.3 0 0-12.8-.4-14.5 8.2-.2.8-.2.8-.2.8-.3 1.9.3 2.6 1.4 1.5 0 0 0 0 .8.1 3.7.7 3.2 3.6 6.2 4.2 2.7.6 3.4-2.3 7.1-1.6" fill="#f27a52"/><path d="m46.4 25.1l-.3-.1c-.4-.2-.8-.4-1.3-.5.5 2.9 1.3 7.6 1.8 12.2.3.4.6.6 1 .6.6.1.9-.1 1.7-.6 1.1-.7 2.7-1.6 5.3-1.2l.3.1c1.3-6.8-8.4-10.5-8.5-10.5" fill="#f9f3d9"/><path d="m41 24h-.3c-.1 0-10.1-.1-11.5 6.7l.3.1c2.5.5 3.5 1.9 4.2 3 .5.8.8 1 1.3 1.1.5.1.9-.1 1.6-.6.1 0 .1-.1.2-.1 2.1-3.9 4.4-7.8 5.9-10.2-.6 0-1.2-.1-1.7 0" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d7.svg
index 1bbc468..a29f1db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d7.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m12.06 37.26v-2.067h-1.875v2.951c0 .544.419.983.938.983 1.551 0 2.813 1.324 2.813 2.951s-1.262 2.951-2.813 2.951-2.813-1.324-2.813-2.951c0-.544-.419-.983-.938-.983s-.938.439-.938.983c.001 2.712 2.103 4.918 4.688 4.918s4.688-2.206 4.688-4.918c0-2.375-1.614-4.363-3.75-4.818"/><path d="m58 8h-46.06l-5.941 12h52v-3h-2.077l2.077-3.945v-5.05m-47.36 9l2.336-4.799 2.525 4.799h-4.861m4.421-6h4.154l-2.076 3.945-2.078-3.945m3.715 6l2.076-3.945 2.079 3.945h-4.155m3.715-6h4.152l-2.076 3.945-2.076-3.945m3.714 6l2.077-3.945 2.076 3.945h-4.153m3.714-6h4.154l-2.077 3.945-2.077-3.945m3.715 6l2.076-3.945 2.077 3.945h-4.153m20.648-2.055l-2.077-3.945h4.153l-2.076 3.945"/><path d="m10.125 19h2v10h-2z"/></g><path fill="#ffe62e" d="m12.792 28h-3.334l-3.333 4h10z"/><g fill="#ffce31"><path d="m6.125 32l3.333 4h3.334l3.338-4z"/><path d="m49.38 29v3l-8.75-3h-2.625v33h2.625v-6l8.75 3-8.75 3h11.375v-33h-2.625m0 27l-8.75-3 8.75-3v6m-8.75-6v-6l8.75 3-8.75 2.999m8.75-6l-8.75-3 8.75-2.999v5.999m-8.75-5.999v-5.999l8.75 2.999-8.75 3"/></g><path fill="#ffe62e" d="M54,27.199C54,28.74,52.842,30,51.433,30H38.567C37.158,30,36,28.74,36,27.199V4.801
- C36,3.26,37.158,2,38.567,2h12.863C52.842,2,54,3.26,54,4.801V27.199z"/><g fill="#ffce31"><path d="m38.875 15.247c0 .964.674 1.753 1.498 1.753h9c.823 0 1.499-.789 1.499-1.753v-8.489c0-.969-.676-1.758-1.499-1.758h-9c-.824 0-1.498.789-1.498 1.758v8.489"/><path d="m50.875 25c0 1.1-.772 2-1.714 2h-8.572c-.941 0-1.714-.9-1.714-2v-4c0-1.1.772-2 1.714-2h8.572c.941 0 1.714.9 1.714 2v4"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m12.1 37.3v-2.1h-1.9v3c0 .5.4 1 .9 1 1.6 0 2.8 1.3 2.8 3s-1.3 3-2.8 3-2.8-1.3-2.8-3c0-.5-.4-1-.9-1s-.9.4-.9 1c0 2.7 2.1 4.9 4.7 4.9s4.7-2.2 4.7-4.9c-.1-2.5-1.7-4.5-3.8-4.9"/><path d="m58 8h-46.1l-5.9 12h52v-3h-2.1l2.1-3.9v-5.1m-47.4 9l2.3-4.8 2.5 4.8h-4.8m4.5-6h4.2l-2.1 3.9-2.1-3.9m3.7 6l2.1-3.9 2.1 3.9h-4.2m3.7-6h4.2l-2.1 3.9-2.1-3.9m3.7 6l2.1-3.9 2.1 3.9h-4.2m3.7-6h4.2l-2.1 3.9-2.1-3.9m3.7 6l2.1-3.9 2.1 3.9h-4.2m20.7-2.1l-2.1-3.9h4.2l-2.1 3.9"/><path d="m10.1 19h2v10h-2z"/></g><path fill="#ffe62e" d="m12.8 28h-3.3l-3.4 4h10z"/><g fill="#ffce31"><path d="m6.1 32l3.4 4h3.3l3.3-4z"/><path d="m49.4 29v3l-8.8-3h-2.6v33h2.6v-6l8.8 3-8.8 3h11.4v-33h-2.6m0 27l-8.8-3 8.8-3v6m-8.8-6v-6l8.8 3-8.8 3m8.8-6l-8.8-3 8.8-3v6m-8.8-6v-6l8.8 3-8.8 3"/></g><path d="m54 27.2c0 1.5-1.2 2.8-2.6 2.8h-12.8c-1.4 0-2.6-1.3-2.6-2.8v-22.4c0-1.5 1.2-2.8 2.6-2.8h12.9c1.3 0 2.5 1.3 2.5 2.8v22.4" fill="#ffe62e"/><g fill="#ffce31"><path d="m38.9 15.2c0 1 .7 1.8 1.5 1.8h9c.8 0 1.5-.8 1.5-1.8v-8.4c0-1-.7-1.8-1.5-1.8h-9c-.8 0-1.5.8-1.5 1.8v8.4"/><path d="m50.9 25c0 1.1-.8 2-1.7 2h-8.6c-.9 0-1.7-.9-1.7-2v-4c0-1.1.8-2 1.7-2h8.6c.9 0 1.7.9 1.7 2v4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d8.svg
index 2966056..ba838e8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m36.39 54.661c0-1.161-.942-2.104-2.103-2.104-.239 0-.465.047-.679.122-.252-.536-.792-.91-1.425-.91-.37 0-.706.132-.976.347.025-.112.041-.228.041-.347 0-.871-.706-1.578-1.576-1.578-.776 0-1.418.563-1.55 1.3-.183-.151-.414-.249-.672-.249-.58 0-1.051.471-1.051 1.053v6.309h8.413c.87 0 1.576-.707 1.576-1.576 0-.426-.169-.808-.441-1.092.275-.354.443-.793.443-1.275"/><g fill="#699635"><path d="m36.39 57.03c0-.426-.169-.808-.441-1.092.273-.354.441-.793.441-1.274 0-1.161-.942-2.104-2.103-2.104-.239 0-.465.047-.679.122-.16-.342-.439-.617-.783-.772-.552.245-.937.797-.937 1.439 0 .153.029.3.069.441-.141-.07-.297-.114-.465-.114-.58 0-1.051.473-1.051 1.053 0 .397.226.742.552.92-.239.31-.388.693-.388 1.117 0 1.01.808 1.819 1.809 1.838v.002h2.399c.872.001 1.578-.707 1.578-1.576"/><path d="m30.2 57.26c0 .582-.471-.229-1.052-.229s-1.052.811-1.052.229c0-.58.471-1.051 1.052-1.051s1.052.471 1.052 1.051"/><path d="m27.87 55.45c0 .291-.235 0-.526 0-.29 0-.525.291-.525 0 0-.289.235-.525.525-.525.291 0 .526.236.526.525"/></g><g fill="#83bf4f"><path d="m28.769 53.872c0 .291-.234-.088-.526-.088-.291 0-.525.379-.525.088s.234-.525.525-.525c.291 0 .526.234.526.525"/><path d="m33.16 56.5c0 .394-.318-.192-.712-.192s-.712.586-.712.192.318-.712.712-.712.712.318.712.712"/><path d="m35.2 54.53c0 .584-.474-.336-1.058-.336-.583 0-1.057.92-1.057.336s.474-1.057 1.057-1.057c.585.001 1.058.473 1.058 1.057"/><path d="m35.23 57.03c0 .29-.234 0-.526 0-.291 0-.525.29-.525 0 0-.291.234-.525.525-.525.292 0 .526.234.526.525"/><path d="m30.529 52.821c0 .394-.319-.192-.713-.192-.393 0-.712.586-.712.192s.319-.713.712-.713c.394 0 .713.32.713.713"/><path d="m2 58.3h60v3.705h-60z"/></g><path fill="#d0d0d0" d="m53.35 12.03h2.436v4.581h-2.436z"/><path fill="#94989b" d="m55.785 12.03h1.624v4.581h-1.624z"/><path fill="#d0d0d0" d="m52.54 10.427h4.061v1.605h-4.061z"/><path fill="#94989b" d="m56.6 10.427h1.625v1.605h-1.625z"/><g fill="#f9f3d9"><path d="m34.785 39.771h26.25v18.524h-26.25z"/><path d="m37.598 18.89h20.625v17.17h-20.625z"/></g><path fill="#ed4c5c" d="m61.973 39.771h-28.12l3.75-3.711h20.622z"/><path fill="#89664c" d="m39.473 46.25h6.563v12.04h-6.563z"/><path fill="#dbb471" d="m38.535 44.4h8.438v1.854h-8.438z"/><ellipse fill="#f9f3d9" cx="44.629" cy="52.27" rx=".632" ry=".626"/><path fill="#ed4c5c" d="m47.91 9.5l-14.09 9.39h28.18z"/><path fill="#d6eef0" d="m50.5 45.34h7.699v7.709h-7.699z"/><path fill="#89664c" d="m49.54 44.38v9.632h9.624v-9.632h-9.624m8.66.961v3.371h-3.368v-3.371h3.368m-4.332 0v3.371h-3.367v-3.371h3.367m-3.367 7.709v-3.373h3.367v3.373h-3.367m4.331 0v-3.373h3.368v3.373h-3.368"/><path fill="#d6eef0" d="m44.06 23.522h7.698v7.708h-7.698z"/><path fill="#89664c" d="m43.1 22.561v9.632h9.624v-9.632h-9.624m8.66.961v3.371h-3.368v-3.371h3.368m-4.331 0v3.371h-3.367v-3.371h3.367m-3.367 7.708v-3.372h3.367v3.372h-3.367m4.33 0v-3.372h3.368v3.372h-3.368"/><path fill="#d0d0d0" d="m21.53 12.03h2.435v4.581h-2.435z"/><path fill="#94989b" d="m23.965 12.03h1.625v4.581h-1.625z"/><path fill="#d0d0d0" d="m20.717 10.427h4.061v1.605h-4.061z"/><path fill="#94989b" d="m24.777 10.427h1.625v1.605h-1.625z"/><g fill="#f9f3d9"><path d="m2.965 39.771h26.25v18.524h-26.25z"/><path d="m5.777 18.89h20.625v17.17h-20.625z"/></g><path fill="#89664c" d="m7.652 46.25h6.563v12.04h-6.563z"/><path fill="#dbb471" d="m6.715 44.4h8.438v1.854h-8.438z"/><ellipse fill="#f9f3d9" cx="12.809" cy="52.27" rx=".632" ry=".626"/><path fill="#ed4c5c" d="m16.09 9.5l-14.09 9.39h28.18z"/><path fill="#d6eef0" d="m12.239 23.522h7.698v7.708h-7.698z"/><path fill="#89664c" d="m11.278 22.561v9.632h9.624v-9.632h-9.624m8.66.961v3.371h-3.368v-3.371h3.368m-4.332 0v3.371h-3.367v-3.371h3.367m-3.367 7.708v-3.372h3.367v3.372h-3.367m4.33 0v-3.372h3.368v3.372h-3.368"/><path fill="#d6eef0" d="m18.678 45.34h7.698v7.709h-7.698z"/><path fill="#89664c" d="m17.716 44.38v9.632h9.624v-9.632h-9.624m8.66.961v3.371h-3.368v-3.371h3.368m-4.331 0v3.371h-3.367v-3.371h3.367m-3.367 7.709v-3.373h3.367v3.373h-3.367m4.33 0v-3.373h3.368v3.373h-3.368"/><path fill="#ed4c5c" d="m30.15 39.771h-28.12l3.75-3.711h20.625z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m36.4 54.7c0-1.2-.9-2.1-2.1-2.1-.2 0-.5 0-.7.1-.3-.5-.8-.9-1.4-.9-.4 0-.7.1-1 .3 0-.1 0-.2 0-.3 0-.9-.7-1.6-1.6-1.6-.8 0-1.4.6-1.5 1.3-.2-.2-.4-.2-.7-.2-.6 0-1.1.5-1.1 1.1v6.3h8.4c.9 0 1.6-.7 1.6-1.6 0-.4-.2-.8-.4-1.1.3-.4.5-.9.5-1.3" fill="#83bf4f"/><g fill="#699635"><path d="m36.4 57c0-.4-.2-.8-.4-1.1.3-.4.4-.8.4-1.3 0-1.2-.9-2.1-2.1-2.1-.2 0-.5 0-.7.1-.2-.3-.4-.6-.8-.8-.6.2-.9.8-.9 1.4 0 .2 0 .3.1.4-.1-.1-.3-.1-.5-.1-.6 0-1.1.5-1.1 1.1 0 .4.2.7.6.9-.2.3-.4.7-.4 1.1 0 1 .8 1.8 1.8 1.8h2.4c.9.2 1.6-.5 1.6-1.4"/><path d="m30.2 57.3c0 .6-.5-.2-1.1-.2s-1.1.8-1.1.2c0-.6.5-1.1 1.1-1.1s1.1.5 1.1 1.1"/><path d="m27.9 55.5c0 .3-.2 0-.5 0-.3 0-.5.3-.5 0 0-.3.2-.5.5-.5.2-.1.5.2.5.5"/></g><g fill="#83bf4f"><path d="m28.8 53.9c0 .3-.2-.1-.5-.1-.3 0-.5.4-.5.1s.2-.5.5-.5.5.2.5.5"/><path d="m33.2 56.5c0 .4-.3-.2-.7-.2s-.7.6-.7.2.3-.7.7-.7.7.3.7.7"/><path d="m35.2 54.5c0 .6-.5-.3-1.1-.3-.6 0-1.1.9-1.1.3s.5-1.1 1.1-1.1c.6.1 1.1.6 1.1 1.1"/><path d="m35.2 57c0 .3-.2 0-.5 0-.3 0-.5.3-.5 0 0-.3.2-.5.5-.5.3 0 .5.2.5.5"/><path d="m30.5 52.8c0 .4-.3-.2-.7-.2-.4 0-.7.6-.7.2s.3-.7.7-.7c.4 0 .7.3.7.7"/><path d="m2 58.3h60v3.7h-60z"/></g><path fill="#d0d0d0" d="m53.3 12h2.4v4.6h-2.4z"/><path fill="#94989b" d="m55.8 12h1.6v4.6h-1.6z"/><path fill="#d0d0d0" d="m52.5 10.4h4.1v1.6h-4.1z"/><path fill="#94989b" d="m56.6 10.4h1.6v1.6h-1.6z"/><g fill="#f9f3d9"><path d="m34.8 39.8h26.2v18.5h-26.2z"/><path d="m37.6 18.9h20.6v17.2h-20.6z"/></g><path fill="#ed4c5c" d="m62 39.8h-28.2l3.8-3.7h20.6z"/><path fill="#89664c" d="m39.5 46.3h6.6v12h-6.6z"/><path fill="#dbb471" d="m38.5 44.4h8.4v1.9h-8.4z"/><ellipse cx="44.6" cy="52.3" rx=".6" ry=".6" fill="#f9f3d9"/><path fill="#ed4c5c" d="m47.9 9.5l-14.1 9.4h28.2z"/><path fill="#d6eef0" d="m50.5 45.3h7.7v7.7h-7.7z"/><path d="m49.5 44.4v9.6h9.6v-9.6h-9.6m8.7.9v3.4h-3.4v-3.4h3.4m-4.3 0v3.4h-3.4v-3.4h3.4m-3.4 7.7v-3.4h3.4v3.4h-3.4m4.3 0v-3.4h3.4v3.4h-3.4" fill="#89664c"/><path fill="#d6eef0" d="m44.1 23.5h7.7v7.7h-7.7z"/><path d="m43.1 22.6v9.6h9.6v-9.6h-9.6m8.7.9v3.4h-3.4v-3.4h3.4m-4.4 0v3.4h-3.4v-3.4h3.4m-3.3 7.7v-3.4h3.4v3.4h-3.4m4.3 0v-3.4h3.4v3.4h-3.4" fill="#89664c"/><path fill="#d0d0d0" d="m21.5 12h2.4v4.6h-2.4z"/><path fill="#94989b" d="m24 12h1.6v4.6h-1.6z"/><path fill="#d0d0d0" d="m20.7 10.4h4.1v1.6h-4.1z"/><path fill="#94989b" d="m24.8 10.4h1.6v1.6h-1.6z"/><g fill="#f9f3d9"><path d="m3 39.8h26.2v18.5h-26.2z"/><path d="m5.8 18.9h20.6v17.2h-20.6z"/></g><path fill="#89664c" d="m7.7 46.3h6.6v12h-6.6z"/><path fill="#dbb471" d="m6.7 44.4h8.4v1.9h-8.4z"/><ellipse cx="12.8" cy="52.3" rx=".6" ry=".6" fill="#f9f3d9"/><path fill="#ed4c5c" d="m16.1 9.5l-14.1 9.4h28.2z"/><path fill="#d6eef0" d="m12.2 23.5h7.7v7.7h-7.7z"/><path d="m11.3 22.6v9.6h9.6v-9.6h-9.6m8.6.9v3.4h-3.4v-3.4h3.4m-4.3 0v3.4h-3.4v-3.4h3.4m-3.4 7.7v-3.4h3.4v3.4h-3.4m4.4 0v-3.4h3.4v3.4h-3.4" fill="#89664c"/><path fill="#d6eef0" d="m18.7 45.3h7.7v7.7h-7.7z"/><path d="m17.7 44.4v9.6h9.6v-9.6h-9.6m8.7.9v3.4h-3.4v-3.4h3.4m-4.4 0v3.4h-3.4v-3.4h3.4m-3.3 7.7v-3.4h3.3v3.4h-3.3m4.3 0v-3.4h3.4v3.4h-3.4" fill="#89664c"/><path fill="#ed4c5c" d="m30.2 39.8h-28.2l3.8-3.7h20.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3d9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3d9.svg
index 24e2093..3deabda 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3d9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3d9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fbbf67" d="m49 30c-3.25 0-9.776 0-13 0-1.775 0-3 .885-3 2.738v31.26h20v-30c0-2.201-1.8-4-4-4"/><g fill="#d3976e"><path d="m36.2 35h-.4c-.439 0-.8.436-.8.967v28.03h2v-28.03c0-.531-.36-.967-.8-.967"/><path d="m41.2 35h-.4c-.439 0-.8.436-.8.967v28.03h2v-28.03c0-.531-.36-.967-.8-.967"/></g><path fill="#6adbc6" d="M13,34H4c-2.2,0-4,1.799-4,4v26h13V34z"/><g fill="#fff"><path d="m9.5 42c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m9.5 50c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m9.5 58c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g><g fill="#d6eef0"><path d="m15 11c-2 0-3.773.986-4.863 2.496-.651-.308-1.369-.496-2.137-.496-2.419 0-4.436 1.717-4.899 4h-.101c-1.657 0-3 1.344-3 3s1.343 3 3 3h12c3.313 0 6-2.688 6-6 0-3.314-2.687-6-6-6"/><path d="m36 10c.382 0 .744.078 1.08.209.381-2.383 2.431-4.209 4.92-4.209 2 0 3.719 1.186 4.517 2.887.683-.547 1.54-.887 2.483-.887 2.209 0 4 1.791 4 4s-1.791 4-4 4h-13c-1.657 0-3-1.344-3-3s1.343-3 3-3"/></g><path fill="#d3976e" d="m31.586 17.857l-7.172-7.266c-.777-.789-2.051-.789-2.828 0l-7.172 7.266c-.777.788-1.414 2.344-1.414 3.459v42.684h20v-42.684c0-1.115-.637-2.671-1.414-3.459"/><g fill="#ffdd7d"><path d="m30 34c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 42c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 50c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 58c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/><path d="m30 26c0 .549-.45 1-1 1h-12c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h12c.55 0 1 .449 1 1v2"/></g><path fill="#6adbc6" d="m60 19v-5c0-1.105-.896-2-2-2h-3v-11c0-.553-.447-1-1-1s-1 .447-1 1v11h-3c-1.104 0-2 .895-2 2v5c-2.2 0-4 1.799-4 4v41h20v-41c0-2.201-1.8-4-4-4"/><g fill="#fff"><path d="m52.5 25c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m60.5 25c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m52.5 32c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m60.5 32c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m52.5 39c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m60.5 39c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m52.5 46c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m60.5 46c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m52.5 53c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m60.5 53c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m52.5 60c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/><path d="m60.5 60c0 .549-.45 1-1 1h-3c-.55 0-1-.451-1-1v-2c0-.551.45-1 1-1h3c.55 0 1 .449 1 1v2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49 30c-3.2 0-9.8 0-13 0-1.8 0-3 .9-3 2.7v31.3h20v-30c0-2.2-1.8-4-4-4" fill="#fbbf67"/><g fill="#d3976e"><path d="m36.2 35h-.4c-.4 0-.8.4-.8 1v28h2v-28c0-.6-.4-1-.8-1"/><path d="m41.2 35h-.4c-.4 0-.8.4-.8 1v28h2v-28c0-.6-.4-1-.8-1"/></g><path d="M13,34H4c-2.2,0-4,1.8-4,4v26h13V34z" fill="#6adbc6"/><g fill="#fff"><path d="m9.5 42c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/><path d="m9.5 50c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/><path d="m9.5 58c0 .5-.4 1-1 1h-3c-.6 0-1-.5-1-1v-2c0-.6.4-1 1-1h3c.6 0 1 .4 1 1v2"/></g><g fill="#d6eef0"><path d="m15 11c-2 0-3.8 1-4.9 2.5-.6-.3-1.3-.5-2.1-.5-2.4 0-4.4 1.7-4.9 4h-.1c-1.7 0-3 1.3-3 3s1.3 3 3 3h12c3.3 0 6-2.7 6-6 0-3.3-2.7-6-6-6"/><path d="m36 10c.4 0 .7.1 1.1.2.4-2.4 2.4-4.2 4.9-4.2 2 0 3.7 1.2 4.5 2.9.7-.6 1.6-.9 2.5-.9 2.2 0 4 1.8 4 4s-1.8 4-4 4h-13c-1.7 0-3-1.3-3-3s1.3-3 3-3"/></g><path d="m31.6 17.9l-7.2-7.3c-.8-.8-2.1-.8-2.8 0l-7.2 7.3c-.8.8-1.4 2.3-1.4 3.5v42.6h20v-42.7c0-1.1-.6-2.7-1.4-3.4" fill="#d3976e"/><g fill="#ffdd7d"><path d="m30 34c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 42c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 50c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 58c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/><path d="m30 26c0 .5-.5 1-1 1h-12c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h12c.5 0 1 .4 1 1v2"/></g><path d="m60 19v-5c0-1.1-.9-2-2-2h-3v-11c0-.6-.4-1-1-1s-1 .4-1 1v11h-3c-1.1 0-2 .9-2 2v5c-2.2 0-4 1.8-4 4v41h20v-41c0-2.2-1.8-4-4-4" fill="#6adbc6"/><g fill="#fff"><path d="m52.5 25c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m60.5 25c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m52.5 32c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m60.5 32c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m52.5 39c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m60.5 39c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m52.5 46c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m60.5 46c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m52.5 53c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m60.5 53c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m52.5 60c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/><path d="m60.5 60c0 .5-.5 1-1 1h-3c-.5 0-1-.5-1-1v-2c0-.6.5-1 1-1h3c.5 0 1 .4 1 1v2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3da.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3da.svg
index 08e1f25..bf6c306 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3da.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3da.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m0 60h64v4h-64z"/><path d="m44 15v45h17l-4-23 4-22z"/></g><path fill="#d0d0d0" d="m50 16l-24-12-20 20 3 8-4 28h44l-4-13z"/><path fill="#c94747" d="m63.05 14.434l-25.05-14.434h-12l24 17.998 12 .002c.695 0 1.375-.315 1.746-.956.525-.911.211-2.086-.701-2.61"/><path fill="#ed4c5c" d="m51.05 14.435l-25.05-14.435-25.04 26.435c-.912.525-1.227 1.7-.7 2.611.526.91 1.703 1.225 2.614.699l23.13-25.745 23.13 13.745c.912.526 2.088.211 2.615-.699.526-.911.212-2.086-.7-2.611"/><g fill="#3e4347"><path d="m49 44l3.43 16h4.57z"/><path d="M55 39 51 52.08 53.08 55z"/><path d="M13.715 40 24 40 22 51 24 60 13.715 60 12 47z"/><path d="m55.664 32h-4.664l1.34-8h4.66z"/><path d="m24 32h-8l-2-8h8z"/><path d="m30 32h8l2-8h-8z"/></g><path fill="#dbb471" d="m42 36l-4-4 2-8 4 4z"/><g fill="#3e4347"><path d="m40.15 3v2.099h-2.15l6.46 3.941h3.233l4.307 1.96-3.23-4h-3.77z"/><path d="m41 54h-9.82l-2.18-7 2.18-7h9.82l-1.182 5.833z"/></g><g fill="#dbb471"><path d="M11.175 56 10 53.34 24.826 50 26 52.656z"/><path d="M25.489 49 10 46.09 10.512 43 26 45.908z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m0 60h64v4h-64z"/><path d="m44 15v45h17l-4-23 4-22z"/></g><path fill="#d0d0d0" d="m50 16l-24-12-20 20 3 8-4 28h44l-4-13z"/><path d="m63 14.4l-25-14.4h-12l24 18h12c.7 0 1.4-.3 1.7-1 .6-.9.3-2-.7-2.6" fill="#c94747"/><path d="m51 14.4l-25-14.4-25 26.4c-1 .6-1.3 1.7-.7 2.6.5 1 1.7 1.3 2.6.7l23.1-25.7 23.1 13.7c.9.5 2.1.2 2.6-.7.6-.9.3-2-.7-2.6" fill="#ed4c5c"/><g fill="#3e4347"><path d="m49 44l3.4 16h4.6z"/><path d="m55 39l-4 13.1 2.1 2.9z"/><path d="m13.7 40h10.3l-2 11 2 9h-10.3l-1.7-13z"/><path d="m55.7 32h-4.7l1.3-8h4.7z"/><path d="m24 32h-8l-2-8h8z"/><path d="m30 32h8l2-8h-8z"/></g><path fill="#dbb471" d="m42 36l-4-4 2-8 4 4z"/><g fill="#3e4347"><path d="m40.2 3v2.1h-2.2l6.5 3.9h3.2l4.3 2-3.2-4h-3.8z"/><path d="m41 54h-9.8l-2.2-7 2.2-7h9.8l-1.2 5.8z"/></g><g fill="#dbb471"><path d="M11.2 56 10 53.3 24.8 50 26 52.7z"/><path d="M25.5 49 10 46.1 10.5 43 26 45.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3db.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3db.svg
index d99e594..501ea5c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3db.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3db.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#acb8bf"><path d="m2 60.13h60v1.875h-60z"/><path d="m5.5 56.38h53v1.875h-53z"/></g><g fill="#dae3ea"><path d="m3.75 58.25h56.5v1.875h-56.5z"/><path d="m7.25 54.5h49.5v1.875h-49.5z"/></g><path fill="#94989b" d="m4.813 27.769h54.38v1.877h-54.38z"/><path fill="#dae3ea" d="m2 29.646h60v1.877h-60z"/><path fill="#94989b" d="M31.989 4.84 2 21.235 4.512 24.989 31.989 6.691 59.49 24.989 62 21.235z"/><g fill="#dae3ea"><path d="M31.989 2 2 21.235 2 24.05 31.989 4.814 62 24.05 62 21.235z"/><path d="m31.989 6.691l-29.989 19.237v1.876h60v-1.876z"/></g><path fill="#acb8bf" d="m31.989 9.482l-24.907 16.446h49.837z"/><g fill="#94989b"><path d="m32.754 22.644l-.402.231c-.041-.088-.125-.151-.225-.151h-.252c-.1 0-.185.063-.225.151l-.402-.231-.966-.553v1.105 1.105l.966-.553.402-.231c.04.09.125.152.225.152h.252c.098 0 .184-.063.225-.152l.402.231.964.553v-1.105-1.105l-.964.553"/><path d="m30.5 19.518c.162.253.387.437.648.564.262.125.557.188.853.188.296-.002.593-.063.853-.189.262-.126.488-.311.649-.563.035.295-.117.619-.402.847-.281.231-.69.366-1.098.365-.409.001-.817-.135-1.099-.366-.286-.227-.439-.551-.404-.846"/><path d="m36.27 16.564v-.081c0-.063-.006-.074-.041-.092-.059-.03-.12-.059-.182-.08-.047-.017-.098-.032-.152-.046-.648-1.51-2.148-2.567-3.897-2.567-1.747 0-3.248 1.058-3.896 2.567-.055.014-.105.029-.152.046-.063.021-.125.05-.182.08-.035.018-.043.029-.043.092v.081c0 .151-.018.093.09.155.037.021.069.047.098.079-.1.362-.153.744-.153 1.14 0 2.34 1.897 4.237 4.238 4.237 2.341 0 4.239-1.897 4.239-4.237 0-.396-.054-.777-.154-1.142.03-.03.063-.057.099-.077.108-.062.088-.003.088-.155m-4.272-2.364c1.426 0 2.667.798 3.295 1.972-.502-.046-1.061-.036-1.387-.008-.524.045-.963.163-1.321.347-.336.168-.839.168-1.174 0-.359-.184-.798-.302-1.322-.347-.325-.028-.883-.039-1.386.008.63-1.174 1.87-1.972 3.295-1.972m0 7.477c-2.063 0-3.739-1.674-3.739-3.738 0-.029.001-.056.001-.085.133.5.428.823.871.99.475.178 1.01.172 1.477-.017.26-.103.486-.266.666-.53.315-.464.22-.754.383-1.152.143-.346.541-.346.684 0 .162.399.068.688.383 1.152.18.265.408.428.666.53.472.188 1 .194 1.478.017.443-.167.738-.49.87-.99 0 .027.001.056.001.085-.001 2.063-1.676 3.738-3.741 3.738"/></g><path fill="#dae3ea" d="m8.5 33.2h6v19.554h-6z"/><g fill="#94989b"><path d="m7.75 52.75h7.5v1.75h-7.5z"/><path d="m7.75 31.499h7.5v1.697h-7.5z"/></g><g fill="#c8d0d6"><path d="m9.1 33.979h.708v18.04h-.708z"/><path d="m13.193 33.979h.708v18.04h-.708z"/><path d="m11.829 33.979h.707v18.04h-.707z"/><path d="m10.464 33.979h.707v18.04h-.707z"/></g><path fill="#dae3ea" d="m22.17 33.2h6v19.615h-6z"/><g fill="#94989b"><path d="m21.417 52.812h7.5v1.688h-7.5z"/><path d="m21.417 31.499h7.5v1.697h-7.5z"/></g><g fill="#c8d0d6"><path d="m22.766 33.979h.707v18.04h-.707z"/><path d="m26.86 33.979h.707v18.04h-.707z"/><path d="m25.495 33.979h.708v18.04h-.708z"/><path d="m24.13 33.979h.708v18.04h-.708z"/></g><path fill="#dae3ea" d="m35.834 33.2h6v19.615h-6z"/><g fill="#94989b"><path d="m35.08 52.812h7.5v1.688h-7.5z"/><path d="m35.08 31.499h7.5v1.697h-7.5z"/></g><g fill="#c8d0d6"><path d="m36.434 33.979h.707v18.04h-.707z"/><path d="m40.527 33.979h.707v18.04h-.707z"/><path d="m39.16 33.979h.708v18.04h-.708z"/><path d="m37.798 33.979h.708v18.04h-.708z"/></g><path fill="#dae3ea" d="m49.5 33.2h6v19.554h-6z"/><g fill="#94989b"><path d="m48.751 52.75h7.5v1.75h-7.5z"/><path d="m48.751 31.499h7.5v1.697h-7.5z"/></g><g fill="#c8d0d6"><path d="m50.1 33.979h.708v18.04h-.708z"/><path d="m54.19 33.979h.708v18.04h-.708z"/><path d="m52.829 33.979h.707v18.04h-.707z"/><path d="m51.47 33.979h.707v18.04h-.707z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#acb8bf"><path d="m2 60.1h60v1.9h-60z"/><path d="m5.5 56.4h53v1.9h-53z"/></g><g fill="#dae3ea"><path d="m3.8 58.2h56.5v1.9h-56.5z"/><path d="m7.2 54.5h49.5v1.9h-49.5z"/></g><path fill="#94989b" d="m4.8 27.8h54.4v1.9h-54.4z"/><path fill="#dae3ea" d="m2 29.6h60v1.9h-60z"/><path fill="#94989b" d="M32 4.8 2 21.2 4.5 25 32 6.7 59.5 25 62 21.2z"/><g fill="#dae3ea"><path d="m32 2l-30 19.2v2.9l30-19.3 30 19.3v-2.9z"/><path d="m32 6.7l-30 19.2v1.9h60v-1.9z"/></g><path fill="#acb8bf" d="m32 9.5l-24.9 16.4h49.8z"/><g fill="#94989b"><path d="m32.8 22.6l-.4.2c0-.1-.1-.2-.2-.2h-.3c-.1 0-.2.1-.2.2l-.4-.2-1-.6v1.1 1.1l1-.6.4-.2c0 .1.1.2.2.2h.3c.1 0 .2-.1.2-.2l.4.2 1 .6v-1.1-1.1l-1 .6"/><path d="m30.5 19.5c.2.3.4.4.6.6.3.1.6.2.9.2.3 0 .6-.1.9-.2.3-.1.5-.3.6-.6 0 .3-.1.6-.4.8-.3.2-.7.4-1.1.4-.4 0-.8-.1-1.1-.4-.3-.2-.4-.5-.4-.8"/><path d="m36.3 16.6c0-.1 0-.2 0-.2-.1 0-.1-.1-.2-.1 0 0-.1 0-.2 0-.6-1.5-2.1-2.6-3.9-2.6-1.7 0-3.2 1.1-3.9 2.6-.1 0-.1 0-.2 0-.1 0-.1 0-.2.1 0 0 0 0 0 .1v.1c0 .2 0 .1.1.2 0 0 .1 0 .1.1-.1.4-.2.7-.2 1.1 0 2.3 1.9 4.2 4.2 4.2s4.2-1.9 4.2-4.2c0-.4-.1-.8-.2-1.1 0 0 .1-.1.1-.1.3-.1.3-.1.3-.2m-4.3-2.4c1.4 0 2.7.8 3.3 2-.5 0-1.1 0-1.4 0-.5 0-1 .2-1.3.3-.3.2-.8.2-1.2 0-.4-.2-.8-.3-1.3-.3-.3 0-.9 0-1.4 0 .6-1.2 1.9-2 3.3-2m0 7.5c-2.1 0-3.7-1.7-3.7-3.7 0 0 0-.1 0-.1.1.5.4.8.9 1 .5.2 1 .2 1.5 0 .3-.1.5-.3.7-.5.3-.5.2-.8.4-1.2.1-.3.5-.3.7 0 .2.4.1.7.4 1.2.2.3.4.4.7.5.5.2 1 .2 1.5 0 .4-.2.7-.5.9-1 0 0 0 .1 0 .1-.3 2-1.9 3.7-4 3.7"/></g><path fill="#dae3ea" d="m8.5 33.2h6v19.6h-6z"/><g fill="#94989b"><path d="m7.8 52.8h7.5v1.8h-7.5z"/><path d="m7.8 31.5h7.5v1.7h-7.5z"/></g><g fill="#c8d0d6"><path d="m9.1 34h.7v18h-.7z"/><path d="m13.2 34h.7v18h-.7z"/><path d="m11.8 34h.7v18h-.7z"/><path d="m10.5 34h.7v18h-.7z"/></g><path fill="#dae3ea" d="m22.2 33.2h6v19.6h-6z"/><g fill="#94989b"><path d="m21.4 52.8h7.5v1.7h-7.5z"/><path d="m21.4 31.5h7.5v1.7h-7.5z"/></g><g fill="#c8d0d6"><path d="m22.8 34h.7v18h-.7z"/><path d="m26.9 34h.7v18h-.7z"/><path d="m25.5 34h.7v18h-.7z"/><path d="m24.1 34h.7v18h-.7z"/></g><path fill="#dae3ea" d="m35.8 33.2h6v19.6h-6z"/><g fill="#94989b"><path d="m35.1 52.8h7.5v1.7h-7.5z"/><path d="m35.1 31.5h7.5v1.7h-7.5z"/></g><g fill="#c8d0d6"><path d="m36.4 34h.7v18h-.7z"/><path d="m40.5 34h.7v18h-.7z"/><path d="m39.2 34h.7v18h-.7z"/><path d="m37.8 34h.7v18h-.7z"/></g><path fill="#dae3ea" d="m49.5 33.2h6v19.6h-6z"/><g fill="#94989b"><path d="m48.8 52.8h7.5v1.8h-7.5z"/><path d="m48.8 31.5h7.5v1.7h-7.5z"/></g><g fill="#c8d0d6"><path d="m50.1 34h.7v18h-.7z"/><path d="m54.2 34h.7v18h-.7z"/><path d="m52.8 34h.7v18h-.7z"/><path d="m51.5 34h.7v18h-.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3dc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3dc.svg
index 1702a21..f95f15e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3dc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3dc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m0 0h64v64h-64z"/><path fill="#f9f3d9" d="m64 27c0 0-11.877-2.999-16-2.999s-10.833 2.999-16 2.999c-4.271 0-11.727-3.999-15.999-3.999-4.751 0-16 .999-16 .999v24.997h64v-21.997"/><path fill="#ffdd7d" d="M0,34.657C0,34.657,16.001,29,32,29c8.016,0,32,7.543,32,7.543V64H0V34.657z"/><path fill="#dbb471" d="m0 47.822c0 0 6.877-2.822 11-2.822s16.888 6.859 21 6.588c4.261-.279 19.729-3.65 23.999-3.764 4.189-.109 8 .943 8 .943v15.233h-64v-16.178"/><g fill="#699635"><path d="m21.23 35.518c0 1.061.858 1.923 1.914 1.923 1.065 0 1.923-.862 1.923-1.923v-7.676c0-1.06-.857-1.918-1.923-1.918-1.056 0-1.914.858-1.914 1.918v7.676"/><path d="m15.466 33.6c-1.063 0-1.922.857-1.922 1.918 0 1.061.858 1.923 1.922 1.923h7.673c1.063 0 1.923-.862 1.923-1.923 0-1.061-.86-1.918-1.923-1.918h-7.673"/></g><path fill="#83bf4f" d="m15.848 17c-1.589 0-2.877 1.287-2.877 2.88v32.24c0 2.88 1.288 2.88 2.877 2.88s2.876 0 2.876-2.88v-32.24c0-1.593-1.287-2.88-2.876-2.88"/><g fill="#699635"><path d="m10.09 42.05c0 .795-.644 1.439-1.436 1.439-.798 0-1.441-.645-1.441-1.439v-5.756c0-.795.644-1.441 1.441-1.441.792 0 1.436.646 1.436 1.441v5.756"/><path d="m14.405 40.607c.799 0 1.442.643 1.442 1.438 0 .795-.644 1.439-1.442 1.439h-5.753c-.797 0-1.441-.645-1.441-1.439 0-.795.645-1.438 1.441-1.438h5.753"/></g><path fill="#f9f3d9" d="m3 52.5c0 1.104 1.343 1 3 1s3 .104 3-1-1.343-1.998-3-1.998-3 .895-3 1.998"/><path fill="#ffdd7d" d="m16.303 60.08c0 1.104 1.343 1 3 1s3 .104 3-1-1.343-1.998-3-1.998-3 .894-3 1.998"/><g fill="#89664c"><path d="m26 56.5c0 1.104 1.343 1 3 1s3 .104 3-1-1.343-1.998-3-1.998-3 .895-3 1.998"/><path d="m57.27 52.28c-2.708.754-5.443.303-8.153.455-.22-.601-.438-1.199-.656-1.801-.268-.733-1.401-.415-1.131.33.192.527.385 1.055.576 1.582-.431.058-.86.139-1.289.251-1.434.374-2.854.813-4.268 1.277 1.341-1.294 2.744-2.529 4.287-3.494.867-.545 1.988-.808 3.189-.926.047 0 .091-.007.137-.018.617-.055 1.253-.065 1.889-.061.484.692.969 1.383 1.451 2.073.443.635 1.463.02 1.014-.622-.328-.47-.659-.941-.988-1.412.986.045 1.93.108 2.729.13.758.02.755-1.213 0-1.232-1.49-.04-3.284-.192-5.04-.144.33-.48.66-.959.989-1.438.444-.646-.573-1.261-1.013-.623-.496.725-.995 1.446-1.492 2.171-1.113.126-2.172.368-3.07.835-1.769.922-3.363 2.333-4.852 3.797 1.013-1.975 2.217-3.929 3.933-4.982 3.281-2.01 6.658-3.106 10.394-2.416.738.136 1.055-1.052.311-1.189-3.738-.69-6.508.259-9.835 1.812.235-.438.47-.878.704-1.317.371-.695-.641-1.317-1.012-.622-.536 1-1.07 2-1.605 3-1.663 1.223-2.827 3.07-3.832 4.99.256-2.066.71-4.185 1.879-5.627 1.58-1.95 3.395-3.188 5.414-3.93.74.495 1.477.988 2.217 1.483.639.429 1.227-.639.59-1.066-.434-.289-.867-.579-1.301-.87 1.141-.27 2.336-.422 3.596-.448.756-.015.757-1.248 0-1.233-1.641.033-3.36 0-4.938.521-2.256.745-4.236 2.495-5.936 4.16-2.432 2.385-2.65 6.436-2.973 9.769-.258.088-.518.176-.776.266-.715.244-.41 1.436.312 1.188.412-.14.824-.273 1.237-.413 2.735 2.15 4.601 2.71 8.095 2.449 3.613-.27 5.736-.855 8.423-3.417.562-.533-.27-1.404-.829-.871-1.048.998-2.01 1.642-3.02 2.087-.381-.62-.761-1.239-1.141-1.858-.409-.666-1.424-.049-1.013.622.337.55.675 1.102 1.014 1.651-1.01.29-2.113.444-3.435.553-.612.05-1.249.117-1.885.138.355-.661.71-1.32 1.064-1.982.375-.693-.64-1.314-1.012-.623-.457.852-.916 1.703-1.373 2.555-.572-.07-1.128-.213-1.646-.491-.657-.351-1.281-.798-1.886-1.265 1.863-.621 3.729-1.224 5.616-1.747 3.487-.966 7.108.17 10.654-.819.731-.204.421-1.395-.311-1.189"/></g><path fill="#ffce31" d="m46 10.998c0 3.315 2.688 6 6 6s5.998-2.687 5.998-6c0-3.312-2.684-5.998-5.998-5.998s-6 2.686-6 5.998"/><g fill="#fff"><path d="m47.814 2.904c-2.531 1.357-4.165 3.581-4.549 6.619-.055.432.566.621.622.182.36-2.875 1.854-4.918 4.249-6.205.375-.197.046-.792-.322-.596"/><path d="m59.89 13.246c-.864 3.183-2.621 5.546-5.643 6.518-.397.127-.226.793.169.664 3.239-1.039 5.166-3.582 6.094-6.996.115-.43-.505-.611-.62-.186"/><path d="m44.16 12.998c.504 2.893 1.727 4.882 4.059 6.442.355.237.674-.36.326-.596-2.197-1.468-3.291-3.318-3.764-6.03-.078-.438-.697-.253-.621.183"/><path d="m58.6 6.146c-1.038-1.693-3.02-3.822-5.084-3.635-.411.038-.412.727 0 .689 1.818-.165 3.608 1.793 4.531 3.296.224.371.781.024.553-.35"/></g><g fill="#d6eef0"><path d="m50.827 21.312c-2.427-.037-4.457-.771-6.289-2.5-.312-.292-.769.195-.458.488 1.963 1.847 4.149 2.663 6.747 2.7.416.006.415-.684 0-.688"/><path d="m60.41 16.717c-.646 1.52-1.712 3.523-3.232 4.174-.38.16-.213.83.174.665 1.697-.726 2.885-2.781 3.613-4.491.168-.402-.385-.753-.555-.348"/><path d="m43.19 3.998c-2.339 2.255-1.914 7-.7 9.774.176.401.729.052.553-.349-1.09-2.495-1.5-6.912.604-8.938.307-.296-.148-.782-.457-.487"/><path d="m58.18 2.58c1.849 1.789 2.644 3.858 2.677 6.515.006.444.648.444.645 0-.037-2.83-.896-5.097-2.865-7-.31-.297-.765.188-.457.487"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m0 0h64v64h-64z"/><path d="m64 27c0 0-11.9-3-16-3s-10.8 3-16 3c-4.3 0-11.7-4-16-4-4.8 0-16 1-16 1v25h64v-22" fill="#f9f3d9"/><path d="M0,34.7c0,0,16-5.7,32-5.7c8,0,32,7.5,32,7.5V64H0V34.7z" fill="#ffdd7d"/><path d="m0 47.8c0 0 6.9-2.8 11-2.8s16.9 6.9 21 6.6c4.3-.3 19.7-3.7 24-3.8 4.2-.1 8 .9 8 .9v15.3h-64v-16.2" fill="#dbb471"/><g fill="#699635"><path d="m21.2 35.5c0 1.1.9 1.9 1.9 1.9 1.1 0 1.9-.9 1.9-1.9v-7.7c0-1.1-.9-1.9-1.9-1.9-1.1 0-1.9.9-1.9 1.9v7.7"/><path d="m15.5 33.6c-1.1 0-1.9.9-1.9 1.9 0 1.1.9 1.9 1.9 1.9h7.7c1.1 0 1.9-.9 1.9-1.9 0-1.1-.9-1.9-1.9-1.9h-7.7"/></g><path d="m15.8 17c-1.6 0-2.9 1.3-2.9 2.9v32.2c0 2.9 1.3 2.9 2.9 2.9s2.9 0 2.9-2.9v-32.2c0-1.6-1.3-2.9-2.9-2.9" fill="#83bf4f"/><g fill="#699635"><path d="m10.1 42c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4v-5.8c0-.8.6-1.4 1.4-1.4.8 0 1.4.6 1.4 1.4v5.8"/><path d="m14.4 40.6c.8 0 1.4.6 1.4 1.4 0 .8-.6 1.4-1.4 1.4h-5.7c-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4h5.7"/></g><path d="m3 52.5c0 1.1 1.3 1 3 1s3 .1 3-1-1.3-2-3-2-3 .9-3 2" fill="#f9f3d9"/><path d="m16.3 60.1c0 1.1 1.3 1 3 1s3 .1 3-1-1.3-2-3-2-3 .9-3 2" fill="#ffdd7d"/><g fill="#89664c"><path d="m26 56.5c0 1.1 1.3 1 3 1s3 .1 3-1-1.3-2-3-2-3 .9-3 2"/><path d="m57.3 52.3c-2.7.8-5.4.3-8.2.5-.2-.6-.4-1.2-.7-1.8-.3-.7-1.4-.4-1.1.3.2.5.4 1.1.6 1.6-.4.1-.9.1-1.3.3-1.4.4-2.9.8-4.3 1.3 1.3-1.3 2.7-2.5 4.3-3.5.9-.5 2-.8 3.2-.9 0 0 .1 0 .1 0 .6-.1 1.3-.1 1.9-.1.5.7 1 1.4 1.5 2.1.4.6 1.5 0 1-.6-.3-.5-.7-.9-1-1.4 1 0 1.9.1 2.7.1.8 0 .8-1.2 0-1.2-1.5 0-3.3-.2-5-.1.3-.5.7-1 1-1.4.4-.6-.6-1.3-1-.6-.5.7-1 1.4-1.5 2.2-1.1.1-2.2.4-3.1.8-1.8.9-3.4 2.3-4.9 3.8 1-2 2.2-3.9 3.9-5 3.3-2 6.7-3.1 10.4-2.4.7.1 1.1-1.1.3-1.2-3.7-.7-6.5.3-9.8 1.8.2-.4.5-.9.7-1.3.4-.7-.6-1.3-1-.6-.5 1-1.1 2-1.6 3-1.7 1.2-2.8 3.1-3.8 5 .3-2.1.7-4.2 1.9-5.6 1.6-2 3.4-3.2 5.4-3.9.7.5 1.5 1 2.2 1.5.6.4 1.2-.6.6-1.1-.4-.3-.9-.6-1.3-.9 1.1-.3 2.3-.4 3.6-.4.8 0 .8-1.2 0-1.2-1.6 0-3.4 0-4.9.5-2.3.7-4.2 2.5-5.9 4.2-2.4 2.4-2.7 6.4-3 9.8-.3.1-.5.2-.8.3-.7.2-.4 1.4.3 1.2.4-.1.8-.3 1.2-.4 2.7 2.2 4.6 2.7 8.1 2.4 3.6-.3 5.7-.9 8.4-3.4.6-.5-.3-1.4-.8-.9-1 1-2 1.6-3 2.1-.4-.6-.8-1.2-1.1-1.9-.4-.7-1.4 0-1 .6.3.5.7 1.1 1 1.7-1 .3-2.1.4-3.4.6-.6 0-1.2.1-1.9.1.4-.7.7-1.3 1.1-2 .4-.7-.6-1.3-1-.6-.5.9-.9 1.7-1.4 2.6-.6-.1-1.1-.2-1.6-.5-.7-.4-1.3-.8-1.9-1.3 1.9-.6 3.7-1.2 5.6-1.7 3.5-1 7.1.2 10.7-.8.6-.7.3-1.9-.4-1.7"/></g><path d="m46 11c0 3.3 2.7 6 6 6s6-2.7 6-6c0-3.3-2.7-6-6-6s-6 2.7-6 6" fill="#ffce31"/><g fill="#fff"><path d="m47.8 2.9c-2.5 1.4-4.2 3.6-4.5 6.6-.1.4.6.6.6.2.4-2.9 1.9-4.9 4.2-6.2.4-.2.1-.8-.3-.6"/><path d="m59.9 13.2c-.9 3.2-2.6 5.5-5.6 6.5-.4.1-.2.8.2.7 3.2-1 5.2-3.6 6.1-7 0-.4-.6-.6-.7-.2"/><path d="m44.2 13c.5 2.9 1.7 4.9 4.1 6.4.4.2.7-.4.3-.6-2.2-1.5-3.3-3.3-3.8-6-.1-.4-.7-.2-.6.2"/><path d="m58.6 6.1c-1-1.7-3-3.8-5.1-3.6-.4 0-.4.7 0 .7 1.8-.2 3.6 1.8 4.5 3.3.3.4.8 0 .6-.4"/></g><g fill="#d6eef0"><path d="m50.8 21.3c-2.4 0-4.5-.8-6.3-2.5-.3-.3-.8.2-.5.5 2 1.8 4.1 2.7 6.7 2.7.5 0 .5-.7.1-.7"/><path d="m60.4 16.7c-.6 1.5-1.7 3.5-3.2 4.2-.4.2-.2.8.2.7 1.7-.7 2.9-2.8 3.6-4.5.1-.4-.4-.8-.6-.4"/><path d="m43.2 4c-2.3 2.3-1.9 7-.7 9.8.2.4.7.1.6-.3-1.1-2.5-1.5-6.9.6-8.9.2-.4-.2-.9-.5-.6"/><path d="m58.2 2.6c1.8 1.8 2.6 3.9 2.7 6.5 0 .4.6.4.6 0 0-2.8-.9-5.1-2.9-7-.3-.3-.7.2-.4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3dd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3dd.svg
index c15564b..c9bf170 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3dd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3dd.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><circle fill="#ffe62e" cx="52" cy="12" r="7"/><g fill="#fff"><path d="m22 7c0 1.104-.896 2-2 2h-10c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h10c1.104 0 2 .896 2 2"/><path d="m26 9c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m40 12c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m19 19c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/></g><path fill="#42ade2" d="m0 32h64v32h-64z"/><path fill="#428bc1" d="M55,51.238C53.782,57.482,45.809,58,32,58c-13.808,0-21.782-0.518-23-6.762C7.688,44.512,18.192,40,32,40
- C45.809,40,56.312,44.513,55,51.238z"/><path fill="#ffdd7d" d="m53 50.31c-1.433 5.134-9.403 4.693-21 4.693-11.598 0-19.567.441-21-4.693-1.636-5.862 9.402-12.307 21-12.307 11.597 0 22.636 6.445 21 12.307"/><path fill="#83bf4f" d="m42 47.06c0 2.01-3.19.285-5 1.031-1.81.747-2.237 2.063-5 2.063-2.729 0-3.195-1.331-5-2.063-1.847-.749-5 .902-5-1.031 0-2.278 4.479-6.906 10-6.906 5.525-.001 10 4.627 10 6.906"/><path fill="#75a843" d="m38 45c0 1.104-2.133 1-6 1-3.866 0-6 .104-6-1s2.134-3 6-3c3.867 0 6 1.896 6 3"/><path fill="#dbb471" d="m30.5 44.21c0 0-2-10.277 6.248-19.408l1.752.893c0 0-5 3.191-5 18.516 0-.001-1.5 1.288-3-.001"/><path fill="#699635" d="m41.13 23.505c-.979-.005-1.894.247-2.674.688.3-.844.39-1.789.214-2.754-.502-2.769-2.99-4.637-5.559-4.17-.318.057-.621.146-.908.266 2.118.131 4.072 2.161 4.573 4.934.302 1.65.103 3.299-.576 4.492 1.057-.877 2.568-1.422 4.245-1.414 2.819.014 5.156 1.585 5.653 3.65.065-.303.103-.617.104-.94.013-2.611-2.256-4.739-5.072-4.752"/><path fill="#83bf4f" d="m33.35 22.21c.247.088.485.193.709.313-.061-.054-.122-.106-.187-.159-2.611-2.197-6-2.576-8.07-1.054.175-.334.386-.653.639-.953 2.031-2.427 5.794-2.614 8.401-.421 1.947 1.636 2.7 4.133 2.119 6.304 2.024-.935 4.597-.619 6.531 1.01 2.611 2.192 3.076 5.938 1.047 8.363-.252.299-.529.564-.828.795 1.136-2.311.176-5.589-2.438-7.785-.063-.053-.125-.104-.189-.155.156.201.302.416.434.646 1.35 2.37.667 5.311-1.531 6.566-.27.155-.551.277-.84.368 1.495-1.419 1.831-4.239.324-6.52-1.396-2.12-3.669-1.642-3.669-1.642s-.001-2.619-2.501-3.704c-2.74-1.189-5.216-.149-6.353 1.568.039-.3.112-.598.217-.892.853-2.383 3.624-3.569 6.19-2.647"/><g fill="#89664c"><path d="m29.979 40c0 0-.215 2 2.02 2 1.575 0 1.974-2 1.974-2h-3.995"/><path d="m30.554 36c0 0-.524 1.678 1.683 1.98 1.558.214 2.264-1.439 2.264-1.439l-3.947-.541"/><path d="m31.555 32c0 0-.525 1.678 1.683 1.98 1.558.214 2.263-1.439 2.263-1.439l-3.946-.541"/><path d="m33.2 28c0 0-.935 1.323 1.188 1.916 1.5.418 2.606-.857 2.606-.857l-3.794-1.059"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><circle cx="52" cy="12" r="7" fill="#ffe62e"/><g fill="#fff"><path d="m22 7c0 1.1-.9 2-2 2h-10c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><path d="m26 9c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m40 12c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m19 19c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/></g><path fill="#42ade2" d="m0 32h64v32h-64z"/><path d="m55 51.2c-1.2 6.2-9.2 6.8-23 6.8-13.8 0-21.8-.5-23-6.8-1.3-6.7 9.2-11.2 23-11.2 13.8 0 24.3 4.5 23 11.2" fill="#428bc1"/><path d="m53 50.3c-1.4 5.1-9.4 4.7-21 4.7-11.6 0-19.6.4-21-4.7-1.6-5.9 9.4-12.3 21-12.3 11.6 0 22.6 6.4 21 12.3" fill="#ffdd7d"/><path d="m42 47.1c0 2-3.2.3-5 1-1.8.7-2.2 2.1-5 2.1-2.7 0-3.2-1.3-5-2.1-1.8-.7-5 .9-5-1 0-2.3 4.5-6.9 10-6.9 5.5 0 10 4.6 10 6.9" fill="#83bf4f"/><path d="m38 45c0 1.1-2.1 1-6 1-3.9 0-6 .1-6-1s2.1-3 6-3c3.9 0 6 1.9 6 3" fill="#75a843"/><path d="m30.5 44.2c0 0-2-10.3 6.2-19.4l1.8.9c0 0-5 3.2-5 18.5 0 0-1.5 1.3-3 0" fill="#dbb471"/><path d="m41.1 23.5c-1 0-1.9.2-2.7.7.3-.8.4-1.8.2-2.8-.5-2.8-3-4.6-5.6-4.2-.3.1-.6.1-.9.3 2.1.1 4.1 2.2 4.6 4.9.3 1.6.1 3.3-.6 4.5 1.1-.9 2.6-1.4 4.2-1.4 2.8 0 5.2 1.6 5.7 3.6.1-.3.1-.6.1-.9.1-2.6-2.1-4.7-5-4.7" fill="#699635"/><path d="m33.3 22.2c.2.1.5.2.7.3-.1-.1-.1-.1-.2-.2-2.6-2.2-6-2.6-8.1-1.1.2-.3.4-.7.6-1 2-2.4 5.8-2.6 8.4-.4 1.9 1.6 2.7 4.1 2.1 6.3 2-.9 4.6-.6 6.5 1 2.6 2.2 3.1 5.9 1 8.4-.3.3-.5.6-.8.8 1.1-2.3.2-5.6-2.4-7.8-.1-.1-.1-.1-.2-.2.2.2.3.4.4.6 1.3 2.4.7 5.3-1.5 6.6-.3.2-.6.3-.8.4 1.5-1.4 1.8-4.2.3-6.5-1.4-2.1-3.7-1.6-3.7-1.6s0-2.6-2.5-3.7c-2.7-1.2-5.2-.1-6.4 1.6 0-.3.1-.6.2-.9 1.1-2.3 3.9-3.5 6.4-2.6" fill="#83bf4f"/><g fill="#89664c"><path d="m30 40c0 0-.2 2 2 2 1.6 0 2-2 2-2h-4"/><path d="m30.6 36c0 0-.5 1.7 1.7 2 1.6.2 2.3-1.4 2.3-1.4l-4-.6"/><path d="m31.6 32c0 0-.5 1.7 1.7 2 1.6.2 2.3-1.4 2.3-1.4l-4-.6"/><path d="m33.2 28c0 0-.9 1.3 1.2 1.9 1.5.4 2.6-.9 2.6-.9l-3.8-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3de.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3de.svg
index 1f764c0..c3c729a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3de.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3de.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><path fill="#d0d0d0" d="M28,38c-0.533-1.272-1.293-2.48-2.143-3.273L7.014,17.12c-1.598-1.493-4.213-1.493-5.811,0L0,18.244V38H28z
- "/><g fill="#83bf4f"><path d="m.019 32c.064 0-.065 0 0 0"/><path d="m50.19 34.498l.006.029c-3.237-1.41-6.801-2.242-10.414-2.266-3.61-.025-6.801.76-9.393 2.129l-.012-.029c-5.623 2.498-12.98 2.449-19.789-.129l.008.03c-3.236-1.41-6.991-2.239-10.599-2.262v32h64v-27.746c-4.388.563-9.222-.02-13.807-1.756"/></g><g fill="#f9f3d9"><path d="m0 52h16v12h-16z"/><path d="m48 52h16v12h-16z"/></g><g fill="#d0d0d0"><path d="m0 48h18v4h-18z"/><path d="m46 48h18v4h-18z"/><path d="m2 55h4v2h-4z"/><path d="m10 57h4v2h-4z"/><path d="m54 60h4v2h-4z"/><path d="m58 54h4v2h-4z"/></g><path fill="#f9f3d9" d="m29.688 45.77c-9.999-3.465-8.414-8.271-7.746-9.592h-2.176c-1.825 1.504-5.958 5.294 4.544 11.617 11.775 7.09.376 16.205.376 16.205h17.01c-.001 0 4.796-12.408-12-18.23"/><g fill="#3e4347"><path d="m14 28h2v20h-2z"/><path d="m48 28h2v20h-2z"/></g><g fill="#699635"><circle cx="4" cy="41" r="2"/><circle cx="4" cy="39" r="1"/><circle cx="10" cy="41" r="2"/><circle cx="7" cy="40" r="3"/></g><path fill="#89664c" d="m56 38h2v6h-2z"/><path fill="#699635" d="m58.6 29.24c-.88-1.654-2.318-1.654-3.199 0l-3.061 5.753c-.881 1.653.01 3.01 1.977 3.01h5.365c1.968 0 2.858-1.354 1.978-3.01l-3.06-5.753"/><path fill="#75a843" d="m58.28 25.992c-.703-1.322-1.853-1.322-2.559 0l-2.449 4.604c-.703 1.322.008 2.404 1.583 2.404h4.291c1.576 0 2.288-1.082 1.584-2.404l-2.45-4.604"/><path fill="#83bf4f" d="m57.958 22.744c-.526-.992-1.389-.992-1.916 0l-1.838 3.452c-.528.992.006 1.804 1.188 1.804h3.216c1.183 0 1.717-.813 1.188-1.804l-1.838-3.452"/><circle fill="#ffe62e" cx="52" cy="12" r="7"/><g fill="#fff"><path d="m22 7c0 1.104-.896 2-2 2h-10c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h10c1.104 0 2 .896 2 2"/><path d="m26 9c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/><path d="m40 12c0 1.104-.896 2-2 2h-4c-1.104 0-2-.896-2-2 0-1.104.896-2 2-2h4c1.104 0 2 .896 2 2"/></g><path fill="#89664c" d="m49 22h-34c-2.209 0-4 1.791-4 4s1.791 4 4 4h34c2.209 0 4-1.791 4-4s-1.791-4-4-4"/><g fill="#f9f3d9"><circle cx="15" cy="26" r="1"/><circle cx="49" cy="26" r="1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m0 0h64v64h-64z"/><path d="M28,38c-0.5-1.3-1.3-2.5-2.1-3.3L7,17.1c-1.6-1.5-4.2-1.5-5.8,0L0,18.2V38H28z" fill="#d0d0d0"/><g fill="#83bf4f"><path d="m0 32c.1 0 0 0 0 0"/><path d="m50.2 34.5c-3.2-1.4-6.8-2.2-10.4-2.2-3.6 0-6.8.8-9.4 2.1-5.6 2.5-13 2.4-19.8-.1-3.2-1.4-7-2.3-10.6-2.3v32h64v-27.7c-4.4.5-9.2-.1-13.8-1.8"/></g><g fill="#f9f3d9"><path d="m0 52h16v12h-16z"/><path d="m48 52h16v12h-16z"/></g><g fill="#d0d0d0"><path d="m0 48h18v4h-18z"/><path d="m46 48h18v4h-18z"/><path d="m2 55h4v2h-4z"/><path d="m10 57h4v2h-4z"/><path d="m54 60h4v2h-4z"/><path d="m58 54h4v2h-4z"/></g><path d="m29.7 45.8c-10-3.5-8.4-8.3-7.7-9.6h-2.2c-1.8 1.5-6 5.3 4.5 11.6 11.8 7.1.4 16.2.4 16.2h17c0 0 4.8-12.4-12-18.2" fill="#f9f3d9"/><g fill="#3e4347"><path d="m14 28h2v20h-2z"/><path d="m48 28h2v20h-2z"/></g><g fill="#699635"><circle cx="4" cy="41" r="2"/><circle cx="4" cy="39" r="1"/><circle cx="10" cy="41" r="2"/><circle cx="7" cy="40" r="3"/></g><path fill="#89664c" d="m56 38h2v6h-2z"/><path d="m58.6 29.2c-.9-1.7-2.3-1.7-3.2 0l-3.1 5.8c-.9 1.7 0 3 2 3h5.4c2 0 2.9-1.4 2-3l-3.1-5.8" fill="#699635"/><path d="m58.3 26c-.7-1.3-1.9-1.3-2.6 0l-2.4 4.6c-.7 1.3 0 2.4 1.6 2.4h4.3c1.6 0 2.3-1.1 1.6-2.4l-2.5-4.6" fill="#75a843"/><path d="m58 22.7c-.5-1-1.4-1-1.9 0l-1.8 3.5c-.5 1 0 1.8 1.2 1.8h3.2c1.2 0 1.7-.8 1.2-1.8l-1.9-3.5" fill="#83bf4f"/><circle cx="52" cy="12" r="7" fill="#ffe62e"/><g fill="#fff"><path d="m22 7c0 1.1-.9 2-2 2h-10c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/><path d="m26 9c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/><path d="m40 12c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2 0-1.1.9-2 2-2h4c1.1 0 2 .9 2 2"/></g><path d="m49 22h-34c-2.2 0-4 1.8-4 4s1.8 4 4 4h34c2.2 0 4-1.8 4-4s-1.8-4-4-4" fill="#89664c"/><g fill="#f9f3d9"><circle cx="15" cy="26" r="1"/><circle cx="49" cy="26" r="1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3df.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3df.svg
index b48a2f7..579a720 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3df.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3df.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#62727a"><path d="m32.503 11.5c0 .275-.225.5-.5.5-.273 0-.5-.225-.5-.5v-11c0-.275.227-.5.5-.5.275 0 .5.225.5.5v11"/><path d="m23.504 11.5c0 .275-.226.5-.5.5-.274 0-.5-.225-.5-.5v-11c0-.275.226-.5.5-.5.274 0 .5.225.5.5v11"/><path d="m41.503 11.5c0 .275-.227.5-.5.5-.275 0-.5-.225-.5-.5v-11c0-.275.225-.5.5-.5.273 0 .5.225.5.5v11"/></g><path fill="#42ade2" d="m23.504 1v4l4-2z"/><path fill="#f15744" d="m32.503 1v4l4-2z"/><path fill="#ffe62e" d="m41.503 1v4l3.999-2z"/><ellipse fill="#e8e8e8" cx="32" cy="18.74" rx="31.997" ry="8"/><ellipse fill="#b2c1c0" cx="31.975" cy="21.241" rx="29.761" ry="8"/><ellipse fill="#e8e8e8" cx="31.975" cy="22.278" rx="29.06" ry="8"/><ellipse fill="#62727a" cx="31.931" cy="25.521" rx="29.06" ry="8"/><path fill="#83bf4f" d="m54.19 22.846c-8.471-3.652-35.667-3.935-43.832 0-.285.138-.568.324-.844.544 12.137 2.335 32.607 2.072 44.915-.419-.078-.043-.158-.09-.239-.125" id="0"/><path fill="#62727a" d="M 0.007,39.295 H64 V64 H0.007 z"/><g fill="#b2c1c0"><path d="m11.173 12.668c-.287.049-.543.129-.818.182l5.929 5.93c.287-.044.56-.104.855-.146l-5.966-5.966"/><path d="m53.651 12.85c-.282-.047-.525-.137-.817-.182l-5.987 5.986c.296.04.566.105.854.146l5.95-5.95"/><path d="m32.503 17.521v-6.781c-.332-.002-.666 0-1 0v6.782c.334-.001.668-.002 1-.001"/></g><use xlink:href="#0"/><path fill="#f9f3d9" d="m18.458 24.55l1.04-2.05h12.01v2.494c.334-.004.668-.006 1-.011v-2.483h12.01l.9 1.777c.319-.032.637-.064.951-.099l-1.358-2.678h-25.997l-1.505 2.967c.318.029.637.056.958.083"/><path fill="#b2c1c0" d="m63.987 18.18c0 .591-.189 1.115-.652 1.471-8.729 6.704-56.31 7.307-62.947 0-.26-.287-.363-.647-.365-1.043h-.016v20.779c0 8.217 63.993 10.226 63.993-1.028v-20.18h-.013"/><path fill="#e8e8e8" d="m37.553 32.923c-.303-1.058-1.449-1.923-2.55-1.923h-5.999c-1.101 0-2.247.865-2.55 1.923l-.9 3.154c-.303 1.058.349 1.923 1.45 1.923h9.999c1.101 0 1.753-.865 1.45-1.923l-.9-3.154"/><path fill="#b2c1c0" d="m37 36h-9.999c-1.101 0-2 .9-2 2v10h13.999v-10c0-1.1-.899-2-2-2"/><path fill="#62727a" d="m28 40h7.999v9.269h-7.999z"/><g fill="#fff"><path d="m.007 34.719v1.502c5.04 4.26 21.251 5.443 24.973 5.66l.049-1.184c-12.923-.756-22.749-3.168-25.02-5.978"/><path d="M64,34c-2.171,3.676-11.343,6.227-25.02,6.816L39.017,42c6.596-0.283,20.426-1.459,24.983-6.262V34z"/><path d="m.007 29.719v1.502c5.04 4.26 21.251 5.443 24.973 5.66l.049-1.184c-12.923-.756-22.749-3.168-25.02-5.978"/><path d="M64,29c-2.171,3.676-11.343,6.227-25.02,6.816L39.017,37c6.596-0.283,20.426-1.459,24.983-6.262V29z"/><path d="m.007 24.719v1.502c5.04 4.26 21.251 5.443 24.973 5.66l.049-1.184c-12.923-.756-22.749-3.168-25.02-5.978"/><path d="M64,24c-2.171,3.676-11.343,6.227-25.02,6.816L39.017,32c6.596-0.283,20.426-1.459,24.983-6.262V24z"/></g><g fill="#62727a"><path d="m3.5 30.622c.003.31-.221.459-.491.333l-.998-.459c-.271-.125-.496-.479-.499-.788l-.012-1.33c-.003-.31.221-.459.491-.334l.998.458c.271.125.499.48.499.789l.012 1.331"/><path d="m19.969 32.18l-1.052-.055c-.289-.015-.517.146-.508.356l.075 1.533c.009.211.254.396.544.41l1.051.056c.289.015.517-.146.508-.356l-.075-1.533c-.009-.211-.254-.397-.543-.411"/><path d="m10.977 30.916l-1.034-.182c-.284-.051-.511.085-.504.301l.053 1.565c.007.216.245.433.529.483l1.034.182c.284.051.511-.085.504-.301l-.053-1.565c-.007-.215-.245-.432-.529-.483"/><path d="m60.04 30.783c-.002.309.221.459.492.332l.998-.458c.271-.125.496-.479.498-.788l.012-1.33c.004-.31-.221-.459-.49-.334l-.998.457c-.271.125-.498.48-.498.789l-.014 1.332"/><path d="m43.569 32.34l1.053-.055c.289-.016.518.145.508.355l-.075 1.533c-.009.211-.254.396-.544.411l-1.051.056c-.289.015-.518-.146-.508-.356l.074-1.534c.01-.211.254-.395.543-.41"/><path d="m52.56 31.08l1.033-.183c.283-.05.511.086.503.301l-.053 1.566c-.008.215-.245.432-.528.482l-1.035.182c-.283.051-.51-.084-.504-.3l.053-1.565c.008-.216.246-.433.531-.483"/></g><g fill="#b2c1c0"><path d="m0 51.5v1h7l-3 7h1l3-7h6.999l-3 7h1l3-7h6.499l-2.5 7h1l3-8z"/><path d="m63.993 51.5v1h-6.999l2.999 7h-.999l-3-7h-6.999l3 7h-1l-3-7h-6.5l2.5 7h-1l-3-8z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#62727a"><path d="m32.5 11.5c0 .3-.2.5-.5.5-.3 0-.5-.2-.5-.5v-11c0-.3.2-.5.5-.5.3 0 .5.2.5.5v11"/><path d="m23.5 11.5c0 .3-.2.5-.5.5-.3 0-.5-.2-.5-.5v-11c0-.3.2-.5.5-.5.3 0 .5.2.5.5v11"/><path d="m41.5 11.5c0 .3-.2.5-.5.5-.3 0-.5-.2-.5-.5v-11c0-.3.2-.5.5-.5.3 0 .5.2.5.5v11"/></g><path fill="#42ade2" d="m23.5 1v4l4-2z"/><path fill="#f15744" d="m32.5 1v4l4-2z"/><path fill="#ffe62e" d="m41.5 1v4l4-2z"/><ellipse cx="32" cy="18.7" rx="32" ry="8" fill="#e8e8e8"/><ellipse cx="32" cy="21.2" rx="29.8" ry="8" fill="#b2c1c0"/><ellipse cx="32" cy="22.3" rx="29.1" ry="8" fill="#e8e8e8"/><ellipse cx="31.9" cy="25.5" rx="29.1" ry="8" fill="#62727a"/><path d="m54.2 22.8c-8.5-3.7-35.7-3.9-43.8 0-.3.1-.6.3-.8.5 12.1 2.3 32.6 2.1 44.9-.4-.1 0-.2 0-.3-.1" fill="#83bf4f" id="0"/><path fill="#62727a" d="m0 39.3h64v24.7h-64z"/><g fill="#b2c1c0"><path d="m11.2 12.7c-.3 0-.5.1-.8.2l5.9 5.9c.3 0 .6-.1.9-.1l-6-6"/><path d="m53.7 12.9c-.3 0-.5-.1-.8-.2l-6 6c.3 0 .6.1.9.1l5.9-5.9"/><path d="m32.5 17.5v-6.8c-.3 0-.7 0-1 0v6.8c.3 0 .7 0 1 0"/></g><use xlink:href="#0"/><path d="m18.5 24.5l1-2h12v2.5c.3 0 .7 0 1 0v-2.5h12l.9 1.8c.3 0 .6-.1 1-.1l-1.4-2.7h-26l-1.5 3c.3 0 .6 0 1 0" fill="#f9f3d9"/><path d="m64 18.2c0 .6-.2 1.1-.7 1.5-8.7 6.7-56.3 7.3-62.9 0-.3-.3-.4-.7-.4-1.1v20.8c0 8.2 64 10.2 64-1v-20.2" fill="#b2c1c0"/><path d="m37.6 32.9c-.4-1-1.5-1.9-2.6-1.9h-6c-1.1 0-2.2.9-2.5 1.9l-.9 3.2c-.3 1 .3 1.9 1.4 1.9h10c1.1 0 1.8-.9 1.5-1.9l-.9-3.2" fill="#e8e8e8"/><path d="m37 36h-10c-1.1 0-2 .9-2 2v10h14v-10c0-1.1-.9-2-2-2" fill="#b2c1c0"/><path fill="#62727a" d="m28 40h8v9.3h-8z"/><g fill="#fff"><path d="m0 34.7v1.5c5 4.3 21.3 5.4 25 5.7v-1.2c-12.9-.8-22.7-3.2-25-6"/><path d="m64 34c-2.2 3.7-11.3 6.2-25 6.8v1.2c6.6-.3 20.4-1.5 25-6.3v-1.7"/><path d="m0 29.7v1.5c5 4.3 21.3 5.4 25 5.7v-1.2c-12.9-.8-22.7-3.2-25-6"/><path d="m64 29c-2.2 3.7-11.3 6.2-25 6.8v1.2c6.6-.3 20.4-1.5 25-6.3v-1.7"/><path d="m0 24.7v1.5c5 4.3 21.3 5.4 25 5.7v-1.2c-12.9-.8-22.7-3.2-25-6"/><path d="m64 24c-2.2 3.7-11.3 6.2-25 6.8v1.2c6.6-.3 20.4-1.5 25-6.3v-1.7"/></g><g fill="#62727a"><path d="m3.5 30.6c0 .3-.2.5-.5.3l-1-.5c-.3-.1-.5-.5-.5-.8v-1.3c0-.3.2-.5.5-.3l1 .5c.3.1.5.5.5.8v1.3"/><path d="m20 32.2l-1.1-.1c-.3 0-.5.1-.5.4l.1 1.5c0 .2.3.4.5.4l1.1.1c.3 0 .5-.1.5-.4l-.1-1.5c0-.2-.2-.4-.5-.4"/><path d="m11 30.9l-1-.2c-.3-.1-.5.1-.5.3l.1 1.6c0 .2.2.4.5.5l1 .2c.3.1.5-.1.5-.3l-.1-1.6c0-.2-.2-.4-.5-.5"/><path d="m60 30.8c0 .3.2.5.5.3l1-.5c.3-.1.5-.5.5-.8v-1.3c0-.3-.2-.5-.5-.3l-1 .5c-.3.1-.5.5-.5.8v1.3"/><path d="m43.6 32.3l1.1-.1c.3 0 .5.1.5.4l-.1 1.5c0 .2-.3.4-.5.4l-1.1.1c-.3 0-.5-.1-.5-.4l.1-1.5c-.1-.2.2-.3.5-.4"/><path d="m52.6 31.1l1-.2c.3 0 .5.1.5.3l-.1 1.6c0 .2-.2.4-.5.5l-1 .2c-.3.1-.5-.1-.5-.3l.1-1.6c-.1-.3.2-.5.5-.5"/></g><g fill="#b2c1c0"><path d="m0 51.5v1h7l-3 7h1l3-7h7l-3 7h1l3-7h6.5l-2.5 7h1l3-8z"/><path d="m64 51.5v1h-7l3 7h-1l-3-7h-7l3 7h-1l-3-7h-6.5l2.5 7h-1l-3-8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e0.svg
index 1a6f6f1..5edbcce 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m32.382 4.276h3.41v6.491h-3.41z"/><path fill="#94989b" d="m35.792 4.276h2.273v6.491h-2.273z"/><path fill="#d0d0d0" d="m31.24 2h5.685v2.276h-5.685z"/><path fill="#94989b" d="m36.929 2h2.274v2.276h-2.274z"/><path fill="#ed4c5c" d="m24.24 2l-21.533 12.315h43.06z"/><path fill="#f9f3d9" d="m8.809 14.315h30.855v19.05h-30.855z"/><path fill="#d6eef0" d="m20.386 19.983h7.699v7.708h-7.699z"/><path fill="#89664c" d="m19.424 19.02v9.631h9.624v-9.631h-9.624m8.66.962v3.371h-3.369v-3.371h3.369m-4.331 0v3.371h-3.367v-3.371h3.367m-3.367 7.708v-3.373h3.367v3.373h-3.367m4.33 0v-3.373h3.369v3.373h-3.369"/><path fill="#f9f3d9" d="m6.364 40.86h45.646v19.265h-45.646z"/><path fill="#d6eef0" d="m36.875 46.64h7.699v7.706h-7.699z"/><g fill="#89664c"><path d="m35.914 45.676v9.634h9.624v-9.634h-9.624m8.66.964v3.37h-3.368v-3.37h3.368m-4.332 0v3.37h-3.367v-3.37h3.367m-3.367 7.706v-3.37h3.367v3.37h-3.367m4.331 0v-3.37h3.368v3.37h-3.368"/><path d="m18.421 48.32h8.422v11.801h-8.422z"/></g><path fill="#dbb471" d="m17.58 46.64h10.11v1.685h-10.11z"/><circle fill="#f9f3d9" cx="25.369" cy="53.38" r=".632"/><path fill="#83bf4f" d="m2 60.13h60v1.875h-60z"/><path fill="#ed4c5c" d="m49.64 33.36h-40.906l-6.734 7.5h54.38z"/><path fill="#83bf4f" d="m62 56.18c0-1.161-.942-2.104-2.103-2.104-.239 0-.466.048-.679.122-.252-.536-.792-.91-1.425-.91-.371 0-.707.133-.976.347.025-.112.041-.228.041-.347 0-.871-.706-1.578-1.576-1.578-.776 0-1.419.563-1.551 1.301-.182-.152-.413-.25-.671-.25-.58 0-1.051.471-1.051 1.054v6.308h8.413c.87 0 1.576-.707 1.576-1.576 0-.425-.169-.808-.441-1.092.275-.354.443-.794.443-1.275"/><g fill="#699635"><path d="m62 58.55c0-.425-.169-.808-.441-1.092.273-.353.441-.793.441-1.274 0-1.161-.942-2.104-2.103-2.104-.239 0-.466.048-.679.122-.16-.342-.439-.617-.784-.772-.551.245-.937.797-.937 1.439 0 .153.029.3.07.441-.141-.069-.297-.114-.465-.114-.58 0-1.051.473-1.051 1.054 0 .397.226.741.551.919-.238.31-.387.693-.387 1.117 0 1.01.808 1.819 1.808 1.838v.002h2.4c.872 0 1.578-.707 1.578-1.576"/><path d="m55.809 58.777c0 .582-.471-.229-1.053-.229-.58 0-1.051.811-1.051.229 0-.58.471-1.051 1.051-1.051.582.001 1.053.471 1.053 1.051"/><path d="m53.48 56.974c0 .291-.235 0-.526 0-.29 0-.525.291-.525 0 0-.289.235-.525.525-.525.29-.001.526.236.526.525"/></g><g fill="#83bf4f"><path d="m54.38 55.39c0 .291-.234-.088-.525-.088s-.525.379-.525.088.234-.525.525-.525.525.234.525.525"/><path d="m58.766 58.02c0 .394-.318-.192-.713-.192-.393 0-.711.586-.711.192 0-.395.318-.713.711-.713.394.001.713.319.713.713"/><path d="m60.805 56.06c0 .584-.474-.335-1.058-.335-.583 0-1.057.919-1.057.335s.474-1.057 1.057-1.057c.584 0 1.058.473 1.058 1.057"/><path d="m60.838 58.55c0 .29-.234 0-.525 0s-.525.29-.525 0c0-.291.234-.525.525-.525s.525.234.525.525"/><path d="m56.14 54.34c0 .394-.319-.192-.713-.192-.393 0-.712.586-.712.192s.319-.713.712-.713c.393 0 .713.319.713.713"/><path d="m11.989 56.18c0-1.161-.942-2.104-2.103-2.104-.239 0-.465.048-.678.122-.252-.536-.792-.91-1.425-.91-.371 0-.707.133-.976.347.025-.112.041-.228.041-.347 0-.871-.706-1.578-1.577-1.578-.776 0-1.418.563-1.55 1.301-.182-.152-.414-.25-.671-.25-.579 0-1.05.47-1.05 1.053v6.308h8.413c.871 0 1.577-.707 1.577-1.576 0-.425-.169-.808-.441-1.092.272-.353.44-.793.44-1.274"/></g><g fill="#699635"><path d="m11.989 58.55c0-.425-.169-.808-.441-1.092.273-.354.441-.793.441-1.274 0-1.161-.942-2.104-2.103-2.104-.239 0-.465.048-.678.122-.16-.342-.439-.617-.784-.772-.551.245-.937.797-.937 1.439 0 .153.029.3.069.441-.14-.069-.296-.114-.464-.114-.581 0-1.051.473-1.051 1.054 0 .397.225.741.551.919-.239.31-.387.693-.387 1.117 0 1.01.808 1.819 1.808 1.838v.002h2.399c.872 0 1.578-.707 1.578-1.576"/><path d="m5.798 58.777c0 .582-.471-.229-1.052-.229-.581 0-1.051.811-1.051.229 0-.58.47-1.051 1.051-1.051.581.001 1.052.471 1.052 1.051"/><path d="m3.468 56.974c0 .291-.235 0-.526 0-.291 0-.526.291-.526 0 0-.289.235-.525.526-.525.29-.001.526.236.526.525"/></g><g fill="#83bf4f"><path d="m4.366 55.39c0 .291-.234-.088-.525-.088-.292 0-.526.379-.526.088s.234-.525.526-.525c.29-.001.525.234.525.525"/><path d="m8.755 58.02c0 .394-.319-.192-.712-.192-.393 0-.711.586-.711.192 0-.395.319-.713.711-.713.393.001.712.319.712.713"/><path d="m10.793 56.06c0 .584-.473-.335-1.057-.335-.583 0-1.057.919-1.057.335s.474-1.057 1.057-1.057c.584 0 1.057.473 1.057 1.057"/><path d="m10.828 58.55c0 .29-.234 0-.526 0-.291 0-.525.29-.525 0 0-.291.234-.525.525-.525.291-.001.526.234.526.525"/><path d="m6.127 54.34c0 .394-.319-.192-.713-.192-.393 0-.712.586-.712.192s.32-.713.712-.713c.394 0 .713.319.713.713"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m32.4 4.3h3.4v6.5h-3.4z"/><path fill="#94989b" d="m35.8 4.3h2.3v6.5h-2.3z"/><path fill="#d0d0d0" d="m31.2 2h5.7v2.3h-5.7z"/><path fill="#94989b" d="m36.9 2h2.3v2.3h-2.3z"/><path fill="#ed4c5c" d="m24.2 2l-21.5 12.3h43.1z"/><path fill="#f9f3d9" d="m8.8 14.3h30.9v19h-30.9z"/><path fill="#d6eef0" d="m20.4 20h7.7v7.7h-7.7z"/><path d="m19.4 19v9.6h9.6v-9.6h-9.6m8.7 1v3.4h-3.4v-3.4h3.4m-4.3 0v3.4h-3.4v-3.4h3.4m-3.4 7.7v-3.4h3.4v3.4h-3.4m4.3 0v-3.4h3.4v3.4h-3.4" fill="#89664c"/><path fill="#f9f3d9" d="m6.4 40.9h45.6v19.3h-45.6z"/><path fill="#d6eef0" d="m36.9 46.6h7.7v7.7h-7.7z"/><g fill="#89664c"><path d="m35.9 45.7v9.6h9.6v-9.6h-9.6m8.7.9v3.4h-3.4v-3.4h3.4m-4.4 0v3.4h-3.4v-3.4h3.4m-3.3 7.7v-3.3h3.4v3.4h-3.4zm4.3 0v-3.3h3.4v3.4h-3.4z"/><path d="m18.4 48.3h8.4v11.8h-8.4z"/></g><path fill="#dbb471" d="m17.6 46.6h10.1v1.7h-10.1z"/><circle cx="25.4" cy="53.4" r=".6" fill="#f9f3d9"/><path fill="#83bf4f" d="m2 60.1h60v1.9h-60z"/><path fill="#ed4c5c" d="m49.6 33.4h-40.9l-6.7 7.5h54.4z"/><path d="m62 56.2c0-1.2-.9-2.1-2.1-2.1-.2 0-.5 0-.7.1-.3-.5-.8-.9-1.4-.9-.4 0-.7.1-1 .3 0-.1 0-.2 0-.3 0-.9-.7-1.6-1.6-1.6-.8 0-1.4.6-1.6 1.3-.2-.2-.4-.2-.7-.2-.6 0-1.1.5-1.1 1.1v6.3h8.4c.9 0 1.6-.7 1.6-1.6 0-.4-.2-.8-.4-1.1.4-.4.6-.8.6-1.3" fill="#83bf4f"/><g fill="#699635"><path d="m62 58.5c0-.4-.2-.8-.4-1.1.3-.4.4-.8.4-1.3 0-1.2-.9-2.1-2.1-2.1-.2 0-.5 0-.7.1-.2-.3-.4-.6-.8-.8-.6.2-.9.8-.9 1.4 0 .2 0 .3.1.4-.1-.1-.3-.1-.5-.1-.6 0-1.1.5-1.1 1.1 0 .4.2.7.6.9-.2.3-.4.7-.4 1.1 0 1 .8 1.8 1.8 1.8h2.4c.9.2 1.6-.5 1.6-1.4"/><path d="m55.8 58.8c0 .6-.5-.2-1.1-.2-.6 0-1.1.8-1.1.2 0-.6.5-1.1 1.1-1.1.6 0 1.1.5 1.1 1.1"/><path d="m53.5 57c0 .3-.2 0-.5 0-.3 0-.5.3-.5 0 0-.3.2-.5.5-.5.2-.1.5.2.5.5"/></g><g fill="#83bf4f"><path d="m54.4 55.4c0 .3-.2-.1-.5-.1s-.5.4-.5.1.2-.5.5-.5.5.2.5.5"/><path d="m58.8 58c0 .4-.3-.2-.7-.2-.4 0-.7.6-.7.2 0-.4.3-.7.7-.7.3 0 .7.3.7.7"/><path d="m60.8 56.1c0 .6-.5-.3-1.1-.3-.6 0-1.1.9-1.1.3s.5-1.1 1.1-1.1c.6 0 1.1.5 1.1 1.1"/><path d="m60.8 58.6c0 .3-.2 0-.5 0s-.5.3-.5 0c0-.3.2-.5.5-.5s.5.2.5.5"/><path d="m56.1 54.3c0 .4-.3-.2-.7-.2-.4 0-.7.6-.7.2s.3-.7.7-.7c.4 0 .7.3.7.7"/><path d="m12 56.2c0-1.2-.9-2.1-2.1-2.1-.2 0-.5 0-.7.1-.3-.5-.8-.9-1.4-.9-.4 0-.7.1-1 .3 0-.1 0-.2 0-.3 0-.9-.7-1.6-1.6-1.6-.8 0-1.4.6-1.5 1.3-.2-.2-.4-.2-.7-.2-.6 0-1 .5-1 1.1v6.3h8.4c.9 0 1.6-.7 1.6-1.6 0-.4-.2-.8-.4-1.1.2-.4.4-.8.4-1.3"/></g><g fill="#699635"><path d="m12 58.5c0-.4-.2-.8-.4-1.1.3-.4.4-.8.4-1.3 0-1.2-.9-2.1-2.1-2.1-.2 0-.5 0-.7.1-.2-.3-.4-.6-.8-.8-.6.2-.9.8-.9 1.4 0 .2 0 .3.1.4-.1-.1-.3-.1-.5-.1-.6 0-1.1.5-1.1 1.1 0 .4.2.7.6.9-.2.3-.4.7-.4 1.1 0 1 .8 1.8 1.8 1.8h2.4c.9.2 1.6-.5 1.6-1.4"/><path d="m5.8 58.8c0 .6-.5-.2-1.1-.2s-1.1.8-1.1.2c0-.6.5-1.1 1.1-1.1.6 0 1.1.5 1.1 1.1"/><path d="m3.5 57c0 .3-.2 0-.5 0s-.5.3-.5 0c0-.3.2-.5.5-.5.2-.1.5.2.5.5"/></g><g fill="#83bf4f"><path d="m4.4 55.4c0 .3-.2-.1-.5-.1-.3 0-.5.4-.5.1s.2-.5.5-.5c.2 0 .5.2.5.5"/><path d="m8.8 58c0 .4-.3-.2-.7-.2-.4 0-.7.6-.7.2 0-.4.3-.7.7-.7.3 0 .7.3.7.7"/><path d="m10.8 56.1c0 .6-.5-.3-1.1-.3-.6 0-1.1.9-1.1.3s.6-1.1 1.1-1.1c.6 0 1.1.5 1.1 1.1"/><path d="m10.8 58.6c0 .3-.2 0-.5 0-.3 0-.5.3-.5 0 0-.3.2-.5.5-.5.3-.1.5.2.5.5"/><path d="m6.1 54.3c0 .4-.3-.2-.7-.2-.4 0-.7.6-.7.2s.3-.7.7-.7c.4 0 .7.3.7.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e1.svg
index 881f415..8c1751e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m39.02 38l14.769 4.08h-11.249l-15.51-4.08z"/><path fill="#f9f3d9" d="m5.05 22h21.982v38h-21.982z"/><path fill="#dbb471" d="m27.03 22h11.989v16h-11.989z"/><path fill="#ed4c5c" d="m21.04 8l-19.988 14h25.978z"/><path fill="#d0d0d0" d="m29.03 10h2.997v8h-2.997z"/><path fill="#94989b" d="m32.02 10h1.998v9h-1.998z"/><path fill="#c94747" d="m21.04 8l21.98 14h-15.99z"/><path fill="#d0d0d0" d="m28.03 8h4.996v2h-4.996z"/><path fill="#94989b" d="m33.02 8h1.999v2h-1.999z"/><path fill="#d6eef0" d="m12.841 27.8h6.395v6.4h-6.395z"/><path fill="#89664c" d="m12.04 27v8h7.992v-8h-7.992m7.192.8v2.8h-2.798v-2.8h2.798m-3.597 0v2.8h-2.797v-2.8h2.797m-2.797 6.4v-2.8h2.797v2.8h-2.797m3.597 0v-2.8h2.798v2.8h-2.798"/><path fill="#d6eef0" d="m30.625 27.4h4.797v7.199h-4.797z"/><g fill="#89664c"><path d="m30.23 27v8h5.596v-8h-5.596m.8.8h1.597v2.8h-1.597v-2.8m0 6.4v-2.8h1.597v2.8h-1.597m3.997 0h-1.6v-2.8h1.6v2.8m0-3.6h-1.6v-2.8h1.6v2.8"/><path d="m13.695 49.06h6.245v10.938h-6.245z"/><path d="m19.16 47.5h1.562v1.563h-1.562z"/></g><path fill="#594640" d="m12.135 49.06h1.561v10.938h-1.561z"/><path fill="#dbb471" d="m11.355 47.5h7.806v1.563h-7.806z"/><circle fill="#f9f3d9" cx="18.575" cy="53.75" r=".586"/><path fill="#83bf4f" d="m.052 60h51.957v4h-51.957z"/><path fill="#dbb471" d="m39.881 42.08h9.319v17.917h-9.319z"/><path fill="#f9f3d9" d="m27.03 42.08h12.851v17.917h-12.851z"/><path fill="#ed4c5c" d="m27.03 38h-21.98l-5.05 4.08h42.54z"/><path fill="#d6eef0" d="m28.26 47.841h6.395v6.4h-6.395z"/><path fill="#89664c" d="m27.459 47.04v8h7.992v-8h-7.992m7.193.799v2.801h-2.799v-2.801h2.799m-3.597 0v2.801h-2.797v-2.801h2.797m-2.797 6.4v-2.799h2.797v2.799h-2.797m3.596 0v-2.799h2.799v2.799h-2.799"/><path fill="#d6eef0" d="m42.14 47.44h4.797v7.199h-4.797z"/><path fill="#89664c" d="m41.742 47.04v8h5.596v-8h-5.596m.801.799h1.598v2.801h-1.598v-2.801m0 6.4v-2.799h1.598v2.799h-1.598m3.998 0h-1.6v-2.799h1.6v2.799m0-3.599h-1.6v-2.801h1.6v2.801"/><path fill="#699635" d="m51.9 60h11.99v4h-11.99z"/><path fill="#d3976e" d="m52.24 34h3.997v26h-3.997z"/><path fill="#89664c" d="m56.24 34h-1.487c.014.172.029.339.029.543 0 2.28-.76 2.28-.76 4.561 0 2.275.76 2.275.76 4.55 0 2.276-.76 2.276-.76 4.551 0 2.273.76 2.273.76 4.55 0 2.271-.76 2.271-.76 4.544 0 1.427.207 1.952.421 2.702h1.797v-26"/><path fill="#83bf4f" d="m53.17 2.89c-1.903 2.728-4.237-2.17-7.247 2.043s-1.449 7.853-.522 10.603c1.844 5.465-1.851 7.235.572 11.812 2.423 4.575-1.058 6.78 3.505 9.33s2.311-2.933 6.99.317c4.681 3.25 5.336-2.247 4.825-4.186-.976-3.707 1.716-4.611 2.456-7.697 1.315-5.488-3.06-8.482-1.707-13.721 1.354-5.239-3.111-16.752-8.872-8.501"/><path fill="#699635" d="m62.04 11.391c1.018-3.929-1.243-11.389-4.865-11.391.002.002 2.438 3.16-.999 7.15-3.439 3.99 2.938 5.986 0 9.729-2.939 3.742 2.71 7.348.527 10.228-2.74 3.616-7 3.083-4.466 9.978.012.029.024.052.034.08 1.032-.629 1.075-2.336 4.194-.17 4.681 3.25 5.336-2.248 4.825-4.186-.976-3.707 1.716-4.611 2.456-7.697 1.316-5.489-3.059-8.483-1.706-13.721"/><g fill="#83bf4f"><path d="m57.827 11.161c-.747 0 .365-.606.365-1.354s-1.112-1.354-.365-1.354c.748 0 1.354.606 1.354 1.354s-.606 1.354-1.354 1.354"/><path d="m59.56 23.26c-1.111 0 .633-.9.633-2.01s-1.744-2.01-.633-2.01c1.107 0 2.01.9 2.01 2.01s-.9 2.01-2.01 2.01"/><path d="m57.811 33.5c-.83 0 0-.671 0-1.5s-.83-1.5 0-1.5c.828 0 1.499.671 1.499 1.5s-.671 1.5-1.499 1.5"/><path d="m49.34 12.1c.826 0-.25.671-.25 1.5s1.076 1.5.25 1.5-1.499-.671-1.499-1.5.673-1.5 1.499-1.5"/><path d="m52.56 6.421c1.119 0-.546.909-.546 2.031s1.665 2.031.546 2.031c-1.122 0-2.032-.909-2.032-2.031s.91-2.031 2.032-2.031"/></g><g fill="#699635"><path d="m51.663 21.637c1.657 0-.653 1.344-.653 3s2.311 3 .653 3c-1.652 0-2.996-1.344-2.996-3s1.344-3 2.996-3"/><path d="m52.598 16.13c.827 0 0 .671 0 1.5s.827 1.5 0 1.5c-.828 0-1.5-.671-1.5-1.5s.672-1.5 1.5-1.5"/></g><path fill="#83bf4f" d="m58.14 57.01h.39v2.989h-.39z"/><path fill="#c94747" d="m57.17 53.891v2.34c0 .431.35.78.781.78h.778v-1.561c.001-1.137-1.559-1.559-1.559-1.559"/><path fill="#ed4c5c" d="m59.51 53.891v2.34c0 .431-.35.78-.78.78h-.778v-1.561c-.001-1.137 1.558-1.559 1.558-1.559"/><path fill="#83bf4f" d="m62.53 54.67h.389v5.33h-.389z"/><path fill="#c94747" d="m61.55 51.55v2.341c0 .431.35.779.78.779h.779v-1.56c0-1.137-1.559-1.56-1.559-1.56"/><path fill="#ed4c5c" d="m63.891 51.55v2.341c0 .431-.349.779-.779.779h-.779v-1.56c-.001-1.137 1.558-1.56 1.558-1.56"/><path fill="#f2b200" d="m58.74 50.25v2.34c0 .432.347.78.777.78h.779v-1.56c.001-1.137-1.556-1.56-1.556-1.56"/><path fill="#ffce31" d="m61.08 50.25v2.34c0 .432-.349.78-.78.78h-.779v-1.56c0-1.137 1.559-1.56 1.559-1.56"/><path fill="#83bf4f" d="m59.714 53.37h.389v6.63h-.389z"/><path fill="#f2b200" d="m55.46 51.42v2.34c0 .432.351.78.78.78h.778v-1.56c.001-1.137-1.558-1.56-1.558-1.56"/><path fill="#ffce31" d="m57.798 51.42v2.34c0 .432-.348.78-.78.78h-.778v-1.56c-.001-1.137 1.558-1.56 1.558-1.56"/><g fill="#83bf4f"><path d="m56.44 54.54h.389v5.46h-.389z"/><path d="m49.01 57.01h.389v2.989h-.389z"/></g><path fill="#c94747" d="m48.03 53.891v2.34c0 .431.35.78.781.78h.778v-1.561c.001-1.137-1.559-1.559-1.559-1.559"/><path fill="#ed4c5c" d="m50.37 53.891v2.34c0 .431-.35.78-.779.78h-.778v-1.561c0-1.137 1.557-1.559 1.557-1.559"/><path fill="#83bf4f" d="m53.39 54.67h.389v5.33h-.389z"/><path fill="#c94747" d="m52.42 51.55v2.341c0 .431.35.779.781.779h.777v-1.56c.001-1.137-1.558-1.56-1.558-1.56"/><path fill="#ed4c5c" d="m54.756 51.55v2.341c0 .431-.35.779-.781.779h-.777v-1.56c-.001-1.137 1.558-1.56 1.558-1.56"/><path fill="#f2b200" d="m49.604 50.25v2.34c0 .432.35.78.779.78h.779v-1.56c0-1.137-1.558-1.56-1.558-1.56"/><path fill="#ffce31" d="m51.942 50.25v2.34c0 .432-.35.78-.78.78h-.779v-1.56c0-1.137 1.559-1.56 1.559-1.56"/><path fill="#83bf4f" d="m50.578 53.37h.389v6.63h-.389z"/><path fill="#c94747" d="m46.33 51.42v2.34c0 .432.347.78.778.78h.779v-1.56c.001-1.137-1.557-1.56-1.557-1.56"/><path fill="#ed4c5c" d="m48.662 51.42v2.34c0 .432-.349.78-.779.78h-.779v-1.56c0-1.137 1.558-1.56 1.558-1.56"/><path fill="#83bf4f" d="m47.3 54.54h.39v5.46h-.39z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m39 38l14.8 4.1h-11.3l-15.5-4.1z"/><path fill="#f9f3d9" d="m5 22h22v38h-22z"/><path fill="#dbb471" d="m27 22h12v16h-12z"/><path fill="#ed4c5c" d="M21 8 1.1 22 27 22z"/><path fill="#d0d0d0" d="m29 10h3v8h-3z"/><path fill="#94989b" d="m32 10h2v9h-2z"/><path fill="#c94747" d="m21 8l22 14h-16z"/><path fill="#d0d0d0" d="m28 8h5v2h-5z"/><path fill="#94989b" d="m33 8h2v2h-2z"/><path fill="#d6eef0" d="m12.8 27.8h6.4v6.4h-6.4z"/><path d="m12 27v8h8v-8h-8m7.2.8v2.8h-2.8v-2.8h2.8m-3.6 0v2.8h-2.8v-2.8h2.8m-2.8 6.4v-2.8h2.8v2.8h-2.8m3.6 0v-2.8h2.8v2.8h-2.8" fill="#89664c"/><path fill="#d6eef0" d="m30.6 27.4h4.8v7.2h-4.8z"/><g fill="#89664c"><path d="m30.2 27v8h5.6v-8h-5.6m.8.8h1.6v2.8h-1.6c0 0 0-2.8 0-2.8m0 6.4v-2.8h1.6v2.8h-1.6m4 0h-1.6v-2.8h1.6v2.8m0-3.6h-1.6v-2.8h1.6v2.8"/><path d="m13.7 49.1h6.2v10.9h-6.2z"/><path d="m19.2 47.5h1.6v1.6h-1.6z"/></g><path fill="#594640" d="m12.1 49.1h1.6v10.9h-1.6z"/><path fill="#dbb471" d="m11.4 47.5h7.8v1.6h-7.8z"/><circle cx="18.6" cy="53.8" r=".6" fill="#f9f3d9"/><path fill="#83bf4f" d="m.1 60h52v4h-52z"/><path fill="#dbb471" d="m39.9 42.1h9.3v17.9h-9.3z"/><path fill="#f9f3d9" d="m27 42.1h12.9v17.9h-12.9z"/><path fill="#ed4c5c" d="m27 38h-22l-5 4.1h42.5z"/><path fill="#d6eef0" d="m28.3 47.8h6.4v6.4h-6.4z"/><path d="m27.5 47v8h8v-8h-8m7.2.8v2.8h-2.8v-2.8h2.8m-3.6 0v2.8h-2.8v-2.8h2.8m-2.8 6.4v-2.8h2.8v2.8h-2.8m3.6 0v-2.8h2.8v2.8h-2.8" fill="#89664c"/><path fill="#d6eef0" d="m42.1 47.4h4.8v7.2h-4.8z"/><path d="m41.7 47v8h5.6v-8h-5.6m.8.8h1.6v2.8h-1.6v-2.8m0 6.4v-2.8h1.6v2.8h-1.6m4 0h-1.6v-2.8h1.6v2.8m0-3.6h-1.6v-2.8h1.6v2.8" fill="#89664c"/><path fill="#699635" d="m51.9 60h12v4h-12z"/><path fill="#d3976e" d="m52.2 34h4v26h-4z"/><path d="m56.2 34h-1.5c0 .2 0 .3 0 .5 0 2.3-.8 2.3-.8 4.6 0 2.3.8 2.3.8 4.5 0 2.3-.8 2.3-.8 4.6 0 2.3.8 2.3.8 4.5 0 2.3-.8 2.3-.8 4.5 0 1.4.2 2 .4 2.7h1.8c.1.1.1-25.9.1-25.9" fill="#89664c"/><path d="m53.2 2.9c-1.9 2.7-4.2-2.2-7.2 2s-1.4 7.9-.5 10.6c1.8 5.5-1.9 7.2.6 11.8 2.4 4.6-1.1 6.8 3.5 9.3s2.3-2.9 7 .3c4.7 3.2 5.3-2.2 4.8-4.2-1-3.7 1.7-4.6 2.5-7.7 1.3-5.5-3.1-8.5-1.7-13.7 1.2-5.1-3.3-16.7-9-8.4" fill="#83bf4f"/><path d="m62 11.4c1.1-3.9-1.2-11.4-4.8-11.4 0 0 2.4 3.2-1 7.2-3.4 4 2.9 6 0 9.7-2.9 3.7 2.7 7.3.5 10.2-2.7 3.6-7 3.1-4.5 10 0 0 0 .1 0 .1 1-.6 1.1-2.3 4.2-.2 4.7 3.2 5.3-2.2 4.8-4.2-1-3.7 1.7-4.6 2.5-7.7 1.4-5.5-3-8.5-1.7-13.7" fill="#699635"/><g fill="#83bf4f"><path d="m57.8 11.2c-.7 0 .4-.6.4-1.4s-1.1-1.4-.4-1.4c.7 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4"/><path d="m59.6 23.3c-1.1 0 .6-.9.6-2s-1.7-2-.6-2c1.1 0 2 .9 2 2s-.9 2-2 2"/><path d="m57.8 33.5c-.8 0 0-.7 0-1.5s-.8-1.5 0-1.5c.8 0 1.5.7 1.5 1.5 0 .8-.7 1.5-1.5 1.5"/><path d="m49.3 12.1c.8 0-.2.7-.2 1.5s1.1 1.5.2 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5"/><path d="m52.6 6.4c1.1 0-.5.9-.5 2s1.7 2 .5 2c-1.1 0-2-.9-2-2s.8-2 2-2"/></g><g fill="#699635"><path d="m51.7 21.6c1.7 0-.7 1.3-.7 3s2.3 3 .7 3c-1.7 0-3-1.3-3-3s1.3-3 3-3"/><path d="m52.6 16.1c.8 0 0 .7 0 1.5s.8 1.5 0 1.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5"/></g><path fill="#83bf4f" d="m58.1 57h.4v3h-.4z"/><path d="m57.2 53.9v2.3c0 .4.3.8.8.8h.8v-1.6c-.1-1.1-1.6-1.5-1.6-1.5" fill="#c94747"/><path d="m59.5 53.9v2.3c0 .4-.3.8-.8.8h-.8v-1.6c0-1.1 1.6-1.5 1.6-1.5" fill="#ed4c5c"/><path fill="#83bf4f" d="m62.5 54.7h.4v5.3h-.4z"/><path d="m61.6 51.5v2.3c0 .4.3.8.8.8h.8v-1.6c-.1-1-1.6-1.5-1.6-1.5" fill="#c94747"/><path d="m63.9 51.5v2.3c0 .4-.3.8-.8.8h-.8v-1.6c0-1 1.6-1.5 1.6-1.5" fill="#ed4c5c"/><path d="m58.7 50.2v2.3c0 .4.3.8.8.8h.8v-1.6c0-1-1.6-1.5-1.6-1.5" fill="#f2b200"/><path d="m61.1 50.2v2.3c0 .4-.3.8-.8.8h-.8v-1.6c0-1 1.6-1.5 1.6-1.5" fill="#ffce31"/><path fill="#83bf4f" d="m59.7 53.4h.4v6.6h-.4z"/><path d="m55.5 51.4v2.3c0 .4.4.8.8.8h.7v-1.5c0-1.2-1.5-1.6-1.5-1.6" fill="#f2b200"/><path d="m57.8 51.4v2.3c0 .4-.3.8-.8.8h-.8v-1.5c0-1.2 1.6-1.6 1.6-1.6" fill="#ffce31"/><g fill="#83bf4f"><path d="m56.4 54.5h.4v5.5h-.4z"/><path d="m49 57h.4v3h-.4z"/></g><path d="m48 53.9v2.3c0 .4.3.8.8.8h.8v-1.6c0-1.1-1.6-1.5-1.6-1.5" fill="#c94747"/><path d="m50.4 53.9v2.3c0 .4-.3.8-.8.8h-.8v-1.6c0-1.1 1.6-1.5 1.6-1.5" fill="#ed4c5c"/><path fill="#83bf4f" d="m53.4 54.7h.4v5.3h-.4z"/><path d="m52.4 51.5v2.3c0 .4.3.8.8.8h.8v-1.6c0-1-1.6-1.5-1.6-1.5" fill="#c94747"/><path d="m54.8 51.5v2.3c0 .4-.3.8-.8.8h-.8v-1.6c0-1 1.6-1.5 1.6-1.5" fill="#ed4c5c"/><path d="m49.6 50.2v2.3c0 .4.3.8.8.8h.8v-1.6c0-1-1.6-1.5-1.6-1.5" fill="#f2b200"/><path d="m51.9 50.2v2.3c0 .4-.3.8-.8.8h-.8v-1.6c.1-1 1.6-1.5 1.6-1.5" fill="#ffce31"/><path fill="#83bf4f" d="m50.6 53.4h.4v6.6h-.4z"/><path d="m46.3 51.4v2.3c0 .4.3.8.8.8h.8v-1.5c0-1.2-1.6-1.6-1.6-1.6" fill="#c94747"/><path d="m48.7 51.4v2.3c0 .4-.3.8-.8.8h-.8v-1.5c0-1.2 1.6-1.6 1.6-1.6" fill="#ed4c5c"/><path fill="#83bf4f" d="m47.3 54.5h.4v5.5h-.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e2.svg
index ea0ac4d..0f38711 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m25.672 3.147h28.524v50.39h-28.524z"/><path fill="#dae3ea" d="m14.688 0h33.574v4.197h-33.574z"/><path fill="#3e4347" d="m1.902 3.147h9.508v50.39h-9.508z"/><path fill="#b2c1c0" d="m25.672 53.54h33.28v10.459h-33.28z"/><g fill="#b4d7ee"><path d="m30.426 53.54h4.754v10.459h-4.754z"/><path d="m39.935 53.54h4.754v10.459h-4.754z"/><path d="m49.44 53.54h4.754v10.459h-4.754z"/><path d="m49.44 43.08h9.509v4.754h-9.509z"/><path d="m49.44 32.623h9.509v4.754h-9.509z"/><path d="m49.44 22.16h9.509v4.754h-9.509z"/><path d="m49.44 11.705h9.509v4.754h-9.509z"/><path d="m39.935 43.08h4.754v4.754h-4.754z"/><path d="m39.935 32.623h4.754v4.754h-4.754z"/><path d="m39.935 22.16h4.754v4.754h-4.754z"/><path d="m39.935 11.705h4.754v4.754h-4.754z"/><path d="m30.426 43.08h4.754v4.754h-4.754z"/><path d="m30.426 32.623h4.754v4.754h-4.754z"/><path d="m30.426 22.16h4.754v4.754h-4.754z"/><path d="m30.426 11.705h4.754v4.754h-4.754z"/></g><g fill="#3e4347"><path d="m25.672 47.836h35.18v5.705h-35.18z"/><path d="m25.672 37.38h35.18v5.705h-35.18z"/><path d="m25.672 26.918h35.18v5.705h-35.18z"/><path d="m25.672 16.459h35.18v5.705h-35.18z"/><path d="m25.672 3.147h35.18v8.558h-35.18z"/></g><g fill="#b4d7ee"><path d="m11.41 5.05h14.263v48.49h-14.263z"/><path d="m1.902 53.54h23.771v10.459h-23.771z"/></g><path fill="#dae3ea" d="m0 50.688h25.672v2.853h-25.672z"/><g fill="#d6eef0"><path d="m11.41 38.804h14.263v2.852h-14.263z"/><path d="m11.41 28.344h14.263v2.853h-14.263z"/><path d="m11.41 17.885h14.263v2.853h-14.263z"/><path d="m11.41 7.426h14.263v2.853h-14.263z"/></g><path fill="#f5f5f5" d="m11.41 4.098h14.263v.951h-14.263z"/><g fill="#3e4347"><path opacity=".5" d="m11.41 4.098h.951v46.59h-.951z"/><g opacity=".5"><path d="m49.44 11.705v.951 3.803h.95v-3.803h8.561v-.951z"/><path d="m39.935 12.656v3.803h.95v-3.803h3.803v-.951h-4.753z"/><path d="m30.426 12.656v3.803h.951v-3.803h3.803v-.951h-4.754z"/></g><g opacity=".5"><path d="m49.44 22.16v.95 3.808h.95v-3.808h8.561v-.95z"/><path d="m39.935 23.11v3.808h.95v-3.808h3.803v-.95h-4.753z"/><path d="m30.426 23.11v3.808h.951v-3.808h3.803v-.95h-4.754z"/></g><g opacity=".5"><path d="m49.44 32.623v.951 3.806h.95v-3.806h8.561v-.951z"/><path d="m39.935 33.574v3.806h.95v-3.806h3.803v-.951h-4.753z"/><path d="m30.426 33.574v3.806h.951v-3.806h3.803v-.951h-4.754z"/></g><g opacity=".5"><path d="m49.44 43.08v.95 3.806h.95v-3.806h8.561v-.95z"/><path d="m39.935 44.03v3.806h.95v-3.806h3.803v-.95h-4.753z"/><path d="m30.426 44.03v3.806h.951v-3.806h3.803v-.95h-4.754z"/></g></g><path fill="#b2c1c0" d="m1.902 53.54h1.901v10.459h-1.901z"/><g fill="#f5f5f5"><path d="m11.636 54.49h.951v9.508h-.951z"/><path d="m11.636 54.49h8.559v.95h-8.559z"/><path d="m11.636 63.05h8.559v.951h-8.559z"/><path d="m15.439 54.49h.951v9.508h-.951z"/><path d="m19.244 54.49h.951v9.508h-.951z"/></g><path opacity=".5" fill="#3e4347" d="m1.902 53.54v.95h1.901v9.51h.951v-9.51h25.672v9.51h.951v-9.51h8.558v9.51h.95v-9.51h8.555v9.51h.95v-9.51h8.561v-.95z"/><path fill="#83bf4f" d="m26.23 61.901h37.771v1.05h-37.771z"/><path fill="#dae3ea" d="M 25.18,62.951 H64 V64 H25.18 z"/><path fill="#83bf4f" d="m62.903 59.52c.216-.365.35-.786.35-1.246 0-1.345-1.085-2.438-2.423-2.438-.051 0-.104.016-.154.021v-.302c0-.688-.558-1.248-1.241-1.248-.302 0-.576.115-.789.294-.159-.871-.919-1.538-1.83-1.538-1.028 0-1.859.839-1.859 1.872 0 .139.02.277.048.412-.321-.257-.714-.412-1.155-.412-.743 0-1.376.44-1.678 1.074-.252-.084-.52-.142-.8-.142-1.372 0-2.479 1.116-2.479 2.493 0 .568.198 1.091.519 1.507-.32.342-.519.793-.519 1.299 0 1.027.83 1.868 1.861 1.868h9.795c.364.284.804.487 1.307.487 1.184 0 2.146-.97 2.146-2.163-.002-.792-.457-1.464-1.099-1.838"/><g fill="#699635"><path d="m48.892 61.17c0-.506.198-.957.519-1.299-.32-.416-.519-.938-.519-1.507 0-1.377 1.107-2.493 2.479-2.493.28 0 .548.058.8.142.191-.404.517-.728.924-.911.648.29 1.106.943 1.106 1.703 0 .183-.034.357-.084.525.167-.082.351-.135.553-.135.682 0 1.239.56 1.239 1.249 0 .472-.269.879-.654 1.085.28.37.455.824.455 1.327 0 1.192-.95 2.157-2.131 2.179v.003h-2.826c-1.031 0-1.861-.841-1.861-1.868"/><path d="m53.01 61.44c0 .691.558-.268 1.243-.268.69 0 1.235.959 1.235.268 0-.684-.545-1.246-1.235-1.246-.685-.001-1.243.562-1.243 1.246"/><path d="m56.651 59.26c0 .346.273 0 .616 0 .351 0 .624.346.624 0 0-.341-.273-.619-.624-.619-.342 0-.616.278-.616.619"/><path d="m61.23 61.6c0 .352.281 0 .626 0 .339 0 .616.352.616 0 0-.341-.277-.622-.616-.622-.345 0-.626.281-.626.622"/></g><g fill="#83bf4f"><path d="m58.56 57.58c0 .345.272-.108.617-.108.339 0 .624.453.624.108 0-.352-.285-.628-.624-.628-.345 0-.617.277-.617.628"/><path d="m60.664 59.38c0 .346.273-.102.622-.102.343 0 .615.447.615.102 0-.343-.272-.624-.615-.624-.348 0-.622.281-.622.624"/><path d="m52.708 60.55c0 .465.373-.228.842-.228.462 0 .833.692.833.228 0-.468-.371-.848-.833-.848-.469 0-.842.38-.842.848"/><path d="m50.3 58.21c0 .697.559-.396 1.245-.396.693 0 1.248 1.093 1.248.396 0-.69-.555-1.251-1.248-1.251-.687 0-1.245.561-1.245 1.251"/><path d="m50.26 61.17c0 .345.274 0 .617 0 .349 0 .622.345.622 0 0-.348-.273-.625-.622-.625-.343 0-.617.277-.617.625"/><path d="m55.81 56.19c0 .464.373-.234.836-.234.47 0 .841.698.841.234 0-.471-.371-.846-.841-.846-.463 0-.836.375-.836.846"/></g><path fill="#699635" d="m58.13 61.743c0 .464.373-.235.836-.235.47 0 .842.699.842.235 0-.471-.372-.846-.842-.846-.463 0-.836.375-.836.846"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m26 6h20v48h-20z"/><path fill="#dae3ea" d="m16 2h32v4h-32z"/><path fill="#3e4347" d="m4 6h10v46h-10z"/><path fill="#b2c1c0" d="m26 52h28v8h-28z"/><g fill="#b4d7ee"><path d="m30 52h4v8h-4z"/><path d="m38 52h4v8h-4z"/><path d="m46 52h4v8h-4z"/><path d="m46 42h10v4h-10z"/><path d="m46 32h10v4h-10z"/><path d="m46 22h10v4h-10z"/><path d="m46 12h10v4h-10z"/><path d="m38 42h4v4h-4z"/><path d="m38 32h4v4h-4z"/><path d="m38 22h4v4h-4z"/><path d="m38 12h4v4h-4z"/><path d="m30 42h4v4h-4z"/><path d="m30 32h4v4h-4z"/><path d="m30 22h4v4h-4z"/><path d="m30 12h4v4h-4z"/></g><g fill="#3e4347"><path d="m26 46h32v6h-32z"/><path d="m26 36h32v6h-32z"/><path d="m26 26h32v6h-32z"/><path d="m26 16h32v6h-32z"/><path d="m26 6h32v6h-32z"/></g><g fill="#b4d7ee"><path d="m14 8h12v44h-12z"/><path d="m4 52h22v10h-22z"/></g><path fill="#dae3ea" d="m2 50h24v2h-24z"/><g fill="#d6eef0"><path d="m14 38h12v2h-12z"/><path d="m14 28h12v2h-12z"/><path d="m14 18h12v2h-12z"/><path d="m14 10h12v2h-12z"/></g><path fill="#f5f5f5" d="m14 6h12v2h-12z"/><path fill="#b2c1c0" d="m4 52h2v10h-2z"/><g fill="#f5f5f5"><path d="m10 52h1.3v10h-1.3z"/><path d="m10 52h12v1.1h-12z"/><path d="m10 60.9h12v1.1h-12z"/><path d="m15.3 52h1.3v10h-1.3z"/><path d="m20.7 52h1.3v10h-1.3z"/></g><path fill="#83bf4f" d="m26 58h36v2h-36z"/><path fill="#dae3ea" d="m24 60h38v2h-38z"/><path d="m61 57.8c.2-.3.3-.7.3-1.2 0-1.3-1-2.3-2.3-2.3 0 0-.1 0-.1 0v-.3c0-.6-.5-1.2-1.2-1.2-.3 0-.5.1-.7.3-.1-.8-.9-1.4-1.7-1.4-1 0-1.7.8-1.7 1.8 0 .1 0 .3 0 .4-.3-.2-.7-.4-1.1-.4-.7 0-1.3.4-1.6 1-.2-.1-.5-.1-.8-.1-1.3 0-2.3 1-2.3 2.3 0 .5.2 1 .5 1.4-.3.3-.5.7-.5 1.2 0 1 .8 1.8 1.7 1.8h9.2c.3.3.8.5 1.2.5 1.1 0 2-.9 2-2 .1-.8-.3-1.4-.9-1.8" fill="#83bf4f"/><g fill="#699635"><path d="m51.7 59.6c0 .6.5-.3 1.2-.3.6 0 1.2.9 1.2.3 0-.6-.5-1.2-1.2-1.2-.7 0-1.2.6-1.2 1.2"/><path d="m55.1 57.6c0 .3.3 0 .6 0 .3 0 .6.3.6 0 0-.3-.3-.6-.6-.6-.3 0-.6.2-.6.6"/><path d="m59.4 59.7c0 .3.3 0 .6 0 .3 0 .6.3.6 0 0-.3-.3-.6-.6-.6-.3.1-.6.3-.6.6"/></g><g fill="#b5f478"><path d="m56.9 56c0 .3.3-.1.6-.1.3 0 .6.4.6.1 0-.3-.3-.6-.6-.6-.3 0-.6.2-.6.6"/><path d="m58.9 57.7c0 .3.3-.1.6-.1.3 0 .6.4.6.1 0-.3-.3-.6-.6-.6-.4 0-.6.2-.6.6"/></g><g fill="#699635"><path d="m49.2 56.6c0 .7.5-.4 1.2-.4.7 0 1.2 1 1.2.4 0-.6-.5-1.2-1.2-1.2-.7 0-1.2.5-1.2 1.2"/><path d="m49.1 59.3c0 .3.3 0 .6 0 .3 0 .6.3.6 0 0-.3-.3-.6-.6-.6-.3.1-.6.3-.6.6"/></g><path d="m54.3 54.7c0 .4.3-.2.8-.2.4 0 .8.7.8.2 0-.4-.3-.8-.8-.8-.4 0-.8.3-.8.8" fill="#b5f478"/><path d="m56.5 59.9c0 .4.3-.2.8-.2.4 0 .8.7.8.2 0-.4-.3-.8-.8-.8-.5 0-.8.3-.8.8" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e3.svg
index 58bced5..db2004f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#b2c1c0" d="m63 60h-62c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h62c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path fill="#e8e8e8" d="m6 14h52v46h-52z"/><path fill="#3e4347" d="m64 16h-64l5-16h54z"/><g fill="#62727a"><path d="m11 24h8v14h-8z"/><path d="m45 24h8v14h-8z"/></g><g fill="#b4d7ee"><path d="m13 26h4v10h-4z"/><path d="m47 26h4v10h-4z"/></g><g fill="#62727a"><path d="m11.75 30h6.5v2h-6.5z"/><path d="m45.75 30h6.5v2h-6.5z"/></g><g fill="#fff"><path d="m11 44h42v16h-42z"/><path d="m32 41l13.5 6h4.5l-18-8-18 8h4.5z"/></g><g fill="#f15744"><path d="m24 22h16v4h-16z"/><path d="m24 28h16v4h-16z"/><path d="m30 30h4v6h-4z"/></g><path fill="#62727a" d="m64 16l-4.523-14.477-2.477 2.477-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-4l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-2.477-2.477-4.523 14.477h5l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h18l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h5m-57-5l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3m22 0l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3"/><circle fill="#e8e8e8" cx="32" cy="12" r="8"/><circle fill="#3e4347" cx="32" cy="12" r="6"/><g fill="#b4d7ee"><path d="m13 46h6v14h-6z"/><path d="m21 46h6v14h-6z"/><path d="m29 46h6v14h-6z"/><path d="m37 46h6v14h-6z"/><path d="m45 46h6v14h-6z"/></g><g fill="#62727a"><path d="m13 46h6v4h-6z"/><path d="m21 46h6v4h-6z"/><path d="m37 46h6v4h-6z"/><path d="m45 46h6v4h-6z"/><path d="m29 46h6v4h-6z"/></g><path fill="#b2c1c0" d="m9 21.5c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v3" id="0"/><path fill="#b2c1c0" d="m7 27.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v3"/><use xlink:href="#0"/><g fill="#b2c1c0"><path d="m7 39.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v3"/><path d="m9 33.5c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v3"/><path d="m7 51.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v3"/><path d="m9 45.5c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v3"/><path d="m9 57.5c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v3"/></g><path fill="#b2c1c0" d="m55 21.5c0 .275.225.5.5.5h3c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v3" id="1"/><path fill="#b2c1c0" d="m57 27.5c0 .275.225.5.5.5h1c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-1c-.275 0-.5.225-.5.5v3"/><use xlink:href="#1"/><g fill="#b2c1c0"><path d="m57 39.5c0 .275.225.5.5.5h1c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-1c-.275 0-.5.225-.5.5v3"/><path d="m55 33.5c0 .275.225.5.5.5h3c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v3"/><path d="m57 51.5c0 .275.225.5.5.5h1c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-1c-.275 0-.5.225-.5.5v3"/><path d="m55 45.5c0 .275.225.5.5.5h3c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v3"/><path d="m55 57.5c0 .275.225.5.5.5h3c.275 0 .5-.225.5-.5v-3c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v3"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h62c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1" fill="#b2c1c0"/><path fill="#e8e8e8" d="m6 14h52v46h-52z"/><path fill="#3e4347" d="m64 16h-64l5-16h54z"/><g fill="#62727a"><path d="m11 24h8v14h-8z"/><path d="m45 24h8v14h-8z"/></g><g fill="#b4d7ee"><path d="m13 26h4v10h-4z"/><path d="m47 26h4v10h-4z"/></g><g fill="#62727a"><path d="m11.8 30h6.5v2h-6.5z"/><path d="m45.8 30h6.5v2h-6.5z"/></g><g fill="#fff"><path d="m11 44h42v16h-42z"/><path d="m32 41l13.5 6h4.5l-18-8-18 8h4.5z"/></g><g fill="#f15744"><path d="m24 22h16v4h-16z"/><path d="m24 28h16v4h-16z"/><path d="m30 30h4v6h-4z"/></g><path d="m64 16l-4.5-14.5-2.5 2.5-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-4l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-3-3 1-1h-3l1 1-3 3-2.5-2.5-4.5 14.5h5l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h18l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h3l-1-1 3-3 3 3-1 1h5m-57-5l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3m22 0l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3m7 0l-3-3 3-3 3 3-3 3" fill="#62727a"/><circle cx="32" cy="12" r="8" fill="#e8e8e8"/><circle cx="32" cy="12" r="6" fill="#3e4347"/><g fill="#b4d7ee"><path d="m13 46h6v14h-6z"/><path d="m21 46h6v14h-6z"/><path d="m29 46h6v14h-6z"/><path d="m37 46h6v14h-6z"/><path d="m45 46h6v14h-6z"/></g><g fill="#62727a"><path d="m13 46h6v4h-6z"/><path d="m21 46h6v4h-6z"/><path d="m37 46h6v4h-6z"/><path d="m45 46h6v4h-6z"/><path d="m29 46h6v4h-6z"/></g><path d="m9 21.5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3" fill="#b2c1c0" id="0"/><path d="m7 27.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v3" fill="#b2c1c0"/><use xlink:href="#0"/><g fill="#b2c1c0"><path d="m7 39.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v3"/><path d="m9 33.5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3"/><path d="m7 51.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v3"/><path d="m9 45.5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3"/><path d="m9 57.5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3"/></g><path d="m55 21.5c0 .3.2.5.5.5h3c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-3c-.3 0-.5.2-.5.5v3" fill="#b2c1c0" id="1"/><path d="m57 27.5c0 .3.2.5.5.5h1c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5v3" fill="#b2c1c0"/><use xlink:href="#1"/><g fill="#b2c1c0"><path d="m57 39.5c0 .3.2.5.5.5h1c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5v3"/><path d="m55 33.5c0 .3.2.5.5.5h3c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-3c-.3 0-.5.2-.5.5v3"/><path d="m57 51.5c0 .3.2.5.5.5h1c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-1c-.3 0-.5.2-.5.5v3"/><path d="m55 45.5c0 .3.2.5.5.5h3c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-3c-.3 0-.5.2-.5.5v3"/><path d="m55 57.5c0 .3.2.5.5.5h3c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-3c-.3 0-.5.2-.5.5v3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e4.svg
index d2e17db..8359ad4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m63 60h-62c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h62c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path fill="#428bc1" d="m64 17c0 .55-.45 1-1 1h-62c-.55 0-1-.45-1-1v-14c0-.55.45-1 1-1h62c.55 0 1 .45 1 1v14"/><path fill="#62727a" d="m2 18h60v42h-60z"/><g fill="#fff"><path d="m2 20h60v10h-60z"/><path d="m2 32h60v10h-60z"/></g><path fill="#d0d0d0" d="m2 0h60v2h-60z"/><path fill="#ffe62e" d="m22.824 6.05c0 2.765-1.609 5.15-3.944 6.297.629-.867 1-1.927 1-3.077 0-2.91-2.369-5.268-5.295-5.268-2.796 0-5.08 2.158-5.275 4.892-.387-.87-.605-1.83-.605-2.844h-4.708c0 5.496 4.478 9.952 10 9.952s10-4.456 10-9.952h-1.176m-8.236-.293c1.948 0 3.53 1.574 3.53 3.513 0 1.94-1.582 3.513-3.53 3.513-1.945 0-3.529-1.572-3.529-3.513 0-1.939 1.584-3.513 3.529-3.513"/><g fill="#b4d7ee"><path d="m4.5 22h4v6h-4z"/><path d="m10.5 22h4v6h-4z"/><path d="m19.5 22h4v6h-4z"/><path d="m25.5 22h4v6h-4z"/><path d="m34.5 22h4v6h-4z"/><path d="m40.5 22h4v6h-4z"/><path d="m49.5 22h4v6h-4z"/><path d="m55.5 22h4v6h-4z"/><path d="m4.5 34h4v6h-4z"/><path d="m10.5 34h4v6h-4z"/><path d="m19.5 34h4v6h-4z"/><path d="m25.5 34h4v6h-4z"/><path d="m34.5 34h4v6h-4z"/><path d="m40.5 34h4v6h-4z"/><path d="m49.5 34h4v6h-4z"/><path d="m55.5 34h4v6h-4z"/></g><path fill="#ffe62e" d="m21 44v16h2v-12h18v12h2v-16z"/><g fill="#b4d7ee"><path d="m27 48h4v12h-4z"/><path d="m33 48h4v12h-4z"/></g><g fill="#fff"><path d="m31 48h2v12h-2z"/><path d="m37 48h2v12h-2z"/><path d="m25 48h2v12h-2z"/><path d="m26 53h12v2h-12z"/><path d="m43 48h16v10h-16z"/><path d="m5 48h16v10h-16z"/></g><g fill="#b4d7ee"><path d="m43 50h14v6h-14z"/><path d="m7 50h14v6h-14z"/></g><g fill="#fff"><path d="m13 49h2v8h-2z"/><path d="m49 49h2v8h-2z"/></g><g fill="#ffe62e"><path d="m28 5.287c.63-.114 1.514-.201 2.76-.201 1.261 0 2.158.259 2.762.776.576.488.965 1.293.965 2.241s-.295 1.753-.831 2.299c-.696.704-1.729 1.021-2.935 1.021-.269 0-.51-.016-.697-.044v3.463h-2.024v-9.555m2.023 4.397c.174.043.389.058.684.058 1.086 0 1.756-.59 1.756-1.58 0-.891-.576-1.423-1.596-1.423-.415 0-.695.043-.844.087v2.858"/><path d="m44.42 9.899c0 3.175-1.795 5.101-4.436 5.101-2.68 0-4.248-2.17-4.248-4.929 0-2.902 1.73-5.071 4.396-5.071 2.774 0 4.288 2.227 4.288 4.899m-6.526.129c0 1.896.83 3.232 2.197 3.232 1.381 0 2.171-1.407 2.171-3.29 0-1.738-.776-3.232-2.185-3.232-1.38 0-2.183 1.408-2.183 3.29"/><path d="m46.2 12.585c.551.303 1.395.604 2.266.604.938 0 1.434-.417 1.434-1.049 0-.604-.429-.948-1.515-1.365-1.501-.56-2.479-1.451-2.479-2.858 0-1.652 1.286-2.917 3.417-2.917 1.018 0 1.769.229 2.305.488l-.455 1.768c-.361-.188-1.01-.46-1.89-.46-.886 0-1.313.431-1.313.934 0 .617.51.891 1.675 1.365 1.596.632 2.346 1.523 2.346 2.888 0 1.624-1.167 3-3.646 3-1.031 0-2.051-.287-2.56-.59l.415-1.811"/><path d="M55.484,6.997h-2.427v-1.84H60v1.84h-2.466v7.845h-2.05V6.997z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h62c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1" fill="#b2c1c0"/><path d="m64 17c0 .5-.5 1-1 1h-62c-.6 0-1-.5-1-1v-14c0-.5.4-1 1-1h62c.5 0 1 .5 1 1v14" fill="#428bc1"/><path fill="#62727a" d="m2 18h60v42h-60z"/><g fill="#fff"><path d="m2 20h60v10h-60z"/><path d="m2 32h60v10h-60z"/></g><path fill="#d0d0d0" d="m2 0h60v2h-60z"/><path d="m22.8 6c0 2.8-1.6 5.2-3.9 6.3.6-.9 1-1.9 1-3.1 0-2.9-2.4-5.3-5.3-5.3-2.8 0-5.1 2.2-5.3 4.9-.4-.8-.6-1.7-.6-2.8h-4.7c0 5.5 4.5 10 10 10s10-4.5 10-10c0 0-1.2 0-1.2 0m-8.2-.2c1.9 0 3.5 1.6 3.5 3.5 0 1.9-1.6 3.5-3.5 3.5-1.9 0-3.5-1.6-3.5-3.5 0-2 1.5-3.5 3.5-3.5" fill="#ffe62e"/><g fill="#b4d7ee"><path d="m4.5 22h4v6h-4z"/><path d="m10.5 22h4v6h-4z"/><path d="m19.5 22h4v6h-4z"/><path d="m25.5 22h4v6h-4z"/><path d="m34.5 22h4v6h-4z"/><path d="m40.5 22h4v6h-4z"/><path d="m49.5 22h4v6h-4z"/><path d="m55.5 22h4v6h-4z"/><path d="m4.5 34h4v6h-4z"/><path d="m10.5 34h4v6h-4z"/><path d="m19.5 34h4v6h-4z"/><path d="m25.5 34h4v6h-4z"/><path d="m34.5 34h4v6h-4z"/><path d="m40.5 34h4v6h-4z"/><path d="m49.5 34h4v6h-4z"/><path d="m55.5 34h4v6h-4z"/></g><path fill="#ffe62e" d="m21 44v16h2v-12h18v12h2v-16z"/><g fill="#b4d7ee"><path d="m27 48h4v12h-4z"/><path d="m33 48h4v12h-4z"/></g><g fill="#fff"><path d="m31 48h2v12h-2z"/><path d="m37 48h2v12h-2z"/><path d="m25 48h2v12h-2z"/><path d="m26 53h12v2h-12z"/><path d="m43 48h16v10h-16z"/><path d="m5 48h16v10h-16z"/></g><g fill="#b4d7ee"><path d="m43 50h14v6h-14z"/><path d="m7 50h14v6h-14z"/></g><g fill="#fff"><path d="m13 49h2v8h-2z"/><path d="m49 49h2v8h-2z"/></g><g fill="#ffe62e"><path d="m28 5.3c.6-.1 1.5-.2 2.8-.2 1.3 0 2.2.3 2.8.8.6.5 1 1.3 1 2.2s-.3 1.8-.8 2.3c-.7.7-1.7 1-2.9 1-.3 0-.5 0-.7 0v3.5h-2v-9.6zm2 4.4c.2 0 .4.1.7.1 1.1 0 1.8-.6 1.8-1.6 0-.9-.6-1.4-1.6-1.4-.4 0-.7 0-.8.1v2.8z"/><path d="m44.4 9.9c0 3.2-1.8 5.1-4.4 5.1-2.7 0-4.2-2.2-4.2-4.9 0-2.9 1.7-5.1 4.4-5.1 2.7 0 4.2 2.2 4.2 4.9m-6.5.1c0 1.9.8 3.2 2.2 3.2 1.4 0 2.2-1.4 2.2-3.3 0-1.7-.8-3.2-2.2-3.2-1.4 0-2.2 1.4-2.2 3.3"/><path d="m46.2 12.6c.6.3 1.4.6 2.3.6.9 0 1.4-.4 1.4-1 0-.6-.4-.9-1.5-1.4-1.5-.6-2.5-1.5-2.5-2.9 0-1.7 1.3-2.9 3.4-2.9 1 0 1.8.2 2.3.5l-.5 1.8c-.4-.2-1-.5-1.9-.5-.9 0-1.3.4-1.3.9 0 .6.5.9 1.7 1.4 1.6.6 2.4 1.5 2.4 2.9 0 1.6-1.2 3-3.6 3-1 0-2.1-.3-2.6-.6l.4-1.8"/><path d="M55.5,7h-2.4V5.2H60V7h-2.5v7.8h-2V7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e5.svg
index 9877c18..448460d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="m40 18h-26c-2.2 0-4 1.8-4 4v38h34v-38c0-2.2-1.8-4-4-4"/><g fill="#62727a"><path d="m60 36h-34c-1.1 0-2 .899-2 2v22h38v-22c0-1.101-.9-2-2-2"/><path d="M7,36c-0.55,0-1.25,0.374-1.555,0.832l-2.891,4.336C2.25,41.626,2,42.45,2,43v17h8V36H7z"/></g><path fill="#b4d7ee" d="m12 53h10v7h-10z"/><path fill="#62727a" d="m63 60h-62c-.55 0-1 .451-1 1v2c0 .551.45 1 1 1h62c.55 0 1-.449 1-1v-2c0-.549-.45-1-1-1"/><g fill="#b4d7ee"><path d="m14 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m18 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m22 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m26 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m30 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m14 42.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m18 42.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m22 42.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m14 50.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m18 50.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m22 50.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m32 44h30v16h-30z"/><path d="m7 46.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m7 55.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/></g><g fill="#fff"><path d="m21 53h-8-1v1 6h1v-6h3.5v6h1v-6h3.5v6h1v-6-1z"/><path d="m17.5 56h-1c-.275 0-.5.227-.5.5v1c0 .275.225.5.5.5h1c.275 0 .5-.225.5-.5v-1c0-.273-.225-.5-.5-.5"/></g><path fill="#b2c1c0" d="m13 60h8v2h-8z"/><path fill="#e8e8e8" d="m13 62h8v2h-8z"/><path fill="#fff" d="m33 44h29v-2h-31c-.55 0-1 .45-1 1v17h2v-3c0-.549.45-1 1-1h29v-2h-29c-.55 0-1-.449-1-1v-2c0-.55.45-1 1-1h29v-2h-29c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1"/><g fill="#b4d7ee"><path d="m14 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m18 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m22 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m26 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m30 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m34 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m34 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m38 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m38 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m42 34.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/><path d="m42 26.5c0 .274-.225.5-.5.5h-1c-.275 0-.5-.226-.5-.5v-5c0-.274.225-.5.5-.5h1c.275 0 .5.226.5.5v5"/></g><path fill="#b2c1c0" d="m19 8h16v10h-16z"/><circle fill="#e8e8e8" cx="27" cy="8" r="8"/><path fill="#f15744" d="m32 6h-3v-3c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h-3c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3h3c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40 18h-26c-2.2 0-4 1.8-4 4v38h34v-38c0-2.2-1.8-4-4-4" fill="#e8e8e8"/><g fill="#62727a"><path d="m60 36h-34c-1.1 0-2 .9-2 2v22h38v-22c0-1.1-.9-2-2-2"/><path d="m7 36c-.6 0-1.2.4-1.6.8l-2.9 4.3c-.3.5-.5 1.4-.5 1.9v17h8v-24h-3"/></g><path fill="#b4d7ee" d="m12 53h10v7h-10z"/><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .6.4 1 1 1h62c.5 0 1-.4 1-1v-2c0-.5-.5-1-1-1" fill="#62727a"/><g fill="#b4d7ee"><path d="m14 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m18 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m22 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m26 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m30 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m14 42.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m18 42.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m22 42.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m14 50.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m18 50.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m22 50.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m32 44h30v16h-30z"/><path d="m7 46.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m7 55.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/></g><g fill="#fff"><path d="m21 53h-8-1v1 6h1v-6h3.5v6h1v-6h3.5v6h1v-6-1z"/><path d="m17.5 56h-1c-.3 0-.5.2-.5.5v1c0 .3.2.5.5.5h1c.3 0 .5-.2.5-.5v-1c0-.3-.2-.5-.5-.5"/></g><path fill="#b2c1c0" d="m13 60h8v2h-8z"/><path fill="#e8e8e8" d="m13 62h8v2h-8z"/><path d="m33 44h29v-2h-31c-.5 0-1 .5-1 1v17h2v-3c0-.5.5-1 1-1h29v-2h-29c-.5 0-1-.4-1-1v-2c0-.5.5-1 1-1h29v-2h-29c-.5 0-1-.5-1-1v-2c0-.5.5-1 1-1" fill="#fff"/><g fill="#b4d7ee"><path d="m14 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m18 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m22 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m26 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m30 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m34 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m34 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m38 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m38 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m42 34.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/><path d="m42 26.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-5c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v5"/></g><path fill="#b2c1c0" d="m19 8h16v10h-16z"/><circle cx="27" cy="8" r="8" fill="#e8e8e8"/><path d="m32 6h-3v-3c0-.5-.5-1-1-1h-2c-.5 0-1 .5-1 1v3h-3c-.5 0-1 .4-1 1v2c0 .6.5 1 1 1h3v3c0 .6.5 1 1 1h2c.5 0 1-.4 1-1v-3h3c.5 0 1-.4 1-1v-2c0-.6-.5-1-1-1" fill="#f15744"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e6.svg
index f00fd7e..dee2c6f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4d4d4d" d="m9.5 31.499h45v24.876h-45z"/><g fill="#acb8bf"><path d="m2 60.13h60v1.875h-60z"/><path d="m9.5 56.38h45v1.875h-45z"/><path d="m17 52.625h30v1.875h-30z"/></g><path fill="#89664c" d="m41 36.9h7v12h-7z"/><path fill="#b4d7ee" d="m42 37.9h5v10h-5z"/><g fill="#89664c"><path d="m44 37.4h1v11h-1z"/><path d="m16 36.9h7v12h-7z"/></g><path fill="#b4d7ee" d="m17 37.9h5v10h-5z"/><path fill="#89664c" d="m19 37.4h1v11h-1z"/><g fill="#dae3ea"><path d="m5.75 58.25h52.5v1.875h-52.5z"/><path d="m13.25 54.5h37.5v1.875h-37.5z"/></g><path fill="#94989b" d="m4.813 27.769h54.38v1.877h-54.37z"/><path fill="#dae3ea" d="m2 29.646h60v1.877h-60z"/><path fill="#94989b" d="M31.989 4.84 2 21.235 4.512 24.989 31.989 6.691 59.49 24.989 62 21.235z"/><g fill="#dae3ea"><path d="M31.989 2 2 21.235 2 24.05 31.989 4.814 62 24.05 62 21.235z"/><path d="m31.989 6.691l-29.989 19.237v1.876h60v-1.876z"/></g><path fill="#acb8bf" d="m31.989 9.482l-24.907 16.446h49.836z"/><path fill="#fff" d="m32 17.401c-.985 0-1.787-.704-1.787-1.571s.802-1.572 1.787-1.572 1.787.705 1.787 1.572h1.787c0-1.461-1.144-2.679-2.681-3.03v-.897h-1.787v.897c-1.537.353-2.681 1.57-2.681 3.03 0 1.732 1.604 3.142 3.574 3.142.985 0 1.787.705 1.787 1.571 0 .867-.802 1.572-1.787 1.572s-1.787-.705-1.787-1.572h-1.787c0 1.461 1.144 2.679 2.681 3.03v.897h1.787v-.897c1.537-.353 2.681-1.57 2.681-3.03 0-1.732-1.603-3.142-3.574-3.142"/><path fill="#dae3ea" d="m6.5 33.473h6v22.742h-6z"/><g fill="#94989b"><path d="m5.75 56.22h7.5v2.035h-7.5z"/><path d="m5.75 31.499h7.5v1.974h-7.5z"/></g><g fill="#c8d0d6"><path d="m7.099 34.384h.708v20.98h-.708z"/><path d="m11.192 34.384h.708v20.98h-.708z"/><path d="m9.828 34.384h.707v20.98h-.707z"/><path d="m8.464 34.384h.707v20.98h-.707z"/></g><path fill="#dae3ea" d="m51.5 33.473h6v22.742h-6z"/><g fill="#94989b"><path d="m50.75 56.22h7.5v2.035h-7.5z"/><path d="m50.75 31.499h7.5v1.974h-7.5z"/></g><g fill="#c8d0d6"><path d="m52.1 34.384h.708v20.98h-.708z"/><path d="m56.19 34.384h.708v20.98h-.708z"/><path d="m54.828 34.384h.707v20.98h-.707z"/><path d="m53.46 34.384h.707v20.98h-.707z"/></g><path fill="#89664c" d="m26.63 42.26v9.808h10.74v-9.808c0-7.214-10.74-7.103-10.74 0"/><path fill="#594640" d="m27.416 42.678v9.393h9.168v-9.393c0-6.711-9.168-6.609-9.168 0"/><path fill="#a37d64" d="m27.563 42.754v9.316h8.873v-9.316c.001-6.617-8.873-6.516-8.873 0"/><path fill="#94989b" d="m26.07 52.07h11.852v.555h-11.852z"/><g fill="#594640"><path d="m32.586 42.537h3.082c-.12-2.233-1.535-3.447-3.082-3.659v3.659"/><path d="m31.555 42.537v-3.652c-1.545.229-2.96 1.453-3.082 3.652h3.082"/></g><g fill="#89664c"><path d="m32.502 42.476h3.081c-.12-2.233-1.536-3.447-3.081-3.659v3.659"/><path d="m31.469 42.476v-3.654c-1.544.229-2.959 1.454-3.08 3.654h3.08"/></g><g fill="#594640"><path d="m32.586 43.543h3.092v3.047h-3.092z"/><path d="m28.465 43.543h3.091v3.047h-3.091z"/></g><g fill="#89664c"><path d="m32.502 43.481h3.091v3.047h-3.091z"/><path d="m28.38 43.481h3.09v3.047h-3.09z"/></g><g fill="#594640"><path d="m32.586 47.902h3.092v3.047h-3.092z"/><path d="m28.465 47.902h3.091v3.047h-3.091z"/></g><g fill="#89664c"><path d="m32.502 47.841h3.091v3.048h-3.091z"/><path d="m28.38 47.841h3.09v3.048h-3.09z"/></g><path fill="#dae3ea" d="m34.862 44.825h1.296v2.591h-1.296z"/><path fill="#acb8bf" d="m34.955 44.917h1.111v2.407h-1.111z"/><path fill="#3e4347" d="m35.697 47.11l-.077-.494c.046-.034.075-.089.075-.149 0-.103-.083-.186-.185-.186s-.185.083-.185.186c0 .061.029.115.074.149l-.077.494h.375"/><circle fill="#94989b" cx="35.51" cy="45.595" r=".532"/><circle fill="#dae3ea" cx="35.51" cy="45.501" r=".532"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4d4d4d" d="m9.5 31.5h45v24.9h-45z"/><g fill="#acb8bf"><path d="m2 60.1h60v1.9h-60z"/><path d="m9.5 56.4h45v1.9h-45z"/><path d="m17 52.6h30v1.9h-30z"/></g><path fill="#89664c" d="m41 36.9h7v12h-7z"/><path fill="#b4d7ee" d="m42 37.9h5v10h-5z"/><g fill="#89664c"><path d="m44 37.4h1v11h-1z"/><path d="m16 36.9h7v12h-7z"/></g><path fill="#b4d7ee" d="m17 37.9h5v10h-5z"/><path fill="#89664c" d="m19 37.4h1v11h-1z"/><g fill="#dae3ea"><path d="m5.8 58.2h52.5v1.9h-52.5z"/><path d="m13.2 54.5h37.5v1.9h-37.5z"/></g><path fill="#94989b" d="m4.8 27.8h54.4v1.9h-54.4z"/><path fill="#dae3ea" d="m2 29.6h60v1.9h-60z"/><path fill="#94989b" d="M32 4.8 2 21.2 4.5 25 32 6.7 59.5 25 62 21.2z"/><g fill="#dae3ea"><path d="m32 2l-30 19.2v2.9l30-19.3 30 19.3v-2.9z"/><path d="m32 6.7l-30 19.2v1.9h60v-1.9z"/></g><path fill="#acb8bf" d="m32 9.5l-24.9 16.4h49.8z"/><path d="m32 17.4c-1 0-1.8-.7-1.8-1.6s.8-1.6 1.8-1.6 1.8.7 1.8 1.6h1.8c0-1.5-1.1-2.7-2.7-3v-.9h-1.8v.9c-1.5.4-2.7 1.6-2.7 3 0 1.7 1.6 3.1 3.6 3.1 1 0 1.8.7 1.8 1.6 0 .9-.8 1.6-1.8 1.6s-1.8-.7-1.8-1.6h-1.8c0 1.5 1.1 2.7 2.7 3v.9h1.8v-.9c1.5-.4 2.7-1.6 2.7-3 0-1.7-1.6-3.1-3.6-3.1" fill="#fff"/><path fill="#dae3ea" d="m6.5 33.5h6v22.7h-6z"/><g fill="#94989b"><path d="m5.8 56.2h7.5v2h-7.5z"/><path d="m5.8 31.5h7.5v2h-7.5z"/></g><g fill="#c8d0d6"><path d="m7.1 34.4h.7v21h-.7z"/><path d="m11.2 34.4h.7v21h-.7z"/><path d="m9.8 34.4h.7v21h-.7z"/><path d="m8.5 34.4h.7v21h-.7z"/></g><path fill="#dae3ea" d="m51.5 33.5h6v22.7h-6z"/><g fill="#94989b"><path d="m50.8 56.2h7.5v2h-7.5z"/><path d="m50.8 31.5h7.5v2h-7.5z"/></g><g fill="#c8d0d6"><path d="m52.1 34.4h.7v21h-.7z"/><path d="m56.2 34.4h.7v21h-.7z"/><path d="m54.8 34.4h.7v21h-.7z"/><path d="m53.5 34.4h.7v21h-.7z"/></g><path d="m26.6 42.3v9.8h10.7v-9.8c.1-7.3-10.7-7.1-10.7 0" fill="#89664c"/><path d="m27.4 42.7v9.4h9.2v-9.4c0-6.7-9.2-6.6-9.2 0" fill="#594640"/><path d="m27.6 42.8v9.3h8.9v-9.3c-.1-6.7-8.9-6.6-8.9 0" fill="#a37d64"/><path fill="#94989b" d="m26.1 52.1h11.9v.6h-11.9z"/><g fill="#594640"><path d="m32.6 42.5h3.1c-.1-2.2-1.5-3.4-3.1-3.7v3.7"/><path d="m31.6 42.5v-3.7c-1.5.2-3 1.5-3.1 3.7h3.1"/></g><g fill="#89664c"><path d="m32.5 42.5h3.1c-.1-2.2-1.5-3.4-3.1-3.7v3.7"/><path d="m31.5 42.5v-3.7c-1.5.2-3 1.5-3.1 3.7h3.1"/></g><g fill="#594640"><path d="m32.6 43.5h3.1v3h-3.1z"/><path d="m28.5 43.5h3.1v3h-3.1z"/></g><g fill="#89664c"><path d="m32.5 43.5h3.1v3h-3.1z"/><path d="m28.4 43.5h3.1v3h-3.1z"/></g><g fill="#594640"><path d="m32.6 47.9h3.1v3h-3.1z"/><path d="m28.5 47.9h3.1v3h-3.1z"/></g><g fill="#89664c"><path d="m32.5 47.8h3.1v3h-3.1z"/><path d="m28.4 47.8h3.1v3h-3.1z"/></g><path fill="#dae3ea" d="m34.9 44.8h1.3v2.6h-1.3z"/><path fill="#acb8bf" d="m35 44.9h1.1v2.4h-1.1z"/><path d="m35.7 47.1l-.1-.5c0 0 .1-.1.1-.1 0-.1-.1-.2-.2-.2s-.2.1-.2.2c0 .1 0 .1.1.1l-.1.5h.4" fill="#3e4347"/><circle cx="35.5" cy="45.6" r=".5" fill="#94989b"/><circle cx="35.5" cy="45.5" r=".5" fill="#dae3ea"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e7.svg
index 9533c9c..770f019 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e7.svg
@@ -1,2 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#44618b" d="M62,40c0,5.523-4.477,10-10,10H12C6.477,50,2,45.523,2,40V10C2,4.477,6.477,0,12,0h40
- c5.523,0,10,4.477,10,10V40z"/><path fill="#cad5dd" d="m49.679 26.27c0 1.471-1.192 2.662-2.665 2.662h-37.785c-1.471 0-2.663-1.191-2.663-2.662v-18.1c0-1.471 1.192-2.662 2.663-2.662h37.785c1.473 0 2.665 1.191 2.665 2.662v18.1"/><path fill="#fff" d="m49.679 28.05c0 1.471-1.192 2.662-2.665 2.662h-37.785c-1.471 0-2.663-1.191-2.663-2.662v-18.1c0-1.473 1.192-2.664 2.663-2.664h37.785c1.473 0 2.665 1.191 2.665 2.664v18.1"/><g fill="#333"><path d="m20.391 26.22h1.954l-4.04-14.447h-2.035l-4.04 14.447h1.955l1.311-4.691h3.582l1.313 4.691m-4.39-6.496l1.286-4.604 1.286 4.604h-2.572"/><path d="m20.898 11.771v1.807h4.112v12.642h1.89v-12.642h4.11v-1.807z"/><path d="m34.26 26.22v-10.15l2.719 10.15h2.514l2.717-10.15v10.15h1.8v-14.449h-2.519l-3.251 12.163-3.259-12.163h-2.524v14.449z"/></g><g fill="#2b4666"><path d="m55.25 34.436c0-1.104.896-2 2-2h4.75v7h-4.75c-1.104 0-2-.895-2-2v-3"/><path d="m55.25 24c0-1.105.896-2 2-2h4.75v7h-4.75c-1.104 0-2-.896-2-2v-3"/><path d="m55.25 13.564c0-1.105.896-2 2-2h4.75v7h-4.75c-1.104 0-2-.896-2-2v-3"/></g><g fill="#42ade2"><path d="m55.25 33.436c0-1.105.896-2 2-2h4.75v7h-4.75c-1.104 0-2-.896-2-2v-3"/><path d="m55.25 22.998c0-1.104.896-2 2-2h4.75v7h-4.75c-1.104 0-2-.895-2-2v-3"/><path d="m55.25 12.563c0-1.104.896-2 2-2h4.75v7h-4.75c-1.104 0-2-.895-2-2v-3"/></g><path fill="#333" d="m40.993 37.24c0 1.377-1.115 2.492-2.492 2.492h-29.513c-1.377 0-2.492-1.115-2.492-2.492v-.934c0-1.377 1.115-2.492 2.492-2.492h29.513c1.377 0 2.492 1.115 2.492 2.492v.934"/><path fill="#83bf4f" d="M38.578 36 45.49 64.07 2 64.07 8.911 36z"/><path fill="#699635" d="m37.01 36l5.696 25.889h-37.924l5.7-25.889z"/><path fill="#83bf4f" d="m35.96 36l4.964 24.48h-34.36l4.964-24.48z"/><path fill="#699635" d="m22.24 40.664l-.267 11.484c-.029 1.268-1.279 2.326-2.79 2.326-1.512 0-2.64-1.059-2.521-2.326l1.064-11.484c.083-.885 1.133-1.584 2.349-1.584l.115-2c-2.747 0-5.19 1.555-5.473 3.584l-.56 4.03h-3.195l-.471 2.539h3.313l-.685 4.914c-.418 3.02 2.194 5.646 5.87 5.646 3.675 0 6.593-2.625 6.522-5.646l-.266-11.484c-.021-.885.948-1.584 2.164-1.584s2.267.699 2.349 1.584l1.064 11.484h.001c.117 1.268-1.01 2.326-2.522 2.326l.192 3.32c3.676 0 6.288-2.625 5.869-5.646l-.684-4.914h3.313l-.47-2.539h-3.192l-.56-4.03c-.282-2.029-2.726-3.584-5.473-3.584-2.747 0-5.01 1.555-5.056 3.584"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,40c0,5.5-4.5,10-10,10H12C6.5,50,2,45.5,2,40V10C2,4.5,6.5,0,12,0h40c5.5,0,10,4.5,10,10V40z" fill="#44618b"/><path d="M49.7,26.3c0,1.5-1.2,2.7-2.7,2.7H9.2c-1.5,0-2.7-1.2-2.7-2.7V8.2c0-1.5,1.2-2.7,2.7-2.7H47
+ c1.5,0,2.7,1.2,2.7,2.7V26.3z" fill="#cad5dd"/><path d="M49.7,28c0,1.5-1.2,2.7-2.7,2.7H9.2c-1.5,0-2.7-1.2-2.7-2.7V9.9c0-1.5,1.2-2.7,2.7-2.7H47
+ c1.5,0,2.7,1.2,2.7,2.7V28z" fill="#fff"/><g fill="#333"><path d="m20.4 26.2h2l-4-14.4h-2l-4 14.4h2l1.3-4.7h3.6l1.1 4.7m-4.4-6.5l1.3-4.6 1.3 4.6h-2.6"/><path d="m20.9 11.8v1.8h4.1v12.6h1.9v-12.6h4.1v-1.8z"/><path d="m34.3 26.2v-10.1l2.7 10.1h2.5l2.7-10.1v10.1h1.8v-14.4h-2.5l-3.3 12.1-3.2-12.1h-2.5v14.4z"/></g><g fill="#2b4666"><path d="m55.2 34.4c0-1.1.9-2 2-2h4.8v7h-4.8c-1.1 0-2-.9-2-2v-3"/><path d="m55.2 24c0-1.1.9-2 2-2h4.8v7h-4.8c-1.1 0-2-.9-2-2v-3"/><path d="m55.2 13.6c0-1.1.9-2 2-2h4.8v7h-4.8c-1.1 0-2-.9-2-2v-3"/></g><g fill="#42ade2"><path d="m55.2 33.4c0-1.1.9-2 2-2h4.8v7h-4.8c-1.1 0-2-.9-2-2v-3"/><path d="m55.2 23c0-1.1.9-2 2-2h4.8v7h-4.8c-1.1 0-2-.9-2-2v-3"/><path d="m55.2 12.6c0-1.1.9-2 2-2h4.8v7h-4.8c-1.1 0-2-.9-2-2v-3"/></g><path d="m41 37.2c0 1.4-1.1 2.5-2.5 2.5h-29.5c-1.4 0-2.5-1.1-2.5-2.5v-.9c0-1.4 1.1-2.5 2.5-2.5h29.5c1.4 0 2.5 1.1 2.5 2.5v.9" fill="#333"/><path fill="#83bf4f" d="m38.6 36l6.9 28.1h-43.5l6.9-28.1z"/><path fill="#699635" d="m37 36l5.7 25.9h-37.9l5.7-25.9z"/><path fill="#83bf4f" d="m36 36l4.9 24.5h-34.3l4.9-24.5z"/><path d="m22.2 40.7l-.2 11.4c0 1.3-1.3 2.3-2.8 2.3-1.5 0-2.6-1.1-2.5-2.3l1.1-11.5c.1-.9 1.1-1.6 2.3-1.6l.1-2c-2.7 0-5.2 1.6-5.5 3.6l-.6 4h-3.1l-.5 2.5h3.3l-.7 4.9c-.4 3 2.2 5.6 5.9 5.6 3.7 0 6.6-2.6 6.5-5.6l-.3-11.5c0-.9.9-1.6 2.2-1.6s2.3.7 2.3 1.6l1.1 11.5c.1 1.3-1 2.3-2.5 2.3l.2 3.3c3.7 0 6.3-2.6 5.9-5.6l-.7-4.9h3.3l-.5-2.5h-3.2l-.6-4c-.3-2-2.7-3.6-5.5-3.6s-4.9 1.6-5 3.7" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e8.svg
index b56a2a4..6aaa759 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#62727a" d="m63 60h-62c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h62c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path fill="#ed4c5c" d="m40 64h-16l4-4h8z"/><g fill="#e8e8e8"><path d="m51 36h-38c-2.201 0-4 1.8-4 4v20h46v-20c0-2.2-1.801-4-4-4"/><path d="m40 22h-16c-2.201 0-4 1.8-4 4v10h24v-10c0-2.2-1.801-4-4-4"/></g><g fill="#62727a"><path d="m19 44h26v6h-26z"/><path d="M21.119,37.579v1.86h1.836v-1.86h1.111v4.842h-1.111v-2.026h-1.836v2.026H20v-4.842H21.119z"/><path d="m30.29 39.95c0 1.587-.98 2.55-2.422 2.55-1.463 0-2.318-1.085-2.318-2.465 0-1.45.943-2.535 2.398-2.535 1.514 0 2.342 1.113 2.342 2.45m-3.562.064c0 .949.453 1.617 1.199 1.617.754 0 1.186-.704 1.186-1.645 0-.87-.422-1.617-1.193-1.617-.755 0-1.192.704-1.192 1.645"/><path d="m32.494 38.498h-1.324v-.919h3.789v.919h-1.348v3.923h-1.117v-3.923"/><path d="m39.22 40.37h-1.813v1.149h2.023v.898h-3.146v-4.842h3.045v.898h-1.922v1.01h1.813v.892"/><path d="M40.92,37.579h1.119v3.923H44v0.919h-3.08V37.579z"/></g><g fill="#ffdd7d"><path d="m34 46.528l-1.525-.006-.475-1.522-.475 1.522-1.525.006 1.23.942-.466 1.53 1.236-.94 1.24.94-.472-1.53z"/><path d="m29 46.528l-1.525-.006-.475-1.522-.475 1.522-1.525.006 1.23.942-.466 1.53 1.236-.94 1.24.94-.472-1.53z"/><path d="m39 46.528l-1.525-.006-.475-1.522-.475 1.522-1.525.006 1.23.942-.466 1.53 1.236-.94 1.24.94-.472-1.53z"/><path d="m44 46.528l-1.525-.006-.475-1.522-.475 1.522-1.525.006 1.23.942-.466 1.53 1.236-.94 1.24.94-.472-1.53z"/><path d="m24 46.528l-1.525-.006-.475-1.522-.475 1.522-1.525.006 1.232.942-.468 1.53 1.236-.94 1.24.94-.472-1.53z"/></g><g fill="#b2c1c0"><path d="m21 50h4v10h-4z"/><path d="m39 50h4v10h-4z"/></g><path fill="#42ade2" d="m28 50h8v10h-8z"/><path fill="#e8e8e8" d="m31 50h2v10h-2z"/><g fill="#428bc1"><path d="m28 50h3v2h-3z"/><path d="m33 50h3v2h-3z"/></g><g fill="#b2c1c0"><path d="m31 50h2v2h-2z"/><path d="m33 1c0-.55-.451-1-1-1-.551 0-1 .45-1 1v9c0 .55.449 1 1 1 .549 0 1-.45 1-1v-9"/></g><path fill="#e8e8e8" d="m36.29 12.293l-1.586-1.586c-.389-.389-1.158-.707-1.707-.707h-2c-.551 0-1.318.318-1.707.707l-1.586 1.586c-.389.389-.707 1.157-.707 1.707v8h10v-8c0-.55-.318-1.318-.707-1.707"/><g fill="#42ade2"><path d="m16 39h-4c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m34 24h-4c-.551 0-1 .45-1 1v8c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-8c0-.55-.451-1-1-1"/><path d="m52 39h-4c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m16 46h-4c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m52 46h-4c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m16 53h-4c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m52 53h-4c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h4c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m31 15c0-.55-.451-1-1-1-.551 0-1 .45-1 1v4c0 .55.449 1 1 1 .549 0 1-.45 1-1v-4"/><path d="m35 15c0-.55-.451-1-1-1-.551 0-1 .45-1 1v4c0 .55.449 1 1 1 .549 0 1-.45 1-1v-4"/><path d="m23 24c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h3c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1h-3"/><path d="m23 30c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h3c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1h-3"/><path d="m38 24c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h3c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1h-3"/><path d="m38 30c-.551 0-1 .45-1 1v2c0 .55.449 1 1 1h3c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1h-3"/></g><path fill="#ed4c5c" d="m33 1.442c0 1.705 0 3.41 0 5.115 2.666 1.533 3.332-1.534 6 0 0-1.705 0-3.41 0-5.115-2.668-1.533-3.334 1.535-6 0"/><path fill="#dbb471" d="m9.959 39.545h-1.205c0 0-1.369 7.351-.242 20.455h3.131c0 0-1.684-8.407-1.684-20.455"/><g fill="#83bf4f"><path d="m9.959 38.33c0 0-4.342-8.488-9.959-1.698 0 0 4.34-1.909 9.316 4.02l.643-2.323"/><path d="m8.156 38.696l2.164 1.233c5.313-6.01 9.68-2.126 9.68-2.126-5.234-6.937-11.844.893-11.844.893"/><path d="m9.205 38.69c0 0-7.08.215-5.971 8.984 0 0 .135-6.228 7.219-6.931l-1.248-2.053"/><path d="m9.152 38.3v2.506c7.809 1.698 6.602 7.438 6.602 7.438 3.418-8-6.602-9.944-6.602-9.944"/></g><g fill="#89664c"><path d="m8.17 57.16c0 0 1.455 2.184 3.371 0h-3.371"/><path d="M7.91,53.768c0,0,1.457,2.184,3.373,0H7.91z"/><path d="m7.707 50.37c0 0 1.248 2.184 2.889 0h-2.889"/><path d="m7.707 46.976c0 0 1.248 2.184 2.889 0h-2.889"/><path d="m7.867 43.58c0 0 1.041 2.183 2.408 0h-2.408"/></g><path fill="#dbb471" d="m54.04 39.545h1.205c0 0 1.367 7.351.24 20.455h-3.131c0 0 1.686-8.407 1.686-20.455"/><g fill="#83bf4f"><path d="m54.04 38.33c0 0 4.34-8.488 9.959-1.698 0 0-4.34-1.909-9.318 4.02l-.641-2.323"/><path d="m55.844 38.696l-2.166 1.233c-5.313-6.01-9.678-2.125-9.678-2.125 5.234-6.938 11.844.892 11.844.892"/><path d="m54.795 38.69c0 0 7.078.215 5.971 8.984 0 0-.135-6.228-7.221-6.931l1.25-2.053"/><path d="m54.848 38.3v2.506c-7.809 1.698-6.604 7.438-6.604 7.438-3.416-8 6.604-9.944 6.604-9.944"/></g><g fill="#89664c"><path d="m55.828 57.16c0 0-1.455 2.184-3.371 0h3.371"/><path d="m56.09 53.768c0 0-1.455 2.184-3.371 0h3.371"/><path d="m56.29 50.37c0 0-1.248 2.184-2.889 0h2.889"/><path d="m56.29 46.976c0 0-1.248 2.184-2.889 0h2.889"/><path d="m56.13 43.58c0 0-1.039 2.183-2.408 0h2.408"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h62c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1" fill="#62727a"/><path fill="#ed4c5c" d="m40 64h-16l4-4h8z"/><g fill="#e8e8e8"><path d="m51 36h-38c-2.2 0-4 1.8-4 4v20h46v-20c0-2.2-1.8-4-4-4"/><path d="m40 22h-16c-2.2 0-4 1.8-4 4v10h24v-10c0-2.2-1.8-4-4-4"/></g><g fill="#62727a"><path d="m19 44h26v6h-26z"/><path d="M21.1,37.6v1.9H23v-1.9h1.1v4.8H23v-2h-1.8v2H20v-4.8H21.1z"/><path d="m30.3 40c0 1.6-1 2.5-2.4 2.5-1.5 0-2.3-1.1-2.3-2.5 0-1.5.9-2.5 2.4-2.5 1.5 0 2.3 1.1 2.3 2.5m-3.6 0c0 .9.5 1.6 1.2 1.6.8 0 1.2-.7 1.2-1.6 0-.9-.4-1.6-1.2-1.6-.7 0-1.2.7-1.2 1.6"/><path d="m32.5 38.5h-1.3v-.9h3.8v.9h-1.3v3.9h-1.1v-3.9z"/><path d="m39.2 40.4h-1.8v1.1h2v.9h-3.1v-4.8h3v.9h-1.9v1h1.8c0 0 0 .9 0 .9"/><path d="m40.9 37.6h1.1v3.9h2v.9h-3.1v-4.8"/></g><g fill="#ffdd7d"><path d="m34 46.5h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5 1.2-.9 1.2.9-.4-1.5z"/><path d="m29 46.5h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5 1.2-.9 1.2.9-.4-1.5z"/><path d="m39 46.5h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5 1.2-.9 1.2.9-.4-1.5z"/><path d="m44 46.5h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5 1.2-.9 1.2.9-.4-1.5z"/><path d="m24 46.5h-1.5l-.5-1.5-.5 1.5h-1.5l1.2 1-.4 1.5 1.2-.9 1.2.9-.4-1.5z"/></g><g fill="#b2c1c0"><path d="m21 50h4v10h-4z"/><path d="m39 50h4v10h-4z"/></g><path fill="#42ade2" d="m28 50h8v10h-8z"/><path fill="#e8e8e8" d="m31 50h2v10h-2z"/><g fill="#428bc1"><path d="m28 50h3v2h-3z"/><path d="m33 50h3v2h-3z"/></g><g fill="#b2c1c0"><path d="m31 50h2v2h-2z"/><path d="m33 1c0-.6-.5-1-1-1-.6 0-1 .4-1 1v9c0 .6.4 1 1 1 .5 0 1-.4 1-1v-9"/></g><path d="m36.3 12.3l-1.6-1.6c-.4-.4-1.2-.7-1.7-.7h-2c-.6 0-1.3.3-1.7.7l-1.6 1.6c-.4.4-.7 1.1-.7 1.7v8h10v-8c0-.6-.3-1.3-.7-1.7" fill="#e8e8e8"/><g fill="#42ade2"><path d="m16 39h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m34 24h-4c-.6 0-1 .5-1 1v8c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-8c0-.5-.5-1-1-1"/><path d="m52 39h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m16 46h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m52 46h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m16 53h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m52 53h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m31 15c0-.6-.5-1-1-1-.6 0-1 .4-1 1v4c0 .5.4 1 1 1 .5 0 1-.5 1-1v-4"/><path d="m35 15c0-.6-.5-1-1-1-.6 0-1 .4-1 1v4c0 .5.4 1 1 1 .5 0 1-.5 1-1v-4"/><path d="m23 24c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h3c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1h-3"/><path d="m23 30c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h3c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1h-3"/><path d="m38 24c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h3c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1h-3"/><path d="m38 30c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h3c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1h-3"/></g><path d="m33 1.4c0 1.7 0 3.4 0 5.1 2.7 1.5 3.3-1.5 6 0 0-1.7 0-3.4 0-5.1-2.7-1.5-3.3 1.6-6 0" fill="#ed4c5c"/><path d="m10 39.5h-1.2c0 0-1.4 7.4-.2 20.5h3.1c-.1 0-1.7-8.4-1.7-20.5" fill="#dbb471"/><g fill="#83bf4f"><path d="m10 38.3c0 0-4.3-8.5-10-1.7 0 0 4.3-1.9 9.3 4l.7-2.3"/><path d="m8.2 38.7l2.2 1.2c5.3-6 9.7-2.1 9.7-2.1-5.3-6.9-11.9.9-11.9.9"/><path d="m9.2 38.7c0 0-7.1.2-6 9 0 0 .1-6.2 7.2-6.9l-1.2-2.1"/><path d="m9.2 38.3v2.5c7.8 1.7 6.6 7.4 6.6 7.4 3.4-8-6.6-9.9-6.6-9.9"/></g><g fill="#89664c"><path d="m8.2 57.2c0 0 1.5 2.2 3.4 0h-3.4"/><path d="m7.9 53.8c0 0 1.5 2.2 3.4 0h-3.4"/><path d="m7.7 50.4c0 0 1.2 2.2 2.9 0h-2.9"/><path d="m7.7 47c0 0 1.2 2.2 2.9 0h-2.9"/><path d="m7.9 43.6c0 0 1 2.2 2.4 0h-2.4"/></g><path d="m54 39.5h1.2c0 0 1.4 7.4.2 20.5h-3.1c.1 0 1.7-8.4 1.7-20.5" fill="#dbb471"/><g fill="#83bf4f"><path d="m54 38.3c0 0 4.3-8.5 10-1.7 0 0-4.3-1.9-9.3 4l-.7-2.3"/><path d="m55.8 38.7l-2.2 1.2c-5.3-6-9.7-2.1-9.7-2.1 5.3-6.9 11.9.9 11.9.9"/><path d="m54.8 38.7c0 0 7.1.2 6 9 0 0-.1-6.2-7.2-6.9l1.2-2.1"/><path d="m54.8 38.3v2.5c-7.8 1.7-6.6 7.4-6.6 7.4-3.4-8 6.6-9.9 6.6-9.9"/></g><g fill="#89664c"><path d="m55.8 57.2c0 0-1.5 2.2-3.4 0h3.4"/><path d="m56.1 53.8c0 0-1.5 2.2-3.4 0h3.4"/><path d="m56.3 50.4c0 0-1.2 2.2-2.9 0h2.9"/><path d="m56.3 47c0 0-1.2 2.2-2.9 0h2.9"/><path d="m56.1 43.6c0 0-1 2.2-2.4 0h2.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3e9.svg
index 7713da3..5842ed5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3e9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m0 58h64v6h-64z"/><path d="m10 58h14v2h-14z"/></g><path fill="#3e4347" d="m10 58h14v2h-14z"/><path fill="#ffc7ce" d="m7 20h50v38h-50z"/><path fill="#e84d88" d="m12 42h10v16h-10z"/><g fill="#d6eef0"><path d="m12 26h10v10h-10z"/><path d="m42 26h10v10h-10z"/><path d="m27 26h10v10h-10z"/><path d="m42 42h10v10h-10z"/><path d="m27 42h10v10h-10z"/></g><path fill="#d0d0d0" d="m13 16h38v4h-38z"/><circle fill="#ffdd7d" cx="20" cy="51" r="1"/><g fill="#9450e0"><path d="m11 36h12v2h-12z"/><path d="m26 36h12v2h-12z"/><path d="m41 36h12v2h-12z"/><path d="m26 52h12v2h-12z"/><path d="m41 52h12v2h-12z"/></g><g fill="#e84d88"><path d="m12 26v6h1c1.656 0 3-1.344 3-3v-3h-4"/><path d="m22 26v6h-1c-1.656 0-3-1.344-3-3v-3h4"/><path d="m13 32h-1v4h4v-1c0-1.656-1.344-3-3-3"/><path d="m21 32c-1.656 0-3 1.344-3 3v1h4v-4h-1"/><path d="m27 26v6h1c1.656 0 3-1.344 3-3v-3h-4"/><path d="m37 26v6h-1c-1.656 0-3-1.344-3-3v-3h4"/><path d="m28 32h-1v4h4v-1c0-1.656-1.344-3-3-3"/><path d="m36 32c-1.656 0-3 1.344-3 3v1h4v-4h-1"/><path d="m42 26v6h1c1.656 0 3-1.344 3-3v-3h-4"/><path d="m52 26v6h-1c-1.656 0-3-1.344-3-3v-3h4"/><path d="m43 32h-1v4h4v-1c0-1.656-1.344-3-3-3"/><path d="m51 32c-1.656 0-3 1.344-3 3v1h4v-4h-1"/><path d="m27 42v6h1c1.656 0 3-1.344 3-3v-3h-4"/><path d="m37 42v6h-1c-1.656 0-3-1.344-3-3v-3h4"/><path d="m28 48h-1v4h4v-1c0-1.656-1.344-3-3-3"/><path d="m36 48c-1.656 0-3 1.344-3 3v1h4v-4h-1"/><path d="m42 42v6h1c1.656 0 3-1.344 3-3v-3h-4"/><path d="m52 42v6h-1c-1.656 0-3-1.344-3-3v-3h4"/><path d="m43 48h-1v4h4v-1c0-1.656-1.344-3-3-3"/><path d="m51 48c-1.656 0-3 1.344-3 3v1h4v-4h-1"/><path d="M36.264,0C34.377,0,32.762,0.938,32,2.285C31.238,0.938,29.623,0,27.736,0C25.121,0,23,1.791,23,4
- c0,4,9,12,9,12s9-8,9-12C41,1.791,38.879,0,36.264,0z"/></g><path fill="#94989b" d="m10 60h14v2h-14z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m0 58h64v6h-64z"/><path d="m10 58h14v2h-14z"/></g><path fill="#3e4347" d="m10 58h14v2h-14z"/><path fill="#ffc7ce" d="m7 20h50v38h-50z"/><path fill="#e84d88" d="m12 42h10v16h-10z"/><g fill="#d6eef0"><path d="m12 26h10v10h-10z"/><path d="m42 26h10v10h-10z"/><path d="m27 26h10v10h-10z"/><path d="m42 42h10v10h-10z"/><path d="m27 42h10v10h-10z"/></g><path fill="#d0d0d0" d="m13 16h38v4h-38z"/><circle cx="20" cy="51" r="1" fill="#ffdd7d"/><g fill="#9450e0"><path d="m11 36h12v2h-12z"/><path d="m26 36h12v2h-12z"/><path d="m41 36h12v2h-12z"/><path d="m26 52h12v2h-12z"/><path d="m41 52h12v2h-12z"/></g><g fill="#e84d88"><path d="m12 26v6h1c1.7 0 3-1.3 3-3v-3h-4"/><path d="m22 26v6h-1c-1.7 0-3-1.3-3-3v-3h4"/><path d="m13 32h-1v4h4v-1c0-1.7-1.3-3-3-3"/><path d="m21 32c-1.7 0-3 1.3-3 3v1h4v-4h-1"/><path d="m27 26v6h1c1.7 0 3-1.3 3-3v-3h-4"/><path d="m37 26v6h-1c-1.7 0-3-1.3-3-3v-3h4"/><path d="m28 32h-1v4h4v-1c0-1.7-1.3-3-3-3"/><path d="m36 32c-1.7 0-3 1.3-3 3v1h4v-4h-1"/><path d="m42 26v6h1c1.7 0 3-1.3 3-3v-3h-4"/><path d="m52 26v6h-1c-1.7 0-3-1.3-3-3v-3h4"/><path d="m43 32h-1v4h4v-1c0-1.7-1.3-3-3-3"/><path d="m51 32c-1.7 0-3 1.3-3 3v1h4v-4h-1"/><path d="m27 42v6h1c1.7 0 3-1.3 3-3v-3h-4"/><path d="m37 42v6h-1c-1.7 0-3-1.3-3-3v-3h4"/><path d="m28 48h-1v4h4v-1c0-1.7-1.3-3-3-3"/><path d="m36 48c-1.7 0-3 1.3-3 3v1h4v-4h-1"/><path d="m42 42v6h1c1.7 0 3-1.3 3-3v-3h-4"/><path d="m52 42v6h-1c-1.7 0-3-1.3-3-3v-3h4"/><path d="m43 48h-1v4h4v-1c0-1.7-1.3-3-3-3"/><path d="m51 48c-1.7 0-3 1.3-3 3v1h4v-4h-1"/><path d="m36.3 0c-1.9 0-3.5.9-4.3 2.3-.8-1.4-2.4-2.3-4.3-2.3-2.6 0-4.7 1.8-4.7 4 0 4 9 12 9 12s9-8 9-12c0-2.2-2.1-4-4.7-4"/></g><path fill="#94989b" d="m10 60h14v2h-14z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ea.svg
index f30c93f..c423a1e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m63 60h-62c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h62c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path fill="#e8e8e8" d="m51 28h-38c-3.3 0-6 2.7-6 6v26h50v-26c0-3.3-2.7-6-6-6"/><path fill="#ffe62e" d="m33 0h-20c-3.3 0-6 2.7-6 6v18h32v-18c0-3.3-2.7-6-6-6"/><g fill="#b2c1c0"><path d="m29 24h4v4h-4z"/><path d="m13 24h4v4h-4z"/></g><path fill="#ff717f" d="m51 30h-38c-2.2 0-4 1.8-4 4v8h46v-8c0-2.2-1.8-4-4-4"/><path fill="#ffe62e" d="m9 34h46v4h-46z"/><path fill="#ff717f" d="m33 0h-20c-3.3 0-6 2.7-6 6v18h32v-18c0-3.3-2.7-6-6-6m4 22h-28v-16c0-2.205 1.794-4 4-4h20c2.205 0 4 1.795 4 4v16"/><path fill="#62727a" d="m24 42h16v18h-16z"/><path fill="#d6eef0" d="m26 44h12v16h-12z"/><g fill="#62727a"><path d="m31 44h2v16h-2z"/><path d="m9 45h15v2h-15z"/><path d="m40 45h15v2h-15z"/></g><g fill="#d6eef0"><path d="m9 47h15v10h-15z"/><path d="m40 47h15v10h-15z"/></g><g fill="#62727a"><path d="m9 55h15v2h-15z"/><path d="m40 55h15v2h-15z"/><path d="m9 45h2v12h-2z"/><path d="m53 45h2v12h-2z"/></g><g fill="#ff717f"><path d="m30.666 4v6.4h-3.332v-6.4h-3.334v9.6h6.666v6.4h3.334v-16z"/><path d="m18.666 13.601c.852 0 1.706-.313 2.357-.938.651-.625.977-1.444.977-2.264v-3.198c0-.819-.326-1.639-.977-2.264-.651-.624-1.502-.937-2.355-.937h-6.668v3.201h6.668v3.198h-3.336c-.853 0-1.708.313-2.359.938-.651.625-.977 1.445-.973 2.265v6.398h10v-3.201h-6.668v-3.198h3.334"/></g><path fill="#e8e8e8" d="m40 64h-16l2-4h12z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h62c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1" fill="#b2c1c0"/><path d="m51 28h-38c-3.3 0-6 2.7-6 6v26h50v-26c0-3.3-2.7-6-6-6" fill="#e8e8e8"/><path d="m33 0h-20c-3.3 0-6 2.7-6 6v18h32v-18c0-3.3-2.7-6-6-6" fill="#ffe62e"/><g fill="#b2c1c0"><path d="m29 24h4v4h-4z"/><path d="m13 24h4v4h-4z"/></g><path d="m51 30h-38c-2.2 0-4 1.8-4 4v8h46v-8c0-2.2-1.8-4-4-4" fill="#ff717f"/><path fill="#ffe62e" d="m9 34h46v4h-46z"/><path d="M33,0H13C9.7,0,7,2.7,7,6v18h32V6C39,2.7,36.3,0,33,0z M37,22H9V6c0-2.2,1.8-4,4-4h20c2.2,0,4,1.8,4,4V22z" fill="#ff717f"/><path fill="#62727a" d="m24 42h16v18h-16z"/><path fill="#d6eef0" d="m26 44h12v16h-12z"/><g fill="#62727a"><path d="m31 44h2v16h-2z"/><path d="m9 45h15v2h-15z"/><path d="m40 45h15v2h-15z"/></g><g fill="#d6eef0"><path d="m9 47h15v10h-15z"/><path d="m40 47h15v10h-15z"/></g><g fill="#62727a"><path d="m9 55h15v2h-15z"/><path d="m40 55h15v2h-15z"/><path d="m9 45h2v12h-2z"/><path d="m53 45h2v12h-2z"/></g><g fill="#ff717f"><path d="m30.7 4v6.4h-3.4v-6.4h-3.3v9.6h6.7v6.4h3.3v-16z"/><path d="m18.7 13.6c.9 0 1.7-.3 2.4-.9.7-.6 1-1.4 1-2.3v-3.2c0-.8-.3-1.6-1-2.3-.7-.6-1.6-.9-2.4-.9h-6.7v3.2h6.7v3.2h-3.3c-.9 0-1.7.3-2.4.9s-1 1.4-1 2.3v6.4h10v-3.2h-6.7v-3.2h3.4"/></g><path fill="#e8e8e8" d="m40 64h-16l2-4h12z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3eb.svg
index b66dd28..67a04c9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m33 11.834c0 .549-.45 1-1 1-.55 0-1-.451-1-1v-10.834c0-.55.45-1 1-1 .55 0 1 .45 1 1v10.834"/><path fill="#e5dec1" d="m4 28h56v32h-56z"/><path fill="#d33b23" d="m60.52 19.789c-.502-.984-1.834-1.789-2.959-1.789h-51.12c-1.125 0-2.457.805-2.96 1.789l-3.283 6.422c-.504.984.004 1.789 1.129 1.789h61.35c1.125 0 1.633-.805 1.13-1.789l-3.284-6.422"/><g fill="#d6eef0"><path d="m15 45c0 .55-.45 1-1 1h-6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v4"/><path d="m15 35c0 .55-.45 1-1 1h-6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v4"/></g><g fill="#dbb471"><path d="m14 36.5h-6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h6c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5m-6-6c-.275 0-.5.225-.5.5v4c0 .275.225.5.5.5h6c.275 0 .5-.225.5-.5v-4c0-.275-.225-.5-.5-.5h-6"/><path d="m10.5 30h1v6h-1z"/><path d="m14 47h-6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h6c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5m-6-6c-.275 0-.5.225-.5.5v4c0 .275.225.5.5.5h6c.275 0 .5-.225.5-.5v-4c0-.275-.225-.5-.5-.5h-6"/><path d="m10.5 40.5h1v6h-1z"/></g><path fill="#d6eef0" d="m15 55c0 .55-.45 1-1 1h-6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v4"/><g fill="#dbb471"><path d="m14 57h-6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h6c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5m-6-6c-.275 0-.5.225-.5.5v4c0 .275.225.5.5.5h6c.275 0 .5-.225.5-.5v-4c0-.275-.225-.5-.5-.5h-6"/><path d="m10.5 50.5h1v6h-1z"/></g><g fill="#d6eef0"><path d="m57 45c0 .55-.45 1-1 1h-6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v4"/><path d="m57 35c0 .55-.45 1-1 1h-6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v4"/></g><g fill="#dbb471"><path d="m56 36.5h-6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h6c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5m-6-6c-.275 0-.5.225-.5.5v4c0 .275.225.5.5.5h6c.275 0 .5-.225.5-.5v-4c0-.275-.225-.5-.5-.5h-6"/><path d="m52.5 30h1v6h-1z"/><path d="m56 47h-6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h6c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5m-6-6c-.275 0-.5.225-.5.5v4c0 .275.225.5.5.5h6c.275 0 .5-.225.5-.5v-4c0-.275-.225-.5-.5-.5h-6"/><path d="m52.5 40.5h1v6h-1z"/></g><path fill="#d6eef0" d="m57 55c0 .55-.45 1-1 1h-6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h6c.55 0 1 .45 1 1v4"/><g fill="#dbb471"><path d="m56 57h-6c-.827 0-1.5-.673-1.5-1.5v-4c0-.827.673-1.5 1.5-1.5h6c.827 0 1.5.673 1.5 1.5v4c0 .827-.673 1.5-1.5 1.5m-6-6c-.275 0-.5.225-.5.5v4c0 .275.225.5.5.5h6c.275 0 .5-.225.5-.5v-4c0-.275-.225-.5-.5-.5h-6"/><path d="m52.5 50.5h1v6h-1z"/></g><path fill="#f15744" d="m32.777 11.629c-.428-.346-1.127-.346-1.555 0l-19.445 15.742c-.427.346-.327.629.223.629h40c.55 0 .65-.283.223-.629l-19.446-15.742"/><path fill="#f9f3d9" d="m48.23 27.364l-15.458-12.728c-.424-.35-1.119-.35-1.543 0l-15.457 12.728c-.423.35-.321.636.229.636h2v32h28v-32h2c.55 0 .652-.286.229-.636"/><path fill="#e5dec1" d="m24 45h16v15h-16z"/><path fill="#42ade2" d="m26 45h12v15h-12z"/><g fill="#89664c"><path d="m20.2 38.03c.266.121.674.241 1.094.241.454 0 .693-.166.693-.419 0-.241-.207-.38-.731-.546-.726-.225-1.198-.581-1.198-1.144 0-.661.621-1.167 1.651-1.167.493 0 .854.092 1.114.195l-.221.707c-.174-.075-.485-.184-.912-.184-.429 0-.636.172-.636.373 0 .247.247.356.81.546.771.253 1.134.609 1.134 1.155 0 .649-.563 1.201-1.762 1.201-.499 0-.991-.115-1.237-.235l.201-.723"/><path d="m26.873 38.827c-.182.081-.59.167-1.121.167-1.51 0-2.287-.833-2.287-1.937 0-1.322 1.063-2.058 2.385-2.058.512 0 .9.092 1.074.173l-.201.695c-.2-.075-.479-.144-.828-.144-.783 0-1.393.419-1.393 1.281 0 .775.518 1.265 1.398 1.265.299 0 .629-.058.822-.127l.151.685"/><path d="m28.512 35.06v1.488h1.626v-1.488h.984v3.873h-.984v-1.621h-1.626v1.621h-.991v-3.873h.991"/><path d="m35.979 36.96c0 1.27-.867 2.04-2.144 2.04-1.295 0-2.053-.868-2.053-1.972 0-1.16.836-2.028 2.124-2.028 1.342 0 2.073.891 2.073 1.96m-3.153.052c0 .758.401 1.293 1.063 1.293.666 0 1.049-.563 1.049-1.316 0-.695-.376-1.293-1.057-1.293-.666-.001-1.055.563-1.055 1.316"/><path d="m40.625 36.96c0 1.27-.867 2.04-2.145 2.04-1.295 0-2.053-.868-2.053-1.972 0-1.16.836-2.028 2.125-2.028 1.341 0 2.073.891 2.073 1.96m-3.154.052c0 .758.401 1.293 1.063 1.293.667 0 1.049-.563 1.049-1.316 0-.695-.375-1.293-1.056-1.293-.668-.001-1.056.563-1.056 1.316"/><path d="m41.27 35.06h.99v3.138h1.737v.735h-2.727v-3.873"/></g><circle fill="#dbb471" cx="32" cy="26" r="7"/><circle fill="#fff" cx="32" cy="26" r="5"/><path fill="#e5dec1" d="m31.5 45h1v15h-1z"/><path fill="#b2c1c0" d="m32 22c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1"/><path fill="#f15744" d="m32 26h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1"/><path fill="#b4d7ee" d="M33,2c0,2.455,0,4.91,0,7.366c4,3.192,8-6.876,12-3.683C41,0.036,37,7.646,33,2z"/><path fill="#f15744" d="m32.947 40.29c-.543-.387-1.352-.387-1.895 0-2.179 1.552-9.05 5.704-9.05 5.704v2.01h20v-2.01c0 0-6.873-4.152-9.05-5.704"/><path fill="#666" d="m63 60h-62c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h62c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path fill="#e8e8e8" d="m20 62h24v2h-24z"/><path fill="#d0d0d0" d="m22 60h20v2h-20z"/><g fill="#666"><path d="m29.06 53.5h1.438v.726h-1.438z"/><path d="m33.5 53.5h1.438v.726h-1.438z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m33 11.8c0 .5-.5 1-1 1-.5 0-1-.5-1-1v-10.8c0-.6.5-1 1-1 .5 0 1 .4 1 1v10.8" fill="#b2c1c0"/><path fill="#e5dec1" d="m4 28h56v32h-56z"/><path d="m60.5 19.8c-.5-1-1.8-1.8-3-1.8h-51.1c-1.1 0-2.5.8-3 1.8l-3.3 6.4c-.5 1 0 1.8 1.1 1.8h61.4c1.1 0 1.6-.8 1.1-1.8l-3.2-6.4" fill="#d33b23"/><g fill="#d6eef0"><path d="m15 45c0 .5-.4 1-1 1h-6c-.6 0-1-.5-1-1v-4c0-.5.4-1 1-1h6c.6 0 1 .5 1 1v4"/><path d="m15 35c0 .5-.4 1-1 1h-6c-.6 0-1-.5-1-1v-4c0-.5.4-1 1-1h6c.6 0 1 .5 1 1v4"/></g><g fill="#dbb471"><path d="m14 36.5h-6c-.8 0-1.5-.7-1.5-1.5v-4c0-.8.7-1.5 1.5-1.5h6c.8 0 1.5.7 1.5 1.5v4c0 .8-.7 1.5-1.5 1.5m-6-6c-.3 0-.5.2-.5.5v4c0 .3.2.5.5.5h6c.3 0 .5-.2.5-.5v-4c0-.3-.2-.5-.5-.5h-6"/><path d="m10.5 30h1v6h-1z"/><path d="m14 47h-6c-.8 0-1.5-.7-1.5-1.5v-4c0-.8.7-1.5 1.5-1.5h6c.8 0 1.5.7 1.5 1.5v4c0 .8-.7 1.5-1.5 1.5m-6-6c-.3 0-.5.2-.5.5v4c0 .3.2.5.5.5h6c.3 0 .5-.2.5-.5v-4c0-.3-.2-.5-.5-.5h-6"/><path d="m10.5 40.5h1v6h-1z"/></g><path d="m15 55c0 .5-.4 1-1 1h-6c-.6 0-1-.5-1-1v-4c0-.5.4-1 1-1h6c.6 0 1 .5 1 1v4" fill="#d6eef0"/><g fill="#dbb471"><path d="m14 57h-6c-.8 0-1.5-.7-1.5-1.5v-4c0-.8.7-1.5 1.5-1.5h6c.8 0 1.5.7 1.5 1.5v4c0 .8-.7 1.5-1.5 1.5m-6-6c-.3 0-.5.2-.5.5v4c0 .3.2.5.5.5h6c.3 0 .5-.2.5-.5v-4c0-.3-.2-.5-.5-.5h-6"/><path d="m10.5 50.5h1v6h-1z"/></g><g fill="#d6eef0"><path d="m57 45c0 .5-.5 1-1 1h-6c-.5 0-1-.5-1-1v-4c0-.5.5-1 1-1h6c.5 0 1 .5 1 1v4"/><path d="m57 35c0 .5-.5 1-1 1h-6c-.5 0-1-.5-1-1v-4c0-.5.5-1 1-1h6c.5 0 1 .5 1 1v4"/></g><g fill="#dbb471"><path d="m56 36.5h-6c-.8 0-1.5-.7-1.5-1.5v-4c0-.8.7-1.5 1.5-1.5h6c.8 0 1.5.7 1.5 1.5v4c0 .8-.7 1.5-1.5 1.5m-6-6c-.3 0-.5.2-.5.5v4c0 .3.2.5.5.5h6c.3 0 .5-.2.5-.5v-4c0-.3-.2-.5-.5-.5h-6"/><path d="m52.5 30h1v6h-1z"/><path d="m56 47h-6c-.8 0-1.5-.7-1.5-1.5v-4c0-.8.7-1.5 1.5-1.5h6c.8 0 1.5.7 1.5 1.5v4c0 .8-.7 1.5-1.5 1.5m-6-6c-.3 0-.5.2-.5.5v4c0 .3.2.5.5.5h6c.3 0 .5-.2.5-.5v-4c0-.3-.2-.5-.5-.5h-6"/><path d="m52.5 40.5h1v6h-1z"/></g><path d="m57 55c0 .5-.5 1-1 1h-6c-.5 0-1-.5-1-1v-4c0-.5.5-1 1-1h6c.5 0 1 .5 1 1v4" fill="#d6eef0"/><g fill="#dbb471"><path d="m56 57h-6c-.8 0-1.5-.7-1.5-1.5v-4c0-.8.7-1.5 1.5-1.5h6c.8 0 1.5.7 1.5 1.5v4c0 .8-.7 1.5-1.5 1.5m-6-6c-.3 0-.5.2-.5.5v4c0 .3.2.5.5.5h6c.3 0 .5-.2.5-.5v-4c0-.3-.2-.5-.5-.5h-6"/><path d="m52.5 50.5h1v6h-1z"/></g><path d="m32.8 11.6c-.4-.3-1.1-.3-1.6 0l-19.4 15.8c-.4.3-.4.6.2.6h40c.5 0 .7-.3.2-.6l-19.4-15.8" fill="#f15744"/><path d="m48.2 27.4l-15.4-12.8c-.4-.4-1.1-.4-1.5 0l-15.5 12.8c-.5.3-.4.6.2.6h2v32h28v-32h2c.5 0 .7-.3.2-.6" fill="#f9f3d9"/><path fill="#e5dec1" d="m24 45h16v15h-16z"/><path fill="#42ade2" d="m26 45h12v15h-12z"/><g fill="#89664c"><path d="m20.2 38c.3.1.7.2 1.1.2.5 0 .7-.2.7-.4 0-.2-.2-.4-.7-.5-.7-.2-1.2-.6-1.2-1.1 0-.7.6-1.2 1.7-1.2.5 0 .9.1 1.1.2l-.2.7c-.2-.1-.5-.2-.9-.2-.4 0-.6.2-.6.4 0 .2.2.4.8.5.8.3 1.1.6 1.1 1.2 0 .6-.6 1.2-1.8 1.2-.5 0-1-.1-1.2-.2l.1-.8"/><path d="m26.9 38.8c-.2.1-.6.2-1.1.2-1.5 0-2.3-.8-2.3-1.9 0-1.3 1.1-2.1 2.4-2.1.5 0 .9.1 1.1.2l-.2.7c-.2-.1-.5-.1-.8-.1-.8 0-1.4.4-1.4 1.3 0 .8.5 1.3 1.4 1.3.3 0 .6-.1.8-.1l.1.5"/><path d="m28.5 35.1v1.5h1.6v-1.5h1v3.9h-1v-1.6h-1.6v1.6h-1v-3.9h1"/><path d="m36 37c0 1.3-.9 2-2.1 2-1.3 0-2.1-.9-2.1-2 0-1.2.8-2 2.1-2 1.3 0 2.1.9 2.1 2m-3.2 0c0 .8.4 1.3 1.1 1.3.7 0 1-.6 1-1.3 0-.7-.4-1.3-1.1-1.3-.6 0-1 .6-1 1.3"/><path d="m40.6 37c0 1.3-.9 2-2.1 2-1.3 0-2.1-.9-2.1-2 0-1.2.8-2 2.1-2 1.4 0 2.1.9 2.1 2m-3.1 0c0 .8.4 1.3 1.1 1.3.7 0 1-.6 1-1.3 0-.7-.4-1.3-1.1-1.3-.6 0-1 .6-1 1.3"/><path d="m41.3 35.1h1v3.1h1.7v.7h-2.7v-3.8"/></g><circle cx="32" cy="26" r="7" fill="#dbb471"/><circle cx="32" cy="26" r="5" fill="#fff"/><path fill="#e5dec1" d="m31.5 45h1v15h-1z"/><path d="m32 22c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1s1-.5 1-1v-4c0-.5-.5-1-1-1" fill="#b2c1c0"/><path d="m32 26h-2c-.5 0-1 .5-1 1s.5 1 1 1h2c.5 0 1-.5 1-1s-.5-1-1-1" fill="#f15744"/><path d="M33,2c0,2.5,0,4.9,0,7.4c4,3.2,8-6.9,12-3.7C41,0,37,7.6,33,2z" fill="#b4d7ee"/><path d="m32.9 40.3c-.5-.4-1.4-.4-1.9 0-2.1 1.5-9 5.7-9 5.7v2h20v-2c0 0-6.9-4.2-9.1-5.7" fill="#f15744"/><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h62c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1" fill="#666"/><path fill="#e8e8e8" d="m20 62h24v2h-24z"/><path fill="#d0d0d0" d="m22 60h20v2h-20z"/><g fill="#666"><path d="m29.1 53.5h1.4v.7h-1.4z"/><path d="m33.5 53.5h1.4v.7h-1.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ec.svg
index 4e860de..d39eedf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m0 60h64v4h-64z"/><path fill="#62727a" d="m2 32h60v28h-60z"/><path fill="#d6eef0" d="m6 42h14v18h-14z"/><path fill="#3e4347" d="m2 27h60v6h-60z"/><path fill="#83bf4f" d="m0 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#d33b23" d="m8 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#83bf4f" d="m16 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#c7e755" d="m16 18h8v9h-8z"/><path fill="#d33b23" d="m24 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#f15744" d="m24 18h8v9h-8z"/><path fill="#c7e755" d="m0 18h8v9h-8z"/><path fill="#f15744" d="m8 18h8v9h-8z"/><path fill="#c7e755" d="m48 18h8v9h-8z"/><path fill="#f15744" d="m56 18h8v9h-8z"/><path fill="#83bf4f" d="m32 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#c7e755" d="m32 18h8v9h-8z"/><path fill="#d33b23" d="m40 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#f15744" d="m40 18h8v9h-8z"/><path fill="#83bf4f" d="m48 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#d33b23" d="m56 27c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/><path fill="#fff" d="m13 33c-4.971 0-9 4.03-9 9h18c0-4.971-4.03-9-9-9"/><path fill="#62727a" d="m6.291 40h13.418c-.863-2.889-3.544-5-6.709-5s-5.846 2.111-6.709 5"/><g fill="#fff"><path d="m6 42h2v18h-2z"/><path d="m18 42h2v18h-2z"/></g><path fill="#b4d7ee" d="m8 42h10v2h-10z"/><path fill="#fff" d="m27 33h30v20h-30z"/><path fill="#3e4347" d="m59 56c0 .55-.451 1-1 1h-32c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h32c.549 0 1 .45 1 1v2"/><path fill="#d6eef0" d="m29 35h26v16h-26z"/><path fill="#b4d7ee" d="m29 35h26v2h-26z"/><path fill="#62727a" d="m16 47c-.55 0-1 .591-1 1.313v1.973c0 .723.359 1.669.801 2.103l.398.394c.442.434.801.197.801-.527v-3.942c0-.723-.45-1.314-1-1.314"/><path fill="#3e4347" d="m64 18h-64v-16c0-1.1.9-2 2-2h60c1.1 0 2 .9 2 2v16"/><path fill="#e8e8e8" d="m3 2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h58c.549 0 1-.45 1-1v-12c0-.55-.451-1-1-1h-58"/><g fill="#3e4347"><path d="m17.505 5.135c-2.333-1.012-4.932-1.521-7.427-.803-2.387.687-2.71 3.61-.71 4.921 1.874 1.228 4.329.218 6.254 1.178.762.38.228 1.102-.319 1.317-.58.228-1.229.248-1.843.252-1.271.009-2.865-.194-3.955-.877-1.097-.687-2.1 1.044-1.01 1.727 1.919 1.202 4.855 1.413 7.04.918 2.185-.496 3.396-3.109 1.546-4.748-1.618-1.434-4.141-.793-6.077-1.254-.56-.133-1.411-.577-.806-1.276.483-.558 1.777-.47 2.424-.487 1.282-.033 2.928.447 3.877.858 1.171.508 2.19-1.215 1.01-1.726"/><path d="m50 13c0-2.667 0-5.333 0-8-.332.333-.666.667-1 1 .781 0 6.133-.201 4.875 1.395-.809 1.026-3.703.605-4.875.605-1.289 0-1.289 2 0 2 2.188 0 6.699.448 6.971-2.667.334-3.817-4.448-3.333-6.971-3.333-.545 0-1 .455-1 1 0 2.667 0 5.333 0 8 0 1.29 2 1.29 2 0"/><path d="m22 5c0 2.667 0 5.333 0 8 0 1.29 2 1.29 2 0 0-2.667 0-5.333 0-8 0-1.29-2-1.29-2 0"/><path d="m30 5c0 2.667 0 5.333 0 8 0 1.29 2 1.29 2 0 0-2.667 0-5.333 0-8 0-1.29-2-1.29-2 0"/><path d="m23 10c2.667 0 5.333 0 8 0 1.29 0 1.29-2 0-2-2.667 0-5.333 0-8 0-1.29 0-1.29 2 0 2"/></g><circle fill="none" stroke="#3e4347" stroke-width="2" stroke-miterlimit="10" cx="40" cy="9" r="4"/><g fill="#3e4347"><circle cx="5" cy="9" r="1"/><circle cx="59" cy="9" r="1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m0 60h64v4h-64z"/><path fill="#62727a" d="m2 32h60v28h-60z"/><path fill="#d6eef0" d="m6 42h14v18h-14z"/><path fill="#3e4347" d="m2 27h60v6h-60z"/><path d="m0 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#83bf4f"/><path d="m8 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#d33b23"/><path d="m16 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#83bf4f"/><path fill="#c7e755" d="m16 18h8v9h-8z"/><path d="m24 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#d33b23"/><path fill="#f15744" d="m24 18h8v9h-8z"/><path fill="#c7e755" d="m0 18h8v9h-8z"/><path fill="#f15744" d="m8 18h8v9h-8z"/><path fill="#c7e755" d="m48 18h8v9h-8z"/><path fill="#f15744" d="m56 18h8v9h-8z"/><path d="m32 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#83bf4f"/><path fill="#c7e755" d="m32 18h8v9h-8z"/><path d="m40 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#d33b23"/><path fill="#f15744" d="m40 18h8v9h-8z"/><path d="m48 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#83bf4f"/><path d="m56 27c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#d33b23"/><path d="m13 33c-5 0-9 4-9 9h18c0-5-4-9-9-9" fill="#fff"/><path d="m6.3 40h13.4c-.9-2.9-3.5-5-6.7-5s-5.8 2.1-6.7 5" fill="#62727a"/><g fill="#fff"><path d="m6 42h2v18h-2z"/><path d="m18 42h2v18h-2z"/></g><path fill="#b4d7ee" d="m8 42h10v2h-10z"/><path fill="#fff" d="m27 33h30v20h-30z"/><path d="m59 56c0 .5-.5 1-1 1h-32c-.5 0-1-.5-1-1v-2c0-.5.5-1 1-1h32c.5 0 1 .5 1 1v2" fill="#3e4347"/><path fill="#d6eef0" d="m29 35h26v16h-26z"/><path fill="#b4d7ee" d="m29 35h26v2h-26z"/><path d="m16 47c-.6 0-1 .6-1 1.3v2c0 .7.4 1.7.8 2.1l.4.4c.4.4.8.2.8-.5v-3.9c0-.8-.5-1.4-1-1.4" fill="#62727a"/><path d="m64 18h-64v-16c0-1.1.9-2 2-2h60c1.1 0 2 .9 2 2v16" fill="#3e4347"/><path d="m3 2c-.5 0-1 .5-1 1v12c0 .6.5 1 1 1h58c.5 0 1-.4 1-1v-12c0-.5-.5-1-1-1h-58" fill="#e8e8e8"/><g fill="#3e4347"><path d="m17.5 5.1c-2.3-1-4.9-1.5-7.4-.8-2.4.7-2.7 3.6-.7 5 1.9 1.2 4.3.2 6.3 1.2.8.4.2 1.1-.3 1.3-.7.2-1.3.2-1.9.2-1.3 0-2.9-.2-4-.9-1.1-.7-2.1 1-1 1.7 1.9 1.2 4.9 1.4 7 .9 2.2-.5 3.4-3.1 1.5-4.7-1.6-1.4-4.1-.8-6.1-1.3-.6-.1-1.4-.6-.8-1.3.6-.5 1.9-.4 2.5-.4 1.3 0 2.9.4 3.9.9 1.2.5 2.2-1.3 1-1.8"/><path d="m50 13c0-2.7 0-5.3 0-8-.3.3-.7.7-1 1 .8 0 6.1-.2 4.9 1.4-.8 1-3.7.6-4.9.6-1.3 0-1.3 2 0 2 2.2 0 6.7.4 7-2.7.3-3.8-4.5-3.3-7-3.3-.5 0-1 .5-1 1 0 2.7 0 5.3 0 8 0 1.3 2 1.3 2 0"/><path d="m22 5c0 2.7 0 5.3 0 8 0 1.3 2 1.3 2 0 0-2.7 0-5.3 0-8 0-1.3-2-1.3-2 0"/><path d="m30 5c0 2.7 0 5.3 0 8 0 1.3 2 1.3 2 0 0-2.7 0-5.3 0-8 0-1.3-2-1.3-2 0"/><path d="m23 10c2.7 0 5.3 0 8 0 1.3 0 1.3-2 0-2-2.7 0-5.3 0-8 0-1.3 0-1.3 2 0 2"/></g><circle cx="40" cy="9" r="4" fill="none" stroke="#3e4347" stroke-width="2" stroke-miterlimit="10"/><g fill="#3e4347"><circle cx="5" cy="9" r="1"/><circle cx="59" cy="9" r="1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ed.svg
index 6654c2f..43aaa5a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ed.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><circle cx="54.5" cy="13.166" r="3"/><circle cx="49.5" cy="11.242" r="4.242"/><circle cx="48" cy="7.799" r="4.799"/></g><g fill="#e8e8e8"><path d="m47.09 5.02c2.276 0 4.212 1.436 4.967 3.446.016-.142.024-.286.024-.433 0-2.177-1.766-3.942-3.943-3.942-1.14 0-2.164.487-2.883 1.261.572-.211 1.189-.332 1.835-.332"/><path d="m48.23 8.276c2.275 0 4.211 1.436 4.967 3.446.016-.142.023-.286.023-.433 0-2.177-1.766-3.942-3.942-3.942-1.14 0-2.165.487-2.884 1.261.573-.211 1.19-.332 1.836-.332"/><path d="m53.36 11.689c1.643 0 3.04 1.036 3.585 2.486.012-.102.018-.205.018-.312 0-1.57-1.274-2.845-2.846-2.845-.822 0-1.563.352-2.082.909.414-.151.86-.238 1.325-.238"/></g><path fill="#62727a" d="m63 60h-62c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h62c.549 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path fill="#f15744" d="m39 40l-12-10v10l-12-10v10l-12-10v30h48v-20z"/><g fill="#d33b23"><path d="m51.799 43.2h8.401l-.401-8.4h-7.599z"/><path d="m59.4 26.4l-.4-8.4h-6l-.4 8.4z"/><path d="m51.4 51.6l-.4 8.4h10l-.4-8.4z"/></g><g fill="#d0d0d0"><path d="m59.4 26.4h-6.8l-.4 8.4h7.599z"/><path d="m51.4 51.6h9.2l-.4-8.4h-8.401z"/></g><path fill="#f9f3d9" d="m3 45h36v10h-36z"/><path fill="#b4d7ee" d="m3 46h35v8h-35z"/><path fill="#89664c" d="m42 50h6v10h-6z"/><path fill="#d33b23" d="m41 48h8v2h-8z"/><g fill="#f9f3d9"><path d="m3 49.5h35v1h-35z"/><path d="m14.5 45h1v10h-1z"/><path d="m26.5 45h1v10h-1z"/></g><circle fill="#dbb471" cx="46.5" cy="54.5" r=".5"/><path fill="#d0d0d0" d="m42 60h6v2h-6z"/><path fill="#e8e8e8" d="m41 62h8v2h-8z"/><g fill="#d0d0d0"><circle cx="56.5" cy="16" r="2"/><circle cx="41.999" cy="5.083" r="5.083"/><circle cx="33.916" cy="5.861" r="5.861"/><circle cx="26.541" cy="4.955" r="4.955"/><circle cx="18.354" cy="7" r="7"/><circle cx="10.586" cy="9.174" r="9.174"/></g><g fill="#e8e8e8"><path d="m8.116 3.276c4.67 0 8.642 2.945 10.191 7.07.032-.291.051-.586.051-.886 0-4.467-3.623-8.091-8.091-8.091-2.339 0-4.44.999-5.917 2.587 1.175-.434 2.44-.683 3.766-.683"/><path d="m16.522 2.872c3.679 0 6.808 2.32 8.03 5.571.025-.229.041-.462.041-.698 0-3.518-2.854-6.372-6.373-6.372-1.843 0-3.498.787-4.661 2.038.926-.343 1.923-.539 2.967-.539"/><path d="m25.18 2.073c2.637 0 4.88 1.663 5.754 3.993.018-.164.029-.331.029-.501 0-2.521-2.046-4.567-4.568-4.567-1.32 0-2.507.564-3.341 1.461.663-.245 1.378-.386 2.126-.386"/><path d="m32.23 2.416c3.03 0 5.602 1.909 6.604 4.584.021-.188.032-.38.032-.575 0-2.895-2.348-5.243-5.243-5.243-1.517 0-2.878.648-3.835 1.677.762-.282 1.582-.443 2.442-.443"/><path d="m40.764 2.111c2.568 0 4.754 1.62 5.605 3.89.018-.16.027-.322.027-.488 0-2.456-1.992-4.449-4.45-4.449-1.286 0-2.442.55-3.255 1.423.647-.239 1.343-.376 2.073-.376"/><path d="m55.744 14.882c1.09 0 2.02.688 2.379 1.649.007-.067.011-.136.011-.207 0-1.041-.845-1.887-1.888-1.887-.545 0-1.036.233-1.381.604.275-.102.571-.159.879-.159"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><circle cx="54.5" cy="13.2" r="3"/><circle cx="49.5" cy="11.2" r="4.2"/><circle cx="48" cy="7.8" r="4.8"/></g><g fill="#e8e8e8"><path d="m47.1 5c2.3 0 4.2 1.4 5 3.4 0-.1 0-.3 0-.4 0-2.2-1.8-3.9-3.9-3.9-1.1 0-2.2.5-2.9 1.3.5-.3 1.1-.4 1.8-.4"/><path d="m48.2 8.3c2.3 0 4.2 1.4 5 3.4 0-.1 0-.3 0-.4 0-2.2-1.8-3.9-3.9-3.9-1.1 0-2.2.5-2.9 1.3.6-.3 1.2-.4 1.8-.4"/><path d="m53.4 11.7c1.6 0 3 1 3.6 2.5 0-.1 0-.2 0-.3 0-1.6-1.3-2.8-2.8-2.8-.8 0-1.6.4-2.1.9.3-.2.8-.3 1.3-.3"/></g><path d="m63 60h-62c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h62c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1" fill="#62727a"/><path fill="#f15744" d="m39 40l-12-10v10l-12-10v10l-12-10v30h48v-20z"/><g fill="#d33b23"><path d="m51.8 43.2h8.4l-.4-8.4h-7.6z"/><path d="m59.4 26.4l-.4-8.4h-6l-.4 8.4z"/><path d="m51.4 51.6l-.4 8.4h10l-.4-8.4z"/></g><g fill="#d0d0d0"><path d="m59.4 26.4h-6.8l-.4 8.4h7.6z"/><path d="m51.4 51.6h9.2l-.4-8.4h-8.4z"/></g><path fill="#f9f3d9" d="m3 45h36v10h-36z"/><path fill="#b4d7ee" d="m3 46h35v8h-35z"/><path fill="#89664c" d="m42 50h6v10h-6z"/><path fill="#d33b23" d="m41 48h8v2h-8z"/><g fill="#f9f3d9"><path d="m3 49.5h35v1h-35z"/><path d="m14.5 45h1v10h-1z"/><path d="m26.5 45h1v10h-1z"/></g><circle cx="46.5" cy="54.5" r=".5" fill="#dbb471"/><path fill="#d0d0d0" d="m42 60h6v2h-6z"/><path fill="#e8e8e8" d="m41 62h8v2h-8z"/><g fill="#d0d0d0"><circle cx="56.5" cy="16" r="2"/><circle cx="42" cy="5.1" r="5.1"/><circle cx="33.9" cy="5.9" r="5.9"/><circle cx="26.5" cy="5" r="5"/><circle cx="18.4" cy="7" r="7"/><circle cx="10.6" cy="9.2" r="9.2"/></g><g fill="#e8e8e8"><path d="m8.1 3.3c4.7 0 8.6 2.9 10.2 7.1 0-.3.1-.6.1-.9 0-4.5-3.6-8.1-8.1-8.1-2.3 0-4.4 1-5.9 2.6 1.1-.5 2.4-.7 3.7-.7"/><path d="m16.5 2.9c3.7 0 6.8 2.3 8 5.6 0-.2 0-.5 0-.7 0-3.5-2.9-6.4-6.4-6.4-1.8 0-3.5.8-4.7 2 1.1-.3 2.1-.5 3.1-.5"/><path d="m25.2 2.1c2.6 0 4.9 1.7 5.8 4 0-.2 0-.3 0-.5 0-2.6-2.1-4.6-4.6-4.6-1.3 0-2.5.6-3.3 1.5.6-.3 1.3-.4 2.1-.4"/><path d="m32.2 2.4c3 0 5.6 1.9 6.6 4.6 0-.2 0-.4 0-.6 0-2.9-2.3-5.2-5.2-5.2-1.5 0-2.9.6-3.8 1.7.7-.3 1.6-.5 2.4-.5"/><path d="m40.8 2.1c2.6 0 4.8 1.6 5.6 3.9 0-.2 0-.3 0-.5 0-2.5-2-4.4-4.5-4.4-1.3 0-2.4.5-3.3 1.4.7-.3 1.4-.4 2.2-.4"/><path d="m55.7 14.9c1.1 0 2 .7 2.4 1.6 0-.1 0-.1 0-.2 0-1-.8-1.9-1.9-1.9-.5 0-1 .2-1.4.6.3-.1.6-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ee.svg
index 97fee8a..664a333 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ba0028" d="m31.999 6.12c-11.04 0-19.999 4.635-19.999 10.353v31.06c0 5.717 8.954 10.352 19.999 10.352 11.05-.001 20-4.636 20-10.353v-31.05c0-5.718-8.954-10.353-20-10.353"/><path fill="#ff2449" d="m31.999 6.12c-7.611 0-13.78 4.635-13.78 10.353v31.06c0 5.717 6.169 10.352 13.78 10.352s13.782-4.635 13.782-10.352v-31.06c0-5.718-6.171-10.353-13.782-10.353"/><path fill="#ff503e" d="m32 9c-2.92 0-5.287 4.118-5.287 9.2v27.594c0 5.08 2.367 9.198 5.287 9.198s5.287-4.118 5.287-9.198v-27.594c0-5.082-2.367-9.2-5.287-9.2"/><g fill="#3e4347"><path d="m42 7.506v-4.12c-2.941-.881-6.358-1.386-10-1.386s-7.06.505-9.999 1.386v4.12c2.941-.881 6.356-1.386 9.999-1.386s7.06.505 10 1.386"/><path d="m22 56.49v4.12c2.941.881 6.356 1.385 9.999 1.385s7.06-.504 10-1.385v-4.12c-2.941.881-6.358 1.385-10 1.385s-7.06-.504-9.999-1.385"/></g><g fill="#ff7e27"><path d="m12 32c6.667-.59 13.333-.725 20-.75 6.667.021 13.333.156 20 .75-6.667.593-13.333.729-20 .75-6.667-.025-13.333-.16-20-.75"/><path d="m15.13 52.996c2.819.432 5.627.725 8.437.943 2.81.2 5.622.325 8.429.307 2.814.009 5.623-.117 8.434-.317 2.811-.218 5.619-.504 8.438-.933-2.668 1.035-5.48 1.656-8.307 2.096-2.829.442-5.697.636-8.561.653-2.87-.011-5.736-.204-8.566-.647-2.825-.443-5.636-1.068-8.304-2.102"/><path d="m12.09 48.597c3.321.454 6.644.714 9.959.944 3.318.2 6.637.324 9.953.306 3.321.009 6.638-.117 9.957-.316 3.315-.229 6.639-.482 9.96-.934-3.2 1.021-6.515 1.672-9.848 2.099-3.335.44-6.702.633-10.06.65-3.368-.011-6.733-.202-10.07-.645-3.333-.43-6.647-1.083-9.847-2.104"/><path d="m12.09 44.33c3.328.352 6.65.552 9.966.738 3.317.159 6.635.265 9.947.25 3.32.009 6.633-.091 9.952-.247 3.314-.187 6.637-.379 9.964-.741-3.219.939-6.536 1.53-9.867 1.912-3.332.396-6.691.563-10.05.574-3.36-.017-6.715-.19-10.05-.591-3.33-.386-6.644-.977-9.869-1.895"/><path d="m12.171 40.08c3.333.245 6.654.376 9.97.514 3.316.109 6.631.189 9.943.174 3.316.009 6.628-.07 9.946-.179 3.315-.137 6.638-.263 9.97-.509-3.244.824-6.561 1.345-9.889 1.678-3.329.349-6.679.494-10.02.508-3.35-.014-6.697-.16-10.03-.511-3.329-.336-6.644-.858-9.89-1.675"/><path d="m12.09 35.946l9.972.107c3.317.025 6.63.063 9.943.049 3.313.009 6.626-.026 9.943-.051l9.971-.105c-3.278.634-6.596 1.034-9.921 1.279-3.324.262-6.659.365-9.993.375-3.334-.016-6.669-.121-9.994-.387-3.323-.248-6.641-.647-9.921-1.267"/><path d="m48.912 11c-2.818-.432-5.627-.724-8.438-.943-2.81-.2-5.621-.325-8.429-.307-2.814-.009-5.623.118-8.434.317-2.81.218-5.619.505-8.438.933 2.668-1.035 5.48-1.656 8.306-2.096 2.83-.442 5.698-.636 8.562-.653 2.87.011 5.735.204 8.566.647 2.827.442 5.637 1.068 8.305 2.102"/><path d="m51.957 15.403c-3.321-.454-6.644-.714-9.959-.944-3.317-.2-6.637-.324-9.953-.306-3.321-.009-6.638.117-9.957.316-3.316.229-6.638.483-9.96.934 3.2-1.021 6.515-1.672 9.848-2.099 3.334-.44 6.702-.632 10.06-.65 3.368.011 6.733.202 10.07.644 3.333.431 6.648 1.084 9.847 2.105"/><path d="m51.957 19.671c-3.328-.351-6.65-.552-9.966-.738-3.317-.159-6.636-.264-9.947-.25-3.32-.008-6.633.091-9.951.248-3.315.187-6.637.379-9.964.741 3.219-.939 6.536-1.53 9.867-1.912 3.332-.396 6.691-.563 10.05-.574 3.361.016 6.715.19 10.05.59 3.331.386 6.645.977 9.869 1.895"/><path d="m51.871 23.92c-3.332-.246-6.654-.376-9.97-.514-3.316-.109-6.631-.19-9.943-.173-3.316-.01-6.629.07-9.946.178-3.315.137-6.637.262-9.969.509 3.244-.824 6.561-1.345 9.889-1.678 3.329-.348 6.678-.493 10.02-.507 3.35.013 6.697.16 10.03.51 3.329.336 6.644.858 9.889 1.675"/><path d="m51.957 28.05l-9.972-.107c-3.316-.025-6.631-.063-9.942-.049-3.315-.009-6.627.027-9.944.051l-9.971.105c3.278-.634 6.596-1.034 9.92-1.28 3.324-.262 6.66-.364 9.993-.374 3.336.016 6.669.121 9.995.386 3.324.249 6.642.647 9.921 1.268"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 6.1c-11 0-20 4.6-20 10.4v31.1c0 5.7 9 10.4 20 10.4 11 0 20-4.6 20-10.4v-31.1c0-5.7-9-10.4-20-10.4" fill="#ba0028"/><path d="m32 6.1c-7.6 0-13.8 4.6-13.8 10.4v31.1c0 5.7 6.2 10.4 13.8 10.4s13.8-4.6 13.8-10.4v-31.1c0-5.7-6.2-10.4-13.8-10.4" fill="#ff2449"/><path d="m32 9c-2.9 0-5.3 4.1-5.3 9.2v27.6c0 5.1 2.4 9.2 5.3 9.2s5.3-4.1 5.3-9.2v-27.6c0-5.1-2.4-9.2-5.3-9.2" fill="#ff503e"/><g fill="#3e4347"><path d="m42 7.5v-4.1c-2.9-.9-6.4-1.4-10-1.4s-7.1.5-10 1.4v4.1c2.9-.9 6.4-1.4 10-1.4s7.1.5 10 1.4"/><path d="m22 56.5v4.1c2.9.9 6.4 1.4 10 1.4s7.1-.5 10-1.4v-4.1c-2.9.9-6.4 1.4-10 1.4s-7.1-.5-10-1.4"/></g><g fill="#ff7e27"><path d="m12 32c6.7-.6 13.3-.7 20-.8 6.7 0 13.3.2 20 .8-6.7.6-13.3.7-20 .8-6.7-.1-13.3-.2-20-.8"/><path d="m15.1 53c2.8.4 5.6.7 8.4.9 2.8.2 5.6.3 8.4.3 2.8 0 5.6-.1 8.4-.3 2.8-.2 5.6-.5 8.4-.9-2.7 1-5.5 1.7-8.3 2.1-2.8.4-5.7.6-8.6.7-2.9 0-5.7-.2-8.6-.6-2.6-.5-5.4-1.2-8.1-2.2"/><path d="m12.1 48.6c3.3.5 6.6.7 10 .9 3.3.2 6.6.3 10 .3 3.3 0 6.6-.1 10-.3 3.3-.2 6.6-.5 10-.9-3.2 1-6.5 1.7-9.8 2.1-3.3.4-6.7.6-10.1.7-3.4 0-6.7-.2-10.1-.6-3.5-.5-6.8-1.2-10-2.2"/><path d="m12.1 44.3c3.3.4 6.7.6 10 .7 3.3.2 6.6.3 9.9.2 3.3 0 6.6-.1 10-.2 3.3-.2 6.6-.4 10-.7-3.2.9-6.5 1.5-9.9 1.9-3.3.4-6.7.6-10 .6-3.4 0-6.7-.2-10-.6-3.5-.4-6.8-1-10-1.9"/><path d="m12.2 40.1c3.3.2 6.7.4 10 .5 3.3.1 6.6.2 9.9.2 3.3 0 6.6-.1 9.9-.2 3.3-.1 6.6-.3 10-.5-3.2.8-6.6 1.3-9.9 1.7-3.3.3-6.7.5-10 .5-3.4 0-6.7-.2-10-.5-3.4-.4-6.7-.9-9.9-1.7"/><path d="m12.1 35.9l10 .1c3.3 0 6.6.1 9.9 0 3.3 0 6.6 0 9.9-.1l10-.1c-3.3.6-6.6 1-9.9 1.3-3.3.3-6.7.4-10 .4-3.3 0-6.7-.1-10-.4-3.3-.1-6.6-.5-9.9-1.2"/><path d="m48.9 11c-2.8-.4-5.6-.7-8.4-.9-2.8-.2-5.6-.3-8.4-.3-2.8 0-5.6.1-8.4.3-2.8.2-5.6.5-8.4.9 2.7-1 5.5-1.7 8.3-2.1 2.8-.4 5.7-.6 8.6-.7 2.9 0 5.7.2 8.6.6 2.6.5 5.4 1.2 8.1 2.2"/><path d="m52 15.4c-3.3-.5-6.6-.7-10-.9-3.3-.2-6.6-.3-10-.3-3.3 0-6.6.1-10 .3-3.3.2-6.6.5-10 .9 3.2-1 6.5-1.7 9.8-2.1 3.3-.4 6.7-.6 10.1-.6 3.4 0 6.7.2 10.1.6 3.4.4 6.8 1.1 10 2.1"/><path d="m52 19.7c-3.3-.4-6.7-.6-10-.7-3.3-.2-6.6-.3-9.9-.2-3.3 0-6.6.1-10 .2-3.3.2-6.6.4-10 .7 3.2-.9 6.5-1.5 9.9-1.9 3.3-.4 6.7-.6 10-.6 3.4 0 6.7.2 10 .6 3.4.4 6.7 1 10 1.9"/><path d="m51.9 23.9c-3.3-.2-6.7-.4-10-.5-3.3-.1-6.6-.2-9.9-.2-3.3 0-6.6.1-9.9.2-3.3.1-6.6.3-10 .5 3.2-.8 6.6-1.3 9.9-1.7 3.3-.3 6.7-.5 10-.5 3.3 0 6.7.2 10 .5 3.3.4 6.6.9 9.9 1.7"/><path d="m52 28.1l-10-.1c-3.3 0-6.6-.1-9.9 0-3.3 0-6.6 0-9.9.1l-10 .1c3.3-.6 6.6-1 9.9-1.3 3.3-.3 6.7-.4 10-.4 3.3 0 6.7.1 10 .4 3.3.1 6.6.5 9.9 1.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3ef.svg
index 8d9a2a6..f4ba335 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m56 48h-48l-8 16h64z"/><g fill="#f9f3d9"><path d="m8 40h48v8h-48z"/><path d="m13 24h38v8h-38z"/><path d="m18 8h28v8h-28z"/></g><g fill="#d33b23"><path d="M18,16c0,2.209-4.698,4-8,4c-3,0-5-1-5-1c0,2.209,2.91,5,6.5,5H32v-8H18z"/><path d="M13,32c0,2.209-4.698,4-8,4c-3,0-5-1-5-1c0,2.209,2.91,5,6.5,5H32v-8H13z"/><path d="M51,32c0,2.209,4.697,4,8,4c3,0,5-1,5-1c0,2.209-2.91,5-6.5,5H32v-8H51z"/><path d="M46,16c0,2.209,4.697,4,8,4c3,0,5-1,5-1c0,2.209-2.91,5-6.5,5H32v-8H46z"/><path d="M41,0c0,2.209,4.697,4,8,4c3,0,5-1,5-1c0,2.209-2.91,5-6.5,5H32V0H41z"/><path d="M23,0c0,2.209-4.698,4-8,4c-3,0-5-1-5-1c0,2.209,2.91,5,6.5,5H32V0H23z"/></g><g fill="#3e4347"><path d="m24 26h1v4h-1z"/><path d="m27 26h1v4h-1z"/><path d="m36 26h1v4h-1z"/><path d="m30 26h1v4h-1z"/><path d="m33 26h1v4h-1z"/><path d="m25.5 42h1v4h-1z"/><path d="m19.5 42h1v4h-1z"/><path d="m22.5 42h1v4h-1z"/><path d="m28.5 42h1v4h-1z"/><path d="m26 10h2v4h-2z"/><path d="m36 10h2v4h-2z"/><path d="m31 10h2v4h-2z"/></g><g fill="#fed0ac"><path d="m8 40h8v8h-8z"/><path d="m48 40h8v8h-8z"/><path d="m13 24h8v8h-8z"/><path d="m43 24h8v8h-8z"/></g><g fill="#3e4347"><path d="m51 42h2v4h-2z"/><path d="m11 42h2v4h-2z"/></g><path fill="#f15744" d="m32 16l-11 8h22z"/><g fill="#d3976e"><path d="m18 8h28v2h-28z"/><path d="m20.975 24h22.05v2h-22.05z"/></g><g fill="#3e4347"><path d="m46 26h2v4h-2z"/><path d="m16 26h2v4h-2z"/></g><path fill="#d3976e" d="m16 40h32v2h-32z"/><g fill="#89664c"><path d="m8 40h8v2h-8z"/><path d="m48 40h8v2h-8z"/><path d="m13 24h8v2h-8z"/><path d="m43 24h8v2h-8z"/></g><path fill="#fed0ac" d="M40.11 24 32 18.1 23.887 24z"/><g fill="#3e4347"><path d="m26.5 24h11l-5.5-4z"/><path d="m37.5 42h1v4h-1z"/><path d="m31.5 42h1v4h-1z"/><path d="m34.5 42h1v4h-1z"/><path d="m40.5 42h1v4h-1z"/><path d="m43.5 42h1v4h-1z"/></g><path fill="#f15744" d="m41 36c-2.656-1.68-3.184-4-9-4-5.809 0-6.561 2.406-9 4-6.119 4-12.183 3.984-13 4h44c-.818-.016-6.684 0-13-4"/><path fill="#fed0ac" d="m39.11 37c-1.934-1.26-2.879-3-7.111-3-4.225 0-5.336 1.805-7.111 3-4.449 3-8.295 2.988-8.889 3h32c-.594-.012-4.297 0-8.889-3"/><g fill="#3e4347"><path d="m37.26 38c-1.209-.84-2.65-2-5.302-2-2.65 0-4.189 1.203-5.301 2-2.787 2-4.309 1.992-4.68 2h20.05c-.373-.008-1.892 0-4.771-2"/><path d="m39 26h1v4h-1z"/></g><path fill="#f15744" d="m37.729 5c-1.692-1.26-2.028-3-5.729-3-3.697 0-4.176 1.805-5.729 3-3.892 3-7.75 2.988-8.271 3h28c-.521-.012-4.254 0-8.271-3"/><path fill="#fed0ac" d="m36.523 5.75c-1.228-.945-1.83-2.25-4.523-2.25-2.689 0-3.396 1.354-4.525 2.25-2.832 2.25-5.279 2.241-5.658 2.25h20.365c-.379-.009-2.735 0-5.659-2.25"/><path fill="#3e4347" d="m35.34 6.5c-.525-.43-1.086-1.113-1.984-1.266-.447-.076-1.358.141-1.36 1.262-.004-1.181-1-1.336-1.418-1.26-.918.17-1.5.854-1.984 1.264-1.775 1.5-2.742 1.494-2.978 1.5h12.761c-.236-.006-1.205 0-3.037-1.5"/><g fill="#62727a"><path opacity=".5" d="m28.5 51.5h-7l-2-3.5h7z"/><path opacity=".5" d="m17.5 55.5h-6.714l-1-3h6.714z"/><path opacity=".5" d="m27.5 60.08h-4l-3-4.08h10z"/><path opacity=".5" d="m46.959 56h-5.919l-2-4.084h9.919z"/><path opacity=".5" d="m8.118 64h8.902l2.1-3.92h-8.898z"/><path opacity=".5" d="m43 64h-8.09l-1.912-3.92h8.09z"/><path opacity=".5" d="m54 60.08h8.04l-2.04-4.08h-8z"/></g><g fill="#e8e8e8"><path opacity=".5" d="m57.14 64h-7.88l1.578-4h8.422z"/><path opacity=".5" d="m16 60h-10.5l2.5-4h6.03z"/><path opacity=".5" d="m36 60h-8.5l2.5-4h8.02z"/><path opacity=".5" d="m43 52h-8.5l2.5-4h8.02z"/><path d="m53.23 59.5h-6.857l-1.607-3h6.857l1.607 3m-32.464-3l1.607 3h-6l-1.607-3h6m1 0h7.465l-1.607 3h-4.25l-1.608-3m8.465 0h7l-1.607 3h-7l1.607-3m7.999 0h5.535l1.607 3h-8.75l1.608-3m16.553-4l1.715 3h-9l1.715-3h5.57m-6.57 0l-1.715 3h-5l-1.715-3h8.43m-9.43 0l1.715 3h-6l-1.714-3h5.999m-6.999 0l1.714 3h-10l1.715-3h6.571m-7.571 0l-1.715 3h-4l-1.715-3h7.43m-14.429 0h6l1.715 3h-6l-1.715-3m-1.554 4h5.535l1.607 3h-8.75l1.608-3m54.02 4l-.5-1h-7.518l-1.607-3h7.625l-.5-1h-2.25l-1.715-3h2.465l-.5-1h-4.25l-2-3.5h-1l2 3.5h-9l2-3.5h-1l-2 3.5h-7l2-3.5h-1l-2 3.5h-5l-2-3.5h-1l2 3.5h-7l-2-3.5h-1l2 3.5h-9l2-3.5h-1l-2 3.5h-4.25l-.5 1h3.036l1.714 3h-6.25l-.5 1h3.482l-1.607 3h-3.375l-.5 1h7.625l-1.875 3.5h1l1.875-3.5h8l-1.875 3.5h1l1.875-3.5h5.25l1.875 3.5h1l-1.875-3.5h7l1.875 3.5h1l-1.875-3.5h7l1.875 3.5h1l-1.875-3.5h8.75l-1.875 3.5h1l1.875-3.5h7l-1.875 3.5h1l1.875-3.5h2.875"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m56 48h-48l-8 16h64z"/><g fill="#f9f3d9"><path d="m8 40h48v8h-48z"/><path d="m13 24h38v8h-38z"/><path d="m18 8h28v8h-28z"/></g><g fill="#d33b23"><path d="M18,16c0,2.2-4.7,4-8,4c-3,0-5-1-5-1c0,2.2,2.9,5,6.5,5H32v-8H18z"/><path d="M13,32c0,2.2-4.7,4-8,4c-3,0-5-1-5-1c0,2.2,2.9,5,6.5,5H32v-8H13z"/><path d="M51,32c0,2.2,4.7,4,8,4c3,0,5-1,5-1c0,2.2-2.9,5-6.5,5H32v-8H51z"/><path d="M46,16c0,2.2,4.7,4,8,4c3,0,5-1,5-1c0,2.2-2.9,5-6.5,5H32v-8H46z"/><path d="M41,0c0,2.2,4.7,4,8,4c3,0,5-1,5-1c0,2.2-2.9,5-6.5,5H32V0H41z"/><path d="M23,0c0,2.2-4.7,4-8,4c-3,0-5-1-5-1c0,2.2,2.9,5,6.5,5H32V0H23z"/></g><g fill="#3e4347"><path d="m24 26h1v4h-1z"/><path d="m27 26h1v4h-1z"/><path d="m36 26h1v4h-1z"/><path d="m30 26h1v4h-1z"/><path d="m33 26h1v4h-1z"/><path d="m25.5 42h1v4h-1z"/><path d="m19.5 42h1v4h-1z"/><path d="m22.5 42h1v4h-1z"/><path d="m28.5 42h1v4h-1z"/><path d="m26 10h2v4h-2z"/><path d="m36 10h2v4h-2z"/><path d="m31 10h2v4h-2z"/></g><g fill="#fed0ac"><path d="m8 40h8v8h-8z"/><path d="m48 40h8v8h-8z"/><path d="m13 24h8v8h-8z"/><path d="m43 24h8v8h-8z"/></g><g fill="#3e4347"><path d="m51 42h2v4h-2z"/><path d="m11 42h2v4h-2z"/></g><path fill="#f15744" d="m32 16l-11 8h22z"/><g fill="#d3976e"><path d="m18 8h28v2h-28z"/><path d="m21 24h22.1v2h-22.1z"/></g><g fill="#3e4347"><path d="m46 26h2v4h-2z"/><path d="m16 26h2v4h-2z"/></g><path fill="#d3976e" d="m16 40h32v2h-32z"/><g fill="#89664c"><path d="m8 40h8v2h-8z"/><path d="m48 40h8v2h-8z"/><path d="m13 24h8v2h-8z"/><path d="m43 24h8v2h-8z"/></g><path fill="#fed0ac" d="M40.1 24 32 18.1 23.9 24z"/><g fill="#3e4347"><path d="m26.5 24h11l-5.5-4z"/><path d="m37.5 42h1v4h-1z"/><path d="m31.5 42h1v4h-1z"/><path d="m34.5 42h1v4h-1z"/><path d="m40.5 42h1v4h-1z"/><path d="m43.5 42h1v4h-1z"/></g><path d="m41 36c-2.7-1.7-3.2-4-9-4-5.8 0-6.6 2.4-9 4-6.1 4-12.2 4-13 4h44c-.8 0-6.7 0-13-4" fill="#f15744"/><path d="m39.1 37c-1.9-1.3-2.9-3-7.1-3-4.2 0-5.3 1.8-7.1 3-4.4 3-8.3 3-8.9 3h32c-.6 0-4.3 0-8.9-3" fill="#fed0ac"/><g fill="#3e4347"><path d="m37.3 38c-1.2-.8-2.7-2-5.3-2-2.6 0-4.2 1.2-5.3 2-2.8 2-4.3 2-4.7 2h20c-.3 0-1.9 0-4.7-2"/><path d="m39 26h1v4h-1z"/></g><path d="m37.7 5c-1.7-1.3-2-3-5.7-3-3.7 0-4.2 1.8-5.7 3-3.9 3-7.8 3-8.3 3h28c-.5 0-4.3 0-8.3-3" fill="#f15744"/><path d="m36.5 5.8c-1.2-.9-1.8-2.2-4.5-2.2-2.7 0-3.4 1.4-4.5 2.2-2.9 2.2-5.3 2.2-5.7 2.2h20.4c-.4 0-2.8 0-5.7-2.2" fill="#fed0ac"/><path d="m35.3 6.5c-.5-.4-1.1-1.1-2-1.3-.4 0-1.3.2-1.3 1.3 0-1.2-1-1.3-1.4-1.3-.9.2-1.5.9-2 1.3-1.8 1.5-2.7 1.5-3 1.5h12.8c-.3 0-1.2 0-3.1-1.5" fill="#3e4347"/><g fill="#62727a"><path opacity=".5" d="m28.5 51.5h-7l-2-3.5h7z"/><path opacity=".5" d="m17.5 55.5h-6.7l-1-3h6.7z"/><path opacity=".5" d="m27.5 60.1h-4l-3-4.1h10z"/><path opacity=".5" d="m47 56h-6l-2-4.1h10z"/><path opacity=".5" d="m8.1 64h8.9l2.1-3.9h-8.9z"/><path opacity=".5" d="m43 64h-8.1l-1.9-3.9h8.1z"/><path opacity=".5" d="m54 60.1h8l-2-4.1h-8z"/></g><g fill="#e8e8e8"><path opacity=".5" d="m57.1 64h-7.8l1.5-4h8.5z"/><path opacity=".5" d="m16 60h-10.5l2.5-4h6z"/><path opacity=".5" d="m36 60h-8.5l2.5-4h8z"/><path opacity=".5" d="m43 52h-8.5l2.5-4h8z"/><path d="m53.2 59.5h-6.9l-1.6-3h6.9l1.6 3m-32.4-3l1.6 3h-6l-1.6-3h6m1 0h7.5l-1.6 3h-4.2l-1.7-3m8.4 0h7l-1.6 3h-7l1.6-3m8 0h5.5l1.6 3h-8.8l1.7-3m16.6-4l1.7 3h-9l1.7-3h5.6m-6.6 0l-1.7 3h-5l-1.7-3h8.4m-9.4 0l1.7 3h-6l-1.7-3h6m-7 0l1.7 3h-10l1.7-3h6.6m-7.6 0l-1.7 3h-4l-1.7-3h7.4m-14.4 0h6l1.7 3h-6l-1.7-3m-1.6 4h5.5l1.6 3h-8.7l1.6-3m54 4l-.5-1h-7.5l-1.6-3h7.6l-.5-1h-2.2l-1.7-3h2.5l-.5-1h-4.2l-2-3.5h-1l2 3.5h-9l2-3.5h-1l-2 3.5h-7l2-3.5h-1l-2 3.5h-5l-2-3.5h-1l2 3.5h-7l-2-3.5h-1l2 3.5h-9l2-3.5h-1l-2 3.5h-4.4l-.5 1h3l1.7 3h-6.2l-.5 1h3.5l-1.6 3h-3.4l-.5 1h7.6l-1.8 3.5h1l1.9-3.5h8l-1.9 3.5h1l1.9-3.5h5.2l1.9 3.5h1l-1.9-3.5h7l1.9 3.5h1l-1.9-3.5h7l1.9 3.5h1l-1.9-3.5h8.8l-1.9 3.5h1l1.9-3.5h7l-1.9 3.5h1l1.9-3.5h2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f0.svg
index d679c4f..b0b4b12 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m26.5 43v20c0 0 .646 1 1 1s1-1 1-1v-20h-2"/><path d="m31.5 43h-1v20c0 0 .646 1 1 1s1-1 1-1v-20h-1"/><path d="m34.5 43v20c0 0 .646 1 1 1s1-1 1-1v-20h-2"/><path d="m23 51h17v2h-17z"/><path d="m23 47h17v2h-17z"/><path d="m23 55h17v2h-17z"/><path d="m23 59h17v2h-17z"/><path d="m12.5 11c0 .55-.45 1-1 1-.55 0-1-.45-1-1v-10c0-.55.45-1 1-1 .55 0 1 .45 1 1v10"/><path d="m32.5 11c0 .55-.45 1-1 1-.55 0-1-.45-1-1v-10c0-.55.45-1 1-1 .55 0 1 .45 1 1v10"/><path d="m52.5 11c0 .55-.45 1-1 1-.55 0-1-.45-1-1v-10c0-.55.45-1 1-1 .55 0 1 .45 1 1v10"/></g><g fill="#b2c1c0"><path d="m22 22h18v16h-18z"/><path d="m6 18h10v20h-10z"/><path d="m46 18h10v20h-10z"/></g><g fill="#42ade2"><path d="m31.5 10l-12 12h24z"/><path d="m11.5 10l-8 8h16z"/><path d="m51.5 10l-8 8h16z"/></g><g fill="#3e4347"><circle cx="31.5" cy="29" r="3"/><path d="m28.5 29h6v9h-6z"/></g><path fill="#dae3ea" d="m57.5 32h-4c-.55 0-1 .45-1 1v4c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.318 1.318.707 1.707l.586.586c.389.389.707 1.157.707 1.707v22c0 .55.45 1 1 1h16v-12c0-4.418 3.582-8 8-8 4.418 0 8 3.582 8 8v12h16c.55 0 1-.45 1-1v-22c0-.55.318-1.318.707-1.707l.586-.586c.389-.389.707-1.157.707-1.707v-4c0-.55-.45-1-1-1"/><g fill="#3e4347"><path d="m9.5 22h4v6h-4z"/><circle cx="11.5" cy="22" r="2"/><path d="m49.5 22h4v6h-4z"/><circle cx="51.5" cy="22" r="2"/></g><path fill="#b2c1c0" d="m10 44h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><g fill="#42ade2"><path d="m20.5 6.557c-2.667-1.533-5.333 1.535-8 0 0-1.704 0-3.409 0-5.113 2.667 1.533 5.333-1.535 8 0-.667.469-1.333 1.225-2 2.125.667.804 1.333 1.751 2 2.988"/><path d="m40.5 6.557c-2.666-1.533-5.334 1.535-8 0 0-1.704 0-3.409 0-5.113 2.666 1.533 5.334-1.535 8 0-.666.469-1.334 1.225-2 2.125.666.804 1.334 1.751 2 2.988"/><path d="m60.5 6.557c-2.666-1.533-5.334 1.535-8 0 0-1.704 0-3.409 0-5.113 2.666 1.533 5.334-1.535 8 0-.666.469-1.334 1.225-2 2.125.666.804 1.334 1.751 2 2.988"/></g><g fill="#b2c1c0"><path d="m13 50h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m21.792 60h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m19.688 55h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.451-1-1-1"/><path d="m21.792 47h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m19 39.93h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m10 56h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m57 50h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m54 56h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m49.5 44.695h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.549-.45-1-1-1"/><path d="m45.5 51.5h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m47.38 60h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m56.5 39.18h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/><path d="m41 40.18h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/></g><g fill="#e8e8e8"><path d="m13.5 27.875h-4c-.55 0-1 .45-1 1v.25c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-.25c0-.55-.45-1-1-1"/><path d="m53.5 27.875h-4c-.55 0-1 .45-1 1v.25c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-.25c0-.55-.45-1-1-1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m26.5 43v20c0 0 .6 1 1 1s1-1 1-1v-20h-2"/><path d="m31.5 43h-1v20c0 0 .6 1 1 1s1-1 1-1v-20h-1"/><path d="m34.5 43v20c0 0 .6 1 1 1s1-1 1-1v-20h-2"/><path d="m23 51h17v2h-17z"/><path d="m23 47h17v2h-17z"/><path d="m23 55h17v2h-17z"/><path d="m23 59h17v2h-17z"/><path d="m12.5 11c0 .6-.4 1-1 1-.6 0-1-.4-1-1v-10c0-.6.4-1 1-1 .6 0 1 .4 1 1v10"/><path d="m32.5 11c0 .6-.5 1-1 1-.5 0-1-.4-1-1v-10c0-.6.5-1 1-1 .5 0 1 .4 1 1v10"/><path d="m52.5 11c0 .6-.5 1-1 1-.5 0-1-.4-1-1v-10c0-.6.5-1 1-1 .5 0 1 .4 1 1v10"/></g><g fill="#b2c1c0"><path d="m22 22h18v16h-18z"/><path d="m6 18h10v20h-10z"/><path d="m46 18h10v20h-10z"/></g><g fill="#42ade2"><path d="m31.5 10l-12 12h24z"/><path d="m11.5 10l-8 8h16z"/><path d="m51.5 10l-8 8h16z"/></g><g fill="#3e4347"><circle cx="31.5" cy="29" r="3"/><path d="m28.5 29h6v9h-6z"/></g><path d="m57.5 32h-4c-.5 0-1 .5-1 1v4c0 .5-.5 1-1 1h-4c-.5 0-1-.5-1-1v-4c0-.5-.5-1-1-1h-4c-.5 0-1 .5-1 1v4c0 .5-.5 1-1 1h-4c-.5 0-1-.5-1-1v-4c0-.5-.5-1-1-1h-4c-.5 0-1 .5-1 1v4c0 .5-.5 1-1 1h-4c-.5 0-1-.5-1-1v-4c0-.5-.5-1-1-1h-4c-.5 0-1 .5-1 1v4c0 .5-.5 1-1 1h-4c-.6 0-1-.5-1-1v-4c0-.5-.4-1-1-1h-4c-.6 0-1 .5-1 1v4c0 .5.3 1.3.7 1.7l.6.6c.4.4.7 1.2.7 1.7v22c0 .5.4 1 1 1h16v-12c0-4.4 3.6-8 8-8s8 3.6 8 8v12h16c.5 0 1-.5 1-1v-22c0-.5.3-1.3.7-1.7l.6-.6c.4-.4.7-1.2.7-1.7v-4c0-.5-.5-1-1-1" fill="#dae3ea"/><g fill="#3e4347"><path d="m9.5 22h4v6h-4z"/><circle cx="11.5" cy="22" r="2"/><path d="m49.5 22h4v6h-4z"/><circle cx="51.5" cy="22" r="2"/></g><path d="m10 44h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-2c0-.5-.4-1-1-1" fill="#b2c1c0"/><g fill="#42ade2"><path d="m20.5 6.6c-2.7-1.5-5.3 1.5-8 0 0-1.7 0-3.4 0-5.1 2.7 1.5 5.3-1.5 8 0-.7.5-1.3 1.2-2 2.1.7.8 1.3 1.7 2 3"/><path d="m40.5 6.6c-2.7-1.5-5.3 1.5-8 0 0-1.7 0-3.4 0-5.1 2.7 1.5 5.3-1.5 8 0-.7.5-1.3 1.2-2 2.1.7.8 1.3 1.7 2 3"/><path d="m60.5 6.6c-2.7-1.5-5.3 1.5-8 0 0-1.7 0-3.4 0-5.1 2.7 1.5 5.3-1.5 8 0-.7.5-1.3 1.2-2 2.1.7.8 1.3 1.7 2 3"/></g><g fill="#b2c1c0"><path d="m13 50h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-2c0-.5-.4-1-1-1"/><path d="m21.8 60h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m19.7 55h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m21.8 47h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m19 39.9h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m10 56h-4c-.6 0-1 .5-1 1v2c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-2c0-.5-.4-1-1-1"/><path d="m57 50h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m54 56h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m49.5 44.7h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.6-.5-1-1-1"/><path d="m45.5 51.5h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m47.4 60h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/><path d="m56.5 39.2h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.6-.5-1-1-1"/><path d="m41 40.2h-4c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-2c0-.6-.5-1-1-1"/></g><g fill="#e8e8e8"><path d="m13.5 27.9h-4c-.6 0-1 .5-1 1v.2c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-.2c0-.6-.4-1-1-1"/><path d="m53.5 27.9h-4c-.5 0-1 .5-1 1v.2c0 .5.5 1 1 1h4c.5 0 1-.5 1-1v-.2c0-.6-.5-1-1-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f3-1f308.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f3-1f308.svg
new file mode 100644
index 0000000..e082546
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f3-1f308.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m52.382 5.075c-12.245-1.872-28.245 22.961-43.169 15.422-.582-1.575-1.143-3.158-1.725-4.73 17.589 3.338 25.582-18.762 43.17-15.422.584 1.572 1.14 3.156 1.724 4.73"/><path fill="#ff8736" d="m54.105 9.804c-10.343-2.018-31.593 21.649-43.167 15.423-.585-1.573-1.14-3.157-1.725-4.73 17.589 3.338 25.581-18.763 43.169-15.422.584 1.572 1.14 3.156 1.723 4.729"/><path fill="#ffce31" d="m55.83 14.535c-10.068-1.791-28.744 23.715-43.168 15.422-.585-1.573-1.142-3.157-1.725-4.73 17.588 3.339 25.583-18.76 43.168-15.422.585 1.574 1.142 3.157 1.725 4.73"/><path fill="#83bf4f" d="m57.556 19.265c-9.711-1.521-31.086 25.813-43.171 15.422-.584-1.572-1.139-3.157-1.723-4.73 17.585 3.341 25.579-18.762 43.168-15.422.583 1.573 1.142 3.156 1.726 4.73"/><path fill="#275fd9" d="m59.278 23.995c-11.058-1.834-30.683 26.458-43.169 15.423-.584-1.574-1.144-3.156-1.725-4.73 17.588 3.338 25.582-18.761 43.171-15.422.583 1.573 1.141 3.155 1.723 4.729"/><path fill="#9028e0" d="m61 28.726c-17.583-3.34-25.579 18.761-43.166 15.421-.584-1.572-1.142-3.156-1.725-4.729 17.588 3.338 25.581-18.762 43.169-15.423.583 1.575 1.142 3.158 1.722 4.731"/><g fill="#3e4347"><circle cx="5.168" cy="13.336" r="2.168"/><path d="m7.04 14.49l-2.56.929 17.706 48.581h2.896z"/><path transform="matrix(.9399-.3414.3414.9399-4.8923 2.941)" d="m3.742 14.83h4.337v1.082h-4.337z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f3.svg
index 972c5aa..d1421b8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m48.15.722c-16.609-5.176-22.4 19.377-39.01 14.2 3.01 8.258 6.01 16.516 9.02 24.775 16.61 5.176 22.401-19.377 39.01-14.201-3.01-8.257-6.01-16.516-9.02-24.774"/><path fill="#3e4347" d="m6.834 15.76l17.559 48.24h.978l-17.673-48.554.577-.21 17.745 48.764h.98l-17.861-49.08z"/><path fill="#94989b" d="m8.275 15.236l-.577.21 17.673 48.554h.649z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.2.7c-16.6-5.2-22.4 19.4-39 14.2 3 8.3 6 16.5 9 24.8 16.6 5.2 22.4-19.4 39-14.2-3-8.3-6-16.5-9-24.8" fill="#d0d0d0"/><path fill="#3e4347" d="m6.8 15.8l17.6 48.2h1l-17.7-48.6.6-.2 17.7 48.8h1l-17.9-49.1z"/><path fill="#94989b" d="m8.3 15.2l-.6.2 17.7 48.6h.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f4.svg
index 27aeb64..0e6202d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m48.15.722c-16.611-5.177-22.402 19.376-39.01 14.199 3.01 8.258 6.01 16.516 9.02 24.776 16.611 5.176 22.402-19.377 39.01-14.201-3.01-8.258-6.01-16.517-9.02-24.774"/><g fill="#94989b"><path d="m7.696 15.446l-.862.315 17.559 48.24h.977z"/><path d="M27 64 9.138 14.921 8.273 15.236 26.02 64z"/></g><path fill="#d0d0d0" d="M26.02 64 8.273 15.236 7.696 15.446 25.37 64z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.2.7c-16.6-5.2-22.4 19.4-39 14.2 3 8.3 6 16.5 9 24.8 16.6 5.2 22.4-19.4 39-14.2-3-8.3-6-16.5-9-24.8" fill="#3e4347"/><g fill="#94989b"><path d="m7.7 15.4l-.9.4 17.6 48.2h1z"/><path d="M27 64 9.1 14.9 8.3 15.2 26 64z"/></g><g fill="#d0d0d0"><path d="m7.7 15.4l.6-.2z"/><path d="m26 64l-17.7-48.8-.6.2 17.7 48.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f5.svg
index 66fa547..b6576ae 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e84d88" d="m60.821 32.884c-.719-3.363-2.972-5.299-5.086-5.7.453-.406.884-1.01 1.28-1.852 1.016-2.156 1.646-5.427.887-7.507-1.274-3.489-4.08-5.571-7.507-5.571-1.612 0-3.211.461-4.612 1.284.229-.657.374-1.371.372-2.139-.004-2-.976-3.976-2.889-5.864-1.68-1.659-3.722-2.535-5.905-2.535-2.557 0-5 1.165-7 2.877-.034-.043-.064-.089-.104-.132-1.414-1.537-3.303-2.349-5.459-2.349-3.891 0-8.229 2.754-8.351 4.694-.022.351.091.749.394 1.055-2.791.817-4.828 2.473-5.806 4.775-.104.246-.18.504-.259.761-.259-.219-.58-.332-.926-.308-2.246.155-4.054 1.739-5.084 4.461-.85 2.245-1.127 5.291-.184 6.251.2.202.457.31.728.34-.236.336-.437.686-.58 1.046-1.023 2.576-.955 5.294.132 7.848-.249.067-.474.203-.649.407-1.465 1.708-1.603 4.108-.389 6.752 1 2.182 2.979 4.518 4.323 4.519.046 0 .085-.021.129-.025.202 1.449.692 2.955 1.482 4.482 1.446 2.798 4.149 5.914 5.721 5.915.375 0 .708-.153.933-.433.063-.081.118-.169.16-.263.823 1.65 1.954 2.871 3.385 3.629 2.127 1.127 4.234 1.698 6.267 1.698 4.917 0 8.551-3.293 10.726-6.426.225.8.68 1.507 1.367 2.039 1.097.853 2.719 1.285 4.82 1.285.774 0 1.625-.06 2.53-.176 4.704-.606 6.838-8.01 6.687-10.35-.065-1.044-.625-1.32-.961-1.395.186-.365.344-.762.487-1.176.166.072.36.131.615.131.002 0 .002 0 .002 0 1.503 0 4.213-1.837 6.04-4.094 1.44-1.777 3-4.603 2.289-7.954"/><path fill="#a01a5d" d="m61.814 32.914c-.744-3.479-3.074-5.481-5.262-5.896.469-.42.914-1.045 1.324-1.916 1.051-2.23 1.703-5.614.918-7.766-1.318-3.609-4.221-5.764-7.766-5.764-1.668 0-3.322.478-4.771 1.328.236-.68.387-1.418.385-2.213-.004-2.072-1.01-4.113-2.988-6.07-1.738-1.715-3.851-2.621-6.109-2.621-2.645 0-5.173 1.205-7.246 2.977-.035-.045-.066-.092-.107-.137-1.463-1.59-3.416-2.43-5.646-2.43-4.02 0-8.514 2.85-8.639 4.855-.024.364.093.775.406 1.092-2.887.846-4.994 2.559-6.01 4.939-.107.255-.186.521-.268.787-.268-.227-.6-.344-.957-.318-2.324.16-4.193 1.799-5.26 4.615-.879 2.322-1.166 5.474-.189 6.467.207.209.473.32.752.352-.244.348-.451.709-.6 1.082-1.059 2.664-.988 5.477.137 8.118-.258.069-.49.21-.672.421-1.516 1.768-1.658 4.25-.402 6.985 1.037 2.257 3.082 4.673 4.473 4.674.047 0 .088-.021.133-.026.209 1.5.717 3.058 1.533 4.638 1.496 2.894 4.293 6.117 5.918 6.118.389 0 .732-.158.965-.447.066-.084.123-.175.166-.271.852 1.707 2.02 2.97 3.502 3.754 2.199 1.164 4.379 1.755 6.482 1.755 5.086 0 8.845-3.406 11.1-6.647.232.827.703 1.559 1.414 2.109 1.135.882 2.813 1.329 4.986 1.329.801 0 1.682-.062 2.617-.182 4.867-.627 7.07-8.283 6.918-10.706-.068-1.08-.646-1.366-.994-1.442.191-.378.355-.788.504-1.217.172.075.373.136.637.136.002 0 .002 0 .002 0 1.555 0 4.357-1.9 6.248-4.235 1.489-1.841 3.108-4.763 2.367-8.231m-9.515-8.387c.904 2.283-.73 6.637-1.648 7.527-1.088-.951-3.879-5.879-4.158-9.192-.193-2.29-1.188-3.718-1.811-4.538 2.578-.304 6.49 3.35 7.617 6.203m-36.55 17.02c-1.01 0-2.088-.588-3.045-1.655-1.676-1.868-2.584-4.684-2.314-7.173.83-7.633 5.07-9.871 7.609-10.526-1.395 2.071-3.143 5.925-.338 11.514.172 1.172-1.07 6.757-1.859 7.841-.018-.001-.036-.001-.053-.001m23.21-.808c1.402-1.486 3.322-3.519 4.354-5.849 1.063-2.396.209-5.566-.475-8.113-.191-.709-.434-1.607-.518-2.178 1.371.645 2.971 2.806 3.906 5.326 1.031 2.777 1.08 5.356.129 6.899-1.826 2.969-5.977 4.559-8.182 4.758.247-.271.53-.572.786-.843m1.217-13.428c2.02 3.863.855 8.573-2.596 10.502-.314.176-.67.313-.998.416.973-1.963 2.703-6.271 1.051-9.436-1.455-2.784-5.775-3.368-9.142-3.368-.477 0-.91.012-1.281.028.766-.667 1.875-1.445 2.607-1.735 1.02-.403 2.098-.607 3.205-.607 3.107-.001 5.781 1.57 7.154 4.2m-10.269 9.06c-.609-.747-.941-1.782-1.107-2.65.793.505 1.717.958 2.475.958.002 0 .002 0 .002 0 .785 0 1.701-.501 1.701-1.912 0-1.74-1.146-2.834-3.098-2.99.453-.717 1.191-1.541 1.9-1.541 2.423 0 3.509 2.276 3.509 4.531 0 3.261-.984 4.532-3.509 4.532-.752 0-1.365-.304-1.873-.928m-3.834-7.395c.246-.149.518-.277.781-.383-.957 1.991-2.449 5.938-.881 8.706 1.561 2.76 5.484 3.38 7.822 3.495-.24.207-.506.411-.77.571-1.08.652-2.304.997-3.542.997-2.447 0-4.73-1.347-5.959-3.516-1.938-3.419-.793-7.849 2.549-9.87m16.976-8.512c.344.756.467 1.363.492 1.749-.602-.161-1.129-.24-1.604-.24-1.436 0-2.076.745-2.422 1.145-.004.005-.008.01-.012.015-.348-.207-1.15-.869-3.01-2.839-2.162-2.296-4.914-3.46-8.177-3.46-1.615 0-3.02.275-4.049.476-.061.013-.121.024-.18.035 1.092-2 4.752-3.784 8.18-3.784.884 0 1.689.119 2.392.354 5.759 1.929 7.784 5.223 8.388 6.549m-15.06-.58c1.371 0 2.531.204 3.324.44-.143.056-.285.11-.422.163-1.967.752-4.938 1.889-6.717 4.13-1.207 1.519-2.232 3.463-3.059 5.02-.4.76-.873 1.653-1.217 2.176-.645-.912-.967-2.319-.875-3.912.15-2.631 1.387-5.148 3.15-6.412 1.445-1.037 3.509-1.609 5.816-1.609m-.928 32.367c-1.215 0-2.33-.295-3.314-.876-5.709-3.368-4.908-10.406-4-14.11.891 2.551 2.566 6.248 6.133 7.582.852.319 1.846.475 3.035.475 0 0 0 0 .002 0 1.732 0 3.582-.334 5.212-.628 1.229-.221 2.391-.43 3.176-.43.328 0 .502.037.582.063-.002.054-.014.145-.049.28-.813 3.01-5.802 7.642-10.773 7.642m22.01-5.05c-2.043 1.568-4.764 1.803-6.203 1.803-2.035-.001-3.449-.441-3.889-.725-.02-.938 1.553-3.956 2.234-4.495 7.58-1.928 8.363-6.781 8.613-9.119.926 1.299 1.533 3.744 1.5 6.263-.034 2.874-.878 5.219-2.255 6.273m-43.482-20.2c.76-1.912 3.82-3.525 5.34-3.525.188 0 .299.024.359.045-.1.24-.418.709-.68 1.095-1.405 2.076-3.903 5.761-2.702 12.354-.723-.754-1.535-1.816-2.125-3.114-1.031-2.272-1.096-4.579-.192-6.855m11.614 15.883c0 0 0 .002 0 .003 0-.001 0-.002 0-.003m39.779-24.878c.813 2.225-.531 6.098-1.447 7.328-.055-.179-.109-.376-.16-.555-.354-1.269-.887-3.188-2.324-4.967-1.918-2.375-4.854-3.418-6.607-4.04-.176-.063-.369-.132-.551-.199 1.398-1.287 3.295-2.06 5.143-2.06 2.737.001 4.903 1.638 5.946 4.493m-19.432-14.06c1.764 0 3.361.693 4.75 2.063 1.598 1.578 2.41 3.157 2.412 4.693.004 2.091-1.48 3.777-2.428 4.741-.096-.118-.201-.258-.297-.382-.775-1.016-2.074-2.714-4.664-3.773-1.26-.516-2.676-.776-4.213-.776-1.859 0-3.533.37-4.755.64-.131.028-.264.057-.391.085 1.62-3.692 5.57-7.291 9.586-7.291m-13 .41c1.637 0 3.01.563 4.098 1.673-.17.28-.645.767-.975 1.104-.693.71-1.514 1.55-1.928 2.529-1.213-.754-3.504-2.059-7.617-2.664.877-.965 3.538-2.642 6.422-2.642m-12.457 9.707c.934-2.197 3.047-3.635 6.115-4.156.342-.058.701-.088 1.068-.088 2.713 0 5.342 1.628 5.588 2.939-.02.423-1.24 1.571-1.896 2.188-1.129 1.064-2.197 2.07-2.48 3.139-.662.861-5.58 3.354-7.365 3.354-.016 0-.029 0-.043-.001-1.543-2.36-1.922-5.168-.987-7.375m-5.91 3.843c.688-1.2 1.553-1.918 2.578-2.137.064.672-.059 2.01-.135 2.863-.063.672-.121 1.313-.143 1.881-.645.186-1.783.592-3.52 2.134.003-1.168.304-3.134 1.22-4.741m.5 26.09c-.83-.82-2.02-2.415-2.521-4.195-.373-1.332-.277-2.451.287-3.336.523.426 1.389 1.448 1.943 2.105.436.515.852 1.01 1.24 1.421-.318.59-.828 1.686-.949 4.01m7.489 1.378c-.338 1.914-.883 4.995-.207 9.189-1.199-1.098-3.02-3.329-4.02-6.104-1.01-2.794-.883-5.272.367-7.376.117.131.24.275.348.399.807.938 1.988 2.315 3.689 2.811-.034.289-.106.702-.174 1.081m11.853 14.703c-1.785 0-3.66-.516-5.576-1.53-1.557-.825-2.693-2.403-3.375-4.689-.771-2.592-.787-5.507-.592-7.543 1.111 3.042 2.912 7.333 6.256 8.327.98.291 2.047.438 3.172.438 3.684 0 7.363-1.563 9.798-2.597.375-.16.789-.336 1.166-.486-1.455 2.903-5.214 8.08-10.849 8.08m22.968-5.691c-.941 1.393-1.984 2.173-3.104 2.316-2.887.374-5.064.101-6.17-.755-.553-.432-.834-1.01-.834-1.717 0-1.415 1.09-2.687 1.621-2.687 1.32.133 2.451.197 3.457.197 4.145 0 5.492-1.167 6.924-2.403.043-.038.088-.077.135-.116-.246 1.368-.892 3.48-2.029 5.165m4.211-9.961l-.002-.968h.002v.968m4.742-4.486c-1.396 1.726-3.02 2.831-4 3.283.836-3.435.219-5.241-.287-6.714-.6-1.751-1.072-3.134 1.445-7.478.021-.03.199-.152.615-.152 1.309 0 3.508 1.186 4.207 4.453.583 2.722-.755 5.096-1.98 6.608"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46.5 31.2l-2.8-8.3c0 0 8.5-12.3 5.3-14.6-3.2-2.3-12.6 9.5-12.6 9.5h-9c0 0-9.4-11.7-12.6-9.5s5.3 14.6 5.3 14.6l-2.8 8.3c0 0-14.3 5.1-13.1 8.8 1.2 3.7 15.9-.4 15.9-.4l7.3 5.2c0 0 .5 14.9 4.5 14.9s4.5-14.9 4.5-14.9l7.3-5.2c0 0 14.7 4.1 15.9.4 1.3-3.7-13.1-8.8-13.1-8.8" fill="#a01a5d"/><g fill="#e84d88"><path d="m41.8 9.9c0 10-4.4 18.2-9.9 18.2s-9.9-8.1-9.9-18.2 7.2-4.2 9.9-4.2c2.7 0 9.9-5.8 9.9 4.2"/><path d="m13 16.5c9.8 3.1 16.4 9.7 14.7 14.8-1.7 5.1-11 6.6-20.8 3.5-9.8-3.1-1.9-8-1.1-10.5.8-2.4-2.6-10.9 7.2-7.8"/><path d="m10.5 45.3c6-8.1 14.5-12.2 18.9-9 4.4 3.1 3.1 12.2-3 20.4-6 8.1-8.4-.7-10.5-2.2-2.1-1.6-11.5-1.1-5.4-9.2"/><path d="m37.8 56.5c-6-8.1-7.4-17.2-3-20.4 4.4-3.1 12.9.9 18.9 9 6 8.1-3.3 7.6-5.4 9.1-2.1 1.6-4.5 10.4-10.5 2.3"/><path d="m57.1 34.6c-9.8 3.1-19.1 1.5-20.8-3.5-1.6-5.1 5-11.7 14.7-14.8 9.8-3.1 6.4 5.4 7.2 7.9.8 2.4 8.7 7.3-1.1 10.4"/></g><ellipse cx="32" cy="32.4" rx="3.8" ry="3.7" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f7.svg
index fe1614b..372a35f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m29.12 12.908h-10.117l-6.098 6.098v10.118l30.856 34.876 20.235-20.235-34.876-30.857m-6.433 9.783c-.926.925-2.426.925-3.35 0-.926-.925-.926-2.425 0-3.351.924-.925 2.424-.925 3.35 0 .926.926.926 2.426 0 3.351"/><path fill="#94989b" d="m21.933 20.775c-.27-1.301-.908-2.582-1.573-3.718-1.658-2.833-4.122-5.13-6.941-6.786-3.776-2.218-8.145-3.215-12.472-3.57-.515-.043-.947.463-.947.947 0 .548.434.906.947.948 4.746.39 9.487 1.676 13.364 4.528 1.148.845 2.384 2.063 3.337 3.282.173.221-.118-.159.048.063.05.065.098.131.146.197.094.128.184.259.274.39.183.267.356.54.523.816.276.459.528.934.756 1.419.07.148.137.297.201.447.026.062.053.124.078.187-.127-.305-.014-.033.012.036.09.228.171.459.245.692.063.199.124.401.167.605.249 1.2 2.08.709 1.835-.483"/><path fill="#3e4347" d="m15.266 16.648c-.045-.037-.09-.072-.135-.109-.476-.394-.903-.845-1.303-1.313-.881-1.031-1.662-2.34-2.314-3.629-1.665-3.291-2.616-6.982-2.918-10.649-.043-.515-.4-.948-.948-.948-.485 0-.991.432-.948.948.332 4.02 1.36 7.972 3.165 11.584.718 1.438 1.588 2.802 2.623 4.03.426.508.903 1 1.429 1.432l1.349-1.349"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.1 12.9h-10.1l-6.1 6.1v10.1l30.9 34.9 20.2-20.2-34.9-30.9m-6.4 9.8c-.9.9-2.4.9-3.4 0-.9-.9-.9-2.4 0-3.4.9-.9 2.4-.9 3.4 0 .9 1 .9 2.5 0 3.4" fill="#f2b200"/><path d="m21.9 20.8c-.3-1.3-.9-2.6-1.6-3.7-1.7-2.8-4.1-5.1-6.9-6.8-3.8-2.2-8.1-3.2-12.5-3.6-.5 0-.9.5-.9.9 0 .5.4.9.9.9 4.7.4 9.5 1.7 13.4 4.5 1.1.8 2.4 2.1 3.3 3.3.2.2-.1-.2 0 .1 0 .1.1.1.1.2.1.1.2.3.3.4.2.3.4.5.5.8.3.5.5.9.8 1.4.1.1.1.3.2.4 0 .1.1.1.1.2.1.2.2.5.2.7.1.2.1.4.2.6.3 1.4 2.2.9 1.9-.3" fill="#94989b"/><path d="m15.3 16.6c0 0-.1-.1-.1-.1-.5-.4-.9-.8-1.3-1.3-.9-1-1.7-2.3-2.3-3.6-1.7-3.3-2.6-7-2.9-10.6-.1-.6-.5-1-1.1-1-.5 0-1 .4-.9.9.3 4 1.4 8 3.2 11.6.7 1.4 1.6 2.8 2.6 4 .4.5.9 1 1.4 1.4l1.4-1.3" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f8.svg
index 7cee458..c9e2b40 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="m39.584 25.312l1.79 1.789-1.809 1.81c.423.188.856.354 1.309.479l1.395-1.393 1.776 1.772c.655-.007 1.32-.064 1.997-.176l1.598-1.598.947.947c.429-.15.855-.317 1.282-.505l-1.335-1.338 1.789-1.789 1.889 1.886c.359-.225.716-.467 1.066-.723l-2.059-2.059 1.789-1.792 2.221 2.224c.154-.145.313-.28.465-.432.151-.152.285-.311.431-.465l-2.22-2.221 1.789-1.789 2.06 2.061c.255-.351.498-.709.723-1.068l-1.889-1.886 1.792-1.791 1.335 1.336c.189-.426.357-.853.507-1.284l-.948-.946 1.599-1.598c.111-.675.169-1.341.178-1.996l-1.776-1.777 1.396-1.395c-.126-.451-.293-.887-.48-1.31l-1.809 1.811-1.791-1.791 2.208-2.209c-.139-.157-.267-.324-.417-.477-.152-.15-.317-.279-.478-.417l-2.208 2.207-1.789-1.79 1.808-1.809c-.423-.188-.856-.354-1.309-.481l-1.396 1.396-1.775-1.776c-.655.008-1.322.066-1.996.179l-1.599 1.599-.946-.948c-.43.149-.857.317-1.285.507l1.338 1.335-1.791 1.79-1.889-1.886c-.36.223-.716.464-1.067.72l2.06 2.06-1.79 1.79-2.221-2.221c-.155.144-.314.28-.465.431-.151.151-.287.31-.432.466l2.222 2.219-1.79 1.792-2.061-2.062c-.254.354-.497.708-.721 1.067l1.886 1.888-1.789 1.792-1.337-1.337c-.188.427-.355.853-.506 1.283l.947.947-1.598 1.598c-.112.677-.17 1.342-.179 1.998l1.776 1.774-1.395 1.396c.126.45.292.886.48 1.309l1.81-1.81 1.789 1.791-2.207 2.208c.138.16.266.325.418.477.151.15.316.28.477.419l2.21-2.208m18.796-13.428l1.79 1.791-1.79 1.792-1.791-1.792 1.791-1.791m-2.686 2.686l1.79 1.79-1.79 1.79-1.789-1.791 1.789-1.789m-2.685 2.686l1.791 1.789-1.791 1.791-1.789-1.791 1.789-1.789m-2.686 2.685l1.79 1.789-1.79 1.79-1.789-1.79 1.789-1.789m-2.683 2.684l1.788 1.792-1.789 1.789-1.791-1.789 1.792-1.792m-2.686 2.686l1.791 1.79-1.791 1.791-1.791-1.79 1.791-1.791m10.74-16.11l1.79 1.789-1.79 1.793-1.789-1.793 1.789-1.789m-2.685 2.686l1.79 1.79-1.79 1.792-1.79-1.792 1.79-1.79m-2.686 2.686l1.79 1.789-1.79 1.789-1.79-1.789 1.79-1.789m-2.683 2.684l1.788 1.791-1.789 1.79-1.79-1.791 1.791-1.79m-2.686 2.686l1.791 1.789-1.791 1.789-1.791-1.789 1.791-1.789m-2.685 2.683l1.791 1.792-1.791 1.789-1.79-1.788 1.79-1.793m-5.37-1.79l-1.791-1.788 1.791-1.791 1.789 1.79-1.789 1.789m2.684-2.684l-1.79-1.79 1.791-1.789 1.79 1.789-1.791 1.79m2.687-2.685l-1.79-1.79 1.789-1.79 1.791 1.79-1.79 1.79m2.684-2.684l-1.79-1.793 1.79-1.789 1.791 1.79-1.791 1.792m2.686-2.685l-1.791-1.791 1.791-1.79 1.788 1.79-1.788 1.791m2.683-2.687l-1.79-1.79 1.79-1.789 1.79 1.789-1.79 1.79m-10.739 16.11l-1.791-1.79 1.791-1.79 1.79 1.79-1.79 1.79m2.685-2.685l-1.79-1.79 1.79-1.79 1.791 1.789-1.791 1.791m2.685-2.686l-1.79-1.791 1.789-1.788 1.792 1.789-1.791 1.79m2.686-2.683l-1.791-1.792 1.791-1.791 1.788 1.791-1.788 1.792m2.683-2.686l-1.79-1.792 1.79-1.789 1.79 1.789-1.79 1.792m2.686-2.685l-1.79-1.791 1.79-1.791 1.79 1.791-1.79 1.791"/><g fill="#b2c1c0"><path d="m36 27.997c-5.186-5.187-4.433-13.469 1.789-19.692 6.677-6.676 16.713-8.348 21.48-3.579 4.77 4.767 3.097 14.805-3.58 21.48-6.221 6.223-14.503 6.977-19.689 1.791m21.48-21.483c-3.747-3.747-12.28-2.041-17.9 3.582-5.186 5.186-5.938 11.961-1.791 16.11 4.15 4.149 10.925 3.396 16.11-1.79 5.62-5.621 7.326-14.15 3.579-17.902"/><path transform="matrix(.7067.7075-.7075.7067 33.31-10.141)" d="m27.622 23.784h2.534v22.656h-2.534z"/></g><path fill="#3e4347" d="m7.316 61.44c0 0 .77-1.949 1.254-2.434 5.371-5.371 9.847-9.846 9.847-9.846l3.356-5.146-1.791-1.793-5.146 3.358c0 0-4.476 4.476-9.846 9.847-.485.484-2.434 1.254-2.434 1.254-.631.294-.744.939-.252 1.43l3.581 3.58c.494.494 1.136.381 1.431-.25"/><g fill="#b2c1c0"><path d="m35.33 25.09l-2.687 2.688c-.989.989-.989 2.592.001 3.58.987.988 2.591.987 3.579 0l2.686-2.687-3.579-3.581"/><path opacity=".5" d="m13.05 47.37l-.898.9 5.37 1.79z"/><path opacity=".5" d="m11.256 49.16l-.895.9 5.37 1.788z"/><path opacity=".5" d="m9.466 50.954l-.894.894 5.369 1.79z"/><path opacity=".5" d="m7.677 52.742l-.896.896 5.37 1.792z"/><path opacity=".5" d="m5.887 54.53l-.896.9 5.37 1.79z"/><path opacity=".5" d="m16.627 47.37l-1.343-1.34 5.147-3.355.894.894z"/></g><path fill="#e8e8e8" d="m39.34 39.34c-1.925 1.926-1.925 5.05 0 6.972l6.971-6.972c-1.924-1.925-5.04-1.925-6.971 0"/><path transform="matrix(-.7071-.7071.7071-.7071 43.7 105.5)" fill="#ed4c5c" d="m42.469 38.772h2.464v9.859h-2.464z"/><path fill="#e8e8e8" d="m49.8 42.828l-1.742-1.741-6.972 6.971 1.742 1.743 5.229 12.199 1.743-1.742-1.044-2.438 1.744-1.744 1.479 2 1.743-1.743-1.479-2 1.744-1.743 1.914 1.567 1.742-1.742-1.914-1.568 2.092-2.091 2.437 1.045 1.742-1.744-12.2-5.23m-1.568 5.058l-.436.437-1.482-2.01 1.918 1.571m.784 6.185l-1.307 1.308-1.043-2.437.871-.871 1.479 2m-2.961-4.01l-.437.437-1.047-2.443 1.484 2.01m4.705 2.263l-1.479-2 .874-.873 1.911 1.566-1.306 1.307m-2.703-7.755l2.443 1.046-.525.525-1.918-1.571m5.752 4.706l-1.912-1.566 1.047-1.046 2.434 1.043-1.569 1.569"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 25.3l1.8 1.8-1.8 1.8c.4.2.9.4 1.3.5l1.4-1.4 1.8 1.8c.7 0 1.3-.1 2-.2l1.6-1.6.9.9c.4-.1.9-.3 1.3-.5l-1.3-1.3 1.8-1.8 1.9 1.9c.4-.2.7-.5 1.1-.7l-2.1-2.1 1.8-1.8 2.2 2.2c.2-.1.3-.3.5-.4.2-.2.3-.3.4-.5l-2.2-2.2 1.8-1.8 2.1 2.1c.3-.4.5-.7.7-1.1l-2-1.9 1.8-1.8 1.3 1.3c.2-.4.4-.9.5-1.3l-.9-.9 1.6-1.6c.1-.7.2-1.3.2-2l-1.8-1.7 1.4-1.4c-.1-.5-.3-.9-.5-1.3l-1.8 1.8-1.8-1.8 2.2-2.2c-.1-.2-.3-.3-.4-.5-.2-.2-.3-.3-.5-.4l-2.2 2.2-1.8-1.8 1.8-1.8c-.4-.2-.9-.4-1.3-.5l-1.4 1.4-1.8-1.8c-.7 0-1.3.1-2 .2l-1.6 1.6-.9-.9c-.4.1-.9.3-1.3.5l1.3 1.3-1.7 1.8-1.9-1.9c-.4.2-.7.5-1.1.7l2.1 2.1-1.8 1.8-2.3-2.2c-.2.1-.3.3-.5.4s-.3.3-.4.5l2.2 2.2-1.8 1.8-2.1-2.1c-.3.4-.5.7-.7 1.1l1.9 1.9-1.8 1.8-1.3-1.3c-.2.4-.4.9-.5 1.3l.9.9-1.5 1.6c-.1.7-.2 1.3-.2 2l1.8 1.8-1.4 1.4c.1.5.3.9.5 1.3l1.8-1.8 1.8 1.8-2.2 2.2c.1.2.3.3.4.5.2.1.3.3.5.4l2.2-2.3m18.8-13.4l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.7-1.8-1.8 1.8-1.7m-2.7 2.6l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.6 2.7l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m10.7-16.1l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.8-1.8-1.9 1.8-1.7m-2.6 2.6l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-2.7 2.7l1.8 1.8-1.8 1.8-1.8-1.8 1.8-1.8m-5.4-1.8l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.6l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.6-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m-10.7 16.1l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.6-2.6l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8m2.7-2.7l-1.8-1.8 1.8-1.8 1.8 1.8-1.8 1.8" fill="#e8e8e8"/><g fill="#b2c1c0"><path d="m36 28c-5.2-5.2-4.4-13.5 1.8-19.7 6.7-6.7 16.7-8.3 21.5-3.6 4.8 4.8 3.1 14.8-3.6 21.5-6.2 6.2-14.5 7-19.7 1.8m21.5-21.5c-3.7-3.7-12.3-2-17.9 3.6-5.2 5.2-5.9 12-1.8 16.1 4.2 4.1 10.9 3.4 16.1-1.8 5.6-5.6 7.3-14.1 3.6-17.9"/><path transform="matrix(.7075-.7067.7067.7075-16.3641 30.6852)" d="m17.6 33.8h22.7v2.5h-22.7z"/></g><path d="m7.3 61.4c0 0 .8-1.9 1.3-2.4 5.4-5.4 9.8-9.8 9.8-9.8l3.4-5.1-1.8-1.9-5.1 3.4c0 0-4.5 4.5-9.8 9.8-.5.5-2.4 1.3-2.4 1.3-.6.3-.7.9-.3 1.4l3.6 3.6c.4.5 1 .4 1.3-.3" fill="#3e4347"/><g fill="#b2c1c0"><path d="m35.3 25.1l-2.7 2.7c-1 1-1 2.6 0 3.6 1 1 2.6 1 3.6 0l2.7-2.7-3.6-3.6"/><path opacity=".5" d="m13 47.4l-.8.9 5.3 1.8z"/><path opacity=".5" d="m11.3 49.2l-.9.9 5.3 1.7z"/><path opacity=".5" d="m9.5 51l-.9.8 5.3 1.8z"/><path opacity=".5" d="m7.7 52.7l-.9.9 5.4 1.8z"/><path opacity=".5" d="m5.9 54.5l-.9.9 5.4 1.8z"/><path opacity=".5" d="m16.6 47.4l-1.3-1.4 5.1-3.3.9.9z"/></g><path d="m39.3 39.3c-1.9 1.9-1.9 5 0 7l7-7c-1.9-1.9-5-1.9-7 0" fill="#e8e8e8"/><path transform="matrix(.7071-.7071.7071.7071-18.1019 43.7008)" fill="#ed4c5c" d="m38.8 42.5h9.9v2.5h-9.9z"/><path d="m49.8 42.8l-1.7-1.7-7 7 1.7 1.7 5.3 12.2 1.7-1.7-1-2.4 1.7-1.7 1.5 2 1.7-1.7-1.5-2 1.7-1.7 1.9 1.6 1.7-1.7-1.9-1.6 2.1-2.1 2.4 1 1.7-1.7-12-5.5m-1.6 5.1l-.4.4-1.5-2 1.9 1.6m.8 6.2l-1.3 1.3-1-2.4.9-.9 1.4 2m-2.9-4l-.4.4-1-2.4 1.4 2m4.7 2.2l-1.5-2 .9-.9 1.9 1.6-1.3 1.3m-2.7-7.7l2.4 1-.5.5-1.9-1.5m5.7 4.7l-1.9-1.6 1-1 2.4 1-1.5 1.6" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3f9.svg
index 3148cc8..e73e45c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d3976e"><path d="m14.279 20.447c-12.532 12.531-5.161 27.973-2.9 33.05.391.873.613 1.67.729 2.4-.929-.076-2.142.348-3.225 1.23-1.645 1.336-.879 3.367-.026 4.219.638.639 1.154.945 2.742.285 2.252-.939 7.541-4.32 4.943-10.05-7.512-16.561 2.973-26.82 2.973-26.82l-4.771-4.771-.465.459"/><path d="m57.13 8.879c-.882 1.088-1.308 2.303-1.229 3.227-.73-.117-1.529-.336-2.402-.727-5.074-2.264-20.517-9.631-33.05 2.898l-.459.465 4.771 4.773c0 0 10.26-10.486 26.821-2.973 5.729 2.596 9.109-2.693 10.05-4.943.66-1.588.354-2.105-.283-2.744-.853-.853-2.885-1.621-4.222.024"/></g><path transform="matrix(.7071.7071-.7071.7071 19.751-8.182)" fill="#fed0ac" d="m16.378 16.04h6.748v7.419h-6.748z"/><g fill="#89664c"><path d="m22.878 21.398l-4.768-4.787.796-.791 4.776 4.774z"/><path d="m16.602 18.12l4.788 4.765-.793.795-4.774-4.778z"/><path d="m11.683 59.29c.82-.82.787-2.631.425-3.395-.351-.031-.753.037-1.163.148 1.307-.188.231 3.574-.308 2.807-.558-.789-.607-.229-.595-.078.045.428.448 1.711 1.641.518"/><path d="m59.29 11.682c-.82.82-2.631.789-3.395.424-.029-.352.035-.748.148-1.162-.188 1.307 3.573.232 2.808-.309-.791-.555-.229-.607-.08-.592.432.043 1.711.445.519 1.639"/></g><path fill="#b2c1c0" d="M10.248 8.748 9.968 5.467 2 2 5.467 9.967 8.748 10.248z"/><path fill="#d3976e" d="m49.573 48.09l-39.34-39.34-1.5 1.502 39.34 39.33c.207.209.711.039 1.125-.373.413-.414.581-.92.375-1.125"/><path fill="#ed4c5c" d="m51.47 42.494c-.253-.252-2.242.361-2.242.361s1.558-.766 1.49-1.115c-.061-.307-.574-.852-.884-.885-.674-.064-3 .75-3 .75s2.313-.828 2.246-1.502c-.029-.291-.824-.826-.824-.826-2.517 1.232-5.998 1.504-5.998 1.504l6.428 6.426c0 0 5.949-1.551 5.01-2.488-.754-.754-1.27-1.268-2.226-2.225"/><path fill="#ffce31" d="m48.01 46.531c2.107-.633 4.244-1.379 5.399-2.1-.212-.211-.471-.473-.755-.756-1.063.561-3.311 1.352-5.5 1.998l.856.858"/><path opacity=".5" fill="#3e4347" d="m45.47 40.24h-.002c-1.729.42-3.211.537-3.211.537l6.428 6.426c0 0 1.538-.402 2.929-.92-7.53-1.937-6.144-6.04-6.144-6.04"/><path fill="#ed4c5c" d="m42.476 51.49c-.254-.254.361-2.242.361-2.242s-.766 1.555-1.115 1.488c-.309-.059-.854-.574-.885-.885-.067-.674.747-3 .747-3s-.827 2.313-1.501 2.248c-.289-.029-.823-.826-.823-.826 1.231-2.516 1.499-5.998 1.499-5.998l6.426 6.426c0 0-1.549 5.951-2.486 5.01-.753-.754-1.268-1.27-2.223-2.225"/><path fill="#ffce31" d="m46.509 48.03c-.629 2.107-1.38 4.242-2.098 5.398-.213-.215-.471-.473-.755-.756.559-1.064 1.353-3.311 1.999-5.5l.854.858"/><path opacity=".5" fill="#3e4347" d="m40.22 45.49v-.002c.42-1.727.535-3.209.535-3.209l6.426 6.426c0 0-.4 1.539-.92 2.93-1.936-7.528-6.04-6.145-6.04-6.145"/><path fill="#b2c1c0" d="m12.226 61.3l35.659-11.9-.835-.832-31.836 10.622z"/><path opacity=".5" fill="#3e4347" d="m46.882 49.74l1-.34-.835-.832-1.01.334z"/><path fill="#b2c1c0" d="m61.3 12.221l-2.11 2.988-10.634 31.871.844.838z"/><g fill="#3e4347"><path opacity=".5" d="m48.894 46.07l-.338 1.01.844.838.329-1z"/><path opacity=".5" d="m8.748 10.248l1.5-1.5-.087-1.018-4.047.571-4.114-6.301 3.467 7.967z"/></g><path fill="#e8e8e8" d="m7.335 8.08l1.612.863-.867-1.609 1.375-.881-2.039.129-3.72-2.885 2.889 3.719-.129 2.037z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d3976e"><path d="m14.3 20.4c-12.5 12.5-5.2 28-2.9 33 .4.9.6 1.7.7 2.4-.9-.1-2.1.3-3.2 1.2-1.6 1.3-.9 3.4 0 4.2.6.6 1.2.9 2.7.3 2.3-.9 7.5-4.3 4.9-10.1-7.5-16.6 3-26.8 3-26.8l-4.8-4.6-.4.4"/><path d="m57.1 8.9c-.9 1.1-1.3 2.3-1.2 3.2-.7-.1-1.5-.3-2.4-.7-5.1-2.3-20.5-9.6-33 2.9l-.5.4 4.8 4.8c0 0 10.3-10.5 26.8-3 5.7 2.6 9.1-2.7 10-4.9.7-1.6.4-2.1-.3-2.7-.8-.9-2.8-1.7-4.2 0"/></g><path transform="matrix(.7071-.7071.7071.7071-8.18 19.7517)" fill="#fed0ac" d="m16 16.4h7.4v6.7h-7.4z"/><g fill="#89664c"><path d="m22.9 21.4l-4.8-4.8.8-.8 4.8 4.8z"/><path d="m16.6 18.1l4.8 4.8-.8.8-4.8-4.8z"/><path d="m11.7 59.3c.8-.8.8-2.6.4-3.4-.4 0-.8 0-1.2.1 1.3-.2.2 3.6-.3 2.8-.6-.8-.6-.2-.6-.1.1.5.5 1.8 1.7.6"/><path d="m59.3 11.7c-.8.8-2.6.8-3.4.4 0-.4 0-.7.1-1.2-.2 1.3 3.6.2 2.8-.3-.8-.6-.2-.6-.1-.6.5.1 1.8.5.6 1.7"/></g><path fill="#b2c1c0" d="m10.2 8.7l-.2-3.2-8-3.5 3.5 8 3.2.2z"/><path d="m49.6 48.1l-39.4-39.3-1.5 1.5 39.3 39.3c.2.2.7 0 1.1-.4.5-.4.7-.9.5-1.1" fill="#d3976e"/><path d="m51.5 42.5c-.3-.3-2.2.4-2.2.4s1.6-.8 1.5-1.1c-.1-.3-.6-.9-.9-.9-.7-.1-3 .8-3 .8s2.3-.8 2.2-1.5c0-.3-.8-.8-.8-.8-2.5 1.2-6 1.5-6 1.5l6.4 6.4c0 0 5.9-1.6 5-2.5-.8-.8-1.3-1.3-2.2-2.3" fill="#ed4c5c"/><path d="m48 46.5c2.1-.6 4.2-1.4 5.4-2.1-.2-.2-.5-.5-.8-.8-1.1.6-3.3 1.4-5.5 2l.9.9" fill="#ffce31"/><path d="m45.5 40.2c-1.7.4-3.2.5-3.2.5l6.4 6.4c0 0 1.5-.4 2.9-.9-7.5-1.9-6.1-6-6.1-6" opacity=".5" fill="#3e4347"/><path d="m42.5 51.5c-.3-.3.4-2.2.4-2.2s-.8 1.6-1.1 1.5c-.3-.1-.9-.6-.9-.9-.1-.7.7-3 .7-3s-.8 2.3-1.5 2.2c-.3 0-.8-.8-.8-.8 1.2-2.5 1.5-6 1.5-6l6.4 6.4c0 0-1.5 6-2.5 5-.8-.7-1.3-1.3-2.2-2.2" fill="#ed4c5c"/><path d="m46.5 48c-.6 2.1-1.4 4.2-2.1 5.4-.2-.2-.5-.5-.8-.8.6-1.1 1.4-3.3 2-5.5l.9.9" fill="#ffce31"/><path d="m40.2 45.5c.4-1.7.5-3.2.5-3.2l6.4 6.4c0 0-.4 1.5-.9 2.9-1.9-7.5-6-6.1-6-6.1" opacity=".5" fill="#3e4347"/><path fill="#b2c1c0" d="m12.2 61.3l35.7-11.9-.9-.8-31.8 10.6z"/><path opacity=".5" fill="#3e4347" d="m46.9 49.7l1-.3-.9-.8-1 .3z"/><path fill="#b2c1c0" d="m61.3 12.2l-2.1 3-10.6 31.9.8.8z"/><g fill="#3e4347"><path opacity=".5" d="m48.9 46.1l-.3 1 .8.8.3-1z"/><path opacity=".5" d="m8.7 10.2l1.5-1.5v-1l-4.1.6-4.1-6.3 3.5 8z"/></g><path fill="#e8e8e8" d="m7.3 8.1l1.6.8-.8-1.6 1.4-.8-2.1.1-3.7-2.9 2.9 3.7-.1 2.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f3fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f3fa.svg
index 17f0dd2..bf02dbd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f3fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f3fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b95a1e" d="m25 53h13.999l2.999-3h-19.998z"/><g fill="#3e4347"><path d="m22.569 24.938l-5.104 4.768v-8.64c0 0 2.112-1.134 2.112.773.001 2.161 2.992 3.099 2.992 3.099"/><path d="m19.889 11.07c2.287 0 3.688-2.202 3.688-4.13 0-3.138-2.313-4.945-5.27-4.945-2.283 0-5.621 2.284-4.628 6.873 1.133 5.235 2.243 14.83 2.243 14.83l1.906-.269c-.238-8.642-.754-12.973-.754-12.973s1.137.614 2.815.614"/></g><path fill="#dbb471" d="m19.08 7.373c-.058-.192-.148-.393-.29-.501-.137-.111-.289-.025-.419.107-.285.274-.373.623-.244.921.263.625 1.097.748 1.689.429.582-.241.714-.964.635-1.689-.058-.755-.385-1.287-.998-1.642-.576-.361-1.336-.456-1.894-.19-.661.305-1.184.832-1.485 1.49-.291.663-.359 1.452-.201 2.208.143.752.497 1.525 1.203 1.957-.82-.24-1.348-1.046-1.654-1.83-.288-.812-.339-1.74-.041-2.605.285-.872.971-1.599 1.769-2.024.927-.466 1.982-.299 2.792.177.406.251.77.58 1.025 1.019.262.461.351.908.381 1.365.023.454-.005.922-.184 1.389-.09.229-.214.464-.408.654-.221.216-.432.322-.652.406-.439.166-.957.223-1.428.056-.467-.16-.874-.54-.992-1.036-.136-.503.17-1.029.528-1.248.093-.063.198-.122.326-.144.13-.022.276.035.351.128.146.186.175.399.191.603"/><g fill="#3e4347"><path d="m41.43 24.938l5.103 4.768v-8.64c0 0-2.112-1.134-2.112.773-.001 2.161-2.991 3.099-2.991 3.099"/><path d="m44.11 11.07c-2.287 0-3.686-2.202-3.686-4.13 0-3.138 2.313-4.945 5.27-4.945 2.282 0 5.621 2.284 4.628 6.873-1.133 5.235-2.244 14.83-2.244 14.83l-1.906-.269c.238-8.642.755-12.973.755-12.973s-1.139.614-2.817.614"/></g><path fill="#dbb471" d="m44.918 7.373c.017-.204.045-.417.192-.605.074-.093.221-.15.351-.128.128.021.233.08.326.144.359.219.664.744.529 1.247-.119.497-.525.876-.992 1.037-.471.167-.989.111-1.428-.055-.221-.085-.432-.19-.652-.407-.195-.189-.318-.424-.408-.654-.179-.466-.208-.934-.185-1.388.03-.456.118-.905.382-1.365.254-.439.618-.768 1.024-1.02.81-.476 1.864-.643 2.792-.177.798.425 1.484 1.152 1.769 2.024.298.865.247 1.793-.041 2.604-.306.785-.833 1.591-1.653 1.831.705-.432 1.061-1.205 1.203-1.957.158-.757.089-1.545-.202-2.209-.302-.657-.824-1.185-1.485-1.489-.558-.266-1.318-.171-1.893.191-.613.354-.941.886-.999 1.642-.079.725.053 1.447.636 1.689.593.318 1.427.194 1.688-.431.129-.297.042-.646-.244-.921-.131-.131-.282-.216-.419-.105-.141.109-.232.31-.291.502"/><path fill="#3e4347" d="m18.657 11h26.685v2h-26.685z"/><path fill="#dbb471" d="m43.1 16h-22.2l-.953-3h24.1z"/><g fill="#3e4347"><path d="m41.744 18h-19.49l-.837-2h21.16z"/><path d="m22.291 60h19.417v2h-19.417z"/></g><path fill="#dbb471" d="m23.922 57h16.16l.69 3h-17.54z"/><g fill="#b95a1e"><path d="m41.31 18h-18.623c0 0 .736 2.448.736 3.235s-.736 3.059-.736 3.059h18.623c0 0-.736-2.271-.736-3.059s.736-3.235.736-3.235"/><path d="m47.1 33.21c0 4.386-1.697 10.416-4.105 14.789l-21.99.023c-2.415-4.377-4.117-10.418-4.117-14.813 0-9.42 6.764-11.229 15.11-11.229 8.343 0 15.11 1.81 15.11 11.23"/></g><g fill="#3e4347"><path d="m22.04 12.315h1.17v3.735h-1.17z"/><path d="m24.385 12.315h1.172v3.735h-1.172z"/><path d="m26.728 12.315h1.172v3.735h-1.172z"/><path d="m29.07 12.315h1.172v3.735h-1.172z"/><path d="m31.415 12.315h1.17v3.735h-1.17z"/><path d="m33.756 12.315h1.172v3.735h-1.172z"/><path d="m36.1 12.315h1.172v3.735h-1.172z"/><path d="m38.441 12.315h1.172v3.735h-1.172z"/><path d="m40.785 12.315h1.17v3.735h-1.17z"/><path d="m24.885 57h1.095v3.689h-1.095z"/><path d="m27.07 57h1.094v3.689h-1.094z"/><path d="m29.26 57h1.096v3.689h-1.096z"/><path d="m31.454 57h1.092v3.689h-1.092z"/><path d="m33.641 57h1.096v3.689h-1.096z"/><path d="m35.83 57h1.095v3.689h-1.095z"/><path d="m38.02 57h1.094v3.689h-1.094z"/><path d="m18.548 26l-1.099 3.03h29.1l-1.099-3.03z"/><path d="m22 50h19.999l1-2h-21.999z"/><path transform="matrix(-.7069-.7073.7073-.7069 35.944 57.37)" d="m28.647 20.02h2.422v2.422h-2.422z"/><path transform="matrix(-.7068-.7074.7074-.7068 43.25 60.4)" d="m32.931 20.02h2.421v2.422h-2.421z"/><path transform="matrix(-.7071-.7071.7071-.7071 28.638 54.33)" d="m24.361 20.02h2.422v2.422h-2.422z"/><path transform="matrix(.7069-.7073.7073.7069-3.757 33.403)" d="m37.22 20.02h2.423v2.422h-2.423z"/><path transform="matrix(-.7078-.7064.7064-.7078 8.902 73.66)" d="m18.946 34.25h1.482v1.481h-1.482z"/><path transform="matrix(-.7074-.7068.7068-.7074 4.21 84.95)" d="m18.946 40.863h1.483v1.481h-1.483z"/><path transform="matrix(-.7071-.7071.7071-.7071 14.699 89.3)" d="m25.1 40.863h1.482v1.482h-1.482z"/><path transform="matrix(-.7074-.7068.7068-.7074 19.395 78.01)" d="m25.1 34.25h1.481v1.481h-1.481z"/><path transform="matrix(.7069-.7073.7073.7069-20.415 27.325)" d="m21.284 36.815h2.963v2.964h-2.963z"/><path transform="matrix(-.7068-.7074.7074-.7068 25.18 93.65)" d="m31.26 40.862h1.481v1.482h-1.481z"/><path transform="matrix(-.7071-.7071.7071-.7071 29.884 82.36)" d="m31.26 34.25h1.481v1.482h-1.481z"/><path transform="matrix(.7071-.7071.7071.7071-18.609 31.668)" d="m27.44 36.815h2.964v2.964h-2.964z"/><path transform="matrix(-.7071-.7071.7071-.7071 35.715 98)" d="m37.413 40.863h1.482v1.482h-1.482z"/><path transform="matrix(-.7074-.7068.7068-.7074 40.42 86.71)" d="m37.414 34.25h1.481v1.481h-1.481z"/><path transform="matrix(.707-.7072.7072.707-16.806 36.03)" d="m33.595 36.814h2.963v2.965h-2.963z"/><path transform="matrix(-.7074-.7068.7068-.7074 46.25 102.35)" d="m43.568 40.863h1.483v1.481h-1.483z"/><path transform="matrix(-.7078-.7064.7064-.7078 50.952 91.06)" d="m43.569 34.25h1.482v1.481h-1.482z"/><path transform="matrix(.7071-.7071.7071.7071-15 40.37)" d="m39.751 36.815h2.964v2.964h-2.964z"/><path d="m38.999 53h-13.999c0 0 .442 1.333.448 1.846.008.675-.563 2.154-.563 2.154h14.228c0 0-.571-1.479-.563-2.154.008-.513.449-1.846.449-1.846"/></g><g fill="#dbb471"><path d="m16.949 32.02c-.022.326-.043.654-.047 1h30.19c-.004-.346-.024-.674-.047-1h-30.1"/><path d="m19.573 45.02h24.852c.138-.331.272-.661.402-1h-25.656c.13.337.264.669.402 1"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b95a1e" d="m25 53h14l3-3h-20z"/><g fill="#3e4347"><path d="m22.6 24.9l-5.1 4.8v-8.6c0 0 2.1-1.1 2.1.8 0 2.1 3 3 3 3"/><path d="m19.9 11.1c2.3 0 3.7-2.2 3.7-4.1 0-3.1-2.3-4.9-5.3-4.9-2.3 0-5.6 2.3-4.6 6.9 1.1 5.2 2.2 14.8 2.2 14.8l1.9-.3c-.2-8.6-.8-13-.8-13s1.2.6 2.9.6"/></g><path d="m19.1 7.4c-.1-.2-.2-.4-.3-.5-.1-.1-.3 0-.4.1-.3.3-.4.6-.2.9.3.6 1.1.7 1.7.4.6-.2.7-1 .6-1.7-.1-.8-.4-1.3-1-1.6-.6-.4-1.3-.5-1.9-.2-.7.3-1.2.8-1.5 1.5-.3.7-.4 1.5-.2 2.2.1.8.5 1.5 1.2 2-.8-.2-1.3-1-1.7-1.8-.3-.8-.3-1.7 0-2.6.3-.9 1-1.6 1.8-2 .9-.5 2-.3 2.8.2.4.3.8.6 1 1 .3.5.4.9.4 1.4 0 .5 0 .9-.2 1.4-.1.2-.2.5-.4.7-.2.2-.4.3-.7.4-.4.2-1 .2-1.4.1-.5-.2-.9-.5-1-1-.1-.5.2-1 .5-1.2.1-.1.2-.1.3-.1.1 0 .3 0 .4.1.1-.1.2.1.2.3" fill="#dbb471"/><g fill="#3e4347"><path d="m41.4 24.9l5.1 4.8v-8.6c0 0-2.1-1.1-2.1.8 0 2.1-3 3-3 3"/><path d="m44.1 11.1c-2.3 0-3.7-2.2-3.7-4.1 0-3.1 2.3-4.9 5.3-4.9 2.3 0 5.6 2.3 4.6 6.9-1.1 5.2-2.2 14.8-2.2 14.8l-1.9-.3c.2-8.6.8-13 .8-13s-1.2.6-2.9.6"/></g><path d="m44.9 7.4c0-.2 0-.4.2-.6.1-.1.2-.2.4-.1.1 0 .2.1.3.1.3.2.7.7.5 1.2-.1.5-.5.9-1 1-.5.2-1 .1-1.4-.1-.2-.1-.4-.2-.7-.4-.2-.1-.3-.3-.4-.5-.2-.5-.2-.9-.2-1.4 0-.5.1-.9.4-1.4.3-.4.6-.8 1-1 .8-.5 1.9-.6 2.8-.2.8.4 1.5 1.2 1.8 2 .3.9.2 1.8 0 2.6-.3.8-.8 1.6-1.7 1.8.7-.4 1.1-1.2 1.2-2 .2-.8.1-1.5-.2-2.2-.3-.7-.8-1.2-1.5-1.5-.6-.3-1.3-.2-1.9.2-.6.4-.9.9-1 1.6-.1.7.1 1.4.6 1.7.6.3 1.4.2 1.7-.4.1-.3 0-.6-.2-.9-.1-.1-.3-.2-.4-.1-.1.2-.2.4-.3.6" fill="#dbb471"/><path fill="#3e4347" d="m18.7 11h26.7v2h-26.7z"/><path fill="#dbb471" d="m43.1 16h-22.2l-1-3h24.2z"/><g fill="#3e4347"><path d="m41.7 18h-19.4l-.9-2h21.2z"/><path d="m22.3 60h19.4v2h-19.4z"/></g><path fill="#dbb471" d="m23.9 57h16.2l.7 3h-17.6z"/><g fill="#b95a1e"><path d="m41.3 18h-18.6c0 0 .7 2.4.7 3.2s-.7 3.1-.7 3.1h18.6c0 0-.7-2.3-.7-3.1s.7-3.2.7-3.2"/><path d="m47.1 33.2c0 4.4-1.7 10.4-4.1 14.8h-22c-2.4-4.4-4.1-10.4-4.1-14.8 0-9.4 6.8-11.2 15.1-11.2 8.3 0 15.1 1.8 15.1 11.2"/></g><g fill="#3e4347"><path d="m22 12.3h1.2v3.7h-1.2z"/><path d="m24.4 12.3h1.2v3.7h-1.2z"/><path d="m26.7 12.3h1.2v3.7h-1.2z"/><path d="m29.1 12.3h1.2v3.7h-1.2z"/><path d="m31.4 12.3h1.2v3.7h-1.2z"/><path d="m33.8 12.3h1.2v3.7h-1.2z"/><path d="m36.1 12.3h1.2v3.7h-1.2z"/><path d="m38.4 12.3h1.2v3.7h-1.2z"/><path d="m40.8 12.3h1.2v3.7h-1.2z"/><path d="m24.9 57h1.1v3.7h-1.1z"/><path d="m27.1 57h1.1v3.7h-1.1z"/><path d="m29.3 57h1.1v3.7h-1.1z"/><path d="m31.5 57h1.1v3.7h-1.1z"/><path d="m33.6 57h1.1v3.7h-1.1z"/><path d="m35.8 57h1.1v3.7h-1.1z"/><path d="m38 57h1.1v3.7h-1.1z"/><path d="m18.5 26l-1.1 3h29.1l-1-3z"/><path d="m22 50h20l1-2h-22z"/><path transform="matrix(.7073-.7069.7069.7073-6.2727 27.3214)" d="m28.6 20h2.4v2.4h-2.4z"/><path transform="matrix(.7074-.7068.7068.7074-5.0203 30.3445)" d="m32.9 20h2.4v2.4h-2.4z"/><path transform="matrix(.7071-.7071.7071.7071-7.5263 24.3015)" d="m24.4 20h2.4v2.4h-2.4z"/><path transform="matrix(.7069-.7073.7073.7069-3.7574 33.4031)" d="m37.2 20h2.4v2.4h-2.4z"/><path transform="matrix(.7064-.7078.7078.7064-18.9866 24.2058)" d="m18.9 34.2h1.5v1.5h-1.5z"/><path transform="matrix(.7068-.7074.7074.7068-23.6587 26.1257)" d="m18.9 40.9h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-21.8489 30.4597)" d="m25.1 40.9h1.5v1.5h-1.5z"/><path transform="matrix(.7068-.7074.7074.7068-17.175 28.5419)" d="m25.1 34.3h1.5v1.5h-1.5z"/><path transform="matrix(.7069-.7073.7073.7069-20.4137 27.3264)" d="m21.3 36.8h3v3h-3z"/><path transform="matrix(.7074-.7068.7068.7074-20.044 34.7884)" d="m31.3 40.9h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-15.3699 32.8752)" d="m31.3 34.3h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-18.609 31.6675)" d="m27.4 36.8h3v3h-3z"/><path transform="matrix(.7071-.7071.7071.7071-18.2431 39.165)" d="m37.4 40.9h1.5v1.5h-1.5z"/><path transform="matrix(.7068-.7074.7074.7068-13.5652 37.2511)" d="m37.4 34.2h1.5v1.5h-1.5z"/><path transform="matrix(.707-.7072.7072.707-16.806 36.0264)" d="m33.6 36.8h3v3h-3z"/><path transform="matrix(.7068-.7074.7074.7068-16.439 43.5447)" d="m43.6 40.9h1.5v1.5h-1.5z"/><path transform="matrix(.7064-.7078.7078.7064-11.7586 41.6333)" d="m43.6 34.2h1.5v1.5h-1.5z"/><path transform="matrix(.7071-.7071.7071.7071-15.0033 40.3727)" d="m39.8 36.8h3v3h-3z"/><path d="m39 53h-14c0 0 .4 1.3.4 1.8 0 .7-.6 2.2-.6 2.2h14.2c0 0-.6-1.5-.6-2.2.2-.5.6-1.8.6-1.8"/></g><g fill="#dbb471"><path d="m16.9 32c0 .3 0 .7 0 1h30.2c0-.3 0-.7 0-1h-30.2"/><path d="m19.6 45h24.9c.1-.3.3-.7.4-1h-25.7c.1.4.2.7.4 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f400.svg b/build/js/jsxc/lib/emojione/assets/svg/1f400.svg
index fe52ada..8dcadea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f400.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f400.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m18.932 46.04c-.73.238-1.46.574-2.161.975s-1.369.867-1.968 1.387c-.597.518-1.127 1.092-1.53 1.693-.404.605-.67 1.232-.754 1.846-.084.612.011 1.224.305 1.843.292.618.781 1.225 1.378 1.772.299.275.618.534.967.787.341.25.703.488 1.067.708.735.439 1.512.811 2.329 1.112 1.633.61 3.422.948 5.243 1.211 1.825.261 3.687.454 5.544.688 1.857.232 3.716.494 5.559.814 1.845.318 3.677.693 5.495 1.118-1.851-.249-3.704-.443-5.563-.583-1.857-.141-3.713-.223-5.576-.273-1.861-.054-3.725-.068-5.613-.153-1.886-.089-3.819-.253-5.747-.764-.962-.253-1.912-.597-2.823-1.03-.456-.217-.899-.449-1.338-.709-.431-.251-.866-.537-1.284-.852-.834-.633-1.64-1.404-2.254-2.406-.307-.5-.559-1.058-.723-1.65-.166-.594-.241-1.22-.225-1.837.017-.615.122-1.22.288-1.786.168-.568.396-1.102.659-1.604.531-.998 1.198-1.865 1.931-2.641.733-.775 1.537-1.461 2.395-2.074.859-.611 1.783-1.154 2.786-1.6l1.613 4.01"/><ellipse fill="#999a9c" cx="44.563" cy="12.37" rx="10.437" ry="10.371"/><ellipse fill="#ffc5d3" cx="44.488" cy="13.607" rx="7.733" ry="7.687"/><ellipse fill="#999a9c" cx="19.436" cy="12.37" rx="10.436" ry="10.371"/><ellipse fill="#ffc5d3" cx="19.51" cy="13.607" rx="7.733" ry="7.687"/><path fill="#999a9c" d="m50.29 45.933c0-10.155-3.98-19.497-5.304-22.32-.112-.265-.228-.527-.345-.791-1.704-3.819-5.744-12.198-12.642-12.198-6.897 0-10.94 8.379-12.644 12.197-.117.263-.231.524-.344.788-1.321 2.819-5.305 12.165-5.305 22.323 0 8.441 2.697 10.639 6.902 10.98.237.924 1.107 1.612 2.15 1.612h1.537c1.121 0 2.041-.796 2.189-1.825 1.74-.147 3.591-.301 5.512-.301 1.849 0 3.632.143 5.315.285.141 1.037 1.063 1.841 2.191 1.841h1.537c1.037 0 1.902-.681 2.146-1.597 4.322-.288 7.105-2.42 7.105-10.994"/><g fill="#ffc5d3"><ellipse cx="41.707" cy="33.771" rx="3.218" ry="2.228"/><ellipse cx="22.292" cy="33.771" rx="3.216" ry="2.228"/></g><path fill="#3e4347" d="m34.886 33.765c-.579-.609-2.355-.656-2.885-.656-.531 0-2.307.047-2.885.656-.411.434-.093 1.512 1 2.441.692.586 1.353.771 1.883.771s1.191-.186 1.882-.771c1.096-.93 1.414-2.01 1-2.441"/><ellipse fill="#fff" cx="25.16" cy="26.72" rx="4.61" ry="4.496"/><ellipse fill="#3e4347" cx="25.16" cy="26.72" rx="3.191" ry="3.113"/><ellipse fill="#fff" cx="38.845" cy="26.72" rx="4.612" ry="4.496"/><g fill="#3e4347"><ellipse cx="38.845" cy="26.72" rx="3.192" ry="3.113"/><path d="m31 39.29c.059-.312.274-.549.48-.731.211-.19.454-.329.708-.446.259-.104.531-.187.825-.2.275-.017.644.015.85.271-.288.034-.478.201-.707.297-.218.117-.445.218-.672.321-.232.093-.465.189-.711.263-.241.089-.504.117-.773.225"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.9 46c-.7.2-1.5.6-2.2 1s-1.4.9-2 1.4c-.6.5-1.1 1.1-1.5 1.7-.4.6-.7 1.2-.8 1.8-.1.6 0 1.2.3 1.8.3.6.8 1.2 1.4 1.8.3.3.6.5 1 .8.3.2.7.5 1.1.7.7.4 1.5.8 2.3 1.1 1.6.6 3.4.9 5.2 1.2 1.8.3 3.7.5 5.5.7 1.9.2 3.7.5 5.6.8 1.8.3 3.7.7 5.5 1.1-1.9-.2-3.7-.4-5.6-.6-1.9-.1-3.7-.2-5.6-.3-1.9-.1-3.7-.1-5.6-.2-1.9-.1-3.8-.3-5.7-.8-1-.3-1.9-.6-2.8-1-.5-.2-.9-.4-1.3-.7-.4-.3-.9-.5-1.3-.9-.8-.6-1.6-1.4-2.3-2.4-.3-.5-.6-1.1-.7-1.7-.2-.6-.2-1.2-.2-1.8 0-.6.1-1.2.3-1.8.2-.6.4-1.1.7-1.6.5-1 1.2-1.9 1.9-2.6.7-.8 1.5-1.5 2.4-2.1.9-.6 1.8-1.2 2.8-1.6l1.6 4.2" fill="#f29a2e"/><ellipse cx="44.6" cy="12.4" rx="10.4" ry="10.4" fill="#999a9c"/><ellipse cx="44.5" cy="13.6" rx="7.7" ry="7.7" fill="#ffc5d3"/><ellipse cx="19.4" cy="12.4" rx="10.4" ry="10.4" fill="#999a9c"/><ellipse cx="19.5" cy="13.6" rx="7.7" ry="7.7" fill="#ffc5d3"/><path d="m50.3 45.9c0-10.2-4-19.5-5.3-22.3-.1-.3-.2-.5-.3-.8-1.8-3.8-5.8-12.2-12.7-12.2-6.9 0-10.9 8.4-12.6 12.2-.1.3-.2.5-.3.8-1.3 2.8-5.3 12.2-5.3 22.3 0 8.4 2.7 10.6 6.9 11 .2.9 1.1 1.6 2.1 1.6h1.5c1.1 0 2-.8 2.2-1.8 1.7-.1 3.6-.3 5.5-.3 1.8 0 3.6.1 5.3.3.1 1 1.1 1.8 2.2 1.8h1.5c1 0 1.9-.7 2.1-1.6 4.4-.3 7.2-2.4 7.2-11" fill="#999a9c"/><g fill="#ffc5d3"><ellipse cx="41.7" cy="33.8" rx="3.2" ry="2.2"/><ellipse cx="22.3" cy="33.8" rx="3.2" ry="2.2"/></g><path d="m34.9 33.8c-.6-.6-2.4-.7-2.9-.7-.5 0-2.3 0-2.9.7-.4.4-.1 1.5 1 2.4.7.6 1.4.8 1.9.8s1.2-.2 1.9-.8c1.1-.9 1.4-2 1-2.4" fill="#3e4347"/><ellipse cx="25.2" cy="26.7" rx="4.6" ry="4.5" fill="#fff"/><ellipse cx="25.2" cy="26.7" rx="3.2" ry="3.1" fill="#3e4347"/><ellipse cx="38.8" cy="26.7" rx="4.6" ry="4.5" fill="#fff"/><g fill="#3e4347"><ellipse cx="38.8" cy="26.7" rx="3.2" ry="3.1"/><path d="m31 39.3c.1-.3.3-.5.5-.7.2-.2.5-.3.7-.4.3-.1.5-.2.8-.2.3 0 .6 0 .8.3-.3 0-.5.2-.7.3-.2.1-.4.2-.7.3-.2.1-.5.2-.7.3-.2 0-.4 0-.7.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f401.svg b/build/js/jsxc/lib/emojione/assets/svg/1f401.svg
index b4c3332..944b4a2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f401.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f401.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fc97b2" d="m24.912 46.04c-.729.239-1.46.573-2.161.975s-1.369.869-1.967 1.388c-.598.518-1.128 1.091-1.531 1.692-.404.604-.67 1.234-.754 1.846s.012 1.224.305 1.844c.292.617.781 1.223 1.378 1.771.3.275.618.535.968.787.34.251.702.488 1.066.709.736.439 1.512.811 2.329 1.111 1.634.609 3.422.949 5.243 1.212 1.825.261 3.687.454 5.544.688 1.858.231 3.716.494 5.559.814 1.845.318 3.677.692 5.495 1.117-1.85-.249-3.704-.444-5.563-.583-1.855-.141-3.713-.222-5.574-.271-1.862-.055-3.726-.07-5.614-.154-1.886-.09-3.819-.254-5.747-.765-.961-.253-1.912-.597-2.822-1.028-.457-.219-.9-.452-1.338-.711-.432-.251-.867-.537-1.285-.852-.834-.633-1.639-1.404-2.253-2.406-.307-.5-.56-1.058-.723-1.65-.167-.594-.241-1.22-.226-1.838.017-.613.123-1.217.289-1.785.168-.567.396-1.102.659-1.604.53-.998 1.198-1.865 1.93-2.641.733-.775 1.537-1.461 2.395-2.074.859-.612 1.783-1.154 2.786-1.599l1.612 4.01"/><g fill="#c4c5c6"><path d="m42.963 51.863c0 4.171-5.458 5.524-10.964 5.524-5.504 0-10.963-1.354-10.963-5.524 0-13.839 8.116-18.06 10.963-18.06 2.848 0 10.964 4.226 10.964 18.06"/><path d="m29.606 56.41c0 1.167-.994 2.113-2.221 2.113h-1.537c-1.226 0-2.221-.946-2.221-2.113v-.045c0-1.164.995-2.111 2.221-2.111h1.537c1.227 0 2.221.947 2.221 2.111v.045"/><path d="m40.37 56.41c0 1.167-.994 2.113-2.221 2.113h-1.537c-1.226 0-2.221-.946-2.221-2.113v-.045c0-1.164.995-2.111 2.221-2.111h1.537c1.227 0 2.221.947 2.221 2.111v.045"/></g><ellipse fill="#b5b5b5" cx="44.563" cy="12.37" rx="10.436" ry="10.372"/><ellipse fill="#ffc5d3" cx="44.488" cy="13.607" rx="7.733" ry="7.686"/><ellipse fill="#b5b5b5" cx="19.436" cy="12.37" rx="10.436" ry="10.372"/><ellipse fill="#ffc5d3" cx="19.511" cy="13.607" rx="7.733" ry="7.686"/><path fill="#c4c5c6" d="m44.643 22.822c-1.704-3.819-5.745-12.197-12.642-12.197-6.898 0-10.941 8.378-12.644 12.197-.866 1.941-1.621 3.836-1.896 6.648-.48 4.907 5.349 9.13 8.508 9.13 1.511 0 3.112 2.927 6.03 2.927 2.916 0 4.519-2.927 6.03-2.927 3.158 0 8.986-4.223 8.508-9.13-.275-2.812-1.031-4.706-1.895-6.648"/><g fill="#ffc5d3"><ellipse cx="41.707" cy="33.772" rx="3.217" ry="2.227"/><ellipse cx="22.292" cy="33.772" rx="3.217" ry="2.227"/></g><path fill="#3e4347" d="m34.886 33.766c-.58-.61-2.355-.657-2.885-.657-.531 0-2.307.047-2.885.657-.412.434-.094 1.512 1 2.44.691.587 1.352.771 1.883.771.529 0 1.189-.185 1.882-.771 1.095-.929 1.413-2.01 1-2.44"/><ellipse fill="#fff" cx="25.15" cy="26.721" rx="4.61" ry="4.496"/><ellipse fill="#3e4347" cx="25.15" cy="26.721" rx="3.192" ry="3.113"/><ellipse fill="#fff" cx="38.844" cy="26.721" rx="4.612" ry="4.496"/><g fill="#3e4347"><ellipse cx="38.844" cy="26.721" rx="3.192" ry="3.113"/><path d="m31 39.29c.058-.312.273-.55.48-.731.211-.191.454-.329.707-.446.259-.104.531-.188.825-.2.275-.017.645.014.85.271-.288.034-.478.201-.706.297-.219.117-.445.218-.672.321-.232.092-.464.189-.711.263-.242.089-.505.117-.773.225"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.9 46c-.7.2-1.5.6-2.2 1s-1.4.9-2 1.4c-.6.5-1.1 1.1-1.5 1.7-.4.6-.7 1.2-.8 1.8s0 1.2.3 1.8c.3.6.8 1.2 1.4 1.8.3.3.6.5 1 .8.3.3.7.5 1.1.7.7.4 1.5.8 2.3 1.1 1.6.6 3.4.9 5.2 1.2 1.8.3 3.7.5 5.5.7 1.9.2 3.7.5 5.6.8 1.8.3 3.7.7 5.5 1.1-1.8-.2-3.7-.4-5.6-.6-1.9-.1-3.7-.2-5.6-.3-1.9-.1-3.7-.1-5.6-.2-1.9-.1-3.8-.3-5.7-.8-1-.3-1.9-.6-2.8-1-.5-.2-.9-.5-1.3-.7-.4-.3-.9-.5-1.3-.9-.8-.6-1.6-1.4-2.3-2.4-.3-.5-.6-1.1-.7-1.7-.2-.6-.2-1.2-.2-1.8 0-.6.1-1.2.3-1.8.2-.6.4-1.1.7-1.6.5-1 1.2-1.9 1.9-2.6.7-.8 1.5-1.5 2.4-2.1.9-.6 1.8-1.2 2.8-1.6l1.6 4.2" fill="#fc97b2"/><g fill="#c4c5c6"><path d="m43 51.9c0 4.2-5.5 5.5-11 5.5-5.5 0-11-1.4-11-5.5 0-13.8 8.1-18.1 11-18.1 2.8 0 11 4.2 11 18.1"/><path d="m29.6 56.4c0 1.2-1 2.1-2.2 2.1h-1.5c-1.2 0-2.2-.9-2.2-2.1 0-1.2 1-2.1 2.2-2.1h1.5c1.2 0 2.2.9 2.2 2.1"/><path d="m40.4 56.4c0 1.2-1 2.1-2.2 2.1h-1.5c-1.2 0-2.2-.9-2.2-2.1 0-1.2 1-2.1 2.2-2.1h1.5c1.2 0 2.2.9 2.2 2.1"/></g><ellipse cx="44.6" cy="12.4" rx="10.4" ry="10.4" fill="#b5b5b5"/><ellipse cx="44.5" cy="13.6" rx="7.7" ry="7.7" fill="#ffc5d3"/><ellipse cx="19.4" cy="12.4" rx="10.4" ry="10.4" fill="#b5b5b5"/><ellipse cx="19.5" cy="13.6" rx="7.7" ry="7.7" fill="#ffc5d3"/><path d="m44.6 22.8c-1.7-3.8-5.7-12.2-12.6-12.2-6.9 0-10.9 8.4-12.6 12.2-.9 1.9-1.6 3.8-1.9 6.6-.5 4.9 5.3 9.1 8.5 9.1 1.5 0 3.1 2.9 6 2.9 2.9 0 4.5-2.9 6-2.9 3.2 0 9-4.2 8.5-9.1-.2-2.7-1-4.6-1.9-6.6" fill="#c4c5c6"/><g fill="#ffc5d3"><ellipse cx="41.7" cy="33.8" rx="3.2" ry="2.2"/><ellipse cx="22.3" cy="33.8" rx="3.2" ry="2.2"/></g><path d="m34.9 33.8c-.6-.6-2.4-.7-2.9-.7-.5 0-2.3 0-2.9.7-.4.4-.1 1.5 1 2.4.7.6 1.4.8 1.9.8.5 0 1.2-.2 1.9-.8 1.1-.9 1.4-2 1-2.4" fill="#3e4347"/><ellipse cx="25.2" cy="26.7" rx="4.6" ry="4.5" fill="#fff"/><ellipse cx="25.2" cy="26.7" rx="3.2" ry="3.1" fill="#3e4347"/><ellipse cx="38.8" cy="26.7" rx="4.6" ry="4.5" fill="#fff"/><g fill="#3e4347"><ellipse cx="38.8" cy="26.7" rx="3.2" ry="3.1"/><path d="m31 39.3c.1-.3.3-.5.5-.7.2-.2.5-.3.7-.4.3-.1.5-.2.8-.2.3 0 .6 0 .8.3-.3 0-.5.2-.7.3-.2.1-.4.2-.7.3-.2.1-.5.2-.7.3-.2 0-.4 0-.7.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f402.svg b/build/js/jsxc/lib/emojione/assets/svg/1f402.svg
index 8548d6a..491e8d1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f402.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f402.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#896349" d="m41.14 38.847c-.607-.896-1.621-1.482-2.77-1.482-1.861 0-3.367 1.538-3.367 3.44v12.337c0 1.898 1.506 3.437 3.367 3.437s3.367-1.538 3.367-3.437v-4.476-7.861c0-.728-.22-1.403-.597-1.958"/><path fill="#3e4347" d="m38.37 56.58c1.861 0 3.367-1.538 3.367-3.437h-6.734c0 1.899 1.506 3.437 3.367 3.437"/><path fill="none" stroke="#a87654" stroke-width="1.5" stroke-miterlimit="10" d="m42.593 30.483c0 0 10.293-2.592 15.592-9.632"/><g fill="#a87654"><path d="m54.88 24.18c-.076-2.67.299-4.863 1.117-6.175 1.234-.828 3.359-1.247 5.992-1.187.08 2.672-.297 4.864-1.115 6.177-1.236.827-3.359 1.249-5.994 1.185"/><path d="m55.3 36.514c0 6.795-6.03 12.304-13.469 12.304h-23.939v-24.63h23.939c7.44-.001 13.469 5.509 13.469 12.326"/><path d="m36.571 38.447c-.883-1.302-2.352-2.153-4.02-2.153-2.701 0-4.889 2.233-4.889 4.995v15.719c0 2.758 2.188 4.991 4.889 4.991 2.703 0 4.89-2.233 4.89-4.991v-6.498-9.221c0-1.056-.322-2.035-.869-2.842"/></g><path fill="#3e4347" d="m32.55 61.999c2.703 0 4.89-2.233 4.89-4.991h-9.779c.001 2.758 2.188 4.991 4.889 4.991"/><path fill="#a87654" d="m16.498 36.34c-2.701 0-4.885 2.229-4.885 4.985v5.641 8.49 1.557c0 2.752 2.184 4.981 4.885 4.981 2.693 0 4.875-2.229 4.875-4.981v-15.688c0-2.756-2.182-4.985-4.875-4.985"/><path fill="#3e4347" d="m16.498 61.999c-2.701 0-4.885-2.229-4.885-4.981h9.76c0 2.752-2.182 4.981-4.875 4.981"/><path fill="#a87654" d="m54.51 34.621c-.805-1.186-2.143-1.96-3.662-1.96-2.459 0-4.449 2.034-4.449 4.547v16.308c0 2.509 1.99 4.544 4.449 4.544 2.461 0 4.453-2.035 4.453-4.544v-5.916-10.392c0-.961-.295-1.853-.791-2.587"/><path fill="#3e4347" d="m50.845 58.06c2.461 0 4.453-2.035 4.453-4.544h-8.902c0 2.508 1.99 4.544 4.449 4.544"/><path fill="#c1875d" d="m46.854 13.435c.125 4.04-.482 7.361-1.799 9.349-1.992 1.248-5.42 1.888-9.668 1.793-.125-4.04.48-7.364 1.801-9.351 1.993-1.247 5.418-1.887 9.666-1.791"/><path fill="#3e4347" d="m44.33 15.893c.07 2.258-.27 4.112-1.01 5.224-1.113.699-3.03 1.056-5.404 1-.07-2.261.268-4.115 1.01-5.227 1.115-.699 3.03-1.055 5.404-1"/><path fill="#c1875d" d="m13.671 24.523c-4.201.119-7.65-.464-9.713-1.733-1.299-1.917-1.961-5.215-1.861-9.304 4.197-.119 7.646.461 9.709 1.731 1.301 1.92 1.961 5.216 1.865 9.306"/><path fill="#3e4347" d="m11.142 22.11c-2.365.066-4.307-.261-5.471-.977-.732-1.08-1.105-2.938-1.051-5.243 2.367-.069 4.311.26 5.473.976.733 1.082 1.108 2.94 1.049 5.244"/><path fill="#c1875d" d="m41.522 24.654c0 2.892-4.574 6.922-4.574 11.128 0 0-5.8 6.404-12.425 6.404-6.492 0-12.266-6.193-12.266-6.193 0-4.312-4.732-8.439-4.732-11.339 0-3.848 1.521-7.94 6.145-13.257 1.086-1.248 1.391-2.869 10.854-2.869 9.386 0 10.07 1.311 11.05 2.373 4.527 4.894 5.946 8.663 5.946 13.753"/><path fill="#db9e75" d="m37.731 40.07c0 3.847-3.096 5.605-13.205 5.605-10.11 0-13.203-1.759-13.203-5.605 0-3.848.277-8.324 13.203-8.324 12.926.001 13.205 4.477 13.205 8.324"/><g fill="#3e4347"><ellipse cx="33.27" cy="22.912" rx="3.726" ry="3.975"/><ellipse cx="15.773" cy="22.912" rx="3.727" ry="3.975"/></g><g fill="#db9e75"><path d="m33.37 30.98c-2.214-1.091-5.343.881-6.994 4.403-1.652 3.528-1.191 7.272 1.027 8.363 2.213 1.095 5.346-.876 6.992-4.401 1.649-3.526 1.19-7.271-1.025-8.365"/><path d="m15.685 30.98c-2.217 1.096-2.676 4.839-1.025 8.366 1.648 3.524 4.779 5.496 6.994 4.401 2.215-1.092 2.676-4.836 1.021-8.361-1.642-3.525-4.777-5.498-6.99-4.406"/></g><g fill="#f6c799"><path d="m15.599 10.73c-9.586 2.308-13.586-8.73-13.586-8.73-.527 15.974 14.817 14.571 15.533 13.373.959-1.604.276-5.179-1.947-4.643"/><path d="m33.448 10.73c9.586 2.308 13.584-8.73 13.584-8.73.527 15.975-14.814 14.571-15.531 13.373-.959-1.604-.275-5.179 1.947-4.643"/></g><g fill="#3e4347"><path d="m32.574 33.05c-1.623-.799-3.916.646-5.125 3.227-1.211 2.585-.873 5.328.752 6.128 1.623.802 3.918-.643 5.123-3.226 1.208-2.583.872-5.328-.75-6.129"/><path d="m16.484 33.05c-1.625.803-1.961 3.546-.752 6.129 1.207 2.583 3.502 4.03 5.125 3.226 1.621-.8 1.959-3.543.75-6.126-1.205-2.584-3.502-4.03-5.123-3.229"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.1 38.8c-.6-.9-1.6-1.5-2.8-1.5-1.9 0-3.4 1.5-3.4 3.4v12.3c0 1.9 1.5 3.4 3.4 3.4s3.4-1.5 3.4-3.4v-4.5-7.9c0-.5-.2-1.2-.6-1.8" fill="#896349"/><path d="m38.4 56.6c1.9 0 3.4-1.5 3.4-3.4h-6.8c0 1.8 1.5 3.4 3.4 3.4" fill="#3e4347"/><path d="m42.6 30.5c0 0 10.3-2.6 15.6-9.6" fill="none" stroke="#a87654" stroke-width="1.5" stroke-miterlimit="10"/><g fill="#a87654"><path d="m54.9 24.2c-.1-2.7.3-4.9 1.1-6.2 1.2-.8 3.4-1.2 6-1.2.1 2.7-.3 4.9-1.1 6.2-1.3.8-3.4 1.2-6 1.2"/><path d="m55.3 36.5c0 6.8-6 12.3-13.5 12.3h-23.9v-24.6h23.9c7.5 0 13.5 5.5 13.5 12.3"/><path d="m36.6 38.4c-.9-1.3-2.4-2.2-4-2.2-2.7 0-4.9 2.2-4.9 5v15.8c0 2.8 2.2 5 4.9 5 2.7 0 4.9-2.2 4.9-5v-6.5-9.2c-.1-1.1-.4-2-.9-2.9"/></g><path d="m32.5 62c2.7 0 4.9-2.2 4.9-5h-9.8c.1 2.8 2.2 5 4.9 5" fill="#3e4347"/><path d="m16.5 36.3c-2.7 0-4.9 2.2-4.9 5v5.7 8.5 1.5c0 2.8 2.2 5 4.9 5 2.7 0 4.9-2.2 4.9-5v-15.7c0-2.7-2.2-5-4.9-5" fill="#a87654"/><path d="m16.5 62c-2.7 0-4.9-2.2-4.9-5h9.8c0 2.8-2.2 5-4.9 5" fill="#3e4347"/><path d="m54.5 34.6c-.8-1.2-2.1-2-3.7-2-2.5 0-4.4 2-4.4 4.5v16.3c0 2.5 2 4.5 4.4 4.5 2.5 0 4.5-2 4.5-4.5v-5.9-10.3c0-1-.3-1.8-.8-2.6" fill="#a87654"/><path d="m50.8 58.1c2.5 0 4.5-2 4.5-4.5h-8.9c0 2.4 2 4.5 4.4 4.5" fill="#3e4347"/><path d="m46.9 13.4c.1 4-.5 7.4-1.8 9.3-2 1.2-5.4 1.9-9.7 1.8-.1-4 .5-7.4 1.8-9.4 2-1.1 5.4-1.8 9.7-1.7" fill="#c1875d"/><path d="m44.3 15.9c.1 2.3-.3 4.1-1 5.2-1.1.7-3 1.1-5.4 1-.1-2.3.3-4.1 1-5.2 1.1-.7 3.1-1.1 5.4-1" fill="#3e4347"/><path d="m13.7 24.5c-4.2.1-7.7-.4-9.7-1.7-1.3-1.9-2-5.2-1.9-9.3 4.2-.1 7.6.5 9.7 1.7 1.3 1.9 2 5.2 1.9 9.3" fill="#c1875d"/><path d="m11.1 22.1c-2.4.1-4.3-.3-5.5-1-.7-1.1-1.1-2.9-1.1-5.2 2.4-.1 4.3.3 5.5 1 .8 1.1 1.2 2.9 1.1 5.2" fill="#3e4347"/><path d="m41.5 24.7c0 2.9-4.6 6.9-4.6 11.1 0 0-5.8 6.4-12.4 6.4-6.5 0-12.2-6.2-12.2-6.2 0-4.3-4.7-8.4-4.7-11.3 0-3.8 1.5-7.9 6.1-13.3 1.1-1.2 1.4-2.9 10.9-2.9 9.4 0 10.1 1.3 11.1 2.4 4.4 4.9 5.8 8.7 5.8 13.8" fill="#c1875d"/><path d="m37.7 40.1c0 3.8-3.1 5.6-13.2 5.6s-13.2-1.8-13.2-5.6c0-3.8.3-8.3 13.2-8.3 13-.1 13.2 4.4 13.2 8.3" fill="#db9e75"/><g fill="#3e4347"><ellipse cx="33.3" cy="22.9" rx="3.7" ry="4"/><ellipse cx="15.8" cy="22.9" rx="3.7" ry="4"/></g><g fill="#db9e75"><path d="m33.4 31c-2.2-1.1-5.3.9-7 4.4-1.7 3.5-1.2 7.3 1 8.4 2.2 1.1 5.3-.9 7-4.4 1.6-3.6 1.2-7.3-1-8.4"/><path d="m15.7 31c-2.2 1.1-2.7 4.8-1 8.4 1.6 3.5 4.8 5.5 7 4.4 2.2-1.1 2.7-4.8 1-8.4-1.7-3.5-4.8-5.5-7-4.4"/></g><g fill="#f6c799"><path d="M15.6,10.7C6,13,2,2,2,2C1.5,18,16.8,16.6,17.5,15.4C18.5,13.8,17.8,10.2,15.6,10.7z"/><path d="m33.4 10.7c9.6 2.3 13.6-8.7 13.6-8.7.5 16-14.8 14.6-15.5 13.4-1-1.6-.3-5.2 1.9-4.7"/></g><g fill="#3e4347"><path d="m32.6 33.1c-1.6-.8-3.9.6-5.1 3.2-1.2 2.6-.9 5.3.8 6.1 1.6.8 3.9-.6 5.1-3.2 1.1-2.6.8-5.3-.8-6.1"/><path d="m16.5 33.1c-1.6.8-2 3.5-.8 6.1 1.2 2.6 3.5 4 5.1 3.2 1.6-.8 2-3.5.8-6.1-1.2-2.6-3.5-4-5.1-3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f403.svg b/build/js/jsxc/lib/emojione/assets/svg/1f403.svg
index 71c28f9..9698268 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f403.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f403.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#656f72" d="m45.14 38.918c-.609-.893-1.625-1.478-2.777-1.478-1.867 0-3.379 1.533-3.379 3.429v12.3c0 1.893 1.512 3.427 3.379 3.427s3.379-1.534 3.379-3.427v-4.462-7.838c-.001-.724-.223-1.396-.602-1.951"/><path fill="#3e4347" d="m42.36 56.6c1.867 0 3.379-1.534 3.379-3.427h-6.758c0 1.893 1.512 3.427 3.379 3.427"/><path fill="none" stroke="#728389" stroke-width="1.5" stroke-miterlimit="10" d="m50.92 35.29c0 0 7.15-7.791 7.631-16.536"/><g fill="#728389"><path d="m57.656 23.325c-1.559-2.175-2.477-4.2-2.527-5.737.568-1.363 2.109-2.876 4.344-4.268 1.563 2.176 2.477 4.2 2.527 5.738-.57 1.362-2.107 2.876-4.344 4.267"/><path d="m59.35 36.593c0 6.773-6.05 12.266-13.516 12.266h-24.02v-24.556h24.02c7.465 0 13.516 5.492 13.516 12.29"/></g><path fill="#808f96" d="m40.557 38.52c-.887-1.297-2.361-2.146-4.03-2.146-2.711 0-4.907 2.227-4.907 4.98v15.67c0 2.749 2.196 4.976 4.907 4.976 2.713 0 4.906-2.227 4.906-4.976v-6.479-9.191c0-1.054-.323-2.031-.871-2.834"/><path fill="#3e4347" d="m36.521 61.999c2.713 0 4.906-2.227 4.906-4.976h-9.813c.001 2.749 2.197 4.976 4.907 4.976"/><path fill="#808f96" d="m20.414 36.423c-2.711 0-4.902 2.225-4.902 4.972v5.623 8.465 1.551c0 2.743 2.191 4.966 4.902 4.966 2.703 0 4.893-2.223 4.893-4.966v-15.639c-.001-2.748-2.19-4.972-4.893-4.972"/><path fill="#3e4347" d="m20.414 61.999c-2.711 0-4.902-2.223-4.902-4.966h9.795c-.001 2.743-2.19 4.966-4.893 4.966"/><path fill="#728389" d="m58.55 34.705c-.807-1.182-2.15-1.954-3.674-1.954-2.467 0-4.465 2.027-4.465 4.533v16.258c0 2.502 1.998 4.529 4.465 4.529 2.469 0 4.469-2.027 4.469-4.529v-5.898-10.36c0-.958-.295-1.846-.795-2.579"/><path fill="#3e4347" d="m54.879 58.07c2.469 0 4.469-2.027 4.469-4.529h-8.934c0 2.502 1.998 4.529 4.465 4.529"/><path fill="#8d9ba3" d="m51.06 29.17c-4.311.134-7.85-.507-9.969-1.899-1.332-2.104-2.01-5.724-1.912-10.21 4.311-.133 7.852.507 9.969 1.9 1.331 2.105 2.01 5.723 1.912 10.209"/><path fill="#3e4347" d="m48.44 26.503c-2.408.074-4.385-.283-5.57-1.062-.746-1.176-1.125-3.2-1.07-5.707 2.41-.074 4.389.283 5.572 1.062.746 1.177 1.127 3.2 1.068 5.707"/><path fill="#8d9ba3" d="m17.654 17c.129 4.438-.494 8.08-1.848 10.259-2.043 1.372-5.563 2.071-9.922 1.966-.129-4.435.494-8.08 1.846-10.256 2.049-1.373 5.564-2.071 9.924-1.969"/><path fill="#3e4347" d="m15.09 19.674c.07 2.499-.279 4.552-1.043 5.78-1.15.774-3.135 1.167-5.592 1.109-.074-2.5.277-4.552 1.041-5.779 1.155-.775 3.135-1.17 5.594-1.11"/><path fill="#8d9ba3" d="m42.516 29.746c0 12.134-5.736 14.493-14.05 14.493-8.313 0-14.05-2.358-14.05-14.493 0-3.836-2.18-10.902 1.471-16.202 2.682-3.899 3.281-4.852 12.578-4.852 9.35 0 10.02.645 12.735 4.356 3.573 4.879 1.314 11.622 1.314 16.698"/><g fill="#3e4347"><ellipse cx="35.24" cy="22.04" rx="3.74" ry="3.963"/><ellipse cx="21.692" cy="22.04" rx="3.739" ry="3.963"/></g><g fill="#c5ccd6"><path d="m19.541 10.295c-17.198 6.069-13.34-7.804-14.588-8.265-2.459-.91-9.682 19.303 14.338 15.667 7.693-1.164 4.478-8.894.25-7.402"/><path d="m37.451 10.295c17.197 6.068 13.342-7.805 14.588-8.266 2.461-.91 9.682 19.304-14.338 15.667-7.694-1.163-4.478-8.893-.25-7.401"/><path d="m41.512 37.75c0 4.404-3.061 6.419-13.05 6.419-9.984 0-13.04-2.02-13.04-6.419 0-4.405.275-9.53 13.04-9.53 12.771 0 13.05 5.125 13.05 9.53"/><path d="m37.2 27.345c-2.188-1.248-5.282 1.01-6.911 5.04-1.633 4.04-1.176 8.327 1.016 9.575 2.186 1.253 5.282-1 6.907-5.04 1.629-4.04 1.176-8.326-1.012-9.579"/><path d="m19.732 27.346c-2.189 1.255-2.645 5.54-1.012 9.578 1.627 4.04 4.719 6.292 6.908 5.04 2.186-1.249 2.643-5.537 1.01-9.573-1.621-4.04-4.719-6.294-6.904-5.04"/></g><g fill="#3e4347"><path d="m36.416 29.721c-1.604-.915-3.87.738-5.065 3.693-1.195 2.96-.861 6.101.744 7.02 1.604.918 3.87-.735 5.063-3.693 1.192-2.958.86-6.1-.742-7.02"/><path d="m20.521 29.721c-1.604.919-1.938 4.059-.744 7.02 1.193 2.958 3.459 4.611 5.064 3.693 1.6-.916 1.936-4.057.738-7.02-1.187-2.956-3.456-4.609-5.058-3.694"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#728389" d="m46.4 39.2h9.9v15.7h-9.9z"/><path d="m51.4 60c2.7 0 4.9-2.2 4.9-5h-9.9c0 2.8 2.3 5 5 5" fill="#3e4347"/><path fill="#728389" d="m22.4 39.2h9.9v15.7h-9.9z"/><path d="m27.3 60c2.7 0 4.9-2.2 4.9-5h-9.9c.1 2.8 2.3 5 5 5" fill="#3e4347"/><g fill="#8d9ba3"><path d="m62 24.8c-.1-1.5-1-3.6-2.5-5.8-2.3 1.4-3.8 2.9-4.4 4.3 0 1.4.8 3.1 2 5-1.8 6.7-6.8 12.2-6.8 12.3l1.1 1c.3-.3 5.4-6 7.3-13.2 1.6-1.2 2.8-2.4 3.3-3.6"/><path d="m59.3 41.5c0 6.8-6.1 9.3-13.6 9.3h-20.3c0 0-8.2-.3-8.2-9.5 0-7.3 2.8-11.4 2.8-11.4h16.6c2.3 2.3 6.9 1.2 9.2 1.2 7.2 0 13.5 3.5 13.5 10.4"/><path d="m25.4 41.2h9.9v15.7h-9.9z"/></g><path d="m30.3 62c2.7 0 4.9-2.2 4.9-5h-9.9c.1 2.8 2.3 5 5 5" fill="#3e4347"/><path fill="#8d9ba3" d="m49.4 41.5h9.9v15.5h-9.9z"/><path d="m54.4 62c2.7 0 4.9-2.2 4.9-5h-9.9c0 2.8 2.3 5 5 5" fill="#3e4347"/><path d="m6.8 18.3c-1.9 2.4-3.3 6-3.9 10.2 5-.7 9.4-1.7 11.7-3.8 2.3-2.1 3.3-6 3.9-10.2-5 .8-9.1 2.1-11.7 3.8" fill="#8d9ba3"/><path d="m6.1 27c.4-3 1.4-5.5 2.7-7.2 1.8-1.2 4.7-2.1 8.2-2.6-.4 3-1.1 5.7-2.7 7.2-1.6 1.4-4.8 2.1-8.2 2.6" fill="#3e4347"/><path d="m49.6 18.3c1.9 2.4 3.3 6 3.9 10.2-5-.7-9.4-1.7-11.7-3.8-2.3-2.1-3.3-6-3.9-10.2 5 .8 9.2 2.1 11.7 3.8" fill="#8d9ba3"/><path d="m50.4 27c-.4-3-1.4-5.5-2.7-7.2-1.8-1.2-4.7-2.1-8.2-2.6.4 3 1.1 5.7 2.7 7.2 1.5 1.4 4.7 2.1 8.2 2.6" fill="#3e4347"/><path d="m28.2 8.6c-6.7 0-12.5 7.8-12.2 13.3.2 2.8 3.9 8 3.9 8h16.6c0 0 3.8-5.1 3.9-8 .3-5.5-5.4-13.3-12.2-13.3" fill="#8d9ba3"/><g fill="#3e4347"><path d="m38.1 18.1c0 1.2-1 2.2-2.2 2.2-1.2 0-2.2-1-2.2-2.2s1-2.2 2.2-2.2c1.2 0 2.2 1 2.2 2.2"/><ellipse cx="20.5" cy="18.1" rx="2.2" ry="2.2"/></g><path d="m36.5 30.6c-.5 7.9-16.1 7.9-16.6 0-.2-3.3 3.7-10.2 8.3-10.2s8.5 6.9 8.3 10.2" fill="#c5ccd6"/><g fill="#3e4347"><path d="m25.8 28.1c-.5-1.6-1.5-2.6-2.2-2.1-.7.5-.8 2.3-.3 3.9.5 1.6 1.5 2.6 2.2 2.1.6-.5.8-2.2.3-3.9"/><path d="m32.8 26.1c-.7-.5-1.7.4-2.2 2.1-.5 1.6-.4 3.4.3 3.9.7.5 1.7-.4 2.2-2.1.5-1.7.4-3.4-.3-3.9"/></g><path d="m34.4 35.3c-.1 1.3-2.8 3.3-6.2 3.3-3.4 0-6-2-6.2-3.3-.2-1.6 2.8.3 6.2.3 3.4-.1 6.3-1.9 6.2-.3" fill="#a9afb8"/><path d="m35.8 9.2c0 6.2-5.5 3.1-7.6 3.1s-7.6 3.1-7.6-3.1c0-6.2 5.5-3.4 7.6-3.4 2.1 0 7.6-2.9 7.6 3.4" fill="#8d9ba3"/><g fill="#c5ccd6"><path d="m24.5 5.7c-6.5 0-10 7.7-15.3 7.7-6.9 0-2.5-12.3 6.7-10.4-14.2-5.8-18.5 15-8.2 15 10.8 0 9.7-5.5 18-5.5 3 0 3.1-6.8-1.2-6.8"/><path d="m32 5.7c6.5 0 10 7.7 15.3 7.7 6.8 0 2.4-12.3-6.8-10.4 14.2-5.8 18.6 15 8.2 15-10.8 0-9.7-5.5-18-5.5-3 0-3.1-6.8 1.3-6.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f404.svg b/build/js/jsxc/lib/emojione/assets/svg/1f404.svg
index 19fe4d2..1bf1728 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f404.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f404.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="none" stroke="#6f6f6d" stroke-width="1.5" stroke-miterlimit="10" d="m42.592 30.432c0 0 10.295-2.596 15.594-9.647"/><path fill="#6f6f6d" d="m54.881 24.12c-.076-2.675.297-4.871 1.115-6.186 1.234-.829 3.361-1.249 5.994-1.188.08 2.676-.297 4.872-1.115 6.186-1.236.829-3.359 1.252-5.994 1.188"/><g fill="#f4a19a"><ellipse cx="42.21" cy="48.03" rx="5.193" ry="3.151"/><path d="m40.617 54.11c-.473 0-.855-.547-.855-1.223v-2.808c0-.677.383-1.224.855-1.224.477 0 .859.547.859 1.224v2.808c.001.677-.382 1.223-.859 1.223"/><path d="m43.805 54.11c-.475 0-.859-.547-.859-1.223v-2.808c0-.677.385-1.224.859-1.224.473 0 .857.547.857 1.224v2.808c0 .677-.385 1.223-.857 1.223"/></g><g fill="#cfdae8"><path d="m55.3 36.473c0 6.806-6.03 12.323-13.469 12.323h-23.94v-24.671h23.94c7.44 0 13.469 5.519 13.469 12.348"/><path d="m32.548 36.25c1.67 0 3.139.854 4.02 2.157-2.91.196-5.217 2.824-5.217 6.05 0 3.35 2.493 6.06 5.565 6.06.178 0 .35-.011.521-.029v6.509c0 2.762-2.188 4.999-4.891 4.999-2.701 0-4.889-2.237-4.889-4.999v-15.744c.001-2.767 2.188-5 4.889-5"/></g><path fill="#6f6f6d" d="m31.353 44.45c0-3.222 2.307-5.85 5.217-6.05.547.808.869 1.789.869 2.847v9.235c-.172.019-.344.029-.521.029-3.072.001-5.565-2.715-5.565-6.07"/><path fill="#3e4347" d="m32.548 61.999c2.704 0 4.891-2.237 4.891-4.999h-9.78c.001 2.762 2.188 4.999 4.889 4.999"/><path fill="#cfdae8" d="m16.49 51.2c0-2.19-2.129-3.994-4.879-4.251v-5.65c0-2.76 2.184-4.993 4.885-4.993 2.693 0 4.875 2.233 4.875 4.993v15.713c0 2.756-2.182 4.989-4.875 4.989-2.701 0-4.885-2.233-4.885-4.989v-1.559c2.75-.257 4.879-2.06 4.879-4.253"/><path fill="#6f6f6d" d="m16.49 51.2c0 2.192-2.129 3.996-4.879 4.253v-8.504c2.75.257 4.879 2.061 4.879 4.251"/><path fill="#3e4347" d="m16.496 61.999c-2.701 0-4.885-2.233-4.885-4.989h9.76c0 2.756-2.182 4.989-4.875 4.989"/><path fill="#cfdae8" d="m50.844 34.613c1.52 0 2.859.776 3.662 1.964-2.648.179-4.748 2.571-4.748 5.504 0 3.05 2.268 5.521 5.064 5.521.16 0 .32-.01.475-.026v5.926c0 2.514-1.99 4.551-4.453 4.551-2.457 0-4.449-2.037-4.449-4.551v-14.334c0-2.518 1.992-4.555 4.449-4.555"/><path fill="#6f6f6d" d="m49.758 42.08c0-2.933 2.1-5.325 4.748-5.504.498.735.791 1.628.791 2.591v8.408c-.154.017-.314.026-.475.026-2.797.001-5.064-2.471-5.064-5.521"/><path fill="#3e4347" d="m50.844 58.05c2.463 0 4.453-2.037 4.453-4.551h-8.902c0 2.514 1.992 4.551 4.449 4.551"/><g fill="#f6c799"><path d="m18.822 6.081c-2.715-1.337-4.475-4.082-4.475-4.082-.75 7.233 2.111 8.991 3.729 9.02 2.168.045 3.879-3.396.746-4.94"/><path d="m30.15 6.081c2.713-1.337 4.473-4.082 4.473-4.082.752 7.233-2.112 8.991-3.729 9.02-2.168.045-3.877-3.396-.744-4.94"/></g><path fill="#6f6f6d" d="m47.04 6.851c-4.297-.134-7.824.51-9.936 1.908-1.328 2.114-2.01 5.751-1.904 10.259 4.295.133 7.824-.51 9.936-1.91 1.326-2.115 2.01-5.75 1.904-10.257"/><path fill="#3e4347" d="m44.43 9.533c-2.398-.074-4.369.285-5.551 1.066-.742 1.182-1.121 3.216-1.064 5.734 2.4.074 4.373-.285 5.553-1.066.741-1.182 1.12-3.214 1.062-5.734"/><path fill="#dae5ef" d="m13.746 19.08c.129-4.458-.492-8.117-1.842-10.307-2.037-1.378-5.543-2.081-9.889-1.975-.127 4.455.492 8.115 1.84 10.304 2.041 1.38 5.545 2.081 9.891 1.978"/><path fill="#3e4347" d="m11.187 16.395c.07-2.511-.277-4.573-1.039-5.808-1.147-.777-3.123-1.172-5.572-1.114-.074 2.512.275 4.573 1.037 5.807 1.15.778 3.125 1.175 5.574 1.115"/><path fill="#dae5ef" d="m42.934 27.594c0 12.191-8.244 14.561-18.413 14.561-10.17 0-18.412-2.369-18.412-14.561 0-6.688 10.449-23.15 18.412-23.15 7.959-.001 18.413 14.174 18.413 23.15"/><path fill="#6f6f6d" d="m33.732 9.287c-5.393 2.391-10.864 6.425-7.942 11.778 3.123 5.715 7.05 2.02 10.149 3.844 2.602 1.528 4.861 1.158 6.68-.223-1.056-5.186-4.512-11.4-8.887-15.399"/><path fill="#f4a19a" d="m39.02 38.925c0 5.01-3.398 7.299-14.493 7.299-11.1 0-14.492-2.29-14.492-7.299 0-5.01.307-10.838 14.492-10.838 14.186 0 14.493 5.828 14.493 10.838"/><g fill="#3e4347"><ellipse cx="31.27" cy="18.848" rx="3.727" ry="3.981"/><ellipse cx="17.769" cy="18.848" rx="3.727" ry="3.981"/><path d="m21.08 36.428c-1.063 2.271-3.078 3.543-4.506 2.84-1.426-.705-1.721-3.121-.658-5.395 1.059-2.273 3.076-3.545 4.502-2.84 1.427.705 1.724 3.119.662 5.395"/><path d="m27.97 36.426c1.059 2.273 3.076 3.545 4.502 2.842 1.428-.707 1.723-3.121.661-5.395-1.061-2.273-3.077-3.545-4.504-2.84-1.426.705-1.721 3.119-.659 5.393"/></g><path fill="#ffd092" d="m29.966 38.887c-.029-1.422-.959-2.671-2.365-3.422.096.319.217.642.369.961.002.004.002.007.004.009.209.264.373.552.479.86.088.258.135.528.135.808 0 1.744-1.82 3.158-4.063 3.158-2.244 0-4.064-1.414-4.064-3.158 0-.279.049-.55.135-.808.105-.309.271-.597.48-.86.002-.002.002-.005.004-.007.15-.321.271-.644.367-.963-1.404.751-2.334 2-2.363 3.422 0 .022-.004.046-.004.07 0 2.336 2.438 4.231 5.445 4.231 3.01 0 5.443-1.896 5.443-4.231 0-.024 0-.048-.002-.07"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m42.6 30.4c0 0 10.3-2.6 15.6-9.6" fill="none" stroke="#6f6f6d" stroke-width="1.5" stroke-miterlimit="10"/><path d="m54.9 24.1c-.1-2.7.3-4.9 1.1-6.2 1.2-.8 3.4-1.2 6-1.2.1 2.7-.3 4.9-1.1 6.2-1.3.9-3.4 1.3-6 1.2" fill="#6f6f6d"/><g fill="#f4a19a"><ellipse cx="42.2" cy="48" rx="5.2" ry="3.2"/><path d="m40.6 54.1c-.5 0-.9-.5-.9-1.2v-2.8c0-.7.4-1.2.9-1.2.5 0 .9.5.9 1.2v2.8c0 .7-.4 1.2-.9 1.2"/><path d="m43.8 54.1c-.5 0-.9-.5-.9-1.2v-2.8c0-.7.4-1.2.9-1.2.5 0 .9.5.9 1.2v2.8c0 .7-.4 1.2-.9 1.2"/></g><g fill="#cfdae8"><path d="m55.3 36.5c0 6.8-6 12.3-13.5 12.3h-23.9v-24.7h23.9c7.5 0 13.5 5.5 13.5 12.4"/><path d="m32.5 36.3c1.7 0 3.1.9 4 2.2-2.9.2-5.2 2.8-5.2 6 0 3.3 2.5 6.1 5.6 6.1.2 0 .3 0 .5 0v6.4c0 2.8-2.2 5-4.9 5-2.7 0-4.9-2.2-4.9-5v-15.7c0-2.8 2.2-5 4.9-5"/></g><path d="m31.3 44.5c0-3.2 2.3-5.8 5.2-6 .5.8.9 1.8.9 2.8v9.2c-.2 0-.3 0-.5 0-3.1 0-5.6-2.7-5.6-6" fill="#6f6f6d"/><path d="m32.5 62c2.7 0 4.9-2.2 4.9-5h-9.8c0 2.8 2.2 5 4.9 5" fill="#3e4347"/><path d="m16.5 51.2c0-2.2-2.1-4-4.9-4.3v-5.7c0-2.8 2.2-5 4.9-5 2.7 0 4.9 2.2 4.9 5v15.8c0 2.8-2.2 5-4.9 5-2.7 0-4.9-2.2-4.9-5v-1.6c2.7-.2 4.9-2 4.9-4.2" fill="#cfdae8"/><path d="m16.5 51.2c0 2.2-2.1 4-4.9 4.3v-8.5c2.7.2 4.9 2 4.9 4.2" fill="#6f6f6d"/><path d="m16.5 62c-2.7 0-4.9-2.2-4.9-5h9.8c0 2.8-2.2 5-4.9 5" fill="#3e4347"/><path d="m50.8 34.6c1.5 0 2.9.8 3.7 2-2.6.2-4.7 2.6-4.7 5.5 0 3 2.3 5.5 5.1 5.5.2 0 .3 0 .5 0v5.9c0 2.5-2 4.6-4.5 4.6-2.5 0-4.4-2-4.4-4.6v-14.3c-.1-2.5 1.9-4.6 4.3-4.6" fill="#cfdae8"/><path d="m49.8 42.1c0-2.9 2.1-5.3 4.7-5.5.5.7.8 1.6.8 2.6v8.4c-.2 0-.3 0-.5 0-2.8 0-5-2.5-5-5.5" fill="#6f6f6d"/><path d="m50.8 58.1c2.5 0 4.5-2 4.5-4.6h-8.9c0 2.5 2 4.6 4.4 4.6" fill="#3e4347"/><g fill="#f6c799"><path d="m16.6 6.5c-2.7-1.5-4.5-4.5-4.5-4.5-.7 7.9 2.1 9.8 3.7 9.8 2.2.1 3.9-3.7.8-5.3"/><path d="m32.4 6.5c2.7-1.5 4.4-4.5 4.4-4.5.8 7.9-2.1 9.8-3.7 9.8-2.1.1-3.9-3.7-.7-5.3"/></g><path d="m47 7.5c-4.2-.1-7.7.5-9.8 2-1.3 2.2-2 6.1-1.9 10.8 4.2.1 8.1-.1 9.8-2 1.7-1.9 2-6.1 1.9-10.8" fill="#6f6f6d"/><path d="m45.9 10.3c-3-.1-5.4.4-6.9 1.4-.9 1.6-1.4 4.2-1.3 7.6 3 .1 5.6-.1 6.9-1.4 1.2-1.3 1.4-4.3 1.3-7.6" fill="#f4a19a"/><path d="m2 7.5c4.2-.1 7.7.5 9.8 2 1.3 2.2 2 6.1 1.9 10.8-4.2.1-8.1-.1-9.8-2-1.7-1.9-2-6.1-1.9-10.8" fill="#6f6f6d"/><path d="m3.1 10.3c3-.1 5.4.4 6.9 1.4.9 1.6 1.4 4.2 1.3 7.6-3 .1-5.6-.1-6.9-1.4-1.2-1.3-1.4-4.3-1.3-7.6" fill="#f4a19a"/><path d="m40.3 29.2c0 10.6-15.7 16.5-15.7 16.5 0 0-15.7-5.9-15.7-16.5 0-15.6 6.1-23.7 15.7-23.7 9.5 0 15.7 5.8 15.7 23.7" fill="#dae5ef"/><g fill="#6f6f6d"><path d="m34.5 9c-5.3 5.7-8.9 13-3.6 19.7 3.5 4.4 6.3 4.4 8.9 3.7.3-1 .5-2 .5-3.1 0-10.5-1.6-16.8-5.8-20.3"/><path d="m18.1 28.7c5.2-6.6 1.8-13.7-3.3-19.3-4.5 3.8-6.1 10.5-6.1 19.9 0 1.1.2 2.2.5 3.1 2.6.7 5.4.7 8.9-3.7"/></g><path d="m30.1 23.9c0 0 1.8 3 5.1 2 3.3-1 3.5-4.5 3.5-4.5s-1.8-3-5.1-2c-3.4 1-3.5 4.5-3.5 4.5" fill="#fff"/><g fill="#3e4347"><ellipse cx="34.4" cy="22.7" rx="2.5" ry="2.9"/><path d="m30.1 23.9c0 0 2.8-4.4 7.3-2.6 2.8 1.1 3.8-.7 3.8-.7-1.5.2-2.1-.4-3.8-1.2-3.1-1.5-7.3-.7-7.3 4.5"/></g><path d="m18.9 23.9c0 0-1.8 3-5.1 2-3.3-1-3.5-4.5-3.5-4.5s1.8-3 5.1-2c3.4 1 3.5 4.5 3.5 4.5" fill="#fff"/><g fill="#3e4347"><ellipse cx="14.6" cy="22.7" rx="2.5" ry="2.9"/><path d="m18.9 23.9c0 0-2.8-4.4-7.3-2.6-2.8 1.1-3.8-.7-3.8-.7 1.5.2 2.1-.4 3.8-1.2 3.1-1.5 7.3-.7 7.3 4.5"/></g><path d="m11.6 36.7c0-6.1 3-3 12.9-3 9.9 0 12.9-3.1 12.9 3 0 8.7-6.1 10.3-12.9 10.3-6.8 0-12.9-1.7-12.9-10.3" fill="#f4a19a"/><g fill="#bc6464"><path d="m20.3 38.1c-.9-2.5-2.6-3.9-3.8-3.2-1.2.8-1.4 3.5-.6 6 .9 2.5 2.6 3.9 3.8 3.2 1.2-.8 1.5-3.5.6-6"/><path d="m32.5 34.9c-1.2-.8-2.9.6-3.8 3.2-.9 2.5-.6 5.2.5 6 1.2.8 2.9-.6 3.8-3.2.9-2.5.7-5.2-.5-6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f405.svg b/build/js/jsxc/lib/emojione/assets/svg/1f405.svg
index 523348f..27db054 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f405.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f405.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d87512" d="m17.786 44.631c-.606.114-1.229.172-1.854.172-2.444 0-4.644-.864-6.04-2.375-.855-.92-1.394-2.147-1.517-3.469-.126-1.244.067-2.639.581-4.164.324-1.016.83-2.01 1.364-3.064.216-.427.437-.859.649-1.303.703-1.454 1.505-3.164 2.111-5.05.715-2.188.943-4.287.682-6.229-.267-2.103-.994-3.973-1.741-5.686-.031-.07-.067-.146-.097-.197-.521-.986-1.537-1.598-2.652-1.598-.486 0-.972.121-1.402.349-.709.375-1.229 1-1.465 1.77-.236.766-.16 1.578.218 2.292.632 1.192 1.314 2.597 1.592 3.978.238 1.137.179 2.411-.184 3.897-.371 1.538-.977 3.143-1.523 4.518-.159.406-.331.816-.507 1.234-.508 1.215-1.033 2.469-1.365 3.838-.55 2.139-.666 4.152-.348 5.971.361 2.162 1.41 4.14 2.955 5.566 2.027 1.879 4.808 2.913 7.826 2.913 1.141 0 2.275-.146 3.376-.437l-.659-2.923"/><g fill="#bc600d"><path d="m11.585 43.742c0 0 .387 1.248.104 3.049 0 0 2.046-.465 1.899-2.268.001 0-.815-.291-2-.781"/><path d="m9.189 41.484c0 0-.207 1.457-1.26 2.945 0 0 2.104.42 2.775-1.264.001.001-.696-.659-1.515-1.681"/><path d="m8.398 37.21c0 0-.926 1.432-3.229 2.322 0 0 1.513 2.303 3.53.904 0 .001-.238-1.388-.301-3.226"/><path d="m12.964 15.833c0 0-1.685.798-3.783 3.449 0 0 2.099 1.552 4.662 2.229 0 0 .285-3.094-.879-5.678"/><path d="m13.5 23.873c0 0-2.988.544-5.57 2.794 0 0 1.615 1.708 3.583 2.62-.001 0 1.678-3.391 1.987-5.414"/><path d="m10.321 31.73c0 0-1.484 0-4.484.812 0 0-.011 2.873 2.941 2.823 0 0 .746-1.75 1.543-3.635"/></g><g fill="#d87512"><path d="m53.33 39.37c0-4.484-35.622-4.484-35.622 0 0 10.159.05 10.251 17.811 10.251 17.761 0 17.811-.092 17.811-10.251"/><path d="m42.645 56.04c1.688 2.02 9.275.043 10.504-2.28 5.01-9.482-.005-13.581-.005-13.581l-10.499 1.314c0 0-2.155 11.977 0 14.547"/></g><g fill="#bc600d"><path d="m54.2 41.496c0 0-.336 4.246-4.657 9.573 0 0 4.38-1.698 5.808-4.3 0 .001.447-3.02-1.151-5.273"/><path d="m55.08 48.691c0 0-1.065 1.88-3.563 3.871 0 0 1.781-.029 2.576-.785 0 0 .771-1.411.987-3.086"/></g><path fill="#f29a2e" d="m35.484 60.38c1.869 2.231 8.547 2.09 10.574 0 2.904-2.995 2.779-16.656 2.904-23.314l-12.418-1.053c.001 0-3.444 21.519-1.06 24.367"/><g fill="#bc600d"><path d="m48.21 53.53c0 0-3.578-3.443-8.738-.013 0 0 5.754 2.455 7.365 5.672 0 0 1.126-2.244 1.373-5.659"/><path d="m48.775 46.06c0 0-3.852-3.09-7.938 1.43 0 0 4.452-.469 7.632 3.635 0-.001.494-3.049.306-5.065"/></g><g fill="#3e4347"><path d="m43.847 61.57l-.397-2.765 1.344 2.445z"/><path d="m40.41 61.996l.502-3.294.498 3.294z"/><path d="m36.713 61.3l1.317-2.26-.372 2.59z"/></g><path fill="#d87512" d="m28.388 56.04c-1.688 2.02-9.277.043-10.504-2.28-5.01-9.482.004-13.581.004-13.581l10.5 1.314c0 0 2.154 11.977 0 14.547"/><g fill="#bc600d"><path d="m16.833 41.496c0 0 .336 4.246 4.657 9.573 0 0-4.38-1.698-5.807-4.3 0 .001-.448-3.02 1.15-5.273"/><path d="m15.957 48.691c0 0 1.066 1.88 3.563 3.871 0 0-1.782-.029-2.576-.785 0 0-.772-1.411-.987-3.086"/></g><path fill="#f29a2e" d="m35.548 60.38c-1.869 2.231-8.548 2.09-10.575 0-2.904-2.995-2.779-16.656-2.904-23.314l12.418-1.053c0 0 3.446 21.519 1.061 24.367"/><g fill="#bc600d"><path d="m22.822 53.53c0 0 3.58-3.443 8.739-.013 0 0-5.753 2.455-7.366 5.672 0 0-1.125-2.244-1.373-5.659"/><path d="m22.255 46.06c0 0 3.852-3.09 7.939 1.43 0 0-4.452-.469-7.632 3.635.001-.001-.493-3.049-.307-5.065"/></g><g fill="#3e4347"><path d="m26.24 61.25l1.345-2.445-.395 2.765z"/><path d="m29.619 61.996l.501-3.294.499 3.294z"/><path d="M33.375 61.63 33 59.04 34.32 61.3z"/><path d="m35.516 60.46c-.395-2.479-.482-4.959-.5-7.438.015-2.48.104-4.96.5-7.439.396 2.479.485 4.959.5 7.439-.018 2.479-.106 4.959-.5 7.438"/></g><path fill="#f29a2e" d="m27.777 6.994c0 3.82-2.727 6.987-6.086 6.915-9.862-.21-5.799-11.909-5.799-11.909 3.361 0 11.885 1.176 11.885 4.994"/><path fill="#af5a31" d="m24.05 7.752c0 2.037-1.454 3.727-3.248 3.688-5.261-.111-3.093-6.353-3.093-6.353 1.793 0 6.341.628 6.341 2.665"/><path fill="#f29a2e" d="m43.26 6.994c0 3.82 2.726 6.987 6.086 6.915 9.86-.21 5.8-11.909 5.8-11.909-3.364 0-11.886 1.176-11.886 4.994"/><path fill="#af5a31" d="m46.983 7.752c0 2.037 1.455 3.727 3.247 3.688 5.26-.111 3.094-6.353 3.094-6.353-1.794 0-6.341.628-6.341 2.665"/><path fill="#f29a2e" d="m55.806 33.378c0 7.155-9.517 8.13-20.288 8.13-10.776 0-20.289-.975-20.289-8.13 0-29.961 11.595-29.14 20.289-29.14 8.691 0 20.288-.819 20.288 29.14"/><g fill="#3e4347"><path d="m35.541 7.589c3.238 0 6.149 1.085 8.155 2.81-.769-2.944-4.135-5.16-8.173-5.16-4.061 0-7.442 2.239-8.186 5.205 2.01-1.753 4.938-2.855 8.204-2.855"/><path d="m35.535 11.193c2.217 0 4.209.744 5.584 1.925-.527-2.02-2.834-3.534-5.598-3.534-2.782 0-5.096 1.533-5.606 3.564 1.376-1.198 3.383-1.955 5.62-1.955"/></g><path fill="#ffe8bb" d="m29.553 43.727l-18.408-7.01 4.241-9.06c0 0 2.703 3.85 13.289 6.821l.878 9.242"/><path fill="#3e4347" d="m29.369 39.77c-7.461-1.271-16.324-6.673-16.479-6.75l.992-2.168c.184.092 8.806 5.342 15.853 6.544l-.366 2.374"/><path fill="#ffe8bb" d="m41.48 43.727l18.406-7.01-4.24-9.06c0 0-2.704 3.85-13.289 6.821l-.877 9.242"/><path fill="#3e4347" d="m41.663 39.77c7.461-1.271 16.325-6.673 16.479-6.75l-.992-2.168c-.184.092-8.808 5.342-15.852 6.544l.365 2.374"/><g fill="#ffe8bb"><path d="m43.524 45.57c-4.772-3.547-2.124-11.709-2.124-11.709-5.657 5.905-12.662 8.74-12.662 8.74 1.608 5.445 5.771 6.411 5.771 6.411-.342-1.835.662-3.302.662-3.302 1.68 2.221 5.03 2.986 5.03 2.986-1.288-1.508-.949-3.835-.949-3.835 2.326.874 4.271.709 4.271.709"/><path d="m42.29 42.969c-2.634 2.248-10.917 2.248-13.553 0-2.856-2.434-2.495-7.143.1-9.883 2.397-2.527 10.958-2.527 13.355 0 2.595 2.74 2.956 7.449.098 9.883"/></g><g fill="#3e4347"><path d="m36.18 40.481c-.28 0-.543-.184-.644-.478-.227-.671-.771-3.293-.71-5.498.01-.398.325-.709.7-.698.379.011.674.343.663.739-.056 2.01.461 4.467.634 4.975.127.374-.06.785-.414.918-.074.03-.152.042-.229.042"/><path d="m30.504 43.25c.21-.202.394-.408.582-.609.188-.205.378-.406.569-.605.386-.396.783-.781 1.2-1.145.833-.726 1.742-1.379 2.746-1.902.503-.262 1.031-.488 1.59-.653s1.152-.273 1.771-.253c.309.01.623.055.928.146.307.089.602.231.861.417.262.189.484.422.651.684.169.257.287.539.349.83-.227-.178-.449-.332-.676-.448-.229-.116-.455-.194-.68-.237-.447-.088-.887-.039-1.331.061-.89.215-1.785.648-2.69 1.113-.904.467-1.817.984-2.775 1.467-.479.24-.969.473-1.479.682-.256.103-.517.202-.783.285-.269.078-.546.155-.833.167"/></g><path fill="#f15a61" d="m41.34 31.743c-1.169-.528-4.757-.569-5.829-.569-1.07 0-4.661.041-5.83.569-.833.376-.188 1.309 2.026 2.116 1.397.507 2.733.667 3.803.667 1.071 0 2.405-.16 3.805-.667 2.213-.807 2.856-1.74 2.025-2.116"/><g fill="#3e4347"><path d="m29.917 23.479l1.611 5.293-4.575-2.773z"/><path d="m22.645 31.828c-.522 0-.932-.056-1.169-.098-2.987-.52-4.633-1.996-6.09-4.067l.184-2.472c1.519 1.445 3.953 3.76 6.279 4.166 1.157.201 2.854-.016 4.152-1.234 1.536-1.439 2.262-4.049 2.098-7.547l1.636.132c.2 4.312-.116 7.244-2.212 9.212-1.692 1.589-3.613 1.908-4.878 1.908"/><path d="m41.12 23.479l-1.613 5.293 4.573-2.773z"/><path d="m48.39 31.828c.521 0 .931-.056 1.167-.098 2.989-.52 4.637-1.996 6.09-4.067l-.182-2.472c-1.52 1.445-3.955 3.76-6.28 4.166-1.156.201-2.855-.016-4.154-1.234-1.533-1.439-2.259-4.049-2.096-7.547l-1.636.132c-.201 4.312.115 7.244 2.214 9.212 1.69 1.589 3.611 1.908 4.877 1.908"/></g><path fill="#ffe8bb" d="m30.25 22.09c-.852 5.282-3.728 5.87-6.696 5.577-2.986-.294-5.396-2.667-5.396-6.743 0-4.281 0-4.281 6.647-5.752 6.728-1.489 6 3.437 5.445 6.918"/><path fill="#3e4347" d="m29.16 22.547c-.244 2.534-2.609 4.357-5.287 4.072-2.674-.285-4.645-2.568-4.402-5.101s.279-2.75 5.107-2.237c4.83.513 4.824.736 4.582 3.266"/><path fill="#fff" d="m27.591 21.884c-.16 1.688-1.74 2.903-3.523 2.714-1.785-.19-3.096-1.712-2.936-3.401.163-1.688.186-1.834 3.406-1.492 3.219.344 3.215.491 3.053 2.179"/><g fill="#3e4347"><ellipse cx="25.5" cy="21.08" rx="1.45" ry="1.647"/><path d="m31.27 17.896c.42 0 .807-.284.936-.728.159-.546-.133-1.122-.65-1.289l-5.98-1.925c-.516-.166-1.065.14-1.225.685-.156.544.135 1.12.651 1.288l5.981 1.924c.095.03.191.045.287.045"/></g><path fill="#ffe8bb" d="m40.781 22.09c.854 5.282 3.729 5.87 6.699 5.577 2.984-.294 5.395-2.667 5.395-6.743 0-4.281-.002-4.281-6.646-5.752-6.728-1.489-6.01 3.437-5.448 6.918"/><path fill="#3e4347" d="m41.873 22.547c.243 2.534 2.609 4.357 5.287 4.072 2.674-.285 4.646-2.568 4.402-5.101-.242-2.533-.279-2.75-5.107-2.237-4.83.513-4.824.736-4.582 3.266"/><path fill="#fff" d="m43.44 21.884c.161 1.688 1.737 2.903 3.522 2.714 1.783-.19 3.098-1.712 2.936-3.401-.161-1.688-.188-1.834-3.404-1.492-3.221.344-3.217.491-3.054 2.179"/><g fill="#3e4347"><ellipse cx="47.722" cy="20.932" rx="1.45" ry="1.647"/><path d="m39.76 17.896c-.42 0-.807-.284-.935-.728-.16-.546.132-1.122.65-1.289l5.979-1.925c.518-.166 1.064.14 1.225.685.156.544-.135 1.12-.652 1.288l-5.98 1.924c-.096.03-.192.045-.287.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.8 44.6c-7.9 1-11.6-5.2-8.3-11.2 5.3-9.8 4.8-15.3 2.5-20-1.7-3.5-7.6-1.3-5.4 2.6 3.8 6.7.2 9.9-2 17.5-3.4 11.7 7.3 16.3 13.8 14l-.6-2.9" fill="#d87512"/><g fill="#bc600d"><path d="m12.7 43.7c0 0 .3 1.2 0 3 0 0 2.1-.5 1.9-2.3 0 0-.7-.2-1.9-.7"/><path d="m10.3 41.4c0 0-.1 1.4-1.2 2.9 0 0 2.1.6 2.8-1.1 0-.1-.8-.8-1.6-1.8"/><path d="m9.3 37.5c0 0-.8 1.2-3.1 2.1 0 0 1.6 2.3 3.6.9 0-.1-.4-1.2-.5-3"/><path d="m14 15.7c0 0-1.7.9-3.8 3.5 0 0 1.9 1.5 4.5 2.2 0 .1.5-3.1-.7-5.7"/><path d="m14.3 23.9c0 0-2.8.5-5.4 2.7 0 0 1.6 1.7 3.6 2.6 0 .1 1.5-3.3 1.8-5.3"/><path d="m11.3 31.9c0 0-1.5-.2-4.5.6 0 0-.1 3 2.8 2.9.1.1.9-1.6 1.7-3.5"/></g><path d="m53.9 37h-35.8c-.9 1-4.3 5.9.2 15.8 3.4 7.5 32.1 7.5 35.5 0 4.4-9.9 1-14.8.1-15.8" fill="#d87512"/><g fill="#bc600d"><path d="m54.8 38.3c0 0-.3 5-4.7 11.3 0 0 4.4-2 5.8-5.1 0 0 .5-3.5-1.1-6.2"/><path d="m55.7 46.8c0 0-1.1 2.2-3.6 4.6 0 0 1.8 0 2.6-.9 0-.1.8-1.7 1-3.7"/><path d="m17.2 38.3c0 0 .3 5 4.7 11.3 0 0-4.4-2-5.8-5.1 0 0-.5-3.5 1.1-6.2"/><path d="m16.3 46.8c0 0 1.1 2.2 3.6 4.6 0 0-1.8 0-2.6-.9 0-.1-.8-1.7-1-3.7"/></g><path d="m22.5 36c0 0 0 21.2 2.9 24.3 2 2.2 8.7 2.3 10.6 0 1.9 2.3 8.6 2.1 10.6 0 2.9-3.1 2.9-24.3 2.9-24.3h-27" fill="#f29a2e"/><path d="m36 60.4c-.7-2.6-.7-12.9 0-15.5.7 2.6.7 12.9 0 15.5" fill="#3e4347"/><g fill="#bc600d"><path d="m23.4 53.2c0 0 3.4-3.6 8.6 0 0 0-5.7 2.5-7.4 5.8.1 0-.9-2.3-1.2-5.8"/><path d="m22.7 45.3c0 0 3.8-3.2 7.9 1.6 0 0-4.3-.5-7.5 3.8 0 0-.5-3.3-.4-5.4"/><path d="m48.6 53.1c0 0-3.4-3.5-8.6 0 0 0 5.7 2.5 7.4 5.8-.1.1.9-2.2 1.2-5.8"/><path d="m49.3 45.3c0 0-3.8-3.2-7.9 1.5 0 0 4.3-.5 7.5 3.8 0 .1.5-3.1.4-5.3"/></g><path d="M28.4,7.6c0,4.3-2.7,7.8-6,7.7C12.7,15.1,16.7,2,16.7,2C20,2,28.4,3.3,28.4,7.6z" fill="#f29a2e"/><path d="m24.7 8.4c0 2.3-1.4 4.2-3.2 4.1-5.2-.1-3-7.1-3-7.1 1.8.1 6.2.8 6.2 3" fill="#bc600d"/><path d="M43.6,7.6c0,4.3,2.7,7.8,6,7.7C59.3,15.1,55.3,2,55.3,2C52,2,43.6,3.3,43.6,7.6z" fill="#f29a2e"/><path d="m47.3 8.4c0 2.3 1.4 4.2 3.2 4.1 5.2-.1 3-7.1 3-7.1-1.8.1-6.2.8-6.2 3" fill="#bc600d"/><path d="m55.9 32.5c0 6.9-39.8 6.9-39.8 0 0-29.1 11.4-28.3 19.9-28.3 8.5 0 19.9-.8 19.9 28.3" fill="#f29a2e"/><g fill="#3e4347"><path d="m44 10.1c-1.8-6.7-14.3-6.8-16.1 0 3.6-3 12.6-3 16.1 0"/><path d="m41.5 12.7c-1.2-4.5-9.8-4.6-11 0 2.9-2.4 8.1-2.4 11 0"/></g><path d="m59 28.5c-.2-7.1-4.4-10.6-4.4-10.6s2.6 26-12.7 13.4h-11.8c-15.3 12.6-12.7-13.4-12.7-13.4s-4.2 3.5-4.4 10.6l2.1-1.2c0 0-2.2 4.7.2 10.4l2.2-2.6c0 0 .6 5.4 6.5 8.2l.3-2.4c0 0 4.5 3.5 11.7 3.5s11.7-3.5 11.7-3.5l.3 2.4c5.9-2.8 6.5-8.2 6.5-8.2l2.2 2.6c2.3-5.7.2-10.4.2-10.4l2.1 1.2" fill="#ffe8bb"/><g fill="#3e4347"><path d="m30.1 31.3c0 0-13 9.8-12.7-13.4 0 0-3.1 27.6 12.7 13.4"/><path d="m41.9 31.3c0 0 13 9.8 12.7-13.4 0 0 3.1 27.6-12.7 13.4"/></g><path d="m40.3 23c2.3 6.3 1.6 8.3 1.6 8.3l-5.8 1.7-6-1.7c0 0-.7-2.1 1.6-8.3-10.1 16.8-.6 19-.6 19s-.4 2.7 2.5 5.1v-1.8c0 0 .6 1.7 2.4 2.7 1.8-1 2.4-2.7 2.4-2.7v1.8c1.6-.9 2.1-2.8 2.1-2.8l.7 1.4c2.3-3.3 1.5-5.6.8-6.7 0 0 0 .1 0 .1s8.4.7-1.7-16.1" fill="#f5f5f5"/><g fill="#3e4347"><path d="m36 38.9c-.2-.7-.8-4.2-.7-6.3h1.3c-.1 2 .5 5.3.6 5.8l-1.2.5"/><path d="m31.1 42.1c5.2-5.2 9-6.8 11-3-3.1-2.5-6.7 2-11 3"/></g><path d="m41.7 31c-2.3-1-9.3-1-11.4 0-.8.4 1.5 2.7 5.7 2.7 4.2 0 6.5-2.4 5.7-2.7" fill="#947151"/><path d="m32.4 21.6c-1.7 10.7-14 8-14-1.4 0-5 0-5 7.7-6.7 7.8-1.6 7 4.1 6.3 8.1" fill="#ffe8bb"/><path d="m31.2 22.2c-.7 7.6-12 6.4-11.2-1.2.3-2.9.3-3.2 5.9-2.6 5.5.6 5.5.8 5.3 3.8" fill="#3e4347"/><path d="m29.5 21.7c-.5 4.6-8.5 3.9-7.9-.7.2-1.7.2-1.8 4.2-1.5 3.9.4 3.9.5 3.7 2.2" fill="#fff"/><path d="m28.9 20.8c0 1.1-.8 1.9-1.8 1.9-1 0-1.8-.9-1.8-1.9s.8-1.7 1.8-1.7 1.8.7 1.8 1.7" fill="#3e4347"/><path d="m39.6 21.6c1.7 10.7 14 8 14-1.4 0-5 0-5-7.7-6.7-7.8-1.6-7 4.1-6.3 8.1" fill="#ffe8bb"/><path d="m40.8 22.2c.7 7.6 12 6.4 11.2-1.2-.3-2.9-.3-3.2-5.9-2.6-5.6.6-5.6.8-5.3 3.8" fill="#3e4347"/><path d="m42.5 21.7c.5 4.6 8.5 3.9 7.9-.7-.2-1.7-.2-1.8-4.2-1.5-3.9.4-3.9.5-3.7 2.2" fill="#fff"/><path d="m46.1 20.8c0 1.1.8 1.9 1.8 1.9 1 0 1.8-.9 1.8-1.9s-.8-1.7-1.8-1.7-1.8.7-1.8 1.7" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f406.svg b/build/js/jsxc/lib/emojione/assets/svg/1f406.svg
index b78e63f..7093fe4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f406.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f406.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c49a45"><path d="m30.21 40.496l-10.5-1.314c0 0-1.072.88-1.73 2.763-.27.771-.462 1.718-.488 2.836-3.456-.123-6.954-2.051-7.293-5.821-.392-3.877 2.133-7.324 3.602-10.711 1.736-4 2.447-7.968 1.055-12.193-.53-1.61-1.087-3.757-2.949-4.278-2.188-.612-4.276 1.432-3.71 3.634.479 1.858 1.756 3.333 1.943 5.323.221 2.348-.64 4.682-1.461 6.838-1.572 4.125-3.539 8.212-2.401 12.743 1.046 4.163 4.663 6.97 8.836 7.554.249.035 1.511.073 2.721.037.096.412.208.837.35 1.281.348 1.096.84 2.284 1.521 3.576 1.227 2.323 8.816 4.297 10.504 2.281 2.154-2.573 0-14.549 0-14.549"/><path d="m57.18 44.603c-.15-3.725-2.217-5.421-2.217-5.421l-2.748.345-7.752.97c0 0-2.154 11.976 0 14.548 1.688 2.02 9.275.042 10.504-2.281.119-.225.227-.443.336-.662.65-1.324 1.104-2.538 1.402-3.646.395-1.47.52-2.75.475-3.853"/></g><path fill="#e5bc5e" d="m38.36 36.01c0 0-.528 3.307-1.028 7.495-.5-4.188-1.028-7.495-1.028-7.495l-12.417 1.053c.063 3.341.063 8.446.414 13.08.152 2.01.369 3.928.688 5.578.41 2.132.986 3.814 1.803 4.655 2.02 2.08 8.634 2.229 10.542.031 1.907 2.197 8.524 2.049 10.542-.031.678-.697 1.188-1.978 1.576-3.608.479-2.01.773-4.547.957-7.214.309-4.474.313-9.292.371-12.492l-12.42-1.053"/><path fill="#bc9342" d="m41.788 45.917l-2.458 1.617 2.458 2.526 1.542-2.526-1.542-1.617"/><g fill="#a37e3d"><path d="m53.24 39.86l-2.46 1.618 2.46 2.532 1.54-2.532-1.54-1.618"/><path d="m52.42 50.06l-1.23.814 1.23 1.266.77-1.266-.77-.814"/></g><g fill="#bc9342"><path d="m44.07 56.02l2.867.683.153-3.533-2.9.62-.12 2.23"/><path d="m46.608 50.09l1.932.46.104-2.38-1.952.415-.084 1.505"/></g><path fill="#a37e3d" d="m52.919 47.866l1.932.464.103-2.379-1.954.419-.081 1.496"/><g fill="#3e4347"><path d="m45.664 61.57l-.394-2.765 1.341 2.445z"/><path d="m42.23 61.997l.499-3.295.501 3.295z"/><path d="m38.53 61.3l1.317-2.26-.371 2.59z"/></g><path fill="#bc9342" d="m27.783 43.507l-2.465 1.613 2.465 2.534 1.537-2.534-1.537-1.613"/><g fill="#a37e3d"><path d="m22.824 49.909l-1.848 1.211 1.848 1.9 1.152-1.9-1.152-1.211"/><path d="m19.316 46.1l-1.226.807 1.226 1.263.774-1.263-.774-.807"/><path d="m19.572 42.755l.672 2.105 2.324-1.271-1.518-1.619-1.478.785"/><path d="m9.148 29.18l.672 2.1 2.324-1.27-1.519-1.618-1.477.788"/><path d="m11.615 24.3l.672 2.105 2.324-1.275-1.521-1.615-1.475.785"/><path d="m10.974 13.532l.674 2.105 2.324-1.271-1.519-1.619-1.479.785"/><path d="m7.222 39.34l.44 1.382 1.521-.832-.994-1.061-.967.511"/><path d="m10.183 17.03l.44 1.38 1.521-.833-.994-1.06-.967.513"/><path d="m13.02 45.38l.435 1.379 1.521-.832-.994-1.061-.962.514"/></g><g fill="#bc9342"><path d="m33.476 58.04l1.844-1.209-1.844-1.897-1.156 1.897 1.156 1.209"/><path d="m27.421 54.57l1.849-1.21-1.849-1.89-1.151 1.89 1.151 1.21"/><path d="m33.34 47.702l-2.467 1.618 2.467 2.531 1.532-2.531-1.532-1.618"/></g><g fill="#3e4347"><path d="m28.06 61.25l1.344-2.445-.404 2.765z"/><path d="m31.437 61.997l.5-3.295.5 3.295z"/><path d="m35.19 61.63l-.369-2.59 1.319 2.26z"/><path d="m37.33 60.46c-.395-2.479-.482-4.959-.5-7.438.015-2.479.104-4.959.5-7.438.396 2.479.485 4.959.5 7.438-.018 2.479-.105 4.959-.5 7.438"/></g><path fill="#e5bc5e" d="m29.595 6.994c0 3.82-2.727 6.987-6.086 6.915-9.861-.21-5.799-11.909-5.799-11.909 3.362 0 11.885 1.176 11.885 4.994"/><path fill="#77623c" d="m25.869 7.752c0 2.037-1.455 3.727-3.248 3.688-5.262-.111-3.094-6.353-3.094-6.353 1.793 0 6.342.628 6.342 2.665"/><path fill="#e5bc5e" d="m45.08 6.994c0 3.82 2.725 6.987 6.086 6.915 9.86-.21 5.799-11.909 5.799-11.909-3.363 0-11.885 1.176-11.885 4.994"/><path fill="#77623c" d="m48.802 7.752c0 2.037 1.455 3.727 3.246 3.688 5.26-.111 3.094-6.353 3.094-6.353-1.793 0-6.34.628-6.34 2.665"/><path fill="#e5bc5e" d="m57.5 28.367c-.141-2.796-.404-5.26-.768-7.446-1.477-8.874-4.646-13.04-8.369-14.985-.662-.345-1.342-.615-2.031-.834-2.971-.946-6.141-.864-8.998-.864-2.438 0-5.105-.064-7.681.505-2.064.456-4.068 1.325-5.85 2.954-1.309 1.197-2.494 2.816-3.496 4.983-.838 1.809-1.547 4-2.086 6.667-.746 3.7-1.174 8.299-1.174 14.03 0 7.155 9.512 8.131 20.287 8.131 10.771 0 20.289-.976 20.289-8.131 0-1.78-.045-3.443-.123-5.01"/><g fill="#77623c"><path d="m32.525 14.55l1.845-1.213-1.845-1.897-1.152 1.897 1.152 1.213"/><path d="m25.933 9.301l1.227-.809-1.227-1.264-.773 1.264.773.809"/><path d="m36.86 7.667l1.23-.809-1.23-1.264-.77 1.264.77.809"/><path d="m55.35 28.7l1.23-.808-1.23-1.265-.77 1.265.77.808"/><path d="m55.43 25.655l1.233-.809-1.233-1.264-.767 1.264.767.809"/><path d="m27.09 32.23l1.228-.812-1.228-1.268-.772 1.268.772.812"/><path d="m19.292 26.691l1.233-.808-1.233-1.265-.767 1.265.767.808"/><path d="m25.816 13.91l1.848-1.213-1.848-1.897-1.152 1.897 1.152 1.213"/><path d="m35.743 11.733l1.848-1.212-1.848-1.897-1.152 1.897 1.152 1.212"/><path d="m32.22 7.097l-.1-1.475-1.71.458.73 1.293 1.08-.276"/><path d="m41.45 15.464l1.85-1.212-1.85-1.897-1.15 1.897 1.15 1.212"/><path d="m52.7 14.761l1.233-.808-1.233-1.265-.767 1.265.767.808"/><path d="m35.435 20.09l1.23-.805-1.23-1.265-.77 1.265.77.805"/><path d="m47.39 8.704l1.232-.809-1.232-1.265-.768 1.265.768.809"/></g><path fill="#ffe8bb" d="m57.46 27.664c0 0-2.612 3.689-12.658 6.632-.236-.382-.499-.745-.795-1.079-2.396-2.702-10.957-2.702-13.353 0-.296.334-.559.697-.795 1.079-10.05-2.943-12.658-6.632-12.658-6.632s-1.178 6.738-.24 9.06c1.512 3.74 10.215 6.05 13.311 6.769.093.098.182.2.283.292 2.634 2.402 10.917 2.402 13.552 0 .102-.092.189-.193.282-.292 3.094-.714 11.797-3.03 13.312-6.769.939-2.318-.241-9.06-.241-9.06"/><g fill="#77623c"><path d="m19.18 35.08l1.84-1.213-1.84-1.897-1.16 1.897 1.16 1.213"/><path d="m23.451 39.2l1.232-.81-1.232-1.27-.768 1.27.768.81"/><path d="m56.11 36.15l.98-2.04-2.62-.682-.01 2.269 1.65.453"/><path d="m48.989 13.229l.979-2.037-2.618-.686-.01 2.269 1.649.454"/><path d="m44.21 10.564l.98-2.036-2.625-.687-.007 2.269 1.652.454"/><path d="m30.619 11.07l.651-1.355-1.745-.457-.006 1.512 1.1.3"/><path d="m41.599 7.14l.651-1.358-1.745-.457-.006 1.512 1.1.303"/><path d="m22.777 15.08l.652-1.359-1.746-.458-.006 1.512 1.1.305"/><path d="m21.777 29.667l.652-1.357-1.746-.458-.006 1.512 1.1.303"/><path d="m48.774 34.604l1.848-1.213-1.848-1.898-1.152 1.898 1.152 1.213"/><path d="m51.5 30.32l1.231-.812-1.231-1.268-.769 1.268.769.812"/></g><path fill="#3e4347" d="m38.37 38.34c-.194-1.026-.396-2.501-.359-3.796.01-.396-1.354-.438-1.363-.041-.045 1.599.229 3.407.469 4.542-1.884 1.191-3.715 2.896-4.791 4.204 2.676-.251 7.676-5.251 11.245-3.092-.624-2.991-2.831-2.978-5.201-1.817"/><path fill="#f15a61" d="m43.16 31.743c-1.17-.528-4.758-.57-5.83-.57-1.07 0-4.66.042-5.828.57-.834.376-.189 1.309 2.025 2.115 1.396.508 2.732.668 3.803.668 1.072 0 2.406-.16 3.805-.668 2.213-.806 2.855-1.738 2.025-2.115"/><g fill="#77623c"><path d="m31.736 23.479l1.614 5.293-4.579-2.773z"/><path d="m42.935 23.479l-1.605 5.293 4.567-2.773z"/></g><path fill="#ffe8bb" d="m32.07 22.09c-.852 5.282-3.727 5.87-6.695 5.577-2.986-.294-5.396-2.667-5.396-6.743 0-4.281 0-4.281 6.648-5.752 6.726-1.489 6 3.437 5.443 6.918"/><path fill="#3e4347" d="m30.978 22.547c-.244 2.534-2.609 4.357-5.287 4.072-2.674-.285-4.645-2.568-4.402-5.101s.279-2.75 5.107-2.237c4.83.513 4.824.736 4.582 3.266"/><path fill="#fff" d="m29.41 21.884c-.16 1.688-1.74 2.903-3.523 2.714-1.785-.19-3.096-1.712-2.936-3.401.164-1.688.186-1.834 3.406-1.492 3.219.344 3.215.491 3.053 2.179"/><ellipse fill="#3e4347" cx="26.319" cy="21.08" rx="1.45" ry="1.647"/><path fill="#ffe8bb" d="m42.599 22.09c.854 5.282 3.73 5.87 6.699 5.577 2.984-.294 5.395-2.667 5.395-6.743 0-4.281-.002-4.281-6.646-5.752-6.728-1.489-6.01 3.437-5.448 6.918"/><path fill="#3e4347" d="m43.69 22.547c.244 2.534 2.609 4.357 5.287 4.072 2.674-.285 4.646-2.568 4.402-5.101-.242-2.533-.279-2.75-5.107-2.237-4.83.513-4.824.736-4.582 3.266"/><path fill="#fff" d="m45.26 21.884c.16 1.688 1.736 2.903 3.521 2.714 1.783-.19 3.098-1.712 2.936-3.401-.16-1.688-.188-1.834-3.404-1.492-3.221.344-3.217.491-3.053 2.179"/><ellipse fill="#3e4347" cx="48.539" cy="20.932" rx="1.45" ry="1.647"/><g fill="#a37e3d"><path transform="matrix(.7071-.7071.7071.7071-10.406 15.222)" d="m11.878 18.878h2.586v2.586h-2.586z"/><path transform="matrix(.7072-.707.707.7072-21.332 16.15)" d="m7.536 32.535h2.586v2.586h-2.586z"/><path transform="matrix(.7072-.707.707.7072-27.645 19.59)" d="m8.536 41.878h2.586v2.586h-2.586z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M45.1,7l6.1,6.9C61,13.7,56.9,2,56.9,2C53.6,2,45.1,3.2,45.1,7z" fill="#e5bc5e"/><path d="m48.8 7.8l3.2 3.7c5.2-.1 3.1-6.4 3.1-6.4-1.8 0-6.3.6-6.3 2.7" fill="#77623c"/><path d="m29.6 7l-6.1 6.9c-9.8-.2-5.7-11.9-5.7-11.9 3.3 0 11.8 1.2 11.8 5" fill="#e5bc5e"/><path d="m25.9 7.8l-3.2 3.7c-5.2-.1-3.1-6.4-3.1-6.4 1.8 0 6.3.6 6.3 2.7" fill="#77623c"/><path d="m37.3 4.3c-12.9 0-20.2 4.2-20.2 31h40.5c0-26.8-7.4-31-20.3-31" fill="#e5bc5e"/><path d="m54.9 38.2h-35.2c0 0-2.2 2.1-2.2 6.6-3.4-.1-6.9-2.1-7.3-5.8-.4-3.9 2.1-7.3 3.6-10.7 1.7-4 2.4-8 1.1-12.2-.5-1.6-1.1-3.8-2.9-4.3-2.2-.6-4.3 1.4-3.7 3.6.5 1.9 1.8 3.3 1.9 5.3.2 2.3-.6 4.7-1.5 6.8-1.6 4.1-3.5 8.2-2.4 12.7 1 4.2 4.6 7.9 11.5 7.6 0 0 .8 3.2 1.9 4.9 3 4.5 32.4 5.3 35.2 0 2.8-5.2 0-14.5 0-14.5" fill="#c49a45"/><path d="m23.9 37.1c0 0-.9 19.4 2.9 23.3 2 2.1 8.6 2.2 10.5 0 1.9 2.2 8.5 2 10.5 0 3.6-3.8 2.9-23.3 2.9-23.3s-26.8 0-26.8 0" fill="#e5bc5e"/><path fill="#bc9342" d="m42.2 54.3l2.9.7.2-3.5-2.9.6z"/><g fill="#a37e3d"><path d="m51.9 50.3l1.9.4.1-2.4-2 .5z"/><path d="m19.6 45.5l.7 2.1 2.3-1.3-1.5-1.6z"/><path d="m10.7 15.8l.7 2.1 2.3-1.3-1.5-1.6z"/><path d="m7.2 37.3l.5 1.4 1.5-.8-1-1.1z"/><path d="m13.1 45.4l.4 1.4 1.5-.9-1-1z"/></g><g fill="#bc9342"><path d="m31.6 55.5l1.8-1.2-1.8-1.9-1.2 1.9z"/><path d="m46.2 48l1.9-1.2-1.9-1.9-1.1 1.9z"/><path d="m29.2 45.8l-2.5 1.6 2.5 2.6 1.5-2.6z"/></g><path d="m37.3 60.5c-.7-2.5-.7-12.4 0-14.9.7 2.5.7 12.4 0 14.9" fill="#3e4347"/><g fill="#77623c"><path d="m53.7 28.7l1.2-.8-1.2-1.3-.8 1.3z"/><path d="m19.9 28.8l1.2-.8-1.2-1.3-.8 1.3z"/><path d="m28.4 12l1.9-1.2-1.9-1.9-1.1 1.9z"/><path d="m39.9 16.5l1.9-1.3-1.9-1.9-1.1 1.9z"/><path d="m48.8 12l1.8-1.2-1.8-1.9-1.2 1.9z"/><path d="m35.4 20.1l1.3-.8-1.3-1.3-.7 1.3z"/></g><path d="m57.3 27.7c0 0-2.5 3.7-12.5 6.6-2.7-4.4-12.2-4.4-14.9 0-10-2.9-12.5-6.6-12.5-6.6s-1.3 6.7-.3 9.1c1.5 3.7 10.2 6.1 13.3 6.8 2.6 2.8 11.4 2.8 14.1 0 3.1-.7 11.8-3 13.3-6.8.8-2.4-.5-9.1-.5-9.1" fill="#ffe8bb"/><g fill="#77623c"><path d="m21.8 36.7l1.2-.8-1.2-1.2-.8 1.2z"/><path d="m56.1 36.2l.9-2.1-2.6-.7v2.3z"/><path d="m36.8 9.5l.6-1.3-1.7-.5v1.5z"/><path d="m24.1 13.7l.7-1.4-1.8-.5v1.6z"/><path d="m49.3 33.8l1.9-1.2-1.9-1.9-1.1 1.9z"/><path d="m31.7 23.5l1.6 5.3-4.5-2.8z"/><path d="m42.9 23.5l-1.6 5.3 4.6-2.8z"/></g><path d="m32.1 22.1c-1.5 9.2-12.1 6.9-12.1-1.2 0-4.3 0-4.3 6.6-5.8 6.8-1.4 6 3.5 5.5 7" fill="#ffe8bb"/><path d="m31 22.5c-.6 6.5-10.3 5.5-9.7-1 .2-2.5.3-2.8 5.1-2.2 4.8.5 4.8.7 4.6 3.2" fill="#3e4347"/><path d="m27.1 19.8c.5.3.8.7.8 1.3 0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.7.4-1.2 1.1-1.4-2.7-.3-2.8-.1-2.9 1.5-.3 3.7 6.1 4.4 6.4.7.1-1.6.1-1.8-2.4-2.1" fill="#fff"/><path d="m42.6 22.1c1.5 9.2 12.1 6.9 12.1-1.2 0-4.3 0-4.3-6.6-5.8-6.8-1.4-6.1 3.5-5.5 7" fill="#ffe8bb"/><path d="m43.7 22.5c.6 6.5 10.3 5.5 9.7-1-.2-2.5-.3-2.8-5.1-2.2-4.9.5-4.9.7-4.6 3.2" fill="#3e4347"/><path d="m49.2 19.6c.5.3.8.7.8 1.3 0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.5.2-.9.5-1.1-2.5.3-2.5.5-2.3 2.1.3 3.7 6.8 3 6.4-.7-.1-1.5-.1-1.8-2.4-1.6" fill="#fff"/><path fill="#a37e3d" d="m12.2 24.3l-1.8 1.8 1.8 1.9 1.8-1.9z"/><path d="m43.3 38.7c-.4-.9-2.5.5-5.5.6v-5.3h-1v5.4c-2.8-.2-5-1.6-5.5-.6-.5 1 2.7 2.4 6 2.4 3.3 0 6.5-1.4 6-2.5" fill="#3e4347"/><path d="m43.1 31.7c-2.3-1-9.5-1-11.6 0-.8.4 1.5 2.8 5.8 2.8 4.3 0 6.7-2.4 5.8-2.8" fill="#f15a61"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f407.svg b/build/js/jsxc/lib/emojione/assets/svg/1f407.svg
index cbb799d..f673e96 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f407.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f407.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#dedfe0" cx="50.888" cy="47.49" rx="4" ry="4.391"/><path fill="#aaacad" d="m38.972 58.751c1.59 1.811 11.6.334 12.227-2.01 3.02-11.305-5.02-14.74-5.02-14.74l-7.098 3.533c0 0-2.137 10.908-.109 13.217"/><path fill="#919191" d="m39.14 56.1c.106-.831.54-1.609 1.099-2.249.563-.646 1.285-1.154 2.073-1.501 1.595-.682 3.41-.652 4.955-.072-1.652.009-3.238.139-4.658.761-.71.298-1.365.718-1.957 1.225-.576.521-1.13 1.104-1.512 1.836"/><g fill="#c4c5c6"><path d="m29.659 60.675c1.529 1.826 6.994 1.709 8.652 0 2.377-2.451 2.275-13.631 2.377-19.08l-10.162-.861c0-.001-2.818 17.609-.867 19.941"/><path d="m29.71 60.675c-1.529 1.826-6.994 1.709-8.652 0-2.377-2.451-2.273-13.631-2.377-19.08l10.162-.861c0-.001 2.82 17.609.867 19.941"/></g><path fill="#aaacad" d="m29.685 60.739c-.295-1.433-.363-2.865-.375-4.298.011-1.433.078-2.865.375-4.298.297 1.433.364 2.865.375 4.298-.013 1.433-.081 2.866-.375 4.298"/><path fill="#fff" d="m38.687 48.08c0 4.512-9 9.176-9 9.176s-9-4.664-9-9.176 4.03-8.168 9-8.168 9 3.656 9 8.168"/><path fill="#b5b5b5" d="m47.38 2.01c-.98-.346-9.262 6.095-9.514 11.459-.488 10.485-1.201 13.431-1.201 13.431l5.611 1.449c0 0-.277-.951 6.859-11.971 2.712-4.186-.161-13.809-1.755-14.368"/><path fill="#ffc5d3" d="m45.964 7.258c-.971-.343-4.926 2.57-5.713 6.83-1.877 10.179-2.525 13.12-2.525 13.12l3.654.943c0 0-.021-.715 5.449-12.366 1.44-3.062.713-7.973-.865-8.527"/><path fill="#b5b5b5" d="m11.987 2.01c.981-.346 9.262 6.095 9.514 11.459.49 10.485 1.203 13.431 1.203 13.431l-5.612 1.449c0 0 .278-.951-6.861-11.971-2.712-4.186.161-13.809 1.756-14.368"/><path fill="#ffc5d3" d="m13.404 7.258c.972-.343 4.927 2.57 5.712 6.83 1.879 10.179 2.525 13.12 2.525 13.12l-3.65.943c0 0 .02-.715-5.451-12.366-1.437-3.062-.712-7.973.864-8.527"/><path fill="#c4c5c6" d="m15.03 28.28c0-5.978 4.538-10.278 14.66-10.278 10.123 0 14.658 4.301 14.658 10.279 0 5 7.619 12.352.83 17.252-3.279 2.364-8.938 4.469-15.488 4.469s-12.21-2.104-15.488-4.469c-6.791-4.901.828-12.25.828-17.253"/><path fill="#fff" d="m36.571 36.583c-.195-4.799-3.512-10.58-5.563-13.28-.924-1.22-1.724-1.22-2.648 0-2.051 2.7-5.369 8.481-5.563 13.28-3.769-.486-8.097-.295-8.955 1.725-1.694 3.99 6.268 10.725 15.842 10.725 9.573 0 17.534-6.734 15.841-10.725-.857-2.02-5.186-2.211-8.954-1.725"/><path fill="#4c5359" d="m37.19 42.32c-.834.645-1.917 1.021-3.02 1.066-1.1.057-2.254-.238-3.203-.832-.5-.314-.934-.731-1.275-1.212-.343.48-.777.897-1.275 1.214-.965.594-2.076.889-3.227.83-1.059-.041-2.182-.42-3-1.066-.508-.395 2.133 4.611 7.505 4.611 5.374.001 8.01-5.01 7.503-4.611"/><path fill="#fff" d="m33.917 30.851c0 0 .316-3.256 2.946-4.299 2.967-1.178 4.99 1.699 5.54 3.344.811 2.428-.207 5.082-.509 5.695-.199.403-2.392 2.309-7.333.505.001 0-1.23-2.7-.644-5.245"/><path fill="#b2b6b8" d="m33.917 30.851c.049-1.156.436-2.311 1.12-3.268.352-.472.797-.871 1.298-1.165.247-.151.519-.265.778-.354.286-.102.562-.155.854-.191 1.177-.152 2.363.398 3.216 1.219.85.836 1.504 1.882 1.825 3.121.286 1.231.212 2.498-.059 3.67-.144.588-.327 1.154-.575 1.711l-.103.213-.041.072-.063.088c-.039.049-.066.079-.099.113-.125.128-.249.227-.376.314-.257.172-.521.305-.789.409-1.078.423-2.207.438-3.275.282-1.068-.186-2.1-.514-3.066-.989 1.035.247 2.069.463 3.105.467 1.025.029 2.061-.11 2.953-.534.222-.106.431-.235.615-.38.09-.073.178-.149.241-.222l.036-.045c-.002 0-.002.004-.002.005.002-.003.032-.058.012-.02l.073-.173c.194-.488.346-1.02.45-1.549.219-1.057.264-2.156.014-3.16-.229-.985-.804-1.927-1.496-2.645-.696-.729-1.599-1.17-2.547-1.141-.232.01-.482.04-.703.1-.246.064-.477.143-.701.246-.451.203-.865.506-1.222.888-.733.754-1.209 1.806-1.473 2.918"/><ellipse fill="#4c5359" cx="37.729" cy="32.03" rx="2.614" ry="3.205"/><path fill="#fff" d="m25.452 30.851c0 0-.316-3.256-2.947-4.299-2.966-1.178-4.99 1.699-5.539 3.344-.811 2.428.207 5.082.508 5.695.2.403 2.392 2.309 7.333.505 0 0 1.23-2.7.645-5.245"/><path fill="#b2b6b8" d="m25.452 30.851c-.264-1.111-.74-2.166-1.474-2.917-.356-.382-.771-.685-1.222-.888-.225-.104-.455-.182-.701-.246-.221-.06-.471-.09-.703-.1-.949-.029-1.852.412-2.547 1.141-.693.718-1.267 1.659-1.497 2.645-.25 1-.205 2.104.014 3.16.104.529.256 1.061.45 1.549l.074.173c-.021-.038.01.017.011.019.001 0 0-.004-.001-.004l.035.045c.064.072.152.148.242.222.185.145.394.273.615.38.893.424 1.928.563 2.953.534 1.035-.004 2.07-.22 3.104-.467-.966.476-1.997.804-3.065.989-1.068.156-2.197.141-3.275-.282-.27-.104-.533-.237-.79-.409-.127-.088-.251-.187-.375-.314-.033-.034-.061-.064-.099-.113l-.063-.088-.041-.072-.103-.213c-.248-.557-.432-1.123-.574-1.711-.271-1.172-.346-2.439-.059-3.67.321-1.239.976-2.285 1.825-3.121.852-.82 2.039-1.371 3.216-1.219.292.036.567.09.854.191.259.09.529.203.777.354.502.294.946.693 1.297 1.165.687.956 1.072 2.11 1.122 3.267"/><ellipse fill="#4c5359" cx="21.643" cy="32.03" rx="2.614" ry="3.205"/><path fill="#fff" d="m27.02 40.06h5.324v4.423h-5.324z"/><path fill="#b2b6b8" d="m37.704 41.876c-.909.447-1.962.629-2.979.59-1.027-.061-2-.322-2.779-.822-.779-.481-1.355-1.17-1.521-1.93l-.736-3.364-.746 3.364c-.168.758-.74 1.449-1.521 1.929-.764.5-1.786.761-2.756.821-1.07.037-2.076-.142-3-.59-.916-.433-1.677-1.139-2.065-2.037.053.961.705 1.896 1.637 2.543.926.645 2.19 1.023 3.383 1.066 1.295.058 2.545-.237 3.631-.832.561-.314 1.05-.732 1.436-1.213.385.48.874.897 1.436 1.212 1.068.594 2.369.89 3.605.831 1.246-.043 2.466-.422 3.406-1.066.932-.646 1.583-1.58 1.638-2.541-.388.899-1.151 1.605-2.068 2.039"/><path fill="#ff94a4" d="m33.24 35.702c-.713-.574-2.901-.619-3.555-.619-.654 0-2.842.045-3.555.619-.508.41-.115 1.428 1.235 2.305.852.555 1.665.729 2.319.729.653 0 1.467-.174 2.319-.729 1.352-.877 1.745-1.895 1.237-2.305"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="50.9" cy="47.5" rx="4" ry="4.4" fill="#dedfe0"/><path d="m39 58.8c1.6 1.8 11.6.3 12.2-2 3-11.3-5-14.7-5-14.7l-7.1 3.5c0-.1-2.2 10.8-.1 13.2" fill="#aaacad"/><path d="m39.1 56.1c.1-.8.5-1.6 1.1-2.2.6-.6 1.3-1.2 2.1-1.5 1.6-.7 3.4-.7 5-.1-1.7 0-3.2.1-4.7.8-.7.3-1.4.7-2 1.2-.5.5-1.1 1.1-1.5 1.8" fill="#919191"/><g fill="#c4c5c6"><path d="m29.7 60.7c1.5 1.8 7 1.7 8.7 0 2.4-2.5 2.3-13.6 2.4-19.1l-10.2-.9c-.1 0-2.9 17.6-.9 20"/><path d="m29.7 60.7c-1.5 1.8-7 1.7-8.7 0-2.4-2.5-2.3-13.6-2.4-19.1l10.2-.9c0 0 2.9 17.6.9 20"/></g><path d="m29.7 60.7c-.3-1.4-.4-2.9-.4-4.3 0-1.4.1-2.9.4-4.3.3 1.4.4 2.9.4 4.3-.1 1.5-.1 2.9-.4 4.3" fill="#aaacad"/><path d="m38.7 48.1c0 4.5-9 9.2-9 9.2s-9-4.7-9-9.2 4-8.2 9-8.2 9 3.7 9 8.2" fill="#fff"/><path d="m47.4 2c-1-.3-9.3 6.1-9.5 11.5-.5 10.5-1.2 13.4-1.2 13.4l5.6 1.4c0 0-.3-1 6.9-12 2.6-4.1-.2-13.7-1.8-14.3" fill="#b5b5b5"/><path d="m46 7.3c-1-.3-4.9 2.6-5.7 6.8-1.9 10.2-2.5 13.1-2.5 13.1l3.7.9c0 0 0-.7 5.4-12.4 1.4-3 .6-7.9-.9-8.4" fill="#ffc5d3"/><path d="m12 2c1-.3 9.3 6.1 9.5 11.5.5 10.5 1.2 13.4 1.2 13.4l-5.6 1.4c0 0 .3-1-6.9-12-2.7-4.1.2-13.7 1.8-14.3" fill="#b5b5b5"/><path d="m13.4 7.3c1-.3 4.9 2.6 5.7 6.8 1.9 10.2 2.5 13.1 2.5 13.1l-3.6 1c0 0 0-.7-5.5-12.4-1.4-3.1-.7-8 .9-8.5" fill="#ffc5d3"/><path d="m15 28.3c0-6 4.5-10.3 14.7-10.3 10.1 0 14.7 4.3 14.7 10.3 0 5 7.6 12.4.8 17.3-3.3 2.4-8.9 4.5-15.5 4.5s-12.2-2.1-15.5-4.5c-6.8-5 .8-12.3.8-17.3" fill="#c4c5c6"/><path d="m36.6 36.6c-.2-4.8-3.5-10.6-5.6-13.3-.9-1.2-1.7-1.2-2.6 0-2.1 2.7-5.4 8.5-5.6 13.3-3.8-.5-8.1-.3-9 1.7-1.7 4 6.3 10.7 15.8 10.7 9.6 0 17.5-6.7 15.8-10.7-.7-2-5.1-2.2-8.8-1.7" fill="#fff"/><path d="m37.2 42.3c-.8.6-1.9 1-3 1.1-1.1.1-2.3-.2-3.2-.8-.5-.3-.9-.7-1.3-1.2-.3.5-.8.9-1.3 1.2-1 .6-2.1.9-3.2.8-1.1 0-2.2-.4-3-1.1-.5-.4 2.1 4.6 7.5 4.6 5.4 0 8-5 7.5-4.6" fill="#4c5359"/><path d="m33.9 30.9c0 0 .3-3.3 2.9-4.3 3-1.2 5 1.7 5.5 3.3.8 2.4-.2 5.1-.5 5.7-.2.4-2.4 2.3-7.3.5.1 0-1.2-2.7-.6-5.2" fill="#fff"/><path d="m33.9 30.9c0-1.2.4-2.3 1.1-3.3.4-.5.8-.9 1.3-1.2.2-.2.5-.3.8-.4.3-.1.6-.2.9-.2 1.2-.2 2.4.4 3.2 1.2.8.8 1.5 1.9 1.8 3.1.3 1.2.2 2.5-.1 3.7-.1.6-.3 1.2-.6 1.7l-.1.2v.1.2c0 0-.1.1-.1.1-.1.1-.2.2-.4.3-.3.2-.5.3-.8.4-1.1.4-2.2.4-3.3.3-1.1-.2-2.1-.5-3.1-1 1 .2 2.1.5 3.1.5 1 0 2.1-.1 3-.5.2-.1.4-.2.6-.4.1-.1.2-.1.2-.2 0 0 0 0 0 0l.1-.2c.2-.5.3-1 .5-1.5.2-1.1.3-2.2 0-3.2-.2-1-.8-1.9-1.5-2.6-.7-.7-1.6-1.2-2.5-1.1-.2 0-.5 0-.7.1-.2.1-.5.1-.7.2-.5.2-.9.5-1.2.9-.7.6-1.2 1.6-1.5 2.8" fill="#b2b6b8"/><ellipse cx="37.7" cy="32" rx="2.6" ry="3.2" fill="#4c5359"/><path d="m25.5 30.9c0 0-.3-3.3-2.9-4.3-3-1.2-5 1.7-5.5 3.3-.8 2.4.2 5.1.5 5.7.2.4 2.4 2.3 7.3.5-.1 0 1.1-2.7.6-5.2" fill="#fff"/><path d="m25.5 30.9c-.3-1.1-.7-2.2-1.5-2.9-.4-.4-.8-.7-1.2-.9-.2-.1-.5-.2-.7-.2-.2-.1-.5-.1-.7-.1-.9 0-1.9.4-2.5 1.1-.7.7-1.3 1.7-1.5 2.6-.2 1-.2 2.1 0 3.2.1.5.3 1.1.5 1.5l.1.2c0 0 0 0 0 0 .1.1.2.1.2.2.2.1.4.3.6.4.9.4 1.9.6 3 .5 1 0 2.1-.2 3.1-.5-1 .5-2 .8-3.1 1-1.1.2-2.2.1-3.3-.3-.3-.1-.5-.2-.8-.4-.1-.1-.3-.2-.4-.3 0 0-.1-.1-.1-.1l-.1-.1v-.1l-.1-.1c-.2-.6-.4-1.1-.6-1.7-.3-1.2-.3-2.4-.1-3.7.3-1.2 1-2.3 1.8-3.1.9-.8 2-1.4 3.2-1.2.3 0 .6.1.9.2.3.1.5.2.8.4.5.3.9.7 1.3 1.2.7.8 1.1 2 1.2 3.2" fill="#b2b6b8"/><ellipse cx="21.6" cy="32" rx="2.6" ry="3.2" fill="#4c5359"/><path fill="#fff" d="m27 40.1h5.3v4.4h-5.3z"/><path d="m37.7 41.9c-.9.4-2 .6-3 .6-1-.1-2-.3-2.8-.8-.8-.5-1.4-1.2-1.5-1.9l-.7-3.4-.7 3.4c-.2.8-.7 1.4-1.5 1.9-.8.5-1.8.8-2.8.8-1.1 0-2.1-.1-3-.6-.9-.4-1.7-1.1-2.1-2 .1 1 .7 1.9 1.6 2.5.9.6 2.2 1 3.4 1.1 1.3.1 2.5-.2 3.6-.8.6-.3 1-.7 1.4-1.2.4.5.9.9 1.4 1.2 1.1.6 2.4.9 3.6.8 1.2 0 2.5-.4 3.4-1.1.9-.6 1.6-1.6 1.6-2.5-.2.8-1 1.5-1.9 2" fill="#b2b6b8"/><path d="m33.2 35.7c-.7-.6-2.9-.6-3.6-.6s-2.8 0-3.6.6c-.5.4-.1 1.4 1.2 2.3.9.6 1.7.7 2.3.7.7 0 1.5-.2 2.3-.7 1.6-.9 1.9-1.9 1.4-2.3" fill="#ff94a4"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f408.svg b/build/js/jsxc/lib/emojione/assets/svg/1f408.svg
index 18552b4..4eadb2c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f408.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f408.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m2.265 36.11c-.229-1.012-.31-1.998-.242-2.936.086-1.153.398-2.208.929-3.134.618-1.084 1.568-1.982 2.674-2.522 1.133-.567 2.502-.79 3.801-.622 1.186.146 2.367.6 3.411 1.308.888.6 1.689 1.38 2.385 2.324 1.096 1.503 1.856 3.277 2.329 5.424l.006.031c.018.086.031.174.043.264.151 1.309-.642 2.52-1.929 2.941-.204.066-.417.111-.633.133-.771.078-1.527-.137-2.135-.607-.606-.471-.987-1.141-1.073-1.885-.161-1.379-.533-2.596-1.079-3.52-.546-.936-1.33-1.599-2.1-1.774-.338-.08-.679-.07-.985.031-.366.119-.678.356-.932.705-.264.361-.452.841-.546 1.384-.098.555-.104 1.17-.021 1.832.151 1.213.592 2.561 1.306 4 .302.613.673 1.275 1.104 1.963.419.668.893 1.285 1.338 1.85 1.051 1.303 2.099 2.326 3.204 3.129 1.254.91 2.564 1.494 3.893 1.738 1.335.248 2.812.154 4.266-.277 1.189-.35 1.939.094 2.132.65.18.514-.06 1.264-1.318 1.688l-.139.049c-1.791.586-3.653.762-5.381.504-1.744-.246-3.529-.955-5.165-2.049-1.362-.908-2.649-2.063-3.931-3.531-.498-.563-.956-1.154-1.398-1.727l-.206-.268c-.568-.744-1.054-1.445-1.483-2.141-1.079-1.756-1.753-3.33-2.125-4.959"/><path d="m46.732 55.942c1.766 2.256 9.703.047 10.988-2.555 5.24-10.617-.006-15.207-.006-15.207l-10.982 1.471c0 0-2.253 13.411 0 16.291"/><path d="m31.818 55.942c-1.767 2.256-9.705.047-10.989-2.555-5.242-10.617.004-15.207.004-15.207l10.985 1.471c0 0 2.252 13.411 0 16.291"/></g><g fill="#fff"><path d="m34.541 55.2c-.096 1.051-2.6 1.699-5.596 1.445-2.996-.252-5.348-1.309-5.253-2.361.096-1.051 2.42.293 5.416.547 2.997.252 5.529-.684 5.433.369"/><path d="m44.01 55.2c.094 1.051 2.6 1.699 5.596 1.445 2.996-.252 5.348-1.309 5.252-2.361-.094-1.051-2.42.293-5.416.547-2.997.252-5.528-.684-5.432.369"/></g><g fill="#4c5359"><path d="m39.24 60.38c1.957 2.232 8.941 2.092 11.06 0 3.037-2.994 2.908-16.652 3.037-23.313l-12.988-1.053c0 .001-3.606 21.52-1.112 24.366"/><path d="m39.31 60.38c-1.955 2.232-8.944 2.092-11.06 0-3.038-2.994-2.909-16.652-3.038-23.313l12.99-1.053c-.001.001 3.605 21.52 1.111 24.366"/></g><path fill="#fff" d="m33.979 43.749l5.291 11.125 5.3-11.125z"/><path fill="#4c5359" d="m59.904 2.199c-2.414-1.428-14.799 5.071-17.291 9.493l17.91 10.592c2.387-4.234 1.659-18.738-.619-20.09"/><path fill="#f7a4a4" d="m56.17 8.824c-.889-.526-8.205 2.777-9.582 5.219l9.961 5.89c1.318-2.337.437-10.628-.379-11.11"/><path fill="#4c5359" d="m18.732 2.187c-2.415 1.428-3.113 15.665-.621 20.09l17.912-10.592c-2.388-4.234-15.01-10.84-17.291-9.493"/><path fill="#f7a4a4" d="m22.465 8.812c-.89.525-1.755 8.668-.379 11.11l9.96-5.891c-1.317-2.337-8.767-5.7-9.581-5.219"/><path fill="#4c5359" d="m39.27 9.419c-20.773 0-22.725 14.531-22.725 22.728 0 3.362 10.177 13.853 22.725 13.853 12.549-.001 22.727-10.491 22.727-13.854 0-8.196-1.951-22.727-22.727-22.727"/><path fill="#bfffab" d="m33.467 28.546c0 0-2.363 3.601-6.77 2.457-4.406-1.145-4.594-5.406-4.594-5.406s2.361-3.599 6.769-2.456c4.407 1.144 4.595 5.405 4.595 5.405"/><path fill="#93e67f" d="m33.02 26.702c0 0-2.099 2.265-4.979 2.265-3.124 0-4.979-4.425-4.979-4.425s2.056-2.352 5.815-1.403c3.445.867 4.143 3.563 4.143 3.563"/><path fill="#4c5359" d="m29.813 26.649c0 4.926-2.434 4.926-2.434 0 0-4.928 2.434-4.928 2.434 0"/><path fill="#bfffab" d="m45.08 28.546c0 0 2.361 3.601 6.77 2.457 4.406-1.145 4.594-5.406 4.594-5.406s-2.361-3.599-6.77-2.456c-4.406 1.144-4.594 5.405-4.594 5.405"/><path fill="#93e67f" d="m45.533 26.702c0 0 2.1 2.265 4.977 2.265 3.125 0 4.98-4.425 4.98-4.425s-2.055-2.352-5.816-1.403c-3.444.867-4.141 3.563-4.141 3.563"/><path fill="#4c5359" d="m48.734 26.649c0 4.926 2.436 4.926 2.436 0 0-4.928-2.436-4.928-2.436 0"/><path fill="#fff" d="m45.908 32.51c-1.98-1.504-4.17-6.486-6.635-6.486s-4.654 4.982-6.634 6.486c-3.137 2.384-11.497 5.085-11.497 5.085.001 0 8.922 7.619 18.13 7.619 9.211 0 18.13-7.619 18.13-7.619s-8.361-2.701-11.498-5.085"/><g fill="#4c5359"><path d="m45.729 39.31c-.732.443-1.58.623-2.398.584-.826-.059-1.607-.318-2.236-.814-.627-.477-1.09-1.158-1.225-1.91l-.592-3.332-.6 3.332c-.137.75-.596 1.434-1.227 1.91-.613.494-1.436.754-2.215.813-.863.039-1.672-.139-2.417-.582-.737-.43-1.35-1.129-1.663-2.02.044.953.567 1.879 1.317 2.518.745.639 1.764 1.016 2.723 1.057 1.041.057 2.047-.234 2.922-.822.451-.313.846-.727 1.154-1.203.311.477.703.889 1.156 1.201.861.588 1.906.881 2.9.824 1.01-.045 1.986-.418 2.742-1.057.75-.641 1.273-1.564 1.318-2.518-.31.89-.923 1.589-1.659 2.02"/><path d="m42.36 33.09c-.617-.738-2.518-.795-3.086-.795-.566 0-2.469.057-3.088.795-.439.529-.098 1.838 1.074 2.965.74.713 1.447.939 2.01.939.568 0 1.275-.227 2.02-.939 1.172-1.127 1.514-2.436 1.07-2.965"/></g><g fill="#fff"><path d="m38.959 59.62c0 1.055-2.313 1.91-5.164 1.91-2.853 0-5.165-.855-5.165-1.91 0-1.057 2.312.088 5.165.088 2.851 0 5.164-1.144 5.164-.088"/><path d="m49.918 59.62c0 1.055-2.313 1.91-5.164 1.91-2.854 0-5.166-.855-5.166-1.91 0-1.057 2.313.088 5.166.088 2.851 0 5.164-1.144 5.164-.088"/></g><g fill="#3e4347"><path d="m29.575 61.25l1.402-2.448-.424 2.768z"/><path d="m33.11 61.995l.517-3.295.523 3.295z"/><path d="m37.04 61.63l-.395-2.59 1.375 2.26z"/><path d="m47.996 61.57l-.426-2.768 1.403 2.448z"/><path d="m44.4 61.995l.518-3.295.522 3.295z"/><path d="m40.533 61.3l1.367-2.26-.392 2.59z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m2.3 36.1c-.2-1-.3-2-.2-2.9 0-1.2.3-2.2.9-3.2.6-1.1 1.6-2 2.7-2.5 1.1-.6 2.5-.8 3.8-.6 1.2.1 2.4.6 3.4 1.3.9.6 1.7 1.4 2.4 2.3 1.1 1.5 1.9 3.3 2.3 5.4 0 .1 0 .2 0 .3.2 1.3-.6 2.5-1.9 2.9-.2.1-.4.1-.6.1-.8.1-1.5-.1-2.1-.6-.6-.5-1-1.1-1.1-1.9-.2-1.4-.5-2.6-1.1-3.5-.5-.9-1.3-1.6-2.1-1.8-.3-.1-.7-.1-1 0-.4.1-.7.4-.9.7-.3.4-.5.8-.5 1.4-.1.6-.1 1.2 0 1.8.2 1.2.6 2.6 1.3 4 .3.6.7 1.3 1.1 2 .4.7.9 1.3 1.3 1.8 1.1 1.3 2.1 2.3 3.2 3.1 1.3.9 2.6 1.5 3.9 1.7 1.3.2 2.8.2 4.3-.3 1.2-.3 1.9.1 2.1.7.2.5-.1 1.3-1.3 1.7h-.1c-1.8.6-3.7.8-5.4.5-1.7-.2-3.5-1-5.2-2-1.4-.9-2.6-2.1-3.9-3.5-.5-.6-1-1.2-1.4-1.7l-.2-.3c-.6-.7-1.1-1.4-1.5-2.1-1.2-1.6-1.9-3.2-2.2-4.8"/><path d="m46.7 55.9c1.8 2.3 9.7 0 11-2.6 5.2-10.6 0-15.2 0-15.2l-11 1.5c0 .1-2.2 13.5 0 16.3"/><path d="m31.8 55.9c-1.8 2.3-9.7 0-11-2.6-5.2-10.6 0-15.2 0-15.2l11 1.5c0 .1 2.3 13.5 0 16.3"/></g><g fill="#fff"><path d="m34.5 55.2c-.1 1.1-2.6 1.7-5.6 1.4-3-.3-5.3-1.3-5.3-2.4.1-1.1 2.4.3 5.4.5 3.1.4 5.6-.5 5.5.5"/><path d="m44 55.2c.1 1.1 2.6 1.7 5.6 1.4 3-.3 5.3-1.3 5.3-2.4-.1-1.1-2.4.3-5.4.5-3.1.4-5.6-.5-5.5.5"/></g><g fill="#4c5359"><path d="m39.2 60.4c2 2.2 8.9 2.1 11.1 0 3-3 2.9-16.7 3-23.3l-13-1.1c.1 0-3.6 21.5-1.1 24.4"/><path d="m39.3 60.4c-2 2.2-8.9 2.1-11.1 0-3-3-2.9-16.7-3-23.3l13-1.1c0 0 3.6 21.5 1.1 24.4"/></g><path fill="#fff" d="m34 43.7l5.3 11.2 5.3-11.2z"/><path d="m59.9 2.2c-2.4-1.4-14.8 5.1-17.3 9.5l17.9 10.6c2.4-4.3 1.7-18.8-.6-20.1" fill="#4c5359"/><path d="m56.2 8.8c-.9-.5-8.2 2.8-9.6 5.2l10 5.9c1.3-2.3.4-10.6-.4-11.1" fill="#f7a4a4"/><path d="M18.7,2.2c-2.4,1.4-3.1,15.7-0.6,20.1L36,11.7C33.6,7.4,21,0.8,18.7,2.2z" fill="#4c5359"/><path d="m22.5 8.8c-.9.5-1.8 8.7-.4 11.1l9.9-5.9c-1.3-2.3-8.7-5.7-9.5-5.2" fill="#f7a4a4"/><path d="m39.3 9.4c-20.8 0-22.8 14.6-22.8 22.7 0 3.4 10.2 13.9 22.7 13.9 12.6 0 22.8-10.5 22.8-13.9 0-8.1-2-22.7-22.7-22.7" fill="#4c5359"/><path d="m33.5 28.5c0 0-2.4 3.6-6.8 2.5-4.4-1.1-4.6-5.4-4.6-5.4s2.4-3.6 6.8-2.5c4.4 1.2 4.6 5.4 4.6 5.4" fill="#bfffab"/><path d="m33 26.7c0 0-2.1 2.3-5 2.3-3.1 0-5-4.4-5-4.4s2.1-2.4 5.8-1.4c3.5.8 4.2 3.5 4.2 3.5" fill="#93e67f"/><path d="m29.8 26.6c0 4.9-2.4 4.9-2.4 0 0-4.9 2.4-4.9 2.4 0" fill="#4c5359"/><path d="m45.1 28.5c0 0 2.4 3.6 6.8 2.5 4.4-1.1 4.6-5.4 4.6-5.4s-2.4-3.6-6.8-2.5c-4.4 1.2-4.6 5.4-4.6 5.4" fill="#bfffab"/><path d="m45.5 26.7c0 0 2.1 2.3 5 2.3 3.1 0 5-4.4 5-4.4s-2.1-2.4-5.8-1.4c-3.5.8-4.2 3.5-4.2 3.5" fill="#93e67f"/><path d="m48.7 26.6c0 4.9 2.4 4.9 2.4 0 .1-4.9-2.4-4.9-2.4 0" fill="#4c5359"/><path d="m45.9 32.5c-2-1.5-4.2-6.5-6.6-6.5s-4.7 5-6.6 6.5c-3.1 2.4-11.5 5.1-11.5 5.1 0 0 8.9 7.6 18.1 7.6 9.2 0 18.1-7.6 18.1-7.6s-8.4-2.7-11.5-5.1" fill="#fff"/><g fill="#4c5359"><path d="m45.7 39.3c-.7.4-1.6.6-2.4.6-.8-.1-1.6-.3-2.2-.8-.6-.5-1.1-1.2-1.2-1.9l-.6-3.3-.6 3.3c-.1.8-.6 1.4-1.2 1.9-.6.5-1.4.8-2.2.8-.9 0-1.7-.1-2.4-.6-.7-.4-1.4-1.1-1.7-2 0 1 .6 1.9 1.3 2.5.7.6 1.8 1 2.7 1.1 1 .1 2-.2 2.9-.8.5-.3.8-.7 1.2-1.2.3.5.7.9 1.2 1.2.9.6 1.9.9 2.9.8 1 0 2-.4 2.7-1.1.8-.6 1.3-1.6 1.3-2.5-.3.9-.9 1.6-1.7 2"/><path d="m42.4 33.1c-.6-.7-2.5-.8-3.1-.8-.6 0-2.5.1-3.1.8-.4.5-.1 1.8 1.1 3 .7.7 1.4.9 2 .9.6 0 1.3-.2 2-.9 1.2-1.2 1.5-2.5 1.1-3"/></g><g fill="#fff"><path d="m39 59.6c0 1.1-2.3 1.9-5.2 1.9-2.9 0-5.2-.9-5.2-1.9 0-1.1 2.3.1 5.2.1 2.8 0 5.2-1.1 5.2-.1"/><path d="m49.9 59.6c0 1.1-2.3 1.9-5.2 1.9-2.9 0-5.2-.9-5.2-1.9 0-1.1 2.3.1 5.2.1 2.9 0 5.2-1.1 5.2-.1"/></g><g fill="#3e4347"><path d="m29.6 61.2l1.4-2.4-.4 2.8z"/><path d="m33.1 62l.5-3.3.5 3.3z"/><path d="m37 61.6l-.4-2.6 1.4 2.3z"/><path d="m48 61.6l-.4-2.8 1.4 2.4z"/><path d="m44.4 62l.5-3.3.5 3.3z"/><path d="m40.5 61.3l1.4-2.3-.4 2.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f409.svg b/build/js/jsxc/lib/emojione/assets/svg/1f409.svg
index 2b31730..aaf9cd2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f409.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f409.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b5aada" d="m19.359 37.449l-5.282-3.896c0 0-2.855 2.319-1.848 4.404 1.01 2.084 1.745-1.133 1.745-1.133-.074.828 1.027 2.842 1.691.154 0 0 .341 2.072 1.104.727.882-1.552 2.505.152 2.505.152l.085-.408"/><g fill="#ff8e66"><path d="m36.888 43l-3.113 3.473c0 0 1.679.838 2.611.951.934.111 2.664-.324 2.664-.324l-2.162-4.1"/><path d="m34.89 41.21l-4.708-.285c0 0 .353 1.816.833 2.607s1.892 1.865 1.892 1.865l1.983-4.187"/><path d="m31.704 37.1l-3.705.215c0 0 .451 1.385.903 1.959s1.658 1.281 1.658 1.281l1.144-3.455"/><path d="m28.504 34.35l-2.63.559c0 0 .479.943.869 1.305.389.362 1.333.737 1.333.737l.428-2.601"/></g><path fill="#8a83b2" d="m26.573 51.06c2.01 10.412 16.771 4.818 23.394.494 6.793-4.43 9.902-11.855 5.155-19.553-4.098-6.643 4.878-10 4.878-10s-11.817 2.057-10.135 10.212c1.438 6.961.121 11.245-7.558 14.178-8.694 3.32-18.44-9.377-15.734 4.672"/><g fill="#ff8e66"><path d="m41.656 42.539l-1.154 4.428c0 0 1.91-.012 2.784-.328.877-.318 2.169-1.467 2.169-1.467l-3.799-2.633"/><path d="m45.02 40.39l1.121 4.357c0 0 1.71-.787 2.347-1.426.636-.643 1.254-2.203 1.254-2.203l-4.722-.728"/><path d="m47.12 38.1l2.903 2.395c0 0 .709-1.27.792-1.969.088-.699-.314-1.986-.314-1.986l-3.381 1.56"/><path d="m47.69 34.18l3.041 1.579c0 0 .403-1.187.363-1.797-.04-.612-.593-1.661-.593-1.661l-2.811 1.879"/><path d="m48.15 30.13l2.158 1.604c0 0 .449-.905.486-1.396.033-.491-.291-1.378-.291-1.378l-2.353 1.17"/><path d="m49.74 26.575l1 1.732c0 0 .627-.48.823-.802.198-.323.295-1.021.295-1.021l-2.121.091"/><path d="m52.11 24.324l.292 1.588c0 0 .601-.238.832-.443.232-.209.477-.729.477-.729l-1.601-.416"/><path d="m54.32 23.03l.074 1.163c0 0 .503-.099.715-.225.212-.129.487-.494.487-.494l-1.276-.444"/><path d="m56.37 22.375l-.117.83c0 0 .37-.003.54-.065.167-.065.415-.289.415-.289l-.838-.476"/></g><path fill="#fed0ac" d="m48.598 49.33c-5.685 3.457-17.71 5.514-21.626 2.697 2.573 9.365 16.756 3.955 23.21-.26 6.529-4.26 9.554-11.289 5.564-18.667 2.092 6.613-1.147 12.582-7.149 16.23"/><g fill="#e5b28f"><path d="m40.41 52.41c.17.877.015 1.812-.376 2.631-.212.401-.481.777-.818 1.081-.336.306-.729.537-1.145.696.74-.487 1.371-1.107 1.74-1.89.201-.38.333-.794.433-1.216.093-.423.158-.859.166-1.302"/><path d="m46.555 50.39c.251.713.242 1.508.047 2.248-.115.365-.275.722-.505 1.03-.225.312-.516.567-.835.765.518-.542.915-1.162 1.1-1.864.111-.345.16-.707.192-1.07.026-.365.035-.736.001-1.109"/><path d="m51.43 47.26c.454.643.509 1.509.33 2.271-.204.765-.626 1.458-1.193 1.983.404-.654.784-1.315.95-2.044.1-.358.135-.73.125-1.103-.016-.37-.071-.749-.212-1.107"/><path d="m54.55 43.549c.917.819 1.23 2.313.662 3.418.083-.605.113-1.194-.018-1.769-.048-.288-.142-.567-.249-.843-.111-.273-.236-.546-.395-.806"/><path d="m56.29 38.602c.424.388.706.902.913 1.437.09.272.165.551.195.837.04.285.02.575-.022.855-.102-.56-.205-1.095-.408-1.608-.174-.523-.422-1.015-.678-1.521"/></g><path fill="#8a83b2" d="m12.358 53.9c-2.305.664-2.645 3.01-1.063 2.322 2.756-1.197-1.443.293.401 1.875.407.35 8.211-.258 8.448-1 1.996-6.254-2.633-13.66-4.206-12.955-5.75 2.573-3.58 9.758-3.58 9.758"/><g fill="#ff8e66"><path d="m10.372 54.789c-.826.736-.233 1.883-.233 1.883s.271-.58.839-.664c.615-.094.864-.695.674-1.193-.194-.499-.765-.487-1.28-.026"/><path d="m11.379 56.08c-.953.85-.266 2.168-.266 2.168s.307-.666.961-.764c.713-.107.999-.801.775-1.375-.218-.572-.874-.558-1.47-.029"/></g><path fill="#fed0ac" d="m19.04 36.403c-11.08 18.15-.472 20.415 4.904 19.915 9.277-.861 15.891-9.504.965-20.16-6.166-4.399 12.326-8.422-3.648-6.939-12.729 1.184 1.296 1.417-2.221 7.18"/><g fill="#e5b28f"><path d="m28.861 47.555c-2.417.41-4.901.405-7.341.084-1.218-.178-2.434-.428-3.595-.867-.577-.224-1.148-.48-1.666-.833-.498-.355-1-.819-1.138-1.433.246.568.746.946 1.268 1.225.519.295 1.086.503 1.661.677 1.153.342 2.342.573 3.54.736 2.397.335 4.825.432 7.271.411"/><path d="m14.254 49.6c.463.737 1.135 1.303 1.889 1.699.746.413 1.559.696 2.387.906 1.661.41 3.372.647 5.088.721 1.705.091 3.428-.06 5.09-.461 1.661-.398 3.272-1.069 4.677-2.092-1.276 1.188-2.896 1.979-4.578 2.464-1.689.489-3.458.645-5.213.587-1.74-.117-3.486-.349-5.168-.852-.837-.261-1.661-.592-2.407-1.065-.735-.478-1.4-1.112-1.765-1.907"/><path d="m27.926 41.469c-.89.353-1.858.451-2.806.511-.953.058-1.908.018-2.858-.074-.948-.105-1.895-.26-2.813-.546-.457-.146-.911-.313-1.339-.541-.399-.241-.873-.541-.97-1.033.202.438.654.646 1.075.812.427.174.878.294 1.333.392.911.19 1.836.328 2.767.42.93.103 1.865.155 2.801.188.935.019 1.875.021 2.81-.129"/><path d="m19.501 35.54c.287.487.851.656 1.362.78.527.116 1.069.173 1.614.193 1.089.069 2.185.016 3.289.018-1.086.204-2.193.273-3.302.232-.553-.042-1.11-.097-1.649-.258-.521-.154-1.108-.424-1.314-.965"/></g><g fill="#8a83b2"><path d="m24.11 35.438c-2.396-2.881-.994-1.907.636-3.474 4.559-.928-1.306-.046.817 1.98 11.739 11.201 9.448 18.445 2.956 21.22 1.672-4.497 1.989-12.03-4.409-19.729"/><path d="m5.313 12.982c2.25 2.607-3.954 3.418.527 4.639 4.163 1.136 10.771 1.896 10.771-1.44 0-2.287-3.222-8.337-6.307-10.768-1.42-1.121-1.341 2.817-2.685 3.051-4.216.734-4.413 2.076-2.306 4.518"/><path d="m39.41 12.982c-2.251 2.607 3.954 3.418-.527 4.639-4.163 1.136-10.77 1.896-10.77-1.44 0-2.287 3.221-8.337 6.306-10.768 1.42-1.121 1.34 2.817 2.686 3.052 4.215.733 4.413 2.075 2.305 4.517"/><path d="m9.308 25.744c0 2.02.664 3.038 3.957 4.585 2.051.964 2.052 4.358 8.721 4.358 6.662 0 6.672-3.396 8.723-4.359 3.29-1.549 3.954-2.568 3.954-4.584 0-3.856-5.676-3.491-12.676-3.491-7-.001-12.679-.366-12.679 3.491"/></g><g fill="#ff8e66"><path d="m19.824 2.058c.513.291-1.272 4.114 1.224 8.439.875 1.516-.669 1.816-2.311 1.816-1.983 0-3.476-.892-3.494-2.13-.057-3.713 3.396-8.794 4.581-8.125"/><path d="m24.901 2.058c1.186-.669 4.637 4.412 4.581 8.126-.019 1.238-1.514 2.13-3.493 2.13-1.641 0-3.188-.301-2.312-1.816 2.497-4.326.71-8.149 1.224-8.44"/></g><path fill="#b5aada" d="m5.748 21.55c0-5.442 10.74-13.415 16.614-13.415s16.615 7.973 16.615 13.415c0 4.193-6.087 3.437-10.565 7.177-1.961 1.639-2.63 3.459-6.05 3.459-3.418 0-4.088-1.82-6.05-3.459-4.479-3.737-10.565-2.983-10.565-7.177"/><g fill="#400a22"><path d="m24.22 26.688c-.445.81-.377 1.668.153 1.918.528.25 1.317-.202 1.764-1.012.445-.809.378-1.668-.152-1.919-.528-.249-1.319.205-1.765 1.013"/><path d="m18.741 25.675c.528-.249 1.319.205 1.765 1.013.445.81.378 1.668-.153 1.918-.527.25-1.317-.202-1.765-1.012-.445-.808-.377-1.668.153-1.919"/></g><g fill="#8a83b2"><path d="m13.831 18.838c.587.532 1.121 1.929-1.191 2.583-1.858.527-3.787 2.646-3.787 2.646s.079-2.757 1.364-4.211c1.219-1.378 2.909-1.659 3.614-1.018"/><path d="m30.892 18.838c-.586.532-1.12 1.929 1.193 2.583 1.859.527 3.788 2.646 3.788 2.646s-.079-2.757-1.366-4.211c-1.218-1.378-2.908-1.659-3.615-1.018"/></g><ellipse fill="#fff" cx="14.812" cy="19.316" rx="5.126" ry="4.751"/><ellipse fill="#42ade2" cx="14.811" cy="19.316" rx="3.818" ry="3.539"/><ellipse fill="#5e51a7" cx="14.811" cy="19.316" rx=".474" ry="3.203"/><ellipse fill="#fff" cx="29.914" cy="19.316" rx="5.126" ry="4.751"/><ellipse fill="#42ade2" cx="29.914" cy="19.316" rx="3.818" ry="3.539"/><ellipse fill="#5e51a7" cx="29.914" cy="19.316" rx=".473" ry="3.203"/><path fill="#8a83b2" d="m24.12 56.34c-2.999.863-3.443 3.916-1.385 3.02 3.587-1.559-1.879.381.523 2.439.53.453 10.683-.334 10.992-1.301 2.597-8.139-3.425-17.775-5.472-16.857-7.486 3.348-4.658 12.698-4.658 12.698"/><g fill="#ff8e66"><path d="m21.535 57.5c-1.075.957-.303 2.449-.303 2.449s.351-.752 1.09-.863c.802-.123 1.124-.904.876-1.553-.252-.646-.993-.633-1.663-.033"/><path d="m22.845 59.17c-1.24 1.107-.346 2.824-.346 2.824s.399-.867 1.253-.996c.926-.139 1.297-1.041 1.01-1.789-.285-.742-1.139-.725-1.914-.039"/></g><path fill="#b5aada" d="m27.429 36.955l8.964-5.999c0 0 4.66 2.814 2.986 5.761-1.673 2.946-2.851-1.332-2.851-1.332.113 1.113-1.713 3.976-2.776.404 0 0-.58 2.854-1.817 1.12-1.43-2.01-4.111.5-4.111.5l-.395-.454"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m16.9 14.2c-1.8.8-2.9 2.4-4.7.8-1.8-1.6-2.5-1.3-3.2-1.1 0 0 1.1-.2 2.3 1 1.2 1.1 1.7 2.3 4.3 1.3 1.9-.7 3.7-1 4.6-.7.9.3.9-3.3-3.3-1.3" fill="#ed4c5c"/><g fill="#fff"><path d="m4.9 15.6l.7-1.3 4.5-1.3h-6.3z"/><path d="m11.2 17.3l-4.8-1.5-.4-.7-1.1 2.2z"/></g><g fill="#64892f"><path d="m35.1 56.1c-3.1-.3-4.1 1.1-5.7.9 0 0 .9.6 2.1.7 0 0-2.3 1.2-6.1.6 0 0 2.6 2.5 5.8 1.8 0 0-.3.8-1.2 1.4 0 0 1.9.6 3.6-.7 0 0 .2.5-.9 1.3 7.5-.6 5.6-5.7 2.4-6"/><path d="m62 20.1c-1.6-4.2-4.8-6.2-4.8-6.2 1.2-.6 2.9-.2 2.9-.2-2.4-3.3-7.8-4.2-7.8-4.2.7-.6 3-.9 3-.9-3.5-2.2-8.5-1.4-8.5-1.4.3-1.1 1.5-1.8 1.5-1.8-4.9-1.4-9.7.6-9.7.6.1-1.1 1.6-2 1.6-2-2.2-.6-8.4 1-8.4 1 .6-1.4-.6-2.7-.6-2.7-2.2 1.6-6.5 1.4-6.5 1.4.2-.8 1.2-1.7 1.2-1.7-10.4 0-9.1 5.8-9.1 5.8 0 0 33.2-2.4 33.2 13.7 0 16.9-37.8-3.1-37.8 15.2 0 20.1 40.4-3.2 40.4 12.1 0 8.5-12.8 9.9-12.8 9.9-1.8.5-1.1 1.9-1.1 1.9 1.4-1.3 5.8-1.3 5.8-1.3-.1.5-1 1.4-1 1.4 4.4-.4 6.3-1.8 6.3-1.8.2.6-.9 1.5-.9 1.5 4.4-.3 5.6-3.3 5.6-3.3.9.4.7 1.2.7 1.2 3.5-1.8 3.7-5.3 3.7-5.3.8.2 1.8.9 1.8.9 1-4.2-1.1-6.7-1.1-6.7.3.3 1.7.4 1.7.4-.1-3.5-2.8-4.9-2.8-4.9.9-1 2.7-.1 2.7-.1-1.8-4.6-6.8-4.2-6.8-4.2.6-.8 2.8-1.4 2.8-1.4-2.4-1.7-8.2-1-8.2-1 4.9-1.2 6.2-4.6 6.2-4.6.2.6.1 2.7.1 2.7 3.6-2.9 2.8-6.7 2.8-6.7 1.2.4 1.8 2 1.8 2 2.6-5.1-.3-8.4-.3-8.4 1.5.1 2.4-.9 2.4-.9m-31.8 18.7c-.5-1.5-3.4-1.4-3.4-1.4 0 2.1-4.7 3.6-4.7 3.6 0-2.2-1.9-2.9-1.9-2.9-2.4 3.9-3.5 1.5-3.5 1.5 1.5-1.2.7-3.1.7-3.1-4.6.9-1.3-2.6-1.3-2.6.5 2.2 3.2 1.2 3.2 1.2-.8-3.3 3.7-2.8 3.7-2.8-1 1.7.8 2.7.8 2.7 1.8-1.5 6.6-1.4 6.6-1.4-1.4.7-2.2 2.8-2.2 2.8 3.9.1 6.2-.6 6.2-.6-1.8 2.5-4.2 3-4.2 3"/></g><path d="m32 39.9c-15.1 5.6-18.7 1.7-18.7-3.7 0-8.6 13.2-4.7 18.7-3.7 7.8 1.5 26.2 3.2 26.2-11 0-18.4-35.6-14.7-35.6-14.7v11c6.9-1.3 26.2-3.5 26.2 3.7 0 5.6-6.3 6.9-16.9 3.7-10.4-3.2-26.1-6.4-26.1 11.1 0 17.5 14.2 15.3 26.2 11 12.1-4.2 19.7-1.8 19.7 1.8 0 4.8-9.2 7.6-15 9 0 0-1.4-1.5-3.3-.6 0 0 .4.2.6.5 0 0-1.9 1-3.3 1 0 0 1.2 1.4 4 .6 0 0 .1.8-.2 1.3 0 0 1.8-.1 2.2-1.5 16.2-.4 21.6-3.6 21.6-11.2-.1-8.5-11.2-13.9-26.3-8.3" fill="#8cc63e"/><path d="m24.2 4.9c5.5 0 7.8 3.4 11.1 2.5 0 0-.9 2.7-4.2 2.2 0 0 2.2 2.5 6.2 1.8 0 0-2 4.1-6.2 2 0 0-.1 2.4 2.6 4.2 0 0-2.9 1.5-5.2-.1 0 0-.8.8.2 2.4 0 0-2.4-.3-3.3-1.9l-1.2-13.1" fill="#64892f"/><path d="m20.7 4.1c-5 0-8 2.7-8 4.6 0 .2 0 .5.1.7-.1.3-2.1-.7-3.4-.7-.7 0-1.4.2-2 .7-.5-1-1.5-1.6-2.6-1.6-1.5 0-2.8 1.2-2.8 2.7s1.3 2.8 2.8 2.8h13.1c1 0 1.9.8 1.9 1.8 0 1-.8 1.8-1.9 1.8h-14c-1 0-1.9.8-1.9 1.8 0 1 .8 1.8 1.9 1.8h16.9c4.7 0 8.4-3.7 8.4-8.3s-3.8-8.1-8.5-8.1" fill="#8cc63e"/><ellipse cx="15.7" cy="8.8" rx="1.9" ry="1.8" fill="#fff"/><ellipse cx="15.7" cy="8.8" rx=".9" ry=".9" fill="#3e4347"/><g fill="#64892f"><path d="m13.1 8.6c1.4.6 2.8-2.2 8.2-2 0 0-2.2-1.6-5.1-.7 0 0-.4-1 1.1-1.7 0 0-2.7-.3-3.4 2 0 0-.8-.2-1-1.2.1-.1-1.8 2.6.2 3.6"/><path d="m7.3 10.6c.7-.6 2.5-1.1 4.7.1 4.7 2.5 6-1.6 9 .1-2.8-.5-3.7 3.2-8.3 1.7-1.9-.6-2.9-1.7-4.3-.8-.9.6-1.7-.5-1.1-1.1"/></g><path d="m4.1 10.4c-.5-.3.6-1.9 1.1-1.6 1.4.6.3 2.3-1.1 1.6" fill="#3e4347"/><path d="m7.5 21c.9 2.2 2 2.3 2 2.3s-2.3.7-3.5-1c0 0 1.2 2.3 3 3.2 0 0-3.4 1.2-4.6-2.1 0 0-.3 1.8.6 2.8-6.9-3.6-.2-11.8 2.5-5.2" fill="#64892f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f40a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f40a.svg
index f698f06..d5dd7c6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f40a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f40a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#64892f"><path d="m28.685 60.58l3-4.208c0 0-1.508-1.01-2.378-1.134-.873-.129-2.558.405-2.558.405l1.932 4.937"/><path d="m34.34 60.07l1.761-5.02c0 0-1.705-.46-2.571-.296-.867.167-2.336 1.236-2.336 1.236l3.146 4.076"/><path d="m39.505 58.948l1.268-5.2c0 0-1.738-.25-2.584.018-.847.271-2.203 1.512-2.203 1.512l3.519 3.67"/><path d="m57.771 45.853l-2.046-4.879c0 0-1.468 1.075-1.956 1.894-.487.822-.802 2.754-.802 2.754l4.804.231"/><path d="m60.87 38.02l-3.341-3.877c0 0-1.08 1.549-1.306 2.501-.223.955.035 2.896.035 2.896l4.612-1.52"/><path d="m62 28.622l-4.171-2.682c0 0-.653 1.825-.635 2.809.023.985.752 2.771.752 2.771l4.054-2.898"/><path d="m60.702 19.759l-4.704-1.112c0 0-.12 1.962.168 2.892.293.93 1.477 2.377 1.477 2.377l3.059-4.157"/><path d="m57.827 12.391l-4.784-.534c0 0 .069 1.965.446 2.854.381.889 1.697 2.184 1.697 2.184l2.641-4.504"/><path d="m53.38 6.06l-4.521 1.833c0 0 .818 1.738 1.501 2.359.686.619 2.372 1.149 2.372 1.149l.648-5.341"/></g><path fill="#769e2a" d="m26.418 44.724c-2.045-9.278-13.203-2.711-12.991 4.719.127 4.438-13.541 7.06-.201 7.06 3.078 0 5.375.629 5.962-5.626.204-2.178 9.414 3.764 7.23-6.152"/><path fill="#83b533" d="m51.03 8.659c2.142.577 12.41 19.841 4.576 34.582-12.576 23.662-48.22 20.241-50.819-4.778-1.364-13.162 5.337-12.677 5.337-9.05-3.102-1.052-2.459 9.841 2.318 12.738 10.881 6.601 19.918-1.953 23.04-7.641 3.124-5.689.453-12.73.453-15.47 0-2.74 15.09-10.384 15.09-10.384"/><path fill="#ffd93b" d="m14.15 45.16c15.06 10.757 27.563-3.185 31.887-12.455 3.574-7.667 1.667-16.84.898-22.313-4.472 2.467-11.197 6.48-11.197 8.311 0 2.74 2.671 9.782-.453 15.47-3.124 5.688-16.365 14.528-25.311 5.274.925 2.099 2.639 4.614 4.176 5.713"/><g fill="#8cc63e"><path d="m53.5 48.22c-1.589-7.079-3.752-12.05-6.297-10.631s.598 10.09-2.916 15.768c-5.694 9.207 1.853 2.547 5.352 4.482 13.233 7.322 5.94-.35 3.861-9.619"/><path d="m54.04 49.32c-2.159-4.789-4.419-7.884-6.02-6.19-1.597 1.692 1.92 13.714 4.683 14.237 10.45 1.988 4.16-1.777 1.333-8.05"/></g><g fill="#d3b226"><path d="m36.792 27.07c1.783-.783 7.364-1.718 11.05-.65"/><path d="m36.02 32.531c1.892-.339 5.642.166 9.04 2.087"/><path d="m31.559 38.454c1.912.125 4.935 1.041 7.883 3.737"/><path d="m25.871 41.98c1.777.802 3.339 2.272 5.367 5.882"/><path d="m18.01 43.41c0 0 1.026.371 1.466 4.607"/></g><path fill="#769e2a" d="m34.695 37.559c0 1.353-.474 2.686-2.033 2.686s-2.823-1.098-2.823-2.452 2.756-3.845 4.315-3.845.541 2.257.541 3.611"/><path fill="#8cc63e" d="m33.88 49.06c-2.168-10.184-13.998-2.977-13.773 5.177.134 4.87-14.355 7.747-.213 7.747 3.264 0 5.698.69 6.321-6.175.216-2.388 9.98 4.132 7.665-6.749"/><g fill="#64892f"><path d="m2 34.618l3.638 2.468c0 0 .612-1.596.612-2.468s-.612-2.466-.612-2.466l-3.638 2.466"/><path d="m2.824 41.06l4.03 1.512c0 0 .285-1.707.114-2.557-.17-.852-1.079-2.256-1.079-2.256l-3.066 3.301"/><path d="m4.947 47.3l4.229.481c0 0-.058-1.735-.391-2.522-.333-.789-1.495-1.936-1.495-1.936l-2.343 3.977"/><path d="m8.117 53.642l4.773-.654c0 0-.451-1.898-.993-2.674-.543-.775-2.081-1.715-2.081-1.715l-1.699 5.04"/><path d="m13.904 58.789l4.323-2.361c0 0-.979-1.632-1.716-2.165-.739-.535-2.467-.862-2.467-.862l-.14 5.388"/></g><path fill="#83b533" d="m50.584 11.04c1.937 1.755 6.124 6.298 3.687 10.245s-12.813 7.135-23.438 4.26-24.808-8.711-25.375-11.167 1.105-2.396 2.209-1.583 42.917-1.755 42.917-1.755"/><ellipse fill="#8cc63e" cx="38.596" cy="7.641" rx="5.393" ry="5.643"/><ellipse fill="#fff" cx="38.596" cy="7.641" rx="4.441" ry="4.646"/><ellipse fill="#3e4347" cx="38.595" cy="7.641" rx="3.109" ry="3.253"/><path fill="#e8f94b" d="m7.02 12.08v3.366l2.188-1.279.188 2.562 1.977-1.679.96 3.365 2.563-2.154 1.281 3.687 3.062-2.562 1.688 4.343 5.303-3.719.416 5.251 3.753-3.333 1.901 4.817 3.398-4.575 2.632 5.278 3.149-5.199 2.791 5.04 1.87-5.282 3.88 3.407-.468-4.77 4.468 1.114-3.389-4.711 2.609-.289-2.75-2.681-17.2 4.486-17.341-2.32z"/><path fill="#8cc63e" d="m9.785 8.59c0 2.508-.703 2.447-1.569 2.447-.867 0-1.569.061-1.569-2.447 0-1.352.702-2.447 1.569-2.447.866 0 1.569 1.095 1.569 2.447"/><ellipse fill="#4b662b" cx="7.667" cy="8.59" rx=".642" ry="1.734"/><g fill="#8cc63e"><path d="m4.469 10.724c-.288-6.29 16.16 5.976 36.927-2.309 5.04-2.01 9.838-.145 10.125 6.145.289 6.29-4.1 7.133-9.484 7.833-5.683.738-37.28-5.38-37.568-11.669"/><path d="m14.762 9.871c0 3.704-1.037 3.615-2.317 3.615-1.281 0-2.318.089-2.318-3.615 0-1.997 1.037-3.616 2.318-3.616 1.28 0 2.317 1.619 2.317 3.616"/></g><ellipse fill="#4b662b" cx="12.03" cy="9.871" rx="1.284" ry="2.561"/><ellipse fill="#8cc63e" cx="46.14" cy="7.641" rx="5.392" ry="5.643"/><ellipse fill="#fff" cx="46.14" cy="7.641" rx="4.441" ry="4.646"/><ellipse fill="#3e4347" cx="46.14" cy="7.641" rx="3.109" ry="3.253"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#64892f"><path d="m28.7 60.6l3-4.2c0 0-1.5-1-2.4-1.1-.9-.1-2.6.4-2.6.4l2 4.9"/><path d="m34.3 60.1l1.8-5c0 0-1.7-.5-2.6-.3-.9.2-2.3 1.2-2.3 1.2l3.1 4.1"/><path d="m39.5 58.9l1.3-5.2c0 0-1.7-.2-2.6 0-.9.3-2.2 1.6-2.2 1.6l3.5 3.6"/><path d="m57.8 45.9l-2-4.9c0 0-1.5 1.1-2 1.9-.5.8-.8 2.8-.8 2.8l4.8.2"/><path d="m60.9 38l-3.3-3.9c0 0-1.1 1.5-1.3 2.5-.2 1 0 2.9 0 2.9l4.6-1.5"/><path d="m62 28.6l-4.2-2.7c0 0-.7 1.8-.6 2.8 0 1 .8 2.8.8 2.8l4-2.9"/><path d="m60.7 19.8l-4.7-1.2c0 0-.1 2 .2 2.9.3.9 1.5 2.4 1.5 2.4l3-4.1"/><path d="m57.8 12.4l-4.8-.5c0 0 .1 2 .4 2.9.4.9 1.7 2.2 1.7 2.2l2.7-4.6"/><path d="m53.4 6.1l-4.5 1.8c0 0 .8 1.7 1.5 2.4.7.6 2.4 1.1 2.4 1.1l.6-5.3"/></g><path d="m26.4 44.7c-2-9.3-13.2-2.7-13 4.7.1 4.4-13.5 7.1-.2 7.1 3.1 0 5.4.6 6-5.6.2-2.2 9.4 3.7 7.2-6.2" fill="#769e2a"/><path d="m51 8.7c2.1.6 12.4 19.8 4.6 34.6-12.6 23.6-48.2 20.2-50.8-4.8-1.4-13.2 5.3-12.7 5.3-9-3.1-1.1-2.5 9.8 2.3 12.7 10.9 6.6 19.9-2 23-7.6 3.1-5.7.5-12.7.5-15.5s15.1-10.4 15.1-10.4" fill="#83b533"/><path d="m14.1 45.2c15.1 10.7 27.6-3.2 31.9-12.5 3.6-7.7 1.7-16.8.9-22.3-4.5 2.5-11.2 6.5-11.2 8.3 0 2.7 2.7 9.8-.5 15.5s-16.3 14.5-25.2 5.2c.9 2.1 2.6 4.7 4.1 5.8" fill="#ffd93b"/><g fill="#8cc63e"><path d="m53.5 48.2c-1.6-7.1-3.8-12-6.3-10.6s.6 10.1-2.9 15.8c-5.7 9.2 1.9 2.5 5.4 4.5 13.2 7.3 5.9-.4 3.8-9.7"/><path d="m54 49.3c-2.2-4.8-4.4-7.9-6-6.2-1.6 1.7 1.9 13.7 4.7 14.2 10.5 2.1 4.2-1.7 1.3-8"/></g><g fill="#d3b226"><path d="m36.8 27.1c1.8-.8 7.4-1.7 11-.6"/><path d="m36 32.5c1.9-.3 5.6.2 9 2.1"/><path d="m31.6 38.5c1.9.1 4.9 1 7.9 3.7"/><path d="m25.9 42c1.8.8 3.3 2.3 5.4 5.9"/><path d="m18 43.4c0 0 1 .4 1.5 4.6"/></g><path d="m34.7 37.6c0 1.4-.5 2.7-2 2.7s-2.8-1.1-2.8-2.5 2.8-3.8 4.3-3.8.5 2.2.5 3.6" fill="#769e2a"/><path d="m33.9 49.1c-2.2-10.2-14-3-13.8 5.2.1 4.9-14.4 7.7-.2 7.7 3.3 0 5.7.7 6.3-6.2.2-2.4 10 4.1 7.7-6.7" fill="#8cc63e"/><g fill="#64892f"><path d="m2 34.6l3.6 2.5c0 0 .6-1.6.6-2.5s-.6-2.5-.6-2.5l-3.6 2.5"/><path d="m2.8 41.1l4 1.5c0 0 .3-1.7.1-2.6-.2-.9-1.1-2.3-1.1-2.3l-3 3.4"/><path d="m4.9 47.3l4.2.5c0 0-.1-1.7-.4-2.5-.3-.8-1.5-1.9-1.5-1.9l-2.3 3.9"/><path d="m8.1 53.6l4.8-.7c0 0-.5-1.9-1-2.7-.5-.8-2.1-1.7-2.1-1.7l-1.7 5.1"/><path d="m13.9 58.8l4.3-2.4c0 0-1-1.6-1.7-2.2-.7-.5-2.5-.9-2.5-.9l-.1 5.5"/></g><path d="M50.6,11c1.9,1.8,6.1,6.3,3.7,10.2s-12.8,7.1-23.4,4.3S6,16.8,5.5,14.4s1.1-2.4,2.2-1.6S50.6,11,50.6,11z" fill="#83b533"/><ellipse cx="38.6" cy="7.6" rx="5.4" ry="5.6" fill="#8cc63e"/><ellipse cx="38.6" cy="7.6" rx="4.4" ry="4.6" fill="#fff"/><ellipse cx="38.6" cy="7.6" rx="3.1" ry="3.3" fill="#3e4347"/><path fill="#e8f94b" d="m7 12.1v3.3l2.2-1.2.2 2.5 2-1.7.9 3.4 2.6-2.1 1.3 3.6 3-2.5 1.7 4.3 5.3-3.7.4 5.3 3.8-3.4 1.9 4.8 3.4-4.5 2.6 5.2 3.2-5.2 2.8 5.1 1.8-5.3 3.9 3.4-.4-4.8 4.4 1.2-3.4-4.8 2.6-.2-2.7-2.7-17.2 4.5-17.4-2.4z"/><path d="m9.8 8.6c0 2.5-.7 2.4-1.6 2.4-.9 0-1.6.1-1.6-2.4 0-1.4.7-2.4 1.6-2.4.9-.1 1.6 1 1.6 2.4" fill="#8cc63e"/><ellipse cx="7.7" cy="8.6" rx=".6" ry="1.7" fill="#4b662b"/><g fill="#8cc63e"><path d="m4.5 10.7c-.3-6.3 16.2 6 36.9-2.3 5-2 9.8-.1 10.1 6.1.3 6.3-4.1 7.1-9.5 7.8-5.6.8-37.2-5.3-37.5-11.6"/><path d="m14.8 9.9c0 3.7-1 3.6-2.3 3.6-1.3 0-2.3.1-2.3-3.6 0-2 1-3.6 2.3-3.6 1.2 0 2.3 1.6 2.3 3.6"/></g><ellipse cx="12" cy="9.9" rx="1.3" ry="2.6" fill="#4b662b"/><ellipse cx="46.1" cy="7.6" rx="5.4" ry="5.6" fill="#8cc63e"/><ellipse cx="46.1" cy="7.6" rx="4.4" ry="4.6" fill="#fff"/><ellipse cx="46.1" cy="7.6" rx="3.1" ry="3.3" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f40b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f40b.svg
index 7f10793..31bb739 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f40b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f40b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#0dccd1"><path d="m35.33 45.732c.56 3.739-.474 8.726-2.604 9.195-2.129.467-4.549-3.767-5.11-7.504-.562-3.737.946-5.566 3.075-6.04 2.13-.466 4.075.608 4.639 4.345"/><path d="m54.05 11.327c-3.759 0-6.81-4.319-7.271-2.252-.514 2.307 3.52 6.746 6.05 6.746 0 0-8.615 6.19-46.699 6.19-3.503 0-3.938 4.361-3.938 4.361 11 10.457 27.713 30.736 44.45 18.07 7.926-5.997 9.698-24.865 9.8-27.706 4.629-1.641 5.554-4.25 5.554-7.628 0-3.43-2.299 2.223-7.945 2.223"/></g><path fill="#dae5ef" d="m2.19 26.372c0 0-.429 3.326 0 5.984 1.264 7.873 7.487 18.427 24.88 18.427 10.796 0 12.992-1.449 17.797-4.872.679-.484 1.264-.977 1.776-1.473-15.16 4.04-26.608-7.421-26.608-16.577.001-1.57-11.872-2.095-17.845-1.489"/><g fill="#fff"><path d="m45.13 45.49c-3.209 1.443-6.794 2.134-10.358 1.919-3.563-.205-7.083-1.289-10.174-3.113-3.09-1.82-5.766-4.385-7.626-7.485-1.868-3.091-2.866-6.739-2.736-10.393l1.873.097c-.266 3.293.48 6.663 2.089 9.618 1.6 2.962 4.02 5.511 6.899 7.383 2.882 1.876 6.239 3.083 9.712 3.435 3.474.36 7.05-.158 10.321-1.461"/><path d="m39.03 49.35c-3.557.32-7.179.235-10.712-.478-3.527-.699-6.963-2.049-9.952-4.114-2.99-2.055-5.499-4.837-7.181-8.07-1.683-3.233-2.555-6.913-2.377-10.604l1.872.127c-.313 3.337.33 6.778 1.77 9.872 1.44 3.098 3.689 5.842 6.472 7.937 2.778 2.105 6.06 3.571 9.5 4.41 3.444.85 7.04 1.093 10.608.925"/><path d="m28.7 50.77c-3.183-.358-6.354-1.013-9.379-2.136-3.02-1.114-5.897-2.733-8.304-4.93-2.415-2.182-4.313-4.941-5.52-7.972-1.223-3.02-1.779-6.318-1.792-9.535h1.875c-.139 3.091.229 6.147 1.237 9.06.994 2.899 2.647 5.588 4.854 7.787 2.196 2.211 4.908 3.926 7.828 5.165 2.92 1.25 6.04 2.054 9.201 2.565"/><ellipse cx="29.28" cy="26.955" rx="2.209" ry="2.348"/></g><path fill="#3e4347" d="m30.825 26.955c0 .905-.692 1.645-1.546 1.645-.854 0-1.546-.739-1.546-1.645 0-.91.691-1.644 1.546-1.644.854.001 1.546.734 1.546 1.644"/><path fill="#0dccd1" d="m26.611 28.6c.145-.011 4.105 2.773 5.403-.554.708-1.81-5.403.554-5.403.554"/><g fill="#3e4347"><path d="m29.341 28.547c.272.057.541.079.814.115.271.035.562.093.821.253.506.368.642.971.67 1.501-.101-.254-.2-.506-.321-.738-.122-.23-.268-.445-.479-.573-.2-.146-.461-.2-.725-.27-.266-.066-.538-.151-.78-.288"/><path d="m2.19 26.372c2.405-.434 4.849-.669 7.304-.719 2.456-.059 4.929.127 7.358.606 2.426.484 4.79 1.358 6.94 2.52 1.081.549 2.126 1.189 3.267 1.37 1.149.223 2.324-.281 3.367-.884-.918.765-2.092 1.414-3.416 1.333-1.305-.115-2.423-.718-3.534-1.182-2.204-.998-4.452-1.801-6.813-2.253-2.349-.488-4.759-.695-7.176-.804-2.421-.097-4.852-.043-7.297.013"/></g><path fill="#0dccd1" d="m46.998 44.2c.718 4.782-.604 11.16-3.327 11.759-2.726.599-5.819-4.813-6.536-9.596-.719-4.778 1.21-7.118 3.933-7.717 2.724-.596 5.211.777 5.93 5.554"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#0dccd1"><path d="m35.3 45.7c.6 3.7-.5 8.7-2.6 9.2-2.1.5-4.5-3.8-5.1-7.5-.6-3.7.9-5.6 3.1-6 2.1-.5 4.1.6 4.6 4.3"/><path d="m54.1 11.3c-3.8 0-6.8-4.3-7.3-2.3-.5 2.3 3.5 6.7 6 6.7 0 0-8.6 6.2-46.7 6.2-3.5 0-3.9 4.4-3.9 4.4 11 10.5 27.7 30.7 44.5 18.1 7.9-6 9.7-24.9 9.8-27.7 4.6-1.6 5.6-4.2 5.6-7.6-.1-3.4-2.4 2.2-8 2.2"/></g><path d="m2.2 26.4c0 0-.4 3.3 0 6 1.3 7.9 7.5 18.4 24.9 18.4 10.8 0 13-1.4 17.8-4.9.7-.5 1.3-1 1.8-1.5-15.2 4.1-26.7-7.4-26.7-16.5 0-1.6-11.8-2.1-17.8-1.5" fill="#dae5ef"/><g fill="#fff"><path d="m45.1 45.5c-3.2 1.4-6.8 2.1-10.4 1.9-3.6-.2-7.1-1.3-10.2-3.1-3.1-1.8-5.8-4.4-7.6-7.5-1.9-3.1-2.9-6.7-2.7-10.4l1.9.1c-.3 3.3.5 6.7 2.1 9.6 1.6 3 4 5.5 6.9 7.4 2.9 1.9 6.2 3.1 9.7 3.4 3.5.4 7.1-.1 10.3-1.4"/><path d="m39 49.3c-3.6.3-7.2.2-10.7-.5-3.5-.7-7-2-10-4.1-3-2.1-5.5-4.8-7.2-8.1-1.7-3.2-2.6-6.9-2.4-10.6l1.9.1c-.3 3.3.3 6.8 1.8 9.9 1.4 3.1 3.7 5.8 6.5 7.9 2.8 2.1 6.1 3.6 9.5 4.4 3.5 1 7.1 1.2 10.6 1"/><path d="m28.7 50.8c-3.2-.4-6.4-1-9.4-2.1-3-1.1-5.9-2.7-8.3-4.9-2.4-2.2-4.3-4.9-5.5-8-1.2-3-1.8-6.3-1.8-9.5h1.9c-.1 3.1.2 6.1 1.2 9.1 1 2.9 2.6 5.6 4.9 7.8 2.2 2.2 4.9 3.9 7.8 5.2 2.9 1.1 6 1.9 9.2 2.4"/><ellipse cx="29.3" cy="27" rx="2.2" ry="2.3"/></g><path d="m30.8 27c0 .9-.7 1.6-1.5 1.6s-1.5-.7-1.5-1.6c0-.9.7-1.6 1.5-1.6.8-.1 1.5.6 1.5 1.6" fill="#3e4347"/><path d="m26.6 28.6c.1 0 4.1 2.8 5.4-.6.7-1.8-5.4.6-5.4.6" fill="#0dccd1"/><g fill="#3e4347"><path d="m29.3 28.5c.3.1.5.1.8.1.3 0 .6.1.8.3.5.4.6 1 .7 1.5-.1-.3-.2-.5-.3-.7-.1-.2-.3-.4-.5-.6-.2-.1-.5-.2-.7-.3-.2 0-.5-.1-.8-.3"/><path d="m2.2 26.4c2.4-.4 4.8-.7 7.3-.7 2.5-.1 4.9.1 7.4.6 2.4.5 4.8 1.4 6.9 2.5 1.1.5 2.1 1.2 3.3 1.4 1.1.2 2.3-.3 3.4-.9-.9.8-2.1 1.4-3.4 1.3-1.3-.1-2.4-.7-3.5-1.2-2.2-1-4.5-1.8-6.8-2.3-2.3-.5-4.8-.7-7.2-.8-2.5 0-5 0-7.4.1"/></g><path d="m47 44.2c.7 4.8-.6 11.2-3.3 11.8-2.7.6-5.8-4.8-6.5-9.6-.7-4.8 1.2-7.1 3.9-7.7 2.7-.7 5.2.7 5.9 5.5" fill="#0dccd1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f40c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f40c.svg
index 74dde28..b4204fa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f40c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f40c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94d82a" d="m29.574 42.778c0 0-4.74-20.839-13.06-20.839-15.11 0-15.535 27.785-5.342 36.959 3.145 2.83 16.13 2.773 43.523 0 2.878-.292 1.788-3.117-2.324-4.988-2.63-1.195-15.737-3.56-22.801-11.132"/><g fill="#769e2a"><ellipse cx="27.789" cy="39.834" rx="3.935" ry="6.68"/><ellipse cx="31.452" cy="53.38" rx="2.415" ry="2.672"/><ellipse cx="22.492" cy="48.49" rx="1.788" ry="3.072"/><ellipse cx="20.19" cy="36.37" rx="1.432" ry="2.058"/></g><path fill="#3e4347" d="m9.627 26.13c-.016 1.248.388 2.252 1.063 2.866.33.313.715.534 1.12.67.204.064.41.114.622.134.032.003.294.03.357.027.099.004.232.005.345-.001.946-.03 1.826-.299 2.531-.913.729-.605 1.218-1.615 1.635-2.783.415 1.154.377 2.585-.429 3.793-.798 1.215-2.296 1.888-3.683 1.901-.18.004-.34 0-.534-.015-.229-.019-.26-.019-.518-.061-.367-.069-.73-.176-1.066-.342-.673-.325-1.251-.837-1.627-1.463-.786-1.251-.635-2.874.184-3.813"/><path fill="#e08828" d="m58.931 42.25c3.355-4.316 3.871-11.234 1.979-15.412-2.8-6.181-8.259-7.114-8.259-7.114-7.399-11.903-27.846-11.858-34 2.678 5.283 3.103 8.257 11.835 10.04 16.528 1.595 6.294 4.701 12.04 9.819 13.489 2.179.618 2.631-1.72 2.631-1.72 1.42 1.95 4.255 3.42 6.932 2.672 9.566-2.671 10.856-11.12 10.856-11.12"/><g fill="#94d82a"><path d="m14.494 24.17l-2.583.94-2.523-6.906 2.584-.936z"/><path d="m20.314 26.842l-2.491-1.156 3.117-6.656 2.493 1.15z"/><path d="m19 12.742c0 4.674-3.803 8.467-8.501 8.467-4.696 0-8.499-3.793-8.499-8.467 0-4.675 3.803-8.465 8.499-8.465 4.698 0 8.501 3.79 8.501 8.465"/></g><path fill="#fcfcfa" d="m15.395 13.03c0 3.669-2.887 6.639-6.443 6.639-3.555 0-6.437-2.97-6.437-6.639 0-3.667 2.882-6.638 6.437-6.638 3.555 0 6.443 2.971 6.443 6.638"/><path fill="#3e4347" d="m14.635 13.03c0 2.523-1.982 4.566-4.429 4.566-2.439 0-4.427-2.042-4.427-4.566 0-2.52 1.988-4.562 4.427-4.562 2.447 0 4.429 2.042 4.429 4.562"/><g fill="#93603b"><path d="m41.14 50.704c-1.938-2.869-3.303-6.165-3.993-9.626-.702-3.46-.7-7.095.104-10.592.841-3.46 2.493-6.883 5.315-9.264 1.388-1.187 3.099-2.039 4.899-2.327 1.803-.278 3.641.039 5.181.832-1.69-.374-3.409-.375-4.964.125-1.558.475-2.93 1.39-4.066 2.524-1.127 1.148-2.067 2.49-2.778 3.956-.731 1.453-1.28 3.01-1.642 4.613-.774 3.2-.871 6.565-.514 9.891.376 3.334 1.26 6.624 2.458 9.868"/><path d="m58.931 42.25c-.735.871-1.617 1.631-2.617 2.237-.996.602-2.144 1.039-3.383 1.116-1.236.072-2.519-.295-3.569-.974-1.062-.692-1.882-1.579-2.583-2.609-1.4-2.05-1.877-4.652-1.578-7.083.328-2.437 1.361-4.776 3.078-6.612.87-.899 1.929-1.671 3.165-2.125 1.228-.455 2.638-.561 3.92-.188 1.354.367 2.502 1.35 3.126 2.528.637 1.177.862 2.489.754 3.758-.115 1.261-.527 2.551-1.473 3.547-.939.989-2.506 1.479-3.844.839-1.256-.668-1.916-2.085-1.597-3.415.179-.663.626-1.225 1.239-1.471.302-.13.672-.174.978-.05.304.122.522.348.663.598-.987-.9-1.998.274-2.109 1.088-.131.913.516 1.913 1.304 2.221.382.157.824.12 1.256-.018.42-.139.781-.398 1.075-.743.594-.694.879-1.704.902-2.688.018-.989-.204-1.993-.682-2.796-.472-.807-1.218-1.371-2.068-1.574-1.837-.475-3.801.373-5.165 1.869-2.794 2.947-3.716 7.882-1.603 11.479 1.041 1.787 2.705 3.343 4.808 3.418 2.099.116 4.235-.973 6-2.352"/></g><path fill="#94d82a" d="m34.28 12.742c0 5.38-4.377 9.743-9.783 9.743-5.404 0-9.781-4.363-9.781-9.743 0-5.381 4.377-9.742 9.781-9.742 5.406 0 9.783 4.361 9.783 9.742"/><ellipse fill="#fcfcfa" cx="22.719" cy="13.08" rx="7.412" ry="7.641"/><path fill="#3e4347" d="m29.26 13.08c0 2.902-2.281 5.254-5.097 5.254-2.808 0-5.095-2.352-5.095-5.254 0-2.901 2.287-5.251 5.095-5.251 2.816 0 5.097 2.35 5.097 5.251"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.6 42.8c0 0-4.7-20.8-13.1-20.8-15.1 0-15.5 27.8-5.3 37 3.1 2.8 16.1 2.8 43.5 0 2.9-.3 1.8-3.1-2.3-5-2.7-1.3-15.8-3.7-22.8-11.2" fill="#94d82a"/><g fill="#769e2a"><ellipse cx="27.8" cy="39.8" rx="3.9" ry="6.7"/><ellipse cx="31.5" cy="53.4" rx="2.4" ry="2.7"/><ellipse cx="22.5" cy="48.5" rx="1.8" ry="3.1"/><ellipse cx="20.2" cy="36.4" rx="1.4" ry="2.1"/></g><path d="m9.6 26.1c0 1.2.4 2.3 1.1 2.9.3.3.7.5 1.1.7.2.1.4.1.6.1 0 0 .3 0 .4 0 .1 0 .2 0 .3 0 .9 0 1.8-.3 2.5-.9.7-.6 1.2-1.6 1.6-2.8.4 1.2.4 2.6-.4 3.8-.8 1.2-2.3 1.9-3.7 1.9-.2 0-.3 0-.5 0-.2 0-.3 0-.5-.1-.4-.1-.7-.2-1.1-.3-.7-.3-1.3-.8-1.6-1.5-.7-1.2-.6-2.8.2-3.8" fill="#3e4347"/><path d="m58.9 42.3c3.4-4.3 3.9-11.2 2-15.4-2.8-6.2-8.3-7.1-8.3-7.1-7.4-11.9-27.8-11.9-34 2.7 5.3 3.1 8.3 11.8 10 16.5 1.6 6.3 4.7 12 9.8 13.5 2.2.6 2.6-1.7 2.6-1.7 1.4 2 4.3 3.4 6.9 2.7 9.7-2.8 11-11.2 11-11.2" fill="#e08828"/><g fill="#94d82a"><path d="m14.5 24.2l-2.6.9-2.5-6.9 2.6-.9z"/><path d="m20.3 26.8l-2.5-1.1 3.1-6.7 2.5 1.2z"/><path d="m19 12.7c0 4.7-3.8 8.5-8.5 8.5-4.7 0-8.5-3.8-8.5-8.5 0-4.7 3.8-8.5 8.5-8.5 4.7.1 8.5 3.9 8.5 8.5"/></g><path d="m15.4 13c0 3.7-2.9 6.6-6.4 6.6-3.6 0-6.4-3-6.4-6.6 0-3.7 2.9-6.6 6.4-6.6 3.5 0 6.4 3 6.4 6.6" fill="#fcfcfa"/><path d="m14.6 13c0 2.5-2 4.6-4.4 4.6-2.4 0-4.4-2-4.4-4.6 0-2.5 2-4.6 4.4-4.6 2.5.1 4.4 2.1 4.4 4.6" fill="#3e4347"/><g fill="#93603b"><path d="m41.1 50.7c-1.9-2.9-3.3-6.2-4-9.6-.7-3.5-.7-7.1.1-10.6.8-3.5 2.5-6.9 5.3-9.3 1.4-1.2 3.1-2 4.9-2.3 1.8-.3 3.6 0 5.2.8-1.7-.4-3.4-.4-5 .1-1.6.5-2.9 1.4-4.1 2.5-1.1 1.1-2.1 2.5-2.8 4-.7 1.5-1.3 3-1.6 4.6-.8 3.2-.9 6.6-.5 9.9.5 3.4 1.3 6.7 2.5 9.9"/><path d="m58.9 42.3c-.7.9-1.6 1.6-2.6 2.2-1 .6-2.1 1-3.4 1.1-1.2.1-2.5-.3-3.6-1-1.1-.7-1.9-1.6-2.6-2.6-1.4-2-1.9-4.7-1.6-7.1.3-2.4 1.4-4.8 3.1-6.6.9-.9 1.9-1.7 3.2-2.1 1.2-.5 2.6-.6 3.9-.2 1.4.4 2.5 1.4 3.1 2.5.6 1.2.9 2.5.8 3.8-.1 1.3-.5 2.6-1.5 3.5-.9 1-2.5 1.5-3.8.8-1.3-.7-1.9-2.1-1.6-3.4.2-.7.6-1.2 1.2-1.5.3-.1.7-.2 1 0 .3.1.5.3.7.6-1-.9-2 .3-2.1 1.1-.1.9.5 1.9 1.3 2.2.4.2.8.1 1.3 0 .4-.1.8-.4 1.1-.7.6-.7.9-1.7.9-2.7 0-1-.2-2-.7-2.8-.5-.8-1.2-1.4-2.1-1.6-1.8-.5-3.8.4-5.2 1.9-2.8 2.9-3.7 7.9-1.6 11.5 1 1.8 2.7 3.3 4.8 3.4 2.1.1 4.3-1 6-2.3"/></g><path d="m34.3 12.7c0 5.4-4.4 9.7-9.8 9.7-5.4 0-9.8-4.4-9.8-9.7 0-5.4 4.4-9.7 9.8-9.7 5.4 0 9.8 4.4 9.8 9.7" fill="#94d82a"/><ellipse cx="22.7" cy="13.1" rx="7.4" ry="7.6" fill="#fcfcfa"/><path d="m29.3 13.1c0 2.9-2.3 5.3-5.1 5.3-2.8 0-5.1-2.4-5.1-5.3 0-2.9 2.3-5.3 5.1-5.3 2.8 0 5.1 2.4 5.1 5.3" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f40d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f40d.svg
index b0baedb..6ad56b8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f40d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f40d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8cc63e" d="m61.714 24.334c-.11-1.033-.276-1.917-.45-2.634-.352-1.433-.713-2.287-1.023-2.943-.315-.652-.6-1.11-.866-1.498-.532-.762-1-1.253-1.45-1.682-.896-.834-1.721-1.375-2.534-1.853-1.623-.93-3.185-1.535-4.742-2.059-3.11-1.019-6.178-1.639-9.243-2.146-6.123-.997-12.23-1.404-18.299-1.857-1.51-.12-3.02-.309-4.513-.563-.354-.062 2.01-.92 3.227-1.26 6.02-1.626 12.1-2.605 18.17-3.234-6.081-.582-12.167-.813-18.271-.387-7.716.54-9.544 2.813-9.193 6.34.088.886.293 1.112.408 1.387.106.216.196.358.274.468.157.225.276.347.397.472.898.84 1.634 1.158 2.418 1.562.771.371 1.534.679 2.297.967 1.527.576 3.047 1.042 4.568 1.508 6.06 1.785 12.08 3.518 18.04 5.812 2.978 1.15 5.945 2.418 8.826 4.02 1.06.591-19.564 14.11-25.587 14.848l.701 19.499c6.078-2.119 12.199-4.429 18.335-7.888 1.533-.869 3.07-1.823 4.604-2.896 1.513-1.063 3.01-2.179 4.532-3.435 1.518-1.271 3.035-2.618 4.623-4.441.802-.951 1.604-1.932 2.544-3.609.473-.914.999-1.832 1.618-4.096.295-1.127.637-2.829.705-5.089.035-1.103-.012-2.276-.123-3.31"/><g fill="#ffd93b"><path d="m50.52 27.598c-2.901-2.291-6.093-3.982-9.351-5.462-3.264-1.471-6.604-2.702-9.961-3.864-3.359-1.165-6.742-2.243-10.112-3.439-1.68-.618-3.371-1.187-5.02-2.02-.818-.428-1.635-.915-2.36-1.634-.357-.363-.692-.798-.921-1.338-.234-.538-.301-1.142-.303-1.754.033.612-.187 2.539 3.698 4.222 1.63.705 3.367 1.037 5.067 1.472 3.408.83 6.835 1.545 10.262 2.353 3.426.807 6.855 1.685 10.271 2.832 3.407 1.159 6.833 2.553 10.12 4.702l-1.387 3.931"/><path d="m17.962 6.416c1.866-.708 3.654-1.135 5.49-1.585 1.827-.428 3.658-.793 5.495-1.103 3.671-.615 7.357-1.01 11.05-1.122-3.677.408-7.333 1.09-10.956 1.993-1.811.452-3.615.96-5.407 1.529-1.775.576-3.607 1.18-5.277 1.957l-.391-1.669"/></g><g fill="#8cc63e"><path d="m46.02 33.583l-2.342-4.04c4.637-2.868 5.395-5.05 5.656-6.89.252-1.765-.27-3.34-1.469-4.438l2.35-5.177c2.723 2.491 3.983 6.542 3.372 10.836-.701 4.932-3.672 8.743-7.567 9.711"/><path d="m22.92 9.449c-5.342-.498-6.216-1.114-6.233-4.403l1.239-.014c.009 1.769.012 2.189 5.075 2.66l-.081 1.757"/></g><path fill="#ffd93b" d="m31.714 51.5l2.374-.563c.774-.195 1.548-.402 2.318-.623 1.545-.441 3.08-.938 4.605-1.495 3.048-1.119 6.06-2.469 8.938-4.211 2.871-1.753 5.659-3.875 7.968-6.827 1.146-1.478 2.156-3.184 2.867-5.16.716-1.967 1.094-4.222 1.049-6.523.302 2.257.191 4.675-.331 6.941-.518 2.271-1.399 4.371-2.451 6.24-2.125 3.748-4.84 6.68-7.653 9.219-7.955 7.99-19.14 8.27-19.14 8.27l-.541-5.268"/><path fill="#e8f94b" d="m2.148 50.43c.307-1.227 1.53-2.313 2.634-2.035 1.104.276 1.67 1.811 1.363 3.038-.308 1.227-1.336 1.538-2.439 1.261-1.103-.277-1.865-1.038-1.558-2.264"/><path fill="#252728" d="m2.893 50.69c.19-.759.947-1.431 1.63-1.259.683.17 1.033 1.12.843 1.879-.189.76-.826.951-1.509.781-.683-.171-1.154-.642-.964-1.401"/><path fill="#4b662b" d="m2 50.42c.328-1.314 1.639-2.478 2.82-2.182 1.182.297 1.789 1.941 1.461 3.256-1.874-1.603-4.281-1.074-4.281-1.074"/><path fill="#8cc63e" d="m3.141 54.55c-.449-9.823 13.03-15.08 21.478-15.462 8.447-.387 15.316-.227 15.765 9.597.449 9.823-6.384 11.14-14.768 12.233-8.845 1.153-22.03 3.455-22.475-6.368"/><g fill="#4b662b"><path d="m7.998 55.17c-.285.933-.861 1.743-1.232 1.63-.37-.113-.395-1.109-.109-2.042.285-.932.744-1.354 1.114-1.239.37.113.512.718.227 1.651"/><path d="m4.81 54.26c-.021.631-.241 1.234-.484 1.227-.243-.01-.417-.628-.395-1.258.023-.63.233-.971.476-.962s.426.364.403.993"/></g><path fill="#e8f94b" d="m12.934 52.3c0-2.721 2.086-5.627 4.66-5.627 2.571 0 4.658 2.906 4.658 5.627 0 2.72-2.087 3.908-4.658 3.908-2.574 0-4.66-1.188-4.66-3.908"/><path fill="#252728" d="m14.71 52.46c0-1.684 1.291-3.48 2.883-3.48s2.883 1.797 2.883 3.48-1.291 2.418-2.883 2.418-2.883-.734-2.883-2.418"/><g fill="#4b662b"><path d="m12.602 52.36c0-2.914 2.234-6.03 4.992-6.03 2.754 0 4.99 3.112 4.99 6.03-4.991-2.365-9.982 0-9.982 0"/><path d="m39.31 32.29c5.287.823 12.227 2.759 14.97 6.3 0 0-1.965-7.213-8.249-10.724-.224.182-.461.367-.717.555-1.718 1.178-3.805 2.526-6 3.869"/><path d="m44 44.677c0 0-1.398-6.974-7.06-10.96-2.404 1.408-4.836 2.734-7 3.775 5.157 1.21 11.641 3.573 14.07 7.185"/><path d="m47.39 26.601c4.173-.645 10.219-.174 12.851.997 0 0-3.807-4.903-10.875-5.405-.001 0-.229 2.549-1.976 4.408"/><path d="m59.35 17.255c-.532-.762-1-1.253-1.45-1.682-.36-.335-.707-.615-1.049-.87-5.407 1.554-7.07 5.762-7.07 5.762 2.281-1.867 6.541-1.454 10.463-1.661-.008-.016-.016-.036-.023-.052-.317-.651-.601-1.108-.867-1.497"/><path d="m22.271 12.13c.565-1.597 2.61-3.123 4.496-4.19-1.123-.085-2.245-.168-3.364-.251-1.25 2.112-1.132 4.441-1.132 4.441"/><path d="m16.375 10.209c1.105-1.302 3.852-2.158 6.081-2.611-.774-.074-1.547-.163-2.318-.271-.006.002-.011.005-.017.007-.685-.124-1.152-.266-1.479-.441-1.718 1.46-2.267 3.316-2.267 3.316"/><path d="m47.686 10.817c-2.257 3.965-2.517 7.931-2.517 7.931 1.222-2.464 4.116-4.647 7.33-6.395-.627-.251-1.252-.481-1.874-.691-.983-.322-1.963-.593-2.939-.845"/><path d="m33.404 14.617c.733-2.073 3.446-4.049 5.878-5.396-1.416-.202-2.83-.384-4.244-.538-1.799 2.744-1.634 5.934-1.634 5.934"/><path d="m40.32 9.367c-1.352 3.543-1.348 6.627-1.348 6.627.885-2.14 2.966-4.163 5.444-5.92-1.013-.202-2.024-.391-3.035-.558-.354-.057-.707-.095-1.061-.149"/><path d="m27.936 13.784c.71-2 3.263-3.915 5.626-5.256-1.395-.139-2.788-.267-4.18-.381-1.6 2.671-1.446 5.637-1.446 5.637"/><path d="m17.57 6.552c0 0-1.878-1.229-4.345-1.409-.53.74-.746 1.608-.754 2.584 1.761-.848 3.658-1.45 5.099-1.175"/><path d="m18.879 5.61c0 0-.155-1.361-.91-2.914-.677.141-1.274.306-1.809.493 1.191.686 2.206 1.498 2.719 2.421"/><path d="m30.478 2.876c0 0 .018-.332-.015-.851-.133-.003-.267-.003-.4-.006.174.283.317.569.415.857"/><path d="m25.73 3.878c0 0 .048-.766-.119-1.843-.342.009-.685.02-1.026.033.524.584.936 1.193 1.145 1.81"/><path d="m34.912 2.583c0 0 .008-.143.006-.373-.062-.004-.123-.007-.185-.01.06.127.135.254.179.383"/><path d="m22.05 2.196c-.118.008-.236.012-.354.02-.338.023-.65.055-.966.084.71.706 1.271 1.455 1.528 2.214 0 .001.061-.995-.208-2.318"/><path d="m32.912 2.583c0 0 .012-.179.006-.478-.071-.003-.142-.005-.212-.008.081.161.15.323.206.486"/><path d="m28.23 3.345c0 0 .03-.541-.058-1.345-.231 0-.463.003-.695.005.336.438.6.887.753 1.34"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.7 24.3c-.1-1-.3-1.9-.5-2.6-.4-1.4-.7-2.3-1-2.9-.3-.7-.6-1.1-.9-1.5-.5-.8-1-1.3-1.5-1.7-.9-.8-1.7-1.4-2.5-1.9-1.6-.9-3.2-1.5-4.7-2.1-3.1-1-6.2-1.6-9.2-2.1-6.1-1-12.2-1.4-18.3-1.9-1.5-.1-3-.3-4.5-.6-.4-.1 2-.9 3.2-1.3 6-1.6 12.1-2.6 18.2-3.2-6.1-.5-12.2-.7-18.3-.3-7.7.6-9.5 2.8-9.2 6.4.1.9.3 1.1.4 1.4.1.2.2.4.3.5.2.2.3.3.4.5.9.8 1.6 1.2 2.4 1.6.8.4 1.5.7 2.3 1 1.5.6 3 1 4.6 1.5 6.1 1.8 12.1 3.5 18 5.8 3 1.1 5.9 2.4 8.8 4 1.1.6-19.6 14.1-25.6 14.8l.7 19.5c6.1-2.1 12.2-4.4 18.3-7.9 1.5-.9 3.1-1.8 4.6-2.9 1.5-1.1 3-2.2 4.5-3.4 1.5-1.3 3-2.6 4.6-4.4.8-1 1.6-1.9 2.5-3.6.5-.9 1-1.8 1.6-4.1.3-1.1.6-2.8.7-5.1.3-1.3.2-2.4.1-3.5" fill="#8cc63e"/><g fill="#ffd93b"><path d="m50.5 27.6c-2.9-2.3-6.1-4-9.4-5.5-3.3-1.5-6.6-2.7-10-3.9-3.4-1.2-6.7-2.2-10.1-3.4-1.7-.6-3.4-1.2-5-2-.8-.4-1.6-.9-2.4-1.6-.4-.4-.7-.8-.9-1.3-.2-.5-.3-1.1-.3-1.8 0 .6-.2 2.5 3.7 4.2 1.6.7 3.4 1 5.1 1.5 3.4.8 6.8 1.5 10.3 2.4 3.4.8 6.9 1.7 10.3 2.8 3.4 1.2 6.8 2.6 10.1 4.7l-1.4 3.9"/><path d="m18 6.4c1.9-.7 3.7-1.1 5.5-1.6 1.8-.4 3.7-.8 5.5-1.1 3.7-.6 7.4-1 11-1.1-3.7.4-7.3 1.1-11 2-1.8.5-3.6 1-5.4 1.5-1.8.6-3.6 1.2-5.3 2l-.3-1.7"/></g><g fill="#8cc63e"><path d="m46 33.6l-2.3-4c4.6-2.9 5.4-5 5.7-6.9.3-1.8-.3-3.3-1.5-4.4l2.3-5.2c2.7 2.5 4 6.5 3.4 10.8-.7 4.9-3.7 8.7-7.6 9.7"/><path d="m22.9 9.4c-5.3-.4-6.2-1.1-6.2-4.4h1.2c0 1.8 0 2.2 5.1 2.7l-.1 1.7"/></g><path d="m31.7 51.5l2.4-.6c.8-.2 1.5-.4 2.3-.6 1.5-.4 3.1-.9 4.6-1.5 3-1.1 6.1-2.5 8.9-4.2 2.9-1.8 5.7-3.9 8-6.8 1.1-1.5 2.2-3.2 2.9-5.2.7-2 1.1-4.2 1-6.5.3 2.3.2 4.7-.3 6.9-.5 2.3-1.4 4.4-2.5 6.2-2.1 3.7-4.8 6.7-7.7 9.2-8 8-19.1 8.3-19.1 8.3l-.5-5.2" fill="#ffd93b"/><path d="m2.1 50.4c.3-1.2 1.5-2.3 2.6-2 1.1.3 1.7 1.8 1.4 3-.3 1.2-1.3 1.5-2.4 1.3-1.1-.3-1.9-1-1.6-2.3" fill="#e8f94b"/><path d="m2.9 50.7c.2-.8.9-1.4 1.6-1.3.7.2 1 1.1.8 1.9-.2.8-.8 1-1.5.8-.6-.2-1.1-.7-.9-1.4" fill="#252728"/><path d="m2 50.4c.3-1.3 1.6-2.5 2.8-2.2 1.2.3 1.8 1.9 1.5 3.3-1.9-1.6-4.3-1.1-4.3-1.1" fill="#4b662b"/><path d="m3.1 54.5c-.4-9.8 13-15.1 21.5-15.5 8.4-.4 15.3-.2 15.8 9.6.4 9.8-6.4 11.1-14.8 12.2-8.8 1.3-22 3.6-22.5-6.3" fill="#8cc63e"/><g fill="#4b662b"><path d="m8 55.2c-.3.9-.9 1.7-1.2 1.6-.4-.1-.4-1.1-.1-2 .3-.9.7-1.4 1.1-1.2.3 0 .5.6.2 1.6"/><path d="m4.8 54.3c0 .6-.2 1.2-.5 1.2-.2 0-.4-.6-.4-1.3 0-.6.2-1 .5-1s.4.4.4 1.1"/></g><path d="m12.9 52.3c0-2.7 2.1-5.6 4.7-5.6 2.6 0 4.7 2.9 4.7 5.6 0 2.7-2.1 3.9-4.7 3.9-2.6 0-4.7-1.2-4.7-3.9" fill="#e8f94b"/><path d="m14.7 52.5c0-1.7 1.3-3.5 2.9-3.5s2.9 1.8 2.9 3.5-1.3 2.4-2.9 2.4-2.9-.8-2.9-2.4" fill="#252728"/><g fill="#4b662b"><path d="m12.6 52.4c0-2.9 2.2-6 5-6 2.8 0 5 3.1 5 6-5-2.4-10 0-10 0"/><path d="m39.3 32.3c5.3.8 12.2 2.8 15 6.3 0 0-2-7.2-8.2-10.7-.2.2-.5.4-.7.6-1.8 1.1-3.9 2.4-6.1 3.8"/><path d="m44 44.7c0 0-1.4-7-7.1-11-2.4 1.4-4.8 2.7-7 3.8 5.2 1.2 11.7 3.6 14.1 7.2"/><path d="m47.4 26.6c4.2-.6 10.2-.2 12.9 1 0 0-3.8-4.9-10.9-5.4 0 0-.3 2.5-2 4.4"/><path d="m59.4 17.3c-.5-.8-1-1.3-1.5-1.7-.4-.3-.7-.6-1-.9-5.4 1.6-7.1 5.8-7.1 5.8 2.3-1.9 6.5-1.5 10.5-1.7 0 0 0 0 0-.1-.4-.6-.7-1.1-.9-1.4"/><path d="m22.3 12.1c.6-1.6 2.6-3.1 4.5-4.2-1.1-.1-2.2-.2-3.4-.3-1.2 2.2-1.1 4.5-1.1 4.5"/><path d="m16.4 10.2c1.1-1.3 3.9-2.2 6.1-2.6-.8-.1-1.5-.2-2.3-.3-.7-.1-1.2-.3-1.5-.4-1.8 1.5-2.3 3.3-2.3 3.3"/><path d="m47.7 10.8c-2.3 4-2.5 7.9-2.5 7.9 1.2-2.5 4.1-4.6 7.3-6.4-.6-.3-1.3-.5-1.9-.7-1-.3-1.9-.5-2.9-.8"/><path d="m33.4 14.6c.7-2.1 3.4-4 5.9-5.4-1.4-.2-2.8-.4-4.3-.5-1.8 2.7-1.6 5.9-1.6 5.9"/><path d="m40.3 9.4c-1.3 3.5-1.3 6.6-1.3 6.6.9-2.1 3-4.2 5.4-5.9-1-.2-2-.4-3-.6-.4 0-.7-.1-1.1-.1"/><path d="m27.9 13.8c.7-2 3.3-3.9 5.6-5.3-1.4-.1-2.8-.3-4.2-.4-1.5 2.7-1.4 5.7-1.4 5.7"/><path d="m17.6 6.6c0 0-1.9-1.2-4.3-1.4-.5.7-.7 1.6-.8 2.6 1.7-.9 3.6-1.5 5.1-1.2"/><path d="m18.9 5.6c0 0-.2-1.4-.9-2.9-.7.1-1.3.3-1.8.5 1.2.7 2.2 1.5 2.7 2.4"/><path d="m30.5 2.9c0 0 0-.3 0-.9-.1 0-.3 0-.4 0 .1.3.3.6.4.9"/><path d="m25.7 3.9c0 0 0-.8-.1-1.8-.3 0-.7 0-1 0 .5.6.9 1.2 1.1 1.8"/><path d="m34.9 2.6c0 0 0-.1 0-.4-.1 0-.1 0-.2 0 .1.1.2.3.2.4"/><path d="m22.1 2.2c-.1 0-.2 0-.4 0-.3 0-.6.1-1 .1.7.7 1.3 1.5 1.6 2.2 0 0 0-1-.2-2.3"/><path d="m32.9 2.6c0 0 0-.2 0-.5-.1 0-.1 0-.2 0 .1.2.2.3.2.5"/><path d="m28.2 3.3c0 0 0-.5-.1-1.3-.2 0-.5 0-.7 0 .4.4.7.9.8 1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f40e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f40e.svg
index c96f68a..b7ba4df 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f40e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f40e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#af7751" d="m45.754 31.66v20.787c0 2.521 1.354 2.736 3.02 2.736 1.673 0 3.03-.213 3.03-2.736v-20.787h-6.05"/><path fill="#3e4347" d="m52.53 57.06h-7.5l.727-4.566c0 0 .791-.916 3.02-.916s3.02.916 3.02.916l.727 4.566"/><path fill="#89664c" d="m36.14 36.743v16.626c0 2.02 1.354 2.189 3.02 2.189 1.673 0 3.03-.17 3.03-2.189v-16.626h-6.05"/><path fill="#3e4347" d="m42.909 57.06h-7.5l.727-3.652c0 0 .792-.732 3.02-.732 2.232 0 3.02.732 3.02.732l.726 3.652"/><path fill="#e5be7a" d="m52.625 25.745c-4.74-2.187-7.551.146-8.28 1.755-.729 1.607 1.91 5.259 6.982 6.543 6.977 1.765 10.675 4.03 10.675 4.03s-1.82-8.838-9.377-12.326"/><g fill="#af7751"><path d="m52.29 36.514c0 16.346-16.294 3.54-20.17 7.356-8.399 8.276-17.792-.053-17.792-.053v-19.63h24.291c7.55 0 13.668 5.509 13.668 12.327"/><path d="m17.583 36.874c-1.277-1.255-3.908-.69-5.883 1.26l-5.358 5.319c-1.972 1.95-2.142 4.195-.864 5.449 1.273 1.252 3.51 1.035 5.481-.914l5.359-5.319c1.974-1.953 2.539-4.546 1.265-5.795"/><path d="m5.478 48.902l5.975 6.137c1.948 1.949 3.134 1.094 4.393-.166 1.261-1.262 2.117-2.445.168-4.395l-8.301-8.301-2.235 6.725"/></g><path fill="#3e4347" d="m20.12 53.49l-5.656 5.658-2.978-4.074c0 0-.109-1.305 1.573-2.986 1.684-1.684 2.987-1.574 2.987-1.574l4.074 2.976"/><path fill="#af7751" d="m22.38 34.26v22.699c0 2.756 1.443 2.988 3.223 2.988 1.783 0 3.227-.232 3.227-2.988v-22.699h-6.45"/><path fill="#3e4347" d="m29.604 62h-8l.775-4.986c0 0 .844-1 3.225-1 2.379 0 3.225 1 3.225 1l.775 4.986"/><g fill="#e5be7a"><path d="m6.873 14.767c-.473-5.136 2.74-5.764 4.489-5.398 1.749.365 3.188 4.617 1.255 9.414-2.662 6.597-7.73 7.696-7.73 7.696s2.605-4.978 1.986-11.712"/><path d="m8.521 20.414c-.473-5.135 2.74-5.764 4.489-5.397s3.189 4.618 1.255 9.415c-2.662 6.597-9.66 8.438-9.66 8.438s4.536-5.722 3.916-12.456"/><path d="m9.687 27.609c-.473-5.135 2.74-5.764 4.49-5.397 1.749.366 3.188 4.618 1.253 9.415-2.66 6.597-11.48 9.174-11.48 9.174s6.355-6.457 5.737-13.192"/><path d="m37.06 14.931c-.998-5.063-4.566-5.928-6.315-5.562-1.748.365-3.188 4.617-1.254 9.414 2.661 6.597 2.981 10.875 2.981 10.875s6.177-6.654 4.588-14.727"/></g><path fill="#c1875d" d="m40.12 2.01c.117 3.71-.452 6.756-1.688 8.58-1.866 1.145-5.082 1.732-9.07 1.645-.116-3.71.451-6.758 1.688-8.581 1.867-1.145 5.082-1.732 9.07-1.644"/><path fill="#3e4347" d="m37.749 4.263c.066 2.072-.252 3.774-.942 4.795-1.044.641-2.843.968-5.069.92-.065-2.076.252-3.778.944-4.797 1.046-.642 2.84-.968 5.067-.918"/><path fill="#c1875d" d="m12.866 12.227c-3.939.109-7.175-.426-9.11-1.591-1.218-1.759-1.839-4.786-1.745-8.538 3.938-.109 7.171.423 9.106 1.589 1.219 1.762 1.839 4.787 1.749 8.54"/><path fill="#3e4347" d="m10.494 10.02c-2.218.061-4.04-.239-5.132-.896-.686-.992-1.035-2.697-.984-4.812 2.221-.064 4.04.238 5.132.895.686.993 1.04 2.698.984 4.813"/><path fill="#c1875d" d="m33.23 21.48c0 2.653-3.03 11.858-3.03 15.72 0 0-3.773.371-9.15.371-5.271 0-9.02-.177-9.02-.177 0-3.958-3.156-13.252-3.156-15.914 0-3.531-.389-7.287 3.365-12.166.881-1.146 1.128-2.634 8.811-2.634 7.62 0 8.175 1.203 8.972 2.179 3.675 4.492 3.205 7.95 3.205 12.621"/><path fill="#ffe2b3" d="m30.434 40.22c0 3.531-2.198 5.145-9.378 5.145-7.181 0-9.378-1.613-9.378-5.145 0-3.53.198-7.639 9.378-7.639 9.18 0 9.378 4.109 9.378 7.639"/><g fill="#3e4347"><ellipse cx="31.14" cy="19.882" rx="2.5" ry="3"/><ellipse cx="10.97" cy="19.882" rx="2.5" ry="3"/></g><g fill="#ffe2b3"><path d="m27.337 31.875c-1.571-1-3.795.809-4.968 4.04-1.174 3.238-.847 6.675.729 7.676 1.573 1 3.799-.805 4.968-4.04 1.169-3.235.844-6.673-.729-7.677"/><path d="m14.775 31.875c-1.573 1.01-1.9 4.442-.728 7.678 1.171 3.234 3.395 5.04 4.968 4.04 1.572-1 1.899-4.438.726-7.674-1.167-3.235-3.392-5.05-4.966-4.04"/></g><path fill="#fff" d="m17.818 14.444c0-6.089 1.449-7.318 3.238-7.318s3.237 1.229 3.237 7.318c0 6.091-3.237 14.736-3.237 14.736s-3.238-8.645-3.238-14.736"/><g fill="#3e4347"><path d="m26.771 33.778c-1.151-.733-2.779.593-3.64 2.961-.86 2.373-.619 4.891.534 5.624 1.153.736 2.783-.589 3.641-2.96.856-2.371.618-4.888-.535-5.625"/><path d="m15.344 33.778c-1.153.737-1.394 3.254-.534 5.625.857 2.371 2.486 3.696 3.64 2.96 1.151-.733 1.391-3.251.532-5.622-.858-2.37-2.487-3.696-3.638-2.963"/></g><path fill="#e5be7a" d="m31.14 7.46c-5.347-7.476-26.481-5.05-26.481 12.255 0 0 5.05-6.386 13.538-8.244 0 0-3.378 3.81-7.363 6.83 0 0 8.284-2.067 13.402-6.763 0 0 .598 3.376-6.252 5.613 0 0 19.724-.504 13.156-9.691"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m11 8.5c0 0 2.2-2.1 5.4-2l-.6 1.5c0 0 2.5-.7 5.7.5l-1.4 1c0 0 3.4.9 4.4 2.2l-1.9.2c0 0 3 1.2 4.1 3l-1.4.3c0 0 3 1.9 3.5 4.1l-1.8-.3c0 0 1.7 2.5 1.9 4.6l-1-.5.2 1.4-17.1-16"/><path d="m60.8 29.2c2.6-4-7.9-6.1-12.1-.4v1.3c0 0 8.6-2.5 6.6 2.4-2.2 5.5 6.6 10 6.6 10s-4.7-7.6-1.1-13.3"/><path d="m9.2 9.2c0 0-.7-1.5-.3-4.2 0 0 2 1.4 3.4 4.5l-3.1-.3"/></g><path d="m12.7 56.1l.6-4.4c0 0-.9 0-1.8-.2-.3.8-.6 2.2-.9 3.9 1.1.6 2.1.7 2.1.7" fill="#574137"/><path d="m27.2 45c-.7.5-1.5 1.2-2.1 1.8l-3.5-1c0 0 3.2-4.9 10.7-8.1 0 0-8.5-3.1-11.4 1 0 0-3.8 5.7-5.1 7-1.3 1.4.1 2.6.7 2.8.6.2 9.7 1 9.7 1s1.2-1 2.8-1.7c-.6-1.4-1.3-2.3-1.8-2.8" fill="#89664c"/><path d="m28.5 44c0 0-.6.4-1.4 1 .5.5 1.2 1.4 1.9 2.8.7-.3 1.6-.5 2.3-.4.1 0-1.1-2.5-2.8-3.4" fill="#574137"/><path d="m38.3 33.4l-.8 5.8c0 0 7.9 1.3 11.2.1 0 0 2.9 7.2 8.4 11.7.4-.7.9-1.9 1.2-3.6-2.1-1.3-5.4-4.4-6.9-10.8 0-.1-6.4.7-13.1-3.2" fill="#89664c"/><path d="m57.1 51c.7.6 1.5 1.2 2.3 1.7 0 0 .8-2 .9-4.3 0 0-.8-.2-1.9-1-.4 1.7-.9 2.9-1.3 3.6" fill="#574137"/><g fill="#b7805c"><path d="m44.8 25c-8 1-15.7 3-17.1-1.4-5.8-17.9-16.7-15.1-16.7-15.1-1.9-2.3-3.8-2.6-3.8-2.6-.2 2.2.7 4.1.7 4.1-.6 2.9-5.4 12.1-5.9 13.3-.5 1.3 2.9 3.4 2.9 3.4.7-.1.9-1.3 2.4-1.2.4 0-.7 1.4-.3 1.6.8.3 1.7-2 3.4-2.9 6.1-3.3 4.1-5.5 4.1-5.5 2.5 1.7 1.1 5.5 0 7.5-2.5 4.7.1 11.5.1 11.5-2.5 1.9-7.9 3-7.9 3-1.9 9.8 1.5 13.4 3.9 14.7.3-1.7.6-3.1.9-3.9-.9-.2-1.9-.8-2.3-1.8-.7-2.1.7-6.8.7-6.8 6.5.8 10.5-1.2 15.2-2.4 4.6-1.1 9.1-.3 13.6.4 17 3 14.8-17 6.1-15.9"/><path d="m37.7 40.2c4.4 10 14 4.5 14 4.5-2.2 6.1-.6 10.3.8 12.5 1.2-.6 1.9-2 2.3-2.8-3.1-3.5-.9-8.1-.3-9.9.7-2-.3-3.3-.3-3.3-2.7-.6-4.2 1.2-7.4-2.9-3.2-4-9.1 1.9-9.1 1.9"/></g><g fill="#574137"><path d="m53.9 59c1.5-.1 2-3.5 2-3.5-.4-.3-.8-.7-1.1-1-.4.8-1.1 2.2-2.3 2.8.7 1.1 1.4 1.7 1.4 1.7"/><path d="m34.1 35.1c0 0 .3 2.2-1.2 5.2 0 0 1.2 0 2.2.1 0 0 .9-1 1.2-5.1l-2.2-.2"/></g><path d="m28.2 24.5c0 0 2.4 2.6.9 4.8-2 3 4.1 8.6 11 5.5 4.9-2.2.2-7.7 2.4-9.7-.1 0-8.3 1.8-14.3-.6" fill="#8cc63e"/><g fill="#333"><path d="m5.4 22.3l-.5-.5c5.7-5.3 7-7.5 7-7.5l.6.4c0 0-1.3 2.3-7.1 7.6"/><path d="m13.2 15.3c-.8-1.2-1.8-2.3-2.8-3.3-1-1-2.1-1.6-2.6-2 0 0-.1.5-.2.8.4.4 1.4.9 2.3 1.8 1.4 1.4 3.2 3.9 4.8 7.5.2-.1.5-.6.6-.6-.7-1.5-1.2-2.9-2.1-4.2"/><path d="m6.8 25.6c.2-.1.7 0 .7 0-1.2-3.2-3.1-5.3-3.8-5.7l-.3.7c.2.1.5.3.9.8.6.6 1.8 2.3 2.5 4.2"/></g><path d="m7.3 15.9c0 0 1 .4 1.7-.4.7-.8.3-2.9.3-2.9s-1.4 1-2 3.3" fill="#574137"/><path d="m2.9 23c0 0 1.3-.2.9 1.4-.5 1.5-1-.9-.9-1.4" fill="#89664c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f40f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f40f.svg
index 26a1e19..2cf3e57 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f40f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f40f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8d9ba3" d="m49.881 36.847c-.563-.896-1.5-1.482-2.564-1.482-1.723 0-3.117 1.537-3.117 3.439v12.338c0 1.898 1.395 3.436 3.117 3.436 1.725 0 3.119-1.537 3.119-3.436v-4.477-7.861c0-.727-.206-1.403-.555-1.957"/><path fill="#3e4347" d="m47.32 54.58c1.725 0 3.119-1.537 3.119-3.436h-6.236c0 1.899 1.395 3.436 3.117 3.436"/><path fill="#8d9ba3" d="m41.68 38.446c-.752-1.301-2-2.152-3.42-2.152-2.297 0-4.156 2.232-4.156 4.994v15.719c0 2.758 1.859 4.992 4.156 4.992 2.299 0 4.158-2.234 4.158-4.992v-6.498-9.221c0-1.055-.273-2.035-.738-2.842"/><path fill="#3e4347" d="m38.26 61.999c2.299 0 4.158-2.234 4.158-4.992h-8.314c0 2.758 1.859 4.992 4.156 4.992"/><path fill="#8d9ba3" d="m28.896 38.446c-.75-1.301-2-2.152-3.42-2.152-2.295 0-4.156 2.232-4.156 4.994v15.719c0 2.758 1.861 4.992 4.156 4.992 2.299 0 4.158-2.234 4.158-4.992v-6.498-9.221c.001-1.055-.271-2.035-.738-2.842"/><path fill="#3e4347" d="m25.477 61.999c2.299 0 4.158-2.234 4.158-4.992h-8.315c0 2.758 1.862 4.992 4.157 4.992"/><path fill="#8d9ba3" d="m58.11 33.62c-.658-1.186-1.752-1.961-2.994-1.961-2.01 0-3.635 2.036-3.635 4.549v16.307c0 2.51 1.627 4.545 3.635 4.545 2.01 0 3.641-2.035 3.641-4.545v-5.916-10.391c0-.961-.24-1.854-.647-2.588"/><path fill="#3e4347" d="m55.12 57.06c2.01 0 3.641-2.035 3.641-4.545h-7.275c-.001 2.509 1.626 4.545 3.634 4.545"/><g fill="#dae5ef"><ellipse cx="38.26" cy="34.636" rx="14.257" ry="13.92"/><ellipse cx="22.15" cy="33.487" rx="14.256" ry="13.92"/><ellipse cx="25.479" cy="21.444" rx="14.256" ry="13.92"/><ellipse cx="37.871" cy="21.444" rx="14.256" ry="13.92"/><ellipse cx="52.583" cy="29.23" rx="9.09" ry="8.875"/><ellipse cx="52.83" cy="39.3" rx="9.09" ry="8.875"/><ellipse cx="49.41" cy="40.681" rx="9.09" ry="8.875"/><ellipse cx="22.629" cy="43.41" rx="9.09" ry="8.875"/><ellipse cx="41.11" cy="43.41" rx="9.09" ry="8.875"/><ellipse cx="31.87" cy="47.18" rx="9.09" ry="8.875"/></g><path fill="#8d9ba3" d="m51.38 33.755c.119-3.709-.463-6.756-1.729-8.58-1.912-1.145-5.207-1.732-9.287-1.645-.119 3.71.463 6.757 1.73 8.582 1.913 1.145 5.206 1.731 9.286 1.643"/><path fill="#3e4347" d="m48.953 31.499c.068-2.072-.258-3.773-.965-4.795-1.068-.64-2.912-.967-5.191-.919-.066 2.076.258 3.777.967 4.796 1.07.642 2.908.968 5.189.918"/><path fill="#8d9ba3" d="m23.467 23.535c-4.03-.109-7.348.426-9.33 1.591-1.248 1.759-1.883 4.787-1.787 8.539 4.03.109 7.344-.424 9.326-1.59 1.248-1.762 1.885-4.787 1.791-8.54"/><path fill="#3e4347" d="m21.04 25.746c-2.271-.061-4.137.239-5.256.895-.703.992-1.059 2.697-1.01 4.813 2.275.064 4.139-.238 5.256-.895.703-.994 1.067-2.699 1.01-4.813"/><path fill="#8d9ba3" d="m46.37 26c0 10.692-6.494 19.358-14.504 19.358s-14.502-8.666-14.502-19.358c0-6.195 1.16-14.432 14.502-14.432 13.344 0 14.504 8.237 14.504 14.432"/><ellipse fill="#fff" cx="24.01" cy="28.23" rx="4.908" ry="4.713"/><ellipse fill="#3e4347" cx="24.01" cy="28.23" rx="3.396" ry="3.263"/><ellipse fill="#fff" cx="39.73" cy="28.23" rx="4.91" ry="4.713"/><g fill="#3e4347"><ellipse cx="39.73" cy="28.23" rx="3.398" ry="3.263"/><path d="m24.563 37.3c3.512.605 3.719.605 5.371 4.03"/><path d="m39.18 37.3c-3.514.605-3.719.605-5.373 4.03"/></g><g fill="#89664c"><path d="m58.11 4.992c-1.24-1.278-2.674-2.173-4.234-2.643-1.549-.465-3.174-.443-4.662-.086-3.055.703-5.865 2.885-7.789 5.993-.984 1.569-1.725 3.358-2.205 5.256-.242.948-.445 1.923-.525 2.92-.16 2.02 3.809 2.578 4.434-1.378.213-1.345.779-2.595 1.42-3.69 1.285-2.255 3.24-3.884 5.373-4.478 1.098-.311 2.17-.361 3.205-.103 1.016.257 2.034.83 2.87 1.64 1.725 1.611 2.82 4.322 2.857 7.06.064 2.614-1.189 5.258-3.088 6.42-.941.585-2.045.854-3.02.652-.973-.189-1.918-.87-2.563-1.852-.658-.988-1.031-2.3-1-3.579.012-1.194.521-2.421 1.293-3.147.777-.744 1.875-1.029 2.689-.63.85.365 1.506 1.473 1.576 2.608 0 .019.004.038.004.057v.008c.021.727.496 1.294 1.064 1.268.568-.025 1.012-.635.992-1.361l-.002-.062c0-.01-.002-.018-.002-.026h.002c-.002-.012-.004-.021-.004-.033-.082-2.219-1.213-4.236-2.82-5.063-.82-.434-1.711-.523-2.537-.362-.414.081-.816.223-1.203.417-.191.098-.375.205-.586.35l-.232.167c-.119.091-.186.151-.281.23-1.387 1.216-2.307 3.229-2.414 5.419-.107 2.1.434 4.192 1.438 5.826 1.012 1.648 2.477 2.804 4.105 3.209 1.637.396 3.254.049 4.707-.765 1.459-.833 2.719-2.204 3.604-3.913.887-1.709 1.395-3.744 1.418-5.824.06-4.03-1.417-7.993-3.884-10.509"/><path d="m5.889 4.992c1.238-1.278 2.672-2.173 4.232-2.643 1.549-.465 3.174-.443 4.662-.086 3.055.703 5.865 2.885 7.789 5.993.984 1.569 1.725 3.358 2.205 5.256.242.948.445 1.923.525 2.92.16 2.02-3.809 2.578-4.434-1.378-.213-1.345-.779-2.595-1.42-3.69-1.285-2.255-3.24-3.884-5.373-4.478-1.098-.311-2.17-.361-3.205-.103-1.016.257-2.034.83-2.87 1.64-1.725 1.611-2.82 4.322-2.857 7.06-.064 2.614 1.189 5.258 3.088 6.42.941.585 2.045.854 3.02.652.973-.189 1.918-.87 2.563-1.852.658-.988 1.031-2.3 1-3.579-.012-1.194-.52-2.421-1.293-3.147-.777-.744-1.875-1.029-2.689-.63-.85.365-1.506 1.473-1.576 2.608 0 .019-.004.038-.004.057v.008c-.021.727-.496 1.294-1.064 1.268-.568-.025-1.012-.635-.992-1.361l.002-.062c0-.01.002-.018.002-.026h-.005c.002-.012.004-.021.004-.033.082-2.219 1.213-4.236 2.82-5.063.82-.434 1.711-.523 2.537-.362.414.081.816.223 1.203.417.191.098.375.205.586.35l.232.167c.119.091.186.151.281.23 1.389 1.216 2.309 3.229 2.414 5.419.107 2.1-.432 4.192-1.438 5.826-1.012 1.648-2.477 2.804-4.105 3.209-1.637.396-3.254.049-4.707-.765-1.459-.833-2.719-2.204-3.604-3.913-.885-1.71-1.393-3.745-1.416-5.825-.059-4.03 1.418-7.992 3.887-10.508"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 36.8c-.6-.9-1.5-1.5-2.6-1.5-1.7 0-3.1 1.5-3.1 3.4v12.3c0 1.9 1.4 3.4 3.1 3.4 1.7 0 3.1-1.5 3.1-3.4v-4.5-7.9c0-.5-.2-1.2-.5-1.8" fill="#8d9ba3"/><path d="m47.3 54.6c1.7 0 3.1-1.5 3.1-3.4h-6.2c0 1.8 1.4 3.4 3.1 3.4" fill="#3e4347"/><path d="m41.7 38.4c-.8-1.3-2-2.2-3.4-2.2-2.3 0-4.2 2.2-4.2 5v15.8c0 2.8 1.9 5 4.2 5 2.3 0 4.2-2.2 4.2-5v-6.5-9.2c-.1-1.1-.4-2-.8-2.9" fill="#8d9ba3"/><path d="m38.3 62c2.3 0 4.2-2.2 4.2-5h-8.3c-.1 2.8 1.8 5 4.1 5" fill="#3e4347"/><path d="m28.9 38.4c-.8-1.3-2-2.2-3.4-2.2-2.3 0-4.2 2.2-4.2 5v15.8c0 2.8 1.9 5 4.2 5 2.3 0 4.2-2.2 4.2-5v-6.5-9.2c-.1-1.1-.3-2-.8-2.9" fill="#8d9ba3"/><path d="m25.5 62c2.3 0 4.2-2.2 4.2-5h-8.3c-.1 2.8 1.8 5 4.1 5" fill="#3e4347"/><path d="m58.1 33.6c-.7-1.2-1.8-2-3-2-2 0-3.6 2-3.6 4.5v16.3c0 2.5 1.6 4.5 3.6 4.5 2 0 3.6-2 3.6-4.5v-5.9-10.3c.1-1-.2-1.8-.6-2.6" fill="#8d9ba3"/><path d="m55.1 57.1c2 0 3.6-2 3.6-4.5h-7.3c.1 2.4 1.7 4.5 3.7 4.5" fill="#3e4347"/><g fill="#dae5ef"><ellipse cx="38.3" cy="34.6" rx="14.3" ry="13.9"/><ellipse cx="22.1" cy="33.5" rx="14.3" ry="13.9"/><ellipse cx="25.5" cy="21.4" rx="14.3" ry="13.9"/><ellipse cx="37.9" cy="21.4" rx="14.3" ry="13.9"/><ellipse cx="52.6" cy="29.2" rx="9.1" ry="8.9"/><ellipse cx="52.8" cy="39.3" rx="9.1" ry="8.9"/><ellipse cx="49.4" cy="40.7" rx="9.1" ry="8.9"/><ellipse cx="22.6" cy="43.4" rx="9.1" ry="8.9"/><ellipse cx="41.1" cy="43.4" rx="9.1" ry="8.9"/><ellipse cx="31.9" cy="47.2" rx="9.1" ry="8.9"/></g><path d="m51.4 33.8c.1-3.7-.5-6.8-1.7-8.6-1.9-1.1-5.2-1.7-9.3-1.6-.1 3.7.5 6.8 1.7 8.6 1.9 1.1 5.2 1.6 9.3 1.6" fill="#8d9ba3"/><path d="m49 31.5c.1-2.1-.3-3.8-1-4.8-1.1-.6-2.9-1-5.2-.9-.1 2.1.3 3.8 1 4.8 1 .6 2.9.9 5.2.9" fill="#3e4347"/><path d="m23.5 23.5c-4-.1-7.3.4-9.3 1.6-1.2 1.8-1.9 4.8-1.8 8.5 4 .1 7.3-.4 9.3-1.6 1.2-1.7 1.9-4.7 1.8-8.5" fill="#8d9ba3"/><path d="m21 25.7c-2.3-.1-4.1.2-5.3.9-.7 1-1.1 2.7-1 4.8 2.3.1 4.1-.2 5.3-.9.7-.9 1.1-2.6 1-4.8" fill="#3e4347"/><path d="m46.4 26c0 10.7-6.5 19.4-14.5 19.4s-14.5-8.7-14.5-19.4c0-6.2 1.2-14.4 14.5-14.4 13.3 0 14.5 8.2 14.5 14.4" fill="#8d9ba3"/><ellipse cx="24" cy="28.2" rx="4.9" ry="4.7" fill="#fff"/><ellipse cx="24" cy="28.2" rx="3.4" ry="3.3" fill="#3e4347"/><ellipse cx="39.7" cy="28.2" rx="4.9" ry="4.7" fill="#fff"/><g fill="#3e4347"><ellipse cx="39.7" cy="28.2" rx="3.4" ry="3.3"/><path d="m24.6 37.3c3.5.6 3.7.6 5.4 4"/><path d="m39.2 37.3c-3.5.6-3.7.6-5.4 4"/></g><g fill="#89664c"><path d="m58.1 5c-1.2-1.3-2.7-2.2-4.2-2.6-1.5-.5-3.2-.4-4.7-.1-3.1.7-5.9 2.9-7.8 6-1 1.6-1.7 3.4-2.2 5.3-.2.9-.4 1.9-.5 2.9-.2 2 3.8 2.6 4.4-1.4.2-1.3.8-2.6 1.4-3.7 1.3-2.3 3.2-3.9 5.4-4.5 1.1-.3 2.2-.4 3.2-.1 1 .3 2 .8 2.9 1.6 1.7 1.6 2.8 4.3 2.9 7.1.1 2.6-1.2 5.3-3.1 6.4-.9.6-2 .9-3 .7-1-.2-1.9-.9-2.6-1.9-.7-1-1-2.3-1-3.6 0-1.2.5-2.4 1.3-3.1.8-.7 1.9-1 2.7-.6.8.4 1.5 1.5 1.6 2.6 0 0 0 0 0 .1 0 .7.5 1.3 1.1 1.3.6 0 1-.6 1-1.4v-.1c0 0 0 0 0 0-.1-2.2-1.2-4.2-2.8-5.1-.8-.4-1.7-.5-2.5-.4-.4.1-.8.2-1.2.4-.2.1-.4.2-.6.4l-.2.2c-.1.1-.2.2-.3.2-1.4 1.2-2.3 3.2-2.4 5.4-.1 2.1.4 4.2 1.4 5.8 1 1.6 2.5 2.8 4.1 3.2 1.6.4 3.3 0 4.7-.8 1.5-.8 2.7-2.2 3.6-3.9.9-1.7 1.4-3.7 1.4-5.8 0-4-1.5-8-4-10.5"/><path d="m5.9 5c1.2-1.3 2.7-2.2 4.2-2.6 1.5-.5 3.2-.4 4.7-.1 3.1.7 5.9 2.9 7.8 6 1 1.6 1.7 3.4 2.2 5.3.2.9.4 1.9.5 2.9.2 2-3.8 2.6-4.4-1.4-.2-1.3-.8-2.6-1.4-3.7-1.3-2.3-3.2-3.9-5.4-4.5-1.1-.3-2.2-.4-3.2-.1-1 .2-2.1.8-2.9 1.6-1.7 1.6-2.8 4.3-2.9 7.1-.1 2.6 1.2 5.3 3.1 6.4.9.6 2 .9 3 .7 1-.2 1.9-.9 2.6-1.9.7-1 1-2.3 1-3.6 0-1.2-.5-2.4-1.3-3.1-.8-.7-1.9-1-2.7-.6-.8.3-1.5 1.4-1.5 2.6 0 0 0 0 0 .1 0 .7-.5 1.3-1.1 1.3-.6 0-1-.6-1-1.4v-.1c0 0 0 0 0 0 .1-2.2 1.2-4.2 2.8-5.1.8-.4 1.7-.5 2.5-.4.4.1.8.2 1.2.4.2.1.4.2.6.4l.2.2c.1.1.2.2.3.2 1.4 1.2 2.3 3.2 2.4 5.4.1 2.1-.4 4.2-1.4 5.8-1 1.6-2.5 2.8-4.1 3.2-1.6.4-3.3 0-4.7-.8-1.5-.8-2.7-2.2-3.6-3.9-.9-1.7-1.4-3.7-1.4-5.8-.1-4 1.4-8 3.9-10.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f410.svg b/build/js/jsxc/lib/emojione/assets/svg/1f410.svg
index 377d2bc..445e63f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f410.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f410.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#896349" d="m43.658 36.18v16.752c0 2.033 1.173 2.205 2.618 2.205 1.45 0 2.622-.171 2.622-2.205v-16.752h-5.24"/><path fill="#3e4347" d="m49.53 56.651h-6.5l.629-3.68c0 0 .686-.738 2.62-.738 1.934 0 2.62.738 2.62.738l.631 3.68"/><path fill="#ffd092" d="m58.43 30.447c-2.932 3.02-6.591 2.266-8.07 1.366-1.481-.899-1.138-4.289 2.558-6.781 5.083-3.427 7.08-6.176 7.08-6.176s3.109 6.772-1.562 11.591"/><path fill="#a87654" d="m60.25 36.483c0 16.332-16.692 3.537-20.659 7.35-8.606 8.271-18.228-.053-18.228-.053v-19.613h24.885c7.734 0 14 5.505 14 12.316"/><path fill="#ffd092" d="m41.34 40.654c-8.605 8.27-18.228-.053-18.228-.053v-16.434h-1.75v19.613c0 0 9.534 8.71 18.14.439 3.588-3.449 18.25 6.982 20.316-3.822-4.656 4.336-15.399-2.703-18.478.257"/><path fill="#a87654" d="m17.11 34.26v22.699c0 2.756 1.443 2.988 3.223 2.988 1.783 0 3.227-.232 3.227-2.988v-22.699h-6.45"/><path fill="#3e4347" d="m24.334 61.998h-8l.775-4.986c0 0 .844-.999 3.225-.999 2.379 0 3.225.999 3.225.999l.775 4.986"/><path fill="#a87654" d="m32.961 34.26v22.699c0 2.756 1.443 2.988 3.223 2.988 1.785 0 3.227-.232 3.227-2.988v-22.699h-6.45"/><path fill="#3e4347" d="m40.19 61.998h-8l.775-4.986c0 0 .846-.999 3.225-.999 2.381 0 3.225.999 3.225.999l.775 4.986"/><g fill="#656f72"><path d="m30.14 12.849c.871 2.458 6.891 4.356 8.178 1.596 4.677-10.04 15.201-5.059 15.201-5.059-11.779-15.832-25.363-2.137-23.379 3.463"/><path d="m3 9.386c0 0 10.524-4.977 15.2 5.059 1.286 2.76 7.31.861 8.18-1.596 1.982-5.6-11.603-19.295-23.38-3.463"/></g><path fill="#ffd092" d="m31.455 50.41c1.949 2.491 5.783 1.713 5.783 1.713-2.02-2.52-2.02-6.05-2.02-6.05v-9.629h-13.825v11.03c0 3.568-2.118 4.711-2.118 4.711 4.01-.068 6.146-2.463 6.146-2.463-.474 3.277 5.03 4.868 5.03 4.868-.426-1.95.998-4.184.998-4.184"/><g fill="#a87654"><path d="m52.41 23.672c.135-4.062-.52-7.396-1.941-9.393-2.144-1.254-5.842-1.896-10.422-1.801-.135 4.062.518 7.398 1.939 9.395 2.149 1.252 5.843 1.895 10.424 1.799"/><path d="m16.585 12.483c-4.53-.119-8.252.467-10.476 1.742-1.398 1.926-2.114 5.24-2.01 9.348 4.527.12 8.246-.463 10.471-1.739 1.402-1.93 2.113-5.241 2.01-9.351"/></g><path fill="#c1875d" d="m44.539 23.94c0 11.705-7.29 21.19-16.28 21.19-8.992 0-16.278-9.488-16.278-21.19 0-12.621 1.303-13.609 16.278-13.609 14.978 0 16.28.988 16.28 13.609"/><path fill="#ffd092" d="m28.26 28.15c-2.198 0 .259-3.457-3.642-10.802-2.874-5.408-7.643-6.396-9.198-5.556 2.354-1.27 6.288-2.458 12.84-2.458 6.363 0 10.258 1.178 12.633 2.351-1.412-.697-6.379.184-8.994 5.663-3.479 7.294-1.577 10.802-3.639 10.802"/><ellipse fill="#fff" cx="19.435" cy="22.01" rx="5.51" ry="5.159"/><ellipse fill="#3e4347" cx="19.435" cy="22.01" rx="3.812" ry="3.572"/><ellipse fill="#fff" cx="37.08" cy="22.01" rx="5.513" ry="5.159"/><g fill="#3e4347"><ellipse cx="37.08" cy="22.01" rx="3.814" ry="3.572"/><path d="m20.06 33.03c3.941.662 4.174.663 6.03 4.418"/><path d="m36.46 33.03c-3.944.662-4.174.663-6.03 4.418"/><path d="m28.26 44.944c-2.351 0-4.492-.85-4.492-1.783 0-.104.032-.191.099-.264.084-.09.21-.143.353-.143.165 0 .325.068.59.18.586.246 1.677.707 3.451.707 1.771 0 2.861-.461 3.446-.707.265-.111.428-.18.592-.18.223 0 .449.141.449.406-.001.935-2.141 1.784-4.488 1.784"/></g><path fill="#a87654" d="m54.25 36.615v15.853c0 2.287 1.263 2.481 2.819 2.481 1.561 0 2.824-.193 2.824-2.481v-15.853h-5.643"/><path fill="#3e4347" d="m60.57 56.651h-7l.679-4.141c0 0 .739-.83 2.821-.83s2.822.83 2.822.83l.678 4.141"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m19.3 13.6c.5-6.7 8.5-7 8.5-7-10.2-3.6-12.5 6.6-11.9 7.4.8.9 3.3 1.2 3.4-.4" fill="#947151"/><g fill="#c2aca1"><path d="m56.6 26.6c-1.1-2.4 2-10.8 2-10.8s7.6 8.6.2 12.7c-.4.2-2-1.5-2.2-1.9"/><path d="m10.8 38.1c0 0-2.8-4.6 1.2-10.3l-5.7 2.6c-2.7 5.3 4.5 7.7 4.5 7.7"/></g><path d="m59.6 48.5c-1.5-4.1-1.1-5.8-1.1-5.8 3.8-6.9 1.2-16.7-2.6-17.3-13.6-2.4-31.2 1.6-31.2-3 0-9.5-8-15.4-14.3-9.6-4.5 4.2-.9 5.6-7.8 14.2-1.6 1.9.2 3.4 3.3 4 1 .2 1.3.1 3.8-1.2 2.4-1.3 5.8.3 6.7-4.2 0 0-.5 11.2 6.3 18.9 0 0 1.4 4-1.3 14.9h3.3l3-8.3c0 0-.6-5.9 1.3-5.3 5.9 2.1 20.5-1.5 20.5-1.5 1.4 2.8 5.9 5.5 5.9 5.5s-1.4 3.3-1.2 9.6h3.5c.2-2.4 1.9-10.9 1.9-10.9" fill="#f1e7dc"/><g fill="#947151"><path d="m20.7 62h3.2l.6-2.5h-3.3c-.2 1.5-.5 2.5-.5 2.5"/><path d="m54.1 59.5c-.2 1.5-.1 2.5-.1 2.5h3.4c0 0 0-1 .2-2.5h-3.5"/></g><ellipse cx="12.2" cy="18.9" rx="1.5" ry="1.5" fill="#3e4347"/><g fill="#c2aca1"><path d="m4.5 27.7c-.1.2-.6.5-.8.3-.2-.1-.1-.6.1-.9.1-.2.4-.3.6-.1.2.2.2.5.1.7"/><path d="m9.6 25.3c.3 1.2 0 2.5-.7 3.6-.3.5-.8 1-1.3 1.4-.5.4-1.1.6-1.7.8 1-.7 1.9-1.4 2.5-2.4.3-.5.5-1 .7-1.6.2-.6.4-1.2.5-1.8"/></g><path d="m19.7 16.4c6.2-.2 5.5-8.6 4.5-8.1-1.6.8-6.6 3.1-6.6 5.9 0 .5-.6 2.3 2.1 2.2" fill="#f1e7dc"/><path d="m19 13.6c.5-1.6 4.1-3.4 4.7-3.6.6-.3.6 4-3.4 5.7-.4.2-.8.2-1-.1-.2-.3.7-.9 1.3-1.2.7-.3-.1-.2-.6-.1-.5.2-.2-.2.2-.4.4-.3-.6 0-1 .4-.4.4-.5.4-.2-.7" fill="#c2aca1"/><path d="m17.1 12.7c-1.8-7.5 6.9-10.7 6.9-10.7-12.6-.4-11.5 11.7-10.5 12.3 1.2.7 4 .2 3.6-1.6" fill="#947151"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f411.svg b/build/js/jsxc/lib/emojione/assets/svg/1f411.svg
index 7c66656..19d8b9e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f411.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f411.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8d9ba3" d="m45.744 36.847c-.574-.896-1.527-1.482-2.611-1.482-1.754 0-3.174 1.537-3.174 3.439v12.338c0 1.898 1.42 3.436 3.174 3.436s3.176-1.537 3.176-3.436v-4.477-7.861c0-.727-.209-1.403-.565-1.957"/><path fill="#3e4347" d="m43.13 54.58c1.754 0 3.176-1.537 3.176-3.436h-6.35c0 1.899 1.42 3.436 3.174 3.436"/><path fill="#8d9ba3" d="m36.4 38.446c-.766-1.301-2.037-2.152-3.482-2.152-2.338 0-4.23 2.232-4.23 4.994v15.719c0 2.758 1.893 4.992 4.23 4.992 2.34 0 4.234-2.234 4.234-4.992v-6.498-9.221c-.001-1.055-.28-2.035-.752-2.842"/><path fill="#3e4347" d="m32.912 61.999c2.34 0 4.234-2.234 4.234-4.992h-8.465c.001 2.758 1.893 4.992 4.231 4.992"/><path fill="#8d9ba3" d="m23.381 38.446c-.764-1.301-2.037-2.152-3.482-2.152-2.336 0-4.23 2.232-4.23 4.994v15.719c0 2.758 1.895 4.992 4.23 4.992 2.342 0 4.234-2.234 4.234-4.992v-6.498-9.221c0-1.055-.278-2.035-.752-2.842"/><path fill="#3e4347" d="m19.898 61.999c2.342 0 4.234-2.234 4.234-4.992h-8.465c.001 2.758 1.896 4.992 4.231 4.992"/><path fill="#8d9ba3" d="m54.12 33.62c-.67-1.186-1.783-1.961-3.047-1.961-2.045 0-3.701 2.035-3.701 4.549v16.307c0 2.51 1.656 4.545 3.701 4.545 2.047 0 3.705-2.035 3.705-4.545v-5.916-10.391c0-.961-.244-1.854-.658-2.588"/><path fill="#3e4347" d="m51.07 57.06c2.047 0 3.705-2.035 3.705-4.545h-7.406c0 2.509 1.656 4.545 3.701 4.545"/><g fill="#dae5ef"><ellipse cx="32.916" cy="34.637" rx="14.514" ry="13.919"/><ellipse cx="16.513" cy="33.488" rx="14.513" ry="13.919"/><ellipse cx="50.49" cy="28.23" rx="9.254" ry="8.875"/><ellipse cx="52.746" cy="37.3" rx="9.254" ry="8.875"/><ellipse cx="46.26" cy="39.681" rx="9.254" ry="8.875"/><ellipse cx="17" cy="43.41" rx="9.254" ry="8.875"/><ellipse cx="35.813" cy="43.41" rx="9.254" ry="8.875"/><ellipse cx="26.408" cy="47.18" rx="9.254" ry="8.875"/></g><path fill="#f4a19a" d="m46.27 33.755c.123-3.709-.471-6.756-1.76-8.579-1.945-1.145-5.299-1.732-9.453-1.645-.121 3.71.471 6.757 1.76 8.582 1.948 1.144 5.299 1.73 9.453 1.642"/><path fill="#3e4347" d="m43.799 31.5c.07-2.072-.262-3.774-.982-4.795-1.088-.641-2.965-.968-5.285-.92-.068 2.075.264 3.776.984 4.796 1.089.643 2.961.969 5.283.919"/><path fill="#f4a19a" d="m17.854 23.536c-4.107-.109-7.48.426-9.498 1.591-1.27 1.759-1.918 4.787-1.82 8.539 4.105.109 7.477-.424 9.496-1.589 1.269-1.764 1.915-4.788 1.822-8.541"/><path fill="#3e4347" d="m15.381 25.747c-2.313-.061-4.213.239-5.352.896-.715.991-1.078 2.697-1.025 4.813 2.314.063 4.213-.238 5.35-.896.716-.995 1.085-2.7 1.027-4.813"/><path fill="#f4a19a" d="m41.17 26c0 10.691-6.611 19.358-14.764 19.358-8.154 0-14.766-8.667-14.766-19.358 0-6.195 6.609-6.432 14.766-6.432 8.153 0 14.764.237 14.764 6.432"/><ellipse fill="#fff" cx="18.404" cy="28.23" rx="4.996" ry="4.712"/><path fill="#3e4347" d="m18.404 24.971c1.908 0 3.457 1.46 3.457 3.263 0 1.803-1.549 3.264-3.457 3.264-1.912 0-3.461-1.461-3.461-3.264 0-1.803 1.549-3.263 3.461-3.263"/><ellipse fill="#fff" cx="34.41" cy="28.23" rx="4.998" ry="4.712"/><g fill="#3e4347"><ellipse cx="34.41" cy="28.23" rx="3.459" ry="3.263"/><path d="m18.969 37.3c3.576.605 3.785.605 5.469 4.03"/><path d="m33.846 37.3c-3.578.605-3.785.605-5.471 4.03"/></g><g fill="#dae5ef"><ellipse cx="11.11" cy="16.811" rx="8.789" ry="8.429"/><ellipse cx="41.705" cy="16.811" rx="8.789" ry="8.429"/><ellipse cx="26.408" cy="13.484" rx="11.977" ry="11.486"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.7 36.8c-.6-.9-1.5-1.5-2.6-1.5-1.8 0-3.2 1.5-3.2 3.4v12.3c0 1.9 1.4 3.4 3.2 3.4s3.2-1.5 3.2-3.4v-4.5-7.9c0-.5-.2-1.2-.6-1.8" fill="#8d9ba3"/><path d="m43.1 54.6c1.8 0 3.2-1.5 3.2-3.4h-6.3c0 1.8 1.4 3.4 3.1 3.4" fill="#3e4347"/><path d="m36.4 38.4c-.8-1.3-2-2.2-3.5-2.2-2.3 0-4.2 2.2-4.2 5v15.8c0 2.8 1.9 5 4.2 5 2.3 0 4.2-2.2 4.2-5v-6.5-9.2c0-1.1-.2-2-.7-2.9" fill="#8d9ba3"/><path d="m32.9 62c2.3 0 4.2-2.2 4.2-5h-8.5c.1 2.8 2 5 4.3 5" fill="#3e4347"/><path d="m23.4 38.4c-.8-1.3-2-2.2-3.5-2.2-2.3 0-4.2 2.2-4.2 5v15.8c0 2.8 1.9 5 4.2 5 2.3 0 4.2-2.2 4.2-5v-6.5-9.2c0-1.1-.2-2-.7-2.9" fill="#8d9ba3"/><path d="m19.9 62c2.3 0 4.2-2.2 4.2-5h-8.5c.1 2.8 2 5 4.3 5" fill="#3e4347"/><path d="m54.1 33.6c-.7-1.2-1.8-2-3-2-2 0-3.7 2-3.7 4.5v16.3c0 2.5 1.7 4.5 3.7 4.5 2 0 3.7-2 3.7-4.5v-5.9-10.3c0-1-.3-1.8-.7-2.6" fill="#8d9ba3"/><path d="m51.1 57.1c2 0 3.7-2 3.7-4.5h-7.4c0 2.4 1.6 4.5 3.7 4.5" fill="#3e4347"/><g fill="#dae5ef"><ellipse cx="32.9" cy="34.6" rx="14.5" ry="13.9"/><ellipse cx="16.5" cy="33.5" rx="14.5" ry="13.9"/><ellipse cx="50.5" cy="28.2" rx="9.3" ry="8.9"/><ellipse cx="52.7" cy="37.3" rx="9.3" ry="8.9"/><ellipse cx="46.3" cy="39.7" rx="9.3" ry="8.9"/><ellipse cx="17" cy="43.4" rx="9.3" ry="8.9"/><ellipse cx="35.8" cy="43.4" rx="9.3" ry="8.9"/><ellipse cx="26.4" cy="47.2" rx="9.3" ry="8.9"/></g><path d="m46.3 33.8c.1-3.7-.5-6.8-1.8-8.6-1.9-1.1-5.3-1.7-9.5-1.6-.1 3.7.5 6.8 1.8 8.6 2 1.1 5.3 1.6 9.5 1.6" fill="#f4a19a"/><path d="m43.8 31.5c.1-2.1-.3-3.8-1-4.8-1.1-.6-3-1-5.3-.9-.1 2.1.3 3.8 1 4.8 1.1.6 3 .9 5.3.9" fill="#3e4347"/><path d="m17.9 23.5c-4.1-.1-7.5.4-9.5 1.6-1.3 1.8-1.9 4.8-1.8 8.5 4.1.1 7.5-.4 9.5-1.6 1.2-1.7 1.8-4.7 1.8-8.5" fill="#f4a19a"/><path d="m15.4 25.7c-2.3-.1-4.2.2-5.4.9-.7 1-1.1 2.7-1 4.8 2.3.1 4.2-.2 5.4-.9.7-.9 1-2.6 1-4.8" fill="#3e4347"/><path d="m41.2 26c0 10.7-6.6 19.4-14.8 19.4-8.2 0-14.8-8.7-14.8-19.4 0-6.2 6.6-6.4 14.8-6.4 8.2 0 14.8.2 14.8 6.4" fill="#f4a19a"/><ellipse cx="18.4" cy="28.2" rx="5" ry="4.7" fill="#fff"/><path d="m18.4 25c1.9 0 3.5 1.5 3.5 3.3 0 1.8-1.5 3.3-3.5 3.3-1.9 0-3.5-1.5-3.5-3.3 0-1.9 1.6-3.3 3.5-3.3" fill="#3e4347"/><ellipse cx="34.4" cy="28.2" rx="5" ry="4.7" fill="#fff"/><g fill="#3e4347"><ellipse cx="34.4" cy="28.2" rx="3.5" ry="3.3"/><path d="m19 37.3c3.6.6 3.8.6 5.5 4"/><path d="m33.8 37.3c-3.6.6-3.8.6-5.5 4"/></g><g fill="#dae5ef"><ellipse cx="11.1" cy="16.8" rx="8.8" ry="8.4"/><ellipse cx="41.7" cy="16.8" rx="8.8" ry="8.4"/><ellipse cx="26.4" cy="13.5" rx="12" ry="11.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f412.svg b/build/js/jsxc/lib/emojione/assets/svg/1f412.svg
index 9247f53..713e48d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f412.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f412.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m34.951 45.664c-.605-.198-1.03-.775-1-1.438.035-.801.714-1.422 1.521-1.389 4.571.191 5.111.355 7.614 1.311.975.372 2.311.883 4.463 1.587 4.651 1.52 8.988.23 10.709-1.755.924-1.068 1.072-2.24.441-3.485-.498-.979-1.174-1.596-1.965-1.814-.652-.182-1.395-.1-2.039.225-.612.306-1.145.876-.963 1.235.365.716.076 1.586-.645 1.948-.719.36-1.597.073-1.96-.642-.926-1.818.044-4.02 2.251-5.129 1.289-.648 2.8-.803 4.144-.429 1.104.304 2.684 1.138 3.782 3.299 1.164 2.291.86 4.727-.834 6.683-2.793 3.225-8.611 4.325-13.834 2.618-2.222-.725-3.596-1.252-4.599-1.635-2.181-.832-2.464-.939-6.688-1.117-.138-.007-.27-.033-.396-.073"/><path d="m26.352 45.668c-2.715 0-15.818-4.204-21.559-13.558-2.612-4.255-4.72-11.305.067-20.725.726-1.427 2.471-1.998 3.9-1.272 1.428.726 1.998 2.472 1.272 3.899-2.793 5.496-2.992 10.25-.605 14.534 4.204 7.548 15.1 11.162 17 11.322 1.604 0 2.863 1.299 2.863 2.899.001 1.604-1.336 2.901-2.939 2.901"/></g><path fill="#e0ac7e" d="m11.837 8.34c0 0-.144-3.39-2.02-4.862-.928-.727-3.411-.714-4.575.665-1.284 1.52-1.815 7.501-.472 9.499 1.938 2.881 5.354 3.214 9.403-3.325 2.031-3.275-1.595-.967-2.334-1.977"/><path fill="#89664c" d="m31.1 45.668c-1.602 0-2.9-1.298-2.9-2.9 0-1.583 1.268-2.869 2.844-2.899 1.958-.185 12.793-3.802 16.983-11.324 2.385-4.284 2.187-9.04-.606-14.532-.726-1.428-.156-3.173 1.272-3.899 1.43-.728 3.174-.157 3.899 1.271 4.788 9.419 2.68 16.468.068 20.723-5.74 9.356-18.845 13.56-21.56 13.56"/><path fill="#e0ac7e" d="m45.615 8.34c0 0 .142-3.39 2.02-4.862.925-.727 3.409-.713 4.573.665 1.285 1.52 1.814 7.501.472 9.499-1.937 2.881-5.354 3.214-9.403-3.325-2.031-3.275 1.598-.967 2.336-1.977"/><g fill="#89664c"><path d="m22.458 57.49c-.609 0-1.223-.19-1.746-.586-7.664-5.792-11.376-9.578-9.05-12.991 3.328-4.878 17.485 1.893 17.619 1.975 1.365.837 1.793 2.623.955 3.988-.832 1.357-2.605 1.787-3.969.968-.918-.506-3.983-1.58-6.667-2.283 1.081.955 2.566 2.174 4.606 3.716 1.277.966 1.53 2.784.564 4.063-.57.753-1.438 1.15-2.316 1.15"/><path d="m34.993 57.49c-.878 0-1.745-.396-2.315-1.151-.967-1.278-.714-3.097.564-4.063 2.039-1.541 3.525-2.761 4.605-3.717-2.691.706-5.767 1.784-6.675 2.288-1.366.838-3.139.401-3.976-.963-.837-1.366-.396-3.16.97-3.997.134-.082 14.292-6.851 17.619-1.975 2.33 3.413-1.381 7.199-9.05 12.991-.523.397-1.137.587-1.747.587"/><ellipse cx="28.726" cy="44.4" rx="7.454" ry="7.402"/></g><ellipse fill="#e0ac7e" cx="28.726" cy="43.919" rx="6.811" ry="6.767"/><ellipse fill="#89664c" cx="42.21" cy="23.24" rx="5.115" ry="7.115"/><ellipse fill="#e0ac7e" cx="42.21" cy="23.85" rx="3.331" ry="4.633"/><ellipse fill="#89664c" cx="15.244" cy="23.24" rx="5.114" ry="7.115"/><ellipse fill="#e0ac7e" cx="15.243" cy="23.85" rx="3.33" ry="4.633"/><path fill="#89664c" d="m37.16 12.04c.814-.414 1.342-.622 1.342-.622-2.303-.781-4.299-1.236-6.03-1.444.91-.661 1.517-.914 1.517-.914-4.498-.252-7.995.457-10.676 1.54-2.937 1.021-5.436 2.881-7.16 5.409-.361.508-.525.829-.525.829l.003.003c-1.286 2.199-2.02 4.835-2.02 7.815 0 9.04 6.767 16.371 15.12 16.371 8.346 0 15.12-7.33 15.12-16.371 0-5.659-2.652-10.09-6.683-12.616"/><path fill="#e0ac7e" d="m42.764 26.512c0-3.802-3.342-6.886-7.466-6.886-2.842 0-5.312 1.465-6.572 3.617-1.263-2.152-3.733-3.617-6.573-3.617-4.123 0-7.466 3.083-7.466 6.886 0 3.462 2.774 6.322 6.384 6.805-.059.843.039 1.9.472 3.196 0 0 .089-.391.296-.89 1.124 2.485 3.781 4.24 6.888 4.24 3.104 0 5.762-1.755 6.886-4.24.207.499.294.89.294.89.434-1.296.531-2.354.472-3.196 3.61-.483 6.385-3.342 6.385-6.805"/><g fill="#89664c"><ellipse cx="30.05" cy="30.27" rx=".447" ry=".85"/><ellipse cx="27.395" cy="30.27" rx=".445" ry=".85"/></g><g fill="#3e4347"><ellipse cx="20.759" cy="26.535" rx="2.614" ry="2.239"/><ellipse cx="36.689" cy="26.535" rx="2.615" ry="2.239"/></g><path fill="#89664c" d="m25.644 29.875c.216-.606.748-1.029 1.269-1.354.537-.325 1.142-.542 1.771-.617.629-.068 1.298.02 1.867.332.575.304 1.01.821 1.256 1.389-.416-.455-.897-.809-1.421-1.012-.522-.199-1.088-.252-1.646-.185-.56.059-1.114.229-1.646.459-.268.119-.526.251-.775.409-.254.154-.492.329-.675.579"/><path fill="#3e4347" d="m35.32 31.811c0 2.661-2.949 4.935-6.59 4.935s-6.593-2.273-6.593-4.935c0 0 3.139.781 6.593.781 3.452 0 6.59-.781 6.59-.781"/><path fill="#fff" d="m34.27 32.62c0 1.09-2.303 1.744-5.539 1.744-3.237 0-5.539-.654-5.539-1.744 0 0 2.47.523 5.539.523s5.539-.523 5.539-.523"/><path fill="#ff717f" d="m31.07 35.556c0 .568-1.046.503-2.342.503s-2.344.065-2.344-.503c0-.566 1.048-.852 2.344-.852s2.342.285 2.342.852"/><g fill="#e0ac7e"><path d="m25.608 54.06c-.882-1.424-3.782-1.238-6.478.413-2.695 1.65-4.162 4.143-3.278 5.566.884 1.422 3.785 1.236 6.478-.414 2.697-1.65 4.165-4.144 3.278-5.565"/><path d="m25.743 54.06c-.658-1.539-3.745-1.711-6.896-.383-3.152 1.326-5.174 3.653-4.517 5.191.657 1.539 3.745 1.711 6.897.381 3.15-1.326 5.172-3.651 4.516-5.189"/><path d="m31.842 54.06c.882-1.424 3.785-1.238 6.477.413 2.696 1.65 4.163 4.143 3.28 5.566-.885 1.422-3.785 1.236-6.48-.414-2.695-1.65-4.162-4.144-3.277-5.565"/><path d="m31.708 54.06c.657-1.539 3.745-1.711 6.895-.383 3.152 1.326 5.175 3.653 4.517 5.191-.658 1.539-3.744 1.711-6.896.381-3.151-1.326-5.173-3.651-4.516-5.189"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m50.4 59.9c-2.5 0-4.7-1.2-5.5-1.7-.9-.5-1.2-1.7-.7-2.6.5-.9 1.7-1.2 2.6-.7 2.2 1.2 3.9 1.5 5.2.9 1.6-.7 3.8-3.2 5.4-10.6 1.4-6.7 1.5-15.6-1.6-19.4-.9-1.2-2.1-1.7-3.6-1.7-3.6 0-4.6 2.5-4.6 3.9 0 .4.1 2.1 1.6 2.1.3 0 .7-.1 1-.5.3-.4.4-.9.3-1.5-.2-1 .5-2 1.5-2.2 1-.2 2 .5 2.2 1.5.3 1.7 0 3.4-1.1 4.6-1 1.2-2.5 1.9-4 1.9-3.1 0-5.3-2.5-5.3-5.9 0-1.9.8-3.8 2.1-5.2 1.1-1.1 3-2.5 6.3-2.5 2.6 0 4.9 1.1 6.5 3.1 4.1 5.1 3.8 15.3 2.3 22.5-1.5 7.3-4 11.7-7.5 13.3-1 .6-2.1.7-3.1.7"/><path d="m30 27.9l-1.9 13.4c-4.9 0-6.1 9.1-4.7 17.5.1.8 5.5 1.7 5.5 1.7-1-5.3.4-7.9.4-7.9-.3 4.7.3 9.5 8.4 9.5 7.5 0 11.6-2.6 12-9.5 1.2-22-19.7-24.7-19.7-24.7"/></g><g fill="#e0ac7e"><path d="m23.5 57.8c-2.4 1-8.4 1.5-6.9 4.2h11.9c1.9-2.7-1.8-5.6-5-4.2"/><path d="m38.5 54.2c0 0-1.9-11.2-10.4-13-8.4-1.8-3.4-4.6.9-3.6 10.5 2.3 9.5 16.6 9.5 16.6"/></g><path fill="#89664c" d="m27.9 36.6h-9.5l-6.4 20.5 3.2 3.5z"/><path d="m14.8 57.3c-1.9-2.3-4.8.7-6.3 1.8-.7.5-4.5.6-3.3 2.9h8.2c2.6-.8 2.5-3.3 1.4-4.7" fill="#e0ac7e"/><ellipse cx="38.8" cy="21.2" rx="5.9" ry="5.9" fill="#89664c"/><ellipse cx="38.8" cy="21.2" rx="3.8" ry="3.8" fill="#ffc5d3"/><ellipse cx="7.9" cy="21.2" rx="5.9" ry="5.9" fill="#89664c"/><ellipse cx="7.9" cy="21.2" rx="3.8" ry="3.8" fill="#ffc5d3"/><g fill="#89664c"><path d="m31.4 5.4c.8-.4 1.3-.6 1.3-.6-2.3-.8-4.3-1.3-6-1.5.9-.7 1.5-.9 1.5-.9-14.5-2.1-21.4 6.3-21.4 13.8h33c-.4-5.2-3.3-8.8-8.4-10.8"/><path d="m39.9 17.3c0-6.9-7.4-12.5-16.6-12.5-9.2 0-16.6 5.6-16.6 12.5 0 1.6.4 3.2 1.2 4.6-.7 1.4-1.2 3-1.2 4.6 0 6.9 7.4 12.5 16.6 12.5 9.2 0 16.6-5.6 16.6-12.5 0-1.6-.4-3.2-1.2-4.6.8-1.4 1.2-2.9 1.2-4.6"/></g><path d="m37.6 17.8c0-12-14.2-4.4-14.2-4.4s-14.3-7.6-14.3 4.4c0 3.4 2.1 6.4 5.3 8.3-.9 1.2-1.5 2.6-1.5 4 0 4.3 4.7 7.8 10.4 7.8 5.8 0 10.4-3.5 10.4-7.8 0-1.5-.6-2.9-1.5-4 3.3-1.9 5.4-4.9 5.4-8.3" fill="#e0ac7e"/><g fill="#3b302a"><ellipse cx="24.9" cy="25.3" rx=".7" ry="1.5"/><ellipse cx="21.8" cy="25.3" rx=".7" ry="1.5"/><ellipse cx="29.5" cy="20.3" rx="2.5" ry="3.2"/><ellipse cx="17.2" cy="20.3" rx="2.5" ry="3.2"/><path d="m30.4 30.6c.4 1.1-2.7 3.3-7.1 3.3-4.4 0-7.5-2.2-7.1-3.3.5-1.1 13.8-1.1 14.2 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f413.svg b/build/js/jsxc/lib/emojione/assets/svg/1f413.svg
index c44d729..349de85 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f413.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f413.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m9.704 23.391c1.602 2.673 3.418 3.041 4.706 1.493 2.01-2.417-.224-5.47-2.511-6.349-3.925-1.505-7.31 2.955-7.31 2.955s3.717-.432 5.115 1.901"/><path fill="#e24b4b" d="m55.59 15.03c-9.147-5.504-19.768-1.202-21.923 9.3-.528 2.576-1.301 12.363 5.826 9.14.337.761.95 1.524 1.879 2.251 2.402 1.879 1.139 6.959 1.139 6.959s7.22-3.419 4.397-11.627c4.141 0 6.952 7.304 6.952 7.304s2.83-7.04.78-13.296c3.731-.377 7.162 4.99 7.162 4.99s1.919-10.129-6.212-15.02"/><g fill="#f4bc58"><path d="m32.13 62h-12.967c0-1.104 7.584-1.274 7.944-8.752 1.164 8.322 5.02 7.648 5.02 8.752"/><path d="m19.263 58.07l-8.04-9.586c.575-.684 5.361 4.816 9.469.449-3.604 6.02-.86 8.454-1.434 9.137"/></g><g fill="#947151"><path d="m41.4 33.393c0 10.39-7.142 18.812-15.95 18.812-8.81 0-15.951-8.422-15.951-18.812 0-6.93 1.274-21.959 6.21-21.959 15.342 0-3.896 19.852 9.741 19.852 8.809-.001 15.95-8.284 15.95 2.107"/><path d="m32.716 50.14c0 2.167-2.954 6.784-5.594 6.784s-5.631-3.14-5.631-5.307c.001-2.166 11.225-2.54 11.225-1.477"/></g><path fill="#3e4347" d="m38.841 31.441c-.265 4.543-8.147 11.598-12.566 11.598-4.418 0-8-3.691-8-8.244 0-7.558 3.825-3.927 8.243-3.927 4.419 0 12.751-6.72 12.324.573"/><path fill="#f4bc58" d="m8.657 28.927l.589 10.851 2.455-3.123 2.883 3.555.608-4.96 4.464 3.292-.811-4.828 5.356.57-2.456-2.959 3.703-2.527c0 0-4.494 1-4.434-1.831.062-2.833 2.983-10.968 1.097-13.364-1.888-2.397-10.126 0-10.126 0l-3.328 15.324"/><ellipse fill="#3e4347" cx="8.657" cy="19.469" rx=".589" ry=".302"/><ellipse fill="#e24b4b" cx="14.583" cy="19.945" rx="4.262" ry="4.164"/><ellipse fill="#3e4347" cx="14.321" cy="19.468" rx="2.052" ry="1.58"/><g fill="#e24b4b"><path d="m9.498 34.26c.304 3.923-2.456 5.695-4.64 5.498-3.412-.312-3.393-5.17-1.896-8.105 2.57-5.04 9.02-15.344 9.02-15.344s-2.753 14.528-2.488 17.951"/><path d="m23.25 13.1c.032-.52.04-1.069-.007-1.683-.266-3.424 3.388-6.51 3.388-6.51s-6-.877-8.57 4.161c-.306.6-.545 1.28-.711 1.985-.112-.5-.258-1.02-.471-1.577-1.198-3.125 1.396-7.478 1.396-7.478s-5.906 1.536-6.938 7.304c-.207 1.167-.179 2.479.08 3.654-.103-.104-.188-.211-.301-.315-1.897-1.758-1.391-6.172-1.391-6.172s-3.867 3.861-2.761 8.6c.646 2.76 3.116 5.543 5.219 3.241.636-.696 2.221-1.796 3.188-2.104.717-.229 2.521-.138 3.65.796 1.042.861 1.805 2.373 3.323 2.448 6.429.318 7.596-8.869 7.596-8.869s-3.293 1.652-6.69 2.519"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m9.7 23.4c1.6 2.7 3.4 3 4.7 1.5 2-2.4-.2-5.5-2.5-6.3-3.9-1.5-7.3 3-7.3 3s3.7-.5 5.1 1.8" fill="#f29a2e"/><path d="m55.6 15c-9.1-5.5-19.8-1.2-21.9 9.3-.5 2.6-1.3 12.4 5.8 9.1.3.8 1 1.5 1.9 2.3 2.4 1.9 1.1 7 1.1 7s7.2-3.4 4.4-11.6c4.1 0 7 7.3 7 7.3s2.8-7 .8-13.3c3.7-.4 7.2 5 7.2 5s1.8-10.2-6.3-15.1" fill="#e24b4b"/><g fill="#f4bc58"><path d="m32.1 62h-13c0-1.1 7.6-1.3 7.9-8.8 1.3 8.4 5.1 7.7 5.1 8.8"/><path d="m19.3 58.1l-8-9.6c.6-.7 5.4 4.8 9.5.4-3.7 6.1-1 8.5-1.5 9.2"/></g><g fill="#947151"><path d="m41.4 33.4c0 10.4-7.1 18.8-16 18.8-8.8 0-16-8.4-16-18.8 0-6.9 1.3-22 6.2-22 15.3 0-3.9 19.9 9.7 19.9 9 0 16.1-8.3 16.1 2.1"/><path d="m32.7 50.1c0 2.2-3 6.8-5.6 6.8s-5.6-3.1-5.6-5.3c0-2.1 11.2-2.5 11.2-1.5"/></g><path d="m38.8 31.4c-.2 4.6-8.1 11.6-12.5 11.6-4.4 0-8-3.7-8-8.2 0-7.6 3.8-3.9 8.2-3.9 4.4 0 12.8-6.8 12.3.5" fill="#3e4347"/><path d="m8.7 28.9l.6 10.9 2.5-3.1 2.9 3.6.6-5 4.5 3.3-.8-4.8 5.4.6-2.5-3 3.7-2.5c0 0-4.5 1-4.4-1.8.1-2.8 3-11 1.1-13.4-1.9-2.4-10.1 0-10.1 0l-3.5 15.2" fill="#f4bc58"/><ellipse cx="8.7" cy="19.5" rx=".6" ry=".3" fill="#3e4347"/><ellipse cx="14.6" cy="19.9" rx="4.3" ry="4.2" fill="#e24b4b"/><ellipse cx="14.3" cy="19.5" rx="2.1" ry="1.6" fill="#3e4347"/><g fill="#e24b4b"><path d="m9.5 34.3c.3 3.9-2.5 5.7-4.6 5.5-3.4-.3-3.4-5.2-1.9-8.1 2.6-5 9-15.3 9-15.3s-2.8 14.4-2.5 17.9"/><path d="m23.2 13.1c0-.5 0-1.1 0-1.7-.2-3.4 3.4-6.5 3.4-6.5s-6-.9-8.6 4.2c-.3.6-.5 1.3-.7 2-.1-.5-.3-1-.5-1.6-1.1-3.1 1.5-7.5 1.5-7.5s-5.9 1.5-6.9 7.3c-.2 1.2-.2 2.5.1 3.7-.1-.1-.2-.2-.3-.3-1.9-1.8-1.4-6.2-1.4-6.2s-3.9 3.8-2.8 8.6c.6 2.8 3.1 5.5 5.2 3.2.6-.7 2.2-1.8 3.2-2.1.7-.2 2.5-.1 3.6.8 1 .9 1.8 2.4 3.3 2.4 6.4.3 7.6-8.9 7.6-8.9s-3.3 1.7-6.7 2.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f414.svg b/build/js/jsxc/lib/emojione/assets/svg/1f414.svg
index 582efe8..34dfab5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f414.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f414.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ebf4fc" d="m59.985 40.794c0 14.912-12.536 22-28 22-15.465 0-28-7.088-28-22s12.535-32 28-32c15.464 0 28 17.09 28 32"/><path fill="#c94343" d="m37.24 3.544c-3.784-1.306-4.865 3.02-5.59 8.971-.448 3.697-2.503 7.469-2.503 7.469s5.42-1.18 8.961-4.603c3.428-3.316 5.05-9.792-.868-11.837"/><g fill="#e24b4b"><path d="m34.31 55.5c.462 4.911-2.458 6.493-5.489 6.493-3.03 0-6.644-3.646-4.763-8.255 2.398-5.882 6.943-9.6 6.943-9.6s2.8 5.953 3.309 11.362"/><path d="m29.655 53.55c-.461 4.911 2.458 6.491 5.491 6.491 3.03 0 6.642-3.644 4.761-8.254-2.398-5.881-6.942-9.599-6.942-9.599s-2.801 5.952-3.31 11.362"/></g><path fill="#e08828" d="m23.497 43.642h16.976c0 4.36-3.798 7.895-8.487 7.895-4.689-.001-8.489-3.535-8.489-7.895"/><path fill="#f29a2e" d="m42.546 44.19l-10.56 2.091-10.563-2.091c0-5.425 4.729-9.823 10.563-9.823 5.831 0 10.56 4.399 10.56 9.823"/><g fill="#3e4347"><path d="m35.68 36.472c.6.559.839 1.24.534 1.523-.305.284-1.038.061-1.638-.497s-.84-1.24-.535-1.523c.304-.285 1.038-.062 1.639.497"/><path d="m28.29 36.472c-.6.559-.84 1.24-.534 1.523.305.284 1.039.061 1.638-.497.6-.558.84-1.24.535-1.523-.305-.285-1.04-.062-1.639.497"/><ellipse cx="17.853" cy="32.949" rx="3.6" ry="6"/><ellipse cx="46.12" cy="32.724" rx="3.6" ry="6"/></g><path fill="#e24b4b" d="m30.554 1.078c-4.434.33-4.04 5.355-2.703 11.931.834 4.083.008 8.966.008 8.966s5.274-3.672 7.784-8.859c2.429-5.02 1.845-12.549-5.089-12.04"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m7.6 20.4c1.8 2.9 3.8 3.3 5.2 1.6 2.2-2.6-.2-5.9-2.8-6.8-4.3-1.7-8 3.1-8 3.1s4.1-.4 5.6 2.1" fill="#f29a2e"/><path d="m42.8 10.2c-7.7 4.5-1.3 15.3-15.2 18.2l14.8 7.3c3 5.2 11.3 5.6 11.3 5.6s2.1-6.2.4-10.8c4.6 0 7.8-2.8 7.8-2.8s-2.6-9.2-10.5-9.2c7.8-3.2 9.2-9.8 9.2-9.8s-6.9-4.8-17.8 1.5" fill="#e1eaf2"/><path d="m35.7 62h-14.3c0-1.2 8.4-1.4 8.8-9.4 1.3 8.9 5.5 8.2 5.5 9.4" fill="#f4bc58"/><g fill="#d1dce6"><path d="m49.4 30.6c0 11.5-9.4 23.3-21 23.3-11.6 0-21-11.8-21-23.3 0-7.7 16.6-2.3 21-2.3 11.6-.1 21-9.3 21 2.3"/><path d="m36.4 49.2c0 2.3-3.3 7.3-6.2 7.3-2.9 0-6.2-3.4-6.2-5.7 0-2.3 12.4-2.7 12.4-1.6"/></g><path d="m6.5 26.3c0 3 .6 11.7.6 11.7l2.7-3.4 3.2 3.8.7-5.3 4.9 3.5-.9-5.2 5.9.6-2.7-3.2 4.1-2.7c0 0-5 1.1-4.9-2 .1-3.1 2.6-11.9-.5-13.2-5.7-2.1-13.1 2.7-13.1 15.4" fill="#e1eaf2"/><g fill="#3e4347"><ellipse cx="6.5" cy="16.1" rx=".7" ry=".3"/><circle cx="11.5" cy="16.7" r="1.5"/></g><g fill="#e24b4b"><path d="m7.8 23.6c0 3.2-2.1.9-2.1.9-.7 0-3.6 2.2-2.6-1.5 1.3-4.8 6.3-8 6.3-8s-1.6 2.8-1.6 8.6"/><path d="m20.8 10.6c0-.4 0-.8 0-1.2-.2-2.5 3.4-3.5 3-4.8-.6-1.7-5.3-.6-7.6 3.1-.3.4-.5.9-.6 1.5-.1-.4-.2-.8-.4-1.2-1.1-2.3 2.2-4.4 1.2-5.5-1.3-1.5-5.2 1.1-6.1 5.4-.2.9-.2 1.8.1 2.7-.1-.1-.2-.2-.3-.2-1.7-1.3 0-4-1.2-4.6-1.8-.8-3.4 2.8-2.5 6.3.6 2 2.8 4.1 4.6 2.4.6-.5 2-1.3 2.8-1.6.6-.2 2.2-.1 3.2.6.9.6 1.6 1.8 2.9 1.8 5.7.2 8.8-5.3 6.7-6.5-1.1-.8-2.8 1.2-5.8 1.8"/></g><path d="m42.5 43.9c-.9-2.2-3.5-3.4-3.5-3.4 2.7-1.4 4.3-4.4 4.3-4.4-1.4-.6-6.8-1-6.8-1 1.2-1.2 2.2-2.9 2.2-2.9s-6.2-1.5-11.4 1.3c-6.8 3.8-4.8 12.8 2.9 13.8 8.5 1.1 12.3-3.4 12.3-3.4" fill="#e1eaf2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f415.svg b/build/js/jsxc/lib/emojione/assets/svg/1f415.svg
index 7487e82..7fded5c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f415.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f415.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m14.582 46.17c-5.855-.438-10.75-8.17-10.75-8.17 0 9.545 8.118 13.05 11.84 11.732 3.269-1.154-1.09-3.562-1.09-3.562"/><path fill="#eabc92" d="m41.08 56.04c1.678 2.02 9.227.041 10.449-2.281 4.983-9.482-.006-15.582-.006-15.582l-10.443 3.314c0 0-2.143 11.977 0 14.549"/><path fill="#ffe3c7" d="m33.957 60.38c1.859 2.232 8.502 2.092 10.519 0 2.89-2.994 2.765-16.654 2.89-23.314l-12.354-1.053c0 0-3.429 21.521-1.055 24.367"/><path fill="#eabc92" d="m26.897 56.04c-1.68 2.02-9.229.041-10.45-2.281-4.984-9.482.004-15.582.004-15.582l10.446 3.314c0 0 2.142 11.977 0 14.549"/><path fill="#ffe3c7" d="m34.02 60.38c-1.86 2.232-8.504 2.092-10.52 0-2.889-2.994-2.765-16.654-2.889-23.314l12.354-1.053c-.001 0 3.428 21.521 1.055 24.367"/><path fill="#423223" d="m33.987 60.46c-.296-2.098-.365-4.195-.379-6.294.009-2.099.075-4.196.37-6.296.298 2.099.367 4.197.379 6.295-.01 2.099-.076 4.197-.37 6.295"/><path fill="#3e4347" d="m33.988 46.48c-9.875 0-14.998-4.04-14.998-4.04s3.263 9.123 14.998 9.123c11.734 0 15-9.123 15-9.123s-5.129 4.04-15 4.04"/><g fill="#42ade2"><path d="m4.671 47.868c.684.501 1.38.9 2.085 1.291.71.378 1.424.739 2.158 1.052 1.466.65 2.954 1.145 4.603 1.517-1.665.429-3.451.069-5-.602-.778-.353-1.523-.781-2.188-1.32-.658-.535-1.281-1.162-1.653-1.938"/><path d="m4.607 53.02c.826.187 1.624.274 2.426.352.801.063 1.599.109 2.396.102 1.603.011 3.163-.131 4.822-.447-1.354 1.058-3.134 1.441-4.825 1.447-.854-.013-1.708-.107-2.532-.337-.816-.227-1.638-.554-2.287-1.117"/></g><path fill="#fff" d="m31.09 49.01c0-1.387.58-2.525 1.302-2.559-.213-.219-.455-.332-.715-.332-.836 0-1.514 1.295-1.514 2.891 0 1.598.678 2.891 1.514 2.891.26 0 .502-.168.715-.387-.722-.033-1.302-1.115-1.302-2.504"/><path fill="#ffe3c7" d="m19.829 42.985c-5.89-3.82-8.236-18.649-6.317-25.402 1.43-5.03 6.834-12.432 11.688-14.364 4.082-1.626 13.494-1.626 17.576 0 4.855 1.932 10.259 9.338 11.688 14.364 1.922 6.753.447 21.582-5.445 25.402-12.42 8.05-16.771 8.05-29.19 0"/><path fill="#423223" d="m10.488 19.11c3.154 6.885 3.927 7.155 6.904-1.03 1.588-4.367.476-6.975 2.322-9.797 1.026-1.572 3.409-4.144 3.409-4.144s-18.587 1.967-12.635 14.971"/><path fill="#947151" d="m18.435 3.886c-4.692 3.02-14.748 1.821-8.797 14.824 3.154 6.885 3.928 7.155 6.904-1.03 1.589-4.367.477-6.975 2.322-9.797 1.028-1.572 4.259-3.741 4.259-3.741s-1.467-2.328-4.688-.256"/><path fill="#423223" d="m57.49 19.11c-3.154 6.885-3.928 7.154-6.905-1.03-1.588-4.367-.476-6.975-2.321-9.797-1.027-1.573-3.408-4.144-3.408-4.144s18.585 1.967 12.634 14.971"/><path fill="#947151" d="m49.54 3.881c4.692 3.02 14.749 1.821 8.796 14.825-3.153 6.885-3.927 7.155-6.904-1.03-1.588-4.367-.475-6.975-2.321-9.797-1.028-1.572-4.257-3.741-4.257-3.741s1.465-2.328 4.686-.257"/><path fill="#fff" d="m21.549 19.17c2.894 0 5.237 2.344 5.237 5.236s-2.344 5.236-5.237 5.236c-2.89 0-5.235-2.344-5.235-5.236s2.346-5.236 5.235-5.236"/><ellipse fill="#3e4347" cx="20.242" cy="24.409" rx="3.927" ry="3.927"/><ellipse fill="#fff" cx="46.42" cy="24.409" rx="5.236" ry="5.236"/><ellipse fill="#3e4347" cx="47.733" cy="24.409" rx="3.927" ry="3.927"/><path fill="#7d644b" d="m24.989 40.15l4.059 4.24c2.439 2.537 7.441 2.54 9.876 0l4.061-4.24-4.172-4.356h-9.651l-4.173 4.356"/><path fill="#f15a61" d="m33.987 32.13c0 0-4.244 6.06-3.737 8.994.714 4.158 6.759 4.158 7.473 0 .507-2.938-3.736-8.994-3.736-8.994"/><path fill="#ba454b" d="m33.987 42.688l.945-5.859h-1.891l.946 5.859"/><path fill="#423223" d="m29.612 33.798h8.75v3.977h-8.75z"/><path fill="#947151" d="m47.807 34.746l-6.232-6.513c-3.748-3.896-11.427-3.9-15.169 0l-6.236 6.513c-1.769 1.847-1.769 4.842 0 6.69 1.768 1.844 4.639 1.844 6.407 0l6.238-6.51c.602-.629 1.747-.629 2.348 0l6.237 6.51c1.77 1.844 4.64 1.844 6.407 0 1.767-1.848 1.767-4.843 0-6.69"/><g fill="#3e4347"><path d="m28.839 28.694c0-2.294 2.306-2.736 5.148-2.736 2.844 0 5.147.442 5.147 2.736 0 1.822-4.098 3.439-5.147 3.439-1.052.001-5.148-1.616-5.148-3.439"/><path transform="matrix(.7067-.7075.7075.7067-14.364 28.571)" d="m26.662 30.993h1.234v1.234h-1.234z"/><path transform="matrix(.7071-.7071.7071.7071-16.668 27.782)" d="m24.584 33.393h1.235v1.234h-1.235z"/><path transform="matrix(.7067-.7075.7075.7067-16.487 29.994)" d="m27.316 34.27h1.234v1.233h-1.234z"/><path transform="matrix(-.7067-.7075.7075-.7067 47.09 82.74)" d="m40.08 30.993h1.234v1.234h-1.234z"/><path transform="matrix(-.7071-.7071.7071-.7071 48.968 88.3)" d="m42.16 33.393h1.235v1.234h-1.235z"/><path transform="matrix(-.7067-.7075.7075-.7067 43.659 87.86)" d="m39.42 34.27h1.234v1.233h-1.234z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M14.1,46.2C8,45.7,3,38,3,38c0,9.5,8.4,13,12.2,11.7C18.6,48.6,14.1,46.2,14.1,46.2z" fill="#947151"/><path d="m41.3 56c1.7 2 9.5 0 10.8-2.3 5.1-9.5 0-15.6 0-15.6l-10.8 3.3c0 .1-2.2 12.1 0 14.6" fill="#eabc92"/><path d="m34 60.4c1.9 2.2 8.8 2.1 10.8 0 3-3 2.8-16.7 3-23.3l-12.7-1.1c0 0-3.5 21.5-1.1 24.4" fill="#f5d1ac"/><path d="m26.7 56c-1.7 2-9.5 0-10.8-2.3-5.1-9.5 0-15.6 0-15.6l10.8 3.3c0 .1 2.3 12.1 0 14.6" fill="#eabc92"/><path d="m34.1 60.4c-1.9 2.2-8.8 2.1-10.8 0-3-3-2.8-16.7-3-23.3l12.7-1.1c0 0 3.5 21.5 1.1 24.4" fill="#f5d1ac"/><path d="m34 60.5c-.3-2.1-.4-4.2-.4-6.3 0-2.1.1-4.2.4-6.3.3 2.1.4 4.2.4 6.3 0 2.1-.1 4.2-.4 6.3" fill="#423223"/><path d="m34 46.5c-10.2 0-15.4-4-15.4-4s3.4 9.1 15.4 9.1 15.4-9.1 15.4-9.1-5.2 4-15.4 4" fill="#3e4347"/><path d="m31.1 49c0-1.4.6-2.5 1.3-2.6-.2-.2-.5-.3-.7-.3-.9 0-1.6 1.3-1.6 2.9 0 1.6.7 2.9 1.6 2.9.3 0 .5-.2.7-.4-.7 0-1.3-1.1-1.3-2.5" fill="#fff"/><path d="m19.5 43c-6.1-3.8-8.5-18.7-6.5-25.4 1.5-5 7-12.4 12-14.4 4.2-1.6 13.9-1.6 18.1 0 5 1.9 10.6 9.3 12 14.4 2 6.8.5 21.6-5.6 25.4-12.8 8-17.2 8-30 0" fill="#f5d1ac"/><path d="m9.9 19.1c3.2 6.9 4 7.2 7.1-1 1.6-4.4.5-7 2.4-9.8 1.1-1.6 3.5-4.1 3.5-4.1s-19.2 1.9-13 14.9" fill="#423223"/><path d="m18 3.9c-4.8 3-15.1 1.8-9 14.8 3.2 6.9 4 7.2 7.1-1 1.6-4.4.5-7 2.4-9.8 1.1-1.6 4.4-3.7 4.4-3.7s-1.5-2.4-4.9-.3" fill="#947151"/><path d="m58.2 19.1c-3.2 6.9-4 7.2-7.1-1-1.6-4.4-.5-7-2.4-9.8-1.1-1.6-3.5-4.1-3.5-4.1s19.2 1.9 13 14.9" fill="#423223"/><path d="m50.1 3.9c4.8 3 15.2 1.8 9.1 14.8-3.2 6.9-4 7.2-7.1-1-1.6-4.4-.5-7-2.4-9.8-1.1-1.6-4.4-3.7-4.4-3.7s1.4-2.4 4.8-.3" fill="#947151"/><path d="m21.2 19.2c3 0 5.4 2.3 5.4 5.2s-2.4 5.2-5.4 5.2c-3 0-5.4-2.3-5.4-5.2s2.5-5.2 5.4-5.2" fill="#fff"/><ellipse cx="19.9" cy="24.4" rx="4" ry="3.9" fill="#3e4347"/><path d="m52.2 24.4c0 2.9-2.4 5.2-5.4 5.2-3 0-5.4-2.3-5.4-5.2s2.4-5.2 5.4-5.2c3 0 5.4 2.3 5.4 5.2" fill="#fff"/><ellipse cx="48.2" cy="24.4" rx="4" ry="3.9" fill="#3e4347"/><path d="m24.8 40.1l4.2 4.2c2.5 2.5 7.7 2.5 10.2 0l4.2-4.2-4.4-4.3h-9.9l-4.3 4.3" fill="#7d644b"/><path d="m34 32.1c0 0-4.4 6.1-3.8 9 .7 4.2 7 4.2 7.7 0 .5-2.9-3.9-9-3.9-9" fill="#f15a61"/><path d="m34 42.7l1-5.9h-1.9l.9 5.9" fill="#ba454b"/><path fill="#423223" d="m29.5 33.8h9v4h-9z"/><path d="m48.3 34.7l-6.4-6.5c-3.9-3.9-11.8-3.9-15.6 0l-6.4 6.5c-1.8 1.8-1.8 4.8 0 6.7 1.8 1.8 4.8 1.8 6.6 0l6.4-6.5c.6-.6 1.8-.6 2.4 0l6.4 6.5c1.8 1.8 4.8 1.8 6.6 0 1.8-1.8 1.8-4.8 0-6.7" fill="#947151"/><g fill="#3e4347"><path d="m28.7 28.7c0-2.3 2.4-2.7 5.3-2.7 2.9 0 5.3.4 5.3 2.7 0 1.8-4.2 3.4-5.3 3.4-1 0-5.3-1.6-5.3-3.4"/><path d="m27.1 30.7l-.9.9.9.9.9-.9z"/><path d="m25 33.1l-.9.9.9.9.9-.9z"/><path d="m27.8 34l-.9.9.9.9.9-.9z"/><path d="m41 30.7l.9.9-.9.9-.9-.9z"/><path d="m43.1 33.1l.9.9-.9.9-.9-.9z"/><path d="m40.3 34l.9.9-.9.9-.9-.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f416.svg b/build/js/jsxc/lib/emojione/assets/svg/1f416.svg
index f8d72c8..a3f0422 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f416.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f416.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#a5627a" d="m53.941 31.774c-.663-.245-1.271-.708-1.699-1.32-.427-.612-.685-1.357-.735-2.118-.029-.381-.015-.766.042-1.146.062-.38.167-.752.309-1.111.284-.72.724-1.386 1.289-1.926.07-.068.144-.134.216-.199l.115-.099.105-.085c.158-.123.309-.233.472-.341.323-.211.665-.401 1.028-.551.722-.303 1.514-.47 2.314-.452.799.014 1.609.208 2.338.639.359.22.698.504.968.87.271.363.46.829.482 1.314.026.485-.11.959-.331 1.338-.217.383-.504.69-.799.951-.606.534-1.354.901-2.162 1.017-.403.058-.822.051-1.236-.05-.411-.1-.83-.303-1.146-.65-.321-.345-.478-.831-.469-1.266.004-.438.132-.833.296-1.186.339-.702.82-1.268 1.337-1.775.521-.504 1.081-.95 1.659-1.363 1.162-.82 2.396-1.511 3.664-2.122-1.174.774-2.324 1.583-3.379 2.487-.528.449-1.031.927-1.477 1.439-.442.514-.849 1.063-1.079 1.649-.114.289-.179.588-.16.853.017.266.116.483.284.647.337.34.967.436 1.539.32.581-.11 1.133-.415 1.559-.83.443-.426.697-.942.643-1.372-.043-.43-.384-.853-.875-1.127-.485-.286-1.086-.423-1.688-.443-1.211-.033-2.449.455-3.415 1.266-.473.404-.876.897-1.165 1.46-.144.281-.258.578-.341.886-.088.307-.143.623-.161.944-.03.64.069 1.302.352 1.901.275.605.729 1.141 1.306 1.551"/><path fill="#ea83a3" d="m35.411 50.44v-14.915c0-3.6 2.047-5.422 4.571-5.422 2.521 0 4.562 1.822 4.562 5.422v14.915c0 3.591-9.133 3.591-9.133 0"/><path fill="#a5627a" d="m39.983 55.858c0-2.979.865 0 4.556 0 0 0 0-4.202 0-5.416h-9.128c0 3.591 2.041 5.416 4.572 5.416"/><path fill="#ea83a3" d="m48.983 52.805v-14.916c0-3.601 2.047-5.422 4.572-5.422 2.521 0 4.562 1.822 4.562 5.422v14.916c0 3.591-9.134 3.591-9.134 0"/><path fill="#a5627a" d="m53.56 58.22c0-2.979.865 0 4.556 0 0 0 0-4.202 0-5.415h-9.129c-.001 3.591 2.042 5.415 4.573 5.415"/><g fill="#ea83a3"><path d="m58.95 38.26c0 9.477-2.703 15.328-23.486 15.328h-18.97v-29.678h26.97c7.449 0 15.486 2.185 15.486 14.35"/><path d="m7.911 38.706c0-9.476 1.321-15.328 11.476-15.328h9.268v29.679h-13.177c-3.641.001-7.567-2.185-7.567-14.35"/><path d="m29.389 55.32v-18.966c0-4.578 2.604-6.895 5.813-6.895 3.205 0 5.8 2.317 5.8 6.895v18.967c0 4.566-11.613 4.566-11.613-.001"/></g><path fill="#a5627a" d="m35.2 62.2c0-3.789 1.101 0 5.793 0 0 0 0-5.344 0-6.886h-11.606c0 4.567 2.595 6.886 5.813 6.886"/><path fill="#ea83a3" d="m21.654 55.32v-18.966c0-4.578-2.602-6.895-5.812-6.895-3.205 0-5.8 2.317-5.8 6.895v18.967c0 4.566 11.612 4.566 11.612-.001"/><path fill="#a5627a" d="m15.841 62.2c0-3.789-1.101 0-5.793 0 0 0 0-5.344 0-6.886h11.606c0 4.567-2.595 6.886-5.813 6.886"/><path fill="#fc97b2" d="m16.961 10.466c-1.916-3.588-14.659-2.515-14.659-2.515s-1.502 12.911 2.192 14.913c2.842 1.538 14.02-9.489 12.467-12.398"/><path fill="#ffd7e4" d="m14.567 12.437c-1.188-2.226-9.09-1.56-9.09-1.56s-.931 8 1.357 9.243c1.763.956 8.692-5.88 7.729-7.683"/><path fill="#fc97b2" d="m47.597 22.771c3.607-1.904 2.529-14.576 2.529-14.576s-12.983-1.495-14.996 2.179c-1.547 2.826 9.542 13.942 12.467 12.397"/><path fill="#ffd7e4" d="m45.616 20.391c2.236-1.182 1.567-9.04 1.567-9.04s-8.05-.925-9.296 1.353c-.957 1.751 5.915 8.643 7.729 7.685"/><path fill="#fc97b2" d="m47.702 30.22c0 13.981-9.654 16.584-21.563 16.584-11.908 0-21.563-2.604-21.563-16.584 0-13.984 13.25-24.02 21.563-24.02 8.314.001 21.563 10.03 21.563 24.02"/><path fill="#ffd7e4" d="m37.438 38.57c0 6.495-5.059 5.746-11.3 5.746-6.24 0-11.299.749-11.299-5.746 0-6.497 5.059-9.755 11.299-9.755 6.242 0 11.3 3.259 11.3 9.755"/><g fill="#bf7b90"><ellipse cx="21.1" cy="37.19" rx="2.768" ry="5.03"/><ellipse cx="31.18" cy="37.19" rx="2.766" ry="5.03"/><path d="m26.14 16.757c0 0-2.393-8.07-7.779-9.582 0 0 2.418-1.402 4.191-.723 0 0 .111-1.472-1.484-2.529 0 0 3.473-.745 5.195 1.724 0 0 .238-2.564-.383-3.854 0 0 5.752 1.356 7.237 6.243 0 .001-5.846 1.748-6.977 8.721"/></g><g fill="#493b30"><ellipse cx="12.965" cy="26.35" rx="2.485" ry="4.501"/><ellipse cx="39.31" cy="26.23" rx="2.486" ry="4.501"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53.9 31.8c-.7-.2-1.3-.7-1.7-1.3-.4-.6-.7-1.4-.7-2.1 0-.4 0-.8 0-1.1.1-.4.2-.8.3-1.1.3-.7.7-1.4 1.3-1.9.1-.1.1-.1.2-.2l.1-.1.1-.1c.2-.1.3-.2.5-.3.3-.2.7-.4 1-.6.7-.3 1.5-.5 2.3-.5.8 0 1.6.2 2.3.6.4.2.7.5 1 .9.3.4.5.8.5 1.3 0 .5-.1 1-.3 1.3-.2.4-.5.7-.8 1-.6.5-1.4.9-2.2 1-.4.1-.8.1-1.2 0-.4-.1-.8-.3-1.1-.6-.3-.5-.5-1-.5-1.4 0-.4.1-.8.3-1.2.3-.7.8-1.3 1.3-1.8.5-.5 1.1-1 1.7-1.4 1.2-.8 2.4-1.5 3.7-2.1-1.2.8-2.3 1.6-3.4 2.5-.5.4-1 .9-1.5 1.4-.4.5-.8 1.1-1.1 1.6-.1.3-.2.6-.2.9 0 .3.1.5.3.6.3.3 1 .4 1.5.3.6-.1 1.1-.4 1.6-.8.4-.4.7-.9.6-1.4 0-.4-.4-.9-.9-1.1-.5-.3-1.1-.4-1.7-.4-1.2 0-2.4.5-3.4 1.3-.5.4-.9.9-1.2 1.5-.1.3-.3.6-.3.9-.1.3-.1.6-.2.9 0 .6.1 1.3.4 1.9.4.6.9 1.2 1.4 1.6" fill="#a5627a"/><path d="m35.4 50.4v-14.9c0-3.6 2-5.4 4.6-5.4 2.5 0 4.6 1.8 4.6 5.4v14.9c-.1 3.6-9.2 3.6-9.2 0" fill="#ea83a3"/><path d="m40 55.9c0-3 .9 0 4.6 0 0 0 0-4.2 0-5.4h-9.1c-.1 3.5 2 5.4 4.5 5.4" fill="#a5627a"/><path d="m49 52.8v-14.9c0-3.6 2-5.4 4.6-5.4 2.5 0 4.6 1.8 4.6 5.4v14.9c-.1 3.6-9.2 3.6-9.2 0" fill="#ea83a3"/><path d="m53.6 58.2c0-3 .9 0 4.6 0 0 0 0-4.2 0-5.4h-9.2c0 3.6 2 5.4 4.6 5.4" fill="#a5627a"/><g fill="#ea83a3"><path d="m59 38.3c0 9.5-2.7 15.3-23.5 15.3h-19v-29.7h27c7.4 0 15.5 2.2 15.5 14.4"/><path d="m7.9 38.7c0-9.5 1.3-15.3 11.5-15.3h9.3v29.7h-13.2c-3.7 0-7.6-2.2-7.6-14.4"/><path d="m29.4 55.3v-19c0-4.6 2.6-6.9 5.8-6.9 3.2 0 5.8 2.3 5.8 6.9v19c0 4.6-11.6 4.6-11.6 0"/></g><path d="m35.2 62.2c0-3.8 1.1 0 5.8 0 0 0 0-5.3 0-6.9h-11.6c0 4.6 2.6 6.9 5.8 6.9" fill="#a5627a"/><path d="m21.7 55.3v-19c0-4.6-2.6-6.9-5.8-6.9-3.2 0-5.8 2.3-5.8 6.9v19c-.1 4.6 11.6 4.6 11.6 0" fill="#ea83a3"/><path d="m15.8 62.2c0-3.8-1.1 0-5.8 0 0 0 0-5.3 0-6.9h11.6c.1 4.6-2.5 6.9-5.8 6.9" fill="#a5627a"/><path d="M17,10.5C15,6.9,2.3,8,2.3,8S0.8,20.9,4.5,22.9C7.3,24.4,18.5,13.4,17,10.5z" fill="#fc97b2"/><path d="m14.6 12.4c-1.2-2.2-9.1-1.6-9.1-1.6s-.9 8 1.4 9.2c1.7 1.1 8.6-5.8 7.7-7.6" fill="#ffd7e4"/><path d="m47.6 22.8c3.6-1.9 2.5-14.6 2.5-14.6s-13-1.5-15 2.2c-1.5 2.8 9.6 13.9 12.5 12.4" fill="#fc97b2"/><path d="m45.6 20.4c2.2-1.2 1.6-9 1.6-9s-8-.9-9.3 1.4c-1 1.7 5.9 8.5 7.7 7.6" fill="#ffd7e4"/><path d="m47.7 30.2c0 14-9.7 16.6-21.6 16.6-11.9 0-21.6-2.6-21.6-16.6 0-14 13.2-24 21.6-24 8.4 0 21.6 10 21.6 24" fill="#fc97b2"/><path d="m37.4 38.6c0 6.5-5.1 5.7-11.3 5.7-6.2 0-11.3.7-11.3-5.7 0-6.5 5.1-9.8 11.3-9.8 6.3 0 11.3 3.3 11.3 9.8" fill="#ffd7e4"/><g fill="#bf7b90"><ellipse cx="21.1" cy="37.2" rx="2.8" ry="5"/><ellipse cx="31.2" cy="37.2" rx="2.8" ry="5"/><path d="m26.1 16.8c0 0-2.4-8.1-7.8-9.6 0 0 2.4-1.4 4.2-.7 0 0 .1-1.5-1.5-2.5 0 0 3.5-.7 5.2 1.7 0 0 .2-2.6-.4-3.9 0 0 5.8 1.4 7.2 6.2.1 0-5.7 1.8-6.9 8.8"/></g><g fill="#493b30"><ellipse cx="13" cy="26.4" rx="2.5" ry="4.5"/><ellipse cx="39.3" cy="26.2" rx="2.5" ry="4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f417.svg b/build/js/jsxc/lib/emojione/assets/svg/1f417.svg
index 3cb45b5..d134de1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f417.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f417.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m20.593 14.791c-2.38-4.463-18.217-3.129-18.217-3.129s-1.867 16.06 2.723 18.553c3.534 1.914 17.424-11.805 15.494-15.424"/><path fill="#2b2118" d="m17.618 17.242c-1.476-2.768-11.292-1.939-11.292-1.939s-1.157 9.959 1.688 11.5c2.19 1.187 10.801-7.317 9.604-9.561"/><path fill="#89664c" d="m58.669 30.1c4.482-2.369 3.143-18.14 3.143-18.14s-16.14-1.859-18.637 2.711c-1.922 3.515 11.859 17.345 15.494 15.424"/><path fill="#2b2118" d="m56.21 27.14c2.779-1.469 1.947-11.244 1.947-11.244s-10-1.15-11.553 1.682c-1.191 2.179 7.35 10.753 9.606 9.562"/><path fill="#89664c" d="M58.8,39.365C58.8,56.762,46.8,60,32,60S5.2,56.762,5.2,39.365S21.667,9.486,32,9.486
- C42.333,9.486,58.8,21.969,58.8,39.365z"/><g fill="#fff"><path d="m19.661 47.28c-11.875 5.78-8.708-18.958-8.708-18.958-9.209 23.75 1.811 27.566 9.625 26.417l-.917-7.459"/><path d="m44.34 47.28c11.875 5.78 8.708-18.958 8.708-18.958 9.209 23.75-1.811 27.566-9.625 26.417l.917-7.459"/></g><path fill="#5c4533" d="m32 22.617c0 0-2.975-10.04-9.67-11.92 0 0 3.01-1.746 5.211-.9 0 0 .139-1.832-1.846-3.146 0 0 4.316-.926 6.457 2.145 0 0 .297-3.189-.477-4.795 0 0 7.148 1.689 8.996 7.77 0-.001-7.268 2.17-8.671 10.846"/><g fill="#2b2118"><ellipse cx="18.627" cy="34.553" rx="3.089" ry="5.6"/><path d="m45.37 28.807c1.707 0 3.09 2.506 3.09 5.6s-1.383 5.6-3.09 5.6c-1.703 0-3.086-2.506-3.086-5.6s1.383-5.6 3.086-5.6"/></g><path fill="#fc97b2" d="m46.04 49.756c0 8.08-6.287 7.15-14.04 7.15-7.756 0-14.04.932-14.04-7.15s6.287-12.137 14.04-12.137c7.757 0 14.04 4.055 14.04 12.137"/><g fill="#7a495a"><ellipse cx="25.734" cy="48.04" rx="3.439" ry="6.26"/><ellipse cx="38.27" cy="48.04" rx="3.438" ry="6.26"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 14.8c-2.4-4.5-18.2-3.1-18.2-3.1s-1.9 16 2.7 18.5c3.5 1.9 17.4-11.8 15.5-15.4" fill="#89664c"/><path d="m17.6 17.2c-1.5-2.8-11.3-1.9-11.3-1.9s-1.1 10 1.7 11.5c2.2 1.2 10.8-7.3 9.6-9.6" fill="#2b2118"/><path d="M58.7,30.1c4.5-2.4,3.1-18.1,3.1-18.1s-16.1-1.9-18.6,2.7C41.3,18.2,55,32,58.7,30.1z" fill="#89664c"/><path d="m56.2 27.1c2.8-1.5 1.9-11.2 1.9-11.2s-10-1.1-11.6 1.7c-1.1 2.2 7.5 10.7 9.7 9.5" fill="#2b2118"/><path d="M58.8,39.4C58.8,56.8,46.8,60,32,60S5.2,56.8,5.2,39.4S21.7,9.5,32,9.5S58.8,22,58.8,39.4z" fill="#89664c"/><g fill="#fff"><path d="m19.7 47.3c-11.9 5.8-8.7-19-8.7-19-9.2 23.8 1.8 27.6 9.6 26.4l-.9-7.4"/><path d="m44.3 47.3c11.9 5.8 8.7-19 8.7-19 9.2 23.8-1.8 27.6-9.6 26.4l.9-7.4"/></g><path d="m32 22.6c0 0-3-10-9.7-11.9 0 0 3-1.7 5.2-.9 0 0 .1-1.8-1.8-3.1 0 0 4.3-.9 6.5 2.1 0 0 .3-3.2-.5-4.8 0 0 7.1 1.7 9 7.8 0 0-7.3 2.1-8.7 10.8" fill="#5c4533"/><g fill="#2b2118"><ellipse cx="18.6" cy="34.6" rx="3.1" ry="5.6"/><path d="m45.4 28.8c1.7 0 3.1 2.5 3.1 5.6s-1.4 5.6-3.1 5.6c-1.7 0-3.1-2.5-3.1-5.6s1.4-5.6 3.1-5.6"/></g><path d="m46 49.8c0 8.1-6.3 7.2-14 7.2-7.8 0-14 .9-14-7.2s6.3-12.1 14-12.1c7.8-.1 14 4 14 12.1" fill="#fc97b2"/><g fill="#7a495a"><ellipse cx="25.7" cy="48" rx="3.4" ry="6.3"/><ellipse cx="38.3" cy="48" rx="3.4" ry="6.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f418.svg b/build/js/jsxc/lib/emojione/assets/svg/1f418.svg
index a298345..80479aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f418.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f418.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#6b7b7f"><path d="m59.789 44.19c1.387-7.124-2.371-14.907-2.406-14.985l1.064-.627c.164.334 3.994 8.27 2.52 15.845l-1.178-.233"/><path d="m60.93 40.37c-1.154 1.642-1.988 3.229-2.33 4.514-.028 1.21.352 2.662 1.068 4.092 1.154-1.64 1.988-3.233 2.331-4.518.026-1.208-.351-2.66-1.069-4.088"/><path d="m23.937 33.12h11.872v24.881h-11.872z"/></g><g fill="#808f96"><path d="m25.546 55.57c.892 0 1.613 1.086 1.613 2.432h-3.223c.001-1.346.72-2.432 1.61-2.432"/><path d="m28.771 55.57c.891 0 1.613 1.086 1.613 2.432h-3.224c0-1.346.72-2.432 1.611-2.432"/><path d="m31.994 55.57c.893 0 1.616 1.086 1.616 2.432h-3.225c-.001-1.346.72-2.432 1.609-2.432"/></g><path fill="#9caaaf" d="m25.724 33h11.872v24.996h-11.872z"/><g fill="#ffc5d3"><path d="m27.333 55.57c.893 0 1.614 1.088 1.614 2.43h-3.224c.001-1.342.721-2.43 1.61-2.43"/><path d="m30.558 55.57c.892 0 1.613 1.088 1.613 2.43h-3.224c.001-1.342.72-2.43 1.611-2.43"/><path d="m33.782 55.57c.892 0 1.614 1.088 1.614 2.43h-3.225c0-1.342.721-2.43 1.611-2.43"/></g><path fill="#6b7b7f" d="m41.548 33.12h11.872v24.881h-11.872z"/><g fill="#808f96"><path d="m43.16 55.57c.891 0 1.613 1.086 1.613 2.432h-3.224c.001-1.346.721-2.432 1.611-2.432"/><path d="m46.38 55.57c.891 0 1.612 1.086 1.612 2.432h-3.224c0-1.346.721-2.432 1.612-2.432"/><path d="m49.605 55.57c.893 0 1.614 1.086 1.614 2.432h-3.225c.001-1.346.722-2.432 1.611-2.432"/></g><path fill="#9caaaf" d="m46.3 33h11.871v24.996h-11.871z"/><g fill="#ffc5d3"><path d="m47.912 55.57c.893 0 1.615 1.088 1.615 2.43h-3.224c.001-1.342.72-2.43 1.609-2.43"/><path d="m51.14 55.57c.892 0 1.613 1.088 1.613 2.43h-3.224c0-1.342.72-2.43 1.611-2.43"/><path d="m54.36 55.57c.891 0 1.613 1.088 1.613 2.43h-3.224c.001-1.342.721-2.43 1.611-2.43"/></g><g fill="#9caaaf"><path d="m59.56 31.95c0 8.963-5.28 16.655-11.775 16.232-4.35-.283-12.973-2.115-17.327-2.258v-30.24h17.327c6.503 0 11.775 7.269 11.775 16.266"/><path d="m26 32.835c-7.705 4.203-11.474-1.462-12.139-1.173-1.051.459-1.978-.711-1.291-1.457 3.136-3.41-8.104-4.25-8.104-4.25 1.696-3.755 6.848-17.01 13.04-18.697 6.246-1.704 8.563-1.792 11.875.44 4.358 2.934 3.703 21.271-3.386 25.14"/><path d="m9.266 48.12c4.328 2.209 10.693 1.402 13.29-3.176.993-1.75-1.056-1.223-2.677-2.172-1.621-.952-2.199-3.02-3.192-1.269-.702 1.239-2.526.769-3.582.151-1.428-.839-2.459-2.326-2.829-4.085-.497-2.366.158-5.233 1.893-8.293.995-1.751.486-3.94-1.135-4.891s-5.098-1.088-6.092.665c-6.838 12.05-.22 20.752 4.324 23.07"/></g><path fill="#808f96" d="m48.2 22.789c0 10.784-6.632 15-14.811 15-8.179 0-9.189-6.802-9.189-15.09s1.01-14.917 9.189-14.917c8.179-.001 14.811 4.218 14.811 15"/><path fill="#9caaaf" d="m47.29 21.827c0 10.525-6.471 14.642-14.454 14.642-7.981 0-9.506-6.554-9.506-14.642 0-4-1.344-9.83 0-12.473 0 0 5.474-2.168 9.506-2.168 7.983 0 14.454 4.117 14.454 14.641"/><path fill="#ffc5d3" d="m44.11 22.373c0 7.952-4.557 11.06-10.177 11.06-8.705 0-3.771-5.243-3.771-11.352s-1.202-10.771 3.771-10.771c5.621-.001 10.177 3.109 10.177 11.06"/><path fill="#42ade2" d="m16.258 18.521c1.95-.488 3.982.681 4.54 2.608.555 1.929-.576 3.886-2.525 4.372-1.95.488-3.981-.677-4.538-2.607-.555-1.927.572-3.887 2.523-4.373"/><path fill="#3e4347" d="m16.619 19.768c1.255-.313 2.56.437 2.916 1.677.359 1.24-.367 2.496-1.621 2.81-1.253.313-2.56-.436-2.918-1.676-.358-1.24.368-2.499 1.623-2.811"/><path fill="#9caaaf" d="m14.85 30.03c-1.071-2.24.587-5.291 3.704-6.813 3.116-1.521 6.511-.94 7.581 1.3 1.07 2.242-.588 5.292-3.703 6.813-3.118 1.523-6.512.941-7.582-1.3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#6b7b7f"><path d="m59.8 44.2c1.4-7.1-2.4-14.9-2.4-15l1.1-.6c.2.3 4 8.3 2.5 15.8l-1.2-.2"/><path d="m60.9 40.4c-1.2 1.6-2 3.2-2.3 4.5 0 1.2.4 2.7 1.1 4.1 1.2-1.6 2-3.2 2.3-4.5 0-1.2-.4-2.7-1.1-4.1"/><path d="m23.9 33.1h11.9v24.9h-11.9z"/></g><g fill="#808f96"><path d="m25.5 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.8-2.4 1.6-2.4"/><path d="m28.8 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/><path d="m32 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/></g><path fill="#9caaaf" d="m25.7 33h11.9v25h-11.9z"/><g fill="#ffc5d3"><path d="m27.3 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/><path d="m30.6 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c-.1-1.3.7-2.4 1.6-2.4"/><path d="m33.8 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/></g><path fill="#6b7b7f" d="m41.5 33.1h11.9v24.9h-11.9z"/><g fill="#808f96"><path d="m43.2 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c-.1-1.3.7-2.4 1.6-2.4"/><path d="m46.4 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/><path d="m49.6 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/></g><path fill="#9caaaf" d="m46.3 33h11.9v25h-11.9z"/><g fill="#ffc5d3"><path d="m47.9 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/><path d="m51.1 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/><path d="m54.4 55.6c.9 0 1.6 1.1 1.6 2.4h-3.2c0-1.3.7-2.4 1.6-2.4"/></g><g fill="#9caaaf"><path d="m59.6 32c0 9-5.3 16.7-11.8 16.2-4.3-.3-13-2.1-17.3-2.3v-30.2h17.3c6.5 0 11.8 7.3 11.8 16.3"/><path d="m26 32.8c-7.7 4.2-11.5-1.5-12.1-1.2-1.1.5-2-.7-1.3-1.5 3.1-3.4-8.1-4.2-8.1-4.2 1.7-3.8 6.8-17 13-18.7 6.2-1.7 8.6-1.8 11.9.4 4.3 3 3.7 21.4-3.4 25.2"/><path d="m9.3 48.1c4.3 2.2 10.7 1.4 13.3-3.2 1-1.8-1.1-1.2-2.7-2.2-1.6-1-2.2-3-3.2-1.3-.7 1.2-2.5.8-3.6.2-1.4-.8-2.5-2.3-2.8-4.1-.5-2.4.2-5.2 1.9-8.3 1-1.8.5-3.9-1.1-4.9s-5.1-1.1-6.1.7c-6.9 12.1-.3 20.8 4.3 23.1"/></g><path d="m48.2 22.8c0 10.8-6.6 15-14.8 15s-9.2-6.8-9.2-15.1 1-14.9 9.2-14.9c8.2 0 14.8 4.2 14.8 15" fill="#808f96"/><path d="m47.3 21.8c0 10.5-6.5 14.6-14.5 14.6-8 0-9.5-6.6-9.5-14.6 0-4-1.3-9.8 0-12.5 0 0 5.5-2.2 9.5-2.2 8 .1 14.5 4.2 14.5 14.7" fill="#9caaaf"/><path d="m44.1 22.4c0 8-4.6 11.1-10.2 11.1-8.7 0-3.8-5.2-3.8-11.4s-1.1-10.8 3.8-10.8c5.7 0 10.2 3.1 10.2 11.1" fill="#ffc5d3"/><path d="m16.3 18.5c2-.5 4 .7 4.5 2.6.6 1.9-.6 3.9-2.5 4.4-2 .5-4-.7-4.5-2.6-.6-1.9.5-3.9 2.5-4.4" fill="#42ade2"/><path d="m16.6 19.8c1.3-.3 2.6.4 2.9 1.7.4 1.2-.4 2.5-1.6 2.8-1.3.3-2.6-.4-2.9-1.7-.4-1.3.4-2.5 1.6-2.8" fill="#3e4347"/><path d="m14.9 30c-1.1-2.2.6-5.3 3.7-6.8 3.1-1.5 6.5-.9 7.6 1.3 1.1 2.2-.6 5.3-3.7 6.8-3.2 1.6-6.6 1-7.6-1.3" fill="#9caaaf"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f419.svg b/build/js/jsxc/lib/emojione/assets/svg/1f419.svg
index c2d53d2..fa59238 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f419.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f419.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ab7dcc" d="m22.376 39.988c-3.365-.695-20.934-10.291-19.987-19.463.931-9.02 7.611-11.382 8.259-.443.464 7.834 15.09 20.602 11.728 19.906"/><path fill="#ff94a4" d="m22.12 39.922c-3.166-3.25-12.562-10.674-13.683-16.451-1.111-5.73-3.422-7.475-5.297-6.482-.351 1.02-.617 2.203-.755 3.535-.926 8.968 15.844 18.337 19.735 19.398"/><g fill="#cc4a5d"><path d="m6.964 22.21c.143.828-.662 1.668-1.797 1.873-1.135.207-2.172-.295-2.315-1.125-.144-.826.661-1.666 1.797-1.873 1.135-.207 2.171.297 2.315 1.125"/><path d="m9.05 27c.152.639-.51 1.354-1.48 1.598-.97.244-1.88-.076-2.033-.715-.153-.639.51-1.352 1.48-1.598.97-.242 1.88.076 2.033.715"/><path d="m11.417 30.455c.228.398-.096 1.025-.724 1.406-.628.377-1.321.363-1.549-.035s.096-1.025.724-1.404 1.321-.365 1.549.033"/><path d="m14.696 33.584c.182.318-.077.816-.577 1.119-.5.303-1.054.291-1.235-.027-.182-.316.076-.816.577-1.119.5-.301 1.053-.291 1.235.027"/></g><path fill="#ab7dcc" d="m27.376 41.37c-2.343 2.572-15.16 8.04-22.278 2.396-6.997-5.545-1.226-11.857 8.196-6.684 6.746 3.704 16.423 1.714 14.08 4.288"/><path fill="#ff94a4" d="m5.097 43.764c7.118 5.639 19.937.176 22.278-2.396.091-.102.157-.191.213-.277-.875-1.135-8.546 1.105-14.728-1.113-5.063-1.816-8.78-.92-10.249.977.497.918 1.306 1.873 2.486 2.809"/><g fill="#cc4a5d"><path d="m7.496 40.29c-.731-.322-1.853.674-2.505 2.223-.13.309-.223.611-.296.908.134.115.257.232.402.348.576.457 1.193.832 1.835 1.152.262-.35.507-.762.706-1.236.653-1.549.59-3.071-.142-3.395"/><path d="m11.981 41.469c-.83-.129-1.706 1.176-1.957 2.908-.081.559-.08 1.088-.024 1.563.867.168 1.757.256 2.656.279.165-.41.297-.877.371-1.383.252-1.736-.216-3.242-1.046-3.367"/><path d="m18.355 45.03c-.087-1.396-.754-2.49-1.49-2.443-.735.047-1.261 1.221-1.174 2.617.019.295.067.572.133.834.858-.115 1.707-.273 2.533-.469.01-.175.01-.355-.002-.539"/><path d="m21.05 42.38c-.572.164-.803 1.156-.516 2.215.031.113.07.223.11.33.7-.23 1.373-.48 2-.742-.014-.061-.021-.121-.039-.182-.287-1.059-.984-1.785-1.558-1.621"/></g><path fill="#ab7dcc" d="m30.14 41.596c.971 3.764-5.998 15.641-14.954 16.5-8.803.842-9.458-8.307.873-11.12 7.396-2.01 13.202-8.784 14.08-5.381"/><path fill="#ff94a4" d="m15.185 58.1c8.453-.811 15.13-11.434 15.04-15.789-1.866-1.205-5.902 5.689-12.09 9.02-3.638 1.959-5.485 4.459-5.91 6.637.85.182 1.839.239 2.961.132"/><g fill="#cc4a5d"><path d="m17.349 54.38c-1.111.273-1.741 1.656-1.406 3.086.041.174.094.338.157.496 1.353-.246 2.653-.734 3.881-1.398-.006-.029-.007-.057-.014-.086-.334-1.432-1.506-2.372-2.618-2.098"/><path d="m22.588 50.795c-.925.473-1.155 1.924-.516 3.242.145.299.324.559.521.785.994-.795 1.916-1.689 2.75-2.633-.659-1.224-1.863-1.849-2.755-1.394"/><path d="m26.645 46.98c-.585.451-.603 1.439-.041 2.209.18.248.399.436.631.57.528-.773.994-1.547 1.393-2.307-.569-.677-1.429-.897-1.983-.472"/></g><path fill="#ab7dcc" d="m53.35 20.08c.648-10.939 7.328-8.574 8.26.443.947 9.172-16.622 18.768-19.987 19.463-3.365.696 11.264-12.07 11.727-19.906"/><path fill="#ff94a4" d="m41.878 39.922c3.166-3.25 12.563-10.674 13.683-16.451 1.111-5.73 3.422-7.475 5.298-6.482.351 1.02.616 2.203.754 3.535.925 8.968-15.844 18.337-19.735 19.398"/><g fill="#cc4a5d"><path d="m57.04 22.21c-.144.828.661 1.668 1.797 1.873 1.135.207 2.172-.295 2.314-1.125.145-.826-.66-1.666-1.797-1.873-1.134-.207-2.171.297-2.314 1.125"/><path d="m54.952 27c-.152.639.51 1.354 1.48 1.598.97.244 1.881-.076 2.033-.715s-.511-1.352-1.48-1.598c-.969-.242-1.881.076-2.033.715"/><path d="m52.584 30.455c-.228.398.096 1.025.724 1.406.629.377 1.322.363 1.55-.035s-.096-1.025-.724-1.404-1.321-.365-1.55.033"/><path d="m49.31 33.584c-.182.318.076.816.576 1.119.501.303 1.055.291 1.236-.027.182-.316-.076-.816-.578-1.119-.5-.301-1.053-.291-1.234.027"/></g><path fill="#ab7dcc" d="m50.708 37.08c9.422-5.174 15.191 1.139 8.195 6.684-7.117 5.639-19.936.176-22.278-2.396-2.341-2.575 7.337-.585 14.08-4.288"/><path fill="#ff94a4" d="m58.904 43.764c-7.118 5.639-19.937.176-22.278-2.396-.091-.102-.157-.191-.213-.277.875-1.135 8.545 1.105 14.729-1.113 5.063-1.816 8.779-.92 10.248.977-.496.918-1.306 1.873-2.486 2.809"/><g fill="#cc4a5d"><path d="m56.51 40.29c.731-.322 1.854.674 2.506 2.223.129.309.223.611.296.908-.134.115-.257.232-.402.348-.576.457-1.192.832-1.835 1.152-.262-.35-.508-.762-.707-1.236-.653-1.549-.589-3.071.142-3.395"/><path d="m52.02 41.469c.829-.129 1.705 1.176 1.957 2.908.08.559.08 1.088.023 1.563-.867.168-1.758.256-2.656.279-.164-.41-.297-.877-.371-1.383-.252-1.736.216-3.242 1.047-3.367"/><path d="m45.646 45.03c.088-1.396.754-2.49 1.49-2.443.735.047 1.261 1.221 1.174 2.617-.019.295-.067.572-.133.834-.859-.115-1.707-.273-2.533-.469-.009-.175-.01-.355.002-.539"/><path d="m42.952 42.38c.572.164.803 1.156.516 2.215-.031.113-.07.223-.11.33-.7-.23-1.373-.48-2-.742.014-.061.021-.121.039-.182.288-1.059.985-1.785 1.558-1.621"/></g><path fill="#ab7dcc" d="m47.946 46.977c10.33 2.813 9.676 11.961.872 11.12-8.956-.859-15.925-12.736-14.954-16.5.879-3.403 6.686 3.369 14.08 5.381"/><path fill="#ff94a4" d="m48.817 58.1c-8.453-.811-15.13-11.434-15.04-15.789 1.866-1.205 5.902 5.689 12.09 9.02 3.639 1.959 5.486 4.459 5.91 6.637-.851.182-1.84.239-2.961.132"/><g fill="#cc4a5d"><path d="m46.652 54.38c1.111.273 1.741 1.656 1.406 3.086-.04.174-.094.338-.157.496-1.354-.246-2.652-.734-3.881-1.398.006-.029.007-.057.014-.086.334-1.432 1.506-2.372 2.618-2.098"/><path d="m41.41 50.795c.925.473 1.155 1.924.516 3.242-.145.299-.324.559-.521.785-.994-.795-1.916-1.689-2.75-2.633.659-1.224 1.863-1.849 2.755-1.394"/><path d="m37.36 46.98c.585.451.603 1.439.041 2.209-.18.248-.399.436-.631.57-.528-.773-.994-1.547-1.393-2.307.569-.677 1.43-.897 1.983-.472"/></g><path fill="#ff94a4" d="m32 39.33c3.01 0 5.444 10.131 5.444 14.592 0 4.463-2.438 8.08-5.444 8.08-3.01 0-5.443-3.617-5.443-8.08 0-4.461 2.436-14.592 5.443-14.592"/><g fill="#ab7dcc"><path d="m32 38.1c2.862 0 5.183 9.645 5.183 13.891 0 4.248-2.321 7.691-5.183 7.691-2.862 0-5.183-3.443-5.183-7.691.001-4.247 2.321-13.891 5.183-13.891"/><path d="m15.636 20.695c0-8.543 4.546-18.695 16.364-18.695 11.819 0 16.366 10.152 16.366 18.695 0 15.992-6.851 22.691-16.366 22.691-9.514.001-16.364-6.698-16.364-22.691"/></g><circle fill="#fff" cx="24.915" cy="21.439" r="6.228"/><circle fill="#3e4347" cx="24.915" cy="21.439" r="4"/><circle fill="#fff" cx="40.3" cy="21.439" r="6.228"/><circle fill="#3e4347" cx="40.3" cy="21.439" r="4"/><g fill="#79569e"><path d="m39.09 31.21c-.594-.248-1.26-.518-1.871-.91-.617-.385-1.154-.889-1.575-1.438-.843-1.107-1.301-2.346-1.663-3.576.66 1.096 1.429 2.148 2.375 2.875.473.361.979.625 1.516.789.536.168 1.107.244 1.744.33l-.526 1.93"/><path d="m32.28 36.611c-.085-.635-.16-1.207-.329-1.742-.163-.537-.428-1.043-.789-1.516-.726-.945-1.779-1.715-2.876-2.373 1.231.361 2.47.818 3.578 1.66.549.422 1.053.959 1.438 1.576.392.611.661 1.277.908 1.871l-1.93.524"/><path d="m34.13 31.05c3.729-3.654 9.237-4.098 11.561-1.727 2.324 2.369 1.184 7.254-2.544 10.908-3.729 3.656-8.638 4.699-10.962 2.328-2.325-2.368-1.786-7.853 1.945-11.509"/></g><ellipse transform="matrix(-.7002-.7139.7139-.7002 40.97 89.94)" fill="#ff94a4" cx="39.37" cy="36.37" rx="6.01" ry="9.456"/><ellipse transform="matrix(-.7001-.7141.7141-.7001 41.727 91.82)" fill="#cc4a5d" cx="40.15" cy="37.15" rx="3.874" ry="6.674"/><path fill="#3e4347" d="m37.42 34.391c1.782-1.746 3.913-2.463 4.759-1.602s.086 2.977-1.697 4.723c-1.782 1.75-3.914 2.467-4.758 1.605-.846-.863-.086-2.978 1.696-4.726"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22.3 35.7c10.7 2.4 7.3 8.6-1.8 8.1-9.2-.5-15.9-19.4-16-22.8-.2-3.5 10.1 13 17.8 14.7" fill="#c28fef"/><path d="m4.5 21.2c2.7 3.6 8.5 14.1 14.1 16.1 5.5 2 6.8 4.6 5.6 6.3-1.1.2-2.3.3-3.6.2-9.1-.5-16.1-17.6-16.1-22.6" fill="#ffe2b3"/><path d="m25.1 34.9c8.9-6.4 11.3.3 4.8 6.7-6.5 6.5-25-1.2-27.7-3.3-2.6-2.2 16.5 1.2 22.9-3.4" fill="#c28fef"/><path d="m2.5 38.5c4.5.4 16.2 3.1 21.4.3 5.2-2.7 8-2 8.4.1-.6.9-1.3 1.9-2.3 2.8-6.5 6.3-24.3-.3-27.5-3.2" fill="#ffe2b3"/><path d="m16.1 44.4c5.8-9 13.9-6.2 10.4 2-3.6 8.3-17.5 9.6-20.8 8.4-3.3-1.1 6.2-4 10.4-10.4" fill="#c28fef"/><path d="m26.5 46.4c-3.6 8.3-16.6 10.3-20.7 8.5-.1-.1-.2-.1-.3-.1.2-1.4 8-3.1 12.4-8 3.6-4 7.3-5 9.5-4-.1.9-.3 2.2-.9 3.6" fill="#ffe2b3"/><path d="m16.1 61.9c3.8 1 15.6-6 16.5-15 .8-8.8-8.3-9.5-11.1.9-2 7.4-8.8 13.2-5.4 14.1" fill="#c28fef"/><path d="m32.8 47c-.8 8.5-10.9 15.4-16 15-1.2-1.9 5.7-5.9 9-12.1 2-3.6 4.5-5.5 6.6-5.9.3.8.5 1.9.4 3" fill="#ffe2b3"/><path d="m41.7 35.7c-10.7 2.4-7.3 8.6 1.8 8.1 9.2-.5 15.9-19.4 16-22.8.2-3.5-10.1 13-17.8 14.7" fill="#c28fef"/><path d="m59.5 21.2c-2.7 3.6-8.5 14.1-14.1 16.1-5.5 2-6.8 4.6-5.6 6.3 1.1.2 2.3.3 3.6.2 9.1-.5 16.1-17.6 16.1-22.6" fill="#ffe2b3"/><path d="m38.9 34.9c-8.9-6.4-11.3.3-4.8 6.7 6.5 6.5 25-1.2 27.7-3.3 2.6-2.2-16.5 1.2-22.9-3.4" fill="#c28fef"/><path d="m61.5 38.5c-4.5.4-16.2 3.1-21.4.3-5.2-2.7-8-2-8.4.1.6.9 1.3 1.9 2.3 2.8 6.5 6.3 24.3-.3 27.5-3.2" fill="#ffe2b3"/><path d="m47.9 44.4c-5.8-9-13.9-6.2-10.4 2 3.6 8.3 17.5 9.6 20.7 8.5 3.4-1.2-6.1-4.1-10.3-10.5" fill="#c28fef"/><path d="m37.5 46.4c3.6 8.3 16.6 10.3 20.7 8.5.1-.1.2-.1.3-.1-.2-1.4-8-3.1-12.4-8-3.6-4-7.3-5-9.5-4 .1.9.3 2.2.9 3.6" fill="#ffe2b3"/><path d="m47.9 61.9c-3.8 1-15.6-6-16.5-15-.8-8.8 8.3-9.5 11.1.9 2 7.4 8.8 13.2 5.4 14.1" fill="#c28fef"/><path d="m31.2 47c.8 8.5 10.9 15.4 16 15 1.2-1.9-5.7-5.9-9-12.1-2-3.6-4.5-5.5-6.6-5.9-.3.8-.5 1.9-.4 3" fill="#ffe2b3"/><path d="m15.6 21.8c0-26.4 32.7-26.4 32.7 0 0 16.5-6.9 23.4-16.4 23.4s-16.3-6.9-16.3-23.4" fill="#c28fef"/><g fill="#29251c"><circle cx="24.9" cy="30.9" r="3"/><circle cx="40.3" cy="30.9" r="3"/><path d="m32 39.4c-2.4 0-4.5-.8-4.5-1.8 0-.1 0-.2.1-.3.1-.1.2-.1.4-.1.2 0 .3.1.6.2.6.2 1.7.7 3.5.7 1.8 0 2.9-.5 3.4-.7.3-.1.4-.2.6-.2.2 0 .4.1.4.4 0 .9-2.1 1.8-4.5 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f41a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f41a.svg
index 302dfc0..fb691d4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f41a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f41a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffecd6"><path d="m11.382 4.317c-9.635-6.739-11.654 2.68-6.952 9.693 4.555-2.353 5.809-7.217 6.952-9.693"/><path d="m11.325 22.257c3.069-4.055 6.179-9.331 7.921-14.685-1.871-2.133-4.701-3.313-6.674-2.694-.743 2.771-2.452 4.754-4.324 6.871-1.127 1.275-2.026 2.732-3.172 3.881-1.783 3.462-.453 9.635 1.641 11.439 1.629-1.37 3.176-2.918 4.608-4.812"/><path d="m38.61 54.41c3.616 0 23.04 2.535 23.04-5.59 0-18.718-2.379-34.36-25.562-34.36-2.653 7.177-4.327 6.559-1.583-.047-1.576-5.02-8.814-8.62-14.463-6.45-1.502 5.135-4.225 10.36-7.143 14.216-1.819 2.405-3.732 4.602-5.867 6.61.001 16.21 17.62 25.621 31.578 25.621"/></g><path fill="#ddb199" d="m12.976 4.779c0 0-1.051.083-1.953-.708-2.602 6.333-6.96 9.365-6.96 9.365 1.124 1.59.568 3.309.568 3.309 1.343-1.426 6.142-5.466 8.345-11.966"/><path fill="#29251c" d="m24.719 29.862c-1.819 1.99 33.804 32.31 33.804 29.3 0-3.436-.537-3.491-.621-5.279-.082-1.786 2.646-8.806-.371-13.04-1.281-1.798-6.282-8.642-7.521-10.544-1.241-1.902-10.334-4.754-12.4-5.01-2.066-.26-11.08 2.594-12.895 4.581"/><path fill="#c1875d" d="m58.752 48.711c-1.018-.751-8.906-.854-12.854-2.766-5.732-2.778-10.472-4.675-12.02-8.944-1.428-3.911-2.422-8.349-2.59-10.342-.096-1.135-6.332 2.947-6.563 3.203-1.817 1.989-1.607 5.969.376 10.724 1.984 4.753 8.536 10.702 9.586 10.816 1.049.111 8.352 6.121 11.243 6.555 2.896.431 3.557.235 4.3.84.745.604 2.15 1.84 2.977 1.84.521 0 2.578 1.439 3.939.726 1.596-.244 1.604-3.038 1.406-6.02-.18-2.736 1.547-5.642.207-6.63"/><path fill="#ffd6bb" d="m52.16 58.22c-5.512-.467-22.598-8.767-26.04-17.736-1.492-3.886.462-9.461.295-11.46-.096-1.135-1.463.574-1.695.83-1.818 1.988-3.955 7.737-2.066 12.526 4.892 12.402 26.48 19.617 30.663 19.617 2.723 0 4.208-.758 4.208-.758s-1.747-2.714-5.362-3.02"/><g fill="#ddb199"><path d="m20.753 7.725c-1.507.25-2.267-.889-2.267-.889-2.222 7.01-9.691 17.36-12.451 19.457.903 1.343 1.034 3.737 1.034 3.758 3.483-3.368 11.437-12.833 13.684-22.326"/><path d="m31 27.07c0 0 3.689-5.416 6.344-12.592 0 0-1.957.104-3.104-.764-2.743 6.605-7.943 14.239-7.943 14.239l4.703-.883"/><path d="m23.819 31.688c.514-.69 5.911-3.233 9.812-3.497 13.08-.887 24.04 13.583 24.732 20.46.156 1.569-1.381 3.664-1.389 4.95-.021 3.339 1.615 5.203 1.615 5.203s.072-2.996 1.162-5.082c.214-.411 2.271-3.601 2.248-5.105-.209-13.516-16.723-25.344-26.551-24.654-6.119.43-10.22 4.613-10.726 5.057-1.735 1.526-1.659 3.688-.899 2.669"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffecd6"><path d="m11.4 4.3c-9.7-6.7-11.7 2.7-7 9.7 4.6-2.3 5.8-7.2 7-9.7"/><path d="m11.3 22.3c3.1-4.1 6.2-9.3 7.9-14.7-1.9-2.1-4.7-3.3-6.7-2.7-.7 2.8-2.5 4.8-4.3 6.9-1.1 1.3-2 2.7-3.2 3.9-1.8 3.5-.5 9.6 1.6 11.4 1.7-1.4 3.3-2.9 4.7-4.8"/><path d="m38.6 54.4c3.6 0 23 2.5 23-5.6 0-18.7-2.4-34.4-25.6-34.4-2.7 7.2-4.3 6.6-1.6 0-1.5-5-8.7-8.6-14.4-6.4-1.5 5.1-4.2 10.4-7.1 14.2-1.8 2.4-3.7 4.6-5.9 6.6 0 16.2 17.7 25.6 31.6 25.6"/></g><path d="m13 4.8c0 0-1.1.1-2-.7-2.6 6.3-7 9.4-7 9.4 1.1 1.6.6 3.3.6 3.3 1.4-1.5 6.2-5.5 8.4-12" fill="#ddb199"/><path d="m24.7 29.9c-1.8 2 33.8 32.3 33.8 29.3 0-3.4-.5-3.5-.6-5.3-.1-1.8 2.6-8.8-.4-13-1.3-1.8-6.3-8.6-7.5-10.5-1.2-1.9-10.3-4.8-12.4-5-2.1-.4-11.1 2.5-12.9 4.5" fill="#29251c"/><path d="m58.8 48.7c-1-.8-8.9-.9-12.9-2.8-5.7-2.8-10.5-4.7-12-8.9-1.4-3.9-2.4-8.3-2.6-10.3-.1-1.1-6.3 2.9-6.6 3.2-1.8 2-1.6 6 .4 10.7 2 4.8 8.5 10.7 9.6 10.8 1 .1 8.4 6.1 11.2 6.6 2.9.4 3.6.2 4.3.8.7.6 2.2 1.8 3 1.8.5 0 2.6 1.4 3.9.7 1.6-.2 1.6-3 1.4-6-.1-2.7 1.6-5.6.3-6.6" fill="#c1875d"/><path d="m52.2 58.2c-5.5-.5-22.6-8.8-26-17.7-1.5-3.9.5-9.5.3-11.5-.1-1.1-1.5.6-1.7.8-1.8 2-4 7.7-2.1 12.5 4.8 12.5 26.4 19.7 30.6 19.7 2.7 0 4.2-.8 4.2-.8s-1.7-2.7-5.3-3" fill="#ffd6bb"/><g fill="#ddb199"><path d="m20.8 7.7c-1.5.2-2.3-.9-2.3-.9-2.2 7-9.7 17.4-12.5 19.5.9 1.3 1 3.7 1 3.8 3.6-3.4 11.5-12.9 13.8-22.4"/><path d="m31 27.1c0 0 3.7-5.4 6.3-12.6 0 0-2 .1-3.1-.8-2.7 6.6-7.9 14.3-7.9 14.3l4.7-.9"/><path d="m23.8 31.7c.5-.7 5.9-3.2 9.8-3.5 13.1-.9 24 13.6 24.7 20.5.2 1.6-1.4 3.7-1.4 5 0 3.3 1.6 5.2 1.6 5.2s.1-3 1.2-5.1c.2-.4 2.3-3.6 2.2-5.1-.1-13.6-16.6-25.4-26.5-24.7-6.1.4-10.2 4.6-10.7 5.1-1.7 1.4-1.6 3.6-.9 2.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f41b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f41b.svg
index c969b9d..64bcedb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f41b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f41b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m35.907 52.986c0 0 1.867 2.178 6.881.555 1.165-.377-3.591 6.32-4.329 7.5.929-1.029 7.927-7.299 5.633-9.01-1.444-1.08-5.405.035-5.881-.557l-2.304 1.514"/><path d="m41.867 47.867c0 0 3.054 3.561 11.254.908 1.906-.615-5.873 10.336-7.079 12.266 1.519-1.684 12.964-11.936 9.212-14.74-2.362-1.764-8.84.059-9.619-.908l-3.768 2.474"/><path d="m35.35 11.11l-.962-.07c.146-2.053-1.479-4.738-4.132-5.463l.248-.957c2.871.787 5.04 3.699 4.846 6.49"/><path d="m44.979 10.564l-.118-.98c2.01-.256 4.284-2.4 4.468-5.184l.962.068c-.2 3.01-2.582 5.747-5.312 6.096"/><path d="m32.2 3.508c.866 1.018.756 2.555-.247 3.436-1 .879-2.514.77-3.379-.248-.866-1.018-.756-2.555.246-3.434 1-.881 2.512-.772 3.38.246"/><path d="m51.701 5.93c-.813 1.061-2.315 1.252-3.362.428-1.044-.829-1.23-2.358-.419-3.419.814-1.061 2.318-1.254 3.362-.426 1.045.827 1.234 2.356.419 3.417"/></g><path fill="#5e51a7" d="m19.1 54.12c.518 3.113-13.402 5.03-16.647-.883-1.385-2.523.241-4.68 7.598-4.217 9.586.6 8.343.852 9.05 5.1"/><path fill="#b5aada" d="m23.535 54.01c.641 3.686-16.529 5.961-20.531-1.049-1.706-2.988.298-5.545 9.371-4.996 11.824.713 10.289 1.012 11.16 6.05"/><path fill="#5e51a7" d="m29.411 53.55c.785 4.406-20.278 7.125-25.19-1.25-2.095-3.574.365-6.627 11.496-5.973 14.508.85 12.625 1.207 13.693 7.223"/><path fill="#b5aada" d="m35.33 52.9c.898 5.344-23.21 8.637-28.838-1.516-2.396-4.334.418-8.03 13.162-7.244 16.608 1.034 14.454 1.467 15.676 8.76"/><path fill="#5e51a7" d="m39.02 52.1c.911 6.416-23.53 10.367-29.23-1.82-2.43-5.201.422-9.643 13.338-8.693 16.836 1.239 14.65 1.759 15.89 10.513"/><path fill="#b5aada" d="m45.59 49.19c.915 7.969-25.681 14.813-31.403-.33-2.439-6.461 2.501-12.1 15.473-10.922 16.903 1.537 14.684.375 15.93 11.252"/><path fill="#5e51a7" d="m50.53 47.613c.896 7.967-25.23 14.813-30.853-.33-2.398-6.461 2.455-12.1 15.199-10.922 16.61 1.537 14.429.377 15.654 11.252"/><path fill="#b5aada" d="m52.796 43.887c.781 7.967-21.951 14.813-26.843-.33-2.084-6.461 2.138-12.1 13.226-10.924 14.449 1.539 12.551.377 13.617 11.254"/><path fill="#5e51a7" d="m55.26 37.24c.462 10.549-23.07 14.869-29.19-.381-2.886-7.197 13.974-11.507 20.527-11.507 13.477 0 8.421 6.445 8.661 11.888"/><path fill="#b5aada" d="m56.18 24.799c.512 11.404-22.705 19.313-29.488 5.742-5.188-10.379 2.911-21.22 11.496-22.21 13.998-1.615 17.743 10.918 17.992 16.467"/><ellipse fill="#5e51a7" cx="45.82" cy="21.621" rx="4.5" ry="4.658"/><ellipse fill="#fcfcfa" cx="45.821" cy="21.621" rx="3.467" ry="3.682"/><ellipse fill="#3e4347" cx="45.821" cy="21.621" rx="2.384" ry="2.531"/><ellipse fill="#5e51a7" cx="32.829" cy="21.621" rx="4.5" ry="4.658"/><ellipse fill="#fcfcfa" cx="32.83" cy="21.621" rx="3.467" ry="3.682"/><g fill="#3e4347"><ellipse cx="32.83" cy="21.621" rx="2.384" ry="2.531"/><path d="m59.6 45.539c-.512 0-.948-.391-.995-.91-.496-5.49-3.991-7.02-6.544-8.131-.252-.109-.489-.213-.708-.314-.501-.23-.721-.824-.489-1.326s.823-.721 1.327-.49c.207.096.432.193.67.299 2.668 1.164 7.134 3.111 7.736 9.783.05.551-.356 1.037-.906 1.086-.031.003-.061.003-.091.003"/><path d="m27.864 39.26c-.332 0-.656-.166-.847-.467-2.75-4.359-4.959-6.947-6.734-9.02-2.623-3.072-4.206-4.926-4.206-9.09 0-.553.447-1 1-1s1 .447 1 1c0 3.422 1.168 4.789 3.727 7.787 1.722 2.02 4.079 4.777 6.905 9.258.295.467.155 1.084-.313 1.379-.165.103-.349.154-.532.154"/><ellipse cx="14.97" cy="21.02" rx="1.766" ry="1.813"/><ellipse cx="15.652" cy="23.885" rx="1.767" ry="1.811"/><ellipse cx="16.737" cy="19.387" rx="2.101" ry="2.156"/><path d="m61.52 44.523c.795 1.854.58 3.746-.483 4.225-1.061.479-2.566-.635-3.363-2.486-.795-1.854-.579-3.746.482-4.225 1.062-.48 2.568.633 3.364 2.486"/><path d="m18.597 52.15c-.477.59-4.03-.047-5.476 1.033-2.294 1.715 4.103 7.783 5.03 8.813-.738-1.18-5.05-7.982-3.862-7.686 4.065 1.02 6.625-.494 6.625-.494l-2.318-1.666"/><path d="m30.567 45.896c-.778.967-6.591-.072-8.953 1.691-3.752 2.804 6.708 12.729 8.228 14.413-1.207-1.93-8.259-13.06-6.316-12.568 6.648 1.666 10.835-.807 10.835-.807l-3.794-2.729"/><path d="m9.437 53.59c-.358.447-3.037-.031-4.126.781-1.729 1.291 3.091 5.865 3.791 6.641-.556-.889-3.806-6.02-2.91-5.791 3.063.768 4.992-.373 4.992-.373l-1.747-1.258"/></g><path fill="#5e51a7" d="m39.32 35.06c-2.55 0-4.966-.711-6.805-2-1.893-1.33-2.937-3.094-2.937-4.971v-.736l.698.16c.042.01 4.356.992 9.04.992 4.691-.002 9.01-.988 9.06-.998l.696-.16v.736c0 3.846-4.371 6.975-9.742 6.977h-.004"/><path fill="#fff" d="m47.994 28.521c0 2.1-3.604 5.357-8.668 5.361-5.066 0-8.67-3.256-8.673-5.355 0 0 3.865 1.01 8.673 1.01 4.803 0 8.668-1.012 8.668-1.012"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m52.4 57.6c-1.5-1.5-.9-3.4.1-4.4 1-1 2.9-1.6 4.4-.1 1.5 1.5 2.1 4.5 1 5.5-1 1.1-4 .5-5.5-1"/><path d="m55.9 43.4c-1.5-1.5-.9-3.4.1-4.4 1-1 2.9-1.6 4.4-.1 1.5 1.5 2.1 4.5 1 5.6-1 1-4 .4-5.5-1.1"/></g><path d="M12.9,57.6C8.3,57.6,2,56.5,2,51.7c0-5.3,5.2-10.3,10.9-10.3V57.6z" fill="#5b7f32"/><path d="m23.9 47.9c0 9-6.3 9.8-10.9 9.8s-9.2-2.1-9.2-5.9c0-4.5 4.6-10.3 9.2-10.3 4.5 0 10.9 1.9 10.9 6.4" fill="#94d82a"/><path d="m21.2 57.6c-15.9 0-16-19.1.3-19.1l-.3 19.1" fill="#5b7f32"/><path d="m31.1 46.1c0 10.6-5.6 11.6-10 11.6-14.4 0-14-19.1.3-19.1 4.5-.1 9.7 2.2 9.7 7.5" fill="#94d82a"/><path d="m30.8 57.6c-17.1 0-16.4-20 0-20v20" fill="#5b7f32"/><path d="m42.4 45.5c0 11.1-6.5 12.1-11.6 12.1-14.1 0-14.1-20 0-20 5 0 11.6 2.4 11.6 7.9" fill="#94d82a"/><path d="m44.7 57.6c-21.4 0-19.4-23-1.5-23l1.5 23" fill="#5b7f32"/><path d="m57.7 45.2c0 11.1-7.1 12.5-13 12.5-18 0-18-23.4 0-23.4 5.9-.1 13 5.3 13 10.9" fill="#94d82a"/><path d="m57.4 43.3c0 0-3.6 4.4-9.1 5.1-5.6.7-20-3.2-11-15.7l20.1 10.6" fill="#5b7f32"/><path d="m59.7 38.2c0 5.7-6.6 8.2-12.1 8.2-5.5 0-12.1-2.5-12.1-8.2 0-5.7 6.6-12.5 12.1-12.5 5.6 0 12.1 6.8 12.1 12.5" fill="#94d82a"/><g fill="#3e4347"><path d="m31.9 54.8c2.1-2.1 4.2-1.8 5.3-.7 1 1 1.4 3.2-.7 5.3-2.1 2.1-5.8 3.3-6.9 2.3-1.1-1.1.2-4.8 2.3-6.9"/><path d="m34 33.6c2.1 2.1 1.8 4.2.7 5.3-1 1-3.2 1.4-5.3-.7s-3.3-5.8-2.3-6.8c1.1-1.1 4.8.1 6.9 2.2"/><path d="m20.8 55.3c1.8-1.8 3.6-1.5 4.4-.6.9.9 1.2 2.7-.6 4.4-1.8 1.8-4.9 2.8-5.8 1.9-.8-.8.2-4 2-5.7"/><path d="m12 55.6c1.5-1.5 3-1.3 3.8-.5.7.7 1 2.3-.5 3.8-1.5 1.5-4.2 2.4-4.9 1.6-.8-.7.1-3.4 1.6-4.9"/></g><g fill="#5b7f32"><path d="m28.4 40l-1 1 1 1 .9-1z"/><path d="m25.4 46.1l-.9 1 .9 1 1-1z"/><path d="m15.6 41l-1 1 1 .9 1-.9z"/><path d="m8.1 45.2l-.9.9.9 1 1-1z"/><path d="m6.5 47.4l-1 1 1 1 1-1z"/><path d="m34.6 44.5l-1 1 1 1 1-1z"/><path d="m37.1 47.6l-1 1 1 .9 1-.9z"/><path d="m55 47.1l-1 1 1 .9.9-.9z"/><path d="m54.3 39.1l-1 .9 1 1 .9-1z"/><path d="m40.3 36.3l-1 .9 1 1 .9-1z"/><path d="m24.5 40.5l-2 1.9 2 2 1.9-2z"/><path d="m56.2 34.3l-1.9 2 1.9 1.9 1.9-1.9z"/><path d="m14.6 43.7l-1.9 2 1.9 1.9 2-1.9z"/></g><g fill="#3e4347"><path d="m40.5 10.3l-.9-.1c.1-1.9-1.3-4.3-3.8-5l.2-.9c2.7.8 4.7 3.4 4.5 6"/><path d="m37.6 3.4c.8.9.7 2.3-.2 3.1-.9.8-2.3.7-3.1-.2-.8-.9-.7-2.3.2-3.1.9-.9 2.3-.8 3.1.2"/><path d="m49.2 9.8l-.1-.9c1.9-.2 3.9-2.2 4.1-4.7l.9.1c-.2 2.7-2.4 5.2-4.9 5.5"/><path d="m55.4 5.6c-.7 1-2.1 1.1-3.1.4-1-.8-1.1-2.1-.4-3.1.7-1 2.1-1.1 3.1-.4.9.7 1.1 2.1.4 3.1"/></g><path d="m55.7 29.7c-2.4 7.5-16.4 7.9-18.3 3l18.3-3" fill="#5b7f32"/><path d="M59.2,22.4c0.5,10.4-20.7,17.5-26.9,5.2C27.6,18.2,35,8.4,42.8,7.5C55.6,6,59,17.4,59.2,22.4z" fill="#94d82a"/><g fill="#3e4347"><path d="m51.3 18.3c0 1.7-.9 3-2 3-1.1 0-2-1.3-2-3 0-1.7.9-3 2-3 1.1 0 2 1.4 2 3"/><ellipse cx="37.4" cy="18.3" rx="2" ry="3"/><path d="m43.3 29.3c-2.4 0-4.5-.9-4.5-1.8 0-.1 0-.2.1-.3.1-.1.2-.1.4-.1.2 0 .3.1.6.2.6.2 1.7.7 3.5.7 1.8 0 2.9-.5 3.4-.7.3-.1.4-.2.6-.2.2 0 .4.1.4.4 0 .9-2.1 1.8-4.5 1.8"/></g><g opacity=".7" fill="#ea83a3"><ellipse cx="53.7" cy="23.8" rx="3.2" ry="2.5"/><ellipse cx="34.4" cy="23.7" rx="2.6" ry="1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f41c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f41c.svg
index fbcd9e8..2f90d06 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f41c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f41c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#555c60"><path d="m38.494 32.826c9.406-3.346 21.662 2.668 21.662 2.668s-5.436 12.307-14.838 15.65c-9.406 3.346-17.336 1.523-19.221-3.535-1.882-5.058 2.995-11.437 12.397-14.783"/><path d="m40.44 39.979c-1.086.441-7.582 3.145-9.318 4.49-5.213 4.045.494 14.04 1 16.08-.131-2.105-1.463-11.4-.127-12.789 1.922-2 10.465-4.1 10.465-4.1l-2.02-3.681"/><path d="m21.252 40.41c-.67.398-4.65 2.814-5.486 3.766-2.504 2.857 5.541 6.787 6.68 7.701-.875-1.01-5.311-5.332-4.799-6.236.734-1.305 6.506-3.768 6.506-3.768l-2.901-1.463"/><path d="m47.19 38.14c-1.084.443-7.582 3.145-9.318 4.492-5.213 4.045.496 14.04 1 16.08-.131-2.105-1.461-11.398-.127-12.787 1.924-2 10.465-4.1 10.465-4.1l-2.02-3.683"/><ellipse cx="22.618" cy="37.17" rx="8.47" ry="8.277"/></g><path fill="#6c767a" d="m43.631 43.3c0 0 3.967 4.523 14.623 1.154 2.477-.783-7.633 13.13-9.201 15.576 1.975-2.137 16.846-15.16 11.973-18.719-3.072-2.238-11.488.076-12.5-1.152l-4.895 3.141"/><path fill="#555c60" d="m43.18 43.04c0 0 5.439 3.141 14.08 1.023 2.521-.619-6.641 13.51-8.209 15.961 1.975-2.137 15.564-14.742 10.691-18.301-3.07-2.24-10.623-.92-11.635-2.148l-4.927 3.465"/><path fill="#6c767a" d="m36.863 45.27c0 0 3.969 4.521 14.623 1.154 2.477-.785-7.631 13.13-9.199 15.576 1.975-2.137 16.848-15.16 11.971-18.721-3.07-2.236-11.486.076-12.498-1.152l-4.897 3.143"/><g fill="#555c60"><path d="m36.416 45.01c0 0 5.439 3.143 14.08 1.025 2.521-.619-6.641 13.51-8.209 15.961 1.975-2.137 15.566-14.742 10.691-18.303-3.07-2.24-10.623-.92-11.635-2.148l-4.927 3.465"/><path d="m15.566 13.893c-1.652-1.971-2.955-4.227-4.584-6.119-.802-.946-1.681-1.819-2.642-2.415-.965-.603-1.971-.853-2.91-.705-.746.119-1.447-.375-1.57-1.104s.384-1.415 1.13-1.532c.082-.014.162-.018.242-.018l.104.004c1.668.037 3.203.816 4.254 1.785 1.082.973 1.846 2.1 2.514 3.229 1.334 2.269 2.187 4.658 3.462 6.875"/><path d="m17.369 13.893c1.275-2.217 2.127-4.605 3.463-6.875.668-1.129 1.43-2.256 2.508-3.229 1.053-.969 2.592-1.748 4.26-1.785l.095-.004c.754-.018 1.379.568 1.395 1.307.021.736-.578 1.348-1.332 1.365-.084.002-.172-.004-.252-.018-.941-.148-1.949.102-2.91.705-.963.596-1.842 1.469-2.646 2.414-1.628 1.893-2.929 4.149-4.581 6.12"/></g><g fill="#6c767a"><path d="m16.467 8.607c-7.07 0-12.805 5.604-12.805 12.514 0 8.184 12.852 16.689 12.848 16.688 0 .002 12.762-8.494 12.762-16.688-.001-6.91-5.735-12.514-12.805-12.514"/><ellipse cx="24.404" cy="20.93" rx="6.527" ry="6.379"/></g><ellipse fill="#fcfcfa" cx="24.404" cy="20.93" rx="5.658" ry="5.725"/><ellipse fill="#3e4347" cx="24.404" cy="20.93" rx="3.889" ry="3.938"/><ellipse fill="#6c767a" cx="8.528" cy="20.93" rx="6.528" ry="6.379"/><ellipse fill="#fcfcfa" cx="8.526" cy="20.93" rx="5.657" ry="5.725"/><path fill="#3e4347" d="m12.416 20.93c0 2.174-1.742 3.938-3.891 3.938-2.145 0-3.889-1.764-3.889-3.938 0-2.172 1.744-3.934 3.889-3.934 2.149 0 3.891 1.762 3.891 3.934"/><path fill="#6c767a" d="m29.844 35.721c1.016-.746 7.082-5.262 8.535-7.123 4.357-5.59-4.85-14.404-5.934-16.412.711 2.17 4.229 10.684 2.971 12.457-4.082 5.752-9.254 8.08-9.254 8.08l3.682 2.996"/><path fill="#555c60" d="m29.699 36.09c1.016-.744 6.199-5.299 7.65-7.16 4.359-5.588-3.82-14.732-4.904-16.74.711 2.17 4.115 11.719 3.096 13.521-1.471 2.6-9.842 7.01-9.842 7.01l4 3.367"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#555c60"><path d="m38.5 32.8c9.4-3.3 21.7 2.7 21.7 2.7s-5.4 12.3-14.8 15.6c-9.4 3.3-17.3 1.5-19.2-3.5-2-5 2.9-11.4 12.3-14.8"/><path d="m40.4 40c-1.1.4-7.6 3.1-9.3 4.5-5.2 4 .5 14 1 16.1-.1-2.2-1.4-11.5-.1-12.8 1.9-2 10.5-4.1 10.5-4.1l-2.1-3.7"/><path d="m21.3 40.4c-.7.4-4.6 2.8-5.5 3.8-2.5 2.9 5.5 6.8 6.7 7.7-.9-1-5.3-5.3-4.8-6.2.7-1.3 6.5-3.8 6.5-3.8l-2.9-1.5"/><path d="m47.2 38.1c-1.1.4-7.6 3.1-9.3 4.5-5.2 4 .5 14 1 16.1-.1-2.1-1.5-11.4-.1-12.8 1.9-2 10.5-4.1 10.5-4.1l-2.1-3.7"/><ellipse cx="22.6" cy="37.2" rx="8.5" ry="8.3"/></g><path d="m43.6 43.3c0 0 4 4.5 14.6 1.2 2.5-.8-7.6 13.1-9.2 15.6 2-2.1 16.8-15.2 12-18.7-3.1-2.2-11.5.1-12.5-1.2l-4.9 3.1" fill="#6c767a"/><path d="m43.2 43c0 0 5.4 3.1 14.1 1 2.5-.6-6.6 13.5-8.2 16 2-2.1 15.6-14.7 10.7-18.3-3.1-2.2-10.6-.9-11.6-2.1l-5 3.4" fill="#555c60"/><path d="m36.9 45.3c0 0 4 4.5 14.6 1.2 2.5-.8-7.6 13.1-9.2 15.6 2-2.1 16.8-15.2 12-18.7-3.1-2.2-11.5.1-12.5-1.2l-4.9 3.1" fill="#6c767a"/><g fill="#555c60"><path d="m36.4 45c0 0 5.4 3.1 14.1 1 2.5-.6-6.6 13.5-8.2 16 2-2.1 15.6-14.7 10.7-18.3-3.1-2.2-10.6-.9-11.6-2.1l-5 3.4"/><path d="m15.6 13.9c-1.7-2-3-4.2-4.6-6.1-.8-1-1.7-1.8-2.7-2.4-1-.6-2-.9-2.9-.7-.7.1-1.4-.4-1.5-1.2s.3-1.4 1.1-1.5c.1 0 .2 0 .2 0h.1c1.7 0 3.2.8 4.3 1.8 1.1 1 1.8 2.1 2.5 3.2 1.3 2.3 2.2 4.7 3.5 6.9"/><path d="m17.4 13.9c1.3-2.2 2.1-4.6 3.5-6.9.7-1.1 1.4-2.3 2.5-3.2 1.1-1 2.6-1.7 4.3-1.8h.1c.8 0 1.4.6 1.4 1.3 0 .7-.6 1.3-1.3 1.4-.1 0-.2 0-.3 0-.9-.1-1.9.1-2.9.7-1 .6-1.8 1.5-2.6 2.4-1.8 1.9-3.1 4.1-4.7 6.1"/></g><g fill="#6c767a"><path d="m16.5 8.6c-7.1 0-12.8 5.6-12.8 12.5 0 8.2 12.9 16.7 12.8 16.7 0 0 12.8-8.5 12.8-16.7 0-6.9-5.8-12.5-12.8-12.5"/><ellipse cx="24.4" cy="20.9" rx="6.5" ry="6.4"/></g><ellipse cx="24.4" cy="20.9" rx="5.7" ry="5.7" fill="#fcfcfa"/><ellipse cx="24.4" cy="20.9" rx="3.9" ry="3.9" fill="#3e4347"/><ellipse cx="8.5" cy="20.9" rx="6.5" ry="6.4" fill="#6c767a"/><ellipse cx="8.5" cy="20.9" rx="5.7" ry="5.7" fill="#fcfcfa"/><path d="m12.4 20.9c0 2.2-1.7 3.9-3.9 3.9-2.1 0-3.9-1.8-3.9-3.9 0-2.2 1.7-3.9 3.9-3.9 2.2 0 3.9 1.8 3.9 3.9" fill="#3e4347"/><path d="m29.8 35.7c1-.7 7.1-5.3 8.5-7.1 4.4-5.6-4.8-14.4-5.9-16.4.7 2.2 4.2 10.7 3 12.5-4.1 5.8-9.3 8.1-9.3 8.1l3.7 2.9" fill="#6c767a"/><path d="m29.7 36.1c1-.7 6.2-5.3 7.6-7.2 4.4-5.6-3.8-14.7-4.9-16.7.7 2.2 4.1 11.7 3.1 13.5-1.5 2.6-9.8 7-9.8 7l4 3.4" fill="#555c60"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f41d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f41d.svg
index 3b8962e..eb1819b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f41d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f41d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3f3438" d="M53.24 49.886 62 60.795 48.703 56.52z"/><path fill="#ffce31" d="m51.03 30.786l-.242 2.564 1.87-1.798-.488 2.538 2.05-1.609-.78 2.464 2.231-1.351-1.091 2.345 2.397-1.041-1.417 2.172 2.53-.68-1.74 1.93 2.6-.29-2.01 1.645 2.612.097-2.23 1.348 2.571.448-2.391 1.046 2.497.766-2.507.82 2.39 1.12-2.58.526 2.23 1.384-2.631.22 2.051 1.64-2.64-.08 1.85 1.857-2.61-.377 1.63 2.05-2.557-.65 1.397 2.2-2.47-.9 1.171 2.33-2.371-1.14.94 2.433-2.26-1.353.713 2.506-2.122-1.546.479 2.557-1.97-1.727.26 2.594-1.828-1.881.042 2.597-1.664-2.02-.168 2.6-1.502-2.144-.374 2.574-1.317-2.25-.581 2.537-1.14-2.347-.778 2.49-.96-2.43-.96 2.43-.77-2.49-1.14 2.348-.578-2.538-1.322 2.25-.377-2.574-1.493 2.144-.17-2.6-1.665 2.03.041-2.608-1.824 1.882.258-2.594-1.98 1.727.483-2.557-2.122 1.544.709-2.504-2.253 1.351.939-2.431-2.373 1.14 1.171-2.33-2.473.9 1.4-2.204-2.551.654z"/><path fill="#3f3438" d="m10.896 39.65l36.404-11.824-.487 2.533 2.048-1.605-.771 2.466 2.22-1.353-1.08 2.343 2.392-1.04-1.412 2.17 2.519-.681-1.732 1.934 2.598-.293-2.01 1.648 2.607.102-2.227 1.34 2.567.452-2.39 1.046 2.502.762-2.502.828 2.38 1.114-2.579.528 2.229 1.389-2.63.221 2.055 1.64-2.637-.09 1.848 1.86-2.616-.373 1.633 2.046-2.553-.653 1.398 2.21-2.468-.91 1.17 2.334-2.376-1.14.939 2.436-2.253-1.359.71 2.509-2.12-1.549.479 2.559-1.977-1.72.258 2.59-1.82-1.88.04 2.598-1.664-2.02-.166 2.594-1.499-2.14-.378 2.576-1.313-2.256-.585 2.54-1.14-2.347-.776 2.487-.959-2.422-.959 2.422-.771-2.487-1.145 2.347-.575-2.54-1.323 2.256-.378-2.576-1.489 2.15-.177-2.603-1.662 2.023.039-2.6-1.824 1.88.262-2.59-1.981 1.72.484-2.559-2.121 1.549.705-2.51-2.253 1.35.939-2.429-2.371 1.14 1.17-2.331-2.475.91 1.403-2.21-2.556.65 1.63-2.047-2.612.377 1.848-1.86-2.637.08 2.051-1.634-2.628-.221 2.232-1.385-2.586-.527 2.386-1.115z"/><g fill="#c9e4f2"><path d="m60.05 4.332c-3.603-4.513-10.246-2.28-14.839 4.994-4.595 7.272-7.952 19.966-7.952 19.966s15.536 2.551 20.13-4.715c4.594-7.268 6.265-15.731 2.664-20.245"/><path d="m3.917 8.889c-3.541 4.339-1.892 12.395 2.62 19.291 4.518 6.894 19.788 4.308 19.788 4.308s-3.305-12.08-7.818-18.973c-4.517-6.898-11.05-8.967-14.59-4.626"/></g><path fill="#ffce31" d="m33.61 25.23l.975-1.805.339 2.02 1.086-1.748.21 2.037 1.193-1.675.064 2.05 1.318-1.585-.101 2.044 1.446-1.469-.287 2.03 1.587-1.32-.508 1.985 1.725-1.137-.741 1.911 1.856-.913-.99 1.798 1.966-.655-1.234 1.644 2.039-.373-1.463 1.451 2.07-.086-1.642 1.241 2.065.182-1.793 1.031 2.029.421-1.899.83 1.973.633-1.976.694 1.893.883-2.038.492 1.788 1.08-2.08.278 1.67 1.253-2.1.059 1.524 1.422-2.09-.153 1.37 1.569-2.065-.366 1.203 1.695-2.02-.559 1.024 1.8-1.95-.75.852 1.89-1.872-.93.667 1.96-1.778-1.096.481 2.02-1.667-1.257.297 2.048-1.55-1.401.104 2.07-1.414-1.531-.08 2.071-1.27-1.65-.268 2.05-1.116-1.751-.452 2.02-.954-1.84-.632 1.973-.793-1.914-.792 1.914-.623-1.973-.96 1.84-.453-2.02-1.115 1.751-.269-2.05-1.263 1.65-.09-2.072-1.411 1.532.101-2.07-1.54 1.4.289-2.048-1.668 1.258.48-2.02-1.777 1.099.666-1.96-1.871.93.851-1.89-1.955.746 1.031-1.796-2.02.556z"/><path fill="#3f3438" d="m9.237 33.14l1.773-.598-1.714-.747 1.824-.432-1.633-.908 1.854-.245-1.515-1.08 1.871-.02-1.367-1.263 1.857.213-1.187-1.426 1.812.456-.982-1.571 1.734.691-.766-1.681 1.631.906-.549-1.766 1.511 1.091-.341-1.814 1.382 1.244-.159-1.841 1.258 1.367.004-1.846 1.143 1.462.151-1.84 1.029 1.548.282-1.83.92 1.604.396-1.804.831 1.652.494-1.782.744 1.695.575-1.755.671 1.727.663-1.727.586 1.755.739-1.695.491 1.782.83-1.652.396 1.803.926-1.603.286 1.83 1.032-1.546.154 1.84 1.146-1.462v1.848l1.27-1.365-.16 1.845 1.385-1.245-.345 1.813 1.51-1.087-.55 1.763 1.629-.903-.768 1.679 1.735-.688-.987 1.568 1.814-.455-1.193 1.425 1.86-.214-1.369 1.254 1.87.03-1.521 1.08 1.86.236-1.631.908 1.821.433-1.714.746 1.774.597-1.776.657 1.706.81-1.83.493 1.62.96-1.86.32 1.523 1.111-1.888.149 1.415 1.243-1.9-.028 1.289 1.375-1.882-.21 1.15 1.488-1.857-.378 1.01 1.584-1.81-.544.84 1.667-1.75-.717.689 1.744-1.669-.874.511 1.799-1.581-1.028.336 1.839-1.476-1.17.16 1.86-1.352-1.31-.03 1.868-1.215-1.428-.216 1.85-1.067-1.54-.4 1.828-.91-1.639-.572 1.78-.747-1.717-.741 1.717-.578-1.78-.911 1.639-.401-1.828-1.07 1.54-.207-1.85-1.217 1.428-.029-1.869-1.352 1.311.155-1.87-1.474 1.178.337-1.838-1.582 1.026.516-1.798-1.675.874.687-1.742-1.751.714.849-1.674-1.812.551 1.01-1.581-1.855.374 1.15-1.484-1.882.21 1.287-1.376-1.893.029 1.412-1.245-1.889-.148 1.524-1.11-1.866-.32 1.623-.96-1.827-.494 1.705-.811z"/><path fill="#fcfcfa" d="m34.633 32.504c0 3.602-2.906 6.517-6.492 6.517-3.584 0-6.49-2.915-6.49-6.517 0-3.596 2.906-6.513 6.49-6.513 3.586 0 6.492 2.917 6.492 6.513"/><path fill="#3f3438" d="m33.619 32.504c0 2.476-1.998 4.481-4.465 4.481-2.461 0-4.461-2.01-4.461-4.481 0-2.474 2-4.48 4.461-4.48 2.467 0 4.465 2.01 4.465 4.48"/><ellipse fill="#fcfcfa" cx="14.845" cy="32.504" rx="5.41" ry="5.43"/><g fill="#3f3438"><ellipse cx="15.858" cy="32.504" rx="3.72" ry="3.734"/><path d="m36.32 16.912c-5.478-.146-8.747 1.894-10.291 6.01-.221.588.706.833.982.271 1.275-2.588 3.475-5.567 9.307-5.252 0 0 .001 0 .002 0 .635 0 .635-1.025 0-1.025"/><path d="m17.842 24.615c-3.768-3.925-7.543-4.761-11.582-2.933-.578.262-.097 1.082.499.879 2.758-.941 6.448-1.514 10.346 2.778 0 0 .001 0 .002 0 .45.444 1.184-.28.735-.724"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8fbedb"><g opacity=".6"><path d="m60.2 12.5c-3.4-3.6-9.6-1.8-13.9 4-4.3 5.8-7.5 20-7.5 20s14.6-2 18.9-7.8c4.3-5.8 5.8-12.6 2.5-16.2"/><path d="M3.8,12.5c3.4-3.6,9.6-1.8,13.9,4c4.3,5.8,7.5,20,7.5,20s-14.6-2-18.9-7.8C2,22.9,0.5,16.1,3.8,12.5z"/></g><g opacity=".6"><path d="M4.1,40.3c-1.2-9.9,26.6-2.6,26.6-2.6S6.9,62.9,4.1,40.3z"/><path d="m59.3 40.3c1.2-9.9-26.6-2.6-26.6-2.6s23.8 25.2 26.6 2.6"/></g></g><path d="m44 37.5c0 26.3-24 26.3-24 0 0-8.4 24-8.4 24 0" fill="#3e4347"/><g fill="#ffce31"><path d="m22.7 36.6c-.4.6-.7 1.3-.7 2 0 1.2.1 2.2.2 3.3 6.3.5 13.4.5 19.7 0 .1-1 .2-2.1.2-3.3 0-.8-.2-1.4-.7-2-6.1 1.4-12.7 1.4-18.7 0"/><path d="m23.3 47.3c.7 2 1.6 3.6 2.7 4.8 3.9-.6 8-.6 12 0 1.1-1.2 2-2.8 2.7-4.8-5.6-.4-11.8-.4-17.4 0"/><circle cx="32" cy="22" r="13.8"/></g><g fill="#3e4347"><path d="m28.4 9.7l-.9-.1c.1-1.9-1.3-4.3-3.8-5l.2-.9c2.7.8 4.6 3.4 4.5 6"/><path d="m25.5 2.8c.8.9.7 2.3-.2 3.1-.9.8-2.3.7-3.1-.2-.8-.9-.7-2.3.2-3.1.9-.9 2.3-.8 3.1.2"/><path d="m35.6 9.7l.9-.1c-.1-1.9 1.3-4.3 3.8-5l-.2-.9c-2.7.8-4.6 3.4-4.5 6"/><path d="m38.5 2.8c-.8.9-.7 2.3.2 3.1.9.8 2.3.7 3.1-.2.8-.9.7-2.3-.2-3.1-.9-.9-2.3-.8-3.1.2"/></g><path d="m44.3 22.6c0 3.3-2.2 6-5 6-2.8 0-5-2.7-5-6 0-3.3 2.2-6 5-6 2.7 0 5 2.7 5 6" fill="#fcfcfa"/><path d="m41.8 22.6c0 1.7-1.1 3-2.5 3-1.4 0-2.5-1.3-2.5-3 0-1.7 1.1-3 2.5-3 1.3 0 2.5 1.3 2.5 3" fill="#3f3438"/><path d="m29.7 22.6c0 3.3-2.2 6-5 6-2.8 0-5-2.7-5-6 0-3.3 2.2-6 5-6 2.8 0 5 2.7 5 6" fill="#fcfcfa"/><path d="m27.2 22.6c0 1.7-1.1 3-2.5 3-1.4 0-2.5-1.3-2.5-3 0-1.7 1.1-3 2.5-3 1.4 0 2.5 1.3 2.5 3" fill="#3f3438"/><g fill="#3e4347"><path d="m32 32.2c-2.4 0-4.5-.9-4.5-1.8 0-.1 0-.2.1-.3.1-.1.2-.1.4-.1.2 0 .3.1.6.2.6.2 1.7.7 3.5.7 1.8 0 2.9-.5 3.4-.7.2-.2.4-.2.5-.2.2 0 .4.1.4.4.1.9-2 1.8-4.4 1.8"/><path d="m31.1 62c0 0 1.1-3.7-.3-6.1-.2-.3 2.8-.8 3-.5 1.8 3.4-2.7 6.6-2.7 6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f41e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f41e.svg
index 5027135..0cbee73 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f41e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f41e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#6b3838" d="m6.598 50.38c5.31 3.199 14.702 5.324 25.402 5.324s20.09-2.125 25.402-5.324h-50.804"/><g fill="#3e4347"><path d="m8.112 48.48c-.321.266-.621.572-.902.889-.654.742-1.229 1.586-1.728 2.473-.714 1.271-1.257 2.68-1.628 4.127-.421 1.648-.612 3.379-.613 5.094-.002.508.37.932.813.932.444 0 .814-.424.814-.932 0-.809.044-1.613.137-2.412-.009.084-.019.166-.028.252.164-1.41.483-2.797.965-4.105-.027.074-.055.148-.083.223.426-1.15.976-2.242 1.642-3.234-.042.063-.086.127-.129.189.422-.621.885-1.211 1.404-1.727.084-.084.171-.168.261-.246-.056.047-.11.096-.165.146.021-.02.041-.037.063-.055.179-.146.313-.309.374-.557.058-.24.027-.504-.083-.719-.105-.211-.282-.367-.485-.43-.195-.06-.458-.044-.629.092"/><path d="m11.437 49.42c-.337.285-.644.613-.931.969-.668.82-1.246 1.75-1.715 2.734-.683 1.43-1.16 2.99-1.419 4.59-.18 1.104-.271 2.23-.271 3.352 0 .512.37.936.814.936.443 0 .813-.424.813-.936.002-.781.044-1.563.134-2.338-.009.084-.018.166-.027.248.157-1.328.457-2.635.912-3.873-.027.074-.055.15-.082.225.393-1.063.896-2.07 1.511-2.984-.042.064-.084.125-.126.191.367-.549.774-1.068 1.232-1.518.043-.041.085-.084.129-.121-.054.047-.109.096-.164.145.004-.004.008-.006.012-.012.055-.047.109-.096.165-.145.101-.115.17-.252.208-.41.059-.242.028-.504-.082-.721-.106-.207-.282-.361-.485-.428-.191-.058-.461-.049-.628.096"/><path d="m14.382 50.31c-.289.27-.54.607-.774.938-.666.939-1.214 1.963-1.631 3.072-.295.789-.544 1.59-.727 2.422-.213.975-.341 1.975-.406 2.975-.029.451-.043.902-.043 1.352 0 .512.371.936.814.936s.813-.424.813-.936c.001-.783.043-1.568.134-2.35-.011.084-.021.166-.029.25.154-1.314.446-2.605.896-3.828-.028.072-.057.148-.082.223.363-.99.827-1.934 1.4-2.785-.043.063-.085.129-.127.191.271-.4.563-.801.903-1.129.004-.006.006-.01.01-.012.158-.148.238-.434.238-.658 0-.246-.086-.486-.238-.66s-.361-.275-.576-.275c-.232-.002-.401.11-.575.274"/><path d="m55.06 50.1c.021.016.042.033.063.055-.055-.049-.109-.1-.165-.146.389.342.742.744 1.071 1.158.206.264.405.535.594.816-.043-.066-.087-.129-.129-.191.667.992 1.216 2.082 1.642 3.234-.028-.074-.055-.15-.083-.223.481 1.309.801 2.695.965 4.104-.01-.086-.019-.168-.027-.252.092.803.136 1.605.136 2.412 0 .51.37.932.815.932.442 0 .814-.422.813-.932-.001-1.908-.239-3.84-.767-5.652-.402-1.387-.961-2.723-1.684-3.926-.488-.82-1.043-1.6-1.672-2.281-.235-.258-.484-.504-.749-.721-.171-.139-.434-.154-.628-.092-.203.063-.379.219-.485.43-.11.213-.141.477-.083.717.06.249.195.411.373.558"/><path d="m51.709 51.03c.004.002.008.004.012.01-.056-.051-.11-.098-.165-.146.336.297.637.656.917 1.02.155.201.304.406.446.619-.043-.064-.085-.125-.127-.188.614.912 1.117 1.92 1.511 2.98-.028-.074-.055-.146-.082-.223.455 1.238.754 2.543.912 3.873-.01-.084-.02-.166-.029-.248.092.777.134 1.555.135 2.34.001.51.37.932.813.932s.814-.422.814-.932c-.002-1.902-.246-3.828-.796-5.627-.403-1.322-.953-2.592-1.669-3.727-.434-.688-.911-1.35-1.465-1.918-.131-.133-.267-.258-.405-.377-.166-.143-.438-.154-.628-.094-.203.064-.379.219-.486.426-.109.217-.14.479-.082.721.026.074.055.15.082.223.072.141.17.25.292.336"/><path d="m48.47 51.576c.289.271.541.607.775.939.047.064.094.133.139.199-.043-.063-.085-.127-.128-.189.573.852 1.037 1.795 1.4 2.781-.025-.072-.054-.148-.081-.223.448 1.225.74 2.516.895 3.83-.009-.08-.019-.164-.028-.248.09.777.132 1.564.133 2.352.001.51.37.932.813.932s.814-.422.814-.932c-.002-1.914-.243-3.85-.797-5.658-.385-1.252-.902-2.459-1.584-3.531-.346-.541-.717-1.084-1.157-1.527-.015-.018-.028-.031-.043-.045-.174-.162-.343-.273-.575-.273-.215 0-.424.1-.576.273-.152.176-.238.414-.238.66 0 .225.08.512.238.66"/></g><path fill="#ed4c5c" d="m52.44 34.846c0-2.631.906-5.02 2.381-6.781-1.42-1.904-3.02-3.631-4.762-5.141-1.123 1.059-2.562 1.695-4.131 1.695-3.595 0-6.51-3.34-6.51-7.463 0-.033 0-.066 0-.098-2.37-.691-4.855-1.058-7.416-1.058-2.693 0-5.303.406-7.786 1.168.313 1.215.48 2.5.48 3.826 0 7.465-5.279 13.516-11.789 13.516-2.375 0-4.586-.805-6.436-2.189-.867 1.605-1.621 3.297-2.25 5.061 1.213 1.07 1.995 2.75 1.995 4.639 0 2.848-1.775 5.221-4.129 5.742-.055.864-.085 1.737-.085 2.622h60c0-1.967-.145-3.895-.421-5.77-.197.016-.396.025-.596.025-4.719.001-8.545-4.382-8.545-9.794"/><g fill="#3e4347"><path d="m24.694 20.994c0-1.326-.168-2.611-.48-3.826-7.463 2.293-13.778 7.803-17.744 15.15 1.85 1.385 4.061 2.189 6.436 2.189 6.509.001 11.788-6.05 11.788-13.515"/><path d="m45.927 24.619c1.569 0 3.01-.637 4.131-1.695-3.126-2.705-6.73-4.725-10.641-5.865 0 .031 0 .064 0 .098 0 4.122 2.915 7.462 6.51 7.462"/><path d="m52.44 34.846c0 5.412 3.825 9.795 8.545 9.795.2 0 .398-.01.596-.025-.922-6.254-3.316-11.932-6.76-16.551-1.474 1.757-2.381 4.15-2.381 6.781"/><path d="m6.215 42.02c0-1.889-.782-3.568-1.995-4.639-1.156 3.242-1.893 6.734-2.134 10.381 2.353-.522 4.129-2.895 4.129-5.742"/><path d="M32.813 16 32 34.885 31.19 16z"/><path d="m32 35.19c-9.643 0-17.46 6.971-17.46 15.833 0 7.558 4.937 9.758 17.521 9.758 12.533 0 17.398-2.188 17.398-9.758.001-8.863-7.816-15.833-17.459-15.833"/></g><path fill="#fff" d="m28.31 54.09c.181.843.691 1.49 1.377 1.863.685.373 1.499.532 2.313.524.813.006 1.627-.152 2.312-.525.684-.372 1.195-1.02 1.377-1.862.219.832-.175 1.831-.962 2.405-.771.599-1.774.829-2.727.837-.953-.009-1.955-.24-2.727-.839-.787-.574-1.18-1.571-.963-2.403"/><g fill="#fcfcfa"><path d="m16.215 50.717c-.943.741-.426 2.766 1.15 4.521 1.578 1.758 3.618 2.586 4.558 1.848.941-.735.425-2.763-1.153-4.521-1.575-1.758-3.616-2.586-4.555-1.848"/><path d="m47.789 50.719c-.94-.739-2.982.09-4.559 1.845-1.578 1.759-2.095 3.786-1.154 4.521.943.738 2.983-.088 4.559-1.848 1.576-1.755 2.094-3.779 1.154-4.518"/><path d="m30.19 47.35c0 2.735-2.294 4.957-5.124 4.957-2.829 0-5.122-2.222-5.122-4.957 0-2.742 2.293-4.962 5.122-4.962 2.83 0 5.124 2.219 5.124 4.962"/></g><path fill="#3e4347" d="m28.583 47.35c0 1.881-1.577 3.405-3.521 3.405-1.943 0-3.521-1.524-3.521-3.405 0-1.885 1.578-3.411 3.521-3.411 1.944 0 3.521 1.526 3.521 3.411"/><path fill="#fcfcfa" d="m44.06 47.35c0 2.735-2.294 4.957-5.124 4.957s-5.122-2.222-5.122-4.957c0-2.742 2.292-4.962 5.122-4.962s5.124 2.219 5.124 4.962"/><path fill="#3e4347" d="m42.46 47.35c0 1.881-1.577 3.405-3.523 3.405-1.944 0-3.521-1.524-3.521-3.405 0-1.885 1.577-3.411 3.521-3.411 1.946 0 3.523 1.526 3.523 3.411"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6.6,50.4c5.3,3.2,14.7,5.3,25.4,5.3s20.1-2.1,25.4-5.3H6.6z" fill="#6b3838"/><g fill="#3e4347"><path d="m56.7 49l-1.5 1c0 0 4 4.5 4 10.9 0 1.5 1.6 1.5 1.6 0 0-6.4-4.1-11.9-4.1-11.9"/><path d="m52.9 49l-1.5 1c0 0 4 4.5 4 10.9 0 1.5 1.6 1.5 1.6 0 .1-6.4-4.1-11.9-4.1-11.9"/><path d="m49.2 49l-1.5 1c0 0 4 4.5 4 10.9 0 1.5 1.6 1.5 1.6 0 0-6.4-4.1-11.9-4.1-11.9"/><path d="m7.3 49l1.5 1c0 0-4 4.5-4 10.9 0 1.5-1.6 1.5-1.6 0 0-6.4 4.1-11.9 4.1-11.9"/><path d="m11.1 49l1.5.9c0 0-4 4.5-4 10.9 0 1.5-1.6 1.5-1.6 0-.1-6.3 4.1-11.8 4.1-11.8"/><path d="m14.8 49l1.5.9c0 0-4 4.5-4 10.9 0 1.5-1.6 1.5-1.6 0 0-6.3 4.1-11.8 4.1-11.8"/></g><path d="m54.8 28.1c-1.4-1.9-3-3.6-4.8-5.1l-10.6-5.9c-2.4-.7-4.8-1.1-7.4-1.1-2.7 0-5.3.4-7.8 1.2l-17.7 15.1c-.9 1.6-1.6 3.3-2.2 5.1l-2.2 10.4c-.1.8-.1 1.7-.1 2.6h60c0-2-.1-3.9-.4-5.8l-6.8-16.5" fill="#ed4c5c"/><g fill="#3e4347"><path d="m24.7 21c0-1.3-.2-2.6-.5-3.8-7.4 2.3-13.8 7.8-17.7 15.1 1.8 1.4 4.1 2.2 6.4 2.2 6.5 0 11.8-6 11.8-13.5"/><path d="m45.9 24.6c1.6 0 3-.6 4.1-1.7-3.1-2.7-6.7-4.7-10.6-5.9 0 0 0 .1 0 .1 0 4.2 2.9 7.5 6.5 7.5"/><path d="m52.4 34.8c0 5.4 3.8 9.8 8.5 9.8.2 0 .4 0 .6 0-.9-6.3-3.3-11.9-6.8-16.6-1.4 1.8-2.3 4.2-2.3 6.8"/><path d="m6.2 42c0-1.9-.8-3.6-2-4.6-1.2 3.2-1.9 6.7-2.1 10.4 2.3-.6 4.1-2.9 4.1-5.8"/><path d="M32.8 16 32 34.9 31.2 16z"/><path d="m32 35.2c-9.6 0-17.5 7-17.5 15.8 0 7.6 4.9 9.8 17.5 9.8 12.5 0 17.4-2.2 17.4-9.8.1-8.8-7.8-15.8-17.4-15.8"/></g><path d="m28.3 54.1c.2.8.7 1.5 1.4 1.9.7.4 1.5.5 2.3.5.8 0 1.6-.2 2.3-.5.7-.4 1.2-1 1.4-1.9.2.8-.2 1.8-1 2.4-.7.6-1.7.8-2.7.8-1 0-2-.2-2.7-.8-.8-.6-1.2-1.6-1-2.4" fill="#fff"/><g fill="#fcfcfa"><path d="m16.2 50.7c-.9.7-.4 2.8 1.1 4.5 1.6 1.8 3.6 2.6 4.6 1.8.9-.7.4-2.8-1.2-4.5-1.5-1.7-3.5-2.5-4.5-1.8"/><path d="m47.8 50.7c-.9-.7-3 .1-4.6 1.8-1.6 1.8-2.1 3.8-1.2 4.5.9.7 3-.1 4.6-1.8 1.6-1.7 2.1-3.7 1.2-4.5"/><path d="m30.2 47.3c0 2.7-2.3 5-5.1 5-2.8 0-5.1-2.2-5.1-5 0-2.7 2.3-5 5.1-5 2.8.1 5.1 2.3 5.1 5"/></g><path d="m28.6 47.3c0 1.9-1.6 3.4-3.5 3.4-1.9 0-3.5-1.5-3.5-3.4 0-1.9 1.6-3.4 3.5-3.4 1.9 0 3.5 1.6 3.5 3.4" fill="#3e4347"/><path d="m44.1 47.3c0 2.7-2.3 5-5.1 5s-5.1-2.2-5.1-5c0-2.7 2.3-5 5.1-5s5.1 2.3 5.1 5" fill="#fcfcfa"/><path d="m42.5 47.3c0 1.9-1.6 3.4-3.5 3.4-1.9 0-3.5-1.5-3.5-3.4 0-1.9 1.6-3.4 3.5-3.4 1.9 0 3.5 1.6 3.5 3.4" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f41f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f41f.svg
index cbf661b..d4ddc1a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f41f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f41f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#728389" d="m58.704 41.463c0-3.535 4.941-11.413 2.605-13.831-2.539-2.629-8.291 8.54-11.213 8.54-3.484 0-5.6-4.323-7.338-6.124-1.385-1.436 2.559-6.965.816-7.377-7.52-1.773-8.541 2.553-12.592 1.477-3.186-.846-6.51-1.336-9.748-1.336-11.975 0-14.322 8.619-16.368 16.581-.337 1.316 11.714 11.613 11.714 11.613s-9.228-5.201-8.961-4.02c1.475 6.561 7.733 10.816 14.687 12.408 2.023.465 4.107.715 6.15.715 12.816 0 14.799-9.865 21.707-11.08 4.162-.73 8.748 7.377 11.146 4.893 2.504-2.592-2.605-8.375-2.605-12.463"/><g fill="#8d9ba3"><path d="m48.1 60.51c-1.158 1.197-3.611 2.666-6.219-.035-2.609-2.699-5.383-7.514-4.225-8.711 1.156-1.197 5.807 1.674 8.414 4.373 2.61 2.699 3.188 3.174 2.03 4.373"/><ellipse cx="33.417" cy="35.26" rx="2.225" ry="3.25"/><path d="m38.843 39.18c0 1.398-.559 2.533-1.244 2.533-.688 0-1.246-1.135-1.246-2.533 0-1.402.559-2.537 1.246-2.537.685 0 1.244 1.134 1.244 2.537"/><ellipse cx="39.881" cy="35.973" rx=".622" ry="1.688"/><path d="m21.235 22.8c-11.975 0-14.321 8.619-16.367 16.581-.339 1.316 11.712 11.613 11.712 11.613s-9.228-5.201-8.961-4.02c1.475 6.561 7.733 10.816 14.687 12.41 8.08-15.941 5.064-30.11-1.071-36.586"/></g><g fill="#1da2d6"><ellipse cx="5.273" cy="43.998" rx="1.711" ry="1.771"/><ellipse cx="6.314" cy="23.408" rx="4.314" ry="4.467"/><ellipse cx="12.848" cy="10.267" rx="7.989" ry="8.271"/><ellipse cx="18" cy="16.462" rx="3.647" ry="3.777"/></g><ellipse fill="#fcfcfa" cx="18.737" cy="38.512" rx="7.125" ry="7.375"/><ellipse fill="#29251c" cx="18.737" cy="38.512" rx="4.899" ry="5.07"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.7 41.5c0-3.5 4.9-11.4 2.6-13.8-2.5-2.6-8.3 8.5-11.2 8.5-3.5 0-5.6-4.3-7.3-6.1-1.4-1.4 2.6-7 .8-7.4-7.5-1.8-8.5 2.6-12.6 1.5-3.2-.8-6.5-1.3-9.7-1.3-12 0-14.3 8.6-16.4 16.6-.4 1.2 11.7 11.5 11.7 11.5s-9.2-5.2-9-4c1.5 6.6 7.7 10.8 14.7 12.4 2 .5 4.1.7 6.1.7 12.8 0 14.8-9.9 21.7-11.1 4.2-.7 8.7 7.4 11.1 4.9 2.6-2.6-2.5-8.3-2.5-12.4" fill="#728389"/><g fill="#8d9ba3"><path d="m48.1 60.5c-1.2 1.2-3.6 2.7-6.2 0-2.6-2.7-5.4-7.5-4.2-8.7 1.2-1.2 5.8 1.7 8.4 4.4 2.6 2.6 3.2 3.1 2 4.3"/><ellipse cx="33.4" cy="35.3" rx="2.2" ry="3.2"/><ellipse cx="37.6" cy="39.2" rx="1.2" ry="2.5"/><ellipse cx="39.9" cy="36" rx=".6" ry="1.7"/></g><g fill="#75d6ff"><ellipse cx="5.3" cy="44" rx="1.7" ry="1.8"/><ellipse cx="6.3" cy="23.4" rx="4.3" ry="4.5"/><ellipse cx="12.8" cy="10.3" rx="8" ry="8.3"/></g><ellipse cx="18.7" cy="38.5" rx="7.1" ry="7.4" fill="#fcfcfa"/><ellipse cx="18.7" cy="38.5" rx="4.9" ry="5.1" fill="#29251c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f420.svg b/build/js/jsxc/lib/emojione/assets/svg/1f420.svg
index 04596cd..339bfce 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f420.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f420.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e07e1e" d="m43.09 50.557c-5.179 0-9.553-2.978-9.553-6.503 0-3.522 4.374-6.5 9.553-6.5 5.178 0 9.552 2.978 9.552 6.5 0 3.525-4.375 6.503-9.552 6.503"/><path fill="#3e4347" d="m43.09 38.546c5.133 0 8.71 2.903 8.71 5.508 0 2.607-3.577 5.509-8.71 5.509-5.134 0-8.711-2.901-8.711-5.509 0-2.605 3.577-5.508 8.711-5.508m0-1.986c-5.74 0-10.395 3.355-10.395 7.494 0 4.14 4.654 7.497 10.395 7.497 5.739 0 10.393-3.357 10.393-7.497-.001-4.139-4.654-7.494-10.393-7.494z"/><path fill="#e07e1e" d="m28.05 25.368c-4.689 0-8.503-3.202-8.503-7.139 0-3.938 3.814-7.14 8.503-7.14 4.688 0 8.502 3.202 8.502 7.14 0 3.937-3.815 7.139-8.502 7.139"/><path fill="#3e4347" d="m28.05 12.182c4.108 0 7.579 2.771 7.579 6.05 0 3.278-3.471 6.05-7.579 6.05s-7.58-2.769-7.58-6.05c0-3.278 3.471-6.05 7.58-6.05m0-2.182c-5.207 0-9.427 3.684-9.427 8.229s4.22 8.229 9.427 8.229c5.205 0 9.426-3.683 9.426-8.229s-4.221-8.229-9.426-8.229z"/><path fill="#e07e1e" d="m45.539 31.866c-1.959 0-3.957-1.034-5.483-2.838-1.388-1.64-2.233-3.714-2.38-5.843-.142-2.061.396-3.923 1.513-5.244.989-1.169 2.375-1.813 3.898-1.813 1.958 0 3.958 1.035 5.483 2.839 1.389 1.641 2.234 3.717 2.38 5.844.142 2.061-.396 3.923-1.512 5.242-.99 1.17-2.375 1.813-3.899 1.813"/><path fill="#3e4347" d="m43.09 17.217c1.717 0 3.478.918 4.833 2.518 1.234 1.459 1.984 3.292 2.113 5.163.119 1.738-.323 3.296-1.246 4.387-1.046 1.237-2.344 1.494-3.248 1.494-1.717 0-3.477-.917-4.833-2.519-1.233-1.459-1.983-3.292-2.113-5.161-.12-1.739.323-3.296 1.246-4.389 1.046-1.234 2.344-1.493 3.248-1.493m0-2.176c-1.712 0-3.337.7-4.548 2.132-2.712 3.203-2.324 8.856.865 12.625 1.765 2.085 4.02 3.156 6.135 3.156 1.713 0 3.338-.699 4.55-2.132 2.71-3.202 2.322-8.855-.868-12.625-1.762-2.085-4.01-3.156-6.134-3.156z"/><path fill="#e07e1e" d="m28.941 52.868c-1.27 0-2.641-.303-3.964-.871-3.796-1.632-6.35-5.137-5.577-7.65.475-1.538 2.188-2.492 4.471-2.492 1.27 0 2.641.301 3.963.87 1.949.837 3.602 2.156 4.654 3.715.945 1.398 1.272 2.796.922 3.934-.474 1.537-2.185 2.494-4.469 2.494"/><path fill="#3e4347" d="m23.871 42.986c1.159 0 2.416.276 3.636.803 1.759.755 3.302 1.979 4.232 3.357.719 1.063.999 2.097.771 2.84-.322 1.047-1.757 1.748-3.568 1.748-1.16 0-2.417-.277-3.637-.801-3.493-1.503-5.521-4.512-5-6.198.321-1.046 1.757-1.749 3.569-1.749m0-2.263c-2.619 0-4.729 1.155-5.371 3.238-.969 3.148 1.784 7.224 6.15 9.101 1.477.635 2.952.938 4.291.938 2.618 0 4.728-1.156 5.369-3.24.971-3.148-1.783-7.222-6.148-9.101-1.477-.636-2.951-.936-4.291-.936z"/><g fill="#f29a2e"><path d="m34.981 18.39c-3.12-1.122-6.489-1.786-10.219-1.786-1.09 0-2.129.064-3.122.182 1.803 4.575 2.748 9.585 2.748 14.665 0 5.717-1.18 11.28-3.427 16.278 1.197.153 2.458.243 3.801.243 1.69 0 3.286-.029 4.835-.121-.473-2.547-.719-5.147-.719-7.768.001-7.918 2.147-15.458 6.103-21.693"/><path d="m14.808 18.673c-9.747 4.483-12.534 14.704-12.534 14.704s.762.651 1.053 1.317c.275.632-1.821.864-1.216 1.865 1.688 2.784 6.671 6.944 11.914 9.276 2.282-4.309 3.481-9.234 3.481-14.386 0-4.485-.93-8.855-2.698-12.776"/><path d="m60.26 33.522c0-3.28 3.899-5.849 0-10.456 0 0-2.214 2.577-4.319 4.301-.141 1.339-.213 2.674-.213 3.987 0 3.625.506 7.18 1.502 10.585 1.885.995 3.03 2.039 3.03 2.039 3.923-4.634 0-6.947 0-10.456"/><path d="m49.27 27.09c-2.786-2.254-5.646-4.376-8.715-6.115-1.618 3.884-2.462 8.149-2.462 12.542 0 4.265.807 8.434 2.344 12.241 2.895-1 6.02-2.455 9.657-4.529-.679-3.236-1.021-6.55-1.021-9.874 0-1.383.068-2.814.197-4.265"/></g><path fill="#fff" d="m18.428 31.45c0 5.41-1.29 10.464-3.519 14.762 1.517.601 3.201 1.076 5.068 1.384 2.222-4.795 3.49-10.293 3.49-16.15 0-5.203-1-10.125-2.789-14.523-1.827.289-3.49.762-4.994 1.373 1.749 3.929 2.744 8.401 2.744 13.15"/><g fill="#3e4347"><path d="m21.641 16.785c-.328.038-.645.092-.963.142 1.784 4.398 2.789 9.32 2.789 14.523 0 5.853-1.269 11.351-3.49 16.15.32.052.654.093.985.133 2.247-4.998 3.427-10.562 3.427-16.278 0-5.081-.946-10.09-2.748-14.666"/><path d="m18.428 31.45c0-4.749-.995-9.221-2.744-13.15-.296.121-.593.241-.876.373 1.768 3.921 2.698 8.291 2.698 12.777 0 5.151-1.199 10.08-3.481 14.386.29.129.581.257.884.376 2.229-4.298 3.519-9.352 3.519-14.762"/></g><path fill="#fff" d="m29.801 40.08c0 2.647.257 5.225.729 7.703 3.02-.23 5.896-.727 9.01-1.728-1.516-3.808-2.365-8.05-2.365-12.542 0-4.667.918-9.08 2.549-13-1.232-.659-2.498-1.254-3.809-1.771-3.831 5.921-6.116 13.312-6.116 21.341"/><g fill="#3e4347"><path d="m29.801 40.08c0-8.03 2.285-15.42 6.115-21.34-.309-.122-.621-.24-.935-.354-3.956 6.235-6.103 13.775-6.103 21.693 0 2.62.246 5.221.719 7.768.313-.019.623-.038.932-.064-.471-2.478-.728-5.056-.728-7.703"/><path d="m40.56 20.975c-.277-.156-.556-.31-.835-.461-1.631 3.924-2.549 8.336-2.549 13 0 4.487.85 8.734 2.365 12.542.298-.096.599-.195.9-.301-1.537-3.808-2.344-7.977-2.344-12.241.001-4.393.844-8.659 2.463-12.542"/></g><path fill="#fff" d="m50.569 28.15c-.142-.118-.285-.235-.427-.354-.092 1.172-.145 2.357-.145 3.558 0 3.234.336 6.373.951 9.384.221-.13.44-.257.665-.391.817-.484 2.671.157 4.492 1.028-.841-3.167-1.303-6.528-1.303-10.02 0-1.106.052-2.196.143-3.272-1.427.889-2.987 1.216-4.376.068"/><g fill="#3e4347"><path d="m49.998 31.354c0-1.2.053-2.386.145-3.558-.29-.236-.578-.472-.868-.707-.13 1.451-.197 2.882-.197 4.265 0 3.324.343 6.638 1.021 9.874.28-.159.563-.323.851-.49-.616-3.01-.952-6.149-.952-9.384"/><path d="m55.938 27.367c-.319.263-.652.504-.991.715-.091 1.076-.143 2.166-.143 3.272 0 3.493.462 6.854 1.303 10.02.378.182.754.372 1.12.563-.996-3.405-1.502-6.96-1.502-10.585 0-1.312.072-2.647.213-3.986"/></g><path fill="#e07e1e" d="m25.725 27.953c-2.938 3-3.46 9.679 1.416 10.1 5.904.509 8.781 4.975 11.722 1.969 2.939-3 1.909-7.576-1.549-11.11-3.46-3.532-8.648-3.963-11.589-.961"/><path fill="#3e4347" d="m25.797 28.03c-1.472 1.477-2.227 3.669-2.094 5.733.076 1.028.408 2.04 1.053 2.738.645.703 1.545 1.025 2.521 1.056 2.174.132 4.271.917 6.18 1.775.954.411 1.907.847 2.773.955.861.115 1.52-.212 2.135-.907.618-.691 1.039-1.519 1.206-2.401.168-.885.085-1.817-.178-2.714-.529-1.8-1.656-3.453-3.03-4.864-1.32-1.339-3.01-2.429-4.941-2.855-.962-.209-1.982-.229-2.969.01-.981.241-1.921.739-2.659 1.474m-.143-.143c1.465-1.578 3.645-2.439 5.875-2.427 2.242-.004 4.492.895 6.216 2.469 1.642 1.515 3.02 3.485 3.562 5.833.262 1.166.295 2.425-.01 3.623-.297 1.201-.944 2.299-1.787 3.132-.416.425-.937.835-1.565 1.07-.627.245-1.321.271-1.922.163-1.21-.227-2.158-.757-3.103-1.211-1.863-.944-3.725-1.742-5.738-1.965-.538-.064-1.128-.199-1.65-.461-.527-.259-.996-.653-1.349-1.119-.71-.953-.927-2.129-.898-3.221.029-1.102.286-2.17.684-3.168.4-.995.947-1.941 1.685-2.718"/><ellipse fill="#fcfcfa" cx="10.791" cy="32.618" rx="5.931" ry="6.293"/><ellipse fill="#29251c" cx="10.79" cy="32.618" rx="4.077" ry="4.326"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.1 50.6c-5.2 0-9.6-3-9.6-6.5 0-3.5 4.4-6.5 9.6-6.5 5.2 0 9.6 3 9.6 6.5-.1 3.5-4.4 6.5-9.6 6.5" fill="#e07e1e"/><path d="m43.1 38.5c5.1 0 8.7 2.9 8.7 5.5 0 2.6-3.6 5.5-8.7 5.5-5.1 0-8.7-2.9-8.7-5.5 0-2.6 3.6-5.5 8.7-5.5m0-1.9c-5.7 0-10.4 3.4-10.4 7.5 0 4.1 4.7 7.5 10.4 7.5 5.7 0 10.4-3.4 10.4-7.5 0-4.2-4.7-7.5-10.4-7.5z" fill="#3e4347"/><path d="m28.1 25.4c-4.7 0-8.5-3.2-8.5-7.1 0-3.9 3.8-7.1 8.5-7.1 4.7 0 8.5 3.2 8.5 7.1 0 3.9-3.9 7.1-8.5 7.1" fill="#e07e1e"/><path d="m28.1 12.2c4.1 0 7.6 2.8 7.6 6 0 3.3-3.5 6-7.6 6s-7.6-2.8-7.6-6 3.4-6 7.6-6m0-2.2c-5.2 0-9.4 3.7-9.4 8.2s4.2 8.2 9.4 8.2c5.2 0 9.4-3.7 9.4-8.2s-4.2-8.2-9.4-8.2z" fill="#3e4347"/><path d="m45.5 31.9c-2 0-4-1-5.5-2.8-1.4-1.6-2.2-3.7-2.4-5.8-.1-2.1.4-3.9 1.5-5.2 1-1.2 2.4-1.8 3.9-1.8 2 0 4 1 5.5 2.8 1.4 1.6 2.2 3.7 2.4 5.8.1 2.1-.4 3.9-1.5 5.2-1 1.1-2.3 1.8-3.9 1.8" fill="#e07e1e"/><path d="m43.1 17.2c1.7 0 3.5.9 4.8 2.5 1.2 1.5 2 3.3 2.1 5.2.1 1.7-.3 3.3-1.2 4.4-1 1.2-2.3 1.5-3.2 1.5-1.7 0-3.5-.9-4.8-2.5-1.2-1.5-2-3.3-2.1-5.2-.1-1.7.3-3.3 1.2-4.4 1-1.2 2.3-1.5 3.2-1.5m0-2.2c-1.7 0-3.3.7-4.5 2.1-2.7 3.2-2.3 8.9.9 12.6 1.8 2.1 4 3.2 6.1 3.2 1.7 0 3.3-.7 4.5-2.1 2.7-3.2 2.3-8.9-.9-12.6-1.7-2.1-4-3.2-6.1-3.2z" fill="#3e4347"/><path d="m28.9 52.9c-1.3 0-2.6-.3-4-.9-3.8-1.6-6.4-5.1-5.6-7.7.5-1.5 2.2-2.5 4.5-2.5 1.3 0 2.6.3 4 .9 1.9.8 3.6 2.2 4.7 3.7.9 1.4 1.3 2.8.9 3.9-.5 1.6-2.2 2.6-4.5 2.6" fill="#e07e1e"/><path d="m23.9 43c1.2 0 2.4.3 3.6.8 1.8.8 3.3 2 4.2 3.4.7 1.1 1 2.1.8 2.8-.3 1-1.8 1.7-3.6 1.7-1.2 0-2.4-.3-3.6-.8-3.5-1.5-5.5-4.5-5-6.2.3-1 1.8-1.7 3.6-1.7m0-2.3c-2.6 0-4.7 1.2-5.4 3.2-1 3.1 1.8 7.2 6.1 9.1 1.5.6 3 .9 4.3.9 2.6 0 4.7-1.2 5.4-3.2 1-3.1-1.8-7.2-6.1-9.1-1.5-.6-3-.9-4.3-.9z" fill="#3e4347"/><g fill="#f29a2e"><path d="m35 18.4c-3.1-1.1-6.5-1.8-10.2-1.8-1.1 0-2.1.1-3.1.2 1.8 4.6 2.7 9.6 2.7 14.7 0 5.7-1.2 11.3-3.4 16.3 1.2.2 2.5.2 3.8.2 1.7 0 3.3 0 4.8-.1-.5-2.5-.7-5.1-.7-7.8 0-7.9 2.1-15.5 6.1-21.7"/><path d="m14.8 18.7c-9.7 4.5-12.5 14.7-12.5 14.7s.7.6 1 1.3c.3.6-1.8.9-1.2 1.9 1.7 2.8 6.7 6.9 11.9 9.3 2.3-4.3 3.5-9.2 3.5-14.4 0-4.5-.9-8.9-2.7-12.8"/><path d="m60.3 33.5c0-3.3 3.9-5.8 0-10.5 0 0-2.2 2.6-4.3 4.3-.1 1.3-.2 2.7-.2 4 0 3.6.5 7.2 1.5 10.6 1.9 1 3 2 3 2 3.9-4.6 0-6.9 0-10.4"/><path d="m49.3 27.1c-2.8-2.3-5.6-4.4-8.7-6.1-1.6 3.9-2.5 8.1-2.5 12.5 0 4.3.8 8.4 2.3 12.2 2.9-1 6-2.5 9.7-4.5-.7-3.2-1-6.5-1-9.9 0-1.3 0-2.8.2-4.2"/></g><path d="m18.4 31.5c0 5.4-1.3 10.5-3.5 14.8 1.5.6 3.2 1.1 5.1 1.4 2.2-4.8 3.5-10.3 3.5-16.1 0-5.2-1-10.1-2.8-14.5-1.8.3-3.5.8-5 1.4 1.7 3.7 2.7 8.2 2.7 13" fill="#fff"/><g fill="#3e4347"><path d="m21.6 16.8c-.3 0-.6.1-1 .1 1.8 4.4 2.8 9.3 2.8 14.5 0 5.9-1.3 11.4-3.5 16.1.3.1.7.1 1 .1 2.2-5 3.4-10.6 3.4-16.3.1-4.9-.9-9.9-2.7-14.5"/><path d="m18.4 31.5c0-4.7-1-9.2-2.7-13.1-.3.1-.6.2-.9.4 1.8 3.9 2.7 8.3 2.7 12.8 0 5.2-1.2 10.1-3.5 14.4.3.1.6.3.9.4 2.2-4.5 3.5-9.5 3.5-14.9"/></g><path d="m29.8 40.1c0 2.6.3 5.2.7 7.7 3-.2 5.9-.7 9-1.7-1.5-3.8-2.4-8.1-2.4-12.5 0-4.7.9-9.1 2.5-13-1.2-.7-2.5-1.3-3.8-1.8-3.7 5.9-6 13.3-6 21.3" fill="#fff"/><g fill="#3e4347"><path d="m29.8 40.1c0-8 2.3-15.4 6.1-21.3-.3-.1-.6-.2-.9-.4-4 6.2-6.1 13.8-6.1 21.7 0 2.6.2 5.2.7 7.8.3 0 .6 0 .9-.1-.4-2.5-.7-5.1-.7-7.7"/><path d="m40.6 21c-.3-.2-.6-.3-.8-.5-1.6 3.9-2.5 8.3-2.5 13 0 4.5.8 8.7 2.4 12.5.3-.1.6-.2.9-.3-1.5-3.8-2.3-8-2.3-12.2-.2-4.4.6-8.6 2.3-12.5"/></g><path d="m50.6 28.1c-.1-.1-.3-.2-.4-.4-.1 1.3-.2 2.5-.2 3.7 0 3.2.3 6.4 1 9.4.2-.1.4-.3.7-.4.8-.5 2.7.2 4.5 1-.8-3.2-1.3-6.5-1.3-10 0-1.1.1-2.2.1-3.3-1.5.9-3 1.2-4.4 0" fill="#fff"/><g fill="#3e4347"><path d="m50 31.4c0-1.2.1-2.4.1-3.6-.3-.2-.6-.5-.9-.7-.1 1.5-.2 2.9-.2 4.3 0 3.3.3 6.6 1 9.9.3-.2.6-.3.9-.5-.6-3.1-.9-6.2-.9-9.4"/><path d="m55.9 27.4c-.3.3-.7.5-1 .7-.1 1.1-.1 2.2-.1 3.3 0 3.5.5 6.9 1.3 10 .4.2.8.4 1.1.6-1-3.4-1.5-7-1.5-10.6 0-1.4.1-2.7.2-4"/></g><path d="m25.7 28c-2.9 3-3.5 9.7 1.4 10.1 5.9.5 8.8 5 11.7 2 2.9-3 1.9-7.6-1.5-11.1-3.4-3.6-8.6-4-11.6-1" fill="#e07e1e"/><path d="m25.8 28c-1.5 1.5-2.2 3.7-2.1 5.7.1 1 .4 2 1.1 2.7.6.7 1.5 1 2.5 1.1 2.2.1 4.3.9 6.2 1.8 1 .4 1.9.8 2.8 1 .9.1 1.5-.2 2.1-.9.6-.7 1-1.5 1.2-2.4.2-.9.1-1.8-.2-2.7-.5-1.8-1.7-3.5-3-4.9-1.3-1.3-3-2.4-4.9-2.9-1-.2-2-.2-3 0-1 .3-2 .8-2.7 1.5m-.1-.1c1.5-1.6 3.6-2.4 5.9-2.4 2.2 0 4.5.9 6.2 2.5 1.6 1.5 3 3.5 3.6 5.8.3 1.2.3 2.4 0 3.6-.3 1.2-.9 2.3-1.8 3.1-.4.4-.9.8-1.6 1.1-.6.2-1.3.3-1.9.2-1.2-.2-2.2-.8-3.1-1.2-1.9-.9-3.7-1.7-5.7-2-.5-.1-1.1-.2-1.6-.5-.5-.3-1-.7-1.3-1.1-.7-1-.9-2.1-.9-3.2 0-1.1.3-2.2.7-3.2.2-1 .7-1.9 1.5-2.7" fill="#3e4347"/><ellipse cx="10.8" cy="32.6" rx="5.9" ry="6.3" fill="#fcfcfa"/><ellipse cx="10.8" cy="32.6" rx="4.1" ry="4.3" fill="#29251c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f421.svg b/build/js/jsxc/lib/emojione/assets/svg/1f421.svg
index 4eff93b..51e9602 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f421.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f421.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m9.108 47.658c-1.781 1.779-2.72.979-3.793-.096-1.074-1.074-1.877-2.01-.096-3.793 1.78-1.779 5.01-4.186 6.084-3.111 1.073 1.074-.415 5.221-2.195 7"/><path fill="#c1875d" d="m50.06 41.18c.143-.328.305-.645.433-.98l9.707 2.219-8.919-4.676c.367-1.426.598-2.906.684-4.426l10.04-1.319-10.04-1.32c-.086-1.518-.316-2.998-.683-4.424l8.92-4.675-9.708 2.218c-.556-1.453-1.255-2.837-2.08-4.133l6.569-7.247-8.02 5.219c-1.028-1.283-2.188-2.455-3.464-3.491l3.513-8.523-5.382 7.154c-1.49-.98-3.1-1.795-4.805-2.412l.379-8.366-2.376 7.745c-1.86-.485-3.811-.745-5.823-.745-.018 0-.035.001-.053.001l-2.148-7 .32 7.082c-2.248.183-4.403.687-6.422 1.469l-3.707-4.927 2.281 5.533c-2.205 1.03-4.218 2.401-5.975 4.04l-4.275-2.783 3.352 3.699c-1.787 1.869-3.261 4.04-4.34 6.43l-4.23-.969 3.799 1.992c-.969 2.455-1.525 5.117-1.588 7.902l-4.01.528 4.01.527c.046 2.035.361 4 .902 5.871 4.245-.975 9.172-1.516 14.783-1.516 9.691.001 19.852 1.61 28.357 4.3"/><path fill="#ffe2b3" d="m3.803 42.42l4.231-.969c1.078 2.389 2.552 4.559 4.338 6.428l-3.352 3.699 4.276-2.783c1.757 1.643 3.77 3.01 5.976 4.045l-2.281 5.533 3.707-4.926c2.02.781 4.174 1.285 6.422 1.467l-.321 7.084 2.148-7c.018 0 .036.002.053.002 2.01 0 3.963-.26 5.823-.746l2.376 7.746-.378-8.367c1.705-.615 3.314-1.43 4.805-2.412l5.382 7.154-3.513-8.521c1.275-1.037 2.436-2.209 3.463-3.492l8.02 5.219-6.569-7.246c.634-.998 1.169-2.059 1.646-3.152-8.505-2.689-18.666-4.299-28.356-4.299-5.611 0-10.538.541-14.783 1.516.199.691.425 1.369.686 2.031l-3.8 1.991"/><ellipse fill="#fcfcfa" cx="14.191" cy="26.701" rx="5.958" ry="6.168"/><ellipse fill="#29251c" cx="14.19" cy="26.701" rx="4.096" ry="4.24"/><ellipse fill="#fcfcfa" cx="32" cy="26.701" rx="7.833" ry="8.109"/><ellipse fill="#29251c" cx="32" cy="26.701" rx="5.385" ry="5.574"/><path fill="#c1875d" d="m51.29 45.12c2.746 2.746 1.509 4.195-.148 5.852s-3.105 2.895-5.852.148c-2.747-2.748-6.459-7.73-4.802-9.389 1.657-1.656 8.05.641 10.802 3.389"/><path fill="#ffe2b3" d="m12.63 37.408c5.179-.043 5.05-2.598 8.295-3.262 2.551-.521 4.618 2.289 8.629 3.072"/><path fill="#29251c" d="m17.487 38.682c.353-.696.775-1.37 1.347-1.938.559-.571 1.268-1.051 2.099-1.265.832-.209 1.748-.073 2.465.338.73.394 1.286.995 1.709 1.651-.635-.457-1.282-.864-1.954-1.12-.673-.252-1.374-.316-2.04-.142-.672.158-1.301.533-1.893.976-.591.45-1.148.976-1.733 1.5"/><g fill="#e0bb86"><path d="m18.297 39.508c-.227.134-.474.208-.74.23-.265.029-.553-.023-.813-.173-.255-.155-.453-.425-.5-.704-.059-.276-.028-.544.08-.785.099.244.17.471.281.652.112.181.234.315.398.409.323.209.788.246 1.294.371"/><path d="m26.19 36.68c.129.196.201.412.226.647.031.234-.015.491-.148.725-.14.229-.383.407-.633.444-.248.047-.484.014-.694-.094.213-.099.408-.168.561-.268.151-.102.261-.204.339-.341.174-.269.215-.667.349-1.113"/><path d="m19.12 39.3c.254-.337.517-.667.852-.945.327-.284.73-.503 1.179-.606.448-.095.938-.051 1.342.149.41.188.742.483.986.832-.38-.192-.741-.381-1.117-.47-.373-.091-.745-.107-1.106-.022-.365.072-.714.241-1.065.431-.351.189-.68.447-1.071.631"/></g><g fill="#89664c"><ellipse transform="matrix(.3025.9532-.9532.3025 61.07-23.447)" cx="46.554" cy="30" rx="2.709" ry="1.916"/><ellipse transform="matrix(.3024.9532-.9532.3024 54.86-27.993)" cx="46.554" cy="23.481" rx="1.948" ry="1.378"/><ellipse transform="matrix(.3022.9532-.9532.3022 54.638-24.472)" cx="44.03" cy="25.09" rx="1.249" ry=".884"/><ellipse transform="matrix(-.5125.8587-.8587-.5125 37.6 12.737)" cx="15.185" cy="17.04" rx="1.6" ry="1.131"/><path d="m18.296 18.338c-.778-.464-.876-1.731-.222-2.833.658-1.1 1.822-1.615 2.601-1.151.779.465.88 1.734.22 2.834-.653 1.099-1.818 1.617-2.599 1.15"/><ellipse transform="matrix(-.5126.8586-.8586-.5126 38.736 5.658)" cx="17.762" cy="13.823" rx=".964" ry=".682"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m9.1 47.7c-1.8 1.8-2.7 1-3.8-.1-1.1-1.1-1.9-2-.1-3.8 1.8-1.8 5-4.2 6.1-3.1 1.1 1-.4 5.2-2.2 7" fill="#89664c"/><path d="m50.1 41.2c.1-.3.3-.6.4-1l9.7 2.2-8.9-4.7c.4-1.4.6-2.9.7-4.4l10-1.3-10-1.3c-.1-1.5-.3-3-.7-4.4l8.9-4.7-9.7 2.2c-.6-1.5-1.3-2.8-2.1-4.1l6.6-7.2-8 5.2c-1-1.3-2.2-2.5-3.5-3.5l3.5-8.6-5.4 7.2c-1.5-1-3.1-1.8-4.8-2.4l.4-8.4-2.4 7.7c-1.8-.4-3.8-.7-5.8-.7 0 0 0 0-.1 0l-2.1-7 .3 7.1c-2.2.2-4.4.7-6.4 1.5l-3.7-5 2.3 5.5c-2.2 1-4.2 2.4-6 4l-4.3-2.7 3.4 3.7c-1.8 1.9-3.3 4-4.3 6.4l-4.2-1 3.8 2c-1 2.5-1.5 5.1-1.6 7.9l-4.1.6 4 .5c0 2 .4 4 .9 5.9 4.2-1 9.2-1.5 14.8-1.5 9.7 0 19.9 1.6 28.4 4.3" fill="#c1875d"/><path d="m3.8 42.4l4.2-1c1.1 2.4 2.6 4.6 4.3 6.4l-3.3 3.8 4.3-2.8c1.8 1.6 3.8 3 6 4l-2.3 5.6 3.7-4.9c2 .8 4.2 1.3 6.4 1.5l-.3 7 2.1-7c0 0 0 0 .1 0 2 0 4-.3 5.8-.7l2.4 7.7-.4-8.4c1.7-.6 3.3-1.4 4.8-2.4l5.4 7.2-3.5-8.5c1.3-1 2.4-2.2 3.5-3.5l8 5.2-6.6-7.2c.6-1 1.2-2.1 1.6-3.2-8.5-2.7-18.7-4.3-28.4-4.3-5.6 0-10.5.5-14.8 1.5.2.7.4 1.4.7 2l-3.7 2" fill="#ffe2b3"/><ellipse cx="14.2" cy="26.7" rx="6" ry="6.2" fill="#fcfcfa"/><ellipse cx="14.2" cy="26.7" rx="4.1" ry="4.2" fill="#29251c"/><ellipse cx="32" cy="26.7" rx="7.8" ry="8.1" fill="#fcfcfa"/><ellipse cx="32" cy="26.7" rx="5.4" ry="5.6" fill="#29251c"/><path d="m51.3 45.1c2.7 2.7 1.5 4.2-.1 5.9s-3.1 2.9-5.9.1c-2.7-2.7-6.5-7.7-4.8-9.4 1.6-1.6 8 .7 10.8 3.4" fill="#c1875d"/><path d="m12.6 37.4c5.2 0 5.1-2.6 8.3-3.3 2.6-.5 4.6 2.3 8.6 3.1" fill="#ffe2b3"/><path d="m17.5 38.7c.4-.7.8-1.4 1.3-1.9.6-.6 1.3-1.1 2.1-1.3.8-.2 1.7-.1 2.5.3.7.4 1.3 1 1.7 1.7-.6-.5-1.3-.9-2-1.1-.7-.3-1.4-.3-2-.1-.7.2-1.3.5-1.9 1-.6.3-1.1.9-1.7 1.4" fill="#29251c"/><g fill="#e0bb86"><path d="m18.3 39.5c-.2.1-.5.2-.7.2-.3 0-.6 0-.8-.2-.3-.2-.5-.4-.5-.7-.1-.3 0-.5.1-.8.1.2.2.5.3.7.1.2.2.3.4.4.2.2.7.3 1.2.4"/><path d="m26.2 36.7c.1.2.2.4.2.6 0 .2 0 .5-.1.7-.1.2-.4.4-.6.4-.2 0-.5 0-.7-.1.2-.1.4-.2.6-.3.2-.1.3-.2.3-.3.1-.2.2-.6.3-1"/><path d="m19.1 39.3c.3-.3.5-.7.9-.9.3-.3.7-.5 1.2-.6.4-.1.9-.1 1.3.1.4.2.7.5 1 .8-.4-.2-.7-.4-1.1-.5-.4-.1-.7-.1-1.1 0-.4.1-.7.2-1.1.4-.4.3-.7.5-1.1.7"/></g><g fill="#89664c"><ellipse transform="matrix(.9532-.3025.3025.9532-6.8947 15.4876)" cx="46.6" cy="30" rx="1.9" ry="2.7"/><ellipse transform="matrix(.9532-.3024.3024.9532-4.9214 15.1778)" cx="46.6" cy="23.5" rx="1.4" ry="1.9"/><ellipse transform="matrix(.9532-.3022.3022.9532-5.5214 14.4805)" cx="44" cy="25.1" rx=".9" ry="1.2"/><ellipse transform="matrix(.5125-.8587.8587.5125-7.2319 21.3464)" cx="15.2" cy="17" rx="1.6" ry="1.1"/><path d="m18.3 18.3c-.8-.5-.9-1.7-.2-2.8.7-1.1 1.8-1.6 2.6-1.2.8.5.9 1.7.2 2.8-.7 1.2-1.8 1.7-2.6 1.2"/><ellipse transform="matrix(.5126-.8586.8586.5126-3.2112 21.9885)" cx="17.8" cy="13.8" rx="1" ry=".7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f422.svg b/build/js/jsxc/lib/emojione/assets/svg/1f422.svg
index 27ac391..48be9dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f422.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f422.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5b7f32"><ellipse cx="57.771" cy="40.04" rx=".75" ry=".353"/><ellipse cx="56.27" cy="38.29" rx="1.5" ry=".706"/></g><path fill="#6ea03f" d="m18.979 34.605c-1.031-2.105-5.9-.387-8.447 1.542-4.99 3.776-3.16 15.351-2.127 17.456 1.031 2.106 3.148-2.974 4.787-7.928 2.265-6.853 6.816-8.963 5.787-11.07"/><path fill="#5e4a3d" d="m55.674 27.889c0 3.464-11.05 14.615-24.672 14.615 0 0-21.738-6.465-21.738-14.57 0-13.942 8.113-25.291 21.738-25.291 13.623 0 24.672 11.303 24.672 25.25"/><g fill="#c1875d"><path d="m31 4.982l-10.93 6.296c0 0-4.096 11.793-1.988 10.236 7.02-5.185 22.621 2.554 22.621 2.554l3.215-2.554-1.99-10.236-10.928-6.296"/><path d="m46.49 7.431c-4.132-3.297-9.298-5.305-14.925-5.431l-.023 1.813 10.865 6.077 4.083-2.459"/><path d="m47.76 8.514l-4.461 2.758 2.273 10.235 10.539 7.088c.014-.33.025-.664.025-1.01.001-7.577-3.236-14.382-8.376-19.07"/><path d="m30.465 3.814l-.022-1.814c-5.627.126-10.795 2.134-14.928 5.431l4.086 2.46 10.864-6.077"/><path d="m14.242 8.514c-5.139 4.688-8.375 11.494-8.375 19.07 0 .346.012.68.023 1.01l10.543-7.088 2.273-10.235-4.464-2.759"/></g><path fill="#ffd93b" d="m31 23.417c-9.889 0-15.658 3.262-21.328 8.507-3.807 4.197 9.04 11.154 21.328 11.154s18.926-6.612 24.564-12.955c-13.144-.508-14.677-6.706-24.564-6.706"/><g fill="#af921b"><path d="m10.906 36.794c1.411.341 2.869.417 4.313.487 1.444.079 2.892.099 4.333.049 2.881-.104 5.76-.373 8.539-1.049 2.772-.654 5.477-1.717 7.704-3.464 2.243-1.729 3.776-4.308 4.405-7.153-.12 1.453-.516 2.896-1.171 4.231-.673 1.326-1.62 2.518-2.739 3.51-2.252 2-5.107 3.152-7.967 3.849-2.883.674-5.838.92-8.77.842-2.916-.117-5.883-.321-8.647-1.302"/><path d="m20.861 41.636c2.712-.302 5.425-.362 8.103-.701 2.675-.33 5.338-.76 7.891-1.54 2.546-.763 5.01-1.88 6.981-3.631 1.976-1.742 3.183-4.276 3.476-6.984.046 1.36-.169 2.745-.658 4.05-.51 1.296-1.306 2.485-2.285 3.489-1.983 2.02-4.6 3.225-7.225 4.03-2.651.783-5.383 1.194-8.113 1.346-1.365.072-2.73.102-4.092.088l-4.078-.15"/><path d="m35.37 38.03c.277 1.761-1.215 3.453-3.33 3.781-2.117.328-4.059-.832-4.334-2.592-.279-1.76 1.211-3.452 3.33-3.78 2.113-.328 4.055.833 4.334 2.591"/><path d="m48.23 31.615c.496 1.021-.119 2.39-1.377 3.058-1.26.668-2.68.381-3.176-.64-.498-1.021.117-2.39 1.377-3.057 1.26-.667 2.68-.382 3.176.639"/></g><g fill="#83bf4f"><path d="m37.977 58.6c-8.04-3.343-9.295-17.849-7.764-20.53 1.533-2.682 5.191 3.104 11.955 10.395 5.07 5.463 20.645 10.281 12.574 13.21-2.92 1.058-10.89-.631-16.765-3.075"/><path d="m53.46 42.504c-4.248-1.01-8.539-7.685-8.539-9.585 0-1.897 3.232.596 6.746 2.464 6.096 3.242 12.359.87 9.707 5.17-1.23 1.991-5.744 2.467-7.914 1.951"/></g><path fill="#6ea03f" d="m29.836 30.705c-3.355 4.602-.59 5.894-7.541 5.894s-15.381-2.797-18.203-7.02c-2.066-3.094 6.205-5.587 13.158-5.587 6.949 0 14.779 3.71 12.586 6.718"/><path fill="#83bf4f" d="m35.06 22.539c0 10.445-7.355 10.949-16.426 10.949-9.07 0-16.426-.504-16.426-10.949 0-10.447 7.354-18.916 16.426-18.916 9.07 0 16.426 8.468 16.426 18.916"/><path fill="#e8f94b" d="m16.504 15.02c0-3.431 2.652-6.756 5.932-6.756 3.277 0 5.934 3.325 5.934 6.756 0 3.429-2.656 5.321-5.934 5.321-3.28 0-5.932-1.892-5.932-5.321"/><path fill="#4b662b" d="m18.727 14.979c0-2.144 1.66-4.434 3.709-4.434 2.045 0 3.707 2.29 3.707 4.434 0 2.145-1.662 3.08-3.707 3.08-2.049 0-3.709-.935-3.709-3.08"/><path fill="#e8f94b" d="m2 16.05c0-2.629 1.73-5.177 3.867-5.177 2.135 0 3.865 2.548 3.865 5.177 0 2.628-1.73 4.078-3.865 4.078-2.137.001-3.867-1.45-3.867-4.078"/><g fill="#4b662b"><path d="m3.449 16.02c0-1.643 1.084-3.398 2.418-3.398s2.416 1.756 2.416 3.398c0 1.644-1.082 2.36-2.416 2.36s-2.418-.716-2.418-2.36"/><path d="m23.264 21.912c0 5.524-5.893 9.41-10.979 8.696-3.633-.51-5.9-3.36-5.9-6.33 0 0 2.428.638 5.9.304 4.774-.457 10.979-2.67 10.979-2.67"/></g><path fill="#fff" d="m22.295 22.16c0 2.119-5.59 5.02-10.01 4.993-3.281-.017-5.146-.782-5.146-2.047 0 0 2.01.478 5.146.274 4.158-.267 10.01-3.22 10.01-3.22"/><path fill="#ff717f" d="m16.438 29.322c.119.916-1.354.848-2.965.889-1.43.037-2.465.15-2.559-.588-.098-.736.891-1.215 2.307-1.359 1.595-.166 3.099.146 3.217 1.058"/><g fill="#5b7f32"><ellipse cx="34.971" cy="43.08" rx="1" ry=".471"/><ellipse cx="33.471" cy="45.24" rx="1.5" ry=".706"/><ellipse cx="37.34" cy="46.766" rx="1.933" ry=".91"/><ellipse cx="37.898" cy="54.09" rx="1.5" ry=".706"/><ellipse cx="41.2" cy="55.641" rx="1" ry=".471"/><ellipse cx="43.13" cy="53.18" rx="1.933" ry=".91"/><ellipse cx="47" cy="57.02" rx="2" ry=".941"/><ellipse cx="48.06" cy="35.03" rx=".75" ry=".353"/><ellipse cx="49.994" cy="37.714" rx="1.5" ry=".706"/><ellipse cx="12.287" cy="11.911" rx="1.5" ry=".706"/><ellipse cx="8.639" cy="10.869" rx=".75" ry=".354"/><ellipse cx="26.893" cy="8.263" rx=".75" ry=".354"/><ellipse cx="15.98" cy="9.891" rx="1" ry=".472"/><ellipse cx="11.232" cy="9.578" rx="1" ry=".471"/><ellipse cx="12.287" cy="6.911" rx=".75" ry=".354"/><ellipse cx="19.877" cy="5.498" rx=".75" ry=".354"/><ellipse cx="16.504" cy="6.911" rx="2" ry=".942"/><ellipse cx="15.98" cy="4.982" rx="1" ry=".472"/><ellipse cx="23.936" cy="6.395" rx="1.5" ry=".707"/><ellipse cx="50.865" cy="36.29" rx="1" ry=".471"/><ellipse cx="53.97" cy="40.04" rx="1.933" ry=".91"/></g><path fill="#83bf4f" d="m6.385 24.278c0 0 .598 2.024 4.203 4.318 1.582-1.77 12.676-6.684 12.676-6.684l-16.879 2.366"/><g fill="#5b7f32"><ellipse cx="11.232" cy="21.912" rx="1" ry=".472"/><ellipse cx="9.732" cy="25.13" rx=".75" ry=".354"/><ellipse cx="8.994" cy="23.915" rx="1" ry=".472"/><ellipse cx="12.287" cy="23.915" rx="1.5" ry=".707"/><ellipse cx="14.04" cy="22.383" rx=".75" ry=".354"/><ellipse cx="3.77" cy="20.749" rx="1" ry=".471"/><ellipse cx="4.27" cy="22.15" rx=".5" ry=".235"/><ellipse cx="5.867" cy="21.441" rx=".75" ry=".354"/><ellipse cx="25.893" cy="20.811" rx="1" ry=".472"/><ellipse cx="27.643" cy="23.21" rx=".75" ry=".354"/><ellipse cx="30.02" cy="19.262" rx="1.5" ry=".707"/><ellipse cx="29.646" cy="21.691" rx="2" ry=".942"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.9 47.5h-40.5c0-7.4 5.7-18.7 5.7-18.7-.1-.5.5-1.2 1.1-1.2l12.7-5.9c.3-.4 1.3-.3 1.5 0l12.7 5.9c.6 0 1.2.7 1.1 1.2 0 0 5.7 11.4 5.7 18.7" fill="#7d593e"/><g fill="#64892f"><path d="m35.7 57.6c0 0-6.8 1.2-8.4 0-2.2-1.7 1.3-9.6 3.5-11.3 0 0 4.6-.4 6.1 1-.1-.1-2.4 6.4-1.2 10.3"/><path d="m48.3 58.1c0 0-5.4-.3-6.4-1.6-1.4-1.7 2.5-7.1 4.5-8 0 0 3.6.6 4.5 1.9 0 0-2.8 4.5-2.6 7.7"/></g><path d="m5.7 20.1c0 0 8.5-8.5 10.2-1.7.1-.1-7.3 8.6-10.2 1.7" fill="#4b662b"/><g fill="#83bf4f"><path d="m24.6 8.6c-5.9-6.4-29.4-.1-20.7 9.9 0 0 3.8-2 10.9-1.9-5.6 5-9.1 3.4-9.1 3.4 0 3.2 1.5 5.8 7.4 5.8 7.3 0-.6 19.8 5.9 19.8 3.8 0 4.6-15.7 4.9-16.6 1.5-5 4.6-16.1.7-20.4"/><path d="m60.9 44.4c1.2 1.6 1.3 5.6.9 6.5-.4.8-1-1.1-1.8-2.9-1.4-3.1-4.1-3.7-2.2-4.9.8-.6 2.5.5 3.1 1.3"/></g><g fill="#c1875d"><path d="m38.6 28.9l-9.4 3.9-1.8 10.1h22.5l-1.8-10.1z"/><path d="m52.1 27.6c-3.6-3.6-7.8-5.8-12.7-5.9v6.1l9.2 3.5 3.5-3.7"/><path d="m37.9 27.7v-6.1c-4.9.1-9.1 2.3-12.7 5.9l3.5 3.7 9.2-3.5"/><path d="m53.2 28.8l-3.9 4 2 10.1h8.5c-1-5.5-3.4-10.4-6.6-14.1"/><path d="m28 32.8l-3.9-4c-1.6 1.8-3 4.9-5.1 5.6-2.4.8-1 8.6 7 8.6l2-10.2"/></g><path d="m17.5 45.1h42.3c0 5.6-4.8 7.8-21.2 7.8s-21.1-2.2-21.1-7.8" fill="#ffd93b"/><g fill="#af921b"><path d="m30.1 45.1c.1.8.3 1.5.5 2.2.2.7.5 1.4.9 2 .4.6.8 1.2 1.3 1.8.5.6 1.1 1.1 1.6 1.7-.8-.2-1.5-.7-2.2-1.2-.6-.5-1.2-1.2-1.6-1.9-.4-.7-.7-1.5-.8-2.3 0-.7 0-1.5.3-2.3"/><path d="m47.2 45.1c.3.7.3 1.6.2 2.4-.1.8-.4 1.6-.8 2.3-.4.7-1 1.4-1.6 1.9-.6.5-1.4.9-2.2 1.2.6-.6 1.1-1.1 1.6-1.7.5-.6.9-1.2 1.3-1.8.4-.6.7-1.3.9-2 .3-.8.5-1.5.6-2.3"/></g><circle cx="14.7" cy="11.4" r="2.6" fill="#3e4347"/><path fill="#4b662b" d="m4.6 12l-.7.3.3-.8.7-.4z"/><path d="m29.8 60.9c0 0-8.9 1.9-11.1 0-2.9-2.6 1.7-14.7 4.6-17.3 0 0 6.1-.6 8.1 1.5-.1 0-3.1 9.9-1.6 15.8" fill="#83bf4f"/><path d="m21.5 60.9c-1.1-2.8-2.9-4.7-3.4-4.7-.6 0-1.8 1.7-1.8 5 .1 1.1 5.8 1.1 5.2-.3" fill="#6ea03f"/><path d="m61.5 52c0 0-4.6 7.9-6.9 7.8-3.1-.2-9.8-7.5-7.2-15.8 0 0 5.6-.8 7.9-.4 0-.1-1.6 7 6.2 8.4" fill="#83bf4f"/><path d="m56.6 58.2c-2-1.3-4.1-1.7-4.4-1.4-.4.3-.5 2.1 1 4.4.5.7 4.4-2.3 3.4-3" fill="#6ea03f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f423.svg b/build/js/jsxc/lib/emojione/assets/svg/1f423.svg
index 9c7d460..7d8abff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f423.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f423.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dae5ef" d="m48.12 39.39h-32.24l-8.275-4.33.126 12.24h48.541l.13-12.24z"/><g fill="#ffbf3e"><path d="m15.478 35.12c0 0-16-5.958-12.784-7.387 8.861-3.936 12.784 7.387 12.784 7.387"/><path d="m15.478 35.12c0 0-13.596-10.5-10.368-11.934 8.183-3.635 10.368 11.934 10.368 11.934"/><path d="m15.478 35.12c0 0-17.634-.542-12.561-2.796 11.394-5.061 12.561 2.796 12.561 2.796"/><path d="m48.52 35.12c0 0 16-5.958 12.783-7.387-8.862-3.936-12.783 7.387-12.783 7.387"/><path d="m48.52 35.12c0 0 13.596-10.5 10.367-11.934-8.183-3.635-10.367 11.934-10.367 11.934"/><path d="m48.52 35.12c0 0 17.633-.542 12.559-2.796-11.392-5.061-12.559 2.796-12.559 2.796"/></g><g fill="#ffd93b"><path d="m33.983 21.809c2.409 3.853-10.899 4.04-11.738-5.395-.837-9.433 5.711-14.414 5.711-14.414s-.422 9.501 6.03 19.809"/><path d="m32.691 19c-1.782 4.149-9.987-5.781-2.565-12.12 7.42-6.338 15.567-4.409 15.567-4.409s-8.24 5.427-13 16.527"/><path d="m26.24 27.896c1.781 4.149 9.986-5.781 2.565-12.12-7.422-6.337-15.568-4.408-15.568-4.408s8.24 5.427 13 16.527"/><path d="m50.759 35.604c0 10.25-8.399 11.836-18.76 11.836-10.362 0-18.758-1.586-18.758-11.836 0-20.994 9.175-25.283 18.758-25.283 9.58-.001 18.76 4.288 18.76 25.283"/></g><path fill="#e08828" d="m28.22 34.839h7.563c0 2.437-1.891 4.078-3.782 4.078s-3.781-1.642-3.781-4.078"/><path fill="#f29a2e" d="m35.781 34.839c0 0-2.431 1.143-3.782 1.142-1.352 0-3.78-1.142-3.78-1.142 0-3.03 1.694-5.487 3.78-5.487 2.088 0 3.782 2.455 3.782 5.487"/><g fill="#bc9342"><path d="m44.74 25.07c-.361-.676-.794-1.33-1.38-1.88-.572-.556-1.298-1.021-2.149-1.229-.85-.203-1.79-.071-2.524.329-.748.382-1.318.967-1.751 1.602.652-.443 1.313-.838 2-1.086.689-.246 1.408-.308 2.09-.138.688.153 1.332.518 1.939.946.604.437 1.174.949 1.773 1.456"/><path d="m19.261 25.07c.361-.676.794-1.33 1.379-1.88.573-.556 1.299-1.021 2.15-1.229.852-.203 1.79-.071 2.524.329.748.382 1.317.967 1.751 1.602-.652-.443-1.313-.838-2-1.086-.689-.246-1.408-.308-2.089-.138-.688.153-1.333.518-1.94.946-.603.437-1.174.949-1.773 1.456"/></g><g fill="#3e4347"><path d="m20.865 30.37c0-1.238 1.028-2.562 2.298-2.562 1.267 0 2.296 1.323 2.296 2.562s-1.029 1.78-2.296 1.78c-1.269 0-2.298-.542-2.298-1.78"/><path d="m38.54 30.37c0-1.238 1.028-2.562 2.299-2.562 1.267 0 2.296 1.323 2.296 2.562s-1.029 1.78-2.296 1.78c-1.271 0-2.299-.542-2.299-1.78"/></g><path fill="#ffea92" d="m44.07 47.671c.048-.269.075-.542.075-.818 0-4.161-5.437-7.534-12.144-7.534-6.705 0-12.142 3.373-12.142 7.534 0 .276.027.55.075.819 3.261 1.311 7.469 1.643 12.07 1.643s8.808-.333 12.07-1.644"/><path fill="#3e4347" d="m35.781 34.749c0 0-1.692 2.38-3.781 2.38-2.088 0-3.781-2.38-3.781-2.38s1.693-2.384 3.781-2.384c2.089 0 3.781 2.384 3.781 2.384"/><path fill="#dae5ef" d="m56.4 35.06l-3.764 6.684-5.415-4.131-16.07 12.966-14.365-12.967-5.415 4.131-3.764-6.684c0 0-2.507 1.753-2.507 5.141.001 12.07 11.442 21.801 26.905 21.801 15.464 0 26.904-9.729 26.904-21.801 0-3.387-2.507-5.14-2.507-5.14"/><path fill="#fff" d="m56 36.812l-.76 3.843-8.02-3.043-5.114 10.262-10.11-7.296-15.44 6.76.222-9.727-8.02 3.043-.76-3.843c0 0-1.403 1.468-1.403 3.979-.001 10.223 10.57 18.87 25.403 18.87 14.832 0 25.404-8.647 25.404-18.869 0-2.512-1.403-3.979-1.403-3.979"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dae5ef" d="m48.1 39.4h-32.2l-8.3-4.3.1 12.2h48.6l.1-12.2z"/><g fill="#ffbf3e"><path d="m15.5 35.1c0 0-16-6-12.8-7.4 8.9-3.9 12.8 7.4 12.8 7.4"/><path d="m15.5 35.1c0 0-13.6-10.5-10.4-11.9 8.2-3.6 10.4 11.9 10.4 11.9"/><path d="m15.5 35.1c0 0-17.6-.5-12.6-2.8 11.4-5 12.6 2.8 12.6 2.8"/><path d="m48.5 35.1c0 0 16-6 12.8-7.4-8.9-3.9-12.8 7.4-12.8 7.4"/><path d="m48.5 35.1c0 0 13.6-10.5 10.4-11.9-8.2-3.6-10.4 11.9-10.4 11.9"/><path d="m48.5 35.1c0 0 17.6-.5 12.6-2.8-11.4-5-12.6 2.8-12.6 2.8"/></g><g fill="#ffd93b"><path d="M34,21.8c2.4,3.9-10.9,4-11.7-5.4C21.4,7,28,2,28,2S27.5,11.5,34,21.8z"/><path d="m32.7 19c-1.8 4.1-10-5.8-2.6-12.1 7.4-6.3 15.6-4.4 15.6-4.4s-8.2 5.4-13 16.5"/><path d="m26.2 27.9c1.8 4.1 10-5.8 2.6-12.1-7.4-6.3-15.6-4.4-15.6-4.4s8.3 5.4 13 16.5"/><path d="m50.8 35.6c0 10.2-8.4 11.8-18.8 11.8-10.4 0-18.8-1.6-18.8-11.8 0-21 9.2-25.3 18.8-25.3 9.6 0 18.8 4.3 18.8 25.3"/></g><path d="m28.2 34.8h7.6c0 2.4-1.9 4.1-3.8 4.1s-3.8-1.6-3.8-4.1" fill="#e08828"/><path d="m35.8 34.8c0 0-2.4 1.1-3.8 1.1-1.4 0-3.8-1.1-3.8-1.1 0-3 1.7-5.5 3.8-5.5 2.1.1 3.8 2.5 3.8 5.5" fill="#f29a2e"/><g fill="#bc9342"><path d="m44.7 25.1c-.4-.7-.8-1.3-1.4-1.9-.6-.6-1.3-1-2.1-1.2-.8-.2-1.8-.1-2.5.3-.7.4-1.3 1-1.8 1.6.7-.4 1.3-.8 2-1.1.7-.2 1.4-.3 2.1-.1.7.2 1.3.5 1.9.9.7.4 1.2 1 1.8 1.5"/><path d="m19.3 25.1c.4-.7.8-1.3 1.4-1.9.6-.6 1.3-1 2.1-1.2.9-.2 1.8-.1 2.5.3.7.4 1.3 1 1.8 1.6-.7-.4-1.3-.8-2-1.1-.7-.2-1.4-.3-2.1-.1-.7.2-1.3.5-1.9.9-.7.4-1.2 1-1.8 1.5"/></g><g fill="#3e4347"><path d="m20.9 30.4c0-1.2 1-2.6 2.3-2.6 1.3 0 2.3 1.3 2.3 2.6s-1 1.8-2.3 1.8c-1.3 0-2.3-.6-2.3-1.8"/><path d="m38.5 30.4c0-1.2 1-2.6 2.3-2.6 1.3 0 2.3 1.3 2.3 2.6s-1 1.8-2.3 1.8c-1.2 0-2.3-.6-2.3-1.8"/></g><path d="m44.1 47.7c0-.3.1-.5.1-.8 0-4.2-5.4-7.5-12.1-7.5-6.7 0-12.1 3.4-12.1 7.5 0 .3 0 .5.1.8 3.3 1.3 7.5 1.6 12.1 1.6s8.6-.3 11.9-1.6" fill="#ffea92"/><path d="m35.8 34.7c0 0-1.7 2.4-3.8 2.4-2.1 0-3.8-2.4-3.8-2.4s1.7-2.4 3.8-2.4c2.1.1 3.8 2.4 3.8 2.4" fill="#3e4347"/><path d="m56.4 35.1l-3.8 6.7-5.4-4.1-16.1 13-14.4-13-5.4 4.1-3.8-6.7c0 0-2.5 1.8-2.5 5.1.1 12.1 11.5 21.8 27 21.8 15.5 0 26.9-9.7 26.9-21.8 0-3.4-2.5-5.1-2.5-5.1" fill="#dae5ef"/><path d="m56 36.8l-.8 3.8-8-3-5.1 10.3-10.1-7.3-15.4 6.8.2-9.7-8 3-.8-3.9c0 0-1.4 1.5-1.4 4 0 10.2 10.6 18.9 25.4 18.9 14.8 0 25.4-8.6 25.4-18.9 0-2.5-1.4-4-1.4-4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f424.svg b/build/js/jsxc/lib/emojione/assets/svg/1f424.svg
index 2247b20..f9269d1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f424.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f424.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e08828"><path d="m34.28 50.716h2.513v10.786h-2.513z"/><path d="m36.26 61.58c0-.502 1.779-1.508 3.978-1.508s3.981 1.01 3.981 1.508c0 .504-1.783.411-3.981.411s-3.978.093-3.978-.411"/><path d="m31.55 61.58c0-.502 1.784-1.508 3.982-1.508s3.98 1.01 3.98 1.508c0 .504-1.782.411-3.98.411s-3.982.093-3.982-.411"/><path d="m26.849 61.58c0-.502 1.783-1.508 3.981-1.508s3.98 1.01 3.98 1.508c0 .504-1.782.411-3.98.411s-3.981.093-3.981-.411"/><path d="m14.01 55.674l-2.02-1.414 6.314-8.13 2.02 1.41z"/><path d="m13.531 55.44c.314-.402 2.377-.21 4.145 1.03 1.77 1.239 2.574 3.056 2.262 3.459-.314.404-1.692-.675-3.461-1.913-1.769-1.241-3.259-2.169-2.946-2.576"/><path d="m9.746 52.784c.314-.403 2.377-.208 4.146 1.031 1.768 1.238 2.575 3.055 2.263 3.459-.317.404-1.694-.676-3.461-1.914-1.77-1.239-3.264-2.171-2.948-2.576"/><path d="m5.962 50.13c.314-.403 2.375-.209 4.146 1.03 1.77 1.239 2.574 3.054 2.261 3.459-.315.404-1.693-.674-3.461-1.914-1.767-1.239-3.26-2.17-2.946-2.575"/></g><g fill="#ffd93b"><path d="m60.871 30.534c4.599 0-4.882 21.09-27.795 21.09-15.557 0-26.446-6.675-26.446-18.837 0-12.162 8.62-24.03 24.2-20.02 15.874 4.082 4.702 17.767 30.04 17.767"/><path d="m20.01 21.837c-1.061 4.252 12.396.182 9.899-8.617-2.496-8.799-10.849-11.22-10.849-11.22s3.789 8.459.95 19.837"/><path d="m20.328 22.29c3.262 3.187 8-8.41-1.71-11.78-9.71-3.37-14.384-.906-14.384-.906s7.372 4.16 16.09 12.686"/><path d="m31.342 25.695c-.324 4.321-12.1-2.05-6.872-10.146 5.223-8.096 14.1-8.945 14.1-8.945s-6.37 7.533-7.23 19.09"/></g><path fill="#ffea92" d="m57.2 41.2c-5.01.887-13.456 4.259-23.04 4.259-11.388 0-21.17-4.754-25.48-4.451 3.838 6.915 12.831 10.619 24.417 10.619 11.369 0 19.428-5.193 24.1-10.427"/><path fill="#e08828" d="m3.422 31.25l5.607-.959c0 2.574-.215 4.336-2.092 4.336-1.875-.001-3.515-.803-3.515-3.377"/><path fill="#f29a2e" d="m9.03 30.29l-7.03 1.921c0-3.203 2.603-6.76 4.937-6.76 2.334 0 2.092 1.635 2.092 4.839"/><g fill="#3e4347"><path d="m5.459 26.692c-.24.33-.337.731-.214.899.125.167.416.037.657-.293.239-.33.334-.733.212-.9-.12-.167-.414-.035-.655.294"/><path d="m10.969 25.05c0-1.577 1.304-3.261 2.913-3.261 1.607 0 2.916 1.684 2.916 3.261 0 1.576-1.309 2.265-2.916 2.265-1.609 0-2.913-.689-2.913-2.265"/></g><g fill="#ffbf3e"><path d="m48.531 37.28c0 5.311-6.718 9.616-15 9.616-8.287 0-9.757-4.306-9.757-9.616 0-5.31 1.47-9.615 9.757-9.615 8.286.001 15 4.305 15 9.615"/><path d="m51.2 36.861c-1.358.361-2.534-.172-2.534-.172 1.548-1.26 1.885-3.485 1.885-3.485-1.045.949-2.821.911-2.821.911.492-1.571.226-2.813.226-2.813-2.326 3.357-10.443 3.503-10.443 3.503 4.856 3.199 7.499 7.507 7.499 7.507 3.982-1.46 6.188-5.451 6.188-5.451"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e08828"><path d="m34.3 50.7h2.5v10.8h-2.5z"/><path d="m36.3 61.6c0-.5 1.8-1.5 4-1.5s4 1 4 1.5c0 .5-1.8.4-4 .4s-4 .1-4-.4"/><path d="m31.5 61.6c0-.5 1.8-1.5 4-1.5s4 1 4 1.5c0 .5-1.8.4-4 .4s-4 .1-4-.4"/><path d="m26.8 61.6c0-.5 1.8-1.5 4-1.5s4 1 4 1.5c0 .5-1.8.4-4 .4s-4 .1-4-.4"/><path d="m14 55.7l-2-1.4 6.3-8.2 2 1.4z"/><path d="m13.5 55.4c.3-.4 2.4-.2 4.1 1 1.8 1.2 2.6 3.1 2.3 3.5-.3.4-1.7-.7-3.5-1.9-1.7-1.2-3.2-2.2-2.9-2.6"/><path d="m9.7 52.8c.3-.4 2.4-.2 4.1 1 1.8 1.2 2.6 3.1 2.3 3.5-.3.4-1.7-.7-3.5-1.9-1.7-1.3-3.2-2.2-2.9-2.6"/><path d="m6 50.1c.3-.4 2.4-.2 4.1 1 1.8 1.2 2.6 3.1 2.3 3.5-.3.4-1.7-.7-3.5-1.9-1.8-1.2-3.3-2.2-2.9-2.6"/></g><g fill="#ffd93b"><path d="m60.9 30.5c4.6 0-4.9 21.1-27.8 21.1-15.6 0-26.5-6.6-26.5-18.8 0-12.2 8.6-24 24.2-20 15.9 4 4.7 17.7 30.1 17.7"/><path d="m20 21.8c-1.1 4.3 12.4.2 9.9-8.6-2.5-8.8-10.8-11.2-10.8-11.2s3.8 8.5.9 19.8"/><path d="m20.3 22.3c3.3 3.2 8-8.4-1.7-11.8s-14.4-.9-14.4-.9 7.4 4.2 16.1 12.7"/><path d="m31.3 25.7c-.3 4.3-12.1-2-6.9-10.1 5.2-8.1 14.1-8.9 14.1-8.9s-6.3 7.4-7.2 19"/></g><path d="m57.2 41.2c-5 .9-13.5 4.3-23 4.3-11.4 0-21.2-4.8-25.5-4.5 3.8 6.9 12.8 10.6 24.4 10.6 11.4 0 19.4-5.2 24.1-10.4" fill="#ffea92"/><path d="m3.4 31.2l5.6-1c0 2.6-.2 4.3-2.1 4.3-1.8.1-3.5-.7-3.5-3.3" fill="#e08828"/><path d="m9 30.3l-7 1.9c0-3.2 2.6-6.8 4.9-6.8 2.4.1 2.1 1.7 2.1 4.9" fill="#f29a2e"/><path d="m11 25.1c0-1.6 1.3-3.3 2.9-3.3 1.6 0 2.9 1.7 2.9 3.3 0 1.6-1.3 2.3-2.9 2.3-1.6-.1-2.9-.8-2.9-2.3" fill="#3e4347"/><g fill="#ffbf3e"><path d="m48.5 37.3c0 5.3-6.7 9.6-15 9.6-8.3 0-9.8-4.3-9.8-9.6s1.5-9.6 9.8-9.6 15 4.3 15 9.6"/><path d="m51.2 36.9c-1.4.4-2.5-.2-2.5-.2 1.5-1.3 1.9-3.5 1.9-3.5-1 .9-2.8.9-2.8.9.5-1.6.2-2.8.2-2.8-2.3 3.4-10.4 3.5-10.4 3.5 4.9 3.2 7.5 7.5 7.5 7.5 3.9-1.4 6.1-5.4 6.1-5.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f425.svg b/build/js/jsxc/lib/emojione/assets/svg/1f425.svg
index 75a69e9..fabfbf9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f425.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f425.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e08828"><path d="m39.606 51.33h2.355v9.155h-2.355z"/><path d="m41.46 60.57c0-.515 1.669-1.548 3.729-1.548 2.062 0 3.733 1.033 3.733 1.548 0 .517-1.672.422-3.733.422-2.06 0-3.729.095-3.729-.422"/><path d="m37.05 60.57c0-.515 1.671-1.548 3.732-1.548 2.061 0 3.732 1.033 3.732 1.548 0 .517-1.672.422-3.732.422-2.061 0-3.732.095-3.732-.422"/><path d="m32.643 60.57c0-.515 1.672-1.548 3.732-1.548s3.732 1.033 3.732 1.548c0 .517-1.672.422-3.732.422s-3.732.095-3.732-.422"/><path d="m22.04 51.33h2.355v9.155h-2.355z"/><path d="m22.541 60.57c0-.515-1.67-1.548-3.73-1.548-2.061 0-3.733 1.033-3.733 1.548 0 .517 1.672.422 3.733.422 2.06 0 3.73.095 3.73-.422"/><path d="m26.951 60.57c0-.515-1.672-1.548-3.732-1.548-2.062 0-3.732 1.033-3.732 1.548 0 .517 1.671.422 3.732.422 2.06 0 3.732.095 3.732-.422"/><path d="m31.358 60.57c0-.515-1.672-1.548-3.733-1.548-2.061 0-3.73 1.033-3.73 1.548 0 .517 1.67.422 3.73.422 2.062 0 3.733.095 3.733-.422"/></g><g fill="#ffbf3e"><path d="m15.478 39.34c0 0-16-6.537-12.785-8.104 8.861-4.319 12.785 8.104 12.785 8.104"/><path d="m15.478 39.34c0 0-13.596-11.52-10.369-13.09 8.184-3.988 10.369 13.09 10.369 13.09"/><path d="m15.478 39.34c0 0-17.634-.595-12.56-3.068 11.392-5.553 12.56 3.068 12.56 3.068"/><path d="m48.52 39.34c0 0 16-6.537 12.785-8.104-8.863-4.319-12.785 8.104-12.785 8.104"/><path d="m48.52 39.34c0 0 13.596-11.52 10.369-13.09-8.184-3.988-10.369 13.09-10.369 13.09"/><path d="m48.52 39.34c0 0 17.635-.595 12.56-3.068-11.392-5.553-12.56 3.068-12.56 3.068"/></g><g fill="#ffd93b"><path d="m33.982 24.731c2.41 4.229-10.898 4.431-11.736-5.918-.837-10.348 5.71-15.813 5.71-15.813s-.422 10.423 6.03 21.731"/><path d="m32.69 21.653c-1.782 4.552-9.987-6.343-2.565-13.295s15.568-4.837 15.568-4.837-8.24 5.954-13 18.13"/><path d="m26.24 31.41c1.781 4.552 9.986-6.343 2.565-13.295s-15.568-4.837-15.568-4.837 8.24 5.954 13 18.13"/><path d="m50.76 39.866c0 11.245-8.4 12.985-18.761 12.985-10.362 0-18.757-1.74-18.757-12.985 0-23.03 9.174-27.738 18.757-27.738 9.58 0 18.761 4.705 18.761 27.738"/></g><path fill="#e08828" d="m28.22 36.977h7.563c0 2.321-1.891 3.887-3.782 3.887s-3.781-1.566-3.781-3.887"/><path fill="#f29a2e" d="m35.781 36.977c0 0-2.431 1.089-3.782 1.089-1.351 0-3.78-1.089-3.78-1.089 0-2.89 1.693-5.229 3.78-5.229 2.089-.001 3.782 2.339 3.782 5.229"/><g fill="#bc9342"><path d="m44.74 26.356c-.361-.742-.795-1.459-1.379-2.063-.574-.609-1.299-1.119-2.15-1.347-.85-.223-1.791-.078-2.525.36-.748.419-1.316 1.061-1.75 1.757.652-.486 1.313-.919 2-1.192.689-.27 1.408-.337 2.09-.151.688.168 1.332.568 1.939 1.039.603.478 1.174 1.04 1.773 1.597"/><path d="m19.26 26.356c.362-.742.795-1.459 1.381-2.063.572-.609 1.298-1.119 2.148-1.347.852-.223 1.791-.078 2.525.36.748.419 1.316 1.061 1.751 1.757-.651-.486-1.313-.919-2-1.192-.689-.27-1.408-.337-2.088-.151-.688.168-1.333.568-1.941 1.039-.602.478-1.174 1.04-1.773 1.597"/></g><g fill="#3e4347"><path d="m20.865 32.18c0-1.358 1.028-2.811 2.298-2.811 1.267 0 2.296 1.452 2.296 2.811s-1.029 1.953-2.296 1.953c-1.269 0-2.298-.595-2.298-1.953"/><path d="m38.541 32.18c0-1.358 1.027-2.811 2.297-2.811 1.267 0 2.297 1.452 2.297 2.811s-1.03 1.953-2.297 1.953c-1.27 0-2.297-.595-2.297-1.953"/></g><path fill="#ffea92" d="m44.07 51.14c.048-.28.075-.564.075-.852 0-4.325-5.437-7.831-12.144-7.831-6.705 0-12.142 3.506-12.142 7.831 0 .288.027.572.075.852 3.261 1.363 7.469 1.708 12.07 1.708s8.808-.345 12.07-1.708"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e08828"><path d="m39.6 51.3h2.4v9.2h-2.4z"/><path d="m41.5 60.6c0-.5 1.7-1.5 3.7-1.5 2.1 0 3.7 1 3.7 1.5 0 .5-1.7.4-3.7.4-2.1 0-3.7.1-3.7-.4"/><path d="m37.1 60.6c0-.5 1.7-1.5 3.7-1.5 2.1 0 3.7 1 3.7 1.5 0 .5-1.7.4-3.7.4-2.1 0-3.7.1-3.7-.4"/><path d="m32.6 60.6c0-.5 1.7-1.5 3.7-1.5s3.7 1 3.7 1.5c0 .5-1.7.4-3.7.4s-3.7.1-3.7-.4"/><path d="m22 51.3h2.4v9.2h-2.4z"/><path d="m22.5 60.6c0-.5-1.7-1.5-3.7-1.5-2.1 0-3.7 1-3.7 1.5 0 .5 1.7.4 3.7.4 2.1 0 3.7.1 3.7-.4"/><path d="m27 60.6c0-.5-1.7-1.5-3.7-1.5-2.1 0-3.7 1-3.7 1.5 0 .5 1.7.4 3.7.4 2 0 3.7.1 3.7-.4"/><path d="m31.4 60.6c0-.5-1.7-1.5-3.7-1.5s-3.7 1-3.7 1.5c0 .5 1.7.4 3.7.4 2 0 3.7.1 3.7-.4"/></g><g fill="#ffbf3e"><path d="m15.5 39.3c0 0-16-6.5-12.8-8.1 8.9-4.3 12.8 8.1 12.8 8.1"/><path d="m15.5 39.3c0 0-13.6-11.5-10.4-13.1 8.2-3.9 10.4 13.1 10.4 13.1"/><path d="m15.5 39.3c0 0-17.6-.6-12.6-3.1 11.4-5.5 12.6 3.1 12.6 3.1"/><path d="m48.5 39.3c0 0 16-6.5 12.8-8.1-8.9-4.3-12.8 8.1-12.8 8.1"/><path d="m48.5 39.3c0 0 13.6-11.5 10.4-13.1-8.2-3.9-10.4 13.1-10.4 13.1"/><path d="m48.5 39.3c0 0 17.6-.6 12.6-3.1-11.4-5.5-12.6 3.1-12.6 3.1"/></g><g fill="#ffd93b"><path d="M34,24.7c2.4,4.2-10.9,4.4-11.7-5.9C21.4,8.5,28,3,28,3S27.5,13.4,34,24.7z"/><path d="m32.7 21.7c-1.8 4.6-10-6.3-2.6-13.3s15.6-4.8 15.6-4.8-8.2 5.9-13 18.1"/><path d="m26.2 31.4c1.8 4.6 10-6.3 2.6-13.3s-15.6-4.8-15.6-4.8 8.3 5.9 13 18.1"/><path d="m50.8 39.9c0 11.2-8.4 13-18.8 13-10.4 0-18.8-1.7-18.8-13 0-23 9.2-27.7 18.8-27.7 9.6-.1 18.8 4.6 18.8 27.7"/></g><path d="m28.2 37h7.6c0 2.3-1.9 3.9-3.8 3.9s-3.8-1.6-3.8-3.9" fill="#e08828"/><path d="m35.8 37c0 0-2.4 1.1-3.8 1.1s-3.8-1.1-3.8-1.1c0-2.9 1.7-5.2 3.8-5.2 2.1-.1 3.8 2.3 3.8 5.2" fill="#f29a2e"/><g fill="#bc9342"><path d="m44.7 26.4c-.4-.7-.8-1.5-1.4-2.1-.6-.6-1.3-1.1-2.2-1.3-.8-.2-1.8-.1-2.5.4-.7.4-1.3 1.1-1.8 1.8.7-.5 1.3-.9 2-1.2.7-.3 1.4-.3 2.1-.2.7.2 1.3.6 1.9 1 .8.4 1.3 1 1.9 1.6"/><path d="m19.3 26.4c.4-.7.8-1.5 1.4-2.1.6-.6 1.3-1.1 2.1-1.3.9-.2 1.8-.1 2.5.4.7.4 1.3 1.1 1.8 1.8-.7-.5-1.3-.9-2-1.2-.7-.3-1.4-.3-2.1-.2-.7.2-1.3.6-1.9 1-.7.4-1.2 1-1.8 1.6"/></g><g fill="#3e4347"><path d="m20.9 32.2c0-1.4 1-2.8 2.3-2.8 1.3 0 2.3 1.5 2.3 2.8s-1 2-2.3 2c-1.3-.1-2.3-.7-2.3-2"/><path d="m38.5 32.2c0-1.4 1-2.8 2.3-2.8 1.3 0 2.3 1.5 2.3 2.8s-1 2-2.3 2c-1.2-.1-2.3-.7-2.3-2"/></g><path d="m44.1 51.1c0-.3.1-.6.1-.9 0-4.3-5.4-7.8-12.1-7.8-6.7 0-12.1 3.5-12.1 7.8 0 .3 0 .6.1.9 3.3 1.4 7.5 1.7 12.1 1.7s8.6-.3 11.9-1.7" fill="#ffea92"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f426.svg b/build/js/jsxc/lib/emojione/assets/svg/1f426.svg
index 0fce8d6..225d767 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f426.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f426.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#297b9d"><path d="m15.56 41.34c-4.344-12.721-11.672 13.469-11.672 13.469s14.731-4.51 11.672-13.469"/><path d="M16.828,39.452C16.015,26.034,2,49.341,2,49.341S17.4,48.901,16.828,39.452z"/><path d="m48.44 41.34c4.344-12.721 11.672 13.469 11.672 13.469s-14.73-4.51-11.672-13.469"/><path d="m47.17 39.452c.813-13.418 14.827 9.889 14.827 9.889s-15.399-.44-14.827-9.889"/></g><g fill="#42ade2"><path d="m37.721 5.106c-3.162-5.554-4.194 7.361-4.194 7.361s6.419-3.45 4.194-7.361"/><path d="m23.65 6.896c-5.504 3.189 7.295 4.231 7.295 4.231s-3.42-6.478-7.295-4.231"/><path d="m29.445 2.12c-8.129-1.426 3.807 10.348 3.807 10.348s1.917-9.343-3.807-10.348"/></g><g fill="#e08828"><path d="m20.2 55.51h2.316v6h-2.316z"/><path d="m22.03 61.59c0-.496 1.643-1.49 3.666-1.49 2.025 0 3.668.994 3.668 1.49 0 .498-1.643.406-3.668.406-2.023 0-3.666.092-3.666-.406"/><path d="m17.695 61.59c0-.496 1.641-1.49 3.667-1.49s3.668.994 3.668 1.49c0 .498-1.643.406-3.668.406s-3.667.092-3.667-.406"/><path d="m13.361 61.59c0-.496 1.643-1.49 3.668-1.49 2.026 0 3.668.994 3.668 1.49 0 .498-1.643.406-3.668.406-2.026 0-3.668.092-3.668-.406"/><path d="m41.482 55.51h2.314v6h-2.314z"/><path d="m43.3 61.59c0-.496 1.641-1.49 3.666-1.49s3.668.994 3.668 1.49-1.643.406-3.668.406-3.666.09-3.666-.406"/><path d="m38.971 61.59c0-.496 1.643-1.49 3.668-1.49s3.668.994 3.668 1.49-1.643.406-3.668.406-3.668.09-3.668-.406"/><path d="m34.639 61.59c0-.496 1.643-1.49 3.668-1.49s3.668.994 3.668 1.49-1.643.406-3.668.406-3.668.09-3.668-.406"/></g><path fill="#42ade2" d="m54.15 45.43c0 10.25-9.917 11.838-22.15 11.838-12.232 0-22.15-1.588-22.15-11.838 0-23.293 5.695-35.629 22.15-35.629 16.455 0 22.15 12.336 22.15 35.629"/><path fill="#fff" d="m50.795 26.878l-1.113-.443 1.047-.583-1.162-.293.961-.715-1.188-.14.858-.834-1.196.017.741-.939-1.186.175.615-1.03-1.15.325.471-1.099-1.1.476.326-1.152-1.027.612.174-1.185-.939.74.016-1.195-.834.858-.142-1.188-.714.959-.292-1.16-.583 1.045-.443-1.111-.443 1.112-.584-1.046-.293 1.161-.717-.96-.137 1.188-.836-.857.019 1.197-.94-.742.172 1.184-1.026-.612.327 1.152-1.102-.473.475 1.098-1.152-.326.613 1.027-1.184-.173.741.939-1.195-.017.857.835-1.19.139.959.715-1.159.293 1.048.583-1.113.443 1.11.443-1.044.582 1.16.295-.961.715 1.189.139-.859.834 1.198-.016-.741.938 1.184-.172-.613 1.027 1.152-.324-.475 1.1 1.1-.473-.325 1.15 1.028-.615-.174 1.186.94-.742-.019 1.197.836-.857.137 1.188.717-.959.293 1.16.584-1.045.443 1.111.443-1.111.583 1.045.292-1.16.717.959.139-1.188.834.857-.017-1.197.938.744-.171-1.188 1.028.615-.327-1.152 1.1.475-.473-1.1 1.152.324-.615-1.027 1.186.174-.741-.939 1.196.016-.857-.834 1.188-.139-.962-.717 1.163-.291-1.047-.584 1.111-.444"/><circle fill="#297b9d" cx="42.15" cy="27.663" r="6.289"/><path fill="#183144" d="m46.08 27.663c0 2.605-2.111 4.719-4.717 4.719-2.604 0-4.717-2.113-4.717-4.719 0-2.603 2.112-4.716 4.717-4.716 2.606 0 4.717 2.113 4.717 4.716"/><circle fill="#ffd93b" cx="41.36" cy="27.663" r="4.062"/><circle fill="#183144" cx="41.36" cy="27.663" r="2.817"/><path fill="#fff" d="m14.318 27.321l-1.046.584 1.164.291-.962.717 1.188.139-.857.834 1.197-.016-.742.939 1.186-.174-.615 1.027 1.152-.324-.474 1.1 1.099-.475-.325 1.152 1.028-.615-.172 1.188.938-.744-.017 1.197.835-.857.139 1.188.715-.959.295 1.16.584-1.045.443 1.111.441-1.111.582 1.045.295-1.16.715.959.139-1.188.834.857-.018-1.197.941.743-.174-1.186 1.029.615-.328-1.15 1.1.473-.473-1.1 1.15.324-.611-1.027 1.184.172-.742-.938 1.197.016-.859-.834 1.189-.139-.959-.715 1.16-.295-1.045-.582 1.111-.443-1.111-.443 1.045-.583-1.16-.293.959-.715-1.189-.139.859-.835-1.197.017.742-.939-1.184.173.613-1.027-1.152.326.473-1.098-1.102.473.33-1.152-1.029.612.174-1.185-.941.742.018-1.197-.834.857-.139-1.188-.715.96-.295-1.161-.582 1.046-.441-1.112-.443 1.111-.584-1.045-.295 1.16-.715-.959-.139 1.188-.835-.858.017 1.195-.938-.74.172 1.185-1.028-.612.325 1.152-1.099-.476.473 1.099-1.151-.325.615 1.03-1.186-.175.742.939-1.197-.017.857.834-1.188.14.959.715-1.161.293 1.046.583-1.113.443 1.113.444"/><circle fill="#297b9d" cx="21.853" cy="27.663" r="6.289"/><path fill="#183144" d="m27.357 27.663c0 2.605-2.111 4.719-4.719 4.719-2.604 0-4.717-2.113-4.717-4.719 0-2.603 2.114-4.716 4.717-4.716 2.608 0 4.719 2.113 4.719 4.716"/><circle fill="#ffd93b" cx="22.64" cy="27.663" r="4.063"/><path fill="#183144" d="m25.457 27.663c0 1.557-1.26 2.818-2.818 2.818-1.555 0-2.814-1.262-2.814-2.818 0-1.555 1.26-2.816 2.814-2.816 1.558 0 2.818 1.261 2.818 2.816"/><path fill="#e5c22e" d="m25.2 37.837h13.604c0 4.301-3.043 7.785-6.801 7.785-3.76 0-6.803-3.484-6.803-7.785"/><path fill="#ffd93b" d="m40.465 38.38l-8.465 2.064-8.467-2.064c0-5.35 3.791-9.688 8.467-9.688 4.675 0 8.465 4.338 8.465 9.688"/><g fill="#3e4347"><path d="m34.961 30.765c.479.551.672 1.225.428 1.504s-.834.061-1.313-.49c-.482-.549-.673-1.223-.429-1.504.244-.28.832-.061 1.314.49"/><path d="m29.04 30.765c-.482.551-.674 1.225-.43 1.504.246.279.834.061 1.314-.49.48-.549.672-1.223.428-1.504-.244-.28-.833-.061-1.312.49"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m59.8 24.3c0 0 1.1-6.2-3.5-3.4 0 0-.4-6.3-4.3-1.9 0 0-2.1-3.9-4.4-.3-3.1 4.8-5.2 12.4-3.2 25l3.8-2.5c2.7-7.9 12.4-8.8 13.7-13.1.9-3-2.1-3.8-2.1-3.8"/><path d="m22.1 17.6l-9.9 3.6c2.2-12 16.6-11.2 16.6-11.2s-6.8 3.2-6.7 7.6"/><path d="m23.7 19.8l-10.5 1.4c4.8-11.2 18.7-7.3 18.7-7.3s-7.3 1.6-8.2 5.9"/></g><g fill="#ffd93b"><path d="m2 29l5.4-1.4v3.6c0-.1-3.3-.6-5.4-2.2"/><path d="M7.4,27.5L2,24.8c3.6-2.8,7.7-1.9,7.7-1.9L7.4,27.5z"/></g><g fill="#e08828"><path d="m33.8 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"/><path d="m25 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"/></g><path d="m54 36.2c3.9 0-4.1 17.5-23.3 17.5-13 0-23.9-5.2-23.9-21.5 0-10.1 6.4-18.3 19.5-15 13.3 3.5 6.5 19 27.7 19" fill="#42ade2"/><path d="m37.6 51.7c-15.6 0-14-12-27.9-11.2 5.1 15.8 27.9 11.2 27.9 11.2" fill="#fff"/><path d="m39.1 29.2c-10-9.8-20.2 6.2-7.9 12.6 12.1 6.2 20.4-4.8 20.4-4.8s-6.1-1.5-12.5-7.8" fill="#297b9d"/><circle cx="15.1" cy="24.9" r="2.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f427.svg b/build/js/jsxc/lib/emojione/assets/svg/1f427.svg
index 2336b44..ce85cad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f427.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f427.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e08828"><path d="m20.2 55.56h2.314v5.948h-2.314z"/><path d="m22.03 61.59c0-.492 1.643-1.478 3.668-1.478s3.668.985 3.668 1.478c0 .493-1.643.402-3.668.402s-3.668.091-3.668-.402"/><path d="m17.695 61.59c0-.492 1.642-1.478 3.667-1.478s3.668.985 3.668 1.478c0 .493-1.643.402-3.668.402s-3.667.091-3.667-.402"/><path d="m13.362 61.59c0-.492 1.643-1.478 3.668-1.478 2.026 0 3.667.985 3.667 1.478 0 .493-1.641.402-3.667.402-2.026 0-3.668.091-3.668-.402"/><path d="m41.481 55.56h2.314v5.948h-2.314z"/><path d="m43.3 61.59c0-.491 1.643-1.477 3.668-1.477s3.668.985 3.668 1.477c0 .493-1.643.402-3.668.402s-3.668.091-3.668-.402"/><path d="m38.972 61.59c0-.491 1.643-1.477 3.668-1.477s3.666.985 3.666 1.477c0 .493-1.641.402-3.666.402s-3.668.091-3.668-.402"/><path d="m34.64 61.59c0-.491 1.643-1.477 3.666-1.477 2.025 0 3.668.985 3.668 1.477 0 .493-1.643.402-3.668.402-2.024 0-3.666.091-3.666-.402"/></g><g fill="#3e4347"><path d="m52.06 43.713c0 12-8.982 13.858-20.06 13.858-11.08 0-20.06-1.857-20.06-13.858 0-27.27 5.159-41.713 20.06-41.713 14.901 0 20.06 14.444 20.06 41.713"/><path d="m5.157 38.04c-4.098 11.262-3.433 14.536-2.273 14.958 1.162.423 2.378-2.166 6.477-13.429 4.099-11.261 4.832-14.03 3.67-14.449-1.16-.422-3.774 1.659-7.874 12.92"/><path d="m58.844 38.04c4.099 11.262 3.434 14.536 2.272 14.958-1.162.423-2.377-2.167-6.477-13.429-4.099-11.261-4.832-14.03-3.67-14.449 1.161-.422 3.775 1.659 7.875 12.92"/></g><g fill="#fff"><path d="m32 24.08c-22.457 0-17.04 25.698-17.04 25.698 1.965 5.531 8.845 6.492 17.04 6.492 8.188 0 15.07-.961 17.03-6.492 0 0 5.422-25.698-17.03-25.698"/><circle cx="42.06" cy="15.871" r="3"/></g><circle fill="#3e4347" cx="42.06" cy="15.871" r="2.081"/><circle fill="#fff" cx="21.943" cy="15.871" r="3"/><circle fill="#3e4347" cx="21.943" cy="15.871" r="2.08"/><path fill="#e08828" d="m27.757 18.989h8.486c0 2.206-1.898 3.992-4.242 3.992-2.346 0-4.244-1.786-4.244-3.992"/><path fill="#f29a2e" d="m37.28 19.267l-5.281 1.059-5.281-1.059c0-2.742 2.363-4.966 5.281-4.966 2.916 0 5.281 2.224 5.281 4.966"/><g fill="#3e4347"><path d="m33.849 15.364c.299.282.418.628.266.771-.152.144-.52.031-.818-.251-.301-.282-.42-.627-.268-.771.152-.145.519-.031.82.251"/><path d="m30.15 15.364c-.301.282-.42.628-.268.771.154.144.52.031.82-.251.299-.282.418-.627.268-.771-.152-.145-.521-.031-.82.251"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e08828"><path d="m26.3 60.5c-.8 0-2.6.7-3.2.1-.8-.8 0-4.6 0-4.6h-2.3c0 0 .8 3.8 0 4.6-.6.5-2.4-.1-3.2-.1-2 0-3.7 1.5-3.7 1.5h16c.1 0-1.5-1.5-3.6-1.5"/><path d="m46.3 60.5c-.8 0-2.6.7-3.2.1-.8-.8 0-4.6 0-4.6h-2.3c0 0 .8 3.8 0 4.6-.6.5-2.4-.1-3.2-.1-2 0-3.7 1.5-3.7 1.5h16c.1 0-1.5-1.5-3.6-1.5"/></g><g fill="#3e4347"><path d="M10.4,27c-10.8,6.7-8.7,16-7.1,14.9C20,29.7,24.2,18.5,10.4,27z"/><path d="m53.6 27c-13.8-8.5-9.6 2.7 7.1 14.9 1.6 1.1 3.7-8.2-7.1-14.9"/><path d="m48 17.5c0-8.6-7.2-15.5-16-15.5-8.8 0-16 6.9-16 15.5 0 11.6-4 15.5-4 23.2 0 10.6 9 19.3 20 19.3s20-8.7 20-19.3c0-7.7-4-11.6-4-23.2"/></g><path d="m44 18.8c0-12.4-10.1-10-10.1-.7h-3.7c-.1-9.3-10.2-11.7-10.2.7 0 9.7-4 15.7-4 22.1 0 11.6 7.7 17.1 16 17.1s16-5.6 16-17.1c0-6.4-4-12.4-4-22.1" fill="#fff"/><g fill="#3e4347"><path d="m41 17c0 1.7-.9 3-2 3s-2-1.3-2-3c0-1.7.9-3 2-3s2 1.3 2 3"/><path d="m27 17c0 1.7-.9 3-2 3-1.1 0-2-1.3-2-3 0-1.7.9-3 2-3 1.1 0 2 1.3 2 3"/></g><path d="m28 22h8c0 2.5-1.8 4.6-4 4.6-2.2 0-4-2-4-4.6" fill="#e08828"/><path d="m37 22.3l-5 1.2-5-1.2c0-3.2 2.2-5.7 5-5.7 2.8 0 5 2.6 5 5.7" fill="#f29a2e"/><g fill="#3e4347"><path d="m33.7 17.8c.3.3.4.7.3.9-.1.2-.5 0-.8-.3-.3-.3-.4-.7-.3-.9.2-.1.6 0 .8.3"/><path d="m30.3 17.8c-.3.3-.4.7-.3.9.1.2.5 0 .8-.3.3-.3.4-.7.3-.9-.2-.1-.6 0-.8.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f428.svg b/build/js/jsxc/lib/emojione/assets/svg/1f428.svg
index 8d844df..88832b7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f428.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f428.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#a8b2ba"><path d="m17.912 51.656c-3.41 5.816-6.195 5.973-8.686 4.557s-3.746-3.869-.336-9.686c3.412-5.816 10.195-12.795 12.688-11.379 2.49 1.416-.256 10.69-3.666 16.508"/><path d="m55.11 46.527c3.41 5.816 2.156 8.27-.334 9.686-2.492 1.416-5.275 1.26-8.688-4.557-3.41-5.818-6.154-15.09-3.664-16.509 2.491-1.415 9.276 5.564 12.686 11.38"/><ellipse cx="32" cy="52.08" rx="13.875" ry="8.41"/></g><ellipse fill="#cfdae8" cx="32" cy="46.559" rx="13" ry="9.283"/><path fill="#a8b2ba" d="M62,13.81c0,6.52-4.986,11.807-11.129,11.807c-6.148,0-11.133-5.287-11.133-11.807
- C39.738,7.287,44.723,2,50.871,2C57.014,2,62,7.287,62,13.81z"/><path fill="#cfdae8" d="m57.56 13.81c0 3.937-2.998 7.127-6.691 7.127-3.699 0-6.693-3.19-6.693-7.127 0-3.939 2.994-7.132 6.693-7.132 3.692 0 6.691 3.192 6.691 7.132"/><ellipse fill="#a8b2ba" cx="13.13" cy="13.81" rx="11.13" ry="11.807"/><path fill="#cfdae8" d="m19.824 13.81c0 3.937-2.998 7.127-6.693 7.127-3.699 0-6.693-3.19-6.693-7.127 0-3.939 2.994-7.132 6.693-7.132 3.695 0 6.693 3.192 6.693 7.132"/><g fill="#a8b2ba"><path d="m11.994 35.745c-2.338-2.138-2.994-5.306-2.994-5.306l1.535.296c0 0-1.775-1.717-1.297-5.431l1.49 1.463c0 0-1.49-3.771-.193-7.246l1.652 1.107c0 0-.502-1.417-.041-2.387l.713.508c0 0-1.295-3.25-.117-4.616.656 1.97 1.434 1.941 1.434 1.941s-.951-1.476-.209-2.093c.756 1.109 1.383.387 1.354.054-.041-.442.15-1.069-2.072-1.363 1.775-.985 3.877-.301 3.877-.301s-.076-1.036-1.629-.996c1.434-1.111 3.436-.45 3.436-.45l-2.598 6.305-3.16 9.397-1.181 9.118"/><path d="m32 7.521c-17.578 0-21.465 11.904-21.465 26.296 0 1.475 9.611 9.689 21.465 9.689s21.465-8.215 21.465-9.689c0-14.392-3.887-26.296-21.465-26.296"/><path d="m52.01 35.745c2.338-2.138 2.994-5.306 2.994-5.306l-1.535.296c0 0 1.777-1.717 1.295-5.431l-1.49 1.463c0 0 1.49-3.771.195-7.246l-1.65 1.107c0 0 .502-1.417.041-2.387l-.713.508c0 0 1.293-3.25.115-4.616-.654 1.97-1.434 1.941-1.434 1.941s.953-1.476.209-2.093c-.756 1.109-1.385.387-1.355.054.043-.442-.146-1.069 2.074-1.363-1.775-.985-3.877-.301-3.877-.301s.076-1.036 1.629-.996c-1.434-1.111-3.434-.45-3.434-.45l2.598 6.305 3.158 9.397 1.18 9.118"/></g><ellipse fill="#d5ff83" cx="19.848" cy="28" rx="4" ry="3.931"/><ellipse fill="#3e4347" cx="19.849" cy="28" rx="2.571" ry="2.527"/><ellipse fill="#d5ff83" cx="44.15" cy="28" rx="4" ry="3.931"/><ellipse fill="#3e4347" cx="44.15" cy="28" rx="2.571" ry="2.527"/><path fill="#555e63" d="m24.84 34.22c0-5.931 4.826-8.183 7.16-8.183s7.16 2.252 7.16 8.183c0 7.548-2.623 9.286-7.16 9.286s-7.16-1.738-7.16-9.286"/><path fill="#96a2aa" d="m27.717 55.762c0 5.076-3.195 6.238-7.135 6.238-3.941 0-7.137-1.162-7.135-6.238-.002-5.074 3.193-9.189 7.135-9.189s7.135 4.115 7.135 9.189"/><path fill="#cfdae8" d="m25.625 57.14c0 3.588-2.258 4.408-5.04 4.408s-5.04-.82-5.04-4.408c-.002-3.588 2.258-6.494 5.04-6.494s5.04 2.908 5.04 6.494"/><path fill="#96a2aa" d="m50.555 55.764c0 5.074-3.195 6.236-7.135 6.236-3.941 0-7.137-1.16-7.135-6.236-.002-5.076 3.193-9.191 7.135-9.191 3.939-.001 7.135 4.115 7.135 9.191"/><path fill="#cfdae8" d="m48.46 57.14c0 3.59-2.258 4.41-5.04 4.41s-5.05-.82-5.04-4.408c-.002-3.588 2.256-6.496 5.04-6.496 2.785 0 5.04 2.908 5.04 6.494"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#a8b2ba"><path d="m17.9 51.7c-3.4 5.8-6.2 6-8.7 4.6s-3.7-3.9-.3-9.7c3.4-5.8 10.2-12.8 12.7-11.4 2.5 1.4-.3 10.6-3.7 16.5"/><path d="m55.1 46.5c3.4 5.8 2.2 8.3-.3 9.7-2.5 1.4-5.3 1.3-8.7-4.6-3.4-5.8-6.2-15.1-3.7-16.5 2.5-1.4 9.3 5.6 12.7 11.4"/><ellipse cx="32" cy="52.1" rx="13.9" ry="8.4"/></g><ellipse cx="32" cy="46.6" rx="13" ry="9.3" fill="#cfdae8"/><path d="M62,13.8c0,6.5-5,11.8-11.1,11.8c-6.1,0-11.1-5.3-11.1-11.8c0-6.5,5-11.8,11.1-11.8C57,2,62,7.3,62,13.8z" fill="#a8b2ba"/><path d="m57.6 13.8c0 3.9-3 7.1-6.7 7.1-3.7 0-6.7-3.2-6.7-7.1 0-3.9 3-7.1 6.7-7.1 3.7 0 6.7 3.2 6.7 7.1" fill="#cfdae8"/><ellipse cx="13.1" cy="13.8" rx="11.1" ry="11.8" fill="#a8b2ba"/><path d="m19.8 13.8c0 3.9-3 7.1-6.7 7.1-3.7 0-6.7-3.2-6.7-7.1 0-3.9 3-7.1 6.7-7.1 3.7 0 6.7 3.2 6.7 7.1" fill="#cfdae8"/><g fill="#a8b2ba"><path d="m12 35.7c-2.3-2.1-3-5.3-3-5.3l1.5.3c0 0-1.8-1.7-1.3-5.4l1.5 1.5c0 0-1.5-3.8-.2-7.2l1.7 1.1c0 0-.5-1.4 0-2.4l.7.5c0 0-1.3-3.2-.1-4.6.7 2 1.4 1.9 1.4 1.9s-1-1.5-.2-2.1c.8 1.1 1.4.4 1.4.1 0-.4.1-1.1-2.1-1.4 1.8-1 3.9-.3 3.9-.3s-.1-1-1.6-1c1.4-1.1 3.4-.4 3.4-.4l-2.6 6.3-3.2 9.4-1.2 9"/><path d="m32 7.5c-17.6 0-21.5 11.9-21.5 26.3 0 1.5 9.6 9.7 21.5 9.7s21.5-8.2 21.5-9.7c0-14.4-3.9-26.3-21.5-26.3"/><path d="m52 35.7c2.3-2.1 3-5.3 3-5.3l-1.5.3c0 0 1.8-1.7 1.3-5.4l-1.5 1.5c0 0 1.5-3.8.2-7.2l-1.7 1.1c0 0 .5-1.4 0-2.4l-.7.5c0 0 1.3-3.2.1-4.6-.7 2-1.4 1.9-1.4 1.9s1-1.5.2-2.1c-.8 1.1-1.4.4-1.4.1 0-.4-.1-1.1 2.1-1.4-1.8-1-3.9-.3-3.9-.3s.1-1 1.6-1c-1.4-1.1-3.4-.4-3.4-.4l2.6 6.3 3.2 9.4 1.2 9"/></g><ellipse cx="19.8" cy="28" rx="4" ry="3.9" fill="#d5ff83"/><ellipse cx="19.8" cy="28" rx="2.6" ry="2.5" fill="#3e4347"/><ellipse cx="44.2" cy="28" rx="4" ry="3.9" fill="#d5ff83"/><ellipse cx="44.2" cy="28" rx="2.6" ry="2.5" fill="#3e4347"/><path d="m24.8 34.2c0-5.9 4.8-8.2 7.2-8.2s7.2 2.3 7.2 8.2c0 7.5-2.6 9.3-7.2 9.3s-7.2-1.7-7.2-9.3" fill="#555e63"/><path d="m27.7 55.8c0 5.1-3.2 6.2-7.1 6.2-3.9 0-7.1-1.2-7.1-6.2 0-5.1 3.2-9.2 7.1-9.2s7.1 4.1 7.1 9.2" fill="#96a2aa"/><path d="m25.6 57.1c0 3.6-2.3 4.4-5 4.4s-5-.8-5-4.4c0-3.6 2.3-6.5 5-6.5s5 3 5 6.5" fill="#cfdae8"/><path d="m50.6 55.8c0 5.1-3.2 6.2-7.1 6.2-3.9 0-7.1-1.2-7.1-6.2 0-5.1 3.2-9.2 7.1-9.2 3.9 0 7.1 4.1 7.1 9.2" fill="#96a2aa"/><path d="m48.5 57.1c0 3.6-2.3 4.4-5 4.4s-5-.8-5-4.4c0-3.6 2.3-6.5 5-6.5 2.7 0 5 3 5 6.5" fill="#cfdae8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f429.svg b/build/js/jsxc/lib/emojione/assets/svg/1f429.svg
index f76bb39..7b56afe 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f429.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f429.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffc5d3"><path d="m55.29 31.16c-.166 0-.332-.053-.473-.161-.33-.257-.387-.729-.125-1.054 1.137-1.419 3.5-4.371 1.039-10.377-.158-.385.031-.821.422-.977.389-.153.832.031.99.415 2.793 6.813-.043 10.355-1.256 11.867-.15.189-.372.287-.597.287"/><path d="m41.754 36.03v17.331c0 2.104 1.039 3.045 2.322 3.045 1.285 0 2.324-.941 2.324-3.045v-17.331h-4.646"/></g><ellipse fill="#ff78b5" cx="44.08" cy="50.654" rx="4.647" ry="2.25"/><ellipse fill="#e86097" cx="46.736" cy="35.36" rx="13.193" ry="11.412"/><ellipse fill="#ff78b5" cx="56.44" cy="19.287" rx="3.618" ry="2.964"/><path fill="#ffc5d3" d="m52.963 43.03v10.331c0 2.104 1.041 3.045 2.324 3.045 1.285 0 2.324-.941 2.324-3.045v-12.331c-2.01 1.821-4.648 2-4.648 2"/><ellipse fill="#ff78b5" cx="55.29" cy="50.654" rx="4.648" ry="2.25"/><g fill="#ffc5d3"><path d="m15.04 35.29v22.719c0 2.758 1.363 3.991 3.044 3.991 1.687 0 3.049-1.233 3.049-3.991v-22.719h-6.093"/><path d="m29.74 35.29v22.719c0 2.758 1.363 3.991 3.045 3.991 1.686 0 3.047-1.233 3.047-3.991v-22.719h-6.092"/></g><g fill="#ff78b5"><ellipse cx="18.09" cy="54.46" rx="6.093" ry="3"/><ellipse cx="32.786" cy="54.46" rx="6.093" ry="3"/></g><ellipse fill="#e86097" cx="25.439" cy="29.363" rx="20" ry="19.64"/><g fill="#ff78b5"><path d="m14.418 33.391c0 7.688-2.344 8.919-5.236 8.919-2.892 0-5.235-6.231-5.235-13.919 0-7.687 5.391-13.919 8.282-13.919s2.189 11.232 2.189 18.919"/><path d="m36.461 33.391c0 7.688 2.346 8.919 5.234 8.919 2.893 0 5.236-6.231 5.236-13.919 0-7.687-5.391-13.919-8.283-13.919-2.888 0-2.187 11.232-2.187 18.919"/></g><path fill="#ffc5d3" d="m40.43 22.24c0 6.979-2.506 6.509-6.35 11.603-2.444 3.238-2.717 7.756-8.642 7.756-5.928 0-6.202-4.519-8.644-7.755-3.846-5.094-6.351-4.622-6.351-11.604 0-6.195 6.712-6.432 14.994-6.432 8.28.001 14.993.237 14.993 6.432"/><path fill="#fff" d="m17.312 19.759c2.801 0 5.073 2.109 5.073 4.713 0 2.602-2.272 4.712-5.073 4.712-2.805 0-5.075-2.11-5.075-4.712 0-2.604 2.27-4.713 5.075-4.713"/><ellipse fill="#3e4347" cx="17.312" cy="24.471" rx="3.511" ry="3.263"/><ellipse fill="#fff" cx="33.566" cy="24.471" rx="5.074" ry="4.712"/><g fill="#3e4347"><ellipse cx="33.566" cy="24.471" rx="3.512" ry="3.263"/><path d="m20.1 36.634c0-2.34 2.39-2.793 5.337-2.793s5.335.453 5.335 2.793c0 1.861-4.248 3.514-5.335 3.514-1.091-.001-5.337-1.653-5.337-3.514"/></g><path fill="none" stroke="#3e4347" stroke-miterlimit="10" d="m25.44 41.597v-2.129"/><g fill="#ff78b5"><ellipse cx="13.266" cy="13.604" rx="6.993" ry="6.604"/><ellipse cx="37.612" cy="13.604" rx="6.993" ry="6.604"/><ellipse cx="25.44" cy="10.998" rx="9.531" ry="9"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffc5d3"><path d="m55.3 31.2c-.2 0-.3-.1-.5-.2-.3-.3-.4-.7-.1-1.1 1.1-1.4 3.5-4.4 1-10.4-.2-.4 0-.8.4-1 .4-.2.8 0 1 .4 2.8 6.8 0 10.4-1.3 11.9-.1.3-.3.4-.5.4"/><path d="M41.8,36v17.3c0,2.1,1,3,2.3,3c1.3,0,2.3-0.9,2.3-3V36H41.8z"/></g><ellipse cx="44.1" cy="50.7" rx="4.6" ry="2.2" fill="#ff78b5"/><ellipse cx="46.7" cy="35.4" rx="13.2" ry="11.4" fill="#e86097"/><ellipse cx="56.4" cy="19.3" rx="3.6" ry="3" fill="#ff78b5"/><path d="m53 43v10.3c0 2.1 1 3 2.3 3 1.3 0 2.3-.9 2.3-3v-12.3c-2 1.8-4.6 2-4.6 2" fill="#ffc5d3"/><ellipse cx="55.3" cy="50.7" rx="4.6" ry="2.2" fill="#ff78b5"/><g fill="#ffc5d3"><path d="M15,35.3V58c0,2.8,1.4,4,3,4c1.7,0,3-1.2,3-4V35.3H15z"/><path d="m29.7 35.3v22.7c0 2.8 1.4 4 3 4 1.7 0 3-1.2 3-4v-22.7h-6"/></g><g fill="#ff78b5"><ellipse cx="18.1" cy="54.5" rx="6.1" ry="3"/><ellipse cx="32.8" cy="54.5" rx="6.1" ry="3"/></g><ellipse cx="25.4" cy="29.4" rx="20" ry="19.6" fill="#e86097"/><g fill="#ff78b5"><path d="m14.4 33.4c0 7.7-2.3 8.9-5.2 8.9s-5.2-6.2-5.2-13.9c0-7.7 5.4-13.9 8.3-13.9s2.1 11.2 2.1 18.9"/><path d="m36.5 33.4c0 7.7 2.3 8.9 5.2 8.9 2.9 0 5.2-6.2 5.2-13.9 0-7.7-5.4-13.9-8.3-13.9-2.8 0-2.1 11.2-2.1 18.9"/></g><path d="m40.4 22.2c0 7-2.5 6.5-6.3 11.6-2.4 3.2-2.7 7.8-8.6 7.8-5.9 0-6.2-4.5-8.6-7.8-3.8-5.1-6.4-4.6-6.4-11.6 0-6.2 6.7-6.4 15-6.4 8.2 0 14.9.2 14.9 6.4" fill="#ffc5d3"/><path d="m17.3 19.8c2.8 0 5.1 2.1 5.1 4.7 0 2.6-2.3 4.7-5.1 4.7-2.8 0-5.1-2.1-5.1-4.7 0-2.6 2.3-4.7 5.1-4.7" fill="#fff"/><ellipse cx="17.3" cy="24.5" rx="3.5" ry="3.3" fill="#3e4347"/><ellipse cx="33.6" cy="24.5" rx="5.1" ry="4.7" fill="#fff"/><g fill="#3e4347"><ellipse cx="33.6" cy="24.5" rx="3.5" ry="3.3"/><path d="m20.1 36.6c0-2.3 2.4-2.8 5.3-2.8s5.3.5 5.3 2.8c0 1.9-4.2 3.5-5.3 3.5-1.1 0-5.3-1.6-5.3-3.5"/></g><path fill="none" stroke="#3e4347" stroke-miterlimit="10" d="m25.4 41.6v-2.1"/><g fill="#ff78b5"><ellipse cx="13.3" cy="13.6" rx="7" ry="6.6"/><ellipse cx="37.6" cy="13.6" rx="7" ry="6.6"/><ellipse cx="25.4" cy="11" rx="9.5" ry="9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f42a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f42a.svg
index dfb4ba7..63e30c1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f42a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f42a.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac7e" d="m56.34 26.14c4.181-2.971 6.474-16.405 5.396-17.593-1.081-1.193-13.489.914-16.308 5.63-2.166 3.628 7.523 14.374 10.912 11.963"/><path fill="#c1875d" d="m54.682 23.757c2.592-1.842 3.347-10.91 3.347-10.91s-8.363.57-10.11 3.492c-1.343 2.25 4.662 8.912 6.763 7.418"/><path fill="#e0ac7e" d="m7.661 26.14c-4.181-2.971-6.473-16.406-5.396-17.593 1.081-1.193 13.49.914 16.307 5.63 2.168 3.628-7.521 14.374-10.911 11.963"/><path fill="#c1875d" d="m9.317 23.757c-2.59-1.842-3.345-10.91-3.345-10.91s8.362.57 10.11 3.492c1.344 2.25-4.661 8.912-6.764 7.418"/><g fill="#e0ac7e"><path d="M50.567,35.34C45.201,41.261,47.725,57.828,32,57.828c-22.519,0-13.2-16.567-18.567-22.488
- C1.284,21.933,21.795,12.584,32,12.584S62.717,21.933,50.567,35.34z"/><path d="m32.736 29.558c0 0-4.229-15.225-11.319-18.865 0 0 2.881-2.193 5.244-.658 0 0-.073-2.691-2.263-4.891 0 0 4.322-.811 6.879 4 0 0-.069-4.678-1.05-7.148 0 0 7.535 3.418 10.143 12.644 0-.001-7.206 2.272-7.634 14.914"/></g><g fill="#3e4347"><ellipse cx="12.866" cy="29" rx="3.951" ry="4.36"/><ellipse cx="51.13" cy="28.845" rx="3.952" ry="4.359"/></g><path fill="#89664c" d="m33 53.64c0 2.161-3.135 3.909-7 3.909-3.865 0-6.999-1.75-6.999-3.909 0-2.162 3.134-3.911 6.999-3.911 3.867 0 7 1.749 7 3.911"/><path fill="#ffe2b3" d="m39.435 52.741c0 3.217-5.231 7.837-11.435 9.09-6.583 1.335-11.436-5.878-11.436-9.09s.246.421 6.562.421 16.309-3.638 16.309-.421"/><path fill="#ff717f" d="m29.378 46.996c0 0-5.582 2.719-6.123 9.788-.519 6.794-9.823 7.082-9.31.081.515-6.999 6.528-9.876 8.03-9.833 1.508.048 7.06-.014 7.398-.036"/><path fill="#e2596c" d="m24.627 47.913c-.804.657-1.641 1.22-2.421 1.834-.783.611-1.524 1.269-2.16 2.02-.637.753-1.161 1.604-1.526 2.53-.372.924-.575 1.918-.653 2.924-.005-1.01.115-2.027.417-3.01.295-.979.767-1.912 1.367-2.753 1.188-1.702 2.894-2.959 4.316-4.301l.66.751"/><path fill="#89664c" d="m42.959 47.12c0 8.809-7.083 13.571-12.375 9.109-2.067-1.741-4.315-2.735-6.332-3.733-3.468-1.717-6.939-2.151-6.939-7.72l25.646 2.344"/><path fill="#ffe2b3" d="m44.584 48.8c0 8.808-7.667 11.454-14.333 5.971-6.05-4.981-13.12-2.09-13.12-10.897 0-2.748 4.668-10.11 4.668-10.11 0-9.12 2.855-15.16 10.202-15.16s10.197 6.04 10.197 15.16c0-.001 2.387 12.28 2.387 15.03"/><g fill="#89664c"><path d="m24.653 34.901c3.532.66 5.685 1.01 7.347 4.742"/><path d="m39.35 34.901c-3.534.66-5.682 1.01-7.347 4.742"/><path d="m28.439 54.1c1.424-1.989 2.285-4.392 2.831-6.859.534-2.476.781-5.04.73-7.603.301 2.55.307 5.145.01 7.728-.154 1.29-.396 2.579-.762 3.848-.365 1.264-.866 2.523-1.538 3.684l-1.271-.798"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 26.1c4.2-3 6.5-16.4 5.4-17.6-1.1-1.2-13.5.9-16.3 5.6-2.1 3.7 7.6 14.4 10.9 12" fill="#e0ac7e"/><path d="m54.7 23.8c2.6-1.8 3.3-10.9 3.3-10.9s-8.4.6-10.1 3.5c-1.3 2.2 4.7 8.9 6.8 7.4" fill="#c1875d"/><path d="m7.7 26.1c-4.2-3-6.5-16.4-5.4-17.6 1.1-1.2 13.5.9 16.3 5.6 2.1 3.7-7.5 14.4-10.9 12" fill="#e0ac7e"/><path d="m9.3 23.8c-2.6-1.9-3.3-11-3.3-11s8.4.6 10.1 3.5c1.3 2.3-4.7 9-6.8 7.5" fill="#c1875d"/><g fill="#e0ac7e"><path d="m50.6 35.3c-5.4 5.9-2.8 22.5-18.6 22.5-22.5 0-13.2-16.6-18.6-22.5-12.1-13.4 8.4-22.7 18.6-22.7s30.7 9.3 18.6 22.7"/><path d="m32.7 29.6c0 0-4.2-15.2-11.3-18.9 0 0 2.9-2.2 5.2-.7 0 0-.1-2.7-2.3-4.9 0 0 4.3-.8 6.9 4 0 0-.1-4.7-1-7.1 0 0 7.5 3.4 10.1 12.6.1 0-7.1 2.3-7.6 15"/></g><g fill="#3e4347"><ellipse cx="12.9" cy="29" rx="4" ry="4.4"/><ellipse cx="51.1" cy="28.8" rx="4" ry="4.4"/></g><path d="m33 53.6c0 2.2-3.1 3.9-7 3.9-3.9 0-7-1.8-7-3.9 0-2.2 3.1-3.9 7-3.9 3.9 0 7 1.8 7 3.9" fill="#89664c"/><path d="m39.4 52.7c0 3.2-5.2 7.8-11.4 9.1-6.6 1.3-11.4-5.9-11.4-9.1s.2.4 6.6.4 16.2-3.6 16.2-.4" fill="#ffe2b3"/><path d="m29.4 47c0 0-5.6 2.7-6.1 9.8-.5 6.8-9.8 7.1-9.3.1.5-7 6.5-9.9 8-9.8 1.5 0 7-.1 7.4-.1" fill="#ff717f"/><path d="m24.6 47.9c-.8.7-1.6 1.2-2.4 1.8-.8.6-1.5 1.3-2.2 2-.6.8-1.2 1.6-1.5 2.5-.4.9-.6 1.9-.7 2.9 0-1 .1-2 .4-3 .3-1 .8-1.9 1.4-2.8 1.2-1.7 2.9-3 4.3-4.3l.7.9" fill="#e2596c"/><path d="m43 47.1c0 8.8-7.1 13.6-12.4 9.1-2.1-1.7-4.3-2.7-6.3-3.7-3.5-1.7-6.9-2.2-6.9-7.7l25.6 2.3" fill="#89664c"/><path d="m44.6 48.8c0 8.8-7.7 11.5-14.3 6-6.1-5-13.1-2.1-13.1-10.9 0-2.7 4.7-10.1 4.7-10.1 0-9.1 2.9-15.2 10.2-15.2s10.2 6 10.2 15.2c-.1 0 2.3 12.2 2.3 15" fill="#ffe2b3"/><g fill="#89664c"><path d="m24.7 34.9c3.5.7 5.7 1 7.3 4.7"/><path d="m39.3 34.9c-3.5.7-5.7 1-7.3 4.7"/><path d="m28.4 54.1c1.4-2 2.3-4.4 2.8-6.9.5-2.5.8-5 .7-7.6.3 2.5.3 5.1 0 7.7-.2 1.3-.4 2.6-.8 3.8-.4 1.3-.9 2.5-1.5 3.7l-1.2-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f42b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f42b.svg
index ec204a4..fbd4b0e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f42b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f42b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c1875d"><ellipse cx="51.14" cy="40.06" rx="4.773" ry="6.171"/><ellipse cx="27.844" cy="43.804" rx="4.773" ry="6.17"/><path d="m49.32 33.676v23.18c0 2.813 1.318 3.051 2.941 3.051 1.629 0 2.945-.237 2.945-3.051v-23.18h-5.886"/></g><path fill="#89664c" d="m55.912 61.999h-7.301l.707-5.092c0 0 .771-1.021 2.943-1.021 2.172 0 2.943 1.021 2.943 1.021l.708 5.092"/><path fill="#c1875d" d="m24.9 33.676v23.18c0 2.813 1.318 3.051 2.941 3.051 1.629 0 2.945-.237 2.945-3.051v-23.18h-5.886"/><path fill="#89664c" d="m31.495 61.999h-7.302l.707-5.092c0 0 .771-1.021 2.943-1.021s2.943 1.021 2.943 1.021l.709 5.092"/><path fill="#e0ac7e" d="m52.97 33.676v23.18c0 2.813 1.317 3.051 2.941 3.051 1.628 0 2.944-.237 2.944-3.051v-23.18h-5.885"/><path fill="#c1875d" d="m59.56 61.999h-7.302l.708-5.092c0 0 .771-1.021 2.943-1.021 2.171 0 2.942 1.021 2.942 1.021l.709 5.092"/><g fill="#e0ac7e"><path d="m60.35 41.551c.226-4.802-3.386-9.535-3.421-9.583l.71-.516c.156.204 3.837 5.03 3.598 10.136l-.887-.037"/><path d="m60.765 38.935c-.662 1.188-1.097 2.31-1.204 3.185.113.795.551 1.709 1.234 2.576.662-1.187 1.096-2.311 1.205-3.185-.115-.795-.551-1.71-1.235-2.576"/><path d="m58.871 35.891c.498 5.826-12.02 7.913-21.484 7.913-12.266 0-20.811-20.487-18.277-17.02 3.414 4.669 5.791-2.283 8.549-3.235 5.859-2.02 10.863.14 17.1.739 7.751.744 14.11 5.185 14.11 11.603"/><path d="m55.01 28.14c0 5.331-3.197 7.682-7.143 7.682s-7.143-4.323-7.143-9.654c0-.296 3.196-9.653 7.143-9.653 3.946 0 7.143 10.306 7.143 11.625"/><path d="m41.943 24.5c0 5.331-3.197 9.653-7.142 9.653-3.946 0-7.144-4.322-7.144-9.653 0-.298 3.199-9.654 7.144-9.654s7.142 9.357 7.142 9.654"/><path d="m28.553 33.676v23.18c0 2.813 1.316 3.051 2.941 3.051 1.627 0 2.944-.237 2.944-3.051v-23.18h-5.885"/></g><path fill="#c1875d" d="m35.15 61.999h-7.303l.709-5.092c0 0 .77-1.021 2.943-1.021 2.171 0 2.942 1.021 2.942 1.021l.709 5.092"/><path fill="#e0ac7e" d="m7.545 13.916c4.873 2.139 6.796.074 6.796.074-9.388 10.783-4.27 42.42 13.902 26.07 21.576-19.415 2.463-8.134-.586-8.134s-11.433-.738-5.695-15.415c5.737-14.679-8.02-10.175-14.433-9.88-3.412.157-3.4 2.284-4.987 3.226-.945.561-.489 1.21.124 1.348l.049.408c-1.132.576-.39 2.443.805 2.064 2.066-.653 3.205-.124 4.03.237"/><path fill="#ffe2b3" d="m14.342 13.99c-9.64 9.972-4.76 40.95 12.262 27.447-13.544 5.775-15.431-23.365-12.262-27.447"/><g fill="#e0ac7e"><ellipse cx="31.495" cy="44.696" rx="4.773" ry="6.171"/><ellipse cx="54.09" cy="39.27" rx="4.773" ry="6.171"/><path d="m22.922 8.463c-1.42-2.892-6.57-6.707-10.438-6.452 0 0 1.385.635 1.418 1.652 0 0-1.76-.029-2.266.531 1.385.383 1.565 1.036 1.565 1.036s-1.06-.299-1.997.524c1.41.018 1.41.327 3.17 1.39 1.761 1.063 8.548 1.319 8.548 1.319"/></g><path fill="#89664c" d="m4.725 8.685c.102.122.51-.002.913-.277.403-.275.646-.596.545-.718-.102-.121-.51.003-.912.277-.403.276-.647.597-.546.718"/><ellipse fill="#c1875d" cx="14.813" cy="9.177" rx="2.086" ry="1.534"/><ellipse fill="#3e4347" cx="14.755" cy="8.922" rx=".946" ry=".723"/><path fill="#c1875d" d="m18.627 7.834c.304-.431 2.766-1.032 4.133-1.062 1.368-.029.177 2.979-2.066 3.422-2.243.443-2.419-1.858-2.067-2.36"/><path fill="#e0ac7e" d="m19 8.472c.238-.36 2.172-.864 3.246-.889s.139 2.494-1.623 2.865c-1.762.371-1.899-1.555-1.623-1.976"/><path fill="#89664c" d="m2.672 11.208c2.624 0 6.47 1.306 8.532.656-2.501.988-5.859-.25-8.49-.25l-.042-.406"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c1875d"><ellipse cx="51.1" cy="40.1" rx="4.8" ry="6.2"/><ellipse cx="27.8" cy="43.8" rx="4.8" ry="6.2"/><path d="m49.3 33.7v23.2c0 2.8 1.3 3.1 2.9 3.1 1.6 0 2.9-.2 2.9-3.1v-23.2h-5.8"/></g><path d="m55.9 62h-7.3l.7-5.1c0 0 .8-1 2.9-1s2.9 1 2.9 1l.8 5.1" fill="#89664c"/><path d="m24.9 33.7v23.2c0 2.8 1.3 3.1 2.9 3.1 1.6 0 2.9-.2 2.9-3.1v-23.2h-5.8" fill="#c1875d"/><path d="m31.5 62h-7.3l.7-5.1c0 0 .8-1 2.9-1s2.9 1 2.9 1l.8 5.1" fill="#89664c"/><path d="M53,33.7v23.2c0,2.8,1.3,3.1,2.9,3.1c1.6,0,2.9-0.2,2.9-3.1V33.7H53z" fill="#e0ac7e"/><path d="m59.6 62h-7.3l.7-5.1c0 0 .8-1 2.9-1 2.2 0 2.9 1 2.9 1l.8 5.1" fill="#c1875d"/><g fill="#e0ac7e"><path d="m60.4 41.6c.2-4.8-3.4-9.5-3.4-9.6l.7-.5c.2.2 3.8 5 3.6 10.1h-.9"/><path d="m60.8 38.9c-.7 1.2-1.1 2.3-1.2 3.2.1.8.6 1.7 1.2 2.6.7-1.2 1.1-2.3 1.2-3.2-.1-.8-.6-1.7-1.2-2.6"/><path d="m58.9 35.9c.5 5.8-12 7.9-21.5 7.9-12.3 0-20.8-20.5-18.3-17 3.4 4.7 5.8-2.3 8.5-3.2 5.9-2 10.9.1 17.1.7 7.8.7 14.2 5.2 14.2 11.6"/><path d="m55 28.1c0 5.3-3.2 7.7-7.1 7.7s-7.1-4.3-7.1-9.7c0-.3 3.2-9.7 7.1-9.7 3.9.1 7.1 10.4 7.1 11.7"/><path d="m41.9 24.5c0 5.3-3.2 9.7-7.1 9.7-3.9 0-7.1-4.3-7.1-9.7 0-.3 3.2-9.7 7.1-9.7s7.1 9.4 7.1 9.7"/><path d="m28.6 33.7v23.2c0 2.8 1.3 3.1 2.9 3.1 1.6 0 2.9-.2 2.9-3.1v-23.2h-5.8"/></g><path d="m35.1 62h-7.3l.7-5.1c0 0 .8-1 2.9-1 2.2 0 2.9 1 2.9 1l.8 5.1" fill="#c1875d"/><path d="m7.5 13.9c4.9 2.1 6.8.1 6.8.1-9.3 10.8-4.2 42.4 13.9 26.1 21.6-19.4 2.5-8.1-.6-8.1s-11.4-.8-5.6-15.5c5.7-14.7-8-10.2-14.4-9.9-3.4.2-3.4 2.3-5 3.2-.9.6-.5 1.2.1 1.3v.4c-1.1.6-.4 2.4.8 2.1 2.1-.6 3.2 0 4 .3" fill="#e0ac7e"/><path d="m14.3 14c-9.6 10-4.8 41 12.3 27.4-13.5 5.8-15.4-23.3-12.3-27.4" fill="#ffe2b3"/><g fill="#e0ac7e"><ellipse cx="31.5" cy="44.7" rx="4.8" ry="6.2"/><ellipse cx="54.1" cy="39.3" rx="4.8" ry="6.2"/><path d="m22.9 8.5c-1.4-2.9-6.5-6.7-10.4-6.5 0 0 1.4.6 1.4 1.7 0 0-1.8 0-2.3.5 1.4.4 1.6 1 1.6 1s-1.1-.3-2 .5c1.4 0 1.4.3 3.2 1.4 1.7 1.1 8.5 1.4 8.5 1.4"/></g><path d="m4.7 8.7c.1.1.5 0 .9-.3.4-.3.7-.6.6-.7-.1-.1-.5 0-.9.3-.4.2-.7.6-.6.7" fill="#89664c"/><ellipse cx="14.8" cy="9.2" rx="2.1" ry="1.5" fill="#c1875d"/><ellipse cx="14.8" cy="8.9" rx=".9" ry=".7" fill="#3e4347"/><path d="m18.6 7.8c.3-.4 2.8-1 4.1-1.1 1.4 0 .2 3-2.1 3.4s-2.3-1.8-2-2.3" fill="#c1875d"/><path d="m19 8.5c.2-.4 2.2-.9 3.2-.9s.1 2.5-1.6 2.9c-1.7.3-1.9-1.6-1.6-2" fill="#e0ac7e"/><path d="m2.7 11.2c2.6 0 6.5 1.3 8.5.7-2.5 1-5.9-.2-8.5-.2v-.5" fill="#89664c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f42c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f42c.svg
index 00ded4d..abd8480 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f42c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f42c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m33.652 45.512c-.367-.809-.876-1.52-1.416-2.182-.546-.66-1.146-1.254-1.787-1.758-.641-.504-1.328-.91-2.02-1.158-.694-.25-1.386-.328-2.02-.234-.709.107-1.368-.414-1.468-1.166s.393-1.447 1.104-1.553c.115-.018.23-.018.34-.004l.096.012c1.055.145 2.02.57 2.824 1.137.807.564 1.471 1.258 2.038 1.996.564.74 1.033 1.531 1.425 2.352.385.821.72 1.673.884 2.558"/><path d="m54.998 38.31c-.115-.824.04-1.672.205-2.484.18-.822.421-1.627.717-2.42.3-.791.647-1.57 1.09-2.328.455-.754.969-1.51 1.822-2.154l.086-.066c.563-.426 1.347-.285 1.752.313.403.598.275 1.424-.289 1.852-.107.082-.229.145-.352.186-.488.162-1.065.598-1.578 1.1-.52.512-1 1.105-1.453 1.734-.447.635-.857 1.307-1.218 2.01-.344.708-.69 1.44-.782 2.255"/><path d="m52.671 45.13c-.362-.824-.188-1.838.13-2.699.331-.877.841-1.674 1.443-2.387 1.214-1.422 2.826-2.516 4.639-3.145l.063-.021c.782-.273 1.627.18 1.885 1.01.258.828-.169 1.719-.952 1.992-.143.051-.297.076-.441.078-1.436.025-2.923.439-4.239 1.273-.654.42-1.269.943-1.756 1.586-.472.641-.884 1.428-.772 2.317"/></g><path fill="#36a7c1" d="m54.803 21.52c-.808 4.461-5.734 1.061-8.635-1.924-2.9-2.982-4.991-5.67-1.871-8.879 3.121-3.209 12.182-3.762 15.08-.777 2.9 2.982-3.522 5.748-4.576 11.58"/><path fill="#38bfd6" d="m54.13 21.412c-1.352-8.631-11.746-19.412-24.998-19.412s-26.804 12.945-17.02 22.9c0 0-11.865.615-7.127 3.096 11.364 5.951 17.512-1.846 17.621-1.855 4.01-6.814 11.993-7.02 17.415.463 5.421 7.482 5.671 18.12-2.962 22.453-4.659 2.34-5.424.889-4.938-1.047-1.421 1.105-2.895 2.078-4.068 2.895-1.934-2.701-5.753-7.486-8.559-7.486-3.908 0 1.506 9.291 1.506 9.291s-5.413 9.29-1.505 9.29c2.921 0 6.942-5.188 8.788-7.811 8.942 1.586 30.16-5.179 25.843-32.777"/><path fill="#c5ccd6" d="m37.07 49.06c8.633-4.336 8.383-14.971 2.962-22.453-5.422-7.484-13.402-7.277-17.415-.463.009-.002-.026.055-.103.178-1.366 2.174-3.358 2.465-5.244 3.264 0 0-.028.953-1.306 1.658-1.917 1.061-3.164 1.865-1.959 3.518 4.446 6.096 12.926-6.04 20.354.568 5.66 5.03 1.944 9.436-2.227 12.684-.486 1.934.279 3.385 4.938 1.046"/><path fill="#36a7c1" d="m37.876 25.19c1.866-4.201-2.485-5.521-5.553-5.521-3.067 0-5.552.426-5.552 5.521 0 5.094 4.504 12.928 7.571 12.928 3.067-.001 1.094-7.438 3.534-12.928"/><path fill="#18637a" d="m22.613 26.14c.146 4.334-4.137 9.02-6.92 8.305-.838-.215-1.056-.787-.97-1.324.132-.818 1.291-1.342 2.056-1.973.708-.584.969-1.76.969-1.76 1.655-.641 4.865-3.248 4.865-3.248"/><path fill="#ff717f" d="m22.07 29.346c-1.221 2.555-1.923 3.322-2.973 2.879-1.043-.441-.683-3.051.379-3.785 0 0 .855-.605 3.141-2.299 0 0 .121 1.808-.547 3.205"/><circle fill="#fff" cx="20.392" cy="19.664" r="4.5"/><circle fill="#3e4347" cx="20.393" cy="19.664" r="3"/><path fill="#38bfd6" d="m20.546 26.14c0 0-.154-10.77 8.151-8.436l-8.151 8.436"/><path fill="#42ade2" d="m62 44c0 2.525-1.919 4.57-4.286 4.57-2.368 0-4.285-2.045-4.285-4.57 0 2.525-1.919 4.57-4.286 4.57-2.368 0-4.285-2.045-4.285-4.57 0 2.525-1.919 4.57-4.286 4.57-2.368 0-4.286-2.045-4.286-4.57 0 2.525-1.918 4.57-4.285 4.57-2.368 0-4.287-2.045-4.287-4.57 0 2.525-1.917 4.57-4.285 4.57-2.367 0-4.286-2.045-4.286-4.57 0 2.525-1.918 4.57-4.285 4.57-2.367 0-4.285-2.045-4.285-4.57 0 2.525-1.919 4.57-4.287 4.57-2.367 0-4.286-2.045-4.286-4.57v18h60v-18"/><g fill="#428bc1"><path d="m23.766 59.37c-6.819.886-11.443-4.585-18.459-1.494 5.404-.33 13.593 3.919 18.459 1.494"/><path d="m35.407 53.42c-6.801.871-11.482-4.683-18.458-1.494 5.423-.375 13.584 3.949 18.458 1.494"/><path d="m47.05 59.37c-6.815.891-11.446-4.597-18.459-1.494 5.384-.327 13.623 3.931 18.459 1.494"/><path d="m58.693 53.42c-6.806.867-11.477-4.665-18.461-1.494 5.44-.377 13.569 3.942 18.461 1.494"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75d6ff"><path d="m25.4 37.7c-.8.6-.6 2 .3 2.3.9.4 4-.9 7.9 5.4-1.1-7.8-6.8-8.8-8.2-7.7"/><path d="m60.7 38.2c.8.6.6 2-.3 2.3-.9.4-4-.9-7.9 5.4 1.1-7.8 6.8-8.8 8.2-7.7"/><path d="m60.4 29c.8.3 1 1.4.4 1.9-.6.6-3.4.4-4.7 6.4-1.3-6.5 2.9-8.9 4.3-8.3"/></g><path d="m54.8 21.5c-.8 4.5-5.7 1.1-8.6-1.9-2.9-3-5-5.7-1.9-8.9 3.1-3.2 12.2-3.7 15.1-.8 2.9 3-3.5 5.8-4.6 11.6" fill="#36a7c1"/><path d="m54.1 21.4c-1.3-8.6-11.7-19.4-25-19.4-13.3 0-26.8 12.9-17 22.9 0 0-11.9.6-7.1 3.1 11.4 6 17.5-1.8 17.6-1.9 4-6.8 12-7 17.4.5 5.4 7.5 5.7 18.1-3 22.5-4.7 2.3-5.4.9-4.9-1-1.4 1.1-2.9 2.1-4.1 2.9-1.9-2.7-5.8-7.5-8.6-7.5-3.9 0 1.5 9.3 1.5 9.3s-5.3 9.2-1.4 9.2c2.9 0 6.9-5.2 8.8-7.8 8.9 1.6 30.2-5.2 25.8-32.8" fill="#38bfd6"/><path d="m37.1 49.1c8.6-4.3 8.4-15 3-22.5-5.4-7.5-13.4-7.3-17.4-.5 0 0 0 .1-.1.2-1.4 2.2-3.4 2.5-5.2 3.3 0 0 0 1-1.3 1.7-1.9 1.1-3.2 1.9-2 3.5 4.4 6.1 12.9-6 20.4.6 5.7 5 1.9 9.4-2.2 12.7-.7 1.8.1 3.3 4.8 1" fill="#c5ccd6"/><path d="m37.9 25.2c1.9-4.2-2.5-5.5-5.6-5.5s-5.6.4-5.6 5.5c0 5.1 4.5 12.9 7.6 12.9 3.1 0 1.1-7.4 3.6-12.9" fill="#36a7c1"/><path d="m22.6 26.1c.1 4.3-4.1 9-6.9 8.3-.8-.2-1.1-.8-1-1.3.1-.8 1.3-1.3 2.1-2 .7-.6 1-1.8 1-1.8 1.6-.6 4.8-3.2 4.8-3.2" fill="#18637a"/><path d="m22.1 29.3c-1.2 2.6-1.9 3.3-3 2.9-1-.4-.7-3.1.4-3.8 0 0 .9-.6 3.1-2.3 0 0 .1 1.8-.5 3.2" fill="#ff717f"/><circle cx="20.4" cy="19.7" r="4.5" fill="#fff"/><circle cx="20.4" cy="19.7" r="3" fill="#3e4347"/><path d="m20.5 26.1c0 0-.2-10.8 8.2-8.4l-8.2 8.4" fill="#38bfd6"/><path d="m57.7 48.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.6-1.6-4.2-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.2-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v15h60v-15c0 0-1.9 1.6-4.3 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.4 13.6 3.9 18.5 1.5"/><path d="m35.4 53.4c-6.8.9-11.5-4.7-18.5-1.5 5.5-.3 13.6 4 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.4 13.7 3.9 18.5 1.5"/><path d="m58.7 53.4c-6.8.9-11.5-4.7-18.5-1.5 5.5-.3 13.6 4 18.5 1.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f42d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f42d.svg
index 7adb82c..0b21500 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f42d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f42d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#b5b5b5" cx="48.39" cy="19.644" rx="13.612" ry="13.644"/><ellipse fill="#ffc5d3" cx="48.29" cy="21.272" rx="10.09" ry="10.111"/><ellipse fill="#b5b5b5" cx="15.612" cy="19.644" rx="13.612" ry="13.644"/><ellipse fill="#ffc5d3" cx="15.709" cy="21.272" rx="10.09" ry="10.111"/><path fill="#c4c5c6" d="m48.49 33.394c-2.222-5.02-7.492-16.05-16.49-16.05-8.996 0-14.27 11.02-16.49 16.05-1.131 2.553-2.115 5.05-2.474 8.745-.627 6.456 6.977 12.01 11.1 12.01 1.971-.001 4.06 3.85 7.867 3.85 3.804 0 5.894-3.851 7.865-3.851 4.121 0 11.723-5.555 11.1-12.01-.359-3.698-1.344-6.19-2.473-8.744"/><g fill="#ffc5d3"><ellipse cx="44.662" cy="47.798" rx="4.197" ry="2.93"/><ellipse cx="19.338" cy="47.798" rx="4.194" ry="2.93"/></g><path fill="#3e4347" d="m35.764 47.79c-.754-.803-3.07-.865-3.763-.865-.692 0-3.01.063-3.763.865-.536.57-.12 1.988 1.308 3.211.903.771 1.763 1.014 2.455 1.014.693 0 1.554-.242 2.457-1.014 1.427-1.223 1.843-2.641 1.306-3.211"/><ellipse fill="#fff" cx="23.07" cy="38.522" rx="6.01" ry="5.914"/><ellipse fill="#3e4347" cx="23.07" cy="38.522" rx="4.163" ry="4.096"/><ellipse fill="#fff" cx="40.928" cy="38.522" rx="6.02" ry="5.914"/><g fill="#3e4347"><ellipse cx="40.928" cy="38.522" rx="4.164" ry="4.096"/><path d="m30.7 55.06c.107-.376.394-.656.668-.881.281-.233.596-.408.923-.559.333-.137.681-.249 1.053-.284.353-.034.808-.024 1.089.267-.364-.001-.639.188-.944.301l-.9.404c-.307.125-.611.26-.927.374-.309.135-.644.204-.962.378"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="48.4" cy="19.6" rx="13.6" ry="13.6" fill="#b5b5b5"/><ellipse cx="48.3" cy="21.3" rx="10.1" ry="10.1" fill="#ffc5d3"/><ellipse cx="15.6" cy="19.6" rx="13.6" ry="13.6" fill="#b5b5b5"/><ellipse cx="15.7" cy="21.3" rx="10.1" ry="10.1" fill="#ffc5d3"/><path d="m48.5 33.4c-2.2-5-7.5-16-16.5-16-9 0-14.3 11-16.5 16-1.1 2.6-2.1 5-2.5 8.7-.6 6.5 7 12 11.1 12 2 0 4.1 3.9 7.9 3.9 3.8 0 5.9-3.9 7.9-3.9 4.1 0 11.7-5.6 11.1-12-.4-3.7-1.4-6.2-2.5-8.7" fill="#c4c5c6"/><g fill="#ffc5d3"><ellipse cx="44.7" cy="47.8" rx="4.2" ry="2.9"/><ellipse cx="19.3" cy="47.8" rx="4.2" ry="2.9"/></g><path d="m35.8 47.8c-.8-.8-3.1-.9-3.8-.9-.7 0-3 .1-3.8.9-.5.6-.1 2 1.3 3.2.9.8 1.8 1 2.5 1 .7 0 1.6-.2 2.5-1 1.4-1.2 1.8-2.6 1.3-3.2" fill="#3e4347"/><ellipse cx="23.1" cy="38.5" rx="6" ry="5.9" fill="#fff"/><ellipse cx="23.1" cy="38.5" rx="4.2" ry="4.1" fill="#3e4347"/><ellipse cx="40.9" cy="38.5" rx="6" ry="5.9" fill="#fff"/><g fill="#3e4347"><ellipse cx="40.9" cy="38.5" rx="4.2" ry="4.1"/><path d="m30.7 55.1c.1-.4.4-.7.7-.9.3-.2.6-.4.9-.6.3-.1.7-.2 1.1-.3.4 0 .8 0 1.1.3-.4 0-.6.2-.9.3l-.9.4c-.3.1-.6.3-.9.4-.4.1-.8.2-1.1.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f42e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f42e.svg
index 82d7cf6..f6d7c9a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f42e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f42e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f6c799"><path d="m24.405 7.537c-3.615-1.812-5.959-5.537-5.959-5.537-.999 9.813 2.811 12.197 4.964 12.241 2.889.061 5.168-4.609.995-6.704"/><path d="m39.485 7.537c3.615-1.812 5.958-5.537 5.958-5.537 1 9.813-2.811 12.197-4.964 12.241-2.889.061-5.166-4.609-.994-6.704"/></g><path fill="#6f6f6d" d="m61.987 8.581c-5.723-.182-10.421.692-13.233 2.589-1.769 2.869-2.671 7.803-2.536 13.92 5.721.18 10.421-.692 13.231-2.591 1.769-2.869 2.672-7.802 2.538-13.918"/><path fill="#3e4347" d="m58.51 12.222c-3.196-.102-5.822.386-7.394 1.446-.99 1.604-1.494 4.363-1.419 7.78 3.197.101 5.824-.387 7.396-1.447.989-1.604 1.494-4.361 1.417-7.779"/><path fill="#dae5ef" d="m17.644 25.17c.169-6.05-.655-11.01-2.452-13.982-2.715-1.869-7.383-2.823-13.17-2.681-.171 6.04.653 11.01 2.449 13.98 2.716 1.871 7.385 2.824 13.173 2.683"/><path fill="#3e4347" d="m14.235 21.53c.095-3.407-.37-6.205-1.383-7.879-1.528-1.055-4.16-1.591-7.421-1.513-.098 3.408.368 6.206 1.381 7.879 1.53 1.055 4.16 1.594 7.423 1.513"/><path fill="#dae5ef" d="m56.52 36.725c0 16.54-10.98 19.755-24.524 19.755-13.544 0-24.522-3.215-24.522-19.755 0-9.07 13.919-31.412 24.522-31.412 10.603 0 24.524 19.229 24.524 31.412"/><path fill="#6f6f6d" d="m44.26 11.888c-7.18 3.243-14.469 8.716-10.574 15.979 4.158 7.755 9.396 2.743 13.517 5.215 3.461 2.075 6.473 1.573 8.894-.3-1.41-7.04-5.839-15.372-11.837-20.894"/><path fill="#f4a19a" d="m51.3 52.1c0 6.795-4.526 9.902-19.302 9.902-14.774 0-19.299-3.107-19.299-9.902 0-6.797.406-14.705 19.299-14.705 18.895 0 19.302 7.908 19.302 14.705"/><g fill="#3e4347"><ellipse cx="40.721" cy="24.859" rx="4.963" ry="5.401"/><path d="m30.353 27.03l-.03-.117c-.002-.01-.006-.019-.008-.027l-.111-.35c-.002-.006-.004-.012-.006-.019-.064-.18-.126-.337-.185-.473-.117-.284-.261-.58-.441-.91-.31-.561-.685-1.107-1.121-1.628-.842-.999-1.88-1.846-3-2.444-1.13-.605-2.384-.981-3.629-1.086-.643-.049-1.274-.031-1.881.057-.342.052-.646.116-.921.192-.139.039-.285.085-.459.146-.008.002-.013.004-.019.006l-.318.126c-.01.004-.019.008-.026.012l-.104.049c-.202.094-.334.313-.334.557v.138c0 .329.242.597.54.603.539.007 1.073.046 1.592.111.534.064 1.06.157 1.56.28 1.017.245 2.02.626 2.967 1.13.934.492 1.737 1.13 2.342 1.681-.224-.013-.463-.021-.72-.021-.814 0-1.639.081-2.446.244-1.134.225-2.166.635-3.074 1.216-.477.31-.908.653-1.291 1.032-.218.218-.401.422-.553.613-.081.102-.163.209-.257.343-.003.006-.007.011-.011.019l-.163.251c-.005.007-.009.015-.015.023l-.049.086c-.127.22-.11.506.042.707l.069.092c.108.145.264.22.421.22.103 0 .207-.031.297-.098.387-.272.778-.525 1.17-.749.408-.237.82-.448 1.229-.63.872-.392 1.754-.67 2.63-.827.875-.169 1.811-.23 2.771-.178.456.023.929.077 1.406.155.445.07.905.189 1.362.308.044.014.09.043.136.043h.002c.152 0 .264-.088.394-.173.215-.14.315-.446.245-.71"/><path d="m27.411 48.709c-1.413 3.083-4.1 4.808-6 3.853-1.898-.956-2.293-4.233-.879-7.317 1.413-3.085 4.1-4.81 6-3.853 1.899.956 2.295 4.231.879 7.317"/><path d="m36.587 48.707c1.413 3.085 4.1 4.81 6 3.854 1.899-.958 2.293-4.233.879-7.317-1.413-3.085-4.1-4.81-6-3.853-1.899.957-2.293 4.232-.879 7.316"/></g><path fill="#ffd092" d="m39.25 52.05c-.04-1.929-1.277-3.624-3.149-4.642.129.434.29.871.489 1.304.002.005.004.009.006.013.279.356.498.749.637 1.166.117.35.18.718.18 1.097 0 2.366-2.423 4.285-5.412 4.285-2.986 0-5.409-1.919-5.409-4.285 0-.379.064-.747.18-1.097.14-.417.357-.81.638-1.166.002-.004.003-.008.005-.011.2-.435.361-.872.489-1.306-1.871 1.018-3.109 2.713-3.149 4.642 0 .031-.002.063-.002.095 0 3.172 3.246 5.742 7.249 5.742 4 0 7.251-2.57 7.251-5.742-.001-.033-.001-.064-.003-.095"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f6c799"><path d="m21.4 7.9c-3.6-1.9-6-5.9-6-5.9-1 10.5 2.8 13.1 5 13.1 2.9.1 5.2-4.9 1-7.2"/><path d="m42.5 7.9c3.6-1.9 6-5.9 6-5.9 1 10.5-2.8 13.1-5 13.1-2.9.1-5.2-4.9-1-7.2"/></g><path d="m62 9.3c-5.7-.2-10.3.7-13.1 2.7-1.7 3-2.6 8.1-2.5 14.4 5.7.2 10.7-.1 13.1-2.7 2.3-2.5 2.6-8.1 2.5-14.4" fill="#6f6f6d"/><path d="m60.5 13.1c-4-.1-7.2.5-9.2 1.9-1.2 2.1-1.9 5.7-1.8 10.1 4 .1 7.5-.1 9.2-1.9 1.7-1.8 1.9-5.7 1.8-10.1" fill="#f4a19a"/><path d="m2 9.3c5.7-.2 10.3.7 13.1 2.7 1.7 3 2.6 8.1 2.5 14.4-5.6.2-10.7-.1-13.1-2.7-2.3-2.5-2.6-8.1-2.5-14.4" fill="#6f6f6d"/><path d="m3.5 13.1c4-.1 7.2.5 9.2 1.9 1.2 2.1 1.8 5.7 1.8 10.1-4 .1-7.5-.1-9.2-1.9-1.7-1.8-1.9-5.7-1.8-10.1" fill="#f4a19a"/><path d="m53 38.3c0 14.1-21 22-21 22 0 0-21-7.9-21-22 0-20.8 8.2-31.6 21-31.6 12.8 0 21 7.7 21 31.6" fill="#dae5ef"/><g fill="#6f6f6d"><path d="m45.4 11.3c-7 7.6-11.9 17.3-4.8 26.2 4.7 5.9 8.4 5.9 11.8 4.9.4-1.3.6-2.7.6-4.2 0-13.9-2.1-22.2-7.6-26.9"/><path d="m23.5 37.6c6.9-8.7 2.4-18.3-4.4-25.8-6 5-8.1 14-8.1 26.5 0 1.5.2 2.9.6 4.2 3.5 1 7.2 1 11.9-4.9"/></g><path d="m39.4 31.2c0 0 2.4 4 6.8 2.7 4.4-1.3 4.6-6 4.6-6s-2.4-4-6.8-2.7c-4.4 1.3-4.6 6-4.6 6" fill="#fff"/><g fill="#3e4347"><ellipse cx="45.1" cy="29.6" rx="3.3" ry="3.9"/><path d="m39.4 31.2c0 0 3.8-5.9 9.7-3.5 3.7 1.5 5.1-.9 5.1-.9-2 .3-2.9-.5-5.1-1.6-4-2-9.7-1-9.7 6"/></g><path d="m24.6 31.2c0 0-2.4 4-6.8 2.7-4.4-1.3-4.6-6-4.6-6s2.4-4 6.8-2.7c4.4 1.3 4.6 6 4.6 6" fill="#fff"/><g fill="#3e4347"><ellipse cx="18.9" cy="29.6" rx="3.3" ry="3.9"/><path d="m24.6 31.2c0 0-3.8-5.9-9.7-3.5-3.7 1.5-5.1-.9-5.1-.9 2 .3 2.9-.5 5.1-1.6 4-2 9.7-1 9.7 6"/></g><path d="M14.8,48.2c0-8.1,4-4,17.2-4c13.2,0,17.2-4.1,17.2,4C49.2,59.8,41.1,62,32,62S14.8,59.8,14.8,48.2z" fill="#f4a19a"/><g fill="#bc6464"><path d="m26.4 50.1c-1.2-3.4-3.4-5.3-5-4.2-1.6 1-1.9 4.6-.7 8 1.2 3.4 3.4 5.3 5 4.2s1.9-4.6.7-8"/><path d="m42.6 45.9c-1.6-1-3.8.8-5 4.2-1.2 3.4-.9 7 .7 8 1.6 1 3.8-.8 5-4.2 1.2-3.4.9-7-.7-8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f42f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f42f.svg
index e5ea581..8349819 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f42f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f42f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m21.838 8.518c0 4.874-3.58 8.916-7.992 8.825-12.95-.269-7.614-15.198-7.614-15.198 4.414 0 15.606 1.5 15.606 6.373"/><path fill="#af5a31" d="m16.943 9.484c0 2.6-1.91 4.757-4.264 4.708-6.908-.142-4.062-8.108-4.062-8.108 2.356 0 8.326.801 8.326 3.4"/><path fill="#f29a2e" d="m42.16 8.518c0 4.874 3.578 8.916 7.99 8.825 12.947-.269 7.613-15.198 7.613-15.198-4.413 0-15.603 1.5-15.603 6.373"/><path fill="#af5a31" d="m47.06 9.484c0 2.6 1.91 4.757 4.264 4.708 6.906-.143 4.063-8.108 4.063-8.108-2.357 0-8.327.801-8.327 3.4"/><path fill="#f29a2e" d="m58.639 42.19c0 9.131-12.492 10.377-26.639 10.377s-26.639-1.246-26.639-10.377c0-38.24 15.225-37.19 26.639-37.19s26.639-1.046 26.639 37.19"/><g fill="#3e4347"><path d="m32.03 9.276c4.252 0 8.07 1.386 10.707 3.587-1.01-3.758-5.43-6.586-10.732-6.586-5.33 0-9.77 2.857-10.748 6.643 2.636-2.234 6.484-3.644 10.773-3.644"/><path d="m32.02 13.877c2.912 0 5.527.948 7.332 2.456-.691-2.573-3.721-4.511-7.35-4.511-3.65 0-6.691 1.957-7.361 4.549 1.807-1.529 4.442-2.494 7.379-2.494"/></g><path fill="#ffe8bb" d="M24.17,55.398L0,46.455l5.568-11.557c0,0,3.549,4.912,17.449,8.705L24.17,55.398z"/><path fill="#3e4347" d="m23.928 50.35c-9.797-1.625-21.436-8.518-21.637-8.617l1.303-2.766c.24.117 11.563 6.816 20.814 8.352l-.48 3.03"/><path fill="#ffe8bb" d="m39.83 55.4l24.17-8.943-5.568-11.557c0 0-3.551 4.912-17.449 8.705l-1.153 11.795"/><path fill="#3e4347" d="m40.07 50.35c9.797-1.625 21.438-8.518 21.639-8.617l-1.303-2.766c-.24.117-11.564 6.816-20.814 8.352l.478 3.03"/><g fill="#ffe8bb"><path d="m42.514 57.75c-6.266-4.525-2.789-14.941-2.789-14.941-7.428 7.535-16.623 11.154-16.623 11.154 2.111 6.949 7.576 8.182 7.576 8.182-.449-2.342.869-4.213.869-4.213 2.205 2.832 6.607 3.811 6.607 3.811-1.691-1.926-1.246-4.895-1.246-4.895 3.051 1.115 5.606.902 5.606.902"/><path d="m40.896 54.43c-3.459 2.867-14.334 2.867-17.795 0-3.75-3.107-3.277-9.117.131-12.613 3.146-3.227 14.389-3.227 17.535 0 3.409 3.495 3.881 9.505.129 12.613"/></g><g fill="#3e4347"><path d="m32.871 51.26c-.367 0-.713-.234-.844-.609-.297-.855-1.014-4.201-.934-7.02.014-.506.428-.904.92-.891.496.014.885.438.871.943-.072 2.563.605 5.703.832 6.35.166.477-.078 1-.545 1.172-.097.035-.198.053-.3.053"/><path d="m25.42 54.791c.273-.258.516-.52.764-.777.248-.262.496-.518.748-.771.506-.506 1.027-.998 1.576-1.461 1.094-.926 2.285-1.76 3.604-2.43.66-.332 1.354-.621 2.088-.832s1.514-.35 2.326-.322c.404.012.816.068 1.217.186.402.113.789.295 1.133.533.342.24.635.537.854.869.223.33.377.689.459 1.061-.297-.227-.59-.424-.889-.572s-.596-.248-.891-.303c-.588-.111-1.166-.051-1.748.078-1.17.273-2.346.828-3.533 1.42-1.188.598-2.387 1.256-3.645 1.871-.627.309-1.271.604-1.941.873-.336.131-.678.258-1.029.361-.353.105-.718.2-1.093.216"/></g><path fill="#f15a61" d="m39.643 40.1c-1.535-.674-6.246-.727-7.654-.727-1.406 0-6.119.053-7.654.727-1.094.48-.248 1.672 2.66 2.699 1.834.648 3.588.854 4.994.854s3.158-.205 4.996-.854c2.906-1.028 3.749-2.219 2.658-2.699"/><g fill="#3e4347"><path d="m24.648 29.558l2.114 6.752-6.01-3.537z"/><path d="m15.1 40.21c-.686 0-1.223-.068-1.535-.121-3.922-.666-6.084-2.551-7.996-5.191l.24-3.157c1.994 1.844 5.191 4.799 8.246 5.317 1.52.258 3.748-.02 5.453-1.574 2.02-1.838 2.967-5.168 2.752-9.632l2.148.169c.264 5.501-.15 9.244-2.904 11.756-2.223 2.027-4.744 2.433-6.404 2.433"/><path d="m39.35 29.558l-2.11 6.752 6-3.537z"/><path d="m48.9 40.21c.684 0 1.223-.068 1.533-.121 3.924-.666 6.086-2.551 7.996-5.191l-.24-3.157c-1.994 1.844-5.191 4.799-8.246 5.317-1.518.258-3.748-.02-5.453-1.574-2.01-1.838-2.967-5.168-2.752-9.632l-2.148.169c-.264 5.501.15 9.244 2.906 11.756 2.221 2.027 4.742 2.433 6.404 2.433"/></g><path fill="#ffe8bb" d="m25.09 27.779c-1.119 6.741-4.895 7.493-8.795 7.12-3.92-.377-7.082-3.407-7.082-8.606 0-5.464 0-5.464 8.727-7.341 8.834-1.901 7.886 4.386 7.15 8.827"/><path fill="#3e4347" d="m23.652 28.369c-.32 3.232-3.426 5.559-6.939 5.196-3.512-.363-6.102-3.278-5.783-6.51.318-3.233.369-3.509 6.707-2.855 6.342.654 6.334.937 6.02 4.169"/><path fill="#fff" d="m21.594 27.521c-.211 2.154-2.283 3.705-4.627 3.465-2.342-.242-4.066-2.186-3.854-4.341.213-2.154.244-2.34 4.471-1.903 4.229.436 4.223.624 4.01 2.779"/><g fill="#3e4347"><ellipse cx="18.848" cy="26.498" rx="1.904" ry="2.103"/><path d="m26.428 22.433c.551 0 1.061-.364 1.229-.931.209-.695-.174-1.432-.854-1.645l-7.854-2.456c-.678-.212-1.398.179-1.605.874s.176 1.431.854 1.644l7.854 2.456c.124.039.251.058.376.058"/></g><path fill="#ffe8bb" d="m38.914 27.779c1.119 6.741 4.895 7.493 8.795 7.12 3.918-.377 7.082-3.407 7.082-8.606 0-5.464-.002-5.464-8.727-7.341-8.834-1.901-7.888 4.386-7.15 8.827"/><path fill="#3e4347" d="m40.35 28.369c.318 3.232 3.424 5.559 6.939 5.196 3.512-.363 6.102-3.278 5.781-6.51-.318-3.233-.367-3.509-6.705-2.855-6.342.654-6.334.937-6.02 4.169"/><path fill="#fff" d="m42.41 27.521c.211 2.154 2.283 3.705 4.625 3.465 2.342-.242 4.068-2.186 3.855-4.341-.213-2.154-.246-2.34-4.471-1.903-4.227.436-4.222.624-4.01 2.779"/><g fill="#3e4347"><ellipse cx="48.02" cy="26.307" rx="1.904" ry="2.101"/><path d="m37.57 22.433c-.549 0-1.059-.364-1.227-.931-.209-.695.174-1.432.854-1.645l7.854-2.456c.678-.212 1.396.179 1.605.874.207.695-.176 1.431-.855 1.644l-7.854 2.456c-.125.039-.25.058-.377.058"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M22.1,9.3c0,5.6-3.5,10.2-7.8,10.1C1.7,19.1,6.9,2,6.9,2C11.2,2,22.1,3.7,22.1,9.3z" fill="#f29a2e"/><path d="m17.3 10.4c0 3-1.9 5.4-4.2 5.4-6.7-.2-4-9.3-4-9.3 2.4 0 8.2.9 8.2 3.9" fill="#bc600d"/><path d="m41.9 9.3c0 5.6 3.5 10.2 7.8 10.1 12.6-.3 7.4-17.4 7.4-17.4-4.3 0-15.2 1.7-15.2 7.3" fill="#f29a2e"/><path d="m46.7 10.4c0 3 1.9 5.4 4.2 5.4 6.7-.2 4-9.3 4-9.3-2.4 0-8.2.9-8.2 3.9" fill="#bc600d"/><path d="m58 41.7c0 9.1-52 9.1-52 0 0-37.9 14.9-36.9 26-36.9 11.1 0 26-1 26 36.9" fill="#f29a2e"/><g fill="#3e4347"><path d="m42.5 12.6c-2.3-8.7-18.7-8.9-20.9.1 4.5-4 16.3-4 20.9-.1"/><path d="m39.2 16c-1.5-5.9-12.8-6-14.3 0 3.7-3.2 10.5-3.2 14.3 0"/></g><path d="m62 36.6c-.2-9.2-5.8-13.8-5.8-13.8s3.4 33.9-16.6 17.5h-15.3c-19.9 16.3-16.5-17.5-16.5-17.5s-5.6 4.6-5.8 13.8l2.7-1.6c0 0-2.8 6.1.2 13.6l2.9-3.4c0 0 .8 7.1 8.5 10.7l.4-3.1c0 0 5.8 4.6 15.3 4.6s15.3-4.6 15.3-4.6l.4 3.1c7.7-3.6 8.5-10.7 8.5-10.7l2.9 3.4c3.1-7.5.2-13.6.2-13.6l2.7 1.6" fill="#ffe8bb"/><g fill="#3e4347"><path d="m24.3 40.3c0 0-16.9 12.7-16.6-17.5.1 0-4 35.9 16.6 17.5"/><path d="m39.7 40.3c0 0 16.9 12.7 16.6-17.5-.1 0 4 35.9-16.6 17.5"/></g><path d="m37.6 29.4c3 8.2 2 10.8 2 10.8l-7.5 2.2-7.9-2.2c0 0-1-2.7 2-10.8-13.2 21.9-.8 24.8-.8 24.8s-.6 3.6 3.2 6.6v-2.4c0 0 .8 2.2 3.2 3.5 2.4-1.3 3.2-3.5 3.2-3.5v2.4c2.1-1.2 2.8-3.7 2.8-3.7l.9 1.8c3-4.3 1.9-7.3 1-8.7 0 .1.1.1.1.1s11 1-2.2-20.9" fill="#f5f5f5"/><g fill="#3e4347"><path d="m32 50.1c-.3-.9-1-5.4-.9-8.2h1.7c-.1 2.5.6 7 .8 7.6l-1.6.6"/><path d="m25.6 54.3c6.8-6.8 11.7-8.9 14.4-3.9-4.1-3.2-8.8 2.6-14.4 3.9"/></g><path d="m39.4 39.8c-2.9-1.3-12.1-1.2-14.9 0-1.1.5 2 3.5 7.4 3.5 5.6 0 8.6-3 7.5-3.5" fill="#947151"/><path d="m27.3 27.6c-2.2 14-18.3 10.5-18.3-1.7 0-6.5 0-6.5 10.1-8.7 10.2-2.3 9.1 5.2 8.2 10.4" fill="#ffe8bb"/><path d="m25.7 28.3c-1 9.9-15.6 8.3-14.7-1.6.4-3.8.4-4.2 7.7-3.4 7.4.8 7.3 1.2 7 5" fill="#3e4347"/><path d="m23.5 27.7c-.7 6-11 5.1-10.3-.9.3-2.2.3-2.4 5.4-1.9 5.2.5 5.2.6 4.9 2.8" fill="#fff"/><path d="m22.7 26.5c0 1.4-1.1 2.5-2.4 2.5-1.3 0-2.4-1.1-2.4-2.5 0-1.4 1.1-2.2 2.4-2.2s2.4.9 2.4 2.2" fill="#3e4347"/><path d="m36.6 27.6c2.2 13.9 18.3 10.5 18.3-1.8 0-6.5 0-6.5-10.1-8.7-10.1-2.2-9 5.3-8.2 10.5" fill="#ffe8bb"/><path d="m38.3 28.3c1 9.9 15.6 8.3 14.7-1.6-.4-3.8-.4-4.2-7.7-3.4-7.4.8-7.4 1.2-7 5" fill="#3e4347"/><path d="m40.4 27.7c.7 6 11 5.1 10.3-.9-.3-2.2-.3-2.4-5.4-1.9-5.1.5-5.1.6-4.9 2.8" fill="#fff"/><path d="m45.2 26.5c0 1.4 1.1 2.5 2.4 2.5 1.3 0 2.4-1.1 2.4-2.5 0-1.4-1.1-2.2-2.4-2.2s-2.4.9-2.4 2.2" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f430.svg b/build/js/jsxc/lib/emojione/assets/svg/1f430.svg
index 4ef4b94..ec8d17c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f430.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f430.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2b6b8" d="m15.16 9.1c4.161-2.548 9.978-5.985 10.299 1.211.629 14.07 2.539 18.02 2.539 18.02l-15.76-10.526c0 0-5.932 5.121-8.967 5.999-3.775 1.093 1.648-9.559 5.848-12.596 1.311-.948 4.641-1.248 6.04-2.106"/><path fill="#ffc5d3" d="m19.11 12.281c2.528 3.376 5.531 16.453 5.531 16.453l-4.668 1.266c0 0-1.38-4.631-7.732-12.202l6.869-5.517"/><path fill="#b2b6b8" d="m48.84 5.095c-4.161-2.548-9.979-5.985-10.3 1.211-.628 14.07-3.54 21.02-3.54 21.02l16.761-13.526c0 0 5.932 5.121 8.967 5.999 3.775 1.093-1.648-9.559-5.849-12.596-1.31-.948-4.641-1.248-6.04-2.106"/><path fill="#ffc5d3" d="m44.891 8.281c-2.529 3.376-5.531 16.452-5.531 16.452l4.669 1.267c0 0 1.379-4.631 7.731-12.202l-6.869-5.517"/><path fill="#c4c5c6" d="m13.677 34.848c0-7.472 5.674-12.848 18.325-12.848 12.652 0 18.322 5.376 18.322 12.848 0 6.256 9.523 15.441 1.037 21.566-4.098 2.955-11.172 5.586-19.359 5.586-8.188 0-15.264-2.631-19.361-5.586-8.488-6.125 1.036-15.311 1.036-21.566"/><path fill="#fff" d="m40.609 45.23c-.244-5.998-4.39-13.227-6.953-16.6-1.154-1.525-2.154-1.525-3.31 0-2.564 3.373-6.712 10.602-6.954 16.6-4.711-.607-10.121-.369-11.193 2.156-2.118 4.986 7.834 13.404 19.803 13.404 11.965 0 21.916-8.418 19.8-13.404-1.072-2.523-6.484-2.763-11.193-2.156"/><path fill="#4c5359" d="m41.38 52.4c-1.043.806-2.397 1.277-3.78 1.332-1.375.072-2.817-.297-4.01-1.039-.624-.393-1.167-.914-1.594-1.515-.429.601-.972 1.122-1.595 1.517-1.206.743-2.594 1.111-4.03 1.039-1.324-.053-2.729-.526-3.756-1.333-.635-.494 2.665 5.765 9.381 5.765 6.719 0 10.02-6.262 9.38-5.766"/><path fill="#fff" d="m37.29 38.06c0 0 .396-4.069 3.684-5.375 3.708-1.471 6.238 2.126 6.925 4.182 1.014 3.035-.259 6.353-.636 7.118-.25.505-2.989 2.887-9.166.632 0 0-1.537-3.375-.807-6.557"/><path fill="#b2b6b8" d="m37.29 38.06c.063-1.445.545-2.889 1.4-4.086.439-.588.996-1.088 1.622-1.456.31-.189.648-.331.974-.443.357-.127.702-.193 1.066-.239 1.471-.19 2.955.499 4.02 1.523 1.063 1.047 1.881 2.354 2.281 3.903.357 1.538.266 3.122-.072 4.587-.18.735-.41 1.442-.72 2.138l-.128.267-.051.09-.08.11c-.048.062-.082.099-.123.142-.156.16-.311.283-.471.394-.32.214-.649.38-.985.511-1.349.528-2.759.548-4.095.353-1.336-.231-2.624-.641-3.832-1.235 1.293.308 2.586.578 3.881.583 1.283.036 2.576-.139 3.691-.669.277-.132.539-.293.77-.474.112-.091.223-.187.302-.277l.045-.056c-.002 0-.003.005-.002.006.003-.004.04-.072.014-.024l.093-.216c.242-.611.432-1.273.563-1.936.272-1.322.33-2.697.018-3.95-.288-1.232-1.01-2.409-1.871-3.307-.87-.91-1.998-1.462-3.184-1.425-.291.012-.603.049-.879.123-.309.083-.596.179-.876.309-.565.253-1.082.633-1.528 1.109-.917.939-1.513 2.257-1.843 3.645"/><ellipse fill="#4c5359" cx="41.805" cy="39.543" rx="3.268" ry="4.01"/><path fill="#fff" d="m26.711 38.06c0 0-.396-4.07-3.684-5.375-3.708-1.471-6.238 2.125-6.925 4.182-1.014 3.035.258 6.353.636 7.118.25.505 2.989 2.887 9.166.632 0 0 1.537-3.375.807-6.557"/><path fill="#b2b6b8" d="m26.711 38.06c-.33-1.389-.926-2.707-1.842-3.646-.446-.477-.963-.856-1.527-1.109-.281-.13-.568-.227-.877-.309-.276-.074-.588-.111-.879-.123-1.186-.037-2.314.515-3.184 1.425-.866.897-1.583 2.074-1.871 3.307-.313 1.253-.255 2.628.017 3.95.131.662.32 1.324.563 1.936l.093.216c-.026-.048.011.021.013.023.001 0 0-.005-.001-.005l.044.056c.08.091.189.187.303.277.23.181.492.342.769.474 1.115.53 2.408.705 3.691.669 1.295-.005 2.588-.275 3.881-.583-1.208.595-2.496 1-3.832 1.235-1.336.195-2.747.176-4.095-.353-.336-.131-.666-.297-.987-.511-.159-.11-.313-.233-.469-.394-.041-.043-.076-.08-.124-.142l-.079-.11-.051-.09-.128-.267c-.31-.695-.54-1.402-.718-2.138-.339-1.465-.432-3.049-.074-4.588.401-1.549 1.219-2.855 2.281-3.902 1.065-1.024 2.549-1.713 4.02-1.523.364.046.709.112 1.067.239.324.112.663.254.973.443.626.367 1.183.868 1.622 1.456.856 1.199 1.338 2.642 1.401 4.087"/><ellipse fill="#4c5359" cx="22.2" cy="39.543" rx="3.268" ry="4.01"/><path fill="#fff" d="m28.674 49.576h6.654v5.528h-6.654z"/><path fill="#b2b6b8" d="m42.02 51.846c-1.137.56-2.452.787-3.724.738-1.282-.076-2.499-.403-3.474-1.028-.975-.603-1.693-1.464-1.901-2.411l-.921-4.207-.932 4.207c-.211.947-.926 1.81-1.903 2.41-.954.625-2.231.95-3.443 1.026-1.338.047-2.595-.177-3.752-.737-1.146-.541-2.097-1.423-2.581-2.546.066 1.201.88 2.37 2.046 3.177 1.156.807 2.737 1.281 4.228 1.334 1.619.072 3.181-.297 4.539-1.039.701-.395 1.313-.916 1.794-1.518.481.602 1.093 1.123 1.794 1.516 1.337.742 2.961 1.111 4.508 1.039 1.558-.055 3.082-.527 4.257-1.333 1.165-.808 1.979-1.976 2.048-3.176-.483 1.124-1.436 2.01-2.583 2.548"/><path fill="#ff94a4" d="m36.443 44.13c-.891-.719-3.625-.773-4.443-.773-.816 0-3.552.055-4.443.773-.633.514-.143 1.783 1.545 2.881 1.064.692 2.082.911 2.898.911.818 0 1.836-.219 2.9-.911 1.688-1.098 2.179-2.367 1.543-2.881"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m15.2 9.1c4.2-2.5 10-6 10.3 1.2.6 14.1 2.5 18 2.5 18l-15.8-10.5c0 0-5.9 5.1-9 6-3.8 1.1 1.6-9.6 5.8-12.6 1.4-.9 4.8-1.2 6.2-2.1" fill="#b2b6b8"/><path d="m19.1 12.3c2.5 3.4 5.5 16.5 5.5 16.5l-4.6 1.2c0 0-1.4-4.6-7.7-12.2l6.8-5.5" fill="#ffc5d3"/><path d="m48.8 5.1c-4.2-2.5-10-6-10.3 1.2-.6 14.1-3.5 21-3.5 21l16.8-13.5c0 0 5.9 5.1 9 6 3.8 1.1-1.6-9.6-5.8-12.6-1.4-.9-4.8-1.2-6.2-2.1" fill="#b2b6b8"/><path d="M44.9,8.3c-2.5,3.4-5.5,16.5-5.5,16.5L44,26c0,0,1.4-4.6,7.7-12.2L44.9,8.3z" fill="#ffc5d3"/><path d="m13.7 34.8c0-7.4 5.7-12.8 18.3-12.8 12.7 0 18.3 5.4 18.3 12.8 0 6.3 9.5 15.4 1 21.6-4 3-11.1 5.6-19.3 5.6-8.2 0-15.3-2.6-19.4-5.6-8.4-6.1 1.1-15.3 1.1-21.6" fill="#c4c5c6"/><path d="m40.6 45.2c-.2-6-4.4-13.2-7-16.6-1.2-1.5-2.2-1.5-3.3 0-2.6 3.4-6.7 10.6-7 16.6-4.7-.6-10.1-.4-11.2 2.2-2.1 5 7.8 13.4 19.8 13.4 12 0 21.9-8.4 19.8-13.4-1-2.5-6.4-2.8-11.1-2.2" fill="#fff"/><path d="m41.4 52.4c-1 .8-2.4 1.3-3.8 1.3-1.4.1-2.8-.3-4-1-.6-.4-1.2-.9-1.6-1.5-.4.6-1 1.1-1.6 1.5-1.2.7-2.6 1.1-4 1-1.3-.1-2.7-.5-3.8-1.3-.6-.5 2.7 5.8 9.4 5.8 6.7 0 10-6.3 9.4-5.8" fill="#4c5359"/><path d="m37.3 38.1c0 0 .4-4.1 3.7-5.4 3.7-1.5 6.2 2.1 6.9 4.2 1 3-.3 6.4-.6 7.1-.2.5-3 2.9-9.2.6 0 0-1.5-3.4-.8-6.5" fill="#fff"/><path d="m37.3 38.1c.1-1.4.5-2.9 1.4-4.1.4-.6 1-1.1 1.6-1.5.3-.2.6-.3 1-.4.4-.1.7-.2 1.1-.2 1.5-.2 3 .5 4 1.5 1.1 1 1.9 2.4 2.3 3.9.4 1.5.3 3.1-.1 4.6-.2.7-.4 1.4-.7 2.1l-.1.3-.1.1-.1.1c0 .1-.1.1-.1.1-.2.2-.3.3-.5.4-.3.2-.6.4-1 .5-1.3.5-2.8.5-4.1.4-1.3-.2-2.6-.6-3.8-1.2 1.3.3 2.6.6 3.9.6 1.3 0 2.6-.1 3.7-.7.3-.1.5-.3.8-.5.1-.1.2-.2.3-.3v-.1c0 0 0 0 0 0l.1-.2c.2-.6.4-1.3.6-1.9.3-1.3.3-2.7 0-4-.3-1.2-1-2.4-1.9-3.3-.9-.9-2-1.5-3.2-1.4-.3 0-.6 0-.9.1-.3.1-.6.2-.9.3-.6.3-1.1.6-1.5 1.1-.9 1-1.5 2.3-1.8 3.7" fill="#b2b6b8"/><ellipse cx="41.8" cy="39.5" rx="3.3" ry="4" fill="#4c5359"/><path d="m26.7 38.1c0 0-.4-4.1-3.7-5.4-3.7-1.5-6.2 2.1-6.9 4.2-1 3 .3 6.4.6 7.1.2.5 3 2.9 9.2.6 0 0 1.5-3.4.8-6.5" fill="#fff"/><path d="m26.7 38.1c-.3-1.4-.9-2.7-1.8-3.6-.4-.5-1-.9-1.5-1.1-.3-.1-.6-.2-.9-.3-.3-.1-.6-.1-.9-.1-1.2 0-2.3.5-3.2 1.4-.9.9-1.6 2.1-1.9 3.3-.3 1.3-.3 2.6 0 4 .1.7.3 1.3.6 1.9l.1.2c0 0 0 0 0 0v.1c.1.1.2.2.3.3.2.2.5.3.8.5 1.1.5 2.4.7 3.7.7 1.3 0 2.6-.3 3.9-.6-1.2.6-2.5 1-3.8 1.2-1.3.2-2.7.2-4.1-.4-.3-.1-.7-.3-1-.5-.2-.1-.3-.2-.5-.4 0 0-.1-.1-.1-.1l-.1-.1-.1-.1-.1-.4c-.3-.7-.5-1.4-.7-2.1-.3-1.5-.4-3-.1-4.6.4-1.5 1.2-2.9 2.3-3.9 1.1-1 2.5-1.7 4-1.5.4 0 .7.1 1.1.2.3.1.7.3 1 .4.6.4 1.2.9 1.6 1.5.9 1.2 1.3 2.6 1.4 4.1" fill="#b2b6b8"/><ellipse cx="22.2" cy="39.5" rx="3.3" ry="4" fill="#4c5359"/><path fill="#fff" d="m28.7 49.6h6.7v5.5h-6.7z"/><path d="m42 51.8c-1.1.6-2.5.8-3.7.7-1.3-.1-2.5-.4-3.5-1-1-.6-1.7-1.5-1.9-2.4l-.9-4.2-.9 4.2c-.2.9-.9 1.8-1.9 2.4-1 .6-2.2 1-3.4 1-1.3 0-2.6-.2-3.8-.7-1.1-.5-2.1-1.4-2.6-2.5.1 1.2.9 2.4 2 3.2 1.2.8 2.7 1.3 4.2 1.3 1.6.1 3.2-.3 4.5-1 .7-.4 1.3-.9 1.8-1.5.5.6 1.1 1.1 1.8 1.5 1.3.7 3 1.1 4.5 1 1.6-.1 3.1-.5 4.3-1.3 1.2-.8 2-2 2-3.2-.4 1.1-1.3 2-2.5 2.5" fill="#b2b6b8"/><path d="m36.4 44.1c-.9-.7-3.6-.8-4.4-.8-.8 0-3.6.1-4.4.8-.6.5-.1 1.8 1.5 2.9 1.1.7 2.1.9 2.9.9.8 0 1.8-.2 2.9-.9 1.7-1.1 2.2-2.4 1.5-2.9" fill="#ff94a4"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f431.svg b/build/js/jsxc/lib/emojione/assets/svg/1f431.svg
index 16ba9f4..bacd52c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f431.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f431.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4c5359" d="m4.508 2.23c-3.524 2.152-3.386 25.49.744 32.955l26.14-15.965c-3.955-7.149-23.561-19.02-26.885-16.99"/><path fill="#f7a4a4" d="m9.535 11.319c-1.494.91-2.211 16.218.412 20.959l16.717-10.211c-2.513-4.538-15.763-11.584-17.13-10.748"/><path fill="#4c5359" d="m59.49 2.23c3.524 2.152 3.386 25.49-.744 32.955l-26.14-15.965c3.956-7.149 23.562-19.02 26.886-16.99"/><path fill="#f7a4a4" d="m54.47 11.319c1.494.91 2.212 16.218-.412 20.959l-16.717-10.211c2.513-4.538 15.763-11.584 17.13-10.748"/><path fill="#4c5359" d="m31.778 13.11c-27.08 0-29.624 19.422-29.624 30.379 0 4.495 13.265 18.516 29.624 18.516 16.36 0 29.625-14.02 29.625-18.516 0-10.957-2.545-30.379-29.625-30.379"/><path fill="#bfffab" d="m24.21 38.672c0 0-3.078 4.812-8.824 3.284-5.745-1.529-5.988-7.226-5.988-7.226s3.079-4.811 8.823-3.283c5.745 1.53 5.989 7.225 5.989 7.225"/><path fill="#93e67f" d="m23.618 36.21c0 0-2.734 3.03-6.487 3.03-4.074 0-6.491-5.915-6.491-5.915s2.679-3.144 7.58-1.875c4.49 1.16 5.398 4.764 5.398 4.764"/><path fill="#4c5359" d="m19.446 36.14c0 6.584-3.174 6.584-3.174 0-.001-6.586 3.174-6.586 3.174 0"/><path fill="#bfffab" d="m39.35 38.672c0 0 3.078 4.812 8.822 3.284 5.746-1.529 5.988-7.226 5.988-7.226s-3.077-4.811-8.822-3.283c-5.745 1.53-5.988 7.225-5.988 7.225"/><path fill="#93e67f" d="m39.938 36.21c0 0 2.734 3.03 6.487 3.03 4.073 0 6.492-5.915 6.492-5.915s-2.68-3.144-7.581-1.875c-4.489 1.16-5.398 4.764-5.398 4.764"/><path fill="#4c5359" d="m44.11 36.14c0 6.584 3.175 6.584 3.175 0 0-6.586-3.175-6.586-3.175 0"/><path fill="#fff" d="m40.43 43.97c-2.581-2.01-5.436-8.67-8.649-8.67-3.213 0-6.07 6.66-8.647 8.67-4.091 3.185-14.989 6.796-14.989 6.796.001.001 11.631 10.186 23.637 10.186 12.01 0 23.636-10.185 23.637-10.186-.001 0-10.899-3.612-14.989-6.796"/><ellipse fill="#ff94a4" cx="31.778" cy="54.48" rx="1.735" ry="2.546"/><g fill="#4c5359"><path d="m40.19 53.05c-.955.592-2.059.833-3.125.781-1.078-.081-2.098-.427-2.916-1.089-.818-.638-1.422-1.55-1.596-2.554l-.772-4.455-.783 4.455c-.178 1-.777 1.917-1.598 2.553-.801.662-1.873 1.01-2.889 1.088-1.123.049-2.18-.188-3.149-.781-.96-.573-1.76-1.507-2.167-2.696.056 1.272.738 2.51 1.718 3.364.97.854 2.297 1.356 3.548 1.412 1.358.076 2.67-.313 3.809-1.101.589-.417 1.102-.97 1.506-1.606.404.637.917 1.188 1.506 1.605 1.122.785 2.486 1.176 3.783 1.1 1.308-.058 2.586-.558 3.572-1.412.978-.854 1.661-2.092 1.719-3.362-.405 1.189-1.205 2.123-2.166 2.698"/><path d="m35.802 44.751c-.807-.988-3.284-1.064-4.02-1.064-.739 0-3.217.076-4.02 1.064-.574.705-.131 2.453 1.398 3.962.965.952 1.886 1.253 2.625 1.253.74 0 1.663-.301 2.627-1.253 1.528-1.509 1.973-3.257 1.397-3.962"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m4.5 2.2c-3.5 2.2-3.4 25.5.8 33l26.1-16c-4-7.1-23.6-19-26.9-17" fill="#4c5359"/><path d="m9.5 11.3c-1.5.9-2.2 16.2.4 21l16.7-10.2c-2.4-4.6-15.7-11.6-17.1-10.8" fill="#f7a4a4"/><path d="m59.5 2.2c3.5 2.2 3.4 25.5-.7 33l-26.1-16c3.9-7.1 23.5-19 26.8-17" fill="#4c5359"/><path d="m54.5 11.3c1.5.9 2.2 16.2-.4 21l-16.8-10.2c2.5-4.6 15.8-11.6 17.2-10.8" fill="#f7a4a4"/><path d="m31.8 13.1c-27.1 0-29.6 19.4-29.6 30.4 0 4.5 13.2 18.5 29.6 18.5 16.4 0 29.6-14 29.6-18.5 0-11-2.5-30.4-29.6-30.4" fill="#4c5359"/><path d="m24.2 38.7c0 0-3.1 4.8-8.8 3.3-5.7-1.5-6-7.2-6-7.2s3.1-4.8 8.8-3.3c5.8 1.5 6 7.2 6 7.2" fill="#bfffab"/><path d="m23.6 36.2c0 0-2.7 3-6.5 3-4.1 0-6.5-5.9-6.5-5.9s2.7-3.1 7.6-1.9c4.5 1.2 5.4 4.8 5.4 4.8" fill="#93e67f"/><path d="m19.4 36.1c0 6.6-3.2 6.6-3.2 0 .1-6.6 3.2-6.6 3.2 0" fill="#4c5359"/><path d="m39.4 38.7c0 0 3.1 4.8 8.8 3.3 5.7-1.5 6-7.2 6-7.2s-3.1-4.8-8.8-3.3c-5.8 1.5-6 7.2-6 7.2" fill="#bfffab"/><path d="m39.9 36.2c0 0 2.7 3 6.5 3 4.1 0 6.5-5.9 6.5-5.9s-2.7-3.1-7.6-1.9c-4.5 1.2-5.4 4.8-5.4 4.8" fill="#93e67f"/><path d="m44.1 36.1c0 6.6 3.2 6.6 3.2 0 0-6.6-3.2-6.6-3.2 0" fill="#4c5359"/><path d="m40.4 44c-2.6-2-5.4-8.7-8.6-8.7s-6.1 6.7-8.7 8.7c-4.1 3.2-15 6.8-15 6.8 0 0 11.6 10.2 23.6 10.2s23.6-10.2 23.6-10.2c.1 0-10.8-3.6-14.9-6.8" fill="#fff"/><ellipse cx="31.8" cy="54.5" rx="1.7" ry="2.5" fill="#ff94a4"/><g fill="#4c5359"><path d="m40.2 53.1c-1 .6-2.1.8-3.1.8-1.1-.1-2.1-.4-2.9-1.1-.8-.6-1.4-1.5-1.6-2.6l-.8-4.5-.8 4.5c-.2 1-.8 1.9-1.6 2.6-.8.7-1.9 1-2.9 1.1-1.1 0-2.2-.2-3.1-.8-1-.6-1.8-1.5-2.2-2.7.1 1.3.7 2.5 1.7 3.4 1 .9 2.3 1.4 3.5 1.4 1.4.1 2.7-.3 3.8-1.1.6-.4 1.1-1 1.5-1.6.4.6.9 1.2 1.5 1.6 1.1.8 2.5 1.2 3.8 1.1 1.3-.1 2.6-.6 3.6-1.4 1-.9 1.7-2.1 1.7-3.4-.3 1.1-1.1 2.1-2.1 2.7"/><path d="m35.8 44.8c-.8-1-3.3-1.1-4-1.1-.7 0-3.2.1-4 1.1-.6.7-.1 2.5 1.4 4 1 1 1.9 1.3 2.6 1.3.7 0 1.7-.3 2.6-1.3 1.5-1.6 2-3.3 1.4-4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f432.svg b/build/js/jsxc/lib/emojione/assets/svg/1f432.svg
index ed8e2e8..b4b3669 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f432.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f432.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5e51a7"><path d="m22.05 42.897c.158-1.778-3.672-6.183-8.588-4.17-3.945 1.612-9.935 6.845-11.228 9.08-1.307 2.271 3.135-.321 8.764-2.765 3.912-1.694 10.859 0 11.05-2.148"/><path d="m26.04 39.3c.752-1.627-1.373-7.02-6.689-6.724-4.27.239-11.689 3.229-13.666 4.921-2 1.715 3.068.714 9.203.239 4.263-.329 10.245 3.529 11.152 1.564"/><path d="m41.954 42.897c-.16-1.778 3.67-6.183 8.586-4.17 3.945 1.611 9.936 6.845 11.23 9.08 1.305 2.271-3.137-.321-8.766-2.765-3.909-1.693-10.857.001-11.05-2.147"/><path d="m37.962 39.3c-.752-1.627 1.373-7.02 6.691-6.724 4.268.239 11.688 3.229 13.666 4.921 1.998 1.715-3.068.714-9.205.239-4.261-.329-10.244 3.529-11.152 1.564"/></g><path fill="#784c9a" d="m48.03 43.987c0 2.699-.84 4.065-5 6.137-2.594 1.29-2.596 5.834-11.03 5.834-8.426 0-8.439-4.548-11.03-5.836-4.162-2.072-5-3.436-5-6.135 0-5.162 7.178-4.674 16.03-4.674 8.855 0 16.03-.488 16.03 4.674"/><g fill="#fff"><path d="m22.441 43.1c.486.478.93 1.73-.994 2.319-1.545.472-3.148 2.376-3.148 2.376s.064-2.477 1.135-3.781c1.013-1.237 2.415-1.493 3.01-.914"/><path d="m27 46.03c.49.477.932 1.729-.992 2.316-1.543.476-3.15 2.376-3.15 2.376s.068-2.476 1.135-3.781c1.014-1.237 2.419-1.493 3.01-.911"/><path d="m41.56 43.1c-.488.478-.932 1.73.994 2.319 1.545.472 3.148 2.376 3.148 2.376s-.064-2.477-1.135-3.781c-1.013-1.237-2.418-1.493-3.01-.914"/><path d="m36.999 46.03c-.49.477-.932 1.729.992 2.316 1.545.476 3.15 2.376 3.15 2.376s-.066-2.476-1.135-3.781c-1.015-1.237-2.419-1.493-3.01-.911"/></g><g fill="#ff8e66"><path d="m35.21 1.219c-.65.817 1.607 7.596-1.551 19.71-1.105 4.243.848 5.083 2.924 5.083 2.506 0 4.395-2.499 4.42-5.966.07-10.396-4.297-20.696-5.793-18.827"/><path d="m28.789 1.219c-1.498-1.869-5.863 8.431-5.793 18.827.023 3.467 1.914 5.966 4.418 5.966 2.076 0 4.03-.84 2.924-5.083-3.159-12.11-.899-18.892-1.549-19.71"/></g><path fill="#5e51a7" d="m21.757 13.383c2.764 7.445 4.895 11.287 1.09 15.31-2.24 2.365-10.842-.502-13.607-7.946-2.764-7.446.213-17.809.213-17.809s9.543 2.999 12.304 10.445"/><path fill="#b5aada" d="m21.761 13.389c-2.763-7.446-12.306-10.444-12.306-10.444s-.17.594-.391 1.593c2.936 1.3 8.389 4.345 10.371 9.685 2.754 7.421 4.877 11.264 1.119 15.271.984-.018 1.801-.271 2.295-.792 3.803-4.02 1.676-7.867-1.088-15.313"/><path fill="#5e51a7" d="m42.24 13.383c-2.764 7.445-4.895 11.287-1.09 15.31 2.242 2.365 10.844-.502 13.605-7.946 2.766-7.445-.211-17.809-.211-17.809s-9.54 2.999-12.304 10.445"/><g fill="#b5aada"><path d="m42.24 13.389c2.766-7.446 12.309-10.444 12.309-10.444s.17.594.389 1.593c-2.934 1.3-8.387 4.345-10.367 9.685-2.758 7.421-4.879 11.264-1.119 15.271-.986-.018-1.803-.271-2.297-.792-3.805-4.02-1.676-7.867 1.085-15.313"/><path d="m22.925 38.625c-1.361 1.334-4.93 2.552-6.605-2.717-1.348-4.229-7.738-6.079-6.766-8.627.986-2.575 7.05.182 10.77 3.113 3.521 2.773 4.242 6.622 2.601 8.231"/><path d="m23.425 30.692c-1.359 1.334-4.928 2.548-6.605-2.719-1.346-4.23-7.736-6.078-6.766-8.626.986-2.575 7.05.18 10.771 3.11 3.522 2.777 4.245 6.624 2.6 8.235"/><path d="m41.08 38.625c1.361 1.334 4.93 2.552 6.605-2.717 1.346-4.229 7.738-6.079 6.766-8.627-.986-2.575-7.05.182-10.771 3.113-3.524 2.773-4.244 6.622-2.6 8.231"/><path d="m40.573 30.692c1.361 1.334 4.928 2.548 6.607-2.719 1.344-4.23 7.736-6.078 6.764-8.626-.984-2.575-7.05.18-10.77 3.11-3.523 2.777-4.243 6.624-2.601 8.235"/><path d="m53.01 38.37c0-7.284-13.582-17.954-21.01-17.954-7.428 0-21.01 10.67-21.01 17.954 0 5.612 7.699 4.601 13.361 9.605 2.479 2.192 3.326 4.631 7.65 4.631 4.322 0 5.169-2.438 7.65-4.631 5.664-5 13.362-3.993 13.362-9.605"/></g><g fill="#784c9a"><path d="m19.75 37.2c-1.361 1.335-2.602 4.834 2.773 6.476 4.311 1.322 8.793 6.634 8.793 6.634s-.182-6.912-3.17-10.559c-2.83-3.455-6.754-4.161-8.396-2.551"/><path d="m44.25 37.2c-1.645-1.61-5.566-.904-8.398 2.551-2.986 3.646-3.169 10.559-3.169 10.559s4.482-5.312 8.794-6.634c5.375-1.642 4.134-5.141 2.773-6.476"/></g><g fill="#5e51a7"><path d="m36.858 25.905c-1.363 1.334-2.602 4.833 2.771 6.478 4.313 1.319 8.797 6.632 8.797 6.632s-.184-6.914-3.172-10.558c-2.829-3.457-6.755-4.163-8.396-2.552"/><path d="m27.14 25.905c1.361 1.334 2.602 4.833-2.771 6.478-4.314 1.319-8.797 6.632-8.797 6.632s.184-6.914 3.17-10.558c2.832-3.457 6.756-4.163 8.398-2.552"/></g><ellipse fill="#fff" cx="24.946" cy="28.33" rx="2.675" ry="2.623"/><ellipse fill="#400a22" cx="24.946" cy="28.33" rx=".472" ry="1.767"/><ellipse fill="#fff" cx="39.05" cy="28.33" rx="2.675" ry="2.623"/><g fill="#400a22"><path d="m31.32 28.605c0 1.119-3.141-1.509-7.01-1.509-3.873 0-7.01 2.628-7.01 1.509 0-1.117 3.141-5.556 7.01-5.556 3.871 0 7.01 4.439 7.01 5.556"/><path d="m32.04 25.688c0 1.119 3.14-1.509 7.01-1.509s7.01 2.628 7.01 1.509c0-1.117-3.141-5.554-7.01-5.554s-7.01 4.437-7.01 5.554"/><path d="m26.71 39.33c1.848 1.809 2.857 3.752 2.256 4.341-.6.592-2.584-.397-4.43-2.208s-2.855-3.758-2.254-4.347c.6-.588 2.583.402 4.428 2.214"/><path d="m39.462 41.464c-1.846 1.811-3.83 2.8-4.432 2.208-.6-.589.41-2.532 2.256-4.343s3.832-2.8 4.43-2.212c.601.589-.408 2.536-2.254 4.347"/><ellipse cx="39.05" cy="28.33" rx=".472" ry="1.767"/></g><path fill="#ff9d33" d="m49.831 62.998c0 0 .059-1.236.434-3.02 2.01 1.423 4.672 2.789 9.381 2.317 0 0-3.199-1.887-4.063-6.275 1.949.42 3.912.988 3.912.988 0-11.03-21.2-16.892-21.2-16.892s4.637 18.08 11.539 22.88"/><path fill="#ffce31" d="m47.12 56.47c.383 1.027 1.016 1.563 2.113 2.766 0 0 .059-.846.346-2.067 1.348.938 3.326 1.78 6.176 2.375 0 0-1.479-2.223-1.996-5.206 1.328.254 2.178.646 2.178.646-.529-2.37-1.314-3.879-2.189-4.798.693-.321 1.164-.476 1.164-.476-4.367-4.1-14.783-7.746-14.783-7.746s2.123 9.07 6.686 15.926c-.002-.001-.117-.831.305-1.42"/><path fill="#ffdf85" d="m54.08 52.632c-1.859-.908-3.596.863-1.418 3.487 0 0-2.807.165-3.529-1.996 0 0-.859.021-.666 1.983-3.371-2.226-6.498-12.304-6.498-12.304s10.754 4.834 12.11 8.83"/><path fill="#ff9d33" d="m14.166 62.998c0 0-.059-1.236-.432-3.02-2.01 1.423-4.674 2.789-9.383 2.317 0 0 3.199-1.887 4.064-6.275-1.951.42-3.914.988-3.914.988 0-11.03 21.2-16.892 21.2-16.892s-4.636 18.08-11.538 22.88"/><path fill="#ffce31" d="m16.878 56.47c-.385 1.027-1.018 1.563-2.113 2.766 0 0-.061-.846-.348-2.067-1.346.938-3.324 1.78-6.174 2.375 0 0 1.477-2.223 1.994-5.206-1.325.253-2.177.644-2.177.644.529-2.37 1.314-3.879 2.189-4.798-.691-.321-1.164-.476-1.164-.476 4.367-4.1 14.783-7.746 14.783-7.746s-2.121 9.07-6.684 15.926c.001.001.114-.829-.306-1.418"/><path fill="#ffdf85" d="m9.921 52.632c1.857-.908 3.594.863 1.416 3.487 0 0 2.807.165 3.531-1.996 0 0 .857.021.666 1.983 3.371-2.226 6.498-12.304 6.498-12.304s-10.753 4.834-12.11 8.83"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m35.1 31.1c-1.5-1.2-2.1-2.8-8-.2-3.9 1.7-3 2.4-8.1.8-7.1-2.2-9.7 1.6-11.4 2.1 0 0 4-1.1 7.3 1.5 4.3 3.4 17.3 1.6 19.2 2.2.7.2 2.5-5.2 1-6.4"/><path d="m35.3 34.3c0 0 .1 0 0 0"/></g><path d="m33.4 31.1c-5.8 0-5.6 3.8-14.5 2.8 0 0 4.8 2.6 9.8 1.2 3-.9 5.1 0 5.1 0l-.4-4" fill="#ffd93b"/><path d="m55.6 27.4c5.1 2.3 6.4-4.9 6.4-4.9-6.5.7-8.3-1.9-8.3-1.9 4.5 1.9 6.3-5.9 6.3-5.9-6.8 2.6-5.7-2.4-13-2.4 0-2.5 3.1-5.6 3.1-5.6-8.2-2-11.3 3.7-11.3 3.7-3.1-2.6-.7-6.4-.7-6.4-8.6 0-12.1 13.3-12.1 13.3 1.8-1.8 27.2 44.7 27.2 44.7h5.1c.3-3.7-.9-8.3-.9-8.3 1.6-1.6 3.4 2.1 3.4 2.1 0-5.8-2.5-10.1-2.5-10.1 1.3-1.3 3 1.2 3 1.2 0-4.8-3-7.3-3-7.3 1.6-1.6 2.6-.4 2.6-.4 0-3.6-3.6-4.8-3.6-4.8 3.5.2 4.3-3.2 4.3-3.2-4.5.5-6-3.8-6-3.8" fill="#64892f"/><path d="M23.6,42.5C36.8,46.7,34.8,62,34.8,62h19.3c0,0,5-28.9-5.1-39.9L37.2,39.2L23.6,42.5z" fill="#8cc63e"/><path d="M23.6,42.5C36.8,46.7,33.8,62,33.8,62h5.7c0,0,0.7-16.5-5.5-18.3L23.6,42.5z" fill="#ffdd7d"/><g fill="#64892f"><path d="m24.8 43.2c12.7 1.7 27.5 4.8 26.9-17.3l-14.5 12.6-12.4 4.7"/><path d="m8.1 27.6c-.6.2-1.2-.7-.9-2.3.3-1.6 1.5-4 5.9-4.7 4.5-.7 7.5-.9 7.9-4.8.3-3.9 2-4.9 3.3-5.4 0 0-2.2 1.6-2.2 4.2 0 2.6-1 6.3-4.5 7-3.5.6-7.3 1.4-8.3 2.8-.9 1.4-.1 2.9-1.2 3.2"/></g><path d="m36.3 12.1c-7.2 0-13.2 5-15 11.7-1.2-1.8-3.3-3-5.6-3-1.5 0-2.8.5-3.9 1.3-.8-1.8-2.6-3-4.6-3-2.9-.1-5.2 2.3-5.2 5.1 0 2.9 2.3 5.2 5.2 5.2h24c1.9 0 3.4 1.5 3.4 3.5 0 1.9-1.5 3.5-3.4 3.5h-25.8c-1.9 0-3.4 1.6-3.4 3.5 0 1.9 1.5 3.5 3.4 3.5h30.9c8.5 0 15.5-7 15.5-15.5 0-8.8-6.9-15.8-15.5-15.8" fill="#8cc63e"/><path d="m8.6 23.3c-.6.9-1.8 1.2-2.8.7-1-.5.5-.7 1-1.5.6-.9 0-2 1-1.5 1 .4 1.4 1.5.8 2.3" fill="#3e4347"/><g fill="#fff"><path d="m4.6 29.4l1.7 3.4 1.7-3.4z"/><path d="m6.3 36.3l1.7-3.5 1.7 3.5z"/><path d="m8 36.3v-2.4l7.9 2.4z"/><path d="m6.3 28.7v2.4l7.9-2.4z"/></g><path d="m30.3 27.7h-27.4c-.5 0-.9.3-.9.8 0 .5.4.9.9.9h27.5c1.4 0 2.6 1.2 2.6 2.6v1.7c0 1.4-1.2 2.6-2.6 2.6h-27.5c-.5 0-.9.4-.9.9 0 .4.4.8.9.8h27.5c2.4 0 4.3-1.9 4.3-4.3v-1.7c-.1-2.4-2-4.3-4.4-4.3" fill="#ffdd7d"/><path d="m2.4 42.5c.8-2.1 5.5-.5 6.5 1.7 1.5 3.6 3.3 3.9 3.3 3.9s-3.9.5-5.3-2.3c0 0 1.9 3.8 5.5 4.7 0 0-5.2 1.3-8-2.6 0 0-.2 1.3.6 4 0-.1-4.3-4.9-2.6-9.4" fill="#64892f"/><ellipse cx="26" cy="20.8" rx="4.5" ry="4.5" fill="#8cc63e"/><ellipse cx="26" cy="20.8" rx="3.5" ry="3.5" fill="#fff"/><path d="m28 20.8c0 1.1-.9 2-2 2-1.1 0-2-.9-2-2 0-1.1.9-2 2-2 1.1 0 2 .9 2 2" fill="#3e4347"/><g fill="#64892f"><path d="m26.8 12.1c0 0-5.2 2.8-4 5.4 1.3 2.6 8.9-2.2 13.5 1.5 0 0-.8-2.2-2.3-2.6 0 0 .7-.5 2.2-.6 0 0-1.6-2-4.5-.1 0 0 .2-1.3 1.3-2.1 0 0-2.4 0-4 1.6 0 0-.7-.3.2-2.1 0 0-1.6.6-2.8 2-.1.2-.6-.8.4-3"/><path d="m11.2 26.7c-.6-.2-.6-1.3.6-2.4 1.2-1 3.6-2.1 7.6.1 4 2.3 6.7 4.1 9.3 1.2 2.6-2.8 4.5-2.5 5.9-2.1 0 0-2.7-.2-4.3 1.9-1.5 2.1-4.6 4.2-7.8 2.5-3.2-1.7-6.8-3.6-8.4-3.1-1.6.7-1.8 2.3-2.9 1.9"/><path d="m40.1 57.1h-6.1l-.3-2.7h6.4z"/></g><path d="m4.5 36.2c-1.1.2-2-.1-2.2-.8-.1-.7.6-1.4 1.7-1.7 1.1-.2 3.2.5 3.2.5s-1.6 1.7-2.7 2" fill="#ed4c5c"/><path d="m4.6 35.6c-.6.2-1.2-.1-1.3-.5-.1-.4.3-.9 1-1 .6-.1 2 .3 2 .3s-1 1.1-1.7 1.2" fill="#ffd93b"/><path d="m6.2 32.3c-.7-.1-1.2-.6-1.2-1.1.1-.5.7-.7 1.5-.6s1.9 1.2 1.9 1.2-1.5.7-2.2.5" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f433.svg b/build/js/jsxc/lib/emojione/assets/svg/1f433.svg
index b8537f2..dc6f7f1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f433.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f433.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#45cbea" d="m62 27.23c-4.504-1.281-7.471 1.556-7.471 1.556s-4.424-3.352-8.884-1.556c.439 3.976 6.713 6.879 9.368 6.879 0 0 3.02 9.906-4.16 9.906-8.672 0-6.356-8.25-14.787-16.701-7.05-7.07-19.732-8.387-26.667-2.488-7.307 6.213-9.229 16.772-5.647 25.715 0 0 15.596 1.672 17.246 3.285 0 0 32.58 2.563 35.928-4.297 3.633-7.44.506-15.421.506-15.421 2.464.001 4.568-3.105 4.568-6.878"/><path fill="#dae5ef" d="m3.752 50.54c4.215 12.66 41.12 18.09 53.17-1.012-24.926 9.768-48.07-2.961-53.17 1.012"/><g fill="#fff"><path d="m15.706 49.973c1.098 1.385 2.587 2.426 4.188 3.285 1.611.848 3.342 1.501 5.12 1.994 3.561.985 7.296 1.395 11.02 1.311 3.722-.085 7.444-.674 11-1.821 3.555-1.148 6.942-2.879 9.892-5.214-2.869 2.432-6.218 4.289-9.771 5.568-3.556 1.279-7.311 2-11.09 2.217-3.784.21-7.612-.076-11.33-.972-1.857-.45-3.686-1.067-5.431-1.913-1.727-.852-3.429-1.95-4.73-3.477l1.137-.978"/><path d="m9.192 49.18c.854 1.757 2.464 3.158 4.157 4.347 1.715 1.188 3.601 2.154 5.55 2.96 3.91 1.596 8.105 2.537 12.345 2.8 4.237.263 8.539-.173 12.625-1.406 4.087-1.223 7.942-3.248 11.291-5.931-3.269 2.778-7.083 4.932-11.178 6.288-4.094 1.367-8.448 1.939-12.773 1.798-4.328-.143-8.642-.975-12.722-2.502-2.035-.772-4.02-1.715-5.869-2.917-1.819-1.208-3.639-2.648-4.756-4.741l1.33-.696"/><path d="m5.305 49.661c1.661 2.789 4.323 4.935 7.185 6.628 2.884 1.69 6.04 2.936 9.298 3.803 6.511 1.708 13.506 1.95 20.09.193-6.52 1.998-13.587 2.029-20.271.535-3.345-.762-6.619-1.91-9.672-3.551-3.02-1.646-5.936-3.787-7.897-6.804l1.264-.804"/></g><path fill="#45cbea" d="m29.74 55.39c2.873 5.132 9.436 7.06 14.01 4.679 2.459-1.281-4.643.195-4.264-5.493.174-2.601-4.88-2.907-7.659-2.907s-3.366 1.441-2.09 3.721"/><g fill="#3e4347"><path d="m22.79 48.736c.3.063.596.087.896.128.298.037.616.101.903.273.563.4.722 1.075.757 1.668-.11-.284-.221-.566-.355-.824-.136-.258-.302-.494-.537-.634-.225-.159-.514-.219-.805-.296-.293-.072-.591-.166-.859-.315"/><path d="m3.752 50.54c1.373-1.176 3.318-1.505 5.091-1.503 1.806-.006 3.567.301 5.292.62 1.723.339 3.418.729 5.108.958 1.658.19 3.469.299 4.825-.914-.453.772-1.3 1.302-2.182 1.558-.89.256-1.813.316-2.714.291-1.807-.048-3.548-.399-5.266-.716-1.714-.342-3.409-.685-5.108-.865-1.691-.157-3.421-.156-5.05.571"/><ellipse transform="matrix(.9984.0571-.0571.9984 1.435-1.257)" cx="22.711" cy="24.487" rx="3.622" ry="1.158"/></g><path fill="#42ade2" d="m30.703 7.12c0 0 7.269-6.583-4.304-2 0 0 .011-6.648-3.677-.532 0 0-5.831-5.459-3.291-.309 0 0-11.138-2.756-2.81 1.823 0 0-11.908 2.23.862 3.481 5.682.558 3.182 15.07 5.346 15.331 1.751.211 3.512-13.594 8.384-14.05 6.744-.637 7.973-2.373-.51-3.741"/><g fill="#fff"><path d="m27.01 7.911c0 0 4.02-4.132-2.791-1.221 0 0-7.06-3.132-3.427.338 0 0-8.796.39-.75 1.523 1.687.237 1.657 1.989 3.674 2.233 1.857.224 2.306-1.344 4.04-1.522 6.487-.672 1.718-1.455-.743-1.351"/><path d="m23.354 23.324c.358-2.02.731-4.04 1.217-6.04.246-1 .519-1.996.88-2.975.381-.963.776-1.976 1.684-2.75.157-.134.395-.116.529.042.135.158.115.395-.042.529-.008.006-.015.012-.022.017l-.016.012c-.715.521-1.204 1.458-1.611 2.361-.407.922-.736 1.889-1.04 2.863-.603 1.953-1.098 3.945-1.579 5.938"/><path d="m22.713 21.303c-.006-1.716-.123-3.429-.379-5.115-.128-.843-.289-1.68-.492-2.504-.203-.817-.444-1.65-.751-2.398l-.007-.017c-.079-.192.013-.412.205-.49.191-.079.411.013.489.205.004.008.007.018.01.026.282.864.454 1.701.604 2.561.146.855.247 1.715.314 2.575.134 1.721.126 3.445.007 5.157"/><path d="m22.944 22.798c.217-1.77.354-3.546.403-5.323.043-1.771.017-3.563-.17-5.295l-.002-.016c-.022-.206.127-.392.333-.414.206-.022.391.126.413.333.001.009.002.018.002.026.068 1.824-.034 3.604-.202 5.389-.173 1.782-.436 3.55-.777 5.3"/></g><path fill="#3e4347" d="m21.01 44.13l.017-.066c.002-.006.004-.011.005-.016l.063-.196c.002-.003.002-.006.003-.01.037-.102.072-.189.105-.267.066-.159.148-.326.251-.511.176-.315.388-.622.636-.915.479-.563 1.068-1.038 1.704-1.375.642-.34 1.354-.552 2.06-.61.366-.027.725-.018 1.068.032.194.028.366.065.521.107.08.022.163.049.262.083.005.001.008.002.011.004l.181.069c.006.003.012.005.016.007l.058.028c.114.053.189.176.189.313v.078c0 .185-.137.335-.307.339-.306.003-.607.025-.903.062-.304.036-.601.088-.885.157-.577.138-1.145.353-1.684.636-.529.277-.986.636-1.33.945.127-.007.264-.012.408-.012.463 0 .932.046 1.389.137.644.127 1.229.357 1.745.684.271.175.516.368.733.581.123.121.229.236.313.345.046.058.093.116.146.192.001.003.003.007.006.011l.093.141c.003.004.004.008.008.014l.028.049c.071.123.062.283-.024.396l-.039.052c-.062.081-.149.124-.239.124-.059 0-.117-.019-.169-.056-.219-.152-.441-.295-.663-.42-.232-.134-.466-.253-.697-.354-.496-.22-.996-.377-1.493-.465-.496-.095-1.027-.13-1.573-.1-.26.013-.527.042-.798.087-.253.038-.515.105-.773.172-.024.009-.052.025-.077.025h-.001c-.086 0-.15-.05-.224-.098-.124-.079-.18-.251-.14-.399"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 27.2c-4.5-1.3-7.5 1.6-7.5 1.6s-4.4-3.4-8.9-1.6c.4 4 6.7 6.9 9.4 6.9 0 0 3 9.9-4.2 9.9-8.7 0-6.4-8.2-14.8-16.7-7.1-7.1-19.7-8.4-26.7-2.5-7.2 6.2-9.1 16.8-5.5 25.7 0 0 15.6 1.7 17.2 3.3 0 0 32.6 2.6 35.9-4.3 3.6-7.4.5-15.4.5-15.4 2.5 0 4.6-3.1 4.6-6.9" fill="#45cbea"/><path d="m3.8 50.5c4.2 12.7 41.1 18.1 53.2-1-25 9.8-48.1-2.9-53.2 1" fill="#dae5ef"/><g fill="#fff"><path d="m15.7 50c1.1 1.4 2.6 2.4 4.2 3.3 1.6.8 3.3 1.5 5.1 2 3.6 1 7.3 1.4 11 1.3 3.7-.1 7.4-.7 11-1.8 3.6-1.1 6.9-2.9 9.9-5.2-2.9 2.4-6.2 4.3-9.8 5.6-3.6 1.3-7.3 2-11.1 2.2-3.8.2-7.6-.1-11.3-1-1.9-.5-3.7-1.1-5.4-1.9-1.7-.9-3.4-2-4.7-3.5l1.1-1"/><path d="m9.2 49.2c.9 1.8 2.5 3.2 4.2 4.3 1.7 1.2 3.6 2.2 5.6 3 3.9 1.6 8.1 2.5 12.3 2.8 4.2.3 8.5-.2 12.6-1.4 4.1-1.2 7.9-3.2 11.3-5.9-3.3 2.8-7.1 4.9-11.2 6.3-4.1 1.4-8.4 1.9-12.8 1.8-4.3-.1-8.6-1-12.7-2.5-2-.8-4-1.7-5.9-2.9-1.8-1.3-3.6-2.7-4.7-4.8l1.3-.7"/><path d="m5.3 49.7c1.7 2.8 4.3 4.9 7.2 6.6 2.9 1.7 6 2.9 9.3 3.8 6.5 1.7 13.5 2 20.1.2-6.5 2-13.6 2-20.3.5-3.3-.8-6.6-1.9-9.7-3.6-3-1.6-5.9-3.8-7.9-6.8l1.3-.7"/></g><path d="m29.7 55.4c2.9 5.1 9.4 7.1 14 4.7 2.5-1.3-4.6.2-4.3-5.5.2-2.6-4.9-2.9-7.7-2.9s-3.2 1.4-2 3.7" fill="#45cbea"/><g fill="#3e4347"><path d="m22.8 48.7c.3.1.6.1.9.1.3 0 .6.1.9.3.6.4.7 1.1.8 1.7-.1-.3-.2-.6-.4-.8-.1-.3-.3-.5-.5-.6-.2-.2-.5-.2-.8-.3-.3-.1-.6-.2-.9-.4"/><path d="m3.8 50.5c1.3-1.1 3.3-1.5 5-1.5 1.8 0 3.6.3 5.3.6 1.7.3 3.4.7 5.1 1 1.7.2 3.5.3 4.8-.9-.5.8-1.3 1.3-2.2 1.6-.9.3-1.8.3-2.7.3-1.8 0-3.5-.4-5.3-.7-1.7-.3-3.4-.7-5.1-.9-1.6-.2-3.3-.2-4.9.5"/><ellipse transform="matrix(.0571-.9984.9984.0571-3.0334 45.7642)" cx="22.7" cy="24.5" rx="1.2" ry="3.6"/></g><path d="m30.7 7.1c0 0 7.3-6.6-4.3-2 0 0 0-6.6-3.7-.5 0 0-5.8-5.5-3.3-.3 0 0-11.1-2.8-2.8 1.8 0 0-11.9 2.2.9 3.5 5.7.6 3.2 15.1 5.3 15.3 1.8.2 3.5-13.6 8.4-14.1 6.8-.6 8-2.3-.5-3.7" fill="#42ade2"/><g fill="#fff"><path d="m27 7.9c0 0 4-4.1-2.8-1.2 0 0-7.1-3.1-3.4.3 0 0-8.8.4-.8 1.5 1.7.2 1.7 2 3.7 2.2 1.9.2 2.3-1.3 4-1.5 6.5-.6 1.8-1.4-.7-1.3"/><path d="m23.4 23.3c.4-2 .7-4 1.2-6 .2-1 .5-2 .9-3 .4-1 .8-2 1.7-2.8.2-.1.4-.1.5 0 .1.2.1.4 0 .5-.7.5-1.2 1.5-1.6 2.4-.4.9-.7 1.9-1 2.9-.8 2-1.3 4-1.7 6"/><path d="m22.7 21.3c0-1.7-.1-3.4-.4-5.1-.1-.8-.3-1.7-.5-2.5-.2-.8-.4-1.6-.8-2.4-.1-.2 0-.4.2-.5.2-.1.4 0 .5.2.3.9.5 1.7.6 2.6.1.9.2 1.7.3 2.6.2 1.7.2 3.4.1 5.1"/><path d="m22.9 22.8c.2-1.8.4-3.5.4-5.3 0-1.8 0-3.6-.2-5.3 0-.2.1-.4.3-.4.2 0 .4.1.4.3.1 1.8 0 3.6-.2 5.4-.1 1.8-.3 3.5-.7 5.3"/></g><path d="m21 44.1c0 0 0-.1 0 0l.1-.3c0 0 0 0 0 0 0-.1.1-.2.1-.3.1-.2.1-.3.3-.5.2-.3.4-.6.6-.9.5-.6 1.1-1 1.7-1.4.6-.3 1.4-.6 2.1-.6.4 0 .7 0 1.1 0 .2 0 .4.1.5.1.1 0 .2 0 .3.1l.2.1c0 0 0 0 0 0h.1c.1.1.2.2.2.3v.1c0 .2-.1.3-.3.3-.3 0-.6 0-.9.1-.3 0-.6.1-.9.2-.6.1-1.1.4-1.7.6-.5.3-1 .6-1.3.9.1 0 .3 0 .4 0 .5 0 .9 0 1.4.1.6.1 1.2.4 1.7.7.3.2.5.4.7.6.1.1.2.2.3.3 0 .1.1.1.1.2l.1.1c0 0 0 0 0 0 .1.1.1.3 0 .4v.1c-.1.1-.1.1-.2.1-.1 0-.1 0-.2-.1-.2-.2-.4-.3-.7-.4-.2-.1-.5-.3-.7-.4-.5-.2-1-.4-1.5-.5-.5-.1-1-.1-1.6-.1-.3 0-.5 0-.8.1-.3 0-.5.1-.8.2 0 0-.1 0-.1 0-.1 0-.1 0-.2-.1-.1.2-.1.1-.1-.1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f434.svg b/build/js/jsxc/lib/emojione/assets/svg/1f434.svg
index 6cf2617..5935149 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f434.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f434.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e5be7a"><path d="m12.645 19.666c-.645-7.106 3.736-7.976 6.121-7.469 2.385.506 4.349 6.39 1.712 13.03-3.631 9.127-10.542 10.65-10.542 10.65s3.553-6.889 2.709-16.207"/><path d="m14.893 27.481c-.645-7.105 3.736-7.976 6.121-7.469 2.385.506 4.35 6.391 1.712 13.03-3.631 9.128-13.173 11.677-13.173 11.677s6.184-7.917 5.34-17.235"/><path d="m16.481 37.437c-.644-7.105 3.736-7.975 6.123-7.468 2.385.507 4.347 6.39 1.709 13.03-3.628 9.128-15.655 12.694-15.655 12.694s8.667-8.935 7.823-18.253"/><path d="m53.813 19.893c-1.36-7.01-6.227-8.203-8.611-7.696-2.383.506-4.347 6.39-1.71 13.03 3.629 9.127 4.065 15.05 4.065 15.05s8.422-9.207 6.256-20.379"/></g><path fill="#c1875d" d="m57.98 2.01c.16 5.134-.616 9.349-2.302 11.872-2.545 1.584-6.93 2.396-12.362 2.276-.159-5.134.614-9.352 2.302-11.874 2.546-1.583 6.93-2.396 12.362-2.274"/><path fill="#3e4347" d="m54.746 5.131c.091 2.867-.344 5.224-1.285 6.635-1.423.887-3.876 1.339-6.912 1.272-.088-2.87.346-5.226 1.287-6.637 1.427-.887 3.875-1.339 6.91-1.27"/><path fill="#c1875d" d="m20.817 16.15c-5.371.151-9.783-.59-12.423-2.201-1.66-2.435-2.507-6.623-2.379-11.815 5.369-.151 9.777.586 12.417 2.198 1.662 2.439 2.508 6.624 2.385 11.818"/><path fill="#3e4347" d="m17.583 13.09c-3.02.084-5.509-.331-6.997-1.24-.937-1.372-1.413-3.731-1.343-6.659 3.03-.087 5.511.33 6.998 1.239.935 1.375 1.418 3.735 1.342 6.66"/><path fill="#c1875d" d="m48.585 28.956c0 3.673-4.128 16.411-4.128 21.752 0 0-5.146.514-12.477.514-7.188 0-12.299-.246-12.299-.246 0-5.477-4.304-18.336-4.304-22.02 0-4.886-.53-10.08 4.589-16.834 1.201-1.585 1.538-3.644 12.01-3.644 10.39 0 11.147 1.664 12.233 3.01 5.01 6.215 4.372 11 4.372 17.464"/><path fill="#ffe2b3" d="m44.771 54.88c0 4.885-2.998 7.119-12.787 7.119-9.792 0-12.788-2.234-12.788-7.119 0-4.887.271-10.57 12.788-10.57 12.518 0 12.787 5.683 12.787 10.57"/><g fill="#3e4347"><path d="m48.98 26.744c0 2.209-1.458 4-3.25 4-1.797 0-3.25-1.791-3.25-4s1.453-4 3.25-4c1.792 0 3.25 1.79 3.25 4"/><ellipse cx="18.231" cy="26.744" rx="3.25" ry="4"/></g><g fill="#ffe2b3"><path d="m40.549 43.34c-2.143-1.385-5.175 1.119-6.774 5.592-1.6 4.482-1.155 9.236.993 10.621 2.146 1.391 5.181-1.113 6.774-5.59 1.595-4.477 1.151-9.234-.993-10.623"/><path d="m23.42 43.34c-2.146 1.393-2.591 6.146-.992 10.625 1.597 4.475 4.629 6.979 6.774 5.59 2.144-1.387 2.589-6.141.989-10.619-1.59-4.477-4.625-6.983-6.771-5.596"/></g><path fill="#fff" d="m27.57 19.22c0-8.426 1.976-10.126 4.415-10.126 2.439 0 4.414 1.7 4.414 10.126 0 8.428-4.414 20.39-4.414 20.39s-4.415-11.962-4.415-20.39"/><g fill="#3e4347"><path d="m39.776 45.974c-1.57-1.016-3.79.82-4.964 4.098-1.173 3.281-.844 6.766.729 7.781 1.573 1.02 3.796-.816 4.965-4.096 1.168-3.281.843-6.766-.73-7.783"/><path d="m24.2 45.974c-1.573 1.02-1.9 4.502-.729 7.783 1.169 3.279 3.391 5.115 4.963 4.096 1.57-1.016 1.896-4.5.726-7.779-1.169-3.28-3.39-5.116-4.96-4.1"/></g><path fill="#e5be7a" d="m45.73 9.555c-7.291-10.344-36.11-6.984-36.11 16.958 0 0 6.883-8.836 18.46-11.407 0 0-4.606 5.271-10.04 9.45 0 0 11.297-2.86 18.275-9.357 0 0 .815 4.672-8.524 7.768-.001-.001 26.894-.698 17.937-13.412"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e5be7a"><path d="m12.6 19.7c-.6-7.1 3.7-8 6.1-7.5 2.4.5 4.3 6.4 1.7 13-3.6 9.1-10.5 10.7-10.5 10.7s3.6-6.9 2.7-16.2"/><path d="m14.9 27.5c-.6-7.1 3.7-8 6.1-7.5 2.4.5 4.4 6.4 1.7 13-3.6 9.2-13.1 11.7-13.1 11.7s6.1-7.9 5.3-17.2"/><path d="m16.5 37.4c-.6-7.1 3.7-8 6.1-7.5 2.4.5 4.3 6.4 1.7 13-3.6 9.2-15.6 12.8-15.6 12.8s8.6-8.9 7.8-18.3"/><path d="m53.8 19.9c-1.4-7-6.2-8.2-8.6-7.7-2.4.5-4.3 6.4-1.7 13 3.6 9.1 4.1 15 4.1 15s8.4-9.1 6.2-20.3"/></g><path d="m58 2c.2 5.1-.6 9.3-2.3 11.9-2.5 1.6-6.9 2.4-12.4 2.3-.2-5.1.6-9.4 2.3-11.9 2.6-1.6 6.9-2.4 12.4-2.3" fill="#c1875d"/><path d="m54.7 5.1c.1 2.9-.3 5.2-1.3 6.6-1.4.9-3.9 1.3-6.9 1.3-.1-2.9.3-5.2 1.3-6.6 1.5-.9 3.9-1.3 6.9-1.3" fill="#3e4347"/><path d="m20.8 16.2c-5.4.1-9.8-.6-12.4-2.2-1.7-2.5-2.5-6.7-2.4-11.9 5.4-.2 9.8.6 12.4 2.2 1.7 2.5 2.5 6.7 2.4 11.9" fill="#c1875d"/><path d="m17.6 13.1c-3 .1-5.5-.3-7-1.2-.9-1.4-1.4-3.7-1.3-6.7 3-.1 5.5.3 7 1.2.9 1.4 1.4 3.8 1.3 6.7" fill="#3e4347"/><path d="m48.6 29c0 3.7-4.1 16.4-4.1 21.8 0 0-5.1.5-12.5.5-7.2 0-12.3-.2-12.3-.2 0-5.5-4.3-18.3-4.3-22 0-4.9-.5-10.1 4.6-16.8 1.2-1.6 1.5-3.6 12-3.6 10.4 0 11.1 1.7 12.2 3 5 6 4.4 10.8 4.4 17.3" fill="#c1875d"/><path d="m44.8 54.9c0 4.9-3 7.1-12.8 7.1-9.8 0-12.8-2.2-12.8-7.1 0-4.9.3-10.6 12.8-10.6 12.5 0 12.8 5.7 12.8 10.6" fill="#ffe2b3"/><g fill="#3e4347"><path d="m49 26.7c0 2.2-1.5 4-3.2 4-1.8 0-3.2-1.8-3.2-4s1.5-4 3.2-4c1.7 0 3.2 1.8 3.2 4"/><ellipse cx="18.2" cy="26.7" rx="3.2" ry="4"/></g><g fill="#ffe2b3"><path d="m40.5 43.3c-2.1-1.4-5.2 1.1-6.8 5.6-1.6 4.5-1.2 9.2 1 10.6 2.1 1.4 5.2-1.1 6.8-5.6 1.6-4.4 1.2-9.2-1-10.6"/><path d="m23.4 43.3c-2.1 1.4-2.6 6.1-1 10.6 1.6 4.5 4.6 7 6.8 5.6 2.1-1.4 2.6-6.1 1-10.6-1.6-4.4-4.6-6.9-6.8-5.6"/></g><path d="m27.6 19.2c0-8.4 2-10.1 4.4-10.1s4.4 1.7 4.4 10.1c0 8.4-4.4 20.4-4.4 20.4s-4.4-12-4.4-20.4" fill="#fff"/><g fill="#3e4347"><path d="m39.8 46c-1.6-1-3.8.8-5 4.1-1.2 3.3-.8 6.8.7 7.8 1.6 1 3.8-.8 5-4.1 1.2-3.3.8-6.8-.7-7.8"/><path d="m24.2 46c-1.6 1-1.9 4.5-.7 7.8 1.2 3.3 3.4 5.1 5 4.1 1.6-1 1.9-4.5.7-7.8-1.2-3.3-3.4-5.1-5-4.1"/></g><path d="m45.7 9.6c-7.3-10.3-36.1-7-36.1 17 0 0 6.9-8.8 18.5-11.4 0 0-4.6 5.3-10 9.4 0 0 11.3-2.9 18.3-9.4 0 0 .8 4.7-8.5 7.8-.1 0 26.8-.7 17.8-13.4" fill="#e5be7a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f435.svg b/build/js/jsxc/lib/emojione/assets/svg/1f435.svg
index d3e66f9..5e796ad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f435.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f435.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m62 29.13c0 6.383-3.695 11.554-8.252 11.554s-8.25-5.171-8.25-11.554c0-6.384 3.693-11.556 8.25-11.556s8.252 5.172 8.252 11.556"/><ellipse fill="#e0ac7e" cx="53.75" cy="30.11" rx="5.372" ry="7.524"/><path fill="#89664c" d="m18.5 29.13c0 6.383-3.693 11.554-8.251 11.554-4.556 0-8.249-5.171-8.249-11.554 0-6.384 3.693-11.556 8.249-11.556 4.558 0 8.251 5.172 8.251 11.556"/><ellipse fill="#e0ac7e" cx="10.249" cy="30.11" rx="5.372" ry="7.524"/><path fill="#89664c" d="m45.604 10.923c1.314-.673 2.164-1.01 2.164-1.01-3.715-1.269-6.936-2.01-9.723-2.347 1.467-1.072 2.447-1.481 2.447-1.481-7.253-.413-12.896.742-17.222 2.498-4.739 1.659-8.768 4.68-11.549 8.784-.584.826-.85 1.347-.85 1.347l.006.006c-2.071 3.573-3.261 7.854-3.261 12.692 0 14.683 10.916 26.589 24.384 26.589 13.465 0 24.383-11.906 24.383-26.589.001-9.191-4.277-16.389-10.779-20.488"/><path fill="#e0ac7e" d="m54.647 34.434c0-6.175-5.393-11.182-12.05-11.182-4.582 0-8.568 2.377-10.602 5.872-2.037-3.495-6.02-5.872-10.604-5.872-6.653 0-12.04 5.01-12.04 11.182 0 5.623 4.477 10.264 10.299 11.05-.094 1.371.063 3.09.762 5.193 0 0 .141-.637.477-1.445 1.813 4.04 6.1 6.887 11.11 6.887 5.01 0 9.295-2.848 11.11-6.887.334.809.475 1.445.475 1.445.699-2.104.857-3.822.762-5.193 5.824-.788 10.3-5.428 10.3-11.05"/><g fill="#89664c"><ellipse cx="34.15" cy="40.541" rx=".721" ry="1.381"/><ellipse cx="29.853" cy="40.541" rx=".72" ry="1.381"/></g><g fill="#3e4347"><ellipse cx="19.15" cy="34.471" rx="4.219" ry="3.635"/><ellipse cx="44.849" cy="34.471" rx="4.219" ry="3.635"/></g><path fill="#89664c" d="m27.03 39.893c.35-.982 1.207-1.668 2.049-2.197.865-.527 1.84-.879 2.857-1 1.014-.111 2.094.031 3.01.54.928.49 1.625 1.332 2.025 2.256-.672-.74-1.447-1.316-2.291-1.646-.846-.324-1.756-.408-2.657-.299-.904.094-1.799.373-2.656.746-.43.193-.85.408-1.25.664-.408.247-.792.534-1.089.937"/><path fill="#3e4347" d="m42.634 43.04c0 4.324-4.76 8.02-10.633 8.02-5.873 0-10.635-3.691-10.635-8.02 0 0 5.063 1.266 10.635 1.266 5.57 0 10.633-1.266 10.633-1.266"/><path fill="#fff" d="m40.937 44.35c0 1.773-3.717 2.834-8.936 2.834-5.221 0-8.936-1.061-8.936-2.834 0 0 3.984.852 8.936.852 4.951-.001 8.936-.852 8.936-.852"/><path fill="#ff717f" d="m35.78 49.12c0 .922-1.689.816-3.78.816-2.09 0-3.781.105-3.781-.816s1.691-1.385 3.781-1.385c2.091 0 3.78.463 3.78 1.385"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="53.7" cy="33" rx="8.3" ry="8.2" fill="#89664c"/><ellipse cx="53.7" cy="33" rx="5.4" ry="5.4" fill="#ffc5d3"/><ellipse cx="10.2" cy="33" rx="8.2" ry="8.2" fill="#89664c"/><ellipse cx="10.2" cy="33" rx="5.4" ry="5.4" fill="#ffc5d3"/><g fill="#89664c"><path d="m43.4 10.8c1.1-.6 1.9-.9 1.9-.9-3.2-1.1-6-1.8-8.5-2.1 1.3-1 2.1-1.3 2.1-1.3-20.4-2.9-30.1 9-30.1 19.5h46.4c-.7-7.4-4.8-12.4-11.8-15.2"/><path d="m55.3 27.6c0-9.7-10.4-17.6-23.3-17.6s-23.3 7.9-23.3 17.6c0 2.3.6 4.4 1.6 6.4-1 2-1.6 4.2-1.6 6.4 0 9.7 10.4 17.6 23.3 17.6s23.3-7.9 23.3-17.6c0-2.3-.6-4.4-1.6-6.4 1-2 1.6-4.2 1.6-6.4"/></g><path d="m52 28.2c0-16.9-20-6.1-20-6.1s-20-10.8-20 6.1c0 4.7 2.9 9 7.5 11.7-1.3 1.7-2.1 3.6-2.1 5.7 0 6.1 6.6 11 14.7 11s14.7-4.9 14.7-11c0-2.1-.8-4-2.1-5.7 4.4-2.7 7.3-7 7.3-11.7" fill="#e0ac7e"/><g fill="#3b302a"><path d="m35.1 38.7c0 1.1-.4 2.1-1 2.1-.6 0-1-.9-1-2.1 0-1.1.4-2.1 1-2.1.6.1 1 1 1 2.1"/><path d="m30.9 38.7c0 1.1-.4 2.1-1 2.1-.6 0-1-.9-1-2.1 0-1.1.4-2.1 1-2.1.5.1 1 1 1 2.1"/><ellipse cx="40.7" cy="31.7" rx="3.5" ry="4.5"/><ellipse cx="23.3" cy="31.7" rx="3.5" ry="4.5"/><path d="m41.8 44.5c1.4 1.2-2.9 6.9-9.8 7-6.9 0-11.3-5.8-9.8-7 .4-.3 5.2.9 9.8.9 4.7 0 9.5-1.2 9.8-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f436.svg b/build/js/jsxc/lib/emojione/assets/svg/1f436.svg
index 328a554..b6af6c6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f436.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f436.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe3c7" d="m15.775 52.02c-6.748-4.377-9.438-21.369-7.238-29.11 1.638-5.759 7.832-14.246 13.393-16.459 4.678-1.863 15.461-1.863 20.14 0 5.563 2.213 11.755 10.701 13.393 16.459 2.203 7.738.513 24.73-6.238 29.11-14.233 9.229-19.217 9.23-33.449 0"/><path fill="#423223" d="m5.072 24.667c3.614 7.89 4.5 8.198 7.912-1.18 1.819-5 .545-7.993 2.66-11.226 1.178-1.802 3.906-4.748 3.906-4.748s-21.299 2.253-14.478 17.15"/><path fill="#947151" d="m14.179 7.218c-5.378 3.458-16.9 2.086-10.08 16.988 3.614 7.89 4.5 8.199 7.912-1.18 1.819-5 .545-7.993 2.66-11.226 1.178-1.802 4.879-4.287 4.879-4.287s-1.68-2.669-5.371-.295"/><path fill="#423223" d="m58.928 24.662c-3.614 7.89-4.5 8.199-7.912-1.18-1.819-5-.545-7.993-2.66-11.226-1.178-1.802-3.906-4.748-3.906-4.748s21.298 2.253 14.478 17.15"/><path fill="#947151" d="m49.82 7.213c5.378 3.458 16.9 2.086 10.08 16.988-3.614 7.889-4.5 8.199-7.912-1.18-1.819-5-.545-7.993-2.66-11.226-1.178-1.802-4.879-4.287-4.879-4.287s1.681-2.669 5.371-.295"/><ellipse fill="#fff" cx="17.749" cy="30.735" rx="6" ry="6"/><ellipse fill="#3e4347" cx="16.249" cy="30.735" rx="4.5" ry="4.5"/><ellipse fill="#fff" cx="46.25" cy="30.734" rx="6" ry="6"/><ellipse fill="#3e4347" cx="47.75" cy="30.734" rx="4.5" ry="4.5"/><path fill="#7d644b" d="m21.689 48.769l4.65 4.858c2.796 2.908 8.525 2.91 11.317 0l4.652-4.858-4.78-4.992h-11.06l-4.78 4.992"/><path fill="#f15a61" d="m32 39.588c0 0-4.861 6.939-4.281 10.306.818 4.765 7.744 4.765 8.562 0 .579-3.367-4.281-10.306-4.281-10.306"/><path fill="#ba454b" d="m32 51.68l1.083-6.713h-2.166l1.083 6.713"/><path fill="#423223" d="m26.986 41.494h10.03v4.556h-10.03z"/><path fill="#947151" d="m47.834 42.58l-7.142-7.463c-4.295-4.465-13.09-4.469-17.381 0l-7.146 7.463c-2.027 2.117-2.027 5.549 0 7.668 2.024 2.111 5.314 2.111 7.342 0l7.148-7.461c.688-.721 2-.721 2.69 0l7.146 7.461c2.028 2.111 5.316 2.111 7.342 0 2.027-2.119 2.027-5.551.001-7.668"/><g fill="#3e4347"><path d="m26.1 35.646c0-2.629 2.642-3.136 5.898-3.136 3.258 0 5.898.507 5.898 3.136 0 2.088-4.695 3.941-5.898 3.941-1.206.001-5.898-1.853-5.898-3.941"/><path transform="matrix(.7068-.7075.7075.7068-20.452 28.633)" d="m23.606 38.28h1.415v1.414h-1.415z"/><path transform="matrix(.7068-.7075.7075.7068-23.1 27.755)" d="m21.23 41.03h1.415v1.414h-1.415z"/><path transform="matrix(.7068-.7075.7075.7068-22.885 30.26)" d="m24.356 42.03h1.415v1.414h-1.415z"/><path transform="matrix(-.7068-.7075.7075-.7068 40.15 94.62)" d="m38.978 38.28h1.415v1.414h-1.415z"/><path transform="matrix(-.7068-.7075.7075-.7068 42.27 101)" d="m41.36 41.03h1.415v1.414h-1.415z"/><path transform="matrix(-.7068-.7075.7075-.7068 36.22 100.49)" d="m38.23 42.03h1.415v1.414h-1.415z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m15.8 52.1c-6.8-4.4-9.5-21.5-7.3-29.2 1.6-5.8 7.8-14.3 13.4-16.5 4.7-1.9 15.5-1.9 20.1 0 5.6 2.2 11.8 10.7 13.4 16.5 2.2 7.8.5 24.8-6.2 29.2-14.2 9.2-19.2 9.2-33.4 0" fill="#f5d1ac"/><path d="m5.1 24.7c3.6 7.9 4.5 8.2 7.9-1.2 1.8-5 .5-8 2.7-11.2 1.2-1.8 3.9-4.8 3.9-4.8s-21.3 2.2-14.5 17.2" fill="#423223"/><path d="m14.2 7.2c-5.4 3.5-16.9 2.1-10.1 17 3.6 7.9 4.5 8.2 7.9-1.2 1.8-5 .5-8 2.7-11.2 1.2-1.8 4.9-4.3 4.9-4.3s-1.7-2.7-5.4-.3" fill="#947151"/><path d="m58.9 24.6c-3.6 7.9-4.5 8.2-7.9-1.2-1.8-5-.5-8-2.7-11.2-1.2-1.8-3.9-4.8-3.9-4.8s21.3 2.3 14.5 17.2" fill="#423223"/><path d="m49.8 7.2c5.4 3.5 16.9 2.1 10.1 17-3.6 7.9-4.5 8.2-7.9-1.2-1.8-5-.5-8-2.7-11.2-1.2-1.8-4.9-4.3-4.9-4.3s1.7-2.7 5.4-.3" fill="#947151"/><ellipse cx="17.7" cy="30.7" rx="6" ry="6" fill="#fff"/><ellipse cx="16.2" cy="30.7" rx="4.5" ry="4.5" fill="#3e4347"/><ellipse cx="46.3" cy="30.7" rx="6" ry="6" fill="#fff"/><ellipse cx="47.8" cy="30.7" rx="4.5" ry="4.5" fill="#3e4347"/><path d="m21.7 48.8l4.6 4.9c2.8 2.9 8.5 2.9 11.3 0l4.7-4.9-4.8-5h-11l-4.8 5" fill="#7d644b"/><path d="m32 39.6c0 0-4.9 7-4.3 10.3.8 4.8 7.7 4.8 8.6 0 .6-3.3-4.3-10.3-4.3-10.3" fill="#f15a61"/><path d="m32 51.7l1.1-6.7h-2.2l1.1 6.7" fill="#ba454b"/><path fill="#423223" d="m27 41.5h10v4.6h-10z"/><path d="m47.8 42.6l-7.1-7.5c-4.3-4.5-13.1-4.5-17.4 0l-7.1 7.5c-2 2.1-2 5.6 0 7.7 2 2.1 5.3 2.1 7.3 0l7.1-7.5c.7-.7 2-.7 2.7 0l7.1 7.5c2 2.1 5.3 2.1 7.3 0 2.2-2.1 2.2-5.6.1-7.7" fill="#947151"/><g fill="#3e4347"><path d="m26.1 35.7c0-2.6 2.6-3.1 5.9-3.1 3.3 0 5.9.5 5.9 3.1 0 2.1-4.7 3.9-5.9 3.9-1.2 0-5.9-1.9-5.9-3.9"/><path transform="matrix(.7061-.7081.7081.7061-20.4741 28.6792)" d="m23.6 38.3h1.4v1.4h-1.4z"/><path transform="matrix(.7061-.7081.7081.7061-23.1252 27.8024)" d="m21.2 41.1h1.4v1.4h-1.4z"/><path transform="matrix(.7061-.7081.7081.7061-22.9146 30.3141)" d="m24.4 42.1h1.4v1.4h-1.4z"/><path transform="matrix(.7081-.7061.7061.7081-15.9562 39.4061)" d="m39 38.3h1.4v1.4h-1.4z"/><path transform="matrix(.7081-.7061.7061.7081-17.2077 41.8912)" d="m41.4 41.1h1.4v1.4h-1.4z"/><path transform="matrix(.7081-.7061.7061.7081-18.8291 39.9731)" d="m38.2 42.1h1.4v1.4h-1.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f437.svg b/build/js/jsxc/lib/emojione/assets/svg/1f437.svg
index 6b0a9b7..30d534b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f437.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f437.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fc97b2" d="m20.594 14.79c-2.381-4.463-18.218-3.129-18.218-3.129s-1.867 16.06 2.723 18.554c3.534 1.914 17.424-11.805 15.495-15.425"/><path fill="#ffd7e4" d="m17.618 17.241c-1.476-2.768-11.292-1.939-11.292-1.939s-1.157 9.959 1.688 11.501c2.19 1.187 10.801-7.318 9.604-9.562"/><path fill="#fc97b2" d="m58.67 30.1c4.482-2.369 3.143-18.14 3.143-18.14s-16.14-1.859-18.637 2.711c-1.923 3.516 11.858 17.346 15.494 15.425"/><path fill="#ffd7e4" d="m56.21 27.14c2.779-1.47 1.948-11.244 1.948-11.244s-10-1.151-11.553 1.682c-1.191 2.178 7.35 10.753 9.605 9.562"/><path fill="#fc97b2" d="m58.801 39.37c0 17.397-11.999 20.635-26.8 20.635s-26.8-3.238-26.8-20.635c0-17.397 16.467-29.88 26.8-29.88s26.8 12.483 26.8 29.88"/><path fill="#ffd7e4" d="m46.05 49.756c0 8.08-6.287 7.15-14.04 7.15s-14.04.932-14.04-7.15 6.287-12.137 14.04-12.137 14.04 4.055 14.04 12.137"/><g fill="#bf7b90"><ellipse cx="25.735" cy="48.04" rx="3.439" ry="6.26"/><ellipse cx="38.27" cy="48.04" rx="3.438" ry="6.26"/><path d="m32 22.616c0 0-2.976-10.04-9.67-11.92 0 0 3-1.745 5.211-.899 0 0 .138-1.832-1.846-3.146 0 0 4.316-.927 6.457 2.144 0 0 .296-3.189-.477-4.794 0 0 7.148 1.688 8.996 7.769.001-.001-7.267 2.17-8.671 10.846"/></g><g fill="#493b30"><ellipse cx="15.628" cy="34.552" rx="3.089" ry="5.6"/><ellipse cx="48.37" cy="34.406" rx="3.09" ry="5.6"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 14.8c-2.4-4.5-18.2-3.1-18.2-3.1s-1.9 16 2.7 18.5c3.5 1.9 17.4-11.8 15.5-15.4" fill="#fc97b2"/><path d="m17.6 17.2c-1.5-2.8-11.3-1.9-11.3-1.9s-1.1 10 1.7 11.5c2.2 1.2 10.8-7.3 9.6-9.6" fill="#ffd7e4"/><path d="M58.7,30.1c4.5-2.4,3.1-18.1,3.1-18.1s-16.1-1.9-18.6,2.7C41.3,18.2,55,32,58.7,30.1z" fill="#fc97b2"/><path d="m56.2 27.1c2.8-1.5 1.9-11.2 1.9-11.2s-10-1.2-11.6 1.7c-1.1 2.2 7.5 10.7 9.7 9.5" fill="#ffd7e4"/><path d="M58.8,39.4C58.8,56.8,46.8,60,32,60S5.2,56.8,5.2,39.4S21.7,9.5,32,9.5S58.8,22,58.8,39.4z" fill="#fc97b2"/><path d="m46 49.8c0 8.1-6.3 7.2-14 7.2s-14 .9-14-7.2 6.3-12.1 14-12.1 14 4 14 12.1" fill="#ffd7e4"/><g fill="#bf7b90"><ellipse cx="25.7" cy="48" rx="3.4" ry="6.3"/><ellipse cx="38.3" cy="48" rx="3.4" ry="6.3"/><path d="m32 22.6c0 0-3-10-9.7-11.9 0 0 3-1.7 5.2-.9 0 0 .1-1.8-1.8-3.1 0 0 4.3-.9 6.5 2.1 0 0 .3-3.2-.5-4.8 0 0 7.1 1.7 9 7.8 0 0-7.3 2.1-8.7 10.8"/></g><g fill="#493b30"><ellipse cx="15.6" cy="34.6" rx="3.1" ry="5.6"/><ellipse cx="48.4" cy="34.4" rx="3.1" ry="5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f438.svg b/build/js/jsxc/lib/emojione/assets/svg/1f438.svg
index a41eb04..a45c14a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f438.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f438.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m60.5 31.48c0 .588-.007 1.16-.021 1.721 0 0-11.314 18.406-28.484 18.406-10.96 0-24.06-1.893-24.06-1.893-2.886-3.745-4.442-9.478-4.442-18.234 0-25.318 14.09-17.532 28.506-17.532s28.504-7.786 28.504 17.532"/><g fill="#3e4347"><path d="m24.434 32.805c.182-.369.393-.708.61-1.039.22-.33.45-.647.69-.955.239-.309.488-.607.745-.898.128-.145.256-.291.39-.43.132-.143.264-.283.401-.42l.408-.412.36.441c.108.132.211.266.313.4.104.131.203.27.304.407.2.274.393.556.577.843.185.288.36.582.527.885.167.305.326.616.46.951-.297-.19-.568-.4-.832-.617-.262-.219-.515-.444-.76-.68-.243-.234-.483-.473-.712-.721-.115-.124-.231-.246-.341-.373-.113-.129-.226-.254-.331-.384l.769.03c-.132.143-.266.281-.4.418-.134.14-.273.275-.412.41-.278.269-.563.527-.859.779-.293.252-.597.494-.913.723-.315.231-.639.452-.994.642"/><path d="m33.778 32.805c.181-.369.392-.708.609-1.039.22-.33.45-.647.69-.955.24-.309.488-.607.745-.898.128-.145.257-.291.39-.432.132-.141.264-.281.401-.418l.408-.412.36.441c.108.132.211.266.313.398.104.133.205.271.304.409.2.274.393.556.577.843.185.288.36.582.529.885.165.305.324.616.458.949-.297-.188-.566-.398-.832-.617-.262-.217-.514-.442-.76-.678-.243-.234-.483-.473-.712-.721-.115-.124-.23-.246-.341-.373-.113-.129-.225-.254-.331-.384l.769.03c-.132.141-.266.281-.4.418-.134.14-.273.275-.412.41-.278.269-.563.527-.859.779-.293.252-.597.494-.913.723-.314.231-.638.452-.993.642"/></g><path fill="#ffdf99" d="m42.05 39.602c-6.719-.844-21.574 1.703-29.05 6.494-1.933 1.238-3.641 2.471-5.067 3.59 4.746 6.192 13.11 6.974 24.09 6.974 17.195 0 27.979-1.917 28.485-23.546-1.717 1.033-3.654 2.039-5.82 2.846-3.569 1.329-7.811 4.248-12.639 3.642"/><path fill="#3e4347" d="m33.446 42.24c9.536 1.012 16.54-3.043 21.261-6.299-3.578 1.338-7.778 2.139-12.638 1.622-10.822-1.147-21.656 3.758-29.13 8.556 6.191-2.75 13.351-4.639 20.506-3.879"/><circle fill="#83bf4f" cx="50" cy="19" r="12"/><circle fill="#3e4347" cx="50" cy="19" r="10"/><circle fill="#ffe655" cx="50" cy="19" r="8"/><ellipse fill="#3e4347" cx="50" cy="19" rx="5.535" ry="1.754"/><circle fill="#83bf4f" cx="14" cy="19" r="12"/><circle fill="#3e4347" cx="14" cy="19" r="10"/><circle fill="#ffe655" cx="14" cy="19" r="8"/><ellipse fill="#3e4347" cx="14" cy="19" rx="5.534" ry="1.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.1 23.6c-11.4-16.8-38.8-16.8-50.2 0-4 5.9-5 12.5-4.9 13.9.3 4 9.3 20.6 30 20.5 20.6-.1 29.6-16.4 30-20.5.1-1.4-.9-8-4.9-13.9" fill="#83bf4f"/><path d="m2 37.5c.3 4 6.6 21.6 30 21.5 23.3-.1 29.6-17.4 30-21.5 0 0-12.1 10-29.9 10-18 0-30.1-10-30.1-10" fill="#ffdf99"/><g fill="#3e4347"><path d="m26.3 32c-1.4 0-4.3 4-4.3 4s2.9-1.3 4.3-1.3c1.4 0 4.3 1.3 4.3 1.3s-2.9-4-4.3-4"/><path d="m37.7 32c-1.4 0-4.3 4-4.3 4s2.9-1.3 4.3-1.3c1.4 0 4.3 1.3 4.3 1.3s-2.9-4-4.3-4"/></g><circle cx="50" cy="17" r="12" fill="#83bf4f"/><circle cx="50" cy="17" r="8" fill="#ffe655"/><path d="m54 17.2c0 2.2-1.8 4-4 4s-4-1.8-4-4c0-2.2 1.8-4 4-4s4 1.8 4 4" fill="#3e4347"/><path d="M26,17c0,6.6-5.4,12-12,12S2,23.6,2,17C2,10.4,7.4,5,14,5S26,10.4,26,17z" fill="#83bf4f"/><circle cx="14" cy="17" r="8" fill="#ffe655"/><path d="m18 17.2c0 2.2-1.8 4-4 4s-4-1.8-4-4c0-2.2 1.8-4 4-4s4 1.8 4 4" fill="#3e4347"/><g fill="#83bf4f"><ellipse cx="14" cy="11.6" rx="9.7" ry="5.4"/><ellipse cx="50" cy="11.6" rx="9.7" ry="5.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f439.svg b/build/js/jsxc/lib/emojione/assets/svg/1f439.svg
index 4b7d73a..4027ed9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f439.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f439.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f29a2e" d="m12.591 7.343c-5.03-.822-9.797 2.227-10.44 6.843-1.883 13.545 14.412 10.5 14.412 10.5.737-4.603 1.055-16.522-3.972-17.343"/><path fill="#af5a31" d="m10.776 12.281c-2.682-.439-5.227 1.188-5.568 3.65-1.01 7.226 7.688 5.604 7.688 5.604.394-2.456.564-8.816-2.12-9.254"/><path fill="#f29a2e" d="m51.41 7.343c5.03-.822 9.795 2.228 10.438 6.843 1.883 13.545-14.41 10.5-14.41 10.5-.737-4.603-1.055-16.522 3.972-17.343"/><path fill="#af5a31" d="m53.23 12.281c2.682-.439 5.225 1.188 5.568 3.65 1 7.226-7.689 5.604-7.689 5.604-.393-2.456-.563-8.816 2.121-9.254"/><path fill="#f29a2e" d="m5.584 42.24c0 8.586 11.828 14.762 26.418 14.762 14.588 0 26.414-6.176 26.414-14.762 0-11.284.758-19.767-6.209-24.777-4.723-3.396-16.916-6.42-20.2-6.42-3.293 0-15.486 3.02-20.21 6.42-6.967 5.01-6.207 13.493-6.207 24.777"/><path fill="#fff" d="m41.927 39.02c-5.212-4.453-5.061-16.482-8.02-20.359-1.332-1.751-2.484-1.751-3.816 0-2.957 3.877-2.807 15.906-8.02 20.359-4.181 3.57-11.672-1.74-12.906 1.189-1.123 2.67 1.362 15.404 22.836 15.404 21.47 0 23.954-12.736 22.83-15.404-1.235-2.93-8.727 2.381-12.906-1.189"/><path fill="#f29a2e" d="m30.824 7c.338 1.206-.654 2.17-.654 2.17-1.66-1.458-4.969-1.964-4.969-1.964 1.273.992.936 2.521.936 2.521-2.293-.575-4.211-.466-4.211-.466 4.709 2.331 3.668 9.349 3.668 9.349 5.586-3.881 12.5-5.744 12.5-5.744-1.588-3.577-7.27-5.866-7.27-5.866"/><path fill="#4c5359" d="m38.455 47.99c-.732.449-1.58.629-2.398.592-.826-.061-1.607-.324-2.236-.822-.627-.482-1.09-1.174-1.225-1.934l-.592-3.367-.6 3.367c-.137.76-.596 1.451-1.227 1.932-.613.5-1.436.762-2.215.822-.863.037-1.672-.143-2.416-.59-.738-.434-1.35-1.139-1.664-2.039.045.961.568 1.896 1.318 2.545.744.645 1.764 1.023 2.723 1.066 1.041.059 2.047-.236 2.922-.832.451-.316.846-.734 1.154-1.217.311.482.703.9 1.156 1.215.861.596 1.906.891 2.9.832 1.01-.043 1.986-.422 2.742-1.066.75-.646 1.273-1.582 1.318-2.543-.31.901-.924 1.606-1.66 2.039"/><g fill="#3e4347"><path d="m47.24 30.23c2.205 0 3.991 1.987 3.991 1.987s.374 5.085-3.991 5.085c-2.207 0-3.993-1.986-3.993-1.986s-.374-5.086 3.993-5.086"/><path d="m16.762 30.23c-2.204 0-3.991 1.987-3.991 1.987s-.374 5.085 3.991 5.085c2.207 0 3.992-1.986 3.992-1.986s.375-5.086-3.992-5.086"/></g><path fill="#f15a61" d="m37.609 40.514c-1.125-.848-4.58-.912-5.607-.912-1.032 0-4.484.064-5.612.912-.799.6-.18 2.094 1.95 3.387 1.346.813 2.63 1.068 3.662 1.068 1.027 0 2.313-.256 3.656-1.068 2.132-1.294 2.751-2.788 1.951-3.387"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 7.3c-5-.8-9.8 2.2-10.4 6.8-1.9 13.6 14.4 10.6 14.4 10.6.7-4.6 1-16.5-4-17.4" fill="#f29a2e"/><path d="m10.8 12.3c-2.7-.4-5.2 1.2-5.6 3.7-1 7.2 7.7 5.6 7.7 5.6.4-2.5.6-8.9-2.1-9.3" fill="#af5a31"/><path d="m51.4 7.3c5-.8 9.8 2.2 10.4 6.8 1.9 13.5-14.4 10.5-14.4 10.5-.7-4.5-1-16.4 4-17.3" fill="#f29a2e"/><path d="m53.2 12.3c2.7-.4 5.2 1.2 5.6 3.7 1 7.2-7.7 5.6-7.7 5.6-.4-2.5-.6-8.9 2.1-9.3" fill="#af5a31"/><g fill="#f29a2e"><path d="m5.6 42.2c0 8.6 11.8 14.8 26.4 14.8 14.6 0 26.4-6.2 26.4-14.8 0-11.3.8-19.8-6.2-24.8-4.7-3.3-16.9-6.4-20.2-6.4-3.3 0-15.5 3-20.2 6.4-7 5.1-6.2 13.6-6.2 24.8"/><path d="m30.8 7c.3 1.2-.7 2.2-.7 2.2-1.7-1.5-5-2-5-2 1.3 1 .9 2.5.9 2.5-2.3-.6-4.2-.5-4.2-.5 4.7 2.3 3.7 9.3 3.7 9.3 5.6-3.9 12.5-5.7 12.5-5.7-1.5-3.5-7.2-5.8-7.2-5.8"/></g><path d="m38.7 32.9c0 0 .4-4.6 4.1-6.1 4.1-1.7 6.9 2.4 7.6 4.7 1.1 3.4-.3 7.2-.7 8-.3.6-3.3 3.3-10.1.7 0 .1-1.7-3.7-.9-7.3" fill="#fff"/><path d="m38.7 32.9c.1-1.6.6-3.3 1.5-4.6.5-.7 1.1-1.2 1.8-1.6.3-.2.7-.4 1.1-.5.4-.1.8-.2 1.2-.3 1.6-.2 3.3.6 4.4 1.7 1.2 1.2 2.1 2.7 2.5 4.4.4 1.7.3 3.5-.1 5.2-.2.8-.5 1.6-.8 2.4l-.1.3v.1l-.1.1c-.1.1-.1.1-.1.2-.2.2-.3.3-.5.4-.4.2-.7.4-1.1.6-1.5.6-3 .6-4.5.4-1.5-.3-2.9-.7-4.2-1.4 1.4.3 2.9.7 4.3.7 1.4 0 2.8-.2 4.1-.8.3-.1.6-.3.8-.5.1-.1.2-.2.3-.3v-.1c0 0 0 0 0 0l.1-.2c.3-.7.5-1.4.6-2.2.3-1.5.4-3 0-4.5-.3-1.4-1.1-2.7-2.1-3.7-1-1-2.2-1.7-3.5-1.6-.3 0-.7.1-1 .1-.3.1-.7.2-1 .3-.6.3-1.2.7-1.7 1.3-.9 1-1.5 2.5-1.9 4.1" fill="#db8823"/><ellipse cx="43.7" cy="34.6" rx="3" ry="4" fill="#4c5359"/><path d="m25.3 32.9c0 0-.4-4.6-4.1-6.1-4.1-1.7-6.9 2.4-7.6 4.7-1.1 3.4.3 7.2.7 8 .3.6 3.3 3.3 10.1.7 0 .1 1.7-3.7.9-7.3" fill="#fff"/><path d="m25.3 32.9c-.4-1.6-1-3.1-2-4.1-.5-.5-1.1-1-1.7-1.3-.3-.1-.6-.3-1-.3-.3-.1-.6-.1-1-.1-1.3 0-2.6.6-3.5 1.6-1 1-1.7 2.3-2.1 3.7-.3 1.4-.3 3 0 4.5.1.7.4 1.5.6 2.2l.1.2c0-.1 0 0 0 0v.1c.1.1.2.2.3.3.3.2.5.4.8.5 1.2.6 2.7.8 4.1.8 1.4 0 2.9-.3 4.3-.7-1.3.7-2.8 1.1-4.2 1.4-1.5.2-3 .2-4.5-.4-.4-.1-.7-.3-1.1-.6-.2-.1-.3-.3-.5-.4 0 0-.1-.1-.1-.2v-.1l-.1-.1-.1-.3c-.3-.8-.6-1.6-.8-2.4-.4-1.7-.5-3.4-.1-5.2.4-1.8 1.3-3.2 2.5-4.4 1.2-1.2 2.8-1.9 4.4-1.7.4.1.8.1 1.2.3.4.1.7.3 1.1.5.7.4 1.3 1 1.8 1.6 1 1.3 1.5 3 1.6 4.6" fill="#db8823"/><ellipse cx="20.3" cy="34.6" rx="3" ry="4" fill="#4c5359"/><path d="m41.9 40c-5.2-4.5-5.1-15.5-8-19.4-1.3-1.8-2.5-1.8-3.8 0-3 3.9-2.8 14.9-8 19.4-4.2 3.6-11.7-2.7-12.9.2-1.2 2.7 1.3 15.4 22.8 15.4 21.5 0 24-12.7 22.8-15.4-1.2-2.9-8.7 3.4-12.9-.2" fill="#fff"/><path d="m38.5 48c-.7.4-1.6.6-2.4.6-.8-.1-1.6-.3-2.2-.8-.6-.5-1.1-1.2-1.2-1.9l-.7-3.4-.6 3.4c-.1.8-.6 1.4-1.2 1.9-.6.5-1.4.8-2.2.8-.9 0-1.7-.1-2.4-.6-.7-.4-1.4-1.1-1.7-2 0 1 .6 1.9 1.3 2.5.7.6 1.8 1 2.7 1.1 1 .1 2-.2 2.9-.8.5-.3.8-.7 1.2-1.2.3.5.7.9 1.2 1.2.9.6 1.9.9 2.9.8 1 0 2-.4 2.7-1.1.8-.6 1.3-1.6 1.3-2.5-.3.9-.9 1.6-1.6 2" fill="#4c5359"/><path d="m37.6 40.5c-1.1-.8-4.6-.9-5.6-.9-1 0-4.5.1-5.6.9-.8.6-.2 2.1 2 3.4 1.3.8 2.6 1.1 3.6 1.1 1 0 2.3-.3 3.7-1.1 2.1-1.3 2.7-2.8 1.9-3.4" fill="#f15a61"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f43a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f43a.svg
index 41d6f61..7b2fd57 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f43a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f43a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#728389" d="m7.906 28.19l18.894-12.995c0 0-10.798-15.11-16.17-12.995-2.618 1.031-4.504 21.896-2.723 25.99"/><path fill="#3e4347" d="m8.729 29.75l7.483-3.609c0 0 4.408-12.207-5.118-20.93-1.938 1.728-4.216 21.733-2.365 24.539"/><path fill="#728389" d="m56.09 28.19l-18.894-12.995c0 0 10.798-15.11 16.17-12.995 2.618 1.031 4.504 21.896 2.723 25.99"/><path fill="#3e4347" d="m55.27 29.75l-7.483-3.609c0 0-4.409-12.207 5.118-20.93 1.938 1.728 4.216 21.733 2.365 24.539"/><path fill="#728389" d="m32 9.725c-13.87 0-30 15.8-30 27.22 0 9.199 25.897 25.06 30 25.06 4.1 0 29.999-15.858 29.999-25.06 0-11.418-16.13-27.22-29.999-27.22"/><path fill="#dae5ef" d="m4.01 36.619c.418 9.17 24.01 21.708 27.991 21.708 3.979 0 27.566-12.536 27.989-21.706-27.537-27.562-7.097 17.847-27.989 17.846-20.892 0-.462-45.41-27.991-17.848"/><path fill="#3e4347" d="m40.454 48.896c-1.697-1.093-6.898-1.177-8.455-1.177-1.551 0-6.76.084-8.453 1.177-1.205.777-.273 2.707 2.941 4.373 2.023 1.05 3.961 1.381 5.512 1.381 1.557 0 3.49-.331 5.518-1.381 3.209-1.666 4.144-3.596 2.937-4.373"/><g fill="#728389"><path d="m11.942 13.946c2.189 1.327 8.246 7.574 3.479 11.227-4.767 3.653-7.437.037-6.763-.611 3.841-3.694 3.284-10.616 3.284-10.616"/><path d="m10.03 16.362c2.276.964 8.771 5.983 4.313 9.875-4.457 3.893-7.385.889-6.766.218 3.534-3.822 2.453-10.09 2.453-10.09"/><path d="m52.06 13.946c-2.189 1.327-8.246 7.574-3.479 11.227 4.767 3.653 7.438.037 6.764-.611-3.842-3.694-3.285-10.616-3.285-10.616"/><path d="m53.97 16.362c-2.276.964-8.771 5.983-4.313 9.875 4.457 3.893 7.385.889 6.766.218-3.534-3.822-2.453-10.09-2.453-10.09"/></g><g fill="#dae5ef"><path d="m22.19 19.378c2.073 3.571 6.389 17.495-1.742 20-8.132 2.506-9.557-4.988-8.335-5.549 6.966-3.198 10.08-14.451 10.08-14.451"/><path d="m18.402 21.878c2.387 3.058 7.938 15.351.074 18.441-7.866 3.091-9.962-3.615-8.797-4.247 6.644-3.609 8.723-14.194 8.723-14.194"/></g><path fill="#42ade2" d="m23.16 33.07c0 3.303-2.676 5.98-5.975 5.98-3.301 0-5.974-2.678-5.974-5.98 0-3.302 2.673-3.979 5.974-3.979l5.975 3.979"/><path fill="#3e4347" d="m21.03 33.07c0 2.124-1.721 3.845-3.84 3.845-2.12 0-3.84-1.721-3.84-3.845 0-2.121 1.72-2.844 3.84-2.844 2.12.001 3.84.723 3.84 2.844"/><g fill="#dae5ef"><path d="m24.14 32.657c-.238-.472-.571-.856-.904-1.229-.688-.717-1.46-1.276-2.228-1.786-1.55-1-3.123-1.793-4.632-2.604-1.506-.812-2.959-1.618-4.267-2.623-1.315-1-2.461-2.217-3.436-3.907-.075.89.052 1.788.315 2.647-1.328-1.189-2.456-2.635-3.381-4.485-.094 1.298.155 2.609.632 3.833-1.141-1.188-2.121-2.591-2.921-4.284-.119 2.506.879 5.04 2.41 6.979 1.538 1.956 3.509 3.393 5.524 4.515 2.025 1.128 4.129 1.952 6.173 2.745 1.018.404 2.037.773 2.979 1.266.939.483 1.844 1.041 2.375 2.14l1.361-3.207"/><path d="m41.811 19.378c-2.073 3.571-6.389 17.495 1.742 20 8.132 2.506 9.557-4.988 8.335-5.549-6.966-3.198-10.08-14.451-10.08-14.451"/><path d="m45.598 21.878c-2.387 3.058-7.938 15.351-.074 18.441 7.866 3.091 9.962-3.615 8.797-4.247-6.644-3.609-8.723-14.194-8.723-14.194"/></g><path fill="#42ade2" d="m40.835 33.07c0 3.303 2.676 5.98 5.975 5.98 3.301 0 5.974-2.678 5.974-5.98 0-3.302-2.673-3.979-5.974-3.979l-5.975 3.979"/><path fill="#3e4347" d="m42.97 33.07c0 2.124 1.721 3.845 3.84 3.845 2.12 0 3.84-1.721 3.84-3.845 0-2.121-1.72-2.844-3.84-2.844-2.12.001-3.84.723-3.84 2.844"/><path fill="#dae5ef" d="m39.859 32.657c.238-.472.571-.856.904-1.229.688-.717 1.46-1.276 2.228-1.786 1.55-1 3.123-1.793 4.632-2.604 1.506-.812 2.959-1.618 4.267-2.623 1.315-1 2.461-2.217 3.436-3.907.075.89-.052 1.788-.315 2.647 1.328-1.189 2.456-2.635 3.381-4.485.094 1.298-.155 2.609-.632 3.833 1.141-1.188 2.121-2.591 2.921-4.284.119 2.506-.879 5.04-2.41 6.979-1.538 1.956-3.509 3.393-5.524 4.515-2.025 1.128-4.129 1.952-6.173 2.745-1.018.404-2.037.773-2.979 1.266-.939.483-1.844 1.041-2.375 2.14l-1.361-3.207"/><path fill="#728389" d="m38.591 56.924c0 1.174-4.057 2.301-6.591 2.301s-6.589-1.127-6.589-2.301 6.59-.671 6.59-.671 6.59-.503 6.59.671"/><g fill="#3e4347"><path d="m32.999 53.48l-.032.438c-.021.177-.038.36-.074.524-.056.333-.161.676-.298 1.01-.278.667-.789 1.313-1.441 1.689-1.329.762-2.699.631-3.874.42-2.379-.508-4.436-1.613-6.365-2.849-1.921-1.255-3.692-2.706-5.299-4.314-1.603-1.61-3.049-3.381-4.192-5.327 1.284 1.855 2.842 3.496 4.533 4.961 1.693 1.463 3.531 2.752 5.473 3.823 1.935 1.055 4.01 1.948 6.091 2.226 1.017.127 2.071.045 2.689-.413.614-.435.829-1.218.79-2.245l1.999.058"/><path d="m33 53.42c-.039 1.027.176 1.811.79 2.244.618.459 1.673.541 2.689.414 2.077-.277 4.156-1.172 6.091-2.227 1.94-1.071 3.779-2.36 5.473-3.822 1.69-1.465 3.249-3.105 4.533-4.961-1.145 1.946-2.59 3.717-4.192 5.326-1.606 1.609-3.378 3.061-5.3 4.314-1.929 1.236-3.985 2.342-6.364 2.85-1.175.211-2.545.342-3.874-.42-.652-.377-1.163-1.022-1.441-1.689-.137-.333-.242-.676-.298-1.01-.036-.164-.053-.348-.074-.524l-.032-.438 1.999-.058"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m7.9 28.2l18.9-13c0 0-10.8-15.1-16.2-13-2.6 1-4.5 21.9-2.7 26" fill="#728389"/><path d="m8.7 29.8l7.5-3.6c0 0 4.4-12.2-5.1-20.9-1.9 1.6-4.2 21.6-2.4 24.5" fill="#3e4347"/><path d="m56.1 28.2l-18.9-13c0 0 10.8-15.1 16.2-13 2.6 1 4.5 21.9 2.7 26" fill="#728389"/><path d="m55.3 29.8l-7.5-3.6c0 0-4.4-12.2 5.1-20.9 1.9 1.6 4.2 21.6 2.4 24.5" fill="#3e4347"/><path d="M32,9.7C18.1,9.7,2,25.5,2,36.9C2,46.1,27.9,62,32,62c4.1,0,30-15.9,30-25.1C62,25.5,45.9,9.7,32,9.7z" fill="#728389"/><path d="m4 36.6c.4 9.2 24 21.7 28 21.7 4 0 27.6-12.5 28-21.7-27.5-27.5-7.1 17.9-28 17.9-20.9 0-.5-45.4-28-17.9" fill="#dae5ef"/><path d="m40.5 48.9c-1.7-1.1-6.9-1.2-8.5-1.2-1.6 0-6.8.1-8.5 1.2-1.2.8-.3 2.7 2.9 4.4 2 1 4 1.4 5.5 1.4 1.6 0 3.5-.3 5.5-1.4 3.3-1.7 4.3-3.6 3.1-4.4" fill="#3e4347"/><g fill="#728389"><path d="m11.9 13.9c2.2 1.3 8.2 7.6 3.5 11.2s-7.4 0-6.8-.6c3.9-3.6 3.3-10.6 3.3-10.6"/><path d="m10 16.4c2.3 1 8.8 6 4.3 9.9-4.5 3.9-7.4.9-6.8.2 3.6-3.9 2.5-10.1 2.5-10.1"/><path d="m52.1 13.9c-2.2 1.3-8.2 7.6-3.5 11.2s7.4 0 6.8-.6c-3.9-3.6-3.3-10.6-3.3-10.6"/><path d="m54 16.4c-2.3 1-8.8 6-4.3 9.9 4.5 3.9 7.4.9 6.8.2-3.6-3.9-2.5-10.1-2.5-10.1"/></g><g fill="#dae5ef"><path d="m22.2 19.4c2.1 3.6 6.4 17.5-1.7 20-8.1 2.5-9.6-5-8.3-5.5 6.9-3.3 10-14.5 10-14.5"/><path d="m18.4 21.9c2.4 3.1 7.9 15.4.1 18.4-7.9 3.1-10-3.6-8.8-4.2 6.6-3.6 8.7-14.2 8.7-14.2"/></g><path d="m23.2 33.1c0 3.3-2.7 6-6 6-3.3 0-6-2.7-6-6s2.7-4 6-4l6 4" fill="#42ade2"/><path d="m21 33.1c0 2.1-1.7 3.8-3.8 3.8-2.1 0-3.8-1.7-3.8-3.8 0-2.1 1.7-2.8 3.8-2.8 2.1-.1 3.8.6 3.8 2.8" fill="#3e4347"/><g fill="#dae5ef"><path d="m24.1 32.7c-.2-.5-.6-.9-.9-1.2-.7-.7-1.5-1.3-2.2-1.8-1.5-1-3.1-1.8-4.6-2.6-1.5-.8-3-1.6-4.3-2.6-1.3-1-2.5-2.2-3.4-3.9-.1.9.1 1.8.3 2.6-1.3-1.2-2.5-2.6-3.4-4.5-.1 1.3.2 2.6.6 3.8-1.1-1.2-2.1-2.6-2.9-4.3-.1 2.5.9 5 2.4 7 1.5 2 3.5 3.4 5.5 4.5 2 1.1 4.1 2 6.2 2.7 1 .4 2 .8 3 1.3.9.5 1.8 1 2.4 2.1l1.3-3.1"/><path d="m41.8 19.4c-2.1 3.6-6.4 17.5 1.7 20 8.1 2.5 9.6-5 8.3-5.5-6.9-3.3-10-14.5-10-14.5"/><path d="m45.6 21.9c-2.4 3.1-7.9 15.4-.1 18.4 7.9 3.1 10-3.6 8.8-4.2-6.6-3.6-8.7-14.2-8.7-14.2"/></g><path d="m40.8 33.1c0 3.3 2.7 6 6 6 3.3 0 6-2.7 6-6s-2.7-4-6-4l-6 4" fill="#42ade2"/><path d="m43 33.1c0 2.1 1.7 3.8 3.8 3.8 2.1 0 3.8-1.7 3.8-3.8 0-2.1-1.7-2.8-3.8-2.8-2.1-.1-3.8.6-3.8 2.8" fill="#3e4347"/><path d="m39.9 32.7c.2-.5.6-.9.9-1.2.7-.7 1.5-1.3 2.2-1.8 1.5-1 3.1-1.8 4.6-2.6 1.5-.8 3-1.6 4.3-2.6 1.3-1 2.5-2.2 3.4-3.9.1.9-.1 1.8-.3 2.6 1.3-1.2 2.5-2.6 3.4-4.5.1 1.3-.2 2.6-.6 3.8 1.1-1.2 2.1-2.6 2.9-4.3.1 2.5-.9 5-2.4 7-1.5 2-3.5 3.4-5.5 4.5-2 1.1-4.1 2-6.2 2.7-1 .4-2 .8-3 1.3-.9.5-1.8 1-2.4 2.1l-1.3-3.1" fill="#dae5ef"/><path d="m38.6 56.9c0 1.2-4.1 2.3-6.6 2.3s-6.6-1.1-6.6-2.3 6.6-.7 6.6-.7 6.6-.4 6.6.7" fill="#728389"/><g fill="#3e4347"><path d="m33 53.5v.4c0 .2 0 .4-.1.5-.1.3-.2.7-.3 1-.3.7-.8 1.3-1.4 1.7-1.3.8-2.7.6-3.9.4-2.4-.5-4.4-1.6-6.4-2.8-1.9-1.3-3.7-2.7-5.3-4.3-1.6-1.6-3-3.4-4.2-5.3 1.3 1.9 2.8 3.5 4.5 5 1.7 1.5 3.5 2.8 5.5 3.8 1.9 1.1 4 1.9 6.1 2.2 1 .1 2.1 0 2.7-.4.6-.4.8-1.2.8-2.2h2"/><path d="m33 53.4c0 1 .2 1.8.8 2.2.6.5 1.7.5 2.7.4 2.1-.3 4.2-1.2 6.1-2.2 1.9-1.1 3.8-2.4 5.5-3.8 1.7-1.5 3.2-3.1 4.5-5-1.1 1.9-2.6 3.7-4.2 5.3-1.6 1.6-3.4 3.1-5.3 4.3-1.9 1.2-4 2.3-6.4 2.8-1.2.2-2.5.3-3.9-.4-.7-.4-1.2-1-1.4-1.7-.1-.3-.2-.7-.3-1 0-.2-.1-.3-.1-.5v-.4h2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f43b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f43b.svg
index 9f8c13d..681e20a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f43b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f43b.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m60.56 10.42c0 4.65-3.877 8.42-8.654 8.42-4.781 0-8.658-3.77-8.658-8.42s3.876-8.42 8.657-8.42c4.778 0 8.655 3.77 8.655 8.42"/><path fill="#e0ac7e" d="m57.11 10.42c0 2.809-2.33 5.084-5.203 5.084-2.877 0-5.205-2.275-5.205-5.084s2.328-5.084 5.205-5.084c2.873 0 5.203 2.275 5.203 5.084"/><ellipse fill="#947151" cx="12.1" cy="10.42" rx="8.654" ry="8.42"/><ellipse fill="#e0ac7e" cx="12.1" cy="10.42" rx="5.204" ry="5.084"/><path fill="#947151" d="M62,37.107C62,55.15,41.779,62,32,62S2,55.15,2,37.107c0-22.973,10.99-28.26,30-28.26S62,14.135,62,37.107z
- "/><path fill="#e0ac7e" d="m18.873 45.576c0-9.293 8.881-12.822 13.178-12.822 4.295 0 13.176 3.529 13.176 12.822 0 11.834-4.826 14.559-13.176 14.559s-13.178-2.725-13.178-14.559"/><path fill="#947151" d="m32.693 2.01c.287 1.564-.555 2.814-.555 2.814-1.412-1.891-4.225-2.547-4.225-2.547 1.082 1.287.795 3.271.795 3.271-1.949-.746-3.58-.605-3.58-.605 4 3.02 3.117 12.13 3.117 12.13 4.748-5.03 10.627-7.449 10.627-7.449-1.349-4.641-6.179-7.609-6.179-7.609"/><g fill="#3e4347"><path d="m36.37 57.04c.082 0 .127-.186.127-.293 0-.744-1.992-1.352-4.453-1.352-2.459 0-4.453.605-4.453 1.352 0 .102.035.293.105.293h8.674"/><path d="m22.758 45.852c0-3.834 4.141-4.574 9.242-4.574 5.105 0 9.242.74 9.242 4.574 0 3.053-7.355 5.76-9.242 5.76s-9.242-2.708-9.242-5.76"/><path d="m59.13 30.674l-1.686.297-1.686.275c-1.123.184-2.252.338-3.377.49-2.256.293-4.516.525-6.779.713-4.529.367-9.07.549-13.613.545s-9.09-.186-13.619-.58c-4.533-.408-9.05-1-13.516-2.029l-.016-.004c-.055-.012-.09-.066-.074-.121.01-.047.059-.08.105-.076 2.256.145 4.516.262 6.773.359 2.26.104 4.52.191 6.779.256 4.521.131 9.04.186 13.566.176 4.521.01 9.05-.041 13.568-.145 4.523-.096 9.04-.289 13.57-.359.057 0 .104.045.105.1 0 .049-.037.092-.084.1l-.016.003"/><path d="m19.566 32.473c0 1.621-1.629 2.938-3.639 2.938s-3.641-1.316-3.641-2.938 1.631-1.168 3.641-1.168 3.639-.453 3.639 1.168"/><path d="m51.713 32.473c0 1.621-1.631 2.938-3.639 2.938-2.01 0-3.641-1.316-3.641-2.938s1.629-1.168 3.641-1.168c2.01 0 3.639-.453 3.639 1.168"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.6 10.4c0 4.6-3.9 8.4-8.7 8.4-4.8 0-8.7-3.8-8.7-8.4s3.9-8.4 8.7-8.4c4.8 0 8.7 3.8 8.7 8.4" fill="#947151"/><path d="m57.1 10.4c0 2.8-2.3 5.1-5.2 5.1-2.9 0-5.2-2.3-5.2-5.1s2.3-5.1 5.2-5.1c2.9 0 5.2 2.3 5.2 5.1" fill="#e0ac7e"/><ellipse cx="12.1" cy="10.4" rx="8.7" ry="8.4" fill="#947151"/><ellipse cx="12.1" cy="10.4" rx="5.2" ry="5.1" fill="#e0ac7e"/><path d="M62,37.1C62,55.2,41.8,62,32,62S2,55.2,2,37.1c0-23,11-28.3,30-28.3S62,14.1,62,37.1z" fill="#947151"/><path d="m18.9 45.6c0-9.3 8.9-12.8 13.2-12.8 4.3 0 13.2 3.5 13.2 12.8 0 11.8-4.8 14.6-13.2 14.6s-13.2-2.8-13.2-14.6" fill="#e0ac7e"/><path d="m32.7 2c.3 1.6-.6 2.8-.6 2.8-1.4-1.9-4.2-2.5-4.2-2.5 1.1 1.3.8 3.3.8 3.3-1.9-.7-3.6-.6-3.6-.6 4 3 3.1 12.1 3.1 12.1 4.7-5 10.6-7.4 10.6-7.4-1.3-4.7-6.1-7.7-6.1-7.7" fill="#947151"/><g fill="#3e4347"><path d="m36.4 57c.1 0 .1-.2.1-.3 0-.7-2-1.4-4.5-1.4-2.5 0-4.5.6-4.5 1.4 0 .1 0 .3.1.3h8.8"/><path d="m22.8 45.9c0-3.8 4.1-4.6 9.2-4.6 5.1 0 9.2.7 9.2 4.6 0 3.1-7.4 5.8-9.2 5.8s-9.2-2.8-9.2-5.8"/><path d="m59.1 30.7l-1.7.3-1.7.3c-1.1.2-2.3.3-3.4.5-2.3.3-4.5.5-6.8.7-4.4.3-9 .5-13.5.5s-9.1-.2-13.6-.6c-4.5-.4-9.1-1-13.5-2-.1 0-.1-.1-.1-.1 0 0 .1-.1.1-.1 2.3.1 4.5.3 6.8.4 2.3.1 4.5.2 6.8.3 4.5.1 9 .2 13.6.2 4.5 0 9 0 13.6-.1 4.5-.1 9-.3 13.6-.4.1 0 .1 0 .1.1-.2-.1-.2 0-.3 0"/><path d="m19.6 32.5c0 1.6-1.6 2.9-3.6 2.9s-3.6-1.3-3.6-2.9 1.6-1.2 3.6-1.2 3.6-.4 3.6 1.2"/><path d="m51.7 32.5c0 1.6-1.6 2.9-3.6 2.9-2 0-3.6-1.3-3.6-2.9s1.6-1.2 3.6-1.2c2 0 3.6-.4 3.6 1.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f43c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f43c.svg
index 1e1603e..247aacc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f43c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f43c.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m62 12.42c0 4.649-3.877 8.42-8.654 8.42-4.781 0-8.656-3.771-8.656-8.42 0-4.65 3.875-8.42 8.656-8.42 4.777 0 8.654 3.77 8.654 8.42"/><ellipse fill="#555e63" cx="53.35" cy="12.42" rx="5.204" ry="5.084"/><ellipse fill="#3e4347" cx="10.654" cy="12.42" rx="8.654" ry="8.42"/><ellipse fill="#555e63" cx="10.652" cy="12.42" rx="5.205" ry="5.084"/><path fill="#e4eef7" d="M2,31.738C2,13.696,22.223,6.848,32,6.848c9.779,0,30,6.85,30,24.892C62,54.713,51.01,60,32,60
- S2,54.713,2,31.738z"/><path fill="#fff" d="m18.873 48.656c0-6.691 8.881-9.23 13.177-9.23s13.177 2.539 13.177 9.23c0 8.516-4.826 10.477-13.177 10.477-8.35 0-13.177-1.961-13.177-10.477"/><path fill="none" stroke="#3e4347" stroke-width="2" stroke-miterlimit="10" d="m32.05 48.572v4.948"/><g fill="#3e4347"><path d="m32.05 55.23c-4.188 0-8-1.166-8-2.443 0-.143.06-.264.175-.361.148-.125.377-.195.627-.195.295 0 .582.092 1.055.246 1.045.338 2.986.967 6.146.967 3.157 0 5.1-.629 6.145-.967.475-.154.761-.246 1.055-.246.398 0 .8.191.8.559-.003 1.274-3.817 2.44-8 2.44"/><path d="m23.999 48.06c0-2.488 3.585-2.969 8-2.969 4.418 0 7.999.479 7.999 2.969 0 1.982-6.367 2.74-7.999 2.74-1.634 0-8-.758-8-2.74"/><ellipse transform="matrix(-.7072.7071-.7071-.7072 104.43 25.897)" cx="46.853" cy="34.574" rx="9" ry="10.635"/></g><circle fill="#fff" cx="45.695" cy="33.418" r="5"/><circle fill="#42ade2" cx="45.695" cy="33.418" r="4"/><g fill="#3e4347"><circle cx="45.695" cy="33.418" r="2.571"/><ellipse transform="matrix(-.7071-.7071.7071-.7071 4.826 71.15)" cx="17.15" cy="34.574" rx="9" ry="10.635"/></g><circle fill="#fff" cx="18.305" cy="33.418" r="5"/><circle fill="#42ade2" cx="18.305" cy="33.418" r="4"/><circle fill="#3e4347" cx="18.305" cy="33.418" r="2.571"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 14c0 6.6-5.4 12-12 12-6.6 0-12-5.4-12-12s5.4-12 12-12c6.6 0 12 5.4 12 12" fill="#3e4347"/><ellipse cx="50" cy="14" rx="7.2" ry="7.2" fill="#555e63"/><path d="m26 14c0 6.6-5.4 12-12 12-6.6 0-12-5.4-12-12s5.4-12 12-12c6.6 0 12 5.4 12 12" fill="#3e4347"/><ellipse cx="14" cy="14" rx="7.2" ry="7.2" fill="#555e63"/><path d="M31.9,8C18.7,8,4,17.9,4,36.4c0,7.7,2.5,9,5.3,14.3c7.8,15.1,37.4,15.1,45.2,0c2.8-5.3,5.5-6.6,5.5-14.3
+ C60,17.9,45,8,31.9,8z" fill="#d1dbe3"/><path d="m19 50.2c0-6.8 8.8-9.4 13-9.4 4.2 0 13 2.6 13 9.4 0 8.6-4.8 10.6-13 10.6-8.3 0-13-2-13-10.6" fill="#e4eef7"/><g fill="#3e4347"><path d="m31 50.1h2v5h-2z"/><path d="m31.9 57c-4.1 0-7.9-1.3-7.9-2.7 0-.2.1-.3.2-.4.1-.1.4-.2.6-.2.3 0 .6.1 1 .3 1 .4 2.9 1.1 6.1 1.1 3.1 0 5-.7 6.1-1.1.5-.2.8-.3 1-.3.4 0 .8.2.8.6 0 1.4-3.7 2.7-7.9 2.7"/><path d="m24 49.6c0-2.5 3.5-3 7.9-3 4.4 0 7.9.5 7.9 3 0 2-6.3 2.8-7.9 2.8-1.6 0-7.9-.8-7.9-2.8"/><path d="m38.2 27.9c3.6-3.6 9.9-3 14.1 1.2 4.2 4.2 4.7 10.5 1.2 14.1-7.2 7.2-22.5-8-15.3-15.3"/></g><circle cx="44.7" cy="34.4" r="5" fill="#42ade2"/><g fill="#3e4347"><circle cx="44.7" cy="34.4" r="2.5"/><path d="m11.7 29.1c4.2-4.2 10.5-4.7 14.1-1.2 7.2 7.2-8 22.5-15.3 15.3-3.6-3.6-3-9.9 1.2-14.1"/></g><circle cx="19.3" cy="34.4" r="5" fill="#42ade2"/><circle cx="19.3" cy="34.4" r="2.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f43d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f43d.svg
index 671b670..6014a8b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f43d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f43d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fc97b2" d="m62 37.29c0 17.264-13.431 15.271-30 15.271-16.57 0-30 1.992-30-15.271 0-17.264 13.43-25.928 30-25.928 16.569 0 30 8.664 30 25.928"/><path fill="#a5627a" d="m25.945 33.62c0 7.386-3.285 13.37-7.342 13.37-4.061 0-7.346-5.984-7.346-13.37 0-7.384 3.285-13.367 7.346-13.367 4.057 0 7.342 5.983 7.342 13.367"/><ellipse fill="#bf7b90" cx="19.878" cy="33.62" rx="6.087" ry="12.79"/><path fill="#a5627a" d="m52.723 33.62c0 7.386-3.285 13.37-7.342 13.37-4.061 0-7.346-5.984-7.346-13.37 0-7.384 3.285-13.367 7.346-13.367 4.057 0 7.342 5.983 7.342 13.367"/><ellipse fill="#bf7b90" cx="46.655" cy="33.62" rx="6.087" ry="12.79"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 37.3c0 17.3-13.4 15.3-30 15.3-16.6 0-30 2-30-15.3 0-17.3 13.4-25.9 30-25.9 16.6 0 30 8.6 30 25.9" fill="#fc97b2"/><path d="m25.9 33.6c0 7.4-3.3 13.4-7.3 13.4-4.1 0-7.3-6-7.3-13.4 0-7.4 3.3-13.4 7.3-13.4 4.1.1 7.3 6 7.3 13.4" fill="#a5627a"/><ellipse cx="19.9" cy="33.6" rx="6.1" ry="12.8" fill="#bf7b90"/><path d="m52.7 33.6c0 7.4-3.3 13.4-7.3 13.4-4.1 0-7.3-6-7.3-13.4 0-7.4 3.3-13.4 7.3-13.4 4 .1 7.3 6 7.3 13.4" fill="#a5627a"/><ellipse cx="46.7" cy="33.6" rx="6.1" ry="12.8" fill="#bf7b90"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f43e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f43e.svg
index dd0fcb7..c6b2b83 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f43e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f43e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m18.14 22.07c-5.644 1.513-9.09 6.96-8.091 10.681s4.765-.518 10.409-2.03c5.644-1.513 11.03.274 10.03-3.446s-6.703-6.717-12.347-5.205"/><path d="m13.767 20.336c1.701-.618 1.918-4.311 1.012-6.801-.906-2.488-3.02-4.01-4.72-3.386s-2.345 3.139-1.438 5.628 3.444 5.178 5.146 4.559"/><path d="m20.706 18.414c1.803-.158 2.968-3.669 2.737-6.309-.231-2.639-1.88-4.649-3.683-4.492-1.803.158-3.077 2.426-2.847 5.064.233 2.639 1.989 5.894 3.793 5.737"/><path d="m28.678 10.69c-1.81 0-3.276 2.147-3.276 4.796 0 2.649 1.467 6.04 3.276 6.04s3.277-3.396 3.277-6.04c0-2.648-1.467-4.796-3.277-4.796"/><path d="m3.317 17.486c-1.567.904-1.765 3.498-.439 5.792 1.324 2.294 4.293 4.501 5.859 3.597 1.568-.905 1.141-4.58-.184-6.874s-3.668-3.42-5.236-2.515"/><path d="m45.864 44.23c-5.645-1.513-11.351 1.483-12.348 5.204s4.386 1.934 10.03 3.446c5.645 1.513 9.412 5.751 10.409 2.03s-2.446-9.168-8.09-10.68"/><path d="m50.23 42.493c1.7.618 4.24-2.07 5.146-4.56s.262-5.01-1.438-5.628c-1.701-.618-3.813.897-4.72 3.387s-.689 6.182 1.012 6.801"/><path d="m43.29 40.57c1.804.157 3.561-3.098 3.792-5.736.23-2.639-1.044-4.906-2.847-5.064-1.803-.157-3.451 1.854-3.683 4.493-.23 2.638.935 6.149 2.738 6.307"/><path d="m35.32 43.688c1.81 0 3.276-3.395 3.276-6.05 0-2.648-1.467-4.795-3.276-4.795-1.811 0-3.277 2.146-3.277 4.796 0 2.648 1.468 6.04 3.277 6.04"/><path d="m60.683 39.643c-1.567-.905-3.912.221-5.236 2.516-1.324 2.293-1.752 5.968-.185 6.873 1.567.904 4.536-1.303 5.86-3.597s1.128-4.888-.439-5.792"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m18.1 22.1c-5.6 1.5-9.1 6.9-8.1 10.7s4.8-.5 10.4-2c5.6-1.5 11 .3 10-3.4s-6.6-6.8-12.3-5.3"/><path d="m13.8 20.3c1.7-.6 1.9-4.3 1-6.8-.9-2.5-3-4-4.7-3.4s-2.3 3.1-1.4 5.6 3.4 5.3 5.1 4.6"/><path d="m20.7 18.4c1.8-.2 3-3.7 2.7-6.3-.2-2.6-1.9-4.6-3.7-4.5-1.8.2-3.1 2.4-2.8 5.1.2 2.6 2 5.9 3.8 5.7"/><path d="m28.7 10.7c-1.8 0-3.3 2.1-3.3 4.8s1.5 6 3.3 6 3.3-3.4 3.3-6c0-2.7-1.5-4.8-3.3-4.8"/><path d="m3.3 17.5c-1.6.9-1.8 3.5-.4 5.8 1.3 2.3 4.3 4.5 5.9 3.6 1.6-.9 1.1-4.6-.2-6.9s-3.7-3.4-5.3-2.5"/><path d="m45.9 44.2c-5.6-1.5-11.4 1.5-12.3 5.2s4.4 1.9 10 3.4c5.6 1.5 9.4 5.8 10.4 2s-2.5-9.1-8.1-10.6"/><path d="m50.2 42.5c1.7.6 4.2-2.1 5.1-4.6s.3-5-1.4-5.6c-1.7-.6-3.8.9-4.7 3.4s-.7 6.2 1 6.8"/><path d="m43.3 40.6c1.8.2 3.6-3.1 3.8-5.7.2-2.6-1-4.9-2.8-5.1-1.8-.2-3.5 1.9-3.7 4.5-.3 2.6.9 6.1 2.7 6.3"/><path d="m35.3 43.7c1.8 0 3.3-3.4 3.3-6 0-2.6-1.5-4.8-3.3-4.8-1.8 0-3.3 2.1-3.3 4.8 0 2.6 1.5 6 3.3 6"/><path d="m60.7 39.6c-1.6-.9-3.9.2-5.2 2.5-1.3 2.3-1.8 6-.2 6.9 1.6.9 4.5-1.3 5.9-3.6s1-4.9-.5-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f43f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f43f.svg
index 16827a6..243ee89 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f43f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f43f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#947151" d="m38.838 48.48c3.955 3.389 9.188 3.791 15.283-1.481 5.188-4.486 8.346-9.959 7.822-17.384-.766-10.876-13.277-9.01-12.83.518.592 12.616-11.424 17.362-10.275 18.347"/><path d="m52.807 32.594c-.249-5.307 3.01-8.531 6.528-9.02-3.86-3.317-10.551-.464-10.222 6.551.592 12.617-11.424 17.363-10.275 18.347 1.447 1.241 3.068 2.075 4.838 2.384 3.64-3.02 9.582-8.643 9.131-18.262"/><path fill="#ffe8bb" d="m51.22 31.514c-.256-5.458 3.363-8.616 7-8.696-3.85-2.338-9.565.97-9.267 7.345.591 12.617-11.26 17.326-10.111 18.309.741.635 1.527 1.166 2.355 1.573 3.1-2.541 10.512-8.07 10.02-18.531"/><g fill="#5e4433"><path d="m23.883 34.451c.065 2.299-5.401 9.02-13.276-1.329 0 0-7.418.54-8.445-1.626-1.432-3.02 7.08-4.776 9.283-3.404 5.225 3.248 12.172-2.993 12.438 6.359"/><path d="m40.541 49.741c0 1.518-4.854 2.743-10.842 2.743 0 0-10.84.519-10.84-.997 0-1.513 4.854-4.489 10.84-4.489 5.989 0 10.842 1.231 10.842 2.743"/></g><g fill="#947151"><path d="m47.5 35.09c0 9.929-7.365 17.978-16.453 17.978-9.09 0-4.316-14.86-15.732-23.25-7.54-5.542-2.134-17.563 15.732-12.703 8.818 2.398 16.453 8.05 16.453 17.978"/><path d="m42.2 53.17c0 1.518-4.854 2.744-10.843 2.744 0 0-10.84.52-10.84-.998 0-1.513 4.855-4.488 10.84-4.488 5.99 0 10.843-2.688 10.843 2.742"/><path d="m41.66 50.826c0 0 .148 2.281-5.396 2.281-5.548 0-10.04-4.966-10.04-11.1s4.495-11.1 10.04-11.1c14.357.001 9.133 14.395 5.396 19.915"/></g><path fill="#ffe8bb" d="m31.47 39.855c0-3.674 1.621-6.922 4.11-8.943-5.227.391-9.932 5.223-9.869 11.1.056 5.346 3.441 8.03 2.343 8.42-8.787 3.138 1.209.756 8.21 2.645 2.157.581-4.794-7.091-4.794-13.218"/><path d="m31.05 17.12c-7.83-2.13-13.266-1.017-16.268 1.371 1.862.217 4.12-.032 6.342.173 13.341 1.228 28.613 14.573 20.535 32.16 3.929-3.967 5.844-9.271 5.844-15.731 0-9.93-7.635-15.58-16.453-17.978"/><path fill="#ffe8bb" d="m24.67 18.05c10.57 2.875 20.6 9.626 20.6 21.53 0 2.744-1.564 8.74-3.609 11.25 3.865-2.77 6.109-9.438 6.109-15.66 0-9.929-7.523-15.871-16.341-18.27-5.612-1.526-10.37-1.167-13.508-.086 2.057.179 4.3.57 6.749 1.236"/><path fill="#5e4433" d="m19.895 13.671c.488 5.752-.783 5.747-2.336 5.904-1.551.156-2.802.417-3.289-5.334-.261-3.104 2.336-5.904 2.336-5.904s3.02 2.231 3.289 5.334"/><g fill="#947151"><path d="m25.371 20.377c0 5.923-4.393 10.724-9.814 10.724-5.421 0-9.67-2.923-9.814-4.551-.519-5.896 5.629-13.3 11.05-13.3s8.578 1.205 8.578 7.127"/><path d="m22.379 13.979c-.65 5.733-1.892 5.429-3.438 5.221-1.547-.209-2.819-.249-2.168-5.98.352-3.092 3.438-5.22 3.438-5.22s2.518 2.885 2.168 5.979"/></g><path fill="#f4a19a" d="m21.439 15.279c-.484 4.279-1.412 4.053-2.566 3.897-1.155-.156-2.103-.184-1.616-4.463.26-2.308 2.563-3.895 2.563-3.895s1.882 2.154 1.619 4.461"/><path fill="#ffe8bb" d="m15.975 21.385c0 0-1.488 1.903-3.325 1.903-1.836 0-2.601-1.903-2.601-1.903s.765-3.484 2.601-3.484c1.837 0 3.325 3.484 3.325 3.484"/><path d="m14.616 21.243c0 0-.911 1.165-2.038 1.165-1.125 0-1.595-1.165-1.595-1.165s.47-2.136 1.595-2.136c1.127-.001 2.038 2.136 2.038 2.136"/><g fill="#ffe8bb"><ellipse cx="14.16" cy="29.32" rx="4.79" ry="5.235"/><path d="m15.975 24.951l.8-.623-.607-.542h.958l-.528-.498 1.965-.881-1.066-.409c0 0 1.294-3.99 3.691-.997 0 0 2.702 1.081 4.527.457 1.826-.623-1.295 1.83-2.436 1.83-1.142-.001 2.091 0 2.091 0l-2.775 1.662h1.84l-2.971 2.286.946.814h-2.136l.422 1.463-2.211-.572-2.51-3.99"/></g><path fill="#947151" d="m25.71 36.446c.064 2.298-5.402 9.02-13.277-1.329 0 0-7.417.539-8.445-1.627-1.433-3.02 7.08-4.775 9.282-3.403 5.226 3.247 12.173-2.993 12.44 6.359"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.7 56.9c3 .5 6.6-.5 10.4-3.9 5.2-4.5 8.3-10 7.8-17.4-.2-2.9-1.3-4.8-2.6-6-1-.9-7.1 1.2-7.1 7.8.1 12.6-8.5 19.5-8.5 19.5" fill="#947151"/><path d="m52.8 38.6c0-6 3-8.5 6.5-9-3.3-3.4-9.2 2.3-9.2 7.5 0 12.6-5.2 13.7-8.1 19.4 0 0 .5.3 1.6.3 3.7-3 9.2-8.6 9.2-18.2" fill="#231f20"/><path d="m51.2 37.5c0-6 3.5-8.6 7.1-8.7-3.8-2.3-9.4 1-9.4 7.3 0 10.3-6.9 14.9-6.9 14.9v5.4c1.6-1.1 9.2-7.6 9.2-18.9" fill="#ffe8bb"/><g fill="#5e4433"><path d="m10.6 38.1c0 0-7.4.5-8.4-1.6-1.4-3 5.9-4.6 8.4-3.4v5"/><path d="m29.7 58.5c0 0-10.8.5-10.8-1 0-1.5 4.9-4.5 10.8-4.5v5.5"/></g><path d="m41.7 56.8c2.9-4.3 3.5-12.9 1.4-18.1-1.7-4.2-6.2-9.3-12.8-12.1-16.5-7.2-22.5 3.7-15 9.2 8.8 6.5 8 16.9 11.4 21.2-3.6.9-6.2 2.8-6.2 3.9 0 1.5 10.8 1 10.8 1 6 0 10.8-1.2 10.8-2.7.1-1.1-.1-1.8-.4-2.4" fill="#947151"/><path d="m31.5 45.9c0-3.7 1.6-6.9 4.1-8.9-5.2.4-9.9 5.2-9.9 11.1.1 5.3 3.4 8 2.3 8.4-8.8 3.1 1.2.8 8.2 2.6 2.2.6-4.7-7.1-4.7-13.2" fill="#ffe8bb"/><path d="m46.1 41.2c0-6.9-9.6-15-15.7-16.9-2.2-.7-4.2-1.2-6-1.5.2.8.3 1.7.4 2.5 12.3 3.1 24.2 15.6 16.9 31.5 3.5-5 4.4-9.2 4.4-15.6" fill="#231f20"/><path d="m31.4 22.9c-2.7-.7-5.1-1-7.4-1 .4.6.6 1.4.7 2.2 10.5 2.9 20.5 9.6 20.5 21.5 0 2.7-1.6 8.7-3.6 11.3 3.9-2.8 6.1-9.4 6.1-15.7.1-10-7.4-15.9-16.3-18.3" fill="#ffe8bb"/><path d="m19.9 19.7l-5.6.6c-.3-3.1 2.3-5.9 2.3-5.9s3 2.2 3.3 5.3" fill="#5e4433"/><path d="m22.4 20.2c.3-3.1-2.2-6.2-2.2-6.2s-3.2 2.2-3.6 5.3c-5.4.2-11.4 7.5-10.9 13.3.1 1.6 4.4 4.6 9.8 4.6s9.8-4.8 9.8-10.7c.1-3.5-1-5.4-2.9-6.3" fill="#947151"/><path d="m21.5 21.3c-.5 4.3-1.4 4.1-2.6 3.9-1.2-.2-2.1-.2-1.6-4.5.3-2.3 2.6-3.9 2.6-3.9s1.8 2.2 1.6 4.5" fill="#f4a19a"/><path d="m16 27.4c0 0-1.5 1.9-3.3 1.9-1.8 0-2.6-1.9-2.6-1.9s.8-3.5 2.6-3.5c1.8 0 3.3 3.5 3.3 3.5" fill="#ffe8bb"/><path d="m14.6 27.2c0 0-.9 1.2-2 1.2-1.1 0-1.6-1.2-1.6-1.2s.5-2.1 1.6-2.1c1.1 0 2 2.1 2 2.1" fill="#231f20"/><path d="m25.7 27.5c-1.8.6-4.5-.5-4.5-.5-2.4-3-3.7 1-3.7 1l1.1.4-2 .9.5.5h-1l.6.5-.4.3c-.7-.4-1.4-.6-2.2-.6-2.6 0-4.8 2.3-4.8 5.2s2.1 5.2 4.8 5.2c2.6 0 4.8-2.3 4.8-5.2 0-.1 0-.2 0-.3l1.8.5-.4-1.4h2.1l-.9-.8 3-2.3h-1.8l2.8-1.7c0 0-1.5 0-2.1 0 1 .1 4.2-2.4 2.3-1.7" fill="#ffe8bb"/><path d="m25.7 42.4c.1 2.3-5.4 9-13.3-1.3 0 0-7.4.5-8.4-1.6-1.4-3 7.1-4.8 9.3-3.4 5.2 3.2 12.2-3 12.4 6.3" fill="#947151"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f440.svg b/build/js/jsxc/lib/emojione/assets/svg/1f440.svg
index efa8303..8caf9aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f440.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f440.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dde8e3"><path d="M2,31.428C2,40.23,5.738,53,17.001,53C28.262,53,32,40.23,32,31.428C32,4.191,2,4.191,2,31.428z"/><path d="M32,31.428C32,40.23,35.738,53,47.002,53C58.264,53,62,40.23,62,31.428C62,4.191,32,4.191,32,31.428z"/></g><g fill="#fff"><path d="m2.798 32.09c0 7.561 2.381 19.346 11.968 19.346 9.586 0 11.966-11.785 11.966-19.346.001-26.03-23.934-26.03-23.934 0"/><path d="m32.799 32.09c0 7.561 2.38 19.346 11.968 19.346 9.586 0 11.967-11.785 11.967-19.346 0-26.03-23.935-26.03-23.935 0"/></g><g fill="#493b30"><path d="m2.798 32.25c0 6.211 4.352 10.965 9.726 10.965 5.372 0 9.724-4.754 9.724-10.965 0-15.276-19.45-15.276-19.45 0"/><path d="m32.799 32.25c0 6.211 4.353 10.965 9.726 10.965 5.371 0 9.723-4.754 9.723-10.965 0-15.276-19.449-15.276-19.449 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dde8e3"><path d="M2,31.4C2,40.2,5.7,53,17,53c11.3,0,15-12.8,15-21.6C32,4.2,2,4.2,2,31.4z"/><path d="m32 31.4c0 8.8 3.7 21.6 15 21.6 11.3 0 15-12.8 15-21.6 0-27.2-30-27.2-30 0"/></g><g fill="#fff"><path d="m2.8 32.1c0 7.6 2.4 19.3 12 19.3 9.6 0 12-11.8 12-19.3-.1-26-24-26-24 0"/><path d="m32.8 32.1c0 7.6 2.4 19.3 12 19.3 9.6 0 12-11.8 12-19.3-.1-26-24-26-24 0"/></g><g fill="#493b30"><path d="m2.8 32.2c0 6.2 4.4 11 9.7 11 5.4 0 9.7-4.8 9.7-11 0-15.2-19.4-15.2-19.4 0"/><path d="m32.8 32.2c0 6.2 4.4 11 9.7 11 5.4 0 9.7-4.8 9.7-11 0-15.2-19.4-15.2-19.4 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f441-1f5e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f441-1f5e8.svg
index f671ca7..facc5a2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f441-1f5e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f441-1f5e8.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m55.58 38.75v18l-14.58-9.37z"/><path d="m62 30.25c0 5.902-13.432 23-30 23-16.567 0-30-17.1-30-23 0-5.903 13.433-23 30-23 16.568 0 30 17.1 30 23"/></g><circle fill="#fff" cx="32" cy="30.25" r="15"/><circle fill="#42ade2" cx="32" cy="30.25" r="9"/><circle fill="#fff" cx="26" cy="25.5" r="5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55.6,41.7c4-4.4,6.4-8.9,6.4-11.5C62,24.3,48.6,7,32,7C15.4,7,2,24.3,2,30.2s13.4,23.2,30,23.2
+ c4.6,0,9-1.3,12.9-3.4L55.6,57V41.7z" fill="#4fd1d9"/><circle cx="32" cy="30.2" r="15" fill="#fff"/><path d="m32 21.2c-1 0-1.9.2-2.8.4 1.1.9 1.8 2.3 1.8 3.8 0 2.8-2.2 5-5 5-1.1 0-2.1-.4-3-1 0 .2 0 .5 0 .7 0 5 4 9 9 9 5 0 9-4 9-9s-4-8.9-9-8.9" fill="#4fd1d9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f441.svg b/build/js/jsxc/lib/emojione/assets/svg/1f441.svg
index 526e94f..3ce3327 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f441.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f441.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m62 32c0 0-10.121 20-30 20-19.877 0-30-20-30-20s10.123-20 30-20c19.879 0 30 20 30 20"/><path fill="#fff" d="M57,32c0,0-8.434,16.665-25,16.665C15.436,48.665,7,32,7,32s8.436-16.668,25-16.668
- C48.566,15.332,57,32,57,32z"/><path fill="#42ade2" d="m45.4 32c0 7.463-6.05 13.501-13.5 13.501-7.457 0-13.5-6.04-13.5-13.501 0-7.454 6.04-13.5 13.5-13.5 7.454 0 13.5 6.05 13.5 13.5"/><path fill="#231f20" d="m39.4 31.995c0 4.148-3.359 7.509-7.496 7.509-4.145 0-7.504-3.36-7.504-7.509 0-4.142 3.359-7.491 7.504-7.491 4.137 0 7.496 3.35 7.496 7.491"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32c0 0-10.1 20-30 20-19.9 0-30-20-30-20s10.1-20 30-20c19.9 0 30 20 30 20" fill="#231f20"/><path d="M57,32c0,0-8.4,16.7-25,16.7C15.4,48.7,7,32,7,32s8.4-16.7,25-16.7C48.6,15.3,57,32,57,32z" fill="#fff"/><path d="m45.4 32c0 7.5-6 13.5-13.5 13.5-7.5 0-13.5-6-13.5-13.5 0-7.5 6-13.5 13.5-13.5 7.5 0 13.5 6 13.5 13.5" fill="#42ade2"/><path d="m39.4 32c0 4.1-3.4 7.5-7.5 7.5-4.1 0-7.5-3.4-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5 4.1 0 7.5 3.4 7.5 7.5" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fb.svg
index 4e74ee9..e203744 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m41.3 46.947c-15.232 6.172-11.513 13.869-20.15 14.893-17.713 2.096-8.929-17.05-9.259-27.481-.731-23.02 4.989-31.569 21.537-32.34 22.418-1.043 28.678 36.496 7.875 44.926"/><g fill="#e6b796"><path d="m22.72 32.939c-2.386-2.217-4.133-5.12-5.082-8.41-.485-1.648-.675-3.431-.532-5.261.161-1.825.769-3.674 1.742-5.304 1-1.614 2.354-2.965 3.842-3.99 1.49-1.029 3.1-1.755 4.716-2.308 1.766-.594 3.729-.821 5.614-.542 1.89.262 3.652 1.01 5.136 2.02 2.996 2.02 5.02 4.876 6.473 7.852 1.421 3.01 2.269 6.225 2.57 9.48.272 3.252-.008 6.578-1.104 9.66-.548 1.535-1.308 3-2.297 4.289-.994 1.285-2.211 2.384-3.572 3.218l-.256-.37c2.459-1.89 4.063-4.635 4.8-7.547.747-2.925.722-6.01.198-8.961-.512-2.959-1.527-5.831-2.994-8.386-1.442-2.55-3.386-4.838-5.723-6.18-1.17-.657-2.416-1.042-3.648-1.105-1.236-.059-2.455.216-3.615.738-2.613 1.148-4.916 2.617-6.385 4.613-1.514 1.962-2.063 4.646-1.853 7.513.23 2.865 1.06 5.848 2.331 8.714l-.361.268"/><path d="m18.904 20.885c2.909-1.274 6.584-1.125 9.658.479 3.069 1.563 5.593 4.633 6.167 8.122.298 1.717.162 3.489-.225 5.088-.39 1.621-1.01 3.108-1.665 4.539-.669 1.426-1.417 2.799-2.282 4.115-.866 1.314-1.813 2.607-2.961 3.781-1.149 1.161-2.481 2.256-4.105 2.969-1.605.727-3.509 1.064-5.423.813-.477-.064-.951-.162-1.418-.291-.225-.069-.457-.131-.756-.256-.363-.163-.691-.318-1.119-.709-.407-.356-.867-1.059-.959-1.809-.103-.746.062-1.319.212-1.721.326-.799.67-1.211.98-1.613 1.238-1.482 2.413-2.355 3.548-3.335 1.134-.932 2.221-1.835 3.095-2.729.432-.444.79-.899 1-1.292.226-.398.327-.662.319-.979-.017-.311-.189-.777-.569-1.238-.372-.457-.875-.92-1.429-1.354-1.119-.867-2.425-1.639-3.745-2.449l.129-.43c1.568.067 3.129.305 4.689.842.781.271 1.57.614 2.332 1.159.751.529 1.554 1.296 1.983 2.438.444 1.139.365 2.461.032 3.461-.338 1.018-.833 1.833-1.342 2.567-1.028 1.46-2.207 2.582-3.35 3.634-1.13 1.017-2.355 2.01-3.139 2.777-.179.17-.305.365-.271.266.01-.053.085-.244.034-.613-.049-.373-.3-.732-.435-.832-.156-.125-.15-.092-.173-.094.043.035.172.088.303.146.252.104.512.191.779.262 2.126.524 4.812-.104 7.252-1.514 2.443-1.413 4.493-3.774 5.44-6.522.481-1.368.638-2.835.536-4.225-.029-.374-.068-.631-.125-1.038-.065-.316-.118-.667-.211-.987-.153-.655-.355-1.282-.599-1.88-.913-2.38-2.268-4.514-4.372-6.086-1.034-.791-2.216-1.438-3.514-1.948-1.313-.501-2.7-.827-4.257-1.068l-.047-.446"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.3 46.9c-15.2 6.2-11.5 13.9-20.2 14.9-17.7 2.1-8.9-17.1-9.3-27.5-.7-23 5-31.6 21.5-32.3 22.5-1 28.8 36.5 8 44.9" fill="#ffe1bd"/><g fill="#e6b796"><path d="m22.7 32.9c-2.4-2.2-4.1-5.1-5.1-8.4-.5-1.6-.7-3.4-.5-5.3.2-1.8.8-3.7 1.7-5.3 1-1.6 2.4-3 3.8-4 1.5-1 3.1-1.8 4.7-2.3 1.8-.6 3.7-.8 5.6-.5 1.9.3 3.7 1 5.1 2 3 2 5 4.9 6.5 7.9 1.4 3 2.3 6.2 2.6 9.5.3 3.3 0 6.6-1.1 9.7-.5 1.5-1.3 3-2.3 4.3-1 1.3-2.2 2.4-3.6 3.2l-.1-.4c2.5-1.9 4.1-4.6 4.8-7.5.7-2.9.7-6 .2-9-.5-3-1.5-5.8-3-8.4-1.4-2.6-3.4-4.8-5.7-6.2-1.2-.7-2.4-1-3.6-1.1-1.2-.1-2.5.2-3.6.7-2.6 1.1-4.9 2.6-6.4 4.6-1.5 2-2.1 4.6-1.9 7.5.2 2.9 1.1 5.8 2.3 8.7l-.4.3"/><path d="m18.9 20.9c2.9-1.3 6.6-1.1 9.7.5 3.1 1.6 5.6 4.6 6.2 8.1.3 1.7.2 3.5-.2 5.1-.4 1.6-1 3.1-1.7 4.5-.7 1.4-1.4 2.8-2.3 4.1-.9 1.3-1.8 2.6-3 3.8-1.1 1.2-2.5 2.3-4.1 3-1.6.7-3.5 1.1-5.4.8-.5-.1-1-.2-1.4-.3-.2-.1-.5-.1-.8-.3-.4-.2-.7-.3-1.1-.7-.4-.4-.9-1.1-1-1.8-.1-.7.1-1.3.2-1.7.3-.8.7-1.2 1-1.6 1.2-1.5 2.4-2.4 3.5-3.3 1.1-.9 2.2-1.8 3.1-2.7.4-.4.8-.9 1-1.3.2-.4.3-.7.3-1 0-.3-.2-.8-.6-1.2-.4-.5-.9-.9-1.4-1.4-1.1-.9-2.4-1.6-3.7-2.4l.1-.4c1.6.1 3.1.3 4.7.8.8.3 1.6.6 2.3 1.2.8.5 1.6 1.3 2 2.4.4 1.1.4 2.5 0 3.5-.3 1-.8 1.8-1.3 2.6-1 1.5-2.2 2.6-3.4 3.6-1.1 1-2.4 2-3.1 2.8-.2.2-.3.4-.3.3 0-.1.1-.2 0-.6 0-.4-.3-.7-.4-.8-.2-.1-.1-.1-.2-.1 0 0 .2.1.3.1.3.1.5.2.8.3 2.1.5 4.8-.1 7.3-1.5 2.4-1.4 4.5-3.8 5.4-6.5.5-1.4.6-2.8.5-4.2 0-.4-.1-.6-.1-1-.1-.3-.1-.7-.2-1-.2-.7-.4-1.3-.6-1.9-.9-2.4-2.3-4.5-4.4-6.1-1-.8-2.2-1.4-3.5-1.9-1.3-.5-2.7-.8-4.3-1.1l.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fc.svg
index 0e6e474..e9b2478 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m41.3 46.947c-15.232 6.172-11.513 13.869-20.15 14.893-17.713 2.096-8.929-17.05-9.259-27.481-.731-23.02 4.989-31.569 21.537-32.34 22.418-1.043 28.678 36.496 7.875 44.926"/><g fill="#e0a372"><path d="m22.72 32.939c-2.386-2.217-4.133-5.12-5.082-8.41-.485-1.648-.675-3.431-.532-5.261.161-1.825.769-3.674 1.742-5.304 1-1.614 2.354-2.965 3.842-3.99 1.49-1.029 3.1-1.755 4.716-2.308 1.766-.594 3.729-.821 5.614-.542 1.89.262 3.652 1.01 5.136 2.02 2.996 2.02 5.02 4.876 6.473 7.852 1.421 3.01 2.269 6.225 2.57 9.48.272 3.252-.008 6.578-1.104 9.66-.548 1.535-1.308 3-2.297 4.289-.994 1.285-2.211 2.384-3.572 3.218l-.256-.37c2.459-1.89 4.063-4.635 4.8-7.547.747-2.925.722-6.01.198-8.961-.512-2.959-1.527-5.831-2.994-8.386-1.442-2.55-3.386-4.838-5.723-6.18-1.17-.657-2.416-1.042-3.648-1.105-1.236-.059-2.455.216-3.615.738-2.613 1.148-4.916 2.617-6.385 4.613-1.514 1.962-2.063 4.646-1.853 7.513.23 2.865 1.06 5.848 2.331 8.714l-.361.268"/><path d="m18.904 20.885c2.909-1.274 6.584-1.125 9.658.479 3.069 1.563 5.593 4.633 6.167 8.122.298 1.717.162 3.489-.225 5.088-.39 1.621-1.01 3.108-1.665 4.539-.669 1.426-1.417 2.799-2.282 4.115-.866 1.314-1.813 2.607-2.961 3.781-1.149 1.161-2.481 2.256-4.105 2.969-1.605.727-3.509 1.064-5.423.813-.477-.064-.951-.162-1.418-.291-.225-.069-.457-.131-.756-.256-.363-.163-.691-.318-1.119-.709-.407-.356-.867-1.059-.959-1.809-.103-.746.062-1.319.212-1.721.326-.799.67-1.211.98-1.613 1.238-1.482 2.413-2.355 3.548-3.335 1.134-.932 2.221-1.835 3.095-2.729.432-.444.79-.899 1-1.292.226-.398.327-.662.319-.979-.017-.311-.189-.777-.569-1.238-.372-.457-.875-.92-1.429-1.354-1.119-.867-2.425-1.639-3.745-2.449l.129-.43c1.568.067 3.129.305 4.689.842.781.271 1.57.614 2.332 1.159.751.529 1.554 1.296 1.983 2.438.444 1.139.365 2.461.032 3.461-.338 1.018-.833 1.833-1.342 2.567-1.028 1.46-2.207 2.582-3.35 3.634-1.13 1.017-2.355 2.01-3.139 2.777-.179.17-.305.365-.271.266.01-.053.085-.244.034-.613-.049-.373-.3-.732-.435-.832-.156-.125-.15-.092-.173-.094.043.035.172.088.303.146.252.104.512.191.779.262 2.126.524 4.812-.104 7.252-1.514 2.443-1.413 4.493-3.774 5.44-6.522.481-1.368.638-2.835.536-4.225-.029-.374-.068-.631-.125-1.038-.065-.316-.118-.667-.211-.987-.153-.655-.355-1.282-.599-1.88-.913-2.38-2.268-4.514-4.372-6.086-1.034-.791-2.216-1.438-3.514-1.948-1.313-.501-2.7-.827-4.257-1.068l-.047-.446"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.3 46.9c-15.2 6.2-11.5 13.9-20.2 14.9-17.7 2.1-8.9-17.1-9.3-27.5-.7-23 5-31.6 21.5-32.3 22.5-1 28.8 36.5 8 44.9" fill="#fed0ac"/><g fill="#e0a372"><path d="m22.7 32.9c-2.4-2.2-4.1-5.1-5.1-8.4-.5-1.6-.7-3.4-.5-5.3.2-1.8.8-3.7 1.7-5.3 1-1.6 2.4-3 3.8-4 1.5-1 3.1-1.8 4.7-2.3 1.8-.6 3.7-.8 5.6-.5 1.9.3 3.7 1 5.1 2 3 2 5 4.9 6.5 7.9 1.4 3 2.3 6.2 2.6 9.5.3 3.3 0 6.6-1.1 9.7-.5 1.5-1.3 3-2.3 4.3-1 1.3-2.2 2.4-3.6 3.2l-.1-.4c2.5-1.9 4.1-4.6 4.8-7.5.7-2.9.7-6 .2-9-.5-3-1.5-5.8-3-8.4-1.4-2.6-3.4-4.8-5.7-6.2-1.2-.7-2.4-1-3.6-1.1-1.2-.1-2.5.2-3.6.7-2.6 1.1-4.9 2.6-6.4 4.6-1.5 2-2.1 4.6-1.9 7.5.2 2.9 1.1 5.8 2.3 8.7l-.4.3"/><path d="m18.9 20.9c2.9-1.3 6.6-1.1 9.7.5 3.1 1.6 5.6 4.6 6.2 8.1.3 1.7.2 3.5-.2 5.1-.4 1.6-1 3.1-1.7 4.5-.7 1.4-1.4 2.8-2.3 4.1-.9 1.3-1.8 2.6-3 3.8-1.1 1.2-2.5 2.3-4.1 3-1.6.7-3.5 1.1-5.4.8-.5-.1-1-.2-1.4-.3-.2-.1-.5-.1-.8-.3-.4-.2-.7-.3-1.1-.7-.4-.4-.9-1.1-1-1.8-.1-.7.1-1.3.2-1.7.3-.8.7-1.2 1-1.6 1.2-1.5 2.4-2.4 3.5-3.3 1.1-.9 2.2-1.8 3.1-2.7.4-.4.8-.9 1-1.3.2-.4.3-.7.3-1 0-.3-.2-.8-.6-1.2-.4-.5-.9-.9-1.4-1.4-1.1-.9-2.4-1.6-3.7-2.4l.1-.4c1.6.1 3.1.3 4.7.8.8.3 1.6.6 2.3 1.2.8.5 1.6 1.3 2 2.4.4 1.1.4 2.5 0 3.5-.3 1-.8 1.8-1.3 2.6-1 1.5-2.2 2.6-3.4 3.6-1.1 1-2.4 2-3.1 2.8-.2.2-.3.4-.3.3 0-.1.1-.2 0-.6 0-.4-.3-.7-.4-.8-.2-.1-.1-.1-.2-.1 0 0 .2.1.3.1.3.1.5.2.8.3 2.1.5 4.8-.1 7.3-1.5 2.4-1.4 4.5-3.8 5.4-6.5.5-1.4.6-2.8.5-4.2 0-.4-.1-.6-.1-1-.1-.3-.1-.7-.2-1-.2-.7-.4-1.3-.6-1.9-.9-2.4-2.3-4.5-4.4-6.1-1-.8-2.2-1.4-3.5-1.9-1.3-.5-2.7-.8-4.3-1.1l.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fd.svg
index 0b31e02..717877f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m41.3 46.947c-15.232 6.172-11.513 13.869-20.15 14.893-17.713 2.096-8.929-17.05-9.259-27.481-.731-23.02 4.989-31.569 21.537-32.34 22.418-1.043 28.678 36.496 7.875 44.926"/><g fill="#b58360"><path d="m22.72 32.939c-2.386-2.217-4.133-5.12-5.082-8.41-.485-1.648-.675-3.431-.532-5.261.161-1.825.769-3.674 1.742-5.304 1-1.614 2.354-2.965 3.842-3.99 1.49-1.029 3.1-1.755 4.716-2.308 1.766-.594 3.729-.821 5.614-.542 1.89.262 3.652 1.01 5.136 2.02 2.996 2.02 5.02 4.876 6.473 7.852 1.421 3.01 2.269 6.225 2.57 9.48.272 3.252-.008 6.578-1.104 9.66-.548 1.535-1.308 3-2.297 4.289-.994 1.285-2.211 2.384-3.572 3.218l-.256-.37c2.459-1.89 4.063-4.635 4.8-7.547.747-2.925.722-6.01.198-8.961-.512-2.959-1.527-5.831-2.994-8.386-1.442-2.55-3.386-4.838-5.723-6.18-1.17-.657-2.416-1.042-3.648-1.105-1.236-.059-2.455.216-3.615.738-2.613 1.148-4.916 2.617-6.385 4.613-1.514 1.962-2.063 4.646-1.853 7.513.23 2.865 1.06 5.848 2.331 8.714l-.361.268"/><path d="m18.904 20.885c2.909-1.274 6.584-1.125 9.658.479 3.069 1.563 5.593 4.633 6.167 8.122.298 1.717.162 3.489-.225 5.088-.39 1.621-1.01 3.108-1.665 4.539-.669 1.426-1.417 2.799-2.282 4.115-.866 1.314-1.813 2.607-2.961 3.781-1.149 1.161-2.481 2.256-4.105 2.969-1.605.727-3.509 1.064-5.423.813-.477-.064-.951-.162-1.418-.291-.225-.069-.457-.131-.756-.256-.363-.163-.691-.318-1.119-.709-.407-.356-.867-1.059-.959-1.809-.103-.746.062-1.319.212-1.721.326-.799.67-1.211.98-1.613 1.238-1.482 2.413-2.355 3.548-3.335 1.134-.932 2.221-1.835 3.095-2.729.432-.444.79-.899 1-1.292.226-.398.327-.662.319-.979-.017-.311-.189-.777-.569-1.238-.372-.457-.875-.92-1.429-1.354-1.119-.867-2.425-1.639-3.745-2.449l.129-.43c1.568.067 3.129.305 4.689.842.781.271 1.57.614 2.332 1.159.751.529 1.554 1.296 1.983 2.438.444 1.139.365 2.461.032 3.461-.338 1.018-.833 1.833-1.342 2.567-1.028 1.46-2.207 2.582-3.35 3.634-1.13 1.017-2.355 2.01-3.139 2.777-.179.17-.305.365-.271.266.01-.053.085-.244.034-.613-.049-.373-.3-.732-.435-.832-.156-.125-.15-.092-.173-.094.043.035.172.088.303.146.252.104.512.191.779.262 2.126.524 4.812-.104 7.252-1.514 2.443-1.413 4.493-3.774 5.44-6.522.481-1.368.638-2.835.536-4.225-.029-.374-.068-.631-.125-1.038-.065-.316-.118-.667-.211-.987-.153-.655-.355-1.282-.599-1.88-.913-2.38-2.268-4.514-4.372-6.086-1.034-.791-2.216-1.438-3.514-1.948-1.313-.501-2.7-.827-4.257-1.068l-.047-.446"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.3 46.9c-15.2 6.2-11.5 13.9-20.2 14.9-17.7 2.1-8.9-17.1-9.3-27.5-.7-23 5-31.6 21.5-32.3 22.5-1 28.8 36.5 8 44.9" fill="#d6a57c"/><g fill="#b58360"><path d="m22.7 32.9c-2.4-2.2-4.1-5.1-5.1-8.4-.5-1.6-.7-3.4-.5-5.3.2-1.8.8-3.7 1.7-5.3 1-1.6 2.4-3 3.8-4 1.5-1 3.1-1.8 4.7-2.3 1.8-.6 3.7-.8 5.6-.5 1.9.3 3.7 1 5.1 2 3 2 5 4.9 6.5 7.9 1.4 3 2.3 6.2 2.6 9.5.3 3.3 0 6.6-1.1 9.7-.5 1.5-1.3 3-2.3 4.3-1 1.3-2.2 2.4-3.6 3.2l-.1-.4c2.5-1.9 4.1-4.6 4.8-7.5.7-2.9.7-6 .2-9-.5-3-1.5-5.8-3-8.4-1.4-2.6-3.4-4.8-5.7-6.2-1.2-.7-2.4-1-3.6-1.1-1.2-.1-2.5.2-3.6.7-2.6 1.1-4.9 2.6-6.4 4.6-1.5 2-2.1 4.6-1.9 7.5.2 2.9 1.1 5.8 2.3 8.7l-.4.3"/><path d="m18.9 20.9c2.9-1.3 6.6-1.1 9.7.5 3.1 1.6 5.6 4.6 6.2 8.1.3 1.7.2 3.5-.2 5.1-.4 1.6-1 3.1-1.7 4.5-.7 1.4-1.4 2.8-2.3 4.1-.9 1.3-1.8 2.6-3 3.8-1.1 1.2-2.5 2.3-4.1 3-1.6.7-3.5 1.1-5.4.8-.5-.1-1-.2-1.4-.3-.2-.1-.5-.1-.8-.3-.4-.2-.7-.3-1.1-.7-.4-.4-.9-1.1-1-1.8-.1-.7.1-1.3.2-1.7.3-.8.7-1.2 1-1.6 1.2-1.5 2.4-2.4 3.5-3.3 1.1-.9 2.2-1.8 3.1-2.7.4-.4.8-.9 1-1.3.2-.4.3-.7.3-1 0-.3-.2-.8-.6-1.2-.4-.5-.9-.9-1.4-1.4-1.1-.9-2.4-1.6-3.7-2.4l.1-.4c1.6.1 3.1.3 4.7.8.8.3 1.6.6 2.3 1.2.8.5 1.6 1.3 2 2.4.4 1.1.4 2.5 0 3.5-.3 1-.8 1.8-1.3 2.6-1 1.5-2.2 2.6-3.4 3.6-1.1 1-2.4 2-3.1 2.8-.2.2-.3.4-.3.3 0-.1.1-.2 0-.6 0-.4-.3-.7-.4-.8-.2-.1-.1-.1-.2-.1 0 0 .2.1.3.1.3.1.5.2.8.3 2.1.5 4.8-.1 7.3-1.5 2.4-1.4 4.5-3.8 5.4-6.5.5-1.4.6-2.8.5-4.2 0-.4-.1-.6-.1-1-.1-.3-.1-.7-.2-1-.2-.7-.4-1.3-.6-1.9-.9-2.4-2.3-4.5-4.4-6.1-1-.8-2.2-1.4-3.5-1.9-1.3-.5-2.7-.8-4.3-1.1l.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fe.svg
index 213357d..aaf77d8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m41.3 46.947c-15.232 6.172-11.513 13.869-20.15 14.893-17.713 2.096-8.929-17.05-9.259-27.481-.731-23.02 4.989-31.569 21.537-32.34 22.418-1.043 28.678 36.496 7.875 44.926"/><g fill="#935e3e"><path d="m22.72 32.939c-2.386-2.217-4.133-5.12-5.082-8.41-.485-1.648-.675-3.431-.532-5.261.161-1.825.769-3.674 1.742-5.304 1-1.614 2.354-2.965 3.842-3.99 1.49-1.029 3.1-1.755 4.716-2.308 1.766-.594 3.729-.821 5.614-.542 1.89.262 3.652 1.01 5.136 2.02 2.996 2.02 5.02 4.876 6.473 7.852 1.421 3.01 2.269 6.225 2.57 9.48.272 3.252-.008 6.578-1.104 9.66-.548 1.535-1.308 3-2.297 4.289-.994 1.285-2.211 2.384-3.572 3.218l-.256-.37c2.459-1.89 4.063-4.635 4.8-7.547.747-2.925.722-6.01.198-8.961-.512-2.959-1.527-5.831-2.994-8.386-1.442-2.55-3.386-4.838-5.723-6.18-1.17-.657-2.416-1.042-3.648-1.105-1.236-.059-2.455.216-3.615.738-2.613 1.148-4.916 2.617-6.385 4.613-1.514 1.962-2.063 4.646-1.853 7.513.23 2.865 1.06 5.848 2.331 8.714l-.361.268"/><path d="m18.904 20.885c2.909-1.274 6.584-1.125 9.658.479 3.069 1.563 5.593 4.633 6.167 8.122.298 1.717.162 3.489-.225 5.088-.39 1.621-1.01 3.108-1.665 4.539-.669 1.426-1.417 2.799-2.282 4.115-.866 1.314-1.813 2.607-2.961 3.781-1.149 1.161-2.481 2.256-4.105 2.969-1.605.727-3.509 1.064-5.423.813-.477-.064-.951-.162-1.418-.291-.225-.069-.457-.131-.756-.256-.363-.163-.691-.318-1.119-.709-.407-.356-.867-1.059-.959-1.809-.103-.746.062-1.319.212-1.721.326-.799.67-1.211.98-1.613 1.238-1.482 2.413-2.355 3.548-3.335 1.134-.932 2.221-1.835 3.095-2.729.432-.444.79-.899 1-1.292.226-.398.327-.662.319-.979-.017-.311-.189-.777-.569-1.238-.372-.457-.875-.92-1.429-1.354-1.119-.867-2.425-1.639-3.745-2.449l.129-.43c1.568.067 3.129.305 4.689.842.781.271 1.57.614 2.332 1.159.751.529 1.554 1.296 1.983 2.438.444 1.139.365 2.461.032 3.461-.338 1.018-.833 1.833-1.342 2.567-1.028 1.46-2.207 2.582-3.35 3.634-1.13 1.017-2.355 2.01-3.139 2.777-.179.17-.305.365-.271.266.01-.053.085-.244.034-.613-.049-.373-.3-.732-.435-.832-.156-.125-.15-.092-.173-.094.043.035.172.088.303.146.252.104.512.191.779.262 2.126.524 4.812-.104 7.252-1.514 2.443-1.413 4.493-3.774 5.44-6.522.481-1.368.638-2.835.536-4.225-.029-.374-.068-.631-.125-1.038-.065-.316-.118-.667-.211-.987-.153-.655-.355-1.282-.599-1.88-.913-2.38-2.268-4.514-4.372-6.086-1.034-.791-2.216-1.438-3.514-1.948-1.313-.501-2.7-.827-4.257-1.068l-.047-.446"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.3 46.9c-15.2 6.2-11.5 13.9-20.2 14.9-17.7 2.1-8.9-17.1-9.3-27.5-.7-23 5-31.6 21.5-32.3 22.5-1 28.8 36.5 8 44.9" fill="#b47d56"/><g fill="#935e3e"><path d="m22.7 32.9c-2.4-2.2-4.1-5.1-5.1-8.4-.5-1.6-.7-3.4-.5-5.3.2-1.8.8-3.7 1.7-5.3 1-1.6 2.4-3 3.8-4 1.5-1 3.1-1.8 4.7-2.3 1.8-.6 3.7-.8 5.6-.5 1.9.3 3.7 1 5.1 2 3 2 5 4.9 6.5 7.9 1.4 3 2.3 6.2 2.6 9.5.3 3.3 0 6.6-1.1 9.7-.5 1.5-1.3 3-2.3 4.3-1 1.3-2.2 2.4-3.6 3.2l-.1-.4c2.5-1.9 4.1-4.6 4.8-7.5.7-2.9.7-6 .2-9-.5-3-1.5-5.8-3-8.4-1.4-2.6-3.4-4.8-5.7-6.2-1.2-.7-2.4-1-3.6-1.1-1.2-.1-2.5.2-3.6.7-2.6 1.1-4.9 2.6-6.4 4.6-1.5 2-2.1 4.6-1.9 7.5.2 2.9 1.1 5.8 2.3 8.7l-.4.3"/><path d="m18.9 20.9c2.9-1.3 6.6-1.1 9.7.5 3.1 1.6 5.6 4.6 6.2 8.1.3 1.7.2 3.5-.2 5.1-.4 1.6-1 3.1-1.7 4.5-.7 1.4-1.4 2.8-2.3 4.1-.9 1.3-1.8 2.6-3 3.8-1.1 1.2-2.5 2.3-4.1 3-1.6.7-3.5 1.1-5.4.8-.5-.1-1-.2-1.4-.3-.2-.1-.5-.1-.8-.3-.4-.2-.7-.3-1.1-.7-.4-.4-.9-1.1-1-1.8-.1-.7.1-1.3.2-1.7.3-.8.7-1.2 1-1.6 1.2-1.5 2.4-2.4 3.5-3.3 1.1-.9 2.2-1.8 3.1-2.7.4-.4.8-.9 1-1.3.2-.4.3-.7.3-1 0-.3-.2-.8-.6-1.2-.4-.5-.9-.9-1.4-1.4-1.1-.9-2.4-1.6-3.7-2.4l.1-.4c1.6.1 3.1.3 4.7.8.8.3 1.6.6 2.3 1.2.8.5 1.6 1.3 2 2.4.4 1.1.4 2.5 0 3.5-.3 1-.8 1.8-1.3 2.6-1 1.5-2.2 2.6-3.4 3.6-1.1 1-2.4 2-3.1 2.8-.2.2-.3.4-.3.3 0-.1.1-.2 0-.6 0-.4-.3-.7-.4-.8-.2-.1-.1-.1-.2-.1 0 0 .2.1.3.1.3.1.5.2.8.3 2.1.5 4.8-.1 7.3-1.5 2.4-1.4 4.5-3.8 5.4-6.5.5-1.4.6-2.8.5-4.2 0-.4-.1-.6-.1-1-.1-.3-.1-.7-.2-1-.2-.7-.4-1.3-.6-1.9-.9-2.4-2.3-4.5-4.4-6.1-1-.8-2.2-1.4-3.5-1.9-1.3-.5-2.7-.8-4.3-1.1l.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3ff.svg
index e6949ae..c8f653b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f442-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m41.3 46.947c-15.232 6.172-11.513 13.869-20.15 14.893-17.713 2.096-8.929-17.05-9.259-27.481-.731-23.02 4.989-31.569 21.537-32.34 22.418-1.043 28.678 36.496 7.875 44.926"/><g fill="#705041"><path d="m22.72 32.939c-2.386-2.217-4.133-5.12-5.082-8.41-.485-1.648-.675-3.431-.532-5.261.161-1.825.769-3.674 1.742-5.304 1-1.614 2.354-2.965 3.842-3.99 1.49-1.029 3.1-1.755 4.716-2.308 1.766-.594 3.729-.821 5.614-.542 1.89.262 3.652 1.01 5.136 2.02 2.996 2.02 5.02 4.876 6.473 7.852 1.421 3.01 2.269 6.225 2.57 9.48.272 3.252-.008 6.578-1.104 9.66-.548 1.535-1.308 3-2.297 4.289-.994 1.285-2.211 2.384-3.572 3.218l-.256-.37c2.459-1.89 4.063-4.635 4.8-7.547.747-2.925.722-6.01.198-8.961-.512-2.959-1.527-5.831-2.994-8.386-1.442-2.55-3.386-4.838-5.723-6.18-1.17-.657-2.416-1.042-3.648-1.105-1.236-.059-2.455.216-3.615.738-2.613 1.148-4.916 2.617-6.385 4.613-1.514 1.962-2.063 4.646-1.853 7.513.23 2.865 1.06 5.848 2.331 8.714l-.361.268"/><path d="m18.904 20.885c2.909-1.274 6.584-1.125 9.658.479 3.069 1.563 5.593 4.633 6.167 8.122.298 1.717.162 3.489-.225 5.088-.39 1.621-1.01 3.108-1.665 4.539-.669 1.426-1.417 2.799-2.282 4.115-.866 1.314-1.813 2.607-2.961 3.781-1.149 1.161-2.481 2.256-4.105 2.969-1.605.727-3.509 1.064-5.423.813-.477-.064-.951-.162-1.418-.291-.225-.069-.457-.131-.756-.256-.363-.163-.691-.318-1.119-.709-.407-.356-.867-1.059-.959-1.809-.103-.746.062-1.319.212-1.721.326-.799.67-1.211.98-1.613 1.238-1.482 2.413-2.355 3.548-3.335 1.134-.932 2.221-1.835 3.095-2.729.432-.444.79-.899 1-1.292.226-.398.327-.662.319-.979-.017-.311-.189-.777-.569-1.238-.372-.457-.875-.92-1.429-1.354-1.119-.867-2.425-1.639-3.745-2.449l.129-.43c1.568.067 3.129.305 4.689.842.781.271 1.57.614 2.332 1.159.751.529 1.554 1.296 1.983 2.438.444 1.139.365 2.461.032 3.461-.338 1.018-.833 1.833-1.342 2.567-1.028 1.46-2.207 2.582-3.35 3.634-1.13 1.017-2.355 2.01-3.139 2.777-.179.17-.305.365-.271.266.01-.053.085-.244.034-.613-.049-.373-.3-.732-.435-.832-.156-.125-.15-.092-.173-.094.043.035.172.088.303.146.252.104.512.191.779.262 2.126.524 4.812-.104 7.252-1.514 2.443-1.413 4.493-3.774 5.44-6.522.481-1.368.638-2.835.536-4.225-.029-.374-.068-.631-.125-1.038-.065-.316-.118-.667-.211-.987-.153-.655-.355-1.282-.599-1.88-.913-2.38-2.268-4.514-4.372-6.086-1.034-.791-2.216-1.438-3.514-1.948-1.313-.501-2.7-.827-4.257-1.068l-.047-.446"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.3 46.9c-15.2 6.2-11.5 13.9-20.2 14.9-17.7 2.1-8.9-17.1-9.3-27.5-.7-23 5-31.6 21.5-32.3 22.5-1 28.8 36.5 8 44.9" fill="#8a6859"/><g fill="#705041"><path d="m22.7 32.9c-2.4-2.2-4.1-5.1-5.1-8.4-.5-1.6-.7-3.4-.5-5.3.2-1.8.8-3.7 1.7-5.3 1-1.6 2.4-3 3.8-4 1.5-1 3.1-1.8 4.7-2.3 1.8-.6 3.7-.8 5.6-.5 1.9.3 3.7 1 5.1 2 3 2 5 4.9 6.5 7.9 1.4 3 2.3 6.2 2.6 9.5.3 3.3 0 6.6-1.1 9.7-.5 1.5-1.3 3-2.3 4.3-1 1.3-2.2 2.4-3.6 3.2l-.1-.4c2.5-1.9 4.1-4.6 4.8-7.5.7-2.9.7-6 .2-9-.5-3-1.5-5.8-3-8.4-1.4-2.6-3.4-4.8-5.7-6.2-1.2-.7-2.4-1-3.6-1.1-1.2-.1-2.5.2-3.6.7-2.6 1.1-4.9 2.6-6.4 4.6-1.5 2-2.1 4.6-1.9 7.5.2 2.9 1.1 5.8 2.3 8.7l-.4.3"/><path d="m18.9 20.9c2.9-1.3 6.6-1.1 9.7.5 3.1 1.6 5.6 4.6 6.2 8.1.3 1.7.2 3.5-.2 5.1-.4 1.6-1 3.1-1.7 4.5-.7 1.4-1.4 2.8-2.3 4.1-.9 1.3-1.8 2.6-3 3.8-1.1 1.2-2.5 2.3-4.1 3-1.6.7-3.5 1.1-5.4.8-.5-.1-1-.2-1.4-.3-.2-.1-.5-.1-.8-.3-.4-.2-.7-.3-1.1-.7-.4-.4-.9-1.1-1-1.8-.1-.7.1-1.3.2-1.7.3-.8.7-1.2 1-1.6 1.2-1.5 2.4-2.4 3.5-3.3 1.1-.9 2.2-1.8 3.1-2.7.4-.4.8-.9 1-1.3.2-.4.3-.7.3-1 0-.3-.2-.8-.6-1.2-.4-.5-.9-.9-1.4-1.4-1.1-.9-2.4-1.6-3.7-2.4l.1-.4c1.6.1 3.1.3 4.7.8.8.3 1.6.6 2.3 1.2.8.5 1.6 1.3 2 2.4.4 1.1.4 2.5 0 3.5-.3 1-.8 1.8-1.3 2.6-1 1.5-2.2 2.6-3.4 3.6-1.1 1-2.4 2-3.1 2.8-.2.2-.3.4-.3.3 0-.1.1-.2 0-.6 0-.4-.3-.7-.4-.8-.2-.1-.1-.1-.2-.1 0 0 .2.1.3.1.3.1.5.2.8.3 2.1.5 4.8-.1 7.3-1.5 2.4-1.4 4.5-3.8 5.4-6.5.5-1.4.6-2.8.5-4.2 0-.4-.1-.6-.1-1-.1-.3-.1-.7-.2-1-.2-.7-.4-1.3-.6-1.9-.9-2.4-2.3-4.5-4.4-6.1-1-.8-2.2-1.4-3.5-1.9-1.3-.5-2.7-.8-4.3-1.1l.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f442.svg b/build/js/jsxc/lib/emojione/assets/svg/1f442.svg
index a570b5a..3063df7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f442.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f442.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m41.3 46.948c-15.232 6.172-11.513 13.869-20.15 14.893-17.713 2.096-8.929-17.05-9.259-27.481-.731-23.02 4.989-31.569 21.537-32.34 22.418-1.042 28.678 36.497 7.875 44.927"/><g fill="#eba352"><path d="m22.717 32.94c-2.386-2.217-4.133-5.12-5.082-8.41-.485-1.648-.675-3.431-.532-5.261.161-1.825.769-3.674 1.742-5.304 1-1.614 2.354-2.965 3.842-3.99 1.49-1.029 3.1-1.755 4.716-2.308 1.766-.594 3.729-.821 5.614-.542 1.89.262 3.652 1.01 5.136 2.02 2.996 2.02 5.02 4.876 6.473 7.852 1.421 3.01 2.269 6.225 2.57 9.48.272 3.252-.008 6.577-1.104 9.66-.548 1.535-1.308 3-2.297 4.289-.994 1.285-2.211 2.384-3.572 3.218l-.256-.37c2.459-1.89 4.063-4.635 4.8-7.547.747-2.925.722-6.01.198-8.961-.512-2.959-1.527-5.831-2.994-8.386-1.442-2.55-3.386-4.838-5.723-6.18-1.17-.657-2.416-1.042-3.648-1.105-1.236-.059-2.455.216-3.615.738-2.613 1.148-4.916 2.617-6.385 4.613-1.514 1.962-2.063 4.646-1.853 7.513.23 2.865 1.06 5.847 2.331 8.714l-.361.268"/><path d="m18.901 20.886c2.909-1.274 6.584-1.125 9.658.479 3.069 1.563 5.593 4.633 6.167 8.121.298 1.717.162 3.49-.225 5.088-.39 1.621-1.01 3.108-1.665 4.539-.669 1.426-1.417 2.799-2.282 4.115-.866 1.314-1.813 2.607-2.961 3.781-1.149 1.161-2.481 2.256-4.105 2.969-1.605.727-3.509 1.064-5.423.813-.477-.064-.951-.162-1.418-.291-.225-.069-.457-.131-.756-.256-.363-.163-.691-.318-1.119-.709-.407-.356-.867-1.059-.959-1.809-.103-.746.062-1.319.212-1.721.326-.799.67-1.211.98-1.613 1.238-1.482 2.413-2.355 3.548-3.335 1.134-.932 2.221-1.835 3.095-2.729.432-.444.79-.899 1-1.292.226-.398.327-.662.319-.979-.017-.311-.189-.777-.569-1.238-.372-.457-.875-.92-1.429-1.354-1.119-.867-2.425-1.639-3.745-2.449l.129-.431c1.568.068 3.129.305 4.689.843.781.27 1.57.614 2.332 1.159.751.529 1.554 1.296 1.983 2.438.444 1.139.365 2.461.032 3.461-.338 1.018-.833 1.833-1.342 2.567-1.028 1.46-2.207 2.582-3.35 3.634-1.13 1.017-2.355 2.01-3.139 2.777-.179.17-.305.365-.271.266.01-.053.085-.244.034-.613-.049-.373-.3-.732-.435-.832-.156-.125-.15-.092-.173-.094.043.035.172.088.303.146.252.104.512.191.779.262 2.126.524 4.812-.104 7.252-1.514 2.443-1.413 4.493-3.774 5.44-6.522.481-1.368.638-2.835.536-4.225-.029-.374-.068-.631-.125-1.038-.065-.316-.118-.667-.211-.987-.153-.655-.355-1.282-.599-1.879-.913-2.38-2.268-4.514-4.372-6.086-1.034-.791-2.216-1.438-3.514-1.948-1.313-.501-2.7-.827-4.257-1.068l-.047-.446"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.3 46.9c-15.2 6.2-11.5 13.9-20.2 14.9-17.7 2.1-8.9-17.1-9.3-27.5-.7-23 5-31.6 21.5-32.3 22.5-1 28.8 36.5 8 44.9" fill="#ffdd67"/><g fill="#eba352"><path d="m22.7 32.9c-2.4-2.2-4.1-5.1-5.1-8.4-.5-1.6-.7-3.4-.5-5.3.2-1.8.8-3.7 1.7-5.3 1-1.6 2.4-3 3.8-4 1.5-1 3.1-1.8 4.7-2.3 1.8-.6 3.7-.8 5.6-.5 1.9.3 3.7 1 5.1 2 3 2 5 4.9 6.5 7.9 1.4 3 2.3 6.2 2.6 9.5.3 3.3 0 6.6-1.1 9.7-.5 1.5-1.3 3-2.3 4.3-1 1.3-2.2 2.4-3.6 3.2l-.1-.4c2.5-1.9 4.1-4.6 4.8-7.5.7-2.9.7-6 .2-9-.5-3-1.5-5.8-3-8.4-1.4-2.6-3.4-4.8-5.7-6.2-1.2-.7-2.4-1-3.6-1.1-1.2-.1-2.5.2-3.6.7-2.6 1.1-4.9 2.6-6.4 4.6-1.5 2-2.1 4.6-1.9 7.5.2 2.9 1.1 5.8 2.3 8.7l-.4.3"/><path d="m18.9 20.9c2.9-1.3 6.6-1.1 9.7.5 3.1 1.6 5.6 4.6 6.2 8.1.3 1.7.2 3.5-.2 5.1-.4 1.6-1 3.1-1.7 4.5-.7 1.4-1.4 2.8-2.3 4.1-.9 1.3-1.8 2.6-3 3.8-1.1 1.2-2.5 2.3-4.1 3-1.6.7-3.5 1.1-5.4.8-.5-.1-1-.2-1.4-.3-.2-.1-.5-.1-.8-.3-.4-.2-.7-.3-1.1-.7-.4-.4-.9-1.1-1-1.8-.1-.7.1-1.3.2-1.7.3-.8.7-1.2 1-1.6 1.2-1.5 2.4-2.4 3.5-3.3 1.1-.9 2.2-1.8 3.1-2.7.4-.4.8-.9 1-1.3.2-.4.3-.7.3-1 0-.3-.2-.8-.6-1.2-.4-.5-.9-.9-1.4-1.4-1.1-.9-2.4-1.6-3.7-2.4l.1-.4c1.6.1 3.1.3 4.7.8.8.3 1.6.6 2.3 1.2.8.5 1.6 1.3 2 2.4.4 1.1.4 2.5 0 3.5-.3 1-.8 1.8-1.3 2.6-1 1.5-2.2 2.6-3.4 3.6-1.1 1-2.4 2-3.1 2.8-.2.2-.3.4-.3.3 0-.1.1-.2 0-.6 0-.4-.3-.7-.4-.8-.2-.1-.1-.1-.2-.1 0 0 .2.1.3.1.3.1.5.2.8.3 2.1.5 4.8-.1 7.3-1.5 2.4-1.4 4.5-3.8 5.4-6.5.5-1.4.6-2.8.5-4.2 0-.4-.1-.6-.1-1-.1-.3-.1-.7-.2-1-.2-.7-.4-1.3-.6-1.9-.9-2.4-2.3-4.5-4.4-6.1-1-.8-2.2-1.4-3.5-1.9-1.3-.5-2.7-.8-4.3-1.1l.1-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fb.svg
index c81daf6..db943db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><ellipse cx="16.852" cy="48.648" rx="9.852" ry="9.537"/><ellipse cx="47.15" cy="48.648" rx="9.852" ry="9.537"/></g><g fill="#fed0ac"><path d="m47.15 49.4c-3.81 0-6.896 2.096-6.896 4.689 0 .629.189 1.227.518 1.77 1.722 1.432 3.933 2.324 6.379 2.324 2.447 0 4.657-.893 6.38-2.324.328-.543.518-1.141.518-1.77-.001-2.593-3.091-4.689-6.899-4.689"/><path d="m16.852 49.4c3.81 0 6.898 2.096 6.898 4.689 0 .629-.189 1.227-.518 1.77-1.722 1.432-3.933 2.324-6.381 2.324-2.447 0-4.655-.893-6.38-2.324-.328-.543-.516-1.141-.516-1.77.001-2.593 3.089-4.689 6.897-4.689"/><path d="m31.998 53.33c-3.056 0-6.973-.909-12.354-1.972l1.092 6.06c2.862 2.83 6.847 4.588 11.262 4.588s8.4-1.758 11.263-4.588l1.094-6.06c-5.382 1.063-9.301 1.972-12.357 1.972"/></g><g fill="#ad6c3f"><path d="m17.583 53.16c3.652 1.146 4.743 5.617 4.743 5.617s-2.534-1.902-5.436-2.51c-6.739-1.416-3.813-4.523.693-3.107"/><path d="m46.42 53.16c-3.652 1.146-4.743 5.617-4.743 5.617s2.534-1.902 5.436-2.51c6.741-1.416 3.813-4.523-.693-3.107"/></g><path fill="#ffe1bd" d="m43.05 21.19c0-16.17-4.942-19.19-11.05-19.19-6.104 0-11.05 3.02-11.05 19.19 0 4.724-3.729 18.38-3.729 23.989 0 8.309 6.614 8.618 14.778 8.618 8.166 0 14.779-.31 14.779-8.618.001-5.613-3.726-19.266-3.726-23.989"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><ellipse cx="16.9" cy="48.6" rx="9.9" ry="9.5"/><ellipse cx="47.1" cy="48.6" rx="9.9" ry="9.5"/></g><g fill="#fed0ac"><path d="m47.1 49.4c-3.8 0-6.9 2.1-6.9 4.7 0 .6.2 1.2.5 1.8 1.7 1.4 3.9 2.3 6.4 2.3 2.4 0 4.7-.9 6.4-2.3.3-.5.5-1.1.5-1.8 0-2.6-3-4.7-6.9-4.7"/><path d="m16.9 49.4c3.8 0 6.9 2.1 6.9 4.7 0 .6-.2 1.2-.5 1.8-1.7 1.4-3.9 2.3-6.4 2.3-2.4 0-4.7-.9-6.4-2.3-.3-.5-.5-1.1-.5-1.8 0-2.6 3-4.7 6.9-4.7"/><path d="m32 53.3c-3.1 0-7-.9-12.4-2l1.1 6.1c2.9 2.8 6.9 4.6 11.3 4.6s8.4-1.8 11.3-4.6l1.1-6.1c-5.4 1.1-9.3 2-12.4 2"/></g><g fill="#ad6c3f"><path d="m17.6 53.2c3.7 1.1 4.7 5.6 4.7 5.6s-2.5-1.9-5.4-2.5c-6.7-1.4-3.8-4.6.7-3.1"/><path d="m46.4 53.2c-3.7 1.1-4.7 5.6-4.7 5.6s2.5-1.9 5.4-2.5c6.8-1.4 3.8-4.6-.7-3.1"/></g><path d="m43 21.2c0-16.2-4.9-19.2-11-19.2-6.1 0-11.1 3-11.1 19.2 0 4.7-3.7 18.4-3.7 24 0 8.3 6.6 8.6 14.8 8.6 8.2 0 14.8-.3 14.8-8.6 0-5.6-3.8-19.3-3.8-24" fill="#ffe1bd"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fc.svg
index b7a7350..e909c44 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><ellipse cx="16.852" cy="48.648" rx="9.852" ry="9.537"/><ellipse cx="47.15" cy="48.648" rx="9.852" ry="9.537"/></g><g fill="#ebbc99"><path d="m47.15 49.4c-3.81 0-6.896 2.096-6.896 4.689 0 .629.189 1.227.518 1.77 1.722 1.432 3.933 2.324 6.379 2.324 2.447 0 4.657-.893 6.38-2.324.328-.543.518-1.141.518-1.77-.001-2.593-3.091-4.689-6.899-4.689"/><path d="m16.852 49.4c3.81 0 6.898 2.096 6.898 4.689 0 .629-.189 1.227-.518 1.77-1.723 1.432-3.933 2.324-6.381 2.324-2.447 0-4.655-.893-6.38-2.324-.328-.543-.516-1.141-.516-1.77.001-2.593 3.088-4.689 6.897-4.689"/><path d="m31.998 53.33c-3.056 0-6.973-.909-12.354-1.972l1.092 6.06c2.862 2.83 6.847 4.588 11.262 4.588s8.4-1.758 11.263-4.588l1.094-6.06c-5.382 1.063-9.301 1.972-12.357 1.972"/></g><g fill="#ad6c3f"><path d="m17.583 53.16c3.651 1.146 4.743 5.617 4.743 5.617s-2.534-1.902-5.436-2.51c-6.739-1.416-3.814-4.523.693-3.107"/><path d="m46.42 53.16c-3.651 1.146-4.742 5.617-4.742 5.617s2.534-1.902 5.436-2.51c6.741-1.416 3.813-4.523-.694-3.107"/></g><path fill="#fed0ac" d="m43.05 21.19c0-16.17-4.943-19.19-11.05-19.19-6.104 0-11.05 3.02-11.05 19.19 0 4.724-3.728 18.38-3.728 23.989 0 8.309 6.613 8.618 14.777 8.618 8.166 0 14.779-.31 14.779-8.618.001-5.613-3.726-19.266-3.726-23.989"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><ellipse cx="16.9" cy="48.6" rx="9.9" ry="9.5"/><ellipse cx="47.1" cy="48.6" rx="9.9" ry="9.5"/></g><g fill="#ebbc99"><path d="m47.1 49.4c-3.8 0-6.9 2.1-6.9 4.7 0 .6.2 1.2.5 1.8 1.7 1.4 3.9 2.3 6.4 2.3 2.4 0 4.7-.9 6.4-2.3.3-.5.5-1.1.5-1.8 0-2.6-3-4.7-6.9-4.7"/><path d="m16.9 49.4c3.8 0 6.9 2.1 6.9 4.7 0 .6-.2 1.2-.5 1.8-1.7 1.4-3.9 2.3-6.4 2.3-2.4 0-4.7-.9-6.4-2.3-.3-.5-.5-1.1-.5-1.8 0-2.6 3-4.7 6.9-4.7"/><path d="m32 53.3c-3.1 0-7-.9-12.4-2l1.1 6.1c2.9 2.8 6.9 4.6 11.3 4.6s8.4-1.8 11.3-4.6l1.1-6.1c-5.4 1.1-9.3 2-12.4 2"/></g><g fill="#ad6c3f"><path d="m17.6 53.2c3.7 1.1 4.7 5.6 4.7 5.6s-2.5-1.9-5.4-2.5c-6.7-1.4-3.8-4.6.7-3.1"/><path d="m46.4 53.2c-3.7 1.1-4.7 5.6-4.7 5.6s2.5-1.9 5.4-2.5c6.8-1.4 3.8-4.6-.7-3.1"/></g><path d="m43 21.2c0-16.2-4.9-19.2-11-19.2-6.1 0-11.1 3-11.1 19.2 0 4.7-3.7 18.4-3.7 24 0 8.3 6.6 8.6 14.8 8.6 8.2 0 14.8-.3 14.8-8.6 0-5.6-3.8-19.3-3.8-24" fill="#fed0ac"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fd.svg
index 4b8f786..61fe537 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><ellipse cx="16.852" cy="48.648" rx="9.852" ry="9.537"/><ellipse cx="47.15" cy="48.648" rx="9.852" ry="9.537"/></g><g fill="#cf9364"><path d="m47.15 49.4c-3.81 0-6.896 2.096-6.896 4.689 0 .629.189 1.227.518 1.77 1.723 1.432 3.933 2.324 6.379 2.324 2.447 0 4.657-.893 6.38-2.324.328-.543.518-1.141.518-1.77-.001-2.593-3.091-4.689-6.899-4.689"/><path d="m16.852 49.4c3.81 0 6.898 2.096 6.898 4.689 0 .629-.189 1.227-.518 1.77-1.723 1.432-3.933 2.324-6.381 2.324-2.447 0-4.655-.893-6.38-2.324-.328-.543-.516-1.141-.516-1.77.001-2.593 3.088-4.689 6.897-4.689"/><path d="m31.998 53.33c-3.056 0-6.973-.909-12.354-1.972l1.092 6.06c2.862 2.83 6.847 4.588 11.262 4.588s8.4-1.758 11.263-4.588l1.094-6.06c-5.382 1.063-9.301 1.972-12.357 1.972"/></g><g fill="#935e3e"><path d="m17.583 53.16c3.651 1.146 4.743 5.617 4.743 5.617s-2.534-1.902-5.436-2.51c-6.739-1.416-3.814-4.523.693-3.107"/><path d="m46.42 53.16c-3.651 1.146-4.742 5.617-4.742 5.617s2.534-1.902 5.436-2.51c6.741-1.416 3.813-4.523-.694-3.107"/></g><path fill="#d6a57c" d="m43.05 21.19c0-16.17-4.943-19.19-11.05-19.19-6.104 0-11.05 3.02-11.05 19.19 0 4.724-3.728 18.38-3.728 23.989 0 8.309 6.613 8.618 14.777 8.618 8.166 0 14.779-.31 14.779-8.618.001-5.613-3.726-19.266-3.726-23.989"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><ellipse cx="16.9" cy="48.6" rx="9.9" ry="9.5"/><ellipse cx="47.1" cy="48.6" rx="9.9" ry="9.5"/></g><g fill="#cf9364"><path d="m47.1 49.4c-3.8 0-6.9 2.1-6.9 4.7 0 .6.2 1.2.5 1.8 1.7 1.4 3.9 2.3 6.4 2.3 2.4 0 4.7-.9 6.4-2.3.3-.5.5-1.1.5-1.8 0-2.6-3-4.7-6.9-4.7"/><path d="m16.9 49.4c3.8 0 6.9 2.1 6.9 4.7 0 .6-.2 1.2-.5 1.8-1.7 1.4-3.9 2.3-6.4 2.3-2.4 0-4.7-.9-6.4-2.3-.3-.5-.5-1.1-.5-1.8 0-2.6 3-4.7 6.9-4.7"/><path d="m32 53.3c-3.1 0-7-.9-12.4-2l1.1 6.1c2.9 2.8 6.9 4.6 11.3 4.6s8.4-1.8 11.3-4.6l1.1-6.1c-5.4 1.1-9.3 2-12.4 2"/></g><g fill="#935e3e"><path d="m17.6 53.2c3.7 1.1 4.7 5.6 4.7 5.6s-2.5-1.9-5.4-2.5c-6.7-1.4-3.8-4.6.7-3.1"/><path d="m46.4 53.2c-3.7 1.1-4.7 5.6-4.7 5.6s2.5-1.9 5.4-2.5c6.8-1.4 3.8-4.6-.7-3.1"/></g><path d="m43 21.2c0-16.2-4.9-19.2-11-19.2-6.1 0-11.1 3-11.1 19.2 0 4.7-3.7 18.4-3.7 24 0 8.3 6.6 8.6 14.8 8.6 8.2 0 14.8-.3 14.8-8.6 0-5.6-3.8-19.3-3.8-24" fill="#d6a57c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fe.svg
index 21c8b84..4b9d466 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><ellipse cx="16.852" cy="48.648" rx="9.852" ry="9.537"/><ellipse cx="47.15" cy="48.648" rx="9.852" ry="9.537"/></g><g fill="#a36c43"><path d="m47.15 49.4c-3.81 0-6.896 2.096-6.896 4.689 0 .629.189 1.227.518 1.77 1.722 1.432 3.933 2.324 6.379 2.324 2.447 0 4.657-.893 6.38-2.324.328-.543.518-1.141.518-1.77-.001-2.593-3.091-4.689-6.899-4.689"/><path d="m16.852 49.4c3.81 0 6.898 2.096 6.898 4.689 0 .629-.189 1.227-.518 1.77-1.722 1.432-3.933 2.324-6.381 2.324-2.447 0-4.655-.893-6.38-2.324-.328-.543-.516-1.141-.516-1.77.001-2.593 3.089-4.689 6.897-4.689"/><path d="m31.998 53.33c-3.056 0-6.973-.909-12.354-1.972l1.092 6.06c2.862 2.83 6.847 4.588 11.262 4.588s8.4-1.758 11.263-4.588l1.094-6.06c-5.382 1.063-9.301 1.972-12.357 1.972"/></g><g fill="#4a352a"><path d="m17.583 53.16c3.652 1.146 4.743 5.617 4.743 5.617s-2.534-1.902-5.436-2.51c-6.739-1.416-3.813-4.523.693-3.107"/><path d="m46.42 53.16c-3.652 1.146-4.743 5.617-4.743 5.617s2.534-1.902 5.436-2.51c6.741-1.416 3.813-4.523-.693-3.107"/></g><path fill="#b47d56" d="m43.05 21.19c0-16.17-4.942-19.19-11.05-19.19-6.104 0-11.05 3.02-11.05 19.19 0 4.724-3.729 18.38-3.729 23.989 0 8.309 6.614 8.618 14.778 8.618 8.166 0 14.779-.31 14.779-8.618.001-5.613-3.726-19.266-3.726-23.989"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><ellipse cx="16.9" cy="48.6" rx="9.9" ry="9.5"/><ellipse cx="47.1" cy="48.6" rx="9.9" ry="9.5"/></g><g fill="#a36c43"><path d="m47.1 49.4c-3.8 0-6.9 2.1-6.9 4.7 0 .6.2 1.2.5 1.8 1.7 1.4 3.9 2.3 6.4 2.3 2.4 0 4.7-.9 6.4-2.3.3-.5.5-1.1.5-1.8 0-2.6-3-4.7-6.9-4.7"/><path d="m16.9 49.4c3.8 0 6.9 2.1 6.9 4.7 0 .6-.2 1.2-.5 1.8-1.7 1.4-3.9 2.3-6.4 2.3-2.4 0-4.7-.9-6.4-2.3-.3-.5-.5-1.1-.5-1.8 0-2.6 3-4.7 6.9-4.7"/><path d="m32 53.3c-3.1 0-7-.9-12.4-2l1.1 6.1c2.9 2.8 6.9 4.6 11.3 4.6s8.4-1.8 11.3-4.6l1.1-6.1c-5.4 1.1-9.3 2-12.4 2"/></g><g fill="#4a352a"><path d="m17.6 53.2c3.7 1.1 4.7 5.6 4.7 5.6s-2.5-1.9-5.4-2.5c-6.7-1.4-3.8-4.6.7-3.1"/><path d="m46.4 53.2c-3.7 1.1-4.7 5.6-4.7 5.6s2.5-1.9 5.4-2.5c6.8-1.4 3.8-4.6-.7-3.1"/></g><path d="m43 21.2c0-16.2-4.9-19.2-11-19.2-6.1 0-11.1 3-11.1 19.2 0 4.7-3.7 18.4-3.7 24 0 8.3 6.6 8.6 14.8 8.6 8.2 0 14.8-.3 14.8-8.6 0-5.6-3.8-19.3-3.8-24" fill="#b47d56"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3ff.svg
index 9e11295..a1daed0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f443-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><ellipse cx="16.852" cy="48.648" rx="9.852" ry="9.537"/><ellipse cx="47.15" cy="48.648" rx="9.852" ry="9.537"/></g><g fill="#7d5847"><path d="m47.15 49.4c-3.81 0-6.896 2.096-6.896 4.689 0 .629.189 1.227.518 1.77 1.723 1.432 3.933 2.324 6.379 2.324 2.447 0 4.657-.893 6.38-2.324.328-.543.518-1.141.518-1.77-.001-2.593-3.091-4.689-6.899-4.689"/><path d="m16.852 49.4c3.81 0 6.898 2.096 6.898 4.689 0 .629-.189 1.227-.518 1.77-1.723 1.432-3.933 2.324-6.381 2.324-2.447 0-4.655-.893-6.38-2.324-.328-.543-.516-1.141-.516-1.77.001-2.593 3.088-4.689 6.897-4.689"/><path d="m31.998 53.33c-3.056 0-6.973-.909-12.354-1.972l1.092 6.06c2.862 2.83 6.847 4.588 11.262 4.588s8.4-1.758 11.263-4.588l1.094-6.06c-5.382 1.063-9.301 1.972-12.357 1.972"/></g><g fill="#47352d"><path d="m17.584 53.16c3.651 1.146 4.742 5.617 4.742 5.617s-2.534-1.902-5.436-2.51c-6.739-1.416-3.814-4.523.694-3.107"/><path d="m46.42 53.16c-3.651 1.146-4.742 5.617-4.742 5.617s2.534-1.902 5.436-2.51c6.741-1.416 3.814-4.523-.694-3.107"/></g><path fill="#8a6859" d="m43.05 21.19c0-16.17-4.943-19.19-11.05-19.19-6.104 0-11.05 3.02-11.05 19.19 0 4.724-3.728 18.38-3.728 23.989 0 8.309 6.613 8.618 14.777 8.618 8.166 0 14.779-.31 14.779-8.618.001-5.613-3.726-19.266-3.726-23.989"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><ellipse cx="16.9" cy="48.6" rx="9.9" ry="9.5"/><ellipse cx="47.1" cy="48.6" rx="9.9" ry="9.5"/></g><g fill="#7d5847"><path d="m47.1 49.4c-3.8 0-6.9 2.1-6.9 4.7 0 .6.2 1.2.5 1.8 1.7 1.4 3.9 2.3 6.4 2.3 2.4 0 4.7-.9 6.4-2.3.3-.5.5-1.1.5-1.8 0-2.6-3-4.7-6.9-4.7"/><path d="m16.9 49.4c3.8 0 6.9 2.1 6.9 4.7 0 .6-.2 1.2-.5 1.8-1.7 1.4-3.9 2.3-6.4 2.3-2.4 0-4.7-.9-6.4-2.3-.3-.5-.5-1.1-.5-1.8 0-2.6 3-4.7 6.9-4.7"/><path d="m32 53.3c-3.1 0-7-.9-12.4-2l1.1 6.1c2.9 2.8 6.9 4.6 11.3 4.6s8.4-1.8 11.3-4.6l1.1-6.1c-5.4 1.1-9.3 2-12.4 2"/></g><g fill="#47352d"><path d="m17.6 53.2c3.7 1.1 4.7 5.6 4.7 5.6s-2.5-1.9-5.4-2.5c-6.7-1.4-3.8-4.6.7-3.1"/><path d="m46.4 53.2c-3.7 1.1-4.7 5.6-4.7 5.6s2.5-1.9 5.4-2.5c6.8-1.4 3.8-4.6-.7-3.1"/></g><path d="m43 21.2c0-16.2-4.9-19.2-11-19.2-6.1 0-11.1 3-11.1 19.2 0 4.7-3.7 18.4-3.7 24 0 8.3 6.6 8.6 14.8 8.6 8.2 0 14.8-.3 14.8-8.6 0-5.6-3.8-19.3-3.8-24" fill="#8a6859"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f443.svg b/build/js/jsxc/lib/emojione/assets/svg/1f443.svg
index 6413516..6f16138 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f443.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f443.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><ellipse cx="16.852" cy="48.648" rx="9.852" ry="9.537"/><ellipse cx="47.15" cy="48.648" rx="9.852" ry="9.537"/></g><g fill="#ffc95c"><path d="m47.15 49.4c-3.81 0-6.896 2.096-6.896 4.689 0 .629.189 1.227.518 1.77 1.722 1.431 3.933 2.324 6.379 2.324 2.447 0 4.657-.894 6.38-2.324.328-.543.517-1.141.517-1.77-.001-2.593-3.09-4.689-6.898-4.689"/><path d="m16.851 49.4c3.81 0 6.898 2.096 6.898 4.689 0 .629-.189 1.227-.518 1.77-1.722 1.431-3.933 2.324-6.381 2.324-2.447 0-4.655-.894-6.379-2.324-.328-.543-.516-1.141-.516-1.77.001-2.593 3.088-4.689 6.896-4.689"/><path d="m31.998 53.32c-3.056 0-6.973-.909-12.354-1.972l1.092 6.06c2.861 2.831 6.847 4.589 11.262 4.589 4.416 0 8.401-1.758 11.263-4.589l1.094-6.06c-5.382 1.063-9.301 1.972-12.357 1.972"/></g><g fill="#ad6c3f"><path d="m17.583 53.16c3.651 1.146 4.743 5.617 4.743 5.617s-2.535-1.903-5.436-2.51c-6.739-1.416-3.814-4.523.693-3.107"/><path d="m46.42 53.16c-3.651 1.146-4.742 5.617-4.742 5.617s2.534-1.903 5.436-2.51c6.741-1.416 3.813-4.523-.694-3.107"/></g><path fill="#ffdd67" d="m43.05 21.19c0-16.16-4.943-19.19-11.05-19.19-6.104 0-11.05 3.02-11.05 19.19 0 4.725-3.728 18.381-3.728 23.99 0 8.308 6.614 8.617 14.778 8.617 8.167 0 14.78-.31 14.78-8.617-.001-5.613-3.728-19.266-3.728-23.99"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><ellipse cx="16.9" cy="48.6" rx="9.9" ry="9.5"/><ellipse cx="47.1" cy="48.6" rx="9.9" ry="9.5"/></g><g fill="#ffc95c"><path d="m47.1 49.4c-3.8 0-6.9 2.1-6.9 4.7 0 .6.2 1.2.5 1.8 1.7 1.4 3.9 2.3 6.4 2.3 2.4 0 4.7-.9 6.4-2.3.3-.5.5-1.1.5-1.8 0-2.6-3-4.7-6.9-4.7"/><path d="m16.9 49.4c3.8 0 6.9 2.1 6.9 4.7 0 .6-.2 1.2-.5 1.8-1.7 1.4-3.9 2.3-6.4 2.3-2.4 0-4.7-.9-6.4-2.3-.3-.5-.5-1.1-.5-1.8 0-2.6 3-4.7 6.9-4.7"/><path d="m32 53.3c-3.1 0-7-.9-12.4-2l1.1 6.1c2.9 2.8 6.9 4.6 11.3 4.6 4.4 0 8.4-1.8 11.3-4.6l1.1-6.1c-5.4 1.1-9.3 2-12.4 2"/></g><g fill="#ad6c3f"><path d="m17.6 53.2c3.7 1.1 4.7 5.6 4.7 5.6s-2.5-1.9-5.4-2.5c-6.7-1.4-3.8-4.6.7-3.1"/><path d="m46.4 53.2c-3.7 1.1-4.7 5.6-4.7 5.6s2.5-1.9 5.4-2.5c6.8-1.4 3.8-4.6-.7-3.1"/></g><path d="m43 21.2c0-16.2-4.9-19.2-11-19.2-6.1 0-11.1 3-11.1 19.2 0 4.7-3.7 18.4-3.7 24 0 8.3 6.6 8.6 14.8 8.6 8.2 0 14.8-.3 14.8-8.6 0-5.6-3.8-19.3-3.8-24" fill="#ffdd67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f444.svg b/build/js/jsxc/lib/emojione/assets/svg/1f444.svg
index 9b98f70..1bdb544 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f444.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f444.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 22.519c-6.312 0-30 10.183-30 10.183 5.631 6.885 3.646 16.798 30 16.798 23.688 0 23.18-8.456 30-16.799 0 0-23.688-10.182-30-10.182"/><path fill="#60452b" d="M32,20.627L5.857,31.174C12.654,39.485,20.352,36.29,32,36.29c11.609,0,19.213,3.148,26.143-5.116
- L32,20.627z"/><path fill="#fff" d="m58.47 30.959c0-1.719-11.191-9.924-26.466-9.924s-26.466 8.205-26.466 9.924h52.932"/><path fill="#ed4c5c" d="m44.38 14.871c-2.529-.767-6.226-.398-11.11 1.602-.418.154-.845.319-1.271.5-.427-.181-.854-.346-1.271-.5-4.884-2-8.58-2.368-11.11-1.602-7.421 2.204-17.621 17.83-17.621 17.83 6.272.751 14.51-8.531 30-8.531s23.728 9.282 30 8.531c0 0-10.2-15.626-17.619-17.83"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 22.5c-6.3 0-30 10.2-30 10.2 5.6 6.9 3.6 16.8 30 16.8 23.7 0 23.2-8.5 30-16.8 0 0-23.7-10.2-30-10.2" fill="#ed4c5c"/><path d="M32,20.6L5.9,31.2c6.8,8.3,14.5,5.1,26.1,5.1c11.6,0,19.2,3.1,26.1-5.1L32,20.6z" fill="#60452b"/><path d="m58.5 31c0-1.7-11.2-9.9-26.5-9.9s-26.5 8.1-26.5 9.9h53" fill="#fff"/><path d="m44.4 14.9c-2.5-.8-6.2-.4-11.1 1.6-.4.2-.8.3-1.3.5-.4-.2-.9-.3-1.3-.5-4.9-2-8.6-2.4-11.1-1.6-7.4 2.2-17.6 17.8-17.6 17.8 6.3.8 14.5-8.5 30-8.5s23.7 9.3 30 8.5c0 0-10.2-15.6-17.6-17.8" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f445.svg b/build/js/jsxc/lib/emojione/assets/svg/1f445.svg
index 42d3a39..8a5af77 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f445.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f445.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#493b30" d="m62 9.325c0 10.887-13.43 20.18-30 20.18-16.569 0-30-9.287-30-20.17 0 0 14.284 3.188 30 3.188 15.718-.001 30-3.189 30-3.189"/><path fill="#ff717f" d="m8 29.05c0-17.06.005-11.822 24-11.822 24 0 24-5.236 24 11.822 0 17.06-10.744 25.622-24 25.622-13.254 0-24-8.565-24-25.622"/><path fill="#e2596c" d="m33.5 17.231l-1.5 29.25-1.5-29.25z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 9.3c0 10.9-13.4 20.2-30 20.2-16.6 0-30-9.3-30-20.2 0 0 14.3 3.2 30 3.2 15.7 0 30-3.2 30-3.2" fill="#493b30"/><path d="m8 29.1c0-17.1 0-11.9 24-11.9 24 0 24-5.2 24 11.8 0 17.1-10.7 25.6-24 25.6-13.3.1-24-8.5-24-25.5" fill="#ff717f"/><path fill="#e2596c" d="M33.5 17.2 32 46.5 30.5 17.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fb.svg
index 6f4657d..0b774dd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m12.65 28.696c4.445.418 5.928 3.977 6.447 5.736l.24.832c0 0 .498.572 1.131 1.473.074.014.148.033.223.049 0 0 .465-7.752.113-10.305-.391-2.822-.387-15.241-.549-18.287-.189-3.583.46-6.194 4.505-6.194 4.092 0 5.342 3.172 5.092 6.193-.344 4.166-.563 18.259-.563 18.259.436-1.818 1.223-3.487 4.215-3.177 3.43.356 4.076 1.685 4.232 3.815 1.682-2.882 3.963-2.668 5.377-2.311 2.395.604 3.059 4.915 3.084 4.915.939-3.201 2.422-2.645 4.496-2.336 1.27.189 2.75 1.484 3.281 3.688.531 2.207 2.172 3.836-.289 21.05-.646 4.52-4.592 6.746-10.545 7.775-4.02.693-9.514 1.797-13.604 2.107-.369.029-.732.027-1.092.01-2.268.119-4.549-.848-5.959-2.766l-8.948-12.191c-.01-.016-.018-.031-.029-.045-.639-.584-1.045-1.406-1.152-2.43-.322-3.051-1.053-6.881-3.117-11.369-.766-1.66.333-4.783 3.411-4.49"/><g fill="#e6b796"><path d="m49.31 27.15c-3.814-.57-3.521 5.295-2.734 2.828.823-2.585 2.734-2.828 2.734-2.828"/><path d="m41.992 24.59c-5.211-.534-4.672 5.272-3.672 2.885 1.016-2.422 3.672-2.885 3.672-2.885"/><path d="m33.398 23.265c-5.211-.533-4.672 5.654-3.672 3.267 1.016-2.422 3.672-3.267 3.672-3.267"/><path d="m20.691 36.786c0 0-1.457-12.596-.748-28.638.104-2.335.113-5.938 4.266-6.129-4.662 1.473-2.496 17.384-3.518 34.767"/><path d="m9.998 29.571c-.186.721-.148 1.469.115 2.041 2.064 4.488 2.795 8.318 3.117 11.369.107 1.023.514 1.846 1.152 2.43.012.014.02.029.029.045l8.949 12.191c1.41 1.918 3.691 2.885 5.959 2.766.359.018.723.02 1.092-.01 4.09-.311 9.578-1.414 13.604-2.107 4.25-.736 7.467-2.086 9.201-4.438-1.328 3.352-4.957 5.125-10.08 6.01-4.02.693-9.514 1.797-13.604 2.107-.369.029-.732.027-1.092.01-2.268.119-4.549-.848-5.959-2.766l-8.948-12.191c-.01-.016-.018-.031-.029-.045-.639-.584-1.045-1.406-1.152-2.43-.322-3.051-1.053-6.881-3.117-11.369-.475-1.031-.231-2.623.759-3.615"/><path d="m19.463 41.03c0 0-1.313-4.309-1.84-6.338-.438-1.691-2.01-4.76-4.633-5.955 4.182.563 5.602 3.984 6.107 5.697l.24.832c0 0 .701.479 1.354 1.521 0 .001-1.382 1.96-1.228 4.243"/><path d="m29.807 27.585c.209.578.486 1.027.793 1.488.313.453.641.926.928 1.465.27.542.488 1.165.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.977-.608-1.459-.237-.492-.535-.994-.734-1.577-.207-.57-.31-1.247-.097-1.832"/><path d="m37.666 29.22c.209.578.487 1.026.794 1.486.312.455.64.928.927 1.467.27.541.488 1.164.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.665-.146-.504-.351-.976-.608-1.459-.237-.491-.534-.994-.734-1.577-.206-.571-.31-1.247-.097-1.831"/><path d="m46.25 31.618c.209.578.486 1.025.793 1.486.313.455.641.927.928 1.466.27.542.488 1.165.491 1.81.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.975-.608-1.459-.237-.49-.535-.994-.734-1.576-.206-.571-.31-1.247-.097-1.831"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 28.7c4.4.4 5.9 4 6.4 5.7l.2.8c0 0 .5.6 1.1 1.5.1 0 .1 0 .2 0 0 0 .5-7.8.1-10.3-.4-2.8-.4-15.2-.5-18.3 0-3.5.6-6.1 4.7-6.1 4.1 0 5.3 3.2 5.1 6.2-.3 4.2-.6 18.3-.6 18.3.4-1.8 1.2-3.5 4.2-3.2 3.4.4 4.1 1.7 4.2 3.8 1.7-2.9 4-2.7 5.4-2.3 2.4.6 3.1 4.9 3.1 4.9.9-3.2 2.4-2.6 4.5-2.3 1.3.2 2.8 1.5 3.3 3.7.5 2.2 2.2 3.8-.3 21-.6 4.5-4.6 6.7-10.5 7.8-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.7-1.7.4-4.8 3.4-4.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m49.3 27.1c-3.8-.6-3.5 5.3-2.7 2.8.8-2.5 2.7-2.8 2.7-2.8"/><path d="m42 24.6c-5.2-.5-4.7 5.3-3.7 2.9 1-2.4 3.7-2.9 3.7-2.9"/><path d="m33.4 23.3c-5.2-.5-4.7 5.7-3.7 3.3 1-2.5 3.7-3.3 3.7-3.3"/><path d="m20.7 36.8c0 0-1.5-12.6-.7-28.6 0-2.4.1-6 4.2-6.2-4.7 1.5-2.5 17.4-3.5 34.8"/><path d="m10 29.6c-.2.7-.1 1.5.1 2 2.1 4.5 2.8 8.3 3.1 11.4.1 1 .5 1.8 1.2 2.4l8.9 12.2c1.4 1.9 3.7 2.9 6 2.8.4 0 .7 0 1.1 0 4.1-.3 9.6-1.4 13.6-2.1 4.2-.7 7.5-2.1 9.2-4.4-1.3 3.4-5 5.1-10.1 6-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-8.9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.4-1-.2-2.6.8-3.6"/><path d="m19.5 41c0 0-1.3-4.3-1.8-6.3-.4-1.7-2-4.8-4.6-6 4.2.6 5.6 4 6.1 5.7l.2.8c0 0 .7.5 1.4 1.5-.1.1-1.5 2-1.3 4.3"/><path d="m29.8 27.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.1-1.8"/><path d="m37.7 29.2c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/><path d="m46.2 31.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fc.svg
index 150a846..8931e24 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m12.65 28.696c4.445.418 5.928 3.978 6.447 5.737l.24.831c0 0 .498.573 1.131 1.474.074.014.148.032.223.048 0 0 .465-7.751.113-10.304-.391-2.822-.387-15.241-.549-18.287-.189-3.584.46-6.195 4.505-6.195 4.092 0 5.342 3.172 5.092 6.193-.344 4.166-.563 18.259-.563 18.259.436-1.818 1.223-3.487 4.215-3.177 3.43.356 4.076 1.685 4.232 3.815 1.682-2.883 3.963-2.669 5.377-2.312 2.395.604 3.059 4.915 3.084 4.915.939-3.201 2.422-2.646 4.496-2.336 1.27.188 2.75 1.484 3.281 3.687.531 2.208 2.172 3.836-.289 21.05-.646 4.52-4.592 6.745-10.545 7.774-4.02.694-9.514 1.798-13.604 2.108-.369.029-.732.027-1.092.009-2.268.119-4.549-.847-5.959-2.765l-8.949-12.192c-.01-.015-.018-.03-.029-.045-.639-.583-1.045-1.406-1.152-2.429-.322-3.051-1.053-6.881-3.117-11.369-.765-1.657.334-4.78 3.412-4.488"/><g fill="#e0a372"><path d="m49.31 27.15c-3.814-.57-3.521 5.294-2.734 2.828.823-2.587 2.734-2.828 2.734-2.828"/><path d="m41.992 24.59c-5.211-.534-4.672 5.272-3.672 2.885 1.016-2.422 3.672-2.885 3.672-2.885"/><path d="m33.398 23.265c-5.211-.533-4.672 5.654-3.672 3.267 1.016-2.422 3.672-3.267 3.672-3.267"/><path d="m20.691 36.785c0 0-1.457-12.595-.748-28.637.104-2.335.113-5.938 4.266-6.129-4.662 1.473-2.496 17.384-3.518 34.766"/><path d="m9.998 29.572c-.186.721-.148 1.469.115 2.041 2.064 4.488 2.795 8.318 3.117 11.369.107 1.022.514 1.846 1.152 2.429.012.015.02.03.029.045l8.949 12.192c1.41 1.918 3.691 2.884 5.959 2.765.359.019.723.021 1.092-.009 4.09-.311 9.578-1.414 13.604-2.108 4.25-.735 7.467-2.085 9.201-4.437-1.328 3.352-4.957 5.125-10.08 6.01-4.02.694-9.514 1.798-13.604 2.108-.369.029-.732.027-1.092.009-2.268.119-4.549-.847-5.959-2.765l-8.949-12.192c-.01-.015-.018-.03-.029-.045-.639-.583-1.045-1.406-1.152-2.429-.322-3.051-1.053-6.881-3.117-11.369-.474-1.031-.23-2.624.76-3.615"/><path d="m19.463 41.03c0 0-1.313-4.309-1.84-6.338-.438-1.691-2.01-4.759-4.633-5.955 4.182.563 5.602 3.983 6.107 5.697l.24.831c0 0 .701.479 1.354 1.521 0 .001-1.382 1.96-1.228 4.244"/><path d="m29.807 27.585c.209.578.486 1.026.793 1.487.313.454.641.926.928 1.465.27.543.488 1.166.491 1.811.018.641-.171 1.267-.522 1.767-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.535-.994-.734-1.576-.207-.57-.31-1.246-.097-1.831"/><path d="m37.666 29.22c.209.578.487 1.027.794 1.487.312.454.64.927.927 1.466.27.542.488 1.165.491 1.81.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.977-.608-1.458-.237-.492-.534-.994-.734-1.577-.206-.57-.31-1.248-.097-1.832"/><path d="m46.25 31.618c.209.578.486 1.026.793 1.487.313.454.641.927.928 1.466.27.541.488 1.164.491 1.81.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.535-.994-.734-1.577-.206-.571-.31-1.247-.097-1.831"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 28.7c4.4.4 5.9 4 6.4 5.7l.2.8c0 0 .5.6 1.1 1.5.1 0 .1 0 .2 0 0 0 .5-7.8.1-10.3-.4-2.8-.4-15.2-.5-18.3 0-3.5.6-6.1 4.7-6.1 4.1 0 5.3 3.2 5.1 6.2-.3 4.2-.6 18.3-.6 18.3.4-1.8 1.2-3.5 4.2-3.2 3.4.4 4.1 1.7 4.2 3.8 1.7-2.9 4-2.7 5.4-2.3 2.4.6 3.1 4.9 3.1 4.9.9-3.2 2.4-2.6 4.5-2.3 1.3.2 2.8 1.5 3.3 3.7.5 2.2 2.2 3.8-.3 21-.6 4.5-4.6 6.7-10.5 7.8-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.7-1.7.4-4.8 3.4-4.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m49.3 27.1c-3.8-.6-3.5 5.3-2.7 2.8.8-2.5 2.7-2.8 2.7-2.8"/><path d="m42 24.6c-5.2-.5-4.7 5.3-3.7 2.9 1-2.4 3.7-2.9 3.7-2.9"/><path d="m33.4 23.3c-5.2-.5-4.7 5.7-3.7 3.3 1-2.5 3.7-3.3 3.7-3.3"/><path d="m20.7 36.8c0 0-1.5-12.6-.7-28.6 0-2.4.1-6 4.2-6.2-4.7 1.5-2.5 17.4-3.5 34.8"/><path d="m10 29.6c-.2.7-.1 1.5.1 2 2.1 4.5 2.8 8.3 3.1 11.4.1 1 .5 1.8 1.2 2.4l8.9 12.2c1.4 1.9 3.7 2.9 6 2.8.4 0 .7 0 1.1 0 4.1-.3 9.6-1.4 13.6-2.1 4.2-.7 7.5-2.1 9.2-4.4-1.3 3.4-5 5.1-10.1 6-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-8.9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.4-1-.2-2.6.8-3.6"/><path d="m19.5 41c0 0-1.3-4.3-1.8-6.3-.4-1.7-2-4.8-4.6-6 4.2.6 5.6 4 6.1 5.7l.2.8c0 0 .7.5 1.4 1.5-.1.1-1.5 2-1.3 4.3"/><path d="m29.8 27.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.1-1.8"/><path d="m37.7 29.2c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/><path d="m46.2 31.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fd.svg
index bd25405..1bf90d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m12.65 28.695c4.445.418 5.928 3.979 6.447 5.739l.24.83c0 0 .498.574 1.131 1.475.074.014.148.031.223.047 0 0 .465-7.752.113-10.305-.391-2.822-.387-15.241-.549-18.287-.189-3.584.46-6.194 4.505-6.194 4.092 0 5.342 3.172 5.092 6.193-.344 4.166-.563 18.259-.563 18.259.436-1.818 1.223-3.487 4.215-3.177 3.43.356 4.076 1.685 4.232 3.816 1.682-2.883 3.963-2.669 5.377-2.312 2.395.604 3.059 4.916 3.084 4.916.939-3.202 2.422-2.646 4.496-2.336 1.27.188 2.75 1.484 3.281 3.686.531 2.209 2.172 3.838-.289 21.05-.646 4.52-4.592 6.744-10.545 7.773-4.02.695-9.514 1.799-13.604 2.109-.369.029-.732.027-1.092.008-2.268.119-4.549-.846-5.959-2.764l-8.949-12.193c-.01-.014-.018-.029-.029-.045-.639-.582-1.045-1.406-1.152-2.428-.322-3.051-1.053-6.881-3.117-11.369-.765-1.66.334-4.783 3.412-4.492"/><g fill="#b58360"><path d="m49.31 27.15c-3.814-.571-3.521 5.293-2.734 2.828.823-2.588 2.734-2.828 2.734-2.828"/><path d="m41.992 24.59c-5.211-.534-4.672 5.273-3.672 2.884 1.016-2.421 3.672-2.884 3.672-2.884"/><path d="m33.398 23.265c-5.211-.533-4.672 5.655-3.672 3.267 1.016-2.423 3.672-3.267 3.672-3.267"/><path d="m20.691 36.785c0 0-1.457-12.596-.748-28.638.104-2.335.113-5.938 4.266-6.129-4.662 1.473-2.496 17.384-3.518 34.767"/><path d="m9.998 29.572c-.186.721-.148 1.469.115 2.041 2.064 4.489 2.795 8.319 3.117 11.37.107 1.021.514 1.846 1.152 2.428.012.016.02.031.029.045l8.949 12.193c1.41 1.918 3.691 2.883 5.959 2.764.359.02.723.021 1.092-.008 4.09-.311 9.578-1.414 13.604-2.109 4.25-.734 7.467-2.084 9.201-4.436-1.328 3.352-4.957 5.125-10.08 6.01-4.02.695-9.514 1.799-13.604 2.109-.369.029-.732.027-1.092.008-2.268.119-4.549-.846-5.959-2.764l-8.949-12.193c-.01-.014-.018-.029-.029-.045-.639-.582-1.045-1.406-1.152-2.428-.322-3.051-1.053-6.881-3.117-11.369-.474-1.032-.23-2.626.76-3.616"/><path d="m19.463 41.03c0 0-1.313-4.309-1.84-6.338-.438-1.692-2.01-4.76-4.633-5.956 4.182.563 5.602 3.982 6.107 5.698l.24.83c0 0 .701.48 1.354 1.521 0 .001-1.382 1.96-1.228 4.245"/><path d="m29.807 27.585c.209.578.486 1.025.793 1.486.313.455.641.927.928 1.466.27.542.488 1.165.491 1.81.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.159-.251-1.665-.146-.504-.351-.975-.608-1.459-.237-.49-.535-.994-.734-1.576-.207-.57-.31-1.246-.097-1.83"/><path d="m37.666 29.22c.209.578.487 1.027.794 1.488.312.453.64.926.927 1.465.27.543.488 1.167.491 1.811.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.534-.994-.734-1.576-.206-.571-.31-1.248-.097-1.833"/><path d="m46.25 31.617c.209.578.486 1.027.793 1.489.313.453.641.926.928 1.465.27.542.488 1.165.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.977-.608-1.459-.237-.492-.535-.994-.734-1.577-.206-.572-.31-1.248-.097-1.833"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 28.7c4.4.4 5.9 4 6.4 5.7l.2.8c0 0 .5.6 1.1 1.5.1 0 .1 0 .2 0 0 0 .5-7.8.1-10.3-.4-2.8-.4-15.2-.5-18.3 0-3.5.6-6.1 4.7-6.1 4.1 0 5.3 3.2 5.1 6.2-.3 4.2-.6 18.3-.6 18.3.4-1.8 1.2-3.5 4.2-3.2 3.4.4 4.1 1.7 4.2 3.8 1.7-2.9 4-2.7 5.4-2.3 2.4.6 3.1 4.9 3.1 4.9.9-3.2 2.4-2.6 4.5-2.3 1.3.2 2.8 1.5 3.3 3.7.5 2.2 2.2 3.8-.3 21.1-.6 4.5-4.6 6.7-10.5 7.8-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-9-12.3c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.7-1.7.4-4.8 3.4-4.5" fill="#d6a57c"/><g fill="#b58360"><path d="m49.3 27.1c-3.8-.6-3.5 5.3-2.7 2.8.8-2.5 2.7-2.8 2.7-2.8"/><path d="m42 24.6c-5.2-.5-4.7 5.3-3.7 2.9 1-2.4 3.7-2.9 3.7-2.9"/><path d="m33.4 23.3c-5.2-.5-4.7 5.7-3.7 3.3 1-2.5 3.7-3.3 3.7-3.3"/><path d="m20.7 36.8c0 0-1.5-12.6-.7-28.6 0-2.4.1-6 4.2-6.2-4.7 1.5-2.5 17.4-3.5 34.8"/><path d="m10 29.6c-.2.7-.1 1.5.1 2 2.1 4.5 2.8 8.3 3.1 11.4.1 1 .5 1.8 1.2 2.4l8.9 12.2c1.4 1.9 3.7 2.9 6 2.8.4 0 .7 0 1.1 0 4.1-.3 9.6-1.4 13.6-2.1 4.2-.7 7.5-2.1 9.2-4.4-1.3 3.4-5 5.1-10.1 6-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-8.9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.4-1-.2-2.6.8-3.6"/><path d="m19.5 41c0 0-1.3-4.3-1.8-6.3-.4-1.7-2-4.8-4.6-6 4.2.6 5.6 4 6.1 5.7l.2.8c0 0 .7.5 1.4 1.5-.1.1-1.5 2-1.3 4.3"/><path d="m29.8 27.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.1-1.8"/><path d="m37.7 29.2c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/><path d="m46.2 31.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fe.svg
index f403bbe..cfeb3e0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m12.65 28.696c4.445.418 5.928 3.978 6.447 5.737l.24.831c0 0 .498.573 1.131 1.474.074.014.148.032.223.048 0 0 .465-7.751.113-10.304-.391-2.822-.387-15.241-.549-18.287-.189-3.584.46-6.195 4.505-6.195 4.092 0 5.342 3.172 5.092 6.193-.344 4.166-.563 18.259-.563 18.259.436-1.818 1.223-3.487 4.215-3.177 3.43.356 4.076 1.685 4.232 3.815 1.682-2.883 3.963-2.669 5.377-2.312 2.395.604 3.059 4.915 3.084 4.915.939-3.201 2.422-2.646 4.496-2.336 1.27.188 2.75 1.484 3.281 3.687.531 2.208 2.172 3.836-.289 21.05-.646 4.52-4.592 6.745-10.545 7.774-4.02.694-9.514 1.798-13.604 2.108-.369.029-.732.027-1.092.009-2.268.119-4.549-.847-5.959-2.765l-8.949-12.192c-.01-.015-.018-.03-.029-.045-.639-.583-1.045-1.406-1.152-2.429-.322-3.051-1.053-6.881-3.117-11.369-.765-1.657.334-4.78 3.412-4.488"/><g fill="#935e3e"><path d="m49.31 27.15c-3.814-.57-3.521 5.294-2.734 2.828.823-2.587 2.734-2.828 2.734-2.828"/><path d="m41.992 24.59c-5.211-.534-4.672 5.272-3.672 2.885 1.016-2.422 3.672-2.885 3.672-2.885"/><path d="m33.398 23.265c-5.211-.533-4.672 5.654-3.672 3.267 1.016-2.422 3.672-3.267 3.672-3.267"/><path d="m20.691 36.785c0 0-1.457-12.595-.748-28.637.104-2.335.113-5.938 4.266-6.129-4.662 1.473-2.496 17.384-3.518 34.766"/><path d="m9.998 29.572c-.186.721-.148 1.469.115 2.041 2.064 4.488 2.795 8.318 3.117 11.369.107 1.022.514 1.846 1.152 2.429.012.015.02.03.029.045l8.949 12.192c1.41 1.918 3.691 2.884 5.959 2.765.359.019.723.021 1.092-.009 4.09-.311 9.578-1.414 13.604-2.108 4.25-.735 7.467-2.085 9.201-4.437-1.328 3.352-4.957 5.125-10.08 6.01-4.02.694-9.514 1.798-13.604 2.108-.369.029-.732.027-1.092.009-2.268.119-4.549-.847-5.959-2.765l-8.949-12.192c-.01-.015-.018-.03-.029-.045-.639-.583-1.045-1.406-1.152-2.429-.322-3.051-1.053-6.881-3.117-11.369-.474-1.031-.23-2.624.76-3.615"/><path d="m19.463 41.03c0 0-1.313-4.309-1.84-6.338-.438-1.691-2.01-4.759-4.633-5.955 4.182.563 5.602 3.983 6.107 5.697l.24.831c0 0 .701.479 1.354 1.521 0 .001-1.382 1.96-1.228 4.244"/><path d="m29.807 27.585c.209.578.486 1.026.793 1.487.313.454.641.927.928 1.466.27.541.488 1.164.491 1.81.018.642-.171 1.267-.522 1.767-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.535-.994-.734-1.577-.207-.569-.31-1.246-.097-1.83"/><path d="m37.666 29.22c.209.578.487 1.026.794 1.487.312.454.64.927.927 1.466.27.542.488 1.165.491 1.81.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.665-.146-.504-.351-.975-.608-1.458-.237-.49-.534-.994-.734-1.576-.206-.571-.31-1.247-.097-1.832"/><path d="m46.25 31.618c.209.578.486 1.026.793 1.487.313.454.641.926.928 1.465.27.543.488 1.166.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.535-.994-.734-1.576-.206-.572-.31-1.247-.097-1.832"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 28.7c4.4.4 5.9 4 6.4 5.7l.2.8c0 0 .5.6 1.1 1.5.1 0 .1 0 .2 0 0 0 .5-7.8.1-10.3-.4-2.8-.4-15.2-.5-18.3 0-3.5.6-6.1 4.7-6.1 4.1 0 5.3 3.2 5.1 6.2-.3 4.2-.6 18.3-.6 18.3.4-1.8 1.2-3.5 4.2-3.2 3.4.4 4.1 1.7 4.2 3.8 1.7-2.9 4-2.7 5.4-2.3 2.4.6 3.1 4.9 3.1 4.9.9-3.2 2.4-2.6 4.5-2.3 1.3.2 2.8 1.5 3.3 3.7.5 2.2 2.2 3.8-.3 21-.6 4.5-4.6 6.7-10.5 7.8-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.7-1.7.4-4.8 3.4-4.5" fill="#b47d56"/><g fill="#935e3e"><path d="m49.3 27.1c-3.8-.6-3.5 5.3-2.7 2.8.8-2.5 2.7-2.8 2.7-2.8"/><path d="m42 24.6c-5.2-.5-4.7 5.3-3.7 2.9 1-2.4 3.7-2.9 3.7-2.9"/><path d="m33.4 23.3c-5.2-.5-4.7 5.7-3.7 3.3 1-2.5 3.7-3.3 3.7-3.3"/><path d="m20.7 36.8c0 0-1.5-12.6-.7-28.6 0-2.4.1-6 4.2-6.2-4.7 1.5-2.5 17.4-3.5 34.8"/><path d="m10 29.6c-.2.7-.1 1.5.1 2 2.1 4.5 2.8 8.3 3.1 11.4.1 1 .5 1.8 1.2 2.4l8.9 12.2c1.4 1.9 3.7 2.9 6 2.8.4 0 .7 0 1.1 0 4.1-.3 9.6-1.4 13.6-2.1 4.2-.7 7.5-2.1 9.2-4.4-1.3 3.4-5 5.1-10.1 6-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-8.9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.4-1-.2-2.6.8-3.6"/><path d="m19.5 41c0 0-1.3-4.3-1.8-6.3-.4-1.7-2-4.8-4.6-6 4.2.6 5.6 4 6.1 5.7l.2.8c0 0 .7.5 1.4 1.5-.1.1-1.5 2-1.3 4.3"/><path d="m29.8 27.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.1-1.8"/><path d="m37.7 29.2c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/><path d="m46.2 31.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3ff.svg
index dfe7842..845edc3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f446-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m12.65 28.696c4.445.418 5.928 3.977 6.447 5.736l.24.832c0 0 .498.572 1.131 1.473.074.014.148.033.223.049 0 0 .465-7.752.113-10.305-.391-2.822-.387-15.241-.549-18.287-.189-3.583.46-6.194 4.505-6.194 4.092 0 5.342 3.172 5.092 6.193-.344 4.166-.563 18.259-.563 18.259.436-1.818 1.223-3.487 4.215-3.177 3.43.356 4.076 1.685 4.232 3.815 1.682-2.882 3.963-2.668 5.377-2.311 2.395.604 3.059 4.915 3.084 4.915.939-3.201 2.422-2.645 4.496-2.336 1.27.189 2.75 1.484 3.281 3.688.531 2.207 2.172 3.836-.289 21.05-.646 4.52-4.592 6.746-10.545 7.775-4.02.693-9.514 1.797-13.604 2.107-.369.029-.732.027-1.092.01-2.268.119-4.549-.848-5.959-2.766l-8.948-12.191c-.01-.016-.018-.031-.029-.045-.639-.584-1.045-1.406-1.152-2.43-.322-3.051-1.053-6.881-3.117-11.369-.766-1.66.333-4.783 3.411-4.49"/><g fill="#705041"><path d="m49.31 27.15c-3.814-.57-3.521 5.295-2.734 2.828.823-2.585 2.734-2.828 2.734-2.828"/><path d="m41.992 24.59c-5.211-.534-4.672 5.272-3.672 2.885 1.016-2.422 3.672-2.885 3.672-2.885"/><path d="m33.398 23.265c-5.211-.533-4.672 5.654-3.672 3.267 1.016-2.422 3.672-3.267 3.672-3.267"/><path d="m20.691 36.786c0 0-1.457-12.596-.748-28.638.104-2.335.113-5.938 4.266-6.129-4.662 1.473-2.496 17.384-3.518 34.767"/><path d="m9.998 29.571c-.186.721-.148 1.469.115 2.041 2.064 4.488 2.795 8.318 3.117 11.369.107 1.023.514 1.846 1.152 2.43.012.014.02.029.029.045l8.949 12.191c1.41 1.918 3.691 2.885 5.959 2.766.359.018.723.02 1.092-.01 4.09-.311 9.578-1.414 13.604-2.107 4.25-.736 7.467-2.086 9.201-4.438-1.328 3.352-4.957 5.125-10.08 6.01-4.02.693-9.514 1.797-13.604 2.107-.369.029-.732.027-1.092.01-2.268.119-4.549-.848-5.959-2.766l-8.948-12.191c-.01-.016-.018-.031-.029-.045-.639-.584-1.045-1.406-1.152-2.43-.322-3.051-1.053-6.881-3.117-11.369-.475-1.031-.231-2.623.759-3.615"/><path d="m19.463 41.03c0 0-1.313-4.309-1.84-6.338-.438-1.691-2.01-4.76-4.633-5.955 4.182.563 5.602 3.984 6.107 5.697l.24.832c0 0 .701.479 1.354 1.521 0 .001-1.382 1.96-1.228 4.243"/><path d="m29.807 27.585c.209.578.486 1.027.793 1.488.313.453.641.926.928 1.465.27.542.488 1.165.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.977-.608-1.459-.237-.492-.535-.994-.734-1.577-.207-.57-.31-1.247-.097-1.832"/><path d="m37.666 29.22c.209.578.487 1.026.794 1.486.312.455.64.928.927 1.467.27.541.488 1.164.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.665-.146-.504-.351-.976-.608-1.459-.237-.491-.534-.994-.734-1.577-.206-.571-.31-1.247-.097-1.831"/><path d="m46.25 31.618c.209.578.486 1.025.793 1.486.313.455.641.927.928 1.466.27.542.488 1.165.491 1.81.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.975-.608-1.459-.237-.49-.535-.994-.734-1.576-.206-.571-.31-1.247-.097-1.831"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 28.7c4.4.4 5.9 4 6.4 5.7l.2.8c0 0 .5.6 1.1 1.5.1 0 .1 0 .2 0 0 0 .5-7.8.1-10.3-.4-2.8-.4-15.2-.5-18.3 0-3.5.6-6.1 4.7-6.1 4.1 0 5.3 3.2 5.1 6.2-.3 4.2-.6 18.3-.6 18.3.4-1.8 1.2-3.5 4.2-3.2 3.4.4 4.1 1.7 4.2 3.8 1.7-2.9 4-2.7 5.4-2.3 2.4.6 3.1 4.9 3.1 4.9.9-3.2 2.4-2.6 4.5-2.3 1.3.2 2.8 1.5 3.3 3.7.5 2.2 2.2 3.8-.3 21-.6 4.5-4.6 6.7-10.5 7.8-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.7-1.7.4-4.8 3.4-4.5" fill="#8a6859"/><g fill="#705041"><path d="m49.3 27.1c-3.8-.6-3.5 5.3-2.7 2.8.8-2.5 2.7-2.8 2.7-2.8"/><path d="m42 24.6c-5.2-.5-4.7 5.3-3.7 2.9 1-2.4 3.7-2.9 3.7-2.9"/><path d="m33.4 23.3c-5.2-.5-4.7 5.7-3.7 3.3 1-2.5 3.7-3.3 3.7-3.3"/><path d="m20.7 36.8c0 0-1.5-12.6-.7-28.6 0-2.4.1-6 4.2-6.2-4.7 1.5-2.5 17.4-3.5 34.8"/><path d="m10 29.6c-.2.7-.1 1.5.1 2 2.1 4.5 2.8 8.3 3.1 11.4.1 1 .5 1.8 1.2 2.4l8.9 12.2c1.4 1.9 3.7 2.9 6 2.8.4 0 .7 0 1.1 0 4.1-.3 9.6-1.4 13.6-2.1 4.2-.7 7.5-2.1 9.2-4.4-1.3 3.4-5 5.1-10.1 6-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-8.9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.4-1-.2-2.6.8-3.6"/><path d="m19.5 41c0 0-1.3-4.3-1.8-6.3-.4-1.7-2-4.8-4.6-6 4.2.6 5.6 4 6.1 5.7l.2.8c0 0 .7.5 1.4 1.5-.1.1-1.5 2-1.3 4.3"/><path d="m29.8 27.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.1-1.8"/><path d="m37.7 29.2c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/><path d="m46.2 31.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f446.svg b/build/js/jsxc/lib/emojione/assets/svg/1f446.svg
index 1f8d39f..fc4d2b1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f446.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f446.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m12.647 28.695c4.445.418 5.928 3.978 6.447 5.737l.24.831c0 0 .498.573 1.131 1.474.074.014.148.032.223.048 0 0 .465-7.751.113-10.304-.391-2.822-.387-15.241-.549-18.287-.189-3.584.459-6.194 4.504-6.194 4.092 0 5.342 3.172 5.092 6.193-.344 4.166-.563 18.259-.563 18.259.436-1.818 1.223-3.487 4.215-3.177 3.43.356 4.076 1.685 4.232 3.815 1.682-2.883 3.963-2.669 5.377-2.312 2.395.604 3.059 4.915 3.084 4.915.939-3.201 2.422-2.646 4.496-2.336 1.27.188 2.75 1.484 3.281 3.687.531 2.208 2.172 3.836-.289 21.05-.646 4.52-4.592 6.745-10.545 7.774-4.02.694-9.514 1.798-13.604 2.108-.369.029-.732.027-1.092.009-2.268.119-4.549-.847-5.959-2.765l-8.949-12.192c-.01-.015-.018-.03-.029-.045-.639-.583-1.045-1.406-1.152-2.429-.322-3.051-1.053-6.881-3.117-11.369-.765-1.658.335-4.781 3.413-4.489"/><g fill="#eba352"><path d="m49.31 27.15c-3.814-.57-3.521 5.294-2.734 2.828.823-2.587 2.734-2.828 2.734-2.828"/><path d="m41.989 24.589c-5.211-.534-4.672 5.272-3.672 2.885 1.016-2.422 3.672-2.885 3.672-2.885"/><path d="m33.396 23.264c-5.211-.533-4.672 5.654-3.672 3.267 1.015-2.422 3.672-3.267 3.672-3.267"/><path d="m20.688 36.784c0 0-1.457-12.595-.748-28.637.104-2.335.113-5.938 4.266-6.129-4.663 1.473-2.497 17.384-3.518 34.766"/><path d="m9.995 29.571c-.186.721-.148 1.469.115 2.041 2.064 4.488 2.795 8.318 3.117 11.369.107 1.022.514 1.846 1.152 2.429.012.015.02.03.029.045l8.949 12.192c1.41 1.918 3.691 2.884 5.959 2.765.359.019.723.021 1.092-.009 4.09-.311 9.579-1.414 13.604-2.108 4.25-.735 7.467-2.085 9.201-4.437-1.328 3.352-4.957 5.125-10.08 6.01-4.02.694-9.514 1.798-13.604 2.108-.369.029-.732.027-1.092.009-2.268.119-4.549-.847-5.959-2.765l-8.949-12.192c-.01-.015-.018-.03-.029-.045-.639-.583-1.045-1.406-1.152-2.429-.322-3.051-1.053-6.881-3.117-11.369-.475-1.031-.231-2.624.76-3.615"/><path d="m19.459 41.03c0 0-1.313-4.309-1.84-6.338-.438-1.691-2.01-4.759-4.633-5.955 4.182.563 5.602 3.983 6.107 5.697l.24.831c0 0 .701.479 1.354 1.521.001.001-1.382 1.96-1.228 4.244"/><path d="m29.803 27.584c.209.578.486 1.026.793 1.487.313.454.641.926.928 1.465.27.542.488 1.165.491 1.81.018.641-.171 1.267-.522 1.767-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.535-.994-.734-1.577-.206-.568-.31-1.244-.097-1.829"/><path d="m37.663 29.22c.209.578.487 1.027.794 1.487.312.454.64.927.927 1.466.27.542.488 1.165.491 1.81.018.642-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.665-.146-.503-.351-.975-.608-1.458-.237-.491-.534-.994-.734-1.577-.206-.57-.31-1.246-.097-1.831"/><path d="m46.24 31.617c.209.578.486 1.026.793 1.487.313.454.641.926.928 1.465.27.543.488 1.166.491 1.811.018.641-.171 1.268-.522 1.768-.05-.613-.105-1.158-.251-1.664-.146-.504-.351-.976-.608-1.459-.237-.491-.535-.994-.734-1.576-.206-.572-.31-1.248-.097-1.832"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.6 28.7c4.4.4 5.9 4 6.4 5.7l.2.8c0 0 .5.6 1.1 1.5.1 0 .1 0 .2 0 0 0 .5-7.8.1-10.3-.4-2.8-.4-15.2-.5-18.3 0-3.5.6-6.1 4.7-6.1 4.1 0 5.3 3.2 5.1 6.2-.3 4.2-.6 18.3-.6 18.3.4-1.8 1.2-3.5 4.2-3.2 3.4.4 4.1 1.7 4.2 3.8 1.7-2.9 4-2.7 5.4-2.3 2.4.6 3.1 4.9 3.1 4.9.9-3.2 2.4-2.6 4.5-2.3 1.3.2 2.8 1.5 3.3 3.7.5 2.2 2.2 3.8-.3 21-.6 4.5-4.6 6.7-10.5 7.8-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.7-1.7.4-4.8 3.4-4.5" fill="#ffdd67"/><g fill="#eba352"><path d="m49.3 27.1c-3.8-.6-3.5 5.3-2.7 2.8.8-2.5 2.7-2.8 2.7-2.8"/><path d="m42 24.6c-5.2-.5-4.7 5.3-3.7 2.9 1-2.4 3.7-2.9 3.7-2.9"/><path d="m33.4 23.3c-5.2-.5-4.7 5.7-3.7 3.3 1-2.5 3.7-3.3 3.7-3.3"/><path d="m20.7 36.8c0 0-1.5-12.6-.7-28.6 0-2.4.1-6 4.2-6.2-4.7 1.5-2.5 17.4-3.5 34.8"/><path d="m10 29.6c-.2.7-.1 1.5.1 2 2.1 4.5 2.8 8.3 3.1 11.4.1 1 .5 1.8 1.2 2.4l8.9 12.2c1.4 1.9 3.7 2.9 6 2.8.4 0 .7 0 1.1 0 4.1-.3 9.6-1.4 13.6-2.1 4.2-.7 7.5-2.1 9.2-4.4-1.3 3.4-5 5.1-10.1 6-4 .7-9.5 1.8-13.6 2.1-.4 0-.7 0-1.1 0-2.3.1-4.5-.8-6-2.8l-8.9-12.2c0 0 0 0 0 0-.6-.6-1-1.4-1.2-2.4-.3-3.1-1.1-6.9-3.1-11.4-.4-1-.2-2.6.8-3.6"/><path d="m19.5 41c0 0-1.3-4.3-1.8-6.3-.4-1.7-2-4.8-4.6-6 4.2.6 5.6 4 6.1 5.7l.2.8c0 0 .7.5 1.4 1.5-.1.1-1.5 2-1.3 4.3"/><path d="m29.8 27.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.6-.3-1.2-.1-1.8"/><path d="m37.7 29.2c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/><path d="m46.2 31.6c.2.6.5 1 .8 1.5.3.5.6.9.9 1.5.3.5.5 1.2.5 1.8 0 .6-.2 1.3-.5 1.8 0-.6-.1-1.2-.3-1.7-.1-.5-.4-1-.6-1.5-.2-.5-.5-1-.7-1.6-.2-.5-.3-1.2-.1-1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fb.svg
index 259e5fe..b6d347e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m51.36 35.3c-4.445-.418-5.93-3.977-6.449-5.736l-.238-.832c0 0-.5-.572-1.131-1.473-.076-.014-.148-.033-.225-.049 0 0-.465 7.752-.111 10.305.389 2.822.387 15.242.547 18.287.191 3.584-.457 6.193-4.502 6.193-4.094 0-5.344-3.172-5.094-6.193.346-4.166.564-18.258.564-18.258-.438 1.818-1.225 3.486-4.217 3.176-3.428-.355-4.076-1.684-4.232-3.814-1.682 2.883-3.961 2.668-5.377 2.311-2.393-.604-3.059-4.914-3.082-4.914-.939 3.201-2.422 2.645-4.498 2.336-1.268-.189-2.748-1.484-3.279-3.688-.534-2.208-2.174-3.837.287-21.05.646-4.52 4.592-6.745 10.547-7.774 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.37.764 1.659-.335 4.782-3.412 4.489"/><g fill="#e6b796"><path d="m14.696 36.852c3.816.57 3.523-5.295 2.736-2.828-.826 2.585-2.736 2.828-2.736 2.828"/><path d="m22.02 39.41c5.209.535 4.67-5.271 3.67-2.885-1.014 2.422-3.67 2.885-3.67 2.885"/><path d="m30.61 40.736c5.209.533 4.67-5.654 3.67-3.268-1.013 2.423-3.67 3.268-3.67 3.268"/><path d="m43.31 27.21c0 0 1.459 12.598.75 28.639-.104 2.336-.115 5.938-4.268 6.129 4.665-1.473 2.497-17.383 3.518-34.768"/><path d="m54.01 34.43c.184-.721.148-1.469-.115-2.041-2.066-4.488-2.795-8.319-3.117-11.37-.107-1.022-.516-1.846-1.152-2.429-.012-.015-.02-.03-.031-.045l-8.95-12.192c-1.408-1.918-3.689-2.884-5.959-2.765-.357-.019-.723-.021-1.092.009-4.09.311-9.579 1.414-13.602 2.108-4.25.735-7.469 2.085-9.201 4.437 1.328-3.352 4.957-5.125 10.08-6.01 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.37.475 1.031.229 2.623-.759 3.615"/><path d="m44.546 22.972c0 0 1.313 4.309 1.838 6.338.439 1.691 2.02 4.76 4.633 5.955-4.18-.563-5.6-3.984-6.107-5.697l-.238-.832c0 0-.703-.479-1.355-1.521-.002 0 1.383-1.959 1.229-4.243"/><path d="m34.2 36.416c-.209-.578-.487-1.026-.794-1.486-.312-.455-.64-.928-.927-1.467-.27-.541-.487-1.165-.49-1.811-.018-.641.171-1.268.523-1.768.05.613.104 1.158.25 1.665.146.504.35.976.608 1.459.237.491.535.994.734 1.577.206.57.309 1.247.096 1.831"/><path d="m26.34 34.777c-.209-.578-.486-1.025-.793-1.486-.313-.455-.641-.927-.927-1.466-.271-.542-.488-1.165-.491-1.811-.018-.642.171-1.268.523-1.767.05.613.104 1.158.25 1.664.146.504.351.975.607 1.459.238.49.535.994.734 1.576.207.572.31 1.247.097 1.831"/><path d="m17.76 32.385c-.209-.578-.487-1.027-.794-1.488-.312-.453-.64-.926-.927-1.465-.27-.543-.487-1.166-.49-1.811-.018-.642.171-1.269.523-1.768.05.613.104 1.158.25 1.665.146.504.35.976.607 1.459.237.491.535.994.734 1.577.207.569.31 1.246.097 1.831"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.4 35.3c-4.4-.4-5.9-4-6.4-5.7l-.2-.8c0 0-.5-.6-1.1-1.5-.1 0-.1 0-.2 0 0 0-.5 7.8-.1 10.3.4 2.8.4 15.2.5 18.3.2 3.6-.5 6.2-4.5 6.2-4.1 0-5.3-3.2-5.1-6.2.3-4.2.6-18.3.6-18.3-.4 1.8-1.2 3.5-4.2 3.2-3.4-.4-4.1-1.7-4.2-3.8-1.7 2.9-4 2.7-5.4 2.3-2.4-.6-3.1-4.9-3.1-4.9-.9 3.2-2.4 2.6-4.5 2.3-1.5-.2-2.9-1.5-3.5-3.7-.5-2.2-2.2-3.8.3-21 .6-4.5 4.6-6.7 10.5-7.8 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l9 12.1c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.7 1.7-.4 4.8-3.4 4.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m14.7 36.9c3.8.6 3.5-5.3 2.7-2.8-.8 2.5-2.7 2.8-2.7 2.8"/><path d="m22 39.4c5.2.5 4.7-5.3 3.7-2.9-1 2.4-3.7 2.9-3.7 2.9"/><path d="m30.6 40.7c5.2.5 4.7-5.7 3.7-3.3-1 2.5-3.7 3.3-3.7 3.3"/><path d="m43.3 27.2c0 0 1.5 12.6.8 28.6-.1 2.3-.1 5.9-4.3 6.1 4.7-1.4 2.5-17.3 3.5-34.7"/><path d="m54 34.4c.2-.7.1-1.5-.1-2-2.1-4.5-2.8-8.3-3.1-11.4-.1-1-.5-1.8-1.2-2.4l-9-12.2c-1.4-1.9-3.7-2.9-6-2.8-.4 0-.7 0-1.1 0-4 .3-9.5 1.4-13.5 2.1-4.2.7-7.5 2.1-9.2 4.4 1.3-3.4 5-5.1 10.1-6 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l8.9 12.2c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.4 1 .2 2.6-.8 3.6"/><path d="m44.5 23c0 0 1.3 4.3 1.8 6.3.4 1.7 2 4.8 4.6 6-4.2-.6-5.6-4-6.1-5.7l-.2-.8c0 0-.7-.5-1.4-1.5.1-.1 1.5-2 1.3-4.3"/><path d="m34.2 36.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.3 1 .6 1.5.2.5.5 1 .7 1.6.3.6.4 1.2.2 1.8"/><path d="m26.3 34.8c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.4.5.5 1.2.2 1.8"/><path d="m17.8 32.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.3.5.4 1.2.2 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fc.svg
index e598fa2..cd98682 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m51.36 35.3c-4.445-.418-5.93-3.978-6.449-5.737l-.238-.831c0 0-.5-.573-1.131-1.474-.076-.014-.148-.032-.225-.048 0 0-.465 7.752-.111 10.305.389 2.822.387 15.241.547 18.287.191 3.583-.457 6.193-4.502 6.193-4.094 0-5.344-3.172-5.094-6.193.346-4.166.564-18.259.564-18.259-.438 1.818-1.225 3.487-4.217 3.177-3.428-.356-4.076-1.685-4.232-3.815-1.682 2.883-3.961 2.669-5.377 2.312-2.393-.604-3.059-4.915-3.082-4.915-.939 3.201-2.422 2.646-4.498 2.336-1.268-.188-2.748-1.484-3.279-3.687-.533-2.208-2.174-3.837.287-21.05.646-4.52 4.592-6.745 10.547-7.774 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.369.764 1.659-.335 4.782-3.412 4.49"/><g fill="#e0a372"><path d="m14.696 36.851c3.816.57 3.523-5.294 2.736-2.828-.826 2.586-2.736 2.828-2.736 2.828"/><path d="m22.02 39.41c5.209.534 4.67-5.272 3.67-2.885-1.014 2.422-3.67 2.885-3.67 2.885"/><path d="m30.61 40.735c5.209.533 4.67-5.654 3.67-3.267-1.013 2.423-3.67 3.267-3.67 3.267"/><path d="m43.31 27.21c0 0 1.459 12.597.75 28.639-.104 2.335-.115 5.938-4.268 6.129 4.665-1.473 2.497-17.384 3.518-34.768"/><path d="m54.01 34.429c.184-.721.148-1.469-.115-2.041-2.066-4.488-2.795-8.318-3.117-11.369-.107-1.022-.516-1.846-1.152-2.429-.012-.015-.02-.03-.031-.045l-8.95-12.192c-1.408-1.918-3.689-2.884-5.959-2.765-.357-.019-.723-.021-1.092.009-4.09.311-9.578 1.414-13.602 2.108-4.25.735-7.469 2.085-9.201 4.437 1.328-3.352 4.957-5.125 10.08-6.01 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.369.475 1.031.229 2.624-.759 3.615"/><path d="m44.546 22.972c0 0 1.313 4.309 1.838 6.338.439 1.691 2.02 4.76 4.633 5.955-4.18-.563-5.6-3.983-6.107-5.697l-.238-.831c0 0-.703-.479-1.355-1.521-.002-.001 1.383-1.96 1.229-4.244"/><path d="m34.2 36.416c-.209-.578-.487-1.026-.794-1.487-.312-.454-.64-.927-.927-1.466-.27-.542-.487-1.165-.49-1.811-.018-.642.171-1.269.523-1.768.05.613.104 1.158.25 1.665.146.504.35.975.607 1.459.237.49.535.994.734 1.576.207.571.31 1.247.097 1.832"/><path d="m26.341 34.777c-.209-.578-.486-1.026-.793-1.487-.313-.454-.641-.926-.927-1.465-.271-.543-.488-1.166-.491-1.811-.018-.642.171-1.268.523-1.768.05.613.104 1.158.25 1.664.146.504.351.976.607 1.459.238.491.535.994.734 1.576.206.572.31 1.247.097 1.832"/><path d="m17.761 32.384c-.209-.578-.487-1.027-.794-1.487-.312-.454-.64-.927-.927-1.466-.27-.542-.487-1.166-.49-1.811-.018-.642.171-1.268.523-1.768.05.613.104 1.158.25 1.664.146.504.35.977.607 1.459.237.492.535.994.734 1.578.206.569.31 1.247.097 1.831"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.4 35.3c-4.4-.4-5.9-4-6.4-5.7l-.2-.8c0 0-.5-.6-1.1-1.5-.1 0-.1 0-.2 0 0 0-.5 7.8-.1 10.3.4 2.8.4 15.2.5 18.3.2 3.6-.5 6.2-4.5 6.2-4.1 0-5.3-3.2-5.1-6.2.3-4.2.6-18.3.6-18.3-.4 1.8-1.2 3.5-4.2 3.2-3.4-.4-4.1-1.7-4.2-3.8-1.7 2.9-4 2.7-5.4 2.3-2.4-.6-3.1-4.9-3.1-4.9-.9 3.2-2.4 2.6-4.5 2.3-1.5-.2-2.9-1.5-3.5-3.7-.5-2.2-2.2-3.8.3-21 .6-4.5 4.6-6.7 10.5-7.8 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l9 12.1c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.7 1.7-.4 4.8-3.4 4.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m14.7 36.9c3.8.6 3.5-5.3 2.7-2.8-.8 2.5-2.7 2.8-2.7 2.8"/><path d="m22 39.4c5.2.5 4.7-5.3 3.7-2.9-1 2.4-3.7 2.9-3.7 2.9"/><path d="m30.6 40.7c5.2.5 4.7-5.7 3.7-3.3-1 2.5-3.7 3.3-3.7 3.3"/><path d="m43.3 27.2c0 0 1.5 12.6.8 28.6-.1 2.3-.1 5.9-4.3 6.1 4.7-1.4 2.5-17.3 3.5-34.7"/><path d="m54 34.4c.2-.7.1-1.5-.1-2-2.1-4.5-2.8-8.3-3.1-11.4-.1-1-.5-1.8-1.2-2.4l-9-12.2c-1.4-1.9-3.7-2.9-6-2.8-.4 0-.7 0-1.1 0-4 .3-9.5 1.4-13.5 2.1-4.2.7-7.5 2.1-9.2 4.4 1.3-3.4 5-5.1 10.1-6 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l8.9 12.2c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.4 1 .2 2.6-.8 3.6"/><path d="m44.5 23c0 0 1.3 4.3 1.8 6.3.4 1.7 2 4.8 4.6 6-4.2-.6-5.6-4-6.1-5.7l-.2-.8c0 0-.7-.5-1.4-1.5.1-.1 1.5-2 1.3-4.3"/><path d="m34.2 36.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.3 1 .6 1.5.2.5.5 1 .7 1.6.3.6.4 1.2.2 1.8"/><path d="m26.3 34.8c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.4.5.5 1.2.2 1.8"/><path d="m17.8 32.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.3.5.4 1.2.2 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fd.svg
index e5f7af4..a63fe57 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m51.36 35.3c-4.445-.418-5.93-3.979-6.449-5.738l-.238-.83c0 0-.5-.574-1.131-1.475-.076-.014-.148-.031-.225-.047 0 0-.465 7.752-.111 10.305.389 2.822.387 15.24.547 18.287.191 3.582-.457 6.193-4.502 6.193-4.094 0-5.344-3.172-5.094-6.193.346-4.166.564-18.26.564-18.26-.438 1.818-1.225 3.488-4.217 3.178-3.428-.357-4.076-1.686-4.232-3.816-1.682 2.883-3.961 2.67-5.377 2.313-2.393-.605-3.059-4.916-3.082-4.916-.939 3.201-2.422 2.646-4.498 2.336-1.268-.188-2.748-1.484-3.279-3.686-.533-2.209-2.174-3.838.287-21.05.646-4.52 4.592-6.745 10.547-7.774 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.368.764 1.659-.335 4.782-3.412 4.491"/><g fill="#b58360"><path d="m14.696 36.85c3.816.57 3.523-5.293 2.736-2.828-.826 2.587-2.736 2.828-2.736 2.828"/><path d="m22.02 39.41c5.209.533 4.67-5.273 3.67-2.885-1.014 2.422-3.67 2.885-3.67 2.885"/><path d="m30.61 40.734c5.209.533 4.67-5.654 3.67-3.266-1.013 2.423-3.67 3.266-3.67 3.266"/><path d="m43.31 27.21c0 0 1.459 12.596.75 28.639-.104 2.334-.115 5.938-4.268 6.129 4.665-1.473 2.497-17.385 3.518-34.768"/><path d="m54.01 34.428c.184-.721.148-1.469-.115-2.041-2.066-4.488-2.795-8.317-3.117-11.368-.107-1.022-.516-1.846-1.152-2.429-.012-.015-.02-.03-.031-.045l-8.95-12.192c-1.408-1.918-3.689-2.884-5.959-2.765-.357-.019-.723-.021-1.092.009-4.09.311-9.578 1.414-13.602 2.108-4.25.735-7.469 2.085-9.201 4.437 1.328-3.352 4.957-5.125 10.08-6.01 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.368.475 1.031.229 2.625-.759 3.615"/><path d="m44.546 22.972c0 0 1.313 4.308 1.838 6.337.439 1.691 2.02 4.76 4.633 5.955-4.18-.563-5.6-3.982-6.107-5.697l-.238-.83c0 0-.703-.48-1.355-1.521-.002-.001 1.383-1.96 1.229-4.244"/><path d="m34.2 36.416c-.209-.578-.487-1.027-.794-1.488-.312-.453-.64-.926-.927-1.465-.27-.543-.487-1.166-.49-1.811-.018-.643.171-1.269.523-1.768.05.613.104 1.158.25 1.664.146.504.35.976.607 1.459.237.491.535.994.734 1.577.207.57.31 1.247.097 1.832"/><path d="m26.341 34.777c-.209-.578-.486-1.027-.793-1.488-.313-.453-.641-.926-.927-1.465-.271-.542-.488-1.165-.491-1.811-.018-.641.171-1.268.523-1.768.05.613.104 1.158.25 1.664.146.504.351.977.607 1.459.238.492.535.994.734 1.577.206.571.31 1.247.097 1.832"/><path d="m17.761 32.383c-.209-.578-.487-1.026-.794-1.486-.312-.455-.64-.928-.927-1.467-.27-.541-.487-1.165-.49-1.811-.018-.641.171-1.268.523-1.767.05.613.104 1.158.25 1.664.146.504.35.976.607 1.459.237.491.535.994.734 1.577.206.57.31 1.247.097 1.831"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.4 35.3c-4.4-.4-5.9-4-6.4-5.7l-.2-.8c0 0-.5-.6-1.1-1.5-.1 0-.1 0-.2 0 0 0-.5 7.8-.1 10.3.4 2.8.4 15.2.5 18.3.2 3.6-.5 6.2-4.5 6.2-4.1 0-5.3-3.2-5.1-6.2.3-4.2.6-18.3.6-18.3-.4 1.8-1.2 3.5-4.2 3.2-3.4-.4-4.1-1.7-4.2-3.8-1.7 2.9-4 2.7-5.4 2.3-2.4-.6-3.1-4.9-3.1-4.9-.9 3.2-2.4 2.6-4.5 2.3-1.5-.2-2.9-1.5-3.5-3.7-.5-2.2-2.2-3.8.3-21 .6-4.5 4.6-6.7 10.5-7.8 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l9 12.1c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.7 1.7-.4 4.8-3.4 4.5" fill="#d6a57c"/><g fill="#b58360"><path d="m14.7 36.8c3.8.6 3.5-5.3 2.7-2.8-.8 2.6-2.7 2.8-2.7 2.8"/><path d="m22 39.4c5.2.5 4.7-5.3 3.7-2.9-1 2.4-3.7 2.9-3.7 2.9"/><path d="m30.6 40.7c5.2.5 4.7-5.7 3.7-3.3-1 2.5-3.7 3.3-3.7 3.3"/><path d="m43.3 27.2c0 0 1.5 12.6.8 28.6-.1 2.3-.1 5.9-4.3 6.1 4.7-1.4 2.5-17.3 3.5-34.7"/><path d="m54 34.4c.2-.7.1-1.5-.1-2-2.1-4.5-2.8-8.3-3.1-11.4-.1-1-.5-1.8-1.2-2.4l-9-12.2c-1.4-1.9-3.7-2.9-6-2.8-.4 0-.7 0-1.1 0-4 .3-9.5 1.4-13.5 2.1-4.2.7-7.5 2.1-9.2 4.4 1.3-3.4 5-5.1 10.1-6 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l8.9 12.2c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.4 1 .2 2.6-.8 3.6"/><path d="m44.5 23c0 0 1.3 4.3 1.8 6.3.4 1.7 2 4.8 4.6 6-4.2-.6-5.6-4-6.1-5.7l-.2-.8c0 0-.7-.5-1.4-1.5.1-.1 1.5-2 1.3-4.3"/><path d="m34.2 36.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.3 1 .6 1.5.2.5.5 1 .7 1.6.3.6.4 1.2.2 1.8"/><path d="m26.3 34.8c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.4.5.5 1.2.2 1.8"/><path d="m17.8 32.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.3.5.4 1.2.2 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fe.svg
index 79e6bd9..cdb5c4a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m51.36 35.3c-4.445-.418-5.93-3.978-6.449-5.737l-.238-.831c0 0-.5-.573-1.131-1.474-.076-.014-.148-.032-.225-.048 0 0-.465 7.752-.111 10.305.389 2.822.387 15.241.547 18.287.191 3.583-.457 6.193-4.502 6.193-4.094 0-5.344-3.172-5.094-6.193.346-4.166.564-18.259.564-18.259-.438 1.818-1.225 3.487-4.217 3.177-3.428-.356-4.076-1.685-4.232-3.815-1.682 2.883-3.961 2.669-5.377 2.312-2.393-.604-3.059-4.915-3.082-4.915-.939 3.201-2.422 2.646-4.498 2.336-1.268-.188-2.748-1.484-3.279-3.687-.533-2.208-2.174-3.837.287-21.05.646-4.52 4.592-6.745 10.547-7.774 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.369.764 1.659-.335 4.782-3.412 4.49"/><g fill="#935e3e"><path d="m14.696 36.851c3.816.57 3.523-5.294 2.736-2.828-.826 2.586-2.736 2.828-2.736 2.828"/><path d="m22.02 39.41c5.209.534 4.67-5.272 3.67-2.885-1.014 2.422-3.67 2.885-3.67 2.885"/><path d="m30.61 40.735c5.209.533 4.67-5.654 3.67-3.267-1.013 2.423-3.67 3.267-3.67 3.267"/><path d="m43.31 27.21c0 0 1.459 12.597.75 28.639-.104 2.335-.115 5.938-4.268 6.129 4.665-1.473 2.497-17.384 3.518-34.768"/><path d="m54.01 34.429c.184-.721.148-1.469-.115-2.041-2.066-4.488-2.795-8.318-3.117-11.369-.107-1.022-.516-1.846-1.152-2.429-.012-.015-.02-.03-.031-.045l-8.95-12.192c-1.408-1.918-3.689-2.884-5.959-2.765-.357-.019-.723-.021-1.092.009-4.09.311-9.578 1.414-13.602 2.108-4.25.735-7.469 2.085-9.201 4.437 1.328-3.352 4.957-5.125 10.08-6.01 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.369.475 1.031.229 2.624-.759 3.615"/><path d="m44.546 22.972c0 0 1.313 4.309 1.838 6.338.439 1.691 2.02 4.76 4.633 5.955-4.18-.563-5.6-3.983-6.107-5.697l-.238-.831c0 0-.703-.479-1.355-1.521-.002-.001 1.383-1.96 1.229-4.244"/><path d="m34.2 36.416c-.209-.578-.487-1.027-.794-1.487-.312-.454-.64-.927-.927-1.466-.27-.542-.487-1.166-.49-1.811-.018-.642.171-1.268.523-1.768.05.613.104 1.158.25 1.664.146.504.35.977.607 1.459.237.492.535.994.734 1.578.207.569.31 1.247.097 1.831"/><path d="m26.341 34.777c-.209-.578-.486-1.026-.793-1.487-.313-.454-.641-.927-.927-1.466-.271-.541-.488-1.164-.491-1.811-.018-.641.171-1.268.523-1.767.05.613.104 1.158.25 1.664.146.504.351.976.607 1.459.238.491.535.994.734 1.577.206.571.31 1.247.097 1.831"/><path d="m17.761 32.384c-.209-.578-.487-1.026-.794-1.487-.312-.454-.64-.927-.927-1.466-.27-.542-.487-1.165-.49-1.811-.018-.642.171-1.268.523-1.768.05.613.104 1.158.25 1.665.146.504.35.975.607 1.459.237.49.535.994.734 1.576.206.571.31 1.247.097 1.832"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.4 35.3c-4.4-.4-5.9-4-6.4-5.7l-.2-.8c0 0-.5-.6-1.1-1.5-.1 0-.1 0-.2 0 0 0-.5 7.8-.1 10.3.4 2.8.4 15.2.5 18.3.2 3.6-.5 6.2-4.5 6.2-4.1 0-5.3-3.2-5.1-6.2.3-4.2.6-18.3.6-18.3-.4 1.8-1.2 3.5-4.2 3.2-3.4-.4-4.1-1.7-4.2-3.8-1.7 2.9-4 2.7-5.4 2.3-2.4-.6-3.1-4.9-3.1-4.9-.9 3.2-2.4 2.6-4.5 2.3-1.5-.2-2.9-1.5-3.5-3.7-.5-2.2-2.2-3.8.3-21 .6-4.5 4.6-6.7 10.5-7.8 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l9 12.1c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.7 1.7-.4 4.8-3.4 4.5" fill="#b47d56"/><g fill="#935e3e"><path d="m14.7 36.9c3.8.6 3.5-5.3 2.7-2.8-.8 2.5-2.7 2.8-2.7 2.8"/><path d="m22 39.4c5.2.5 4.7-5.3 3.7-2.9-1 2.4-3.7 2.9-3.7 2.9"/><path d="m30.6 40.7c5.2.5 4.7-5.7 3.7-3.3-1 2.5-3.7 3.3-3.7 3.3"/><path d="m43.3 27.2c0 0 1.5 12.6.8 28.6-.1 2.3-.1 5.9-4.3 6.1 4.7-1.4 2.5-17.3 3.5-34.7"/><path d="m54 34.4c.2-.7.1-1.5-.1-2-2.1-4.5-2.8-8.3-3.1-11.4-.1-1-.5-1.8-1.2-2.4l-9-12.2c-1.4-1.9-3.7-2.9-6-2.8-.4 0-.7 0-1.1 0-4 .3-9.5 1.4-13.5 2.1-4.2.7-7.5 2.1-9.2 4.4 1.3-3.4 5-5.1 10.1-6 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l8.9 12.2c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.4 1 .2 2.6-.8 3.6"/><path d="m44.5 23c0 0 1.3 4.3 1.8 6.3.4 1.7 2 4.8 4.6 6-4.2-.6-5.6-4-6.1-5.7l-.2-.8c0 0-.7-.5-1.4-1.5.1-.1 1.5-2 1.3-4.3"/><path d="m34.2 36.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.3 1 .6 1.5.2.5.5 1 .7 1.6.3.6.4 1.2.2 1.8"/><path d="m26.3 34.8c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.4.5.5 1.2.2 1.8"/><path d="m17.8 32.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.3.5.4 1.2.2 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3ff.svg
index fca768c..62fa984 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f447-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m51.36 35.3c-4.445-.418-5.93-3.977-6.449-5.736l-.238-.832c0 0-.5-.572-1.131-1.473-.076-.014-.148-.033-.225-.049 0 0-.465 7.752-.111 10.305.389 2.822.387 15.242.547 18.287.191 3.584-.457 6.193-4.502 6.193-4.094 0-5.344-3.172-5.094-6.193.346-4.166.564-18.258.564-18.258-.438 1.818-1.225 3.486-4.217 3.176-3.428-.355-4.076-1.684-4.232-3.814-1.682 2.883-3.961 2.668-5.377 2.311-2.393-.604-3.059-4.914-3.082-4.914-.939 3.201-2.422 2.645-4.498 2.336-1.268-.189-2.748-1.484-3.279-3.688-.533-2.207-2.174-3.836.287-21.05.646-4.52 4.592-6.745 10.547-7.774 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.37.764 1.659-.335 4.782-3.412 4.489"/><g fill="#705041"><path d="m14.696 36.852c3.816.57 3.523-5.295 2.736-2.828-.826 2.585-2.736 2.828-2.736 2.828"/><path d="m22.02 39.41c5.209.535 4.67-5.271 3.67-2.885-1.014 2.422-3.67 2.885-3.67 2.885"/><path d="m30.61 40.736c5.209.533 4.67-5.654 3.67-3.268-1.013 2.423-3.67 3.268-3.67 3.268"/><path d="m43.31 27.21c0 0 1.459 12.598.75 28.639-.104 2.336-.115 5.938-4.268 6.129 4.665-1.473 2.497-17.383 3.518-34.768"/><path d="m54.01 34.43c.184-.721.148-1.469-.115-2.041-2.066-4.488-2.795-8.319-3.117-11.37-.107-1.022-.516-1.846-1.152-2.429-.012-.015-.02-.03-.031-.045l-8.95-12.192c-1.408-1.918-3.689-2.884-5.959-2.765-.357-.019-.723-.021-1.092.009-4.09.311-9.578 1.414-13.602 2.108-4.25.735-7.469 2.085-9.201 4.437 1.328-3.352 4.957-5.125 10.08-6.01 4.02-.694 9.512-1.798 13.602-2.108.369-.029.734-.027 1.092-.009 2.27-.119 4.551.847 5.959 2.765l8.949 12.192c.012.015.02.03.031.045.637.583 1.045 1.406 1.152 2.429.322 3.051 1.051 6.881 3.117 11.37.475 1.031.229 2.623-.759 3.615"/><path d="m44.546 22.972c0 0 1.313 4.31 1.838 6.339.439 1.691 2.02 4.76 4.633 5.955-4.18-.563-5.6-3.984-6.107-5.697l-.238-.832c0 0-.703-.479-1.355-1.521-.002-.001 1.383-1.96 1.229-4.244"/><path d="m34.2 36.416c-.209-.578-.487-1.026-.794-1.486-.312-.455-.64-.928-.927-1.467-.27-.541-.487-1.165-.49-1.811-.018-.641.171-1.268.523-1.768.05.613.104 1.158.25 1.665.146.504.35.976.607 1.459.237.491.535.994.734 1.577.207.57.31 1.247.097 1.831"/><path d="m26.341 34.777c-.209-.578-.486-1.025-.793-1.486-.313-.455-.641-.927-.927-1.466-.271-.542-.488-1.165-.491-1.811-.018-.642.171-1.268.523-1.767.05.613.104 1.158.25 1.664.146.504.351.975.607 1.459.238.49.535.994.734 1.576.206.572.31 1.247.097 1.831"/><path d="m17.761 32.385c-.209-.578-.487-1.027-.794-1.488-.312-.453-.64-.926-.927-1.465-.27-.543-.487-1.166-.49-1.811-.018-.643.171-1.269.523-1.769.05.613.104 1.158.25 1.665.146.504.35.976.607 1.459.237.491.535.994.734 1.577.206.57.31 1.247.097 1.832"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.4 35.3c-4.4-.4-5.9-4-6.4-5.7l-.2-.8c0 0-.5-.6-1.1-1.5-.1 0-.1 0-.2 0 0 0-.5 7.8-.1 10.3.4 2.8.4 15.2.5 18.3.2 3.6-.5 6.2-4.5 6.2-4.1 0-5.3-3.2-5.1-6.2.3-4.2.6-18.3.6-18.3-.4 1.8-1.2 3.5-4.2 3.2-3.4-.4-4.1-1.7-4.2-3.8-1.7 2.9-4 2.7-5.4 2.3-2.4-.6-3.1-4.9-3.1-4.9-.9 3.2-2.4 2.6-4.5 2.3-1.5-.2-2.9-1.5-3.5-3.7-.5-2.2-2.2-3.8.3-21 .6-4.5 4.6-6.7 10.5-7.8 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l9 12.1c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.7 1.7-.4 4.8-3.4 4.5" fill="#8a6859"/><g fill="#705041"><path d="m14.7 36.9c3.8.6 3.5-5.3 2.7-2.8-.8 2.5-2.7 2.8-2.7 2.8"/><path d="m22 39.4c5.2.5 4.7-5.3 3.7-2.9-1 2.4-3.7 2.9-3.7 2.9"/><path d="m30.6 40.7c5.2.5 4.7-5.7 3.7-3.3-1 2.5-3.7 3.3-3.7 3.3"/><path d="m43.3 27.2c0 0 1.5 12.6.8 28.6-.1 2.3-.1 5.9-4.3 6.1 4.7-1.4 2.5-17.3 3.5-34.7"/><path d="m54 34.4c.2-.7.1-1.5-.1-2-2.1-4.5-2.8-8.3-3.1-11.4-.1-1-.5-1.8-1.2-2.4l-9-12.2c-1.4-1.9-3.7-2.9-6-2.8-.4 0-.7 0-1.1 0-4 .3-9.5 1.4-13.5 2.1-4.2.7-7.5 2.1-9.2 4.4 1.3-3.4 5-5.1 10.1-6 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.6.8 6 2.8l8.9 12.2c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.4 1 .2 2.6-.8 3.6"/><path d="m44.5 23c0 0 1.3 4.3 1.8 6.3.4 1.7 2 4.8 4.6 6-4.2-.6-5.6-4-6.1-5.7l-.2-.8c0 0-.7-.5-1.4-1.5.1-.1 1.5-2 1.3-4.3"/><path d="m34.2 36.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.3 1 .6 1.5.2.5.5 1 .7 1.6.3.6.4 1.2.2 1.8"/><path d="m26.3 34.8c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.4.5.5 1.2.2 1.8"/><path d="m17.8 32.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.2 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.3.5.4 1.2.2 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f447.svg b/build/js/jsxc/lib/emojione/assets/svg/1f447.svg
index 963c84d..25b2490 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f447.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f447.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m51.35 35.3c-4.445-.418-5.928-3.978-6.447-5.737l-.24-.831c0 0-.498-.573-1.131-1.474-.074-.014-.148-.032-.223-.048 0 0-.465 7.751-.113 10.304.391 2.822.387 15.241.549 18.287.189 3.583-.459 6.193-4.504 6.193-4.092 0-5.342-3.172-5.092-6.193.344-4.166.563-18.259.563-18.259-.436 1.818-1.223 3.487-4.215 3.177-3.43-.356-4.076-1.685-4.232-3.815-1.682 2.883-3.963 2.669-5.377 2.312-2.395-.604-3.059-4.915-3.084-4.915-.939 3.201-2.422 2.646-4.496 2.336-1.27-.188-2.75-1.484-3.281-3.687-.531-2.208-2.172-3.836.289-21.05.646-4.52 4.592-6.745 10.545-7.774 4.02-.694 9.514-1.798 13.604-2.108.369-.029.732-.027 1.092-.009 2.268-.119 4.549.847 5.959 2.765l8.949 12.192c.01.015.018.03.029.045.639.583 1.045 1.406 1.152 2.429.322 3.051 1.053 6.881 3.117 11.369.764 1.659-.335 4.782-3.413 4.49"/><g fill="#eba352"><path d="m14.693 36.85c3.814.57 3.521-5.294 2.734-2.828-.824 2.586-2.734 2.828-2.734 2.828"/><path d="m22.01 39.41c5.211.534 4.672-5.272 3.672-2.885-1.016 2.422-3.672 2.885-3.672 2.885"/><path d="m30.605 40.734c5.211.533 4.672-5.654 3.672-3.267-1.015 2.423-3.672 3.267-3.672 3.267"/><path d="m43.31 27.21c0 0 1.457 12.595.748 28.637-.104 2.335-.113 5.938-4.266 6.129 4.662-1.472 2.496-17.383 3.518-34.766"/><path d="m54.01 34.428c.186-.721.148-1.469-.115-2.041-2.064-4.488-2.795-8.318-3.117-11.369-.107-1.022-.514-1.846-1.152-2.429-.012-.015-.02-.03-.029-.045l-8.95-12.192c-1.41-1.918-3.691-2.884-5.959-2.765-.359-.019-.723-.021-1.092.009-4.09.311-9.579 1.414-13.604 2.108-4.25.735-7.467 2.085-9.201 4.437 1.328-3.352 4.957-5.125 10.08-6.01 4.02-.694 9.514-1.798 13.604-2.108.369-.029.732-.027 1.092-.009 2.268-.119 4.549.847 5.959 2.765l8.949 12.192c.01.015.018.03.029.045.639.583 1.045 1.406 1.152 2.429.322 3.051 1.053 6.881 3.117 11.369.475 1.031.231 2.624-.759 3.615"/><path d="m44.541 22.971c0 0 1.313 4.309 1.84 6.338.438 1.691 2.01 4.759 4.633 5.955-4.182-.563-5.602-3.983-6.107-5.697l-.24-.831c0 0-.701-.479-1.354-1.521 0-.001 1.382-1.96 1.228-4.244"/><path d="m34.2 36.414c-.209-.578-.486-1.026-.793-1.487-.313-.454-.641-.927-.928-1.466-.27-.542-.488-1.165-.491-1.81-.018-.641.171-1.267.522-1.767.05.613.105 1.158.251 1.664.146.504.351.976.608 1.459.237.491.535.994.734 1.576.207.57.31 1.246.097 1.831"/><path d="m26.337 34.776c-.209-.578-.487-1.027-.794-1.487-.312-.454-.64-.927-.927-1.466-.27-.542-.488-1.165-.491-1.81-.018-.642.171-1.268.522-1.768.05.613.105 1.158.251 1.665.146.503.351.975.608 1.458.237.491.534.994.734 1.577.207.57.31 1.246.097 1.831"/><path d="m17.757 32.382c-.209-.578-.486-1.026-.793-1.487-.313-.454-.641-.926-.928-1.465-.27-.543-.488-1.166-.491-1.811-.018-.641.171-1.268.522-1.768.05.613.105 1.158.251 1.664.146.504.351.976.608 1.459.237.491.535.994.734 1.576.207.571.31 1.247.097 1.832"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.4 35.3c-4.4-.4-5.9-4-6.4-5.7l-.2-.8c0 0-.5-.6-1.1-1.5-.1 0-.1 0-.2 0 0 0-.5 7.8-.1 10.3.4 2.8.4 15.2.5 18.3.2 3.6-.5 6.2-4.5 6.2-4.1 0-5.3-3.2-5.1-6.2.3-4.2.6-18.3.6-18.3-.4 1.8-1.2 3.5-4.2 3.2-3.4-.4-4.1-1.7-4.2-3.8-1.7 2.9-4 2.7-5.4 2.3-2.4-.6-3.1-4.9-3.1-4.9-.9 3.2-2.4 2.6-4.5 2.3-1.5-.2-2.9-1.5-3.5-3.7-.5-2.2-2.2-3.8.3-21 .6-4.5 4.6-6.7 10.5-7.8 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.5.8 6 2.8l9 12.1c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.7 1.7-.4 4.8-3.4 4.5" fill="#ffdd67"/><g fill="#eba352"><path d="m14.7 36.8c3.8.6 3.5-5.3 2.7-2.8-.8 2.6-2.7 2.8-2.7 2.8"/><path d="m22 39.4c5.2.5 4.7-5.3 3.7-2.9-1 2.4-3.7 2.9-3.7 2.9"/><path d="m30.6 40.7c5.2.5 4.7-5.7 3.7-3.3-1 2.5-3.7 3.3-3.7 3.3"/><path d="m43.3 27.2c0 0 1.5 12.6.7 28.6-.1 2.3-.1 5.9-4.3 6.1 4.8-1.4 2.6-17.3 3.6-34.7"/><path d="m54 34.4c.2-.7.1-1.5-.1-2-2.1-4.5-2.8-8.3-3.1-11.4-.1-1-.5-1.8-1.2-2.4l-9-12.2c-1.4-1.9-3.7-2.9-6-2.8-.4 0-.7 0-1.1 0-4 .3-9.5 1.4-13.5 2.1-4.2.7-7.5 2.1-9.2 4.4 1.3-3.4 5-5.1 10.1-6 4-.7 9.5-1.8 13.6-2.1.4 0 .7 0 1.1 0 2.3-.1 4.5.8 6 2.8l8.9 12.2c0 0 0 0 0 0 .6.6 1 1.4 1.2 2.4.3 3.1 1.1 6.9 3.1 11.4.4 1 .2 2.6-.8 3.6"/><path d="m44.5 23c0 0 1.3 4.3 1.8 6.3.4 1.7 2 4.8 4.6 6-4.2-.6-5.6-4-6.1-5.7l-.2-.8c0 0-.7-.5-1.4-1.5.1-.1 1.5-2 1.3-4.3"/><path d="m34.2 36.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.3 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.2.6.3 1.2.1 1.8"/><path d="m26.3 34.8c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.3 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.2.5.3 1.2.1 1.8"/><path d="m17.8 32.4c-.2-.6-.5-1-.8-1.5-.3-.5-.6-.9-.9-1.5-.3-.5-.5-1.2-.5-1.8 0-.6.2-1.3.5-1.8 0 .6.1 1.2.3 1.7.1.5.4 1 .6 1.5.2.5.5 1 .7 1.6.2.5.3 1.2.1 1.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fb.svg
index 4c81a0b..16ef640 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m28.698 12.646c.418 4.445 3.979 5.929 5.738 6.448l.83.239c0 0 .574.499 1.475 1.131.014.075.031.148.047.224 0 0-7.752.465-10.305.112-2.822-.39-15.24-.387-18.287-.548-3.582-.19-6.193.458-6.193 4.503 0 4.093 3.172 5.343 6.193 5.093 4.166-.345 18.26-.563 18.26-.563-1.818.437-3.488 1.224-3.178 4.217.357 3.428 1.686 4.076 3.816 4.232-2.883 1.682-2.67 3.961-2.313 5.377.605 2.394 4.916 3.058 4.916 3.083-3.201.939-2.646 2.422-2.336 4.496.188 1.27 1.484 2.75 3.686 3.281 2.209.531 3.838 2.172 21.05-.289 4.52-.646 6.745-4.592 7.774-10.546.693-4.02 1.797-9.512 2.107-13.603.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.659-.765-4.782.335-4.491 3.412"/><g fill="#e6b796"><path d="m27.15 49.31c-.57-3.814 5.293-3.521 2.828-2.734-2.587.823-2.828 2.734-2.828 2.734"/><path d="m24.593 41.988c-.533-5.209 5.273-4.67 2.885-3.67-2.422 1.014-2.885 3.67-2.885 3.67"/><path d="m23.269 33.395c-.533-5.21 5.654-4.671 3.266-3.671-2.423 1.014-3.266 3.671-3.266 3.671"/><path d="m36.788 20.688c0 0-12.596-1.458-28.639-.749-2.334.104-5.938.114-6.129 4.267 1.473-4.664 17.385-2.497 34.768-3.518"/><path d="m29.575 9.994c.721-.185 1.469-.148 2.041.115 4.488 2.065 8.318 2.795 11.369 3.117 1.021.107 1.846.515 2.428 1.152.016.012.031.02.045.03l12.192 8.949c1.918 1.409 2.885 3.69 2.766 5.959.018.358.02.723-.01 1.092-.311 4.091-1.414 9.58-2.107 13.604-.736 4.25-2.085 7.467-4.437 9.201 3.351-1.328 5.124-4.957 6.01-10.08.693-4.02 1.797-9.512 2.107-13.603.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.031-.475-2.625-.23-3.615.76"/><path d="m41.03 19.458c0 0-4.309-1.313-6.338-1.839-1.691-.438-4.76-2.02-5.955-4.633.563 4.181 3.982 5.601 5.697 6.107l.83.239c0 0 .48.702 1.521 1.354.001.002 1.96-1.382 4.245-1.228"/><path d="m27.587 29.803c.585-.214 1.261-.109 1.831.097.582.199 1.086.496 1.576.734.484.257.956.461 1.459.607.507.146 1.052.201 1.665.25-.5.353-1.126.541-1.768.523-.646-.004-1.269-.221-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.305-.908-.584-1.486-.793"/><path d="m29.23 37.664c.585-.214 1.261-.11 1.831.096.582.199 1.085.496 1.576.734.484.258.956.461 1.459.607.507.146 1.052.201 1.665.25-.5.353-1.126.541-1.768.523-.646-.003-1.269-.221-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.583-1.486-.792"/><path d="m31.62 46.24c.585-.214 1.261-.11 1.831.097.582.199 1.086.496 1.576.734.484.257.956.461 1.46.607.506.146 1.051.201 1.664.251-.5.353-1.126.54-1.768.522-.646-.004-1.269-.221-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.584-1.486-.793"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.7 12.6c.4 4.4 4 5.9 5.7 6.4l.8.2c0 0 .6.5 1.5 1.1 0 .1 0 .1 0 .2 0 0-7.8.5-10.3.1-2.8-.4-15.2-.4-18.3-.5-3.5 0-6.1.6-6.1 4.7 0 4.1 3.2 5.3 6.2 5.1 4.2-.3 18.3-.6 18.3-.6-1.8.4-3.5 1.2-3.2 4.2.4 3.4 1.7 4.1 3.8 4.2-2.9 1.7-2.7 4-2.3 5.4.6 2.4 4.9 3.1 4.9 3.1-3.2.9-2.6 2.4-2.3 4.5.2 1.3 1.5 2.8 3.7 3.3 2.2.5 3.8 2.2 21.1-.3 4.5-.6 6.7-4.6 7.8-10.5.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.3-9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1.7-.7-4.8.4-4.5 3.4" fill="#ffe1bd"/><g fill="#e6b796"><path d="m27.2 49.3c-.6-3.8 5.3-3.5 2.8-2.7-2.6.8-2.8 2.7-2.8 2.7"/><path d="m24.6 42c-.5-5.2 5.3-4.7 2.9-3.7-2.4 1-2.9 3.7-2.9 3.7"/><path d="m23.3 33.4c-.5-5.2 5.7-4.7 3.3-3.7-2.5 1-3.3 3.7-3.3 3.7"/><path d="m36.8 20.7c0 0-12.6-1.5-28.6-.7-2.4 0-6 .1-6.2 4.2 1.5-4.7 17.4-2.5 34.8-3.5"/><path d="m29.6 10c.7-.2 1.5-.1 2 .1 4.5 2.1 8.3 2.8 11.4 3.1 1 .1 1.8.5 2.4 1.2l12.2 8.9c1.9 1.4 2.9 3.7 2.8 6 0 .4 0 .7 0 1.1-.3 4.1-1.4 9.6-2.1 13.6-.7 4.2-2.1 7.5-4.4 9.2 3.4-1.3 5.1-5 6-10.1.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.2-8.9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1-.4-2.6-.2-3.6.8"/><path d="m41 19.5c0 0-4.3-1.3-6.3-1.8-1.7-.4-4.8-2-6-4.6.6 4.2 4 5.6 5.7 6.1l.8.2c0 0 .5.7 1.5 1.4.1-.1 2-1.5 4.3-1.3"/><path d="m27.6 29.8c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.6.4-1.2.6-1.9.6-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.8-.6-1.4-.8"/><path d="m29.2 37.7c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.2-.9-.5-1.5-.7"/><path d="m31.6 46.2c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.3-.9-.5-1.5-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fc.svg
index 53ca633..e37282a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m28.698 12.646c.418 4.445 3.979 5.929 5.738 6.448l.83.239c0 0 .574.499 1.475 1.131.014.075.031.148.047.224 0 0-7.752.465-10.305.112-2.822-.39-15.24-.387-18.287-.548-3.582-.19-6.193.458-6.193 4.503 0 4.093 3.172 5.343 6.193 5.093 4.166-.346 18.26-.564 18.26-.564-1.818.438-3.488 1.225-3.178 4.217.357 3.429 1.686 4.076 3.816 4.232-2.883 1.682-2.67 3.962-2.313 5.377.605 2.395 4.916 3.059 4.916 3.084-3.201.939-2.646 2.422-2.336 4.496.188 1.27 1.484 2.75 3.686 3.281 2.209.531 3.838 2.172 21.05-.289 4.52-.646 6.745-4.592 7.774-10.546.693-4.02 1.797-9.513 2.107-13.603.029-.369.027-.734.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.659-.765-4.782.335-4.491 3.412"/><g fill="#e0a372"><path d="m27.15 49.31c-.57-3.814 5.293-3.521 2.828-2.734-2.587.823-2.828 2.734-2.828 2.734"/><path d="m24.593 41.988c-.533-5.21 5.273-4.671 2.885-3.671-2.422 1.015-2.885 3.671-2.885 3.671"/><path d="m23.269 33.395c-.533-5.21 5.654-4.671 3.266-3.671-2.423 1.013-3.266 3.671-3.266 3.671"/><path d="m36.788 20.688c0 0-12.596-1.458-28.639-.749-2.334.104-5.938.114-6.129 4.267 1.473-4.664 17.385-2.497 34.768-3.518"/><path d="m29.575 9.994c.721-.185 1.469-.148 2.041.115 4.488 2.065 8.318 2.795 11.369 3.117 1.021.107 1.846.515 2.428 1.152.016.012.031.02.045.03l12.192 8.949c1.918 1.409 2.885 3.69 2.766 5.959.018.357.02.723-.01 1.092-.311 4.09-1.414 9.578-2.107 13.604-.736 4.25-2.085 7.467-4.437 9.201 3.351-1.328 5.124-4.957 6.01-10.08.693-4.02 1.797-9.513 2.107-13.603.029-.369.027-.734.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.031-.475-2.625-.23-3.615.76"/><path d="m41.03 19.458c0 0-4.309-1.313-6.338-1.839-1.691-.438-4.76-2.02-5.955-4.633.563 4.181 3.982 5.601 5.697 6.107l.83.239c0 0 .48.702 1.521 1.354.001.002 1.96-1.382 4.245-1.228"/><path d="m27.587 29.804c.585-.214 1.261-.109 1.831.096.582.199 1.086.496 1.576.734.484.258.956.461 1.459.607.507.146 1.052.201 1.665.251-.5.353-1.126.54-1.768.522-.646-.003-1.269-.221-1.811-.49-.539-.287-1.012-.615-1.466-.928-.46-.306-.908-.583-1.486-.792"/><path d="m29.23 37.663c.585-.213 1.261-.109 1.831.096.582.199 1.085.496 1.576.734.484.258.956.461 1.459.607.507.146 1.052.201 1.665.251-.5.353-1.126.54-1.768.522-.646-.002-1.269-.221-1.811-.49-.539-.287-1.012-.615-1.466-.928-.46-.306-.908-.583-1.486-.792"/><path d="m31.62 46.24c.585-.214 1.261-.11 1.831.096.582.199 1.086.496 1.576.734.484.258.956.461 1.46.607.506.146 1.051.201 1.664.252-.5.352-1.126.539-1.768.521-.646-.003-1.269-.221-1.811-.49-.539-.287-1.012-.615-1.466-.928-.46-.306-.908-.583-1.486-.792"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.7 12.6c.4 4.4 4 5.9 5.7 6.4l.8.2c0 0 .6.5 1.5 1.1 0 .1 0 .1 0 .2 0 0-7.8.5-10.3.1-2.8-.4-15.2-.4-18.3-.5-3.5 0-6.1.6-6.1 4.7 0 4.1 3.2 5.3 6.2 5.1 4.2-.3 18.3-.6 18.3-.6-1.8.4-3.5 1.2-3.2 4.2.4 3.4 1.7 4.1 3.8 4.2-2.9 1.7-2.7 4-2.3 5.4.6 2.4 4.9 3.1 4.9 3.1-3.2.9-2.6 2.4-2.3 4.5.2 1.3 1.5 2.8 3.7 3.3 2.2.5 3.8 2.2 21.1-.3 4.5-.6 6.7-4.6 7.8-10.5.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.3-9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1.7-.7-4.8.4-4.5 3.4" fill="#fed0ac"/><g fill="#e0a372"><path d="m27.2 49.3c-.6-3.8 5.3-3.5 2.8-2.7-2.6.8-2.8 2.7-2.8 2.7"/><path d="m24.6 42c-.5-5.2 5.3-4.7 2.9-3.7-2.4 1-2.9 3.7-2.9 3.7"/><path d="m23.3 33.4c-.5-5.2 5.7-4.7 3.3-3.7-2.5 1-3.3 3.7-3.3 3.7"/><path d="m36.8 20.7c0 0-12.6-1.5-28.6-.7-2.4 0-6 .1-6.2 4.2 1.5-4.7 17.4-2.5 34.8-3.5"/><path d="m29.6 10c.7-.2 1.5-.1 2 .1 4.5 2.1 8.3 2.8 11.4 3.1 1 .1 1.8.5 2.4 1.2l12.2 8.9c1.9 1.4 2.9 3.7 2.8 6 0 .4 0 .7 0 1.1-.3 4.1-1.4 9.6-2.1 13.6-.7 4.2-2.1 7.5-4.4 9.2 3.4-1.3 5.1-5 6-10.1.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.2-8.9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1-.4-2.6-.2-3.6.8"/><path d="m41 19.5c0 0-4.3-1.3-6.3-1.8-1.7-.4-4.8-2-6-4.6.6 4.2 4 5.6 5.7 6.1l.8.2c0 0 .5.7 1.5 1.4.1-.1 2-1.5 4.3-1.3"/><path d="m27.6 29.8c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.6.3-1.2.5-1.9.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.8-.6-1.4-.8"/><path d="m29.2 37.7c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.4-.9-.6-1.5-.8"/><path d="m31.6 46.2c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.3-.9-.5-1.5-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fd.svg
index f20e6b8..09d730d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m28.698 12.646c.418 4.445 3.979 5.929 5.738 6.448l.83.239c0 0 .574.499 1.475 1.131.014.075.031.148.047.224 0 0-7.752.465-10.305.112-2.822-.39-15.24-.387-18.287-.548-3.582-.19-6.193.458-6.193 4.503 0 4.093 3.172 5.343 6.193 5.093 4.166-.345 18.26-.563 18.26-.563-1.818.437-3.488 1.224-3.178 4.216.357 3.43 1.686 4.076 3.816 4.232-2.883 1.682-2.67 3.963-2.313 5.377.605 2.395 4.916 3.059 4.916 3.084-3.201.939-2.646 2.422-2.336 4.496.188 1.27 1.484 2.75 3.686 3.281 2.209.531 3.838 2.172 21.05-.289 4.52-.646 6.745-4.592 7.774-10.545.693-4.02 1.797-9.514 2.107-13.604.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.659-.764-4.782.335-4.491 3.412"/><g fill="#b58360"><path d="m27.15 49.31c-.57-3.814 5.293-3.521 2.828-2.734-2.587.823-2.828 2.734-2.828 2.734"/><path d="m24.593 41.989c-.533-5.211 5.273-4.672 2.885-3.672-2.422 1.016-2.885 3.672-2.885 3.672"/><path d="m23.269 33.396c-.533-5.211 5.654-4.672 3.266-3.672-2.423 1.014-3.266 3.672-3.266 3.672"/><path d="m36.788 20.688c0 0-12.596-1.458-28.639-.749-2.334.104-5.938.114-6.129 4.267 1.473-4.663 17.385-2.496 34.768-3.518"/><path d="m29.575 9.994c.721-.185 1.469-.148 2.041.115 4.488 2.065 8.318 2.795 11.369 3.117 1.021.107 1.846.515 2.428 1.152.016.012.031.02.045.03l12.192 8.949c1.918 1.409 2.885 3.69 2.766 5.959.018.358.02.723-.01 1.092-.311 4.09-1.414 9.578-2.107 13.604-.736 4.25-2.085 7.467-4.437 9.201 3.351-1.328 5.124-4.957 6.01-10.08.693-4.02 1.797-9.514 2.107-13.604.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.031-.474-2.625-.229-3.615.76"/><path d="m41.03 19.459c0 0-4.309-1.313-6.338-1.839-1.691-.438-4.76-2.02-5.955-4.633.563 4.181 3.982 5.601 5.697 6.107l.83.239c0 0 .48.702 1.521 1.354.001.001 1.96-1.382 4.245-1.228"/><path d="m27.587 29.804c.585-.213 1.261-.109 1.831.096.582.199 1.086.497 1.576.734.484.258.956.462 1.459.608.507.146 1.052.2 1.665.251-.5.352-1.126.54-1.768.522-.646-.003-1.269-.222-1.811-.491-.539-.287-1.012-.615-1.466-.928-.46-.306-.908-.583-1.486-.792"/><path d="m29.23 37.663c.585-.213 1.261-.109 1.831.097.582.199 1.085.496 1.576.733.484.258.956.462 1.459.608.507.146 1.052.2 1.665.251-.5.352-1.126.54-1.768.522-.646-.003-1.269-.222-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.584-1.486-.793"/><path d="m31.62 46.24c.585-.213 1.261-.109 1.831.096.582.199 1.086.497 1.576.734.484.258.956.462 1.46.608.506.146 1.051.2 1.664.251-.5.352-1.126.54-1.768.522-.646-.003-1.269-.222-1.811-.491-.539-.287-1.012-.615-1.466-.928-.46-.306-.908-.583-1.486-.792"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.7 12.6c.4 4.4 4 5.9 5.7 6.4l.8.2c0 0 .6.5 1.5 1.1 0 .1 0 .1 0 .2 0 0-7.8.5-10.3.1-2.8-.4-15.2-.4-18.3-.5-3.5 0-6.1.6-6.1 4.7 0 4.1 3.2 5.3 6.2 5.1 4.2-.3 18.3-.6 18.3-.6-1.8.4-3.5 1.2-3.2 4.2.4 3.4 1.7 4.1 3.8 4.2-2.9 1.7-2.7 4-2.3 5.4.6 2.4 4.9 3.1 4.9 3.1-3.2.9-2.6 2.4-2.3 4.5.2 1.3 1.5 2.8 3.7 3.3 2.2.5 3.8 2.2 21.1-.3 4.5-.6 6.7-4.6 7.8-10.5.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.3-9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1.7-.7-4.8.4-4.5 3.4" fill="#d6a57c"/><g fill="#b58360"><path d="m27.2 49.3c-.6-3.8 5.3-3.5 2.8-2.7-2.6.8-2.8 2.7-2.8 2.7"/><path d="m24.6 42c-.5-5.2 5.3-4.7 2.9-3.7-2.4 1-2.9 3.7-2.9 3.7"/><path d="m23.3 33.4c-.5-5.2 5.7-4.7 3.3-3.7-2.5 1-3.3 3.7-3.3 3.7"/><path d="m36.8 20.7c0 0-12.6-1.5-28.6-.7-2.4 0-6 .1-6.2 4.2 1.5-4.7 17.4-2.5 34.8-3.5"/><path d="m29.6 10c.7-.2 1.5-.1 2 .1 4.5 2.1 8.3 2.8 11.4 3.1 1 .1 1.8.5 2.4 1.2l12.2 8.9c1.9 1.4 2.9 3.7 2.8 6 0 .4 0 .7 0 1.1-.3 4.1-1.4 9.6-2.1 13.6-.7 4.2-2.1 7.5-4.4 9.2 3.4-1.3 5.1-5 6-10.1.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.2-8.9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1-.4-2.6-.2-3.6.8"/><path d="m41 19.5c0 0-4.3-1.3-6.3-1.8-1.7-.4-4.8-2-6-4.6.6 4.2 4 5.6 5.7 6.1l.8.2c0 0 .5.7 1.5 1.4.1-.1 2-1.5 4.3-1.3"/><path d="m27.6 29.8c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.6.3-1.2.5-1.9.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.8-.6-1.4-.8"/><path d="m29.2 37.7c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.9-.6-1.5-.8"/><path d="m31.6 46.2c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.3-.9-.5-1.5-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fe.svg
index 9d22c6a..07f16f2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m28.698 12.646c.418 4.445 3.979 5.929 5.738 6.448l.83.239c0 0 .574.499 1.475 1.131.014.075.031.148.047.224 0 0-7.752.465-10.305.112-2.822-.39-15.24-.387-18.287-.548-3.582-.19-6.193.458-6.193 4.503 0 4.093 3.172 5.343 6.193 5.093 4.166-.344 18.26-.563 18.26-.563-1.818.436-3.488 1.223-3.178 4.216.357 3.429 1.686 4.076 3.816 4.232-2.883 1.682-2.67 3.962-2.313 5.377.605 2.394 4.916 3.058 4.916 3.083-3.201.939-2.646 2.422-2.336 4.496.188 1.27 1.484 2.75 3.686 3.281 2.209.531 3.838 2.172 21.05-.289 4.52-.646 6.745-4.592 7.774-10.545.693-4.02 1.797-9.513 2.107-13.604.029-.369.027-.732.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.659-.763-4.782.336-4.491 3.413"/><g fill="#935e3e"><path d="m27.15 49.31c-.57-3.814 5.293-3.521 2.828-2.734-2.587.823-2.828 2.734-2.828 2.734"/><path d="m24.593 41.989c-.533-5.21 5.273-4.671 2.885-3.671-2.422 1.015-2.885 3.671-2.885 3.671"/><path d="m23.269 33.396c-.533-5.211 5.654-4.672 3.266-3.672-2.423 1.015-3.266 3.672-3.266 3.672"/><path d="m36.788 20.688c0 0-12.596-1.458-28.639-.749-2.334.104-5.938.114-6.129 4.267 1.473-4.663 17.385-2.496 34.768-3.518"/><path d="m29.575 9.994c.721-.185 1.469-.148 2.041.115 4.488 2.065 8.318 2.795 11.369 3.117 1.021.107 1.846.515 2.428 1.152.016.012.031.02.045.03l12.192 8.949c1.918 1.409 2.885 3.691 2.766 5.959.018.359.02.723-.01 1.092-.311 4.091-1.414 9.579-2.107 13.604-.736 4.25-2.085 7.467-4.437 9.201 3.351-1.328 5.124-4.957 6.01-10.08.693-4.02 1.797-9.513 2.107-13.604.029-.369.027-.732.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.031-.474-2.625-.229-3.615.76"/><path d="m41.03 19.459c0 0-4.309-1.313-6.338-1.839-1.691-.438-4.76-2.02-5.955-4.633.563 4.181 3.982 5.601 5.697 6.107l.83.239c0 0 .48.702 1.521 1.354.001.001 1.96-1.382 4.245-1.228"/><path d="m27.587 29.804c.585-.213 1.261-.109 1.831.097.582.199 1.086.497 1.576.734.484.257.956.462 1.459.608.507.145 1.052.2 1.665.25-.5.352-1.126.541-1.768.523-.646-.004-1.269-.222-1.811-.492-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.584-1.486-.793"/><path d="m29.23 37.664c.585-.214 1.261-.11 1.831.097.582.199 1.085.496 1.576.733.484.258.956.462 1.459.608.507.145 1.052.2 1.665.25-.5.352-1.126.541-1.768.523-.646-.004-1.269-.222-1.811-.492-.539-.285-1.012-.613-1.466-.926-.46-.306-.908-.584-1.486-.793"/><path d="m31.62 46.24c.585-.213 1.261-.109 1.831.097.582.199 1.086.497 1.576.734.484.257.956.462 1.46.608.506.145 1.051.2 1.664.25-.5.353-1.126.541-1.768.523-.646-.004-1.269-.222-1.811-.492-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.584-1.486-.793"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.7 12.6c.4 4.4 4 5.9 5.7 6.4l.8.2c0 0 .6.5 1.5 1.1 0 .1 0 .1 0 .2 0 0-7.8.5-10.3.1-2.8-.4-15.2-.4-18.3-.5-3.5 0-6.1.6-6.1 4.7 0 4.1 3.2 5.3 6.2 5.1 4.2-.3 18.3-.6 18.3-.6-1.8.4-3.5 1.2-3.2 4.2.4 3.4 1.7 4.1 3.8 4.2-2.9 1.7-2.7 4-2.3 5.4.6 2.4 4.9 3.1 4.9 3.1-3.2.9-2.6 2.4-2.3 4.5.2 1.3 1.5 2.8 3.7 3.3 2.2.5 3.8 2.2 21.1-.3 4.5-.6 6.7-4.6 7.8-10.5.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.3-9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1.7-.7-4.8.4-4.5 3.4" fill="#b47d56"/><g fill="#935e3e"><path d="m27.2 49.3c-.6-3.8 5.3-3.5 2.8-2.7-2.6.8-2.8 2.7-2.8 2.7"/><path d="m24.6 42c-.5-5.2 5.3-4.7 2.9-3.7-2.4 1-2.9 3.7-2.9 3.7"/><path d="m23.3 33.4c-.5-5.2 5.7-4.7 3.3-3.7-2.5 1-3.3 3.7-3.3 3.7"/><path d="m36.8 20.7c0 0-12.6-1.5-28.6-.7-2.4 0-6 .1-6.2 4.2 1.5-4.7 17.4-2.5 34.8-3.5"/><path d="m29.6 10c.7-.2 1.5-.1 2 .1 4.5 2.1 8.3 2.8 11.4 3.1 1 .1 1.8.5 2.4 1.2l12.2 8.9c1.9 1.4 2.9 3.7 2.8 6 0 .4 0 .7 0 1.1-.3 4.1-1.4 9.6-2.1 13.6-.7 4.2-2.1 7.5-4.4 9.2 3.4-1.3 5.1-5 6-10.1.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.2-8.9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1-.4-2.6-.2-3.6.8"/><path d="m41 19.5c0 0-4.3-1.3-6.3-1.8-1.7-.4-4.8-2-6-4.6.6 4.2 4 5.6 5.7 6.1l.8.2c0 0 .5.7 1.5 1.4.1-.1 2-1.5 4.3-1.3"/><path d="m27.6 29.8c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.6.4-1.2.6-1.9.6-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.8-.6-1.4-.8"/><path d="m29.2 37.7c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.2-.9-.5-1.5-.7"/><path d="m31.6 46.2c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.2-.9-.4-1.5-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3ff.svg
index 23227ab..a382bfd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f448-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m28.698 12.646c.418 4.445 3.979 5.929 5.738 6.448l.83.239c0 0 .574.499 1.475 1.131.014.075.031.148.047.224 0 0-7.752.465-10.305.112-2.822-.39-15.24-.387-18.287-.548-3.582-.19-6.193.458-6.193 4.503 0 4.093 3.172 5.343 6.193 5.093 4.166-.345 18.26-.563 18.26-.563-1.818.437-3.488 1.224-3.178 4.217.357 3.428 1.686 4.076 3.816 4.232-2.883 1.682-2.67 3.961-2.313 5.377.605 2.394 4.916 3.058 4.916 3.083-3.201.939-2.646 2.422-2.336 4.496.188 1.27 1.484 2.75 3.686 3.281 2.209.531 3.838 2.172 21.05-.289 4.52-.646 6.745-4.592 7.774-10.546.693-4.02 1.797-9.512 2.107-13.603.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.659-.764-4.782.335-4.491 3.412"/><g fill="#705041"><path d="m27.15 49.31c-.57-3.814 5.293-3.521 2.828-2.734-2.587.823-2.828 2.734-2.828 2.734"/><path d="m24.593 41.988c-.533-5.209 5.273-4.67 2.885-3.67-2.422 1.014-2.885 3.67-2.885 3.67"/><path d="m23.269 33.395c-.533-5.21 5.654-4.671 3.266-3.671-2.423 1.014-3.266 3.671-3.266 3.671"/><path d="m36.788 20.688c0 0-12.596-1.458-28.639-.749-2.334.104-5.938.114-6.129 4.267 1.473-4.663 17.385-2.496 34.768-3.518"/><path d="m29.575 9.994c.721-.185 1.469-.148 2.041.115 4.488 2.065 8.318 2.795 11.369 3.117 1.021.107 1.846.515 2.428 1.152.016.012.031.02.045.03l12.192 8.949c1.918 1.409 2.885 3.69 2.766 5.959.018.358.02.723-.01 1.092-.311 4.091-1.414 9.579-2.107 13.604-.736 4.25-2.085 7.467-4.437 9.201 3.351-1.328 5.124-4.957 6.01-10.08.693-4.02 1.797-9.512 2.107-13.603.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.031-.474-2.625-.229-3.615.76"/><path d="m41.03 19.459c0 0-4.309-1.313-6.338-1.839-1.691-.438-4.76-2.02-5.955-4.633.563 4.181 3.982 5.601 5.697 6.107l.83.239c0 0 .48.702 1.521 1.354.001.001 1.96-1.382 4.245-1.228"/><path d="m27.587 29.804c.585-.214 1.261-.109 1.831.097.582.199 1.086.496 1.576.734.484.257.956.461 1.459.607.507.146 1.052.201 1.665.25-.5.353-1.126.541-1.768.523-.646-.004-1.269-.221-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.584-1.486-.793"/><path d="m29.23 37.664c.585-.214 1.261-.11 1.831.096.582.199 1.085.496 1.576.734.484.258.956.461 1.459.607.507.146 1.052.201 1.665.25-.5.353-1.126.541-1.768.523-.646-.003-1.269-.221-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.583-1.486-.792"/><path d="m31.62 46.24c.585-.214 1.261-.11 1.831.097.582.199 1.086.496 1.576.734.484.257.956.461 1.46.607.506.146 1.051.201 1.664.251-.5.353-1.126.54-1.768.522-.646-.004-1.269-.221-1.811-.491-.539-.286-1.012-.614-1.466-.927-.46-.306-.908-.584-1.486-.793"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.7 12.6c.4 4.4 4 5.9 5.7 6.4l.8.2c0 0 .6.5 1.5 1.1 0 .1 0 .1 0 .2 0 0-7.8.5-10.3.1-2.8-.4-15.2-.4-18.3-.5-3.5 0-6.1.6-6.1 4.7 0 4.1 3.2 5.3 6.2 5.1 4.2-.3 18.3-.6 18.3-.6-1.8.4-3.5 1.2-3.2 4.2.4 3.4 1.7 4.1 3.8 4.2-2.9 1.7-2.7 4-2.3 5.4.6 2.4 4.9 3.1 4.9 3.1-3.2.9-2.6 2.4-2.3 4.5.2 1.3 1.5 2.8 3.7 3.3 2.2.5 3.8 2.2 21.1-.3 4.5-.6 6.7-4.6 7.8-10.5.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.3-9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1.7-.7-4.8.4-4.5 3.4" fill="#8a6859"/><g fill="#705041"><path d="m27.2 49.3c-.6-3.8 5.3-3.5 2.8-2.7-2.6.8-2.8 2.7-2.8 2.7"/><path d="m24.6 42c-.5-5.2 5.3-4.7 2.9-3.7-2.4 1-2.9 3.7-2.9 3.7"/><path d="m23.3 33.4c-.5-5.2 5.7-4.7 3.3-3.7-2.5 1-3.3 3.7-3.3 3.7"/><path d="m36.8 20.7c0 0-12.6-1.5-28.6-.7-2.4 0-6 .1-6.2 4.2 1.5-4.7 17.4-2.5 34.8-3.5"/><path d="m29.6 10c.7-.2 1.5-.1 2 .1 4.5 2.1 8.3 2.8 11.4 3.1 1 .1 1.8.5 2.4 1.2l12.2 8.9c1.9 1.4 2.9 3.7 2.8 6 0 .4 0 .7 0 1.1-.3 4.1-1.4 9.6-2.1 13.6-.7 4.2-2.1 7.5-4.4 9.2 3.4-1.3 5.1-5 6-10.1.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.2-8.9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1-.4-2.6-.2-3.6.8"/><path d="m41 19.5c0 0-4.3-1.3-6.3-1.8-1.7-.4-4.8-2-6-4.6.6 4.2 4 5.6 5.7 6.1l.8.2c0 0 .5.7 1.5 1.4.1-.1 2-1.5 4.3-1.3"/><path d="m27.6 29.8c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.6.4-1.2.6-1.9.6-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.8-.6-1.4-.8"/><path d="m29.2 37.7c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.2-.9-.5-1.5-.7"/><path d="m31.6 46.2c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.3-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.3-.9-.5-1.5-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f448.svg b/build/js/jsxc/lib/emojione/assets/svg/1f448.svg
index befe169..63e2567 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f448.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f448.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m28.695 12.646c.418 4.445 3.979 5.929 5.738 6.448l.83.239c0 0 .574.499 1.475 1.131.014.075.031.148.047.224 0 0-7.752.465-10.305.112-2.822-.39-15.24-.387-18.287-.548-3.582-.19-6.193.458-6.193 4.503 0 4.093 3.172 5.343 6.193 5.093 4.166-.345 18.26-.563 18.26-.563-1.818.437-3.488 1.224-3.178 4.217.357 3.429 1.686 4.076 3.816 4.232-2.883 1.682-2.67 3.962-2.313 5.377.605 2.394 4.916 3.058 4.916 3.083-3.201.939-2.646 2.422-2.336 4.496.188 1.27 1.484 2.75 3.686 3.281 2.209.531 3.838 2.172 21.05-.289 4.52-.646 6.745-4.592 7.774-10.545.693-4.02 1.797-9.513 2.107-13.604.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.659-.765-4.782.334-4.491 3.412"/><g fill="#eba352"><path d="m27.15 49.31c-.57-3.814 5.293-3.521 2.828-2.734-2.587.823-2.828 2.734-2.828 2.734"/><path d="m24.59 41.988c-.533-5.21 5.273-4.671 2.885-3.671-2.422 1.015-2.885 3.671-2.885 3.671"/><path d="m23.266 33.395c-.533-5.211 5.654-4.672 3.266-3.672-2.423 1.014-3.266 3.672-3.266 3.672"/><path d="m36.785 20.688c0 0-12.596-1.458-28.639-.749-2.334.104-5.938.114-6.129 4.267 1.473-4.664 17.385-2.497 34.768-3.518"/><path d="m29.572 9.993c.721-.185 1.469-.148 2.041.115 4.488 2.065 8.318 2.795 11.369 3.117 1.021.107 1.846.515 2.428 1.152.016.012.031.02.045.03l12.192 8.949c1.918 1.409 2.885 3.69 2.766 5.959.018.358.02.723-.01 1.092-.311 4.091-1.414 9.579-2.107 13.604-.736 4.25-2.085 7.467-4.437 9.201 3.351-1.328 5.124-4.957 6.01-10.08.693-4.02 1.797-9.513 2.107-13.604.029-.369.027-.733.01-1.092.119-2.269-.848-4.55-2.766-5.959l-12.192-8.949c-.014-.011-.029-.019-.045-.03-.582-.638-1.406-1.045-2.428-1.152-3.051-.322-6.881-1.052-11.369-3.117-1.031-.474-2.624-.229-3.615.76"/><path d="m41.03 19.458c0 0-4.309-1.313-6.338-1.839-1.691-.438-4.76-2.02-5.955-4.633.563 4.181 3.982 5.601 5.697 6.107l.83.239c0 0 .48.702 1.521 1.354.001.002 1.96-1.382 4.245-1.228"/><path d="m27.584 29.803c.585-.213 1.261-.109 1.831.096.582.199 1.086.497 1.576.734.484.257.956.461 1.459.608.507.146 1.052.201 1.665.25-.5.352-1.126.541-1.768.523-.646-.003-1.269-.221-1.811-.491-.539-.287-1.012-.615-1.466-.927-.46-.306-.908-.584-1.486-.793"/><path d="m29.22 37.663c.585-.214 1.261-.11 1.831.097.582.199 1.085.496 1.576.733.484.258.956.462 1.459.608.507.145 1.052.2 1.665.25-.5.352-1.126.541-1.768.523-.646-.004-1.269-.222-1.811-.492-.539-.285-1.012-.613-1.466-.926-.46-.306-.908-.584-1.486-.793"/><path d="m31.617 46.24c.585-.213 1.261-.109 1.831.097.582.199 1.086.497 1.576.734.484.257.956.462 1.46.608.506.145 1.051.2 1.664.25-.5.353-1.126.541-1.768.523-.646-.004-1.269-.222-1.811-.492-.539-.286-1.012-.614-1.466-.927-.459-.306-.908-.584-1.486-.793"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.7 12.6c.4 4.4 4 5.9 5.7 6.4l.8.2c0 0 .6.5 1.5 1.1 0 .1 0 .1 0 .2 0 0-7.8.5-10.3.1-2.8-.4-15.2-.4-18.3-.5-3.5 0-6.1.6-6.1 4.7 0 4.1 3.2 5.3 6.2 5.1 4.2-.3 18.3-.6 18.3-.6-1.8.4-3.5 1.2-3.2 4.2.4 3.4 1.7 4.1 3.8 4.2-2.9 1.7-2.7 4-2.3 5.4.6 2.4 4.9 3.1 4.9 3.1-3.2.9-2.6 2.4-2.3 4.5.2 1.3 1.5 2.8 3.7 3.3 2.2.5 3.8 2.2 21.1-.3 4.5-.6 6.7-4.6 7.8-10.5.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.3-9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1.7-.7-4.8.4-4.5 3.4" fill="#ffdd67"/><g fill="#eba352"><path d="m27.1 49.3c-.6-3.8 5.3-3.5 2.8-2.7-2.5.8-2.8 2.7-2.8 2.7"/><path d="m24.6 42c-.5-5.2 5.3-4.7 2.9-3.7-2.4 1-2.9 3.7-2.9 3.7"/><path d="m23.3 33.4c-.5-5.2 5.7-4.7 3.3-3.7-2.5 1-3.3 3.7-3.3 3.7"/><path d="m36.8 20.7c0 0-12.6-1.5-28.6-.7-2.4 0-6 .1-6.2 4.2 1.5-4.7 17.4-2.5 34.8-3.5"/><path d="m29.6 10c.7-.2 1.5-.1 2 .1 4.5 2.1 8.3 2.8 11.4 3.1 1 .1 1.8.5 2.4 1.2l12.2 8.9c1.9 1.4 2.9 3.7 2.8 6 0 .4 0 .7 0 1.1-.3 4.1-1.4 9.6-2.1 13.6-.7 4.2-2.1 7.5-4.4 9.2 3.4-1.3 5.1-5 6-10.1.7-4 1.8-9.5 2.1-13.6 0-.4 0-.7 0-1.1.1-2.3-.8-4.5-2.8-6l-12.2-8.9c0 0 0 0 0 0-.6-.6-1.4-1-2.4-1.2-3.1-.3-6.9-1.1-11.4-3.1-1-.4-2.6-.2-3.6.8"/><path d="m41 19.5c0 0-4.3-1.3-6.3-1.8-1.7-.4-4.8-2-6-4.6.6 4.2 4 5.6 5.7 6.1l.8.2c0 0 .5.7 1.5 1.4.1-.1 2-1.5 4.3-1.3"/><path d="m27.6 29.8c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.6.4-1.2.6-1.9.6-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.4-.3-.8-.6-1.4-.8"/><path d="m29.2 37.7c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.2-.9-.5-1.5-.7"/><path d="m31.6 46.2c.6-.2 1.3-.1 1.8.1.6.2 1.1.5 1.6.7.5.3 1 .5 1.5.6.5.1 1.1.2 1.7.2-.5.4-1.1.5-1.8.5-.6 0-1.3-.2-1.8-.5-.5-.3-1-.6-1.5-.9-.5-.2-.9-.4-1.5-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fb.svg
index f2d9a8c..150e78b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m35.31 12.646c-.418 4.445-3.977 5.928-5.736 6.447l-.832.24c0 0-.572.498-1.473 1.131-.014.074-.033.148-.049.223 0 0 7.752.465 10.305.113 2.822-.391 15.242-.387 18.287-.549 3.583-.189 6.194.459 6.194 4.504 0 4.091-3.172 5.341-6.194 5.091-4.166-.344-18.258-.563-18.258-.563 1.818.436 3.486 1.223 3.176 4.217-.355 3.428-1.684 4.076-3.814 4.232 2.883 1.682 2.668 3.961 2.311 5.377-.604 2.393-4.914 3.059-4.914 3.082 3.201.939 2.645 2.422 2.336 4.498-.189 1.268-1.484 2.748-3.688 3.279-2.207.533-3.836 2.174-21.05-.287-4.52-.646-6.746-4.592-7.775-10.547-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.267.848-4.548 2.766-5.958l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.659-.764 4.782.335 4.489 3.413"/><g fill="#e6b796"><path d="m36.854 49.31c.57-3.816-5.295-3.523-2.828-2.736 2.585.825 2.828 2.736 2.828 2.736"/><path d="m39.41 41.988c.535-5.209-5.271-4.67-2.885-3.67 2.422 1.014 2.885 3.67 2.885 3.67"/><path d="m40.738 33.395c.533-5.211-5.654-4.672-3.268-3.672 2.423 1.015 3.268 3.672 3.268 3.672"/><path d="m27.22 20.688c0 0 12.596-1.457 28.639-.748 2.335.104 5.938.113 6.13 4.266-1.473-4.663-17.386-2.497-34.769-3.518"/><path d="m34.432 9.994c-.721-.186-1.469-.148-2.041.115-4.488 2.064-8.318 2.795-11.369 3.117-1.023.107-1.846.514-2.43 1.152-.014.012-.029.02-.045.029l-12.192 8.95c-1.918 1.41-2.885 3.691-2.766 5.958-.018.359-.02.723.01 1.092.311 4.093 1.415 9.581 2.108 13.605.736 4.25 2.086 7.469 4.438 9.201-3.352-1.328-5.125-4.957-6.01-10.08-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.267.848-4.548 2.766-5.958l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.031-.476 2.622-.232 3.615.758"/><path d="m22.975 19.459c0 0 4.309-1.313 6.338-1.84 1.691-.438 4.76-2.01 5.955-4.633-.563 4.182-3.984 5.602-5.697 6.107l-.832.24c0 0-.479.701-1.521 1.354-.001.001-1.96-1.382-4.243-1.228"/><path d="m36.418 29.802c-.578.209-1.026.488-1.487.795-.454.313-.927.641-1.466.927-.542.271-1.165.488-1.811.491-.642.018-1.268-.171-1.768-.523.613-.049 1.158-.104 1.664-.25.504-.146.976-.35 1.46-.607.491-.238.993-.535 1.576-.734.57-.208 1.248-.312 1.832-.099"/><path d="m34.779 37.664c-.578.209-1.026.487-1.487.794-.454.312-.927.641-1.466.927-.542.27-1.165.488-1.811.49-.642.018-1.268-.171-1.768-.523.613-.049 1.158-.104 1.664-.25.504-.146.977-.35 1.46-.607.491-.237.993-.534 1.576-.733.572-.207 1.248-.311 1.832-.098"/><path d="m32.385 46.24c-.578.209-1.026.487-1.487.794-.454.312-.926.64-1.465.927-.542.27-1.165.488-1.81.49-.642.018-1.268-.171-1.768-.523.613-.049 1.158-.104 1.664-.25.504-.146.975-.35 1.459-.607.49-.237.993-.535 1.576-.734.57-.206 1.247-.31 1.831-.097"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.3 12.6c-.4 4.4-4 5.9-5.7 6.4l-.8.2c0 0-.6.5-1.5 1.1 0 .1 0 .1 0 .2 0 0 7.8.5 10.3.1 2.8-.4 15.2-.4 18.3-.5 3.6-.2 6.2.5 6.2 4.5 0 4.1-3.2 5.3-6.2 5.1-4.2-.3-18.3-.6-18.3-.6 1.8.4 3.5 1.2 3.2 4.2-.4 3.4-1.7 4.1-3.8 4.2 2.9 1.7 2.7 4 2.3 5.4-.6 2.4-4.9 3.1-4.9 3.1 3.2.9 2.6 2.4 2.3 4.5-.2 1.5-1.5 2.9-3.7 3.5-2.2.5-3.8 2.2-21-.3-4.6-.7-6.8-4.6-7.9-10.6-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1.7-.7 4.8.4 4.5 3.4" fill="#ffe1bd"/><g fill="#e6b796"><path d="m36.9 49.3c.6-3.8-5.3-3.5-2.8-2.7 2.5.8 2.8 2.7 2.8 2.7"/><path d="m39.4 42c.5-5.2-5.3-4.7-2.9-3.7 2.4 1 2.9 3.7 2.9 3.7"/><path d="m40.7 33.4c.5-5.2-5.7-4.7-3.3-3.7 2.5 1 3.3 3.7 3.3 3.7"/><path d="m27.2 20.7c0 0 12.6-1.5 28.6-.7 2.3.1 5.9.1 6.1 4.3-1.4-4.8-17.3-2.6-34.7-3.6"/><path d="m34.4 10c-.7-.2-1.5-.1-2 .1-4.5 2.1-8.3 2.8-11.4 3.1-1 .1-1.8.5-2.4 1.2l-12.2 9c-1.9 1.4-2.9 3.7-2.8 6 0 .4 0 .7 0 1.1.3 4 1.4 9.5 2.1 13.5.7 4.2 2.1 7.5 4.4 9.2-3.4-1.3-5.1-5-6-10.1-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1-.4 2.6-.2 3.6.8"/><path d="m23 19.5c0 0 4.3-1.3 6.3-1.8 1.7-.4 4.8-2 6-4.6-.6 4.2-4 5.6-5.7 6.1l-.8.2c0 0-.5.7-1.5 1.4-.1-.1-2-1.5-4.3-1.3"/><path d="m36.4 29.8c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.6-.3 1.2-.4 1.8-.2"/><path d="m34.8 37.7c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.3 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/><path d="m32.4 46.2c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.3 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fc.svg
index bd05669..d30c03f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m35.31 12.646c-.418 4.445-3.977 5.928-5.736 6.447l-.832.24c0 0-.572.498-1.473 1.131-.014.074-.033.148-.049.223 0 0 7.752.465 10.305.113 2.822-.391 15.242-.387 18.287-.549 3.583-.189 6.194.459 6.194 4.504 0 4.092-3.172 5.342-6.194 5.092-4.166-.344-18.258-.563-18.258-.563 1.818.436 3.486 1.223 3.176 4.217-.355 3.428-1.684 4.076-3.814 4.232 2.883 1.682 2.668 3.961 2.311 5.377-.604 2.393-4.914 3.059-4.914 3.082 3.201.939 2.645 2.422 2.336 4.498-.189 1.268-1.484 2.748-3.688 3.279-2.207.533-3.836 2.174-21.05-.287-4.52-.646-6.746-4.592-7.775-10.547-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.659-.764 4.782.335 4.489 3.413"/><g fill="#e0a372"><path d="m36.854 49.31c.57-3.816-5.295-3.523-2.828-2.736 2.585.825 2.828 2.736 2.828 2.736"/><path d="m39.41 41.988c.535-5.209-5.271-4.67-2.885-3.67 2.422 1.014 2.885 3.67 2.885 3.67"/><path d="m40.738 33.395c.533-5.211-5.654-4.672-3.268-3.672 2.423 1.015 3.268 3.672 3.268 3.672"/><path d="m27.22 20.688c0 0 12.596-1.457 28.639-.748 2.335.104 5.938.113 6.13 4.266-1.473-4.663-17.386-2.497-34.769-3.518"/><path d="m34.432 9.994c-.721-.186-1.469-.148-2.041.115-4.488 2.064-8.318 2.795-11.369 3.117-1.023.107-1.846.514-2.43 1.152-.014.012-.029.02-.045.029l-12.192 8.95c-1.918 1.41-2.885 3.691-2.766 5.959-.018.359-.02.723.01 1.092.311 4.092 1.414 9.58 2.107 13.604.736 4.25 2.086 7.469 4.438 9.201-3.352-1.328-5.125-4.957-6.01-10.08-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.032-.475 2.623-.231 3.616.759"/><path d="m22.975 19.459c0 0 4.309-1.313 6.338-1.84 1.691-.438 4.76-2.01 5.955-4.633-.563 4.182-3.984 5.602-5.697 6.107l-.832.24c0 0-.479.701-1.521 1.354-.001.001-1.96-1.382-4.243-1.228"/><path d="m36.418 29.803c-.578.209-1.026.487-1.487.794-.454.313-.927.641-1.466.928-.542.27-1.165.488-1.811.491-.642.018-1.268-.171-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.147.976-.351 1.46-.608.491-.238.993-.535 1.576-.734.57-.208 1.248-.312 1.832-.098"/><path d="m34.779 37.664c-.578.209-1.026.487-1.487.794-.454.312-.927.641-1.466.926-.542.271-1.165.488-1.811.491-.642.018-1.268-.171-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.977-.351 1.46-.607.491-.237.993-.534 1.576-.733.572-.208 1.248-.312 1.832-.098"/><path d="m32.385 46.24c-.578.209-1.026.487-1.487.794-.454.312-.926.64-1.465.926-.542.27-1.165.488-1.81.491-.642.018-1.268-.171-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.975-.351 1.459-.607.49-.237.993-.535 1.576-.734.57-.207 1.247-.311 1.831-.097"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.3 12.6c-.4 4.4-4 5.9-5.7 6.4l-.8.2c0 0-.6.5-1.5 1.1 0 .1 0 .1 0 .2 0 0 7.8.5 10.3.1 2.8-.4 15.2-.4 18.3-.5 3.6-.2 6.2.5 6.2 4.5 0 4.1-3.2 5.3-6.2 5.1-4.2-.3-18.3-.6-18.3-.6 1.8.4 3.5 1.2 3.2 4.2-.4 3.4-1.7 4.1-3.8 4.2 2.9 1.7 2.7 4 2.3 5.4-.6 2.4-4.9 3.1-4.9 3.1 3.2.9 2.6 2.4 2.3 4.5-.2 1.5-1.5 2.9-3.7 3.5-2.2.5-3.8 2.2-21-.3-4.6-.7-6.8-4.6-7.9-10.6-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1.7-.7 4.8.4 4.5 3.4" fill="#fed0ac"/><g fill="#e0a372"><path d="m36.9 49.3c.6-3.8-5.3-3.5-2.8-2.7 2.5.8 2.8 2.7 2.8 2.7"/><path d="m39.4 42c.5-5.2-5.3-4.7-2.9-3.7 2.4 1 2.9 3.7 2.9 3.7"/><path d="m40.7 33.4c.5-5.2-5.7-4.7-3.3-3.7 2.5 1 3.3 3.7 3.3 3.7"/><path d="m27.2 20.7c0 0 12.6-1.5 28.6-.7 2.3.1 5.9.1 6.1 4.3-1.4-4.8-17.3-2.6-34.7-3.6"/><path d="m34.4 10c-.7-.2-1.5-.1-2 .1-4.5 2.1-8.3 2.8-11.4 3.1-1 .1-1.8.5-2.4 1.2l-12.2 9c-1.9 1.4-2.9 3.7-2.8 6 0 .4 0 .7 0 1.1.3 4 1.4 9.5 2.1 13.5.7 4.2 2.1 7.5 4.4 9.2-3.4-1.3-5.1-5-6-10.1-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1-.4 2.6-.2 3.6.8"/><path d="m23 19.5c0 0 4.3-1.3 6.3-1.8 1.7-.4 4.8-2 6-4.6-.6 4.2-4 5.6-5.7 6.1l-.8.2c0 0-.5.7-1.5 1.4-.1-.1-2-1.5-4.3-1.3"/><path d="m36.4 29.8c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.6-.3 1.2-.4 1.8-.2"/><path d="m34.8 37.7c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/><path d="m32.4 46.2c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fd.svg
index 5bd042a..421e7e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m35.31 12.646c-.418 4.445-3.977 5.928-5.736 6.447l-.832.24c0 0-.572.498-1.473 1.131-.014.074-.033.148-.049.223 0 0 7.752.465 10.305.113 2.822-.391 15.242-.387 18.287-.549 3.583-.189 6.194.459 6.194 4.504 0 4.092-3.172 5.342-6.194 5.092-4.166-.344-18.258-.563-18.258-.563 1.818.436 3.486 1.223 3.176 4.217-.355 3.428-1.684 4.076-3.814 4.232 2.883 1.682 2.668 3.961 2.311 5.377-.604 2.393-4.914 3.059-4.914 3.082 3.201.939 2.645 2.422 2.336 4.498-.189 1.268-1.484 2.748-3.688 3.279-2.207.533-3.836 2.174-21.05-.287-4.52-.646-6.746-4.592-7.775-10.547-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.659-.764 4.782.335 4.489 3.413"/><g fill="#b58360"><path d="m36.854 49.31c.57-3.816-5.295-3.523-2.828-2.736 2.585.825 2.828 2.736 2.828 2.736"/><path d="m39.41 41.988c.535-5.209-5.271-4.67-2.885-3.67 2.422 1.014 2.885 3.67 2.885 3.67"/><path d="m40.738 33.395c.533-5.211-5.654-4.672-3.268-3.672 2.423 1.015 3.268 3.672 3.268 3.672"/><path d="m27.22 20.688c0 0 12.596-1.457 28.639-.748 2.335.104 5.938.113 6.13 4.266-1.473-4.663-17.386-2.497-34.769-3.518"/><path d="m34.432 9.994c-.721-.186-1.469-.148-2.041.115-4.488 2.064-8.318 2.795-11.369 3.117-1.023.107-1.846.514-2.43 1.152-.014.012-.029.02-.045.029l-12.192 8.95c-1.918 1.41-2.885 3.691-2.766 5.959-.018.359-.02.723.01 1.092.311 4.092 1.414 9.58 2.107 13.604.736 4.25 2.086 7.469 4.438 9.201-3.352-1.328-5.125-4.957-6.01-10.08-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.032-.475 2.623-.231 3.616.759"/><path d="m22.975 19.459c0 0 4.309-1.313 6.338-1.84 1.691-.438 4.76-2.01 5.955-4.633-.563 4.182-3.984 5.602-5.697 6.107l-.832.24c0 0-.479.701-1.521 1.354-.001.001-1.96-1.382-4.243-1.228"/><path d="m36.418 29.803c-.578.209-1.026.486-1.487.793-.454.313-.927.641-1.466.928-.542.27-1.165.488-1.811.492-.642.018-1.268-.172-1.768-.523.613-.051 1.158-.105 1.664-.25.504-.147.976-.352 1.46-.609.491-.237.993-.535 1.576-.734.57-.207 1.248-.311 1.832-.097"/><path d="m34.779 37.664c-.578.209-1.026.486-1.487.793-.454.313-.927.641-1.466.927-.542.271-1.165.487-1.811.491-.642.018-1.268-.172-1.768-.523.613-.051 1.158-.105 1.664-.25.504-.146.977-.351 1.46-.607.491-.238.993-.535 1.576-.734.572-.207 1.248-.311 1.832-.097"/><path d="m32.385 46.24c-.578.209-1.026.486-1.487.793-.454.313-.926.641-1.465.926-.542.271-1.165.488-1.81.492-.642.018-1.268-.172-1.768-.523.613-.051 1.158-.105 1.664-.25.504-.146.975-.352 1.459-.607.49-.238.993-.535 1.576-.734.57-.207 1.247-.311 1.831-.097"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.3 12.6c-.4 4.4-4 5.9-5.7 6.4l-.8.2c0 0-.6.5-1.5 1.1 0 .1 0 .1 0 .2 0 0 7.8.5 10.3.1 2.8-.4 15.2-.4 18.3-.5 3.6-.2 6.2.5 6.2 4.5 0 4.1-3.2 5.3-6.2 5.1-4.2-.3-18.3-.6-18.3-.6 1.8.4 3.5 1.2 3.2 4.2-.4 3.4-1.7 4.1-3.8 4.2 2.9 1.7 2.7 4 2.3 5.4-.6 2.4-4.9 3.1-4.9 3.1 3.2.9 2.6 2.4 2.3 4.5-.2 1.5-1.5 2.9-3.7 3.5-2.2.5-3.8 2.2-21-.3-4.6-.7-6.8-4.6-7.9-10.6-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1.7-.7 4.8.4 4.5 3.4" fill="#d6a57c"/><g fill="#b58360"><path d="m36.9 49.3c.6-3.8-5.3-3.5-2.8-2.7 2.5.8 2.8 2.7 2.8 2.7"/><path d="m39.4 42c.5-5.2-5.3-4.7-2.9-3.7 2.4 1 2.9 3.7 2.9 3.7"/><path d="m40.7 33.4c.5-5.2-5.7-4.7-3.3-3.7 2.5 1 3.3 3.7 3.3 3.7"/><path d="m27.2 20.7c0 0 12.6-1.5 28.6-.7 2.3.1 5.9.1 6.1 4.3-1.4-4.8-17.3-2.6-34.7-3.6"/><path d="m34.4 10c-.7-.2-1.5-.1-2 .1-4.5 2.1-8.3 2.8-11.4 3.1-1 .1-1.8.5-2.4 1.2l-12.2 9c-1.9 1.4-2.9 3.7-2.8 6 0 .4 0 .7 0 1.1.3 4 1.4 9.5 2.1 13.5.7 4.2 2.1 7.5 4.4 9.2-3.4-1.3-5.1-5-6-10.1-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1-.4 2.6-.2 3.6.8"/><path d="m23 19.5c0 0 4.3-1.3 6.3-1.8 1.7-.4 4.8-2 6-4.6-.6 4.2-4 5.6-5.7 6.1l-.8.2c0 0-.5.7-1.5 1.4-.1-.1-2-1.5-4.3-1.3"/><path d="m36.4 29.8c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6-.1 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.6-.3 1.2-.4 1.8-.2"/><path d="m34.8 37.7c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6-.1 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/><path d="m32.4 46.2c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6-.1 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fe.svg
index 93d6c60..43db2b7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m35.31 12.646c-.418 4.445-3.977 5.928-5.736 6.447l-.832.24c0 0-.572.498-1.473 1.131-.014.074-.033.148-.049.223 0 0 7.752.465 10.305.113 2.822-.391 15.242-.387 18.287-.549 3.583-.189 6.194.459 6.194 4.504 0 4.092-3.172 5.342-6.194 5.092-4.166-.344-18.258-.563-18.258-.563 1.818.436 3.486 1.223 3.176 4.217-.355 3.428-1.684 4.076-3.814 4.232 2.883 1.682 2.668 3.961 2.311 5.377-.604 2.393-4.914 3.059-4.914 3.082 3.201.939 2.645 2.422 2.336 4.498-.189 1.268-1.484 2.748-3.688 3.279-2.207.533-3.836 2.174-21.05-.287-4.52-.646-6.746-4.592-7.775-10.547-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.659-.764 4.782.335 4.489 3.413"/><g fill="#935e3e"><path d="m36.854 49.31c.57-3.816-5.295-3.523-2.828-2.736 2.585.825 2.828 2.736 2.828 2.736"/><path d="m39.41 41.988c.535-5.209-5.271-4.67-2.885-3.67 2.422 1.014 2.885 3.67 2.885 3.67"/><path d="m40.738 33.395c.533-5.211-5.654-4.672-3.268-3.672 2.423 1.015 3.268 3.672 3.268 3.672"/><path d="m27.22 20.688c0 0 12.596-1.457 28.639-.748 2.335.104 5.938.113 6.13 4.266-1.473-4.663-17.386-2.497-34.769-3.518"/><path d="m34.432 9.994c-.721-.186-1.469-.148-2.041.115-4.488 2.064-8.318 2.795-11.369 3.117-1.023.107-1.846.514-2.43 1.152-.014.012-.029.02-.045.029l-12.192 8.95c-1.918 1.41-2.885 3.691-2.766 5.959-.018.359-.02.723.01 1.092.311 4.092 1.414 9.58 2.107 13.604.736 4.25 2.086 7.469 4.438 9.201-3.352-1.328-5.125-4.957-6.01-10.08-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.032-.475 2.623-.231 3.616.759"/><path d="m22.975 19.459c0 0 4.309-1.313 6.338-1.84 1.691-.438 4.76-2.01 5.955-4.633-.563 4.182-3.984 5.602-5.697 6.107l-.832.24c0 0-.479.701-1.521 1.354-.001.001-1.96-1.382-4.243-1.228"/><path d="m36.418 29.803c-.578.209-1.026.487-1.487.794-.454.313-.927.641-1.466.927-.542.271-1.165.488-1.811.492-.642.018-1.268-.172-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.976-.351 1.46-.608.491-.237.993-.535 1.576-.734.57-.208 1.248-.311 1.832-.098"/><path d="m34.779 37.664c-.578.209-1.026.486-1.487.793-.454.313-.927.641-1.466.928-.542.27-1.165.487-1.811.49-.642.018-1.268-.172-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.977-.35 1.46-.607.491-.238.993-.535 1.576-.734.572-.206 1.248-.31 1.832-.097"/><path d="m32.385 46.24c-.578.209-1.026.486-1.487.793-.454.313-.926.641-1.465.927-.542.271-1.165.488-1.81.491-.642.018-1.268-.172-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.975-.351 1.459-.607.49-.238.993-.535 1.576-.734.57-.206 1.247-.31 1.831-.097"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.3 12.6c-.4 4.4-4 5.9-5.7 6.4l-.8.2c0 0-.6.5-1.5 1.1 0 .1 0 .1 0 .2 0 0 7.8.5 10.3.1 2.8-.4 15.2-.4 18.3-.5 3.6-.2 6.2.5 6.2 4.5 0 4.1-3.2 5.3-6.2 5.1-4.2-.3-18.3-.6-18.3-.6 1.8.4 3.5 1.2 3.2 4.2-.4 3.4-1.7 4.1-3.8 4.2 2.9 1.7 2.7 4 2.3 5.4-.6 2.4-4.9 3.1-4.9 3.1 3.2.9 2.6 2.4 2.3 4.5-.2 1.5-1.5 2.9-3.7 3.5-2.2.5-3.8 2.2-21-.3-4.6-.7-6.8-4.6-7.9-10.6-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1.7-.7 4.8.4 4.5 3.4" fill="#b47d56"/><g fill="#935e3e"><path d="m36.9 49.3c.6-3.8-5.3-3.5-2.8-2.7 2.5.8 2.8 2.7 2.8 2.7"/><path d="m39.4 42c.5-5.2-5.3-4.7-2.9-3.7 2.4 1 2.9 3.7 2.9 3.7"/><path d="m40.7 33.4c.5-5.2-5.7-4.7-3.3-3.7 2.5 1 3.3 3.7 3.3 3.7"/><path d="m27.2 20.7c0 0 12.6-1.5 28.6-.7 2.3.1 5.9.1 6.1 4.3-1.4-4.8-17.3-2.6-34.7-3.6"/><path d="m34.4 10c-.7-.2-1.5-.1-2 .1-4.5 2.1-8.3 2.8-11.4 3.1-1 .1-1.8.5-2.4 1.2l-12.2 9c-1.9 1.4-2.9 3.7-2.8 6 0 .4 0 .7 0 1.1.3 4 1.4 9.5 2.1 13.5.7 4.2 2.1 7.5 4.4 9.2-3.4-1.3-5.1-5-6-10.1-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1-.4 2.6-.2 3.6.8"/><path d="m23 19.5c0 0 4.3-1.3 6.3-1.8 1.7-.4 4.8-2 6-4.6-.6 4.2-4 5.6-5.7 6.1l-.8.2c0 0-.5.7-1.5 1.4-.1-.1-2-1.5-4.3-1.3"/><path d="m36.4 29.8c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.6-.3 1.2-.4 1.8-.2"/><path d="m34.8 37.7c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.3 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/><path d="m32.4 46.2c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3ff.svg
index 22e31ff..c3fde3f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f449-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m35.31 12.646c-.418 4.445-3.977 5.928-5.736 6.447l-.832.24c0 0-.572.498-1.473 1.131-.014.074-.033.148-.049.223 0 0 7.752.465 10.305.113 2.822-.391 15.242-.387 18.287-.549 3.583-.189 6.194.459 6.194 4.504 0 4.092-3.172 5.342-6.194 5.092-4.166-.344-18.258-.563-18.258-.563 1.818.436 3.486 1.223 3.176 4.217-.355 3.428-1.684 4.076-3.814 4.232 2.883 1.682 2.668 3.961 2.311 5.377-.604 2.393-4.914 3.059-4.914 3.082 3.201.939 2.645 2.422 2.336 4.498-.189 1.268-1.484 2.748-3.688 3.279-2.207.533-3.836 2.174-21.05-.287-4.52-.646-6.746-4.592-7.775-10.547-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.659-.764 4.782.335 4.489 3.413"/><g fill="#705041"><path d="m36.854 49.31c.57-3.816-5.295-3.523-2.828-2.736 2.585.825 2.828 2.736 2.828 2.736"/><path d="m39.41 41.988c.535-5.209-5.271-4.67-2.885-3.67 2.422 1.014 2.885 3.67 2.885 3.67"/><path d="m40.738 33.395c.533-5.211-5.654-4.672-3.268-3.672 2.423 1.015 3.268 3.672 3.268 3.672"/><path d="m27.22 20.688c0 0 12.596-1.457 28.639-.748 2.335.104 5.938.113 6.13 4.266-1.473-4.663-17.386-2.497-34.769-3.518"/><path d="m34.432 9.994c-.721-.186-1.469-.148-2.041.115-4.488 2.064-8.318 2.795-11.369 3.117-1.023.107-1.846.514-2.43 1.152-.014.012-.029.02-.045.029l-12.192 8.95c-1.918 1.41-2.885 3.691-2.766 5.959-.018.359-.02.723.01 1.092.311 4.092 1.414 9.58 2.107 13.604.736 4.25 2.086 7.469 4.438 9.201-3.352-1.328-5.125-4.957-6.01-10.08-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.032-.475 2.623-.231 3.616.759"/><path d="m22.975 19.459c0 0 4.309-1.313 6.338-1.84 1.691-.438 4.76-2.01 5.955-4.633-.563 4.182-3.984 5.602-5.697 6.107l-.832.24c0 0-.479.701-1.521 1.354-.001.001-1.96-1.382-4.243-1.228"/><path d="m36.418 29.803c-.578.209-1.026.488-1.487.795-.454.313-.927.641-1.466.927-.542.271-1.165.488-1.811.491-.642.018-1.268-.171-1.768-.523.613-.049 1.158-.104 1.664-.25.504-.146.976-.35 1.46-.607.491-.238.993-.535 1.576-.734.57-.209 1.248-.312 1.832-.099"/><path d="m34.779 37.664c-.578.209-1.026.487-1.487.794-.454.312-.927.641-1.466.927-.542.27-1.165.488-1.811.49-.642.018-1.268-.171-1.768-.523.613-.049 1.158-.104 1.664-.25.504-.146.977-.35 1.46-.607.491-.237.993-.534 1.576-.733.572-.207 1.248-.311 1.832-.098"/><path d="m32.385 46.24c-.578.209-1.026.487-1.487.794-.454.312-.926.64-1.465.927-.542.27-1.165.488-1.81.49-.642.018-1.268-.171-1.768-.523.613-.049 1.158-.104 1.664-.25.504-.146.975-.35 1.459-.607.49-.237.993-.535 1.576-.734.57-.206 1.247-.31 1.831-.097"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.3 12.6c-.4 4.4-4 5.9-5.7 6.4l-.8.2c0 0-.6.5-1.5 1.1 0 .1 0 .1 0 .2 0 0 7.8.5 10.3.1 2.8-.4 15.2-.4 18.3-.5 3.6-.2 6.2.5 6.2 4.5 0 4.1-3.2 5.3-6.2 5.1-4.2-.3-18.3-.6-18.3-.6 1.8.4 3.5 1.2 3.2 4.2-.4 3.4-1.7 4.1-3.8 4.2 2.9 1.7 2.7 4 2.3 5.4-.6 2.4-4.9 3.1-4.9 3.1 3.2.9 2.6 2.4 2.3 4.5-.2 1.5-1.5 2.9-3.7 3.5-2.2.5-3.8 2.2-21-.3-4.6-.7-6.8-4.6-7.9-10.6-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1.7-.7 4.8.4 4.5 3.4" fill="#8a6859"/><g fill="#705041"><path d="m36.9 49.3c.6-3.8-5.3-3.5-2.8-2.7 2.5.8 2.8 2.7 2.8 2.7"/><path d="m39.4 42c.5-5.2-5.3-4.7-2.9-3.7 2.4 1 2.9 3.7 2.9 3.7"/><path d="m40.7 33.4c.5-5.2-5.7-4.7-3.3-3.7 2.5 1 3.3 3.7 3.3 3.7"/><path d="m27.2 20.7c0 0 12.6-1.5 28.6-.7 2.3.1 5.9.1 6.1 4.3-1.4-4.8-17.3-2.6-34.7-3.6"/><path d="m34.4 10c-.7-.2-1.5-.1-2 .1-4.5 2.1-8.3 2.8-11.4 3.1-1 .1-1.8.5-2.4 1.2l-12.2 9c-1.9 1.4-2.9 3.7-2.8 6 0 .4 0 .7 0 1.1.3 4 1.4 9.5 2.1 13.5.7 4.2 2.1 7.5 4.4 9.2-3.4-1.3-5.1-5-6-10.1-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1-.4 2.6-.2 3.6.8"/><path d="m23 19.5c0 0 4.3-1.3 6.3-1.8 1.7-.4 4.8-2 6-4.6-.6 4.2-4 5.6-5.7 6.1l-.8.2c0 0-.5.7-1.5 1.4-.1-.1-2-1.5-4.3-1.3"/><path d="m36.4 29.8c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.6-.3 1.2-.4 1.8-.2"/><path d="m34.8 37.7c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.3 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/><path d="m32.4 46.2c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.3 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f449.svg b/build/js/jsxc/lib/emojione/assets/svg/1f449.svg
index 876ae2a..815e08e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f449.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f449.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m35.3 12.646c-.418 4.445-3.977 5.928-5.736 6.447l-.832.24c0 0-.572.498-1.473 1.131-.014.074-.033.148-.049.223 0 0 7.752.465 10.305.113 2.822-.391 15.242-.387 18.287-.549 3.583-.189 6.194.459 6.194 4.504 0 4.092-3.172 5.342-6.194 5.092-4.166-.344-18.258-.563-18.258-.563 1.818.436 3.486 1.223 3.176 4.217-.355 3.428-1.684 4.076-3.814 4.232 2.883 1.682 2.668 3.961 2.311 5.377-.604 2.393-4.914 3.059-4.914 3.082 3.201.939 2.645 2.422 2.336 4.498-.189 1.268-1.484 2.748-3.688 3.279-2.207.533-3.836 2.174-21.05-.287-4.52-.646-6.746-4.592-7.775-10.547-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.659-.765 4.782.334 4.489 3.413"/><g fill="#eba352"><path d="m36.851 49.31c.57-3.816-5.295-3.523-2.828-2.736 2.585.825 2.828 2.736 2.828 2.736"/><path d="m39.41 41.987c.535-5.209-5.271-4.67-2.885-3.67 2.422 1.014 2.885 3.67 2.885 3.67"/><path d="m40.735 33.394c.533-5.211-5.654-4.672-3.268-3.672 2.423 1.015 3.268 3.672 3.268 3.672"/><path d="m27.21 20.687c0 0 12.596-1.457 28.639-.748 2.335.104 5.938.113 6.13 4.266-1.473-4.663-17.386-2.497-34.769-3.518"/><path d="m34.429 9.993c-.721-.186-1.469-.148-2.041.115-4.488 2.064-8.318 2.795-11.369 3.117-1.023.107-1.846.514-2.43 1.152-.014.012-.029.02-.045.029l-12.191 8.95c-1.918 1.41-2.885 3.691-2.766 5.959-.018.359-.02.723.01 1.092.311 4.092 1.414 9.58 2.107 13.604.736 4.25 2.086 7.469 4.438 9.201-3.352-1.328-5.125-4.957-6.01-10.08-.693-4.02-1.797-9.512-2.107-13.604-.029-.369-.027-.732-.01-1.092-.119-2.268.848-4.549 2.766-5.959l12.191-8.949c.016-.01.031-.018.045-.029.584-.639 1.406-1.045 2.43-1.152 3.051-.322 6.881-1.053 11.369-3.117 1.031-.475 2.623-.231 3.615.759"/><path d="m22.972 19.458c0 0 4.309-1.313 6.338-1.84 1.691-.438 4.76-2.01 5.955-4.633-.563 4.182-3.984 5.602-5.697 6.107l-.832.24c0 0-.479.701-1.521 1.354-.001.001-1.96-1.382-4.243-1.228"/><path d="m36.415 29.802c-.578.209-1.026.487-1.487.794-.454.313-.927.641-1.466.927-.542.27-1.165.488-1.811.492-.642.018-1.268-.171-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.147.976-.351 1.46-.608.491-.238.993-.535 1.576-.734.57-.208 1.248-.312 1.832-.098"/><path d="m34.776 37.663c-.578.209-1.026.486-1.487.793-.454.313-.927.641-1.466.928-.542.27-1.165.487-1.811.49-.642.018-1.268-.172-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.977-.35 1.46-.607.491-.238.993-.535 1.576-.734.572-.206 1.248-.31 1.832-.097"/><path d="m32.382 46.24c-.578.209-1.026.486-1.487.793-.454.313-.926.641-1.465.927-.542.271-1.165.488-1.81.491-.642.018-1.268-.172-1.768-.523.613-.05 1.158-.104 1.664-.25.504-.146.975-.351 1.459-.607.49-.238.993-.535 1.576-.734.57-.206 1.247-.31 1.831-.097"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.3 12.6c-.4 4.4-4 5.9-5.7 6.4l-.8.2c0 0-.6.5-1.5 1.1 0 .1 0 .1 0 .2 0 0 7.8.5 10.3.1 2.8-.4 15.2-.4 18.3-.5 3.6-.2 6.2.5 6.2 4.5 0 4.1-3.2 5.3-6.2 5.1-4.2-.3-18.3-.6-18.3-.6 1.8.4 3.5 1.2 3.2 4.2-.4 3.4-1.7 4.1-3.8 4.2 2.9 1.7 2.7 4 2.3 5.4-.6 2.4-4.9 3.1-4.9 3.1 3.2.9 2.6 2.4 2.3 4.5-.2 1.5-1.5 2.9-3.7 3.5-2.2.5-3.8 2.2-21-.3-4.6-.7-6.8-4.6-7.9-10.6-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1.7-.7 4.8.4 4.5 3.4" fill="#ffdd67"/><g fill="#eba352"><path d="m36.9 49.3c.6-3.8-5.3-3.5-2.8-2.7 2.5.8 2.8 2.7 2.8 2.7"/><path d="m39.4 42c.5-5.2-5.3-4.7-2.9-3.7 2.4 1 2.9 3.7 2.9 3.7"/><path d="m40.7 33.4c.5-5.2-5.7-4.7-3.3-3.7 2.5 1 3.3 3.7 3.3 3.7"/><path d="m27.2 20.7c0 0 12.6-1.5 28.6-.7 2.3.1 5.9.1 6.1 4.3-1.4-4.8-17.3-2.6-34.7-3.6"/><path d="m34.4 10c-.7-.2-1.5-.1-2 .1-4.5 2.1-8.3 2.8-11.4 3.1-1 .1-1.8.5-2.4 1.2l-12.2 9c-1.9 1.4-2.9 3.7-2.8 6 0 .4 0 .7 0 1.1.3 4 1.4 9.5 2.1 13.5.7 4.2 2.1 7.5 4.4 9.2-3.4-1.3-5.1-5-6-10.1-.7-4-1.8-9.5-2.1-13.6 0-.4 0-.7 0-1.1-.1-2.3.8-4.5 2.8-6l12.2-8.9c0 0 0 0 0 0 .6-.6 1.4-1 2.4-1.2 3.1-.3 6.9-1.1 11.4-3.1 1-.4 2.6-.2 3.6.8"/><path d="m23 19.5c0 0 4.3-1.3 6.3-1.8 1.7-.4 4.8-2 6-4.6-.6 4.2-4 5.6-5.7 6.1l-.8.2c0 0-.5.7-1.5 1.4-.1-.1-2-1.5-4.3-1.3"/><path d="m36.4 29.8c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.6-.3 1.2-.4 1.8-.2"/><path d="m34.8 37.7c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.3 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/><path d="m32.4 46.2c-.6.2-1 .5-1.5.8-.5.3-.9.6-1.5.9-.5.3-1.2.5-1.8.5-.6 0-1.3-.2-1.8-.5.6 0 1.2-.1 1.7-.2.5-.1 1-.4 1.5-.6.5-.2 1-.5 1.6-.7.5-.3 1.2-.4 1.8-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fb.svg
index c59501e..6b68ade 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m59.48 15.495c-.045-2.631-2.209-6.205-6.538-6.938-3.52-.596-7.07.6-7.93 3.59-.445-3.902-3.869-5.244-8.08-5.143-4.1.102-7.475 1.969-7.891 5.738-1.031-2.242-3.676-2.943-6.818-2.867l-.127.004c-3.068.074-5.688 1.162-6.697 3.463-.908-.5-2.238-.561-4.186.115-2.402.836-6.646 4.418-8.414 11.854-1.365 5.736.5 13.731.5 13.731-.189 3.555 2.564 6.59 6.1 6.779 2.734.145 5.111-1.301 6.252-3.49l.031 1.154c.098 3.982 3.414 7.131 7.406 7.03l.127-.002c3.162-.08 5.795-2.172 6.707-5.02.664 3.863 4.072 6.762 8.119 6.662 4.42-.109 7.916-3.752 7.85-8.154.596 3.598 3.754 6.314 7.516 6.244l.125-.002c4.134-.076 8.54-4.119 8.464-8.24 0 .001-2.27-11.812-2.52-26.515"/><path fill="#e6b796" d="m61.836 43.517c-1.342 1.623-3.34 2.768-5.608 2.809l-.125.002c-.389.008-.799-.02-1.217-.064-.199-.025-.402-.051-.607-.076-2.605-.412-5.484-1.723-7.135-3.605.352-2.299.402-4.596.371-6.854-.039-2.459-.193-4.883-.303-7.301-.113-2.422-.18-4.818-.082-7.303-.521 1.135-.867 2.346-1.133 3.564-.264 1.225-.43 2.463-.543 3.699-.221 2.477-.221 4.944-.178 7.377.041 2.436.141 4.844.041 7.213-.053 1.184-.088 2.965-.48 3.793-.805 1.693-3.203 2.055-5.221 2.104-3.494.086-7.225-2.027-8.717-5.088.004-.033.008-.064.012-.098.139-1.064.279-2.131.396-3.205.225-2.143.365-4.313.365-6.48 0-2.174-.131-4.352-.436-6.512-.15-1.08-.346-2.158-.598-3.221-.256-1.064-.553-2.119-.953-3.146-.082 1.1-.109 2.184-.141 3.26-.029 1.078-.045 2.148-.063 3.217-.029 2.137-.051 4.266-.051 6.401.002 2.135.02 4.273.117 6.432.045.902.102 3.506.195 4.66-1.27 1.275-3.01 2.088-4.955 2.137l-.125.002c-3.324.082-6.717-2.561-7.82-5.744.006-.098.01-.195.018-.293.129-1.852.268-3.715.354-5.594.08-1.879.117-3.776-.012-5.696-.068-.955-.172-1.918-.367-2.879-.105-.48-.225-.961-.396-1.428-.086-.234-.188-.465-.305-.686-.123-.221-.264-.432-.447-.598.07.232.102.463.121.697.018.229.018.463.012.693-.01.461-.043.924-.084 1.387-.086.924-.191 1.85-.297 2.779-.205 1.861-.381 3.737-.463 5.633-.076 1.893-.082 3.805.133 5.732.006.051.016.1.021.15-1.162.791-2.598 1.146-4.154 1.146-10.117 0-7.969-14.776-6.605-20.51.227-.949.482-1.809.764-2.59-.912 1.438-1.729 3.342-2.33 5.877-1.365 5.736-1.977 20.51 6.6 20.51 2.518 0 4.723-1.078 5.951-2.975.08.424.295 7.674 7.738 7.674l.127-.002c2.314-.059 4.328-1.205 5.611-2.926-.125.549-.234 1.217-.311 2.055-.502 5.434 3.799 8.111 6.455 7.164 7.18-2.563 13.172-2.91 17.908-2.727 3.203.123 5.317-2.127 5.745-5.797 1.625-1.24 2.861-3.03 3.207-4.769"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 15.5c0-2.6-2.2-6.2-6.5-6.9-3.6-.6-7.1.6-8 3.5-.4-3.9-3.9-5.2-8.1-5.1-4.1.1-7.5 2-7.9 5.7-1-2.2-3.7-2.9-6.8-2.9h-.1c-3.1.2-5.7 1.2-6.7 3.5-.9-.5-2.2-.6-4.2.1-2.4.8-6.6 4.4-8.4 11.9-1.4 5.7.5 13.7.5 13.7-.2 3.6 2.6 6.6 6.1 6.8 2.7.1 5.1-1.3 6.3-3.5v1.2c.1 4 3.4 7.1 7.4 7h.1c3.2-.1 5.8-2.2 6.7-5 .7 3.9 4.1 6.8 8.1 6.7 4.4-.1 7.9-3.8 7.8-8.2.6 3.6 3.8 6.3 7.5 6.2h.1c4.1-.1 8.5-4.1 8.5-8.2.1 0-2.2-11.8-2.4-26.5" fill="#ffe1bd"/><path d="m61.8 43.5c-1.3 1.6-3.3 2.8-5.6 2.8h-.1c-.4 0-.8 0-1.2-.1-.2 0-.4-.1-.6-.1-2.6-.4-5.5-1.7-7.1-3.6.4-2.3.4-4.6.4-6.9 0-2.5-.2-4.9-.3-7.3-.1-2.4-.2-4.8-.1-7.3-.5 1.1-.9 2.3-1.1 3.6-.3 1.2-.4 2.5-.5 3.7-.2 2.5-.2 4.9-.2 7.4 0 2.4.1 4.8 0 7.2-.1 1.2-.1 3-.5 3.8-.8 1.7-3.2 2.1-5.2 2.1-3.5.1-7.2-2-8.7-5.1 0 0 0-.1 0-.1.1-1.1.3-2.1.4-3.2.2-2.1.4-4.3.4-6.5 0-2.2-.1-4.4-.4-6.5-.1-1.1-.3-2.2-.6-3.2-.3-1.1-.6-2.1-1-3.1-.1 1.1-.1 2.2-.1 3.3 0 1.1 0 2.1-.1 3.2 0 2.1-.1 4.3-.1 6.4 0 2.1 0 4.3.1 6.4 0 .9.1 3.5.2 4.7-1.3 1.3-3 2.1-5 2.1h-.1c-3.3.1-6.7-2.6-7.8-5.7 0-.1 0-.2 0-.3.1-1.9.3-3.7.4-5.6.1-1.9.1-3.8 0-5.7-.2-.9-.3-1.9-.5-2.9-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.3-.4-.4-.6.1.2.1.5.1.7 0 .2 0 .5 0 .7 0 .5 0 .9-.1 1.4-.1.9-.2 1.9-.3 2.8-.2 1.9-.4 3.7-.5 5.6-.1 1.9-.1 3.8.1 5.7 0 .1 0 .1 0 .2-1.2.8-2.6 1.1-4.2 1.1-9.9 0-7.8-14.7-6.4-20.5.2-.9.5-1.8.8-2.6-.9 1.4-1.7 3.3-2.3 5.9-1.4 5.7-2 20.5 6.6 20.5 2.5 0 4.7-1.1 6-3 .1.4.3 7.7 7.7 7.7h.1c2.3-.1 4.3-1.2 5.6-2.9-.1.5-.2 1.2-.3 2.1-.5 5.4 3.8 8.1 6.5 7.2 7.2-2.6 13.2-2.9 17.9-2.7 3.2.1 5.3-2.1 5.7-5.8 1.6-1.4 2.8-3.1 3.1-4.9" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fc.svg
index ab4967e..7bb10f2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m59.48 15.495c-.045-2.631-2.209-6.205-6.538-6.938-3.52-.596-7.07.6-7.93 3.59-.445-3.902-3.869-5.244-8.08-5.143-4.1.102-7.475 1.969-7.891 5.738-1.031-2.242-3.676-2.943-6.818-2.867l-.126.005c-3.068.074-5.688 1.162-6.697 3.463-.908-.5-2.238-.561-4.186.115-2.402.836-6.646 4.418-8.414 11.854-1.365 5.736.5 13.73.5 13.73-.189 3.555 2.564 6.59 6.1 6.779 2.734.145 5.111-1.301 6.252-3.49l.031 1.154c.098 3.982 3.414 7.131 7.406 7.03l.127-.002c3.162-.08 5.795-2.172 6.707-5.02.664 3.863 4.072 6.762 8.119 6.662 4.42-.109 7.916-3.752 7.85-8.154.596 3.598 3.754 6.314 7.516 6.244l.125-.002c4.134-.076 8.54-4.119 8.464-8.24-.001.001-2.271-11.812-2.521-26.515"/><path fill="#e0a372" d="m61.836 43.517c-1.342 1.623-3.34 2.768-5.608 2.809l-.125.002c-.389.008-.799-.02-1.217-.064-.199-.025-.402-.051-.607-.076-2.605-.412-5.484-1.723-7.135-3.605.352-2.299.402-4.596.371-6.854-.039-2.459-.193-4.883-.303-7.301-.113-2.422-.18-4.818-.082-7.303-.521 1.135-.867 2.346-1.133 3.564-.264 1.225-.43 2.463-.543 3.699-.221 2.477-.221 4.943-.178 7.377.041 2.436.141 4.844.041 7.213-.053 1.184-.088 2.965-.48 3.793-.805 1.693-3.203 2.055-5.221 2.104-3.494.086-7.225-2.027-8.717-5.088.004-.033.008-.064.012-.098.139-1.064.279-2.131.396-3.205.225-2.143.365-4.313.365-6.48 0-2.174-.131-4.352-.436-6.512-.15-1.08-.346-2.158-.598-3.221-.256-1.064-.553-2.119-.953-3.146-.082 1.1-.109 2.184-.141 3.26-.029 1.078-.045 2.148-.063 3.217-.029 2.137-.051 4.266-.051 6.4.002 2.135.02 4.273.117 6.432.045.902.102 3.506.195 4.66-1.27 1.275-3.01 2.088-4.955 2.137l-.125.002c-3.324.082-6.717-2.561-7.82-5.744.006-.098.01-.195.018-.293.129-1.852.268-3.715.354-5.594.08-1.879.117-3.775-.012-5.695-.068-.955-.172-1.918-.367-2.879-.105-.48-.225-.961-.396-1.428-.086-.234-.188-.465-.305-.686-.123-.221-.264-.432-.447-.598.07.232.102.463.121.697.018.229.018.463.012.693-.01.461-.043.924-.084 1.387-.086.924-.191 1.85-.297 2.779-.205 1.861-.381 3.736-.463 5.633-.076 1.893-.082 3.805.133 5.732.006.051.016.1.021.15-1.162.791-2.598 1.146-4.154 1.146-10.117 0-7.969-14.775-6.605-20.51.227-.949.482-1.809.764-2.59-.912 1.438-1.729 3.342-2.33 5.877-1.365 5.736-1.977 20.51 6.6 20.51 2.518 0 4.723-1.078 5.951-2.975.08.424.295 7.674 7.738 7.674l.127-.002c2.314-.059 4.328-1.205 5.611-2.926-.125.549-.234 1.217-.311 2.055-.502 5.434 3.799 8.111 6.455 7.164 7.18-2.563 13.172-2.91 17.908-2.727 3.203.123 5.317-2.127 5.745-5.797 1.625-1.24 2.861-3.03 3.207-4.769"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 15.5c0-2.6-2.2-6.2-6.5-6.9-3.6-.6-7.1.6-8 3.5-.4-3.9-3.9-5.2-8.1-5.1-4.1.1-7.5 2-7.9 5.7-1-2.2-3.7-2.9-6.8-2.9h-.1c-3.1.2-5.7 1.2-6.7 3.5-.9-.5-2.2-.6-4.2.1-2.4.8-6.6 4.4-8.4 11.9-1.4 5.7.5 13.7.5 13.7-.2 3.6 2.6 6.6 6.1 6.8 2.7.1 5.1-1.3 6.3-3.5v1.2c.1 4 3.4 7.1 7.4 7h.1c3.2-.1 5.8-2.2 6.7-5 .7 3.9 4.1 6.8 8.1 6.7 4.4-.1 7.9-3.8 7.8-8.2.6 3.6 3.8 6.3 7.5 6.2h.1c4.1-.1 8.5-4.1 8.5-8.2.1 0-2.2-11.8-2.4-26.5" fill="#fed0ac"/><path d="m61.8 43.5c-1.3 1.6-3.3 2.8-5.6 2.8h-.1c-.4 0-.8 0-1.2-.1-.2 0-.4-.1-.6-.1-2.6-.4-5.5-1.7-7.1-3.6.4-2.3.4-4.6.4-6.9 0-2.5-.2-4.9-.3-7.3-.1-2.4-.2-4.8-.1-7.3-.5 1.1-.9 2.3-1.1 3.6-.3 1.2-.4 2.5-.5 3.7-.2 2.5-.2 4.9-.2 7.4 0 2.4.1 4.8 0 7.2-.1 1.2-.1 3-.5 3.8-.8 1.7-3.2 2.1-5.2 2.1-3.5.1-7.2-2-8.7-5.1 0 0 0-.1 0-.1.1-1.1.3-2.1.4-3.2.2-2.1.4-4.3.4-6.5 0-2.2-.1-4.4-.4-6.5-.1-1.1-.3-2.2-.6-3.2-.3-1.1-.6-2.1-1-3.1-.1 1.1-.1 2.2-.1 3.3 0 1.1 0 2.1-.1 3.2 0 2.1-.1 4.3-.1 6.4 0 2.1 0 4.3.1 6.4 0 .9.1 3.5.2 4.7-1.3 1.3-3 2.1-5 2.1h-.1c-3.3.1-6.7-2.6-7.8-5.7 0-.1 0-.2 0-.3.1-1.9.3-3.7.4-5.6.1-1.9.1-3.8 0-5.7-.2-.9-.3-1.9-.5-2.9-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.3-.4-.4-.6.1.2.1.5.1.7 0 .2 0 .5 0 .7 0 .5 0 .9-.1 1.4-.1.9-.2 1.9-.3 2.8-.2 1.9-.4 3.7-.5 5.6-.1 1.9-.1 3.8.1 5.7 0 .1 0 .1 0 .2-1.2.8-2.6 1.1-4.2 1.1-9.9 0-7.8-14.7-6.4-20.5.2-.9.5-1.8.8-2.6-.9 1.4-1.7 3.3-2.3 5.9-1.4 5.7-2 20.5 6.6 20.5 2.5 0 4.7-1.1 6-3 .1.4.3 7.7 7.7 7.7h.1c2.3-.1 4.3-1.2 5.6-2.9-.1.5-.2 1.2-.3 2.1-.5 5.4 3.8 8.1 6.5 7.2 7.2-2.6 13.2-2.9 17.9-2.7 3.2.1 5.3-2.1 5.7-5.8 1.6-1.4 2.8-3.1 3.1-4.9" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fd.svg
index 56ca3f1..1543e53 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m59.48 15.495c-.045-2.631-2.209-6.205-6.538-6.938-3.52-.596-7.07.6-7.93 3.59-.445-3.902-3.869-5.244-8.08-5.143-4.1.102-7.475 1.969-7.891 5.738-1.031-2.242-3.676-2.943-6.818-2.867l-.126.005c-3.068.074-5.688 1.162-6.697 3.463-.908-.5-2.238-.561-4.186.115-2.402.836-6.646 4.418-8.414 11.854-1.365 5.736.5 13.73.5 13.73-.189 3.555 2.564 6.59 6.1 6.779 2.734.145 5.111-1.301 6.252-3.49l.031 1.154c.098 3.982 3.414 7.131 7.406 7.03l.127-.002c3.162-.08 5.795-2.172 6.707-5.02.664 3.863 4.072 6.762 8.119 6.662 4.42-.109 7.916-3.752 7.85-8.154.596 3.598 3.754 6.314 7.516 6.244l.125-.002c4.134-.076 8.54-4.119 8.464-8.24-.001.001-2.271-11.812-2.521-26.515"/><path fill="#b58360" d="m61.836 43.517c-1.342 1.623-3.34 2.768-5.608 2.809l-.125.002c-.389.008-.799-.02-1.217-.064-.199-.025-.402-.051-.607-.076-2.605-.412-5.484-1.723-7.135-3.605.352-2.299.402-4.596.371-6.854-.039-2.459-.193-4.883-.303-7.301-.113-2.422-.18-4.818-.082-7.303-.521 1.135-.867 2.346-1.133 3.564-.264 1.225-.43 2.463-.543 3.699-.221 2.477-.221 4.943-.178 7.377.041 2.436.141 4.844.041 7.213-.053 1.184-.088 2.965-.48 3.793-.805 1.693-3.203 2.055-5.221 2.104-3.494.086-7.225-2.027-8.717-5.088.004-.033.008-.064.012-.098.139-1.064.279-2.131.396-3.205.225-2.143.365-4.313.365-6.48 0-2.174-.131-4.352-.436-6.512-.15-1.08-.346-2.158-.598-3.221-.256-1.064-.553-2.119-.953-3.146-.082 1.1-.109 2.184-.141 3.26-.029 1.078-.045 2.148-.063 3.217-.029 2.137-.051 4.266-.051 6.4.002 2.135.02 4.273.117 6.432.045.902.102 3.506.195 4.66-1.27 1.275-3.01 2.088-4.955 2.137l-.125.002c-3.324.082-6.717-2.561-7.82-5.744.006-.098.01-.195.018-.293.129-1.852.268-3.715.354-5.594.08-1.879.117-3.775-.012-5.695-.068-.955-.172-1.918-.367-2.879-.105-.48-.225-.961-.396-1.428-.086-.234-.188-.465-.305-.686-.123-.221-.264-.432-.447-.598.07.232.102.463.121.697.018.229.018.463.012.693-.01.461-.043.924-.084 1.387-.086.924-.191 1.85-.297 2.779-.205 1.861-.381 3.736-.463 5.633-.076 1.893-.082 3.805.133 5.732.006.051.016.1.021.15-1.162.791-2.598 1.146-4.154 1.146-10.117 0-7.969-14.775-6.605-20.51.227-.949.482-1.809.764-2.59-.912 1.438-1.729 3.342-2.33 5.877-1.365 5.736-1.977 20.51 6.6 20.51 2.518 0 4.723-1.078 5.951-2.975.08.424.295 7.674 7.738 7.674l.127-.002c2.314-.059 4.328-1.205 5.611-2.926-.125.549-.234 1.217-.311 2.055-.502 5.434 3.799 8.111 6.455 7.164 7.18-2.563 13.172-2.91 17.908-2.727 3.203.123 5.317-2.127 5.745-5.797 1.625-1.24 2.861-3.03 3.207-4.769"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 15.5c0-2.6-2.2-6.2-6.5-6.9-3.6-.6-7.1.6-8 3.5-.4-3.9-3.9-5.2-8.1-5.1-4.1.1-7.5 2-7.9 5.7-1-2.2-3.7-2.9-6.8-2.9h-.1c-3.1.2-5.7 1.2-6.7 3.5-.9-.5-2.2-.6-4.2.1-2.4.8-6.6 4.4-8.4 11.9-1.4 5.7.5 13.7.5 13.7-.2 3.6 2.6 6.6 6.1 6.8 2.7.1 5.1-1.3 6.3-3.5v1.2c.1 4 3.4 7.1 7.4 7h.1c3.2-.1 5.8-2.2 6.7-5 .7 3.9 4.1 6.8 8.1 6.7 4.4-.1 7.9-3.8 7.8-8.2.6 3.6 3.8 6.3 7.5 6.2h.1c4.1-.1 8.5-4.1 8.5-8.2.1 0-2.2-11.8-2.4-26.5" fill="#d6a57c"/><path d="m61.8 43.5c-1.3 1.6-3.3 2.8-5.6 2.8h-.1c-.4 0-.8 0-1.2-.1-.2 0-.4-.1-.6-.1-2.6-.4-5.5-1.7-7.1-3.6.4-2.3.4-4.6.4-6.9 0-2.5-.2-4.9-.3-7.3-.1-2.4-.2-4.8-.1-7.3-.5 1.1-.9 2.3-1.1 3.6-.3 1.2-.4 2.5-.5 3.7-.2 2.5-.2 4.9-.2 7.4 0 2.4.1 4.8 0 7.2-.1 1.2-.1 3-.5 3.8-.8 1.7-3.2 2.1-5.2 2.1-3.5.1-7.2-2-8.7-5.1 0 0 0-.1 0-.1.1-1.1.3-2.1.4-3.2.2-2.1.4-4.3.4-6.5 0-2.2-.1-4.4-.4-6.5-.1-1.1-.3-2.2-.6-3.2-.3-1.1-.6-2.1-1-3.1-.1 1.1-.1 2.2-.1 3.3 0 1.1 0 2.1-.1 3.2 0 2.1-.1 4.3-.1 6.4 0 2.1 0 4.3.1 6.4 0 .9.1 3.5.2 4.7-1.3 1.3-3 2.1-5 2.1h-.1c-3.3.1-6.7-2.6-7.8-5.7 0-.1 0-.2 0-.3.1-1.9.3-3.7.4-5.6.1-1.9.1-3.8 0-5.7-.2-.9-.3-1.9-.5-2.9-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.3-.4-.4-.6.1.2.1.5.1.7 0 .2 0 .5 0 .7 0 .5 0 .9-.1 1.4-.1.9-.2 1.9-.3 2.8-.2 1.9-.4 3.7-.5 5.6-.1 1.9-.1 3.8.1 5.7 0 .1 0 .1 0 .2-1.2.8-2.6 1.1-4.2 1.1-9.9 0-7.8-14.7-6.4-20.5.2-.9.5-1.8.8-2.6-.9 1.4-1.7 3.3-2.3 5.9-1.4 5.7-2 20.5 6.6 20.5 2.5 0 4.7-1.1 6-3 .1.4.3 7.7 7.7 7.7h.1c2.3-.1 4.3-1.2 5.6-2.9-.1.5-.2 1.2-.3 2.1-.5 5.4 3.8 8.1 6.5 7.2 7.2-2.6 13.2-2.9 17.9-2.7 3.2.1 5.3-2.1 5.7-5.8 1.6-1.4 2.8-3.1 3.1-4.9" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fe.svg
index 5a1f0ff..6485deb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m59.48 15.495c-.045-2.631-2.209-6.205-6.538-6.938-3.52-.596-7.07.6-7.93 3.59-.445-3.902-3.869-5.244-8.08-5.143-4.1.102-7.475 1.969-7.891 5.738-1.031-2.242-3.676-2.943-6.818-2.867l-.126.005c-3.068.074-5.688 1.162-6.697 3.463-.908-.5-2.238-.561-4.186.115-2.402.836-6.646 4.418-8.414 11.854-1.365 5.736.5 13.73.5 13.73-.189 3.555 2.564 6.59 6.1 6.779 2.734.145 5.111-1.301 6.252-3.49l.031 1.154c.098 3.982 3.414 7.131 7.406 7.03l.127-.002c3.162-.08 5.795-2.172 6.707-5.02.664 3.863 4.072 6.762 8.119 6.662 4.42-.109 7.916-3.752 7.85-8.154.596 3.598 3.754 6.314 7.516 6.244l.125-.002c4.134-.076 8.54-4.119 8.464-8.24-.001.001-2.271-11.812-2.521-26.515"/><path fill="#935e3e" d="m61.836 43.517c-1.342 1.623-3.34 2.768-5.608 2.809l-.125.002c-.389.008-.799-.02-1.217-.064-.199-.025-.402-.051-.607-.076-2.605-.412-5.484-1.723-7.135-3.605.352-2.299.402-4.596.371-6.854-.039-2.459-.193-4.883-.303-7.301-.113-2.422-.18-4.818-.082-7.303-.521 1.135-.867 2.346-1.133 3.564-.264 1.225-.43 2.463-.543 3.699-.221 2.477-.221 4.943-.178 7.377.041 2.436.141 4.844.041 7.213-.053 1.184-.088 2.965-.48 3.793-.805 1.693-3.203 2.055-5.221 2.104-3.494.086-7.225-2.027-8.717-5.088.004-.033.008-.064.012-.098.139-1.064.279-2.131.396-3.205.225-2.143.365-4.313.365-6.48 0-2.174-.131-4.352-.436-6.512-.15-1.08-.346-2.158-.598-3.221-.256-1.064-.553-2.119-.953-3.146-.082 1.1-.109 2.184-.141 3.26-.029 1.078-.045 2.148-.063 3.217-.029 2.137-.051 4.266-.051 6.4.002 2.135.02 4.273.117 6.432.045.902.102 3.506.195 4.66-1.27 1.275-3.01 2.088-4.955 2.137l-.125.002c-3.324.082-6.717-2.561-7.82-5.744.006-.098.01-.195.018-.293.129-1.852.268-3.715.354-5.594.08-1.879.117-3.775-.012-5.695-.068-.955-.172-1.918-.367-2.879-.105-.48-.225-.961-.396-1.428-.086-.234-.188-.465-.305-.686-.123-.221-.264-.432-.447-.598.07.232.102.463.121.697.018.229.018.463.012.693-.01.461-.043.924-.084 1.387-.086.924-.191 1.85-.297 2.779-.205 1.861-.381 3.736-.463 5.633-.076 1.893-.082 3.805.133 5.732.006.051.016.1.021.15-1.162.791-2.598 1.146-4.154 1.146-10.117 0-7.969-14.775-6.605-20.51.227-.949.482-1.809.764-2.59-.912 1.438-1.729 3.342-2.33 5.877-1.365 5.736-1.977 20.51 6.6 20.51 2.518 0 4.723-1.078 5.951-2.975.08.424.295 7.674 7.738 7.674l.127-.002c2.314-.059 4.328-1.205 5.611-2.926-.125.549-.234 1.217-.311 2.055-.502 5.434 3.799 8.111 6.455 7.164 7.18-2.563 13.172-2.91 17.908-2.727 3.203.123 5.317-2.127 5.745-5.797 1.625-1.24 2.861-3.03 3.207-4.769"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 15.5c0-2.6-2.2-6.2-6.5-6.9-3.6-.6-7.1.6-8 3.5-.4-3.9-3.9-5.2-8.1-5.1-4.1.1-7.5 2-7.9 5.7-1-2.2-3.7-2.9-6.8-2.9h-.1c-3.1.2-5.7 1.2-6.7 3.5-.9-.5-2.2-.6-4.2.1-2.4.8-6.6 4.4-8.4 11.9-1.4 5.7.5 13.7.5 13.7-.2 3.6 2.6 6.6 6.1 6.8 2.7.1 5.1-1.3 6.3-3.5v1.2c.1 4 3.4 7.1 7.4 7h.1c3.2-.1 5.8-2.2 6.7-5 .7 3.9 4.1 6.8 8.1 6.7 4.4-.1 7.9-3.8 7.8-8.2.6 3.6 3.8 6.3 7.5 6.2h.1c4.1-.1 8.5-4.1 8.5-8.2.1 0-2.2-11.8-2.4-26.5" fill="#b47d56"/><path d="m61.8 43.5c-1.3 1.6-3.3 2.8-5.6 2.8h-.1c-.4 0-.8 0-1.2-.1-.2 0-.4-.1-.6-.1-2.6-.4-5.5-1.7-7.1-3.6.4-2.3.4-4.6.4-6.9 0-2.5-.2-4.9-.3-7.3-.1-2.4-.2-4.8-.1-7.3-.5 1.1-.9 2.3-1.1 3.6-.3 1.2-.4 2.5-.5 3.7-.2 2.5-.2 4.9-.2 7.4 0 2.4.1 4.8 0 7.2-.1 1.2-.1 3-.5 3.8-.8 1.7-3.2 2.1-5.2 2.1-3.5.1-7.2-2-8.7-5.1 0 0 0-.1 0-.1.1-1.1.3-2.1.4-3.2.2-2.1.4-4.3.4-6.5 0-2.2-.1-4.4-.4-6.5-.1-1.1-.3-2.2-.6-3.2-.3-1.1-.6-2.1-1-3.1-.1 1.1-.1 2.2-.1 3.3 0 1.1 0 2.1-.1 3.2 0 2.1-.1 4.3-.1 6.4 0 2.1 0 4.3.1 6.4 0 .9.1 3.5.2 4.7-1.3 1.3-3 2.1-5 2.1h-.1c-3.3.1-6.7-2.6-7.8-5.7 0-.1 0-.2 0-.3.1-1.9.3-3.7.4-5.6.1-1.9.1-3.8 0-5.7-.2-.9-.3-1.9-.5-2.9-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.3-.4-.4-.6.1.2.1.5.1.7 0 .2 0 .5 0 .7 0 .5 0 .9-.1 1.4-.1.9-.2 1.9-.3 2.8-.2 1.9-.4 3.7-.5 5.6-.1 1.9-.1 3.8.1 5.7 0 .1 0 .1 0 .2-1.2.8-2.6 1.1-4.2 1.1-9.9 0-7.8-14.7-6.4-20.5.2-.9.5-1.8.8-2.6-.9 1.4-1.7 3.3-2.3 5.9-1.4 5.7-2 20.5 6.6 20.5 2.5 0 4.7-1.1 6-3 .1.4.3 7.7 7.7 7.7h.1c2.3-.1 4.3-1.2 5.6-2.9-.1.5-.2 1.2-.3 2.1-.5 5.4 3.8 8.1 6.5 7.2 7.2-2.6 13.2-2.9 17.9-2.7 3.2.1 5.3-2.1 5.7-5.8 1.6-1.4 2.8-3.1 3.1-4.9" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3ff.svg
index 877bbd6..2eded30 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44a-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m59.48 15.495c-.045-2.631-2.209-6.205-6.538-6.938-3.52-.596-7.07.6-7.93 3.59-.445-3.902-3.869-5.244-8.08-5.143-4.1.102-7.475 1.969-7.891 5.738-1.031-2.242-3.676-2.943-6.818-2.867l-.126.005c-3.068.074-5.688 1.162-6.697 3.463-.908-.5-2.238-.561-4.186.115-2.402.836-6.646 4.418-8.414 11.854-1.365 5.736.5 13.73.5 13.73-.189 3.555 2.564 6.59 6.1 6.779 2.734.145 5.111-1.301 6.252-3.49l.031 1.154c.098 3.982 3.414 7.131 7.406 7.03l.127-.002c3.162-.08 5.795-2.172 6.707-5.02.664 3.863 4.072 6.762 8.119 6.662 4.42-.109 7.916-3.752 7.85-8.154.596 3.598 3.754 6.314 7.516 6.244l.125-.002c4.134-.076 8.54-4.119 8.464-8.24-.001.001-2.271-11.812-2.521-26.515"/><path fill="#705041" d="m61.836 43.517c-1.342 1.623-3.34 2.768-5.608 2.809l-.125.002c-.389.008-.799-.02-1.217-.064-.199-.025-.402-.051-.607-.076-2.605-.412-5.484-1.723-7.135-3.605.352-2.299.402-4.596.371-6.854-.039-2.459-.193-4.883-.303-7.301-.113-2.422-.18-4.818-.082-7.303-.521 1.135-.867 2.346-1.133 3.564-.264 1.225-.43 2.463-.543 3.699-.221 2.477-.221 4.943-.178 7.377.041 2.436.141 4.844.041 7.213-.053 1.184-.088 2.965-.48 3.793-.805 1.693-3.203 2.055-5.221 2.104-3.494.086-7.225-2.027-8.717-5.088.004-.033.008-.064.012-.098.139-1.064.279-2.131.396-3.205.225-2.143.365-4.313.365-6.48 0-2.174-.131-4.352-.436-6.512-.15-1.08-.346-2.158-.598-3.221-.256-1.064-.553-2.119-.953-3.146-.082 1.1-.109 2.184-.141 3.26-.029 1.078-.045 2.148-.063 3.217-.029 2.137-.051 4.266-.051 6.4.002 2.135.02 4.273.117 6.432.045.902.102 3.506.195 4.66-1.27 1.275-3.01 2.088-4.955 2.137l-.125.002c-3.324.082-6.717-2.561-7.82-5.744.006-.098.01-.195.018-.293.129-1.852.268-3.715.354-5.594.08-1.879.117-3.775-.012-5.695-.068-.955-.172-1.918-.367-2.879-.105-.48-.225-.961-.396-1.428-.086-.234-.188-.465-.305-.686-.123-.221-.264-.432-.447-.598.07.232.102.463.121.697.018.229.018.463.012.693-.01.461-.043.924-.084 1.387-.086.924-.191 1.85-.297 2.779-.205 1.861-.381 3.736-.463 5.633-.076 1.893-.082 3.805.133 5.732.006.051.016.1.021.15-1.162.791-2.598 1.146-4.154 1.146-10.117 0-7.969-14.775-6.605-20.51.227-.949.482-1.809.764-2.59-.912 1.438-1.729 3.342-2.33 5.877-1.365 5.736-1.977 20.51 6.6 20.51 2.518 0 4.723-1.078 5.951-2.975.08.424.295 7.674 7.738 7.674l.127-.002c2.314-.059 4.328-1.205 5.611-2.926-.125.549-.234 1.217-.311 2.055-.502 5.434 3.799 8.111 6.455 7.164 7.18-2.563 13.172-2.91 17.908-2.727 3.203.123 5.317-2.127 5.745-5.797 1.625-1.24 2.861-3.03 3.207-4.769"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 15.5c0-2.6-2.2-6.2-6.5-6.9-3.6-.6-7.1.6-8 3.5-.4-3.9-3.9-5.2-8.1-5.1-4.1.1-7.5 2-7.9 5.7-1-2.2-3.7-2.9-6.8-2.9h-.1c-3.1.2-5.7 1.2-6.7 3.5-.9-.5-2.2-.6-4.2.1-2.4.8-6.6 4.4-8.4 11.9-1.4 5.7.5 13.7.5 13.7-.2 3.6 2.6 6.6 6.1 6.8 2.7.1 5.1-1.3 6.3-3.5v1.2c.1 4 3.4 7.1 7.4 7h.1c3.2-.1 5.8-2.2 6.7-5 .7 3.9 4.1 6.8 8.1 6.7 4.4-.1 7.9-3.8 7.8-8.2.6 3.6 3.8 6.3 7.5 6.2h.1c4.1-.1 8.5-4.1 8.5-8.2.1 0-2.2-11.8-2.4-26.5" fill="#8a6859"/><path d="m61.8 43.5c-1.3 1.6-3.3 2.8-5.6 2.8h-.1c-.4 0-.8 0-1.2-.1-.2 0-.4-.1-.6-.1-2.6-.4-5.5-1.7-7.1-3.6.4-2.3.4-4.6.4-6.9 0-2.5-.2-4.9-.3-7.3-.1-2.4-.2-4.8-.1-7.3-.5 1.1-.9 2.3-1.1 3.6-.3 1.2-.4 2.5-.5 3.7-.2 2.5-.2 4.9-.2 7.4 0 2.4.1 4.8 0 7.2-.1 1.2-.1 3-.5 3.8-.8 1.7-3.2 2.1-5.2 2.1-3.5.1-7.2-2-8.7-5.1 0 0 0-.1 0-.1.1-1.1.3-2.1.4-3.2.2-2.1.4-4.3.4-6.5 0-2.2-.1-4.4-.4-6.5-.1-1.1-.3-2.2-.6-3.2-.3-1.1-.6-2.1-1-3.1-.1 1.1-.1 2.2-.1 3.3 0 1.1 0 2.1-.1 3.2 0 2.1-.1 4.3-.1 6.4 0 2.1 0 4.3.1 6.4 0 .9.1 3.5.2 4.7-1.3 1.3-3 2.1-5 2.1h-.1c-3.3.1-6.7-2.6-7.8-5.7 0-.1 0-.2 0-.3.1-1.9.3-3.7.4-5.6.1-1.9.1-3.8 0-5.7-.2-.9-.3-1.9-.5-2.9-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.3-.4-.4-.6.1.2.1.5.1.7 0 .2 0 .5 0 .7 0 .5 0 .9-.1 1.4-.1.9-.2 1.9-.3 2.8-.2 1.9-.4 3.7-.5 5.6-.1 1.9-.1 3.8.1 5.7 0 .1 0 .1 0 .2-1.2.8-2.6 1.1-4.2 1.1-9.9 0-7.8-14.7-6.4-20.5.2-.9.5-1.8.8-2.6-.9 1.4-1.7 3.3-2.3 5.9-1.4 5.7-2 20.5 6.6 20.5 2.5 0 4.7-1.1 6-3 .1.4.3 7.7 7.7 7.7h.1c2.3-.1 4.3-1.2 5.6-2.9-.1.5-.2 1.2-.3 2.1-.5 5.4 3.8 8.1 6.5 7.2 7.2-2.6 13.2-2.9 17.9-2.7 3.2.1 5.3-2.1 5.7-5.8 1.6-1.4 2.8-3.1 3.1-4.9" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44a.svg
index 37c83d3..20b808d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m59.48 15.497c-.045-2.632-2.209-6.205-6.538-6.938-3.52-.597-7.07.6-7.93 3.589-.445-3.901-3.869-5.244-8.08-5.143-4.099.102-7.474 1.969-7.89 5.739-1.031-2.242-3.676-2.944-6.818-2.867l-.127.004c-3.068.073-5.688 1.161-6.697 3.462-.908-.5-2.238-.56-4.186.115-2.402.836-6.646 4.419-8.414 11.854-1.365 5.736.5 13.73.5 13.73-.189 3.556 2.564 6.59 6.1 6.779 2.734.145 5.111-1.301 6.252-3.49l.031 1.154c.098 3.982 3.414 7.132 7.406 7.04l.127-.003c3.162-.079 5.795-2.172 6.707-5.02.664 3.863 4.072 6.762 8.119 6.662 4.42-.109 7.916-3.752 7.85-8.153.596 3.598 3.754 6.313 7.516 6.243l.125-.002c4.134-.075 8.54-4.119 8.464-8.239-.001.001-2.271-11.812-2.521-26.514"/><path fill="#eba352" d="m61.833 43.518c-1.342 1.622-3.34 2.768-5.608 2.808h-.125c-.389.008-.799-.02-1.217-.063-.199-.026-.402-.052-.607-.077-2.605-.411-5.484-1.722-7.135-3.605.352-2.299.402-4.596.371-6.854-.039-2.458-.193-4.882-.303-7.3-.113-2.421-.18-4.817-.082-7.303-.521 1.135-.867 2.346-1.133 3.565-.264 1.224-.43 2.462-.543 3.698-.221 2.477-.221 4.943-.178 7.376.041 2.436.141 4.844.041 7.213-.053 1.184-.088 2.966-.48 3.794-.805 1.692-3.203 2.054-5.221 2.104-3.494.085-7.224-2.027-8.716-5.088.004-.033.008-.065.012-.099.139-1.064.279-2.131.396-3.204.225-2.144.365-4.313.365-6.481 0-2.172-.131-4.351-.436-6.511-.15-1.08-.346-2.158-.598-3.221-.256-1.064-.553-2.118-.953-3.146-.082 1.1-.109 2.184-.141 3.26-.029 1.078-.045 2.148-.063 3.217-.029 2.138-.051 4.267-.051 6.4.002 2.135.02 4.273.117 6.432.045.902.102 3.506.195 4.66-1.27 1.275-3.01 2.088-4.955 2.137l-.125.002c-3.324.082-6.717-2.561-7.82-5.744.006-.098.01-.195.018-.293.129-1.852.268-3.714.354-5.593.08-1.88.117-3.776-.012-5.696-.068-.954-.172-1.918-.367-2.879-.105-.48-.225-.96-.396-1.428-.086-.234-.188-.465-.305-.686-.123-.22-.264-.432-.447-.598.07.232.102.464.121.697.018.229.018.463.012.693-.01.461-.043.925-.084 1.387-.086.925-.191 1.85-.297 2.78-.205 1.86-.381 3.735-.463 5.631-.076 1.893-.082 3.805.133 5.732.006.051.016.1.021.15-1.162.791-2.598 1.146-4.154 1.146-10.117 0-7.969-14.775-6.605-20.509.227-.949.482-1.809.764-2.59-.912 1.438-1.729 3.342-2.33 5.877-1.365 5.736-1.977 20.509 6.6 20.509 2.518 0 4.723-1.078 5.951-2.975.08.424.295 7.675 7.738 7.675l.127-.003c2.314-.058 4.328-1.205 5.611-2.925-.125.549-.234 1.216-.311 2.054-.502 5.435 3.799 8.111 6.455 7.165 7.18-2.563 13.172-2.911 17.908-2.728 3.203.124 5.317-2.127 5.745-5.797 1.624-1.239 2.86-3.03 3.206-4.767"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.5 15.5c0-2.6-2.2-6.2-6.5-6.9-3.6-.6-7.1.6-8 3.5-.4-3.9-3.9-5.2-8.1-5.1-4.1.1-7.5 2-7.9 5.7-1-2.2-3.7-2.9-6.8-2.9h-.1c-3.1.2-5.7 1.2-6.7 3.5-.9-.5-2.2-.6-4.2.1-2.4.8-6.6 4.4-8.4 11.9-1.4 5.7.5 13.7.5 13.7-.2 3.6 2.6 6.6 6.1 6.8 2.7.1 5.1-1.3 6.3-3.5v1.2c.1 4 3.4 7.1 7.4 7h.1c3.2-.1 5.8-2.2 6.7-5 .7 3.9 4.1 6.8 8.1 6.7 4.4-.1 7.9-3.8 7.8-8.2.6 3.6 3.8 6.3 7.5 6.2h.1c4.1-.1 8.5-4.1 8.5-8.2.1 0-2.2-11.8-2.4-26.5" fill="#ffdd67"/><path d="m61.8 43.5c-1.3 1.6-3.3 2.8-5.6 2.8h-.1c-.4 0-.8 0-1.2-.1-.2 0-.4-.1-.6-.1-2.6-.4-5.5-1.7-7.1-3.6.4-2.3.4-4.6.4-6.9 0-2.5-.2-4.9-.3-7.3-.1-2.4-.2-4.8-.1-7.3-.5 1.1-.9 2.3-1.1 3.6-.3 1.2-.4 2.5-.5 3.7-.2 2.5-.2 4.9-.2 7.4 0 2.4.1 4.8 0 7.2-.1 1.2-.1 3-.5 3.8-.8 1.7-3.2 2.1-5.2 2.1-3.5.1-7.2-2-8.7-5.1 0 0 0-.1 0-.1.1-1.1.3-2.1.4-3.2.2-2.1.4-4.3.4-6.5 0-2.2-.1-4.4-.4-6.5-.1-1.1-.3-2.2-.6-3.2-.3-1.1-.6-2.1-1-3.1-.1 1.1-.1 2.2-.1 3.3 0 1.1 0 2.1-.1 3.2 0 2.1-.1 4.3-.1 6.4 0 2.1 0 4.3.1 6.4 0 .9.1 3.5.2 4.7-1.3 1.3-3 2.1-5 2.1h-.1c-3.3.1-6.7-2.6-7.8-5.7 0-.1 0-.2 0-.3.1-1.9.3-3.7.4-5.6.1-1.9.1-3.8 0-5.7-.2-.9-.3-1.9-.5-2.9-.1-.5-.2-1-.4-1.4-.1-.2-.2-.5-.3-.7-.1-.2-.3-.4-.4-.6.1.2.1.5.1.7 0 .2 0 .5 0 .7 0 .5 0 .9-.1 1.4-.1.9-.2 1.9-.3 2.8-.2 1.9-.4 3.7-.5 5.6-.1 1.9-.1 3.8.1 5.7 0 .1 0 .1 0 .2-1.2.8-2.6 1.1-4.2 1.1-9.9 0-7.8-14.7-6.4-20.5.2-.9.5-1.8.8-2.6-.9 1.4-1.7 3.3-2.3 5.9-1.4 5.7-2 20.5 6.6 20.5 2.5 0 4.7-1.1 6-3 .1.4.3 7.7 7.7 7.7h.1c2.3-.1 4.3-1.2 5.6-2.9-.1.5-.2 1.2-.3 2.1-.5 5.4 3.8 8.1 6.5 7.2 7.2-2.6 13.2-2.9 17.9-2.7 3.2.1 5.3-2.1 5.7-5.8 1.6-1.4 2.8-3.1 3.1-4.9" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fb.svg
index a577946..981d4d4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.17 48.544c-.473-.098-.938-.234-1.396-.395-.455-.156-.902-.34-1.346-.545-.881-.41-1.729-.91-2.521-1.49-1.59-1.156-2.963-2.66-3.955-4.395-.994-1.734-1.586-3.691-1.721-5.648-.068-.98-.031-1.957.105-2.912.074-.476.166-.949.291-1.414.121-.463.266-.92.449-1.365l.127 1.412c.045.467.096.924.156 1.378.121.906.277 1.795.488 2.66.422 1.729 1.047 3.365 1.914 4.877.861 1.516 1.959 2.904 3.215 4.191.629.643 1.301 1.258 2 1.861.35.299.711.596 1.076.891l1.114.894"/><path d="m15.888 52.2c-.346.158-.699.277-1.061.379-.357.102-.729.18-1.1.24-.742.121-1.504.158-2.266.121-1.528-.076-3.071-.494-4.444-1.244-1.375-.746-2.57-1.816-3.434-3.08-.436-.629-.787-1.301-1.061-1.998-.129-.352-.244-.707-.334-1.068-.088-.359-.156-.725-.186-1.098.252.277.49.555.727.826.234.27.469.537.709.793.473.516.951 1 1.445 1.455.988.904 2.037 1.67 3.178 2.291 1.141.619 2.365 1.092 3.672 1.465.652.186 1.324.344 2.02.49.346.074.695.141 1.055.211.354.069.715.135 1.084.217"/><path d="m38.578 3.267c.484.125.955.287 1.416.473.461.182.91.395 1.35.621.887.461 1.727 1.01 2.51 1.633 1.568 1.248 2.9 2.828 3.82 4.625.92 1.791 1.416 3.787 1.441 5.756.012.984-.082 1.963-.279 2.912-.102.477-.223.945-.377 1.402-.152.459-.328.908-.539 1.344l-.053-1.422c-.021-.469-.047-.934-.084-1.393-.068-.916-.18-1.814-.346-2.691-.334-1.758-.885-3.432-1.689-4.996-.799-1.566-1.842-3.02-3.061-4.377-.613-.68-1.268-1.334-1.957-1.977-.342-.322-.697-.637-1.059-.955l-1.093-.955"/><path d="m47.4 2.802c.357.1.701.23 1.041.381.336.145.662.316.984.502.639.373 1.232.814 1.783 1.316 1.098 1 1.986 2.266 2.533 3.664.557 1.398.76 2.924.59 4.385-.084.73-.254 1.441-.504 2.119-.127.338-.27.67-.439.988-.164.318-.352.629-.57.922-.012-.361-.008-.711-.01-1.055-.006-.346-.006-.686-.021-1.021-.021-.67-.064-1.322-.145-1.961-.156-1.275-.447-2.486-.904-3.646-.453-1.162-1.072-2.266-1.811-3.348-.371-.541-.771-1.074-1.197-1.611-.213-.266-.43-.533-.654-.803-.224-.271-.451-.545-.676-.832"/></g><g fill="#ffe1bd"><path d="m44.27 38.62l7.307-3.867-16.448-30.478c-1.103-2.041-3.656-2.877-5.666-1.813l-.021.01c-2.01 1.066-2.725 3.629-1.588 5.732l16.416 30.416"/><path d="m35.644 43.19l8.632-4.568-17.833-33.04c-1.346-2.492-4.367-3.496-6.75-2.234-2.385 1.262-3.227 4.311-1.881 6.805l17.832 33.04"/><path d="m28.12 47.17l7.525-3.984-16.785-31.1c-1.174-2.172-3.807-3.043-5.877-1.945l-.014.006c-2.078 1.1-2.805 3.75-1.635 5.922l16.786 31.1"/><path d="m8.294 18.617c-1.932 1.023-2.547 3.451-1.459 5.469l14.424 26.718 6.859-3.631-14.422-26.72c-1.087-2.02-3.468-2.86-5.402-1.836"/></g><g fill="#e6b796"><path d="m29.468 2.462l-.021.01c-.217.115-.416.258-.602.404 1.875-.584 4.01.27 4.989 2.088l16.447 30.478 1.301-.689-16.448-30.478c-1.103-2.041-3.656-2.877-5.666-1.813"/><path d="m19.693 3.347c-.223.117-.422.266-.615.414 2.248-.768 4.848.248 6.07 2.51l17.831 33.04 1.301-.688-17.833-33.04c-1.346-2.493-4.367-3.497-6.75-2.235"/><path d="m12.982 10.146l-.014.006c-.221.117-.42.26-.607.408 1.939-.611 4.15.277 5.199 2.219l16.784 31.1 1.3-.689-16.785-31.1c-1.174-2.172-3.807-3.043-5.877-1.945"/><path d="m8.294 18.617c-.223.119-.424.26-.609.412 1.777-.529 3.75.328 4.711 2.113l14.422 26.72 1.301-.689-14.422-26.72c-1.088-2.02-3.469-2.86-5.403-1.836"/></g><path fill="#ffe1bd" d="m60.758 15.669c-2.797-1.893-7.182.594-9.125 7.814-1.357 5.04-1.105 4.582-4.395 6.32l-2.02-3.742c0 0-9.866-1.477-22.625 8.335 0 0-7.396 5.346-5.174 9.459 0 0 4.086 10.809 10.334 15.656 9.3 7.223 32.23-1.715 30.368-21.4-.369-3.912.373-6.087 1.232-10.166 1.031-4.912 4.474-10.195 1.406-12.276"/><g fill="#e6b796"><path d="m60.758 15.669c-.529-.359-1.117-.559-1.736-.6.133.066.266.133.391.219 3.068 2.078-.377 7.361-1.41 12.275-.855 4.08-1.66 6.218-1.287 10.13 1.615 17.06-15.4 26.05-26.02 23.43 10.44 3.842 29.11-5.172 27.424-23.01-.369-3.912.373-6.087 1.232-10.166 1.031-4.912 4.474-10.195 1.406-12.276"/><path d="m37.632 50.1c-2.985-5.535-1.182-12.266 4.01-15.182-1.143.09-2.281.389-3.346.953-4.373 2.314-5.918 7.904-3.448 12.48 1.08 2 2.75 3.467 4.649 4.303-.709-.752-1.343-1.597-1.86-2.554"/><path d="m35.8 47.24c-1.081-2.807-4.03-4.527-6.933-3.904-.463.098-.895.252-1.295.449.502-1.262 1.574-2.242 2.984-2.545 2.348-.504 4.734 1.055 5.337 3.477.219.875.17 1.746-.093 2.523"/><path d="m45.568 26.1c-8.07-.656-23.788 7.468-28.24 14.949 2.171-9.972 21.435-18.17 28.24-14.949"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.1 48.5c-.5-.1-.9-.2-1.4-.4-.5-.2-.9-.3-1.3-.5-.9-.4-1.7-.9-2.5-1.5-1.6-1.1-2.9-2.6-3.9-4.4-1-1.7-1.6-3.7-1.7-5.6-.1-1 0-1.9.1-2.9.1-.5.2-.9.3-1.4.1-.5.3-.9.4-1.4l.1 1.4c0 .5.1.9.2 1.4.1.9.3 1.8.5 2.6.4 1.7 1 3.3 1.9 4.8.9 1.5 1.9 2.9 3.2 4.2.6.6 1.3 1.2 2 1.8.3.3.7.6 1.1.9l1 1"/><path d="m15.8 52.1c-.3.2-.7.3-1.1.4-.4.1-.7.2-1.1.2-.7.1-1.5.2-2.3.1-1.5-.1-3.1-.5-4.4-1.2-1.4-.7-2.6-1.8-3.4-3.1-.4-.6-.8-1.3-1.1-2-.1-.3-.2-.7-.3-1.1 0-.3-.1-.6-.1-1 .3.3.5.5.7.8.3.3.5.6.7.8.5.5.9 1 1.4 1.4 1 .9 2 1.7 3.2 2.3 1.1.6 2.4 1.1 3.6 1.5.6.2 1.3.3 2 .5.3.1.7.1 1 .2.5.1.8.1 1.2.2"/><path d="m38.4 3.5c.5.1.9.3 1.4.5.5.2.9.4 1.3.6.9.5 1.7 1 2.5 1.6 1.6 1.2 2.9 2.8 3.8 4.6.9 1.8 1.4 3.8 1.4 5.7 0 1-.1 1.9-.3 2.9-.1.5-.2.9-.4 1.4-.2.5-.3.9-.5 1.3l-.1-1.4c0-.5 0-.9-.1-1.4-.1-.9-.2-1.8-.3-2.7-.3-1.7-.9-3.4-1.7-5-.8-1.6-1.8-3-3-4.3-.6-.7-1.3-1.3-1.9-2-.3-.3-.7-.6-1.1-.9l-1-.9"/><path d="m47.1 3.1c.4.1.7.2 1 .4.3.1.7.3 1 .5.6.4 1.2.8 1.8 1.3 1.1 1 2 2.2 2.5 3.6.6 1.4.8 2.9.6 4.4-.1.7-.3 1.4-.5 2.1-.1.3-.3.7-.4 1-.2.3-.3.6-.6.9 0-.4 0-.7 0-1 0-.3 0-.7 0-1 0-.7-.1-1.3-.1-1.9-.2-1.3-.4-2.5-.9-3.6-.5-1.2-1.1-2.2-1.8-3.3-.4-.5-.8-1.1-1.2-1.6-.2-.3-.4-.5-.7-.8-.2-.5-.5-.8-.7-1"/></g><g fill="#ffe1bd"><path d="m10 18c-2 .9-2.7 3.3-1.8 5.3l12.6 26.3 7-3.3-12.6-26.4c-.9-2-3.2-2.9-5.2-1.9"/><path d="m43.1 38.9l7.4-3.5-14.4-30c-1-2-3.4-2.9-5.5-1.9-2 1-2.9 3.4-1.9 5.5l14.4 29.9"/></g><path d="m30.7 3.4c-.2.1-.4.2-.6.4 1.9-.5 3.9.4 4.8 2.2l14.4 30 1.3-.6-14.4-30c-1-2.1-3.4-3-5.5-2" fill="#e6b796"/><path d="m27.8 46.2l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2.1-2.1 1-3 3.6-2 5.7l14.7 30.7" fill="#ffe1bd"/><path d="m15.1 9.9c-.2.1-.4.2-.6.4 1.9-.5 4.1.4 5 2.3l9.1 19.1 2.2 1.3-10-21c-1-2.2-3.5-3.1-5.7-2.1" fill="#e6b796"/><path d="m34.3 40.1l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2-2.1 1-3 3.6-2 5.7l14.7 30.6" fill="#ffe1bd"/><g fill="#e6b796"><path d="m21.6 3.7c-.2.1-.4.3-.6.4 1.9-.5 4.1.4 5 2.3l10.3 21.6 2.2 1.3-11.2-23.5c-1-2.2-3.6-3.1-5.7-2.1"/><path d="m10 18c-.2.1-.4.2-.6.4 1.8-.5 3.7.4 4.5 2.2l7.5 15.7 2.2 1.3-8.4-17.6c-.9-2.1-3.2-3-5.2-2"/></g><path d="m60.8 15c-2.7-2.1-7.1.2-9.3 7.4-1.5 5-1.7 6.5-4.9 8l-1.8-3.7c0 0-28.4 13.7-27.3 15.9 0 0 3.4 10.6 9.2 15.5 8.6 7.4 28.7-.5 29.6-19.6.5-11.1 7.4-21.2 4.5-23.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m60.8 15c-.5-.4-1.1-.6-1.7-.7.1.1.3.1.4.2 3 2.3-.1 7.6-1.8 12.4-1.4 3.8-2.6 7.7-2.4 11.5.8 16.6-15.9 24.5-25.9 21.5 9.8 4.1 28-3.7 27.2-21-.2-3.8.9-7.5 2.4-11.5 1.6-4.8 4.7-10.1 1.8-12.4"/><path d="m47.5 30c-6.2.7-15.3 9.6-8.9 19.3-4.7-9.8 3-16.4 7.9-18.7.5-.4 1-.6 1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fc.svg
index a866330..0e3fb5f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.17 48.544c-.473-.098-.938-.234-1.396-.395-.455-.156-.902-.34-1.346-.545-.881-.41-1.729-.91-2.521-1.49-1.59-1.156-2.963-2.66-3.955-4.395-.994-1.734-1.586-3.691-1.721-5.648-.068-.98-.031-1.957.105-2.912.074-.477.166-.949.291-1.414.121-.463.266-.92.449-1.365l.127 1.412c.045.467.096.924.156 1.379.121.906.277 1.795.488 2.66.422 1.729 1.047 3.365 1.914 4.877.861 1.516 1.959 2.904 3.215 4.191.629.643 1.301 1.258 2 1.861.35.299.711.596 1.076.891l1.114.893"/><path d="m15.889 52.2c-.346.158-.699.277-1.061.379-.357.102-.729.18-1.1.24-.742.121-1.504.158-2.266.121-1.528-.076-3.071-.494-4.444-1.244-1.375-.746-2.57-1.816-3.434-3.08-.436-.629-.787-1.301-1.061-1.998-.129-.352-.244-.707-.334-1.068-.088-.359-.156-.725-.186-1.098.252.277.49.555.727.826.234.27.469.537.709.793.473.516.951 1 1.445 1.455.988.904 2.037 1.67 3.178 2.291 1.141.619 2.365 1.092 3.672 1.465.652.186 1.324.344 2.02.49.346.074.695.141 1.055.211.353.069.715.135 1.084.217"/><path d="m38.578 3.267c.484.125.955.287 1.416.473.461.182.91.395 1.35.621.887.461 1.727 1.01 2.51 1.633 1.568 1.248 2.9 2.828 3.82 4.625.92 1.791 1.416 3.787 1.441 5.756.012.984-.082 1.963-.279 2.912-.102.477-.223.945-.377 1.402-.152.459-.328.908-.539 1.344l-.053-1.422c-.021-.469-.047-.934-.084-1.393-.068-.916-.18-1.814-.346-2.691-.334-1.758-.885-3.432-1.689-4.996-.799-1.566-1.842-3.02-3.061-4.377-.613-.68-1.268-1.334-1.957-1.977-.342-.322-.697-.637-1.059-.955l-1.093-.955"/><path d="m47.4 2.802c.357.1.701.23 1.041.381.336.145.662.316.984.502.639.373 1.232.814 1.783 1.316 1.098 1 1.986 2.266 2.533 3.664.557 1.398.76 2.924.59 4.385-.084.73-.254 1.441-.504 2.119-.127.338-.27.67-.439.988-.164.318-.352.629-.57.922-.012-.361-.008-.711-.01-1.055-.006-.346-.006-.686-.021-1.021-.021-.67-.064-1.322-.145-1.961-.156-1.275-.447-2.486-.904-3.646-.453-1.162-1.072-2.266-1.811-3.348-.371-.541-.771-1.074-1.197-1.611-.213-.266-.43-.533-.654-.803-.224-.272-.451-.545-.676-.832"/></g><g fill="#fed0ac"><path d="m44.27 38.62l7.307-3.867-16.448-30.479c-1.103-2.041-3.655-2.877-5.665-1.813l-.021.01c-2.01 1.066-2.725 3.629-1.588 5.732l16.415 30.417"/><path d="m35.644 43.19l8.632-4.568-17.833-33.04c-1.346-2.492-4.367-3.496-6.75-2.234-2.385 1.262-3.227 4.311-1.881 6.805l17.832 33.04"/><path d="m28.12 47.17l7.524-3.984-16.784-31.1c-1.174-2.172-3.807-3.043-5.877-1.945l-.014.006c-2.078 1.1-2.805 3.75-1.635 5.922l16.786 31.1"/><path d="m8.295 18.616c-1.932 1.023-2.547 3.451-1.459 5.469l14.424 26.719 6.859-3.631-14.422-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><g fill="#e0a372"><path d="m29.469 2.462l-.021.01c-.217.115-.416.258-.602.404 1.875-.584 4.01.27 4.988 2.088l16.447 30.479 1.301-.689-16.448-30.48c-1.103-2.041-3.655-2.877-5.665-1.812"/><path d="m19.693 3.347c-.223.117-.422.266-.615.414 2.248-.768 4.848.248 6.07 2.51l17.83 33.04 1.301-.688-17.832-33.04c-1.345-2.492-4.367-3.496-6.75-2.234"/><path d="m12.982 10.146l-.014.006c-.221.117-.42.26-.607.408 1.939-.611 4.15.277 5.199 2.219l16.783 31.1 1.3-.689-16.784-31.1c-1.173-2.172-3.806-3.043-5.877-1.945"/><path d="m8.295 18.616c-.223.119-.424.26-.609.412 1.777-.529 3.75.328 4.711 2.113l14.422 26.721 1.301-.689-14.423-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><path fill="#fed0ac" d="m60.758 15.669c-2.797-1.893-7.182.594-9.125 7.814-1.357 5.04-1.105 4.582-4.395 6.32l-2.02-3.742c0 0-9.866-1.477-22.625 8.336 0 0-7.396 5.346-5.174 9.459 0 0 4.086 10.809 10.334 15.656 9.3 7.223 32.23-1.715 30.367-21.4-.369-3.912.373-6.088 1.232-10.166 1.032-4.914 4.475-10.197 1.407-12.277"/><g fill="#e0a372"><path d="m60.758 15.669c-.529-.359-1.117-.559-1.736-.6.133.066.266.133.391.219 3.068 2.078-.377 7.361-1.41 12.275-.855 4.08-1.66 6.219-1.287 10.131 1.615 17.06-15.4 26.05-26.02 23.43 10.439 3.842 29.11-5.172 27.424-23.01-.369-3.912.373-6.088 1.232-10.166 1.031-4.914 4.474-10.197 1.406-12.277"/><path d="m37.632 50.1c-2.985-5.535-1.182-12.266 4.01-15.182-1.143.09-2.281.389-3.346.953-4.373 2.314-5.918 7.904-3.448 12.48 1.08 2 2.75 3.467 4.649 4.303-.709-.752-1.343-1.597-1.86-2.554"/><path d="m35.8 47.24c-1.081-2.807-4.03-4.527-6.933-3.904-.463.098-.895.252-1.295.449.502-1.262 1.574-2.242 2.984-2.545 2.348-.504 4.733 1.055 5.337 3.477.219.875.17 1.746-.093 2.523"/><path d="m45.568 26.1c-8.07-.656-23.787 7.469-28.24 14.949 2.17-9.973 21.434-18.17 28.24-14.949"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.1 48.5c-.5-.1-.9-.2-1.4-.4-.5-.2-.9-.3-1.3-.5-.9-.4-1.7-.9-2.5-1.5-1.6-1.1-2.9-2.6-3.9-4.4-1-1.7-1.6-3.7-1.7-5.6-.1-1 0-1.9.1-2.9.1-.5.2-.9.3-1.4.1-.5.3-.9.4-1.4l.1 1.4c0 .5.1.9.2 1.4.1.9.3 1.8.5 2.6.4 1.7 1 3.3 1.9 4.8.9 1.5 1.9 2.9 3.2 4.2.6.6 1.3 1.2 2 1.8.3.3.7.6 1.1.9l1 1"/><path d="m15.8 52.1c-.3.2-.7.3-1.1.4-.4.1-.7.2-1.1.2-.7.1-1.5.2-2.3.1-1.5-.1-3.1-.5-4.4-1.2-1.4-.7-2.6-1.8-3.4-3.1-.4-.6-.8-1.3-1.1-2-.1-.3-.2-.7-.3-1.1 0-.3-.1-.6-.1-1 .3.3.5.5.7.8.3.3.5.6.7.8.5.5.9 1 1.4 1.4 1 .9 2 1.7 3.2 2.3 1.1.6 2.4 1.1 3.6 1.5.6.2 1.3.3 2 .5.3.1.7.1 1 .2.5.1.8.1 1.2.2"/><path d="m38.4 3.5c.5.1.9.3 1.4.5.5.2.9.4 1.3.6.9.5 1.7 1 2.5 1.6 1.6 1.2 2.9 2.8 3.8 4.6.9 1.8 1.4 3.8 1.4 5.7 0 1-.1 1.9-.3 2.9-.1.5-.2.9-.4 1.4-.2.5-.3.9-.5 1.3l-.1-1.4c0-.5 0-.9-.1-1.4-.1-.9-.2-1.8-.3-2.7-.3-1.7-.9-3.4-1.7-5-.8-1.6-1.8-3-3-4.3-.6-.7-1.3-1.3-1.9-2-.3-.3-.7-.6-1.1-.9l-1-.9"/><path d="m47.1 3.1c.4.1.7.2 1 .4.3.1.7.3 1 .5.6.4 1.2.8 1.8 1.3 1.1 1 2 2.2 2.5 3.6.6 1.4.8 2.9.6 4.4-.1.7-.3 1.4-.5 2.1-.1.3-.3.7-.4 1-.2.3-.3.6-.6.9 0-.4 0-.7 0-1 0-.3 0-.7 0-1 0-.7-.1-1.3-.1-1.9-.2-1.3-.4-2.5-.9-3.6-.5-1.2-1.1-2.2-1.8-3.3-.4-.5-.8-1.1-1.2-1.6-.2-.3-.4-.5-.7-.8-.2-.5-.5-.8-.7-1"/></g><g fill="#fed0ac"><path d="m10 18c-2 .9-2.7 3.3-1.8 5.3l12.6 26.3 7-3.3-12.6-26.4c-.9-2-3.2-2.9-5.2-1.9"/><path d="m43.1 38.9l7.4-3.5-14.4-30c-1-2-3.4-2.9-5.5-1.9-2 1-2.9 3.4-1.9 5.5l14.4 29.9"/></g><path d="m30.7 3.4c-.2.1-.4.2-.6.4 1.9-.5 3.9.4 4.8 2.2l14.4 30 1.3-.6-14.4-30c-1-2.1-3.4-3-5.5-2" fill="#e0a372"/><path d="m27.8 46.2l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2.1-2.1 1-3 3.6-2 5.7l14.7 30.7" fill="#fed0ac"/><path d="m15.1 9.9c-.2.1-.4.2-.6.4 1.9-.5 4.1.4 5 2.3l9.1 19.1 2.2 1.3-10-21c-1-2.2-3.5-3.1-5.7-2.1" fill="#e0a372"/><path d="m34.3 40.1l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2-2.1 1-3 3.6-2 5.7l14.7 30.6" fill="#fed0ac"/><g fill="#e0a372"><path d="m21.6 3.7c-.2.1-.4.3-.6.4 1.9-.5 4.1.4 5 2.3l10.3 21.6 2.2 1.3-11.2-23.5c-1-2.2-3.6-3.1-5.7-2.1"/><path d="m10 18c-.2.1-.4.2-.6.4 1.8-.5 3.7.4 4.5 2.2l7.5 15.7 2.2 1.3-8.4-17.6c-.9-2.1-3.2-3-5.2-2"/></g><path d="m60.8 15c-2.7-2.1-7.1.2-9.3 7.4-1.5 5-1.7 6.5-4.9 8l-1.8-3.7c0 0-28.4 13.7-27.3 15.9 0 0 3.4 10.6 9.2 15.5 8.6 7.4 28.7-.5 29.6-19.6.5-11.1 7.4-21.2 4.5-23.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m60.8 15c-.5-.4-1.1-.6-1.7-.7.1.1.3.1.4.2 3 2.3-.1 7.6-1.8 12.4-1.4 3.8-2.6 7.7-2.4 11.5.8 16.6-15.9 24.5-25.9 21.5 9.8 4.1 28-3.7 27.2-21-.2-3.8.9-7.5 2.4-11.5 1.6-4.8 4.7-10.1 1.8-12.4"/><path d="m47.5 30c-6.2.7-15.3 9.6-8.9 19.3-4.7-9.8 3-16.4 7.9-18.7.5-.4 1-.6 1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fd.svg
index ee99f73..801f13f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.17 48.544c-.473-.098-.938-.234-1.396-.395-.455-.156-.902-.34-1.346-.545-.881-.41-1.729-.91-2.521-1.49-1.59-1.156-2.963-2.66-3.955-4.395-.994-1.734-1.586-3.691-1.721-5.648-.068-.98-.031-1.957.105-2.912.074-.477.166-.949.291-1.414.121-.463.266-.92.449-1.365l.127 1.412c.045.467.096.924.156 1.379.121.906.277 1.795.488 2.66.422 1.729 1.047 3.365 1.914 4.877.861 1.516 1.959 2.904 3.215 4.191.629.643 1.301 1.258 2 1.861.35.299.711.596 1.076.891l1.114.893"/><path d="m15.889 52.2c-.346.158-.699.277-1.061.379-.357.102-.729.18-1.1.24-.742.121-1.504.158-2.266.121-1.528-.076-3.071-.494-4.444-1.244-1.375-.746-2.57-1.816-3.434-3.08-.436-.629-.787-1.301-1.061-1.998-.129-.352-.244-.707-.334-1.068-.088-.359-.156-.725-.186-1.098.252.277.49.555.727.826.234.27.469.537.709.793.473.516.951 1 1.445 1.455.988.904 2.037 1.67 3.178 2.291 1.141.619 2.365 1.092 3.672 1.465.652.186 1.324.344 2.02.49.346.074.695.141 1.055.211.353.069.715.135 1.084.217"/><path d="m38.578 3.267c.484.125.955.287 1.416.473.461.182.91.395 1.35.621.887.461 1.727 1.01 2.51 1.633 1.568 1.248 2.9 2.828 3.82 4.625.92 1.791 1.416 3.787 1.441 5.756.012.984-.082 1.963-.279 2.912-.102.477-.223.945-.377 1.402-.152.459-.328.908-.539 1.344l-.053-1.422c-.021-.469-.047-.934-.084-1.393-.068-.916-.18-1.814-.346-2.691-.334-1.758-.885-3.432-1.689-4.996-.799-1.566-1.842-3.02-3.061-4.377-.613-.68-1.268-1.334-1.957-1.977-.342-.322-.697-.637-1.059-.955l-1.093-.955"/><path d="m47.4 2.802c.357.1.701.23 1.041.381.336.145.662.316.984.502.639.373 1.232.814 1.783 1.316 1.098 1 1.986 2.266 2.533 3.664.557 1.398.76 2.924.59 4.385-.084.73-.254 1.441-.504 2.119-.127.338-.27.67-.439.988-.164.318-.352.629-.57.922-.012-.361-.008-.711-.01-1.055-.006-.346-.006-.686-.021-1.021-.021-.67-.064-1.322-.145-1.961-.156-1.275-.447-2.486-.904-3.646-.453-1.162-1.072-2.266-1.811-3.348-.371-.541-.771-1.074-1.197-1.611-.213-.266-.43-.533-.654-.803-.224-.272-.451-.545-.676-.832"/></g><g fill="#d6a57c"><path d="m44.27 38.62l7.307-3.867-16.448-30.479c-1.103-2.041-3.655-2.877-5.665-1.813l-.021.01c-2.01 1.066-2.725 3.629-1.588 5.732l16.415 30.417"/><path d="m35.644 43.19l8.632-4.568-17.833-33.04c-1.346-2.492-4.367-3.496-6.75-2.234-2.385 1.262-3.227 4.311-1.881 6.805l17.832 33.04"/><path d="m28.12 47.17l7.524-3.984-16.784-31.1c-1.174-2.172-3.807-3.043-5.877-1.945l-.014.006c-2.078 1.1-2.805 3.75-1.635 5.922l16.786 31.1"/><path d="m8.295 18.616c-1.932 1.023-2.547 3.451-1.459 5.469l14.424 26.719 6.859-3.631-14.422-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><g fill="#b58360"><path d="m29.469 2.462l-.021.01c-.217.115-.416.258-.602.404 1.875-.584 4.01.27 4.988 2.088l16.447 30.479 1.301-.689-16.448-30.48c-1.103-2.041-3.655-2.877-5.665-1.812"/><path d="m19.693 3.347c-.223.117-.422.266-.615.414 2.248-.768 4.848.248 6.07 2.51l17.83 33.04 1.301-.688-17.832-33.04c-1.345-2.492-4.367-3.496-6.75-2.234"/><path d="m12.982 10.146l-.014.006c-.221.117-.42.26-.607.408 1.939-.611 4.15.277 5.199 2.219l16.783 31.1 1.3-.689-16.784-31.1c-1.173-2.172-3.806-3.043-5.877-1.945"/><path d="m8.295 18.616c-.223.119-.424.26-.609.412 1.777-.529 3.75.328 4.711 2.113l14.422 26.721 1.301-.689-14.423-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><path fill="#d6a57c" d="m60.758 15.669c-2.797-1.893-7.182.594-9.125 7.814-1.357 5.04-1.105 4.582-4.395 6.32l-2.02-3.742c0 0-9.866-1.477-22.625 8.336 0 0-7.396 5.346-5.174 9.459 0 0 4.086 10.809 10.334 15.656 9.3 7.223 32.23-1.715 30.367-21.4-.369-3.912.373-6.088 1.232-10.166 1.032-4.914 4.475-10.197 1.407-12.277"/><g fill="#b58360"><path d="m60.758 15.669c-.529-.359-1.117-.559-1.736-.6.133.066.266.133.391.219 3.068 2.078-.377 7.361-1.41 12.275-.855 4.08-1.66 6.219-1.287 10.131 1.615 17.06-15.4 26.05-26.02 23.43 10.439 3.842 29.11-5.172 27.424-23.01-.369-3.912.373-6.088 1.232-10.166 1.031-4.914 4.474-10.197 1.406-12.277"/><path d="m37.632 50.1c-2.985-5.535-1.182-12.266 4.01-15.182-1.143.09-2.281.389-3.346.953-4.373 2.314-5.918 7.904-3.448 12.48 1.08 2 2.75 3.467 4.649 4.303-.709-.752-1.343-1.597-1.86-2.554"/><path d="m35.8 47.24c-1.081-2.807-4.03-4.527-6.933-3.904-.463.098-.895.252-1.295.449.502-1.262 1.574-2.242 2.984-2.545 2.348-.504 4.733 1.055 5.337 3.477.219.875.17 1.746-.093 2.523"/><path d="m45.568 26.1c-8.07-.656-23.787 7.469-28.24 14.949 2.17-9.973 21.434-18.17 28.24-14.949"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.1 48.5c-.5-.1-.9-.2-1.4-.4-.5-.2-.9-.3-1.3-.5-.9-.4-1.7-.9-2.5-1.5-1.6-1.1-2.9-2.6-3.9-4.4-1-1.7-1.6-3.7-1.7-5.6-.1-1 0-1.9.1-2.9.1-.5.2-.9.3-1.4.1-.5.3-.9.4-1.4l.1 1.4c0 .5.1.9.2 1.4.1.9.3 1.8.5 2.6.4 1.7 1 3.3 1.9 4.8.9 1.5 1.9 2.9 3.2 4.2.6.6 1.3 1.2 2 1.8.3.3.7.6 1.1.9l1 1"/><path d="m15.8 52.1c-.3.2-.7.3-1.1.4-.4.1-.7.2-1.1.2-.7.1-1.5.2-2.3.1-1.5-.1-3.1-.5-4.4-1.2-1.4-.7-2.6-1.8-3.4-3.1-.4-.6-.8-1.3-1.1-2-.1-.3-.2-.7-.3-1.1 0-.3-.1-.6-.1-1 .3.3.5.5.7.8.3.3.5.6.7.8.5.5.9 1 1.4 1.4 1 .9 2 1.7 3.2 2.3 1.1.6 2.4 1.1 3.6 1.5.6.2 1.3.3 2 .5.3.1.7.1 1 .2.5.1.8.1 1.2.2"/><path d="m38.4 3.5c.5.1.9.3 1.4.5.5.2.9.4 1.3.6.9.5 1.7 1 2.5 1.6 1.6 1.2 2.9 2.8 3.8 4.6.9 1.8 1.4 3.8 1.4 5.7 0 1-.1 1.9-.3 2.9-.1.5-.2.9-.4 1.4-.2.5-.3.9-.5 1.3l-.1-1.4c0-.5 0-.9-.1-1.4-.1-.9-.2-1.8-.3-2.7-.3-1.7-.9-3.4-1.7-5-.8-1.6-1.8-3-3-4.3-.6-.7-1.3-1.3-1.9-2-.3-.3-.7-.6-1.1-.9l-1-.9"/><path d="m47.1 3.1c.4.1.7.2 1 .4.3.1.7.3 1 .5.6.4 1.2.8 1.8 1.3 1.1 1 2 2.2 2.5 3.6.6 1.4.8 2.9.6 4.4-.1.7-.3 1.4-.5 2.1-.1.3-.3.7-.4 1-.2.3-.3.6-.6.9 0-.4 0-.7 0-1 0-.3 0-.7 0-1 0-.7-.1-1.3-.1-1.9-.2-1.3-.4-2.5-.9-3.6-.5-1.2-1.1-2.2-1.8-3.3-.4-.5-.8-1.1-1.2-1.6-.2-.3-.4-.5-.7-.8-.2-.5-.5-.8-.7-1"/></g><g fill="#d6a57c"><path d="m10 18c-2 .9-2.7 3.3-1.8 5.3l12.6 26.3 7-3.3-12.6-26.4c-.9-2-3.2-2.9-5.2-1.9"/><path d="m43.1 38.9l7.4-3.6-14.4-30c-1-2-3.4-2.9-5.5-1.9-2 1-2.9 3.4-1.9 5.5l14.4 30"/></g><path d="m30.7 3.4c-.2.1-.4.2-.6.4 1.9-.5 3.9.4 4.8 2.2l14.4 30 1.3-.6-14.4-30c-1-2.1-3.4-3-5.5-2" fill="#b58360"/><path d="m27.8 46.2l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2.1-2.1 1-3 3.6-2 5.7l14.7 30.7" fill="#d6a57c"/><path d="m15.1 9.9c-.2.1-.4.2-.6.4 1.9-.5 4.1.4 5 2.3l9.1 19.1 2.2 1.3-10-21c-1-2.2-3.5-3.1-5.7-2.1" fill="#b58360"/><path d="m34.3 40.1l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2-2.1 1-3 3.6-2 5.7l14.7 30.6" fill="#d6a57c"/><g fill="#b58360"><path d="m21.6 3.7c-.2.1-.4.3-.6.4 1.9-.5 4.1.4 5 2.3l10.3 21.6 2.2 1.3-11.2-23.5c-1-2.2-3.6-3.1-5.7-2.1"/><path d="m10 18c-.2.1-.4.2-.6.4 1.8-.5 3.7.4 4.5 2.2l7.5 15.7 2.2 1.3-8.4-17.6c-.9-2.1-3.2-3-5.2-2"/></g><path d="m60.8 15c-2.7-2.1-7.1.2-9.3 7.4-1.5 5-1.7 6.5-4.9 8l-1.8-3.7c0 0-28.4 13.7-27.3 15.9 0 0 3.4 10.6 9.2 15.5 8.6 7.3 28.7-.5 29.6-19.6.5-11.1 7.4-21.2 4.5-23.5" fill="#d6a57c"/><g fill="#b58360"><path d="m60.8 15c-.5-.4-1.1-.6-1.7-.7.1.1.3.1.4.2 3 2.3-.1 7.6-1.8 12.4-1.4 3.8-2.6 7.7-2.4 11.5.8 16.6-15.9 24.5-25.9 21.5 9.8 4.1 28-3.7 27.2-21-.2-3.8.9-7.5 2.4-11.5 1.6-4.8 4.7-10.1 1.8-12.4"/><path d="m47.5 30c-6.2.7-15.3 9.6-8.9 19.3-4.7-9.8 3-16.4 7.9-18.7.5-.4 1-.6 1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fe.svg
index 05d6ce9..687ff44 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.17 48.544c-.473-.098-.938-.234-1.396-.395-.455-.156-.902-.34-1.346-.545-.881-.41-1.729-.91-2.521-1.49-1.59-1.156-2.963-2.66-3.955-4.395-.994-1.734-1.586-3.691-1.721-5.648-.068-.98-.031-1.957.105-2.912.074-.477.166-.949.291-1.414.121-.463.266-.92.449-1.365l.127 1.412c.045.467.096.924.156 1.379.121.906.277 1.795.488 2.66.422 1.729 1.047 3.365 1.914 4.877.861 1.516 1.959 2.904 3.215 4.191.629.643 1.301 1.258 2 1.861.35.299.711.596 1.076.891l1.114.893"/><path d="m15.889 52.2c-.346.158-.699.277-1.061.379-.357.102-.729.18-1.1.24-.742.121-1.504.158-2.266.121-1.528-.076-3.071-.494-4.444-1.244-1.375-.746-2.57-1.816-3.434-3.08-.436-.629-.787-1.301-1.061-1.998-.129-.352-.244-.707-.334-1.068-.088-.359-.156-.725-.186-1.098.252.277.49.555.727.826.234.27.469.537.709.793.473.516.951 1 1.445 1.455.988.904 2.037 1.67 3.178 2.291 1.141.619 2.365 1.092 3.672 1.465.652.186 1.324.344 2.02.49.346.074.695.141 1.055.211.353.069.715.135 1.084.217"/><path d="m38.578 3.267c.484.125.955.287 1.416.473.461.182.91.395 1.35.621.887.461 1.727 1.01 2.51 1.633 1.568 1.248 2.9 2.828 3.82 4.625.92 1.791 1.416 3.787 1.441 5.756.012.984-.082 1.963-.279 2.912-.102.477-.223.945-.377 1.402-.152.459-.328.908-.539 1.344l-.053-1.422c-.021-.469-.047-.934-.084-1.393-.068-.916-.18-1.814-.346-2.691-.334-1.758-.885-3.432-1.689-4.996-.799-1.566-1.842-3.02-3.061-4.377-.613-.68-1.268-1.334-1.957-1.977-.342-.322-.697-.637-1.059-.955l-1.093-.955"/><path d="m47.4 2.802c.357.1.701.23 1.041.381.336.145.662.316.984.502.639.373 1.232.814 1.783 1.316 1.098 1 1.986 2.266 2.533 3.664.557 1.398.76 2.924.59 4.385-.084.73-.254 1.441-.504 2.119-.127.338-.27.67-.439.988-.164.318-.352.629-.57.922-.012-.361-.008-.711-.01-1.055-.006-.346-.006-.686-.021-1.021-.021-.67-.064-1.322-.145-1.961-.156-1.275-.447-2.486-.904-3.646-.453-1.162-1.072-2.266-1.811-3.348-.371-.541-.771-1.074-1.197-1.611-.213-.266-.43-.533-.654-.803-.224-.272-.451-.545-.676-.832"/></g><g fill="#b47d56"><path d="m44.27 38.62l7.307-3.867-16.448-30.479c-1.103-2.041-3.655-2.877-5.665-1.813l-.021.01c-2.01 1.066-2.725 3.629-1.588 5.732l16.415 30.417"/><path d="m35.644 43.19l8.632-4.568-17.833-33.04c-1.346-2.492-4.367-3.496-6.75-2.234-2.385 1.262-3.227 4.311-1.881 6.805l17.832 33.04"/><path d="m28.12 47.17l7.524-3.984-16.784-31.1c-1.174-2.172-3.807-3.043-5.877-1.945l-.014.006c-2.078 1.1-2.805 3.75-1.635 5.922l16.786 31.1"/><path d="m8.295 18.616c-1.932 1.023-2.547 3.451-1.459 5.469l14.424 26.719 6.859-3.631-14.422-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><g fill="#935e3e"><path d="m29.469 2.462l-.021.01c-.217.115-.416.258-.602.404 1.875-.584 4.01.27 4.988 2.088l16.447 30.479 1.301-.689-16.448-30.48c-1.103-2.041-3.655-2.877-5.665-1.812"/><path d="m19.693 3.347c-.223.117-.422.266-.615.414 2.248-.768 4.848.248 6.07 2.51l17.83 33.04 1.301-.688-17.832-33.04c-1.345-2.492-4.367-3.496-6.75-2.234"/><path d="m12.982 10.146l-.014.006c-.221.117-.42.26-.607.408 1.939-.611 4.15.277 5.199 2.219l16.783 31.1 1.3-.689-16.784-31.1c-1.173-2.172-3.806-3.043-5.877-1.945"/><path d="m8.295 18.616c-.223.119-.424.26-.609.412 1.777-.529 3.75.328 4.711 2.113l14.422 26.721 1.301-.689-14.423-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><path fill="#b47d56" d="m60.758 15.669c-2.797-1.893-7.182.594-9.125 7.814-1.357 5.04-1.105 4.582-4.395 6.32l-2.02-3.742c0 0-9.866-1.477-22.625 8.336 0 0-7.396 5.346-5.174 9.459 0 0 4.086 10.809 10.334 15.656 9.3 7.223 32.23-1.715 30.367-21.4-.369-3.912.373-6.088 1.232-10.166 1.032-4.914 4.475-10.197 1.407-12.277"/><g fill="#935e3e"><path d="m60.758 15.669c-.529-.359-1.117-.559-1.736-.6.133.066.266.133.391.219 3.068 2.078-.377 7.361-1.41 12.275-.855 4.08-1.66 6.219-1.287 10.131 1.615 17.06-15.4 26.05-26.02 23.43 10.439 3.842 29.11-5.172 27.424-23.01-.369-3.912.373-6.088 1.232-10.166 1.031-4.914 4.474-10.197 1.406-12.277"/><path d="m37.632 50.1c-2.985-5.535-1.182-12.266 4.01-15.182-1.143.09-2.281.389-3.346.953-4.373 2.314-5.918 7.904-3.448 12.48 1.08 2 2.75 3.467 4.649 4.303-.709-.752-1.343-1.597-1.86-2.554"/><path d="m35.8 47.24c-1.081-2.807-4.03-4.527-6.933-3.904-.463.098-.895.252-1.295.449.502-1.262 1.574-2.242 2.984-2.545 2.348-.504 4.733 1.055 5.337 3.477.219.875.17 1.746-.093 2.523"/><path d="m45.568 26.1c-8.07-.656-23.787 7.469-28.24 14.949 2.17-9.973 21.434-18.17 28.24-14.949"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.1 48.5c-.5-.1-.9-.2-1.4-.4-.5-.2-.9-.3-1.3-.5-.9-.4-1.7-.9-2.5-1.5-1.6-1.1-2.9-2.6-3.9-4.4-1-1.7-1.6-3.7-1.7-5.6-.1-1 0-1.9.1-2.9.1-.5.2-.9.3-1.4.1-.5.3-.9.4-1.4l.1 1.4c0 .5.1.9.2 1.4.1.9.3 1.8.5 2.6.4 1.7 1 3.3 1.9 4.8.9 1.5 1.9 2.9 3.2 4.2.6.6 1.3 1.2 2 1.8.3.3.7.6 1.1.9l1 1"/><path d="m15.8 52.1c-.3.2-.7.3-1.1.4-.4.1-.7.2-1.1.2-.7.1-1.5.2-2.3.1-1.5-.1-3.1-.5-4.4-1.2-1.4-.7-2.6-1.8-3.4-3.1-.4-.6-.8-1.3-1.1-2-.1-.3-.2-.7-.3-1.1 0-.3-.1-.6-.1-1 .3.3.5.5.7.8.3.3.5.6.7.8.5.5.9 1 1.4 1.4 1 .9 2 1.7 3.2 2.3 1.1.6 2.4 1.1 3.6 1.5.6.2 1.3.3 2 .5.3.1.7.1 1 .2.5.1.8.1 1.2.2"/><path d="m38.4 3.5c.5.1.9.3 1.4.5.5.2.9.4 1.3.6.9.5 1.7 1 2.5 1.6 1.6 1.2 2.9 2.8 3.8 4.6.9 1.8 1.4 3.8 1.4 5.7 0 1-.1 1.9-.3 2.9-.1.5-.2.9-.4 1.4-.2.5-.3.9-.5 1.3l-.1-1.4c0-.5 0-.9-.1-1.4-.1-.9-.2-1.8-.3-2.7-.3-1.7-.9-3.4-1.7-5-.8-1.6-1.8-3-3-4.3-.6-.7-1.3-1.3-1.9-2-.3-.3-.7-.6-1.1-.9l-1-.9"/><path d="m47.1 3.1c.4.1.7.2 1 .4.3.1.7.3 1 .5.6.4 1.2.8 1.8 1.3 1.1 1 2 2.2 2.5 3.6.6 1.4.8 2.9.6 4.4-.1.7-.3 1.4-.5 2.1-.1.3-.3.7-.4 1-.2.3-.3.6-.6.9 0-.4 0-.7 0-1 0-.3 0-.7 0-1 0-.7-.1-1.3-.1-1.9-.2-1.3-.4-2.5-.9-3.6-.5-1.2-1.1-2.2-1.8-3.3-.4-.5-.8-1.1-1.2-1.6-.2-.3-.4-.5-.7-.8-.2-.5-.5-.8-.7-1"/></g><g fill="#b47d56"><path d="m10 18c-2 .9-2.7 3.3-1.8 5.3l12.6 26.3 7-3.3-12.6-26.4c-.9-2-3.2-2.9-5.2-1.9"/><path d="m43.1 38.9l7.4-3.5-14.4-30c-1-2-3.4-2.9-5.5-1.9-2 1-2.9 3.4-1.9 5.5l14.4 29.9"/></g><path d="m30.7 3.4c-.2.1-.4.2-.6.4 1.9-.5 3.9.4 4.8 2.2l14.4 30 1.3-.6-14.4-30c-1-2.1-3.4-3-5.5-2" fill="#935e3e"/><path d="m27.8 46.2l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2.1-2.1 1-3 3.6-2 5.7l14.7 30.7" fill="#b47d56"/><path d="m15.1 9.9c-.2.1-.4.2-.6.4 1.9-.5 4.1.4 5 2.3l9.1 19.1 2.2 1.3-10-21c-1-2.2-3.5-3.1-5.7-2.1" fill="#935e3e"/><path d="m34.3 40.1l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2-2.1 1-3 3.6-2 5.7l14.7 30.6" fill="#b47d56"/><g fill="#935e3e"><path d="m21.6 3.7c-.2.1-.4.3-.6.4 1.9-.5 4.1.4 5 2.3l10.3 21.6 2.2 1.3-11.2-23.5c-1-2.2-3.6-3.1-5.7-2.1"/><path d="m10 18c-.2.1-.4.2-.6.4 1.8-.5 3.7.4 4.5 2.2l7.5 15.7 2.2 1.3-8.4-17.6c-.9-2.1-3.2-3-5.2-2"/></g><path d="m60.8 15c-2.7-2.1-7.1.2-9.3 7.4-1.5 5-1.7 6.5-4.9 8l-1.8-3.7c0 0-28.4 13.7-27.3 15.9 0 0 3.4 10.6 9.2 15.5 8.6 7.4 28.7-.5 29.6-19.6.5-11.1 7.4-21.2 4.5-23.5" fill="#b47d56"/><g fill="#935e3e"><path d="m60.8 15c-.5-.4-1.1-.6-1.7-.7.1.1.3.1.4.2 3 2.3-.1 7.6-1.8 12.4-1.4 3.8-2.6 7.7-2.4 11.5.8 16.6-15.9 24.5-25.9 21.5 9.8 4.1 28-3.7 27.2-21-.2-3.8.9-7.5 2.4-11.5 1.6-4.8 4.7-10.1 1.8-12.4"/><path d="m47.5 30c-6.2.7-15.3 9.6-8.9 19.3-4.7-9.8 3-16.4 7.9-18.7.5-.4 1-.6 1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3ff.svg
index 47234f4..68636c2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44b-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.17 48.544c-.473-.098-.938-.234-1.396-.395-.455-.156-.902-.34-1.346-.545-.881-.41-1.729-.91-2.521-1.49-1.59-1.156-2.963-2.66-3.955-4.395-.994-1.734-1.586-3.691-1.721-5.648-.068-.98-.031-1.957.105-2.912.074-.477.166-.949.291-1.414.121-.463.266-.92.449-1.365l.127 1.412c.045.467.096.924.156 1.379.121.906.277 1.795.488 2.66.422 1.729 1.047 3.365 1.914 4.877.861 1.516 1.959 2.904 3.215 4.191.629.643 1.301 1.258 2 1.861.35.299.711.596 1.076.891l1.114.893"/><path d="m15.889 52.2c-.346.158-.699.277-1.061.379-.357.102-.729.18-1.1.24-.742.121-1.504.158-2.266.121-1.528-.076-3.071-.494-4.444-1.244-1.375-.746-2.57-1.816-3.434-3.08-.436-.629-.787-1.301-1.061-1.998-.129-.352-.244-.707-.334-1.068-.088-.359-.156-.725-.186-1.098.252.277.49.555.727.826.234.27.469.537.709.793.473.516.951 1 1.445 1.455.988.904 2.037 1.67 3.178 2.291 1.141.619 2.365 1.092 3.672 1.465.652.186 1.324.344 2.02.49.346.074.695.141 1.055.211.353.069.715.135 1.084.217"/><path d="m38.578 3.267c.484.125.955.287 1.416.473.461.182.91.395 1.35.621.887.461 1.727 1.01 2.51 1.633 1.568 1.248 2.9 2.828 3.82 4.625.92 1.791 1.416 3.787 1.441 5.756.012.984-.082 1.963-.279 2.912-.102.477-.223.945-.377 1.402-.152.459-.328.908-.539 1.344l-.053-1.422c-.021-.469-.047-.934-.084-1.393-.068-.916-.18-1.814-.346-2.691-.334-1.758-.885-3.432-1.689-4.996-.799-1.566-1.842-3.02-3.061-4.377-.613-.68-1.268-1.334-1.957-1.977-.342-.322-.697-.637-1.059-.955l-1.093-.955"/><path d="m47.4 2.802c.357.1.701.23 1.041.381.336.145.662.316.984.502.639.373 1.232.814 1.783 1.316 1.098 1 1.986 2.266 2.533 3.664.557 1.398.76 2.924.59 4.385-.084.73-.254 1.441-.504 2.119-.127.338-.27.67-.439.988-.164.318-.352.629-.57.922-.012-.361-.008-.711-.01-1.055-.006-.346-.006-.686-.021-1.021-.021-.67-.064-1.322-.145-1.961-.156-1.275-.447-2.486-.904-3.646-.453-1.162-1.072-2.266-1.811-3.348-.371-.541-.771-1.074-1.197-1.611-.213-.266-.43-.533-.654-.803-.224-.272-.451-.545-.676-.832"/></g><g fill="#8a6859"><path d="m44.27 38.62l7.307-3.867-16.448-30.479c-1.103-2.041-3.655-2.877-5.665-1.813l-.021.01c-2.01 1.066-2.725 3.629-1.588 5.732l16.415 30.417"/><path d="m35.644 43.19l8.632-4.568-17.833-33.04c-1.346-2.492-4.367-3.496-6.75-2.234-2.385 1.262-3.227 4.311-1.881 6.805l17.832 33.04"/><path d="m28.12 47.17l7.524-3.984-16.784-31.1c-1.174-2.172-3.807-3.043-5.877-1.945l-.014.006c-2.078 1.1-2.805 3.75-1.635 5.922l16.786 31.1"/><path d="m8.295 18.616c-1.932 1.023-2.547 3.451-1.459 5.469l14.424 26.719 6.859-3.631-14.422-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><g fill="#705041"><path d="m29.469 2.462l-.021.01c-.217.115-.416.258-.602.404 1.875-.584 4.01.27 4.988 2.088l16.447 30.479 1.301-.689-16.448-30.48c-1.103-2.041-3.655-2.877-5.665-1.812"/><path d="m19.693 3.347c-.223.117-.422.266-.615.414 2.248-.768 4.848.248 6.07 2.51l17.83 33.04 1.301-.688-17.832-33.04c-1.345-2.492-4.367-3.496-6.75-2.234"/><path d="m12.982 10.146l-.014.006c-.221.117-.42.26-.607.408 1.939-.611 4.15.277 5.199 2.219l16.783 31.1 1.3-.689-16.784-31.1c-1.173-2.172-3.806-3.043-5.877-1.945"/><path d="m8.295 18.616c-.223.119-.424.26-.609.412 1.777-.529 3.75.328 4.711 2.113l14.422 26.721 1.301-.689-14.423-26.721c-1.088-2.02-3.468-2.859-5.402-1.836"/></g><path fill="#8a6859" d="m60.758 15.669c-2.797-1.893-7.182.594-9.125 7.814-1.357 5.04-1.105 4.582-4.395 6.32l-2.02-3.742c0 0-9.866-1.477-22.625 8.336 0 0-7.396 5.346-5.174 9.459 0 0 4.086 10.809 10.334 15.656 9.3 7.223 32.23-1.715 30.367-21.4-.369-3.912.373-6.088 1.232-10.166 1.032-4.914 4.475-10.197 1.407-12.277"/><g fill="#705041"><path d="m60.758 15.669c-.529-.359-1.117-.559-1.736-.6.133.066.266.133.391.219 3.068 2.078-.377 7.361-1.41 12.275-.855 4.08-1.66 6.219-1.287 10.131 1.615 17.06-15.4 26.05-26.02 23.43 10.439 3.842 29.11-5.172 27.424-23.01-.369-3.912.373-6.088 1.232-10.166 1.031-4.914 4.474-10.197 1.406-12.277"/><path d="m37.632 50.1c-2.985-5.535-1.182-12.266 4.01-15.182-1.143.09-2.281.389-3.346.953-4.373 2.314-5.918 7.904-3.448 12.48 1.08 2 2.75 3.467 4.649 4.303-.709-.752-1.343-1.597-1.86-2.554"/><path d="m35.8 47.24c-1.081-2.807-4.03-4.527-6.933-3.904-.463.098-.895.252-1.295.449.502-1.262 1.574-2.242 2.984-2.545 2.348-.504 4.733 1.055 5.337 3.477.219.875.17 1.746-.093 2.523"/><path d="m45.568 26.1c-8.07-.656-23.787 7.469-28.24 14.949 2.17-9.973 21.434-18.17 28.24-14.949"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.1 48.5c-.5-.1-.9-.2-1.4-.4-.5-.2-.9-.3-1.3-.5-.9-.4-1.7-.9-2.5-1.5-1.6-1.1-2.9-2.6-3.9-4.4-1-1.7-1.6-3.7-1.7-5.6-.1-1 0-1.9.1-2.9.1-.5.2-.9.3-1.4.1-.5.3-.9.4-1.4l.1 1.4c0 .5.1.9.2 1.4.1.9.3 1.8.5 2.6.4 1.7 1 3.3 1.9 4.8.9 1.5 1.9 2.9 3.2 4.2.6.6 1.3 1.2 2 1.8.3.3.7.6 1.1.9l1 1"/><path d="m15.8 52.1c-.3.2-.7.3-1.1.4-.4.1-.7.2-1.1.2-.7.1-1.5.2-2.3.1-1.5-.1-3.1-.5-4.4-1.2-1.4-.7-2.6-1.8-3.4-3.1-.4-.6-.8-1.3-1.1-2-.1-.3-.2-.7-.3-1.1 0-.3-.1-.6-.1-1 .3.3.5.5.7.8.3.3.5.6.7.8.5.5.9 1 1.4 1.4 1 .9 2 1.7 3.2 2.3 1.1.6 2.4 1.1 3.6 1.5.6.2 1.3.3 2 .5.3.1.7.1 1 .2.5.1.8.1 1.2.2"/><path d="m38.4 3.5c.5.1.9.3 1.4.5.5.2.9.4 1.3.6.9.5 1.7 1 2.5 1.6 1.6 1.2 2.9 2.8 3.8 4.6.9 1.8 1.4 3.8 1.4 5.7 0 1-.1 1.9-.3 2.9-.1.5-.2.9-.4 1.4-.2.5-.3.9-.5 1.3l-.1-1.4c0-.5 0-.9-.1-1.4-.1-.9-.2-1.8-.3-2.7-.3-1.7-.9-3.4-1.7-5-.8-1.6-1.8-3-3-4.3-.6-.7-1.3-1.3-1.9-2-.3-.3-.7-.6-1.1-.9l-1-.9"/><path d="m47.1 3.1c.4.1.7.2 1 .4.3.1.7.3 1 .5.6.4 1.2.8 1.8 1.3 1.1 1 2 2.2 2.5 3.6.6 1.4.8 2.9.6 4.4-.1.7-.3 1.4-.5 2.1-.1.3-.3.7-.4 1-.2.3-.3.6-.6.9 0-.4 0-.7 0-1 0-.3 0-.7 0-1 0-.7-.1-1.3-.1-1.9-.2-1.3-.4-2.5-.9-3.6-.5-1.2-1.1-2.2-1.8-3.3-.4-.5-.8-1.1-1.2-1.6-.2-.3-.4-.5-.7-.8-.2-.5-.5-.8-.7-1"/></g><g fill="#8a6859"><path d="m10 18c-2 .9-2.7 3.3-1.8 5.3l12.6 26.3 7-3.3-12.6-26.4c-.9-2-3.2-2.9-5.2-1.9"/><path d="m43.1 38.9l7.4-3.5-14.4-30c-1-2-3.4-2.9-5.5-1.9-2 1-2.9 3.4-1.9 5.5l14.4 29.9"/></g><path d="m30.7 3.4c-.2.1-.4.2-.6.4 1.9-.5 3.9.4 4.8 2.2l14.4 30 1.3-.6-14.4-30c-1-2.1-3.4-3-5.5-2" fill="#705041"/><path d="m27.8 46.2l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2.1-2.1 1-3 3.6-2 5.7l14.7 30.7" fill="#8a6859"/><path d="m15.1 9.9c-.2.1-.4.2-.6.4 1.9-.5 4.1.4 5 2.3l9.1 19.1 2.2 1.3-10-21c-1-2.2-3.5-3.1-5.7-2.1" fill="#705041"/><path d="m34.3 40.1l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2-2.1 1-3 3.6-2 5.7l14.7 30.6" fill="#8a6859"/><g fill="#705041"><path d="m21.6 3.7c-.2.1-.4.3-.6.4 1.9-.5 4.1.4 5 2.3l10.3 21.6 2.2 1.3-11.2-23.5c-1-2.2-3.6-3.1-5.7-2.1"/><path d="m10 18c-.2.1-.4.2-.6.4 1.8-.5 3.7.4 4.5 2.2l7.5 15.7 2.2 1.3-8.4-17.6c-.9-2.1-3.2-3-5.2-2"/></g><path d="m60.8 15c-2.7-2.1-7.1.2-9.3 7.4-1.5 5-1.7 6.5-4.9 8l-1.8-3.7c0 0-28.4 13.7-27.3 15.9 0 0 3.4 10.6 9.2 15.5 8.6 7.4 28.7-.5 29.6-19.6.5-11.1 7.4-21.2 4.5-23.5" fill="#8a6859"/><g fill="#705041"><path d="m60.8 15c-.5-.4-1.1-.6-1.7-.7.1.1.3.1.4.2 3 2.3-.1 7.6-1.8 12.4-1.4 3.8-2.6 7.7-2.4 11.5.8 16.6-15.9 24.5-25.9 21.5 9.8 4.1 28-3.7 27.2-21-.2-3.8.9-7.5 2.4-11.5 1.6-4.8 4.7-10.1 1.8-12.4"/><path d="m47.5 30c-6.2.7-15.3 9.6-8.9 19.3-4.7-9.8 3-16.4 7.9-18.7.5-.4 1-.6 1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44b.svg
index 894e6f4..2118c9b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.17 48.545c-.473-.098-.938-.234-1.396-.395-.455-.156-.902-.34-1.346-.545-.881-.41-1.729-.91-2.521-1.49-1.59-1.156-2.963-2.66-3.955-4.395-.994-1.734-1.586-3.691-1.721-5.648-.068-.98-.031-1.957.105-2.912.074-.476.166-.949.291-1.414.121-.463.266-.92.449-1.365l.127 1.412c.045.467.096.924.156 1.378.121.906.277 1.795.488 2.66.422 1.729 1.047 3.365 1.914 4.877.861 1.516 1.959 2.904 3.215 4.191.629.643 1.301 1.258 2 1.861.35.299.711.596 1.076.891l1.114.894"/><path d="m15.885 52.2c-.346.158-.699.277-1.061.379-.357.102-.729.18-1.1.24-.742.121-1.504.158-2.266.121-1.529-.076-3.072-.494-4.445-1.244-1.375-.746-2.57-1.816-3.434-3.08-.436-.629-.787-1.301-1.061-1.998-.129-.352-.244-.707-.334-1.068-.086-.36-.154-.725-.184-1.098.252.277.49.555.727.826.234.27.469.537.709.793.473.516.951 1 1.445 1.455.988.904 2.037 1.67 3.178 2.291 1.141.619 2.365 1.092 3.672 1.465.652.186 1.324.344 2.02.49.346.074.695.141 1.055.211.353.069.714.135 1.083.217"/><path d="m38.575 3.268c.484.125.955.287 1.416.473.461.182.91.395 1.35.621.887.461 1.727 1.01 2.51 1.633 1.568 1.248 2.9 2.828 3.82 4.625.92 1.791 1.416 3.787 1.441 5.756.012.984-.082 1.963-.279 2.912-.102.477-.223.945-.377 1.402-.152.459-.328.908-.539 1.344l-.053-1.422c-.021-.469-.047-.934-.084-1.393-.068-.916-.18-1.814-.346-2.691-.334-1.758-.885-3.432-1.689-4.996-.799-1.566-1.842-3.02-3.061-4.377-.613-.68-1.268-1.334-1.957-1.977-.342-.322-.697-.637-1.059-.955l-1.093-.955"/><path d="m47.4 2.803c.357.1.701.23 1.041.381.336.145.662.316.984.502.639.373 1.232.814 1.783 1.316 1.098 1 1.986 2.266 2.533 3.664.557 1.398.76 2.924.59 4.385-.084.73-.254 1.441-.504 2.119-.127.338-.27.67-.439.988-.164.318-.352.629-.57.922-.012-.361-.008-.711-.01-1.055-.006-.346-.006-.686-.021-1.021-.021-.67-.064-1.322-.145-1.961-.156-1.275-.447-2.486-.904-3.646-.453-1.162-1.072-2.266-1.811-3.348-.371-.541-.771-1.074-1.197-1.611-.213-.266-.43-.533-.654-.803-.225-.271-.452-.545-.676-.832"/></g><g fill="#ffdd67"><path d="m44.27 38.621l7.307-3.867-16.448-30.478c-1.103-2.041-3.656-2.877-5.666-1.813l-.021.01c-2.01 1.066-2.725 3.629-1.588 5.732l16.416 30.416"/><path d="m35.641 43.19l8.632-4.568-17.833-33.04c-1.346-2.492-4.367-3.496-6.75-2.234-2.385 1.262-3.227 4.311-1.881 6.805l17.832 33.03"/><path d="m28.12 47.17l7.525-3.984-16.785-31.1c-1.174-2.172-3.807-3.043-5.877-1.945l-.014.006c-2.078 1.1-2.805 3.75-1.635 5.922l16.786 31.1"/><path d="m8.292 18.618c-1.932 1.023-2.547 3.451-1.459 5.469l14.424 26.718 6.859-3.631-14.422-26.72c-1.088-2.02-3.469-2.86-5.402-1.836"/></g><g fill="#eba352"><path d="m29.465 2.463l-.021.01c-.217.115-.416.258-.602.404 1.875-.584 4.01.27 4.989 2.088l16.447 30.478 1.301-.689-16.448-30.478c-1.103-2.041-3.656-2.877-5.666-1.813"/><path d="m19.69 3.348c-.223.117-.422.266-.615.414 2.248-.768 4.848.248 6.07 2.51l17.831 33.04 1.301-.688-17.833-33.04c-1.346-2.493-4.367-3.497-6.75-2.235"/><path d="m12.979 10.147l-.014.006c-.221.117-.42.26-.607.408 1.939-.611 4.15.277 5.199 2.219l16.784 31.1 1.3-.689-16.785-31.1c-1.174-2.172-3.807-3.043-5.877-1.945"/><path d="m8.292 18.618c-.223.119-.424.26-.609.412 1.777-.529 3.75.328 4.711 2.113l14.422 26.72 1.301-.689-14.422-26.72c-1.089-2.02-3.47-2.86-5.403-1.836"/></g><path fill="#ffdd67" d="m60.755 15.67c-2.797-1.893-7.182.594-9.125 7.814-1.357 5.04-1.105 4.582-4.395 6.32l-2.02-3.742c0 0-9.866-1.477-22.625 8.335 0 0-7.396 5.346-5.174 9.459 0 0 4.086 10.809 10.334 15.656 9.3 7.223 32.23-1.715 30.368-21.4-.369-3.912.373-6.087 1.232-10.166 1.031-4.912 4.474-10.196 1.406-12.276"/><g fill="#eba352"><path d="m60.755 15.67c-.529-.359-1.117-.559-1.736-.6.133.066.266.133.391.219 3.068 2.078-.377 7.361-1.41 12.275-.855 4.08-1.66 6.218-1.287 10.13 1.615 17.06-15.4 26.05-26.02 23.43 10.44 3.842 29.11-5.172 27.424-23.01-.369-3.912.373-6.087 1.232-10.166 1.031-4.912 4.474-10.196 1.406-12.276"/><path d="m37.629 50.1c-2.985-5.535-1.182-12.266 4.01-15.182-1.143.09-2.281.389-3.346.953-4.373 2.314-5.918 7.904-3.448 12.48 1.08 2 2.75 3.467 4.649 4.303-.709-.752-1.343-1.597-1.86-2.554"/><path d="m35.797 47.24c-1.081-2.807-4.03-4.527-6.933-3.904-.463.098-.895.252-1.295.449.502-1.262 1.574-2.242 2.984-2.545 2.348-.504 4.734 1.055 5.337 3.477.219.875.171 1.746-.093 2.523"/><path d="m45.565 26.1c-8.07-.656-23.788 7.468-28.24 14.949 2.171-9.972 21.435-18.17 28.24-14.949"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m16.1 48.5c-.5-.1-.9-.2-1.4-.4-.5-.2-.9-.3-1.3-.5-.9-.4-1.7-.9-2.5-1.5-1.6-1.1-2.9-2.6-3.9-4.4-1-1.7-1.6-3.7-1.7-5.6-.1-1 0-1.9.1-2.9.1-.5.2-.9.3-1.4.1-.5.3-.9.4-1.4l.1 1.4c0 .5.1.9.2 1.4.1.9.3 1.8.5 2.6.4 1.7 1 3.3 1.9 4.8.9 1.5 1.9 2.9 3.2 4.2.6.6 1.3 1.2 2 1.8.3.3.7.6 1.1.9l1 1"/><path d="m15.8 52.1c-.3.2-.7.3-1.1.4-.4.1-.7.2-1.1.2-.7.1-1.5.2-2.3.1-1.5-.1-3.1-.5-4.4-1.2-1.4-.7-2.6-1.8-3.4-3.1-.4-.6-.8-1.3-1.1-2-.1-.3-.2-.7-.3-1.1 0-.3-.1-.6-.1-1 .3.3.5.6.7.8.3.3.5.6.7.8.5.5.9 1 1.4 1.4 1 .9 2 1.7 3.2 2.3 1.1.6 2.4 1.1 3.6 1.5.6.2 1.3.3 2 .5.3.1.7.1 1 .2.5.1.8.1 1.2.2"/><path d="m38.4 3.5c.5.1.9.3 1.4.5.5.2.9.4 1.3.6.9.5 1.7 1 2.5 1.6 1.6 1.2 2.9 2.8 3.8 4.6.9 1.8 1.4 3.8 1.4 5.7 0 1-.1 1.9-.3 2.9-.1.5-.2.9-.4 1.4-.2.5-.3.9-.5 1.3l-.1-1.4c0-.5 0-.9-.1-1.4-.1-.9-.2-1.8-.3-2.7-.3-1.7-.9-3.4-1.7-5-.8-1.6-1.8-3-3-4.3-.6-.7-1.3-1.3-1.9-2-.3-.3-.7-.6-1.1-.9l-1-.9"/><path d="m47.1 3.1c.4.1.7.2 1 .4.3.1.7.3 1 .5.6.4 1.2.8 1.8 1.3 1.1 1 2 2.2 2.5 3.6.6 1.4.8 2.9.6 4.4-.1.7-.3 1.4-.5 2.1-.1.3-.3.7-.4 1-.2.3-.3.6-.6.9 0-.4 0-.7 0-1 0-.3 0-.7 0-1 0-.7-.1-1.3-.1-1.9-.2-1.3-.4-2.5-.9-3.6-.5-1.2-1.1-2.2-1.8-3.3-.4-.5-.8-1.1-1.2-1.6-.2-.3-.4-.5-.7-.8-.2-.5-.5-.8-.7-1"/></g><g fill="#ffdd67"><path d="m10 18c-2 .9-2.7 3.3-1.8 5.3l12.6 26.3 7-3.3-12.6-26.4c-.9-2-3.2-2.9-5.2-1.9"/><path d="m43.1 38.9l7.4-3.5-14.4-30c-1-2-3.4-2.9-5.5-1.9-2 1-2.9 3.4-1.9 5.5l14.4 29.9"/></g><path d="m30.7 3.4c-.2.1-.4.2-.6.4 1.9-.5 3.9.4 4.8 2.2l14.4 30 1.3-.6-14.4-30c-1-2.1-3.4-3-5.5-2" fill="#eba352"/><path d="m27.8 46.2l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2.1-2.1 1-3 3.6-2 5.7l14.7 30.7" fill="#ffdd67"/><path d="m15.1 9.9c-.2.1-.4.2-.6.4 1.9-.5 4.1.4 5 2.3l9.1 19.1 2.2 1.3-10-21c-1-2.2-3.5-3.1-5.7-2.1" fill="#eba352"/><path d="m34.3 40.1l7.7-3.7-14.7-30.6c-1-2.1-3.6-3.1-5.7-2-2.1 1-3 3.6-2 5.7l14.7 30.6" fill="#ffdd67"/><g fill="#eba352"><path d="m21.6 3.7c-.2.1-.4.3-.6.4 1.9-.5 4.1.4 5 2.3l10.3 21.6 2.2 1.3-11.2-23.5c-1-2.2-3.6-3.1-5.7-2.1"/><path d="m10 18c-.2.1-.4.2-.6.4 1.8-.5 3.7.4 4.5 2.2l7.5 15.7 2.2 1.3-8.4-17.6c-.9-2.1-3.2-3-5.2-2"/></g><path d="m60.8 15c-2.7-2.1-7.1.2-9.3 7.4-1.5 5-1.7 6.5-4.9 8l-1.8-3.7c0 0-28.4 13.7-27.3 15.9 0 0 3.4 10.6 9.2 15.5 8.6 7.4 28.7-.5 29.6-19.6.5-11.1 7.4-21.2 4.5-23.5" fill="#ffdd67"/><g fill="#eba352"><path d="m60.8 15c-.5-.4-1.1-.6-1.7-.7.1.1.3.1.4.2 3 2.3-.1 7.6-1.8 12.4-1.4 3.8-2.6 7.7-2.4 11.5.8 16.6-15.9 24.5-25.9 21.5 9.8 4.1 28-3.7 27.2-21-.2-3.8.9-7.5 2.4-11.5 1.6-4.8 4.7-10.1 1.8-12.4"/><path d="m47.5 30c-6.2.7-15.3 9.6-8.9 19.3-4.7-9.8 3-16.4 7.9-18.7.5-.4 1-.6 1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fb.svg
index 9d7bbb9..988b464 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m48.13 32.832c.871 2.445 1.359 6.482.15 11.58 0 0-5.545-4.523-6.564-6.908 0 0-3.189-9.25-5.674-15.05-1.021-2.383-4.121-3.23-5.557-6.559-2.504-5.803.439-10.82 3.434-7.199 3.449 4.174 8.479 7.27 9.496 9.654 1.701 3.978 3.443 10.894 4.715 14.482"/><path fill="#ffe1bd" d="m53.27 36.624c.449 3.16.061 8.135-2.629 13.949 0 0-5.563-6.84-6.209-9.963 0 0-1.59-11.921-3.166-19.519-.648-3.123-4.168-4.928-5.084-9.289-1.6-7.605 3.15-12.887 5.867-7.777 3.133 5.891 8.42 10.885 9.07 14.01 1.078 5.211 1.492 13.961 2.155 18.591"/><path fill="#e6b796" d="m46.09 38.05c0 0-1.588-11.921-3.168-19.517-.646-3.125-4.164-4.93-5.082-9.291-.549-2.619-.35-4.963.262-6.701-1.67 1.318-3.02 4.906-2.107 9.26.918 4.361 4.455 6.186 5.104 9.311 1.578 7.598 3.334 19.496 3.334 19.496.645 3.123 6.209 9.963 6.209 9.963.494-1.064.885-2.09 1.232-3.092-1.306-1.66-5.245-6.828-5.784-9.429"/><path fill="#ffe1bd" d="m50.918 35.44c-6.467-6.04-13.645-9.697-18.303-12.05-6.912-3.488-5.094 1.313-16.883 4.484-1.557.418-3.41 1.584-1.994 4.619 1.365 2.921 12.496.705 14.225-1.045 0 0 4.658 5.849 9.313 5.712 0 0-.805 3.883.328 5.76 0 0-6.596 3.523-9.42 6.615l-7.84-5.389c-.574-8.336-2.051-10.803-6.04-10.408-3.723.367-3.303 3.953-3.221 6.906.146 5.314-1.227 6.176.039 8.285 4.838 8.06 10.91 13.06 22.21 13.06 4.23 0 6.918-.115 9.518-1.438 4.357-2.212 15.185-18.472 8.07-25.12"/><g fill="#e6b796"><path d="m52.18 37.02c2.418 7.617-6.221 20.1-10 22.02-2.6 1.32-5.287 1.436-9.518 1.436-11.176 0-17.283-4.92-22.05-12.807.115.439.273.855.518 1.262 4.838 8.06 10.912 13.06 22.21 13.06 4.232 0 6.92-.115 9.52-1.438 4.04-2.054 13.65-16.201 9.324-23.54"/><path d="m18.973 44.41c0 0 7.289 4.803 9.06 5.068l-7.688-5.328c.313-8.416-2.092-11.1-6.04-10.408-.322.057-.609.123-.869.199 3.959-.412 5.861 2.258 5.541 10.469"/><path d="m27.982 31.453c0 0 4.66 5.849 9.313 5.712v-1.086c-4.652.137-9.313-5.714-9.313-5.714-1.727 1.75-12.857 3.966-14.223 1.045-.24-.512-.379-.969-.449-1.381-.129.641-.027 1.445.449 2.469 1.366 2.921 12.497.704 14.223-1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m48.6 32.8l-6.6 4.7c0 0-3.3-9.2-5.8-15.1-1-2.4-4.2-3.2-5.7-6.6-2.6-5.8.5-10.8 3.5-7.2 3.5 4.2 8.7 7.3 9.8 9.7 1.7 4 4.8 14.5 4.8 14.5"/><path d="m53.8 36.6c.5 3.2.1 8.1-2.7 13.9 0 0-5.7-6.8-6.4-10 0 0-1.6-11.9-3.3-19.5-.7-3.1-4.3-4.9-5.2-9.3-1.6-7.6 3.2-12.9 6-7.8 3.2 5.9 8.6 10.9 9.3 14 1.2 5.3 1.7 14.1 2.3 18.7"/></g><path d="m45.4 30.6c0 0-.5-4.5-2.2-12.1-.7-3.1-4.3-4.9-5.2-9.3-.6-2.6-.4-5 .3-6.7-1.7 1.3-3.1 4.9-2.2 9.3.9 4.4 4.6 6.2 5.2 9.3.7 3.3 1.3 6.7 1.3 6.7l-5-1.9 7.8 4.7" fill="#e6b796"/><path d="m51.4 35.4c-6.6-6-14-9.7-18.8-12-7.1-3.5-5.2 1.3-17.3 4.5-1.6.4-3.5 1.6-2 4.6 1.4 2.9 12.8.7 14.6-1 0 0 4.8 5.9 9.6 5.7 0 0-.8 3.9.3 5.8 0 0-6.8 3.5-9.7 6.6l-8-5.4c-.6-8.3-2.1-10.8-6.2-10.4-3.8.4-3.4 4-3.3 6.9.1 5.3-1.3 6.2 0 8.3 4.9 8 11.2 13 22.8 13 4.3 0 7.1-.1 9.8-1.4 4.4-2.3 15.5-18.5 8.2-25.2" fill="#ffe1bd"/><g fill="#e6b796"><path d="m52.7 37c2.5 7.6-6.4 20.1-10.3 22-2.7 1.3-5.4 1.4-9.8 1.4-11.5 0-17.7-4.9-22.6-12.8.1.4.3.9.5 1.3 5 8.1 11.3 13.1 22.9 13.1 4.3 0 7.1-.1 9.8-1.4 4.1-2.1 14-16.2 9.5-23.6"/><path d="m18.6 44.4c0 0 7.5 4.8 9.3 5.1l-7.9-5.3c.3-8.4-2.1-11.1-6.2-10.4-.3.1-.6.1-.9.2 4.1-.5 6 2.2 5.7 10.4"/><path d="m27.9 31.5c0 0 4.8 5.8 9.6 5.7v-1.1c-4.8.1-9.6-5.7-9.6-5.7-1.8 1.8-13.2 4-14.6 1-.2-.5-.4-1-.5-1.4-.1.6 0 1.4.5 2.5 1.4 2.9 12.8.7 14.6-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fc.svg
index 44734a3..c03cb35 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#edbd9b" d="m48.13 32.831c.871 2.445 1.359 6.482.15 11.58 0 0-5.545-4.523-6.564-6.908 0 0-3.189-9.25-5.674-15.05-1.021-2.383-4.121-3.23-5.557-6.559-2.504-5.803.439-10.82 3.434-7.199 3.449 4.174 8.479 7.27 9.496 9.654 1.701 3.979 3.443 10.895 4.715 14.483"/><path fill="#fed0ac" d="m53.27 36.624c.449 3.16.061 8.135-2.629 13.949 0 0-5.563-6.84-6.209-9.963 0 0-1.59-11.922-3.166-19.52-.648-3.123-4.168-4.928-5.084-9.289-1.6-7.605 3.15-12.887 5.867-7.777 3.133 5.891 8.42 10.885 9.07 14.01 1.078 5.211 1.492 13.961 2.155 18.592"/><path fill="#e0a372" d="m46.09 38.05c0 0-1.588-11.922-3.168-19.518-.646-3.125-4.164-4.93-5.082-9.291-.549-2.619-.35-4.963.262-6.701-1.67 1.318-3.02 4.906-2.107 9.26.918 4.361 4.455 6.186 5.104 9.311 1.578 7.598 3.334 19.496 3.334 19.496.645 3.123 6.209 9.963 6.209 9.963.494-1.064.885-2.09 1.232-3.092-1.306-1.659-5.245-6.827-5.784-9.428"/><path fill="#fed0ac" d="m50.918 35.44c-6.467-6.04-13.645-9.697-18.303-12.05-6.912-3.488-5.094 1.313-16.883 4.484-1.557.418-3.41 1.584-1.994 4.619 1.365 2.922 12.496.705 14.225-1.045 0 0 4.658 5.85 9.313 5.713 0 0-.805 3.883.328 5.76 0 0-6.596 3.523-9.42 6.615l-7.84-5.389c-.574-8.336-2.051-10.803-6.04-10.408-3.723.367-3.303 3.953-3.221 6.906.146 5.314-1.227 6.176.039 8.285 4.838 8.06 10.91 13.06 22.21 13.06 4.23 0 6.918-.115 9.518-1.438 4.357-2.212 15.185-18.472 8.07-25.12"/><g fill="#e0a372"><path d="m52.18 37.02c2.418 7.617-6.221 20.1-10 22.02-2.6 1.32-5.287 1.436-9.518 1.436-11.176 0-17.283-4.92-22.05-12.807.115.439.273.855.518 1.262 4.838 8.06 10.912 13.06 22.21 13.06 4.232 0 6.92-.115 9.52-1.438 4.04-2.054 13.65-16.201 9.324-23.54"/><path d="m18.973 44.41c0 0 7.289 4.803 9.06 5.068l-7.688-5.328c.313-8.416-2.092-11.1-6.04-10.408-.322.057-.609.123-.869.199 3.959-.412 5.861 2.258 5.541 10.469"/><path d="m27.982 31.452c0 0 4.66 5.85 9.313 5.713v-1.086c-4.652.137-9.313-5.715-9.313-5.715-1.727 1.75-12.857 3.967-14.223 1.045-.24-.512-.379-.969-.449-1.381-.129.641-.027 1.445.449 2.469 1.366 2.922 12.497.705 14.223-1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m48.6 32.8l-6.6 4.7c0 0-3.3-9.2-5.8-15.1-1-2.4-4.2-3.2-5.7-6.6-2.6-5.8.5-10.8 3.5-7.2 3.5 4.2 8.7 7.3 9.8 9.7 1.7 4 4.8 14.5 4.8 14.5"/><path d="m53.8 36.6c.5 3.2.1 8.1-2.7 13.9 0 0-5.7-6.8-6.4-10 0 0-1.6-11.9-3.3-19.5-.7-3.1-4.3-4.9-5.2-9.3-1.6-7.6 3.2-12.9 6-7.8 3.2 5.9 8.6 10.9 9.3 14 1.2 5.3 1.7 14.1 2.3 18.7"/></g><path d="m45.4 30.6c0 0-.5-4.5-2.2-12.1-.7-3.1-4.3-4.9-5.2-9.3-.6-2.6-.4-5 .3-6.7-1.7 1.3-3.1 4.9-2.2 9.3.9 4.4 4.6 6.2 5.2 9.3.7 3.3 1.3 6.7 1.3 6.7l-5-1.9 7.8 4.7" fill="#e0a372"/><path d="m51.4 35.4c-6.6-6-14-9.7-18.8-12-7.1-3.5-5.2 1.3-17.3 4.5-1.6.4-3.5 1.6-2 4.6 1.4 2.9 12.8.7 14.6-1 0 0 4.8 5.9 9.6 5.7 0 0-.8 3.9.3 5.8 0 0-6.8 3.5-9.7 6.6l-8-5.4c-.6-8.3-2.1-10.8-6.2-10.4-3.8.4-3.4 4-3.3 6.9.1 5.3-1.3 6.2 0 8.3 4.9 8 11.2 13 22.8 13 4.3 0 7.1-.1 9.8-1.4 4.4-2.3 15.5-18.5 8.2-25.2" fill="#fed0ac"/><g fill="#e0a372"><path d="m52.7 37c2.5 7.6-6.4 20.1-10.3 22-2.7 1.3-5.4 1.4-9.8 1.4-11.5 0-17.7-4.9-22.6-12.8.1.4.3.9.5 1.3 5 8.1 11.3 13.1 22.9 13.1 4.3 0 7.1-.1 9.8-1.4 4.1-2.1 14-16.2 9.5-23.6"/><path d="m18.6 44.4c0 0 7.5 4.8 9.3 5.1l-7.9-5.3c.3-8.4-2.1-11.1-6.2-10.4-.3.1-.6.1-.9.2 4.1-.5 6 2.2 5.7 10.4"/><path d="m27.9 31.5c0 0 4.8 5.8 9.6 5.7v-1.1c-4.8.1-9.6-5.7-9.6-5.7-1.8 1.8-13.2 4-14.6 1-.2-.5-.4-1-.5-1.4-.1.6 0 1.4.5 2.5 1.4 2.9 12.8.7 14.6-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fd.svg
index 3478201..e6d0d54 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ad84" d="m48.13 32.831c.871 2.445 1.359 6.482.15 11.58 0 0-5.545-4.523-6.564-6.908 0 0-3.189-9.25-5.674-15.05-1.021-2.383-4.121-3.23-5.557-6.559-2.504-5.803.439-10.82 3.434-7.199 3.449 4.174 8.479 7.27 9.496 9.654 1.701 3.979 3.443 10.895 4.715 14.483"/><path fill="#d6a57c" d="m53.27 36.624c.449 3.16.061 8.135-2.629 13.949 0 0-5.563-6.84-6.209-9.963 0 0-1.59-11.922-3.166-19.52-.648-3.123-4.168-4.928-5.084-9.289-1.6-7.605 3.15-12.887 5.867-7.777 3.133 5.891 8.42 10.885 9.07 14.01 1.078 5.211 1.492 13.961 2.155 18.592"/><path fill="#b58360" d="m46.09 38.05c0 0-1.588-11.922-3.168-19.518-.646-3.125-4.164-4.93-5.082-9.291-.549-2.619-.35-4.963.262-6.701-1.67 1.318-3.02 4.906-2.107 9.26.918 4.361 4.455 6.186 5.104 9.311 1.578 7.598 3.334 19.496 3.334 19.496.645 3.123 6.209 9.963 6.209 9.963.494-1.064.885-2.09 1.232-3.092-1.306-1.659-5.245-6.827-5.784-9.428"/><path fill="#d6a57c" d="m50.918 35.44c-6.467-6.04-13.645-9.697-18.303-12.05-6.912-3.488-5.094 1.313-16.883 4.484-1.557.418-3.41 1.584-1.994 4.619 1.365 2.922 12.496.705 14.225-1.045 0 0 4.658 5.85 9.313 5.713 0 0-.805 3.883.328 5.76 0 0-6.596 3.523-9.42 6.615l-7.84-5.389c-.574-8.336-2.051-10.803-6.04-10.408-3.723.367-3.303 3.953-3.221 6.906.146 5.314-1.227 6.176.039 8.285 4.838 8.06 10.91 13.06 22.21 13.06 4.23 0 6.918-.115 9.518-1.438 4.357-2.212 15.185-18.472 8.07-25.12"/><g fill="#b58360"><path d="m52.18 37.02c2.418 7.617-6.221 20.1-10 22.02-2.6 1.32-5.287 1.436-9.518 1.436-11.176 0-17.283-4.92-22.05-12.807.115.439.273.855.518 1.262 4.838 8.06 10.912 13.06 22.21 13.06 4.232 0 6.92-.115 9.52-1.438 4.04-2.054 13.65-16.201 9.324-23.54"/><path d="m18.973 44.41c0 0 7.289 4.803 9.06 5.068l-7.688-5.328c.313-8.416-2.092-11.1-6.04-10.408-.322.057-.609.123-.869.199 3.959-.412 5.861 2.258 5.541 10.469"/><path d="m27.982 31.452c0 0 4.66 5.85 9.313 5.713v-1.086c-4.652.137-9.313-5.715-9.313-5.715-1.727 1.75-12.857 3.967-14.223 1.045-.24-.512-.379-.969-.449-1.381-.129.641-.027 1.445.449 2.469 1.366 2.922 12.497.705 14.223-1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m48.6 32.8l-6.6 4.7c0 0-3.3-9.2-5.8-15.1-1-2.4-4.2-3.2-5.7-6.6-2.6-5.8.5-10.8 3.5-7.2 3.5 4.2 8.7 7.3 9.8 9.7 1.7 4 4.8 14.5 4.8 14.5"/><path d="m53.8 36.6c.5 3.2.1 8.1-2.7 13.9 0 0-5.7-6.8-6.4-10 0 0-1.6-11.9-3.3-19.5-.7-3.1-4.3-4.9-5.2-9.3-1.6-7.6 3.2-12.9 6-7.8 3.2 5.9 8.6 10.9 9.3 14 1.2 5.3 1.7 14.1 2.3 18.7"/></g><path d="m45.4 30.6c0 0-.5-4.5-2.2-12.1-.7-3.1-4.3-4.9-5.2-9.3-.6-2.6-.4-5 .3-6.7-1.7 1.3-3.1 4.9-2.2 9.3.9 4.4 4.6 6.2 5.2 9.3.7 3.3 1.3 6.7 1.3 6.7l-5-1.9 7.8 4.7" fill="#b58360"/><path d="m51.4 35.4c-6.6-6-14-9.7-18.8-12-7.1-3.5-5.2 1.3-17.3 4.5-1.6.4-3.5 1.6-2 4.6 1.4 2.9 12.8.7 14.6-1 0 0 4.8 5.9 9.6 5.7 0 0-.8 3.9.3 5.8 0 0-6.8 3.5-9.7 6.6l-8-5.4c-.6-8.3-2.1-10.8-6.2-10.4-3.8.4-3.4 4-3.3 6.9.1 5.3-1.3 6.2 0 8.3 4.9 8 11.2 13 22.8 13 4.3 0 7.1-.1 9.8-1.4 4.4-2.3 15.5-18.5 8.2-25.2" fill="#d6a57c"/><g fill="#b58360"><path d="m52.7 37c2.5 7.6-6.4 20.1-10.3 22-2.7 1.3-5.4 1.4-9.8 1.4-11.5 0-17.7-4.9-22.6-12.8.1.4.3.9.5 1.3 5 8.1 11.3 13.1 22.9 13.1 4.3 0 7.1-.1 9.8-1.4 4.1-2.1 14-16.2 9.5-23.6"/><path d="m18.6 44.4c0 0 7.5 4.8 9.3 5.1l-7.9-5.3c.3-8.4-2.1-11.1-6.2-10.4-.3.1-.6.1-.9.2 4.1-.5 6 2.2 5.7 10.4"/><path d="m27.9 31.5c0 0 4.8 5.8 9.6 5.7v-1.1c-4.8.1-9.6-5.7-9.6-5.7-1.8 1.8-13.2 4-14.6 1-.2-.5-.4-1-.5-1.4-.1.6 0 1.4.5 2.5 1.4 2.9 12.8.7 14.6-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fe.svg
index e883d3d..c28d64a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b58869" d="m48.13 32.831c.871 2.445 1.359 6.482.15 11.58 0 0-5.545-4.523-6.564-6.908 0 0-3.189-9.25-5.674-15.05-1.021-2.383-4.121-3.23-5.557-6.559-2.504-5.803.439-10.82 3.434-7.199 3.449 4.174 8.479 7.27 9.496 9.654 1.701 3.979 3.443 10.895 4.715 14.483"/><path fill="#b47d56" d="m53.27 36.624c.449 3.16.061 8.135-2.629 13.949 0 0-5.563-6.84-6.209-9.963 0 0-1.59-11.922-3.166-19.52-.648-3.123-4.168-4.928-5.084-9.289-1.6-7.605 3.15-12.887 5.867-7.777 3.133 5.891 8.42 10.885 9.07 14.01 1.078 5.211 1.492 13.961 2.155 18.592"/><path fill="#935e3e" d="m46.09 38.05c0 0-1.588-11.922-3.168-19.518-.646-3.125-4.164-4.93-5.082-9.291-.549-2.619-.35-4.963.262-6.701-1.67 1.318-3.02 4.906-2.107 9.26.918 4.361 4.455 6.186 5.104 9.311 1.578 7.598 3.334 19.496 3.334 19.496.645 3.123 6.209 9.963 6.209 9.963.494-1.064.885-2.09 1.232-3.092-1.306-1.659-5.245-6.827-5.784-9.428"/><path fill="#b47d56" d="m50.918 35.44c-6.467-6.04-13.645-9.697-18.303-12.05-6.912-3.488-5.094 1.313-16.883 4.484-1.557.418-3.41 1.584-1.994 4.619 1.365 2.922 12.496.705 14.225-1.045 0 0 4.658 5.85 9.313 5.713 0 0-.805 3.883.328 5.76 0 0-6.596 3.523-9.42 6.615l-7.84-5.389c-.574-8.336-2.051-10.803-6.04-10.408-3.723.367-3.303 3.953-3.221 6.906.146 5.314-1.227 6.176.039 8.285 4.838 8.06 10.91 13.06 22.21 13.06 4.23 0 6.918-.115 9.518-1.438 4.357-2.212 15.185-18.472 8.07-25.12"/><g fill="#935e3e"><path d="m52.18 37.02c2.418 7.617-6.221 20.1-10 22.02-2.6 1.32-5.287 1.436-9.518 1.436-11.176 0-17.283-4.92-22.05-12.807.115.439.273.855.518 1.262 4.838 8.06 10.912 13.06 22.21 13.06 4.232 0 6.92-.115 9.52-1.438 4.04-2.054 13.65-16.201 9.324-23.54"/><path d="m18.973 44.41c0 0 7.289 4.803 9.06 5.068l-7.688-5.328c.313-8.416-2.092-11.1-6.04-10.408-.322.057-.609.123-.869.199 3.959-.412 5.861 2.258 5.541 10.469"/><path d="m27.982 31.452c0 0 4.66 5.85 9.313 5.713v-1.086c-4.652.137-9.313-5.715-9.313-5.715-1.727 1.75-12.857 3.967-14.223 1.045-.24-.512-.379-.969-.449-1.381-.129.641-.027 1.445.449 2.469 1.366 2.922 12.497.705 14.223-1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m48.6 32.8l-6.6 4.7c0 0-3.3-9.2-5.8-15.1-1-2.4-4.2-3.2-5.7-6.6-2.6-5.8.5-10.8 3.5-7.2 3.5 4.2 8.7 7.3 9.8 9.7 1.7 4 4.8 14.5 4.8 14.5"/><path d="m53.8 36.6c.5 3.2.1 8.1-2.7 13.9 0 0-5.7-6.8-6.4-10 0 0-1.6-11.9-3.3-19.5-.7-3.1-4.3-4.9-5.2-9.3-1.6-7.6 3.2-12.9 6-7.8 3.2 5.9 8.6 10.9 9.3 14 1.2 5.3 1.7 14.1 2.3 18.7"/></g><path d="m45.4 30.6c0 0-.5-4.5-2.2-12.1-.7-3.1-4.3-4.9-5.2-9.3-.6-2.6-.4-5 .3-6.7-1.7 1.3-3.1 4.9-2.2 9.3.9 4.4 4.6 6.2 5.2 9.3.7 3.3 1.3 6.7 1.3 6.7l-5-1.9 7.8 4.7" fill="#935e3e"/><path d="m51.4 35.4c-6.6-6-14-9.7-18.8-12-7.1-3.5-5.2 1.3-17.3 4.5-1.6.4-3.5 1.6-2 4.6 1.4 2.9 12.8.7 14.6-1 0 0 4.8 5.9 9.6 5.7 0 0-.8 3.9.3 5.8 0 0-6.8 3.5-9.7 6.6l-8-5.4c-.6-8.3-2.1-10.8-6.2-10.4-3.8.4-3.4 4-3.3 6.9.1 5.3-1.3 6.2 0 8.3 4.9 8 11.2 13 22.8 13 4.3 0 7.1-.1 9.8-1.4 4.4-2.3 15.5-18.5 8.2-25.2" fill="#b47d56"/><g fill="#935e3e"><path d="m52.7 37c2.5 7.6-6.4 20.1-10.3 22-2.7 1.3-5.4 1.4-9.8 1.4-11.5 0-17.7-4.9-22.6-12.8.1.4.3.9.5 1.3 5 8.1 11.3 13.1 22.9 13.1 4.3 0 7.1-.1 9.8-1.4 4.1-2.1 14-16.2 9.5-23.6"/><path d="m18.6 44.4c0 0 7.5 4.8 9.3 5.1l-7.9-5.3c.3-8.4-2.1-11.1-6.2-10.4-.3.1-.6.1-.9.2 4.1-.5 6 2.2 5.7 10.4"/><path d="m27.9 31.5c0 0 4.8 5.8 9.6 5.7v-1.1c-4.8.1-9.6-5.7-9.6-5.7-1.8 1.8-13.2 4-14.6 1-.2-.5-.4-1-.5-1.4-.1.6 0 1.4.5 2.5 1.4 2.9 12.8.7 14.6-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3ff.svg
index 76acfe3..6d2a3a4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44c-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#99786b" d="m48.13 32.831c.871 2.445 1.359 6.482.15 11.58 0 0-5.545-4.523-6.564-6.908 0 0-3.189-9.25-5.674-15.05-1.021-2.383-4.121-3.23-5.557-6.559-2.504-5.803.439-10.82 3.434-7.199 3.449 4.174 8.479 7.27 9.496 9.654 1.701 3.979 3.443 10.895 4.715 14.483"/><path fill="#8a6859" d="m53.27 36.624c.449 3.16.061 8.135-2.629 13.949 0 0-5.563-6.84-6.209-9.963 0 0-1.59-11.922-3.166-19.52-.648-3.123-4.168-4.928-5.084-9.289-1.6-7.605 3.15-12.887 5.867-7.777 3.133 5.891 8.42 10.885 9.07 14.01 1.078 5.211 1.492 13.961 2.155 18.592"/><path fill="#705041" d="m46.09 38.05c0 0-1.588-11.922-3.168-19.518-.646-3.125-4.164-4.93-5.082-9.291-.549-2.619-.35-4.963.262-6.701-1.67 1.318-3.02 4.906-2.107 9.26.918 4.361 4.455 6.186 5.104 9.311 1.578 7.598 3.334 19.496 3.334 19.496.645 3.123 6.209 9.963 6.209 9.963.494-1.064.885-2.09 1.232-3.092-1.306-1.659-5.245-6.827-5.784-9.428"/><path fill="#8a6859" d="m50.918 35.44c-6.467-6.04-13.645-9.697-18.303-12.05-6.912-3.488-5.094 1.313-16.883 4.484-1.557.418-3.41 1.584-1.994 4.619 1.365 2.922 12.496.705 14.225-1.045 0 0 4.658 5.85 9.313 5.713 0 0-.805 3.883.328 5.76 0 0-6.596 3.523-9.42 6.615l-7.84-5.389c-.574-8.336-2.051-10.803-6.04-10.408-3.723.367-3.303 3.953-3.221 6.906.146 5.314-1.227 6.176.039 8.285 4.838 8.06 10.91 13.06 22.21 13.06 4.23 0 6.918-.115 9.518-1.438 4.357-2.212 15.185-18.472 8.07-25.12"/><g fill="#705041"><path d="m52.18 37.02c2.418 7.617-6.221 20.1-10 22.02-2.6 1.32-5.287 1.436-9.518 1.436-11.176 0-17.283-4.92-22.05-12.807.115.439.273.855.518 1.262 4.838 8.06 10.912 13.06 22.21 13.06 4.232 0 6.92-.115 9.52-1.438 4.04-2.054 13.65-16.201 9.324-23.54"/><path d="m18.973 44.41c0 0 7.289 4.803 9.06 5.068l-7.688-5.328c.313-8.416-2.092-11.1-6.04-10.408-.322.057-.609.123-.869.199 3.959-.412 5.861 2.258 5.541 10.469"/><path d="m27.982 31.452c0 0 4.66 5.85 9.313 5.713v-1.086c-4.652.137-9.313-5.715-9.313-5.715-1.727 1.75-12.857 3.967-14.223 1.045-.24-.512-.379-.969-.449-1.381-.129.641-.027 1.445.449 2.469 1.366 2.922 12.497.705 14.223-1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m48.6 32.8l-6.6 4.7c0 0-3.3-9.2-5.8-15.1-1-2.4-4.2-3.2-5.7-6.6-2.6-5.8.5-10.8 3.5-7.2 3.5 4.2 8.7 7.3 9.8 9.7 1.7 4 4.8 14.5 4.8 14.5"/><path d="m53.8 36.6c.5 3.2.1 8.1-2.7 13.9 0 0-5.7-6.8-6.4-10 0 0-1.6-11.9-3.3-19.5-.7-3.1-4.3-4.9-5.2-9.3-1.6-7.6 3.2-12.9 6-7.8 3.2 5.9 8.6 10.9 9.3 14 1.2 5.3 1.7 14.1 2.3 18.7"/></g><path d="m45.4 30.6c0 0-.5-4.5-2.2-12.1-.7-3.1-4.3-4.9-5.2-9.3-.6-2.6-.4-5 .3-6.7-1.7 1.3-3.1 4.9-2.2 9.3.9 4.4 4.6 6.2 5.2 9.3.7 3.3 1.3 6.7 1.3 6.7l-5-1.9 7.8 4.7" fill="#705041"/><path d="m51.4 35.4c-6.6-6-14-9.7-18.8-12-7.1-3.5-5.2 1.3-17.3 4.5-1.6.4-3.5 1.6-2 4.6 1.4 2.9 12.8.7 14.6-1 0 0 4.8 5.9 9.6 5.7 0 0-.8 3.9.3 5.8 0 0-6.8 3.5-9.7 6.6l-8-5.4c-.6-8.3-2.1-10.8-6.2-10.4-3.8.4-3.4 4-3.3 6.9.1 5.3-1.3 6.2 0 8.3 4.9 8 11.2 13 22.8 13 4.3 0 7.1-.1 9.8-1.4 4.4-2.3 15.5-18.5 8.2-25.2" fill="#8a6859"/><g fill="#705041"><path d="m52.7 37c2.5 7.6-6.4 20.1-10.3 22-2.7 1.3-5.4 1.4-9.8 1.4-11.5 0-17.7-4.9-22.6-12.8.1.4.3.9.5 1.3 5 8.1 11.3 13.1 22.9 13.1 4.3 0 7.1-.1 9.8-1.4 4.1-2.1 14-16.2 9.5-23.6"/><path d="m18.6 44.4c0 0 7.5 4.8 9.3 5.1l-7.9-5.3c.3-8.4-2.1-11.1-6.2-10.4-.3.1-.6.1-.9.2 4.1-.5 6 2.2 5.7 10.4"/><path d="m27.9 31.5c0 0 4.8 5.8 9.6 5.7v-1.1c-4.8.1-9.6-5.7-9.6-5.7-1.8 1.8-13.2 4-14.6 1-.2-.5-.4-1-.5-1.4-.1.6 0 1.4.5 2.5 1.4 2.9 12.8.7 14.6-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44c.svg
index ceca87d..bb3a066 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffbe73" d="m48.13 32.832c.871 2.445 1.359 6.482.15 11.58 0 0-5.545-4.523-6.564-6.908 0 0-3.189-9.25-5.674-15.05-1.021-2.383-4.121-3.23-5.556-6.559-2.504-5.803.439-10.82 3.433-7.199 3.449 4.174 8.479 7.27 9.496 9.654 1.701 3.979 3.443 10.895 4.715 14.483"/><path fill="#ffdd67" d="m53.27 36.625c.449 3.16.061 8.135-2.629 13.949 0 0-5.563-6.84-6.209-9.963 0 0-1.59-11.922-3.166-19.52-.648-3.123-4.168-4.928-5.084-9.289-1.6-7.605 3.15-12.887 5.867-7.777 3.133 5.891 8.42 10.885 9.07 14.01 1.078 5.211 1.493 13.961 2.155 18.592"/><path fill="#eba352" d="m46.09 38.05c0 0-1.588-11.922-3.168-19.518-.646-3.125-4.164-4.93-5.082-9.291-.549-2.619-.35-4.963.262-6.701-1.67 1.318-3.02 4.906-2.107 9.26.918 4.361 4.455 6.186 5.104 9.311 1.578 7.598 3.334 19.496 3.334 19.496.645 3.123 6.209 9.963 6.209 9.963.494-1.064.885-2.09 1.232-3.092-1.306-1.659-5.245-6.827-5.784-9.428"/><path fill="#ffdd67" d="m50.915 35.441c-6.467-6.04-13.645-9.697-18.302-12.05-6.912-3.488-5.094 1.313-16.883 4.484-1.557.418-3.41 1.584-1.994 4.619 1.365 2.922 12.496.705 14.225-1.045 0 0 4.658 5.85 9.312 5.713 0 0-.805 3.883.328 5.76 0 0-6.595 3.523-9.419 6.615l-7.84-5.389c-.574-8.336-2.051-10.803-6.04-10.408-3.723.367-3.303 3.953-3.221 6.906.146 5.314-1.227 6.176.039 8.285 4.838 8.07 10.91 13.07 22.21 13.07 4.23 0 6.918-.115 9.518-1.438 4.357-2.214 15.185-18.474 8.07-25.12"/><g fill="#eba352"><path d="m52.18 37.02c2.418 7.617-6.221 20.1-10 22.02-2.6 1.32-5.287 1.436-9.517 1.436-11.176 0-17.283-4.92-22.05-12.807.115.439.273.855.518 1.262 4.837 8.07 10.912 13.07 22.21 13.07 4.232 0 6.92-.115 9.52-1.438 4.04-2.054 13.65-16.201 9.324-23.541"/><path d="m18.97 44.41c0 0 7.289 4.803 9.06 5.068l-7.688-5.328c.313-8.416-2.092-11.1-6.04-10.408-.322.057-.609.123-.869.199 3.959-.412 5.862 2.258 5.541 10.469"/><path d="m27.98 31.453c0 0 4.66 5.85 9.312 5.713v-1.086c-4.652.137-9.312-5.715-9.312-5.715-1.727 1.75-12.857 3.967-14.223 1.045-.24-.512-.379-.969-.449-1.381-.129.641-.027 1.445.449 2.469 1.366 2.922 12.496.705 14.223-1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m48.6 32.8l-6.6 4.7c0 0-3.3-9.2-5.8-15.1-1-2.4-4.2-3.2-5.7-6.6-2.6-5.8.5-10.8 3.5-7.2 3.5 4.2 8.7 7.3 9.8 9.7 1.7 4 4.8 14.5 4.8 14.5"/><path d="m53.8 36.6c.5 3.2.1 8.1-2.7 13.9 0 0-5.7-6.8-6.4-10 0 0-1.6-11.9-3.3-19.5-.7-3.1-4.3-4.9-5.2-9.3-1.6-7.6 3.2-12.9 6-7.8 3.2 5.9 8.6 10.9 9.3 14 1.2 5.3 1.7 14.1 2.3 18.7"/></g><path d="m45.4 30.6c0 0-.5-4.5-2.2-12.1-.7-3.1-4.3-4.9-5.2-9.3-.6-2.6-.4-5 .3-6.7-1.7 1.3-3.1 4.9-2.2 9.3.9 4.4 4.6 6.2 5.2 9.3.7 3.3 1.3 6.7 1.3 6.7l-5-1.9 7.8 4.7" fill="#eba352"/><path d="m51.4 35.4c-6.6-6-14-9.7-18.8-12-7.1-3.5-5.2 1.3-17.3 4.5-1.6.4-3.5 1.6-2 4.6 1.4 2.9 12.8.7 14.6-1 0 0 4.8 5.9 9.6 5.7 0 0-.8 3.9.3 5.8 0 0-6.8 3.5-9.7 6.6l-8-5.4c-.6-8.3-2.1-10.8-6.2-10.4-3.8.4-3.4 4-3.3 6.9.1 5.3-1.3 6.2 0 8.3 4.9 8 11.2 13 22.8 13 4.3 0 7.1-.1 9.8-1.4 4.4-2.3 15.5-18.5 8.2-25.2" fill="#ffdd67"/><g fill="#eba352"><path d="m52.7 37c2.5 7.6-6.4 20.1-10.3 22-2.7 1.3-5.4 1.4-9.8 1.4-11.5 0-17.7-4.9-22.6-12.8.1.4.3.9.5 1.3 5 8.1 11.3 13.1 22.9 13.1 4.3 0 7.1-.1 9.8-1.4 4.1-2.1 14-16.2 9.5-23.6"/><path d="m18.6 44.4c0 0 7.5 4.8 9.3 5.1l-7.9-5.3c.3-8.4-2.1-11.1-6.2-10.4-.3.1-.6.1-.9.2 4.1-.5 6 2.2 5.7 10.4"/><path d="m27.9 31.5c0 0 4.8 5.8 9.6 5.7v-1.1c-4.8.1-9.6-5.7-9.6-5.7-1.8 1.8-13.2 4-14.6 1-.2-.5-.4-1-.5-1.4-.1.6 0 1.4.5 2.5 1.4 2.9 12.8.7 14.6-1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fb.svg
index dcede11..c50c59f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m44.33 52.42c-.344-4.35-2.389-12.809-2.73-17.16-.416-5.25-3.67-9.523-8.191-9.523h-7.358c0 0 .314-5.32 2.902-9.785 2.549-4.4.891-11.332-1.805-13.1-3.222-2.121-6.476-.154-7.105 4.598-1.379 10.422-8.624 20.238-9.02 27.754-.227 4.357.893 12.939 1.631 17.219 1.098 6.33 3.668 9.58 8.192 9.58h15.287c4.521-.001 8.603-4.335 8.193-9.583"/><path fill="#e6b796" d="m38.771 60.22h-15.288c-4.524 0-7.094-3.252-8.192-9.582-.742-4.279-1.855-12.848-1.629-17.205.391-7.52 7.635-17.346 9.01-27.766.199-1.498.656-2.721 1.293-3.625-1.945.33-3.508 2.254-3.924 5.398-1.379 10.42-8.624 20.24-9.02 27.756-.227 4.357.893 12.939 1.631 17.219 1.098 6.332 3.669 9.582 8.193 9.582h15.287c2.068 0 4.047-.9 5.543-2.381-.92.389-1.905.604-2.912.604"/><g fill="#ffe1bd"><path d="m52.09 29.943c0 2.387-1.867 4.324-4.174 4.324h-15.21c-2.307 0-4.178-1.938-4.178-4.324 0-2.391 1.871-4.328 4.178-4.328h15.21c2.307 0 4.174 1.938 4.174 4.328"/><path d="m53 39.51c0 2.867-2.24 5.188-5 5.188h-18.13c-2.764 0-5-2.32-5-5.188v-.055c0-2.865 2.24-5.188 5-5.188h18.13c2.764 0 5 2.322 5 5.188v.055"/><path d="m50.828 49.2c0 2.486-1.947 4.504-4.346 4.504h-15.786c-2.4 0-4.344-2.02-4.344-4.504v-.002c0-2.486 1.943-4.502 4.344-4.502h15.787c2.398 0 4.346 2.02 4.346 4.502v.002z"/><path d="m47.889 57.852c0 2.299-1.796 4.148-4.02 4.148h-11.332c-2.217 0-4.01-1.813-4.01-4.09 0-2.395 1.797-4.205 4.01-4.205h11.333c2.218 0 4.01 1.848 4.01 4.147"/></g><g fill="#e6b796"><path d="m34.577 33.557c-2.307 0-4.178-2.01-4.178-4.406 0-1.43.668-2.734 1.699-3.523-2.02.305-3.57 2.119-3.57 4.297 0 2.393 1.871 4.344 4.182 4.344h15.179c.93 0 1.785-.271 2.48-.799-.199.027-.402.088-.609.088h-15.183z"/><path d="m31.774 43.867c-2.768 0-5.01-2.365-5.01-5.229 0-1.787.871-3.385 2.201-4.318-2.318.453-4.07 2.609-4.07 5.143 0 2.865 2.24 5.234 5 5.234h18.15c1.039 0 2-.344 2.801-.904-.301.059-.611.074-.934.074h-18.15"/><path d="m32.542 52.875c-2.398 0-4.344-2.061-4.344-4.547 0-1.502.713-2.855 1.805-3.674-2.084.336-3.674 2.25-3.674 4.498 0 2.488 1.945 4.553 4.344 4.553h15.841c.949 0 1.826-.332 2.541-.869-.219.035-.441.039-.67.039h-15.843"/><path d="m34.413 61.17c-2.217 0-4.01-1.855-4.01-4.135 0-1.412.623-2.639 1.59-3.396-1.957.275-3.461 2.027-3.461 4.217 0 2.279 1.797 4.143 4.01 4.143h11.333c.906 0 1.744-.326 2.416-.852-.178.023-.361.023-.545.023h-11.333"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 27.1c0 0-4.4.9-.8-6.6 2.6-5.4 2.3-11.7 0-15-3.8-5.3-11.1-3.6-10.3-.5 2.6 10.5-3.3 13.7-6.3 20.3-3.1 6.7-2.8 16.3-1.4 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5l-4.2-34.9" fill="#ffe1bd"/><path d="m25.8 60.5c-8.3 0-10.1-6.6-11-11.9-1.4-8.5-1.6-15.3 1.1-22.2 3-7.5 6.1-7.7 6.1-22.5 0-.7.4-1.2.8-1.6-1.4.5-2.2 1.3-2.2 2.5 0 11.1-3.1 13.8-6.1 20.5-3.2 6.7-2.9 16.3-1.5 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5v-1.5h-10.2" fill="#e6b796"/><path d="m46 35.8h-14.2c-5 0-5-8.7 0-8.7h14.2c5 0 5 8.7 0 8.7" fill="#ffe1bd"/><path d="m47.1 34.4h-14.2c-3.4 0-4.4-4-3.3-6.5-2.7 2.1-1.9 8 2.1 8h14.3c1.6 0 2.7-.9 3.3-2.2-.6.4-1.3.7-2.2.7" fill="#e6b796"/><path d="m47.5 44.6h-17c-6 0-6-8.7 0-8.7h17.1c5.9 0 5.9 8.7-.1 8.7" fill="#ffe1bd"/><path d="m48.9 43.1h-17.1c-4 0-5.3-4-3.9-6.5-3.2 2.1-2.3 8 2.6 8h17.1c1.9 0 3.2-.9 3.9-2.2-.7.4-1.6.7-2.6.7" fill="#e6b796"/><path d="m45.9 53.3h-14.4c-5 0-5-8.7 0-8.7h14.4c5.1 0 5.1 8.7 0 8.7" fill="#ffe1bd"/><path d="m47.1 51.8h-14.5c-3.4 0-4.5-4-3.3-6.6-2.7 2.1-2 8 2.2 8h14.4c1.6 0 2.7-.9 3.3-2.2-.5.6-1.3.8-2.1.8" fill="#e6b796"/><path d="m44.4 62h-9.3c-5.4 0-5.4-8.7 0-8.7h9.3c5.4 0 5.4 8.7 0 8.7" fill="#ffe1bd"/><path d="m45.6 60.6h-9.3c-3.6 0-4.8-4-3.5-6.6-2.9 2.1-2.1 8 2.3 8h9.3c1.8 0 2.9-.9 3.5-2.2-.6.5-1.4.8-2.3.8" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fc.svg
index 267645b..54d7d6a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m44.33 52.42c-.344-4.35-2.389-12.809-2.73-17.16-.416-5.25-3.668-9.523-8.191-9.523h-7.357c0 0 .314-5.32 2.902-9.785 2.549-4.4.891-11.332-1.805-13.1-3.223-2.121-6.477-.154-7.105 4.598-1.378 10.422-8.623 20.238-9.02 27.754-.227 4.357.893 12.939 1.631 17.219 1.098 6.33 3.668 9.58 8.191 9.58h15.289c4.518-.001 8.6-4.335 8.19-9.583"/><path fill="#e0a372" d="m38.77 60.22h-15.288c-4.523 0-7.093-3.252-8.191-9.582-.742-4.279-1.855-12.848-1.629-17.205.391-7.52 7.634-17.346 9.01-27.766.199-1.498.656-2.721 1.293-3.625-1.945.33-3.508 2.254-3.924 5.398-1.378 10.42-8.623 20.24-9.02 27.756-.227 4.357.893 12.939 1.631 17.219 1.098 6.332 3.669 9.582 8.192 9.582h15.289c2.066 0 4.045-.9 5.541-2.381-.92.389-1.905.604-2.912.604"/><g fill="#fed0ac"><path d="m52.09 29.943c0 2.387-1.867 4.324-4.174 4.324h-15.211c-2.307 0-4.178-1.938-4.178-4.324 0-2.391 1.871-4.328 4.178-4.328h15.211c2.307 0 4.174 1.938 4.174 4.328"/><path d="m53 39.51c0 2.867-2.24 5.188-5 5.188h-18.13c-2.764 0-5-2.32-5-5.188v-.055c0-2.865 2.24-5.188 5-5.188h18.13c2.764 0 5 2.322 5 5.188v.055"/><path d="m50.828 49.2c0 2.486-1.947 4.504-4.346 4.504h-15.787c-2.4 0-4.344-2.02-4.344-4.504v-.002c0-2.486 1.943-4.502 4.344-4.502h15.787c2.398 0 4.346 2.02 4.346 4.502v.002"/><path d="m47.889 57.852c0 2.299-1.797 4.148-4.02 4.148h-11.332c-2.217 0-4.01-1.813-4.01-4.09 0-2.395 1.797-4.205 4.01-4.205h11.332c2.219 0 4.02 1.848 4.02 4.147"/></g><g fill="#e0a372"><path d="m34.576 33.557c-2.307 0-4.178-2.01-4.178-4.406 0-1.43.668-2.734 1.699-3.523-2.02.305-3.57 2.119-3.57 4.297 0 2.393 1.871 4.344 4.182 4.344h15.18c.93 0 1.785-.271 2.48-.799-.199.027-.402.088-.609.088h-15.184z"/><path d="m31.773 43.867c-2.768 0-5.01-2.365-5.01-5.229 0-1.787.871-3.385 2.201-4.318-2.318.453-4.07 2.609-4.07 5.143 0 2.865 2.24 5.234 5 5.234h18.15c1.039 0 2-.344 2.801-.904-.301.059-.611.074-.934.074h-18.15"/><path d="m32.541 52.875c-2.398 0-4.344-2.061-4.344-4.547 0-1.502.713-2.855 1.805-3.674-2.084.336-3.674 2.25-3.674 4.498 0 2.488 1.945 4.553 4.344 4.553h15.842c.949 0 1.826-.332 2.541-.869-.219.035-.441.039-.67.039h-15.844"/><path d="m34.412 61.17c-2.217 0-4.01-1.855-4.01-4.135 0-1.412.623-2.639 1.59-3.396-1.957.275-3.461 2.027-3.461 4.217 0 2.279 1.797 4.143 4.01 4.143h11.332c.906 0 1.744-.326 2.416-.852-.178.023-.361.023-.545.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 27.1c0 0-4.4.9-.8-6.6 2.6-5.4 2.3-11.7 0-15-3.8-5.3-11.1-3.6-10.3-.5 2.6 10.5-3.3 13.7-6.3 20.3-3.1 6.7-2.8 16.3-1.4 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5l-4.2-34.9" fill="#fed0ac"/><path d="m25.8 60.5c-8.3 0-10.1-6.6-11-11.9-1.4-8.5-1.6-15.3 1.1-22.2 3-7.5 6.1-7.7 6.1-22.5 0-.7.4-1.2.8-1.6-1.4.5-2.2 1.3-2.2 2.5 0 11.1-3.1 13.8-6.1 20.5-3.2 6.7-2.9 16.3-1.5 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5v-1.5h-10.2" fill="#e0a372"/><path d="m46 35.8h-14.2c-5 0-5-8.7 0-8.7h14.2c5 0 5 8.7 0 8.7" fill="#fed0ac"/><path d="m47.1 34.4h-14.2c-3.4 0-4.4-4-3.3-6.5-2.7 2.1-1.9 8 2.1 8h14.3c1.6 0 2.7-.9 3.3-2.2-.6.4-1.3.7-2.2.7" fill="#e0a372"/><path d="m47.5 44.6h-17c-6 0-6-8.7 0-8.7h17.1c5.9 0 5.9 8.7-.1 8.7" fill="#fed0ac"/><path d="m48.9 43.1h-17.1c-4 0-5.3-4-3.9-6.5-3.2 2.1-2.3 8 2.6 8h17.1c1.9 0 3.2-.9 3.9-2.2-.7.4-1.6.7-2.6.7" fill="#e0a372"/><path d="m45.9 53.3h-14.4c-5 0-5-8.7 0-8.7h14.4c5.1 0 5.1 8.7 0 8.7" fill="#fed0ac"/><path d="m47.1 51.8h-14.5c-3.4 0-4.5-4-3.3-6.6-2.7 2.1-2 8 2.2 8h14.4c1.6 0 2.7-.9 3.3-2.2-.5.6-1.3.8-2.1.8" fill="#e0a372"/><path d="m44.4 62h-9.3c-5.4 0-5.4-8.7 0-8.7h9.3c5.4 0 5.4 8.7 0 8.7" fill="#fed0ac"/><path d="m45.6 60.6h-9.3c-3.6 0-4.8-4-3.5-6.6-2.9 2.1-2.1 8 2.3 8h9.3c1.8 0 2.9-.9 3.5-2.2-.6.5-1.4.8-2.3.8" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fd.svg
index 9f6cb4d..1fc72eb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m44.33 52.42c-.344-4.35-2.389-12.809-2.73-17.16-.416-5.25-3.669-9.523-8.191-9.523h-7.357c0 0 .314-5.32 2.902-9.785 2.549-4.4.891-11.332-1.805-13.1-3.223-2.121-6.477-.154-7.105 4.598-1.379 10.422-8.623 20.238-9.02 27.754-.227 4.357.893 12.939 1.631 17.219 1.098 6.33 3.668 9.58 8.191 9.58h15.288c4.52-.001 8.602-4.335 8.192-9.583"/><path fill="#b58360" d="m38.77 60.22h-15.288c-4.523 0-7.094-3.252-8.191-9.582-.742-4.279-1.855-12.848-1.629-17.205.391-7.52 7.635-17.346 9.01-27.766.199-1.498.656-2.721 1.293-3.625-1.945.33-3.508 2.254-3.924 5.398-1.379 10.42-8.623 20.24-9.02 27.756-.227 4.357.893 12.939 1.631 17.219 1.098 6.332 3.668 9.582 8.192 9.582h15.288c2.067 0 4.046-.9 5.542-2.381-.92.389-1.905.604-2.912.604"/><g fill="#d6a57c"><path d="m52.09 29.943c0 2.387-1.867 4.324-4.174 4.324h-15.211c-2.307 0-4.178-1.938-4.178-4.324 0-2.391 1.871-4.328 4.178-4.328h15.211c2.307 0 4.174 1.938 4.174 4.328"/><path d="m53 39.51c0 2.867-2.24 5.188-5 5.188h-18.13c-2.764 0-5-2.32-5-5.188v-.055c0-2.865 2.24-5.188 5-5.188h18.13c2.764 0 5 2.322 5 5.188v.055"/><path d="m50.828 49.2c0 2.486-1.947 4.504-4.346 4.504h-15.787c-2.4 0-4.344-2.02-4.344-4.504v-.002c0-2.486 1.943-4.502 4.344-4.502h15.787c2.398 0 4.346 2.02 4.346 4.502v.002"/><path d="m47.889 57.852c0 2.299-1.797 4.148-4.02 4.148h-11.332c-2.217 0-4.01-1.813-4.01-4.09 0-2.395 1.797-4.205 4.01-4.205h11.332c2.219 0 4.02 1.848 4.02 4.147"/></g><g fill="#b58360"><path d="m34.576 33.557c-2.307 0-4.178-2.01-4.178-4.406 0-1.43.668-2.734 1.699-3.523-2.02.305-3.57 2.119-3.57 4.297 0 2.393 1.871 4.344 4.182 4.344h15.18c.93 0 1.785-.271 2.48-.799-.199.027-.402.088-.609.088h-15.184z"/><path d="m31.773 43.867c-2.768 0-5.01-2.365-5.01-5.229 0-1.787.871-3.385 2.201-4.318-2.318.453-4.07 2.609-4.07 5.143 0 2.865 2.24 5.234 5 5.234h18.15c1.039 0 2-.344 2.801-.904-.301.059-.611.074-.934.074h-18.15"/><path d="m32.541 52.875c-2.398 0-4.344-2.061-4.344-4.547 0-1.502.713-2.855 1.805-3.674-2.084.336-3.674 2.25-3.674 4.498 0 2.488 1.945 4.553 4.344 4.553h15.842c.949 0 1.826-.332 2.541-.869-.219.035-.441.039-.67.039h-15.844"/><path d="m34.412 61.17c-2.217 0-4.01-1.855-4.01-4.135 0-1.412.623-2.639 1.59-3.396-1.957.275-3.461 2.027-3.461 4.217 0 2.279 1.797 4.143 4.01 4.143h11.332c.906 0 1.744-.326 2.416-.852-.178.023-.361.023-.545.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 27.1c0 0-4.4.9-.8-6.6 2.6-5.4 2.3-11.7 0-15-3.8-5.3-11.1-3.6-10.3-.5 2.6 10.5-3.3 13.7-6.3 20.3-3.1 6.7-2.8 16.3-1.4 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5l-4.2-34.9" fill="#d6a57c"/><path d="m25.8 60.5c-8.3 0-10.1-6.6-11-11.9-1.4-8.5-1.6-15.3 1.1-22.2 3-7.5 6.1-7.7 6.1-22.5 0-.7.4-1.2.8-1.6-1.4.5-2.2 1.3-2.2 2.5 0 11.1-3.1 13.8-6.1 20.5-3.2 6.7-2.9 16.3-1.5 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5v-1.5h-10.2" fill="#b58360"/><path d="m46 35.8h-14.2c-5 0-5-8.7 0-8.7h14.2c5 0 5 8.7 0 8.7" fill="#d6a57c"/><path d="m47.1 34.4h-14.2c-3.4 0-4.4-4-3.3-6.5-2.7 2.1-1.9 8 2.1 8h14.3c1.6 0 2.7-.9 3.3-2.2-.6.4-1.3.7-2.2.7" fill="#b58360"/><path d="m47.5 44.6h-17c-6 0-6-8.7 0-8.7h17.1c5.9 0 5.9 8.7-.1 8.7" fill="#d6a57c"/><path d="m48.9 43.1h-17.1c-4 0-5.3-4-3.9-6.5-3.2 2.1-2.3 8 2.6 8h17.1c1.9 0 3.2-.9 3.9-2.2-.7.4-1.6.7-2.6.7" fill="#b58360"/><path d="m45.9 53.3h-14.4c-5 0-5-8.7 0-8.7h14.4c5.1 0 5.1 8.7 0 8.7" fill="#d6a57c"/><path d="m47.1 51.8h-14.5c-3.4 0-4.5-4-3.3-6.6-2.7 2.1-2 8 2.2 8h14.4c1.6 0 2.7-.9 3.3-2.2-.5.6-1.3.8-2.1.8" fill="#b58360"/><path d="m44.4 62h-9.3c-5.4 0-5.4-8.7 0-8.7h9.3c5.4 0 5.4 8.7 0 8.7" fill="#d6a57c"/><path d="m45.6 60.6h-9.3c-3.6 0-4.8-4-3.5-6.6-2.9 2.1-2.1 8 2.3 8h9.3c1.8 0 2.9-.9 3.5-2.2-.6.5-1.4.8-2.3.8" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fe.svg
index 626ac43..4db4b58 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m44.33 52.42c-.344-4.35-2.389-12.809-2.73-17.16-.416-5.25-3.669-9.523-8.191-9.523h-7.357c0 0 .314-5.32 2.902-9.785 2.549-4.4.891-11.332-1.805-13.1-3.223-2.121-6.477-.154-7.105 4.598-1.379 10.422-8.623 20.238-9.02 27.754-.227 4.357.893 12.939 1.631 17.219 1.098 6.33 3.668 9.58 8.191 9.58h15.288c4.52-.001 8.602-4.335 8.192-9.583"/><path fill="#935e3e" d="m38.77 60.22h-15.288c-4.523 0-7.094-3.252-8.191-9.582-.742-4.279-1.855-12.848-1.629-17.205.391-7.52 7.635-17.346 9.01-27.766.199-1.498.656-2.721 1.293-3.625-1.945.33-3.508 2.254-3.924 5.398-1.379 10.42-8.623 20.24-9.02 27.756-.227 4.357.893 12.939 1.631 17.219 1.098 6.332 3.668 9.582 8.192 9.582h15.288c2.067 0 4.046-.9 5.542-2.381-.92.389-1.905.604-2.912.604"/><g fill="#b47d56"><path d="m52.09 29.943c0 2.387-1.867 4.324-4.174 4.324h-15.211c-2.307 0-4.178-1.938-4.178-4.324 0-2.391 1.871-4.328 4.178-4.328h15.211c2.307 0 4.174 1.938 4.174 4.328"/><path d="m53 39.51c0 2.867-2.24 5.188-5 5.188h-18.13c-2.764 0-5-2.32-5-5.188v-.055c0-2.865 2.24-5.188 5-5.188h18.13c2.764 0 5 2.322 5 5.188v.055"/><path d="m50.828 49.2c0 2.486-1.947 4.504-4.346 4.504h-15.787c-2.4 0-4.344-2.02-4.344-4.504v-.002c0-2.486 1.943-4.502 4.344-4.502h15.787c2.398 0 4.346 2.02 4.346 4.502v.002"/><path d="m47.889 57.852c0 2.299-1.797 4.148-4.02 4.148h-11.332c-2.217 0-4.01-1.813-4.01-4.09 0-2.395 1.797-4.205 4.01-4.205h11.332c2.219 0 4.02 1.848 4.02 4.147"/></g><g fill="#935e3e"><path d="m34.576 33.557c-2.307 0-4.178-2.01-4.178-4.406 0-1.43.668-2.734 1.699-3.523-2.02.305-3.57 2.119-3.57 4.297 0 2.393 1.871 4.344 4.182 4.344h15.18c.93 0 1.785-.271 2.48-.799-.199.027-.402.088-.609.088h-15.184z"/><path d="m31.773 43.867c-2.768 0-5.01-2.365-5.01-5.229 0-1.787.871-3.385 2.201-4.318-2.318.453-4.07 2.609-4.07 5.143 0 2.865 2.24 5.234 5 5.234h18.15c1.039 0 2-.344 2.801-.904-.301.059-.611.074-.934.074h-18.15"/><path d="m32.541 52.875c-2.398 0-4.344-2.061-4.344-4.547 0-1.502.713-2.855 1.805-3.674-2.084.336-3.674 2.25-3.674 4.498 0 2.488 1.945 4.553 4.344 4.553h15.842c.949 0 1.826-.332 2.541-.869-.219.035-.441.039-.67.039h-15.844"/><path d="m34.412 61.17c-2.217 0-4.01-1.855-4.01-4.135 0-1.412.623-2.639 1.59-3.396-1.957.275-3.461 2.027-3.461 4.217 0 2.279 1.797 4.143 4.01 4.143h11.332c.906 0 1.744-.326 2.416-.852-.178.023-.361.023-.545.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 27.1c0 0-4.4.9-.8-6.6 2.6-5.4 2.3-11.7 0-15-3.8-5.3-11.1-3.6-10.3-.5 2.6 10.5-3.3 13.7-6.3 20.3-3.1 6.7-2.8 16.3-1.4 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5l-4.2-34.9" fill="#b47d56"/><path d="m25.8 60.5c-8.3 0-10.1-6.6-11-11.9-1.4-8.5-1.6-15.3 1.1-22.2 3-7.5 6.1-7.7 6.1-22.5 0-.7.4-1.2.8-1.6-1.4.5-2.2 1.3-2.2 2.5 0 11.1-3.1 13.8-6.1 20.5-3.2 6.7-2.9 16.3-1.5 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5v-1.5h-10.2" fill="#935e3e"/><path d="m46 35.8h-14.2c-5 0-5-8.7 0-8.7h14.2c5 0 5 8.7 0 8.7" fill="#b47d56"/><path d="m47.1 34.4h-14.2c-3.4 0-4.4-4-3.3-6.5-2.7 2.1-1.9 8 2.1 8h14.3c1.6 0 2.7-.9 3.3-2.2-.6.4-1.3.7-2.2.7" fill="#935e3e"/><path d="m47.5 44.6h-17c-6 0-6-8.7 0-8.7h17.1c5.9 0 5.9 8.7-.1 8.7" fill="#b47d56"/><path d="m48.9 43.1h-17.1c-4 0-5.3-4-3.9-6.5-3.2 2.1-2.3 8 2.6 8h17.1c1.9 0 3.2-.9 3.9-2.2-.7.4-1.6.7-2.6.7" fill="#935e3e"/><path d="m45.9 53.3h-14.4c-5 0-5-8.7 0-8.7h14.4c5.1 0 5.1 8.7 0 8.7" fill="#b47d56"/><path d="m47.1 51.8h-14.5c-3.4 0-4.5-4-3.3-6.6-2.7 2.1-2 8 2.2 8h14.4c1.6 0 2.7-.9 3.3-2.2-.5.6-1.3.8-2.1.8" fill="#935e3e"/><path d="m44.4 62h-9.3c-5.4 0-5.4-8.7 0-8.7h9.3c5.4 0 5.4 8.7 0 8.7" fill="#b47d56"/><path d="m45.6 60.6h-9.3c-3.6 0-4.8-4-3.5-6.6-2.9 2.1-2.1 8 2.3 8h9.3c1.8 0 2.9-.9 3.5-2.2-.6.5-1.4.8-2.3.8" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3ff.svg
index e34ed8a..e64edfb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44d-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m44.33 52.42c-.344-4.35-2.389-12.809-2.73-17.16-.416-5.25-3.668-9.523-8.191-9.523h-7.357c0 0 .314-5.32 2.902-9.785 2.549-4.4.891-11.332-1.805-13.1-3.223-2.121-6.477-.154-7.105 4.598-1.379 10.422-8.623 20.238-9.02 27.754-.227 4.357.893 12.939 1.631 17.219 1.098 6.33 3.668 9.58 8.191 9.58h15.289c4.519-.001 8.601-4.335 8.191-9.583"/><path fill="#705041" d="m38.77 60.22h-15.287c-4.523 0-7.094-3.252-8.191-9.582-.742-4.279-1.855-12.848-1.629-17.205.391-7.52 7.635-17.346 9.01-27.766.199-1.498.656-2.721 1.293-3.625-1.945.33-3.508 2.254-3.924 5.398-1.379 10.42-8.623 20.24-9.02 27.756-.227 4.357.893 12.939 1.631 17.219 1.097 6.332 3.668 9.582 8.191 9.582h15.289c2.066 0 4.045-.9 5.541-2.381-.92.389-1.905.604-2.912.604"/><g fill="#8a6859"><path d="m52.09 29.943c0 2.387-1.867 4.324-4.174 4.324h-15.21c-2.307 0-4.178-1.938-4.178-4.324 0-2.391 1.871-4.328 4.178-4.328h15.21c2.307 0 4.174 1.938 4.174 4.328"/><path d="m53 39.51c0 2.867-2.24 5.188-5 5.188h-18.13c-2.764 0-5-2.32-5-5.188v-.055c0-2.865 2.24-5.188 5-5.188h18.13c2.764 0 5 2.322 5 5.188v.055"/><path d="m50.828 49.2c0 2.486-1.947 4.504-4.346 4.504h-15.786c-2.4 0-4.344-2.02-4.344-4.504v-.002c0-2.486 1.943-4.502 4.344-4.502h15.787c2.398 0 4.346 2.02 4.346 4.502v.002z"/><path d="m47.889 57.852c0 2.299-1.797 4.148-4.02 4.148h-11.331c-2.217 0-4.01-1.813-4.01-4.09 0-2.395 1.797-4.205 4.01-4.205h11.332c2.218 0 4.02 1.848 4.02 4.147"/></g><g fill="#705041"><path d="m34.576 33.557c-2.306 0-4.177-2.01-4.177-4.406 0-1.43.668-2.734 1.699-3.523-2.02.305-3.57 2.119-3.57 4.297 0 2.393 1.871 4.344 4.182 4.344h15.179c.93 0 1.785-.271 2.48-.799-.199.027-.402.088-.609.088h-15.184z"/><path d="m31.774 43.867c-2.768 0-5.01-2.365-5.01-5.229 0-1.787.871-3.385 2.201-4.318-2.318.453-4.07 2.609-4.07 5.143 0 2.865 2.24 5.234 5 5.234h18.15c1.039 0 2-.344 2.801-.904-.301.059-.611.074-.934.074h-18.15"/><path d="m32.542 52.875c-2.398 0-4.344-2.061-4.344-4.547 0-1.502.713-2.855 1.805-3.674-2.084.336-3.674 2.25-3.674 4.498 0 2.488 1.945 4.553 4.344 4.553h15.841c.949 0 1.826-.332 2.541-.869-.219.035-.441.039-.67.039h-15.843"/><path d="m34.412 61.17c-2.216 0-4.01-1.855-4.01-4.135 0-1.412.623-2.639 1.59-3.396-1.957.275-3.461 2.027-3.461 4.217 0 2.279 1.797 4.143 4.01 4.143h11.332c.906 0 1.744-.326 2.416-.852-.178.023-.361.023-.545.023h-11.333"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 27.1c0 0-4.4.9-.8-6.6 2.6-5.4 2.3-11.7 0-15-3.8-5.3-11.1-3.6-10.3-.5 2.6 10.5-3.3 13.7-6.3 20.3-3.1 6.7-2.8 16.3-1.4 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5l-4.2-34.9" fill="#8a6859"/><path d="m25.8 60.5c-8.3 0-10.1-6.6-11-11.9-1.4-8.5-1.6-15.3 1.1-22.2 3-7.5 6.1-7.7 6.1-22.5 0-.7.4-1.2.8-1.6-1.4.5-2.2 1.3-2.2 2.5 0 11.1-3.1 13.8-6.1 20.5-3.2 6.7-2.9 16.3-1.5 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5v-1.5h-10.2" fill="#705041"/><path d="m46 35.8h-14.2c-5 0-5-8.7 0-8.7h14.2c5 0 5 8.7 0 8.7" fill="#8a6859"/><path d="m47.1 34.4h-14.2c-3.4 0-4.4-4-3.3-6.5-2.7 2.1-1.9 8 2.1 8h14.3c1.6 0 2.7-.9 3.3-2.2-.6.4-1.3.7-2.2.7" fill="#705041"/><path d="m47.5 44.6h-17c-6 0-6-8.7 0-8.7h17.1c5.9 0 5.9 8.7-.1 8.7" fill="#8a6859"/><path d="m48.9 43.1h-17.1c-4 0-5.3-4-3.9-6.5-3.2 2.1-2.3 8 2.6 8h17.1c1.9 0 3.2-.9 3.9-2.2-.7.4-1.6.7-2.6.7" fill="#705041"/><path d="m45.9 53.3h-14.4c-5 0-5-8.7 0-8.7h14.4c5.1 0 5.1 8.7 0 8.7" fill="#8a6859"/><path d="m47.1 51.8h-14.5c-3.4 0-4.5-4-3.3-6.6-2.7 2.1-2 8 2.2 8h14.4c1.6 0 2.7-.9 3.3-2.2-.5.6-1.3.8-2.1.8" fill="#705041"/><path d="m44.4 62h-9.3c-5.4 0-5.4-8.7 0-8.7h9.3c5.4 0 5.4 8.7 0 8.7" fill="#8a6859"/><path d="m45.6 60.6h-9.3c-3.6 0-4.8-4-3.5-6.6-2.9 2.1-2.1 8 2.3 8h9.3c1.8 0 2.9-.9 3.5-2.2-.6.5-1.4.8-2.3.8" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44d.svg
index aad8065..100df67 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m44.33 52.42c-.344-4.35-2.389-12.809-2.73-17.16-.416-5.25-3.668-9.523-8.191-9.523h-7.357c0 0 .314-5.32 2.902-9.785 2.549-4.4.891-11.332-1.805-13.1-3.223-2.121-6.477-.154-7.105 4.598-1.378 10.422-8.623 20.238-9.02 27.754-.227 4.357.893 12.939 1.631 17.219 1.098 6.33 3.668 9.58 8.191 9.58h15.289c4.518-.001 8.6-4.335 8.19-9.583"/><path fill="#eba352" d="m38.77 60.22h-15.288c-4.523 0-7.093-3.252-8.191-9.582-.742-4.279-1.855-12.848-1.629-17.205.391-7.52 7.634-17.346 9.01-27.766.199-1.498.656-2.721 1.293-3.625-1.945.33-3.508 2.254-3.924 5.398-1.378 10.42-8.623 20.24-9.02 27.756-.227 4.357.893 12.939 1.631 17.219 1.098 6.332 3.669 9.582 8.192 9.582h15.289c2.066 0 4.045-.9 5.541-2.381-.92.389-1.905.604-2.912.604"/><g fill="#ffdd67"><path d="m52.09 29.943c0 2.387-1.867 4.324-4.174 4.324h-15.211c-2.307 0-4.178-1.938-4.178-4.324 0-2.391 1.871-4.328 4.178-4.328h15.211c2.307 0 4.174 1.938 4.174 4.328"/><path d="m53 39.51c0 2.867-2.24 5.188-5 5.188h-18.13c-2.764 0-5-2.32-5-5.188v-.055c0-2.865 2.24-5.188 5-5.188h18.13c2.764 0 5 2.322 5 5.188v.055"/><path d="m50.828 49.2c0 2.486-1.947 4.504-4.346 4.504h-15.787c-2.4 0-4.344-2.02-4.344-4.504v-.002c0-2.486 1.943-4.502 4.344-4.502h15.787c2.398 0 4.346 2.02 4.346 4.502v.002"/><path d="m47.889 57.852c0 2.299-1.797 4.148-4.02 4.148h-11.332c-2.217 0-4.01-1.813-4.01-4.09 0-2.395 1.797-4.205 4.01-4.205h11.332c2.219 0 4.02 1.848 4.02 4.147"/></g><g fill="#eba352"><path d="m34.576 33.557c-2.307 0-4.178-2.01-4.178-4.406 0-1.43.668-2.734 1.699-3.523-2.02.305-3.57 2.119-3.57 4.297 0 2.393 1.871 4.344 4.182 4.344h15.18c.93 0 1.785-.271 2.48-.799-.199.027-.402.088-.609.088h-15.184z"/><path d="m31.773 43.867c-2.768 0-5.01-2.365-5.01-5.229 0-1.787.871-3.385 2.201-4.318-2.318.453-4.07 2.609-4.07 5.143 0 2.865 2.24 5.234 5 5.234h18.15c1.039 0 2-.344 2.801-.904-.301.059-.611.074-.934.074h-18.15"/><path d="m32.541 52.875c-2.398 0-4.344-2.061-4.344-4.547 0-1.502.713-2.855 1.805-3.674-2.084.336-3.674 2.25-3.674 4.498 0 2.488 1.945 4.553 4.344 4.553h15.842c.949 0 1.826-.332 2.541-.869-.219.035-.441.039-.67.039h-15.844"/><path d="m34.412 61.17c-2.217 0-4.01-1.855-4.01-4.135 0-1.412.623-2.639 1.59-3.396-1.957.275-3.461 2.027-3.461 4.217 0 2.279 1.797 4.143 4.01 4.143h11.332c.906 0 1.744-.326 2.416-.852-.178.023-.361.023-.545.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 27.1c0 0-4.4.9-.8-6.6 2.6-5.4 2.3-11.7 0-15-3.8-5.3-11.1-3.6-10.3-.5 2.6 10.5-3.3 13.7-6.3 20.3-3.1 6.7-2.8 16.3-1.4 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5l-4.2-34.9" fill="#ffdd67"/><path d="m25.8 60.5c-8.3 0-10.1-6.6-11-11.9-1.4-8.5-1.6-15.3 1.1-22.2 3-7.5 6.1-7.7 6.1-22.5 0-.7.4-1.2.8-1.6-1.4.5-2.2 1.3-2.2 2.5 0 11.1-3.1 13.8-6.1 20.5-3.2 6.7-2.9 16.3-1.5 24.8.9 5.3 3.2 11.9 11.5 11.9h11.5v-1.5h-10.2" fill="#eba352"/><path d="m46 35.8h-14.2c-5 0-5-8.7 0-8.7h14.2c5 0 5 8.7 0 8.7" fill="#ffdd67"/><path d="m47.1 34.4h-14.2c-3.4 0-4.4-4-3.3-6.5-2.7 2.1-1.9 8 2.1 8h14.3c1.6 0 2.7-.9 3.3-2.2-.6.4-1.3.7-2.2.7" fill="#eba352"/><path d="m47.5 44.6h-17c-6 0-6-8.7 0-8.7h17.1c5.9 0 5.9 8.7-.1 8.7" fill="#ffdd67"/><path d="m48.9 43.1h-17.1c-4 0-5.3-4-3.9-6.5-3.2 2.1-2.3 8 2.6 8h17.1c1.9 0 3.2-.9 3.9-2.2-.7.4-1.6.7-2.6.7" fill="#eba352"/><path d="m45.9 53.3h-14.4c-5 0-5-8.7 0-8.7h14.4c5.1 0 5.1 8.7 0 8.7" fill="#ffdd67"/><path d="m47.1 51.8h-14.5c-3.4 0-4.5-4-3.3-6.6-2.7 2.1-2 8 2.2 8h14.4c1.6 0 2.7-.9 3.3-2.2-.5.6-1.3.8-2.1.8" fill="#eba352"/><path d="m44.4 62h-9.3c-5.4 0-5.4-8.7 0-8.7h9.3c5.4 0 5.4 8.7 0 8.7" fill="#ffdd67"/><path d="m45.6 60.6h-9.3c-3.6 0-4.8-4-3.5-6.6-2.9 2.1-2.1 8 2.3 8h9.3c1.8 0 2.9-.9 3.5-2.2-.6.5-1.4.8-2.3.8" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fb.svg
index f0f4ce8..298cda3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m44.34 11.581c-.344 4.35-2.389 12.809-2.73 17.16-.416 5.25-3.669 9.523-8.191 9.523h-7.357c0 0 .314 5.32 2.902 9.785 2.549 4.4.891 11.332-1.805 13.1-3.223 2.121-6.477.154-7.105-4.598-1.379-10.422-8.623-20.238-9.02-27.754-.227-4.357.893-12.939 1.631-17.219 1.098-6.33 3.668-9.58 8.191-9.58h15.288c4.52.001 8.602 4.335 8.192 9.583"/><path fill="#e6b796" d="m38.772 3.776h-15.287c-4.523 0-7.094 3.252-8.191 9.582-.742 4.279-1.855 12.848-1.629 17.205.391 7.52 7.635 17.346 9.01 27.766.199 1.498.656 2.721 1.293 3.625-1.945-.33-3.508-2.254-3.924-5.398-1.379-10.42-8.623-20.24-9.02-27.756-.227-4.357.893-12.939 1.631-17.219 1.098-6.332 3.668-9.582 8.191-9.582h15.288c2.067 0 4.046.9 5.542 2.381-.919-.389-1.904-.604-2.912-.604"/><g fill="#ffe1bd"><path d="m52.09 34.06c0-2.387-1.867-4.324-4.174-4.324h-15.211c-2.307 0-4.178 1.938-4.178 4.324 0 2.391 1.871 4.328 4.178 4.328h15.211c2.307 0 4.174-1.938 4.174-4.328"/><path d="m53 24.489c0-2.867-2.24-5.188-5-5.188h-18.13c-2.764 0-5 2.32-5 5.188v.055c0 2.865 2.24 5.188 5 5.188h18.13c2.764 0 5-2.322 5-5.188v-.055"/><path d="m50.831 14.798c0-2.486-1.947-4.504-4.346-4.504h-15.787c-2.4 0-4.344 2.02-4.344 4.504v.002c0 2.486 1.943 4.502 4.344 4.502h15.787c2.398 0 4.346-2.02 4.346-4.502v-.002"/><path d="m47.892 6.147c0-2.299-1.797-4.148-4.02-4.148h-11.332c-2.217 0-4.01 1.813-4.01 4.09 0 2.395 1.797 4.205 4.01 4.205h11.332c2.219 0 4.02-1.848 4.02-4.147"/></g><g fill="#e6b796"><path d="m34.579 30.442c-2.307 0-4.178 2.01-4.178 4.406 0 1.43.668 2.734 1.699 3.523-2.02-.305-3.57-2.119-3.57-4.297 0-2.393 1.871-4.344 4.182-4.344h15.18c.93 0 1.785.271 2.48.799-.199-.027-.402-.088-.609-.088h-15.184"/><path d="m31.776 20.13c-2.768 0-5.01 2.365-5.01 5.229 0 1.787.871 3.385 2.201 4.318-2.318-.453-4.07-2.609-4.07-5.143 0-2.865 2.24-5.234 5-5.234h18.15c1.039 0 2 .344 2.801.904-.301-.059-.611-.074-.934-.074h-18.15"/><path d="m32.544 11.124c-2.398 0-4.344 2.061-4.344 4.547 0 1.502.713 2.855 1.805 3.674-2.084-.336-3.674-2.25-3.674-4.498 0-2.488 1.945-4.553 4.344-4.553h15.842c.949 0 1.826.332 2.541.869-.219-.035-.441-.039-.67-.039h-15.844"/><path d="m34.415 2.827c-2.217 0-4.01 1.855-4.01 4.135 0 1.412.623 2.639 1.59 3.396-1.957-.275-3.461-2.027-3.461-4.217 0-2.279 1.797-4.143 4.01-4.143h11.332c.906 0 1.744.326 2.416.852-.178-.023-.361-.023-.545-.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 36.9c0 0-4.4-.9-.8 6.6 2.6 5.4 2.3 11.7 0 15-3.8 5.3-11.1 3.6-10.3.5 2.6-10.5-3.3-13.7-6.3-20.3-3.1-6.7-2.8-16.3-1.4-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5l-4.2 34.9" fill="#ffe1bd"/><path d="m25.8 3.5c-8.3 0-10.1 6.6-11 11.9-1.4 8.5-1.6 15.3 1.1 22.2 3 7.5 6.1 7.7 6.1 22.5 0 .7.4 1.2.8 1.6-1.4-.5-2.2-1.3-2.2-2.5 0-11.1-3.1-13.8-6.1-20.5-3.2-6.7-2.9-16.3-1.5-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5v1.5h-10.2" fill="#e6b796"/><path d="m46 28.2h-14.2c-5 0-5 8.7 0 8.7h14.2c5 0 5-8.7 0-8.7" fill="#ffe1bd"/><path d="m47.1 29.6h-14.2c-3.4 0-4.4 4-3.3 6.5-2.7-2.1-1.9-8 2.1-8h14.3c1.6 0 2.7.9 3.3 2.2-.6-.4-1.3-.7-2.2-.7" fill="#e6b796"/><path d="m47.5 19.4h-17c-6 0-6 8.7 0 8.7h17.1c5.9 0 5.9-8.7-.1-8.7" fill="#ffe1bd"/><path d="m48.9 20.9h-17.1c-4 0-5.3 4-3.9 6.5-3.2-2.1-2.3-8 2.6-8h17.1c1.9 0 3.2.9 3.9 2.2-.7-.4-1.6-.7-2.6-.7" fill="#e6b796"/><path d="m45.9 10.7h-14.4c-5 0-5 8.7 0 8.7h14.4c5.1 0 5.1-8.7 0-8.7" fill="#ffe1bd"/><path d="m47.1 12.2h-14.5c-3.4 0-4.5 4-3.3 6.6-2.7-2.1-2-8 2.2-8h14.4c1.6 0 2.7.9 3.3 2.2-.5-.6-1.3-.8-2.1-.8" fill="#e6b796"/><path d="m44.4 2h-9.3c-5.4 0-5.4 8.7 0 8.7h9.3c5.4 0 5.4-8.7 0-8.7" fill="#ffe1bd"/><path d="m45.6 3.4h-9.3c-3.6 0-4.8 4-3.5 6.6-2.9-2.1-2.1-8 2.3-8h9.3c1.8 0 2.9.9 3.5 2.2-.6-.5-1.4-.8-2.3-.8" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fc.svg
index 4a7c8a2..79398ad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m44.34 11.581c-.344 4.35-2.389 12.809-2.73 17.16-.416 5.25-3.669 9.523-8.191 9.523h-7.357c0 0 .314 5.32 2.902 9.785 2.549 4.4.891 11.332-1.805 13.1-3.223 2.121-6.477.154-7.105-4.598-1.379-10.422-8.623-20.238-9.02-27.754-.227-4.357.893-12.939 1.631-17.219 1.098-6.33 3.668-9.58 8.191-9.58h15.288c4.52.001 8.602 4.335 8.192 9.583"/><path fill="#e0a372" d="m38.772 3.776h-15.287c-4.523 0-7.094 3.252-8.191 9.582-.742 4.279-1.855 12.848-1.629 17.205.391 7.52 7.635 17.346 9.01 27.766.199 1.498.656 2.721 1.293 3.625-1.945-.33-3.508-2.254-3.924-5.398-1.379-10.42-8.623-20.24-9.02-27.756-.227-4.357.893-12.939 1.631-17.219 1.098-6.332 3.668-9.582 8.191-9.582h15.288c2.067 0 4.046.9 5.542 2.381-.919-.389-1.904-.604-2.912-.604"/><g fill="#fed0ac"><path d="m52.09 34.06c0-2.387-1.867-4.324-4.174-4.324h-15.211c-2.307 0-4.178 1.938-4.178 4.324 0 2.391 1.871 4.328 4.178 4.328h15.211c2.307 0 4.174-1.938 4.174-4.328"/><path d="m53 24.489c0-2.867-2.24-5.188-5-5.188h-18.13c-2.764 0-5 2.32-5 5.188v.055c0 2.865 2.24 5.188 5 5.188h18.13c2.764 0 5-2.322 5-5.188v-.055"/><path d="m50.831 14.798c0-2.486-1.947-4.504-4.346-4.504h-15.787c-2.4 0-4.344 2.02-4.344 4.504v.002c0 2.486 1.943 4.502 4.344 4.502h15.787c2.398 0 4.346-2.02 4.346-4.502v-.002"/><path d="m47.892 6.147c0-2.299-1.797-4.148-4.02-4.148h-11.332c-2.217 0-4.01 1.813-4.01 4.09 0 2.395 1.797 4.205 4.01 4.205h11.332c2.219 0 4.02-1.848 4.02-4.147"/></g><g fill="#e0a372"><path d="m34.579 30.442c-2.307 0-4.178 2.01-4.178 4.406 0 1.43.668 2.734 1.699 3.523-2.02-.305-3.57-2.119-3.57-4.297 0-2.393 1.871-4.344 4.182-4.344h15.18c.93 0 1.785.271 2.48.799-.199-.027-.402-.088-.609-.088h-15.184"/><path d="m31.776 20.13c-2.768 0-5.01 2.365-5.01 5.229 0 1.787.871 3.385 2.201 4.318-2.318-.453-4.07-2.609-4.07-5.143 0-2.865 2.24-5.234 5-5.234h18.15c1.039 0 2 .344 2.801.904-.301-.059-.611-.074-.934-.074h-18.15"/><path d="m32.544 11.124c-2.398 0-4.344 2.061-4.344 4.547 0 1.502.713 2.855 1.805 3.674-2.084-.336-3.674-2.25-3.674-4.498 0-2.488 1.945-4.553 4.344-4.553h15.842c.949 0 1.826.332 2.541.869-.219-.035-.441-.039-.67-.039h-15.844"/><path d="m34.415 2.827c-2.217 0-4.01 1.855-4.01 4.135 0 1.412.623 2.639 1.59 3.396-1.957-.275-3.461-2.027-3.461-4.217 0-2.279 1.797-4.143 4.01-4.143h11.332c.906 0 1.744.326 2.416.852-.178-.023-.361-.023-.545-.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 36.9c0 0-4.4-.9-.8 6.6 2.6 5.4 2.3 11.7 0 15-3.8 5.3-11.1 3.6-10.3.5 2.6-10.5-3.3-13.7-6.3-20.3-3.1-6.7-2.8-16.3-1.4-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5l-4.2 34.9" fill="#fed0ac"/><path d="m25.8 3.5c-8.3 0-10.1 6.6-11 11.9-1.4 8.5-1.6 15.3 1.1 22.2 3 7.5 6.1 7.7 6.1 22.5 0 .7.4 1.2.8 1.6-1.4-.5-2.2-1.3-2.2-2.5 0-11.1-3.1-13.8-6.1-20.5-3.2-6.7-2.9-16.3-1.5-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5v1.5c0 0-10.2 0-10.2 0" fill="#e0a372"/><path d="m46 28.2h-14.2c-5 0-5 8.7 0 8.7h14.2c5 0 5-8.7 0-8.7" fill="#fed0ac"/><path d="m47.1 29.6h-14.2c-3.4 0-4.4 4-3.3 6.5-2.7-2.1-1.9-8 2.1-8h14.3c1.6 0 2.7.9 3.3 2.2-.6-.4-1.3-.7-2.2-.7" fill="#e0a372"/><path d="m47.5 19.4h-17c-6 0-6 8.7 0 8.7h17.1c5.9 0 5.9-8.7-.1-8.7" fill="#fed0ac"/><path d="m48.9 20.9h-17.1c-4 0-5.3 4-3.9 6.5-3.2-2.1-2.3-8 2.6-8h17.1c1.9 0 3.2.9 3.9 2.2-.7-.4-1.6-.7-2.6-.7" fill="#e0a372"/><path d="m45.9 10.7h-14.4c-5 0-5 8.7 0 8.7h14.4c5.1 0 5.1-8.7 0-8.7" fill="#fed0ac"/><path d="m47.1 12.2h-14.5c-3.4 0-4.5 4-3.3 6.6-2.7-2.1-2-8 2.2-8h14.4c1.6 0 2.7.9 3.3 2.2-.5-.6-1.3-.8-2.1-.8" fill="#e0a372"/><path d="m44.4 2h-9.3c-5.4 0-5.4 8.7 0 8.7h9.3c5.4 0 5.4-8.7 0-8.7" fill="#fed0ac"/><path d="m45.6 3.4h-9.3c-3.6 0-4.8 4-3.5 6.6-2.9-2.1-2.1-8 2.3-8h9.3c1.8 0 2.9.9 3.5 2.2-.6-.5-1.4-.8-2.3-.8" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fd.svg
index 7e6eb1d..e0bf3be 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m44.34 11.581c-.344 4.35-2.389 12.809-2.73 17.16-.416 5.25-3.668 9.523-8.191 9.523h-7.357c0 0 .314 5.32 2.902 9.785 2.549 4.4.891 11.332-1.805 13.1-3.223 2.121-6.477.154-7.105-4.598-1.379-10.422-8.623-20.238-9.02-27.754-.227-4.357.893-12.939 1.631-17.219 1.098-6.33 3.668-9.58 8.191-9.58h15.289c4.519.001 8.601 4.335 8.191 9.583"/><path fill="#b58360" d="m38.772 3.776h-15.287c-4.523 0-7.094 3.252-8.191 9.582-.742 4.279-1.855 12.848-1.629 17.205.391 7.52 7.635 17.346 9.01 27.766.199 1.498.656 2.721 1.293 3.625-1.945-.33-3.508-2.254-3.924-5.398-1.379-10.42-8.623-20.24-9.02-27.756-.227-4.357.893-12.939 1.631-17.219 1.098-6.332 3.668-9.582 8.191-9.582h15.289c2.066 0 4.045.9 5.541 2.381-.919-.389-1.904-.604-2.912-.604"/><g fill="#d6a57c"><path d="m52.09 34.06c0-2.387-1.867-4.324-4.174-4.324h-15.211c-2.307 0-4.178 1.938-4.178 4.324 0 2.391 1.871 4.328 4.178 4.328h15.211c2.307 0 4.174-1.938 4.174-4.328"/><path d="m53 24.489c0-2.867-2.24-5.188-5-5.188h-18.13c-2.764 0-5 2.32-5 5.188v.055c0 2.865 2.24 5.188 5 5.188h18.13c2.764 0 5-2.322 5-5.188v-.055"/><path d="m50.831 14.798c0-2.486-1.947-4.504-4.346-4.504h-15.787c-2.4 0-4.344 2.02-4.344 4.504v.002c0 2.486 1.943 4.502 4.344 4.502h15.787c2.398 0 4.346-2.02 4.346-4.502v-.002"/><path d="m47.892 6.147c0-2.299-1.797-4.148-4.02-4.148h-11.332c-2.217 0-4.01 1.813-4.01 4.09 0 2.395 1.797 4.205 4.01 4.205h11.332c2.219 0 4.02-1.848 4.02-4.147"/></g><g fill="#b58360"><path d="m34.579 30.442c-2.307 0-4.178 2.01-4.178 4.406 0 1.43.668 2.734 1.699 3.523-2.02-.305-3.57-2.119-3.57-4.297 0-2.393 1.871-4.344 4.182-4.344h15.18c.93 0 1.785.271 2.48.799-.199-.027-.402-.088-.609-.088h-15.184"/><path d="m31.776 20.13c-2.768 0-5.01 2.365-5.01 5.229 0 1.787.871 3.385 2.201 4.318-2.318-.453-4.07-2.609-4.07-5.143 0-2.865 2.24-5.234 5-5.234h18.15c1.039 0 2 .344 2.801.904-.301-.059-.611-.074-.934-.074h-18.15"/><path d="m32.544 11.124c-2.398 0-4.344 2.061-4.344 4.547 0 1.502.713 2.855 1.805 3.674-2.084-.336-3.674-2.25-3.674-4.498 0-2.488 1.945-4.553 4.344-4.553h15.842c.949 0 1.826.332 2.541.869-.219-.035-.441-.039-.67-.039h-15.844"/><path d="m34.415 2.827c-2.217 0-4.01 1.855-4.01 4.135 0 1.412.623 2.639 1.59 3.396-1.957-.275-3.461-2.027-3.461-4.217 0-2.279 1.797-4.143 4.01-4.143h11.332c.906 0 1.744.326 2.416.852-.178-.023-.361-.023-.545-.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 36.9c0 0-4.4-.9-.8 6.6 2.6 5.4 2.3 11.7 0 15-3.8 5.3-11.1 3.6-10.3.5 2.6-10.5-3.3-13.7-6.3-20.3-3.1-6.7-2.8-16.3-1.4-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5l-4.2 34.9" fill="#d6a57c"/><path d="m25.8 3.5c-8.3 0-10.1 6.6-11 11.9-1.4 8.5-1.6 15.3 1.1 22.2 3 7.5 6.1 7.7 6.1 22.5 0 .7.4 1.2.8 1.6-1.4-.5-2.2-1.3-2.2-2.5 0-11.1-3.1-13.8-6.1-20.5-3.2-6.7-2.9-16.3-1.5-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5v1.5c0 0-10.2 0-10.2 0" fill="#b58360"/><path d="m46 28.2h-14.2c-5 0-5 8.7 0 8.7h14.2c5 0 5-8.7 0-8.7" fill="#d6a57c"/><path d="m47.1 29.6h-14.2c-3.4 0-4.4 4-3.3 6.5-2.7-2.1-1.9-8 2.1-8h14.3c1.6 0 2.7.9 3.3 2.2-.6-.4-1.3-.7-2.2-.7" fill="#b58360"/><path d="m47.5 19.4h-17c-6 0-6 8.7 0 8.7h17.1c5.9 0 5.9-8.7-.1-8.7" fill="#d6a57c"/><path d="m48.9 20.9h-17.1c-4 0-5.3 4-3.9 6.5-3.2-2.1-2.3-8 2.6-8h17.1c1.9 0 3.2.9 3.9 2.2-.7-.4-1.6-.7-2.6-.7" fill="#b58360"/><path d="m45.9 10.7h-14.4c-5 0-5 8.7 0 8.7h14.4c5.1 0 5.1-8.7 0-8.7" fill="#d6a57c"/><path d="m47.1 12.2h-14.5c-3.4 0-4.5 4-3.3 6.6-2.7-2.1-2-8 2.2-8h14.4c1.6 0 2.7.9 3.3 2.2-.5-.6-1.3-.8-2.1-.8" fill="#b58360"/><path d="m44.4 2h-9.3c-5.4 0-5.4 8.7 0 8.7h9.3c5.4 0 5.4-8.7 0-8.7" fill="#d6a57c"/><path d="m45.6 3.4h-9.3c-3.6 0-4.8 4-3.5 6.6-2.9-2.1-2.1-8 2.3-8h9.3c1.8 0 2.9.9 3.5 2.2-.6-.5-1.4-.8-2.3-.8" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fe.svg
index d4d0cc9..17fa30c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m44.34 11.581c-.344 4.35-2.389 12.809-2.73 17.16-.416 5.25-3.67 9.523-8.191 9.523h-7.357c0 0 .314 5.32 2.902 9.785 2.549 4.4.891 11.332-1.805 13.1-3.223 2.121-6.477.154-7.105-4.598-1.379-10.422-8.623-20.238-9.02-27.754-.227-4.357.893-12.939 1.631-17.219 1.098-6.33 3.668-9.58 8.191-9.58h15.287c4.521.001 8.603 4.335 8.193 9.583"/><path fill="#935e3e" d="m38.772 3.776h-15.287c-4.523 0-7.094 3.252-8.191 9.582-.742 4.279-1.855 12.848-1.629 17.205.391 7.52 7.635 17.346 9.01 27.766.199 1.498.656 2.721 1.293 3.625-1.945-.33-3.508-2.254-3.924-5.398-1.379-10.42-8.623-20.24-9.02-27.756-.227-4.357.893-12.939 1.631-17.219 1.098-6.332 3.668-9.582 8.191-9.582h15.287c2.068 0 4.047.9 5.543 2.381-.919-.389-1.904-.604-2.912-.604"/><g fill="#b47d56"><path d="m52.09 34.06c0-2.387-1.867-4.324-4.174-4.324h-15.211c-2.307 0-4.178 1.938-4.178 4.324 0 2.391 1.871 4.328 4.178 4.328h15.211c2.307 0 4.174-1.938 4.174-4.328"/><path d="m53 24.489c0-2.867-2.24-5.188-5-5.188h-18.13c-2.764 0-5 2.32-5 5.188v.055c0 2.865 2.24 5.188 5 5.188h18.13c2.764 0 5-2.322 5-5.188v-.055"/><path d="m50.831 14.798c0-2.486-1.947-4.504-4.346-4.504h-15.787c-2.4 0-4.344 2.02-4.344 4.504v.002c0 2.486 1.943 4.502 4.344 4.502h15.787c2.398 0 4.346-2.02 4.346-4.502v-.002"/><path d="m47.892 6.147c0-2.299-1.797-4.148-4.02-4.148h-11.332c-2.217 0-4.01 1.813-4.01 4.09 0 2.395 1.797 4.205 4.01 4.205h11.332c2.219 0 4.02-1.848 4.02-4.147"/></g><g fill="#935e3e"><path d="m34.579 30.442c-2.307 0-4.178 2.01-4.178 4.406 0 1.43.668 2.734 1.699 3.523-2.02-.305-3.57-2.119-3.57-4.297 0-2.393 1.871-4.344 4.182-4.344h15.18c.93 0 1.785.271 2.48.799-.199-.027-.402-.088-.609-.088h-15.184"/><path d="m31.776 20.13c-2.768 0-5.01 2.365-5.01 5.229 0 1.787.871 3.385 2.201 4.318-2.318-.453-4.07-2.609-4.07-5.143 0-2.865 2.24-5.234 5-5.234h18.15c1.039 0 2 .344 2.801.904-.301-.059-.611-.074-.934-.074h-18.15"/><path d="m32.544 11.124c-2.398 0-4.344 2.061-4.344 4.547 0 1.502.713 2.855 1.805 3.674-2.084-.336-3.674-2.25-3.674-4.498 0-2.488 1.945-4.553 4.344-4.553h15.842c.949 0 1.826.332 2.541.869-.219-.035-.441-.039-.67-.039h-15.844"/><path d="m34.415 2.827c-2.217 0-4.01 1.855-4.01 4.135 0 1.412.623 2.639 1.59 3.396-1.957-.275-3.461-2.027-3.461-4.217 0-2.279 1.797-4.143 4.01-4.143h11.332c.906 0 1.744.326 2.416.852-.178-.023-.361-.023-.545-.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 36.9c0 0-4.4-.9-.8 6.6 2.6 5.4 2.3 11.7 0 15-3.8 5.3-11.1 3.6-10.3.5 2.6-10.5-3.3-13.7-6.3-20.3-3.1-6.7-2.8-16.3-1.4-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5l-4.2 34.9" fill="#b47d56"/><path d="m25.8 3.5c-8.3 0-10.1 6.6-11 11.9-1.4 8.5-1.6 15.3 1.1 22.2 3 7.5 6.1 7.7 6.1 22.5 0 .7.4 1.2.8 1.6-1.4-.5-2.2-1.3-2.2-2.5 0-11.1-3.1-13.8-6.1-20.5-3.2-6.7-2.9-16.3-1.5-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5v1.5c0 0-10.2 0-10.2 0" fill="#935e3e"/><path d="m46 28.2h-14.2c-5 0-5 8.7 0 8.7h14.2c5 0 5-8.7 0-8.7" fill="#b47d56"/><path d="m47.1 29.6h-14.2c-3.4 0-4.4 4-3.3 6.5-2.7-2.1-1.9-8 2.1-8h14.3c1.6 0 2.7.9 3.3 2.2-.6-.4-1.3-.7-2.2-.7" fill="#935e3e"/><path d="m47.5 19.4h-17c-6 0-6 8.7 0 8.7h17.1c5.9 0 5.9-8.7-.1-8.7" fill="#b47d56"/><path d="m48.9 20.9h-17.1c-4 0-5.3 4-3.9 6.5-3.2-2.1-2.3-8 2.6-8h17.1c1.9 0 3.2.9 3.9 2.2-.7-.4-1.6-.7-2.6-.7" fill="#935e3e"/><path d="m45.9 10.7h-14.4c-5 0-5 8.7 0 8.7h14.4c5.1 0 5.1-8.7 0-8.7" fill="#b47d56"/><path d="m47.1 12.2h-14.5c-3.4 0-4.5 4-3.3 6.6-2.7-2.1-2-8 2.2-8h14.4c1.6 0 2.7.9 3.3 2.2-.5-.6-1.3-.8-2.1-.8" fill="#935e3e"/><path d="m44.4 2h-9.3c-5.4 0-5.4 8.7 0 8.7h9.3c5.4 0 5.4-8.7 0-8.7" fill="#b47d56"/><path d="m45.6 3.4h-9.3c-3.6 0-4.8 4-3.5 6.6-2.9-2.1-2.1-8 2.3-8h9.3c1.8 0 2.9.9 3.5 2.2-.6-.5-1.4-.8-2.3-.8" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3ff.svg
index 6980b6f..c58da80 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44e-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m44.34 11.581c-.344 4.35-2.389 12.809-2.73 17.16-.416 5.25-3.668 9.523-8.191 9.523h-7.357c0 0 .314 5.32 2.902 9.785 2.549 4.4.891 11.332-1.805 13.1-3.223 2.121-6.477.154-7.105-4.598-1.379-10.422-8.623-20.238-9.02-27.754-.227-4.357.893-12.939 1.631-17.219 1.098-6.33 3.668-9.58 8.191-9.58h15.289c4.519.001 8.601 4.335 8.191 9.583"/><path fill="#705041" d="m38.772 3.776h-15.287c-4.523 0-7.094 3.252-8.191 9.582-.742 4.279-1.855 12.848-1.629 17.205.391 7.52 7.635 17.346 9.01 27.766.199 1.498.656 2.721 1.293 3.625-1.945-.33-3.508-2.254-3.924-5.398-1.379-10.42-8.623-20.24-9.02-27.756-.227-4.357.893-12.939 1.631-17.219 1.098-6.332 3.668-9.582 8.191-9.582h15.289c2.066 0 4.045.9 5.541 2.381-.919-.389-1.904-.604-2.912-.604"/><g fill="#8a6859"><path d="m52.09 34.06c0-2.387-1.867-4.324-4.174-4.324h-15.211c-2.307 0-4.178 1.938-4.178 4.324 0 2.391 1.871 4.328 4.178 4.328h15.211c2.307 0 4.174-1.938 4.174-4.328"/><path d="m53 24.489c0-2.867-2.24-5.188-5-5.188h-18.13c-2.764 0-5 2.32-5 5.188v.055c0 2.865 2.24 5.188 5 5.188h18.13c2.764 0 5-2.322 5-5.188v-.055"/><path d="m50.831 14.798c0-2.486-1.947-4.504-4.346-4.504h-15.787c-2.4 0-4.344 2.02-4.344 4.504v.002c0 2.486 1.943 4.502 4.344 4.502h15.787c2.398 0 4.346-2.02 4.346-4.502v-.002"/><path d="m47.892 6.147c0-2.299-1.797-4.148-4.02-4.148h-11.332c-2.217 0-4.01 1.813-4.01 4.09 0 2.395 1.797 4.205 4.01 4.205h11.332c2.219 0 4.02-1.848 4.02-4.147"/></g><g fill="#705041"><path d="m34.579 30.442c-2.307 0-4.178 2.01-4.178 4.406 0 1.43.668 2.734 1.699 3.523-2.02-.305-3.57-2.119-3.57-4.297 0-2.393 1.871-4.344 4.182-4.344h15.18c.93 0 1.785.271 2.48.799-.199-.027-.402-.088-.609-.088h-15.184"/><path d="m31.776 20.13c-2.768 0-5.01 2.365-5.01 5.229 0 1.787.871 3.385 2.201 4.318-2.318-.453-4.07-2.609-4.07-5.143 0-2.865 2.24-5.234 5-5.234h18.15c1.039 0 2 .344 2.801.904-.301-.059-.611-.074-.934-.074h-18.15"/><path d="m32.544 11.124c-2.398 0-4.344 2.061-4.344 4.547 0 1.502.713 2.855 1.805 3.674-2.084-.336-3.674-2.25-3.674-4.498 0-2.488 1.945-4.553 4.344-4.553h15.842c.949 0 1.826.332 2.541.869-.219-.035-.441-.039-.67-.039h-15.844"/><path d="m34.415 2.827c-2.217 0-4.01 1.855-4.01 4.135 0 1.412.623 2.639 1.59 3.396-1.957-.275-3.461-2.027-3.461-4.217 0-2.279 1.797-4.143 4.01-4.143h11.332c.906 0 1.744.326 2.416.852-.178-.023-.361-.023-.545-.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 36.9c0 0-4.4-.9-.8 6.6 2.6 5.4 2.3 11.7 0 15-3.8 5.3-11.1 3.6-10.3.5 2.6-10.5-3.3-13.7-6.3-20.3-3.1-6.7-2.8-16.3-1.4-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5l-4.2 34.9" fill="#8a6859"/><path d="m25.8 3.5c-8.3 0-10.1 6.6-11 11.9-1.4 8.5-1.6 15.3 1.1 22.2 3 7.5 6.1 7.7 6.1 22.5 0 .7.4 1.2.8 1.6-1.4-.5-2.2-1.3-2.2-2.5 0-11.1-3.1-13.8-6.1-20.5-3.2-6.7-2.9-16.3-1.5-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5v1.5c0 0-10.2 0-10.2 0" fill="#705041"/><path d="m46 28.2h-14.2c-5 0-5 8.7 0 8.7h14.2c5 0 5-8.7 0-8.7" fill="#8a6859"/><path d="m47.1 29.6h-14.2c-3.4 0-4.4 4-3.3 6.5-2.7-2.1-1.9-8 2.1-8h14.3c1.6 0 2.7.9 3.3 2.2-.6-.4-1.3-.7-2.2-.7" fill="#705041"/><path d="m47.5 19.4h-17c-6 0-6 8.7 0 8.7h17.1c5.9 0 5.9-8.7-.1-8.7" fill="#8a6859"/><path d="m48.9 20.9h-17.1c-4 0-5.3 4-3.9 6.5-3.2-2.1-2.3-8 2.6-8h17.1c1.9 0 3.2.9 3.9 2.2-.7-.4-1.6-.7-2.6-.7" fill="#705041"/><path d="m45.9 10.7h-14.4c-5 0-5 8.7 0 8.7h14.4c5.1 0 5.1-8.7 0-8.7" fill="#8a6859"/><path d="m47.1 12.2h-14.5c-3.4 0-4.5 4-3.3 6.6-2.7-2.1-2-8 2.2-8h14.4c1.6 0 2.7.9 3.3 2.2-.5-.6-1.3-.8-2.1-.8" fill="#705041"/><path d="m44.4 2h-9.3c-5.4 0-5.4 8.7 0 8.7h9.3c5.4 0 5.4-8.7 0-8.7" fill="#8a6859"/><path d="m45.6 3.4h-9.3c-3.6 0-4.8 4-3.5 6.6-2.9-2.1-2.1-8 2.3-8h9.3c1.8 0 2.9.9 3.5 2.2-.6-.5-1.4-.8-2.3-.8" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44e.svg
index 2e7b221..cd5ce20 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m44.33 11.582c-.344 4.35-2.389 12.809-2.73 17.16-.416 5.25-3.67 9.523-8.191 9.523h-7.357c0 0 .314 5.32 2.902 9.785 2.549 4.4.891 11.332-1.805 13.1-3.223 2.121-6.477.154-7.105-4.598-1.379-10.422-8.623-20.238-9.02-27.754-.227-4.357.893-12.939 1.631-17.219 1.097-6.329 3.667-9.579 8.191-9.579h15.287c4.521 0 8.603 4.334 8.193 9.582"/><path fill="#eba352" d="m38.77 3.777h-15.288c-4.523 0-7.094 3.252-8.191 9.582-.742 4.279-1.855 12.848-1.629 17.205.391 7.52 7.635 17.346 9.01 27.766.199 1.498.656 2.721 1.293 3.625-1.945-.33-3.508-2.254-3.924-5.398-1.379-10.42-8.623-20.24-9.02-27.756-.227-4.357.893-12.939 1.631-17.219 1.098-6.332 3.668-9.582 8.192-9.582h15.287c2.068 0 4.047.9 5.543 2.381-.92-.389-1.905-.604-2.912-.604"/><g fill="#ffdd67"><path d="m52.09 34.06c0-2.387-1.867-4.324-4.174-4.324h-15.211c-2.307 0-4.178 1.938-4.178 4.324 0 2.391 1.871 4.328 4.178 4.328h15.211c2.307 0 4.174-1.938 4.174-4.328"/><path d="m53 24.49c0-2.867-2.24-5.188-5-5.188h-18.13c-2.764 0-5 2.32-5 5.188v.055c0 2.865 2.24 5.188 5 5.188h18.13c2.764 0 5-2.322 5-5.188v-.055"/><path d="m50.828 14.799c0-2.486-1.947-4.504-4.346-4.504h-15.787c-2.4 0-4.344 2.02-4.344 4.504v.002c0 2.486 1.943 4.502 4.344 4.502h15.787c2.398 0 4.346-2.02 4.346-4.502v-.002"/><path d="m47.889 6.148c0-2.298-1.797-4.148-4.02-4.148h-11.332c-2.217 0-4.01 1.813-4.01 4.09 0 2.395 1.797 4.205 4.01 4.205h11.332c2.219 0 4.02-1.848 4.02-4.147"/></g><g fill="#eba352"><path d="m34.576 30.443c-2.307 0-4.178 2.01-4.178 4.406 0 1.43.668 2.734 1.699 3.523-2.02-.305-3.57-2.119-3.57-4.297 0-2.393 1.871-4.344 4.182-4.344h15.18c.93 0 1.785.271 2.48.799-.199-.027-.402-.088-.609-.088h-15.184"/><path d="m31.773 20.13c-2.768 0-5.01 2.365-5.01 5.229 0 1.787.871 3.385 2.201 4.318-2.318-.453-4.07-2.609-4.07-5.143 0-2.865 2.24-5.234 5-5.234h18.15c1.039 0 2 .344 2.801.904-.301-.059-.611-.074-.934-.074h-18.15"/><path d="m32.541 11.125c-2.398 0-4.344 2.061-4.344 4.547 0 1.502.713 2.855 1.805 3.674-2.084-.336-3.674-2.25-3.674-4.498 0-2.488 1.945-4.553 4.344-4.553h15.842c.949 0 1.826.332 2.541.869-.219-.035-.441-.039-.67-.039h-15.844"/><path d="m34.412 2.828c-2.217 0-4.01 1.855-4.01 4.135 0 1.412.623 2.639 1.59 3.396-1.957-.275-3.461-2.027-3.461-4.217 0-2.279 1.797-4.142 4.01-4.142h11.332c.906 0 1.744.326 2.416.852-.178-.023-.361-.023-.545-.023h-11.332"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 36.9c0 0-4.4-.9-.8 6.6 2.6 5.4 2.3 11.7 0 15-3.8 5.3-11.1 3.6-10.3.5 2.6-10.5-3.3-13.7-6.3-20.3-3.1-6.7-2.8-16.3-1.4-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5l-4.2 34.9" fill="#ffdd67"/><path d="m25.8 3.5c-8.3 0-10.1 6.6-11 11.9-1.4 8.5-1.6 15.3 1.1 22.2 3 7.5 6.1 7.7 6.1 22.5 0 .7.4 1.2.8 1.6-1.4-.5-2.2-1.3-2.2-2.5 0-11.1-3.1-13.8-6.1-20.5-3.2-6.7-2.9-16.3-1.5-24.8.9-5.3 3.2-11.9 11.5-11.9h11.5v1.5h-10.2" fill="#eba352"/><path d="m46 28.2h-14.2c-5 0-5 8.7 0 8.7h14.2c5 0 5-8.7 0-8.7" fill="#ffdd67"/><path d="m47.1 29.6h-14.2c-3.4 0-4.4 4-3.3 6.5-2.7-2.1-1.9-8 2.1-8h14.3c1.6 0 2.7.9 3.3 2.2-.6-.4-1.3-.7-2.2-.7" fill="#eba352"/><path d="m47.5 19.4h-17c-6 0-6 8.7 0 8.7h17.1c5.9 0 5.9-8.7-.1-8.7" fill="#ffdd67"/><path d="m48.9 20.9h-17.1c-4 0-5.3 4-3.9 6.5-3.2-2.1-2.3-8 2.6-8h17.1c1.9 0 3.2.9 3.9 2.2-.7-.4-1.6-.7-2.6-.7" fill="#eba352"/><path d="m45.9 10.7h-14.4c-5 0-5 8.7 0 8.7h14.4c5.1 0 5.1-8.7 0-8.7" fill="#ffdd67"/><path d="m47.1 12.2h-14.5c-3.4 0-4.5 4-3.3 6.6-2.7-2.1-2-8 2.2-8h14.4c1.6 0 2.7.9 3.3 2.2-.5-.6-1.3-.8-2.1-.8" fill="#eba352"/><path d="m44.4 2h-9.3c-5.4 0-5.4 8.7 0 8.7h9.3c5.4 0 5.4-8.7 0-8.7" fill="#ffdd67"/><path d="m45.6 3.4h-9.3c-3.6 0-4.8 4-3.5 6.6-2.9-2.1-2.1-8 2.3-8h9.3c1.8 0 2.9.9 3.5 2.2-.6-.5-1.4-.8-2.3-.8" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fb.svg
index 9da319d..4728186 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ad6c3f" d="m47.46 27.348c0 0-4.507-3.749-6.901-7.261-.89-1.301-3.778-1.14-4.782 1.37l-15.618 6.02-10.299-5.556c-1.628-.97-3.7-.27-4.634 1.561l-.014.03c-.931 1.836-.365 4.104 1.263 5.073l1.59.947c-1.392-.25-2.856.472-3.599 1.932l-.016.032c-.93 1.832-.364 4.103 1.262 5.071l3.558 2.121c-1.629-.97-3.702-.271-4.632 1.561l-.016.033c-.932 1.834-.363 4.102 1.266 5.073 0 0 18.11 11.181 24.346 14.546 4.934 2.662 14.625 3.954 20.73-3.412 2.24-2.702-3.504-29.14-3.504-29.14"/><g fill="#ffe1bd"><path d="m54.991 27.28c-3.223-2.197-5.386-5.104-7-9.499-.563-1.529-2.789-1.764-4.073.699-1.854 3.553-.073 6.473.909 7.754l.471.603c0 0 .267 1.098.808 2.446-2.661-.618-5.711.888-7.842 3.701-2.203 2.913-7.401 7.929-9.604 10.838-2.658 3.515-1.953 8.535 1.024 10.687 0 0 15.685 11.469 26.13-2.58 8.172-10.993 2.439-22.429-.818-24.649"/><path d="m49.7 31.514c1.598 1.153 1.965 3.529.822 5.303l-.021.031c-1.141 1.777-3.361 2.279-4.961 1.128l-24.907-17.99c-1.599-1.152-1.967-3.526-.823-5.304l.018-.031c1.145-1.774 3.362-2.28 4.965-1.128l24.907 17.991"/></g><path fill="#e6b796" d="m36.8 29.529l-15.906-11.485c-.867-.626-1.485-1.574-1.23-3.115-1.147 1.985-.443 4.04.946 5.04l15.91 11.484c1.596 1.157 1.876-.773.28-1.926"/><path fill="#ffe1bd" d="m41.558 34.966c1.598 1.154 1.965 3.529.825 5.304l-.02.031c-1.145 1.775-3.365 2.279-4.962 1.127l-24.909-17.988c-1.599-1.153-1.967-3.526-.825-5.304l.021-.03c1.144-1.775 3.362-2.281 4.961-1.125l24.909 17.985"/><path fill="#e6b796" d="m31.98 35.38l-19.229-13.884c-.865-.625-1.481-1.768-1.24-3.097-1.132 2-.525 4.186.866 5.192l19.321 13.716c1.596 1.154 1.877-.774.282-1.927"/><path fill="#ffe1bd" d="m40 43.04c1.598 1.153 1.965 3.532.823 5.309l-.02.029c-1.141 1.775-3.364 2.279-4.961 1.124l-24.907-17.985c-1.6-1.153-1.968-3.528-.826-5.307l.02-.03c1.144-1.774 3.364-2.278 4.961-1.125l24.91 17.985"/><path fill="#e6b796" d="m28.16 41.818l-16.964-12.25c-.866-.625-1.514-1.987-1.085-3.363-1.327 1.871-.783 4.417.605 5.422l17.16 12.12c1.599 1.154 1.878-.776.282-1.929"/><path fill="#ffe1bd" d="m39.33 52.02c1.598 1.152-9.835 2.365-11.433 1.21l-17.631-12.73c-1.6-1.156-1.97-3.528-.827-5.309l.02-.03c1.141-1.774 3.364-2.28 4.961-1.125l24.91 17.984"/><g fill="#e6b796"><path d="m59.919 41.57c0 0-1.748 8.803-8.688 14.08-6.203 4.716-15.809.614-20.37-2.416-4.842-3.217-7.302-4.866-18.853-13.639-2.181-1.658-2.797-2.843-2.455-4.566-1.692 1.84-.838 4.583.556 5.589l1.201.85c0 0 13.88 10.159 18.588 13.428 4.252 2.953 15.38 7.721 22.443 2.112 7.866-6.246 7.578-15.437 7.578-15.437"/><path d="m47.987 30.14c-2.032-2.107-2.108-5.147-2.108-5.147l-.468-.601c-.78-1.019-2.062-3.062-1.634-5.638-1.896 3.467-.044 6.263.913 7.511l.487.63c0 0-.088.885.362 1.61l2.448 1.635"/></g><g fill="#42ade2"><path d="m37.797 2l3.03 12.204 5.84-11.319z"/><path d="M52.608 5.598 48.1 15.744 58.61 13.02z"/><path d="m30.23 3.54l2.82 10.912-9.214-5.802z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 27.3c0 0-4.5-3.7-6.9-7.3-.9-1.3-3.8-1.1-4.8 1.4l-15.6 6-10.3-5.5c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1l1.6.9c-1.4-.2-2.9.5-3.6 1.9-.9 1.8-.4 4.1 1.3 5.1l3.6 2.1c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1 0 0 18.1 11.2 24.3 14.5 4.9 2.7 14.6 4 20.7-3.4 2-2.6-3.7-29.1-3.7-29.1" fill="#e0a372"/><g fill="#ffe1bd"><path d="m55 27.3c-3.2-2.2-5.4-5.1-7-9.5-.6-1.5-2.8-1.8-4.1.7-1.9 3.6-.1 6.5.9 7.8l.5.6c0 0 .3 1.1.8 2.4-2.7-.6-5.7.9-7.8 3.7-2.2 2.9-7.4 7.9-9.6 10.8-2.7 3.5-2 8.5 1 10.7 0 0 15.7 11.5 26.1-2.6 8.2-11 2.4-22.4-.8-24.6"/><path d="m49.7 31.5c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-17.9c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 17.9"/></g><path d="m36.8 29.5l-15.9-11.5c-.9-.6-1.5-1.6-1.2-3.1-1.1 2-.4 4 .9 5l15.9 11.5c1.6 1.2 1.9-.7.3-1.9" fill="#e6b796"/><path d="m41.6 35c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#ffe1bd"/><path d="m32 35.4l-19.2-13.9c-.9-.6-1.5-1.8-1.2-3.1-1.1 2-.5 4.2.9 5.2l19.3 13.7c1.5 1.2 1.8-.8.2-1.9" fill="#e6b796"/><path d="m40 43c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#ffe1bd"/><path d="m28.2 41.8l-17-12.2c-.9-.6-1.5-2-1.1-3.4-1.3 1.9-.8 4.4.6 5.4l17.2 12.1c1.6 1.2 1.9-.7.3-1.9" fill="#e6b796"/><path d="m39.3 52c1.6 1.2-9.8 2.4-11.4 1.2l-17.6-12.7c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.8 17.9" fill="#ffe1bd"/><g fill="#e6b796"><path d="m59.9 41.6c0 0-1.7 8.8-8.7 14.1-6.2 4.7-15.8.6-20.4-2.4-4.8-3.3-7.2-4.9-18.8-13.7-2.2-1.7-2.8-2.8-2.5-4.6-1.7 1.8-.8 4.6.6 5.6l1.2.8c0 0 13.9 10.2 18.6 13.4 4.3 3 15.4 7.7 22.4 2.1 7.9-6.1 7.6-15.3 7.6-15.3"/><path d="m48 30.1c-2-2.1-2.1-5.1-2.1-5.1l-.5-.6c-.8-1-2.1-3.1-1.6-5.6-1.9 3.5 0 6.3.9 7.5l.5.6c0 0-.1.9.4 1.6l2.4 1.6"/></g><g fill="#42ade2"><path d="m37.8 2l3 12.2 5.9-11.3z"/><path d="M52.6 5.6 48.1 15.7 58.6 13z"/><path d="m30.2 3.5l2.8 11-9.2-5.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fc.svg
index 34437ac..ffb3d7e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ad6c3f" d="m47.46 27.348c0 0-4.507-3.749-6.901-7.261-.89-1.301-3.778-1.14-4.782 1.37l-15.618 6.02-10.299-5.556c-1.628-.97-3.7-.27-4.634 1.561l-.014.03c-.931 1.836-.365 4.104 1.263 5.073l1.59.947c-1.392-.25-2.856.472-3.599 1.932l-.016.032c-.93 1.833-.364 4.103 1.262 5.071l3.558 2.121c-1.629-.97-3.702-.271-4.632 1.561l-.016.033c-.932 1.834-.363 4.102 1.266 5.073 0 0 18.11 11.181 24.346 14.546 4.934 2.662 14.625 3.954 20.73-3.412 2.24-2.702-3.504-29.14-3.504-29.14"/><g fill="#fed0ac"><path d="m54.991 27.28c-3.223-2.197-5.386-5.104-7-9.499-.563-1.529-2.789-1.764-4.073.699-1.854 3.553-.073 6.473.909 7.754l.471.603c0 0 .267 1.098.808 2.446-2.661-.618-5.711.888-7.842 3.701-2.203 2.913-7.401 7.929-9.604 10.838-2.658 3.515-1.953 8.535 1.024 10.687 0 0 15.685 11.469 26.13-2.58 8.172-10.993 2.439-22.429-.818-24.649"/><path d="m49.7 31.514c1.598 1.153 1.965 3.529.822 5.303l-.021.031c-1.141 1.777-3.361 2.279-4.961 1.128l-24.907-17.99c-1.599-1.152-1.967-3.526-.823-5.304l.018-.031c1.145-1.774 3.362-2.28 4.965-1.128l24.907 17.991"/></g><path fill="#e0a372" d="m36.8 29.529l-15.906-11.485c-.867-.626-1.485-1.574-1.23-3.115-1.147 1.985-.443 4.04.946 5.04l15.91 11.484c1.596 1.157 1.876-.773.28-1.926"/><path fill="#fed0ac" d="m41.558 34.967c1.598 1.153 1.965 3.528.825 5.303l-.02.031c-1.145 1.775-3.365 2.279-4.962 1.127l-24.909-17.988c-1.599-1.153-1.967-3.526-.825-5.304l.021-.03c1.144-1.775 3.362-2.281 4.961-1.125l24.909 17.986"/><path fill="#e0a372" d="m31.98 35.38l-19.229-13.884c-.865-.625-1.481-1.768-1.24-3.097-1.132 2-.525 4.186.866 5.192l19.321 13.716c1.596 1.154 1.877-.774.282-1.927"/><path fill="#fed0ac" d="m40 43.04c1.598 1.153 1.965 3.532.823 5.309l-.02.029c-1.141 1.775-3.364 2.279-4.961 1.124l-24.907-17.985c-1.6-1.153-1.968-3.528-.826-5.307l.02-.03c1.144-1.774 3.364-2.278 4.961-1.125l24.91 17.985"/><path fill="#e0a372" d="m28.16 41.818l-16.964-12.25c-.866-.625-1.514-1.987-1.085-3.363-1.327 1.871-.783 4.417.605 5.422l17.16 12.12c1.599 1.154 1.878-.776.282-1.929"/><path fill="#fed0ac" d="m39.33 52.02c1.598 1.152-9.835 2.365-11.433 1.21l-17.631-12.73c-1.6-1.156-1.97-3.528-.827-5.308l.02-.031c1.141-1.774 3.364-2.28 4.961-1.125l24.91 17.984"/><g fill="#e0a372"><path d="m59.919 41.57c0 0-1.748 8.803-8.688 14.08-6.203 4.716-15.809.614-20.37-2.416-4.842-3.217-7.302-4.866-18.853-13.639-2.181-1.658-2.797-2.843-2.455-4.566-1.692 1.84-.838 4.583.556 5.589l1.201.85c0 0 13.88 10.159 18.588 13.428 4.252 2.953 15.38 7.721 22.443 2.112 7.866-6.246 7.578-15.437 7.578-15.437"/><path d="m47.987 30.14c-2.032-2.107-2.108-5.147-2.108-5.147l-.468-.601c-.78-1.019-2.062-3.062-1.634-5.638-1.896 3.467-.044 6.263.913 7.511l.487.63c0 0-.088.885.362 1.61l2.448 1.635"/></g><g fill="#42ade2"><path d="m37.797 2l3.03 12.204 5.84-11.319z"/><path d="M52.608 5.598 48.1 15.744 58.61 13.02z"/><path d="m30.23 3.54l2.82 10.912-9.214-5.802z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 27.3c0 0-4.5-3.7-6.9-7.3-.9-1.3-3.8-1.1-4.8 1.4l-15.6 6-10.3-5.5c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1l1.6.9c-1.4-.2-2.9.5-3.6 1.9-.9 1.8-.4 4.1 1.3 5.1l3.6 2.1c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1 0 0 18.1 11.2 24.3 14.5 4.9 2.7 14.6 4 20.7-3.4 2-2.6-3.7-29.1-3.7-29.1" fill="#b58360"/><g fill="#fed0ac"><path d="m55 27.3c-3.2-2.2-5.4-5.1-7-9.5-.6-1.5-2.8-1.8-4.1.7-1.9 3.6-.1 6.5.9 7.8l.5.6c0 0 .3 1.1.8 2.4-2.7-.6-5.7.9-7.8 3.7-2.2 2.9-7.4 7.9-9.6 10.8-2.7 3.5-2 8.5 1 10.7 0 0 15.7 11.5 26.1-2.6 8.2-11 2.4-22.4-.8-24.6"/><path d="m49.7 31.5c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-17.9c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 17.9"/></g><path d="m36.8 29.5l-15.9-11.5c-.9-.6-1.5-1.6-1.2-3.1-1.1 2-.4 4 .9 5l15.9 11.5c1.6 1.2 1.9-.7.3-1.9" fill="#e0a372"/><path d="m41.6 35c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#fed0ac"/><path d="m32 35.4l-19.2-13.9c-.9-.6-1.5-1.8-1.2-3.1-1.1 2-.5 4.2.9 5.2l19.3 13.7c1.5 1.2 1.8-.8.2-1.9" fill="#e0a372"/><path d="m40 43c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#fed0ac"/><path d="m28.2 41.8l-17-12.2c-.9-.6-1.5-2-1.1-3.4-1.3 1.9-.8 4.4.6 5.4l17.2 12.1c1.6 1.2 1.9-.7.3-1.9" fill="#e0a372"/><path d="m39.3 52c1.6 1.2-9.8 2.4-11.4 1.2l-17.6-12.7c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.8 17.9" fill="#fed0ac"/><g fill="#e0a372"><path d="m59.9 41.6c0 0-1.7 8.8-8.7 14.1-6.2 4.7-15.8.6-20.4-2.4-4.8-3.3-7.2-4.9-18.8-13.7-2.2-1.7-2.8-2.8-2.5-4.6-1.7 1.8-.8 4.6.6 5.6l1.2.8c0 0 13.9 10.2 18.6 13.4 4.3 3 15.4 7.7 22.4 2.1 7.9-6.1 7.6-15.3 7.6-15.3"/><path d="m48 30.1c-2-2.1-2.1-5.1-2.1-5.1l-.5-.6c-.8-1-2.1-3.1-1.6-5.6-1.9 3.5 0 6.3.9 7.5l.5.6c0 0-.1.9.4 1.6l2.4 1.6"/></g><g fill="#42ade2"><path d="m37.8 2l3 12.2 5.9-11.3z"/><path d="M52.6 5.6 48.1 15.7 58.6 13z"/><path d="m30.2 3.5l2.8 11-9.2-5.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fd.svg
index 865dc6f..138e7bd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#935e3e" d="m47.46 27.348c0 0-4.507-3.749-6.901-7.261-.89-1.301-3.778-1.14-4.782 1.37l-15.618 6.02-10.299-5.556c-1.628-.97-3.7-.27-4.634 1.561l-.014.03c-.931 1.836-.365 4.104 1.263 5.073l1.59.947c-1.392-.25-2.856.472-3.599 1.932l-.016.032c-.93 1.833-.364 4.103 1.262 5.071l3.558 2.121c-1.629-.97-3.702-.271-4.632 1.561l-.016.033c-.932 1.834-.363 4.102 1.266 5.073 0 0 18.11 11.181 24.346 14.546 4.934 2.662 14.625 3.954 20.73-3.412 2.24-2.702-3.504-29.14-3.504-29.14"/><g fill="#d6a57c"><path d="m54.991 27.28c-3.223-2.197-5.386-5.104-7-9.499-.563-1.529-2.789-1.764-4.073.699-1.854 3.553-.073 6.473.909 7.754l.471.603c0 0 .267 1.098.808 2.446-2.661-.618-5.711.888-7.842 3.701-2.203 2.913-7.401 7.929-9.604 10.838-2.658 3.515-1.953 8.535 1.024 10.687 0 0 15.685 11.469 26.13-2.58 8.172-10.993 2.439-22.429-.818-24.649"/><path d="m49.7 31.514c1.598 1.153 1.965 3.529.822 5.303l-.021.031c-1.141 1.777-3.361 2.279-4.961 1.128l-24.907-17.99c-1.599-1.152-1.967-3.526-.823-5.304l.018-.031c1.145-1.774 3.362-2.28 4.965-1.128l24.907 17.991"/></g><path fill="#b58360" d="m36.8 29.529l-15.906-11.485c-.867-.626-1.485-1.574-1.23-3.115-1.147 1.985-.443 4.04.946 5.04l15.91 11.484c1.596 1.157 1.876-.773.28-1.926"/><path fill="#d6a57c" d="m41.558 34.967c1.598 1.153 1.965 3.528.825 5.303l-.02.031c-1.145 1.775-3.365 2.279-4.962 1.127l-24.909-17.988c-1.599-1.153-1.967-3.526-.825-5.304l.021-.03c1.144-1.775 3.362-2.281 4.961-1.125l24.909 17.986"/><path fill="#b58360" d="m31.98 35.38l-19.229-13.884c-.865-.625-1.481-1.768-1.24-3.097-1.132 2-.525 4.186.866 5.192l19.321 13.716c1.596 1.154 1.877-.774.282-1.927"/><path fill="#d6a57c" d="m40 43.04c1.598 1.153 1.965 3.532.823 5.309l-.02.029c-1.141 1.775-3.364 2.279-4.961 1.124l-24.907-17.985c-1.6-1.153-1.968-3.528-.826-5.307l.02-.03c1.144-1.774 3.364-2.278 4.961-1.125l24.91 17.985"/><path fill="#b58360" d="m28.16 41.818l-16.964-12.25c-.866-.625-1.514-1.987-1.085-3.363-1.327 1.871-.783 4.417.605 5.422l17.16 12.12c1.599 1.154 1.878-.776.282-1.929"/><path fill="#d6a57c" d="m39.33 52.02c1.598 1.152-9.835 2.365-11.433 1.21l-17.631-12.73c-1.6-1.156-1.97-3.528-.827-5.308l.02-.031c1.141-1.774 3.364-2.28 4.961-1.125l24.91 17.984"/><g fill="#b58360"><path d="m59.919 41.57c0 0-1.748 8.803-8.688 14.08-6.203 4.716-15.809.614-20.37-2.416-4.842-3.217-7.302-4.866-18.853-13.639-2.181-1.658-2.797-2.843-2.455-4.566-1.692 1.84-.838 4.583.556 5.589l1.201.85c0 0 13.88 10.159 18.588 13.428 4.252 2.953 15.38 7.721 22.443 2.112 7.866-6.246 7.578-15.437 7.578-15.437"/><path d="m47.987 30.14c-2.032-2.107-2.108-5.147-2.108-5.147l-.468-.601c-.78-1.019-2.062-3.062-1.634-5.638-1.896 3.467-.044 6.263.913 7.511l.487.63c0 0-.088.885.362 1.61l2.448 1.635"/></g><g fill="#42ade2"><path d="m37.797 2l3.03 12.204 5.84-11.319z"/><path d="M52.608 5.598 48.1 15.744 58.61 13.02z"/><path d="m30.23 3.54l2.82 10.912-9.214-5.802z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 27.3c0 0-4.5-3.7-6.9-7.3-.9-1.3-3.8-1.1-4.8 1.4l-15.6 6-10.3-5.5c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1l1.6.9c-1.4-.2-2.9.5-3.6 1.9-.9 1.8-.4 4.1 1.3 5.1l3.6 2.1c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1 0 0 18.1 11.2 24.3 14.5 4.9 2.7 14.6 4 20.7-3.4 2-2.6-3.7-29.1-3.7-29.1" fill="#9c7052"/><g fill="#d6a57c"><path d="m55 27.3c-3.2-2.2-5.4-5.1-7-9.5-.6-1.5-2.8-1.8-4.1.7-1.9 3.6-.1 6.5.9 7.8l.5.6c0 0 .3 1.1.8 2.4-2.7-.6-5.7.9-7.8 3.7-2.2 2.9-7.4 7.9-9.6 10.8-2.7 3.5-2 8.5 1 10.7 0 0 15.7 11.5 26.1-2.6 8.2-11 2.4-22.4-.8-24.6"/><path d="m49.7 31.5c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-17.9c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 17.9"/></g><path d="m36.8 29.5l-15.9-11.5c-.9-.6-1.5-1.6-1.2-3.1-1.1 2-.4 4 .9 5l15.9 11.5c1.6 1.2 1.9-.7.3-1.9" fill="#b58360"/><path d="m41.6 35c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#d6a57c"/><path d="m32 35.4l-19.2-13.9c-.9-.6-1.5-1.8-1.2-3.1-1.1 2-.5 4.2.9 5.2l19.3 13.7c1.5 1.2 1.8-.8.2-1.9" fill="#b58360"/><path d="m40 43c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#d6a57c"/><path d="m28.2 41.8l-17-12.2c-.9-.6-1.5-2-1.1-3.4-1.3 1.9-.8 4.4.6 5.4l17.2 12.1c1.6 1.2 1.9-.7.3-1.9" fill="#b58360"/><path d="m39.3 52c1.6 1.2-9.8 2.4-11.4 1.2l-17.6-12.7c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.8 17.9" fill="#d6a57c"/><g fill="#b58360"><path d="m59.9 41.6c0 0-1.7 8.8-8.7 14.1-6.2 4.7-15.8.6-20.4-2.4-4.8-3.3-7.2-4.9-18.8-13.7-2.2-1.7-2.8-2.8-2.5-4.6-1.7 1.8-.8 4.6.6 5.6l1.2.8c0 0 13.9 10.2 18.6 13.4 4.3 3 15.4 7.7 22.4 2.1 7.9-6.1 7.6-15.3 7.6-15.3"/><path d="m48 30.1c-2-2.1-2.1-5.1-2.1-5.1l-.5-.6c-.8-1-2.1-3.1-1.6-5.6-1.9 3.5 0 6.3.9 7.5l.5.6c0 0-.1.9.4 1.6l2.4 1.6"/></g><g fill="#42ade2"><path d="m37.8 2l3 12.2 5.9-11.3z"/><path d="M52.6 5.6 48.1 15.7 58.6 13z"/><path d="m30.2 3.5l2.8 11-9.2-5.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fe.svg
index 3385ee7..56107c4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#543523" d="m47.46 27.348c0 0-4.507-3.749-6.901-7.261-.89-1.301-3.778-1.14-4.782 1.37l-15.618 6.02-10.299-5.556c-1.628-.97-3.7-.27-4.634 1.561l-.014.03c-.931 1.836-.365 4.104 1.263 5.073l1.59.947c-1.392-.25-2.856.472-3.599 1.932l-.016.032c-.93 1.833-.364 4.103 1.262 5.071l3.558 2.121c-1.629-.97-3.702-.271-4.632 1.561l-.016.033c-.932 1.834-.363 4.102 1.266 5.073 0 0 18.11 11.181 24.346 14.546 4.934 2.662 14.625 3.954 20.73-3.412 2.24-2.702-3.504-29.14-3.504-29.14"/><g fill="#b47d56"><path d="m54.991 27.28c-3.223-2.197-5.386-5.104-7-9.499-.563-1.529-2.789-1.764-4.073.699-1.854 3.553-.073 6.473.909 7.754l.471.603c0 0 .267 1.098.808 2.446-2.661-.618-5.711.888-7.842 3.701-2.203 2.913-7.401 7.929-9.604 10.838-2.658 3.515-1.953 8.535 1.024 10.687 0 0 15.685 11.469 26.13-2.58 8.172-10.993 2.439-22.429-.818-24.649"/><path d="m49.7 31.514c1.598 1.153 1.965 3.529.822 5.303l-.021.031c-1.141 1.777-3.361 2.279-4.961 1.128l-24.907-17.99c-1.599-1.152-1.967-3.526-.823-5.304l.018-.031c1.145-1.774 3.362-2.28 4.965-1.128l24.907 17.991"/></g><path fill="#935e3e" d="m36.8 29.529l-15.906-11.485c-.867-.626-1.485-1.574-1.23-3.115-1.147 1.985-.443 4.04.946 5.04l15.91 11.484c1.596 1.157 1.876-.773.28-1.926"/><path fill="#b47d56" d="m41.558 34.967c1.598 1.153 1.965 3.528.825 5.303l-.02.031c-1.145 1.775-3.365 2.279-4.962 1.127l-24.909-17.988c-1.599-1.153-1.967-3.526-.825-5.304l.021-.03c1.144-1.775 3.362-2.281 4.961-1.125l24.909 17.986"/><path fill="#935e3e" d="m31.98 35.38l-19.229-13.884c-.865-.625-1.481-1.768-1.24-3.097-1.132 2-.525 4.186.866 5.192l19.321 13.716c1.596 1.154 1.877-.774.282-1.927"/><path fill="#b47d56" d="m40 43.04c1.598 1.153 1.965 3.532.823 5.309l-.02.029c-1.141 1.775-3.364 2.279-4.961 1.124l-24.907-17.985c-1.6-1.153-1.968-3.528-.826-5.307l.02-.03c1.144-1.774 3.364-2.278 4.961-1.125l24.91 17.985"/><path fill="#935e3e" d="m28.16 41.818l-16.964-12.25c-.866-.625-1.514-1.987-1.085-3.363-1.327 1.871-.783 4.417.605 5.422l17.16 12.12c1.599 1.154 1.878-.776.282-1.929"/><path fill="#b47d56" d="m39.33 52.02c1.598 1.152-9.835 2.365-11.433 1.21l-17.631-12.73c-1.6-1.156-1.97-3.528-.827-5.308l.02-.031c1.141-1.774 3.364-2.28 4.961-1.125l24.91 17.984"/><g fill="#935e3e"><path d="m59.919 41.57c0 0-1.748 8.803-8.688 14.08-6.203 4.716-15.809.614-20.37-2.416-4.842-3.217-7.302-4.866-18.853-13.639-2.181-1.658-2.797-2.843-2.455-4.566-1.692 1.84-.838 4.583.556 5.589l1.201.85c0 0 13.88 10.159 18.588 13.428 4.252 2.953 15.38 7.721 22.443 2.112 7.866-6.246 7.578-15.437 7.578-15.437"/><path d="m47.987 30.14c-2.032-2.107-2.108-5.147-2.108-5.147l-.468-.601c-.78-1.019-2.062-3.062-1.634-5.638-1.896 3.467-.044 6.263.913 7.511l.487.63c0 0-.088.885.362 1.61l2.448 1.635"/></g><g fill="#42ade2"><path d="m37.797 2l3.03 12.204 5.84-11.319z"/><path d="M52.608 5.598 48.1 15.744 58.61 13.02z"/><path d="m30.23 3.54l2.82 10.912-9.214-5.802z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 27.3c0 0-4.5-3.7-6.9-7.3-.9-1.3-3.8-1.1-4.8 1.4l-15.6 6-10.3-5.5c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1l1.6.9c-1.4-.2-2.9.5-3.6 1.9-.9 1.8-.4 4.1 1.3 5.1l3.6 2.1c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1 0 0 18.1 11.2 24.3 14.5 4.9 2.7 14.6 4 20.7-3.4 2-2.6-3.7-29.1-3.7-29.1" fill="#785440"/><g fill="#b47d56"><path d="m55 27.3c-3.2-2.2-5.4-5.1-7-9.5-.6-1.5-2.8-1.8-4.1.7-1.9 3.6-.1 6.5.9 7.8l.5.6c0 0 .3 1.1.8 2.4-2.7-.6-5.7.9-7.8 3.7-2.2 2.9-7.4 7.9-9.6 10.8-2.7 3.5-2 8.5 1 10.7 0 0 15.7 11.5 26.1-2.6 8.2-11 2.4-22.4-.8-24.6"/><path d="m49.7 31.5c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-17.9c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 17.9"/></g><path d="m36.8 29.5l-15.9-11.5c-.9-.6-1.5-1.6-1.2-3.1-1.1 2-.4 4 .9 5l15.9 11.5c1.6 1.2 1.9-.7.3-1.9" fill="#935e3e"/><path d="m41.6 35c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#b47d56"/><path d="m32 35.4l-19.2-13.9c-.9-.6-1.5-1.8-1.2-3.1-1.1 2-.5 4.2.9 5.2l19.3 13.7c1.5 1.2 1.8-.8.2-1.9" fill="#935e3e"/><path d="m40 43c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#b47d56"/><path d="m28.2 41.8l-17-12.2c-.9-.6-1.5-2-1.1-3.4-1.3 1.9-.8 4.4.6 5.4l17.2 12.1c1.6 1.2 1.9-.7.3-1.9" fill="#935e3e"/><path d="m39.3 52c1.6 1.2-9.8 2.4-11.4 1.2l-17.6-12.7c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.8 17.9" fill="#b47d56"/><g fill="#935e3e"><path d="m59.9 41.6c0 0-1.7 8.8-8.7 14.1-6.2 4.7-15.8.6-20.4-2.4-4.8-3.3-7.2-4.9-18.8-13.7-2.2-1.7-2.8-2.8-2.5-4.6-1.7 1.8-.8 4.6.6 5.6l1.2.8c0 0 13.9 10.2 18.6 13.4 4.3 3 15.4 7.7 22.4 2.1 7.9-6.1 7.6-15.3 7.6-15.3"/><path d="m48 30.1c-2-2.1-2.1-5.1-2.1-5.1l-.5-.6c-.8-1-2.1-3.1-1.6-5.6-1.9 3.5 0 6.3.9 7.5l.5.6c0 0-.1.9.4 1.6l2.4 1.6"/></g><g fill="#42ade2"><path d="m37.8 2l3 12.2 5.9-11.3z"/><path d="M52.6 5.6 48.1 15.7 58.6 13z"/><path d="m30.2 3.5l2.8 11-9.2-5.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3ff.svg
index dca6358..d4361ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44f-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4a352a" d="m47.46 27.348c0 0-4.507-3.749-6.901-7.261-.89-1.301-3.778-1.14-4.782 1.37l-15.618 6.02-10.299-5.556c-1.628-.97-3.7-.27-4.634 1.561l-.014.03c-.931 1.836-.365 4.104 1.263 5.073l1.59.947c-1.392-.25-2.856.472-3.599 1.932l-.016.032c-.93 1.833-.364 4.103 1.262 5.071l3.558 2.121c-1.629-.97-3.702-.271-4.632 1.561l-.016.033c-.932 1.834-.363 4.102 1.266 5.073 0 0 18.11 11.181 24.346 14.546 4.934 2.662 14.625 3.954 20.73-3.412 2.24-2.702-3.504-29.14-3.504-29.14"/><g fill="#8a6859"><path d="m54.991 27.28c-3.223-2.197-5.386-5.104-7-9.499-.563-1.529-2.789-1.764-4.073.699-1.854 3.553-.073 6.473.909 7.754l.471.603c0 0 .267 1.098.808 2.446-2.661-.618-5.711.888-7.842 3.701-2.203 2.913-7.401 7.929-9.604 10.838-2.658 3.515-1.953 8.535 1.024 10.687 0 0 15.685 11.469 26.13-2.58 8.172-10.993 2.439-22.429-.818-24.649"/><path d="m49.7 31.514c1.598 1.153 1.965 3.529.822 5.303l-.021.031c-1.141 1.777-3.361 2.279-4.961 1.128l-24.907-17.99c-1.599-1.152-1.967-3.526-.823-5.304l.018-.031c1.145-1.774 3.362-2.28 4.965-1.128l24.907 17.991"/></g><path fill="#705041" d="m36.8 29.529l-15.906-11.485c-.867-.626-1.485-1.574-1.23-3.115-1.147 1.985-.443 4.04.946 5.04l15.91 11.484c1.596 1.157 1.876-.773.28-1.926"/><path fill="#8a6859" d="m41.558 34.967c1.598 1.153 1.965 3.528.825 5.303l-.02.031c-1.145 1.775-3.365 2.279-4.962 1.127l-24.909-17.988c-1.599-1.153-1.967-3.526-.825-5.304l.021-.03c1.144-1.775 3.362-2.281 4.961-1.125l24.909 17.986"/><path fill="#705041" d="m31.98 35.38l-19.229-13.884c-.865-.625-1.481-1.768-1.24-3.097-1.132 2-.525 4.186.866 5.192l19.321 13.716c1.596 1.154 1.877-.774.282-1.927"/><path fill="#8a6859" d="m40 43.04c1.598 1.153 1.965 3.532.823 5.309l-.02.029c-1.141 1.775-3.364 2.279-4.961 1.124l-24.907-17.985c-1.6-1.153-1.968-3.528-.826-5.307l.02-.03c1.144-1.774 3.364-2.278 4.961-1.125l24.91 17.985"/><path fill="#705041" d="m28.16 41.818l-16.964-12.25c-.866-.625-1.514-1.987-1.085-3.363-1.327 1.871-.783 4.417.605 5.422l17.16 12.12c1.599 1.154 1.878-.776.282-1.929"/><path fill="#8a6859" d="m39.33 52.02c1.598 1.152-9.835 2.365-11.433 1.21l-17.631-12.73c-1.6-1.156-1.97-3.528-.827-5.308l.02-.031c1.141-1.774 3.364-2.28 4.961-1.125l24.91 17.984"/><g fill="#705041"><path d="m59.919 41.57c0 0-1.748 8.803-8.688 14.08-6.203 4.716-15.809.614-20.37-2.416-4.842-3.217-7.302-4.866-18.853-13.639-2.181-1.658-2.797-2.843-2.455-4.566-1.692 1.84-.838 4.583.556 5.589l1.201.85c0 0 13.88 10.159 18.588 13.428 4.252 2.953 15.38 7.721 22.443 2.112 7.866-6.246 7.578-15.437 7.578-15.437"/><path d="m47.987 30.14c-2.032-2.107-2.108-5.147-2.108-5.147l-.468-.601c-.78-1.019-2.062-3.062-1.634-5.638-1.896 3.467-.044 6.263.913 7.511l.487.63c0 0-.088.885.362 1.61l2.448 1.635"/></g><g fill="#42ade2"><path d="m37.797 2l3.03 12.204 5.84-11.319z"/><path d="M52.608 5.598 48.1 15.744 58.61 13.02z"/><path d="m30.23 3.54l2.82 10.912-9.214-5.802z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 27.3c0 0-4.5-3.7-6.9-7.3-.9-1.3-3.8-1.1-4.8 1.4l-15.6 6-10.3-5.5c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1l1.6.9c-1.4-.2-2.9.5-3.6 1.9-.9 1.8-.4 4.1 1.3 5.1l3.6 2.1c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1 0 0 18.1 11.2 24.3 14.5 4.9 2.7 14.6 4 20.7-3.4 2-2.6-3.7-29.1-3.7-29.1" fill="#523b32"/><g fill="#8a6859"><path d="m55 27.3c-3.2-2.2-5.4-5.1-7-9.5-.6-1.5-2.8-1.8-4.1.7-1.9 3.6-.1 6.5.9 7.8l.5.6c0 0 .3 1.1.8 2.4-2.7-.6-5.7.9-7.8 3.7-2.2 2.9-7.4 7.9-9.6 10.8-2.7 3.5-2 8.5 1 10.7 0 0 15.7 11.5 26.1-2.6 8.2-11 2.4-22.4-.8-24.6"/><path d="m49.7 31.5c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-17.9c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 17.9"/></g><path d="m36.8 29.5l-15.9-11.5c-.9-.6-1.5-1.6-1.2-3.1-1.1 2-.4 4 .9 5l15.9 11.5c1.6 1.2 1.9-.7.3-1.9" fill="#705041"/><path d="m41.6 35c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#8a6859"/><path d="m32 35.4l-19.2-13.9c-.9-.6-1.5-1.8-1.2-3.1-1.1 2-.5 4.2.9 5.2l19.3 13.7c1.5 1.2 1.8-.8.2-1.9" fill="#705041"/><path d="m40 43c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#8a6859"/><path d="m28.2 41.8l-17-12.2c-.9-.6-1.5-2-1.1-3.4-1.3 1.9-.8 4.4.6 5.4l17.2 12.1c1.6 1.2 1.9-.7.3-1.9" fill="#705041"/><path d="m39.3 52c1.6 1.2-9.8 2.4-11.4 1.2l-17.6-12.7c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.8 17.9" fill="#8a6859"/><g fill="#705041"><path d="m59.9 41.6c0 0-1.7 8.8-8.7 14.1-6.2 4.7-15.8.6-20.4-2.4-4.8-3.3-7.2-4.9-18.8-13.7-2.2-1.7-2.8-2.8-2.5-4.6-1.7 1.8-.8 4.6.6 5.6l1.2.8c0 0 13.9 10.2 18.6 13.4 4.3 3 15.4 7.7 22.4 2.1 7.9-6.1 7.6-15.3 7.6-15.3"/><path d="m48 30.1c-2-2.1-2.1-5.1-2.1-5.1l-.5-.6c-.8-1-2.1-3.1-1.6-5.6-1.9 3.5 0 6.3.9 7.5l.5.6c0 0-.1.9.4 1.6l2.4 1.6"/></g><g fill="#42ade2"><path d="m37.8 2l3 12.2 5.9-11.3z"/><path d="M52.6 5.6 48.1 15.7 58.6 13z"/><path d="m30.2 3.5l2.8 11-9.2-5.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f44f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f44f.svg
index 18c1bc0..c611e5d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f44f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f44f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c78a44" d="m47.46 27.348c0 0-4.507-3.749-6.901-7.261-.89-1.301-3.778-1.14-4.782 1.37l-15.619 6.02-10.298-5.556c-1.628-.97-3.7-.27-4.634 1.561l-.015.029c-.931 1.836-.365 4.104 1.263 5.073l1.59.947c-1.392-.25-2.856.472-3.599 1.932l-.016.032c-.931 1.833-.364 4.103 1.262 5.072l3.558 2.121c-1.629-.97-3.702-.271-4.632 1.561l-.015.033c-.932 1.834-.363 4.102 1.266 5.073 0 0 18.11 11.181 24.346 14.546 4.934 2.662 14.625 3.954 20.731-3.412 2.239-2.702-3.505-29.14-3.505-29.14"/><g fill="#ffdd67"><path d="m54.991 27.28c-3.223-2.197-5.386-5.104-7-9.499-.563-1.529-2.789-1.764-4.073.699-1.854 3.553-.073 6.473.909 7.754l.471.603c0 0 .267 1.098.808 2.446-2.661-.618-5.711.888-7.842 3.701-2.203 2.913-7.402 7.929-9.605 10.838-2.658 3.515-1.953 8.535 1.024 10.687 0 0 15.685 11.469 26.13-2.58 8.173-10.993 2.44-22.429-.817-24.649"/><path d="m49.7 31.514c1.598 1.153 1.965 3.529.822 5.303l-.021.03c-1.141 1.777-3.361 2.28-4.961 1.129l-24.908-17.99c-1.599-1.152-1.967-3.526-.823-5.304l.018-.031c1.145-1.774 3.362-2.28 4.965-1.128l24.908 17.991"/></g><path fill="#eba352" d="m36.8 29.529l-15.907-11.485c-.867-.626-1.485-1.574-1.23-3.115-1.147 1.985-.443 4.04.946 5.04l15.911 11.485c1.596 1.156 1.876-.774.28-1.927"/><path fill="#ffdd67" d="m41.558 34.966c1.598 1.154 1.965 3.529.825 5.304l-.02.031c-1.145 1.775-3.365 2.279-4.962 1.127l-24.909-17.988c-1.599-1.153-1.967-3.526-.825-5.304l.021-.03c1.144-1.775 3.362-2.281 4.961-1.125l24.909 17.985"/><path fill="#eba352" d="m31.98 35.38l-19.23-13.884c-.865-.625-1.481-1.768-1.24-3.097-1.132 2-.525 4.186.866 5.192l19.321 13.716c1.597 1.154 1.878-.775.283-1.927"/><path fill="#ffdd67" d="m40 43.04c1.598 1.153 1.965 3.532.823 5.309l-.02.029c-1.141 1.775-3.364 2.279-4.961 1.124l-24.908-17.985c-1.6-1.153-1.968-3.528-.826-5.307l.02-.03c1.144-1.774 3.364-2.278 4.961-1.125l24.911 17.985"/><path fill="#eba352" d="m28.16 41.818l-16.964-12.25c-.866-.625-1.514-1.987-1.085-3.363-1.327 1.871-.783 4.417.605 5.422l17.16 12.12c1.598 1.154 1.877-.776.282-1.929"/><path fill="#ffdd67" d="m39.33 52.02c1.598 1.152-9.835 2.365-11.433 1.21l-17.631-12.731c-1.6-1.156-1.97-3.528-.827-5.309l.02-.03c1.141-1.774 3.364-2.28 4.961-1.125l24.91 17.985"/><g fill="#eba352"><path d="m59.919 41.57c0 0-1.748 8.803-8.688 14.08-6.203 4.716-15.809.614-20.371-2.416-4.842-3.217-7.302-4.866-18.853-13.639-2.181-1.658-2.797-2.843-2.455-4.566-1.692 1.84-.838 4.582.556 5.589l1.201.85c0 0 13.88 10.159 18.588 13.428 4.252 2.953 15.38 7.721 22.444 2.112 7.866-6.246 7.578-15.437 7.578-15.437"/><path d="m47.987 30.14c-2.032-2.107-2.108-5.147-2.108-5.147l-.468-.601c-.78-1.019-2.062-3.062-1.634-5.638-1.896 3.467-.044 6.263.913 7.511l.487.63c0 0-.088.885.362 1.61l2.448 1.635"/></g><g fill="#42ade2"><path d="m37.797 2l3.03 12.204 5.84-11.319z"/><path d="M52.608 5.598 48.1 15.744 58.61 13.02z"/><path d="m30.23 3.54l2.82 10.912-9.215-5.802z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.5 27.3c0 0-4.5-3.7-6.9-7.3-.9-1.3-3.8-1.1-4.8 1.4l-15.6 6-10.3-5.5c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1l1.6.9c-1.4-.2-2.9.5-3.6 1.9-.9 1.8-.4 4.1 1.3 5.1l3.6 2.1c-1.6-1-3.7-.3-4.6 1.6-.9 1.8-.4 4.1 1.3 5.1 0 0 18.1 11.2 24.3 14.5 4.9 2.7 14.6 4 20.7-3.4 2-2.6-3.7-29.1-3.7-29.1" fill="#d99b57"/><g fill="#ffdd67"><path d="m55 27.3c-3.2-2.2-5.4-5.1-7-9.5-.6-1.5-2.8-1.8-4.1.7-1.9 3.6-.1 6.5.9 7.8l.5.6c0 0 .3 1.1.8 2.4-2.7-.6-5.7.9-7.8 3.7-2.2 2.9-7.4 7.9-9.6 10.8-2.7 3.5-2 8.5 1 10.7 0 0 15.7 11.5 26.1-2.6 8.2-11 2.4-22.4-.8-24.6"/><path d="m49.7 31.5c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-17.9c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 17.9"/></g><path d="m36.8 29.5l-15.9-11.5c-.9-.6-1.5-1.6-1.2-3.1-1.1 2-.4 4 .9 5l15.9 11.5c1.6 1.2 1.9-.7.3-1.9" fill="#eba352"/><path d="m41.6 35c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#ffdd67"/><path d="m32 35.4l-19.2-13.9c-.9-.6-1.5-1.8-1.2-3.1-1.1 2-.5 4.2.9 5.2l19.3 13.7c1.5 1.2 1.8-.8.2-1.9" fill="#eba352"/><path d="m40 43c1.6 1.2 2 3.5.8 5.3-1.1 1.8-3.4 2.3-5 1.1l-24.9-18c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.9 18" fill="#ffdd67"/><path d="m28.2 41.8l-17-12.2c-.9-.6-1.5-2-1.1-3.4-1.3 1.9-.8 4.4.6 5.4l17.2 12.1c1.6 1.2 1.9-.7.3-1.9" fill="#eba352"/><path d="m39.3 52c1.6 1.2-9.8 2.4-11.4 1.2l-17.6-12.7c-1.6-1.2-2-3.5-.8-5.3 1.1-1.8 3.4-2.3 5-1.1l24.8 17.9" fill="#ffdd67"/><g fill="#eba352"><path d="m59.9 41.6c0 0-1.7 8.8-8.7 14.1-6.2 4.7-15.8.6-20.4-2.4-4.8-3.3-7.2-4.9-18.8-13.7-2.2-1.7-2.8-2.8-2.5-4.6-1.7 1.8-.8 4.6.6 5.6l1.2.8c0 0 13.9 10.2 18.6 13.4 4.3 3 15.4 7.7 22.4 2.1 7.9-6.1 7.6-15.3 7.6-15.3"/><path d="m48 30.1c-2-2.1-2.1-5.1-2.1-5.1l-.5-.6c-.8-1-2.1-3.1-1.6-5.6-1.9 3.5 0 6.3.9 7.5l.5.6c0 0-.1.9.4 1.6l2.4 1.6"/></g><g fill="#42ade2"><path d="m37.8 2l3 12.2 5.9-11.3z"/><path d="M52.6 5.6 48.1 15.7 58.6 13z"/><path d="m30.2 3.5l2.8 11-9.2-5.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fb.svg
index 525bcfb..3da933c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m25.22 34.951l3.768-2.82-12.336-16.1c-.825-1.078-2.357-1.346-3.394-.571l-.011.009c-1.036.776-1.19 2.304-.337 3.415l12.31 16.07"/><path d="m20.773 38.28l4.45-3.332-13.371-17.456c-1.01-1.316-2.821-1.642-4.05-.722-1.229.919-1.409 2.736-.397 4.054l13.368 17.456"/><path d="m16.894 41.19l3.88-2.906-12.586-16.43c-.881-1.148-2.46-1.428-3.528-.629l-.007.006c-1.07.801-1.224 2.379-.345 3.528l12.586 16.431"/><path d="m2.833 26.467c-.996.745-1.105 2.187-.291 3.252l10.815 14.12 3.536-2.647-10.814-14.12c-.817-1.065-2.248-1.351-3.246-.603"/></g><g fill="#e6b796"><path d="m13.263 15.457l-.011.009c-.112.084-.211.181-.301.28 1-.489 2.299-.177 3.036.783l12.332 16.1.672-.502-12.335-16.1c-.825-1.078-2.357-1.346-3.393-.571"/><path d="m7.802 16.773c-.114.086-.214.188-.309.289 1.2-.627 2.776-.258 3.689.935l13.37 17.456.671-.502-13.371-17.456c-1.01-1.316-2.822-1.641-4.05-.722"/><path d="m4.66 21.22l-.007.006c-.114.085-.213.183-.305.284 1.042-.513 2.383-.185 3.171.841l12.584 16.432.671-.503-12.586-16.43c-.88-1.148-2.459-1.429-3.528-.63"/><path d="m2.833 26.467c-.116.086-.215.183-.306.286.957-.451 2.16-.122 2.882.82l10.814 14.12.671-.501-10.815-14.12c-.817-1.065-2.248-1.351-3.246-.603"/></g><path fill="#ffe1bd" d="m32.32 20.437c-1.772-.854-4.02.935-4.41 5.234-.277 3-.178 2.715-1.874 3.985l-1.515-1.978c0 0-5.745-.031-12.03 6.647 0 0-3.671 3.675-2.01 5.847 0 0 3.382 5.855 7.405 8.118 5.988 3.368 18.13-3.65 15.13-14.773-.595-2.213-.387-3.52-.3-5.929.103-2.901 1.537-6.213-.409-7.151"/><g fill="#e6b796"><path d="m32.32 20.437c-.335-.161-.69-.227-1.044-.2.081.028.163.055.243.094 1.945.936.51 4.25.406 7.151-.084 2.405-.33 3.698.265 5.91 2.596 9.646-6.18 16.197-12.465 15.576 6.304 1.338 16.02-5.371 13.304-15.451-.595-2.213-.387-3.52-.3-5.929.103-2.901 1.537-6.213-.409-7.151"/><path d="m22.58 42.08c-2.237-2.923-1.877-6.928.782-9.03-.642.146-1.257.412-1.808.824-2.254 1.688-2.581 5.02-.728 7.436.809 1.056 1.899 1.759 3.062 2.081-.477-.374-.92-.806-1.308-1.312"/><path d="m24.726 27.668c-4.646.292-12.769 6.248-14.56 10.902.251-5.894 10.382-12.187 14.56-10.902"/></g><g fill="#ffe1bd"><path d="m39.477 35.17l-4.03-2.655 10.733-16.59c.718-1.111 2.22-1.444 3.331-.713l.011.008c1.111.729 1.412 2.248.672 3.393l-10.713 16.557"/><path d="m44.24 38.31l-4.768-3.138 11.637-17.986c.877-1.357 2.657-1.759 3.974-.892 1.316.867 1.673 2.671.792 4.03l-11.635 17.986"/><path d="m48.4 41.04l-4.154-2.734 10.952-16.93c.766-1.183 2.315-1.531 3.459-.779l.009.007c1.146.753 1.453 2.322.688 3.507l-10.954 16.929"/><path d="m60.991 25.757c1.067.702 1.317 2.135.608 3.234l-9.411 14.545-3.79-2.492 9.413-14.548c.71-1.096 2.112-1.441 3.18-.739"/></g><g fill="#e6b796"><path d="m49.51 15.213l.011.008c.12.077.229.172.329.268-1.052-.448-2.312-.082-2.954.909l-10.734 16.591-.717-.472 10.733-16.59c.719-1.112 2.221-1.445 3.332-.714"/><path d="m55.09 16.294c.122.08.232.178.335.274-1.259-.575-2.796-.142-3.594 1.09l-11.633 17.987-.719-.473 11.637-17.986c.877-1.357 2.658-1.76 3.974-.892"/><path d="m58.655 20.601l.009.007c.122.08.23.174.33.27-1.088-.466-2.396-.083-3.082.975l-10.95 16.93-.718-.473 10.952-16.93c.766-1.183 2.316-1.531 3.459-.779"/><path d="m60.991 25.757c.123.082.232.173.332.272-.998-.409-2.168-.029-2.795.94l-9.411 14.547-.719-.473 9.413-14.548c.71-1.095 2.112-1.44 3.18-.738"/></g><path fill="#ffe1bd" d="m30.973 20.988c1.688-.926 4.104.762 4.915 5.04.567 2.983.442 2.703 2.258 3.898l1.317-2.037c0 0 5.732-.274 12.649 6.125 0 0 4.02 3.514 2.576 5.751 0 0-2.805 5.987-6.597 8.415-5.647 3.613-18.448-2.878-16.549-14.11.379-2.233.041-3.529-.278-5.928-.385-2.891-2.142-6.137-.291-7.154"/><g fill="#e6b796"><path d="m30.973 20.988c.32-.177.666-.256 1.022-.245-.078.031-.157.062-.233.104-1.85 1.018-.092 4.262.294 7.153.318 2.399.691 3.678.313 5.909-1.646 9.735 7.751 15.904 13.963 15.02-6.161 1.602-16.509-4.684-14.789-14.858.379-2.233.041-3.529-.278-5.928-.386-2.891-2.143-6.137-.292-7.154"/><path d="m42.811 42.17c1.948-3.01 1.195-6.995-1.662-8.977.654.119 1.295.357 1.883.744 2.414 1.589 3.068 4.897 1.455 7.39-.703 1.09-1.727 1.835-2.852 2.205.438-.39.837-.841 1.176-1.362"/><path d="m39.26 27.882c4.664.096 13.354 5.696 15.595 10.264-.826-5.872-11.551-11.723-15.595-10.264"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m2.9 26.8c-1 .8-1.2 2.3-.4 3.3l10.8 13.8 3.7-2.9-10.8-13.7c-.8-1.1-2.3-1.3-3.3-.5"/><path d="m25 34.8l3.9-3-12.3-15.8c-.8-1.1-2.4-1.3-3.5-.4-1.1.8-1.3 2.4-.4 3.5l12.3 15.7"/></g><path d="m13.1 15.6c-.1.1-.2.2-.3.3 1-.5 2.4-.3 3.1.6l12.3 15.7.7-.5-12.3-15.7c-.8-1-2.4-1.2-3.5-.4" fill="#e6b796"/><path d="m17 41.1l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#ffe1bd"/><path d="m4.8 21.4c-.1.1-.2.2-.3.3 1.1-.6 2.4-.3 3.2.7l7.8 10 1.5.5-8.6-11c-.8-1.2-2.5-1.4-3.6-.5" fill="#e6b796"/><path d="m20 36.6l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#ffe1bd"/><g fill="#e6b796"><path d="m7.8 17c-.1.1-.2.2-.3.3 1.1-.6 2.5-.3 3.2.7l8.9 11.3 1.5.5-9.6-12.3c-.9-1.2-2.6-1.4-3.7-.5"/><path d="m2.9 26.8c-.1.1-.2.2-.3.3 1-.5 2.2-.2 2.9.7l6.4 8.2 1.5.5-7.2-9.2c-.8-1.1-2.3-1.3-3.3-.5"/></g><path d="m32.3 18.5c-1.9-.9-4.2 1-4.5 5.6-.2 3.2-.1 4-1.8 5.3l-1.5-1.9c0 0-14.9 11.7-13.9 12.9 0 0 3.4 5.8 7.4 7.9 6 3.2 16.7-4 14.8-15.3-1.3-6.7 1.5-13.5-.5-14.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m32.3 18.5c-.4-.2-.7-.2-1.1-.2.1 0 .2.1.3.1 2 1 .9 4.5.5 7.5-.3 2.4-.5 4.9.1 7 2.6 9.6-6.1 16.4-12.4 15.9 6.3 1.2 15.9-5.7 13.2-15.7-.6-2.2-.4-4.5-.1-7 .4-3.1 1.5-6.6-.5-7.6"/><path d="m26.4 29c-3.5 1.2-7.8 7.6-2.7 12.5-4-5.1-.4-10 2.2-12 .3-.3.5-.5.5-.5"/></g><g fill="#ffe1bd"><path d="m61.1 26.7c1 .8 1.2 2.3.4 3.3l-10.8 13.8-3.7-2.8 10.8-13.8c.8-1.1 2.3-1.3 3.3-.5"/><path d="m39 34.7l-3.9-3 12.3-15.7c.8-1.1 2.4-1.3 3.5-.4 1.1.8 1.3 2.4.4 3.5l-12.3 15.6"/></g><path d="m50.9 15.5c.1.1.2.2.3.3-1-.5-2.4-.3-3.1.6l-12.3 15.8-.7-.5 12.3-15.7c.8-1.1 2.4-1.3 3.5-.5" fill="#e6b796"/><path d="m47 41l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#ffe1bd"/><path d="m59.2 21.3c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-7.8 10-1.5.5 8.6-11c.8-1.1 2.5-1.3 3.6-.5" fill="#e6b796"/><path d="m44 36.5l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#ffe1bd"/><g fill="#e6b796"><path d="m56.2 16.9c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-8.8 11.3-1.5.5 9.6-12.3c.8-1.2 2.5-1.4 3.6-.5"/><path d="m61.1 26.7c.1.1.2.2.3.3-1-.5-2.2-.2-2.9.7l-6.4 8.2-1.5.5 7.2-9.2c.8-1.1 2.3-1.3 3.3-.5"/></g><path d="m31.7 18.5c1.9-.9 4.2 1 4.5 5.6.2 3.2.1 4 1.8 5.3l1.5-1.9c0 0 14.9 11.7 13.9 12.9 0 0-3.4 5.8-7.4 7.9-6 3.2-16.7-4-14.8-15.3 1.3-6.8-1.5-13.6.5-14.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m31.7 18.5c.4-.2.7-.2 1.1-.2-.1 0-.2.1-.3.1-2 1-.9 4.5-.5 7.5.3 2.4.5 4.9-.1 7-2.6 9.6 6.1 16.4 12.4 15.9-6.3 1.2-15.9-5.8-13.2-15.8.6-2.2.4-4.5.1-7-.4-3.1-1.5-6.6.5-7.5"/><path d="m37.6 28.9c3.5 1.2 7.8 7.6 2.7 12.5 4-5.1.4-10-2.2-12-.3-.3-.5-.5-.5-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fc.svg
index f4d36cf..4463814 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m25.22 34.951l3.769-2.82-12.337-16.1c-.825-1.078-2.358-1.346-3.394-.571l-.011.009c-1.037.777-1.19 2.304-.338 3.415l12.311 16.07"/><path d="m20.773 38.28l4.45-3.332-13.371-17.456c-1.01-1.316-2.82-1.643-4.05-.722-1.229.919-1.409 2.737-.397 4.054l13.368 17.456"/><path d="m16.894 41.19l3.88-2.907-12.586-16.431c-.88-1.148-2.459-1.428-3.527-.629l-.007.005c-1.07.801-1.224 2.379-.345 3.528l12.585 16.434"/><path d="m2.833 26.467c-.996.744-1.106 2.187-.291 3.252l10.814 14.12 3.537-2.646-10.814-14.12c-.816-1.065-2.248-1.352-3.246-.603"/></g><g fill="#e0a372"><path d="m13.263 15.457l-.011.009c-.112.084-.21.181-.301.28 1.01-.489 2.298-.177 3.036.784l12.333 16.1.672-.502-12.336-16.1c-.825-1.077-2.358-1.346-3.393-.57"/><path d="m7.802 16.773c-.114.086-.214.188-.309.289 1.2-.626 2.775-.258 3.689.936l13.369 17.456.672-.502-13.371-17.457c-1.01-1.316-2.821-1.642-4.05-.722"/><path d="m4.66 21.22l-.007.005c-.114.086-.213.184-.305.284 1.04-.512 2.384-.185 3.17.841l12.584 16.432.671-.503-12.585-16.43c-.88-1.148-2.459-1.428-3.528-.629"/><path d="m2.833 26.467c-.116.086-.215.183-.306.286.957-.452 2.16-.123 2.882.819l10.814 14.12.671-.5-10.815-14.12c-.816-1.065-2.248-1.352-3.246-.603"/></g><path fill="#fed0ac" d="m32.32 20.437c-1.772-.854-4.02.935-4.41 5.234-.277 3-.178 2.715-1.874 3.985l-1.515-1.978c0 0-5.745-.031-12.03 6.647 0 0-3.671 3.675-2.01 5.848 0 0 3.383 5.855 7.405 8.118 5.988 3.368 18.13-3.651 15.14-14.774-.596-2.214-.387-3.52-.301-5.929.103-2.901 1.537-6.214-.409-7.151"/><g fill="#e0a372"><path d="m32.32 20.437c-.335-.161-.69-.227-1.044-.2.081.028.163.055.243.094 1.945.935.51 4.25.406 7.151-.084 2.406-.33 3.698.265 5.91 2.595 9.646-6.181 16.197-12.465 15.577 6.304 1.337 16.02-5.372 13.305-15.452-.596-2.214-.387-3.52-.301-5.929.103-2.901 1.537-6.214-.409-7.151"/><path d="m22.58 42.08c-2.237-2.923-1.877-6.927.782-9.03-.642.146-1.257.412-1.808.823-2.254 1.687-2.581 5.02-.728 7.436.81 1.056 1.899 1.759 3.062 2.081-.476-.373-.919-.806-1.308-1.312"/><path d="m24.726 27.667c-4.646.292-12.768 6.25-14.559 10.903.251-5.894 10.381-12.187 14.559-10.903"/></g><g fill="#fed0ac"><path d="m39.476 35.17l-4.03-2.657 10.733-16.59c.718-1.11 2.22-1.444 3.33-.713l.012.007c1.111.73 1.412 2.249.672 3.393l-10.714 16.56"/><path d="m44.24 38.31l-4.769-3.137 11.638-17.987c.877-1.357 2.657-1.759 3.974-.892 1.316.866 1.672 2.671.793 4.03l-11.636 17.986"/><path d="m48.4 41.05l-4.154-2.735 10.952-16.93c.766-1.183 2.316-1.531 3.46-.779l.008.006c1.146.754 1.453 2.323.688 3.508l-10.954 16.93"/><path d="m60.991 25.757c1.067.701 1.317 2.135.608 3.233l-9.411 14.546-3.79-2.492 9.413-14.55c.71-1.094 2.112-1.439 3.18-.737"/></g><g fill="#e0a372"><path d="m49.51 15.213l.012.007c.12.078.229.171.329.268-1.052-.448-2.312-.082-2.954.909l-10.733 16.591-.718-.472 10.733-16.59c.719-1.111 2.221-1.444 3.331-.713"/><path d="m55.09 16.294c.122.08.232.177.335.274-1.259-.575-2.796-.142-3.593 1.09l-11.634 17.987-.72-.472 11.638-17.987c.877-1.357 2.658-1.76 3.974-.892"/><path d="m58.656 20.601l.008.006c.122.081.23.174.331.271-1.089-.466-2.396-.083-3.082.974l-10.951 16.93-.718-.473 10.952-16.93c.766-1.182 2.317-1.53 3.46-.778"/><path d="m60.991 25.757c.123.081.232.173.332.271-.997-.408-2.167-.028-2.796.942l-9.41 14.547-.719-.472 9.413-14.55c.71-1.095 2.112-1.44 3.18-.738"/></g><path fill="#fed0ac" d="m30.973 20.988c1.688-.926 4.104.761 4.914 5.03.568 2.983.443 2.703 2.26 3.898l1.317-2.037c0 0 5.731-.274 12.648 6.124 0 0 4.02 3.515 2.577 5.752 0 0-2.805 5.987-6.599 8.416-5.646 3.613-18.447-2.879-16.548-14.11.379-2.233.043-3.529-.278-5.928-.385-2.89-2.141-6.136-.291-7.153"/><g fill="#e0a372"><path d="m30.973 20.988c.32-.177.666-.256 1.022-.245-.078.031-.157.062-.232.103-1.851 1.018-.094 4.263.294 7.153.318 2.398.691 3.678.313 5.91-1.646 9.734 7.751 15.904 13.962 15.02-6.159 1.602-16.508-4.683-14.788-14.858.379-2.233.043-3.529-.278-5.928-.387-2.89-2.143-6.136-.293-7.153"/><path d="m42.811 42.17c1.948-3.01 1.195-6.995-1.662-8.977.654.118 1.295.357 1.883.743 2.414 1.59 3.068 4.899 1.455 7.391-.703 1.09-1.726 1.835-2.852 2.206.438-.391.837-.841 1.176-1.363"/><path d="m39.26 27.882c4.664.096 13.354 5.695 15.595 10.264-.826-5.872-11.551-11.723-15.595-10.264"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m2.9 26.8c-1 .8-1.2 2.3-.4 3.3l10.8 13.8 3.7-2.9-10.8-13.7c-.8-1.1-2.3-1.3-3.3-.5"/><path d="m25 34.8l3.9-3-12.3-15.8c-.8-1.1-2.4-1.3-3.5-.4-1.1.8-1.3 2.4-.4 3.5l12.3 15.7"/></g><path d="m13.1 15.6c-.1.1-.2.2-.3.3 1-.5 2.4-.3 3.1.6l12.3 15.7.7-.5-12.3-15.7c-.8-1-2.4-1.2-3.5-.4" fill="#e0a372"/><path d="m17 41.1l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#fed0ac"/><path d="m4.8 21.4c-.1.1-.2.2-.3.3 1.1-.6 2.4-.3 3.2.7l7.8 10 1.5.5-8.6-11c-.8-1.2-2.5-1.4-3.6-.5" fill="#e0a372"/><path d="m20 36.6l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#fed0ac"/><g fill="#e0a372"><path d="m7.8 17c-.1.1-.2.2-.3.3 1.1-.6 2.5-.3 3.2.7l8.9 11.3 1.5.5-9.6-12.3c-.9-1.2-2.6-1.4-3.7-.5"/><path d="m2.9 26.8c-.1.1-.2.2-.3.3 1-.5 2.2-.2 2.9.7l6.4 8.2 1.5.5-7.2-9.2c-.8-1.1-2.3-1.3-3.3-.5"/></g><path d="m32.3 18.5c-1.9-.9-4.2 1-4.5 5.6-.2 3.2-.1 4-1.8 5.3l-1.5-1.9c0 0-14.9 11.7-13.9 12.9 0 0 3.4 5.8 7.4 7.9 6 3.2 16.7-4 14.8-15.3-1.3-6.7 1.5-13.5-.5-14.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m32.3 18.5c-.4-.2-.7-.2-1.1-.2.1 0 .2.1.3.1 2 1 .9 4.5.5 7.5-.3 2.4-.5 4.9.1 7 2.6 9.6-6.1 16.4-12.4 15.9 6.3 1.2 15.9-5.7 13.2-15.7-.6-2.2-.4-4.5-.1-7 .4-3.1 1.5-6.6-.5-7.6"/><path d="m26.4 29c-3.5 1.2-7.8 7.6-2.7 12.5-4-5.1-.4-10 2.2-12 .3-.3.5-.5.5-.5"/></g><g fill="#fed0ac"><path d="m61.1 26.7c1 .8 1.2 2.3.4 3.3l-10.8 13.8-3.7-2.8 10.8-13.8c.8-1.1 2.3-1.3 3.3-.5"/><path d="m39 34.7l-3.9-3 12.3-15.7c.8-1.1 2.4-1.3 3.5-.4 1.1.8 1.3 2.4.4 3.5l-12.3 15.6"/></g><path d="m50.9 15.5c.1.1.2.2.3.3-1-.5-2.4-.3-3.1.6l-12.3 15.8-.7-.5 12.3-15.7c.8-1.1 2.4-1.3 3.5-.5" fill="#e0a372"/><path d="m47 41l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#fed0ac"/><path d="m59.2 21.3c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-7.8 10-1.5.5 8.6-11c.8-1.1 2.5-1.3 3.6-.5" fill="#e0a372"/><path d="m44 36.5l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#fed0ac"/><g fill="#e0a372"><path d="m56.2 16.9c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-8.8 11.3-1.5.5 9.6-12.3c.8-1.2 2.5-1.4 3.6-.5"/><path d="m61.1 26.7c.1.1.2.2.3.3-1-.5-2.2-.2-2.9.7l-6.4 8.2-1.5.5 7.2-9.2c.8-1.1 2.3-1.3 3.3-.5"/></g><path d="m31.7 18.5c1.9-.9 4.2 1 4.5 5.6.2 3.2.1 4 1.8 5.3l1.5-1.9c0 0 14.9 11.7 13.9 12.9 0 0-3.4 5.8-7.4 7.9-6 3.2-16.7-4-14.8-15.3 1.3-6.8-1.5-13.6.5-14.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m31.7 18.5c.4-.2.7-.2 1.1-.2-.1 0-.2.1-.3.1-2 1-.9 4.5-.5 7.5.3 2.4.5 4.9-.1 7-2.6 9.6 6.1 16.4 12.4 15.9-6.3 1.2-15.9-5.8-13.2-15.8.6-2.2.4-4.5.1-7-.4-3.1-1.5-6.6.5-7.5"/><path d="m37.6 28.9c3.5 1.2 7.8 7.6 2.7 12.5 4-5.1.4-10-2.2-12-.3-.3-.5-.5-.5-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fd.svg
index 8cadcaa..715fb59 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m25.22 34.951l3.768-2.82-12.335-16.1c-.825-1.078-2.358-1.347-3.394-.571l-.011.01c-1.037.776-1.19 2.304-.337 3.414l12.309 16.07"/><path d="m20.774 38.28l4.45-3.332-13.372-17.456c-1.01-1.315-2.821-1.642-4.05-.722-1.229.919-1.409 2.737-.397 4.054l13.369 17.456"/><path d="m16.894 41.19l3.88-2.907-12.586-16.43c-.88-1.147-2.459-1.428-3.527-.629l-.007.005c-1.07.802-1.225 2.38-.345 3.528l12.585 16.433"/><path d="m2.833 26.467c-.995.744-1.105 2.187-.29 3.252l10.814 14.12 3.537-2.646-10.814-14.12c-.818-1.064-2.248-1.351-3.247-.603"/></g><g fill="#b58360"><path d="m13.263 15.457l-.011.01c-.112.083-.21.181-.302.279 1.01-.488 2.299-.177 3.037.784l12.333 16.1.672-.503-12.335-16.1c-.825-1.078-2.359-1.346-3.394-.571"/><path d="m7.802 16.773c-.114.086-.214.188-.309.288 1.2-.626 2.775-.257 3.689.937l13.369 17.455.672-.502-13.371-17.456c-1.01-1.315-2.821-1.641-4.05-.722"/><path d="m4.661 21.22l-.007.005c-.114.086-.213.184-.306.284 1.041-.512 2.384-.185 3.171.842l12.584 16.432.671-.503-12.586-16.431c-.88-1.148-2.459-1.428-3.527-.629"/><path d="m2.833 26.467c-.115.086-.214.183-.305.286.957-.452 2.159-.122 2.882.819l10.812 14.12.672-.5-10.814-14.12c-.818-1.064-2.248-1.351-3.247-.603"/></g><path fill="#d6a57c" d="m32.32 20.437c-1.772-.854-4.02.936-4.41 5.234-.277 3-.178 2.715-1.874 3.984l-1.515-1.978c0 0-5.745-.03-12.03 6.647 0 0-3.671 3.675-2.01 5.848 0 0 3.382 5.855 7.404 8.118 5.988 3.368 18.13-3.651 15.13-14.774-.595-2.213-.387-3.52-.3-5.929.102-2.899 1.536-6.213-.409-7.15"/><g fill="#b58360"><path d="m32.32 20.437c-.335-.161-.69-.227-1.044-.2.081.028.163.055.243.095 1.945.935.51 4.249.406 7.151-.084 2.405-.331 3.697.265 5.909 2.594 9.646-6.181 16.197-12.465 15.577 6.303 1.337 16.01-5.372 13.304-15.452-.595-2.213-.387-3.52-.3-5.929.102-2.9 1.536-6.214-.409-7.151"/><path d="m22.581 42.08c-2.237-2.924-1.877-6.928.782-9.03-.642.146-1.258.412-1.808.823-2.254 1.688-2.581 5.02-.728 7.437.809 1.055 1.899 1.758 3.061 2.08-.475-.373-.92-.806-1.307-1.311"/><path d="m24.726 27.668c-4.646.292-12.768 6.248-14.559 10.902.251-5.893 10.381-12.186 14.559-10.902"/></g><g fill="#d6a57c"><path d="m39.476 35.17l-4.03-2.656 10.733-16.591c.718-1.11 2.22-1.443 3.331-.713l.011.008c1.111.729 1.412 2.248.672 3.393l-10.714 16.559"/><path d="m44.24 38.31l-4.769-3.137 11.638-17.987c.877-1.356 2.657-1.759 3.974-.892 1.316.867 1.671 2.671.792 4.03l-11.635 17.986"/><path d="m48.4 41.05l-4.153-2.735 10.952-16.93c.766-1.183 2.316-1.531 3.459-.779l.009.007c1.146.753 1.452 2.322.688 3.507l-10.955 16.93"/><path d="m60.991 25.758c1.066.701 1.316 2.135.608 3.233l-9.411 14.546-3.791-2.492 9.414-14.55c.71-1.095 2.112-1.44 3.18-.737"/></g><g fill="#b58360"><path d="m49.51 15.213l.011.008c.12.078.229.172.329.269-1.052-.448-2.312-.082-2.953.909l-10.735 16.59-.717-.473 10.733-16.591c.719-1.11 2.221-1.443 3.332-.712"/><path d="m55.09 16.294c.122.08.232.178.335.274-1.259-.575-2.797-.142-3.593 1.091l-11.634 17.986-.72-.472 11.638-17.987c.877-1.357 2.658-1.759 3.974-.892"/><path d="m58.655 20.601l.009.007c.122.08.23.174.33.271-1.088-.467-2.396-.084-3.081.974l-10.951 16.929-.718-.473 10.952-16.93c.766-1.182 2.317-1.53 3.459-.778"/><path d="m60.991 25.758c.123.081.232.173.332.271-.998-.408-2.168-.029-2.795.94l-9.411 14.547-.72-.472 9.414-14.55c.71-1.094 2.112-1.439 3.18-.736"/></g><path fill="#d6a57c" d="m30.973 20.988c1.688-.927 4.103.761 4.914 5.03.567 2.983.443 2.702 2.259 3.898l1.318-2.037c0 0 5.731-.274 12.648 6.124 0 0 4.02 3.514 2.576 5.751 0 0-2.805 5.987-6.598 8.416-5.646 3.613-18.447-2.879-16.547-14.11.379-2.233.042-3.528-.278-5.928-.386-2.888-2.142-6.135-.292-7.152"/><g fill="#b58360"><path d="m30.973 20.988c.32-.177.666-.257 1.022-.245-.078.031-.157.062-.232.104-1.851 1.018-.094 4.263.293 7.153.318 2.398.691 3.678.313 5.909-1.646 9.734 7.75 15.904 13.961 15.02-6.16 1.602-16.507-4.683-14.788-14.858.379-2.233.042-3.528-.278-5.928-.385-2.889-2.141-6.136-.291-7.153"/><path d="m42.811 42.17c1.948-3.01 1.195-6.996-1.662-8.978.654.118 1.295.357 1.883.744 2.414 1.589 3.068 4.898 1.455 7.39-.703 1.09-1.727 1.835-2.852 2.206.438-.391.837-.841 1.176-1.362"/><path d="m39.26 27.882c4.665.096 13.354 5.695 15.595 10.264-.825-5.872-11.55-11.723-15.595-10.264"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m2.9 26.8c-1 .8-1.2 2.3-.4 3.3l10.8 13.8 3.7-2.9-10.8-13.7c-.8-1.1-2.3-1.3-3.3-.5"/><path d="m25 34.8l3.9-3-12.3-15.8c-.8-1.1-2.4-1.3-3.5-.4-1.1.8-1.3 2.4-.4 3.5l12.3 15.7"/></g><path d="m13.1 15.6c-.1.1-.2.2-.3.3 1-.5 2.4-.3 3.1.6l12.3 15.7.7-.5-12.3-15.7c-.8-1-2.4-1.2-3.5-.4" fill="#b58360"/><path d="m17 41.1l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#d6a57c"/><path d="m4.8 21.4c-.1.1-.2.2-.3.3 1.1-.6 2.4-.3 3.2.7l7.8 10 1.5.5-8.6-11c-.8-1.2-2.5-1.4-3.6-.5" fill="#b58360"/><path d="m20 36.6l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#d6a57c"/><g fill="#b58360"><path d="m7.8 17c-.1.1-.2.2-.3.3 1.1-.6 2.5-.3 3.2.7l8.9 11.3 1.5.5-9.6-12.3c-.9-1.2-2.6-1.4-3.7-.5"/><path d="m2.9 26.8c-.1.1-.2.2-.3.3 1-.5 2.2-.2 2.9.7l6.4 8.2 1.5.5-7.2-9.2c-.8-1.1-2.3-1.3-3.3-.5"/></g><path d="m32.3 18.5c-1.9-.9-4.2 1-4.5 5.6-.2 3.2-.1 4-1.8 5.3l-1.5-1.9c0 0-14.9 11.7-13.9 12.9 0 0 3.4 5.8 7.4 7.9 6 3.2 16.7-4 14.8-15.3-1.3-6.7 1.5-13.5-.5-14.5" fill="#d6a57c"/><g fill="#b58360"><path d="m32.3 18.5c-.4-.2-.7-.2-1.1-.2.1 0 .2.1.3.1 2 1 .9 4.5.5 7.5-.3 2.4-.5 4.9.1 7 2.6 9.6-6.1 16.4-12.4 15.9 6.3 1.2 15.9-5.7 13.2-15.7-.6-2.2-.4-4.5-.1-7 .4-3.1 1.5-6.6-.5-7.6"/><path d="m26.4 29c-3.5 1.2-7.8 7.6-2.7 12.5-4-5.1-.4-10 2.2-12 .3-.3.5-.5.5-.5"/></g><g fill="#d6a57c"><path d="m61.1 26.7c1 .8 1.2 2.3.4 3.3l-10.8 13.8-3.7-2.8 10.8-13.8c.8-1.1 2.3-1.3 3.3-.5"/><path d="m39 34.7l-3.9-3 12.3-15.7c.8-1.1 2.4-1.3 3.5-.4 1.1.8 1.3 2.4.4 3.5l-12.3 15.6"/></g><path d="m50.9 15.5c.1.1.2.2.3.3-1-.5-2.4-.3-3.1.6l-12.3 15.8-.7-.5 12.3-15.7c.8-1.1 2.4-1.3 3.5-.5" fill="#b58360"/><path d="m47 41l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#d6a57c"/><path d="m59.2 21.3c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-7.8 10-1.5.5 8.6-11c.8-1.1 2.5-1.3 3.6-.5" fill="#b58360"/><path d="m44 36.5l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#d6a57c"/><g fill="#b58360"><path d="m56.2 16.9c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-8.8 11.3-1.5.5 9.6-12.3c.8-1.2 2.5-1.4 3.6-.5"/><path d="m61.1 26.7c.1.1.2.2.3.3-1-.5-2.2-.2-2.9.7l-6.4 8.2-1.5.5 7.2-9.2c.8-1.1 2.3-1.3 3.3-.5"/></g><path d="m31.7 18.5c1.9-.9 4.2 1 4.5 5.6.2 3.2.1 4 1.8 5.3l1.5-1.9c0 0 14.9 11.7 13.9 12.9 0 0-3.4 5.8-7.4 7.9-6 3.2-16.7-4-14.8-15.3 1.3-6.8-1.5-13.6.5-14.5" fill="#d6a57c"/><g fill="#b58360"><path d="m31.7 18.5c.4-.2.7-.2 1.1-.2-.1 0-.2.1-.3.1-2 1-.9 4.5-.5 7.5.3 2.4.5 4.9-.1 7-2.6 9.6 6.1 16.4 12.4 15.9-6.3 1.2-15.9-5.8-13.2-15.8.6-2.2.4-4.5.1-7-.4-3.1-1.5-6.6.5-7.5"/><path d="m37.6 28.9c3.5 1.2 7.8 7.6 2.7 12.5 4-5.1.4-10-2.2-12-.3-.3-.5-.5-.5-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fe.svg
index 292fd16..d3c412e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m25.22 34.951l3.768-2.819-12.336-16.1c-.825-1.078-2.358-1.346-3.394-.571l-.011.009c-1.037.776-1.19 2.304-.337 3.415l12.31 16.07"/><path d="m20.773 38.28l4.45-3.332-13.371-17.455c-1.01-1.316-2.821-1.643-4.05-.722-1.229.919-1.409 2.737-.397 4.054l13.368 17.455"/><path d="m16.894 41.19l3.88-2.907-12.586-16.43c-.881-1.147-2.46-1.427-3.528-.628l-.007.005c-1.07.801-1.224 2.379-.345 3.528l12.586 16.432"/><path d="m2.833 26.468c-.996.744-1.106 2.187-.291 3.252l10.814 14.12 3.537-2.646-10.814-14.12c-.816-1.065-2.248-1.352-3.246-.603"/></g><g fill="#935e3e"><path d="m13.263 15.458l-.011.009c-.112.084-.21.181-.302.28 1.01-.489 2.299-.177 3.037.783l12.333 16.1.671-.502-12.335-16.1c-.825-1.078-2.358-1.346-3.393-.57"/><path d="m7.802 16.774c-.114.086-.214.188-.309.289 1.2-.626 2.775-.258 3.689.936l13.369 17.455.672-.502-13.371-17.456c-1.01-1.316-2.822-1.642-4.05-.722"/><path d="m4.66 21.22l-.007.005c-.114.086-.213.184-.305.284 1.04-.513 2.383-.185 3.17.841l12.584 16.431.671-.503-12.585-16.429c-.88-1.148-2.459-1.428-3.528-.629"/><path d="m2.833 26.468c-.116.086-.215.182-.306.285.957-.451 2.16-.122 2.882.82l10.813 14.12.671-.499-10.814-14.12c-.816-1.065-2.248-1.352-3.246-.603"/></g><path fill="#b47d56" d="m32.32 20.437c-1.772-.853-4.02.935-4.41 5.234-.277 3-.178 2.715-1.874 3.985l-1.515-1.978c0 0-5.745-.031-12.03 6.647 0 0-3.671 3.674-2.01 5.847 0 0 3.382 5.855 7.404 8.117 5.988 3.368 18.13-3.65 15.14-14.773-.596-2.213-.387-3.52-.301-5.928.103-2.9 1.537-6.213-.409-7.151"/><g fill="#935e3e"><path d="m32.32 20.437c-.335-.161-.69-.227-1.044-.2.081.028.163.055.243.094 1.945.936.511 4.25.406 7.151-.084 2.406-.33 3.698.265 5.909 2.596 9.646-6.181 16.197-12.465 15.576 6.303 1.337 16.02-5.371 13.305-15.451-.596-2.213-.387-3.52-.301-5.928.103-2.9 1.537-6.213-.409-7.151"/><path d="m22.58 42.08c-2.237-2.923-1.877-6.927.782-9.03-.641.146-1.257.413-1.808.823-2.254 1.688-2.581 5.02-.728 7.436.81 1.056 1.899 1.759 3.062 2.081-.476-.373-.919-.806-1.308-1.312"/><path d="m24.726 27.668c-4.646.292-12.768 6.249-14.559 10.902.251-5.893 10.381-12.186 14.559-10.902"/></g><g fill="#b47d56"><path d="m39.476 35.17l-4.03-2.656 10.733-16.59c.718-1.111 2.22-1.444 3.331-.713l.011.008c1.112.73 1.412 2.249.672 3.393l-10.714 16.558"/><path d="m44.24 38.31l-4.769-3.137 11.638-17.986c.877-1.357 2.657-1.76 3.974-.892 1.316.867 1.672 2.671.792 4.03l-11.635 17.985"/><path d="m48.4 41.04l-4.154-2.734 10.952-16.93c.766-1.183 2.316-1.531 3.46-.779l.008.006c1.146.754 1.453 2.323.688 3.508l-10.954 16.929"/><path d="m60.991 25.758c1.066.702 1.317 2.135.608 3.234l-9.411 14.544-3.79-2.492 9.413-14.548c.71-1.095 2.112-1.441 3.18-.738"/></g><g fill="#935e3e"><path d="m49.51 15.213l.011.008c.12.078.229.171.329.268-1.052-.448-2.312-.082-2.953.909l-10.734 16.591-.718-.472 10.733-16.59c.719-1.111 2.221-1.444 3.332-.714"/><path d="m55.09 16.294c.122.081.232.178.335.275-1.259-.575-2.796-.142-3.593 1.09l-11.634 17.986-.72-.472 11.638-17.986c.877-1.358 2.658-1.76 3.974-.893"/><path d="m58.656 20.601l.008.006c.122.081.23.174.331.271-1.089-.467-2.396-.084-3.082.974l-10.951 16.93-.718-.473 10.952-16.929c.766-1.182 2.317-1.531 3.46-.779"/><path d="m60.991 25.758c.123.082.232.173.332.272-.997-.409-2.168-.029-2.795.94l-9.411 14.546-.719-.473 9.413-14.548c.71-1.094 2.112-1.44 3.18-.737"/></g><path fill="#b47d56" d="m30.974 20.989c1.687-.927 4.103.761 4.913 5.03.567 2.983.443 2.703 2.259 3.898l1.318-2.038c0 0 5.731-.274 12.648 6.124 0 0 4.02 3.514 2.576 5.751 0 0-2.805 5.987-6.598 8.415-5.646 3.614-18.447-2.878-16.548-14.1.379-2.233.042-3.528-.278-5.927-.385-2.889-2.141-6.135-.29-7.152"/><g fill="#935e3e"><path d="m30.974 20.989c.319-.177.665-.257 1.021-.245-.078.031-.157.061-.232.103-1.851 1.018-.094 4.263.293 7.153.319 2.399.692 3.678.313 5.909-1.646 9.734 7.751 15.904 13.962 15.02-6.159 1.602-16.508-4.684-14.788-14.858.379-2.233.042-3.528-.278-5.927-.386-2.89-2.142-6.136-.291-7.153"/><path d="m42.811 42.17c1.948-3.01 1.195-6.995-1.662-8.977.654.118 1.295.357 1.883.744 2.414 1.589 3.068 4.898 1.455 7.39-.703 1.09-1.727 1.835-2.852 2.206.438-.391.837-.841 1.176-1.363"/><path d="m39.26 27.882c4.664.096 13.354 5.696 15.595 10.263-.826-5.87-11.551-11.722-15.595-10.263"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m2.9 26.8c-1 .8-1.2 2.3-.4 3.3l10.8 13.8 3.7-2.9-10.8-13.7c-.8-1.1-2.3-1.3-3.3-.5"/><path d="m25 34.8l3.9-3-12.3-15.8c-.8-1.1-2.4-1.3-3.5-.4-1.1.8-1.3 2.4-.4 3.5l12.3 15.7"/></g><path d="m13.1 15.6c-.1.1-.2.2-.3.3 1-.5 2.4-.3 3.1.6l12.3 15.7.7-.5-12.3-15.7c-.8-1-2.4-1.2-3.5-.4" fill="#935e3e"/><path d="m17 41.1l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#b47d56"/><path d="m4.8 21.4c-.1.1-.2.2-.3.3 1.1-.6 2.4-.3 3.2.7l7.8 10 1.5.5-8.6-11c-.8-1.2-2.5-1.4-3.6-.5" fill="#935e3e"/><path d="m20 36.6l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#b47d56"/><g fill="#935e3e"><path d="m7.8 17c-.1.1-.2.2-.3.3 1.1-.6 2.5-.3 3.2.7l8.9 11.3 1.5.5-9.6-12.3c-.9-1.2-2.6-1.4-3.7-.5"/><path d="m2.9 26.8c-.1.1-.2.2-.3.3 1-.5 2.2-.2 2.9.7l6.4 8.2 1.5.5-7.2-9.2c-.8-1.1-2.3-1.3-3.3-.5"/></g><path d="m32.3 18.5c-1.9-.9-4.2 1-4.5 5.6-.2 3.2-.1 4-1.8 5.3l-1.5-1.9c0 0-14.9 11.7-13.9 12.9 0 0 3.4 5.8 7.4 7.9 6 3.2 16.7-4 14.8-15.3-1.3-6.7 1.5-13.5-.5-14.5" fill="#b47d56"/><g fill="#935e3e"><path d="m32.3 18.5c-.4-.2-.7-.2-1.1-.2.1 0 .2.1.3.1 2 1 .9 4.5.5 7.5-.3 2.4-.5 4.9.1 7 2.6 9.6-6.1 16.4-12.4 15.9 6.3 1.2 15.9-5.7 13.2-15.7-.6-2.2-.4-4.5-.1-7 .4-3.1 1.5-6.6-.5-7.6"/><path d="m26.4 29c-3.5 1.2-7.8 7.6-2.7 12.5-4-5.1-.4-10 2.2-12 .3-.3.5-.5.5-.5"/></g><g fill="#b47d56"><path d="m61.1 26.7c1 .8 1.2 2.3.4 3.3l-10.8 13.8-3.7-2.8 10.8-13.8c.8-1.1 2.3-1.3 3.3-.5"/><path d="m39 34.7l-3.9-3 12.3-15.7c.8-1.1 2.4-1.3 3.5-.4 1.1.8 1.3 2.4.4 3.5l-12.3 15.6"/></g><path d="m50.9 15.5c.1.1.2.2.3.3-1-.5-2.4-.3-3.1.6l-12.3 15.8-.7-.5 12.3-15.7c.8-1.1 2.4-1.3 3.5-.5" fill="#935e3e"/><path d="m47 41l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#b47d56"/><path d="m59.2 21.3c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-7.8 10-1.5.5 8.6-11c.8-1.1 2.5-1.3 3.6-.5" fill="#935e3e"/><path d="m44 36.5l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#b47d56"/><g fill="#935e3e"><path d="m56.2 16.9c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-8.8 11.3-1.5.5 9.6-12.3c.8-1.2 2.5-1.4 3.6-.5"/><path d="m61.1 26.7c.1.1.2.2.3.3-1-.5-2.2-.2-2.9.7l-6.4 8.2-1.5.5 7.2-9.2c.8-1.1 2.3-1.3 3.3-.5"/></g><path d="m31.7 18.5c1.9-.9 4.2 1 4.5 5.6.2 3.2.1 4 1.8 5.3l1.5-1.9c0 0 14.9 11.7 13.9 12.9 0 0-3.4 5.8-7.4 7.9-6 3.2-16.7-4-14.8-15.3 1.3-6.8-1.5-13.6.5-14.5" fill="#b47d56"/><g fill="#935e3e"><path d="m31.7 18.5c.4-.2.7-.2 1.1-.2-.1 0-.2.1-.3.1-2 1-.9 4.5-.5 7.5.3 2.4.5 4.9-.1 7-2.6 9.6 6.1 16.4 12.4 15.9-6.3 1.2-15.9-5.8-13.2-15.8.6-2.2.4-4.5.1-7-.4-3.1-1.5-6.6.5-7.5"/><path d="m37.6 28.9c3.5 1.2 7.8 7.6 2.7 12.5 4-5.1.4-10-2.2-12-.3-.3-.5-.5-.5-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3ff.svg
index d3d09aa..d7dc914 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f450-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m25.22 34.951l3.769-2.82-12.337-16.1c-.825-1.078-2.358-1.346-3.394-.571l-.011.009c-1.037.777-1.191 2.304-.338 3.415l12.311 16.07"/><path d="m20.773 38.28l4.45-3.332-13.371-17.455c-1.01-1.316-2.821-1.642-4.05-.722-1.229.919-1.409 2.737-.397 4.054l13.368 17.455"/><path d="m16.894 41.19l3.88-2.907-12.586-16.43c-.88-1.147-2.459-1.428-3.527-.629l-.007.005c-1.07.801-1.225 2.379-.346 3.528l12.586 16.433"/><path d="m2.832 26.467c-.995.744-1.105 2.187-.29 3.252l10.814 14.12 3.537-2.646-10.814-14.12c-.817-1.064-2.249-1.351-3.247-.603"/></g><g fill="#705041"><path d="m13.263 15.457l-.011.009c-.112.084-.21.181-.302.28 1.01-.489 2.299-.177 3.037.783l12.333 16.11.672-.502-12.336-16.1c-.825-1.078-2.358-1.346-3.393-.571"/><path d="m7.802 16.773c-.114.086-.214.188-.309.289 1.2-.626 2.775-.257 3.689.936l13.369 17.455.672-.502-13.371-17.455c-1.01-1.317-2.822-1.642-4.05-.723"/><path d="m4.66 21.22l-.007.005c-.114.086-.214.184-.306.284 1.041-.512 2.385-.185 3.17.841l12.585 16.432.671-.503-12.585-16.43c-.88-1.148-2.459-1.428-3.528-.629"/><path d="m2.832 26.467c-.115.086-.215.183-.305.286.957-.452 2.16-.123 2.882.819l10.813 14.12.672-.5-10.815-14.12c-.817-1.064-2.249-1.351-3.247-.603"/></g><path fill="#8a6859" d="m32.32 20.437c-1.772-.854-4.02.935-4.41 5.234-.277 3-.178 2.715-1.874 3.985l-1.515-1.978c0 0-5.745-.031-12.03 6.647 0 0-3.671 3.675-2.01 5.848 0 0 3.383 5.855 7.405 8.117 5.988 3.368 18.13-3.65 15.13-14.773-.595-2.213-.387-3.52-.3-5.928.102-2.901 1.537-6.214-.409-7.152"/><g fill="#705041"><path d="m32.32 20.437c-.335-.161-.69-.227-1.044-.2.081.028.163.055.243.094 1.945.935.51 4.249.406 7.151-.084 2.406-.331 3.698.265 5.91 2.595 9.646-6.181 16.197-12.465 15.577 6.302 1.337 16.02-5.372 13.304-15.452-.595-2.213-.387-3.52-.3-5.928.102-2.901 1.537-6.214-.409-7.152"/><path d="m22.58 42.08c-2.238-2.923-1.877-6.927.782-9.03-.642.146-1.258.413-1.808.824-2.254 1.687-2.581 5.02-.728 7.436.809 1.056 1.899 1.759 3.061 2.081-.475-.373-.919-.806-1.307-1.312"/><path d="m24.726 27.668c-4.646.292-12.768 6.248-14.559 10.902.251-5.893 10.381-12.187 14.559-10.902"/></g><g fill="#8a6859"><path d="m39.476 35.17l-4.03-2.656 10.733-16.59c.718-1.11 2.22-1.444 3.33-.713l.012.007c1.111.73 1.412 2.249.672 3.393l-10.714 16.559"/><path d="m44.24 38.31l-4.769-3.137 11.638-17.987c.877-1.357 2.656-1.759 3.974-.892 1.316.866 1.671 2.671.792 4.03l-11.635 17.986"/><path d="m48.4 41.05l-4.154-2.735 10.951-16.93c.767-1.183 2.317-1.532 3.46-.78l.009.006c1.146.754 1.452 2.323.688 3.508l-10.954 16.931"/><path d="m60.991 25.757c1.067.702 1.317 2.135.608 3.234l-9.412 14.545-3.789-2.491 9.412-14.549c.711-1.096 2.113-1.441 3.181-.739"/></g><g fill="#705041"><path d="m49.51 15.213l.012.007c.12.078.229.172.329.268-1.052-.448-2.312-.082-2.954.909l-10.734 16.592-.717-.472 10.733-16.59c.719-1.111 2.221-1.445 3.331-.714"/><path d="m55.09 16.294c.122.08.232.177.334.274-1.258-.575-2.796-.142-3.592 1.09l-11.634 17.987-.72-.472 11.638-17.987c.877-1.357 2.657-1.759 3.974-.892"/><path d="m58.655 20.601l.009.006c.122.081.23.174.33.271-1.088-.466-2.396-.083-3.081.974l-10.951 16.93-.718-.473 10.951-16.929c.767-1.183 2.318-1.531 3.46-.779"/><path d="m60.991 25.757c.123.082.232.173.332.272-.998-.409-2.168-.029-2.796.941l-9.41 14.546-.719-.472 9.412-14.549c.711-1.095 2.113-1.44 3.181-.738"/></g><path fill="#8a6859" d="m30.973 20.988c1.688-.926 4.104.761 4.914 5.03.567 2.983.443 2.703 2.259 3.898l1.318-2.038c0 0 5.731-.274 12.648 6.124 0 0 4.02 3.515 2.576 5.752 0 0-2.805 5.987-6.598 8.416-5.646 3.613-18.447-2.879-16.548-14.11.378-2.233.042-3.528-.278-5.928-.385-2.889-2.142-6.135-.291-7.152"/><g fill="#705041"><path d="m30.973 20.988c.32-.177.666-.256 1.021-.245-.077.031-.156.062-.232.104-1.85 1.017-.093 4.262.295 7.153.318 2.398.691 3.678.313 5.909-1.646 9.734 7.751 15.904 13.962 15.02-6.16 1.602-16.508-4.683-14.788-14.858.378-2.233.042-3.528-.278-5.928-.387-2.89-2.144-6.136-.293-7.153"/><path d="m42.81 42.17c1.948-3.01 1.196-6.995-1.661-8.977.654.118 1.294.357 1.883.743 2.413 1.59 3.068 4.899 1.455 7.391-.703 1.09-1.727 1.835-2.852 2.206.437-.391.837-.841 1.175-1.363"/><path d="m39.26 27.882c4.665.096 13.354 5.695 15.596 10.263-.826-5.87-11.551-11.722-15.596-10.263"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m2.9 26.8c-1 .8-1.2 2.3-.4 3.3l10.8 13.8 3.7-2.9-10.8-13.7c-.8-1.1-2.3-1.3-3.3-.5"/><path d="m25 34.8l3.9-3-12.3-15.8c-.8-1.1-2.4-1.3-3.5-.4-1.1.8-1.3 2.4-.4 3.5l12.3 15.7"/></g><path d="m13.1 15.6c-.1.1-.2.2-.3.3 1-.5 2.4-.3 3.1.6l12.3 15.7.7-.5-12.3-15.7c-.8-1-2.4-1.2-3.5-.4" fill="#705041"/><path d="m17 41.1l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#8a6859"/><path d="m4.8 21.4c-.1.1-.2.2-.3.3 1.1-.6 2.4-.3 3.2.7l7.8 10 1.5.5-8.6-11c-.8-1.2-2.5-1.4-3.6-.5" fill="#705041"/><path d="m20 36.6l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#8a6859"/><g fill="#705041"><path d="m7.8 17c-.1.1-.2.2-.3.3 1.1-.6 2.5-.3 3.2.7l8.9 11.3 1.5.5-9.6-12.3c-.9-1.2-2.6-1.4-3.7-.5"/><path d="m2.9 26.8c-.1.1-.2.2-.3.3 1-.5 2.2-.2 2.9.7l6.4 8.2 1.5.5-7.2-9.2c-.8-1.1-2.3-1.3-3.3-.5"/></g><path d="m32.3 18.5c-1.9-.9-4.2 1-4.5 5.6-.2 3.2-.1 4-1.8 5.3l-1.5-1.9c0 0-14.9 11.7-13.9 12.9 0 0 3.4 5.8 7.4 7.9 6 3.2 16.7-4 14.8-15.3-1.3-6.7 1.5-13.5-.5-14.5" fill="#8a6859"/><g fill="#705041"><path d="m32.3 18.5c-.4-.2-.7-.2-1.1-.2.1 0 .2.1.3.1 2 1 .9 4.5.5 7.5-.3 2.4-.5 4.9.1 7 2.6 9.6-6.1 16.4-12.4 15.9 6.3 1.2 15.9-5.7 13.2-15.7-.6-2.2-.4-4.5-.1-7 .4-3.1 1.5-6.6-.5-7.6"/><path d="m26.4 29c-3.5 1.2-7.8 7.6-2.7 12.5-4-5.1-.4-10 2.2-12 .3-.3.5-.5.5-.5"/></g><g fill="#8a6859"><path d="m61.1 26.7c1 .8 1.2 2.3.4 3.3l-10.8 13.8-3.7-2.8 10.8-13.8c.8-1.1 2.3-1.3 3.3-.5"/><path d="m39 34.7l-3.9-3 12.3-15.7c.8-1.1 2.4-1.3 3.5-.4 1.1.8 1.3 2.4.4 3.5l-12.3 15.6"/></g><path d="m50.9 15.5c.1.1.2.2.3.3-1-.5-2.4-.3-3.1.6l-12.3 15.8-.7-.5 12.3-15.7c.8-1.1 2.4-1.3 3.5-.5" fill="#705041"/><path d="m47 41l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#8a6859"/><path d="m59.2 21.3c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-7.8 10-1.5.5 8.6-11c.8-1.1 2.5-1.3 3.6-.5" fill="#705041"/><path d="m44 36.5l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#8a6859"/><g fill="#705041"><path d="m56.2 16.9c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-8.8 11.3-1.5.5 9.6-12.3c.8-1.2 2.5-1.4 3.6-.5"/><path d="m61.1 26.7c.1.1.2.2.3.3-1-.5-2.2-.2-2.9.7l-6.4 8.2-1.5.5 7.2-9.2c.8-1.1 2.3-1.3 3.3-.5"/></g><path d="m31.7 18.5c1.9-.9 4.2 1 4.5 5.6.2 3.2.1 4 1.8 5.3l1.5-1.9c0 0 14.9 11.7 13.9 12.9 0 0-3.4 5.8-7.4 7.9-6 3.2-16.7-4-14.8-15.3 1.3-6.8-1.5-13.6.5-14.5" fill="#8a6859"/><g fill="#705041"><path d="m31.7 18.5c.4-.2.7-.2 1.1-.2-.1 0-.2.1-.3.1-2 1-.9 4.5-.5 7.5.3 2.4.5 4.9-.1 7-2.6 9.6 6.1 16.4 12.4 15.9-6.3 1.2-15.9-5.8-13.2-15.8.6-2.2.4-4.5.1-7-.4-3.1-1.5-6.6.5-7.5"/><path d="m37.6 28.9c3.5 1.2 7.8 7.6 2.7 12.5 4-5.1.4-10-2.2-12-.3-.3-.5-.5-.5-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f450.svg b/build/js/jsxc/lib/emojione/assets/svg/1f450.svg
index 49f8760..d910626 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f450.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f450.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m25.22 34.95l3.768-2.819-12.335-16.1c-.825-1.078-2.358-1.347-3.394-.571l-.011.01c-1.037.776-1.19 2.304-.337 3.414l12.309 16.07"/><path d="m20.774 38.28l4.45-3.332-13.372-17.455c-1.01-1.316-2.82-1.643-4.05-.722-1.229.919-1.409 2.737-.397 4.054l13.369 17.455"/><path d="m16.894 41.19l3.88-2.907-12.585-16.43c-.881-1.147-2.46-1.428-3.528-.629l-.007.005c-1.07.801-1.224 2.379-.345 3.528l12.585 16.433"/><path d="m2.833 26.466c-.996.744-1.106 2.187-.291 3.252l10.814 14.12 3.537-2.646-10.813-14.12c-.817-1.065-2.248-1.352-3.247-.604"/></g><g fill="#eba352"><path d="m13.263 15.456l-.011.01c-.112.083-.21.181-.301.28 1.01-.489 2.298-.177 3.036.784l12.333 16.1.672-.502-12.335-16.1c-.825-1.078-2.359-1.346-3.394-.571"/><path d="m7.802 16.773c-.114.086-.214.188-.309.288 1.2-.626 2.775-.258 3.689.936l13.369 17.455.672-.502-13.371-17.455c-1.01-1.316-2.82-1.643-4.05-.722"/><path d="m4.661 21.22l-.007.005c-.114.086-.213.184-.305.284 1.04-.512 2.383-.185 3.17.841l12.584 16.432.671-.503-12.585-16.43c-.881-1.148-2.46-1.428-3.528-.629"/><path d="m2.833 26.466c-.116.086-.215.183-.306.286.957-.452 2.16-.122 2.882.82l10.813 14.12.671-.5-10.813-14.12c-.817-1.065-2.248-1.352-3.247-.604"/></g><path fill="#ffdd67" d="m32.32 20.436c-1.772-.854-4.02.935-4.41 5.234-.277 3-.178 2.715-1.874 3.985l-1.515-1.978c0 0-5.745-.031-12.03 6.647 0 0-3.671 3.675-2.01 5.848 0 0 3.382 5.855 7.404 8.118 5.988 3.368 18.13-3.651 15.13-14.774-.595-2.213-.386-3.52-.3-5.928.102-2.901 1.536-6.214-.409-7.152"/><g fill="#eba352"><path d="m32.32 20.436c-.335-.161-.69-.227-1.044-.2.081.028.163.055.243.094 1.945.936.511 4.25.406 7.151-.084 2.405-.33 3.698.265 5.91 2.595 9.646-6.181 16.196-12.465 15.576 6.303 1.337 16.01-5.372 13.304-15.452-.595-2.213-.386-3.52-.3-5.928.102-2.9 1.536-6.213-.409-7.151"/><path d="m22.581 42.08c-2.237-2.924-1.877-6.928.782-9.03-.642.146-1.257.413-1.808.823-2.254 1.688-2.581 5.02-.728 7.437.81 1.055 1.9 1.758 3.062 2.08-.476-.373-.92-.805-1.308-1.311"/><path d="m24.726 27.667c-4.646.292-12.768 6.249-14.559 10.902.251-5.893 10.381-12.186 14.559-10.902"/></g><g fill="#ffdd67"><path d="m39.476 35.17l-4.03-2.656 10.733-16.59c.718-1.11 2.221-1.444 3.331-.713l.011.007c1.112.73 1.412 2.249.672 3.393l-10.714 16.559"/><path d="m44.24 38.31l-4.77-3.137 11.638-17.987c.877-1.357 2.657-1.759 3.974-.892 1.316.867 1.672 2.671.793 4.03l-11.635 17.986"/><path d="m48.4 41.04l-4.152-2.735 10.951-16.929c.766-1.183 2.316-1.531 3.46-.779l.008.006c1.146.753 1.453 2.323.688 3.507l-10.955 16.93"/><path d="m60.991 25.757c1.066.701 1.316 2.135.608 3.233l-9.411 14.546-3.791-2.492 9.414-14.549c.71-1.095 2.112-1.441 3.18-.738"/></g><g fill="#eba352"><path d="m49.51 15.212l.011.007c.121.078.229.171.329.269-1.052-.448-2.312-.082-2.953.909l-10.734 16.591-.718-.473 10.733-16.59c.719-1.11 2.221-1.444 3.332-.713"/><path d="m55.09 16.293c.122.08.232.177.335.274-1.259-.575-2.796-.142-3.593 1.09l-11.634 17.988-.72-.473 11.638-17.987c.877-1.357 2.658-1.759 3.974-.892"/><path d="m58.656 20.6l.008.006c.122.08.231.174.331.271-1.089-.466-2.396-.083-3.082.974l-10.951 16.93-.717-.473 10.951-16.929c.766-1.183 2.317-1.531 3.46-.779"/><path d="m60.991 25.757c.124.082.232.173.332.271-.997-.408-2.168-.029-2.795.941l-9.41 14.546-.721-.472 9.414-14.549c.71-1.094 2.112-1.44 3.18-.737"/></g><path fill="#ffdd67" d="m30.973 20.987c1.688-.926 4.103.761 4.914 5.03.567 2.983.443 2.703 2.259 3.898l1.318-2.037c0 0 5.731-.274 12.648 6.124 0 0 4.02 3.515 2.576 5.751 0 0-2.805 5.988-6.598 8.416-5.646 3.613-18.447-2.879-16.546-14.11.378-2.233.041-3.528-.279-5.927-.385-2.889-2.141-6.136-.292-7.153"/><g fill="#eba352"><path d="m30.973 20.987c.32-.177.666-.256 1.022-.245-.078.031-.157.062-.232.103-1.851 1.018-.094 4.263.293 7.153.319 2.399.692 3.678.313 5.909-1.646 9.734 7.75 15.904 13.962 15.02-6.16 1.601-16.508-4.684-14.788-14.859.378-2.233.041-3.528-.279-5.927-.384-2.889-2.14-6.136-.291-7.153"/><path d="m42.811 42.17c1.948-3.01 1.195-6.996-1.662-8.978.654.119 1.295.357 1.883.744 2.414 1.589 3.068 4.898 1.455 7.39-.703 1.09-1.726 1.835-2.852 2.206.438-.391.837-.841 1.176-1.362"/><path d="m39.26 27.881c4.664.096 13.354 5.696 15.595 10.263-.826-5.87-11.551-11.722-15.595-10.263"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m2.9 26.8c-1 .8-1.2 2.3-.4 3.3l10.8 13.8 3.7-2.9-10.8-13.7c-.8-1.1-2.3-1.3-3.3-.5"/><path d="m25 34.8l3.9-3-12.3-15.8c-.8-1.1-2.4-1.3-3.5-.4-1.1.8-1.3 2.4-.4 3.5l12.3 15.7"/></g><path d="m13.1 15.6c-.1.1-.2.2-.3.3 1-.5 2.4-.3 3.1.6l12.3 15.7.7-.5-12.3-15.7c-.8-1-2.4-1.2-3.5-.4" fill="#eba352"/><path d="m17 41.1l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#ffdd67"/><path d="m4.8 21.4c-.1.1-.2.2-.3.3 1.1-.6 2.4-.3 3.2.7l7.8 10 1.5.5-8.6-11c-.8-1.2-2.5-1.4-3.6-.5" fill="#eba352"/><path d="m20 36.6l4-3.1-12.6-16.1c-.9-1.1-2.5-1.3-3.6-.5-1.1.9-1.3 2.5-.4 3.6l12.6 16.1" fill="#ffdd67"/><g fill="#eba352"><path d="m7.8 17c-.1.1-.2.2-.3.3 1.1-.6 2.5-.3 3.2.7l8.9 11.3 1.5.5-9.6-12.3c-.9-1.2-2.6-1.4-3.7-.5"/><path d="m2.9 26.8c-.1.1-.2.2-.3.3 1-.5 2.2-.2 2.9.7l6.4 8.2 1.5.5-7.2-9.2c-.8-1.1-2.3-1.3-3.3-.5"/></g><path d="m32.3 18.5c-1.9-.9-4.2 1-4.5 5.6-.2 3.2-.1 4-1.8 5.3l-1.5-1.9c0 0-14.9 11.7-13.9 12.9 0 0 3.4 5.8 7.4 7.9 6 3.2 16.7-4 14.8-15.3-1.3-6.7 1.5-13.5-.5-14.5" fill="#ffdd67"/><g fill="#eba352"><path d="m32.3 18.5c-.4-.2-.7-.2-1.1-.2.1 0 .2.1.3.1 2 1 .9 4.5.5 7.5-.3 2.4-.5 4.9.1 7 2.6 9.6-6.1 16.4-12.4 15.9 6.3 1.2 15.9-5.7 13.2-15.7-.6-2.2-.4-4.5-.1-7 .4-3.1 1.5-6.6-.5-7.6"/><path d="m26.4 29c-3.5 1.2-7.8 7.6-2.7 12.5-4-5.1-.4-10 2.2-12 .3-.3.5-.5.5-.5"/></g><g fill="#ffdd67"><path d="m61.1 26.7c1 .8 1.2 2.3.4 3.3l-10.8 13.8-3.7-2.8 10.8-13.8c.8-1.1 2.3-1.3 3.3-.5"/><path d="m39 34.7l-3.9-3 12.3-15.7c.8-1.1 2.4-1.3 3.5-.4 1.1.8 1.3 2.4.4 3.5l-12.3 15.6"/></g><path d="m50.9 15.5c.1.1.2.2.3.3-1-.5-2.4-.3-3.1.6l-12.3 15.8-.7-.5 12.3-15.7c.8-1.1 2.4-1.3 3.5-.5" fill="#eba352"/><path d="m47 41l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#ffdd67"/><path d="m59.2 21.3c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-7.8 10-1.5.5 8.6-11c.8-1.1 2.5-1.3 3.6-.5" fill="#eba352"/><path d="m44 36.5l-4-3.1 12.6-16.1c.9-1.1 2.5-1.3 3.6-.5 1.1.9 1.3 2.5.4 3.6l-12.6 16.1" fill="#ffdd67"/><g fill="#eba352"><path d="m56.2 16.9c.1.1.2.2.3.3-1.1-.6-2.4-.3-3.2.7l-8.8 11.3-1.5.5 9.6-12.3c.8-1.2 2.5-1.4 3.6-.5"/><path d="m61.1 26.7c.1.1.2.2.3.3-1-.5-2.2-.2-2.9.7l-6.4 8.2-1.5.5 7.2-9.2c.8-1.1 2.3-1.3 3.3-.5"/></g><path d="m31.7 18.5c1.9-.9 4.2 1 4.5 5.6.2 3.2.1 4 1.8 5.3l1.5-1.9c0 0 14.9 11.7 13.9 12.9 0 0-3.4 5.8-7.4 7.9-6 3.2-16.7-4-14.8-15.3 1.3-6.8-1.5-13.6.5-14.5" fill="#ffdd67"/><g fill="#eba352"><path d="m31.7 18.5c.4-.2.7-.2 1.1-.2-.1 0-.2.1-.3.1-2 1-.9 4.5-.5 7.5.3 2.4.5 4.9-.1 7-2.6 9.6 6.1 16.4 12.4 15.9-6.3 1.2-15.9-5.8-13.2-15.8.6-2.2.4-4.5.1-7-.4-3.1-1.5-6.6.5-7.5"/><path d="m37.6 28.9c3.5 1.2 7.8 7.6 2.7 12.5 4-5.1.4-10-2.2-12-.3-.3-.5-.5-.5-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f451.svg b/build/js/jsxc/lib/emojione/assets/svg/1f451.svg
index a44e2c6..ce7da0a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f451.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f451.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m52.877 42.881c-1.49-10.432-10.27-18.441-20.876-18.441-10.608 0-19.389 8.01-20.879 18.441h41.755"/><path fill="#f2b200" d="m61.8 22.935c-.418-1.782-1.494-3.213-3.115-4.137l-.002-.002c-.716-.405-1.489-.643-2.304-.706-.684-.054-1.385.014-2.143.204-1.209.305-2.367.883-3.486 1.439-1.49.741-2.896 1.443-4.195 1.443v4.602c2.336 0 4.369-1.013 6.164-1.906 1.865-.93 3.051-1.465 3.775-1.055.527.302.805.657.93 1.19.139.584.088 1.396-.145 2.346-.236.979-.668 2.12-1.277 3.391-1.18 2.454-2.783 4.897-3.953 6.683-.445.676-.828 1.261-1.117 1.736v.003c-.117.193-.23.378-.342.558-.039.063-.074.122-.111.185h-36.958c-.038-.063-.073-.121-.112-.185-.111-.18-.225-.364-.34-.558l-.002-.003c-.289-.476-.672-1.061-1.117-1.736-1.17-1.785-2.773-4.229-3.951-6.683-.611-1.271-1.041-2.411-1.279-3.391-.232-.95-.281-1.762-.145-2.346.125-.533.402-.889.93-1.19.725-.41 1.91.125 3.775 1.055 1.795.894 3.828 1.906 6.164 1.906v-4.602c-1.299 0-2.705-.702-4.195-1.443-1.119-.557-2.277-1.135-3.486-1.439-.758-.19-1.459-.258-2.143-.204-.814.063-1.588.301-2.301.706l-.004.002c-1.619.924-2.697 2.354-3.115 4.137-.549 2.34.027 5.231 1.76 8.84 1.313 2.731 3.01 5.323 4.256 7.217.42.639.781 1.19 1.027 1.598.123.203.24.395.354.579.576.939.981 1.604 1.25 2.41v11.261c-.299 0-.539.247-.539.553 0 .305.24.551.539.551h42.31c.299 0 .541-.246.541-.551 0-.306-.242-.553-.541-.553v-11.259c.269-.808.674-1.473 1.25-2.413.113-.185.23-.376.354-.579.246-.407.607-.959 1.027-1.598 1.242-1.894 2.944-4.485 4.257-7.217 1.731-3.608 2.308-6.5 1.759-8.839"/><path fill="#42ade2" d="m32.855 27.21c.537 1.62-1.978 3.96-5.619 5.226-3.643 1.264-7.03.975-7.568-.646-.54-1.621 1.979-3.96 5.621-5.225s7.03-.975 7.566.645"/><path fill="#ffdd7d" d="m29.577 44.619h4.845v10.766h-4.845z"/><path fill="#ffce31" d="m37.818 44.619h4.846v10.766h-4.846z"/><path fill="#fff" d="m34.422 44.619h3.396v10.766h-3.396z"/><path fill="#ffce31" d="m46.01 44.619h3.396v10.766h-3.396z"/><path fill="#f2b200" d="m10.847 44.625h3.396v10.767h-3.396z"/><path fill="#ffce31" d="m14.558 44.619h6.599v10.766h-6.599z"/><g fill="#f2b200"><path d="m28.438 34.928c0 1.507-2.666 5.319-2.666 5.319s-2.666-3.813-2.666-5.319c0-1.506 1.193-2.728 2.666-2.728s2.666 1.222 2.666 2.728"/><path d="m40.895 34.928c0 1.507-2.666 5.319-2.666 5.319s-2.666-3.813-2.666-5.319c0-1.506 1.195-2.728 2.666-2.728 1.472 0 2.666 1.222 2.666 2.728"/></g><path fill="#66caf2" d="m38.27 12.593h-12.541l2.923-4.651h6.468z"/><g fill="#ffce31"><path d="m12.05 32.778c2.443-2.292 7.196-3.522 10.431-2.574-2.448 2.319-7.186 3.487-10.431 2.574"/><path d="m52.1 32.778c-3.245.913-7.982-.255-10.43-2.574 3.237-.948 7.984.283 10.43 2.574"/><path d="m26.637 30.11c2.922-1.661 7.807-1.673 10.727 0-2.931 1.685-7.791 1.644-10.727 0"/></g><path fill="#428bc1" d="m32.965 7.942l1.125 4.651h4.18l-3.15-4.651z"/><path fill="#42ade2" d="m32.965 7.942h-2.155l-.909 4.651h4.179z"/><path fill="#66caf2" d="m30.81 7.942l-.909 4.651h-4.172l2.923-4.651z"/><path fill="#ffdd7d" d="m11.493 41.67c6.815-.518 13.685-.575 20.516-.575 6.833 0 13.697.066 20.515.575-6.813.525-13.684.575-20.515.575-6.829 0-13.703-.044-20.516-.575"/><g fill="#428bc1"><path d="m10.847 44.56h42.31v1.104h-42.31z"/><ellipse cx="10.846" cy="45.11" rx=".54" ry=".552"/><ellipse cx="53.15" cy="45.11" rx=".54" ry=".552"/></g><path fill="#ffce31" d="m50.711 20.419c-.281-1.112-.74-2.116-1.363-2.977-.674-.936-1.541-1.711-2.58-2.304h-.004c-.771-.439-1.609-.697-2.49-.765-.744-.059-1.512.016-2.342.225-1.34.339-2.643.987-3.902 1.614-.35.174-.703.349-1.056.518.757-1.602 1.298-3.102 1.298-4.137h-12.543c0 1.035.541 2.535 1.299 4.137-.354-.169-.707-.343-1.057-.518-1.26-.627-2.561-1.275-3.902-1.614-.83-.209-1.596-.283-2.342-.225-.882.067-1.72.325-2.491.765h-.004c-1.037.593-1.906 1.368-2.58 2.304-.623.86-1.08 1.864-1.363 2.977-.727 2.874-.299 6.551 1.273 10.928 1.212 3.373 2.763 6.224 3.539 7.562h5.274c-.229-.398-.468-.799-.723-1.215-.125-.205-.256-.416-.389-.635v-.004c-2.084-3.434-5.731-11.09-4.62-15.481.281-1.115.848-1.881 1.777-2.414.296-.167.714-.309 1.571-.093.877.221 1.914.737 3.01 1.283 1.712.854 3.623 1.798 5.749 2.061l.009 16.498h4.497l-.009-16.498c2.127-.263 4.04-1.208 5.75-2.061 1.098-.546 2.133-1.063 3.01-1.283.857-.216 1.275-.074 1.57.093.93.533 1.496 1.299 1.777 2.414 1.111 4.393-2.535 12.05-4.617 15.481l-.002.004c-.133.219-.264.43-.389.635-.255.416-.494.816-.724 1.215h5.274c.777-1.338 2.327-4.188 3.539-7.562 1.575-4.377 2-8.05 1.276-10.928"/><path fill="#f2b200" d="m32 17.15c-1.689 0-3.222-.66-4.351-1.73.271 2.216 2.118 3.93 4.356 3.93 2.245 0 4.095-1.722 4.358-3.945-1.128 1.079-2.667 1.745-4.363 1.745"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M52.9,42.9C51.4,32.4,42.6,24.4,32,24.4c-10.6,0-19.4,8-20.9,18.4H52.9z" fill="#428bc1"/><path d="m61.8 22.9c-.4-1.8-1.5-3.2-3.1-4.1-.7-.4-1.5-.6-2.3-.7-.7-.1-1.4 0-2.1.2-1.2.3-2.4.9-3.5 1.4-1.5.7-2.9 1.4-4.2 1.4v4.6c2.3 0 4.4-1 6.2-1.9 1.9-.9 3.1-1.5 3.8-1.1.5.3.8.7.9 1.2.1.6.1 1.4-.1 2.3-.2 1-.7 2.1-1.3 3.4-1.2 2.5-2.8 4.9-4 6.7-.4.7-.8 1.3-1.1 1.7-.1.2-.2.4-.3.6 0 .1-.1.1-.1.2h-37c0-.1-.1-.1-.1-.2-.1-.2-.2-.4-.3-.6-.3-.5-.7-1.1-1.1-1.7-1.2-1.8-2.8-4.2-4-6.7-.6-1.3-1-2.4-1.3-3.4-.2-1-.3-1.8-.1-2.3.1-.5.4-.9.9-1.2.7-.4 1.9.1 3.8 1.1 1.8.9 3.8 1.9 6.2 1.9v-4.6c-1.3 0-2.7-.7-4.2-1.4-1.1-.6-2.3-1.1-3.5-1.4-.9-.2-1.6-.3-2.3-.2-.8.1-1.6.3-2.3.7-1.6.9-2.7 2.4-3.1 4.1-.5 2.3 0 5.2 1.8 8.8 1.3 2.7 3 5.3 4.3 7.2.4.6.8 1.2 1 1.6.1.2.2.4.4.6.6.9 1 1.6 1.2 2.4v11.3c-.3 0-.5.2-.5.6 0 .3.2.6.5.6h42.3c.3 0 .5-.2.5-.6 0-.3-.2-.6-.5-.6v-11.2c.3-.8.7-1.5 1.2-2.4.1-.2.2-.4.4-.6.2-.4.6-1 1-1.6 1.2-1.9 2.9-4.5 4.3-7.2 1.7-3.6 2.2-6.5 1.7-8.9" fill="#f2b200"/><path d="m32.9 27.2c.5 1.6-2 4-5.6 5.2-3.6 1.3-7 1-7.6-.6-.5-1.6 2-4 5.6-5.2s7-1 7.6.6" fill="#42ade2"/><path fill="#ffdd7d" d="m29.6 44.6h4.8v10.8h-4.8z"/><path fill="#ffce31" d="m37.8 44.6h4.8v10.8h-4.8z"/><path fill="#fff" d="m34.4 44.6h3.4v10.8h-3.4z"/><path fill="#ffce31" d="m46 44.6h3.4v10.8h-3.4z"/><path fill="#f2b200" d="m10.8 44.6h3.4v10.8h-3.4z"/><path fill="#ffce31" d="m14.6 44.6h6.6v10.8h-6.6z"/><g fill="#f2b200"><path d="m28.4 34.9c0 1.5-2.7 5.3-2.7 5.3s-2.7-3.8-2.7-5.3 1.2-2.7 2.7-2.7 2.7 1.2 2.7 2.7"/><path d="m40.9 34.9c0 1.5-2.7 5.3-2.7 5.3s-2.7-3.8-2.7-5.3 1.2-2.7 2.7-2.7c1.5 0 2.7 1.2 2.7 2.7"/></g><path fill="#66caf2" d="m38.3 12.6h-12.6l3-4.7h6.4z"/><g fill="#ffce31"><path d="m12.1 32.8c2.4-2.3 7.2-3.5 10.4-2.6-2.5 2.3-7.2 3.5-10.4 2.6"/><path d="m52.1 32.8c-3.2.9-8-.3-10.4-2.6 3.2-.9 8 .3 10.4 2.6"/><path d="m26.6 30.1c2.9-1.7 7.8-1.7 10.7 0-2.9 1.7-7.7 1.7-10.7 0"/></g><path fill="#428bc1" d="m33 7.9l1.1 4.7h4.2l-3.2-4.7z"/><path fill="#42ade2" d="m33 7.9h-2.2l-.9 4.7h4.2z"/><path fill="#66caf2" d="m30.8 7.9l-.9 4.7h-4.2l3-4.7z"/><path d="m11.5 41.7c6.8-.5 13.7-.6 20.5-.6 6.8 0 13.7.1 20.5.6-6.8.5-13.7.6-20.5.6-6.8-.1-13.7-.1-20.5-.6" fill="#ffdd7d"/><g fill="#428bc1"><path d="m10.8 44.6h42.3v1.1h-42.3z"/><ellipse cx="10.8" cy="45.1" rx=".5" ry=".6"/><ellipse cx="53.2" cy="45.1" rx=".5" ry=".6"/></g><path d="m50.7 20.4c-.3-1.1-.7-2.1-1.4-3-.7-.9-1.5-1.7-2.6-2.3-.8-.4-1.6-.7-2.5-.8-.7-.1-1.5 0-2.3.2-1.3.3-2.6 1-3.9 1.6-.3.2-.7.3-1.1.5.8-1.6 1.3-3.1 1.3-4.1h-12.5c0 1 .5 2.5 1.3 4.1-.4-.2-.7-.3-1.1-.5-1.3-.6-2.6-1.3-3.9-1.6-.8-.2-1.6-.3-2.3-.2-.9.1-1.7.3-2.5.8-1 .6-1.9 1.4-2.6 2.3-.6.9-1.1 1.9-1.4 3-.7 2.9-.3 6.6 1.3 10.9 1.2 3.4 2.8 6.2 3.5 7.6h5.3c-.2-.4-.5-.8-.7-1.2-.1-.2-.3-.4-.4-.6-2.1-3.4-5.7-11.1-4.6-15.5.3-1.1.8-1.9 1.8-2.4.3-.2.7-.3 1.6-.1.9.2 1.9.7 3 1.3 1.7.9 3.6 1.8 5.7 2.1v16.5h4.5v-16.5c2.1-.3 4-1.2 5.8-2.1 1.1-.5 2.1-1.1 3-1.3.9-.2 1.3-.1 1.6.1.9.5 1.5 1.3 1.8 2.4 1.1 4.4-2.5 12-4.6 15.5-.1.2-.3.4-.4.6-.3.4-.5.8-.7 1.2h5.3c.8-1.3 2.3-4.2 3.5-7.6 1.5-4.3 1.9-8 1.2-10.9" fill="#ffce31"/><path d="m32 17.1c-1.7 0-3.2-.7-4.4-1.7.3 2.2 2.1 3.9 4.4 3.9 2.2 0 4.1-1.7 4.4-3.9-1.2 1.1-2.7 1.7-4.4 1.7" fill="#f2b200"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f452.svg b/build/js/jsxc/lib/emojione/assets/svg/1f452.svg
index 1d264fd..0ef14ae 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f452.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f452.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9f7dcc" d="m45.3 23.449c-.686-7.916-3.036-12.299-12.973-12.299-9.939 0-12.288 4.383-12.974 12.299 0 0 4.9-1.472 12.974-1.472 8.08.001 12.973 1.472 12.973 1.472"/><path fill="#856daa" d="m32.32 11.15c-9.939 0-12.288 4.383-12.974 12.299 0 0 4.9-1.472 12.974-1.472 8.08.001-3.27-5.602 0-10.827"/><path fill="#fff652" d="m46.26 23.2c0 0-5.264-1.581-13.939-1.581-8.677 0-13.94 1.581-13.94 1.581-.153 1.774-.233 3.601-.233 5.469 0 1.123.03 2.231.086 3.325 0 0 5.912-1.49 14.09-1.49 8.177 0 14.09 1.49 14.09 1.49.057-1.093.087-2.202.087-3.325-.002-1.868-.083-3.695-.236-5.469"/><path fill="#ddd243" d="m35.892 21.708c0 0-1.867-.161-3.567-.161-8.677 0-13.941 1.651-13.941 1.651-.153 1.774-.233 3.601-.233 5.469 0 1.123.03 2.231.086 3.325 0 0 5.912-1.49 14.09-1.49 8.176 0 6.421-4.341 5.35-4.518-2.177-.358-1.63-2.502-1.783-4.276"/><path fill="#9f7dcc" d="m32.526 26.504c13.151-1.818 23.787 2.63 30.874 8 4.674 3.543-19.04-7.096-35.2 8.06-15.467 14.507-31.11 12.666-26.6 1.935 3.979-9.478 14.379-15.711 30.924-17.999"/><path fill="#856daa" d="m46.47 26.874c0 0-11.364-.875-23.721 11.385-15.07 14.949-25.18 12.371-19.06 2.532 6.122-9.844 25.12-17.75 42.786-13.917"/><path fill="#99cff6" d="m19.655 27.389c3.488-2.03 5.617-4.37 5.231-6.128-.387-1.761-3.188-2.493-7.04-2.127.316-4.424-.32-7.642-1.852-8.08-1.534-.444-3.572 1.999-5.339 6-3.169-2.393-5.935-3.271-7.082-1.954-1.147 1.316-.383 4.494 1.701 8.133-3.487 2.028-5.617 4.369-5.229 6.128.384 1.76 3.187 2.489 7.04 2.126-.317 4.423.318 7.641 1.851 8.08 1.532.44 3.573-2 5.337-6.01 3.172 2.396 5.938 3.271 7.085 1.955 1.148-1.314.384-4.49-1.702-8.13"/><path fill="#75b7ea" d="m32.693 22.51c-.117-1.65-2.682-2.856-6.404-3.291.931-3.892.784-6.894-.612-7.59-1.398-.699-3.686 1.082-5.94 4.314-2.676-2.766-5.185-4.095-6.464-3.146-1.28.95-1.01 3.94.461 7.605-3.611 1.125-5.971 2.796-5.854 4.446.116 1.649 2.681 2.854 6.403 3.29-.932 3.892-.784 6.892.611 7.59 1.397.698 3.687-1.082 5.938-4.315 2.679 2.767 5.191 4.097 6.469 3.146 1.281-.95 1-3.94-.464-7.603 3.612-1.126 5.972-2.798 5.856-4.446"/><g fill="#cdecfc"><path opacity=".3" d="m32.34 17.83c-.547-1.229-2.853-1.228-5.839-.209-.357-3.337-1.296-5.596-2.564-5.625-1.271-.033-2.542 2.171-3.389 5.479-2.824-1.159-5.123-1.271-5.847-.075-.724 1.197.312 3.401 2.451 5.691-2.471 2.177-3.83 4.322-3.286 5.552.543 1.227 2.852 1.224 5.839.209.354 3.335 1.293 5.595 2.562 5.626 1.269.028 2.543-2.175 3.387-5.483 2.826 1.16 5.127 1.273 5.85.074.726-1.196-.311-3.398-2.452-5.688 2.472-2.18 3.832-4.324 3.288-5.551"/><path opacity=".3" d="m20.425 20.652c-.469-1.058-2.459-1.057-5.03-.18-.307-2.876-1.115-4.823-2.209-4.85-1.096-.027-2.191 1.872-2.921 4.723-2.432-.999-4.414-1.096-5.04-.064-.624 1.033.269 2.932 2.113 4.904-2.13 1.877-3.301 3.725-2.832 4.787.469 1.057 2.458 1.055 5.03.179.306 2.877 1.115 4.821 2.209 4.849 1.092.025 2.19-1.87 2.917-4.724 2.435 1 4.418 1.096 5.04.063.624-1.029-.27-2.929-2.115-4.902 2.134-1.879 3.304-3.727 2.835-4.785"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 23.4c-.7-7.9-3-12.3-13-12.3-9.9 0-12.3 4.4-13 12.3 0 0 4.9-1.5 13-1.5 8.1.1 13 1.5 13 1.5" fill="#9f7dcc"/><path d="m32.3 11.1c-9.9 0-12.3 4.4-13 12.3 0 0 4.9-1.5 13-1.5 8.1.1-3.2-5.5 0-10.8" fill="#856daa"/><path d="m46.3 23.2c0 0-5.3-1.6-13.9-1.6-8.7 0-13.9 1.6-13.9 1.6-.2 1.8-.2 3.6-.2 5.5 0 1.1 0 2.2.1 3.3 0 0 5.9-1.5 14.1-1.5 8.2 0 14.1 1.5 14.1 1.5.1-1.1.1-2.2.1-3.3-.2-1.9-.3-3.7-.4-5.5" fill="#fff652"/><path d="m35.9 21.7c0 0-1.9-.2-3.6-.2-8.7 0-13.9 1.7-13.9 1.7-.2 1.8-.2 3.6-.2 5.5 0 1.1 0 2.2.1 3.3 0 0 5.9-1.5 14.1-1.5s6.4-4.3 5.3-4.5c-2.2-.4-1.7-2.5-1.8-4.3" fill="#ddd243"/><path d="m32.5 26.5c13.2-1.8 23.8 2.6 30.9 8 4.7 3.5-19-7.1-35.2 8.1-15.5 14.5-31.1 12.6-26.6 1.9 4-9.5 14.4-15.7 30.9-18" fill="#9f7dcc"/><path d="M46.5,26.9c0,0-11.4-0.9-23.7,11.4C7.7,53.2-2.4,50.6,3.7,40.8C9.8,30.9,28.8,23,46.5,26.9z" fill="#856daa"/><path d="m19.7 27.4c3.5-2 5.6-4.4 5.2-6.1-.4-1.8-3.2-2.5-7-2.1.3-4.4-.3-7.6-1.9-8.1-1.5-.4-3.6 2-5.3 6-3.2-2.4-5.9-3.3-7.1-2-1.1 1.3-.4 4.5 1.7 8.1-3.5 2-5.6 4.4-5.2 6.1.4 1.8 3.2 2.5 7 2.1-.3 4.4.3 7.6 1.9 8.1 1.5.4 3.6-2 5.3-6 3.2 2.4 5.9 3.3 7.1 2 1.1-1.3.3-4.5-1.7-8.1" fill="#99cff6"/><path d="m32.7 22.5c-.1-1.6-2.7-2.9-6.4-3.3.9-3.9.8-6.9-.6-7.6-1.4-.7-3.7 1.1-5.9 4.3-2.7-2.8-5.2-4.1-6.5-3.1-1.3.9-1 3.9.5 7.6-3.6 1.1-6 2.8-5.9 4.4.1 1.6 2.7 2.9 6.4 3.3-.9 3.9-.8 6.9.6 7.6 1.4.7 3.7-1.1 5.9-4.3 2.7 2.8 5.2 4.1 6.5 3.1 1.3-1 1-3.9-.5-7.6 3.6-1.1 6-2.7 5.9-4.4" fill="#75b7ea"/><g fill="#cdecfc"><path d="m32.3 17.8c-.5-1.2-2.9-1.2-5.8-.2-.4-3.3-1.3-5.6-2.6-5.6-1.3 0-2.5 2.2-3.4 5.5-2.8-1.2-5.1-1.3-5.8-.1-.7 1.2.3 3.4 2.5 5.7-2.5 2.2-3.8 4.3-3.3 5.6.5 1.2 2.9 1.2 5.8.2.4 3.3 1.3 5.6 2.6 5.6 1.3 0 2.5-2.2 3.4-5.5 2.8 1.2 5.1 1.3 5.9.1.7-1.2-.3-3.4-2.5-5.7 2.4-2.2 3.8-4.3 3.2-5.6" opacity=".3"/><path d="m20.4 20.7c-.5-1.1-2.5-1.1-5-.2-.3-2.9-1.1-4.8-2.2-4.9-1.1 0-2.2 1.9-2.9 4.7-2.4-1-4.4-1.1-5-.1-.6 1 .3 2.9 2.1 4.9-2.2 2-3.4 3.8-2.9 4.9.5 1 2.5 1 5 .2.3 2.8 1.2 4.8 2.2 4.8 1.1 0 2.2-1.9 2.9-4.7 2.4 1 4.4 1.1 5 .1.6-1-.3-2.9-2.1-4.9 2.2-1.9 3.4-3.8 2.9-4.8" opacity=".3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f453.svg b/build/js/jsxc/lib/emojione/assets/svg/1f453.svg
index 2432aff..0356c31 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f453.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f453.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m13.02 15.62c1.497-1.497 5.822 1.886 7.828 3.911 2.01 2.024 1.029 5.448-.182 4.073-1.498-1.7-5.267-7.03-6.665-6.357s-5.069 5.956-9.143 14l-2.857 1c0 .001 4.508-10.116 11.02-16.628"/><path d="m50.982 15.62c-1.497-1.497-5.822 1.886-7.828 3.911-2.01 2.024-1.029 5.448.182 4.073 1.498-1.7 5.267-7.03 6.665-6.357s5.069 5.956 9.143 14l2.857 1c0 .001-4.508-10.116-11.02-16.628"/><path d="m59.93 31.03c-1.03-.123-4.263-.277-8.183-.277-4.498 0-8.09.635-11.621 1.246-3.506.605-5.841 1.032-8.125 1.032-2.284 0-4.619-.426-8.125-1.032-3.536-.611-7.123-1.246-11.621-1.246-3.92 0-7.152.154-8.183.277-2.072.25-2.072.25-2.072 2.5 0 3.289.383 3.861.545 4.057.22.266.834.633 1.033.914.293.412.399 1.684.54 2.418 1.116 5.818 2.657 7.834 11.448 7.834 8.184 0 12.217-2.395 13.756-8.309.115-.441.319-2.332.443-2.771.049-.174.212-.434.637-.498.569-.053 1.086-.078 1.598-.078s1.029.025 1.598.078c.425.064.588.324.637.498.124.439.328 2.33.443 2.771 1.539 5.914 5.572 8.309 13.756 8.309 8.791 0 10.332-2.02 11.448-7.834.141-.734.247-2.01.54-2.418.199-.281.813-.648 1.033-.914.162-.195.545-.768.545-4.057.001-2.25.001-2.25-2.07-2.5m-32.11 7.159c-.106.477-.243 1.033-.433 1.736-1.102 4.098-3.534 6.828-11.824 6.828-8.03 0-8.745-1.65-9.501-6.289-.282-1.73-.888-3.646-.195-5.256.384-.895 1.047-2.15 3.37-2.15 1.697 0 10.09.109 15.256 1.205 1.505.322 3.957.879 3.327 3.926m30.11 2.275c-.756 4.639-1.468 6.289-9.501 6.289-8.29 0-10.723-2.73-11.824-6.828-.189-.703-.326-1.26-.433-1.736-.63-3.047 1.821-3.604 3.327-3.926 5.162-1.096 13.559-1.205 15.256-1.205 2.323 0 2.986 1.256 3.37 2.15.692 1.609.087 3.525-.195 5.256"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m13 15.6c1.5-1.5 5.8 1.9 7.8 3.9 2 2 1 5.4-.2 4.1-1.5-1.7-5.3-7-6.7-6.4s-5.1 6-9.1 14l-2.9 1c.1 0 4.6-10.1 11.1-16.6"/><path d="m51 15.6c-1.5-1.5-5.8 1.9-7.8 3.9-2 2-1 5.4.2 4.1 1.5-1.7 5.3-7 6.7-6.4s5.1 6 9.1 14l2.9 1c-.1 0-4.6-10.1-11.1-16.6"/><path d="m59.9 31c-1-.1-4.3-.3-8.2-.3-4.5 0-8.1.6-11.6 1.2-3.5.6-5.8 1-8.1 1s-4.6-.4-8.1-1c-3.5-.6-7.1-1.2-11.6-1.2-3.9 0-7.2.2-8.2.3-2.1.3-2.1.3-2.1 2.5 0 3.3.4 3.9.5 4.1.2.3.8.6 1 .9.3.4.4 1.7.5 2.4 1.1 5.8 2.7 7.8 11.4 7.8 8.2 0 12.2-2.4 13.8-8.3.1-.4.3-2.3.4-2.8 0-.2.2-.4.6-.5.6-.1 1.1-.1 1.6-.1s1 0 1.6.1c.4.1.6.3.6.5.1.4.3 2.3.4 2.8 1.5 5.9 5.6 8.3 13.8 8.3 8.8 0 10.3-2 11.4-7.8.1-.7.2-2 .5-2.4.2-.3.8-.6 1-.9.2-.2.5-.8.5-4.1.4-2.2.4-2.2-1.7-2.5m-32.1 7.2c-.1.5-.2 1-.4 1.7-1.1 4.1-3.5 6.8-11.8 6.8-8 0-8.7-1.7-9.5-6.3-.3-1.7-.9-3.6-.2-5.3.4-.9 1-2.2 3.4-2.2 1.7 0 10.1.1 15.3 1.2 1.4.5 3.9 1 3.2 4.1m30.1 2.3c-.8 4.6-1.5 6.3-9.5 6.3-8.3 0-10.7-2.7-11.8-6.8-.2-.7-.3-1.3-.4-1.7-.6-3 1.8-3.6 3.3-3.9 5.2-1.1 13.6-1.2 15.3-1.2 2.3 0 3 1.3 3.4 2.2.6 1.4 0 3.3-.3 5.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f454.svg b/build/js/jsxc/lib/emojione/assets/svg/1f454.svg
index 565001b..b72e4dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f454.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f454.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M64,59.675C64,62.063,61.795,64,59.076,64H4.924C2.205,64,0,62.063,0,59.675V9.081
- c0-2.389,2.205-4.324,4.924-4.324h54.152C61.795,4.757,64,6.692,64,9.081V59.675z"/><g fill="#94989b"><path d="m48.902 9.514h-33.802l3.278-9.514h27.24z"/><path d="m18.376 2.883l-3.276 6.631 11.97 17.726v-12.18z"/><path d="m45.616 2.883l3.286 6.631-11.982 17.726v-12.18z"/></g><g fill="#fff"><path d="m18.378 0l-3.278 9.514 11.98 14.846v-12.18z"/><path d="m45.62 0l3.282 9.514-11.979 14.846v-12.18z"/></g><path fill="#42ade2" d="m37.744 24.36h-11.484l-3.284 32.432 9.08 7.208 8.97-7.208z"/><path fill="#428bc1" d="m38.07 27.626l-.33-3.266h-11.487l-.338 3.327c2.438 1.746 9.557 1.596 12.155-.061"/><path fill="#42ade2" d="m38.563 24.36c-2.179 2.154-11.231 2.353-13.13 0-2.02-2.502 1.64-12.181 1.64-12.181s3.694 1.443 4.924 1.443 4.923-1.442 4.923-1.442 3.959 9.888 1.64 12.18"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M64,59.7c0,2.4-2.2,4.3-4.9,4.3H4.9C2.2,64,0,62.1,0,59.7V9.1c0-2.4,2.2-4.3,4.9-4.3h54.2
+ c2.7,0,4.9,1.9,4.9,4.3V59.7z" fill="#d0d0d0"/><g fill="#94989b"><path d="m48.9 9.5h-33.8l3.3-9.5h27.2z"/><path d="m18.4 2.9l-3.3 6.6 12 17.7v-12.1z"/><path d="m45.6 2.9l3.3 6.6-12 17.7v-12.1z"/></g><g fill="#fff"><path d="m18.4 0l-3.3 9.5 12 14.9v-12.2z"/><path d="m45.6 0l3.3 9.5-12 14.9v-12.2z"/></g><path fill="#42ade2" d="m37.7 24.4h-11.4l-3.3 32.4 9.1 7.2 8.9-7.2z"/><path d="m38.1 27.6l-.3-3.3h-11.5l-.3 3.3c2.4 1.8 9.5 1.7 12.1 0" fill="#428bc1"/><path d="m38.6 24.4c-2.2 2.2-11.2 2.4-13.1 0-2-2.5 1.6-12.2 1.6-12.2s3.7 1.4 4.9 1.4 4.9-1.4 4.9-1.4 4 9.9 1.7 12.2" fill="#42ade2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f455.svg b/build/js/jsxc/lib/emojione/assets/svg/1f455.svg
index 6477e0e..33900af 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f455.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f455.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m63.71 16.14c0 0-6.118-11.988-7.696-12.911-1.578-.922-10.458-.737-13.813-2.028 0 0-4.094 4.795-10.234 4.795-6.143 0-10.237-4.795-10.237-4.795-3.355 1.291-12.235 1.106-13.813 2.028-1.578.922-7.696 12.911-7.696 12.911 3.354 7.746 11.445 9.406 11.445 9.406l3.158-4.98-1.48 38.731c7.694 4.428 13.228 4.703 18.623 4.703 5.392 0 10.926-.275 18.62-4.703l-1.48-38.731 3.158 4.98c0 0 8.09-1.66 11.445-9.406"/><g fill="#22648c"><path d="m32.24 7.164c-1.554 0-3.136-.291-4.71-.864-1.248-.455-2.492-1.088-3.695-1.882-2.037-1.344-3.27-2.691-3.321-2.748l1.882-1.491-.941.746.941-.747c.011.012 1.118 1.217 2.92 2.395 1.598 1.045 4.094 2.287 6.927 2.287.016 0 .033 0 .049 0 3.245-.017 6.344-1.651 9.208-4.857l1.893 1.477c-1.759 1.971-3.646 3.45-5.613 4.396-1.763.849-3.61 1.283-5.491 1.29-.018-.002-.033-.002-.049-.002"/><path d="m13.02 23.424c-3.483-.295-6.478-1.992-8.906-5.05-1.413-1.781-2.265-3.588-2.668-4.571l-1.443 2.667c.51.965 1.194 2.089 2.082 3.216 1.377 1.752 2.964 3.154 4.714 4.165 1.516.876 3.149 1.457 4.881 1.736l1.34-2.158"/><path d="m50.983 23.494c3.483-.295 6.475-1.992 8.906-5.05 1.411-1.781 2.265-3.588 2.668-4.571l1.443 2.666c-.511.965-1.195 2.089-2.082 3.216-1.379 1.752-2.964 3.154-4.714 4.165-1.516.876-3.151 1.457-4.882 1.736l-1.339-2.157"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63.7 16.1c0 0-6.1-12-7.7-12.9-1.6-.9-10.5-.7-13.8-2 0 0-4.1 4.8-10.2 4.8-6.1 0-10.2-4.8-10.2-4.8-3.4 1.3-12.2 1.1-13.8 2s-7.8 12.9-7.8 12.9c3.4 7.7 11.4 9.4 11.4 9.4l3.2-5-1.5 38.7c7.7 4.5 13.3 4.8 18.7 4.8 5.4 0 10.9-.3 18.6-4.7l-1.5-38.7 3.2 5c0-.1 8.1-1.7 11.4-9.5" fill="#42ade2"/><g fill="#22648c"><path d="m32.2 7.2c-1.6 0-3.1-.3-4.7-.9-1.2-.5-2.5-1.1-3.7-1.9-2-1.3-3.3-2.7-3.3-2.7l1.9-1.5-.9.7.9-.7c0 0 1.1 1.2 2.9 2.4 1.6 1 4.1 2.3 6.9 2.3 3.2 0 6.3-1.7 9.2-4.9l1.9 1.5c-1.8 2-3.6 3.5-5.6 4.4-1.7.8-3.5 1.3-5.5 1.3"/><path d="m13 23.4c-3.5-.3-6.5-2-8.9-5.1-1.4-1.8-2.3-3.6-2.7-4.6l-1.4 2.8c.5 1 1.2 2.1 2.1 3.2 1.4 1.8 3 3.2 4.7 4.2 1.5.9 3.1 1.5 4.9 1.7l1.3-2.2"/><path d="m51 23.5c3.5-.3 6.5-2 8.9-5.1 1.4-1.8 2.3-3.6 2.7-4.6l1.4 2.7c-.5 1-1.2 2.1-2.1 3.2-1.4 1.8-3 3.2-4.7 4.2-1.5.9-3.2 1.5-4.9 1.7l-1.3-2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f456.svg b/build/js/jsxc/lib/emojione/assets/svg/1f456.svg
index 443c375..eed2f86 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f456.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f456.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m48.11 14.02v-14.02h-32.22v14.02c-6.483 32.472-2.904 49.34-2.904 49.34l16.11-5.207c-4.586-21.349 2.905-35.663 2.905-35.663h1.683c0 0 5.809 14.313 1.222 35.662l16.11 5.207c0 0 3.58-16.871-2.905-49.34"/><g fill="#347aa5"><path d="m41.27 25.958c-.205.356-2.065-.31-4.155-1.488-2.091-1.179-3.619-2.424-3.414-2.78.205-.355 2.065.311 4.156 1.49 2.089 1.177 3.618 2.423 3.413 2.778"/><path d="m44.47 44.04c-.205.356-2.065-.31-4.155-1.488-2.091-1.179-3.619-2.424-3.414-2.78.205-.355 2.065.311 4.156 1.489 2.089 1.178 3.618 2.424 3.413 2.779"/><path d="m51.26 59.14c-.205.355-2.066-.311-4.156-1.489-2.091-1.179-3.619-2.423-3.414-2.779.205-.355 2.066.311 4.156 1.489 2.09 1.177 3.619 2.422 3.414 2.779"/><path d="m51.05 59.23c-.378.167-1.479-1.461-2.459-3.635-.98-2.176-1.468-4.075-1.09-4.242.378-.166 1.479 1.461 2.459 3.637.981 2.174 1.468 4.073 1.09 4.24"/><ellipse transform="matrix(1-.0036.0036 1-.145.149)" cx="40.979" cy="39.862" rx="3.756" ry=".547"/><path d="m44 37.18c.105.283-1.385 1.091-3.33 1.805s-3.608 1.062-3.715.778c-.105-.282 1.386-1.091 3.331-1.805 1.944-.714 3.608-1.062 3.714-.778"/><path d="m43.778 17.873c-.161-.159.613-1.189 1.73-2.3s2.155-1.882 2.316-1.722c.162.159-.612 1.189-1.73 2.3-1.116 1.112-2.154 1.882-2.316 1.722"/><path d="m44.585 19.784c-.194-.119.433-1.47 1.399-3.02.968-1.548 1.909-2.705 2.104-2.586.193.119-.433 1.471-1.4 3.02-.967 1.548-1.909 2.705-2.103 2.586"/><path d="m36.544 27.33c-.203.104-.955-.942-1.68-2.335-.725-1.395-1.147-2.608-.945-2.712.204-.104.957.942 1.681 2.336.725 1.394 1.148 2.608.944 2.711"/><ellipse transform="matrix(.9947.1027-.1027.9947 2.481-4)" cx="40.13" cy="22.1" rx="6.482" ry=".743"/><path d="M35.17 53.887 52 60.04 51.34 64 34.3 58.761z"/><path d="m24.17 26.33c.205.355 2.066-.311 4.156-1.489 2.091-1.179 3.619-2.424 3.414-2.779-.205-.356-2.066.31-4.156 1.489-2.091 1.178-3.619 2.423-3.414 2.779"/><path d="m19.589 43.558c.157.379 2.089-.046 4.314-.948 2.227-.903 3.903-1.943 3.747-2.323-.157-.379-2.09.046-4.315.949-2.226.902-3.903 1.942-3.746 2.322"/><path d="m12.736 59.14c.205.355 2.065-.311 4.155-1.489 2.091-1.179 3.619-2.423 3.414-2.779-.205-.355-2.065.311-4.156 1.489-2.089 1.177-3.618 2.422-3.413 2.779"/><path d="m12.955 59.23c.378.167 1.479-1.461 2.459-3.635.98-2.176 1.468-4.075 1.089-4.242-.378-.166-1.479 1.461-2.459 3.637-.981 2.174-1.468 4.073-1.089 4.24"/><ellipse transform="matrix(-.9914-.1308.1308-.9914 41.775 82.46)" cx="23.596" cy="39.855" rx="3.755" ry=".548"/><path d="m20.221 17.873c.162-.159-.612-1.189-1.729-2.3-1.118-1.11-2.155-1.882-2.317-1.722-.161.159.613 1.189 1.73 2.3 1.116 1.112 2.155 1.882 2.316 1.722"/><path d="m19.52 19.442c.193-.119-.433-1.47-1.399-3.02-.968-1.549-1.91-2.706-2.104-2.587-.194.119.433 1.471 1.399 3.02.967 1.548 1.909 2.706 2.104 2.586"/><path d="m28.893 27.33c.203.104.955-.942 1.681-2.335.725-1.395 1.147-2.608.944-2.712s-.956.942-1.681 2.336-1.148 2.608-.944 2.711"/><path d="M28.827 53.887 12 60.04 12.663 64 29.705 58.761z"/></g><ellipse fill="#ffce31" cx="33.683" cy="2.619" rx="1.343" ry="1.25"/><path fill="#3e4347" d="m43.16 11.703c-1.825-1.878-2.035-4.656-2.032-5.857h6.979v-.596h-6.534v-5.25h-1.551v5.25h-8.245v-5.25h-.423v5.25h-7.329v-5.25h-1.549v5.25h-6.589v.596h7.104c.002 1.201-.207 3.979-2.032 5.857-1.242 1.274-2.808 1.922-5.071 1.922v.396c2.389 0 4.06-.69 5.385-2.053 1.943-1.999 2.156-4.866 2.146-6.122h6.95v14.93c0 .947.821 1.719 1.832 1.719h1.832v-16.649h6.668c-.01 1.256.202 4.123 2.146 6.122 1.325 1.362 2.873 2.053 5.26 2.053v-.396c-2.262 0-3.706-.647-4.947-1.922m-2.717-11.307h.705v4.844h-.209l-.212-.02c0 .004-.001.012-.002.02h-.282v-4.844m-17.546 0h.705v4.844h-.211c-.001-.008-.001-.016-.001-.02l-.212.02h-.281v-4.844m10.711 21.703h-1.408c-.776 0-1.41-.595-1.41-1.323v-14.93h2.818v16.253"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M48.1,14V0H15.9v14C9.4,46.5,13,63.4,13,63.4l16.1-5.2C24.5,36.8,32,22.5,32,22.5h1.7c0,0,5.8,14.3,1.2,35.7
+ L51,63.4C51,63.4,54.6,46.5,48.1,14z" fill="#428bc1"/><g fill="#347aa5"><path d="m41.3 26c-.2.4-2.1-.3-4.2-1.5-2.1-1.2-3.6-2.4-3.4-2.8.2-.4 2.1.3 4.2 1.5 2 1.2 3.6 2.4 3.4 2.8"/><path d="m44.5 44c-.2.4-2.1-.3-4.2-1.5-2.1-1.2-3.6-2.4-3.4-2.8.2-.4 2.1.3 4.2 1.5 2 1.2 3.6 2.5 3.4 2.8"/><path d="m51.3 59.1c-.2.4-2.1-.3-4.2-1.5-2.1-1.2-3.6-2.4-3.4-2.8.2-.4 2.1.3 4.2 1.5 2 1.2 3.6 2.5 3.4 2.8"/><path d="m51 59.2c-.4.2-1.5-1.5-2.5-3.6-1-2.2-1.5-4.1-1.1-4.2.4-.2 1.5 1.5 2.5 3.6 1 2.2 1.5 4.1 1.1 4.2"/><ellipse transform="matrix(1-.0036.0036 1-.1432.1478)" cx="41" cy="39.9" rx="3.8" ry=".5"/><path d="m44 37.2c.1.3-1.4 1.1-3.3 1.8s-3.6 1-3.7.8c-.1-.3 1.4-1.1 3.3-1.8 1.9-.8 3.6-1.1 3.7-.8"/><path d="m43.8 17.9c-.2-.2.6-1.2 1.7-2.3s2.2-1.9 2.3-1.7c.2.2-.6 1.2-1.7 2.3-1.1 1.1-2.2 1.8-2.3 1.7"/><path d="m44.6 19.8c-.2-.1.4-1.5 1.4-3 1-1.5 1.9-2.7 2.1-2.6.2.1-.4 1.5-1.4 3-1 1.5-1.9 2.7-2.1 2.6"/><path d="m36.5 27.3c-.2.1-1-.9-1.7-2.3-.7-1.4-1.1-2.6-.9-2.7.2-.1 1 .9 1.7 2.3.7 1.4 1.1 2.6.9 2.7"/><ellipse transform="matrix(.1027-.9947.9947.1027 14.0227 59.7485)" cx="40.1" cy="22.1" rx=".7" ry="6.5"/><path d="m35.2 53.9l16.8 6.1-.7 4-17-5.2z"/><path d="m24.2 26.3c.2.4 2.1-.3 4.2-1.5 2.1-1.2 3.6-2.4 3.4-2.8-.2-.4-2.1.3-4.2 1.5-2.1 1.2-3.6 2.5-3.4 2.8"/><path d="m19.6 43.6c.2.4 2.1 0 4.3-.9 2.2-.9 3.9-1.9 3.7-2.3-.2-.4-2.1 0-4.3.9-2.2.8-3.9 1.9-3.7 2.3"/><path d="m12.7 59.1c.2.4 2.1-.3 4.2-1.5 2.1-1.2 3.6-2.4 3.4-2.8-.2-.4-2.1.3-4.2 1.5-2 1.2-3.6 2.5-3.4 2.8"/><path d="m13 59.2c.4.2 1.5-1.5 2.5-3.6 1-2.2 1.5-4.1 1.1-4.2-.5-.2-1.6 1.4-2.6 3.6-.9 2.2-1.4 4.1-1 4.2"/><ellipse transform="matrix(.1308-.9914.9914.1308-19.0056 58.0354)" cx="23.6" cy="39.9" rx=".5" ry="3.8"/><path d="m20.2 17.9c.2-.2-.6-1.2-1.7-2.3-1.1-1.1-2.2-1.9-2.3-1.7-.2.1.6 1.1 1.7 2.3 1.1 1.1 2.2 1.8 2.3 1.7"/><path d="m19.5 19.4c.2-.1-.4-1.5-1.4-3-1-1.5-1.9-2.7-2.1-2.6s.4 1.5 1.4 3c1 1.6 1.9 2.8 2.1 2.6"/><path d="m28.9 27.3c.2.1 1-.9 1.7-2.3.7-1.4 1.1-2.6.9-2.7s-1 .9-1.7 2.3-1.1 2.6-.9 2.7"/><path d="m28.8 53.9l-16.8 6.1.7 4 17-5.2z"/></g><ellipse cx="33.7" cy="2.6" rx="1.3" ry="1.2" fill="#ffce31"/><path d="m43.2 11.7c-1.8-1.9-2-4.7-2-5.9h7v-.6h-6.5v-5.2h-1.7v5.2h-8.2v-5.2h-.4v5.2h-7.4v-5.2h-1.5v5.2h-6.6v.6h7.1c0 1.2-.2 4-2 5.9-1.2 1.3-2.8 1.9-5.1 1.9v.4c2.4 0 4.1-.7 5.4-2.1 1.9-2 2.2-4.9 2.1-6.1h7v14.9c0 .9.8 1.7 1.8 1.7h1.8v-16.6h6.7c0 1.3.2 4.1 2.1 6.1 1.3 1.4 2.9 2.1 5.3 2.1v-.4c-2.3 0-3.7-.6-4.9-1.9m-2.8-11.3h.7v4.8h-.2-.2c0 0 0 0 0 0h-.3v-4.8m-17.5 0h.7v4.8h-.2c0 0 0 0 0 0h-.2-.3v-4.8m10.7 21.7h-1.4c-.8 0-1.4-.6-1.4-1.3v-15h2.8v16.3" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f457.svg b/build/js/jsxc/lib/emojione/assets/svg/1f457.svg
index a6ffb05..2a20f80 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f457.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f457.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#aa3369"><path d="m22.291 0h1.277v10.224h-1.277z"/><path d="m40.43 0h1.276v10.224h-1.276z"/></g><path fill="#e84d88" d="m39.01 25.771c0-3.668 5-10.117 3.405-16.825 0 0-6.597 0-10.411 3.301-3.814-3.301-10.41-3.301-10.41-3.301-1.597 6.708 3.403 13.157 3.403 16.825 0 7.161-17.198 17.94-12.02 38.06 0 0 4.17-2.556 6.344-2.556 1.869 0 4.466 2.729 6.342 2.729 2.273 0 4.392-2.729 6.344-2.729 1.951 0 4.07 2.729 6.343 2.729 1.876 0 4.474-2.729 6.343-2.729 2.172 0 6.344 2.556 6.344 2.556 5.172-20.11-12.02-30.894-12.02-38.06"/><path fill="#eab2bb" d="m24.339 23.718h15.321v4h-15.321z"/><g fill="#ffc7ce"><path d="m41.699 41.891l-5.152 1.875c0 0 .086-14.06-3.447-18.864-.221-.302 1.872-.887 2.184-.638 5.16 4.131 6.415 17.627 6.415 17.627"/><path d="m23.547 36.31l3.986.934c0 0 .746-9.233 3.832-12.594.193-.211-1.437-.475-1.697-.292-4.344 3.01-6.121 11.952-6.121 11.952"/></g><g fill="#eab2bb"><path d="m34.785 25.49c.594.906 2.563 3.813 2.813 6.281"/><path d="m26.946 29.955c.469-.977 1.938-4.164 3.923-5.654"/><path d="m34.651 28.771c-.944.697-3.913.697-4.857 0-1.237-.914-1.124-4.785 0-5.813.858-.785 3.999-.785 4.857 0 1.124 1.028 1.238 4.899 0 5.813"/></g><g fill="#ffc7ce"><path d="m34.24 28.687c-.785.677-3.25.677-4.04 0-1.027-.888-.934-4.646 0-5.645.714-.762 3.321-.762 4.04 0 .934.998 1.028 4.757 0 5.645"/><path d="m46.41 55.988c-2.123 0-5.072 2.96-7.203 2.96-2.581 0-4.986-2.96-7.202-2.96-2.217 0-4.622 2.96-7.203 2.96-2.131 0-5.079-2.96-7.202-2.96-1.536 0-3.942 1.07-5.545 1.881.059 1.125.19 2.283.397 3.477 1.093-.606 4.393-2.348 6.272-2.348 1.958 0 4.676 2.729 6.64 2.729 2.38 0 4.597-2.729 6.641-2.729 2.042 0 4.26 2.729 6.64 2.729 1.964 0 4.683-2.729 6.641-2.729 1.879 0 5.181 1.742 6.272 2.348.207-1.193.338-2.352.396-3.477-1.602-.81-4.01-1.881-5.544-1.881"/><path d="m25.22 57.08c2.429 0 4.693-2.729 6.78-2.729 2.085 0 4.35 2.729 6.779 2.729 2.01 0 4.782-2.729 6.781-2.729 1.937 0 5.352 1.609 6.434 2.144.002-.521-.009-1.037-.035-1.544-1.461-.685-4.316-1.85-6.04-1.85-2.053 0-4.903 2.729-6.963 2.729-2.494 0-4.819-2.729-6.961-2.729-2.143 0-4.468 2.729-6.962 2.729-2.06 0-4.909-2.729-6.961-2.729-1.721 0-4.575 1.165-6.04 1.85-.027.507-.037 1.022-.036 1.545 1.082-.535 4.496-2.145 6.434-2.145 1.999 0 4.775 2.729 6.781 2.729"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#aa3369"><path d="m22.3 0h1.3v10.2h-1.3z"/><path d="m40.4 0h1.3v10.2h-1.3z"/></g><path d="m39 25.8c0-3.7 5-10.1 3.4-16.8 0 0-6.6 0-10.4 3.3-3.8-3.3-10.4-3.3-10.4-3.3-1.6 6.7 3.4 13.1 3.4 16.8 0 7.2-17.2 17.9-12 38.1 0 0 4.2-2.6 6.3-2.6 1.9 0 4.5 2.7 6.3 2.7 2.3 0 4.4-2.7 6.3-2.7 2 0 4.1 2.7 6.3 2.7 1.9 0 4.5-2.7 6.3-2.7 2.2 0 6.3 2.6 6.3 2.6 5.4-20.2-11.8-31-11.8-38.1" fill="#e84d88"/><path fill="#eab2bb" d="m24.3 23.7h15.3v4h-15.3z"/><g fill="#ffc7ce"><path d="m41.7 41.9l-5.2 1.9c0 0 .1-14.1-3.4-18.9-.2-.3 1.9-.9 2.2-.6 5.1 4.1 6.4 17.6 6.4 17.6"/><path d="m23.5 36.3l4 .9c0 0 .7-9.2 3.8-12.6.2-.2-1.4-.5-1.7-.3-4.3 3.1-6.1 12-6.1 12"/></g><g fill="#eab2bb"><path d="m34.8 25.5c.6.9 2.6 3.8 2.8 6.3"/><path d="m26.9 30c.5-1 1.9-4.2 3.9-5.7"/><path d="m34.7 28.8c-.9.7-3.9.7-4.9 0-1.2-.9-1.1-4.8 0-5.8.9-.8 4-.8 4.9 0 1.1 1 1.2 4.9 0 5.8"/></g><g fill="#ffc7ce"><path d="m34.2 28.7c-.8.7-3.2.7-4 0-1-.9-.9-4.6 0-5.6.7-.8 3.3-.8 4 0 1 .9 1.1 4.7 0 5.6"/><path d="m46.4 56c-2.1 0-5.1 3-7.2 3-2.6 0-5-3-7.2-3-2.2 0-4.6 3-7.2 3-2.1 0-5.1-3-7.2-3-1.5 0-3.9 1.1-5.5 1.9.1 1.1.2 2.3.4 3.5 1.1-.6 4.4-2.3 6.3-2.3 2 0 4.7 2.7 6.6 2.7 2.4 0 4.6-2.7 6.6-2.7 2 0 4.3 2.7 6.6 2.7 2 0 4.7-2.7 6.6-2.7 1.9 0 5.2 1.7 6.3 2.3.2-1.2.3-2.4.4-3.5-1.6-.8-4-1.9-5.5-1.9"/><path d="m25.2 57.1c2.4 0 4.7-2.7 6.8-2.7 2.1 0 4.3 2.7 6.8 2.7 2 0 4.8-2.7 6.8-2.7 1.9 0 5.4 1.6 6.4 2.1 0-.5 0-1 0-1.5-1.5-.7-4.3-1.8-6-1.8-2.1 0-4.9 2.7-7 2.7-2.5 0-4.8-2.7-7-2.7-2.1 0-4.5 2.7-7 2.7-2.1 0-4.9-2.7-7-2.7-1.7 0-4.6 1.2-6 1.8 0 .5 0 1 0 1.5 1.1-.5 4.5-2.1 6.4-2.1 2 0 4.8 2.7 6.8 2.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f458.svg b/build/js/jsxc/lib/emojione/assets/svg/1f458.svg
index 30fc7d9..7f7bed9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f458.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f458.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b54152" d="m21.91 2.225h18.5l-8.35 9.439z"/><path fill="#d39762" d="m41.2 3.305h-19.15v-3.305h19.545z"/><path fill="#ed4c5c" d="m11.02 4.62l10.139-2.944 10.755 7.845 10.757-7.845 10.138 2.944c0 0 .822 13.491 9.865 25.51 0 0-2.191 8.094-10 14.473 0 0-5.217-15.311-6.168-28.7 0 0-.547 5.887-3.834 12.756-2.437 5.093 8.881 18.362 8.09 32.936 0 0-9.05 2.404-18.842 2.404-9.796 0-18.841-2.404-18.841-2.404-.796-14.584 10.527-27.832 8.09-32.936-3.288-6.869-3.835-12.756-3.835-12.756-.949 13.389-6.167 28.7-6.167 28.7-6.04-7.124-10-14.473-10-14.473 9.04-12.02 9.866-25.51 9.866-25.51"/><path fill="#eaac6e" d="M29.586 11.438 32.06 9.312 22.05 0 19.582 2.125z"/><g fill="#ffc78a"><path d="m22.423 22.319c-1.078-.205-2.252-.43-3.477-.669.303-.539.643-1.092 1.021-1.66 1.854-2.771 4.691-5.966 8.43-9.491 6.297-5.938 12.918-10.297 13.198-10.499l2.151 1.95c-.066.048-6.723 4.869-12.865 10.66-3.565 3.363-6.248 6.376-7.974 8.955-.172.256-.334.507-.484.754"/><path d="m44.04 36.674c-3.924-.656-8.921-.914-13.238-.914-3.466 0-7.648.15-10.874.58.942-2.799 2.136-4.766 1.034-7.06-1.398-2.921-2.311-5.668-2.898-7.876 4.406.568 9.05.872 13.853.872 4.803 0 9.447-.304 13.854-.872-.588 2.208-1.5 4.956-2.897 7.876-1.15 2.393.139 4.417 1.166 7.398"/></g><path fill="#eaac6e" d="m42.907 29.861l-23.609-2.91-.844-4.318 26.352 3.248z"/><path fill="#ffc78a" d="m21.07 36.27h4.065v27.732h-4.065z"/><path fill="#eaac6e" d="m43.636 34.868l-24.24 2.01 1.321-4.263 21.924-1.861z"/><g fill="#ffc78a"><path d="M12.13 41.539 11.04 45.654 0 31.433 2.14 28.769z"/><path d="m51.801 41.865l1.162 4.057 11.04-14.221-2.123-2.661z"/><path d="m41.02 23.614h1.768v27.732h-1.768z"/><path d="m38.638 26.949h1.768v27.732h-1.768z"/></g><g fill="#eaac6e"><path d="m39.521 24.683h1.768v27.732h-1.768z"/><path d="m43.17 24.19c0 1.688-2.144 3.059-2.144 3.059s-2.143-1.37-2.143-3.059c0-1.69.959-.723 2.143-.723s2.144-.967 2.144.723"/></g><path fill="#d39762" d="m40.25 24.363c1.155 1.237.522 3.561.522 3.561s-2.507.318-3.662-.918c-1.156-1.238.209-1.121 1.076-1.851.868-.73.909-2.03 2.064-.792"/><path fill="#ffc78a" d="m43.849 27.02c-1.027.995-3.123.626-3.123.626s-.429-1.982.6-2.977c1.029-.995 1 .101 1.702.75.697.649 1.85.605.821 1.601"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b54152" d="m21.9 2.2h18.5l-8.3 9.5z"/><path fill="#d39762" d="m41.2 3.3h-19.1v-3.3h19.5z"/><path d="m11 4.6l10.1-2.9 10.8 7.8 10.8-7.8 10.1 2.9c0 0 .8 13.5 9.9 25.5 0 0-2.2 8.1-10 14.5 0 0-5.2-15.3-6.2-28.7 0 0-.5 5.9-3.8 12.8-2.4 5.1 8.9 18.4 8.1 32.9 0 0-9 2.4-18.8 2.4-9.8 0-18.8-2.4-18.8-2.4-.9-14.6 10.4-27.8 8-32.9-3.3-6.9-3.8-12.8-3.8-12.8-.9 13.4-6.2 28.7-6.2 28.7-6-7.1-10-14.5-10-14.5 9-12 9.8-25.5 9.8-25.5" fill="#ed4c5c"/><path fill="#eaac6e" d="m29.6 11.4l2.5-2.1-10-9.3-2.5 2.1z"/><g fill="#ffc78a"><path d="m22.4 22.3c-1.1-.2-2.3-.4-3.5-.7.3-.5.6-1.1 1-1.7 1.9-2.8 4.7-6 8.4-9.5 6.4-5.8 13-10.2 13.3-10.4l2.2 2c-.1 0-6.8 4.8-12.9 10.6-3.6 3.4-6.2 6.4-8 9-.2.2-.3.5-.5.7"/><path d="m44 36.7c-3.9-.7-8.9-.9-13.2-.9-3.5 0-7.6.2-10.9.6.9-2.8 2.1-4.8 1-7.1-1.4-2.9-2.3-5.7-2.9-7.9 4.4.6 9.1.9 13.9.9 4.8 0 9.4-.3 13.9-.9-.6 2.2-1.5 5-2.9 7.9-1.2 2.4.1 4.4 1.1 7.4"/></g><path fill="#eaac6e" d="m42.9 29.9l-23.6-2.9-.8-4.4 26.3 3.3z"/><path fill="#ffc78a" d="m21.1 36.3h4.1v27.7h-4.1z"/><path fill="#eaac6e" d="m43.6 34.9l-24.2 2 1.3-4.3 21.9-1.8z"/><g fill="#ffc78a"><path d="M12.1 41.5 11 45.7 0 31.4 2.1 28.8z"/><path d="m51.8 41.9l1.2 4 11-14.2-2.1-2.7z"/><path d="m41 23.6h1.8v27.7h-1.8z"/><path d="m38.6 26.9h1.8v27.7h-1.8z"/></g><g fill="#eaac6e"><path d="m39.5 24.7h1.8v27.7h-1.8z"/><path d="m43.2 24.2c0 1.7-2.1 3.1-2.1 3.1s-2.1-1.4-2.1-3.1c0-1.7 1-.7 2.1-.7s2.1-1 2.1.7"/></g><path d="m40.3 24.4c1.2 1.2.5 3.6.5 3.6s-2.5.3-3.7-.9c-1.2-1.2.2-1.1 1.1-1.9.9-.8.9-2.1 2.1-.8" fill="#d39762"/><path d="m43.8 27c-1 1-3.1.6-3.1.6s-.4-2 .6-3c1-1 1 .1 1.7.8.7.7 1.9.6.8 1.6" fill="#ffc78a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f459.svg b/build/js/jsxc/lib/emojione/assets/svg/1f459.svg
index bd70fc6..e0a1ca7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f459.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f459.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5b636b"><path d="m52.37 42.476l-.895-1.651c0 0-8.805 2.414-18.502 2.414-9.698 0-18.501-2.414-18.501-2.414l-.894 1.651c7.925 0 14.646 10.638 17.01 21.419.785.069 1.579.105 2.381.105.803 0 1.597-.036 2.383-.105 2.367-10.782 9.09-21.419 17.01-21.419"/><path d="m14.04 41.09c-.89 1.212-1.856 2.303-2.788 3.387-.259.275-.511.557-.724.857-.216.304-.388.615-.365.979.034.733.353 1.524.83 2.02.098.113.304.19.263.154.167-.017.006-.021.091-.056.038-.031.088-.082.135-.141.195-.241.383-.565.551-.892.161-.324.339-.692.422-.999.104-.345.21-.71.304-1.078.387-1.393.775-2.82 1.281-4.231m.173-.229c.069 1.594-.077 3.163-.418 4.722-.1.388-.199.777-.357 1.168-.17.435-.371.754-.586 1.112-.222.349-.452.694-.812 1.01-.093.076-.194.152-.326.217-.083.064-.439.118-.466.084-.437-.089-.533-.313-.68-.492-.446-.768-.595-1.532-.728-2.341-.093-.893.354-1.674.75-2.361.929-1.326 2.147-2.371 3.542-3.159l.078-.044.003.089"/><path d="m14.245 41.33c.112 1.328.112 2.619.098 3.891-.018.7-.128 1.454.262 2.027.378.574 1 1.122 1.586 1.288.062.012.126.008.113-.009-.023.008.04-.022-.053.024l.05-.047c-.046 0-.071.062-.061.019.007-.08.002-.253-.018-.41-.04-.326-.106-.675-.18-1.021-.077-.364-.163-.663-.288-.992l-.368-1.01c-.427-1.221-.83-2.467-1.141-3.763m-.032-.503c.894 1.209 1.599 2.512 2.17 3.889.131.35.265.7.364 1.07.104.369.183.788.222 1.148.046.379.083.76.056 1.169-.02.208-.031.41-.152.676-.204.473-.691.37-.867.272-.41-.204-.647-.496-.92-.762-.26-.275-.511-.552-.745-.854-.518-.622-.701-1.436-.829-2.173-.143-1.515.085-3.01.607-4.423l.035-.095.059.083"/><path d="m14.217 40.859c-.227 2.147-.417 4.298-.546 6.44-.063 1.072-.016 2.146-.115 3.2-.076 1.063-.208 2.101-.179 3.185l-.095.031c-.579-.996-.672-2.154-.726-3.239-.046-1.103.168-2.182.319-3.257.308-2.15.731-4.274 1.243-6.378l.099.018"/><path d="m14.217 40.854c.021 2.841.101 5.682.27 8.506.098 1.412.283 2.813.365 4.211.101 1.4.146 2.792.458 4.177l-.09.043c-.436-.597-.691-1.299-.903-1.992-.215-.697-.347-1.41-.46-2.122-.217-1.427-.181-2.865-.17-4.293.008-2.855.163-5.7.431-8.535l.099.005"/><path d="m51.42 41.09c-.89 1.212-1.855 2.303-2.787 3.388-.259.275-.511.556-.724.857-.216.303-.387.616-.364.979.033.732.353 1.524.83 2.02.098.112.303.189.263.153.168-.017.006-.021.092-.056.038-.031.088-.083.136-.141.195-.242.383-.566.551-.892.161-.324.34-.692.422-.998.104-.346.211-.71.305-1.078.383-1.392.77-2.82 1.276-4.231m.173-.229c.07 1.594-.076 3.163-.416 4.722-.101.388-.199.777-.357 1.168-.17.435-.37.755-.586 1.112-.222.349-.453.694-.812 1.01-.094.076-.194.151-.326.216-.082.064-.438.119-.467.085-.436-.088-.533-.312-.68-.491-.446-.768-.596-1.531-.728-2.341-.093-.892.353-1.674.748-2.362.929-1.326 2.146-2.371 3.54-3.159l.079-.044.005.089"/><path d="m51.618 41.33c.112 1.328.112 2.619.099 3.891-.018.7-.127 1.453.263 2.028.377.574.999 1.122 1.585 1.288.063.011.127.007.114-.01-.023.008.039-.022-.053.023l.05-.046c-.046 0-.07.061-.061.018.007-.08.002-.253-.018-.41-.04-.326-.106-.675-.181-1.02-.077-.366-.162-.662-.288-.992l-.369-1.01c-.425-1.221-.829-2.467-1.141-3.763m-.031-.503c.894 1.209 1.599 2.512 2.171 3.889.132.35.266.7.364 1.069.104.369.184.79.223 1.149.046.379.083.76.055 1.168-.019.208-.03.411-.152.677-.203.472-.689.371-.866.273-.41-.204-.648-.497-.921-.763-.26-.274-.511-.551-.744-.854-.517-.622-.702-1.435-.83-2.173-.144-1.515.084-3.01.605-4.423l.035-.095.06.083"/><path d="m51.59 40.859c-.227 2.147-.417 4.298-.546 6.44-.063 1.072-.015 2.146-.114 3.2-.077 1.063-.208 2.101-.179 3.185l-.096.031c-.578-.996-.672-2.154-.726-3.239-.046-1.103.169-2.182.318-3.257.309-2.15.731-4.274 1.244-6.378l.099.018"/><path d="m51.591 40.854c.021 2.842.101 5.682.27 8.506.098 1.412.283 2.813.366 4.211.102 1.4.147 2.792.46 4.177l-.09.043c-.437-.596-.692-1.299-.903-1.992-.216-.697-.348-1.409-.461-2.121-.218-1.427-.182-2.866-.171-4.293.007-2.856.162-5.701.43-8.536l.099.005"/><path d="m12.331 14.44c-1.571 1.249-1.259 6.373-.819 8.439.396 1.857 2.133 5.666 3.722 6.453 3.704 1.836 13.426.602 16.07-2.78.31-.396.244-1.635 0-2.084-1.556-2.89-7.093-6.574-9.893-7.942-2.118-1.035-7.202-3.577-9.08-2.086"/><path d="m13.759 15.443l-1.457-.419c.012-.047 1.143-1.567 1.143-7.463 0-4.205-1.135-7.116-1.146-7.166l1.464-.395c.047.216 1.188 3.159 1.188 7.561 0 6.12-1.143 7.68-1.192 7.882"/><path d="m51.67 14.44c1.57 1.249 1.256 6.373.818 8.439-.396 1.857-2.133 5.666-3.722 6.453-3.704 1.836-13.426.602-16.07-2.78-.31-.396-.242-1.635 0-2.084 1.558-2.89 7.095-6.574 9.893-7.942 2.119-1.035 7.203-3.577 9.08-2.086"/><path d="m50.24 15.443l1.458-.419c-.014-.047-1.143-1.567-1.143-7.463 0-4.205 1.131-7.116 1.145-7.166l-1.462-.395c-.052.216-1.19 3.159-1.19 7.561 0 6.12 1.144 7.68 1.192 7.882"/><path d="m31.2 24.988h1.596v1.119h-1.596z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5b636b"><path d="m52.4 42.5l-.9-1.7c0 0-8.8 2.4-18.5 2.4-9.7 0-18.5-2.4-18.5-2.4l-.9 1.7c7.9 0 14.6 10.6 17 21.4.8.1 1.6.1 2.4.1.8 0 1.6 0 2.4-.1 2.3-10.8 9-21.4 17-21.4"/><path d="m14 41.1c-.9 1.2-1.9 2.3-2.8 3.4-.3.3-.5.6-.7.9-.2.3-.4.6-.4 1 0 .7.4 1.5.8 2 .1.1.3.2.3.2.2 0 0 0 .1-.1 0 0 .1-.1.1-.1.2-.2.4-.6.6-.9.2-.3.3-.7.4-1 .1-.3.2-.7.3-1.1.4-1.5.8-2.9 1.3-4.3m.2-.2c.1 1.6-.1 3.2-.4 4.7-.1.4-.2.8-.4 1.2-.2.4-.4.8-.6 1.1-.2.3-.5.7-.8 1-.1.1-.2.2-.3.2-.1.1-.4.1-.5.1-.4-.1-.5-.3-.7-.5-.4-.8-.6-1.5-.7-2.3-.1-.9.4-1.7.8-2.4.9-1.4 2.1-2.4 3.6-3.1"/><path d="m14.2 41.3c.1 1.3.1 2.6.1 3.9 0 .7-.1 1.5.3 2 .4.6 1 1.1 1.6 1.3.1 0 .1 0 .1 0s0 0-.1 0c0 0-.1.1-.1 0 0-.1 0-.3 0-.4 0-.3-.1-.7-.2-1-.1-.4-.2-.7-.3-1l-.4-1c-.2-1.2-.6-2.5-1-3.8m0-.5c.9 1.2 1.6 2.5 2.2 3.9.1.3.3.7.4 1.1.1.4.2.8.2 1.1 0 .4.1.8.1 1.2 0 .2 0 .4-.2.7-.2.5-.7.4-.9.3-.4-.2-.6-.5-.9-.8-.3-.3-.5-.6-.7-.9-.5-.6-.7-1.4-.8-2.2-.2-1.5 0-2.9.6-4.4"/><path d="m14.2 40.9c-.2 2.1-.4 4.3-.5 6.4-.1 1.1 0 2.1-.1 3.2-.1 1.1-.2 2.1-.2 3.2h-.1c-.6-1-.7-2.2-.7-3.2 0-1.1.2-2.2.3-3.3.3-2.1.7-4.3 1.3-6.3"/><path d="m14.2 40.9c0 2.8.1 5.7.3 8.5.1 1.4.3 2.8.4 4.2.1 1.4.1 2.8.5 4.2h-.1c-.4-.6-.7-1.3-.9-2-.2-.7-.3-1.4-.5-2.1-.2-1.4-.2-2.9-.2-4.3 0-2.9.2-5.7.5-8.5"/><path d="m51.4 41.1c-.9 1.2-1.9 2.3-2.8 3.4-.3.3-.5.6-.7.9-.2.3-.4.6-.4 1 0 .7.4 1.5.8 2 .1.1.3.2.3.2.2 0 0 0 .1-.1 0 0 .1-.1.1-.1.2-.2.4-.6.6-.9.2-.3.3-.7.4-1 .1-.3.2-.7.3-1.1.4-1.5.8-2.9 1.3-4.3m.2-.2c.1 1.6-.1 3.2-.4 4.7-.1.4-.2.8-.4 1.2-.2.4-.4.8-.6 1.1-.2.3-.5.7-.8 1-.1.1-.2.2-.3.2-.1.1-.4.1-.5.1-.4-.1-.5-.3-.7-.5-.4-.8-.6-1.5-.7-2.3-.1-.9.4-1.7.7-2.4 1-1.4 2.2-2.4 3.7-3.1"/><path d="m51.6 41.3c.1 1.3.1 2.6.1 3.9 0 .7-.1 1.5.3 2 .4.6 1 1.1 1.6 1.3.1 0 .1 0 .1 0s0 0-.1 0c0 0-.1.1-.1 0 0-.1 0-.3 0-.4 0-.3-.1-.7-.2-1-.1-.4-.2-.7-.3-1l-.4-1c-.3-1.2-.7-2.5-1-3.8m0-.5c.9 1.2 1.6 2.5 2.2 3.9.1.3.3.7.4 1.1.1.4.2.8.2 1.1 0 .4.1.8.1 1.2 0 .2 0 .4-.2.7-.2.5-.7.4-.9.3-.4-.2-.6-.5-.9-.8-.3-.3-.5-.6-.7-.9-.5-.6-.7-1.4-.8-2.2-.3-1.5 0-2.9.6-4.4"/><path d="m51.6 40.9c-.2 2.1-.4 4.3-.5 6.4-.1 1.1 0 2.1-.1 3.2-.1 1.1-.2 2.1-.2 3.2h-.1c-.6-1-.7-2.2-.7-3.2 0-1.1.2-2.2.3-3.3.3-2.1.7-4.3 1.3-6.3"/><path d="m51.6 40.9c0 2.8.1 5.7.3 8.5.1 1.4.3 2.8.4 4.2.1 1.4.1 2.8.5 4.2h-.1c-.4-.6-.7-1.3-.9-2-.2-.7-.3-1.4-.5-2.1-.2-1.4-.2-2.9-.2-4.3 0-2.9.1-5.7.5-8.5"/><path d="m12.3 14.4c-1.6 1.2-1.3 6.4-.8 8.4.4 1.9 2.1 5.7 3.7 6.5 3.7 1.8 13.4.6 16.1-2.8.3-.4.2-1.6 0-2.1-1.6-2.9-7.1-6.6-9.9-7.9-2.1-1-7.2-3.6-9.1-2.1"/><path d="m13.8 15.4l-1.5-.4c0 0 1.1-1.6 1.1-7.5 0-4.2-1.1-7.1-1.1-7.2l1.5-.3c0 .2 1.2 3.2 1.2 7.6 0 6.1-1.2 7.6-1.2 7.8"/><path d="m51.7 14.4c1.6 1.2 1.3 6.4.8 8.4-.4 1.9-2.1 5.7-3.7 6.5-3.7 1.8-13.4.6-16.1-2.8-.3-.4-.2-1.6 0-2.1 1.6-2.9 7.1-6.6 9.9-7.9 2.1-1 7.2-3.6 9.1-2.1"/><path d="m50.2 15.4l1.5-.4c0 0-1.1-1.6-1.1-7.5 0-4.2 1.1-7.1 1.1-7.2l-1.5-.3c-.1.2-1.2 3.2-1.2 7.6.1 6.1 1.2 7.6 1.2 7.8"/><path d="m31.2 25h1.6v1.1h-1.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f45a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f45a.svg
index 16c93fa..294d86e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f45a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f45a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff99b6" d="m1.699 24.09l-1.095-12.779c0 0 8.652-3.563 11.733-4.082 4.839-.814 14.02-2.041 19.663-2.041s14.824 1.227 19.663 2.041c3.081.519 11.733 4.082 11.733 4.082l-1.096 12.779-12.06.933c-.205 13.653 1.875 30.522 2.577 36.1 0 0-8.912.358-20.807.47-.002 0-.007 0-.009 0-.004 0-.009.002-.011 0-11.893-.111-20.807-.47-20.807-.47.702-5.572 2.782-22.444 2.577-36.1l-12.06-.933"/><g fill="#ff78a5"><path d="m31.99 12.357h1.17v49.24h-1.17z"/><path d="m26.25 5.597h11.496v6.958h-11.496z"/></g><path fill="#ff99b6" d="m21.799 0h20.402v6.552h-20.402z"/><g fill="#ffd2df"><path d="m42.2 0l3.87 6.171-7.362 11.553-6.708-5.145z"/><path d="M21.799 0 17.93 6.171 25.292 17.724 32 12.579z"/></g><ellipse fill="#ff78a5" cx="28.934" cy="20.398" rx="2.606" ry="2.64"/><ellipse fill="#fff3f7" cx="28.934" cy="20.09" rx="2.502" ry="2.331"/><ellipse fill="#ff78a5" cx="28.934" cy="28.902" rx="2.606" ry="2.64"/><ellipse fill="#fff3f7" cx="28.934" cy="28.594" rx="2.502" ry="2.331"/><ellipse fill="#ff78a5" cx="28.934" cy="37.41" rx="2.606" ry="2.64"/><ellipse fill="#fff3f7" cx="28.934" cy="37.1" rx="2.502" ry="2.331"/><ellipse fill="#ff78a5" cx="28.934" cy="45.912" rx="2.606" ry="2.64"/><ellipse fill="#fff3f7" cx="28.934" cy="45.604" rx="2.502" ry="2.33"/><ellipse fill="#ff78a5" cx="28.934" cy="54.42" rx="2.606" ry="2.641"/><ellipse fill="#fff3f7" cx="28.934" cy="54.11" rx="2.502" ry="2.331"/><g fill="#ffd2df"><path d="m63.999 11.1l-3.329-1.08-1.19 14.541 3.56-.301z"/><path d="M-.001 11.1 3.33 10.02 4.515 24.561.957 24.26z"/><path d="m31.99 59.05c.002.004.007 0 .011 0 .002 0 .007 0 .009 0 10.729-.163 19.213-1.649 20.564-2.543.066 1.918.147 3.543.242 4.783 0 0-8.912 2.526-20.807 2.708-.002 0-.007 0-.009 0-.004 0-.009.003-.011 0-11.893-.182-20.807-2.708-20.807-2.708.095-1.238.176-2.865.242-4.783 1.351.892 9.838 2.38 20.566 2.543"/></g><path fill="#ff99b6" d="m31.99 59.07h1.17v4.929h-1.17z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m1.7 24.1l-1.1-12.8c0 0 8.7-3.6 11.7-4.1 4.8-.8 14-2 19.7-2s14.8 1.2 19.7 2c3.1.5 11.7 4.1 11.7 4.1l-1.1 12.8-12.1.9c-.2 13.7 1.9 30.5 2.6 36.1 0 0-8.9.4-20.8.5-11.9-.1-20.8-.5-20.8-.5.7-5.6 2.8-22.4 2.6-36.1l-12.1-.9" fill="#ff99b6"/><g fill="#ff78a5"><path d="m32 12.4h1.2v49.2h-1.2z"/><path d="m26.3 5.6h11.5v7h-11.5z"/></g><path fill="#ff99b6" d="m21.8 0h20.4v6.6h-20.4z"/><g fill="#ffd2df"><path d="m42.2 0l3.9 6.2-7.4 11.5-6.7-5.1z"/><path d="m21.8 0l-3.9 6.2 7.4 11.5 6.7-5.1z"/></g><ellipse cx="28.9" cy="20.4" rx="2.6" ry="2.6" fill="#ff78a5"/><ellipse cx="28.9" cy="20.1" rx="2.5" ry="2.3" fill="#fff3f7"/><ellipse cx="28.9" cy="28.9" rx="2.6" ry="2.6" fill="#ff78a5"/><ellipse cx="28.9" cy="28.6" rx="2.5" ry="2.3" fill="#fff3f7"/><ellipse cx="28.9" cy="37.4" rx="2.6" ry="2.6" fill="#ff78a5"/><ellipse cx="28.9" cy="37.1" rx="2.5" ry="2.3" fill="#fff3f7"/><ellipse cx="28.9" cy="45.9" rx="2.6" ry="2.6" fill="#ff78a5"/><ellipse cx="28.9" cy="45.6" rx="2.5" ry="2.3" fill="#fff3f7"/><ellipse cx="28.9" cy="54.4" rx="2.6" ry="2.6" fill="#ff78a5"/><ellipse cx="28.9" cy="54.1" rx="2.5" ry="2.3" fill="#fff3f7"/><g fill="#ffd2df"><path d="m64 11.1l-3.3-1.1-1.2 14.6 3.5-.3z"/><path d="M0 11.1 3.3 10 4.5 24.6 1 24.3z"/><path d="m32 59.1c0 0 0 0 0 0 10.7-.2 19.2-1.6 20.6-2.5.1 1.9.1 3.5.2 4.8 0 0-8.9 2.5-20.8 2.7-11.9-.2-20.8-2.7-20.8-2.7.1-1.2.2-2.9.2-4.8 1.4.8 9.9 2.3 20.6 2.5"/></g><path fill="#ff99b6" d="m32 59.1h1.2v4.9h-1.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f45b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f45b.svg
index 2c031d7..2bb632f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f45b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f45b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#a59872" d="m55.41 22.865c0 3.338-2.733 6.04-6.106 6.04h-34.603c-3.372 0-6.106-2.706-6.106-6.04v-.881c0-3.338 2.735-6.04 6.106-6.04h34.603c3.373 0 6.106 2.707 6.106 6.04v.881"/><path fill="#dbcdaa" d="m53.2 22.846c0 3.191-2.476 5.78-5.529 5.78h-31.33c-3.053 0-5.529-2.588-5.529-5.78v-.843c0-3.192 2.476-5.78 5.529-5.78h31.33c3.054 0 5.529 2.588 5.529 5.78v.843"/><path fill="#1a86b1" d="m12.735 20.06c-5.845 4.938-12.764 21.547-10.176 28.71 1 2.775 7.348 5.208 10.177 6.129 9.145 2.976 29.24 2.571 38.505 0 2.867-.796 9.174-3.354 10.177-6.129 2.587-7.163-3.907-24.312-10.177-28.711-2.644-1.854-36.39-1.782-38.506.001"/><path fill="#144e73" d="m13.01 19.905c-.683 1.492-1.106 3.084-1.527 4.664-.428 1.579-.798 3.173-1.104 4.777-.606 3.207-1.062 6.445-1.134 9.689-.088 3.234.186 6.507 1.237 9.546 1.02 3.039 3.163 5.713 6.125 7.192-1.551-.556-2.976-1.491-4.156-2.685-1.166-1.211-2.048-2.681-2.687-4.233-1.278-3.128-1.585-6.534-1.518-9.846.1-3.325.592-6.619 1.385-9.828.831-3.186 1.733-6.407 3.379-9.276"/><path fill="#2ba5d6" d="m50.992 19.905c-.907-.966-10.27-1.384-18.99-1.269-8.721-.115-18.08.303-18.991 1.269 0 0-11.553 29.341 3.596 35.868 6.714 2.892 24.07 2.892 30.789 0 15.15-6.527 3.596-35.868 3.596-35.868"/><path fill="#144e73" d="m50.992 19.905c1.646 2.869 2.549 6.089 3.38 9.276.793 3.209 1.285 6.503 1.386 9.828.067 3.312-.24 6.718-1.519 9.846-.639 1.552-1.521 3.02-2.687 4.233-1.181 1.193-2.605 2.129-4.156 2.685 2.962-1.479 5.105-4.153 6.125-7.192 1.051-3.039 1.324-6.312 1.237-9.546-.073-3.245-.529-6.482-1.135-9.689-.306-1.604-.677-3.198-1.104-4.777-.42-1.579-.844-3.172-1.527-4.664"/><ellipse fill="#1a86b1" cx="32" cy="31.51" rx="7.238" ry="7.411"/><ellipse fill="#a59872" cx="32" cy="30.807" rx="6.774" ry="6.706"/><ellipse fill="#dbcdaa" cx="32" cy="30.807" rx="5.807" ry="5.748"/><ellipse fill="#4c3f2e" cx="32" cy="30.807" rx="3.871" ry="3.831"/><ellipse fill="#a59872" cx="32" cy="30.806" rx="3.87" ry=".666"/><ellipse fill="#dbcdaa" cx="32" cy="30.807" rx=".672" ry="3.831"/><path fill="#a59872" d="m29.709 8.887c-.648-.642-1.699-.642-2.347 0l-3.986 3.936h-5.206c-.913 0-2.141.267-2.141 1.668 0 .907.744 1.643 1.659 1.643h6.348c.002 0 .005-.001.005-.001.427.001.853-.159 1.179-.48l4.489-4.444c.647-.641.647-1.681 0-2.322"/><path fill="#dbcdaa" d="m28.627 9.61c-.542-.537-1.416-.645-1.959-.108l-3.292 3.321h-5.206c-.765 0-1.267.686-1.267 1.445 0 1.071.909 1.399 1.675 1.399h5.307c.003 0 .004-.001.006-.001.354.001.71-.132.983-.4l3.752-3.715c.542-.535.542-1.404.001-1.941"/><ellipse fill="#a59872" cx="28.651" cy="9.369" rx="3.463" ry="3.428"/><ellipse fill="#dbcdaa" cx="28.434" cy="9.08" rx="2.919" ry="2.89"/><path fill="#a59872" d="m34.29 8.887c.647-.642 1.698-.642 2.346 0l3.985 3.936h5.207c.914 0 2.142.267 2.142 1.668 0 .907-.743 1.643-1.659 1.643h-6.349c-.002 0-.003-.001-.005-.001-.427.001-.853-.159-1.179-.48l-4.488-4.444c-.647-.641-.647-1.681 0-2.322"/><path fill="#dbcdaa" d="m35.37 9.61c.542-.537 1.416-.645 1.959-.108l3.29 3.321h5.207c.766 0 1.268.686 1.268 1.445 0 1.071-.909 1.399-1.675 1.399h-5.308c-.002 0-.003-.001-.006-.001-.354.001-.711-.132-.983-.4l-3.752-3.715c-.541-.535-.541-1.404 0-1.941"/><ellipse fill="#a59872" cx="35.35" cy="9.369" rx="3.463" ry="3.428"/><ellipse fill="#dbcdaa" cx="35.565" cy="9.08" rx="2.919" ry="2.89"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.4 22.9c0 3.3-2.7 6-6.1 6h-34.6c-3.4 0-6.1-2.7-6.1-6v-.9c0-3.3 2.7-6 6.1-6h34.6c3.4 0 6.1 2.7 6.1 6v.9" fill="#a59872"/><path d="m53.2 22.8c0 3.2-2.5 5.8-5.5 5.8h-31.4c-3.1 0-5.5-2.6-5.5-5.8v-.8c0-3.2 2.5-5.8 5.5-5.8h31.3c3.1 0 5.5 2.6 5.5 5.8v.8z" fill="#dbcdaa"/><path d="m12.7 20.1c-5.8 4.9-12.7 21.5-10.1 28.7 1 2.8 7.3 5.2 10.2 6.1 9.1 3 29.2 2.6 38.5 0 2.9-.8 9.2-3.4 10.2-6.1 2.6-7.2-3.9-24.3-10.2-28.7-2.7-1.9-36.5-1.8-38.6 0" fill="#1a86b1"/><path d="m13 19.9c-.7 1.5-1.1 3.1-1.5 4.7-.4 1.6-.8 3.2-1.1 4.8-.6 3.2-1.1 6.4-1.1 9.7-.1 3.2.2 6.5 1.2 9.5 1 3 3.2 5.7 6.1 7.2-1.6-.6-3-1.5-4.2-2.7-1.2-1.2-2-2.7-2.7-4.2-1.3-3.1-1.6-6.5-1.5-9.8.1-3.3.6-6.6 1.4-9.8.9-3.3 1.8-6.5 3.4-9.4" fill="#144e73"/><path d="m51 19.9c-.9-1-10.3-1.4-19-1.3-8.7-.1-18.1.3-19 1.3 0 0-11.6 29.3 3.6 35.9 6.7 2.9 24.1 2.9 30.8 0 15.1-6.6 3.6-35.9 3.6-35.9" fill="#2ba5d6"/><path d="m51 19.9c1.6 2.9 2.5 6.1 3.4 9.3.8 3.2 1.3 6.5 1.4 9.8.1 3.3-.2 6.7-1.5 9.8-.6 1.6-1.5 3-2.7 4.2-1.2 1.2-2.6 2.1-4.2 2.7 3-1.5 5.1-4.2 6.1-7.2 1.1-3 1.3-6.3 1.2-9.5-.1-3.2-.5-6.5-1.1-9.7-.3-1.6-.7-3.2-1.1-4.8-.4-1.5-.8-3.1-1.5-4.6" fill="#144e73"/><ellipse cx="32" cy="31.5" rx="7.2" ry="7.4" fill="#1a86b1"/><ellipse cx="32" cy="30.8" rx="6.8" ry="6.7" fill="#a59872"/><ellipse cx="32" cy="30.8" rx="5.8" ry="5.7" fill="#dbcdaa"/><ellipse cx="32" cy="30.8" rx="3.9" ry="3.8" fill="#4c3f2e"/><ellipse cx="32" cy="30.8" rx="3.9" ry=".7" fill="#a59872"/><ellipse cx="32" cy="30.8" rx=".7" ry="3.8" fill="#dbcdaa"/><path d="m29.7 8.9c-.6-.6-1.7-.6-2.3 0l-4 3.9h-5.2c-.9 0-2.1.3-2.1 1.7 0 .9.7 1.6 1.7 1.6h6.2c0 0 0 0 0 0 .4 0 .9-.2 1.2-.5l4.5-4.4c.7-.6.7-1.7 0-2.3" fill="#a59872"/><path d="m28.6 9.6c-.5-.5-1.4-.6-2-.1l-3.3 3.3h-5.2c-.8 0-1.3.7-1.3 1.4 0 1.1.9 1.4 1.7 1.4h5.3c0 0 0 0 0 0 .4 0 .7-.1 1-.4l3.8-3.7c.6-.5.6-1.4 0-1.9" fill="#dbcdaa"/><ellipse cx="28.7" cy="9.4" rx="3.5" ry="3.4" fill="#a59872"/><ellipse cx="28.4" cy="9.1" rx="2.9" ry="2.9" fill="#dbcdaa"/><path d="m34.3 8.9c.6-.6 1.7-.6 2.3 0l4 3.9h5.2c.9 0 2.1.3 2.1 1.7 0 .9-.7 1.6-1.7 1.6h-6.2c0 0 0 0 0 0-.4 0-.9-.2-1.2-.5l-4.5-4.4c-.7-.6-.7-1.7 0-2.3" fill="#a59872"/><path d="m35.4 9.6c.5-.5 1.4-.6 2-.1l3.3 3.3h5.2c.8 0 1.3.7 1.3 1.4 0 1.1-.9 1.4-1.7 1.4h-5.3c0 0 0 0 0 0-.4 0-.7-.1-1-.4l-3.8-3.7c-.6-.5-.6-1.4 0-1.9" fill="#dbcdaa"/><ellipse cx="35.3" cy="9.4" rx="3.5" ry="3.4" fill="#a59872"/><ellipse cx="35.6" cy="9.1" rx="2.9" ry="2.9" fill="#dbcdaa"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f45c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f45c.svg
index 144fef9..3916593 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f45c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f45c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#7fc6cc" d="m62.8 60.33c0 4.889-61.6 4.889-61.6 0 0-28.887-2.125-37.725 30.799-37.725 32.925 0 30.8 8.838 30.8 37.725"/><g fill="#998a91"><path d="m5.01 30.662c3.841-4.156 12.418-6.094 26.994-6.094 14.575 0 23.15 1.938 26.994 6.094 1.019 1.103 1.798 2.368 2.411 3.794-2.574-8.707-9.73-12.712-29.405-12.712-19.676 0-26.832 4-29.405 12.713.612-1.425 1.393-2.692 2.411-3.795"/><g stroke="#7c7070" stroke-miterlimit="10"><path d="m19.19 26.924v11.851c0 .695-.698 1.26-1.558 1.26h-8.33c-.86 0-1.558-.564-1.558-1.26v-9.317l-3.343 2.532v9.616c0 .933.934 1.688 2.087 1.688h13.957c1.152 0 2.087-.756 2.087-1.688v-14.682h-3.342z"/><path d="m56.26 29.457v9.317c0 .695-.697 1.26-1.559 1.26h-8.328c-.861 0-1.559-.564-1.559-1.26v-11.85h-3.343v14.682c0 .933.935 1.688 2.087 1.688h13.957c1.152 0 2.086-.756 2.086-1.688v-9.616l-3.341-2.533z"/></g><path d="m58.994 30.684c-3.841-4.158-12.419-6.095-26.994-6.095-14.576 0-23.15 1.938-26.994 6.095-4.595 4.973-4.558 13.13-4.502 25.465.007 1.456.014 2.975.014 4.561 0 .722.608 1.31 1.356 1.31s1.356-.588 1.356-1.31c0-1.388-.005-2.724-.01-4.01l-.003-.56c-.053-11.734-.088-19.485 3.814-23.708 3.244-3.513 11.412-5.221 24.969-5.221 13.558 0 21.724 1.708 24.97 5.221 3.9 4.224 3.867 11.972 3.813 23.702l-.004.766c-.006 1.227-.01 2.496-.01 3.813 0 .722.607 1.31 1.356 1.31.748 0 1.356-.588 1.356-1.31 0-1.463.008-2.869.013-4.221l.002-.34c.056-12.34.095-20.492-4.502-25.466"/></g><path fill="#7c7070" d="m62.13 62.52c-1.019 0-1.849-.812-1.849-1.81 0-1.317.004-2.588.01-3.814l.004-.766c.053-11.609.089-19.278-3.68-23.358-3.147-3.406-11.197-5.063-24.61-5.063-13.414 0-21.463 1.656-24.61 5.063-3.769 4.08-3.733 11.752-3.68 23.365l.003.559c.005 1.29.011 2.626.011 4.02 0 .998-.83 1.81-1.849 1.81s-1.849-.812-1.849-1.81c0-1.585-.006-3.103-.013-4.559-.058-12.459-.095-20.69 4.634-25.81 3.941-4.267 12.633-6.253 27.353-6.253 14.72 0 23.411 1.986 27.354 6.253 4.728 5.118 4.691 13.345 4.636 25.797l-.006 1.112c-.004 1.116-.01 2.269-.01 3.459 0 .998-.828 1.81-1.849 1.81m-30.12-35.811c13.7 0 21.985 1.76 25.329 5.379 4.04 4.37 4 12.197 3.945 24.05l-.004.766c-.005 1.227-.01 2.495-.01 3.811 0 .446.389.81.864.81.477 0 .864-.363.864-.81 0-1.191.005-2.346.01-3.463l.005-1.101c.056-12.225.092-20.293-4.368-25.12-3.742-4.05-12.207-5.937-26.636-5.937-14.429 0-22.893 1.887-26.635 5.937-4.461 4.828-4.424 12.902-4.367 25.12.007 1.456.014 2.976.014 4.563 0 .446.388.81.864.81s.864-.363.864-.81c0-1.387-.005-2.723-.01-4.01l-.003-.559c-.054-11.854-.09-19.685 3.947-24.05 3.342-3.618 11.626-5.378 25.327-5.378"/><path fill="#695b5b" d="m50.53 27.716c-.865 0-1.565-.567-1.565-1.267 0-17.838-9.683-22.371-16.969-22.371-7.286 0-16.969 4.533-16.969 22.371 0 .699-.701 1.267-1.565 1.267s-1.565-.567-1.565-1.267c0-13.412 6.575-24.903 20.1-24.903s20.1 11.491 20.1 24.903c0 .699-.7 1.267-1.565 1.267"/><path fill="#998a91" d="m50.53 26.17c-.865 0-1.565-.567-1.565-1.267 0-17.837-9.683-22.37-16.969-22.37-7.286 0-16.969 4.533-16.969 22.37 0 .699-.701 1.267-1.565 1.267s-1.565-.567-1.565-1.267c0-13.41 6.575-24.903 20.1-24.903s20.1 11.493 20.1 24.903c0 .7-.7 1.267-1.565 1.267"/><path fill="#fff" d="m13.238 35.18c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6m0-10c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4"/><path fill="#c9c9c9" d="m13.238 23.683c3.03 0 5.5 2.468 5.5 5.5s-2.467 5.5-5.5 5.5-5.5-2.468-5.5-5.5 2.468-5.5 5.5-5.5m0 10c2.481 0 4.5-2.02 4.5-4.5s-2.02-4.5-4.5-4.5-4.5 2.02-4.5 4.5 2.02 4.5 4.5 4.5m0-11c-3.584 0-6.5 2.916-6.5 6.5s2.916 6.5 6.5 6.5 6.5-2.916 6.5-6.5-2.916-6.5-6.5-6.5zm0 10c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5"/><path fill="#fff" d="m50.762 35.18c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.692 6-6 6m0-10c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4"/><path fill="#c9c9c9" d="m50.762 23.683c3.03 0 5.5 2.468 5.5 5.5s-2.468 5.5-5.5 5.5-5.5-2.468-5.5-5.5 2.467-5.5 5.5-5.5m0 10c2.481 0 4.5-2.02 4.5-4.5s-2.02-4.5-4.5-4.5-4.5 2.02-4.5 4.5 2.02 4.5 4.5 4.5m0-11c-3.584 0-6.5 2.916-6.5 6.5s2.916 6.5 6.5 6.5 6.5-2.916 6.5-6.5-2.916-6.5-6.5-6.5zm0 10c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.571 3.5-3.5 3.5"/><g fill="#695b5b"><path d="m54.08 26.472c0 1.221-.938 2.211-2.096 2.211h-2.447c-1.157 0-2.096-.99-2.096-2.211v-3.87c0-1.221.938-2.211 2.096-2.211h2.447c1.157 0 2.096.99 2.096 2.211v3.87"/><path d="m16.558 26.472c0 1.221-.939 2.211-2.097 2.211h-2.446c-1.158 0-2.097-.99-2.097-2.211v-3.87c0-1.221.939-2.211 2.097-2.211h2.446c1.158 0 2.097.99 2.097 2.211v3.87"/></g><g fill="#998a91"><path d="m16.405 25.891c0 1.104-.896 2-2 2h-2.333c-1.104 0-2-.896-2-2v-3.5c0-1.104.896-2 2-2h2.333c1.104 0 2 .896 2 2v3.5"/><path d="m53.929 25.891c0 1.104-.896 2-2 2h-2.334c-1.104 0-2-.896-2-2v-3.5c0-1.104.896-2 2-2h2.334c1.104 0 2 .896 2 2v3.5"/></g><g fill="#695b5b"><path d="m54.08 36.35c0 1.221-.939 2.211-2.097 2.211h-2.446c-1.158 0-2.097-.99-2.097-2.211v-3.87c0-1.221.938-2.211 2.097-2.211h2.446c1.157 0 2.097.99 2.097 2.211v3.87"/><path d="m16.558 36.35c0 1.221-.939 2.211-2.097 2.211h-2.446c-1.158 0-2.097-.99-2.097-2.211v-3.87c0-1.221.939-2.211 2.097-2.211h2.446c1.158 0 2.097.99 2.097 2.211v3.87"/></g><g fill="#998a91"><path d="m16.404 35.766c0 1.104-.896 2-2 2h-2.333c-1.104 0-2-.896-2-2v-3.5c0-1.104.896-2 2-2h2.333c1.104 0 2 .896 2 2v3.5"/><path d="m53.928 35.766c0 1.104-.896 2-2 2h-2.333c-1.104 0-2-.896-2-2v-3.5c0-1.104.896-2 2-2h2.333c1.104 0 2 .896 2 2v3.5"/></g><g fill="#fff" stroke="#c9c9c9" stroke-miterlimit="10"><circle cx="13.238" cy="22.683" r="1.5"/><circle cx="50.762" cy="22.683" r="1.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.9 58.6c0 4.6-57.7 4.6-57.7 0 0-27.1-2-35.4 28.9-35.4 30.8 0 28.8 8.3 28.8 35.4" fill="#7fc6cc"/><g fill="#695b5b"><path d="m6.7 30.7c3.6-3.8 11.6-5.7 25.3-5.7s21.7 1.8 25.3 5.7c1 1 1.7 2.2 2.3 3.6-2.4-8.2-9.1-11.9-27.6-11.9-18.4 0-25.2 3.8-27.6 11.9.6-1.3 1.3-2.5 2.3-3.6"/><path d="m20 27.2v11.1c0 .7-.7 1.2-1.5 1.2h-7.8c-.8 0-1.5-.5-1.5-1.2v-8.7l-3.1 2.4v9c0 .9.9 1.6 2 1.6h13.1c1.1 0 2-.7 2-1.6v-13.8h-3.2"/><path d="m54.7 29.6v8.7c0 .7-.7 1.2-1.5 1.2h-7.8c-.8 0-1.5-.5-1.5-1.2v-11.1h-3.1v13.8c0 .9.9 1.6 2 1.6h13.1c1.1 0 2-.7 2-1.6v-9l-3.2-2.4"/></g><g fill="#998a91"><path d="m60.2 60.6c-1 0-1.7-.8-1.7-1.7 0-1.2 0-2.4 0-3.6v-.7c0-10.9.1-18.1-3.4-21.9-3-3.2-10.5-4.7-23.1-4.7-12.6 0-20.1 1.6-23.1 4.7-3.5 3.8-3.5 11-3.5 21.9v.5c0 1.2 0 2.5 0 3.8 0 .9-.8 1.7-1.7 1.7s-1.7-.8-1.7-1.7c0-1.5 0-2.9 0-4.3 0-11.6-.1-19.4 4.4-24.2 3.7-4 11.8-5.9 25.6-5.9 13.8 0 21.9 1.9 25.6 5.9 4.5 4.8 4.4 12.6 4.4 24.2v1c0 1 0 2.1 0 3.2 0 1.1-.8 1.8-1.8 1.8"/><path d="m49.4 26.5c-.8 0-1.5-.5-1.5-1.2 0-16.7-9.1-20-15.9-20s-15.9 3.3-15.9 20c0 .7-.7 1.2-1.5 1.2-.8 0-1.5-.5-1.5-1.2.1-12.5 6.2-23.3 18.9-23.3 12.7 0 18.8 10.8 18.8 23.3 0 .7-.6 1.2-1.4 1.2"/></g><g fill="#c9c9c9"><path d="m14.4 35c-3.1 0-5.6-2.5-5.6-5.6s2.5-5.6 5.6-5.6c3.1 0 5.6 2.5 5.6 5.6s-2.5 5.6-5.6 5.6m0-9.4c-2.1 0-3.8 1.7-3.8 3.8s1.7 3.8 3.8 3.8 3.7-1.7 3.7-3.8-1.6-3.8-3.7-3.8"/><path d="m49.6 35c-3.1 0-5.6-2.5-5.6-5.6s2.5-5.6 5.6-5.6c3.1 0 5.6 2.5 5.6 5.6s-2.5 5.6-5.6 5.6m0-9.4c-2.1 0-3.8 1.7-3.8 3.8s1.7 3.8 3.8 3.8c2.1 0 3.8-1.7 3.8-3.8s-1.7-3.8-3.8-3.8"/></g><g fill="#695b5b"><path d="m17.4 26.3c0 1-.8 1.9-1.9 1.9h-2.2c-1 0-1.9-.8-1.9-1.9v-3.3c0-1 .8-1.9 1.9-1.9h2.2c1 0 1.9.8 1.9 1.9v3.3"/><path d="m52.6 26.3c0 1-.8 1.9-1.9 1.9h-2.2c-1 0-1.9-.8-1.9-1.9v-3.3c0-1 .8-1.9 1.9-1.9h2.2c1 0 1.9.8 1.9 1.9v3.3"/><path d="m17.4 35.5c0 1-.8 1.9-1.9 1.9h-2.2c-1 0-1.9-.8-1.9-1.9v-3.3c0-1 .8-1.9 1.9-1.9h2.2c1 0 1.9.8 1.9 1.9v3.3"/><path d="m52.6 35.5c0 1-.8 1.9-1.9 1.9h-2.2c-1 0-1.9-.8-1.9-1.9v-3.3c0-1 .8-1.9 1.9-1.9h2.2c1 0 1.9.8 1.9 1.9v3.3"/></g><g fill="#fff"><circle cx="14.4" cy="23.3" r="1.4"/><circle cx="49.6" cy="23.3" r="1.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f45d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f45d.svg
index 3c02a9f..b877d3e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f45d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f45d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#6f2833" d="m50.05 19.81c0 0 11.647-4.371 9.855-15.81l3.404 2.479c0 0 0 10.06-10.285 16.637l-2.974-3.306"/><g fill="#db3557"><path d="m50.05 19.656c0 0 2.865-12.9 9.855-15.656l3.404 2.479c0 0-7.22 4.055-10.285 16.637l-2.974-3.46"/><path d="m63.28 55.864c0 5.515-62.56 5.515-62.56 0 0-32.584-2.158-42.554 31.28-42.554 33.438 0 31.28 9.97 31.28 42.554"/></g><path fill="#6f2833" d="m1.885 31h60.23v7h-60.23z"/><path fill="#f26b8c" d="m1.885 32h60.23v5h-60.23z"/><path fill="#db3557" d="m60.927 35.791h-57.829l-.025-2.581h57.828z"/><g fill="#f26b8c"><path d="m3.626 29h3.463v1h-3.463z"/><path d="m8.46 29h3.464v1h-3.464z"/><path d="m13.295 29h3.464v1h-3.464z"/><path d="m18.13 29h3.464v1h-3.464z"/><path d="m22.965 29h3.463v1h-3.463z"/><path d="m27.799 29h3.463v1h-3.463z"/><path d="m32.634 29h3.464v1h-3.464z"/><path d="m37.469 29h3.463v1h-3.463z"/><path d="m42.3 29h3.465v1h-3.465z"/><path d="m47.14 29h3.462v1h-3.462z"/><path d="m51.973 29h3.465v1h-3.465z"/><path d="m56.808 29h3.463v1h-3.463z"/><path d="m3.626 39h3.463v1h-3.463z"/><path d="m8.46 39h3.464v1h-3.464z"/><path d="m13.295 39h3.464v1h-3.464z"/><path d="m18.13 39h3.464v1h-3.464z"/><path d="m22.965 39h3.463v1h-3.463z"/><path d="m27.799 39h3.463v1h-3.463z"/><path d="m32.634 39h3.464v1h-3.464z"/><path d="m37.469 39h3.463v1h-3.463z"/><path d="m42.3 39h3.465v1h-3.465z"/><path d="m47.14 39h3.462v1h-3.462z"/><path d="m51.973 39h3.465v1h-3.465z"/><path d="m56.808 39h3.463v1h-3.463z"/></g><path fill="#fff" d="m62.6 57.27c-.49 0-.889-.438-.889-.978 0-1.482.005-2.913.011-4.295l.003-.86c.056-13.351.092-22.17-3.989-27.07-3.44-4.137-11.616-6.06-25.732-6.06-14.11 0-22.291 1.927-25.731 6.06-4.081 4.906-4.04 13.723-3.989 27.07l.002.636c.006 1.452.012 2.958.012 4.521 0 .539-.399.978-.889.978-.49 0-.889-.438-.889-.978 0-1.789-.007-3.503-.015-5.147-.057-13.809-.094-22.93 4.456-28.4 3.8-4.571 12.393-6.699 27.04-6.699 14.65 0 23.24 2.128 27.04 6.699 4.55 5.47 4.511 14.592 4.455 28.4l-.002.38c-.006 1.527-.013 3.115-.013 4.768 0 .538-.398.977-.888.977"/><path fill="#c9c9c9" d="m32 16.543c13.862 0 22.818 1.89 26.671 6.522 4.432 5.328 4.396 14.378 4.339 28.07-.007 1.645-.015 3.359-.015 5.149 0 .265-.178.478-.399.478-.221 0-.399-.213-.399-.478 0-1.791.008-3.507.014-5.153.056-13.459.093-22.35-4.105-27.396-3.687-4.433-12.479-6.24-26.11-6.24-13.625 0-22.418 1.808-26.1 6.24-4.2 5.05-4.163 13.938-4.107 27.397.006 1.646.014 3.362.014 5.153 0 .265-.179.478-.399.478s-.399-.213-.399-.478c0-1.79-.007-3.505-.015-5.149-.057-13.697-.094-22.746 4.338-28.07 3.853-4.632 12.81-6.522 26.671-6.522m0-1c-14.804 0-23.515 2.185-27.416 6.875-4.667 5.61-4.629 14.807-4.571 28.726.007 1.644.014 3.357.014 5.146 0 .814.618 1.478 1.378 1.478s1.378-.663 1.378-1.478c0-1.564-.006-3.072-.012-4.525l-.002-.632c-.055-13.236-.091-21.98 3.873-26.745 3.295-3.962 11.59-5.888 25.358-5.888 13.77 0 22.06 1.926 25.36 5.888 3.963 4.765 3.927 13.506 3.872 26.738l-.003.864c-.006 1.384-.011 2.816-.011 4.3 0 .814.618 1.478 1.378 1.478s1.378-.663 1.378-1.478c0-1.649.007-3.235.013-4.761l.002-.385c.057-13.919.096-23.11-4.572-28.726-3.902-4.69-12.614-6.875-27.417-6.875z"/><ellipse fill="#fff" cx="46.64" cy="34.806" rx="3.409" ry="2.783"/><g fill="#c9c9c9"><path d="m46.64 38.09c-2.149 0-3.898-1.473-3.898-3.283 0-1.812 1.749-3.285 3.898-3.285s3.898 1.474 3.898 3.285c0 1.81-1.749 3.283-3.898 3.283m0-5.568c-1.61 0-2.92 1.025-2.92 2.285 0 1.259 1.31 2.283 2.92 2.283s2.92-1.024 2.92-2.283c0-1.26-1.31-2.285-2.92-2.285"/><path d="m45.819 33.627h4.193v2.356h-4.193z"/></g><path fill="#fff" d="m49.785 44.06c.218 1.234-.35 2.42-1.307 2.42h-2.02c-.955 0-1.522-1.186-1.305-2.42l.892-5.077c.073-.405.491-.704.944-.704h.957c.453 0 .874.299.944.704l.896 5.077"/><path fill="#c9c9c9" d="m48.48 46.981h-2.02c-.489 0-.942-.225-1.275-.631-.479-.587-.671-1.476-.512-2.378l.893-5.077c.114-.637.728-1.115 1.426-1.115h.957c.702 0 1.315.479 1.426 1.116l.895 5.076c.159.902-.032 1.791-.511 2.377-.335.408-.788.632-1.278.632m-1.49-8.201c-.241 0-.438.155-.462.294l-.893 5.076c-.105.596.012 1.208.299 1.559.148.181.324.272.524.272h2.02c.201 0 .378-.092.526-.272.286-.352.403-.963.299-1.559l-.895-5.077c-.023-.139-.22-.293-.463-.293h-.956"/><path fill="#9b9596" d="m47.02 33.21h.895v6.13h-.895z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50 19.8c0 0 11.6-4.4 9.9-15.8l3.4 2.5c0 0 0 10.1-10.3 16.6l-3-3.3" fill="#6f2833"/><g fill="#db3557"><path d="m50 19.7c0 0 2.9-12.9 9.9-15.7l3.4 2.5c0 0-7.2 4.1-10.3 16.6l-3-3.4"/><path d="m63.3 55.9c0 5.5-62.6 5.5-62.6 0 0-32.6-2.2-42.6 31.3-42.6 33.4 0 31.3 10 31.3 42.6"/></g><path fill="#6f2833" d="m1.9 31h60.2v7h-60.2z"/><path fill="#f26b8c" d="m1.9 32h60.2v5h-60.2z"/><path fill="#db3557" d="m60.9 35.8h-57.8v-2.6h57.8z"/><g fill="#f26b8c"><path d="m3.6 29h3.5v1h-3.5z"/><path d="m8.5 29h3.5v1h-3.5z"/><path d="m13.3 29h3.5v1h-3.5z"/><path d="m18.1 29h3.5v1h-3.5z"/><path d="m23 29h3.5v1h-3.5z"/><path d="m27.8 29h3.5v1h-3.5z"/><path d="m32.6 29h3.5v1h-3.5z"/><path d="m37.5 29h3.5v1h-3.5z"/><path d="m42.3 29h3.5v1h-3.5z"/><path d="m47.1 29h3.5v1h-3.5z"/><path d="m52 29h3.5v1h-3.5z"/><path d="m56.8 29h3.5v1h-3.5z"/><path d="m3.6 39h3.5v1h-3.5z"/><path d="m8.5 39h3.5v1h-3.5z"/><path d="m13.3 39h3.5v1h-3.5z"/><path d="m18.1 39h3.5v1h-3.5z"/><path d="m23 39h3.5v1h-3.5z"/><path d="m27.8 39h3.5v1h-3.5z"/><path d="m32.6 39h3.5v1h-3.5z"/><path d="m37.5 39h3.5v1h-3.5z"/><path d="m42.3 39h3.5v1h-3.5z"/><path d="m47.1 39h3.5v1h-3.5z"/><path d="m52 39h3.5v1h-3.5z"/><path d="m56.8 39h3.5v1h-3.5z"/></g><path d="m62.6 57.3c-.5 0-.9-.4-.9-1 0-1.5 0-2.9 0-4.3v-.9c.1-13.4.1-22.2-4-27.1-3.4-4.1-11.6-6-25.7-6-14.1 0-22.3 1.9-25.7 6.1-4.1 4.9-4 13.7-4 27.1v.6c0 1.5 0 3 0 4.5 0 .5-.4 1-.9 1s-.9-.4-.9-1c0-1.8 0-3.5 0-5.1-.1-13.9-.1-23 4.5-28.5 3.8-4.5 12.4-6.7 27-6.7s23.2 2.1 27 6.7c4.5 5.5 4.5 14.6 4.5 28.4v.4c0 1.5 0 3.1 0 4.8 0 .5-.4 1-.9 1" fill="#fff"/><path d="m32 16.5c13.9 0 22.8 1.9 26.7 6.5 4.4 5.3 4.4 14.4 4.3 28.1 0 1.6 0 3.4 0 5.1 0 .3-.2.5-.4.5-.2 0-.4-.2-.4-.5 0-1.8 0-3.5 0-5.2.1-13.5.1-22.4-4.1-27.4-3.7-4.4-12.5-6.2-26.1-6.2-13.6 0-22.4 1.8-26.1 6.2-4.2 5-4.2 13.9-4.1 27.4 0 1.6 0 3.4 0 5.2 0 .3-.2.5-.4.5s-.4-.1-.4-.4c0-1.8 0-3.5 0-5.1-.1-13.8-.1-22.8 4.3-28.1 3.9-4.7 12.8-6.6 26.7-6.6m0-1c-14.8 0-23.5 2.2-27.4 6.9-4.7 5.6-4.6 14.8-4.6 28.7 0 1.6 0 3.4 0 5.1 0 .8.6 1.5 1.4 1.5s1.4-.7 1.4-1.5c0-1.6 0-3.1 0-4.5v-.6c-.1-13.2-.1-22 3.9-26.7 3.3-4 11.6-5.9 25.4-5.9 13.8 0 22.1 1.9 25.4 5.9 4 4.8 3.9 13.5 3.9 26.7v.9c0 1.4 0 2.8 0 4.3 0 .8.6 1.5 1.4 1.5s1.4-.7 1.4-1.5c0-1.6 0-3.2 0-4.8v-.4c-.2-13.9-.1-23.1-4.8-28.7-3.9-4.7-12.6-6.9-27.4-6.9z" fill="#c9c9c9"/><ellipse cx="46.6" cy="34.8" rx="3.4" ry="2.8" fill="#fff"/><g fill="#c9c9c9"><path d="m46.6 38.1c-2.1 0-3.9-1.5-3.9-3.3 0-1.8 1.7-3.3 3.9-3.3s3.9 1.5 3.9 3.3c0 1.8-1.7 3.3-3.9 3.3m0-5.6c-1.6 0-2.9 1-2.9 2.3 0 1.3 1.3 2.3 2.9 2.3s2.9-1 2.9-2.3c.1-1.3-1.3-2.3-2.9-2.3"/><path d="m45.8 33.6h4.2v2.4h-4.2z"/></g><path d="m49.8 44.1c.2 1.2-.3 2.4-1.3 2.4h-2c-1 0-1.5-1.2-1.3-2.4l.8-5.1c.1-.4.5-.7.9-.7h1c.5 0 .9.3.9.7l1 5.1" fill="#fff"/><path d="m48.5 47h-2c-.5 0-.9-.2-1.3-.6-.5-.6-.7-1.5-.5-2.4l.9-5.1c.1-.6.7-1.1 1.4-1.1h1c.7 0 1.3.5 1.4 1.1l.9 5.1c.2.9 0 1.8-.5 2.4-.4.4-.8.6-1.3.6m-1.5-8.2c-.2 0-.4.2-.5.3l-.9 5.1c-.1.6 0 1.2.3 1.6.1.2.3.3.5.3h2c.2 0 .4-.1.5-.3.3-.4.4-1 .3-1.6l-.9-5.1c0-.1-.2-.3-.5-.3.1 0-.8 0-.8 0" fill="#c9c9c9"/><path fill="#9b9596" d="m47 33.2h.9v6.1h-.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f45e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f45e.svg
index 6aea809..7dbe5d8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f45e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f45e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212326"><path d="m4.714 13.506c-2.628-.173-2.743 5.05-2.71 7.679.062 4.855 12.11 14.495 13.913 14.283 1.262-.149 2.791-1.84 4.718-1.461 0 0-11.04-20.18-15.921-20.501"/><path d="m22.666 32.955c-2.698 2.792-.675 13.351 1.755 16.378 5.542 6.91 21.6 12.667 29.719 12.667 3.87 0 7.413-1.899 7.806-5.167.557-4.623-3.24-12.781-8.236-15.578-7.367-4.123-25.18-14.364-31.04-8.3"/></g><path fill="#3d4347" d="m7.385 2.638c-3.178 2.743-4.634 12.12-3.467 16.15 1.236 4.271 10.656 8.978 13.221 12.615 2.665 3.781 4.711 13.572 8.255 16.55 6.509 5.47 24.632 12.7 32.616 9.753 11.295-4.168-16.207-35.778-26.767-42.666-6.217-4.054-19.804-15.897-23.858-12.398"/><g fill="#fff"><path d="m25.915 45.79c2.809 1.926 5.84 3.492 8.929 4.894 3.096 1.388 6.276 2.592 9.524 3.519 1.623.461 3.266.851 4.918 1.111 1.646.252 3.323.398 4.911.207 1.579-.172 3.07-.837 3.442-2.114.414-1.282-.029-2.915-.628-4.382-.189-.46.029-.986.488-1.176.46-.189.986.029 1.176.488.005.012.012.029.016.04.302.843.555 1.72.681 2.649.119.925.121 1.936-.252 2.918-.358.989-1.178 1.806-2.065 2.231-.892.442-1.821.612-2.722.688-1.808.133-3.548-.109-5.246-.444-1.698-.345-3.355-.817-4.984-1.356-3.255-1.088-6.402-2.441-9.453-3.974-3.042-1.544-6.01-3.25-8.735-5.299"/><path d="m15.04 29.22c7.665 11.494 11.87 12.759 17.54 14.775 1.686.601 5.743 1.13 7.164.042 1.551-1.188 1.767-7.816 1.767-7.816s7.832 4.374 9.823 2.881c2.104-1.578-9.02-14.208-9.02-14.208s2.966 4.304 1.753 4.73c-6.067 2.121-10.735-11.783-13.01-14.718-.688-.887-2.023-2.173-3.147-2.227-1.593-.077-6.999.906-6.863 2.493.114 1.331 3.14-.618 4.198.199 2.886 2.221 7.658 10.303 7.354 13.923-.203 2.427-4.773 8.984-7.17 9.45-1.386.271-10.382-9.524-10.382-9.524"/></g><path fill="#a6876c" d="m8.243 2.763c-2.074 1.302-1.169 7.538-.174 9.77.767 1.722 3.863 4.491 5.693 4.953 2.618.662 10.53-3.638 10.53-3.638s5.165 1.393 4.241.545c-3.232-2.963-17.582-13.33-20.29-11.63"/><g fill="#212326"><path d="m58.649 39.4c-.061 0-.121-.005-.183-.017-.215-.039-5.295-1.012-8.306-4.58-2.129-2.525-3.307-5.402-4.445-8.184-1.614-3.942-3.139-7.665-7.232-9.923-1.921-1.059-4.114-.36-4.136-.353-.522.178-1.091-.102-1.269-.625-.178-.523.102-1.091.624-1.269.123-.041 3.03-1 5.745.495 4.713 2.599 6.444 6.827 8.118 10.917 1.08 2.639 2.197 5.367 4.124 7.65 2.541 3.01 7.095 3.896 7.141 3.904.543.102.9.623.8 1.166-.089.483-.508.819-.981.819"/><path d="m29.537 30.15c-.214 0-.43-.068-.612-.21-.437-.339-.516-.967-.177-1.403 2.093-2.693 7.586-5.9 13.414-3.047.496.243.701.842.459 1.338-.243.496-.84.702-1.338.458-5.34-2.614-9.81 1-10.955 2.478-.198.253-.493.386-.791.386"/><path d="m27.348 26.85c-.214 0-.43-.068-.612-.21-.437-.339-.516-.967-.177-1.403 2.092-2.693 7.585-5.902 13.413-3.047.496.243.701.842.459 1.338-.243.496-.841.702-1.338.458-5.341-2.613-9.808 1-10.954 2.478-.197.253-.492.386-.791.386"/><path d="m25.02 23.508c-.214 0-.43-.068-.612-.21-.437-.339-.516-.967-.177-1.403 2.094-2.693 7.585-5.901 13.414-3.046.495.243.7.842.458 1.338-.243.496-.843.702-1.339.458-5.337-2.613-9.808 1-10.953 2.477-.197.253-.492.386-.791.386"/><path d="m22.922 20.886c-.214 0-.43-.068-.612-.21-.437-.339-.516-.967-.177-1.403 2.094-2.693 7.588-5.9 13.414-3.046.496.243.701.842.459 1.338-.243.496-.845.702-1.338.458-5.343-2.617-9.81 1-10.955 2.477-.197.253-.492.386-.791.386"/><path d="m20.684 18.04c-.214 0-.43-.068-.612-.21-.437-.339-.516-.967-.177-1.403 2.091-2.693 7.58-5.902 13.413-3.046.496.243.701.842.459 1.338-.243.496-.839.702-1.337.458-5.346-2.616-9.811 1-10.954 2.477-.198.253-.493.386-.792.386"/><path d="m15.829 56.25c-3.674 0-7.406-1.196-7.646-1.274-.525-.17-.813-.734-.642-1.26s.737-.813 1.261-.641c2.25.73 8.652 2.181 11.208.133 2.943-2.355 1.967-6.113.128-12.05-1.756-5.671-3.747-12.1-1.249-18.7.582-1.537 2.288-7.096 2.306-7.152.162-.528.719-.826 1.249-.663.528.162.825.721.663 1.25-.071.231-1.743 5.676-2.347 7.273-2.255 5.959-.372 12.04 1.288 17.4 1.732 5.593 3.369 10.876-.788 14.203-1.394 1.117-3.404 1.481-5.431 1.481"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212326"><path d="m4.7 13.5c-2.6-.2-2.7 5.1-2.7 7.7.1 4.8 12.1 14.5 13.9 14.3 1.3-.1 2.8-1.8 4.7-1.5 0 0-11-20.2-15.9-20.5"/><path d="m22.7 33c-2.7 2.7-.7 13.3 1.7 16.3 5.6 6.9 21.6 12.7 29.7 12.7 3.9 0 7.4-1.9 7.8-5.2.6-4.6-3.2-12.8-8.2-15.6-7.4-4.1-25.2-14.3-31-8.2"/></g><path d="m7.4 2.6c-3.2 2.8-4.6 12.2-3.5 16.2 1.2 4.3 10.7 9 13.2 12.6 2.7 3.8 4.7 13.6 8.3 16.5 6.5 5.5 24.6 12.7 32.6 9.8 11.3-4.2-16.2-35.8-26.8-42.7-6.2-4-19.8-15.9-23.8-12.4" fill="#3d4347"/><g fill="#fff"><path d="m25.9 45.8c2.8 1.9 5.8 3.5 8.9 4.9 3.1 1.4 6.3 2.6 9.5 3.5 1.6.5 3.3.9 4.9 1.1 1.6.3 3.3.4 4.9.2 1.6-.2 3.1-.8 3.4-2.1.4-1.3 0-2.9-.6-4.4-.2-.5 0-1 .5-1.2.5-.2 1 0 1.2.5.3.8.6 1.7.7 2.6.1.9.1 1.9-.3 2.9-.4 1-1.2 1.8-2.1 2.2-.9.4-1.8.6-2.7.7-1.8.1-3.5-.1-5.2-.4-1.7-.3-3.4-.8-5-1.4-3.3-1.1-6.4-2.4-9.5-4-2.9-1.4-5.9-3.1-8.6-5.1"/><path d="m15 29.2c7.7 11.5 11.9 12.8 17.6 14.8 1.7.6 5.7 1.1 7.2 0 1.6-1.2 1.8-7.8 1.8-7.8s7.8 4.4 9.8 2.9c2.1-1.6-9-14.2-9-14.2s3 4.3 1.8 4.7c-6.2 2.1-10.9-11.8-13.2-14.7-.7-.9-2-2.2-3.1-2.2-1.6-.1-7 .9-6.9 2.5.1 1.3 3.1-.6 4.2.2 2.9 2.2 7.7 10.3 7.4 13.9-.2 2.4-4.8 9-7.2 9.4-1.4.3-10.4-9.5-10.4-9.5"/></g><path d="m8.2 2.8c-2.1 1.3-1.2 7.5-.2 9.8.8 1.7 3.9 4.5 5.7 5 2.6.7 10.5-3.6 10.5-3.6s5.2 1.4 4.2.5c-3.1-3.1-17.4-13.4-20.2-11.7" fill="#a6876c"/><g fill="#212326"><path d="m58.6 39.4c-.1 0-.1 0-.2 0-.2 0-5.3-1-8.3-4.6-2.1-2.5-3.3-5.4-4.4-8.2-1.6-3.9-3.1-7.7-7.2-9.9-1.9-1.1-4.1-.4-4.1-.4-.5.2-1.1-.1-1.3-.6-.2-.5.1-1.1.6-1.3.1 0 3-1 5.7.5 4.7 2.6 6.4 6.8 8.1 10.9 1.1 2.6 2.2 5.4 4.1 7.7 2.5 3 7.1 3.9 7.1 3.9.5.1.9.6.8 1.2 0 .5-.4.8-.9.8"/><path d="m29.5 30.2c-.2 0-.4-.1-.6-.2-.4-.3-.5-1-.2-1.4 2.1-2.7 7.6-5.9 13.4-3 .5.2.7.8.5 1.3-.2.5-.8.7-1.3.5-5.3-2.6-9.8 1-11 2.5-.2.1-.5.3-.8.3"/><path d="m27.3 26.9c-.2 0-.4-.1-.6-.2-.4-.3-.5-1-.2-1.4 2.1-2.7 7.6-5.9 13.4-3 .5.2.7.8.5 1.3-.2.5-.8.7-1.3.5-5.3-2.6-9.8 1-11 2.5-.2.1-.5.3-.8.3"/><path d="m25 23.5c-.2 0-.4-.1-.6-.2-.4-.3-.5-1-.2-1.4 2.1-2.7 7.6-5.9 13.4-3 .5.2.7.8.5 1.3-.2.5-.8.7-1.3.5-5.3-2.6-9.8 1-11 2.5-.2.2-.5.3-.8.3"/><path d="m22.9 20.9c-.2 0-.4-.1-.6-.2-.4-.3-.5-1-.2-1.4 2.1-2.7 7.6-5.9 13.4-3 .5.2.7.8.5 1.3-.2.5-.8.7-1.3.5-5.3-2.6-9.8 1-11 2.5-.2.2-.5.3-.8.3"/><path d="m20.7 18c-.2 0-.4-.1-.6-.2-.4-.3-.5-1-.2-1.4 2.1-2.7 7.6-5.9 13.4-3 .5.2.7.8.5 1.3-.2.5-.8.7-1.3.5-5.3-2.6-9.8 1-11 2.5-.2.2-.5.3-.8.3"/><path d="m15.8 56.2c-3.7 0-7.4-1.2-7.6-1.3-.5-.2-.8-.7-.6-1.3s.7-.8 1.3-.6c2.2.7 8.7 2.2 11.2.1 2.9-2.4 2-6.1.1-12-1.8-5.7-3.7-12.1-1.2-18.7.6-1.5 2.3-7.1 2.3-7.2.2-.5.7-.8 1.2-.7.5.2.8.7.7 1.2-.1.2-1.7 5.7-2.3 7.3-2.3 6-.4 12 1.3 17.4 1.7 5.6 3.4 10.9-.8 14.2-1.5 1.3-3.5 1.6-5.6 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f45f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f45f.svg
index 7eece9e..a54733e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f45f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f45f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e5e5e5" d="m0 46h64v8h-64z"/><path fill="#3e4347" d="m0 49.5h64v1h-64z"/><path fill="#9f9e9c" d="m0 53h64v1h-64z"/><g fill="#e5e5e5"><path d="m64 46h-12v-6c6.627 0 12 2.686 12 6"/><path d="m1 47h5v6h-5z"/></g><path fill="#9f9e9c" d="m5 46h1v8h-1z"/><g fill="#3e4347"><path d="m0 46h64v1h-64z"/><path d="m52 46v-6c0 0-15.16-6.334-19.21-9.912-6.791-6-8.459-17.333-8.375-19 .063-1.258-4.02-.18-5 .609-.441.355-.729 1.574-.75 2.141-.156 4.204 4.375 16.25 4.375 16.25l28.959 15.912"/></g><path fill="#4f5559" d="m46.979 39.27c-5.188-2.336-9.281-2.855-13.563-5.188-9.334-5.082-13.1-16.755-13.875-17.12-2.736-1.307-7.709 2.292-11.957 2.042-4.081-.239-7.584-3.249-7.584-3.249s1.874 6.176 2.422 10.543c.234 1.868.328 5.874-1.422 9.708-1.042 2.281-1 9.994-1 9.994h52c0 0-.521-4.697-5.02-6.725"/><g fill="none" stroke-miterlimit="10"><g stroke="#f5f5f5"><circle cx="17.926" cy="20.923" r="1.602"/><circle cx="20.669" cy="26.05" r="1.602"/><circle cx="24.398" cy="30.877" r="1.602"/><circle cx="28.793" cy="34.727" r="1.602"/><circle cx="33.601" cy="37.93" r="1.602"/><circle cx="38.99" cy="40" r="1.602"/><circle cx="44.41" cy="41.13" r="1.602"/></g><g stroke="#ccc"><g stroke-width="2"><path d="m17.926 20.923c0 0 8.132-2.334 8.364-5.168"/><path d="m20.669 25.959c0 0 7.249-3.87 6.9-6.691"/><path d="m24.398 30.877c0 0 5.579-4.459 4.813-7.193"/><path d="m28.793 34.836c0 0 4.113-4.947 2.891-7.51"/><path d="m33.602 38.16c0 0 3.194-4.991 1.731-7.424"/><path d="m38.99 40.06c0 0 2.229-4.798.557-7.09"/><path d="m44.41 41.16c0 0 .95-3.766-.759-6.03"/></g><g stroke-width=".5"><path d="m1 17.651c0 0 .167.078.451.206"/><path stroke-dasharray="0.9946 0.9946" d="m2.358 18.258c1.562.676 4.077 1.692 5.37 1.831 2.836.304 7.743-2.615 10.563-2.188 1.237.188 8.338 14.266 13.375 16.542 5.438 2.457 13.465 4.336 16.813 6.689 1.097.771 2.364 2.811 3.04 3.99"/><path d="m51.765 45.562c.149.272.235.438.235.438s-.175-.027-.49-.079"/><path stroke-dasharray="0.9927 0.9927" d="m50.53 45.761c-3.719-.618-13.466-2.315-16.932-3.673-3.688-1.442-9.482-5.433-12.06-8.438-2.482-2.892-7.12-11.79-8.579-14.639"/><path d="m12.735 18.567c-.145-.285-.225-.443-.225-.443"/></g></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m7.6 13.2c0 0 1.7-2.2 9.2 1.2 5.9 2.7-10.4 10.4-12 7.2-1-1.9 2.8-8.4 2.8-8.4" fill="#a8d600"/><path d="m52 38.1c-9.2-6.4-18.8-25.4-20-25.4-3.4 0-5.6 1.3-5.6 1.3l21.9 31.8c0 .1 4.9-6.9 3.7-7.7" fill="#5b636b"/><path d="m56.5 41.1c-1.4-1.2-5.4-2-6.5-3.1-4.2-4.6-13-12.7-20.5-26.4-2.7-5.1-15.2 3.8-15.2 3.8l21.8 34.7c.2 0 25.6-4.7 20.4-9" fill="#333"/><path d="m36.9 47.9c1.3-1.1 1.2-7.1.1-8.6-6.8-9.8-18-24.6-22.4-24.6-4.6 0-5.4 6.2-8 6.2-2.2 0 .9-7.8.9-7.8-4.2 4.7-4.9 19.7-4.9 19.7s17.8 29.3 34.3 15.1" fill="#5b636b"/><g fill="#69727a"><path d="m2.7 31.5c0 0-.4-3.9 1.3-9.1.1 5.9 3.8 7.3 2.8 15.1l-4.1-6"/><path d="m22.2 49.6c4.6-10.7 24.4.1 34.3-8.5 1.6.2 4.8 5.7 4.8 5.7s-3.6 14.4-39.1 2.8"/></g><path d="m2.7 31c-1 0-.8 6.9 0 8 5.3 6.6 10.8 8.3 18.1 17.1 8.8 10.5 41.2 5.5 41.2-3.5 0-7.4-.9-6.7-.9-6.7-2.3 6-22.8 7.3-30.3 5.7-16.5-3.4-27-20.6-28.1-20.6" fill="#d0d0d0"/><g fill="#333"><ellipse cx="14.8" cy="18.2" rx="1.4" ry="1.7"/><ellipse cx="18.8" cy="22.8" rx="1.4" ry="1.7"/><ellipse cx="22.4" cy="27.2" rx="1.4" ry="1.7"/><ellipse cx="26.1" cy="32.7" rx="1.4" ry="1.7"/><ellipse cx="29.6" cy="36.9" rx="1.4" ry="1.7"/><ellipse cx="33.3" cy="41.8" rx="1.4" ry="1.7"/></g><g fill="#a8d600"><path d="m33.3 43c-.2 0-.5-.1-.7-.3-.4-.5-.4-1.2 0-1.7.2-.3 5.6-6.6 15.8-6.6.5 0 1 .5 1 1.2 0 .6-.4 1.2-1 1.2-9.4 0-14.4 5.9-14.5 5.9-.1.2-.3.3-.6.3"/><path d="m29.7 38.1c-.2 0-.4-.1-.6-.3-.4-.4-.5-1.1-.2-1.6.2-.3 4.4-6.6 16.2-6.6.5 0 1 .5 1 1.2 0 .6-.4 1.2-1 1.2-10.7 0-14.6 5.7-14.7 5.7-.1.2-.4.4-.7.4"/><path d="m26.2 33.9c-.2 0-.5-.1-.7-.3-.4-.4-.4-1.2-.1-1.7 4.8-6.4 16.1-6.5 16.6-6.5.5 0 1 .5 1 1.2 0 .6-.4 1.2-1 1.2-.1 0-10.9.1-15.2 5.7-.1.3-.4.4-.6.4"/><path d="m22.5 28.3c-.3 0-.6-.2-.8-.5-.3-.5-.2-1.3.2-1.6.2-.2 6-5.3 16.8-5.3.5 0 1 .5 1 1.2s-.4 1.2-1 1.2c-10.1 0-15.6 4.8-15.6 4.9-.2.1-.4.1-.6.1"/><path d="m18.9 24c-.3 0-.6-.2-.8-.4-.3-.5-.3-1.2.2-1.7.2-.2 5.7-5.4 17.5-5.4.5 0 1 .5 1 1.2 0 .6-.4 1.2-1 1.2-11.1 0-16.2 4.9-16.3 4.9-.2.1-.4.2-.6.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f460.svg b/build/js/jsxc/lib/emojione/assets/svg/1f460.svg
index 54b5b21..57b7e17 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f460.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f460.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m6.078 28.1l2 30.665 2.163-.788c0 0-1.417-20.463 3.791-22.271l-7.954-7.606"/><path fill="#3e4347" d="m49.4 47.66c0 0-4.324-1.386-14.06 1.385-9.737 2.77-13.522-4.431-24.338-29.913-5.05-11.891-7.54-18.332-2.162-19.11 0 0-.119-.014-.328-.021-2.513.203-4.01 2.522-4.365 3.163-2.521 4.531-6.459 9.667-2.377 18.343 0 0 3.726 14.283 3.726 36.683l2.587.577c0 0-1.066-24.74 1.858-25.636 0 0 2.575 2.716 9.716 16.745 6.453 12.678 12.709 14.13 18.928 14.13h22.986c1.215-.264 2.434-1.108 2.434-4.431 0-3.325-7.572-9.14-14.604-11.91"/><path fill="#94989b" d="m10.998 19.13c10.816 25.482 14.602 32.682 24.338 29.913 6.074-1.729 10.04-1.839 12.17-1.679-13.266-7.266-14.846-10.894-22.717-27.679-8.248-17.588-11.35-19.665-15.954-19.665-5.378.778-2.886 7.219 2.163 19.11"/><path fill="#d0d0d0" d="m10.998 19.13c10.816 25.482 14.602 32.682 24.338 29.913.279-.08.553-.154.822-.228-12.167-8.419-18.18-27.361-21.756-33.467-2-3.418-4.605-4.448-6.803-4.581.883 2.396 2.049 5.185 3.399 8.363"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.1 28.1l2 30.7 2.2-.8c0 0-1.4-20.5 3.8-22.3l-8-7.6" fill="#ed4c5c"/><path d="m49.4 47.7c0 0-4.3-1.4-14.1 1.4-9.7 2.8-13.5-4.4-24.3-29.9-5.1-12-7.5-18.4-2.2-19.2 0 0-.1 0-.3 0-2.5.2-4 2.5-4.4 3.2-2.5 4.5-6.5 9.7-2.4 18.3 0 0 3.7 14.3 3.7 36.7l2.6.6c0 0-1.1-24.7 1.9-25.6 0 0 2.6 2.7 9.7 16.7 6.5 12.7 12.8 14.1 19 14.1h23c1.2-.3 2.4-1.1 2.4-4.4 0-3.4-7.6-9.2-14.6-11.9" fill="#3e4347"/><path d="m11 19.1c10.8 25.5 14.6 32.7 24.3 29.9 6.1-1.7 10-1.8 12.2-1.7-13.3-7.3-14.8-10.9-22.7-27.7-8.3-17.5-11.4-19.6-16-19.6-5.3.8-2.9 7.2 2.2 19.1" fill="#94989b"/><path d="m11 19.1c10.8 25.5 14.6 32.7 24.3 29.9.3-.1.6-.2.8-.2-12.1-8.4-18.1-27.3-21.7-33.5-2-3.4-4.6-4.4-6.8-4.6.9 2.5 2 5.3 3.4 8.4" fill="#d0d0d0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f461.svg b/build/js/jsxc/lib/emojione/assets/svg/1f461.svg
index 3614298..e17e173 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f461.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f461.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#725944" d="m-.015 17.315c0 0 4.421 4.175 8.02 22.12 0 0 .742 3.122 6.338 2.268 4.465-.682 10.146-.35 21.488 4.854 0 0-7.96-10.77-17.345-18.662-7.468-6.284-16.472-9.963-18.501-10.579"/><g fill="#298959"><path d="m31.897 37.1c-10.368-4.568-15.762-5.902-20.03-5.251-3.568.544-5.324-.526-6.01-1.375l.432 1.555c0 0 .746 2.87 6.342 2.02 4.465-.682 10.147.699 21.488 5.902-.001-.001-.813-1.099-2.221-2.847"/><path d="m45.756 32.859c0 0 3.256 1.588 3.215 4.559 1.033.129 9.941 2.212 10.617 2.374-2.027-4.319-7.479-8.728-13.832-6.933"/></g><path fill="#e2c69e" d="m7.095 15c6.126 0 13.595 1.319 20.394 7.628 8.05 7.467 15.999 13.278 24.531 14.857 9.07 1.679 13.984 1.859 11.233 6.233-2.751 4.375-28.02 6.01-34.07-4.248-13.12-22.244-42.744-24.47-22.09-24.47"/><path fill="#b39066" d="m63.982 41.565c-.006.654-.238 1.373-.729 2.153-2.751 4.375-28.02 6.01-34.07-4.248-9.918-16.814-29.27-22.19-29.2-23.813h-.002v1.58h.002c-.149 1.61 18.455 6.808 28.393 23.656 6.05 10.259 32.12 9.389 34.874 5.01.481-.767.716-1.473.729-2.115v-2.227z"/><path fill="#52c18e" d="m58.36 35.566c-5.893-7.419-20.08-9.454-30.818 1.34 4.73 8.99 9.961 8.464 9.961 8.464 1.222-15.551 12.81-12.442 16.513-10.804 3.131 1.385 3.634 3.923 3.634 3.923s1.288.28 2.345.482c0-.905-1.101-2.734-1.635-3.405"/><path fill="#298959" d="m49.48 30.04c-7.635-2.107-14.691 2.551-20.568 9.208.53.878 1.789 2.353 1.789 2.353 5.133-6.54 11.715-13.384 18.779-11.561"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 17.3c0 0 4.4 4.2 8 22.1 0 0 .7 3.1 6.3 2.3 4.5-.7 10.1-.3 21.5 4.9 0 0-8-10.8-17.3-18.7-7.5-6.3-16.5-10-18.5-10.6" fill="#725944"/><g fill="#298959"><path d="m31.9 37.1c-10.4-4.6-15.8-5.9-20-5.3-3.6.5-5.3-.5-6-1.4l.4 1.6c0 0 .7 2.9 6.3 2 4.5-.7 10.1.7 21.5 5.9 0 0-.8-1-2.2-2.8"/><path d="m45.8 32.9c0 0 3.3 1.6 3.2 4.6 1 .1 9.9 2.2 10.6 2.4-2-4.4-7.5-8.8-13.8-7"/></g><path d="m7.1 15c6.1 0 13.6 1.3 20.4 7.6 8 7.5 16 13.3 24.5 14.9 9.1 1.7 14 1.9 11.2 6.2-2.8 4.4-28 6-34.1-4.2-13-22.3-42.7-24.5-22-24.5" fill="#e2c69e"/><path d="m64 41.6c0 .7-.2 1.4-.7 2.2-2.8 4.4-28 6-34.1-4.2-9.9-16.9-29.3-22.3-29.2-23.9v1.6c-.1 1.6 18.5 6.8 28.4 23.7 6.1 10.3 32.1 9.4 34.9 5 .5-.8.7-1.5.7-2.1v-2.3" fill="#b39066"/><path d="m58.4 35.6c-5.9-7.4-20.1-9.5-30.8 1.3 4.7 9 10 8.5 10 8.5 1.1-15.6 12.7-12.5 16.4-10.8 3.1 1.4 3.6 3.9 3.6 3.9s1.3.3 2.3.5c.1-.9-1-2.8-1.5-3.4" fill="#52c18e"/><path d="m49.5 30c-7.6-2.1-14.7 2.6-20.6 9.2.5.9 1.8 2.4 1.8 2.4 5.1-6.5 11.7-13.4 18.8-11.6" fill="#298959"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f462.svg b/build/js/jsxc/lib/emojione/assets/svg/1f462.svg
index d8df9d7..72c94f3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f462.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f462.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#3e4347" cx="42.845" cy=".666" rx="9.06" ry=".667"/><path fill="#ed4c5c" d="m51.869.726c-.408.34-4.292.607-9.02.607-4.734 0-8.62-.267-9.02-.607l-.735 10.235c0 0 1.95 1.482 9.719 1.482 6.927 0 9.722-.741 9.722-.741l-.659-10.976"/><path fill="#c94747" d="m59.798 57.919c-11.467-6.666-10.35-20.875-10.35-26.516 0-3.503.548-12.21 1.042-19.358-1.553.194-4.05.398-7.686.398-3.934 0-6.374-.38-7.826-.755.453 5.953.904 13.516.904 20.01 0 7.111-3.418 8.598-1.818 13.48 1.14 3.479 3.589 3.843 5.765 4.8 3.01 1.321 4.563 1.842 7.801 11.05 1.674 4.758 16.363 2.369 16.363 2.369s.365-2.831-4.195-5.481"/><g fill="#3e4347"><path d="m39.829 49.979c-1.674-.736-3.511-1.123-4.787-2.846.57 5.358 1.82 16.867 1.82 16.867h2.702l.898-13.741c-.204-.092-.414-.184-.633-.28"/><ellipse cx="21.15" cy=".666" rx="9.06" ry=".667"/></g><path fill="#ed4c5c" d="m12.13.726c.408.34 4.291.607 9.02.607 4.734 0 8.621-.267 9.03-.607l.735 10.235c0 0-1.951 1.482-9.722 1.482-6.925 0-9.719-.741-9.719-.741l.658-10.976"/><path fill="#c94747" d="m4.201 57.919c11.469-6.666 10.352-20.875 10.352-26.516 0-3.503-.549-12.21-1.042-19.358 1.552.194 4.048.398 7.683.398 3.935 0 6.375-.38 7.827-.755-.452 5.953-.903 13.516-.903 20.01 0 7.111 3.418 8.598 1.818 13.48-1.141 3.479-3.589 3.843-5.766 4.8-3.01 1.321-4.563 1.842-7.801 11.05-1.673 4.758-16.362 2.369-16.362 2.369s-.366-2.831 4.194-5.481"/><path fill="#3e4347" d="m24.17 49.979c1.675-.736 3.512-1.123 4.786-2.846-.568 5.358-1.818 16.867-1.818 16.867h-2.703l-.897-13.741c.204-.092.414-.184.632-.28"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.6 58.8c-5.5 0-50.7-15.1-50.7-15.1l1.5 18.3h6.3c0 0 .1-5.8 1-8.7 8.2 0 12.4 8.7 15.6 8.7 5.1 0 21.3 0 26.3 0 .5 0 .5-3.2 0-3.2" fill="#3e4347"/><path d="m54.5 50.3c-15.2-5.5-23.3-10.6-24.2-36.1l-21.9-.4c1.6 19.5-2.1 14.2-3 25.5-.4 5.3 3.5 10 10.4 10 8.9 0 15.9 9.5 17.5 9.5 5 0 24.6 0 24.6 0s2.5-6.3-3.4-8.5" fill="#c94747"/><path fill="#3e4347" d="m13.8 11.1h2.2v21.9h-2.2z"/><path d="M34,2.7H5L6.2,14c0,0,4.3,1.6,13.2,1.6c8,0,13.2-0.8,13.2-0.8L34,2.7z" fill="#ed4c5c"/><path d="m19.5 2c-5.8 0-14.5.3-14.5.7 0 .4 8.7.7 14.5.7s14.5-.3 14.5-.7c0-.4-8.7-.7-14.5-.7" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f463.svg b/build/js/jsxc/lib/emojione/assets/svg/1f463.svg
index d8a7d26..2330610 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f463.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f463.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m26.969 27.23c-4.493 7.975 8.06 13.907.978 16.894-7.082 2.987-10.488-3.63-14.04-12.06-3.559-8.435-.701-17.693 6.381-20.681 7.08-2.987 12.632 5.298 6.686 15.852"/><path d="m23.843 5.443c.015-2.331 1.595-3.457 3.534-3.443 1.938.014 3.501 1.162 3.483 3.493-.023 3.333-1.605 4.96-3.544 4.946-1.937-.013-3.498-1.663-3.473-4.996"/><path d="m17.945 6.573c-.247-1.658.75-2.633 2.129-2.838 1.378-.206 2.616.437 2.863 2.095.353 2.371-.591 3.702-1.97 3.907-1.377.205-2.668-.794-3.02-3.164"/><path d="m13.61 9.45c-.397-1.415.363-2.373 1.54-2.704 1.177-.33 2.324.092 2.722 1.507.568 2.023-.106 3.286-1.283 3.616s-2.41-.395-2.979-2.419"/><path d="m11.27 13.44c-.453-1.042.028-1.857.896-2.234s1.792-.174 2.246.869c.647 1.491.264 2.53-.604 2.907-.868.377-1.889-.05-2.538-1.542"/><path d="m9.838 16.909c-.362-.833.022-1.484.716-1.786s1.432-.139 1.795.694c.518 1.191.211 2.02-.482 2.323-.694.302-1.51-.039-2.029-1.231"/><path d="m35.29 44.15c2.948 8.666-10.482 12.185-4.072 16.425 6.411 4.24 10.977-1.636 16.03-9.271 5.05-7.635 3.947-17.262-2.463-21.503-6.41-4.24-13.392 2.88-9.492 14.349"/><path d="m42.38 23.317c.413-2.294-.932-3.691-2.84-4.04-1.907-.343-3.655.498-4.067 2.792-.591 3.281.665 5.171 2.572 5.515 1.907.343 3.744-.991 4.335-4.272"/><path d="m47.965 25.514c.548-1.584-.252-2.726-1.569-3.182-1.316-.456-2.651-.052-3.199 1.532-.784 2.265-.103 3.748 1.215 4.203 1.316.456 2.77-.288 3.553-2.553"/><path d="m51.696 29.14c.65-1.318.08-2.4-1.016-2.941-1.096-.541-2.302-.337-2.953.98-.931 1.885-.5 3.249.596 3.791 1.095.541 2.442.055 3.373-1.83"/><path d="m53.26 33.495c.638-.942.314-1.833-.469-2.362-.783-.531-1.729-.502-2.367.439-.912 1.347-.726 2.439.058 2.969.782.532 1.865.3 2.778-1.046"/><path d="m54.03 37.17c.51-.752.251-1.463-.375-1.887s-1.381-.4-1.892.352c-.729 1.076-.579 1.948.046 2.373.627.424 1.492.238 2.221-.838"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m27 27.2c-4.5 8 8.1 13.9 1 16.9-7.1 3-10.5-3.6-14-12.1-3.6-8.4-.7-17.7 6.4-20.7 7-2.9 12.5 5.4 6.6 15.9"/><path d="m23.8 5.4c0-2.3 1.6-3.5 3.5-3.4 1.9 0 3.5 1.2 3.5 3.5 0 3.3-1.6 5-3.5 4.9-1.9 0-3.5-1.6-3.5-5"/><path d="m17.9 6.6c-.2-1.7.8-2.6 2.1-2.8 1.4-.2 2.6.4 2.9 2.1.4 2.4-.6 3.7-2 3.9-1.3.1-2.6-.9-3-3.2"/><path d="m13.6 9.4c-.4-1.4.4-2.3 1.5-2.7 1.2-.3 2.3.1 2.7 1.5.6 2-.1 3.3-1.3 3.6s-2.3-.3-2.9-2.4"/><path d="m11.3 13.4c-.5-1 0-1.9.9-2.2s1.8-.2 2.2.9c.6 1.5.3 2.5-.6 2.9-.9.4-1.9-.1-2.5-1.6"/><path d="m9.8 16.9c-.4-.8 0-1.5.7-1.8s1.4-.1 1.8.7c.5 1.2.2 2-.5 2.3-.6.3-1.4 0-2-1.2"/><path d="m35.3 44.2c2.9 8.7-10.5 12.2-4.1 16.4 6.4 4.2 11-1.6 16-9.3s3.9-17.3-2.5-21.5c-6.3-4.2-13.3 2.9-9.4 14.4"/><path d="m42.4 23.3c.4-2.3-.9-3.7-2.8-4-1.9-.3-3.7.5-4.1 2.8-.6 3.3.7 5.2 2.6 5.5 1.8.3 3.7-1 4.3-4.3"/><path d="m48 25.5c.5-1.6-.3-2.7-1.6-3.2-1.3-.5-2.7-.1-3.2 1.5-.8 2.3-.1 3.7 1.2 4.2 1.3.5 2.8-.2 3.6-2.5"/><path d="m51.7 29.1c.7-1.3.1-2.4-1-2.9s-2.3-.3-3 1c-.9 1.9-.5 3.2.6 3.8 1.1.5 2.5 0 3.4-1.9"/><path d="m53.3 33.5c.6-.9.3-1.8-.5-2.4-.8-.5-1.7-.5-2.4.4-.9 1.3-.7 2.4.1 3 .8.6 1.8.3 2.8-1"/><path d="m54 37.2c.5-.8.3-1.5-.4-1.9s-1.4-.4-1.9.4c-.7 1.1-.6 1.9 0 2.4.7.3 1.6.1 2.3-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f464.svg b/build/js/jsxc/lib/emojione/assets/svg/1f464.svg
index 0174cc9..9c0e92d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f464.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f464.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m60.669 56.14c-.346-.791-19.11-11.957-19.14-11.973-2.648-1.947-2.972-3.84-.835-4.928 3.495-1.779 6.068-11.06 6.757-15.02 5.144-29.613-36.05-29.628-30.911 0 .688 3.962 3.259 13.244 6.754 15.02 2.153 1.094 1.729 2.895-.888 4.969-.871.691-13.02 7.465-16.453 9.76-.006.002-.018.01-.018.01h.002c-1.416.947-2.424 1.736-2.609 2.162-.979 2.256-1.333 7.873-1.333 7.873h60c0 0-.353-5.617-1.331-7.873"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.7 56.1c-.3-.8-19.1-12-19.1-12-2.6-1.9-3-3.8-.8-4.9 1.8-.9 3.4-3.9 4.6-7.1.2.1.4.1.7 0 5-1.5 5.1-11.5 1.7-9.7 3.1-27.2-34.5-27.2-31.4 0-3.4-1.8-3.4 8.3 1.6 9.7.2.1.5 0 .7 0 1.2 3.2 2.8 6.2 4.6 7.1 2.2 1.1 1.7 2.9-.9 5-.9.7-13 7.5-16.4 9.8-1.4.9-2.4 1.7-2.6 2.2-1 2.2-1.4 5.8-1.4 5.8h60c0 0-.4-3.6-1.3-5.9" fill="#5d6d74"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f465.svg b/build/js/jsxc/lib/emojione/assets/svg/1f465.svg
index f7f734e..4ca629e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f465.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f465.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#467591" d="m57 48c-2.135-1.569-2.396-3.097-.672-3.974 2.816-1.434 4.893-8.916 5.447-12.11 4.146-23.873-29.07-23.886-24.924 0 .555 3.193 2.627 10.676 5.445 12.11 1.736.883 1.395 2.335-.715 4.01-.703.558-10.502 6.02-13.268 7.867-.004.002-.014.007-.014.007l.002.002c-1.143.764-1.955 1.4-2.104 1.743-.787 1.818-1.074 6.346-1.074 6.346h38.873v-11.784c-3.6-2.192-6.988-4.209-6.996-4.214"/><path fill="#428bc1" d="m30.03 44.16c-2.648-1.947-2.973-3.841-.836-4.928 3.496-1.779 6.068-11.06 6.758-15.02 5.143-29.607-36.05-29.623-30.912 0 .688 3.961 3.26 13.241 6.754 15.02 2.154 1.094 1.729 2.895-.887 4.969-.583.462-6.215 3.646-10.906 6.39v13.41h50.49c0 0-.352-5.616-1.33-7.87-.346-.792-19.12-11.957-19.14-11.971"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5d6d74"><path d="m45.5 57.7c-.3-.6-14.2-8.9-14.2-8.9-2-1.4-2.2-2.8-.6-3.7 1.4-.7 2.5-2.9 3.4-5.3.2.1.3.1.5 0 3.7-1.1 3.8-8.5 1.3-7.2 2.3-20.1-25.6-20.2-23.3 0-2.5-1.3-2.4 6.1 1.3 7.2.2 0 .3 0 .5 0 .9 2.4 2 4.6 3.4 5.3 1.6.8 1.3 2.1-.7 3.7-.6.5-9.6 5.5-12.2 7.2-1 .7-1.8 1.3-1.9 1.6-.7 1.7-1 4.4-1 4.4h44.4c0 0-.2-2.7-.9-4.3"/><path d="m34.5 19.9c1.8 2 3.8 5.5 3.7 11 .7.5 1.3 1.4 1.5 2.8.4 2.6-.7 6.8-4 8.1-.9 2.1-1.9 3.7-3 4.6h29.3c0 0-.3-2.7-1-4.3-.3-.6-14.2-8.9-14.2-8.9-2-1.4-2.2-2.8-.6-3.6 1.4-.7 2.5-2.9 3.4-5.3.2.1.3.1.5 0 3.7-1.1 3.8-8.5 1.3-7.2 2.3-19.7-24.4-20.1-23.3-1.2 2.5.7 4.7 2 6.4 4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fb.svg
index 9149521..f0c2365 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c17.602 0 28.444 9.868 28.444 22.13v8.229c0 9.681-7.66 9.683-7.656 9.681h-42.666c.002.002-6.564 0-6.564-9.681 0-4.561 0-8.229 0-8.229 0-12.262 11.421-22.13 28.442-22.13"/><path fill="#ffe1bd" d="m57.761 34.517l-1.062-11.679c0-7.465-11.711-1.504-24.697-1.504s-24.697-5.961-24.697 1.504l-1.062 11.679c-5.655 0-5.655 9.186 0 9.186 0 11.398 15.331 18.296 25.759 18.296s25.759-6.897 25.759-18.296c5.655-.001 5.655-9.186 0-9.186"/><g opacity=".5" fill="#ff717f"><path d="m56.26 46.08c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path d="m14.281 42.623c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.354-2.565-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.713 48.08c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><circle fill="#fff" cx="44.686" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="44.687" cy="35.563" rx="5.224" ry="5.165"/><ellipse fill="#231f20" cx="44.684" cy="35.563" rx="1.75" ry="1.731"/><circle fill="#fff" cx="19.318" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="19.318" cy="35.563" rx="5.223" ry="5.165"/><ellipse fill="#231f20" cx="19.317" cy="35.563" rx="1.75" ry="1.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c23,0,28,15.3,28,24c0,7.7-1,11-1,11H5c0,0-1-3.3-1-11C4,17.3,9,2,32,2z" fill="#594640"/><path d="m57.2 33c0 0-.8-3.3-1.2-10.2-.5-7.5-10.9-1.5-24-1.5-13.1 0-23.5-6-24 1.5-.4 6.9-1.2 10.2-1.2 10.2-6.5 0-6.5 10.6.4 10.6 0 11.4 14.3 18.4 24.8 18.4s24.8-7 24.8-18.4c6.9 0 6.9-10.6.4-10.6" fill="#ffe1bd"/><circle cx="44.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="44.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="35.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="19.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="35.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9 4.1 0 7.3-2.3 8.9-4.9.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fc.svg
index 0e59aaa..296576e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32 1.998c17.602 0 28.444 9.868 28.444 22.13v8.229c0 9.681-7.66 9.683-7.656 9.681h-42.666c.002.002-6.564 0-6.564-9.681 0-4.561 0-8.229 0-8.229-.001-12.262 11.421-22.13 28.442-22.13"/><path fill="#fed0ac" d="m57.762 34.517l-1.063-11.679c0-7.465-11.711-1.504-24.698-1.504-12.986 0-24.696-5.961-24.696 1.504l-1.061 11.679c-5.655 0-5.655 9.186 0 9.186 0 11.398 15.331 18.296 25.758 18.296 10.428 0 25.76-6.897 25.76-18.296 5.654-.001 5.654-9.186 0-9.186"/><g opacity=".5" fill="#ff717f"><path d="m56.26 46.08c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path d="m14.282 42.623c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.179-.887 6.532-3.453.353-2.565-1.999-5.18-5.255-5.838"/></g><path fill="#574137" d="m24.712 48.08c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.143 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.323 1.459-4.071 0-7.288-1.459-7.288-1.459"/><circle fill="#fff" cx="44.686" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="44.687" cy="35.563" rx="5.224" ry="5.165"/><ellipse fill="#231f20" cx="44.684" cy="35.563" rx="1.75" ry="1.731"/><circle fill="#fff" cx="19.318" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="19.318" cy="35.563" rx="5.223" ry="5.165"/><ellipse fill="#231f20" cx="19.318" cy="35.563" rx="1.75" ry="1.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c23,0,28,15.3,28,24c0,7.7-1,11-1,11H5c0,0-1-3.3-1-11C4,17.3,9,2,32,2z" fill="#dbb471"/><path d="m57.2 33c0 0-.8-3.3-1.2-10.2-.5-7.5-10.9-1.5-24-1.5-13.1 0-23.5-6-24 1.5-.4 6.9-1.2 10.2-1.2 10.2-6.5 0-6.5 10.6.4 10.6 0 11.4 14.3 18.4 24.8 18.4 10.5 0 24.8-7 24.8-18.4 6.9 0 6.9-10.6.4-10.6" fill="#fed0ac"/><circle cx="44.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="44.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="35.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="19.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="35.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9s7.3-2.3 8.9-4.9c.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fd.svg
index cbf0760..eafb251 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c17.602 0 28.445 9.868 28.445 22.13v8.229c0 9.681-7.661 9.683-7.656 9.681h-42.666c.002.002-6.564 0-6.564-9.681 0-4.561 0-8.229 0-8.229 0-12.262 11.421-22.13 28.441-22.13"/><path fill="#d6a57c" d="m57.761 34.517l-1.062-11.679c0-7.465-11.71-1.504-24.696-1.504s-24.697-5.961-24.697 1.504l-1.063 11.679c-5.654 0-5.654 9.186 0 9.186 0 11.398 15.332 18.296 25.76 18.296 10.427 0 25.758-6.897 25.758-18.296 5.655-.001 5.655-9.186 0-9.186"/><g opacity=".5" fill="#ff717f"><path d="m56.26 46.08c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path d="m14.282 42.623c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.354-2.565-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.714 48.08c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><circle fill="#fff" cx="44.687" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="44.687" cy="35.563" rx="5.224" ry="5.165"/><ellipse fill="#231f20" cx="44.685" cy="35.563" rx="1.75" ry="1.731"/><circle fill="#fff" cx="19.318" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="19.318" cy="35.563" rx="5.224" ry="5.165"/><ellipse fill="#231f20" cx="19.318" cy="35.563" rx="1.75" ry="1.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c23,0,28,15.3,28,24c0,7.7-1,11-1,11H5c0,0-1-3.3-1-11C4,17.3,9,2,32,2z" fill="#594640"/><path d="m57.2 33c0 0-.8-3.3-1.2-10.2-.5-7.5-10.9-1.5-24-1.5-13.1 0-23.5-6-24 1.5-.4 6.9-1.2 10.2-1.2 10.2-6.5 0-6.5 10.6.4 10.6 0 11.4 14.3 18.4 24.8 18.4 10.5 0 24.8-7 24.8-18.4 6.9 0 6.9-10.6.4-10.6" fill="#d6a57c"/><circle cx="44.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="44.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="35.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="19.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="35.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9s7.3-2.3 8.9-4.9c.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fe.svg
index 8e6f419..1623d30 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c17.601 0 28.444 9.869 28.444 22.13v8.229c0 9.682-7.66 9.684-7.656 9.682h-42.665c.002.002-6.564 0-6.564-9.682 0-4.56 0-8.229 0-8.229-.001-12.261 11.421-22.13 28.441-22.13"/><path fill="#b47d56" d="m57.761 34.517l-1.062-11.679c0-7.464-11.711-1.503-24.697-1.503-12.986 0-24.697-5.961-24.697 1.503l-1.061 11.679c-5.655 0-5.655 9.186 0 9.186 0 11.399 15.331 18.296 25.759 18.296 10.427 0 25.758-6.896 25.758-18.296 5.655-.001 5.655-9.186 0-9.186"/><g opacity=".5" fill="#ff717f"><path d="m56.26 46.08c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path d="m14.282 42.623c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.353-2.565-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.713 48.08c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><circle fill="#fff" cx="44.686" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="44.687" cy="35.563" rx="5.224" ry="5.166"/><ellipse fill="#231f20" cx="44.684" cy="35.563" rx="1.75" ry="1.731"/><circle fill="#fff" cx="19.319" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="19.318" cy="35.563" rx="5.223" ry="5.166"/><ellipse fill="#231f20" cx="19.318" cy="35.563" rx="1.75" ry="1.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c23,0,28,15.3,28,24c0,7.7-1,11-1,11H5c0,0-1-3.3-1-11C4,17.3,9,2,32,2z" fill="#231f20"/><path d="m57.2 33c0 0-.8-3.3-1.2-10.2-.5-7.5-10.9-1.5-24-1.5-13.1 0-23.5-6-24 1.5-.4 6.9-1.2 10.2-1.2 10.2-6.5 0-6.5 10.6.4 10.6 0 11.4 14.3 18.4 24.8 18.4 10.5 0 24.8-7 24.8-18.4 6.9 0 6.9-10.6.4-10.6" fill="#b47d56"/><circle cx="44.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="44.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="35.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="19.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="35.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9 4.1 0 7.3-2.3 8.9-4.9.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3ff.svg
index 8bc54b3..051400b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f466-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c17.602 0 28.444 9.868 28.444 22.13v8.229c0 9.681-7.661 9.683-7.656 9.681h-42.666c.002.002-6.564 0-6.564-9.681 0-4.561 0-8.229 0-8.229 0-12.262 11.421-22.13 28.442-22.13"/><path fill="#8a6859" d="m57.761 34.517l-1.063-11.679c0-7.465-11.71-1.504-24.696-1.504s-24.696-5.961-24.696 1.504l-1.063 11.679c-5.654 0-5.654 9.186 0 9.186 0 11.398 15.332 18.296 25.759 18.296s25.759-6.897 25.759-18.296c5.654-.001 5.654-9.186 0-9.186"/><g opacity=".5" fill="#ff717f"><path d="m56.26 46.08c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path d="m14.282 42.623c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.179-.887 6.532-3.453.354-2.565-1.999-5.18-5.255-5.838"/></g><path fill="#574137" d="m24.713 48.08c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><circle fill="#fff" cx="44.687" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="44.686" cy="35.563" rx="5.224" ry="5.165"/><ellipse fill="#231f20" cx="44.684" cy="35.563" rx="1.75" ry="1.731"/><circle fill="#fff" cx="19.317" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="19.318" cy="35.563" rx="5.224" ry="5.165"/><ellipse fill="#231f20" cx="19.317" cy="35.563" rx="1.75" ry="1.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c23,0,28,15.3,28,24c0,7.7-1,11-1,11H5c0,0-1-3.3-1-11C4,17.3,9,2,32,2z" fill="#231f20"/><path d="m57.2 33c0 0-.8-3.3-1.2-10.2-.5-7.5-10.9-1.5-24-1.5-13.1 0-23.5-6-24 1.5-.4 6.9-1.2 10.2-1.2 10.2-6.5 0-6.5 10.6.4 10.6 0 11.4 14.3 18.4 24.8 18.4 10.5 0 24.8-7 24.8-18.4 6.9 0 6.9-10.6.4-10.6" fill="#8a6859"/><circle cx="44.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="44.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="35.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="19.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="35.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9 4.1 0 7.3-2.3 8.9-4.9.4-.7-.2-1.4-.8-1" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f466.svg
index dafae53..5e233fc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f466.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c17.602 0 28.444 9.869 28.444 22.13v8.229c0 9.682-7.661 9.684-7.656 9.682h-42.666c.002.002-6.564 0-6.564-9.682 0-4.56 0-8.229 0-8.229 0-12.261 11.421-22.13 28.442-22.13"/><path fill="#ffdd67" d="m57.761 34.517l-1.063-11.679c0-7.464-11.71-1.503-24.696-1.503s-24.696-5.961-24.696 1.503l-1.063 11.679c-5.654 0-5.654 9.186 0 9.186 0 11.399 15.332 18.296 25.759 18.296s25.759-6.896 25.759-18.296c5.654-.001 5.654-9.186 0-9.186"/><g opacity=".5" fill="#ff717f"><path d="m56.26 46.08c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path d="m14.282 42.623c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.179-.887 6.532-3.453.354-2.565-1.999-5.18-5.255-5.838"/></g><path fill="#574137" d="m24.713 48.08c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><circle fill="#fff" cx="44.687" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="44.686" cy="35.563" rx="5.224" ry="5.166"/><ellipse fill="#231f20" cx="44.684" cy="35.563" rx="1.75" ry="1.731"/><circle fill="#fff" cx="19.317" cy="35.563" r="7.5"/><ellipse fill="#664e27" cx="19.318" cy="35.563" rx="5.224" ry="5.166"/><ellipse fill="#231f20" cx="19.317" cy="35.563" rx="1.75" ry="1.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c23,0,28,15.3,28,24c0,7.7-1,11-1,11H5c0,0-1-3.3-1-11C4,17.3,9,2,32,2z" fill="#ffb300"/><path d="m57.2 33c0 0-.8-3.3-1.2-10.2-.5-7.5-10.9-1.5-24-1.5-13.1 0-23.5-6-24 1.5-.4 6.9-1.2 10.2-1.2 10.2-6.5 0-6.5 10.6.4 10.6 0 11.4 14.3 18.4 24.8 18.4 10.5 0 24.8-7 24.8-18.4 6.9 0 6.9-10.6.4-10.6" fill="#ffdd67"/><circle cx="44.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="44.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="35.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="35.5" r="6.5" fill="#fff"/><circle cx="19.5" cy="35.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="35.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9s7.3-2.3 8.9-4.9c.4-.7-.2-1.4-.8-1" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fb.svg
index b503cb1..eeb7738 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#594640"><path d="m18.729 53.97c-1.27 13.827-14.16 6.073-15.42 3.858-4.164-7.322 2.559-20.705 7.137-20.705 4.574 0 9.132 7.619 8.283 16.847"/><path d="m45.27 53.97c1.27 13.827 14.16 6.073 15.42 3.858 4.164-7.322-2.559-20.705-7.135-20.705s-9.134 7.619-8.285 16.847"/><path d="m31.688 1.998c17.218 0 27.825 10.536 27.825 23.626v8.786c0 10.336-7.494 10.338-7.49 10.336h-41.736c.002.002-6.422 0-6.422-10.336 0-4.868 0-8.786 0-8.786 0-13.09 11.174-23.626 27.823-23.626"/></g><path fill="#c28fef" d="m31.688 6.397c-14.96 0-24.999 7.653-24.999 17.16 0 0 0 1.125 0 2.84 0-9.508 10.04-17.16 24.999-17.16 15.47 0 25 7.653 25 17.16v-2.84c0-9.506-9.531-17.16-25-17.16"/><path fill="#ffe1bd" d="m57.35 42.24c0 0 3.338.809 3.338-3.979 0-3.79-4.355-3.541-4.355-3.541v-5.201h-39.76c-1.9-4.086.234-8.299.234-8.299-3.84 3.527-3.234 8.299-3.234 8.299h-6.477v5.201c0 0-4.408-.436-4.408 3.541 0 4.788 3.504 3.979 3.504 3.979 0 7.147 7.492 14.979 26.01 14.979 17.545.001 25.14-6.402 25.14-14.979"/><g fill="#ff717f"><path opacity=".5" d="m56.26 45.41c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path opacity=".5" d="m14.283 41.954c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.354-2.564-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.685 47.41c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.073 0-7.289-1.459-7.289-1.459"/><g fill="#fff"><ellipse cx="44.16" cy="36.894" rx="6.821" ry="6.896"/><ellipse cx="19.789" cy="36.894" rx="6.82" ry="6.896"/></g><circle fill="#664e27" cx="44.16" cy="36.894" r="4.75"/><circle fill="#231f20" cx="44.15" cy="36.894" r="1.75"/><circle fill="#664e27" cx="19.789" cy="36.894" r="4.75"/><circle fill="#231f20" cx="19.788" cy="36.894" r="1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.8 40c0 0 3.2-5.6 3.2-14 0-11-8.1-24-29-24-20.9 0-29 13-29 24 0 8.4 3.1 14 3.1 14-3.6 4.1-5.8 12.4-2.7 17.8 1.3 2.2 14.1 10 15.3-3.9h26.4c1.3 13.8 14.1 6.1 15.3 3.9 3.2-5.4 1-13.7-2.6-17.8" fill="#594640"/><path d="M32,6C16.7,6,5.5,14,5.5,24C5.5,24,9.6,9,32,9s25.5,15,25.5,15C57.5,14,47.3,6,32,6z" fill="#c28fef"/><path d="m57.3 42c6.2 0 6.2-9 0-9v-3c0 0-35-.9-43-13 2 12.2-7.7 16-7.7 16-6.2 0-6.2 9 0 9 0 7 7.3 18 25.3 18s25.4-11 25.4-18" fill="#ffe1bd"/><g fill="#fff"><circle cx="44.5" cy="36.5" r="6.5"/><circle cx="19.5" cy="36.5" r="6.5"/></g><circle cx="44.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="36.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="36.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9 4.1 0 7.3-2.3 8.9-4.9.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fc.svg
index d1c812f..4088b48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m18.728 53.97c-1.27 13.827-14.16 6.073-15.42 3.858-4.164-7.322 2.559-20.705 7.137-20.705 4.575 0 9.133 7.619 8.283 16.847"/><path d="m45.27 53.97c1.27 13.827 14.16 6.073 15.42 3.858 4.164-7.322-2.559-20.705-7.135-20.705s-9.134 7.619-8.285 16.847"/><path d="m31.689 1.998c17.217 0 27.825 10.536 27.825 23.626v8.786c0 10.336-7.494 10.338-7.49 10.336h-41.737c.002.002-6.422 0-6.422-10.336 0-4.868 0-8.786 0-8.786 0-13.09 11.174-23.626 27.824-23.626"/></g><path fill="#c28fef" d="m31.689 6.397c-14.961 0-25 7.653-25 17.16 0 0 0 1.125 0 2.84 0-9.508 10.04-17.16 25-17.16 15.469 0 25 7.653 25 17.16v-2.84c0-9.506-9.531-17.16-25-17.16"/><path fill="#fed0ac" d="m57.35 42.24c0 0 3.338.809 3.338-3.979 0-3.79-4.355-3.541-4.355-3.541v-5.201h-39.76c-1.9-4.086.234-8.299.234-8.299-3.84 3.527-3.234 8.299-3.234 8.299h-6.478v5.201c0 0-4.408-.436-4.408 3.541 0 4.788 3.504 3.979 3.504 3.979 0 7.147 7.492 14.979 26.01 14.979 17.545.001 25.14-6.402 25.14-14.979"/><g fill="#ff717f"><path opacity=".5" d="m56.26 45.41c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path opacity=".5" d="m14.283 41.954c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.353-2.564-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.685 47.41c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><g fill="#fff"><ellipse cx="44.16" cy="36.894" rx="6.821" ry="6.896"/><ellipse cx="19.789" cy="36.894" rx="6.82" ry="6.896"/></g><circle fill="#664e27" cx="44.16" cy="36.894" r="4.75"/><circle fill="#231f20" cx="44.15" cy="36.894" r="1.75"/><circle fill="#664e27" cx="19.789" cy="36.894" r="4.75"/><circle fill="#231f20" cx="19.788" cy="36.894" r="1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.9 40c0 0 3.1-5.6 3.1-14 0-11-8.1-24-29-24-20.9 0-29 13-29 24 0 8.4 3.1 14 3.1 14-3.6 4.1-5.8 12.4-2.7 17.8 1.3 2.2 14.1 10 15.3-3.9h26.4c1.3 13.8 14.1 6.1 15.3 3.9 3.2-5.4 1-13.7-2.5-17.8" fill="#dbb471"/><path d="M32,6C16.7,6,5.5,14,5.5,24C5.5,24,9.6,9,32,9c22.4,0,25.5,15,25.5,15C57.5,14,47.3,6,32,6z" fill="#c28fef"/><path d="m57.3 42c6.2 0 6.2-9 0-9v-3c0 0-35-.9-43-13 2 12.2-7.7 16-7.7 16-6.2 0-6.2 9 0 9 0 7 7.3 18 25.3 18s25.4-11 25.4-18" fill="#fed0ac"/><g fill="#fff"><circle cx="44.5" cy="36.5" r="6.5"/><circle cx="19.5" cy="36.5" r="6.5"/></g><circle cx="44.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="36.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="36.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9s7.3-2.3 8.9-4.9c.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fd.svg
index 1a19134..18a76f6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#594640"><path d="m18.728 53.97c-1.27 13.827-14.16 6.073-15.42 3.858-4.164-7.322 2.559-20.705 7.137-20.705 4.575 0 9.131 7.619 8.283 16.847"/><path d="m45.27 53.97c1.27 13.827 14.16 6.073 15.42 3.858 4.164-7.322-2.559-20.705-7.135-20.705s-9.134 7.619-8.285 16.847"/><path d="m31.688 1.998c17.219 0 27.826 10.536 27.826 23.626v8.786c0 10.336-7.494 10.338-7.49 10.336h-41.738c.002.002-6.422 0-6.422-10.336 0-4.868 0-8.786 0-8.786 0-13.09 11.174-23.626 27.824-23.626"/></g><path fill="#c28fef" d="m31.688 6.397c-14.96 0-24.999 7.653-24.999 17.16 0 0 0 1.125 0 2.84 0-9.508 10.04-17.16 24.999-17.16 15.471 0 25 7.653 25 17.16v-2.84c-.001-9.506-9.532-17.16-25-17.16"/><path fill="#d6a57c" d="m57.35 42.24c0 0 3.338.809 3.338-3.979 0-3.79-4.355-3.541-4.355-3.541v-5.201h-39.762c-1.9-4.086.234-8.299.234-8.299-3.84 3.527-3.234 8.299-3.234 8.299h-6.476v5.201c0 0-4.408-.436-4.408 3.541 0 4.788 3.504 3.979 3.504 3.979 0 7.147 7.492 14.979 26.01 14.979 17.546.001 25.15-6.402 25.15-14.979"/><g fill="#ff717f"><path opacity=".5" d="m56.26 45.41c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path opacity=".5" d="m14.282 41.954c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.532-3.453.354-2.564-1.999-5.18-5.255-5.838"/></g><path fill="#574137" d="m24.684 47.41c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.073 0-7.289-1.459-7.289-1.459"/><g fill="#fff"><ellipse cx="44.16" cy="36.894" rx="6.821" ry="6.896"/><ellipse cx="19.788" cy="36.894" rx="6.82" ry="6.896"/></g><circle fill="#664e27" cx="44.16" cy="36.894" r="4.751"/><circle fill="#231f20" cx="44.15" cy="36.894" r="1.75"/><circle fill="#664e27" cx="19.788" cy="36.894" r="4.75"/><circle fill="#231f20" cx="19.787" cy="36.894" r="1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.9 40c0 0 3.1-5.6 3.1-14 0-11-8.1-24-29-24-20.9 0-29 13-29 24 0 8.4 3.1 14 3.1 14-3.6 4.1-5.8 12.4-2.7 17.8 1.3 2.2 14.1 10 15.3-3.9h26.4c1.3 13.8 14.1 6.1 15.3 3.9 3.2-5.4 1-13.7-2.5-17.8" fill="#594640"/><path d="M32,6C16.7,6,5.5,14,5.5,24C5.5,24,9.6,9,32,9c22.4,0,25.5,15,25.5,15C57.5,14,47.3,6,32,6z" fill="#c28fef"/><path d="m57.3 42c6.2 0 6.2-9 0-9v-3c0 0-35-.9-43-13 2 12.2-7.7 16-7.7 16-6.2 0-6.2 9 0 9 0 7 7.3 18 25.3 18s25.4-11 25.4-18" fill="#d6a57c"/><g fill="#fff"><circle cx="44.5" cy="36.5" r="6.5"/><circle cx="19.5" cy="36.5" r="6.5"/></g><circle cx="44.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="36.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="36.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9s7.3-2.3 8.9-4.9c.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fe.svg
index b9aaf1e..dbb0f5f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#231f20"><path d="m18.728 53.97c-1.27 13.827-14.16 6.073-15.42 3.858-4.164-7.322 2.559-20.705 7.137-20.705 4.574 0 9.132 7.619 8.283 16.847"/><path d="m45.27 53.97c1.27 13.827 14.16 6.073 15.42 3.858 4.165-7.322-2.559-20.705-7.135-20.705s-9.134 7.619-8.285 16.847"/><path d="m31.688 1.998c17.217 0 27.825 10.536 27.825 23.626v8.786c0 10.336-7.494 10.338-7.49 10.336h-41.736c.002.002-6.422 0-6.422-10.336 0-4.868 0-8.786 0-8.786 0-13.09 11.174-23.626 27.823-23.626"/></g><path fill="#c28fef" d="m31.688 6.397c-14.96 0-24.999 7.653-24.999 17.16 0 0 0 1.125 0 2.84 0-9.508 10.04-17.16 24.999-17.16 15.469 0 25 7.653 25 17.16v-2.84c0-9.506-9.531-17.16-25-17.16"/><path fill="#b47d56" d="m57.35 42.24c0 0 3.338.809 3.338-3.979 0-3.79-4.355-3.541-4.355-3.541v-5.201h-39.76c-1.9-4.086.234-8.299.234-8.299-3.84 3.527-3.234 8.299-3.234 8.299h-6.477v5.201c0 0-4.408-.436-4.408 3.541 0 4.788 3.504 3.979 3.504 3.979 0 7.147 7.492 14.979 26.01 14.979 17.545.001 25.14-6.402 25.14-14.979"/><g fill="#ff717f"><path opacity=".5" d="m56.26 45.41c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path opacity=".5" d="m14.283 41.954c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.532-3.453.353-2.564-1.999-5.18-5.255-5.838"/></g><path fill="#574137" d="m24.684 47.41c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><g fill="#fff"><ellipse cx="44.16" cy="36.894" rx="6.821" ry="6.896"/><ellipse cx="19.788" cy="36.894" rx="6.82" ry="6.896"/></g><circle fill="#664e27" cx="44.16" cy="36.894" r="4.75"/><circle fill="#231f20" cx="44.15" cy="36.894" r="1.75"/><circle fill="#664e27" cx="19.788" cy="36.894" r="4.75"/><circle fill="#231f20" cx="19.788" cy="36.894" r="1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.9 40c0 0 3.1-5.6 3.1-14 0-11-8.1-24-29-24-20.9 0-29 13-29 24 0 8.4 3.1 14 3.1 14-3.6 4.1-5.8 12.4-2.7 17.8 1.3 2.2 14.1 10 15.3-3.9h26.4c1.3 13.8 14.1 6.1 15.3 3.9 3.2-5.4 1-13.7-2.5-17.8" fill="#231f20"/><path d="M32,6C16.7,6,5.5,14,5.5,24C5.5,24,9.6,9,32,9c22.4,0,25.5,15,25.5,15C57.5,14,47.3,6,32,6z" fill="#c28fef"/><path d="m57.3 42c6.2 0 6.2-9 0-9v-3c0 0-35-.9-43-13 2 12.2-7.7 16-7.7 16-6.2 0-6.2 9 0 9 0 7 7.3 18 25.3 18 18.1 0 25.4-11 25.4-18" fill="#b47d56"/><g fill="#fff"><circle cx="44.5" cy="36.5" r="6.5"/><circle cx="19.5" cy="36.5" r="6.5"/></g><circle cx="44.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="36.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="36.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9 4.1 0 7.3-2.3 8.9-4.9.4-.7-.2-1.4-.8-1" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3ff.svg
index 50c7296..80e424e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f467-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#231f20"><path d="m18.727 53.97c-1.27 13.827-14.16 6.073-15.42 3.858-4.164-7.322 2.559-20.705 7.137-20.705 4.576 0 9.133 7.619 8.283 16.847"/><path d="m45.27 53.97c1.27 13.827 14.16 6.073 15.42 3.858 4.164-7.322-2.559-20.705-7.135-20.705s-9.134 7.619-8.285 16.847"/><path d="m31.688 1.998c17.218 0 27.826 10.536 27.826 23.626v8.786c0 10.336-7.494 10.338-7.49 10.336h-41.738c.002.002-6.422 0-6.422-10.336 0-4.868 0-8.786 0-8.786 0-13.09 11.174-23.626 27.824-23.626"/></g><path fill="#c28fef" d="m31.688 6.397c-14.961 0-25 7.653-25 17.16 0 0 0 1.125 0 2.84 0-9.508 10.04-17.16 25-17.16 15.47 0 25 7.653 25 17.16v-2.84c0-9.506-9.531-17.16-25-17.16"/><path fill="#8a6859" d="m57.35 42.24c0 0 3.338.809 3.338-3.979 0-3.79-4.355-3.541-4.355-3.541v-5.201h-39.762c-1.9-4.086.234-8.299.234-8.299-3.84 3.527-3.234 8.299-3.234 8.299h-6.477v5.201c0 0-4.408-.436-4.408 3.541 0 4.788 3.504 3.979 3.504 3.979 0 7.147 7.492 14.979 26.01 14.979 17.546.001 25.15-6.402 25.15-14.979"/><g fill="#ff717f"><path opacity=".5" d="m56.26 45.41c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path opacity=".5" d="m14.282 41.954c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.353-2.564-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.684 47.41c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><g fill="#fff"><ellipse cx="44.16" cy="36.894" rx="6.821" ry="6.896"/><ellipse cx="19.788" cy="36.894" rx="6.82" ry="6.896"/></g><circle fill="#664e27" cx="44.16" cy="36.894" r="4.751"/><circle fill="#231f20" cx="44.15" cy="36.894" r="1.75"/><circle fill="#664e27" cx="19.788" cy="36.894" r="4.75"/><circle fill="#231f20" cx="19.788" cy="36.894" r="1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.9 40c0 0 3.1-5.6 3.1-14 0-11-8.1-24-29-24-20.9 0-29 13-29 24 0 8.4 3.1 14 3.1 14-3.6 4.1-5.8 12.4-2.7 17.8 1.3 2.2 14.1 10 15.3-3.9h26.4c1.3 13.8 14.1 6.1 15.3 3.9 3.2-5.4 1-13.7-2.5-17.8" fill="#231f20"/><path d="M32,6C16.7,6,5.5,14,5.5,24C5.5,24,9.6,9,32,9c22.4,0,25.5,15,25.5,15C57.5,14,47.3,6,32,6z" fill="#c28fef"/><path d="m57.3 42c6.2 0 6.2-9 0-9v-3c0 0-35-.9-43-13 2 12.2-7.7 16-7.7 16-6.2 0-6.2 9 0 9 0 7 7.3 18 25.3 18 18.1 0 25.4-11 25.4-18" fill="#8a6859"/><g fill="#fff"><circle cx="44.5" cy="36.5" r="6.5"/><circle cx="19.5" cy="36.5" r="6.5"/></g><circle cx="44.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="36.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="36.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9 4.1 0 7.3-2.3 8.9-4.9.4-.7-.2-1.4-.8-1" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f467.svg
index d2d08de..1cb7f67 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f467.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#231f20"><path d="m18.728 53.97c-1.27 13.827-14.16 6.073-15.42 3.858-4.164-7.322 2.559-20.705 7.137-20.705 4.576 0 9.132 7.619 8.283 16.847"/><path d="m45.28 53.97c1.27 13.827 14.16 6.073 15.42 3.858 4.164-7.322-2.559-20.705-7.135-20.705s-9.134 7.619-8.285 16.847"/><path d="m31.688 1.998c17.219 0 27.826 10.536 27.826 23.626v8.786c0 10.336-7.494 10.338-7.49 10.336h-41.738c.002.002-6.422 0-6.422-10.336 0-4.868 0-8.786 0-8.786 0-13.09 11.174-23.626 27.824-23.626"/></g><path fill="#c28fef" d="m31.688 6.397c-14.961 0-25 7.653-25 17.16 0 0 0 1.125 0 2.84 0-9.508 10.04-17.16 25-17.16 15.471 0 25 7.653 25 17.16v-2.84c0-9.506-9.531-17.16-25-17.16"/><path fill="#ffdd67" d="m57.35 42.24c0 0 3.338.809 3.338-3.979 0-3.79-4.355-3.541-4.355-3.541v-5.201h-39.763c-1.9-4.086.234-8.299.234-8.299-3.84 3.527-3.234 8.299-3.234 8.299h-6.476v5.201c0 0-4.408-.436-4.408 3.541 0 4.788 3.504 3.979 3.504 3.979 0 7.147 7.492 14.979 26.01 14.979 17.546.001 25.15-6.402 25.15-14.979"/><g fill="#ff717f"><path opacity=".5" d="m56.26 45.41c-.354-2.566-3.279-4.113-6.535-3.453-3.258.658-5.611 3.273-5.258 5.838.354 2.566 3.279 4.113 6.535 3.453s5.609-3.273 5.258-5.838"/><path opacity=".5" d="m14.282 41.954c-3.256-.66-6.182.887-6.533 3.453-.354 2.564 2 5.18 5.256 5.838 3.256.66 6.18-.887 6.533-3.453.354-2.564-2-5.18-5.256-5.838"/></g><path fill="#574137" d="m24.685 47.41c-.137.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.178-.625 0 0-3.242 1.459-7.322 1.459-4.073 0-7.289-1.459-7.289-1.459"/><g fill="#fff"><ellipse cx="44.16" cy="36.894" rx="6.821" ry="6.896"/><ellipse cx="19.788" cy="36.894" rx="6.82" ry="6.896"/></g><circle fill="#664e27" cx="44.16" cy="36.894" r="4.751"/><circle fill="#231f20" cx="44.15" cy="36.894" r="1.75"/><circle fill="#664e27" cx="19.788" cy="36.894" r="4.75"/><circle fill="#231f20" cx="19.788" cy="36.894" r="1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.9 40c0 0 3.1-5.6 3.1-14 0-11-8.1-24-29-24s-29 13-29 24c0 8.4 3.1 14 3.1 14-3.6 4.1-5.8 12.4-2.7 17.8 1.3 2.2 14.1 10 15.3-3.9h26.4c1.3 13.8 14.1 6.1 15.3 3.9 3.2-5.4 1-13.7-2.5-17.8" fill="#ffb300"/><path d="M32,6C16.7,6,5.5,14,5.5,24C5.5,24,9.6,9,32,9s25.5,15,25.5,15C57.5,14,47.3,6,32,6z" fill="#c28fef"/><path d="m57.3 42c6.2 0 6.2-9 0-9v-3c0 0-35-.9-43-13 2 12.2-7.7 16-7.7 16-6.2 0-6.2 9 0 9 0 7 7.3 18 25.3 18s25.4-11 25.4-18" fill="#ffdd67"/><g fill="#fff"><circle cx="44.5" cy="36.5" r="6.5"/><circle cx="19.5" cy="36.5" r="6.5"/></g><circle cx="44.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="36.5" r="1.5" fill="#231f20"/><circle cx="19.5" cy="36.5" r="4.5" fill="#664e27"/><circle cx="19.5" cy="36.5" r="1.5" fill="#231f20"/><path d="m40.1 48.1c-5.2 3.6-11 3.6-16.2 0-.6-.4-1.2.3-.8 1 1.6 2.6 4.8 4.9 8.9 4.9s7.3-2.3 8.9-4.9c.4-.7-.2-1.4-.8-1" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fb.svg
index f628837..9ffc401 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m5.563 29.703l2.728 4.983h47.42l2.064-5.323c0-19.08-4.439-27.17-25.552-27.361-21.332-.198-26.663 8.271-26.663 27.701"/><path fill="#ffe1bd" d="m55.808 29.377c-.165 1.102-.393 2.138-.703 2.723-.559 1.051-1.699 1.647-1.699 1.647s.307-2.129.197-5.11c-1.189-17.592-2.217-12.756-21.599-12.756-19.377 0-20.408-4.827-21.602 12.731-.111 2.995.195 5.135.195 5.135s-1.14-.597-1.699-1.647c-.311-.585-.536-1.621-.701-2.723-1.832-.48-4.195-.079-4.195 5.201 0 3.288 1.205 5.983 5.264 6.274 1.727 13.319 6.879 15.484 17.229 20.21 2.723 1.244 8.296 1.244 11.02 0 10.35-4.728 15.5-6.893 17.229-20.21 4.059-.291 5.262-2.986 5.262-6.274-.002-5.28-2.363-5.682-4.195-5.201"/><path fill="#574137" d="m42.44 48.533c0 3.415-4.571 6.281-10.212 6.281-5.639 0-10.209-2.866-10.209-6.281 0 0 5.429.305 10.212.305 4.778 0 10.209-.305 10.209-.305"/><path fill="#fff" d="m41.575 49.01c0 1.724-4.184 3.088-9.346 3.088-5.164 0-9.351-1.364-9.351-3.088 0 0 4.418.345 9.351.345 4.932-.001 9.346-.345 9.346-.345"/><path fill="#e6b796" d="m37.34 43.894c0 1.987-4.153 2.56-5.109 2.56-.953 0-5.104-.702-5.104-2.687.001 0 10.213-.861 10.213.127"/><path fill="#f5f5f5" d="m13.13 30.06c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.643-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.794" cy="31.18" rx="3.925" ry="3.888"/><path fill="#231f20" d="m22.09 31.18c0 .712-.584 1.288-1.299 1.288-.719 0-1.301-.575-1.301-1.288s.582-1.287 1.301-1.287c.715.001 1.299.575 1.299 1.287"/><path fill="#664e27" d="m12.994 31.538c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.627-5.918-14.1-.798"/><path fill="#f5f5f5" d="m50.868 30.06c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.643 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.21" cy="31.18" rx="3.925" ry="3.888"/><ellipse fill="#231f20" cx="43.21" cy="31.18" rx="1.3" ry="1.288"/><path fill="#664e27" d="m51.01 31.538c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.918 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6,36h52C58,8,54,2,32,2S6,8,6,36z" fill="#594640"/><path d="m55.8 29.9c-.2 1.1-.4 2.1-.7 2.7-.6 1-1.7 1.6-1.7 1.6s.3-2.1.2-5c-1.2-17.4-2.2-12.6-21.6-12.6-19.4 0-20.4-4.8-21.6 12.5-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.7-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4.2-.1-4.2 5.1 0 3.2 1.2 5.9 5.3 6.2 1.3 10.2 7.3 15.4 17.2 19.9 2.7 1.2 8.3 1.2 11 0 10-4.5 15.9-9.7 17.2-19.9 4.1-.3 5.3-2.9 5.3-6.2 0-5.2-2.4-5.6-4.2-5.1" fill="#ffe1bd"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fc.svg
index 39a272c..e0e8d5f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m5.563 29.702l2.727 4.983h47.42l2.064-5.323c0-19.08-4.44-27.17-25.553-27.361-21.332-.197-26.663 8.272-26.663 27.701"/><path fill="#fed0ac" d="m55.809 29.377c-.165 1.102-.393 2.138-.704 2.723-.559 1.051-1.699 1.647-1.699 1.647s.307-2.129.197-5.11c-1.188-17.592-2.216-12.756-21.6-12.756-19.377 0-20.408-4.827-21.601 12.73-.112 2.995.195 5.136.195 5.136s-1.141-.597-1.699-1.647c-.312-.585-.536-1.621-.702-2.723-1.831-.48-4.195-.079-4.195 5.201 0 3.288 1.205 5.983 5.264 6.274 1.729 13.319 6.88 15.484 17.23 20.21 2.723 1.244 8.295 1.244 11.02 0 10.35-4.728 15.5-6.893 17.229-20.21 4.06-.291 5.262-2.986 5.262-6.274-.001-5.28-2.362-5.682-4.193-5.201"/><path fill="#574137" d="m42.44 48.533c0 3.415-4.571 6.281-10.212 6.281-5.638 0-10.21-2.866-10.21-6.281 0 0 5.43.305 10.212.305 4.779 0 10.21-.305 10.21-.305"/><path fill="#fff" d="m41.575 49.01c0 1.724-4.183 3.088-9.347 3.088-5.163 0-9.351-1.364-9.351-3.088 0 0 4.419.345 9.351.345 4.933-.001 9.347-.345 9.347-.345"/><path fill="#e0a372" d="m37.34 43.894c0 1.987-4.153 2.56-5.108 2.56-.954 0-5.104-.702-5.104-2.687 0 0 10.212-.861 10.212.127"/><path fill="#f5f5f5" d="m13.13 30.06c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.794" cy="31.18" rx="3.926" ry="3.889"/><path fill="#231f20" d="m22.09 31.18c0 .713-.585 1.288-1.3 1.288-.719 0-1.301-.575-1.301-1.288 0-.712.582-1.286 1.301-1.286.715 0 1.3.574 1.3 1.286"/><path fill="#664e27" d="m12.993 31.537c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.625-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.868 30.06c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.21" cy="31.18" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.21" cy="31.18" rx="1.3" ry="1.288"/><path fill="#664e27" d="m51.01 31.537c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6,36h52C58,8,54,2,32,2S6,8,6,36z" fill="#dbb471"/><path d="m55.8 29.9c-.2 1.1-.4 2.1-.7 2.7-.6 1-1.7 1.6-1.7 1.6s.3-2.1.2-5c-1.2-17.4-2.2-12.6-21.6-12.6-19.4 0-20.4-4.8-21.6 12.5-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.7-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4.2-.1-4.2 5.1 0 3.2 1.2 5.9 5.3 6.2 1.3 10.2 7.3 15.4 17.2 19.9 2.7 1.2 8.3 1.2 11 0 10-4.5 15.9-9.7 17.2-19.9 4.1-.3 5.3-2.9 5.3-6.2 0-5.2-2.4-5.6-4.2-5.1" fill="#fed0ac"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fd.svg
index a5f44af..4fc71c6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m5.562 29.702l2.728 4.983h47.42l2.064-5.324c0-19.08-4.439-27.17-25.553-27.361-21.334-.196-26.664 8.273-26.664 27.702"/><path fill="#d6a57c" d="m55.809 29.376c-.166 1.102-.393 2.138-.703 2.723-.559 1.051-1.701 1.648-1.701 1.648s.309-2.129.199-5.11c-1.189-17.592-2.219-12.756-21.6-12.756-19.378 0-20.409-4.827-21.602 12.731-.111 2.995.195 5.136.195 5.136s-1.141-.597-1.699-1.648c-.312-.585-.537-1.621-.702-2.723-1.831-.48-4.194-.079-4.194 5.202 0 3.287 1.204 5.983 5.264 6.273 1.727 13.32 6.879 15.485 17.229 20.21 2.723 1.244 8.295 1.244 11.02 0 10.35-4.728 15.5-6.893 17.23-20.21 4.059-.29 5.262-2.986 5.262-6.273-.001-5.281-2.362-5.683-4.194-5.203"/><path fill="#574137" d="m42.21 48.533c0 3.414-4.572 6.281-10.212 6.281-5.639 0-10.211-2.867-10.211-6.281 0 0 5.43.305 10.213.305 4.778 0 10.21-.305 10.21-.305"/><path fill="#fff" d="m41.35 49.01c0 1.724-4.184 3.088-9.347 3.088-5.164 0-9.351-1.364-9.351-3.088 0 0 4.418.345 9.351.345 4.933-.001 9.347-.345 9.347-.345"/><path fill="#b58360" d="m37.11 43.894c0 1.987-4.153 2.56-5.108 2.56-.954 0-5.104-.703-5.104-2.688 0 0 10.212-.86 10.212.128"/><path fill="#f5f5f5" d="m13.13 30.06c-.323 1.517-.709 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.314-2.199-2.295-4.644-6.156-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.793" cy="31.18" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.793" cy="31.18" rx="1.3" ry="1.288"/><path fill="#664e27" d="m12.994 31.537c-1.047-6.75 14.1-6.391 14.1.798-2.19-5.72-12.628-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.867 30.06c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.146.5-7.508-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.21" cy="31.18" rx="3.926" ry="3.889"/><path fill="#231f20" d="m44.508 31.18c0 .712-.584 1.288-1.299 1.288-.719 0-1.301-.575-1.301-1.288s.582-1.287 1.301-1.287c.715 0 1.299.574 1.299 1.287"/><path fill="#664e27" d="m51.01 31.537c1.045-6.75-14.1-6.391-14.1.798 2.188-5.72 12.625-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6,36h52C58,8,54,2,32,2S6,8,6,36z" fill="#594640"/><path d="m55.8 29.9c-.2 1.1-.4 2.1-.7 2.7-.6 1-1.7 1.6-1.7 1.6s.3-2.1.2-5c-1.2-17.4-2.2-12.6-21.6-12.6-19.4 0-20.4-4.8-21.6 12.5-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.7-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4.2-.1-4.2 5.1 0 3.2 1.2 5.9 5.3 6.2 1.3 10.2 7.3 15.4 17.2 19.9 2.7 1.2 8.3 1.2 11 0 10-4.5 15.9-9.7 17.2-19.9 4.1-.3 5.3-2.9 5.3-6.2 0-5.2-2.4-5.6-4.2-5.1" fill="#d6a57c"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fe.svg
index 277ba4c..9dc4c6d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m5.563 29.702l2.728 4.983h47.42l2.063-5.324c0-19.08-4.439-27.17-25.552-27.361-21.332-.196-26.664 8.273-26.664 27.702"/><path fill="#b47d56" d="m55.81 29.376c-.166 1.102-.394 2.138-.704 2.723-.559 1.051-1.699 1.648-1.699 1.648s.307-2.129.197-5.11c-1.189-17.592-2.217-12.756-21.6-12.756-19.377 0-20.408-4.827-21.602 12.731-.111 2.995.195 5.136.195 5.136s-1.141-.597-1.699-1.648c-.311-.585-.536-1.621-.701-2.723-1.832-.48-4.195-.079-4.195 5.202 0 3.287 1.205 5.983 5.264 6.273 1.728 13.32 6.879 15.485 17.229 20.21 2.722 1.244 8.296 1.244 11.02 0 10.351-4.728 15.5-6.893 17.229-20.21 4.059-.29 5.262-2.986 5.262-6.273 0-5.281-2.361-5.683-4.192-5.203"/><path fill="#574137" d="m42.44 48.533c0 3.414-4.571 6.281-10.212 6.281-5.639 0-10.21-2.867-10.21-6.281 0 0 5.429.305 10.212.305 4.779 0 10.21-.305 10.21-.305"/><path fill="#fff" d="m41.576 49.01c0 1.724-4.183 3.088-9.347 3.088s-9.351-1.364-9.351-3.088c0 0 4.418.345 9.351.345s9.347-.345 9.347-.345"/><path fill="#935e3e" d="m37.34 43.894c0 1.987-4.153 2.56-5.108 2.56-.954 0-5.104-.703-5.104-2.688-.001 0 10.212-.86 10.212.128"/><path fill="#f5f5f5" d="m13.13 30.06c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.794" cy="31.18" rx="3.925" ry="3.889"/><path fill="#231f20" d="m22.09 31.18c0 .712-.584 1.288-1.299 1.288-.719 0-1.301-.575-1.301-1.288s.582-1.287 1.301-1.287c.715 0 1.299.574 1.299 1.287"/><path fill="#574137" d="m12.994 31.537c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.869 30.06c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.21" cy="31.18" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.21" cy="31.18" rx="1.3" ry="1.288"/><path fill="#574137" d="m51.01 31.537c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6,36h52C58,8,54,2,32,2S6,8,6,36z" fill="#231f20"/><path d="m55.8 29.9c-.2 1.1-.4 2.1-.7 2.7-.6 1-1.7 1.6-1.7 1.6s.3-2.1.2-5c-1.2-17.4-2.2-12.6-21.6-12.6-19.4 0-20.4-4.8-21.6 12.5-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.7-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4.2-.1-4.2 5.1 0 3.2 1.2 5.9 5.3 6.2 1.3 10.2 7.3 15.4 17.2 19.9 2.7 1.2 8.3 1.2 11 0 10-4.5 15.9-9.7 17.2-19.9 4.1-.3 5.3-2.9 5.3-6.2 0-5.2-2.4-5.6-4.2-5.1" fill="#b47d56"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3ff.svg
index 781247c..fab2b43 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m5.563 29.702l2.728 4.983h47.42l2.064-5.324c0-19.08-4.44-27.17-25.553-27.361-21.333-.196-26.664 8.273-26.664 27.702"/><path fill="#8a6859" d="m55.81 29.376c-.166 1.102-.393 2.138-.704 2.723-.559 1.051-1.699 1.648-1.699 1.648s.307-2.129.197-5.11c-1.188-17.592-2.218-12.756-21.6-12.756-19.377 0-20.408-4.827-21.602 12.731-.111 2.995.196 5.136.196 5.136s-1.142-.597-1.7-1.648c-.311-.585-.536-1.621-.701-2.723-1.831-.48-4.195-.079-4.195 5.202 0 3.287 1.205 5.983 5.264 6.273 1.728 13.32 6.88 15.485 17.229 20.21 2.723 1.244 8.296 1.244 11.02 0 10.351-4.728 15.5-6.893 17.229-20.21 4.06-.29 5.262-2.986 5.262-6.273 0-5.281-2.361-5.683-4.192-5.203"/><path fill="#574137" d="m42.44 48.533c0 3.414-4.571 6.281-10.212 6.281-5.639 0-10.21-2.867-10.21-6.281 0 0 5.429.305 10.212.305 4.78 0 10.21-.305 10.21-.305"/><path fill="#fff" d="m41.576 49.01c0 1.724-4.183 3.088-9.347 3.088s-9.351-1.364-9.351-3.088c0 0 4.418.345 9.351.345s9.347-.345 9.347-.345"/><path fill="#705041" d="m37.34 43.894c0 1.987-4.153 2.56-5.108 2.56-.953 0-5.104-.703-5.104-2.688-.001 0 10.212-.86 10.212.128"/><path fill="#f5f5f5" d="m13.14 30.06c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.794" cy="31.18" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.794" cy="31.18" rx="1.3" ry="1.288"/><path fill="#574137" d="m12.994 31.537c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.868 30.06c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.21" cy="31.18" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.509 31.18c0 .712-.584 1.288-1.299 1.288-.719 0-1.301-.575-1.301-1.288s.582-1.287 1.301-1.287c.715 0 1.299.574 1.299 1.287"/><path fill="#574137" d="m51.01 31.537c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6,36h52C58,8,54,2,32,2S6,8,6,36z" fill="#231f20"/><path d="m55.8 29.9c-.2 1.1-.4 2.1-.7 2.7-.6 1-1.7 1.6-1.7 1.6s.3-2.1.2-5c-1.2-17.4-2.2-12.6-21.6-12.6-19.4 0-20.4-4.8-21.6 12.5-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.7-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4.2-.1-4.2 5.1 0 3.2 1.2 5.9 5.3 6.2 1.3 10.2 7.3 15.4 17.2 19.9 2.7 1.2 8.3 1.2 11 0 10-4.5 15.9-9.7 17.2-19.9 4.1-.3 5.3-2.9 5.3-6.2 0-5.2-2.4-5.6-4.2-5.1" fill="#8a6859"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#574137"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466-1f466.svg
index 54c4f0a..5c34814 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466-1f466.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m2.864 17.319l1.508 2.756h26.23l1.141-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.795-.109-14.744 4.575-14.744 15.319"/><path fill="#ffdd67" d="m30.651 17.14c-.094.609-.219 1.182-.391 1.506-.309.582-.939.912-.939.912s.172-1.178.111-2.826c-.658-9.729-1.227-7.05-11.947-7.05-10.715 0-11.285-2.67-11.945 7.04-.061 1.654.107 2.84.107 2.84s-.631-.33-.938-.912c-.174-.324-.297-.896-.389-1.506-1.014-.266-2.318-.043-2.318 2.877 0 1.818.664 3.309 2.91 3.469.955 7.365 3.803 8.564 9.525 11.177 1.508.689 4.588.689 6.094 0 5.725-2.613 8.57-3.812 9.527-11.177 2.246-.16 2.91-1.65 2.91-3.469.001-2.92-1.305-3.142-2.317-2.877"/><path fill="#574137" d="m23.256 27.733c0 1.889-2.527 3.475-5.648 3.475-3.117 0-5.645-1.586-5.645-3.475 0 0 3 .168 5.646.168 2.643 0 5.647-.168 5.647-.168"/><path fill="#fff" d="m22.78 27.999c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.168-.754-5.168-1.707 0 0 2.441.191 5.168.191 2.728 0 5.17-.191 5.17-.191"/><path fill="#eba352" d="m20.434 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.82-.389-2.82-1.484 0-.001 5.646-.477 5.646.068"/><path fill="#f5f5f5" d="m7.05 17.52c-.18.838-.395 2.941 3.578 2.867 4.115-.078 3.953.277 4.154-1.113.174-1.215-1.27-2.566-3.404-3.053s-4.076.098-4.328 1.299"/><ellipse fill="#664e27" cx="11.287" cy="18.14" rx="2.171" ry="2.15"/><path fill="#231f20" d="m12.04 18.14c0 .412-.338.744-.749.744-.417 0-.751-.332-.751-.744 0-.41.334-.744.751-.744.411 0 .749.334.749.744"/><path fill="#664e27" d="m6.973 18.334c-.578-3.732 7.795-3.535 7.795.441-1.211-3.163-6.982-3.273-7.795-.441"/><path fill="#f5f5f5" d="m27.918 17.52c.178.838.393 2.941-3.58 2.867-4.115-.078-3.953.277-4.154-1.113-.174-1.215 1.27-2.566 3.404-3.053 2.137-.486 4.077.098 4.33 1.299"/><ellipse fill="#664e27" cx="23.683" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="23.682" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m27.997 18.334c.578-3.732-7.795-3.535-7.795.441 1.209-3.163 6.982-3.273 7.795-.441"/><path fill="#231f20" d="m31.897 17.319l1.507 2.756h26.23l1.143-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.797-.109-14.744 4.575-14.744 15.319"/><path fill="#ffdd67" d="m59.682 17.14c-.092.609-.217 1.182-.389 1.506-.311.582-.939.912-.939.912s.17-1.178.109-2.826c-.658-9.729-1.227-7.05-11.945-7.05-10.715 0-11.285-2.67-11.945 7.04-.061 1.654.107 2.84.107 2.84s-.631-.33-.939-.912c-.172-.324-.297-.896-.387-1.506-1.013-.266-2.32-.043-2.32 2.877 0 1.818.666 3.309 2.912 3.469.953 7.365 3.803 8.564 9.525 11.177 1.506.689 4.588.689 6.094 0 5.723-2.613 8.57-3.812 9.525-11.177 2.246-.16 2.912-1.65 2.912-3.469 0-2.92-1.307-3.142-2.32-2.877"/><path fill="#574137" d="m52.29 27.733c0 1.889-2.525 3.475-5.646 3.475-3.119 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.648.168 2.642 0 5.644-.168 5.644-.168"/><path fill="#fff" d="m51.813 27.999c0 .953-2.314 1.707-5.17 1.707s-5.17-.754-5.17-1.707c0 0 2.441.191 5.17.191 2.726 0 5.17-.191 5.17-.191"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.822-.389-2.822-1.484-.001-.001 5.648-.477 5.648.068"/><path fill="#f5f5f5" d="m36.08 17.52c-.18.838-.393 2.941 3.58 2.867 4.115-.078 3.951.277 4.152-1.113.174-1.215-1.268-2.566-3.404-3.053-2.133-.486-4.074.098-4.328 1.299"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m36 18.334c-.578-3.732 7.795-3.535 7.795.441-1.209-3.163-6.981-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.951 17.52c.178.838.391 2.941-3.582 2.867-4.115-.078-3.953.277-4.152-1.113-.174-1.215 1.268-2.566 3.404-3.053 2.135-.486 4.074.098 4.33 1.299"/><ellipse fill="#664e27" cx="52.714" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m57.03 18.334c.578-3.732-7.795-3.535-7.795.441 1.209-3.163 6.981-3.273 7.795-.441"/><path fill="#231f20" d="m17.485 32.967c8.518 0 13.764 4.773 13.764 10.707v3.982c0 4.684-3.707 4.686-3.705 4.684h-20.645c.002.002-3.176 0-3.176-4.684 0-2.207 0-3.982 0-3.982 0-5.934 5.527-10.707 13.762-10.707"/><path fill="#ffdd67" d="m29.95 48.701l-.514-5.65c0-3.613-5.666-.729-11.951-.729-6.283 0-11.949-2.885-11.949.729l-.514 5.65c-2.736 0-2.736 4.443 0 4.443 0 5.516 7.418 8.854 12.463 8.854 5.05 0 12.465-3.338 12.465-8.854 2.736.001 2.736-4.443 0-4.443"/><g opacity=".5" fill="#ff717f"><path d="m29.22 54.3c-.17-1.242-1.586-1.99-3.162-1.672s-2.715 1.584-2.543 2.826c.17 1.24 1.586 1.99 3.162 1.67 1.574-.318 2.713-1.584 2.543-2.824"/><path d="m8.911 52.623c-1.574-.318-2.99.43-3.16 1.672-.172 1.24.967 2.506 2.543 2.824 1.574.32 2.99-.43 3.16-1.67.171-1.242-.967-2.508-2.543-2.826"/></g><path fill="#574137" d="m13.959 55.26c-.066.076-.104.176-.104.297 0 .818 1.625 1.822 3.629 1.822 2.01 0 3.631-.998 3.631-1.816 0-.111-.031-.227-.088-.303 0 0-1.568.707-3.543.707-1.968 0-3.525-.707-3.525-.707"/><circle fill="#fff" cx="23.624" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="23.624" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="23.622" cy="49.21" rx=".85" ry=".84"/><circle fill="#fff" cx="11.348" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="11.348" cy="49.21" rx="2.527" ry="2.498"/><g fill="#231f20"><ellipse cx="11.348" cy="49.21" rx=".85" ry=".84"/><path d="m46.518 32.967c8.518 0 13.764 4.773 13.764 10.707v3.982c0 4.684-3.707 4.686-3.705 4.684h-20.645c0 .002-3.177 0-3.177-4.684 0-2.207 0-3.982 0-3.982-.001-5.934 5.526-10.707 13.763-10.707"/></g><path fill="#ffdd67" d="m58.982 48.701l-.514-5.65c0-3.613-5.668-.729-11.951-.729s-11.951-2.885-11.951.729l-.512 5.65c-2.738 0-2.738 4.443 0 4.443 0 5.516 7.418 8.854 12.463 8.854s12.465-3.338 12.465-8.854c2.737.001 2.737-4.443 0-4.443"/><g opacity=".5" fill="#ff717f"><path d="m58.25 54.3c-.172-1.242-1.588-1.99-3.162-1.672-1.576.318-2.717 1.584-2.545 2.826.172 1.24 1.586 1.99 3.162 1.67 1.576-.318 2.715-1.584 2.545-2.824"/><path d="m37.943 52.623c-1.576-.318-2.992.43-3.162 1.672-.17 1.24.969 2.506 2.543 2.824 1.576.32 2.99-.43 3.162-1.67.17-1.242-.968-2.508-2.543-2.826"/></g><path fill="#574137" d="m42.99 55.26c-.066.076-.102.176-.102.297-.002.818 1.625 1.822 3.629 1.822s3.629-.998 3.629-1.816c0-.111-.031-.227-.086-.303 0 0-1.568.707-3.543.707-1.97 0-3.527-.707-3.527-.707"/><circle fill="#fff" cx="52.654" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="52.655" cy="49.21" rx="2.528" ry="2.498"/><ellipse fill="#231f20" cx="52.654" cy="49.21" rx=".85" ry=".84"/><circle fill="#fff" cx="40.38" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="40.38" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="40.38" cy="49.21" rx=".851" ry=".84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 34.8c0-5.8-30-5.8-30 0v27.2h60v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="M32.1,17.3l-1.5,2.8H4.4l-1.1-2.9C3.2,6.6,5.7,2.1,17.4,2C29.2,1.9,32.1,6.6,32.1,17.3z" fill="#ffb300"/><path d="m4.3 17.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 1.2-5.1 11.9-5.1 10.7 0 11.3-4.7 11.9 5 .1 1.7-.1 2.8-.1 2.8s.6-.3.9-.9c.2-.3.3-.9.4-1.5 1-.3 2.3 0 2.3 2.9 0 1.8-.7 3.3-2.9 3.5-.8 6.1-8.9 10.1-12.6 10.1-3.6 0-11.8-4.1-12.6-10.1-2-.1-2.7-1.6-2.7-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><circle cx="23" cy="20.3" r="2.2"/><circle cx="12" cy="20.3" r="2.2"/><path d="m13.9 27.2c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4s-3.2-1.1-3.9-2.4c-.2-.4 0-.8.3-.5"/></g><path d="m57 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m44.5 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m34.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="39.7" cy="49.8" r="1.8"/><circle cx="49.3" cy="49.8" r="1.8"/><path d="m41.4 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g><path d="m32 62h-25.1c0-8.4 25.1-8.4 25.1 0" fill="#29b6f6"/><path d="m19.4 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.3-8.5-10.9-8.5" fill="#ffb300"/><path d="m9.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.2 0-2.2-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="14.7" cy="49.8" r="1.8"/><circle cx="24.2" cy="49.8" r="1.8"/><path d="m16.3 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3 0-.6.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466.svg
index 379dee1..7f59465 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f466.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 32.967c8.517 0 13.761 4.774 13.761 10.708v3.982c0 4.684-3.705 4.686-3.703 4.684h-20.644c.001.002-3.177 0-3.177-4.684 0-2.207 0-3.982 0-3.982 0-5.934 5.527-10.708 13.763-10.708"/><path fill="#ffdd67" d="m44.47 48.702l-.516-5.65c0-3.613-5.666-.729-11.949-.729-6.284 0-11.951-2.885-11.951.729l-.513 5.65c-2.737 0-2.737 4.443 0 4.443 0 5.516 7.417 8.854 12.464 8.854 5.04 0 12.464-3.338 12.464-8.854 2.735.001 2.735-4.443.001-4.443"/><g opacity=".5" fill="#ff717f"><path d="m43.738 54.3c-.172-1.242-1.588-1.99-3.162-1.672-1.578.318-2.717 1.584-2.545 2.826.172 1.24 1.586 1.99 3.162 1.67 1.577-.318 2.715-1.584 2.545-2.824"/><path d="m23.427 52.624c-1.575-.318-2.991.43-3.161 1.672-.171 1.24.968 2.506 2.543 2.824 1.576.32 2.99-.43 3.162-1.67.17-1.242-.969-2.508-2.544-2.826"/></g><path fill="#574137" d="m28.475 55.27c-.066.076-.102.176-.102.297-.002.818 1.624 1.822 3.629 1.822 2 0 3.628-.998 3.628-1.816 0-.111-.031-.227-.086-.303 0 0-1.568.707-3.542.707-1.97 0-3.527-.707-3.527-.707"/><circle fill="#fff" cx="38.14" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="38.14" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="38.14" cy="49.21" rx=".851" ry=".842"/><circle fill="#fff" cx="25.865" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="25.864" cy="49.21" rx="2.527" ry="2.498"/><g fill="#231f20"><ellipse cx="25.864" cy="49.21" rx=".85" ry=".84"/><path d="m2.864 17.319l1.508 2.756h26.23l1.141-2.943c0-10.553-2.453-15.02-14.13-15.13-11.797-.11-14.746 4.574-14.746 15.318"/></g><path fill="#ffdd67" d="m30.651 17.14c-.093.609-.218 1.182-.39 1.506-.31.582-.939.912-.939.912s.17-1.178.109-2.826c-.657-9.729-1.227-7.05-11.945-7.05-10.716 0-11.286-2.67-11.946 7.04-.06 1.654.108 2.84.108 2.84s-.632-.33-.939-.912c-.172-.324-.297-.896-.388-1.506-1.013-.266-2.318-.043-2.318 2.877 0 1.818.665 3.309 2.91 3.469.955 7.365 3.803 8.564 9.526 11.178 1.507.689 4.587.689 6.094 0 5.724-2.614 8.569-3.813 9.526-11.178 2.245-.16 2.91-1.65 2.91-3.469 0-2.92-1.305-3.142-2.318-2.877"/><path fill="#574137" d="m23.256 27.733c0 1.889-2.527 3.475-5.647 3.475-3.119 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.646.168 2.643 0 5.647-.168 5.647-.168"/><path fill="#fff" d="m22.78 27.999c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.442.191 5.169.191 2.728 0 5.17-.191 5.17-.191"/><path fill="#eba352" d="m20.434 25.17c0 1.1-2.297 1.416-2.825 1.416-.527 0-2.822-.389-2.822-1.484 0-.001 5.647-.477 5.647.068"/><path fill="#f5f5f5" d="m7.05 17.52c-.18.838-.394 2.941 3.58 2.867 4.114-.078 3.952.277 4.152-1.113.174-1.215-1.269-2.566-3.403-3.053s-4.076.098-4.329 1.299"/><ellipse fill="#664e27" cx="11.287" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="11.288" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m6.973 18.334c-.578-3.732 7.795-3.535 7.795.441-1.21-3.163-6.982-3.273-7.795-.441"/><path fill="#f5f5f5" d="m27.919 17.52c.178.838.392 2.941-3.582 2.867-4.114-.078-3.952.277-4.152-1.113-.174-1.215 1.269-2.566 3.403-3.053 2.137-.486 4.077.098 4.331 1.299"/><ellipse fill="#664e27" cx="23.683" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="23.682" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m27.997 18.334c.578-3.732-7.795-3.535-7.795.441 1.21-3.163 6.982-3.273 7.795-.441"/><path fill="#231f20" d="m31.896 17.319l1.508 2.756h26.23l1.143-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.797-.109-14.745 4.575-14.745 15.319"/><path fill="#ffdd67" d="m59.682 17.14c-.092.609-.217 1.182-.389 1.506-.311.582-.939.912-.939.912s.17-1.178.109-2.826c-.658-9.729-1.227-7.05-11.945-7.05-10.715 0-11.285-2.67-11.945 7.04-.061 1.654.107 2.84.107 2.84s-.631-.33-.939-.912c-.172-.324-.297-.896-.387-1.506-1.013-.266-2.32-.043-2.32 2.877 0 1.818.666 3.309 2.912 3.469.953 7.365 3.803 8.564 9.525 11.178 1.506.689 4.588.689 6.094 0 5.723-2.614 8.57-3.813 9.527-11.178 2.244-.16 2.91-1.65 2.91-3.469 0-2.92-1.307-3.142-2.32-2.877"/><path fill="#574137" d="m52.29 27.733c0 1.889-2.527 3.475-5.648 3.475-3.119 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.648.168 2.642 0 5.646-.168 5.646-.168"/><path fill="#fff" d="m51.813 27.999c0 .953-2.314 1.707-5.17 1.707s-5.17-.754-5.17-1.707c0 0 2.443.191 5.17.191s5.17-.191 5.17-.191"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.822-.389-2.822-1.484-.001-.001 5.648-.477 5.648.068"/><path fill="#f5f5f5" d="m36.08 17.52c-.18.838-.393 2.941 3.58 2.867 4.115-.078 3.953.277 4.152-1.113.174-1.215-1.268-2.566-3.404-3.053-2.133-.486-4.074.098-4.328 1.299"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m36.01 18.334c-.58-3.732 7.795-3.535 7.795.441-1.211-3.163-6.983-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.951 17.52c.178.838.391 2.941-3.582 2.867-4.115-.078-3.951.277-4.152-1.113-.174-1.215 1.268-2.566 3.404-3.053s4.074.098 4.33 1.299"/><ellipse fill="#664e27" cx="52.714" cy="18.14" rx="2.171" ry="2.15"/><path fill="#231f20" d="m53.47 18.14c0 .414-.336.744-.752.744-.414 0-.748-.33-.748-.744 0-.412.334-.744.748-.744.416 0 .752.332.752.744"/><path fill="#664e27" d="m57.03 18.334c.578-3.732-7.795-3.535-7.795.441 1.209-3.163 6.983-3.273 7.795-.441"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 34.8c0-5.8-30-5.8-30 0v27.2h60v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="M32.1,17.3l-1.5,2.8H4.4l-1.1-2.9C3.2,6.6,5.7,2.1,17.4,2C29.2,1.9,32.1,6.6,32.1,17.3z" fill="#ffb300"/><path d="m4.3 17.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 1.2-5.1 11.9-5.1 10.7 0 11.3-4.7 11.9 5 .1 1.7-.1 2.8-.1 2.8s.6-.3.9-.9c.2-.3.3-.9.4-1.5 1-.3 2.3 0 2.3 2.9 0 1.8-.7 3.3-2.9 3.5-.8 6.1-8.9 10.1-12.6 10.1-3.6 0-11.8-4.1-12.6-10.1-2-.1-2.7-1.6-2.7-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><circle cx="23" cy="20.3" r="2.2"/><circle cx="12" cy="20.3" r="2.2"/><path d="m13.9 27.2c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4s-3.2-1.1-3.9-2.4c-.2-.4 0-.8.3-.5"/></g><path d="m44.5 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m32 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m22.1 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7s-9.9-2.6-9.9-7c-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="27.2" cy="49.8" r="1.8"/><circle cx="36.8" cy="49.8" r="1.8"/><path d="m28.9 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f466.svg
index c9c9edf..555c8bd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f466.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m2.864 17.318l1.508 2.756h26.23l1.142-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.795-.109-14.744 4.574-14.744 15.318"/><path fill="#ffdd67" d="m30.65 17.14c-.093.609-.217 1.182-.389 1.506-.311.582-.939.912-.939.912s.17-1.178.109-2.826c-.658-9.729-1.227-7.05-11.945-7.05-10.715 0-11.286-2.67-11.946 7.04-.061 1.654.108 2.84.108 2.84s-.632-.33-.939-.912c-.172-.324-.297-.896-.388-1.506-1.013-.266-2.319-.043-2.319 2.877 0 1.818.665 3.309 2.911 3.469.954 7.365 3.803 8.564 9.526 11.178 1.506.689 4.587.689 6.094 0 5.723-2.613 8.569-3.813 9.526-11.178 2.245-.16 2.91-1.65 2.91-3.469.001-2.92-1.305-3.143-2.319-2.877"/><path fill="#574137" d="m23.257 27.732c0 1.889-2.527 3.475-5.648 3.475-3.118 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.647.168 2.643 0 5.647-.168 5.647-.168"/><path fill="#fff" d="m22.78 27.998c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.442.191 5.169.191 2.728 0 5.17-.191 5.17-.191"/><path fill="#eba352" d="m20.435 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.821-.389-2.821-1.484-.001 0 5.647-.477 5.647.068"/><path fill="#f5f5f5" d="m7.05 17.52c-.18.838-.394 2.941 3.58 2.867 4.114-.078 3.952.277 4.152-1.113.174-1.215-1.269-2.566-3.404-3.053-2.134-.487-4.075.097-4.328 1.299"/><ellipse fill="#664e27" cx="11.287" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="11.287" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m6.974 18.334c-.579-3.732 7.794-3.535 7.794.441-1.209-3.164-6.982-3.273-7.794-.441"/><path fill="#f5f5f5" d="m27.92 17.52c.177.838.391 2.941-3.582 2.867-4.115-.078-3.952.277-4.152-1.113-.175-1.215 1.268-2.566 3.403-3.053s4.075.097 4.331 1.299"/><ellipse fill="#664e27" cx="23.683" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="23.683" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m27.997 18.334c.578-3.732-7.795-3.535-7.795.441 1.21-3.164 6.983-3.273 7.795-.441"/><path fill="#231f20" d="m31.896 17.318l1.508 2.756h26.23l1.142-2.943c0-10.553-2.453-15.02-14.13-15.13-11.797-.109-14.746 4.574-14.746 15.318"/><path fill="#ffdd67" d="m59.683 17.14c-.093.609-.217 1.182-.39 1.506-.31.582-.938.912-.938.912s.17-1.178.109-2.826c-.658-9.729-1.227-7.05-11.945-7.05-10.716 0-11.286-2.67-11.946 7.04-.06 1.654.108 2.84.108 2.84s-.632-.33-.939-.912c-.172-.324-.297-.896-.388-1.506-1.013-.266-2.319-.043-2.319 2.877 0 1.818.666 3.309 2.911 3.469.954 7.365 3.803 8.564 9.526 11.178 1.506.689 4.587.689 6.094 0 5.723-2.613 8.569-3.813 9.525-11.178 2.246-.16 2.911-1.65 2.911-3.469 0-2.92-1.306-3.143-2.319-2.877"/><path fill="#574137" d="m52.29 27.732c0 1.889-2.527 3.475-5.647 3.475-3.119 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.647.168 2.642 0 5.646-.168 5.646-.168"/><path fill="#fff" d="m51.813 27.998c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.442.191 5.169.191 2.727 0 5.17-.191 5.17-.191"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.825 1.416-.527 0-2.822-.389-2.822-1.484-.001 0 5.647-.477 5.647.068"/><path fill="#f5f5f5" d="m36.09 17.52c-.18.838-.394 2.941 3.58 2.867 4.114-.078 3.952.277 4.152-1.113.174-1.215-1.269-2.566-3.404-3.053-2.134-.487-4.075.097-4.328 1.299"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m36.01 18.334c-.579-3.732 7.794-3.535 7.794.441-1.209-3.164-6.982-3.273-7.794-.441"/><path fill="#f5f5f5" d="m56.951 17.52c.178.838.392 2.941-3.581 2.867-4.115-.078-3.952.277-4.153-1.113-.174-1.215 1.269-2.566 3.404-3.053s4.075.097 4.33 1.299"/><ellipse fill="#664e27" cx="52.715" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m57.03 18.334c.578-3.732-7.795-3.535-7.795.441 1.21-3.164 6.982-3.273 7.795-.441"/><g fill="#231f20"><path d="m40.1 58.11c-.614 6.691-6.852 2.939-7.46 1.867-2.02-3.543 1.237-10.02 3.453-10.02 2.211.001 4.417 3.686 4.01 8.151"/><path d="m52.94 58.11c.614 6.691 6.852 2.939 7.461 1.867 2.02-3.543-1.238-10.02-3.452-10.02-2.215.001-4.421 3.686-4.01 8.151"/><path d="m46.37 32.967c8.329 0 13.463 5.098 13.463 11.432v4.252c0 5-3.627 5-3.625 5h-20.19c.002.002-3.107 0-3.107-5 0-2.357 0-4.252 0-4.252-.001-6.335 5.406-11.432 13.463-11.432"/></g><path fill="#c28fef" d="m46.37 35.09c-7.239 0-12.1 3.705-12.1 8.305 0 0 0 .543 0 1.373 0-4.6 4.857-8.303 12.1-8.303 7.484 0 12.1 3.703 12.1 8.303v-1.373c0-4.6-4.612-8.305-12.1-8.305"/><path fill="#ffdd67" d="m58.783 52.44c0 0 1.616.391 1.616-1.926 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.239c-.919-1.977.113-4.01.113-4.01-1.856 1.705-1.563 4.01-1.563 4.01h-3.134v2.518c0 0-2.134-.211-2.134 1.713 0 2.316 1.695 1.926 1.695 1.926 0 3.459 3.625 7.248 12.586 7.248 8.49.001 12.167-3.097 12.167-7.248"/><g fill="#ff717f"><path opacity=".5" d="m58.25 53.971c-.172-1.242-1.588-1.99-3.162-1.672-1.576.318-2.716 1.584-2.544 2.826.17 1.24 1.586 1.99 3.162 1.67 1.574-.318 2.714-1.584 2.544-2.824"/><path opacity=".5" d="m37.944 52.3c-1.574-.318-2.99.43-3.16 1.672-.172 1.24.968 2.506 2.542 2.824 1.575.32 2.99-.43 3.161-1.67.172-1.242-.967-2.508-2.543-2.826"/></g><path fill="#574137" d="m42.979 54.939c-.066.076-.103.176-.103.297-.002.818 1.624 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.111-.032-.227-.087-.303 0 0-1.568.707-3.542.707-1.972 0-3.526-.707-3.526-.707"/><g fill="#fff"><ellipse cx="52.4" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="40.609" cy="49.852" rx="3.299" ry="3.336"/></g><circle fill="#664e27" cx="52.4" cy="49.852" r="2.298"/><circle fill="#231f20" cx="52.4" cy="49.852" r=".75"/><circle fill="#664e27" cx="40.608" cy="49.852" r="2.298"/><g fill="#231f20"><circle cx="40.607" cy="49.852" r=".75"/><path d="m17.486 32.967c8.517 0 13.762 4.773 13.762 10.707v3.982c0 4.684-3.707 4.686-3.705 4.684h-20.644c0 .002-3.178 0-3.178-4.684 0-2.207 0-3.982 0-3.982.001-5.934 5.528-10.707 13.765-10.707"/></g><path fill="#ffdd67" d="m29.949 48.701l-.514-5.65c0-3.613-5.667-.729-11.949-.729-6.285 0-11.951-2.885-11.951.729l-.513 5.65c-2.736 0-2.736 4.443 0 4.443 0 5.516 7.417 8.854 12.464 8.854 5.04 0 12.463-3.338 12.463-8.854 2.738.001 2.738-4.443 0-4.443"/><g opacity=".5" fill="#ff717f"><path d="m29.22 54.3c-.172-1.242-1.588-1.99-3.162-1.672-1.576.318-2.716 1.584-2.544 2.826.17 1.24 1.586 1.99 3.162 1.67 1.574-.318 2.714-1.584 2.544-2.824"/><path d="m8.91 52.623c-1.574-.318-2.99.43-3.16 1.672-.172 1.24.968 2.506 2.542 2.824 1.577.32 2.99-.43 3.163-1.67.17-1.242-.968-2.508-2.545-2.826"/></g><path fill="#574137" d="m13.959 55.26c-.066.076-.102.176-.102.297-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.111-.032-.227-.087-.303 0 0-1.569.707-3.542.707-1.971 0-3.527-.707-3.527-.707"/><circle fill="#fff" cx="23.623" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="23.623" cy="49.21" rx="2.527" ry="2.498"/><path fill="#231f20" d="m24.473 49.21c0 .465-.382.842-.849.842-.473 0-.852-.377-.852-.842s.379-.842.852-.842c.467 0 .849.377.849.842"/><circle fill="#fff" cx="11.349" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="11.349" cy="49.21" rx="2.527" ry="2.498"/><path fill="#231f20" d="m12.198 49.21c0 .465-.38.842-.849.842-.473 0-.852-.377-.852-.842s.379-.842.852-.842c.469 0 .849.377.849.842"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31 34.8c0-5.8-30-5.8-30 0v27.2h60v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m30.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m58.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="40" cy="20.3" r="2.2"/><circle cx="51" cy="20.3" r="2.2"/><path d="m49.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4 1.8 0 3.2-1.1 3.9-2.4.2-.4 0-.8-.3-.5"/></g><path d="M31.1,17.3l-1.5,2.8H3.4l-1.1-2.9C2.2,6.6,4.7,2.1,16.4,2C28.2,1.9,31.1,6.6,31.1,17.3z" fill="#ffb300"/><path d="m3.3 17.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 1.2-5.1 11.9-5.1 10.7 0 11.3-4.7 11.9 5 .1 1.7-.1 2.8-.1 2.8s.6-.3.9-.9c.2-.3.3-.9.4-1.5 1-.3 2.3 0 2.3 2.9 0 1.8-.7 3.3-2.9 3.5-.8 6.1-8.9 10.1-12.6 10.1-3.6 0-11.8-4.1-12.6-10.1-2-.1-2.7-1.6-2.7-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><circle cx="22" cy="20.3" r="2.2"/><circle cx="11" cy="20.3" r="2.2"/><path d="m12.9 27.2c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4-1.8 0-3.2-1.1-3.9-2.4-.2-.4 0-.8.3-.5"/></g><path d="m56 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m43.5 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m33.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="38.7" cy="49.8" r="1.8"/><circle cx="48.3" cy="49.8" r="1.8"/><path d="m40.4 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2s-2.8-1-3.4-2c-.3-.3-.1-.6.2-.4"/></g><path d="m29 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m18.3 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-3.9-7.2-10.4-7.2"/><path d="m6 62h25c0-8.4-25-8.4-25 0"/></g><path d="m28.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.4.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><circle cx="23" cy="49.8" r="1.8"/><circle cx="13.9" cy="49.8" r="1.8"/><path d="m21.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3 0-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f467.svg
index b3ce6bc..1e35ca4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467-1f467.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m2.864 17.318l1.508 2.756h26.23l1.142-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.795-.109-14.744 4.574-14.744 15.318"/><path fill="#ffdd67" d="m30.65 17.14c-.093.609-.217 1.182-.39 1.506-.31.582-.938.912-.938.912s.17-1.178.109-2.826c-.658-9.729-1.227-7.05-11.945-7.05-10.715 0-11.286-2.67-11.946 7.04-.061 1.654.108 2.84.108 2.84s-.632-.33-.939-.912c-.172-.324-.297-.896-.388-1.506-1.014-.266-2.319-.043-2.319 2.877 0 1.818.665 3.309 2.911 3.469.954 7.365 3.803 8.564 9.526 11.178 1.506.689 4.587.689 6.094 0 5.723-2.613 8.569-3.813 9.525-11.178 2.246-.16 2.911-1.65 2.911-3.469.001-2.92-1.305-3.143-2.319-2.877"/><path fill="#574137" d="m23.256 27.732c0 1.889-2.526 3.475-5.647 3.475-3.118 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.647.168 2.643 0 5.646-.168 5.646-.168"/><path fill="#fff" d="m22.78 27.998c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.441.191 5.169.191s5.17-.191 5.17-.191"/><path fill="#eba352" d="m20.435 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.821-.389-2.821-1.484-.001 0 5.647-.477 5.647.068"/><path fill="#f5f5f5" d="m7.05 17.52c-.18.838-.394 2.941 3.579 2.867 4.115-.078 3.952.277 4.153-1.113.174-1.215-1.269-2.566-3.404-3.053-2.134-.487-4.075.097-4.328 1.299"/><ellipse fill="#664e27" cx="11.287" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="11.287" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m6.973 18.334c-.578-3.732 7.795-3.535 7.795.441-1.209-3.164-6.982-3.273-7.795-.441"/><path fill="#f5f5f5" d="m27.919 17.52c.178.838.392 2.941-3.581 2.867-4.115-.078-3.953.277-4.153-1.113-.174-1.215 1.269-2.566 3.404-3.053s4.075.097 4.33 1.299"/><ellipse fill="#664e27" cx="23.683" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="23.683" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m27.997 18.334c.578-3.732-7.795-3.535-7.795.441 1.21-3.164 6.982-3.273 7.795-.441"/><path fill="#231f20" d="m31.896 17.318l1.508 2.756h26.23l1.142-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.796-.109-14.745 4.574-14.745 15.318"/><path fill="#ffdd67" d="m59.683 17.14c-.093.609-.217 1.182-.39 1.506-.31.582-.939.912-.939.912s.171-1.178.11-2.826c-.658-9.729-1.227-7.05-11.946-7.05-10.715 0-11.285-2.67-11.945 7.04-.061 1.654.108 2.84.108 2.84s-.632-.33-.939-.912c-.173-.324-.297-.896-.388-1.506-1.014-.266-2.319-.043-2.319 2.877 0 1.818.665 3.309 2.911 3.469.954 7.365 3.803 8.564 9.525 11.178 1.507.689 4.588.689 6.094 0 5.724-2.613 8.57-3.813 9.526-11.178 2.246-.16 2.911-1.65 2.911-3.469 0-2.92-1.306-3.143-2.319-2.877"/><path fill="#574137" d="m52.29 27.732c0 1.889-2.527 3.475-5.648 3.475-3.118 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.647.168 2.643 0 5.647-.168 5.647-.168"/><path fill="#fff" d="m51.813 27.998c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.441.191 5.169.191s5.17-.191 5.17-.191"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.821-.389-2.821-1.484-.001 0 5.647-.477 5.647.068"/><path fill="#f5f5f5" d="m36.09 17.52c-.18.838-.394 2.941 3.579 2.867 4.115-.078 3.953.277 4.153-1.113.174-1.215-1.269-2.566-3.404-3.053-2.134-.487-4.075.097-4.328 1.299"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m36.01 18.334c-.578-3.732 7.795-3.535 7.795.441-1.209-3.164-6.982-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.951 17.52c.178.838.392 2.941-3.581 2.867-4.115-.078-3.952.277-4.153-1.113-.174-1.215 1.269-2.566 3.404-3.053s4.075.097 4.33 1.299"/><ellipse fill="#664e27" cx="52.715" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m57.03 18.334c.578-3.732-7.795-3.535-7.795.441 1.209-3.164 6.983-3.273 7.795-.441"/><g fill="#231f20"><path d="m40.1 58.11c-.614 6.691-6.852 2.939-7.461 1.867-2.02-3.543 1.238-10.02 3.454-10.02 2.211.001 4.417 3.686 4.01 8.151"/><path d="m52.941 58.11c.614 6.691 6.852 2.939 7.461 1.867 2.02-3.543-1.238-10.02-3.452-10.02-2.215.001-4.421 3.686-4.01 8.151"/><path d="m46.37 32.967c8.329 0 13.463 5.098 13.463 11.432v4.252c0 5-3.627 5-3.625 5h-20.19c.002.002-3.107 0-3.107-5 0-2.357 0-4.252 0-4.252-.001-6.335 5.406-11.432 13.463-11.432"/></g><path fill="#c28fef" d="m46.37 35.09c-7.239 0-12.1 3.705-12.1 8.305 0 0 0 .543 0 1.373 0-4.6 4.857-8.303 12.1-8.303 7.484 0 12.1 3.703 12.1 8.303v-1.373c0-4.6-4.612-8.305-12.1-8.305"/><path fill="#ffdd67" d="m58.784 52.44c0 0 1.616.391 1.616-1.926 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.24c-.918-1.977.113-4.01.113-4.01-1.855 1.705-1.563 4.01-1.563 4.01h-3.133v2.518c0 0-2.134-.211-2.134 1.713 0 2.316 1.695 1.926 1.695 1.926 0 3.459 3.625 7.248 12.586 7.248 8.49.001 12.167-3.097 12.167-7.248"/><g fill="#ff717f"><path opacity=".5" d="m58.26 53.971c-.172-1.242-1.588-1.99-3.162-1.672-1.576.318-2.716 1.584-2.544 2.826.17 1.24 1.586 1.99 3.162 1.67 1.574-.318 2.714-1.584 2.544-2.824"/><path opacity=".5" d="m37.945 52.3c-1.574-.318-2.99.43-3.16 1.672-.172 1.24.968 2.506 2.542 2.824 1.575.32 2.99-.43 3.16-1.67.173-1.242-.967-2.508-2.542-2.826"/></g><path fill="#574137" d="m42.979 54.939c-.065.076-.102.176-.102.297-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.111-.032-.227-.087-.303 0 0-1.568.707-3.542.707-1.972 0-3.527-.707-3.527-.707"/><g fill="#fff"><ellipse cx="52.4" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="40.61" cy="49.852" rx="3.299" ry="3.336"/></g><circle fill="#664e27" cx="52.4" cy="49.852" r="2.298"/><circle fill="#231f20" cx="52.4" cy="49.852" r=".75"/><circle fill="#664e27" cx="40.609" cy="49.852" r="2.298"/><g fill="#231f20"><circle cx="40.608" cy="49.852" r=".75"/><path d="m11.06 58.11c-.614 6.691-6.852 2.939-7.461 1.867-2.02-3.542 1.238-10.02 3.453-10.02 2.212 0 4.418 3.685 4.01 8.15"/><path d="m23.907 58.11c.614 6.691 6.852 2.939 7.461 1.867 2.02-3.543-1.238-10.02-3.452-10.02-2.215.001-4.421 3.686-4.01 8.151"/><path d="m17.334 32.967c8.329 0 13.463 5.098 13.463 11.432v4.252c0 5-3.627 5-3.625 5h-20.19c.002.002-3.107 0-3.107-5 0-2.357 0-4.252 0-4.252-.001-6.335 5.405-11.432 13.463-11.432"/></g><path fill="#c28fef" d="m17.334 35.09c-7.239 0-12.1 3.705-12.1 8.305 0 0 0 .543 0 1.373 0-4.6 4.857-8.303 12.1-8.303 7.484 0 12.1 3.703 12.1 8.303v-1.373c0-4.6-4.613-8.305-12.1-8.305"/><path fill="#ffdd67" d="m29.75 52.44c0 0 1.616.391 1.616-1.926 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.24c-.918-1.977.114-4.01.114-4.01-1.856 1.705-1.563 4.01-1.563 4.01h-3.134v2.518c0 0-2.134-.211-2.134 1.713 0 2.316 1.695 1.926 1.695 1.926 0 3.459 3.625 7.248 12.586 7.248 8.49.001 12.167-3.097 12.167-7.248"/><g fill="#ff717f"><path opacity=".5" d="m29.22 53.971c-.172-1.242-1.588-1.99-3.162-1.672-1.576.318-2.716 1.584-2.544 2.826.17 1.24 1.586 1.99 3.162 1.67 1.574-.318 2.714-1.584 2.544-2.824"/><path opacity=".5" d="m8.911 52.3c-1.574-.318-2.99.43-3.16 1.672-.172 1.24.968 2.506 2.542 2.824 1.574.32 2.99-.43 3.16-1.67.172-1.242-.968-2.508-2.542-2.826"/></g><path fill="#574137" d="m13.944 54.939c-.065.076-.102.176-.102.297-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.111-.032-.227-.087-.303 0 0-1.568.707-3.542.707-1.971 0-3.527-.707-3.527-.707"/><g fill="#fff"><ellipse cx="23.365" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="11.576" cy="49.852" rx="3.299" ry="3.336"/></g><circle fill="#664e27" cx="23.365" cy="49.852" r="2.298"/><circle fill="#231f20" cx="23.364" cy="49.852" r=".75"/><circle fill="#664e27" cx="11.575" cy="49.852" r="2.298"/><circle fill="#231f20" cx="11.575" cy="49.852" r=".75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 34.8c0-5.8-30-5.8-30 0v27.2h60v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="M32.1,17.3l-1.5,2.8H4.4l-1.1-2.9C3.2,6.6,5.7,2.1,17.4,2C29.2,1.9,32.1,6.6,32.1,17.3z" fill="#ffb300"/><path d="m4.3 17.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 1.2-5.1 11.9-5.1 10.7 0 11.3-4.7 11.9 5 .1 1.7-.1 2.8-.1 2.8s.6-.3.9-.9c.2-.3.3-.9.4-1.5 1-.3 2.3 0 2.3 2.9 0 1.8-.7 3.3-2.9 3.5-.8 6.1-8.9 10.1-12.6 10.1-3.6 0-11.8-4.1-12.6-10.1-2-.1-2.7-1.6-2.7-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><circle cx="23" cy="20.3" r="2.2"/><circle cx="12" cy="20.3" r="2.2"/><path d="m13.9 27.1c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4s-3.2-1.1-3.9-2.4c-.2-.3 0-.7.3-.5"/></g><path d="m30 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m19.3 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-3.9-7.2-10.4-7.2"/><path d="m7 62h25c0-8.4-25-8.4-25 0"/></g><path d="m29.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.4.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m25.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="14.9" cy="49.8" r="1.8"/><path d="m22.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3 0-.6-.2-.4"/></g><path d="m55 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m44.3 37.8c-6.2 0-10.4 3.2-10.4 7.1 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.1c.1-4-3.9-7.2-10.4-7.2"/><path d="m32 62h25c0-8.4-25-8.4-25 0"/></g><path d="m54.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.5.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m50.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="39.9" cy="49.8" r="1.8"/><path d="m47.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3.1-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467.svg
index 31c6dfa..6dfa7e9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f468-1f467.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m2.864 17.319l1.508 2.756h26.23l1.142-2.943c-.001-10.553-2.454-15.02-14.13-15.13-11.795-.109-14.744 4.575-14.744 15.319"/><path fill="#ffdd67" d="m30.65 17.14c-.093.609-.218 1.182-.39 1.506-.31.582-.939.912-.939.912s.17-1.178.11-2.826c-.658-9.729-1.228-7.05-11.946-7.05-10.714 0-11.285-2.67-11.945 7.04-.061 1.654.107 2.84.107 2.84s-.631-.33-.939-.912c-.172-.324-.296-.896-.387-1.506-1.014-.266-2.319-.043-2.319 2.877 0 1.818.665 3.309 2.911 3.469.954 7.365 3.803 8.564 9.525 11.177 1.507.689 4.588.689 6.094 0 5.724-2.613 8.57-3.812 9.527-11.177 2.244-.16 2.91-1.65 2.91-3.469.001-2.92-1.306-3.142-2.319-2.877"/><path fill="#574137" d="m23.257 27.733c0 1.889-2.527 3.475-5.648 3.475-3.118 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.647.168 2.643 0 5.647-.168 5.647-.168"/><path fill="#fff" d="m22.78 27.999c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.17-.754-5.17-1.707 0 0 2.443.191 5.17.191 2.728 0 5.17-.191 5.17-.191"/><path fill="#eba352" d="m20.435 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.822-.389-2.822-1.484-.001-.001 5.648-.477 5.648.068"/><path fill="#f5f5f5" d="m7.05 17.52c-.179.838-.393 2.941 3.58 2.867 4.115-.078 3.953.277 4.152-1.113.175-1.215-1.268-2.566-3.403-3.053-2.134-.486-4.075.098-4.329 1.299"/><ellipse fill="#664e27" cx="11.287" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="11.287" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m6.974 18.334c-.579-3.732 7.794-3.535 7.794.441-1.21-3.163-6.982-3.273-7.794-.441"/><path fill="#f5f5f5" d="m27.919 17.52c.178.838.392 2.941-3.582 2.867-4.114-.078-3.951.277-4.152-1.113-.174-1.215 1.269-2.566 3.404-3.053s4.075.098 4.33 1.299"/><ellipse fill="#664e27" cx="23.683" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="23.683" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m27.997 18.334c.578-3.732-7.795-3.535-7.795.441 1.209-3.163 6.983-3.273 7.795-.441"/><path fill="#231f20" d="m31.896 17.319l1.509 2.756h26.23l1.142-2.943c0-10.553-2.453-15.02-14.13-15.13-11.797-.11-14.746 4.574-14.746 15.318"/><path fill="#ffdd67" d="m59.683 17.14c-.092.609-.217 1.182-.389 1.506-.311.582-.939.912-.939.912s.17-1.178.109-2.826c-.658-9.729-1.227-7.05-11.945-7.05-10.716 0-11.286-2.67-11.946 7.04-.06 1.654.108 2.84.108 2.84s-.632-.33-.939-.912c-.172-.324-.297-.896-.388-1.506-1.013-.266-2.319-.043-2.319 2.877 0 1.818.666 3.309 2.91 3.469.955 7.365 3.804 8.564 9.527 11.177 1.506.689 4.587.689 6.094 0 5.723-2.613 8.569-3.812 9.525-11.177 2.246-.16 2.911-1.65 2.911-3.469 0-2.92-1.306-3.142-2.319-2.877"/><path fill="#574137" d="m52.29 27.733c0 1.889-2.526 3.475-5.646 3.475-3.119 0-5.646-1.586-5.646-3.475 0 0 3 .168 5.647.168 2.642 0 5.645-.168 5.645-.168"/><path fill="#fff" d="m51.813 27.999c0 .953-2.313 1.707-5.17 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.441.191 5.169.191s5.17-.191 5.17-.191"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.825 1.416-.527 0-2.822-.389-2.822-1.484-.001-.001 5.647-.477 5.647.068"/><path fill="#f5f5f5" d="m36.09 17.52c-.18.838-.394 2.941 3.58 2.867 4.114-.078 3.951.277 4.152-1.113.174-1.215-1.269-2.566-3.404-3.053-2.134-.486-4.075.098-4.328 1.299"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><path fill="#231f20" d="m41.07 18.14c0 .412-.336.744-.749.744-.417 0-.751-.332-.751-.744s.334-.744.751-.744c.413 0 .749.332.749.744"/><path fill="#664e27" d="m36.01 18.334c-.578-3.732 7.795-3.535 7.795.441-1.209-3.163-6.983-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.952 17.52c.178.838.391 2.941-3.582 2.867-4.115-.078-3.953.277-4.152-1.113-.174-1.215 1.268-2.566 3.403-3.053s4.075.098 4.331 1.299"/><ellipse fill="#664e27" cx="52.715" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m57.03 18.334c.578-3.732-7.795-3.535-7.795.441 1.21-3.163 6.982-3.273 7.795-.441"/><g fill="#231f20"><path d="m25.58 58.11c-.614 6.691-6.854 2.939-7.462 1.867-2.02-3.543 1.238-10.02 3.453-10.02 2.213.001 4.419 3.686 4.01 8.151"/><path d="m38.426 58.11c.614 6.691 6.852 2.939 7.46 1.867 2.02-3.543-1.238-10.02-3.451-10.02-2.215.001-4.421 3.686-4.01 8.151"/><path d="m31.852 32.967c8.33 0 13.464 5.097 13.464 11.431v4.252c0 5-3.627 5-3.625 5h-20.2c.002.002-3.106 0-3.106-5 0-2.357 0-4.252 0-4.252 0-6.334 5.407-11.431 13.465-11.431"/></g><path fill="#c28fef" d="m31.852 35.09c-7.239 0-12.1 3.705-12.1 8.305 0 0 0 .543 0 1.373 0-4.6 4.859-8.303 12.1-8.303 7.485 0 12.1 3.703 12.1 8.303v-1.373c-.001-4.6-4.612-8.305-12.1-8.305"/><path fill="#ffdd67" d="m44.27 52.44c0 0 1.615.391 1.615-1.926 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.24c-.921-1.977.113-4.01.113-4.01-1.858 1.705-1.565 4.01-1.565 4.01h-3.133v2.518c0 0-2.135-.211-2.135 1.713 0 2.316 1.695 1.926 1.695 1.926 0 3.459 3.625 7.248 12.588 7.248 8.492.001 12.169-3.097 12.169-7.248"/><g fill="#ff717f"><path opacity=".5" d="m43.739 53.971c-.173-1.242-1.588-1.99-3.162-1.672-1.577.318-2.717 1.584-2.545 2.826.17 1.24 1.586 1.99 3.162 1.67 1.575-.318 2.715-1.584 2.545-2.824"/><path opacity=".5" d="m23.427 52.3c-1.574-.318-2.989.43-3.16 1.672-.172 1.24.969 2.506 2.543 2.824 1.576.32 2.992-.43 3.162-1.67.172-1.242-.968-2.508-2.545-2.826"/></g><path fill="#574137" d="m28.463 54.939c-.066.076-.103.176-.103.297-.002.818 1.624 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.111-.031-.227-.086-.303 0 0-1.569.707-3.543.707-1.97 0-3.526-.707-3.526-.707"/><g fill="#fff"><ellipse cx="37.883" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="26.09" cy="49.852" rx="3.3" ry="3.336"/></g><circle fill="#664e27" cx="37.883" cy="49.852" r="2.298"/><circle fill="#231f20" cx="37.882" cy="49.852" r=".75"/><circle fill="#664e27" cx="26.09" cy="49.852" r="2.298"/><circle fill="#231f20" cx="26.09" cy="49.852" r=".75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 34.8c0-5.8-30-5.8-30 0v27.2h60v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="M32.1,17.3l-1.5,2.8H4.4l-1.1-2.9C3.2,6.6,5.7,2.1,17.4,2C29.2,1.9,32.1,6.6,32.1,17.3z" fill="#ffb300"/><path d="m4.3 17.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 1.2-5.1 11.9-5.1 10.7 0 11.3-4.7 11.9 5 .1 1.7-.1 2.8-.1 2.8s.6-.3.9-.9c.2-.3.3-.9.4-1.5 1-.3 2.3 0 2.3 2.9 0 1.8-.7 3.3-2.9 3.5-.8 6.1-8.9 10.1-12.6 10.1-3.6 0-11.8-4.1-12.6-10.1-2-.1-2.7-1.6-2.7-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><circle cx="23" cy="20.3" r="2.2"/><circle cx="12" cy="20.3" r="2.2"/><path d="m13.9 27.2c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4s-3.2-1.1-3.9-2.4c-.2-.4 0-.8.3-.5"/></g><path d="m42.5 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.4 1.7-2.7 5.4-1.4 7.6.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.2.1-5.9-1.4-7.6" fill="#ffb300"/><g fill="#ff81ab"><path d="m31.9 37.8c-6.2 0-10.4 3.2-10.4 7.1 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.1c0-4-4-7.2-10.4-7.2"/><path d="m19.5 62h25c0-8.4-25-8.4-25 0"/></g><path d="m41.8 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.5.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m38.3 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="27.4" cy="49.8" r="1.8"/><path d="m35.1 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3.1-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f466-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f466-1f466.svg
index d47b762..f877a88 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f466-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f466-1f466.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.486,2C7.47,2,2.002,8.33,2.002,16.667v18.509H32.97V16.667c0-12.395-8.382-12.164-8.382-12.164
- S23.957,2,17.486,2z"/><path fill="#ffdd67" d="m6.443 23.642c0 0-2.229-.57-2.229-3.871 0-2.611 1.681-3.061 1.681-3.061 6.02 0 15.839-7.83 15.839-7.83s3.711 6.912 7.291 7.83c0 0 1.733.318 1.733 3.061 0 3.301-2.313 3.871-2.313 3.871-.031 4.979-6.831 10.984-10.959 10.984-4.13 0-11.04-6-11.04-10.984"/><path fill="#eba352" d="m20.252 25.916c0 1.086-2.249 1.398-2.766 1.398-.516 0-2.765-.385-2.765-1.469.001 0 5.531-.472 5.531.071"/><path fill="#f5f5f5" d="m13.72 21.58c.651 0 .565-1.68.565-1.68-1.996-4.459-6.44-1.637-6.44-1.637-1.727.771.773 3.209 1.174 3.316 1.882.51 4.701.001 4.701.001"/><circle fill="#664e27" cx="11.12" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="11.12" cy="19.539" r=".75"/><path d="m14.843 20.542c-.545-.662-1.082-1.303-1.706-1.787-.625-.482-1.326-.789-2.082-.836-.758-.074-1.55.088-2.372.244-.412.08-.836.158-1.279.184-.431.018-.947-.033-1.254-.363.405.16.803.076 1.189-.039.388-.111.773-.271 1.176-.406.795-.283 1.676-.516 2.608-.445.461.045.924.162 1.346.369.415.211.792.486 1.101.814.623.654 1.031 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m21.252 21.58c-.65 0-.565-1.68-.565-1.68 1.996-4.459 6.44-1.637 6.44-1.637 1.729.771-.773 3.209-1.175 3.316-1.882.51-4.7.001-4.7.001"/><circle fill="#664e27" cx="23.856" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="23.855" cy="19.539" r=".75"/><path d="m20.13 20.542c.241-.822.649-1.611 1.273-2.266.308-.328.686-.604 1.102-.814.42-.207.884-.324 1.344-.369.933-.07 1.813.162 2.608.445.403.135.788.295 1.176.406.387.115.784.199 1.188.039-.306.33-.822.381-1.253.363-.443-.025-.867-.104-1.279-.184-.822-.156-1.614-.318-2.37-.244-.757.047-1.458.354-2.082.836-.626.486-1.163 1.126-1.707 1.788"/></g><path fill="#f09985" d="m19.449 28.576c-.401-.1-.987-.053-1.761.207-.068.02-.136.043-.202.064-.067-.021-.135-.045-.204-.064-.772-.26-1.358-.307-1.76-.207-1.198.291-3.02.148-3.02.148 1.321 1.32 1.949 3.121 4.979 3.121 3.03 0 3.656-1.801 4.978-3.121 0 0-1.817.143-3.01-.148"/><path fill="#d47f6c" d="m19.449 28.576c-.401-.1-.987-.053-1.761.207-.068.02-.136.043-.202.064-.067-.021-.135-.045-.204-.064-.772-.26-1.358-.307-1.76-.207-1.176.285-3.02.148-3.02.148 1.993.359 2.242 1.377 4.979 1.377 2.735 0 2.984-1.018 4.978-1.377.005 0-1.839.137-3.01-.148"/><path fill="#231f20" d="m31.897 17.32l1.508 2.756h26.23l1.142-2.945c0-10.551-2.454-15.02-14.13-15.13-11.796-.11-14.745 4.574-14.745 15.318"/><path fill="#ffdd67" d="m59.684 17.14c-.093.607-.218 1.182-.39 1.506-.31.58-.939.91-.939.91s.17-1.178.109-2.826c-.658-9.729-1.226-7.05-11.945-7.05-10.715 0-11.285-2.668-11.945 7.04-.062 1.656.107 2.84.107 2.84s-.631-.33-.938-.91c-.173-.324-.297-.898-.388-1.506-1.014-.266-2.32-.043-2.32 2.877 0 1.816.666 3.307 2.911 3.469.955 7.365 3.804 8.563 9.526 11.177 1.507.688 4.588.688 6.094 0 5.723-2.615 8.57-3.812 9.526-11.177 2.245-.162 2.91-1.652 2.91-3.469 0-2.92-1.306-3.142-2.318-2.877"/><path fill="#574137" d="m52.29 27.734c0 1.887-2.527 3.473-5.648 3.473-3.118 0-5.646-1.586-5.646-3.473 0 0 3 .168 5.647.168 2.643 0 5.647-.168 5.647-.168"/><path fill="#fff" d="m51.813 28c0 .953-2.313 1.707-5.169 1.707-2.855 0-5.17-.754-5.17-1.707 0 0 2.442.189 5.17.189s5.169-.189 5.169-.189"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.821-.389-2.821-1.486-.001 0 5.647-.474 5.647.07"/><path fill="#f5f5f5" d="m36.09 17.519c-.179.838-.393 2.943 3.58 2.869 4.115-.078 3.953.277 4.153-1.113.174-1.217-1.27-2.568-3.404-3.053-2.135-.486-4.075.096-4.329 1.297"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".742"/><path fill="#664e27" d="m36.01 18.333c-.578-3.732 7.795-3.533 7.795.441-1.21-3.161-6.982-3.271-7.795-.441"/><path fill="#f5f5f5" d="m56.951 17.519c.179.838.393 2.943-3.58 2.869-4.116-.078-3.952.277-4.153-1.113-.174-1.217 1.269-2.568 3.404-3.053 2.135-.486 4.075.096 4.329 1.297"/><ellipse fill="#664e27" cx="52.716" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".742"/><path fill="#664e27" d="m57.03 18.333c.579-3.732-7.794-3.533-7.794.441 1.209-3.161 6.981-3.271 7.794-.441"/><path fill="#231f20" d="m17.485 32.966c8.518 0 13.764 4.775 13.764 10.707v3.984c0 4.684-3.707 4.684-3.705 4.684h-20.645c.001 0-3.177 0-3.177-4.684 0-2.207 0-3.984 0-3.984.001-5.932 5.528-10.707 13.763-10.707"/><path fill="#ffdd67" d="m29.95 48.7l-.514-5.65c0-3.611-5.667-.727-11.951-.727-6.283 0-11.95-2.885-11.95.727l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.516 7.418 8.854 12.463 8.854 5.05 0 12.465-3.338 12.465-8.854 2.737.001 2.737-4.445 0-4.445"/><g opacity=".5" fill="#ff717f"><path d="m29.22 54.29c-.171-1.242-1.587-1.99-3.162-1.67-1.576.318-2.715 1.584-2.544 2.824.171 1.242 1.587 1.99 3.162 1.672 1.575-.32 2.714-1.584 2.544-2.826"/><path d="m8.911 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.242.968 2.506 2.543 2.826 1.575.318 2.99-.43 3.161-1.672.172-1.24-.968-2.506-2.543-2.824"/></g><path fill="#574137" d="m13.959 55.27c-.066.076-.103.176-.103.295-.001.818 1.625 1.822 3.629 1.822 2 0 3.63-.996 3.63-1.814 0-.111-.031-.227-.087-.303 0 0-1.568.705-3.543.705-1.969 0-3.526-.705-3.526-.705"/><circle fill="#fff" cx="23.623" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="23.624" cy="49.21" rx="2.528" ry="2.498"/><ellipse fill="#231f20" cx="23.622" cy="49.21" rx=".851" ry=".84"/><circle fill="#fff" cx="11.349" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="11.349" cy="49.21" rx="2.527" ry="2.498"/><g fill="#231f20"><ellipse cx="11.348" cy="49.21" rx=".85" ry=".84"/><path d="m46.519 32.966c8.517 0 13.763 4.775 13.763 10.707v3.984c0 4.684-3.707 4.684-3.705 4.684h-20.645c.001 0-3.177 0-3.177-4.684 0-2.207 0-3.984 0-3.984 0-5.932 5.527-10.707 13.764-10.707"/></g><path fill="#ffdd67" d="m58.982 48.7l-.514-5.65c0-3.611-5.667-.727-11.95-.727-6.284 0-11.951-2.885-11.951.727l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.516 7.418 8.854 12.464 8.854 5.05 0 12.464-3.338 12.464-8.854 2.737.001 2.737-4.445 0-4.445"/><g opacity=".5" fill="#ff717f"><path d="m58.25 54.29c-.171-1.242-1.587-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.171 1.242 1.586 1.99 3.162 1.672 1.575-.32 2.714-1.584 2.544-2.826"/><path d="m37.943 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.242.968 2.506 2.543 2.826 1.576.318 2.99-.43 3.161-1.672.171-1.24-.967-2.506-2.543-2.824"/></g><path fill="#574137" d="m42.991 55.27c-.066.076-.103.176-.103.295-.001.818 1.625 1.822 3.63 1.822 2 0 3.629-.996 3.629-1.814 0-.111-.031-.227-.086-.303 0 0-1.569.705-3.543.705-1.97 0-3.527-.705-3.527-.705"/><circle fill="#fff" cx="52.655" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="52.656" cy="49.21" rx="2.528" ry="2.498"/><ellipse fill="#231f20" cx="52.654" cy="49.21" rx=".85" ry=".84"/><circle fill="#fff" cx="40.38" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="40.38" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="40.38" cy="49.21" rx=".85" ry=".838"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,2C7.3,2,2,8.3,2,16.7v18.5h30V16.7c0-12.4-8.1-12.2-8.1-12.2S23.3,2,17,2z" fill="#ffb300"/><path d="m32 34.8v27.2h30v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="M2,34.8V62h30V34.8C32,29,2,29,2,34.8z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m57 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m44.5 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m34.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="39.7" cy="49.8" r="1.8"/><circle cx="49.3" cy="49.8" r="1.8"/><path d="m41.4 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g><path d="m32 62h-25.1c0-8.4 25.1-8.4 25.1 0" fill="#29b6f6"/><path d="m19.4 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.3-8.5-10.9-8.5" fill="#ffb300"/><path d="m9.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.2 0-2.2-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="14.7" cy="49.8" r="1.8"/><circle cx="24.2" cy="49.8" r="1.8"/><path d="m16.3 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3 0-.6.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f466.svg
index c8cd21d..0ab0a6b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f466.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.488,2C7.47,2,2.001,8.33,2.001,16.67v18.508H32.97V16.67c0-12.396-8.383-12.164-8.383-12.164
- S23.957,2,17.488,2z"/><path fill="#ffdd67" d="m6.444 23.643c0 0-2.23-.57-2.23-3.869 0-2.613 1.683-3.063 1.683-3.063 6.02 0 15.838-7.83 15.838-7.83s3.71 6.912 7.289 7.83c0 0 1.736.318 1.736 3.063 0 3.299-2.314 3.869-2.314 3.869-.029 4.979-6.83 10.984-10.957 10.984-4.132 0-11.05-6.01-11.05-10.984"/><path fill="#eba352" d="m20.251 25.916c0 1.086-2.249 1.398-2.764 1.398-.518 0-2.766-.385-2.766-1.469.001.001 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m13.72 21.58c.65 0 .564-1.68.564-1.68-1.995-4.459-6.44-1.637-6.44-1.637-1.727.771.774 3.209 1.176 3.316 1.882.511 4.7.001 4.7.001"/><path fill="#664e27" d="m13.242 19.539c0 1.174-.95 2.127-2.124 2.127-1.175 0-2.126-.953-2.126-2.127 0-1.172.951-2.125 2.126-2.125 1.174 0 2.124.953 2.124 2.125"/><g fill="#231f20"><circle cx="11.12" cy="19.539" r=".75"/><path d="m14.843 20.543c-.545-.662-1.083-1.301-1.707-1.787-.623-.48-1.324-.789-2.082-.836-.757-.074-1.549.088-2.371.244-.412.08-.837.158-1.279.184-.431.02-.947-.033-1.254-.361.405.158.803.074 1.188-.041.389-.111.774-.271 1.177-.406.796-.283 1.675-.516 2.608-.445.461.045.925.162 1.345.369.416.211.793.486 1.102.814.623.654 1.031 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m21.252 21.58c-.651 0-.565-1.68-.565-1.68 1.996-4.459 6.441-1.637 6.441-1.637 1.727.771-.775 3.209-1.176 3.316-1.881.511-4.7.001-4.7.001"/><path fill="#664e27" d="m25.98 19.539c0 1.174-.95 2.127-2.126 2.127-1.173 0-2.124-.953-2.124-2.127 0-1.172.951-2.125 2.124-2.125 1.176 0 2.126.953 2.126 2.125"/><g fill="#231f20"><circle cx="23.855" cy="19.539" r=".75"/><path d="m20.13 20.543c.241-.822.649-1.611 1.273-2.266.307-.328.686-.604 1.102-.814.419-.207.883-.324 1.344-.369.934-.07 1.813.162 2.607.445.402.135.789.295 1.176.406.388.115.785.199 1.189.041-.307.328-.822.381-1.254.361-.441-.025-.867-.104-1.278-.184-.823-.156-1.615-.318-2.371-.244-.757.047-1.458.355-2.082.836-.626.487-1.162 1.126-1.706 1.788"/></g><path fill="#f09985" d="m19.449 28.576c-.4-.1-.986-.053-1.76.207-.069.02-.135.043-.201.064-.069-.021-.137-.045-.205-.064-.772-.26-1.359-.307-1.759-.207-1.198.291-3.02.148-3.02.148 1.32 1.32 1.948 3.121 4.979 3.121 3.03 0 3.655-1.801 4.976-3.121-.001.001-1.816.143-3.01-.148"/><path fill="#d47f6c" d="m19.449 28.576c-.4-.1-.986-.053-1.76.207-.069.02-.135.043-.201.064-.069-.021-.137-.045-.205-.064-.772-.26-1.359-.307-1.759-.207-1.178.285-3.02.148-3.02.148 1.992.359 2.24 1.377 4.979 1.377 2.734 0 2.982-1.018 4.976-1.377.006.001-1.839.137-3.01-.148"/><path fill="#231f20" d="m31.896 17.32l1.508 2.756h26.23l1.143-2.943c0-10.553-2.453-15.02-14.13-15.13-11.795-.109-14.745 4.574-14.745 15.318"/><path fill="#ffdd67" d="m59.684 17.14c-.094.609-.219 1.182-.391 1.506-.309.58-.939.91-.939.91s.17-1.178.109-2.826c-.656-9.727-1.227-7.05-11.945-7.05-10.715 0-11.285-2.668-11.945 7.04-.061 1.656.109 2.84.109 2.84s-.633-.33-.939-.91c-.172-.324-.297-.896-.389-1.506-1.012-.266-2.319-.043-2.319 2.877 0 1.816.666 3.307 2.911 3.469.955 7.365 3.803 8.563 9.527 11.178 1.506.688 4.586.688 6.092 0 5.725-2.615 8.57-3.813 9.527-11.178 2.244-.162 2.91-1.652 2.91-3.469 0-2.92-1.307-3.143-2.318-2.877"/><path fill="#574137" d="m52.29 27.734c0 1.887-2.527 3.473-5.648 3.473-3.117 0-5.645-1.586-5.645-3.473 0 0 3 .168 5.646.168s5.647-.168 5.647-.168"/><path fill="#fff" d="m51.813 28c0 .953-2.314 1.707-5.17 1.707s-5.168-.754-5.168-1.707c0 0 2.441.189 5.168.189 2.728 0 5.17-.189 5.17-.189"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.82-.389-2.82-1.486-.001 0 5.646-.475 5.646.07"/><path fill="#f5f5f5" d="m36.09 17.52c-.18.838-.395 2.943 3.58 2.869 4.113-.078 3.951.277 4.152-1.113.174-1.217-1.27-2.568-3.404-3.053-2.135-.487-4.076.095-4.328 1.297"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><path fill="#231f20" d="m41.07 18.14c0 .412-.336.742-.748.742-.418 0-.752-.33-.752-.742s.334-.744.752-.744c.412 0 .748.332.748.744"/><path fill="#664e27" d="m36.01 18.336c-.578-3.734 7.795-3.535 7.795.441-1.209-3.164-6.983-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.951 17.52c.178.838.393 2.943-3.582 2.869-4.113-.078-3.951.277-4.152-1.113-.174-1.217 1.27-2.568 3.404-3.053 2.137-.487 4.076.095 4.33 1.297"/><ellipse fill="#664e27" cx="52.715" cy="18.14" rx="2.17" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m57.03 18.336c.578-3.734-7.795-3.535-7.795.441 1.209-3.164 6.983-3.273 7.795-.441"/><g fill="#231f20"><path d="m40.1 58.11c-.613 6.691-6.852 2.939-7.459 1.867-2.02-3.543 1.237-10.02 3.454-10.02 2.21.001 4.415 3.688 4 8.151"/><path d="m52.941 58.11c.613 6.691 6.852 2.939 7.459 1.867 2.02-3.543-1.238-10.02-3.451-10.02-2.215.001-4.42 3.688-4.01 8.151"/><path d="m46.37 32.967c8.33 0 13.463 5.098 13.463 11.432v4.252c0 5-3.627 5-3.625 5h-20.19c.002 0-3.108 0-3.108-5 0-2.355 0-4.252 0-4.252 0-6.335 5.407-11.432 13.463-11.432"/></g><path fill="#c28fef" d="m46.37 35.1c-7.238 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.857-8.305 12.1-8.305 7.484 0 12.1 3.703 12.1 8.305v-1.375c0-4.6-4.611-8.303-12.1-8.303"/><path fill="#ffdd67" d="m58.783 52.44c0 0 1.615.393 1.615-1.924 0-1.836-2.107-1.715-2.107-1.715v-2.516h-19.238c-.918-1.977.113-4.02.113-4.02-1.855 1.707-1.563 4.02-1.563 4.02h-3.135v2.516c0 0-2.133-.211-2.133 1.715 0 2.316 1.696 1.924 1.696 1.924 0 3.459 3.625 7.248 12.586 7.248 8.49.001 12.166-3.097 12.166-7.248"/><g fill="#ff717f"><path opacity=".5" d="m58.25 53.971c-.172-1.242-1.588-1.99-3.162-1.67-1.576.318-2.717 1.584-2.545 2.824.172 1.242 1.586 1.99 3.162 1.67 1.576-.318 2.715-1.584 2.545-2.824"/><path opacity=".5" d="m37.945 52.3c-1.574-.32-2.99.428-3.16 1.67-.172 1.24.967 2.506 2.541 2.824 1.576.32 2.99-.428 3.16-1.67.174-1.24-.966-2.506-2.541-2.824"/></g><path fill="#574137" d="m42.979 54.941c-.066.076-.102.176-.102.295-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.109-.033-.225-.088-.301 0 0-1.568.705-3.541.705s-3.527-.705-3.527-.705"/><g fill="#fff"><ellipse cx="52.4" cy="49.852" rx="3.301" ry="3.336"/><ellipse cx="40.609" cy="49.852" rx="3.299" ry="3.336"/></g><circle fill="#664e27" cx="52.4" cy="49.852" r="2.299"/><path fill="#231f20" d="m53.15 49.85c0 .416-.338.752-.75.752-.414 0-.75-.336-.75-.752 0-.412.336-.746.75-.746.413 0 .75.334.75.746"/><circle fill="#664e27" cx="40.608" cy="49.852" r="2.298"/><g fill="#231f20"><path d="m41.36 49.85c0 .416-.334.752-.75.752-.414 0-.75-.336-.75-.752 0-.412.336-.748.75-.748.416 0 .75.336.75.748"/><path d="m17.486 32.967c8.517 0 13.763 4.775 13.763 10.707v3.982c0 4.684-3.706 4.686-3.705 4.684h-20.645c.001.002-3.177 0-3.177-4.684 0-2.205 0-3.982 0-3.982 0-5.932 5.528-10.707 13.764-10.707"/></g><path fill="#ffdd67" d="m29.95 48.701l-.515-5.65c0-3.611-5.666-.729-11.949-.729s-11.95-2.883-11.95.729l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.514 7.417 8.852 12.463 8.852 5.05 0 12.464-3.338 12.464-8.852 2.735 0 2.735-4.445 0-4.445"/><g opacity=".5" fill="#ff717f"><path d="m29.22 54.3c-.171-1.242-1.587-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.171 1.242 1.586 1.99 3.162 1.67 1.575-.318 2.714-1.584 2.544-2.824"/><path d="m8.912 52.625c-1.576-.32-2.992.428-3.162 1.67-.17 1.24.969 2.506 2.543 2.824 1.576.32 2.99-.428 3.162-1.67.17-1.24-.968-2.506-2.543-2.824"/></g><path fill="#574137" d="m13.958 55.26c-.066.078-.102.176-.102.297-.002.818 1.624 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.109-.031-.225-.086-.303 0 0-1.568.707-3.543.707-1.97 0-3.527-.707-3.527-.707"/><circle fill="#fff" cx="23.623" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="23.623" cy="49.21" rx="2.528" ry="2.5"/><ellipse fill="#231f20" cx="23.622" cy="49.21" rx=".85" ry=".842"/><circle fill="#fff" cx="11.349" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="11.349" cy="49.21" rx="2.527" ry="2.5"/><ellipse fill="#231f20" cx="11.348" cy="49.21" rx=".851" ry=".842"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,2C7.3,2,2,8.3,2,16.7v18.5h30V16.7c0-12.4-8.1-12.2-8.1-12.2S23.3,2,17,2z" fill="#ffb300"/><path d="m32 34.8v27.2h30v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="M2,34.8V62h30V34.8C32,29,2,29,2,34.8z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="m57 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m44.5 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m34.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="39.7" cy="49.8" r="1.8"/><circle cx="49.3" cy="49.8" r="1.8"/><path d="m41.4 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g><path d="m30 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m19.3 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-3.9-7.2-10.4-7.2"/><path d="m7 62h25c0-8.4-25-8.4-25 0"/></g><path d="m29.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.4.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m25.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="14.9" cy="49.8" r="1.8"/><path d="m22.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3 0-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f467.svg
index 8a7228a..ca1285f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467-1f467.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.488,2C7.471,2,2.002,8.33,2.002,16.668v18.51h30.969v-18.51c0-12.395-8.383-12.162-8.383-12.162
- S23.957,2,17.488,2z"/><path fill="#ffdd67" d="m6.444 23.643c0 0-2.23-.57-2.23-3.871 0-2.611 1.683-3.061 1.683-3.061 6.02 0 15.839-7.83 15.839-7.83s3.709 6.912 7.289 7.83c0 0 1.735.318 1.735 3.061 0 3.301-2.314 3.871-2.314 3.871-.029 4.979-6.829 10.984-10.957 10.984-4.132 0-11.04-6.01-11.04-10.984"/><path fill="#eba352" d="m20.252 25.916c0 1.086-2.249 1.398-2.764 1.398-.518 0-2.766-.385-2.766-1.469.001.001 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m13.721 21.58c.65 0 .564-1.68.564-1.68-1.995-4.459-6.44-1.637-6.44-1.637-1.727.771.775 3.209 1.176 3.316 1.882.511 4.7.001 4.7.001"/><path fill="#664e27" d="m13.243 19.539c0 1.174-.951 2.127-2.125 2.127-1.176 0-2.126-.953-2.126-2.127 0-1.172.95-2.125 2.126-2.125 1.174 0 2.125.953 2.125 2.125"/><g fill="#231f20"><circle cx="11.12" cy="19.539" r=".75"/><path d="m14.844 20.543c-.544-.662-1.083-1.301-1.707-1.787-.623-.48-1.324-.789-2.082-.836-.757-.074-1.549.088-2.372.244-.411.08-.836.158-1.278.184-.431.02-.947-.033-1.254-.361.405.158.803.074 1.188-.041.389-.111.774-.271 1.177-.406.796-.283 1.675-.516 2.608-.445.461.045.924.162 1.345.369.416.211.793.486 1.102.814.622.654 1.031 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m21.253 21.58c-.651 0-.565-1.68-.565-1.68 1.996-4.459 6.441-1.637 6.441-1.637 1.727.771-.775 3.209-1.176 3.316-1.882.511-4.7.001-4.7.001"/><path fill="#664e27" d="m25.981 19.539c0 1.174-.951 2.127-2.127 2.127-1.173 0-2.124-.953-2.124-2.127 0-1.172.951-2.125 2.124-2.125 1.176 0 2.127.953 2.127 2.125"/><g fill="#231f20"><circle cx="23.855" cy="19.539" r=".75"/><path d="m20.13 20.543c.242-.822.65-1.611 1.274-2.266.307-.328.686-.604 1.101-.814.42-.207.884-.324 1.345-.369.934-.07 1.813.162 2.607.445.403.135.789.295 1.176.406.388.115.784.199 1.189.041-.307.328-.822.381-1.254.361-.441-.025-.867-.104-1.278-.184-.823-.156-1.615-.318-2.371-.244-.757.047-1.458.355-2.082.836-.625.487-1.162 1.126-1.707 1.788"/></g><path fill="#f09985" d="m19.45 28.576c-.401-.1-.988-.053-1.761.207-.069.02-.136.043-.201.064-.069-.021-.137-.045-.204-.064-.773-.26-1.36-.307-1.76-.207-1.198.291-3.02.148-3.02.148 1.32 1.32 1.948 3.121 4.979 3.121 3.03 0 3.655-1.801 4.976-3.121 0 .001-1.816.143-3.01-.148"/><path fill="#d47f6c" d="m19.45 28.576c-.401-.1-.988-.053-1.761.207-.069.02-.136.043-.201.064-.069-.021-.137-.045-.204-.064-.773-.26-1.36-.307-1.76-.207-1.178.285-3.02.148-3.02.148 1.992.359 2.24 1.377 4.979 1.377 2.734 0 2.982-1.018 4.976-1.377.007.001-1.838.137-3.01-.148"/><path fill="#231f20" d="m31.897 17.32l1.508 2.756h26.23l1.142-2.943c0-10.553-2.454-15.02-14.13-15.13-11.796-.109-14.745 4.574-14.745 15.318"/><path fill="#ffdd67" d="m59.684 17.14c-.093.609-.218 1.182-.39 1.506-.31.58-.939.91-.939.91s.17-1.178.109-2.826c-.657-9.727-1.227-7.05-11.945-7.05-10.715 0-11.285-2.668-11.945 7.04-.061 1.656.108 2.84.108 2.84s-.632-.33-.939-.91c-.172-.324-.297-.896-.388-1.506-1.014-.266-2.319-.043-2.319 2.877 0 1.816.665 3.307 2.911 3.469.954 7.365 3.803 8.563 9.525 11.178 1.507.688 4.588.688 6.094 0 5.724-2.615 8.57-3.813 9.526-11.178 2.245-.162 2.91-1.652 2.91-3.469 0-2.92-1.306-3.143-2.318-2.877"/><path fill="#574137" d="m52.29 27.734c0 1.887-2.527 3.473-5.647 3.473-3.118 0-5.646-1.586-5.646-3.473 0 0 3 .168 5.647.168 2.643 0 5.646-.168 5.646-.168"/><path fill="#fff" d="m51.813 28c0 .953-2.313 1.707-5.169 1.707-2.855 0-5.169-.754-5.169-1.707 0 0 2.441.189 5.169.189s5.169-.189 5.169-.189"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.826 1.416-.527 0-2.822-.389-2.822-1.486-.001 0 5.648-.475 5.648.07"/><path fill="#f5f5f5" d="m36.09 17.52c-.18.838-.394 2.943 3.579 2.869 4.115-.078 3.952.277 4.153-1.113.174-1.217-1.269-2.568-3.404-3.053-2.134-.487-4.075.095-4.328 1.297"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".742"/><path fill="#664e27" d="m36.01 18.336c-.578-3.734 7.795-3.535 7.795.441-1.21-3.164-6.982-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.952 17.52c.178.838.392 2.943-3.582 2.869-4.114-.078-3.952.277-4.152-1.113-.174-1.217 1.269-2.568 3.404-3.053 2.136-.487 4.075.095 4.33 1.297"/><ellipse fill="#664e27" cx="52.716" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.716" cy="18.14" rx=".75" ry=".744"/><path fill="#664e27" d="m57.03 18.336c.579-3.734-7.794-3.535-7.794.441 1.209-3.164 6.982-3.273 7.794-.441"/><g fill="#231f20"><path d="m40.1 58.11c-.614 6.691-6.852 2.939-7.461 1.867-2.02-3.543 1.238-10.02 3.453-10.02 2.212.001 4.418 3.688 4.01 8.151"/><path d="m52.941 58.11c.614 6.691 6.852 2.939 7.46 1.867 2.02-3.543-1.237-10.02-3.451-10.02-2.215.001-4.421 3.688-4.01 8.151"/><path d="m46.37 32.967c8.33 0 13.464 5.098 13.464 11.432v4.252c0 5-3.627 5-3.626 5h-20.19c.002 0-3.107 0-3.107-5 0-2.355 0-4.252 0-4.252-.001-6.335 5.406-11.432 13.462-11.432"/></g><path fill="#c28fef" d="m46.37 35.1c-7.238 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.857-8.305 12.1-8.305 7.485 0 12.1 3.703 12.1 8.305v-1.375c0-4.6-4.611-8.303-12.1-8.303"/><path fill="#ffdd67" d="m58.783 52.44c0 0 1.616.393 1.616-1.924 0-1.836-2.107-1.715-2.107-1.715v-2.516h-19.239c-.918-1.977.113-4.02.113-4.02-1.855 1.707-1.563 4.02-1.563 4.02h-3.133v2.516c0 0-2.134-.211-2.134 1.715 0 2.316 1.695 1.924 1.695 1.924 0 3.459 3.625 7.248 12.586 7.248 8.49.001 12.166-3.097 12.166-7.248"/><g fill="#ff717f"><path opacity=".5" d="m58.25 53.971c-.172-1.242-1.587-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.171 1.242 1.586 1.99 3.162 1.67 1.575-.318 2.715-1.584 2.544-2.824"/><path opacity=".5" d="m37.945 52.3c-1.574-.32-2.99.428-3.16 1.67-.172 1.24.968 2.506 2.542 2.824 1.574.32 2.99-.428 3.16-1.67.172-1.24-.967-2.506-2.542-2.824"/></g><path fill="#574137" d="m42.979 54.941c-.066.076-.102.174-.102.295-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.109-.032-.225-.087-.301 0 0-1.569.705-3.542.705-1.972 0-3.527-.705-3.527-.705"/><g fill="#fff"><ellipse cx="52.4" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="40.609" cy="49.852" rx="3.299" ry="3.336"/></g><circle fill="#664e27" cx="52.4" cy="49.852" r="2.298"/><circle fill="#231f20" cx="52.4" cy="49.852" r=".75"/><circle fill="#664e27" cx="40.609" cy="49.852" r="2.298"/><g fill="#231f20"><circle cx="40.608" cy="49.852" r=".75"/><path d="m11.06 58.11c-.614 6.691-6.852 2.939-7.46 1.867-2.02-3.543 1.238-10.02 3.453-10.02 2.212.001 4.418 3.688 4.01 8.151"/><path d="m23.908 58.11c.614 6.691 6.852 2.939 7.461 1.867 2.02-3.543-1.238-10.02-3.451-10.02-2.216.001-4.422 3.688-4.01 8.151"/><path d="m17.335 32.967c8.329 0 13.463 5.098 13.463 11.432v4.252c0 5-3.627 5-3.625 5h-20.19c.001 0-3.107 0-3.107-5 0-2.355 0-4.252 0-4.252 0-6.335 5.405-11.432 13.463-11.432"/></g><path fill="#c28fef" d="m17.335 35.1c-7.239 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.857-8.305 12.1-8.305 7.484 0 12.1 3.703 12.1 8.305v-1.375c0-4.6-4.613-8.303-12.1-8.303"/><path fill="#ffdd67" d="m29.751 52.44c0 0 1.616.393 1.616-1.924 0-1.836-2.107-1.715-2.107-1.715v-2.516h-19.239c-.919-1.977.113-4.02.113-4.02-1.856 1.707-1.563 4.02-1.563 4.02h-3.134v2.516c0 0-2.134-.211-2.134 1.715 0 2.316 1.695 1.924 1.695 1.924 0 3.459 3.625 7.248 12.586 7.248 8.49.001 12.167-3.097 12.167-7.248"/><g fill="#ff717f"><path opacity=".5" d="m29.22 53.971c-.172-1.242-1.588-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.17 1.242 1.586 1.99 3.162 1.67 1.574-.318 2.714-1.584 2.544-2.824"/><path opacity=".5" d="m8.913 52.3c-1.575-.32-2.99.428-3.161 1.67-.172 1.24.968 2.506 2.543 2.824 1.574.32 2.99-.428 3.16-1.67.172-1.24-.968-2.506-2.542-2.824"/></g><path fill="#574137" d="m13.946 54.941c-.066.076-.103.174-.103.295-.002.818 1.624 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.109-.032-.225-.087-.301 0 0-1.568.705-3.542.705-1.97 0-3.526-.705-3.526-.705"/><g fill="#fff"><ellipse cx="23.366" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="11.577" cy="49.852" rx="3.299" ry="3.336"/></g><circle fill="#664e27" cx="23.366" cy="49.852" r="2.298"/><circle fill="#231f20" cx="23.365" cy="49.85" r=".75"/><circle fill="#664e27" cx="11.576" cy="49.852" r="2.298"/><circle fill="#231f20" cx="11.575" cy="49.852" r=".75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,2C7.3,2,2,8.3,2,16.7v18.5h30V16.7c0-12.4-8.1-12.2-8.1-12.2S23.3,2,17,2z" fill="#ffb300"/><path d="m32 34.8v27.2h30v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="M2,34.8V62h30V34.8C32,29,2,29,2,34.8z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m30 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m19.3 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-3.9-7.2-10.4-7.2"/><path d="m7 62h25c0-8.4-25-8.4-25 0"/></g><path d="m29.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.4.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m25.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="14.9" cy="49.8" r="1.8"/><path d="m22.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3 0-.6-.2-.4"/></g><path d="m55 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m44.3 37.8c-6.2 0-10.4 3.2-10.4 7.1 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.1c.1-4-3.9-7.2-10.4-7.2"/><path d="m32 62h25c0-8.4-25-8.4-25 0"/></g><path d="m54.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.5.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m50.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="39.9" cy="49.8" r="1.8"/><path d="m47.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3.1-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467.svg
index db597a2..0afec9c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-1f469-1f467.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.487,2C7.47,2,2.002,8.332,2.002,16.669v18.508h30.969V16.669c0-12.396-8.382-12.164-8.382-12.164
- S23.957,2,17.487,2z"/><path fill="#ffdd67" d="m6.443 23.642c0 0-2.229-.57-2.229-3.869 0-2.613 1.682-3.063 1.682-3.063 6.02 0 15.839-7.828 15.839-7.828s3.71 6.912 7.29 7.828c0 0 1.734.318 1.734 3.063 0 3.299-2.313 3.869-2.313 3.869-.031 4.979-6.831 10.985-10.959 10.985-4.13 0-11.04-6.01-11.04-10.985"/><path fill="#eba352" d="m20.253 25.916c0 1.086-2.25 1.398-2.766 1.398s-2.766-.385-2.766-1.469c.001 0 5.532-.472 5.532.071"/><path fill="#f5f5f5" d="m13.72 21.58c.65 0 .566-1.68.566-1.68-1.996-4.457-6.441-1.637-6.441-1.637-1.727.771.774 3.209 1.175 3.316 1.882.51 4.7.001 4.7.001"/><circle fill="#664e27" cx="11.12" cy="19.541" r="2.125"/><g fill="#231f20"><path d="m11.866 19.541c0 .414-.336.748-.748.748-.416 0-.752-.334-.752-.748 0-.416.336-.75.752-.75.412 0 .748.334.748.75"/><path d="m14.843 20.542c-.544-.662-1.082-1.301-1.707-1.787-.623-.48-1.324-.789-2.08-.836-.758-.072-1.551.088-2.373.244-.411.08-.836.158-1.279.184-.431.02-.946-.033-1.253-.361.405.158.802.074 1.188-.041.389-.111.773-.271 1.176-.406.797-.281 1.675-.516 2.609-.445.461.047.924.164 1.346.369.415.211.791.486 1.1.814.622.654 1.031 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m21.253 21.58c-.65 0-.566-1.68-.566-1.68 1.996-4.457 6.441-1.637 6.441-1.637 1.729.771-.774 3.209-1.176 3.316-1.882.51-4.699.001-4.699.001"/><circle fill="#664e27" cx="23.856" cy="19.541" r="2.125"/><g fill="#231f20"><path d="m24.605 19.541c0 .414-.335.748-.751.748-.412 0-.749-.334-.749-.748 0-.416.337-.75.749-.75.417 0 .751.334.751.75"/><path d="m20.13 20.542c.242-.822.65-1.611 1.273-2.266.309-.328.686-.604 1.102-.814.42-.205.883-.324 1.344-.369.934-.07 1.813.164 2.609.445.402.135.787.295 1.176.406.387.115.783.199 1.188.041-.306.328-.821.381-1.252.361-.443-.025-.868-.104-1.28-.184-.821-.156-1.614-.316-2.37-.244-.758.047-1.459.355-2.082.836-.628.488-1.164 1.126-1.708 1.788"/></g><path fill="#f09985" d="m19.449 28.576c-.401-.1-.987-.053-1.76.207-.069.02-.136.043-.202.064-.068-.021-.137-.045-.204-.064-.772-.26-1.358-.307-1.76-.207-1.198.291-3.02.148-3.02.148 1.321 1.32 1.949 3.121 4.979 3.121 3.03 0 3.655-1.801 4.977-3.121 0 0-1.817.143-3.01-.148"/><path fill="#d47f6c" d="m19.449 28.576c-.401-.1-.987-.053-1.76.207-.069.02-.136.043-.202.064-.068-.021-.137-.045-.204-.064-.772-.26-1.358-.307-1.76-.207-1.178.285-3.02.148-3.02.148 1.992.359 2.242 1.377 4.979 1.377 2.734 0 2.982-1.018 4.977-1.377.006 0-1.84.137-3.01-.148"/><path fill="#231f20" d="m31.897 17.32l1.508 2.756h26.23l1.142-2.943c0-10.553-2.453-15.02-14.13-15.13-11.796-.11-14.745 4.574-14.745 15.318"/><path fill="#ffdd67" d="m59.683 17.14c-.092.609-.217 1.182-.389 1.506-.311.58-.939.91-.939.91s.17-1.178.109-2.824c-.658-9.729-1.227-7.05-11.945-7.05-10.715 0-11.285-2.67-11.945 7.04-.061 1.656.107 2.84.107 2.84s-.631-.33-.939-.91c-.172-.324-.297-.896-.387-1.506-1.014-.266-2.319-.043-2.319 2.877 0 1.816.665 3.307 2.911 3.469.954 7.365 3.803 8.563 9.525 11.178 1.506.688 4.588.688 6.094 0 5.723-2.616 8.569-3.813 9.525-11.178 2.246-.162 2.911-1.652 2.911-3.469 0-2.92-1.306-3.142-2.319-2.877"/><path fill="#574137" d="m52.29 27.734c0 1.887-2.527 3.473-5.647 3.473-3.119 0-5.646-1.586-5.646-3.473 0 0 3 .168 5.648.168 2.642 0 5.645-.168 5.645-.168"/><path fill="#fff" d="m51.813 28c0 .953-2.313 1.707-5.169 1.707s-5.17-.754-5.17-1.707c0 0 2.442.189 5.17.189 2.726 0 5.169-.189 5.169-.189"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.296 1.416-2.825 1.416-.527 0-2.822-.389-2.822-1.486-.001 0 5.647-.474 5.647.07"/><path fill="#f5f5f5" d="m36.09 17.521c-.18.836-.393 2.941 3.58 2.867 4.115-.078 3.952.277 4.152-1.113.174-1.217-1.268-2.568-3.404-3.053-2.133-.486-4.074.098-4.328 1.299"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><path fill="#231f20" d="m41.07 18.14c0 .412-.337.742-.749.742-.417 0-.751-.33-.751-.742s.334-.744.751-.744c.412 0 .749.332.749.744"/><path fill="#664e27" d="m36.01 18.335c-.578-3.734 7.795-3.535 7.795.441-1.21-3.163-6.982-3.273-7.795-.441"/><path fill="#f5f5f5" d="m56.952 17.521c.178.836.391 2.941-3.582 2.867-4.115-.078-3.952.277-4.152-1.113-.174-1.217 1.268-2.568 3.404-3.053 2.135-.486 4.074.098 4.33 1.299"/><ellipse fill="#664e27" cx="52.715" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".742"/><path fill="#664e27" d="m57.03 18.335c.578-3.734-7.795-3.535-7.795.441 1.21-3.163 6.982-3.273 7.795-.441"/><g fill="#231f20"><path d="m25.581 58.11c-.615 6.691-6.854 2.939-7.463 1.867-2.02-3.543 1.238-10.02 3.453-10.02 2.214.001 4.42 3.686 4.01 8.151"/><path d="m38.425 58.11c.615 6.691 6.852 2.939 7.461 1.867 2.02-3.543-1.238-10.02-3.451-10.02-2.216.001-4.422 3.686-4.01 8.151"/><path d="m31.852 32.966c8.329 0 13.463 5.098 13.463 11.432v4.252c0 5-3.627 5-3.625 5h-20.2c.002.002-3.107 0-3.107-5 0-2.355 0-4.252 0-4.252 0-6.334 5.407-11.432 13.465-11.432"/></g><path fill="#c28fef" d="m31.852 35.1c-7.239 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.859-8.305 12.1-8.305 7.485 0 12.1 3.703 12.1 8.305v-1.375c-.001-4.6-4.612-8.303-12.1-8.303"/><path fill="#ffdd67" d="m44.27 52.44c0 0 1.616.391 1.616-1.926 0-1.834-2.107-1.713-2.107-1.713v-2.516h-19.24c-.921-1.979.113-4.02.113-4.02-1.858 1.707-1.565 4.02-1.565 4.02h-3.133v2.516c0 0-2.135-.211-2.135 1.713 0 2.316 1.695 1.926 1.695 1.926 0 3.459 3.626 7.248 12.588 7.248 8.491.001 12.168-3.097 12.168-7.248"/><g fill="#ff717f"><path opacity=".5" d="m43.738 53.971c-.172-1.242-1.588-1.99-3.162-1.672-1.576.318-2.716 1.584-2.544 2.826.17 1.24 1.586 1.99 3.162 1.67 1.575-.318 2.714-1.584 2.544-2.824"/><path opacity=".5" d="m23.428 52.3c-1.574-.318-2.99.43-3.16 1.672-.172 1.24.968 2.506 2.542 2.824 1.576.32 2.992-.43 3.162-1.67.172-1.242-.968-2.508-2.544-2.826"/></g><path fill="#574137" d="m28.463 54.939c-.066.078-.103.176-.103.297-.002.818 1.624 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.109-.031-.225-.086-.303 0 0-1.569.707-3.543.707-1.97 0-3.526-.707-3.526-.707"/><g fill="#fff"><ellipse cx="37.883" cy="49.852" rx="3.3" ry="3.336"/><ellipse cx="26.09" cy="49.852" rx="3.3" ry="3.336"/></g><circle fill="#664e27" cx="37.883" cy="49.852" r="2.298"/><circle fill="#231f20" cx="37.882" cy="49.852" r=".75"/><circle fill="#664e27" cx="26.09" cy="49.852" r="2.299"/><circle fill="#231f20" cx="26.09" cy="49.85" r=".75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,2C7.3,2,2,8.3,2,16.7v18.5h30V16.7c0-12.4-8.1-12.2-8.1-12.2S23.3,2,17,2z" fill="#ffb300"/><path d="m32 34.8v27.2h30v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="M2,34.8V62h30V34.8C32,29,2,29,2,34.8z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m42.5 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.4 1.7-2.7 5.4-1.4 7.6.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.2.1-5.9-1.4-7.6" fill="#ffb300"/><g fill="#ff81ab"><path d="m31.9 37.8c-6.2 0-10.4 3.2-10.4 7.1 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.1c0-4-4-7.2-10.4-7.2"/><path d="m19.5 62h25c0-8.4-25-8.4-25 0"/></g><path d="m41.8 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.5.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m38.3 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="27.4" cy="49.8" r="1.8"/><path d="m35.1 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3.1-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f468.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f468.svg
index cccff24..727c3fc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f468.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f468.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m39.685 30.931c.155 1.049.366 2.035.658 2.594.523 1 1.593 1.568 1.593 1.568s-.288-2.039-.184-4.891c1.118-16.723 2.085-12.12 20.25-12.12v-13.219c-19.821-.127-24.786 7.945-24.786 26.383l.003.004c.745-.551 1.659-.529 2.466-.314"/><g fill="#ffdd67"><path d="m52.641 49.17c0 0 4.931.281 9.361.289v-2.279c-1.173-.084-4.574-.783-4.574-2.551 0 0 2.254-.191 4.574-.283v-8.363h-22.23l-2.554-4.742c-.842.621-1.467 1.973-1.467 4.639 0 3.131 1.129 5.699 4.935 5.975 1.62 12.688 6.45 14.748 16.15 19.252 1.276.592 3.22.887 5.163.889v-6.848c-5.187-.076-9.36-2.771-9.36-5.978"/><path d="m62 35.987v-17.91c-18.16 0-19.13-4.598-20.25 12.13-.104 2.852.184 4.891.184 4.891s-1.069-.568-1.593-1.568c-.292-.559-.503-1.545-.658-2.594-.807-.215-1.721-.236-2.466.314l2.554 4.742h22.23"/></g><path fill="#574137" d="m62 55.15v-2.582c-4.741-.037-8.553-1.32-8.553-2.938 0 0 4.02.318 8.553.328v-.496c-4.431-.008-9.361-.289-9.361-.289 0 3.208 4.173 5.903 9.361 5.977"/><path fill="#fff" d="m53.45 49.632c0 1.617 3.812 2.9 8.553 2.938v-2.61c-4.537-.01-8.553-.328-8.553-.328"/><path fill="#eba352" d="m62 47.19v-2.834c-2.32.092-4.574.283-4.574.283 0 1.767 3.401 2.467 4.574 2.551"/><path fill="#f5f5f5" d="m44.31 31.583c-.304 1.445-.664 5.068 6.07 4.941 6.979-.135 6.701.477 7.04-1.918.295-2.094-2.151-4.422-5.771-5.258-3.619-.835-6.906.169-7.339 2.235"/><ellipse fill="#664e27" cx="51.49" cy="32.649" rx="3.68" ry="3.703"/><ellipse fill="#231f20" cx="51.49" cy="32.649" rx="1.25" ry="1.258"/><path fill="#664e27" d="m44.18 32.987c-.981-6.428 13.214-6.086 13.214.76-2.052-5.447-11.837-5.635-13.214-.76"/><path fill="#231f20" d="m24.319 30.931c-.155 1.049-.366 2.035-.658 2.594-.523 1-1.593 1.568-1.593 1.568s.288-2.039.184-4.891c-1.118-16.723-2.085-12.12-20.25-12.12v-13.219c19.821-.127 24.786 7.945 24.786 26.383l-.003.004c-.745-.551-1.659-.529-2.466-.314"/><g fill="#ffdd67"><path d="m11.363 49.17c0 0-4.931.281-9.361.289v-2.279c1.173-.084 4.574-.783 4.574-2.551 0 0-2.254-.191-4.574-.283v-8.363h22.23l2.554-4.742c.842.621 1.467 1.973 1.467 4.639 0 3.131-1.129 5.699-4.935 5.975-1.62 12.688-6.45 14.748-16.15 19.252-1.276.592-3.22.887-5.163.889v-6.848c5.187-.076 9.361-2.771 9.361-5.978"/><path d="m2 35.987v-17.91c18.16 0 19.13-4.598 20.25 12.13.104 2.852-.184 4.891-.184 4.891s1.069-.568 1.593-1.568c.292-.559.503-1.545.658-2.594.807-.215 1.721-.236 2.466.314l-2.554 4.742h-22.23"/></g><path fill="#574137" d="m2 55.15v-2.582c4.741-.037 8.553-1.32 8.553-2.938 0 0-4.02.318-8.553.328v-.496c4.431-.008 9.361-.289 9.361-.289 0 3.208-4.174 5.903-9.361 5.977"/><path fill="#fff" d="m10.555 49.632c0 1.617-3.812 2.9-8.553 2.938v-2.61c4.537-.01 8.553-.328 8.553-.328"/><path fill="#eba352" d="m2 47.19v-2.834c2.32.092 4.574.283 4.574.283 0 1.767-3.401 2.467-4.574 2.551"/><path fill="#f5f5f5" d="m19.689 31.583c.304 1.445.664 5.068-6.07 4.941-6.979-.135-6.701.477-7.04-1.918-.295-2.094 2.151-4.422 5.771-5.258 3.62-.835 6.907.169 7.339 2.235"/><ellipse fill="#664e27" cx="12.51" cy="32.649" rx="3.68" ry="3.703"/><ellipse fill="#231f20" cx="12.509" cy="32.649" rx="1.25" ry="1.258"/><path fill="#664e27" d="m19.821 32.987c.981-6.428-13.214-6.086-13.214.76 2.052-5.447 11.837-5.635 13.214-.76"/><path fill="#e84d88" d="m49.542 8.317c-3.978-10.521-16.892-5.8-18.09-.546-1.643-5.6-14.236-9.775-18.08.553-4.28 11.508 16.588 21.838 18.08 23.529 1.494-1.346 22.361-12.213 18.09-23.536"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 54.8v7.2h30v-7.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m31.9 37.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 37.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="40.3" r="2.2"/><circle cx="52" cy="40.3" r="2.2"/><path d="m50.1 47.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m46.5 7.1c-3.2-8.5-13.5-4.7-14.5-.5-1.3-4.5-11.4-7.9-14.5.4-3.5 9.3 13.3 17.6 14.5 19 1.2-1.1 18-9.8 14.5-18.9" fill="#ff5a79"/><path d="M32,54.8V62H2v-7.2C2,49,32,49,32,54.8z" fill="#01579b"/><path d="m32.1 37.3l-1.5 2.8h-26.2l-1.1-2.9c0-10.6 2.5-15 14.1-15.1 11.8-.2 14.7 4.5 14.7 15.2" fill="#ffb300"/><path d="m4.3 37.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 1.2-5.1 11.9-5.1 10.7 0 11.3-4.7 11.9 5 .1 1.7-.1 2.8-.1 2.8s.6-.3.9-.9c.2-.3.3-.9.4-1.5 1-.3 2.3 0 2.3 2.9 0 1.8-.7 3.3-2.9 3.5-.8 6.1-8.9 10.1-12.6 10.1-3.6 0-11.8-4.1-12.6-10.1-2-.1-2.7-1.6-2.7-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><circle cx="23" cy="40.3" r="2.2"/><circle cx="12" cy="40.3" r="2.2"/><path d="m13.9 47.2c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4s-3.2-1.1-3.9-2.4c-.2-.4 0-.8.3-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f48b-1f468.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f48b-1f468.svg
index b11b9cd..5e84506 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f48b-1f468.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468-2764-1f48b-1f468.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f0cd4f" d="m36.427 60.13l20.45-10.656c0 0 .8 7.262 2.914 14.523h-15.438c0-2.986-7.926-3.867-7.926-3.867"/><path fill="#231f20" d="m64 43.47c0-10.723-4.898-11.933-4.898-11.933-4.225-5.444-18.754-3.461-22.584.44-1.062 1.08-.524 3.532.976 3.237l7.563 13.753 7.377 2.152c0 0 3.465-1.442 5.532 5.221-.001.001 6.03-1.378 6.03-12.87"/><g fill="#ffdd67"><path d="m44.634 60.44c4.93-1.057 6.892.35 8.276-11.605h-6.645c0 0 1.555-4.768.936-7.096 3.667-2.887 1.12-6.232-1.035-7.512-3.458-2.055-8.311-.986-9.01 1.773-1.297 5.106-1.35 4.08-.52 5.432.863 1.404-3.115 4.471-3.02 6.279.051.975 1.501 1.366 1.558 1.646.146.701-.426 1.022-1.295 1.586-.867.563.715 1.129.409 2.924-.308 1.795-.472 2.475-.472 2.475.716.514 1.667.487 1.495 1.58-.404 2.557-.154 4.552 9.326 2.518"/><path d="m37.87 44.34c.158-.481.095-.861.021-1.285-.083-.422-.182-.875-.207-1.393-.015-.504.087-1.123.437-1.552.335-.43.794-.624 1.237-.647-.303.373-.566.707-.701 1.055-.131.346-.161.695-.143 1.114.003.415.066.88.021 1.391-.02.493-.231 1.113-.665 1.317"/><path d="m56.47 48.714c-.636 2.774-2.743 4.573-4.709 4.02-1.963-.552-3.041-3.248-2.406-6.02.637-2.771 2.742-4.573 4.708-4.02 1.963.551 3.042 3.245 2.407 6.02"/></g><path fill="#594640" d="m53.46 44.33c-.537.013-1.096.205-1.564.578-.462.385-.805.936-.959 1.519-.135.476-.167.965-.112 1.439-.208-.073-.434-.079-.609.054.262.197.36.413.464.623.092.215.172.426.217.642.057.212.079.419.081.643-.003.225-.05.477-.17.808.315-.006.623-.234.785-.578.175-.34.186-.754.106-1.114-.098-.358-.277-.685-.551-.899-.053-.045-.113-.08-.174-.113.396-.949.779-1.777 1.409-2.27.33-.281.733-.467 1.172-.615.441-.143.923-.229 1.433-.371-.475-.241-.99-.366-1.528-.346"/><path fill="#ffdd67" d="m35.467 52.945c-.413-.258-.807-.528-1.107-.832-.281-.301-.502-.658-.263-1.318-.276.074-.553.358-.664.744-.1.393-.026.825.123 1.16.14.326.327.592.536.821-.223.233-.43.546-.519.892-.109.363-.103.721-.057 1.037.061.32.147.615.297.895.24-.581.399-1.144.643-1.451.129-.149.242-.262.412-.371.161-.113.358-.224.566-.34l1.061-.59-1.028-.647"/><path fill="#594640" d="m42.834 42.666c-.553.205-.88.584-1.309.92-.408.353-.854.695-1.372.971-.51.27-1.117.479-1.756.418-.637-.041-1.251-.41-1.556-.979 1.184.166 1.862-.226 2.782-.702.449-.232.925-.496 1.469-.68.514-.178 1.217-.343 1.742.052"/><path fill="#f0cd4f" d="m27.573 60.13l-20.45-10.656c0 0-.8 7.262-2.914 14.523h15.438c0-2.986 7.926-3.867 7.926-3.867"/><path fill="#231f20" d="m0 43.47c0-10.723 4.898-11.933 4.898-11.933 4.225-5.444 18.754-3.461 22.584.44 1.062 1.08.524 3.532-.976 3.237l-7.563 13.753-7.377 2.152c0 0-3.465-1.442-5.532 5.221.001.001-6.03-1.378-6.03-12.87"/><g fill="#ffdd67"><path d="m19.366 60.44c-4.93-1.057-6.892.35-8.276-11.605h6.645c0 0-1.555-4.768-.936-7.096-3.667-2.887-1.12-6.232 1.035-7.512 3.458-2.055 8.311-.986 9.01 1.773 1.297 5.106 1.35 4.08.52 5.432-.863 1.404 3.115 4.471 3.02 6.279-.051.975-1.501 1.366-1.558 1.646-.146.701.426 1.022 1.295 1.586.867.563-.715 1.129-.409 2.924.308 1.795.472 2.475.472 2.475-.716.514-1.667.487-1.495 1.58.404 2.557.154 4.552-9.326 2.518"/><path d="m26.13 44.34c-.158-.481-.095-.861-.021-1.285.083-.422.182-.875.207-1.393.015-.504-.087-1.123-.437-1.552-.335-.43-.794-.624-1.237-.647.303.373.566.707.701 1.055.131.346.161.695.143 1.114-.003.415-.066.88-.021 1.391.02.493.231 1.113.665 1.317"/><path d="m7.532 48.714c.636 2.774 2.743 4.573 4.709 4.02 1.963-.552 3.041-3.248 2.406-6.02-.637-2.771-2.742-4.573-4.708-4.02-1.963.551-3.042 3.245-2.407 6.02"/></g><path fill="#594640" d="m10.538 44.33c.537.013 1.096.205 1.564.578.462.385.805.936.959 1.519.135.476.167.965.112 1.439.208-.073.434-.079.609.054-.262.197-.36.413-.464.623-.092.215-.172.426-.217.642-.057.212-.079.419-.081.643.003.225.05.477.17.808-.315-.006-.623-.234-.785-.578-.175-.34-.186-.754-.106-1.114.098-.358.277-.685.551-.899.053-.045.113-.08.174-.113-.396-.949-.779-1.777-1.409-2.27-.33-.281-.733-.467-1.172-.615-.441-.143-.923-.229-1.433-.371.475-.241.99-.366 1.528-.346"/><path fill="#ffdd67" d="m28.533 52.945c.413-.258.807-.528 1.107-.832.281-.301.502-.658.263-1.318.276.074.553.358.664.744.1.393.026.825-.123 1.16-.14.326-.327.592-.536.821.223.233.43.546.519.892.109.363.103.721.057 1.037-.061.32-.147.615-.297.895-.24-.581-.399-1.144-.643-1.451-.129-.149-.242-.262-.412-.371-.161-.113-.358-.224-.566-.34l-1.061-.59 1.028-.647"/><path fill="#594640" d="m21.17 42.666c.553.205.88.584 1.309.92.408.353.854.695 1.372.971.51.27 1.117.479 1.756.418.637-.041 1.251-.41 1.556-.979-1.184.166-1.862-.226-2.782-.702-.449-.232-.925-.496-1.469-.68-.514-.178-1.217-.343-1.742.052"/><path fill="#e84d88" d="m51.91 8.596c-4.379-10.982-18.598-6.06-19.911-.571-1.809-5.845-15.678-10.204-19.909.577-4.712 12.01 18.265 22.789 19.909 24.554 1.644-1.404 24.621-12.746 19.911-24.56"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 60.8v1.2h-30v-14.2c0 0 30 7.2 30 13" fill="#01579b"/><path d="m29.2 40h-24.8l-1.1-2.9c0-10.6 2.5-15 14.1-15.1 12.4-.1 13.8 10.3 11.8 18" fill="#ffb300"/><path d="m4.3 37.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s-.2-1.2-.1-2.8c.7-9.7 2.6-5.1 15.9-5.1 4.7 0 8.2-3.5 8.2 12 0 5.8-4.3 11.5-9.9 11.5-6 0-14.8-4.2-14.8-11.7-2.2-.1-2.9-1.6-2.9-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><path d="m28.2 39.9c-.9-2-2.2-3-3.6-3-1.4 0-2.7 1-3.6 3-.1.2.4.6.6.4.9-.7 1.9-1 3-1 1.1 0 2.1.3 3 1 .2.1.7-.2.6-.4"/><path d="m17.4 39.9c-.9-2-2.2-3-3.6-3s-2.7 1-3.6 3c-.1.2.4.6.6.4.9-.7 1.9-1 3-1 1.1 0 2.1.3 3 1 .2.1.7-.2.6-.4"/><path d="m23.2 49.4c.8-.8-.9-1.4-.9-2.8 0-1.4 1.6-2 .9-2.8-.9-.9-2.9-.2-4.1-1.5 0 1 .9 2.2 2.5 2.2 0 0-1.1.4-1.1 2.2 0 1.7 1.1 2.2 1.1 2.2-1.6 0-2.5 1.1-2.5 2.2 1.2-1.4 3.2-.7 4.1-1.7"/></g><path d="m46.5 7.1c-3.2-8.5-13.5-4.7-14.5-.5-1.3-4.5-11.4-7.9-14.5.4-3.5 9.3 13.3 17.6 14.5 19 1.2-1.1 18-9.8 14.5-18.9" fill="#ff5a79"/><path d="m32 60.8v1.2h30v-14.2c0 0-30 7.2-30 13" fill="#01579b"/><path d="m34.8 40h24.8l1.1-2.9c0-10.6-2.5-15-14.1-15.1-12.4-.1-13.8 10.3-11.8 18" fill="#ffb300"/><path d="m59.7 37.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-2.6-5.1-15.9-5.1-4.7 0-8.2-3.5-8.2 12 0 5.8 4.3 11.5 9.9 11.5 6 0 14.8-4.2 14.8-11.7 2.2-.2 2.9-1.7 2.9-3.5 0-2.8-1.3-3-2.3-2.8" fill="#ffdd67"/><g fill="#937237"><path d="m35.8 39.9c.9-2 2.2-3 3.6-3 1.4 0 2.7 1 3.6 3 .1.2-.4.6-.6.4-.9-.7-1.9-1-3-1-1.1 0-2.1.3-3 1-.2.1-.7-.2-.6-.4"/><path d="m46.6 39.9c.9-2 2.2-3 3.6-3s2.7 1 3.6 3c.1.2-.4.6-.6.4-.9-.7-1.9-1-3-1-1.1 0-2.1.3-3 1-.2.1-.7-.2-.6-.4"/><path d="m40.8 49.4c-.8-.8.9-1.4.9-2.8 0-1.4-1.6-2-.9-2.8.9-.9 2.9-.2 4.1-1.5 0 1-.9 2.2-2.5 2.2 0 0 1.1.4 1.1 2.2 0 1.7-1.1 2.2-1.1 2.2 1.6 0 2.5 1.1 2.5 2.2-1.2-1.4-3.2-.7-4.1-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f468.svg b/build/js/jsxc/lib/emojione/assets/svg/1f468.svg
index d3744c3..0f27a28 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f468.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f468.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m5.563 29.703l2.727 4.983h47.43l2.064-5.323c0-19.08-4.439-27.17-25.553-27.361-21.333-.198-26.664 8.271-26.664 27.701"/><path fill="#ffdd67" d="m55.81 29.377c-.166 1.102-.393 2.138-.704 2.723-.559 1.051-1.699 1.647-1.699 1.647s.307-2.129.197-5.11c-1.188-17.592-2.218-12.756-21.6-12.756-19.378 0-20.409-4.827-21.602 12.731-.111 2.995.195 5.135.195 5.135s-1.14-.597-1.699-1.647c-.312-.585-.536-1.621-.702-2.723-1.83-.48-4.194-.079-4.194 5.201 0 3.288 1.204 5.983 5.264 6.274 1.728 13.319 6.88 15.484 17.229 20.21 2.723 1.244 8.295 1.244 11.02 0 10.35-4.728 15.5-6.893 17.229-20.21 4.06-.291 5.262-2.986 5.262-6.274 0-5.28-2.362-5.682-4.192-5.201"/><path fill="#574137" d="m42.44 48.533c0 3.415-4.571 6.281-10.212 6.281-5.639 0-10.211-2.866-10.211-6.281 0 0 5.43.305 10.213.305 4.78 0 10.21-.305 10.21-.305"/><path fill="#fff" d="m41.575 49.01c0 1.724-4.182 3.088-9.346 3.088s-9.351-1.364-9.351-3.088c0 0 4.418.345 9.351.345 4.932-.001 9.346-.345 9.346-.345"/><path fill="#eba352" d="m37.34 43.894c0 1.987-4.152 2.56-5.107 2.56-.953 0-5.104-.702-5.104-2.687-.001 0 10.211-.861 10.211.127"/><path fill="#f5f5f5" d="m13.14 30.06c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.643-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.794" cy="31.18" rx="3.925" ry="3.888"/><ellipse fill="#231f20" cx="20.794" cy="31.18" rx="1.3" ry="1.288"/><path fill="#664e27" d="m12.994 31.538c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.918-14.1-.798"/><path fill="#f5f5f5" d="m50.868 30.06c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.643 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.21" cy="31.18" rx="3.925" ry="3.888"/><path fill="#231f20" d="m44.509 31.18c0 .712-.584 1.288-1.299 1.288-.719 0-1.301-.575-1.301-1.288s.582-1.287 1.301-1.287c.715.001 1.299.575 1.299 1.287"/><path fill="#664e27" d="m51.01 31.538c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.918 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M6,36h52C58,8,54,2,32,2S6,8,6,36z" fill="#ffb300"/><path d="m55.8 29.9c-.2 1.1-.4 2.1-.7 2.7-.6 1-1.7 1.6-1.7 1.6s.3-2.1.2-5c-1.2-17.4-2.2-12.6-21.6-12.6-19.4 0-20.4-4.8-21.6 12.5-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.7-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4.2-.1-4.2 5.1 0 3.2 1.2 5.9 5.3 6.2 1.3 10.2 7.3 15.4 17.2 19.9 2.7 1.2 8.3 1.2 11 0 10-4.5 15.9-9.7 17.2-19.9 4.1-.3 5.3-2.9 5.3-6.2 0-5.2-2.4-5.6-4.2-5.1" fill="#ffdd67"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#937237"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#664e27"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fb.svg
index 432ae8a..62b4b63 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fb.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.413-15.16-21.996-15.16-21.996s-1.141-4.531-12.841-4.531"/><path fill="#ffe1bd" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.726 3.039-5.537 3.039-5.537 10.895 0 28.643-14.157 28.643-14.157s6.709 12.5 13.184 14.157c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.057 9-12.352 19.862-19.817 19.862-7.469 0-19.971-10.86-19.971-19.862"/><path fill="#e6b796" d="m37 45.25c0 1.962-4.066 2.529-5 2.529s-5-.695-5-2.657c0 0 10-.851 10 .128"/><path fill="#f5f5f5" d="m25.19 37.41c1.176 0 1.02-3.038 1.02-3.038-3.608-8.06-11.646-2.959-11.646-2.959-3.123 1.396 1.4 5.803 2.125 5.998 3.405.921 8.501-.001 8.501-.001"/><circle fill="#664e27" cx="20.484" cy="33.716" r="3.844"/><g fill="#231f20"><circle cx="20.484" cy="33.716" r="1.25"/><path d="m27.22 35.53c-.983-1.198-1.956-2.352-3.085-3.23-1.129-.873-2.397-1.426-3.766-1.513-1.368-.132-2.801.16-4.288.441-.744.145-1.513.288-2.313.333-.777.032-1.713-.06-2.268-.655.732.291 1.452.137 2.15-.072.702-.204 1.399-.491 2.127-.736 1.439-.511 3.03-.932 4.717-.804.834.083 1.672.294 2.432.667.752.384 1.435.88 1.992 1.476 1.129 1.179 1.865 2.607 2.302 4.093"/></g><path fill="#f5f5f5" d="m38.812 37.41c-1.176 0-1.02-3.038-1.02-3.038 3.608-8.06 11.646-2.959 11.646-2.959 3.125 1.396-1.4 5.803-2.125 5.998-3.403.921-8.501-.001-8.501-.001"/><circle fill="#664e27" cx="43.52" cy="33.716" r="3.844"/><g fill="#231f20"><circle cx="43.52" cy="33.716" r="1.25"/><path d="m36.784 35.53c.437-1.486 1.173-2.914 2.302-4.094.557-.596 1.239-1.092 1.991-1.476.759-.372 1.599-.584 2.432-.667 1.687-.127 3.276.293 4.716.804.728.245 1.425.533 2.127.736.698.208 1.418.362 2.15.072-.555.596-1.49.688-2.268.655-.801-.045-1.568-.188-2.313-.333-1.487-.281-2.92-.573-4.288-.441-1.368.087-2.636.64-3.765 1.513-1.129.88-2.1 2.033-3.084 3.231"/></g><path fill="#f09985" d="m35.554 50.06c-.727-.179-1.787-.094-3.186.374-.123.038-.244.078-.365.117-.123-.039-.244-.079-.367-.117-1.398-.468-2.459-.553-3.184-.374-2.166.527-5.45.27-5.45.27 2.388 2.387 3.522 5.645 9 5.645 5.477 0 6.611-3.258 8.999-5.645 0-.001-3.284.257-5.448-.27"/><path fill="#d47f6c" d="m35.554 50.06c-.727-.179-1.787-.094-3.186.374-.123.038-.244.078-.365.117-.123-.039-.244-.079-.367-.117-1.398-.468-2.459-.553-3.184-.374-2.127.518-5.462.268-5.45.27 3.603.647 4.052 2.488 9 2.488 4.947 0 5.396-1.841 8.999-2.488.012-.003-3.323.247-5.448-.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#594640"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C21.1,27.2,43,12,43,12s4.6,13.4,11.6,15.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62C23.9,62,10.4,50.3,10.4,40.7z" fill="#ffe1bd"/><path d="m32 47c-4.2 0-6.3-3-4.2-3 2.1 0 6.3 0 8.4 0s0 3-4.2 3" fill="#e6b796"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#664e27"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#664e27"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#e08672"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5 5.5 0 6-1.7 10-2.5 0 0-3.8.5-6.1-.4" fill="#b86e5d"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fc.svg
index 4588d26..2556b3a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fc.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.413-15.16-21.996-15.16-21.996s-1.14-4.531-12.84-4.531"/><path fill="#fed0ac" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.538 3.039-5.538 10.896 0 28.643-14.157 28.643-14.157s6.709 12.5 13.184 14.157c0 0 3.135.578 3.135 5.538 0 5.967-4.182 6.998-4.182 6.998-.057 9-12.352 19.861-19.817 19.861-7.468 0-19.97-10.859-19.97-19.861"/><path fill="#e0a372" d="m37 45.25c0 1.963-4.067 2.529-5 2.529s-5-.695-5-2.656c-.001 0 10-.851 10 .127"/><path fill="#f5f5f5" d="m25.19 37.41c1.176 0 1.02-3.037 1.02-3.037-3.608-8.06-11.646-2.96-11.646-2.96-3.123 1.396 1.4 5.804 2.125 5.998 3.404.921 8.501-.001 8.501-.001"/><circle fill="#664e27" cx="20.485" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.485" cy="33.717" r="1.25"/><path d="m27.22 35.531c-.984-1.199-1.956-2.353-3.086-3.231-1.129-.873-2.396-1.426-3.766-1.513-1.367-.132-2.801.16-4.287.441-.744.145-1.513.288-2.314.333-.776.032-1.712-.06-2.267-.655.732.291 1.452.137 2.149-.072.703-.204 1.4-.491 2.127-.736 1.44-.511 3.03-.932 4.717-.804.834.083 1.673.294 2.432.667.752.384 1.436.88 1.992 1.476 1.129 1.179 1.866 2.607 2.303 4.094"/></g><path fill="#f5f5f5" d="m38.813 37.41c-1.176 0-1.02-3.037-1.02-3.037 3.607-8.06 11.645-2.96 11.645-2.96 3.125 1.396-1.4 5.804-2.125 5.998-3.403.921-8.5-.001-8.5-.001"/><circle fill="#664e27" cx="43.52" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.52" cy="33.717" r="1.25"/><path d="m36.785 35.531c.436-1.487 1.172-2.915 2.301-4.095.557-.596 1.24-1.092 1.992-1.476.758-.372 1.598-.584 2.432-.667 1.686-.127 3.275.293 4.715.804.729.245 1.426.533 2.127.736.699.208 1.418.362 2.15.072-.555.596-1.49.688-2.268.655-.801-.045-1.568-.188-2.313-.333-1.486-.281-2.92-.573-4.287-.441-1.369.087-2.637.64-3.766 1.513-1.128.88-2.1 2.033-3.083 3.232"/></g><path fill="#e08672" d="m35.555 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.166.527-5.45.27-5.45.27 2.388 2.387 3.522 5.645 9 5.645 5.477 0 6.612-3.258 8.999-5.645-.001-.001-3.284.257-5.448-.27"/><path fill="#b86e5d" d="m35.555 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.127.518-5.462.268-5.45.27 3.603.648 4.052 2.488 9 2.488 4.948 0 5.397-1.84 8.999-2.488.011-.003-3.323.247-5.448-.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#dbb471"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C21.1,27.2,43,12,43,12s4.6,13.4,11.6,15.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62C23.9,62,10.4,50.3,10.4,40.7z" fill="#fed0ac"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#e0a372"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#664e27"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#664e27"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#e08672"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5s6-1.7 10-2.5c0 0-3.8.5-6.1-.4" fill="#b86e5d"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fd.svg
index d638618..c026985 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fd.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.413-15.16-21.996-15.16-21.996s-1.141-4.531-12.841-4.531"/><path fill="#d6a57c" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.538 3.039-5.538 10.895 0 28.642-14.157 28.642-14.157s6.709 12.5 13.185 14.157c0 0 3.135.578 3.135 5.538 0 5.967-4.183 6.998-4.183 6.998-.057 9-12.351 19.861-19.817 19.861s-19.97-10.859-19.97-19.861"/><path fill="#b58360" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#f5f5f5" d="m25.19 37.41c1.176 0 1.02-3.037 1.02-3.037-3.607-8.06-11.645-2.96-11.645-2.96-3.123 1.396 1.4 5.804 2.125 5.998 3.405.921 8.5-.001 8.5-.001"/><circle fill="#664e27" cx="20.484" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.484" cy="33.717" r="1.25"/><path d="m27.22 35.531c-.982-1.199-1.955-2.353-3.085-3.231-1.129-.873-2.397-1.426-3.766-1.513-1.367-.132-2.801.16-4.288.441-.744.145-1.512.288-2.313.333-.777.032-1.713-.06-2.268-.655.732.291 1.451.137 2.149-.072.703-.204 1.4-.491 2.128-.736 1.439-.511 3.03-.932 4.716-.804.834.083 1.673.294 2.433.667.752.384 1.434.88 1.992 1.476 1.128 1.179 1.865 2.607 2.302 4.094"/></g><path fill="#f5f5f5" d="m38.811 37.41c-1.176 0-1.02-3.037-1.02-3.037 3.608-8.06 11.646-2.96 11.646-2.96 3.125 1.396-1.4 5.804-2.125 5.998-3.403.921-8.501-.001-8.501-.001"/><circle fill="#664e27" cx="43.519" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.519" cy="33.717" r="1.25"/><path d="m36.783 35.531c.438-1.487 1.174-2.915 2.303-4.095.557-.596 1.238-1.092 1.99-1.476.76-.372 1.599-.584 2.432-.667 1.688-.127 3.277.293 4.717.804.727.245 1.424.533 2.127.736.697.208 1.417.362 2.149.072-.555.596-1.49.688-2.267.655-.802-.045-1.569-.188-2.313-.333-1.487-.281-2.92-.573-4.288-.441-1.367.087-2.636.64-3.765 1.513-1.13.88-2.1 2.033-3.085 3.232"/></g><path fill="#b58360" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.166.527-5.449.27-5.449.27 2.387 2.387 3.521 5.645 9 5.645 5.477 0 6.611-3.258 8.999-5.645 0-.001-3.284.257-5.448-.27"/><path fill="#805c44" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.127.518-5.461.268-5.449.27 3.602.648 4.051 2.488 9 2.488 4.947 0 5.396-1.84 8.999-2.488.012-.003-3.323.247-5.448-.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#594640"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C21.1,27.2,43,12,43,12s4.6,13.4,11.6,15.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62C23.9,62,10.4,50.3,10.4,40.7z" fill="#d6a57c"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#b58360"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#664e27"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#664e27"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#b58360"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5s6-1.7 10-2.5c0 0-3.8.5-6.1-.4" fill="#805c44"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fe.svg
index 506fd6f..8c97708 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3fe.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.413-15.16-21.996-15.16-21.996s-1.141-4.531-12.841-4.531"/><path fill="#b47d56" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.538 3.039-5.538 10.895 0 28.643-14.157 28.643-14.157s6.709 12.5 13.184 14.157c0 0 3.135.578 3.135 5.538 0 5.967-4.182 6.998-4.182 6.998-.057 9-12.352 19.861-19.817 19.861-7.469 0-19.971-10.859-19.971-19.861"/><path fill="#935e3e" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#f5f5f5" d="m25.19 37.41c1.176 0 1.02-3.037 1.02-3.037-3.608-8.06-11.646-2.96-11.646-2.96-3.123 1.396 1.4 5.804 2.125 5.998 3.405.921 8.501-.001 8.501-.001"/><circle fill="#664e27" cx="20.484" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.484" cy="33.717" r="1.25"/><path d="m27.22 35.531c-.983-1.199-1.956-2.353-3.085-3.231-1.129-.873-2.397-1.426-3.766-1.513-1.367-.132-2.801.16-4.289.441-.743.145-1.512.288-2.313.333-.777.032-1.713-.06-2.268-.655.732.291 1.452.137 2.15-.072.703-.204 1.4-.491 2.127-.736 1.439-.511 3.03-.932 4.717-.804.834.083 1.672.294 2.432.667.752.384 1.435.88 1.992 1.476 1.129 1.179 1.866 2.607 2.303 4.094"/></g><path fill="#f5f5f5" d="m38.812 37.41c-1.176 0-1.02-3.037-1.02-3.037 3.608-8.06 11.646-2.96 11.646-2.96 3.125 1.396-1.4 5.804-2.125 5.998-3.403.921-8.501-.001-8.501-.001"/><circle fill="#664e27" cx="43.52" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.52" cy="33.717" r="1.25"/><path d="m36.784 35.531c.437-1.487 1.173-2.915 2.302-4.095.557-.596 1.239-1.092 1.991-1.476.759-.372 1.599-.584 2.432-.667 1.687-.127 3.276.293 4.716.804.728.245 1.425.533 2.127.736.698.208 1.418.362 2.15.072-.555.596-1.49.688-2.268.655-.801-.045-1.568-.188-2.313-.333-1.487-.281-2.92-.573-4.288-.441-1.368.087-2.636.64-3.765 1.513-1.129.88-2.1 2.033-3.084 3.232"/></g><path fill="#935e3e" d="m35.554 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.166.527-5.45.27-5.45.27 2.388 2.387 3.522 5.645 9 5.645 5.477 0 6.611-3.258 8.999-5.645 0-.001-3.284.257-5.448-.27"/><path fill="#734c31" d="m35.554 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.127.518-5.462.268-5.45.27 3.603.648 4.052 2.488 9 2.488 4.947 0 5.396-1.84 8.999-2.488.012-.003-3.323.247-5.448-.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#231f20"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C21.1,27.2,43,12,43,12s4.6,13.4,11.6,15.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62S10.4,50.3,10.4,40.7z" fill="#b47d56"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#935e3e"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#664e27"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><circle cx="20" cy="33.5" r="4.5" fill="#664e27"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#935e3e"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5 5.5 0 6-1.7 10-2.5 0 0-3.8.5-6.1-.4" fill="#734c31"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3ff.svg
index 01be343..3078858 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f3ff.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.413-15.16-21.996-15.16-21.996s-1.141-4.531-12.84-4.531"/><path fill="#8a6859" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.538 3.039-5.538 10.896 0 28.642-14.157 28.642-14.157s6.709 12.5 13.185 14.157c0 0 3.135.578 3.135 5.538 0 5.967-4.183 6.998-4.183 6.998-.057 9-12.351 19.861-19.816 19.861-7.468 0-19.97-10.859-19.97-19.861"/><path fill="#705041" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#f5f5f5" d="m25.19 37.41c1.176 0 1.02-3.037 1.02-3.037-3.607-8.06-11.645-2.96-11.645-2.96-3.124 1.396 1.4 5.804 2.125 5.998 3.405.921 8.5-.001 8.5-.001"/><circle fill="#664e27" cx="20.485" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.485" cy="33.717" r="1.25"/><path d="m27.22 35.531c-.983-1.199-1.955-2.353-3.086-3.231-1.129-.873-2.396-1.426-3.766-1.513-1.367-.132-2.801.16-4.287.441-.744.145-1.512.288-2.313.333-.777.032-1.713-.06-2.269-.655.733.291 1.452.137 2.149-.072.703-.204 1.4-.491 2.129-.736 1.439-.511 3.03-.932 4.715-.804.834.083 1.674.294 2.434.667.752.384 1.434.88 1.991 1.476 1.129 1.179 1.866 2.607 2.303 4.094"/></g><path fill="#f5f5f5" d="m38.812 37.41c-1.176 0-1.02-3.037-1.02-3.037 3.607-8.06 11.645-2.96 11.645-2.96 3.125 1.396-1.4 5.804-2.125 5.998-3.403.921-8.5-.001-8.5-.001"/><circle fill="#664e27" cx="43.519" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.519" cy="33.717" r="1.25"/><path d="m36.784 35.531c.437-1.487 1.173-2.915 2.302-4.095.558-.596 1.239-1.092 1.991-1.476.76-.372 1.598-.584 2.432-.667 1.688-.127 3.277.293 4.717.804.727.245 1.424.533 2.127.736.697.208 1.416.362 2.148.072-.555.596-1.49.688-2.266.655-.803-.045-1.57-.188-2.314-.333-1.486-.281-2.92-.573-4.287-.441-1.367.087-2.637.64-3.766 1.513-1.129.88-2.1 2.033-3.084 3.232"/></g><path fill="#7d5442" d="m35.554 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.166.527-5.449.27-5.449.27 2.387 2.387 3.521 5.645 9 5.645 5.477 0 6.611-3.258 8.998-5.645 0-.001-3.283.257-5.447-.27"/><path fill="#5c3f34" d="m35.554 50.06c-.727-.178-1.787-.094-3.186.375-.123.037-.244.078-.365.117-.123-.039-.244-.08-.367-.117-1.398-.469-2.459-.553-3.184-.375-2.127.518-5.461.268-5.449.27 3.602.648 4.051 2.488 9 2.488 4.947 0 5.396-1.84 8.998-2.488.012-.003-3.322.247-5.447-.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#231f20"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C21.1,27.2,43,12,43,12s4.6,13.4,11.6,15.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62C23.9,62,10.4,50.3,10.4,40.7z" fill="#8a6859"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#705041"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#664e27"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><circle cx="20" cy="33.5" r="4.5" fill="#664e27"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#7d5442"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5 5.5 0 6-1.7 10-2.5 0 0-3.8.5-6.1-.4" fill="#5c3f34"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466-1f466.svg
index c19271c..8bd5911 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466-1f466.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m17.485 1.999c-10.02 0-15.483 6.332-15.483 14.668v18.512h30.968v-18.512c0-12.395-8.383-12.162-8.383-12.162s-.631-2.506-7.102-2.506"/><path fill="#ffdd67" d="m6.443 23.642c0 0-2.229-.57-2.229-3.871 0-2.611 1.68-3.061 1.68-3.061 6.03 0 15.84-7.83 15.84-7.83s3.71 6.912 7.291 7.83c0 0 1.733.318 1.733 3.061 0 3.301-2.313 3.871-2.313 3.871-.03 4.979-6.83 10.984-10.959 10.984-4.131 0-11.04-6.01-11.04-10.984"/><path fill="#eba352" d="m20.251 25.915c0 1.086-2.249 1.398-2.766 1.398-.516 0-2.764-.385-2.764-1.469.001.001 5.53-.47 5.53.071"/><path fill="#f5f5f5" d="m13.719 21.581c.652 0 .565-1.682.565-1.682-1.996-4.459-6.439-1.637-6.439-1.637-1.729.771.772 3.209 1.174 3.318 1.882.509 4.7.001 4.7.001"/><circle fill="#664e27" cx="11.12" cy="19.538" r="2.125"/><g fill="#231f20"><path d="m11.865 19.538c0 .416-.336.748-.749.748-.415 0-.751-.332-.751-.748 0-.414.336-.748.751-.748.413 0 .749.334.749.748"/><path d="m14.842 20.542c-.544-.662-1.081-1.301-1.705-1.785-.626-.482-1.327-.791-2.083-.838-.757-.074-1.55.09-2.372.244-.411.08-.835.158-1.278.184-.431.018-.947-.033-1.255-.361.405.158.804.076 1.189-.039.389-.113.774-.273 1.177-.408.795-.283 1.676-.516 2.608-.445.46.045.924.162 1.345.369.416.211.793.486 1.102.814.623.654 1.031 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m21.251 21.581c-.65 0-.564-1.682-.564-1.682 1.995-4.459 6.44-1.637 6.44-1.637 1.728.771-.774 3.209-1.175 3.318-1.882.509-4.701.001-4.701.001"/><circle fill="#664e27" cx="23.854" cy="19.538" r="2.125"/><g fill="#231f20"><circle cx="23.854" cy="19.538" r=".75"/><path d="m20.13 20.542c.241-.822.648-1.611 1.272-2.266.308-.328.686-.604 1.102-.814.42-.207.885-.324 1.345-.369.933-.07 1.812.162 2.607.445.402.135.788.295 1.177.408.387.115.783.197 1.188.039-.307.328-.822.379-1.254.361-.442-.025-.867-.104-1.278-.184-.823-.154-1.615-.318-2.371-.244-.756.047-1.457.355-2.081.838-.626.485-1.163 1.124-1.707 1.786"/></g><path fill="#f09985" d="m19.449 28.575c-.401-.098-.988-.053-1.761.209-.068.018-.136.041-.203.064-.067-.023-.134-.047-.203-.064-.772-.262-1.359-.307-1.76-.209-1.199.291-3.02.15-3.02.15 1.32 1.318 1.948 3.119 4.978 3.119 3.03 0 3.657-1.801 4.978-3.119 0 .001-1.817.141-3.01-.15"/><path fill="#d47f6c" d="m19.449 28.575c-.401-.098-.988-.053-1.761.209-.068.018-.136.041-.203.064-.067-.023-.134-.047-.203-.064-.772-.262-1.359-.307-1.76-.209-1.176.285-3.02.148-3.02.15 1.993.357 2.241 1.375 4.978 1.375s2.985-1.018 4.978-1.375c.006-.001-1.838.135-3.01-.15"/><path fill="#231f20" d="m46.519 1.999c-10.02 0-15.484 6.332-15.484 14.668v18.512h30.968v-18.512c0-12.395-8.383-12.162-8.383-12.162s-.632-2.506-7.101-2.506"/><path fill="#ffdd67" d="m35.476 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.681-3.061 1.681-3.061 6.02 0 15.841-7.83 15.841-7.83s3.709 6.912 7.289 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.313 3.871-2.313 3.871-.03 4.979-6.829 10.984-10.958 10.984-4.132 0-11.04-6.01-11.04-10.984"/><path fill="#eba352" d="m49.28 25.915c0 1.086-2.249 1.398-2.765 1.398-.517 0-2.765-.385-2.765-1.469.001.001 5.53-.47 5.53.071"/><path fill="#f5f5f5" d="m42.751 21.581c.652 0 .565-1.682.565-1.682-1.996-4.459-6.439-1.637-6.439-1.637-1.728.771.772 3.209 1.173 3.318 1.884.509 4.701.001 4.701.001"/><circle fill="#664e27" cx="40.15" cy="19.538" r="2.125"/><g fill="#231f20"><path d="m40.898 19.538c0 .416-.336.748-.75.748-.416 0-.75-.332-.75-.748 0-.414.334-.748.75-.748.415 0 .75.334.75.748"/><path d="m43.874 20.542c-.544-.662-1.081-1.301-1.705-1.785-.626-.482-1.327-.791-2.083-.838-.757-.074-1.55.09-2.372.244-.411.08-.836.158-1.278.184-.431.018-.947-.033-1.255-.361.405.158.804.076 1.189-.039.389-.113.774-.273 1.177-.408.796-.283 1.675-.516 2.608-.445.46.045.924.162 1.345.369.416.211.793.486 1.102.814.624.654 1.031 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m50.28 21.581c-.65 0-.564-1.682-.564-1.682 1.995-4.459 6.44-1.637 6.44-1.637 1.728.771-.774 3.209-1.176 3.318-1.881.509-4.7.001-4.7.001"/><circle fill="#664e27" cx="52.887" cy="19.538" r="2.125"/><g fill="#231f20"><circle cx="52.887" cy="19.538" r=".75"/><path d="m49.16 20.542c.241-.822.648-1.611 1.272-2.266.308-.328.686-.604 1.102-.814.42-.207.885-.324 1.344-.369.934-.07 1.813.162 2.608.445.403.135.788.295 1.176.408.388.115.784.197 1.189.039-.307.328-.822.379-1.254.361-.442-.025-.867-.104-1.279-.184-.822-.154-1.614-.318-2.37-.244-.756.047-1.457.355-2.081.838-.626.485-1.163 1.124-1.707 1.786"/></g><path fill="#f09985" d="m48.48 28.575c-.401-.098-.988-.053-1.761.209-.068.018-.136.041-.202.064-.068-.023-.135-.047-.204-.064-.772-.262-1.359-.307-1.761-.209-1.198.291-3.01.15-3.01.15 1.32 1.318 1.948 3.119 4.979 3.119 3.03 0 3.656-1.801 4.977-3.119 0 .001-1.816.141-3.01-.15"/><path fill="#d47f6c" d="m48.48 28.575c-.401-.098-.988-.053-1.761.209-.068.018-.136.041-.202.064-.068-.023-.135-.047-.204-.064-.772-.262-1.359-.307-1.761-.209-1.175.285-3.02.148-3.01.15 1.993.357 2.241 1.375 4.979 1.375 2.735 0 2.984-1.018 4.977-1.375.005-.001-1.838.135-3.01-.15"/><path fill="#231f20" d="m17.485 32.966c8.517 0 13.763 4.775 13.763 10.709v3.982c0 4.684-3.707 4.684-3.705 4.684h-20.645c.001 0-3.177 0-3.177-4.684 0-2.209 0-3.982 0-3.982.001-5.934 5.528-10.709 13.764-10.709"/><path fill="#ffdd67" d="m29.949 48.7l-.514-5.65c0-3.611-5.667-.727-11.95-.727-6.284 0-11.951-2.885-11.951.727l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.516 7.418 8.854 12.464 8.854 5.05 0 12.464-3.338 12.464-8.854 2.737.001 2.737-4.445 0-4.445"/><g opacity=".5" fill="#ff717f"><path d="m29.22 54.29c-.171-1.242-1.587-1.99-3.162-1.67-1.576.316-2.716 1.584-2.544 2.824.171 1.24 1.586 1.99 3.162 1.67 1.575-.318 2.714-1.584 2.544-2.824"/><path d="m8.91 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.24.968 2.506 2.543 2.824 1.576.32 2.99-.43 3.161-1.67s-.968-2.508-2.543-2.824"/></g><path fill="#574137" d="m13.958 55.27c-.066.074-.103.176-.103.295-.001.818 1.625 1.822 3.63 1.822 2 0 3.629-.996 3.629-1.814 0-.113-.031-.229-.086-.303 0 0-1.569.705-3.543.705-1.97 0-3.527-.705-3.527-.705"/><circle fill="#fff" cx="23.622" cy="49.21" r="3.629"/><path fill="#664e27" d="m26.15 49.21c0 1.383-1.133 2.498-2.528 2.498-1.396 0-2.527-1.115-2.527-2.498 0-1.379 1.131-2.498 2.527-2.498 1.396 0 2.528 1.119 2.528 2.498"/><ellipse fill="#231f20" cx="23.621" cy="49.21" rx=".85" ry=".84"/><circle fill="#fff" cx="11.348" cy="49.21" r="3.629"/><path fill="#664e27" d="m13.875 49.21c0 1.383-1.132 2.498-2.527 2.498s-2.528-1.115-2.528-2.498c0-1.379 1.132-2.498 2.527-2.498s2.528 1.119 2.528 2.498"/><g fill="#231f20"><ellipse cx="11.347" cy="49.21" rx=".85" ry=".84"/><path d="m46.517 32.966c8.518 0 13.764 4.775 13.764 10.709v3.982c0 4.684-3.707 4.684-3.705 4.684h-20.645c.001 0-3.177 0-3.177-4.684 0-2.209 0-3.982 0-3.982 0-5.934 5.527-10.709 13.763-10.709"/></g><path fill="#ffdd67" d="m58.981 48.7l-.514-5.65c0-3.611-5.667-.727-11.951-.727-6.283 0-11.95-2.885-11.95.727l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.516 7.418 8.854 12.463 8.854 5.05 0 12.465-3.338 12.465-8.854 2.737.001 2.737-4.445 0-4.445"/><g opacity=".5" fill="#ff717f"><path d="m58.25 54.29c-.171-1.242-1.587-1.99-3.162-1.67-1.576.316-2.715 1.584-2.544 2.824s1.587 1.99 3.162 1.67c1.575-.318 2.714-1.584 2.544-2.824"/><path d="m37.942 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.24.968 2.506 2.543 2.824 1.575.32 2.99-.43 3.161-1.67.172-1.24-.967-2.508-2.543-2.824"/></g><path fill="#574137" d="m42.99 55.27c-.066.074-.103.176-.103.295-.001.818 1.625 1.822 3.629 1.822 2.01 0 3.63-.996 3.63-1.814 0-.113-.031-.229-.086-.303 0 0-1.569.705-3.544.705-1.969 0-3.526-.705-3.526-.705"/><circle fill="#fff" cx="52.654" cy="49.21" r="3.629"/><path fill="#664e27" d="m55.18 49.21c0 1.383-1.133 2.498-2.528 2.498-1.396 0-2.527-1.115-2.527-2.498 0-1.379 1.131-2.498 2.527-2.498 1.395 0 2.528 1.119 2.528 2.498"/><ellipse fill="#231f20" cx="52.654" cy="49.21" rx=".85" ry=".842"/><circle fill="#fff" cx="40.38" cy="49.21" r="3.629"/><path fill="#664e27" d="m42.907 49.21c0 1.383-1.132 2.498-2.527 2.498s-2.527-1.115-2.527-2.498c0-1.379 1.132-2.498 2.527-2.498s2.527 1.119 2.527 2.498"/><ellipse fill="#231f20" cx="40.38" cy="49.21" rx=".85" ry=".84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M47,2c-6.3,0-6.9,2.5-6.9,2.5S32.3,4.3,32,15.9C31.7,4.3,23.9,4.5,23.9,4.5S23.3,2,17,2C7.3,2,2,8.3,2,16.7
+ v18.5h60V16.7C62,8.3,56.7,2,47,2z" fill="#ffb300"/><path d="M32,34.7C31.6,29,2,29,2,34.8V62h60V34.8C62,29,32.4,29,32,34.7z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="m57.6 23.6c0 0 2.2-.6 2.2-3.9 0-2.6-1.7-3.1-1.7-3.1-6 0-15.8-7.8-15.8-7.8s-3.7 6.9-7.3 7.8c0 0-1.7.3-1.7 3.1 0 3.3 2.3 3.9 2.3 3.9 0 5 6.8 10 11 10 4 0 11-5 11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="51.9" cy="20.3" r="2.2"/><circle cx="41.1" cy="20.3" r="2.2"/><path d="m42.9 27.1c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4-1.8 0-3.2-1.1-3.9-2.4-.2-.3 0-.7.3-.5"/></g><path d="m57 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m44.5 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m34.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="39.7" cy="49.8" r="1.8"/><circle cx="49.3" cy="49.8" r="1.8"/><path d="m41.4 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g><path d="m32 62h-25.1c0-8.4 25.1-8.4 25.1 0" fill="#29b6f6"/><path d="m19.4 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.3-8.5-10.9-8.5" fill="#ffb300"/><path d="m9.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.2 0-2.2-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="14.7" cy="49.8" r="1.8"/><circle cx="24.2" cy="49.8" r="1.8"/><path d="m16.3 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3 0-.6.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466.svg
index 59b5053..ece9c72 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f466.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.487,2C7.47,2,2.002,8.33,2.002,16.667v18.511h30.967V16.667c0-12.395-8.381-12.162-8.381-12.162
- S23.957,2,17.487,2z"/><path fill="#ffdd67" d="m6.444 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.682-3.061 1.682-3.061 6.02 0 15.84-7.83 15.84-7.83s3.709 6.912 7.29 7.83c0 0 1.733.318 1.733 3.061 0 3.301-2.313 3.871-2.313 3.871-.031 4.979-6.83 10.984-10.959 10.984-4.13 0-11.04-6-11.04-10.984"/><path fill="#eba352" d="m20.252 25.916c0 1.086-2.25 1.398-2.766 1.398s-2.764-.385-2.764-1.469c.001 0 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m13.719 21.58c.652 0 .565-1.68.565-1.68-1.995-4.459-6.44-1.637-6.44-1.637-1.727.771.773 3.209 1.175 3.316 1.884.51 4.7.001 4.7.001"/><circle fill="#664e27" cx="11.12" cy="19.539" r="2.125"/><g fill="#231f20"><path d="m11.867 19.539c0 .416-.335.748-.749.748-.416 0-.751-.332-.751-.748 0-.414.335-.748.751-.748.414 0 .749.334.749.748"/><path d="m14.842 20.542c-.543-.662-1.082-1.301-1.705-1.787-.625-.48-1.326-.789-2.082-.836-.758-.074-1.551.088-2.373.244-.41.08-.836.158-1.278.184-.431.018-.946-.033-1.254-.363.404.16.802.076 1.188-.039.389-.111.774-.271 1.177-.406.796-.283 1.675-.516 2.608-.445.461.045.924.162 1.345.369.416.211.793.486 1.101.814.625.654 1.033 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m21.252 21.58c-.65 0-.564-1.68-.564-1.68 1.994-4.459 6.439-1.637 6.439-1.637 1.729.771-.773 3.209-1.175 3.316-1.881.51-4.7.001-4.7.001"/><circle fill="#664e27" cx="23.855" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="23.856" cy="19.539" r=".75"/><path d="m20.13 20.542c.242-.822.65-1.611 1.273-2.266.309-.328.687-.604 1.102-.814.42-.207.885-.324 1.346-.369.932-.07 1.812.162 2.607.445.402.135.788.295 1.176.406.387.115.784.199 1.189.039-.307.33-.824.381-1.254.363-.443-.025-.867-.104-1.279-.184-.822-.156-1.615-.318-2.371-.244-.757.047-1.458.355-2.082.836-.625.488-1.162 1.126-1.707 1.788"/></g><path fill="#f09985" d="m19.45 28.576c-.4-.1-.988-.053-1.761.207-.069.02-.136.043-.202.064-.068-.021-.135-.045-.203-.064-.773-.26-1.359-.307-1.761-.207-1.198.291-3.01.148-3.01.148 1.32 1.32 1.948 3.121 4.978 3.121 3.03 0 3.656-1.801 4.977-3.121-.001 0-1.817.143-3.01-.148"/><path fill="#d47f6c" d="m19.45 28.576c-.4-.1-.988-.053-1.761.207-.069.02-.136.043-.202.064-.068-.021-.135-.045-.203-.064-.773-.26-1.359-.307-1.761-.207-1.177.285-3.02.148-3.01.148 1.992.359 2.241 1.377 4.978 1.377s2.983-1.018 4.977-1.377c.006 0-1.839.137-3.01-.148"/><path fill="#231f20" d="M46.52,2C36.502,2,31.034,8.33,31.034,16.667v18.511h30.968V16.667c0-12.395-8.383-12.162-8.383-12.162
- S52.988,2,46.52,2z"/><path fill="#ffdd67" d="m35.477 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.68-3.061 1.68-3.061 6.02 0 15.842-7.83 15.842-7.83s3.709 6.912 7.289 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.313 3.871-2.313 3.871-.031 4.979-6.83 10.984-10.959 10.984-4.131 0-11.04-6-11.04-10.984"/><path fill="#eba352" d="m49.28 25.916c0 1.086-2.248 1.398-2.764 1.398-.518 0-2.766-.385-2.766-1.469.001 0 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m42.752 21.58c.65 0 .564-1.68.564-1.68-1.996-4.459-6.439-1.637-6.439-1.637-1.727.771.773 3.209 1.174 3.316 1.883.51 4.701.001 4.701.001"/><circle fill="#664e27" cx="40.15" cy="19.539" r="2.126"/><g fill="#231f20"><path d="m40.898 19.539c0 .416-.336.748-.75.748s-.75-.332-.75-.748c0-.414.336-.748.75-.748s.75.334.75.748"/><path d="m43.875 20.542c-.543-.662-1.082-1.301-1.707-1.787-.623-.48-1.326-.789-2.082-.836-.756-.074-1.549.088-2.371.244-.412.08-.836.158-1.279.184-.43.018-.947-.033-1.254-.363.404.16.803.076 1.189-.039.389-.111.773-.271 1.176-.406.797-.283 1.676-.516 2.609-.445.459.045.924.162 1.344.369.416.211.793.486 1.102.814.623.654 1.031 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m50.28 21.58c-.65 0-.564-1.68-.564-1.68 1.996-4.459 6.441-1.637 6.441-1.637 1.729.771-.775 3.209-1.176 3.316-1.882.51-4.701.001-4.701.001"/><circle fill="#664e27" cx="52.888" cy="19.539" r="2.126"/><g fill="#231f20"><circle cx="52.887" cy="19.539" r=".75"/><path d="m49.16 20.542c.242-.822.648-1.611 1.273-2.266.309-.328.686-.604 1.102-.814.42-.207.883-.324 1.344-.369.934-.07 1.813.162 2.609.445.402.135.787.295 1.174.406.387.115.785.199 1.189.039-.307.33-.822.381-1.252.363-.443-.025-.869-.104-1.281-.184-.822-.156-1.613-.318-2.369-.244-.758.047-1.459.355-2.082.836-.625.488-1.162 1.126-1.707 1.788"/></g><path fill="#f09985" d="m48.48 28.576c-.402-.1-.988-.053-1.762.207-.068.02-.135.043-.201.064-.068-.021-.137-.045-.203-.064-.773-.26-1.361-.307-1.762-.207-1.197.291-3.01.148-3.01.148 1.32 1.32 1.947 3.121 4.979 3.121 3.03 0 3.656-1.801 4.977-3.121 0 0-1.816.143-3.01-.148"/><path fill="#d47f6c" d="m48.48 28.576c-.402-.1-.988-.053-1.762.207-.068.02-.135.043-.201.064-.068-.021-.137-.045-.203-.064-.773-.26-1.361-.307-1.762-.207-1.176.285-3.02.148-3.01.148 1.992.359 2.24 1.377 4.979 1.377 2.734 0 2.982-1.018 4.977-1.377.006 0-1.838.137-3.01-.148"/><path fill="#231f20" d="m32 32.966c8.517 0 13.761 4.775 13.761 10.708v3.982c0 4.684-3.705 4.684-3.703 4.684h-20.644c.001 0-3.177 0-3.177-4.684 0-2.207 0-3.982 0-3.982 0-5.933 5.527-10.708 13.763-10.708"/><path fill="#ffdd67" d="m44.47 48.7l-.516-5.65c0-3.611-5.666-.727-11.949-.727-6.284 0-11.951-2.885-11.951.727l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.516 7.417 8.854 12.464 8.854 5.04 0 12.464-3.338 12.464-8.854 2.735.001 2.735-4.445.001-4.445"/><g opacity=".5" fill="#ff717f"><path d="m43.738 54.29c-.172-1.242-1.588-1.99-3.162-1.67-1.578.318-2.717 1.584-2.545 2.824.172 1.242 1.586 1.99 3.162 1.672 1.577-.32 2.715-1.584 2.545-2.826"/><path d="m23.427 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.242.968 2.506 2.543 2.826 1.576.318 2.99-.43 3.162-1.672.17-1.24-.969-2.506-2.544-2.824"/></g><path fill="#574137" d="m28.475 55.27c-.066.076-.102.176-.102.295-.002.818 1.624 1.822 3.629 1.822 2 0 3.628-.996 3.628-1.814 0-.111-.031-.227-.086-.303 0 0-1.568.705-3.542.705-1.97 0-3.527-.705-3.527-.705"/><circle fill="#fff" cx="38.14" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="38.14" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="38.14" cy="49.21" rx=".851" ry=".84"/><circle fill="#fff" cx="25.865" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="25.864" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="25.864" cy="49.21" rx=".85" ry=".84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M47,2c-6.3,0-6.9,2.5-6.9,2.5S32.3,4.3,32,15.9C31.7,4.3,23.9,4.5,23.9,4.5S23.3,2,17,2C7.3,2,2,8.3,2,16.7
+ v18.5h60V16.7C62,8.3,56.7,2,47,2z" fill="#ffb300"/><path d="M32,34.7C31.6,29,2,29,2,34.8V62h60V34.8C62,29,32.4,29,32,34.7z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="m57.6 23.6c0 0 2.2-.6 2.2-3.9 0-2.6-1.7-3.1-1.7-3.1-6 0-15.8-7.8-15.8-7.8s-3.7 6.9-7.3 7.8c0 0-1.7.3-1.7 3.1 0 3.3 2.3 3.9 2.3 3.9 0 5 6.8 10 11 10 4 0 11-5 11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="51.9" cy="20.3" r="2.2"/><circle cx="41.1" cy="20.3" r="2.2"/><path d="m42.9 27.1c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4-1.8 0-3.2-1.1-3.9-2.4-.2-.3 0-.7.3-.5"/></g><path d="m44.5 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m32 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m22.1 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7s-9.9-2.6-9.9-7c-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="27.2" cy="49.8" r="1.8"/><circle cx="36.8" cy="49.8" r="1.8"/><path d="m28.9 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f466.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f466.svg
index 32f59f8..2f4951e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f466.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f466.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.486,2C7.471,2,2.002,8.33,2.002,16.667v18.511H32.97V16.667c0-12.395-8.383-12.162-8.383-12.162
- S23.955,2,17.486,2z"/><path fill="#ffdd67" d="m6.443 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.681-3.061 1.681-3.061 6.02 0 15.841-7.83 15.841-7.83s3.709 6.912 7.289 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.313 3.871-2.313 3.871-.031 4.979-6.83 10.984-10.959 10.984-4.131 0-11.04-6-11.04-10.984"/><path fill="#eba352" d="m20.251 25.916c0 1.086-2.249 1.398-2.765 1.398-.517 0-2.765-.385-2.765-1.469.001 0 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m13.719 21.58c.652 0 .565-1.68.565-1.68-1.996-4.459-6.44-1.637-6.44-1.637-1.727.771.773 3.209 1.174 3.316 1.883.51 4.701.001 4.701.001"/><circle fill="#664e27" cx="11.12" cy="19.539" r="2.126"/><g fill="#231f20"><path d="m11.865 19.539c0 .416-.335.748-.749.748-.415 0-.751-.332-.751-.748 0-.414.336-.748.751-.748.414 0 .749.334.749.748"/><path d="m14.842 20.542c-.544-.662-1.082-1.301-1.705-1.787-.626-.48-1.327-.789-2.083-.836-.757-.074-1.55.088-2.372.244-.411.08-.836.158-1.279.184-.43.018-.946-.033-1.254-.363.404.16.804.076 1.189-.039.389-.111.775-.271 1.176-.406.797-.283 1.676-.516 2.609-.445.46.045.924.162 1.345.369.415.211.792.486 1.102.814.623.654 1.031 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m21.251 21.58c-.65 0-.564-1.68-.564-1.68 1.995-4.459 6.44-1.637 6.44-1.637 1.729.771-.774 3.209-1.176 3.316-1.881.51-4.7.001-4.7.001"/><circle fill="#664e27" cx="23.854" cy="19.539" r="2.126"/><g fill="#231f20"><circle cx="23.854" cy="19.539" r=".75"/><path d="m20.13 20.542c.241-.822.648-1.611 1.272-2.266.308-.328.686-.604 1.102-.814.42-.207.885-.324 1.345-.369.933-.07 1.812.162 2.607.445.403.135.788.295 1.177.406.387.115.783.199 1.189.039-.308.33-.824.381-1.254.363-.443-.025-.868-.104-1.279-.184-.823-.156-1.615-.318-2.371-.244-.756.047-1.457.355-2.081.836-.626.488-1.163 1.126-1.707 1.788"/></g><path fill="#f09985" d="m19.449 28.576c-.401-.1-.988-.053-1.762.207-.067.02-.135.043-.201.064-.068-.021-.135-.045-.203-.064-.773-.26-1.36-.307-1.762-.207-1.197.291-3.01.148-3.01.148 1.32 1.32 1.948 3.121 4.979 3.121 3.03 0 3.656-1.801 4.977-3.121 0 0-1.817.143-3.01-.148"/><path fill="#d47f6c" d="m19.449 28.576c-.401-.1-.988-.053-1.762.207-.067.02-.135.043-.201.064-.068-.021-.135-.045-.203-.064-.773-.26-1.36-.307-1.762-.207-1.176.285-3.02.148-3.01.148 1.994.359 2.241 1.377 4.979 1.377 2.735 0 2.984-1.018 4.977-1.377.006 0-1.838.137-3.01-.148"/><path fill="#231f20" d="M46.518,2C36.502,2,31.034,8.33,31.034,16.667v18.511h30.968V16.667c0-12.395-8.383-12.162-8.383-12.162
- S52.988,2,46.518,2z"/><path fill="#ffdd67" d="m35.477 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.68-3.061 1.68-3.061 6.02 0 15.841-7.83 15.841-7.83s3.709 6.912 7.289 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.313 3.871-2.313 3.871-.03 4.979-6.829 10.984-10.959 10.984-4.13 0-11.04-6-11.04-10.984"/><path fill="#eba352" d="m49.28 25.916c0 1.086-2.249 1.398-2.766 1.398-.516 0-2.764-.385-2.764-1.469.001 0 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m42.751 21.58c.652 0 .565-1.68.565-1.68-1.996-4.459-6.439-1.637-6.439-1.637-1.729.771.772 3.209 1.174 3.316 1.883.51 4.7.001 4.7.001"/><circle fill="#664e27" cx="40.15" cy="19.539" r="2.125"/><g fill="#231f20"><path d="m40.898 19.539c0 .416-.336.748-.75.748-.415 0-.75-.332-.75-.748 0-.414.335-.748.75-.748.415 0 .75.334.75.748"/><path d="m43.874 20.542c-.544-.662-1.081-1.301-1.705-1.787-.626-.48-1.327-.789-2.083-.836-.757-.074-1.55.088-2.372.244-.411.08-.835.158-1.278.184-.43.018-.947-.033-1.254-.363.404.16.803.076 1.188-.039.388-.111.774-.271 1.177-.406.795-.283 1.676-.516 2.607-.445.461.045.925.162 1.346.369.416.211.793.486 1.102.814.624.654 1.031 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m50.28 21.58c-.65 0-.564-1.68-.564-1.68 1.995-4.459 6.44-1.637 6.44-1.637 1.728.771-.774 3.209-1.175 3.316-1.882.51-4.701.001-4.701.001"/><circle fill="#664e27" cx="52.887" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="52.887" cy="19.539" r=".75"/><path d="m49.16 20.542c.241-.822.648-1.611 1.272-2.266.308-.328.686-.604 1.102-.814.42-.207.885-.324 1.344-.369.934-.07 1.813.162 2.608.445.403.135.788.295 1.176.406.388.115.784.199 1.189.039-.307.33-.822.381-1.254.363-.442-.025-.867-.104-1.279-.184-.822-.156-1.614-.318-2.37-.244-.756.047-1.457.355-2.081.836-.626.488-1.163 1.126-1.707 1.788"/></g><path fill="#f09985" d="m48.48 28.576c-.401-.1-.988-.053-1.761.207-.068.02-.136.043-.203.064-.067-.021-.134-.045-.203-.064-.772-.26-1.359-.307-1.76-.207-1.199.291-3.01.148-3.01.148 1.32 1.32 1.947 3.121 4.977 3.121 3.03 0 3.657-1.801 4.978-3.121 0 0-1.816.143-3.01-.148"/><path fill="#d47f6c" d="m48.48 28.576c-.401-.1-.988-.053-1.761.207-.068.02-.136.043-.203.064-.067-.021-.134-.045-.203-.064-.772-.26-1.359-.307-1.76-.207-1.176.285-3.02.148-3.01.148 1.992.359 2.24 1.377 4.977 1.377s2.985-1.018 4.978-1.377c.005 0-1.838.137-3.01-.148"/><g fill="#231f20"><path d="m40.1 58.11c-.615 6.689-6.852 2.938-7.461 1.867-2.02-3.543 1.238-10.02 3.453-10.02 2.212.001 4.418 3.688 4.01 8.153"/><path d="m52.94 58.11c.614 6.689 6.852 2.938 7.461 1.867 2.02-3.543-1.238-10.02-3.452-10.02-2.215.001-4.421 3.688-4.01 8.153"/><path d="m46.37 32.966c8.329 0 13.463 5.097 13.463 11.431v4.252c0 5-3.627 5-3.625 5h-20.19c.002 0-3.107 0-3.107-5 0-2.355 0-4.252 0-4.252-.001-6.334 5.405-11.431 13.463-11.431"/></g><path fill="#c28fef" d="m46.37 35.09c-7.239 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.858-8.305 12.1-8.305 7.484 0 12.1 3.703 12.1 8.305v-1.375c0-4.6-4.612-8.303-12.1-8.303"/><path fill="#ffdd67" d="m58.783 52.44c0 0 1.616.393 1.616-1.924 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.239c-.92-1.977.113-4.02.113-4.02-1.856 1.707-1.563 4.02-1.563 4.02h-3.134v2.518c0 0-2.135-.211-2.135 1.713 0 2.316 1.696 1.924 1.696 1.924 0 3.459 3.625 7.25 12.586 7.25 8.49 0 12.167-3.097 12.167-7.25"/><g fill="#ff717f"><path opacity=".5" d="m58.25 53.97c-.172-1.242-1.588-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.17 1.242 1.586 1.99 3.162 1.672 1.574-.32 2.714-1.584 2.544-2.826"/><path opacity=".5" d="m37.944 52.3c-1.574-.32-2.99.428-3.16 1.67-.172 1.242.968 2.508 2.542 2.826s2.99-.43 3.16-1.672c.172-1.24-.966-2.506-2.542-2.824"/></g><path fill="#574137" d="m42.979 54.94c-.066.076-.103.176-.103.295-.002.818 1.624 1.822 3.629 1.822 2 0 3.629-.996 3.629-1.814 0-.111-.032-.227-.087-.303 0 0-1.568.705-3.542.705-1.972.001-3.526-.705-3.526-.705"/><g fill="#fff"><ellipse cx="52.4" cy="49.851" rx="3.3" ry="3.338"/><ellipse cx="40.609" cy="49.851" rx="3.299" ry="3.338"/></g><circle fill="#664e27" cx="52.4" cy="49.851" r="2.298"/><circle fill="#231f20" cx="52.4" cy="49.851" r=".75"/><circle fill="#664e27" cx="40.607" cy="49.851" r="2.299"/><g fill="#231f20"><circle cx="40.607" cy="49.851" r=".75"/><path d="m17.484 32.966c8.518 0 13.764 4.775 13.764 10.708v3.982c0 4.684-3.707 4.684-3.705 4.684h-20.645c.001 0-3.177 0-3.177-4.684 0-2.207 0-3.982 0-3.982.001-5.933 5.527-10.708 13.763-10.708"/></g><path fill="#ffdd67" d="m29.949 48.7l-.514-5.65c0-3.611-5.667-.727-11.951-.727-6.283 0-11.949-2.885-11.949.727l-.514 5.65c-2.736 0-2.736 4.445 0 4.445 0 5.516 7.418 8.854 12.463 8.854 5.05 0 12.465-3.338 12.465-8.854 2.737.001 2.737-4.445 0-4.445"/><g opacity=".5" fill="#ff717f"><path d="m29.22 54.29c-.171-1.242-1.587-1.99-3.162-1.67-1.576.318-2.715 1.584-2.545 2.824.172 1.242 1.588 1.99 3.163 1.672 1.575-.32 2.714-1.584 2.544-2.826"/><path d="m8.91 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.242.968 2.506 2.543 2.826 1.575.318 2.99-.43 3.161-1.672.172-1.24-.967-2.506-2.543-2.824"/></g><path fill="#574137" d="m13.958 55.27c-.066.076-.103.176-.103.295 0 .818 1.625 1.822 3.629 1.822 2 0 3.629-.996 3.629-1.814 0-.111-.031-.227-.086-.303 0 0-1.568.705-3.543.705-1.969 0-3.526-.705-3.526-.705"/><circle fill="#fff" cx="23.622" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="23.623" cy="49.21" rx="2.528" ry="2.498"/><ellipse fill="#231f20" cx="23.621" cy="49.21" rx=".85" ry=".84"/><circle fill="#fff" cx="11.348" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="11.348" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="11.347" cy="49.21" rx=".85" ry=".84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M47,2c-6.3,0-6.9,2.5-6.9,2.5S32.3,4.3,32,15.9C31.7,4.3,23.9,4.5,23.9,4.5S23.3,2,17,2C7.3,2,2,8.3,2,16.7
+ v18.5h60V16.7C62,8.3,56.7,2,47,2z" fill="#ffb300"/><path d="M32,34.7C31.6,29,2,29,2,34.8V62h60V34.8C62,29,32.4,29,32,34.7z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4 1.8 0 3.2-1.1 3.9-2.4.2-.3 0-.7-.3-.5"/></g><path d="m57.6 23.6c0 0 2.2-.6 2.2-3.9 0-2.6-1.7-3.1-1.7-3.1-6 0-15.8-7.8-15.8-7.8s-3.7 6.9-7.3 7.8c0 0-1.7.3-1.7 3.1 0 3.3 2.3 3.9 2.3 3.9 0 5 6.8 10 11 10 4 0 11-5 11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="51.9" cy="20.3" r="2.2"/><circle cx="41.1" cy="20.3" r="2.2"/><path d="m42.9 27.1c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4s-3.2-1.1-3.9-2.4c-.2-.3 0-.7.3-.5"/></g><path d="m57 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m44.5 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m34.6 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="39.7" cy="49.8" r="1.8"/><circle cx="49.3" cy="49.8" r="1.8"/><path d="m41.4 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2s-2.8-1-3.4-2c-.3-.3-.1-.6.2-.4"/></g><path d="m30 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m19.3 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-3.9-7.2-10.4-7.2"/><path d="m7 62h25c0-8.4-25-8.4-25 0"/></g><path d="m29.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.4.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><circle cx="24" cy="49.8" r="1.8"/><circle cx="14.9" cy="49.8" r="1.8"/><path d="m22.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3 0-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f467.svg
index 2c2e5d8..73760fb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467-1f467.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.486,2C7.47,2,2.002,8.33,2.002,16.667v18.511H32.97V16.667c0-12.395-8.383-12.162-8.383-12.162
- S23.956,2,17.486,2z"/><path fill="#ffdd67" d="m6.443 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.681-3.061 1.681-3.061 6.02 0 15.839-7.83 15.839-7.83s3.711 6.912 7.291 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.313 3.871-2.313 3.871-.03 4.979-6.83 10.984-10.958 10.984-4.132 0-11.04-6-11.04-10.984"/><path fill="#eba352" d="m20.251 25.916c0 1.086-2.249 1.398-2.765 1.398-.517 0-2.766-.385-2.766-1.469.001 0 5.531-.472 5.531.071"/><path fill="#f5f5f5" d="m13.719 21.58c.652 0 .565-1.68.565-1.68-1.996-4.459-6.439-1.637-6.439-1.637-1.728.771.772 3.209 1.173 3.316 1.882.51 4.701.001 4.701.001"/><circle fill="#664e27" cx="11.12" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="11.12" cy="19.539" r=".75"/><path d="m14.842 20.542c-.545-.662-1.081-1.301-1.705-1.787-.626-.48-1.327-.789-2.083-.836-.758-.074-1.55.088-2.372.244-.412.08-.836.158-1.279.184-.43.018-.947-.033-1.254-.363.405.16.804.076 1.189-.039.388-.111.774-.271 1.176-.406.796-.283 1.676-.516 2.608-.445.461.045.924.162 1.346.369.416.211.792.486 1.102.814.623.654 1.03 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m21.251 21.58c-.65 0-.565-1.68-.565-1.68 1.996-4.459 6.441-1.637 6.441-1.637 1.728.771-.774 3.209-1.176 3.316-1.882.51-4.7.001-4.7.001"/><circle fill="#664e27" cx="23.855" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="23.854" cy="19.539" r=".75"/><path d="m20.13 20.542c.24-.822.648-1.611 1.272-2.266.308-.328.686-.604 1.102-.814.42-.207.885-.324 1.344-.369.934-.07 1.813.162 2.608.445.403.135.788.295 1.176.406.388.115.784.199 1.189.039-.307.33-.822.381-1.254.363-.442-.025-.867-.104-1.279-.184-.822-.156-1.614-.318-2.37-.244-.756.047-1.457.355-2.081.836-.626.488-1.164 1.126-1.707 1.788"/></g><path fill="#f09985" d="m19.449 28.576c-.402-.1-.988-.053-1.761.207-.068.02-.137.043-.202.064-.068-.021-.135-.045-.205-.064-.772-.26-1.358-.307-1.76-.207-1.198.291-3.02.148-3.02.148 1.321 1.32 1.949 3.121 4.979 3.121 3.03 0 3.655-1.801 4.977-3.121.001 0-1.816.143-3.01-.148"/><path fill="#d47f6c" d="m19.449 28.576c-.402-.1-.988-.053-1.761.207-.068.02-.137.043-.202.064-.068-.021-.135-.045-.205-.064-.772-.26-1.358-.307-1.76-.207-1.175.285-3.02.148-3.02.148 1.994.359 2.242 1.377 4.979 1.377 2.734 0 2.984-1.018 4.977-1.377.006 0-1.837.137-3.01-.148"/><path fill="#231f20" d="M46.518,2C36.502,2,31.034,8.33,31.034,16.667v18.511h30.968V16.667c0-12.395-8.383-12.162-8.383-12.162
- S52.988,2,46.518,2z"/><path fill="#ffdd67" d="m35.476 23.642c0 0-2.229-.57-2.229-3.871 0-2.611 1.68-3.061 1.68-3.061 6.02 0 15.84-7.83 15.84-7.83s3.71 6.912 7.29 7.83c0 0 1.735.318 1.735 3.061 0 3.301-2.314 3.871-2.314 3.871-.029 4.979-6.83 10.984-10.959 10.984s-11.04-6-11.04-10.984"/><path fill="#eba352" d="m49.28 25.916c0 1.086-2.249 1.398-2.766 1.398-.516 0-2.765-.385-2.765-1.469.001 0 5.531-.472 5.531.071"/><path fill="#f5f5f5" d="m42.751 21.58c.652 0 .565-1.68.565-1.68-1.996-4.459-6.439-1.637-6.439-1.637-1.728.771.772 3.209 1.174 3.316 1.882.51 4.7.001 4.7.001"/><circle fill="#664e27" cx="40.15" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="40.15" cy="19.539" r=".75"/><path d="m43.874 20.542c-.545-.662-1.081-1.301-1.705-1.787-.626-.48-1.327-.789-2.083-.836-.758-.074-1.55.088-2.372.244-.412.08-.835.158-1.279.184-.43.018-.947-.033-1.253-.363.404.16.803.076 1.188-.039.388-.111.774-.271 1.176-.406.796-.283 1.677-.516 2.608-.445.461.045.924.162 1.346.369.416.211.792.486 1.102.814.624.654 1.03 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m50.28 21.58c-.65 0-.565-1.68-.565-1.68 1.996-4.459 6.441-1.637 6.441-1.637 1.728.771-.774 3.209-1.175 3.316-1.882.51-4.701.001-4.701.001"/><circle fill="#664e27" cx="52.887" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="52.887" cy="19.539" r=".75"/><path d="m49.16 20.542c.24-.822.648-1.611 1.272-2.266.308-.328.686-.604 1.102-.814.42-.207.885-.324 1.344-.369.935-.07 1.813.162 2.608.445.403.135.788.295 1.176.406.388.115.784.199 1.189.039-.307.33-.822.381-1.254.363-.441-.025-.867-.104-1.279-.184-.822-.156-1.614-.318-2.37-.244-.756.047-1.457.355-2.081.836-.626.488-1.164 1.126-1.707 1.788"/></g><path fill="#f09985" d="m48.48 28.576c-.403-.1-.989-.053-1.762.207-.068.02-.137.043-.203.064-.067-.021-.134-.045-.203-.064-.773-.26-1.359-.307-1.76-.207-1.199.291-3.02.148-3.02.148 1.321 1.32 1.949 3.121 4.979 3.121 3.03 0 3.656-1.801 4.978-3.121 0 0-1.816.143-3.01-.148"/><path fill="#d47f6c" d="m48.48 28.576c-.403-.1-.989-.053-1.762.207-.068.02-.137.043-.203.064-.067-.021-.134-.045-.203-.064-.773-.26-1.359-.307-1.76-.207-1.176.285-3.02.148-3.02.148 1.994.359 2.242 1.377 4.979 1.377 2.735 0 2.985-1.018 4.978-1.377.005 0-1.838.137-3.01-.148"/><g fill="#231f20"><path d="m40.1 58.11c-.614 6.689-6.852 2.938-7.461 1.867-2.02-3.543 1.238-10.02 3.453-10.02 2.212.001 4.418 3.688 4.01 8.153"/><path d="m52.94 58.11c.614 6.689 6.852 2.938 7.461 1.867 2.02-3.543-1.238-10.02-3.452-10.02-2.215.001-4.421 3.688-4.01 8.153"/><path d="m46.37 32.966c8.329 0 13.463 5.097 13.463 11.431v4.252c0 5-3.627 5-3.625 5h-20.19c.002 0-3.107 0-3.107-5 0-2.355 0-4.252 0-4.252-.001-6.334 5.406-11.431 13.463-11.431"/></g><path fill="#c28fef" d="m46.37 35.09c-7.239 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.857-8.305 12.1-8.305 7.484 0 12.1 3.703 12.1 8.305v-1.375c0-4.6-4.612-8.303-12.1-8.303"/><path fill="#ffdd67" d="m58.783 52.44c0 0 1.616.393 1.616-1.924 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.24c-.918-1.977.114-4.02.114-4.02-1.856 1.707-1.563 4.02-1.563 4.02h-3.134v2.518c0 0-2.134-.211-2.134 1.713 0 2.316 1.695 1.924 1.695 1.924 0 3.459 3.625 7.25 12.586 7.25 8.49 0 12.167-3.097 12.167-7.25"/><g fill="#ff717f"><path opacity=".5" d="m58.25 53.97c-.172-1.242-1.588-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.17 1.242 1.586 1.99 3.162 1.672 1.574-.32 2.714-1.584 2.544-2.826"/><path opacity=".5" d="m37.944 52.3c-1.574-.32-2.99.428-3.16 1.67-.172 1.242.968 2.508 2.542 2.826s2.99-.43 3.16-1.672c.172-1.24-.967-2.506-2.542-2.824"/></g><path fill="#574137" d="m42.978 54.94c-.065.076-.102.176-.102.295-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.996 3.629-1.814 0-.111-.032-.227-.087-.303 0 0-1.568.705-3.542.705-1.972.001-3.527-.705-3.527-.705"/><g fill="#fff"><ellipse cx="52.4" cy="49.851" rx="3.3" ry="3.338"/><ellipse cx="40.609" cy="49.851" rx="3.299" ry="3.338"/></g><circle fill="#664e27" cx="52.4" cy="49.851" r="2.298"/><circle fill="#231f20" cx="52.4" cy="49.851" r=".75"/><circle fill="#664e27" cx="40.608" cy="49.851" r="2.298"/><g fill="#231f20"><circle cx="40.608" cy="49.851" r=".75"/><path d="m11.06 58.11c-.614 6.689-6.852 2.938-7.461 1.867-2.02-3.543 1.238-10.02 3.454-10.02 2.211.001 4.417 3.688 4.01 8.153"/><path d="m23.906 58.11c.614 6.689 6.852 2.938 7.461 1.867 2.02-3.543-1.238-10.02-3.451-10.02-2.216.001-4.422 3.688-4.01 8.153"/><path d="m17.333 32.966c8.329 0 13.463 5.097 13.463 11.431v4.252c0 5-3.627 5-3.625 5h-20.19c.002 0-3.107 0-3.107-5 0-2.355 0-4.252 0-4.252-.001-6.334 5.405-11.431 13.463-11.431"/></g><path fill="#c28fef" d="m17.333 35.09c-7.239 0-12.1 3.703-12.1 8.303 0 0 0 .545 0 1.375 0-4.602 4.857-8.305 12.1-8.305 7.484 0 12.1 3.703 12.1 8.305v-1.375c0-4.6-4.613-8.303-12.1-8.303"/><path fill="#ffdd67" d="m29.749 52.44c0 0 1.616.393 1.616-1.924 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.24c-.918-1.977.113-4.02.113-4.02-1.855 1.707-1.563 4.02-1.563 4.02h-3.133v2.518c0 0-2.134-.211-2.134 1.713 0 2.316 1.695 1.924 1.695 1.924 0 3.459 3.625 7.25 12.586 7.25 8.49 0 12.167-3.097 12.167-7.25"/><g fill="#ff717f"><path opacity=".5" d="m29.22 53.97c-.172-1.242-1.588-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.824.17 1.242 1.586 1.99 3.162 1.672 1.574-.32 2.714-1.584 2.544-2.826"/><path opacity=".5" d="m8.91 52.3c-1.574-.32-2.99.428-3.16 1.67-.172 1.242.968 2.508 2.542 2.826 1.575.318 2.99-.43 3.16-1.672.173-1.24-.968-2.506-2.542-2.824"/></g><path fill="#574137" d="m13.943 54.94c-.065.076-.102.176-.102.295-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.996 3.629-1.814 0-.111-.032-.227-.087-.303 0 0-1.568.705-3.542.705-1.971.001-3.527-.705-3.527-.705"/><g fill="#fff"><ellipse cx="23.364" cy="49.851" rx="3.3" ry="3.338"/><ellipse cx="11.575" cy="49.851" rx="3.299" ry="3.338"/></g><circle fill="#664e27" cx="23.364" cy="49.851" r="2.298"/><circle fill="#231f20" cx="23.362" cy="49.851" r=".75"/><circle fill="#664e27" cx="11.574" cy="49.851" r="2.298"/><circle fill="#231f20" cx="11.573" cy="49.851" r=".75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M47,2c-6.3,0-6.9,2.5-6.9,2.5S32.3,4.3,32,15.9C31.7,4.3,23.9,4.5,23.9,4.5S23.3,2,17,2C7.3,2,2,8.3,2,16.7
+ v18.5h60V16.7C62,8.3,56.7,2,47,2z" fill="#ffb300"/><path d="M32,34.7C31.6,29,2,29,2,34.8V62h60V34.8C62,29,32.4,29,32,34.7z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="m57.6 23.6c0 0 2.2-.6 2.2-3.9 0-2.6-1.7-3.1-1.7-3.1-6 0-15.8-7.8-15.8-7.8s-3.7 6.9-7.3 7.8c0 0-1.7.3-1.7 3.1 0 3.3 2.3 3.9 2.3 3.9 0 5 6.8 10 11 10 4 0 11-5 11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="51.9" cy="20.3" r="2.2"/><circle cx="41.1" cy="20.3" r="2.2"/><path d="m42.9 27.1c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4-1.8 0-3.2-1.1-3.9-2.4-.2-.3 0-.7.3-.5"/></g><path d="m30 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m19.3 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-3.9-7.2-10.4-7.2"/><path d="m7 62h25c0-8.4-25-8.4-25 0"/></g><path d="m29.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.4.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m25.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="14.9" cy="49.8" r="1.8"/><path d="m22.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3 0-.6-.2-.4"/></g><path d="m55 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.5 1.7-2.7 5.4-1.4 7.7.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.3.1-6-1.4-7.7" fill="#ffb300"/><g fill="#ff81ab"><path d="m44.3 37.8c-6.2 0-10.4 3.2-10.4 7.1 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.1c.1-4-3.9-7.2-10.4-7.2"/><path d="m32 62h25c0-8.4-25-8.4-25 0"/></g><path d="m54.3 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.5.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m50.8 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.9-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="39.9" cy="49.8" r="1.8"/><path d="m47.6 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3.1-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467.svg
index 5bde01b..bbc72da 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-1f469-1f467.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M17.485,2C7.47,2,2.002,8.332,2.002,16.667V35.18H32.97V16.667c0-12.395-8.383-12.162-8.383-12.162
- S23.956,2,17.485,2z"/><path fill="#ffdd67" d="m6.444 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.68-3.061 1.68-3.061 6.03 0 15.84-7.83 15.84-7.83s3.71 6.912 7.291 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.314 3.871-2.314 3.871-.029 4.979-6.83 10.985-10.959 10.985s-11.04-6.01-11.04-10.985"/><path fill="#eba352" d="m20.251 25.916c0 1.086-2.249 1.398-2.766 1.398-.516 0-2.764-.385-2.764-1.469.001 0 5.53-.47 5.53.071"/><path fill="#f5f5f5" d="m13.719 21.582c.652 0 .565-1.682.565-1.682-1.996-4.459-6.439-1.637-6.439-1.637-1.729.771.772 3.209 1.174 3.318 1.882.508 4.7.001 4.7.001"/><circle fill="#664e27" cx="11.12" cy="19.539" r="2.125"/><g fill="#231f20"><path d="m11.866 19.539c0 .416-.336.748-.75.748-.415 0-.75-.332-.75-.748 0-.414.335-.748.75-.748.414 0 .75.334.75.748"/><path d="m14.842 20.542c-.544-.662-1.081-1.301-1.705-1.785-.626-.482-1.327-.791-2.083-.838-.757-.074-1.55.09-2.372.244-.411.08-.835.158-1.278.184-.43.018-.947-.033-1.254-.361.404.158.803.076 1.188-.039.388-.113.774-.273 1.177-.408.795-.283 1.676-.516 2.607-.445.461.045.925.162 1.346.369.416.211.793.486 1.102.814.623.654 1.031 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m21.251 21.582c-.65 0-.564-1.682-.564-1.682 1.995-4.459 6.441-1.637 6.441-1.637 1.727.771-.775 3.209-1.176 3.318-1.882.508-4.701.001-4.701.001"/><circle fill="#664e27" cx="23.854" cy="19.539" r="2.125"/><g fill="#231f20"><circle cx="23.854" cy="19.539" r=".75"/><path d="m20.13 20.542c.241-.822.648-1.611 1.272-2.266.308-.328.687-.604 1.102-.814.42-.207.885-.324 1.345-.369.934-.07 1.813.162 2.607.445.402.135.789.295 1.177.408.387.115.784.197 1.188.039-.307.328-.822.379-1.254.361-.441-.025-.867-.104-1.278-.184-.823-.154-1.615-.318-2.371-.244-.756.047-1.458.355-2.081.838-.625.486-1.164 1.124-1.707 1.786"/></g><path fill="#f09985" d="m19.45 28.576c-.402-.098-.989-.053-1.762.209-.068.018-.136.041-.203.064-.067-.023-.134-.047-.203-.064-.772-.262-1.359-.307-1.76-.209-1.199.291-3.01.15-3.01.15 1.32 1.318 1.947 3.119 4.977 3.119 3.03 0 3.656-1.801 4.977-3.119 0 0-1.816.141-3.01-.15"/><path fill="#d47f6c" d="m19.45 28.576c-.402-.098-.989-.053-1.762.209-.068.018-.136.041-.203.064-.067-.023-.134-.047-.203-.064-.772-.262-1.359-.307-1.76-.209-1.176.285-3.02.148-3.01.15 1.992.357 2.24 1.375 4.977 1.375s2.984-1.018 4.977-1.375c.008-.002-1.836.135-3.01-.15"/><path fill="#231f20" d="m46.519 2c-10.02 0-15.485 6.332-15.485 14.667v18.513h30.968v-18.513c0-12.395-8.383-12.162-8.383-12.162s-.632-2.505-7.1-2.505"/><path fill="#ffdd67" d="m35.476 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.681-3.061 1.681-3.061 6.02 0 15.841-7.83 15.841-7.83s3.709 6.912 7.289 7.83c0 0 1.734.318 1.734 3.061 0 3.301-2.313 3.871-2.313 3.871-.031 4.979-6.83 10.985-10.959 10.985-4.131 0-11.04-6.01-11.04-10.985"/><path fill="#eba352" d="m49.28 25.916c0 1.086-2.249 1.398-2.765 1.398-.517 0-2.765-.385-2.765-1.469.001 0 5.53-.47 5.53.071"/><path fill="#f5f5f5" d="m42.751 21.582c.652 0 .565-1.682.565-1.682-1.996-4.459-6.44-1.637-6.44-1.637-1.727.771.773 3.209 1.174 3.318 1.884.508 4.701.001 4.701.001"/><circle fill="#664e27" cx="40.15" cy="19.539" r="2.126"/><g fill="#231f20"><path d="m40.897 19.539c0 .416-.335.748-.749.748-.415 0-.751-.332-.751-.748 0-.414.336-.748.751-.748.415 0 .749.334.749.748"/><path d="m43.874 20.542c-.543-.662-1.082-1.301-1.705-1.785-.625-.482-1.327-.791-2.083-.838-.757-.074-1.55.09-2.372.244-.411.08-.836.158-1.279.184-.43.018-.946-.033-1.254-.361.404.158.804.076 1.189-.039.389-.113.775-.273 1.177-.408.796-.283 1.675-.516 2.608-.445.46.045.924.162 1.345.369.415.211.793.486 1.102.814.624.654 1.031 1.443 1.272 2.265"/></g><path fill="#f5f5f5" d="m50.28 21.582c-.65 0-.564-1.682-.564-1.682 1.995-4.459 6.44-1.637 6.44-1.637 1.729.771-.774 3.209-1.176 3.318-1.881.508-4.7.001-4.7.001"/><circle fill="#664e27" cx="52.887" cy="19.539" r="2.126"/><g fill="#231f20"><circle cx="52.887" cy="19.539" r=".75"/><path d="m49.16 20.542c.241-.822.648-1.611 1.272-2.266.309-.328.686-.604 1.102-.814.42-.207.885-.324 1.344-.369.934-.07 1.813.162 2.609.445.402.135.787.295 1.175.408.388.115.784.197 1.188.039-.306.328-.822.379-1.252.361-.443-.025-.868-.104-1.28-.184-.822-.154-1.614-.318-2.37-.244-.756.047-1.457.355-2.081.838-.626.486-1.163 1.124-1.707 1.786"/></g><path fill="#f09985" d="m48.48 28.576c-.401-.098-.988-.053-1.762.209-.067.018-.135.041-.201.064-.068-.023-.135-.047-.203-.064-.773-.262-1.36-.307-1.762-.209-1.197.291-3.01.15-3.01.15 1.32 1.318 1.948 3.119 4.979 3.119 3.03 0 3.656-1.801 4.977-3.119 0 0-1.816.141-3.01-.15"/><path fill="#d47f6c" d="m48.48 28.576c-.401-.098-.988-.053-1.762.209-.067.018-.135.041-.201.064-.068-.023-.135-.047-.203-.064-.773-.262-1.36-.307-1.762-.209-1.176.285-3.02.148-3.01.15 1.994.357 2.241 1.375 4.979 1.375 2.735 0 2.984-1.018 4.977-1.375.006-.002-1.838.135-3.01-.15"/><g fill="#231f20"><path d="m25.579 58.12c-.614 6.689-6.854 2.938-7.462 1.867-2.02-3.543 1.237-10.02 3.453-10.02 2.214.001 4.419 3.686 4.01 8.151"/><path d="m38.425 58.12c.614 6.689 6.852 2.938 7.46 1.867 2.02-3.543-1.237-10.02-3.451-10.02-2.216.001-4.421 3.686-4.01 8.151"/><path d="m31.851 32.968c8.33 0 13.463 5.098 13.463 11.432v4.25c0 5-3.627 5-3.625 5h-20.2c.002.002-3.107 0-3.107-5 0-2.355 0-4.25 0-4.25 0-6.334 5.407-11.432 13.465-11.432"/></g><path fill="#c28fef" d="m31.851 35.1c-7.239 0-12.1 3.703-12.1 8.305 0 0 0 .543 0 1.373 0-4.6 4.859-8.303 12.1-8.303 7.484 0 12.1 3.703 12.1 8.303v-1.374c-.001-4.601-4.613-8.304-12.1-8.304"/><path fill="#ffdd67" d="m44.27 52.44c0 0 1.616.393 1.616-1.924 0-1.834-2.107-1.713-2.107-1.713v-2.518h-19.24c-.921-1.977.113-4.02.113-4.02-1.857 1.707-1.564 4.02-1.564 4.02h-3.135v2.518c0 0-2.134-.211-2.134 1.713 0 2.316 1.696 1.924 1.696 1.924 0 3.459 3.625 7.25 12.588 7.25 8.491 0 12.167-3.097 12.167-7.25"/><g fill="#ff717f"><path opacity=".5" d="m43.737 53.971c-.172-1.242-1.588-1.99-3.162-1.67-1.576.318-2.716 1.584-2.544 2.826.171 1.24 1.586 1.99 3.162 1.67 1.576-.318 2.714-1.584 2.544-2.826"/><path opacity=".5" d="m23.427 52.3c-1.574-.32-2.99.428-3.16 1.67-.172 1.242.967 2.508 2.542 2.826 1.576.32 2.991-.43 3.162-1.67.172-1.242-.968-2.508-2.544-2.826"/></g><path fill="#574137" d="m28.462 54.941c-.066.076-.102.176-.102.297-.002.818 1.623 1.822 3.629 1.822 2 0 3.629-.998 3.629-1.816 0-.111-.033-.227-.088-.303 0 0-1.568.707-3.541.707-1.971 0-3.527-.707-3.527-.707"/><g fill="#fff"><path d="m41.18 49.854c0 1.842-1.479 3.336-3.301 3.336s-3.3-1.494-3.3-3.336c0-1.846 1.478-3.338 3.3-3.338s3.301 1.492 3.301 3.338"/><path d="m29.392 49.854c0 1.842-1.477 3.336-3.3 3.336-1.822 0-3.3-1.494-3.3-3.336 0-1.846 1.478-3.338 3.3-3.338 1.823 0 3.3 1.492 3.3 3.338"/></g><path fill="#664e27" d="m40.18 49.854c0 1.27-1.028 2.297-2.299 2.297-1.27 0-2.298-1.027-2.298-2.297 0-1.271 1.028-2.299 2.298-2.299 1.27 0 2.299 1.027 2.299 2.299"/><path fill="#231f20" d="m38.632 49.854c0 .414-.338.748-.749.748-.415 0-.751-.334-.751-.748 0-.416.336-.75.751-.75.411 0 .749.334.749.75"/><path fill="#664e27" d="m28.39 49.854c0 1.27-1.027 2.297-2.298 2.297s-2.299-1.027-2.299-2.297c0-1.271 1.028-2.299 2.299-2.299s2.298 1.027 2.298 2.299"/><path fill="#231f20" d="m26.842 49.854c0 .414-.335.748-.75.748s-.75-.334-.75-.748c0-.416.335-.75.75-.75s.75.334.75.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M47,2c-6.3,0-6.9,2.5-6.9,2.5S32.3,4.3,32,15.9C31.7,4.3,23.9,4.5,23.9,4.5S23.3,2,17,2C7.3,2,2,8.3,2,16.7
+ v18.5h60V16.7C62,8.3,56.7,2,47,2z" fill="#ffb300"/><path d="M32,34.7C31.6,29,2,29,2,34.8V62h60V34.8C62,29,32.4,29,32,34.7z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.1c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.3 0-.7-.3-.5"/></g><path d="m57.6 23.6c0 0 2.2-.6 2.2-3.9 0-2.6-1.7-3.1-1.7-3.1-6 0-15.8-7.8-15.8-7.8s-3.7 6.9-7.3 7.8c0 0-1.7.3-1.7 3.1 0 3.3 2.3 3.9 2.3 3.9 0 5 6.8 10 11 10 4 0 11-5 11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="51.9" cy="20.3" r="2.2"/><circle cx="41.1" cy="20.3" r="2.2"/><path d="m42.9 27.1c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4-1.8 0-3.2-1.1-3.9-2.4-.2-.3 0-.7.3-.5"/></g><path d="m42.5 51.6h.9v-5.7c0-5.5-4.4-9.8-11.6-9.8-6.9 0-11.6 4.4-11.6 9.8 0 1.1 0 5.7 0 5.7h1.2c-1.4 1.7-2.7 5.4-1.4 7.6.5.9 5.9 4.2 6.4-1.6h11.1c.5 5.8 5.9 2.5 6.4 1.6 1.3-2.2.1-5.9-1.4-7.6" fill="#ffb300"/><g fill="#ff81ab"><path d="m31.9 37.8c-6.2 0-10.4 3.2-10.4 7.2 0 0 0 .5 0 1.2 0-4 4.2-7.2 10.4-7.2 6.4 0 10.4 3.2 10.4 7.2v-1.2c0-4-4-7.2-10.4-7.2"/><path d="m19.5 62h25c0-8.4-25-8.4-25 0"/></g><path d="m41.8 52.8c0 0 1.8.3 1.8-1.7 0-1.6-1.8-1.5-1.8-1.5v-1.8c0 0-13.5-.6-16.6-5.7.8 5.1-3.3 7.4-3.3 7.4s-1.8-.2-1.8 1.5c0 2 1.8 1.7 1.8 1.7 0 3 5.3 6.2 10.2 6.2 4.5.1 9.7-2.6 9.7-6.1" fill="#ffdd67"/><g fill="#937237"><path d="m38.3 49.8c0 1-.8 1.8-1.8 1.8-1 0-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8c1 0 1.8.8 1.8 1.8"/><circle cx="27.4" cy="49.8" r="1.8"/><path d="m35.1 54.4c-2 1.5-4.3 1.5-6.3 0-.2-.2-.5.1-.3.4.6 1.1 1.9 2 3.4 2 1.6 0 2.8-1 3.4-2 .3-.3.1-.6-.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f469.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f469.svg
index 060b7dd..5f188ca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f469.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f469.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m43.28 42.13c0 0-3.779-.982-3.779-6.664 0-4.502 2.85-5.273 2.85-5.273 5.889 0 13.91-4.482 19.65-8.277v-17.06c-16.98 0-26.25 10.902-26.25 25.26v31.879h26.25v-.953c-7 0-18.721-10.342-18.721-18.916"/><path fill="#ffdd67" d="m39.502 35.466c0 5.682 3.779 6.664 3.779 6.664 0 8.574 11.721 18.916 18.721 18.916v-4.787c-5.135 0-6.199-3.104-8.438-5.377-.01-.002 3.115.236 5.109-.256.68-.17 1.674-.09 2.984.357.115.035.229.074.344.111v-2.643c-.877 0-4.688-.66-4.688-2.529 0 0 2.344-.201 4.688-.289v-23.718c-5.74 3.795-13.762 8.277-19.65 8.277.001 0-2.849.772-2.849 5.274"/><path fill="#eba352" d="m57.31 45.923c0 1.869 3.811 2.529 4.688 2.529v-2.818c-2.344.088-4.688.289-4.688.289"/><path fill="#f09985" d="m53.56 50.882c2.238 2.273 3.303 5.377 8.438 5.377v-3.01c-4.639 0-5.061-1.754-8.438-2.371"/><g fill="#d47f6c"><path d="m58.674 50.626c-1.994.492-5.119.254-5.109.256-.001 0 3.078.246 5.109-.256"/><path d="m62 51.09c-.115-.037-.229-.076-.344-.111-1.311-.447-2.305-.527-2.984-.357-2.031.502-5.109.256-5.109.256 3.377.617 3.799 2.371 8.438 2.371v-2.159"/></g><path fill="#f5f5f5" d="m55.617 38.577c1.104 0 .957-2.893.957-2.893-3.383-7.678-10.918-2.818-10.918-2.818-2.928 1.33 1.313 5.527 1.992 5.711 3.192.879 7.969 0 7.969 0"/><ellipse fill="#664e27" cx="51.2" cy="35.06" rx="3.604" ry="3.662"/><ellipse fill="#231f20" cx="51.2" cy="35.06" rx="1.25" ry="1.27"/><path fill="#3b3226" d="m57.52 36.792c-.922-1.143-1.832-2.24-2.893-3.076-1.059-.832-2.246-1.359-3.529-1.443-1.283-.125-2.627.154-4.02.422-.699.137-1.418.273-2.17.316-.727.031-1.605-.057-2.125-.623.688.275 1.361.129 2.01-.068.66-.195 1.314-.469 1.996-.701 1.35-.488 2.84-.889 4.42-.768.783.08 1.57.281 2.281.635.705.367 1.346.838 1.867 1.406 1.059 1.123 1.748 2.484 2.159 3.9"/><path fill="#231f20" d="m20.721 42.13c0 0 3.781-.982 3.781-6.664 0-4.502-2.85-5.273-2.85-5.273-5.891 0-13.912-4.482-19.65-8.277v-17.06c16.979 0 26.25 10.902 26.25 25.26v31.879h-26.25v-.953c7 0 18.719-10.342 18.719-18.916"/><path fill="#ffdd67" d="m24.502 35.466c0 5.682-3.781 6.664-3.781 6.664 0 8.574-11.719 18.916-18.719 18.916v-4.787c5.135 0 6.199-3.104 8.436-5.377.012-.002-3.113.236-5.107-.256-.68-.17-1.674-.09-2.984.357-.117.035-.229.074-.344.111v-2.643c.877 0 4.686-.66 4.686-2.529 0 0-2.342-.201-4.686-.289v-23.718c5.738 3.795 13.76 8.277 19.65 8.277 0 0 2.849.772 2.849 5.274"/><path fill="#eba352" d="m6.688 45.923c0 1.869-3.809 2.529-4.686 2.529v-2.818c2.344.088 4.686.289 4.686.289"/><path fill="#f09985" d="m10.438 50.882c-2.236 2.273-3.301 5.377-8.436 5.377v-3.01c4.639 0 5.061-1.754 8.436-2.371"/><g fill="#d47f6c"><path d="m5.331 50.626c1.994.492 5.119.254 5.107.256 0 0-3.078.246-5.107-.256"/><path d="m2 51.09c.115-.037.227-.076.344-.111 1.311-.447 2.305-.527 2.984-.357 2.029.502 5.107.256 5.107.256-3.375.617-3.797 2.371-8.436 2.371v-2.159"/></g><path fill="#f5f5f5" d="m8.385 38.577c-1.102 0-.955-2.893-.955-2.893 3.383-7.678 10.916-2.818 10.916-2.818 2.928 1.33-1.313 5.527-1.992 5.711-3.191.879-7.969 0-7.969 0"/><ellipse fill="#664e27" cx="12.799" cy="35.06" rx="3.604" ry="3.662"/><ellipse fill="#231f20" cx="12.799" cy="35.06" rx="1.25" ry="1.27"/><path fill="#3b3226" d="m6.483 36.792c.922-1.143 1.834-2.24 2.893-3.076 1.059-.832 2.248-1.359 3.531-1.443 1.281-.125 2.625.154 4.02.422.697.137 1.416.273 2.168.316.729.031 1.605-.057 2.125-.623-.686.275-1.359.129-2.01-.068-.658-.195-1.313-.469-1.994-.701-1.352-.488-2.842-.889-4.422-.768-.781.08-1.568.281-2.281.635-.705.367-1.344.838-1.867 1.406-1.058 1.123-1.749 2.484-2.159 3.9"/><path fill="#e84d88" d="m49.541 8.317c-3.977-10.521-16.89-5.801-18.09-.547-1.643-5.6-14.236-9.775-18.08.553-4.279 11.508 16.588 21.84 18.08 23.531 1.494-1.347 22.36-12.214 18.09-23.537"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46.6 7.1c-3.2-8.5-13.6-4.7-14.6-.5-1.3-4.5-11.4-7.9-14.5.4-3.5 9.3 13.3 17.6 14.5 19 1.2-1.1 18-9.8 14.6-18.9" fill="#ff5a79"/><path d="M17,22C7.3,22,2,28.3,2,36.7v18.5h30V36.7c0-12.4-8.1-12.2-8.1-12.2S23.3,22,17,22z" fill="#ffb300"/><path d="m2 54.8v7.2h30v-7.2c0-5.8-30-5.8-30 0" fill="#c2185b"/><path d="m6.4 43.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="40.3" r="2.2"/><circle cx="22.9" cy="40.3" r="2.2"/><path d="m21.1 47.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="M47,22c9.7,0,15,6.3,15,14.7v18.5H32V36.7c0-12.4,8.1-12.2,8.1-12.2S40.7,22,47,22z" fill="#ffb300"/><path d="m62 54.8v7.2h-30v-7.2c0-5.8 30-5.8 30 0" fill="#c2185b"/><path d="m57.6 43.6c0 0 2.2-.6 2.2-3.9 0-2.6-1.7-3.1-1.7-3.1-6 0-15.8-7.8-15.8-7.8s-3.7 6.9-7.3 7.8c0 0-1.7.3-1.7 3.1 0 3.3 2.3 3.9 2.3 3.9 0 5 6.8 10 11 10 4 0 11-5 11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="51.9" cy="40.3" r="2.2"/><circle cx="41.1" cy="40.3" r="2.2"/><path d="m42.9 47.2c2.3 1.8 4.9 1.8 7.2 0 .3-.2.5.2.3.5-.7 1.3-2.1 2.4-3.9 2.4-1.8 0-3.2-1.1-3.9-2.4-.2-.4 0-.8.3-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f48b-1f469.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f48b-1f469.svg
index 4190607..c236906 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f48b-1f469.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469-2764-1f48b-1f469.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f0cd4f" d="m22.795 59.13l-15.672-9.648c0 0 2.116 7.262 0 14.523h12.525c0-2.986 3.147-4.875 3.147-4.875"/><path fill="#231f20" d="m0 43.47c0-10.723 4.899-11.933 4.899-11.933 4.225-5.444 18.565-3.215 22.584.44 8.229 7.48 2.353 15.24.853 14.945l-17.245 3.02c0 0-1.768 10.939 4.363 14.05h-15.454v-20.526"/><path fill="#ffdd67" d="m19.368 60.44c-4.931-1.057-6.892.35-8.277-11.605h3.739c0 0 2.633.662 5.265-8.563 1.193-4.178 6-7.306 7.06-4.694 2.215 5.434-.243 7.07.347 8.574 1.072 2.736 3.359 1.988 3.267 3.799-.052.973-1.885 1.128-1.943 1.408-.145.701.427 1.022 1.295 1.586.869.563-.714 1.129-.408 2.924.309 1.795.472 2.475.472 2.475-.716.514-1.667.487-1.494 1.58.402 2.555.152 4.55-9.327 2.516"/><path fill="#eba352" d="m26.13 44.34c-.158-.481-.095-.861-.021-1.285.084-.422.182-.875.207-1.393.016-.504-.087-1.123-.437-1.552-.336-.43-.794-.624-1.238-.647.304.373.567.707.702 1.055.131.346.161.695.142 1.114-.002.415-.065.88-.021 1.391.022.493.232 1.113.666 1.317"/><path fill="#ffdd67" d="m7.533 48.714c.636 2.774 2.743 4.573 4.708 4.02 1.964-.552 3.042-3.248 2.407-6.02-.637-2.771-2.742-4.573-4.708-4.02-1.964.551-3.043 3.245-2.407 6.02"/><path fill="#594640" d="m10.54 44.33c.536.013 1.095.205 1.564.578.461.385.804.936.958 1.519.135.476.167.965.112 1.439.208-.073.434-.079.609.054-.262.197-.36.413-.465.623-.091.215-.171.426-.217.642-.056.212-.078.419-.081.643.003.225.052.477.17.808-.314-.006-.622-.234-.785-.578-.173-.34-.186-.754-.105-1.114.097-.358.277-.685.552-.899.051-.045.112-.08.172-.113-.396-.949-.777-1.777-1.408-2.27-.33-.281-.732-.467-1.172-.615-.442-.143-.923-.229-1.433-.371.476-.241.991-.366 1.529-.346"/><path fill="#c94747" d="m28.535 52.945c.412-.258.806-.528 1.106-.832.281-.301.501-.658.263-1.318.277.074.554.358.664.744.1.393.026.825-.122 1.16-.141.326-.328.592-.537.821.224.233.429.546.518.892.11.363.104.721.059 1.037-.062.32-.147.615-.298.895-.241-.581-.399-1.144-.644-1.451-.129-.149-.241-.262-.41-.371-.162-.113-.359-.224-.567-.34l-1.061-.59 1.029-.647"/><path fill="#594640" d="m21.17 42.666c.554.205.88.584 1.309.92.408.353.854.695 1.372.971.511.27 1.117.479 1.755.418.637-.041 1.252-.41 1.557-.979-1.184.166-1.862-.226-2.781-.702-.451-.232-.926-.496-1.47-.68-.514-.178-1.218-.343-1.742.052"/><path fill="#e84d88" d="m12.09 8.596c4.379-10.982 18.599-6.05 19.911-.57 1.809-5.846 15.678-10.204 19.909.576 4.712 12.01-18.266 22.789-19.909 24.555-1.644-1.405-24.621-12.747-19.911-24.561"/><path fill="#f0cd4f" d="m41.2 59.13l15.672-9.648c0 0-2.116 7.262 0 14.523h-12.525c0-2.986-3.147-4.875-3.147-4.875"/><path fill="#231f20" d="m64 43.47c0-10.723-4.899-11.933-4.899-11.933-4.225-5.444-18.565-3.215-22.584.44-8.229 7.48-2.353 15.24-.853 14.945l17.245 3.02c0 0 1.768 10.939-4.363 14.05h15.454v-20.526"/><path fill="#ffdd67" d="m44.632 60.44c4.931-1.057 6.892.35 8.277-11.605h-3.739c0 0-2.633.662-5.265-8.563-1.193-4.178-6-7.306-7.06-4.694-2.215 5.434.243 7.07-.347 8.574-1.072 2.736-3.359 1.988-3.267 3.799.052.973 1.885 1.128 1.943 1.408.145.701-.427 1.022-1.295 1.586-.869.563.714 1.129.408 2.924-.309 1.795-.472 2.475-.472 2.475.716.514 1.667.487 1.494 1.58-.402 2.555-.152 4.55 9.327 2.516"/><path fill="#eba352" d="m37.869 44.34c.158-.481.095-.861.021-1.285-.084-.422-.182-.875-.207-1.393-.016-.504.087-1.123.437-1.552.336-.43.794-.624 1.238-.647-.304.373-.567.707-.702 1.055-.131.346-.161.695-.142 1.114.002.415.065.88.021 1.391-.022.493-.232 1.113-.666 1.317"/><path fill="#ffdd67" d="m56.47 48.714c-.636 2.774-2.743 4.573-4.708 4.02-1.964-.552-3.042-3.248-2.407-6.02.637-2.771 2.742-4.573 4.708-4.02 1.964.551 3.043 3.245 2.407 6.02"/><path fill="#594640" d="m53.46 44.33c-.536.013-1.095.205-1.564.578-.461.385-.804.936-.958 1.519-.135.476-.167.965-.112 1.439-.208-.073-.434-.079-.609.054.262.197.36.413.465.623.091.215.171.426.217.642.056.212.078.419.081.643-.003.225-.052.477-.17.808.314-.006.622-.234.785-.578.173-.34.186-.754.105-1.114-.097-.358-.277-.685-.552-.899-.051-.045-.112-.08-.172-.113.396-.949.777-1.777 1.408-2.27.33-.281.732-.467 1.172-.615.442-.143.923-.229 1.433-.371-.476-.241-.991-.366-1.529-.346"/><path fill="#c94747" d="m35.465 52.945c-.412-.258-.806-.528-1.106-.832-.281-.301-.501-.658-.263-1.318-.277.074-.554.358-.664.744-.1.393-.026.825.122 1.16.141.326.328.592.537.821-.224.233-.429.546-.518.892-.11.363-.104.721-.059 1.037.062.32.147.615.298.895.241-.581.399-1.144.644-1.451.129-.149.241-.262.41-.371.162-.113.359-.224.567-.34l1.061-.59-1.029-.647"/><path fill="#594640" d="m42.833 42.666c-.554.205-.88.584-1.309.92-.408.353-.854.695-1.372.971-.511.27-1.117.479-1.755.418-.637-.041-1.252-.41-1.557-.979 1.184.166 1.862-.226 2.781-.702.451-.232.926-.496 1.47-.68.514-.178 1.218-.343 1.742.052"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46.5 7.1c-3.2-8.5-13.5-4.7-14.5-.5-1.3-4.5-11.4-7.9-14.5.4-3.5 9.3 13.3 17.6 14.5 19 1.2-1.1 18-9.8 14.5-18.9" fill="#ff5a79"/><path d="M17,22C7.3,22,2,28.3,2,36.7v24.5h30V36.7c0-12.4-8.1-12.2-8.1-12.2S23.3,22,17,22z" fill="#ffb300"/><path d="m2 47.8v14.2h30v-1.2c0-5.8-30-13-30-13" fill="#c2185b"/><path d="m5.3 37.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s11.8-4.1 17.8-9.9c0 0 5.9 1.9 5.9 14.2 0 5.2-3.7 11.3-9.6 11.3-6 0-14.8-4.2-14.8-11.7-2.2-.1-2.9-1.6-2.9-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><path d="m29.2 39.9c-.9-2-2.2-3-3.6-3-1.4 0-2.7 1-3.6 3-.1.2.4.6.6.4.9-.7 1.9-1 3-1 1.1 0 2.1.3 3 1 .2.1.7-.2.6-.4"/><path d="m18.4 39.9c-.9-2-2.2-3-3.6-3s-2.7 1-3.6 3c-.1.2.4.6.6.4.9-.7 1.9-1 3-1 1.1 0 2.1.3 3 1 .2.1.7-.2.6-.4"/><path d="m24.2 49.4c.8-.8-.9-1.4-.9-2.8 0-1.4 1.6-2 .9-2.8-.9-.9-2.9-.2-4.1-1.5 0 1 .9 2.2 2.5 2.2 0 0-1.1.4-1.1 2.2 0 1.7 1.1 2.2 1.1 2.2-1.6 0-2.5 1.1-2.5 2.2 1.2-1.4 3.2-.7 4.1-1.7"/></g><path d="M47,22c9.7,0,15,6.3,15,14.7v24.5H32V36.7c0-12.4,8.1-12.2,8.1-12.2S40.7,22,47,22z" fill="#ffb300"/><path d="m62 47.8v14.2h-30v-1.2c0-5.8 30-13 30-13" fill="#c2185b"/><path d="m58.7 37.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s-11.8-4.1-17.8-9.9c0 0-5.9 1.9-5.9 14.2 0 5.2 3.7 11.3 9.6 11.3 6 0 14.8-4.2 14.8-11.7 2.2-.2 2.9-1.7 2.9-3.5 0-2.8-1.3-3-2.3-2.8" fill="#ffdd67"/><g fill="#937237"><path d="m34.8 39.9c.9-2 2.2-3 3.6-3 1.4 0 2.7 1 3.6 3 .1.2-.4.6-.6.4-.9-.7-1.9-1-3-1-1.1 0-2.1.3-3 1-.2.1-.7-.2-.6-.4"/><path d="m45.6 39.9c.9-2 2.2-3 3.6-3s2.7 1 3.6 3c.1.2-.4.6-.6.4-.9-.7-1.9-1-3-1-1.1 0-2.1.3-3 1-.2.1-.7-.2-.6-.4"/><path d="m39.8 49.4c-.8-.8.9-1.4.9-2.8 0-1.4-1.6-2-.9-2.8.9-.9 2.9-.2 4.1-1.5 0 1-.9 2.2-2.5 2.2 0 0 1.1.4 1.1 2.2 0 1.7-1.1 2.2-1.1 2.2 1.6 0 2.5 1.1 2.5 2.2-1.2-1.4-3.2-.7-4.1-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f469.svg b/build/js/jsxc/lib/emojione/assets/svg/1f469.svg
index fe81428..8a7fada 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f469.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f469.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.413-15.16-21.996-15.16-21.996s-1.141-4.531-12.84-4.531"/><path fill="#ffdd67" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.04-5.538 3.04-5.538 10.895 0 28.641-14.157 28.641-14.157s6.709 12.5 13.185 14.157c0 0 3.135.578 3.135 5.538 0 5.967-4.183 6.998-4.183 6.998-.057 9-12.35 19.861-19.816 19.861s-19.97-10.859-19.97-19.861"/><path fill="#eba352" d="m37 45.25c0 1.962-4.066 2.529-5 2.529s-5-.695-5-2.657c0 0 10-.851 10 .128"/><path fill="#f5f5f5" d="m25.19 37.41c1.176 0 1.02-3.038 1.02-3.038-3.607-8.06-11.645-2.96-11.645-2.96-3.123 1.396 1.4 5.804 2.125 5.999 3.405.921 8.5-.001 8.5-.001"/><circle fill="#664e27" cx="20.485" cy="33.717" r="3.844"/><circle fill="#231f20" cx="20.485" cy="33.717" r="1.25"/><path fill="#3b3226" d="m27.22 35.531c-.983-1.199-1.955-2.353-3.085-3.231-1.13-.873-2.397-1.426-3.766-1.513-1.368-.132-2.802.16-4.288.441-.744.145-1.512.288-2.313.333-.776.032-1.712-.06-2.267-.655.732.291 1.451.137 2.148-.072.703-.204 1.4-.491 2.128-.736 1.44-.511 3.03-.932 4.716-.804.834.083 1.674.294 2.433.667.752.384 1.435.88 1.992 1.476 1.128 1.179 1.864 2.607 2.302 4.094"/><path fill="#f5f5f5" d="m38.812 37.41c-1.176 0-1.02-3.038-1.02-3.038 3.607-8.06 11.645-2.96 11.645-2.96 3.125 1.396-1.4 5.804-2.125 5.999-3.403.921-8.5-.001-8.5-.001"/><circle fill="#664e27" cx="43.519" cy="33.717" r="3.844"/><circle fill="#231f20" cx="43.519" cy="33.717" r="1.25"/><path fill="#3b3226" d="m36.784 35.531c.437-1.487 1.173-2.915 2.302-4.095.557-.596 1.239-1.092 1.991-1.476.76-.372 1.598-.584 2.432-.667 1.688-.127 3.276.293 4.717.804.727.245 1.424.533 2.127.736.697.208 1.416.362 2.148.072-.555.596-1.49.688-2.267.655-.801-.045-1.569-.188-2.313-.333-1.486-.281-2.92-.573-4.287-.441-1.368.087-2.637.64-3.766 1.513-1.129.88-2.1 2.033-3.084 3.232"/><path fill="#f09985" d="m35.554 50.06c-.727-.179-1.787-.094-3.186.374-.123.038-.244.078-.365.117-.123-.039-.244-.079-.367-.117-1.398-.468-2.459-.553-3.184-.374-2.166.527-5.449.27-5.449.27 2.387 2.386 3.521 5.644 9 5.644 5.477 0 6.611-3.258 8.998-5.644 0-.001-3.283.257-5.447-.27"/><path fill="#d47f6c" d="m35.554 50.06c-.727-.179-1.787-.094-3.186.374-.123.038-.244.078-.365.117-.123-.039-.244-.079-.367-.117-1.398-.468-2.459-.553-3.184-.374-2.127.518-5.461.268-5.449.27 3.602.647 4.051 2.487 9 2.487 4.947 0 5.396-1.84 8.998-2.487.012-.003-3.322.247-5.447-.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#ffb300"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C21.1,27.2,43,12,43,12s4.6,13.4,11.6,15.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62C23.9,62,10.4,50.3,10.4,40.7z" fill="#ffdd67"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#eba352"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#664e27"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#664e27"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#f09985"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5s6-1.7 10-2.5c0 0-3.8.5-6.1-.4" fill="#d47f6c"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46a.svg
index e80ba45..e0fc989 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m17.487 1.999c-10.02 0-15.484 6.33-15.484 14.668v18.51h30.967v-18.51c0-12.395-8.381-12.164-8.381-12.164s-.632-2.504-7.102-2.504"/><path fill="#ffdd67" d="m6.444 23.642c0 0-2.23-.57-2.23-3.871 0-2.611 1.682-3.061 1.682-3.061 6.02 0 15.84-7.83 15.84-7.83s3.709 6.912 7.29 7.83c0 0 1.733.318 1.733 3.061 0 3.301-2.313 3.871-2.313 3.871-.031 4.979-6.83 10.984-10.959 10.984-4.13 0-11.04-6.01-11.04-10.984"/><path fill="#eba352" d="m20.252 25.915c0 1.086-2.25 1.398-2.766 1.398s-2.764-.385-2.764-1.469c.001.001 5.53-.472 5.53.071"/><path fill="#f5f5f5" d="m13.719 21.579c.652 0 .565-1.68.565-1.68-1.995-4.459-6.44-1.637-6.44-1.637-1.727.771.773 3.209 1.175 3.316 1.884.511 4.7.001 4.7.001"/><circle fill="#664e27" cx="11.12" cy="19.538" r="2.125"/><g fill="#231f20"><circle cx="11.12" cy="19.538" r=".75"/><path d="m14.842 20.542c-.543-.662-1.082-1.303-1.705-1.787-.625-.482-1.326-.789-2.082-.836-.758-.074-1.551.088-2.373.244-.41.08-.836.158-1.278.184-.431.018-.946-.033-1.254-.363.404.16.802.076 1.188-.039.389-.111.774-.271 1.177-.406.796-.283 1.675-.516 2.608-.445.461.045.924.162 1.345.369.416.211.793.486 1.101.814.625.654 1.033 1.443 1.273 2.265"/></g><path fill="#f5f5f5" d="m21.252 21.579c-.65 0-.564-1.68-.564-1.68 1.994-4.459 6.439-1.637 6.439-1.637 1.729.771-.773 3.209-1.175 3.316-1.881.511-4.7.001-4.7.001"/><circle fill="#664e27" cx="23.855" cy="19.538" r="2.125"/><g fill="#231f20"><circle cx="23.856" cy="19.538" r=".75"/><path d="m20.13 20.542c.242-.822.65-1.611 1.273-2.266.309-.328.687-.604 1.102-.814.42-.207.885-.324 1.346-.369.932-.07 1.812.162 2.607.445.402.135.788.295 1.176.406.387.115.784.199 1.189.039-.307.33-.824.381-1.254.363-.443-.025-.867-.104-1.279-.184-.822-.156-1.615-.318-2.371-.244-.757.047-1.458.354-2.082.836-.625.485-1.162 1.126-1.707 1.788"/></g><path fill="#f09985" d="m19.45 28.575c-.4-.1-.988-.053-1.761.207-.069.02-.136.043-.202.064-.068-.021-.135-.045-.203-.064-.773-.26-1.359-.307-1.761-.207-1.198.291-3.01.148-3.01.148 1.32 1.32 1.948 3.121 4.978 3.121 3.03 0 3.656-1.801 4.977-3.121-.001.001-1.817.143-3.01-.148"/><path fill="#d47f6c" d="m19.45 28.575c-.4-.1-.988-.053-1.761.207-.069.02-.136.043-.202.064-.068-.021-.135-.045-.203-.064-.773-.26-1.359-.307-1.761-.207-1.177.285-3.02.148-3.01.148 1.992.359 2.241 1.377 4.978 1.377s2.983-1.018 4.977-1.377c.006.001-1.839.137-3.01-.148"/><path fill="#231f20" d="m31.898 17.319l1.506 2.756h26.23l1.141-2.945c0-10.551-2.453-15.02-14.13-15.13-11.797-.109-14.745 4.574-14.745 15.318"/><path fill="#ffdd67" d="m59.684 17.14c-.092.607-.219 1.182-.389 1.506-.311.58-.939.91-.939.91s.168-1.178.107-2.826c-.658-9.729-1.225-7.05-11.943-7.05-10.717 0-11.287-2.668-11.947 7.04-.061 1.656.109 2.84.109 2.84s-.631-.33-.939-.91c-.172-.324-.297-.898-.389-1.506-1.012-.266-2.32-.043-2.32 2.877 0 1.816.667 3.307 2.912 3.469.955 7.365 3.803 8.563 9.527 11.178 1.506.688 4.588.688 6.092 0 5.723-2.615 8.572-3.813 9.527-11.178 2.244-.162 2.91-1.652 2.91-3.469 0-2.92-1.307-3.143-2.318-2.877"/><path fill="#574137" d="m52.29 27.733c0 1.887-2.529 3.473-5.648 3.473s-5.646-1.586-5.646-3.473c0 0 3 .168 5.648.168 2.64 0 5.646-.168 5.646-.168"/><path fill="#fff" d="m51.813 27.999c0 .953-2.313 1.707-5.168 1.707s-5.172-.754-5.172-1.707c0 0 2.443.189 5.172.189 2.726 0 5.168-.189 5.168-.189"/><path fill="#eba352" d="m49.47 25.17c0 1.1-2.297 1.416-2.824 1.416s-2.822-.389-2.822-1.486c-.001 0 5.646-.475 5.646.07"/><path fill="#f5f5f5" d="m36.08 17.519c-.178.838-.391 2.943 3.582 2.869 4.115-.078 3.953.277 4.152-1.113.174-1.217-1.27-2.568-3.404-3.053-2.135-.487-4.074.095-4.33 1.297"/><ellipse fill="#664e27" cx="40.32" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="40.32" cy="18.14" rx=".75" ry=".742"/><path fill="#664e27" d="m36.01 18.333c-.578-3.732 7.795-3.533 7.795.441-1.209-3.162-6.983-3.271-7.795-.441"/><path fill="#f5f5f5" d="m56.951 17.519c.18.838.393 2.943-3.58 2.869-4.117-.078-3.953.277-4.152-1.113-.174-1.217 1.268-2.568 3.402-3.053 2.137-.487 4.076.095 4.33 1.297"/><ellipse fill="#664e27" cx="52.716" cy="18.14" rx="2.171" ry="2.15"/><ellipse fill="#231f20" cx="52.715" cy="18.14" rx=".75" ry=".742"/><path fill="#664e27" d="m57.03 18.333c.578-3.732-7.795-3.533-7.795.441 1.211-3.162 6.983-3.271 7.795-.441"/><path fill="#231f20" d="m32 32.966c8.517 0 13.761 4.775 13.761 10.707v3.984c0 4.684-3.705 4.684-3.703 4.684h-20.644c.001 0-3.177 0-3.177-4.684 0-2.207 0-3.984 0-3.984 0-5.932 5.527-10.707 13.763-10.707"/><path fill="#ffdd67" d="m44.47 48.7l-.516-5.65c0-3.611-5.666-.727-11.949-.727-6.284 0-11.951-2.885-11.951.727l-.513 5.65c-2.737 0-2.737 4.445 0 4.445 0 5.516 7.417 8.854 12.464 8.854 5.04 0 12.464-3.338 12.464-8.854 2.735.001 2.735-4.445.001-4.445"/><g opacity=".5" fill="#ff717f"><path d="m43.738 54.29c-.172-1.242-1.588-1.99-3.162-1.67-1.578.318-2.717 1.584-2.545 2.824.172 1.242 1.586 1.99 3.162 1.672 1.577-.32 2.715-1.584 2.545-2.826"/><path d="m23.427 52.624c-1.575-.32-2.991.428-3.161 1.67-.171 1.242.968 2.506 2.543 2.826 1.576.318 2.99-.43 3.162-1.672.17-1.24-.969-2.506-2.544-2.824"/></g><path fill="#574137" d="m28.475 55.27c-.066.076-.102.176-.102.295-.002.818 1.624 1.822 3.629 1.822 2 0 3.628-.996 3.628-1.814 0-.111-.031-.227-.086-.303 0 0-1.568.705-3.542.705-1.97 0-3.527-.705-3.527-.705"/><circle fill="#fff" cx="38.14" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="38.14" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="38.14" cy="49.21" rx=".851" ry=".84"/><circle fill="#fff" cx="25.865" cy="49.21" r="3.629"/><ellipse fill="#664e27" cx="25.864" cy="49.21" rx="2.527" ry="2.498"/><ellipse fill="#231f20" cx="25.864" cy="49.21" rx=".85" ry=".84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,2C7.3,2,2,8.3,2,16.7v18.5h30V16.7c0-12.4-8.1-12.2-8.1-12.2S23.3,2,17,2z" fill="#ffb300"/><path d="m32 34.8v27.2h30v-27.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="M2,34.8V62h30V34.8C32,29,2,29,2,34.8z" fill="#c2185b"/><path d="m6.4 23.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="20.3" r="2.2"/><circle cx="22.9" cy="20.3" r="2.2"/><path d="m21.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4 1.8 0 3.2-1.1 3.9-2.4.2-.4 0-.8-.3-.5"/></g><path d="m31.9 17.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 17.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="20.3" r="2.2"/><circle cx="52" cy="20.3" r="2.2"/><path d="m50.1 27.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m44.5 62h-25c0-8.4 25-8.4 25 0" fill="#29b6f6"/><path d="m32 36c-6.7 0-10.9 3.8-10.9 8.5v3.2c0 3.7 2.9 3.7 2.9 3.7h16.4c0 0 2.5 0 2.5-3.7 0-1.7 0-3.2 0-3.2 0-4.7-4.4-8.5-10.9-8.5" fill="#ffb300"/><path d="m22.1 48.5l.4-4.5c0-2.9 4.5-.6 9.5-.6s9.5-2.3 9.5.6l.4 4.5c2.2 0 2.2 3.5 0 3.5 0 4.4-5.9 7-9.9 7-4 0-9.9-2.6-9.9-7-2.1 0-2.1-3.5 0-3.5" fill="#ffdd67"/><g fill="#937237"><circle cx="27.2" cy="49.8" r="1.8"/><circle cx="36.8" cy="49.8" r="1.8"/><path d="m28.9 54.4c2 1.5 4.3 1.5 6.3 0 .2-.2.5.1.3.4-.6 1.1-1.9 2-3.4 2-1.6 0-2.8-1-3.4-2-.3-.3-.1-.6.2-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46b.svg
index 78da68c..4e7dcce 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m13.414 26.331h6.01v4.582h-6.01z"/><path fill="#231f20" d="m9.428 43.645v17.711h5.521c0-11.885.889-13.439.889-13.439h1.166c0 0 .891 1.555.891 13.439h5.518v-17.711h-13.985"/><g fill="#428bc1"><path d="M17.879,60.861c0.977-1.148,4.557-1.148,5.533,0V63h-5.533V60.861z"/><path d="M14.963,60.861c-0.977-1.148-4.557-1.148-5.535,0V63h5.535V60.861z"/><path d="m24.09 28.688h-4.662c0 .941-1.344 1.711-3 1.711s-3.01-.77-3.01-1.711h-4.66l.674 14.957h13.984l.676-14.957"/></g><path fill="#231f20" d="m28.924 9.932c0 2.271 0 9.211 0 9.211h-25.01c0 0 0-6.939 0-9.211 0-11.91 25.01-11.91 25.01 0"/><path fill="#ffdd67" d="m29.777 17.565c0-4.125-3.01-2.031-3.01-2.031-.547-10.838-3.434-4.984-10.35-4.984-6.92 0-9.805-5.854-10.357 4.984 0 0-3-2.094-3 2.031 0 1.578.572 2.869 2.512 3.01.818 6.381 4.891 7.697 10.846 7.697s10.02-1.316 10.842-7.697c1.939-.137 2.513-1.428 2.513-3.01"/><g fill="#664e27"><path d="m21.398 21.827c0 1.635-2.18 3.01-4.871 3.01-2.689 0-4.871-1.371-4.871-3.01 0 0 2.59.145 4.871.145s4.871-.145 4.871-.145"/><path d="m13.383 15.991c0 .891-.752 1.617-1.674 1.617-.926 0-1.678-.727-1.678-1.617 0-.895.752-1.613 1.678-1.613.922-.001 1.674.718 1.674 1.613"/><path d="m23.04 15.991c0 .891-.748 1.617-1.674 1.617-.922 0-1.676-.727-1.676-1.617 0-.895.754-1.613 1.676-1.613.926-.001 1.674.718 1.674 1.613"/></g><path fill="#428bc1" d="m30.678 44.04l-7.961-13c-1.25-2.047 1.465-3.342 2.721-1.297l7.955 13-2.715 1.295"/><path fill="#ffdd67" d="m30.678 44.04c1.508 2.467 2.203 2.318 2.955 1.961s1.271-.787-.24-3.256l-2.715 1.295"/><path fill="#428bc1" d="m4.283 44.775l2.885-14.599c.451-2.295 3.48-1.787 3.03.51l-2.888 14.597-3.02-.508"/><path fill="#ffdd67" d="m4.283 44.775c-.549 2.768.1 3.039.934 3.178.838.143 1.545.102 2.09-2.67l-3.02-.508"/><path fill="#231f20" d="m60.1 14.206c0 2.139 0 16.707 0 16.707h-26.711c0 0 0-14.568 0-16.707 0-16.04 26.711-16.04 26.711 0"/><path fill="#ffdd67" d="m59.33 18.18c0-3.889-2.826-1.916-2.826-1.916.207-5.5-2.248-5.953-2.248-5.953-11.457 0-17.268 5.953-17.268 5.953s-2.83-1.973-2.83 1.916c0 1.486.541 2.703 2.371 2.832.771 6.01 4.607 7.254 10.217 7.254 5.615 0 9.445-1.242 10.221-7.254 1.822-.129 2.363-1.346 2.363-2.832"/><g fill="#664e27"><path d="m51.44 22.2c0 1.541-2.055 2.834-4.586 2.834-2.537 0-4.592-1.293-4.592-2.834 0 0 2.441.137 4.592.137 2.148-.001 4.586-.137 4.586-.137"/><path d="m43.887 16.702c0 .838-.711 1.521-1.578 1.521-.873 0-1.578-.684-1.578-1.521 0-.846.705-1.523 1.578-1.523.867-.001 1.578.677 1.578 1.523"/><path d="m52.984 16.702c0 .838-.701 1.521-1.572 1.521s-1.58-.684-1.58-1.521c0-.846.709-1.523 1.58-1.523s1.572.677 1.572 1.523"/></g><path fill="#ff4848" d="m57.29 44.516l-7.459-13.242c-1.174-2.082 1.596-3.295 2.77-1.211l7.453 13.242-2.764 1.211"/><g fill="#ffdd67"><path d="m57.29 44.516c1.41 2.51 2.111 2.381 2.875 2.049.766-.334 1.303-.748-.111-3.26l-2.764 1.211"/><path d="m43.742 26.624h6.01v4.582h-6.01z"/><path d="m48.822 63l-.012-15.848c0-2.535 3.096-2.535 3.098.002l.006 15.846h-3.092"/></g><path fill="#ff4848" d="M47.596,60.861c0.977-1.148,4.557-1.148,5.533,0V63h-5.533V60.861z"/><path fill="#ffdd67" d="m41.588 63l-.008-15.848c-.004-2.535 3.096-2.535 3.098.002l.008 15.846h-3.098"/><g fill="#ff4848"><path d="M45.9,60.861c-0.977-1.148-4.557-1.148-5.533,0V63H45.9V60.861z"/><path d="m50.771 28.981h-1.016c0 .941-1.348 1.709-3.01 1.709-1.658 0-3-.768-3-1.709h-1.02c-1.371 1.111-1.242 6.583-2.291 12.11-1.279 6.756-3.605 10.914-3.605 10.914h19.846c0 0-2.324-4.168-3.609-10.918-1.048-5.529-.916-10.998-2.291-12.11"/><path d="m35.574 44.29l7.961-13.01c1.252-2.045-1.465-3.342-2.721-1.295l-7.955 13.01 2.715 1.295"/></g><path fill="#ffdd67" d="m35.574 44.29c-1.51 2.465-2.203 2.314-2.953 1.959-.754-.357-1.273-.787.238-3.254l2.715 1.295"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m14.1 26.5h5.8v4.5h-5.8z"/><path d="m10.2 43.3v17.2h5.3c0-11.5.9-13 .9-13h1.1c0 0 .9 1.5.9 13h5.3v-17.2h-13.5" fill="#231f20"/><g fill="#428bc1"><path d="m18.4 59.9c.9-1.1 4.4-1.1 5.3 0v2.1h-5.3v-2.1"/><path d="m15.6 59.9c-.9-1.1-4.4-1.1-5.3 0v2.1h5.4c-.1 0-.1-2.1-.1-2.1"/><path d="m24.4 28.8h-4.5c0 .9-1.3 1.6-2.9 1.6-1.6 0-2.9-.7-2.9-1.6h-4.5l.7 14.5h13.5l.6-14.5"/><path d="m30.8 43.7l-7.7-12.6c-1.2-2 1.4-3.2 2.6-1.3l7.7 12.6-2.6 1.3"/></g><path d="m30.8 43.7c1.5 2.3 2.1 2.2 2.9 1.9.7-.4 1.2-.8-.2-3.2l-2.7 1.3" fill="#ffdd67"/><path d="m5.3 44.4l2.7-14.2c.4-2.2 3.4-1.8 2.9.5l-2.7 14.1-2.9-.4" fill="#428bc1"/><path d="m5.3 44.4c-.5 2.6.1 2.9.9 3 .8.2 1.5.1 2-2.6l-2.9-.4" fill="#ffdd67"/><path d="m59.2 14.8c0 2.1 0 16.2 0 16.2h-25.8c0 0 0-14.1 0-16.2 0-15.6 25.8-15.6 25.8 0" fill="#ffb300"/><path d="m58.5 18.6c0-3.8-2.7-1.8-2.7-1.8.2-5.3-2.2-5.7-2.2-5.7-11.1 0-16.7 5.7-16.7 5.7s-2.7-1.9-2.7 1.8c0 1.5.5 2.6 2.3 2.8.7 5.9 4.5 7 9.9 7 5.4 0 9.1-1.2 9.9-7 1.6-.2 2.2-1.4 2.2-2.8" fill="#ffdd67"/><path d="m56.5 44.1l-7.2-12.8c-1.1-2.1 1.5-3.2 2.7-1.2l7.2 12.8-2.7 1.2" fill="#ff4848"/><g fill="#ffdd67"><path d="m56.5 44.1c1.4 2.5 2 2.3 2.8 2 .7-.3 1.3-.7-.1-3.2l-2.7 1.2"/><path d="m43.4 26.8h5.8v4.5h-5.8z"/><path d="m48.3 62v-15.4c0-2.5 3-2.5 3 0v15.4h-3"/></g><path d="m47.1 59.9c.9-1.1 4.4-1.1 5.3 0v2.1h-5.3v-2.1" fill="#ff4848"/><path d="m41.3 62v-15.4c0-2.5 3-2.5 3 0v15.4h-3" fill="#ffdd67"/><g fill="#ff4848"><path d="m45.5 59.9c-.9-1.1-4.4-1.1-5.3 0v2.1h5.3v-2.1"/><path d="m50.2 29.1h-1c0 .9-1.3 1.6-2.9 1.6-1.6 0-2.9-.8-2.9-1.6h-1c-1.3 1.1-1.2 6.4-2.2 11.7-1.2 6.5-3.5 10.5-3.5 10.5h19.2c0 0-2.2-4-3.5-10.5-1-5.3-.9-10.7-2.2-11.7"/><path d="m35.5 43.9l7.7-12.6c1.2-2-1.4-3.2-2.6-1.2l-7.7 12.5 2.6 1.3"/></g><path d="m35.5 43.9c-1.5 2.3-2.1 2.2-2.9 1.9-.7-.4-1.2-.8.2-3.2l2.7 1.3" fill="#ffdd67"/><path d="m4.7 14.8l1.3 2.4h22l1-2.5c0-8.9-2.1-12.7-11.8-12.7-10-.1-12.5 3.8-12.5 12.8" fill="#ffb300"/><path d="m28 14.7c-.1.5-.2 1-.3 1.2-.3.5-.8.8-.8.8s.1-1 .1-2.3c-.6-8.2-1-4.3-10-4.3-9 0-9.5-3.9-10 4.3-.1 1.3.1 2.3.1 2.3s-.5-.2-.8-.8c-.1-.2-.2-.8-.3-1.2-.9-.2-2 0-2 2.4 0 1.5.6 2.8 2.4 2.9.7 5.1 7.5 8.5 10.5 8.5 3.1 0 9.9-3.4 10.5-8.5 1.9-.2 2.4-1.4 2.4-2.9.2-2.4-.9-2.6-1.8-2.4" fill="#ffdd67"/><g fill="#937237"><path d="m14.3 17.4c0 1.1-.8 1.9-1.9 1.9-1 0-1.9-.8-1.9-1.9s.8-1.9 1.9-1.9 1.9.8 1.9 1.9"/><path d="m23.5 17.4c0 1.1-.8 1.9-1.9 1.9-1 0-1.9-.8-1.9-1.9s.8-1.9 1.9-1.9c1 0 1.9.8 1.9 1.9"/><path d="m20 23.1c-1.9 1.5-4.1 1.5-6 0-.2-.2-.4.1-.3.4.6 1.1 1.8 2 3.3 2s2.7-.9 3.3-2c.1-.3-.1-.6-.3-.4"/><path d="m43.7 17.3c0 1.1-.8 1.9-1.9 1.9-1 0-1.9-.8-1.9-1.9s.8-1.9 1.9-1.9c1 0 1.9.8 1.9 1.9"/><path d="m52.9 17.3c0 1.1-.8 1.9-1.9 1.9-1 0-1.9-.8-1.9-1.9s.8-1.9 1.9-1.9c1.1 0 1.9.8 1.9 1.9"/><path d="m49.4 23c-1.9 1.5-4.1 1.5-6 0-.2-.2-.4.2-.3.5.6 1.1 1.8 2 3.3 2s2.7-.9 3.3-2c.2-.3-.1-.6-.3-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46c.svg
index 8da6b63..376a18d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m12.348 26.33h6.01v4.582h-6.01z"/><path fill="#231f20" d="m8.361 43.645v17.711h5.52c0-11.885.891-13.439.891-13.439h1.166c0 0 .891 1.555.891 13.439h5.518v-17.711h-13.986"/><g fill="#428bc1"><path d="M16.813,60.861c0.977-1.148,4.555-1.148,5.533,0V63h-5.533V60.861z"/><path d="M13.896,60.861c-0.979-1.148-4.557-1.148-5.535,0V63h5.535V60.861z"/><path d="m23.02 28.687h-4.662c0 .941-1.344 1.711-3 1.711s-3.01-.77-3.01-1.711h-4.661l.676 14.958h13.984l.675-14.958"/></g><path fill="#231f20" d="m27.857 9.931c0 2.271 0 9.211 0 9.211h-25.01c0 0 0-6.939 0-9.211 0-11.908 25.01-11.908 25.01 0"/><path fill="#ffdd67" d="m28.711 17.564c0-4.125-3.01-2.031-3.01-2.031-.547-10.838-3.436-4.984-10.35-4.984-6.922 0-9.805-5.854-10.357 4.984 0 0-3-2.094-3 2.031 0 1.578.572 2.869 2.51 3.01.818 6.381 4.893 7.697 10.848 7.697s10.02-1.316 10.842-7.697c1.939-.137 2.513-1.428 2.513-3.01"/><g fill="#664e27"><path d="m20.332 21.826c0 1.635-2.182 3.01-4.871 3.01s-4.873-1.371-4.873-3.01c0 0 2.592.145 4.873.145s4.871-.145 4.871-.145"/><path d="m12.314 15.99c0 .891-.75 1.617-1.672 1.617-.928 0-1.678-.727-1.678-1.617 0-.895.75-1.613 1.678-1.613.922-.001 1.672.718 1.672 1.613"/><ellipse cx="20.299" cy="15.99" rx="1.674" ry="1.617"/></g><path fill="#428bc1" d="m29.611 44.04l-7.961-13c-1.252-2.047 1.465-3.342 2.721-1.297l7.955 13-2.715 1.295"/><path fill="#ffdd67" d="m29.611 44.04c1.508 2.467 2.203 2.318 2.953 1.961.752-.357 1.273-.787-.238-3.256l-2.715 1.295"/><path fill="#428bc1" d="m3.217 44.775l2.883-14.6c.453-2.295 3.482-1.787 3.03.51l-2.887 14.598-3.02-.508"/><g fill="#ffdd67"><path d="m3.217 44.775c-.549 2.768.098 3.039.934 3.178.838.143 1.545.102 2.09-2.67l-3.02-.508"/><path d="m45.637 26.33h6.01v4.582h-6.01z"/></g><path fill="#231f20" d="m55.635 43.645v17.711h-5.521c0-11.885-.889-13.439-.889-13.439h-1.166c0 0-.891 1.555-.891 13.439h-5.518v-17.711h13.985"/><g fill="#428bc1"><path d="m47.18 60.861c-.977-1.148-4.557-1.148-5.533 0v2.139h5.533v-2.139"/><path d="M50.1,60.861c0.977-1.148,4.557-1.148,5.535,0V63H50.1V60.861z"/></g><path fill="#6adbc6" d="m40.975 28.687h4.662c0 .941 1.344 1.711 3 1.711s3.01-.77 3.01-1.711h4.66l-.674 14.958h-13.985l-.675-14.958"/><path fill="#231f20" d="m36.14 9.931c0 2.271 0 9.211 0 9.211h25.01c0 0 0-6.939 0-9.211-.001-11.908-25.01-11.908-25.01 0"/><path fill="#ffdd67" d="m35.28 17.564c0-4.125 3.01-2.031 3.01-2.031.547-10.838 3.434-4.984 10.35-4.984 6.92 0 9.805-5.854 10.357 4.984 0 0 3-2.094 3 2.031 0 1.578-.572 2.869-2.512 3.01-.818 6.381-4.891 7.697-10.846 7.697s-10.02-1.316-10.842-7.697c-1.939-.137-2.513-1.428-2.513-3.01"/><g fill="#664e27"><path d="m43.664 21.826c0 1.635 2.18 3.01 4.871 3.01 2.689 0 4.871-1.371 4.871-3.01 0 0-2.59.145-4.871.145s-4.871-.145-4.871-.145"/><path d="m51.68 15.99c0 .891.752 1.617 1.674 1.617.926 0 1.678-.727 1.678-1.617 0-.895-.752-1.613-1.678-1.613-.922-.001-1.674.718-1.674 1.613"/><path d="m42.02 15.99c0 .891.748 1.617 1.674 1.617.922 0 1.676-.727 1.676-1.617 0-.895-.754-1.613-1.676-1.613-.925-.001-1.674.718-1.674 1.613"/></g><path fill="#6adbc6" d="m34.385 44.04l7.961-13c1.25-2.047-1.465-3.342-2.721-1.297l-7.955 13 2.715 1.295"/><path fill="#ffdd67" d="m34.385 44.04c-1.508 2.467-2.203 2.318-2.955 1.961s-1.271-.787.24-3.256l2.715 1.295"/><path fill="#6adbc6" d="m60.779 44.775l-2.885-14.6c-.451-2.295-3.48-1.787-3.03.51l2.889 14.598 3.02-.508"/><path fill="#ffdd67" d="m60.779 44.775c.549 2.768-.1 3.039-.934 3.178-.838.143-1.545.102-2.09-2.67l3.02-.508"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m13.1 26.5h5.8v4.4h-5.8z"/><path d="m9.2 43.3v17.1h5.3c0-11.5.9-13 .9-13h1.1c0 0 .9 1.5.9 13h5.3v-17.1h-13.5" fill="#231f20"/><g fill="#428bc1"><path d="m17.4 59.9c.9-1.1 4.4-1.1 5.3 0v2.1h-5.3v-2.1"/><path d="m14.6 59.9c-.9-1.1-4.4-1.1-5.3 0v2.1h5.3v-2.1"/><path d="m23.3 28.8h-4.5c0 .9-1.3 1.7-2.9 1.7-1.6 0-2.9-.7-2.9-1.7h-4.4l.7 14.5h13.5l.5-14.5"/><path d="m29.7 43.7l-7.7-12.6c-1.2-2 1.4-3.2 2.6-1.3l7.7 12.6-2.6 1.3"/></g><path d="m29.7 43.7c1.5 2.4 2.1 2.2 2.8 1.9.7-.3 1.2-.8-.2-3.2l-2.6 1.3" fill="#ffdd67"/><path d="m4.3 44.4l2.7-14.2c.4-2.2 3.4-1.7 2.9.5l-2.7 14.2-2.9-.5" fill="#428bc1"/><g fill="#ffdd67"><path d="m4.3 44.4c-.5 2.7.1 2.9.9 3.1.8.1 1.5.1 2-2.6l-2.9-.5"/><path d="m45.1 26.5h5.8v4.4h-5.8z"/></g><path d="m54.8 43.3v17.1h-5.3c0-11.5-.9-13-.9-13h-1.1c0 0-.9 1.5-.9 13h-5.3v-17.1h13.5" fill="#231f20"/><g fill="#428bc1"><path d="m46.6 59.9c-.9-1.1-4.4-1.1-5.3 0v2.1h5.3v-2.1"/><path d="m49.4 59.9c.9-1.1 4.4-1.1 5.3 0v2.1h-5.3v-2.1"/></g><g fill="#6adbc6"><path d="m40.7 28.8h4.5c0 .9 1.3 1.7 2.9 1.7s2.9-.7 2.9-1.7h4.5l-.6 14.5h-13.6l-.6-14.5"/><path d="m34.3 43.7l7.7-12.6c1.2-2-1.4-3.2-2.6-1.3l-7.7 12.6 2.6 1.3"/></g><path d="m34.3 43.7c-1.5 2.4-2.1 2.2-2.8 1.9-.7-.3-1.2-.8.2-3.2l2.6 1.3" fill="#ffdd67"/><path d="m59.7 44.4l-2.7-14.2c-.4-2.2-3.4-1.7-2.9.5l2.8 14.1 2.8-.4" fill="#6adbc6"/><path d="m59.7 44.4c.5 2.7-.1 2.9-.9 3.1-.8.1-1.5.1-2-2.6l2.9-.5" fill="#ffdd67"/><path d="m3.7 14.9l1.3 2.3h22l1-2.5c0-8.9-2.1-12.6-11.8-12.7-10-.1-12.5 3.8-12.5 12.9" fill="#ffb300"/><path d="m27 14.7c-.1.5-.2 1-.3 1.3-.3.5-.8.8-.8.8s.1-1 .1-2.4c-.6-8.2-1-4.2-10-4.2-9 0-9.4-3.9-10 4.2-.1 1.4.1 2.4.1 2.4s-.6-.3-.8-.8c-.1-.3-.2-.8-.3-1.3-.8-.2-1.9 0-1.9 2.4 0 1.5.6 2.8 2.4 2.9.7 5.1 7.5 8.5 10.5 8.5 3.1 0 9.9-3.4 10.5-8.5 1.9-.1 2.4-1.4 2.4-2.9 0-2.4-1.1-2.6-1.9-2.4" fill="#ffdd67"/><g fill="#937237"><circle cx="11.4" cy="17.4" r="1.9"/><circle cx="20.6" cy="17.4" r="1.9"/><path d="m19 23.1c-1.9 1.5-4.1 1.5-6 0-.2-.2-.4.1-.3.4.6 1.1 1.8 2 3.3 2 1.5 0 2.7-1 3.3-2 .1-.3-.1-.6-.3-.4"/></g><path d="m35.8 14.9l1.3 2.3h22l1-2.5c-.1-8.9-2.2-12.6-12-12.7-9.8-.1-12.3 3.8-12.3 12.9" fill="#ffb300"/><path d="m59.1 14.7c-.1.5-.2 1-.3 1.3-.3.5-.8.8-.8.8s.1-1 .1-2.4c-.6-8.2-1-4.2-10-4.2-9 0-9.4-3.9-10 4.2-.1 1.4.1 2.4.1 2.4s-.5-.3-.8-.8c-.1-.3-.2-.8-.3-1.3-.8-.2-1.9 0-1.9 2.4 0 1.5.6 2.8 2.4 2.9.7 5.1 7.5 8.5 10.5 8.5 3.1 0 9.9-3.4 10.5-8.5 1.9-.1 2.4-1.4 2.4-2.9 0-2.4-1.1-2.6-1.9-2.4" fill="#ffdd67"/><g fill="#937237"><path d="m45.3 17.4c0 1-.8 1.9-1.9 1.9-1 0-1.9-.8-1.9-1.9 0-1 .8-1.9 1.9-1.9 1.1 0 1.9.8 1.9 1.9"/><circle cx="52.6" cy="17.4" r="1.9"/><path d="m51 23.1c-1.9 1.5-4.1 1.5-6 0-.2-.2-.4.1-.3.4.6 1.1 1.8 2 3.3 2 1.5 0 2.7-1 3.3-2 .2-.3 0-.6-.3-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46d.svg
index c9c4d2a..ed12b05 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m62.15 14.982c0 2.111 0 20.19 0 20.19h-27.32c0 0 0-18.08 0-20.19 0-18.875 27.32-18.875 27.32 0"/><path fill="#ffdd67" d="m61.36 18.912c0-3.842-2.889-1.893-2.889-1.893.211-5.432-2.301-5.879-2.301-5.879-11.717 0-17.66 5.879-17.66 5.879s-2.895-1.949-2.895 1.893c0 1.468.553 2.668 2.424 2.797.791 5.938 4.713 7.164 10.451 7.164 5.742 0 9.66-1.227 10.453-7.164 1.865-.129 2.417-1.329 2.417-2.797"/><g fill="#664e27"><path d="m53.29 22.875c0 1.522-2.1 2.799-4.689 2.799-2.596 0-4.697-1.276-4.697-2.799 0 0 2.498.136 4.697.136 2.197 0 4.689-.136 4.689-.136"/><path d="m45.565 17.447c0 .828-.729 1.502-1.615 1.502-.893 0-1.615-.674-1.615-1.502 0-.835.723-1.504 1.615-1.504.887 0 1.615.669 1.615 1.504"/><path d="m54.87 17.447c0 .828-.717 1.502-1.609 1.502-.891 0-1.615-.674-1.615-1.502 0-.835.725-1.504 1.615-1.504.892 0 1.609.669 1.609 1.504"/></g><path fill="#ff4848" d="m59.27 44.918l-7.629-13.08c-1.201-2.057 1.633-3.254 2.832-1.196l7.623 13.08-2.826 1.196"/><g fill="#ffdd67"><path d="m59.27 44.918c1.443 2.479 2.16 2.352 2.941 2.02.781-.331 1.332-.738-.115-3.219l-2.826 1.197"/><path d="m45.42 27.25h6.146v4.527h-6.146z"/><path d="m50.612 63.17l-.012-15.652c0-2.504 3.166-2.504 3.168.002l.006 15.65h-3.162"/></g><path fill="#ff4848" d="m49.36 61.06c.998-1.133 4.66-1.133 5.66 0v2.114h-5.66v-2.114"/><path fill="#ffdd67" d="m43.21 63.17l-.008-15.652c-.004-2.504 3.164-2.504 3.168.002l.008 15.65h-3.168"/><g fill="#ff4848"><path d="m47.624 61.06c-.998-1.133-4.66-1.133-5.66 0v2.114h5.66v-2.114"/><path d="m52.606 29.575h-1.039c0 .929-1.379 1.687-3.078 1.687-1.697 0-3.072-.758-3.072-1.687h-1.043c-1.402 1.097-1.27 6.501-2.344 11.963-1.309 6.671-3.688 10.779-3.688 10.779h20.299c0 0-2.379-4.116-3.691-10.783-1.074-5.462-.937-10.862-2.344-11.959"/></g><path fill="#231f20" d="m1.845 14.982c0 2.111 0 20.19 0 20.19h27.318c0 0 0-18.08 0-20.19.001-18.875-27.318-18.875-27.318 0"/><path fill="#ffdd67" d="m2.634 18.912c0-3.842 2.889-1.893 2.889-1.893 4.697-2.955 4.697-8.139 4.697-8.139.488 4.628 15.266 8.139 15.266 8.139s2.893-1.949 2.893 1.893c0 1.468-.553 2.668-2.424 2.797-.789 5.938-4.713 7.164-10.449 7.164-5.744 0-9.662-1.227-10.455-7.164-1.864-.129-2.417-1.329-2.417-2.797"/><g fill="#664e27"><path d="m10.708 22.875c0 1.522 2.102 2.799 4.691 2.799 2.594 0 4.695-1.276 4.695-2.799 0 0-2.496.136-4.695.136-2.196 0-4.691-.136-4.691-.136"/><path d="m18.431 17.447c0 .828.727 1.502 1.613 1.502.895 0 1.615-.674 1.615-1.502 0-.835-.721-1.504-1.615-1.504-.886 0-1.613.669-1.613 1.504"/><path d="m9.126 17.447c0 .828.717 1.502 1.607 1.502s1.615-.674 1.615-1.502c0-.835-.725-1.504-1.615-1.504s-1.607.669-1.607 1.504"/></g><g fill="#ffdd67"><path d="m4.724 44.918l7.629-13.08c1.201-2.057-1.631-3.254-2.83-1.196l-7.623 13.08 2.824 1.196"/><path d="m4.724 44.918c-1.441 2.479-2.158 2.352-2.939 2.02-.783-.331-1.332-.738.115-3.219l2.824 1.197"/><path d="m29.521 42.35l-11.275-10.204c-1.771-1.604.564-3.58 2.342-1.975l11.268 10.206-2.335 1.973"/><path d="m29.521 42.35c2.139 1.935 2.783 1.602 3.428 1.059.648-.546 1.046-1.097-1.094-3.03l-2.334 1.972"/></g><path fill="#ff4848" d="m33.915 42.35l11.275-10.204c1.773-1.604-.563-3.58-2.34-1.975l-11.268 10.206 2.333 1.973"/><g fill="#ffdd67"><path d="m33.915 42.35c-2.136 1.935-2.781 1.602-3.425 1.059-.648-.546-1.049-1.097 1.092-3.03l2.333 1.972"/><path d="m12.431 27.25h6.148v4.527h-6.148z"/><path d="m13.384 63.17l.01-15.652c0-2.504-3.166-2.504-3.168.002l-.006 15.65h3.164"/></g><path fill="#c28fef" d="m14.636 61.06c-.996-1.133-4.66-1.133-5.658 0v2.114h5.658v-2.114"/><path fill="#ffdd67" d="m20.783 63.17l.008-15.652c.004-2.504-3.166-2.504-3.17.002l-.006 15.65h3.168"/><g fill="#c28fef"><path d="m16.373 61.06c.998-1.133 4.658-1.133 5.658 0v2.114h-5.658v-2.114"/><path d="m11.388 29.575h1.041c0 .929 1.377 1.687 3.076 1.687 1.697 0 3.072-.758 3.072-1.687h1.045c1.402 1.097 2.963 19.778 2.963 19.778h-14.162c0 .001 1.559-18.681 2.965-19.778"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.2 15.6c0 2 0 19.4 0 19.4h-26.5c0 0 0-17.4 0-19.4 0-18.1 26.5-18.1 26.5 0" fill="#ffb300"/><path d="m58.4 44.4l-7.4-12.6c-1.2-2 1.6-3.1 2.7-1.1l7.4 12.6-2.7 1.1" fill="#ff4848"/><g fill="#ffdd67"><path d="m58.4 44.4c1.4 2.4 2.1 2.3 2.8 1.9.8-.3 1.3-.7-.1-3.1l-2.7 1.2"/><path d="m60.4 19.4c0-3.7-2.8-1.8-2.8-1.8.2-5.2-2.2-5.7-2.2-5.7-11.3 0-17.1 5.7-17.1 5.7s-2.8-1.9-2.8 1.8c0 1.4.5 2.6 2.3 2.7.8 5.7 4.6 6.9 10.2 6.9 5.6 0 9.3-1.2 10.1-6.9 1.8-.1 2.3-1.3 2.3-2.7"/><path d="m45 27.4h5.9v4.4h-5.9z"/><path d="m50 62v-15.1c0-2.4 3.1-2.4 3.1 0v15.1h-3.1"/></g><path d="m48.8 60c1-1.1 4.5-1.1 5.5 0v2h-5.5v-2" fill="#ff4848"/><path d="m42.9 62v-15.1c0-2.4 3.1-2.4 3.1 0v15.1h-3.1" fill="#ffdd67"/><g fill="#ff4848"><path d="m47.1 60c-1-1.1-4.5-1.1-5.5 0v2h5.5v-2"/><path d="m51.9 29.7h-1c0 .9-1.3 1.6-3 1.6-1.6 0-3-.7-3-1.6h-1c-1.4 1.1-1.2 6.3-2.3 11.5-1.3 6.4-3.6 10.4-3.6 10.4h19.6c0 0-2.3-4-3.6-10.4-.8-5.3-.7-10.5-2.1-11.5"/></g><path d="m2.8 15.6c0 2 0 19.4 0 19.4h26.4c0 0 0-17.4 0-19.4.1-18.1-26.4-18.1-26.4 0" fill="#ffb300"/><g fill="#ffdd67"><path d="m3.6 19.4c0-3.7 2.8-1.8 2.8-1.8 4.5-2.8 4.5-7.8 4.5-7.8.5 4.5 14.8 7.8 14.8 7.8s2.8-1.9 2.8 1.8c0 1.4-.5 2.6-2.3 2.7-.8 5.7-4.6 6.9-10.2 6.9-5.6 0-9.4-1.2-10.1-6.9-1.8-.1-2.3-1.3-2.3-2.7"/><path d="m5.6 44.4l7.4-12.6c1.2-2-1.6-3.1-2.7-1.1l-7.4 12.6 2.7 1.1"/><path d="m5.6 44.4c-1.4 2.4-2.1 2.3-2.8 1.9-.8-.3-1.3-.7.1-3.1l2.7 1.2"/><path d="m29.6 42l-10.9-9.8c-1.7-1.5.5-3.4 2.3-1.9l10.9 9.8-2.3 1.9"/><path d="m29.6 42c2.1 1.9 2.7 1.5 3.3 1 .6-.5 1-1.1-1.1-2.9l-2.2 1.9"/></g><path d="m33.9 42l10.9-9.8c1.7-1.5-.5-3.4-2.3-1.9l-10.9 9.8 2.3 1.9" fill="#ff4848"/><g fill="#ffdd67"><path d="m33.9 42c-2.1 1.9-2.7 1.5-3.3 1-.6-.5-1-1.1 1.1-2.9l2.2 1.9"/><path d="m13.1 27.4h5.9v4.4h-5.9z"/><path d="m14 62v-15.1c0-2.4-3.1-2.4-3.1 0v15.1h3.1"/></g><path d="m15.2 60c-1-1.1-4.5-1.1-5.5 0v2h5.5v-2" fill="#c28fef"/><path d="m21.1 62v-15.1c0-2.4-3.1-2.4-3.1 0v15.1h3.1" fill="#ffdd67"/><g fill="#c28fef"><path d="m16.9 60c1-1.1 4.5-1.1 5.5 0v2h-5.5v-2"/><path d="m12.1 29.7h1c0 .9 1.3 1.6 3 1.6 1.6 0 3-.7 3-1.6h1c1.4 1.1 2.9 19 2.9 19h-13.8c0 0 1.5-18 2.9-19"/></g><g fill="#937237"><circle cx="43.4" cy="18.7" r="1.9"/><circle cx="52.6" cy="18.7" r="1.9"/><path d="m51 24.4c-1.9 1.5-4.1 1.5-6 0-.2-.2-.4.1-.3.4.6 1.1 1.8 2 3.3 2 1.5 0 2.7-1 3.3-2 .2-.2 0-.5-.3-.4"/><circle cx="11.3" cy="18.7" r="1.9"/><circle cx="20.5" cy="18.7" r="1.9"/><path d="m18.9 24.4c-1.9 1.5-4.1 1.5-6 0-.2-.2-.4.1-.3.4.6 1.1 1.8 2 3.3 2 1.5 0 2.7-1 3.3-2 .1-.2-.1-.5-.3-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fb.svg
index 714f1f7..98a019f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32.05 17.225c-16.846 0-28.842.49-28.842 10.03 0 .844.822 14.158.822 14.158h55.953l.822-14.158c.001-7.457-10.255-10.03-28.755-10.03"/><path fill="#ffe1bd" d="m5.469 37.619c2.902-2.492-.098-7.441 3.758-14.525 4.561 4.385 13.744 10.309 29.785 9.777 0 0-1.115-.68-2.785-1.848 0 0 5.846.895 10.803-.846 0 0-.84-.455-2.172-1.287 4.912.303 8.881.084 10.844-.91 0 0-1.492 7.939 2.773 9.639 0 0 3.523-.471 3.523 3.838 0 5.186-3.623 4.311-3.623 4.311 0 7.744-7.752 16.23-26.91 16.23-18.15 0-26.01-6.938-26.01-16.23 0 0-3.451.875-3.451-4.311 0-4.107 3.467-3.838 3.467-3.838"/><path fill="#594640" d="m40.748 52.691c.164 0 .254-.9.254-1.277 0-2.57-4.03-4.789-9-4.789-4.971 0-9 2.283-9 4.855 0 .346.076 1.211.215 1.211h3.037l.6-1.439.539 1.439h13.355"/><path fill="#454749" d="m60.938 22.74c0 3.074-12.795 5.693-28.935 5.693-16.14 0-28.934-2.619-28.934-5.693 0 0-.291 2.277 28.934 2.277 29.23.001 28.935-2.277 28.935-2.277"/><path fill="#428bc1" d="m47.723 10.504c-4.379-1.766-11.01-8.506-15.75-8.506-4.742 0-11.371 6.74-15.75 8.506-3.512 1.416-10.176 1.91-12.863 4.527-2.871 2.797-.291 7.824-.291 7.824s.291 2.275 28.934 2.275c28.642 0 28.935-2.275 28.935-2.275s2.578-5.03-.293-7.824c-2.698-2.627-9.397-3.105-12.922-4.527"/><path fill="#fbbf67" d="m29.13 10.299c1.701-.688 2.869-3.438 2.869-3.438s1.166 2.75 2.869 3.438c1.441.582 4.73-2.07 4.73-2.07s-.285 6.711-.877 8.104c-1.545 3.629-6.722 5.758-6.722 5.758s-5.184-2.133-6.721-5.758c-.594-1.395-.877-8.104-.877-8.104s3.313 2.642 4.729 2.07"/><path fill="#f5f5f5" d="m12.635 36.902c-.323 1.517-.709 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.314-2.199-2.295-4.644-6.156-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.294" cy="38.02" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.293" cy="38.02" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.495 38.38c-1.047-6.75 14.1-6.391 14.1.798-2.19-5.72-12.628-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 36.902c.323 1.517.708 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.709" cy="38.02" rx="3.926" ry="3.889"/><path fill="#231f20" d="m44.959 38.02c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m51.51 38.38c1.045-6.75-14.1-6.391-14.1.798 2.188-5.72 12.625-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 17.3c-15.8 0-27 .5-27 10 0 .8.8 14 .8 14h52.5l.8-14c-.1-7.4-9.7-10-27.1-10" fill="#594640"/><path d="m56 37c-4-1.7-1.9-9-1.9-9-1.8 1-5.5 1.2-10.1.9 1.2.8 2 1.3 2 1.3-4.6 1.7-10.1.8-10.1.8 1.6 1.2 2.6 1.8 2.6 1.8-15 .5-23.5-5.4-27.8-9.8-3.6 7.2 0 11.5-2.7 14 0 0-4 0-4 5 0 5 4 5 4 5 0 8 18 15 24 15s24-7 24-15c0 0 4 0 4-5s-4-5-4-5" fill="#ffe1bd"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="m59 22.7c0 3.1-11.9 5.7-27 5.7s-27-2.6-27-5.7c0 0-.3 2.3 27 2.3s27-2.3 27-2.3" fill="#454749"/><path d="m46.7 10.5c-4.1-1.8-10.3-8.5-14.7-8.5-4.4 0-10.6 6.7-14.7 8.5-3.3 1.4-9.5 1.9-12 4.5-2.7 2.8-.3 7.9-.3 7.9s.3 2.3 27 2.3c26.7 0 27-2.3 27-2.3s2.4-5-.3-7.8c-2.5-2.7-8.7-3.2-12-4.6" fill="#428bc1"/><path d="m29.3 10.3c1.6-.7 2.7-3.4 2.7-3.4s1.1 2.8 2.7 3.4c1.3.6 4.4-2.1 4.4-2.1s-.3 6.7-.8 8.1c-1.5 3.7-6.3 5.8-6.3 5.8s-4.8-2.1-6.3-5.8c-.6-1.4-.8-8.1-.8-8.1s3.1 2.7 4.4 2.1" fill="#fbbf67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fc.svg
index 56c6fed..9e44350 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32.05 17.225c-16.846 0-28.843.49-28.843 10.03 0 .844.822 14.158.822 14.158h55.955l.822-14.158c.001-7.457-10.256-10.03-28.756-10.03"/><path fill="#fed0ac" d="m5.468 37.619c2.902-2.492-.098-7.441 3.758-14.525 4.562 4.385 13.745 10.309 29.786 9.777 0 0-1.115-.68-2.785-1.848 0 0 5.846.895 10.803-.846 0 0-.84-.455-2.172-1.287 4.912.303 8.882.084 10.845-.91 0 0-1.492 7.939 2.773 9.639 0 0 3.523-.471 3.523 3.838 0 5.186-3.623 4.311-3.623 4.311 0 7.744-7.753 16.23-26.911 16.23-18.15 0-26.01-6.938-26.01-16.23 0 0-3.451.875-3.451-4.311 0-4.107 3.467-3.838 3.467-3.838"/><path fill="#b3986b" d="m40.748 52.691c.164 0 .254-.9.254-1.277 0-2.57-4.03-4.789-9-4.789s-9 2.283-9 4.855c0 .346.076 1.211.215 1.211h3.037l.6-1.439.539 1.439h13.355"/><path fill="#454749" d="m60.938 22.74c0 3.074-12.796 5.693-28.937 5.693s-28.934-2.619-28.934-5.693c0 0-.291 2.277 28.935 2.277 29.23.001 28.936-2.277 28.936-2.277"/><path fill="#428bc1" d="m47.723 10.504c-4.379-1.766-11.01-8.506-15.75-8.506s-11.371 6.74-15.75 8.506c-3.512 1.416-10.177 1.91-12.864 4.527-2.871 2.797-.291 7.824-.291 7.824s.291 2.275 28.935 2.275 28.937-2.275 28.937-2.275 2.578-5.03-.293-7.824c-2.699-2.627-9.399-3.105-12.924-4.527"/><path fill="#fbbf67" d="m29.13 10.299c1.701-.688 2.869-3.438 2.869-3.438s1.166 2.75 2.869 3.438c1.441.582 4.73-2.07 4.73-2.07s-.285 6.711-.877 8.104c-1.545 3.629-6.723 5.758-6.723 5.758s-5.184-2.133-6.721-5.758c-.594-1.395-.877-8.104-.877-8.104s3.314 2.642 4.73 2.07"/><path fill="#f5f5f5" d="m12.635 36.902c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="38.02" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.544 38.02c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m12.493 38.38c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.625-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 36.902c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="38.02" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="38.02" rx="1.25" ry="1.238"/><path fill="#664e27" d="m51.51 38.38c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 17.3c-15.8 0-27 .5-27 10 0 .8.8 14 .8 14h52.5l.8-14c-.1-7.4-9.7-10-27.1-10" fill="#dbb471"/><path d="m56 37c-4-1.7-1.9-9-1.9-9-1.8 1-5.5 1.2-10.1.9 1.2.8 2 1.3 2 1.3-4.6 1.7-10.1.8-10.1.8 1.6 1.2 2.6 1.8 2.6 1.8-15 .5-23.5-5.4-27.8-9.8-3.6 7.2 0 11.5-2.7 14 0 0-4 0-4 5 0 5 4 5 4 5 0 8 18 15 24 15s24-7 24-15c0 0 4 0 4-5s-4-5-4-5" fill="#fed0ac"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="m59 22.7c0 3.1-11.9 5.7-27 5.7-15.1 0-27-2.6-27-5.7 0 0-.3 2.3 27 2.3 27.3 0 27-2.3 27-2.3" fill="#454749"/><path d="m46.7 10.5c-4.1-1.8-10.3-8.5-14.7-8.5s-10.6 6.7-14.7 8.5c-3.3 1.4-9.5 1.9-12 4.5-2.7 2.8-.3 7.9-.3 7.9s.3 2.3 27 2.3c26.7 0 27-2.3 27-2.3s2.4-5-.3-7.8c-2.5-2.7-8.7-3.2-12-4.6" fill="#428bc1"/><path d="m29.3 10.3c1.6-.7 2.7-3.4 2.7-3.4s1.1 2.8 2.7 3.4c1.3.6 4.4-2.1 4.4-2.1s-.3 6.7-.8 8.1c-1.5 3.7-6.3 5.8-6.3 5.8s-4.8-2.1-6.3-5.8c-.6-1.4-.8-8.1-.8-8.1s3.1 2.7 4.4 2.1" fill="#fbbf67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fd.svg
index 1bcb032..fe8b6f4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32.05 17.225c-16.846 0-28.843.49-28.843 10.03 0 .844.822 14.158.822 14.158h55.954l.822-14.158c.001-7.457-10.255-10.03-28.755-10.03"/><path fill="#d6a57c" d="m5.468 37.619c2.902-2.492-.098-7.441 3.758-14.525 4.562 4.385 13.745 10.309 29.786 9.777 0 0-1.115-.68-2.785-1.848 0 0 5.846.895 10.803-.846 0 0-.84-.455-2.172-1.287 4.912.303 8.881.084 10.844-.91 0 0-1.492 7.939 2.773 9.639 0 0 3.523-.471 3.523 3.838 0 5.186-3.623 4.311-3.623 4.311 0 7.744-7.752 16.23-26.91 16.23-18.15 0-26.01-6.938-26.01-16.23 0 0-3.451.875-3.451-4.311 0-4.107 3.467-3.838 3.467-3.838"/><path fill="#594640" d="m40.748 52.691c.164 0 .254-.9.254-1.277 0-2.57-4.03-4.789-9-4.789-4.971 0-9 2.283-9 4.855 0 .346.076 1.211.215 1.211h3.037l.6-1.439.539 1.439h13.355"/><path fill="#454749" d="m60.938 22.74c0 3.074-12.795 5.693-28.935 5.693-16.14 0-28.935-2.619-28.935-5.693 0 0-.291 2.277 28.935 2.277 29.23.001 28.935-2.277 28.935-2.277"/><path fill="#428bc1" d="m47.723 10.504c-4.379-1.766-11.01-8.506-15.75-8.506-4.742 0-11.371 6.74-15.75 8.506-3.512 1.416-10.177 1.91-12.864 4.527-2.871 2.797-.291 7.824-.291 7.824s.291 2.275 28.935 2.275c28.642 0 28.935-2.275 28.935-2.275s2.578-5.03-.293-7.824c-2.698-2.627-9.397-3.105-12.922-4.527"/><path fill="#fbbf67" d="m29.13 10.299c1.701-.688 2.869-3.438 2.869-3.438s1.166 2.75 2.869 3.438c1.441.582 4.73-2.07 4.73-2.07s-.285 6.711-.877 8.104c-1.545 3.629-6.722 5.758-6.722 5.758s-5.184-2.133-6.721-5.758c-.594-1.395-.877-8.104-.877-8.104s3.313 2.642 4.729 2.07"/><path fill="#f5f5f5" d="m12.635 36.902c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.294" cy="38.02" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.293" cy="38.02" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.494 38.38c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 36.902c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.146.5-7.508-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="38.02" rx="3.926" ry="3.889"/><path fill="#231f20" d="m44.959 38.02c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m51.51 38.38c1.045-6.75-14.1-6.391-14.1.798 2.188-5.72 12.625-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 17.3c-15.8 0-27 .5-27 10 0 .8.8 14 .8 14h52.5l.8-14c-.1-7.4-9.7-10-27.1-10" fill="#594640"/><path d="m56 37c-4-1.7-1.9-9-1.9-9-1.8 1-5.5 1.2-10.1.9 1.2.8 2 1.3 2 1.3-4.6 1.7-10.1.8-10.1.8 1.6 1.2 2.6 1.8 2.6 1.8-15 .5-23.5-5.4-27.8-9.8-3.6 7.2 0 11.5-2.7 14 0 0-4 0-4 5 0 5 4 5 4 5 0 8 18 15 24 15s24-7 24-15c0 0 4 0 4-5s-4-5-4-5" fill="#d6a57c"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="m59 22.7c0 3.1-11.9 5.7-27 5.7-15.1 0-27-2.6-27-5.7 0 0-.3 2.3 27 2.3 27.3 0 27-2.3 27-2.3" fill="#454749"/><path d="m46.7 10.5c-4.1-1.8-10.3-8.5-14.7-8.5s-10.6 6.7-14.7 8.5c-3.3 1.4-9.5 1.9-12 4.5-2.7 2.8-.3 7.9-.3 7.9s.3 2.3 27 2.3c26.7 0 27-2.3 27-2.3s2.4-5-.3-7.8c-2.5-2.7-8.7-3.2-12-4.6" fill="#428bc1"/><path d="m29.3 10.3c1.6-.7 2.7-3.4 2.7-3.4s1.1 2.8 2.7 3.4c1.3.6 4.4-2.1 4.4-2.1s-.3 6.7-.8 8.1c-1.5 3.7-6.3 5.8-6.3 5.8s-4.8-2.1-6.3-5.8c-.6-1.4-.8-8.1-.8-8.1s3.1 2.7 4.4 2.1" fill="#fbbf67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fe.svg
index d6278c0..d880766 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.04 17.225c-16.846 0-28.842.49-28.842 10.03 0 .844.822 14.158.822 14.158h55.954l.822-14.158c.001-7.457-10.256-10.03-28.756-10.03"/><path fill="#b47d56" d="m5.468 37.619c2.902-2.492-.098-7.441 3.758-14.525 4.561 4.385 13.744 10.309 29.785 9.777 0 0-1.115-.68-2.785-1.848 0 0 5.846.895 10.803-.846 0 0-.84-.455-2.172-1.287 4.912.303 8.882.084 10.845-.91 0 0-1.492 7.939 2.773 9.639 0 0 3.523-.471 3.523 3.838 0 5.186-3.623 4.311-3.623 4.311 0 7.744-7.753 16.23-26.911 16.23-18.15 0-26.01-6.938-26.01-16.23 0 0-3.451.875-3.451-4.311 0-4.107 3.467-3.838 3.467-3.838"/><path fill="#231f20" d="m40.747 52.691c.164 0 .254-.9.254-1.277 0-2.57-4.03-4.789-9-4.789s-9 2.283-9 4.855c0 .346.076 1.211.215 1.211h3.037l.6-1.439.539 1.439h13.355"/><path fill="#454749" d="m60.938 22.74c0 3.074-12.796 5.693-28.937 5.693s-28.934-2.619-28.934-5.693c0 0-.291 2.277 28.934 2.277 29.23.001 28.937-2.277 28.937-2.277"/><path fill="#428bc1" d="m47.722 10.504c-4.379-1.766-11.01-8.506-15.75-8.506s-11.371 6.74-15.75 8.506c-3.512 1.416-10.176 1.91-12.863 4.527-2.871 2.797-.291 7.824-.291 7.824s.291 2.275 28.934 2.275c28.644 0 28.937-2.275 28.937-2.275s2.578-5.03-.293-7.824c-2.699-2.627-9.399-3.105-12.924-4.527"/><path fill="#fbbf67" d="m29.13 10.299c1.701-.688 2.869-3.438 2.869-3.438s1.166 2.75 2.869 3.438c1.441.582 4.73-2.07 4.73-2.07s-.285 6.711-.877 8.104c-1.545 3.629-6.723 5.758-6.723 5.758s-5.184-2.133-6.721-5.758c-.594-1.395-.877-8.104-.877-8.104s3.314 2.642 4.73 2.07"/><path fill="#f5f5f5" d="m12.634 36.902c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.293" cy="38.02" rx="3.925" ry="3.889"/><path fill="#231f20" d="m21.543 38.02c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#574137" d="m12.493 38.38c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 36.902c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.708" cy="38.02" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="38.02" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 38.38c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 17.3c-15.8 0-27 .5-27 10 0 .8.8 14 .8 14h52.5l.8-14c-.1-7.4-9.7-10-27.1-10" fill="#231f20"/><path d="m56 37c-4-1.7-1.9-9-1.9-9-1.8 1-5.5 1.2-10.1.9 1.2.8 2 1.3 2 1.3-4.6 1.7-10.1.8-10.1.8 1.6 1.2 2.6 1.8 2.6 1.8-15 .5-23.5-5.4-27.8-9.8-3.6 7.2 0 11.5-2.7 14 0 0-4 0-4 5 0 5 4 5 4 5 0 8 18 15 24 15s24-7 24-15c0 0 4 0 4-5s-4-5-4-5" fill="#b47d56"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="m59 22.7c0 3.1-11.9 5.7-27 5.7-15.1 0-27-2.6-27-5.7 0 0-.3 2.3 27 2.3 27.3 0 27-2.3 27-2.3" fill="#454749"/><path d="m46.7 10.5c-4.1-1.8-10.3-8.5-14.7-8.5s-10.6 6.7-14.7 8.5c-3.3 1.4-9.5 1.9-12 4.5-2.7 2.8-.3 7.9-.3 7.9s.3 2.3 27 2.3c26.7 0 27-2.3 27-2.3s2.4-5-.3-7.8c-2.5-2.7-8.7-3.2-12-4.6" fill="#428bc1"/><path d="m29.3 10.3c1.6-.7 2.7-3.4 2.7-3.4s1.1 2.8 2.7 3.4c1.3.6 4.4-2.1 4.4-2.1s-.3 6.7-.8 8.1c-1.5 3.7-6.3 5.8-6.3 5.8s-4.8-2.1-6.3-5.8c-.6-1.4-.8-8.1-.8-8.1s3.1 2.7 4.4 2.1" fill="#fbbf67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3ff.svg
index 6898be0..9ec2135 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46e-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.04 17.225c-16.846 0-28.843.49-28.843 10.03 0 .844.822 14.158.822 14.158h55.955l.822-14.158c.001-7.457-10.255-10.03-28.756-10.03"/><path fill="#8a6859" d="m5.467 37.619c2.902-2.492-.098-7.441 3.758-14.525 4.562 4.385 13.745 10.309 29.787 9.777 0 0-1.115-.68-2.785-1.848 0 0 5.846.895 10.803-.846 0 0-.84-.455-2.172-1.287 4.912.303 8.881.084 10.844-.91 0 0-1.492 7.939 2.773 9.639 0 0 3.523-.471 3.523 3.838 0 5.186-3.623 4.311-3.623 4.311 0 7.744-7.752 16.23-26.911 16.23-18.15 0-26.01-6.938-26.01-16.23 0 0-3.451.875-3.451-4.311 0-4.107 3.467-3.838 3.467-3.838"/><path fill="#231f20" d="m40.748 52.691c.164 0 .254-.9.254-1.277 0-2.57-4.03-4.789-9-4.789-4.971 0-9 2.283-9 4.855 0 .346.076 1.211.215 1.211h3.037l.6-1.439.539 1.439h13.355"/><path fill="#454749" d="m60.938 22.74c0 3.074-12.795 5.693-28.936 5.693-16.14 0-28.935-2.619-28.935-5.693 0 0-.291 2.277 28.935 2.277 29.23.001 28.936-2.277 28.936-2.277"/><path fill="#428bc1" d="m47.723 10.504c-4.379-1.766-11.01-8.506-15.75-8.506-4.742 0-11.371 6.74-15.75 8.506-3.512 1.416-10.177 1.91-12.864 4.527-2.871 2.797-.291 7.824-.291 7.824s.291 2.275 28.935 2.275c28.643 0 28.936-2.275 28.936-2.275s2.578-5.03-.293-7.824c-2.699-2.627-9.398-3.105-12.923-4.527"/><path fill="#fbbf67" d="m29.13 10.299c1.701-.688 2.869-3.438 2.869-3.438s1.167 2.75 2.87 3.438c1.441.582 4.73-2.07 4.73-2.07s-.285 6.711-.877 8.104c-1.545 3.629-6.723 5.758-6.723 5.758s-5.184-2.133-6.721-5.758c-.594-1.395-.877-8.104-.877-8.104s3.313 2.642 4.729 2.07"/><path fill="#f5f5f5" d="m12.634 36.902c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.293" cy="38.02" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.543 38.02c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.688 0 1.25.552 1.25 1.237"/><path fill="#574137" d="m12.493 38.38c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 36.902c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.708" cy="38.02" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.957 38.02c0 .685-.561 1.238-1.248 1.238-.691 0-1.252-.554-1.252-1.238 0-.686.561-1.237 1.252-1.237.687 0 1.248.552 1.248 1.237"/><path fill="#574137" d="m51.51 38.38c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 17.3c-15.8 0-27 .5-27 10 0 .8.8 14 .8 14h52.5l.8-14c-.1-7.4-9.7-10-27.1-10" fill="#231f20"/><path d="m56 37c-4-1.7-1.9-9-1.9-9-1.8 1-5.5 1.2-10.1.9 1.2.8 2 1.3 2 1.3-4.6 1.7-10.1.8-10.1.8 1.6 1.2 2.6 1.8 2.6 1.8-15 .5-23.5-5.4-27.8-9.8-3.6 7.2 0 11.5-2.7 14 0 0-4 0-4 5 0 5 4 5 4 5 0 8 18 15 24 15s24-7 24-15c0 0 4 0 4-5s-4-5-4-5" fill="#8a6859"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#574137"/><path d="m59 22.7c0 3.1-11.9 5.7-27 5.7-15.1 0-27-2.6-27-5.7 0 0-.3 2.3 27 2.3 27.3 0 27-2.3 27-2.3" fill="#454749"/><path d="m46.7 10.5c-4.1-1.8-10.3-8.5-14.7-8.5s-10.6 6.7-14.7 8.5c-3.3 1.4-9.5 1.9-12 4.5-2.7 2.8-.3 7.9-.3 7.9s.3 2.3 27 2.3c26.7 0 27-2.3 27-2.3s2.4-5-.3-7.8c-2.5-2.7-8.7-3.2-12-4.6" fill="#428bc1"/><path d="m29.3 10.3c1.6-.7 2.7-3.4 2.7-3.4s1.1 2.8 2.7 3.4c1.3.6 4.4-2.1 4.4-2.1s-.3 6.7-.8 8.1c-1.5 3.7-6.3 5.8-6.3 5.8s-4.8-2.1-6.3-5.8c-.6-1.4-.8-8.1-.8-8.1s3.1 2.7 4.4 2.1" fill="#fbbf67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46e.svg
index 245725f..3631cdd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.05 17.225c-16.846 0-28.843.49-28.843 10.03 0 .844.822 14.158.822 14.158h55.954l.822-14.158c.001-7.457-10.255-10.03-28.755-10.03"/><path fill="#ffdd67" d="m5.469 37.619c2.902-2.492-.098-7.441 3.758-14.525 4.562 4.385 13.745 10.309 29.786 9.777 0 0-1.115-.68-2.785-1.848 0 0 5.846.895 10.803-.846 0 0-.84-.455-2.172-1.287 4.912.303 8.881.084 10.844-.91 0 0-1.492 7.939 2.773 9.639 0 0 3.523-.471 3.523 3.838 0 5.186-3.623 4.311-3.623 4.311 0 7.744-7.752 16.23-26.91 16.23-18.15 0-26.01-6.938-26.01-16.23 0 0-3.451.875-3.451-4.311 0-4.107 3.467-3.838 3.467-3.838"/><path fill="#231f20" d="m40.749 52.691c.164 0 .254-.9.254-1.277 0-2.57-4.03-4.789-9-4.789-4.971 0-9 2.283-9 4.855 0 .346.076 1.211.215 1.211h3.037l.6-1.439.539 1.439h13.355"/><path fill="#454749" d="m60.938 22.74c0 3.074-12.795 5.693-28.935 5.693-16.14 0-28.935-2.619-28.935-5.693 0 0-.291 2.277 28.935 2.277 29.23.001 28.935-2.277 28.935-2.277"/><path fill="#428bc1" d="m47.724 10.504c-4.379-1.766-11.01-8.506-15.75-8.506-4.742 0-11.371 6.74-15.75 8.506-3.512 1.416-10.177 1.91-12.864 4.527-2.871 2.797-.291 7.824-.291 7.824s.291 2.275 28.935 2.275c28.642 0 28.935-2.275 28.935-2.275s2.578-5.03-.293-7.824c-2.698-2.627-9.397-3.105-12.922-4.527"/><path fill="#fbbf67" d="m29.13 10.299c1.701-.688 2.869-3.438 2.869-3.438s1.166 2.75 2.869 3.438c1.441.582 4.73-2.07 4.73-2.07s-.285 6.711-.877 8.104c-1.545 3.629-6.722 5.758-6.722 5.758s-5.184-2.133-6.721-5.758c-.594-1.395-.877-8.104-.877-8.104s3.313 2.642 4.729 2.07"/><path fill="#f5f5f5" d="m12.636 36.902c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.295" cy="38.02" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.294" cy="38.02" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.495 38.38c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 36.902c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="38.02" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.959 38.02c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#664e27" d="m51.51 38.38c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 17.3c-15.8 0-27 .5-27 10 0 .8.8 14 .8 14h52.5l.8-14c-.1-7.4-9.7-10-27.1-10" fill="#ffbc00"/><path d="m56 37c-4-1.7-1.9-7.9-1.9-7.9-1.8 1-5.5 1.2-10.1.9 1.2.8 2 1.3 2 1.3-4.6 1.7-10.1.8-10.1.8 1.6 1.2 2.6 1.8 2.6 1.8-15 .5-23.5-5.4-27.8-9.8-3.6 7.2 0 10.4-2.7 12.9 0 0-4 0-4 5 0 5 4 5 4 5 0 8 18 15 24 15s24-7 24-15c0 0 4 0 4-5s-4-5-4-5" fill="#ffdd67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#937237"/><path d="m59 23.2c0 3.2-11.9 7-27 7-15.1 0-27-3.8-27-7h54" fill="#454749"/><path d="m46.7 10.7c-4.1-1.8-10.3-8.7-14.7-8.7-4.4 0-10.6 6.9-14.7 8.7-3.3 1.5-9.5 2-12 4.6-2.7 2.9-.3 8-.3 8s.3 2.7 27 2.7c26.7 0 27-2.6 27-2.6s2.4-5.2-.3-8c-2.5-2.7-8.7-3.2-12-4.7" fill="#428bc1"/><path d="m29.4 10.6c1.5-.7 2.6-3.6 2.6-3.6s1.1 2.9 2.6 3.6c1.4.6 4.4-2.2 4.4-2.2s-.3 7.1-.8 8.5c-1.4 3.8-6.2 6-6.2 6s-4.8-2.2-6.2-6c-.5-1.4-.8-8.5-.8-8.5s3.1 2.8 4.4 2.2" fill="#fbbf67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f46f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f46f.svg
index 6314f14..32985cc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f46f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f46f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 17.973c-13.584 0-21 8.465-21 19.616v24.41h42v-24.41c0-16.575-11.369-16.264-11.369-16.264s-.856-3.352-9.631-3.352"/><path fill="#eba352" d="m25.319 58.938h13.363v3.061h-13.363z"/><path fill="#ffdd67" d="m16.549 46.935c0 0-3.113-.781-3.113-5.307 0-3.584 2.348-4.199 2.348-4.199 8.41 0 27.785-5.924 27.785-5.924s3.502 1.797 4.51 5.924c0 0 2.422.439 2.422 4.199 0 4.525-3.232 5.307-3.232 5.307-.043 6.828-9.537 15.06-15.298 15.06-5.767 0-15.422-8.236-15.422-15.06"/><path fill="#eba352" d="m35.828 50.05c0 1.488-3.14 1.92-3.859 1.92-.723 0-3.863-.527-3.863-2.02 0 0 7.722-.646 7.722.096"/><path fill="#f5f5f5" d="m26.709 44.11c.908 0 .787-2.303.787-2.303-2.787-6.117-8.992-2.246-8.992-2.246-2.412 1.059 1.082 4.402 1.641 4.549 2.629.7 6.564 0 6.564 0"/><ellipse fill="#0a84a5" cx="23.08" cy="41.31" rx="2.968" ry="2.916"/><g fill="#231f20"><ellipse cx="23.07" cy="41.31" rx="1" ry=".984"/><path d="m28.28 42.685c-.758-.908-1.51-1.785-2.383-2.451-.871-.662-1.85-1.082-2.906-1.146-1.057-.1-2.164.121-3.313.334-.574.109-1.168.217-1.785.252-.6.023-1.322-.043-1.75-.496.564.221 1.121.104 1.66-.057.541-.152 1.078-.371 1.643-.557 1.111-.389 2.338-.707 3.641-.609.645.063 1.291.221 1.879.504.58.295 1.107.67 1.537 1.121.871.892 1.439 1.976 1.777 3.105"/></g><path fill="#f5f5f5" d="m37.23 44.11c-.91 0-.789-2.303-.789-2.303 2.787-6.117 8.992-2.246 8.992-2.246 2.412 1.059-1.08 4.402-1.641 4.549-2.625.7-6.562 0-6.562 0"/><path fill="#0a84a5" d="m43.828 41.31c0 1.611-1.328 2.916-2.969 2.916-1.637 0-2.969-1.305-2.969-2.916s1.332-2.916 2.969-2.916c1.641 0 2.969 1.304 2.969 2.916"/><g fill="#231f20"><ellipse cx="40.859" cy="41.31" rx="1" ry=".982"/><path d="m35.66 42.685c.338-1.129.902-2.213 1.775-3.105.432-.451.957-.826 1.537-1.121.588-.283 1.236-.441 1.879-.504 1.301-.098 2.529.221 3.639.609.566.186 1.104.404 1.645.557.537.16 1.098.277 1.662.057-.43.453-1.15.52-1.752.496-.617-.035-1.211-.143-1.787-.252-1.145-.213-2.254-.434-3.311-.334-1.055.066-2.035.484-2.904 1.146-.875.665-1.625 1.542-2.383 2.451"/></g><path fill="#ff7381" d="m34.707 53.7c-.559-.135-1.377-.07-2.457.285-.094.029-.189.059-.281.09-.096-.031-.188-.061-.285-.09-1.08-.355-1.896-.42-2.457-.285-1.674.402-4.207.205-4.207.205 1.844 1.809 2.719 4.279 6.949 4.279 4.228 0 5.103-2.471 6.943-4.279 0 0-2.535.198-4.205-.205"/><path fill="#ff5760" d="m34.707 53.7c-.559-.135-1.377-.07-2.457.285-.094.029-.189.059-.281.09-.096-.031-.188-.061-.285-.09-1.08-.355-1.896-.42-2.457-.285-1.643.393-4.215.205-4.207.205 2.779.492 3.127 1.887 6.949 1.887 3.818 0 4.166-1.395 6.943-1.887.014 0-2.564.188-4.205-.205"/><g fill="#752744"><path d="m40.85 28.06c.441-1.791 1.842-5.574 6.291-12.439 2.57-3.965-.146-13.09-1.664-13.611-.928-.334-8.766 5.77-9.01 10.848-.316 6.82-.736 11.416-.967 13.637-.248 1.944 4.758 2.752 5.346 1.565"/><path d="m23.16 28.06c-.445-1.791-1.848-5.574-6.293-12.439-2.568-3.965.148-13.09 1.66-13.611.932-.334 8.771 5.77 9.01 10.848.32 6.82.736 11.416.967 13.637.248 1.944-4.756 2.752-5.344 1.565"/></g><g fill="#e84d88"><path d="m44.539 6.622c-.867-.297-4.385 2.25-5.088 5.969-1.666 8.869-2.246 13.678-2.246 13.678l3.254.82c0 0-.021-2.863 4.852-13.02 1.279-2.673.632-6.958-.772-7.444"/><path d="m19.825 6.622c.871-.297 4.389 2.25 5.092 5.969 1.67 8.869 2.246 13.678 2.246 13.678l-3.25.82c0 0 .014-2.863-4.855-13.02-1.278-2.673-.634-6.958.767-7.444"/></g><path fill="#752744" d="m32.18 28.706c5.318 0 10.259 1.018 14.433 2.746-2.18-3.816-7.809-6.543-14.433-6.543-6.623 0-12.256 2.727-14.434 6.543 4.172-1.729 9.118-2.746 14.434-2.746"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.9 21c0 1.3 0 10.2 0 10.2h-17.4c0 0 0-9 0-10.2 0-11.3 17.4-11.3 17.4 0" fill="#ffb300"/><g fill="#ffdd67"><path d="m47.4 23.3c0-2.3-1.8-1.1-1.8-1.1.1-3.2-1.5-3.5-1.5-3.5-7.4 0-11.2 3.5-11.2 3.5s-1.9-1.2-1.9 1.1c0 .9.4 1.6 1.5 1.7.5 3.5 3 4.3 6.6 4.3 3.6 0 6.1-.7 6.6-4.3 1.3-.1 1.7-.8 1.7-1.7"/><path d="m32.2 35.7l3.8-3.6c1.7-1.4-.6-3.3-2.2-1.8-5.7 5.3-5.8 4.7-4.6 5.8l7 7.1v-2.5l-4-5"/></g><path d="m36.2 32.1c1.9-1.6-.7-3.6-2.4-1.9-1 .9-1.9 1.7-2.7 2.4l2.3 2.1 2.8-2.6" fill="#594640"/><path d="m45.9 35.5l-3.5-3.3c-1.7-1.4.6-3.3 2.2-1.8 5.7 5.3 5.4 5.3 4.2 6.4l-8.5 5.1-.5-1.5 6.1-4.9" fill="#ffdd67"/><path d="m42.2 32.1c-1.8-1.6.7-3.6 2.4-1.9 1 .9 1.9 1.7 2.7 2.4l-2.3 2.2-2.8-2.7" fill="#594640"/><path fill="#ffdd67" d="m37.3 27.5h3.9v4h-3.9z"/><g fill="#594640"><path d="m43.1 29.6h-1.9c0 .8-.3 1.5-2 1.5-1.6 0-2-.7-2-1.5h-2c-1.3 1-2.4 9.1-.9 13.6 1.3 3.7 6.1 3.4 7.9 2.7l2.6-2.9c.4-2.7-2.6-4.1-2.6-4.1-.5-2.6 2.2-8.3.9-9.3"/><path d="m57.5 52.8c3 1.9 1.3 4.2-3.1 2.2-3.7-1.7-.6-5 .8-3.8 1 1 1.7 1.2 2.3 1.6"/></g><path d="m55.2 52.2c-3.4-2.8-2.7-4.5-6.3-5.1-2.9-5.1-5.5-6.8-5.5-6.8-2.1 2.8-1.6 5.1-1.6 5.1s3.1 4.4 5.6 5.5c3.1 1.3 6.3 3.3 6.3 3.3 1.4 1.1 3-.7 1.5-2" fill="#ffdd67"/><path d="m41.2 59.6c.1 3.8-5.6 2.2-3.5.6.3-.3.3-.9.1-1.3-1.3-3.6 3.1-3.9 3.1-2.2.1 1.4.3 2.3.3 2.9" fill="#594640"/><path d="m40.3 57.5c-.3-4.2 1.4-5-.5-7.8 1-2.5 0-3.4 0-3.4-2.8.3-5.1-2.4-5.1-2.4s.6 5.1 1.5 7.5c1.1 3 1.8 6.5 1.8 6.5.1 1.7 2.4 1.5 2.3-.4" fill="#ffdd67"/><path d="m43.5 16.6c.2-1 .9-3.1 3.1-7 1.2-2.2-.1-7.3-.8-7.6-.4-.2-4.2 3.2-4.4 6.1-.2 3.8-.4 6.4-.5 7.6-.1 1.1 2.3 1.6 2.6.9" fill="#594640"/><path d="m44.9 5.3c-.4-.2-2 1.2-2.3 3.2-.8 4.8-1 7.4-1 7.4l1.5.4c0 0 0-1.6 2.2-7.1.5-1.3.2-3.6-.4-3.9" fill="#e84d88"/><path d="m34.9 16.6c-.2-1-.9-3.1-3-7-1.2-2.2.1-7.3.8-7.6.5-.2 4.3 3.2 4.4 6.1.2 3.8.4 6.4.5 7.6 0 1.1-2.4 1.6-2.7.9" fill="#594640"/><path d="m33.5 5.3c.4-.2 2 1.2 2.3 3.2.8 4.8 1 7.4 1 7.4l-1.5.4c0 0 0-1.6-2.2-7.1-.6-1.3-.3-3.6.4-3.9" fill="#e84d88"/><path d="m39.3 17c2.6 0 5 .5 7 1.3-1.1-1.9-3.8-3.2-7-3.2s-5.9 1.3-7 3.2c2-.8 4.4-1.3 7-1.3" fill="#594640"/><path d="m24.3 21c0 1.3 0 10.2 0 10.2h-17.4c0 0 0-9 0-10.2 0-11.3 17.4-11.3 17.4 0" fill="#ffb300"/><g fill="#ffdd67"><path d="m23.8 23.3c0-2.3-1.8-1.1-1.8-1.1.1-3.2-1.5-3.5-1.5-3.5-7.4 0-11.2 3.5-11.2 3.5s-1.9-1.2-1.9 1.1c0 .9.4 1.6 1.5 1.7.5 3.5 3 4.3 6.6 4.3 3.6 0 6.1-.7 6.6-4.3 1.3-.1 1.7-.8 1.7-1.7"/><path d="m8.7 35.7l3.8-3.6c1.7-1.4-.6-3.3-2.2-1.8-5.7 5.3-5.8 4.7-4.6 5.8l7 7.1v-2.5l-4-5"/></g><path d="m12.6 32.1c1.9-1.6-.7-3.6-2.4-1.9-1 .9-1.9 1.7-2.7 2.4l2.3 2.1 2.8-2.6" fill="#594640"/><path d="m22.3 35.5l-3.5-3.3c-1.7-1.4.6-3.3 2.2-1.8 5.7 5.3 5.4 5.3 4.2 6.4l-8.5 5.1-.5-1.5 6.1-4.9" fill="#ffdd67"/><path d="m18.6 32.1c-1.9-1.6.7-3.6 2.4-1.9 1 .9 1.9 1.7 2.7 2.4l-2.3 2.1-2.8-2.6" fill="#594640"/><path fill="#ffdd67" d="m13.7 27.5h3.9v4h-3.9z"/><g fill="#594640"><path d="m19.5 29.6h-1.9c0 .8-.3 1.5-2 1.5-1.6 0-2-.7-2-1.5h-2c-1.3 1-2.4 9.1-.9 13.6 1.3 3.7 6.1 3.4 7.9 2.7l2.6-2.9c.4-2.7-2.6-4.1-2.6-4.1-.5-2.6 2.3-8.3.9-9.3"/><path d="m33.9 52.8c3 1.9 1.3 4.2-3.1 2.2-3.7-1.7-.6-5 .8-3.8 1.1 1 1.7 1.2 2.3 1.6"/></g><path d="m31.6 52.2c-3.4-2.8-2.7-4.5-6.3-5.1-2.9-5.1-5.5-6.8-5.5-6.8-2.1 2.8-1.6 5.1-1.6 5.1s3.1 4.4 5.6 5.5c3.1 1.3 6.3 3.3 6.3 3.3 1.4 1.1 3.1-.7 1.5-2" fill="#ffdd67"/><path d="m17.7 59.6c.1 3.8-5.6 2.2-3.5.6.3-.3.3-.9.1-1.3-1.3-3.6 3.1-3.9 3.1-2.2.1 1.4.2 2.3.3 2.9" fill="#594640"/><path d="m16.8 57.5c-.3-4.2 1.4-5-.5-7.8 1-2.5 0-3.4 0-3.4-2.8.3-5.1-2.4-5.1-2.4s.6 5.1 1.5 7.5c1.1 3 1.8 6.5 1.8 6.5.1 1.7 2.4 1.5 2.3-.4" fill="#ffdd67"/><path d="m19.9 16.6c.2-1 .9-3.1 3.1-7 1.2-2.2-.1-7.3-.8-7.6-.5-.2-4.2 3.2-4.4 6.1-.2 3.8-.4 6.4-.5 7.6-.1 1.1 2.3 1.6 2.6.9" fill="#594640"/><path d="m21.3 5.3c-.4-.2-2 1.2-2.3 3.2-.8 4.8-1 7.4-1 7.4l1.5.4c0 0 0-1.6 2.2-7.1.6-1.3.3-3.6-.4-3.9" fill="#e84d88"/><path d="m11.3 16.6c-.2-1-.9-3.1-3.1-7-1.2-2.2.2-7.3.9-7.6.5-.2 4.2 3.2 4.4 6.1.2 3.8.4 6.4.5 7.6 0 1.1-2.4 1.6-2.7.9" fill="#594640"/><path d="m9.9 5.3c.4-.2 2 1.2 2.3 3.2.8 4.8 1 7.4 1 7.4l-1.5.4c0 0 0-1.6-2.2-7.1-.5-1.3-.2-3.6.4-3.9" fill="#e84d88"/><path d="m15.7 17c2.6 0 5 .5 7 1.3-1.1-1.9-3.8-3.2-7-3.2s-5.9 1.3-7 3.2c2-.8 4.4-1.3 7-1.3" fill="#594640"/><g fill="#937237"><circle cx="12.6" cy="22.2" r="1.2"/><circle cx="18.6" cy="22.2" r="1.2"/><path d="m17.6 25.9c-1.3 1-2.7 1-3.9 0-.2-.1-.3.1-.2.3.4.7 1.2 1.3 2.2 1.3s1.8-.6 2.2-1.3c0-.2-.2-.4-.3-.3"/><circle cx="36.2" cy="22.2" r="1.2"/><circle cx="42.2" cy="22.2" r="1.2"/><path d="m41.2 25.9c-1.3 1-2.7 1-3.9 0-.2-.1-.3.1-.2.3.4.7 1.2 1.3 2.2 1.3s1.8-.6 2.2-1.3c-.1-.2-.2-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fb.svg
index fae5ae7..cb221ee 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cedbd5" d="m50 10.777c-7.05-5.533-28.955-5.533-36 0-10.412 8.18-12 51.22-12 51.22h59.998c0 0-1.59-43.04-11.998-51.22"/><path fill="#594640" d="m54.31 38.982c.297-.686.465-1.445.465-2.248 0-1.488-.566-2.834-1.482-3.818 1.393-.977 2.311-2.645 2.311-4.539 0-1.988-1.016-3.723-2.529-4.676.57-.875.904-1.934.904-3.074 0-.176-.002-.352-.006-.527l-1.381-3.67.285-2.688c-2.3-6.58-8.459-11.744-20.873-11.744-12.402 0-18.563 5.154-20.868 11.725l.275 2.708-1.379 3.703c-.003.165-.005.329-.005.494 0 1.141.336 2.199.904 3.074-1.514.952-2.53 2.687-2.53 4.675 0 1.895.92 3.563 2.313 4.539-.916.984-1.484 2.33-1.484 3.818 0 .803.168 1.563.464 2.248-2.048.729-2.69 2.764-2.69 5.164 0 10.123 10.959 5.67 10.959 5.67h28.08c0 0 10.959 4.453 10.959-5.67-.001-2.4-.646-4.435-2.694-5.164"/><g fill="#f2f1f0"><path d="m54.26 61.998c0-14.73-1.438-15.533-22.259-15.533-20.815 0-22.257.803-22.257 15.533h44.516"/><path d="m32 6.629c-7.84 0-15.07 2.652-20.871 7.105-.709 2.023-1.049 4.182-1.096 6.365 5.551-5.814 13.344-9.443 21.967-9.443s16.413 3.629 21.964 9.443c-.047-2.184-.387-4.342-1.094-6.365-5.799-4.453-13.03-7.105-20.87-7.105"/></g><path fill="#ffe1bd" d="m15.898 35.17c0 0-3.251-.832-3.251-5.645 0-3.811 2.45-4.465 2.45-4.465 8.786 0 23.1-9.482 23.1-9.482s5.411 8.146 10.634 9.482c0 0 2.525.467 2.525 4.465 0 4.813-3.373 5.645-3.373 5.645-.045 7.26-9.96 16.02-15.98 16.02-6.02 0-16.1-8.758-16.1-16.02"/><path fill="#e6b796" d="m36.03 38.484c0 1.582-3.28 2.041-4.03 2.041s-4.03-.561-4.03-2.145c0 .001 8.07-.685 8.07.104"/><path fill="#f5f5f5" d="m26.51 32.16c.947 0 .821-2.449.821-2.449-2.908-6.502-9.389-2.389-9.389-2.389-2.52 1.127 1.129 4.684 1.714 4.838 2.744.744 6.854 0 6.854 0"/><circle fill="#664e27" cx="22.713" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="22.715" cy="29.19" r="1"/><path d="m28.15 30.648c-.846-.938-1.652-1.842-2.563-2.521-.915-.674-1.901-1.08-2.974-1.159-1.071-.094-2.211.116-3.416.32-.602.107-1.228.208-1.883.229-.635.009-1.41-.089-1.84-.599.607.205 1.167.057 1.723-.128.557-.179 1.111-.425 1.697-.633 1.154-.433 2.453-.798 3.844-.684 1.391.095 2.744.796 3.631 1.789.91.982 1.483 2.16 1.781 3.386"/></g><path fill="#f5f5f5" d="m37.493 32.16c-.946 0-.821-2.449-.821-2.449 2.909-6.502 9.391-2.389 9.391-2.389 2.518 1.127-1.131 4.684-1.715 4.838-2.744.744-6.855 0-6.855 0"/><circle fill="#664e27" cx="41.29" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="41.29" cy="29.19" r="1"/><path d="m35.857 30.648c.299-1.227.871-2.405 1.781-3.385.887-.992 2.24-1.694 3.631-1.789 1.391-.114 2.689.251 3.844.684.586.208 1.141.454 1.697.633.556.185 1.115.333 1.723.128-.43.51-1.205.607-1.84.599-.655-.021-1.281-.122-1.883-.229-1.205-.205-2.345-.414-3.416-.32-1.072.079-2.059.484-2.974 1.159-.91.679-1.717 1.582-2.563 2.52"/></g><path fill="#f085a9" d="m34.864 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.746.424-4.393.217-4.393.217 1.924 1.922 2.839 4.549 7.256 4.549s5.332-2.627 7.256-4.549c0 0-2.647.207-4.394-.217"/><path fill="#d46c8f" d="m34.864 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.714.416-4.404.215-4.393.217 2.903.521 3.266 2.01 7.256 2.01s4.353-1.484 7.256-2.01c.011-.002-2.679.199-4.394-.217"/><path fill="#428bc1" d="m39.854 61.998h-16.604l-2.18-2.978h20.1z"/><path fill="#224863" d="m41.17 59.02c0 .44-4.498.796-10.05.796-5.546 0-10.05-.355-10.05-.796 0-.439 4.499-.796 10.05-.796 5.551.001 10.05.357 10.05.796"/><path fill="#871212" d="m25.631 54.28l-1.986-2.2-1.585 2.45z"/><path fill="#991d1d" d="m22.954 54.894l2.076-2.922 2.328 1.448z"/><path fill="#ad2727" d="m22.11 53l-.301 1.729 4.603.25z"/><path fill="#cc3636" d="m25.398 54.968c2.901 1.362 2.597 3.185 1.123 3.907-1.473.722-3.78.091-4.176-1.771-.397-1.873-1.685-2.993-1.685-2.993s2.522-.184 4.738.857"/><path fill="#e24b4b" d="m23.665 55.6c-1.04 3.066 1.489 3.939 2.962 3.219 1.473-.723 1.992-2.686 1.158-4.385-.834-1.701-1.553-2.544-1.553-2.544s-1.826 1.527-2.567 3.71"/><path fill="#75a843" d="m26.32 58.08c2.262-1.146 1.701.231.229.953-3.623 1.776-5.01-1.465-5.01-1.465s2.778 1.53 4.785.512"/><path fill="#83bf4f" d="m26.32 58.08c-.489.549-1.907 1.682-.328 1.262 3.121-.828 2.523-5.057 2.523-5.057s-.742 2.164-2.195 3.795"/><path fill="#871212" d="m35.893 52.82l4.217 2.53-.09-3.412z"/><path fill="#991d1d" d="m39.77 57.27l-2.784-4.02h4.709z"/><path fill="#ad2727" d="m40.739 55.755l-2.619-4.575-2.174 1.84z"/><path fill="#cc3636" d="m38.602 55.52l-4.472-.26 1.99-4.631z"/><path fill="#e24b4b" d="m36.83 54.38c-3.499 1.165-2.553 4.064-.883 4.905 1.669.84 3.809-.041 4.779-1.969.971-1.926 2.082-2.847 2.082-2.847s-3.485-.92-5.978-.089"/><path fill="#83bf4f" d="m36.408 58.5c-.836-.066-2.84-.575-1.373.57 2.902 2.263 6.33-1.188 6.33-1.188s-2.475.814-4.957.618"/><path fill="#871212" d="m27.615 52.819l6.184-.279-2.994-2.717z"/><path fill="#991d1d" d="m34.982 51.764l-5.984 1.666 3.66-3.3z"/><path fill="#ad2727" d="m33.02 53.12l-4.533-2.57-.616 3.332z"/><path fill="#cc3636" d="m32.19 54.19v5.497c-2.168.48-4.771-1.085-4.697-3.66.074-2.59-1.262-4.474-1.262-4.474s3.373.559 5.959 2.637"/><path fill="#e24b4b" d="m29.708 54.47c-2.346 3.7.703 5.658 2.871 5.178s3.476-2.897 2.921-5.399c-.555-2.503-.223-4.185-.223-4.185s-3.898 1.769-5.569 4.406"/><path fill="#75a843" d="m32.41 58.58c3.342-.788 2.164.848-.003 1.327-5.333 1.183-6.128-3.524-6.128-3.524s3.166 2.896 6.131 2.197"/><path fill="#83bf4f" d="m32.41 58.58c-.818.566-3.045 1.604-.833 1.556 4.37-.097 4.933-5.849 4.933-5.849s-1.667 2.611-4.1 4.293"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M50,10.8c-7-5.5-29-5.5-36,0C3.6,19,2,62,2,62h60C62,62,60.4,19,50,10.8z" fill="#cedbd5"/><path d="m54.3 39c.3-.7.5-1.4.5-2.2 0-1.5-.6-2.8-1.5-3.8 1.4-1 2.3-2.6 2.3-4.5 0-2-1-3.7-2.5-4.7.6-.9.9-1.9.9-3.1 0-.2 0-.4 0-.5l-1.4-3.7.3-2.7c-2.3-6.6-8.5-11.8-20.9-11.8-12.4 0-18.6 5.2-20.9 11.7l.3 2.7-1.4 3.7c0 .2 0 .3 0 .5 0 1.1.3 2.2.9 3.1-1.5 1-2.5 2.7-2.5 4.7 0 1.9.9 3.6 2.3 4.5-.9 1-1.5 2.3-1.5 3.8 0 .8.2 1.6.5 2.2-2 .7-2.7 2.8-2.7 5.2 0 10.1 11 5.7 11 5.7h28c0 0 11 4.5 11-5.7 0-2.4-.6-4.4-2.7-5.1" fill="#594640"/><g fill="#f2f1f0"><path d="m54.3 62c0-14.7-1.4-15.5-22.3-15.5-20.8 0-22.3.8-22.3 15.5h44.6"/><path d="m32 6.6c-7.8 0-15.1 2.7-20.9 7.1-.7 2-1 4.2-1.1 6.4 5.6-5.8 13.3-9.4 22-9.4 8.6 0 16.4 3.6 22 9.4 0-2.2-.4-4.3-1.1-6.4-5.8-4.4-13.1-7.1-20.9-7.1"/></g><path d="m15.4 36.2c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#ffe1bd"/><path d="m32 41.1c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/><path d="m36.8 34.3c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="30.7" r="3.5" fill="#664e27"/><circle cx="41.2" cy="30.7" r="1.2" fill="#2b2925"/><path d="m35.8 32.9c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 34.3c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m19.3 30.7c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5 0-1.9-1.6-3.5-3.5-3.5-1.9 0-3.5 1.6-3.5 3.5" fill="#664e27"/><path d="m28.2 32.9c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.2 10.3-3.8 13.8 5" fill="#3b3226"/><path d="m32 44.9l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#f085a9"/><path d="m35 43.5c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0-.1-2.9.3-4.7-.3" fill="#d46c8f"/><circle cx="22.8" cy="30.7" r="1.2" fill="#2b2925"/><path fill="#428bc1" d="m39.9 62h-16.6l-2.2-3h20.1z"/><path d="m41.2 59c0 .4-4.5.8-10 .8-5.5 0-10-.4-10-.8 0-.4 4.5-.8 10-.8 5.5 0 10 .4 10 .8" fill="#224863"/><path fill="#871212" d="m25.6 54.3l-2-2.2-1.5 2.4z"/><path fill="#991d1d" d="m23 54.9l2-2.9 2.4 1.4z"/><path fill="#ad2727" d="m22.1 53l-.3 1.7 4.6.3z"/><path d="m25.4 55c2.9 1.4 2.6 3.2 1.1 3.9-1.5.7-3.8.1-4.2-1.8-.4-1.9-1.7-3-1.7-3s2.6-.2 4.8.9" fill="#cc3636"/><path d="m23.7 55.6c-1 3.1 1.5 3.9 3 3.2 1.5-.7 2-2.7 1.2-4.4-.8-1.7-1.6-2.5-1.6-2.5s-1.9 1.5-2.6 3.7" fill="#e24b4b"/><path d="m26.3 58.1c2.3-1.1 1.7.2.2 1-3.6 1.8-5-1.5-5-1.5s2.8 1.5 4.8.5" fill="#75a843"/><path d="m26.3 58.1c-.5.5-1.9 1.7-.3 1.3 3.1-.8 2.5-5.1 2.5-5.1s-.7 2.2-2.2 3.8" fill="#83bf4f"/><path fill="#871212" d="m35.9 52.8l4.2 2.6-.1-3.5z"/><path fill="#991d1d" d="m39.8 57.3l-2.8-4.1h4.7z"/><path fill="#ad2727" d="m40.7 55.8l-2.6-4.6-2.2 1.8z"/><path fill="#cc3636" d="m38.6 55.5l-4.5-.2 2-4.7z"/><path d="m36.8 54.4c-3.5 1.2-2.6 4.1-.9 4.9 1.7.8 3.8 0 4.8-2 1-1.9 2.1-2.8 2.1-2.8s-3.5-.9-6-.1" fill="#e24b4b"/><path d="m36.4 58.5c-.8-.1-2.8-.6-1.4.6 2.9 2.3 6.3-1.2 6.3-1.2s-2.4.8-4.9.6" fill="#83bf4f"/><path fill="#871212" d="m27.6 52.8l6.2-.3-3-2.7z"/><path fill="#991d1d" d="m35 51.8l-6 1.6 3.7-3.3z"/><path fill="#ad2727" d="m33 53.1l-4.5-2.6-.6 3.4z"/><path d="m32.2 54.2v5.5c-2.2.5-4.8-1.1-4.7-3.7.1-2.6-1.3-4.5-1.3-4.5s3.4.6 6 2.7" fill="#cc3636"/><path d="m29.7 54.5c-2.3 3.7.7 5.7 2.9 5.2s3.5-2.9 2.9-5.4c-.6-2.5-.2-4.2-.2-4.2s-3.9 1.7-5.6 4.4" fill="#e24b4b"/><path d="m32.4 58.6c3.3-.8 2.2.8 0 1.3-5.3 1.2-6.1-3.5-6.1-3.5s3.1 2.9 6.1 2.2" fill="#75a843"/><path d="m32.4 58.6c-.8.6-3 1.6-.8 1.6 4.4-.1 4.9-5.8 4.9-5.8s-1.7 2.5-4.1 4.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fc.svg
index ebb4fca..b571839 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cedbd5" d="m50 10.777c-7.05-5.533-28.955-5.533-36 0-10.412 8.18-12 51.22-12 51.22h59.997c0 0-1.59-43.04-11.997-51.22"/><path fill="#dbb471" d="m54.31 38.982c.297-.686.465-1.445.465-2.248 0-1.488-.566-2.834-1.482-3.818 1.393-.977 2.311-2.645 2.311-4.539 0-1.988-1.016-3.723-2.529-4.676.57-.875.904-1.934.904-3.074 0-.176-.002-.352-.006-.527l-1.38-3.67.284-2.688c-2.3-6.58-8.46-11.744-20.873-11.744-12.403 0-18.563 5.154-20.868 11.725l.275 2.708-1.379 3.703c-.004.165-.005.329-.005.494 0 1.141.336 2.199.904 3.074-1.514.952-2.53 2.687-2.53 4.675 0 1.895.92 3.563 2.313 4.539-.916.984-1.484 2.33-1.484 3.818 0 .803.168 1.563.464 2.248-2.048.729-2.69 2.764-2.69 5.164 0 10.123 10.959 5.67 10.959 5.67h28.08c0 0 10.959 4.453 10.959-5.67-.001-2.4-.646-4.435-2.694-5.164"/><g fill="#f2f1f0"><path d="m54.26 61.998c0-14.73-1.438-15.533-22.259-15.533-20.815 0-22.257.803-22.257 15.533h44.516"/><path d="m32 6.629c-7.84 0-15.07 2.652-20.871 7.105-.709 2.023-1.049 4.182-1.096 6.365 5.551-5.814 13.344-9.443 21.967-9.443s16.413 3.629 21.964 9.443c-.047-2.184-.387-4.342-1.094-6.365-5.799-4.453-13.03-7.105-20.87-7.105"/></g><path fill="#fed0ac" d="m15.898 35.17c0 0-3.251-.832-3.251-5.645 0-3.811 2.45-4.465 2.45-4.465 8.786 0 23.1-9.482 23.1-9.482s5.411 8.146 10.634 9.482c0 0 2.525.467 2.525 4.465 0 4.813-3.373 5.645-3.373 5.645-.045 7.26-9.96 16.02-15.98 16.02-6.02 0-16.1-8.758-16.1-16.02"/><path fill="#e0a372" d="m36.03 38.484c0 1.582-3.28 2.041-4.03 2.041s-4.03-.561-4.03-2.145c0 .001 8.07-.685 8.07.104"/><path fill="#f5f5f5" d="m26.51 32.16c.947 0 .821-2.449.821-2.449-2.908-6.502-9.389-2.389-9.389-2.389-2.52 1.127 1.129 4.684 1.714 4.838 2.744.744 6.854 0 6.854 0"/><circle fill="#664e27" cx="22.713" cy="29.19" r="3.1"/><g fill="#231f20"><path d="m23.715 29.19c0 .554-.449 1-1 1-.551 0-.997-.446-.997-1 0-.552.446-.998.997-.998.554 0 1 .445 1 .998"/><path d="m28.15 30.648c-.847-.938-1.653-1.842-2.563-2.521-.916-.674-1.902-1.08-2.973-1.159-1.072-.094-2.211.116-3.416.32-.603.107-1.229.208-1.884.229-.634.009-1.409-.089-1.84-.599.608.205 1.167.057 1.722-.128.558-.179 1.113-.425 1.697-.633 1.155-.433 2.454-.798 3.846-.684 1.39.095 2.744.796 3.631 1.789.909.982 1.481 2.16 1.78 3.386"/></g><path fill="#f5f5f5" d="m37.493 32.16c-.946 0-.821-2.449-.821-2.449 2.909-6.502 9.391-2.389 9.391-2.389 2.518 1.127-1.131 4.684-1.715 4.838-2.744.744-6.855 0-6.855 0"/><circle fill="#664e27" cx="41.29" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="41.29" cy="29.19" r="1"/><path d="m35.857 30.648c.3-1.227.871-2.405 1.78-3.385.887-.992 2.241-1.694 3.631-1.789 1.392-.114 2.69.251 3.846.684.584.208 1.14.454 1.697.633.555.185 1.113.333 1.722.128-.431.51-1.206.607-1.84.599-.655-.021-1.281-.122-1.884-.229-1.205-.205-2.344-.414-3.416-.32-1.07.079-2.057.484-2.973 1.159-.909.679-1.716 1.582-2.563 2.52"/></g><path fill="#e07297" d="m34.864 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.746.424-4.393.217-4.393.217 1.924 1.922 2.839 4.549 7.256 4.549s5.332-2.627 7.256-4.549c0 0-2.647.207-4.394-.217"/><path fill="#b85d7b" d="m34.864 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.714.416-4.404.215-4.393.217 2.903.521 3.266 2.01 7.256 2.01s4.353-1.484 7.256-2.01c.011-.002-2.679.199-4.394-.217"/><path fill="#428bc1" d="m39.854 61.998h-16.604l-2.18-2.978h20.1z"/><path fill="#224863" d="m41.17 59.02c0 .44-4.498.796-10.05.796-5.546 0-10.05-.355-10.05-.796 0-.439 4.499-.796 10.05-.796 5.551.001 10.05.357 10.05.796"/><path fill="#871212" d="m25.632 54.28l-1.987-2.2-1.585 2.45z"/><path fill="#991d1d" d="m22.954 54.894l2.076-2.922 2.328 1.448z"/><path fill="#ad2727" d="m22.11 53l-.3 1.729 4.602.25z"/><path fill="#cc3636" d="m25.397 54.968c2.902 1.362 2.598 3.185 1.124 3.907-1.473.722-3.78.091-4.175-1.771-.398-1.873-1.686-2.993-1.686-2.993s2.521-.184 4.737.857"/><path fill="#e24b4b" d="m23.665 55.6c-1.04 3.066 1.489 3.939 2.963 3.219 1.473-.723 1.99-2.686 1.158-4.385-.834-1.701-1.555-2.544-1.555-2.544s-1.825 1.527-2.566 3.71"/><path fill="#75a843" d="m26.32 58.08c2.263-1.146 1.702.231.228.953-3.623 1.776-5.01-1.465-5.01-1.465s2.777 1.53 4.784.512"/><path fill="#83bf4f" d="m26.32 58.08c-.489.549-1.907 1.682-.328 1.262 3.121-.828 2.524-5.057 2.524-5.057s-.742 2.164-2.196 3.795"/><path fill="#871212" d="m35.892 52.82l4.218 2.53-.09-3.412z"/><path fill="#991d1d" d="m39.77 57.27l-2.783-4.02h4.709z"/><path fill="#ad2727" d="m40.739 55.755l-2.619-4.575-2.174 1.84z"/><path fill="#cc3636" d="m38.603 55.52l-4.473-.26 1.99-4.631z"/><path fill="#e24b4b" d="m36.831 54.38c-3.5 1.165-2.554 4.064-.884 4.905 1.669.84 3.81-.041 4.779-1.969.97-1.926 2.082-2.847 2.082-2.847s-3.485-.92-5.977-.089"/><path fill="#83bf4f" d="m36.408 58.5c-.835-.066-2.841-.575-1.372.57 2.902 2.263 6.329-1.188 6.329-1.188s-2.475.814-4.957.618"/><path fill="#871212" d="m27.615 52.819l6.184-.279-2.994-2.717z"/><path fill="#991d1d" d="m34.982 51.764l-5.983 1.666 3.658-3.3z"/><path fill="#ad2727" d="m33.02 53.12l-4.533-2.57-.615 3.332z"/><path fill="#cc3636" d="m32.19 54.19v5.497c-2.168.48-4.771-1.085-4.697-3.66.074-2.59-1.263-4.474-1.263-4.474s3.374.559 5.96 2.637"/><path fill="#e24b4b" d="m29.708 54.47c-2.346 3.7.703 5.658 2.871 5.178s3.475-2.897 2.921-5.399c-.554-2.503-.223-4.185-.223-4.185s-3.899 1.769-5.569 4.406"/><path fill="#75a843" d="m32.411 58.58c3.341-.788 2.164.848-.004 1.327-5.332 1.183-6.128-3.524-6.128-3.524s3.167 2.896 6.132 2.197"/><path fill="#83bf4f" d="m32.411 58.58c-.819.566-3.045 1.604-.834 1.556 4.371-.097 4.932-5.849 4.932-5.849s-1.666 2.611-4.098 4.293"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M50,10.8c-7-5.5-29-5.5-36,0C3.6,19,2,62,2,62h60C62,62,60.4,19,50,10.8z" fill="#cedbd5"/><path d="m54.3 39c.3-.7.5-1.4.5-2.2 0-1.5-.6-2.8-1.5-3.8 1.4-1 2.3-2.6 2.3-4.5 0-2-1-3.7-2.5-4.7.6-.9.9-1.9.9-3.1 0-.2 0-.4 0-.5l-1.4-3.7.3-2.7c-2.3-6.6-8.5-11.8-20.9-11.8-12.4 0-18.6 5.2-20.9 11.7l.3 2.7-1.4 3.7c0 .2 0 .3 0 .5 0 1.1.3 2.2.9 3.1-1.5 1-2.5 2.7-2.5 4.7 0 1.9.9 3.6 2.3 4.5-.9 1-1.5 2.3-1.5 3.8 0 .8.2 1.6.5 2.2-2 .7-2.7 2.8-2.7 5.2 0 10.1 11 5.7 11 5.7h28c0 0 11 4.5 11-5.7 0-2.4-.6-4.4-2.7-5.1" fill="#dbb471"/><g fill="#f2f1f0"><path d="m54.3 62c0-14.7-1.4-15.5-22.3-15.5-20.8 0-22.3.8-22.3 15.5h44.6"/><path d="m32 6.6c-7.8 0-15.1 2.7-20.9 7.1-.7 2-1 4.2-1.1 6.4 5.6-5.8 13.3-9.4 22-9.4 8.6 0 16.4 3.6 22 9.4 0-2.2-.4-4.3-1.1-6.4-5.8-4.4-13.1-7.1-20.9-7.1"/></g><path d="m15.4 36.2c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.5-9-16.5-16.4" fill="#fed0ac"/><path d="m32 41.1c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#e0a372"/><path d="m36.8 34.3c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="30.7" r="3.5" fill="#664e27"/><circle cx="41.2" cy="30.7" r="1.2" fill="#2b2925"/><path d="m35.8 32.9c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 34.3c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="30.7" r="3.5" fill="#664e27"/><path d="m28.2 32.9c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.2 10.3-3.8 13.8 5" fill="#3b3226"/><path d="m32 44.9l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#e07297"/><path d="m35 43.5c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0-.1-2.9.3-4.7-.3" fill="#b85d7b"/><circle cx="22.8" cy="30.7" r="1.2" fill="#2b2925"/><path fill="#428bc1" d="m39.9 62h-16.6l-2.2-3h20.1z"/><ellipse cx="31.1" cy="59" rx="10" ry=".8" fill="#224863"/><path fill="#871212" d="m25.6 54.3l-2-2.2-1.5 2.4z"/><path fill="#991d1d" d="m23 54.9l2-2.9 2.4 1.4z"/><path fill="#ad2727" d="m22.1 53l-.3 1.7 4.6.3z"/><path d="m25.4 55c2.9 1.4 2.6 3.2 1.1 3.9-1.5.7-3.8.1-4.2-1.8-.4-1.9-1.7-3-1.7-3s2.6-.2 4.8.9" fill="#cc3636"/><path d="m23.7 55.6c-1 3.1 1.5 3.9 3 3.2 1.5-.7 2-2.7 1.2-4.4-.8-1.7-1.6-2.5-1.6-2.5s-1.9 1.5-2.6 3.7" fill="#e24b4b"/><path d="m26.3 58.1c2.3-1.1 1.7.2.2 1-3.6 1.8-5-1.5-5-1.5s2.8 1.5 4.8.5" fill="#75a843"/><path d="m26.3 58.1c-.5.5-1.9 1.7-.3 1.3 3.1-.8 2.5-5.1 2.5-5.1s-.7 2.2-2.2 3.8" fill="#83bf4f"/><path fill="#871212" d="m35.9 52.8l4.2 2.6-.1-3.5z"/><path fill="#991d1d" d="m39.8 57.3l-2.8-4.1h4.7z"/><path fill="#ad2727" d="m40.7 55.8l-2.6-4.6-2.2 1.8z"/><path fill="#cc3636" d="m38.6 55.5l-4.5-.2 2-4.7z"/><path d="m36.8 54.4c-3.5 1.2-2.6 4.1-.9 4.9 1.7.8 3.8 0 4.8-2 1-1.9 2.1-2.8 2.1-2.8s-3.5-.9-6-.1" fill="#e24b4b"/><path d="m36.4 58.5c-.8-.1-2.8-.6-1.4.6 2.9 2.3 6.3-1.2 6.3-1.2s-2.4.8-4.9.6" fill="#83bf4f"/><path fill="#871212" d="m27.6 52.8l6.2-.3-3-2.7z"/><path fill="#991d1d" d="m35 51.8l-6 1.6 3.7-3.3z"/><path fill="#ad2727" d="m33 53.1l-4.5-2.6-.6 3.4z"/><path d="m32.2 54.2v5.5c-2.2.5-4.8-1.1-4.7-3.7.1-2.6-1.3-4.5-1.3-4.5s3.4.6 6 2.7" fill="#cc3636"/><path d="m29.7 54.5c-2.3 3.7.7 5.7 2.9 5.2s3.5-2.9 2.9-5.4-.2-4.2-.2-4.2-3.9 1.7-5.6 4.4" fill="#e24b4b"/><path d="m32.4 58.6c3.3-.8 2.2.8 0 1.3-5.3 1.2-6.1-3.5-6.1-3.5s3.1 2.9 6.1 2.2" fill="#75a843"/><path d="m32.4 58.6c-.8.6-3 1.6-.8 1.6 4.4-.1 4.9-5.8 4.9-5.8s-1.7 2.5-4.1 4.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fd.svg
index b95e237..6c9874f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cedbd5" d="m50 10.777c-7.05-5.533-28.955-5.533-36 0-10.412 8.18-12 51.22-12 51.22h59.998c0 0-1.59-43.04-11.998-51.22"/><path fill="#594640" d="m54.31 38.982c.297-.686.465-1.445.465-2.248 0-1.488-.566-2.834-1.482-3.818 1.393-.977 2.311-2.645 2.311-4.539 0-1.988-1.016-3.723-2.529-4.676.57-.875.904-1.934.904-3.074 0-.176-.002-.352-.006-.527l-1.381-3.67.285-2.688c-2.3-6.58-8.459-11.744-20.873-11.744-12.402 0-18.563 5.154-20.868 11.725l.275 2.708-1.379 3.703c-.003.165-.005.329-.005.494 0 1.141.336 2.199.904 3.074-1.514.952-2.53 2.687-2.53 4.675 0 1.895.92 3.563 2.313 4.539-.916.984-1.484 2.33-1.484 3.818 0 .803.168 1.563.464 2.248-2.048.729-2.69 2.764-2.69 5.164 0 10.123 10.959 5.67 10.959 5.67h28.08c0 0 10.959 4.453 10.959-5.67-.001-2.4-.646-4.435-2.694-5.164"/><g fill="#f2f1f0"><path d="m54.26 61.998c0-14.73-1.438-15.533-22.259-15.533-20.815 0-22.257.803-22.257 15.533h44.516"/><path d="m32 6.629c-7.84 0-15.07 2.652-20.871 7.105-.709 2.023-1.049 4.182-1.096 6.365 5.551-5.814 13.344-9.443 21.967-9.443s16.413 3.629 21.964 9.443c-.047-2.184-.387-4.342-1.094-6.365-5.799-4.453-13.03-7.105-20.87-7.105"/></g><path fill="#d6a57c" d="m15.898 35.17c0 0-3.251-.832-3.251-5.645 0-3.811 2.45-4.465 2.45-4.465 8.786 0 23.1-9.482 23.1-9.482s5.411 8.146 10.634 9.482c0 0 2.525.467 2.525 4.465 0 4.813-3.373 5.645-3.373 5.645-.045 7.26-9.96 16.02-15.98 16.02-6.02 0-16.1-8.758-16.1-16.02"/><path fill="#b58360" d="m36.03 38.484c0 1.582-3.28 2.041-4.03 2.041s-4.03-.561-4.03-2.145c0 .001 8.07-.685 8.07.104"/><path fill="#f5f5f5" d="m26.51 32.16c.947 0 .821-2.449.821-2.449-2.908-6.502-9.389-2.389-9.389-2.389-2.52 1.127 1.129 4.684 1.714 4.838 2.744.744 6.854 0 6.854 0"/><circle fill="#664e27" cx="22.713" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="22.715" cy="29.19" r="1"/><path d="m28.15 30.648c-.846-.938-1.652-1.842-2.563-2.521-.915-.674-1.901-1.08-2.974-1.159-1.071-.094-2.211.116-3.416.32-.602.107-1.228.208-1.883.229-.635.009-1.41-.089-1.84-.599.607.205 1.167.057 1.723-.128.557-.179 1.111-.425 1.697-.633 1.154-.433 2.453-.798 3.844-.684 1.391.095 2.744.796 3.631 1.789.91.982 1.483 2.16 1.781 3.386"/></g><path fill="#f5f5f5" d="m37.493 32.16c-.946 0-.821-2.449-.821-2.449 2.909-6.502 9.391-2.389 9.391-2.389 2.518 1.127-1.131 4.684-1.715 4.838-2.744.744-6.855 0-6.855 0"/><circle fill="#664e27" cx="41.29" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="41.29" cy="29.19" r="1"/><path d="m35.857 30.648c.299-1.227.871-2.405 1.781-3.385.887-.992 2.24-1.694 3.631-1.789 1.391-.114 2.689.251 3.844.684.586.208 1.141.454 1.697.633.556.185 1.115.333 1.723.128-.43.51-1.205.607-1.84.599-.655-.021-1.281-.122-1.883-.229-1.205-.205-2.345-.414-3.416-.32-1.072.079-2.059.484-2.974 1.159-.91.679-1.717 1.582-2.563 2.52"/></g><path fill="#b5607c" d="m34.864 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.746.424-4.393.217-4.393.217 1.924 1.922 2.839 4.549 7.256 4.549s5.332-2.627 7.256-4.549c0 0-2.647.207-4.394-.217"/><path fill="#804458" d="m34.864 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.714.416-4.404.215-4.393.217 2.903.521 3.266 2.01 7.256 2.01s4.353-1.484 7.256-2.01c.011-.002-2.679.199-4.394-.217"/><path fill="#428bc1" d="m39.854 61.998h-16.604l-2.18-2.978h20.1z"/><path fill="#224863" d="m41.17 59.02c0 .44-4.498.796-10.05.796-5.546 0-10.05-.355-10.05-.796 0-.439 4.499-.796 10.05-.796 5.551.001 10.05.357 10.05.796"/><path fill="#871212" d="m25.631 54.28l-1.986-2.2-1.585 2.45z"/><path fill="#991d1d" d="m22.954 54.894l2.076-2.922 2.328 1.448z"/><path fill="#ad2727" d="m22.11 53l-.301 1.729 4.603.25z"/><path fill="#cc3636" d="m25.398 54.968c2.901 1.362 2.597 3.185 1.123 3.907-1.473.722-3.78.091-4.176-1.771-.397-1.873-1.685-2.993-1.685-2.993s2.522-.184 4.738.857"/><path fill="#e24b4b" d="m23.665 55.6c-1.04 3.066 1.489 3.939 2.962 3.219 1.473-.723 1.992-2.686 1.158-4.385-.834-1.701-1.553-2.544-1.553-2.544s-1.826 1.527-2.567 3.71"/><path fill="#75a843" d="m26.32 58.08c2.262-1.146 1.701.231.229.953-3.623 1.776-5.01-1.465-5.01-1.465s2.778 1.53 4.785.512"/><path fill="#83bf4f" d="m26.32 58.08c-.489.549-1.907 1.682-.328 1.262 3.121-.828 2.523-5.057 2.523-5.057s-.742 2.164-2.195 3.795"/><path fill="#871212" d="m35.893 52.82l4.217 2.53-.09-3.412z"/><path fill="#991d1d" d="m39.77 57.27l-2.784-4.02h4.709z"/><path fill="#ad2727" d="m40.739 55.755l-2.619-4.575-2.174 1.84z"/><path fill="#cc3636" d="m38.602 55.52l-4.472-.26 1.99-4.631z"/><path fill="#e24b4b" d="m36.83 54.38c-3.499 1.165-2.553 4.064-.883 4.905 1.669.84 3.809-.041 4.779-1.969.971-1.926 2.082-2.847 2.082-2.847s-3.485-.92-5.978-.089"/><path fill="#83bf4f" d="m36.408 58.5c-.836-.066-2.84-.575-1.373.57 2.902 2.263 6.33-1.188 6.33-1.188s-2.475.814-4.957.618"/><path fill="#871212" d="m27.615 52.819l6.184-.279-2.994-2.717z"/><path fill="#991d1d" d="m34.982 51.764l-5.984 1.666 3.66-3.3z"/><path fill="#ad2727" d="m33.02 53.12l-4.533-2.57-.616 3.332z"/><path fill="#cc3636" d="m32.19 54.19v5.497c-2.168.48-4.771-1.085-4.697-3.66.074-2.59-1.262-4.474-1.262-4.474s3.373.559 5.959 2.637"/><path fill="#e24b4b" d="m29.708 54.47c-2.346 3.7.703 5.658 2.871 5.178s3.476-2.897 2.921-5.399c-.555-2.503-.223-4.185-.223-4.185s-3.898 1.769-5.569 4.406"/><path fill="#75a843" d="m32.41 58.58c3.342-.788 2.164.848-.003 1.327-5.333 1.183-6.128-3.524-6.128-3.524s3.166 2.896 6.131 2.197"/><path fill="#83bf4f" d="m32.41 58.58c-.818.566-3.045 1.604-.833 1.556 4.37-.097 4.933-5.849 4.933-5.849s-1.667 2.611-4.1 4.293"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M50,10.8c-7-5.5-29-5.5-36,0C3.6,19,2,62,2,62h60C62,62,60.4,19,50,10.8z" fill="#cedbd5"/><path d="m54.3 39c.3-.7.5-1.4.5-2.2 0-1.5-.6-2.8-1.5-3.8 1.4-1 2.3-2.6 2.3-4.5 0-2-1-3.7-2.5-4.7.6-.9.9-1.9.9-3.1 0-.2 0-.4 0-.5l-1.4-3.7.3-2.7c-2.3-6.6-8.5-11.8-20.9-11.8-12.4 0-18.6 5.2-20.9 11.7l.3 2.7-1.4 3.7c0 .2 0 .3 0 .5 0 1.1.3 2.2.9 3.1-1.5 1-2.5 2.7-2.5 4.7 0 1.9.9 3.6 2.3 4.5-.9 1-1.5 2.3-1.5 3.8 0 .8.2 1.6.5 2.2-2 .7-2.7 2.8-2.7 5.2 0 10.1 11 5.7 11 5.7h28c0 0 11 4.5 11-5.7 0-2.4-.6-4.4-2.7-5.1" fill="#594640"/><g fill="#f2f1f0"><path d="m54.3 62c0-14.7-1.4-15.5-22.3-15.5-20.8 0-22.3.8-22.3 15.5h44.6"/><path d="m32 6.6c-7.8 0-15.1 2.7-20.9 7.1-.7 2-1 4.2-1.1 6.4 5.6-5.8 13.3-9.4 22-9.4 8.6 0 16.4 3.6 22 9.4 0-2.2-.4-4.3-1.1-6.4-5.8-4.4-13.1-7.1-20.9-7.1"/></g><path d="m15.4 36.2c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#d6a57c"/><path d="m32 41.1c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#b58360"/><path d="m36.8 34.3c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><path d="m44.7 30.7c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5 0-1.9 1.6-3.5 3.5-3.5 1.9 0 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="41.2" cy="30.7" r="1.2" fill="#2b2925"/><path d="m35.8 32.9c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 34.3c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m19.3 30.7c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5 0-1.9-1.6-3.5-3.5-3.5-1.9 0-3.5 1.6-3.5 3.5" fill="#664e27"/><path d="m28.2 32.9c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.2 10.3-3.8 13.8 5" fill="#3b3226"/><path d="m32 44.9l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#b5607c"/><path d="m35 43.5c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9s4.6-1.3 7.7-1.9c0-.1-2.9.3-4.7-.3" fill="#804458"/><circle cx="22.8" cy="30.7" r="1.2" fill="#2b2925"/><path fill="#428bc1" d="m39.9 62h-16.6l-2.2-3h20.1z"/><path d="m41.2 59c0 .4-4.5.8-10 .8-5.5 0-10-.4-10-.8 0-.4 4.5-.8 10-.8 5.5 0 10 .4 10 .8" fill="#224863"/><path fill="#871212" d="m25.6 54.3l-2-2.2-1.5 2.4z"/><path fill="#991d1d" d="m23 54.9l2-2.9 2.4 1.4z"/><path fill="#ad2727" d="m22.1 53l-.3 1.7 4.6.3z"/><path d="m25.4 55c2.9 1.4 2.6 3.2 1.1 3.9-1.5.7-3.8.1-4.2-1.8-.4-1.9-1.7-3-1.7-3s2.6-.2 4.8.9" fill="#cc3636"/><path d="m23.7 55.6c-1 3.1 1.5 3.9 3 3.2 1.5-.7 2-2.7 1.2-4.4-.8-1.7-1.6-2.5-1.6-2.5s-1.9 1.5-2.6 3.7" fill="#e24b4b"/><path d="m26.3 58.1c2.3-1.1 1.7.2.2 1-3.6 1.8-5-1.5-5-1.5s2.8 1.5 4.8.5" fill="#75a843"/><path d="m26.3 58.1c-.5.5-1.9 1.7-.3 1.3 3.1-.8 2.5-5.1 2.5-5.1s-.7 2.2-2.2 3.8" fill="#83bf4f"/><path fill="#871212" d="m35.9 52.8l4.2 2.6-.1-3.5z"/><path fill="#991d1d" d="m39.8 57.3l-2.8-4.1h4.7z"/><path fill="#ad2727" d="m40.7 55.8l-2.6-4.6-2.2 1.8z"/><path fill="#cc3636" d="m38.6 55.5l-4.5-.2 2-4.7z"/><path d="m36.8 54.4c-3.5 1.2-2.6 4.1-.9 4.9 1.7.8 3.8 0 4.8-2 1-1.9 2.1-2.8 2.1-2.8s-3.5-.9-6-.1" fill="#e24b4b"/><path d="m36.4 58.5c-.8-.1-2.8-.6-1.4.6 2.9 2.3 6.3-1.2 6.3-1.2s-2.4.8-4.9.6" fill="#83bf4f"/><path fill="#871212" d="m27.6 52.8l6.2-.3-3-2.7z"/><path fill="#991d1d" d="m35 51.8l-6 1.6 3.7-3.3z"/><path fill="#ad2727" d="m33 53.1l-4.5-2.6-.6 3.4z"/><path d="m32.2 54.2v5.5c-2.2.5-4.8-1.1-4.7-3.7.1-2.6-1.3-4.5-1.3-4.5s3.4.6 6 2.7" fill="#cc3636"/><path d="m29.7 54.5c-2.3 3.7.7 5.7 2.9 5.2s3.5-2.9 2.9-5.4c-.6-2.5-.2-4.2-.2-4.2s-3.9 1.7-5.6 4.4" fill="#e24b4b"/><path d="m32.4 58.6c3.3-.8 2.2.8 0 1.3-5.3 1.2-6.1-3.5-6.1-3.5s3.1 2.9 6.1 2.2" fill="#75a843"/><path d="m32.4 58.6c-.8.6-3 1.6-.8 1.6 4.4-.1 4.9-5.8 4.9-5.8s-1.7 2.5-4.1 4.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fe.svg
index c5a1db0..e4ff8c9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cedbd5" d="m50 10.777c-7.05-5.533-28.955-5.533-36 0-10.412 8.18-12 51.22-12 51.22h59.998c0 0-1.59-43.04-11.998-51.22"/><path fill="#231f20" d="m54.31 38.982c.297-.686.465-1.445.465-2.248 0-1.488-.566-2.834-1.482-3.818 1.393-.977 2.311-2.645 2.311-4.539 0-1.988-1.016-3.723-2.529-4.676.57-.875.904-1.934.904-3.074 0-.176-.002-.352-.006-.527l-1.379-3.67.283-2.688c-2.299-6.58-8.459-11.744-20.873-11.744-12.403 0-18.563 5.154-20.868 11.725l.275 2.708-1.379 3.703c-.004.165-.005.329-.005.494 0 1.141.336 2.199.904 3.074-1.514.953-2.529 2.688-2.529 4.676 0 1.895.92 3.563 2.313 4.539-.916.984-1.484 2.33-1.484 3.818 0 .803.168 1.563.464 2.248-2.048.729-2.69 2.764-2.69 5.164 0 10.123 10.959 5.67 10.959 5.67h28.08c0 0 10.959 4.453 10.959-5.67-.002-2.401-.647-4.436-2.695-5.165"/><g fill="#f2f1f0"><path d="m54.26 61.998c0-14.73-1.438-15.533-22.258-15.533-20.815 0-22.257.803-22.257 15.533h44.515"/><path d="m32 6.629c-7.84 0-15.07 2.652-20.871 7.105-.709 2.023-1.049 4.182-1.096 6.365 5.551-5.814 13.344-9.443 21.967-9.443 8.624 0 16.413 3.629 21.963 9.443-.047-2.184-.387-4.342-1.094-6.365-5.798-4.453-13.03-7.105-20.869-7.105"/></g><path fill="#b47d56" d="m15.899 35.17c0 0-3.251-.832-3.251-5.645 0-3.811 2.45-4.465 2.45-4.465 8.786 0 23.1-9.482 23.1-9.482s5.41 8.146 10.633 9.482c0 0 2.525.467 2.525 4.465 0 4.813-3.373 5.645-3.373 5.645-.045 7.26-9.959 16.02-15.98 16.02-6.02 0-16.1-8.758-16.1-16.02"/><path fill="#935e3e" d="m36.03 38.484c0 1.582-3.28 2.041-4.03 2.041s-4.03-.561-4.03-2.145c0 .001 8.07-.685 8.07.104"/><path fill="#f5f5f5" d="m26.51 32.16c.947 0 .821-2.449.821-2.449-2.908-6.502-9.389-2.389-9.389-2.389-2.52 1.127 1.129 4.684 1.714 4.838 2.745.744 6.854 0 6.854 0"/><circle fill="#664e27" cx="22.713" cy="29.19" r="3.1"/><g fill="#231f20"><path d="m23.715 29.19c0 .554-.449 1-1 1-.551 0-.997-.446-.997-1 0-.552.446-.998.997-.998.554 0 1 .445 1 .998"/><path d="m28.15 30.648c-.847-.938-1.653-1.842-2.563-2.521-.916-.674-1.902-1.08-2.973-1.159-1.072-.094-2.211.116-3.416.32-.603.107-1.229.208-1.884.229-.634.009-1.409-.089-1.84-.599.608.205 1.167.057 1.722-.128.558-.179 1.113-.425 1.697-.633 1.155-.433 2.454-.798 3.846-.684 1.39.095 2.744.796 3.631 1.789.909.982 1.48 2.16 1.78 3.386"/></g><path fill="#f5f5f5" d="m37.494 32.16c-.947 0-.822-2.449-.822-2.449 2.91-6.502 9.391-2.389 9.391-2.389 2.518 1.127-1.131 4.684-1.715 4.838-2.743.744-6.854 0-6.854 0"/><circle fill="#664e27" cx="41.29" cy="29.19" r="3.1"/><g fill="#231f20"><path d="m42.29 29.19c0 .554-.445 1-.996 1-.555 0-1-.446-1-1 0-.552.449-.998 1-.998.551 0 .996.445.996.998"/><path d="m35.857 30.648c.301-1.227.871-2.405 1.781-3.385.887-.992 2.24-1.694 3.631-1.789 1.391-.114 2.689.251 3.846.684.584.208 1.139.454 1.697.633.555.185 1.113.333 1.721.128-.43.51-1.205.607-1.84.599-.654-.021-1.281-.122-1.883-.229-1.205-.205-2.344-.414-3.416-.32-1.07.079-2.057.484-2.973 1.159-.909.679-1.716 1.582-2.564 2.52"/></g><path fill="#994360" d="m34.865 42.37c-.586-.145-1.439-.076-2.569.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.746.424-4.393.217-4.393.217 1.924 1.922 2.839 4.549 7.256 4.549 4.417 0 5.332-2.627 7.255-4.549.001 0-2.646.207-4.392-.217"/><path fill="#733449" d="m34.865 42.37c-.586-.145-1.439-.076-2.569.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.714.416-4.404.215-4.393.217 2.903.521 3.266 2.01 7.256 2.01 3.99 0 4.353-1.484 7.255-2.01.013-.002-2.677.199-4.392-.217"/><path fill="#428bc1" d="m39.855 61.998h-16.605l-2.18-2.978h20.1z"/><ellipse fill="#224863" cx="31.12" cy="59.02" rx="10.05" ry=".796"/><path fill="#871212" d="m25.632 54.28l-1.987-2.2-1.585 2.45z"/><path fill="#991d1d" d="m22.955 54.894l2.075-2.922 2.329 1.448z"/><path fill="#ad2727" d="m22.11 53l-.3 1.729 4.603.25z"/><path fill="#cc3636" d="m25.398 54.968c2.902 1.362 2.598 3.185 1.124 3.907-1.473.722-3.78.091-4.175-1.771-.398-1.873-1.686-2.993-1.686-2.993s2.52-.184 4.737.857"/><path fill="#e24b4b" d="m23.666 55.6c-1.04 3.066 1.489 3.939 2.963 3.219 1.473-.723 1.99-2.686 1.158-4.385-.834-1.701-1.555-2.544-1.555-2.544s-1.825 1.527-2.566 3.71"/><path fill="#75a843" d="m26.321 58.08c2.263-1.146 1.702.231.228.953-3.623 1.776-5.01-1.465-5.01-1.465s2.776 1.53 4.784.512"/><path fill="#83bf4f" d="m26.321 58.08c-.489.549-1.907 1.682-.328 1.262 3.121-.828 2.524-5.057 2.524-5.057s-.742 2.164-2.196 3.795"/><path fill="#871212" d="m35.893 52.82l4.217 2.53-.09-3.412z"/><path fill="#991d1d" d="m39.77 57.27l-2.782-4.02h4.709z"/><path fill="#ad2727" d="m40.74 55.755l-2.61-4.575-2.183 1.84z"/><path fill="#cc3636" d="m38.604 55.52l-4.474-.26 1.99-4.631z"/><path fill="#e24b4b" d="m36.832 54.38c-3.5 1.165-2.555 4.064-.885 4.905 1.67.84 3.811-.041 4.779-1.969.971-1.926 2.082-2.847 2.082-2.847s-3.484-.92-5.976-.089"/><path fill="#83bf4f" d="m36.408 58.5c-.834-.066-2.84-.575-1.371.57 2.902 2.263 6.328-1.188 6.328-1.188s-2.474.814-4.957.618"/><path fill="#871212" d="m27.616 52.819l6.183-.279-2.994-2.717z"/><path fill="#991d1d" d="M34.982 51.764 29 53.43 32.658 50.13z"/><path fill="#ad2727" d="m33.02 53.12l-4.532-2.57-.615 3.332z"/><path fill="#cc3636" d="m32.19 54.19v5.497c-2.168.48-4.771-1.085-4.697-3.66.074-2.59-1.263-4.474-1.263-4.474s3.374.559 5.96 2.637"/><path fill="#e24b4b" d="m29.708 54.47c-2.346 3.7.703 5.658 2.871 5.178 2.168-.48 3.475-2.897 2.92-5.399-.553-2.503-.223-4.185-.223-4.185s-3.898 1.769-5.568 4.406"/><path fill="#75a843" d="m32.412 58.58c3.34-.788 2.165.848-.004 1.327-5.332 1.183-6.128-3.524-6.128-3.524s3.167 2.896 6.132 2.197"/><path fill="#83bf4f" d="m32.412 58.58c-.819.566-3.045 1.604-.834 1.556 4.372-.097 4.932-5.849 4.932-5.849s-1.666 2.611-4.098 4.293"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M50,10.8c-7-5.5-29-5.5-36,0C3.6,19,2,62,2,62h60C62,62,60.4,19,50,10.8z" fill="#cedbd5"/><path d="m54.3 39c.3-.7.5-1.4.5-2.2 0-1.5-.6-2.8-1.5-3.8 1.4-1 2.3-2.6 2.3-4.5 0-2-1-3.7-2.5-4.7.6-.9.9-1.9.9-3.1 0-.2 0-.4 0-.5l-1.4-3.7.3-2.7c-2.3-6.6-8.5-11.8-20.9-11.8-12.4 0-18.6 5.2-20.9 11.7l.3 2.7-1.4 3.7c0 .2 0 .3 0 .5 0 1.1.3 2.2.9 3.1-1.5 1-2.5 2.7-2.5 4.7 0 1.9.9 3.6 2.3 4.5-.9 1-1.5 2.3-1.5 3.8 0 .8.2 1.6.5 2.2-2 .7-2.7 2.8-2.7 5.2 0 10.1 11 5.7 11 5.7h28c0 0 11 4.5 11-5.7 0-2.4-.6-4.4-2.7-5.1" fill="#231f20"/><g fill="#f2f1f0"><path d="m54.3 62c0-14.7-1.4-15.5-22.3-15.5-20.8 0-22.3.8-22.3 15.5h44.6"/><path d="m32 6.6c-7.8 0-15.1 2.7-20.9 7.1-.7 2-1 4.2-1.1 6.4 5.6-5.8 13.3-9.4 22-9.4 8.6 0 16.4 3.6 22 9.4 0-2.2-.4-4.3-1.1-6.4-5.8-4.4-13.1-7.1-20.9-7.1"/></g><path d="m15.4 36.2c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#b47d56"/><path d="m32 41.1c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/><path d="m36.8 34.3c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="30.7" r="3.5" fill="#664e27"/><circle cx="41.2" cy="30.7" r="1.2" fill="#2b2925"/><path d="m35.8 32.9c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 34.3c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m19.3 30.7c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5 0-1.9-1.6-3.5-3.5-3.5-1.9 0-3.5 1.6-3.5 3.5" fill="#664e27"/><path d="m28.2 32.9c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.2 10.3-3.8 13.8 5" fill="#3b3226"/><path d="m32 44.9l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#994360"/><path d="m35 43.5c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0-.1-2.9.3-4.7-.3" fill="#733449"/><circle cx="22.8" cy="30.7" r="1.2" fill="#2b2925"/><path fill="#428bc1" d="m39.9 62h-16.6l-2.2-3h20.1z"/><path d="m41.2 59c0 .4-4.5.8-10 .8-5.5 0-10-.4-10-.8 0-.4 4.5-.8 10-.8 5.5 0 10 .4 10 .8" fill="#224863"/><path fill="#871212" d="m25.6 54.3l-2-2.2-1.5 2.4z"/><path fill="#991d1d" d="m23 54.9l2-2.9 2.4 1.4z"/><path fill="#ad2727" d="m22.1 53l-.3 1.7 4.6.3z"/><path d="m25.4 55c2.9 1.4 2.6 3.2 1.1 3.9-1.5.7-3.8.1-4.2-1.8-.4-1.9-1.7-3-1.7-3s2.6-.2 4.8.9" fill="#cc3636"/><path d="m23.7 55.6c-1 3.1 1.5 3.9 3 3.2 1.5-.7 2-2.7 1.2-4.4-.8-1.7-1.6-2.5-1.6-2.5s-1.9 1.5-2.6 3.7" fill="#e24b4b"/><path d="m26.3 58.1c2.3-1.1 1.7.2.2 1-3.6 1.8-5-1.5-5-1.5s2.8 1.5 4.8.5" fill="#75a843"/><path d="m26.3 58.1c-.5.5-1.9 1.7-.3 1.3 3.1-.8 2.5-5.1 2.5-5.1s-.7 2.2-2.2 3.8" fill="#83bf4f"/><path fill="#871212" d="m35.9 52.8l4.2 2.6-.1-3.5z"/><path fill="#991d1d" d="m39.8 57.3l-2.8-4.1h4.7z"/><path fill="#ad2727" d="m40.7 55.8l-2.6-4.6-2.2 1.8z"/><path fill="#cc3636" d="m38.6 55.5l-4.5-.2 2-4.7z"/><path d="m36.8 54.4c-3.5 1.2-2.6 4.1-.9 4.9 1.7.8 3.8 0 4.8-2 1-1.9 2.1-2.8 2.1-2.8s-3.5-.9-6-.1" fill="#e24b4b"/><path d="m36.4 58.5c-.8-.1-2.8-.6-1.4.6 2.9 2.3 6.3-1.2 6.3-1.2s-2.4.8-4.9.6" fill="#83bf4f"/><path fill="#871212" d="m27.6 52.8l6.2-.3-3-2.7z"/><path fill="#991d1d" d="m35 51.8l-6 1.6 3.7-3.3z"/><path fill="#ad2727" d="m33 53.1l-4.5-2.6-.6 3.4z"/><path d="m32.2 54.2v5.5c-2.2.5-4.8-1.1-4.7-3.7.1-2.6-1.3-4.5-1.3-4.5s3.4.6 6 2.7" fill="#cc3636"/><path d="m29.7 54.5c-2.3 3.7.7 5.7 2.9 5.2s3.5-2.9 2.9-5.4c-.6-2.5-.2-4.2-.2-4.2s-3.9 1.7-5.6 4.4" fill="#e24b4b"/><path d="m32.4 58.6c3.3-.8 2.2.8 0 1.3-5.3 1.2-6.1-3.5-6.1-3.5s3.1 2.9 6.1 2.2" fill="#75a843"/><path d="m32.4 58.6c-.8.6-3 1.6-.8 1.6 4.4-.1 4.9-5.8 4.9-5.8s-1.7 2.5-4.1 4.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3ff.svg
index f73ccc2..29633af 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f470-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cedbd5" d="m50 10.777c-7.05-5.533-28.955-5.533-36 0-10.412 8.18-12 51.22-12 51.22h59.997c0 0-1.59-43.04-11.997-51.22"/><path fill="#231f20" d="m54.31 38.982c.297-.686.465-1.445.465-2.248 0-1.488-.566-2.834-1.482-3.818 1.393-.977 2.311-2.645 2.311-4.539 0-1.988-1.016-3.723-2.529-4.676.57-.875.904-1.934.904-3.074 0-.176-.002-.352-.006-.527l-1.381-3.67.285-2.688c-2.3-6.58-8.46-11.744-20.873-11.744-12.403 0-18.563 5.154-20.868 11.725l.275 2.708-1.379 3.703c-.004.165-.005.329-.005.494 0 1.141.336 2.199.904 3.074-1.514.953-2.529 2.688-2.529 4.676 0 1.895.92 3.563 2.313 4.539-.916.984-1.484 2.33-1.484 3.818 0 .803.168 1.563.464 2.248-2.048.729-2.69 2.764-2.69 5.164 0 10.123 10.959 5.67 10.959 5.67h28.08c0 0 10.959 4.453 10.959-5.67-.002-2.401-.647-4.436-2.695-5.165"/><g fill="#f2f1f0"><path d="m54.26 61.998c0-14.73-1.438-15.533-22.259-15.533-20.815 0-22.257.803-22.257 15.533h44.516"/><path d="m32 6.629c-7.84 0-15.07 2.652-20.871 7.105-.709 2.023-1.049 4.182-1.096 6.365 5.551-5.814 13.344-9.443 21.967-9.443s16.413 3.629 21.964 9.443c-.047-2.184-.387-4.342-1.094-6.365-5.799-4.453-13.03-7.105-20.87-7.105"/></g><path fill="#8a6859" d="m15.899 35.17c0 0-3.251-.832-3.251-5.645 0-3.811 2.45-4.465 2.45-4.465 8.786 0 23.1-9.482 23.1-9.482s5.411 8.146 10.634 9.482c0 0 2.525.467 2.525 4.465 0 4.813-3.373 5.645-3.373 5.645-.045 7.26-9.96 16.02-15.98 16.02-6.02 0-16.1-8.758-16.1-16.02"/><path fill="#705041" d="m36.04 38.484c0 1.582-3.28 2.041-4.03 2.041s-4.03-.561-4.03-2.145c0 .001 8.07-.685 8.07.104"/><path fill="#f5f5f5" d="m26.511 32.16c.947 0 .821-2.449.821-2.449-2.908-6.502-9.389-2.389-9.389-2.389-2.52 1.127 1.129 4.684 1.714 4.838 2.744.744 6.854 0 6.854 0"/><circle fill="#664e27" cx="22.714" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="22.716" cy="29.19" r="1"/><path d="m28.15 30.648c-.847-.938-1.653-1.842-2.563-2.521-.916-.674-1.902-1.08-2.974-1.159-1.071-.094-2.211.116-3.416.32-.602.107-1.228.208-1.883.229-.635.009-1.41-.089-1.84-.599.607.205 1.167.057 1.722-.128.558-.179 1.112-.425 1.697-.633 1.155-.433 2.454-.798 3.845-.684 1.391.095 2.744.796 3.631 1.789.91.982 1.482 2.16 1.781 3.386"/></g><path fill="#f5f5f5" d="m37.494 32.16c-.946 0-.821-2.449-.821-2.449 2.909-6.502 9.391-2.389 9.391-2.389 2.518 1.127-1.131 4.684-1.715 4.838-2.744.744-6.855 0-6.855 0"/><circle fill="#664e27" cx="41.29" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="41.29" cy="29.19" r="1"/><path d="m35.858 30.648c.299-1.227.871-2.405 1.78-3.385.887-.992 2.241-1.694 3.631-1.789 1.392-.114 2.69.251 3.845.684.585.208 1.141.454 1.697.633.556.185 1.114.333 1.723.128-.431.51-1.206.607-1.84.599-.655-.021-1.281-.122-1.884-.229-1.205-.205-2.344-.414-3.416-.32-1.071.079-2.058.484-2.973 1.159-.91.679-1.717 1.582-2.563 2.52"/></g><path fill="#994360" d="m34.865 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.746.424-4.393.217-4.393.217 1.924 1.922 2.839 4.549 7.256 4.549s5.332-2.627 7.256-4.549c0 0-2.647.207-4.394-.217"/><path fill="#733449" d="m34.865 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.714.416-4.404.215-4.393.217 2.903.521 3.266 2.01 7.256 2.01s4.353-1.484 7.256-2.01c.011-.002-2.679.199-4.394-.217"/><path fill="#428bc1" d="m39.855 61.998h-16.605l-2.18-2.978h20.1z"/><path fill="#224863" d="m41.17 59.02c0 .44-4.498.796-10.05.796-5.546 0-10.05-.355-10.05-.796 0-.439 4.499-.796 10.05-.796 5.551.001 10.05.357 10.05.796"/><path fill="#871212" d="m25.632 54.28l-1.986-2.2-1.586 2.45z"/><path fill="#991d1d" d="m22.955 54.894l2.075-2.922 2.329 1.448z"/><path fill="#ad2727" d="m22.11 53l-.3 1.729 4.603.25z"/><path fill="#cc3636" d="m25.398 54.968c2.902 1.362 2.598 3.185 1.124 3.907-1.473.722-3.78.091-4.176-1.771-.397-1.873-1.685-2.993-1.685-2.993s2.521-.184 4.737.857"/><path fill="#e24b4b" d="m23.666 55.6c-1.04 3.066 1.489 3.939 2.962 3.219 1.473-.723 1.991-2.686 1.158-4.385-.834-1.701-1.554-2.544-1.554-2.544s-1.825 1.527-2.566 3.71"/><path fill="#75a843" d="m26.321 58.08c2.262-1.146 1.701.231.228.953-3.623 1.776-5.01-1.465-5.01-1.465s2.777 1.53 4.785.512"/><path fill="#83bf4f" d="m26.321 58.08c-.489.549-1.907 1.682-.328 1.262 3.121-.828 2.523-5.057 2.523-5.057s-.742 2.164-2.195 3.795"/><path fill="#871212" d="m35.893 52.82l4.217 2.53-.09-3.412z"/><path fill="#991d1d" d="m39.771 57.27l-2.784-4.02h4.709z"/><path fill="#ad2727" d="m40.74 55.755l-2.61-4.575-2.183 1.84z"/><path fill="#cc3636" d="m38.603 55.52l-4.473-.26 1.99-4.631z"/><path fill="#e24b4b" d="m36.831 54.38c-3.499 1.165-2.553 4.064-.883 4.905 1.669.84 3.809-.041 4.779-1.969.97-1.926 2.082-2.847 2.082-2.847s-3.485-.92-5.978-.089"/><path fill="#83bf4f" d="m36.409 58.5c-.836-.066-2.841-.575-1.373.57 2.902 2.263 6.33-1.188 6.33-1.188s-2.475.814-4.957.618"/><path fill="#871212" d="m27.616 52.819l6.184-.279-2.994-2.717z"/><path fill="#991d1d" d="m34.983 51.764l-5.984 1.666 3.659-3.3z"/><path fill="#ad2727" d="m33.02 53.12l-4.532-2.57-.616 3.332z"/><path fill="#cc3636" d="m32.19 54.19v5.497c-2.168.48-4.771-1.085-4.697-3.66.074-2.59-1.263-4.474-1.263-4.474s3.374.559 5.96 2.637"/><path fill="#e24b4b" d="m29.709 54.47c-2.346 3.7.703 5.658 2.871 5.178s3.475-2.897 2.921-5.399c-.555-2.503-.223-4.185-.223-4.185s-3.899 1.769-5.569 4.406"/><path fill="#75a843" d="m32.411 58.58c3.342-.788 2.164.848-.003 1.327-5.333 1.183-6.128-3.524-6.128-3.524s3.166 2.896 6.131 2.197"/><path fill="#83bf4f" d="m32.411 58.58c-.818.566-3.045 1.604-.833 1.556 4.37-.097 4.932-5.849 4.932-5.849s-1.666 2.611-4.099 4.293"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M50,10.8c-7-5.5-29-5.5-36,0C3.6,19,2,62,2,62h60C62,62,60.4,19,50,10.8z" fill="#cedbd5"/><path d="m54.3 39c.3-.7.5-1.4.5-2.2 0-1.5-.6-2.8-1.5-3.8 1.4-1 2.3-2.6 2.3-4.5 0-2-1-3.7-2.5-4.7.6-.9.9-1.9.9-3.1 0-.2 0-.4 0-.5l-1.4-3.7.3-2.7c-2.3-6.6-8.5-11.8-20.9-11.8-12.4 0-18.6 5.2-20.9 11.7l.3 2.7-1.4 3.7c0 .2 0 .3 0 .5 0 1.1.3 2.2.9 3.1-1.5 1-2.5 2.7-2.5 4.7 0 1.9.9 3.6 2.3 4.5-.9 1-1.5 2.3-1.5 3.8 0 .8.2 1.6.5 2.2-2 .7-2.7 2.8-2.7 5.2 0 10.1 11 5.7 11 5.7h28c0 0 11 4.5 11-5.7 0-2.4-.6-4.4-2.7-5.1" fill="#231f20"/><g fill="#f2f1f0"><path d="m54.3 62c0-14.7-1.4-15.5-22.3-15.5-20.8 0-22.3.8-22.3 15.5h44.6"/><path d="m32 6.6c-7.8 0-15.1 2.7-20.9 7.1-.7 2-1 4.2-1.1 6.4 5.6-5.8 13.3-9.4 22-9.4s16.4 3.6 22 9.4c0-2.2-.4-4.3-1.1-6.4-5.8-4.4-13.1-7.1-20.9-7.1"/></g><path d="m15.4 36.2c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#8a6859"/><path d="m32 41.1c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#705041"/><path d="m36.8 34.3c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><path d="m44.7 30.7c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5 0-1.9 1.6-3.5 3.5-3.5 1.9 0 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="41.2" cy="30.7" r="1.2" fill="#2b2925"/><path d="m35.8 32.9c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 34.3c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="30.7" r="3.5" fill="#664e27"/><path d="m28.2 32.9c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.2 10.3-3.8 13.8 5" fill="#3b3226"/><path d="m32 44.9l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#994360"/><path d="m35 43.5c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0-.1-2.9.3-4.7-.3" fill="#733449"/><circle cx="22.8" cy="30.7" r="1.2" fill="#2b2925"/><path fill="#428bc1" d="m39.9 62h-16.6l-2.2-3h20.1z"/><path d="m41.2 59c0 .4-4.5.8-10 .8-5.5 0-10-.4-10-.8 0-.4 4.5-.8 10-.8 5.5 0 10 .4 10 .8" fill="#224863"/><path fill="#871212" d="m25.6 54.3l-2-2.2-1.5 2.4z"/><path fill="#991d1d" d="m23 54.9l2-2.9 2.4 1.4z"/><path fill="#ad2727" d="m22.1 53l-.3 1.7 4.6.3z"/><path d="m25.4 55c2.9 1.4 2.6 3.2 1.1 3.9-1.5.7-3.8.1-4.2-1.8-.4-1.9-1.7-3-1.7-3s2.6-.2 4.8.9" fill="#cc3636"/><path d="m23.7 55.6c-1 3.1 1.5 3.9 3 3.2 1.5-.7 2-2.7 1.2-4.4-.8-1.7-1.6-2.5-1.6-2.5s-1.9 1.5-2.6 3.7" fill="#e24b4b"/><path d="m26.3 58.1c2.3-1.1 1.7.2.2 1-3.6 1.8-5-1.5-5-1.5s2.8 1.5 4.8.5" fill="#75a843"/><path d="m26.3 58.1c-.5.5-1.9 1.7-.3 1.3 3.1-.8 2.5-5.1 2.5-5.1s-.7 2.2-2.2 3.8" fill="#83bf4f"/><path fill="#871212" d="m35.9 52.8l4.2 2.6-.1-3.5z"/><path fill="#991d1d" d="m39.8 57.3l-2.8-4.1h4.7z"/><path fill="#ad2727" d="m40.7 55.8l-2.6-4.6-2.2 1.8z"/><path fill="#cc3636" d="m38.6 55.5l-4.5-.2 2-4.7z"/><path d="m36.8 54.4c-3.5 1.2-2.6 4.1-.9 4.9 1.7.8 3.8 0 4.8-2 1-1.9 2.1-2.8 2.1-2.8s-3.5-.9-6-.1" fill="#e24b4b"/><path d="m36.4 58.5c-.8-.1-2.8-.6-1.4.6 2.9 2.3 6.3-1.2 6.3-1.2s-2.4.8-4.9.6" fill="#83bf4f"/><path fill="#871212" d="m27.6 52.8l6.2-.3-3-2.7z"/><path fill="#991d1d" d="m35 51.8l-6 1.6 3.7-3.3z"/><path fill="#ad2727" d="m33 53.1l-4.5-2.6-.6 3.4z"/><path d="m32.2 54.2v5.5c-2.2.5-4.8-1.1-4.7-3.7.1-2.6-1.3-4.5-1.3-4.5s3.4.6 6 2.7" fill="#cc3636"/><path d="m29.7 54.5c-2.3 3.7.7 5.7 2.9 5.2s3.5-2.9 2.9-5.4c-.6-2.5-.2-4.2-.2-4.2s-3.9 1.7-5.6 4.4" fill="#e24b4b"/><path d="m32.4 58.6c3.3-.8 2.2.8 0 1.3-5.3 1.2-6.1-3.5-6.1-3.5s3.1 2.9 6.1 2.2" fill="#75a843"/><path d="m32.4 58.6c-.8.6-3 1.6-.8 1.6 4.4-.1 4.9-5.8 4.9-5.8s-1.7 2.5-4.1 4.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f470.svg b/build/js/jsxc/lib/emojione/assets/svg/1f470.svg
index 6ffc47a..dc9e6c7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f470.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f470.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cedbd5" d="m50 10.777c-7.05-5.533-28.955-5.533-36 0-10.412 8.18-12 51.22-12 51.22h59.997c0 0-1.59-43.04-11.997-51.22"/><path fill="#231f20" d="m54.31 38.982c.297-.686.465-1.445.465-2.248 0-1.488-.566-2.834-1.482-3.818 1.393-.977 2.311-2.645 2.311-4.539 0-1.988-1.016-3.723-2.529-4.676.57-.875.904-1.934.904-3.074 0-.176-.002-.352-.006-.527l-1.38-3.67.284-2.688c-2.3-6.58-8.46-11.744-20.873-11.744-12.403 0-18.563 5.154-20.868 11.725l.275 2.708-1.379 3.703c-.004.165-.005.329-.005.494 0 1.141.336 2.199.904 3.074-1.514.953-2.529 2.688-2.529 4.676 0 1.895.92 3.563 2.313 4.539-.916.984-1.484 2.33-1.484 3.818 0 .803.168 1.563.464 2.248-2.048.729-2.69 2.764-2.69 5.164 0 10.123 10.959 5.67 10.959 5.67h28.08c0 0 10.959 4.453 10.959-5.67-.002-2.401-.647-4.436-2.695-5.165"/><g fill="#f2f1f0"><path d="m54.26 61.998c0-14.73-1.438-15.533-22.259-15.533-20.815 0-22.257.803-22.257 15.533h44.516"/><path d="m32 6.629c-7.84 0-15.07 2.652-20.871 7.105-.709 2.023-1.049 4.182-1.096 6.365 5.551-5.814 13.344-9.443 21.967-9.443s16.413 3.629 21.964 9.443c-.047-2.184-.387-4.342-1.094-6.365-5.799-4.453-13.03-7.105-20.87-7.105"/></g><path fill="#ffdd67" d="m15.899 35.17c0 0-3.251-.832-3.251-5.645 0-3.811 2.45-4.465 2.45-4.465 8.786 0 23.1-9.482 23.1-9.482s5.411 8.146 10.634 9.482c0 0 2.525.467 2.525 4.465 0 4.813-3.373 5.645-3.373 5.645-.045 7.26-9.96 16.02-15.98 16.02-6.02 0-16.1-8.758-16.1-16.02"/><path fill="#eba352" d="m36.04 38.484c0 1.582-3.28 2.041-4.03 2.041s-4.03-.561-4.03-2.145c0 .001 8.07-.685 8.07.104"/><path fill="#f5f5f5" d="m26.511 32.16c.947 0 .821-2.449.821-2.449-2.908-6.502-9.389-2.389-9.389-2.389-2.52 1.127 1.129 4.684 1.714 4.838 2.744.744 6.854 0 6.854 0"/><circle fill="#664e27" cx="22.714" cy="29.19" r="3.1"/><g fill="#231f20"><path d="m23.716 29.19c0 .554-.449 1-1 1-.551 0-.997-.446-.997-1 0-.552.446-.998.997-.998.554 0 1 .445 1 .998"/><path d="m28.15 30.648c-.847-.938-1.653-1.842-2.563-2.521-.916-.674-1.902-1.08-2.973-1.159-1.072-.094-2.211.116-3.416.32-.603.107-1.229.208-1.884.229-.634.009-1.409-.089-1.84-.599.608.205 1.167.057 1.722-.128.558-.179 1.113-.425 1.697-.633 1.155-.433 2.454-.798 3.846-.684 1.39.095 2.744.796 3.631 1.789.909.982 1.481 2.16 1.78 3.386"/></g><path fill="#f5f5f5" d="m37.494 32.16c-.946 0-.821-2.449-.821-2.449 2.909-6.502 9.391-2.389 9.391-2.389 2.518 1.127-1.131 4.684-1.715 4.838-2.744.744-6.855 0-6.855 0"/><circle fill="#664e27" cx="41.29" cy="29.19" r="3.1"/><g fill="#231f20"><circle cx="41.29" cy="29.19" r="1"/><path d="m35.858 30.648c.3-1.227.871-2.405 1.78-3.385.887-.992 2.241-1.694 3.631-1.789 1.392-.114 2.69.251 3.846.684.584.208 1.14.454 1.697.633.555.185 1.113.333 1.722.128-.431.51-1.206.607-1.84.599-.655-.021-1.281-.122-1.884-.229-1.205-.205-2.344-.414-3.416-.32-1.07.079-2.057.484-2.973 1.159-.909.679-1.716 1.582-2.563 2.52"/></g><path fill="#f085a9" d="m34.865 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.746.424-4.393.217-4.393.217 1.924 1.922 2.839 4.549 7.256 4.549s5.332-2.627 7.256-4.549c0 0-2.647.207-4.394-.217"/><path fill="#d46c8f" d="m34.865 42.37c-.585-.145-1.439-.076-2.568.303-.097.029-.195.061-.294.094-.099-.033-.197-.064-.294-.094-1.129-.379-1.984-.447-2.569-.303-1.714.416-4.404.215-4.393.217 2.903.521 3.266 2.01 7.256 2.01s4.353-1.484 7.256-2.01c.011-.002-2.679.199-4.394-.217"/><path fill="#428bc1" d="m39.855 61.998h-16.601l-2.184-2.978h20.1z"/><path fill="#224863" d="m41.17 59.02c0 .44-4.498.796-10.05.796-5.546 0-10.05-.355-10.05-.796 0-.439 4.499-.796 10.05-.796 5.551.001 10.05.357 10.05.796"/><path fill="#871212" d="m25.633 54.28l-1.987-2.2-1.586 2.45z"/><path fill="#991d1d" d="m22.955 54.894l2.075-2.922 2.329 1.448z"/><path fill="#ad2727" d="m22.11 53l-.299 1.729 4.602.25z"/><path fill="#cc3636" d="m25.398 54.968c2.902 1.362 2.598 3.185 1.124 3.907-1.473.722-3.78.091-4.175-1.771-.398-1.873-1.686-2.993-1.686-2.993s2.521-.184 4.737.857"/><path fill="#e24b4b" d="m23.666 55.6c-1.04 3.066 1.489 3.939 2.963 3.219 1.473-.723 1.99-2.686 1.158-4.385-.834-1.701-1.555-2.544-1.555-2.544s-1.825 1.527-2.566 3.71"/><path fill="#75a843" d="m26.321 58.08c2.263-1.146 1.702.231.228.953-3.623 1.776-5.01-1.465-5.01-1.465s2.776 1.53 4.784.512"/><path fill="#83bf4f" d="m26.321 58.08c-.489.549-1.907 1.682-.328 1.262 3.121-.828 2.524-5.057 2.524-5.057s-.742 2.164-2.196 3.795"/><path fill="#871212" d="m35.893 52.82l4.217 2.53-.09-3.412z"/><path fill="#991d1d" d="m39.771 57.27l-2.783-4.02h4.709z"/><path fill="#ad2727" d="m40.74 55.755l-2.61-4.575-2.183 1.84z"/><path fill="#cc3636" d="m38.604 55.52l-4.474-.26 1.99-4.631z"/><path fill="#e24b4b" d="m36.832 54.38c-3.5 1.165-2.554 4.064-.884 4.905 1.669.84 3.81-.041 4.779-1.969.97-1.926 2.082-2.847 2.082-2.847s-3.485-.92-5.977-.089"/><path fill="#83bf4f" d="m36.409 58.5c-.835-.066-2.841-.575-1.372.57 2.902 2.263 6.329-1.188 6.329-1.188s-2.475.814-4.957.618"/><path fill="#871212" d="m27.616 52.819l6.184-.279-2.994-2.717z"/><path fill="#991d1d" d="M34.983 51.764 29 53.43 32.658 50.13z"/><path fill="#ad2727" d="m33.02 53.12l-4.532-2.57-.615 3.332z"/><path fill="#cc3636" d="m32.19 54.19v5.497c-2.168.48-4.771-1.085-4.697-3.66.074-2.59-1.263-4.474-1.263-4.474s3.374.559 5.96 2.637"/><path fill="#e24b4b" d="m29.709 54.47c-2.346 3.7.703 5.658 2.871 5.178s3.475-2.897 2.921-5.399c-.554-2.503-.223-4.185-.223-4.185s-3.899 1.769-5.569 4.406"/><path fill="#75a843" d="m32.412 58.58c3.341-.788 2.164.848-.004 1.327-5.332 1.183-6.128-3.524-6.128-3.524s3.167 2.896 6.132 2.197"/><path fill="#83bf4f" d="m32.412 58.58c-.819.566-3.045 1.604-.834 1.556 4.371-.097 4.932-5.849 4.932-5.849s-1.666 2.611-4.098 4.293"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M50,10.8c-7-5.5-29-5.5-36,0C3.6,19,2,62,2,62h60C62,62,60.4,19,50,10.8z" fill="#cedbd5"/><path d="m54.3 39c.3-.7.5-1.4.5-2.2 0-1.5-.6-2.8-1.5-3.8 1.4-1 2.3-2.6 2.3-4.5 0-2-1-3.7-2.5-4.7.6-.9.9-1.9.9-3.1 0-.2 0-.4 0-.5l-1.4-3.7.3-2.7c-2.3-6.6-8.5-11.8-20.9-11.8-12.4 0-18.6 5.2-20.9 11.7l.3 2.7-1.4 3.7c0 .2 0 .3 0 .5 0 1.1.3 2.2.9 3.1-1.5 1-2.5 2.7-2.5 4.7 0 1.9.9 3.6 2.3 4.5-.9 1-1.5 2.3-1.5 3.8 0 .8.2 1.6.5 2.2-2 .7-2.7 2.8-2.7 5.2 0 10.1 11 5.7 11 5.7h28c0 0 11 4.5 11-5.7 0-2.4-.6-4.4-2.7-5.1" fill="#ffb300"/><g fill="#f2f1f0"><path d="m54.3 62c0-14.7-1.4-15.5-22.3-15.5-20.8 0-22.3.8-22.3 15.5h44.6"/><path d="m32 6.6c-7.8 0-15.1 2.7-20.9 7.1-.7 2-1.1 4.2-1.1 6.4 5.6-5.8 13.3-9.4 22-9.4s16.4 3.6 22 9.4c0-2.2-.4-4.3-1.1-6.4-5.8-4.4-13.1-7.1-20.9-7.1"/></g><path d="m15.4 36.2c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#ffdd67"/><path d="m32 41.1c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#eba352"/><path d="m36.8 34.3c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><path d="m44.7 30.7c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5 0-1.9 1.6-3.5 3.5-3.5 1.9 0 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="41.2" cy="30.7" r="1.2" fill="#2b2925"/><path d="m35.8 32.9c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 34.3c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="30.7" r="3.5" fill="#664e27"/><path d="m28.2 32.9c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.2 10.3-3.8 13.8 5" fill="#3b3226"/><path d="m32 44.9l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#f085a9"/><path d="m35 43.5c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0-.1-2.9.3-4.7-.3" fill="#d46c8f"/><circle cx="22.8" cy="30.7" r="1.2" fill="#2b2925"/><path fill="#428bc1" d="m39.9 62h-16.6l-2.2-3h20.1z"/><path d="m41.2 59c0 .4-4.5.8-10 .8-5.5 0-10-.4-10-.8 0-.4 4.5-.8 10-.8 5.5 0 10 .4 10 .8" fill="#224863"/><path fill="#871212" d="m25.6 54.3l-2-2.2-1.5 2.4z"/><path fill="#991d1d" d="m23 54.9l2-2.9 2.4 1.4z"/><path fill="#ad2727" d="m22.1 53l-.3 1.7 4.6.3z"/><path d="m25.4 55c2.9 1.4 2.6 3.2 1.1 3.9-1.5.7-3.8.1-4.2-1.8-.4-1.9-1.7-3-1.7-3s2.6-.2 4.8.9" fill="#cc3636"/><path d="m23.7 55.6c-1 3.1 1.5 3.9 3 3.2 1.5-.7 2-2.7 1.2-4.4-.8-1.7-1.6-2.5-1.6-2.5s-1.9 1.5-2.6 3.7" fill="#e24b4b"/><path d="m26.3 58.1c2.3-1.1 1.7.2.2 1-3.6 1.8-5-1.5-5-1.5s2.8 1.5 4.8.5" fill="#75a843"/><path d="m26.3 58.1c-.5.5-1.9 1.7-.3 1.3 3.1-.8 2.5-5.1 2.5-5.1s-.7 2.2-2.2 3.8" fill="#83bf4f"/><path fill="#871212" d="m35.9 52.8l4.2 2.6-.1-3.5z"/><path fill="#991d1d" d="m39.8 57.3l-2.8-4.1h4.7z"/><path fill="#ad2727" d="m40.7 55.8l-2.6-4.6-2.2 1.8z"/><path fill="#cc3636" d="m38.6 55.5l-4.5-.2 2-4.7z"/><path d="m36.8 54.4c-3.5 1.2-2.6 4.1-.9 4.9 1.7.8 3.8 0 4.8-2 1-1.9 2.1-2.8 2.1-2.8s-3.5-.9-6-.1" fill="#e24b4b"/><path d="m36.4 58.5c-.8-.1-2.8-.6-1.4.6 2.9 2.3 6.3-1.2 6.3-1.2s-2.4.8-4.9.6" fill="#83bf4f"/><path fill="#871212" d="m27.6 52.8l6.2-.3-3-2.7z"/><path fill="#991d1d" d="m35 51.8l-6 1.6 3.7-3.3z"/><path fill="#ad2727" d="m33 53.1l-4.5-2.6-.6 3.4z"/><path d="m32.2 54.2v5.5c-2.2.5-4.8-1.1-4.7-3.7.1-2.6-1.3-4.5-1.3-4.5s3.4.6 6 2.7" fill="#cc3636"/><path d="m29.7 54.5c-2.3 3.7.7 5.7 2.9 5.2s3.5-2.9 2.9-5.4c-.6-2.5-.2-4.2-.2-4.2s-3.9 1.7-5.6 4.4" fill="#e24b4b"/><path d="m32.4 58.6c3.3-.8 2.2.8 0 1.3-5.3 1.2-6.1-3.5-6.1-3.5s3.1 2.9 6.1 2.2" fill="#75a843"/><path d="m32.4 58.6c-.8.6-3 1.6-.8 1.6 4.4-.1 4.9-5.8 4.9-5.8s-1.7 2.5-4.1 4.2" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fb.svg
index 186ddc2..eee7e7a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m12.13 45.677c0 0-.518-3.815.092-8.364.088-.652-2.699-.319-2.699-.319s.193 5.388 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 45.677c0 0 .52-3.815-.09-8.364-.088-.652 2.699-.319 2.699-.319s-.193 5.388-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/><path d="m49.765 8.868c-9.7-13.05-37.29-3.333-39.31-4.246 0 0-.326 1.904.836 3.143-1.512 1.015-3.197-.715-3.197-.715s-1.75 4.203.059 6.878c-2.903 3.87.693 24.284.693 24.284h45.49c0 0 5.497-15.944-.758-26.9-1.394-2.446-2.715-.965-3.814-2.444"/></g><path fill="#ffe1bd" d="m58 34.964c0-8.488-5.847-4.18-5.847-4.18-1.068-22.292-6.689-12.243-20.15-12.243-13.465 0-19.08-10.05-20.15 12.243 0 0-5.848-4.309-5.848 4.18 0 3.238 1.119 5.893 4.887 6.179 1.605 13.12 4.492 15.252 14.1 19.908 2.527 1.225 4.105.911 7.01.911 2.906 0 4.484.313 7.01-.911 9.61-4.656 12.497-6.788 14.1-19.908 3.766-.287 4.884-2.941 4.884-6.179"/><g fill="#dbb471"><path d="m12.13 34.15c0 0-.518-3.816.092-8.365.088-.651-2.699-.318-2.699-.318s.193 5.387 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 34.15c0 0 .52-3.816-.09-8.365-.088-.651 2.699-.318 2.699-.318s-.193 5.387-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/></g><path fill="#e6b796" d="m36.953 44.14c0 1.958-3.855 2.521-4.742 2.521-.885 0-4.74-.691-4.74-2.646 0-.001 9.482-.848 9.482.125"/><path fill="#574137" d="m41.693 48.708c0 3.363-4.244 6.187-9.482 6.187-5.236 0-9.482-2.823-9.482-6.187 0 0 5.04.301 9.484.301 4.437 0 9.48-.301 9.48-.301"/><path fill="#fff" d="m40.893 49.18c0 1.698-3.885 3.042-8.68 3.042s-8.682-1.344-8.682-3.042c0 0 4.102.34 8.682.34 4.578-.001 8.68-.34 8.68-.34"/><path fill="#f5f5f5" d="m13.635 30.494c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#0a84a5" cx="21.294" cy="31.613" rx="3.925" ry="3.889"/><path fill="#231f20" d="m22.544 31.613c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.685.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#664e27" d="m13.494 31.969c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.37 30.494c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#0a84a5" cx="42.709" cy="31.613" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="42.709" cy="31.613" rx="1.25" ry="1.238"/><path fill="#664e27" d="m50.51 31.969c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 8.8c-9.8-13-37.6-3.3-39.7-4.2 0 0-.3 1.9.8 3.1-1.4 1-3.1-.7-3.1-.7s-1.8 4.2.1 6.8c-3 3.9.6 24.2.6 24.2h45.9c0 0 5.5-15.9-.8-26.7-1.3-2.5-2.7-1-3.8-2.5" fill="#dbb471"/><path d="m55 29.6c-.2 1.1-.4 2.1-.7 2.7-.5 1-1.6 1.6-1.6 1.6s.3-2.1.2-5.1c-1.4-20.1-7.3-10.5-20.9-10.5-13.6 0-19.5-9.6-20.8 10.6-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.6-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4-.1-4 5.2 0 3.3 1.2 5.9 5.1 6.2 1.7 13.2 4.7 15.3 14.6 20 2.5 1.2 4.2.9 7.2.9 3 0 4.7.3 7.3-.9 10-4.7 13-6.8 14.6-20 3.9-.3 5.1-3 5.1-6.2 0-5.3-2.3-5.7-4-5.3" fill="#ffe1bd"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fc.svg
index 424dcba..6bdf858 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m12.13 45.677c0 0-.518-3.815.092-8.364.088-.652-2.699-.319-2.699-.319s.193 5.388 1.029 7.06c.52 1.034 1.578 1.622 1.578 1.622"/><path d="m51.877 45.677c0 0 .52-3.815-.09-8.364-.088-.652 2.699-.319 2.699-.319s-.193 5.388-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/><path d="m49.766 8.868c-9.702-13.05-37.29-3.333-39.31-4.246 0 0-.326 1.904.836 3.143-1.511 1.015-3.197-.715-3.197-.715s-1.75 4.203.059 6.878c-2.902 3.87.693 24.284.693 24.284h45.49c0 0 5.496-15.944-.758-26.9-1.394-2.446-2.715-.965-3.814-2.444"/></g><path fill="#fed0ac" d="m58 34.964c0-8.488-5.846-4.18-5.846-4.18-1.068-22.292-6.689-12.243-20.16-12.243-13.465 0-19.08-10.05-20.15 12.243 0 0-5.848-4.309-5.848 4.18 0 3.238 1.119 5.893 4.887 6.179 1.605 13.12 4.492 15.252 14.1 19.908 2.527 1.225 4.105.911 7.01.911 2.907 0 4.485.313 7.01-.911 9.611-4.656 12.498-6.788 14.1-19.908 3.767-.287 4.884-2.941 4.884-6.179"/><g fill="#dbb471"><path d="m12.13 34.15c0 0-.518-3.816.092-8.365.088-.651-2.699-.318-2.699-.318s.193 5.387 1.029 7.06c.52 1.034 1.578 1.622 1.578 1.622"/><path d="m51.877 34.15c0 0 .52-3.816-.09-8.365-.088-.651 2.699-.318 2.699-.318s-.193 5.387-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/></g><path fill="#e0a372" d="m36.953 44.14c0 1.958-3.855 2.521-4.743 2.521-.885 0-4.74-.691-4.74-2.646 0-.001 9.483-.848 9.483.125"/><path fill="#574137" d="m41.693 48.708c0 3.363-4.244 6.187-9.483 6.187-5.236 0-9.482-2.823-9.482-6.187 0 0 5.04.301 9.484.301 4.438 0 9.481-.301 9.481-.301"/><path fill="#fff" d="m40.893 49.18c0 1.698-3.885 3.042-8.68 3.042-4.795 0-8.682-1.344-8.682-3.042 0 0 4.102.34 8.682.34 4.578-.001 8.68-.34 8.68-.34"/><path fill="#f5f5f5" d="m13.635 30.494c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#0a84a5" cx="21.294" cy="31.613" rx="3.926" ry="3.889"/><path fill="#231f20" d="m22.544 31.613c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.685.559-1.237 1.25-1.237.688 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m13.494 31.969c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.37 30.494c.322 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#0a84a5" cx="42.71" cy="31.613" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="42.709" cy="31.613" rx="1.25" ry="1.238"/><path fill="#664e27" d="m50.51 31.969c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 8.8c-9.8-13-37.6-3.3-39.7-4.2 0 0-.3 1.9.8 3.1-1.4 1-3.1-.7-3.1-.7s-1.8 4.2.1 6.8c-3 3.9.6 24.2.6 24.2h45.9c0 0 5.5-15.9-.8-26.7-1.3-2.5-2.7-1-3.8-2.5" fill="#dbb471"/><path d="m55 29.6c-.2 1.1-.4 2.1-.7 2.7-.5 1-1.6 1.6-1.6 1.6s.3-2.1.2-5.1c-1.4-20.1-7.3-10.5-20.9-10.5-13.6 0-19.5-9.6-20.8 10.6-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.6-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4-.1-4 5.2 0 3.3 1.2 5.9 5.1 6.2 1.7 13.2 4.7 15.3 14.6 20 2.5 1.2 4.2.9 7.2.9 3 0 4.7.3 7.3-.9 10-4.7 13-6.8 14.6-20 3.9-.3 5.1-3 5.1-6.2 0-5.3-2.3-5.7-4-5.3" fill="#fed0ac"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fd.svg
index 06a0d41..b08ba66 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m12.13 45.677c0 0-.518-3.815.092-8.364.088-.652-2.699-.319-2.699-.319s.193 5.388 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.875 45.677c0 0 .52-3.815-.09-8.364-.088-.652 2.699-.319 2.699-.319s-.193 5.388-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/><path d="m49.764 8.868c-9.7-13.05-37.29-3.333-39.3-4.246 0 0-.326 1.904.836 3.143-1.512 1.015-3.197-.715-3.197-.715s-1.75 4.203.059 6.878c-2.903 3.87.693 24.284.693 24.284h45.49c0 0 5.498-15.944-.758-26.9-1.394-2.446-2.715-.965-3.814-2.444"/></g><path fill="#d6a57c" d="m58 34.964c0-8.488-5.848-4.18-5.848-4.18-1.068-22.292-6.688-12.243-20.15-12.243-13.464 0-19.08-10.05-20.15 12.243 0 0-5.848-4.309-5.848 4.18 0 3.238 1.119 5.893 4.887 6.179 1.605 13.12 4.492 15.252 14.1 19.908 2.527 1.225 4.105.911 7.01.911 2.906 0 4.484.313 7.01-.911 9.61-4.656 12.497-6.788 14.1-19.908 3.766-.287 4.885-2.941 4.885-6.179"/><g fill="#dbb471"><path d="m12.13 34.15c0 0-.518-3.816.092-8.365.088-.651-2.699-.318-2.699-.318s.193 5.387 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.875 34.15c0 0 .52-3.816-.09-8.365-.088-.651 2.699-.318 2.699-.318s-.193 5.387-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/></g><path fill="#b58360" d="m36.952 44.14c0 1.958-3.855 2.521-4.742 2.521-.885 0-4.74-.691-4.74-2.646 0-.001 9.482-.848 9.482.125"/><path fill="#574137" d="m41.692 48.708c0 3.363-4.244 6.187-9.482 6.187-5.236 0-9.482-2.823-9.482-6.187 0 0 5.04.301 9.484.301 4.437 0 9.48-.301 9.48-.301"/><path fill="#fff" d="m40.892 49.18c0 1.698-3.885 3.042-8.68 3.042s-8.682-1.344-8.682-3.042c0 0 4.102.34 8.682.34 4.578-.001 8.68-.34 8.68-.34"/><path fill="#f5f5f5" d="m13.635 30.494c-.323 1.517-.709 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.314-2.199-2.295-4.644-6.156-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#0a84a5" cx="21.294" cy="31.613" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="21.294" cy="31.613" rx="1.25" ry="1.238"/><path fill="#664e27" d="m13.494 31.969c-1.047-6.75 14.1-6.391 14.1.798-2.19-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.37 30.494c.323 1.517.708 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.369.176 7.83 2.347"/><ellipse fill="#0a84a5" cx="42.709" cy="31.613" rx="3.926" ry="3.889"/><path fill="#231f20" d="m43.959 31.613c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.685.559-1.237 1.25-1.237.687 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m50.51 31.969c1.045-6.75-14.1-6.391-14.1.798 2.188-5.72 12.625-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 8.8c-9.8-13-37.6-3.3-39.7-4.2 0 0-.3 1.9.8 3.1-1.4 1-3.1-.7-3.1-.7s-1.8 4.2.1 6.8c-3 3.9.6 24.2.6 24.2h45.9c0 0 5.5-15.9-.8-26.7-1.3-2.5-2.7-1-3.8-2.5" fill="#dbb471"/><path d="m55 29.6c-.2 1.1-.4 2.1-.7 2.7-.5 1-1.6 1.6-1.6 1.6s.3-2.1.2-5.1c-1.4-20.1-7.3-10.5-20.9-10.5-13.6 0-19.5-9.6-20.8 10.6-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.6-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4-.1-4 5.2 0 3.3 1.2 5.9 5.1 6.2 1.7 13.2 4.7 15.3 14.6 20 2.5 1.2 4.2.9 7.2.9 3 0 4.7.3 7.3-.9 10-4.7 13-6.8 14.6-20 3.9-.3 5.1-3 5.1-6.2 0-5.3-2.3-5.7-4-5.3" fill="#d6a57c"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fe.svg
index 3cd6750..72a38d2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m12.13 45.677c0 0-.518-3.815.092-8.364.088-.652-2.699-.319-2.699-.319s.193 5.388 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 45.677c0 0 .52-3.815-.09-8.364-.088-.652 2.699-.319 2.699-.319s-.193 5.388-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/><path d="m49.765 8.868c-9.7-13.05-37.29-3.333-39.31-4.246 0 0-.326 1.904.836 3.143-1.512 1.015-3.197-.715-3.197-.715s-1.75 4.203.059 6.878c-2.903 3.87.693 24.284.693 24.284h45.49c0 0 5.497-15.944-.758-26.9-1.394-2.446-2.715-.965-3.814-2.444"/></g><path fill="#b47d56" d="m58 34.964c0-8.488-5.847-4.18-5.847-4.18-1.068-22.292-6.689-12.243-20.15-12.243-13.465 0-19.08-10.05-20.15 12.243 0 0-5.848-4.309-5.848 4.18 0 3.238 1.119 5.893 4.887 6.179 1.605 13.12 4.492 15.252 14.1 19.908 2.527 1.225 4.105.911 7.01.911 2.906 0 4.484.313 7.01-.911 9.61-4.656 12.497-6.788 14.1-19.908 3.766-.287 4.884-2.941 4.884-6.179"/><g fill="#dbb471"><path d="m12.13 34.15c0 0-.518-3.816.092-8.365.088-.651-2.699-.318-2.699-.318s.193 5.387 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 34.15c0 0 .52-3.816-.09-8.365-.088-.651 2.699-.318 2.699-.318s-.193 5.387-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/></g><path fill="#935e3e" d="m36.953 44.14c0 1.958-3.855 2.521-4.742 2.521-.885 0-4.74-.691-4.74-2.646 0-.001 9.482-.848 9.482.125"/><path fill="#574137" d="m41.693 48.708c0 3.363-4.244 6.187-9.482 6.187-5.236 0-9.482-2.823-9.482-6.187 0 0 5.04.301 9.484.301 4.437 0 9.48-.301 9.48-.301"/><path fill="#fff" d="m40.893 49.18c0 1.698-3.885 3.042-8.68 3.042s-8.682-1.344-8.682-3.042c0 0 4.102.34 8.682.34 4.578-.001 8.68-.34 8.68-.34"/><path fill="#f5f5f5" d="m13.635 30.494c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#0a84a5" cx="21.294" cy="31.613" rx="3.925" ry="3.889"/><path fill="#231f20" d="m22.544 31.613c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.685.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#574137" d="m13.494 31.969c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.37 30.494c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#0a84a5" cx="42.709" cy="31.613" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="42.709" cy="31.613" rx="1.25" ry="1.238"/><path fill="#574137" d="m50.51 31.969c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 8.8c-9.8-13-37.6-3.3-39.7-4.2 0 0-.3 1.9.8 3.1-1.4 1-3.1-.7-3.1-.7s-1.8 4.2.1 6.8c-3 3.9.6 24.2.6 24.2h45.9c0 0 5.5-15.9-.8-26.7-1.3-2.5-2.7-1-3.8-2.5" fill="#dbb471"/><path d="m55 29.6c-.2 1.1-.4 2.1-.7 2.7-.5 1-1.6 1.6-1.6 1.6s.3-2.1.2-5.1c-1.4-20.1-7.3-10.5-20.9-10.5-13.6 0-19.5-9.6-20.8 10.6-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.6-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4-.1-4 5.2 0 3.3 1.2 5.9 5.1 6.2 1.7 13.2 4.7 15.3 14.6 20 2.5 1.2 4.2.9 7.2.9 3 0 4.7.3 7.3-.9 10-4.7 13-6.8 14.6-20 3.9-.3 5.1-3 5.1-6.2 0-5.3-2.3-5.7-4-5.3" fill="#b47d56"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#0a84a5"/><circle cx="20.5" cy="31.6" r="1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3ff.svg
index 9c2b9b0..dcfd094 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f471-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m12.13 45.677c0 0-.518-3.815.092-8.364.088-.652-2.699-.319-2.699-.319s.193 5.388 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 45.677c0 0 .52-3.815-.09-8.364-.088-.652 2.699-.319 2.699-.319s-.193 5.388-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/><path d="m49.765 8.868c-9.702-13.05-37.29-3.333-39.31-4.246 0 0-.326 1.904.836 3.143-1.512 1.015-3.197-.715-3.197-.715s-1.75 4.203.059 6.878c-2.903 3.87.693 24.284.693 24.284h45.49c0 0 5.497-15.944-.758-26.9-1.394-2.446-2.715-.965-3.814-2.444"/></g><path fill="#8a6859" d="m58 34.964c0-8.488-5.847-4.18-5.847-4.18-1.068-22.292-6.689-12.243-20.15-12.243-13.464 0-19.08-10.05-20.15 12.243 0 0-5.848-4.309-5.848 4.18 0 3.238 1.119 5.893 4.887 6.179 1.605 13.12 4.492 15.252 14.1 19.908 2.527 1.225 4.105.911 7.01.911 2.906 0 4.484.313 7.01-.911 9.611-4.656 12.498-6.788 14.1-19.908 3.766-.287 4.884-2.941 4.884-6.179"/><g fill="#dbb471"><path d="m12.13 34.15c0 0-.518-3.816.092-8.365.088-.651-2.699-.318-2.699-.318s.193 5.387 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 34.15c0 0 .52-3.816-.09-8.365-.088-.651 2.699-.318 2.699-.318s-.193 5.387-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/></g><path fill="#705041" d="m36.952 44.14c0 1.958-3.855 2.521-4.742 2.521-.885 0-4.74-.691-4.74-2.646 0-.001 9.482-.848 9.482.125"/><path fill="#574137" d="m41.692 48.708c0 3.363-4.244 6.187-9.482 6.187-5.236 0-9.482-2.823-9.482-6.187 0 0 5.04.301 9.484.301 4.437 0 9.48-.301 9.48-.301"/><path fill="#fff" d="m40.892 49.18c0 1.698-3.885 3.042-8.68 3.042s-8.682-1.344-8.682-3.042c0 0 4.102.34 8.682.34 4.578-.001 8.68-.34 8.68-.34"/><path fill="#f5f5f5" d="m13.636 30.494c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#0a84a5" cx="21.294" cy="31.613" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="21.294" cy="31.613" rx="1.25" ry="1.238"/><path fill="#574137" d="m13.494 31.969c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.37 30.494c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#0a84a5" cx="42.709" cy="31.613" rx="3.925" ry="3.889"/><path fill="#231f20" d="m43.959 31.613c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.685.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#574137" d="m50.51 31.969c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 8.8c-9.8-13-37.6-3.3-39.7-4.2 0 0-.3 1.9.8 3.1-1.4 1-3.1-.7-3.1-.7s-1.8 4.2.1 6.8c-3 3.9.6 24.2.6 24.2h45.9c0 0 5.5-15.9-.8-26.7-1.3-2.5-2.7-1-3.8-2.5" fill="#dbb471"/><path d="m55 29.6c-.2 1.1-.4 2.1-.7 2.7-.5 1-1.6 1.6-1.6 1.6s.3-2.1.2-5.1c-1.4-20.1-7.3-10.5-20.9-10.5-13.6 0-19.5-9.6-20.8 10.6-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.6-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4-.1-4 5.2 0 3.3 1.2 5.9 5.1 6.2 1.7 13.2 4.7 15.3 14.6 20 2.5 1.2 4.2.9 7.2.9 3 0 4.7.3 7.3-.9 10-4.7 13-6.8 14.6-20 3.9-.3 5.1-3 5.1-6.2 0-5.3-2.3-5.7-4-5.3" fill="#8a6859"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#574137"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#0a84a5"/><circle cx="20.5" cy="31.6" r="1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f471.svg b/build/js/jsxc/lib/emojione/assets/svg/1f471.svg
index 54430c2..2f56b37 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f471.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f471.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dbb471"><path d="m12.13 45.677c0 0-.518-3.815.092-8.364.088-.652-2.699-.319-2.699-.319s.193 5.388 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 45.677c0 0 .52-3.815-.09-8.364-.088-.652 2.699-.319 2.699-.319s-.193 5.388-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/><path d="m49.765 8.868c-9.702-13.05-37.29-3.333-39.31-4.246 0 0-.326 1.904.836 3.143-1.512 1.015-3.197-.715-3.197-.715s-1.75 4.203.059 6.878c-2.903 3.87.693 24.284.693 24.284h45.49c0 0 5.497-15.944-.758-26.9-1.394-2.446-2.715-.965-3.814-2.444"/></g><path fill="#ffdd67" d="m58 34.964c0-8.488-5.847-4.18-5.847-4.18-1.068-22.292-6.689-12.243-20.15-12.243-13.464 0-19.08-10.05-20.15 12.243 0 0-5.848-4.309-5.848 4.18 0 3.238 1.119 5.893 4.887 6.179 1.605 13.12 4.492 15.252 14.1 19.908 2.527 1.225 4.105.911 7.01.911 2.906 0 4.484.313 7.01-.911 9.611-4.656 12.498-6.788 14.1-19.908 3.766-.287 4.884-2.941 4.884-6.179"/><g fill="#dbb471"><path d="m12.13 34.15c0 0-.518-3.816.092-8.365.088-.651-2.699-.318-2.699-.318s.193 5.387 1.029 7.06c.519 1.034 1.578 1.622 1.578 1.622"/><path d="m51.876 34.15c0 0 .52-3.816-.09-8.365-.088-.651 2.699-.318 2.699-.318s-.193 5.387-1.031 7.06c-.517 1.034-1.578 1.622-1.578 1.622"/></g><path fill="#eba352" d="m36.952 44.14c0 1.958-3.855 2.521-4.742 2.521-.885 0-4.74-.691-4.74-2.646 0-.001 9.482-.848 9.482.125"/><path fill="#574137" d="m41.692 48.708c0 3.363-4.244 6.187-9.482 6.187-5.236 0-9.482-2.823-9.482-6.187 0 0 5.04.301 9.484.301 4.437 0 9.48-.301 9.48-.301"/><path fill="#fff" d="m40.892 49.18c0 1.698-3.885 3.042-8.68 3.042s-8.682-1.344-8.682-3.042c0 0 4.102.34 8.682.34 4.578-.001 8.68-.34 8.68-.34"/><path fill="#f5f5f5" d="m13.636 30.494c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#0a84a5" cx="21.294" cy="31.613" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="21.294" cy="31.613" rx="1.25" ry="1.238"/><path fill="#664e27" d="m13.494 31.969c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m50.37 30.494c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#0a84a5" cx="42.709" cy="31.613" rx="3.925" ry="3.889"/><path fill="#231f20" d="m43.959 31.613c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.553-1.251-1.238s.56-1.237 1.251-1.237c.687 0 1.249.552 1.249 1.237"/><path fill="#664e27" d="m50.51 31.969c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.9 8.8c-9.8-13-37.6-3.3-39.7-4.2 0 0-.3 1.9.8 3.1-1.4 1-3.1-.7-3.1-.7s-1.8 4.2.1 6.8c-3 3.9.6 24.2.6 24.2h45.9c0 0 5.5-15.8-.8-26.7-1.3-2.5-2.7-1-3.8-2.5" fill="#dbb471"/><path d="m55 29.6c-.2 1.1-.4 2.1-.7 2.7-.5 1-1.6 1.6-1.6 1.6s.3-2.1.2-5.1c-1.4-20.1-7.3-10.5-20.9-10.5-13.6 0-19.5-9.6-20.8 10.6-.1 2.9.2 5.1.2 5.1s-1.1-.6-1.6-1.6c-.3-.6-.5-1.6-.7-2.7-1.8-.5-4-.1-4 5.2 0 3.3 1.2 5.9 5.1 6.2 1.7 13.2 4.7 15.3 14.6 20 2.5 1.2 4.2.9 7.2.9 3 0 4.7.3 7.3-.9 10-4.7 13-6.8 14.6-20 3.9-.3 5.1-3 5.1-6.2 0-5.3-2.3-5.7-4-5.3" fill="#ffdd67"/><path d="m41 48.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#937237"/><path d="m20 28.6c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m22 31.6c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 32.1c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 28.6c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="31.6" r="4.5" fill="#0a84a5"/><path d="m42 31.6c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 32.1c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m32 45c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0 0 3-4.2 3" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fb.svg
index 2a11aa6..f02094d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fb.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m31.946 18.443c-16.791 0-28.746.475-28.746 9.752 0 .822.82 13.775.82 13.775h55.767l.818-13.775c0-7.252-10.222-9.752-28.659-9.752"/><path fill="#ffe1bd" d="m5.661 38.28c0 0 4.549-9.377 0-9.377h52.83c-5.354 0 0 9.377 0 9.377s3.512-.459 3.512 3.733c0 5.04-3.611 4.192-3.611 4.192 0 7.533-7.728 15.789-26.82 15.789-18.09 0-25.926-6.748-25.926-15.789 0 0-3.439.852-3.439-4.192-.001-3.995 3.454-3.733 3.454-3.733"/><path fill="#664e27" d="m24.637 50.756c-.139.158-.211.363-.211.611-.002 1.691 3.346 3.766 7.475 3.766 4.128 0 7.474-2.061 7.474-3.752 0-.229-.064-.467-.179-.625 0 0-3.229 1.459-7.295 1.459-4.059 0-7.264-1.459-7.264-1.459"/><path fill="#f16a65" d="m31.87 4.883c-18.01 0-25.838 13.156-28.516 16.461-2.861 3.533-.291 9.881-.291 9.881s.291 2.875 28.836 2.875c28.545 0 28.837-2.875 28.837-2.875s2.569-6.348-.292-9.881c-2.688-3.319-10.559-16.461-28.574-16.461"/><g fill="#468bc4"><path d="m17.206 23.859c1.471-3.271 5.04-13.775 12.237-18.977-16.292 1.115-23.533 13.219-26.09 16.37-2.861 3.533-.291 9.881-.291 9.881s.188 1.711 13.381 2.492c-.336-2.885-.492-6.977.762-9.766"/><path d="m46.595 23.859c-1.47-3.271-5.04-13.775-12.237-18.977 16.292 1.114 23.533 13.218 26.09 16.369 2.861 3.533.29 9.881.29 9.881s-.188 1.711-13.381 2.492c.337-2.884.493-6.976-.761-9.765"/></g><ellipse fill="#c94747" cx="31.87" cy="4.522" rx="3.987" ry="2.526"/><path fill="#454749" d="m31.899 24.752c-17.262 0-25.501-.918-29.439-1.785-1.29 3.563.604 8.258.604 8.258s.29 2.875 28.835 2.875c28.545 0 28.837-2.875 28.837-2.875s1.895-4.695.604-8.257c-3.938.866-12.18 1.784-29.441 1.784"/><ellipse fill="#fbbf67" cx="31.9" cy="29.492" rx="3.987" ry="3.644"/><path fill="#f5f5f5" d="m12.534 38.496c-.323 1.517-.709 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.314-2.199-2.295-4.644-6.156-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.19" cy="39.615" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.19" cy="39.615" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.393 39.971c-1.047-6.75 14.1-6.391 14.1.798-2.19-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.27 38.496c.323 1.517.708 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.607" cy="39.615" rx="3.926" ry="3.889"/><path fill="#231f20" d="m44.857 39.615c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.688 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m51.41 39.971c1.045-6.75-14.1-6.391-14.1.798 2.188-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m5 28l1 12h52l1-12z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#ffe1bd"/><path d="M32,4C15.1,4,7.8,17.5,5.3,20.9C2.6,24.5,5,31,5,31s0.3,3,27,3c26.7,0,27-3,27-3s2.4-6.5-0.3-10.1
+ C56.2,17.5,48.8,4,32,4z" fill="#f16a65"/><g fill="#468bc4"><path d="m18.2 23.5c1.4-3.4 4.8-14.2 11.5-19.5-15.3 1.1-22 13.6-24.4 16.8-2.7 3.6-.3 10.2-.3 10.2s.2 1.8 12.5 2.6c-.3-3-.4-7.2.7-10.1"/><path d="m45.8 23.5c-1.4-3.4-4.8-14.2-11.5-19.5 15.3 1.1 22 13.6 24.4 16.8 2.7 3.6.3 10.2.3 10.2s-.2 1.8-12.5 2.6c.3-3 .4-7.2-.7-10.1"/></g><ellipse cx="32" cy="5" rx="4" ry="3" fill="#c94747"/><path d="m32 24.4c-16.2 0-23.9-.9-27.6-1.8-1.2 3.6.6 8.4.6 8.4s.3 3 27 3c26.7 0 27-3 27-3s1.8-4.8.6-8.5c-3.7 1-11.4 1.9-27.6 1.9" fill="#454749"/><circle cx="32" cy="29" r="4" fill="#fbbf67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fc.svg
index 34f9526..9933af0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fc.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32.05 18.443c-16.848 0-28.843.475-28.843 9.752 0 .822.822 13.775.822 13.775h55.955l.822-13.775c.001-7.252-10.256-9.752-28.756-9.752"/><path fill="#fed0ac" d="m5.47 38.28c0 0 4.563-9.377 0-9.377h53.01c-5.37 0 0 9.377 0 9.377s3.523-.459 3.523 3.733c0 5.04-3.623 4.192-3.623 4.192 0 7.533-7.753 15.789-26.911 15.789-18.15 0-26.01-6.748-26.01-15.789 0 0-3.451.852-3.451-4.192.001-3.995 3.468-3.733 3.468-3.733"/><path fill="#664e27" d="m24.713 50.756c-.139.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.18-.625 0 0-3.24 1.459-7.32 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f16a65" d="m31.971 4.883c-18.07 0-25.925 13.156-28.612 16.461-2.871 3.533-.291 9.881-.291 9.881s.291 2.875 28.932 2.875c28.641 0 28.934-2.875 28.934-2.875s2.578-6.348-.293-9.881c-2.697-3.319-10.594-16.461-28.67-16.461"/><g fill="#468bc4"><path d="m17.256 23.859c1.477-3.271 5.061-13.775 12.279-18.977-16.347 1.115-23.612 13.219-26.18 16.37-2.871 3.533-.291 9.881-.291 9.881s.188 1.711 13.425 2.492c-.338-2.885-.494-6.977.763-9.766"/><path d="m46.746 23.859c-1.475-3.271-5.061-13.775-12.279-18.977 16.348 1.114 23.612 13.218 26.18 16.369 2.871 3.533.291 9.881.291 9.881s-.188 1.711-13.425 2.492c.338-2.884.494-6.976-.764-9.765"/></g><ellipse fill="#c94747" cx="31.972" cy="4.522" rx="4" ry="2.526"/><path fill="#454749" d="m32 24.752c-17.32 0-25.587-.918-29.538-1.785-1.295 3.563.605 8.258.605 8.258s.292 2.875 28.933 2.875c28.641 0 28.934-2.875 28.934-2.875s1.9-4.695.605-8.257c-3.95.866-12.219 1.784-29.539 1.784"/><ellipse fill="#fbbf67" cx="32" cy="29.492" rx="4" ry="3.644"/><path fill="#f5f5f5" d="m12.635 38.496c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="39.615" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.544 39.615c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.688 0 1.25.552 1.25 1.237"/><path fill="#664e27" d="m12.494 39.971c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.496c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="39.615" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="39.615" rx="1.25" ry="1.238"/><path fill="#664e27" d="m51.51 39.971c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m5 28l1 12h52l1-12z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#fed0ac"/><path d="M32,4C15.1,4,7.8,17.5,5.3,20.9C2.6,24.5,5,31,5,31s0.3,3,27,3s27-3,27-3s2.4-6.5-0.3-10.1
+ C56.2,17.5,48.8,4,32,4z" fill="#f16a65"/><g fill="#468bc4"><path d="m18.2 23.5c1.4-3.4 4.8-14.2 11.5-19.5-15.3 1.1-22 13.6-24.4 16.8-2.7 3.6-.3 10.2-.3 10.2s.2 1.8 12.5 2.6c-.3-3-.4-7.2.7-10.1"/><path d="m45.8 23.5c-1.4-3.4-4.8-14.2-11.5-19.5 15.3 1.1 22 13.6 24.4 16.8 2.7 3.6.3 10.2.3 10.2s-.2 1.8-12.5 2.6c.3-3 .4-7.2-.7-10.1"/></g><ellipse cx="32" cy="5" rx="4" ry="3" fill="#c94747"/><path d="m32 24.4c-16.2 0-23.9-.9-27.6-1.8-1.2 3.6.6 8.4.6 8.4s.3 3 27 3 27-3 27-3 1.8-4.8.6-8.5c-3.7 1-11.4 1.9-27.6 1.9" fill="#454749"/><circle cx="32" cy="29" r="4" fill="#fbbf67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fd.svg
index 3051b4a..f2884ff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fd.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32.05 18.443c-16.848 0-28.844.475-28.844 9.752 0 .822.822 13.775.822 13.775h55.957l.822-13.775c.001-7.252-10.256-9.752-28.757-9.752"/><path fill="#d6a57c" d="m5.469 38.28c0 0 4.564-9.377 0-9.377h53.01c-5.371 0 0 9.377 0 9.377s3.523-.459 3.523 3.733c0 5.04-3.623 4.192-3.623 4.192 0 7.533-7.753 15.789-26.912 15.789-18.15 0-26.01-6.748-26.01-15.789 0 0-3.451.852-3.451-4.192.001-3.995 3.468-3.733 3.468-3.733"/><path fill="#664e27" d="m24.713 50.756c-.139.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.143 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.18-.625 0 0-3.24 1.459-7.321 1.459-4.071 0-7.288-1.459-7.288-1.459"/><path fill="#f16a65" d="m31.971 4.883c-18.07 0-25.926 13.156-28.613 16.461-2.871 3.533-.291 9.881-.291 9.881s.291 2.875 28.933 2.875c28.642 0 28.935-2.875 28.935-2.875s2.578-6.348-.293-9.881c-2.697-3.319-10.594-16.461-28.671-16.461"/><g fill="#468bc4"><path d="m17.256 23.859c1.477-3.271 5.061-13.775 12.279-18.977-16.347 1.115-23.613 13.219-26.18 16.37-2.871 3.533-.291 9.881-.291 9.881s.188 1.711 13.426 2.492c-.338-2.885-.494-6.977.763-9.766"/><path d="m46.747 23.859c-1.475-3.271-5.061-13.775-12.279-18.977 16.347 1.115 23.612 13.219 26.18 16.37 2.871 3.533.291 9.881.291 9.881s-.188 1.711-13.425 2.492c.338-2.885.494-6.977-.764-9.766"/></g><ellipse fill="#c94747" cx="31.972" cy="4.522" rx="4" ry="2.526"/><path fill="#454749" d="m32 24.752c-17.32 0-25.588-.918-29.539-1.785-1.295 3.563.605 8.258.605 8.258s.292 2.875 28.934 2.875c28.642 0 28.935-2.875 28.935-2.875s1.9-4.695.605-8.257c-3.95.866-12.219 1.784-29.54 1.784"/><ellipse fill="#fbbf67" cx="32" cy="29.492" rx="4" ry="3.644"/><path fill="#f5f5f5" d="m12.635 38.496c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.294" cy="39.615" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.293" cy="39.615" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.494 39.971c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.496c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="39.615" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.959 39.615c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#664e27" d="m51.51 39.971c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m5 28l1 12h52l1-12z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#d6a57c"/><path d="M32,4C15.1,4,7.8,17.5,5.3,20.9C2.6,24.5,5,31,5,31s0.3,3,27,3s27-3,27-3s2.4-6.5-0.3-10.1
+ C56.2,17.5,48.8,4,32,4z" fill="#f16a65"/><g fill="#468bc4"><path d="m18.2 23.5c1.4-3.4 4.8-14.2 11.5-19.5-15.3 1.1-22 13.6-24.4 16.8-2.7 3.6-.3 10.2-.3 10.2s.2 1.8 12.5 2.6c-.3-3-.4-7.2.7-10.1"/><path d="m45.8 23.5c-1.4-3.4-4.8-14.2-11.5-19.5 15.3 1.1 22 13.6 24.4 16.8 2.7 3.6.3 10.2.3 10.2s-.2 1.8-12.5 2.6c.3-3 .4-7.2-.7-10.1"/></g><ellipse cx="32" cy="5" rx="4" ry="3" fill="#c94747"/><path d="m32 24.4c-16.2 0-23.9-.9-27.6-1.8-1.2 3.6.6 8.4.6 8.4s.3 3 27 3 27-3 27-3 1.8-4.8.6-8.5c-3.7 1-11.4 1.9-27.6 1.9" fill="#454749"/><circle cx="32" cy="29" r="4" fill="#fbbf67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fe.svg
index 030a023..6bb5fad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3fe.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.05 18.443c-16.848 0-28.843.475-28.843 9.752 0 .822.822 13.775.822 13.775h55.957l.822-13.775c.001-7.252-10.257-9.752-28.758-9.752"/><path fill="#b47d56" d="m5.469 38.28c0 0 4.564-9.377 0-9.377h53.01c-5.371 0 0 9.377 0 9.377s3.523-.459 3.523 3.733c0 5.04-3.623 4.192-3.623 4.192 0 7.533-7.754 15.789-26.913 15.789-18.15 0-26.01-6.748-26.01-15.789 0 0-3.451.852-3.451-4.192.001-3.995 3.468-3.733 3.468-3.733"/><path fill="#574137" d="m24.712 50.756c-.139.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766 4.143 0 7.5-2.061 7.5-3.752 0-.229-.064-.467-.18-.625 0 0-3.24 1.459-7.321 1.459-4.071 0-7.288-1.459-7.288-1.459"/><path fill="#f16a65" d="m31.97 4.883c-18.07 0-25.925 13.156-28.612 16.461-2.871 3.533-.291 9.881-.291 9.881s.291 2.875 28.933 2.875c28.643 0 28.936-2.875 28.936-2.875s2.578-6.348-.293-9.881c-2.698-3.319-10.596-16.461-28.673-16.461"/><g fill="#468bc4"><path d="m17.255 23.859c1.477-3.271 5.061-13.775 12.279-18.977-16.347 1.115-23.612 13.219-26.18 16.37-2.871 3.533-.291 9.881-.291 9.881s.188 1.711 13.425 2.492c-.338-2.885-.494-6.977.763-9.766"/><path d="m46.746 23.859c-1.475-3.271-5.061-13.775-12.279-18.977 16.347 1.115 23.613 13.219 26.18 16.37 2.871 3.533.291 9.881.291 9.881s-.188 1.711-13.426 2.492c.338-2.885.494-6.977-.764-9.766"/></g><ellipse fill="#c94747" cx="31.971" cy="4.522" rx="4" ry="2.526"/><path fill="#454749" d="m32 24.752c-17.32 0-25.587-.918-29.538-1.785-1.295 3.563.605 8.258.605 8.258s.291 2.875 28.933 2.875c28.643 0 28.936-2.875 28.936-2.875s1.9-4.695.605-8.257c-3.951.866-12.221 1.784-29.541 1.784"/><ellipse fill="#fbbf67" cx="32" cy="29.492" rx="4" ry="3.644"/><path fill="#f5f5f5" d="m12.634 38.496c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="39.615" rx="3.925" ry="3.889"/><path fill="#231f20" d="m21.543 39.615c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.688 0 1.249.552 1.249 1.237"/><path fill="#574137" d="m12.494 39.971c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.496c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.709" cy="39.615" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.709" cy="39.615" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 39.971c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m5 28l1 12h52l1-12z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#b47d56"/><path d="M32,4C15.1,4,7.8,17.5,5.3,20.9C2.6,24.5,5,31,5,31s0.3,3,27,3s27-3,27-3s2.4-6.5-0.3-10.1
+ C56.2,17.5,48.8,4,32,4z" fill="#f16a65"/><g fill="#468bc4"><path d="m18.2 23.5c1.4-3.4 4.8-14.2 11.5-19.5-15.3 1.1-22 13.6-24.4 16.8-2.7 3.6-.3 10.2-.3 10.2s.2 1.8 12.5 2.6c-.3-3-.4-7.2.7-10.1"/><path d="m45.8 23.5c-1.4-3.4-4.8-14.2-11.5-19.5 15.3 1.1 22 13.6 24.4 16.8 2.7 3.6.3 10.2.3 10.2s-.2 1.8-12.5 2.6c.3-3 .4-7.2-.7-10.1"/></g><ellipse cx="32" cy="5" rx="4" ry="3" fill="#c94747"/><path d="m32 24.4c-16.2 0-23.9-.9-27.6-1.8-1.2 3.6.6 8.4.6 8.4s.3 3 27 3 27-3 27-3 1.8-4.8.6-8.5c-3.7 1-11.4 1.9-27.6 1.9" fill="#454749"/><circle cx="32" cy="29" r="4" fill="#fbbf67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3ff.svg
index 0da2b14..c28a77d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f472-1f3ff.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.05 18.443c-16.848 0-28.843.475-28.843 9.752 0 .822.822 13.775.822 13.775h55.955l.822-13.775c.001-7.252-10.256-9.752-28.756-9.752"/><path fill="#8a6859" d="m5.47 38.28c0 0 4.563-9.377 0-9.377h53.01c-5.37 0 0 9.377 0 9.377s3.523-.459 3.523 3.733c0 5.04-3.623 4.192-3.623 4.192 0 7.533-7.753 15.789-26.911 15.789-18.15 0-26.01-6.748-26.01-15.789 0 0-3.451.852-3.451-4.192 0-3.995 3.467-3.733 3.467-3.733"/><path fill="#574137" d="m24.713 50.756c-.139.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.18-.625 0 0-3.24 1.459-7.32 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f16a65" d="m31.971 4.883c-18.07 0-25.925 13.156-28.612 16.461-2.871 3.533-.291 9.881-.291 9.881s.29 2.875 28.932 2.875 28.935-2.875 28.935-2.875 2.578-6.348-.293-9.881c-2.698-3.319-10.595-16.461-28.671-16.461"/><g fill="#468bc4"><path d="m17.256 23.859c1.477-3.271 5.061-13.775 12.279-18.977-16.347 1.115-23.612 13.219-26.18 16.37-2.871 3.533-.291 9.881-.291 9.881s.188 1.711 13.425 2.492c-.338-2.885-.494-6.977.764-9.766"/><path d="m46.746 23.859c-1.475-3.271-5.061-13.775-12.279-18.977 16.348 1.114 23.612 13.218 26.18 16.369 2.871 3.533.291 9.881.291 9.881s-.188 1.711-13.425 2.492c.338-2.884.494-6.976-.764-9.765"/></g><ellipse fill="#c94747" cx="31.972" cy="4.522" rx="4" ry="2.526"/><path fill="#454749" d="m32 24.752c-17.32 0-25.587-.918-29.538-1.785-1.295 3.563.605 8.258.605 8.258s.291 2.875 28.933 2.875 28.935-2.875 28.935-2.875 1.9-4.695.605-8.257c-3.951.866-12.22 1.784-29.54 1.784"/><ellipse fill="#fbbf67" cx="32" cy="29.492" rx="4" ry="3.644"/><path fill="#f5f5f5" d="m12.635 38.496c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="39.615" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.544 39.615c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.552 1.25 1.237"/><path fill="#574137" d="m12.493 39.971c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.625-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.496c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="39.615" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="39.615" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 39.971c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m5 28l1 12h52l1-12z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#8a6859"/><path d="M32,4C15.1,4,7.8,17.5,5.3,20.9C2.6,24.5,5,31,5,31s0.3,3,27,3c26.7,0,27-3,27-3s2.4-6.5-0.3-10.1
+ C56.2,17.5,48.8,4,32,4z" fill="#f16a65"/><g fill="#468bc4"><path d="m18.2 23.5c1.4-3.4 4.8-14.2 11.5-19.5-15.3 1.1-22 13.6-24.4 16.8-2.7 3.6-.3 10.2-.3 10.2s.2 1.8 12.5 2.6c-.3-3-.4-7.2.7-10.1"/><path d="m45.8 23.5c-1.4-3.4-4.8-14.2-11.5-19.5 15.3 1.1 22 13.6 24.4 16.8 2.7 3.6.3 10.2.3 10.2s-.2 1.8-12.5 2.6c.3-3 .4-7.2-.7-10.1"/></g><ellipse cx="32" cy="5" rx="4" ry="3" fill="#c94747"/><path d="m32 24.4c-16.2 0-23.9-.9-27.6-1.8-1.2 3.6.6 8.4.6 8.4s.3 3 27 3c26.7 0 27-3 27-3s1.8-4.8.6-8.5c-3.7 1-11.4 1.9-27.6 1.9" fill="#454749"/><circle cx="32" cy="29" r="4" fill="#fbbf67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f472.svg b/build/js/jsxc/lib/emojione/assets/svg/1f472.svg
index b6ab4d5..8274a23 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f472.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f472.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.05 18.443c-16.848 0-28.844.475-28.844 9.752 0 .822.822 13.776.822 13.776h55.956l.822-13.776c.001-7.252-10.256-9.752-28.756-9.752"/><path fill="#ffdd67" d="m5.47 38.28c0 0 4.564-9.377 0-9.377h53.01c-5.37 0 0 9.377 0 9.377s3.523-.459 3.523 3.733c0 5.04-3.623 4.192-3.623 4.192 0 7.533-7.753 15.789-26.911 15.789-18.15 0-26.01-6.748-26.01-15.789 0 0-3.451.852-3.451-4.192 0-3.995 3.467-3.733 3.467-3.733"/><path fill="#664e27" d="m24.714 50.756c-.139.158-.211.363-.211.611-.002 1.691 3.357 3.766 7.5 3.766s7.5-2.061 7.5-3.752c0-.229-.064-.467-.18-.625 0 0-3.24 1.459-7.32 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f16a65" d="m31.972 4.882c-18.07 0-25.926 13.156-28.613 16.461-2.871 3.533-.291 9.881-.291 9.881s.29 2.876 28.933 2.876c28.642 0 28.935-2.875 28.935-2.875s2.578-6.348-.293-9.881c-2.698-3.319-10.595-16.462-28.671-16.462"/><g fill="#468bc4"><path d="m17.257 23.859c1.477-3.271 5.061-13.775 12.279-18.977-16.348 1.115-23.613 13.218-26.18 16.369-2.871 3.533-.291 9.881-.291 9.881s.188 1.711 13.426 2.493c-.338-2.885-.494-6.977.764-9.766"/><path d="m46.747 23.859c-1.475-3.271-5.061-13.775-12.279-18.977 16.347 1.115 23.612 13.218 26.18 16.369 2.871 3.533.291 9.881.291 9.881s-.188 1.711-13.425 2.493c.338-2.885.494-6.977-.764-9.766"/></g><ellipse fill="#c94747" cx="31.973" cy="4.522" rx="4" ry="2.526"/><path fill="#454749" d="m32 24.751c-17.32 0-25.588-.918-29.539-1.785-1.295 3.563.605 8.258.605 8.258s.291 2.876 28.934 2.876c28.642 0 28.935-2.875 28.935-2.875s1.9-4.695.605-8.257c-3.951.865-12.22 1.783-29.54 1.783"/><ellipse fill="#fbbf67" cx="32" cy="29.492" rx="4" ry="3.644"/><path fill="#f5f5f5" d="m12.636 38.496c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.294" cy="39.615" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.294" cy="39.615" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.494 39.971c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.496c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="39.615" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.959 39.615c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687 0 1.249.552 1.249 1.237"/><path fill="#664e27" d="m51.51 39.971c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffb300" d="m5 28l1 12h52l1-12z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#ffdd67"/><path d="M32,4C15.1,4,7.8,17.5,5.3,20.9C2.6,24.5,5,31,5,31s0.3,3,27,3s27-3,27-3s2.4-6.5-0.3-10.1
+ C56.2,17.5,48.8,4,32,4z" fill="#f16a65"/><g fill="#468bc4"><path d="m18.2 23.5c1.4-3.4 4.8-14.2 11.5-19.5-15.3 1.1-22 13.6-24.4 16.8-2.7 3.6-.3 10.2-.3 10.2s.2 1.8 12.5 2.6c-.3-3-.4-7.2.7-10.1"/><path d="m45.8 23.5c-1.4-3.4-4.8-14.2-11.5-19.5 15.3 1.1 22 13.6 24.4 16.8 2.7 3.6.3 10.2.3 10.2s-.2 1.8-12.5 2.6c.3-3 .4-7.2-.7-10.1"/></g><ellipse cx="32" cy="5" rx="4" ry="3" fill="#c94747"/><path d="m32 24.4c-16.2 0-23.9-.9-27.6-1.8-1.2 3.6.6 8.4.6 8.4s.3 3 27 3 27-3 27-3 1.8-4.8.6-8.5c-3.7 1-11.4 1.9-27.6 1.9" fill="#454749"/><circle cx="32" cy="29" r="4" fill="#fbbf67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fb.svg
index 96efe94..43c2e9d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m6.703 28.893h50.947l-.096 17.311c0 7.537-7.451 15.795-25.868 15.795-17.441 0-25-6.75-25-15.795l.017-17.311"/><path fill="#fff" d="m59.31 29.553h-54.22c0-11.199 12.137-20.279 27.11-20.279 14.972-.001 27.11 9.08 27.11 20.279"/><path fill="#467591" d="m57.51 47.26c3.311-16.375.984-37.19-25.397-45.26 0 0-19.439 11.393 9.159 26.895 10.986 5.955 16.238 18.365 16.238 18.365"/><path fill="#3a81ad" d="m21.675 9.357c.045-4.617 4.813-7.359 10.443-7.359 28.15 0 35.27 32.49 26.13 40.623-1.874-16.789-12.923-31.955-36.574-33.26"/><path fill="#428bc1" d="m6.724 47.26c-6.717-22.23 16.367-44.654 45.22-37.985 9.04 2.09-1.102 10.141-28.979 19.619-11.841 4.03-16.24 18.366-16.24 18.366"/><path fill="#57a1ce" d="m51.943 9.273c.277-5.244-14.201-7.275-19.831-7.275-28.14 0-35.795 31.51-26.14 41.32 3.837-28.13 22.315-32.74 45.966-34.05"/><path fill="#664e27" d="m24.916 51.744c-.137.156-.211.361-.211.609-.002 1.693 3.357 3.768 7.5 3.768 4.143 0 7.5-2.061 7.5-3.752 0-.229-.064-.469-.178-.625 0 0-3.242 1.459-7.323 1.459-4.072 0-7.288-1.459-7.288-1.459"/><path fill="#f5f5f5" d="m12.634 39.09c-.323 1.517-.709 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.314-2.199-2.295-4.644-6.156-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.293" cy="40.21" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.292" cy="40.21" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.494 40.564c-1.047-6.75 14.1-6.391 14.1.798-2.19-5.719-12.628-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 39.09c.323 1.517.708 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.709" cy="40.21" rx="3.926" ry="3.889"/><path fill="#231f20" d="m44.959 40.21c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.551 1.25 1.237"/><path fill="#664e27" d="m51.51 40.564c1.045-6.75-14.1-6.391-14.1.798 2.188-5.719 12.625-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.7 23h51l-.1 23.2c0 10.2-20.5 15.8-25.6 15.8-4.1 0-25.3-4.1-25.3-15.8v-23.2" fill="#ffe1bd"/><path d="m57.5 47.3c3.3-16.4 1-37.2-25.4-45.3 0 0-17.7 11.5 10.9 27 11 6 14.5 18.3 14.5 18.3" fill="#467591"/><path d="m21.7 9.4c0-4.6 4.8-7.4 10.4-7.4 28.1 0 35.3 32.5 26.1 40.6-1.8-16.8-12.9-31.9-36.5-33.2" fill="#3a81ad"/><path d="M6.7,47.3C0,25,23.1,2.6,51.9,9.3c9,2.1-1.1,10.1-29,19.6C11.1,32.9,6.7,47.3,6.7,47.3z" fill="#428bc1"/><path d="M51.9,9.3C52.2,4,37.7,2,32.1,2C4,2-3.7,33.5,6,43.3C9.8,15.2,28.3,10.6,51.9,9.3z" fill="#57a1ce"/><path d="m20.2 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m22.2 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13.2 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44.2 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m42.2 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.9 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51.2 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41.2 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fc.svg
index 5e194ab..86edb08 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m6.703 28.893h50.946l-.096 17.311c0 7.537-7.451 15.795-25.867 15.795-17.441 0-24.999-6.75-24.999-15.795l.016-17.311"/><path fill="#fff" d="m59.31 29.553h-54.22c0-11.199 12.136-20.279 27.11-20.279 14.971-.001 27.11 9.08 27.11 20.279"/><path fill="#467591" d="m57.51 47.26c3.311-16.375.984-37.19-25.396-45.26 0 0-19.439 11.393 9.158 26.895 10.986 5.955 16.238 18.365 16.238 18.365"/><path fill="#3a81ad" d="m21.675 9.357c.045-4.617 4.813-7.359 10.443-7.359 28.15 0 35.27 32.49 26.13 40.623-1.875-16.789-12.924-31.955-36.574-33.26"/><path fill="#428bc1" d="m6.725 47.26c-6.717-22.23 16.366-44.654 45.22-37.985 9.04 2.09-1.102 10.141-28.979 19.619-11.84 4.03-16.238 18.366-16.238 18.366"/><path fill="#57a1ce" d="m51.942 9.273c.277-5.244-14.201-7.275-19.83-7.275-28.14 0-35.794 31.51-26.13 41.32 3.836-28.13 22.314-32.74 45.964-34.05"/><path fill="#664e27" d="m24.915 51.744c-.137.156-.211.361-.211.609-.002 1.693 3.357 3.768 7.5 3.768s7.5-2.061 7.5-3.752c0-.229-.064-.469-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f5f5f5" d="m12.635 39.09c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="40.21" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.544 40.21c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.551 1.25 1.237"/><path fill="#664e27" d="m12.493 40.564c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.719-12.625-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 39.09c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="40.21" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="40.21" rx="1.25" ry="1.238"/><path fill="#664e27" d="m51.51 40.564c1.047-6.75-14.1-6.391-14.1.798 2.19-5.719 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.7 23h51l-.1 23.2c0 10.2-20.5 15.8-25.6 15.8-4.1 0-25.3-4.1-25.3-15.8v-23.2" fill="#fed0ac"/><path d="m57.5 47.3c3.3-16.4 1-37.2-25.4-45.3 0 0-17.7 11.5 10.9 27 11 6 14.5 18.3 14.5 18.3" fill="#467591"/><path d="m21.7 9.4c0-4.6 4.8-7.4 10.4-7.4 28.1 0 35.3 32.5 26.1 40.6-1.8-16.8-12.9-31.9-36.5-33.2" fill="#3a81ad"/><path d="M6.7,47.3C0,25,23.1,2.6,51.9,9.3c9,2.1-1.1,10.1-29,19.6C11.1,32.9,6.7,47.3,6.7,47.3z" fill="#428bc1"/><path d="M51.9,9.3C52.2,4,37.7,2,32.1,2C4,2-3.7,33.5,6,43.3C9.8,15.2,28.3,10.6,51.9,9.3z" fill="#57a1ce"/><path d="m20.2 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m22.2 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13.2 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44.2 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m42.2 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.9 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51.2 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41.2 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fd.svg
index 8556516..4567f58 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m6.704 28.893h50.945l-.096 17.311c0 7.537-7.45 15.795-25.866 15.795-17.441 0-24.999-6.75-24.999-15.795l.016-17.311"/><path fill="#fff" d="m59.31 29.553h-54.22c0-11.199 12.136-20.279 27.11-20.279 14.971-.001 27.11 9.08 27.11 20.279"/><path fill="#467591" d="m57.5 47.26c3.311-16.375.984-37.19-25.395-45.26 0 0-19.439 11.393 9.158 26.895 10.986 5.955 16.237 18.365 16.237 18.365"/><path fill="#3a81ad" d="m21.675 9.357c.045-4.617 4.813-7.359 10.443-7.359 28.14 0 35.27 32.49 26.13 40.623-1.874-16.789-12.922-31.955-36.572-33.26"/><path fill="#428bc1" d="m6.725 47.26c-6.717-22.23 16.366-44.654 45.22-37.985 9.04 2.09-1.102 10.141-28.978 19.619-11.841 4.03-16.239 18.366-16.239 18.366"/><path fill="#57a1ce" d="m51.942 9.273c.277-5.244-14.201-7.275-19.83-7.275-28.14 0-35.794 31.51-26.13 41.32 3.836-28.13 22.314-32.74 45.964-34.05"/><path fill="#664e27" d="m24.916 51.744c-.137.156-.211.361-.211.609-.002 1.693 3.357 3.768 7.5 3.768 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.469-.178-.625 0 0-3.242 1.459-7.322 1.459-4.073 0-7.289-1.459-7.289-1.459"/><path fill="#f5f5f5" d="m12.635 39.09c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.294" cy="40.21" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.293" cy="40.21" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.494 40.564c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.719-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 39.09c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.708" cy="40.21" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.958 40.21c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687 0 1.249.551 1.249 1.237"/><path fill="#664e27" d="m51.51 40.564c1.046-6.75-14.1-6.391-14.1.798 2.189-5.719 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.7 23h51l-.1 23.2c0 10.2-20.5 15.8-25.6 15.8-4.1 0-25.3-4.1-25.3-15.8v-23.2" fill="#d6a57c"/><path d="m57.5 47.3c3.3-16.4 1-37.2-25.4-45.3 0 0-17.7 11.5 10.9 27 11 6 14.5 18.3 14.5 18.3" fill="#467591"/><path d="m21.7 9.4c0-4.6 4.8-7.4 10.4-7.4 28.1 0 35.3 32.5 26.1 40.6-1.8-16.8-12.9-31.9-36.5-33.2" fill="#3a81ad"/><path d="M6.7,47.3C0,25,23.1,2.6,51.9,9.3c9,2.1-1.1,10.1-29,19.6C11.1,32.9,6.7,47.3,6.7,47.3z" fill="#428bc1"/><path d="M51.9,9.3C52.2,4,37.7,2,32.1,2C4,2-3.7,33.5,6,43.3C9.8,15.2,28.3,10.6,51.9,9.3z" fill="#57a1ce"/><path d="m20.2 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m22.2 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13.2 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44.2 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m42.2 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.9 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51.2 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41.2 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fe.svg
index cfeabcf..ddb3d5b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m6.703 28.893h50.947l-.096 17.311c0 7.537-7.451 15.795-25.867 15.795-17.441 0-25-6.75-25-15.795l.016-17.311"/><path fill="#fff" d="m59.31 29.553h-54.22c0-11.199 12.137-20.279 27.11-20.279 14.971-.001 27.11 9.08 27.11 20.279"/><path fill="#467591" d="m57.51 47.26c3.311-16.375.984-37.19-25.396-45.26 0 0-19.439 11.393 9.158 26.895 10.986 5.955 16.238 18.365 16.238 18.365"/><path fill="#3a81ad" d="m21.675 9.357c.045-4.617 4.813-7.359 10.443-7.359 28.14 0 35.27 32.49 26.13 40.623-1.874-16.789-12.923-31.955-36.573-33.26"/><path fill="#428bc1" d="m6.724 47.26c-6.717-22.23 16.367-44.654 45.22-37.985 9.04 2.09-1.102 10.141-28.978 19.619-11.841 4.03-16.24 18.366-16.24 18.366"/><path fill="#57a1ce" d="m51.942 9.273c.277-5.244-14.201-7.275-19.83-7.275-28.14 0-35.795 31.51-26.14 41.32 3.837-28.13 22.315-32.74 45.965-34.05"/><path fill="#664e27" d="m24.712 51.744c-.137.156-.211.361-.211.609-.002 1.693 3.357 3.768 7.5 3.768 4.142 0 7.5-2.061 7.5-3.752 0-.229-.064-.469-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f5f5f5" d="m12.634 39.09c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="40.21" rx="3.925" ry="3.889"/><path fill="#231f20" d="m21.543 40.21c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.688 0 1.249.551 1.249 1.237"/><path fill="#574137" d="m12.494 40.564c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.719-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 39.09c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.708" cy="40.21" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="40.21" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 40.564c1.046-6.75-14.1-6.391-14.1.798 2.189-5.719 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.7 23h51l-.1 23.2c0 10.2-20.5 15.8-25.6 15.8-4.1 0-25.3-4.1-25.3-15.8v-23.2" fill="#b47d56"/><path d="m57.5 47.3c3.3-16.4 1-37.2-25.4-45.3 0 0-17.7 11.5 10.9 27 11 6 14.5 18.3 14.5 18.3" fill="#467591"/><path d="m21.7 9.4c0-4.6 4.8-7.4 10.4-7.4 28.1 0 35.3 32.5 26.1 40.6-1.8-16.8-12.9-31.9-36.5-33.2" fill="#3a81ad"/><path d="M6.7,47.3C0,25,23.1,2.6,51.9,9.3c9,2.1-1.1,10.1-29,19.6C11.1,32.9,6.7,47.3,6.7,47.3z" fill="#428bc1"/><path d="M51.9,9.3C52.2,4,37.7,2,32.1,2C4,2-3.7,33.5,6,43.3C9.8,15.2,28.3,10.6,51.9,9.3z" fill="#57a1ce"/><path d="m20.2 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m22.2 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13.2 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44.2 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m42.2 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.9 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51.2 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41.2 50.9c0 3.4-4.5 5.1-9 5.1-4.5 0-9-1.7-9-5.1 0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3ff.svg
index 5c439aa..19b2e72 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f473-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m6.703 28.893h50.946l-.096 17.311c0 7.537-7.451 15.795-25.867 15.795-17.441 0-24.999-6.75-24.999-15.795l.016-17.311"/><path fill="#fff" d="m59.31 29.553h-54.22c0-11.199 12.136-20.279 27.11-20.279 14.971-.001 27.11 9.08 27.11 20.279"/><path fill="#467591" d="m57.51 47.26c3.311-16.375.984-37.19-25.396-45.26 0 0-19.439 11.393 9.158 26.895 10.986 5.955 16.238 18.365 16.238 18.365"/><path fill="#3a81ad" d="m21.675 9.357c.045-4.617 4.813-7.359 10.443-7.359 28.15 0 35.27 32.49 26.13 40.623-1.875-16.789-12.924-31.955-36.574-33.26"/><path fill="#428bc1" d="m6.725 47.26c-6.717-22.23 16.366-44.654 45.22-37.985 9.04 2.09-1.102 10.141-28.979 19.619-11.84 4.03-16.238 18.366-16.238 18.366"/><path fill="#57a1ce" d="m51.942 9.273c.277-5.244-14.201-7.275-19.83-7.275-28.14 0-35.794 31.51-26.13 41.32 3.836-28.13 22.314-32.74 45.964-34.05"/><path fill="#574137" d="m24.915 51.744c-.137.156-.211.361-.211.609-.002 1.693 3.357 3.768 7.5 3.768s7.5-2.061 7.5-3.752c0-.229-.064-.469-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f5f5f5" d="m12.635 39.09c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.294" cy="40.21" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.544 40.21c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687 0 1.25.551 1.25 1.237"/><path fill="#574137" d="m12.493 40.564c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.719-12.625-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 39.09c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="40.21" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="40.21" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 40.564c1.047-6.75-14.1-6.391-14.1.798 2.19-5.719 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.7 23h51l-.1 23.2c0 10.2-20.5 15.8-25.6 15.8-4.1 0-25.3-4.1-25.3-15.8v-23.2" fill="#8a6859"/><path d="m57.5 47.3c3.3-16.4 1-37.2-25.4-45.3 0 0-17.7 11.5 10.9 27 11 6 14.5 18.3 14.5 18.3" fill="#467591"/><path d="m21.7 9.4c0-4.6 4.8-7.4 10.4-7.4 28.1 0 35.3 32.5 26.1 40.6-1.8-16.8-12.9-31.9-36.5-33.2" fill="#3a81ad"/><path d="M6.7,47.3C0,25,23.1,2.6,51.9,9.3c9,2.1-1.1,10.1-29,19.6C11.1,32.9,6.7,47.3,6.7,47.3z" fill="#428bc1"/><path d="M51.9,9.3C52.2,4,37.7,2,32.1,2C4,2-3.7,33.5,6,43.3C9.8,15.2,28.3,10.6,51.9,9.3z" fill="#57a1ce"/><path d="m20.2 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m22.2 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13.2 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44.2 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m42.2 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.9 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51.2 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41.2 50.9c0 3.4-4.5 5.1-9 5.1-4.5 0-9-1.7-9-5.1 0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f473.svg b/build/js/jsxc/lib/emojione/assets/svg/1f473.svg
index 082ed42..5112808 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f473.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f473.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m6.704 28.893h50.945l-.096 17.311c0 7.537-7.45 15.795-25.866 15.795-17.441 0-24.999-6.75-24.999-15.795l.016-17.311"/><path fill="#fff" d="m59.31 29.553h-54.22c0-11.199 12.136-20.279 27.11-20.279 14.971-.001 27.11 9.08 27.11 20.279"/><path fill="#467591" d="m57.51 47.26c3.311-16.375.984-37.19-25.396-45.26 0 0-19.439 11.393 9.158 26.895 10.987 5.955 16.238 18.365 16.238 18.365"/><path fill="#3a81ad" d="m21.676 9.357c.045-4.617 4.813-7.359 10.443-7.359 28.14 0 35.27 32.49 26.13 40.623-1.875-16.789-12.923-31.955-36.573-33.26"/><path fill="#428bc1" d="m6.726 47.26c-6.717-22.23 16.366-44.654 45.22-37.985 9.04 2.09-1.102 10.141-28.979 19.619-11.841 4.03-16.238 18.366-16.238 18.366"/><path fill="#57a1ce" d="m51.943 9.273c.277-5.244-14.201-7.275-19.83-7.275-28.14 0-35.794 31.51-26.13 41.32 3.836-28.13 22.314-32.74 45.964-34.05"/><path fill="#664e27" d="m24.916 51.744c-.137.156-.211.361-.211.609-.002 1.693 3.357 3.768 7.5 3.768s7.5-2.061 7.5-3.752c0-.229-.064-.469-.178-.625 0 0-3.242 1.459-7.322 1.459-4.072 0-7.289-1.459-7.289-1.459"/><path fill="#f5f5f5" d="m12.636 39.09c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.294" cy="40.21" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.294" cy="40.21" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.494 40.564c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.719-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 39.09c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="40.21" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.959 40.21c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687 0 1.249.551 1.249 1.237"/><path fill="#664e27" d="m51.51 40.564c1.046-6.75-14.1-6.391-14.1.798 2.189-5.719 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.7 23h51l-.1 23.2c0 10.2-20.5 15.8-25.6 15.8-4.1 0-25.3-4.1-25.3-15.8v-23.2" fill="#ffdd67"/><path d="m57.5 47.3c3.3-16.4 1-37.2-25.4-45.3 0 0-17.7 11.5 10.9 27 11 6 14.5 18.3 14.5 18.3" fill="#467591"/><path d="m21.7 9.4c0-4.6 4.8-7.4 10.4-7.4 28.1 0 35.3 32.5 26.1 40.6-1.8-16.8-12.9-31.9-36.5-33.2" fill="#3a81ad"/><path d="M6.7,47.3C0,25,23.1,2.6,51.9,9.3c9,2.1-1.1,10.1-29,19.6C11.1,32.9,6.7,47.3,6.7,47.3z" fill="#428bc1"/><path d="M51.9,9.3C52.2,4,37.7,2,32.1,2C4,2-3.7,33.5,6,43.3C9.8,15.2,28.3,10.6,51.9,9.3z" fill="#57a1ce"/><path d="m20.2 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m22.2 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13.2 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44.2 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.7" cy="38.8" r="4.5" fill="#664e27"/><path d="m42.2 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.9 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51.2 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41.2 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fb.svg
index bcca194..77aacc5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#748a93" d="m2.224 21.11c0 0 1.697-.648 3.252.113-5.949 6.176-2.457 19.654-2.457 19.654h58.13l.855-9.417c0-13.803-4.859-22.525-29.917-22.525-25.826 0-26.697 5.464-29.859 12.175"/><path fill="#ffe1bd" d="m58.52 36.805c-9.148-3.598-1.969-13.516-1.68-15.494 0 .002-2.143-19.309-24.838-19.311-22.692-.004-24.837 19.313-24.837 19.311.287 1.977 7.466 11.896-1.68 15.494 0 0-3.4-.449-3.4 3.65 0 4.936 3.498 4.102 3.498 4.102 0 7.517 7.406 17.443 26.419 17.443 19.01 0 26.421-9.926 26.421-17.443 0 0 3.496.834 3.496-4.102.001-4.1-3.399-3.65-3.399-3.65"/><g fill="#748a93"><path d="m40.723 52.855c.162 0 .252-.9.252-1.275 0-2.572-4.02-4.791-8.974-4.791-4.957 0-8.977 2.283-8.977 4.857 0 .346.076 1.209.215 1.209h3.03l.598-1.438.537 1.438h13.32"/><path d="m17.584 9.768c2.34-.738 4.652-1.525 7.07-2.042 2.401-.55 4.867-.867 7.349-.971 2.482-.069 4.983.08 7.424.57 2.438.476 4.823 1.257 6.992 2.442-2.435-.395-4.815-.721-7.2-.895-2.385-.162-4.765-.219-7.147-.119-2.384.061-4.767.281-7.171.508-2.399.215-4.828.583-7.313.507"/><path d="m14.473 13.98c2.869-.739 5.715-1.531 8.646-2.045 2.92-.549 5.893-.863 8.879-.967 2.986-.068 5.989.076 8.941.563 2.951.472 5.861 1.247 8.586 2.449-2.948-.399-5.85-.724-8.757-.898-2.905-.162-5.809-.217-8.713-.116-2.906.062-5.811.283-8.732.51-2.918.216-5.862.584-8.85.504"/></g><g fill="#454749"><path d="m17.751 39.28l-.334-2.982c.778-.086 1.863-.297 3.12-.539 5.881-1.138 15.726-3.039 26.365.611l-.973 2.838c-9.881-3.391-19.236-1.584-24.823-.504-1.318.255-2.459.475-3.355.576"/><ellipse cx="19.709" cy="37.879" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.708" cy="37.879" rx="5.983" ry="6"/><ellipse fill="#454749" cx="44.29" cy="37.879" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="37.879" rx="5.983" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 8.9c0 0-.1 0 0 0-.1 0-.1 0-.2 0-25 0-29.9 8.8-29.9 22.6l.9 9.4h58.3l.9-9.4c-.1-13.8-5-22.6-30-22.6" fill="#748a93"/><path d="m58.5 36.8c-9.1-3.6-2-13.5-1.7-15.5 0 0-2.1-19.3-24.8-19.3-22.7 0-24.8 19.3-24.8 19.3.3 2 7.5 11.9-1.7 15.5 0 0-3.4-.4-3.4 3.7 0 4.9 3.5 4.1 3.5 4.1 0 7.5 7.4 17.4 26.4 17.4 19 0 26.4-9.9 26.4-17.4 0 0 3.5.8 3.5-4.1 0-4.1-3.4-3.7-3.4-3.7" fill="#ffe1bd"/><g fill="#748a93"><path d="m40.7 52.9c.2 0 .3-.9.3-1.3 0-2.6-4-4.8-9-4.8s-9 2.3-9 4.9c0 .3.1 1.2.2 1.2 0 0 17.5 0 17.5 0"/><path d="m17.6 9.8c2.3-.7 4.7-1.5 7.1-2 2.4-.5 4.9-.9 7.3-1 2.5-.1 5 .1 7.4.6 2.4.5 4.8 1.3 7 2.4-2.4-.4-4.8-.8-7.2-.9-2.4-.2-4.8-.2-7.1-.1-2.4.1-4.8.3-7.2.5-2.4.2-4.8.5-7.3.5"/><path d="m14.5 14c2.9-.7 5.7-1.5 8.6-2 2.9-.5 5.9-.9 8.9-1 3-.1 6 .1 8.9.6 3 .5 5.9 1.2 8.6 2.4-2.9-.4-5.8-.7-8.8-.9-2.9-.2-5.8-.2-8.7-.1-2.9.1-5.8.3-8.7.5-2.9.2-5.8.6-8.8.5"/></g><g fill="#454749"><path d="m17.8 39.3l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="37.9" rx="9" ry="9"/></g><ellipse cx="19.7" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="37.9" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fc.svg
index 5580465..03c13c5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#748a93" d="m2.224 21.11c0 0 1.697-.648 3.252.113-5.949 6.176-2.457 19.654-2.457 19.654h58.13l.855-9.417c0-13.803-4.859-22.525-29.917-22.525-25.826 0-26.697 5.464-29.859 12.175"/><path fill="#fed0ac" d="m58.52 36.805c-9.148-3.598-1.969-13.516-1.68-15.494 0 .002-2.143-19.309-24.838-19.311-22.692-.004-24.837 19.313-24.837 19.311.287 1.977 7.466 11.896-1.68 15.494 0 0-3.4-.449-3.4 3.65 0 4.936 3.498 4.102 3.498 4.102 0 7.517 7.406 17.443 26.419 17.443 19.01 0 26.421-9.926 26.421-17.443 0 0 3.496.834 3.496-4.102.001-4.1-3.399-3.65-3.399-3.65"/><g fill="#748a93"><path d="m40.723 52.855c.162 0 .252-.9.252-1.275 0-2.572-4.02-4.791-8.974-4.791-4.957 0-8.977 2.283-8.977 4.857 0 .346.076 1.209.215 1.209h3.03l.598-1.438.537 1.438h13.32"/><path d="m17.584 9.768c2.341-.738 4.651-1.525 7.07-2.042 2.402-.55 4.867-.867 7.35-.971 2.483-.069 4.985.08 7.424.57 2.439.476 4.824 1.257 6.992 2.442-2.436-.396-4.814-.722-7.201-.896-2.385-.162-4.764-.219-7.147-.119-2.384.061-4.768.281-7.17.508-2.399.216-4.828.584-7.313.508"/><path d="m14.473 13.98c2.87-.739 5.715-1.531 8.646-2.045 2.921-.549 5.895-.863 8.881-.967 2.987-.068 5.989.076 8.942.563 2.951.472 5.859 1.247 8.584 2.449-2.947-.399-5.85-.724-8.756-.898-2.906-.162-5.809-.217-8.713-.116-2.906.062-5.812.283-8.732.51-2.921.216-5.864.584-8.852.504"/></g><g fill="#454749"><path d="m17.751 39.28l-.334-2.982c.777-.086 1.863-.297 3.119-.539 5.881-1.138 15.727-3.039 26.366.611l-.973 2.838c-9.881-3.391-19.236-1.584-24.823-.504-1.319.255-2.459.475-3.355.576"/><ellipse cx="19.708" cy="37.879" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.708" cy="37.879" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.29" cy="37.879" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="37.879" rx="5.983" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 8.9c0 0-.1 0 0 0-.1 0-.1 0-.2 0-25 0-29.9 8.8-29.9 22.6l.9 9.4h58.3l.9-9.4c-.1-13.8-5-22.6-30-22.6" fill="#748a93"/><path d="m58.5 36.8c-9.1-3.6-2-13.5-1.7-15.5 0 0-2.1-19.3-24.8-19.3-22.7 0-24.8 19.3-24.8 19.3.3 2 7.5 11.9-1.7 15.5 0 0-3.4-.4-3.4 3.7 0 4.9 3.5 4.1 3.5 4.1 0 7.5 7.4 17.4 26.4 17.4 19 0 26.4-9.9 26.4-17.4 0 0 3.5.8 3.5-4.1 0-4.1-3.4-3.7-3.4-3.7" fill="#fed0ac"/><g fill="#748a93"><path d="m40.7 52.9c.2 0 .3-.9.3-1.3 0-2.6-4-4.8-9-4.8s-9 2.3-9 4.9c0 .3.1 1.2.2 1.2 0 0 17.5 0 17.5 0"/><path d="m17.6 9.8c2.3-.7 4.7-1.5 7.1-2 2.4-.5 4.9-.9 7.3-1 2.5-.1 5 .1 7.4.6 2.4.5 4.8 1.3 7 2.4-2.4-.4-4.8-.8-7.2-.9-2.4-.2-4.8-.2-7.1-.1-2.4.1-4.8.3-7.2.5-2.4.2-4.8.5-7.3.5"/><path d="m14.5 14c2.9-.7 5.7-1.5 8.6-2 2.9-.5 5.9-.9 8.9-1 3-.1 6 .1 8.9.6 3 .5 5.9 1.2 8.6 2.4-2.9-.4-5.8-.7-8.8-.9-2.9-.2-5.8-.2-8.7-.1-2.9.1-5.8.3-8.7.5-2.9.2-5.8.6-8.8.5"/></g><g fill="#454749"><path d="m17.8 39.3l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="37.9" rx="9" ry="9"/></g><ellipse cx="19.7" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="37.9" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fd.svg
index 4c0860a..2a73bef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#748a93" d="m2.224 21.11c0 0 1.697-.648 3.252.113-5.949 6.176-2.457 19.654-2.457 19.654h58.13l.855-9.417c0-13.803-4.859-22.525-29.917-22.525-25.826 0-26.697 5.464-29.859 12.175"/><path fill="#d6a57c" d="m58.52 36.805c-9.148-3.598-1.969-13.516-1.68-15.494 0 .002-2.143-19.309-24.837-19.311-22.693-.004-24.838 19.313-24.838 19.311.287 1.977 7.467 11.896-1.68 15.494 0 0-3.4-.449-3.4 3.65 0 4.936 3.498 4.102 3.498 4.102 0 7.517 7.406 17.443 26.42 17.443 19.01 0 26.421-9.926 26.421-17.443 0 0 3.496.834 3.496-4.102 0-4.1-3.4-3.65-3.4-3.65"/><g fill="#748a93"><path d="m40.724 52.855c.162 0 .252-.9.252-1.275 0-2.572-4.02-4.791-8.975-4.791s-8.977 2.283-8.977 4.857c0 .346.076 1.209.215 1.209h3.03l.598-1.438.537 1.438h13.321"/><path d="m17.585 9.768c2.34-.738 4.651-1.525 7.07-2.042 2.401-.55 4.867-.867 7.349-.971 2.482-.069 4.984.08 7.426.57 2.438.476 4.822 1.257 6.992 2.442-2.437-.396-4.816-.722-7.202-.896-2.384-.162-4.765-.219-7.146-.119-2.384.061-4.768.281-7.171.508-2.401.216-4.83.584-7.313.508"/><path d="m14.474 13.98c2.869-.739 5.715-1.531 8.646-2.045 2.921-.549 5.894-.863 8.88-.967 2.986-.068 5.988.076 8.941.563 2.951.472 5.86 1.247 8.585 2.449-2.947-.399-5.849-.724-8.757-.898-2.905-.162-5.809-.217-8.713-.116-2.906.062-5.811.283-8.732.51-2.92.216-5.862.584-8.85.504"/></g><g fill="#454749"><path d="m17.751 39.28l-.334-2.982c.778-.086 1.863-.297 3.121-.539 5.881-1.138 15.727-3.039 26.365.611l-.974 2.838c-9.881-3.391-19.235-1.584-24.823-.504-1.319.255-2.459.475-3.355.576"/><ellipse cx="19.709" cy="37.879" rx="8.976" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.709" cy="37.879" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.29" cy="37.879" rx="8.975" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="37.879" rx="5.984" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 8.9c0 0-.1 0 0 0-.1 0-.1 0-.2 0-25 0-29.9 8.8-29.9 22.6l.9 9.4h58.3l.9-9.4c-.1-13.8-5-22.6-30-22.6" fill="#748a93"/><path d="m58.5 36.8c-9.1-3.6-2-13.5-1.7-15.5 0 0-2.1-19.3-24.8-19.3-22.7 0-24.8 19.3-24.8 19.3.3 2 7.5 11.9-1.7 15.5 0 0-3.4-.4-3.4 3.7 0 4.9 3.5 4.1 3.5 4.1 0 7.5 7.4 17.4 26.4 17.4 19 0 26.4-9.9 26.4-17.4 0 0 3.5.8 3.5-4.1 0-4.1-3.4-3.7-3.4-3.7" fill="#d6a57c"/><g fill="#748a93"><path d="m40.7 52.9c.2 0 .3-.9.3-1.3 0-2.6-4-4.8-9-4.8s-9 2.3-9 4.9c0 .3.1 1.2.2 1.2 0 0 17.5 0 17.5 0"/><path d="m17.6 9.8c2.3-.7 4.7-1.5 7.1-2 2.4-.5 4.9-.9 7.3-1 2.5-.1 5 .1 7.4.6 2.4.5 4.8 1.3 7 2.4-2.4-.4-4.8-.8-7.2-.9-2.4-.2-4.8-.2-7.1-.1-2.4.1-4.8.3-7.2.5-2.4.2-4.8.5-7.3.5"/><path d="m14.5 14c2.9-.7 5.7-1.5 8.6-2 2.9-.5 5.9-.9 8.9-1 3-.1 6 .1 8.9.6 3 .5 5.9 1.2 8.6 2.4-2.9-.4-5.8-.7-8.8-.9-2.9-.2-5.8-.2-8.7-.1-2.9.1-5.8.3-8.7.5-2.9.2-5.8.6-8.8.5"/></g><g fill="#454749"><path d="m17.8 39.3l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="37.9" rx="9" ry="9"/></g><ellipse cx="19.7" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="37.9" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fe.svg
index 74a2e1d..0c9133e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cbd8de" d="m2.224 21.11c0 0 1.697-.648 3.252.113-5.949 6.176-2.457 19.654-2.457 19.654h58.13l.855-9.417c0-13.803-4.859-22.525-29.917-22.525-25.826 0-26.697 5.464-29.859 12.175"/><path fill="#b47d56" d="m58.52 36.805c-9.148-3.598-1.969-13.516-1.68-15.494 0 .002-2.143-19.309-24.838-19.311-22.692-.004-24.837 19.313-24.837 19.311.287 1.977 7.466 11.896-1.68 15.494 0 0-3.4-.449-3.4 3.65 0 4.936 3.498 4.102 3.498 4.102 0 7.517 7.406 17.443 26.419 17.443 19.01 0 26.421-9.926 26.421-17.443 0 0 3.496.834 3.496-4.102.001-4.1-3.399-3.65-3.399-3.65"/><g fill="#cbd8de"><path d="m40.723 52.855c.162 0 .252-.9.252-1.275 0-2.572-4.02-4.791-8.974-4.791-4.957 0-8.977 2.283-8.977 4.857 0 .346.076 1.209.215 1.209h3.03l.598-1.438.537 1.438h13.32"/><path d="m17.584 9.768c2.34-.738 4.652-1.525 7.07-2.042 2.401-.55 4.867-.867 7.349-.971 2.483-.069 4.983.08 7.424.57 2.439.476 4.824 1.257 6.992 2.442-2.435-.395-4.815-.721-7.2-.895-2.385-.162-4.764-.219-7.147-.119-2.384.061-4.767.281-7.171.508-2.399.215-4.828.583-7.313.507"/><path d="m14.473 13.98c2.869-.739 5.715-1.531 8.646-2.045 2.92-.549 5.893-.863 8.879-.967 2.986-.068 5.99.076 8.941.563 2.951.472 5.861 1.247 8.586 2.449-2.947-.399-5.85-.724-8.756-.898-2.906-.162-5.809-.217-8.714-.116-2.906.062-5.811.283-8.732.51-2.918.216-5.862.584-8.85.504"/></g><g fill="#454749"><path d="m17.751 39.28l-.334-2.982c.778-.086 1.863-.297 3.12-.539 5.881-1.138 15.726-3.039 26.365.611l-.973 2.838c-9.881-3.391-19.236-1.584-24.823-.504-1.318.255-2.459.475-3.355.576"/><ellipse cx="19.709" cy="37.879" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.708" cy="37.879" rx="5.983" ry="6"/><ellipse fill="#454749" cx="44.29" cy="37.879" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="37.879" rx="5.983" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 8.9c0 0-.1 0 0 0-.1 0-.1 0-.2 0-25 0-29.9 8.8-29.9 22.6l.9 9.4h58.3l.9-9.4c-.1-13.8-5-22.6-30-22.6" fill="#cbd8de"/><path d="m58.5 36.8c-9.1-3.6-2-13.5-1.7-15.5 0 0-2.1-19.3-24.8-19.3-22.7 0-24.8 19.3-24.8 19.3.3 2 7.5 11.9-1.7 15.5 0 0-3.4-.4-3.4 3.7 0 4.9 3.5 4.1 3.5 4.1 0 7.5 7.4 17.4 26.4 17.4 19 0 26.4-9.9 26.4-17.4 0 0 3.5.8 3.5-4.1 0-4.1-3.4-3.7-3.4-3.7" fill="#b47d56"/><g fill="#cbd8de"><path d="m40.7 52.9c.2 0 .3-.9.3-1.3 0-2.6-4-4.8-9-4.8s-9 2.3-9 4.9c0 .3.1 1.2.2 1.2 0 0 17.5 0 17.5 0"/><path d="m17.6 9.8c2.3-.7 4.7-1.5 7.1-2 2.4-.5 4.9-.9 7.4-1 2.5-.1 5 .1 7.4.6 2.4.5 4.8 1.3 7 2.4-2.5-.4-4.9-.8-7.3-.9-2.4-.2-4.8-.2-7.1-.1-2.4.1-4.8.3-7.2.5-2.4.2-4.8.5-7.3.5"/><path d="m14.5 14c2.9-.7 5.7-1.5 8.6-2 2.9-.5 5.9-.9 8.9-1 3-.1 6 .1 8.9.6 3 .5 5.9 1.2 8.6 2.4-2.9-.4-5.8-.7-8.8-.9-2.9-.2-5.8-.2-8.7-.1-2.9.1-5.8.3-8.7.5-2.9.2-5.8.6-8.8.5"/></g><g fill="#454749"><path d="m17.8 39.3l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="37.9" rx="9" ry="9"/></g><ellipse cx="19.7" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="37.9" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3ff.svg
index 570223c..14a6554 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f474-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cbd8de" d="m2.224 21.11c0 0 1.697-.648 3.252.113-5.949 6.176-2.457 19.654-2.457 19.654h58.13l.855-9.417c0-13.803-4.859-22.525-29.917-22.525-25.826 0-26.697 5.464-29.859 12.175"/><path fill="#8a6859" d="m58.52 36.805c-9.148-3.598-1.969-13.516-1.68-15.494 0 .002-2.143-19.309-24.838-19.311-22.692-.004-24.837 19.313-24.837 19.311.287 1.977 7.466 11.896-1.68 15.494 0 0-3.4-.449-3.4 3.65 0 4.936 3.498 4.102 3.498 4.102 0 7.517 7.406 17.443 26.419 17.443 19.01 0 26.421-9.926 26.421-17.443 0 0 3.496.834 3.496-4.102.001-4.1-3.399-3.65-3.399-3.65"/><g fill="#cbd8de"><path d="m40.723 52.855c.162 0 .252-.9.252-1.275 0-2.572-4.02-4.791-8.974-4.791-4.957 0-8.977 2.283-8.977 4.857 0 .346.076 1.209.215 1.209h3.03l.598-1.438.537 1.438h13.32"/><path d="m17.584 9.768c2.341-.738 4.651-1.525 7.07-2.042 2.402-.55 4.867-.867 7.35-.971 2.483-.069 4.985.08 7.424.57 2.439.476 4.824 1.257 6.992 2.442-2.436-.396-4.814-.722-7.201-.896-2.385-.162-4.764-.219-7.147-.119-2.384.061-4.768.281-7.17.508-2.399.216-4.828.584-7.313.508"/><path d="m14.473 13.98c2.87-.739 5.715-1.531 8.646-2.045 2.921-.549 5.895-.863 8.881-.967 2.987-.068 5.989.076 8.942.563 2.951.472 5.859 1.247 8.584 2.449-2.947-.399-5.85-.724-8.756-.898-2.906-.162-5.809-.217-8.713-.116-2.906.062-5.812.283-8.732.51-2.921.216-5.864.584-8.852.504"/></g><g fill="#454749"><path d="m17.751 39.28l-.334-2.982c.777-.086 1.863-.297 3.119-.539 5.881-1.138 15.727-3.039 26.366.611l-.973 2.838c-9.881-3.391-19.236-1.584-24.823-.504-1.319.255-2.459.475-3.355.576"/><ellipse cx="19.708" cy="37.879" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.708" cy="37.879" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.29" cy="37.879" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="37.879" rx="5.983" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 8.9c0 0-.1 0 0 0-.1 0-.1 0-.2 0-25 0-29.9 8.8-29.9 22.6l.9 9.4h58.3l.9-9.4c-.1-13.8-5-22.6-30-22.6" fill="#cbd8de"/><path d="m58.5 36.8c-9.1-3.6-2-13.5-1.7-15.5 0 0-2.1-19.3-24.8-19.3-22.7 0-24.8 19.3-24.8 19.3.3 2 7.5 11.9-1.7 15.5 0 0-3.4-.4-3.4 3.7 0 4.9 3.5 4.1 3.5 4.1 0 7.5 7.4 17.4 26.4 17.4 19 0 26.4-9.9 26.4-17.4 0 0 3.5.8 3.5-4.1 0-4.1-3.4-3.7-3.4-3.7" fill="#8a6859"/><g fill="#cbd8de"><path d="m40.7 52.9c.2 0 .3-.9.3-1.3 0-2.6-4-4.8-9-4.8s-9 2.3-9 4.9c0 .3.1 1.2.2 1.2 0 0 17.5 0 17.5 0"/><path d="m17.6 9.8c2.3-.7 4.7-1.5 7.1-2 2.4-.5 4.9-.9 7.4-1 2.5-.1 5 .1 7.4.6 2.4.5 4.8 1.3 7 2.4-2.5-.4-4.9-.8-7.3-.9-2.4-.2-4.8-.2-7.1-.1-2.4.1-4.8.3-7.2.5-2.4.2-4.8.5-7.3.5"/><path d="m14.5 14c2.9-.7 5.7-1.5 8.6-2 2.9-.5 5.9-.9 8.9-1 3-.1 6 .1 8.9.6 3 .5 5.9 1.2 8.6 2.4-2.9-.4-5.8-.7-8.8-.9-2.9-.2-5.8-.2-8.7-.1-2.9.1-5.8.3-8.7.5-2.9.2-5.8.6-8.8.5"/></g><g fill="#454749"><path d="m17.8 39.3l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="37.9" rx="9" ry="9"/></g><ellipse cx="19.7" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="37.9" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f474.svg b/build/js/jsxc/lib/emojione/assets/svg/1f474.svg
index 0fb98a0..79bd197 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f474.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f474.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#748a93" d="m2.224 21.06c0 0 1.697-.648 3.252.113-5.949 6.176-2.457 19.654-2.457 19.654h58.13l.855-9.418c0-13.803-4.859-22.525-29.917-22.525-25.826 0-26.697 5.465-29.859 12.176"/><path fill="#ffdd67" d="m58.52 36.748c-9.147-3.598-1.969-13.516-1.68-15.494 0 .002-2.143-19.309-24.837-19.311-22.693-.004-24.838 19.313-24.838 19.311.287 1.977 7.466 11.896-1.68 15.494 0 0-3.4-.449-3.4 3.65 0 4.936 3.498 4.102 3.498 4.102 0 7.518 7.406 17.443 26.42 17.443 19.01 0 26.421-9.926 26.421-17.443 0 0 3.496.834 3.496-4.102 0-4.099-3.4-3.65-3.4-3.65"/><g fill="#748a93"><path d="m40.724 52.799c.162 0 .252-.9.252-1.275 0-2.572-4.02-4.791-8.975-4.791s-8.977 2.283-8.977 4.857c0 .346.076 1.209.215 1.209h3.03l.598-1.438.537 1.438h13.321"/><path d="m17.584 9.711c2.34-.738 4.652-1.525 7.07-2.042 2.401-.55 4.867-.867 7.349-.971 2.482-.069 4.984.08 7.426.57 2.438.476 4.822 1.257 6.992 2.442-2.437-.396-4.816-.722-7.202-.896-2.384-.162-4.765-.219-7.146-.119-2.384.061-4.768.281-7.171.508-2.401.216-4.83.585-7.314.508"/><path d="m14.473 13.924c2.87-.739 5.715-1.531 8.646-2.045 2.921-.549 5.894-.863 8.88-.967 2.986-.068 5.988.076 8.941.563 2.951.472 5.86 1.247 8.586 2.449-2.948-.399-5.85-.724-8.758-.898-2.905-.162-5.809-.217-8.713-.116-2.906.062-5.811.283-8.732.51-2.919.215-5.861.583-8.85.504"/></g><g fill="#454749"><path d="m17.751 39.22l-.334-2.982c.778-.086 1.863-.297 3.12-.539 5.881-1.138 15.727-3.039 26.366.611l-.974 2.838c-9.881-3.391-19.235-1.584-24.823-.504-1.319.254-2.459.474-3.355.576"/><ellipse cx="19.709" cy="37.822" rx="8.976" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.709" cy="37.822" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.29" cy="37.822" rx="8.975" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="37.822" rx="5.984" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.1 8.9c0 0-.1 0 0 0-.1 0-.1 0-.2 0-25 0-29.9 8.8-29.9 22.6l.9 9.4h58.3l.9-9.4c-.1-13.8-5-22.6-30-22.6" fill="#748a93"/><path d="m58.5 36.8c-9.1-3.6-2-13.5-1.7-15.5 0 0-2.1-19.3-24.8-19.3-22.7 0-24.8 19.3-24.8 19.3.3 2 7.5 11.9-1.7 15.5 0 0-3.4-.4-3.4 3.7 0 4.9 3.5 4.1 3.5 4.1 0 7.5 7.4 17.4 26.4 17.4 19 0 26.4-9.9 26.4-17.4 0 0 3.5.8 3.5-4.1 0-4.1-3.4-3.7-3.4-3.7" fill="#ffdd67"/><g fill="#748a93"><path d="m40.7 52.9c.2 0 .3-.9.3-1.3 0-2.6-4-4.8-9-4.8s-9 2.3-9 4.9c0 .3.1 1.2.2 1.2 0 0 17.5 0 17.5 0"/><path d="m17.6 9.8c2.3-.7 4.7-1.5 7.1-2 2.4-.5 4.9-.9 7.3-1 2.5-.1 5 .1 7.4.6 2.4.5 4.8 1.3 7 2.4-2.4-.4-4.8-.8-7.2-.9-2.4-.2-4.8-.2-7.1-.1-2.4.1-4.8.3-7.2.5-2.4.2-4.8.5-7.3.5"/><path d="m14.5 14c2.9-.7 5.7-1.5 8.6-2 2.9-.5 5.9-.9 8.9-1 3-.1 6 .1 8.9.6 3 .5 5.9 1.2 8.6 2.4-2.9-.4-5.8-.7-8.8-.9-2.9-.2-5.8-.2-8.7-.1-2.9.1-5.8.3-8.7.5-2.9.2-5.8.6-8.8.5"/></g><g fill="#454749"><path d="m17.8 39.3l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="37.9" rx="9" ry="9"/></g><ellipse cx="19.7" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="37.9" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="37.9" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fb.svg
index ea4f7bb..1e1c556 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#627a82" cx="31.992" cy="11.561" rx="15" ry="9.561"/><ellipse fill="#c28fef" cx="31.992" cy="15.57" rx="15" ry="9.561"/><path fill="#ffe1bd" d="m57.25 28.893c-15.611-15.596-35.07-15.666-50.654 0l.096 17.311c0 7.536 7.408 15.796 25.717 15.796 17.341 0 24.857-6.752 24.857-15.797l-.016-17.31"/><path fill="#454749" d="m39.22 51.744c.137.158.211.363.211.611.002 1.691-3.357 3.766-7.5 3.766-4.143 0-7.5-2.061-7.5-3.752 0-.229.064-.467.178-.625 0 0 3.242 1.459 7.322 1.459 4.072 0 7.289-1.459 7.289-1.459"/><path fill="#748a93" d="m31.993 9.111c-29.451 0-35.76 23.74-25.23 32.04 0 0 5.205-8.783 16.13-12.998 28.428-10.974 20.522-19.04 9.105-19.04"/><path fill="#8b9fa5" d="m31.993 9.111c-11.418 0-19.326 8.06 9.105 19.04 10.924 4.215 16.15 12.998 16.15 12.998 10.527-8.296 4.201-32.04-25.25-32.04"/><g fill="#454749"><path d="m42.824 54.38c-.576.003-1.125-.151-1.639-.368-.52-.216-.996-.521-1.434-.881-.85-.727-1.552-1.762-1.594-2.919.775.828 1.458 1.505 2.24 2.157.767.662 1.582 1.258 2.427 2.01"/><path d="m21.04 54.38c.846-.753 1.66-1.349 2.426-2.01.782-.652 1.465-1.329 2.24-2.157-.042 1.157-.744 2.192-1.594 2.919-.438.359-.914.665-1.434.881-.513.216-1.061.371-1.638.368"/><path d="m17.739 40.985l-.334-2.982c.777-.086 1.863-.297 3.119-.539 5.881-1.138 15.726-3.039 26.367.611l-.975 2.838c-9.881-3.391-19.234-1.584-24.822-.504-1.32.255-2.459.475-3.355.576"/><ellipse cx="19.696" cy="39.584" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.696" cy="39.584" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.28" cy="39.584" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.28" cy="39.584" rx="5.984" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="11.6" rx="15" ry="9.6" fill="#627a82"/><ellipse cx="32" cy="15.6" rx="15" ry="9.6" fill="#c28fef"/><path d="m57.3 28.9c-15.6-15.6-35.1-15.7-50.7 0l.1 17.3c0 7.5 7.4 15.8 25.7 15.8 17.3 0 24.9-6.8 24.9-15.8v-17.3" fill="#ffe1bd"/><path d="m39.2 51.7c.1.2.2.4.2.6 0 1.7-3.4 3.8-7.5 3.8s-7.5-2.1-7.5-3.8c0-.2.1-.5.2-.6 0 0 3.2 1.5 7.3 1.5 4.1 0 7.3-1.5 7.3-1.5" fill="#454749"/><path d="m32 9.1c-29.5 0-35.8 23.7-25.2 32 0 0 5.2-8.8 16.1-13 28.4-10.9 20.5-19 9.1-19" fill="#748a93"/><path d="m32 9.1c-11.4 0-19.3 8.1 9.1 19 10.9 4.2 16.1 13 16.1 13 10.6-8.2 4.2-32-25.2-32" fill="#8b9fa5"/><g fill="#454749"><path d="m42.8 54.4c-.6 0-1.1-.2-1.6-.4-.5-.2-1-.5-1.4-.9-.8-.7-1.6-1.8-1.6-2.9.8.8 1.5 1.5 2.2 2.2.8.6 1.6 1.2 2.4 2"/><path d="m21 54.4c.8-.8 1.7-1.3 2.4-2 .8-.7 1.5-1.3 2.2-2.2 0 1.2-.7 2.2-1.6 2.9-.4.4-.9.7-1.4.9-.4.2-1 .4-1.6.4"/><path d="m17.7 41l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.3.3-2.5.5-3.4.6"/><ellipse cx="19.7" cy="39.6" rx="9" ry="9"/></g><ellipse cx="19.7" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="39.6" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fc.svg
index eb497d2..fd7cea0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#627a82" cx="31.992" cy="11.561" rx="15" ry="9.561"/><ellipse fill="#c28fef" cx="31.992" cy="15.57" rx="15" ry="9.561"/><path fill="#fed0ac" d="m57.25 28.893c-15.611-15.596-35.07-15.666-50.654 0l.096 17.311c0 7.536 7.408 15.796 25.717 15.796 17.341 0 24.857-6.752 24.857-15.797l-.016-17.31"/><path fill="#454749" d="m39.22 51.744c.137.158.211.363.211.611.002 1.691-3.357 3.766-7.5 3.766-4.143 0-7.5-2.061-7.5-3.752 0-.229.064-.467.178-.625 0 0 3.242 1.459 7.322 1.459 4.072 0 7.289-1.459 7.289-1.459"/><path fill="#748a93" d="m31.993 9.111c-29.451 0-35.76 23.74-25.23 32.04 0 0 5.205-8.783 16.13-12.998 28.428-10.974 20.522-19.04 9.105-19.04"/><path fill="#8b9fa5" d="m31.993 9.111c-11.418 0-19.326 8.06 9.105 19.04 10.924 4.215 16.15 12.998 16.15 12.998 10.527-8.296 4.201-32.04-25.25-32.04"/><g fill="#454749"><path d="m42.824 54.38c-.577.003-1.125-.151-1.64-.368-.518-.216-.995-.521-1.433-.881-.85-.727-1.552-1.762-1.594-2.919.776.828 1.458 1.505 2.239 2.157.769.662 1.583 1.258 2.428 2.01"/><path d="m21.04 54.38c.845-.753 1.659-1.349 2.427-2.01.781-.652 1.463-1.329 2.239-2.157-.042 1.157-.744 2.192-1.594 2.919-.438.359-.915.665-1.433.881-.514.216-1.061.371-1.639.368"/><path d="m17.724 40.985l-.334-2.982c.779-.086 1.863-.297 3.121-.539 5.881-1.138 15.726-3.039 26.365.611l-.973 2.838c-9.881-3.391-19.236-1.584-24.824-.504-1.318.255-2.458.475-3.355.576"/><ellipse cx="19.682" cy="39.584" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.682" cy="39.584" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.27" cy="39.584" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.27" cy="39.584" rx="5.984" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="11.6" rx="15" ry="9.6" fill="#627a82"/><ellipse cx="32" cy="15.6" rx="15" ry="9.6" fill="#c28fef"/><path d="m57.3 28.9c-15.6-15.6-35.1-15.7-50.7 0l.1 17.3c0 7.5 7.4 15.8 25.7 15.8 17.3 0 24.9-6.8 24.9-15.8v-17.3" fill="#fed0ac"/><path d="m39.2 51.7c.1.2.2.4.2.6 0 1.7-3.4 3.8-7.5 3.8s-7.5-2.1-7.5-3.8c0-.2.1-.5.2-.6 0 0 3.2 1.5 7.3 1.5 4.1 0 7.3-1.5 7.3-1.5" fill="#454749"/><path d="m32 9.1c-29.5 0-35.8 23.7-25.2 32 0 0 5.2-8.8 16.1-13 28.4-10.9 20.5-19 9.1-19" fill="#748a93"/><path d="m32 9.1c-11.4 0-19.3 8.1 9.1 19 10.9 4.2 16.1 13 16.1 13 10.6-8.2 4.2-32-25.2-32" fill="#8b9fa5"/><g fill="#454749"><path d="m42.8 54.4c-.6 0-1.1-.2-1.6-.4-.5-.2-1-.5-1.4-.9-.8-.7-1.6-1.8-1.6-2.9.8.8 1.5 1.5 2.2 2.2.8.6 1.6 1.2 2.4 2"/><path d="m21 54.4c.8-.8 1.7-1.3 2.4-2 .8-.7 1.5-1.3 2.2-2.2 0 1.2-.7 2.2-1.6 2.9-.4.4-.9.7-1.4.9-.4.2-1 .4-1.6.4"/><path d="m17.7 41l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.3.3-2.5.5-3.4.6"/><ellipse cx="19.7" cy="39.6" rx="9" ry="9"/></g><ellipse cx="19.7" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="39.6" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fd.svg
index 4f19c2f..121b50b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#627a82" cx="31.993" cy="11.561" rx="15" ry="9.561"/><ellipse fill="#c28fef" cx="31.993" cy="15.57" rx="15" ry="9.561"/><path fill="#d6a57c" d="m57.26 28.893c-15.611-15.596-35.07-15.666-50.655 0l.096 17.311c0 7.536 7.408 15.796 25.717 15.796 17.342 0 24.857-6.752 24.857-15.797l-.015-17.31"/><path fill="#454749" d="m39.22 51.744c.137.158.211.363.211.611.002 1.691-3.357 3.766-7.5 3.766s-7.5-2.061-7.5-3.752c0-.229.064-.467.178-.625 0 0 3.242 1.459 7.322 1.459 4.072 0 7.289-1.459 7.289-1.459"/><path fill="#748a93" d="m31.993 9.111c-29.452 0-35.76 23.74-25.23 32.04 0 0 5.205-8.783 16.13-12.998 28.43-10.974 20.524-19.04 9.106-19.04"/><path fill="#8b9fa5" d="m31.993 9.111c-11.418 0-19.327 8.06 9.105 19.04 10.924 4.215 16.15 12.998 16.15 12.998 10.528-8.296 4.202-32.04-25.25-32.04"/><g fill="#454749"><path d="m42.825 54.38c-.577.003-1.125-.151-1.64-.368-.519-.216-.995-.521-1.434-.881-.849-.727-1.552-1.762-1.593-2.919.775.828 1.457 1.505 2.239 2.157.768.662 1.582 1.258 2.428 2.01"/><path d="m21.04 54.38c.845-.753 1.659-1.349 2.426-2.01.781-.652 1.464-1.329 2.24-2.157-.043 1.157-.744 2.192-1.594 2.919-.438.359-.915.665-1.434.881-.513.216-1.062.371-1.638.368"/><path d="m17.712 40.985l-.334-2.982c.778-.086 1.863-.297 3.12-.539 5.881-1.138 15.727-3.039 26.366.611l-.974 2.838c-9.881-3.391-19.235-1.584-24.823-.504-1.319.255-2.459.475-3.355.576"/><ellipse cx="19.669" cy="39.584" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.669" cy="39.584" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.25" cy="39.584" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.25" cy="39.584" rx="5.984" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="11.6" rx="15" ry="9.6" fill="#627a82"/><ellipse cx="32" cy="15.6" rx="15" ry="9.6" fill="#c28fef"/><path d="m57.3 28.9c-15.6-15.6-35.1-15.7-50.7 0l.1 17.3c0 7.5 7.4 15.8 25.7 15.8 17.3 0 24.9-6.8 24.9-15.8v-17.3" fill="#d6a57c"/><path d="m39.2 51.7c.1.2.2.4.2.6 0 1.7-3.4 3.8-7.5 3.8s-7.5-2.1-7.5-3.8c0-.2.1-.5.2-.6 0 0 3.2 1.5 7.3 1.5 4.1 0 7.3-1.5 7.3-1.5" fill="#454749"/><path d="m32 9.1c-29.5 0-35.8 23.7-25.2 32 0 0 5.2-8.8 16.1-13 28.4-10.9 20.5-19 9.1-19" fill="#748a93"/><path d="m32 9.1c-11.4 0-19.3 8.1 9.1 19 10.9 4.2 16.1 13 16.1 13 10.6-8.2 4.2-32-25.2-32" fill="#8b9fa5"/><g fill="#454749"><path d="m42.8 54.4c-.6 0-1.1-.2-1.6-.4-.5-.2-1-.5-1.4-.9-.8-.7-1.6-1.8-1.6-2.9.8.8 1.5 1.5 2.2 2.2.8.6 1.6 1.2 2.4 2"/><path d="m21 54.4c.8-.8 1.7-1.3 2.4-2 .8-.7 1.5-1.3 2.2-2.2 0 1.2-.7 2.2-1.6 2.9-.4.4-.9.7-1.4.9-.4.2-1 .4-1.6.4"/><path d="m17.7 41l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.5.5-3.4.6"/><ellipse cx="19.7" cy="39.6" rx="9" ry="9"/></g><ellipse cx="19.7" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="39.6" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fe.svg
index 803518d..c1246e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#627a82" cx="31.992" cy="11.561" rx="15" ry="9.561"/><ellipse fill="#c28fef" cx="31.992" cy="15.57" rx="15" ry="9.561"/><path fill="#b47d56" d="m57.25 28.893c-15.611-15.596-35.07-15.666-50.653 0l.096 17.311c-.001 7.536 7.407 15.796 25.716 15.796 17.341 0 24.857-6.752 24.857-15.797l-.016-17.31"/><path fill="#454749" d="m39.22 51.744c.137.158.211.363.211.611.002 1.691-3.357 3.766-7.5 3.766-4.143 0-7.5-2.061-7.5-3.752 0-.229.064-.467.178-.625 0 0 3.242 1.459 7.322 1.459 4.072 0 7.289-1.459 7.289-1.459"/><path fill="#748a93" d="m31.993 9.111c-29.451 0-35.759 23.74-25.23 32.04 0 0 5.205-8.783 16.13-12.998 28.429-10.974 20.523-19.04 9.106-19.04"/><path fill="#8b9fa5" d="m31.993 9.111c-11.418 0-19.326 8.06 9.105 19.04 10.924 4.215 16.15 12.998 16.15 12.998 10.527-8.296 4.201-32.04-25.25-32.04"/><g fill="#454749"><path d="m42.824 54.38c-.576.003-1.125-.151-1.639-.368-.519-.216-.996-.521-1.434-.881-.85-.727-1.551-1.762-1.594-2.919.776.828 1.459 1.505 2.24 2.157.768.662 1.582 1.258 2.427 2.01"/><path d="m21.04 54.38c.846-.753 1.66-1.349 2.427-2.01.782-.652 1.464-1.329 2.239-2.157-.041 1.157-.744 2.192-1.593 2.919-.438.359-.915.665-1.434.881-.514.216-1.061.371-1.639.368"/><path d="m17.699 40.985l-.334-2.982c.778-.086 1.863-.297 3.12-.539 5.881-1.138 15.726-3.039 26.366.611l-.974 2.838c-9.881-3.391-19.235-1.584-24.823-.504-1.319.255-2.459.475-3.355.576"/><ellipse cx="19.656" cy="39.584" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.656" cy="39.584" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.24" cy="39.584" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.24" cy="39.584" rx="5.983" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="11.6" rx="15" ry="9.6" fill="#627a82"/><ellipse cx="32" cy="15.6" rx="15" ry="9.6" fill="#c28fef"/><path d="m57.3 28.9c-15.6-15.6-35.1-15.7-50.7 0l.1 17.3c0 7.5 7.4 15.8 25.7 15.8 17.3 0 24.9-6.8 24.9-15.8v-17.3" fill="#b47d56"/><path d="m39.2 51.7c.1.2.2.4.2.6 0 1.7-3.4 3.8-7.5 3.8s-7.5-2.1-7.5-3.8c0-.2.1-.5.2-.6 0 0 3.2 1.5 7.3 1.5 4.1 0 7.3-1.5 7.3-1.5" fill="#454749"/><path d="m32 9.1c-29.5 0-35.8 23.7-25.2 32 0 0 5.2-8.8 16.1-13 28.4-10.9 20.5-19 9.1-19" fill="#748a93"/><path d="m32 9.1c-11.4 0-19.3 8.1 9.1 19 10.9 4.2 16.1 13 16.1 13 10.6-8.2 4.2-32-25.2-32" fill="#8b9fa5"/><g fill="#454749"><path d="m42.8 54.4c-.6 0-1.1-.2-1.6-.4-.5-.2-1-.5-1.4-.9-.8-.7-1.6-1.8-1.6-2.9.8.8 1.5 1.5 2.2 2.2.8.6 1.6 1.2 2.4 2"/><path d="m21 54.4c.8-.8 1.7-1.3 2.4-2 .8-.7 1.5-1.3 2.2-2.2 0 1.2-.7 2.2-1.6 2.9-.4.4-.9.7-1.4.9-.4.2-1 .4-1.6.4"/><path d="m17.7 41l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.5.5-3.4.6"/><ellipse cx="19.7" cy="39.6" rx="9" ry="9"/></g><ellipse cx="19.7" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.2" cy="39.6" rx="9" ry="9" fill="#454749"/><ellipse cx="44.2" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3ff.svg
index a054de5..b1ae7cd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f475-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#627a82" cx="32" cy="11.561" rx="15" ry="9.561"/><ellipse fill="#c28fef" cx="32" cy="15.57" rx="15" ry="9.561"/><path fill="#8a6859" d="m57.32 28.893c-15.611-15.596-35.07-15.666-50.655 0l.096 17.311c0 7.536 7.408 15.796 25.717 15.796 17.342 0 24.858-6.752 24.858-15.797l-.016-17.31"/><path fill="#454749" d="m39.29 51.744c.137.158.211.363.211.611.002 1.691-3.357 3.766-7.5 3.766-4.143 0-7.5-2.061-7.5-3.752 0-.229.064-.467.178-.625 0 0 3.242 1.459 7.322 1.459 4.072 0 7.289-1.459 7.289-1.459"/><path fill="#748a93" d="m31.993 9.111c-29.451 0-35.76 23.74-25.23 32.04 0 0 5.205-8.783 16.13-12.998 28.428-10.974 20.522-19.04 9.105-19.04"/><path fill="#8b9fa5" d="m31.993 9.111c-11.418 0-19.326 8.06 9.105 19.04 10.924 4.215 16.15 12.998 16.15 12.998 10.527-8.296 4.201-32.04-25.25-32.04"/><g fill="#454749"><path d="m42.891 54.38c-.576.003-1.125-.151-1.639-.368-.52-.216-.996-.521-1.434-.881-.85-.727-1.551-1.762-1.594-2.919.775.828 1.459 1.505 2.24 2.157.766.662 1.581 1.258 2.427 2.01"/><path d="m21.11 54.38c.846-.753 1.66-1.349 2.426-2.01.782-.652 1.465-1.329 2.24-2.157-.042 1.157-.744 2.192-1.594 2.919-.438.359-.914.665-1.434.881-.513.216-1.062.371-1.638.368"/><path d="m17.75 40.985l-.334-2.982c.779-.086 1.863-.297 3.121-.539 5.881-1.138 15.726-3.039 26.365.611l-.973 2.838c-9.881-3.391-19.236-1.584-24.824-.504-1.317.255-2.458.475-3.355.576"/><ellipse cx="19.709" cy="39.584" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.708" cy="39.584" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.29" cy="39.584" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="39.584" rx="5.983" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="11.6" rx="15" ry="9.6" fill="#627a82"/><ellipse cx="32" cy="15.6" rx="15" ry="9.6" fill="#c28fef"/><path d="m57.3 28.9c-15.6-15.6-35.1-15.7-50.7 0l.1 17.3c0 7.5 7.4 15.8 25.7 15.8 17.3 0 24.9-6.8 24.9-15.8v-17.3" fill="#8a6859"/><path d="m39.3 51.7c.1.2.2.4.2.6 0 1.7-3.4 3.8-7.5 3.8s-7.5-2.1-7.5-3.8c0-.2.1-.5.2-.6 0 0 3.2 1.5 7.3 1.5 4.1 0 7.3-1.5 7.3-1.5" fill="#454749"/><path d="m32 9.1c-29.5 0-35.8 23.7-25.2 32 0 0 5.2-8.8 16.1-13 28.4-10.9 20.5-19 9.1-19" fill="#748a93"/><path d="m32 9.1c-11.4 0-19.3 8.1 9.1 19 10.9 4.2 16.1 13 16.1 13 10.6-8.2 4.2-32-25.2-32" fill="#8b9fa5"/><g fill="#454749"><path d="m42.9 54.4c-.6 0-1.1-.2-1.6-.4-.5-.2-1-.5-1.4-.9-.8-.7-1.6-1.8-1.6-2.9.8.8 1.5 1.5 2.2 2.2.7.6 1.5 1.2 2.4 2"/><path d="m21.1 54.4c.8-.8 1.7-1.3 2.4-2 .8-.7 1.5-1.3 2.2-2.2 0 1.2-.7 2.2-1.6 2.9-.4.4-.9.7-1.4.9-.5.2-1 .4-1.6.4"/><path d="m17.8 41l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="39.6" rx="9" ry="9"/></g><ellipse cx="19.7" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="39.6" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="39.6" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f475.svg b/build/js/jsxc/lib/emojione/assets/svg/1f475.svg
index 9bf791a..a2ac613 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f475.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f475.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#627a82" cx="31.993" cy="11.504" rx="15" ry="9.561"/><ellipse fill="#c28fef" cx="31.993" cy="15.514" rx="15" ry="9.561"/><path fill="#ffdd67" d="m57.26 28.836c-15.611-15.596-35.07-15.666-50.655 0l.096 17.311c0 7.537 7.408 15.797 25.717 15.797 17.342 0 24.858-6.752 24.858-15.797l-.016-17.311"/><path fill="#454749" d="m39.22 51.688c.137.158.211.363.211.611.002 1.691-3.357 3.766-7.5 3.766-4.143 0-7.5-2.061-7.5-3.752 0-.229.064-.467.178-.625 0 0 3.242 1.459 7.322 1.459 4.072-.001 7.289-1.459 7.289-1.459"/><path fill="#748a93" d="m31.993 9.05c-29.452 0-35.76 23.74-25.23 32.04 0 0 5.205-8.783 16.13-12.998 28.43-10.975 20.524-19.04 9.106-19.04"/><path fill="#8b9fa5" d="m31.993 9.05c-11.418 0-19.327 8.06 9.106 19.04 10.924 4.215 16.15 12.998 16.15 12.998 10.527-8.297 4.201-32.04-25.25-32.04"/><g fill="#454749"><path d="m42.825 54.32c-.577.003-1.125-.151-1.64-.368-.519-.216-.995-.521-1.433-.881-.85-.727-1.553-1.762-1.594-2.919.775.828 1.457 1.505 2.239 2.157.768.663 1.582 1.258 2.428 2.01"/><path d="m21.04 54.32c.845-.753 1.66-1.349 2.426-2.01.781-.652 1.464-1.329 2.24-2.157-.043 1.157-.744 2.192-1.594 2.919-.438.359-.915.665-1.434.881-.513.217-1.061.371-1.638.368"/><path d="m17.75 40.929l-.334-2.982c.778-.086 1.863-.297 3.12-.539 5.881-1.138 15.727-3.039 26.367.611l-.974 2.838c-9.881-3.391-19.236-1.584-24.824-.504-1.318.254-2.458.474-3.355.576"/><ellipse cx="19.708" cy="39.527" rx="8.975" ry="9"/></g><ellipse fill="#b4d7ee" cx="19.708" cy="39.527" rx="5.984" ry="6"/><ellipse fill="#454749" cx="44.29" cy="39.527" rx="8.976" ry="9"/><ellipse fill="#b4d7ee" cx="44.29" cy="39.527" rx="5.984" ry="6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="11.5" rx="15" ry="9.6" fill="#627a82"/><ellipse cx="32" cy="15.5" rx="15" ry="9.6" fill="#c28fef"/><path d="m57.3 28.8c-15.6-15.6-35.1-15.7-50.7 0l.1 17.3c0 7.5 7.4 15.8 25.7 15.8 17.3 0 24.9-6.8 24.9-15.8v-17.3" fill="#ffdd67"/><path d="m39.2 51.7c.1.2.2.4.2.6 0 1.7-3.4 3.8-7.5 3.8s-7.5-2.1-7.5-3.8c0-.2.1-.5.2-.6 0 0 3.2 1.5 7.3 1.5 4.1-.1 7.3-1.5 7.3-1.5" fill="#454749"/><path d="m32 9.1c-29.5 0-35.8 23.7-25.2 32 0 0 5.2-8.8 16.1-13 28.4-11 20.5-19 9.1-19" fill="#748a93"/><path d="m32 9.1c-11.4 0-19.3 8.1 9.1 19 10.9 4.2 16.1 13 16.1 13 10.6-8.3 4.2-32-25.2-32" fill="#8b9fa5"/><g fill="#454749"><path d="m42.8 54.3c-.6 0-1.1-.2-1.6-.4-.5-.2-1-.5-1.4-.9-.8-.7-1.6-1.8-1.6-2.9.8.8 1.5 1.5 2.2 2.2.8.7 1.6 1.3 2.4 2"/><path d="m21 54.3c.8-.8 1.7-1.3 2.4-2 .8-.7 1.5-1.3 2.2-2.2 0 1.2-.7 2.2-1.6 2.9-.4.4-.9.7-1.4.9-.4.3-1 .4-1.6.4"/><path d="m17.8 40.9l-.3-3c.8-.1 1.9-.3 3.1-.5 5.9-1.1 15.7-3 26.4.6l-1 2.8c-9.9-3.4-19.2-1.6-24.8-.5-1.4.3-2.6.5-3.4.6"/><ellipse cx="19.7" cy="39.5" rx="9" ry="9"/></g><ellipse cx="19.7" cy="39.5" rx="6" ry="6" fill="#b4d7ee"/><ellipse cx="44.3" cy="39.5" rx="9" ry="9" fill="#454749"/><ellipse cx="44.3" cy="39.5" rx="6" ry="6" fill="#b4d7ee"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fb.svg
index 384995f..aa85b9b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m62 31.76c0-2.537-1.861-4.615-4.277-4.972-1.193-16.24-12.25-24.79-25.723-24.79s-24.529 8.55-25.723 24.79c-2.416.356-4.277 2.435-4.277 4.972 0 2.64 2.02 4.778 4.574 5 1.652 12.444 8.627 15.68 25.426 15.68 16.798 0 23.773-3.235 25.426-15.68 2.558-.222 4.574-2.361 4.574-5"/><path fill="#594640" d="m35.469 13.178c1.066 0 2.104-.066 3.119-.168-2.402-1.762-4.27-4.063-5.365-6.691 2.75 1.012 5.998 1.6 9.484 1.6 1.066 0 2.105-.064 3.121-.17-1.484-1.086-2.752-2.385-3.771-3.834-3.178-1.268-6.688-1.916-10.381-1.916-4.949 0-9.57 1.156-13.498 3.42 2.082 4.468 9.02 7.759 17.291 7.759"/><g fill="#ff717f"><path opacity=".5" d="m55.22 37.05c-.338-2.473-3.137-3.963-6.254-3.328-3.116.633-5.368 3.156-5.03 5.633.34 2.473 3.138 3.967 6.257 3.33 3.117-.637 5.367-3.159 5.03-5.635"/><path opacity=".5" d="m15.04 33.721c-3.113-.635-5.916.855-6.254 3.328-.336 2.477 1.916 4.998 5.03 5.635s5.916-.857 6.254-3.33c.34-2.477-1.916-4.997-5.03-5.633"/></g><path fill="#fff" d="m26.34 27.754c0 3.865-3.135 6.998-6.998 6.998-3.869 0-7-3.133-7-6.998 0-3.867 3.133-7 7-7 3.863 0 6.998 3.135 6.998 7"/><path fill="#664e27" d="m24.59 27.752c0 2.898-2.352 5.25-5.25 5.25-2.9 0-5.25-2.352-5.25-5.25 0-2.902 2.35-5.25 5.25-5.25 2.898 0 5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m21.09 27.753c0 .966-.785 1.746-1.748 1.746-.969 0-1.752-.78-1.752-1.746 0-.969.783-1.751 1.752-1.751.963 0 1.748.782 1.748 1.751"/><path fill="#fff" d="m51.665 27.756c0 3.865-3.135 6.996-6.999 6.996-3.865 0-7-3.131-7-6.996 0-3.867 3.135-7 7-7 3.864 0 6.999 3.137 6.999 7"/><path fill="#664e27" d="m49.915 27.752c0 2.898-2.35 5.25-5.249 5.25-2.9 0-5.25-2.352-5.25-5.25 0-2.902 2.35-5.25 5.25-5.25 2.899 0 5.249 2.348 5.249 5.25"/><path fill="#231f20" d="m46.42 27.753c0 .966-.784 1.747-1.75 1.747-.967 0-1.75-.781-1.75-1.747 0-.969.783-1.753 1.75-1.753.966 0 1.75.784 1.75 1.753"/><path fill="#e6b796" d="m35.504 34.18c0 1.322-2.848 1.701-3.5 1.701-.654 0-3.5-.467-3.5-1.787 0 0 7-.571 7 .086"/><path fill="#61c2ff" d="m47 42.502c0 9.379-6.714 13.721-14.999 13.721-8.283 0-15-4.342-15-13.721 0-9.375 6.756-5.793 15.04-5.793 8.285 0 14.96-3.582 14.96 5.793"/><ellipse fill="#6235a8" cx="32" cy="46.13" rx="6" ry="5.66"/><path fill="#fbbf67" d="m32 45.561c-5.965 0-10.799-.713-10.799 5.389 0 6.104 4.834 11.05 10.799 11.05s10.801-4.945 10.801-11.05c0-6.102-4.836-5.389-10.801-5.389m0 12.703c-4.24 0-8.158-2.975-8.158-7.314s3.918-3.283 8.158-3.283c4.242 0 8.16-1.057 8.16 3.283s-3.918 7.314-8.16 7.314"/><path fill="#42ade2" d="m35.67 47.45c0 .625-.447 1.131-1 1.131h-5.334c-.553 0-1-.506-1-1.131v-2.643c0-.627.447-1.133 1-1.133h5.334c.553 0 1 .506 1 1.133v2.643"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 27c0-17-12-25-25-25s-25 8-25 25c-3.5 0-5 2.5-5 5s1.5 5 5 5c0 6.7 7 16 25 16 18 0 25-9.3 25-16 3.5 0 5-2.5 5-5s-1.5-5-5-5" fill="#ffe1bd"/><path d="m33 15c-4-3-2-7-2-7s8 5 15 3c0 0-4-1-5-4 0 0 4 1 7 0-4-3-9-5-16-5-7 0-12 2-16 5 4 5 8 8 17 8" fill="#594640"/><g fill="#ff717f"><path d="m56 37.4c-.4-2.4-3.3-3.9-6.6-3.2-3.3.6-5.7 3.1-5.3 5.5.4 2.4 3.3 3.9 6.6 3.2 3.2-.7 5.6-3.1 5.3-5.5" opacity=".5"/><path d="m14.6 34.1c-3.2-.6-6.2.9-6.6 3.3-.4 2.4 2 4.9 5.3 5.5 3.3.6 6.3-.8 6.6-3.2.4-2.5-2-4.9-5.3-5.6" opacity=".5"/></g><path d="m26 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="19.5" cy="27.5" r="4.5" fill="#664e27"/><path d="m21 27.5c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m51 27.5c0 3.6-2.9 6.5-6.5 6.5s-6.5-2.9-6.5-6.5c0-3.6 2.9-6.5 6.5-6.5s6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="44.5" cy="27.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="27.5" r="1.5" fill="#231f20"/><path d="m47 43.8c0 8.3-6.7 12.2-15 12.2-8.3 0-15-3.9-15-12.2 0-8.4 6.8-4.8 15-4.8 8.3 0 15-3.6 15 4.8" fill="#61c2ff"/><ellipse cx="32" cy="47" rx="6" ry="5" fill="#6235a8"/><path d="m32 46c-6.1 0-11-.7-11 5.2 0 6 4.9 10.8 11 10.8 6.1 0 11-4.8 11-10.7 0-6-4.9-5.3-11-5.3m0 12.4c-4.3 0-8.3-2.9-8.3-7.1 0-4.2 4-3.2 8.3-3.2 4.3 0 8.3-1 8.3 3.2 0 4.2-4 7.1-8.3 7.1" fill="#fbbf67"/><path d="m36 48.8c0 .6-.5 1.2-1.1 1.2h-5.8c-.6 0-1.1-.5-1.1-1.2v-2.7c0-.6.5-1.2 1.1-1.2h5.8c.6 0 1.1.5 1.1 1.2v2.7" fill="#42ade2"/><path d="m32 38c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fc.svg
index c80bbed..50f5f8c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m62 31.76c0-2.537-1.861-4.615-4.277-4.972-1.191-16.24-12.25-24.79-25.723-24.79-13.472 0-24.529 8.55-25.722 24.79-2.417.356-4.278 2.435-4.278 4.972 0 2.64 2.02 4.778 4.574 5 1.652 12.444 8.627 15.68 25.426 15.68 16.799 0 23.774-3.235 25.426-15.68 2.558-.222 4.574-2.361 4.574-5"/><path fill="#dbb471" d="m35.469 13.178c1.066 0 2.104-.066 3.119-.168-2.402-1.762-4.27-4.063-5.365-6.691 2.75 1.012 5.998 1.6 9.484 1.6 1.066 0 2.105-.064 3.121-.17-1.484-1.086-2.752-2.385-3.771-3.834-3.178-1.268-6.688-1.916-10.381-1.916-4.949 0-9.57 1.156-13.498 3.42 2.081 4.468 9.02 7.759 17.291 7.759"/><g fill="#ff717f"><path opacity=".5" d="m55.22 37.05c-.338-2.473-3.137-3.963-6.254-3.328-3.117.633-5.369 3.156-5.03 5.633.34 2.473 3.139 3.967 6.258 3.33 3.117-.637 5.367-3.159 5.03-5.635"/><path opacity=".5" d="m15.04 33.721c-3.113-.635-5.916.855-6.254 3.328-.336 2.477 1.916 4.998 5.03 5.635s5.916-.857 6.254-3.33c.34-2.477-1.916-4.997-5.03-5.633"/></g><path fill="#fff" d="m26.339 27.754c0 3.865-3.135 6.998-6.998 6.998-3.869 0-7-3.133-7-6.998 0-3.867 3.133-7 7-7 3.864 0 6.998 3.135 6.998 7"/><path fill="#664e27" d="m24.589 27.752c0 2.898-2.352 5.25-5.25 5.25-2.9 0-5.25-2.352-5.25-5.25 0-2.902 2.35-5.25 5.25-5.25 2.899 0 5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m21.09 27.753c0 .966-.786 1.746-1.749 1.746-.968 0-1.751-.78-1.751-1.746 0-.969.783-1.751 1.751-1.751.963 0 1.749.782 1.749 1.751"/><path fill="#fff" d="m51.666 27.756c0 3.865-3.135 6.996-7 6.996s-7-3.131-7-6.996c0-3.867 3.135-7 7-7s7 3.137 7 7"/><path fill="#664e27" d="m49.916 27.752c0 2.898-2.35 5.25-5.25 5.25s-5.25-2.352-5.25-5.25c0-2.902 2.35-5.25 5.25-5.25s5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m46.42 27.753c0 .966-.783 1.747-1.75 1.747s-1.75-.781-1.75-1.747c0-.969.783-1.753 1.75-1.753s1.75.784 1.75 1.753"/><path fill="#e0a372" d="m35.504 34.18c0 1.322-2.848 1.701-3.5 1.701-.654 0-3.5-.467-3.5-1.787-.001 0 7-.571 7 .086"/><path fill="#61c2ff" d="m47 42.502c0 9.379-6.715 13.721-15 13.721-8.283 0-15-4.342-15-13.721 0-9.375 6.756-5.793 15.04-5.793 8.285 0 14.961-3.582 14.961 5.793"/><ellipse fill="#6235a8" cx="32" cy="46.13" rx="6" ry="5.66"/><path fill="#fbbf67" d="m32 45.561c-5.965 0-10.799-.713-10.799 5.389 0 6.104 4.834 11.05 10.799 11.05 5.965 0 10.801-4.945 10.801-11.05.001-6.102-4.835-5.389-10.801-5.389m0 12.703c-4.24 0-8.158-2.975-8.158-7.314s3.918-3.283 8.158-3.283c4.243 0 8.161-1.057 8.161 3.283s-3.918 7.314-8.161 7.314"/><path fill="#42ade2" d="m35.67 47.45c0 .625-.447 1.131-1 1.131h-5.334c-.553 0-1-.506-1-1.131v-2.643c0-.627.447-1.133 1-1.133h5.334c.553 0 1 .506 1 1.133v2.643"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 27c0-17-12-25-25-25s-25 8-25 25c-3.5 0-5 2.5-5 5s1.5 5 5 5c0 6.7 7 16 25 16 18 0 25-9.3 25-16 3.5 0 5-2.5 5-5s-1.5-5-5-5" fill="#fed0ac"/><path d="m33 15c-4-3-2-7-2-7s8 5 15 3c0 0-4-1-5-4 0 0 4 1 7 0-4-3-9-5-16-5-7 0-12 2-16 5 4 5 8 8 17 8" fill="#dbb471"/><g fill="#ff717f"><path d="m56 37.4c-.4-2.4-3.3-3.9-6.6-3.2-3.3.6-5.7 3.1-5.3 5.5.4 2.4 3.3 3.9 6.6 3.2 3.2-.7 5.6-3.1 5.3-5.5" opacity=".5"/><path d="m14.6 34.1c-3.2-.6-6.2.9-6.6 3.3-.4 2.4 2 4.9 5.3 5.5 3.3.6 6.3-.8 6.6-3.2.4-2.5-2-4.9-5.3-5.6" opacity=".5"/></g><path d="m26 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="19.5" cy="27.5" r="4.5" fill="#664e27"/><path d="m21 27.5c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m51 27.5c0 3.6-2.9 6.5-6.5 6.5s-6.5-2.9-6.5-6.5c0-3.6 2.9-6.5 6.5-6.5s6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="44.5" cy="27.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="27.5" r="1.5" fill="#231f20"/><path d="m47 43.8c0 8.3-6.7 12.2-15 12.2-8.3 0-15-3.9-15-12.2 0-8.4 6.8-4.8 15-4.8 8.3 0 15-3.6 15 4.8" fill="#61c2ff"/><ellipse cx="32" cy="47" rx="6" ry="5" fill="#6235a8"/><path d="m32 46c-6.1 0-11-.7-11 5.2 0 6 4.9 10.8 11 10.8 6.1 0 11-4.8 11-10.7 0-6-4.9-5.3-11-5.3m0 12.4c-4.3 0-8.3-2.9-8.3-7.1 0-4.2 4-3.2 8.3-3.2 4.3 0 8.3-1 8.3 3.2 0 4.2-4 7.1-8.3 7.1" fill="#fbbf67"/><path d="m36 48.8c0 .6-.5 1.2-1.1 1.2h-5.8c-.6 0-1.1-.5-1.1-1.2v-2.7c0-.6.5-1.2 1.1-1.2h5.8c.6 0 1.1.5 1.1 1.2v2.7" fill="#42ade2"/><path d="m32 38c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fd.svg
index 3245e79..9d3946d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m62 31.76c0-2.537-1.861-4.615-4.278-4.972-1.192-16.24-12.249-24.79-25.723-24.79-13.472 0-24.529 8.55-25.722 24.79-2.416.356-4.277 2.435-4.277 4.972 0 2.641 2.01 4.779 4.574 5 1.652 12.444 8.627 15.68 25.425 15.68s23.773-3.235 25.427-15.68c2.558-.221 4.574-2.36 4.574-5"/><path fill="#594640" d="m35.468 13.178c1.066 0 2.104-.066 3.119-.168-2.402-1.762-4.27-4.063-5.365-6.691 2.75 1.012 5.998 1.6 9.484 1.6 1.066 0 2.105-.064 3.121-.17-1.484-1.086-2.752-2.385-3.771-3.834-3.178-1.268-6.688-1.916-10.381-1.916-4.949 0-9.57 1.156-13.498 3.42 2.082 4.468 9.02 7.759 17.291 7.759"/><g fill="#ff717f"><path opacity=".5" d="m55.22 37.05c-.338-2.473-3.137-3.963-6.254-3.328-3.116.633-5.368 3.156-5.03 5.633.34 2.473 3.139 3.967 6.257 3.33 3.117-.637 5.367-3.159 5.03-5.635"/><path opacity=".5" d="m15.04 33.721c-3.113-.635-5.916.855-6.254 3.328-.336 2.477 1.916 4.998 5.03 5.635 3.116.637 5.915-.857 6.253-3.33.34-2.477-1.916-4.997-5.03-5.633"/></g><circle fill="#fff" cx="19.339" cy="27.754" r="7"/><path fill="#664e27" d="m24.589 27.752c0 2.898-2.352 5.25-5.25 5.25-2.9 0-5.249-2.352-5.249-5.25 0-2.902 2.349-5.25 5.249-5.25 2.898 0 5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m21.09 27.753c0 .966-.785 1.746-1.748 1.746-.969 0-1.752-.78-1.752-1.746 0-.969.783-1.751 1.752-1.751.963 0 1.748.782 1.748 1.751"/><path fill="#fff" d="m51.664 27.756c0 3.865-3.135 6.996-6.999 6.996-3.865 0-7-3.131-7-6.996 0-3.867 3.135-7 7-7 3.864 0 6.999 3.137 6.999 7"/><path fill="#664e27" d="m49.914 27.752c0 2.898-2.35 5.25-5.249 5.25-2.9 0-5.25-2.352-5.25-5.25 0-2.902 2.35-5.25 5.25-5.25 2.899 0 5.249 2.348 5.249 5.25"/><path fill="#231f20" d="m46.41 27.753c0 .966-.784 1.747-1.75 1.747s-1.75-.781-1.75-1.747c0-.969.784-1.753 1.75-1.753s1.75.784 1.75 1.753"/><path fill="#b58360" d="m35.503 34.18c0 1.322-2.848 1.701-3.5 1.701-.654 0-3.5-.467-3.5-1.787 0 0 7-.571 7 .086"/><path fill="#61c2ff" d="m47 42.502c0 9.379-6.715 13.721-15 13.721-8.283 0-15-4.342-15-13.721 0-9.375 6.756-5.793 15.04-5.793 8.285 0 14.961-3.582 14.961 5.793"/><ellipse fill="#6235a8" cx="32" cy="46.13" rx="6" ry="5.66"/><path fill="#fbbf67" d="m32 45.561c-5.965 0-10.799-.713-10.799 5.389 0 6.104 4.834 11.05 10.799 11.05s10.801-4.945 10.801-11.05c0-6.102-4.836-5.389-10.801-5.389m0 12.703c-4.24 0-8.158-2.975-8.158-7.314s3.918-3.283 8.158-3.283c4.242 0 8.16-1.057 8.16 3.283s-3.918 7.314-8.16 7.314"/><path fill="#42ade2" d="m35.669 47.45c0 .625-.447 1.131-1 1.131h-5.334c-.553 0-1-.506-1-1.131v-2.643c0-.627.447-1.133 1-1.133h5.334c.553 0 1 .506 1 1.133v2.643"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 27c0-17-12-25-25-25s-25 8-25 25c-3.5 0-5 2.5-5 5s1.5 5 5 5c0 6.7 7 16 25 16 18 0 25-9.3 25-16 3.5 0 5-2.5 5-5s-1.5-5-5-5" fill="#d6a57c"/><path d="m33 15c-4-3-2-7-2-7s8 5 15 3c0 0-4-1-5-4 0 0 4 1 7 0-4-3-9-5-16-5-7 0-12 2-16 5 4 5 8 8 17 8" fill="#594640"/><g fill="#ff717f"><path d="m56 37.4c-.4-2.4-3.3-3.9-6.6-3.2-3.3.6-5.7 3.1-5.3 5.5.4 2.4 3.3 3.9 6.6 3.2 3.2-.7 5.6-3.1 5.3-5.5" opacity=".5"/><path d="m14.6 34.1c-3.2-.6-6.2.9-6.6 3.3-.4 2.4 2 4.9 5.3 5.5 3.3.6 6.3-.8 6.6-3.2.4-2.5-2-4.9-5.3-5.6" opacity=".5"/></g><path d="m26 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="19.5" cy="27.5" r="4.5" fill="#664e27"/><path d="m21 27.5c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m51 27.5c0 3.6-2.9 6.5-6.5 6.5s-6.5-2.9-6.5-6.5c0-3.6 2.9-6.5 6.5-6.5s6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="44.5" cy="27.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="27.5" r="1.5" fill="#231f20"/><path d="m47 43.8c0 8.3-6.7 12.2-15 12.2-8.3 0-15-3.9-15-12.2 0-8.4 6.8-4.8 15-4.8 8.3 0 15-3.6 15 4.8" fill="#61c2ff"/><ellipse cx="32" cy="47" rx="6" ry="5" fill="#6235a8"/><path d="m32 46c-6.1 0-11-.7-11 5.2 0 6 4.9 10.8 11 10.8 6.1 0 11-4.8 11-10.7 0-6-4.9-5.3-11-5.3m0 12.4c-4.3 0-8.3-2.9-8.3-7.1 0-4.2 4-3.2 8.3-3.2 4.3 0 8.3-1 8.3 3.2 0 4.2-4 7.1-8.3 7.1" fill="#fbbf67"/><path d="m36 48.8c0 .6-.5 1.2-1.1 1.2h-5.8c-.6 0-1.1-.5-1.1-1.2v-2.7c0-.6.5-1.2 1.1-1.2h5.8c.6 0 1.1.5 1.1 1.2v2.7" fill="#42ade2"/><path d="m32 38c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fe.svg
index 4bec063..75c1a67 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m62 31.76c0-2.537-1.861-4.615-4.277-4.972-1.193-16.24-12.25-24.79-25.723-24.79s-24.529 8.55-25.723 24.79c-2.416.356-4.277 2.435-4.277 4.972 0 2.64 2.02 4.778 4.574 5 1.652 12.444 8.627 15.68 25.426 15.68 16.798 0 23.773-3.235 25.426-15.68 2.558-.222 4.574-2.361 4.574-5"/><path fill="#231f20" d="m35.469 13.178c1.066 0 2.104-.066 3.119-.168-2.402-1.762-4.27-4.063-5.365-6.691 2.75 1.012 5.998 1.6 9.484 1.6 1.066 0 2.105-.064 3.12-.17-1.483-1.086-2.751-2.385-3.771-3.834-3.178-1.268-6.688-1.916-10.381-1.916-4.949 0-9.57 1.156-13.498 3.42 2.083 4.468 9.02 7.759 17.292 7.759"/><g fill="#ff717f"><path opacity=".5" d="m55.22 37.05c-.338-2.473-3.137-3.963-6.254-3.328-3.117.633-5.368 3.156-5.03 5.633.34 2.473 3.138 3.967 6.257 3.33 3.117-.637 5.367-3.159 5.03-5.635"/><path opacity=".5" d="m15.04 33.721c-3.113-.635-5.916.855-6.254 3.328-.336 2.477 1.916 4.998 5.03 5.635s5.916-.857 6.254-3.33c.34-2.477-1.916-4.997-5.03-5.633"/></g><path fill="#fff" d="m26.34 27.754c0 3.865-3.135 6.998-6.998 6.998-3.869 0-7-3.133-7-6.998 0-3.867 3.133-7 7-7 3.863 0 6.998 3.135 6.998 7"/><path fill="#664e27" d="m24.59 27.752c0 2.898-2.352 5.25-5.25 5.25-2.9 0-5.25-2.352-5.25-5.25 0-2.902 2.35-5.25 5.25-5.25 2.898 0 5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m21.09 27.753c0 .966-.785 1.746-1.748 1.746-.969 0-1.752-.78-1.752-1.746 0-.969.783-1.751 1.752-1.751.963 0 1.748.782 1.748 1.751"/><path fill="#fff" d="m51.665 27.756c0 3.865-3.135 6.996-6.999 6.996-3.865 0-7-3.131-7-6.996 0-3.867 3.135-7 7-7 3.864 0 6.999 3.137 6.999 7"/><path fill="#664e27" d="m49.915 27.752c0 2.898-2.35 5.25-5.249 5.25-2.9 0-5.25-2.352-5.25-5.25 0-2.902 2.35-5.25 5.25-5.25 2.899 0 5.249 2.348 5.249 5.25"/><path fill="#231f20" d="m46.41 27.753c0 .967-.782 1.748-1.749 1.748s-1.751-.781-1.751-1.748c0-.969.784-1.753 1.751-1.753s1.749.784 1.749 1.753"/><path fill="#935e3e" d="m35.504 34.18c0 1.322-2.848 1.701-3.5 1.701-.654 0-3.5-.467-3.5-1.787 0 0 7-.571 7 .086"/><path fill="#61c2ff" d="m47 42.502c0 9.379-6.714 13.721-14.999 13.721-8.283 0-15-4.342-15-13.721 0-9.375 6.756-5.793 15.04-5.793 8.285 0 14.96-3.582 14.96 5.793"/><ellipse fill="#6235a8" cx="32" cy="46.13" rx="6" ry="5.66"/><path fill="#fbbf67" d="m32 45.561c-5.965 0-10.799-.713-10.799 5.389 0 6.104 4.834 11.05 10.799 11.05s10.801-4.945 10.801-11.05c0-6.102-4.836-5.389-10.801-5.389m0 12.703c-4.24 0-8.158-2.975-8.158-7.314s3.918-3.283 8.158-3.283c4.242 0 8.16-1.057 8.16 3.283s-3.918 7.314-8.16 7.314"/><path fill="#42ade2" d="m35.67 47.45c0 .625-.447 1.131-1 1.131h-5.334c-.553 0-1-.506-1-1.131v-2.643c0-.627.447-1.133 1-1.133h5.334c.553 0 1 .506 1 1.133v2.643"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 27c0-17-12-25-25-25-13 0-25 8-25 25-3.5 0-5 2.5-5 5s1.5 5 5 5c0 6.7 7 16 25 16s25-9.3 25-16c3.5 0 5-2.5 5-5s-1.5-5-5-5" fill="#b47d56"/><path d="m33 15c-4-3-2-7-2-7s8 5 15 3c0 0-4-1-5-4 0 0 4 1 7 0-4-3-9-5-16-5-7 0-12 2-16 5 4 5 8 8 17 8" fill="#231f20"/><g fill="#ff717f"><path d="m56 37.4c-.4-2.4-3.3-3.9-6.6-3.2-3.3.6-5.7 3.1-5.3 5.5.4 2.4 3.3 3.9 6.6 3.2 3.2-.7 5.6-3.1 5.3-5.5" opacity=".5"/><path d="m14.6 34.1c-3.2-.6-6.2.9-6.6 3.3-.4 2.4 2 4.9 5.3 5.5 3.3.6 6.3-.8 6.6-3.2.4-2.5-2-4.9-5.3-5.6" opacity=".5"/></g><path d="m26 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="19.5" cy="27.5" r="4.5" fill="#664e27"/><path d="m21 27.5c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m51 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="44.5" cy="27.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="27.5" r="1.5" fill="#231f20"/><path d="m47 43.8c0 8.3-6.7 12.2-15 12.2-8.3 0-15-3.9-15-12.2 0-8.4 6.8-4.8 15-4.8 8.3 0 15-3.6 15 4.8" fill="#61c2ff"/><ellipse cx="32" cy="47" rx="6" ry="5" fill="#6235a8"/><path d="m32 46c-6.1 0-11-.7-11 5.2 0 6 4.9 10.8 11 10.8 6.1 0 11-4.8 11-10.7 0-6-4.9-5.3-11-5.3m0 12.4c-4.3 0-8.3-2.9-8.3-7.1 0-4.2 4-3.2 8.3-3.2s8.3-1 8.3 3.2c0 4.2-4 7.1-8.3 7.1" fill="#fbbf67"/><path d="m36 48.8c0 .6-.5 1.2-1.1 1.2h-5.8c-.6 0-1.1-.5-1.1-1.2v-2.7c0-.6.5-1.2 1.1-1.2h5.8c.6 0 1.1.5 1.1 1.2v2.7" fill="#42ade2"/><path d="m32 38c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3ff.svg
index 591525b..27a4a6d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f476-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m62 31.76c0-2.537-1.861-4.615-4.278-4.972-1.191-16.24-12.248-24.79-25.723-24.79-13.471 0-24.529 8.55-25.721 24.79-2.417.356-4.278 2.435-4.278 4.972 0 2.64 2.01 4.778 4.574 5 1.652 12.444 8.627 15.68 25.425 15.68 16.799 0 23.773-3.235 25.427-15.68 2.559-.222 4.574-2.361 4.574-5"/><path fill="#231f20" d="m35.468 13.178c1.066 0 2.104-.066 3.119-.168-2.402-1.762-4.27-4.063-5.365-6.691 2.75 1.012 5.998 1.6 9.484 1.6 1.066 0 2.105-.064 3.121-.17-1.484-1.086-2.752-2.385-3.771-3.834-3.178-1.268-6.688-1.916-10.381-1.916-4.949 0-9.57 1.156-13.498 3.42 2.082 4.468 9.02 7.759 17.291 7.759"/><g fill="#ff717f"><path opacity=".5" d="m55.22 37.05c-.338-2.473-3.137-3.963-6.254-3.328-3.117.633-5.369 3.156-5.03 5.633.34 2.473 3.139 3.967 6.258 3.33 3.117-.637 5.367-3.159 5.03-5.635"/><path opacity=".5" d="m15.04 33.721c-3.113-.635-5.916.855-6.254 3.328-.336 2.477 1.916 4.998 5.03 5.635s5.915-.857 6.253-3.33c.34-2.477-1.916-4.997-5.03-5.633"/></g><circle fill="#fff" cx="19.339" cy="27.754" r="7"/><path fill="#664e27" d="m24.589 27.752c0 2.898-2.352 5.25-5.25 5.25-2.899 0-5.249-2.352-5.249-5.25 0-2.902 2.35-5.25 5.249-5.25 2.898 0 5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m21.09 27.753c0 .966-.786 1.746-1.749 1.746-.968 0-1.751-.78-1.751-1.746 0-.969.783-1.751 1.751-1.751.963 0 1.749.782 1.749 1.751"/><path fill="#fff" d="m51.665 27.756c0 3.865-3.135 6.996-7 6.996s-7-3.131-7-6.996c0-3.867 3.135-7 7-7s7 3.137 7 7"/><path fill="#664e27" d="m49.915 27.752c0 2.898-2.35 5.25-5.25 5.25s-5.25-2.352-5.25-5.25c0-2.902 2.35-5.25 5.25-5.25s5.25 2.348 5.25 5.25"/><path fill="#231f20" d="m46.41 27.753c0 .967-.783 1.748-1.75 1.748-.966 0-1.75-.781-1.75-1.748 0-.969.784-1.753 1.75-1.753.967 0 1.75.784 1.75 1.753"/><path fill="#705041" d="m35.503 34.18c0 1.322-2.848 1.701-3.5 1.701-.654 0-3.5-.467-3.5-1.787 0 0 7-.571 7 .086"/><path fill="#61c2ff" d="m47 42.502c0 9.379-6.715 13.721-15 13.721-8.283 0-14.999-4.342-14.999-13.721 0-9.375 6.755-5.793 15.04-5.793 8.285 0 14.961-3.582 14.961 5.793"/><ellipse fill="#6235a8" cx="32" cy="46.13" rx="6" ry="5.66"/><path fill="#fbbf67" d="m32 45.561c-5.965 0-10.799-.713-10.799 5.389 0 6.104 4.834 11.05 10.799 11.05s10.801-4.945 10.801-11.05c0-6.102-4.836-5.389-10.801-5.389m0 12.703c-4.24 0-8.158-2.975-8.158-7.314s3.918-3.283 8.158-3.283c4.242 0 8.16-1.057 8.16 3.283s-3.918 7.314-8.16 7.314"/><path fill="#42ade2" d="m35.669 47.45c0 .625-.447 1.131-1 1.131h-5.334c-.553 0-1-.506-1-1.131v-2.643c0-.627.447-1.133 1-1.133h5.334c.553 0 1 .506 1 1.133v2.643"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 27c0-17-12-25-25-25-13 0-25 8-25 25-3.5 0-5 2.5-5 5s1.5 5 5 5c0 6.7 7 16 25 16s25-9.3 25-16c3.5 0 5-2.5 5-5 0-2.5-1.5-5-5-5" fill="#8a6859"/><path d="m33 15c-4-3-2-7-2-7s8 5 15 3c0 0-4-1-5-4 0 0 4 1 7 0-4-3-9-5-16-5-7 0-12 2-16 5 4 5 8 8 17 8" fill="#231f20"/><g fill="#ff717f"><path d="m56 37.4c-.4-2.4-3.3-3.9-6.6-3.2-3.3.6-5.7 3.1-5.3 5.5.4 2.4 3.3 3.9 6.6 3.2 3.2-.7 5.6-3.1 5.3-5.5" opacity=".5"/><path d="m14.6 34.1c-3.2-.6-6.2.9-6.6 3.3-.4 2.4 2 4.9 5.3 5.5 3.3.6 6.3-.8 6.6-3.2.4-2.5-2-4.9-5.3-5.6" opacity=".5"/></g><path d="m26 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="19.5" cy="27.5" r="4.5" fill="#664e27"/><path d="m21 27.5c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m51 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="44.5" cy="27.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="27.5" r="1.5" fill="#231f20"/><path d="m47 43.8c0 8.3-6.7 12.2-15 12.2-8.3 0-15-3.9-15-12.2 0-8.4 6.8-4.8 15-4.8 8.3 0 15-3.6 15 4.8" fill="#61c2ff"/><ellipse cx="32" cy="47" rx="6" ry="5" fill="#6235a8"/><path d="m32 46c-6.1 0-11-.7-11 5.2 0 6 4.9 10.8 11 10.8 6.1 0 11-4.8 11-10.7 0-6-4.9-5.3-11-5.3m0 12.4c-4.3 0-8.3-2.9-8.3-7.1 0-4.2 4-3.2 8.3-3.2s8.3-1 8.3 3.2c0 4.2-4 7.1-8.3 7.1" fill="#fbbf67"/><path d="m36 48.8c0 .6-.5 1.2-1.1 1.2h-5.8c-.6 0-1.1-.5-1.1-1.2v-2.7c0-.6.5-1.2 1.1-1.2h5.8c.6 0 1.1.5 1.1 1.2v2.7" fill="#42ade2"/><path d="m32 38c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f476.svg b/build/js/jsxc/lib/emojione/assets/svg/1f476.svg
index 0239bf3..6bbcb0c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f476.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f476.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m62 31.76c0-2.538-1.861-4.616-4.278-4.972-1.191-16.241-12.248-24.79-25.723-24.79-13.471 0-24.529 8.549-25.721 24.79-2.417.356-4.278 2.434-4.278 4.972 0 2.64 2.01 4.779 4.574 5 1.652 12.444 8.627 15.68 25.425 15.68 16.799 0 23.773-3.235 25.427-15.68 2.559-.221 4.574-2.36 4.574-5"/><path fill="#231f20" d="m35.468 13.178c1.066 0 2.104-.066 3.119-.168-2.402-1.762-4.27-4.063-5.365-6.691 2.75 1.012 5.998 1.6 9.484 1.6 1.066 0 2.105-.064 3.121-.17-1.484-1.086-2.752-2.385-3.771-3.834-3.178-1.268-6.688-1.916-10.381-1.916-4.949 0-9.57 1.156-13.498 3.42 2.082 4.468 9.02 7.759 17.291 7.759"/><g fill="#ff717f"><path opacity=".5" d="m55.22 37.05c-.338-2.473-3.137-3.962-6.254-3.327-3.117.632-5.369 3.155-5.03 5.632.34 2.473 3.139 3.967 6.258 3.33 3.117-.637 5.367-3.159 5.03-5.635"/><path opacity=".5" d="m15.04 33.722c-3.113-.635-5.916.854-6.254 3.327-.336 2.477 1.916 4.998 5.03 5.635s5.915-.857 6.253-3.33c.34-2.477-1.916-4.997-5.03-5.632"/></g><path fill="#fff" d="m26.339 27.754c0 3.865-3.135 6.998-6.998 6.998-3.868 0-7-3.132-7-6.998 0-3.867 3.133-7 7-7 3.863 0 6.998 3.135 6.998 7"/><circle fill="#664e27" cx="19.339" cy="27.752" r="5.25"/><path fill="#231f20" d="m21.09 27.753c0 .966-.786 1.746-1.749 1.746-.968 0-1.751-.78-1.751-1.746 0-.968.783-1.751 1.751-1.751.963 0 1.749.783 1.749 1.751"/><path fill="#fff" d="m51.665 27.756c0 3.865-3.135 6.996-7 6.996s-7-3.13-7-6.996c0-3.867 3.135-7 7-7s7 3.137 7 7"/><circle fill="#664e27" cx="44.665" cy="27.752" r="5.25"/><path fill="#231f20" d="m46.41 27.753c0 .966-.783 1.748-1.75 1.748-.966 0-1.75-.781-1.75-1.748 0-.969.784-1.752 1.75-1.752.967-.001 1.75.783 1.75 1.752"/><path fill="#d48c6b" d="m35.503 34.18c0 1.322-2.848 1.701-3.5 1.701-.654 0-3.5-.467-3.5-1.786 0 0 7-.571 7 .085"/><path fill="#61c2ff" d="m47 42.502c0 9.379-6.715 13.721-15 13.721-8.283 0-15-4.342-15-13.721 0-9.374 6.756-5.793 15.04-5.793 8.285 0 14.961-3.581 14.961 5.793"/><ellipse fill="#6235a8" cx="32" cy="46.13" rx="6" ry="5.66"/><path fill="#fbbf67" d="m32 45.561c-5.965 0-10.799-.713-10.799 5.389 0 6.104 4.834 11.05 10.799 11.05s10.801-4.945 10.801-11.05c0-6.102-4.836-5.389-10.801-5.389m0 12.703c-4.24 0-8.158-2.975-8.158-7.314s3.918-3.283 8.158-3.283c4.242 0 8.16-1.057 8.16 3.283s-3.918 7.314-8.16 7.314"/><path fill="#42ade2" d="m35.669 47.45c0 .625-.447 1.131-1 1.131h-5.334c-.553 0-1-.506-1-1.131v-2.643c0-.627.447-1.133 1-1.133h5.334c.553 0 1 .506 1 1.133v2.643"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 27c0-17-12-25-25-25s-25 8-25 25c-3.5 0-5 2.5-5 5s1.5 5 5 5c0 6.7 7 16 25 16 18 0 25-9.3 25-16 3.5 0 5-2.5 5-5s-1.5-5-5-5" fill="#ffdd67"/><path d="m33 15c-4-3-2-7-2-7s8 5 15 3c0 0-4-1-5-4 0 0 4 1 7 0-4-3-9-5-16-5-7 0-12 2-16 5 4 5 8 8 17 8" fill="#ffb300"/><g fill="#ff717f"><path d="m56 37.4c-.4-2.4-3.3-3.9-6.6-3.2-3.3.6-5.7 3.1-5.3 5.5.4 2.4 3.3 3.9 6.6 3.2 3.2-.7 5.6-3.1 5.3-5.5" opacity=".5"/><path d="m14.6 34.1c-3.2-.6-6.2.9-6.6 3.3-.4 2.4 2 4.9 5.3 5.5 3.3.6 6.3-.8 6.6-3.2.4-2.5-2-4.9-5.3-5.6" opacity=".5"/></g><path d="m26 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="19.5" cy="27.5" r="4.5" fill="#664e27"/><path d="m21 27.5c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m51 27.5c0 3.6-2.9 6.5-6.5 6.5-3.6 0-6.5-2.9-6.5-6.5 0-3.6 2.9-6.5 6.5-6.5 3.6 0 6.5 2.9 6.5 6.5" fill="#fff"/><circle cx="44.5" cy="27.5" r="4.5" fill="#664e27"/><circle cx="44.5" cy="27.5" r="1.5" fill="#231f20"/><path d="m47 43.8c0 8.3-6.7 12.2-15 12.2-8.3 0-15-3.9-15-12.2 0-8.4 6.8-4.8 15-4.8 8.3 0 15-3.6 15 4.8" fill="#61c2ff"/><ellipse cx="32" cy="47" rx="6" ry="5" fill="#6235a8"/><path d="m32 46c-6.1 0-11-.7-11 5.2 0 6 4.9 10.8 11 10.8s11-4.8 11-10.7c0-6-4.9-5.3-11-5.3m0 12.4c-4.3 0-8.3-2.9-8.3-7.1s4-3.2 8.3-3.2c4.3 0 8.3-1 8.3 3.2s-4 7.1-8.3 7.1" fill="#fbbf67"/><path d="m36 48.8c0 .6-.5 1.2-1.1 1.2h-5.8c-.6 0-1.1-.5-1.1-1.2v-2.7c0-.6.5-1.2 1.1-1.2h5.8c.6 0 1.1.5 1.1 1.2v2.7" fill="#42ade2"/><path d="m32 38c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fb.svg
index d4a0f89..1c07894 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m58.59 37.701c-4.127-1.551-2.684-6.717-2.684-6.717h-47.81c0 0 1.445 5.166-2.684 6.717 0 0-3.41.605-3.41 4.533 0 4.73 3.508 4.965 3.508 4.965 0 7.203 7.428 14.799 26.492 14.799 19.06 0 26.492-7.596 26.492-14.799 0 0 3.506-.234 3.506-4.965 0-3.927-3.41-4.533-3.41-4.533"/><path fill="#664e27" d="m24.796 51.691c-.137.158-.211.361-.211.609-.002 1.686 3.357 3.754 7.5 3.754s7.5-2.053 7.5-3.74c0-.227-.064-.465-.178-.623 0 0-3.242 1.453-7.322 1.453-4.072.001-7.289-1.453-7.289-1.453"/><path fill="#ff9430" d="m59 30.984h-54c0-14.339 6.756-25.483 27-25.483 20.246 0 27 11.145 27 25.483"/><g fill="#db802b"><path d="m24.46 30.984h-4v-23.924l4-1.17z"/><path d="m43.542 30.984h-4v-25.09l3.999 1.17z"/><path d="m62 33.19h-60c0-5.115 13.432-9.264 30-9.264s30 4.148 30 9.264"/></g><path fill="#ff9430" d="m41.542 27.668h-19.08v-21.12c0-6.068 19.08-6.068 19.08 0v21.12"/><g fill="#231f20"><path d="m5 33.19h3.445v8.217h-3.445z"/><path d="m55.56 33.19h3.443v8.217h-3.443z"/></g><path fill="#f5f5f5" d="m12.634 38.683c-.323 1.517-.709 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.314-2.199-2.295-4.644-6.156-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.293" cy="39.802" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.292" cy="39.802" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.493 40.16c-1.047-6.75 14.1-6.391 14.1.798-2.19-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.683c.323 1.517.708 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.316-2.199 2.293-4.644 6.154-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.708" cy="39.802" rx="3.926" ry="3.889"/><path fill="#231f20" d="m44.958 39.802c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.688-.001 1.25.551 1.25 1.237"/><path fill="#664e27" d="m51.51 40.16c1.045-6.75-14.1-6.391-14.1.798 2.188-5.72 12.625-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m6 28h52v12h-52z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#ffe1bd"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="M59,31H5C5,16.6,11.8,5.5,32,5.5C52.2,5.5,59,16.6,59,31z" fill="#ff9430"/><g fill="#db802b"><path d="m24.5 31h-4v-23.9l4-1.2z"/><path d="m43.5 31h-4v-25.1l4 1.2z"/><path d="m62 33.2h-60c0-5.1 13.4-9.3 30-9.3 16.6 0 30 4.2 30 9.3"/></g><path d="M41.5,27.7H22.5V6.6c0-6.1,19.1-6.1,19.1,0V27.7z" fill="#ff9430"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fc.svg
index cf09a99..2baad92 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m58.59 37.701c-4.127-1.551-2.684-6.717-2.684-6.717h-47.81c0 0 1.445 5.166-2.684 6.717 0 0-3.41.605-3.41 4.533 0 4.73 3.508 4.965 3.508 4.965 0 7.203 7.428 14.799 26.492 14.799 19.06 0 26.492-7.596 26.492-14.799 0 0 3.506-.234 3.506-4.965 0-3.927-3.41-4.533-3.41-4.533"/><path fill="#664e27" d="m24.795 51.691c-.137.158-.211.361-.211.609-.002 1.686 3.357 3.754 7.5 3.754 4.142 0 7.5-2.053 7.5-3.74 0-.227-.064-.465-.178-.623 0 0-3.242 1.453-7.322 1.453-4.072.001-7.289-1.453-7.289-1.453"/><path fill="#ff9430" d="m59 30.984h-54c0-14.338 6.756-25.483 27-25.483 20.246 0 27 11.145 27 25.483"/><g fill="#db802b"><path d="m24.459 30.984h-4v-23.924l4-1.17z"/><path d="m43.541 30.984h-4l.002-25.09 3.998 1.17z"/><path d="m62 33.19h-60c0-5.115 13.432-9.264 30-9.264 16.568 0 30 4.148 30 9.264"/></g><path fill="#ff9430" d="m41.541 27.668h-19.08v-21.12c0-6.068 19.08-6.068 19.08 0v21.12"/><g fill="#dbb471"><path d="m5 33.19h3.445v8.217h-3.445z"/><path d="m55.56 33.19h3.443v8.217h-3.443z"/></g><path fill="#f5f5f5" d="m12.634 38.683c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.293" cy="39.802" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.543 39.802c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.688-.001 1.25.551 1.25 1.237"/><path fill="#664e27" d="m12.493 40.16c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.683c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.708" cy="39.802" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.957 39.802c0 .685-.561 1.238-1.248 1.238-.691 0-1.252-.554-1.252-1.238 0-.686.561-1.237 1.252-1.237.687-.001 1.248.551 1.248 1.237"/><path fill="#664e27" d="m51.51 40.16c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m6 28h52v12h-52z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#fed0ac"/><path d="m20 35.8c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5c-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="M59,31H5C5,16.6,11.8,5.5,32,5.5C52.2,5.5,59,16.6,59,31z" fill="#ff9430"/><g fill="#db802b"><path d="m24.5 31h-4v-23.9l4-1.2z"/><path d="m43.5 31h-4v-25.1l4 1.2z"/><path d="m62 33.2h-60c0-5.1 13.4-9.3 30-9.3s30 4.2 30 9.3"/></g><path d="M41.5,27.7H22.5V6.6c0-6.1,19.1-6.1,19.1,0V27.7z" fill="#ff9430"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fd.svg
index bbb3988..9bd5a80 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m58.59 37.701c-4.127-1.551-2.684-6.717-2.684-6.717h-47.81c0 0 1.445 5.166-2.684 6.717 0 0-3.41.605-3.41 4.533 0 4.73 3.508 4.965 3.508 4.965 0 7.203 7.428 14.799 26.492 14.799 19.06 0 26.492-7.596 26.492-14.799 0 0 3.506-.234 3.506-4.965 0-3.927-3.41-4.533-3.41-4.533"/><path fill="#664e27" d="m24.796 51.691c-.137.158-.211.361-.211.609-.002 1.686 3.357 3.754 7.5 3.754s7.5-2.053 7.5-3.74c0-.227-.064-.465-.178-.623 0 0-3.242 1.453-7.322 1.453-4.072.001-7.289-1.453-7.289-1.453"/><path fill="#ff9430" d="m59 30.984h-54c0-14.339 6.755-25.483 27-25.483 20.246 0 27 11.145 27 25.483"/><g fill="#db802b"><path d="m24.46 30.984h-4v-23.924l4-1.17z"/><path d="m43.542 30.984h-4v-25.09l4 1.17z"/><path d="m62 33.19h-60c0-5.115 13.432-9.264 30-9.264s30 4.148 30 9.264"/></g><path fill="#ff9430" d="m41.542 27.668h-19.08v-21.12c0-6.068 19.08-6.068 19.08 0v21.12"/><g fill="#594640"><path d="m5 33.19h3.445v8.217h-3.445z"/><path d="m55.56 33.19h3.443v8.217h-3.443z"/></g><path fill="#f5f5f5" d="m12.634 38.683c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.292" cy="39.802" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.292" cy="39.802" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.492 40.16c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.683c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.708" cy="39.802" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.957 39.802c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.688-.001 1.249.551 1.249 1.237"/><path fill="#664e27" d="m51.51 40.16c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m6 28h52v12h-52z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#d6a57c"/><path d="m20 35.8c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5c-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="M59,31H5C5,16.6,11.8,5.5,32,5.5C52.2,5.5,59,16.6,59,31z" fill="#ff9430"/><g fill="#db802b"><path d="m24.5 31h-4v-23.9l4-1.2z"/><path d="m43.5 31h-4v-25.1l4 1.2z"/><path d="m62 33.2h-60c0-5.1 13.4-9.3 30-9.3s30 4.2 30 9.3"/></g><path d="M41.5,27.7H22.5V6.6c0-6.1,19.1-6.1,19.1,0V27.7z" fill="#ff9430"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fe.svg
index 7352ca0..ee7b228 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m58.59 37.701c-4.127-1.551-2.684-6.717-2.684-6.717h-47.81c0 0 1.445 5.166-2.684 6.717 0 0-3.41.605-3.41 4.533 0 4.73 3.508 4.965 3.508 4.965 0 7.203 7.428 14.799 26.492 14.799 19.06 0 26.492-7.596 26.492-14.799 0 0 3.506-.234 3.506-4.965 0-3.927-3.41-4.533-3.41-4.533"/><path fill="#574137" d="m24.796 51.691c-.137.158-.211.361-.211.609-.002 1.686 3.357 3.754 7.5 3.754s7.5-2.053 7.5-3.74c0-.227-.064-.465-.178-.623 0 0-3.242 1.453-7.322 1.453-4.072.001-7.289-1.453-7.289-1.453"/><path fill="#ff9430" d="m59 30.984h-54c0-14.339 6.756-25.483 27-25.483 20.246 0 27 11.145 27 25.483"/><g fill="#db802b"><path d="m24.46 30.984h-4v-23.924l4-1.17z"/><path d="m43.542 30.984h-4v-25.09l3.999 1.17z"/><path d="m62 33.19h-60c0-5.115 13.432-9.264 30-9.264s30 4.148 30 9.264"/></g><path fill="#ff9430" d="m41.542 27.668h-19.08v-21.12c0-6.068 19.08-6.068 19.08 0v21.12"/><g fill="#231f20"><path d="m5 33.19h3.445v8.217h-3.445z"/><path d="m55.56 33.19h3.443v8.217h-3.443z"/></g><path fill="#f5f5f5" d="m12.634 38.683c-.322 1.517-.708 5.321 6.475 5.188 7.443-.142 7.148.5 7.51-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.293" cy="39.802" rx="3.925" ry="3.889"/><path fill="#231f20" d="m21.543 39.802c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687-.001 1.249.551 1.249 1.237"/><path fill="#574137" d="m12.493 40.16c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.626-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.683c.322 1.517.708 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.369.176 7.83 2.347"/><ellipse fill="#664e27" cx="43.708" cy="39.802" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.708" cy="39.802" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 40.16c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m6 28h52v12h-52z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#b47d56"/><path d="m20 35.8c-5 0-7 1.8-7 3.6s0 4.4 6.6 4.4c6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6s0 4.4-6.6 4.4c-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5 0-.8-.7-1.5-1.5-1.5-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><g fill="#664e27"><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9"/></g><path d="M59,31H5C5,16.6,11.8,5.5,32,5.5C52.2,5.5,59,16.6,59,31z" fill="#ff9430"/><g fill="#db802b"><path d="m24.5 31h-4v-23.9l4-1.2z"/><path d="m43.5 31h-4v-25.1l4 1.2z"/><path d="m62 33.2h-60c0-5.1 13.4-9.3 30-9.3 16.6 0 30 4.2 30 9.3"/></g><path d="M41.5,27.7H22.5V6.6c0-6.1,19.1-6.1,19.1,0V27.7z" fill="#ff9430"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3ff.svg
index 4636604..2cfb7cf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f477-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m58.59 37.701c-4.127-1.551-2.684-6.717-2.684-6.717h-47.81c0 0 1.445 5.166-2.684 6.717 0 0-3.41.605-3.41 4.533 0 4.73 3.508 4.965 3.508 4.965 0 7.203 7.428 14.799 26.492 14.799 19.06 0 26.492-7.596 26.492-14.799 0 0 3.506-.234 3.506-4.965 0-3.927-3.41-4.533-3.41-4.533"/><path fill="#574137" d="m24.796 51.691c-.137.158-.211.361-.211.609-.002 1.686 3.357 3.754 7.5 3.754s7.5-2.053 7.5-3.74c0-.227-.064-.465-.178-.623 0 0-3.242 1.453-7.322 1.453-4.072.001-7.289-1.453-7.289-1.453"/><path fill="#ff9430" d="m59 30.984h-54c0-14.339 6.755-25.483 27-25.483 20.246 0 27 11.145 27 25.483"/><g fill="#db802b"><path d="m24.46 30.984h-4v-23.924l4-1.17z"/><path d="m43.542 30.984h-4v-25.09l3.999 1.17z"/><path d="m62 33.19h-60c0-5.115 13.432-9.264 30-9.264s30 4.148 30 9.264"/></g><path fill="#ff9430" d="m41.542 27.668h-19.08v-21.12c0-6.068 19.08-6.068 19.08 0v21.12"/><g fill="#231f20"><path d="m5 33.19h3.445v8.217h-3.445z"/><path d="m55.56 33.19h3.443v8.217h-3.443z"/></g><path fill="#f5f5f5" d="m12.634 38.683c-.323 1.517-.708 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.316-2.199-2.293-4.644-6.154-5.521s-7.369.176-7.83 2.347"/><ellipse fill="#664e27" cx="20.293" cy="39.802" rx="3.926" ry="3.889"/><path fill="#231f20" d="m21.543 39.802c0 .685-.563 1.238-1.25 1.238-.691 0-1.25-.554-1.25-1.238 0-.686.559-1.237 1.25-1.237.687-.001 1.25.551 1.25 1.237"/><path fill="#574137" d="m12.492 40.16c-1.045-6.75 14.1-6.391 14.1.798-2.188-5.72-12.625-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.683c.323 1.517.709 5.321-6.475 5.188-7.443-.142-7.148.5-7.51-2.01-.314-2.199 2.295-4.644 6.156-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.708" cy="39.802" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="43.707" cy="39.802" rx="1.25" ry="1.238"/><path fill="#574137" d="m51.51 40.16c1.047-6.75-14.1-6.391-14.1.798 2.19-5.72 12.627-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m6 28h52v12h-52z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#8a6859"/><path d="m20 35.8c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5c-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#574137"/><path d="M59,31H5C5,16.6,11.8,5.5,32,5.5C52.2,5.5,59,16.6,59,31z" fill="#ff9430"/><g fill="#db802b"><path d="m24.5 31h-4v-23.9l4-1.2z"/><path d="m43.5 31h-4v-25.1l4 1.2z"/><path d="m62 33.2h-60c0-5.1 13.4-9.3 30-9.3s30 4.2 30 9.3"/></g><path d="M41.5,27.7H22.5V6.6c0-6.1,19.1-6.1,19.1,0V27.7z" fill="#ff9430"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f477.svg b/build/js/jsxc/lib/emojione/assets/svg/1f477.svg
index 215012c..56ae64c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f477.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f477.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m58.59 37.701c-4.127-1.551-2.684-6.717-2.684-6.717h-47.81c0 0 1.445 5.166-2.684 6.717 0 0-3.41.605-3.41 4.533 0 4.73 3.508 4.965 3.508 4.965 0 7.203 7.428 14.799 26.492 14.799 19.06 0 26.492-7.596 26.492-14.799 0 0 3.506-.234 3.506-4.965 0-3.927-3.41-4.533-3.41-4.533"/><path fill="#664e27" d="m24.797 51.691c-.137.158-.211.361-.211.609-.002 1.686 3.357 3.754 7.5 3.754 4.142 0 7.5-2.053 7.5-3.74 0-.227-.064-.465-.178-.623 0 0-3.242 1.453-7.322 1.453-4.072.001-7.289-1.453-7.289-1.453"/><path fill="#ff9430" d="m59 30.984h-54c0-14.339 6.755-25.483 27-25.483 20.246 0 27 11.145 27 25.483"/><g fill="#db802b"><path d="m24.461 30.984h-4v-23.924l4-1.17z"/><path d="m43.543 30.984h-4v-25.09l3.999 1.17z"/><path d="m62 33.19h-60c0-5.115 13.432-9.264 30-9.264 16.568 0 30 4.148 30 9.264"/></g><path fill="#ff9430" d="m41.543 27.668h-19.08v-21.12c0-6.068 19.08-6.068 19.08 0v21.12"/><g fill="#231f20"><path d="m5 33.19h3.445v8.217h-3.445z"/><path d="m55.56 33.19h3.443v8.217h-3.443z"/></g><path fill="#f5f5f5" d="m12.636 38.683c-.324 1.517-.709 5.321 6.475 5.188 7.443-.142 7.147.5 7.509-2.01.315-2.199-2.294-4.644-6.155-5.521s-7.368.176-7.829 2.347"/><ellipse fill="#664e27" cx="20.295" cy="39.802" rx="3.925" ry="3.889"/><ellipse fill="#231f20" cx="20.294" cy="39.802" rx="1.25" ry="1.238"/><path fill="#664e27" d="m12.495 40.16c-1.046-6.75 14.1-6.391 14.1.798-2.189-5.72-12.627-5.917-14.1-.798"/><path fill="#f5f5f5" d="m51.37 38.683c.324 1.517.709 5.321-6.475 5.188-7.443-.142-7.147.5-7.509-2.01-.315-2.199 2.294-4.644 6.155-5.521s7.368.176 7.829 2.347"/><ellipse fill="#664e27" cx="43.709" cy="39.802" rx="3.925" ry="3.889"/><path fill="#231f20" d="m44.959 39.802c0 .685-.562 1.238-1.249 1.238-.691 0-1.251-.554-1.251-1.238 0-.686.56-1.237 1.251-1.237.687-.001 1.249.551 1.249 1.237"/><path fill="#664e27" d="m51.51 40.16c1.046-6.75-14.1-6.391-14.1.798 2.189-5.72 12.626-5.917 14.1-.798"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffb300" d="m6 28h52v12h-52z"/><path d="m8 37v-9h48v9c0 0 4 0 4 5s-4 5-4 5c0 8-18 15-24 15s-24-7-24-15c0 0-4 0-4-5 0-5 4-5 4-5" fill="#ffdd67"/><path d="m20 35.8c-5 0-7 1.8-7 3.6 0 1.8 0 4.4 6.6 4.4 6.4 0 7.4-.8 7.4-3.5 0-1.8-2-4.5-7-4.5" fill="#f5f5f5"/><circle cx="20.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m22 38.8c0 .8-.7 1.5-1.5 1.5-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5c.8 0 1.5.7 1.5 1.5" fill="#231f20"/><path d="m13 39.3c0-7 14-7 14 1-2-6-12-6-14-1" fill="#664e27"/><path d="m44 35.8c5 0 7 1.8 7 3.6 0 1.8 0 4.4-6.6 4.4-6.4 0-7.4-.8-7.4-3.5 0-1.8 2-4.5 7-4.5" fill="#f5f5f5"/><circle cx="43.5" cy="38.8" r="4.5" fill="#664e27"/><path d="m42 38.8c0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5c-.8 0-1.5.7-1.5 1.5" fill="#231f20"/><path d="m51 39.3c0-7-14-7-14 1 2-6 12-6 14-1" fill="#664e27"/><path d="m41 50.9c0 3.4-4.5 5.1-9 5.1s-9-1.7-9-5.1c0 0 0-.9.9-.9 4.1 0 12.1 0 16.2 0 .9 0 .9.9.9.9" fill="#937237"/><path d="M59,31H5C5,16.6,11.8,5.5,32,5.5C52.2,5.5,59,16.6,59,31z" fill="#ff9430"/><g fill="#db802b"><path d="m24.5 31h-4v-23.9l4-1.2z"/><path d="m43.5 31h-4v-25.1l4 1.2z"/><path d="m62 33.2h-60c0-5.1 13.4-9.3 30-9.3s30 4.2 30 9.3"/></g><path d="M41.5,27.7H22.5V6.6c0-6.1,19.1-6.1,19.1,0V27.7z" fill="#ff9430"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fb.svg
index 0dd32cd..ded39fa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.414-15.16-21.996-15.16-21.996s-1.14-4.531-12.84-4.531"/><path fill="#ffe1bd" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.537 3.039-5.537 10.895 0 35.26-4.705 35.26-4.705s.092 3.047 6.566 4.705c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.059 9-12.352 19.861-19.819 19.861-7.466 0-19.968-10.859-19.968-19.861"/><path fill="#e6b796" d="m37 45.25c0 1.963-4.067 2.529-5 2.529s-5-.695-5-2.656c-.001 0 10-.851 10 .127"/><path fill="#f085a9" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.164.527-5.447.27-5.447.27 2.385 2.387 3.52 5.645 8.998 5.645 5.479 0 6.612-3.258 8.999-5.645-.001-.001-3.284.257-5.448-.27"/><path fill="#d46c8f" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.125.518-5.461.268-5.447.27 3.602.648 4.051 2.488 8.998 2.488 4.948 0 5.397-1.84 8.999-2.488.011-.003-3.323.247-5.448-.27"/><path fill="#ffce31" d="m57.949 16.337c-.836-.445-1.918-.115-2.5.69-.244-.875-.695-1.607-1.264-2.117.566.018.766-.344.648-.741-.221-.745-.51-1.536-1.916-2.47-.01-1.614-1.184-3.072-1.227-3.117-.195-.206-.615-.189-.785.088-.031.053-.939 1.551-.535 3.289-1.459 1.299-1.381 2.735-1.291 2.969-.236.004-1.678 1.027-2.068 2.887-.777.023-1.27.553-1.27.553.275-2.236-1.357-4.395-3.982-4.282-.676-3.891-5.146-5.185-5.949-1.356-.598-.93-1.73-1.697-1.73-1.697.352-1.926-1.237-5.03-2.079-5.03s-2.432 3.107-2.078 5.03c0 0-1.133.768-1.732 1.697-.803-3.828-5.271-2.534-5.947 1.356-2.626-.112-4.259 2.046-3.982 4.282 0 0-.494-.529-1.27-.553-.393-1.859-1.833-2.883-2.07-2.887.091-.233.17-1.67-1.291-2.969.405-1.738-.503-3.236-.535-3.289-.17-.277-.59-.294-.785-.088-.042.045-1.215 1.503-1.225 3.117-1.406.934-1.695 1.725-1.917 2.47-.118.397.083.759.647.741-.566.51-1.018 1.242-1.262 2.117-.584-.806-1.665-1.136-2.501-.69-.972.515-1.324 1.798-.828 2.884.633 1.383 2.426 1.498 3.302.519.406 2.228 2.727 3.097 4.524 1.595-.28.967 1.353 1.028 3.232-.551.584.359 1.662.342 2.104.129-.072 1.174.515 3.086 2.562 3.086 1.402 0 1.955-1.01 1.857-1.813.828.335 2.285.568 3.361-.139 2.098 1.82 3.623 2.076 3.684 1.035.612.52 1.353.828 2.15.828s1.538-.309 2.149-.828c.063 1.041 1.586.785 3.686-1.035 1.076.707 2.533.474 3.359.139-.098.803.457 1.813 1.859 1.813 2.047 0 2.633-1.912 2.561-3.086.441.213 1.52.23 2.104-.129 1.879 1.579 3.514 1.518 3.232.551 1.797 1.502 4.119.633 4.525-1.595.875.979 2.668.864 3.301-.519.496-1.086.145-2.369-.828-2.884m-47.58-2.429c.244-.729.855-1.105.855-1.105l.22.827c0 0-.533.391-1.075.278m2.35-2.581l-.611-.043c0 0 .097-.87.454-1.299.279.566.157 1.342.157 1.342m.105 2.444l.411-.775c0 0 .482.477.597 1.258-.545.001-1.01-.483-1.01-.483m.798 1.512c.222.037.718.054.718.054s-.152.312-.266.794c-.051-.133-.349-.705-.452-.848m.467 5.826c.17-.856.661-1.545.661-1.545l.659.682c.001 0-.647.674-1.32.863m.975-3.119c0 0-.207-.949.015-1.695.646.486.868 1.433.868 1.433l-.883.262m1.691 1.853l.217-.946c0 0 .773.19 1.343.944-.614.271-1.56.002-1.56.002m22.284-2.53c-.486-1.057.09-1.975 1.965-2.055.799 3.256-1.586 2.881-1.965 2.055m-7.04-9.911c.49 0 1.127 2.499.962 3.367h-1.923c-.165-.868.471-3.367.961-3.367m-9 7.856c1.875.08 2.45.998 1.965 2.055-.381.826-2.766 1.201-1.965-2.055m-2.793 3.662c-.327.262-.979.004-.953-1.396 1.287.404 1.291 1.124.953 1.396m2.439 2.056c-.33-.985-1.033-1.411-1.42-1.595.688-1.055.118-2.278-1.759-2.754.859-1.129 1.53-1.504 2.528-1.498-.719 3.057 1.02 4.591 3.243 3.298-.023.154-.046.311-.049.463-1.107.285-1.924 1.135-2.543 2.086m.988.346c.322-.725 1.617-1.352 1.617-1.352l.371 1.179c.001 0-.996.462-1.988.173m2.366-4.711c-.109-1.093-.31-1.94-2.739-2.383.765-3.49 3.575-3.266 3.924-1.612.249 1.176-1.438 1.585-1-.062.162-.611-.746-.85-.975-.272-.332.829-.383 3.124 2.091 2.051-.226.56-.529.923-.335 1.244-.18.148-.584.507-.963 1.034m1.188.174c.378 1.014.192 2.156.192 2.156l-1.154-.24c0 0 .258-1.101.962-1.916m-.188 4.652l.773-.94c0 0 .765.793 1 1.898-.856-.086-1.773-.958-1.773-.958m1.449-3.82c-.016-.773-.463-1.553-.463-1.553l1.261-.041c0 0-.664.674-.798 1.594m-.323-2.607c.256-1.452 2.207-2.733 2.207-2.733l.953 1.785c.001 0-1.272 1.012-3.16.948m3.875-1.879c-.205-.303-.453-.72-.651-1.211.229-.043 1.073-.043 1.303 0-.198.491-.446.908-.652 1.211m.715.931l.954-1.785c0 0 1.951 1.281 2.207 2.733-1.889.064-3.161-.948-3.161-.948m2.04 1.961l1.262.041c0 0-.447.779-.463 1.553-.137-.92-.799-1.594-.799-1.594m.474 6.372c.234-1.105 1-1.898 1-1.898l.771.94c.001 0-.915.872-1.771.958m1.393-3.454c0 0-.188-1.143.191-2.156.705.814.961 1.916.961 1.916l-1.152.24m.418-3.364c.193-.321-.109-.685-.336-1.244 2.473 1.073 2.424-1.222 2.092-2.051-.23-.577-1.139-.339-.977.272.436 1.646-1.25 1.237-1 .062.35-1.653 3.158-1.878 3.924 1.612-2.43.442-2.629 1.29-2.74 2.383-.379-.527-.781-.886-.961-1.034m1.34 5.572l.369-1.179c0 0 1.297.627 1.619 1.352-.994.289-1.988-.173-1.988-.173m4.394-1.768c-.385.184-1.088.609-1.42 1.595-.619-.95-1.434-1.801-2.543-2.086-.004-.152-.025-.309-.049-.463 2.225 1.293 3.961-.241 3.242-3.298 1-.006 1.67.369 2.529 1.498-1.876.476-2.446 1.699-1.759 2.754m1.022-.461c-.34-.271-.334-.992.951-1.396.027 1.4-.625 1.658-.951 1.396m1.891.921c.57-.754 1.342-.944 1.342-.944l.219.946c-.001 0-.946.269-1.561-.002m3.236-3.546c.223.746.014 1.695.014 1.695l-.883-.263c0 .001.224-.946.869-1.432m-.332 3.951l.66-.682c0 0 .492.688.662 1.545-.674-.189-1.322-.863-1.322-.863m1.336-4.115c-.111-.482-.264-.794-.264-.794s.496-.017.717-.054c-.104.143-.401.715-.453.848m.242-1.877c.115-.781.598-1.258.598-1.258l.412.775c0 0-.463.484-1.01.483m1.113-2.927c0 0-.123-.776.158-1.342.355.429.453 1.299.453 1.299l-.611.043m1.276 2.303l.219-.827c0 0 .613.376.857 1.105-.543.113-1.076-.278-1.076-.278"/><g fill="#ff5760"><path d="m56.53 19.29c-.492-.261-.676-.921-.408-1.474.266-.551.879-.791 1.371-.529.488.259.672.92.408 1.473-.265.551-.881.789-1.371.53"/><path d="m44.504 22.442c-.574.788-1.537 1.031-2.146.54-.605-.488-.631-1.525-.055-2.313.576-.786 1.537-1.029 2.145-.539.607.489.632 1.526.056 2.312"/><path d="m54.609 17.863c.219 1.538-.492 2.925-1.586 3.096-1.096.17-2.16-.938-2.379-2.477-.217-1.541.494-2.927 1.59-3.096 1.094-.171 2.159.938 2.375 2.477"/><path d="m7.471 19.29c.491-.261.675-.921.409-1.474-.267-.55-.88-.791-1.371-.529-.49.259-.674.92-.408 1.473.266.551.879.789 1.37.53"/><ellipse cx="32" cy="19.229" rx="3.03" ry="3.822"/><path d="m19.5 22.442c.574.788 1.536 1.031 2.145.54.606-.488.632-1.525.056-2.313-.577-.786-1.537-1.029-2.146-.539-.608.489-.633 1.526-.055 2.312"/><path d="m9.392 17.863c-.219 1.538.493 2.925 1.588 3.096 1.095.17 2.16-.938 2.378-2.477.218-1.541-.494-2.927-1.589-3.096-1.095-.171-2.159.938-2.377 2.477"/></g><path fill="#f5f5f5" d="m38.561 37.41c-1.174 0-1.02-3.037-1.02-3.037 3.609-8.06 11.645-2.961 11.645-2.961 3.125 1.396-1.4 5.805-2.125 5.998-3.403.922-8.5 0-8.5 0"/><circle fill="#6235a8" cx="43.27" cy="33.717" r="3.844"/><g fill="#231f20"><path d="m44.518 33.717c0 .69-.559 1.25-1.25 1.25-.688 0-1.25-.56-1.25-1.25s.563-1.25 1.25-1.25c.691 0 1.25.559 1.25 1.25"/><path d="m51.05 32.3c-.502-.214-1-.473-1.502-.73.623-.031 1.27-.196 1.676-.653-.697.274-1.373.143-2.023-.069-.656-.203-1.307-.497-1.988-.749-1.348-.525-2.883-.962-4.512-.781-.803.108-1.598.362-2.295.765-.689.414-1.309.916-1.803 1.508-1.01 1.163-1.674 2.521-2.074 3.938.947-1.129 1.857-2.232 2.896-3.11.246-.207.5-.396.76-.572 1.201-.701 2.547-.941 3.928-.734 1.441.174 2.885.729 4.387 1.233.752.258 1.523.509 2.344.663.41.064.836.114 1.264.067.426-.041.855-.207 1.137-.502-.768.3-1.502.023-2.195-.274"/></g><path fill="#f5f5f5" d="m25.442 37.41c1.174 0 1.02-3.037 1.02-3.037-3.609-8.06-11.645-2.961-11.645-2.961-3.125 1.396 1.4 5.805 2.125 5.998 3.402.922 8.5 0 8.5 0"/><circle fill="#6235a8" cx="20.735" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.735" cy="33.717" r="1.25"/><path d="m12.949 32.3c.502-.214.999-.473 1.501-.73-.623-.031-1.269-.196-1.676-.653.698.274 1.374.143 2.024-.069.656-.203 1.306-.497 1.988-.749 1.348-.525 2.882-.962 4.512-.781.802.108 1.598.362 2.295.765.688.414 1.309.916 1.802 1.508 1.01 1.163 1.675 2.521 2.074 3.938-.946-1.129-1.856-2.232-2.896-3.11-.246-.207-.5-.396-.76-.572-1.202-.701-2.547-.941-3.928-.734-1.441.174-2.885.729-4.387 1.233-.752.258-1.523.509-2.344.663-.41.064-.836.114-1.264.067-.426-.041-.855-.207-1.138-.502.769.3 1.503.023 2.197-.274"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#594640"/><path d="m10.4 40.7c0 0-4.4-1.1-4.4-7.5 0-5.1 3.3-5.9 3.3-5.9 30.2-.1 38.7-6.3 38.7-6.3s1.9 6.2 6.6 6.2c0 0 3.4.6 3.4 5.9 0 6.4-4.5 7.5-4.5 7.5-.1 9.7-13.4 21.4-21.5 21.4-8.1 0-21.6-11.7-21.6-21.3" fill="#ffe1bd"/><path d="m32 47c-4.2 0-6.3-3-4.2-3 2.1 0 6.3 0 8.4 0s0 3-4.2 3" fill="#e6b796"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#6235a8"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#6235a8"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#f085a9"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5 5.5 0 6-1.7 10-2.5 0 0-3.8.5-6.1-.4" fill="#d46c8f"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/><path d="m57.9 14.3c-.8-.4-1.9-.1-2.5.7-.2-.9-.7-1.6-1.3-2.1.6 0 .8-.3.6-.7-.2-.7-.5-1.5-1.9-2.5 0-1.6-1.2-3.1-1.2-3.1-.2-.2-.6-.2-.8.1 0 .1-.9 1.6-.5 3.3-1.5 1.3-1.4 2.7-1.3 3-.2 0-1.7 1-2.1 2.9-.8 0-1.3.6-1.3.6.3-2.2-1.4-4.4-4-4.3-.7-3.9-5.1-5.2-5.9-1.4-.5-1-1.6-1.8-1.6-1.8.4-1.9-1.2-5-2.1-5s-2.4 3.1-2.1 5c0 0-1.1.8-1.7 1.7-.8-3.8-5.3-2.5-5.9 1.4-2.6-.1-4.3 2-4 4.3 0 0-.5-.5-1.3-.6-.4-1.9-1.8-2.9-2.1-2.9.1-.2.2-1.7-1.3-3 .4-1.7-.5-3.2-.5-3.3-.2-.3-.6-.3-.8-.1 0 0-1.2 1.5-1.2 3.1-1.4.9-1.7 1.7-1.9 2.5-.1.4.1.8.6.7-.6.5-1 1.2-1.3 2.1-.6-.8-1.7-1.1-2.5-.7-1 .5-1.3 1.8-.8 2.9.6 1.4 2.4 1.5 3.3.5.4 2.2 2.7 3.1 4.5 1.6-.3 1 1.4 1 3.2-.6.6.4 1.7.3 2.1.1-.1 1.2.5 3.1 2.6 3.1 1.4 0 2-1 1.9-1.8.8.3 2.3.6 3.4-.1 2.1 1.8 3.6 2.1 3.7 1 .6.5 1.4.8 2.1.8s1.5-.3 2.1-.8c.1 1 1.6.8 3.7-1 1.1.7 2.5.5 3.4.1-.1 1 .5 2 1.9 2 2 0 2.6-1.9 2.6-3.1.4.2 1.5.2 2.1-.1 1.9 1.6 3.5 1.5 3.2.6 1.8 1.5 4.1.6 4.5-1.6.9 1 2.7.9 3.3-.5.5-1.2.1-2.4-.9-3m-47.5-2.4c.2-.7.9-1.1.9-1.1l.2.8c-.1 0-.6.4-1.1.3m2.3-2.6h-.6c0 0 .1-.9.5-1.3.2.6.1 1.3.1 1.3m.1 2.5l.4-.8c0 0 .5.5.6 1.3-.5 0-1-.5-1-.5m.8 1.5c.2 0 .7.1.7.1s-.2.3-.3.8c0-.2-.3-.8-.4-.9m.5 5.8c.2-.9.7-1.5.7-1.5l.7.7c-.1-.1-.7.6-1.4.8m1-3.1c0 0-.2-.9 0-1.7.6.5.9 1.4.9 1.4l-.9.3m1.7 1.8l.2-.9c0 0 .8.2 1.3.9-.6.3-1.5 0-1.5 0m22.2-2.5c-.5-1.1.1-2 2-2.1.8 3.3-1.6 2.9-2 2.1m-7-9.9c.5 0 1.1 2.5 1 3.4h-2c-.1-.9.5-3.4 1-3.4m-9 7.9c1.9.1 2.4 1 2 2.1-.4.7-2.8 1.1-2-2.1m-2.8 3.6c-.3.3-1 0-1-1.4 1.3.4 1.3 1.1 1 1.4m2.4 2.1c-.3-1-1-1.4-1.4-1.6.7-1.1.1-2.3-1.8-2.8.9-1.1 1.5-1.5 2.5-1.5-.7 3.1 1 4.6 3.2 3.3 0 .2 0 .3 0 .5-1 .3-1.8 1.1-2.5 2.1m1 .3c.3-.7 1.6-1.4 1.6-1.4l.4 1.2c0 .1-1 .5-2 .2m2.4-4.7c-.1-1.1-.3-1.9-2.7-2.4.8-3.5 3.6-3.3 3.9-1.6.2 1.2-1.4 1.6-1-.1.2-.6-.7-.9-1-.3-.3.8-.4 3.1 2.1 2.1-.2.6-.5.9-.3 1.2-.2.2-.6.6-1 1.1m1.2.2c.4 1 .2 2.2.2 2.2l-1.2-.2c0-.1.3-1.2 1-2m-.2 4.6l.8-.9c0 0 .8.8 1 1.9-.9-.1-1.8-1-1.8-1m1.4-3.8c0-.8-.5-1.6-.5-1.6h1.3c0 0-.6.7-.8 1.6m-.3-2.6c.3-1.5 2.2-2.7 2.2-2.7l1 1.8c0 0-1.3 1-3.2.9m3.9-1.9c-.2-.3-.5-.7-.7-1.2.2 0 1.1 0 1.3 0-.1.5-.4.9-.6 1.2m.7 1l1-1.8c0 0 2 1.3 2.2 2.7-1.9.1-3.2-.9-3.2-.9m2.1 1.9h1.3c0 0-.4.8-.5 1.6-.2-.9-.8-1.6-.8-1.6m.4 6.4c.2-1.1 1-1.9 1-1.9l.8.9c0 0-.9.9-1.8 1m1.4-3.5c0 0-.2-1.1.2-2.2.7.8 1 1.9 1 1.9l-1.2.3m.4-3.3c.2-.3-.1-.7-.3-1.2 2.5 1.1 2.4-1.2 2.1-2.1-.2-.6-1.1-.3-1 .3.4 1.6-1.2 1.2-1 .1.3-1.7 3.2-1.9 3.9 1.6-2.4.4-2.6 1.3-2.7 2.4-.4-.6-.8-1-1-1.1m1.4 5.6l.4-1.2c0 0 1.3.6 1.6 1.4-1 .2-2-.2-2-.2m4.4-1.8c-.4.2-1.1.6-1.4 1.6-.6-1-1.4-1.8-2.5-2.1 0-.2 0-.3 0-.5 2.2 1.3 4-.2 3.2-3.3 1 0 1.7.4 2.5 1.5-1.9.5-2.5 1.7-1.8 2.8m1-.5c-.3-.3-.3-1 1-1.4 0 1.4-.7 1.7-1 1.4m1.9.9c.6-.8 1.3-.9 1.3-.9l.2.9c0 0-.9.3-1.5 0m3.2-3.5c.2.7 0 1.7 0 1.7l-.9-.3c.1 0 .3-.9.9-1.4m-.3 3.9l.7-.7c0 0 .5.7.7 1.5-.8-.1-1.4-.8-1.4-.8m1.3-4.1c-.1-.5-.3-.8-.3-.8s.5 0 .7-.1c0 .2-.3.8-.4.9m.3-1.8c.1-.8.6-1.3.6-1.3l.4.8c0 0-.5.5-1 .5m1.1-3c0 0-.1-.8.2-1.3.4.4.5 1.3.5 1.3h-.7m1.3 2.3l.2-.8c0 0 .6.4.9 1.1-.6.1-1.1-.3-1.1-.3" fill="#fff"/><g fill="#ff5760"><path d="m56.5 17.3c-.5-.3-.7-.9-.4-1.5.3-.6.9-.8 1.4-.5.5.3.7.9.4 1.5-.3.5-.9.8-1.4.5"/><path d="m44.5 20.4c-.6.8-1.5 1-2.1.5-.6-.5-.6-1.5-.1-2.3.6-.8 1.5-1 2.1-.5.7.5.7 1.6.1 2.3"/><path d="m54.6 15.9c.2 1.5-.5 2.9-1.6 3.1-1.1.2-2.2-.9-2.4-2.5-.2-1.5.5-2.9 1.6-3.1 1.1-.2 2.2.9 2.4 2.5"/><path d="m7.5 17.3c.5-.3.6-.9.4-1.5-.3-.5-.9-.8-1.4-.5-.5.3-.7.9-.4 1.5.3.5.9.8 1.4.5"/><ellipse cx="32" cy="17.2" rx="3" ry="3.8"/><path d="m19.5 20.4c.6.8 1.5 1 2.1.5.6-.5.6-1.5.1-2.3-.6-.8-1.5-1-2.1-.5-.7.5-.7 1.6-.1 2.3"/><path d="m9.4 15.9c-.2 1.5.5 2.9 1.6 3.1 1.1.2 2.2-.9 2.4-2.5.2-1.5-.5-2.9-1.6-3.1-1.1-.2-2.2.9-2.4 2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fc.svg
index 5bade58..e815e48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.414-15.16-21.996-15.16-21.996s-1.141-4.531-12.84-4.531"/><path fill="#fed0ac" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.537 3.039-5.537 10.895 0 35.26-4.705 35.26-4.705s.092 3.047 6.566 4.705c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.059 9-12.352 19.861-19.818 19.861s-19.969-10.859-19.969-19.861"/><path fill="#e0a372" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#e07297" d="m35.552 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.164.527-5.447.27-5.447.27 2.385 2.387 3.52 5.645 8.998 5.645s6.611-3.258 8.998-5.645c0-.001-3.283.257-5.447-.27"/><path fill="#b85d7b" d="m35.552 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.125.518-5.461.268-5.447.27 3.602.648 4.051 2.488 8.998 2.488s5.396-1.84 8.998-2.488c.012-.003-3.322.247-5.447-.27"/><path fill="#ffce31" d="m57.95 16.337c-.838-.445-1.918-.115-2.502.69-.244-.875-.695-1.607-1.262-2.117.564.018.766-.344.648-.741-.223-.745-.512-1.536-1.918-2.47-.01-1.614-1.184-3.072-1.225-3.117-.195-.206-.615-.189-.785.088-.031.053-.939 1.551-.535 3.289-1.461 1.299-1.381 2.735-1.291 2.969-.238.004-1.678 1.027-2.068 2.887-.777.023-1.271.553-1.271.553.275-2.236-1.357-4.395-3.982-4.282-.676-3.891-5.145-5.185-5.947-1.356-.6-.93-1.732-1.697-1.732-1.697.354-1.926-1.236-5.03-2.078-5.03-.841 0-2.431 3.107-2.078 5.03 0 0-1.133.768-1.732 1.697-.802-3.828-5.271-2.534-5.947 1.356-2.625-.112-4.258 2.046-3.982 4.282 0 0-.493-.529-1.27-.553-.392-1.859-1.832-2.883-2.07-2.887.092-.233.171-1.67-1.29-2.969.405-1.738-.503-3.236-.536-3.289-.17-.277-.59-.294-.784-.088-.042.045-1.216 1.503-1.226 3.117-1.406.934-1.695 1.725-1.916 2.47-.119.397.082.759.647.741-.567.51-1.019 1.242-1.263 2.117-.583-.806-1.664-1.136-2.5-.69-.973.515-1.324 1.798-.828 2.884.633 1.383 2.426 1.498 3.301.519.406 2.228 2.728 3.097 4.525 1.595-.281.967 1.353 1.028 3.232-.551.584.359 1.662.342 2.104.129-.072 1.174.514 3.086 2.561 3.086 1.402 0 1.956-1.01 1.858-1.813.827.335 2.284.568 3.36-.139 2.098 1.82 3.623 2.076 3.684 1.035.613.52 1.354.828 2.15.828.799 0 1.539-.309 2.15-.828.061 1.041 1.586.785 3.684-1.035 1.076.707 2.533.474 3.361.139-.098.803.455 1.813 1.859 1.813 2.045 0 2.631-1.912 2.561-3.086.439.213 1.518.23 2.102-.129 1.881 1.579 3.514 1.518 3.232.551 1.799 1.502 4.119.633 4.525-1.595.875.979 2.668.864 3.301-.519.497-1.086.144-2.369-.827-2.884m-47.582-2.429c.245-.729.855-1.105.855-1.105l.221.827c0 0-.533.391-1.076.278m2.352-2.581l-.611-.043c0 0 .097-.87.453-1.299.28.566.158 1.342.158 1.342m.103 2.444l.412-.775c0 0 .482.477.597 1.258-.546.001-1.01-.483-1.01-.483m.799 1.512c.221.037.717.054.717.054s-.152.312-.265.794c-.052-.133-.348-.705-.452-.848m.467 5.826c.17-.856.662-1.545.662-1.545l.659.682c0 0-.647.674-1.321.863m.975-3.119c0 0-.208-.949.015-1.695.645.486.868 1.433.868 1.433l-.883.262m1.691 1.853l.217-.946c0 0 .773.19 1.344.944-.616.271-1.561.002-1.561.002m22.283-2.53c-.486-1.057.09-1.975 1.965-2.055.801 3.256-1.584 2.881-1.965 2.055m-7.04-9.911c.49 0 1.127 2.499.963 3.367h-1.924c-.166-.868.471-3.367.961-3.367m-9 7.856c1.874.08 2.45.998 1.964 2.055-.379.826-2.766 1.201-1.964-2.055m-2.794 3.662c-.326.262-.979.004-.953-1.396 1.287.404 1.293 1.124.953 1.396m2.44 2.056c-.33-.985-1.034-1.411-1.421-1.595.688-1.055.119-2.278-1.758-2.754.859-1.129 1.529-1.504 2.527-1.498-.718 3.057 1.02 4.591 3.244 3.298-.023.154-.046.311-.049.463-1.108.285-1.923 1.135-2.543 2.086m.988.346c.322-.725 1.618-1.352 1.618-1.352l.37 1.179c0 0-.996.462-1.988.173m2.365-4.711c-.109-1.093-.309-1.94-2.738-2.383.764-3.49 3.574-3.266 3.924-1.612.248 1.176-1.438 1.585-1-.062.161-.611-.746-.85-.976-.272-.332.829-.382 3.124 2.092 2.051-.227.56-.529.923-.336 1.244-.18.148-.582.507-.963 1.034m1.189.174c.378 1.014.191 2.156.191 2.156l-1.153-.24c.001 0 .257-1.101.962-1.916m-.189 4.652l.773-.94c0 0 .766.793 1 1.898-.855-.086-1.773-.958-1.773-.958m1.449-3.82c-.016-.773-.463-1.553-.463-1.553l1.262-.041c0 0-.664.674-.799 1.594m-.322-2.607c.256-1.452 2.207-2.733 2.207-2.733l.953 1.785c0 0-1.271 1.012-3.16.948m3.875-1.879c-.205-.303-.452-.72-.65-1.211.229-.043 1.073-.043 1.303 0-.199.491-.447.908-.653 1.211m.716.931l.952-1.785c0 0 1.951 1.281 2.207 2.733-1.887.064-3.159-.948-3.159-.948m2.04 1.961l1.26.041c0 0-.447.779-.463 1.553-.135-.92-.797-1.594-.797-1.594m.472 6.372c.236-1.105 1-1.898 1-1.898l.773.94c.001 0-.917.872-1.773.958m1.393-3.454c0 0-.186-1.143.191-2.156.705.814.963 1.916.963 1.916l-1.154.24m.418-3.364c.193-.321-.109-.685-.334-1.244 2.473 1.073 2.422-1.222 2.09-2.051-.229-.577-1.137-.339-.975.272.436 1.646-1.252 1.237-1 .062.35-1.653 3.16-1.878 3.924 1.612-2.428.442-2.629 1.29-2.738 2.383-.379-.527-.783-.886-.963-1.034m1.34 5.572l.371-1.179c0 0 1.295.627 1.617 1.352-.992.289-1.988-.173-1.988-.173m4.396-1.768c-.387.184-1.09.609-1.42 1.595-.619-.95-1.436-1.801-2.543-2.086-.004-.152-.025-.309-.051-.463 2.225 1.293 3.963-.241 3.244-3.298.998-.006 1.67.369 2.529 1.498-1.876.476-2.446 1.699-1.759 2.754m1.022-.461c-.342-.271-.336-.992.951-1.396.025 1.4-.627 1.658-.951 1.396m1.889.921c.57-.754 1.344-.944 1.344-.944l.217.946c-.001 0-.946.269-1.561-.002m3.238-3.546c.221.746.014 1.695.014 1.695l-.883-.263c0 .001.222-.946.869-1.432m-.332 3.951l.66-.682c0 0 .49.688.66 1.545-.672-.189-1.32-.863-1.32-.863m1.336-4.115c-.113-.482-.266-.794-.266-.794s.496-.017.717-.054c-.104.143-.401.715-.451.848m.242-1.877c.113-.781.596-1.258.596-1.258l.414.775c0 0-.465.484-1.01.483m1.113-2.927c0 0-.123-.776.158-1.342.355.429.451 1.299.451 1.299l-.609.043m1.276 2.303l.219-.827c0 0 .611.376.855 1.105-.541.113-1.074-.278-1.074-.278"/><g fill="#ff5760"><path d="m56.53 19.29c-.492-.261-.676-.921-.41-1.474.268-.551.881-.791 1.371-.529.49.259.674.92.408 1.473-.265.551-.879.789-1.369.53"/><path d="m44.503 22.442c-.574.788-1.537 1.031-2.145.54-.605-.488-.633-1.525-.055-2.313.576-.786 1.535-1.029 2.145-.539.608.489.631 1.526.055 2.312"/><path d="m54.61 17.863c.219 1.538-.494 2.925-1.586 3.096-1.096.17-2.162-.938-2.381-2.477-.217-1.541.496-2.927 1.592-3.096 1.094-.171 2.159.938 2.375 2.477"/><path d="m7.472 19.29c.491-.261.675-.921.408-1.474-.267-.55-.88-.791-1.371-.529-.489.259-.673.92-.407 1.473.265.551.877.789 1.37.53"/><ellipse cx="32" cy="19.229" rx="3.03" ry="3.822"/><path d="m19.499 22.442c.575.788 1.537 1.031 2.145.54.607-.488.633-1.525.057-2.313-.578-.786-1.537-1.029-2.146-.539-.608.489-.632 1.526-.056 2.312"/><path d="m9.393 17.863c-.22 1.538.493 2.925 1.587 3.096 1.096.17 2.16-.938 2.379-2.477.217-1.541-.494-2.927-1.59-3.096-1.094-.171-2.159.938-2.376 2.477"/></g><path fill="#f5f5f5" d="m38.562 37.41c-1.174 0-1.02-3.037-1.02-3.037 3.609-8.06 11.645-2.961 11.645-2.961 3.125 1.396-1.4 5.805-2.125 5.998-3.403.922-8.5 0-8.5 0"/><circle fill="#6235a8" cx="43.27" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.27" cy="33.717" r="1.25"/><path d="m51.05 32.3c-.503-.214-.999-.473-1.501-.73.623-.031 1.269-.196 1.676-.653-.699.274-1.374.143-2.025-.069-.656-.203-1.305-.497-1.988-.749-1.347-.525-2.881-.962-4.511-.781-.802.108-1.599.362-2.296.765-.688.414-1.308.916-1.801 1.508-1.01 1.163-1.676 2.521-2.074 3.938.945-1.129 1.855-2.232 2.895-3.11.246-.207.5-.396.76-.572 1.203-.701 2.547-.941 3.928-.734 1.442.174 2.886.729 4.388 1.233.751.258 1.523.509 2.343.663.411.064.836.114 1.265.067.426-.041.855-.207 1.138-.502-.77.3-1.504.023-2.197-.274"/></g><path fill="#f5f5f5" d="m25.442 37.41c1.174 0 1.02-3.037 1.02-3.037-3.609-8.06-11.645-2.961-11.645-2.961-3.125 1.396 1.4 5.805 2.125 5.998 3.403.922 8.5 0 8.5 0"/><circle fill="#6235a8" cx="20.735" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.735" cy="33.717" r="1.25"/><path d="m12.948 32.3c.502-.214 1-.473 1.502-.73-.623-.031-1.27-.196-1.676-.653.697.274 1.373.143 2.023-.069.656-.203 1.307-.497 1.989-.749 1.347-.525 2.882-.962 4.511-.781.803.108 1.599.362 2.295.765.689.414 1.309.916 1.803 1.508 1.01 1.163 1.674 2.521 2.074 3.938-.946-1.129-1.856-2.232-2.896-3.11-.247-.207-.501-.396-.76-.572-1.202-.701-2.547-.941-3.928-.734-1.442.174-2.886.729-4.388 1.233-.751.258-1.523.509-2.344.663-.41.064-.836.114-1.264.067-.426-.041-.855-.207-1.137-.502.769.3 1.503.023 2.196-.274"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#dbb471"/><path d="m10.4 40.7c0 0-4.4-1.1-4.4-7.5 0-5.1 3.3-5.9 3.3-5.9 30.2-.1 38.7-6.3 38.7-6.3s1.9 6.2 6.6 6.2c0 0 3.4.6 3.4 5.9 0 6.4-4.5 7.5-4.5 7.5-.1 9.7-13.4 21.4-21.5 21.4-8.1 0-21.6-11.7-21.6-21.3" fill="#fed0ac"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#e0a372"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#6235a8"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#6235a8"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#e07297"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5s6-1.7 10-2.5c0 0-3.8.5-6.1-.4" fill="#b85d7b"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/><path d="m57.9 14.3c-.8-.4-1.9-.1-2.5.7-.2-.9-.7-1.6-1.3-2.1.6 0 .8-.3.6-.7-.2-.7-.5-1.5-1.9-2.5 0-1.6-1.2-3.1-1.2-3.1-.2-.2-.6-.2-.8.1 0 .1-.9 1.6-.5 3.3-1.5 1.3-1.4 2.7-1.3 3-.2 0-1.7 1-2.1 2.9-.8 0-1.3.6-1.3.6.3-2.2-1.4-4.4-4-4.3-.7-3.9-5.1-5.2-5.9-1.4-.5-1-1.6-1.8-1.6-1.8.4-1.9-1.2-5-2.1-5s-2.4 3.1-2.1 5c0 0-1.1.8-1.7 1.7-.8-3.8-5.3-2.5-5.9 1.4-2.6-.1-4.3 2-4 4.3 0 0-.5-.5-1.3-.6-.4-1.9-1.8-2.9-2.1-2.9.1-.2.2-1.7-1.3-3 .4-1.7-.5-3.2-.5-3.3-.2-.3-.6-.3-.8-.1 0 0-1.2 1.5-1.2 3.1-1.4.9-1.7 1.7-1.9 2.5-.1.4.1.8.6.7-.6.5-1 1.2-1.3 2.1-.5-.7-1.6-1-2.5-.6-1 .5-1.3 1.8-.8 2.9.6 1.4 2.4 1.5 3.3.5.4 2.2 2.7 3.1 4.5 1.6-.3 1 1.4 1 3.2-.6.6.4 1.7.3 2.1.1-.1 1.2.5 3.1 2.6 3.1 1.4 0 2-1 1.9-1.8.8.3 2.3.6 3.4-.1 2.1 1.8 3.6 2.1 3.7 1 .6.5 1.4.8 2.1.8.8 0 1.5-.3 2.1-.8.1 1 1.6.8 3.7-1 1.1.7 2.5.5 3.4.1-.1.9.5 1.9 1.9 1.9 2 0 2.6-1.9 2.6-3.1.4.2 1.5.2 2.1-.1 1.9 1.6 3.5 1.5 3.2.6 1.8 1.5 4.1.6 4.5-1.6.9 1 2.7.9 3.3-.5.5-1.2.1-2.4-.9-3m-47.5-2.4c.2-.7.9-1.1.9-1.1l.2.8c-.1 0-.6.4-1.1.3m2.3-2.6h-.6c0 0 .1-.9.5-1.3.2.6.1 1.3.1 1.3m.1 2.5l.4-.8c0 0 .5.5.6 1.3-.5 0-1-.5-1-.5m.8 1.5c.2 0 .7.1.7.1s-.2.3-.3.8c0-.2-.3-.8-.4-.9m.5 5.8c.2-.9.7-1.5.7-1.5l.7.7c-.1-.1-.7.6-1.4.8m1-3.1c0 0-.2-.9 0-1.7.6.5.9 1.4.9 1.4l-.9.3m1.7 1.8l.2-.9c0 0 .8.2 1.3.9-.6.3-1.5 0-1.5 0m22.2-2.5c-.5-1.1.1-2 2-2.1.8 3.3-1.6 2.9-2 2.1m-7-9.9c.5 0 1.1 2.5 1 3.4h-2c-.1-.9.5-3.4 1-3.4m-9 7.9c1.9.1 2.5 1 2 2.1-.4.7-2.8 1.1-2-2.1m-2.8 3.6c-.3.3-1 0-1-1.4 1.3.4 1.3 1.1 1 1.4m2.4 2.1c-.3-1-1-1.4-1.4-1.6.7-1.1.1-2.3-1.8-2.8.9-1.1 1.5-1.5 2.5-1.5-.7 3.1 1 4.6 3.2 3.3 0 .2 0 .3 0 .5-1 .3-1.8 1.1-2.5 2.1m1 .3c.3-.7 1.6-1.4 1.6-1.4l.4 1.2c0 .1-1 .5-2 .2m2.4-4.7c-.1-1.1-.3-1.9-2.7-2.4.8-3.5 3.6-3.3 3.9-1.6.2 1.2-1.4 1.6-1-.1.2-.6-.7-.9-1-.3-.3.8-.4 3.1 2.1 2.1-.2.6-.5.9-.3 1.2-.2.2-.6.6-1 1.1m1.2.2c.4 1 .2 2.2.2 2.2l-1.2-.2c0-.1.3-1.2 1-2m-.2 4.6l.8-.9c0 0 .8.8 1 1.9-.9-.1-1.8-1-1.8-1m1.4-3.8c0-.8-.5-1.6-.5-1.6h1.3c0 0-.6.7-.8 1.6m-.3-2.6c.3-1.5 2.2-2.7 2.2-2.7l1 1.8c0 0-1.3 1-3.2.9m3.9-1.9c-.2-.3-.5-.7-.7-1.2.2 0 1.1 0 1.3 0-.1.5-.4.9-.6 1.2m.7 1l1-1.8c0 0 2 1.3 2.2 2.7-1.9.1-3.2-.9-3.2-.9m2.1 1.9h1.3c0 0-.4.8-.5 1.6-.2-.9-.8-1.6-.8-1.6m.4 6.4c.2-1.1 1-1.9 1-1.9l.8.9c0 0-.9.9-1.8 1m1.4-3.5c0 0-.2-1.1.2-2.2.7.8 1 1.9 1 1.9l-1.2.3m.4-3.3c.2-.3-.1-.7-.3-1.2 2.5 1.1 2.4-1.2 2.1-2.1-.2-.6-1.1-.3-1 .3.4 1.6-1.3 1.2-1 .1.3-1.7 3.2-1.9 3.9 1.6-2.4.4-2.6 1.3-2.7 2.4-.4-.6-.8-1-1-1.1m1.4 5.6l.4-1.2c0 0 1.3.6 1.6 1.4-1 .2-2-.2-2-.2m4.4-1.8c-.4.2-1.1.6-1.4 1.6-.6-1-1.4-1.8-2.5-2.1 0-.2 0-.3 0-.5 2.2 1.3 4-.2 3.2-3.3 1 0 1.7.4 2.5 1.5-1.9.5-2.5 1.7-1.8 2.8m1-.5c-.3-.3-.3-1 1-1.4 0 1.4-.7 1.7-1 1.4m1.9.9c.6-.8 1.3-.9 1.3-.9l.2.9c0 0-.9.3-1.5 0m3.2-3.5c.2.7 0 1.7 0 1.7l-.9-.3c.1 0 .3-.9.9-1.4m-.3 3.9l.7-.7c0 0 .5.7.7 1.5-.8-.1-1.4-.8-1.4-.8m1.3-4.1c-.1-.5-.3-.8-.3-.8s.5 0 .7-.1c0 .2-.3.8-.4.9m.3-1.8c.1-.8.6-1.3.6-1.3l.4.8c0 0-.5.5-1 .5m1.1-3c0 0-.1-.8.2-1.3.4.4.5 1.3.5 1.3h-.7m1.3 2.3l.2-.8c0 0 .6.4.9 1.1-.6.1-1.1-.3-1.1-.3" fill="#fff"/><g fill="#ff5760"><path d="m56.5 17.3c-.5-.3-.7-.9-.4-1.5.3-.6.9-.8 1.4-.5.5.3.7.9.4 1.5-.3.5-.9.8-1.4.5"/><path d="m44.5 20.4c-.6.8-1.5 1-2.1.5-.6-.5-.6-1.5-.1-2.3.6-.8 1.5-1 2.1-.5.7.5.7 1.6.1 2.3"/><path d="m54.6 15.9c.2 1.5-.5 2.9-1.6 3.1-1.1.2-2.2-.9-2.4-2.5-.2-1.5.5-2.9 1.6-3.1 1.1-.2 2.2.9 2.4 2.5"/><path d="m7.5 17.3c.5-.3.6-.9.4-1.5-.3-.5-.9-.8-1.4-.5-.5.3-.7.9-.4 1.5.3.5.9.8 1.4.5"/><ellipse cx="32" cy="17.2" rx="3" ry="3.8"/><path d="m19.5 20.4c.6.8 1.5 1 2.1.5.6-.5.6-1.5.1-2.3-.6-.8-1.5-1-2.1-.5-.7.5-.7 1.6-.1 2.3"/><path d="m9.4 15.9c-.2 1.5.5 2.9 1.6 3.1 1.1.2 2.2-.9 2.4-2.5.2-1.5-.5-2.9-1.6-3.1-1.1-.2-2.2.9-2.4 2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fd.svg
index c4629b2..7d5b777 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.414-15.16-21.996-15.16-21.996s-1.14-4.531-12.84-4.531"/><path fill="#d6a57c" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.537 3.039-5.537 10.895 0 35.26-4.705 35.26-4.705s.092 3.047 6.566 4.705c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.059 9-12.352 19.861-19.819 19.861-7.466 0-19.968-10.859-19.968-19.861"/><path fill="#b58360" d="m37 45.25c0 1.963-4.067 2.529-5 2.529s-5-.695-5-2.656c-.001 0 10-.851 10 .127"/><path fill="#b5607c" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.164.527-5.447.27-5.447.27 2.385 2.387 3.52 5.645 8.998 5.645 5.479 0 6.612-3.258 8.999-5.645-.001-.001-3.284.257-5.448-.27"/><path fill="#804458" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.125.518-5.461.268-5.447.27 3.602.648 4.051 2.488 8.998 2.488 4.948 0 5.397-1.84 8.999-2.488.011-.003-3.323.247-5.448-.27"/><path fill="#ffce31" d="m57.949 16.337c-.836-.445-1.918-.115-2.5.69-.244-.875-.695-1.607-1.264-2.117.566.018.766-.344.648-.741-.221-.745-.51-1.536-1.916-2.47-.01-1.614-1.184-3.072-1.227-3.117-.195-.206-.615-.189-.785.088-.031.053-.939 1.551-.535 3.289-1.459 1.299-1.381 2.735-1.291 2.969-.236.004-1.678 1.027-2.068 2.887-.777.023-1.27.553-1.27.553.275-2.236-1.357-4.395-3.982-4.282-.676-3.891-5.146-5.185-5.949-1.356-.598-.93-1.73-1.697-1.73-1.697.352-1.926-1.238-5.03-2.08-5.03-.841 0-2.431 3.107-2.078 5.03 0 0-1.133.768-1.731 1.697-.803-3.828-5.271-2.534-5.948 1.356-2.626-.112-4.259 2.046-3.982 4.282 0 0-.493-.529-1.27-.553-.392-1.859-1.833-2.883-2.069-2.887.09-.233.17-1.67-1.291-2.969.404-1.738-.504-3.236-.535-3.289-.17-.277-.591-.294-.785-.088-.043.045-1.216 1.503-1.226 3.117-1.406.934-1.695 1.725-1.917 2.47-.117.397.084.759.648.741-.566.51-1.019 1.242-1.262 2.117-.584-.806-1.666-1.136-2.502-.69-.972.515-1.324 1.798-.828 2.884.633 1.383 2.426 1.498 3.303.519.406 2.228 2.727 3.097 4.523 1.595-.28.967 1.354 1.028 3.232-.551.584.359 1.662.342 2.104.129-.072 1.174.515 3.086 2.562 3.086 1.402 0 1.956-1.01 1.858-1.813.828.335 2.284.568 3.361-.139 2.098 1.82 3.622 2.076 3.684 1.035.611.52 1.352.828 2.149.828s1.539-.309 2.15-.828c.063 1.041 1.586.785 3.686-1.035 1.076.707 2.533.474 3.359.139-.098.803.457 1.813 1.859 1.813 2.047 0 2.633-1.912 2.561-3.086.441.213 1.52.23 2.104-.129 1.879 1.579 3.514 1.518 3.232.551 1.797 1.502 4.119.633 4.525-1.595.875.979 2.668.864 3.301-.519.496-1.086.145-2.369-.828-2.884m-47.581-2.429c.245-.729.856-1.105.856-1.105l.219.827c0 0-.533.391-1.075.278m2.35-2.581l-.611-.043c0 0 .098-.87.454-1.299.28.566.157 1.342.157 1.342m.105 2.444l.411-.775c0 0 .482.477.598 1.258-.546.001-1.01-.483-1.01-.483m.798 1.512c.223.037.718.054.718.054s-.152.312-.265.794c-.051-.133-.35-.705-.453-.848m.467 5.826c.171-.856.661-1.545.661-1.545l.66.682c.001 0-.648.674-1.321.863m.976-3.119c0 0-.207-.949.014-1.695.646.486.869 1.433.869 1.433l-.883.262m1.691 1.853l.217-.946c0 0 .772.19 1.342.944-.614.271-1.559.002-1.559.002m22.284-2.53c-.486-1.057.09-1.975 1.965-2.055.799 3.256-1.586 2.881-1.965 2.055m-7.04-9.911c.491 0 1.128 2.499.962 3.367h-1.924c-.164-.868.473-3.367.962-3.367m-9 7.856c1.875.08 2.449.998 1.964 2.055-.381.826-2.765 1.201-1.964-2.055m-2.794 3.662c-.327.262-.979.004-.952-1.396 1.286.404 1.29 1.124.952 1.396m2.44 2.056c-.33-.985-1.034-1.411-1.42-1.595.688-1.055.117-2.278-1.76-2.754.859-1.129 1.531-1.504 2.529-1.498-.719 3.057 1.019 4.591 3.242 3.298-.023.154-.045.311-.049.463-1.106.285-1.923 1.135-2.542 2.086m.988.346c.321-.725 1.617-1.352 1.617-1.352l.37 1.179c.001 0-.995.462-1.987.173m2.366-4.711c-.11-1.093-.311-1.94-2.74-2.383.766-3.49 3.575-3.266 3.924-1.612.25 1.176-1.438 1.585-1-.062.162-.611-.746-.85-.976-.272-.331.829-.382 3.124 2.091 2.051-.226.56-.529.923-.335 1.244-.18.148-.584.507-.962 1.034m1.187.174c.379 1.014.193 2.156.193 2.156l-1.154-.24c0 0 .258-1.101.961-1.916m-.187 4.652l.773-.94c0 0 .764.793 1 1.898-.856-.086-1.773-.958-1.773-.958m1.448-3.82c-.015-.773-.462-1.553-.462-1.553l1.26-.041c0 0-.663.674-.798 1.594m-.323-2.607c.257-1.452 2.208-2.733 2.208-2.733l.952 1.785c.001 0-1.272 1.012-3.16.948m3.875-1.879c-.205-.303-.452-.72-.651-1.211.229-.043 1.074-.043 1.303 0-.197.491-.445.908-.652 1.211m.716.931l.954-1.785c0 0 1.951 1.281 2.207 2.733-1.889.064-3.161-.948-3.161-.948m2.04 1.961l1.262.041c0 0-.447.779-.463 1.553-.137-.92-.799-1.594-.799-1.594m.474 6.372c.234-1.105 1-1.898 1-1.898l.771.94c.001 0-.915.872-1.771.958m1.393-3.454c0 0-.188-1.143.191-2.156.705.814.961 1.916.961 1.916l-1.152.24m.418-3.364c.193-.321-.109-.685-.336-1.244 2.473 1.073 2.424-1.222 2.092-2.051-.23-.577-1.139-.339-.977.272.436 1.646-1.25 1.237-1 .062.35-1.653 3.158-1.878 3.924 1.612-2.43.442-2.629 1.29-2.74 2.383-.379-.527-.781-.886-.961-1.034m1.34 5.572l.369-1.179c0 0 1.297.627 1.619 1.352-.994.289-1.988-.173-1.988-.173m4.394-1.768c-.385.184-1.088.609-1.42 1.595-.619-.95-1.434-1.801-2.543-2.086-.004-.152-.025-.309-.049-.463 2.225 1.293 3.961-.241 3.242-3.298 1-.006 1.67.369 2.529 1.498-1.876.476-2.446 1.699-1.759 2.754m1.022-.461c-.34-.271-.334-.992.951-1.396.027 1.4-.625 1.658-.951 1.396m1.891.921c.57-.754 1.342-.944 1.342-.944l.219.946c-.001 0-.946.269-1.561-.002m3.236-3.546c.223.746.014 1.695.014 1.695l-.883-.263c0 .001.224-.946.869-1.432m-.332 3.951l.66-.682c0 0 .492.688.662 1.545-.674-.189-1.322-.863-1.322-.863m1.336-4.115c-.111-.482-.264-.794-.264-.794s.496-.017.717-.054c-.104.143-.401.715-.453.848m.242-1.877c.115-.781.598-1.258.598-1.258l.412.775c0 0-.463.484-1.01.483m1.113-2.927c0 0-.123-.776.158-1.342.355.429.453 1.299.453 1.299l-.611.043m1.276 2.303l.219-.827c0 0 .613.376.857 1.105-.543.113-1.076-.278-1.076-.278"/><g fill="#ff5760"><path d="m56.53 19.29c-.492-.261-.676-.921-.408-1.474.266-.551.879-.791 1.371-.529.488.259.672.92.408 1.473-.265.551-.881.789-1.371.53"/><path d="m44.504 22.442c-.574.788-1.537 1.031-2.146.54-.605-.488-.631-1.525-.055-2.313.576-.786 1.537-1.029 2.145-.539.607.489.632 1.526.056 2.312"/><path d="m54.609 17.863c.219 1.538-.492 2.925-1.586 3.096-1.096.17-2.16-.938-2.379-2.477-.217-1.541.494-2.927 1.59-3.096 1.094-.171 2.159.938 2.375 2.477"/><path d="m7.47 19.29c.492-.261.676-.921.409-1.474-.267-.551-.88-.791-1.37-.529-.49.259-.674.92-.408 1.473.266.551.879.789 1.369.53"/><ellipse cx="32" cy="19.229" rx="3.03" ry="3.822"/><path d="m19.499 22.442c.575.788 1.536 1.031 2.146.54.605-.488.631-1.525.055-2.313-.576-.786-1.537-1.029-2.145-.539-.608.489-.634 1.526-.056 2.312"/><path d="m9.392 17.863c-.219 1.538.492 2.925 1.587 3.096 1.095.17 2.161-.938 2.378-2.477.219-1.541-.494-2.927-1.589-3.096-1.095-.171-2.159.938-2.376 2.477"/></g><path fill="#f5f5f5" d="m38.561 37.41c-1.174 0-1.02-3.037-1.02-3.037 3.609-8.06 11.645-2.961 11.645-2.961 3.125 1.396-1.4 5.805-2.125 5.998-3.403.922-8.5 0-8.5 0"/><circle fill="#6235a8" cx="43.27" cy="33.717" r="3.844"/><g fill="#231f20"><path d="m44.518 33.717c0 .69-.559 1.25-1.25 1.25-.688 0-1.25-.56-1.25-1.25s.563-1.25 1.25-1.25c.691 0 1.25.559 1.25 1.25"/><path d="m51.05 32.3c-.502-.214-1-.473-1.502-.73.623-.031 1.27-.196 1.676-.653-.697.274-1.373.143-2.023-.069-.656-.203-1.307-.497-1.99-.749-1.346-.525-2.881-.962-4.51-.781-.803.108-1.6.362-2.295.765-.689.414-1.309.916-1.803 1.508-1.01 1.163-1.674 2.521-2.074 3.938.945-1.129 1.855-2.232 2.895-3.11.248-.207.502-.396.76-.572 1.203-.701 2.547-.941 3.928-.734 1.443.174 2.887.729 4.389 1.233.75.258 1.523.509 2.344.663.41.064.836.114 1.264.067.426-.041.855-.207 1.137-.502-.769.3-1.503.023-2.196-.274"/></g><path fill="#f5f5f5" d="m25.441 37.41c1.174 0 1.02-3.037 1.02-3.037-3.609-8.06-11.645-2.961-11.645-2.961-3.125 1.396 1.4 5.805 2.125 5.998 3.402.922 8.5 0 8.5 0"/><circle fill="#6235a8" cx="20.734" cy="33.717" r="3.844"/><g fill="#231f20"><path d="m21.984 33.717c0 .69-.559 1.25-1.25 1.25-.688 0-1.25-.56-1.25-1.25s.563-1.25 1.25-1.25c.691 0 1.25.559 1.25 1.25"/><path d="m12.948 32.3c.503-.214.999-.473 1.501-.73-.623-.031-1.269-.196-1.676-.653.699.274 1.374.143 2.025-.069.656-.203 1.305-.497 1.988-.749 1.347-.525 2.881-.962 4.511-.781.802.108 1.599.362 2.296.765.688.414 1.308.916 1.801 1.508 1.01 1.163 1.676 2.521 2.074 3.938-.945-1.129-1.855-2.232-2.895-3.11-.246-.207-.5-.396-.76-.572-1.203-.701-2.547-.941-3.928-.734-1.442.174-2.886.729-4.388 1.233-.751.258-1.523.509-2.343.663-.411.064-.836.114-1.265.067-.426-.041-.855-.207-1.138-.502.769.3 1.503.023 2.197-.274"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#594640"/><path d="m10.4 40.7c0 0-4.4-1.1-4.4-7.5 0-5.1 3.3-5.9 3.3-5.9 30.2-.1 38.7-6.3 38.7-6.3s1.9 6.2 6.6 6.2c0 0 3.4.6 3.4 5.9 0 6.4-4.5 7.5-4.5 7.5-.1 9.7-13.4 21.4-21.5 21.4-8.1 0-21.6-11.7-21.6-21.3" fill="#d6a57c"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#b58360"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#6235a8"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#6235a8"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#b5607c"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5s6-1.7 10-2.5c0 0-3.8.5-6.1-.4" fill="#804458"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/><path d="m57.9 14.3c-.8-.4-1.9-.1-2.5.7-.2-.9-.7-1.6-1.3-2.1.6 0 .8-.3.6-.7-.2-.7-.5-1.5-1.9-2.5 0-1.6-1.2-3.1-1.2-3.1-.2-.2-.6-.2-.8.1 0 .1-.9 1.6-.5 3.3-1.5 1.3-1.4 2.7-1.3 3-.2 0-1.7 1-2.1 2.9-.8 0-1.3.6-1.3.6.3-2.2-1.4-4.4-4-4.3-.7-3.9-5.1-5.2-5.9-1.4-.5-1-1.6-1.8-1.6-1.8.4-1.9-1.2-5-2.1-5s-2.4 3.1-2.1 5c0 0-1.1.8-1.7 1.7-.8-3.8-5.3-2.5-5.9 1.4-2.6-.1-4.3 2-4 4.3 0 0-.5-.5-1.3-.6-.4-1.9-1.8-2.9-2.1-2.9.1-.2.2-1.7-1.3-3 .4-1.7-.5-3.2-.5-3.3-.2-.3-.6-.3-.8-.1 0 0-1.2 1.5-1.2 3.1-1.4.9-1.7 1.7-1.9 2.5-.1.4.1.8.6.7-.6.5-1 1.2-1.3 2.1-.5-.7-1.6-1-2.5-.6-1 .5-1.3 1.8-.8 2.9.6 1.4 2.4 1.5 3.3.5.4 2.2 2.7 3.1 4.5 1.6-.3 1 1.4 1 3.2-.6.6.4 1.7.3 2.1.1-.1 1.2.5 3.1 2.6 3.1 1.4 0 2-1 1.9-1.8.8.3 2.3.6 3.4-.1 2.1 1.8 3.6 2.1 3.7 1 .6.5 1.4.8 2.1.8.8 0 1.5-.3 2.1-.8.1 1 1.6.8 3.7-1 1.1.7 2.5.5 3.4.1-.1.9.5 1.9 1.9 1.9 2 0 2.6-1.9 2.6-3.1.4.2 1.5.2 2.1-.1 1.9 1.6 3.5 1.5 3.2.6 1.8 1.5 4.1.6 4.5-1.6.9 1 2.7.9 3.3-.5.5-1.2.1-2.4-.9-3m-47.5-2.4c.2-.7.9-1.1.9-1.1l.2.8c-.1 0-.6.4-1.1.3m2.3-2.6h-.6c0 0 .1-.9.5-1.3.2.6.1 1.3.1 1.3m.1 2.5l.4-.8c0 0 .5.5.6 1.3-.5 0-1-.5-1-.5m.8 1.5c.2 0 .7.1.7.1s-.2.3-.3.8c0-.2-.3-.8-.4-.9m.5 5.8c.2-.9.7-1.5.7-1.5l.7.7c-.1-.1-.7.6-1.4.8m1-3.1c0 0-.2-.9 0-1.7.6.5.9 1.4.9 1.4l-.9.3m1.7 1.8l.2-.9c0 0 .8.2 1.3.9-.6.3-1.5 0-1.5 0m22.2-2.5c-.5-1.1.1-2 2-2.1.8 3.3-1.6 2.9-2 2.1m-7-9.9c.5 0 1.1 2.5 1 3.4h-2c-.1-.9.5-3.4 1-3.4m-9 7.9c1.9.1 2.5 1 2 2.1-.4.7-2.8 1.1-2-2.1m-2.8 3.6c-.3.3-1 0-1-1.4 1.3.4 1.3 1.1 1 1.4m2.4 2.1c-.3-1-1-1.4-1.4-1.6.7-1.1.1-2.3-1.8-2.8.9-1.1 1.5-1.5 2.5-1.5-.7 3.1 1 4.6 3.2 3.3 0 .2 0 .3 0 .5-1 .3-1.8 1.1-2.5 2.1m1 .3c.3-.7 1.6-1.4 1.6-1.4l.4 1.2c0 .1-1 .5-2 .2m2.4-4.7c-.1-1.1-.3-1.9-2.7-2.4.8-3.5 3.6-3.3 3.9-1.6.2 1.2-1.4 1.6-1-.1.2-.6-.7-.9-1-.3-.3.8-.4 3.1 2.1 2.1-.2.6-.5.9-.3 1.2-.2.2-.6.6-1 1.1m1.2.2c.4 1 .2 2.2.2 2.2l-1.2-.2c0-.1.3-1.2 1-2m-.2 4.6l.8-.9c0 0 .8.8 1 1.9-.9-.1-1.8-1-1.8-1m1.4-3.8c0-.8-.5-1.6-.5-1.6h1.3c0 0-.6.7-.8 1.6m-.3-2.6c.3-1.5 2.2-2.7 2.2-2.7l1 1.8c0 0-1.3 1-3.2.9m3.9-1.9c-.2-.3-.5-.7-.7-1.2.2 0 1.1 0 1.3 0-.1.5-.4.9-.6 1.2m.7 1l1-1.8c0 0 2 1.3 2.2 2.7-1.9.1-3.2-.9-3.2-.9m2.1 1.9h1.3c0 0-.4.8-.5 1.6-.2-.9-.8-1.6-.8-1.6m.4 6.4c.2-1.1 1-1.9 1-1.9l.8.9c0 0-.9.9-1.8 1m1.4-3.5c0 0-.2-1.1.2-2.2.7.8 1 1.9 1 1.9l-1.2.3m.4-3.3c.2-.3-.1-.7-.3-1.2 2.5 1.1 2.4-1.2 2.1-2.1-.2-.6-1.1-.3-1 .3.4 1.6-1.3 1.2-1 .1.3-1.7 3.2-1.9 3.9 1.6-2.4.4-2.6 1.3-2.7 2.4-.4-.6-.8-1-1-1.1m1.4 5.6l.4-1.2c0 0 1.3.6 1.6 1.4-1 .2-2-.2-2-.2m4.4-1.8c-.4.2-1.1.6-1.4 1.6-.6-1-1.4-1.8-2.5-2.1 0-.2 0-.3 0-.5 2.2 1.3 4-.2 3.2-3.3 1 0 1.7.4 2.5 1.5-1.9.5-2.5 1.7-1.8 2.8m1-.5c-.3-.3-.3-1 1-1.4 0 1.4-.7 1.7-1 1.4m1.9.9c.6-.8 1.3-.9 1.3-.9l.2.9c0 0-.9.3-1.5 0m3.2-3.5c.2.7 0 1.7 0 1.7l-.9-.3c.1 0 .3-.9.9-1.4m-.3 3.9l.7-.7c0 0 .5.7.7 1.5-.8-.1-1.4-.8-1.4-.8m1.3-4.1c-.1-.5-.3-.8-.3-.8s.5 0 .7-.1c0 .2-.3.8-.4.9m.3-1.8c.1-.8.6-1.3.6-1.3l.4.8c0 0-.5.5-1 .5m1.1-3c0 0-.1-.8.2-1.3.4.4.5 1.3.5 1.3h-.7m1.3 2.3l.2-.8c0 0 .6.4.9 1.1-.6.1-1.1-.3-1.1-.3" fill="#fff"/><g fill="#ff5760"><path d="m56.5 17.3c-.5-.3-.7-.9-.4-1.5.3-.6.9-.8 1.4-.5.5.3.7.9.4 1.5-.3.5-.9.8-1.4.5"/><path d="m44.5 20.4c-.6.8-1.5 1-2.1.5-.6-.5-.6-1.5-.1-2.3.6-.8 1.5-1 2.1-.5.7.5.7 1.6.1 2.3"/><path d="m54.6 15.9c.2 1.5-.5 2.9-1.6 3.1-1.1.2-2.2-.9-2.4-2.5-.2-1.5.5-2.9 1.6-3.1 1.1-.2 2.2.9 2.4 2.5"/><path d="m7.5 17.3c.5-.3.6-.9.4-1.5-.3-.5-.9-.8-1.4-.5-.5.3-.7.9-.4 1.5.3.5.9.8 1.4.5"/><ellipse cx="32" cy="17.2" rx="3" ry="3.8"/><path d="m19.5 20.4c.6.8 1.5 1 2.1.5.6-.5.6-1.5.1-2.3-.6-.8-1.5-1-2.1-.5-.7.5-.7 1.6-.1 2.3"/><path d="m9.4 15.9c-.2 1.5.5 2.9 1.6 3.1 1.1.2 2.2-.9 2.4-2.5.2-1.5-.5-2.9-1.6-3.1-1.1-.2-2.2.9-2.4 2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fe.svg
index f94a91b..18edf0c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3fe.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.414-15.16-21.996-15.16-21.996s-1.141-4.531-12.84-4.531"/><path fill="#b47d56" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.537 3.039-5.537 10.895 0 35.26-4.705 35.26-4.705s.092 3.047 6.566 4.705c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.059 9-12.352 19.861-19.818 19.861s-19.969-10.859-19.969-19.861"/><path fill="#935e3e" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#994360" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.164.527-5.447.27-5.447.27 2.385 2.387 3.52 5.645 8.998 5.645s6.611-3.258 8.998-5.645c0-.001-3.283.257-5.447-.27"/><path fill="#733449" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.125.518-5.461.268-5.447.27 3.602.648 4.051 2.488 8.998 2.488s5.396-1.84 8.998-2.488c.012-.003-3.322.247-5.447-.27"/><path fill="#ffce31" d="m57.95 16.337c-.837-.445-1.918-.115-2.501.69-.244-.875-.695-1.607-1.263-2.117.565.018.766-.344.648-.741-.222-.745-.511-1.536-1.917-2.47-.01-1.614-1.184-3.072-1.226-3.117-.195-.206-.615-.189-.785.088-.031.053-.939 1.551-.535 3.289-1.46 1.299-1.381 2.735-1.291 2.969-.237.004-1.678 1.027-2.068 2.887-.777.023-1.271.553-1.271.553.275-2.236-1.357-4.395-3.982-4.282-.676-3.891-5.146-5.185-5.948-1.356-.599-.93-1.731-1.697-1.731-1.697.353-1.926-1.236-5.03-2.078-5.03s-2.432 3.107-2.078 5.03c0 0-1.133.768-1.732 1.697-.803-3.828-5.271-2.534-5.947 1.356-2.626-.112-4.259 2.046-3.982 4.282 0 0-.494-.529-1.27-.553-.393-1.859-1.833-2.883-2.07-2.887.091-.233.17-1.67-1.291-2.969.405-1.738-.503-3.236-.535-3.289-.17-.277-.59-.294-.785-.088-.042.045-1.215 1.503-1.225 3.117-1.406.934-1.695 1.725-1.917 2.47-.118.397.083.759.647.741-.566.51-1.018 1.242-1.262 2.117-.584-.806-1.665-1.136-2.501-.69-.972.515-1.324 1.798-.828 2.884.633 1.383 2.426 1.498 3.302.519.406 2.228 2.727 3.097 4.524 1.595-.28.967 1.353 1.028 3.232-.551.584.359 1.662.342 2.104.129-.072 1.174.515 3.086 2.562 3.086 1.402 0 1.955-1.01 1.857-1.813.828.335 2.285.568 3.361-.139 2.098 1.82 3.623 2.076 3.684 1.035.612.52 1.353.828 2.15.828s1.538-.309 2.149-.828c.062 1.041 1.586.785 3.685-1.035 1.076.707 2.533.474 3.36.139-.098.803.456 1.813 1.859 1.813 2.046 0 2.632-1.912 2.561-3.086.44.213 1.519.23 2.103-.129 1.88 1.579 3.514 1.518 3.232.551 1.798 1.502 4.119.633 4.525-1.595.875.979 2.668.864 3.301-.519.497-1.086.145-2.369-.827-2.884m-47.581-2.429c.244-.729.855-1.105.855-1.105l.22.827c0 0-.533.391-1.075.278m2.351-2.581l-.611-.043c0 0 .097-.87.454-1.299.279.566.157 1.342.157 1.342m.104 2.444l.411-.775c0 0 .482.477.597 1.258-.545.001-1.01-.483-1.01-.483m.798 1.512c.222.037.718.054.718.054s-.152.312-.266.794c-.051-.133-.348-.705-.452-.848m.468 5.826c.17-.856.661-1.545.661-1.545l.659.682c0 0-.647.674-1.32.863m.974-3.119c0 0-.207-.949.015-1.695.646.486.868 1.433.868 1.433l-.883.262m1.692 1.853l.217-.946c0 0 .773.19 1.343.944-.615.271-1.56.002-1.56.002m22.283-2.53c-.486-1.057.09-1.975 1.965-2.055.8 3.256-1.585 2.881-1.965 2.055m-7.04-9.911c.49 0 1.127 2.499.962 3.367h-1.924c-.165-.868.472-3.367.962-3.367m-9 7.856c1.875.08 2.45.998 1.965 2.055-.38.826-2.766 1.201-1.965-2.055m-2.793 3.662c-.327.262-.979.004-.953-1.396 1.287.404 1.292 1.124.953 1.396m2.439 2.056c-.33-.985-1.033-1.411-1.42-1.595.688-1.055.118-2.278-1.759-2.754.859-1.129 1.53-1.504 2.528-1.498-.719 3.057 1.02 4.591 3.243 3.298-.023.154-.046.311-.049.463-1.107.285-1.923 1.135-2.543 2.086m.989.346c.322-.725 1.617-1.352 1.617-1.352l.371 1.179c0 0-.996.462-1.988.173m2.365-4.711c-.109-1.093-.31-1.94-2.739-2.383.765-3.49 3.575-3.266 3.924-1.612.249 1.176-1.438 1.585-1-.062.162-.611-.746-.85-.975-.272-.332.829-.383 3.124 2.091 2.051-.226.56-.529.923-.335 1.244-.18.148-.583.507-.963 1.034m1.188.174c.378 1.014.192 2.156.192 2.156l-1.154-.24c.001 0 .258-1.101.962-1.916m-.188 4.652l.773-.94c0 0 .765.793 1 1.898-.855-.086-1.773-.958-1.773-.958m1.449-3.82c-.016-.773-.463-1.553-.463-1.553l1.261-.041c0 0-.663.674-.798 1.594m-.322-2.607c.256-1.452 2.207-2.733 2.207-2.733l.953 1.785c0 0-1.272 1.012-3.16.948m3.875-1.879c-.205-.303-.453-.72-.651-1.211.229-.043 1.073-.043 1.303 0-.199.491-.447.908-.652 1.211m.715.931l.953-1.785c0 0 1.951 1.281 2.207 2.733-1.888.064-3.16-.948-3.16-.948m2.04 1.961l1.261.041c0 0-.447.779-.463 1.553-.136-.92-.798-1.594-.798-1.594m.473 6.372c.235-1.105 1-1.898 1-1.898l.772.94c.001 0-.916.872-1.772.958m1.393-3.454c0 0-.187-1.143.191-2.156.705.814.962 1.916.962 1.916l-1.153.24m.418-3.364c.193-.321-.109-.685-.335-1.244 2.473 1.073 2.423-1.222 2.091-2.051-.229-.577-1.138-.339-.976.272.436 1.646-1.251 1.237-1 .062.35-1.653 3.159-1.878 3.924 1.612-2.429.442-2.629 1.29-2.739 2.383-.379-.527-.782-.886-.962-1.034m1.34 5.572l.37-1.179c0 0 1.296.627 1.618 1.352-.993.289-1.988-.173-1.988-.173m4.395-1.768c-.386.184-1.089.609-1.42 1.595-.619-.95-1.435-1.801-2.543-2.086-.004-.152-.025-.309-.05-.463 2.225 1.293 3.962-.241 3.243-3.298.999-.006 1.67.369 2.529 1.498-1.876.476-2.446 1.699-1.759 2.754m1.022-.461c-.341-.271-.335-.992.951-1.396.026 1.4-.626 1.658-.951 1.396m1.89.921c.57-.754 1.343-.944 1.343-.944l.218.946c-.001 0-.946.269-1.561-.002m3.237-3.546c.222.746.014 1.695.014 1.695l-.883-.263c0 .001.223-.946.869-1.432m-.332 3.951l.66-.682c0 0 .491.688.661 1.545-.673-.189-1.321-.863-1.321-.863m1.336-4.115c-.112-.482-.265-.794-.265-.794s.496-.017.717-.054c-.104.143-.401.715-.452.848m.242-1.877c.114-.781.597-1.258.597-1.258l.413.775c0 0-.464.484-1.01.483m1.113-2.927c0 0-.123-.776.158-1.342.355.429.452 1.299.452 1.299l-.61.043m1.276 2.303l.219-.827c0 0 .612.376.856 1.105-.542.113-1.075-.278-1.075-.278"/><g fill="#ff5760"><path d="m56.53 19.29c-.492-.261-.676-.921-.409-1.474.267-.551.88-.791 1.371-.529.489.259.673.92.408 1.473-.265.551-.88.789-1.37.53"/><path d="m44.504 22.442c-.574.788-1.537 1.031-2.146.54-.605-.488-.632-1.525-.055-2.313.576-.786 1.536-1.029 2.145-.539.608.489.632 1.526.056 2.312"/><path d="m54.61 17.863c.219 1.538-.493 2.925-1.586 3.096-1.096.17-2.161-.938-2.38-2.477-.217-1.541.495-2.927 1.591-3.096 1.094-.171 2.159.938 2.375 2.477"/><path d="m7.472 19.29c.491-.261.675-.921.409-1.474-.268-.55-.881-.791-1.371-.529-.49.259-.674.92-.408 1.473.265.551.878.789 1.37.53"/><ellipse cx="32" cy="19.229" rx="3.03" ry="3.822"/><path d="m19.5 22.442c.574.788 1.536 1.031 2.145.54.606-.488.632-1.525.056-2.313-.577-.786-1.537-1.029-2.146-.539-.608.489-.632 1.526-.055 2.312"/><path d="m9.393 17.863c-.219 1.538.493 2.925 1.588 3.096 1.095.17 2.16-.938 2.378-2.477.218-1.541-.494-2.927-1.589-3.096-1.095-.171-2.16.938-2.377 2.477"/></g><path fill="#f5f5f5" d="m38.562 37.41c-1.174 0-1.02-3.037-1.02-3.037 3.609-8.06 11.645-2.961 11.645-2.961 3.125 1.396-1.4 5.805-2.125 5.998-3.403.922-8.5 0-8.5 0"/><circle fill="#6235a8" cx="43.27" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.27" cy="33.717" r="1.25"/><path d="m51.05 32.3c-.502-.214-.999-.473-1.501-.73.623-.031 1.269-.196 1.676-.653-.698.274-1.374.143-2.024-.069-.656-.203-1.306-.497-1.988-.749-1.348-.525-2.882-.962-4.512-.781-.802.108-1.598.362-2.295.765-.688.414-1.309.916-1.802 1.508-1.01 1.163-1.675 2.521-2.074 3.938.946-1.129 1.856-2.232 2.896-3.11.246-.207.5-.396.76-.572 1.202-.701 2.547-.941 3.928-.734 1.441.174 2.885.729 4.387 1.233.752.258 1.523.509 2.344.663.41.064.836.114 1.264.067.426-.041.855-.207 1.138-.502-.77.3-1.504.023-2.197-.274"/></g><path fill="#f5f5f5" d="m25.442 37.41c1.174 0 1.02-3.037 1.02-3.037-3.609-8.06-11.645-2.961-11.645-2.961-3.125 1.396 1.4 5.805 2.125 5.998 3.403.922 8.5 0 8.5 0"/><circle fill="#6235a8" cx="20.735" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.735" cy="33.717" r="1.25"/><path d="m12.949 32.3c.502-.214.999-.473 1.501-.73-.623-.031-1.269-.196-1.676-.653.698.274 1.374.143 2.024-.069.656-.203 1.306-.497 1.988-.749 1.348-.525 2.882-.962 4.512-.781.802.108 1.598.362 2.295.765.688.414 1.309.916 1.802 1.508 1.01 1.163 1.675 2.521 2.074 3.938-.946-1.129-1.856-2.232-2.896-3.11-.246-.207-.5-.396-.76-.572-1.202-.701-2.547-.941-3.928-.734-1.441.174-2.885.729-4.387 1.233-.752.258-1.523.509-2.344.663-.41.064-.836.114-1.264.067-.426-.041-.855-.207-1.138-.502.769.3 1.504.023 2.197-.274"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#231f20"/><path d="M10.4,40.7c0,0-4.4-1.1-4.4-7.5c0-5.1,3.3-5.9,3.3-5.9C39.5,27.2,48,21,48,21s1.9,6.2,6.6,6.2
+ c0,0,3.4,0.6,3.4,5.9c0,6.4-4.5,7.5-4.5,7.5C53.4,50.3,40.1,62,32,62S10.4,50.3,10.4,40.7z" fill="#b47d56"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#935e3e"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#6235a8"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><circle cx="20" cy="33.5" r="4.5" fill="#6235a8"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#994360"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5 5.5 0 6-1.7 10-2.5 0 0-3.8.5-6.1-.4" fill="#733449"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/><path d="m57.9 14.3c-.8-.4-1.9-.1-2.5.7-.2-.9-.7-1.6-1.3-2.1.6 0 .8-.3.6-.7-.2-.7-.5-1.5-1.9-2.5 0-1.6-1.2-3.1-1.2-3.1-.2-.2-.6-.2-.8.1 0 .1-.9 1.6-.5 3.3-1.5 1.3-1.4 2.7-1.3 3-.2 0-1.7 1-2.1 2.9-.8 0-1.3.6-1.3.6.3-2.2-1.4-4.4-4-4.3-.7-3.9-5.1-5.2-5.9-1.4-.5-1-1.6-1.8-1.6-1.8.4-1.9-1.2-5-2.1-5-.8 0-2.4 3.1-2.1 5 0 0-1.1.8-1.7 1.7-.8-3.8-5.3-2.5-5.9 1.4-2.6-.1-4.3 2-4 4.3 0 0-.5-.5-1.3-.6-.4-1.9-1.8-2.9-2.1-2.9.1-.2.2-1.7-1.3-3 .4-1.7-.5-3.2-.5-3.3-.2-.3-.6-.3-.8-.1 0 0-1.2 1.5-1.2 3.1-1.4.9-1.7 1.7-1.9 2.5-.1.4.1.8.6.7-.6.5-1 1.2-1.3 2.1-.6-.8-1.7-1.1-2.5-.7-1 .5-1.3 1.8-.8 2.9.6 1.4 2.4 1.5 3.3.5.4 2.2 2.7 3.1 4.5 1.6-.3 1 1.4 1 3.2-.6.6.4 1.7.3 2.1.1-.1 1.2.5 3.1 2.6 3.1 1.4 0 2-1 1.9-1.8.8.3 2.3.6 3.4-.1 2.1 1.8 3.6 2.1 3.7 1 .6.5 1.4.8 2.1.8.8 0 1.5-.3 2.2-.8.1 1 1.6.8 3.7-1 1.1.7 2.5.5 3.4.1-.2 1 .4 2 1.8 2 2 0 2.6-1.9 2.6-3.1.4.2 1.5.2 2.1-.1 1.9 1.6 3.5 1.5 3.2.6 1.8 1.5 4.1.6 4.5-1.6.9 1 2.7.9 3.3-.5.5-1.2.1-2.4-.9-3m-47.5-2.4c.2-.7.9-1.1.9-1.1l.2.8c-.1 0-.6.4-1.1.3m2.3-2.6h-.6c0 0 .1-.9.5-1.3.2.6.1 1.3.1 1.3m.1 2.5l.4-.8c0 0 .5.5.6 1.3-.5 0-1-.5-1-.5m.8 1.5c.2 0 .7.1.7.1s-.2.3-.3.8c0-.2-.3-.8-.4-.9m.5 5.8c.2-.9.7-1.5.7-1.5l.7.7c-.1-.1-.7.6-1.4.8m1-3.1c0 0-.2-.9 0-1.7.6.5.9 1.4.9 1.4l-.9.3m1.7 1.8l.2-.9c0 0 .8.2 1.3.9-.6.3-1.5 0-1.5 0m22.2-2.5c-.5-1.1.1-2 2-2.1.8 3.3-1.6 2.9-2 2.1m-7-9.9c.5 0 1.1 2.5 1 3.4h-2c-.1-.9.5-3.4 1-3.4m-9 7.9c1.9.1 2.5 1 2 2.1-.4.7-2.8 1.1-2-2.1m-2.8 3.6c-.3.3-1 0-1-1.4 1.3.4 1.3 1.1 1 1.4m2.4 2.1c-.3-1-1-1.4-1.4-1.6.7-1.1.1-2.3-1.8-2.8.9-1.1 1.5-1.5 2.5-1.5-.7 3.1 1 4.6 3.2 3.3 0 .2 0 .3 0 .5-1 .3-1.8 1.1-2.5 2.1m1 .3c.3-.7 1.6-1.4 1.6-1.4l.4 1.2c0 .1-1 .5-2 .2m2.4-4.7c-.1-1.1-.3-1.9-2.7-2.4.8-3.5 3.6-3.3 3.9-1.6.2 1.2-1.4 1.6-1-.1.2-.6-.7-.9-1-.3-.3.8-.4 3.1 2.1 2.1-.2.6-.5.9-.3 1.2-.2.2-.6.6-1 1.1m1.2.2c.4 1 .2 2.2.2 2.2l-1.2-.2c0-.1.3-1.2 1-2m-.2 4.6l.8-.9c0 0 .8.8 1 1.9-.9-.1-1.8-1-1.8-1m1.4-3.8c0-.8-.5-1.6-.5-1.6h1.3c0 0-.6.7-.8 1.6m-.3-2.6c.3-1.5 2.2-2.7 2.2-2.7l1 1.8c0 0-1.3 1-3.2.9m3.9-1.9c-.2-.3-.5-.7-.6-1.2.2 0 1.1 0 1.3 0-.2.5-.5.9-.7 1.2m.7 1l1-1.8c0 0 2 1.3 2.2 2.7-1.9.1-3.2-.9-3.2-.9m2.1 1.9h1.3c0 0-.4.8-.5 1.6-.2-.9-.8-1.6-.8-1.6m.4 6.4c.2-1.1 1-1.9 1-1.9l.8.9c0 0-.9.9-1.8 1m1.4-3.5c0 0-.2-1.1.2-2.2.7.8 1 1.9 1 1.9l-1.2.3m.4-3.3c.2-.3-.1-.7-.3-1.2 2.5 1.1 2.4-1.2 2.1-2.1-.2-.6-1.1-.3-1 .3.4 1.6-1.3 1.2-1 .1.3-1.7 3.2-1.9 3.9 1.6-2.4.4-2.6 1.3-2.7 2.4-.4-.6-.8-1-1-1.1m1.4 5.6l.4-1.2c0 0 1.3.6 1.6 1.4-1 .2-2-.2-2-.2m4.4-1.8c-.4.2-1.1.6-1.4 1.6-.6-1-1.4-1.8-2.5-2.1 0-.2 0-.3-.1-.5 2.2 1.3 4-.2 3.2-3.3 1 0 1.7.4 2.5 1.5-1.8.5-2.4 1.7-1.7 2.8m1-.5c-.3-.3-.3-1 1-1.4 0 1.4-.7 1.7-1 1.4m1.9.9c.6-.8 1.3-.9 1.3-.9l.2.9c0 0-.9.3-1.5 0m3.2-3.5c.2.7 0 1.7 0 1.7l-.9-.3c.1 0 .3-.9.9-1.4m-.3 3.9l.7-.7c0 0 .5.7.7 1.5-.8-.1-1.4-.8-1.4-.8m1.3-4.1c-.1-.5-.3-.8-.3-.8s.5 0 .7-.1c0 .2-.3.8-.4.9m.3-1.8c.1-.8.6-1.3.6-1.3l.4.8c0 0-.5.5-1 .5m1.1-3c0 0-.1-.8.2-1.3.4.4.5 1.3.5 1.3h-.7m1.3 2.3l.2-.8c0 0 .6.4.9 1.1-.6.1-1.1-.3-1.1-.3" fill="#fff"/><g fill="#ff5760"><path d="m56.5 17.3c-.5-.3-.7-.9-.4-1.5.3-.6.9-.8 1.4-.5.5.3.7.9.4 1.5-.3.5-.9.8-1.4.5"/><path d="m44.5 20.4c-.6.8-1.5 1-2.1.5-.6-.5-.6-1.5-.1-2.3.6-.8 1.5-1 2.1-.5.7.5.7 1.6.1 2.3"/><path d="m54.6 15.9c.2 1.5-.5 2.9-1.6 3.1-1.1.2-2.2-.9-2.4-2.5-.2-1.5.5-2.9 1.6-3.1 1.1-.2 2.2.9 2.4 2.5"/><path d="m7.5 17.3c.5-.3.6-.9.4-1.5-.3-.5-.9-.8-1.4-.5-.5.3-.7.9-.4 1.5.3.5.9.8 1.4.5"/><ellipse cx="32" cy="17.2" rx="3" ry="3.8"/><path d="m19.5 20.4c.6.8 1.5 1 2.1.5.6-.5.6-1.5.1-2.3-.6-.8-1.5-1-2.1-.5-.7.5-.7 1.6-.1 2.3"/><path d="m9.4 15.9c-.2 1.5.5 2.9 1.6 3.1 1.1.2 2.2-.9 2.4-2.5.2-1.5-.5-2.9-1.6-3.1-1.1-.2-2.2.9-2.4 2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3ff.svg
index 2917684..6b8053d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f478-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.414-15.16-21.996-15.16-21.996s-1.141-4.531-12.84-4.531"/><path fill="#8a6859" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.537 3.039-5.537 10.895 0 35.26-4.705 35.26-4.705s.092 3.047 6.566 4.705c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.059 9-12.352 19.861-19.818 19.861s-19.969-10.859-19.969-19.861"/><path fill="#705041" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#994360" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.164.527-5.447.27-5.447.27 2.385 2.387 3.52 5.645 8.998 5.645s6.611-3.258 8.998-5.645c0-.001-3.283.257-5.447-.27"/><path fill="#733449" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.125.518-5.461.268-5.447.27 3.602.648 4.051 2.488 8.998 2.488s5.396-1.84 8.998-2.488c.012-.003-3.322.247-5.447-.27"/><path fill="#ffce31" d="m57.95 16.337c-.837-.445-1.918-.115-2.501.69-.244-.875-.695-1.607-1.263-2.117.565.018.766-.344.648-.741-.222-.745-.511-1.536-1.917-2.47-.01-1.614-1.184-3.072-1.226-3.117-.195-.206-.615-.189-.785.088-.031.053-.939 1.551-.535 3.289-1.46 1.299-1.381 2.735-1.291 2.969-.237.004-1.678 1.027-2.068 2.887-.777.023-1.271.553-1.271.553.275-2.236-1.357-4.395-3.982-4.282-.676-3.891-5.146-5.185-5.948-1.356-.599-.93-1.731-1.697-1.731-1.697.353-1.926-1.237-5.03-2.079-5.03-.84 0-2.43 3.107-2.078 5.03 0 0-1.133.768-1.731 1.697-.802-3.828-5.271-2.534-5.948 1.356-2.625-.112-4.258 2.046-3.982 4.282 0 0-.492-.529-1.27-.553-.391-1.859-1.832-2.883-2.069-2.887.091-.233.171-1.67-1.29-2.969.404-1.738-.504-3.236-.536-3.289-.17-.277-.591-.294-.784-.088-.043.045-1.217 1.503-1.227 3.117-1.406.934-1.695 1.725-1.916 2.47-.118.397.083.759.648.741-.567.51-1.02 1.242-1.263 2.117-.583-.806-1.665-1.136-2.501-.69-.973.515-1.324 1.798-.828 2.884.633 1.383 2.426 1.498 3.302.519.406 2.228 2.728 3.097 4.524 1.595-.281.967 1.354 1.028 3.232-.551.584.359 1.662.342 2.104.129-.072 1.174.514 3.086 2.561 3.086 1.402 0 1.957-1.01 1.859-1.813.827.335 2.283.568 3.36-.139 2.098 1.82 3.622 2.076 3.684 1.035.612.52 1.353.828 2.149.828.799 0 1.539-.309 2.15-.828.062 1.041 1.586.785 3.685-1.035 1.076.707 2.533.474 3.36.139-.098.803.456 1.813 1.859 1.813 2.046 0 2.632-1.912 2.561-3.086.44.213 1.519.23 2.103-.129 1.88 1.579 3.514 1.518 3.232.551 1.798 1.502 4.119.633 4.525-1.595.875.979 2.668.864 3.301-.519.497-1.086.145-2.369-.827-2.884m-47.582-2.429c.246-.729.856-1.105.856-1.105l.22.827c0 0-.533.391-1.076.278m2.352-2.581l-.611-.043c0 0 .098-.87.453-1.299.281.566.158 1.342.158 1.342m.103 2.444l.412-.775c0 0 .482.477.598 1.258-.547.001-1.01-.483-1.01-.483m.799 1.512c.222.037.717.054.717.054s-.152.312-.264.794c-.052-.133-.349-.705-.453-.848m.467 5.826c.171-.856.662-1.545.662-1.545l.66.682c0 0-.648.674-1.322.863m.976-3.119c0 0-.208-.949.014-1.695.646.486.869 1.433.869 1.433l-.883.262m1.691 1.853l.217-.946c0 0 .772.19 1.343.944-.616.271-1.56.002-1.56.002m22.283-2.53c-.486-1.057.09-1.975 1.965-2.055.8 3.256-1.585 2.881-1.965 2.055m-7.04-9.911c.491 0 1.128 2.499.963 3.367h-1.924c-.166-.868.472-3.367.961-3.367m-9 7.856c1.874.08 2.449.998 1.963 2.055-.379.826-2.765 1.201-1.963-2.055m-2.795 3.662c-.326.262-.979.004-.952-1.396 1.286.404 1.292 1.124.952 1.396m2.441 2.056c-.33-.985-1.035-1.411-1.421-1.595.688-1.055.118-2.278-1.759-2.754.859-1.129 1.53-1.504 2.528-1.498-.718 3.057 1.019 4.591 3.243 3.298-.023.154-.045.311-.049.463-1.107.285-1.922 1.135-2.542 2.086m.988.346c.321-.725 1.618-1.352 1.618-1.352l.369 1.179c0 0-.995.462-1.987.173m2.365-4.711c-.11-1.093-.31-1.94-2.739-2.383.765-3.49 3.574-3.266 3.924-1.612.249 1.176-1.438 1.585-1-.062.161-.611-.746-.85-.977-.272-.331.829-.381 3.124 2.092 2.051-.227.56-.529.923-.336 1.244-.18.148-.582.507-.962 1.034m1.188.174c.379 1.014.192 2.156.192 2.156l-1.153-.24c.001 0 .257-1.101.961-1.916m-.188 4.652l.773-.94c0 0 .765.793 1 1.898-.856-.086-1.773-.958-1.773-.958m1.448-3.82c-.015-.773-.462-1.553-.462-1.553l1.261-.041c0 0-.663.674-.799 1.594m-.322-2.607c.257-1.452 2.208-2.733 2.208-2.733l.952 1.785c0 0-1.271 1.012-3.16.948m3.875-1.879c-.205-.303-.451-.72-.65-1.211.229-.043 1.074-.043 1.303 0-.198.491-.446.908-.653 1.211m.717.931l.952-1.785c0 0 1.951 1.281 2.207 2.733-1.888.064-3.159-.948-3.159-.948m2.039 1.961l1.261.041c0 0-.447.779-.463 1.553-.136-.92-.798-1.594-.798-1.594m.473 6.372c.235-1.105 1-1.898 1-1.898l.772.94c.001 0-.916.872-1.772.958m1.393-3.454c0 0-.187-1.143.191-2.156.705.814.962 1.916.962 1.916l-1.153.24m.418-3.364c.193-.321-.109-.685-.335-1.244 2.473 1.073 2.423-1.222 2.091-2.051-.229-.577-1.138-.339-.976.272.436 1.646-1.251 1.237-1 .062.35-1.653 3.159-1.878 3.924 1.612-2.429.442-2.629 1.29-2.739 2.383-.379-.527-.782-.886-.962-1.034m1.34 5.572l.37-1.179c0 0 1.296.627 1.618 1.352-.993.289-1.988-.173-1.988-.173m4.395-1.768c-.386.184-1.089.609-1.42 1.595-.619-.95-1.435-1.801-2.543-2.086-.004-.152-.025-.309-.05-.463 2.225 1.293 3.962-.241 3.243-3.298.999-.006 1.67.369 2.529 1.498-1.876.476-2.446 1.699-1.759 2.754m1.022-.461c-.341-.271-.335-.992.951-1.396.026 1.4-.626 1.658-.951 1.396m1.89.921c.57-.754 1.343-.944 1.343-.944l.218.946c-.001 0-.946.269-1.561-.002m3.237-3.546c.222.746.014 1.695.014 1.695l-.883-.263c0 .001.223-.946.869-1.432m-.332 3.951l.66-.682c0 0 .491.688.661 1.545-.673-.189-1.321-.863-1.321-.863m1.336-4.115c-.112-.482-.265-.794-.265-.794s.496-.017.717-.054c-.104.143-.401.715-.452.848m.242-1.877c.114-.781.597-1.258.597-1.258l.413.775c0 0-.464.484-1.01.483m1.113-2.927c0 0-.123-.776.158-1.342.355.429.452 1.299.452 1.299l-.61.043m1.276 2.303l.219-.827c0 0 .612.376.856 1.105-.542.113-1.075-.278-1.075-.278"/><g fill="#ff5760"><path d="m56.53 19.29c-.492-.261-.676-.921-.409-1.474.267-.551.88-.791 1.371-.529.489.259.673.92.408 1.473-.265.551-.88.789-1.37.53"/><path d="m44.504 22.442c-.574.788-1.537 1.031-2.146.54-.605-.488-.632-1.525-.055-2.313.576-.786 1.536-1.029 2.145-.539.608.489.632 1.526.056 2.312"/><path d="m54.61 17.863c.219 1.538-.493 2.925-1.586 3.096-1.096.17-2.161-.938-2.38-2.477-.217-1.541.495-2.927 1.591-3.096 1.094-.171 2.159.938 2.375 2.477"/><path d="m7.472 19.29c.492-.261.676-.921.408-1.474-.266-.551-.879-.791-1.37-.529-.489.259-.673.92-.407 1.473.265.551.877.789 1.369.53"/><ellipse cx="32" cy="19.229" rx="3.03" ry="3.822"/><path d="m19.499 22.442c.576.788 1.537 1.031 2.146.54.606-.488.632-1.525.056-2.313-.577-.786-1.537-1.029-2.146-.539-.607.489-.632 1.526-.056 2.312"/><path d="m9.394 17.863c-.22 1.538.492 2.925 1.586 3.096 1.096.17 2.161-.938 2.379-2.477.218-1.541-.494-2.927-1.59-3.096-1.094-.171-2.159.938-2.375 2.477"/></g><path fill="#f5f5f5" d="m38.562 37.41c-1.174 0-1.02-3.037-1.02-3.037 3.609-8.06 11.645-2.961 11.645-2.961 3.125 1.396-1.4 5.805-2.125 5.998-3.403.922-8.5 0-8.5 0"/><circle fill="#6235a8" cx="43.27" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.27" cy="33.717" r="1.25"/><path d="m51.06 32.3c-.503-.214-1-.473-1.502-.73.623-.031 1.27-.196 1.676-.653-.698.274-1.373.143-2.024-.069-.656-.203-1.306-.497-1.989-.749-1.346-.525-2.881-.962-4.51-.781-.803.108-1.6.362-2.296.765-.688.414-1.308.916-1.802 1.508-1.01 1.163-1.675 2.521-2.074 3.938.945-1.129 1.855-2.232 2.895-3.11.247-.207.501-.396.76-.572 1.203-.701 2.547-.941 3.928-.734 1.443.174 2.887.729 4.389 1.233.75.258 1.523.509 2.343.663.411.064.836.114 1.265.067.426-.041.855-.207 1.137-.502-.769.3-1.503.023-2.196-.274"/></g><path fill="#f5f5f5" d="m25.442 37.41c1.174 0 1.02-3.037 1.02-3.037-3.609-8.06-11.645-2.961-11.645-2.961-3.125 1.396 1.4 5.805 2.125 5.998 3.403.922 8.5 0 8.5 0"/><circle fill="#6235a8" cx="20.735" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.735" cy="33.717" r="1.25"/><path d="m12.948 32.3c.503-.214 1-.473 1.502-.73-.623-.031-1.27-.196-1.676-.653.698.274 1.373.143 2.024-.069.656-.203 1.306-.497 1.989-.749 1.346-.525 2.881-.962 4.51-.781.803.108 1.6.362 2.296.765.688.414 1.308.916 1.802 1.508 1.01 1.163 1.675 2.521 2.074 3.938-.945-1.129-1.855-2.232-2.895-3.11-.247-.207-.501-.396-.76-.572-1.203-.701-2.547-.941-3.928-.734-1.443.174-2.887.729-4.389 1.233-.75.258-1.523.509-2.343.663-.411.064-.836.114-1.265.067-.426-.041-.855-.207-1.137-.502.769.3 1.503.023 2.196-.274"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#231f20"/><path d="m10.4 40.7c0 0-4.4-1.1-4.4-7.5 0-5.1 3.3-5.9 3.3-5.9 30.2-.1 38.7-6.3 38.7-6.3s1.9 6.2 6.6 6.2c0 0 3.4.6 3.4 5.9 0 6.4-4.5 7.5-4.5 7.5-.1 9.7-13.4 21.4-21.5 21.4-8.1 0-21.6-11.7-21.6-21.3" fill="#8a6859"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#705041"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#6235a8"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><circle cx="20" cy="33.5" r="4.5" fill="#6235a8"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#994360"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5 5.5 0 6-1.7 10-2.5 0 0-3.8.5-6.1-.4" fill="#733449"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/><path d="m57.9 14.3c-.8-.4-1.9-.1-2.5.7-.2-.9-.7-1.6-1.3-2.1.6 0 .8-.3.6-.7-.2-.7-.5-1.5-1.9-2.5 0-1.6-1.2-3.1-1.2-3.1-.2-.2-.6-.2-.8.1 0 .1-.9 1.6-.5 3.3-1.5 1.3-1.4 2.7-1.3 3-.2 0-1.7 1-2.1 2.9-.8 0-1.3.6-1.3.6.3-2.2-1.4-4.4-4-4.3-.7-3.9-5.1-5.2-5.9-1.4-.5-1-1.6-1.8-1.6-1.8.4-1.9-1.2-5-2.1-5s-2.4 3.1-2.1 5c0 0-1.1.8-1.7 1.7-.8-3.8-5.3-2.5-5.9 1.4-2.6-.1-4.3 2-4 4.3 0 0-.5-.5-1.3-.6-.4-1.9-1.8-2.9-2.1-2.9.1-.2.2-1.7-1.3-3 .4-1.7-.5-3.2-.5-3.3-.2-.3-.6-.3-.8-.1 0 0-1.2 1.5-1.2 3.1-1.4.9-1.7 1.7-1.9 2.5-.1.4.1.8.6.7-.6.5-1 1.2-1.3 2.1-.6-.8-1.7-1.1-2.5-.7-1 .5-1.3 1.8-.8 2.9.6 1.4 2.4 1.5 3.3.5.4 2.2 2.7 3.1 4.5 1.6-.3 1 1.4 1 3.2-.6.6.4 1.7.3 2.1.1-.1 1.2.5 3.1 2.6 3.1 1.4 0 2-1 1.9-1.8.8.3 2.3.6 3.4-.1 2.1 1.8 3.6 2.1 3.7 1 .6.5 1.4.8 2.1.8.8 0 1.5-.3 2.2-.8.1 1 1.6.8 3.7-1 1.1.7 2.5.5 3.4.1-.2 1 .4 2 1.8 2 2 0 2.6-1.9 2.6-3.1.4.2 1.5.2 2.1-.1 1.9 1.6 3.5 1.5 3.2.6 1.8 1.5 4.1.6 4.5-1.6.9 1 2.7.9 3.3-.5.5-1.2.1-2.4-.9-3m-47.5-2.4c.2-.7.9-1.1.9-1.1l.2.8c-.1 0-.6.4-1.1.3m2.3-2.6h-.6c0 0 .1-.9.5-1.3.2.6.1 1.3.1 1.3m.1 2.5l.4-.8c0 0 .5.5.6 1.3-.5 0-1-.5-1-.5m.8 1.5c.2 0 .7.1.7.1s-.2.3-.3.8c0-.2-.3-.8-.4-.9m.5 5.8c.2-.9.7-1.5.7-1.5l.7.7c-.1-.1-.7.6-1.4.8m1-3.1c0 0-.2-.9 0-1.7.6.5.9 1.4.9 1.4l-.9.3m1.7 1.8l.2-.9c0 0 .8.2 1.3.9-.6.3-1.5 0-1.5 0m22.2-2.5c-.5-1.1.1-2 2-2.1.8 3.3-1.6 2.9-2 2.1m-7-9.9c.5 0 1.1 2.5 1 3.4h-2c-.1-.9.5-3.4 1-3.4m-9 7.9c1.9.1 2.5 1 2 2.1-.4.7-2.8 1.1-2-2.1m-2.8 3.6c-.3.3-1 0-1-1.4 1.3.4 1.3 1.1 1 1.4m2.4 2.1c-.3-1-1-1.4-1.4-1.6.7-1.1.1-2.3-1.8-2.8.9-1.1 1.5-1.5 2.5-1.5-.7 3.1 1 4.6 3.2 3.3 0 .2 0 .3 0 .5-1 .3-1.8 1.1-2.5 2.1m1 .3c.3-.7 1.6-1.4 1.6-1.4l.4 1.2c0 .1-1 .5-2 .2m2.4-4.7c-.1-1.1-.3-1.9-2.7-2.4.8-3.5 3.6-3.3 3.9-1.6.2 1.2-1.4 1.6-1-.1.2-.6-.7-.9-1-.3-.3.8-.4 3.1 2.1 2.1-.2.6-.5.9-.3 1.2-.2.2-.6.6-1 1.1m1.2.2c.4 1 .2 2.2.2 2.2l-1.2-.2c0-.1.3-1.2 1-2m-.2 4.6l.8-.9c0 0 .8.8 1 1.9-.9-.1-1.8-1-1.8-1m1.4-3.8c0-.8-.5-1.6-.5-1.6h1.3c0 0-.6.7-.8 1.6m-.3-2.6c.3-1.5 2.2-2.7 2.2-2.7l1 1.8c0 0-1.3 1-3.2.9m3.9-1.9c-.2-.3-.5-.7-.6-1.2.2 0 1.1 0 1.3 0-.2.5-.5.9-.7 1.2m.7 1l1-1.8c0 0 2 1.3 2.2 2.7-1.9.1-3.2-.9-3.2-.9m2.1 1.9h1.3c0 0-.4.8-.5 1.6-.2-.9-.8-1.6-.8-1.6m.4 6.4c.2-1.1 1-1.9 1-1.9l.8.9c0 0-.9.9-1.8 1m1.4-3.5c0 0-.2-1.1.2-2.2.7.8 1 1.9 1 1.9l-1.2.3m.4-3.3c.2-.3-.1-.7-.3-1.2 2.5 1.1 2.4-1.2 2.1-2.1-.2-.6-1.1-.3-1 .3.4 1.6-1.3 1.2-1 .1.3-1.7 3.2-1.9 3.9 1.6-2.4.4-2.6 1.3-2.7 2.4-.4-.6-.8-1-1-1.1m1.4 5.6l.4-1.2c0 0 1.3.6 1.6 1.4-1 .2-2-.2-2-.2m4.4-1.8c-.4.2-1.1.6-1.4 1.6-.6-1-1.4-1.8-2.5-2.1 0-.2 0-.3-.1-.5 2.2 1.3 4-.2 3.2-3.3 1 0 1.7.4 2.5 1.5-1.8.5-2.4 1.7-1.7 2.8m1-.5c-.3-.3-.3-1 1-1.4 0 1.4-.7 1.7-1 1.4m1.9.9c.6-.8 1.3-.9 1.3-.9l.2.9c0 0-.9.3-1.5 0m3.2-3.5c.2.7 0 1.7 0 1.7l-.9-.3c.1 0 .3-.9.9-1.4m-.3 3.9l.7-.7c0 0 .5.7.7 1.5-.8-.1-1.4-.8-1.4-.8m1.3-4.1c-.1-.5-.3-.8-.3-.8s.5 0 .7-.1c0 .2-.3.8-.4.9m.3-1.8c.1-.8.6-1.3.6-1.3l.4.8c0 0-.5.5-1 .5m1.1-3c0 0-.1-.8.2-1.3.4.4.5 1.3.5 1.3h-.7m1.3 2.3l.2-.8c0 0 .6.4.9 1.1-.6.1-1.1-.3-1.1-.3" fill="#fff"/><g fill="#ff5760"><path d="m56.5 17.3c-.5-.3-.7-.9-.4-1.5.3-.6.9-.8 1.4-.5.5.3.7.9.4 1.5-.3.5-.9.8-1.4.5"/><path d="m44.5 20.4c-.6.8-1.5 1-2.1.5-.6-.5-.6-1.5-.1-2.3.6-.8 1.5-1 2.1-.5.7.5.7 1.6.1 2.3"/><path d="m54.6 15.9c.2 1.5-.5 2.9-1.6 3.1-1.1.2-2.2-.9-2.4-2.5-.2-1.5.5-2.9 1.6-3.1 1.1-.2 2.2.9 2.4 2.5"/><path d="m7.5 17.3c.5-.3.6-.9.4-1.5-.3-.5-.9-.8-1.4-.5-.5.3-.7.9-.4 1.5.3.5.9.8 1.4.5"/><ellipse cx="32" cy="17.2" rx="3" ry="3.8"/><path d="m19.5 20.4c.6.8 1.5 1 2.1.5.6-.5.6-1.5.1-2.3-.6-.8-1.5-1-2.1-.5-.7.5-.7 1.6-.1 2.3"/><path d="m9.4 15.9c-.2 1.5.5 2.9 1.6 3.1 1.1.2 2.2-.9 2.4-2.5.2-1.5-.5-2.9-1.6-3.1-1.1-.2-2.2.9-2.4 2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f478.svg b/build/js/jsxc/lib/emojione/assets/svg/1f478.svg
index 48797a4..939f660 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f478.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f478.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m32 1.998c-18.11 0-28 11.449-28 26.527v33.473h56v-33.473c0-22.414-15.16-21.996-15.16-21.996s-1.141-4.531-12.84-4.531"/><path fill="#ffdd67" d="m12.03 41.14c0 0-4.03-1.031-4.03-6.998 0-4.727 3.039-5.537 3.039-5.537 10.895 0 35.26-4.705 35.26-4.705s.092 3.047 6.566 4.705c0 0 3.135.578 3.135 5.537 0 5.967-4.182 6.998-4.182 6.998-.059 9-12.352 19.861-19.818 19.861s-19.969-10.859-19.969-19.861"/><path fill="#eba352" d="m37 45.25c0 1.963-4.066 2.529-5 2.529s-5-.695-5-2.656c0 0 10-.851 10 .127"/><path fill="#f5f5f5" d="m38.811 37.41c-1.174 0-1.02-3.037-1.02-3.037 3.609-8.06 11.645-2.961 11.645-2.961 3.125 1.396-1.4 5.805-2.125 5.998-3.403.922-8.5 0-8.5 0"/><circle fill="#6235a8" cx="43.518" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="43.518" cy="33.717" r="1.25"/><path d="m51.3 32.3c-.502-.214-.999-.473-1.501-.73.623-.031 1.269-.196 1.676-.653-.698.274-1.374.143-2.024-.069-.656-.203-1.306-.497-1.988-.749-1.348-.525-2.882-.962-4.512-.781-.802.108-1.598.362-2.295.765-.688.414-1.309.916-1.802 1.508-1.01 1.163-1.675 2.521-2.074 3.938.946-1.129 1.856-2.232 2.896-3.11.246-.207.5-.396.76-.572 1.202-.701 2.547-.941 3.928-.734 1.441.174 2.885.729 4.387 1.233.752.258 1.523.509 2.344.663.41.064.836.114 1.264.067.426-.041.855-.207 1.138-.502-.77.3-1.504.023-2.197-.274"/></g><path fill="#f5f5f5" d="m25.691 37.41c1.174 0 1.02-3.037 1.02-3.037-3.609-8.06-11.645-2.961-11.645-2.961-3.125 1.396 1.4 5.805 2.125 5.998 3.403.922 8.5 0 8.5 0"/><circle fill="#6235a8" cx="20.984" cy="33.717" r="3.844"/><g fill="#231f20"><circle cx="20.984" cy="33.717" r="1.25"/><path d="m13.198 32.3c.502-.214.999-.473 1.501-.73-.623-.031-1.269-.196-1.676-.653.698.274 1.374.143 2.024-.069.656-.203 1.306-.497 1.988-.749 1.348-.525 2.882-.962 4.512-.781.802.108 1.598.362 2.295.765.688.414 1.309.916 1.802 1.508 1.01 1.163 1.675 2.521 2.074 3.938-.946-1.129-1.856-2.232-2.896-3.11-.246-.207-.5-.396-.76-.572-1.202-.701-2.547-.941-3.928-.734-1.441.174-2.885.729-4.387 1.233-.752.258-1.523.509-2.344.663-.41.064-.836.114-1.264.067-.426-.041-.855-.207-1.138-.502.77.3 1.504.023 2.197-.274"/></g><path fill="#f085a9" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.164.527-5.447.27-5.447.27 2.385 2.387 3.52 5.645 8.998 5.645s6.611-3.258 8.998-5.645c0-.001-3.283.257-5.447-.27"/><path fill="#d46c8f" d="m35.553 50.06c-.727-.178-1.787-.094-3.186.375-.121.037-.244.078-.365.117-.123-.039-.244-.08-.365-.117-1.398-.469-2.461-.553-3.186-.375-2.125.518-5.461.268-5.447.27 3.602.648 4.051 2.488 8.998 2.488s5.396-1.84 8.998-2.488c.012-.003-3.322.247-5.447-.27"/><path fill="#ffce31" d="m57.95 16.337c-.837-.445-1.918-.115-2.501.69-.244-.875-.695-1.607-1.263-2.117.565.018.766-.344.648-.741-.222-.745-.511-1.536-1.917-2.47-.01-1.614-1.184-3.072-1.226-3.117-.195-.206-.615-.189-.785.088-.031.053-.939 1.551-.535 3.289-1.46 1.299-1.381 2.735-1.291 2.969-.237.004-1.678 1.027-2.068 2.887-.777.023-1.271.553-1.271.553.275-2.236-1.357-4.395-3.982-4.282-.676-3.891-5.146-5.185-5.948-1.356-.599-.93-1.731-1.697-1.731-1.697.353-1.926-1.237-5.03-2.079-5.03-.84 0-2.43 3.107-2.078 5.03 0 0-1.133.768-1.731 1.697-.802-3.828-5.271-2.534-5.948 1.356-2.625-.112-4.258 2.046-3.982 4.282 0 0-.492-.529-1.27-.553-.391-1.859-1.832-2.883-2.069-2.887.091-.233.171-1.67-1.29-2.969.404-1.738-.504-3.236-.536-3.289-.17-.277-.591-.294-.784-.088-.043.045-1.217 1.503-1.227 3.117-1.406.934-1.695 1.725-1.916 2.47-.118.397.083.759.648.741-.567.51-1.02 1.242-1.263 2.117-.583-.806-1.665-1.136-2.501-.69-.973.515-1.324 1.798-.828 2.884.633 1.383 2.426 1.498 3.302.519.406 2.228 2.728 3.097 4.524 1.595-.281.967 1.354 1.028 3.232-.551.584.359 1.662.342 2.104.129-.072 1.174.514 3.086 2.561 3.086 1.402 0 1.957-1.01 1.859-1.813.827.335 2.283.568 3.36-.139 2.098 1.82 3.622 2.076 3.684 1.035.612.52 1.353.828 2.149.828.799 0 1.539-.309 2.15-.828.062 1.041 1.586.785 3.685-1.035 1.076.707 2.533.474 3.36.139-.098.803.456 1.813 1.859 1.813 2.046 0 2.632-1.912 2.561-3.086.44.213 1.519.23 2.103-.129 1.88 1.579 3.514 1.518 3.232.551 1.798 1.502 4.119.633 4.525-1.595.875.979 2.668.864 3.301-.519.497-1.086.145-2.369-.827-2.884m-47.582-2.429c.246-.729.856-1.105.856-1.105l.22.827c0 0-.533.391-1.076.278m2.352-2.581l-.611-.043c0 0 .098-.87.453-1.299.281.566.158 1.342.158 1.342m.103 2.444l.412-.775c0 0 .482.477.598 1.258-.547.001-1.01-.483-1.01-.483m.799 1.512c.222.037.717.054.717.054s-.152.312-.264.794c-.052-.133-.349-.705-.453-.848m.467 5.826c.171-.856.662-1.545.662-1.545l.66.682c0 0-.648.674-1.322.863m.976-3.119c0 0-.208-.949.014-1.695.646.486.869 1.433.869 1.433l-.883.262m1.691 1.853l.217-.946c0 0 .772.19 1.343.944-.616.271-1.56.002-1.56.002m22.283-2.53c-.486-1.057.09-1.975 1.965-2.055.8 3.256-1.585 2.881-1.965 2.055m-7.04-9.911c.491 0 1.128 2.499.963 3.367h-1.924c-.166-.868.472-3.367.961-3.367m-9 7.856c1.874.08 2.449.998 1.963 2.055-.379.826-2.765 1.201-1.963-2.055m-2.795 3.662c-.326.262-.979.004-.952-1.396 1.286.404 1.292 1.124.952 1.396m2.441 2.056c-.33-.985-1.035-1.411-1.421-1.595.688-1.055.118-2.278-1.759-2.754.859-1.129 1.53-1.504 2.528-1.498-.718 3.057 1.019 4.591 3.243 3.298-.023.154-.045.311-.049.463-1.107.285-1.922 1.135-2.542 2.086m.988.346c.321-.725 1.618-1.352 1.618-1.352l.369 1.179c0 0-.995.462-1.987.173m2.365-4.711c-.11-1.093-.31-1.94-2.739-2.383.765-3.49 3.574-3.266 3.924-1.612.249 1.176-1.438 1.585-1-.062.161-.611-.746-.85-.977-.272-.331.829-.381 3.124 2.092 2.051-.227.56-.529.923-.336 1.244-.18.148-.582.507-.962 1.034m1.188.174c.379 1.014.192 2.156.192 2.156l-1.153-.24c.001 0 .257-1.101.961-1.916m-.188 4.652l.773-.94c0 0 .765.793 1 1.898-.856-.086-1.773-.958-1.773-.958m1.448-3.82c-.015-.773-.462-1.553-.462-1.553l1.261-.041c0 0-.663.674-.799 1.594m-.322-2.607c.257-1.452 2.208-2.733 2.208-2.733l.952 1.785c0 0-1.271 1.012-3.16.948m3.875-1.879c-.205-.303-.451-.72-.65-1.211.229-.043 1.074-.043 1.303 0-.198.491-.446.908-.653 1.211m.717.931l.952-1.785c0 0 1.951 1.281 2.207 2.733-1.888.064-3.159-.948-3.159-.948m2.039 1.961l1.261.041c0 0-.447.779-.463 1.553-.136-.92-.798-1.594-.798-1.594m.473 6.372c.235-1.105 1-1.898 1-1.898l.772.94c.001 0-.916.872-1.772.958m1.393-3.454c0 0-.187-1.143.191-2.156.705.814.962 1.916.962 1.916l-1.153.24m.418-3.364c.193-.321-.109-.685-.335-1.244 2.473 1.073 2.423-1.222 2.091-2.051-.229-.577-1.138-.339-.976.272.436 1.646-1.251 1.237-1 .062.35-1.653 3.159-1.878 3.924 1.612-2.429.442-2.629 1.29-2.739 2.383-.379-.527-.782-.886-.962-1.034m1.34 5.572l.37-1.179c0 0 1.296.627 1.618 1.352-.993.289-1.988-.173-1.988-.173m4.395-1.768c-.386.184-1.089.609-1.42 1.595-.619-.95-1.435-1.801-2.543-2.086-.004-.152-.025-.309-.05-.463 2.225 1.293 3.962-.241 3.243-3.298.999-.006 1.67.369 2.529 1.498-1.876.476-2.446 1.699-1.759 2.754m1.022-.461c-.341-.271-.335-.992.951-1.396.026 1.4-.626 1.658-.951 1.396m1.89.921c.57-.754 1.343-.944 1.343-.944l.218.946c-.001 0-.946.269-1.561-.002m3.237-3.546c.222.746.014 1.695.014 1.695l-.883-.263c0 .001.223-.946.869-1.432m-.332 3.951l.66-.682c0 0 .491.688.661 1.545-.673-.189-1.321-.863-1.321-.863m1.336-4.115c-.112-.482-.265-.794-.265-.794s.496-.017.717-.054c-.104.143-.401.715-.452.848m.242-1.877c.114-.781.597-1.258.597-1.258l.413.775c0 0-.464.484-1.01.483m1.113-2.927c0 0-.123-.776.158-1.342.355.429.452 1.299.452 1.299l-.61.043m1.276 2.303l.219-.827c0 0 .612.376.856 1.105-.542.113-1.075-.278-1.075-.278"/><g fill="#ff5760"><path d="m56.53 19.29c-.492-.261-.676-.921-.409-1.474.267-.551.88-.791 1.371-.529.489.259.673.92.408 1.473-.265.551-.88.789-1.37.53"/><path d="m44.504 22.442c-.574.788-1.537 1.031-2.146.54-.605-.488-.632-1.525-.055-2.313.576-.786 1.536-1.029 2.145-.539.608.489.632 1.526.056 2.312"/><path d="m54.61 17.863c.219 1.538-.493 2.925-1.586 3.096-1.096.17-2.161-.938-2.38-2.477-.217-1.541.495-2.927 1.591-3.096 1.094-.171 2.159.938 2.375 2.477"/><path d="m7.472 19.29c.492-.261.676-.921.408-1.474-.266-.551-.879-.791-1.37-.529-.489.259-.673.92-.407 1.473.265.551.877.789 1.369.53"/><ellipse cx="32" cy="19.229" rx="3.03" ry="3.822"/><path d="m19.499 22.442c.576.788 1.537 1.031 2.146.54.606-.488.632-1.525.056-2.313-.577-.786-1.537-1.029-2.146-.539-.607.489-.632 1.526-.056 2.312"/><path d="m9.394 17.863c-.22 1.538.492 2.925 1.586 3.096 1.096.17 2.161-.938 2.379-2.477.218-1.541-.494-2.927-1.59-3.096-1.094-.171-2.159.938-2.375 2.477"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C13.9,2,4,13.4,4,28.5V62h56V28.5c0-22.4-15.2-22-15.2-22S43.7,2,32,2z" fill="#ffb300"/><path d="m10.4 40.7c0 0-4.4-1.1-4.4-7.5 0-5.1 3.3-5.9 3.3-5.9 30.2-.1 38.7-6.3 38.7-6.3s1.9 6.2 6.6 6.2c0 0 3.4.6 3.4 5.9 0 6.4-4.5 7.5-4.5 7.5-.1 9.7-13.4 21.4-21.5 21.4-8.1 0-21.6-11.7-21.6-21.3" fill="#ffdd67"/><path d="m32 47c-4.2 0-6.3-3-4.2-3s6.3 0 8.4 0c2.1 0 0 3-4.2 3" fill="#eba352"/><path d="m38.3 38.2c-1.5 0-1.3-1.8-1.3-1.8 2.2-11.5 15-5.4 15-5.4 1 2-2.3 6.9-3.2 7.2-4.2 1-10.5 0-10.5 0" fill="#f5f5f5"/><path d="m48.5 33.5c0 2.5-2 4.5-4.5 4.5-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5 2.5 0 4.5 2 4.5 4.5" fill="#6235a8"/><circle cx="44" cy="33.5" r="1.5" fill="#2b2925"/><path d="m37 36.3c2.2-13.7 13.5-4.6 18-6.5-4.5 4.3-13.5-4.9-18 6.5" fill="#3b3226"/><path d="m25.7 38.2c1.5 0 1.3-1.8 1.3-1.8-2.2-11.5-15-5.4-15-5.4-1 2 2.3 6.9 3.2 7.2 4.2 1 10.5 0 10.5 0" fill="#f5f5f5"/><path d="m15.5 33.5c0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-2.5-2-4.5-4.5-4.5-2.5 0-4.5 2-4.5 4.5" fill="#6235a8"/><path d="m27 36.3c-2.2-13.7-13.5-4.6-18-6.5 4.5 4.3 13.5-4.9 18 6.5" fill="#3b3226"/><path d="M32,52l-10-1.5c6,8.5,14,8.5,20,0L32,52z" fill="#f085a9"/><path d="m35.9 50.1c-2.9-1.1-3.9.7-3.9.7s-1-1.8-3.9-.7c-2.3.9-6.1.4-6.1.4 4 .9 4.5 2.5 10 2.5s6-1.7 10-2.5c0 0-3.8.5-6.1-.4" fill="#d46c8f"/><circle cx="20" cy="33.5" r="1.5" fill="#2b2925"/><path d="m57.9 14.3c-.8-.4-1.9-.1-2.5.7-.2-.9-.7-1.6-1.3-2.1.6 0 .8-.3.6-.7-.2-.7-.5-1.5-1.9-2.5 0-1.6-1.2-3.1-1.2-3.1-.2-.2-.6-.2-.8.1 0 .1-.9 1.6-.5 3.3-1.5 1.3-1.4 2.7-1.3 3-.2 0-1.7 1-2.1 2.9-.8 0-1.3.6-1.3.6.3-2.2-1.4-4.4-4-4.3-.7-3.9-5.1-5.2-5.9-1.4-.5-1-1.6-1.8-1.6-1.8.4-1.9-1.2-5-2.1-5s-2.4 3.1-2.1 5c0 0-1.1.8-1.7 1.7-.8-3.8-5.3-2.5-5.9 1.4-2.6-.1-4.3 2-4 4.3 0 0-.5-.5-1.3-.6-.4-1.9-1.8-2.9-2.1-2.9.1-.2.2-1.7-1.3-3 .4-1.7-.5-3.2-.5-3.3-.2-.3-.6-.3-.8-.1 0 0-1.2 1.5-1.2 3.1-1.4.9-1.7 1.7-1.9 2.5-.1.4.1.8.6.7-.6.5-1 1.2-1.3 2.1-.5-.7-1.6-1-2.5-.6-1 .5-1.3 1.8-.8 2.9.6 1.4 2.4 1.5 3.3.5.4 2.2 2.7 3.1 4.5 1.6-.3 1 1.4 1 3.2-.6.6.4 1.7.3 2.1.1-.1 1.2.5 3.1 2.6 3.1 1.4 0 2-1 1.9-1.8.8.3 2.3.6 3.4-.1 2.1 1.8 3.6 2.1 3.7 1 .6.5 1.4.8 2.1.8.8 0 1.5-.3 2.2-.8.1 1 1.6.8 3.7-1 1.1.7 2.5.5 3.4.1-.2.9.4 1.9 1.8 1.9 2 0 2.6-1.9 2.6-3.1.4.2 1.5.2 2.1-.1 1.9 1.6 3.5 1.5 3.2.6 1.8 1.5 4.1.6 4.5-1.6.9 1 2.7.9 3.3-.5.5-1.2.1-2.4-.9-3m-47.5-2.4c.2-.7.9-1.1.9-1.1l.2.8c-.1 0-.6.4-1.1.3m2.3-2.6h-.6c0 0 .1-.9.5-1.3.2.6.1 1.3.1 1.3m.1 2.5l.4-.8c0 0 .5.5.6 1.3-.5 0-1-.5-1-.5m.8 1.5c.2 0 .7.1.7.1s-.2.3-.3.8c0-.2-.3-.8-.4-.9m.5 5.8c.2-.9.7-1.5.7-1.5l.7.7c-.1-.1-.7.6-1.4.8m1-3.1c0 0-.2-.9 0-1.7.6.5.9 1.4.9 1.4l-.9.3m1.7 1.8l.2-.9c0 0 .8.2 1.3.9-.6.3-1.5 0-1.5 0m22.2-2.5c-.5-1.1.1-2 2-2.1.8 3.3-1.6 2.9-2 2.1m-7-9.9c.5 0 1.1 2.5 1 3.4h-2c-.1-.9.5-3.4 1-3.4m-9 7.9c1.9.1 2.5 1 2 2.1-.4.7-2.8 1.1-2-2.1m-2.8 3.6c-.3.3-1 0-1-1.4 1.3.4 1.3 1.1 1 1.4m2.4 2.1c-.3-1-1-1.4-1.4-1.6.7-1.1.1-2.3-1.8-2.8.9-1.1 1.5-1.5 2.5-1.5-.7 3.1 1 4.6 3.2 3.3 0 .2 0 .3 0 .5-1 .3-1.8 1.1-2.5 2.1m1 .3c.3-.7 1.6-1.4 1.6-1.4l.4 1.2c0 .1-1 .5-2 .2m2.4-4.7c-.1-1.1-.3-1.9-2.7-2.4.8-3.5 3.6-3.3 3.9-1.6.2 1.2-1.4 1.6-1-.1.2-.6-.7-.9-1-.3-.3.8-.4 3.1 2.1 2.1-.2.6-.5.9-.3 1.2-.2.2-.6.6-1 1.1m1.2.2c.4 1 .2 2.2.2 2.2l-1.2-.2c0-.1.3-1.2 1-2m-.2 4.6l.8-.9c0 0 .8.8 1 1.9-.9-.1-1.8-1-1.8-1m1.4-3.8c0-.8-.5-1.6-.5-1.6h1.3c0 0-.6.7-.8 1.6m-.3-2.6c.3-1.5 2.2-2.7 2.2-2.7l1 1.8c0 0-1.3 1-3.2.9m3.9-1.9c-.2-.3-.5-.7-.7-1.2.2 0 1.1 0 1.3 0-.1.5-.4.9-.6 1.2m.7 1l1-1.8c0 0 2 1.3 2.2 2.7-1.9.1-3.2-.9-3.2-.9m2.1 1.9h1.3c0 0-.4.8-.5 1.6-.2-.9-.8-1.6-.8-1.6m.4 6.4c.2-1.1 1-1.9 1-1.9l.8.9c0 0-.9.9-1.8 1m1.4-3.5c0 0-.2-1.1.2-2.2.7.8 1 1.9 1 1.9l-1.2.3m.4-3.3c.2-.3-.1-.7-.3-1.2 2.5 1.1 2.4-1.2 2.1-2.1-.2-.6-1.1-.3-1 .3.4 1.6-1.3 1.2-1 .1.3-1.7 3.2-1.9 3.9 1.6-2.4.4-2.6 1.3-2.7 2.4-.4-.6-.8-1-1-1.1m1.4 5.6l.4-1.2c0 0 1.3.6 1.6 1.4-1 .2-2-.2-2-.2m4.4-1.8c-.4.2-1.1.6-1.4 1.6-.6-1-1.4-1.8-2.5-2.1 0-.2 0-.3 0-.5 2.2 1.3 4-.2 3.2-3.3 1 0 1.7.4 2.5 1.5-1.9.5-2.5 1.7-1.8 2.8m1-.5c-.3-.3-.3-1 1-1.4 0 1.4-.7 1.7-1 1.4m1.9.9c.6-.8 1.3-.9 1.3-.9l.2.9c0 0-.9.3-1.5 0m3.2-3.5c.2.7 0 1.7 0 1.7l-.9-.3c.1 0 .3-.9.9-1.4m-.3 3.9l.7-.7c0 0 .5.7.7 1.5-.8-.1-1.4-.8-1.4-.8m1.3-4.1c-.1-.5-.3-.8-.3-.8s.5 0 .7-.1c0 .2-.3.8-.4.9m.3-1.8c.1-.8.6-1.3.6-1.3l.4.8c0 0-.5.5-1 .5m1.1-3c0 0-.1-.8.2-1.3.4.4.5 1.3.5 1.3h-.7m1.3 2.3l.2-.8c0 0 .6.4.9 1.1-.6.1-1.1-.3-1.1-.3" fill="#fff"/><g fill="#ff5760"><path d="m56.5 17.3c-.5-.3-.7-.9-.4-1.5.3-.6.9-.8 1.4-.5.5.3.7.9.4 1.5-.3.5-.9.8-1.4.5"/><path d="m44.5 20.4c-.6.8-1.5 1-2.1.5-.6-.5-.6-1.5-.1-2.3.6-.8 1.5-1 2.1-.5.7.5.7 1.6.1 2.3"/><path d="m54.6 15.9c.2 1.5-.5 2.9-1.6 3.1-1.1.2-2.2-.9-2.4-2.5-.2-1.5.5-2.9 1.6-3.1 1.1-.2 2.2.9 2.4 2.5"/><path d="m7.5 17.3c.5-.3.6-.9.4-1.5-.3-.5-.9-.8-1.4-.5-.5.3-.7.9-.4 1.5.3.5.9.8 1.4.5"/><ellipse cx="32" cy="17.2" rx="3" ry="3.8"/><path d="m19.5 20.4c.6.8 1.5 1 2.1.5.6-.5.6-1.5.1-2.3-.6-.8-1.5-1-2.1-.5-.7.5-.7 1.6-.1 2.3"/><path d="m9.4 15.9c-.2 1.5.5 2.9 1.6 3.1 1.1.2 2.2-.9 2.4-2.5.2-1.5-.5-2.9-1.6-3.1-1.1-.2-2.2.9-2.4 2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f479.svg b/build/js/jsxc/lib/emojione/assets/svg/1f479.svg
index 3e82935..4aa1df9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f479.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f479.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#454749" d="m57.813 37.443c0 0 2.832-1.906 4.188-3.628-1.041-.073-4.01-1.245-4.01-1.245s2.768-2.68 3.719-4.172c-1.137.107-2.217.199-3.279.268.965-.91 1.908-2.039 2.791-3.462-1.066.114-2.084.217-3.082.297 1.061-1.219 2.07-2.713 2.961-4.591-1.119.363-2.184.699-3.23 1.01.566-1.015 1.092-2.149 1.557-3.422-.74.383-1.453.747-2.156 1.1.596-1.302 1.125-2.749 1.547-4.385-.992.756-1.939 1.47-2.869 2.152.645-1.408 1.209-2.987 1.648-4.78-.973.768-1.902 1.495-2.816 2.189.48-1.473.877-3.083 1.137-4.862-1.176 1.264-2.283 2.44-3.381 3.562.291-1.353.506-2.797.609-4.347-.76 1.021-1.488 1.992-2.205 2.931.361-1.98.563-4.122.498-6.438-1.104 1.955-2.135 3.762-3.17 5.492.113-1.883.07-3.865-.217-5.939-.43 1.047-.844 2.047-1.254 3.03-.119-1.388-.334-2.804-.682-4.238-.596 2.026-1.158 3.914-1.729 5.743-.047-.819-.125-2.651-.248-3.501-.387.951-1.129 3.756-1.129 3.756s-.84-4.803-1.25-6.04c-.41 1.947-2.297 5.832-2.297 5.832s-.41-3.426-.885-5.186c-.418 1.562-.818 3.043-1.219 4.479-.143-.817-.318-2.641-.545-3.472-.236.884-.697 3.575-.697 3.575s-1.494-5.181-1.57-6.368c-.729 1.379-1.72 4.261-1.72 4.261s-1.017-4.221-1.076-5.04c-1.09 2.098-1.794 4.319-2.252 6.533-.214-.97-.428-1.955-.648-2.983-.227.688-.412 1.375-.576 2.061-.329-1.555-.654-3.158-.992-4.853-.592 1.73-.977 3.466-1.213 5.172-.23-.846-.464-1.706-.703-2.597-.473 1.753-.654 2.814-.789 4.497-.029-.093-.975-3.198-1.387-5.141-.41 1.23-.863 4.266-.863 4.266s-1.178-2.253-1.416-3c-.34 1.539-.709 4.229-.709 4.229s-1.762-3.437-2.355-5.454c-.348 1.428-.563 2.839-.682 4.221-.41-.978-.822-1.974-1.252-3.02-.286 2.067-.329 4.04-.215 5.917-1.034-1.723-2.063-3.521-3.164-5.47-.063 2.308.139 4.442.498 6.415-.716-.936-1.443-1.904-2.203-2.921.104 1.543.317 2.98.607 4.326-1.093-1.116-2.197-2.286-3.371-3.546.258 1.771.652 3.374 1.131 4.841-.911-.692-1.838-1.416-2.809-2.179.438 1.786 1 3.359 1.645 4.761-.928-.678-1.872-1.389-2.863-2.141.42 1.628.949 3.068 1.542 4.365-.702-.352-1.413-.714-2.152-1.096.465 1.269.989 2.398 1.553 3.409-1.043-.308-2.106-.644-3.223-1 .888 1.873 1.896 3.361 2.953 4.576-.996-.081-2.01-.182-3.074-.295.881 1.417 1.821 2.542 2.785 3.448-1.059-.068-2.138-.162-3.274-.269.949 1.488 4.194 4.387 4.194 4.387s-3.441.937-4.479 1.01c1.352 1.715 4.178 3.614 4.178 3.614s-3.341 1.624-3.985 1.913c1.415 1.113 4.146 2.02 4.146 2.02s-2.271 1.33-3.497 2c.932.635 3.48 1.751 3.48 1.751s-2.441 1.41-3.761 2.121c1.097.745 3.987 2.392 3.987 2.392s-1.96 1.098-3.01 1.654c1.019.684 2.919 2.485 2.919 2.485s-1.721 2.05-2.652 3.109c1.214.286 5.549.852 5.549.852s-1.197 2.079-1.841 3.157c1.996-.03 5.074-1.944 5.074-1.944s-.661 1.476-1.012 2.241c1.402-.266 3.656-1.742 3.656-1.742s-.135 1.262-.207 1.91c5.955-.857 18.33-12.398 18.33-12.398s11.438 10.604 19.05 11.682c-.352-.768-.684-1.509-1.014-2.25 1.418 1.117 3.086 1.92 5.082 1.951-.645-1.082-1.844-4.168-1.844-4.168s4.344.432 5.561.146c-.934-1.062-3.727-3.241-3.727-3.241s2.973-1.689 3.992-2.375c-1.051-.559-3.01-1.66-3.01-1.66s2.896-1.652 3.996-2.399c-1.324-.712-3.77-2.129-3.77-2.129s2.553-1.121 3.486-1.759c-1.227-.674-2.373-1.329-3.502-2.01 1.34-.297 2.736-.908 4.152-2.027-.643-.293-3.988-1.922-3.988-1.922"/><path fill="#f46767" d="m54.701 38.929c0 6.242-6.24 9.713-6.24 17.06 0 10.188-11.143 1.744-16.458 1.744-5.383 0-16.748 8.371-16.748-1.972 0-7.115-5.953-10.723-5.953-16.828 0-2.875 3.063-6.455 3.182-8.77.223-4.257-2.613-6.614-2.426-9.246 1.041-14.701 5.771-6.784 21.945-6.784 16.207 0 20.908-7.95 21.951 6.88.184 2.617-2.654 4.944-2.436 9.15.121 2.315 3.183 5.895 3.183 8.77"/><g fill="#ffce31"><path d="m21.958 13.325c-4.443-2.348-7.389-8.265-7.389-8.265.039.18-4.854 16.703 6.168 16.938 3.549.083 6.349-5.964 1.221-8.673"/><path d="m42.04 13.325c4.441-2.348 7.389-8.265 7.389-8.265-.037.176 4.844 16.707-6.168 16.938-3.551.083-6.352-5.963-1.221-8.673"/></g><path fill="#bc2e2e" d="m36.623 38.3c-.125 0-.242.02-.363.032-.338-1.467-1.227-2.202-2.387-2.534.506-.081.939-.199 1.225-.354.75-.409.682-2.138 0-2.598-.084-.057-.191-.107-.309-.156.115-.051.221-.105.309-.166.75-.512-.445-2.676-1.127-3.248-1.095-.926-2.843-.926-3.941 0-.682.572-1.875 2.736-1.127 3.248.088.061.195.115.309.166-.117.049-.223.1-.309.156-.68.46-.748 2.188 0 2.598.285.155.719.273 1.225.354-1.16.332-2.049 1.067-2.387 2.534-.121-.013-.238-.032-.363-.032-1.729 0-3.127 1.231-3.127 2.75 0 1.517 1.398 1.715 3.127 1.715.598 0 1.283.347 1.625.623.893.728 1.838 1.375 2.998 1.375 1.162 0 2.105-.647 2.998-1.375.342-.276 1.027-.623 1.625-.623 1.727 0 3.127-.198 3.127-1.715-.001-1.519-1.401-2.75-3.128-2.75"/><path fill="#454749" d="m24.936 45.16c-2.855 2.954-10.59-8.632-11.955-6.31-3.441 5.854 3.52 8.46 3.52 13.364-.008 10.916 6.848 3.084 15.5 3.084 8.652 0 15.5 7.867 15.5-3.041 0-5.01 6.961-7.382 3.52-13.399-1.352-2.363-9.04 9.247-11.889 6.302-1.976-2.043-4.03 1.414-7.132 1.414-3.082 0-4.937-3.612-7.06-1.414"/><g fill="#fff"><path d="m21.14 55.04c-.502-.329-4.08-4.466-4.582-4.137-.463.303 1.578 5.731 2 6.072.457.37 2.127.37 2.582 0 .422-.34.465-1.631 0-1.935"/><path d="m42.861 55.04c.502-.329 4.08-4.466 4.582-4.137.463.303-1.578 5.731-2 6.072-.457.37-2.127.37-2.582 0-.422-.34-.465-1.631 0-1.935"/><path d="m31.32 49.38c-.502.329-2.08.329-2.582 0-.463-.303-.422-1.593 0-1.935.457-.371 2.127-.371 2.582 0 .422.342.465 1.632 0 1.935"/><path d="m27.387 48.34c-.502.329-2.08.329-2.582 0-.463-.304-.422-1.593 0-1.935.457-.371 2.127-.371 2.582 0 .422.342.465 1.631 0 1.935"/><path d="m35.26 49.38c-.502.329-2.08.329-2.582 0-.463-.303-.422-1.593 0-1.935.457-.371 2.126-.371 2.582 0 .422.342.465 1.632 0 1.935"/><path d="m39.19 48.34c-.502.329-2.08.329-2.582 0-.463-.304-.422-1.593 0-1.935.457-.371 2.127-.371 2.582 0 .422.342.465 1.631 0 1.935"/><path d="m23.442 48.15c-.502.329-4.08 4.467-4.582 4.138-.465-.303 1.578-5.731 2-6.073.455-.369 2.125-.369 2.582 0 .422.342.463 1.633 0 1.935"/><path d="m40.559 48.15c.502.329 4.08 4.467 4.582 4.138.463-.303-1.578-5.731-2-6.073-.457-.369-2.127-.369-2.582 0-.422.342-.465 1.633 0 1.935"/><path d="m48.05 44.637c.734-.08 7.291 1.092 7.537.372.229-.663-5.779-4.311-6.443-4.307-.719.003-2.352 1.332-2.523 2.054-.161.667.753 1.955 1.429 1.881"/><path d="m15.95 44.637c-.734-.08-7.289 1.092-7.537.372-.229-.663 5.779-4.311 6.443-4.307.719.003 2.352 1.332 2.525 2.054.159.667-.756 1.955-1.431 1.881"/><path d="m41.31 55.721c-.502.329-2.08.329-2.582 0-.463-.304-.422-1.594 0-1.935.457-.371 2.127-.371 2.582 0 .421.341.464 1.631 0 1.935"/><path d="m25.27 55.721c-.502.329-2.08.329-2.582 0-.465-.304-.422-1.594 0-1.935.455-.371 2.125-.371 2.582 0 .422.341.463 1.631 0 1.935"/></g><path fill="#bc2e2e" d="m36.656 54.06c-1.656.954-7.474.856-9.279 0-.871-.414-.061-2.17.73-2.636 1.641-.963 6.175-.963 7.816 0 .794.466 1.532 2.174.733 2.636"/><path fill="#fff" d="m27.481 31.13c0 3.427-2.688 4.137-6 4.137s-6-.71-6-4.137c0-3.428 2.688-6.207 6-6.207s6 2.779 6 6.207"/><ellipse fill="#454749" cx="21.481" cy="31.13" rx="2.5" ry="2.585"/><path fill="#fff" d="m48.52 31.13c0 3.427-2.686 4.137-5.998 4.137s-6-.71-6-4.137c0-3.428 2.689-6.207 6-6.207s5.998 2.779 5.998 6.207"/><g fill="#454749"><ellipse cx="42.52" cy="31.13" rx="2.5" ry="2.585"/><path d="m21.16 29.21c-5.555-4.17-12.11-6.626-12.11-6.626 10.406-2.159 16.807 2.188 18.92 4.777 2.829 3.467-.403 6.663-6.815 1.849"/><path d="m42.844 29.21c5.555-4.17 12.1-6.626 12.1-6.626-10.406-2.159-16.807 2.188-18.92 4.777-2.828 3.467.405 6.663 6.815 1.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58 21.2c3.9-2.6 4-6.4 4-6.4-3.9-.2-3.8-4.2-7.4-7.8-6.9-7-20.5-4.7-22.6-1.5-2.1-3.2-15.7-5.5-22.6 1.5-3.6 3.7-3.5 7.7-7.4 7.8 0 0 .1 3.8 4 6.4 0 0-4.1 5.9-3.4 14.1 0 0 1.6-4 5.5-4.7-4.5 3.8-.9 14.4-4.2 18.2 0 0 4.6-2 6.5-3.3-.7 5.9.9 8.2.9 11.1 4.1-1.3 5.7-7.4 5.7-7.4 0 7.5 2.6 7.2 2.6 11.2 0 0 5.5-2.7 7.4-6.5.7 3.5 3.3 5.9 5.2 8.1 1.9-2.2 4.4-4.6 5.2-8.1 1.9 3.7 7.4 6.5 7.4 6.5 0-4 2.6-3.7 2.6-11.2 0 0 1.6 6 5.7 7.4 0-2.9 1.6-5.2.9-11.1 1.9 1.3 6.5 3.3 6.5 3.3-3.3-3.9.3-14.5-4.2-18.2 3.8.8 5.5 4.7 5.5 4.7.3-8.3-3.8-14.1-3.8-14.1" fill="#454749"/><path d="m52.1 31.9c0 5.5-5.5 8.6-5.5 15.1 0 9-9.9 1.5-14.5 1.5-4.8 0-14.8 7.4-14.8-1.7 0-6.3-5.3-9.5-5.3-14.9 0-2.5 2.7-5.7 2.8-7.8.2-3.8-2.3-7.8-2.1-10.2.8-12.9 19.3 6.1 19.3 6.1s18.5-19 19.4-5.9c.2 2.3-2.3 6.4-2.2 10.1.2 2 2.9 5.2 2.9 7.7" fill="#f46767"/><g fill="#ffce31"><path d="m23.1 9.3c-3.9-2.1-6.5-7.3-6.5-7.3s-4.3 14.8 5.4 15c3.2 0 5.7-5.3 1.1-7.7"/><path d="m40.9 9.3c3.9-2.1 6.5-7.3 6.5-7.3s4.3 14.8-5.5 15c-3.1 0-5.6-5.3-1-7.7"/></g><path d="m15.2 31.9c-3 5.2 3.1 7.5 3.1 11.8 0 9.6 6.1 2.7 13.7 2.7 7.6 0 13.7 7 13.7-2.7 0-4.4 6.2-6.5 3.1-11.8-2.7-4.8-1.9 5.8-16.8 5.8-15 0-14-10.6-16.8-5.8" fill="#454749"/><g fill="#fff"><path d="m17.4 32.8c-.3 0-.6.1-.9.2l-.2.1c-5.9 3.2-7 3.8-6.7 4.7.1.6.9.6 1.3.6 1.2 0 3.5-.4 7-.9 1.1-.2 1.8-1.1 1.7-2.3-.3-1.2-1.1-2.4-2.2-2.4"/><path d="m47.7 33.2l-.2-.1c-.3-.2-.6-.2-.9-.2-1.2 0-1.9 1.2-2 2.3-.1 1.2.5 2.1 1.7 2.3 3.5.6 5.8.9 7 .9.4 0 1.1 0 1.2-.6.2-.8-.9-1.4-6.8-4.6"/><path d="m42 44.9c-2 1.2.8 4.6 2.4 2.8 7.4-8.6 6.3-7.9-2.4-2.8"/><path d="m19.6 47.7c1.6 1.9 4.5-1.6 2.4-2.8-8.7-5.1-9.7-5.8-2.4 2.8"/><path d="m24.6 38.8c1.5-1.3-2.4-3-3.2-1.3-4 7.7-3.2 7 3.2 1.3"/><path d="m42.6 37.5c-.9-1.7-4.7 0-3.2 1.3 6.4 5.7 7.2 6.4 3.2-1.3"/><path d="m40.4 46.2c-.6.4-2.6.4-3.2 0-.6-.4-.5-2 0-2.5.6-.5 2.6-.5 3.2 0 .5.4.6 2.1 0 2.5"/><path d="m26.8 46.2c-.6.4-2.6.4-3.2 0-.6-.4-.5-2 0-2.5.6-.5 2.6-.5 3.2 0 .5.4.6 2.1 0 2.5"/></g><path d="m35.7 45.3c-1.3.8-6 .8-7.4 0-.7-.4 0-1.9.6-2.3 1.3-.8 4.9-.8 6.3 0 .6.4 1.2 1.9.5 2.3" fill="#bc2e2e"/><g fill="#fff"><path d="m26.3 37.9c2.2.9 9 1 11.4 0 1.2-.2 1 1.3 0 2-1.9 1.9-9.5 1.9-11.3 0-1.1-.7-1.2-2.1-.1-2"/><path d="m28 25c0 4.8-10.6 4.8-10.6 0 0-6.5 10.6-6.5 10.6 0"/></g><path d="m24.9 25c0 2.9-4.4 2.9-4.4 0 0-2.9 4.4-2.9 4.4 0" fill="#454749"/><path d="m46.6 25c0 4.8-10.6 4.8-10.6 0 0-6.5 10.6-6.5 10.6 0" fill="#fff"/><g fill="#454749"><path d="m43.5 25c0 2.9-4.4 2.9-4.4 0 0-2.9 4.4-2.9 4.4 0"/><path d="m11.7 17.5c0 0 5.8 2.2 10.7 5.9 5.7 4.3 8.5 1.4 6-1.6-1.8-2.4-7.5-6.2-16.7-4.3"/><path d="m35.6 21.7c-2.5 3.1.4 5.9 6 1.6 4.9-3.7 10.7-5.9 10.7-5.9-9.2-1.8-14.9 2-16.7 4.3"/></g><path d="m35.9 31.4c-.3-1.3-1.2-6.1-1.2-7.2.2-3.8-5.6-3.8-5.4 0 .1 1.1-.9 5.9-1.2 7.2-3.3-.3-5.1 3.9-.3 3.9 1.9 0 2.3 1.7 4.2 1.7s2.3-1.7 4.2-1.7c4.7 0 2.9-4.2-.3-3.9" fill="#bc2e2e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47a.svg
index 2eb8805..a20c6c4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f46767" d="m46.11 11.389c8.32 0 9.373 3.347 1.334 11.555-2.777 2.836-1.111 6.744.451 9.09 1.563 2.343 4.486 4.746-.451 8.816-2.877 2.371-3.314 5.313 0 11.826 3.293 6.474-8.295 3.571-17.979 6.361-12.85 3.702-16.05 7.375-17.51-11.835-.871-11.491-2.635-7.08-6.01-16.73-1.785-5.098.334-8.223 5.131-10.08 4.045-1.563-8.367-9.115-.891-15.81 9.528-8.531 23.01 6.807 35.929 6.807"/><ellipse fill="#fff" cx="41.58" cy="25.594" rx="4.01" ry="3.927"/><ellipse fill="#454749" cx="40.25" cy="25.594" rx="1.671" ry="1.637"/><ellipse fill="#fff" cx="23.13" cy="22.979" rx="6.339" ry="6.207"/><g fill="#454749"><ellipse cx="21.03" cy="22.979" rx="2.641" ry="2.586"/><g stroke="#454749" stroke-linejoin="round" stroke-linecap="round" stroke-width="3" stroke-miterlimit="10"><path d="m15.745 14.651l.135-.058.137-.05.273-.096c.182-.059.363-.111.551-.156.371-.094.748-.161 1.125-.213.76-.099 1.525-.115 2.295-.059 1.533.113 3.061.523 4.455 1.197 1.398.67 2.658 1.598 3.695 2.702.518.555.979 1.151 1.371 1.79.195.32.377.648.535.989.08.169.152.343.223.517l.096.268.047.133.041.139-.129.102c-.459-.536-.939-1.051-1.447-1.542-.502-.493-1.027-.964-1.58-1.403-1.1-.879-2.293-1.648-3.572-2.253-1.273-.618-2.625-1.071-4.01-1.372-.693-.153-1.398-.266-2.105-.342-.705-.08-1.42-.123-2.133-.133v-.16z"/><path d="m47.45 19.647l-.088-.045-.09-.039-.182-.077c-.119-.046-.242-.089-.363-.124-.246-.074-.492-.128-.742-.168-.502-.079-1.01-.092-1.516-.048-1.014.091-2.02.417-2.943.951-.922.533-1.754 1.269-2.439 2.147-.34.439-.646.914-.906 1.422-.129.254-.248.514-.352.785-.053.135-.102.273-.148.411l-.063.212-.029.106-.027.11.084.08c.303-.426.621-.835.955-1.225.332-.393.68-.767 1.045-1.115.727-.699 1.514-1.309 2.357-1.789.84-.492 1.732-.852 2.648-1.091.459-.122.922-.21 1.391-.271.467-.064.938-.1 1.408-.107v-.125z"/><path d="m46.28 34.37l-.027.079-.035.076-.068.152c-.049.099-.1.196-.156.291-.111.189-.234.371-.367.545-.268.349-.576.664-.918.947-.682.566-1.492 1-2.369 1.264-.873.266-1.809.365-2.73.295-.461-.037-.92-.114-1.367-.238-.225-.063-.445-.134-.664-.221-.109-.041-.219-.09-.324-.139l-.16-.079-.08-.04-.078-.045.008-.096c.43.053.857.086 1.287.098.43.016.855.012 1.279-.017.848-.056 1.684-.196 2.48-.443.801-.239 1.561-.583 2.266-1.01.354-.211.693-.445 1.018-.695.326-.248.639-.516.938-.799l.067.072z"/><path d="m10.959 28.375l.086.182.098.178.191.354c.135.23.275.459.424.682.295.447.617.879.955 1.3.686.839 1.451 1.616 2.277 2.336 1.652 1.431 3.557 2.606 5.555 3.427 1.996.825 4.076 1.299 6.084 1.398 1.01.045 1.988.002 2.941-.146.477-.077.943-.173 1.398-.304.229-.063.453-.137.674-.215l.33-.131.16-.066.162-.076-.041-.212c-.93-.005-1.863-.049-2.805-.14-.936-.084-1.875-.211-2.816-.389-1.877-.354-3.754-.895-5.574-1.656-1.824-.745-3.586-1.71-5.254-2.836-.834-.561-1.645-1.17-2.43-1.81-.787-.635-1.545-1.308-2.277-2.01l-.138.135z"/></g></g><path fill="#c94747" d="m32.667 23.54c.152-2.686 2.081 4.502 5.415 5.981 5.92 2.628 10.152-2.663 14.951-4.149s8.104 7.51 3.307 9.407c-4.799 1.897-19.967 2.488-23.02-2.043-2.168-3.214-5.891-.3-2.125 1.082 1.58.579-6.471.815-4.268-3.683 1.45-2.965 5.5-2.344 5.743-6.595"/><path fill="#454749" stroke="#454749" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="m43.481 45.864c-.016-2.078-2.131-3.625-9.506-4.336-7.352-.707-13.594 2.705-13.557 7.705.055 7.893 7.121.127 13.13-.744 6.655-.964 9.948-.549 9.934-2.625z"/><g fill="#ffce31"><path d="m20.418 49.23c.025 3.592 1.502 3.94 3.672 3.171l-1.178-8.124c-1.574 1.314-2.507 3.01-2.494 4.953"/><path d="m23.6 43.757l1.211 8.364c.947-.403 1.994-.955 3.094-1.511l-1.211-8.354c-1.16.382-2.207.889-3.094 1.501"/><path d="m27.422 42.03l1.191 8.22c1.02-.502 2.074-.98 3.119-1.324l-1.078-7.443c-1.136.083-2.22.271-3.232.547"/><path d="m33.976 41.528c-.873-.084-1.731-.107-2.565-.08l1.053 7.266c.365-.096.727-.173 1.084-.225.764-.111 1.479-.202 2.154-.282l-.957-6.599c-.25-.027-.506-.054-.769-.08"/><path d="m35.521 41.7l.932 6.42c1.256-.141 2.342-.242 3.26-.349l-.793-5.476c-.948-.23-2.073-.428-3.399-.595"/><path d="m43.481 45.864c-.01-1.387-.957-2.535-3.77-3.357l.748 5.17c2.024-.28 3.03-.664 3.02-1.813"/></g><path fill="#454749" d="m38.825 58.34c4.895.498 9.115 3.664 9.115 3.664-2.885-11.376-8.236-12.427-10.73-11.565-3.34 1.152-4.03 7.328 1.615 7.901"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46.1 11.4c8.3 0 9.4 3.3 1.3 11.6-2.8 2.8-1.1 6.7.5 9.1 1.6 2.3 4.5 4.7-.5 8.8-2.9 2.4-3.3 5.3 0 11.8 3.3 6.5-8.3 3.6-18 6.4-12.8 3.6-16 7.3-17.4-11.9-.9-11.5-2.6-7.1-6-16.7-1.8-5.1.3-8.2 5.1-10.1 4-1.6-8.4-9.1-.9-15.8 9.5-8.5 23 6.8 35.9 6.8" fill="#f46767"/><ellipse cx="41.6" cy="25.6" rx="4" ry="3.9" fill="#fff"/><ellipse cx="40.3" cy="25.6" rx="1.7" ry="1.6" fill="#454749"/><ellipse cx="23.1" cy="23" rx="6.3" ry="6.2" fill="#fff"/><g fill="#454749"><ellipse cx="21" cy="23" rx="2.6" ry="2.6"/><g stroke="#454749" stroke-linejoin="round" stroke-linecap="round" stroke-width="3" stroke-miterlimit="10"><path d="m15.7 14.7l.1-.1.1-.1.3-.1c.2-.1.4-.1.6-.2.4-.1.7-.2 1.1-.2.8-.1 1.5-.1 2.3-.1 1.5.1 3.1.5 4.5 1.2 1.4.7 2.7 1.6 3.7 2.7.5.6 1 1.2 1.4 1.8.2.3.4.6.5 1 .1.2.2.3.2.5l.1.3v.1.1l-.1.1c-.5-.5-.9-1.1-1.4-1.5-.5-.5-1-1-1.6-1.4-1.1-.9-2.3-1.6-3.6-2.3-1.3-.6-2.6-1.1-4-1.4-.7-.2-1.4-.3-2.1-.3-.7-.1-1.4-.1-2.1-.1z"/><path d="m47.4 19.6l-.2-.1-.2-.1c-.1 0-.2-.1-.4-.1-.2-.1-.5-.1-.7-.2-.5-.1-1-.1-1.5 0-1 .1-2 .4-2.9 1-.9.5-1.8 1.3-2.4 2.1-.3.4-.6.9-.9 1.4-.1.3-.2.5-.4.8-.1.1-.1.3-.1.4l-.1.2v.1.1l.1.1c.3-.4.6-.8 1-1.2.3-.4.7-.8 1-1.1.7-.7 1.5-1.3 2.4-1.8.8-.5 1.7-.9 2.6-1.1.5-.1.9-.2 1.4-.3.5-.1.9-.1 1.4-.1v-.1z"/><path d="m46.3 34.4l-.1.2-.1.2c0 .1-.1.2-.2.3-.1.2-.2.4-.4.5-.3.3-.6.7-.9.9-.7.6-1.5 1-2.4 1.3-.9.3-1.8.4-2.7.3-.5 0-.9-.1-1.4-.2-.2-.1-.4-.1-.7-.2-.1 0-.2-.1-.3-.1l-.2-.1h-.1-.1v-.1c.4.1.9.1 1.3.1.4 0 .9 0 1.3 0 .8-.1 1.7-.2 2.5-.4.8-.2 1.6-.6 2.3-1 .4-.2.7-.4 1-.7.5-.6.8-.8 1.2-1z"/><path d="m11 28.4l.1.2.1.2.2.4c.1.2.3.5.4.7.3.4.6.9 1 1.3.7.8 1.5 1.6 2.3 2.3 1.7 1.4 3.6 2.6 5.6 3.4 2 .8 4.1 1.3 6.1 1.4 1 0 2 0 2.9-.1.5-.1.9-.2 1.4-.3.2-.1.5-.1.7-.2l.3-.1.2-.1.2-.1v-.2c-.9 0-1.9 0-2.8-.1-.9-.1-1.9-.2-2.8-.4-1.9-.4-3.8-.9-5.6-1.7-1.8-.7-3.6-1.7-5.3-2.8-.8-.6-1.6-1.2-2.4-1.8-.8-.6-1.5-1.3-2.3-2h-.3z"/></g></g><path d="m32.7 23.5c.2-2.7 2.1 4.5 5.4 6 5.9 2.6 10.2-2.7 15-4.1s8.1 7.5 3.3 9.4c-4.8 1.9-20 2.5-23-2-2.2-3.2-5.9-.3-2.1 1.1 1.6.6-6.5.8-4.3-3.7 1.4-3 5.4-2.4 5.7-6.7" fill="#c94747"/><path d="m43.5 45.9c0-2.1-2.1-3.6-9.5-4.3-7.4-.7-13.6 2.7-13.6 7.7.1 7.9 7.1.1 13.1-.7 6.7-1.1 10-.7 10-2.7z" fill="#454749" stroke="#454749" stroke-linejoin="round" stroke-linecap="round" stroke-width="3" stroke-miterlimit="10"/><g fill="#ffce31"><path d="m20.4 49.2c0 3.6 1.5 3.9 3.7 3.2l-1.2-8.1c-1.6 1.3-2.5 3-2.5 4.9"/><path d="m23.6 43.8l1.2 8.4c.9-.4 2-1 3.1-1.5l-1.2-8.4c-1.2.3-2.2.8-3.1 1.5"/><path d="m27.4 42l1.2 8.2c1-.5 2.1-1 3.1-1.3l-1.1-7.4c-1.1.1-2.2.3-3.2.5"/><path d="m34 41.5c-.9-.1-1.7-.1-2.6-.1l1.1 7.3c.4-.1.7-.2 1.1-.2.8-.1 1.5-.2 2.2-.3l-1-6.6c-.3 0-.6 0-.8-.1"/><path d="m35.5 41.7l.9 6.4c1.3-.1 2.3-.2 3.3-.3l-.8-5.5c-.9-.2-2.1-.4-3.4-.6"/><path d="m43.5 45.9c0-1.4-1-2.5-3.8-3.4l.7 5.2c2.1-.3 3.1-.7 3.1-1.8"/></g><path d="m38.8 58.3c4.9.5 9.1 3.7 9.1 3.7-2.9-11.4-8.2-12.4-10.7-11.6-3.3 1.2-4 7.4 1.6 7.9" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47b.svg
index 6ebdf14..37f0680 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#6adbc6" d="m31.999 2.998c-11.51 0-21.248 11.454-20.594 24.05.178 3.421.928 28.946 3.902 33.05 2.363 3.262 5.297-3.398 9.1-3.398 3.799 0 3.799 4.191 7.598 4.191 3.795 0 3.795-4.191 7.596-4.191 3.797 0 6.732 6.66 9.09 3.398 2.975-4.112 3.727-29.627 3.902-33.05.654-12.599-9.08-24.05-20.594-24.05"/><path fill="#50ffdd" d="m47.23 61.998c-1.314 0-2.497-1.013-3.748-2.085-1.271-1.088-2.583-2.213-3.883-2.213-1.458 0-2.165.78-3.061 1.769-.979 1.079-2.195 2.423-4.535 2.423-2.343 0-3.561-1.344-4.54-2.424-.896-.987-1.602-1.768-3.058-1.768-1.302 0-2.615 1.125-3.886 2.213-1.252 1.072-2.435 2.085-3.749 2.085-.877 0-1.642-.441-2.272-1.313-1.946-2.683-3.223-12.829-4.02-31.932-.03-.744-.054-1.309-.072-1.651-.351-6.754 2.138-13.46 6.826-18.398 4.105-4.324 9.35-6.706 14.767-6.706s10.662 2.382 14.768 6.706c4.688 4.938 7.177 11.645 6.826 18.398-.017.336-.04.886-.07 1.609-.794 19.12-2.072 29.28-4.02 31.974-.631.871-1.395 1.313-2.272 1.313m-7.63-6.298c2.039 0 3.71 1.431 5.184 2.693.878.752 1.872 1.604 2.447 1.604.074 0 .3 0 .65-.485 1.143-1.579 2.702-8.22 3.645-30.884.029-.732.052-1.289.069-1.63.323-6.209-1.966-12.375-6.278-16.918-3.725-3.923-8.454-6.083-13.316-6.083s-9.592 2.16-13.316 6.083c-4.313 4.543-6.602 10.709-6.278 16.918.017.347.042.919.073 1.671.943 22.645 2.5 29.27 3.64 30.842.353.486.579.486.653.486.575 0 1.57-.853 2.447-1.604 1.476-1.263 3.146-2.693 5.188-2.693 2.343 0 3.561 1.344 4.54 2.424.895.987 1.602 1.768 3.058 1.768 1.453 0 2.159-.779 3.054-1.766.976-1.081 2.195-2.426 4.54-2.426"/><path fill="#6adbc6" d="m48.78 34.21c10.826 2.559 8.715-3.09 11.447.094 2.496 2.905-.953 9.09-12.06 11.489"/><path fill="#50ffdd" d="m48.16 46.791c-.461 0-.875-.32-.977-.789-.116-.54.227-1.072.767-1.188 7.479-1.615 11.06-4.949 11.855-7.313.237-.705.37-1.72-.341-2.547-.313-.364-.497-.532-.597-.61-.077.048-.176.115-.256.17-1.158.792-3.313 2.262-10.07.669-.537-.128-.87-.666-.743-1.204.128-.537.662-.868 1.204-.743 5.891 1.395 7.573.245 8.478-.373 1.348-.92 2.196-.727 3.499.789 1.031 1.201 1.287 2.795.719 4.486-1.01 2.999-5.04 6.841-13.33 8.632-.071.014-.142.021-.212.021"/><path fill="#6adbc6" d="m15.253 34.17c-10.854 2.598-8.727-3.061-11.475.14-2.512 2.922.928 9.11 12.05 11.481"/><path fill="#50ffdd" d="m15.832 46.791c-.069 0-.139-.007-.209-.021-7.04-1.5-12.02-4.713-13.328-8.594-.567-1.677-.302-3.323.724-4.519 1.309-1.522 2.16-1.714 3.507-.802.904.614 2.587 1.755 8.495.342.539-.127 1.076.203 1.205.74s-.203 1.076-.74 1.205c-6.765 1.619-8.924.154-10.08-.631-.08-.055-.181-.123-.258-.17-.1.076-.288.247-.607.619-.724.84-.588 1.864-.349 2.576.798 2.361 4.379 5.684 11.851 7.275.54.115.885.646.771 1.187-.102.472-.517.793-.979.793"/><ellipse fill="#fff" cx="41.41" cy="24.311" rx="6.067" ry="6.851"/><ellipse fill="#308776" cx="41.4" cy="24.307" rx="3.983" ry="4.501"/><path fill="#fff" d="m33.513 22.283c0 5.05-3.805 9.132-8.494 9.132-4.691 0-8.49-4.087-8.49-9.132 0-5.05 3.799-9.143 8.49-9.143 4.689.001 8.494 4.094 8.494 9.143"/><g fill="#308776"><path d="m30.597 22.277c0 3.314-2.498 6-5.578 6s-5.576-2.686-5.576-6c0-3.317 2.496-6 5.576-6s5.578 2.683 5.578 6"/><path d="m44.792 35.36c0 4.386-5.41 8.126-12.08 8.126-6.672 0-12.08-3.74-12.08-8.126 0 0 5.752 1.284 12.08 1.284s12.08-1.284 12.08-1.284"/></g><path fill="#ff717f" d="m24.976 43.836c0-5.496.002-3.81 7.732-3.81 7.736 0 7.734-1.687 7.734 3.81 0 5.497-3.463 8.256-7.734 8.256-4.27 0-7.732-2.759-7.732-8.256"/><path fill="#e2596c" d="m33.958 40.03l-1.25 9.42-1.25-9.42z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 3c-11.5 0-21.2 11.5-20.6 24.1.2 3.4.9 28.9 3.9 33 2.4 3.3 5.3-3.4 9.1-3.4 3.8 0 3.8 4.2 7.6 4.2 3.8 0 3.8-4.2 7.6-4.2 3.8 0 6.7 6.7 9.1 3.4 3-4.1 3.7-29.6 3.9-33 .6-12.6-9.1-24.1-20.6-24.1" fill="#6adbc6"/><path d="m47.2 62c-1.3 0-2.5-1-3.7-2.1-1.3-1.1-2.6-2.2-3.9-2.2-1.5 0-2.2.8-3.1 1.8-1 1.1-2.2 2.4-4.5 2.4-2.3 0-3.6-1.3-4.5-2.4-.9-1-1.6-1.8-3.1-1.8-1.3 0-2.6 1.1-3.9 2.2-1.2 1.1-2.4 2.1-3.7 2.1-.9 0-1.6-.4-2.3-1.3-1.9-2.7-3.2-12.8-4-31.9 0-.7-.1-1.3-.1-1.7-.4-6.8 2.1-13.5 6.8-18.4 4.1-4.3 9.4-6.7 14.8-6.7s10.7 2.4 14.8 6.7c4.7 4.9 7.2 11.6 6.8 18.4 0 .3 0 .9-.1 1.6-.8 19.1-2.1 29.3-4 32-.6.9-1.4 1.3-2.3 1.3m-7.6-6.3c2 0 3.7 1.4 5.2 2.7.9.8 1.9 1.6 2.4 1.6.1 0 .3 0 .7-.5 1.1-1.6 2.7-8.2 3.6-30.9 0-.7.1-1.3.1-1.6.3-6.2-2-12.4-6.3-16.9-3.7-3.9-8.4-6.1-13.3-6.1s-9.6 2.2-13.3 6.1c-4.3 4.5-6.6 10.7-6.3 16.9 0 .3 0 .9.1 1.7.9 22.6 2.5 29.3 3.6 30.8.4.5.6.5.7.5.6 0 1.6-.9 2.4-1.6 1.5-1.3 3.1-2.7 5.2-2.7 2.3 0 3.6 1.3 4.5 2.4.9 1 1.6 1.8 3.1 1.8 1.5 0 2.2-.8 3.1-1.8.9-1.1 2.2-2.4 4.5-2.4" fill="#50ffdd"/><path d="m48.8 34.2c10.8 2.6 8.7-3.1 11.4.1 2.5 2.9-1 9.1-12.1 11.5" fill="#6adbc6"/><path d="m48.2 46.8c-.5 0-.9-.3-1-.8-.1-.5.2-1.1.8-1.2 7.5-1.6 11.1-4.9 11.9-7.3.2-.7.4-1.7-.3-2.5-.3-.4-.5-.5-.6-.6-.1 0-.2.1-.3.2-1.2.8-3.3 2.3-10.1.7-.5-.1-.9-.7-.7-1.2.1-.5.7-.9 1.2-.7 5.9 1.4 7.6.2 8.5-.4 1.3-.9 2.2-.7 3.5.8 1 1.2 1.3 2.8.7 4.5-1 3-5 6.8-13.3 8.6-.2-.1-.3-.1-.3-.1" fill="#50ffdd"/><path d="m15.3 34.2c-10.9 2.6-8.7-3.1-11.5.1-2.5 2.9.9 9.1 12.1 11.5" fill="#6adbc6"/><path d="m15.8 46.8c-.1 0-.1 0-.2 0-7-1.5-12-4.7-13.3-8.6-.6-1.7-.3-3.3.7-4.5 1.3-1.5 2.2-1.7 3.5-.8.9.6 2.6 1.8 8.5.3.5-.1 1.1.2 1.2.7s-.2 1.1-.7 1.2c-6.8 1.6-8.9.2-10.1-.6-.1-.1-.2-.1-.3-.2-.1.1-.2.3-.6.7-.7.8-.6 1.9-.3 2.6.8 2.3 4.4 5.6 11.8 7.2.5.1.9.6.8 1.2-.1.5-.5.8-1 .8" fill="#50ffdd"/><ellipse cx="41.4" cy="24.3" rx="6.1" ry="6.9" fill="#fff"/><ellipse cx="41.4" cy="24.3" rx="4" ry="4.5" fill="#308776"/><path d="m33.5 22.3c0 5-3.8 9.1-8.5 9.1-4.7 0-8.5-4.1-8.5-9.1 0-5 3.8-9.1 8.5-9.1 4.7-.1 8.5 4 8.5 9.1" fill="#fff"/><g fill="#308776"><path d="m30.6 22.3c0 3.3-2.5 6-5.6 6s-5.6-2.7-5.6-6c0-3.3 2.5-6 5.6-6s5.6 2.7 5.6 6"/><path d="m44.8 35.4c0 4.4-5.4 8.1-12.1 8.1-6.7 0-12.1-3.7-12.1-8.1 0 0 5.8 1.3 12.1 1.3s12.1-1.3 12.1-1.3"/></g><path d="m25 43.8c0-5.5 0-3.8 7.7-3.8 7.7 0 7.7-1.7 7.7 3.8s-3.5 8.3-7.7 8.3c-4.3 0-7.7-2.8-7.7-8.3" fill="#ff717f"/><path fill="#e2596c" d="m34 40l-1.3 9.5-1.2-9.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fb.svg
index cdb9b97..b33f37c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m4.481 10.1c1.479-1.117 6.443 3.463 11.09 10.23 4.646 6.767 7.211 13.158 5.734 14.274-1.48 1.121-6.441-3.464-11.09-10.232-4.642-6.763-7.211-13.154-5.732-14.272"/><path d="m1.172 18.4c1.08-1.543 6.957 1.059 13.13 5.812 6.176 4.751 10.307 9.853 9.229 11.392-1.074 1.544-6.955-1.063-13.13-5.813-6.172-4.749-10.305-9.853-9.229-11.391"/><path d="m3.01 28.402c.428-1.86 5.463-2.188 11.248-.736 5.791 1.452 10.139 4.139 9.717 5.997-.424 1.864-5.461 2.188-11.252.736-5.785-1.455-10.135-4.138-9.713-5.997"/><path d="m3.098 38.09c-.723-1.755 2.742-5.01 7.732-7.267 4.996-2.263 9.627-2.67 10.348-.915.725 1.756-2.74 5.01-7.734 7.269-4.992 2.257-9.625 2.669-10.346.913"/><path d="m5.573 44.765c-.955-1.466 1.906-5.269 6.391-8.489 4.49-3.228 8.9-4.655 9.855-3.191.957 1.465-1.906 5.26-6.393 8.49-4.484 3.22-8.896 4.653-9.853 3.19"/><path d="m10.05 50.718c-1.248-1.247.781-5.612 4.531-9.735 3.754-4.132 7.809-6.471 9.05-5.223 1.252 1.245-.783 5.605-4.533 9.741-3.752 4.125-7.805 6.467-9.05 5.217"/><path d="m9.485 5.062c1.16-.6 4.055 3.064 6.451 8.178 2.402 5.124 3.408 9.758 2.246 10.357-1.162.604-4.051-3.065-6.453-8.183-2.398-5.118-3.406-9.753-2.244-10.352"/><path d="m14.301 55.81c-1.119-.721.277-5.254 3.125-10.11 2.848-4.861 6.07-8.214 7.188-7.487 1.125.72-.279 5.249-3.127 10.11-2.846 4.859-6.06 8.211-7.186 7.487"/><path d="m19.801 57.56c-.926-.175-.885-4.874.094-10.48.979-5.612 2.52-10.02 3.441-9.841.926.172.879 4.871-.098 10.481-.976 5.613-2.515 10.02-3.437 9.84"/><path d="m24.665 58.993c-.932-.141-1.168-4.01-.525-8.624.639-4.629 1.91-8.266 2.838-8.121.934.138 1.164 4.01.525 8.63-.641 4.626-1.911 8.26-2.838 8.115"/></g><g fill="#e1edf5"><path d="m12.393 6.569c1.479-1.118 6.445 3.463 11.09 10.229 4.646 6.769 7.213 13.159 5.734 14.277-1.48 1.117-6.443-3.467-11.09-10.232-4.644-6.765-7.212-13.156-5.734-14.274"/><path d="m5.172 14.817c1.08-1.544 6.957 1.061 13.13 5.811 6.174 4.752 10.305 9.854 9.229 11.396-1.078 1.542-6.957-1.063-13.13-5.816-6.17-4.75-10.303-9.852-9.227-11.391"/><path d="m4.01 26.336c.426-1.859 5.463-2.188 11.248-.736 5.791 1.451 10.141 4.14 9.715 5.998-.422 1.861-5.459 2.188-11.25.736-5.785-1.455-10.137-4.137-9.713-5.998"/><path d="m6.149 38.604c-.879-1.678 2.271-5.263 7.04-8.01 4.768-2.753 9.34-3.625 10.217-1.951.881 1.677-2.27 5.261-7.04 8.02-4.764 2.748-9.338 3.621-10.217 1.948"/><path d="m9.06 45.01c-1.059-1.247 1.375-5.335 5.43-9.131 4.061-3.801 8.207-5.871 9.266-4.624 1.061 1.242-1.375 5.329-5.434 9.128-4.057 3.795-8.205 5.869-9.262 4.627"/><path d="m11.625 53.51c-1.154-.615-.098-5.242 2.363-10.323 2.461-5.094 5.393-8.717 6.545-8.104 1.158.614.096 5.235-2.361 10.327-2.463 5.084-5.392 8.713-6.547 8.1"/><path d="m17.848 55.38c-1.248-.36-1.098-5.115.34-10.612 1.438-5.505 3.615-9.673 4.863-9.312 1.25.355 1.094 5.109-.342 10.612-1.437 5.497-3.613 9.669-4.861 9.312"/><path d="m22.477 56.863c-.906-.26-.477-4.933.961-10.431 1.438-5.505 3.338-9.754 4.24-9.491.908.256.473 4.932-.961 10.436-1.439 5.497-3.338 9.748-4.24 9.486"/></g><g fill="#bec6c9"><path d="m59.24 10.344c-1.479-1.118-6.443 3.462-11.09 10.229-4.645 6.765-7.213 13.158-5.732 14.275 1.479 1.119 6.439-3.464 11.09-10.233 4.64-6.762 7.213-13.155 5.732-14.271"/><path d="m62.832 18.4c-1.08-1.543-6.957 1.059-13.13 5.812-6.176 4.751-10.309 9.853-9.23 11.392 1.076 1.544 6.957-1.063 13.13-5.813 6.171-4.749 10.304-9.853 9.23-11.391"/><path d="m61.6 28.402c-.428-1.86-5.463-2.188-11.25-.736-5.791 1.452-10.139 4.139-9.715 5.997.422 1.864 5.461 2.188 11.25.736 5.787-1.455 10.137-4.138 9.715-5.997"/><path d="m60.904 38.09c.725-1.755-2.74-5.01-7.73-7.267-4.994-2.263-9.627-2.67-10.348-.915-.727 1.756 2.738 5.01 7.734 7.269 4.993 2.257 9.626 2.669 10.344.913"/><path d="m58.43 44.765c.955-1.466-1.906-5.269-6.391-8.489-4.488-3.228-8.9-4.655-9.855-3.191-.957 1.465 1.908 5.26 6.393 8.49 4.484 3.22 8.896 4.653 9.853 3.19"/><path d="m53.953 50.718c1.25-1.247-.779-5.612-4.529-9.735-3.752-4.132-7.809-6.471-9.05-5.223-1.25 1.245.781 5.605 4.531 9.741 3.752 4.125 7.807 6.467 9.05 5.217"/><path d="m54.52 5.062c-1.162-.6-4.055 3.064-6.451 8.178-2.402 5.124-3.408 9.758-2.248 10.357 1.162.604 4.051-3.065 6.453-8.183 2.399-5.118 3.407-9.753 2.246-10.352"/><path d="m49.701 55.81c1.119-.721-.277-5.254-3.121-10.11-2.854-4.861-6.068-8.214-7.189-7.487-1.125.72.279 5.249 3.125 10.11 2.845 4.859 6.06 8.211 7.185 7.487"/><path d="m44.2 57.56c.926-.175.883-4.874-.098-10.48-.977-5.612-2.518-10.02-3.438-9.841-.928.172-.879 4.871.096 10.481.977 5.613 2.514 10.02 3.44 9.84"/><path d="m39.34 58.993c.928-.141 1.168-4.01.523-8.624-.639-4.629-1.908-8.266-2.84-8.121-.932.138-1.164 4.01-.521 8.63.639 4.626 1.91 8.26 2.838 8.115"/></g><g fill="#e1edf5"><path d="m52.24 6.569c-1.48-1.118-6.445 3.463-11.09 10.229-4.645 6.769-7.213 13.159-5.732 14.277 1.479 1.117 6.441-3.467 11.09-10.232 4.64-6.765 7.213-13.156 5.736-14.274"/><path d="m58.832 14.817c-1.08-1.544-6.957 1.061-13.13 5.811-6.178 4.752-10.309 9.854-9.23 11.396 1.078 1.542 6.957-1.063 13.13-5.816 6.169-4.75 10.3-9.852 9.228-11.391"/><path d="m59.99 26.336c-.424-1.859-5.461-2.188-11.244-.736-5.791 1.451-10.143 4.14-9.719 5.998.426 1.861 5.461 2.188 11.252.736 5.785-1.455 10.137-4.137 9.711-5.998"/><path d="m57.855 38.604c.879-1.678-2.271-5.263-7.04-8.01-4.766-2.753-9.34-3.625-10.217-1.951-.881 1.677 2.271 5.261 7.04 8.02 4.76 2.748 9.337 3.621 10.215 1.948"/><path d="m54.941 45.01c1.063-1.247-1.375-5.335-5.43-9.131-4.059-3.801-8.207-5.871-9.264-4.624-1.063 1.242 1.375 5.329 5.432 9.128 4.055 3.795 8.208 5.869 9.262 4.627"/><path d="m52.38 53.51c1.15-.615.098-5.242-2.363-10.323-2.461-5.094-5.393-8.717-6.545-8.104-1.158.614-.096 5.235 2.363 10.327 2.461 5.084 5.391 8.713 6.545 8.1"/><path d="m46.15 55.38c1.25-.36 1.102-5.115-.338-10.612-1.438-5.505-3.613-9.673-4.861-9.312-1.25.355-1.096 5.109.342 10.612 1.435 5.497 3.611 9.669 4.857 9.312"/><path d="m41.525 56.863c.906-.26.479-4.933-.961-10.431-1.438-5.505-3.338-9.754-4.236-9.491-.91.256-.477 4.932.959 10.436 1.44 5.497 3.338 9.748 4.238 9.486"/></g><path fill="#594640" d="m52.43 30.629c0 16.783-2.824 18.328-20.425 18.328-17.602 0-20.426-1.545-20.426-18.328 0-10.12 5.984-18.326 20.426-18.326 14.438 0 20.425 8.206 20.425 18.326"/><path fill="#ffe1bd" d="m49.832 35.415c-1.951-1.767.064-5.278-2.527-10.301-3.064 3.11-9.236 7.312-20.02 6.933 0 0 .748-.479 1.873-1.309 0 0-3.93.634-7.26-.601 0 0 .564-.322 1.461-.912-3.303.214-5.969.06-7.287-.646 0 0 1 5.63-1.863 6.835 0 0-2.371-.333-2.371 2.724 0 3.676 2.436 3.056 2.436 3.056 0 5.494 5.209 11.512 18.08 11.512 12.197 0 17.482-4.92 17.482-11.512 0 0 2.318.62 2.318-3.056-.003-2.911-2.331-2.723-2.331-2.723"/><g fill="#ff717f"><path opacity=".5" d="m48.51 43.07c-.238-1.817-2.229-2.913-4.443-2.444-2.215.467-3.813 2.318-3.574 4.14.24 1.818 2.23 2.915 4.445 2.447 2.212-.47 3.81-2.323 3.572-4.143"/><path opacity=".5" d="m19.975 40.623c-2.213-.469-4.203.627-4.443 2.444-.238 1.817 1.361 3.673 3.576 4.141 2.213.468 4.199-.63 4.441-2.447.241-1.82-1.361-3.673-3.574-4.138"/></g><path fill="#664e27" d="m26.17 44.704c.984.712 1.934 1.144 2.908 1.43.969.286 1.947.409 2.928.411.98-.005 1.958-.127 2.927-.413.975-.288 1.924-.719 2.908-1.428-.422 1.329-1.357 2.374-2.402 3.042-1.053.674-2.25.998-3.433.998-1.186-.003-2.379-.326-3.432-1-1.047-.668-1.983-1.713-2.404-3.039"/><path fill="#4aa9ff" d="m32 7.135c-8.252 0-14.939 1.418-14.939 4.362 0 2.945 6.689 5.333 14.939 5.333 8.25 0 14.939-2.388 14.939-5.333 0-2.944-6.689-4.362-14.939-4.362m0 5.168c-5.523 0-10-.784-10-1.75s4.477-1.664 10-1.664c5.523 0 10 .698 10 1.664s-4.477 1.75-10 1.75"/><circle fill="#fff" cx="40.561" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="40.561" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="40.561" cy="37.29" rx="1" ry=".987"/><circle fill="#fff" cx="23.443" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="23.443" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="23.442" cy="37.29" rx="1" ry=".987"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m5.4 10.1c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.5-6.8-7-13.2-5.5-14.3"/><path d="m2.2 18.4c1-1.5 6.7 1.1 12.7 5.8 6 4.8 10 9.9 8.9 11.4-1 1.5-6.7-1.1-12.7-5.8-6-4.8-10-9.9-8.9-11.4"/><path d="m3.9 28.4c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.5-9.8-4.1-9.4-6"/><path d="m4 38.1c-.7-1.8 2.7-5 7.5-7.3 4.8-2.3 9.3-2.7 10-.9.7 1.8-2.7 5-7.5 7.3-4.8 2.2-9.3 2.7-10 .9"/><path d="m6.4 44.8c-.9-1.5 1.8-5.3 6.2-8.5 4.3-3.2 8.6-4.7 9.5-3.2.9 1.5-1.8 5.3-6.2 8.5-4.3 3.2-8.6 4.6-9.5 3.2"/><path d="m10.8 50.7c-1.2-1.2.8-5.6 4.4-9.7 3.6-4.1 7.6-6.5 8.8-5.2 1.2 1.2-.8 5.6-4.4 9.7-3.7 4.1-7.6 6.5-8.8 5.2"/><path d="m10.2 5.1c1.1-.6 3.9 3.1 6.2 8.2 2.3 5.1 3.3 9.8 2.2 10.4-1.1.6-3.9-3.1-6.2-8.2-2.3-5.2-3.3-9.8-2.2-10.4"/><path d="m14.9 55.8c-1.1-.7.3-5.3 3-10.1 2.8-4.9 5.9-8.2 7-7.5 1.1.7-.3 5.2-3 10.1-2.8 4.9-5.9 8.2-7 7.5"/><path d="m20.2 57.6c-.9-.2-.9-4.9.1-10.5.9-5.6 2.4-10 3.3-9.8.9.2.9 4.9-.1 10.5-.9 5.5-2.4 9.9-3.3 9.8"/><path d="m24.9 59c-.9-.1-1.1-4-.5-8.6.6-4.6 1.9-8.3 2.7-8.1.9.1 1.1 4 .5 8.6-.6 4.6-1.8 8.2-2.7 8.1"/></g><g fill="#e1edf5"><path d="m13 6.6c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.4-6.8-6.9-13.2-5.5-14.3"/><path d="M6,14.8c1-1.5,6.7,1.1,12.7,5.8c6,4.8,10,9.9,8.9,11.4c-1,1.5-6.7-1.1-12.7-5.8C9,21.5,5,16.4,6,14.8z"/><path d="m4.9 26.3c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.4-9.8-4.1-9.4-6"/><path d="m7 38.6c-.9-1.7 2.2-5.3 6.8-8 4.6-2.8 9-3.6 9.9-2 .9 1.7-2.2 5.3-6.8 8-4.6 2.8-9.1 3.7-9.9 2"/><path d="m9.8 45c-1-1.2 1.3-5.3 5.3-9.1 3.9-3.8 7.9-5.9 9-4.6 1 1.2-1.3 5.3-5.3 9.1-4 3.8-8 5.9-9 4.6"/><path d="m12.3 53.5c-1.1-.6-.1-5.2 2.3-10.3 2.4-5.1 5.2-8.7 6.3-8.1 1.1.6.1 5.2-2.3 10.3-2.4 5.1-5.2 8.7-6.3 8.1"/><path d="m18.3 55.4c-1.2-.4-1.1-5.1.3-10.6 1.4-5.5 3.5-9.7 4.7-9.3 1.2.4 1.1 5.1-.3 10.6-1.4 5.5-3.5 9.6-4.7 9.3"/><path d="m22.8 56.9c-.9-.3-.5-4.9.9-10.4 1.4-5.5 3.2-9.8 4.1-9.5.9.3.5 4.9-.9 10.4-1.4 5.5-3.2 9.7-4.1 9.5"/></g><g fill="#bec6c9"><path d="m58.4 10.3c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.7 6.9-13.1 5.5-14.3"/><path d="m61.8 18.4c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 6-4.8 10-9.9 8.9-11.4"/><path d="m60.6 28.4c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.5 9.8-4.1 9.4-6"/><path d="m60 38.1c.7-1.8-2.7-5-7.5-7.3-4.8-2.3-9.3-2.7-10-.9-.7 1.8 2.7 5 7.5 7.3 4.8 2.2 9.3 2.7 10 .9"/><path d="m57.6 44.8c.9-1.5-1.8-5.3-6.2-8.5-4.3-3.2-8.6-4.7-9.5-3.2-.9 1.5 1.8 5.3 6.2 8.5 4.3 3.2 8.6 4.6 9.5 3.2"/><path d="m53.2 50.7c1.2-1.2-.8-5.6-4.4-9.7-3.6-4.1-7.6-6.5-8.8-5.2-1.2 1.2.8 5.6 4.4 9.7 3.7 4.1 7.6 6.5 8.8 5.2"/><path d="m53.8 5.1c-1.1-.6-3.9 3.1-6.2 8.2-2.3 5.1-3.3 9.8-2.2 10.4 1.1.6 3.9-3.1 6.2-8.2 2.3-5.2 3.3-9.8 2.2-10.4"/><path d="m49.1 55.8c1.1-.7-.3-5.3-3-10.1-2.8-4.9-5.9-8.2-7-7.5-1.1.7.3 5.2 3 10.1 2.8 4.9 5.9 8.2 7 7.5"/><path d="m43.8 57.6c.9-.2.9-4.9-.1-10.5-.9-5.6-2.4-10-3.3-9.8-.9.2-.8 4.9.1 10.5.9 5.5 2.4 9.9 3.3 9.8"/><path d="m39.1 59c.9-.1 1.1-4 .5-8.6-.6-4.6-1.8-8.3-2.7-8.1-.9.1-1.1 4-.5 8.6.6 4.6 1.8 8.2 2.7 8.1"/></g><g fill="#e1edf5"><path d="m51.6 6.6c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.8 6.9-13.2 5.5-14.3"/><path d="m58 14.8c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 5.9-4.7 9.9-9.8 8.9-11.4"/><path d="m59.1 26.3c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.4 9.8-4.1 9.4-6"/><path d="m57 38.6c.8-1.7-2.2-5.3-6.8-8-4.6-2.8-9-3.6-9.9-2-.9 1.7 2.2 5.3 6.8 8 4.6 2.8 9.1 3.7 9.9 2"/><path d="m54.2 45c1-1.2-1.3-5.3-5.3-9.1-3.9-3.8-7.9-5.9-8.9-4.6-1 1.2 1.3 5.3 5.3 9.1 3.9 3.8 7.9 5.9 8.9 4.6"/><path d="m51.7 53.5c1.1-.6.1-5.2-2.3-10.3-2.4-5.1-5.2-8.7-6.3-8.1-1.1.6-.1 5.2 2.3 10.3 2.4 5.1 5.2 8.7 6.3 8.1"/><path d="m45.7 55.4c1.2-.4 1.1-5.1-.3-10.6-1.4-5.5-3.5-9.7-4.7-9.3-1.2.4-1.1 5.1.3 10.6 1.4 5.5 3.5 9.6 4.7 9.3"/><path d="m41.2 56.9c.9-.3.5-4.9-.9-10.4-1.4-5.5-3.2-9.8-4.1-9.5-.9.3-.5 4.9.9 10.4 1.4 5.5 3.2 9.7 4.1 9.5"/></g><path d="m32 12.5c15.3 0 18.7 10.2 18.7 16 0 5.1-.7 7.3-.7 7.3h-36c0 0-.7-2.2-.7-7.3 0-5.8 3.4-16 18.7-16" fill="#594640"/><path d="m48.8 33.2c0 0-.5-2.2-.8-6.8-.3-5-7.3-1-16-1s-15.7-4-16 1c-.3 4.6-.8 6.8-.8 6.8-4.3 0-4.3 7 .3 7 0 7.6 9.5 12.3 16.5 12.3 7 0 16.5-4.7 16.5-12.3 4.6 0 4.6-7 .3-7" fill="#ffe1bd"/><circle cx="40.3" cy="34.8" r="4.3" fill="#fff"/><circle cx="40.3" cy="34.8" r="3" fill="#664e27"/><circle cx="40.3" cy="34.8" r="1" fill="#231f20"/><circle cx="23.7" cy="34.8" r="4.3" fill="#fff"/><circle cx="23.7" cy="34.8" r="3" fill="#664e27"/><circle cx="23.7" cy="34.8" r="1" fill="#231f20"/><path d="m38 44.6c0 2.3-3 3.4-6 3.4s-6-1.1-6-3.4c0 0 0-.6.6-.6 2.7 0 8.1 0 10.8 0 .6 0 .6.6.6.6" fill="#664e27"/><path d="m32 7.1c-8.3 0-14.9 1.4-14.9 4.4s6.7 5.3 14.9 5.3c8.3 0 14.9-2.4 14.9-5.3s-6.7-4.4-14.9-4.4m0 5.2c-5.5 0-10-.8-10-1.8 0-1 4.5-1.7 10-1.7 5.5 0 10 .7 10 1.7 0 1-4.5 1.8-10 1.8" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fc.svg
index e3e6345..0095920 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m4.481 10.1c1.479-1.117 6.441 3.463 11.09 10.23 4.646 6.767 7.213 13.158 5.734 14.274-1.479 1.121-6.441-3.465-11.09-10.232-4.642-6.764-7.212-13.154-5.732-14.272"/><path d="m1.173 18.399c1.078-1.543 6.957 1.059 13.13 5.812 6.176 4.751 10.307 9.854 9.23 11.393-1.074 1.544-6.957-1.063-13.13-5.813-6.17-4.75-10.304-9.853-9.226-11.392"/><path d="m3.01 28.401c.428-1.86 5.463-2.188 11.248-.736 5.793 1.452 10.141 4.139 9.717 5.997-.424 1.864-5.461 2.188-11.25.736-5.787-1.455-10.137-4.137-9.715-5.997"/><path d="m3.097 38.09c-.721-1.755 2.742-5.01 7.732-7.268 4.996-2.263 9.627-2.67 10.348-.915.725 1.756-2.738 5.01-7.734 7.27-4.991 2.257-9.626 2.669-10.346.913"/><path d="m5.573 44.765c-.955-1.466 1.906-5.269 6.391-8.489 4.488-3.228 8.898-4.655 9.854-3.191.957 1.465-1.904 5.26-6.391 8.49-4.487 3.22-8.899 4.653-9.854 3.19"/><path d="m10.05 50.718c-1.25-1.247.779-5.612 4.531-9.735 3.752-4.132 7.807-6.471 9.05-5.223 1.252 1.245-.781 5.605-4.533 9.741-3.75 4.125-7.803 6.467-9.05 5.217"/><path d="m9.483 5.062c1.162-.6 4.055 3.064 6.451 8.178 2.404 5.124 3.408 9.758 2.246 10.357-1.16.604-4.051-3.065-6.451-8.183-2.398-5.118-3.406-9.754-2.246-10.352"/><path d="m14.302 55.81c-1.121-.721.275-5.254 3.123-10.11 2.85-4.861 6.068-8.214 7.189-7.487 1.123.72-.279 5.249-3.127 10.11-2.847 4.859-6.06 8.211-7.185 7.487"/><path d="m19.8 57.56c-.924-.175-.883-4.874.096-10.48.979-5.612 2.52-10.02 3.439-9.841.926.172.879 4.871-.098 10.481-.976 5.613-2.513 10.02-3.437 9.84"/><path d="m24.665 58.993c-.932-.141-1.168-4.01-.525-8.624.637-4.629 1.91-8.266 2.838-8.121.932.138 1.164 4.01.525 8.63-.643 4.626-1.912 8.26-2.838 8.115"/></g><g fill="#e1edf5"><path d="m12.392 6.568c1.48-1.118 6.445 3.463 11.09 10.229 4.646 6.769 7.215 13.159 5.734 14.277-1.479 1.117-6.441-3.467-11.09-10.232-4.645-6.765-7.213-13.155-5.736-14.274"/><path d="m5.171 14.816c1.08-1.544 6.957 1.061 13.13 5.811 6.176 4.752 10.307 9.854 9.229 11.396-1.076 1.542-6.957-1.063-13.13-5.816-6.17-4.749-10.303-9.852-9.227-11.391"/><path d="m4.01 26.336c.424-1.859 5.461-2.188 11.246-.736 5.793 1.451 10.141 4.14 9.717 5.998-.424 1.861-5.461 2.188-11.252.736-5.785-1.455-10.135-4.138-9.711-5.998"/><path d="m6.149 38.604c-.879-1.678 2.271-5.263 7.04-8.01 4.768-2.753 9.34-3.625 10.217-1.951.881 1.677-2.271 5.262-7.04 8.02-4.761 2.748-9.336 3.621-10.215 1.948"/><path d="m9.06 45.01c-1.059-1.247 1.375-5.335 5.432-9.131 4.059-3.802 8.207-5.871 9.264-4.624 1.061 1.242-1.375 5.329-5.434 9.129-4.055 3.794-8.204 5.868-9.262 4.626"/><path d="m11.626 53.51c-1.156-.615-.098-5.242 2.363-10.323 2.459-5.094 5.393-8.717 6.545-8.104 1.156.614.096 5.235-2.363 10.327-2.461 5.084-5.393 8.713-6.545 8.1"/><path d="m17.849 55.38c-1.25-.36-1.1-5.115.338-10.612 1.439-5.505 3.615-9.673 4.863-9.312 1.25.355 1.094 5.109-.342 10.612-1.437 5.497-3.611 9.669-4.859 9.312"/><path d="m22.478 56.863c-.906-.26-.479-4.933.959-10.431 1.439-5.505 3.338-9.754 4.24-9.491.908.256.475 4.932-.961 10.436-1.44 5.497-3.338 9.748-4.238 9.486"/></g><g fill="#bec6c9"><path d="m59.24 10.344c-1.48-1.118-6.445 3.462-11.09 10.229-4.646 6.765-7.213 13.158-5.734 14.275 1.48 1.119 6.441-3.465 11.09-10.233 4.642-6.762 7.213-13.155 5.734-14.271"/><path d="m62.831 18.399c-1.08-1.543-6.957 1.059-13.13 5.812-6.174 4.751-10.307 9.854-9.229 11.393 1.076 1.544 6.957-1.063 13.13-5.813 6.172-4.75 10.305-9.853 9.229-11.392"/><path d="m61.59 28.401c-.428-1.86-5.463-2.188-11.25-.736-5.791 1.452-10.139 4.139-9.715 5.997.422 1.864 5.461 2.188 11.25.736 5.787-1.455 10.139-4.137 9.715-5.997"/><path d="m60.905 38.09c.723-1.755-2.742-5.01-7.732-7.268-4.994-2.263-9.627-2.67-10.348-.915-.725 1.756 2.74 5.01 7.736 7.27 4.991 2.257 9.626 2.669 10.344.913"/><path d="m58.43 44.765c.953-1.466-1.906-5.269-6.393-8.489-4.488-3.228-8.898-4.655-9.854-3.191-.957 1.465 1.906 5.26 6.393 8.49 4.484 3.22 8.897 4.653 9.854 3.19"/><path d="m53.952 50.718c1.25-1.247-.779-5.612-4.529-9.735-3.752-4.132-7.807-6.471-9.05-5.223-1.25 1.245.783 5.605 4.533 9.741 3.752 4.125 7.805 6.467 9.05 5.217"/><path d="m54.52 5.062c-1.162-.6-4.057 3.064-6.451 8.178-2.402 5.124-3.408 9.758-2.248 10.357 1.162.604 4.051-3.065 6.453-8.183 2.397-5.118 3.407-9.754 2.246-10.352"/><path d="m49.7 55.81c1.121-.721-.277-5.254-3.121-10.11-2.852-4.861-6.068-8.214-7.188-7.487-1.125.72.277 5.249 3.125 10.11 2.846 4.859 6.06 8.211 7.184 7.487"/><path d="m44.2 57.56c.926-.175.883-4.874-.096-10.48-.977-5.612-2.518-10.02-3.439-9.841-.926.172-.879 4.871.098 10.481.976 5.613 2.513 10.02 3.437 9.84"/><path d="m39.34 58.993c.93-.141 1.168-4.01.525-8.624-.639-4.629-1.91-8.266-2.84-8.121-.932.138-1.164 4.01-.523 8.63.641 4.626 1.91 8.26 2.838 8.115"/></g><g fill="#e1edf5"><path d="m52.24 6.568c-1.479-1.118-6.445 3.463-11.09 10.229-4.645 6.769-7.213 13.159-5.734 14.277 1.48 1.117 6.443-3.467 11.09-10.232 4.642-6.765 7.213-13.155 5.736-14.274"/><path d="m58.831 14.816c-1.08-1.544-6.957 1.061-13.13 5.811-6.176 4.752-10.307 9.854-9.229 11.396s6.957-1.063 13.13-5.816c6.17-4.749 10.301-9.852 9.227-11.391"/><path d="m59.991 26.336c-.424-1.859-5.461-2.188-11.246-.736-5.791 1.451-10.141 4.14-9.717 5.998.424 1.861 5.461 2.188 11.252.736 5.785-1.455 10.135-4.138 9.711-5.998"/><path d="m57.856 38.604c.879-1.678-2.271-5.263-7.04-8.01-4.768-2.753-9.34-3.625-10.217-1.951-.881 1.677 2.27 5.262 7.04 8.02 4.76 2.748 9.337 3.621 10.215 1.948"/><path d="m54.942 45.01c1.061-1.247-1.375-5.335-5.43-9.131-4.059-3.802-8.207-5.871-9.264-4.624-1.063 1.242 1.375 5.329 5.432 9.129 4.055 3.794 8.206 5.868 9.262 4.626"/><path d="m52.38 53.51c1.152-.615.1-5.242-2.361-10.323-2.463-5.094-5.395-8.717-6.547-8.104-1.156.614-.096 5.235 2.363 10.327 2.461 5.084 5.393 8.713 6.545 8.1"/><path d="m46.15 55.38c1.25-.36 1.1-5.115-.338-10.612-1.438-5.505-3.615-9.673-4.863-9.312-1.25.355-1.094 5.109.342 10.612 1.437 5.497 3.613 9.669 4.859 9.312"/><path d="m41.526 56.863c.906-.26.477-4.933-.961-10.431-1.438-5.505-3.338-9.754-4.238-9.491-.91.256-.475 4.932.959 10.436 1.442 5.497 3.338 9.748 4.24 9.486"/></g><path fill="#dbb471" d="m52.43 30.629c0 16.783-2.824 18.328-20.426 18.328s-20.426-1.545-20.426-18.328c0-10.12 5.986-18.326 20.426-18.326 14.441 0 20.426 8.206 20.426 18.326"/><path fill="#fed0ac" d="m49.831 35.415c-1.951-1.767.064-5.278-2.525-10.302-3.066 3.11-9.238 7.312-20.02 6.933 0 0 .75-.479 1.873-1.309 0 0-3.928.634-7.26-.601 0 0 .564-.322 1.461-.912-3.301.214-5.969.06-7.287-.646 0 0 1 5.631-1.863 6.836 0 0-2.369-.333-2.369 2.724 0 3.676 2.436 3.056 2.436 3.056 0 5.494 5.207 11.512 18.08 11.512 12.197 0 17.482-4.92 17.482-11.512 0 0 2.32.62 2.32-3.056-.002-2.911-2.332-2.723-2.332-2.723"/><g fill="#ff717f"><path opacity=".5" d="m48.51 43.07c-.238-1.817-2.229-2.913-4.443-2.444-2.213.467-3.813 2.318-3.574 4.14.24 1.818 2.23 2.915 4.445 2.447 2.212-.47 3.81-2.323 3.572-4.143"/><path opacity=".5" d="m19.974 40.623c-2.213-.469-4.201.627-4.441 2.444s1.359 3.673 3.574 4.141c2.213.468 4.201-.63 4.441-2.447.24-1.82-1.36-3.673-3.574-4.138"/></g><path fill="#664e27" d="m26.16 44.704c.984.712 1.934 1.144 2.908 1.43.969.286 1.947.409 2.928.411.98-.005 1.959-.127 2.928-.413.975-.288 1.924-.719 2.908-1.428-.422 1.329-1.357 2.374-2.4 3.042-1.055.674-2.25.998-3.436.998-1.184-.003-2.377-.326-3.432-1-1.047-.668-1.982-1.713-2.404-3.039"/><path fill="#4aa9ff" d="m32 7.135c-8.252 0-14.938 1.418-14.938 4.362 0 2.945 6.688 5.333 14.938 5.333 8.252 0 14.939-2.388 14.939-5.333 0-2.944-6.689-4.362-14.939-4.362m0 5.168c-5.523 0-10-.784-10-1.75s4.477-1.664 10-1.664 10 .698 10 1.664-4.479 1.75-10 1.75"/><circle fill="#fff" cx="40.561" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="40.561" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="40.561" cy="37.29" rx="1" ry=".987"/><circle fill="#fff" cx="23.442" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="23.442" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="23.44" cy="37.29" rx="1" ry=".987"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m5.4 10.1c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.5-6.8-7-13.2-5.5-14.3"/><path d="m2.2 18.4c1-1.5 6.7 1.1 12.7 5.8 6 4.8 10 9.9 8.9 11.4-1 1.5-6.7-1.1-12.7-5.8-6-4.8-10-9.9-8.9-11.4"/><path d="m3.9 28.4c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.5-9.8-4.1-9.4-6"/><path d="m4 38.1c-.7-1.8 2.7-5 7.5-7.3 4.8-2.3 9.3-2.7 10-.9.7 1.8-2.7 5-7.5 7.3-4.8 2.2-9.3 2.7-10 .9"/><path d="m6.4 44.8c-.9-1.5 1.8-5.3 6.2-8.5 4.3-3.2 8.6-4.7 9.5-3.2.9 1.5-1.8 5.3-6.2 8.5-4.3 3.2-8.6 4.6-9.5 3.2"/><path d="m10.8 50.7c-1.2-1.2.8-5.6 4.4-9.7 3.6-4.1 7.6-6.5 8.8-5.2 1.2 1.2-.8 5.6-4.4 9.7-3.7 4.1-7.6 6.5-8.8 5.2"/><path d="m10.2 5.1c1.1-.6 3.9 3.1 6.2 8.2 2.3 5.1 3.3 9.8 2.2 10.4-1.1.6-3.9-3.1-6.2-8.2-2.3-5.2-3.3-9.8-2.2-10.4"/><path d="m14.9 55.8c-1.1-.7.3-5.3 3-10.1 2.8-4.9 5.9-8.2 7-7.5 1.1.7-.3 5.2-3 10.1-2.8 4.9-5.9 8.2-7 7.5"/><path d="m20.2 57.6c-.9-.2-.9-4.9.1-10.5.9-5.6 2.4-10 3.3-9.8.9.2.9 4.9-.1 10.5-.9 5.5-2.4 9.9-3.3 9.8"/><path d="m24.9 59c-.9-.1-1.1-4-.5-8.6.6-4.6 1.8-8.3 2.7-8.1.9.1 1.1 4 .5 8.6-.6 4.6-1.8 8.2-2.7 8.1"/></g><g fill="#e1edf5"><path d="m13 6.6c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.4-6.8-6.9-13.2-5.5-14.3"/><path d="M6,14.8c1-1.5,6.7,1.1,12.7,5.8c6,4.8,10,9.9,8.9,11.4c-1,1.5-6.7-1.1-12.7-5.8C9,21.5,5,16.4,6,14.8z"/><path d="m4.9 26.3c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.4-9.8-4.1-9.4-6"/><path d="m7 38.6c-.9-1.7 2.2-5.3 6.8-8 4.6-2.8 9-3.6 9.9-2 .9 1.7-2.2 5.3-6.8 8-4.6 2.8-9.1 3.7-9.9 2"/><path d="m9.8 45c-1-1.2 1.3-5.3 5.3-9.1 3.9-3.8 7.9-5.9 9-4.6 1 1.2-1.3 5.3-5.3 9.1-4 3.8-8 5.9-9 4.6"/><path d="m12.3 53.5c-1.1-.6-.1-5.2 2.3-10.3 2.4-5.1 5.2-8.7 6.3-8.1 1.1.6.1 5.2-2.3 10.3-2.4 5.1-5.2 8.7-6.3 8.1"/><path d="m18.3 55.4c-1.2-.4-1.1-5.1.3-10.6 1.4-5.5 3.5-9.7 4.7-9.3 1.2.4 1.1 5.1-.3 10.6-1.4 5.5-3.5 9.6-4.7 9.3"/><path d="m22.8 56.9c-.9-.3-.5-4.9.9-10.4 1.4-5.5 3.2-9.8 4.1-9.5.9.3.5 4.9-.9 10.4-1.4 5.5-3.2 9.7-4.1 9.5"/></g><g fill="#bec6c9"><path d="m58.4 10.3c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.7 6.9-13.1 5.5-14.3"/><path d="m61.8 18.4c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 6-4.8 10-9.9 8.9-11.4"/><path d="m60.6 28.4c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.5 9.8-4.1 9.4-6"/><path d="m60 38.1c.7-1.8-2.7-5-7.5-7.3-4.8-2.3-9.3-2.7-10-.9-.7 1.8 2.7 5 7.5 7.3 4.8 2.2 9.3 2.7 10 .9"/><path d="m57.6 44.8c.9-1.5-1.8-5.3-6.2-8.5-4.3-3.2-8.6-4.7-9.5-3.2-.9 1.5 1.8 5.3 6.2 8.5 4.3 3.2 8.6 4.6 9.5 3.2"/><path d="m53.2 50.7c1.2-1.2-.8-5.6-4.4-9.7-3.6-4.1-7.6-6.5-8.8-5.2-1.2 1.2.8 5.6 4.4 9.7 3.7 4.1 7.6 6.5 8.8 5.2"/><path d="m53.8 5.1c-1.1-.6-3.9 3.1-6.2 8.2-2.3 5.1-3.3 9.8-2.2 10.4 1.1.6 3.9-3.1 6.2-8.2 2.3-5.2 3.3-9.8 2.2-10.4"/><path d="m49.1 55.8c1.1-.7-.3-5.3-3-10.1-2.8-4.9-5.9-8.2-7-7.5-1.1.7.3 5.2 3 10.1 2.8 4.9 5.9 8.2 7 7.5"/><path d="m43.8 57.6c.9-.2.9-4.9-.1-10.5-.9-5.6-2.4-10-3.3-9.8-.9.2-.8 4.9.1 10.5.9 5.5 2.4 9.9 3.3 9.8"/><path d="m39.1 59c.9-.1 1.1-4 .5-8.6-.6-4.6-1.8-8.3-2.8-8.1-.9.1-1.1 4-.5 8.6.7 4.6 1.9 8.2 2.8 8.1"/></g><g fill="#e1edf5"><path d="m51.6 6.6c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.6 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.5-6.8 7-13.2 5.6-14.3"/><path d="m58 14.8c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 5.9-4.7 9.9-9.8 8.9-11.4"/><path d="m59.1 26.3c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.4 9.8-4.1 9.4-6"/><path d="m57 38.6c.8-1.7-2.2-5.3-6.8-8-4.6-2.8-9-3.6-9.9-2-.9 1.7 2.2 5.3 6.8 8 4.6 2.8 9.1 3.7 9.9 2"/><path d="m54.2 45c1-1.2-1.3-5.3-5.3-9.1-3.9-3.8-7.9-5.9-8.9-4.6-1 1.2 1.3 5.3 5.3 9.1 3.9 3.8 7.9 5.9 8.9 4.6"/><path d="m51.7 53.5c1.1-.6.1-5.2-2.3-10.3-2.4-5.1-5.2-8.7-6.3-8.1-1.1.6-.1 5.2 2.3 10.3 2.4 5.1 5.2 8.7 6.3 8.1"/><path d="m45.7 55.4c1.2-.4 1.1-5.1-.3-10.6-1.4-5.5-3.5-9.7-4.7-9.3-1.2.4-1.1 5.1.3 10.6 1.4 5.5 3.5 9.6 4.7 9.3"/><path d="m41.2 56.9c.9-.3.5-4.9-.9-10.4-1.4-5.5-3.2-9.8-4.1-9.5-.9.3-.5 4.9.9 10.4 1.4 5.5 3.2 9.7 4.1 9.5"/></g><path d="m32 12.5c15.3 0 18.7 10.2 18.7 16 0 5.1-.7 7.3-.7 7.3h-36c0 0-.7-2.2-.7-7.3 0-5.8 3.4-16 18.7-16" fill="#dbb471"/><path d="m48.8 33.2c0 0-.5-2.2-.8-6.8-.3-5-7.3-1-16-1-8.7 0-15.7-4-16 1-.3 4.6-.8 6.8-.8 6.8-4.3 0-4.3 7 .3 7 0 7.6 9.5 12.3 16.5 12.3 7 0 16.5-4.7 16.5-12.3 4.6 0 4.6-7 .3-7" fill="#fed0ac"/><circle cx="40.3" cy="34.8" r="4.3" fill="#fff"/><circle cx="40.3" cy="34.8" r="3" fill="#664e27"/><circle cx="40.3" cy="34.8" r="1" fill="#231f20"/><circle cx="23.7" cy="34.8" r="4.3" fill="#fff"/><circle cx="23.7" cy="34.8" r="3" fill="#664e27"/><circle cx="23.7" cy="34.8" r="1" fill="#231f20"/><path d="m38 44.6c0 2.3-3 3.4-6 3.4-3 0-6-1.1-6-3.4 0 0 0-.6.6-.6 2.7 0 8.1 0 10.8 0 .6 0 .6.6.6.6" fill="#664e27"/><path d="m32 7.1c-8.3 0-14.9 1.4-14.9 4.4s6.7 5.3 14.9 5.3c8.3 0 14.9-2.4 14.9-5.3s-6.7-4.4-14.9-4.4m0 5.2c-5.5 0-10-.8-10-1.8 0-1 4.5-1.7 10-1.7 5.5 0 10 .7 10 1.7 0 1-4.5 1.8-10 1.8" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fd.svg
index 7c57bcc..ce453f4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m4.481 10.1c1.479-1.117 6.442 3.463 11.09 10.23 4.646 6.767 7.212 13.158 5.734 14.274-1.479 1.121-6.441-3.465-11.09-10.232-4.642-6.764-7.212-13.154-5.732-14.272"/><path d="m1.172 18.399c1.079-1.543 6.957 1.059 13.13 5.812 6.176 4.751 10.307 9.854 9.229 11.393-1.074 1.544-6.956-1.063-13.13-5.813-6.17-4.75-10.304-9.853-9.227-11.392"/><path d="m3.01 28.401c.428-1.86 5.463-2.188 11.248-.736 5.792 1.452 10.14 4.139 9.717 5.997-.424 1.864-5.461 2.188-11.251.736-5.786-1.455-10.136-4.137-9.714-5.997"/><path d="m3.097 38.09c-.722-1.755 2.742-5.01 7.732-7.268 4.996-2.263 9.627-2.67 10.348-.915.725 1.756-2.739 5.01-7.734 7.27-4.991 2.257-9.625 2.669-10.346.913"/><path d="m5.573 44.765c-.955-1.466 1.906-5.269 6.391-8.489 4.489-3.228 8.899-4.655 9.854-3.191.957 1.465-1.905 5.26-6.392 8.49-4.485 3.22-8.897 4.653-9.853 3.19"/><path d="m10.05 50.718c-1.249-1.247.78-5.612 4.531-9.735 3.753-4.132 7.808-6.471 9.05-5.223 1.252 1.245-.782 5.605-4.533 9.741-3.751 4.125-7.804 6.467-9.05 5.217"/><path d="m9.484 5.062c1.161-.6 4.055 3.064 6.451 8.178 2.403 5.124 3.408 9.758 2.246 10.357-1.161.604-4.051-3.065-6.452-8.183-2.398-5.118-3.406-9.754-2.245-10.352"/><path d="m14.301 55.81c-1.12-.721.276-5.254 3.124-10.11 2.849-4.861 6.067-8.214 7.188-7.487 1.124.72-.279 5.249-3.127 10.11-2.846 4.859-6.06 8.211-7.185 7.487"/><path d="m19.8 57.56c-.925-.175-.884-4.874.095-10.48.979-5.612 2.52-10.02 3.44-9.841.926.172.879 4.871-.098 10.481-.976 5.613-2.514 10.02-3.437 9.84"/><path d="m24.665 58.993c-.932-.141-1.168-4.01-.525-8.624.638-4.629 1.91-8.266 2.838-8.121.933.138 1.164 4.01.525 8.63-.642 4.626-1.912 8.26-2.838 8.115"/></g><g fill="#e1edf5"><path d="m12.392 6.568c1.479-1.118 6.445 3.463 11.09 10.229 4.646 6.769 7.214 13.159 5.734 14.277-1.479 1.117-6.442-3.467-11.09-10.232-4.644-6.765-7.212-13.155-5.735-14.274"/><path d="m5.171 14.816c1.08-1.544 6.957 1.061 13.13 5.811 6.175 4.752 10.306 9.854 9.229 11.396s-6.957-1.063-13.13-5.816c-6.17-4.749-10.303-9.852-9.227-11.391"/><path d="m4.01 26.336c.425-1.859 5.462-2.188 11.247-.736 5.792 1.451 10.141 4.14 9.716 5.998-.423 1.861-5.46 2.188-11.251.736-5.785-1.455-10.136-4.138-9.712-5.998"/><path d="m6.149 38.604c-.879-1.678 2.271-5.263 7.04-8.01 4.768-2.753 9.34-3.625 10.217-1.951.881 1.677-2.271 5.262-7.04 8.02-4.763 2.748-9.337 3.621-10.216 1.948"/><path d="m9.06 45.01c-1.059-1.247 1.375-5.335 5.431-9.131 4.06-3.802 8.207-5.871 9.265-4.624 1.061 1.242-1.375 5.329-5.434 9.129-4.056 3.794-8.204 5.868-9.262 4.626"/><path d="m11.625 53.51c-1.155-.615-.098-5.242 2.363-10.323 2.46-5.094 5.393-8.717 6.545-8.104 1.157.614.096 5.235-2.362 10.327-2.462 5.084-5.392 8.713-6.546 8.1"/><path d="m17.848 55.38c-1.249-.36-1.099-5.115.339-10.612 1.438-5.505 3.615-9.673 4.863-9.312 1.25.355 1.094 5.109-.342 10.612-1.437 5.497-3.612 9.669-4.86 9.312"/><path d="m22.477 56.863c-.906-.26-.478-4.933.96-10.431 1.438-5.505 3.338-9.754 4.24-9.491.908.256.474 4.932-.961 10.436-1.439 5.497-3.338 9.748-4.239 9.486"/></g><g fill="#bec6c9"><path d="m59.24 10.344c-1.479-1.118-6.444 3.462-11.09 10.229-4.646 6.765-7.213 13.158-5.733 14.275 1.479 1.119 6.44-3.465 11.09-10.233 4.641-6.762 7.213-13.155 5.733-14.271"/><path d="m62.832 18.399c-1.08-1.543-6.957 1.059-13.13 5.812-6.175 4.751-10.308 9.854-9.229 11.393 1.076 1.544 6.957-1.063 13.13-5.813 6.171-4.75 10.304-9.853 9.229-11.392"/><path d="m61.6 28.401c-.428-1.86-5.463-2.188-11.25-.736-5.791 1.452-10.139 4.139-9.715 5.997.422 1.864 5.461 2.188 11.25.736 5.787-1.455 10.138-4.137 9.715-5.997"/><path d="m60.905 38.09c.724-1.755-2.741-5.01-7.731-7.268-4.994-2.263-9.627-2.67-10.348-.915-.726 1.756 2.739 5.01 7.735 7.27 4.992 2.257 9.626 2.669 10.344.913"/><path d="m58.43 44.765c.954-1.466-1.906-5.269-6.392-8.489-4.488-3.228-8.899-4.655-9.854-3.191-.957 1.465 1.907 5.26 6.393 8.49 4.483 3.22 8.896 4.653 9.853 3.19"/><path d="m53.953 50.718c1.25-1.247-.779-5.612-4.529-9.735-3.752-4.132-7.808-6.471-9.05-5.223-1.25 1.245.782 5.605 4.532 9.741 3.752 4.125 7.806 6.467 9.05 5.217"/><path d="m54.52 5.062c-1.162-.6-4.056 3.064-6.451 8.178-2.402 5.124-3.408 9.758-2.248 10.357 1.162.604 4.051-3.065 6.453-8.183 2.398-5.118 3.407-9.754 2.246-10.352"/><path d="m49.701 55.81c1.12-.721-.277-5.254-3.121-10.11-2.853-4.861-6.068-8.214-7.188-7.487-1.125.72.278 5.249 3.125 10.11 2.845 4.859 6.06 8.211 7.184 7.487"/><path d="m44.2 57.56c.926-.175.883-4.874-.097-10.48-.977-5.612-2.518-10.02-3.438-9.841-.927.172-.879 4.871.097 10.481.976 5.613 2.513 10.02 3.438 9.84"/><path d="m39.34 58.993c.929-.141 1.168-4.01.524-8.624-.639-4.629-1.909-8.266-2.84-8.121-.932.138-1.164 4.01-.522 8.63.64 4.626 1.91 8.26 2.838 8.115"/></g><g fill="#e1edf5"><path d="m52.24 6.568c-1.479-1.118-6.445 3.463-11.09 10.229-4.645 6.769-7.213 13.159-5.733 14.277 1.479 1.117 6.442-3.467 11.09-10.232 4.641-6.765 7.213-13.155 5.736-14.274"/><path d="m58.832 14.816c-1.08-1.544-6.957 1.061-13.13 5.811-6.177 4.752-10.308 9.854-9.229 11.396s6.957-1.063 13.13-5.816c6.169-4.749 10.3-9.852 9.227-11.391"/><path d="m59.991 26.336c-.424-1.859-5.461-2.188-11.245-.736-5.791 1.451-10.142 4.14-9.718 5.998.425 1.861 5.461 2.188 11.252.736 5.785-1.455 10.136-4.138 9.711-5.998"/><path d="m57.856 38.604c.879-1.678-2.271-5.263-7.04-8.01-4.767-2.753-9.34-3.625-10.217-1.951-.881 1.677 2.271 5.262 7.04 8.02 4.76 2.748 9.337 3.621 10.215 1.948"/><path d="m54.942 45.01c1.062-1.247-1.375-5.335-5.43-9.131-4.059-3.802-8.207-5.871-9.264-4.624-1.063 1.242 1.375 5.329 5.432 9.129 4.055 3.794 8.207 5.868 9.262 4.626"/><path d="m52.38 53.51c1.151-.615.099-5.242-2.362-10.323-2.462-5.094-5.394-8.717-6.546-8.104-1.157.614-.096 5.235 2.363 10.327 2.461 5.084 5.392 8.713 6.545 8.1"/><path d="m46.15 55.38c1.25-.36 1.101-5.115-.338-10.612-1.438-5.505-3.614-9.673-4.862-9.312-1.25.355-1.095 5.109.342 10.612 1.436 5.497 3.612 9.669 4.858 9.312"/><path d="m41.526 56.863c.906-.26.478-4.933-.961-10.431-1.438-5.505-3.338-9.754-4.237-9.491-.91.256-.476 4.932.959 10.436 1.441 5.497 3.338 9.748 4.239 9.486"/></g><path fill="#594640" d="m52.43 30.629c0 16.783-2.824 18.328-20.426 18.328-17.602 0-20.426-1.545-20.426-18.328 0-10.12 5.985-18.326 20.426-18.326 14.44 0 20.426 8.206 20.426 18.326"/><path fill="#d6a57c" d="m49.832 35.415c-1.951-1.767.064-5.278-2.526-10.302-3.065 3.11-9.237 7.312-20.02 6.933 0 0 .749-.479 1.873-1.309 0 0-3.929.634-7.26-.601 0 0 .564-.322 1.461-.912-3.302.214-5.969.06-7.287-.646 0 0 1 5.631-1.863 6.836 0 0-2.37-.333-2.37 2.724 0 3.676 2.436 3.056 2.436 3.056 0 5.494 5.208 11.512 18.08 11.512 12.198 0 17.483-4.92 17.483-11.512 0 0 2.319.62 2.319-3.056-.003-2.911-2.332-2.723-2.332-2.723"/><g fill="#ff717f"><path opacity=".5" d="m48.51 43.07c-.238-1.817-2.229-2.913-4.443-2.444-2.214.467-3.813 2.318-3.574 4.14.24 1.818 2.23 2.915 4.445 2.447 2.212-.47 3.81-2.323 3.572-4.143"/><path opacity=".5" d="m19.974 40.623c-2.213-.469-4.202.627-4.442 2.444-.239 1.817 1.36 3.673 3.575 4.141 2.213.468 4.2-.63 4.441-2.447.241-1.82-1.36-3.673-3.574-4.138"/></g><path fill="#664e27" d="m26.17 44.704c.984.712 1.934 1.144 2.908 1.43.969.286 1.947.409 2.928.411.98-.005 1.959-.127 2.928-.413.975-.288 1.924-.719 2.908-1.428-.422 1.329-1.357 2.374-2.401 3.042-1.054.674-2.25.998-3.435.998-1.185-.003-2.378-.326-3.432-1-1.047-.668-1.983-1.713-2.404-3.039"/><path fill="#4aa9ff" d="m32 7.135c-8.252 0-14.938 1.418-14.938 4.362 0 2.945 6.688 5.333 14.938 5.333 8.251 0 14.94-2.388 14.94-5.333 0-2.944-6.689-4.362-14.94-4.362m0 5.168c-5.523 0-10-.784-10-1.75s4.477-1.664 10-1.664c5.524 0 10 .698 10 1.664s-4.477 1.75-10 1.75"/><circle fill="#fff" cx="40.562" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="40.562" cy="37.29" rx="3.135" ry="3.098"/><ellipse fill="#231f20" cx="40.562" cy="37.29" rx="1" ry=".987"/><circle fill="#fff" cx="23.443" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="23.442" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="23.442" cy="37.29" rx="1" ry=".987"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m5.4 10.1c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.5-6.8-7-13.2-5.5-14.3"/><path d="m2.2 18.4c1-1.5 6.7 1.1 12.7 5.8 6 4.8 10 9.9 8.9 11.4-1 1.5-6.7-1.1-12.7-5.8-6-4.8-10-9.9-8.9-11.4"/><path d="m3.9 28.4c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.5-9.8-4.1-9.4-6"/><path d="m4 38.1c-.7-1.8 2.7-5 7.5-7.3 4.8-2.3 9.3-2.7 10-.9.7 1.8-2.7 5-7.5 7.3-4.8 2.2-9.3 2.7-10 .9"/><path d="m6.4 44.8c-.9-1.5 1.8-5.3 6.2-8.5 4.3-3.2 8.6-4.7 9.5-3.2.9 1.5-1.8 5.3-6.2 8.5-4.3 3.2-8.6 4.6-9.5 3.2"/><path d="m10.8 50.7c-1.2-1.2.8-5.6 4.4-9.7 3.6-4.1 7.6-6.5 8.8-5.2 1.2 1.2-.8 5.6-4.4 9.7-3.7 4.1-7.6 6.5-8.8 5.2"/><path d="m10.2 5.1c1.1-.6 3.9 3.1 6.2 8.2 2.3 5.1 3.3 9.8 2.2 10.4-1.1.6-3.9-3.1-6.2-8.2-2.3-5.2-3.3-9.8-2.2-10.4"/><path d="m14.9 55.8c-1.1-.7.3-5.3 3-10.1 2.8-4.9 5.9-8.2 7-7.5 1.1.7-.3 5.2-3 10.1-2.8 4.9-5.9 8.2-7 7.5"/><path d="m20.2 57.6c-.9-.2-.9-4.9.1-10.5.9-5.6 2.4-10 3.3-9.8.9.2.9 4.9-.1 10.5-.9 5.5-2.4 9.9-3.3 9.8"/><path d="m24.9 59c-.9-.1-1.1-4-.5-8.6.6-4.6 1.8-8.3 2.7-8.1.9.1 1.1 4 .5 8.6-.6 4.6-1.8 8.2-2.7 8.1"/></g><g fill="#e1edf5"><path d="m13 6.6c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.4-6.8-6.9-13.2-5.5-14.3"/><path d="M6,14.8c1-1.5,6.7,1.1,12.7,5.8c6,4.8,10,9.9,8.9,11.4c-1,1.5-6.7-1.1-12.7-5.8C9,21.5,5,16.4,6,14.8z"/><path d="m4.9 26.3c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.4-9.8-4.1-9.4-6"/><path d="m7 38.6c-.9-1.7 2.2-5.3 6.8-8 4.6-2.8 9-3.6 9.9-2 .9 1.7-2.2 5.3-6.8 8-4.6 2.8-9.1 3.7-9.9 2"/><path d="m9.8 45c-1-1.2 1.3-5.3 5.3-9.1 3.9-3.8 7.9-5.9 9-4.6 1 1.2-1.3 5.3-5.3 9.1-4 3.8-8 5.9-9 4.6"/><path d="m12.3 53.5c-1.1-.6-.1-5.2 2.3-10.3 2.4-5.1 5.2-8.7 6.3-8.1 1.1.6.1 5.2-2.3 10.3-2.4 5.1-5.2 8.7-6.3 8.1"/><path d="m18.3 55.4c-1.2-.4-1.1-5.1.3-10.6 1.4-5.5 3.5-9.7 4.7-9.3 1.2.4 1.1 5.1-.3 10.6-1.4 5.5-3.5 9.6-4.7 9.3"/><path d="m22.8 56.9c-.9-.3-.5-4.9.9-10.4 1.4-5.5 3.2-9.8 4.1-9.5.9.3.5 4.9-.9 10.4-1.4 5.5-3.2 9.7-4.1 9.5"/></g><g fill="#bec6c9"><path d="m58.4 10.3c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.7 6.9-13.1 5.5-14.3"/><path d="m61.8 18.4c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 6-4.8 10-9.9 8.9-11.4"/><path d="m60.6 28.4c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.5 9.8-4.1 9.4-6"/><path d="m60 38.1c.7-1.8-2.7-5-7.5-7.3-4.8-2.3-9.3-2.7-10-.9-.7 1.8 2.7 5 7.5 7.3 4.8 2.2 9.3 2.7 10 .9"/><path d="m57.6 44.8c.9-1.5-1.8-5.3-6.2-8.5-4.3-3.2-8.6-4.7-9.5-3.2-.9 1.5 1.8 5.3 6.2 8.5 4.3 3.2 8.6 4.6 9.5 3.2"/><path d="m53.2 50.7c1.2-1.2-.8-5.6-4.4-9.7-3.6-4.1-7.6-6.5-8.8-5.2-1.2 1.2.8 5.6 4.4 9.7 3.7 4.1 7.6 6.5 8.8 5.2"/><path d="m53.8 5.1c-1.1-.6-3.9 3.1-6.2 8.2-2.3 5.1-3.3 9.8-2.2 10.4 1.1.6 3.9-3.1 6.2-8.2 2.3-5.2 3.3-9.8 2.2-10.4"/><path d="m49.1 55.8c1.1-.7-.3-5.3-3-10.1-2.8-4.9-5.9-8.2-7-7.5-1.1.7.3 5.2 3 10.1 2.8 4.9 5.9 8.2 7 7.5"/><path d="m43.8 57.6c.9-.2.9-4.9-.1-10.5-.9-5.6-2.4-10-3.3-9.8-.9.2-.8 4.9.1 10.5.9 5.5 2.4 9.9 3.3 9.8"/><path d="m39.1 59c.9-.1 1.1-4 .5-8.6-.6-4.6-1.8-8.3-2.8-8.1-.9.1-1.1 4-.5 8.6.7 4.6 1.9 8.2 2.8 8.1"/></g><g fill="#e1edf5"><path d="m51.6 6.6c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.6 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.5-6.8 7-13.2 5.6-14.3"/><path d="m58 14.8c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 5.9-4.7 9.9-9.8 8.9-11.4"/><path d="m59.1 26.3c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.4 9.8-4.1 9.4-6"/><path d="m57 38.6c.8-1.7-2.2-5.3-6.8-8-4.6-2.8-9-3.6-9.9-2-.9 1.7 2.2 5.3 6.8 8 4.6 2.8 9.1 3.7 9.9 2"/><path d="m54.2 45c1-1.2-1.3-5.3-5.3-9.1-3.9-3.8-7.9-5.9-8.9-4.6-1 1.2 1.3 5.3 5.3 9.1 3.9 3.8 7.9 5.9 8.9 4.6"/><path d="m51.7 53.5c1.1-.6.1-5.2-2.3-10.3-2.4-5.1-5.2-8.7-6.3-8.1-1.1.6-.1 5.2 2.3 10.3 2.4 5.1 5.2 8.7 6.3 8.1"/><path d="m45.7 55.4c1.2-.4 1.1-5.1-.3-10.6-1.4-5.5-3.5-9.7-4.7-9.3-1.2.4-1.1 5.1.3 10.6 1.4 5.5 3.5 9.6 4.7 9.3"/><path d="m41.2 56.9c.9-.3.5-4.9-.9-10.4-1.4-5.5-3.2-9.8-4.1-9.5-.9.3-.5 4.9.9 10.4 1.4 5.5 3.2 9.7 4.1 9.5"/></g><path d="m32 12.5c15.3 0 18.7 10.2 18.7 16 0 5.1-.7 7.3-.7 7.3h-36c0 0-.7-2.2-.7-7.3 0-5.8 3.4-16 18.7-16" fill="#594640"/><path d="m48.8 33.2c0 0-.5-2.2-.8-6.8-.3-5-7.3-1-16-1-8.7 0-15.7-4-16 1-.3 4.6-.8 6.8-.8 6.8-4.3 0-4.3 7 .3 7 0 7.6 9.5 12.3 16.5 12.3 7 0 16.5-4.7 16.5-12.3 4.6 0 4.6-7 .3-7" fill="#d6a57c"/><circle cx="40.3" cy="34.8" r="4.3" fill="#fff"/><circle cx="40.3" cy="34.8" r="3" fill="#664e27"/><circle cx="40.3" cy="34.8" r="1" fill="#231f20"/><circle cx="23.7" cy="34.8" r="4.3" fill="#fff"/><circle cx="23.7" cy="34.8" r="3" fill="#664e27"/><circle cx="23.7" cy="34.8" r="1" fill="#231f20"/><path d="m38 44.6c0 2.3-3 3.4-6 3.4-3 0-6-1.1-6-3.4 0 0 0-.6.6-.6 2.7 0 8.1 0 10.8 0 .6 0 .6.6.6.6" fill="#664e27"/><path d="m32 7.1c-8.3 0-14.9 1.4-14.9 4.4s6.7 5.3 14.9 5.3c8.3 0 14.9-2.4 14.9-5.3s-6.7-4.4-14.9-4.4m0 5.2c-5.5 0-10-.8-10-1.8 0-1 4.5-1.7 10-1.7 5.5 0 10 .7 10 1.7 0 1-4.5 1.8-10 1.8" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fe.svg
index 730f54d..bbff87d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m4.481 10.1c1.479-1.117 6.442 3.463 11.09 10.23 4.646 6.767 7.212 13.158 5.734 14.274-1.479 1.121-6.441-3.465-11.09-10.232-4.642-6.764-7.211-13.154-5.732-14.272"/><path d="m1.173 18.399c1.079-1.543 6.957 1.059 13.13 5.812 6.176 4.751 10.307 9.854 9.229 11.393-1.074 1.544-6.956-1.063-13.13-5.813-6.171-4.75-10.304-9.853-9.227-11.392"/><path d="m3.01 28.401c.428-1.86 5.463-2.188 11.248-.736 5.792 1.452 10.14 4.139 9.717 5.997-.424 1.864-5.461 2.188-11.251.736-5.786-1.455-10.136-4.137-9.714-5.997"/><path d="m3.098 38.09c-.722-1.755 2.742-5.01 7.732-7.268 4.996-2.263 9.627-2.67 10.348-.915.725 1.756-2.739 5.01-7.734 7.27-4.992 2.257-9.626 2.669-10.346.913"/><path d="m5.573 44.765c-.955-1.466 1.906-5.269 6.391-8.489 4.489-3.228 8.899-4.655 9.854-3.191.957 1.465-1.905 5.26-6.392 8.49-4.485 3.22-8.897 4.653-9.853 3.19"/><path d="m10.05 50.718c-1.249-1.247.78-5.612 4.531-9.735 3.753-4.132 7.808-6.471 9.05-5.223 1.252 1.245-.782 5.605-4.533 9.741-3.751 4.125-7.804 6.467-9.05 5.217"/><path d="m9.484 5.062c1.161-.6 4.055 3.064 6.451 8.178 2.403 5.124 3.408 9.758 2.246 10.357-1.161.604-4.051-3.065-6.452-8.183-2.398-5.118-3.406-9.754-2.245-10.352"/><path d="m14.302 55.81c-1.12-.721.276-5.254 3.124-10.11 2.849-4.861 6.067-8.214 7.188-7.487 1.124.72-.279 5.249-3.127 10.11-2.846 4.859-6.06 8.211-7.185 7.487"/><path d="m19.801 57.56c-.925-.175-.884-4.874.095-10.48.979-5.612 2.52-10.02 3.44-9.841.926.172.879 4.871-.098 10.481-.976 5.613-2.514 10.02-3.437 9.84"/><path d="m24.665 58.993c-.932-.141-1.168-4.01-.525-8.624.638-4.629 1.91-8.266 2.838-8.121.933.138 1.164 4.01.525 8.63-.642 4.626-1.911 8.26-2.838 8.115"/></g><g fill="#e1edf5"><path d="m12.393 6.568c1.479-1.118 6.445 3.463 11.09 10.229 4.646 6.769 7.214 13.159 5.734 14.277-1.479 1.117-6.442-3.467-11.09-10.232-4.645-6.765-7.213-13.155-5.735-14.274"/><path d="m5.172 14.816c1.08-1.544 6.957 1.061 13.13 5.811 6.175 4.752 10.306 9.854 9.229 11.396s-6.957-1.063-13.13-5.816c-6.17-4.749-10.303-9.852-9.227-11.391"/><path d="m4.01 26.336c.425-1.859 5.462-2.188 11.247-.736 5.792 1.451 10.141 4.14 9.716 5.998-.423 1.861-5.46 2.188-11.251.736-5.785-1.455-10.136-4.138-9.712-5.998"/><path d="m6.149 38.604c-.879-1.678 2.271-5.263 7.04-8.01 4.768-2.753 9.34-3.625 10.217-1.951.881 1.677-2.271 5.262-7.04 8.02-4.762 2.748-9.337 3.621-10.216 1.948"/><path d="m9.06 45.01c-1.059-1.247 1.375-5.335 5.431-9.131 4.06-3.802 8.207-5.871 9.265-4.624 1.061 1.242-1.375 5.329-5.434 9.129-4.056 3.794-8.205 5.868-9.262 4.626"/><path d="m11.626 53.51c-1.155-.615-.098-5.242 2.363-10.323 2.46-5.094 5.393-8.717 6.545-8.104 1.157.614.096 5.235-2.362 10.327-2.462 5.084-5.393 8.713-6.546 8.1"/><path d="m17.849 55.38c-1.249-.36-1.099-5.115.339-10.612 1.438-5.505 3.615-9.673 4.863-9.312 1.25.355 1.094 5.109-.342 10.612-1.438 5.497-3.612 9.669-4.86 9.312"/><path d="m22.478 56.863c-.906-.26-.478-4.933.96-10.431 1.438-5.505 3.338-9.754 4.24-9.491.908.256.474 4.932-.961 10.436-1.44 5.497-3.338 9.748-4.239 9.486"/></g><g fill="#bec6c9"><path d="m59.24 10.344c-1.479-1.118-6.444 3.462-11.09 10.229-4.646 6.765-7.213 13.158-5.733 14.275 1.479 1.119 6.44-3.465 11.09-10.233 4.641-6.762 7.213-13.155 5.733-14.271"/><path d="m62.832 18.399c-1.08-1.543-6.957 1.059-13.13 5.812-6.175 4.751-10.308 9.854-9.229 11.393 1.076 1.544 6.957-1.063 13.13-5.813 6.171-4.75 10.304-9.853 9.229-11.392"/><path d="m61.6 28.401c-.428-1.86-5.463-2.188-11.25-.736-5.791 1.452-10.139 4.139-9.715 5.997.422 1.864 5.461 2.188 11.25.736 5.787-1.455 10.138-4.137 9.715-5.997"/><path d="m60.905 38.09c.724-1.755-2.741-5.01-7.731-7.268-4.994-2.263-9.627-2.67-10.348-.915-.726 1.756 2.739 5.01 7.735 7.27 4.992 2.257 9.626 2.669 10.344.913"/><path d="m58.43 44.765c.954-1.466-1.906-5.269-6.392-8.489-4.488-3.228-8.899-4.655-9.854-3.191-.957 1.465 1.907 5.26 6.393 8.49 4.483 3.22 8.896 4.653 9.853 3.19"/><path d="m53.953 50.718c1.25-1.247-.779-5.612-4.529-9.735-3.752-4.132-7.808-6.471-9.05-5.223-1.25 1.245.782 5.605 4.532 9.741 3.752 4.125 7.806 6.467 9.05 5.217"/><path d="m54.52 5.062c-1.162-.6-4.056 3.064-6.451 8.178-2.402 5.124-3.408 9.758-2.248 10.357 1.162.604 4.051-3.065 6.453-8.183 2.398-5.118 3.407-9.754 2.246-10.352"/><path d="m49.701 55.81c1.12-.721-.277-5.254-3.121-10.11-2.853-4.861-6.068-8.214-7.188-7.487-1.125.72.278 5.249 3.125 10.11 2.845 4.859 6.06 8.211 7.184 7.487"/><path d="m44.2 57.56c.926-.175.883-4.874-.097-10.48-.977-5.612-2.518-10.02-3.438-9.841-.927.172-.879 4.871.097 10.481.976 5.613 2.513 10.02 3.438 9.84"/><path d="m39.34 58.993c.929-.141 1.168-4.01.524-8.624-.639-4.629-1.909-8.266-2.84-8.121-.932.138-1.164 4.01-.522 8.63.64 4.626 1.91 8.26 2.838 8.115"/></g><g fill="#e1edf5"><path d="m52.24 6.568c-1.479-1.118-6.445 3.463-11.09 10.229-4.645 6.769-7.213 13.159-5.733 14.277 1.479 1.117 6.442-3.467 11.09-10.232 4.641-6.765 7.213-13.155 5.736-14.274"/><path d="m58.832 14.816c-1.08-1.544-6.957 1.061-13.13 5.811-6.177 4.752-10.308 9.854-9.229 11.396s6.957-1.063 13.13-5.816c6.169-4.749 10.3-9.852 9.227-11.391"/><path d="m59.991 26.336c-.424-1.859-5.461-2.188-11.245-.736-5.791 1.451-10.142 4.14-9.718 5.998.425 1.861 5.461 2.188 11.252.736 5.785-1.455 10.136-4.138 9.711-5.998"/><path d="m57.856 38.604c.879-1.678-2.271-5.263-7.04-8.01-4.767-2.753-9.34-3.625-10.217-1.951-.881 1.677 2.271 5.262 7.04 8.02 4.76 2.748 9.337 3.621 10.215 1.948"/><path d="m54.942 45.01c1.062-1.247-1.375-5.335-5.43-9.131-4.059-3.802-8.207-5.871-9.264-4.624-1.063 1.242 1.375 5.329 5.432 9.129 4.055 3.794 8.207 5.868 9.262 4.626"/><path d="m52.38 53.51c1.151-.615.099-5.242-2.362-10.323-2.462-5.094-5.394-8.717-6.546-8.104-1.157.614-.096 5.235 2.363 10.327 2.461 5.084 5.392 8.713 6.545 8.1"/><path d="m46.15 55.38c1.25-.36 1.101-5.115-.338-10.612-1.438-5.505-3.614-9.673-4.862-9.312-1.25.355-1.095 5.109.342 10.612 1.436 5.497 3.612 9.669 4.858 9.312"/><path d="m41.526 56.863c.906-.26.478-4.933-.961-10.431-1.438-5.505-3.338-9.754-4.237-9.491-.91.256-.476 4.932.959 10.436 1.441 5.497 3.338 9.748 4.239 9.486"/></g><path fill="#231f20" d="m52.43 30.629c0 16.783-2.824 18.328-20.426 18.328s-20.426-1.545-20.426-18.328c0-10.12 5.985-18.326 20.426-18.326s20.426 8.206 20.426 18.326"/><path fill="#b47d56" d="m49.832 35.415c-1.951-1.767.064-5.278-2.526-10.302-3.065 3.11-9.237 7.312-20.02 6.933 0 0 .749-.479 1.873-1.309 0 0-3.929.634-7.26-.601 0 0 .564-.322 1.461-.912-3.302.214-5.969.06-7.287-.646 0 0 1 5.631-1.863 6.836 0 0-2.37-.333-2.37 2.724 0 3.676 2.436 3.056 2.436 3.056 0 5.494 5.208 11.512 18.08 11.512 12.197 0 17.482-4.92 17.482-11.512 0 0 2.319.62 2.319-3.056-.002-2.911-2.331-2.723-2.331-2.723"/><g fill="#ff717f"><path opacity=".5" d="m48.51 43.07c-.238-1.817-2.229-2.913-4.443-2.444-2.214.467-3.813 2.318-3.574 4.14.24 1.818 2.23 2.915 4.445 2.447 2.212-.47 3.81-2.323 3.572-4.143"/><path opacity=".5" d="m19.975 40.623c-2.213-.469-4.202.627-4.442 2.444-.239 1.817 1.36 3.673 3.575 4.141 2.213.468 4.2-.63 4.441-2.447.24-1.82-1.361-3.673-3.574-4.138"/></g><path fill="#574137" d="m26.17 44.704c.984.712 1.934 1.144 2.908 1.43.969.286 1.947.409 2.928.411.98-.005 1.959-.127 2.928-.413.975-.288 1.924-.719 2.908-1.428-.422 1.329-1.357 2.374-2.401 3.042-1.054.674-2.25.998-3.435.998-1.185-.003-2.378-.326-3.432-1-1.047-.668-1.982-1.713-2.404-3.039"/><path fill="#4aa9ff" d="m32 7.135c-8.252 0-14.938 1.418-14.938 4.362 0 2.945 6.688 5.333 14.938 5.333 8.251 0 14.939-2.388 14.939-5.333 0-2.944-6.689-4.362-14.939-4.362m0 5.168c-5.523 0-10-.784-10-1.75s4.477-1.664 10-1.664 10 .698 10 1.664-4.478 1.75-10 1.75"/><circle fill="#fff" cx="40.562" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="40.562" cy="37.29" rx="3.135" ry="3.098"/><ellipse fill="#231f20" cx="40.562" cy="37.29" rx="1" ry=".987"/><circle fill="#fff" cx="23.443" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="23.442" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="23.441" cy="37.29" rx="1" ry=".987"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m5.4 10.1c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.5-6.8-7-13.2-5.5-14.3"/><path d="m2.2 18.4c1-1.5 6.7 1.1 12.7 5.8 6 4.8 10 9.9 8.9 11.4-1 1.5-6.7-1.1-12.7-5.8-6-4.8-10-9.9-8.9-11.4"/><path d="m3.9 28.4c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.5-9.8-4.1-9.4-6"/><path d="m4 38.1c-.7-1.8 2.7-5 7.5-7.3 4.8-2.3 9.3-2.7 10-.9.7 1.8-2.7 5-7.5 7.3-4.8 2.2-9.3 2.7-10 .9"/><path d="m6.4 44.8c-.9-1.5 1.8-5.3 6.2-8.5 4.3-3.2 8.6-4.7 9.5-3.2.9 1.5-1.8 5.3-6.2 8.5-4.3 3.2-8.6 4.6-9.5 3.2"/><path d="m10.8 50.7c-1.2-1.2.8-5.6 4.4-9.7 3.6-4.1 7.6-6.5 8.8-5.2 1.2 1.2-.8 5.6-4.4 9.7-3.7 4.1-7.6 6.5-8.8 5.2"/><path d="m10.2 5.1c1.1-.6 3.9 3.1 6.2 8.2 2.3 5.1 3.3 9.8 2.2 10.4-1.1.6-3.9-3.1-6.2-8.2-2.3-5.2-3.3-9.8-2.2-10.4"/><path d="m14.9 55.8c-1.1-.7.3-5.3 3-10.1 2.8-4.9 5.9-8.2 7-7.5 1.1.7-.3 5.2-3 10.1-2.8 4.9-5.9 8.2-7 7.5"/><path d="m20.2 57.6c-.9-.2-.9-4.9.1-10.5.9-5.6 2.4-10 3.3-9.8.9.2.9 4.9-.1 10.5-.9 5.5-2.4 9.9-3.3 9.8"/><path d="m24.9 59c-.9-.1-1.1-4-.5-8.6.6-4.6 1.8-8.3 2.7-8.1.9.1 1.1 4 .5 8.6-.6 4.6-1.8 8.2-2.7 8.1"/></g><g fill="#e1edf5"><path d="m13 6.6c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.4-6.8-6.9-13.2-5.5-14.3"/><path d="M6,14.8c1-1.5,6.7,1.1,12.7,5.8c6,4.8,10,9.9,8.9,11.4c-1,1.5-6.7-1.1-12.7-5.8C9,21.5,5,16.4,6,14.8z"/><path d="m4.9 26.3c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.4-9.8-4.1-9.4-6"/><path d="m7 38.6c-.9-1.7 2.2-5.3 6.8-8 4.6-2.8 9-3.6 9.9-2 .9 1.7-2.2 5.3-6.8 8-4.6 2.8-9.1 3.7-9.9 2"/><path d="m9.8 45c-1-1.2 1.3-5.3 5.3-9.1 3.9-3.8 7.9-5.9 9-4.6 1 1.2-1.3 5.3-5.3 9.1-4 3.8-8 5.9-9 4.6"/><path d="m12.3 53.5c-1.1-.6-.1-5.2 2.3-10.3 2.4-5.1 5.2-8.7 6.3-8.1 1.1.6.1 5.2-2.3 10.3-2.4 5.1-5.2 8.7-6.3 8.1"/><path d="m18.3 55.4c-1.2-.4-1.1-5.1.3-10.6 1.4-5.5 3.5-9.7 4.7-9.3 1.2.4 1.1 5.1-.3 10.6-1.4 5.5-3.5 9.6-4.7 9.3"/><path d="m22.8 56.9c-.9-.3-.5-4.9.9-10.4 1.4-5.5 3.2-9.8 4.1-9.5.9.3.5 4.9-.9 10.4-1.4 5.5-3.2 9.7-4.1 9.5"/></g><g fill="#bec6c9"><path d="m58.4 10.3c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.7 6.9-13.1 5.5-14.3"/><path d="m61.8 18.4c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 6-4.8 10-9.9 8.9-11.4"/><path d="m60.6 28.4c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.5 9.8-4.1 9.4-6"/><path d="m60 38.1c.7-1.8-2.7-5-7.5-7.3-4.8-2.3-9.3-2.7-10-.9-.7 1.8 2.7 5 7.5 7.3 4.8 2.2 9.3 2.7 10 .9"/><path d="m57.6 44.8c.9-1.5-1.8-5.3-6.2-8.5-4.3-3.2-8.6-4.7-9.5-3.2-.9 1.5 1.8 5.3 6.2 8.5 4.3 3.2 8.6 4.6 9.5 3.2"/><path d="m53.2 50.7c1.2-1.2-.8-5.6-4.4-9.7-3.6-4.1-7.6-6.5-8.8-5.2-1.2 1.2.8 5.6 4.4 9.7 3.7 4.1 7.6 6.5 8.8 5.2"/><path d="m53.8 5.1c-1.1-.6-3.9 3.1-6.2 8.2-2.3 5.1-3.3 9.8-2.2 10.4 1.1.6 3.9-3.1 6.2-8.2 2.3-5.2 3.3-9.8 2.2-10.4"/><path d="m49.1 55.8c1.1-.7-.3-5.3-3-10.1-2.8-4.9-5.9-8.2-7-7.5-1.1.7.3 5.2 3 10.1 2.8 4.9 5.9 8.2 7 7.5"/><path d="m43.8 57.6c.9-.2.9-4.9-.1-10.5-.9-5.6-2.4-10-3.3-9.8-.9.2-.8 4.9.1 10.5.9 5.5 2.4 9.9 3.3 9.8"/><path d="m39.1 59c.9-.1 1.1-4 .5-8.6-.6-4.6-1.8-8.3-2.8-8.1-.9.1-1.1 4-.5 8.6.7 4.6 1.9 8.2 2.8 8.1"/></g><g fill="#e1edf5"><path d="m51.6 6.6c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.6 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.5-6.8 7-13.2 5.6-14.3"/><path d="m58 14.8c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 5.9-4.7 9.9-9.8 8.9-11.4"/><path d="m59.1 26.3c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.4 9.8-4.1 9.4-6"/><path d="m57 38.6c.8-1.7-2.2-5.3-6.8-8-4.6-2.8-9-3.6-9.9-2-.9 1.7 2.2 5.3 6.8 8 4.6 2.8 9.1 3.7 9.9 2"/><path d="m54.2 45c1-1.2-1.3-5.3-5.3-9.1-3.9-3.8-7.9-5.9-8.9-4.6-1 1.2 1.3 5.3 5.3 9.1 3.9 3.8 7.9 5.9 8.9 4.6"/><path d="m51.7 53.5c1.1-.6.1-5.2-2.3-10.3-2.4-5.1-5.2-8.7-6.3-8.1-1.1.6-.1 5.2 2.3 10.3 2.4 5.1 5.2 8.7 6.3 8.1"/><path d="m45.7 55.4c1.2-.4 1.1-5.1-.3-10.6-1.4-5.5-3.5-9.7-4.7-9.3-1.2.4-1.1 5.1.3 10.6 1.4 5.5 3.5 9.6 4.7 9.3"/><path d="m41.2 56.9c.9-.3.5-4.9-.9-10.4-1.4-5.5-3.2-9.8-4.1-9.5-.9.3-.5 4.9.9 10.4 1.4 5.5 3.2 9.7 4.1 9.5"/></g><path d="m32 12.5c15.3 0 18.7 10.2 18.7 16 0 5.1-.7 7.3-.7 7.3h-36c0 0-.7-2.2-.7-7.3 0-5.8 3.4-16 18.7-16" fill="#231f20"/><path d="m48.8 33.2c0 0-.5-2.2-.8-6.8-.3-5-7.3-1-16-1-8.7 0-15.7-4-16 1-.3 4.6-.8 6.8-.8 6.8-4.3 0-4.3 7 .3 7 0 7.6 9.5 12.3 16.5 12.3 7 0 16.5-4.7 16.5-12.3 4.6 0 4.6-7 .3-7" fill="#b47d56"/><circle cx="40.3" cy="34.8" r="4.3" fill="#fff"/><circle cx="40.3" cy="34.8" r="3" fill="#664e27"/><circle cx="40.3" cy="34.8" r="1" fill="#231f20"/><circle cx="23.7" cy="34.8" r="4.3" fill="#fff"/><circle cx="23.7" cy="34.8" r="3" fill="#664e27"/><circle cx="23.7" cy="34.8" r="1" fill="#231f20"/><path d="m38 44.6c0 2.3-3 3.4-6 3.4-3 0-6-1.1-6-3.4 0 0 0-.6.6-.6 2.7 0 8.1 0 10.8 0 .6 0 .6.6.6.6" fill="#664e27"/><path d="m32 7.1c-8.3 0-14.9 1.4-14.9 4.4s6.7 5.3 14.9 5.3c8.3 0 14.9-2.4 14.9-5.3s-6.7-4.4-14.9-4.4m0 5.2c-5.5 0-10-.8-10-1.8 0-1 4.5-1.7 10-1.7 5.5 0 10 .7 10 1.7 0 1-4.5 1.8-10 1.8" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3ff.svg
index 1c9b51d..5e7bb9f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47c-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m4.482 10.1c1.479-1.117 6.441 3.463 11.09 10.23 4.646 6.767 7.213 13.158 5.734 14.274-1.479 1.121-6.441-3.465-11.09-10.232-4.642-6.764-7.213-13.154-5.732-14.272"/><path d="m1.173 18.399c1.078-1.543 6.957 1.059 13.13 5.812 6.176 4.751 10.307 9.854 9.23 11.393-1.074 1.544-6.957-1.063-13.13-5.813-6.169-4.75-10.304-9.853-9.226-11.392"/><path d="m3.01 28.401c.428-1.86 5.463-2.188 11.248-.736 5.793 1.452 10.141 4.139 9.717 5.997-.424 1.864-5.461 2.188-11.25.736-5.787-1.455-10.137-4.137-9.715-5.997"/><path d="m3.097 38.09c-.721-1.755 2.742-5.01 7.732-7.268 4.996-2.263 9.627-2.67 10.348-.915.725 1.756-2.738 5.01-7.734 7.27-4.99 2.257-9.625 2.669-10.346.913"/><path d="m5.574 44.765c-.955-1.466 1.906-5.269 6.391-8.489 4.488-3.228 8.898-4.655 9.854-3.191.957 1.465-1.904 5.26-6.391 8.49-4.487 3.22-8.899 4.653-9.854 3.19"/><path d="m10.05 50.718c-1.25-1.247.779-5.612 4.531-9.735 3.752-4.132 7.807-6.471 9.05-5.223 1.252 1.245-.781 5.605-4.533 9.741-3.75 4.125-7.803 6.467-9.05 5.217"/><path d="m9.484 5.062c1.162-.6 4.055 3.064 6.451 8.178 2.404 5.124 3.408 9.758 2.246 10.357-1.16.604-4.051-3.065-6.451-8.183-2.398-5.118-3.406-9.754-2.246-10.352"/><path d="m14.302 55.81c-1.121-.721.275-5.254 3.123-10.11 2.85-4.861 6.068-8.214 7.189-7.487 1.123.72-.279 5.249-3.127 10.11-2.847 4.859-6.06 8.211-7.185 7.487"/><path d="m19.8 57.56c-.924-.175-.883-4.874.096-10.48.979-5.612 2.52-10.02 3.439-9.841.926.172.879 4.871-.098 10.481-.976 5.613-2.513 10.02-3.437 9.84"/><path d="m24.666 58.993c-.932-.141-1.168-4.01-.525-8.624.637-4.629 1.91-8.266 2.838-8.121.932.138 1.164 4.01.525 8.63-.643 4.626-1.913 8.26-2.838 8.115"/></g><g fill="#e1edf5"><path d="m12.392 6.568c1.48-1.118 6.445 3.463 11.09 10.229 4.646 6.769 7.215 13.159 5.734 14.277-1.479 1.117-6.441-3.467-11.09-10.232-4.644-6.765-7.212-13.155-5.736-14.274"/><path d="m5.171 14.816c1.08-1.544 6.957 1.061 13.13 5.811 6.176 4.752 10.307 9.854 9.229 11.396-1.076 1.542-6.957-1.063-13.13-5.816-6.17-4.749-10.303-9.852-9.227-11.391"/><path d="m4.01 26.336c.424-1.859 5.461-2.188 11.246-.736 5.793 1.451 10.141 4.14 9.717 5.998-.424 1.861-5.461 2.188-11.252.736-5.785-1.455-10.135-4.138-9.711-5.998"/><path d="m6.15 38.604c-.879-1.678 2.271-5.263 7.04-8.01 4.768-2.753 9.34-3.625 10.217-1.951.881 1.677-2.271 5.262-7.04 8.02-4.762 2.748-9.336 3.621-10.215 1.948"/><path d="m9.06 45.01c-1.059-1.247 1.375-5.335 5.432-9.131 4.059-3.802 8.207-5.871 9.264-4.624 1.061 1.242-1.375 5.329-5.434 9.129-4.055 3.794-8.203 5.868-9.262 4.626"/><path d="m11.626 53.51c-1.156-.615-.098-5.242 2.363-10.323 2.459-5.094 5.393-8.717 6.545-8.104 1.156.614.096 5.235-2.363 10.327-2.461 5.084-5.392 8.713-6.545 8.1"/><path d="m17.849 55.38c-1.25-.36-1.1-5.115.338-10.612 1.439-5.505 3.615-9.673 4.863-9.312 1.25.355 1.094 5.109-.342 10.612-1.437 5.497-3.611 9.669-4.859 9.312"/><path d="m22.478 56.863c-.906-.26-.479-4.933.959-10.431 1.439-5.505 3.338-9.754 4.24-9.491.908.256.475 4.932-.961 10.436-1.439 5.497-3.338 9.748-4.238 9.486"/></g><g fill="#bec6c9"><path d="m59.24 10.344c-1.48-1.118-6.445 3.462-11.09 10.229-4.646 6.765-7.213 13.158-5.734 14.275 1.48 1.119 6.441-3.465 11.09-10.233 4.642-6.762 7.213-13.155 5.734-14.271"/><path d="m62.832 18.399c-1.08-1.543-6.957 1.059-13.13 5.812-6.174 4.751-10.307 9.854-9.229 11.393 1.076 1.544 6.957-1.063 13.13-5.813 6.172-4.75 10.305-9.853 9.229-11.392"/><path d="m61.6 28.401c-.428-1.86-5.463-2.188-11.25-.736-5.791 1.452-10.139 4.139-9.715 5.997.422 1.864 5.461 2.188 11.25.736 5.787-1.455 10.139-4.137 9.715-5.997"/><path d="m60.906 38.09c.723-1.755-2.742-5.01-7.732-7.268-4.994-2.263-9.627-2.67-10.348-.915-.725 1.756 2.74 5.01 7.736 7.27 4.991 2.257 9.626 2.669 10.344.913"/><path d="m58.43 44.765c.953-1.466-1.906-5.269-6.393-8.489-4.488-3.228-8.898-4.655-9.854-3.191-.957 1.465 1.906 5.26 6.393 8.49 4.484 3.22 8.897 4.653 9.854 3.19"/><path d="m53.953 50.718c1.25-1.247-.779-5.612-4.529-9.735-3.752-4.132-7.807-6.471-9.05-5.223-1.25 1.245.783 5.605 4.533 9.741 3.752 4.125 7.805 6.467 9.05 5.217"/><path d="m54.52 5.062c-1.162-.6-4.057 3.064-6.451 8.178-2.402 5.124-3.408 9.758-2.248 10.357 1.162.604 4.051-3.065 6.453-8.183 2.397-5.118 3.407-9.754 2.246-10.352"/><path d="m49.701 55.81c1.121-.721-.277-5.254-3.121-10.11-2.852-4.861-6.068-8.214-7.188-7.487-1.125.72.277 5.249 3.125 10.11 2.846 4.859 6.06 8.211 7.184 7.487"/><path d="m44.2 57.56c.926-.175.883-4.874-.096-10.48-.977-5.612-2.518-10.02-3.439-9.841-.926.172-.879 4.871.098 10.481.976 5.613 2.513 10.02 3.437 9.84"/><path d="m39.34 58.993c.93-.141 1.168-4.01.525-8.624-.639-4.629-1.91-8.266-2.84-8.121-.932.138-1.164 4.01-.523 8.63.641 4.626 1.91 8.26 2.838 8.115"/></g><g fill="#e1edf5"><path d="m52.24 6.568c-1.479-1.118-6.445 3.463-11.09 10.229-4.645 6.769-7.213 13.159-5.734 14.277 1.48 1.117 6.443-3.467 11.09-10.232 4.642-6.765 7.213-13.155 5.736-14.274"/><path d="m58.832 14.816c-1.08-1.544-6.957 1.061-13.13 5.811-6.176 4.752-10.307 9.854-9.229 11.396s6.957-1.063 13.13-5.816c6.17-4.749 10.301-9.852 9.227-11.391"/><path d="m59.992 26.336c-.424-1.859-5.461-2.188-11.246-.736-5.791 1.451-10.141 4.14-9.717 5.998.424 1.861 5.461 2.188 11.252.736 5.785-1.455 10.135-4.138 9.711-5.998"/><path d="m57.857 38.604c.879-1.678-2.271-5.263-7.03-8.01-4.768-2.753-9.34-3.625-10.217-1.951-.881 1.677 2.27 5.262 7.04 8.02 4.76 2.748 9.337 3.621 10.215 1.948"/><path d="m54.943 45.01c1.061-1.247-1.375-5.335-5.43-9.131-4.059-3.802-8.207-5.871-9.264-4.624-1.063 1.242 1.375 5.329 5.432 9.129 4.055 3.794 8.206 5.868 9.262 4.626"/><path d="m52.38 53.51c1.152-.615.1-5.242-2.361-10.323-2.463-5.094-5.395-8.717-6.547-8.104-1.156.614-.096 5.235 2.363 10.327 2.461 5.084 5.393 8.713 6.545 8.1"/><path d="m46.15 55.38c1.25-.36 1.1-5.115-.338-10.612-1.438-5.505-3.615-9.673-4.863-9.312-1.25.355-1.094 5.109.342 10.612 1.437 5.497 3.613 9.669 4.859 9.312"/><path d="m41.527 56.863c.906-.26.477-4.933-.961-10.431-1.438-5.505-3.338-9.754-4.238-9.491-.91.256-.475 4.932.959 10.436 1.442 5.497 3.338 9.748 4.24 9.486"/></g><path fill="#231f20" d="m52.43 30.629c0 16.783-2.824 18.328-20.426 18.328-17.602 0-20.426-1.545-20.426-18.328 0-10.12 5.986-18.326 20.426-18.326 14.441 0 20.426 8.206 20.426 18.326"/><path fill="#8a6859" d="m49.832 35.415c-1.951-1.767.064-5.278-2.525-10.302-3.066 3.11-9.238 7.312-20.02 6.933 0 0 .75-.479 1.873-1.309 0 0-3.928.634-7.26-.601 0 0 .564-.322 1.461-.912-3.301.214-5.969.06-7.287-.646 0 0 1 5.631-1.863 6.836 0 0-2.369-.333-2.369 2.724 0 3.676 2.436 3.056 2.436 3.056 0 5.494 5.207 11.512 18.08 11.512 12.198 0 17.483-4.92 17.483-11.512 0 0 2.32.62 2.32-3.056-.003-2.911-2.333-2.723-2.333-2.723"/><g fill="#ff717f"><path opacity=".5" d="m48.51 43.07c-.238-1.817-2.229-2.913-4.443-2.444-2.213.467-3.813 2.318-3.574 4.14.24 1.818 2.23 2.915 4.445 2.447 2.212-.47 3.81-2.323 3.572-4.143"/><path opacity=".5" d="m19.974 40.623c-2.213-.469-4.201.627-4.441 2.444s1.359 3.673 3.574 4.141c2.213.468 4.201-.63 4.441-2.447.241-1.82-1.359-3.673-3.574-4.138"/></g><circle fill="#fff" cx="40.563" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="40.563" cy="37.29" rx="3.135" ry="3.098"/><ellipse fill="#231f20" cx="40.563" cy="37.29" rx="1" ry=".987"/><circle fill="#fff" cx="23.444" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="23.444" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="23.443" cy="37.29" rx="1" ry=".987"/><path fill="#574137" d="m26.17 44.704c.984.712 1.934 1.144 2.908 1.43.969.286 1.947.409 2.928.411.98-.005 1.959-.127 2.928-.413.975-.288 1.924-.719 2.908-1.428-.422 1.329-1.357 2.374-2.4 3.042-1.055.674-2.25.998-3.436.998-1.184-.003-2.377-.326-3.432-1-1.047-.668-1.983-1.713-2.404-3.039"/><path fill="#4aa9ff" d="m32 7.135c-8.252 0-14.938 1.418-14.938 4.362 0 2.945 6.688 5.333 14.938 5.333 8.252 0 14.94-2.388 14.94-5.333 0-2.944-6.689-4.362-14.94-4.362m0 5.168c-5.523 0-10-.784-10-1.75s4.477-1.664 10-1.664c5.524 0 10 .698 10 1.664s-4.478 1.75-10 1.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m5.4 11.1c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.5-6.8-7-13.2-5.5-14.3"/><path d="m2.2 19.4c1-1.5 6.7 1.1 12.7 5.8 6 4.8 10 9.9 8.9 11.4-1 1.5-6.7-1.1-12.7-5.8-6-4.8-10-9.9-8.9-11.4"/><path d="m3.9 29.4c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.5-9.8-4.1-9.4-6"/><path d="m4 39.1c-.7-1.8 2.7-5 7.5-7.3 4.8-2.3 9.3-2.7 10-.9.7 1.8-2.7 5-7.5 7.3-4.8 2.2-9.3 2.7-10 .9"/><path d="m6.4 45.8c-.9-1.5 1.8-5.3 6.2-8.5 4.3-3.2 8.6-4.7 9.5-3.2.9 1.5-1.8 5.3-6.2 8.5-4.3 3.2-8.6 4.6-9.5 3.2"/><path d="m10.8 51.7c-1.2-1.2.8-5.6 4.4-9.7 3.6-4.1 7.6-6.5 8.8-5.2 1.2 1.2-.8 5.6-4.4 9.7-3.7 4.1-7.6 6.5-8.8 5.2"/><path d="m10.2 6.1c1.1-.6 3.9 3.1 6.2 8.2 2.3 5.1 3.3 9.8 2.2 10.4-1.1.6-3.9-3.1-6.2-8.2-2.3-5.2-3.3-9.8-2.2-10.4"/><path d="m14.9 56.8c-1.1-.7.3-5.3 3-10.1 2.8-4.9 5.9-8.2 7-7.5 1.1.7-.3 5.2-3 10.1-2.8 4.9-5.9 8.2-7 7.5"/><path d="m20.2 58.6c-.9-.2-.9-4.9.1-10.5.9-5.6 2.4-10 3.3-9.8.9.2.9 4.9-.1 10.5-.9 5.5-2.4 9.9-3.3 9.8"/><path d="m24.9 60c-.9-.1-1.1-4-.5-8.6.6-4.6 1.8-8.3 2.7-8.1.9.1 1.1 4 .5 8.6-.6 4.6-1.8 8.2-2.7 8.1"/></g><g fill="#e1edf5"><path d="m13 7.6c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.4-6.8-6.9-13.2-5.5-14.3"/><path d="M6,15.8c1-1.5,6.7,1.1,12.7,5.8c6,4.8,10,9.9,8.9,11.4c-1,1.5-6.7-1.1-12.7-5.8C9,22.5,5,17.4,6,15.8z"/><path d="m4.9 27.3c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.4-9.8-4.1-9.4-6"/><path d="m7 39.6c-.9-1.7 2.2-5.3 6.8-8 4.6-2.8 9-3.6 9.9-2 .9 1.7-2.2 5.3-6.8 8-4.6 2.8-9.1 3.7-9.9 2"/><path d="m9.8 46c-1-1.2 1.3-5.3 5.3-9.1 3.9-3.8 7.9-5.9 9-4.6 1 1.2-1.3 5.3-5.3 9.1-4 3.8-8 5.9-9 4.6"/><path d="m12.3 54.5c-1.1-.6-.1-5.2 2.3-10.3 2.4-5.1 5.2-8.7 6.3-8.1 1.1.6.1 5.2-2.3 10.3-2.4 5.1-5.2 8.7-6.3 8.1"/><path d="m18.3 56.4c-1.2-.4-1.1-5.1.3-10.6 1.4-5.5 3.5-9.7 4.7-9.3 1.2.4 1.1 5.1-.3 10.6-1.4 5.5-3.5 9.6-4.7 9.3"/><path d="m22.8 57.9c-.9-.3-.5-4.9.9-10.4 1.4-5.5 3.2-9.8 4.1-9.5.9.3.5 4.9-.9 10.4-1.4 5.5-3.2 9.7-4.1 9.5"/></g><g fill="#bec6c9"><path d="m58.4 11.3c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.7 6.9-13.1 5.5-14.3"/><path d="m61.8 19.4c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 6-4.8 10-9.9 8.9-11.4"/><path d="m60.6 29.4c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.5 9.8-4.1 9.4-6"/><path d="m60 39.1c.7-1.8-2.7-5-7.5-7.3-4.8-2.3-9.3-2.7-10-.9-.7 1.8 2.7 5 7.5 7.3 4.8 2.2 9.3 2.7 10 .9"/><path d="m57.6 45.8c.9-1.5-1.8-5.3-6.2-8.5-4.3-3.2-8.6-4.7-9.5-3.2-.9 1.5 1.8 5.3 6.2 8.5 4.3 3.2 8.6 4.6 9.5 3.2"/><path d="m53.2 51.7c1.2-1.2-.8-5.6-4.4-9.7-3.6-4.1-7.6-6.5-8.8-5.2-1.2 1.2.8 5.6 4.4 9.7 3.7 4.1 7.6 6.5 8.8 5.2"/><path d="m53.8 6.1c-1.1-.6-3.9 3.1-6.2 8.2-2.3 5.1-3.3 9.8-2.2 10.4 1.1.6 3.9-3.1 6.2-8.2 2.3-5.2 3.3-9.8 2.2-10.4"/><path d="m49.1 56.8c1.1-.7-.3-5.3-3-10.1-2.8-4.9-5.9-8.2-7-7.5-1.1.7.3 5.2 3 10.1 2.8 4.9 5.9 8.2 7 7.5"/><path d="m43.8 58.6c.9-.2.9-4.9-.1-10.5-.9-5.6-2.4-10-3.3-9.8-.9.2-.8 4.9.1 10.5.9 5.5 2.4 9.9 3.3 9.8"/><path d="m39.1 60c.9-.1 1.1-4 .5-8.6-.6-4.6-1.8-8.3-2.7-8.1-.9.1-1.1 4-.5 8.6.6 4.6 1.8 8.2 2.7 8.1"/></g><g fill="#e1edf5"><path d="m51.6 7.6c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.8 6.9-13.2 5.5-14.3"/><path d="m58 15.8c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 5.9-4.7 9.9-9.8 8.9-11.4"/><path d="m59.1 27.3c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.4 9.8-4.1 9.4-6"/><path d="m57 39.6c.8-1.7-2.2-5.3-6.8-8-4.6-2.8-9-3.6-9.9-2-.9 1.7 2.2 5.3 6.8 8 4.6 2.8 9.1 3.7 9.9 2"/><path d="m54.2 46c1-1.2-1.3-5.3-5.3-9.1-3.9-3.8-7.9-5.9-8.9-4.6-1 1.2 1.3 5.3 5.3 9.1 3.9 3.8 7.9 5.9 8.9 4.6"/><path d="m51.7 54.5c1.1-.6.1-5.2-2.3-10.3-2.4-5.1-5.2-8.7-6.3-8.1-1.1.6-.1 5.2 2.3 10.3 2.4 5.1 5.2 8.7 6.3 8.1"/><path d="m45.7 56.4c1.2-.4 1.1-5.1-.3-10.6-1.4-5.5-3.5-9.7-4.7-9.3-1.2.4-1.1 5.1.3 10.6 1.4 5.5 3.5 9.6 4.7 9.3"/><path d="m41.2 57.9c.9-.3.5-4.9-.9-10.4-1.4-5.5-3.2-9.8-4.1-9.5-.9.3-.5 4.9.9 10.4 1.4 5.5 3.2 9.7 4.1 9.5"/></g><path d="m32 13.5c15.3 0 18.7 10.2 18.7 16 0 5.1-.7 7.3-.7 7.3h-36c0 0-.7-2.2-.7-7.3 0-5.8 3.4-16 18.7-16" fill="#231f20"/><path d="m48.8 34.2c0 0-.5-2.2-.8-6.8-.3-5-7.3-1-16-1-8.7 0-15.7-4-16 1-.3 4.6-.8 6.8-.8 6.8-4.3 0-4.3 7 .3 7 0 7.6 9.5 12.3 16.5 12.3 7 0 16.5-4.7 16.5-12.3 4.6 0 4.6-7 .3-7" fill="#8a6859"/><circle cx="40.3" cy="35.8" r="4.3" fill="#fff"/><circle cx="40.3" cy="35.8" r="3" fill="#664e27"/><circle cx="40.3" cy="35.8" r="1" fill="#231f20"/><circle cx="23.7" cy="35.8" r="4.3" fill="#fff"/><circle cx="23.7" cy="35.8" r="3" fill="#664e27"/><circle cx="23.7" cy="35.8" r="1" fill="#231f20"/><path d="m38 45.6c0 2.3-3 3.4-6 3.4-3 0-6-1.1-6-3.4 0 0 0-.6.6-.6 2.7 0 8.1 0 10.8 0 .6 0 .6.6.6.6" fill="#574137"/><path d="m32 8.1c-8.3 0-14.9 1.4-14.9 4.4s6.7 5.3 14.9 5.3c8.3 0 14.9-2.4 14.9-5.3s-6.7-4.4-14.9-4.4m0 5.2c-5.5 0-10-.8-10-1.8 0-1 4.5-1.7 10-1.7 5.5 0 10 .7 10 1.7 0 1-4.5 1.8-10 1.8" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47c.svg
index 6c5b731..fd6002a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m4.481 10.1c1.479-1.117 6.442 3.463 11.09 10.23 4.646 6.767 7.212 13.159 5.734 14.275-1.479 1.121-6.441-3.465-11.09-10.233-4.642-6.763-7.211-13.154-5.732-14.272"/><path d="m1.173 18.4c1.079-1.543 6.957 1.059 13.13 5.812 6.176 4.751 10.307 9.854 9.229 11.393-1.074 1.544-6.956-1.063-13.13-5.814-6.171-4.749-10.304-9.853-9.227-11.391"/><path d="m3.01 28.402c.428-1.86 5.463-2.188 11.248-.736 5.792 1.452 10.14 4.139 9.717 5.998-.424 1.864-5.461 2.188-11.251.736-5.786-1.456-10.136-4.138-9.714-5.998"/><path d="m3.098 38.1c-.722-1.755 2.742-5.01 7.732-7.268 4.996-2.263 9.627-2.67 10.348-.916.725 1.756-2.739 5.01-7.734 7.27-4.992 2.258-9.626 2.67-10.346.914"/><path d="m5.573 44.766c-.955-1.466 1.906-5.269 6.391-8.489 4.489-3.228 8.899-4.655 9.854-3.191.957 1.465-1.905 5.26-6.392 8.49-4.485 3.22-8.897 4.653-9.853 3.19"/><path d="m10.05 50.719c-1.249-1.247.78-5.612 4.531-9.735 3.753-4.132 7.808-6.471 9.05-5.223 1.252 1.245-.782 5.605-4.533 9.741-3.751 4.125-7.804 6.467-9.05 5.217"/><path d="m9.484 5.062c1.161-.6 4.055 3.064 6.451 8.178 2.403 5.124 3.408 9.758 2.246 10.357-1.161.604-4.051-3.065-6.452-8.183-2.398-5.118-3.406-9.753-2.245-10.352"/><path d="m14.302 55.811c-1.12-.721.276-5.254 3.124-10.11 2.849-4.861 6.067-8.214 7.188-7.487 1.124.72-.279 5.249-3.127 10.11-2.846 4.859-6.06 8.211-7.185 7.487"/><path d="m19.801 57.57c-.925-.175-.884-4.874.095-10.48.979-5.612 2.52-10.02 3.44-9.841.926.172.879 4.871-.098 10.481-.976 5.613-2.514 10.02-3.437 9.84"/><path d="m24.665 58.994c-.932-.141-1.168-4.01-.525-8.624.638-4.629 1.91-8.266 2.838-8.121.933.138 1.164 4.01.525 8.63-.642 4.626-1.911 8.26-2.838 8.115"/></g><g fill="#e1edf5"><path d="m12.393 6.569c1.479-1.118 6.445 3.463 11.09 10.229 4.646 6.769 7.214 13.159 5.734 14.278-1.479 1.117-6.442-3.467-11.09-10.233-4.645-6.765-7.213-13.156-5.735-14.274"/><path d="m5.172 14.817c1.08-1.544 6.957 1.061 13.13 5.811 6.175 4.752 10.306 9.854 9.229 11.396s-6.957-1.063-13.13-5.817c-6.17-4.749-10.303-9.851-9.227-11.39"/><path d="m4.01 26.336c.425-1.859 5.462-2.188 11.247-.736 5.792 1.451 10.141 4.14 9.716 5.999-.423 1.861-5.46 2.188-11.251.736-5.785-1.455-10.136-4.138-9.712-5.999"/><path d="m6.149 38.605c-.879-1.678 2.271-5.263 7.04-8.01 4.768-2.753 9.34-3.625 10.217-1.952.881 1.677-2.271 5.262-7.04 8.02-4.762 2.749-9.337 3.622-10.216 1.949"/><path d="m9.06 45.01c-1.059-1.247 1.375-5.335 5.431-9.131 4.06-3.802 8.207-5.871 9.265-4.624 1.061 1.242-1.375 5.329-5.434 9.129-4.056 3.794-8.205 5.868-9.262 4.626"/><path d="m11.626 53.51c-1.155-.615-.098-5.242 2.363-10.323 2.46-5.094 5.393-8.717 6.545-8.104 1.157.614.096 5.235-2.362 10.327-2.462 5.084-5.393 8.713-6.546 8.1"/><path d="m17.849 55.38c-1.249-.36-1.099-5.115.339-10.612 1.438-5.505 3.615-9.673 4.863-9.312 1.25.355 1.094 5.109-.342 10.612-1.438 5.497-3.612 9.669-4.86 9.312"/><path d="m22.478 56.864c-.906-.26-.478-4.933.96-10.431 1.438-5.505 3.338-9.754 4.24-9.491.908.256.474 4.932-.961 10.436-1.44 5.497-3.338 9.748-4.239 9.486"/></g><g fill="#bec6c9"><path d="m59.24 10.344c-1.479-1.118-6.444 3.462-11.09 10.229-4.646 6.765-7.213 13.159-5.733 14.276 1.479 1.119 6.44-3.465 11.09-10.234 4.641-6.762 7.213-13.155 5.733-14.271"/><path d="m62.832 18.4c-1.08-1.543-6.957 1.059-13.13 5.812-6.175 4.751-10.308 9.854-9.229 11.393 1.076 1.544 6.957-1.063 13.13-5.814 6.171-4.749 10.304-9.853 9.229-11.391"/><path d="m61.6 28.402c-.428-1.86-5.463-2.188-11.25-.736-5.791 1.452-10.139 4.139-9.715 5.998.422 1.864 5.461 2.188 11.25.736 5.787-1.456 10.138-4.138 9.715-5.998"/><path d="m60.905 38.1c.724-1.755-2.741-5.01-7.731-7.268-4.994-2.263-9.627-2.67-10.348-.916-.726 1.756 2.739 5.01 7.735 7.27 4.992 2.258 9.626 2.67 10.344.914"/><path d="m58.43 44.766c.954-1.466-1.906-5.269-6.392-8.489-4.488-3.228-8.899-4.655-9.854-3.191-.957 1.465 1.907 5.26 6.393 8.49 4.483 3.22 8.896 4.653 9.853 3.19"/><path d="m53.953 50.719c1.25-1.247-.779-5.612-4.529-9.735-3.752-4.132-7.808-6.471-9.05-5.223-1.25 1.245.782 5.605 4.532 9.741 3.752 4.125 7.806 6.467 9.05 5.217"/><path d="m54.52 5.062c-1.162-.6-4.056 3.064-6.451 8.178-2.402 5.124-3.408 9.758-2.248 10.357 1.162.604 4.051-3.065 6.453-8.183 2.398-5.118 3.407-9.753 2.246-10.352"/><path d="m49.701 55.811c1.12-.721-.277-5.254-3.121-10.11-2.853-4.861-6.068-8.214-7.188-7.487-1.125.72.278 5.249 3.125 10.11 2.845 4.859 6.06 8.211 7.184 7.487"/><path d="m44.2 57.57c.926-.175.883-4.874-.097-10.48-.977-5.612-2.518-10.02-3.438-9.841-.927.172-.879 4.871.097 10.481.976 5.613 2.513 10.02 3.438 9.84"/><path d="m39.34 58.994c.929-.141 1.168-4.01.524-8.624-.639-4.629-1.909-8.266-2.84-8.121-.932.138-1.164 4.01-.522 8.63.64 4.626 1.91 8.26 2.838 8.115"/></g><g fill="#e1edf5"><path d="m52.24 6.569c-1.479-1.118-6.445 3.463-11.09 10.229-4.645 6.769-7.213 13.159-5.733 14.278 1.479 1.117 6.442-3.467 11.09-10.233 4.641-6.765 7.213-13.156 5.736-14.274"/><path d="m58.832 14.817c-1.08-1.544-6.957 1.061-13.13 5.811-6.177 4.752-10.308 9.854-9.229 11.396s6.957-1.063 13.13-5.817c6.169-4.749 10.3-9.851 9.227-11.39"/><path d="m59.991 26.336c-.424-1.859-5.461-2.188-11.245-.736-5.791 1.451-10.142 4.14-9.718 5.999.425 1.861 5.461 2.188 11.252.736 5.785-1.455 10.136-4.138 9.711-5.999"/><path d="m57.856 38.605c.879-1.678-2.271-5.263-7.04-8.01-4.767-2.753-9.34-3.625-10.217-1.952-.881 1.677 2.271 5.262 7.04 8.02 4.76 2.749 9.337 3.622 10.215 1.949"/><path d="m54.942 45.01c1.062-1.247-1.375-5.335-5.43-9.131-4.059-3.802-8.207-5.871-9.264-4.624-1.063 1.242 1.375 5.329 5.432 9.129 4.055 3.794 8.207 5.868 9.262 4.626"/><path d="m52.38 53.51c1.151-.615.099-5.242-2.362-10.323-2.462-5.094-5.394-8.717-6.546-8.104-1.157.614-.096 5.235 2.363 10.327 2.461 5.084 5.392 8.713 6.545 8.1"/><path d="m46.15 55.38c1.25-.36 1.101-5.115-.338-10.612-1.438-5.505-3.614-9.673-4.862-9.312-1.25.355-1.095 5.109.342 10.612 1.436 5.497 3.612 9.669 4.858 9.312"/><path d="m41.526 56.864c.906-.26.478-4.933-.961-10.431-1.438-5.505-3.338-9.754-4.237-9.491-.91.256-.476 4.932.959 10.436 1.441 5.497 3.338 9.748 4.239 9.486"/></g><path fill="#231f20" d="m52.43 30.63c0 16.783-2.824 18.328-20.426 18.328s-20.426-1.545-20.426-18.328c0-10.121 5.985-18.327 20.426-18.327s20.426 8.206 20.426 18.327"/><path fill="#ffdd67" d="m49.832 35.416c-1.951-1.767.064-5.278-2.526-10.302-3.065 3.11-9.237 7.312-20.02 6.933 0 0 .749-.479 1.873-1.309 0 0-3.929.634-7.26-.601 0 0 .564-.323 1.461-.913-3.302.214-5.969.06-7.287-.646 0 0 1 5.631-1.863 6.836 0 0-2.37-.333-2.37 2.724 0 3.676 2.436 3.056 2.436 3.056 0 5.494 5.208 11.512 18.08 11.512 12.197 0 17.482-4.92 17.482-11.512 0 0 2.319.62 2.319-3.056-.002-2.91-2.331-2.722-2.331-2.722"/><g fill="#ff717f"><path opacity=".5" d="m48.51 43.07c-.238-1.817-2.229-2.913-4.443-2.444-2.214.467-3.813 2.318-3.574 4.14.24 1.818 2.23 2.915 4.445 2.447 2.212-.47 3.81-2.323 3.572-4.143"/><path opacity=".5" d="m19.975 40.624c-2.213-.469-4.202.627-4.442 2.444-.239 1.817 1.36 3.673 3.575 4.141 2.213.468 4.2-.63 4.441-2.447.24-1.82-1.361-3.673-3.574-4.138"/></g><path fill="#664e27" d="m26.17 44.705c.984.712 1.934 1.144 2.908 1.43.969.286 1.947.409 2.928.411.98-.005 1.959-.127 2.928-.413.975-.288 1.924-.719 2.908-1.428-.422 1.329-1.357 2.374-2.401 3.042-1.054.674-2.25.998-3.435.998-1.185-.003-2.378-.326-3.432-1-1.047-.668-1.982-1.713-2.404-3.039"/><path fill="#4aa9ff" d="m32 7.135c-8.252 0-14.938 1.418-14.938 4.362 0 2.945 6.688 5.333 14.938 5.333 8.251 0 14.939-2.388 14.939-5.333 0-2.944-6.689-4.362-14.939-4.362m0 5.168c-5.523 0-10-.784-10-1.75s4.477-1.664 10-1.664 10 .698 10 1.664-4.478 1.75-10 1.75"/><circle fill="#fff" cx="40.562" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="40.562" cy="37.29" rx="3.135" ry="3.098"/><ellipse fill="#231f20" cx="40.562" cy="37.29" rx="1" ry=".987"/><circle fill="#fff" cx="23.442" cy="37.29" r="4.5"/><ellipse fill="#664e27" cx="23.442" cy="37.29" rx="3.134" ry="3.098"/><ellipse fill="#231f20" cx="23.441" cy="37.29" rx="1" ry=".987"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#bec6c9"><path d="m5.4 10.1c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.5-6.8-7-13.2-5.5-14.3"/><path d="m2.2 18.4c1-1.5 6.7 1.1 12.7 5.8 6 4.8 10 9.9 8.9 11.4-1 1.5-6.7-1.1-12.7-5.8-6-4.8-10-9.9-8.9-11.4"/><path d="m3.9 28.4c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.5-9.8-4.1-9.4-6"/><path d="m4 38.1c-.7-1.8 2.7-5 7.5-7.3 4.8-2.3 9.3-2.7 10-.9.7 1.8-2.7 5-7.5 7.3-4.8 2.2-9.3 2.7-10 .9"/><path d="m6.4 44.8c-.9-1.5 1.8-5.3 6.2-8.5 4.3-3.2 8.6-4.7 9.5-3.2.9 1.5-1.8 5.3-6.2 8.5-4.3 3.2-8.6 4.6-9.5 3.2"/><path d="m10.8 50.7c-1.2-1.2.8-5.6 4.4-9.7 3.6-4.1 7.6-6.5 8.8-5.2 1.2 1.2-.8 5.6-4.4 9.7-3.7 4.1-7.6 6.5-8.8 5.2"/><path d="m10.2 5.1c1.1-.6 3.9 3.1 6.2 8.2 2.3 5.1 3.3 9.8 2.2 10.4-1.1.6-3.9-3.1-6.2-8.2-2.3-5.2-3.3-9.8-2.2-10.4"/><path d="m14.9 55.8c-1.1-.7.3-5.3 3-10.1 2.8-4.9 5.9-8.2 7-7.5 1.1.7-.3 5.2-3 10.1-2.8 4.9-5.9 8.2-7 7.5"/><path d="m20.2 57.6c-.9-.2-.9-4.9.1-10.5.9-5.6 2.4-10 3.3-9.8.9.2.9 4.9-.1 10.5-.9 5.5-2.4 9.9-3.3 9.8"/><path d="m24.9 59c-.9-.1-1.1-4-.5-8.6.6-4.6 1.8-8.3 2.7-8.1.9.1 1.1 4 .5 8.6-.6 4.6-1.8 8.2-2.7 8.1"/></g><g fill="#e1edf5"><path d="m13 6.6c1.4-1.1 6.2 3.5 10.7 10.2 4.5 6.8 7 13.2 5.5 14.3-1.4 1.1-6.2-3.5-10.7-10.2-4.4-6.8-6.9-13.2-5.5-14.3"/><path d="M6,14.8c1-1.5,6.7,1.1,12.7,5.8c6,4.8,10,9.9,8.9,11.4c-1,1.5-6.7-1.1-12.7-5.8C9,21.5,5,16.4,6,14.8z"/><path d="m4.9 26.3c.4-1.9 5.3-2.2 10.9-.7 5.6 1.5 9.8 4.1 9.4 6-.4 1.9-5.3 2.2-10.9.7-5.6-1.4-9.8-4.1-9.4-6"/><path d="m7 38.6c-.9-1.7 2.2-5.3 6.8-8 4.6-2.8 9-3.6 9.9-2 .9 1.7-2.2 5.3-6.8 8-4.6 2.8-9.1 3.7-9.9 2"/><path d="m9.8 45c-1-1.2 1.3-5.3 5.3-9.1 3.9-3.8 7.9-5.9 9-4.6 1 1.2-1.3 5.3-5.3 9.1-4 3.8-8 5.9-9 4.6"/><path d="m12.3 53.5c-1.1-.6-.1-5.2 2.3-10.3 2.4-5.1 5.2-8.7 6.3-8.1 1.1.6.1 5.2-2.3 10.3-2.4 5.1-5.2 8.7-6.3 8.1"/><path d="m18.3 55.4c-1.2-.4-1.1-5.1.3-10.6 1.4-5.5 3.5-9.7 4.7-9.3 1.2.4 1.1 5.1-.3 10.6-1.4 5.5-3.5 9.6-4.7 9.3"/><path d="m22.8 56.9c-.9-.3-.5-4.9.9-10.4 1.4-5.5 3.2-9.8 4.1-9.5.9.3.5 4.9-.9 10.4-1.4 5.5-3.2 9.7-4.1 9.5"/></g><g fill="#bec6c9"><path d="m58.4 10.3c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.7 6.9-13.1 5.5-14.3"/><path d="m61.8 18.4c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4 1 1.5 6.7-1.1 12.7-5.8 6-4.8 10-9.9 8.9-11.4"/><path d="m60.6 28.4c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.5 9.8-4.1 9.4-6"/><path d="m60 38.1c.7-1.8-2.7-5-7.5-7.3-4.8-2.3-9.3-2.7-10-.9-.7 1.8 2.7 5 7.5 7.3 4.8 2.2 9.3 2.7 10 .9"/><path d="m57.6 44.8c.9-1.5-1.8-5.3-6.2-8.5-4.3-3.2-8.6-4.7-9.5-3.2-.9 1.5 1.8 5.3 6.2 8.5 4.3 3.2 8.6 4.6 9.5 3.2"/><path d="m53.2 50.7c1.2-1.2-.8-5.6-4.4-9.7-3.6-4.1-7.6-6.5-8.8-5.2-1.2 1.2.8 5.6 4.4 9.7 3.7 4.1 7.6 6.5 8.8 5.2"/><path d="m53.8 5.1c-1.1-.6-3.9 3.1-6.2 8.2-2.3 5.1-3.3 9.8-2.2 10.4 1.1.6 3.9-3.1 6.2-8.2 2.3-5.2 3.3-9.8 2.2-10.4"/><path d="m49.1 55.8c1.1-.7-.3-5.3-3-10.1-2.8-4.9-5.9-8.2-7-7.5-1.1.7.3 5.2 3 10.1 2.8 4.9 5.9 8.2 7 7.5"/><path d="m43.8 57.6c.9-.2.9-4.9-.1-10.5-.9-5.6-2.4-10-3.3-9.8-.9.2-.8 4.9.1 10.5.9 5.5 2.4 9.9 3.3 9.8"/><path d="m39.1 59c.9-.1 1.1-4 .5-8.6-.6-4.6-1.8-8.3-2.7-8.1-.9.1-1.1 4-.5 8.6.6 4.6 1.8 8.2 2.7 8.1"/></g><g fill="#e1edf5"><path d="m51.6 6.6c-1.4-1.1-6.2 3.5-10.7 10.2-4.5 6.8-7 13.2-5.5 14.3 1.4 1.1 6.2-3.5 10.7-10.2 4.4-6.8 6.9-13.2 5.5-14.3"/><path d="m58 14.8c-1-1.5-6.7 1.1-12.7 5.8-6 4.8-10 9.9-8.9 11.4s6.7-1 12.6-5.8c6-4.7 10-9.8 9-11.4"/><path d="m59.1 26.3c-.4-1.9-5.3-2.2-10.9-.7-5.6 1.5-9.8 4.1-9.4 6 .4 1.9 5.3 2.2 10.9.7 5.6-1.4 9.8-4.1 9.4-6"/><path d="m57 38.6c.8-1.7-2.2-5.3-6.8-8-4.6-2.8-9-3.6-9.9-2-.9 1.7 2.2 5.3 6.8 8 4.6 2.8 9.1 3.7 9.9 2"/><path d="m54.2 45c1-1.2-1.3-5.3-5.3-9.1-3.9-3.8-7.9-5.9-8.9-4.6-1 1.2 1.3 5.3 5.3 9.1 3.9 3.8 7.9 5.9 8.9 4.6"/><path d="m51.7 53.5c1.1-.6.1-5.2-2.3-10.3-2.4-5.1-5.2-8.7-6.3-8.1-1.1.6-.1 5.2 2.3 10.3 2.4 5.1 5.2 8.7 6.3 8.1"/><path d="m45.7 55.4c1.2-.4 1.1-5.1-.3-10.6-1.4-5.5-3.5-9.7-4.7-9.3-1.2.4-1.1 5.1.3 10.6 1.4 5.5 3.5 9.6 4.7 9.3"/><path d="m41.2 56.9c.9-.3.5-4.9-.9-10.4-1.4-5.5-3.2-9.8-4.1-9.5-.9.3-.5 4.9.9 10.4 1.4 5.5 3.2 9.7 4.1 9.5"/></g><path d="m32 12.5c15.3 0 18.7 10.2 18.7 16 0 5.1-.7 7.3-.7 7.3h-36c0 0-.7-2.2-.7-7.3 0-5.8 3.4-16 18.7-16" fill="#ffb300"/><path d="m48.8 33.2c0 0-.5-2.2-.8-6.8-.3-5-7.3-1-16-1-8.7 0-15.7-4-16 1-.3 4.6-.8 6.8-.8 6.8-4.3 0-4.3 7 .3 7 0 7.6 9.5 12.3 16.5 12.3 7 0 16.5-4.7 16.5-12.3 4.6 0 4.6-7 .3-7" fill="#ffdd67"/><circle cx="40.3" cy="34.8" r="4.3" fill="#fff"/><circle cx="40.3" cy="34.8" r="3" fill="#664e27"/><circle cx="40.3" cy="34.8" r="1" fill="#231f20"/><circle cx="23.7" cy="34.8" r="4.3" fill="#fff"/><circle cx="23.7" cy="34.8" r="3" fill="#664e27"/><circle cx="23.7" cy="34.8" r="1" fill="#231f20"/><path d="m38 44.6c0 2.3-3 3.4-6 3.4s-6-1.1-6-3.4c0 0 0-.6.6-.6 2.7 0 8.1 0 10.8 0 .6 0 .6.6.6.6" fill="#937237"/><path d="m32 7.1c-8.3 0-14.9 1.4-14.9 4.4 0 2.9 6.7 5.3 14.9 5.3 8.3 0 14.9-2.4 14.9-5.3 0-2.9-6.7-4.4-14.9-4.4m0 5.2c-5.5 0-10-.8-10-1.8s4.5-1.7 10-1.7c5.5 0 10 .7 10 1.7s-4.5 1.8-10 1.8" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47d.svg
index ac90a0c..fff8d2f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47d.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c7e755" d="M59.5,30.607C59.5,54.065,32.001,62,32.001,62S4.5,54.065,4.5,30.607C4.5,13.124,15.491,2,32.001,2
- C48.508,2,59.5,13.124,59.5,30.607z"/><g fill="#454749"><path d="m23.378 26.359c3.961 3.828 5.124 8.911 2.597 11.351-2.525 2.441-7.785 1.316-11.749-2.511-3.963-3.829-5.128-8.91-2.599-11.353 2.525-2.442 7.788-1.316 11.751 2.513"/><path d="m26.429 30.578c-2.584-2.256-5.191-4.149-8.03-5.711-1.414-.777-2.869-1.482-4.383-2.105-1.515-.625-3.079-1.165-4.705-1.761 1.719-.231 3.47-.105 5.168.271 1.7.376 3.359.993 4.888 1.847 1.533.848 2.939 1.921 4.159 3.167 1.209 1.244 2.276 2.663 2.901 4.292"/></g><path fill="#fff" d="m20.378 25.05c2.032 1.247 3.134 3.086 2.463 4.106-.669 1.022-2.861.838-4.894-.409-2.028-1.247-3.134-3.086-2.464-4.106.673-1.022 2.864-.837 4.895.409"/><g fill="#454749"><path d="m40.622 26.358c-3.962 3.828-5.126 8.912-2.6 11.352 2.527 2.442 7.788 1.317 11.749-2.512 3.964-3.828 5.128-8.91 2.602-11.353-2.527-2.44-7.788-1.315-11.751 2.513"/><path d="m37.571 30.577c.624-1.628 1.691-3.047 2.901-4.293 1.219-1.245 2.625-2.319 4.158-3.166 1.529-.854 3.188-1.47 4.888-1.847 1.699-.376 3.449-.502 5.168-.271-1.627.597-3.19 1.137-4.705 1.761-1.514.623-2.968 1.328-4.383 2.105-2.835 1.562-5.443 3.455-8.03 5.711"/></g><path fill="#fff" d="m43.619 25.05c-2.031 1.245-3.134 3.084-2.464 4.104.671 1.022 2.863.838 4.895-.408 2.03-1.248 3.134-3.085 2.465-4.105-.673-1.022-2.864-.838-4.896.409"/><path fill="#454749" stroke="#454749" stroke-miterlimit="10" d="m31.999 48.617c-7.621 0-10.692-3.673-10.692-2.422 0 1.941 4.78 4.429 10.692 4.429s10.694-2.487 10.694-4.429c0-1.251-3.073 2.422-10.694 2.422z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M59.5,30.6C59.5,54.1,32,62,32,62S4.5,54.1,4.5,30.6C4.5,13.1,15.5,2,32,2C48.5,2,59.5,13.1,59.5,30.6z" fill="#c7e755"/><g fill="#454749"><path d="m23.4 26.4c4 3.8 5.1 8.9 2.6 11.4-2.5 2.4-7.8 1.3-11.7-2.5-4-3.8-5.1-8.9-2.6-11.4 2.5-2.5 7.7-1.4 11.7 2.5"/><path d="m26.4 30.6c-2.6-2.3-5.2-4.1-8-5.7-1.4-.8-2.9-1.5-4.4-2.1-1.5-.6-3.1-1.2-4.7-1.8 1.7-.2 3.5-.1 5.2.3 1.7.4 3.4 1 4.9 1.8 1.5.8 2.9 1.9 4.2 3.2 1.1 1.2 2.2 2.6 2.8 4.3"/></g><path d="m20.4 25c2 1.2 3.1 3.1 2.5 4.1-.7 1-2.9.8-4.9-.4-2-1.2-3.1-3.1-2.5-4.1.7-1 2.8-.8 4.9.4" fill="#fff"/><g fill="#454749"><path d="m40.6 26.4c-4 3.8-5.1 8.9-2.6 11.4 2.5 2.4 7.8 1.3 11.7-2.5 4-3.8 5.1-8.9 2.6-11.4-2.5-2.5-7.7-1.4-11.7 2.5"/><path d="m37.6 30.6c.6-1.6 1.7-3 2.9-4.3 1.2-1.2 2.6-2.3 4.2-3.2 1.5-.9 3.2-1.5 4.9-1.8 1.7-.4 3.4-.5 5.2-.3-1.6.6-3.2 1.1-4.7 1.8-1.5.6-3 1.3-4.4 2.1-2.9 1.5-5.5 3.4-8.1 5.7"/></g><path d="m43.6 25c-2 1.2-3.1 3.1-2.5 4.1.7 1 2.9.8 4.9-.4 2-1.2 3.1-3.1 2.5-4.1-.7-1-2.8-.8-4.9.4" fill="#fff"/><path d="m32 48.6c-7.6 0-10.7-3.7-10.7-2.4 0 1.9 4.8 4.4 10.7 4.4s10.7-2.5 10.7-4.4c0-1.3-3.1 2.4-10.7 2.4z" fill="#454749" stroke="#454749" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47e.svg
index e0c06a5..0d4c47c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#592f5d"><path d="m9.937 43.872c-.253 0-.51-.073-.737-.228-.237-.16-5.821-3.989-6.987-10.2-.648-3.449.188-6.91 2.486-10.288 3.761-5.527 5.066-10.07 3.879-13.505-1.288-3.724-5.254-4.943-5.294-4.955-.71-.212-1.123-.972-.918-1.699.204-.728.942-1.151 1.654-.944.216.062 5.308 1.587 7.079 6.648 1.511 4.322.1 9.713-4.195 16.03-1.864 2.741-2.556 5.494-2.056 8.183.942 5.064 5.785 8.409 5.833 8.442.617.42.787 1.272.377 1.904-.258.399-.685.616-1.121.616"/><path d="m54.06 43.872c-.437 0-.864-.218-1.122-.617-.408-.634-.237-1.486.382-1.904.047-.032 4.89-3.377 5.831-8.441.501-2.689-.191-5.442-2.057-8.183-4.294-6.313-5.706-11.704-4.193-16.03 1.77-5.061 6.861-6.586 7.078-6.648.712-.206 1.456.218 1.657.948.201.729-.211 1.486-.922 1.695-.04.012-4.01 1.231-5.294 4.956-1.187 3.435.118 7.978 3.88 13.505 2.297 3.377 3.134 6.839 2.486 10.288-1.167 6.211-6.751 10.04-6.987 10.2-.229.154-.485.227-.739.227"/></g><path fill-rule="evenodd" fill="#917dbc" d="m32 6.211c-7.107 0-26.339 10.523-26.14 35.451.034 3.955.233 13.983 2.227 15.638 1.999 1.659 6.948-2.594 9.283-1.472 2.415 1.158 3.25 5.52 5.885 6.104 2.669.591 5.995-2.859 8.739-2.858 2.743-.001 6.074 3.45 8.745 2.859 2.631-.584 3.47-4.947 5.885-6.104 2.335-1.12 7.28 3.132 9.279 1.472 1.996-1.655 2.194-11.683 2.228-15.638.186-22.585-16.828-35.452-26.13-35.452"/><g fill="#fff"><path d="m48.759 30.616c3.614 3.891 3.624 10.224.002 14.12s-9.503 3.892-13.11 0c-.001 0 9.5-18.02 13.11-14.12"/><path d="m13.552 36.3c-3.318 8 2.092 5.918 6.771 8.166 4.677 2.248 8.08 5 10.165-.022-.001-.001-14.853-13.169-16.936-8.144"/></g><g fill="#592f5d"><path d="m20.927 42.18c0 2.025 1.528 3.668 3.408 3.668 1.88 0 3.406-1.643 3.406-3.668 0-.01-.003-.02-.003-.028-1.281-1.028-2.89-2.261-4.566-3.407-1.306.514-2.245 1.851-2.245 3.435"/><path d="m40.799 45.847c1.881 0 3.406-1.643 3.406-3.668 0-2.026-1.525-3.669-3.406-3.669-.694 0-1.339.226-1.875.609-.54.855-1.036 1.675-1.47 2.414-.036.21-.062.424-.062.646.001 2.025 1.524 3.668 3.407 3.668"/></g><g fill="#62fbf6"><path d="m32 26.05c-8.06 0-9.02 1.853-10.298-.458-.61-1.102 2.239-3.207 10.298-3.207 8.06 0 10.906 2.105 10.298 3.207-1.28 2.31-2.238.458-10.298.458"/><path d="m32 19.02c-8.06 0-9.02 1.853-10.298-.458-.61-1.101 2.239-3.206 10.298-3.206 8.06 0 10.906 2.105 10.298 3.206-1.28 2.311-2.238.458-10.298.458"/><path d="m17.15 51.26c-.681 1.431-3.302 1.561-5.855.292-2.554-1.271-4.072-3.459-3.392-4.891.679-1.43 3.3-1.56 5.854-.29 2.554 1.27 4.072 3.46 3.393 4.889"/><path d="m46.849 51.26c.681 1.431 3.302 1.561 5.855.292 2.554-1.271 4.072-3.459 3.392-4.891-.679-1.43-3.301-1.56-5.854-.29-2.554 1.27-4.072 3.46-3.393 4.889"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#592f5d"><path d="m9.9 43.9c-.3 0-.5-.1-.7-.2-.2-.2-5.8-4-7-10.2-.6-3.5.2-7 2.5-10.3 3.8-5.5 5.1-10.1 3.9-13.5-1.3-3.7-5.3-4.9-5.3-5-.7-.2-1.1-1-.9-1.7.2-.7.9-1.2 1.6-.9.2.1 5.3 1.6 7.1 6.6 1.5 4.3.1 9.7-4.2 16-1.9 2.7-2.6 5.5-2.1 8.2.9 5.1 5.8 8.4 5.8 8.4.6.4.8 1.3.4 1.9-.2.5-.6.7-1.1.7"/><path d="m54.1 43.9c-.4 0-.9-.2-1.1-.6-.4-.6-.2-1.5.4-1.9 0 0 4.9-3.4 5.8-8.4.5-2.7-.2-5.4-2.1-8.2-4.3-6.3-5.7-11.7-4.2-16 1.8-5.1 6.9-6.6 7.1-6.6.7-.2 1.5.2 1.7.9.2.7-.2 1.5-.9 1.7 0 0-4 1.2-5.3 5-1.2 3.4.1 8 3.9 13.5 2.3 3.4 3.1 6.8 2.5 10.3-1.2 6.2-6.8 10-7 10.2-.3 0-.6.1-.8.1"/></g><path d="m32 6.2c-7.1 0-26.3 10.5-26.1 35.5 0 4 .2 14 2.2 15.6 2 1.7 6.9-2.6 9.3-1.5 2.4 1.2 3.2 5.5 5.9 6.1 2.7.6 6-2.9 8.7-2.9 2.7 0 6.1 3.5 8.7 2.9 2.6-.6 3.5-4.9 5.9-6.1 2.3-1.1 7.3 3.1 9.3 1.5 2-1.7 2.2-11.7 2.2-15.6.2-22.6-16.8-35.5-26.1-35.5" fill="#917dbc"/><g fill="#fff"><path d="m48.8 30.6c3.6 3.9 3.6 10.2 0 14.1s-9.5 3.9-13.1 0c-.1 0 9.4-18 13.1-14.1"/><path d="m13.6 36.3c-3.3 8 2.1 5.9 6.8 8.2 4.7 2.2 8.1 5 10.2 0-.1-.1-15-13.2-17-8.2"/></g><g fill="#592f5d"><path d="m20.9 42.2c0 2 1.5 3.7 3.4 3.7s3.4-1.6 3.4-3.7c0 0 0 0 0 0-1.3-1-2.9-2.3-4.6-3.4-1.2.5-2.2 1.8-2.2 3.4"/><path d="m40.8 45.8c1.9 0 3.4-1.6 3.4-3.7 0-2-1.5-3.7-3.4-3.7-.7 0-1.3.2-1.9.6-.5.9-1 1.7-1.5 2.4 0 .2-.1.4-.1.6.1 2.2 1.6 3.8 3.5 3.8"/></g><g fill="#62fbf6"><path d="m32 26c-8.1 0-9 1.9-10.3-.5-.6-1.1 2.2-3.2 10.3-3.2 8.1 0 10.9 2.1 10.3 3.2-1.3 2.4-2.2.5-10.3.5"/><path d="m32 19c-8.1 0-9 1.9-10.3-.5-.6-1.1 2.2-3.2 10.3-3.2 8.1 0 10.9 2.1 10.3 3.2-1.3 2.4-2.2.5-10.3.5"/><path d="m17.2 51.3c-.7 1.4-3.3 1.6-5.9.3-2.6-1.3-4.1-3.5-3.4-4.9.7-1.4 3.3-1.6 5.9-.3s4 3.4 3.4 4.9"/><path d="m46.8 51.3c.7 1.4 3.3 1.6 5.9.3 2.6-1.3 4.1-3.5 3.4-4.9-.7-1.4-3.3-1.6-5.9-.3-2.5 1.2-4 3.4-3.4 4.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f47f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f47f.svg
index 724157b..a2bf45a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f47f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f47f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d35454" d="m0 38.771l11.577 5.29c0 0 2.26 4.597 6.309 7.711 4.425 3.403 9.874 4.49 9.874 4.49l-1.066 5.625c0 0-1.376-2.887-5.313-2.887-3.664 0-6.381 5-6.381 5s-1.433-7.345-4.02-9.527c-2.634-2.224-10.982-.948-10.982-.948-.002.002 2.725-5.477 2.725-9.428 0-3.455-2.725-5.326-2.725-5.326"/><g fill="#ad4040"><path d="m0 38.771c2.094.521 4.13 1.171 6.144 1.867 1.01.346 2.01.697 3 1.082.994.378 1.994.741 2.976 1.144l.349.144.285.473c.812 1.349 1.815 2.751 2.866 3.994 1.063 1.265 2.203 2.397 3.491 3.399 1.259.974 2.689 1.851 4.164 2.633.738.397 1.503.753 2.279 1.092.765.354 1.575.679 2.345.948l.752.264-.178.588c-.556 1.837-1.104 3.676-1.784 5.489.032-1.937.194-3.848.349-5.761l.574.852c-1.843-.201-3.583-.63-5.31-1.25-1.726-.615-3.375-1.434-4.936-2.524-1.535-1.061-2.892-2.412-4.045-3.845-1.157-1.463-2.125-2.967-2.93-4.717l.634.615c-.947-.479-1.877-.996-2.813-1.501-.939-.497-1.863-1.026-2.785-1.563-1.843-1.068-3.666-2.181-5.431-3.423"/><path d="m0 53.52l10.628-10.621 1.898 2.321z"/><path d="m15 64l2.906-11.77 2.801 1.08z"/></g><path fill="#d35454" d="m64 38.771l-11.577 5.29c0 0-2.261 4.597-6.31 7.711-4.425 3.403-9.874 4.49-9.874 4.49l1.067 5.625c0 0 1.376-2.887 5.313-2.887 3.663 0 6.38 5 6.38 5s1.434-7.345 4.02-9.527c2.635-2.224 10.983-.948 10.983-.948-.001-.002-2.725-5.477-2.725-9.428 0-3.455 2.725-5.326 2.725-5.326"/><g fill="#ad4040"><path d="m64 38.771c-1.765 1.242-3.588 2.355-5.434 3.422-.921.537-1.845 1.066-2.784 1.563-.936.505-1.865 1.022-2.813 1.501l.634-.615c-.805 1.75-1.773 3.254-2.93 4.717-1.153 1.433-2.511 2.784-4.046 3.845-1.562 1.091-3.21 1.909-4.936 2.524-1.727.62-3.467 1.049-5.311 1.25l.574-.852c.155 1.913.318 3.824.351 5.761-.68-1.813-1.229-3.652-1.784-5.489l-.179-.588.753-.264c.771-.27 1.58-.595 2.346-.947.775-.34 1.541-.695 2.279-1.093 1.475-.782 2.904-1.659 4.164-2.633 1.288-1 2.427-2.135 3.49-3.399 1.051-1.243 2.055-2.646 2.866-3.994l.285-.473.349-.144c.982-.402 1.982-.766 2.976-1.144.991-.385 1.996-.736 3.01-1.082 2.02-.696 4.051-1.345 6.145-1.866"/><path d="m64 53.52l-12.53-8.3 1.9-2.321z"/><path d="m49 64l-5.71-10.69 2.8-1.08z"/></g><circle fill="#f46767" cx="32" cy="29" r="27"/><path fill="#493b30" d="m46.18 37.41c0 6.01-4.709 13.02-14.182 13.02-9.477 0-14.184-7.01-14.184-13.02 0 0 4.707 0 14.184 0 9.473 0 14.182 0 14.182 0"/><path fill="#302822" d="m34.02 39.879c-.632-.018-1.608.553-1.248 2.055.176.758 1.299 1.678 1.299 2.904 0 2.486-4.129 2.486-4.129 0 0-1.227 1.123-2.146 1.301-2.904.357-1.502-.618-2.072-1.25-2.055-1.719.045-4.537 1.822-4.537 4.836 0 3.385 2.934 6.129 6.551 6.129s6.551-2.744 6.551-6.129c-.002-3.01-2.821-4.791-4.538-4.836"/><path fill="#ff717f" d="m38.796 49.13c-1.796-1.053-4.054-1.713-6.796-1.713s-5 .66-6.796 1.713c1.796 1.053 4.054 1.717 6.796 1.717s5-.664 6.796-1.717"/><g fill="#fff"><path d="m32 37.822l2.26 4.133 2.261-4.133z"/><path d="m36.521 37.822l2.261 4.133 2.258-4.133z"/><path d="m41.04 37.822l2.26 4.133 2.263-4.133z"/><path d="m22.959 37.822l2.261 4.133 2.26-4.133z"/><path d="m18.439 37.822l2.26 4.133 2.26-4.133z"/><path d="m27.48 37.822l2.26 4.133 2.26-4.133z"/></g><path fill="#493b30" d="m32 51.18c-9.698 0-14.931-7.094-14.931-13.77v-.748h29.86v.748c.001 6.676-5.233 13.77-14.929 13.77m-13.414-13.02c.376 5.725 5.05 11.533 13.414 11.533 8.363 0 13.04-5.809 13.412-11.533h-26.826"/><path fill="#fff" d="m50.992 22.04c1.883 4.04.137 8.835-3.901 10.718-4.04 1.881-8.836.135-10.715-3.9-1.418-3.041 13.199-9.858 14.616-6.818"/><g fill="#493b30"><path d="m48.623 23.15c1.272 2.729.094 5.973-2.634 7.248-2.729 1.271-5.973.089-7.249-2.639-.807-1.734 9.08-6.341 9.883-4.609"/><path d="m52.49 22.351c-1.748.17-3.312.43-4.822.834-1.506.394-2.943.919-4.328 1.561-1.389.644-2.701 1.394-3.977 2.29-1.276.896-2.476 1.925-3.722 3.171.19-1.766 1.059-3.423 2.221-4.79 1.167-1.366 2.667-2.471 4.3-3.22 1.636-.758 3.435-1.181 5.233-1.197 1.79-.007 3.612.381 5.095 1.351"/></g><path fill="#fff" d="m13.01 22.04c-1.882 4.04-.137 8.835 3.902 10.718 4.03 1.881 8.833.135 10.714-3.9 1.418-3.041-13.201-9.858-14.616-6.818"/><g fill="#493b30"><path d="m15.376 23.15c-1.274 2.729-.094 5.973 2.634 7.248 2.731 1.271 5.974.089 7.249-2.639.805-1.734-9.07-6.341-9.883-4.609"/><path d="m11.508 22.351c1.483-.969 3.306-1.358 5.096-1.351 1.797.016 3.594.439 5.232 1.197 1.632.749 3.131 1.854 4.302 3.22 1.16 1.368 2.027 3.02 2.217 4.79-1.245-1.246-2.442-2.275-3.72-3.171-1.272-.896-2.589-1.646-3.979-2.292-1.381-.64-2.818-1.165-4.324-1.559-1.513-.404-3.073-.664-4.824-.834"/></g><g fill="#ffdd67"><path d="m55.734 0c0 0-1.943 5.979-6.391 9.82-5.132 4.433-.183 9.968 3.887 8.798 3.03-.872 7.545-5.567 2.504-18.618"/><path d="m14.654 9.819c-4.447-3.84-6.386-9.819-6.386-9.819-5.04 13.05-.529 17.745 2.504 18.618 4.065 1.169 9.02-4.365 3.882-8.799"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 38.8l11.6 5.3c0 0 2.3 4.6 6.3 7.7 4.4 3.4 9.9 4.5 9.9 4.5l-1.1 5.6c0 0-1.4-2.9-5.3-2.9-3.7 0-6.4 5-6.4 5s-1.4-7.3-4-9.5c-2.6-2.2-11-.9-11-.9 0 0 2.7-5.5 2.7-9.4 0-3.6-2.7-5.4-2.7-5.4" fill="#d35454"/><g fill="#ad4040"><path d="m0 38.8c2.1.5 4.1 1.2 6.1 1.9 1 .3 2 .7 3 1.1 1 .4 2 .7 3 1.1l.3.1.3.5c.8 1.3 1.8 2.8 2.9 4 1.1 1.3 2.2 2.4 3.5 3.4 1.3 1 2.7 1.9 4.2 2.6.7.4 1.5.8 2.3 1.1.8.4 1.6.7 2.3.9l.8.3-.2.6c-.6 1.8-1.1 3.7-1.8 5.5 0-1.9.2-3.8.3-5.8l.6.9c-1.8-.2-3.6-.6-5.3-1.2-1.7-.6-3.4-1.4-4.9-2.5-1.5-1.1-2.9-2.4-4-3.8-1.2-1.5-2.1-3-2.9-4.7l.6.6c-.9-.5-1.9-1-2.8-1.5-.9-.5-1.9-1-2.8-1.6-1.9-1.2-3.7-2.3-5.5-3.5"/><path d="m0 53.5l10.6-10.6 1.9 2.3z"/><path d="m15 64l2.9-11.8 2.8 1.1z"/></g><path d="m64 38.8l-11.6 5.3c0 0-2.3 4.6-6.3 7.7-4.4 3.4-9.9 4.5-9.9 4.5l1.1 5.6c0 0 1.4-2.9 5.3-2.9 3.7 0 6.4 5 6.4 5s1.4-7.3 4-9.5c2.6-2.2 11-.9 11-.9 0 0-2.7-5.5-2.7-9.4 0-3.6 2.7-5.4 2.7-5.4" fill="#d35454"/><g fill="#ad4040"><path d="m64 38.8c-1.8 1.2-3.6 2.4-5.4 3.4-.9.5-1.8 1.1-2.8 1.6-.9.5-1.9 1-2.8 1.5l.6-.6c-.8 1.8-1.8 3.3-2.9 4.7-1.2 1.4-2.5 2.8-4 3.8-1.6 1.1-3.2 1.9-4.9 2.5-1.7.6-3.5 1-5.3 1.2l.6-.9c.2 1.9.3 3.8.4 5.8-.7-1.8-1.2-3.7-1.8-5.5l-.2-.6.8-.3c.8-.3 1.6-.6 2.3-.9.8-.3 1.5-.7 2.3-1.1 1.5-.8 2.9-1.7 4.2-2.6 1.3-1 2.4-2.1 3.5-3.4 1.1-1.2 2.1-2.6 2.9-4l.3-.5.3-.1c1-.4 2-.8 3-1.1 1-.4 2-.7 3-1.1 1.8-.7 3.8-1.3 5.9-1.8"/><path d="m64 53.5l-12.5-8.3 1.9-2.3z"/><path d="m49 64l-5.7-10.7 2.8-1.1z"/></g><circle cx="32" cy="29" r="27" fill="#f46767"/><path d="m46.2 37.4c0 6-4.7 13-14.2 13-9.5 0-14.2-7-14.2-13 0 0 4.7 0 14.2 0 9.5 0 14.2 0 14.2 0" fill="#493b30"/><path d="m34 39.9c-.6 0-1.6.6-1.2 2.1.2.8 1.3 1.7 1.3 2.9 0 2.5-4.1 2.5-4.1 0 0-1.2 1.1-2.1 1.3-2.9.4-1.5-.6-2.1-1.2-2.1-1.7 0-4.5 1.8-4.5 4.8 0 3.4 2.9 6.1 6.6 6.1s6.6-2.7 6.6-6.1c-.2-3-3.1-4.8-4.8-4.8" fill="#302822"/><path d="m38.8 49.1c-1.8-1.1-4.1-1.7-6.8-1.7s-5 .7-6.8 1.7c1.8 1.1 4.1 1.7 6.8 1.7s5-.6 6.8-1.7" fill="#ff717f"/><g fill="#fff"><path d="m32 37.8l2.3 4.2 2.2-4.2z"/><path d="m36.5 37.8l2.3 4.2 2.2-4.2z"/><path d="m41 37.8l2.3 4.2 2.3-4.2z"/><path d="m23 37.8l2.2 4.2 2.3-4.2z"/><path d="m18.4 37.8l2.3 4.2 2.3-4.2z"/><path d="m27.5 37.8l2.2 4.2 2.3-4.2z"/></g><path d="m32 51.2c-9.7 0-14.9-7.1-14.9-13.8v-.7h29.9v.7c-.1 6.7-5.3 13.8-15 13.8m-13.4-13c.4 5.7 5 11.5 13.4 11.5 8.4 0 13-5.8 13.4-11.5h-26.8" fill="#493b30"/><path d="m51 22c1.9 4 .1 8.8-3.9 10.7-4 1.9-8.8.1-10.7-3.9-1.4-3 13.2-9.8 14.6-6.8" fill="#fff"/><g fill="#493b30"><path d="m48.6 23.1c1.3 2.7.1 6-2.6 7.2-2.7 1.3-6 .1-7.2-2.6-.9-1.7 9-6.3 9.8-4.6"/><path d="m52.5 22.4c-1.7.2-3.3.4-4.8.8-1.5.4-2.9.9-4.3 1.6-1.4.6-2.7 1.4-4 2.3s-2.5 1.9-3.7 3.2c.2-1.8 1.1-3.4 2.2-4.8 1.2-1.4 2.7-2.5 4.3-3.2 1.6-.8 3.4-1.2 5.2-1.2 1.8-.1 3.6.3 5.1 1.3"/></g><path d="m13 22c-1.9 4-.1 8.8 3.9 10.7 4 1.9 8.8.1 10.7-3.9 1.4-3-13.2-9.8-14.6-6.8" fill="#fff"/><g fill="#493b30"><path d="m15.4 23.1c-1.3 2.7-.1 6 2.6 7.2 2.7 1.3 6 .1 7.2-2.6.9-1.7-9-6.3-9.8-4.6"/><path d="m11.5 22.4c1.5-1 3.3-1.4 5.1-1.4 1.8 0 3.6.4 5.2 1.2 1.6.7 3.1 1.9 4.3 3.2 1.2 1.4 2 3 2.2 4.8-1.2-1.2-2.4-2.3-3.7-3.2-1.3-.9-2.6-1.6-4-2.3-1.4-.6-2.8-1.2-4.3-1.6-1.5-.3-3-.6-4.8-.7"/></g><g fill="#ffdd67"><path d="m55.7 0c0 0-1.9 6-6.4 9.8-5.1 4.4-.2 10 3.9 8.8 3.1-.9 7.6-5.5 2.5-18.6"/><path d="m14.7 9.8c-4.5-3.8-6.4-9.8-6.4-9.8-5 13.1-.5 17.7 2.5 18.6 4 1.2 9-4.3 3.9-8.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f480.svg b/build/js/jsxc/lib/emojione/assets/svg/1f480.svg
index 3de4fd4..300fed8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f480.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f480.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#bab6b6" d="m55.88 38.936c1.99-3.508 3.119-7.507 3.119-11.753 0-13.909-12.09-25.18-26.999-25.18-14.914 0-27 11.273-27 25.18 0 4.246 1.128 8.246 3.12 11.753-1.898 1.373-3.12 3.518-3.12 5.93 0 4.143 3.6 7.498 8.04 7.498.42 0 .832-.031 1.234-.092-.506 1.172-1.096 2.625-1.234 3.357-.593 3.076 2.717 5.658 6.068 5.658 0 0 1.621.137 1.969-.188 1.254-1.168 0-6.422 0-6.422 0-.885.771-1.602 1.721-1.602s1.715.717 1.715 1.602c0 0-1.25 5.441 0 6.609 1.021.949 4.753.949 5.771 0 1.254-1.168 0-6.609 0-6.609 0-.885.77-1.602 1.717-1.602.949 0 1.716.717 1.716 1.602 0 0-1.251 5.441 0 6.609 1.02.949 4.75.949 5.77 0 1.254-1.168 0-6.609 0-6.609 0-.885.771-1.602 1.717-1.602.951 0 1.719.717 1.719 1.602 0 0-1.254 5.254 0 6.422.348.324 1.973.188 1.973.188 3.352 0 6.656-2.582 6.07-5.658-.139-.732-.729-2.186-1.236-3.357.402.061.818.092 1.236.092 4.441 0 8.04-3.355 8.04-7.498-.004-2.412-1.227-4.556-3.123-5.929m-38.446 1.414c-3.035-2.077-10.904-10.767-4.395-11.13 4.01-.224 13.674 3.128 14.295 6.825.421 2.518-6.868 6.379-9.9 4.305m19.11 7.863c-1.547 1.443-7.208 1.443-8.755 0-1.449-1.355.936-2.395 1.764-3.85.957-1.691 1.439-3.225 2.617-3.225 1.175 0 1.656 1.531 2.615 3.223.823 1.457 3.175 2.532 1.759 3.852m10.363-7.863c-3.03 2.074-10.322-1.787-9.9-4.305.623-3.697 10.287-7.05 14.295-6.825 6.506.363-1.362 9.05-4.395 11.13"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.9 38.9c2-3.5 3.1-7.5 3.1-11.8 0-13.8-12.1-25.1-27-25.1-14.9 0-27 11.3-27 25.2 0 4.2 1.1 8.2 3.1 11.8-1.9 1.3-3.1 3.5-3.1 5.9 0 4.1 3.6 7.5 8 7.5.4 0 .8 0 1.2-.1-.5 1.2-1.1 2.6-1.2 3.4-.6 3.1 2.7 5.7 6.1 5.7 0 0 1.6.1 2-.2 1.3-1.2 0-6.4 0-6.4 0-.9.8-1.6 1.7-1.6s1.7.7 1.7 1.6c0 0-1.2 5.4 0 6.6 1 .9 4.8.9 5.8 0 1.3-1.2 0-6.6 0-6.6 0-.9.8-1.6 1.7-1.6.9 0 1.7.7 1.7 1.6 0 0-1.3 5.4 0 6.6 1 .9 4.8.9 5.8 0 1.3-1.2 0-6.6 0-6.6 0-.9.8-1.6 1.7-1.6 1 0 1.7.7 1.7 1.6 0 0-1.3 5.3 0 6.4.3.3 2 .2 2 .2 3.4 0 6.7-2.6 6.1-5.7-.1-.7-.7-2.2-1.2-3.4.4.1.8.1 1.2.1 4.4 0 8-3.4 8-7.5 0-2.4-1.2-4.6-3.1-6m-38.5 1.4c-3-2.1-10.9-10.8-4.4-11.1 4-.2 13.7 3.1 14.3 6.8.5 2.6-6.8 6.4-9.9 4.3m19.1 7.9c-1.5 1.4-7.2 1.4-8.8 0-1.4-1.4.9-2.4 1.8-3.8 1-1.7 1.4-3.2 2.6-3.2 1.2 0 1.7 1.5 2.6 3.2.9 1.4 3.3 2.5 1.8 3.8m10.4-7.9c-3 2.1-10.3-1.8-9.9-4.3.6-3.7 10.3-7 14.3-6.8 6.5.4-1.4 9.1-4.4 11.1" fill="#bab6b6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fb.svg
index 3cef915..94f0d9f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m26.871 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m36.824 49.05v-7.14h-19.91v7.14c-12.518.387-15.04 2.408-15.04 12.947h50c0-10.537-2.533-12.56-15.05-12.947"/><path fill="#ffe1bd" d="m10.682 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.459-4.479 2.459-4.479 8.811 0 23.17-11.454 23.17-11.454s5.428 10.112 10.664 11.454c0 0 2.537.468 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.282-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#e6b796" d="m30.879 36.22c0 1.587-3.289 2.047-4.04 2.047-.756 0-4.047-.563-4.047-2.149 0-.001 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m21.326 29.874c.951 0 .824-2.458.824-2.458-2.92-6.522-9.42-2.394-9.42-2.394-2.527 1.128 1.133 4.694 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="17.519" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="17.518" cy="26.889" r="1"/><path d="m22.967 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.128-3.471.355-.602.117-1.223.232-1.871.269-.627.026-1.385-.047-1.832-.529.592.234 1.174.11 1.738-.06.568-.163 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.508 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.34 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.422-2.394 9.422-2.394 2.527 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="36.15" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="36.15" cy="26.889" r="1"/><path d="m30.703 28.357c.354-1.205.947-2.36 1.861-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.969-.538 1.363-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.361-.463-3.467-.355-1.105.069-2.133.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g><path fill="#f09985" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.752.427-4.408.218-4.408.218 1.932 1.929 2.85 4.564 7.281 4.564 4.43 0 5.348-2.636 7.277-4.564 0 0-2.656.209-4.406-.218"/><path fill="#d47f6c" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.721.418-4.416.217-4.408.218 2.914.523 3.277 2.01 7.281 2.01 4 0 4.365-1.488 7.277-2.01.012-.001-2.687.2-4.406-.218"/><path fill="#ffe1bd" d="m46.887 61.998l-.897-19.261c0 0 10.379 1.896 15.1-3.261 4.291-4.679-5.709-.313-11.172-1.916-1.986-.583-7.234-1.826-8.596 1.609-1.469 3.71-2.521 22.828-2.521 22.828h8.08"/><path fill="#cba7f9" d="m47.41 61.998l-1.058-19.01-6.846-.132c-.066 6.52-1.615 19.14-1.615 19.14h9.519"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.9,2C12.5,2,4.6,11,4.6,22.9V60h44.6V22.9c0-17.7-12.1-17.4-12.1-17.4S36.2,2,26.9,2z" fill="#594640"/><path d="m36.8 49.1v-7.1h-19.8v7.1c-12.5.3-15 2.4-15 12.9h49.8c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m46.8 62l-.9-19.3c0 0 10.3 1.9 15-3.3 4.3-4.7-5.7-.3-11.1-1.9-2-.6-7.2-1.8-8.6 1.6-1.4 3.8-2.4 22.9-2.4 22.9h8" fill="#ffe1bd"/><path d="m47.3 62l-1.1-19-6.8-.1c0 6.5-1.5 19.1-1.5 19.1h9.4" fill="#cba7f9"/><path d="m10.3 33c0 0-3.3-.9-3.3-5.8 0-3.9 2.5-4.6 2.5-4.6 9 0 25.8-11.7 25.8-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.2 16.4-16.4 16.4s-16.6-9-16.6-16.4" fill="#ffe1bd"/><path d="m26.9 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/><path d="m31.7 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><ellipse cx="36" cy="27.4" rx="3.4" ry="3.5" fill="#664e27"/><circle cx="36" cy="27.4" r="1.1" fill="#2b2925"/><path d="m30.7 29.6c1.7-10.5 10.3-3.5 13.8-5-3.5 3.3-10.4-3.8-13.8 5" fill="#3b3226"/><path d="m22 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><path d="m14.2 27.4c0 1.9 1.5 3.5 3.4 3.5 1.9 0 3.4-1.5 3.4-3.5 0-1.9-1.5-3.5-3.4-3.5-1.8.1-3.4 1.6-3.4 3.5" fill="#664e27"/><path d="m23 29.6c-1.7-10.5-10.3-3.5-13.8-5 3.5 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m26.9 41.7l-7.7-1.2c4.6 6.6 10.7 6.6 15.3 0l-7.6 1.2" fill="#e08672"/><path d="m29.9 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.6.3-4.6.3 3.1.7 3.4 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9-.2 0-3.1.4-4.8-.3" fill="#b86e5d"/><circle cx="17.7" cy="27.4" r="1.1" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fc.svg
index e9075a3..4094b08 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m26.871 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m36.824 49.05v-7.14h-19.91v7.14c-12.518.387-15.04 2.408-15.04 12.947h50c0-10.537-2.533-12.56-15.05-12.947"/><path fill="#fed0ac" d="m10.682 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.459-4.479 2.459-4.479 8.811 0 23.17-11.454 23.17-11.454s5.428 10.112 10.664 11.454c0 0 2.537.468 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.282-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#e0a372" d="m30.879 36.22c0 1.587-3.289 2.047-4.04 2.047-.756 0-4.047-.563-4.047-2.149 0-.001 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m21.326 29.874c.951 0 .824-2.458.824-2.458-2.92-6.522-9.42-2.394-9.42-2.394-2.527 1.128 1.133 4.694 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="17.519" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="17.518" cy="26.889" r="1"/><path d="m22.967 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.128-3.471.355-.602.117-1.223.232-1.871.269-.627.026-1.385-.047-1.832-.529.592.234 1.174.11 1.738-.06.568-.163 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.508 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.34 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.422-2.394 9.422-2.394 2.527 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="36.15" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="36.15" cy="26.889" r="1"/><path d="m30.703 28.357c.354-1.205.947-2.36 1.861-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.969-.538 1.363-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.361-.463-3.467-.355-1.105.069-2.133.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g><path fill="#e08672" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.752.427-4.408.218-4.408.218 1.932 1.929 2.85 4.564 7.281 4.564 4.43 0 5.348-2.636 7.277-4.564 0 0-2.656.209-4.406-.218"/><path fill="#b86e5d" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.721.418-4.416.217-4.408.218 2.914.523 3.277 2.01 7.281 2.01 4 0 4.365-1.488 7.277-2.01.012-.001-2.687.2-4.406-.218"/><path fill="#fed0ac" d="m46.887 61.998l-.897-19.261c0 0 10.379 1.896 15.1-3.261 4.291-4.679-5.709-.313-11.172-1.916-1.986-.583-7.234-1.826-8.596 1.609-1.469 3.71-2.521 22.828-2.521 22.828h8.08"/><path fill="#cba7f9" d="m47.41 61.998l-1.058-19.01-6.846-.132c-.066 6.52-1.615 19.14-1.615 19.14h9.519"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.9,2C12.5,2,4.6,11,4.6,22.9V60h44.6V22.9c0-17.7-12.1-17.4-12.1-17.4S36.2,2,26.9,2z" fill="#dbb471"/><path d="m36.8 49.1v-7.1h-19.8v7.1c-12.5.3-15 2.4-15 12.9h49.8c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m46.8 62l-.9-19.3c0 0 10.3 1.9 15-3.3 4.3-4.7-5.7-.3-11.1-1.9-2-.6-7.2-1.8-8.6 1.6-1.4 3.8-2.4 22.9-2.4 22.9h8" fill="#fed0ac"/><path d="m47.3 62l-1.1-19-6.8-.1c0 6.5-1.5 19.1-1.5 19.1h9.4" fill="#cba7f9"/><path d="m10.3 33c0 0-3.3-.9-3.3-5.8 0-3.9 2.5-4.6 2.5-4.6 9 0 25.8-11.7 25.8-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.2 16.4-16.4 16.4-6.2 0-16.6-9-16.6-16.4" fill="#fed0ac"/><path d="m26.9 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#e0a372"/><path d="m31.7 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m39.5 27.4c0 1.9-1.5 3.5-3.4 3.5-1.9 0-3.4-1.5-3.4-3.5 0-1.9 1.5-3.5 3.4-3.5 1.8.1 3.4 1.6 3.4 3.5" fill="#664e27"/><circle cx="36" cy="27.4" r="1.1" fill="#2b2925"/><path d="m30.7 29.6c1.7-10.5 10.3-3.5 13.8-5-3.5 3.3-10.4-3.8-13.8 5" fill="#3b3226"/><path d="m22.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m14.2 27.4c0 1.9 1.5 3.5 3.4 3.5 1.9 0 3.4-1.5 3.4-3.5 0-1.9-1.5-3.5-3.4-3.5-1.8.1-3.4 1.6-3.4 3.5" fill="#664e27"/><path d="m23 29.6c-1.7-10.5-10.3-3.5-13.8-5 3.5 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m26.9 41.7l-7.7-1.2c4.6 6.6 10.7 6.6 15.3 0l-7.6 1.2" fill="#e08672"/><path d="m29.9 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.6.3-4.6.3 3.1.7 3.4 1.9 7.7 1.9s4.6-1.3 7.7-1.9c-.2 0-3.1.4-4.8-.3" fill="#b86e5d"/><circle cx="17.7" cy="27.4" r="1.1" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fd.svg
index 6712c12..502cf7b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m26.871 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m36.824 49.05v-7.14h-19.91v7.14c-12.518.387-15.04 2.408-15.04 12.947h50c0-10.537-2.533-12.56-15.05-12.947"/><path fill="#d6a57c" d="m10.682 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.459-4.479 2.459-4.479 8.811 0 23.17-11.454 23.17-11.454s5.428 10.112 10.664 11.454c0 0 2.537.468 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.282-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#b58360" d="m30.879 36.22c0 1.587-3.289 2.047-4.04 2.047-.756 0-4.047-.563-4.047-2.149 0-.001 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m21.326 29.874c.951 0 .824-2.458.824-2.458-2.92-6.522-9.42-2.394-9.42-2.394-2.527 1.128 1.133 4.694 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="17.519" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="17.518" cy="26.889" r="1"/><path d="m22.967 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.128-3.471.355-.602.117-1.223.232-1.871.269-.627.026-1.385-.047-1.832-.529.592.234 1.174.11 1.738-.06.568-.163 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.508 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.34 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.422-2.394 9.422-2.394 2.527 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="36.15" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="36.15" cy="26.889" r="1"/><path d="m30.703 28.357c.354-1.205.947-2.36 1.861-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.969-.538 1.363-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.361-.463-3.467-.355-1.105.069-2.133.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g><path fill="#b58360" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.752.427-4.408.218-4.408.218 1.932 1.929 2.85 4.564 7.281 4.564 4.43 0 5.348-2.636 7.277-4.564 0 0-2.656.209-4.406-.218"/><path fill="#805c44" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.721.418-4.416.217-4.408.218 2.914.523 3.277 2.01 7.281 2.01 4 0 4.365-1.488 7.277-2.01.012-.001-2.687.2-4.406-.218"/><path fill="#d6a57c" d="m46.887 61.998l-.897-19.261c0 0 10.379 1.896 15.1-3.261 4.291-4.679-5.709-.313-11.172-1.916-1.986-.583-7.234-1.826-8.596 1.609-1.469 3.71-2.521 22.828-2.521 22.828h8.08"/><path fill="#cba7f9" d="m47.41 61.998l-1.058-19.01-6.846-.132c-.066 6.52-1.615 19.14-1.615 19.14h9.519"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.9,2C12.5,2,4.6,11,4.6,22.9V60h44.6V22.9c0-17.7-12.1-17.4-12.1-17.4S36.2,2,26.9,2z" fill="#594640"/><path d="m36.8 49.1v-7.1h-19.8v7.1c-12.5.3-15 2.4-15 12.9h49.8c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m46.8 62l-.9-19.3c0 0 10.3 1.9 15-3.3 4.3-4.7-5.7-.3-11.1-1.9-2-.6-7.2-1.8-8.6 1.6-1.4 3.8-2.4 22.9-2.4 22.9h8" fill="#d6a57c"/><path d="m47.3 62l-1.1-19-6.8-.1c0 6.5-1.5 19.1-1.5 19.1h9.4" fill="#cba7f9"/><path d="m10.3 33c0 0-3.3-.9-3.3-5.8 0-3.9 2.5-4.6 2.5-4.6 9 0 25.8-11.7 25.8-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.2 16.4-16.4 16.4-6.2 0-16.6-9-16.6-16.4" fill="#d6a57c"/><path d="m26.9 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#b58360"/><path d="m31.7 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m39.5 27.4c0 1.9-1.5 3.5-3.4 3.5-1.9 0-3.4-1.5-3.4-3.5 0-1.9 1.5-3.5 3.4-3.5 1.8.1 3.4 1.6 3.4 3.5" fill="#664e27"/><circle cx="36" cy="27.4" r="1.1" fill="#2b2925"/><path d="m30.7 29.6c1.7-10.5 10.3-3.5 13.8-5-3.5 3.3-10.4-3.8-13.8 5" fill="#3b3226"/><path d="m22 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><path d="m14.2 27.4c0 1.9 1.5 3.5 3.4 3.5 1.9 0 3.4-1.5 3.4-3.5 0-1.9-1.5-3.5-3.4-3.5-1.8.1-3.4 1.6-3.4 3.5" fill="#664e27"/><path d="m23 29.6c-1.7-10.5-10.3-3.5-13.8-5 3.5 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m26.9 41.7l-7.7-1.2c4.6 6.6 10.7 6.6 15.3 0l-7.6 1.2" fill="#b58360"/><path d="m29.9 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.6.3-4.6.3 3.1.7 3.4 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9-.2 0-3.1.4-4.8-.3" fill="#805c44"/><circle cx="17.7" cy="27.4" r="1.1" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fe.svg
index a527834..d233832 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m26.871 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m36.824 49.05v-7.14h-19.91v7.14c-12.518.387-15.04 2.408-15.04 12.947h50c0-10.537-2.533-12.56-15.05-12.947"/><path fill="#b47d56" d="m10.682 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.459-4.479 2.459-4.479 8.811 0 23.17-11.454 23.17-11.454s5.428 10.112 10.664 11.454c0 0 2.537.468 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.282-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#935e3e" d="m30.879 36.22c0 1.587-3.289 2.047-4.04 2.047-.756 0-4.047-.563-4.047-2.149 0-.001 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m21.326 29.874c.951 0 .824-2.458.824-2.458-2.92-6.522-9.42-2.394-9.42-2.394-2.527 1.128 1.133 4.694 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="17.519" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="17.518" cy="26.889" r="1"/><path d="m22.967 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.128-3.471.355-.602.117-1.223.232-1.871.269-.627.026-1.385-.047-1.832-.529.592.234 1.174.11 1.738-.06.568-.163 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.508 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.34 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.422-2.394 9.422-2.394 2.527 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="36.15" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="36.15" cy="26.889" r="1"/><path d="m30.703 28.357c.354-1.205.947-2.36 1.861-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.969-.538 1.363-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.361-.463-3.467-.355-1.105.069-2.133.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g><path fill="#935e3e" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.752.427-4.408.218-4.408.218 1.932 1.929 2.85 4.564 7.281 4.564 4.43 0 5.348-2.636 7.277-4.564 0 0-2.656.209-4.406-.218"/><path fill="#734c31" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.721.418-4.416.217-4.408.218 2.914.523 3.277 2.01 7.281 2.01 4 0 4.365-1.488 7.277-2.01.012-.001-2.687.2-4.406-.218"/><path fill="#b47d56" d="m46.887 61.998l-.897-19.261c0 0 10.379 1.896 15.1-3.261 4.291-4.679-5.709-.313-11.172-1.916-1.986-.583-7.234-1.826-8.596 1.609-1.469 3.71-2.521 22.828-2.521 22.828h8.08"/><path fill="#cba7f9" d="m47.41 61.998l-1.058-19.01-6.846-.132c-.066 6.52-1.615 19.14-1.615 19.14h9.519"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.9,2C12.5,2,4.6,11,4.6,22.9V60h44.6V22.9c0-17.7-12.1-17.4-12.1-17.4S36.2,2,26.9,2z" fill="#231f20"/><path d="m36.8 49.1v-7.1h-19.8v7.1c-12.5.3-15 2.4-15 12.9h49.8c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m46.8 62l-.9-19.3c0 0 10.3 1.9 15-3.3 4.3-4.7-5.7-.3-11.1-1.9-2-.6-7.2-1.8-8.6 1.6-1.4 3.8-2.4 22.9-2.4 22.9h8" fill="#b47d56"/><path d="m47.3 62l-1.1-19-6.8-.1c0 6.5-1.5 19.1-1.5 19.1h9.4" fill="#cba7f9"/><path d="m10.3 33c0 0-3.3-.9-3.3-5.8 0-3.9 2.5-4.6 2.5-4.6 9 0 25.8-11.7 25.8-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.2 16.4-16.4 16.4-6.2 0-16.6-9-16.6-16.4" fill="#b47d56"/><path d="m26.9 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/><path d="m31.7 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m39.5 27.4c0 1.9-1.5 3.5-3.4 3.5-1.9 0-3.4-1.5-3.4-3.5 0-1.9 1.5-3.5 3.4-3.5 1.8.1 3.4 1.6 3.4 3.5" fill="#664e27"/><circle cx="36" cy="27.4" r="1.1" fill="#2b2925"/><path d="m30.7 29.6c1.7-10.5 10.3-3.5 13.8-5-3.5 3.3-10.4-3.8-13.8 5" fill="#3b3226"/><path d="m22 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><ellipse cx="17.7" cy="27.4" rx="3.4" ry="3.5" fill="#664e27"/><path d="m23 29.6c-1.7-10.5-10.3-3.5-13.8-5 3.5 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m26.9 41.7l-7.7-1.2c4.6 6.6 10.7 6.6 15.3 0l-7.6 1.2" fill="#935e3e"/><path d="m29.9 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.6.3-4.6.3 3.1.7 3.4 1.9 7.7 1.9s4.6-1.3 7.7-1.9c-.2 0-3.1.4-4.8-.3" fill="#734c31"/><circle cx="17.7" cy="27.4" r="1.1" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3ff.svg
index 8a5e79b..64f4c49 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f481-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m26.871 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m36.824 49.05v-7.14h-19.91v7.14c-12.518.387-15.04 2.408-15.04 12.947h50c0-10.537-2.533-12.56-15.05-12.947"/><path fill="#8a6859" d="m10.682 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.459-4.479 2.459-4.479 8.811 0 23.17-11.454 23.17-11.454s5.428 10.112 10.664 11.454c0 0 2.537.468 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.282-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#705041" d="m30.879 36.22c0 1.587-3.289 2.047-4.04 2.047-.756 0-4.047-.563-4.047-2.149 0-.001 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m21.326 29.874c.951 0 .824-2.458.824-2.458-2.92-6.522-9.42-2.394-9.42-2.394-2.527 1.128 1.133 4.694 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="17.519" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="17.518" cy="26.889" r="1"/><path d="m22.967 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.128-3.471.355-.602.117-1.223.232-1.871.269-.627.026-1.385-.047-1.832-.529.592.234 1.174.11 1.738-.06.568-.163 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.508 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.34 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.422-2.394 9.422-2.394 2.527 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="36.15" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="36.15" cy="26.889" r="1"/><path d="m30.703 28.357c.354-1.205.947-2.36 1.861-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.969-.538 1.363-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.361-.463-3.467-.355-1.105.069-2.133.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g><path fill="#7d5442" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.752.427-4.408.218-4.408.218 1.932 1.929 2.85 4.564 7.281 4.564 4.43 0 5.348-2.636 7.277-4.564 0 0-2.656.209-4.406-.218"/><path fill="#5c3f34" d="m29.707 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.721.418-4.416.217-4.408.218 2.914.523 3.277 2.01 7.281 2.01 4 0 4.365-1.488 7.277-2.01.012-.001-2.687.2-4.406-.218"/><path fill="#8a6859" d="m46.887 61.998l-.897-19.261c0 0 10.379 1.896 15.1-3.261 4.291-4.679-5.709-.313-11.172-1.916-1.986-.583-7.234-1.826-8.596 1.609-1.469 3.71-2.521 22.828-2.521 22.828h8.08"/><path fill="#cba7f9" d="m47.41 61.998l-1.058-19.01-6.846-.132c-.066 6.52-1.615 19.14-1.615 19.14h9.519"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.9,2C12.5,2,4.6,11,4.6,22.9V60h44.6V22.9c0-17.7-12.1-17.4-12.1-17.4S36.2,2,26.9,2z" fill="#231f20"/><path d="m36.8 49.1v-7.1h-19.8v7.1c-12.5.3-15 2.4-15 12.9h49.8c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m46.8 62l-.9-19.3c0 0 10.3 1.9 15-3.3 4.3-4.7-5.7-.3-11.1-1.9-2-.6-7.2-1.8-8.6 1.6-1.4 3.8-2.4 22.9-2.4 22.9h8" fill="#8a6859"/><path d="m47.3 62l-1.1-19-6.8-.1c0 6.5-1.5 19.1-1.5 19.1h9.4" fill="#cba7f9"/><path d="m10.3 33c0 0-3.3-.9-3.3-5.8 0-3.9 2.5-4.6 2.5-4.6 9 0 25.8-11.7 25.8-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.2 16.4-16.4 16.4-6.2 0-16.6-9-16.6-16.4" fill="#8a6859"/><path d="m26.9 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#705041"/><path d="m31.7 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m39.5 27.4c0 1.9-1.5 3.5-3.4 3.5-1.9 0-3.4-1.5-3.4-3.5 0-1.9 1.5-3.5 3.4-3.5 1.8.1 3.4 1.6 3.4 3.5" fill="#664e27"/><circle cx="36" cy="27.4" r="1.1" fill="#2b2925"/><path d="m30.7 29.6c1.7-10.5 10.3-3.5 13.8-5-3.5 3.3-10.4-3.8-13.8 5" fill="#3b3226"/><path d="m22.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m14.2 27.4c0 1.9 1.5 3.5 3.4 3.5 1.9 0 3.4-1.5 3.4-3.5 0-1.9-1.5-3.5-3.4-3.5-1.8.1-3.4 1.6-3.4 3.5" fill="#664e27"/><path d="m23 29.6c-1.7-10.5-10.3-3.5-13.8-5 3.5 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m26.9 41.7l-7.7-1.2c4.6 6.6 10.7 6.6 15.3 0l-7.6 1.2" fill="#7d5442"/><path d="m29.9 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.6.3-4.6.3 3.1.7 3.4 1.9 7.7 1.9s4.6-1.3 7.7-1.9c-.2 0-3.1.4-4.8-.3" fill="#5c3f34"/><circle cx="17.7" cy="27.4" r="1.1" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f481.svg b/build/js/jsxc/lib/emojione/assets/svg/1f481.svg
index db1ba6d..324606f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f481.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f481.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m26.868 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.679-12.12-17.35-12.12-17.35s-.912-3.574-10.272-3.574"/><path fill="#b386e2" d="m36.821 49.05v-7.14h-19.91v7.14c-12.517.387-15.04 2.408-15.04 12.947h50c0-10.537-2.534-12.56-15.05-12.947"/><path fill="#ffdd67" d="m10.679 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.459-4.479 2.459-4.479 8.811 0 23.17-11.454 23.17-11.454s5.428 10.112 10.664 11.454c0 0 2.537.468 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.282-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#eba352" d="m30.876 36.22c0 1.587-3.289 2.047-4.04 2.047-.756 0-4.047-.563-4.047-2.149 0-.001 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m21.323 29.874c.951 0 .824-2.458.824-2.458-2.92-6.522-9.42-2.394-9.42-2.394-2.527 1.128 1.133 4.694 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="17.516" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="17.515" cy="26.889" r="1"/><path d="m22.964 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.128-3.471.355-.602.117-1.223.232-1.871.269-.627.026-1.385-.047-1.832-.529.592.234 1.174.11 1.738-.06.568-.163 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.508 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.34 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.422-2.394 9.422-2.394 2.527 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="36.15" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="36.15" cy="26.889" r="1"/><path d="m30.7 28.357c.354-1.205.947-2.36 1.861-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.969-.538 1.363-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.361-.463-3.467-.355-1.105.069-2.133.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g><path fill="#f09985" d="m29.704 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.752.427-4.408.218-4.408.218 1.932 1.929 2.85 4.564 7.281 4.564 4.43 0 5.348-2.636 7.277-4.564 0 0-2.656.209-4.406-.218"/><path fill="#d47f6c" d="m29.704 40.11c-.588-.146-1.445-.076-2.576.302-.1.031-.199.063-.295.096-.1-.033-.197-.064-.297-.096-1.133-.378-1.988-.447-2.576-.302-1.721.418-4.416.217-4.408.218 2.914.523 3.277 2.01 7.281 2.01 4 0 4.365-1.488 7.277-2.01.012-.001-2.687.2-4.406-.218"/><path fill="#ffdd67" d="m46.884 61.998l-.896-19.261c0 0 10.379 1.896 15.11-3.261 4.291-4.679-5.71-.313-11.173-1.916-1.986-.583-7.234-1.826-8.596 1.609-1.469 3.71-2.521 22.828-2.521 22.828h8.08"/><path fill="#cba7f9" d="m47.41 61.998l-1.059-19.01-6.846-.132c-.066 6.52-1.615 19.14-1.615 19.14h9.52"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M26.9,2C12.5,2,4.6,11,4.6,22.9V60h44.6V22.9c0-17.7-12.1-17.4-12.1-17.4S36.2,2,26.9,2z" fill="#ffb300"/><path d="m36.8 49.1v-7.1h-19.8v7.1c-12.5.3-15 2.4-15 12.9h49.8c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m46.8 62l-.9-19.3c0 0 10.3 1.9 15-3.3 4.3-4.7-5.7-.3-11.1-1.9-2-.6-7.2-1.8-8.6 1.6-1.4 3.8-2.4 22.9-2.4 22.9h8" fill="#ffdd67"/><path d="m47.3 62l-1.1-19-6.8-.1c0 6.5-1.5 19.1-1.5 19.1h9.4" fill="#cba7f9"/><path d="m10.3 33c0 0-3.3-.9-3.3-5.8 0-3.9 2.5-4.6 2.5-4.6 9 0 25.8-11.7 25.8-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.2 16.4-16.4 16.4-6.2 0-16.6-9-16.6-16.4" fill="#ffdd67"/><path d="m26.9 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#eba352"/><path d="m31.7 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m39.5 27.4c0 1.9-1.5 3.5-3.4 3.5-1.9 0-3.4-1.5-3.4-3.5 0-1.9 1.5-3.5 3.4-3.5 1.8.1 3.4 1.6 3.4 3.5" fill="#664e27"/><circle cx="36" cy="27.4" r="1.1" fill="#2b2925"/><path d="m30.7 29.6c1.7-10.5 10.3-3.5 13.8-5-3.5 3.3-10.4-3.8-13.8 5" fill="#3b3226"/><path d="m22 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><ellipse cx="17.7" cy="27.4" rx="3.4" ry="3.5" fill="#664e27"/><path d="m23 29.6c-1.7-10.5-10.3-3.5-13.8-5 3.5 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m26.9 41.7l-7.7-1.2c4.6 6.6 10.7 6.6 15.3 0l-7.6 1.2" fill="#f09985"/><path d="m29.9 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.6.3-4.6.3 3.1.7 3.4 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9-.2 0-3.1.4-4.8-.3" fill="#d47f6c"/><circle cx="17.7" cy="27.4" r="1.1" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fb.svg
index 172d09d..12ecea3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m52.39 43.891c-3.164-1.201-2.059-6.799-2.059-6.799h-36.656c0 0 1.107 5.598-2.059 6.799 0 0-2.613-.333-2.613 2.704 0 3.66 2.689 3.04 2.689 3.04 0 5.572 5.693 11.448 20.312 11.448 14.616 0 20.312-5.876 20.312-11.448 0 0 2.688.62 2.688-3.04-.001-3.037-2.614-2.704-2.614-2.704"/><path fill="#454749" d="m50.46 38.633v10.901c0 5.05-5.16 10.37-18.399 10.37-13.241 0-18.401-5.322-18.401-10.37v-10.901h-1.91v11.919c0 5.571 5.695 11.446 20.312 11.446s20.312-5.875 20.312-11.446v-11.919h-1.914"/><g fill="#fff"><ellipse cx="41.452" cy="45.956" rx="5.29" ry="5.314"/><ellipse cx="22.551" cy="45.956" rx="5.291" ry="5.314"/></g><g fill="#664e27"><path d="m26.477 53.911c-.105.121-.162.279-.162.471-.002 1.305 2.574 2.903 5.75 2.903s5.75-1.588 5.75-2.894c0-.175-.049-.359-.137-.48 0 0-2.484 1.124-5.613 1.124-3.124 0-5.588-1.124-5.588-1.124"/><circle cx="41.452" cy="45.957" r="3.75"/></g><path fill="#231f20" d="m42.701 45.957c0 .691-.56 1.252-1.249 1.252-.693 0-1.251-.561-1.251-1.252s.558-1.252 1.251-1.252c.69 0 1.249.561 1.249 1.252"/><circle fill="#664e27" cx="22.55" cy="45.957" r="3.75"/><circle fill="#231f20" cx="22.551" cy="45.957" r="1.25"/><path fill="#454749" d="m61.37 35.504c-1.596-.615-3.065-1.197-4.516-1.831 1.662-.021 3.412-.364 5.15-1.307-1.523-.587-2.93-1.147-4.318-1.747 1.209-.161 2.447-.522 3.682-1.187-1.292-.501-2.494-.985-3.678-1.487 1.313-.219 2.654-.667 3.971-1.484-1.452-.461-2.8-.907-4.13-1.381 1.337-.551 2.649-1.365 3.839-2.591-1.77-.089-3.397-.184-5.03-.346 1.538-.726 3.034-1.791 4.294-3.409-1.854.124-5.586-.538-5.586-.538s3.236-2.393 4.404-4.464c-1.758.406-3.377.766-5.02 1.06 1.055-1.28 1.955-2.813 2.467-4.726-1.65.91-5.49 2.862-5.49 2.862s2.193-3.771 2.479-6.171c-1.502 1.168-5.157 3.819-5.157 3.819s1.147-4.03.858-6.428c-1.18 1.533-3.887 4.833-3.887 4.833s-.133-3.827-.979-5.822c-.707 1.833-2.975 7.165-3.416 8.169.072-.628-.271-6.096-1.398-8.193-.539 1.897-3.945 7.453-3.945 7.453s-1.433-6.161-1.647-8.131c-.94 1.191-1.574 2.465-2 3.751-.186-1.357-.342-2.738-.501-4.21-1.376 1.742-2.097 3.66-2.473 5.541-.541-1.64-1.022-3.295-1.533-5.094-1.127 2.099-1.44 7.982-1.319 8.806-.258-.766-1.851-5.761-2.391-7.657-1.127 2.098-1.469 7.564-1.398 8.193-.44-1-2.709-6.336-3.416-8.168-.846 1.994-1.066 3.968-.979 5.82-.153-.181-2.707-3.3-3.887-4.831-.287 2.398.139 4.541.854 6.418.002.003.004.006.004.009-.277-.193-3.654-2.649-5.156-3.818.166 2.707 1.721 5.805 1.721 5.805s-3.082-1.586-4.732-2.496c.512 1.913 1.412 3.445 2.467 4.726-1.641-.294-3.262-.655-5.02-1.061 1.036 2.953 4.092 5.255 4.092 5.255s-3.42-.128-5.273-.253c1.26 1.62 2.758 2.685 4.295 3.41-1.631.161-3.26.257-5.03.346 1.189 1.226 2.502 2.04 3.84 2.591-1.331.474-2.679.92-4.131 1.381 1.315.817 2.656 1.266 3.971 1.484-1.184.502-2.386.986-3.678 1.487 1.234.664 2.472 1.025 3.681 1.187-1.388.6-2.794 1.159-4.317 1.746 1.74.944 3.49 1.286 5.152 1.307-1.451.636-2.922 1.218-4.518 1.832 1.241.674 2.488 1.04 3.707 1.203-1.253 1.1-2.541 2.146-3.945 3.269 3.151.427 7.07-.912 7.07-.912s-2.246 2.757-3.502 4.216c5.922-.122 27.03-11.588 27.03-11.588s17.656 11.06 25.04 11.129c-1.256-1.458-3.5-4.215-3.5-4.215s4.834 1.328 7.07.912c-1.404-1.123-2.691-2.17-3.945-3.27 1.217-.164 2.464-.53 3.705-1.204"/><path fill="#57595b" d="m59.46 33.827c-1.441-.808-2.766-1.574-4.068-2.378 1.248-.17 2.527-.554 3.797-1.261-1.754-.649-6.158-2.468-6.158-2.468s5.03-.693 6.924-2.027c-1.809-.454-3.465-.884-5.115-1.393-.132-.039 3.153-1.427 4.748-2.97-1.852-.154-4.631-1-4.631-1s3.52-1.88 4.951-3.754c-1.852.141-3.555.259-5.27.297-.152.005 2.209-2.666 3.064-4.707-1.754.651-3.369 1.24-5.02 1.757-.063.02 2.313-3.181 2.912-5.509-1.641.929-3.152 1.773-4.707 2.553-.228.116.399-2.8.426-4.689-1.477 2.137-4.749 4.229-4.717 4.089.434-1.974.549-4.16-.086-6.484-1.257 3.77-4.424 6.599-4.424 6.599s.166-4.198-.674-6.445c-.785 1.798-1.514 3.443-2.314 5.066-.038.079-.281-3.593-1.142-5.58-.623 1.653-1.21 3.18-1.843 4.681-.146-1.493-.528-3.03-1.3-4.552-.389 1.254-.761 2.435-1.147 3.589-.54-1.312-1.053-2.652-1.593-4.087-.951 2.195-1.148 4.376-.996 6.397.012.145-1.305-3.557-1.889-5.439-.771 1.521-1.153 3.058-1.3 4.551-.633-1.502-1.22-3.03-1.843-4.681-.86 1.987-1.104 5.658-1.143 5.58-.802-1.622-1.53-3.269-2.315-5.066-.752 3.74-2.336 4.649-2.336 4.649s-1.83-1.493-2.76-4.803c-.635 2.324-.557 6.383-.844 6.124-1.324-1.167-2.588-2.39-3.959-3.729.026 1.891.653 4.805.426 4.688-1.554-.777-3.066-1.623-4.707-2.551.599 2.326 2.975 5.527 2.912 5.508-1.646-.516-3.262-1.104-5.02-1.757.855 2.043 3.219 4.714 3.066 4.709-1.717-.04-3.42-.157-5.271-.298 1.432 1.873 5.739 4.191 5.576 4.212-1.703.234-3.404.39-5.256.545 1.595 1.542 4.88 2.93 4.748 2.969-1.65.51-3.307.938-5.115 1.393 2.279 2.257 5.72 2.547 5.72 2.547s-3.199 1.297-4.953 1.947c1.271.707 2.55 1.091 3.798 1.261-1.304.804-2.628 1.568-4.069 2.378 1.638.6 3.223.729 4.711.594-.027.018-.056.036-.084.054-1.48.934-2.982 1.793-4.627 2.716 1.259.46 2.485.64 3.662.639-.986.985-1.998 1.957-3.096 2.982 2.258.231 8.139-1.933 8.139-1.933-.926 1.545-1.904 3.035-2.982 4.649 2.246-.331 4.072-1.334 5.582-2.561 1.156-.951 2.918-2.862 2.918-2.862s-.502 3.614-.84 5.566c2.238-1.299 5.938-5.921 5.938-5.921s-.127 3.816-.262 5.883c1.955-1.517 3.18-3.337 3.99-5.185.383.603.768 1.203 1.142 1.811.959 1.521 1.838 3.081 2.781 4.791.895-2.543.586-6.904.586-6.904l6.694.292c0 0 .621 3.064.906 4.74 1.299-1.675 2.221-5.103 2.23-5.087.959 1.523 1.838 3.082 2.781 4.793.656-1.865.769-5.212.769-5.212s1.64 1.991 2.667 2.836c1.51 1.227 3.336 2.229 5.582 2.56-1.078-1.613-2.982-4.648-2.982-4.648s5.881 2.165 8.139 1.934c-1.098-1.025-2.109-1.997-3.096-2.982 1.178 0 2.403-.178 3.662-.64-1.645-.923-3.146-1.781-4.625-2.716-.027-.018-.055-.035-.084-.053 1.487.136 3.071.005 4.708-.595"/><path fill="#454749" d="m50.712 26.531c.146-.006.291.001.439-.01 1.895-.154 3.885-.702 5.766-2.046-1.445-.355-2.791-.703-4.119-1.078 1.413-.724 2.78-1.745 3.941-3.247-1.854.13-3.555.237-5.273.268-.332.009-.666.012-.998.017 1.514-1.188 2.912-2.76 3.84-4.939-1.758.64-3.377 1.221-5.02 1.727-.289.092-.58.177-.869.266.063-.063.128-.116.189-.18 1.344-1.435 2.521-3.229 3.131-5.558-1.645.92-3.162 1.755-4.721 2.525-.322.163-.649.32-.974.479.259-.378.507-.769.737-1.179.965-1.743 1.682-3.797 1.727-6.216-1.377 1.33-2.648 2.547-3.977 3.707-.563.501-1.133.992-1.703 1.487.096-.318.195-.634.271-.964.443-1.97.568-4.158-.053-6.485-.951 1.702-1.836 3.26-2.787 4.786-.061.099-.123.197-.185.296.011-1.459-.196-2.985-.771-4.544-.645 1.454-1.258 2.803-1.896 4.127-.008-1.625-.277-3.328-1.01-5.05-.703 1.836-1.357 3.516-2.082 5.178-.298.696-.607 1.388-.915 2.082-.006-.053-.014-.106-.021-.159-.234-1.814-.396-3.626-.563-5.603-1.39 1.671-2.155 3.527-2.581 5.362-.18-.407-.361-.814-.536-1.224-.727-1.661-1.381-3.343-2.084-5.177-.733 1.718-1 3.42-1.01 5.05-.639-1.325-1.254-2.674-1.897-4.128-.573 1.559-.781 3.085-.771 4.544-.061-.099-.125-.197-.186-.296-.951-1.526-1.836-3.084-2.787-4.785-.621 2.326-.496 4.515-.053 6.484.077.33.177.646.271.964-.57-.495-1.141-.986-1.703-1.487-1.328-1.161-2.6-2.377-3.977-3.707.045 2.419.762 4.472 1.727 6.216.23.41.479.8.736 1.178-.324-.159-.65-.316-.973-.479-1.559-.77-3.076-1.605-4.721-2.524.611 2.328 1.787 4.123 3.131 5.556.063.065.131.12.193.184-.291-.089-.583-.175-.873-.267-1.648-.507-3.268-1.088-5.03-1.728.928 2.179 2.326 3.75 3.84 4.938-.332-.005-.666-.008-.998-.017-1.719-.028-3.42-.137-5.273-.267 1.16 1.501 2.527 2.523 3.94 3.246-1.328.376-2.673.724-4.118 1.078 1.881 1.345 3.871 1.893 5.766 2.047.149.011.295.004.441.01-1.587.472-3.187.878-4.924 1.304 1.768 1.263 3.631 1.817 5.422 2.01-.236.173-.473.35-.711.521-1.414 1.038-2.863 2-4.441 3.043 1.91.55 3.716.494 5.369.136-.199.233-.396.471-.598.702-1.152 1.357-2.354 2.652-3.666 4.052 2.045.067 3.838-.47 5.407-1.269-.056.361-.106.725-.167 1.085-.277 1.815-.641 3.606-1.049 5.554 2.291-1.306 3.809-3.03 4.875-4.823.313-.533.574-1.074.811-1.62.176.453.354.905.521 1.361.654 1.702 1.223 3.431 1.832 5.317 1.062-1.936 2.383-5.826 2.865-8.363.229.392.425.789.534 1.2.543 1.956.992 3.919 1.469 6.05 1.551-2.104 2.199-4.387 2.4-6.585.027-.322.024-.639.032-.958.736 1.344 1.486 2.67 2.208 4.01 1.094 1.963 2.082 3.965 3.141 6.146.825-1.753 1.229-3.459 1.356-5.093.264 1.343.662 2.727 1.101 4.097 1.29-2.179 2.487-4.173 3.786-6.12.564-.868 1.145-1.725 1.723-2.587.447.955.969 1.888 1.611 2.771 1.176 1.593 2.709 3.052 4.805 3.969-.664-1.849-1.264-3.554-1.795-5.295-.215-.678-.42-1.36-.625-2.042.558.435 1.139.847 1.77 1.205 1.684.943 3.641 1.604 5.904 1.53-1.313-1.399-2.514-2.694-3.666-4.052-.201-.231-.398-.469-.598-.702 1.653.358 3.459.414 5.369-.136-1.578-1.039-3.03-2-4.441-3.043-.238-.171-.475-.348-.711-.521 1.791-.191 3.654-.746 5.422-2.01-1.732-.425-3.33-.83-4.917-1.303"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 43.9c-3.2-1.2-2.1-6.8-2.1-6.8h-36.6c0 0 1.1 5.6-2.1 6.8 0 0-2.6-.3-2.6 2.7 0 3.7 2.7 3 2.7 3 0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4 0 0 2.7.6 2.7-3 0-3-2.6-2.7-2.6-2.7" fill="#ffe1bd"/><path d="m50.5 38.6v10.9c0 5-5.2 10.4-18.4 10.4s-18.4-5.3-18.4-10.4v-10.9h-1.9v11.9c0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4v-11.9h-1.9" fill="#454749"/><g fill="#fff"><ellipse cx="41.5" cy="46" rx="5.3" ry="5.3"/><ellipse cx="22.5" cy="46" rx="5.3" ry="5.3"/></g><g fill="#664e27"><path d="m26.5 53.9c-.1.1-.2.3-.2.5 0 1.3 2.6 2.9 5.8 2.9 3.2 0 5.8-1.6 5.8-2.9 0-.2 0-.4-.1-.5 0 0-2.5 1.1-5.6 1.1-3.3 0-5.7-1.1-5.7-1.1"/><circle cx="41.5" cy="46" r="3.8"/></g><path d="m42.7 46c0 .7-.6 1.3-1.2 1.3-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3c.6 0 1.2.6 1.2 1.3" fill="#231f20"/><circle cx="22.5" cy="46" r="3.8" fill="#664e27"/><circle cx="22.5" cy="46" r="1.2" fill="#231f20"/><path d="m57.3 36.8c2.6-.2 4.7-2.1 4.7-2.1-1.4-.5-2.7-2.6-3.9-3.1 1.3-.2 2.4-2.1 3.7-2.9-.7-.2-3.2-1.9-4-2.1 1.3-.6 2.6-1.6 3.8-2.8-1.1-.1-2.8-2.2-3.4-2.2 2.2-1 3.2-2.9 3.2-2.9-1 .1-2.3-1.7-3.5-1.8 2.4-1.5 2.2-4.3 2.2-4.3-1.4.9-3.5.2-4.1.4 1.2-1.9.7-4.4.7-4.4-1 1.3-2.4.8-3.1 1.2.3-.9-.6-2.7-.3-3.8-1 1-2.9.9-3.6 2.1.2-1.2-.7-2.9-.8-4.3-.8.9-2.6 2.2-2.9 2.9-.1-1-1.4-2.4-1.8-3.5-.3.7-2 2.6-2.3 3.1-.2-1.7-.5-1.9-1.2-3.1-.2.8-1.9 1.7-2.4 3.1-.4-2-1.4-3.1-1.9-3.9-.3 1-2 2.4-2.2 3.1-.4-1.4-2.2-3.5-2.2-3.5s-1.8 2.1-2.2 3.5c-.2-.6-1.9-2.1-2.2-3.1-.4.8-1.5 1.9-1.9 3.9-.4-1.4-2.1-2.2-2.4-3.1-.6 1.2-1 1.4-1.2 3.1-.3-.5-2-2.3-2.3-3.1-.4 1-1.6 2.4-1.8 3.5-.3-.7-2.1-2-2.8-2.8-.2 1.4-1.1 3.1-.8 4.3-.7-1.3-2.5-1.2-3.5-2.2.3 1.1-.6 2.8-.3 3.8-.8-.4-2.2.1-3.2-1.2 0 0-.5 2.4.7 4.4-.6-.2-2.7.4-4.1-.4 0 0-.2 2.8 2.2 4.3-1.2.1-2.6 1.8-3.6 1.8 0 0 1 1.9 3.2 2.9-.5 0-2.3 2.2-3.4 2.2 1.2 1.2 2.4 2.2 3.8 2.8-.8.2-3.3 1.9-4 2.1 1.3.8 2.4 2.7 3.7 2.9-1.2.5-2.5 2.6-3.9 3.1 0 0 2.1 1.9 4.7 2.1-1.1.4-.5 2.5-3.2 4.5 3.3-.6 3.7.5 6.7-1 0 0 .5 2.3-.9 3.4 0 0 4.5 1.8 7.4-4-.2 1.2 1.9 1.8 2.5 4.1 2.7-2.6 3.1-5.1 3.1-5.1.4 2.9 4.1 4 4 5.2 1.2-.9 3-2.2 3.3-4.1 1.8 2 1.2 5 1.2 5s3.8-1.3 4.9-5c.2 1.9 1 3.1 2.1 4-.1-1.2 3.6-2.3 4-5.2 0 0 .4 2.5 3.1 5.1.5-2.4 2.6-2.9 2.5-4.1 2.9 5.8 7.4 4 7.4 4-1.4-1.1-.9-3.4-.9-3.4 3 1.5 3.4.4 6.7 1-2.8-1.9-2.2-4-3.3-4.4" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fc.svg
index 3900451..0a822b8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m52.39 43.891c-3.164-1.201-2.059-6.799-2.059-6.799h-36.655c0 0 1.107 5.598-2.059 6.799 0 0-2.614-.333-2.614 2.704 0 3.66 2.69 3.04 2.69 3.04 0 5.572 5.693 11.448 20.312 11.448 14.615 0 20.31-5.876 20.31-11.448 0 0 2.688.62 2.688-3.04 0-3.037-2.613-2.704-2.613-2.704"/><path fill="#454749" d="m50.46 38.633v10.901c0 5.05-5.16 10.37-18.398 10.37-13.241 0-18.401-5.322-18.401-10.37v-10.901h-1.91v11.919c0 5.571 5.695 11.446 20.312 11.446 14.615 0 20.31-5.875 20.31-11.446v-11.919h-1.913"/><g fill="#fff"><ellipse cx="41.45" cy="45.956" rx="5.289" ry="5.314"/><ellipse cx="22.552" cy="45.956" rx="5.291" ry="5.314"/></g><g fill="#664e27"><path d="m26.477 53.911c-.105.121-.162.279-.162.471-.002 1.305 2.574 2.903 5.75 2.903 3.175 0 5.75-1.588 5.75-2.894 0-.175-.049-.359-.137-.48 0 0-2.484 1.124-5.613 1.124-3.123 0-5.588-1.124-5.588-1.124"/><circle cx="41.45" cy="45.957" r="3.75"/></g><circle fill="#231f20" cx="41.45" cy="45.957" r="1.25"/><circle fill="#664e27" cx="22.551" cy="45.957" r="3.75"/><circle fill="#231f20" cx="22.551" cy="45.957" r="1.25"/><path fill="#454749" d="m61.37 35.504c-1.594-.615-3.064-1.197-4.516-1.831 1.664-.021 3.414-.364 5.15-1.307-1.523-.587-2.93-1.147-4.316-1.747 1.209-.161 2.447-.522 3.68-1.187-1.291-.501-2.494-.985-3.678-1.487 1.314-.219 2.656-.667 3.971-1.484-1.451-.461-2.799-.907-4.129-1.381 1.336-.551 2.65-1.365 3.838-2.591-1.768-.089-3.396-.184-5.03-.346 1.537-.726 3.03-1.791 4.293-3.409-1.854.124-5.586-.538-5.586-.538s3.236-2.393 4.404-4.464c-1.758.406-3.377.766-5.02 1.06 1.053-1.28 1.953-2.813 2.465-4.726-1.65.91-5.49 2.862-5.49 2.862s2.193-3.771 2.479-6.171c-1.502 1.168-5.156 3.819-5.156 3.819s1.146-4.03.857-6.428c-1.18 1.531-3.887 4.832-3.887 4.832s-.133-3.827-.979-5.822c-.707 1.833-2.975 7.165-3.414 8.169.07-.628-.271-6.096-1.398-8.193-.541 1.897-3.945 7.453-3.945 7.453s-1.434-6.161-1.648-8.131c-.941 1.191-1.574 2.465-2 3.751-.186-1.357-.342-2.738-.5-4.21-1.376 1.742-2.098 3.66-2.473 5.541-.541-1.64-1.022-3.295-1.533-5.094-1.127 2.099-1.441 7.982-1.319 8.806-.259-.766-1.851-5.761-2.391-7.657-1.127 2.098-1.47 7.564-1.398 8.193-.44-1-2.709-6.336-3.416-8.168-.846 1.994-1.067 3.968-.979 5.82-.153-.181-2.707-3.3-3.887-4.831-.287 2.398.139 4.541.854 6.418.001.003.003.006.004.009-.278-.193-3.654-2.649-5.156-3.818.166 2.707 1.721 5.805 1.721 5.805s-3.083-1.586-4.733-2.496c.513 1.913 1.413 3.445 2.467 4.726-1.64-.294-3.262-.655-5.02-1.061 1.037 2.953 4.092 5.255 4.092 5.255s-3.42-.128-5.273-.253c1.261 1.62 2.758 2.685 4.296 3.41-1.632.161-3.261.257-5.03.346 1.189 1.226 2.503 2.04 3.84 2.591-1.33.474-2.678.92-4.131 1.381 1.316.817 2.657 1.266 3.972 1.484-1.184.502-2.386.986-3.679 1.487 1.234.664 2.473 1.025 3.682 1.187-1.388.6-2.795 1.159-4.318 1.746 1.74.944 3.49 1.286 5.152 1.307-1.451.636-2.922 1.218-4.518 1.832 1.242.674 2.489 1.04 3.707 1.203-1.252 1.1-2.54 2.146-3.945 3.269 3.152.427 7.07-.912 7.07-.912s-2.246 2.757-3.502 4.216c5.922-.122 27.03-11.588 27.03-11.588s17.654 11.06 25.04 11.128c-1.256-1.458-3.5-4.215-3.5-4.215s4.834 1.328 7.07.912c-1.404-1.123-2.689-2.17-3.943-3.27 1.217-.162 2.465-.528 3.705-1.202"/><path fill="#57595b" d="m59.45 33.827c-1.439-.808-2.766-1.574-4.068-2.378 1.248-.17 2.527-.554 3.797-1.261-1.754-.649-6.158-2.468-6.158-2.468s5.03-.693 6.924-2.027c-1.809-.454-3.465-.884-5.115-1.393-.131-.039 3.154-1.427 4.748-2.97-1.852-.154-4.631-1-4.631-1s3.52-1.88 4.951-3.754c-1.852.141-3.555.259-5.27.297-.152.005 2.209-2.666 3.064-4.707-1.754.651-3.369 1.24-5.02 1.757-.063.02 2.314-3.181 2.912-5.509-1.641.929-3.152 1.773-4.707 2.553-.227.116.4-2.8.426-4.689-1.475 2.137-4.748 4.229-4.717 4.089.434-1.974.549-4.16-.086-6.484-1.256 3.77-4.422 6.599-4.422 6.599s.166-4.198-.674-6.445c-.785 1.798-1.514 3.443-2.316 5.066-.037.079-.281-3.593-1.141-5.58-.623 1.653-1.211 3.18-1.844 4.681-.146-1.493-.527-3.03-1.299-4.552-.389 1.254-.762 2.435-1.148 3.589-.539-1.312-1.052-2.652-1.591-4.087-.951 2.195-1.148 4.376-.996 6.397.012.145-1.305-3.557-1.889-5.439-.771 1.521-1.153 3.058-1.3 4.551-.633-1.502-1.22-3.03-1.843-4.681-.861 1.987-1.105 5.658-1.143 5.58-.802-1.622-1.53-3.269-2.315-5.066-.752 3.74-2.336 4.649-2.336 4.649s-1.832-1.493-2.76-4.803c-.635 2.324-.557 6.383-.844 6.124-1.324-1.167-2.588-2.39-3.959-3.729.026 1.891.653 4.805.426 4.688-1.555-.777-3.067-1.623-4.708-2.551.6 2.326 2.975 5.527 2.913 5.508-1.646-.516-3.263-1.104-5.02-1.757.856 2.043 3.219 4.714 3.066 4.709-1.717-.04-3.42-.157-5.271-.298 1.432 1.873 5.74 4.191 5.577 4.212-1.704.234-3.405.39-5.257.545 1.596 1.542 4.881 2.93 4.748 2.969-1.65.51-3.307.938-5.115 1.393 2.279 2.258 5.72 2.548 5.72 2.548s-3.2 1.297-4.954 1.947c1.271.707 2.551 1.091 3.799 1.261-1.304.804-2.629 1.568-4.07 2.378 1.639.6 3.223.729 4.712.594-.028.018-.056.036-.085.054-1.48.934-2.982 1.793-4.627 2.716 1.26.46 2.486.64 3.662.639-.986.985-1.998 1.957-3.096 2.982 2.258.231 8.14-1.933 8.14-1.933-.926 1.545-1.904 3.035-2.982 4.649 2.246-.331 4.072-1.334 5.582-2.561 1.156-.951 2.918-2.862 2.918-2.862s-.502 3.614-.84 5.566c2.238-1.299 5.938-5.921 5.938-5.921s-.127 3.816-.262 5.883c1.955-1.517 3.18-3.337 3.989-5.185.383.603.769 1.203 1.143 1.811.959 1.521 1.838 3.081 2.781 4.791.895-2.543.586-6.904.586-6.904l6.693.292c0 0 .621 3.064.908 4.74 1.297-1.675 2.221-5.103 2.23-5.087.959 1.523 1.838 3.082 2.779 4.793.656-1.865.77-5.212.77-5.212s1.639 1.991 2.666 2.836c1.51 1.227 3.336 2.229 5.582 2.56-1.078-1.613-2.982-4.648-2.982-4.648s5.881 2.165 8.139 1.934c-1.096-1.025-2.107-1.997-3.094-2.982 1.176 0 2.402-.178 3.66-.64-1.645-.923-3.146-1.781-4.625-2.716-.027-.018-.055-.035-.082-.053 1.487.135 3.069.004 4.706-.596"/><path fill="#454749" d="m50.713 26.531c.146-.006.289.001.438-.01 1.895-.154 3.885-.702 5.766-2.046-1.445-.355-2.791-.703-4.119-1.078 1.414-.724 2.781-1.745 3.941-3.247-1.854.13-3.555.237-5.273.268-.332.009-.666.012-.998.017 1.514-1.188 2.912-2.76 3.84-4.939-1.758.64-3.377 1.221-5.02 1.727-.287.092-.58.177-.869.266.063-.063.129-.116.189-.18 1.344-1.435 2.521-3.229 3.131-5.558-1.645.92-3.162 1.755-4.721 2.525-.322.163-.648.32-.973.479.258-.378.506-.769.736-1.179.965-1.743 1.682-3.797 1.727-6.216-1.377 1.33-2.648 2.547-3.977 3.707-.563.501-1.133.992-1.701 1.487.094-.318.193-.634.271-.964.443-1.97.568-4.158-.053-6.485-.951 1.702-1.836 3.26-2.787 4.786-.061.099-.125.197-.186.296.01-1.459-.197-2.985-.771-4.544-.643 1.454-1.258 2.803-1.895 4.127-.008-1.625-.279-3.328-1.012-5.05-.703 1.836-1.357 3.516-2.082 5.178-.299.696-.607 1.388-.914 2.082-.008-.053-.016-.106-.021-.159-.234-1.814-.396-3.626-.562-5.603-1.39 1.671-2.156 3.527-2.581 5.362-.18-.407-.362-.814-.536-1.224-.727-1.661-1.381-3.343-2.084-5.177-.733 1.718-1 3.42-1.012 5.05-.638-1.325-1.253-2.674-1.896-4.128-.574 1.559-.781 3.085-.771 4.544-.061-.099-.124-.197-.185-.296-.951-1.526-1.836-3.084-2.787-4.785-.621 2.326-.496 4.515-.053 6.484.077.33.177.646.271.964-.57-.495-1.141-.986-1.703-1.487-1.328-1.161-2.6-2.377-3.977-3.707.045 2.419.762 4.472 1.727 6.216.229.41.478.8.736 1.178-.324-.159-.651-.316-.973-.479-1.559-.77-3.076-1.605-4.721-2.524.611 2.328 1.787 4.123 3.131 5.556.063.065.13.12.193.184-.291-.089-.583-.175-.873-.267-1.648-.507-3.268-1.088-5.03-1.728.927 2.179 2.325 3.75 3.839 4.938-.332-.005-.665-.008-.997-.017-1.719-.028-3.421-.137-5.274-.267 1.161 1.501 2.527 2.523 3.941 3.246-1.328.376-2.674.724-4.119 1.078 1.881 1.345 3.872 1.893 5.767 2.047.149.011.294.004.441.01-1.587.472-3.187.878-4.925 1.304 1.769 1.263 3.631 1.817 5.422 2.01-.236.173-.472.35-.71.521-1.414 1.038-2.863 2-4.442 3.043 1.91.55 3.717.494 5.369.136-.199.233-.396.471-.597.702-1.152 1.357-2.354 2.652-3.666 4.052 2.045.067 3.838-.47 5.407-1.269-.056.361-.107.725-.167 1.085-.277 1.815-.641 3.606-1.049 5.554 2.291-1.306 3.809-3.03 4.875-4.823.313-.533.573-1.074.81-1.62.176.453.354.905.522 1.361.654 1.702 1.223 3.431 1.832 5.317 1.062-1.936 2.382-5.826 2.864-8.363.229.392.426.789.535 1.2.543 1.956.992 3.919 1.469 6.05 1.551-2.104 2.199-4.387 2.4-6.585.027-.322.024-.639.032-.958.735 1.344 1.485 2.67 2.208 4.01 1.094 1.963 2.082 3.965 3.14 6.146.824-1.753 1.229-3.459 1.355-5.093.266 1.343.662 2.727 1.102 4.097 1.289-2.179 2.488-4.173 3.787-6.12.563-.868 1.143-1.725 1.721-2.587.447.955.971 1.888 1.611 2.771 1.176 1.593 2.709 3.052 4.805 3.969-.664-1.849-1.264-3.554-1.795-5.295-.215-.678-.418-1.36-.625-2.042.559.435 1.139.847 1.77 1.205 1.684.943 3.641 1.604 5.904 1.53-1.313-1.399-2.514-2.694-3.666-4.052-.201-.231-.396-.469-.596-.702 1.652.358 3.457.414 5.367-.136-1.578-1.039-3.03-2-4.441-3.043-.238-.171-.473-.348-.709-.521 1.789-.191 3.652-.746 5.42-2.01-1.733-.425-3.332-.83-4.918-1.303"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 43.9c-3.2-1.2-2.1-6.8-2.1-6.8h-36.6c0 0 1.1 5.6-2.1 6.8 0 0-2.6-.3-2.6 2.7 0 3.7 2.7 3 2.7 3 0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4 0 0 2.7.6 2.7-3 0-3-2.6-2.7-2.6-2.7" fill="#fed0ac"/><path d="m50.5 38.6v10.9c0 5-5.2 10.4-18.4 10.4-13.2 0-18.4-5.3-18.4-10.4v-10.9h-1.9v11.9c0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4v-11.9h-1.9" fill="#454749"/><g fill="#fff"><ellipse cx="41.5" cy="46" rx="5.3" ry="5.3"/><ellipse cx="22.6" cy="46" rx="5.3" ry="5.3"/></g><g fill="#664e27"><path d="m26.5 53.9c-.1.1-.2.3-.2.5 0 1.3 2.6 2.9 5.8 2.9s5.8-1.6 5.8-2.9c0-.2 0-.4-.1-.5 0 0-2.5 1.1-5.6 1.1-3.3 0-5.7-1.1-5.7-1.1"/><circle cx="41.5" cy="46" r="3.8"/></g><path d="m42.7 46c0 .7-.6 1.3-1.2 1.3-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3c.6 0 1.2.6 1.2 1.3" fill="#231f20"/><circle cx="22.5" cy="46" r="3.8" fill="#664e27"/><circle cx="22.5" cy="46" r="1.2" fill="#231f20"/><path d="m57.3 36.8c2.6-.2 4.7-2.1 4.7-2.1-1.4-.5-2.7-2.6-3.9-3.1 1.3-.2 2.4-2.1 3.7-2.9-.7-.2-3.2-1.9-4-2.1 1.3-.6 2.6-1.6 3.8-2.8-1.1-.1-2.8-2.2-3.4-2.2 2.2-1 3.2-2.9 3.2-2.9-1 .1-2.3-1.7-3.5-1.8 2.4-1.5 2.2-4.3 2.2-4.3-1.4.9-3.5.2-4.1.4 1.2-1.9.7-4.4.7-4.4-1 1.3-2.4.8-3.1 1.2.3-.9-.6-2.7-.3-3.8-1 1-2.9.9-3.6 2.1.2-1.2-.7-2.9-.8-4.3-.8.9-2.6 2.2-2.9 2.9-.1-1-1.4-2.4-1.8-3.5-.3.7-2 2.6-2.3 3.1-.2-1.7-.5-1.9-1.2-3.1-.2.8-1.9 1.7-2.4 3.1-.4-2-1.4-3.1-1.9-3.9-.3 1-2 2.4-2.2 3.1-.4-1.4-2.2-3.5-2.2-3.5s-1.8 2.1-2.2 3.5c-.2-.6-1.9-2.1-2.2-3.1-.4.8-1.5 1.9-1.9 3.9-.4-1.4-2.1-2.2-2.4-3.1-.7 1.2-1 1.4-1.2 3.1-.3-.5-2-2.3-2.3-3.1-.4 1-1.6 2.4-1.8 3.5-.3-.7-2.1-2-2.8-2.8-.2 1.4-1.1 3.1-.8 4.3-.7-1.3-2.5-1.2-3.5-2.2.3 1.1-.6 2.8-.3 3.8-.8-.4-2.2.1-3.2-1.2 0 0-.5 2.4.7 4.4-.6-.2-2.7.4-4.1-.4 0 0-.2 2.8 2.2 4.3-1.2.1-2.6 1.8-3.6 1.8 0 0 1 1.9 3.2 2.9-.5 0-2.3 2.2-3.4 2.2 1.2 1.2 2.4 2.2 3.8 2.8-.8.2-3.3 1.9-4 2.1 1.3.8 2.4 2.7 3.7 2.9-1.2.5-2.5 2.6-3.9 3.1 0 0 2.1 1.9 4.7 2.1-1.1.4-.5 2.5-3.2 4.5 3.3-.6 3.7.5 6.7-1 0 0 .5 2.3-.9 3.4 0 0 4.5 1.8 7.4-4-.2 1.2 1.9 1.8 2.5 4.1 2.7-2.6 3.1-5.1 3.1-5.1.4 2.9 4.1 4 4 5.2 1.2-.9 3-2.2 3.3-4.1 1.8 2 1.2 5 1.2 5s3.8-1.3 4.9-5c.2 1.9 1 3.1 2.1 4-.1-1.2 3.6-2.3 4-5.2 0 0 .4 2.5 3.1 5.1.5-2.4 2.6-2.9 2.5-4.1 2.9 5.8 7.4 4 7.4 4-1.4-1.1-.9-3.4-.9-3.4 3 1.5 3.4.4 6.7 1-2.8-1.9-2.2-4-3.3-4.4" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fd.svg
index 450ce3e..3048f05 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m52.39 43.891c-3.164-1.201-2.059-6.799-2.059-6.799h-36.655c0 0 1.107 5.598-2.059 6.799 0 0-2.613-.333-2.613 2.704 0 3.66 2.689 3.04 2.689 3.04 0 5.572 5.693 11.448 20.311 11.448 14.616 0 20.312-5.876 20.312-11.448 0 0 2.688.62 2.688-3.04 0-3.037-2.614-2.704-2.614-2.704"/><path fill="#454749" d="m50.46 38.633v10.901c0 5.05-5.16 10.37-18.399 10.37-13.24 0-18.4-5.322-18.4-10.37v-10.901h-1.91v11.919c0 5.571 5.695 11.446 20.311 11.446 14.616 0 20.312-5.875 20.312-11.446v-11.919h-1.914"/><g fill="#fff"><ellipse cx="41.45" cy="45.956" rx="5.29" ry="5.314"/><ellipse cx="22.551" cy="45.956" rx="5.29" ry="5.314"/></g><g fill="#664e27"><path d="m26.476 53.911c-.105.121-.162.279-.162.471-.002 1.305 2.574 2.903 5.75 2.903s5.75-1.588 5.75-2.894c0-.175-.049-.359-.137-.48 0 0-2.484 1.124-5.613 1.124-3.124 0-5.588-1.124-5.588-1.124"/><circle cx="41.45" cy="45.957" r="3.75"/></g><circle fill="#231f20" cx="41.45" cy="45.957" r="1.25"/><circle fill="#664e27" cx="22.55" cy="45.957" r="3.75"/><circle fill="#231f20" cx="22.55" cy="45.957" r="1.25"/><path fill="#454749" d="m61.37 35.504c-1.596-.615-3.066-1.197-4.517-1.831 1.663-.021 3.413-.364 5.151-1.307-1.523-.587-2.931-1.147-4.318-1.747 1.209-.161 2.447-.522 3.682-1.187-1.293-.501-2.495-.985-3.679-1.487 1.313-.219 2.655-.667 3.972-1.484-1.453-.461-2.801-.907-4.131-1.381 1.337-.551 2.65-1.365 3.84-2.591-1.77-.089-3.398-.184-5.03-.346 1.538-.726 3.035-1.791 4.295-3.409-1.854.124-5.586-.538-5.586-.538s3.236-2.393 4.404-4.464c-1.758.406-3.378.766-5.02 1.06 1.054-1.28 1.954-2.813 2.467-4.726-1.65.91-5.491 2.862-5.491 2.862s2.193-3.771 2.479-6.171c-1.502 1.168-5.157 3.819-5.157 3.819s1.147-4.03.858-6.428c-1.18 1.531-3.887 4.832-3.887 4.832s-.132-3.827-.979-5.822c-.707 1.833-2.974 7.165-3.415 8.169.071-.628-.271-6.096-1.398-8.193-.539 1.897-3.945 7.453-3.945 7.453s-1.434-6.161-1.648-8.131c-.939 1.191-1.574 2.465-2 3.751-.186-1.357-.341-2.738-.501-4.21-1.375 1.742-2.097 3.66-2.473 5.541-.541-1.64-1.021-3.295-1.533-5.094-1.127 2.099-1.439 7.982-1.318 8.806-.259-.766-1.852-5.761-2.391-7.657-1.127 2.098-1.47 7.564-1.398 8.193-.441-1-2.709-6.336-3.416-8.168-.846 1.994-1.067 3.968-.979 5.82-.154-.181-2.707-3.3-3.887-4.831-.287 2.398.139 4.541.854 6.418.001.003.003.006.004.009-.277-.193-3.654-2.649-5.156-3.818.166 2.707 1.721 5.805 1.721 5.805s-3.082-1.586-4.732-2.496c.512 1.913 1.412 3.445 2.466 4.726-1.64-.294-3.261-.655-5.02-1.061 1.035 2.953 4.092 5.255 4.092 5.255s-3.42-.128-5.273-.253c1.26 1.62 2.757 2.685 4.295 3.41-1.631.161-3.26.257-5.03.346 1.188 1.226 2.502 2.04 3.839 2.591-1.331.474-2.679.92-4.13 1.381 1.314.817 2.656 1.266 3.971 1.484-1.184.502-2.387.986-3.678 1.487 1.233.664 2.471 1.025 3.68 1.187-1.387.6-2.794 1.159-4.316 1.746 1.739.944 3.489 1.286 5.152 1.307-1.451.636-2.922 1.218-4.518 1.832 1.24.674 2.488 1.04 3.706 1.203-1.253 1.1-2.54 2.146-3.944 3.269 3.15.427 7.07-.912 7.07-.912s-2.246 2.757-3.502 4.216c5.921-.122 27.03-11.588 27.03-11.588s17.656 11.06 25.04 11.129c-1.256-1.458-3.5-4.215-3.5-4.215s4.834 1.328 7.07.912c-1.405-1.123-2.691-2.17-3.945-3.27 1.216-.163 2.463-.529 3.705-1.203"/><path fill="#57595b" d="m59.46 33.827c-1.441-.808-2.767-1.574-4.068-2.378 1.248-.17 2.527-.554 3.797-1.261-1.754-.649-6.159-2.468-6.159-2.468s5.03-.693 6.925-2.027c-1.809-.454-3.465-.884-5.115-1.393-.133-.039 3.152-1.427 4.748-2.97-1.852-.154-4.631-1-4.631-1s3.52-1.88 4.951-3.754c-1.852.141-3.555.259-5.27.297-.153.005 2.208-2.666 3.064-4.707-1.754.651-3.37 1.24-5.02 1.757-.062.02 2.313-3.181 2.913-5.509-1.642.929-3.153 1.773-4.708 2.553-.228.116.399-2.8.426-4.689-1.476 2.137-4.749 4.229-4.717 4.089.434-1.974.549-4.16-.086-6.484-1.257 3.77-4.423 6.599-4.423 6.599s.166-4.198-.674-6.445c-.785 1.798-1.514 3.443-2.314 5.066-.039.079-.282-3.593-1.143-5.58-.623 1.653-1.21 3.18-1.842 4.681-.147-1.493-.529-3.03-1.301-4.552-.389 1.254-.761 2.435-1.147 3.589-.54-1.312-1.053-2.652-1.593-4.087-.951 2.195-1.148 4.376-.996 6.397.012.145-1.305-3.557-1.889-5.439-.77 1.52-1.151 3.057-1.297 4.55-.633-1.502-1.221-3.03-1.844-4.681-.86 1.987-1.104 5.658-1.143 5.58-.801-1.622-1.529-3.269-2.314-5.066-.752 3.74-2.336 4.649-2.336 4.649s-1.832-1.492-2.762-4.802c-.635 2.324-.557 6.383-.844 6.124-1.324-1.167-2.588-2.39-3.959-3.729.025 1.891.652 4.805.426 4.688-1.554-.777-3.066-1.623-4.707-2.551.598 2.326 2.974 5.527 2.912 5.508-1.646-.516-3.262-1.104-5.02-1.757.855 2.043 3.219 4.714 3.066 4.709-1.717-.04-3.42-.157-5.271-.298 1.432 1.873 5.738 4.191 5.576 4.212-1.703.234-3.404.39-5.256.545 1.594 1.542 4.879 2.93 4.748 2.969-1.65.51-3.307.938-5.115 1.393 2.278 2.257 5.72 2.547 5.72 2.547s-3.199 1.297-4.953 1.947c1.271.707 2.549 1.091 3.797 1.261-1.303.804-2.628 1.568-4.068 2.378 1.637.6 3.223.729 4.711.594-.028.018-.057.036-.084.054-1.48.934-2.982 1.793-4.627 2.716 1.258.46 2.484.64 3.662.639-.987.985-1.998 1.957-3.096 2.982 2.258.231 8.139-1.933 8.139-1.933-.926 1.545-1.904 3.035-2.982 4.649 2.246-.331 4.072-1.334 5.582-2.561 1.156-.951 2.918-2.862 2.918-2.862s-.502 3.614-.84 5.566c2.238-1.299 5.938-5.921 5.938-5.921s-.127 3.816-.262 5.883c1.955-1.517 3.18-3.337 3.989-5.185.384.603.769 1.203 1.142 1.811.959 1.521 1.838 3.081 2.781 4.791.895-2.543.586-6.904.586-6.904l6.695.292c0 0 .621 3.064.906 4.74 1.298-1.675 2.221-5.103 2.23-5.087.959 1.523 1.838 3.082 2.78 4.793.656-1.865.769-5.212.769-5.212s1.64 1.991 2.667 2.836c1.51 1.227 3.336 2.229 5.582 2.56-1.078-1.613-2.982-4.648-2.982-4.648s5.882 2.165 8.14 1.934c-1.098-1.025-2.109-1.997-3.096-2.982 1.177 0 2.402-.178 3.662-.64-1.645-.923-3.146-1.781-4.625-2.716-.028-.018-.056-.035-.084-.053 1.487.136 3.071.005 4.708-.595"/><path fill="#454749" d="m50.712 26.531c.146-.006.291.001.438-.01 1.895-.154 3.886-.702 5.767-2.046-1.446-.355-2.791-.703-4.12-1.078 1.413-.724 2.78-1.745 3.942-3.247-1.854.13-3.556.237-5.274.268-.332.009-.666.012-.998.017 1.515-1.188 2.912-2.76 3.84-4.939-1.758.64-3.377 1.221-5.02 1.727-.288.092-.579.177-.868.266.062-.063.127-.116.188-.18 1.344-1.435 2.521-3.229 3.131-5.558-1.645.92-3.162 1.755-4.721 2.525-.322.163-.649.32-.974.479.259-.378.507-.769.737-1.179.965-1.743 1.682-3.797 1.727-6.216-1.377 1.33-2.648 2.547-3.977 3.707-.562.501-1.132.992-1.702 1.487.096-.318.195-.634.271-.964.443-1.97.568-4.158-.053-6.485-.951 1.702-1.836 3.26-2.787 4.786-.061.099-.124.197-.186.296.012-1.459-.196-2.985-.77-4.544-.645 1.454-1.259 2.803-1.896 4.127-.008-1.625-.278-3.328-1.012-5.05-.703 1.836-1.357 3.516-2.082 5.178-.298.696-.607 1.388-.914 2.082-.007-.053-.015-.106-.021-.159-.234-1.814-.396-3.626-.563-5.603-1.389 1.671-2.154 3.527-2.58 5.362-.18-.407-.361-.814-.537-1.224-.725-1.66-1.38-3.341-2.083-5.175-.732 1.718-1 3.42-1.01 5.05-.638-1.325-1.253-2.674-1.897-4.128-.573 1.559-.781 3.085-.77 4.544-.062-.099-.125-.197-.186-.296-.951-1.526-1.836-3.084-2.787-4.785-.621 2.326-.496 4.515-.053 6.484.076.33.176.646.271.964-.57-.495-1.141-.986-1.703-1.487-1.328-1.161-2.6-2.377-3.977-3.707.045 2.419.762 4.472 1.727 6.216.23.41.479.8.736 1.178-.324-.159-.65-.316-.973-.479-1.559-.77-3.076-1.605-4.721-2.524.611 2.328 1.787 4.123 3.131 5.556.063.065.13.12.193.184-.291-.089-.584-.175-.873-.267-1.648-.507-3.268-1.088-5.03-1.728.928 2.179 2.325 3.75 3.84 4.938-.333-.005-.666-.008-.998-.017-1.719-.028-3.42-.137-5.273-.267 1.16 1.501 2.527 2.523 3.939 3.246-1.328.376-2.672.724-4.117 1.078 1.881 1.345 3.871 1.893 5.766 2.047.148.011.294.004.441.01-1.588.472-3.188.878-4.924 1.304 1.768 1.263 3.631 1.817 5.421 2.01-.236.173-.472.35-.71.521-1.414 1.038-2.863 2-4.441 3.043 1.91.55 3.715.494 5.368.136-.198.233-.396.471-.597.702-1.152 1.357-2.354 2.652-3.666 4.052 2.045.067 3.838-.47 5.406-1.269-.055.361-.105.725-.166 1.085-.277 1.815-.641 3.606-1.049 5.554 2.291-1.306 3.809-3.03 4.875-4.823.313-.533.573-1.074.81-1.62.176.453.354.905.522 1.361.654 1.702 1.223 3.431 1.832 5.317 1.061-1.936 2.383-5.826 2.864-8.363.229.392.425.789.534 1.2.543 1.956.992 3.919 1.469 6.05 1.551-2.104 2.199-4.387 2.4-6.585.027-.322.025-.639.033-.958.735 1.344 1.485 2.67 2.207 4.01 1.094 1.963 2.082 3.965 3.141 6.146.825-1.753 1.229-3.459 1.357-5.093.264 1.343.661 2.727 1.1 4.097 1.291-2.179 2.488-4.173 3.787-6.12.563-.868 1.144-1.725 1.722-2.587.448.955.97 1.888 1.611 2.771 1.176 1.593 2.709 3.052 4.805 3.969-.664-1.849-1.264-3.554-1.795-5.295-.215-.678-.419-1.36-.625-2.042.558.435 1.139.847 1.77 1.205 1.684.943 3.641 1.604 5.904 1.53-1.313-1.399-2.514-2.694-3.666-4.052-.201-.231-.397-.469-.597-.702 1.652.358 3.459.414 5.369-.136-1.579-1.039-3.03-2-4.442-3.043-.238-.171-.474-.348-.71-.521 1.79-.191 3.653-.746 5.422-2.01-1.734-.427-3.333-.832-4.919-1.305"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 43.9c-3.2-1.2-2.1-6.8-2.1-6.8h-36.6c0 0 1.1 5.6-2.1 6.8 0 0-2.6-.3-2.6 2.7 0 3.7 2.7 3 2.7 3 0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4 0 0 2.7.6 2.7-3 0-3-2.6-2.7-2.6-2.7" fill="#d6a57c"/><path d="m50.5 38.6v10.9c0 5-5.2 10.4-18.4 10.4-13.2 0-18.4-5.3-18.4-10.4v-10.9h-1.9v11.9c0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4v-11.9h-1.9" fill="#454749"/><g fill="#fff"><ellipse cx="41.5" cy="46" rx="5.3" ry="5.3"/><ellipse cx="22.6" cy="46" rx="5.3" ry="5.3"/></g><g fill="#664e27"><path d="m26.5 53.9c-.1.1-.2.3-.2.5 0 1.3 2.6 2.9 5.8 2.9s5.8-1.6 5.8-2.9c0-.2 0-.4-.1-.5 0 0-2.5 1.1-5.6 1.1-3.3 0-5.7-1.1-5.7-1.1"/><circle cx="41.5" cy="46" r="3.8"/></g><path d="m42.7 46c0 .7-.6 1.3-1.2 1.3-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3c.6 0 1.2.6 1.2 1.3" fill="#231f20"/><circle cx="22.5" cy="46" r="3.8" fill="#664e27"/><circle cx="22.5" cy="46" r="1.2" fill="#231f20"/><path d="m57.3 36.8c2.6-.2 4.7-2.1 4.7-2.1-1.4-.5-2.7-2.6-3.9-3.1 1.3-.2 2.4-2.1 3.7-2.9-.7-.2-3.2-1.9-4-2.1 1.3-.6 2.6-1.6 3.8-2.8-1.1-.1-2.8-2.2-3.4-2.2 2.2-1 3.2-2.9 3.2-2.9-1 .1-2.3-1.7-3.5-1.8 2.4-1.5 2.2-4.3 2.2-4.3-1.4.9-3.5.2-4.1.4 1.2-1.9.7-4.4.7-4.4-1 1.3-2.4.8-3.1 1.2.3-.9-.6-2.7-.3-3.8-1 1-2.9.9-3.6 2.1.2-1.2-.7-2.9-.8-4.3-.8.9-2.6 2.2-2.9 2.9-.1-1-1.4-2.4-1.8-3.5-.3.7-2 2.6-2.3 3.1-.2-1.7-.5-1.9-1.2-3.1-.2.8-1.9 1.7-2.4 3.1-.4-2-1.4-3.1-1.9-3.9-.3 1-2 2.4-2.2 3.1-.4-1.4-2.2-3.5-2.2-3.5s-1.8 2.1-2.2 3.5c-.2-.6-1.9-2.1-2.2-3.1-.4.8-1.5 1.9-1.9 3.9-.4-1.4-2.1-2.2-2.4-3.1-.7 1.2-1 1.4-1.2 3.1-.3-.5-2-2.3-2.3-3.1-.4 1-1.6 2.4-1.8 3.5-.3-.7-2.1-2-2.8-2.8-.2 1.4-1.1 3.1-.8 4.3-.7-1.3-2.5-1.2-3.5-2.2.3 1.1-.6 2.8-.3 3.8-.8-.4-2.2.1-3.2-1.2 0 0-.5 2.4.7 4.4-.6-.2-2.7.4-4.1-.4 0 0-.2 2.8 2.2 4.3-1.2.1-2.6 1.8-3.6 1.8 0 0 1 1.9 3.2 2.9-.5 0-2.3 2.2-3.4 2.2 1.2 1.2 2.4 2.2 3.8 2.8-.8.2-3.3 1.9-4 2.1 1.3.8 2.4 2.7 3.7 2.9-1.2.5-2.5 2.6-3.9 3.1 0 0 2.1 1.9 4.7 2.1-1.1.4-.5 2.5-3.2 4.5 3.3-.6 3.7.5 6.7-1 0 0 .5 2.3-.9 3.4 0 0 4.5 1.8 7.4-4-.2 1.2 1.9 1.8 2.5 4.1 2.7-2.6 3.1-5.1 3.1-5.1.4 2.9 4.1 4 4 5.2 1.2-.9 3-2.2 3.3-4.1 1.8 2 1.2 5 1.2 5s3.8-1.3 4.9-5c.2 1.9 1 3.1 2.1 4-.1-1.2 3.6-2.3 4-5.2 0 0 .4 2.5 3.1 5.1.5-2.4 2.6-2.9 2.5-4.1 2.9 5.8 7.4 4 7.4 4-1.4-1.1-.9-3.4-.9-3.4 3 1.5 3.4.4 6.7 1-2.8-1.9-2.2-4-3.3-4.4" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fe.svg
index 306608c..ece9fd3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m52.39 43.891c-3.164-1.201-2.059-6.799-2.059-6.799h-36.656c0 0 1.107 5.598-2.059 6.799 0 0-2.613-.333-2.613 2.704 0 3.66 2.689 3.04 2.689 3.04 0 5.572 5.693 11.448 20.312 11.448 14.616 0 20.312-5.876 20.312-11.448 0 0 2.688.62 2.688-3.04-.001-3.037-2.614-2.704-2.614-2.704"/><path fill="#454749" d="m50.46 38.633v10.901c0 5.05-5.16 10.37-18.399 10.37-13.241 0-18.401-5.322-18.401-10.37v-10.901h-1.91v11.919c0 5.571 5.695 11.446 20.312 11.446s20.312-5.875 20.312-11.446v-11.919h-1.914"/><g fill="#fff"><ellipse cx="41.452" cy="45.956" rx="5.29" ry="5.314"/><ellipse cx="22.551" cy="45.956" rx="5.291" ry="5.314"/></g><path fill="#574137" d="m26.477 53.911c-.105.121-.162.279-.162.471-.002 1.305 2.574 2.903 5.75 2.903s5.75-1.588 5.75-2.894c0-.175-.049-.359-.137-.48 0 0-2.484 1.124-5.613 1.124-3.124 0-5.588-1.124-5.588-1.124"/><circle fill="#664e27" cx="41.452" cy="45.957" r="3.75"/><path fill="#231f20" d="m42.701 45.957c0 .688-.56 1.25-1.25 1.25s-1.25-.562-1.25-1.25c0-.693.56-1.25 1.25-1.25s1.25.557 1.25 1.25"/><circle fill="#664e27" cx="22.55" cy="45.957" r="3.75"/><circle fill="#231f20" cx="22.551" cy="45.957" r="1.25"/><path fill="#454749" d="m61.37 35.504c-1.596-.615-3.065-1.197-4.516-1.831 1.662-.021 3.412-.364 5.15-1.307-1.523-.587-2.93-1.147-4.318-1.747 1.209-.161 2.447-.522 3.682-1.187-1.292-.501-2.494-.985-3.678-1.487 1.313-.219 2.654-.667 3.971-1.484-1.452-.461-2.8-.907-4.13-1.381 1.337-.551 2.649-1.365 3.839-2.591-1.77-.089-3.397-.184-5.03-.346 1.538-.726 3.034-1.791 4.294-3.409-1.854.124-5.586-.538-5.586-.538s3.236-2.393 4.404-4.464c-1.758.406-3.377.766-5.02 1.06 1.055-1.28 1.955-2.813 2.467-4.726-1.65.91-5.49 2.862-5.49 2.862s2.193-3.771 2.479-6.171c-1.502 1.168-5.157 3.819-5.157 3.819s1.147-4.03.858-6.428c-1.18 1.533-3.887 4.833-3.887 4.833s-.133-3.827-.979-5.822c-.707 1.833-2.975 7.165-3.416 8.169.072-.628-.271-6.096-1.398-8.193-.539 1.897-3.945 7.453-3.945 7.453s-1.433-6.161-1.647-8.131c-.94 1.191-1.574 2.465-2 3.751-.186-1.357-.342-2.738-.501-4.21-1.376 1.742-2.097 3.66-2.473 5.541-.541-1.64-1.022-3.295-1.533-5.094-1.127 2.099-1.44 7.982-1.319 8.806-.258-.766-1.851-5.761-2.391-7.657-1.127 2.098-1.469 7.564-1.398 8.193-.44-1-2.709-6.336-3.416-8.168-.846 1.994-1.066 3.968-.979 5.82-.153-.181-2.707-3.3-3.887-4.831-.287 2.398.139 4.541.854 6.418.002.003.004.006.004.009-.277-.193-3.654-2.649-5.156-3.818.166 2.707 1.721 5.805 1.721 5.805s-3.082-1.586-4.732-2.496c.512 1.913 1.412 3.445 2.467 4.726-1.641-.294-3.262-.655-5.02-1.061 1.036 2.953 4.092 5.255 4.092 5.255s-3.42-.128-5.273-.253c1.26 1.62 2.758 2.685 4.295 3.41-1.631.161-3.26.257-5.03.346 1.189 1.226 2.502 2.04 3.84 2.591-1.331.474-2.679.92-4.131 1.381 1.315.817 2.656 1.266 3.971 1.484-1.184.502-2.386.986-3.678 1.487 1.234.664 2.472 1.025 3.681 1.187-1.388.6-2.794 1.159-4.317 1.746 1.74.944 3.49 1.286 5.152 1.307-1.451.636-2.922 1.218-4.518 1.832 1.241.674 2.488 1.04 3.707 1.203-1.253 1.1-2.541 2.146-3.945 3.269 3.151.427 7.07-.912 7.07-.912s-2.246 2.757-3.502 4.216c5.922-.122 27.03-11.588 27.03-11.588s17.656 11.06 25.04 11.129c-1.256-1.458-3.5-4.215-3.5-4.215s4.834 1.328 7.07.912c-1.404-1.123-2.691-2.17-3.945-3.27 1.217-.164 2.464-.53 3.705-1.204"/><path fill="#57595b" d="m59.46 33.827c-1.441-.808-2.766-1.574-4.068-2.378 1.248-.17 2.527-.554 3.797-1.261-1.754-.649-6.158-2.468-6.158-2.468s5.03-.693 6.924-2.027c-1.809-.454-3.465-.884-5.115-1.393-.132-.039 3.153-1.427 4.748-2.97-1.852-.154-4.631-1-4.631-1s3.52-1.88 4.951-3.754c-1.852.141-3.555.259-5.27.297-.152.005 2.209-2.666 3.064-4.707-1.754.651-3.369 1.24-5.02 1.757-.063.02 2.313-3.181 2.912-5.509-1.641.929-3.152 1.773-4.707 2.553-.228.116.399-2.8.426-4.689-1.477 2.137-4.749 4.229-4.717 4.089.434-1.974.549-4.16-.086-6.484-1.257 3.77-4.424 6.599-4.424 6.599s.166-4.198-.674-6.445c-.785 1.798-1.514 3.443-2.314 5.066-.038.079-.281-3.593-1.142-5.58-.623 1.653-1.21 3.18-1.843 4.681-.146-1.493-.528-3.03-1.3-4.552-.389 1.254-.761 2.435-1.147 3.589-.54-1.312-1.053-2.652-1.593-4.087-.951 2.195-1.148 4.376-.996 6.397.012.145-1.305-3.557-1.889-5.439-.771 1.521-1.153 3.058-1.3 4.551-.633-1.502-1.22-3.03-1.843-4.681-.86 1.987-1.104 5.658-1.143 5.58-.802-1.622-1.53-3.269-2.315-5.066-.752 3.74-2.336 4.649-2.336 4.649s-1.83-1.493-2.76-4.803c-.635 2.324-.557 6.383-.844 6.124-1.324-1.167-2.588-2.39-3.959-3.729.026 1.891.653 4.805.426 4.688-1.554-.777-3.066-1.623-4.707-2.551.599 2.326 2.975 5.527 2.912 5.508-1.646-.516-3.262-1.104-5.02-1.757.855 2.043 3.219 4.714 3.066 4.709-1.717-.04-3.42-.157-5.271-.298 1.432 1.873 5.739 4.191 5.576 4.212-1.703.234-3.404.39-5.256.545 1.595 1.542 4.88 2.93 4.748 2.969-1.65.51-3.307.938-5.115 1.393 2.279 2.257 5.72 2.547 5.72 2.547s-3.199 1.297-4.953 1.947c1.271.707 2.55 1.091 3.798 1.261-1.304.804-2.628 1.568-4.069 2.378 1.638.6 3.223.729 4.711.594-.027.018-.056.036-.084.054-1.48.934-2.982 1.793-4.627 2.716 1.259.46 2.485.64 3.662.639-.986.985-1.998 1.957-3.096 2.982 2.258.231 8.139-1.933 8.139-1.933-.926 1.545-1.904 3.035-2.982 4.649 2.246-.331 4.072-1.334 5.582-2.561 1.156-.951 2.918-2.862 2.918-2.862s-.502 3.614-.84 5.566c2.238-1.299 5.938-5.921 5.938-5.921s-.127 3.816-.262 5.883c1.955-1.517 3.18-3.337 3.99-5.185.383.603.768 1.203 1.142 1.811.959 1.521 1.838 3.081 2.781 4.791.895-2.543.586-6.904.586-6.904l6.694.292c0 0 .621 3.064.906 4.74 1.299-1.675 2.221-5.103 2.23-5.087.959 1.523 1.838 3.082 2.781 4.793.656-1.865.769-5.212.769-5.212s1.64 1.991 2.667 2.836c1.51 1.227 3.336 2.229 5.582 2.56-1.078-1.613-2.982-4.648-2.982-4.648s5.881 2.165 8.139 1.934c-1.098-1.025-2.109-1.997-3.096-2.982 1.178 0 2.403-.178 3.662-.64-1.645-.923-3.146-1.781-4.625-2.716-.027-.018-.055-.035-.084-.053 1.487.136 3.071.005 4.708-.595"/><path fill="#454749" d="m50.712 26.531c.146-.006.291.001.439-.01 1.895-.154 3.885-.702 5.766-2.046-1.445-.355-2.791-.703-4.119-1.078 1.413-.724 2.78-1.745 3.941-3.247-1.854.13-3.555.237-5.273.268-.332.009-.666.012-.998.017 1.514-1.188 2.912-2.76 3.84-4.939-1.758.64-3.377 1.221-5.02 1.727-.289.092-.58.177-.869.266.063-.063.128-.116.189-.18 1.344-1.435 2.521-3.229 3.131-5.558-1.645.92-3.162 1.755-4.721 2.525-.322.163-.649.32-.974.479.259-.378.507-.769.737-1.179.965-1.743 1.682-3.797 1.727-6.216-1.377 1.33-2.648 2.547-3.977 3.707-.563.501-1.133.992-1.703 1.487.096-.318.195-.634.271-.964.443-1.97.568-4.158-.053-6.485-.951 1.702-1.836 3.26-2.787 4.786-.061.099-.123.197-.185.296.011-1.459-.196-2.985-.771-4.544-.645 1.454-1.258 2.803-1.896 4.127-.008-1.625-.277-3.328-1.01-5.05-.703 1.836-1.357 3.516-2.082 5.178-.298.696-.607 1.388-.915 2.082-.006-.053-.014-.106-.021-.159-.234-1.814-.396-3.626-.563-5.603-1.39 1.671-2.155 3.527-2.581 5.362-.18-.407-.361-.814-.536-1.224-.727-1.661-1.381-3.343-2.084-5.177-.733 1.718-1 3.42-1.01 5.05-.639-1.325-1.254-2.674-1.897-4.128-.573 1.559-.781 3.085-.771 4.544-.061-.099-.125-.197-.186-.296-.951-1.526-1.836-3.084-2.787-4.785-.621 2.326-.496 4.515-.053 6.484.077.33.177.646.271.964-.57-.495-1.141-.986-1.703-1.487-1.328-1.161-2.6-2.377-3.977-3.707.045 2.419.762 4.472 1.727 6.216.23.41.479.8.736 1.178-.324-.159-.65-.316-.973-.479-1.559-.77-3.076-1.605-4.721-2.524.611 2.328 1.787 4.123 3.131 5.556.063.065.131.12.193.184-.291-.089-.583-.175-.873-.267-1.648-.507-3.268-1.088-5.03-1.728.928 2.179 2.326 3.75 3.84 4.938-.332-.005-.666-.008-.998-.017-1.719-.028-3.42-.137-5.273-.267 1.16 1.501 2.527 2.523 3.94 3.246-1.328.376-2.673.724-4.118 1.078 1.881 1.345 3.871 1.893 5.766 2.047.149.011.295.004.441.01-1.587.472-3.187.878-4.924 1.304 1.768 1.263 3.631 1.817 5.422 2.01-.236.173-.473.35-.711.521-1.414 1.038-2.863 2-4.441 3.043 1.91.55 3.716.494 5.369.136-.199.233-.396.471-.598.702-1.152 1.357-2.354 2.652-3.666 4.052 2.045.067 3.838-.47 5.407-1.269-.056.361-.106.725-.167 1.085-.277 1.815-.641 3.606-1.049 5.554 2.291-1.306 3.809-3.03 4.875-4.823.313-.533.574-1.074.811-1.62.176.453.354.905.521 1.361.654 1.702 1.223 3.431 1.832 5.317 1.062-1.936 2.383-5.826 2.865-8.363.229.392.425.789.534 1.2.543 1.956.992 3.919 1.469 6.05 1.551-2.104 2.199-4.387 2.4-6.585.027-.322.024-.639.032-.958.736 1.344 1.486 2.67 2.208 4.01 1.094 1.963 2.082 3.965 3.141 6.146.825-1.753 1.229-3.459 1.356-5.093.264 1.343.662 2.727 1.101 4.097 1.29-2.179 2.487-4.173 3.786-6.12.564-.868 1.145-1.725 1.723-2.587.447.955.969 1.888 1.611 2.771 1.176 1.593 2.709 3.052 4.805 3.969-.664-1.849-1.264-3.554-1.795-5.295-.215-.678-.42-1.36-.625-2.042.558.435 1.139.847 1.77 1.205 1.684.943 3.641 1.604 5.904 1.53-1.313-1.399-2.514-2.694-3.666-4.052-.201-.231-.398-.469-.598-.702 1.653.358 3.459.414 5.369-.136-1.578-1.039-3.03-2-4.441-3.043-.238-.171-.475-.348-.711-.521 1.791-.191 3.654-.746 5.422-2.01-1.732-.425-3.33-.83-4.917-1.303"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 43.9c-3.2-1.2-2.1-6.8-2.1-6.8h-36.6c0 0 1.1 5.6-2.1 6.8 0 0-2.6-.3-2.6 2.7 0 3.7 2.7 3 2.7 3 0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4 0 0 2.7.6 2.7-3 0-3-2.6-2.7-2.6-2.7" fill="#b47d56"/><path d="m50.5 38.6v10.9c0 5-5.2 10.4-18.4 10.4-13.2 0-18.4-5.3-18.4-10.4v-10.9h-1.9v11.9c0 5.6 5.7 11.4 20.3 11.4s20.3-5.9 20.3-11.4v-11.9h-1.9" fill="#454749"/><g fill="#fff"><ellipse cx="41.5" cy="46" rx="5.3" ry="5.3"/><ellipse cx="22.6" cy="46" rx="5.3" ry="5.3"/></g><g fill="#664e27"><path d="m26.5 53.9c-.1.1-.2.3-.2.5 0 1.3 2.6 2.9 5.8 2.9s5.8-1.6 5.8-2.9c0-.2 0-.4-.1-.5 0 0-2.5 1.1-5.6 1.1-3.3 0-5.7-1.1-5.7-1.1"/><circle cx="41.5" cy="46" r="3.8"/></g><path d="m42.7 46c0 .7-.6 1.3-1.2 1.3-.7 0-1.2-.6-1.2-1.3s.6-1.3 1.2-1.3c.6 0 1.2.6 1.2 1.3" fill="#231f20"/><circle cx="22.5" cy="46" r="3.8" fill="#664e27"/><circle cx="22.5" cy="46" r="1.2" fill="#231f20"/><path d="m57.3 36.8c2.6-.2 4.7-2.1 4.7-2.1-1.4-.5-2.7-2.6-3.9-3.1 1.3-.2 2.4-2.1 3.7-2.9-.7-.2-3.2-1.9-4-2.1 1.3-.6 2.6-1.6 3.8-2.8-1.1-.1-2.8-2.2-3.4-2.2 2.2-1 3.2-2.9 3.2-2.9-1 .1-2.3-1.7-3.5-1.8 2.4-1.5 2.2-4.3 2.2-4.3-1.4.9-3.5.2-4.1.4 1.2-1.9.7-4.4.7-4.4-1 1.3-2.4.8-3.1 1.2.3-.9-.6-2.7-.3-3.8-1 1-2.9.9-3.6 2.1.2-1.2-.7-2.9-.8-4.3-.8.9-2.6 2.2-2.9 2.9-.1-1-1.4-2.4-1.8-3.5-.3.7-2 2.6-2.3 3.1-.2-1.7-.5-1.9-1.2-3.1-.2.8-1.9 1.7-2.4 3.1-.4-2-1.4-3.1-1.9-3.9-.3 1-2 2.4-2.2 3.1-.4-1.4-2.2-3.5-2.2-3.5s-1.8 2.1-2.2 3.5c-.2-.6-1.9-2.1-2.2-3.1-.4.8-1.5 1.9-1.9 3.9-.4-1.4-2.1-2.2-2.4-3.1-.7 1.2-1 1.4-1.2 3.1-.3-.5-2-2.3-2.3-3.1-.4 1-1.6 2.4-1.8 3.5-.3-.7-2.1-2-2.8-2.8-.2 1.4-1.1 3.1-.8 4.3-.7-1.3-2.5-1.2-3.5-2.2.3 1.1-.6 2.8-.3 3.8-.8-.4-2.2.1-3.2-1.2 0 0-.5 2.4.7 4.4-.6-.2-2.7.4-4.1-.4 0 0-.2 2.8 2.2 4.3-1.2.1-2.6 1.8-3.6 1.8 0 0 1 1.9 3.2 2.9-.5 0-2.3 2.2-3.4 2.2 1.2 1.2 2.4 2.2 3.8 2.8-.8.2-3.3 1.9-4 2.1 1.3.8 2.4 2.7 3.7 2.9-1.2.5-2.5 2.6-3.9 3.1 0 0 2.1 1.9 4.7 2.1-1.1.4-.5 2.5-3.2 4.5 3.3-.6 3.7.5 6.7-1 0 0 .5 2.3-.9 3.4 0 0 4.5 1.8 7.4-4-.2 1.2 1.9 1.8 2.5 4.1 2.7-2.6 3.1-5.1 3.1-5.1.4 2.9 4.1 4 4 5.2 1.2-.9 3-2.2 3.3-4.1 1.8 2 1.2 5 1.2 5s3.8-1.3 4.9-5c.2 1.9 1 3.1 2.1 4-.1-1.2 3.6-2.3 4-5.2 0 0 .4 2.5 3.1 5.1.5-2.4 2.6-2.9 2.5-4.1 2.9 5.8 7.4 4 7.4 4-1.4-1.1-.9-3.4-.9-3.4 3 1.5 3.4.4 6.7 1-2.8-1.9-2.2-4-3.3-4.4" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3ff.svg
index ffa7abc..c59625b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f482-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m52.39 43.891c-3.164-1.201-2.059-6.799-2.059-6.799h-36.654c0 0 1.107 5.598-2.059 6.799 0 0-2.614-.333-2.614 2.704 0 3.66 2.69 3.04 2.69 3.04 0 5.572 5.693 11.448 20.311 11.448 14.615 0 20.311-5.876 20.311-11.448 0 0 2.688.62 2.688-3.04 0-3.037-2.614-2.704-2.614-2.704"/><path fill="#454749" d="m50.46 38.633v10.901c0 5.05-5.16 10.37-18.398 10.37-13.24 0-18.4-5.322-18.4-10.37v-10.901h-1.91v11.919c0 5.571 5.695 11.446 20.311 11.446s20.311-5.875 20.311-11.446v-11.919h-1.914"/><g fill="#fff"><ellipse cx="41.45" cy="45.956" rx="5.289" ry="5.314"/><ellipse cx="22.552" cy="45.956" rx="5.29" ry="5.314"/></g><path fill="#574137" d="m26.477 53.911c-.105.121-.162.279-.162.471-.002 1.305 2.574 2.903 5.75 2.903s5.75-1.588 5.75-2.894c0-.175-.049-.359-.137-.48 0 0-2.484 1.124-5.613 1.124-3.124 0-5.588-1.124-5.588-1.124"/><circle fill="#664e27" cx="41.45" cy="45.957" r="3.75"/><circle fill="#231f20" cx="41.45" cy="45.957" r="1.25"/><circle fill="#664e27" cx="22.551" cy="45.957" r="3.75"/><circle fill="#231f20" cx="22.551" cy="45.957" r="1.25"/><path fill="#454749" d="m61.37 35.504c-1.595-.615-3.065-1.197-4.517-1.831 1.664-.021 3.414-.364 5.151-1.307-1.523-.587-2.931-1.147-4.317-1.747 1.209-.161 2.447-.522 3.681-1.187-1.292-.501-2.495-.985-3.679-1.487 1.314-.219 2.656-.667 3.972-1.484-1.452-.461-2.8-.907-4.13-1.381 1.336-.551 2.65-1.365 3.839-2.591-1.769-.089-3.397-.184-5.03-.346 1.537-.726 3.034-1.791 4.294-3.409-1.854.124-5.586-.538-5.586-.538s3.236-2.393 4.404-4.464c-1.758.406-3.378.766-5.02 1.06 1.053-1.28 1.953-2.813 2.466-4.726-1.65.91-5.491 2.862-5.491 2.862s2.193-3.771 2.479-6.171c-1.502 1.168-5.156 3.819-5.156 3.819s1.146-4.03.857-6.428c-1.18 1.531-3.887 4.832-3.887 4.832s-.132-3.827-.979-5.822c-.707 1.833-2.974 7.165-3.414 8.169.07-.628-.271-6.096-1.398-8.193-.54 1.897-3.945 7.453-3.945 7.453s-1.434-6.161-1.648-8.131c-.94 1.191-1.574 2.465-2 3.751-.186-1.357-.341-2.738-.5-4.21-1.375 1.742-2.098 3.66-2.473 5.541-.541-1.64-1.021-3.295-1.533-5.094-1.127 2.099-1.44 7.982-1.318 8.806-.26-.766-1.852-5.761-2.391-7.657-1.127 2.098-1.471 7.564-1.398 8.193-.441-1-2.709-6.336-3.416-8.168-.846 1.994-1.068 3.968-.979 5.82-.154-.181-2.707-3.3-3.887-4.831-.287 2.398.139 4.541.854 6.418 0 .003.002.006.004.009-.278-.193-3.654-2.649-5.156-3.818.166 2.707 1.721 5.805 1.721 5.805s-3.083-1.586-4.733-2.496c.513 1.913 1.413 3.445 2.466 4.726-1.639-.294-3.261-.655-5.02-1.061 1.036 2.953 4.092 5.255 4.092 5.255s-3.42-.128-5.273-.253c1.261 1.62 2.757 2.685 4.296 3.41-1.632.161-3.261.257-5.03.346 1.188 1.226 2.503 2.04 3.839 2.591-1.33.474-2.678.92-4.13 1.381 1.315.817 2.657 1.266 3.972 1.484-1.184.502-2.387.986-3.679 1.487 1.233.664 2.472 1.025 3.681 1.187-1.387.6-2.795 1.159-4.317 1.746 1.739.944 3.489 1.286 5.152 1.307-1.451.636-2.922 1.218-4.518 1.832 1.241.674 2.489 1.04 3.706 1.203-1.252 1.1-2.539 2.146-3.944 3.269 3.151.427 7.07-.912 7.07-.912s-2.246 2.757-3.502 4.216c5.921-.122 27.03-11.588 27.03-11.588s17.654 11.06 25.04 11.128c-1.256-1.458-3.5-4.215-3.5-4.215s4.834 1.328 7.07.912c-1.405-1.123-2.69-2.17-3.944-3.27 1.217-.162 2.465-.528 3.706-1.202"/><path fill="#57595b" d="m59.46 33.827c-1.44-.808-2.767-1.574-4.068-2.378 1.248-.17 2.527-.554 3.797-1.261-1.754-.649-6.159-2.468-6.159-2.468s5.03-.693 6.925-2.027c-1.809-.454-3.465-.884-5.115-1.393-.132-.039 3.153-1.427 4.748-2.97-1.852-.154-4.631-1-4.631-1s3.52-1.88 4.951-3.754c-1.852.141-3.555.259-5.27.297-.153.005 2.208-2.666 3.064-4.707-1.754.651-3.37 1.24-5.02 1.757-.062.02 2.314-3.181 2.913-5.509-1.642.929-3.153 1.773-4.708 2.553-.227.116.4-2.8.426-4.689-1.475 2.137-4.748 4.229-4.717 4.089.434-1.974.549-4.16-.086-6.484-1.256 3.77-4.422 6.599-4.422 6.599s.166-4.198-.674-6.445c-.785 1.798-1.514 3.443-2.315 5.066-.038.079-.282-3.593-1.142-5.58-.623 1.653-1.211 3.18-1.843 4.681-.147-1.493-.528-3.03-1.3-4.552-.389 1.254-.762 2.435-1.148 3.589-.539-1.312-1.053-2.652-1.592-4.087-.951 2.195-1.148 4.376-.996 6.397.012.145-1.305-3.557-1.889-5.439-.771 1.521-1.152 3.058-1.299 4.551-.633-1.502-1.221-3.03-1.844-4.681-.861 1.987-1.104 5.658-1.143 5.58-.801-1.622-1.529-3.269-2.314-5.066-.752 3.74-2.336 4.649-2.336 4.649s-1.831-1.493-2.76-4.803c-.635 2.324-.557 6.383-.844 6.124-1.324-1.167-2.588-2.39-3.959-3.729.025 1.891.652 4.805.426 4.688-1.555-.778-3.066-1.624-4.708-2.552.599 2.326 2.974 5.527 2.913 5.508-1.646-.516-3.263-1.104-5.02-1.757.856 2.043 3.219 4.714 3.066 4.709-1.717-.04-3.42-.157-5.271-.298 1.432 1.873 5.739 4.191 5.577 4.212-1.704.234-3.405.39-5.257.545 1.595 1.542 4.88 2.93 4.748 2.969-1.65.51-3.307.938-5.115 1.393 2.279 2.258 5.72 2.548 5.72 2.548s-3.2 1.297-4.954 1.947c1.271.707 2.55 1.091 3.798 1.261-1.303.804-2.629 1.568-4.069 2.378 1.638.6 3.223.729 4.712.594-.029.018-.057.036-.085.054-1.48.934-2.982 1.793-4.627 2.716 1.259.46 2.485.64 3.662.639-.987.985-1.998 1.957-3.096 2.982 2.258.231 8.14-1.933 8.14-1.933-.926 1.545-1.904 3.035-2.982 4.649 2.246-.331 4.072-1.334 5.582-2.561 1.156-.951 2.918-2.862 2.918-2.862s-.502 3.614-.84 5.566c2.238-1.299 5.938-5.921 5.938-5.921s-.127 3.816-.262 5.883c1.955-1.517 3.18-3.337 3.988-5.185.384.603.77 1.203 1.143 1.811.959 1.521 1.838 3.081 2.781 4.791.895-2.543.586-6.904.586-6.904l6.694.292c0 0 .621 3.064.907 4.74 1.297-1.675 2.221-5.103 2.23-5.087.959 1.523 1.838 3.082 2.779 4.793.656-1.865.77-5.212.77-5.212s1.639 1.991 2.666 2.836c1.51 1.227 3.336 2.229 5.582 2.56-1.078-1.613-2.982-4.648-2.982-4.648s5.882 2.165 8.14 1.934c-1.097-1.025-2.108-1.997-3.095-2.982 1.176 0 2.402-.178 3.661-.64-1.645-.923-3.146-1.781-4.625-2.716-.028-.018-.056-.035-.083-.053 1.488.136 3.071.005 4.708-.595"/><path fill="#454749" d="m50.713 26.531c.146-.006.29.001.438-.01 1.895-.154 3.886-.702 5.767-2.046-1.446-.355-2.791-.703-4.12-1.078 1.414-.724 2.781-1.745 3.942-3.247-1.854.13-3.556.237-5.274.268-.332.009-.666.012-.998.017 1.515-1.188 2.912-2.76 3.84-4.939-1.758.64-3.377 1.221-5.02 1.727-.287.092-.579.177-.868.266.062-.063.128-.116.188-.18 1.344-1.435 2.521-3.229 3.131-5.558-1.645.92-3.162 1.755-4.721 2.525-.322.163-.648.32-.973.479.258-.378.506-.769.736-1.179.965-1.743 1.682-3.797 1.727-6.216-1.377 1.33-2.648 2.547-3.977 3.707-.562.501-1.132.992-1.701 1.487.095-.318.194-.634.271-.964.443-1.97.568-4.158-.053-6.485-.951 1.702-1.836 3.26-2.787 4.786-.061.099-.125.197-.186.296.011-1.459-.197-2.985-.771-4.544-.644 1.454-1.259 2.803-1.896 4.127-.008-1.625-.279-3.328-1.012-5.05-.703 1.836-1.357 3.516-2.082 5.178-.299.696-.607 1.388-.914 2.082-.008-.053-.016-.106-.021-.159-.234-1.814-.396-3.626-.563-5.603-1.389 1.671-2.155 3.527-2.58 5.362-.18-.407-.362-.814-.537-1.224-.727-1.661-1.381-3.343-2.084-5.177-.732 1.718-1 3.42-1.012 5.05-.637-1.325-1.252-2.674-1.896-4.128-.574 1.559-.781 3.085-.771 4.544-.062-.099-.124-.197-.185-.296-.951-1.526-1.836-3.084-2.787-4.785-.621 2.326-.496 4.515-.053 6.484.076.33.176.646.271.964-.57-.495-1.141-.986-1.703-1.487-1.328-1.161-2.6-2.377-3.977-3.707.045 2.419.762 4.472 1.727 6.216.229.41.478.8.736 1.178-.324-.159-.651-.316-.973-.479-1.559-.77-3.076-1.605-4.721-2.524.611 2.328 1.787 4.123 3.131 5.556.063.065.129.12.193.184-.291-.089-.584-.175-.873-.267-1.648-.507-3.268-1.088-5.03-1.728.927 2.179 2.324 3.75 3.839 4.938-.333-.005-.665-.008-.997-.017-1.719-.028-3.421-.137-5.274-.267 1.161 1.501 2.527 2.523 3.94 3.246-1.328.376-2.673.724-4.118 1.078 1.881 1.345 3.872 1.893 5.767 2.047.148.011.293.004.441.01-1.588.472-3.188.878-4.925 1.304 1.769 1.263 3.631 1.817 5.421 2.01-.236.173-.471.35-.709.521-1.414 1.038-2.863 2-4.442 3.043 1.91.55 3.716.494 5.368.136-.198.233-.395.471-.596.702-1.152 1.357-2.354 2.652-3.666 4.052 2.045.067 3.838-.47 5.406-1.269-.055.361-.106.725-.166 1.085-.277 1.815-.641 3.606-1.049 5.554 2.291-1.306 3.809-3.03 4.875-4.823.313-.533.572-1.074.809-1.62.176.453.354.905.523 1.361.654 1.702 1.223 3.431 1.832 5.317 1.061-1.936 2.382-5.826 2.863-8.363.23.392.426.789.535 1.2.543 1.956.992 3.919 1.469 6.05 1.551-2.104 2.199-4.387 2.4-6.585.027-.322.025-.639.033-.958.734 1.344 1.484 2.67 2.207 4.01 1.094 1.963 2.082 3.965 3.141 6.146.824-1.753 1.229-3.459 1.356-5.093.265 1.343.661 2.727 1.101 4.097 1.29-2.179 2.488-4.173 3.787-6.12.563-.868 1.143-1.725 1.721-2.587.448.955.971 1.888 1.611 2.771 1.176 1.593 2.709 3.052 4.805 3.969-.664-1.849-1.264-3.554-1.795-5.295-.215-.678-.418-1.36-.625-2.042.559.435 1.139.847 1.77 1.205 1.684.943 3.641 1.604 5.904 1.53-1.313-1.399-2.514-2.694-3.666-4.052-.201-.231-.396-.469-.596-.702 1.652.358 3.458.414 5.368-.136-1.579-1.039-3.03-2-4.442-3.043-.238-.171-.473-.348-.709-.521 1.789-.191 3.652-.746 5.421-2.01-1.732-.425-3.331-.83-4.917-1.303"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 43.9c-3.2-1.2-2.1-6.8-2.1-6.8h-36.6c0 0 1.1 5.6-2.1 6.8 0 0-2.6-.3-2.6 2.7 0 3.7 2.7 3 2.7 3 0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4 0 0 2.7.6 2.7-3 0-3-2.6-2.7-2.6-2.7" fill="#8a6859"/><path d="m50.5 38.6v10.9c0 5-5.2 10.4-18.4 10.4-13.2 0-18.4-5.3-18.4-10.4v-10.9h-1.9v11.9c0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4v-11.9h-1.9" fill="#454749"/><g fill="#fff"><ellipse cx="41.5" cy="46" rx="5.3" ry="5.3"/><ellipse cx="22.6" cy="46" rx="5.3" ry="5.3"/></g><path d="m26.5 53.9c-.1.1-.2.3-.2.5 0 1.3 2.6 2.9 5.8 2.9s5.8-1.6 5.8-2.9c0-.2 0-.4-.1-.5 0 0-2.5 1.1-5.6 1.1-3.3 0-5.7-1.1-5.7-1.1" fill="#574137"/><circle cx="41.5" cy="46" r="3.8" fill="#664e27"/><circle cx="41.5" cy="46" r="1.2" fill="#231f20"/><circle cx="22.5" cy="46" r="3.8" fill="#664e27"/><circle cx="22.6" cy="46" r="1.2" fill="#231f20"/><path d="m57.3 36.8c2.6-.2 4.7-2.1 4.7-2.1-1.4-.5-2.7-2.6-3.9-3.1 1.3-.2 2.4-2.1 3.7-2.9-.7-.2-3.2-1.9-4-2.1 1.3-.6 2.6-1.6 3.8-2.8-1.1-.1-2.8-2.2-3.4-2.2 2.2-1 3.2-2.9 3.2-2.9-1 .1-2.3-1.7-3.5-1.8 2.4-1.5 2.2-4.3 2.2-4.3-1.4.9-3.5.2-4.1.4 1.2-1.9.7-4.4.7-4.4-1 1.3-2.4.8-3.1 1.2.3-.9-.6-2.7-.3-3.8-1 1-2.9.9-3.6 2.1.2-1.2-.7-2.9-.8-4.3-.8.9-2.6 2.2-2.9 2.9-.1-1-1.4-2.4-1.8-3.5-.3.7-2 2.6-2.3 3.1-.2-1.7-.5-1.9-1.2-3.1-.2.8-1.9 1.7-2.4 3.1-.4-2-1.4-3.1-1.9-3.9-.3 1-2 2.4-2.2 3.1-.4-1.4-2.2-3.5-2.2-3.5s-1.8 2.1-2.2 3.5c-.2-.6-1.9-2.1-2.2-3.1-.4.8-1.5 1.9-1.9 3.9-.4-1.4-2.1-2.2-2.4-3.1-.7 1.2-1 1.4-1.2 3.1-.3-.5-2-2.3-2.3-3.1-.4 1-1.6 2.4-1.8 3.5-.3-.7-2.1-2-2.8-2.8-.2 1.4-1.1 3.1-.8 4.3-.7-1.3-2.5-1.2-3.5-2.2.3 1.1-.6 2.8-.3 3.8-.8-.4-2.2.1-3.2-1.2 0 0-.5 2.4.7 4.4-.6-.2-2.7.4-4.1-.4 0 0-.2 2.8 2.2 4.3-1.2.1-2.6 1.8-3.6 1.8 0 0 1 1.9 3.2 2.9-.5 0-2.3 2.2-3.4 2.2 1.2 1.2 2.4 2.2 3.8 2.8-.8.2-3.3 1.9-4 2.1 1.3.8 2.4 2.7 3.7 2.9-1.2.5-2.5 2.6-3.9 3.1 0 0 2.1 1.9 4.7 2.1-1.1.4-.5 2.5-3.2 4.5 3.3-.6 3.7.5 6.7-1 0 0 .5 2.3-.9 3.4 0 0 4.5 1.8 7.4-4-.2 1.2 1.9 1.8 2.5 4.1 2.7-2.6 3.1-5.1 3.1-5.1.4 2.9 4.1 4 4 5.2 1.2-.9 3-2.2 3.3-4.1 1.8 2 1.2 5 1.2 5s3.8-1.3 4.9-5c.2 1.9 1 3.1 2.1 4-.1-1.2 3.6-2.3 4-5.2 0 0 .4 2.5 3.1 5.1.5-2.4 2.6-2.9 2.5-4.1 2.9 5.8 7.4 4 7.4 4-1.4-1.1-.9-3.4-.9-3.4 3 1.5 3.4.4 6.7 1-2.8-1.9-2.2-4-3.3-4.4" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f482.svg b/build/js/jsxc/lib/emojione/assets/svg/1f482.svg
index a940f77..a282862 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f482.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f482.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m52.39 43.891c-3.164-1.201-2.059-6.799-2.059-6.799h-36.654c0 0 1.107 5.598-2.059 6.799 0 0-2.614-.333-2.614 2.704 0 3.66 2.69 3.04 2.69 3.04 0 5.572 5.693 11.448 20.311 11.448 14.615 0 20.311-5.876 20.311-11.448 0 0 2.688.62 2.688-3.04 0-3.037-2.614-2.704-2.614-2.704"/><path fill="#454749" d="m50.46 38.633v10.901c0 5.05-5.16 10.37-18.398 10.37-13.24 0-18.4-5.322-18.4-10.37v-10.901h-1.91v11.919c0 5.571 5.695 11.446 20.311 11.446s20.311-5.875 20.311-11.446v-11.919h-1.914"/><g fill="#fff"><ellipse cx="41.452" cy="45.956" rx="5.289" ry="5.314"/><ellipse cx="22.553" cy="45.956" rx="5.29" ry="5.314"/></g><g fill="#664e27"><path d="m26.478 53.911c-.105.121-.162.279-.162.471-.002 1.305 2.574 2.903 5.75 2.903s5.75-1.588 5.75-2.894c0-.175-.049-.359-.137-.48 0 0-2.484 1.124-5.613 1.124-3.124 0-5.588-1.124-5.588-1.124"/><circle cx="41.452" cy="45.957" r="3.75"/></g><circle fill="#231f20" cx="41.452" cy="45.957" r="1.25"/><circle fill="#664e27" cx="22.552" cy="45.957" r="3.75"/><circle fill="#231f20" cx="22.552" cy="45.957" r="1.25"/><path fill="#454749" d="m61.37 35.504c-1.595-.615-3.065-1.197-4.517-1.831 1.664-.021 3.414-.364 5.151-1.307-1.523-.587-2.931-1.147-4.317-1.747 1.209-.161 2.447-.522 3.681-1.187-1.292-.501-2.495-.985-3.679-1.487 1.314-.219 2.656-.667 3.972-1.484-1.452-.461-2.8-.907-4.13-1.381 1.336-.551 2.65-1.365 3.839-2.591-1.769-.089-3.397-.184-5.03-.346 1.537-.726 3.034-1.791 4.294-3.409-1.854.124-5.586-.538-5.586-.538s3.236-2.393 4.404-4.464c-1.758.406-3.378.766-5.02 1.06 1.053-1.28 1.953-2.813 2.466-4.726-1.65.91-5.491 2.862-5.491 2.862s2.193-3.771 2.479-6.171c-1.502 1.168-5.156 3.819-5.156 3.819s1.146-4.03.857-6.428c-1.18 1.533-3.887 4.833-3.887 4.833s-.132-3.827-.979-5.822c-.707 1.833-2.974 7.165-3.414 8.169.07-.628-.271-6.096-1.398-8.193-.54 1.897-3.945 7.453-3.945 7.453s-1.434-6.161-1.648-8.131c-.94 1.191-1.574 2.465-2 3.751-.186-1.357-.341-2.738-.5-4.21-1.375 1.742-2.098 3.66-2.473 5.541-.541-1.64-1.021-3.295-1.533-5.094-1.127 2.099-1.44 7.982-1.318 8.806-.26-.766-1.852-5.761-2.391-7.657-1.127 2.098-1.471 7.564-1.398 8.193-.441-1-2.709-6.336-3.416-8.168-.846 1.994-1.068 3.968-.979 5.82-.154-.181-2.707-3.3-3.887-4.831-.287 2.398.139 4.541.854 6.418 0 .003.002.006.004.009-.278-.193-3.654-2.649-5.156-3.818.166 2.707 1.721 5.805 1.721 5.805s-3.083-1.586-4.733-2.496c.513 1.913 1.413 3.445 2.466 4.726-1.639-.294-3.261-.655-5.02-1.061 1.036 2.953 4.092 5.255 4.092 5.255s-3.42-.128-5.273-.253c1.261 1.62 2.757 2.685 4.296 3.41-1.632.161-3.261.257-5.03.346 1.188 1.226 2.503 2.04 3.839 2.591-1.33.474-2.678.92-4.13 1.381 1.315.817 2.657 1.266 3.972 1.484-1.184.502-2.387.986-3.679 1.487 1.233.664 2.472 1.025 3.681 1.187-1.387.6-2.795 1.159-4.317 1.746 1.739.944 3.489 1.286 5.152 1.307-1.451.636-2.922 1.218-4.518 1.832 1.241.674 2.489 1.04 3.706 1.203-1.252 1.1-2.539 2.146-3.944 3.269 3.151.427 7.07-.912 7.07-.912s-2.246 2.757-3.502 4.216c5.921-.122 27.03-11.588 27.03-11.588s17.656 11.06 25.04 11.129c-1.256-1.458-3.5-4.215-3.5-4.215s4.834 1.328 7.07.912c-1.405-1.123-2.69-2.17-3.944-3.27 1.215-.164 2.463-.53 3.704-1.204"/><path fill="#57595b" d="m59.46 33.827c-1.44-.808-2.767-1.574-4.068-2.378 1.248-.17 2.527-.554 3.797-1.261-1.754-.649-6.159-2.468-6.159-2.468s5.03-.693 6.925-2.027c-1.809-.454-3.465-.884-5.115-1.393-.132-.039 3.153-1.427 4.748-2.97-1.852-.154-4.631-1-4.631-1s3.52-1.88 4.951-3.754c-1.852.141-3.555.259-5.27.297-.153.005 2.208-2.666 3.064-4.707-1.754.651-3.37 1.24-5.02 1.757-.062.02 2.314-3.181 2.913-5.509-1.642.929-3.153 1.773-4.708 2.553-.227.116.4-2.8.426-4.689-1.475 2.137-4.748 4.229-4.717 4.089.434-1.974.549-4.16-.086-6.484-1.256 3.77-4.422 6.599-4.422 6.599s.166-4.198-.674-6.445c-.784 1.797-1.513 3.443-2.314 5.066-.038.079-.282-3.593-1.142-5.58-.623 1.653-1.211 3.18-1.843 4.681-.147-1.493-.528-3.03-1.3-4.552-.389 1.254-.762 2.435-1.148 3.589-.539-1.312-1.053-2.652-1.592-4.087-.951 2.195-1.148 4.376-.996 6.397.012.145-1.305-3.557-1.889-5.439-.771 1.521-1.152 3.058-1.299 4.551-.633-1.502-1.221-3.03-1.844-4.681-.861 1.987-1.104 5.658-1.143 5.58-.801-1.622-1.529-3.269-2.314-5.066-.752 3.74-2.336 4.649-2.336 4.649s-1.832-1.493-2.761-4.803c-.635 2.324-.557 6.383-.844 6.124-1.324-1.167-2.588-2.39-3.959-3.729.025 1.891.652 4.805.426 4.688-1.554-.777-3.066-1.623-4.708-2.551.599 2.326 2.974 5.527 2.913 5.508-1.646-.516-3.263-1.104-5.02-1.757.856 2.043 3.219 4.714 3.066 4.709-1.717-.04-3.42-.157-5.271-.298 1.432 1.873 5.739 4.191 5.577 4.212-1.704.234-3.405.39-5.257.545 1.595 1.542 4.88 2.93 4.748 2.969-1.65.51-3.307.938-5.115 1.393 2.278 2.258 5.72 2.548 5.72 2.548s-3.2 1.297-4.954 1.947c1.271.707 2.55 1.091 3.798 1.261-1.303.804-2.629 1.568-4.069 2.378 1.638.6 3.223.729 4.712.594-.029.018-.057.036-.085.054-1.48.934-2.982 1.793-4.627 2.716 1.259.46 2.485.64 3.662.639-.987.985-1.998 1.957-3.096 2.982 2.258.231 8.14-1.933 8.14-1.933-.926 1.545-1.904 3.035-2.982 4.649 2.246-.331 4.072-1.334 5.582-2.561 1.156-.951 2.918-2.862 2.918-2.862s-.502 3.614-.84 5.566c2.238-1.299 5.938-5.921 5.938-5.921s-.127 3.816-.262 5.883c1.955-1.517 3.18-3.337 3.988-5.185.384.603.77 1.203 1.143 1.811.959 1.521 1.838 3.081 2.781 4.791.895-2.543.586-6.904.586-6.904l6.694.292c0 0 .621 3.064.907 4.74 1.297-1.675 2.221-5.103 2.23-5.087.959 1.523 1.838 3.082 2.779 4.793.656-1.865.77-5.212.77-5.212s1.639 1.991 2.666 2.836c1.51 1.227 3.336 2.229 5.582 2.56-1.078-1.613-2.982-4.648-2.982-4.648s5.882 2.165 8.14 1.934c-1.097-1.025-2.108-1.997-3.095-2.982 1.176 0 2.402-.178 3.661-.64-1.645-.923-3.146-1.781-4.625-2.716-.028-.018-.056-.035-.083-.053 1.488.135 3.071.004 4.708-.596"/><path fill="#454749" d="m50.714 26.531c.146-.006.29.001.438-.01 1.895-.154 3.886-.702 5.767-2.046-1.446-.355-2.791-.703-4.12-1.078 1.414-.724 2.781-1.745 3.942-3.247-1.854.13-3.556.237-5.274.268-.332.009-.666.012-.998.017 1.515-1.188 2.912-2.76 3.84-4.939-1.758.64-3.377 1.221-5.02 1.727-.287.092-.579.177-.868.266.062-.063.128-.116.188-.18 1.344-1.435 2.521-3.229 3.131-5.558-1.645.92-3.162 1.755-4.721 2.525-.322.163-.648.32-.973.479.258-.378.506-.769.736-1.179.965-1.743 1.682-3.797 1.727-6.216-1.377 1.33-2.648 2.547-3.977 3.707-.562.501-1.132.992-1.701 1.487.095-.318.194-.634.271-.964.443-1.97.568-4.158-.053-6.485-.951 1.702-1.836 3.26-2.787 4.786-.061.099-.125.197-.186.296.011-1.459-.197-2.985-.771-4.544-.644 1.454-1.259 2.803-1.896 4.127-.008-1.625-.279-3.328-1.012-5.05-.703 1.836-1.357 3.516-2.082 5.178-.299.696-.607 1.388-.914 2.082-.008-.053-.016-.106-.021-.159-.234-1.814-.396-3.626-.563-5.603-1.389 1.671-2.155 3.527-2.58 5.362-.18-.407-.362-.814-.537-1.224-.725-1.66-1.38-3.341-2.083-5.175-.732 1.718-1 3.42-1.012 5.05-.637-1.325-1.252-2.674-1.896-4.128-.574 1.559-.781 3.085-.771 4.544-.062-.099-.124-.197-.185-.296-.951-1.526-1.836-3.084-2.787-4.785-.621 2.326-.496 4.515-.053 6.484.076.33.176.646.271.964-.57-.495-1.141-.986-1.703-1.487-1.328-1.161-2.6-2.377-3.977-3.707.045 2.419.762 4.472 1.727 6.216.229.41.478.8.736 1.178-.324-.159-.651-.316-.973-.479-1.559-.77-3.076-1.605-4.721-2.524.611 2.328 1.787 4.123 3.131 5.556.063.065.129.12.193.184-.291-.089-.584-.175-.873-.267-1.648-.507-3.268-1.088-5.03-1.728.927 2.179 2.324 3.75 3.839 4.938-.333-.005-.665-.008-.997-.017-1.719-.028-3.421-.137-5.274-.267 1.161 1.501 2.527 2.523 3.94 3.246-1.328.376-2.673.724-4.118 1.078 1.881 1.345 3.872 1.893 5.767 2.047.148.011.293.004.441.01-1.588.472-3.188.878-4.925 1.304 1.769 1.263 3.631 1.817 5.421 2.01-.236.173-.471.35-.709.521-1.414 1.038-2.863 2-4.442 3.043 1.91.55 3.716.494 5.368.136-.198.233-.395.471-.596.702-1.152 1.357-2.354 2.652-3.666 4.052 2.045.067 3.838-.47 5.406-1.269-.055.361-.106.725-.166 1.085-.277 1.815-.641 3.606-1.049 5.554 2.291-1.306 3.809-3.03 4.875-4.823.313-.533.572-1.074.809-1.62.176.453.354.905.523 1.361.654 1.702 1.223 3.431 1.832 5.317 1.061-1.936 2.382-5.826 2.863-8.363.23.392.426.789.535 1.2.543 1.956.992 3.919 1.469 6.05 1.551-2.104 2.199-4.387 2.4-6.585.027-.322.025-.639.033-.958.734 1.344 1.484 2.67 2.207 4.01 1.094 1.963 2.082 3.965 3.141 6.146.824-1.753 1.229-3.459 1.356-5.093.265 1.343.661 2.727 1.101 4.097 1.29-2.179 2.488-4.173 3.787-6.12.563-.868 1.143-1.725 1.721-2.587.448.955.971 1.888 1.611 2.771 1.176 1.593 2.709 3.052 4.805 3.969-.664-1.849-1.264-3.554-1.795-5.295-.215-.678-.418-1.36-.625-2.042.559.435 1.139.847 1.77 1.205 1.684.943 3.641 1.604 5.904 1.53-1.313-1.399-2.514-2.694-3.666-4.052-.201-.231-.396-.469-.596-.702 1.652.358 3.458.414 5.368-.136-1.579-1.039-3.03-2-4.442-3.043-.238-.171-.473-.348-.709-.521 1.789-.191 3.652-.746 5.421-2.01-1.733-.427-3.332-.832-4.918-1.305"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 43.9c-3.2-1.2-2.1-6.8-2.1-6.8h-36.6c0 0 1.1 5.6-2.1 6.8 0 0-2.6-.3-2.6 2.7 0 3.7 2.7 3 2.7 3 0 5.6 5.7 11.4 20.3 11.4 14.6 0 20.3-5.9 20.3-11.4 0 0 2.7.6 2.7-3 0-3-2.6-2.7-2.6-2.7" fill="#ffdd67"/><path d="m50.5 38.6v10.9c0 5-5.2 10.4-18.4 10.4-13.2 0-18.4-5.3-18.4-10.4v-10.9h-1.9v11.9c0 5.6 5.7 11.4 20.3 11.4s20.3-5.9 20.3-11.4v-11.9h-1.9" fill="#454749"/><g fill="#fff"><ellipse cx="41.5" cy="46" rx="5.3" ry="5.3"/><ellipse cx="22.6" cy="46" rx="5.3" ry="5.3"/></g><g fill="#664e27"><path d="m26.5 53.9c-.1.1-.2.3-.2.5 0 1.3 2.6 2.9 5.8 2.9s5.8-1.6 5.8-2.9c0-.2 0-.4-.1-.5 0 0-2.5 1.1-5.6 1.1-3.3 0-5.7-1.1-5.7-1.1"/><circle cx="41.5" cy="46" r="3.8"/></g><circle cx="41.5" cy="46" r="1.2" fill="#231f20"/><circle cx="22.5" cy="46" r="3.8" fill="#664e27"/><circle cx="22.5" cy="46" r="1.2" fill="#231f20"/><path d="m57.3 36.8c2.6-.2 4.7-2.1 4.7-2.1-1.4-.5-2.7-2.6-3.9-3.1 1.3-.2 2.4-2.1 3.7-2.9-.7-.2-3.2-1.9-4-2.1 1.3-.6 2.6-1.6 3.8-2.8-1.1-.1-2.8-2.2-3.4-2.2 2.2-1 3.2-2.9 3.2-2.9-1 .1-2.3-1.7-3.5-1.8 2.4-1.5 2.2-4.3 2.2-4.3-1.4.9-3.5.2-4.1.4 1.2-1.9.7-4.4.7-4.4-1 1.3-2.4.8-3.1 1.2.3-.9-.6-2.7-.3-3.8-1 1-2.9.9-3.6 2.1.2-1.2-.7-2.9-.8-4.3-.8.9-2.6 2.2-2.9 2.9-.1-1-1.4-2.4-1.8-3.5-.3.7-2 2.6-2.3 3.1-.2-1.7-.5-1.9-1.2-3.1-.2.8-1.9 1.7-2.4 3.1-.4-2-1.4-3.1-1.9-3.9-.3 1-2 2.4-2.2 3.1-.4-1.4-2.2-3.5-2.2-3.5s-1.8 2.1-2.2 3.5c-.2-.6-1.9-2.1-2.2-3.1-.4.8-1.5 1.9-1.9 3.9-.4-1.4-2.1-2.2-2.4-3.1-.7 1.2-1 1.4-1.2 3.1-.3-.5-2-2.3-2.3-3.1-.4 1-1.6 2.4-1.8 3.5-.3-.7-2.1-2-2.8-2.8-.2 1.4-1.1 3.1-.8 4.3-.7-1.3-2.5-1.2-3.5-2.2.3 1.1-.6 2.8-.3 3.8-.8-.4-2.2.1-3.2-1.2 0 0-.5 2.4.7 4.4-.6-.2-2.7.4-4.1-.4 0 0-.2 2.8 2.2 4.3-1.2.1-2.6 1.8-3.6 1.8 0 0 1 1.9 3.2 2.9-.5 0-2.3 2.2-3.4 2.2 1.2 1.2 2.4 2.2 3.8 2.8-.8.2-3.3 1.9-4 2.1 1.3.8 2.4 2.7 3.7 2.9-1.2.5-2.5 2.6-3.9 3.1 0 0 2.1 1.9 4.7 2.1-1.1.4-.5 2.5-3.2 4.5 3.3-.6 3.7.5 6.7-1 0 0 .5 2.3-.9 3.4 0 0 4.5 1.8 7.4-4-.2 1.2 1.9 1.8 2.5 4.1 2.7-2.6 3.1-5.1 3.1-5.1.4 2.9 4.1 4 4 5.2 1.2-.9 3-2.2 3.3-4.1 1.8 2 1.2 5 1.2 5s3.8-1.3 4.9-5c.2 1.9 1 3.1 2.1 4-.1-1.2 3.6-2.3 4-5.2 0 0 .4 2.5 3.1 5.1.5-2.4 2.6-2.9 2.5-4.1 2.9 5.8 7.4 4 7.4 4-1.4-1.1-.8-3.4-.8-3.4 3 1.5 3.4.4 6.7 1-2.9-1.9-2.3-4-3.4-4.4" fill="#454749"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fb.svg
index 502fe79..23026b5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b70b0b" d="m56.56 33.76c-1.51 12.309-26.19 10.92-27.428 4.697-9.231 4.658-6.688 12.02-6.688 12.02 8.482 19 46.44-.147 34.12-16.715"/><path fill="#ff4848" d="m44.31 52.52c3.125 1.924 1.35 4.326-3.264 2.307-3.885-1.705-.582-5.132.787-3.951 1.169 1.01 1.843 1.255 2.477 1.644"/><path fill="#ffe1bd" d="m41.581 52.25c-3.5-2.942-2.998-4.477-6.461-5.408-3.225-5.079-5.895-6.851-5.895-6.851-1.711 2.375-1.029 4.602-1.029 4.602s3.375 4.421 5.877 5.658c3.078 1.519 6.27 3.664 6.27 3.664 1.439 1.228 2.814-.34 1.238-1.665"/><path fill="#ff4848" d="m28.23 59.57c.131 3.944-5.819 2.273-3.662.628.342-.263.318-.882.146-1.37-1.315-3.734 3.217-4.01 3.271-2.283.048 1.471.224 2.324.245 3.02"/><path fill="#ffe1bd" d="m26.944 57.34c-.238-4.355 1.246-5.125-.461-8.02.531-2.574-.703-6.688-.703-6.688-2.53.295-3.959.721-3.959.721s.59 5.227 1.408 7.721c1 3.068 1.62 6.654 1.62 6.654.088 1.806 2.205 1.574 2.095-.385"/><path fill="#594640" d="m37.11 10.597c2.738 7.591 11.938 10.05 16.961 3.073 2.611 9.951-11.139 14.548-18.965 14.76-24.385.656-21.749-13.02-21.749-14.726.001-15.264 19.521-14.843 23.753-3.107"/><g fill="#ffe1bd"><path d="m41.1 32.715c-1.613-.921-2.152-1.211-2.656-.763l-7.195-4.573c-1.65-1.068-3.709-1.465-3.709-1.465-1.387 1.367.461 2.605.461 2.605l9.184 5.357-.338.578c-.264.447-.107 1.021.346 1.281l.615.35c.324.186.717.161 1.01-.035.854.41 2.098.729 2.979-.773.143-.25.949-1.623-.695-2.562"/><path d="m14.657 26.762l-4.439-4.379.015-.016c.359-.377.344-.97-.039-1.325l-.516-.481c-.273-.255-.662-.318-.99-.195-.734-.592-1.871-1.185-3.076.077-.203.21-1.307 1.364.074 2.651 1.334 1.244 1.796 1.657 2.378 1.362l5.679 5.593 6.43-.62 1.549-3.515-7.07.848"/></g><path fill="#ff4848" d="m24.909 47.689c10.02-3.332 11.607.306 23.988-.706 12.379-1.01 7.666-13.224 7.666-13.224-2.027 10.528-25.988 6.697-27.23.475 2.158-2.173 2-4.185-1.795-8.32 0 0-1.301 1.195-2.908 1.195-1.608 0-2.909-1.195-2.909-1.195-6.486 6.829-1.523 8.951-1.523 8.951 1.688 3.25-.813 6.977 2.25 15.609 0 .001 1.039-2.311 2.461-2.785"/><path fill="#ffe1bd" d="m32.741 15.352c.174-4.393-1.885-4.755-1.885-4.755-9.606 0-14.479 4.755-14.479 4.755s-2.373-1.576-2.373 1.53c0 1.187.453 2.157 1.988 2.262.523 3.887 2.731 5.276 6.05 5.665v1.105h-.318l-2.107 3.284c0 .678 2.119-2.03 5.03 1.563 2.896-3.578 5-.885 5-1.563l-2.107-3.284h-.461v-1.104c3.318-.389 5.525-1.778 6.05-5.666 1.527-.104 1.98-1.075 1.98-2.262-.001-3.106-2.37-1.53-2.37-1.53"/><g fill="#664e27"><path d="m28.491 20.09c0 1.231-1.721 2.264-3.846 2.264-2.127 0-3.85-1.032-3.85-2.264 0 0 2.049.11 3.85.11 1.803.001 3.846-.11 3.846-.11"/><path d="m22.16 15.698c0 .67-.598 1.215-1.324 1.215-.734 0-1.326-.545-1.326-1.215 0-.676.592-1.217 1.326-1.217.726 0 1.324.541 1.324 1.217"/><path d="m29.79 15.698c0 .67-.588 1.215-1.32 1.215-.73 0-1.324-.545-1.324-1.215 0-.676.594-1.217 1.324-1.217.732 0 1.32.541 1.32 1.217"/></g><path fill="#e6b796" d="m9.401 22.691c-.256-.237-1.01-.929-1.088-1.072-.15-.265-.117-.593.053-.841.021-.027.045-.055.068-.08.125-.133-.076-.33-.199-.199-.246.264-.344.609-.279.96.043.24.184.442.359.606.283.261.871.81.885.824.134.124.336-.074.201-.198"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.6 33.8c-1.5 12.3-26.2 10.9-27.4 4.7-9.2 4.7-6.7 12-6.7 12 8.4 19 46.4-.2 34.1-16.7" fill="#b70b0b"/><path d="m44.3 52.5c3.1 1.9 1.3 4.3-3.3 2.3-3.9-1.7-.6-5.1.8-4 1.2 1.1 1.9 1.3 2.5 1.7" fill="#ff4848"/><path d="m41.6 52.3c-3.5-2.9-3-4.5-6.5-5.4-3.2-5.1-5.9-6.9-5.9-6.9-1.7 2.4-1 4.6-1 4.6s3.4 4.4 5.9 5.7c3.1 1.5 6.3 3.7 6.3 3.7 1.4 1.1 2.8-.4 1.2-1.7" fill="#ffe1bd"/><path d="m28.2 59.6c.1 3.9-5.8 2.3-3.7.6.3-.3.3-.9.1-1.4-1.3-3.7 3.2-4 3.3-2.3.1 1.5.3 2.4.3 3.1" fill="#ff4848"/><path d="m26.9 57.3c-.2-4.4 1.2-5.1-.5-8 .5-2.6-.7-6.7-.7-6.7-2.5.3-4 .7-4 .7s.6 5.2 1.4 7.7c1 3.1 1.6 6.7 1.6 6.7.2 1.8 2.4 1.6 2.2-.4" fill="#ffe1bd"/><path d="m37.1 10.6c2.7 7.6 11.9 10 17 3.1 2.6 10-11.1 14.5-19 14.8-24.4.7-21.8-13-21.8-14.7.1-15.4 19.6-14.9 23.8-3.2" fill="#594640"/><g fill="#ffe1bd"><path d="m41.1 32.7c-1.6-.9-2.2-1.2-2.7-.8l-7.2-4.6c-1.6-1.1-3.7-1.5-3.7-1.5-1.4 1.4.5 2.6.5 2.6l9.2 5.4-.3.6c-.3.4-.1 1 .3 1.3l.6.3c.3.2.7.2 1 0 .9.4 2.1.7 3-.8.1-.2.9-1.5-.7-2.5"/><path d="m14.7 26.8l-4.4-4.4c.4-.4.3-1 0-1.3l-.5-.5c-.3-.3-.7-.3-1-.2-.7-.6-1.9-1.2-3.1.1-.2.2-1.3 1.4.1 2.7 1.3 1.2 1.8 1.7 2.4 1.4l5.7 5.6 6.4-.6 1.5-3.5-7.1.7"/></g><path d="m24.9 47.7c10-3.3 11.6.3 24-.7 12.4-1 7.7-13.2 7.7-13.2-2 10.5-26 6.7-27.2.5 2.2-2.2 2-4.2-1.8-8.3 0 0-1.3 1.2-2.9 1.2-1.6 0-2.9-1.2-2.9-1.2-6.5 6.8-1.5 9-1.5 9 1.7 3.2-.8 7 2.2 15.6-.1-.1 1-2.4 2.4-2.9" fill="#ff4848"/><path d="m32.7 15.4c.2-4.4-1.9-4.8-1.9-4.8-9.6 0-14.5 4.8-14.5 4.8s-2.3-1.6-2.3 1.5c0 1.2.5 2.2 2 2.3.5 3.9 2.7 5.3 6 5.7v1.1h-.3l-2.1 3.3c0 .7 2.1-2 5 1.6 2.9-3.6 5-.9 5-1.6l-2.1-3.3h-.5v-1.1c3.3-.4 5.5-1.8 6.1-5.7 1.5-.1 2-1.1 2-2.3 0-3.1-2.4-1.5-2.4-1.5" fill="#ffe1bd"/><path d="m9.4 22.7c-.3-.2-1-.9-1.1-1.1-.1-.3-.1-.6.1-.8 0 0 0-.1.1-.1.1-.1-.1-.3-.2-.2-.2.3-.3.6-.3 1 0 .2.2.4.4.6.3.3.9.8.9.8 0 .1.2-.1.1-.2" fill="#e6b796"/><g fill="#664e27"><circle cx="20.9" cy="15.8" r="1.5"/><circle cx="28.4" cy="15.8" r="1.5"/><path d="m27.1 20.5c-1.6 1.2-3.3 1.2-4.9 0-.2-.1-.4.1-.2.3.5.9 1.4 1.7 2.7 1.7s2.2-.8 2.7-1.7c.1-.2-.1-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fc.svg
index 6b8680f..df65e02 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b70b0b" d="m56.56 33.76c-1.51 12.309-26.19 10.92-27.429 4.697-9.23 4.658-6.688 12.02-6.688 12.02 8.481 19 46.44-.147 34.12-16.715"/><path fill="#ff4848" d="m44.32 52.52c3.125 1.924 1.35 4.326-3.264 2.307-3.885-1.705-.582-5.132.787-3.951 1.169 1.01 1.843 1.255 2.477 1.644"/><path fill="#fed0ac" d="m41.582 52.25c-3.5-2.942-2.998-4.477-6.461-5.408-3.225-5.079-5.896-6.851-5.896-6.851-1.711 2.375-1.029 4.602-1.029 4.602s3.376 4.421 5.878 5.658c3.078 1.519 6.27 3.664 6.27 3.664 1.439 1.228 2.814-.34 1.238-1.665"/><path fill="#ff4848" d="m28.23 59.57c.131 3.944-5.818 2.273-3.662.628.342-.263.318-.882.146-1.37-1.314-3.734 3.217-4.01 3.271-2.283.048 1.471.223 2.324.245 3.02"/><path fill="#fed0ac" d="m26.944 57.34c-.238-4.355 1.246-5.125-.461-8.02.531-2.574-.703-6.688-.703-6.688-2.529.295-3.959.721-3.959.721s.59 5.227 1.408 7.721c1 3.068 1.619 6.654 1.619 6.654.088 1.806 2.205 1.574 2.096-.385"/><path fill="#dbb471" d="m37.12 10.597c2.738 7.591 11.938 10.05 16.961 3.073 2.611 9.951-11.139 14.548-18.965 14.76-24.386.656-21.75-13.02-21.75-14.726.001-15.265 19.521-14.844 23.754-3.107"/><g fill="#fed0ac"><path d="m41.1 32.715c-1.613-.921-2.152-1.211-2.656-.763l-7.196-4.573c-1.651-1.068-3.71-1.465-3.71-1.465-1.387 1.367.461 2.605.461 2.605l9.185 5.357-.338.578c-.264.447-.107 1.021.346 1.281l.615.35c.324.186.717.161 1.01-.035.854.41 2.098.729 2.979-.773.144-.25.95-1.623-.694-2.562"/><path d="m14.657 26.762l-4.438-4.379.015-.016c.359-.377.344-.97-.039-1.325l-.516-.481c-.273-.255-.662-.318-.99-.195-.734-.592-1.871-1.185-3.076.077-.203.21-1.307 1.364.074 2.651 1.334 1.244 1.797 1.657 2.379 1.362l5.678 5.593 6.43-.62 1.549-3.515-7.07.848"/></g><path fill="#ff4848" d="m24.909 47.689c10.02-3.332 11.609.306 23.99-.706 12.379-1.01 7.666-13.224 7.666-13.224-2.027 10.528-25.99 6.697-27.23.475 2.159-2.174 2-4.186-1.795-8.32 0 0-1.301 1.195-2.908 1.195s-2.908-1.195-2.908-1.195c-6.486 6.829-1.523 8.951-1.523 8.951 1.688 3.25-.813 6.977 2.25 15.609-.001.001 1.038-2.311 2.46-2.785"/><path fill="#fed0ac" d="m32.742 15.352c.174-4.393-1.886-4.755-1.886-4.755-9.605 0-14.479 4.755-14.479 4.755s-2.373-1.576-2.373 1.53c0 1.187.453 2.157 1.988 2.262.523 3.887 2.731 5.276 6.05 5.665v1.105h-.318l-2.107 3.284c0 .678 2.119-2.03 5.03 1.563 2.896-3.578 5-.885 5-1.563l-2.107-3.284h-.461v-1.104c3.319-.389 5.526-1.778 6.05-5.666 1.527-.104 1.98-1.075 1.98-2.262 0-3.107-2.369-1.53-2.369-1.53"/><g fill="#664e27"><path d="m28.491 20.09c0 1.231-1.721 2.264-3.846 2.264-2.127 0-3.85-1.032-3.85-2.264 0 0 2.049.11 3.85.11 1.803 0 3.846-.11 3.846-.11"/><path d="m22.16 15.697c0 .67-.598 1.215-1.324 1.215-.734 0-1.326-.545-1.326-1.215 0-.676.592-1.217 1.326-1.217.726 0 1.324.541 1.324 1.217"/><path d="m29.79 15.697c0 .67-.588 1.215-1.32 1.215-.73 0-1.324-.545-1.324-1.215 0-.676.594-1.217 1.324-1.217.732 0 1.32.541 1.32 1.217"/></g><path fill="#eba352" d="m9.401 22.69c-.256-.237-1.01-.929-1.088-1.072-.15-.265-.117-.593.053-.841.021-.027.045-.055.068-.08.125-.133-.076-.33-.199-.199-.246.264-.344.609-.279.96.043.24.184.442.359.606.283.261.871.81.885.824.134.125.336-.074.201-.198"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.6 33.8c-1.5 12.3-26.2 10.9-27.4 4.7-9.2 4.7-6.7 12-6.7 12 8.4 19 46.4-.2 34.1-16.7" fill="#b70b0b"/><path d="m44.3 52.5c3.1 1.9 1.3 4.3-3.3 2.3-3.9-1.7-.6-5.1.8-4 1.2 1.1 1.9 1.3 2.5 1.7" fill="#ff4848"/><path d="m41.6 52.3c-3.5-2.9-3-4.5-6.5-5.4-3.2-5.1-5.9-6.9-5.9-6.9-1.7 2.4-1 4.6-1 4.6s3.4 4.4 5.9 5.7c3.1 1.5 6.3 3.7 6.3 3.7 1.4 1.1 2.8-.4 1.2-1.7" fill="#fed0ac"/><path d="m28.2 59.6c.1 3.9-5.8 2.3-3.7.6.3-.3.3-.9.1-1.4-1.3-3.7 3.2-4 3.3-2.3.1 1.5.3 2.4.3 3.1" fill="#ff4848"/><path d="m26.9 57.3c-.2-4.4 1.2-5.1-.5-8 .5-2.6-.7-6.7-.7-6.7-2.5.3-4 .7-4 .7s.6 5.2 1.4 7.7c1 3.1 1.6 6.7 1.6 6.7.2 1.8 2.4 1.6 2.2-.4" fill="#fed0ac"/><path d="m37.1 10.6c2.7 7.6 11.9 10 17 3.1 2.6 10-11.1 14.5-19 14.8-24.4.7-21.7-13-21.7-14.7 0-15.4 19.5-14.9 23.7-3.2" fill="#dbb471"/><g fill="#fed0ac"><path d="m41.1 32.7c-1.6-.9-2.2-1.2-2.7-.8l-7.2-4.6c-1.6-1.1-3.7-1.5-3.7-1.5-1.4 1.4.5 2.6.5 2.6l9.2 5.4-.3.6c-.3.4-.1 1 .3 1.3l.6.3c.3.2.7.2 1 0 .9.4 2.1.7 3-.8.1-.2.9-1.5-.7-2.5"/><path d="m14.7 26.8l-4.4-4.4c.4-.4.3-1 0-1.3l-.5-.5c-.3-.3-.7-.3-1-.2-.7-.6-1.9-1.2-3.1.1-.2.2-1.3 1.4.1 2.7 1.3 1.2 1.8 1.7 2.4 1.4l5.7 5.6 6.4-.6 1.5-3.5-7.1.7"/></g><path d="m24.9 47.7c10-3.3 11.6.3 24-.7 12.4-1 7.7-13.2 7.7-13.2-2 10.5-26 6.7-27.2.5 2.2-2.2 2-4.2-1.8-8.3 0 0-1.3 1.2-2.9 1.2s-2.9-1.2-2.9-1.2c-6.5 6.8-1.5 9-1.5 9 1.7 3.2-.8 7 2.2 15.6-.1-.1 1-2.4 2.4-2.9" fill="#ff4848"/><path d="m32.7 15.4c.2-4.4-1.9-4.8-1.9-4.8-9.6 0-14.5 4.8-14.5 4.8s-2.3-1.6-2.3 1.5c0 1.2.5 2.2 2 2.3.5 3.9 2.7 5.3 6 5.7v1.1h-.3l-2.1 3.3c0 .7 2.1-2 5 1.6 2.9-3.6 5-.9 5-1.6l-2.1-3.3h-.5v-1.1c3.3-.4 5.5-1.8 6.1-5.7 1.5-.1 2-1.1 2-2.3 0-3.1-2.4-1.5-2.4-1.5" fill="#fed0ac"/><path d="m9.4 22.7c-.3-.2-1-.9-1.1-1.1-.1-.3-.1-.6.1-.8 0 0 0-.1.1-.1.1-.1-.1-.3-.2-.2-.2.3-.3.6-.3 1 0 .2.2.4.4.6.3.3.9.8.9.8 0 .1.2-.1.1-.2" fill="#e0a372"/><g fill="#664e27"><circle cx="20.9" cy="15.8" r="1.5"/><circle cx="28.4" cy="15.8" r="1.5"/><path d="m27.1 20.5c-1.6 1.2-3.3 1.2-4.9 0-.2-.1-.4.1-.2.3.5.9 1.4 1.7 2.7 1.7s2.2-.8 2.7-1.7c.1-.2-.1-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fd.svg
index e105955..e4c1d7b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b70b0b" d="m56.56 33.76c-1.51 12.309-26.19 10.92-27.429 4.697-9.23 4.658-6.688 12.02-6.688 12.02 8.482 19 46.44-.147 34.12-16.715"/><path fill="#ff4848" d="m44.32 52.52c3.125 1.924 1.35 4.326-3.264 2.307-3.885-1.705-.582-5.132.787-3.951 1.169 1.01 1.843 1.255 2.477 1.644"/><path fill="#d6a57c" d="m41.582 52.25c-3.5-2.942-2.998-4.477-6.461-5.408-3.225-5.079-5.896-6.851-5.896-6.851-1.711 2.375-1.029 4.602-1.029 4.602s3.376 4.421 5.878 5.658c3.078 1.519 6.27 3.664 6.27 3.664 1.439 1.228 2.814-.34 1.238-1.665"/><path fill="#ff4848" d="m28.23 59.57c.131 3.944-5.818 2.273-3.662.628.342-.263.318-.882.146-1.37-1.314-3.734 3.217-4.01 3.271-2.283.048 1.471.224 2.324.245 3.02"/><path fill="#d6a57c" d="m26.944 57.34c-.238-4.355 1.246-5.125-.461-8.02.531-2.574-.703-6.688-.703-6.688-2.529.295-3.959.721-3.959.721s.59 5.227 1.408 7.721c1 3.068 1.619 6.654 1.619 6.654.089 1.806 2.206 1.574 2.096-.385"/><path fill="#594640" d="m37.12 10.597c2.738 7.591 11.938 10.05 16.961 3.073 2.611 9.951-11.139 14.548-18.965 14.76-24.386.656-21.749-13.02-21.749-14.726 0-15.265 19.521-14.844 23.753-3.107"/><g fill="#d6a57c"><path d="m41.1 32.715c-1.613-.921-2.152-1.211-2.656-.763l-7.195-4.573c-1.651-1.068-3.71-1.465-3.71-1.465-1.387 1.367.461 2.605.461 2.605l9.185 5.357-.338.578c-.264.447-.107 1.021.346 1.281l.615.35c.324.186.717.161 1.01-.035.854.41 2.098.729 2.979-.773.143-.25.949-1.623-.695-2.562"/><path d="m14.657 26.762l-4.438-4.379.015-.016c.359-.377.344-.97-.039-1.325l-.516-.481c-.273-.255-.662-.318-.99-.195-.734-.592-1.871-1.185-3.076.077-.203.21-1.307 1.364.074 2.651 1.334 1.244 1.797 1.657 2.379 1.362l5.678 5.593 6.43-.62 1.549-3.515-7.07.848"/></g><path fill="#ff4848" d="m24.909 47.689c10.02-3.332 11.608.306 23.989-.706 12.379-1.01 7.666-13.224 7.666-13.224-2.027 10.528-25.989 6.697-27.23.475 2.159-2.174 2-4.186-1.795-8.32 0 0-1.301 1.195-2.908 1.195s-2.908-1.195-2.908-1.195c-6.486 6.829-1.523 8.951-1.523 8.951 1.688 3.25-.813 6.977 2.25 15.609-.001.001 1.038-2.311 2.46-2.785"/><path fill="#d6a57c" d="m32.742 15.352c.174-4.393-1.886-4.755-1.886-4.755-9.605 0-14.479 4.755-14.479 4.755s-2.373-1.576-2.373 1.53c0 1.187.453 2.157 1.988 2.262.523 3.887 2.731 5.276 6.05 5.665v1.105h-.318l-2.107 3.284c0 .678 2.119-2.03 5.03 1.563 2.896-3.578 5-.885 5-1.563l-2.107-3.284h-.461v-1.104c3.319-.389 5.526-1.778 6.05-5.666 1.527-.104 1.98-1.075 1.98-2.262 0-3.107-2.369-1.53-2.369-1.53"/><g fill="#664e27"><path d="m28.491 20.09c0 1.231-1.721 2.264-3.846 2.264-2.127 0-3.85-1.032-3.85-2.264 0 0 2.049.11 3.85.11 1.803 0 3.846-.11 3.846-.11"/><path d="m22.16 15.697c0 .67-.598 1.215-1.324 1.215-.734 0-1.326-.545-1.326-1.215 0-.676.592-1.217 1.326-1.217.726 0 1.324.541 1.324 1.217"/><path d="m29.79 15.697c0 .67-.588 1.215-1.32 1.215-.73 0-1.324-.545-1.324-1.215 0-.676.594-1.217 1.324-1.217.732 0 1.32.541 1.32 1.217"/></g><path fill="#b58360" d="m9.401 22.69c-.256-.237-1.01-.929-1.088-1.072-.15-.265-.117-.593.053-.841.021-.027.045-.055.068-.08.125-.133-.076-.33-.199-.199-.246.264-.344.609-.279.96.043.24.184.442.359.606.283.261.871.81.885.824.135.125.336-.074.201-.198"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.6 33.8c-1.5 12.3-26.2 10.9-27.4 4.7-9.2 4.7-6.7 12-6.7 12 8.4 19 46.4-.2 34.1-16.7" fill="#b70b0b"/><path d="m44.3 52.5c3.1 1.9 1.3 4.3-3.3 2.3-3.9-1.7-.6-5.1.8-4 1.2 1.1 1.9 1.3 2.5 1.7" fill="#ff4848"/><path d="m41.6 52.3c-3.5-2.9-3-4.5-6.5-5.4-3.2-5.1-5.9-6.9-5.9-6.9-1.7 2.4-1 4.6-1 4.6s3.4 4.4 5.9 5.7c3.1 1.5 6.3 3.7 6.3 3.7 1.4 1.1 2.8-.4 1.2-1.7" fill="#d6a57c"/><path d="m28.2 59.6c.1 3.9-5.8 2.3-3.7.6.3-.3.3-.9.1-1.4-1.3-3.7 3.2-4 3.3-2.3.1 1.5.3 2.4.3 3.1" fill="#ff4848"/><path d="m26.9 57.3c-.2-4.4 1.2-5.1-.5-8 .5-2.6-.7-6.7-.7-6.7-2.5.3-4 .7-4 .7s.6 5.2 1.4 7.7c1 3.1 1.6 6.7 1.6 6.7.2 1.8 2.4 1.6 2.2-.4" fill="#d6a57c"/><path d="m37.1 10.6c2.7 7.6 11.9 10 17 3.1 2.6 10-11.1 14.5-19 14.8-24.4.7-21.7-13-21.7-14.7 0-15.4 19.5-14.9 23.7-3.2" fill="#594640"/><g fill="#d6a57c"><path d="m41.1 32.7c-1.6-.9-2.2-1.2-2.7-.8l-7.2-4.6c-1.6-1.1-3.7-1.5-3.7-1.5-1.4 1.4.5 2.6.5 2.6l9.2 5.4-.3.6c-.3.4-.1 1 .3 1.3l.6.3c.3.2.7.2 1 0 .9.4 2.1.7 3-.8.1-.2.9-1.5-.7-2.5"/><path d="m14.7 26.8l-4.4-4.4c.4-.4.3-1 0-1.3l-.5-.5c-.3-.3-.7-.3-1-.2-.7-.6-1.9-1.2-3.1.1-.2.2-1.3 1.4.1 2.7 1.3 1.2 1.8 1.7 2.4 1.4l5.7 5.6 6.4-.6 1.5-3.5-7.1.7"/></g><path d="m24.9 47.7c10-3.3 11.6.3 24-.7 12.4-1 7.7-13.2 7.7-13.2-2 10.5-26 6.7-27.2.5 2.2-2.2 2-4.2-1.8-8.3 0 0-1.3 1.2-2.9 1.2s-2.9-1.2-2.9-1.2c-6.5 6.8-1.5 9-1.5 9 1.7 3.2-.8 7 2.2 15.6-.1-.1 1-2.4 2.4-2.9" fill="#ff4848"/><path d="m32.7 15.4c.2-4.4-1.9-4.8-1.9-4.8-9.6 0-14.5 4.8-14.5 4.8s-2.3-1.6-2.3 1.5c0 1.2.5 2.2 2 2.3.5 3.9 2.7 5.3 6 5.7v1.1h-.3l-2.1 3.3c0 .7 2.1-2 5 1.6 2.9-3.6 5-.9 5-1.6l-2.1-3.3h-.5v-1.1c3.3-.4 5.5-1.8 6.1-5.7 1.5-.1 2-1.1 2-2.3 0-3.1-2.4-1.5-2.4-1.5" fill="#d6a57c"/><path d="m9.4 22.7c-.3-.2-1-.9-1.1-1.1-.1-.3-.1-.6.1-.8 0 0 0-.1.1-.1.1-.1-.1-.3-.2-.2-.2.3-.3.6-.3 1 0 .2.2.4.4.6.3.3.9.8.9.8 0 .1.2-.1.1-.2" fill="#b58360"/><g fill="#664e27"><circle cx="20.9" cy="15.8" r="1.5"/><circle cx="28.4" cy="15.8" r="1.5"/><path d="m27.1 20.5c-1.6 1.2-3.3 1.2-4.9 0-.2-.1-.4.1-.2.3.5.9 1.4 1.7 2.7 1.7 1.2 0 2.2-.8 2.7-1.7.1-.2-.1-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fe.svg
index 102c767..e163cfb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b70b0b" d="m56.56 33.76c-1.51 12.309-26.19 10.92-27.429 4.697-9.23 4.658-6.688 12.02-6.688 12.02 8.482 19 46.44-.147 34.12-16.715"/><path fill="#ff4848" d="m44.32 52.52c3.125 1.924 1.35 4.326-3.264 2.307-3.885-1.705-.582-5.132.787-3.951 1.169 1.01 1.843 1.255 2.477 1.644"/><path fill="#b47d56" d="m41.582 52.25c-3.5-2.942-2.998-4.477-6.461-5.408-3.225-5.079-5.896-6.851-5.896-6.851-1.711 2.375-1.029 4.602-1.029 4.602s3.376 4.421 5.878 5.658c3.078 1.519 6.27 3.664 6.27 3.664 1.439 1.228 2.814-.34 1.238-1.665"/><path fill="#ff4848" d="m28.23 59.57c.131 3.944-5.818 2.273-3.662.628.342-.263.318-.882.146-1.37-1.314-3.734 3.217-4.01 3.271-2.283.048 1.471.224 2.324.245 3.02"/><path fill="#b47d56" d="m26.944 57.34c-.238-4.355 1.246-5.125-.461-8.02.531-2.574-.703-6.688-.703-6.688-2.529.295-3.959.721-3.959.721s.59 5.227 1.408 7.721c1 3.068 1.619 6.654 1.619 6.654.089 1.806 2.206 1.574 2.096-.385"/><path fill="#231f20" d="m37.12 10.597c2.738 7.591 11.938 10.05 16.961 3.073 2.611 9.951-11.139 14.548-18.965 14.76-24.386.656-21.749-13.02-21.749-14.726 0-15.265 19.521-14.844 23.753-3.107"/><g fill="#b47d56"><path d="m41.1 32.715c-1.613-.921-2.152-1.211-2.656-.763l-7.195-4.573c-1.651-1.068-3.71-1.465-3.71-1.465-1.387 1.367.461 2.605.461 2.605l9.185 5.357-.338.578c-.264.447-.107 1.021.346 1.281l.615.35c.324.186.717.161 1.01-.035.854.41 2.098.729 2.979-.773.143-.25.949-1.623-.695-2.562"/><path d="m14.657 26.762l-4.438-4.379.015-.016c.359-.377.344-.97-.039-1.325l-.516-.481c-.273-.255-.662-.318-.99-.195-.734-.592-1.871-1.185-3.076.077-.203.21-1.307 1.364.074 2.651 1.334 1.244 1.797 1.657 2.379 1.362l5.678 5.593 6.43-.62 1.549-3.515-7.07.848"/></g><path fill="#ff4848" d="m24.909 47.689c10.02-3.332 11.608.306 23.989-.706 12.379-1.01 7.666-13.224 7.666-13.224-2.027 10.528-25.989 6.697-27.23.475 2.159-2.174 2-4.186-1.795-8.32 0 0-1.301 1.195-2.908 1.195s-2.908-1.195-2.908-1.195c-6.486 6.829-1.523 8.951-1.523 8.951 1.688 3.25-.813 6.977 2.25 15.609-.001.001 1.038-2.311 2.46-2.785"/><path fill="#b47d56" d="m32.742 15.352c.174-4.393-1.886-4.755-1.886-4.755-9.605 0-14.479 4.755-14.479 4.755s-2.373-1.576-2.373 1.53c0 1.187.453 2.157 1.988 2.262.523 3.887 2.731 5.276 6.05 5.665v1.105h-.318l-2.107 3.284c0 .678 2.119-2.03 5.03 1.563 2.896-3.578 5-.885 5-1.563l-2.107-3.284h-.461v-1.104c3.319-.389 5.526-1.778 6.05-5.666 1.527-.104 1.98-1.075 1.98-2.262 0-3.107-2.369-1.53-2.369-1.53"/><g fill="#574137"><path d="m28.491 20.09c0 1.231-1.721 2.264-3.846 2.264-2.127 0-3.85-1.032-3.85-2.264 0 0 2.049.11 3.85.11 1.803 0 3.846-.11 3.846-.11"/><path d="m22.16 15.697c0 .67-.598 1.215-1.324 1.215-.734 0-1.326-.545-1.326-1.215 0-.676.592-1.217 1.326-1.217.726 0 1.324.541 1.324 1.217"/><path d="m29.79 15.697c0 .67-.588 1.215-1.32 1.215-.73 0-1.324-.545-1.324-1.215 0-.676.594-1.217 1.324-1.217.732 0 1.32.541 1.32 1.217"/></g><path fill="#935e3e" d="m9.401 22.69c-.256-.237-1.01-.929-1.088-1.072-.15-.265-.117-.593.053-.841.021-.027.045-.055.068-.08.125-.133-.076-.33-.199-.199-.246.264-.344.609-.279.96.043.24.184.442.359.606.283.261.871.81.885.824.135.125.336-.074.201-.198"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.6 33.8c-1.5 12.3-26.2 10.9-27.4 4.7-9.2 4.7-6.7 12-6.7 12 8.4 19 46.4-.2 34.1-16.7" fill="#b70b0b"/><path d="m44.3 52.5c3.1 1.9 1.3 4.3-3.3 2.3-3.9-1.7-.6-5.1.8-4 1.2 1.1 1.9 1.3 2.5 1.7" fill="#ff4848"/><path d="m41.6 52.3c-3.5-2.9-3-4.5-6.5-5.4-3.2-5.1-5.9-6.9-5.9-6.9-1.7 2.4-1 4.6-1 4.6s3.4 4.4 5.9 5.7c3.1 1.5 6.3 3.7 6.3 3.7 1.4 1.1 2.8-.4 1.2-1.7" fill="#b47d56"/><path d="m28.2 59.6c.1 3.9-5.8 2.3-3.7.6.3-.3.3-.9.1-1.4-1.3-3.7 3.2-4 3.3-2.3.1 1.5.3 2.4.3 3.1" fill="#ff4848"/><path d="m26.9 57.3c-.2-4.4 1.2-5.1-.5-8 .5-2.6-.7-6.7-.7-6.7-2.5.3-4 .7-4 .7s.6 5.2 1.4 7.7c1 3.1 1.6 6.7 1.6 6.7.2 1.8 2.4 1.6 2.2-.4" fill="#b47d56"/><path d="m37.1 10.6c2.7 7.6 11.9 10 17 3.1 2.6 10-11.1 14.5-19 14.8-24.4.7-21.7-13-21.7-14.7 0-15.4 19.5-14.9 23.7-3.2" fill="#231f20"/><g fill="#b47d56"><path d="m41.1 32.7c-1.6-.9-2.2-1.2-2.7-.8l-7.2-4.6c-1.6-1.1-3.7-1.5-3.7-1.5-1.4 1.4.5 2.6.5 2.6l9.2 5.4-.3.6c-.3.4-.1 1 .3 1.3l.6.3c.3.2.7.2 1 0 .9.4 2.1.7 3-.8.1-.2.9-1.5-.7-2.5"/><path d="m14.7 26.8l-4.4-4.4c.4-.4.3-1 0-1.3l-.5-.5c-.3-.3-.7-.3-1-.2-.7-.6-1.9-1.2-3.1.1-.2.2-1.3 1.4.1 2.7 1.3 1.2 1.8 1.7 2.4 1.4l5.7 5.6 6.4-.6 1.5-3.5-7.1.7"/></g><path d="m24.9 47.7c10-3.3 11.6.3 24-.7 12.4-1 7.7-13.2 7.7-13.2-2 10.5-26 6.7-27.2.5 2.2-2.2 2-4.2-1.8-8.3 0 0-1.3 1.2-2.9 1.2-1.6 0-2.9-1.2-2.9-1.2-6.5 6.8-1.5 9-1.5 9 1.7 3.2-.8 7 2.2 15.6-.1-.1 1-2.4 2.4-2.9" fill="#ff4848"/><path d="m32.7 15.4c.2-4.4-1.9-4.8-1.9-4.8-9.6 0-14.5 4.8-14.5 4.8s-2.3-1.6-2.3 1.5c0 1.2.5 2.2 2 2.3.5 3.9 2.7 5.3 6 5.7v1.1h-.3l-2.1 3.3c0 .7 2.1-2 5 1.6 2.9-3.6 5-.9 5-1.6l-2.1-3.3h-.5v-1.1c3.3-.4 5.5-1.8 6.1-5.7 1.5-.1 2-1.1 2-2.3 0-3.1-2.4-1.5-2.4-1.5" fill="#b47d56"/><path d="m9.4 22.7c-.3-.2-1-.9-1.1-1.1-.1-.3-.1-.6.1-.8 0 0 0-.1.1-.1.1-.1-.1-.3-.2-.2-.2.3-.3.6-.3 1 0 .2.2.4.4.6.3.3.9.8.9.8 0 .1.2-.1.1-.2" fill="#935e3e"/><g fill="#664e27"><circle cx="20.9" cy="15.8" r="1.5"/><circle cx="28.4" cy="15.8" r="1.5"/><path d="m27.1 20.5c-1.6 1.2-3.3 1.2-4.9 0-.2-.1-.4.1-.2.3.5.9 1.4 1.7 2.7 1.7s2.2-.8 2.7-1.7c.1-.2-.1-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3ff.svg
index 051ac0f..bb4dcfe 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f483-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b70b0b" d="m56.56 33.76c-1.51 12.309-26.19 10.92-27.429 4.697-9.23 4.658-6.688 12.02-6.688 12.02 8.482 19 46.44-.147 34.12-16.715"/><path fill="#ff4848" d="m44.32 52.52c3.125 1.924 1.35 4.326-3.264 2.307-3.885-1.705-.582-5.132.787-3.951 1.169 1.01 1.843 1.255 2.477 1.644"/><path fill="#8a6859" d="m41.582 52.25c-3.5-2.942-2.998-4.477-6.461-5.408-3.225-5.079-5.896-6.851-5.896-6.851-1.711 2.375-1.029 4.602-1.029 4.602s3.376 4.421 5.878 5.658c3.078 1.519 6.27 3.664 6.27 3.664 1.439 1.228 2.814-.34 1.238-1.665"/><path fill="#ff4848" d="m28.23 59.57c.131 3.944-5.818 2.273-3.662.628.342-.263.318-.882.146-1.37-1.314-3.734 3.217-4.01 3.271-2.283.048 1.471.224 2.324.245 3.02"/><path fill="#8a6859" d="m26.944 57.34c-.238-4.355 1.246-5.125-.461-8.02.531-2.574-.703-6.688-.703-6.688-2.529.295-3.959.721-3.959.721s.59 5.227 1.408 7.721c1 3.068 1.619 6.654 1.619 6.654.089 1.806 2.206 1.574 2.096-.385"/><path fill="#231f20" d="m37.12 10.597c2.738 7.591 11.938 10.05 16.961 3.073 2.611 9.951-11.139 14.548-18.965 14.76-24.386.656-21.749-13.02-21.749-14.726 0-15.265 19.521-14.844 23.753-3.107"/><g fill="#8a6859"><path d="m41.1 32.715c-1.613-.921-2.152-1.211-2.656-.763l-7.195-4.573c-1.651-1.068-3.71-1.465-3.71-1.465-1.387 1.367.461 2.605.461 2.605l9.185 5.357-.338.578c-.264.447-.107 1.021.346 1.281l.615.35c.324.186.717.161 1.01-.035.854.41 2.098.729 2.979-.773.143-.25.949-1.623-.695-2.562"/><path d="m14.657 26.762l-4.438-4.379.015-.016c.359-.377.344-.97-.039-1.325l-.516-.481c-.273-.255-.662-.318-.99-.195-.734-.592-1.871-1.185-3.076.077-.203.21-1.307 1.364.074 2.651 1.334 1.244 1.797 1.657 2.379 1.362l5.678 5.593 6.43-.62 1.549-3.515-7.07.848"/></g><path fill="#ff4848" d="m24.909 47.689c10.02-3.332 11.608.306 23.989-.706 12.379-1.01 7.666-13.224 7.666-13.224-2.027 10.528-25.989 6.697-27.23.475 2.159-2.174 2-4.186-1.795-8.32 0 0-1.301 1.195-2.908 1.195s-2.908-1.195-2.908-1.195c-6.486 6.829-1.523 8.951-1.523 8.951 1.688 3.25-.813 6.977 2.25 15.609-.001.001 1.038-2.311 2.46-2.785"/><path fill="#8a6859" d="m32.742 15.352c.174-4.393-1.886-4.755-1.886-4.755-9.605 0-14.479 4.755-14.479 4.755s-2.373-1.576-2.373 1.53c0 1.187.453 2.157 1.988 2.262.523 3.887 2.731 5.276 6.05 5.665v1.105h-.318l-2.107 3.284c0 .678 2.119-2.03 5.03 1.563 2.896-3.578 5-.885 5-1.563l-2.107-3.284h-.461v-1.104c3.319-.389 5.526-1.778 6.05-5.666 1.527-.104 1.98-1.075 1.98-2.262 0-3.107-2.369-1.53-2.369-1.53"/><g fill="#47352d"><path d="m28.491 20.09c0 1.231-1.721 2.264-3.846 2.264-2.127 0-3.85-1.032-3.85-2.264 0 0 2.049.11 3.85.11 1.803 0 3.846-.11 3.846-.11"/><path d="m22.16 15.697c0 .67-.598 1.215-1.324 1.215-.734 0-1.326-.545-1.326-1.215 0-.676.592-1.217 1.326-1.217.726 0 1.324.541 1.324 1.217"/><path d="m29.79 15.697c0 .67-.588 1.215-1.32 1.215-.73 0-1.324-.545-1.324-1.215 0-.676.594-1.217 1.324-1.217.732 0 1.32.541 1.32 1.217"/></g><path fill="#705041" d="m9.401 22.69c-.256-.237-1.01-.929-1.088-1.072-.15-.265-.117-.593.053-.841.021-.027.045-.055.068-.08.125-.133-.076-.33-.199-.199-.246.264-.344.609-.279.96.043.24.184.442.359.606.283.261.871.81.885.824.135.125.336-.074.201-.198"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.6 33.8c-1.5 12.3-26.2 10.9-27.4 4.7-9.2 4.7-6.7 12-6.7 12 8.4 19 46.4-.2 34.1-16.7" fill="#b70b0b"/><path d="m44.3 52.5c3.1 1.9 1.3 4.3-3.3 2.3-3.9-1.7-.6-5.1.8-4 1.2 1.1 1.9 1.3 2.5 1.7" fill="#ff4848"/><path d="m41.6 52.3c-3.5-2.9-3-4.5-6.5-5.4-3.2-5.1-5.9-6.9-5.9-6.9-1.7 2.4-1 4.6-1 4.6s3.4 4.4 5.9 5.7c3.1 1.5 6.3 3.7 6.3 3.7 1.4 1.1 2.8-.4 1.2-1.7" fill="#8a6859"/><path d="m28.2 59.6c.1 3.9-5.8 2.3-3.7.6.3-.3.3-.9.1-1.4-1.3-3.7 3.2-4 3.3-2.3.1 1.5.3 2.4.3 3.1" fill="#ff4848"/><path d="m26.9 57.3c-.2-4.4 1.2-5.1-.5-8 .5-2.6-.7-6.7-.7-6.7-2.5.3-4 .7-4 .7s.6 5.2 1.4 7.7c1 3.1 1.6 6.7 1.6 6.7.2 1.8 2.4 1.6 2.2-.4" fill="#8a6859"/><path d="m37.1 10.6c2.7 7.6 11.9 10 17 3.1 2.6 10-11.1 14.5-19 14.8-24.4.7-21.7-13-21.7-14.7 0-15.4 19.5-14.9 23.7-3.2" fill="#231f20"/><g fill="#8a6859"><path d="m41.1 32.7c-1.6-.9-2.2-1.2-2.7-.8l-7.2-4.6c-1.6-1.1-3.7-1.5-3.7-1.5-1.4 1.4.5 2.6.5 2.6l9.2 5.4-.3.6c-.3.4-.1 1 .3 1.3l.6.3c.3.2.7.2 1 0 .9.4 2.1.7 3-.8.1-.2.9-1.5-.7-2.5"/><path d="m14.7 26.8l-4.4-4.4c.4-.4.3-1 0-1.3l-.5-.5c-.3-.3-.7-.3-1-.2-.7-.6-1.9-1.2-3.1.1-.2.2-1.3 1.4.1 2.7 1.3 1.2 1.8 1.7 2.4 1.4l5.7 5.6 6.4-.6 1.5-3.5-7.1.7"/></g><path d="m24.9 47.7c10-3.3 11.6.3 24-.7 12.4-1 7.7-13.2 7.7-13.2-2 10.5-26 6.7-27.2.5 2.2-2.2 2-4.2-1.8-8.3 0 0-1.3 1.2-2.9 1.2s-2.9-1.2-2.9-1.2c-6.5 6.8-1.5 9-1.5 9 1.7 3.2-.8 7 2.2 15.6-.1-.1 1-2.4 2.4-2.9" fill="#ff4848"/><path d="m32.7 15.4c.2-4.4-1.9-4.8-1.9-4.8-9.6 0-14.5 4.8-14.5 4.8s-2.3-1.6-2.3 1.5c0 1.2.5 2.2 2 2.3.5 3.9 2.7 5.3 6 5.7v1.1h-.3l-2.1 3.3c0 .7 2.1-2 5 1.6 2.9-3.6 5-.9 5-1.6l-2.1-3.3h-.5v-1.1c3.3-.4 5.5-1.8 6.1-5.7 1.5-.1 2-1.1 2-2.3 0-3.1-2.4-1.5-2.4-1.5" fill="#8a6859"/><path d="m9.4 22.7c-.3-.2-1-.9-1.1-1.1-.1-.3-.1-.6.1-.8 0 0 0-.1.1-.1.1-.1-.1-.3-.2-.2-.2.3-.3.6-.3 1 0 .2.2.4.4.6.3.3.9.8.9.8 0 .1.2-.1.1-.2" fill="#705041"/><g fill="#574137"><circle cx="20.9" cy="15.8" r="1.5"/><circle cx="28.4" cy="15.8" r="1.5"/><path d="m27.1 20.5c-1.6 1.2-3.3 1.2-4.9 0-.2-.1-.4.1-.2.3.5.9 1.4 1.7 2.7 1.7 1.2 0 2.2-.8 2.7-1.7.1-.2-.1-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f483.svg b/build/js/jsxc/lib/emojione/assets/svg/1f483.svg
index 942e1db..25ff89a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f483.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f483.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b70b0b" d="m56.56 33.76c-1.51 12.309-26.18 10.92-27.427 4.697-9.23 4.658-6.687 12.02-6.687 12.02 8.479 19 46.44-.147 34.11-16.715"/><path fill="#ff4848" d="m44.31 52.52c3.125 1.924 1.35 4.326-3.264 2.307-3.885-1.705-.582-5.132.787-3.951 1.168 1.01 1.842 1.255 2.477 1.644"/><path fill="#ffdd67" d="m41.578 52.25c-3.5-2.942-2.998-4.477-6.461-5.408-3.224-5.079-5.894-6.851-5.894-6.851-1.711 2.375-1.029 4.602-1.029 4.602s3.375 4.421 5.876 5.658c3.078 1.519 6.27 3.664 6.27 3.664 1.439 1.228 2.814-.34 1.238-1.665"/><path fill="#ff4848" d="m28.23 59.57c.131 3.944-5.818 2.273-3.662.628.341-.263.318-.882.146-1.37-1.314-3.734 3.216-4.01 3.271-2.283.048 1.471.224 2.324.245 3.02"/><path fill="#ffdd67" d="m26.942 57.34c-.238-4.355 1.246-5.125-.461-8.02.531-2.574-.703-6.688-.703-6.688-2.529.295-3.958.721-3.958.721s.59 5.227 1.408 7.721c1 3.068 1.619 6.654 1.619 6.654.087 1.806 2.204 1.574 2.095-.385"/><path fill="#231f20" d="m37.11 10.597c2.738 7.591 11.938 10.05 16.961 3.073 2.611 9.951-11.139 14.548-18.965 14.76-24.383.656-21.747-13.02-21.747-14.726 0-15.265 19.519-14.844 23.751-3.107"/><g fill="#ffdd67"><path d="m41.1 32.715c-1.613-.921-2.151-1.211-2.654-.763l-7.197-4.573c-1.65-1.068-3.709-1.465-3.709-1.465-1.387 1.367.461 2.605.461 2.605l9.184 5.357-.339.578c-.264.447-.107 1.021.346 1.281l.615.35c.324.186.717.161 1.01-.035.854.41 2.098.729 2.979-.773.144-.25.95-1.623-.694-2.562"/><path d="m14.655 26.762l-4.439-4.379.015-.016c.359-.377.344-.97-.039-1.325l-.516-.481c-.273-.255-.662-.318-.99-.195-.734-.592-1.871-1.185-3.076.077-.203.21-1.307 1.364.074 2.651 1.334 1.244 1.796 1.657 2.378 1.362l5.679 5.593 6.43-.62 1.549-3.515-7.06.848"/></g><path fill="#ff4848" d="m24.907 47.689c10.02-3.332 11.607.306 23.988-.706 12.379-1.01 7.666-13.224 7.666-13.224-2.027 10.528-25.988 6.697-27.23.475 2.158-2.174 2-4.186-1.795-8.32 0 0-1.301 1.195-2.908 1.195-1.607 0-2.908-1.195-2.908-1.195-6.486 6.829-1.523 8.951-1.523 8.951 1.688 3.25-.813 6.977 2.25 15.609-.001.001 1.038-2.311 2.46-2.785"/><path fill="#ffdd67" d="m32.739 15.352c.174-4.393-1.885-4.755-1.885-4.755-9.605 0-14.478 4.755-14.478 4.755s-2.373-1.576-2.373 1.53c0 1.187.453 2.157 1.988 2.262.523 3.887 2.731 5.276 6.05 5.665v1.105h-.318l-2.107 3.284c0 .678 2.119-2.03 5.03 1.563 2.896-3.578 5-.885 5-1.563l-2.107-3.284h-.461v-1.104c3.319-.389 5.527-1.778 6.05-5.666 1.527-.104 1.98-1.075 1.98-2.262 0-3.107-2.368-1.53-2.368-1.53"/><g fill="#664e27"><path d="m28.489 20.09c0 1.231-1.721 2.264-3.845 2.264-2.127 0-3.85-1.032-3.85-2.264 0 0 2.049.11 3.85.11 1.802 0 3.845-.11 3.845-.11"/><path d="m22.16 15.697c0 .67-.598 1.215-1.324 1.215-.734 0-1.326-.545-1.326-1.215 0-.676.592-1.217 1.326-1.217.726 0 1.324.541 1.324 1.217"/><path d="m29.788 15.697c0 .67-.588 1.215-1.32 1.215-.73 0-1.324-.545-1.324-1.215 0-.676.594-1.217 1.324-1.217.732 0 1.32.541 1.32 1.217"/></g><path fill="#eba352" d="m9.399 22.69c-.256-.237-1.01-.929-1.088-1.072-.15-.265-.117-.593.053-.841.021-.027.045-.055.068-.08.125-.133-.076-.33-.199-.199-.246.264-.344.609-.279.96.043.24.184.442.359.606.283.261.871.81.885.824.135.125.336-.074.201-.198"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.6 33.8c-1.5 12.3-26.2 10.9-27.4 4.7-9.2 4.7-6.7 12-6.7 12 8.4 19 46.4-.2 34.1-16.7" fill="#b70b0b"/><path d="m44.3 52.5c3.1 1.9 1.3 4.3-3.3 2.3-3.9-1.7-.6-5.1.8-4 1.2 1.1 1.9 1.3 2.5 1.7" fill="#ff4848"/><path d="m41.6 52.3c-3.5-2.9-3-4.5-6.5-5.4-3.2-5.1-5.9-6.9-5.9-6.9-1.7 2.4-1 4.6-1 4.6s3.4 4.4 5.9 5.7c3.1 1.5 6.3 3.7 6.3 3.7 1.4 1.1 2.8-.4 1.2-1.7" fill="#ffdd67"/><path d="m28.2 59.6c.1 3.9-5.8 2.3-3.7.6.3-.3.3-.9.1-1.4-1.3-3.7 3.2-4 3.3-2.3.1 1.5.3 2.4.3 3.1" fill="#ff4848"/><path d="m26.9 57.3c-.2-4.4 1.2-5.1-.5-8 .5-2.6-.7-6.7-.7-6.7-2.5.3-4 .7-4 .7s.6 5.2 1.4 7.7c1 3.1 1.6 6.7 1.6 6.7.2 1.8 2.4 1.6 2.2-.4" fill="#ffdd67"/><path d="m37.1 10.6c2.7 7.6 11.9 10 17 3.1 2.6 10-11.1 14.5-19 14.8-24.4.7-21.7-13-21.7-14.7 0-15.4 19.5-14.9 23.7-3.2" fill="#ffb300"/><g fill="#ffdd67"><path d="m41.1 32.7c-1.6-.9-2.2-1.2-2.7-.8l-7.2-4.6c-1.6-1.1-3.7-1.5-3.7-1.5-1.4 1.4.5 2.6.5 2.6l9.2 5.4-.3.6c-.3.4-.1 1 .3 1.3l.6.3c.3.2.7.2 1 0 .9.4 2.1.7 3-.8.1-.2.9-1.5-.7-2.5"/><path d="m14.7 26.8l-4.4-4.4c.4-.4.3-1 0-1.3l-.5-.5c-.3-.3-.7-.3-1-.2-.7-.6-1.9-1.2-3.1.1-.2.2-1.3 1.4.1 2.7 1.3 1.2 1.8 1.7 2.4 1.4l5.7 5.6 6.4-.6 1.5-3.5-7.1.7"/></g><path d="m24.9 47.7c10-3.3 11.6.3 24-.7 12.4-1 7.7-13.2 7.7-13.2-2 10.5-26 6.7-27.2.5 2.2-2.2 2-4.2-1.8-8.3 0 0-1.3 1.2-2.9 1.2s-2.9-1.2-2.9-1.2c-6.5 6.8-1.5 9-1.5 9 1.7 3.2-.8 7 2.2 15.6-.1-.1 1-2.4 2.4-2.9" fill="#ff4848"/><path d="m32.7 15.4c.2-4.4-1.9-4.8-1.9-4.8-9.6 0-14.5 4.8-14.5 4.8s-2.3-1.6-2.3 1.5c0 1.2.5 2.2 2 2.3.5 3.9 2.7 5.3 6 5.7v1.1h-.3l-2.1 3.3c0 .7 2.1-2 5 1.6 2.9-3.6 5-.9 5-1.6l-2.1-3.3h-.5v-1.1c3.3-.4 5.5-1.8 6.1-5.7 1.5-.1 2-1.1 2-2.3 0-3.1-2.4-1.5-2.4-1.5" fill="#ffdd67"/><path d="m9.4 22.7c-.3-.2-1-.9-1.1-1.1-.1-.3-.1-.6.1-.8 0 0 0-.1.1-.1.1-.1-.1-.3-.2-.2-.2.3-.3.6-.3 1 0 .2.2.4.4.6.3.3.9.8.9.8 0 .1.2-.1.1-.2" fill="#eba352"/><g fill="#937237"><path d="m22.4 15.8c0 .8-.7 1.5-1.5 1.5-.9 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5.8 0 1.5.7 1.5 1.5"/><circle cx="28.4" cy="15.8" r="1.5"/><path d="m27.1 20.5c-1.6 1.2-3.3 1.2-4.9 0-.2-.1-.4.1-.2.3.5.9 1.4 1.7 2.7 1.7 1.2 0 2.2-.8 2.7-1.7.1-.2-.1-.4-.3-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f484.svg b/build/js/jsxc/lib/emojione/assets/svg/1f484.svg
index 60c4726..99bc790 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f484.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f484.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m20.22 4.776l.097.1.066-.065 20.17 20.269-.066.06-3.699 3.722-8.99 9.03-25.619-25.743z"/><path fill="#c94747" d="m2.01 11.846c.201 1.208 4.511.673 9.626-1.192 5.115-1.866 9.1-4.356 8.897-5.564-.202-1.208-4.511-.674-9.627 1.191-5.113 1.866-9.1 4.358-8.896 5.565"/><path fill="#3e4347" d="M33.18 15.651 58.56 41.16 43.8 55.986 18.417 30.481z"/><path fill="#555b61" d="M57.841 41.878 62 46.06 48.68 59.44 44.52 55.26z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="M20.8 6.4 40.9 26.5 29.7 37.7 2.2 10.2z"/><path d="m10.6 5.8c-5.2.9-9 2.7-8.6 4.1.5 1.4 5.1 1.8 10.4.9 5.2-1 9.1-2.8 8.6-4.2-.5-1.4-5.2-1.7-10.4-.8"/></g><path d="m10.8 5.8c-4.9.8-8.5 2.6-8 3.9.5 1.3 4.8 1.6 9.7.8 4.9-.8 8.5-2.6 8-3.8-.5-1.4-4.8-1.8-9.7-.9" fill="#ff8080"/><path transform="matrix(.7071-.7071.7071.7071-10.7928 30.6765)" fill="#e8e8e8" d="m22.6 16.5h18.2v23.8h-18.2z"/><path transform="matrix(.707-.7072.7072.707-19.7271 52.2523)" fill="#555b61" d="m43.7 47h19v5.9h-19z"/><path transform="matrix(.7069-.7073.7073.7069-12.8952 35.7644)" fill="#b2c1c0" d="m27.2 30.7h19v5.5h-19z"/><path transform="matrix(.7071-.7071.7071.7071-16.45 44.3334)" fill="#3e4347" d="m34.8 29.8h21v24.4h-21z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fb.svg
index d53f59a..f31a7a2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m20.615 35.12c-1.672-2.309-4.178-9.721-1.867-11.393l.672-.484c.363 2.736 1.68 6.02 2.695 7.418l22.662 31.342h13.619v-4.27l-23.716-32.798c-1.674-2.311-7.926-7.01-10.236-5.342l-5.717 4.135c-2.311 1.672.195 9.08 1.867 11.393l19.437 26.882h.021l-19.437-26.883"/><path fill="#e6b796" d="m19.42 23.24l-.672.484c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h4.725l-22.663-31.342c-1.015-1.402-2.332-4.681-2.695-7.418"/><path fill="#ffe1bd" d="m48.17 16.693l-5.77 3.471c-2.332 1.404-.543 8.652.859 10.982l15.14 25.16v-.02l-15.13-25.14c-1.402-2.33-3.189-9.578-.857-10.982l.422-.252c.215 2.527 1.137 5.447 1.936 6.775l13.627 22.646v-25.19l-.928-1.543c-1.406-2.33-6.972-7.305-9.302-5.903"/><path fill="#e6b796" d="m42.834 19.912l-.422.252c-2.332 1.404-.545 8.652.857 10.982l15.13 25.14v-6.953l-13.626-22.646c-.799-1.329-1.721-4.249-1.936-6.776"/><path fill="#ffe1bd" d="m14.252 43.12l-5.129 4.363c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h.018l-3.254-3.822c-1.764-2.072-4.705-8.932-2.635-10.695l.965-.82c.516 2.617 2.07 5.766 3.17 7.06l7.05 8.28h16.467l-12.402-14.572c-1.766-2.071-8.07-6.073-10.137-4.309"/><path fill="#e6b796" d="m13.275 53.719c-1.1-1.291-2.654-4.439-3.17-7.06l-.965.82c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h5.295l-7.05-8.281"/><path fill="#ff8736" d="m21.07 32.4c3.434 4.748 7.01 4.559 10.01 2.387 3-2.172 4.303-5.506.871-10.252-3.436-4.748-9.971-8.656-12.975-6.484-3 2.172-1.337 9.603 2.096 14.349"/><path fill="#ffb77b" d="m27.613 27.346c3.074 4.252 2.992 5.762 3.992 5.04 1-.725 2.311-3.121-.764-7.373s-8.813-7.143-9.813-6.42c-1 .724 3.509 4.504 6.585 8.756"/><path fill="#ff8736" d="m43.932 28.602c2.881 4.791 6.293 4.896 9.322 3.074 3.03-1.824 4.535-4.887 1.652-9.676-2.883-4.791-8.783-9.03-11.813-7.209-3.03 1.824-2.044 9.02.839 13.811"/><path fill="#ffb77b" d="m50.557 24.322c2.582 4.289 2.381 5.717 3.391 5.111 1.012-.609 2.447-2.783-.135-7.07-2.58-4.289-7.801-7.5-8.813-6.893-1.01.608 2.975 4.565 5.557 8.854"/><path fill="#ff8736" d="m12.01 55.56c3.623 4.256 7.01 3.807 9.699 1.516 2.693-2.293 3.678-5.561.057-9.816-3.623-4.258-10.135-7.48-12.83-5.189-2.694 2.291-.551 9.233 3.074 13.489"/><path fill="#ffb77b" d="m17.848 50.26c3.246 3.813 3.281 5.254 4.18 4.492.896-.768 1.961-3.145-1.283-6.957-3.246-3.811-8.92-6.131-9.818-5.367-.896.765 3.677 4.02 6.921 7.832"/><path fill="#ff8736" d="m21.33 27.516c0 0-1.258-.756-2.963-2.309.35-.189.668-.416.941-.688 0 0-7.871-5.629-9.813-17.791 0 0-3.904 8.453-3.893 15.732.012 8.379 8.912 11.01 12.133 7.787 0 0-.66-.473-1.641-1.434 2.074.154 4.02-.276 5.236-1.297"/><path fill="#d8681d" d="m22.13 26.846c0 0-2.031-.082-3.736-1.633 0 0 1.504.131 2.066-.713 0 0-8.996-5.605-10.938-17.766 0 0-.582 1.264-1.293 3.225 1.729 11.541 8.744 14.496 8.744 14.496-.273.273-5.04-.893-5.04-.893 1.527 2.309 7.328 3.619 7.328 3.619-4.854 1.107-9.04-.6-9.04-.6.979 2.512 5.01 3.705 5.01 3.705s-1.246 1.051-3.396.939c2.258.68 4.582.367 5.924-.973 0 0-.66-.473-1.641-1.434 2.072.155 4.789-.271 6.01-1.972"/><path fill="#454749" d="m7.02 2h4.523v11.527h-4.523z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 35.1c-1.7-2.3-4.2-9.7-1.9-11.4l.7-.5c.4 2.7 1.7 6 2.7 7.4l22.7 31.4h13.6v-4.3l-23.7-32.8c-1.7-2.3-7.9-7-10.2-5.3l-5.7 4.1c-2.4 1.7.1 9.1 1.8 11.4l19.4 26.9-19.4-26.9" fill="#ffe1bd"/><path d="m19.4 23.2l-.7.5c-2.3 1.7.2 9.1 1.9 11.4l19.5 26.9h4.7l-22.7-31.3c-1-1.4-2.3-4.7-2.7-7.5" fill="#e6b796"/><path d="m48.2 16.7l-5.8 3.5c-2.3 1.4-.5 8.7.9 11l15.1 25.2-15.1-25.3c-1.4-2.3-3.2-9.6-.9-11l.4-.3c.2 2.5 1.1 5.4 1.9 6.8l13.6 22.6v-25.1l-.9-1.5c-1.3-2.3-6.9-7.3-9.2-5.9" fill="#ffe1bd"/><path d="m42.8 19.9l-.4.3c-2.3 1.4-.5 8.7.9 11l15.1 25.1v-7l-13.6-22.6c-.8-1.3-1.8-4.3-2-6.8" fill="#e6b796"/><path d="m14.3 43.1l-5.1 4.4c-2.1 1.8.9 8.6 2.6 10.7l3.2 3.8-3.3-3.8c-1.8-2.1-4.7-8.9-2.6-10.7l1-.8c.5 2.6 2.1 5.8 3.2 7.1l7 8.3h16.5l-12.4-14.7c-1.8-2-8.1-6-10.1-4.3" fill="#ffe1bd"/><path d="m13.3 53.7c-1.1-1.3-2.7-4.4-3.2-7.1l-1 .8c-2.1 1.8.9 8.6 2.6 10.7l3.3 3.9h5.3l-7-8.3" fill="#e6b796"/><path d="m21.1 32.4c3.4 4.7 7 4.6 10 2.4 3-2.2 4.3-5.5.9-10.3-3.4-4.7-10-8.7-13-6.5-3 2.2-1.4 9.7 2.1 14.4" fill="#ff8736"/><path d="m27.6 27.3c3.1 4.3 3 5.8 4 5 1-.7 2.3-3.1-.8-7.4s-8.8-7-9.8-6.3c-1 .7 3.5 4.5 6.6 8.7" fill="#ffb77b"/><path d="m43.9 28.6c2.9 4.8 6.3 4.9 9.3 3.1 3-1.8 4.5-4.9 1.7-9.7-2.9-4.8-8.8-9-11.8-7.2-3 1.8-2.1 9 .8 13.8" fill="#ff8736"/><path d="m50.6 24.3c2.6 4.3 2.4 5.7 3.4 5.1 1-.6 2.4-2.8-.1-7.1-2.6-4.3-7.8-7.5-8.8-6.9-1.1.7 2.9 4.6 5.5 8.9" fill="#ffb77b"/><path d="m12 55.6c3.6 4.3 7 3.8 9.7 1.5 2.7-2.3 3.7-5.6.1-9.8-3.6-4.3-10.1-7.5-12.8-5.2-2.8 2.3-.6 9.2 3 13.5" fill="#ff8736"/><path d="m17.8 50.3c3.2 3.8 3.3 5.3 4.2 4.5.9-.8 2-3.1-1.3-7-3.2-3.8-8.9-6.1-9.8-5.4-.9.8 3.7 4 6.9 7.9" fill="#ffb77b"/><path d="m21.3 27.5c0 0-1.3-.8-3-2.3.4-.2.7-.4.9-.7 0 0-7.9-5.6-9.8-17.8 0 0-3.9 8.5-3.9 15.7 0 8.4 8.9 11 12.1 7.8 0 0-.7-.5-1.6-1.4 2.2.2 4.1-.3 5.3-1.3" fill="#ff8736"/><path d="m22.1 26.8c0 0-2-.1-3.7-1.6 0 0 1.5.1 2.1-.7 0 0-9-5.6-10.9-17.8 0 0-.6 1.3-1.3 3.2 1.7 11.6 8.7 14.6 8.7 14.6-.3.3-5-.9-5-.9 1.5 2.3 7.3 3.6 7.3 3.6-4.9 1.1-9-.6-9-.6 1 2.5 5 3.7 5 3.7s-1.2 1.1-3.4.9c2.3.7 4.6.4 5.9-1 0 0-.7-.5-1.6-1.4 2 .2 4.7-.3 5.9-2" fill="#d8681d"/><path fill="#454749" d="m7 2h4.5v11.5h-4.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fc.svg
index 1f843d7..442102a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m20.615 35.12c-1.672-2.309-4.178-9.721-1.867-11.393l.672-.484c.363 2.736 1.68 6.02 2.695 7.418l22.662 31.342h13.619v-4.27l-23.716-32.798c-1.674-2.311-7.926-7.01-10.236-5.342l-5.717 4.135c-2.311 1.672.195 9.08 1.867 11.393l19.437 26.882h.021l-19.437-26.883"/><path fill="#e0a372" d="m19.42 23.24l-.672.484c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h4.725l-22.663-31.342c-1.015-1.402-2.332-4.681-2.695-7.418"/><path fill="#fed0ac" d="m48.17 16.693l-5.77 3.471c-2.332 1.404-.543 8.652.859 10.982l15.14 25.16v-.02l-15.13-25.14c-1.402-2.33-3.189-9.578-.857-10.982l.422-.252c.215 2.527 1.137 5.447 1.936 6.775l13.627 22.646v-25.19l-.928-1.543c-1.406-2.33-6.972-7.305-9.302-5.903"/><path fill="#e0a372" d="m42.834 19.912l-.422.252c-2.332 1.404-.545 8.652.857 10.982l15.13 25.14v-6.953l-13.626-22.646c-.799-1.329-1.721-4.249-1.936-6.776"/><path fill="#fed0ac" d="m14.252 43.12l-5.129 4.363c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h.018l-3.254-3.822c-1.764-2.072-4.705-8.932-2.635-10.695l.965-.82c.516 2.617 2.07 5.766 3.17 7.06l7.05 8.28h16.467l-12.402-14.572c-1.766-2.071-8.07-6.073-10.137-4.309"/><path fill="#e0a372" d="m13.275 53.719c-1.1-1.291-2.654-4.439-3.17-7.06l-.965.82c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h5.295l-7.05-8.281"/><path fill="#ff8736" d="m21.07 32.4c3.434 4.748 7.01 4.559 10.01 2.387 3-2.172 4.303-5.506.871-10.252-3.436-4.748-9.971-8.656-12.975-6.484-3 2.172-1.337 9.603 2.096 14.349"/><path fill="#ffb77b" d="m27.613 27.346c3.074 4.252 2.992 5.762 3.992 5.04 1-.725 2.311-3.121-.764-7.373s-8.813-7.143-9.813-6.42c-1 .724 3.509 4.504 6.585 8.756"/><path fill="#ff8736" d="m43.932 28.602c2.881 4.791 6.293 4.896 9.322 3.074 3.03-1.824 4.535-4.887 1.652-9.676-2.883-4.791-8.783-9.03-11.813-7.209-3.03 1.824-2.044 9.02.839 13.811"/><path fill="#ffb77b" d="m50.557 24.322c2.582 4.289 2.381 5.717 3.391 5.111 1.012-.609 2.447-2.783-.135-7.07-2.58-4.289-7.801-7.5-8.813-6.893-1.01.608 2.975 4.565 5.557 8.854"/><path fill="#ff8736" d="m12.01 55.56c3.623 4.256 7.01 3.807 9.699 1.516 2.693-2.293 3.678-5.561.057-9.816-3.623-4.258-10.135-7.48-12.83-5.189-2.694 2.291-.551 9.233 3.074 13.489"/><path fill="#ffb77b" d="m17.848 50.26c3.246 3.813 3.281 5.254 4.18 4.492.896-.768 1.961-3.145-1.283-6.957-3.246-3.811-8.92-6.131-9.818-5.367-.896.765 3.677 4.02 6.921 7.832"/><path fill="#ff8736" d="m21.33 27.516c0 0-1.258-.756-2.963-2.309.35-.189.668-.416.941-.688 0 0-7.871-5.629-9.813-17.791 0 0-3.904 8.453-3.893 15.732.012 8.379 8.912 11.01 12.133 7.787 0 0-.66-.473-1.641-1.434 2.074.154 4.02-.276 5.236-1.297"/><path fill="#d8681d" d="m22.13 26.846c0 0-2.031-.082-3.736-1.633 0 0 1.504.131 2.066-.713 0 0-8.996-5.605-10.938-17.766 0 0-.582 1.264-1.293 3.225 1.729 11.541 8.744 14.496 8.744 14.496-.273.273-5.04-.893-5.04-.893 1.527 2.309 7.328 3.619 7.328 3.619-4.854 1.107-9.04-.6-9.04-.6.979 2.512 5.01 3.705 5.01 3.705s-1.246 1.051-3.396.939c2.258.68 4.582.367 5.924-.973 0 0-.66-.473-1.641-1.434 2.072.155 4.789-.271 6.01-1.972"/><path fill="#454749" d="m7.02 2h4.523v11.527h-4.523z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 35.1c-1.7-2.3-4.2-9.7-1.9-11.4l.7-.5c.4 2.7 1.7 6 2.7 7.4l22.7 31.4h13.6v-4.3l-23.7-32.8c-1.7-2.3-7.9-7-10.2-5.3l-5.7 4.1c-2.4 1.7.1 9.1 1.8 11.4l19.4 26.9-19.4-26.9" fill="#fed0ac"/><path d="m19.4 23.2l-.7.5c-2.3 1.7.2 9.1 1.9 11.4l19.5 26.9h4.7l-22.7-31.3c-1-1.4-2.3-4.7-2.7-7.5" fill="#e0a372"/><path d="m48.2 16.7l-5.8 3.5c-2.3 1.4-.5 8.7.9 11l15.1 25.2-15.1-25.3c-1.4-2.3-3.2-9.6-.9-11l.4-.3c.2 2.5 1.1 5.4 1.9 6.8l13.6 22.6v-25.1l-.9-1.5c-1.3-2.3-6.9-7.3-9.2-5.9" fill="#fed0ac"/><path d="m42.8 19.9l-.4.3c-2.3 1.4-.5 8.7.9 11l15.1 25.1v-7l-13.6-22.6c-.8-1.3-1.8-4.3-2-6.8" fill="#e0a372"/><path d="m14.3 43.1l-5.1 4.4c-2.1 1.8.9 8.6 2.6 10.7l3.2 3.8-3.3-3.8c-1.8-2.1-4.7-8.9-2.6-10.7l1-.8c.5 2.6 2.1 5.8 3.2 7.1l7 8.3h16.5l-12.4-14.7c-1.8-2-8.1-6-10.1-4.3" fill="#fed0ac"/><path d="m13.3 53.7c-1.1-1.3-2.7-4.4-3.2-7.1l-1 .8c-2.1 1.8.9 8.6 2.6 10.7l3.3 3.9h5.3l-7-8.3" fill="#e0a372"/><path d="m21.1 32.4c3.4 4.7 7 4.6 10 2.4 3-2.2 4.3-5.5.9-10.3-3.4-4.7-10-8.7-13-6.5-3 2.2-1.4 9.7 2.1 14.4" fill="#ff8736"/><path d="m27.6 27.3c3.1 4.3 3 5.8 4 5 1-.7 2.3-3.1-.8-7.4s-8.8-7-9.8-6.3c-1 .7 3.5 4.5 6.6 8.7" fill="#ffb77b"/><path d="m43.9 28.6c2.9 4.8 6.3 4.9 9.3 3.1 3-1.8 4.5-4.9 1.7-9.7-2.9-4.8-8.8-9-11.8-7.2-3 1.8-2.1 9 .8 13.8" fill="#ff8736"/><path d="m50.6 24.3c2.6 4.3 2.4 5.7 3.4 5.1 1-.6 2.4-2.8-.1-7.1-2.6-4.3-7.8-7.5-8.8-6.9-1.1.7 2.9 4.6 5.5 8.9" fill="#ffb77b"/><path d="m12 55.6c3.6 4.3 7 3.8 9.7 1.5 2.7-2.3 3.7-5.6.1-9.8-3.6-4.3-10.1-7.5-12.8-5.2-2.8 2.3-.6 9.2 3 13.5" fill="#ff8736"/><path d="m17.8 50.3c3.2 3.8 3.3 5.3 4.2 4.5.9-.8 2-3.1-1.3-7-3.2-3.8-8.9-6.1-9.8-5.4-.9.8 3.7 4 6.9 7.9" fill="#ffb77b"/><path d="m21.3 27.5c0 0-1.3-.8-3-2.3.4-.2.7-.4.9-.7 0 0-7.9-5.6-9.8-17.8 0 0-3.9 8.5-3.9 15.7 0 8.4 8.9 11 12.1 7.8 0 0-.7-.5-1.6-1.4 2.2.2 4.1-.3 5.3-1.3" fill="#ff8736"/><path d="m22.1 26.8c0 0-2-.1-3.7-1.6 0 0 1.5.1 2.1-.7 0 0-9-5.6-10.9-17.8 0 0-.6 1.3-1.3 3.2 1.7 11.6 8.7 14.6 8.7 14.6-.3.3-5-.9-5-.9 1.5 2.3 7.3 3.6 7.3 3.6-4.9 1.1-9-.6-9-.6 1 2.5 5 3.7 5 3.7s-1.2 1.1-3.4.9c2.3.7 4.6.4 5.9-1 0 0-.7-.5-1.6-1.4 2 .2 4.7-.3 5.9-2" fill="#d8681d"/><path fill="#454749" d="m7 2h4.5v11.5h-4.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fd.svg
index 6b4b117..daa1db1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m20.615 35.12c-1.672-2.309-4.178-9.721-1.867-11.393l.672-.484c.363 2.736 1.68 6.02 2.695 7.418l22.662 31.342h13.619v-4.27l-23.716-32.798c-1.674-2.311-7.926-7.01-10.236-5.342l-5.717 4.135c-2.311 1.672.195 9.08 1.867 11.393l19.437 26.882h.021l-19.437-26.883"/><path fill="#b58360" d="m19.42 23.24l-.672.484c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h4.725l-22.663-31.342c-1.015-1.402-2.332-4.681-2.695-7.418"/><path fill="#d6a57c" d="m48.17 16.693l-5.77 3.471c-2.332 1.404-.543 8.652.859 10.982l15.14 25.16v-.02l-15.13-25.14c-1.402-2.33-3.189-9.578-.857-10.982l.422-.252c.215 2.527 1.137 5.447 1.936 6.775l13.627 22.646v-25.19l-.928-1.543c-1.406-2.33-6.972-7.305-9.302-5.903"/><path fill="#b58360" d="m42.834 19.912l-.422.252c-2.332 1.404-.545 8.652.857 10.982l15.13 25.14v-6.953l-13.626-22.646c-.799-1.329-1.721-4.249-1.936-6.776"/><path fill="#d6a57c" d="m14.252 43.12l-5.129 4.363c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h.018l-3.254-3.822c-1.764-2.072-4.705-8.932-2.635-10.695l.965-.82c.516 2.617 2.07 5.766 3.17 7.06l7.05 8.28h16.467l-12.402-14.572c-1.766-2.071-8.07-6.073-10.137-4.309"/><path fill="#b58360" d="m13.275 53.719c-1.1-1.291-2.654-4.439-3.17-7.06l-.965.82c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h5.295l-7.05-8.281"/><path fill="#ff8736" d="m21.07 32.4c3.434 4.748 7.01 4.559 10.01 2.387 3-2.172 4.303-5.506.871-10.252-3.436-4.748-9.971-8.656-12.975-6.484-3 2.172-1.337 9.603 2.096 14.349"/><path fill="#ffb77b" d="m27.613 27.346c3.074 4.252 2.992 5.762 3.992 5.04 1-.725 2.311-3.121-.764-7.373s-8.813-7.143-9.813-6.42c-1 .724 3.509 4.504 6.585 8.756"/><path fill="#ff8736" d="m43.932 28.602c2.881 4.791 6.293 4.896 9.322 3.074 3.03-1.824 4.535-4.887 1.652-9.676-2.883-4.791-8.783-9.03-11.813-7.209-3.03 1.824-2.044 9.02.839 13.811"/><path fill="#ffb77b" d="m50.557 24.322c2.582 4.289 2.381 5.717 3.391 5.111 1.012-.609 2.447-2.783-.135-7.07-2.58-4.289-7.801-7.5-8.813-6.893-1.01.608 2.975 4.565 5.557 8.854"/><path fill="#ff8736" d="m12.01 55.56c3.623 4.256 7.01 3.807 9.699 1.516 2.693-2.293 3.678-5.561.057-9.816-3.623-4.258-10.135-7.48-12.83-5.189-2.694 2.291-.551 9.233 3.074 13.489"/><path fill="#ffb77b" d="m17.848 50.26c3.246 3.813 3.281 5.254 4.18 4.492.896-.768 1.961-3.145-1.283-6.957-3.246-3.811-8.92-6.131-9.818-5.367-.896.765 3.677 4.02 6.921 7.832"/><path fill="#ff8736" d="m21.33 27.516c0 0-1.258-.756-2.963-2.309.35-.189.668-.416.941-.688 0 0-7.871-5.629-9.813-17.791 0 0-3.904 8.453-3.893 15.732.012 8.379 8.912 11.01 12.133 7.787 0 0-.66-.473-1.641-1.434 2.074.154 4.02-.276 5.236-1.297"/><path fill="#d8681d" d="m22.13 26.846c0 0-2.031-.082-3.736-1.633 0 0 1.504.131 2.066-.713 0 0-8.996-5.605-10.938-17.766 0 0-.582 1.264-1.293 3.225 1.729 11.541 8.744 14.496 8.744 14.496-.273.273-5.04-.893-5.04-.893 1.527 2.309 7.328 3.619 7.328 3.619-4.854 1.107-9.04-.6-9.04-.6.979 2.512 5.01 3.705 5.01 3.705s-1.246 1.051-3.396.939c2.258.68 4.582.367 5.924-.973 0 0-.66-.473-1.641-1.434 2.072.155 4.789-.271 6.01-1.972"/><path fill="#454749" d="m7.02 2h4.523v11.527h-4.523z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 35.1c-1.7-2.3-4.2-9.7-1.9-11.4l.7-.5c.4 2.7 1.7 6 2.7 7.4l22.7 31.4h13.6v-4.3l-23.7-32.8c-1.7-2.3-7.9-7-10.2-5.3l-5.7 4.1c-2.4 1.7.1 9.1 1.8 11.4l19.4 26.9-19.4-26.9" fill="#d6a57c"/><path d="m19.4 23.2l-.7.5c-2.3 1.7.2 9.1 1.9 11.4l19.5 26.9h4.7l-22.7-31.3c-1-1.4-2.3-4.7-2.7-7.5" fill="#b58360"/><path d="m48.2 16.7l-5.8 3.5c-2.3 1.4-.5 8.7.9 11l15.1 25.2-15.1-25.3c-1.4-2.3-3.2-9.6-.9-11l.4-.3c.2 2.5 1.1 5.4 1.9 6.8l13.6 22.6v-25.1l-.9-1.5c-1.3-2.3-6.9-7.3-9.2-5.9" fill="#d6a57c"/><path d="m42.8 19.9l-.4.3c-2.3 1.4-.5 8.7.9 11l15.1 25.1v-7l-13.6-22.6c-.8-1.3-1.8-4.3-2-6.8" fill="#b58360"/><path d="m14.3 43.1l-5.1 4.4c-2.1 1.8.9 8.6 2.6 10.7l3.2 3.8-3.3-3.8c-1.8-2.1-4.7-8.9-2.6-10.7l1-.8c.5 2.6 2.1 5.8 3.2 7.1l7 8.3h16.5l-12.4-14.7c-1.8-2-8.1-6-10.1-4.3" fill="#d6a57c"/><path d="m13.3 53.7c-1.1-1.3-2.7-4.4-3.2-7.1l-1 .8c-2.1 1.8.9 8.6 2.6 10.7l3.3 3.9h5.3l-7-8.3" fill="#b58360"/><path d="m21.1 32.4c3.4 4.7 7 4.6 10 2.4 3-2.2 4.3-5.5.9-10.3-3.4-4.7-10-8.7-13-6.5-3 2.2-1.4 9.7 2.1 14.4" fill="#ff8736"/><path d="m27.6 27.3c3.1 4.3 3 5.8 4 5 1-.7 2.3-3.1-.8-7.4s-8.8-7-9.8-6.3c-1 .7 3.5 4.5 6.6 8.7" fill="#ffb77b"/><path d="m43.9 28.6c2.9 4.8 6.3 4.9 9.3 3.1 3-1.8 4.5-4.9 1.7-9.7-2.9-4.8-8.8-9-11.8-7.2-3 1.8-2.1 9 .8 13.8" fill="#ff8736"/><path d="m50.6 24.3c2.6 4.3 2.4 5.7 3.4 5.1 1-.6 2.4-2.8-.1-7.1-2.6-4.3-7.8-7.5-8.8-6.9-1.1.7 2.9 4.6 5.5 8.9" fill="#ffb77b"/><path d="m12 55.6c3.6 4.3 7 3.8 9.7 1.5 2.7-2.3 3.7-5.6.1-9.8-3.6-4.3-10.1-7.5-12.8-5.2-2.8 2.3-.6 9.2 3 13.5" fill="#ff8736"/><path d="m17.8 50.3c3.2 3.8 3.3 5.3 4.2 4.5.9-.8 2-3.1-1.3-7-3.2-3.8-8.9-6.1-9.8-5.4-.9.8 3.7 4 6.9 7.9" fill="#ffb77b"/><path d="m21.3 27.5c0 0-1.3-.8-3-2.3.4-.2.7-.4.9-.7 0 0-7.9-5.6-9.8-17.8 0 0-3.9 8.5-3.9 15.7 0 8.4 8.9 11 12.1 7.8 0 0-.7-.5-1.6-1.4 2.2.2 4.1-.3 5.3-1.3" fill="#ff8736"/><path d="m22.1 26.8c0 0-2-.1-3.7-1.6 0 0 1.5.1 2.1-.7 0 0-9-5.6-10.9-17.8 0 0-.6 1.3-1.3 3.2 1.7 11.6 8.7 14.6 8.7 14.6-.3.3-5-.9-5-.9 1.5 2.3 7.3 3.6 7.3 3.6-4.9 1.1-9-.6-9-.6 1 2.5 5 3.7 5 3.7s-1.2 1.1-3.4.9c2.3.7 4.6.4 5.9-1 0 0-.7-.5-1.6-1.4 2 .2 4.7-.3 5.9-2" fill="#d8681d"/><path fill="#454749" d="m7 2h4.5v11.5h-4.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fe.svg
index 8f37e90..7593669 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m20.615 35.12c-1.672-2.309-4.178-9.721-1.867-11.393l.672-.484c.363 2.736 1.68 6.02 2.695 7.418l22.662 31.342h13.619v-4.27l-23.716-32.798c-1.674-2.311-7.926-7.01-10.236-5.342l-5.717 4.135c-2.311 1.672.195 9.08 1.867 11.393l19.437 26.882h.021l-19.437-26.883"/><path fill="#935e3e" d="m19.42 23.24l-.672.484c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h4.725l-22.663-31.342c-1.015-1.402-2.332-4.681-2.695-7.418"/><path fill="#b47d56" d="m48.17 16.693l-5.77 3.471c-2.332 1.404-.543 8.652.859 10.982l15.14 25.16v-.02l-15.13-25.14c-1.402-2.33-3.189-9.578-.857-10.982l.422-.252c.215 2.527 1.137 5.447 1.936 6.775l13.627 22.646v-25.19l-.928-1.543c-1.406-2.33-6.972-7.305-9.302-5.903"/><path fill="#935e3e" d="m42.834 19.912l-.422.252c-2.332 1.404-.545 8.652.857 10.982l15.13 25.14v-6.953l-13.626-22.646c-.799-1.329-1.721-4.249-1.936-6.776"/><path fill="#b47d56" d="m14.252 43.12l-5.129 4.363c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h.018l-3.254-3.822c-1.764-2.072-4.705-8.932-2.635-10.695l.965-.82c.516 2.617 2.07 5.766 3.17 7.06l7.05 8.28h16.467l-12.402-14.572c-1.766-2.071-8.07-6.073-10.137-4.309"/><path fill="#935e3e" d="m13.275 53.719c-1.1-1.291-2.654-4.439-3.17-7.06l-.965.82c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h5.295l-7.05-8.281"/><path fill="#ff8736" d="m21.07 32.4c3.434 4.748 7.01 4.559 10.01 2.387 3-2.172 4.303-5.506.871-10.252-3.436-4.748-9.971-8.656-12.975-6.484-3 2.172-1.337 9.603 2.096 14.349"/><path fill="#ffb77b" d="m27.613 27.346c3.074 4.252 2.992 5.762 3.992 5.04 1-.725 2.311-3.121-.764-7.373s-8.813-7.143-9.813-6.42c-1 .724 3.509 4.504 6.585 8.756"/><path fill="#ff8736" d="m43.932 28.602c2.881 4.791 6.293 4.896 9.322 3.074 3.03-1.824 4.535-4.887 1.652-9.676-2.883-4.791-8.783-9.03-11.813-7.209-3.03 1.824-2.044 9.02.839 13.811"/><path fill="#ffb77b" d="m50.557 24.322c2.582 4.289 2.381 5.717 3.391 5.111 1.012-.609 2.447-2.783-.135-7.07-2.58-4.289-7.801-7.5-8.813-6.893-1.01.608 2.975 4.565 5.557 8.854"/><path fill="#ff8736" d="m12.01 55.56c3.623 4.256 7.01 3.807 9.699 1.516 2.693-2.293 3.678-5.561.057-9.816-3.623-4.258-10.135-7.48-12.83-5.189-2.694 2.291-.551 9.233 3.074 13.489"/><path fill="#ffb77b" d="m17.848 50.26c3.246 3.813 3.281 5.254 4.18 4.492.896-.768 1.961-3.145-1.283-6.957-3.246-3.811-8.92-6.131-9.818-5.367-.896.765 3.677 4.02 6.921 7.832"/><path fill="#ff8736" d="m21.33 27.516c0 0-1.258-.756-2.963-2.309.35-.189.668-.416.941-.688 0 0-7.871-5.629-9.813-17.791 0 0-3.904 8.453-3.893 15.732.012 8.379 8.912 11.01 12.133 7.787 0 0-.66-.473-1.641-1.434 2.074.154 4.02-.276 5.236-1.297"/><path fill="#d8681d" d="m22.13 26.846c0 0-2.031-.082-3.736-1.633 0 0 1.504.131 2.066-.713 0 0-8.996-5.605-10.938-17.766 0 0-.582 1.264-1.293 3.225 1.729 11.541 8.744 14.496 8.744 14.496-.273.273-5.04-.893-5.04-.893 1.527 2.309 7.328 3.619 7.328 3.619-4.854 1.107-9.04-.6-9.04-.6.979 2.512 5.01 3.705 5.01 3.705s-1.246 1.051-3.396.939c2.258.68 4.582.367 5.924-.973 0 0-.66-.473-1.641-1.434 2.072.155 4.789-.271 6.01-1.972"/><path fill="#454749" d="m7.02 2h4.523v11.527h-4.523z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 35.1c-1.7-2.3-4.2-9.7-1.9-11.4l.7-.5c.4 2.7 1.7 6 2.7 7.4l22.7 31.4h13.6v-4.3l-23.7-32.8c-1.7-2.3-7.9-7-10.2-5.3l-5.7 4.1c-2.4 1.7.1 9.1 1.8 11.4l19.4 26.9-19.4-26.9" fill="#b47d56"/><path d="m19.4 23.2l-.7.5c-2.3 1.7.2 9.1 1.9 11.4l19.5 26.9h4.7l-22.7-31.3c-1-1.4-2.3-4.7-2.7-7.5" fill="#935e3e"/><path d="m48.2 16.7l-5.8 3.5c-2.3 1.4-.5 8.7.9 11l15.1 25.2-15.1-25.3c-1.4-2.3-3.2-9.6-.9-11l.4-.3c.2 2.5 1.1 5.4 1.9 6.8l13.6 22.6v-25.1l-.9-1.5c-1.3-2.3-6.9-7.3-9.2-5.9" fill="#b47d56"/><path d="m42.8 19.9l-.4.3c-2.3 1.4-.5 8.7.9 11l15.1 25.1v-7l-13.6-22.6c-.8-1.3-1.8-4.3-2-6.8" fill="#935e3e"/><path d="m14.3 43.1l-5.1 4.4c-2.1 1.8.9 8.6 2.6 10.7l3.2 3.8-3.3-3.8c-1.8-2.1-4.7-8.9-2.6-10.7l1-.8c.5 2.6 2.1 5.8 3.2 7.1l7 8.3h16.5l-12.4-14.7c-1.8-2-8.1-6-10.1-4.3" fill="#b47d56"/><path d="m13.3 53.7c-1.1-1.3-2.7-4.4-3.2-7.1l-1 .8c-2.1 1.8.9 8.6 2.6 10.7l3.3 3.9h5.3l-7-8.3" fill="#935e3e"/><path d="m21.1 32.4c3.4 4.7 7 4.6 10 2.4 3-2.2 4.3-5.5.9-10.3-3.4-4.7-10-8.7-13-6.5-3 2.2-1.4 9.7 2.1 14.4" fill="#ff8736"/><path d="m27.6 27.3c3.1 4.3 3 5.8 4 5 1-.7 2.3-3.1-.8-7.4s-8.8-7-9.8-6.3c-1 .7 3.5 4.5 6.6 8.7" fill="#ffb77b"/><path d="m43.9 28.6c2.9 4.8 6.3 4.9 9.3 3.1 3-1.8 4.5-4.9 1.7-9.7-2.9-4.8-8.8-9-11.8-7.2-3 1.8-2.1 9 .8 13.8" fill="#ff8736"/><path d="m50.6 24.3c2.6 4.3 2.4 5.7 3.4 5.1 1-.6 2.4-2.8-.1-7.1-2.6-4.3-7.8-7.5-8.8-6.9-1.1.7 2.9 4.6 5.5 8.9" fill="#ffb77b"/><path d="m12 55.6c3.6 4.3 7 3.8 9.7 1.5 2.7-2.3 3.7-5.6.1-9.8-3.6-4.3-10.1-7.5-12.8-5.2-2.8 2.3-.6 9.2 3 13.5" fill="#ff8736"/><path d="m17.8 50.3c3.2 3.8 3.3 5.3 4.2 4.5.9-.8 2-3.1-1.3-7-3.2-3.8-8.9-6.1-9.8-5.4-.9.8 3.7 4 6.9 7.9" fill="#ffb77b"/><path d="m21.3 27.5c0 0-1.3-.8-3-2.3.4-.2.7-.4.9-.7 0 0-7.9-5.6-9.8-17.8 0 0-3.9 8.5-3.9 15.7 0 8.4 8.9 11 12.1 7.8 0 0-.7-.5-1.6-1.4 2.2.2 4.1-.3 5.3-1.3" fill="#ff8736"/><path d="m22.1 26.8c0 0-2-.1-3.7-1.6 0 0 1.5.1 2.1-.7 0 0-9-5.6-10.9-17.8 0 0-.6 1.3-1.3 3.2 1.7 11.6 8.7 14.6 8.7 14.6-.3.3-5-.9-5-.9 1.5 2.3 7.3 3.6 7.3 3.6-4.9 1.1-9-.6-9-.6 1 2.5 5 3.7 5 3.7s-1.2 1.1-3.4.9c2.3.7 4.6.4 5.9-1 0 0-.7-.5-1.6-1.4 2 .2 4.7-.3 5.9-2" fill="#d8681d"/><path fill="#454749" d="m7 2h4.5v11.5h-4.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3ff.svg
index 83afeb0..36a0f84 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f485-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m20.615 35.12c-1.672-2.309-4.178-9.721-1.867-11.393l.672-.484c.363 2.736 1.68 6.02 2.695 7.418l22.662 31.342h13.619v-4.27l-23.716-32.798c-1.674-2.311-7.926-7.01-10.236-5.342l-5.717 4.135c-2.311 1.672.195 9.08 1.867 11.393l19.437 26.882h.021l-19.437-26.883"/><path fill="#705041" d="m19.42 23.24l-.672.484c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h4.725l-22.663-31.342c-1.015-1.402-2.332-4.681-2.695-7.418"/><path fill="#8a6859" d="m48.17 16.693l-5.77 3.471c-2.332 1.404-.543 8.652.859 10.982l15.14 25.16v-.02l-15.13-25.14c-1.402-2.33-3.189-9.578-.857-10.982l.422-.252c.215 2.527 1.137 5.447 1.936 6.775l13.627 22.646v-25.19l-.928-1.543c-1.406-2.33-6.972-7.305-9.302-5.903"/><path fill="#705041" d="m42.834 19.912l-.422.252c-2.332 1.404-.545 8.652.857 10.982l15.13 25.14v-6.953l-13.626-22.646c-.799-1.329-1.721-4.249-1.936-6.776"/><path fill="#8a6859" d="m14.252 43.12l-5.129 4.363c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h.018l-3.254-3.822c-1.764-2.072-4.705-8.932-2.635-10.695l.965-.82c.516 2.617 2.07 5.766 3.17 7.06l7.05 8.28h16.467l-12.402-14.572c-1.766-2.071-8.07-6.073-10.137-4.309"/><path fill="#705041" d="m13.275 53.719c-1.1-1.291-2.654-4.439-3.17-7.06l-.965.82c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.823h5.295l-7.05-8.281"/><path fill="#ff8736" d="m21.07 32.4c3.434 4.748 7.01 4.559 10.01 2.387 3-2.172 4.303-5.506.871-10.252-3.436-4.748-9.971-8.656-12.975-6.484-3 2.172-1.337 9.603 2.096 14.349"/><path fill="#ffb77b" d="m27.613 27.346c3.074 4.252 2.992 5.762 3.992 5.04 1-.725 2.311-3.121-.764-7.373s-8.813-7.143-9.813-6.42c-1 .724 3.509 4.504 6.585 8.756"/><path fill="#ff8736" d="m43.932 28.602c2.881 4.791 6.293 4.896 9.322 3.074 3.03-1.824 4.535-4.887 1.652-9.676-2.883-4.791-8.783-9.03-11.813-7.209-3.03 1.824-2.044 9.02.839 13.811"/><path fill="#ffb77b" d="m50.557 24.322c2.582 4.289 2.381 5.717 3.391 5.111 1.012-.609 2.447-2.783-.135-7.07-2.58-4.289-7.801-7.5-8.813-6.893-1.01.608 2.975 4.565 5.557 8.854"/><path fill="#ff8736" d="m12.01 55.56c3.623 4.256 7.01 3.807 9.699 1.516 2.693-2.293 3.678-5.561.057-9.816-3.623-4.258-10.135-7.48-12.83-5.189-2.694 2.291-.551 9.233 3.074 13.489"/><path fill="#ffb77b" d="m17.848 50.26c3.246 3.813 3.281 5.254 4.18 4.492.896-.768 1.961-3.145-1.283-6.957-3.246-3.811-8.92-6.131-9.818-5.367-.896.765 3.677 4.02 6.921 7.832"/><path fill="#ff8736" d="m21.33 27.516c0 0-1.258-.756-2.963-2.309.35-.189.668-.416.941-.688 0 0-7.871-5.629-9.813-17.791 0 0-3.904 8.453-3.893 15.732.012 8.379 8.912 11.01 12.133 7.787 0 0-.66-.473-1.641-1.434 2.074.154 4.02-.276 5.236-1.297"/><path fill="#d8681d" d="m22.13 26.846c0 0-2.031-.082-3.736-1.633 0 0 1.504.131 2.066-.713 0 0-8.996-5.605-10.938-17.766 0 0-.582 1.264-1.293 3.225 1.729 11.541 8.744 14.496 8.744 14.496-.273.273-5.04-.893-5.04-.893 1.527 2.309 7.328 3.619 7.328 3.619-4.854 1.107-9.04-.6-9.04-.6.979 2.512 5.01 3.705 5.01 3.705s-1.246 1.051-3.396.939c2.258.68 4.582.367 5.924-.973 0 0-.66-.473-1.641-1.434 2.072.155 4.789-.271 6.01-1.972"/><path fill="#454749" d="m7.02 2h4.523v11.527h-4.523z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 35.1c-1.7-2.3-4.2-9.7-1.9-11.4l.7-.5c.4 2.7 1.7 6 2.7 7.4l22.7 31.4h13.6v-4.3l-23.7-32.8c-1.7-2.3-7.9-7-10.2-5.3l-5.7 4.1c-2.4 1.7.1 9.1 1.8 11.4l19.4 26.9-19.4-26.9" fill="#8a6859"/><path d="m19.4 23.2l-.7.5c-2.3 1.7.2 9.1 1.9 11.4l19.5 26.9h4.7l-22.7-31.3c-1-1.4-2.3-4.7-2.7-7.5" fill="#705041"/><path d="m48.2 16.7l-5.8 3.5c-2.3 1.4-.5 8.7.9 11l15.1 25.2-15.1-25.3c-1.4-2.3-3.2-9.6-.9-11l.4-.3c.2 2.5 1.1 5.4 1.9 6.8l13.6 22.6v-25.1l-.9-1.5c-1.3-2.3-6.9-7.3-9.2-5.9" fill="#8a6859"/><path d="m42.8 19.9l-.4.3c-2.3 1.4-.5 8.7.9 11l15.1 25.1v-7l-13.6-22.6c-.8-1.3-1.8-4.3-2-6.8" fill="#705041"/><path d="m14.3 43.1l-5.1 4.4c-2.1 1.8.9 8.6 2.6 10.7l3.2 3.8-3.3-3.8c-1.8-2.1-4.7-8.9-2.6-10.7l1-.8c.5 2.6 2.1 5.8 3.2 7.1l7 8.3h16.5l-12.4-14.7c-1.8-2-8.1-6-10.1-4.3" fill="#8a6859"/><path d="m13.3 53.7c-1.1-1.3-2.7-4.4-3.2-7.1l-1 .8c-2.1 1.8.9 8.6 2.6 10.7l3.3 3.9h5.3l-7-8.3" fill="#705041"/><path d="m21.1 32.4c3.4 4.7 7 4.6 10 2.4 3-2.2 4.3-5.5.9-10.3-3.4-4.7-10-8.7-13-6.5-3 2.2-1.4 9.7 2.1 14.4" fill="#ff8736"/><path d="m27.6 27.3c3.1 4.3 3 5.8 4 5 1-.7 2.3-3.1-.8-7.4s-8.8-7-9.8-6.3c-1 .7 3.5 4.5 6.6 8.7" fill="#ffb77b"/><path d="m43.9 28.6c2.9 4.8 6.3 4.9 9.3 3.1 3-1.8 4.5-4.9 1.7-9.7-2.9-4.8-8.8-9-11.8-7.2-3 1.8-2.1 9 .8 13.8" fill="#ff8736"/><path d="m50.6 24.3c2.6 4.3 2.4 5.7 3.4 5.1 1-.6 2.4-2.8-.1-7.1-2.6-4.3-7.8-7.5-8.8-6.9-1.1.7 2.9 4.6 5.5 8.9" fill="#ffb77b"/><path d="m12 55.6c3.6 4.3 7 3.8 9.7 1.5 2.7-2.3 3.7-5.6.1-9.8-3.6-4.3-10.1-7.5-12.8-5.2-2.8 2.3-.6 9.2 3 13.5" fill="#ff8736"/><path d="m17.8 50.3c3.2 3.8 3.3 5.3 4.2 4.5.9-.8 2-3.1-1.3-7-3.2-3.8-8.9-6.1-9.8-5.4-.9.8 3.7 4 6.9 7.9" fill="#ffb77b"/><path d="m21.3 27.5c0 0-1.3-.8-3-2.3.4-.2.7-.4.9-.7 0 0-7.9-5.6-9.8-17.8 0 0-3.9 8.5-3.9 15.7 0 8.4 8.9 11 12.1 7.8 0 0-.7-.5-1.6-1.4 2.2.2 4.1-.3 5.3-1.3" fill="#ff8736"/><path d="m22.1 26.8c0 0-2-.1-3.7-1.6 0 0 1.5.1 2.1-.7 0 0-9-5.6-10.9-17.8 0 0-.6 1.3-1.3 3.2 1.7 11.6 8.7 14.6 8.7 14.6-.3.3-5-.9-5-.9 1.5 2.3 7.3 3.6 7.3 3.6-4.9 1.1-9-.6-9-.6 1 2.5 5 3.7 5 3.7s-1.2 1.1-3.4.9c2.3.7 4.6.4 5.9-1 0 0-.7-.5-1.6-1.4 2 .2 4.7-.3 5.9-2" fill="#d8681d"/><path fill="#454749" d="m7 2h4.5v11.5h-4.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f485.svg b/build/js/jsxc/lib/emojione/assets/svg/1f485.svg
index 144b6f6..91fd2c5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f485.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f485.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m20.615 35.06c-1.672-2.309-4.178-9.721-1.867-11.393l.672-.484c.363 2.736 1.68 6.02 2.695 7.418l22.662 31.342h13.619v-4.27l-23.716-32.799c-1.674-2.311-7.926-7.01-10.236-5.342l-5.717 4.135c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h.021l-19.438-26.883"/><path fill="#eba352" d="m19.42 23.18l-.672.484c-2.311 1.672.195 9.08 1.867 11.393l19.438 26.883h4.725l-22.663-31.342c-1.015-1.403-2.332-4.682-2.695-7.418"/><path fill="#ffdd67" d="m48.17 16.637l-5.77 3.471c-2.332 1.404-.543 8.652.859 10.982l15.14 25.16v-.02l-15.13-25.14c-1.402-2.33-3.189-9.578-.857-10.982l.422-.252c.215 2.527 1.137 5.447 1.936 6.775l13.627 22.646v-25.2l-.928-1.543c-1.406-2.33-6.972-7.305-9.302-5.902"/><path fill="#eba352" d="m42.834 19.855l-.422.252c-2.332 1.404-.545 8.652.857 10.982l15.13 25.14v-6.953l-13.626-22.646c-.799-1.328-1.721-4.248-1.936-6.776"/><path fill="#ffdd67" d="m14.252 43.06l-5.129 4.363c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.822h.018l-3.254-3.822c-1.764-2.072-4.705-8.932-2.635-10.695l.965-.82c.516 2.617 2.07 5.766 3.17 7.06l7.05 8.281h16.467l-12.403-14.573c-1.766-2.07-8.07-6.072-10.137-4.308"/><path fill="#eba352" d="m13.275 53.662c-1.1-1.291-2.654-4.439-3.17-7.06l-.965.82c-2.07 1.764.871 8.623 2.635 10.695l3.254 3.822h5.295l-7.05-8.28"/><path fill="#ff8736" d="m21.07 32.34c3.434 4.748 7.01 4.559 10.01 2.387 3-2.172 4.303-5.506.871-10.252-3.436-4.748-9.971-8.656-12.975-6.484-3 2.171-1.337 9.603 2.096 14.349"/><path fill="#ffb77b" d="m27.613 27.29c3.074 4.252 2.992 5.762 3.992 5.04 1-.725 2.311-3.121-.764-7.373s-8.813-7.143-9.813-6.42c-1 .725 3.509 4.504 6.585 8.756"/><path fill="#ff8736" d="m43.932 28.545c2.881 4.791 6.293 4.896 9.322 3.074 3.03-1.824 4.535-4.887 1.652-9.676-2.883-4.791-8.783-9.03-11.813-7.209-3.03 1.825-2.044 9.02.839 13.811"/><path fill="#ffb77b" d="m50.557 24.266c2.582 4.289 2.381 5.717 3.391 5.111 1.012-.609 2.447-2.783-.135-7.07-2.58-4.289-7.801-7.5-8.813-6.893-1.01.608 2.975 4.565 5.557 8.854"/><path fill="#ff8736" d="m12.01 55.5c3.623 4.256 7.01 3.807 9.699 1.516 2.693-2.293 3.678-5.561.057-9.816-3.623-4.258-10.135-7.48-12.83-5.189-2.694 2.292-.551 9.233 3.074 13.489"/><path fill="#ffb77b" d="m17.848 50.2c3.246 3.813 3.281 5.254 4.18 4.492.896-.768 1.961-3.145-1.283-6.957-3.246-3.811-8.92-6.131-9.818-5.367-.896.766 3.677 4.02 6.921 7.832"/><path fill="#ff8736" d="m21.33 27.459c0 0-1.258-.756-2.963-2.309.35-.189.668-.416.941-.688 0 0-7.871-5.629-9.813-17.791 0 0-3.904 8.453-3.893 15.732.012 8.379 8.912 11.01 12.133 7.787 0 0-.66-.473-1.641-1.434 2.074.154 4.02-.276 5.236-1.297"/><path fill="#d8681d" d="m22.13 26.789c0 0-2.031-.082-3.736-1.633 0 0 1.504.131 2.066-.713 0 0-8.996-5.605-10.938-17.766 0 0-.582 1.264-1.293 3.225 1.729 11.541 8.744 14.496 8.744 14.496-.273.273-5.04-.893-5.04-.893 1.527 2.309 7.328 3.619 7.328 3.619-4.854 1.107-9.04-.6-9.04-.6.979 2.512 5.01 3.705 5.01 3.705s-1.246 1.051-3.396.939c2.258.68 4.582.367 5.924-.973 0 0-.66-.473-1.641-1.434 2.072.155 4.789-.271 6.01-1.972"/><path fill="#454749" d="m7.02 1.943h4.523v11.527h-4.523z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 35.1c-1.7-2.3-4.2-9.7-1.9-11.4l.7-.5c.4 2.7 1.7 6 2.7 7.4l22.7 31.3h13.6v-4.3l-23.7-32.7c-1.7-2.3-7.9-7-10.2-5.3l-5.7 4.1c-2.4 1.6.1 9.1 1.8 11.4l19.4 26.8-19.4-26.8" fill="#ffdd67"/><path d="m19.4 23.2l-.7.5c-2.3 1.7.2 9.1 1.9 11.4l19.4 26.9h4.7l-22.6-31.4c-1-1.4-2.3-4.7-2.7-7.4" fill="#eba352"/><path d="m48.2 16.6l-5.8 3.5c-2.3 1.4-.5 8.7.9 11l15.1 25.2-15.1-25.2c-1.4-2.3-3.2-9.6-.9-11l.4-.3c.2 2.5 1.1 5.4 1.9 6.8l13.6 22.6v-25.1l-.9-1.5c-1.3-2.4-6.9-7.4-9.2-6" fill="#ffdd67"/><path d="m42.8 19.9l-.4.3c-2.3 1.4-.5 8.7.9 11l15.1 25.1v-7l-13.6-22.7c-.8-1.3-1.8-4.2-2-6.7" fill="#eba352"/><path d="m14.3 43.1l-5.1 4.4c-2.1 1.7.8 8.5 2.6 10.6l3.3 3.8-3.3-3.8c-1.8-2.1-4.7-8.9-2.7-10.7l1-.8c.5 2.6 2.1 5.8 3.2 7.1l7 8.3h16.5l-12.4-14.6c-1.8-2.1-8.1-6.1-10.1-4.3" fill="#ffdd67"/><path d="m13.3 53.7c-1.1-1.3-2.7-4.4-3.2-7.1l-1 .8c-2 1.8.9 8.6 2.7 10.7l3.3 3.8h5.3l-7.1-8.2" fill="#eba352"/><path d="m21.1 32.3c3.4 4.7 7 4.6 10 2.4 3-2.2 4.3-5.5.9-10.3-3.4-4.7-10-8.7-13-6.5-3 2.3-1.4 9.7 2.1 14.4" fill="#ff8736"/><path d="m27.6 27.3c3.1 4.3 3 5.8 4 5 1-.7 2.3-3.1-.8-7.4s-8.8-7.1-9.8-6.4c-1 .8 3.5 4.5 6.6 8.8" fill="#ffb77b"/><path d="m43.9 28.5c2.9 4.8 6.3 4.9 9.3 3.1 3-1.8 4.5-4.9 1.7-9.7-2.9-4.8-8.8-9-11.8-7.2-3 1.9-2.1 9.1.8 13.8" fill="#ff8736"/><path d="m50.6 24.3c2.6 4.3 2.4 5.7 3.4 5.1 1-.6 2.4-2.8-.1-7.1-2.7-4.3-7.9-7.5-8.9-6.9-1 .6 3 4.6 5.6 8.9" fill="#ffb77b"/><path d="m12 55.5c3.6 4.3 7 3.8 9.7 1.5 2.7-2.3 3.7-5.6.1-9.8-3.6-4.3-10.1-7.5-12.8-5.2-2.8 2.3-.6 9.2 3 13.5" fill="#ff8736"/><path d="m17.8 50.2c3.2 3.8 3.3 5.3 4.2 4.5.9-.8 2-3.1-1.3-7-3.2-3.8-8.9-6.1-9.8-5.4-.9.8 3.7 4.1 6.9 7.9" fill="#ffb77b"/><path d="m21.3 27.5c0 0-1.3-.8-3-2.3.4-.2.7-.4.9-.7 0 0-7.9-5.6-9.8-17.8 0 0-3.9 8.5-3.9 15.7 0 8.4 8.9 11 12.1 7.8 0 0-.7-.5-1.6-1.4 2.2.1 4.1-.3 5.3-1.3" fill="#ff8736"/><path d="m22.1 26.8c0 0-2-.1-3.7-1.6 0 0 1.5.1 2.1-.7 0 0-9-5.6-10.9-17.8 0 0-.6 1.3-1.3 3.2 1.7 11.5 8.7 14.5 8.7 14.5-.3.3-5-.9-5-.9 1.5 2.3 7.3 3.6 7.3 3.6-4.9 1.1-9-.6-9-.6 1 2.5 5 3.7 5 3.7s-1.2 1.1-3.4.9c2.3.7 4.6.4 5.9-1 0 0-.7-.5-1.6-1.4 2 .2 4.7-.2 5.9-1.9" fill="#d8681d"/><path fill="#454749" d="m7 1.9h4.5v11.5h-4.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fb.svg
index 1215d4a..dc1aef5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fb.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="M32,4c-14.177,0-21.919,9.039-21.919,20.945v30.43H53.92v-30.43c0-17.697-11.867-17.367-11.867-17.367
- S41.16,4,32,4z"/><path fill="#b386e2" d="m41.953 51.05v-7.141h-19.91v7.141c-12.517.386-15.04 2.407-15.04 12.947h49.999c0-10.539-2.533-12.56-15.05-12.947"/><path fill="#ffe1bd" d="m16.368 34.904c0 0-3.154-.814-3.154-5.527 0-3.732 2.379-4.372 2.379-4.372 8.527 0 22.421-11.18 22.421-11.18s5.252 9.87 10.318 11.18c0 0 2.455.457 2.455 4.372 0 4.712-3.275 5.527-3.275 5.527-.041 7.108-9.668 15.682-15.512 15.682-5.845 0-15.632-8.574-15.632-15.682"/><path fill="#e6b796" d="m35.914 38.15c0 1.549-3.183 1.998-3.914 1.998s-3.914-.549-3.914-2.098c0 .001 7.828-.673 7.828.1"/><path fill="#f09985" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.098-.369-1.926-.438-2.494-.295-1.697.416-4.268.213-4.268.213 1.871 1.883 2.76 4.455 7.05 4.455 4.287 0 5.175-2.572 7.04-4.455.001 0-2.569.203-4.263-.213"/><path fill="#d47f6c" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.098-.369-1.926-.438-2.494-.295-1.666.408-4.273.211-4.268.213 2.82.51 3.172 1.963 7.05 1.963 3.873 0 4.226-1.453 7.04-1.963.011-.002-2.601.195-4.263-.213"/><g fill="#664e27"><path d="m28.11 29.772c-.035 2.123-1.814 3.791-4.01 3.791-2.195 0-3.975-1.667-4.01-3.791 1.078.885 2.477 1.422 4.01 1.422 1.531 0 2.93-.537 4.01-1.422"/><path d="m43.906 29.772c-.037 2.123-1.818 3.791-4.01 3.791-2.195 0-3.975-1.667-4.01-3.791 1.078.885 2.479 1.422 4.01 1.422 1.53 0 2.928-.537 4.01-1.422"/></g><path fill="#ffe1bd" d="m18.03 18.2c-.951-2.311-1.211-4.256-1.279-5.797-.023-.52-.216-.945-.541-1.256-.004-.006-.006-.013-.01-.019l-4.363-6.371c-1.221-2.104-8.04-2.234-8.32 2.02l-.374 11.351c-.239 3.629 3.642 6.979 4.21 6.531l-.491 6.094c-.076 1.143.468 2.166 1.729 2.232h.021c1.262.068 2.348-.805 2.424-1.949l1.013-15.1.891.816c0 0 .759 3.274 3.118 3.609 1.632.234 2.326-1.303 1.972-2.159"/><path fill="#e6b796" d="m8.208 19.952c.078-1.143-.922-1.665-1-.522l-.266 3.95c-1.285-1.22-3.081-3.705-2.914-6.152l.758-11.337c.059-.861.385-1.539.877-2.063-1.164.523-2.049 1.469-2.148 2.944l-.762 11.337c-.308 3.97 3.333 6.843 4.048 7.368l-.359 5.332c-.063.994.658 1.867 1.68 2.119-.449-.406-.719-.979-.676-1.598l.762-11.378"/><path fill="#428bc1" d="M2.726,6.889c0,0,8.08,0.35,9.975-2.203L12.118,0H2.001L2.726,6.889z"/><path fill="#e6b796" d="m13.884 17.646l-.096-.424c0 0-1.271-1.563-1.618-3.119l-.123 1.828c.355.563.663.939.663.939l.098.426c.213.875.855 2.633 3.066 3.03-1.355-.673-1.814-1.968-1.99-2.681"/><path fill="#ffe1bd" d="m45.973 18.2c.951-2.311 1.211-4.256 1.279-5.797.023-.52.217-.945.541-1.256.004-.006.006-.013.01-.019l4.363-6.371c1.221-2.104 8.04-2.235 8.32 2.02l.375 11.351c.238 3.629-3.643 6.979-4.211 6.531l.492 6.094c.076 1.143-.469 2.166-1.73 2.232h-.021c-1.262.068-2.348-.805-2.424-1.949l-1.012-15.1-.891.816c0 0-.76 3.274-3.119 3.609-1.632.234-2.326-1.303-1.972-2.159"/><path fill="#e6b796" d="m55.793 19.952c-.078-1.143.922-1.665 1-.522l.266 3.951c1.285-1.22 3.081-3.705 2.914-6.152l-.758-11.338c-.059-.861-.385-1.539-.877-2.063 1.164.522 2.049 1.469 2.148 2.944l.762 11.337c.309 3.97-3.332 6.843-4.048 7.368l.358 5.332c.063.994-.658 1.867-1.68 2.119.449-.406.719-.979.676-1.598l-.761-11.378"/><path fill="#428bc1" d="M61.275,6.889c0,0-8.08,0.35-9.975-2.203L51.883,0H62L61.275,6.889z"/><path fill="#e6b796" d="m50.12 17.646l.096-.424c0 0 1.271-1.563 1.619-3.119l.123 1.828c-.355.563-.664.939-.664.939l-.098.426c-.213.875-.855 2.633-3.066 3.03 1.355-.673 1.814-1.968 1.99-2.681"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 5.8c-13.7 0-21.2 8.5-21.2 19.6v28.5h42.4v-28.5c0-16.6-11.5-16.3-11.5-16.3s-.8-3.3-9.7-3.3" fill="#594640"/><path d="m41.6 49.9v-6.7h-19.2v6.7c-12.1.3-14.6 2.2-14.6 12.1h48.3c.1-9.9-2.4-11.8-14.5-12.1" fill="#b386e2"/><g fill="#ffe1bd"><path d="m16.9 34.7c0 0-3-.8-3-5.2 0-3.5 2.3-4.1 2.3-4.1 8.2 0 21.7-10.5 21.7-10.5s5.1 9.3 10 10.5c0 0 2.4.4 2.4 4.1 0 4.4-3.2 5.2-3.2 5.2 0 6.7-9.3 14.7-15 14.7-5.8 0-15.2-8-15.2-14.7"/><path d="m18.5 19.1c-.9-2.2-1.2-4-1.2-5.4 0-.5-.2-.9-.5-1.2l-4.2-6c-1.2-2-7.8-2.1-8 1.9l-.5 10.6c-.2 3.4 3.5 6.5 4.1 6.1l-.5 5.7c-.1 1.1.5 2 1.7 2.1 1.2.1 2.3-.8 2.3-1.8l1-14.2.9.8c0 0 .7 3.1 3 3.4 1.6.2 2.2-1.2 1.9-2"/></g><path d="m9 20.7c.1-1.1-.9-1.6-1-.5l-.3 3.7c-1.2-1.1-3-3.5-2.8-5.8l.8-10.6c.1-.8.4-1.4.8-1.9-1.1.5-1.9 1.4-2 2.7l-.8 10.7c-.3 3.7 3.2 6.4 3.9 6.9l-.3 5c-.1.9.6 1.8 1.6 2-.4-.4-.7-.9-.7-1.5l.8-10.7" fill="#e6b796"/><path d="m3.7 8.5c0 0 7.8.3 9.6-2.1l-.5-4.4h-9.8l.7 6.5" fill="#428bc1"/><path d="m14.5 18.5l-.1-.4c0 0-1.2-1.5-1.6-2.9l-.1 1.7c.3.5.6.9.6.9l.1.4c.2.8.8 2.5 3 2.8-1.3-.6-1.7-1.8-1.9-2.5" fill="#e6b796"/><path d="m45.5 19.1c.9-2.2 1.2-4 1.2-5.4 0-.5.2-.9.5-1.2l4.2-6c1.2-2 7.8-2.1 8 1.9l.5 10.6c.2 3.4-3.5 6.5-4.1 6.1l.5 5.7c.1 1.1-.5 2-1.7 2.1-1.2.1-2.3-.8-2.3-1.8l-1-14.2-.9.8c0 0-.7 3.1-3 3.4-1.6.2-2.2-1.2-1.9-2" fill="#ffe1bd"/><path d="m55 20.7c-.1-1.1.9-1.6 1-.5l.3 3.7c1.2-1.1 3-3.5 2.8-5.8l-.8-10.6c-.1-.8-.4-1.4-.8-1.9 1.1.5 2 1.4 2.1 2.8l.7 10.6c.3 3.7-3.2 6.4-3.9 6.9l.3 5c.1.9-.6 1.8-1.6 2 .4-.4.7-.9.7-1.5l-.8-10.7" fill="#e6b796"/><path d="m60.3 8.5c0 0-7.8.3-9.6-2.1l.5-4.4h9.8l-.7 6.5" fill="#428bc1"/><path d="m49.5 18.5l.1-.4c0 0 1.2-1.5 1.6-2.9l.1 1.7c-.3.5-.6.9-.6.9l-.1.4c-.2.8-.8 2.5-3 2.8 1.3-.6 1.7-1.8 1.9-2.5" fill="#e6b796"/><path d="m32 42.8l-7-1.1c4.2 6 9.8 6 14 0l-7 1.1" fill="#e08672"/><path d="m34.8 41.5c-2.1-.8-2.8.5-2.8.5s-.7-1.2-2.8-.5c-1.6.6-4.2.2-4.2.3 2.8.6 3.1 1.8 7 1.8s4.2-1.2 7-1.8c0 0-2.6.3-4.2-.3" fill="#b86e5d"/><path d="m32 39.6c-2.9 0-4.4-2.1-2.9-2.1 1.5 0 4.4 0 5.9 0 1.4 0-.1 2.1-3 2.1" fill="#e6b796"/><g fill="#664e27"><path d="m19.4 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/><path d="m34.7 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fc.svg
index 411e90d..ccea508 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fc.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="M32,4c-14.177,0-21.919,9.039-21.919,20.945v30.43H53.92v-30.43c0-17.697-11.867-17.367-11.867-17.367
- S41.16,4,32,4z"/><path fill="#b386e2" d="m41.953 51.05v-7.141h-19.909v7.141c-12.518.386-15.04 2.407-15.04 12.947h49.999c0-10.539-2.533-12.56-15.05-12.947"/><path fill="#fed0ac" d="m16.368 34.904c0 0-3.154-.814-3.154-5.527 0-3.731 2.379-4.371 2.379-4.371 8.527 0 22.421-11.18 22.421-11.18s5.252 9.87 10.318 11.18c0 0 2.455.457 2.455 4.371 0 4.713-3.275 5.527-3.275 5.527-.041 7.108-9.668 15.682-15.512 15.682-5.845 0-15.632-8.574-15.632-15.682"/><path fill="#e0a372" d="m35.914 38.15c0 1.549-3.184 1.998-3.914 1.998s-3.913-.549-3.913-2.098c0 .001 7.827-.673 7.827.1"/><path fill="#e08672" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.697.416-4.268.213-4.268.213 1.871 1.883 2.76 4.455 7.05 4.455 4.287 0 5.176-2.572 7.05-4.455 0 0-2.57.203-4.264-.213"/><path fill="#b86e5d" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.666.408-4.273.211-4.268.213 2.82.51 3.172 1.963 7.05 1.963 3.873 0 4.227-1.453 7.05-1.963.01-.002-2.602.195-4.264-.213"/><g fill="#664e27"><path d="m28.11 29.771c-.035 2.123-1.814 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.477 1.422 4.01 1.422 1.532 0 2.93-.537 4.01-1.422"/><path d="m43.906 29.771c-.037 2.123-1.818 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.479 1.422 4.01 1.422 1.53 0 2.928-.537 4.01-1.422"/></g><path fill="#fed0ac" d="m18.03 18.2c-.951-2.311-1.211-4.256-1.279-5.797-.023-.52-.217-.945-.541-1.256-.004-.006-.006-.013-.01-.019l-4.363-6.371c-1.221-2.104-8.04-2.234-8.32 2.02l-.375 11.351c-.238 3.629 3.643 6.979 4.211 6.531l-.492 6.094c-.076 1.143.469 2.166 1.73 2.232h.021c1.262.068 2.348-.805 2.424-1.949l1.012-15.1.891.816c0 0 .76 3.274 3.119 3.609 1.632.234 2.326-1.303 1.972-2.159"/><path fill="#e0a372" d="m8.208 19.952c.078-1.143-.922-1.665-1-.522l-.266 3.95c-1.285-1.22-3.081-3.704-2.914-6.151l.758-11.338c.059-.861.385-1.539.877-2.063-1.164.523-2.049 1.469-2.148 2.944l-.762 11.337c-.309 3.97 3.332 6.843 4.048 7.367l-.358 5.332c-.063.994.658 1.867 1.68 2.119-.449-.406-.719-.979-.676-1.598l.761-11.377"/><path fill="#428bc1" d="M2.726,6.889c0,0,8.08,0.35,9.975-2.203L12.118,0H2.001L2.726,6.889z"/><path fill="#e0a372" d="m13.884 17.646l-.096-.424c0 0-1.271-1.563-1.619-3.119l-.123 1.828c.355.563.664.939.664.939l.098.426c.213.875.855 2.633 3.066 3.03-1.355-.673-1.814-1.968-1.99-2.681"/><path fill="#fed0ac" d="m45.973 18.2c.951-2.311 1.211-4.256 1.279-5.797.023-.52.217-.945.541-1.256.004-.006.006-.013.01-.019l4.363-6.371c1.221-2.104 8.04-2.235 8.32 2.02l.375 11.351c.238 3.629-3.643 6.979-4.211 6.531l.492 6.094c.076 1.143-.469 2.166-1.73 2.232h-.021c-1.262.068-2.348-.805-2.424-1.949l-1.012-15.1-.891.816c0 0-.76 3.274-3.119 3.609-1.632.234-2.326-1.303-1.972-2.159"/><path fill="#e0a372" d="m55.793 19.952c-.078-1.143.922-1.665 1-.522l.266 3.95c1.285-1.22 3.081-3.704 2.914-6.151l-.758-11.338c-.059-.861-.385-1.539-.877-2.063 1.164.522 2.049 1.469 2.148 2.944l.762 11.337c.309 3.97-3.332 6.843-4.048 7.367l.358 5.332c.063.994-.658 1.867-1.68 2.119.449-.406.719-.979.676-1.598l-.761-11.377"/><path fill="#428bc1" d="M61.275,6.889c0,0-8.08,0.35-9.975-2.203L51.883,0H62L61.275,6.889z"/><path fill="#e0a372" d="m50.12 17.646l.096-.424c0 0 1.271-1.563 1.619-3.119l.123 1.828c-.355.563-.664.939-.664.939l-.098.426c-.213.875-.855 2.633-3.066 3.03 1.355-.673 1.814-1.968 1.99-2.681"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 5.8c-13.7 0-21.2 8.5-21.2 19.6v28.5h42.4v-28.5c0-16.6-11.5-16.3-11.5-16.3s-.8-3.3-9.7-3.3" fill="#dbb471"/><path d="m41.6 49.9v-6.7h-19.2v6.7c-12.1.3-14.6 2.2-14.6 12.1h48.3c.1-9.9-2.4-11.8-14.5-12.1" fill="#b386e2"/><g fill="#fed0ac"><path d="m16.9 34.7c0 0-3-.8-3-5.2 0-3.5 2.3-4.1 2.3-4.1 8.2 0 21.7-10.5 21.7-10.5s5.1 9.3 10 10.5c0 0 2.4.4 2.4 4.1 0 4.4-3.2 5.2-3.2 5.2 0 6.7-9.3 14.7-15 14.7-5.7 0-15.2-8-15.2-14.7"/><path d="m18.5 19.1c-.9-2.2-1.2-4-1.2-5.4 0-.5-.2-.9-.5-1.2l-4.2-6c-1.2-2-7.8-2.1-8 1.9l-.5 10.6c-.2 3.4 3.5 6.5 4.1 6.1l-.5 5.7c-.1 1.1.5 2 1.7 2.1 1.2.1 2.3-.8 2.3-1.8l1-14.2.9.8c0 0 .7 3.1 3 3.4 1.6.2 2.2-1.2 1.9-2"/></g><path d="m9 20.7c.1-1.1-.9-1.6-1-.5l-.3 3.7c-1.2-1.1-3-3.5-2.8-5.8l.8-10.6c.1-.8.4-1.4.8-1.9-1.1.5-1.9 1.4-2 2.7l-.8 10.7c-.3 3.7 3.2 6.4 3.9 6.9l-.3 5c-.1.9.6 1.8 1.6 2-.4-.4-.7-.9-.7-1.5l.8-10.7" fill="#e0a372"/><path d="m3.7 8.5c0 0 7.8.3 9.6-2.1l-.5-4.4h-9.8l.7 6.5" fill="#428bc1"/><path d="m14.5 18.5l-.1-.4c0 0-1.2-1.5-1.6-2.9l-.1 1.7c.3.5.6.9.6.9l.1.4c.2.8.8 2.5 3 2.8-1.3-.6-1.7-1.8-1.9-2.5" fill="#e0a372"/><path d="m45.5 19.1c.9-2.2 1.2-4 1.2-5.4 0-.5.2-.9.5-1.2l4.2-6c1.2-2 7.8-2.1 8 1.9l.5 10.6c.2 3.4-3.5 6.5-4.1 6.1l.5 5.7c.1 1.1-.5 2-1.7 2.1-1.2.1-2.3-.8-2.3-1.8l-1-14.2-.9.8c0 0-.7 3.1-3 3.4-1.6.2-2.2-1.2-1.9-2" fill="#fed0ac"/><path d="m55 20.7c-.1-1.1.9-1.6 1-.5l.3 3.7c1.2-1.1 3-3.5 2.8-5.8l-.8-10.6c-.1-.8-.4-1.4-.8-1.9 1.1.5 2 1.4 2.1 2.8l.7 10.6c.3 3.7-3.2 6.4-3.9 6.9l.3 5c.1.9-.6 1.8-1.6 2 .4-.4.7-.9.7-1.5l-.8-10.7" fill="#e0a372"/><path d="m60.3 8.5c0 0-7.8.3-9.6-2.1l.5-4.4h9.8l-.7 6.5" fill="#428bc1"/><path d="m49.5 18.5l.1-.4c0 0 1.2-1.5 1.6-2.9l.1 1.7c-.3.5-.6.9-.6.9l-.1.4c-.2.8-.8 2.5-3 2.8 1.3-.6 1.7-1.8 1.9-2.5" fill="#e0a372"/><path d="m32 42.8l-7-1.1c4.2 6 9.8 6 14 0l-7 1.1" fill="#e08672"/><path d="m34.8 41.5c-2.1-.8-2.8.5-2.8.5s-.7-1.2-2.8-.5c-1.6.6-4.2.2-4.2.3 2.8.6 3.1 1.8 7 1.8 3.8 0 4.2-1.2 7-1.8 0 0-2.6.3-4.2-.3" fill="#b86e5d"/><path d="m32 39.6c-2.9 0-4.4-2.1-2.9-2.1s4.4 0 5.9 0c1.4 0-.1 2.1-3 2.1" fill="#e0a372"/><g fill="#664e27"><path d="m19.4 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/><path d="m34.7 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fd.svg
index a6fc16d..245ca4b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fd.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="M32,4c-14.177,0-21.919,9.039-21.919,20.945v30.43H53.92v-30.43c0-17.697-11.867-17.367-11.867-17.367
- S41.16,4,32,4z"/><path fill="#b386e2" d="m41.953 51.05v-7.141h-19.909v7.141c-12.518.386-15.04 2.407-15.04 12.947h49.999c0-10.539-2.533-12.56-15.05-12.947"/><path fill="#d6a57c" d="m16.368 34.904c0 0-3.154-.814-3.154-5.527 0-3.731 2.379-4.371 2.379-4.371 8.527 0 22.421-11.18 22.421-11.18s5.252 9.87 10.318 11.18c0 0 2.455.457 2.455 4.371 0 4.713-3.275 5.527-3.275 5.527-.041 7.108-9.668 15.682-15.512 15.682-5.845 0-15.632-8.574-15.632-15.682"/><g fill="#b58360"><path d="m35.914 38.15c0 1.549-3.184 1.998-3.914 1.998s-3.913-.549-3.913-2.098c0 .001 7.827-.673 7.827.1"/><path d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.697.416-4.268.213-4.268.213 1.871 1.883 2.76 4.455 7.05 4.455 4.287 0 5.176-2.572 7.05-4.455 0 0-2.57.203-4.264-.213"/></g><path fill="#805c44" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.666.408-4.273.211-4.268.213 2.82.51 3.172 1.963 7.05 1.963 3.873 0 4.227-1.453 7.05-1.963.01-.002-2.602.195-4.264-.213"/><g fill="#664e27"><path d="m28.11 29.771c-.035 2.123-1.814 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.477 1.422 4.01 1.422 1.532 0 2.93-.537 4.01-1.422"/><path d="m43.906 29.771c-.037 2.123-1.818 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.479 1.422 4.01 1.422 1.53 0 2.928-.537 4.01-1.422"/></g><path fill="#d6a57c" d="m18.03 18.2c-.951-2.311-1.211-4.256-1.279-5.797-.023-.52-.217-.945-.541-1.256-.004-.006-.006-.013-.01-.019l-4.363-6.371c-1.221-2.104-8.04-2.234-8.32 2.02l-.375 11.351c-.238 3.629 3.643 6.979 4.211 6.531l-.492 6.094c-.076 1.143.469 2.166 1.73 2.232h.021c1.262.068 2.348-.805 2.424-1.949l1.012-15.1.891.816c0 0 .76 3.274 3.119 3.609 1.632.234 2.326-1.303 1.972-2.159"/><path fill="#b58360" d="m8.208 19.952c.078-1.143-.922-1.665-1-.522l-.266 3.95c-1.285-1.22-3.081-3.704-2.914-6.151l.758-11.338c.059-.861.385-1.539.877-2.063-1.164.523-2.049 1.469-2.148 2.944l-.762 11.337c-.309 3.97 3.332 6.843 4.048 7.367l-.358 5.332c-.063.994.658 1.867 1.68 2.119-.449-.406-.719-.979-.676-1.598l.761-11.377"/><path fill="#428bc1" d="M2.726,6.889c0,0,8.08,0.35,9.975-2.203L12.118,0H2.001L2.726,6.889z"/><path fill="#b58360" d="m13.884 17.646l-.096-.424c0 0-1.271-1.563-1.619-3.119l-.123 1.828c.355.563.664.939.664.939l.098.426c.213.875.855 2.633 3.066 3.03-1.355-.673-1.814-1.968-1.99-2.681"/><path fill="#d6a57c" d="m45.973 18.2c.951-2.311 1.211-4.256 1.279-5.797.023-.52.217-.945.541-1.256.004-.006.006-.013.01-.019l4.363-6.371c1.221-2.104 8.04-2.235 8.32 2.02l.375 11.351c.238 3.629-3.643 6.979-4.211 6.531l.492 6.094c.076 1.143-.469 2.166-1.73 2.232h-.021c-1.262.068-2.348-.805-2.424-1.949l-1.012-15.1-.891.816c0 0-.76 3.274-3.119 3.609-1.632.234-2.326-1.303-1.972-2.159"/><path fill="#b58360" d="m55.793 19.952c-.078-1.143.922-1.665 1-.522l.266 3.95c1.285-1.22 3.081-3.704 2.914-6.151l-.758-11.338c-.059-.861-.385-1.539-.877-2.063 1.164.522 2.049 1.469 2.148 2.944l.762 11.337c.309 3.97-3.332 6.843-4.048 7.367l.358 5.332c.063.994-.658 1.867-1.68 2.119.449-.406.719-.979.676-1.598l-.761-11.377"/><path fill="#428bc1" d="M61.275,6.889c0,0-8.08,0.35-9.975-2.203L51.883,0H62L61.275,6.889z"/><path fill="#b58360" d="m50.12 17.646l.096-.424c0 0 1.271-1.563 1.619-3.119l.123 1.828c-.355.563-.664.939-.664.939l-.098.426c-.213.875-.855 2.633-3.066 3.03 1.355-.673 1.814-1.968 1.99-2.681"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 5.8c-13.7 0-21.2 8.5-21.2 19.6v28.5h42.4v-28.5c0-16.6-11.5-16.3-11.5-16.3s-.8-3.3-9.7-3.3" fill="#594640"/><path d="m41.6 49.9v-6.7h-19.2v6.7c-12.1.3-14.6 2.2-14.6 12.1h48.3c.1-9.9-2.4-11.8-14.5-12.1" fill="#b386e2"/><g fill="#d6a57c"><path d="m16.9 34.7c0 0-3-.8-3-5.2 0-3.5 2.3-4.1 2.3-4.1 8.2 0 21.7-10.5 21.7-10.5s5.1 9.3 10 10.5c0 0 2.4.4 2.4 4.1 0 4.4-3.2 5.2-3.2 5.2 0 6.7-9.3 14.7-15 14.7-5.8 0-15.2-8-15.2-14.7"/><path d="m18.5 19.1c-.9-2.2-1.2-4-1.2-5.4 0-.5-.2-.9-.5-1.2l-4.2-6c-1.2-2-7.8-2.1-8 1.9l-.5 10.6c-.2 3.4 3.5 6.5 4.1 6.1l-.5 5.7c-.1 1.1.5 2 1.7 2.1 1.2.1 2.3-.8 2.3-1.8l1-14.2.9.8c0 0 .7 3.1 3 3.4 1.6.2 2.2-1.2 1.9-2"/></g><path d="m9 20.7c.1-1.1-.9-1.6-1-.5l-.3 3.7c-1.2-1.1-3-3.5-2.8-5.8l.8-10.6c.1-.8.4-1.4.8-1.9-1.1.5-1.9 1.4-2 2.7l-.8 10.7c-.3 3.7 3.2 6.4 3.9 6.9l-.3 5c-.1.9.6 1.8 1.6 2-.4-.4-.7-.9-.7-1.5l.8-10.7" fill="#b58360"/><path d="m3.7 8.5c0 0 7.8.3 9.6-2.1l-.5-4.4h-9.8l.7 6.5" fill="#428bc1"/><path d="m14.5 18.5l-.1-.4c0 0-1.2-1.5-1.6-2.9l-.1 1.7c.3.5.6.9.6.9l.1.4c.2.8.8 2.5 3 2.8-1.3-.6-1.7-1.8-1.9-2.5" fill="#b58360"/><path d="m45.5 19.1c.9-2.2 1.2-4 1.2-5.4 0-.5.2-.9.5-1.2l4.2-6c1.2-2 7.8-2.1 8 1.9l.5 10.6c.2 3.4-3.5 6.5-4.1 6.1l.5 5.7c.1 1.1-.5 2-1.7 2.1-1.2.1-2.3-.8-2.3-1.8l-1-14.2-.9.8c0 0-.7 3.1-3 3.4-1.6.2-2.2-1.2-1.9-2" fill="#d6a57c"/><path d="m55 20.7c-.1-1.1.9-1.6 1-.5l.3 3.7c1.2-1.1 3-3.5 2.8-5.8l-.8-10.6c-.1-.8-.4-1.4-.8-1.9 1.1.5 2 1.4 2.1 2.8l.7 10.6c.3 3.7-3.2 6.4-3.9 6.9l.3 5c.1.9-.6 1.8-1.6 2 .4-.4.7-.9.7-1.5l-.8-10.7" fill="#b58360"/><path d="m60.3 8.5c0 0-7.8.3-9.6-2.1l.5-4.4h9.8l-.7 6.5" fill="#428bc1"/><g fill="#b58360"><path d="m49.5 18.5l.1-.4c0 0 1.2-1.5 1.6-2.9l.1 1.7c-.3.5-.6.9-.6.9l-.1.4c-.2.8-.8 2.5-3 2.8 1.3-.6 1.7-1.8 1.9-2.5"/><path d="m32 42.8l-7-1.1c4.2 6 9.8 6 14 0l-7 1.1"/></g><path d="m34.8 41.5c-2.1-.8-2.8.5-2.8.5s-.7-1.2-2.8-.5c-1.6.6-4.2.2-4.2.3 2.8.6 3.1 1.8 7 1.8 3.8 0 4.2-1.2 7-1.8 0 0-2.6.3-4.2-.3" fill="#805c44"/><path d="m32 39.6c-2.9 0-4.4-2.1-2.9-2.1 1.5 0 4.4 0 5.9 0 1.4 0-.1 2.1-3 2.1" fill="#b58360"/><g fill="#664e27"><path d="m19.4 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/><path d="m34.7 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fe.svg
index 86a88d1..a56ff48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3fe.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M32,4c-14.177,0-21.919,9.039-21.919,20.945v30.43H53.92v-30.43c0-17.697-11.867-17.367-11.867-17.367
- S41.16,4,32,4z"/><path fill="#b386e2" d="m41.953 51.05v-7.141h-19.909v7.141c-12.518.386-15.04 2.407-15.04 12.947h49.999c0-10.539-2.533-12.56-15.05-12.947"/><path fill="#b47d56" d="m16.368 34.904c0 0-3.154-.814-3.154-5.527 0-3.731 2.379-4.371 2.379-4.371 8.527 0 22.421-11.18 22.421-11.18s5.252 9.87 10.318 11.18c0 0 2.455.457 2.455 4.371 0 4.713-3.275 5.527-3.275 5.527-.041 7.108-9.668 15.682-15.512 15.682-5.845 0-15.632-8.574-15.632-15.682"/><g fill="#935e3e"><path d="m35.914 38.15c0 1.549-3.184 1.998-3.914 1.998s-3.913-.549-3.913-2.098c0 .001 7.827-.673 7.827.1"/><path d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.697.416-4.268.213-4.268.213 1.871 1.883 2.76 4.455 7.05 4.455 4.287 0 5.176-2.572 7.05-4.455 0 0-2.57.203-4.264-.213"/></g><path fill="#734c31" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.666.408-4.273.211-4.268.213 2.82.51 3.172 1.963 7.05 1.963 3.873 0 4.227-1.453 7.05-1.963.01-.002-2.602.195-4.264-.213"/><g fill="#574137"><path d="m28.11 29.771c-.035 2.123-1.814 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.477 1.422 4.01 1.422 1.532 0 2.93-.537 4.01-1.422"/><path d="m43.906 29.771c-.037 2.123-1.818 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.479 1.422 4.01 1.422 1.53 0 2.928-.537 4.01-1.422"/></g><path fill="#b47d56" d="m18.03 18.2c-.951-2.311-1.211-4.256-1.279-5.797-.023-.52-.217-.945-.541-1.256-.004-.006-.006-.013-.01-.019l-4.363-6.371c-1.221-2.104-8.04-2.234-8.32 2.02l-.375 11.351c-.238 3.629 3.643 6.979 4.211 6.531l-.492 6.094c-.076 1.143.469 2.166 1.73 2.232h.021c1.262.068 2.348-.805 2.424-1.949l1.012-15.1.891.816c0 0 .76 3.274 3.119 3.609 1.632.234 2.326-1.303 1.972-2.159"/><path fill="#935e3e" d="m8.208 19.952c.078-1.143-.922-1.665-1-.522l-.266 3.95c-1.285-1.22-3.081-3.704-2.914-6.151l.758-11.338c.059-.861.385-1.539.877-2.063-1.164.523-2.049 1.469-2.148 2.944l-.762 11.337c-.309 3.97 3.332 6.843 4.048 7.367l-.358 5.332c-.063.994.658 1.867 1.68 2.119-.449-.406-.719-.979-.676-1.598l.761-11.377"/><path fill="#428bc1" d="M2.726,6.889c0,0,8.08,0.35,9.975-2.203L12.118,0H2.001L2.726,6.889z"/><path fill="#935e3e" d="m13.884 17.646l-.096-.424c0 0-1.271-1.563-1.619-3.119l-.123 1.828c.355.563.664.939.664.939l.098.426c.213.875.855 2.633 3.066 3.03-1.355-.673-1.814-1.968-1.99-2.681"/><path fill="#b47d56" d="m45.973 18.2c.951-2.311 1.211-4.256 1.279-5.797.023-.52.217-.945.541-1.256.004-.006.006-.013.01-.019l4.363-6.371c1.221-2.104 8.04-2.235 8.32 2.02l.375 11.351c.238 3.629-3.643 6.979-4.211 6.531l.492 6.094c.076 1.143-.469 2.166-1.73 2.232h-.021c-1.262.068-2.348-.805-2.424-1.949l-1.012-15.1-.891.816c0 0-.76 3.274-3.119 3.609-1.632.234-2.326-1.303-1.972-2.159"/><path fill="#935e3e" d="m55.793 19.952c-.078-1.143.922-1.665 1-.522l.266 3.95c1.285-1.22 3.081-3.704 2.914-6.151l-.758-11.338c-.059-.861-.385-1.539-.877-2.063 1.164.522 2.049 1.469 2.148 2.944l.762 11.337c.309 3.97-3.332 6.843-4.048 7.367l.358 5.332c.063.994-.658 1.867-1.68 2.119.449-.406.719-.979.676-1.598l-.761-11.377"/><path fill="#428bc1" d="M61.275,6.889c0,0-8.08,0.35-9.975-2.203L51.883,0H62L61.275,6.889z"/><path fill="#935e3e" d="m50.12 17.646l.096-.424c0 0 1.271-1.563 1.619-3.119l.123 1.828c-.355.563-.664.939-.664.939l-.098.426c-.213.875-.855 2.633-3.066 3.03 1.355-.673 1.814-1.968 1.99-2.681"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 5.8c-13.7 0-21.2 8.5-21.2 19.6v28.5h42.4v-28.5c0-16.6-11.5-16.3-11.5-16.3s-.8-3.3-9.7-3.3" fill="#231f20"/><path d="m41.6 49.9v-6.7h-19.2v6.7c-12.1.3-14.6 2.2-14.6 12.1h48.3c.1-9.9-2.4-11.8-14.5-12.1" fill="#b386e2"/><g fill="#b47d56"><path d="m16.9 34.7c0 0-3-.8-3-5.2 0-3.5 2.3-4.1 2.3-4.1 8.2 0 21.7-10.5 21.7-10.5s5.1 9.3 10 10.5c0 0 2.4.4 2.4 4.1 0 4.4-3.2 5.2-3.2 5.2 0 6.7-9.3 14.7-15 14.7-5.8 0-15.2-8-15.2-14.7"/><path d="m18.5 19.1c-.9-2.2-1.2-4-1.2-5.4 0-.5-.2-.9-.5-1.2l-4.2-6c-1.2-2-7.8-2.1-8 1.9l-.5 10.6c-.2 3.4 3.5 6.5 4.1 6.1l-.5 5.7c-.1 1.1.5 2 1.7 2.1 1.2.1 2.3-.8 2.3-1.8l1-14.2.9.8c0 0 .7 3.1 3 3.4 1.6.2 2.2-1.2 1.9-2"/></g><path d="m9 20.7c.1-1.1-.9-1.6-1-.5l-.3 3.7c-1.2-1.1-3-3.5-2.8-5.8l.8-10.6c.1-.8.4-1.4.8-1.9-1.1.5-1.9 1.4-2 2.7l-.8 10.7c-.3 3.7 3.2 6.4 3.9 6.9l-.3 5c-.1.9.6 1.8 1.6 2-.4-.4-.7-.9-.7-1.5l.8-10.7" fill="#935e3e"/><path d="m3.7 8.5c0 0 7.8.3 9.6-2.1l-.5-4.4h-9.8l.7 6.5" fill="#428bc1"/><path d="m14.5 18.5l-.1-.4c0 0-1.2-1.5-1.6-2.9l-.1 1.7c.3.5.6.9.6.9l.1.4c.2.8.8 2.5 3 2.8-1.3-.6-1.7-1.8-1.9-2.5" fill="#935e3e"/><path d="m45.5 19.1c.9-2.2 1.2-4 1.2-5.4 0-.5.2-.9.5-1.2l4.2-6c1.2-2 7.8-2.1 8 1.9l.5 10.6c.2 3.4-3.5 6.5-4.1 6.1l.5 5.7c.1 1.1-.5 2-1.7 2.1-1.2.1-2.3-.8-2.3-1.8l-1-14.2-.9.8c0 0-.7 3.1-3 3.4-1.6.2-2.2-1.2-1.9-2" fill="#b47d56"/><path d="m55 20.7c-.1-1.1.9-1.6 1-.5l.3 3.7c1.2-1.1 3-3.5 2.8-5.8l-.8-10.6c-.1-.8-.4-1.4-.8-1.9 1.1.5 2 1.4 2.1 2.8l.7 10.6c.3 3.7-3.2 6.4-3.9 6.9l.3 5c.1.9-.6 1.8-1.6 2 .4-.4.7-.9.7-1.5l-.8-10.7" fill="#935e3e"/><path d="m60.3 8.5c0 0-7.8.3-9.6-2.1l.5-4.4h9.8l-.7 6.5" fill="#428bc1"/><g fill="#935e3e"><path d="m49.5 18.5l.1-.4c0 0 1.2-1.5 1.6-2.9l.1 1.7c-.3.5-.6.9-.6.9l-.1.4c-.2.8-.8 2.5-3 2.8 1.3-.6 1.7-1.8 1.9-2.5"/><path d="m32 42.8l-7-1.1c4.2 6 9.8 6 14 0l-7 1.1"/></g><path d="m34.8 41.5c-2.1-.8-2.8.5-2.8.5s-.7-1.2-2.8-.5c-1.6.6-4.2.2-4.2.3 2.8.6 3.1 1.8 7 1.8s4.2-1.2 7-1.8c0 0-2.6.3-4.2-.3" fill="#734c31"/><path d="m32 39.6c-2.9 0-4.4-2.1-2.9-2.1 1.5 0 4.4 0 5.9 0 1.4 0-.1 2.1-3 2.1" fill="#935e3e"/><g fill="#664e27"><path d="m19.4 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/><path d="m34.7 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3ff.svg
index e0a6d4e..bf24cb0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f486-1f3ff.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M32,4c-14.177,0-21.919,9.039-21.919,20.945v30.43H53.92v-30.43c0-17.697-11.867-17.367-11.867-17.367
- S41.16,4,32,4z"/><path fill="#b386e2" d="m41.953 51.05v-7.141h-19.909v7.141c-12.518.386-15.04 2.407-15.04 12.947h49.999c0-10.539-2.533-12.56-15.05-12.947"/><path fill="#8a6859" d="m16.368 34.904c0 0-3.154-.814-3.154-5.527 0-3.731 2.379-4.371 2.379-4.371 8.527 0 22.421-11.18 22.421-11.18s5.252 9.87 10.318 11.18c0 0 2.455.457 2.455 4.371 0 4.713-3.275 5.527-3.275 5.527-.041 7.108-9.668 15.682-15.512 15.682-5.845 0-15.632-8.574-15.632-15.682"/><path fill="#705041" d="m35.914 38.15c0 1.549-3.184 1.998-3.914 1.998s-3.913-.549-3.913-2.098c0 .001 7.827-.673 7.827.1"/><path fill="#7d5442" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.697.416-4.268.213-4.268.213 1.871 1.883 2.76 4.455 7.05 4.455 4.287 0 5.176-2.572 7.05-4.455 0 0-2.57.203-4.264-.213"/><path fill="#5c3f34" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.097-.369-1.925-.438-2.493-.295-1.666.408-4.273.211-4.268.213 2.82.51 3.172 1.963 7.05 1.963 3.873 0 4.227-1.453 7.05-1.963.01-.002-2.602.195-4.264-.213"/><g fill="#47352d"><path d="m28.11 29.771c-.035 2.123-1.814 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.477 1.422 4.01 1.422 1.532 0 2.93-.537 4.01-1.422"/><path d="m43.906 29.771c-.037 2.123-1.818 3.791-4.01 3.791-2.195 0-3.975-1.668-4.01-3.791 1.078.885 2.479 1.422 4.01 1.422 1.53 0 2.928-.537 4.01-1.422"/></g><path fill="#8a6859" d="m18.03 18.2c-.951-2.311-1.211-4.256-1.279-5.797-.023-.52-.217-.945-.541-1.256-.004-.006-.006-.013-.01-.019l-4.363-6.371c-1.221-2.104-8.04-2.234-8.32 2.02l-.375 11.351c-.238 3.629 3.643 6.979 4.211 6.531l-.492 6.094c-.076 1.143.469 2.166 1.73 2.232h.021c1.262.068 2.348-.805 2.424-1.949l1.012-15.1.891.816c0 0 .76 3.274 3.119 3.609 1.632.234 2.326-1.303 1.972-2.159"/><path fill="#705041" d="m8.208 19.952c.078-1.143-.922-1.665-1-.522l-.266 3.95c-1.285-1.22-3.081-3.704-2.914-6.151l.758-11.338c.059-.861.385-1.539.877-2.063-1.164.523-2.049 1.469-2.148 2.944l-.762 11.337c-.309 3.97 3.332 6.843 4.048 7.367l-.358 5.332c-.063.994.658 1.867 1.68 2.119-.449-.406-.719-.979-.676-1.598l.761-11.377"/><path fill="#428bc1" d="M2.726,6.889c0,0,8.08,0.35,9.975-2.203L12.118,0H2.001L2.726,6.889z"/><path fill="#705041" d="m13.884 17.646l-.096-.424c0 0-1.271-1.563-1.619-3.119l-.123 1.828c.355.563.664.939.664.939l.098.426c.213.875.855 2.633 3.066 3.03-1.355-.673-1.814-1.968-1.99-2.681"/><path fill="#8a6859" d="m45.973 18.2c.951-2.311 1.211-4.256 1.279-5.797.023-.52.217-.945.541-1.256.004-.006.006-.013.01-.019l4.363-6.371c1.221-2.104 8.04-2.235 8.32 2.02l.375 11.351c.238 3.629-3.643 6.979-4.211 6.531l.492 6.094c.076 1.143-.469 2.166-1.73 2.232h-.021c-1.262.068-2.348-.805-2.424-1.949l-1.012-15.1-.891.816c0 0-.76 3.274-3.119 3.609-1.632.234-2.326-1.303-1.972-2.159"/><path fill="#705041" d="m55.793 19.952c-.078-1.143.922-1.665 1-.522l.266 3.95c1.285-1.22 3.081-3.704 2.914-6.151l-.758-11.338c-.059-.861-.385-1.539-.877-2.063 1.164.522 2.049 1.469 2.148 2.944l.762 11.337c.309 3.97-3.332 6.843-4.048 7.367l.358 5.332c.063.994-.658 1.867-1.68 2.119.449-.406.719-.979.676-1.598l-.761-11.377"/><path fill="#428bc1" d="M61.275,6.889c0,0-8.08,0.35-9.975-2.203L51.883,0H62L61.275,6.889z"/><path fill="#705041" d="m50.12 17.646l.096-.424c0 0 1.271-1.563 1.619-3.119l.123 1.828c-.355.563-.664.939-.664.939l-.098.426c-.213.875-.855 2.633-3.066 3.03 1.355-.673 1.814-1.968 1.99-2.681"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 5.8c-13.7 0-21.2 8.5-21.2 19.6v28.5h42.4v-28.5c0-16.6-11.5-16.3-11.5-16.3s-.8-3.3-9.7-3.3" fill="#231f20"/><path d="m41.6 49.9v-6.7h-19.2v6.7c-12.1.3-14.6 2.2-14.6 12.1h48.3c.1-9.9-2.4-11.8-14.5-12.1" fill="#b386e2"/><g fill="#8a6859"><path d="m16.9 34.7c0 0-3-.8-3-5.2 0-3.5 2.3-4.1 2.3-4.1 8.2 0 21.7-10.5 21.7-10.5s5.1 9.3 10 10.5c0 0 2.4.4 2.4 4.1 0 4.4-3.2 5.2-3.2 5.2 0 6.7-9.3 14.7-15 14.7-5.7 0-15.2-8-15.2-14.7"/><path d="m18.5 19.1c-.9-2.2-1.2-4-1.2-5.4 0-.5-.2-.9-.5-1.2l-4.2-6c-1.2-2-7.8-2.1-8 1.9l-.5 10.6c-.2 3.4 3.5 6.5 4.1 6.1l-.5 5.7c-.1 1.1.5 2 1.7 2.1 1.2.1 2.3-.8 2.3-1.8l1-14.2.9.8c0 0 .7 3.1 3 3.4 1.6.2 2.2-1.2 1.9-2"/></g><path d="m9 20.7c.1-1.1-.9-1.6-1-.5l-.3 3.7c-1.2-1.1-3-3.5-2.8-5.8l.8-10.6c.1-.8.4-1.4.8-1.9-1.1.5-1.9 1.4-2 2.7l-.8 10.7c-.3 3.7 3.2 6.4 3.9 6.9l-.3 5c-.1.9.6 1.8 1.6 2-.4-.4-.7-.9-.7-1.5l.8-10.7" fill="#705041"/><path d="m3.7 8.5c0 0 7.8.3 9.6-2.1l-.5-4.4h-9.8l.7 6.5" fill="#428bc1"/><path d="m14.5 18.5l-.1-.4c0 0-1.2-1.5-1.6-2.9l-.1 1.7c.3.5.6.9.6.9l.1.4c.2.8.8 2.5 3 2.8-1.3-.6-1.7-1.8-1.9-2.5" fill="#705041"/><path d="m45.5 19.1c.9-2.2 1.2-4 1.2-5.4 0-.5.2-.9.5-1.2l4.2-6c1.2-2 7.8-2.1 8 1.9l.5 10.6c.2 3.4-3.5 6.5-4.1 6.1l.5 5.7c.1 1.1-.5 2-1.7 2.1-1.2.1-2.3-.8-2.3-1.8l-1-14.2-.9.8c0 0-.7 3.1-3 3.4-1.6.2-2.2-1.2-1.9-2" fill="#8a6859"/><path d="m55 20.7c-.1-1.1.9-1.6 1-.5l.3 3.7c1.2-1.1 3-3.5 2.8-5.8l-.8-10.6c-.1-.8-.4-1.4-.8-1.9 1.1.5 2 1.4 2.1 2.8l.7 10.6c.3 3.7-3.2 6.4-3.9 6.9l.3 5c.1.9-.6 1.8-1.6 2 .4-.4.7-.9.7-1.5l-.8-10.7" fill="#705041"/><path d="m60.3 8.5c0 0-7.8.3-9.6-2.1l.5-4.4h9.8l-.7 6.5" fill="#428bc1"/><path d="m49.5 18.5l.1-.4c0 0 1.2-1.5 1.6-2.9l.1 1.7c-.3.5-.6.9-.6.9l-.1.4c-.2.8-.8 2.5-3 2.8 1.3-.6 1.7-1.8 1.9-2.5" fill="#705041"/><path d="m32 42.8l-7-1.1c4.2 6 9.8 6 14 0l-7 1.1" fill="#7d5442"/><path d="m34.8 41.5c-2.1-.8-2.8.5-2.8.5s-.7-1.2-2.8-.5c-1.6.6-4.2.2-4.2.3 2.8.6 3.1 1.8 7 1.8 3.8 0 4.2-1.2 7-1.8 0 0-2.6.3-4.2-.3" fill="#5c3f34"/><path d="m32 39.6c-2.9 0-4.4-2.1-2.9-2.1s4.4 0 5.9 0c1.4 0-.1 2.1-3 2.1" fill="#705041"/><g fill="#574137"><path d="m19.4 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/><path d="m34.7 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f486.svg b/build/js/jsxc/lib/emojione/assets/svg/1f486.svg
index a7b67b0..04a2727 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f486.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f486.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="M32,4c-14.178,0-21.92,9.039-21.92,20.945v30.43h43.84v-30.43c0-17.697-11.867-17.367-11.867-17.367
- S41.16,4,32,4z"/><path fill="#b386e2" d="M41.953,51.053v-7.141h-19.91v7.141C9.525,51.439,7,53.461,7,64h50C57,53.461,54.467,51.441,41.953,51.053z
- "/><path fill="#ffdd67" d="m16.367 34.904c0 0-3.154-.814-3.154-5.527 0-3.732 2.379-4.371 2.379-4.371 8.528 0 22.422-11.18 22.422-11.18s5.252 9.87 10.318 11.18c0 0 2.455.457 2.455 4.371 0 4.712-3.275 5.527-3.275 5.527-.041 7.108-9.668 15.682-15.512 15.682-5.845 0-15.633-8.574-15.633-15.682"/><path fill="#eba352" d="m35.914 38.15c0 1.549-3.183 1.998-3.914 1.998s-3.914-.549-3.914-2.098c0 .001 7.828-.673 7.828.1"/><path fill="#f09985" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.098-.369-1.926-.438-2.494-.295-1.697.416-4.268.213-4.268.213 1.871 1.883 2.76 4.455 7.05 4.455 4.287 0 5.175-2.572 7.04-4.455.001 0-2.569.203-4.263-.213"/><path fill="#d47f6c" d="m34.781 41.947c-.57-.143-1.4-.074-2.494.295-.098.029-.193.061-.287.094-.096-.033-.189-.064-.285-.094-1.098-.369-1.926-.438-2.494-.295-1.666.408-4.273.211-4.268.213 2.82.51 3.172 1.963 7.05 1.963 3.873 0 4.226-1.453 7.04-1.963.011-.002-2.601.195-4.263-.213"/><g fill="#664e27"><path d="m28.11 29.772c-.035 2.123-1.814 3.791-4.01 3.791-2.195 0-3.975-1.667-4.01-3.791 1.078.885 2.477 1.422 4.01 1.422 1.531 0 2.93-.537 4.01-1.422"/><path d="m43.906 29.772c-.037 2.123-1.818 3.791-4.01 3.791-2.195 0-3.975-1.667-4.01-3.791 1.078.885 2.479 1.422 4.01 1.422 1.53 0 2.928-.537 4.01-1.422"/></g><path fill="#ffdd67" d="m18.03 18.2c-.951-2.311-1.211-4.256-1.279-5.797-.023-.52-.216-.945-.541-1.256-.004-.006-.006-.013-.01-.019l-4.363-6.371c-1.221-2.104-8.04-2.234-8.32 2.02l-.374 11.351c-.239 3.629 3.642 6.979 4.21 6.531l-.491 6.094c-.076 1.143.468 2.166 1.729 2.232h.021c1.262.068 2.348-.805 2.424-1.949l1.013-15.1.891.816c0 0 .759 3.274 3.118 3.609 1.633.234 2.326-1.303 1.972-2.159"/><path fill="#eba352" d="m8.207 19.952c.078-1.143-.922-1.665-1-.522l-.266 3.95c-1.285-1.22-3.081-3.705-2.914-6.152l.758-11.337c.059-.862.385-1.539.877-2.063-1.164.523-2.049 1.469-2.148 2.944l-.762 11.337c-.308 3.97 3.333 6.843 4.048 7.368l-.359 5.332c-.063.994.658 1.867 1.68 2.119-.449-.406-.719-.979-.676-1.598l.762-11.378"/><path fill="#428bc1" d="M2.725,6.889c0,0,8.08,0.35,9.975-2.203L12.117,0H2L2.725,6.889z"/><path fill="#eba352" d="m13.883 17.646l-.096-.424c0 0-1.271-1.563-1.618-3.119l-.123 1.828c.355.563.663.939.663.939l.098.426c.213.875.855 2.633 3.066 3.03-1.355-.673-1.814-1.968-1.99-2.681"/><path fill="#ffdd67" d="m45.973 18.2c.951-2.311 1.211-4.256 1.279-5.797.023-.52.217-.945.541-1.256.004-.006.006-.013.01-.019l4.363-6.371c1.221-2.104 8.04-2.235 8.32 2.02l.373 11.351c.24 3.629-3.641 6.979-4.209 6.531l.49 6.094c.076 1.143-.467 2.166-1.729 2.232h-.021c-1.262.068-2.348-.805-2.424-1.949l-1.014-15.1-.891.816c0 0-.758 3.274-3.117 3.609-1.631.234-2.325-1.303-1.971-2.159"/><path fill="#eba352" d="m55.793 19.952c-.078-1.143.922-1.665 1-.522l.266 3.951c1.285-1.22 3.08-3.705 2.914-6.152l-.758-11.338c-.059-.861-.385-1.539-.877-2.063 1.164.522 2.049 1.469 2.148 2.944l.762 11.337c.309 3.97-3.332 6.843-4.049 7.368l.359 5.332c.063.994-.658 1.867-1.68 2.119.449-.406.719-.979.676-1.598l-.761-11.378"/><path fill="#428bc1" d="M61.275,6.889c0,0-8.08,0.35-9.975-2.203L51.883,0H62L61.275,6.889z"/><path fill="#eba352" d="m50.12 17.646l.096-.424c0 0 1.27-1.563 1.617-3.119l.123 1.828c-.355.563-.662.939-.662.939l-.098.426c-.213.875-.855 2.633-3.066 3.03 1.355-.673 1.814-1.968 1.99-2.681"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 5.8c-13.7 0-21.2 8.5-21.2 19.6v28.5h42.4v-28.5c0-16.6-11.5-16.3-11.5-16.3s-.8-3.3-9.7-3.3" fill="#ffb300"/><path d="m41.6 49.9v-6.7h-19.2v6.7c-12.1.3-14.6 2.2-14.6 12.1h48.3c.1-9.9-2.4-11.8-14.5-12.1" fill="#b386e2"/><g fill="#ffdd67"><path d="m16.9 34.7c0 0-3-.8-3-5.2 0-3.5 2.3-4.1 2.3-4.1 8.2 0 21.7-10.5 21.7-10.5s5.1 9.3 10 10.5c0 0 2.4.4 2.4 4.1 0 4.4-3.2 5.2-3.2 5.2 0 6.7-9.3 14.7-15 14.7-5.8 0-15.2-8-15.2-14.7"/><path d="m18.5 19.1c-.9-2.2-1.2-4-1.2-5.4 0-.5-.2-.9-.5-1.2l-4.2-6c-1.2-2-7.8-2.1-8 1.9l-.5 10.6c-.2 3.4 3.5 6.5 4.1 6.1l-.5 5.7c-.1 1.1.5 2 1.7 2.1 1.2.1 2.3-.8 2.3-1.8l1-14.2.9.8c0 0 .7 3.1 3 3.4 1.6.2 2.2-1.2 1.9-2"/></g><path d="m9 20.7c.1-1.1-.9-1.6-1-.5l-.3 3.7c-1.2-1.1-3-3.5-2.8-5.8l.8-10.6c.1-.8.4-1.4.8-1.9-1.1.5-1.9 1.4-2 2.7l-.8 10.7c-.3 3.7 3.2 6.4 3.9 6.9l-.3 5c-.1.9.6 1.8 1.6 2-.4-.4-.7-.9-.7-1.5l.8-10.7" fill="#eba352"/><path d="m3.7 8.5c0 0 7.8.3 9.6-2.1l-.5-4.4h-9.8l.7 6.5" fill="#428bc1"/><path d="m14.5 18.5l-.1-.4c0 0-1.2-1.5-1.6-2.9l-.1 1.7c.3.5.6.9.6.9l.1.4c.2.8.8 2.5 3 2.8-1.3-.6-1.7-1.8-1.9-2.5" fill="#eba352"/><path d="m45.5 19.1c.9-2.2 1.2-4 1.2-5.4 0-.5.2-.9.5-1.2l4.2-6c1.2-2 7.8-2.1 8 1.9l.5 10.6c.2 3.4-3.5 6.5-4.1 6.1l.5 5.7c.1 1.1-.5 2-1.7 2.1-1.2.1-2.3-.8-2.3-1.8l-1-14.2-.9.8c0 0-.7 3.1-3 3.4-1.6.2-2.2-1.2-1.9-2" fill="#ffdd67"/><path d="m55 20.7c-.1-1.1.9-1.6 1-.5l.3 3.7c1.2-1.1 3-3.5 2.8-5.8l-.8-10.6c-.1-.8-.4-1.4-.8-1.9 1.1.5 2 1.4 2.1 2.8l.7 10.6c.3 3.7-3.2 6.4-3.9 6.9l.3 5c.1.9-.6 1.8-1.6 2 .4-.4.7-.9.7-1.5l-.8-10.7" fill="#eba352"/><path d="m60.3 8.5c0 0-7.8.3-9.6-2.1l.5-4.4h9.8l-.7 6.5" fill="#428bc1"/><path d="m49.5 18.5l.1-.4c0 0 1.2-1.5 1.6-2.9l.1 1.7c-.3.5-.6.9-.6.9l-.1.4c-.2.8-.8 2.5-3 2.8 1.3-.6 1.7-1.8 1.9-2.5" fill="#eba352"/><path d="m32 42.8l-7-1.1c4.2 6 9.8 6 14 0l-7 1.1" fill="#f09985"/><path d="m34.8 41.5c-2.1-.8-2.8.5-2.8.5s-.7-1.2-2.8-.5c-1.6.6-4.2.2-4.2.3 2.8.6 3.1 1.8 7 1.8 3.8 0 4.2-1.2 7-1.8 0 0-2.6.3-4.2-.3" fill="#d47f6c"/><path d="m32 39.6c-2.9 0-4.4-2.1-2.9-2.1 1.5 0 4.4 0 5.9 0 1.4 0-.1 2.1-3 2.1" fill="#eba352"/><g fill="#937237"><path d="m19.4 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/><path d="m34.7 30.2c2.5 4.7 7.5 4.7 9.9 0 .1-.2-.2-.3-.6-.6-2.5 2-6.5 1.8-8.8 0-.3.3-.6.4-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fb.svg
index e59009b..793781e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m60.31 24.744c-.934.333-3.563 1.234-5.89 1.457-.851.057-1.694.022-2.484-.142-.731-.212-1.284-.614-1.5-1.315l-.188.69c-1.446-.83-2.486-2.403-2.654-5.148-1.282-20.985-11.541-14.71-11.541-14.71s-.889-3.578-9.997-3.578c-14.1 0-21.796 9.04-21.796 20.946v30.333c0 0 51.05 8.721 57.738-29.27 0 .001-.655.332-1.688.738"/><path fill="#a9b5ae" d="m50.44 24.744c.497 1.615 2.733 1.694 4.988 1.323-1.048-2.622-2.76-5.846-4.239-9.424-.617-1.484-1.828-2.227-3.43-1.115 0 0-1.451-.743-3.421-6.738-.017-.047-.304-.757-.461-1.017-1.442-2.385-4.644-3.087-7.148-1.567-2.503 1.518-3.366 4.683-1.925 7.07 1.439 2.385 4.641 3.086 7.145 1.568.703-.429 1.274-.989 1.703-1.62.571.385 1.386 3.588 1.386 3.588l5.214 8.626.188-.693m-9.749-11.987c-1.297.785-2.953.423-3.697-.81-.747-1.235-.301-2.872.996-3.657s2.954-.422 3.697.812c.747 1.232.299 2.872-.996 3.655"/><path fill="#b386e2" d="m35.639 49.36v-6.969h-19.16v6.969c-12.05.378-14.477 2.351-14.477 12.637h48.12c0-10.285-2.436-12.259-14.478-12.637"/><path fill="#ffe1bd" d="m10.48 33.589c0 0-3.139-.814-3.139-5.526 0-3.732 2.367-4.372 2.367-4.372 8.479 0 22.295-11.18 22.295-11.18s5.225 9.87 10.264 11.18c0 0 2.439.457 2.439 4.372 0 4.712-3.256 5.526-3.256 5.526-.042 7.107-9.615 15.683-15.426 15.683-5.812-.001-15.544-8.576-15.544-15.683"/><path fill="#e6b796" d="m29.915 36.833c0 1.549-3.164 1.998-3.89 1.998-.728 0-3.894-.549-3.894-2.098.001 0 7.784-.672 7.784.1"/><path fill="#f5f5f5" d="m20.724 30.644c.917 0 .794-2.399.794-2.399-2.811-6.366-9.06-2.336-9.06-2.336-2.433 1.101 1.091 4.582 1.654 4.735 2.649.727 6.616 0 6.616 0"/><ellipse fill="#664e27" cx="17.06" cy="27.729" rx="2.991" ry="3.035"/><g fill="#231f20"><ellipse cx="17.06" cy="27.729" rx="1" ry="1.015"/><path d="m22.302 29.16c-.766-.947-1.521-1.858-2.399-2.552-.879-.69-1.865-1.127-2.932-1.193-1.064-.104-2.182.125-3.34.347-.578.114-1.176.228-1.8.263-.603.025-1.333-.046-1.763-.517.568.229 1.13.107 1.672-.059.549-.159 1.089-.387 1.656-.579 1.121-.404 2.359-.736 3.67-.636.65.064 1.303.231 1.895.525.586.306 1.117.696 1.551 1.166.877.931 1.451 2.059 1.79 3.235"/></g><path fill="#f5f5f5" d="m31.32 30.644c-.917 0-.794-2.399-.794-2.399 2.809-6.366 9.07-2.336 9.07-2.336 2.433 1.101-1.091 4.582-1.655 4.735-2.648.727-6.618 0-6.618 0"/><ellipse fill="#664e27" cx="34.99" cy="27.729" rx="2.992" ry="3.035"/><g fill="#231f20"><ellipse cx="34.99" cy="27.729" rx="1" ry="1.014"/><path d="m29.747 29.16c.341-1.176.911-2.304 1.792-3.234.435-.47.964-.86 1.55-1.166.592-.294 1.245-.461 1.892-.525 1.314-.101 2.553.231 3.671.635.569.193 1.111.421 1.657.58.543.166 1.104.287 1.676.059-.434.471-1.161.542-1.766.517-.624-.035-1.223-.148-1.802-.263-1.155-.222-2.273-.451-3.338-.347-1.063.067-2.051.503-2.93 1.193-.88.694-1.636 1.605-2.402 2.551"/></g><path fill="#f09985" d="m28.789 40.633c-.565-.143-1.392-.074-2.48.294-.094.031-.19.062-.283.094-.095-.032-.189-.063-.285-.094-1.091-.368-1.913-.437-2.48-.294-1.686.416-4.24.213-4.24.213 1.859 1.882 2.742 4.455 7.01 4.455s5.146-2.573 7.01-4.455c-.002 0-2.559.203-4.243-.213"/><path fill="#d47f6c" d="m28.789 40.633c-.565-.143-1.392-.074-2.48.294-.094.031-.19.062-.283.094-.095-.032-.189-.063-.285-.094-1.091-.368-1.913-.437-2.48-.294-1.655.408-4.248.212-4.24.213 2.804.511 3.154 1.963 7.01 1.963 3.85 0 4.201-1.452 7.01-1.963.007-.001-2.59.195-4.243-.213"/><path fill="#cedbd5" d="m61.819 8.669c.754-2.763-.897-5.497-3.69-6.109-2.791-.612-5.664 1.129-6.416 3.889-.082.302-.172 1.077-.174 1.126-.318 6.387-1.509 7.583-1.509 7.583-1.818-.524-2.784.589-2.979 2.213-1.067 8.743-3.729 16.216.959 16.286l4.959-18.18c0 0-.059-3.331.383-3.891.576.46 1.268.804 2.051.977 2.792.611 5.663-1.13 6.416-3.889m-2.438-.536c-.39 1.427-1.877 2.328-3.319 2.01-1.444-.315-2.298-1.731-1.909-3.159.39-1.428 1.875-2.328 3.321-2.01 1.442.318 2.296 1.732 1.907 3.161"/><path fill="#231f20" d="m50.635 18.58c.199-.731-.24-1.457-.979-1.618-.741-.162-1.501.3-1.703 1.031-.199.731.236 1.456.979 1.619.739.164 1.501-.299 1.703-1.032"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 24.7c-.9.3-3.6 1.2-5.9 1.5-.9.1-1.7 0-2.5-.1-.7-.2-1.3-.6-1.5-1.3l-.2.7c-1.4-.8-2.5-2.4-2.7-5.1-1.2-21.1-11.4-14.8-11.4-14.8s-.9-3.6-10-3.6c-14.1 0-21.8 9-21.8 20.9v30.3c0 0 51.1 8.7 57.7-29.3 0 .1-.7.4-1.7.8" fill="#594640"/><path d="m50.4 24.7c.5 1.6 2.7 1.7 5 1.3-1-2.6-2.8-5.8-4.2-9.4-.6-1.5-1.8-2.2-3.4-1.1 0 0-1.5-.7-3.4-6.7 0 0-.3-.8-.5-1-1.4-2.4-4.6-3.1-7.1-1.6-2.5 1.5-3.4 4.7-1.9 7.1 1.4 2.4 4.6 3.1 7.1 1.6.7-.4 1.3-1 1.7-1.6.6.4 1.4 3.6 1.4 3.6l5.2 8.6.1-.8m-9.7-11.9c-1.3.8-3 .4-3.7-.8-.7-1.2-.3-2.9 1-3.7 1.3-.8 3-.4 3.7.8.7 1.2.3 2.9-1 3.7" fill="#a9b5ae"/><path d="M35.6,49.4v-7H16.5v7C4.4,49.7,2,51.7,2,62h48.1C50.1,51.7,47.7,49.7,35.6,49.4z" fill="#b386e2"/><path d="m10.1 33.6c0 0-3.2-.8-3.2-5.5 0-3.7 2.4-4.4 2.4-4.4 8.7 0 24.7-11.2 24.7-11.2s3.4 9.9 8.5 11.2c0 0 2.5.5 2.5 4.4 0 4.7-3.3 5.5-3.3 5.5 0 7.1-9.8 15.7-15.8 15.7-5.8-.1-15.8-8.6-15.8-15.7" fill="#ffe1bd"/><path d="m26 38.2c-3 0-4.6-2.2-3-2.2s4.6 0 6.1 0c1.5 0 0 2.2-3.1 2.2" fill="#e6b796"/><path d="m30.6 31.7c-1.1 0-.9-1.3-.9-1.3 1.6-8.4 11-3.9 11-3.9.7 1.5-1.7 5.1-2.4 5.2-3 .8-7.7 0-7.7 0" fill="#f5f5f5"/><circle cx="34.8" cy="28.3" r="3.3" fill="#664e27"/><circle cx="34.8" cy="28.3" r="1.1" fill="#2b2925"/><path d="m29.7 30.4c1.7-10.1 9.9-3.4 13.2-4.8-3.3 3.1-9.9-3.6-13.2 4.8" fill="#3b3226"/><path d="m21.4 31.7c1.1 0 .9-1.3.9-1.3-1.6-8.4-11-3.9-11-3.9-.7 1.5 1.7 5.1 2.4 5.2 3.1.8 7.7 0 7.7 0" fill="#f5f5f5"/><circle cx="17.2" cy="28.3" r="3.3" fill="#664e27"/><path d="m22.4 30.4c-1.7-10.1-9.9-3.4-13.2-4.8 3.2 3.1 9.8-3.6 13.2 4.8" fill="#3b3226"/><path d="m26 41.9l-7.3-1.1c4.4 6.3 10.3 6.3 14.7 0l-7.4 1.1" fill="#e08672"/><path d="m28.9 40.5c-2.1-.8-2.9.5-2.9.5s-.7-1.3-2.9-.5c-1.7.6-4.5.3-4.4.3 2.9.6 3.3 1.9 7.3 1.9s4.4-1.2 7.3-1.9c.1 0-2.7.4-4.4-.3" fill="#b86e5d"/><circle cx="17.2" cy="28.3" r="1.1" fill="#2b2925"/><path d="m61.8 8.7c.8-2.8-.9-5.5-3.7-6.1-2.8-.6-5.7 1.1-6.4 3.9-.1.3-.2 1.1-.2 1.1-.3 6.4-1.5 7.6-1.5 7.6-1.8-.5-2.8.6-3 2.2-1.1 8.7-3.7 16.2 1 16.3l5-18.2c0 0-.1-3.3.4-3.9.6.5 1.3.8 2.1 1 2.7.6 5.6-1.2 6.3-3.9m-2.4-.6c-.4 1.4-1.9 2.3-3.3 2-1.4-.3-2.3-1.7-1.9-3.2s1.9-2.3 3.3-2c1.4.4 2.3 1.8 1.9 3.2" fill="#cedbd5"/><path d="m50.6 18.6c.2-.7-.2-1.5-1-1.6-.7-.2-1.5.3-1.7 1-.2.7.2 1.5 1 1.6.8.2 1.5-.3 1.7-1" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fc.svg
index 03d6a35..ac7e41c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m60.31 24.744c-.934.333-3.564 1.234-5.891 1.457-.85.057-1.693.022-2.484-.142-.73-.212-1.285-.614-1.5-1.315l-.188.69c-1.447-.83-2.486-2.403-2.654-5.148-1.283-20.985-11.542-14.71-11.542-14.71s-.887-3.578-9.996-3.578c-14.1 0-21.797 9.04-21.797 20.946v30.333c0 0 51.06 8.721 57.74-29.27 0 .001-.656.332-1.688.738"/><path fill="#a9b5ae" d="m50.44 24.744c.498 1.615 2.734 1.694 4.988 1.323-1.047-2.622-2.76-5.846-4.24-9.424-.615-1.484-1.826-2.227-3.428-1.115 0 0-1.451-.743-3.422-6.738-.018-.047-.305-.757-.461-1.017-1.441-2.385-4.645-3.087-7.148-1.567-2.502 1.518-3.367 4.683-1.924 7.07 1.438 2.385 4.641 3.086 7.145 1.568.703-.429 1.273-.989 1.703-1.62.57.385 1.385 3.588 1.385 3.588l5.213 8.626.189-.693m-9.75-11.987c-1.295.785-2.951.423-3.695-.81-.748-1.235-.301-2.872.996-3.657 1.295-.785 2.953-.422 3.695.812.749 1.232.299 2.872-.996 3.655"/><path fill="#b386e2" d="m35.639 49.36v-6.969h-19.16v6.969c-12.05.378-14.477 2.351-14.477 12.637h48.12c0-10.285-2.437-12.259-14.478-12.637"/><path fill="#fed0ac" d="m10.479 33.589c0 0-3.137-.814-3.137-5.526 0-3.732 2.365-4.372 2.365-4.372 8.48 0 22.296-11.18 22.296-11.18s5.225 9.87 10.264 11.18c0 0 2.439.457 2.439 4.372 0 4.712-3.258 5.526-3.258 5.526-.041 7.107-9.615 15.683-15.424 15.683-5.813-.001-15.545-8.576-15.545-15.683"/><path fill="#e0a372" d="m29.915 36.833c0 1.549-3.164 1.998-3.89 1.998-.728 0-3.894-.549-3.894-2.098 0 0 7.784-.672 7.784.1"/><path fill="#f5f5f5" d="m20.723 30.644c.916 0 .794-2.399.794-2.399-2.81-6.366-9.06-2.336-9.06-2.336-2.433 1.101 1.091 4.582 1.653 4.735 2.65.727 6.617 0 6.617 0"/><ellipse fill="#664e27" cx="17.06" cy="27.729" rx="2.991" ry="3.035"/><g fill="#231f20"><ellipse cx="17.06" cy="27.729" rx="1" ry="1.015"/><path d="m22.301 29.16c-.766-.947-1.521-1.858-2.399-2.552-.879-.69-1.866-1.127-2.932-1.193-1.064-.104-2.182.125-3.34.347-.579.114-1.176.228-1.8.263-.603.025-1.332-.046-1.764-.517.569.229 1.131.107 1.673-.059.548-.159 1.089-.387 1.656-.579 1.12-.404 2.358-.736 3.671-.636.65.064 1.302.231 1.894.525.586.306 1.117.696 1.551 1.166.877.931 1.452 2.059 1.79 3.235"/></g><path fill="#f5f5f5" d="m31.32 30.644c-.916 0-.794-2.399-.794-2.399 2.809-6.366 9.07-2.336 9.07-2.336 2.434 1.101-1.09 4.582-1.656 4.735-2.649.727-6.617 0-6.617 0"/><ellipse fill="#664e27" cx="34.99" cy="27.729" rx="2.992" ry="3.035"/><g fill="#231f20"><ellipse cx="34.99" cy="27.729" rx="1" ry="1.014"/><path d="m29.747 29.16c.34-1.176.911-2.304 1.792-3.234.435-.47.964-.86 1.549-1.166.592-.294 1.246-.461 1.893-.525 1.313-.101 2.551.231 3.67.635.57.193 1.111.421 1.658.58.543.166 1.104.287 1.674.059-.432.471-1.16.542-1.766.517-.623-.035-1.223-.148-1.801-.263-1.154-.222-2.273-.451-3.338-.347-1.064.067-2.051.503-2.929 1.193-.881.694-1.637 1.605-2.402 2.551"/></g><path fill="#e08672" d="m28.788 40.633c-.564-.143-1.391-.074-2.479.294-.095.031-.19.062-.283.094-.095-.032-.188-.063-.286-.094-1.09-.368-1.912-.437-2.479-.294-1.686.416-4.24.213-4.24.213 1.858 1.882 2.741 4.455 7.01 4.455s5.147-2.573 7-4.455c-.002 0-2.559.203-4.243-.213"/><path fill="#b86e5d" d="m28.788 40.633c-.564-.143-1.391-.074-2.479.294-.095.031-.19.062-.283.094-.095-.032-.188-.063-.286-.094-1.09-.368-1.912-.437-2.479-.294-1.655.408-4.248.212-4.24.213 2.804.511 3.153 1.963 7.01 1.963 3.851 0 4.202-1.452 7-1.963.008-.001-2.589.195-4.243-.213"/><path fill="#cedbd5" d="m61.818 8.669c.754-2.763-.898-5.497-3.689-6.109s-5.664 1.129-6.418 3.889c-.08.302-.172 1.077-.174 1.126-.316 6.387-1.508 7.583-1.508 7.583-1.818-.524-2.783.589-2.979 2.213-1.068 8.743-3.729 16.216.959 16.286l4.959-18.18c0 0-.059-3.331.381-3.891.578.46 1.27.804 2.051.977 2.795.611 5.666-1.13 6.418-3.889m-2.437-.536c-.391 1.427-1.877 2.328-3.32 2.01-1.443-.315-2.299-1.731-1.908-3.159.389-1.428 1.875-2.328 3.32-2.01 1.443.318 2.297 1.732 1.908 3.161"/><path fill="#231f20" d="m50.635 18.58c.197-.731-.24-1.457-.979-1.618-.742-.162-1.502.3-1.703 1.031-.199.731.236 1.456.979 1.619.738.164 1.5-.299 1.703-1.032"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 24.7c-.9.3-3.6 1.2-5.9 1.5-.9.1-1.7 0-2.5-.1-.7-.2-1.3-.6-1.5-1.3l-.2.7c-1.4-.8-2.5-2.4-2.7-5.1-1.2-21.1-11.4-14.8-11.4-14.8s-.9-3.6-10-3.6c-14.1 0-21.8 9-21.8 20.9v30.3c0 0 51.1 8.7 57.7-29.3 0 .1-.7.4-1.7.8" fill="#dbb471"/><path d="m50.4 24.7c.5 1.6 2.7 1.7 5 1.3-1-2.6-2.8-5.8-4.2-9.4-.6-1.5-1.8-2.2-3.4-1.1 0 0-1.5-.7-3.4-6.7 0 0-.3-.8-.5-1-1.4-2.4-4.6-3.1-7.1-1.6-2.5 1.5-3.4 4.7-1.9 7.1 1.4 2.4 4.6 3.1 7.1 1.6.7-.4 1.3-1 1.7-1.6.6.4 1.4 3.6 1.4 3.6l5.2 8.6.1-.8m-9.7-11.9c-1.3.8-3 .4-3.7-.8-.7-1.2-.3-2.9 1-3.7 1.3-.8 3-.4 3.7.8.7 1.2.3 2.9-1 3.7" fill="#a9b5ae"/><path d="M35.6,49.4v-7H16.5v7C4.4,49.7,2,51.7,2,62h48.1C50.1,51.7,47.7,49.7,35.6,49.4z" fill="#b386e2"/><path d="m10.1 33.6c0 0-3.2-.8-3.2-5.5 0-3.7 2.4-4.4 2.4-4.4 8.7 0 24.7-11.2 24.7-11.2s3.4 9.9 8.5 11.2c0 0 2.5.5 2.5 4.4 0 4.7-3.3 5.5-3.3 5.5 0 7.1-9.8 15.7-15.8 15.7-5.8-.1-15.8-8.6-15.8-15.7" fill="#fed0ac"/><path d="m26 38.2c-3 0-4.6-2.2-3-2.2 1.5 0 4.6 0 6.1 0 1.5 0 0 2.2-3.1 2.2" fill="#e0a372"/><path d="m30.6 31.7c-1.1 0-.9-1.3-.9-1.3 1.6-8.4 11-3.9 11-3.9.7 1.5-1.7 5.1-2.4 5.2-3 .8-7.7 0-7.7 0" fill="#f5f5f5"/><circle cx="34.8" cy="28.3" r="3.3" fill="#664e27"/><circle cx="34.8" cy="28.3" r="1.1" fill="#2b2925"/><path d="m29.7 30.4c1.6-10.1 9.9-3.4 13.2-4.8-3.3 3.1-9.9-3.6-13.2 4.8" fill="#3b3226"/><path d="m21.4 31.7c1.1 0 .9-1.3.9-1.3-1.6-8.4-11-3.9-11-3.9-.7 1.5 1.7 5.1 2.4 5.2 3.1.8 7.7 0 7.7 0" fill="#f5f5f5"/><circle cx="17.2" cy="28.3" r="3.3" fill="#664e27"/><path d="m22.4 30.4c-1.7-10.1-9.9-3.4-13.2-4.8 3.2 3.1 9.8-3.6 13.2 4.8" fill="#3b3226"/><path d="m26 41.9l-7.3-1.1c4.4 6.3 10.3 6.3 14.7 0l-7.4 1.1" fill="#e08672"/><path d="m28.9 40.5c-2.1-.8-2.9.5-2.9.5s-.7-1.3-2.9-.5c-1.7.6-4.5.3-4.4.3 2.9.6 3.3 1.9 7.3 1.9 4 0 4.4-1.2 7.3-1.9.1 0-2.7.4-4.4-.3" fill="#b86e5d"/><circle cx="17.2" cy="28.3" r="1.1" fill="#2b2925"/><path d="m61.8 8.7c.8-2.8-.9-5.5-3.7-6.1-2.8-.6-5.7 1.1-6.4 3.9-.1.3-.2 1.1-.2 1.1-.3 6.4-1.5 7.6-1.5 7.6-1.8-.5-2.8.6-3 2.2-1.1 8.7-3.7 16.2 1 16.3l5-18.2c0 0-.1-3.3.4-3.9.6.5 1.3.8 2.1 1 2.7.6 5.6-1.2 6.3-3.9m-2.4-.6c-.4 1.4-1.9 2.3-3.3 2-1.4-.3-2.3-1.7-1.9-3.2.4-1.4 1.9-2.3 3.3-2 1.4.4 2.3 1.8 1.9 3.2" fill="#cedbd5"/><path d="m50.6 18.6c.2-.7-.2-1.5-1-1.6-.7-.2-1.5.3-1.7 1-.2.7.2 1.5 1 1.6.8.2 1.5-.3 1.7-1" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fd.svg
index 96eb9c6..b581fe5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m60.31 24.744c-.934.333-3.563 1.234-5.89 1.457-.851.057-1.694.022-2.484-.142-.73-.212-1.284-.614-1.5-1.315l-.188.69c-1.446-.83-2.486-2.403-2.654-5.148-1.282-20.985-11.541-14.71-11.541-14.71s-.889-3.578-9.997-3.578c-14.1 0-21.796 9.04-21.796 20.946v30.333c0 0 51.05 8.721 57.738-29.27 0 .001-.655.332-1.688.738"/><path fill="#a9b5ae" d="m50.44 24.744c.497 1.615 2.733 1.694 4.988 1.323-1.048-2.622-2.76-5.846-4.239-9.424-.617-1.484-1.828-2.227-3.43-1.115 0 0-1.451-.743-3.421-6.738-.017-.047-.304-.757-.461-1.017-1.442-2.385-4.644-3.087-7.148-1.567-2.503 1.518-3.366 4.683-1.925 7.07 1.439 2.385 4.641 3.086 7.145 1.568.703-.429 1.274-.989 1.703-1.62.571.385 1.386 3.588 1.386 3.588l5.214 8.626.188-.693m-9.749-11.987c-1.297.785-2.953.423-3.697-.81-.747-1.235-.301-2.872.996-3.657s2.954-.422 3.697.812c.747 1.232.299 2.872-.996 3.655"/><path fill="#b386e2" d="m35.639 49.36v-6.969h-19.16v6.969c-12.05.378-14.477 2.351-14.477 12.637h48.12c0-10.285-2.436-12.259-14.478-12.637"/><path fill="#d6a57c" d="m10.48 33.589c0 0-3.139-.814-3.139-5.526 0-3.732 2.367-4.372 2.367-4.372 8.479 0 22.295-11.18 22.295-11.18s5.225 9.87 10.264 11.18c0 0 2.439.457 2.439 4.372 0 4.712-3.256 5.526-3.256 5.526-.042 7.107-9.615 15.683-15.426 15.683-5.812-.001-15.544-8.576-15.544-15.683"/><path fill="#b58360" d="m29.915 36.833c0 1.549-3.164 1.998-3.89 1.998-.728 0-3.894-.549-3.894-2.098.001 0 7.784-.672 7.784.1"/><path fill="#f5f5f5" d="m20.724 30.644c.917 0 .794-2.399.794-2.399-2.811-6.366-9.06-2.336-9.06-2.336-2.433 1.101 1.091 4.582 1.654 4.735 2.649.727 6.616 0 6.616 0"/><ellipse fill="#664e27" cx="17.06" cy="27.729" rx="2.991" ry="3.035"/><g fill="#231f20"><ellipse cx="17.06" cy="27.729" rx="1" ry="1.015"/><path d="m22.302 29.16c-.766-.947-1.521-1.858-2.399-2.552-.879-.69-1.865-1.127-2.932-1.193-1.064-.104-2.182.125-3.34.347-.578.114-1.176.228-1.8.263-.603.025-1.333-.046-1.763-.517.568.229 1.13.107 1.672-.059.549-.159 1.089-.387 1.656-.579 1.121-.404 2.359-.736 3.67-.636.65.064 1.303.231 1.895.525.586.306 1.117.696 1.551 1.166.877.931 1.451 2.059 1.79 3.235"/></g><path fill="#f5f5f5" d="m31.32 30.644c-.917 0-.794-2.399-.794-2.399 2.809-6.366 9.07-2.336 9.07-2.336 2.433 1.101-1.091 4.582-1.655 4.735-2.648.727-6.618 0-6.618 0"/><ellipse fill="#664e27" cx="34.99" cy="27.729" rx="2.992" ry="3.035"/><g fill="#231f20"><ellipse cx="34.99" cy="27.729" rx="1" ry="1.014"/><path d="m29.747 29.16c.341-1.176.911-2.304 1.792-3.234.435-.47.964-.86 1.55-1.166.592-.294 1.245-.461 1.892-.525 1.314-.101 2.553.231 3.671.635.569.193 1.111.421 1.657.58.543.166 1.104.287 1.676.059-.434.471-1.161.542-1.766.517-.624-.035-1.223-.148-1.802-.263-1.155-.222-2.273-.451-3.338-.347-1.063.067-2.051.503-2.93 1.193-.88.694-1.636 1.605-2.402 2.551"/></g><path fill="#b58360" d="m28.789 40.633c-.565-.143-1.392-.074-2.48.294-.094.031-.19.062-.283.094-.095-.032-.189-.063-.285-.094-1.091-.368-1.913-.437-2.48-.294-1.686.416-4.24.213-4.24.213 1.859 1.882 2.742 4.455 7.01 4.455s5.146-2.573 7.01-4.455c-.002 0-2.559.203-4.243-.213"/><path fill="#805c44" d="m28.789 40.633c-.565-.143-1.392-.074-2.48.294-.094.031-.19.062-.283.094-.095-.032-.189-.063-.285-.094-1.091-.368-1.913-.437-2.48-.294-1.655.408-4.248.212-4.24.213 2.805.511 3.154 1.963 7.01 1.963 3.85 0 4.201-1.452 7.01-1.963.007-.001-2.59.195-4.243-.213"/><path fill="#cedbd5" d="m61.819 8.669c.754-2.763-.897-5.497-3.69-6.109-2.791-.612-5.664 1.129-6.416 3.889-.082.302-.172 1.077-.174 1.126-.318 6.387-1.509 7.583-1.509 7.583-1.818-.524-2.784.589-2.979 2.213-1.067 8.743-3.729 16.216.959 16.286l4.959-18.18c0 0-.059-3.331.383-3.891.576.46 1.268.804 2.051.977 2.792.611 5.663-1.13 6.416-3.889m-2.438-.536c-.39 1.427-1.877 2.328-3.319 2.01-1.444-.315-2.298-1.731-1.909-3.159.39-1.428 1.875-2.328 3.321-2.01 1.442.318 2.296 1.732 1.907 3.161"/><path fill="#231f20" d="m50.635 18.58c.199-.731-.24-1.457-.979-1.618-.741-.162-1.501.3-1.703 1.031-.199.731.236 1.456.979 1.619.739.164 1.501-.299 1.703-1.032"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 24.7c-.9.3-3.6 1.2-5.9 1.5-.9.1-1.7 0-2.5-.1-.7-.2-1.3-.6-1.5-1.3l-.2.7c-1.4-.8-2.5-2.4-2.7-5.1-1.2-21.1-11.4-14.8-11.4-14.8s-.9-3.6-10-3.6c-14.1 0-21.8 9-21.8 20.9v30.3c0 0 51.1 8.7 57.7-29.3 0 .1-.7.4-1.7.8" fill="#594640"/><path d="m50.4 24.7c.5 1.6 2.7 1.7 5 1.3-1-2.6-2.8-5.8-4.2-9.4-.6-1.5-1.8-2.2-3.4-1.1 0 0-1.5-.7-3.4-6.7 0 0-.3-.8-.5-1-1.4-2.4-4.6-3.1-7.1-1.6-2.5 1.5-3.4 4.7-1.9 7.1 1.4 2.4 4.6 3.1 7.1 1.6.7-.4 1.3-1 1.7-1.6.6.4 1.4 3.6 1.4 3.6l5.2 8.6.1-.8m-9.7-11.9c-1.3.8-3 .4-3.7-.8-.7-1.2-.3-2.9 1-3.7 1.3-.8 3-.4 3.7.8.7 1.2.3 2.9-1 3.7" fill="#a9b5ae"/><path d="M35.6,49.4v-7H16.5v7C4.4,49.7,2,51.7,2,62h48.1C50.1,51.7,47.7,49.7,35.6,49.4z" fill="#b386e2"/><path d="m10.1 33.6c0 0-3.2-.8-3.2-5.5 0-3.7 2.4-4.4 2.4-4.4 8.7 0 24.7-11.2 24.7-11.2s3.4 9.9 8.5 11.2c0 0 2.5.5 2.5 4.4 0 4.7-3.3 5.5-3.3 5.5 0 7.1-9.8 15.7-15.8 15.7-5.8-.1-15.8-8.6-15.8-15.7" fill="#d6a57c"/><path d="m26 38.2c-3 0-4.6-2.2-3-2.2s4.6 0 6.1 0c1.5 0 0 2.2-3.1 2.2" fill="#b58360"/><path d="m30.6 31.7c-1.1 0-.9-1.3-.9-1.3 1.6-8.4 11-3.9 11-3.9.7 1.5-1.7 5.1-2.4 5.2-3.1.8-7.7 0-7.7 0" fill="#f5f5f5"/><circle cx="34.8" cy="28.3" r="3.3" fill="#664e27"/><circle cx="34.8" cy="28.3" r="1.1" fill="#2b2925"/><path d="m29.7 30.4c1.7-10.1 9.9-3.4 13.2-4.8-3.3 3.1-9.9-3.6-13.2 4.8" fill="#3b3226"/><path d="m21.4 31.7c1.1 0 .9-1.3.9-1.3-1.6-8.4-11-3.9-11-3.9-.7 1.5 1.7 5.1 2.4 5.2 3.1.8 7.7 0 7.7 0" fill="#f5f5f5"/><circle cx="17.2" cy="28.3" r="3.3" fill="#664e27"/><path d="m22.4 30.4c-1.7-10.1-9.9-3.4-13.2-4.8 3.2 3.1 9.8-3.6 13.2 4.8" fill="#3b3226"/><path d="m26 41.9l-7.3-1.1c4.4 6.3 10.3 6.3 14.7 0l-7.4 1.1" fill="#b58360"/><path d="m28.9 40.5c-2.1-.8-2.9.5-2.9.5s-.7-1.3-2.9-.5c-1.7.6-4.5.3-4.4.3 2.9.6 3.3 1.9 7.3 1.9 4 0 4.4-1.2 7.3-1.9.1 0-2.7.4-4.4-.3" fill="#805c44"/><circle cx="17.2" cy="28.3" r="1.1" fill="#2b2925"/><path d="m61.8 8.7c.8-2.8-.9-5.5-3.7-6.1-2.8-.6-5.7 1.1-6.4 3.9-.1.3-.2 1.1-.2 1.1-.3 6.4-1.5 7.6-1.5 7.6-1.8-.5-2.8.6-3 2.2-1.1 8.7-3.7 16.2 1 16.3l5-18.2c0 0-.1-3.3.4-3.9.6.5 1.3.8 2.1 1 2.7.6 5.6-1.2 6.3-3.9m-2.4-.6c-.4 1.4-1.9 2.3-3.3 2-1.4-.3-2.3-1.7-1.9-3.2.4-1.4 1.9-2.3 3.3-2 1.4.4 2.3 1.8 1.9 3.2" fill="#cedbd5"/><path d="m50.6 18.6c.2-.7-.2-1.5-1-1.6-.7-.2-1.5.3-1.7 1-.2.7.2 1.5 1 1.6.8.2 1.5-.3 1.7-1" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fe.svg
index 574a7d2..2c2be85 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m60.31 24.744c-.934.333-3.564 1.234-5.891 1.457-.85.057-1.693.022-2.484-.142-.73-.212-1.285-.614-1.5-1.315l-.188.69c-1.447-.83-2.486-2.403-2.654-5.148-1.283-20.985-11.542-14.71-11.542-14.71s-.887-3.578-9.996-3.578c-14.1 0-21.797 9.04-21.797 20.946v30.333c0 0 51.06 8.721 57.74-29.27 0 .001-.656.332-1.688.738"/><path fill="#a9b5ae" d="m50.44 24.744c.498 1.615 2.734 1.694 4.988 1.323-1.047-2.622-2.76-5.846-4.24-9.424-.615-1.484-1.826-2.227-3.428-1.115 0 0-1.451-.743-3.422-6.738-.016-.047-.305-.757-.461-1.017-1.441-2.385-4.645-3.087-7.148-1.567-2.502 1.518-3.367 4.683-1.924 7.07 1.438 2.385 4.641 3.086 7.145 1.568.703-.429 1.273-.989 1.703-1.62.57.385 1.385 3.588 1.385 3.588l5.213 8.626.189-.693m-9.75-11.987c-1.295.785-2.951.423-3.695-.81-.748-1.235-.301-2.872.996-3.657 1.295-.785 2.953-.422 3.695.812.749 1.232.299 2.872-.996 3.655"/><path fill="#b386e2" d="m35.639 49.36v-6.969h-19.16v6.969c-12.05.378-14.477 2.351-14.477 12.637h48.12c0-10.285-2.437-12.259-14.478-12.637"/><path fill="#b47d56" d="m10.479 33.589c0 0-3.137-.814-3.137-5.526 0-3.732 2.365-4.372 2.365-4.372 8.48 0 22.296-11.18 22.296-11.18s5.225 9.87 10.264 11.18c0 0 2.439.457 2.439 4.372 0 4.712-3.258 5.526-3.258 5.526-.041 7.107-9.615 15.683-15.424 15.683-5.813-.001-15.545-8.576-15.545-15.683"/><path fill="#935e3e" d="m29.915 36.833c0 1.549-3.164 1.998-3.89 1.998-.728 0-3.894-.549-3.894-2.098 0 0 7.784-.672 7.784.1"/><path fill="#f5f5f5" d="m20.723 30.644c.916 0 .794-2.399.794-2.399-2.81-6.366-9.06-2.336-9.06-2.336-2.433 1.101 1.091 4.582 1.653 4.735 2.65.727 6.617 0 6.617 0"/><ellipse fill="#664e27" cx="17.06" cy="27.729" rx="2.991" ry="3.035"/><g fill="#231f20"><ellipse cx="17.06" cy="27.729" rx="1" ry="1.015"/><path d="m22.301 29.16c-.766-.947-1.521-1.858-2.399-2.552-.879-.69-1.866-1.127-2.932-1.193-1.064-.104-2.182.125-3.34.347-.579.114-1.176.228-1.8.263-.603.025-1.332-.046-1.764-.517.569.229 1.131.107 1.674-.059.547-.159 1.088-.387 1.655-.579 1.12-.404 2.358-.736 3.671-.636.65.064 1.302.231 1.894.525.586.306 1.117.696 1.551 1.166.877.931 1.452 2.059 1.79 3.235"/></g><path fill="#f5f5f5" d="m31.32 30.644c-.916 0-.794-2.399-.794-2.399 2.809-6.366 9.07-2.336 9.07-2.336 2.434 1.101-1.09 4.582-1.656 4.735-2.649.727-6.617 0-6.617 0"/><ellipse fill="#664e27" cx="34.99" cy="27.729" rx="2.992" ry="3.035"/><g fill="#231f20"><ellipse cx="34.99" cy="27.729" rx="1" ry="1.014"/><path d="m29.747 29.16c.34-1.176.911-2.304 1.792-3.234.435-.47.964-.86 1.549-1.166.592-.294 1.246-.461 1.893-.525 1.313-.101 2.551.231 3.67.635.57.193 1.111.421 1.658.58.543.166 1.104.287 1.674.059-.432.471-1.16.542-1.766.517-.623-.035-1.223-.148-1.801-.263-1.154-.222-2.273-.451-3.338-.347-1.064.067-2.051.503-2.929 1.193-.881.694-1.637 1.605-2.402 2.551"/></g><path fill="#935e3e" d="m28.788 40.633c-.564-.143-1.391-.074-2.479.294-.095.031-.19.062-.283.094-.095-.032-.188-.063-.286-.094-1.09-.368-1.912-.437-2.479-.294-1.687.416-4.241.213-4.241.213 1.858 1.882 2.741 4.455 7.01 4.455s5.147-2.573 7-4.455c-.001 0-2.558.203-4.242-.213"/><path fill="#734c31" d="m28.788 40.633c-.564-.143-1.391-.074-2.479.294-.095.031-.19.062-.283.094-.095-.032-.188-.063-.286-.094-1.09-.368-1.912-.437-2.479-.294-1.656.408-4.249.212-4.241.213 2.804.511 3.153 1.963 7.01 1.963 3.851 0 4.202-1.452 7-1.963.009-.001-2.588.195-4.242-.213"/><path fill="#cedbd5" d="m61.818 8.669c.754-2.763-.898-5.497-3.689-6.109s-5.664 1.129-6.418 3.889c-.08.302-.172 1.077-.174 1.126-.316 6.387-1.508 7.583-1.508 7.583-1.818-.524-2.783.589-2.979 2.213-1.068 8.743-3.729 16.216.959 16.286l4.959-18.18c0 0-.059-3.331.381-3.891.578.46 1.27.804 2.051.977 2.795.611 5.666-1.13 6.418-3.889m-2.437-.536c-.391 1.427-1.877 2.328-3.32 2.01-1.443-.315-2.299-1.731-1.908-3.159.389-1.428 1.875-2.328 3.32-2.01 1.443.318 2.297 1.732 1.908 3.161"/><path fill="#231f20" d="m50.635 18.58c.197-.731-.24-1.457-.979-1.618-.742-.162-1.502.3-1.703 1.031-.199.731.236 1.456.979 1.619.738.164 1.5-.299 1.703-1.032"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 24.7c-.9.3-3.6 1.2-5.9 1.5-.9.1-1.7 0-2.5-.1-.7-.2-1.3-.6-1.5-1.3l-.2.7c-1.4-.8-2.5-2.4-2.7-5.1-1.2-21.1-11.4-14.8-11.4-14.8s-.9-3.6-10-3.6c-14.1 0-21.8 9-21.8 20.9v30.3c0 0 51.1 8.7 57.7-29.3 0 .1-.7.4-1.7.8" fill="#231f20"/><path d="m50.4 24.7c.5 1.6 2.7 1.7 5 1.3-1-2.6-2.8-5.8-4.2-9.4-.6-1.5-1.8-2.2-3.4-1.1 0 0-1.5-.7-3.4-6.7 0 0-.3-.8-.5-1-1.4-2.4-4.6-3.1-7.1-1.6-2.5 1.5-3.4 4.7-1.9 7.1 1.4 2.4 4.6 3.1 7.1 1.6.7-.4 1.3-1 1.7-1.6.6.4 1.4 3.6 1.4 3.6l5.2 8.6.1-.8m-9.7-11.9c-1.3.8-3 .4-3.7-.8-.7-1.2-.3-2.9 1-3.7 1.3-.8 3-.4 3.7.8.7 1.2.3 2.9-1 3.7" fill="#a9b5ae"/><path d="M35.6,49.4v-7H16.5v7C4.4,49.7,2,51.7,2,62h48.1C50.1,51.7,47.7,49.7,35.6,49.4z" fill="#b386e2"/><path d="m10.1 33.6c0 0-3.2-.8-3.2-5.5 0-3.7 2.4-4.4 2.4-4.4 8.7 0 24.7-11.2 24.7-11.2s3.4 9.9 8.5 11.2c0 0 2.5.5 2.5 4.4 0 4.7-3.3 5.5-3.3 5.5 0 7.1-9.8 15.7-15.8 15.7-5.8-.1-15.8-8.6-15.8-15.7" fill="#b47d56"/><path d="m26 38.2c-3 0-4.6-2.2-3-2.2s4.6 0 6.1 0c1.5 0 0 2.2-3.1 2.2" fill="#935e3e"/><path d="m30.6 31.7c-1.1 0-.9-1.3-.9-1.3 1.6-8.4 11-3.9 11-3.9.7 1.5-1.7 5.1-2.4 5.2-3 .8-7.7 0-7.7 0" fill="#f5f5f5"/><circle cx="34.8" cy="28.3" r="3.3" fill="#664e27"/><circle cx="34.8" cy="28.3" r="1.1" fill="#2b2925"/><path d="m29.7 30.4c1.7-10.1 9.9-3.4 13.2-4.8-3.3 3.1-9.9-3.6-13.2 4.8" fill="#3b3226"/><path d="m21.4 31.7c1.1 0 .9-1.3.9-1.3-1.6-8.4-11-3.9-11-3.9-.7 1.5 1.7 5.1 2.4 5.2 3.1.8 7.7 0 7.7 0" fill="#f5f5f5"/><circle cx="17.2" cy="28.3" r="3.3" fill="#664e27"/><path d="m22.4 30.4c-1.7-10.1-9.9-3.4-13.2-4.8 3.2 3.1 9.8-3.6 13.2 4.8" fill="#3b3226"/><path d="m26 41.9l-7.3-1.1c4.4 6.3 10.3 6.3 14.7 0l-7.4 1.1" fill="#935e3e"/><path d="m28.9 40.5c-2.1-.8-2.9.5-2.9.5s-.7-1.3-2.9-.5c-1.7.6-4.5.3-4.4.3 2.9.6 3.3 1.9 7.3 1.9s4.4-1.2 7.3-1.9c.1 0-2.7.4-4.4-.3" fill="#734c31"/><circle cx="17.2" cy="28.3" r="1.1" fill="#2b2925"/><path d="m61.8 8.7c.8-2.8-.9-5.5-3.7-6.1-2.8-.6-5.7 1.1-6.4 3.9-.1.3-.2 1.1-.2 1.1-.3 6.4-1.5 7.6-1.5 7.6-1.8-.5-2.8.6-3 2.2-1.1 8.7-3.7 16.2 1 16.3l5-18.2c0 0-.1-3.3.4-3.9.6.5 1.3.8 2.1 1 2.7.6 5.6-1.2 6.3-3.9m-2.4-.6c-.4 1.4-1.9 2.3-3.3 2-1.4-.3-2.3-1.7-1.9-3.2s1.9-2.3 3.3-2c1.4.4 2.3 1.8 1.9 3.2" fill="#cedbd5"/><path d="m50.6 18.6c.2-.7-.2-1.5-1-1.6-.7-.2-1.5.3-1.7 1-.2.7.2 1.5 1 1.6.8.2 1.5-.3 1.7-1" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3ff.svg
index 6c988a6..0d4ee4c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f487-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m60.31 24.744c-.934.333-3.563 1.234-5.89 1.457-.851.057-1.694.022-2.484-.142-.73-.212-1.284-.614-1.5-1.315l-.188.69c-1.446-.83-2.486-2.403-2.654-5.148-1.282-20.985-11.541-14.71-11.541-14.71s-.889-3.578-9.997-3.578c-14.1 0-21.796 9.04-21.796 20.946v30.333c0 0 51.05 8.721 57.738-29.27 0 .001-.655.332-1.688.738"/><path fill="#a9b5ae" d="m50.44 24.744c.497 1.615 2.733 1.694 4.988 1.323-1.048-2.622-2.76-5.846-4.239-9.424-.617-1.484-1.828-2.227-3.43-1.115 0 0-1.451-.743-3.421-6.738-.017-.047-.304-.757-.461-1.017-1.442-2.385-4.644-3.087-7.148-1.567-2.503 1.518-3.366 4.683-1.925 7.07 1.439 2.385 4.641 3.086 7.145 1.568.703-.429 1.274-.989 1.703-1.62.571.385 1.387 3.588 1.387 3.588l5.213 8.626.188-.693m-9.749-11.987c-1.297.785-2.953.423-3.697-.81-.747-1.235-.301-2.872.996-3.657s2.954-.422 3.697.812c.747 1.232.299 2.872-.996 3.655"/><path fill="#b386e2" d="m35.639 49.36v-6.969h-19.16v6.969c-12.05.378-14.477 2.351-14.477 12.637h48.12c0-10.285-2.436-12.259-14.478-12.637"/><path fill="#8a6859" d="m10.48 33.589c0 0-3.139-.814-3.139-5.526 0-3.732 2.367-4.372 2.367-4.372 8.479 0 22.295-11.18 22.295-11.18s5.225 9.87 10.264 11.18c0 0 2.439.457 2.439 4.372 0 4.712-3.256 5.526-3.256 5.526-.042 7.107-9.615 15.683-15.426 15.683-5.812-.001-15.544-8.576-15.544-15.683"/><path fill="#705041" d="m29.915 36.833c0 1.549-3.164 1.998-3.89 1.998-.728 0-3.894-.549-3.894-2.098.001 0 7.784-.672 7.784.1"/><path fill="#f5f5f5" d="m20.724 30.644c.917 0 .794-2.399.794-2.399-2.811-6.366-9.06-2.336-9.06-2.336-2.433 1.101 1.091 4.582 1.654 4.735 2.649.727 6.616 0 6.616 0"/><ellipse fill="#664e27" cx="17.06" cy="27.729" rx="2.991" ry="3.035"/><g fill="#231f20"><ellipse cx="17.06" cy="27.729" rx="1" ry="1.015"/><path d="m22.302 29.16c-.766-.947-1.521-1.858-2.399-2.552-.879-.69-1.865-1.127-2.932-1.193-1.064-.104-2.182.125-3.34.347-.578.114-1.176.228-1.8.263-.603.025-1.333-.046-1.763-.517.568.229 1.13.107 1.672-.059.549-.159 1.089-.387 1.656-.579 1.121-.404 2.359-.736 3.67-.636.65.064 1.303.231 1.895.525.586.306 1.117.696 1.551 1.166.877.931 1.451 2.059 1.79 3.235"/></g><path fill="#f5f5f5" d="m31.32 30.644c-.917 0-.794-2.399-.794-2.399 2.809-6.366 9.07-2.336 9.07-2.336 2.433 1.101-1.091 4.582-1.655 4.735-2.648.727-6.618 0-6.618 0"/><ellipse fill="#664e27" cx="34.99" cy="27.729" rx="2.992" ry="3.035"/><g fill="#231f20"><ellipse cx="34.99" cy="27.729" rx="1" ry="1.014"/><path d="m29.747 29.16c.341-1.176.911-2.304 1.792-3.234.435-.47.964-.86 1.55-1.166.592-.294 1.245-.461 1.892-.525 1.314-.101 2.553.231 3.671.635.569.193 1.111.421 1.657.58.543.166 1.104.287 1.676.059-.434.471-1.161.542-1.766.517-.624-.035-1.223-.148-1.802-.263-1.155-.222-2.273-.451-3.338-.347-1.063.067-2.051.503-2.93 1.193-.88.694-1.636 1.605-2.402 2.551"/></g><path fill="#7d5442" d="m28.789 40.633c-.565-.143-1.392-.074-2.48.294-.094.031-.19.062-.283.094-.095-.032-.189-.063-.285-.094-1.091-.368-1.913-.437-2.48-.294-1.686.416-4.24.213-4.24.213 1.859 1.882 2.742 4.455 7.01 4.455s5.146-2.573 7.01-4.455c-.002 0-2.559.203-4.243-.213"/><path fill="#5c3f34" d="m28.789 40.633c-.565-.143-1.392-.074-2.48.294-.094.031-.19.062-.283.094-.095-.032-.189-.063-.285-.094-1.091-.368-1.913-.437-2.48-.294-1.655.408-4.248.212-4.24.213 2.805.511 3.154 1.963 7.01 1.963 3.85 0 4.201-1.452 7.01-1.963.007-.001-2.59.195-4.243-.213"/><path fill="#cedbd5" d="m61.819 8.669c.754-2.763-.897-5.497-3.69-6.109-2.791-.612-5.664 1.129-6.416 3.889-.082.302-.172 1.077-.174 1.126-.318 6.387-1.509 7.583-1.509 7.583-1.818-.524-2.784.589-2.979 2.213-1.067 8.743-3.729 16.216.959 16.286l4.959-18.18c0 0-.059-3.331.383-3.891.576.46 1.268.804 2.051.977 2.792.611 5.663-1.13 6.416-3.889m-2.438-.536c-.39 1.427-1.877 2.328-3.319 2.01-1.444-.315-2.298-1.731-1.909-3.159.39-1.428 1.875-2.328 3.321-2.01 1.442.318 2.296 1.732 1.907 3.161"/><path fill="#231f20" d="m50.635 18.58c.199-.731-.24-1.457-.979-1.618-.741-.162-1.501.3-1.703 1.031-.199.731.236 1.456.979 1.619.739.164 1.501-.299 1.703-1.032"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 24.7c-.9.3-3.6 1.2-5.9 1.5-.8.1-1.7 0-2.5-.1-.7-.2-1.3-.6-1.5-1.3l-.2.7c-1.4-.8-2.5-2.4-2.7-5.1-1.2-21.1-11.4-14.8-11.4-14.8s-.9-3.6-10-3.6c-14.1 0-21.8 9-21.8 20.9v30.3c0 0 51.1 8.7 57.7-29.3 0 .1-.7.4-1.7.8" fill="#231f20"/><path d="m50.4 24.7c.5 1.6 2.7 1.7 5 1.3-1-2.6-2.8-5.8-4.2-9.4-.6-1.5-1.8-2.2-3.4-1.1 0 0-1.5-.7-3.4-6.7 0 0-.3-.8-.5-1-1.4-2.4-4.6-3.1-7.1-1.6-2.5 1.5-3.4 4.7-1.9 7.1 1.4 2.4 4.6 3.1 7.1 1.6.7-.4 1.3-1 1.7-1.6.6.4 1.4 3.6 1.4 3.6l5.2 8.6.1-.8m-9.7-11.9c-1.3.8-3 .4-3.7-.8-.7-1.2-.3-2.9 1-3.7 1.3-.8 3-.4 3.7.8.7 1.2.3 2.9-1 3.7" fill="#a9b5ae"/><path d="M35.6,49.4v-7H16.5v7C4.4,49.7,2,51.7,2,62h48.1C50.1,51.7,47.7,49.7,35.6,49.4z" fill="#b386e2"/><path d="m10.1 33.6c0 0-3.2-.8-3.2-5.5 0-3.7 2.4-4.4 2.4-4.4 8.7 0 24.7-11.2 24.7-11.2s3.4 9.9 8.5 11.2c0 0 2.5.5 2.5 4.4 0 4.7-3.3 5.5-3.3 5.5 0 7.1-9.8 15.7-15.8 15.7s-15.8-8.6-15.8-15.7" fill="#8a6859"/><path d="m26 38.2c-3 0-4.6-2.2-3-2.2 1.5 0 4.6 0 6.1 0 1.5 0 0 2.2-3.1 2.2" fill="#705041"/><path d="m30.6 31.7c-1.1 0-.9-1.3-.9-1.3 1.6-8.4 11-3.9 11-3.9.7 1.5-1.7 5.1-2.4 5.2-3.1.8-7.7 0-7.7 0" fill="#f5f5f5"/><circle cx="34.8" cy="28.3" r="3.3" fill="#664e27"/><circle cx="34.8" cy="28.3" r="1.1" fill="#2b2925"/><path d="m29.7 30.4c1.7-10.1 9.9-3.4 13.2-4.8-3.3 3.1-9.9-3.6-13.2 4.8" fill="#3b3226"/><path d="m21.4 31.7c1.1 0 .9-1.3.9-1.3-1.6-8.4-11-3.9-11-3.9-.7 1.5 1.7 5.1 2.4 5.2 3.1.8 7.7 0 7.7 0" fill="#f5f5f5"/><circle cx="17.2" cy="28.3" r="3.3" fill="#664e27"/><path d="m22.4 30.4c-1.7-10.1-9.9-3.4-13.2-4.8 3.2 3.1 9.8-3.6 13.2 4.8" fill="#3b3226"/><path d="m26 41.9l-7.3-1.1c4.4 6.3 10.3 6.3 14.7 0l-7.4 1.1" fill="#7d5442"/><path d="m28.9 40.5c-2.1-.8-2.9.5-2.9.5s-.7-1.3-2.9-.5c-1.7.6-4.5.3-4.4.3 2.9.6 3.3 1.9 7.3 1.9s4.4-1.2 7.3-1.9c.1 0-2.7.4-4.4-.3" fill="#5c3f34"/><circle cx="17.2" cy="28.3" r="1.1" fill="#2b2925"/><path d="m61.8 8.7c.8-2.8-.9-5.5-3.7-6.1-2.8-.6-5.7 1.1-6.4 3.9-.1.3-.2 1.1-.2 1.1-.3 6.4-1.5 7.6-1.5 7.6-1.8-.5-2.8.6-3 2.2-1.1 8.7-3.7 16.2 1 16.3l5-18.2c0 0-.1-3.3.4-3.9.6.5 1.3.8 2.1 1 2.7.6 5.6-1.2 6.3-3.9m-2.4-.6c-.4 1.4-1.9 2.3-3.3 2-1.4-.3-2.3-1.7-1.9-3.2.4-1.4 1.9-2.3 3.3-2 1.4.4 2.3 1.8 1.9 3.2" fill="#cedbd5"/><path d="m50.6 18.6c.2-.7-.2-1.5-1-1.6-.7-.2-1.5.3-1.7 1-.2.7.2 1.5 1 1.6.8.2 1.5-.3 1.7-1" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f487.svg b/build/js/jsxc/lib/emojione/assets/svg/1f487.svg
index 27fb10c..0d345e7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f487.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f487.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m60.32 24.744c-.934.333-3.564 1.234-5.891 1.457-.85.057-1.693.022-2.484-.142-.73-.212-1.285-.614-1.5-1.315l-.188.69c-1.447-.83-2.486-2.403-2.654-5.148-1.283-20.985-11.542-14.71-11.542-14.71s-.887-3.578-9.996-3.578c-14.1 0-21.797 9.04-21.797 20.946v30.333c0 0 51.06 8.721 57.74-29.27 0 .001-.656.332-1.688.738"/><path fill="#a9b5ae" d="m50.44 24.744c.498 1.615 2.732 1.694 4.988 1.323-1.047-2.622-2.76-5.846-4.24-9.424-.615-1.484-1.826-2.227-3.428-1.115 0 0-1.451-.743-3.422-6.738-.018-.047-.305-.757-.461-1.017-1.441-2.385-4.645-3.087-7.148-1.567-2.502 1.518-3.367 4.683-1.924 7.07 1.438 2.385 4.641 3.086 7.145 1.568.703-.429 1.273-.989 1.703-1.62.57.385 1.385 3.588 1.385 3.588l5.213 8.626.189-.693m-9.75-11.987c-1.295.785-2.951.423-3.697-.81-.746-1.235-.299-2.872.998-3.657 1.295-.785 2.953-.422 3.695.812.749 1.232.299 2.872-.996 3.655"/><path fill="#b386e2" d="m35.641 49.36v-6.969h-19.16v6.969c-12.05.378-14.477 2.351-14.477 12.637h48.12c0-10.285-2.437-12.259-14.478-12.637"/><path fill="#ffdd67" d="m10.481 33.589c0 0-3.137-.814-3.137-5.526 0-3.732 2.365-4.372 2.365-4.372 8.48 0 22.296-11.18 22.296-11.18s5.223 9.87 10.264 11.18c0 0 2.439.457 2.439 4.372 0 4.712-3.258 5.526-3.258 5.526-.041 7.107-9.615 15.683-15.424 15.683-5.813-.001-15.545-8.576-15.545-15.683"/><path fill="#eba352" d="m29.917 36.833c0 1.549-3.164 1.998-3.89 1.998-.728 0-3.894-.549-3.894-2.098 0 0 7.784-.672 7.784.1"/><path fill="#f5f5f5" d="m20.725 30.644c.916 0 .793-2.399.793-2.399-2.809-6.366-9.06-2.336-9.06-2.336-2.433 1.101 1.091 4.582 1.653 4.735 2.65.727 6.617 0 6.617 0"/><ellipse fill="#664e27" cx="17.06" cy="27.729" rx="2.991" ry="3.035"/><g fill="#231f20"><ellipse cx="17.06" cy="27.729" rx="1" ry="1.015"/><path d="m22.303 29.16c-.766-.947-1.521-1.858-2.399-2.552-.879-.69-1.866-1.127-2.932-1.193-1.064-.104-2.182.125-3.34.347-.579.114-1.176.228-1.8.263-.603.025-1.332-.046-1.764-.517.569.229 1.131.107 1.674-.059.547-.159 1.088-.387 1.655-.579 1.12-.404 2.358-.736 3.671-.636.65.064 1.302.231 1.894.525.586.306 1.117.696 1.551 1.166.877.931 1.452 2.059 1.79 3.235"/></g><path fill="#f5f5f5" d="m31.33 30.644c-.916 0-.794-2.399-.794-2.399 2.809-6.366 9.07-2.336 9.07-2.336 2.434 1.101-1.09 4.582-1.656 4.735-2.649.727-6.617 0-6.617 0"/><ellipse fill="#664e27" cx="34.992" cy="27.729" rx="2.992" ry="3.035"/><g fill="#231f20"><ellipse cx="34.992" cy="27.729" rx="1" ry="1.014"/><path d="m29.749 29.16c.34-1.176.911-2.304 1.792-3.234.435-.47.964-.86 1.549-1.166.592-.294 1.246-.461 1.893-.525 1.313-.101 2.551.231 3.67.635.57.193 1.111.421 1.658.58.543.166 1.104.287 1.674.059-.432.471-1.16.542-1.766.517-.623-.035-1.223-.148-1.801-.263-1.154-.222-2.273-.451-3.338-.347-1.064.067-2.051.503-2.929 1.193-.881.694-1.637 1.605-2.402 2.551"/></g><path fill="#f09985" d="m28.79 40.633c-.564-.143-1.391-.074-2.479.294-.095.031-.19.062-.283.094-.095-.032-.188-.063-.286-.094-1.09-.368-1.912-.437-2.479-.294-1.686.416-4.24.213-4.24.213 1.858 1.882 2.741 4.455 7.01 4.455s5.147-2.573 7-4.455c-.002 0-2.559.203-4.243-.213"/><path fill="#d47f6c" d="m28.79 40.633c-.564-.143-1.391-.074-2.479.294-.095.031-.19.062-.283.094-.095-.032-.188-.063-.286-.094-1.09-.368-1.912-.437-2.479-.294-1.655.408-4.248.212-4.24.213 2.804.511 3.153 1.963 7.01 1.963 3.851 0 4.202-1.452 7-1.963.008-.001-2.589.195-4.243-.213"/><path fill="#cedbd5" d="m61.82 8.669c.754-2.763-.898-5.497-3.689-6.109s-5.664 1.129-6.418 3.889c-.08.302-.172 1.077-.174 1.126-.316 6.387-1.508 7.583-1.508 7.583-1.818-.524-2.783.589-2.979 2.213-1.068 8.743-3.729 16.216.959 16.286l4.959-18.18c0 0-.059-3.331.381-3.891.578.46 1.27.804 2.051.977 2.795.611 5.666-1.13 6.418-3.889m-2.437-.536c-.391 1.427-1.877 2.328-3.32 2.01-1.443-.315-2.299-1.731-1.908-3.159.389-1.428 1.875-2.328 3.32-2.01 1.443.318 2.296 1.732 1.908 3.161"/><path fill="#231f20" d="m50.637 18.58c.197-.731-.24-1.457-.979-1.618-.742-.162-1.502.3-1.703 1.031-.199.731.236 1.456.979 1.619.738.164 1.5-.299 1.703-1.032"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 24.7c-.9.3-3.6 1.2-5.9 1.5-.8.1-1.7 0-2.5-.1-.7-.2-1.3-.6-1.5-1.3l-.2.7c-1.4-.8-2.5-2.4-2.7-5.1-1.2-21.1-11.4-14.8-11.4-14.8s-.9-3.6-10-3.6c-14.1 0-21.8 9-21.8 20.9v30.3c0 0 51.1 8.7 57.7-29.3 0 .1-.7.4-1.7.8" fill="#ffb300"/><path d="m50.4 24.7c.5 1.6 2.7 1.7 5 1.3-1-2.6-2.8-5.8-4.2-9.4-.6-1.5-1.8-2.2-3.4-1.1 0 0-1.5-.7-3.4-6.7 0 0-.3-.8-.5-1-1.4-2.4-4.6-3.1-7.1-1.6-2.5 1.5-3.4 4.7-1.9 7.1 1.4 2.4 4.6 3.1 7.1 1.6.7-.4 1.3-1 1.7-1.6.6.4 1.4 3.6 1.4 3.6l5.2 8.6.1-.8m-9.7-11.9c-1.3.8-3 .4-3.7-.8-.7-1.2-.3-2.9 1-3.7 1.3-.8 3-.4 3.7.8.7 1.2.3 2.9-1 3.7" fill="#a9b5ae"/><path d="M35.6,49.4v-7H16.5v7C4.4,49.7,2,51.7,2,62h48.1C50.1,51.7,47.7,49.7,35.6,49.4z" fill="#b386e2"/><path d="m10.1 33.6c0 0-3.2-.8-3.2-5.5 0-3.7 2.4-4.4 2.4-4.4 8.7 0 24.7-11.2 24.7-11.2s3.4 9.9 8.5 11.2c0 0 2.5.5 2.5 4.4 0 4.7-3.3 5.5-3.3 5.5 0 7.1-9.8 15.7-15.8 15.7-5.8-.1-15.8-8.6-15.8-15.7" fill="#ffdd67"/><path d="m26 38.2c-3 0-4.6-2.2-3-2.2s4.6 0 6.1 0c1.5 0 0 2.2-3.1 2.2" fill="#eba352"/><path d="m30.6 31.7c-1.1 0-.9-1.3-.9-1.3 1.6-8.4 11-3.9 11-3.9.7 1.5-1.7 5.1-2.4 5.2-3.1.8-7.7 0-7.7 0" fill="#f5f5f5"/><circle cx="34.8" cy="28.3" r="3.3" fill="#664e27"/><circle cx="34.8" cy="28.3" r="1.1" fill="#2b2925"/><path d="m29.7 30.4c1.7-10.1 9.9-3.4 13.2-4.8-3.3 3.1-9.9-3.6-13.2 4.8" fill="#3b3226"/><path d="m21.4 31.7c1.1 0 .9-1.3.9-1.3-1.6-8.4-11-3.9-11-3.9-.7 1.5 1.7 5.1 2.4 5.2 3.1.8 7.7 0 7.7 0" fill="#f5f5f5"/><circle cx="17.2" cy="28.3" r="3.3" fill="#664e27"/><path d="m22.4 30.4c-1.7-10.1-9.9-3.4-13.2-4.8 3.2 3.1 9.8-3.6 13.2 4.8" fill="#3b3226"/><path d="m26 41.9l-7.3-1.1c4.4 6.3 10.3 6.3 14.7 0l-7.4 1.1" fill="#f09985"/><path d="m28.9 40.5c-2.1-.8-2.9.5-2.9.5s-.7-1.3-2.9-.5c-1.7.6-4.5.3-4.4.3 2.9.6 3.3 1.9 7.3 1.9 4 0 4.4-1.2 7.3-1.9.1 0-2.7.4-4.4-.3" fill="#d47f6c"/><circle cx="17.2" cy="28.3" r="1.1" fill="#2b2925"/><path d="m61.8 8.7c.8-2.8-.9-5.5-3.7-6.1s-5.7 1.1-6.4 3.9c-.1.3-.2 1.1-.2 1.1-.3 6.4-1.5 7.6-1.5 7.6-1.8-.5-2.8.6-3 2.2-1.1 8.7-3.7 16.2 1 16.3l5-18.2c0 0-.1-3.3.4-3.9.6.5 1.3.8 2.1 1 2.7.6 5.6-1.2 6.3-3.9m-2.4-.6c-.4 1.4-1.9 2.3-3.3 2-1.4-.3-2.3-1.7-1.9-3.2.4-1.4 1.9-2.3 3.3-2 1.4.4 2.3 1.8 1.9 3.2" fill="#cedbd5"/><path d="m50.6 18.6c.2-.7-.2-1.5-1-1.6-.7-.2-1.5.3-1.7 1-.2.7.2 1.5 1 1.6.8.2 1.5-.3 1.7-1" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f488.svg b/build/js/jsxc/lib/emojione/assets/svg/1f488.svg
index c7dd66e..8db2bdc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f488.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f488.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d8e0e0" d="m19.281 18.943h25.438v38.05h-25.438z"/><path fill="#428bc1" d="m20.914 23.906c0-1.966 0-3.932 0-5.898 7.391-1.809 22.17-4.738 22.17-4.738-7.391 1.809-14.781 8.827-22.17 10.636"/><path fill="#fff" d="m20.914 29.531c0-1.966 0-3.932 0-5.898 7.391-1.809 14.781-8.827 22.17-10.635 0 1.966 0 3.932 0 5.897-7.391 1.809-14.781 8.827-22.17 10.636"/><path fill="#ed4c5c" d="m20.914 35.16c0-1.967 0-3.933 0-5.898 7.391-1.809 14.781-8.827 22.17-10.635 0 1.966 0 3.932 0 5.897-7.391 1.809-14.781 8.827-22.17 10.636"/><path fill="#fff" d="m20.914 40.781c0-1.967 0-3.933 0-5.898 7.391-1.809 14.781-8.827 22.17-10.635 0 1.966 0 3.932 0 5.897-7.391 1.808-14.781 8.827-22.17 10.636"/><path fill="#428bc1" d="m20.914 46.33c0-1.966 0-3.932 0-5.897 7.391-1.81 14.781-8.827 22.17-10.636 0 1.966 0 3.932 0 5.898-7.391 1.808-14.781 8.826-22.17 10.635"/><path fill="#fff" d="m20.914 51.952c0-1.966 0-3.932 0-5.897 7.391-1.81 14.781-8.827 22.17-10.635 0 1.965 0 3.931 0 5.897-7.391 1.808-14.781 8.826-22.17 10.635"/><path fill="#ed4c5c" d="m20.914 57.58c0-1.966 0-3.932 0-5.897 7.391-1.81 14.781-8.827 22.17-10.635 0 1.965 0 3.931 0 5.897-7.391 1.808-14.781 8.826-22.17 10.635"/><path fill="#fff" d="m24.08 61.3c0-1.966-3.17-2.026-3.17-3.992 7.391-1.81 14.781-8.827 22.17-10.635 0 1.965 0 3.931 0 5.897-7.391 1.808-11.611 6.92-19 8.73"/><path fill="#428bc1" d="m29.76 58.859c4.442-2.588 8.884-5.557 13.326-6.644 0 1.967 0 3.932 0 5.897-7.391 1.811-16.274 2.466-13.326.747"/><path fill="#b0b8b8" d="m45 13.825h-26c0-15.767 26-15.767 26 0"/><g fill="#c1c9c9"><path d="m47 17.609c0 1.017-.896 1.841-2 1.841h-26c-1.104 0-2-.825-2-1.841v-1.943c0-1.017.896-1.841 2-1.841h26c1.104 0 2 .824 2 1.841v1.943"/><path d="m47 60.16c0 1.016-.896 1.841-2 1.841h-26c-1.104 0-2-.825-2-1.841v-1.943c0-1.016.896-1.841 2-1.841h26c1.104 0 2 .825 2 1.841v1.943"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d8e0e0" d="m19.3 18.9h25.4v38h-25.4z"/><path d="m20.9 23.9c0-2 0-3.9 0-5.9 7.4-1.8 22.2-4.7 22.2-4.7-7.4 1.8-14.8 8.8-22.2 10.6" fill="#428bc1"/><path d="m20.9 29.5c0-2 0-3.9 0-5.9 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.8-14.8 8.8-22.2 10.6" fill="#fff"/><path d="m20.9 35.2c0-2 0-3.9 0-5.9 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.7-14.8 8.7-22.2 10.6" fill="#ed4c5c"/><path d="m20.9 40.8c0-2 0-3.9 0-5.9 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.8-14.8 8.8-22.2 10.6" fill="#fff"/><path d="m20.9 46.3c0-2 0-3.9 0-5.9 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.8-14.8 8.8-22.2 10.6" fill="#428bc1"/><path d="m20.9 52c0-2 0-3.9 0-5.9 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.7-14.8 8.7-22.2 10.6" fill="#fff"/><path d="m20.9 57.6c0-2 0-3.9 0-5.9 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.8-14.8 8.8-22.2 10.6" fill="#ed4c5c"/><path d="m24.1 61.3c0-2-3.2-2-3.2-4 7.4-1.8 14.8-8.8 22.2-10.6 0 2 0 3.9 0 5.9-7.4 1.8-11.6 6.9-19 8.7" fill="#fff"/><path d="m29.8 58.9c4.4-2.6 8.9-5.6 13.3-6.6 0 2 0 3.9 0 5.9-7.4 1.7-16.3 2.4-13.3.7" fill="#428bc1"/><path d="m45 13.8h-26c0-15.7 26-15.7 26 0" fill="#b0b8b8"/><g fill="#c1c9c9"><path d="m47 17.6c0 1-.9 1.8-2 1.8h-26c-1.1 0-2-.8-2-1.8v-1.9c0-1 .9-1.8 2-1.8h26c1.1 0 2 .8 2 1.8v1.9"/><path d="m47 60.2c0 1-.9 1.8-2 1.8h-26c-1.1 0-2-.8-2-1.8v-1.9c0-1 .9-1.8 2-1.8h26c1.1 0 2 .8 2 1.8v1.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f489.svg b/build/js/jsxc/lib/emojione/assets/svg/1f489.svg
index aed2361..0a2fe96 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f489.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f489.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m59.705 25.491c0 9.793-7.07 9.793-7.07 0 0-5.814 3.535-10.529 3.535-10.529s3.535 4.714 3.535 10.529"/><path d="m54.48 43.2c0 7.458-7.07 7.457-7.07 0 0-4.427 3.535-8.02 3.535-8.02s3.535 3.591 3.535 8.02"/></g><path fill="#d0d0d0" d="M21.13 55.45 9.475 43.663 35.38 17.468 47.03 29.26z"/><path fill="#ed4c5c" d="m30.2 43.663l14.24-14.403-9.06-9.17-14.25 14.405z"/><path fill="#333" d="m27.605 46.28l2.595-2.617-9.07-9.168-2.59 2.615z"/><path fill="#bcc0c1" d="m43.793 25.982l2.587-2.619-5.18-5.243-2.587 2.623z"/><g fill="#42ade2"><path d="M14.654 62 15.95 60.69 4.295 48.902 3 50.21z"/><path d="m12.714 57.41l5.178-5.23-5.178-5.243-5.183 5.243z"/></g><path fill="#bcc0c1" d="m43.12 20.08l.33.339.331.335.669.67 15.286-15.465.634-1.98.315-.99.315-.989z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m59.7 25.5c0 9.8-7.1 9.8-7.1 0 0-5.8 3.5-10.5 3.5-10.5s3.6 4.7 3.6 10.5"/><path d="m54.5 43.2c0 7.5-7.1 7.5-7.1 0 0-4.4 3.5-8 3.5-8s3.6 3.6 3.6 8"/></g><path fill="#d0d0d0" d="M21.1 55.5 9.5 43.7 35.4 17.5 47 29.3z"/><path fill="#ed4c5c" d="m30.2 43.7l14.2-14.4-9-9.2-14.3 14.4z"/><path fill="#333" d="m27.6 46.3l2.6-2.6-9.1-9.2-2.6 2.6z"/><path fill="#bcc0c1" d="m43.8 26l2.6-2.6-5.2-5.3-2.6 2.6z"/><g fill="#42ade2"><path d="m14.7 62l1.2-1.3-11.6-11.8-1.3 1.3z"/><path d="m12.7 57.4l5.2-5.2-5.2-5.3-5.2 5.3z"/></g><path fill="#fff" d="m45.1 19.4l-.3-.3z"/><path fill="#bcc0c1" d="m43.1 20.1l.4.3.3.4.6.6 15.3-15.4.7-2 .3-1 .3-1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f48a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f48a.svg
index 8221726..ea0a9a8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f48a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f48a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m6.151 57.85c-5.182-5.184-5.564-13.205-.854-17.917l17.06-17.06 18.771 18.77-17.06 17.06c-4.712 4.712-12.733 4.329-17.917-.852"/><path fill="#42ade2" d="m58.3 26.769c5.288-5.289 4.86-14.292-.957-20.11-5.817-5.816-14.82-6.246-20.11-.956l-12.8 12.797-3.669 3.669-.056.055.005.005c-.67.73-.657 1.861.05 2.569l18.438 18.437c.707.707 1.839.721 2.569.05l.005.005.052-.052c0 0 .002-.002.004-.002l3.669-3.671c0 0 0-.001.002-.002l12.796-12.794"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.2 57.8c-5.2-5.1-5.6-13.2-.9-17.9l17.1-17.1 18.8 18.8-17.1 17.1c-4.7 4.7-12.8 4.3-17.9-.9" fill="#ffce31"/><path d="m58.3 26.8c5.3-5.3 4.9-14.3-1-20.1-5.8-5.8-14.8-6.2-20.1-1l-12.8 12.8-3.7 3.7-.1.1c-.7.7-.7 1.9 0 2.6l18.4 18.4c.7.7 1.8.7 2.6 0l.1-.1c0 0 0 0 0 0l3.7-3.7c0 0 0 0 0 0l12.9-12.7" fill="#42ade2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f48b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f48b.svg
index 59e7ec6..a2d76f2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f48b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f48b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#c94747" d="m11.185 40.711c3.651-1.926 5.347-2.544-.681-4.256 1.14-.122 7.519 2.098 9.541-.323 1.659-1.167-6.548-2.711-6.97-3.879 1.551.961 8.552 4.079 9.887 1.291-.243-1.028-1.232-2.92-4.669-3.903.979.437 3.091.218 3.879-.597-.251-.926-4.191-3.298-4.563-6.385 1.263 1.842 2.925 4.882 4.913 5.454 0 0 .628-1.495 2.782-2.093-1.985-.001-4.04-1.158-4.302-2.172 1.431 2.301 6.396 1.121 8.462 3.045 0 0-.377-1.307 1.014-3.05.148-.412-.762-1.137-.333-1.282.195.242.246.861.831.755 1.337-.53 2.526-2.248 1.651-3.756.607.344.657 1.72.768 2.506.807.026 2.24-.144 3.699 1.311.288-.222.19-.697.473-.928.284.953.283 3.071 1.667 3.048 1.101-.018 2.504-2.422 2.739-3.358-.052 2.297 1.234 2.03 1.626 2.092 1.037-.103 2.128-3.388 2.627-3.394-.169.414-.222 1.692-.121 2.387 1.104.237 3.945-1.094 4.487-1.708-.07.453-.316.719-.217 1.347.958.215 6.671-2.497 8.05-5.259-1.536-.731-2.732-1.516-3.903-1.869-.68.604-.732 3.147-1.573 2.928.445-.563 1.434-2.713.554-3.416-3.79-2.602-1.886 1.956-2.256 2.421.021-.839-1.711-5.47-3.314-5.05-.316.39-.949-2.343-2.02 3.607.091-.97 1.342-4.889-4.508-6.51-.294 1.485 1.728 5.993 1.246 7.03-.212-1.939-1.692-6.527-2.742-7.652-2.236-.864-6.101-2.502-7.838-1.852-1.964.546 3.03 4.955 1.641 6.841.313-2.636-2.803-5.37-4.904-5.423-4.341 2.233-.838 6.341-1.472 8.273-.377-2.371-1.633-2.947-1.388-5.695-1.129.75-1.23 2.159-2.372 3.26-.579.154-.909-.14-1.492.016-1.044 1.069.871 3.404.472 4.346-.672-1.52-.695-3.687-2.405-3.95-1.378-.934-4.345-.154-6.521 1.286-2.504.685-4.941 7.453-4.817 8.436.16 1.248 2.303 1.383 2.447 2.572-.886-.462-1.17-1.508-2.649-1.396-.549 1.069-.831 1.937-.949 3.454 1.535 1.032 3.387 1.934 3.875 3.353-1.353-.519-2.154-2.57-3.979-2-2.313 6.531.467 5.285.835 6.19-.792.251-1.556-.492-1.912-.034-1.779 3.348.254 3.283.495 3.869-.445-.007-.892-.016-1.338-.023-.7.618-.847 2.734-.646 3.656 1.458-.693 4.722-1.421 3.891-3.215.927.052 1.825.075 2.3-.348"/><path fill="#ed4c5c" d="m50.654 23.731c-1.708.393-6.906.803-8.236 2.288 1.496 2.393 7.425 2.784 8.939 5.157-2.254-1.38-6.96-3.436-10.02-4.159-3.589-.848-2.549 1.204-3.713 4.086.54 1.119 2.197 4.11 2.337 5.079-.91-.989-1.676-5.593-3.174-3.11-2.354 3.9 1.306 4.693 2.89 8.326-1.029-1.358-2.997-4.056-4.273-5.718l-.863 1.508c-1.523-.388-2.15-.266-2.15-.266.891 2.158 3.723 6.729 4.537 8.094-2.739-2.699-3.852-5.286-5.333-8.207-1.191.048-2.312-.541-3.464-.682-.117 2.509.999 4.105 1.013 5.859-.923-2.668-1.468-8.5-6.823-6.619-1.504 3.055.746 9.08.791 11.725-.957-2.854-.889-6.99-2.192-9.508-1.727-.102-4.43-.216-3.903.908-3.413.884-12.289 6.171-10.778 7.629 2.72 2.629 8.648 5.957 12.372 6.721.171-.992.625-2.728 1.01-3.301.398 1.567.931 3.575 2.543 3.963.438-.521-.169-1.808-.083-2.569 1.415 1.695 5.201 3.655 7.86 2.423.275-.971-.782-2.42-.194-3.062.351 2.685 6.562 2.947 7.07.506.219-1.053-.931-1.753-.908-2.523.867.957 1.274 2.271 2.826 2.173 3.321-.212 1.062-4.764.513-6.555.824 1.597 1.769 3.966 2.959 5.206.874-.22 1.343-1.542.817-2.633 2.908 2.023 3.21.448 2.081-3.556-.03-.091-.062-.18-.093-.267.034.073.063.165.093.267.258.766 1.382 2.654 2.097 2.977 2.623-1.133-1.084-5.473-1.554-6.322 1.121.866 2.446 3.829 4.066 4.209.289-.223.314-1.781.542-2.064-.611-3.945-4.548-6.427-6.01-8.922 2.404 2.206 4.844 6.815 7.912 8.372 1.01-1.252-.888-4.834-1.459-5.752.871.351 2.356 2.73 3.542 2.775 1.126-.559-.471-3.458-1.213-4.471.458.188 1.893 1.653 2.729 1.472.296-1.355-1.506-3.051-1.909-4.16.516.13 2.137 1.714 2.808 1.691.748-2.944 1.873-6.338 1.696-13.148-1.28.019-6.402 3.863-7.699 4.16"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.2 40.7c3.7-1.9 5.3-2.5-.7-4.3 1.1-.1 7.5 2.1 9.5-.3 1.7-1.2-6.5-2.7-7-3.9 1.6 1 8.6 4.1 9.9 1.3-.2-1-1.2-2.9-4.7-3.9 1 .4 3.1.2 3.9-.6-.3-.9-4.2-3.3-4.6-6.4 1.3 1.8 2.9 4.9 4.9 5.5 0 0 .6-1.5 2.8-2.1-2 0-4-1.2-4.3-2.2 1.4 2.3 6.4 1.1 8.5 3 0 0-.4-1.3 1-3 .1-.4-.8-1.1-.3-1.3.2.2.2.9.8.8 1.3-.5 2.5-2.2 1.7-3.8.6.3.7 1.7.8 2.5.8 0 2.2-.1 3.7 1.3.3-.2.2-.7.5-.9.3 1 .3 3.1 1.7 3 1.1 0 2.5-2.4 2.7-3.4-.1 2.3 1.2 2 1.6 2.1 1-.1 2.1-3.4 2.6-3.4-.2.4-.2 1.7-.1 2.4 1.1.2 3.9-1.1 4.5-1.7-.1.5-.3.7-.2 1.3 1 .2 6.7-2.5 8-5.3-1.5-.7-2.7-1.5-3.9-1.9-.7.6-.7 3.1-1.6 2.9.4-.6 1.4-2.7.6-3.4-3.8-2.6-1.9 2-2.3 2.4 0-.8-1.7-5.5-3.3-5.1-.3.4-.9-2.3-2 3.6.1-1 1.3-4.9-4.5-6.5-.3 1.5 1.7 6 1.2 7-.2-1.9-1.7-6.5-2.7-7.7-2.2-.9-6.1-2.5-7.8-1.9-2 .5 3 5 1.6 6.8.3-2.6-2.8-5.4-4.9-5.4-4.3 2.2-.8 6.3-1.5 8.3-.4-2.4-1.6-2.9-1.4-5.7-1.1.8-1.2 2.2-2.4 3.3-.6.2-.9-.1-1.5 0-1 1.1.9 3.4.5 4.3-.7-1.5-.7-3.7-2.4-3.9-1.4-.9-4.3-.2-6.5 1.3-2.5.7-4.9 7.5-4.8 8.4.2 1.2 2.3 1.4 2.4 2.6-.9-.5-1.2-1.5-2.6-1.4-.5 1.1-.8 1.9-.9 3.5 1.5 1 3.4 1.9 3.9 3.4-1.4-.5-2.2-2.6-4-2-2.3 6.5.5 5.3.8 6.2-.8.3-1.6-.5-1.9 0-1.8 3.3.3 3.3.5 3.9-.4 0-.9 0-1.3 0-.7.6-.8 2.7-.6 3.7 1.5-.7 4.7-1.4 3.9-3.2.8.2 1.7.2 2.2-.2" fill="#c94747"/><path d="m50.7 23.7c-1.7.4-6.9.8-8.2 2.3 1.5 2.4 7.4 2.8 8.9 5.2-2.3-1.4-7-3.4-10-4.2-3.6-.8-2.5 1.2-3.7 4.1.5 1.1 2.2 4.1 2.3 5.1-.9-1-1.7-5.6-3.2-3.1-2.4 3.9 1.3 4.7 2.9 8.3-1-1.4-3-4.1-4.3-5.7l-.9 1.5c-1.5-.4-2.2-.3-2.2-.3.9 2.2 3.7 6.7 4.5 8.1-2.7-2.7-3.9-5.3-5.3-8.2-1.2 0-2.3-.5-3.5-.7-.1 2.5 1 4.1 1 5.9-.9-2.7-1.5-8.5-6.8-6.6-1.5 3.1.7 9.1.8 11.7-1-2.9-.9-7-2.2-9.5-1.7-.1-4.4-.2-3.9.9-3.4.9-12.3 6.2-10.8 7.6 2.7 2.6 8.6 6 12.4 6.7.2-1 .6-2.7 1-3.3.4 1.6.9 3.6 2.5 4 .4-.5-.2-1.8-.1-2.6 1.4 1.7 5.2 3.7 7.9 2.4.3-1-.8-2.4-.2-3.1.4 2.7 6.6 2.9 7.1.5.2-1.1-.9-1.8-.9-2.5.9 1 1.3 2.3 2.8 2.2 3.3-.2 1.1-4.8.5-6.6.8 1.6 1.8 4 3 5.2.9-.2 1.3-1.5.8-2.6 2.9 2 3.2.4 2.1-3.6 0-.1-.1-.2-.1-.3 0 .1.1.2.1.3.3.8 1.4 2.7 2.1 3 2.6-1.1-1.1-5.5-1.6-6.3 1.1.9 2.4 3.8 4.1 4.2.3-.2.3-1.8.5-2.1-.6-3.9-4.5-6.4-6-8.9 2.4 2.2 4.8 6.8 7.9 8.4 1-1.3-.9-4.8-1.5-5.8.9.4 2.4 2.7 3.5 2.8 1.1-.6-.5-3.5-1.2-4.5.5.2 1.9 1.7 2.7 1.5.3-1.4-1.5-3.1-1.9-4.2.5.1 2.1 1.7 2.8 1.7.7-2.9 1.9-6.3 1.7-13.1-1 .1-6.1 3.9-7.4 4.2" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f48c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f48c.svg
index 92e2f0d..ae73bea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f48c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f48c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c4ced6"><path d="m2.561 46.971l17.188-17.12-13.233-18.16c-.634.793-1.101 1.887-1.234 3.09l-3.243 29.02c-.133 1.193.079 2.316.522 3.166"/><path d="m60.19 8.605l-24.852 22.09 19.585 25.303c1.072-.861 1.847-2.211 2.028-3.838l4.414-39.518c.183-1.638-.293-3.07-1.175-4.04"/></g><path fill="#dae4ea" d="m35.34 30.697l24.852-22.09c-.79-.867-1.897-1.365-3.181-1.285l-48.46 3.133c-.744.049-1.457.523-2.032 1.24l13.232 18.16-17.19 17.12c.409.783 1.014 1.34 1.744 1.473l47.17 8.49c1.261.229 2.478-.148 3.455-.934l-19.585-25.303"/><path fill="#f46767" d="m39.33 22.84c-1.694-8.926-10.39-4.813-11.589-.574-.486-4.49-7.366-7.576-10.337.332-3.225 8.578 7.438 17.588 8.172 19.05 1.017-.981 15.634-8.915 13.754-18.809"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c4ced6"><path d="m2.6 47l17.2-17.1-13.3-18.2c-.6.8-1.1 1.9-1.2 3.1l-3.3 29c-.1 1.2.1 2.3.6 3.2"/><path d="m60.2 8.6l-24.9 22.1 19.6 25.3c1.1-.9 1.8-2.2 2-3.8l4.4-39.5c.3-1.7-.2-3.1-1.1-4.1"/></g><path d="m35.3 30.7l24.9-22.1c-.8-.9-1.9-1.4-3.2-1.3l-48.5 3.2c-.7 0-1.5.5-2 1.2l13.2 18.2-17.1 17.1c.4.8 1 1.3 1.7 1.5l47.2 8.5c1.3.2 2.5-.1 3.5-.9l-19.7-25.4" fill="#dae4ea"/><path d="m39.3 22.8c-1.7-8.9-10.4-4.8-11.6-.6-.5-4.5-7.4-7.6-10.3.3-3.2 8.6 7.4 17.6 8.2 19.1 1-.9 15.6-8.9 13.7-18.8" fill="#f46767"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f48d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f48d.svg
index 9b661c1..51da176 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f48d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f48d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m32 61.942c-11.58 0-20.999-9.536-20.999-21.259s9.419-21.259 20.999-21.259 20.999 9.537 20.999 21.26-9.419 21.258-20.999 21.258m0-38.19c-9.221 0-16.724 7.594-16.724 16.93 0 9.334 7.503 16.93 16.724 16.93s16.724-7.596 16.724-16.93c0-9.336-7.503-16.93-16.724-16.93"/><path fill="#fff" d="m25.531 58.962c-1.85-.622-3.596-1.56-5.203-2.695-1.59-1.163-3.02-2.558-4.226-4.132-2.418-3.151-3.801-7.093-3.95-11.08-.1-3.99 1.041-8.01 3.27-11.301 1.113-1.644 2.46-3.118 3.981-4.369 1.542-1.225 3.233-2.257 5.05-2.979-3.436 1.83-6.382 4.506-8.382 7.764-2.01 3.244-3.085 7.06-2.918 10.854.065 3.802 1.378 7.536 3.57 10.659 2.189 3.136 5.28 5.641 8.811 7.28"/><path fill="#a5a5a5" d="m39.572 22.405c1.813.723 3.505 1.755 5.05 2.98 1.521 1.25 2.868 2.725 3.981 4.367 2.23 3.287 3.367 7.316 3.271 11.295-.147 4-1.532 7.933-3.949 11.09-1.207 1.574-2.636 2.969-4.226 4.132-1.608 1.136-3.354 2.072-5.204 2.694 3.53-1.641 6.621-4.145 8.809-7.28 2.195-3.119 3.504-6.862 3.572-10.653.17-3.811-.911-7.612-2.916-10.86-2-3.258-4.947-5.934-8.384-7.763"/><path fill="#d0d0d0" d="M25.531 15.04 32 21.589 38.469 15.04z"/><path fill="#a5a5a5" d="m34.15 15.04l-1.445 4.384 1.325.098 4.43-4.482z"/><path fill="#b6fff1" d="m28.757 1.942l-1.084 6.549h-8.613l3.237-6.549z"/><g fill="#6adbc6"><path d="m27.673 8.491l2.159 6.549h-4.319l-6.453-6.549z"/><path d="m28.757 1.942l-1.084 6.549h8.637l-1.07-6.549z"/></g><g fill="#42ade2"><path d="m35.24 1.942l1.07 6.549h8.628l-3.235-6.549z"/><path d="m27.673 8.491l2.159 6.549h4.318l2.16-6.549z"/></g><path fill="#428bc1" d="m36.31 8.491l-2.16 6.549h4.319l6.469-6.549z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 61.9c-11.6 0-21-9.5-21-21.3s9.4-21.3 21-21.3 21 9.7 21 21.4-9.4 21.2-21 21.2m0-38.1c-9.2 0-16.7 7.6-16.7 16.9 0 9.3 7.5 16.9 16.7 16.9s16.7-7.6 16.7-16.9c0-9.4-7.5-16.9-16.7-16.9" fill="#d0d0d0"/><path d="m25.5 59c-1.9-.6-3.6-1.6-5.2-2.7-1.6-1.2-3-2.6-4.2-4.1-2.4-3.2-3.8-7.1-3.9-11.1-.1-4 1-8 3.3-11.3 1.1-1.6 2.5-3.1 4-4.4 1.5-1.2 3.2-2.3 5-3-3.4 1.8-6.4 4.5-8.4 7.8-2 3.2-3.1 7.1-2.9 10.9.1 3.8 1.4 7.5 3.6 10.7 2.1 3 5.2 5.5 8.7 7.2" fill="#fff"/><path d="m39.6 22.4c1.8.7 3.5 1.8 5 3 1.5 1.2 2.9 2.7 4 4.4 2.2 3.2 3.4 7.3 3.3 11.2-.1 4-1.5 7.9-3.9 11.1-1.2 1.6-2.6 3-4.2 4.1-1.6 1.1-3.4 2.1-5.2 2.7 3.5-1.6 6.6-4.1 8.8-7.3 2.2-3.1 3.5-6.9 3.6-10.7 0-3.7-1-7.5-3-10.7-2-3.3-5-6-8.4-7.8" fill="#a5a5a5"/><path fill="#d0d0d0" d="m25.5 15l6.5 6.6 6.5-6.6z"/><path fill="#a5a5a5" d="m34.2 15l-1.5 4.4 1.3.1 4.5-4.5z"/><path fill="#b6fff1" d="m28.8 1.9l-1.1 6.6h-8.6l3.2-6.6z"/><g fill="#6adbc6"><path d="m27.7 8.5l2.1 6.5h-4.3l-6.4-6.5z"/><path d="m28.8 1.9l-1.1 6.6h8.6l-1.1-6.6z"/></g><g fill="#42ade2"><path d="m35.2 1.9l1.1 6.6h8.6l-3.2-6.6z"/><path d="m27.7 8.5l2.1 6.5h4.4l2.1-6.5z"/></g><path fill="#428bc1" d="m36.3 8.5l-2.1 6.5h4.3l6.4-6.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f48e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f48e.svg
index 87bc4cd..c7a3719 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f48e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f48e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9450e0" d="M41 4 23 4 2 20.06 32 60 62 20.06z"/><g fill="#c28fef"><path d="m32 60l12.48-39.94h-25.709z"/><path d="M9.5 9.454 2 20.06 18.771 20.06 23 4z"/><path d="M54.5 9.454 41 4 44.48 20.06 62 20.06z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9450e0" d="M41 4 23 4 2 20.1 32 60 62 20.1z"/><g fill="#c28fef"><path d="m32 60l12.5-39.9h-25.7z"/><path d="M9.5 9.5 2 20.1 18.8 20.1 23 4z"/><path d="M54.5 9.5 41 4 44.5 20.1 62 20.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f48f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f48f.svg
index 72be7bc..cd4f66f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f48f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f48f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f0cd4f" d="m36.427 60.13l20.45-10.654c0 0 .8 7.261 2.914 14.523h-15.438c0-2.988-7.926-3.869-7.926-3.869"/><path fill="#231f20" d="m64 43.47c0-10.725-4.898-11.934-4.898-11.934-4.225-5.443-18.754-3.461-22.584.439-1.062 1.082-.524 3.533.976 3.238l7.563 13.752 7.377 2.154c0 0 3.465-1.443 5.532 5.221-.001.001 6.03-1.378 6.03-12.87"/><g fill="#ffdd67"><path d="m44.634 60.44c4.93-1.057 6.892.35 8.276-11.605h-6.645c0 0 1.555-4.769.936-7.096 3.667-2.887 1.12-6.233-1.035-7.512-3.458-2.056-8.311-.987-9.01 1.774-1.297 5.105-1.35 4.078-.52 5.431.863 1.404-3.115 4.47-3.02 6.28.051.974 1.501 1.365 1.558 1.646.146.7-.426 1.022-1.295 1.587-.867.562.715 1.128.409 2.923-.308 1.796-.472 2.476-.472 2.476.716.512 1.667.486 1.495 1.579-.404 2.556-.154 4.552 9.326 2.517"/><path d="m37.87 44.34c.158-.481.095-.862.021-1.286-.083-.42-.182-.875-.207-1.391-.015-.505.087-1.124.437-1.553.335-.43.794-.625 1.237-.646-.303.373-.566.706-.701 1.055-.131.345-.161.695-.143 1.113.003.416.066.881.021 1.391-.02.493-.231 1.113-.665 1.317"/><path d="m56.47 48.713c-.636 2.775-2.743 4.572-4.709 4.02-1.963-.552-3.041-3.247-2.406-6.02.637-2.771 2.742-4.572 4.708-4.02 1.963.551 3.042 3.246 2.407 6.02"/></g><path fill="#594640" d="m53.46 44.33c-.537.013-1.096.204-1.564.579-.462.384-.805.934-.959 1.518-.135.476-.167.965-.112 1.439-.208-.072-.434-.078-.609.053.262.198.36.414.464.623.092.215.172.427.217.643.057.212.079.418.081.643-.003.225-.05.477-.17.807.315-.004.623-.234.785-.576.175-.342.186-.755.106-1.115-.098-.357-.277-.685-.551-.9-.053-.043-.113-.078-.174-.113.396-.949.779-1.775 1.409-2.268.33-.283.733-.467 1.172-.615.441-.145.923-.229 1.433-.371-.475-.242-.99-.367-1.528-.347"/><path fill="#ffdd67" d="m35.467 52.945c-.413-.26-.807-.529-1.107-.834-.281-.3-.502-.658-.263-1.318-.276.075-.553.359-.664.745-.1.393-.026.825.123 1.161.14.325.327.592.536.82-.223.232-.43.547-.519.893-.109.362-.103.719-.057 1.036.061.319.147.614.297.896.24-.582.399-1.145.643-1.453.129-.148.242-.261.412-.37.161-.113.358-.224.566-.341l1.061-.59-1.028-.645"/><path fill="#594640" d="m42.834 42.665c-.553.206-.88.583-1.309.919-.408.354-.854.696-1.372.973-.51.269-1.117.478-1.756.417-.637-.04-1.251-.411-1.556-.979 1.184.166 1.862-.225 2.782-.701.449-.234.925-.498 1.469-.68.514-.178 1.217-.343 1.742.051"/><path fill="#f0cd4f" d="m22.795 59.13l-15.672-9.648c0 0 2.116 7.261 0 14.523h12.525c0-2.988 3.147-4.875 3.147-4.875"/><path fill="#231f20" d="m0 43.47c0-10.725 4.899-11.934 4.899-11.934 4.225-5.443 18.565-3.215 22.584.439 8.229 7.482 2.353 15.24.853 14.945l-17.245 3.03c0 0-1.768 10.938 4.363 14.05h-15.454v-20.527"/><path fill="#ffdd67" d="m19.368 60.44c-4.931-1.057-6.892.35-8.277-11.605h3.739c0 0 2.633.662 5.265-8.563 1.193-4.178 6-7.305 7.06-4.693 2.215 5.433-.243 7.07.347 8.573 1.072 2.735 3.359 1.989 3.267 3.798-.052.975-1.885 1.129-1.943 1.409-.145.7.427 1.022 1.295 1.587.869.562-.714 1.128-.408 2.923.309 1.796.472 2.476.472 2.476-.716.512-1.667.486-1.494 1.579.402 2.555.152 4.551-9.327 2.516"/><path fill="#eba352" d="m26.13 44.34c-.158-.481-.095-.862-.021-1.286.084-.42.182-.875.207-1.391.016-.505-.087-1.124-.437-1.553-.336-.43-.794-.625-1.238-.646.304.373.567.706.702 1.055.131.345.161.695.142 1.113-.002.416-.065.881-.021 1.391.022.493.232 1.113.666 1.317"/><path fill="#ffdd67" d="m7.533 48.713c.636 2.775 2.743 4.572 4.708 4.02 1.964-.552 3.042-3.247 2.407-6.02-.637-2.771-2.742-4.572-4.708-4.02-1.964.551-3.043 3.246-2.407 6.02"/><path fill="#594640" d="m10.54 44.33c.536.013 1.095.204 1.564.579.461.384.804.934.958 1.518.135.476.167.965.112 1.439.208-.072.434-.078.609.053-.262.198-.36.414-.465.623-.091.215-.171.427-.217.643-.056.212-.078.418-.081.643.003.225.052.477.17.807-.314-.004-.622-.234-.785-.576-.173-.342-.186-.755-.105-1.115.097-.357.277-.685.552-.9.051-.043.112-.078.172-.113-.396-.949-.777-1.775-1.408-2.268-.33-.283-.732-.467-1.172-.615-.442-.145-.923-.229-1.433-.371.476-.242.991-.367 1.529-.347"/><path fill="#c94747" d="m28.535 52.945c.412-.26.806-.529 1.106-.834.281-.3.501-.658.263-1.318.277.075.554.359.664.745.1.393.026.825-.122 1.161-.141.325-.328.592-.537.82.224.232.429.547.518.893.11.362.104.719.059 1.036-.062.319-.147.614-.298.896-.241-.582-.399-1.145-.644-1.453-.129-.148-.241-.261-.41-.37-.162-.113-.359-.224-.567-.341l-1.061-.59 1.029-.645"/><path fill="#594640" d="m21.17 42.665c.554.206.88.583 1.309.919.408.354.854.696 1.372.973.511.269 1.117.478 1.755.417.637-.04 1.252-.411 1.557-.979-1.184.166-1.862-.225-2.781-.701-.451-.234-.926-.498-1.47-.68-.514-.178-1.218-.343-1.742.051"/><path fill="#e84d88" d="m12.09 8.594c4.379-10.98 18.599-6.05 19.911-.57 1.809-5.845 15.678-10.204 19.909.577 4.712 12.01-18.266 22.79-19.909 24.556-1.644-1.405-24.621-12.749-19.911-24.563"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46.5 7.1c-3.2-8.5-13.5-4.7-14.5-.5-1.3-4.5-11.4-7.9-14.5.4-3.5 9.3 13.3 17.6 14.5 19 1.2-1.1 18-9.8 14.5-18.9" fill="#ff5a79"/><path d="M17,22C7.3,22,2,28.3,2,36.7v24.5h30V36.7c0-12.4-8.1-12.2-8.1-12.2S23.3,22,17,22z" fill="#ffb300"/><path d="m32 60.8v1.2h30v-14.2c0 0-30 7.2-30 13" fill="#01579b"/><path d="m2 47.8v14.2h30v-1.2c0-5.8-30-13-30-13" fill="#c2185b"/><path d="m34.8 40h24.8l1.1-2.9c0-10.6-2.5-15-14.1-15.1-12.4-.1-13.8 10.3-11.8 18" fill="#ffb300"/><path d="m59.7 37.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-2.6-5.1-15.9-5.1-4.7 0-8.2-3.5-8.2 12 0 5.8 4.3 11.5 9.9 11.5 6 0 14.8-4.2 14.8-11.7 2.2-.2 2.9-1.7 2.9-3.5 0-2.8-1.3-3-2.3-2.8" fill="#ffdd67"/><g fill="#937237"><path d="m35.8 39.9c.9-2 2.2-3 3.6-3 1.4 0 2.7 1 3.6 3 .1.2-.4.6-.6.4-.9-.7-1.9-1-3-1-1.1 0-2.1.3-3 1-.2.1-.7-.2-.6-.4"/><path d="m46.6 39.9c.9-2 2.2-3 3.6-3s2.7 1 3.6 3c.1.2-.4.6-.6.4-.9-.7-1.9-1-3-1-1.1 0-2.1.3-3 1-.2.1-.7-.2-.6-.4"/><path d="m40.8 49.4c-.8-.8.9-1.4.9-2.8 0-1.4-1.6-2-.9-2.8.9-.9 2.9-.2 4.1-1.5 0 1-.9 2.2-2.5 2.2 0 0 1.1.4 1.1 2.2 0 1.7-1.1 2.2-1.1 2.2 1.6 0 2.5 1.1 2.5 2.2-1.2-1.4-3.2-.7-4.1-1.7"/></g><path d="m5.3 37.1c.1.6.2 1.2.4 1.5.3.6.9.9.9.9s11.8-4.1 17.8-9.9c0 0 5.9 1.9 5.9 14.2 0 5.2-3.7 11.3-9.6 11.3-6 0-14.8-4.2-14.8-11.7-2.2-.1-2.9-1.6-2.9-3.4 0-2.9 1.3-3.1 2.3-2.9" fill="#ffdd67"/><g fill="#937237"><path d="m29.2 39.9c-.9-2-2.2-3-3.6-3-1.4 0-2.7 1-3.6 3-.1.2.4.6.6.4.9-.7 1.9-1 3-1 1.1 0 2.1.3 3 1 .2.1.7-.2.6-.4"/><path d="m18.4 39.9c-.9-2-2.2-3-3.6-3s-2.7 1-3.6 3c-.1.2.4.6.6.4.9-.7 1.9-1 3-1 1.1 0 2.1.3 3 1 .2.1.7-.2.6-.4"/><path d="m24.2 49.4c.8-.8-.9-1.4-.9-2.8 0-1.4 1.6-2 .9-2.8-.9-.9-2.9-.2-4.1-1.5 0 1 .9 2.2 2.5 2.2 0 0-1.1.4-1.1 2.2 0 1.7 1.1 2.2 1.1 2.2-1.6 0-2.5 1.1-2.5 2.2 1.2-1.4 3.2-.7 4.1-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f490.svg b/build/js/jsxc/lib/emojione/assets/svg/1f490.svg
index 46ef020..8f15a96 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f490.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f490.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m43.17 26.821c-.869 5.985 5.93 16.535 5.93 16.535l1.533-.767c-4.34-13.555-2.076-28.95-2.076-28.95s-4.418 6.489-5.387 13.182"/><path fill="#75a843" d="m28.961 3.33l21.77 39.42-4.501 2.166z"/><path fill="#cc9132" d="m39.77 11.782c2.51 5.065 1.205 8.423-1.725 9.891-2.93 1.467-6.381.488-8.891-4.577-2.508-5.064-.193-13.766-.193-13.766s8.299 3.387 10.809 8.452"/><path fill="#f4bc58" d="m34.82 11.3c8.881.881 7.324 9.291 3.471 11.22-3.854 1.93-8.949-.487-11.383-5.398-2.432-4.912-.609-10.794-.609-10.794s1.982 4.324 8.521 4.972"/><path fill="#ffd93b" d="m31.756 12.835c-4.652 7.657 2.959 11.476 6.813 9.547s5.01-7.476 2.572-12.388c-2.432-4.911-8.198-6.994-8.198-6.994s2.239 4.197-1.187 9.835"/><path fill="#83bf4f" d="m29.721 38.875c4.588 3.912 17.09 3.705 17.09 3.705l.164-1.713c-13.73-3.48-25.514-13.57-25.514-13.57s3.131 7.205 8.262 11.578"/><path fill="#75a843" d="m2 35.37l44.646 1.83-.486 4.98z"/><path fill="#871212" d="m14.855 30.631c5.602.545 7.744 3.434 7.43 6.711-.316 3.277-2.969 5.7-8.57 5.156-5.602-.547-11.715-7.13-11.715-7.13s7.256-5.283 12.855-4.737"/><path fill="#cc3636" d="m11.828 34.594c5.447-7.104 11.717-1.322 11.303 2.986-.416 4.309-5.154 7.374-10.586 6.846s-9.426-5.199-9.426-5.199 4.697.601 8.709-4.633"/><path fill="#e24b4b" d="m11.498 38.02c3.992 8.02 11.246 3.559 11.662-.751.416-4.308-3.652-8.229-9.08-8.758s-10.244 3.285-10.244 3.285 4.727.316 7.666 6.224"/><g fill="#83bf4f"><path d="m28.928 40.03c5.248-2.954 17.477-.341 17.477-.341l-.164 1.713c-14.14.77-27.629 8.398-27.629 8.398s4.445-6.466 10.316-9.77"/><path d="m33.813 28.899c1.813 5.769 12.502 12.284 12.502 12.284l1.047-1.361c-9.775-10.299-14.41-25.15-14.41-25.15s-1.165 7.774.861 14.224"/></g><path fill="#75a843" d="m12.287 16.403l36.833 25.458-3.07 3.948z"/><path fill="#aa1f65" d="m25.678 19.276c4.453 3.46 4.736 7.05 2.734 9.658-2 2.604-5.531 3.235-9.984-.226-4.453-3.46-6.141-12.306-6.141-12.306s8.94-.587 13.391 2.874"/><path fill="#d33777" d="m21.02 21.01c8.375-3.097 10.619 5.154 7.986 8.579-2.633 3.425-8.268 3.481-12.586.126-4.316-3.354-5.227-9.448-5.227-9.448s3.659 3.02 9.827.743"/><path fill="#e84d88" d="m18.922 23.734c-.871 8.931 7.637 9.03 10.268 5.607 2.635-3.424 1.268-8.922-3.051-12.276-4.316-3.355-10.408-2.704-10.408-2.704s3.83 2.798 3.191 9.373"/><path fill="#83bf4f" d="m58.43 58.16l-1.94 1.95-2.47-2.481 1.937-1.95z"/><path fill="#75a843" d="m59.775 56.811l-1.941 1.951-2.474-2.482 1.94-1.95z"/><path fill="#83bf4f" d="m61.12 55.46l-1.94 1.95-2.471-2.486 1.939-1.951z"/><path fill="#42ade2" d="m22.826 47.791c0 0 17.14-2.908 25.307 5.307 1.752 1.761 2.851 7.902 2.851 7.902l11.02-11.08c0 0-6.105-1.104-7.859-2.867-8.17-8.215-5.277-25.446-5.277-25.446l-26.04 26.18"/><path fill="#ff506e" d="m58.01 46.918l-10.01 10.07-3.726-3.756 10.01-10.06z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.2 26.8c-.9 6 5.9 16.5 5.9 16.5l1.5-.8c-4.3-13.6-2.1-29-2.1-29s-4.4 6.6-5.3 13.3" fill="#83bf4f"/><path fill="#75a843" d="m29 3.3l21.7 39.5-4.5 2.1z"/><path d="m39.8 11.8c2.5 5.1 1.2 8.4-1.7 9.9-2.9 1.5-6.4.5-8.9-4.6-2.6-5.1-.2-13.8-.2-13.8s8.3 3.4 10.8 8.5" fill="#cc9132"/><path d="m34.8 11.3c8.9.9 7.3 9.3 3.5 11.2-3.9 1.9-8.9-.5-11.4-5.4-2.4-4.9-.6-10.8-.6-10.8s2 4.4 8.5 5" fill="#f4bc58"/><path d="m31.8 12.8c-4.7 7.7 3 11.5 6.8 9.5s5-7.5 2.6-12.4c-2.4-4.9-8.2-7-8.2-7s2.2 4.3-1.2 9.9" fill="#ffd93b"/><path d="m29.7 38.9c4.6 3.9 17.1 3.7 17.1 3.7l.2-1.7c-13.7-3.5-25.5-13.6-25.5-13.6s3.1 7.2 8.2 11.6" fill="#83bf4f"/><path fill="#75a843" d="m2 35.4l44.6 1.8-.4 5z"/><path d="m14.9 30.6c5.6.5 7.7 3.4 7.4 6.7-.3 3.3-3 5.7-8.6 5.2-5.6-.5-11.7-7.1-11.7-7.1s7.3-5.3 12.9-4.8" fill="#871212"/><path d="m11.8 34.6c5.4-7.1 11.7-1.3 11.3 3-.4 4.3-5.2 7.4-10.6 6.8s-9.4-5.2-9.4-5.2 4.7.6 8.7-4.6" fill="#cc3636"/><path d="m11.5 38c4 8 11.2 3.6 11.7-.8.4-4.3-3.7-8.2-9.1-8.8s-10.3 3.4-10.3 3.4 4.8.3 7.7 6.2" fill="#e24b4b"/><g fill="#83bf4f"><path d="m28.9 40c5.2-3 17.5-.3 17.5-.3l-.2 1.7c-14.1.8-27.6 8.4-27.6 8.4s4.5-6.5 10.3-9.8"/><path d="m33.8 28.9c1.8 5.8 12.5 12.3 12.5 12.3l1-1.4c-9.7-10.3-14.3-25.1-14.3-25.1s-1.2 7.7.8 14.2"/></g><path fill="#75a843" d="m12.3 16.4l36.8 25.5-3.1 3.9z"/><path d="m25.7 19.3c4.5 3.5 4.7 7.1 2.7 9.7-2 2.6-5.5 3.2-10-.2-4.5-3.5-6.1-12.3-6.1-12.3s8.9-.7 13.4 2.8" fill="#aa1f65"/><path d="m21 21c8.4-3.1 10.6 5.2 8 8.6s-8.3 3.5-12.6.1c-4.3-3.4-5.2-9.4-5.2-9.4s3.6 3 9.8.7" fill="#d33777"/><path d="m18.9 23.7c-.9 8.9 7.6 9 10.3 5.6 2.6-3.4 1.3-8.9-3.1-12.3-4.3-3.4-10.4-2.7-10.4-2.7s3.9 2.9 3.2 9.4" fill="#e84d88"/><path fill="#83bf4f" d="m58.4 58.2l-1.9 1.9-2.5-2.5 2-1.9z"/><path fill="#75a843" d="m59.8 56.8l-2 2-2.4-2.5 1.9-2z"/><path fill="#83bf4f" d="m61.1 55.5l-1.9 1.9-2.5-2.5 1.9-1.9z"/><path d="m22.8 47.8c0 0 17.1-2.9 25.3 5.3 1.8 1.8 2.9 7.9 2.9 7.9l11-11.1c0 0-6.1-1.1-7.9-2.9-8.2-8.2-5.3-25.4-5.3-25.4l-26 26.2" fill="#42ade2"/><path fill="#ff506e" d="m58 46.9l-10 10.1-3.7-3.8 10-10z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f491.svg b/build/js/jsxc/lib/emojione/assets/svg/1f491.svg
index fc7c9c9..3808550 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f491.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f491.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m20.722 42.13c0 0 3.78-.982 3.78-6.664 0-4.502-2.85-5.273-2.85-5.273-5.89 0-13.911-4.482-19.65-8.277v-17.06c16.979 0 26.25 10.902 26.25 25.26v31.879h-26.25v-.953c7 0 18.72-10.342 18.72-18.916"/><path fill="#ffdd67" d="m24.502 35.466c0 5.682-3.78 6.664-3.78 6.664 0 8.574-11.72 18.916-18.72 18.916v-4.787c5.135 0 6.199-3.104 8.437-5.377.011-.002-3.114.236-5.108-.256-.68-.17-1.674-.09-2.984.357-.116.035-.229.074-.344.111v-2.643c.877 0 4.687-.66 4.687-2.529 0 0-2.343-.201-4.687-.289v-23.718c5.739 3.795 13.761 8.277 19.65 8.277-.001 0 2.849.772 2.849 5.274"/><path fill="#eba352" d="m6.688 45.923c0 1.869-3.81 2.529-4.687 2.529v-2.818c2.345.088 4.687.289 4.687.289"/><path fill="#f09985" d="m10.438 50.882c-2.237 2.273-3.302 5.377-8.437 5.377v-3.01c4.64 0 5.062-1.754 8.437-2.371"/><g fill="#d47f6c"><path d="m5.33 50.626c1.994.492 5.119.254 5.108.256 0 0-3.078.246-5.108-.256"/><path d="m2 51.09c.115-.037.228-.076.344-.111 1.311-.447 2.305-.527 2.984-.357 2.03.502 5.108.256 5.108.256-3.376.617-3.798 2.371-8.437 2.371v-2.159z"/></g><path fill="#f5f5f5" d="m8.386 38.577c-1.103 0-.956-2.893-.956-2.893 3.383-7.678 10.917-2.818 10.917-2.818 2.928 1.33-1.313 5.527-1.992 5.711-3.192.879-7.969 0-7.969 0"/><ellipse fill="#664e27" cx="12.799" cy="35.06" rx="3.604" ry="3.662"/><ellipse fill="#231f20" cx="12.799" cy="35.06" rx="1.25" ry="1.27"/><path fill="#3b3226" d="m6.483 36.792c.922-1.143 1.833-2.24 2.893-3.076 1.059-.832 2.247-1.359 3.53-1.443 1.282-.125 2.626.154 4.02.422.698.137 1.417.273 2.169.316.728.031 1.605-.057 2.125-.623-.687.275-1.36.129-2.01-.068-.659-.195-1.313-.469-1.995-.701-1.351-.488-2.841-.889-4.421-.768-.782.08-1.569.281-2.281.635-.705.367-1.345.838-1.867 1.406-1.058 1.123-1.748 2.484-2.159 3.9"/><path fill="#231f20" d="m39.685 30.931c.155 1.049.366 2.033.658 2.592.523 1 1.593 1.568 1.593 1.568s-.288-2.039-.184-4.891c1.118-16.721 2.085-12.12 20.25-12.12v-13.219c-19.821-.129-24.786 7.945-24.786 26.381l.003.006c.745-.553 1.659-.531 2.466-.314"/><g fill="#ffdd67"><path d="m52.641 49.17c0 0 4.931.279 9.361.289v-2.279c-1.173-.084-4.574-.785-4.574-2.551 0 0 2.254-.193 4.574-.283v-8.365h-22.23l-2.554-4.74c-.842.621-1.467 1.973-1.467 4.639 0 3.131 1.129 5.697 4.935 5.975 1.62 12.686 6.45 14.748 16.15 19.25 1.276.592 3.22.889 5.163.889v-6.848c-5.187-.074-9.36-2.769-9.36-5.976"/><path d="m62 35.985v-17.908c-18.16 0-19.13-4.598-20.25 12.12-.104 2.852.184 4.891.184 4.891s-1.069-.568-1.593-1.568c-.292-.559-.503-1.543-.658-2.592-.807-.217-1.721-.238-2.466.314l2.554 4.74h22.23"/></g><path fill="#574137" d="m62 55.15v-2.58c-4.741-.037-8.553-1.32-8.553-2.938 0 0 4.02.316 8.553.326v-.494c-4.431-.01-9.361-.289-9.361-.289 0 3.208 4.173 5.903 9.361 5.975"/><path fill="#fff" d="m53.45 49.632c0 1.617 3.812 2.9 8.553 2.938v-2.611c-4.537-.011-8.553-.327-8.553-.327"/><path fill="#eba352" d="m62 47.19v-2.834c-2.32.09-4.574.283-4.574.283 0 1.765 3.401 2.467 4.574 2.551"/><path fill="#f5f5f5" d="m44.31 31.583c-.304 1.443-.664 5.066 6.07 4.941 6.979-.135 6.701.477 7.04-1.918.295-2.096-2.151-4.422-5.771-5.258-3.619-.837-6.906.167-7.339 2.235"/><path fill="#664e27" d="m55.17 32.647c0 2.047-1.647 3.705-3.681 3.705-2.032 0-3.679-1.658-3.679-3.705 0-2.043 1.646-3.701 3.679-3.701 2.033 0 3.681 1.658 3.681 3.701"/><ellipse fill="#231f20" cx="51.49" cy="32.647" rx="1.25" ry="1.26"/><path fill="#664e27" d="m44.18 32.987c-.981-6.428 13.214-6.086 13.214.76-2.052-5.447-11.837-5.635-13.214-.76"/><path fill="#e84d88" d="m50.595 8.317c-3.978-10.521-16.892-5.8-18.09-.546-1.643-5.6-14.236-9.775-18.08.553-4.281 11.508 16.587 21.84 18.08 23.531 1.494-1.348 22.361-12.215 18.09-23.538"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M17,22C7.3,22,2,28.3,2,36.7v18.5h30V36.7c0-12.4-8.1-12.2-8.1-12.2S23.3,22,17,22z" fill="#ffb300"/><path d="m32 54.8v7.2h30v-7.2c0-5.8-30-5.8-30 0" fill="#01579b"/><path d="m2 54.8v7.2h30v-7.2c0-5.8-30-5.8-30 0" fill="#c2185b"/><path d="m6.4 43.6c0 0-2.2-.6-2.2-3.9 0-2.6 1.7-3.1 1.7-3.1 6 0 15.8-7.8 15.8-7.8s3.7 6.9 7.3 7.8c0 0 1.7.3 1.7 3.1 0 3.3-2.3 3.9-2.3 3.9 0 5-6.8 10-11 10-4 0-11-5-11-10" fill="#ffdd67"/><g fill="#937237"><circle cx="12.1" cy="40.3" r="2.2"/><circle cx="22.9" cy="40.3" r="2.2"/><path d="m21.1 47.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m31.9 37.3l1.5 2.8h26.2l1.1-2.9c0-10.6-2.5-15-14.1-15.1-11.8-.2-14.7 4.5-14.7 15.2" fill="#ffb300"/><path d="m59.7 37.1c-.1.6-.2 1.2-.4 1.5-.3.6-.9.9-.9.9s.2-1.2.1-2.8c-.7-9.7-1.2-5.1-11.9-5.1-10.7 0-11.3-4.7-11.9 5-.1 1.7.1 2.8.1 2.8s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.5-1-.3-2.3 0-2.3 2.9 0 1.8.7 3.3 2.9 3.5.8 6.1 8.9 10.1 12.6 10.1 3.6 0 11.8-4.1 12.6-10.1 2.2-.2 2.9-1.7 2.9-3.5-.2-2.8-1.5-3-2.5-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="41" cy="40.3" r="2.2"/><circle cx="52" cy="40.3" r="2.2"/><path d="m50.1 47.2c-2.3 1.8-4.9 1.8-7.2 0-.3-.2-.5.2-.3.5.7 1.3 2.1 2.4 3.9 2.4s3.2-1.1 3.9-2.4c.2-.4 0-.8-.3-.5"/></g><path d="m46.5 7.1c-3.2-8.5-13.5-4.7-14.5-.5-1.3-4.5-11.4-7.9-14.5.4-3.5 9.3 13.3 17.6 14.5 19 1.2-1.1 18-9.8 14.5-18.9" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f492.svg b/build/js/jsxc/lib/emojione/assets/svg/1f492.svg
index c84879f..e7008d4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f492.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f492.svg
@@ -1,3 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e84d88" d="m63 62h-62c-.551 0-1 .45-1 1 0 .55.449 1 1 1h62c.549 0 1-.45 1-1 0-.55-.451-1-1-1"/><path fill="#fc97b2" d="m60 62h-56v-18l28-12 28 12z"/><g fill="#ed4c5c"><path d="m21.371 34.14l-20.2 8.251c-.965.395-1.428 1.497-1.027 2.45.398.952 1.518 1.408 2.482 1.014l20.2-8.251c.967-.395 1.43-1.497 1.029-2.45-.4-.953-1.517-1.41-2.484-1.014"/><path d="m42.627 34.14l20.2 8.251c.967.395 1.43 1.497 1.029 2.45-.4.952-1.518 1.408-2.484 1.014l-20.2-8.251c-.965-.395-1.428-1.497-1.027-2.45.398-.953 1.517-1.41 2.482-1.014"/></g><path fill="#ffc7ce" d="m44 62h-24v-36l12-5 12 5z"/><path fill="#ffce31" d="m38.667 5h-5v-5h-3.334v5h-5v3.333h5v11.667h3.334v-11.667h5z"/><path fill="#ffc7ce" d="m20 63h24v1h-24z"/><path fill="#fc97b2" d="m20 62h24v1h-24z"/><path fill="#ed4c5c" d="m47.828 25.42l-15.828-6.42-15.828 6.42c-.965.391-1.428 1.486-1.027 2.432.398.946 1.518 1.399 2.482 1.01l14.373-5.831 14.371 5.83c.967.392 2.086-.062 2.484-1.01.401-.945-.062-2.04-1.027-2.431"/><g fill="#fff"><path d="m30.676 29.822c-.084-.567-.609-.926-1.168-.796 0 0-.137.032-.701.265-.564.234-.682.309-.682.309-.486.303-.605.928-.264 1.389l3.119 4.21c.34.461.551.374.467-.193l-.771-5.184"/><path d="m25.992 32.862c-.463-.341-1.063-.208-1.338.296l-.564 1.365c-.162.55.168 1.068.736 1.153l5.18.771c.566.085.654-.125.191-.467l-4.205-3.118"/><path d="m24.822 38.32c-.566.084-.926.609-.795 1.168 0 0 .031.137.264.701.234.563.309.682.309.682.303.486.928.605 1.389.264l4.209-3.119c.463-.341.375-.552-.193-.467l-5.183.771"/><path d="m27.863 43.01c-.342.462-.209 1.063.295 1.337l1.365.565c.551.162 1.068-.168 1.152-.736l.771-5.18c.084-.566-.125-.654-.467-.193l-3.116 4.207"/><path d="m33.32 44.18c.084.566.609.925 1.168.795 0 0 .137-.031.701-.264.563-.234.682-.309.682-.309.486-.303.605-.928.264-1.389l-3.119-4.211c-.342-.461-.553-.373-.467.194l.771 5.184"/><path d="m38.01 41.14c.461.342 1.063.209 1.336-.295l.566-1.365c.162-.551-.168-1.068-.736-1.153l-5.18-.771c-.566-.085-.654.125-.193.467l4.207 3.117"/><path d="m39.18 35.676c.566-.084.926-.609.795-1.169 0 0-.031-.136-.264-.7-.234-.563-.309-.682-.309-.682-.303-.487-.928-.605-1.389-.264l-4.211 3.119c-.461.341-.373.552.193.467l5.185-.771"/><path d="m36.14 30.992c.342-.462.209-1.063-.295-1.337l-1.365-.565c-.551-.163-1.068.168-1.154.736l-.77 5.179c-.086.567.125.655.467.193l3.117-4.206"/></g><path fill="#fc97b2" d="m32 47c-3.314 0-6 2.687-6 6v9h12v-9c0-3.313-2.687-6-6-6"/><path fill="#d6eef0" d="m28 56h8v-3c0-2.205-1.795-4-4-4-2.207 0-4 1.795-4 4v3"/><g fill="#e84d88"><path d="m11.172 49.51c-.053-.354-.381-.578-.73-.497 0 0-.084.02-.438.165-.352.146-.426.192-.426.192-.305.19-.379.58-.164.868l1.949 2.632c.213.288.344.234.291-.122l-.482-3.238"/><path d="m8.244 51.41c-.289-.215-.664-.131-.836.186l-.354.852c-.1.345.107.668.461.721l3.236.482c.357.054.41-.078.123-.292l-2.63-1.949"/><path d="m7.514 54.827c-.354.054-.578.381-.498.731 0 0 .02.084.166.436.146.354.193.428.193.428.189.305.58.379.867.164l2.633-1.949c.287-.213.232-.345-.123-.292l-3.238.482"/><path d="m9.414 57.756c-.215.288-.131.664.186.835l.852.353c.346.102.668-.105.721-.459l.482-3.237c.053-.356-.078-.41-.291-.122l-1.95 2.63"/><path d="m12.828 58.48c.053.354.381.579.73.497 0 0 .084-.02.436-.165.354-.146.428-.192.428-.192.305-.189.379-.58.164-.868l-1.949-2.632c-.213-.288-.346-.233-.293.122l.484 3.238"/><path d="m15.756 56.59c.287.214.664.131.834-.186l.354-.852c.104-.346-.105-.668-.459-.722l-3.236-.482c-.357-.053-.41.079-.123.292l2.63 1.95"/><path d="m16.484 53.17c.355-.053.58-.381.498-.73 0 0-.02-.085-.166-.437-.145-.353-.191-.427-.191-.427-.189-.305-.58-.379-.867-.164l-2.633 1.948c-.287.214-.234.346.123.293l3.236-.483"/><path d="m14.586 50.24c.215-.288.131-.664-.186-.835l-.852-.354c-.346-.102-.668.106-.721.46l-.482 3.236c-.055.356.078.41.291.122l1.95-2.629"/><path d="m51.17 49.51c-.053-.354-.381-.578-.73-.497 0 0-.084.02-.438.165-.352.146-.426.192-.426.192-.305.19-.379.58-.164.868l1.949 2.632c.213.288.344.234.291-.122l-.482-3.238"/><path d="m48.24 51.41c-.289-.215-.664-.131-.836.186l-.354.852c-.1.345.107.668.461.721l3.236.482c.357.054.41-.078.123-.292l-2.63-1.949"/><path d="m47.51 54.827c-.354.054-.578.381-.498.731 0 0 .02.084.166.436.146.354.193.428.193.428.189.305.58.379.867.164l2.633-1.949c.287-.213.232-.345-.123-.292l-3.238.482"/><path d="m49.41 57.756c-.215.288-.131.664.186.835l.852.353c.346.102.668-.105.721-.459l.482-3.237c.053-.356-.078-.41-.291-.122l-1.95 2.63"/><path d="m52.828 58.48c.053.354.381.579.73.497 0 0 .084-.02.436-.165.354-.146.428-.192.428-.192.305-.189.379-.58.164-.868l-1.949-2.632c-.213-.288-.346-.233-.293.122l.484 3.238"/><path d="m55.756 56.59c.287.214.664.131.834-.186l.354-.852c.104-.346-.105-.668-.459-.722l-3.236-.482c-.357-.053-.41.079-.123.292l2.63 1.95"/><path d="m56.48 53.17c.355-.053.58-.381.498-.73 0 0-.02-.085-.166-.437-.145-.353-.191-.427-.191-.427-.189-.305-.58-.379-.867-.164l-2.633 1.948c-.287.214-.234.346.123.293l3.236-.483"/><path d="m54.59 50.24c.215-.288.131-.664-.186-.835l-.852-.354c-.346-.102-.668.106-.721.46l-.482 3.236c-.055.356.078.41.291.122l1.95-2.629"/></g><g fill="#fc97b2"><path d="m31 48h2v14h-2z"/><path d="m26 55h12v7h-12z"/></g><g fill="#e84d88"><path d="m28 57.33h3v3h-3z"/><path d="m33 57.33h3v3h-3z"/></g><g fill="#fc97b2"><path d="M59.262,11c-1.885,0-3.5,1.055-4.262,2.57C54.238,12.055,52.623,11,50.736,11C48.121,11,46,13.016,46,15.5
- C46,20,55.449,29,55.449,29S64,20,64,15.5C64,13.016,61.879,11,59.262,11z"/><path d="M13.262,11c-1.885,0-3.5,1.055-4.262,2.57C8.238,12.055,6.623,11,4.736,11C2.121,11,0,13.016,0,15.5
- C0,20,9.449,29,9.449,29S18,20,18,15.5C18,13.016,15.879,11,13.262,11z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63 62h-62c-.6 0-1 .5-1 1 0 .5.4 1 1 1h62c.5 0 1-.5 1-1 0-.5-.5-1-1-1" fill="#e84d88"/><path fill="#fc97b2" d="m60 62h-56v-18l28-12 28 12z"/><g fill="#ed4c5c"><path d="m21.4 34.1l-20.2 8.3c-1 .4-1.4 1.5-1 2.5.4 1 1.5 1.4 2.5 1l20.2-8.3c1-.4 1.4-1.5 1-2.5-.4-.9-1.6-1.4-2.5-1"/><path d="m42.6 34.1l20.2 8.3c1 .4 1.4 1.5 1 2.5-.4 1-1.5 1.4-2.5 1l-20.2-8.3c-1-.4-1.4-1.5-1-2.5.4-.9 1.6-1.4 2.5-1"/></g><path fill="#ffc7ce" d="m44 62h-24v-36l12-5 12 5z"/><path fill="#ffce31" d="m38.7 5h-5v-5h-3.4v5h-5v3.3h5v11.7h3.4v-11.7h5z"/><path fill="#ffc7ce" d="m20 63h24v1h-24z"/><path fill="#fc97b2" d="m20 62h24v1h-24z"/><path d="m47.8 25.4l-15.8-6.4-15.8 6.4c-1 .4-1.4 1.5-1 2.4.4.9 1.5 1.4 2.5 1l14.3-5.8 14.4 5.8c1 .4 2.1-.1 2.5-1 .4-.9-.1-2-1.1-2.4" fill="#ed4c5c"/><g fill="#fff"><path d="m30.7 29.8c-.1-.6-.6-.9-1.2-.8 0 0-.1 0-.7.3-.6.2-.7.3-.7.3-.5.3-.6.9-.3 1.4l3.1 4.2c.3.5.6.4.5-.2l-.7-5.2"/><path d="m26 32.9c-.5-.3-1.1-.2-1.3.3l-.6 1.4c-.2.5.2 1.1.7 1.2l5.2.8c.6.1.7-.1.2-.5l-4.2-3.2"/><path d="m24.8 38.3c-.6.1-.9.6-.8 1.2 0 0 0 .1.3.7.2.6.3.7.3.7.3.5.9.6 1.4.3l4.2-3.1c.5-.3.4-.6-.2-.5l-5.2.7"/><path d="m27.9 43c-.3.5-.2 1.1.3 1.3l1.4.6c.6.2 1.1-.2 1.2-.7l.8-5.2c.1-.6-.1-.7-.5-.2l-3.2 4.2"/><path d="m33.3 44.2c.1.6.6.9 1.2.8 0 0 .1 0 .7-.3.6-.2.7-.3.7-.3.5-.3.6-.9.3-1.4l-3.2-4.2c-.3-.5-.6-.4-.5.2l.8 5.2"/><path d="m38 41.1c.5.3 1.1.2 1.3-.3l.6-1.4c.2-.6-.2-1.1-.7-1.2l-5.2-.6c-.6-.1-.7.1-.2.5l4.2 3"/><path d="m39.2 35.7c.6-.1.9-.6.8-1.2 0 0 0-.1-.3-.7-.2-.6-.3-.7-.3-.7-.3-.5-.9-.6-1.4-.3l-4.2 3.2c-.5.3-.4.6.2.5l5.2-.8"/><path d="m36.1 31c.3-.5.2-1.1-.3-1.3l-1.4-.6c-.6-.2-1.1.2-1.2.7l-.6 5.2c-.1.6.1.7.5.2l3-4.2"/></g><path d="m32 47c-3.3 0-6 2.7-6 6v9h12v-9c0-3.3-2.7-6-6-6" fill="#fc97b2"/><path d="m28 56h8v-3c0-2.2-1.8-4-4-4-2.2 0-4 1.8-4 4v3" fill="#d6eef0"/><g fill="#e84d88"><path d="m11.2 49.5c-.1-.4-.4-.6-.7-.5 0 0-.1 0-.4.2-.4.1-.4.2-.4.2-.3.2-.4.6-.2.9l1.9 2.6c.2.3.3.2.3-.1l-.5-3.3"/><path d="m8.2 51.4c-.3-.2-.7-.1-.8.2l-.4.9c-.1.3.1.7.5.7l3.2.5c.4.1.4-.1.1-.3l-2.6-2"/><path d="m7.5 54.8c-.4.1-.6.4-.5.7 0 0 0 .1.2.4.1.4.2.4.2.4.2.3.6.4.9.2l2.6-1.9c.3-.2.2-.3-.1-.3l-3.3.5"/><path d="m9.4 57.8c-.2.3-.1.7.2.8l.9.4c.3.1.7-.1.7-.5l.5-3.2c.1-.4-.1-.4-.3-.1l-2 2.6"/><path d="m12.8 58.5c.1.4.4.6.7.5 0 0 .1 0 .4-.2.4-.1.4-.2.4-.2.3-.2.4-.6.2-.9l-1.9-2.6c-.2-.3-.3-.2-.3.1l.5 3.3"/><path d="m15.8 56.6c.3.2.7.1.8-.2l.4-.9c.1-.3-.1-.7-.5-.7l-3.2-.5c-.4-.1-.4.1-.1.3l2.6 2"/><path d="m16.5 53.2c.4-.1.6-.4.5-.7 0 0 0-.1-.2-.4-.1-.4-.2-.4-.2-.4-.2-.3-.6-.4-.9-.2l-2.6 1.9c-.3.2-.2.3.1.3l3.3-.5"/><path d="m14.6 50.2c.2-.3.1-.7-.2-.8l-.9-.4c-.3-.1-.7.1-.7.5l-.5 3.2c-.1.4.1.4.3.1l2-2.6"/><path d="m51.2 49.5c-.1-.4-.4-.6-.7-.5 0 0-.1 0-.4.2-.4.1-.4.2-.4.2-.3.2-.4.6-.2.9l1.9 2.6c.2.3.3.2.3-.1l-.5-3.3"/><path d="m48.2 51.4c-.3-.2-.7-.1-.8.2l-.4.9c-.1.3.1.7.5.7l3.2.5c.4.1.4-.1.1-.3l-2.6-2"/><path d="m47.5 54.8c-.4.1-.6.4-.5.7 0 0 0 .1.2.4.1.4.2.4.2.4.2.3.6.4.9.2l2.6-1.9c.3-.2.2-.3-.1-.3l-3.3.5"/><path d="m49.4 57.8c-.2.3-.1.7.2.8l.9.4c.3.1.7-.1.7-.5l.5-3.2c.1-.4-.1-.4-.3-.1l-2 2.6"/><path d="m52.8 58.5c.1.4.4.6.7.5 0 0 .1 0 .4-.2.4-.1.4-.2.4-.2.3-.2.4-.6.2-.9l-1.9-2.6c-.2-.3-.3-.2-.3.1l.5 3.3"/><path d="m55.8 56.6c.3.2.7.1.8-.2l.4-.9c.1-.3-.1-.7-.5-.7l-3.2-.5c-.4-.1-.4.1-.1.3l2.6 2"/><path d="m56.5 53.2c.4-.1.6-.4.5-.7 0 0 0-.1-.2-.4-.1-.4-.2-.4-.2-.4-.2-.3-.6-.4-.9-.2l-2.6 1.9c-.3.2-.2.3.1.3l3.3-.5"/><path d="m54.6 50.2c.2-.3.1-.7-.2-.8l-.9-.4c-.3-.1-.7.1-.7.5l-.5 3.2c-.1.4.1.4.3.1l2-2.6"/></g><g fill="#fc97b2"><path d="m31 48h2v14h-2z"/><path d="m26 55h12v7h-12z"/></g><g fill="#e84d88"><path d="m28 57.3h3v3h-3z"/><path d="m33 57.3h3v3h-3z"/></g><g fill="#fc97b2"><path d="m59.3 11c-1.9 0-3.5 1.1-4.3 2.6-.8-1.5-2.4-2.6-4.3-2.6-2.6 0-4.7 2-4.7 4.5 0 4.5 9.4 13.5 9.4 13.5s8.6-9 8.6-13.5c0-2.5-2.1-4.5-4.7-4.5"/><path d="M13.3,11c-1.9,0-3.5,1.1-4.3,2.6C8.2,12.1,6.6,11,4.7,11C2.1,11,0,13,0,15.5C0,20,9.4,29,9.4,29S18,20,18,15.5
+ C18,13,15.9,11,13.3,11z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f493.svg b/build/js/jsxc/lib/emojione/assets/svg/1f493.svg
index ad4b080..4138862 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f493.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f493.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f46767" d="m56.715 22.444c-5.437-14.383-23.08-7.93-24.716-.748-2.245-7.654-19.46-13.363-24.713.758-5.85 15.729 22.672 29.846 24.713 32.16 2.038-1.838 30.564-16.695 24.716-32.17"/><g fill="#ff8a8a"><path d="m47.41 9.08c.471-.027.943-.018 1.415.02.471.031.939.094 1.407.174.937.17 1.86.432 2.757.787 1.795.707 3.478 1.807 4.862 3.238 1.381 1.424 2.446 3.172 3.08 5.04.317.934.536 1.895.651 2.861.058.484.094.967.097 1.451.005.482-.013.967-.068 1.445l-.488-1.338c-.162-.441-.329-.877-.504-1.301-.349-.852-.725-1.676-1.147-2.459-.844-1.572-1.858-2.998-3.064-4.244-1.203-1.248-2.59-2.311-4.106-3.23-.76-.461-1.551-.885-2.367-1.283-.408-.205-.824-.393-1.244-.584l-1.281-.578"/><path d="m52.49 6.797c.35-.051.7-.066 1.053-.063.35.002.7.031 1.052.076.698.09 1.391.262 2.066.504 1.347.49 2.617 1.299 3.649 2.365 1.036 1.064 1.818 2.387 2.254 3.795.218.699.355 1.42.411 2.143.022.359.032.719.012 1.08-.014.357-.051.713-.124 1.07-.154-.328-.291-.65-.431-.963-.141-.318-.278-.627-.423-.932-.286-.607-.584-1.188-.907-1.742-.644-1.109-1.377-2.105-2.233-2.992-.855-.887-1.83-1.656-2.898-2.359-.536-.352-1.096-.682-1.678-1-.29-.164-.584-.324-.886-.484-.301-.16-.606-.32-.917-.496"/><path d="m16.586 9.08c-.471-.027-.943-.018-1.415.018-.471.031-.939.096-1.407.176-.937.168-1.86.432-2.757.787-1.795.706-3.477 1.806-4.862 3.237-1.381 1.424-2.446 3.172-3.08 5.04-.317.934-.536 1.895-.651 2.861-.058.482-.094.967-.097 1.451-.005.483.013.968.069 1.446l.487-1.34c.162-.439.329-.877.504-1.299.349-.854.726-1.676 1.147-2.459.844-1.574 1.858-3 3.064-4.244 1.203-1.248 2.59-2.311 4.106-3.232.76-.459 1.551-.883 2.367-1.281.408-.205.824-.393 1.244-.584l1.281-.578"/><path d="m11.508 6.795c-.35-.049-.7-.066-1.053-.061-.35.002-.7.029-1.052.076-.698.09-1.391.262-2.066.504-1.346.491-2.617 1.298-3.649 2.366-1.036 1.064-1.818 2.387-2.254 3.795-.218.699-.355 1.418-.411 2.141-.023.361-.032.72-.012 1.082.014.355.051.713.124 1.07.154-.328.291-.65.431-.963.141-.318.278-.627.423-.932.286-.607.584-1.188.907-1.744.644-1.109 1.377-2.105 2.233-2.99.855-.887 1.83-1.656 2.898-2.359.536-.352 1.096-.682 1.678-1 .29-.164.585-.324.886-.484s.607-.323.917-.499"/><path d="m6.961 40.583c2.159 1.861 4.24 3.805 6.363 5.705 2.07 1.957 4.183 3.867 6.219 5.863l-.145.156c-1.554-.414-2.867-1.09-4.096-1.859-1.243-.752-2.364-1.637-3.417-2.596-1.048-.965-2.02-2.01-2.877-3.184-.869-1.158-1.652-2.412-2.192-3.93l.145-.155"/><path d="m2.663 43.583c2.514 2.188 4.95 4.459 7.428 6.686 2.427 2.281 4.894 4.52 7.284 6.842l-.145.156c-1.731-.578-3.222-1.418-4.628-2.35-1.42-.914-2.719-1.963-3.95-3.084-1.225-1.129-2.377-2.336-3.409-3.674-1.047-1.322-2.01-2.738-2.725-4.42l.145-.156"/><path d="m57.04 40.583c-2.158 1.861-4.239 3.805-6.362 5.705-2.07 1.957-4.184 3.867-6.219 5.863l.145.156c1.554-.414 2.867-1.09 4.095-1.859 1.244-.752 2.365-1.637 3.418-2.596 1.047-.965 2.02-2.01 2.877-3.184.869-1.158 1.652-2.412 2.191-3.93l-.145-.155"/><path d="m61.34 43.583c-2.514 2.188-4.95 4.459-7.428 6.686-2.427 2.281-4.894 4.52-7.284 6.842l.144.156c1.732-.578 3.223-1.418 4.629-2.35 1.42-.914 2.719-1.963 3.95-3.084 1.225-1.129 2.377-2.336 3.409-3.674 1.047-1.322 2.01-2.738 2.725-4.42l-.145-.156"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m57.2 22.1c-5.5-14.8-23.5-8.2-25.2-.8-2.3-7.9-19.8-13.8-25.2.8-6 16.2 23.1 30.7 25.2 33.1 2.1-1.9 31.2-17.2 25.2-33.1"/><path d="m60 18.5c-.6-1.9-1.6-3.6-3-5-1.3-1.4-3-2.5-4.7-3.2-.9-.4-1.8-.6-2.7-.8-.5-.1-.9-.1-1.4-.2-.5 0-.9 0-1.4 0l1.2.6c.4.2.8.4 1.2.6.8.4 1.6.8 2.3 1.3 1.5.9 2.8 2 4 3.2 1.2 1.2 2.1 2.6 3 4.2.4.8.8 1.6 1.1 2.4.2.4.3.9.5 1.3l.5 1.3c.1-.5.1-1 .1-1.4 0-.5 0-1-.1-1.4-.1-1-.3-2-.6-2.9"/><path d="m62 15.8c-.1-.7-.2-1.4-.4-2.1-.4-1.4-1.2-2.7-2.2-3.8-1-1.1-2.2-1.9-3.5-2.3-.7-.2-1.3-.4-2-.5-.3 0-.7-.1-1-.1-.3 0-.7 0-1 .1.3.2.6.3.9.5.2.1.5.3.8.4.6.3 1.1.6 1.6 1 1 .7 2 1.5 2.8 2.3.8.9 1.5 1.9 2.2 3 .3.5.6 1.1.9 1.7.1.3.3.6.4.9.1.3.3.6.4 1 .1-.4.1-.7.1-1.1 0-.3 0-.7 0-1"/><path d="m4.3 21.6c.3-.8.7-1.7 1.1-2.4.8-1.6 1.8-3 3-4.2 1.2-1.2 2.5-2.3 4-3.2.7-.5 1.5-.9 2.3-1.3.4-.2.8-.4 1.2-.6l1.2-.6c-.5 0-.9 0-1.4 0-.5 0-.9.1-1.4.2-.9.2-1.8.4-2.7.8-1.7.7-3.3 1.8-4.6 3.2-1.3 1.4-2.4 3.1-3 5-.3.9-.5 1.9-.6 2.8-.1.5-.1 1-.1 1.4 0 .5 0 1 .1 1.4l.5-1.3c.1-.4.2-.8.4-1.2"/><path d="m6 11.4c.8-.9 1.8-1.7 2.8-2.4.5-.3 1.1-.7 1.6-1 .3-.2.6-.3.9-.5.3-.2.6-.3.9-.5-.3 0-.7-.1-1-.1-.3 0-.7 0-1 .1-.7.1-1.3.3-2 .5-1.4.6-2.6 1.4-3.6 2.4-1 1.1-1.8 2.4-2.2 3.8-.2.7-.3 1.4-.4 2.1 0 .4 0 .7 0 1.1 0 .4 0 .7.1 1.1.1-.3.3-.6.4-1 .2-.4.3-.7.5-1 .3-.6.6-1.2.9-1.7.6-1.1 1.3-2.1 2.1-2.9"/><path d="m7.8 40.5l-.1.2c.5 1.5 1.3 2.7 2.1 3.9.8 1.2 1.8 2.2 2.8 3.1 1 .9 2.1 1.8 3.3 2.6 1.2.8 2.5 1.4 4 1.8l.1-.2c-2-2-4-3.9-6-5.8-2.1-1.8-4.1-3.8-6.2-5.6"/><path d="m3.6 43.5l-.1.2c.7 1.7 1.6 3.1 2.6 4.4 1 1.3 2.1 2.5 3.3 3.6 1.2 1.1 2.4 2.1 3.8 3.1 1.4.9 2.8 1.8 4.5 2.3l.1-.2c-2.3-2.3-4.7-4.5-7-6.8-2.4-2.2-4.8-4.5-7.2-6.6"/><path d="m51.5 47.7c1-1 2-2 2.8-3.1.8-1.1 1.6-2.4 2.1-3.9l-.1-.2c-2.1 1.8-4.1 3.8-6.2 5.6-2 1.9-4 3.8-6 5.8l.1.2c1.5-.4 2.8-1.1 4-1.8 1.2-.8 2.2-1.7 3.3-2.6"/><path d="m53.2 50.1c-2.3 2.3-4.7 4.5-7 6.8l.1.2c1.7-.6 3.1-1.4 4.5-2.3 1.4-.9 2.6-1.9 3.8-3.1 1.2-1.1 2.3-2.3 3.3-3.6 1-1.3 1.9-2.7 2.6-4.4l-.1-.2c-2.4 2.1-4.8 4.4-7.2 6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f494.svg b/build/js/jsxc/lib/emojione/assets/svg/1f494.svg
index f7576b5..a8b9e1b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f494.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f494.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f46767" d="m61.09 19.09c-4.482-12.05-16.15-11.637-23.15-7.349l-5.38 11.288 9.954-.927-10.249 13.159 8.43-2.15-5.285 20.89-1.643-14.13-11.862 2.543 9.07-14.445-7.824-1.139 5.381-12.364c-6.404-6.39-22.972-7.569-26.21 7.755-3.853 18.253 27.347 29.586 32.928 32.712l-.012.071c.021-.014.045-.029.066-.043.023.014.057.03.078.043l.002-.095c8.434-5.432 31.452-20.359 25.698-35.817"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 19.1c-4.5-12.1-16.2-11.6-23.2-7.4l-5.3 11.3 10-.9-10.3 13.2 8.4-2.2-5.3 20.9-1.6-14.1-11.9 2.5 9.1-14.4-7.8-1.1 5.4-12.4c-6.4-6.4-23-7.6-26.2 7.8-3.9 18.3 27.3 29.6 32.9 32.7v.1c0 0 0 0 .1 0 0 0 .1 0 .1 0v-.1c8.3-5.5 31.3-20.5 25.6-35.9" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f495.svg b/build/js/jsxc/lib/emojione/assets/svg/1f495.svg
index 8a4ab20..6f51fbd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f495.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f495.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f46767"><path d="m27.12 31.749c1.277-7.515-10.99-19.654-21.334-9.734-11.524 11.05 6.863 35.14 7.634 37.985 2.5-.722 32.945-1.499 34.412-17.237 1.361-14.623-16.335-16.505-20.712-11.01"/><path d="m59.2 5.608c-6.648-5.05-12.855 3.073-11.521 6.869-3.242-2.877-12.77-.492-11.09 7.568 1.877 8.969 19.01 7.153 20.611 7.623.403-1.442 9.151-16.635 1.998-22.06"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m28.3 32.2c1.3-7.9-11.5-20.7-22.3-10.3-12 11.7 7.2 37.1 8 40.1 2.6-.8 34.4-1.6 36-18.2 1.3-15.4-17.2-17.4-21.7-11.6"/><path d="m59.2 3.6c-6.8-5.1-13.1 3.1-11.7 7-3.3-2.9-13-.5-11.3 7.7 1.9 9.1 19.3 7.3 20.9 7.7.4-1.5 9.3-16.9 2.1-22.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f496.svg b/build/js/jsxc/lib/emojione/assets/svg/1f496.svg
index 35fc019..27457d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f496.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f496.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff4085" d="m61.07 18.16c-6.396-16.918-27.15-9.328-29.07-.879-2.642-9-22.89-15.72-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.397-2.162 35.952-19.639 29.07-37.84"/><g fill="#fff"><path d="m53.831 13.275l-2.641-5.275-2.635 5.275-5.275 2.637 5.275 2.636 2.635 5.276 2.641-5.276 5.269-2.636z"/><path d="m16.252 26.753l-3.562-7.128-3.566 7.128-7.124 3.557 7.124 3.567 3.566 7.133 3.562-7.133 7.127-3.567z"/><path d="m48.725 42.44l-2.873-5.752-2.877 5.752-5.745 2.87 5.745 2.87 2.877 5.752 2.873-5.752 5.745-2.87z"/><path transform="matrix(.7071-.7071.7071.7071-8.196 21.52)" d="m19.758 18.532h4.243v4.243h-4.243z"/><path transform="matrix(.7071-.7071.7071.7071-21.807 30.472)" d="m24.11 39.792h3.536v3.536h-3.536z"/><path transform="matrix(.7071-.7071.7071.7071-6.931 37.899)" d="m40.16 25.19h4.243v4.243h-4.243z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#ff5a79"/><g fill="#fff"><path d="m53.8 13.3l-2.6-5.3-2.6 5.3-5.3 2.6 5.3 2.6 2.6 5.3 2.6-5.3 5.3-2.6z"/><path d="m16.3 26.8l-3.6-7.2-3.6 7.2-7.1 3.5 7.1 3.6 3.6 7.1 3.6-7.1 7.1-3.6z"/><path d="m48.7 42.4l-2.8-5.7-2.9 5.7-5.8 2.9 5.8 2.9 2.9 5.7 2.8-5.7 5.8-2.9z"/><path transform="matrix(.7071-.7071.7071.7071-8.1959 21.5202)" d="m19.8 18.5h4.2v4.2h-4.2z"/><path transform="matrix(.7071-.7071.7071.7071-21.8069 30.4721)" d="m24.1 39.8h3.5v3.5h-3.5z"/><path transform="matrix(.7071-.7071.7071.7071-6.9308 37.8984)" d="m40.2 25.2h4.2v4.2h-4.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f497.svg b/build/js/jsxc/lib/emojione/assets/svg/1f497.svg
index f8812da..a3da17e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f497.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f497.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f46767" d="m61.07 18.16c-6.395-16.918-27.15-9.328-29.07-.879-2.641-9-22.891-15.72-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.398-2.162 35.953-19.639 29.07-37.84"/><path fill="#fff" d="m56.23 20.998c-5.33-13.316-22.629-7.344-24.23-.693-2.201-7.086-19.08-12.373-24.23.701-5.734 14.564 22.23 27.635 24.23 29.777 1.998-1.701 29.961-15.459 24.23-29.785"/><path fill="#f46767" d="m49.23 24.799c-3.79-10.03-16.09-5.527-17.229-.521-1.563-5.334-13.563-9.314-17.225.527-4.078 10.967 15.803 20.805 17.225 22.416 1.423-1.282 21.306-11.637 17.229-22.422"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8m-29.1 32.6c-2-2.2-30-15.2-24.2-29.8 5.1-13.1 22-7.8 24.2-.7 1.6-6.6 18.9-12.6 24.2.7 5.8 14.3-22.2 28.1-24.2 29.8"/><path d="m49.2 24.8c-3.8-10-16.1-5.5-17.2-.5-1.6-5.3-13.6-9.3-17.2.5-4.1 11 15.8 20.8 17.2 22.4 1.4-1.3 21.3-11.6 17.2-22.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f498.svg b/build/js/jsxc/lib/emojione/assets/svg/1f498.svg
index 27a5334..66b99f3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f498.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f498.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M11.159 54.795 9.482 53.15 25.18 37.703 26.858 39.35z"/><path fill="#42ade2" d="m4.205 59.984c0 0-.576-6.697 5.253-12.428l1.714 5.574-6.967 6.854"/><path fill="#467591" d="m4.205 59.984c0 0 6.808.566 12.637-5.166l-5.669-1.688-6.968 6.854"/><path fill="#f46767" d="m53.741 24.385c-5.601-14.576-23.784-8.04-25.467-.756-2.313-7.758-20.05-13.547-25.462.766-6.03 15.939 23.359 30.25 25.462 32.59 2.102-1.864 31.493-16.919 25.467-32.6"/><path fill="#ffce31" d="m39.997 27.29l-1.677-1.649 16.16-15.899 1.68 1.651z"/><g fill="#467591"><path d="m46.923 17.18c0 0-.309-6.959 6.02-13.182l1.546 5.742-7.561 7.44"/><path d="m48.601 18.83c0 0 7.07.305 13.398-5.916l-5.836-1.521-7.562 7.437"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m12.7 54.6l-2-2.1 19.1-19 2.1 2z"/><path d="m4.2 61c0 0-.7-8.3 6.4-15.3l2.1 6.9-8.5 8.4" fill="#42ade2"/><path d="m4.2 61c0 0 8.3.7 15.4-6.4l-6.9-2.1-8.5 8.5" fill="#467591"/><path d="m54.7 24.3c-5.7-15-24.2-8.3-26-.8-2.4-8-20.4-14-26 .8-6.1 16.4 23.8 31.2 26 33.6 2.2-1.9 32.2-17.4 26-33.6" fill="#ff5a79"/><path fill="#ffce31" d="m37.1 30.1l-2.4-2.3 16.8-16.7 2.3 2.4z"/><g fill="#467591"><path d="m40.9 21.7c0 0-.4-9.9 8.4-18.7l2.2 8.1-10.6 10.6"/><path d="m43.2 24c0 0 9.9.4 18.8-8.4l-8.2-2.2-10.6 10.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f499.svg b/build/js/jsxc/lib/emojione/assets/svg/1f499.svg
index 8991f95..6db134a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f499.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f499.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#66caf2" d="m61.07 18.16c-6.395-16.918-27.15-9.328-29.07-.879-2.641-9-22.891-15.72-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.398-2.162 35.953-19.639 29.07-37.84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#66caf2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f49a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f49a.svg
index 1993b7b..2d718b5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f49a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f49a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c7e755" d="m61.07 18.16c-6.395-16.918-27.15-9.328-29.07-.879-2.641-9-22.891-15.72-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.398-2.162 35.953-19.639 29.07-37.84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#85e845"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f49b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f49b.svg
index e8d163c..c642502 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f49b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f49b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd7d" d="m61.07 18.16c-6.395-16.918-27.15-9.328-29.07-.879-2.641-9-22.891-15.72-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.398-2.162 35.953-19.639 29.07-37.84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#f5ce3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f49c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f49c.svg
index 5807b87..7adf079 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f49c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f49c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cea9f7" d="m61.07 18.16c-6.395-16.918-27.15-9.328-29.07-.879-2.641-9-22.891-15.72-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.398-2.162 35.953-19.639 29.07-37.84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#c28fef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f49d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f49d.svg
index 8b4ad40..2e8a496 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f49d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f49d.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f46767"><path d="m61.07 18.17c.809 2.172 1.053 4.316.862 6.416l-16.487-16.487c6.097-.638 12.576 1.871 15.625 10.07"/><path d="m2.927 18.16c6.395-16.918 27.15-9.328 29.07-.879.94-3.206 4.117-6.115 8.093-7.791l20.435 20.434c-5.773 13.354-26.653 23.951-28.528 26.08-2.398-2.162-35.953-19.639-29.07-37.84"/></g><g fill="#dae4ea"><path d="m45.45 8.101l16.487 16.487c-.165 1.816-.654 3.6-1.404 5.336l-20.434-20.434c1.677-.708 3.494-1.195 5.351-1.389"/><path d="m55.921 21.525c0 0-4.983 4.52-3.994 11.506l-3.752-3.752-3.805 3.789c0 0 .796-8.279 7.809-15.291l3.742 3.748"/></g><path fill="#fff" d="m51.967 17.985c-1.394 1.394-1.264 4.232.288 6.312l1.242 1.664c1.552 2.076 3.392 2.682 4.088 1.344.698-1.34 2.363-3 3.702-3.702 1.339-.696.733-2.537-1.344-4.089l-1.664-1.242c-2.078-1.551-4.919-1.68-6.312-.287"/><path fill="#dae4ea" d="m52.25 17.686c-.415.498.355 1.225 1.508 1.819l.659.339c1.152.596 1.445.241.65-.782l-.453-.587c-.795-1.025-1.949-1.288-2.364-.789"/><path fill="#c4ced6" d="m56.991 27.01c0 .284-.314.271-.432.291-.354.054-1.017-.174-1.82-.979-.232-.231-.458-.495-.676-.787l-1.241-1.663c-.87-1.164-1.24-2.621-1.076-3.808 0 0 5.245 3.573 5.245 6.946"/><path fill="#dae4ea" d="m48.48 14.08c0 0-4.52 4.983-11.507 3.994l3.752 3.753-3.794 3.798c0 0 8.283-.79 15.296-7.803l-3.747-3.742"/><path fill="#fff" d="m52.01 18.03c-1.394 1.394-4.232 1.264-6.312-.288l-1.663-1.242c-2.078-1.552-2.682-3.392-1.345-4.088 1.341-.697 3.01-2.363 3.702-3.702.698-1.338 2.536-.733 4.089 1.344l1.241 1.664c1.552 2.078 1.681 4.919.288 6.312"/><path fill="#dae4ea" d="m52.31 17.747c-.498.415-1.225-.355-1.819-1.508l-.339-.659c-.595-1.151-.241-1.445.783-.65l.586.453c1.024.795 1.289 1.95.789 2.364"/><path fill="#c4ced6" d="m42.988 13.01c-.284 0-.271.314-.29.433-.055.353.174 1.017.978 1.82.231.23.496.458.787.675l1.663 1.242c1.164.869 2.621 1.239 3.809 1.075 0 0-3.574-5.245-6.947-5.245"/><path fill="#fff" d="m50.557 16.572c-.782 1.033-.88 2.424-.215 3.088.665.665 2.055.568 3.089-.214l.35-.265c1.035-.782 1.122-2.165.205-3.082l-.083-.083c-.917-.917-2.299-.829-3.082.205l-.264.351"/><path fill="#dae4ea" d="m51.676 18.326c.604.604 1.809.58 2.801-.02-.139.326-.369.627-.688.868l-.357.271c-1.034.782-2.424.879-3.089.214-.665-.664-.567-2.055.215-3.088l.271-.358c.241-.319.542-.549.867-.688-.6.994-.625 2.196-.02 2.801"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m61.1 18.4c.8 2.2 1.1 4.4.9 6.6l-16.6-16.9c6.1-.7 12.6 1.9 15.7 10.3"/><path d="M2.9,18.3C9.3,1.1,30.1,8.8,32,17.4c0.9-3.3,4.1-6.2,8.1-8l20.4,20.9C54.8,44,33.9,54.8,32,57
+ C29.6,54.8-4,36.9,2.9,18.3z"/></g><g fill="#dae4ea"><path d="m45.4 8.1l16.5 16.8c-.2 1.9-.7 3.7-1.4 5.5l-20.4-20.9c1.7-.7 3.5-1.2 5.3-1.4"/><path d="m54.2 24.8c0 0-6.4 6-5.1 15.1l-4.9-4.9-4.9 5c0 0 1-10.9 10.1-20.1l4.8 4.9"/></g><path d="m49.1 20.1c-1.8 1.8-1.6 5.6.4 8.3l1.6 2.2c2 2.7 4.4 3.5 5.3 1.8.9-1.8 3-4 4.8-4.9 1.7-.9.9-3.3-1.7-5.4l-2.1-1.6c-2.9-2-6.5-2.2-8.3-.4" fill="#fff"/><path d="m49.4 19.8c-.5.7.5 1.6 1.9 2.4l.8.4c1.5.8 1.9.3.8-1l-.6-.8c-.8-1.4-2.3-1.7-2.9-1" fill="#dae4ea"/><path d="m55.5 32c0 .4-.4.4-.6.4-.5.1-1.3-.2-2.3-1.3-.3-.3-.6-.7-.9-1l-1.6-2.2c-1.1-1.5-1.6-3.5-1.4-5 .1 0 6.8 4.7 6.8 9.1" fill="#c4ced6"/><path d="m44.6 15c0 0-5.8 6.6-14.8 5.3l4.8 4.9-4.9 5c0 0 10.7-1 19.7-10.3l-4.8-4.9" fill="#dae4ea"/><path d="m49.1 20.2c-1.8 1.8-5.5 1.7-8.1-.4l-2.1-1.6c-2.7-2-3.5-4.5-1.7-5.4 1.7-.9 3.9-3.1 4.8-4.9.9-1.8 3.3-1 5.3 1.8l1.6 2.2c1.9 2.7 2 6.5.2 8.3" fill="#fff"/><path d="m49.5 19.8c-.6.5-1.6-.5-2.3-2l-.5-.8c-.8-1.5-.3-1.9 1-.9l.8.6c1.3 1.1 1.7 2.6 1 3.1" fill="#dae4ea"/><path d="m37.5 13.6c-.4 0-.3.4-.4.6-.1.5.2 1.3 1.3 2.4.3.3.6.6 1 .9l2.1 1.6c1.5 1.1 3.4 1.6 4.9 1.4.1 0-4.6-6.9-8.9-6.9" fill="#c4ced6"/><path d="m47.3 18.3c-1 1.4-1.1 3.2-.3 4.1.9.9 2.6.7 4-.3l.4-.3c1.3-1 1.4-2.9.3-4.1l-.1-.1c-1.2-1.2-3-1.1-4 .3l-.3.4" fill="#fff"/><path d="m48.7 20.6c.8.8 2.3.8 3.6 0-.2.4-.5.8-.9 1.1l-.4.4c-1.3 1-3.1 1.2-4 .3-.9-.9-.7-2.7.3-4.1l.3-.5c.3-.4.7-.7 1.1-.9-.8 1.3-.8 2.9 0 3.7" fill="#dae4ea"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f49e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f49e.svg
index 29adffe..f90aae9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f49e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f49e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff8a8a"><path d="m27.859 53.791c-2.481.271-5.093.084-7.482-.575-2.404-.654-4.644-1.763-6.563-3.23-1.921-1.467-3.521-3.292-4.674-5.329-1.156-2.035-1.857-4.276-2.079-6.52.631 2.165 1.706 4.152 3.106 5.809 1.4 1.659 3.118 2.99 4.987 3.93 1.87.942 3.891 1.495 5.902 1.652 2.026.157 3.983-.07 5.909-.655 1.329-.404 2.734.346 3.139 1.675.403 1.329-.347 2.734-1.676 3.138-.147.046-.297.077-.445.094l-.124.011"/><path d="m56.35 31.636c.828 2.389 1.176 5.03.965 7.517-.201 2.503-.922 4.907-2.045 7.05-2.24 4.298-6.117 7.458-10.396 8.869 3.955-2.182 6.879-5.823 8.09-9.836.615-2 .816-4.082.602-6.07-.219-2-.828-3.848-1.816-5.566-.691-1.206-.275-2.743.93-3.435s2.742-.276 3.434.929c.078.135.141.272.191.414l.045.132"/><path d="m33.3 8.239c2.414-.636 5.02-.838 7.484-.54 2.475.289 4.854 1.054 6.969 2.22 2.119 1.165 3.973 2.732 5.416 4.575 1.445 1.841 2.471 3.953 3.02 6.139-.945-2.048-2.303-3.854-3.934-5.282-1.631-1.434-3.527-2.494-5.516-3.146-1.988-.653-4.068-.9-6.08-.757-2.029.146-3.93.66-5.748 1.524-1.254.597-2.755.063-3.353-1.19-.597-1.254-.063-2.756 1.191-3.352.14-.067.282-.119.427-.159l.123-.032"/><path d="m15.01 30.549c-1.07-2.289-1.685-4.88-1.729-7.376-.057-2.512.415-4.978 1.313-7.219 1.787-4.505 5.321-8.05 9.434-9.888-3.711 2.575-6.247 6.496-7.04 10.612-.407 2.054-.395 4.145.022 6.1.423 1.971 1.218 3.743 2.376 5.353.812 1.128.556 2.699-.572 3.511s-2.7.556-3.512-.571c-.091-.126-.168-.258-.232-.394l-.059-.128"/></g><g fill="#f46767"><path d="m31.427 41.889c-1.812-4.565-13.02-7.209-15.624 1.678-2.904 9.9 15.893 17.12 17.306 18.433 1.197-1.223 18.52-11.705 14.02-20.87-4.177-8.522-15.04-3.712-15.705.759"/><path d="m61.17 24.857c-3.344-4.656-9.287-.783-9.229 1.932-1.541-2.538-8.447-3.045-9.09 2.466-.717 6.144 11.158 8.649 12.13 9.292.585-.838 9.786-8.684 6.192-13.69"/><path d="m36.844 6.41c.359-2.563-4.151-6.527-7.699-3.036-3.952 3.886 2.88 11.834 3.191 12.789.879-.274 11.682-.912 12-6.27.299-4.978-6.01-5.395-7.494-3.483"/><path d="m25.471 25.853c-.41-6.973-9.257-6.58-11.01-3.689.071-3.624-6.861-8.443-11.219-3.04-4.853 6.02 5.975 16.03 6.566 17.307 1.176-.52 16.1-3.074 15.658-10.578"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff7190"><path d="m27.9 53.8c-2.5.3-5.1.1-7.5-.6-2.4-.7-4.6-1.8-6.6-3.2-1.9-1.5-3.5-3.3-4.7-5.3-1.2-2-1.9-4.3-2.1-6.5.6 2.2 1.7 4.2 3.1 5.8 1.4 1.7 3.1 3 5 3.9 1.9.9 3.9 1.5 5.9 1.7 2 .2 4-.1 5.9-.7 1.3-.4 2.7.3 3.1 1.7.4 1.3-.3 2.7-1.7 3.1-.1 0-.3.1-.4.1"/><path d="m56.4 31.6c.8 2.4 1.2 5 1 7.5-.2 2.5-.9 4.9-2 7-2.2 4.3-6.1 7.5-10.4 8.9 4-2.2 6.9-5.8 8.1-9.8.6-2 .8-4.1.6-6.1-.2-2-.8-3.8-1.8-5.6-.7-1.2-.3-2.7.9-3.4s2.7-.3 3.4.9c.1.1.1.3.2.4v.2"/><path d="m33.3 8.2c2.4-.6 5-.8 7.5-.5 2.5.3 4.9 1.1 7 2.2 2.1 1.2 4 2.7 5.4 4.6 1.4 1.8 2.5 4 3 6.1-.9-2-2.3-3.9-3.9-5.3-1.6-1.4-3.5-2.5-5.5-3.1-2-.7-4.1-.9-6.1-.8-2 .1-3.9.7-5.7 1.5-1.3.6-2.8.1-3.4-1.2-.6-1.2-.1-2.7 1.2-3.3.1-.1.3-.1.4-.2h.1"/><path d="m15 30.5c-1.1-2.3-1.7-4.9-1.7-7.4-.1-2.5.4-5 1.3-7.2 1.8-4.5 5.3-8 9.4-9.9-3.7 2.6-6.2 6.5-7 10.6-.4 2.1-.4 4.1 0 6.1.4 2 1.2 3.7 2.4 5.4.8 1.1.6 2.7-.6 3.5s-2.7.6-3.5-.6c-.1-.1-.2-.3-.2-.4l-.1-.1"/></g><g fill="#ff5a79"><path d="m31.4 41.9c-1.8-4.6-13-7.2-15.6 1.7-2.9 9.9 15.9 17.1 17.3 18.4 1.2-1.2 18.5-11.7 14-20.9-4.1-8.5-15-3.7-15.7.8"/><path d="m61.2 24.9c-3.3-4.7-9.3-.8-9.2 1.9-1.5-2.5-8.4-3-9.1 2.5-.8 6.1 11.1 8.6 12.1 9.2.6-.8 9.8-8.6 6.2-13.6"/><path d="m36.8 6.4c.4-2.6-4.2-6.5-7.7-3-4 3.9 2.9 11.8 3.2 12.8.9-.3 11.7-.9 12-6.3.3-5-6-5.4-7.5-3.5"/><path d="m25.5 25.9c-.4-7-9.3-6.6-11-3.7.1-3.6-6.9-8.4-11.2-3-4.9 6 6 16 6.6 17.3 1.1-.6 16-3.1 15.6-10.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f49f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f49f.svg
index 7405916..2c1c7d2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f49f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f49f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ff4085" cx="32" cy="32" r="30"/><path fill="#fff" d="m48.603 24.772c-3.654-11.278-15.509-6.218-16.603-.584-1.509-6-13.07-10.479-16.602.594-3.928 12.335 15.23 23.405 16.602 25.22 1.367-1.442 20.529-13.09 16.603-25.23"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-16.6 0-30 13.4-30 30s13.4 30 30 30 30-13.4 30-30-13.4-30-30-30m0 48c-1.4-1.8-20.5-12.9-16.6-25.2 3.5-11.1 15.1-6.6 16.6-.6 1.1-5.6 12.9-10.7 16.6.6 3.9 12.1-15.2 23.8-16.6 25.2" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a0.svg
index fa8a376..77363d1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9970c4" d="m60.22 27.687c2.371 2.373 2.371 6.256 0 8.628l-23.907 23.906c-2.373 2.373-6.255 2.373-8.628 0l-23.906-23.907c-2.373-2.372-2.373-6.255 0-8.628l23.906-23.907c2.373-2.371 6.255-2.371 8.628 0l23.907 23.908"/><path fill="#ace1ef" d="m57.4 28.12c2.135 2.136 2.135 5.632 0 7.767l-21.515 21.514c-2.135 2.137-5.63 2.137-7.766 0l-21.515-21.514c-2.137-2.135-2.137-5.631 0-7.767l21.515-21.515c2.136-2.135 5.631-2.135 7.766 0l21.515 21.515"/><g fill="#42ade2"><path d="m50.963 23h-2.503l-7.46-7.46v-2.5l4.04-4.04h2.499l7.461 7.462v2.5z"/><path d="m18.962 55h-2.502l-7.46-7.46v-2.5l4.04-4.04h2.5l7.46 7.46v2.502z"/><path d="m50.963 41h-2.503l-7.46 7.46v2.504l4.04 4.04h2.499l7.461-7.458v-2.502z"/><path d="m18.962 9h-2.502l-7.46 7.464v2.5l4.04 4.04h2.5l7.46-7.458v-2.502z"/><path d="M34.25 32 43 21 31.999 29.746 21 21 29.744 32 21 43 31.999 34.26 42.998 43z"/></g><path fill="#fff" d="m39.525 30.851c.633.633.633 1.668 0 2.301l-6.375 6.375c-.633.633-1.668.633-2.301 0l-6.375-6.375c-.633-.633-.633-1.668 0-2.301l6.375-6.375c.633-.633 1.668-.633 2.301 0l6.375 6.375"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.2 27.7c2.4 2.4 2.4 6.3 0 8.6l-23.9 23.9c-2.4 2.4-6.3 2.4-8.6 0l-23.9-23.9c-2.4-2.4-2.4-6.3 0-8.6l23.9-23.9c2.4-2.4 6.3-2.4 8.6 0l23.9 23.9" fill="#9970c4"/><path d="m57.4 28.1c2.1 2.1 2.1 5.6 0 7.8l-21.5 21.5c-2.1 2.1-5.6 2.1-7.8 0l-21.5-21.5c-2.1-2.1-2.1-5.6 0-7.8l21.5-21.5c2.1-2.1 5.6-2.1 7.8 0l21.5 21.5" fill="#ace1ef"/><g fill="#42ade2"><path d="m51 23h-2.5l-7.5-7.5v-2.5l4-4h2.5l7.5 7.5v2.5z"/><path d="m19 55h-2.5l-7.5-7.5v-2.5l4-4h2.5l7.5 7.5v2.5z"/><path d="m51 41h-2.5l-7.5 7.5v2.5l4 4h2.5l7.5-7.5v-2.5z"/><path d="m19 9h-2.5l-7.5 7.5v2.5l4 4h2.5l7.5-7.5v-2.5z"/><path d="M34.3 32 43 21 32 29.7 21 21 29.7 32 21 43 32 34.3 43 43z"/></g><path d="m39.5 30.9c.6.6.6 1.7 0 2.3l-6.4 6.4c-.6.6-1.7.6-2.3 0l-6.4-6.4c-.6-.6-.6-1.7 0-2.3l6.4-6.4c.6-.6 1.7-.6 2.3 0l6.4 6.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a1.svg
index 5366a17..7e44d41 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a1.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M24.938,48h14.125c0.838-4.313,3.513-8.505,6.315-12.898C48.632,29.999,52,24.716,52,19.586
- C52,9.889,43.027,2,32,2S12,9.889,12,19.586c0,5.13,3.368,10.413,6.621,15.516C21.425,39.495,24.103,43.688,24.938,48z"/><g fill="#94989b"><path d="m26.449 33.595c.144.596.273 1.193.425 1.772.265 1.091.522 2.147.771 3.169.92 3.758 1.73 6.987 2.371 9.464h.594c-.526-2.513-1.244-5.799-2.105-9.628-.232-1.021-.473-2.086-.72-3.178-.131-.534-.244-1.076-.368-1.632.832-.183 2.653-.803 4.584-2.889 1.932 2.085 3.752 2.706 4.584 2.889-.124.556-.237 1.098-.368 1.632-.247 1.092-.487 2.156-.719 3.178-.862 3.829-1.58 7.115-2.106 9.628h.594c.642-2.477 1.451-5.706 2.372-9.464.246-1.021.505-2.078.771-3.169.149-.579.28-1.177.424-1.772.756-.051 1.479-.287 2.043-.804.578-.569.88-1.314.744-2.107-.061-.38-.345-.872-.896-1.041-.254-.083-.508-.101-.832-.018-.268.102-.464.251-.598.396-.533.592-.726 1.183-.945 1.769-.101.295-.186.589-.265.88 0 0-.85.066-2.668-1.157-1.01-.679-1.302-1.171-1.595-1.496.316-.351.619-.736.854-1.203.124-.26.23-.543.266-.862.034-.318-.023-.679-.205-.989-.183-.305-.444-.587-.866-.759-.182-.066-.385-.096-.588-.096s-.407.03-.588.096c-.422.171-.684.454-.866.759-.182.311-.24.671-.205.989.037.318.142.602.267.862.234.467.538.852.854 1.203-.293.325-.586.816-1.595 1.496-1.818 1.223-2.669 1.157-2.669 1.157-.078-.291-.163-.585-.264-.88-.22-.586-.411-1.177-.945-1.769-.134-.145-.33-.294-.598-.396-.324-.083-.578-.065-.832.018-.552.168-.836.66-.896 1.041-.136.793.166 1.538.744 2.107.564.517 1.285.753 2.04.804m11.54-1.544c.189-.527.43-1.099.758-1.443.077-.087.158-.123.198-.146 0 .003.098-.012.16.018.112.028.217.143.258.364.08.428-.122.98-.49 1.325-.258.246-.655.417-1.074.496.059-.206.12-.414.19-.614m-6.592-4.704c.164-.248.38-.388.603-.388s.438.141.604.388c.195.31.127.732-.064 1.145-.14.292-.333.57-.54.838-.208-.269-.4-.546-.539-.838-.191-.413-.26-.835-.064-1.145m-6.76 3.497c.041-.221.146-.336.259-.364.062-.03.16-.015.16-.018.039.023.12.059.195.146.33.344.57.917.76 1.443.07.2.13.408.189.613-.418-.078-.816-.25-1.073-.496-.368-.344-.57-.897-.49-1.324"/><path d="m24.852 49.958h14.338v1.84h-14.338z"/><path d="m25.852 53.638h12.338v1.84h-12.338z"/><path d="m39.19 49.958l-13.338 3.68v1.842l13.338-3.682z"/><path d="m26.852 57.32h10.338v1.84h-10.338z"/><path d="m38.19 53.638l-11.338 3.682v1.84l11.338-3.68z"/><path d="m28 58c0 2.209 1.791 4 4 4s4-1.791 4-4h-8"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28 58c0 2.2 1.8 4 4 4s4-1.8 4-4h-8" fill="#616466"/><path d="m24.9 48h14.1c.8-4.3 3.5-8.5 6.3-12.9 3.3-5.1 6.7-10.4 6.7-15.5 0-9.7-9-17.6-20-17.6s-20 7.9-20 17.6c0 5.1 3.4 10.4 6.6 15.5 2.8 4.4 5.5 8.6 6.3 12.9" fill="#ffce31"/><path d="m26.4 33.6c.1.6.3 1.2.4 1.8.3 1.1.5 2.1.8 3.2.9 3.8 1.7 7 2.4 9.5h.6c-.5-2.5-1.2-5.8-2.1-9.6-.2-1-.5-2.1-.7-3.2-.1-.5-.2-1.1-.4-1.6.8-.2 2.7-.8 4.6-2.9 1.9 2.1 3.8 2.7 4.6 2.9-.1.6-.2 1.1-.4 1.6-.2 1.1-.5 2.2-.7 3.2-.9 3.8-1.6 7.1-2.1 9.6h.6c.6-2.5 1.5-5.7 2.4-9.5.2-1 .5-2.1.8-3.2.1-.6.3-1.2.4-1.8.8-.1 1.5-.3 2-.8.6-.6.9-1.3.7-2.1-.1-.4-.3-.9-.9-1-.3-.1-.5-.1-.8 0-.3.1-.5.3-.6.4-.5.6-.7 1.2-.9 1.8-.1.3-.2.6-.3.9 0 0-.8.1-2.7-1.2-1-.7-1.3-1.2-1.6-1.5.3-.4.6-.7.9-1.2.1-.3.2-.5.3-.9 0-.3 0-.7-.2-1-.2-.3-.4-.6-.9-.8-.2-.1-.4-.1-.6-.1s-.4 0-.6.1c-.4.2-.7.5-.9.8-.2.3-.2.7-.2 1 0 .3.1.6.3.9.2.5.5.9.9 1.2-.3.3-.6.8-1.6 1.5-1.8 1.2-2.7 1.2-2.7 1.2-.1-.3-.2-.6-.3-.9-.2-.6-.4-1.2-.9-1.8-.1-.1-.3-.3-.6-.4-.3-.1-.6-.1-.8 0-.6.2-.8.7-.9 1-.1.8.2 1.5.7 2.1.6.5 1.3.7 2 .8m11.6-1.5c.2-.5.4-1.1.8-1.4.1-.1.2-.1.2-.1 0 0 .1 0 .2 0 .1 0 .2.1.3.4.1.4-.1 1-.5 1.3-.3.2-.7.4-1.1.5 0-.3 0-.5.1-.7m-6.6-4.8c.2-.2.4-.4.6-.4.2 0 .4.1.6.4.2.3.1.7-.1 1.1-.1.3-.3.6-.5.8-.2-.3-.4-.5-.5-.8-.2-.3-.3-.7-.1-1.1m-6.8 3.5c0-.2.1-.3.3-.4.1 0 .2 0 .2 0 0 0 .1.1.2.1.3.3.6.9.8 1.4.1.2.1.4.2.6-.4-.1-.8-.2-1.1-.5-.4-.2-.6-.7-.6-1.2" fill="#c79127"/><g fill="#94989b"><path d="m24.9 50h14.3v1.8h-14.3z"/><path d="m25.9 53.6h12.3v1.8h-12.3z"/></g><path fill="#616466" d="m25.9 51.8h12.3v1.8h-12.3z"/><g fill="#94989b"><path d="m39.2 50l-13.3 3.6v1.9l13.3-3.7z"/><path d="m26.9 57.3h10.3v1.8h-10.3z"/></g><path fill="#616466" d="m26.9 55.5h10.3v1.8h-10.3z"/><path fill="#94989b" d="m38.2 53.6l-11.3 3.7v1.9l11.3-3.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a2.svg
index a60d5be..d816b49 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c94747"><path d="m25.08 1.676c.627 6.313 5.464 12.434 12.518 14.954 7.078 2.622 14.774.993 19.303-3.515.487-.472.552-1.186.196-1.737-.356-.552-1.034-.819-1.682-.661-4.724 1.176-10.386 1.855-15.644-.063-5.262-1.909-9.162-6.069-12.03-10.01-.081-.112-.177-.209-.28-.293-.006-.005-.013-.011-.019-.016-.634-.5-1.551-.446-2.069.15-.287.333-.383.768-.296 1.187"/><path d="m38.916 62.32c-.627-6.313-5.464-12.434-12.518-14.954-7.078-2.622-14.774-.993-19.304 3.515-.486.472-.551 1.186-.195 1.737.356.552 1.033.819 1.682.661 4.724-1.176 10.386-1.855 15.644.063 5.262 1.909 9.162 6.069 12.03 10.01.081.112.177.209.28.293.006.005.013.011.019.016.634.5 1.551.446 2.069-.15.286-.333.383-.768.296-1.187"/><path d="m62.32 25.08c-6.313.627-12.434 5.464-14.955 12.518-2.621 7.078-.992 14.774 3.516 19.304.472.486 1.186.551 1.737.195.552-.356.819-1.033.661-1.682-1.176-4.724-1.855-10.386.063-15.644 1.909-5.262 6.068-9.162 10.01-12.03.112-.081.209-.177.293-.28.005-.006.011-.013.016-.019.5-.634.446-1.551-.15-2.069-.333-.287-.769-.383-1.187-.296"/><path d="m1.676 38.915c6.313-.627 12.434-5.463 14.954-12.517 2.622-7.078.993-14.774-3.515-19.304-.472-.486-1.186-.551-1.737-.195-.552.356-.819 1.034-.661 1.682 1.176 4.724 1.855 10.386-.063 15.644-1.909 5.262-6.069 9.162-10.01 12.03-.112.081-.209.177-.293.28-.005.006-.011.013-.016.019-.5.634-.446 1.551.15 2.069.333.287.768.383 1.187.295"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m55.6 12.7c-.5-.7-1.4-1.1-2.3-.9-2.8.7-5.2 1-7.5 1-2.3 0-4.5-.4-6.4-1.1-3.8-1.4-7.3-4.3-10.7-8.9-.1-.1-.2-.3-.3-.4l-.1-.1c-.8-.7-2.2-.6-2.8.2-.5.6-.6 1.2-.5 1.8.6 6.2 5.4 12 11.9 14.3 2.1.8 4.4 1.2 6.6 1.2 4.6 0 8.9-1.7 11.8-4.6.7-.7.8-1.7.3-2.5"/><path d="m27.1 45.4c-2.1-.8-4.4-1.2-6.6-1.2-4.6 0-8.9 1.7-11.8 4.6-.7.7-.8 1.7-.3 2.5.5.7 1.4 1.1 2.3.9 2.8-.7 5.2-1 7.5-1 2.3 0 4.5.4 6.4 1.1 3.8 1.4 7.3 4.3 10.7 8.9.1.1.2.3.4.4.4.3.8.5 1.3.5.6 0 1.1-.2 1.5-.7.4-.5.5-1.1.4-1.6-.5-6.3-5.3-12-11.8-14.4"/><path d="m61.3 25.4c-.3-.3-.8-.5-1.3-.5-.1 0-.3 0-.3 0-6.2.6-12 5.4-14.3 11.9-2.4 6.5-1.1 13.9 3.4 18.4.4.4.9.6 1.4.6.4 0 .7-.1 1.1-.3.8-.5 1.1-1.4.9-2.3-1.4-5.5-1.4-10.1 0-13.9 1.4-3.8 4.3-7.3 8.9-10.7.1-.1.3-.2.4-.4.7-.8.6-2.1-.2-2.8"/><path d="m18.6 27.1c2.4-6.5 1.1-13.9-3.4-18.4-.6-.7-1.7-.8-2.5-.3-.8.5-1.1 1.4-.9 2.3 1.4 5.5 1.4 10.1 0 13.9-1.4 3.8-4.3 7.3-8.9 10.7-.1.1-.3.2-.4.4-.7.9-.6 2.1.2 2.8.3.4.8.5 1.2.5.1 0 .3 0 .3 0 6.3-.6 12-5.4 14.4-11.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a3.svg
index 9fd3676..b9a7e0f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d3976e" d="m13.805 22.549c-4.364-4.432-5.766-8.101-4.163-10.905 3.149-5.517 18.02-5.485 30.411-2.653l-.429 1.826c-11.626-2.655-25.763-2.743-28.328 1.748-1.418 2.483 1.321 6.088 3.869 8.676l-1.36 1.308"/><g fill="#ffce31"><path d="m41.25 11.293c-.981.966-1.961 1.935-2.94 2.901-.862.852.475 2.172 1.336 1.32.981-.968 1.961-1.935 2.939-2.902.865-.852-.475-2.171-1.335-1.319"/><path d="m46.762 8.487c.97-.957 1.94-1.916 2.91-2.874.862-.852-.475-2.171-1.337-1.319-.971.958-1.941 1.916-2.911 2.873-.864.853.473 2.172 1.338 1.32"/><path d="m45.4 12.612c.981.968 1.961 1.935 2.94 2.901.862.853 2.199-.468 1.337-1.319-.981-.967-1.958-1.935-2.94-2.901-.86-.852-2.2.467-1.337 1.319"/><path d="m38.31 5.613c.971.958 1.941 1.917 2.91 2.874.865.852 2.203-.467 1.34-1.319-.971-.958-1.941-1.917-2.914-2.874-.862-.853-2.199.468-1.336 1.319"/></g><g fill="#ed4c5c"><path d="m43.04 14.02c0 .962 0 1.926 0 2.889 0 1.203 1.893 1.203 1.893 0 0-.963 0-1.927 0-2.889 0-1.204-1.893-1.204-1.893 0"/><path d="m43.04 2.903c0 .949 0 1.899 0 2.848 0 1.204 1.893 1.204 1.893 0 0-.949 0-1.899 0-2.848 0-1.204-1.893-1.204-1.893 0"/><path d="m48.17 10.837c.969 0 1.936 0 2.905 0 1.22 0 1.22-1.867 0-1.867-.97 0-1.937 0-2.905 0-1.219.001-1.219 1.867 0 1.867"/></g><path fill="#3e4347" d="m10.663 24.16l6.01-5.929 3.777 3.731c3.535-2.356 7.796-3.731 12.383-3.731 12.247 0 22.17 9.797 22.17 21.884 0 12.09-9.922 21.886-22.17 21.886-12.243 0-22.17-9.8-22.17-21.886 0-4.528 1.396-8.733 3.779-12.225l-3.779-3.73"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.8 22.5c-4.4-4.4-5.8-8.1-4.2-10.9 3.1-5.5 18-5.5 30.4-2.7l-.4 1.8c-11.6-2.5-25.7-2.6-28.3 1.9-1.4 2.5 1.3 6.1 3.9 8.7l-1.4 1.2" fill="#d3976e"/><g fill="#ffce31"><path d="m41.2 11.3c-1 1-2 1.9-2.9 2.9-.9.9.5 2.2 1.3 1.3 1-1 2-1.9 2.9-2.9.9-.8-.4-2.2-1.3-1.3"/><path d="m46.8 8.5c1-1 1.9-1.9 2.9-2.9.9-.9-.5-2.2-1.3-1.3-1 1-1.9 1.9-2.9 2.9-.9.8.4 2.1 1.3 1.3"/><path d="m45.4 12.6c1 1 2 1.9 2.9 2.9.9.9 2.2-.5 1.3-1.3-1-1-2-1.9-2.9-2.9-.8-.9-2.2.5-1.3 1.3"/><path d="m38.3 5.6c1 1 1.9 1.9 2.9 2.9.9.9 2.2-.5 1.3-1.3-1-1-1.9-1.9-2.9-2.9-.8-.9-2.2.5-1.3 1.3"/></g><g fill="#ed4c5c"><path d="m43 14c0 1 0 1.9 0 2.9 0 1.2 1.9 1.2 1.9 0 0-1 0-1.9 0-2.9 0-1.2-1.9-1.2-1.9 0"/><path d="m43 2.9c0 .9 0 1.9 0 2.8 0 1.2 1.9 1.2 1.9 0 0-.9 0-1.9 0-2.8 0-1.2-1.9-1.2-1.9 0"/><path d="m48.2 10.8c1 0 1.9 0 2.9 0 1.2 0 1.2-1.9 0-1.9-1 0-1.9 0-2.9 0-1.2.1-1.2 1.9 0 1.9"/></g><path d="m10.7 24.2l6-5.9 3.8 3.7c3.5-2.4 7.8-3.7 12.4-3.7 12.2-.1 22.1 9.7 22.1 21.8 0 12.1-9.9 21.9-22.2 21.9-12.2 0-22.2-9.8-22.2-21.9 0-4.5 1.4-8.7 3.8-12.2l-3.7-3.7" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a4.svg
index c3c21a8..625c724 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m17.14 52.21l-4.745 3.982.144-9.838c.002-.158-.054-.313-.156-.434l-2.101-2.504c-.235-.281-.652-.318-.932-.082l-9.108 7.643c-.28.234-.316.652-.082.932l2.058 2.451c.234.281.651.316.933.082l4.212-3.535-.062 10.08c-.002.158.053.311.153.43l1.969 2.346c.235.281.652.316.933.082l9.71-8.148c.28-.234.317-.652.082-.932l-2.075-2.473c-.236-.279-.653-.316-.933-.082"/><path d="m36.3 33.632l-6.896 3.98 2.377-12.423c.036-.2.003-.407-.1-.585l-2.102-3.639c-.234-.407-.756-.547-1.162-.313l-13.238 7.643c-.408.236-.547.756-.312 1.164l2.057 3.563c.235.406.755.547 1.163.311l6.122-3.533-2.329 12.748c-.037.199-.002.404.099.578l1.969 3.41c.235.408.756.547 1.163.311l14.11-8.148c.408-.234.547-.754.312-1.162l-2.075-3.594c-.234-.407-.754-.547-1.162-.311"/><path d="m61.15 15.779l-8.314 3.03 4.999-13.14c.079-.212.081-.445.003-.659l-1.597-4.388c-.179-.491-.721-.744-1.211-.565l-15.961 5.809c-.492.18-.745.722-.566 1.213l1.564 4.296c.178.49.72.744 1.212.564l7.381-2.687-5.01 13.502c-.078.209-.08.441-.003.652l1.496 4.11c.179.492.722.744 1.212.566l17.02-6.194c.491-.179.744-.722.565-1.213l-1.577-4.332c-.178-.49-.72-.743-1.212-.564"/></g><path fill="#6adbc6" d="m54.719 44.03l-2.832-5.67-2.837 5.67-5.66 2.831 5.66 2.831 2.837 5.668 2.832-5.668 5.661-2.831z"/><path transform="matrix(-.7071.7071-.7071-.7071 121.71 43.31)" fill="#fff" d="m48.882 43.857h6.01v6.01h-6.01z"/><path fill="#6adbc6" d="M6.542 32.384 4.906 29.11 3.27 32.384 0 34.02 3.27 35.653 4.906 38.925 6.542 35.653 9.813 34.02z"/><path transform="matrix(-.707.7072-.7072-.707 32.434 54.599)" fill="#fff" d="m3.171 32.28h3.47v3.47h-3.47z"/><path fill="#6adbc6" d="M19.973 4.428 17.91.3 15.845 4.428 11.72 6.49 15.845 8.553 17.91 12.68 19.973 8.553 24.1 6.49z"/><path transform="matrix(-.7071.7072-.7072-.7071 35.16-1.586)" fill="#fff" d="m15.721 4.302h4.377v4.377h-4.377z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m18.1 50.9l-4.4 3.7.1-9.2c0-.1-.1-.3-.1-.4l-2-2.3c-.2-.3-.6-.3-.9-.1l-8.5 7.2c-.3.2-.4.6-.2.9l2 2.3c.2.3.6.3.9.1l3.9-3.3-.1 9.5c0 .1.1.3.1.4l1.8 2.2c.2.3.6.3.9.1l9.1-7.6c.3-.2.3-.6.1-.9l-1.9-2.5c-.2-.2-.6-.3-.8-.1"/><path d="m36 33.5l-6.5 3.7 2.2-11.6c0-.2 0-.4-.1-.5l-2-3.4c-.2-.4-.7-.5-1.1-.3l-12.4 7.2c-.4.2-.5.7-.3 1.1l1.9 3.3c.2.4.7.5 1.1.3l5.7-3.3-2.2 12c0 .2 0 .4.1.5l1.8 3.2c.2.4.7.5 1.1.3l13.2-7.6c.4-.2.5-.7.3-1.1l-1.9-3.4c0-.5-.5-.6-.9-.4"/><path d="m59.3 16.8l-7.8 2.8 4.7-12.3c.1-.2.1-.4 0-.6l-1.5-4.1c-.2-.5-.7-.7-1.1-.5l-15 5.4c-.5.2-.7.7-.5 1.1l1.5 4c.2.5.7.7 1.1.5l6.9-2.5-4.7 12.7c-.1.2-.1.4 0 .6l1.4 3.9c.2.5.7.7 1.1.5l16-5.8c.5-.2.7-.7.5-1.1l-1.5-4.1c-.1-.4-.6-.7-1.1-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a5.svg
index b3ab573..5ae4d00 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ef4e16" d="M44.703 35.415 64 24.713 42.35 25.654 48.777 12.369 37.05 20.714 38.496 2.391 29.963 17.491 17.12 0 22.638 21.791 3.369 15.396 18.725 29.422 0 33.07 17.951 37.15 7.883 55.12 24.358 45.17 25.04 64 31.787 46.799 40.865 60.41 40.36 44.06 55.994 50.03z"/><path fill="#ffce31" d="m39.1 33.784l11.3-5.239-12.536-.375 3.366-7.447-6.643 3.804.246-10.134-4.458 8.449-6.713-8.632 2.933 10.88-11.186-2.835 9.141 7.885-11.354 2.672 10.391 2.388-7.324 11.24 11.231-7.607.307 9.891 4.04-9.04 4.564 6.753-.08-8.18 8.209 3.597z"/><path fill="#fff" d="m34.887 32.448l4.784-2.218-5.301-.16 1.418-3.153-2.811 1.612.103-4.289-1.89 3.575-2.838-3.655 1.242 4.607-4.736-1.2 3.87 3.34-4.807 1.133 4.4 1.01-3.101 4.758 4.755-3.223.125 4.189 1.713-3.826 1.931 2.86-.034-3.468 3.48 1.525z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ef4e16" d="M44.7 35.4 64 24.7 42.3 25.7 48.8 12.4 37 20.7 38.5 2.4 30 17.5 17.1 0 22.6 21.8 3.4 15.4 18.7 29.4 0 33.1 18 37.2 7.9 55.1 24.4 45.2 25 64 31.8 46.8 40.9 60.4 40.4 44.1 56 50z"/><path fill="#ffce31" d="m39.1 33.8l11.3-5.3-12.5-.3 3.3-7.5-6.6 3.8.2-10.1-4.4 8.4-6.7-8.6 2.9 10.9-11.2-2.8 9.1 7.8-11.3 2.7 10.4 2.4-7.3 11.2 11.2-7.6.3 9.9 4-9 4.6 6.7-.1-8.1 8.2 3.6z"/><path fill="#fff" d="m34.9 32.4l4.8-2.2-5.3-.1 1.4-3.2-2.8 1.6.1-4.3-1.9 3.6-2.8-3.6 1.2 4.6-4.7-1.2 3.8 3.3-4.8 1.1 4.4 1-3.1 4.8 4.8-3.2.1 4.2 1.7-3.9 1.9 2.9v-3.5l3.5 1.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a6.svg
index 7c6683a..d33061e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#65b1ef"><path d="m21.504 18.15c0 0-5.063 7.939-5.439 17.12-.436 10.59-11.186 9.348-13.51 3.098-1.728-4.661-.435-14.696 18.949-20.21"/><path d="m25.24 2c0 0 8.806 17.625 7.75 36.568-1.227 21.875 21.1 22.12 27.12 9.887 4.489-9.121 3.84-30.07-34.872-46.45"/><path d="m21.454 39.502c0 0 .367 7.369-2.674 13.342-3.512 6.902 3.729 11.12 7.432 8.24 2.757-2.139 5.529-9.09-4.758-21.582"/><path d="m9.04 13.963c1.785.777 5.561-.014 7.338-9.631 0 0-2.918 2.615-6.379 2.943-3.996.384-3.359 5.647-.959 6.688"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75d6ff"><path d="m22.5 2.6c5.7 12.9 12.4 22.2 19.8 26.5 6.3 3.6 14.4 1.5 18-4.7 3.6-6.3 1.4-14.3-4.9-17.9-7.5-4.3-19.1-5.4-32.9-3.9"/><path d="m12.2 11c-6.5 8.8-10.2 16.9-10.2 23.6 0 5.7 4.6 10.3 10.2 10.3 5.6 0 10.2-4.6 10.2-10.3 0-6.7-3.9-14.9-10.2-23.6"/><path d="m29 31.2c-1.2 10.9-.3 19.8 3 25.6 2.8 4.9 9.1 6.6 14 3.8 4.9-2.8 6.5-9.1 3.7-14-3.4-5.8-10.9-11-20.7-15.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a7.svg
index e584de3..e56136f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#65b1ef" d="m31.993 2c-11.428 15.623-17.99 30.01-17.99 41.826 0 10.03 8.06 18.17 17.998 18.17 9.944 0 17.997-8.141 17.997-18.17-.001-11.82-6.755-26.443-18.01-41.826"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C20.6,17.6,14,32,14,43.8c0,10,8.1,18.2,18,18.2c9.9,0,18-8.1,18-18.2C50,32,43.2,17.4,32,2z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a8.svg
index 43ea233..5807909 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#7ca7bf"><ellipse cx="51.49" cy="34.629" rx="10.51" ry="11.769"/><ellipse cx="30.669" cy="42.43" rx="9.816" ry="10.993"/><ellipse cx="43.802" cy="47.13" rx="11.493" ry="12.87"/><ellipse cx="39.56" cy="29.761" rx="9.873" ry="11.06"/><ellipse cx="41.617" cy="15.06" rx="9.872" ry="11.06"/><ellipse cx="50.42" cy="20.784" rx="8.02" ry="8.975"/><ellipse cx="30.669" cy="20.785" rx="10.272" ry="11.503"/><path d="m7.191 27.428c2.887-.573 5.675-1.563 8.412-2.726 1.368-.584 2.721-1.217 4.059-1.891 1.323-.673 2.693-1.398 3.908-2.145 1.687-1.036 3.653.042 4.391 2.408.739 2.365-.029 5.126-1.715 6.162-.396.244-.806.37-1.213.392h-.076c-1.589.078-3.043.038-4.552-.018-1.495-.067-2.982-.178-4.465-.348-2.959-.34-5.909-.88-8.749-1.834"/><path d="m2.01 32.22c3.75-.327 7.439-1.051 11.09-1.994 1.823-.47 3.634-1 5.43-1.585 1.781-.583 3.611-1.22 5.287-1.914 1.75-.727 3.589.673 4.106 3.13.517 2.458-.481 5.04-2.232 5.764-.312.129-.627.191-.938.191l-.033-.002c-2.01-.013-3.88-.146-5.805-.313-1.908-.172-3.81-.398-5.701-.688-3.781-.581-7.539-1.394-11.199-2.589"/><path d="m7.181 42.521c2.824-.959 5.719-1.663 8.626-2.25 1.454-.291 2.915-.547 4.381-.774 1.475-.226 2.917-.433 4.45-.581l.041-.006c1.835-.176 3.425 1.77 3.551 4.347.126 2.573-1.26 4.806-3.095 4.982-.43.044-.858-.038-1.246-.209-1.303-.588-2.703-1.145-4.071-1.675-1.377-.529-2.764-1.03-4.159-1.502-2.788-.937-5.604-1.763-8.478-2.332"/><path d="m2 37.727c3.656-1.198 7.373-2.155 11.11-2.973 1.87-.405 3.748-.774 5.63-1.106 1.893-.331 3.753-.638 5.707-.879h.01c1.818-.226 3.421 1.661 3.581 4.213.161 2.55-1.184 4.799-3 5.02-.324.042-.655.008-.959-.079-1.755-.509-3.607-.971-5.427-1.4-1.829-.429-3.667-.826-5.51-1.184-3.686-.715-7.397-1.288-11.142-1.615"/></g><g fill="#fff"><path d="m42.915 29.13c3.567 3.738 5.621 8.571 6.244 13.864 3.02-6.568 2.608-13.783-1.63-18.224-4.104-4.301-10.668-4.837-16.759-2.01 4.621.813 8.834 2.9 12.145 6.374"/><path d="m34.463 15.999c2.218 2.323 3.492 5.328 3.881 8.616 1.873-4.081 1.621-8.565-1.015-11.326-2.549-2.672-6.628-3.01-10.413-1.25 2.871.505 5.49 1.803 7.547 3.96"/><path d="m52.743 17.542c1.442 1.512 2.271 3.468 2.525 5.61 1.22-2.657 1.054-5.576-.66-7.374-1.659-1.738-4.314-1.955-6.778-.814 1.869.33 3.572 1.175 4.913 2.578"/><path d="m35.29 37.641c2.069 2.17 3.259 4.971 3.621 8.05 1.749-3.812 1.513-7.998-.946-10.576-2.38-2.495-6.188-2.804-9.722-1.165 2.681.471 5.125 1.681 7.05 3.696"/><path d="m54.676 30.689c2.218 2.323 3.492 5.327 3.881 8.616 1.873-4.081 1.621-8.563-1.014-11.326-2.55-2.672-6.629-3.01-10.413-1.25 2.87.506 5.489 1.803 7.546 3.96"/><path d="m44.34 11.615c2.218 2.323 3.492 5.327 3.881 8.616 1.873-4.081 1.621-8.565-1.015-11.326-2.549-2.672-6.628-3.01-10.412-1.25 2.87.505 5.489 1.803 7.546 3.96"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#7ca7bf"><ellipse cx="51.5" cy="34.6" rx="10.5" ry="11.8"/><ellipse cx="30.7" cy="42.4" rx="9.8" ry="11"/><ellipse cx="43.8" cy="47.1" rx="11.5" ry="12.9"/><ellipse cx="39.6" cy="29.8" rx="9.9" ry="11.1"/><ellipse cx="41.6" cy="15.1" rx="9.9" ry="11.1"/><ellipse cx="50.4" cy="20.8" rx="8" ry="9"/><ellipse cx="30.7" cy="20.8" rx="10.3" ry="11.5"/><path d="m7.2 27.4c2.9-.6 5.7-1.6 8.4-2.7 1.4-.6 2.7-1.2 4.1-1.9 1.3-.7 2.7-1.4 3.9-2.1 1.7-1 3.7 0 4.4 2.4.7 2.4 0 5.1-1.7 6.2-.4.2-.8.4-1.2.4h-.1c-1.6.1-3 0-4.6 0-1.5-.1-3-.2-4.5-.3-2.9-.5-5.9-1-8.7-2"/><path d="m2 32.2c3.8-.3 7.4-1.1 11.1-2 1.8-.5 3.6-1 5.4-1.6 1.8-.6 3.6-1.2 5.3-1.9 1.8-.7 3.6.7 4.1 3.1.5 2.5-.5 5-2.2 5.8-.3.1-.6.2-.9.2-2 0-3.9-.1-5.8-.3-1.9-.2-3.8-.4-5.7-.7-3.9-.6-7.6-1.4-11.3-2.6"/><path d="m7.2 42.5c2.8-1 5.7-1.7 8.6-2.2 1.5-.3 2.9-.5 4.4-.8 1.5-.2 2.9-.4 4.4-.6 1.8-.2 3.4 1.8 3.6 4.3.1 2.6-1.3 4.8-3.1 5-.4 0-.9 0-1.2-.2-1.3-.6-2.7-1.1-4.1-1.7-1.4-.5-2.8-1-4.2-1.5-2.7-.9-5.5-1.7-8.4-2.3"/><path d="m2 37.7c3.7-1.2 7.4-2.2 11.1-3 1.9-.4 3.7-.8 5.6-1.1 1.9-.3 3.8-.6 5.7-.9 1.8-.2 3.4 1.7 3.6 4.2.2 2.5-1.2 4.8-3 5-.3 0-.7 0-1-.1-1.8-.5-3.6-1-5.4-1.4-1.8-.4-3.7-.8-5.5-1.2-3.6-.6-7.4-1.1-11.1-1.5"/></g><g fill="#fff"><path d="m42.9 29.1c3.6 3.7 5.6 8.6 6.2 13.9 3-6.6 2.6-13.8-1.6-18.2-4.1-4.3-10.7-4.8-16.8-2 4.7.8 8.9 2.9 12.2 6.3"/><path d="m34.5 16c2.2 2.3 3.5 5.3 3.9 8.6 1.9-4.1 1.6-8.6-1-11.3-2.5-2.7-6.6-3-10.4-1.2 2.8.4 5.4 1.7 7.5 3.9"/><path d="m52.7 17.5c1.4 1.5 2.3 3.5 2.5 5.6 1.2-2.7 1.1-5.6-.7-7.4-1.7-1.7-4.3-2-6.8-.8 2 .4 3.7 1.2 5 2.6"/><path d="m35.3 37.6c2.1 2.2 3.3 5 3.6 8 1.7-3.8 1.5-8-.9-10.6-2.4-2.5-6.2-2.8-9.7-1.2 2.6.6 5.1 1.8 7 3.8"/><path d="m54.7 30.7c2.2 2.3 3.5 5.3 3.9 8.6 1.9-4.1 1.6-8.6-1-11.3-2.5-2.7-6.6-3-10.4-1.2 2.8.4 5.4 1.7 7.5 3.9"/><path d="m44.3 11.6c2.2 2.3 3.5 5.3 3.9 8.6 1.9-4.1 1.6-8.6-1-11.3-2.5-2.7-6.6-3-10.4-1.2 2.9.5 5.5 1.8 7.5 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4a9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4a9.svg
index a1ef279..342ac40 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4a9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4a9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="M32.206,36.887C15.146,36.887,2,29.789,2,45.728C2,58.456,18.892,62,31.789,62
- C46.773,62,62,58.456,62,45.728C62,29.789,49.839,36.887,32.206,36.887z"/><path fill="#9b7861" d="m31.729 20.879c-9.553 0-24.502 1.116-24.502 12.621 0 16.826 49.545 16.826 49.545 0 0-11.505-14.888-12.621-25.04-12.621"/><path fill="#a88673" d="m49.01 16.7c-4.658-10.34-26.367.306-22.638-12.226.562-1.888.539-2.713-.896-2.414-7.812 1.621-13.437 9.666-11.457 16.319 6.376 21.433 41.28 12.273 34.991-1.679"/><path fill="#fff" d="m28.847 34.32c0 3.98-3.226 7.205-7.202 7.205-3.979 0-7.205-3.225-7.205-7.205 0-3.974 3.226-7.202 7.205-7.202 3.976 0 7.202 3.229 7.202 7.202"/><circle cx="23.633" cy="34.32" r="3.604"/><path fill="#fff" d="m49.562 34.32c0 3.98-3.229 7.205-7.204 7.205-3.98 0-7.203-3.225-7.203-7.205 0-3.974 3.223-7.202 7.203-7.202 3.975 0 7.204 3.229 7.204 7.202"/><circle cx="40.37" cy="34.32" r="3.603"/><path d="m38 50.632c0 3.316-2.688 6-5.999 6-3.316 0-6-2.684-6-6 0-3.311 2.685-6 6-6 3.312 0 5.999 2.689 5.999 6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.2 36.9c-17.1 0-30.2-7.1-30.2 8.8 0 12.8 16.9 16.3 29.8 16.3 15 0 30.2-3.5 30.2-16.3 0-15.9-12.2-8.8-29.8-8.8" fill="#89664c"/><path d="m31.7 20.9c-9.6 0-24.5 1.1-24.5 12.6 0 16.8 49.5 16.8 49.5 0 .1-11.5-14.8-12.6-25-12.6" fill="#9b7861"/><path d="m49 16.7c-4.6-10.3-26.4.3-22.6-12.2.6-1.9.5-2.7-.9-2.4-7.8 1.6-13.5 9.6-11.5 16.3 6.4 21.4 41.3 12.3 35-1.7" fill="#a88673"/><path d="m28.8 34.3c0 4-3.2 7.2-7.2 7.2-4 0-7.2-3.2-7.2-7.2 0-4 3.2-7.2 7.2-7.2 4 0 7.2 3.2 7.2 7.2" fill="#fff"/><circle cx="23.6" cy="34.3" r="3.6" fill="#231f20"/><path d="m49.6 34.3c0 4-3.2 7.2-7.2 7.2-4 0-7.2-3.2-7.2-7.2 0-4 3.2-7.2 7.2-7.2 3.9 0 7.2 3.2 7.2 7.2" fill="#fff"/><g fill="#231f20"><circle cx="40.4" cy="34.3" r="3.6"/><path d="m38 50.6c0 3.3-2.7 6-6 6-3.3 0-6-2.7-6-6 0-3.3 2.7-6 6-6 3.3 0 6 2.7 6 6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fb.svg
index 758f7d7..174dc99 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m2.13 42.28c-.925-6.835 3.287-17.854 5.251-32.667.352-2.652 14.03-5.439 20.391-5.439 1.648 0 3.02 7.516 2.609 10.132-.301 1.899-2.961 1.398-2.961 1.398-.9 2.524-3.561 1.544-3.561 1.544-.781 2.15-3.203 1.148-3.203 1.148-1 2-3.221 1.022-3.221 1.022-2 8.722 1.713 7.944 4.42 21.17 0 0 .76-.136 2.885-4.448 8.602-17.454 38.807-11.872 37.01 6.799-.4 4.173 3.953 10.966-12.285 16.07-12.887 4.049-28.732-3.715-28.732-3.715-5.402 1.67-15.879 1.56-16.189-2.459-.359-4.663-1.942-7.04-2.418-10.55"/><g fill="#e6b796"><path d="m61.755 42.937c.426-4.427-.906-8.01-3.26-10.715 1.426 2.4 2.146 5.318 1.818 8.739-.4 4.173 3.953 10.965-12.285 16.07-12.887 4.048-28.732-3.715-28.732-3.715-4.219 1.304-11.607 1.526-14.73-.357.411 3.9 10.828 3.984 16.17 2.333 0 0 15.846 7.764 28.732 3.715 16.239-5.103 11.885-11.896 12.286-16.07"/><path d="m16.263 19.301c-2.527 10.281 1.553 9.837 4.279 22.87l1.439-1.502c-1.998-13.03-5.445-11.463-4.602-21.13-.622-.019-1.116-.234-1.116-.234"/><path d="m56.26 47.797c-13.236 17.1-23.27-1.294-36.08-3.958 13.245-2.711 19.885 13.08 36.08 3.958"/><path d="m25.09 7.01c-.591-1.124-1.794-1.015-2.6-.672.103-1.174 3.053-2.079 2.6.672"/><path d="m31.17 11.364c-.252-2.213-1.01-4.403-2.35-6.196.715 1.878 1.073 3.882 1.079 5.89.003.902.211 4.116-1.378 3.697-.979-.258-1-1.101-1.281-1.969-.434-1.358-1.191-2.923-1.1-4.364-.373 1.414.072 3.112.236 4.546.096.833.711 3.084-.383 3.392-.604.173-1.302-.224-1.803-.516-.191-.112-.332-.932-.402-1.161-.43-1.408-1.201-3.03-1.102-4.503-.379 1.333-.012 2.938.107 4.304.074.845.53 2.682-.488 3.108-1.159.564-1.336-.807-1.551-1.524-.397-1.334-1.043-2.792-1.025-4.191-.404 1.703.068 3.698.148 5.443.04.868-1.904 1.649-2.628 1.105-1.136-.853-1.327-2.852-1.457-4.143.342.434.831.993 1.448.938-.527-.561-.751-1.524-1.104-2.205-.323-.561-.979-1.895-1.752-1.917.12.24.77 1.888.67 2.061-.314.546-.618 1.099-.969 1.621-.296.44-1.156 1.839-1.853 1.417-.753-.457-.996-1.719-1.224-2.491.059.979.03 2.538 1 3.126.918.558 1.965-.323 2.572-.951.209 2.053 1.066 4.729 3.619 4.557.539-.036 1.066-.207 1.554-.435.402-.188.856-.662 1.278-.534 1.068.323 2.218.115 2.984-.732.357-.396.26-.641.795-.508.568.128 1.155.154 1.721-.01.46-.123.875-.41 1.188-.768.178-.204.314-.436.422-.685.172-.396.369-.187.77-.202 2.592-.099 2.504-3.335 2.259-5.2"/><path d="m28.746 5.635c-.591-1.124-1.794-1.015-2.599-.672.102-1.174 3.053-2.079 2.599.672"/><path d="m22.18 8.534c-.591-1.124-1.794-1.015-2.599-.672.102-1.174 3.053-2.079 2.599.672"/><path d="m18.807 10.122c-.591-1.124-1.794-1.015-2.599-.672.102-1.174 3.053-2.079 2.599.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 42.2c-.9-6.8 3.3-17.7 5.3-32.4.4-2.6 14-5.4 20.4-5.4 1.6 0 3 7.5 2.6 10.1-.3 1.9-3 1.4-3 1.4-.9 2.5-3.6 1.5-3.6 1.5-.8 2.1-3.2 1.1-3.2 1.1-1 2-3.2 1-3.2 1-2 8.7 1.7 7.9 4.4 21 0 0 .8-.1 2.9-4.4 8.6-17.3 38.8-11.8 37 6.8-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-5.4 1.7-15.9 1.6-16.2-2.4-.3-4.7-1.9-7.1-2.4-10.6" fill="#ffe1bd"/><g fill="#e6b796"><path d="m61.8 42.9c.4-4.4-.9-8-3.3-10.6 1.4 2.4 2.1 5.3 1.8 8.7-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-4.2 1.3-11.6 1.5-14.7-.4.4 3.9 10.8 4 16.2 2.3 0 0 15.8 7.7 28.7 3.7 16.2-5.1 11.9-11.9 12.3-16"/><path d="m16.3 19.4c-2.5 10.2 1.6 9.8 4.3 22.7l1.4-1.5c-2-13-5.4-11.4-4.6-21-.6 0-1.1-.2-1.1-.2"/><path d="m29.2 48.5c8.3 3.1 20.8-.1 27.9-3.4-3.1 7.5-19.6 11.5-27.9 3.4"/><path d="m25.1 7.2c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m31.2 11.5c-.3-2.2-1-4.4-2.3-6.2.7 1.9 1.1 3.9 1.1 5.9 0 .9.2 4.1-1.4 3.7-1-.3-1-1.1-1.3-2-.4-1.4-1.2-2.9-1.1-4.3-.4 1.4.1 3.1.2 4.5.1.8.7 3.1-.4 3.4-.6.2-1.3-.2-1.8-.5-.2-.1-.3-.9-.4-1.2-.4-1.4-1.2-3-1.1-4.5-.4 1.3 0 2.9.1 4.3.1.8.5 2.7-.5 3.1-1.2.6-1.3-.8-1.5-1.5-.4-1.3-1-2.8-1-4.2-.4 1.7.1 3.7.1 5.4 0 .9-1.9 1.6-2.6 1.1-1.1-.8-1.3-2.8-1.5-4.1.3.4.8 1 1.4.9-.5-.6-.8-1.5-1.1-2.2-.3-.6-1-1.9-1.8-1.9.1.2.8 1.9.7 2-.3.5-.6 1.1-1 1.6-.3.4-1.2 1.8-1.9 1.4-.8-.5-1-1.7-1.2-2.5.1 1 0 2.5 1 3.1.9.6 2-.3 2.6-.9.2 2 1.1 4.7 3.6 4.5.5 0 1.1-.2 1.6-.4.4-.2.9-.7 1.3-.5 1.1.3 2.2.1 3-.7.4-.4.3-.6.8-.5.6.1 1.2.2 1.7 0 .5-.1.9-.4 1.2-.8.2-.2.3-.4.4-.7.2-.4.4-.2.8-.2 2.6 0 2.5-3.3 2.3-5.1"/><path d="m28.7 5.8c-.6-1.1-1.8-1-2.6-.7.1-1.1 3.1-2 2.6.7"/><path d="m22.2 8.7c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m18.8 10.3c-.6-1.1-1.8-1-2.6-.7.1-1.2 3.1-2.1 2.6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fc.svg
index 9ea3f86..be0b9c7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m2.13 42.28c-.925-6.835 3.287-17.854 5.25-32.667.352-2.652 14.03-5.439 20.391-5.439 1.65 0 3.02 7.516 2.609 10.132-.299 1.899-2.961 1.398-2.961 1.398-.9 2.524-3.561 1.544-3.561 1.544-.779 2.15-3.201 1.148-3.201 1.148-1 2-3.221 1.022-3.221 1.022-2 8.722 1.711 7.944 4.42 21.17 0 0 .76-.136 2.885-4.448 8.601-17.454 38.806-11.872 37.01 6.799-.4 4.173 3.953 10.966-12.285 16.07-12.887 4.049-28.732-3.715-28.732-3.715-5.402 1.67-15.881 1.56-16.189-2.459-.359-4.663-1.943-7.04-2.418-10.55"/><g fill="#e0a372"><path d="m61.755 42.937c.426-4.427-.906-8.01-3.26-10.715 1.426 2.4 2.146 5.318 1.818 8.739-.4 4.173 3.953 10.965-12.285 16.07-12.887 4.048-28.734-3.715-28.734-3.715-4.219 1.304-11.605 1.526-14.729-.357.41 3.9 10.826 3.984 16.17 2.333 0 0 15.845 7.764 28.732 3.715 16.239-5.103 11.885-11.896 12.286-16.07"/><path d="m16.261 19.301c-2.527 10.281 1.555 9.837 4.281 22.87l1.439-1.502c-1.998-13.03-5.445-11.463-4.602-21.13-.624-.019-1.118-.234-1.118-.234"/><path d="m56.26 47.797c-13.236 17.1-23.27-1.294-36.08-3.958 13.244-2.711 19.884 13.08 36.08 3.958"/><path d="m25.09 7.01c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m31.17 11.364c-.251-2.213-1.01-4.403-2.349-6.196.714 1.878 1.072 3.882 1.078 5.89.002.902.211 4.116-1.377 3.697-.979-.258-1-1.101-1.282-1.969-.433-1.358-1.191-2.923-1.099-4.364-.373 1.414.072 3.112.236 4.546.095.833.71 3.084-.384 3.392-.603.173-1.302-.224-1.803-.516-.19-.112-.332-.932-.402-1.161-.43-1.408-1.202-3.03-1.103-4.503-.377 1.333-.011 2.938.108 4.304.074.845.53 2.682-.489 3.108-1.158.564-1.335-.807-1.549-1.524-.398-1.334-1.044-2.792-1.027-4.191-.403 1.703.07 3.698.149 5.443.04.868-1.903 1.649-2.628 1.105-1.137-.853-1.328-2.852-1.457-4.143.342.434.831.993 1.447.938-.527-.561-.75-1.524-1.102-2.205-.324-.561-.98-1.895-1.752-1.917.119.24.768 1.888.668 2.061-.313.546-.617 1.099-.968 1.621-.296.44-1.157 1.839-1.853 1.417-.753-.457-.996-1.719-1.223-2.491.058.979.029 2.538.998 3.126.919.558 1.965-.323 2.574-.951.208 2.053 1.065 4.729 3.617 4.557.539-.036 1.067-.207 1.555-.435.402-.188.856-.662 1.278-.534 1.068.323 2.218.115 2.983-.732.357-.396.261-.641.795-.508.568.128 1.156.154 1.721-.01.461-.123.876-.41 1.188-.768.18-.204.316-.436.424-.685.172-.396.368-.187.768-.202 2.593-.099 2.506-3.335 2.26-5.2"/><path d="m28.746 5.635c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m22.18 8.534c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m18.806 10.122c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 42.2c-.9-6.8 3.3-17.7 5.3-32.4.4-2.6 14-5.4 20.4-5.4 1.6 0 3 7.5 2.6 10.1-.3 1.9-3 1.4-3 1.4-.9 2.5-3.6 1.5-3.6 1.5-.8 2.1-3.2 1.1-3.2 1.1-1 2-3.2 1-3.2 1-2 8.7 1.7 7.9 4.4 21 0 0 .8-.1 2.9-4.4 8.6-17.3 38.8-11.8 37 6.8-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-5.4 1.7-15.9 1.6-16.2-2.4-.3-4.7-1.9-7.1-2.4-10.6" fill="#fed0ac"/><g fill="#e0a372"><path d="m61.8 42.9c.4-4.4-.9-8-3.3-10.6 1.4 2.4 2.1 5.3 1.8 8.7-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-4.2 1.3-11.6 1.5-14.7-.4.4 3.9 10.8 4 16.2 2.3 0 0 15.8 7.7 28.7 3.7 16.2-5.1 11.9-11.9 12.3-16"/><path d="m16.3 19.4c-2.5 10.2 1.6 9.8 4.3 22.7l1.4-1.5c-2-13-5.4-11.4-4.6-21-.6 0-1.1-.2-1.1-.2"/><path d="m29.2 48.5c8.3 3.1 20.8-.1 27.9-3.4-3.1 7.5-19.6 11.5-27.9 3.4"/><path d="m25.1 7.2c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m31.2 11.5c-.3-2.2-1-4.4-2.3-6.2.7 1.9 1.1 3.9 1.1 5.9 0 .9.2 4.1-1.4 3.7-1-.3-1-1.1-1.3-2-.4-1.4-1.2-2.9-1.1-4.3-.4 1.4.1 3.1.2 4.5.1.8.7 3.1-.4 3.4-.6.2-1.3-.2-1.8-.5-.2-.1-.3-.9-.4-1.2-.4-1.4-1.2-3-1.1-4.5-.4 1.3 0 2.9.1 4.3.1.8.5 2.7-.5 3.1-1.2.6-1.3-.8-1.5-1.5-.4-1.3-1-2.8-1-4.2-.4 1.7.1 3.7.1 5.4 0 .9-1.9 1.6-2.6 1.1-1.1-.8-1.3-2.8-1.5-4.1.3.4.8 1 1.4.9-.5-.6-.8-1.5-1.1-2.2-.3-.6-1-1.9-1.8-1.9.1.2.8 1.9.7 2-.3.5-.6 1.1-1 1.6-.3.4-1.2 1.8-1.9 1.4-.8-.5-1-1.7-1.2-2.5.1 1 0 2.5 1 3.1.9.6 2-.3 2.6-.9.2 2 1.1 4.7 3.6 4.5.5 0 1.1-.2 1.6-.4.4-.2.9-.7 1.3-.5 1.1.3 2.2.1 3-.7.4-.4.3-.6.8-.5.6.1 1.2.2 1.7 0 .5-.1.9-.4 1.2-.8.2-.2.3-.4.4-.7.2-.4.4-.2.8-.2 2.6 0 2.5-3.3 2.3-5.1"/><path d="m28.7 5.8c-.6-1.1-1.8-1-2.6-.7.1-1.1 3.1-2 2.6.7"/><path d="m22.2 8.7c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m18.8 10.3c-.6-1.1-1.8-1-2.6-.7.1-1.2 3.1-2.1 2.6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fd.svg
index f4f77f7..fa50395 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m2.13 42.28c-.925-6.835 3.287-17.854 5.25-32.667.352-2.652 14.03-5.439 20.391-5.439 1.65 0 3.02 7.516 2.609 10.132-.299 1.899-2.961 1.398-2.961 1.398-.9 2.524-3.561 1.544-3.561 1.544-.779 2.15-3.201 1.148-3.201 1.148-1 2-3.221 1.022-3.221 1.022-2 8.722 1.711 7.944 4.42 21.17 0 0 .76-.136 2.885-4.448 8.601-17.454 38.806-11.872 37.01 6.799-.4 4.173 3.953 10.966-12.285 16.07-12.887 4.049-28.732-3.715-28.732-3.715-5.402 1.67-15.881 1.56-16.189-2.459-.359-4.663-1.943-7.04-2.418-10.55"/><g fill="#b58360"><path d="m61.755 42.937c.426-4.427-.906-8.01-3.26-10.715 1.426 2.4 2.146 5.318 1.818 8.739-.4 4.173 3.953 10.965-12.285 16.07-12.887 4.048-28.734-3.715-28.734-3.715-4.219 1.304-11.605 1.526-14.729-.357.41 3.9 10.826 3.984 16.17 2.333 0 0 15.845 7.764 28.732 3.715 16.239-5.103 11.885-11.896 12.286-16.07"/><path d="m16.261 19.301c-2.527 10.281 1.555 9.837 4.281 22.87l1.439-1.502c-1.998-13.03-5.445-11.463-4.602-21.13-.624-.019-1.118-.234-1.118-.234"/><path d="m56.26 47.797c-13.236 17.1-23.27-1.294-36.08-3.958 13.244-2.711 19.884 13.08 36.08 3.958"/><path d="m25.09 7.01c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m31.17 11.364c-.251-2.213-1.01-4.403-2.349-6.196.714 1.878 1.072 3.882 1.078 5.89.002.902.211 4.116-1.377 3.697-.979-.258-1-1.101-1.282-1.969-.433-1.358-1.191-2.923-1.099-4.364-.373 1.414.072 3.112.236 4.546.095.833.71 3.084-.384 3.392-.603.173-1.302-.224-1.803-.516-.19-.112-.332-.932-.402-1.161-.43-1.408-1.202-3.03-1.103-4.503-.377 1.333-.011 2.938.108 4.304.074.845.53 2.682-.489 3.108-1.158.564-1.335-.807-1.549-1.524-.398-1.334-1.044-2.792-1.027-4.191-.403 1.703.07 3.698.149 5.443.04.868-1.903 1.649-2.628 1.105-1.137-.853-1.328-2.852-1.457-4.143.342.434.831.993 1.447.938-.527-.561-.75-1.524-1.102-2.205-.324-.561-.98-1.895-1.752-1.917.119.24.768 1.888.668 2.061-.313.546-.617 1.099-.968 1.621-.296.44-1.157 1.839-1.853 1.417-.753-.457-.996-1.719-1.223-2.491.058.979.029 2.538.998 3.126.919.558 1.965-.323 2.574-.951.208 2.053 1.065 4.729 3.617 4.557.539-.036 1.067-.207 1.555-.435.402-.188.856-.662 1.278-.534 1.068.323 2.218.115 2.983-.732.357-.396.261-.641.795-.508.568.128 1.156.154 1.721-.01.461-.123.876-.41 1.188-.768.18-.204.316-.436.424-.685.172-.396.368-.187.768-.202 2.593-.099 2.506-3.335 2.26-5.2"/><path d="m28.746 5.635c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m22.18 8.534c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m18.806 10.122c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 42.2c-.9-6.8 3.3-17.7 5.3-32.4.4-2.6 14-5.4 20.4-5.4 1.6 0 3 7.5 2.6 10.1-.3 1.9-3 1.4-3 1.4-.9 2.5-3.6 1.5-3.6 1.5-.8 2.1-3.2 1.1-3.2 1.1-1 2-3.2 1-3.2 1-2 8.7 1.7 7.9 4.4 21 0 0 .8-.1 2.9-4.4 8.6-17.3 38.8-11.8 37 6.8-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-5.4 1.7-15.9 1.6-16.2-2.4-.3-4.7-1.9-7.1-2.4-10.6" fill="#d6a57c"/><g fill="#b58360"><path d="m61.8 42.9c.4-4.4-.9-8-3.3-10.6 1.4 2.4 2.1 5.3 1.8 8.7-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-4.2 1.3-11.6 1.5-14.7-.4.4 3.9 10.8 4 16.2 2.3 0 0 15.8 7.7 28.7 3.7 16.2-5.1 11.9-11.9 12.3-16"/><path d="m16.3 19.4c-2.5 10.2 1.6 9.8 4.3 22.7l1.4-1.5c-2-13-5.4-11.4-4.6-21-.6 0-1.1-.2-1.1-.2"/><path d="m29.2 48.5c8.3 3.1 20.8-.1 27.9-3.4-3.1 7.5-19.6 11.5-27.9 3.4"/><path d="m25.1 7.2c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m31.2 11.5c-.3-2.2-1-4.4-2.3-6.2.7 1.9 1.1 3.9 1.1 5.9 0 .9.2 4.1-1.4 3.7-1-.3-1-1.1-1.3-2-.4-1.4-1.2-2.9-1.1-4.3-.4 1.4.1 3.1.2 4.5.1.8.7 3.1-.4 3.4-.6.2-1.3-.2-1.8-.5-.2-.1-.3-.9-.4-1.2-.4-1.4-1.2-3-1.1-4.5-.4 1.3 0 2.9.1 4.3.1.8.5 2.7-.5 3.1-1.2.6-1.3-.8-1.5-1.5-.4-1.3-1-2.8-1-4.2-.4 1.7.1 3.7.1 5.4 0 .9-1.9 1.6-2.6 1.1-1.1-.8-1.3-2.8-1.5-4.1.3.4.8 1 1.4.9-.5-.6-.8-1.5-1.1-2.2-.3-.6-1-1.9-1.8-1.9.1.2.8 1.9.7 2-.3.5-.6 1.1-1 1.6-.3.4-1.2 1.8-1.9 1.4-.8-.5-1-1.7-1.2-2.5.1 1 0 2.5 1 3.1.9.6 2-.3 2.6-.9.2 2 1.1 4.7 3.6 4.5.5 0 1.1-.2 1.6-.4.4-.2.9-.7 1.3-.5 1.1.3 2.2.1 3-.7.4-.4.3-.6.8-.5.6.1 1.2.2 1.7 0 .5-.1.9-.4 1.2-.8.2-.2.3-.4.4-.7.2-.4.4-.2.8-.2 2.6 0 2.5-3.3 2.3-5.1"/><path d="m28.7 5.8c-.6-1.1-1.8-1-2.6-.7.1-1.1 3.1-2 2.6.7"/><path d="m22.2 8.7c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m18.8 10.3c-.6-1.1-1.8-1-2.6-.7.1-1.2 3.1-2.1 2.6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fe.svg
index 7a3032e..8202118 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m2.13 42.28c-.925-6.835 3.287-17.854 5.25-32.667.352-2.652 14.03-5.439 20.391-5.439 1.65 0 3.02 7.516 2.609 10.132-.299 1.899-2.961 1.398-2.961 1.398-.9 2.524-3.561 1.544-3.561 1.544-.779 2.15-3.201 1.148-3.201 1.148-1 2-3.221 1.022-3.221 1.022-2 8.722 1.711 7.944 4.42 21.17 0 0 .76-.136 2.885-4.448 8.601-17.454 38.806-11.872 37.01 6.799-.4 4.173 3.953 10.966-12.285 16.07-12.887 4.049-28.732-3.715-28.732-3.715-5.402 1.67-15.881 1.56-16.189-2.459-.359-4.663-1.943-7.04-2.418-10.55"/><g fill="#935e3e"><path d="m61.755 42.937c.426-4.427-.906-8.01-3.26-10.715 1.426 2.4 2.146 5.318 1.818 8.739-.4 4.173 3.953 10.965-12.285 16.07-12.887 4.048-28.734-3.715-28.734-3.715-4.219 1.304-11.605 1.526-14.729-.357.41 3.9 10.826 3.984 16.17 2.333 0 0 15.845 7.764 28.732 3.715 16.239-5.103 11.885-11.896 12.286-16.07"/><path d="m16.261 19.301c-2.527 10.281 1.555 9.837 4.281 22.87l1.439-1.502c-1.998-13.03-5.445-11.463-4.602-21.13-.624-.019-1.118-.234-1.118-.234"/><path d="m56.26 47.797c-13.236 17.1-23.27-1.294-36.08-3.958 13.244-2.711 19.884 13.08 36.08 3.958"/><path d="m25.09 7.01c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m31.17 11.364c-.251-2.213-1.01-4.403-2.349-6.196.714 1.878 1.072 3.882 1.078 5.89.002.902.211 4.116-1.377 3.697-.979-.258-1-1.101-1.282-1.969-.433-1.358-1.191-2.923-1.099-4.364-.373 1.414.072 3.112.236 4.546.095.833.71 3.084-.384 3.392-.603.173-1.302-.224-1.803-.516-.19-.112-.332-.932-.402-1.161-.43-1.408-1.202-3.03-1.103-4.503-.377 1.333-.011 2.938.108 4.304.074.845.53 2.682-.489 3.108-1.158.564-1.335-.807-1.549-1.524-.398-1.334-1.044-2.792-1.027-4.191-.403 1.703.07 3.698.149 5.443.04.868-1.903 1.649-2.628 1.105-1.137-.853-1.328-2.852-1.457-4.143.342.434.831.993 1.447.938-.527-.561-.75-1.524-1.102-2.205-.324-.561-.98-1.895-1.752-1.917.119.24.768 1.888.668 2.061-.313.546-.617 1.099-.968 1.621-.296.44-1.157 1.839-1.853 1.417-.753-.457-.996-1.719-1.223-2.491.058.979.029 2.538.998 3.126.919.558 1.965-.323 2.574-.951.208 2.053 1.065 4.729 3.617 4.557.539-.036 1.067-.207 1.555-.435.402-.188.856-.662 1.278-.534 1.068.323 2.218.115 2.983-.732.357-.396.261-.641.795-.508.568.128 1.156.154 1.721-.01.461-.123.876-.41 1.188-.768.18-.204.316-.436.424-.685.172-.396.368-.187.768-.202 2.593-.099 2.506-3.335 2.26-5.2"/><path d="m28.746 5.635c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m22.18 8.534c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m18.806 10.122c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 42.2c-.9-6.8 3.3-17.7 5.3-32.4.4-2.6 14-5.4 20.4-5.4 1.6 0 3 7.5 2.6 10.1-.3 1.9-3 1.4-3 1.4-.9 2.5-3.6 1.5-3.6 1.5-.8 2.1-3.2 1.1-3.2 1.1-1 2-3.2 1-3.2 1-2 8.7 1.7 7.9 4.4 21 0 0 .8-.1 2.9-4.4 8.6-17.3 38.8-11.8 37 6.8-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-5.4 1.7-15.9 1.6-16.2-2.4-.3-4.7-1.9-7.1-2.4-10.6" fill="#b47d56"/><g fill="#935e3e"><path d="m61.8 42.9c.4-4.4-.9-8-3.3-10.6 1.4 2.4 2.1 5.3 1.8 8.7-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-4.2 1.3-11.6 1.5-14.7-.4.4 3.9 10.8 4 16.2 2.3 0 0 15.8 7.7 28.7 3.7 16.2-5.1 11.9-11.9 12.3-16"/><path d="m16.3 19.4c-2.5 10.2 1.6 9.8 4.3 22.7l1.4-1.5c-2-13-5.4-11.4-4.6-21-.6 0-1.1-.2-1.1-.2"/><path d="m29.2 48.5c8.3 3.1 20.8-.1 27.9-3.4-3.1 7.5-19.6 11.5-27.9 3.4"/><path d="m25.1 7.2c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m31.2 11.5c-.3-2.2-1-4.4-2.3-6.2.7 1.9 1.1 3.9 1.1 5.9 0 .9.2 4.1-1.4 3.7-1-.3-1-1.1-1.3-2-.4-1.4-1.2-2.9-1.1-4.3-.4 1.4.1 3.1.2 4.5.1.8.7 3.1-.4 3.4-.6.2-1.3-.2-1.8-.5-.2-.1-.3-.9-.4-1.2-.4-1.4-1.2-3-1.1-4.5-.4 1.3 0 2.9.1 4.3.1.8.5 2.7-.5 3.1-1.2.6-1.3-.8-1.5-1.5-.4-1.3-1-2.8-1-4.2-.4 1.7.1 3.7.1 5.4 0 .9-1.9 1.6-2.6 1.1-1.1-.8-1.3-2.8-1.5-4.1.3.4.8 1 1.4.9-.5-.6-.8-1.5-1.1-2.2-.3-.6-1-1.9-1.8-1.9.1.2.8 1.9.7 2-.3.5-.6 1.1-1 1.6-.3.4-1.2 1.8-1.9 1.4-.8-.5-1-1.7-1.2-2.5.1 1 0 2.5 1 3.1.9.6 2-.3 2.6-.9.2 2 1.1 4.7 3.6 4.5.5 0 1.1-.2 1.6-.4.4-.2.9-.7 1.3-.5 1.1.3 2.2.1 3-.7.4-.4.3-.6.8-.5.6.1 1.2.2 1.7 0 .5-.1.9-.4 1.2-.8.2-.2.3-.4.4-.7.2-.4.4-.2.8-.2 2.6 0 2.5-3.3 2.3-5.1"/><path d="m28.7 5.8c-.6-1.1-1.8-1-2.6-.7.1-1.1 3.1-2 2.6.7"/><path d="m22.2 8.7c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m18.8 10.3c-.6-1.1-1.8-1-2.6-.7.1-1.2 3.1-2.1 2.6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3ff.svg
index 92fc447..109ded6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4aa-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m2.13 42.28c-.925-6.835 3.287-17.854 5.25-32.667.352-2.652 14.03-5.439 20.39-5.439 1.65 0 3.02 7.516 2.609 10.132-.299 1.899-2.961 1.398-2.961 1.398-.9 2.524-3.561 1.544-3.561 1.544-.779 2.15-3.201 1.148-3.201 1.148-1 2-3.221 1.022-3.221 1.022-2 8.722 1.711 7.944 4.42 21.17 0 0 .76-.136 2.885-4.448 8.602-17.454 38.807-11.872 37.01 6.799-.4 4.173 3.953 10.966-12.285 16.07-12.887 4.049-28.732-3.715-28.732-3.715-5.402 1.67-15.88 1.56-16.189-2.459-.359-4.663-1.943-7.04-2.418-10.55"/><g fill="#705041"><path d="m61.755 42.937c.426-4.427-.906-8.01-3.26-10.715 1.426 2.4 2.146 5.318 1.818 8.739-.4 4.173 3.953 10.965-12.285 16.07-12.887 4.048-28.734-3.715-28.734-3.715-4.219 1.304-11.605 1.526-14.728-.357.41 3.9 10.826 3.984 16.17 2.333 0 0 15.846 7.764 28.732 3.715 16.239-5.103 11.885-11.896 12.286-16.07"/><path d="m16.261 19.301c-2.527 10.281 1.555 9.837 4.281 22.87l1.439-1.502c-1.998-13.03-5.445-11.463-4.602-21.13-.624-.019-1.118-.234-1.118-.234"/><path d="m56.26 47.797c-13.236 17.1-23.27-1.294-36.08-3.958 13.244-2.711 19.885 13.08 36.08 3.958"/><path d="m25.09 7.01c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m31.17 11.364c-.252-2.213-1.01-4.403-2.35-6.196.715 1.878 1.072 3.882 1.078 5.89.002.902.211 4.116-1.377 3.697-.979-.258-1-1.101-1.281-1.969-.434-1.358-1.191-2.923-1.1-4.364-.373 1.414.072 3.112.236 4.546.096.833.711 3.084-.383 3.392-.604.173-1.303-.224-1.803-.516-.191-.112-.332-.932-.402-1.161-.43-1.408-1.203-3.03-1.104-4.503-.377 1.333-.01 2.938.109 4.304.074.845.529 2.682-.49 3.108-1.158.564-1.334-.807-1.549-1.524-.398-1.334-1.043-2.792-1.027-4.191-.402 1.703.07 3.698.15 5.443.039.868-1.904 1.649-2.629 1.105-1.137-.853-1.328-2.852-1.457-4.143.342.434.832.993 1.447.938-.527-.561-.75-1.524-1.102-2.205-.324-.561-.98-1.895-1.752-1.917.119.24.768 1.888.668 2.061-.313.546-.617 1.099-.967 1.621-.297.44-1.158 1.839-1.854 1.417-.752-.457-.996-1.719-1.223-2.491.059.979.029 2.538.998 3.126.92.558 1.965-.323 2.574-.951.209 2.053 1.066 4.729 3.617 4.557.539-.036 1.068-.207 1.555-.435.402-.188.857-.662 1.279-.534 1.068.323 2.217.115 2.982-.732.357-.396.262-.641.795-.508.568.128 1.156.154 1.721-.01.461-.123.877-.41 1.188-.768.18-.204.316-.436.424-.685.172-.396.369-.187.768-.202 2.593-.099 2.505-3.335 2.261-5.2"/><path d="m28.745 5.635c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m22.18 8.534c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m18.806 10.122c-.59-1.124-1.793-1.015-2.598-.672.102-1.174 3.053-2.079 2.598.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 42.2c-.9-6.8 3.3-17.7 5.3-32.4.4-2.6 14-5.4 20.4-5.4 1.6 0 3 7.5 2.6 10.1-.3 1.9-3 1.4-3 1.4-.9 2.5-3.6 1.5-3.6 1.5-.8 2.1-3.2 1.1-3.2 1.1-1 2-3.2 1-3.2 1-2 8.7 1.7 7.9 4.4 21 0 0 .8-.1 2.9-4.4 8.6-17.3 38.8-11.8 37 6.8-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-5.4 1.7-15.9 1.6-16.2-2.4-.3-4.7-1.9-7.1-2.4-10.6" fill="#8a6859"/><g fill="#705041"><path d="m61.8 42.9c.4-4.4-.9-8-3.3-10.6 1.4 2.4 2.1 5.3 1.8 8.7-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-4.2 1.3-11.6 1.5-14.7-.4.4 3.9 10.8 4 16.2 2.3 0 0 15.8 7.7 28.7 3.7 16.2-5.1 11.9-11.9 12.3-16"/><path d="m16.3 19.4c-2.5 10.2 1.6 9.8 4.3 22.7l1.4-1.5c-2-13-5.4-11.4-4.6-21-.6 0-1.1-.2-1.1-.2"/><path d="m29.2 48.5c8.3 3.1 20.8-.1 27.9-3.4-3.1 7.5-19.6 11.5-27.9 3.4"/><path d="m25.1 7.2c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m31.2 11.5c-.3-2.2-1-4.4-2.3-6.2.7 1.9 1.1 3.9 1.1 5.9 0 .9.2 4.1-1.4 3.7-1-.3-1-1.1-1.3-2-.4-1.4-1.2-2.9-1.1-4.3-.4 1.4.1 3.1.2 4.5.1.8.7 3.1-.4 3.4-.6.2-1.3-.2-1.8-.5-.2-.1-.3-.9-.4-1.2-.4-1.4-1.2-3-1.1-4.5-.4 1.3 0 2.9.1 4.3.1.8.5 2.7-.5 3.1-1.2.6-1.3-.8-1.5-1.5-.4-1.3-1-2.8-1-4.2-.4 1.7.1 3.7.1 5.4 0 .9-1.9 1.6-2.6 1.1-1.1-.8-1.3-2.8-1.5-4.1.3.4.8 1 1.4.9-.5-.6-.8-1.5-1.1-2.2-.3-.6-1-1.9-1.8-1.9.1.2.8 1.9.7 2-.3.5-.6 1.1-1 1.6-.3.4-1.2 1.8-1.9 1.4-.8-.5-1-1.7-1.2-2.5.1 1 0 2.5 1 3.1.9.6 2-.3 2.6-.9.2 2 1.1 4.7 3.6 4.5.5 0 1.1-.2 1.6-.4.4-.2.9-.7 1.3-.5 1.1.3 2.2.1 3-.7.4-.4.3-.6.8-.5.6.1 1.2.2 1.7 0 .5-.1.9-.4 1.2-.8.2-.2.3-.4.4-.7.2-.4.4-.2.8-.2 2.6 0 2.5-3.3 2.3-5.1"/><path d="m28.7 5.8c-.6-1.1-1.8-1-2.6-.7.1-1.1 3.1-2 2.6.7"/><path d="m22.2 8.7c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m18.8 10.3c-.6-1.1-1.8-1-2.6-.7.1-1.2 3.1-2.1 2.6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4aa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4aa.svg
index 3ca54f8..772927c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4aa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4aa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m2.13 42.28c-.925-6.835 3.287-17.854 5.251-32.666.352-2.652 14.03-5.439 20.39-5.439 1.65 0 3.02 7.516 2.609 10.132-.299 1.899-2.961 1.398-2.961 1.398-.9 2.524-3.561 1.544-3.561 1.544-.779 2.15-3.201 1.148-3.201 1.148-1 2-3.221 1.022-3.221 1.022-2 8.722 1.711 7.944 4.42 21.17 0 0 .76-.136 2.885-4.448 8.602-17.454 38.805-11.872 37.01 6.799-.4 4.173 3.953 10.966-12.285 16.07-12.885 4.049-28.73-3.715-28.73-3.715-5.402 1.67-15.88 1.56-16.19-2.459-.359-4.664-1.942-7.04-2.418-10.551"/><g fill="#eba352"><path d="m61.754 42.937c.426-4.427-.906-8.01-3.26-10.714 1.426 2.4 2.146 5.318 1.818 8.739-.4 4.173 3.953 10.965-12.285 16.07-12.885 4.048-28.732-3.715-28.732-3.715-4.219 1.304-11.606 1.526-14.729-.357.411 3.9 10.827 3.984 16.17 2.333 0 0 15.846 7.764 28.73 3.715 16.239-5.104 11.886-11.897 12.286-16.07"/><path d="m16.262 19.301c-2.527 10.281 1.555 9.837 4.281 22.87l1.439-1.502c-1.998-13.03-5.445-11.462-4.602-21.13-.624-.02-1.118-.235-1.118-.235"/><path d="m56.26 47.797c-13.235 17.1-23.269-1.294-36.08-3.958 13.244-2.711 19.883 13.08 36.08 3.958"/><path d="m25.09 7.01c-.59-1.124-1.793-1.014-2.598-.672.102-1.174 3.053-2.079 2.598.672"/><path d="m31.17 11.365c-.251-2.213-1.01-4.403-2.349-6.196.714 1.878 1.072 3.882 1.078 5.89.002.902.211 4.116-1.377 3.697-.979-.258-1-1.101-1.282-1.969-.433-1.358-1.191-2.923-1.099-4.364-.373 1.414.072 3.112.236 4.546.095.833.71 3.084-.384 3.392-.603.173-1.302-.224-1.803-.516-.19-.112-.332-.932-.402-1.161-.43-1.408-1.202-3.03-1.103-4.503-.377 1.333-.011 2.938.108 4.304.074.845.53 2.682-.489 3.108-1.158.564-1.335-.807-1.549-1.524-.398-1.334-1.044-2.792-1.027-4.191-.403 1.703.07 3.698.149 5.443.04.868-1.903 1.649-2.628 1.105-1.137-.853-1.328-2.852-1.457-4.143.342.434.831.993 1.447.938-.527-.561-.75-1.524-1.102-2.205-.324-.561-.98-1.895-1.752-1.917.119.24.768 1.888.668 2.061-.313.546-.617 1.099-.968 1.621-.296.44-1.157 1.839-1.853 1.417-.753-.457-.996-1.719-1.223-2.491.058.979.029 2.538.998 3.126.919.558 1.965-.323 2.574-.951.208 2.053 1.065 4.729 3.617 4.557.539-.036 1.067-.207 1.555-.435.402-.188.856-.662 1.278-.534 1.068.323 2.218.115 2.983-.732.357-.396.261-.641.795-.508.568.128 1.156.154 1.721-.01.461-.123.876-.41 1.188-.768.18-.204.316-.436.424-.685.172-.396.368-.187.768-.202 2.593-.1 2.505-3.336 2.26-5.2"/><path d="m28.746 5.635c-.59-1.124-1.793-1.015-2.599-.672.103-1.173 3.053-2.079 2.599.672"/><path d="m22.18 8.535c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/><path d="m18.807 10.123c-.59-1.124-1.793-1.015-2.599-.672.103-1.174 3.053-2.079 2.599.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 42.2c-.9-6.8 3.3-17.7 5.3-32.4.4-2.6 14-5.4 20.4-5.4 1.6 0 3 7.5 2.6 10.1-.3 1.9-3 1.4-3 1.4-.9 2.5-3.6 1.5-3.6 1.5-.8 2.1-3.2 1.1-3.2 1.1-1 2-3.2 1-3.2 1-2 8.7 1.7 7.9 4.4 21 0 0 .8-.1 2.9-4.4 8.6-17.3 38.8-11.8 37 6.8-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-5.4 1.7-15.9 1.6-16.2-2.4-.3-4.7-1.9-7.1-2.4-10.6" fill="#ffdd67"/><g fill="#eba352"><path d="m61.8 42.9c.4-4.4-.9-8-3.3-10.6 1.4 2.4 2.1 5.3 1.8 8.7-.4 4.1 4 10.9-12.3 16-12.9 4-28.7-3.7-28.7-3.7-4.2 1.3-11.6 1.5-14.7-.4.4 3.9 10.8 4 16.2 2.3 0 0 15.8 7.7 28.7 3.7 16.2-5.1 11.9-11.9 12.3-16"/><path d="m16.3 19.4c-2.5 10.2 1.6 9.8 4.3 22.7l1.4-1.5c-2-13-5.4-11.4-4.6-21-.6 0-1.1-.2-1.1-.2"/><path d="m29.2 48.5c8.3 3.1 20.8-.1 27.9-3.4-3.1 7.5-19.6 11.5-27.9 3.4"/><path d="m25.1 7.2c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m31.2 11.5c-.3-2.2-1-4.4-2.3-6.2.7 1.9 1.1 3.9 1.1 5.9 0 .9.2 4.1-1.4 3.7-1-.3-1-1.1-1.3-2-.4-1.4-1.2-2.9-1.1-4.3-.4 1.4.1 3.1.2 4.5.1.8.7 3.1-.4 3.4-.6.2-1.3-.2-1.8-.5-.2-.1-.3-.9-.4-1.2-.4-1.4-1.2-3-1.1-4.5-.4 1.3 0 2.9.1 4.3.1.8.5 2.7-.5 3.1-1.2.6-1.3-.8-1.5-1.5-.4-1.3-1-2.8-1-4.2-.4 1.7.1 3.7.1 5.4 0 .9-1.9 1.6-2.6 1.1-1.1-.8-1.3-2.8-1.5-4.1.3.4.8 1 1.4.9-.5-.6-.8-1.5-1.1-2.2-.3-.6-1-1.9-1.8-1.9.1.2.8 1.9.7 2-.3.5-.6 1.1-1 1.6-.3.4-1.2 1.8-1.9 1.4-.8-.5-1-1.7-1.2-2.5.1 1 0 2.5 1 3.1.9.6 2-.3 2.6-.9.2 2 1.1 4.7 3.6 4.5.5 0 1.1-.2 1.6-.4.4-.2.9-.7 1.3-.5 1.1.3 2.2.1 3-.7.4-.4.3-.6.8-.5.6.1 1.2.2 1.7 0 .5-.1.9-.4 1.2-.8.2-.2.3-.4.4-.7.2-.4.4-.2.8-.2 2.6 0 2.5-3.3 2.3-5.1"/><path d="m28.7 5.8c-.6-1.1-1.8-1-2.6-.7.1-1.1 3.1-2 2.6.7"/><path d="m22.2 8.7c-.6-1.1-1.8-1-2.6-.7.1-1.2 3-2.1 2.6.7"/><path d="m18.8 10.3c-.6-1.1-1.8-1-2.6-.7.1-1.2 3.1-2.1 2.6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ab.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ab.svg
index 8686f9d..6f4ba8a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ab.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ab.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd7d" d="m59.682 13.796c1.718-5.236 1.227-14.88-16.584-3.181-18.15 11.919-36.86 39.719-35.485 44.743 1.09 3.98 17.274-5.05 26.01-17.191.745-1.035 8.662 8.766 7.578 9.842-7.835 7.786-32.943 17.689-38.2 12.593-6.106-5.927 16.676-39.793 40.06-53.27 6.485-3.737 25.494-12.582 16.62 6.461"/><path fill="#ffd05a" d="m60.61 49.49l-13.892-1.535-9.118 10.584-2.854-13.705-12.874-5.428 12.11-6.925 1.171-13.943 10.345 9.41 13.599-3.18-5.733 12.746 7.243 11.976"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.7 13.8c1.7-5.2 1.2-14.9-16.6-3.2-18.1 11.9-36.9 39.7-35.5 44.8 1.1 4 17.3-5 26-17.2.7-1 8.7 8.8 7.6 9.8-7.8 7.8-32.9 17.7-38.2 12.6-6.1-5.9 16.7-39.8 40.1-53.3 6.4-3.7 25.5-12.5 16.6 6.5" fill="#ffdd7d"/><path d="m60.6 49.5l-13.9-1.5-9.1 10.6-2.9-13.7-12.9-5.4 12.2-7 1.2-13.9 10.3 9.4 13.6-3.2-5.7 12.7 7.2 12" fill="#ffd05a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ac.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ac.svg
index 05edabe..663533c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ac.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ac.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m57 3h-50c-3.866 0-7 3.134-7 7v32c0 3.866 3.134 7 7 7h7.379v12l11.08-12h31.539c3.866 0 7-3.134 7-7v-32c0-3.866-3.134-7-7-7"/><g fill="#fff"><circle cx="14.92" cy="26" r="4.5"/><circle cx="31.999" cy="26" r="4.5"/><circle cx="49.08" cy="26" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55.4,5H8.6C4.9,5,2,7.9,2,11.5v29.8c0,3.6,2.9,6.5,6.6,6.5h6.9V59l10.4-11.2h29.6c3.6,0,6.6-2.9,6.6-6.5V11.5
+ C62,7.9,59.1,5,55.4,5z" fill="#4fd1d9"/><g fill="#fff"><circle cx="16" cy="26.4" r="4.2"/><circle cx="32" cy="26.4" r="4.2"/><circle cx="48" cy="26.4" r="4.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ad.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ad.svg
index 21d4a83..b9883d6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ad.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ad.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m17.838 48.926c-3.481-1.129-7.03.33-7.934 3.26-.901 2.932 1.191 6.225 4.674 7.355s7.03-.33 7.936-3.262c.899-2.929-1.194-6.222-4.676-7.353"/><path d="m4.992 58.48c-1.185.932-1.313 2.807-.283 4.189 1.027 1.383 2.821 1.75 4.01.818 1.185-.93 1.313-2.807.285-4.189s-2.822-1.748-4.01-.818"/><path d="m64 22.03c0-2.863-1.344-5.404-3.418-6.994.016-.204.025-.409.025-.617 0-4.509-3.555-8.163-7.939-8.163-.277 0-.55.015-.818.043-1.666-2.909-4.743-4.862-8.266-4.862-2.08 0-4 .681-5.574 1.837-1.985-2.025-4.717-3.276-7.735-3.276-4.914 0-9.07 3.318-10.477 7.896-1.648-1.172-3.647-1.859-5.803-1.859-5.638 0-10.207 4.698-10.207 10.494 0 1.711.398 3.325 1.104 4.751-2.959 2.157-4.892 5.709-4.892 9.724 0 6.578 5.186 11.91 11.584 11.91 2.354 0 4.542-.721 6.37-1.961.987 5.04 5.317 8.838 10.513 8.838 3.865 0 7.252-2.102 9.14-5.254 1.301 1.33 3.094 2.152 5.073 2.152 3.762 0 6.848-2.969 7.166-6.752.881.328 1.831.506 2.822.506 4.592 0 8.314-3.826 8.314-8.546 0-.99-.166-1.941-.467-2.824 2.112-1.586 3.485-4.149 3.485-7.04"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4fd1d9"><path d="m18.7 47.9c-3.3-1.1-6.6.3-7.4 3.1-.8 2.7 1.1 5.8 4.4 6.9s6.6-.3 7.4-3.1c.8-2.8-1.1-5.9-4.4-6.9"/><path d="m6.7 56.8c-1.1.9-1.2 2.6-.3 3.9 1 1.3 2.6 1.6 3.8.8 1.1-.9 1.2-2.6.3-3.9s-2.7-1.6-3.8-.8"/><path d="m62 22.7c0-2.7-1.3-5.1-3.2-6.6 0-.2 0-.4 0-.6 0-4.2-3.3-7.7-7.4-7.7-.3 0-.5 0-.8 0-1.6-2.7-4.4-4.6-7.7-4.6-2 0-3.8.6-5.2 1.7-1.9-1.7-4.5-2.9-7.3-2.9-4.6 0-8.5 3.1-9.8 7.4-1.5-1.1-3.4-1.7-5.4-1.7-5.3 0-9.6 4.4-9.6 9.8 0 1.6.4 3.1 1 4.5-2.8 2-4.6 5.3-4.6 9.1 0 6.2 4.9 11.2 10.9 11.2 2.2 0 4.3-.7 6-1.8.9 4.7 5 8.3 9.9 8.3 3.6 0 6.8-2 8.6-4.9 1.2 1.2 2.9 2 4.8 2 3.5 0 6.4-2.8 6.7-6.3.8.3 1.7.5 2.6.5 4.3 0 7.8-3.6 7.8-8 0-.9-.2-1.8-.4-2.6 1.8-1.7 3.1-4.1 3.1-6.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ae.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ae.svg
index 681f056..3703f53 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ae.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ae.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m57.653 32.18c3.629-2.596 5.227-5.607 5.311-8.577-1.928.43-3.964-.516-4.87-2.418-.901-1.907-.37-4.134 1.158-5.424-1.245-.946-2.769-1.546-4.563-1.701.433-2.363.114-4.424-.776-6.14-1.474 1.333-3.702 1.536-5.398.343-1.695-1.192-2.294-3.375-1.587-5.244-2.188-.275-4.532.329-6.873 2.063-.954-1.906-2.266-3.247-3.805-4.073-.471 1.97-2.188 3.436-4.25 3.436-2.064 0-3.781-1.468-4.25-3.438-1.541.827-2.854 2.167-3.808 4.072-2.341-1.731-4.684-2.334-6.868-2.059.71 1.869.106 4.052-1.589 5.244-1.697 1.193-3.925.991-5.398-.343-.891 1.716-1.21 3.777-.778 6.14-1.792.155-3.315.755-4.561 1.701 1.524 1.291 2.058 3.518 1.158 5.424-.908 1.902-2.942 2.848-4.87 2.418.085 2.97 1.682 5.981 5.311 8.577-3.629 2.565-5.227 5.542-5.311 8.476 1.928-.425 3.964.511 4.87 2.39.901 1.885.37 4.086-1.158 5.361 1.264.949 2.813 1.547 4.641 1.689-.552 2.568-.244 4.795.698 6.633 1.474-1.35 3.702-1.555 5.398-.348 1.695 1.205 2.294 3.414 1.587 5.307 2.263.287 4.692-.367 7.113-2.264.929 1.643 2.152 2.813 3.564 3.563.471-1.947 2.188-3.396 4.25-3.396 2.064 0 3.781 1.451 4.25 3.4 1.414-.75 2.638-1.922 3.567-3.563 2.42 1.893 4.849 2.547 7.108 2.26-.71-1.893-.106-4.102 1.589-5.307 1.697-1.207 3.925-1 5.398.348.942-1.838 1.251-4.064.699-6.633 1.827-.143 3.376-.74 4.64-1.689-1.524-1.275-2.058-3.477-1.158-5.361.908-1.879 2.942-2.814 4.87-2.391-.083-2.933-1.68-5.91-5.309-8.476"/><path fill="#ed4c5c" d="m59.34 32.19c3.627-2.988 4.59-6.161 4.66-8.549.007-.313-.13-.611-.378-.811-.245-.198-.572-.273-.885-.205-1.492.33-3.035-.448-3.706-1.857-.692-1.46-.324-3.2.895-4.231.232-.198.365-.489.357-.793-.007-.304-.153-.587-.398-.774-1.179-.894-2.533-1.474-4.02-1.752.242-2.424-.298-4.335-1.024-5.737-.144-.282-.421-.48-.74-.536-.319-.054-.646.038-.885.253-1.117 1.01-2.853 1.131-4.089.265-1.291-.905-1.795-2.588-1.229-4.091.108-.285.075-.603-.086-.862-.164-.26-.438-.434-.748-.473-.382-.047-.773-.073-1.158-.073-1.493 0-3.394.378-5.48 1.664-1.101-1.751-2.44-2.835-3.676-3.498-.283-.151-.622-.166-.916-.036-.293.129-.512.386-.584.694-.373 1.561-1.705 2.652-3.246 2.652s-2.875-1.092-3.245-2.655c-.072-.309-.288-.566-.584-.694-.296-.131-.633-.117-.918.036-1.235.663-2.575 1.747-3.677 3.498-2.086-1.283-3.985-1.662-5.478-1.662-.385 0-.776.025-1.156.073-.313.039-.587.213-.75.474-.161.259-.194.577-.087.862.567 1.502.063 3.185-1.228 4.09-1.236.869-2.972.743-4.09-.265-.237-.215-.564-.307-.884-.253-.32.056-.599.254-.741.536-.728 1.402-1.267 3.313-1.024 5.737-1.492.278-2.845.858-4.02 1.752-.246.187-.39.47-.399.773-.007.304.122.595.355.794 1.222 1.032 1.589 2.772.896 4.229-.67 1.412-2.228 2.189-3.706 1.859-.308-.069-.638.007-.885.205-.247.2-.384.5-.377.812.07 2.388 1.033 5.561 4.66 8.549-3.627 2.954-4.589 6.088-4.66 8.45-.007.307.13.604.378.799.245.197.572.271.885.203 1.492-.326 3.035.443 3.706 1.836.692 1.443.324 3.162-.895 4.182-.232.195-.365.484-.357.783.007.301.153.582.398.766 1.191.893 2.567 1.455 4.078 1.723-.36 2.672.2 4.756.971 6.262.144.285.421.486.74.543.319.055.646-.039.885-.256 1.117-1.021 2.853-1.145 4.089-.268 1.291.916 1.795 2.617 1.229 4.139-.108.289-.075.609.086.873.164.264.438.439.748.479.382.049.773.072 1.158.072 1.571 0 3.591-.414 5.806-1.883 1.034 1.453 2.234 2.391 3.351 2.984.283.148.622.164.916.035.293-.129.512-.381.584-.686.372-1.545 1.704-2.623 3.245-2.623s2.875 1.08 3.245 2.625c.072.305.288.559.584.686.296.129.633.115.918-.035 1.116-.594 2.316-1.531 3.351-2.984 2.215 1.467 4.233 1.881 5.804 1.881.385 0 .776-.023 1.156-.072.313-.039.587-.217.75-.479.161-.264.194-.584.087-.873-.567-1.52-.063-3.223 1.228-4.139 1.236-.879 2.972-.752 4.09.268.237.217.564.311.884.256.32-.057.599-.258.741-.543.771-1.506 1.332-3.59.971-6.26 1.512-.27 2.887-.832 4.076-1.725.246-.184.39-.465.399-.764.007-.301-.122-.588-.355-.785-1.222-1.02-1.589-2.738-.896-4.18.67-1.395 2.228-2.164 3.706-1.838.308.068.638-.006.885-.203.248-.195.385-.492.378-.799-.074-2.362-1.036-5.496-4.663-8.45m-13.698-28.22c-.24 1.964.604 3.943 2.267 5.114.911.639 1.977.977 3.084.977.866 0 1.704-.206 2.46-.593.368 1.099.462 2.296.329 3.563-2.497-.001-5.3.735-8.303 2.235-1.067.531-2.132 1.234-3.19 2.104.306-1.373.459-2.675.459-3.899 0-3.434-.555-6.04-1.393-8.03 1.407-.908 2.845-1.417 4.287-1.471m-35.1 5.498c1.726.883 3.926.755 5.545-.384 1.664-1.171 2.508-3.15 2.27-5.114 1.44.053 2.876.562 4.282 1.468-.839 1.993-1.395 4.598-1.395 8.03 0 1.223.156 2.526.461 3.898-1.06-.87-2.125-1.573-3.189-2.104-3-1.499-5.804-2.236-8.301-2.235-.134-1.266-.04-2.463.327-3.562m-1.942 39.514c-.822-.141-1.591-.385-2.289-.756 1.175-1.594 1.413-3.74.526-5.59-.878-1.826-2.651-2.986-4.661-3.064.403-2.248 1.835-4.314 4.189-6.127.808.533 1.704 1.059 2.719 1.564 2.322 1.16 5.26 1.813 8.74 1.949-2.728 1.785-4.81 3.725-6.199 5.787-1.562 2.317-2.504 4.391-3.03 6.237m28.16 12.496c-.926-1.743-2.734-2.875-4.767-2.875-2.036 0-3.842 1.133-4.765 2.873-.651-.496-1.217-1.115-1.708-1.834 1.243-1.09 2.524-2.529 3.807-4.43 1.123-1.666 2.02-3.732 2.666-6.182.651 2.447 1.541 4.516 2.663 6.184 1.283 1.902 2.565 3.342 3.81 4.432-.491.716-1.055 1.334-1.706 1.832m16.687-6.293c-1.726-.893-3.926-.764-5.545.389-1.664 1.186-2.508 3.188-2.27 5.174-3.202-.119-6.395-2.412-9.255-6.65-1.74-2.584-2.87-6.316-3.358-11.1-.053-.518-.497-.912-1.026-.912-.528 0-.974.395-1.026.91-.49 4.781-1.62 8.516-3.36 11.1-2.858 4.24-6.05 6.533-9.255 6.652.24-1.986-.604-3.988-2.267-5.174-.911-.646-1.977-.988-3.084-.988-.866 0-1.704.207-2.46.6-1.043-3.15-.084-7.03 2.806-11.322 1.719-2.557 4.688-4.934 8.815-7.07.433-.223.642-.709.512-1.168-.133-.461-.597-.768-1.058-.738-4.837.291-8.789-.279-11.601-1.682-4.575-2.283-7.263-5.196-7.842-8.479 2.01-.08 3.781-1.253 4.661-3.103.887-1.87.649-4.04-.526-5.654 2.839-1.532 6.745-1.154 11.273 1.103 1.815.907 3.669 2.419 5.51 4.493.327.372.883.456 1.308.204.428-.253.61-.771.436-1.229-1.015-2.608-1.529-4.987-1.529-7.07 0-5.192 1.354-8.931 3.921-10.913.925 1.761 2.733 2.907 4.766 2.907 2.036 0 3.842-1.145 4.765-2.906 2.569 1.979 3.921 5.718 3.921 10.91 0 2.083-.515 4.462-1.529 7.07-.178.458.005.977.433 1.229.428.251.98.167 1.313-.204 1.839-2.075 3.692-3.587 5.51-4.495 4.523-2.257 8.433-2.635 11.273-1.103-1.175 1.613-1.413 3.784-.526 5.656.878 1.849 2.651 3.02 4.661 3.101-.582 3.283-3.267 6.196-7.844 8.479-2.814 1.402-6.767 1.973-11.598 1.682-.462-.029-.929.277-1.059.738-.132.459.082.945.51 1.168 4.13 2.135 7.099 4.514 8.82 7.07 2.886 4.288 3.845 8.173 2.804 11.324m3.704-12.547c-.887 1.848-.649 3.992.526 5.588-.697.371-1.467.615-2.289.756-.521-1.846-1.463-3.92-3.02-6.236-1.392-2.063-3.469-4-6.199-5.787 3.48-.137 6.416-.789 8.74-1.949 1.016-.506 1.912-1.029 2.721-1.564 2.354 1.811 3.786 3.879 4.188 6.127-2.01.076-3.782 1.237-4.662 3.065"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.1 32.2c3.1-2.8 3.8-5.8 3.9-7.8 0-.5-.2-1-.6-1.3-.4-.3-.9-.4-1.4-.3-1 .2-2.2-.3-2.6-1.3-.5-1.1-.2-2.3.6-3.1.4-.3.6-.8.6-1.3 0-.5-.2-.9-.6-1.2-1-.8-2.1-1.3-3.4-1.6.1-1.8-.3-3.5-1.1-5-.2-.4-.7-.8-1.2-.9-.5-.1-1 .1-1.4.4-.8.7-2 .8-2.9.2-.9-.6-1.3-1.9-.9-2.9.2-.5.1-1-.1-1.4-.3-.4-.7-.7-1.2-.7-2-.3-4 .2-6 1.2-.9-1.2-2-2.2-3.3-2.9-.4-.2-1-.3-1.4-.1-.5.2-.8.6-.9 1.1-.2 1.1-1.1 1.8-2.2 1.8-1.1 0-2-.8-2.3-1.9-.1-.5-.5-.9-.9-1.1-.5-.2-1-.2-1.4.1-1.3.7-2.4 1.7-3.3 2.9-1.9-1.1-3.9-1.5-5.9-1.2-.5.1-.9.3-1.2.8-.3.3-.4.9-.2 1.3.4 1.1 0 2.3-.9 2.9-.8.6-2.1.5-2.9-.2-.4-.3-.9-.5-1.4-.4-.5.1-.9.4-1.2.9-.8 1.5-1.1 3.2-1.1 5-1.1.4-2.3.9-3.3 1.7-.4.3-.6.7-.6 1.2 0 .5.2.9.6 1.3.9.7 1.1 2 .6 3.1-.4.9-1.6 1.5-2.6 1.2-.5-.1-1 0-1.4.3-.4.4-.6.9-.6 1.4.1 2 .8 5 3.9 7.8-3.1 2.8-3.8 5.7-3.9 7.7 0 .5.2 1 .6 1.3.4.3.9.4 1.4.3 1-.2 2.2.3 2.6 1.3.5 1 .2 2.3-.6 3-.4.3-.6.8-.6 1.3 0 .5.2.9.6 1.2 1 .7 2.1 1.3 3.4 1.6-.2 2 .2 3.8 1 5.5.2.5.7.8 1.2.9.5.1 1-.1 1.4-.4.8-.7 2-.8 2.9-.2.9.7 1.3 1.9.9 3-.2.5-.1 1 .1 1.4.3.4.7.7 1.2.8.4 0 .8.1 1.1.1 1.7 0 3.5-.5 5.2-1.5.8 1 1.8 1.8 2.9 2.4.4.2 1 .3 1.4.1.5-.2.8-.6.9-1.1.3-1.1 1.2-1.9 2.3-1.9 1.1 0 2 .8 2.3 1.9.1.5.5.9.9 1.1.2.1.4.1.7.1.3 0 .5-.1.8-.2 1.1-.6 2.1-1.4 2.9-2.4 1.7 1 3.4 1.5 5.2 1.5.4 0 .8 0 1.1-.1.5-.1.9-.3 1.2-.8.3-.4.3-.9.1-1.4-.4-1.1 0-2.3.9-3 .8-.6 2.1-.5 2.9.2.4.3.9.5 1.4.4.5-.1.9-.4 1.2-.9.8-1.7 1.2-3.5 1-5.5 1.3-.3 2.4-.8 3.4-1.6.4-.3.6-.7.6-1.2 0-.5-.2-.9-.6-1.3-.9-.7-1.1-2-.6-3 .5-1 1.6-1.5 2.6-1.3.1 0 .2 0 .4 0 .4 0 .7-.1 1-.4.4-.3.6-.8.6-1.3 0-1.9-.7-4.8-3.8-7.6m-14.3-25.1c0 1.8.9 3.4 2.4 4.5 1.5 1 3.3 1.3 5 .7.1.5.1 1.1.1 1.7-2.3.1-4.7.8-7.3 2.1-.5.3-1.1.6-1.6 1 .1-.7.1-1.3.1-2 0-2.7-.4-5.1-1.1-7.1.8-.5 1.6-.8 2.4-.9m-31 5.2c1.6.5 3.6.3 5-.7 1.5-1 2.4-2.7 2.4-4.5.8.1 1.6.4 2.4.9-.7 2-1.1 4.4-1.1 7.1 0 .6 0 1.3.1 2-.5-.4-1.1-.7-1.6-1-2.6-1.3-5-2-7.3-2.1 0-.6 0-1.2.1-1.7m-2.7 34.5c-.2-.1-.4-.1-.6-.2.8-1.6.9-3.5.1-5.1-.8-1.6-2.3-2.8-4-3.1.4-1.5 1.5-2.9 3-4.2.7.4 1.4.8 2.1 1.2 1.8.9 3.9 1.5 6.3 1.7-1.8 1.4-3.2 2.8-4.3 4.4-1.1 1.8-2 3.5-2.6 5.3m26.4 11.2c-1.1-1.4-2.7-2.3-4.5-2.3-1.8 0-3.5.9-4.5 2.3-.2-.2-.3-.4-.5-.5 1.1-1 2.1-2.3 3.1-3.8.7-1.1 1.4-2.3 1.9-3.8.5 1.4 1.1 2.7 1.9 3.8 1 1.5 2 2.7 3.1 3.8-.1.1-.3.3-.5.5m14.7-5.7c-1.7-.5-3.6-.3-5 .7-1.5 1.1-2.4 2.7-2.4 4.5-2.5-.4-4.9-2.4-7.2-5.7-1.5-2.3-2.5-5.6-3-9.9-.1-.8-.8-1.5-1.6-1.5-.8 0-1.5.6-1.6 1.5-.4 4.3-1.4 7.6-3 9.8-2.3 3.3-4.7 5.3-7.2 5.7 0-1.8-.9-3.5-2.4-4.5-1.5-1-3.4-1.3-5-.7-.5-2.5.4-5.7 2.7-9 1.5-2.2 4.1-4.3 7.8-6.2.7-.3 1-1.1.8-1.9-.2-.7-.8-1.2-1.6-1.2h-.1c-4.3.3-7.8-.2-10.3-1.5-3.6-1.8-5.9-4.1-6.6-6.6 1.8-.3 3.3-1.5 4-3.1.8-1.7.7-3.6-.1-5.2 2.3-.9 5.5-.4 9 1.3 1.6.8 3.2 2.1 4.8 4 .5.6 1.4.7 2.1.3.7-.4 1-1.2.7-2-.9-2.3-1.4-4.4-1.4-6.2 0-4.1.9-7.2 2.8-8.9 1.1 1.4 2.7 2.3 4.5 2.3 1.8 0 3.5-.9 4.5-2.3 1.8 1.8 2.8 4.9 2.8 8.9 0 1.8-.5 3.9-1.4 6.2-.3.7 0 1.6.7 2 .7.4 1.6.2 2.1-.3 1.6-1.8 3.3-3.2 4.8-4 3.6-1.8 6.7-2.2 9-1.3-.8 1.6-.9 3.5-.1 5.2.8 1.7 2.3 2.8 4 3.1-.7 2.5-3 4.8-6.6 6.6-2.5 1.2-6 1.7-10.3 1.5h-.1c-.7 0-1.4.5-1.6 1.2-.2.7.1 1.5.8 1.9 3.7 1.9 6.3 4 7.8 6.3 2.5 3.3 3.4 6.5 2.9 9m3.2-10.9c-.8 1.6-.7 3.5.1 5.1-.2.1-.4.1-.6.2-.6-1.7-1.5-3.5-2.7-5.3-1-1.5-2.5-3-4.3-4.4 2.5-.3 4.6-.8 6.3-1.7.8-.4 1.5-.8 2.1-1.2 1.6 1.3 2.6 2.7 3 4.2-1.6.4-3.1 1.5-3.9 3.1" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4af.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4af.svg
index bcadd1b..8bb5a80 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4af.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4af.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m9.516 1.366c0 0-6.541 16.243-9.506 40.628-.265 2.18 4.756.229 6.487-.432 3.916-24.01 9.505-40.472 9.505-40.472-1.632-.279-6.486.276-6.486.276"/><path d="m37.633 3.146c2.306 3.736 1.298 9.661-.098 15.537-2.305 9.499-7.737 19.317-16.526 19.317-8.312 0-9.176-9.02-6.965-18.256 1.343-5.598 3.554-11.307 6.917-15.1 2.594-2.887 6.149-4.646 9.703-4.646 3.459 0 5.815.691 6.969 3.146m-16.913 16.653c-1.873 7.745-1.01 11.638 2.069 11.638 3.214 0 6.242-4.91 8.215-12.97 1.824-7.686.959-11.213-2.117-11.213-2.931 0-6.147 4.272-8.167 12.545"/><path d="m62.63 3.15c2.307 3.732 1.297 9.657-.096 15.531-2.306 9.499-7.734 19.319-16.526 19.319-8.312 0-9.177-9.02-6.967-18.256 1.348-5.6 3.555-11.308 6.92-15.1 2.594-2.881 6.148-4.645 9.704-4.645 3.459 0 5.813.691 6.965 3.15m-16.909 16.651c-1.873 7.742-1.01 11.637 2.064 11.637 3.221 0 6.247-4.913 8.214-12.967 1.826-7.69.963-11.217-2.113-11.217-2.929 0-6.15 4.272-8.165 12.547"/><path d="m48.6 49.686c-5.724 0-35.563 2.348-47.32 3.314-.802-3.045.245-5.75 1.601-7.06 5.904-1.111 45.16-4.144 48.12-2.413-.493 2.143-1.355 4.85-2.402 6.163"/><path d="m43.585 61.63c-5.845 0-24.456 1.296-36.459 2.368-.817-3.391.252-6.386 1.634-7.844 6.03-1.234 34.26-3.293 37.28-1.372-.503 2.383-1.384 5.387-2.452 6.848"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m10.9 3.3c0 0-6.1 15.2-8.9 38.1-.2 2 4.5.2 6.1-.4 3.7-22.5 8.9-38 8.9-38-1.5-.2-6.1.3-6.1.3"/><path d="m37.3 4.9c2.2 3.5 1.2 9.1-.1 14.6-2.2 8.9-7.3 18.1-15.5 18.1-7.8 0-8.6-8.5-6.5-17.1 1.3-5.2 3.3-10.6 6.5-14.2 2.4-2.7 5.7-4.3 9-4.3 3.3 0 5.5.6 6.6 2.9m-15.9 15.7c-1.8 7.3-.9 10.9 1.9 10.9 3 0 5.9-4.6 7.7-12.2 1.7-7.2.9-10.5-2-10.5-2.7 0-5.7 4-7.6 11.8"/><path d="m60.7 5c2.2 3.5 1.2 9.1-.1 14.6-2.2 8.9-7.2 18.1-15.5 18.1-7.8 0-8.6-8.5-6.5-17.1 1.3-5.2 3.3-10.6 6.5-14.2 2.4-2.7 5.8-4.4 9.1-4.4 3.2 0 5.4.6 6.5 3m-15.8 15.6c-1.8 7.3-.9 10.9 1.9 10.9 3 0 5.9-4.6 7.7-12.2 1.7-7.2.9-10.5-2-10.5-2.7 0-5.7 4-7.6 11.8"/><path d="m47.6 48.6c-5.4 0-33.3 2.2-44.4 3.1-.8-2.9.2-5.4 1.5-6.6 5.5-1 42.3-3.9 45.1-2.3-.4 2-1.3 4.5-2.2 5.8"/><path d="m42.9 59.8c-5.5 0-22.9 1.2-34.2 2.2-.8-3.2.2-6 1.5-7.4 5.7-1.2 32.1-3.1 34.9-1.3-.4 2.3-1.2 5.1-2.2 6.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b0.svg
index fdd09b4..5dcbf7d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="M54,46.888C54,59.038,44.15,59,32,59s-22,0.038-22-12.112S19.85,15,32,15S54,34.737,54,46.888z"/><g fill="#89664c"><path opacity=".5" d="m54 46.888c0-4.12-1.136-9.112-3.106-13.912.369 3.123-.425 8.648-9.893 10.658-13.501 2.866-6.528 6.749-11.765 7.182-4.518.374-16.48-1.44-18.879-8.206-.23 1.494-.357 2.934-.357 4.278 0 12.15 9.85 12.11 22 12.11s22 .038 22-12.11"/><path d="m37.915 41.12c-.433-2-2.135-2.567-3.895-2.66-.005-.94-.005-1.881.002-2.821.54.234 1.058.505 1.528.794.831.515 1.585-.817.759-1.334-.72-.445-1.487-.808-2.28-1.081.011-1.09.017-2.178.017-3.266.001-.996-1.503-.996-1.503 0 0 .956-.006 1.911-.015 2.866-.802-.137-1.612-.149-2.423-.038-.131-.716-.286-1.425-.475-2.135-.249-.96-1.701-.553-1.449.409.185.692.335 1.382.459 2.081-.063.022-.133.035-.195.062-2.037.796-3.28 2.818-1.789 4.708.694.879 1.602 1.233 2.595 1.354.055 1.303.089 2.607.128 3.91-.666-.426-1.272-.974-1.821-1.549-.68-.707-1.741.384-1.063 1.09.923.966 1.892 1.699 2.942 2.166.047 1.113.114 2.228.224 3.336.098.981 1.603.988 1.505 0-.096-.958-.158-1.919-.205-2.88.571.099 1.173.124 1.81.063.072 1.025.155 2.049.274 3.074.112.976 1.618.984 1.504 0-.126-1.116-.217-2.235-.292-3.354 2.127-.646 4.189-2.347 3.658-4.795m-5.394-5.971c-.008 1.107-.01 2.214-.005 3.322-.483.027-.942.071-1.345.107-.172.014-.335.02-.496.021-.074-1.189-.178-2.375-.341-3.56.72-.103 1.458-.057 2.187.11m-3.636 3.185c-.442-.149-.833-.391-1.163-.723-.938-.863.351-1.712 1.163-2.114.126.965.215 1.938.281 2.912-.094-.025-.187-.045-.281-.075m3.361 6.409c-.472.053-.922.015-1.348-.091-.054-1.518-.089-3.037-.147-4.556.591-.024 1.19-.083 1.771-.128.021 1.569.061 3.144.146 4.713-.143.022-.282.05-.422.062m3.244-1.147c-.396.309-.853.535-1.332.712-.074-1.462-.112-2.918-.13-4.377.18.007.358.024.527.047 1.946.29 2.455 2.421.935 3.618"/></g><path fill="#699635" d="m33.979 55.02h-2.271v3.978l9.292 5 21-6.5v-3.48l-7.67-4.52z"/><path fill="#83bf4f" d="m32 52.747c0 0 2.438 3.88 9.204 7.253 0 0 10.563-.506 20.796-7.253 0 0-5.942-2.868-7.593-6.747 0 0-4.04 5.566-22.407 6.747"/><path fill="#699635" d="m27.483 54.948l2.213-.177.304 3.759-8.674 5.47-20.96-4.51-.267-3.29 7.124-4.89z"/><path fill="#83bf4f" d="m29.24 52.636c0 0-2.079 3.866-8.415 7.591 0 0-10.333.349-20.821-5.24 0 0 5.571-3.183 6.884-6.986 0-.001 4.367 4.955 22.352 4.635"/><path fill="none" stroke="#699635" stroke-miterlimit="10" d="m24.25 53.687c0 0-.313.811 1.114.857l-3.715 3.126c0 0-2.151-.248-2.652 1.283 0 0-8.992-.953-14.788-3.585 0 0 1.176-.934-.262-1.514 0 0 1.697-1.224 2.108-2.288 0 0 1.552.217 2.125-1.04.001 0 6.075 3.589 16.07 3.161z"/><ellipse fill="#699635" cx="8.833" cy="53.793" rx="1.917" ry="1.287"/><g fill="#f9f3d9"><path d="m18.992 52.16c0 0-2.33 3.02-7.262 7.06l.225 2.768-3.529-.76-.236-2.907c0 0 5.063-4.713 6.229-6.971 0 .001 1.75.527 4.573.811"/><path d="m42.09 51.52c0 0 .929 2.373 7.67 6.843v2.926l3.88-1.2v-3.045c0 0-4.702-3.283-7.504-6.622l-4.046 1.098"/></g><path fill="#699635" d="m36.408 48.31l-2.228-.12-.18 4.13 8.892 5.68 20.892-5.65.158-3.615-7.313-5.101z"/><path fill="#83bf4f" d="m34.571 45.838c0 0 2.216 4.157 8.7 8.02 0 0 10.386.028 20.729-6.446 0 0-5.697-3.291-7.141-7.408 0-.001-4.219 5.571-22.288 5.837"/><path fill="none" stroke="#699635" stroke-miterlimit="10" d="m39.08 46.928c0 0 .509.766-1.083 1.072l4.194 3.347c0 0 2.364-.643 3.223.82 0 0 10-1.75 14.583-4.167 0 0-1.5-.733 0-1.583 0 0-1.833-1.494-2.5-2.497 0 0-1.697.501-2.583-.67 0 0-3.585 3.105-15.834 3.678z"/><path fill="#699635" d="m46.795 49.39c-.434.537-1.67.738-2.768.444-1.097-.294-1.639-.972-1.209-1.511.434-.538 1.671-.737 2.768-.444 1.098.295 1.64.971 1.209 1.511"/><path fill="#f9f3d9" d="m44.84 44.963c0 0 2.44 3.219 7.525 7.475l-.134 3.037 3.52-.953.14-3.188c0 0-5.241-4.982-6.485-7.413-.001-.001-1.74.634-4.566 1.042"/><path fill="#dbb471" d="m46 2c0 6.06-7.856 16-14 16s-14-8.937-14-15c0-6.07.856 0 7 0 .882 0 5.139-3 7-3 1.33 0 4.969 3 7 3 5.333 0 7-5.573 7-1"/><path fill="#89664c" d="m30.17 13.254c-.604.362-3.453.06-4.4.829-1.161.944.528 3.039-.67 4.274-2.371 2.445-4.296 5.115-3.728 6.643.959 2.577 2.875-4.77 4.625-2.01s1.375-1.857 4 .514.369-4.254 2.935-1.379 2.642 6.245 4.44 6.25c2.126.006-2.25-7.854.625-5.989s5.867 1.23 3.089-1.698c-.863-.909-2.135-2.486-3.516-3.917-.52-.539-.056-3.057-.591-3.511-.557-.472-2.113 1.126-2.651.842-1.157-.61-.775.511-2.602.837-1.319.235-.302-2.437-1.556-1.685"/><path fill="#e8e8e8" d="m18.707 19.21c3.868-3.69 11.02-1.633 15.16.156 4.058 1.758 6.558-3.945 4.01-6.785-1.487-1.66-3.853.332-4.846 1.479-1.017 1.175-1.811 2.519-2.857 3.672-1.613 1.776-5.544.31-4.282-2.245 1.272-2.579 6.79.396 8.633.924 3.521 1.01 7.24 1.394 10.743.139 1.205-.432.686-2.364-.531-1.928-3.867 1.385-7.757.488-11.548-.7-1.875-.588-4.949-2.241-6.948-1.302-5.712 2.684-.361 10.415 4.369 7.373 1.07-.688 1.841-1.839 2.584-2.845.458-.619 2.997-4.431 3.576-2.531.295.968.02 2.753-1.058 3.137-.723.258-2.139-.669-2.843-.949-1.279-.509-2.612-.862-3.956-1.153-3.668-.794-8.707-.634-11.619 2.145-.935.891.481 2.303 1.414 1.413"/><path fill="#89664c" d="m44.84.533c-1.042.743-2.873 2.467-5.84 2.467-2.031 0-5.67-3-7-3-1.861 0-6.118 3-7 3-3.299 0-5.071-1.747-6.01-2.428.001.004 1.106 4.491 4.509 6.761 2.499 1.667 2.167-.25 3.5-2s2.235-2.666 4.468 1.834c1.22 2.459 3.462-6.787 5.282-3.834 3.338 5.417 4.512 2.483 8.089-2.8"/><g fill="#dbb471"><path d="m52.37 52.44l-.134 3.037 3.52-.953.14-3.188c0-.001-2.073.736-3.526 1.104"/><path d="m49.759 58.36v2.926l3.88-1.2v-3.045c0 0-1.084.588-3.88 1.319"/><path d="m11.73 59.22l.225 2.768-3.529-.76-.236-2.907c0 0 1.379.486 3.54.899"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M54,46.9C54,59,44.2,59,32,59s-22,0-22-12.1S19.9,15,32,15S54,34.7,54,46.9z" fill="#dbb471"/><g fill="#89664c"><path d="m54 46.9c0-4.1-1.1-9.1-3.1-13.9.4 3.1-.4 8.6-9.9 10.7-13.5 2.9-6.5 6.7-11.8 7.2-4.5.4-16.5-1.4-18.9-8.2-.2 1.5-.4 2.9-.4 4.3.1 12 10 12 22.1 12s22 0 22-12.1" opacity=".5"/><path d="m37.9 41.1c-.4-2-2.1-2.6-3.9-2.7 0-.9 0-1.9 0-2.8.5.2 1.1.5 1.5.8.8.5 1.6-.8.8-1.3-.7-.4-1.5-.8-2.3-1.1 0-1.1 0-2.2 0-3.3 0-1-1.5-1-1.5 0 0 1 0 1.9 0 2.9-.8-.1-1.6-.1-2.4 0-.1-.7-.3-1.4-.5-2.1-.2-1-1.7-.6-1.4.4.2.7.3 1.4.5 2.1-.1 0-.1 0-.2.1-2 .8-3.3 2.8-1.8 4.7.7.9 1.6 1.2 2.6 1.4.1 1.3.1 2.6.1 3.9-.7-.4-1.3-1-1.8-1.5-.7-.7-1.7.4-1.1 1.1.9 1 1.9 1.7 2.9 2.2 0 1.1.1 2.2.2 3.3.1 1 1.6 1 1.5 0-.1-1-.2-1.9-.2-2.9.6.1 1.2.1 1.8.1.1 1 .2 2 .3 3.1.1 1 1.6 1 1.5 0-.1-1.1-.2-2.2-.3-3.4 2.2-.8 4.2-2.5 3.7-5m-5.4-6c0 1.1 0 2.2 0 3.3-.5 0-.9.1-1.3.1-.2 0-.3 0-.5 0-.1-1.2-.2-2.4-.3-3.6.7 0 1.4.1 2.1.2m-3.6 3.2c-.4-.1-.8-.4-1.2-.7-.9-.9.4-1.7 1.2-2.1.1 1 .2 1.9.3 2.9-.1 0-.2 0-.3-.1m3.3 6.4c-.5.1-.9 0-1.3-.1-.1-1.5-.1-3-.1-4.6.6 0 1.2-.1 1.8-.1 0 1.6.1 3.1.1 4.7-.2.1-.3.1-.5.1m3.3-1.1c-.4.3-.9.5-1.3.7-.1-1.5-.1-2.9-.1-4.4.2 0 .4 0 .5 0 1.9.4 2.4 2.5.9 3.7"/></g><path fill="#699635" d="m34 55h-2.3v4l9.3 5 21-6.5v-3.5l-7.7-4.5z"/><path d="m32 52.7c0 0 2.4 3.9 9.2 7.3 0 0 10.6-.5 20.8-7.3 0 0-5.9-2.9-7.6-6.7 0 0-4 5.6-22.4 6.7" fill="#83bf4f"/><path fill="#699635" d="m27.5 54.9l2.2-.1.3 3.7-8.7 5.5-20.9-4.5-.3-3.3 7.1-4.9z"/><path d="m29.2 52.6c0 0-2.1 3.9-8.4 7.6 0 0-10.3.3-20.8-5.2 0 0 5.6-3.2 6.9-7 0 0 4.4 5 22.3 4.6" fill="#83bf4f"/><path d="m24.2 53.7c0 0-.3.8 1.1.9l-3.7 3.1c0 0-2.2-.2-2.7 1.3 0 0-9-1-14.8-3.6 0 0 1.2-.9-.3-1.5 0 0 1.7-1.2 2.1-2.3 0 0 1.6.2 2.1-1 .2-.1 6.2 3.5 16.2 3.1z" fill="none" stroke="#699635" stroke-miterlimit="10"/><ellipse cx="8.8" cy="53.8" rx="1.9" ry="1.3" fill="#699635"/><g fill="#f9f3d9"><path d="m19 52.2c0 0-2.3 3-7.3 7.1l.3 2.7-3.5-.8-.2-2.9c0 0 5.1-4.7 6.2-7-.1 0 1.7.6 4.5.9"/><path d="m42.1 51.5c0 0 .9 2.4 7.7 6.8v2.9l3.9-1.2v-3c0 0-4.7-3.3-7.5-6.6l-4.1 1.1"/></g><path fill="#699635" d="m36.4 48.3l-2.2-.1-.2 4.1 8.9 5.7 20.9-5.7.1-3.6-7.3-5.1z"/><path d="m34.6 45.8c0 0 2.2 4.2 8.7 8 0 0 10.4 0 20.7-6.4 0 0-5.7-3.3-7.1-7.4 0 0-4.3 5.6-22.3 5.8" fill="#83bf4f"/><path d="m39.1 46.9c0 0 .5.8-1.1 1.1l4.2 3.3c0 0 2.4-.6 3.2.8 0 0 10-1.8 14.6-4.2 0 0-1.5-.7 0-1.6 0 0-1.8-1.5-2.5-2.5 0 0-1.7.5-2.6-.7 0 .1-3.6 3.3-15.8 3.8z" fill="none" stroke="#699635" stroke-miterlimit="10"/><path d="m46.8 49.4c-.4.5-1.7.7-2.8.4-1.1-.3-1.6-1-1.2-1.5.4-.5 1.7-.7 2.8-.4 1.1.3 1.6.9 1.2 1.5" fill="#699635"/><path d="m44.8 45c0 0 2.4 3.2 7.5 7.5l-.1 3 3.5-1 .1-3.2c0 0-5.2-5-6.5-7.4.1 0-1.6.7-4.5 1.1" fill="#f9f3d9"/><path d="m46 2c0 6.1-7.9 16-14 16s-14-8.9-14-15c0-6.1.9 0 7 0 .9 0 5.1-3 7-3 1.3 0 5 3 7 3 5.3 0 7-5.6 7-1" fill="#dbb471"/><path d="m30.2 13.3c-.6.4-3.5.1-4.4.8-1.2.9.5 3-.7 4.3-2.4 2.4-4.3 5.1-3.7 6.6 1 2.6 2.9-4.8 4.6-2s1.4-1.9 4 .5.4-4.3 2.9-1.4 2.6 6.2 4.4 6.2c2.1 0-2.2-7.9.6-6s5.9 1.2 3.1-1.7c-.9-.9-2.1-2.5-3.5-3.9-.5-.5-.1-3.1-.6-3.5-.6-.5-2.1 1.1-2.7.8-1.2-.6-.8.5-2.6.8-1.2.4-.2-2.3-1.4-1.5" fill="#89664c"/><path d="m18.7 19.2c3.9-3.7 11-1.6 15.2.2 4.1 1.8 6.6-3.9 4-6.8-1.5-1.7-3.9.3-4.8 1.5-1 1.2-1.8 2.5-2.9 3.7-1.6 1.8-5.5.3-4.3-2.2 1.3-2.6 6.8.4 8.6.9 3.5 1 7.2 1.4 10.7.1 1.2-.4.7-2.4-.5-1.9-3.9 1.4-7.8.5-11.5-.7-1.9-.6-4.9-2.2-6.9-1.3-5.7 2.7-.4 10.4 4.4 7.4 1.1-.7 1.8-1.8 2.6-2.8.5-.6 3-4.4 3.6-2.5.3 1 0 2.8-1.1 3.1-.7.3-2.1-.7-2.8-.9-1.3-.5-2.6-.9-4-1.2-3.7-.8-8.7-.6-11.6 2.1-1 .8.4 2.2 1.3 1.3" fill="#e8e8e8"/><path d="m44.8.5c-1 .8-2.8 2.5-5.8 2.5-2 0-5.7-3-7-3-1.9 0-6.1 3-7 3-3.3 0-5.1-1.7-6-2.4 0 0 1.1 4.5 4.5 6.8 2.5 1.6 2.2-.3 3.5-2.1s2.2-2.7 4.5 1.8c1.2 2.5 3.5-6.8 5.3-3.8 3.3 5.5 4.5 2.5 8-2.8" fill="#89664c"/><g fill="#dbb471"><path d="m52.4 52.4l-.1 3 3.5-1 .1-3.2c0 .1-2.1.9-3.5 1.2"/><path d="m49.8 58.4v2.9l3.9-1.2v-3c-.1-.1-1.1.5-3.9 1.3"/><path d="m11.7 59.2l.3 2.8-3.5-.8-.2-2.9c-.1 0 1.3.5 3.4.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b1.svg
index 29c9b0a..350402b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m25 14h-18c-1.657 0-3-1.344-3-3s1.343-3 3-3h18c1.657 0 3 1.344 3 3h4c0-3.866-3.134-7-7-7h-7v-4h-4v4h-7c-3.866 0-7 3.134-7 7s3.134 7 7 7h18c1.657 0 3 1.344 3 3 0 1.657-1.343 3-3 3v-.001h-18v.001c-1.657 0-3-1.344-3-3h-4c0 3.866 3.134 7 7 7h7v4h4v-4h7c3.866 0 7-3.134 7-7s-3.134-7-7-7"/><g fill="#94989b"><path d="m42.722 22.11l-5.187 5.18 16.264.71-.709-16.264-5.184 5.187-13.906-8.722z"/><path d="m19 37l.707 16.26 4.95-4.95 14.14 8.489-8.489-14.14 4.95-4.95z"/></g><path fill="#83bf4f" d="m54.961 44l9.04-9.22-2.73-2.78-8.27 8.44-8.275-8.44-2.725 2.78 9.04 9.22h-.04-4.051v4h4.051v4h-4.051v4h4.051v8h4v-8h4.05v-4h-4.05v-4h4.05v-4h-4.05z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m25.4 15.1h-16.8c-1.6 0-2.8-1.3-2.8-2.8s1.2-2.8 2.8-2.8h16.9c1.6 0 2.8 1.3 2.8 2.8h3.7c0-3.6-2.9-6.6-6.6-6.6h-6.6v-3.7h-3.8v3.8h-6.4c-3.7 0-6.6 2.9-6.6 6.5 0 3.6 2.9 6.6 6.6 6.6h16.9c1.6 0 2.8 1.3 2.8 2.8 0 1.6-1.3 2.8-2.8 2.8h-16.9c-1.6 0-2.8-1.3-2.8-2.8h-3.8c0 3.6 2.9 6.6 6.6 6.6h6.6v3.7h3.8v-3.8h6.6c3.6 0 6.6-2.9 6.6-6.6-.2-3.5-3.1-6.5-6.8-6.5"/><path d="m42.1 22.7l-4.9 4.9 15.2.6-.6-15.2-4.9 4.9-13-8.2z"/><path d="m19.8 36.7l.7 15.2 4.6-4.6 13.3 7.9-8-13.2 4.7-4.6z"/><path d="m53.5 43.2l8.5-8.6-2.6-2.6-7.7 7.9-7.8-7.9-2.5 2.6 8.4 8.6h-3.8v3.8h3.8v3.8h-3.8v3.7h3.8v7.5h3.8v-7.5h3.8v-3.7h-3.8v-3.8h3.8v-3.8h-3.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b2.svg
index 1db3cd9..1241977 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m50 28h-36c-3.314 0-6-2.687-6-6s2.686-6 6-6h36c3.314 0 6 2.687 6 6h8c0-7.732-6.268-14-14-14h-14v-8h-8v8h-14c-7.732 0-14 6.268-14 14s6.268 14 14 14h36c3.314 0 6 2.687 6 6 0 3.314-2.686 6-6 6v-.002h-36v.002c-3.314 0-6-2.688-6-6h-8c0 7.732 6.268 14 14 14h14v8h8v-8h14c7.732 0 14-6.268 14-14s-6.268-14-14-14"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.9 28.2h-33.8c-3.1 0-5.6-2.5-5.6-5.6 0-3.1 2.5-5.6 5.6-5.6h33.8c3.1 0 5.6 2.5 5.6 5.6h7.5c0-7.2-5.9-13.1-13.1-13.1h-13.1v-7.5h-7.5v7.5h-13.2c-7.2 0-13.1 5.9-13.1 13.1s5.9 13.1 13.1 13.1h33.8c3.1 0 5.6 2.5 5.6 5.6 0 3.1-2.5 5.6-5.6 5.6h-33.8c-3.1 0-5.6-2.5-5.6-5.6h-7.5c0 7.2 5.9 13.1 13.1 13.1h13.1v7.6h7.5v-7.5h13.1c7.2 0 13.1-5.9 13.1-13.1s-5.8-13.2-13-13.2" fill="#4d5357"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b3.svg
index e8941ee..289be20 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#afcddb" d="m62.47 22.338c1.689 1.69 2.04 4.245.766 5.727l-29.537 34.34c-1.793 2.084-4.93 2.141-6.978.093l-25.21-25.22c-2.048-2.047-1.991-5.186.093-6.978l34.34-29.536c1.481-1.274 4.04-.924 5.727.766l20.805 20.805"/><path fill="#333" d="m50.841 10.712l-38.21 37.698-8.899-8.904 39.769-36.14z"/><path fill="#fff" d="m49.43 18.333l-26.878 27.435 7.202 7.203 25.951-28.365z"/><g fill="#4f5b60"><path d="m34.09 43.32c-1.513-1.396-.613-4.01-.063-5.439.854-2.208 1.753 2.032 1.799 2.688.152 2.146-.057 4.349-.564 6.416-.288 1.179-.719 2.307-1.263 3.383-.341.674-.804 1.252-1.388 1.713-1.451.876-2.373.023-2.748-2.547.167-.82.53-1.517 1.087-2.088 1.894-2.352 4.89-3.541 7.083-5.369.217-.18-.13-.521-.343-.344-2.623 2.18-8.01 3.98-8.345 8.289-.221 2.849 2.668 3.459 4.218 1.875 2.02-2.062 2.53-5.817 2.704-8.63.101-1.638.517-6.171-1.89-6.721-.106-.024-.198.007-.25.097-.953 1.675-2.315 5.186-.344 7.01.233.214.54-.114.307-.329"/><path d="m37.35 41.695c2.147 1.192 2.693-3.549 2.411-4.844-.042-.193-.271-.207-.379-.121-1.132.904-1.332 3.286-.37 4.671.104.152.312.171.392.015.651-1.281 1.117-2.62 1.571-3.975.192-.574.687-.441 1.078-.838.799-.808 1.572-1.63 2.352-2.432.985-1.016 1.324-2.36 2.233-3.38 1.161-1.304 2.277-1.933 2.857-3.725.133-.41.143-1.36-.562-1.414-1.36-.105-2.552 2.77-.739 2.494 2.219-.338 4.207-2.919 5.647-4.293.171-.164-.145-.478-.314-.315-.718.683-1.452 1.36-2.215 2.02-.604.521-1.235 1.015-1.9 1.474-.335.231-2.872 1.351-1.261-.532.285.222.571.444.857.667-.094.24-.199.471-.32.696-.21.422-.482.812-.759 1.185-.531.722-1.373 1.145-1.975 1.819-.765.856-1.064 2.083-1.883 2.977-.361.395-2.335 2.918-3.037 2.621-.088-.036-.21.012-.24.096-.227.652-.448 1.31-.673 1.969-.082.241-1.02 2.119-.992 2.183-.411-.981-.27-2.231.073-3.091.27.547.312 1.076.122 1.592-.158 1.169-.752 1.867-1.78 2.086-.268-.151-.465.249-.194.398"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62.5 22.3c1.7 1.7 2 4.2.8 5.7l-29.6 34.4c-1.8 2.1-4.9 2.1-7 .1l-25.2-25.2c-2-2-2-5.2.1-7l34.3-29.5c1.5-1.3 4-.9 5.7.8l20.9 20.7" fill="#afcddb"/><path fill="#333" d="M50.8 10.7 12.6 48.4 3.7 39.5 43.5 3.4z"/><path fill="#fff" d="M49.4 18.3 22.6 45.8 29.8 53 55.7 24.6z"/><g fill="#4f5b60"><path d="m34.1 43.3c-1.5-1.4-.6-4-.1-5.4.9-2.2 1.8 2 1.8 2.7.2 2.1-.1 4.3-.6 6.4-.3 1.2-.7 2.3-1.3 3.4-.3.7-.8 1.3-1.4 1.7-1.5.9-2.4 0-2.7-2.5.2-.8.5-1.5 1.1-2.1 1.9-2.4 4.9-3.5 7.1-5.4.2-.2-.1-.5-.3-.3-2.6 2.2-8 4-8.3 8.3-.2 2.8 2.7 3.5 4.2 1.9 2-2.1 2.5-5.8 2.7-8.6.1-1.6.5-6.2-1.9-6.7-.1 0-.2 0-.2.1-1 1.7-2.3 5.2-.3 7 .1.1.4-.3.2-.5"/><path d="m37.4 41.7c2.1 1.2 2.7-3.5 2.4-4.8 0-.2-.3-.2-.4-.1-1.1.9-1.3 3.3-.4 4.7.1.2.3.2.4 0 .7-1.3 1.1-2.6 1.6-4 .2-.6.7-.4 1.1-.8.8-.8 1.6-1.6 2.4-2.4 1-1 1.3-2.4 2.2-3.4 1.2-1.3 2.3-1.9 2.9-3.7.1-.4.1-1.4-.6-1.4-1.4-.1-2.6 2.8-.7 2.5 2.2-.3 4.2-2.9 5.6-4.3.2-.2-.1-.5-.3-.3-.7.7-1.5 1.4-2.2 2-.6.5-1.2 1-1.9 1.5-.3.2-2.9 1.4-1.3-.5.3.2.6.4.9.7-.1.2-.2.5-.3.7-.2.4-.5.8-.8 1.2-.5.7-1.4 1.1-2 1.8-.8.9-1.1 2.1-1.9 3-.4.4-2.3 2.9-3 2.6-.1 0-.2 0-.2.1-.2.7-.4 1.3-.7 2-.1.2-1 2.1-1 2.2-.4-1-.3-2.2.1-3.1.3.5.3 1.1.1 1.6-.2 1.2-.8 1.9-1.8 2.1-.3-.5-.5-.1-.2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b4.svg
index 2002b2c..73ada09 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m0 46.5h64v9h-64z"/><path fill="#d3976e" d="m0 8.5h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#89664c" d="m4 12.5h56v30h-56z"/><path fill="#d3976e" d="m7 15.5h50v24h-50z"/><circle fill="#89664c" cx="45" cy="27.499" r="8"/><path fill="#d0d0d0" d="m24 8.5h16v38h-16z"/><path fill="#fff" d="m22 21.21l-1.213-1.71-4.787 4.58-4.787-4.58-1.213 1.71 4.498 4.306h-2.313v2.219h2.865v2.219h-2.865v2.216h2.865v3.328h1.904v-3.328h2.86v-2.216h-2.86v-2.219h2.86v-2.219h-2.312z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m0 46.5h64v9h-64z"/><path fill="#d3976e" d="m0 8.5h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#89664c" d="m4 12.5h56v30h-56z"/><path fill="#d3976e" d="m7 15.5h50v24h-50z"/><circle cx="45" cy="27.5" r="8" fill="#89664c"/><path fill="#d0d0d0" d="m24 8.5h16v38h-16z"/><path fill="#fff" d="m22 21.2l-1.2-1.7-4.8 4.6-4.8-4.6-1.2 1.7 4.5 4.3h-2.3v2.2h2.8v2.3h-2.8v2.2h2.8v3.3h2v-3.3h2.8v-2.2h-2.8v-2.3h2.8v-2.2h-2.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b5.svg
index a030879..a6723a2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m0 46.5h64v9h-64z"/><path fill="#83bf4f" d="m0 8.499h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#699635" d="m4 12.499h56v30h-56z"/><path fill="#83bf4f" d="m7 15.499h50v24h-50z"/><circle fill="#699635" cx="45" cy="27.5" r="8"/><path fill="#d0d0d0" d="m24 8.499h16v38h-16z"/><path fill="#fff" d="m16 26.5c-1.103 0-2-.897-2-2s.897-2 2-2 2 .896 2 2h2c0-1.858-1.279-3.41-3-3.857v-1.143h-2v1.143c-1.721.447-3 1.999-3 3.857 0 2.206 1.794 4 4 4 1.103 0 2 .896 2 2s-.897 2-2 2-2-.896-2-2h-2c0 1.858 1.279 3.41 3 3.857v1.143h2v-1.143c1.721-.447 3-1.999 3-3.857 0-2.205-1.794-4-4-4"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m0 46.5h64v9h-64z"/><path fill="#83bf4f" d="m0 8.5h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#699635" d="m4 12.5h56v30h-56z"/><path fill="#83bf4f" d="m7 15.5h50v24h-50z"/><circle cx="45" cy="27.5" r="8" fill="#699635"/><path fill="#d0d0d0" d="m24 8.5h16v38h-16z"/><path d="m16 26.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2h2c0-1.9-1.3-3.4-3-3.9v-1.1h-2v1.1c-1.7.4-3 2-3 3.9 0 2.2 1.8 4 4 4 1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2h-2c0 1.9 1.3 3.4 3 3.9v1.1h2v-1.1c1.7-.4 3-2 3-3.9 0-2.2-1.8-4-4-4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b6.svg
index 6149098..4ab3762 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m0 46.5h64v9h-64z"/><path fill="#42ade2" d="m0 8.5h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#428bc1" d="m4 12.5h56v30h-56z"/><path fill="#42ade2" d="m7 15.5h50v24h-50z"/><circle fill="#428bc1" cx="45" cy="27.5" r="8"/><path fill="#d0d0d0" d="m24 8.5h16v38h-16z"/><path fill="#fff" d="m19.338 33.5c-2.236 0-4.188-1.208-5.238-3h6.674v-2h-7.402c-.055-.326-.09-.658-.09-1s.035-.674.09-1h7.402v-2h-6.674c1.051-1.791 3-3 5.238-3 .408 0 .814.04 1.211.119l.451-1.955c-.543-.109-1.104-.164-1.662-.164-3.434 0-6.375 2.072-7.594 5h-2.744v2h2.211c-.041.328-.07.66-.07 1s.029.672.07 1h-2.211v2h2.744c1.219 2.927 4.16 5 7.594 5 .559 0 1.119-.055 1.662-.164l-.451-1.955c-.397.078-.803.119-1.211.119"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m0 46.5h64v9h-64z"/><path fill="#42ade2" d="m0 8.5h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#428bc1" d="m4 12.5h56v30h-56z"/><path fill="#42ade2" d="m7 15.5h50v24h-50z"/><circle cx="45" cy="27.5" r="8" fill="#428bc1"/><path fill="#d0d0d0" d="m24 8.5h16v38h-16z"/><path d="m19.3 33.5c-2.2 0-4.2-1.2-5.2-3h6.7v-2h-7.4c-.1-.3-.1-.7-.1-1s0-.7.1-1h7.4v-2h-6.7c1.1-1.8 3-3 5.2-3 .4 0 .8 0 1.2.1l.5-2c-.5-.1-1.1-.2-1.7-.2-3.4 0-6.4 2.1-7.6 5h-2.7v2h2.2c0 .3-.1.7-.1 1s0 .7.1 1h-2.2v2h2.7c1.2 2.9 4.2 5 7.6 5 .6 0 1.1-.1 1.7-.2l-.5-2c-.3.3-.8.3-1.2.3" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b7.svg
index 2c6447a..59a5f52 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9450e0" d="m0 46.5h64v9h-64z"/><path fill="#c28fef" d="m0 8.499h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#9450e0" d="m4 12.499h56v30h-56z"/><path fill="#c28fef" d="m7 15.499h50v24h-50z"/><circle fill="#9450e0" cx="45" cy="27.499" r="8"/><path fill="#d0d0d0" d="m24 8.499h16v38h-16z"/><path fill="#fff" d="m16 30.354c0-.321-.032-.645-.12-.998h2.898v-2.347h-4.066c-.054-.074-.094-.143-.149-.221-.133-.184-.271-.365-.41-.547-.578-.752-.933-1.244-.933-1.858 0-1.495 1.246-2.713 2.78-2.713 1.532 0 2.778 1.218 2.778 2.713h2.222c0-2.693-2.244-4.884-5-4.884-2.758 0-5 2.19-5 4.884 0 1.079.473 1.923.976 2.626h-.976v2.347h2.538c.235.518.239.8.239.998 0 1.793-1.785 2.945-2.777 2.977v2.17h10v-2.172h-6.03c.62-.808 1.028-1.813 1.028-2.975"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9450e0" d="m0 46.5h64v9h-64z"/><path fill="#c28fef" d="m0 8.5h64v38h-64z"/><path fill="#94989b" d="m24 46.5h16v9h-16z"/><path fill="#9450e0" d="m4 12.5h56v30h-56z"/><path fill="#c28fef" d="m7 15.5h50v24h-50z"/><circle cx="45" cy="27.5" r="8" fill="#9450e0"/><path fill="#d0d0d0" d="m24 8.5h16v38h-16z"/><path d="m16 30.4c0-.3 0-.6-.1-1h2.9v-2.4h-4.1c-.1-.1-.1-.1-.1-.2-.1-.2-.3-.4-.4-.5-.6-.8-.9-1.2-.9-1.9 0-1.5 1.2-2.7 2.8-2.7 1.5 0 2.8 1.2 2.8 2.7h2.1c0-2.7-2.2-4.9-5-4.9-2.8 0-5 2.2-5 4.9 0 1.1.5 1.9 1 2.6h-1v2.3h2.5c.2.5.2.8.2 1 0 1.8-1.8 2.9-2.8 3v2.2h10v-2.2h-6c.7-.8 1.1-1.8 1.1-2.9" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b8.svg
index ac76ee3..8e90f8e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m60.974 20.949c-6.191-5.652-12.382-11.304-18.574-16.959-9.06 13.814-24.47 26.11-39.13 34.969-.399 1.86-.822 3.694-1.267 5.495 6.404 5.851 12.809 11.697 19.213 17.546 15.13-8.279 31.09-20.07 40.787-33.461-.311-2.508-.652-5.04-1.026-7.59"/><path fill="#83bf4f" d="m22.407 54.56c-6.312-5.766-12.624-11.527-18.937-17.293 15.682-8.861 28.915-20.946 38.62-35.27 6.313 5.764 12.625 11.527 18.938 17.293-9.705 14.317-22.939 26.403-38.621 35.27"/><g fill="#699635"><path d="m20.811 50.779c-4.208-3.843-8.417-7.685-12.624-11.529.259-.15.516-.304.775-.456.849-.504.965-1.444.27-2.079-.209-.193-.421-.387-.631-.58 12.721-7.825 23.681-17.832 32.25-29.449.211.191.422.385.633.575.695.637 1.727.528 2.28-.247.166-.234.333-.471.501-.707 4.206 3.843 8.415 7.686 12.624 11.527-.167.236-.334.472-.501.707-.554.777-.452 1.918.245 2.555.211.193.422.385.632.576-8.57 11.617-19.53 21.625-32.25 29.453-.212-.193-.421-.386-.631-.58-.695-.634-1.946-.729-2.796-.224-.259.157-.516.307-.775.458m-9.898-11.367c3.419 3.121 6.84 6.246 10.259 9.368 1.306-.441 2.842-.336 4 .299 11.646-7.388 21.762-16.626 29.855-27.26-.696-1.059-.813-2.461-.33-3.655-3.42-3.122-6.84-6.245-10.259-9.368-.943.776-2.222.9-3.297.341-8.095 10.634-18.212 19.874-29.858 27.26.612.982.475 2.151-.372 3.01"/><path d="m20.05 37.28c1.088-.41 2.332-.286 3.103.42-.546.394-1.095.782-1.646 1.17-.234-.215-.652-.215-.948-.01-.294.202-.36.539-.136.742.227.208.664.211.958.008 1.221-.841 2.912-.854 3.845-.005.742.681.77 1.699.119 2.508.183.171.367.339.553.506-.492.346-.987.686-1.485 1.023-.194-.175-.384-.352-.576-.527-1.063.342-2.277.176-2.992-.476.563-.368 1.121-.744 1.676-1.119.227.204.665.207.959.004.295-.202.343-.54.116-.748-.226-.204-.645-.204-.939-.003-.693.479-1.582.672-2.382.583-.601-.063-1.14-.278-1.541-.646-.72-.655-.723-1.603-.138-2.381-.166-.148-.331-.301-.495-.45.497-.34.993-.681 1.486-1.026.153.145.309.285.463.427"/><path d="m43.15 15.869c.872-.605 1.956-.619 2.729.086-.406.516-.818 1.029-1.234 1.538-.233-.214-.592-.159-.817.108-.221.27-.229.661-.003.867s.604.154.826-.115c.921-1.111 2.371-1.34 3.305-.489.74.677.922 1.835.487 2.839.184.168.368.336.553.504-.369.456-.744.906-1.122 1.355-.192-.174-.385-.35-.577-.525-.863.524-1.936.492-2.649-.159.428-.495.854-.993 1.275-1.495.225.206.604.154.826-.115.222-.269.212-.659-.016-.866-.225-.206-.586-.154-.809.115-.523.634-1.261.97-1.965.971-.527.009-1.022-.171-1.423-.537-.722-.657-.866-1.736-.48-2.7-.166-.148-.33-.3-.496-.451.378-.449.754-.899 1.122-1.355.156.139.311.282.468.424"/><path d="m40.17 35.514c-3.219 2.947-8.579 2.813-11.714-.049-3.142-2.868-2.87-7.381.349-10.328 3.228-2.938 8.17-3.189 11.312-.318 3.133 2.86 3.279 7.753.053 10.695"/></g><path fill="#ffdd7d" d="m21.842 24.465l18.938 17.291c2.151-1.823 4.229-3.722 6.228-5.686l-18.935-17.294c-2 1.966-4.078 3.864-6.231 5.689"/><path fill="#dbb471" d="m40.844 49.36c2.135-1.617 4.214-3.294 6.23-5.02v-8.332c-2 1.968-4.078 3.87-6.23 5.695v7.658"/><path fill="#8d9998" d="m12.07 24.746c1.086-.41 2.02-1.014 2.898-1.692.877-.686 1.719-1.431 2.588-2.174.881-.727 1.789-1.466 2.84-2.023 1.029-.561 2.262-.932 3.419-.717-1.146.212-2.111.744-3.01 1.381-.895.647-1.738 1.385-2.607 2.125-.879.724-1.778 1.465-2.798 2.055-1.01.59-2.16 1.046-3.331 1.045"/><path fill="#e8e8e8" d="m39.809 33.1c0 0 4.922 1.371 16.33-1.614 11.404-2.988 6.01 29.808-14.807 29.808-2.256 0-2.361-2.909 3.986-8.105 0 0-8.998 2.122-5.094-4.553 0 0-6.375 1.127-3.463-3.996 0 0 1.332-3.776.141-8.117 0-.001.713-2.255 2.907-3.423"/><g fill="#d1d1d1"><path d="m61.49 34.66c.234 8.832-6.778 23.393-20.652 23.393-.057 0-.107-.011-.162-.014-1.316 2.117-.747 3.253.662 3.253 15.765 0 22.677-18.802 20.15-26.632"/><path d="m54.3 39.477c-2.999 10.77-14.99 11.748-15.05 11.745-.544 2.253.496 3.336 1.754 3.336 4.5 0 12.646-7.271 13.291-15.08"/><path d="m45.861 39.477c-7.104 10.04-9.595 6.341-9.649 6.338-1.825 3.952 2.866 4.047 3.724 3.129 2.384-2.552 6.093-7.74 5.925-9.467"/></g><g fill="#8d9998"><path d="m40.453 58.41c1.232-1.596 2.732-2.902 4.225-4.224 1.508-1.307 3.041-2.605 4.492-4.02 1.435-1.424 2.809-2.973 3.801-4.787 1.01-1.791 1.538-3.892 1.328-5.902-.188 2.01-.939 3.869-2 5.504-1.068 1.636-2.41 3.089-3.828 4.473-1.408 1.398-2.909 2.728-4.325 4.165-1.416 1.427-2.786 2.981-3.693 4.791"/><path d="m39.25 51.22c.41-1.087 1.014-2.02 1.692-2.898.686-.877 1.431-1.719 2.174-2.588.727-.881 1.466-1.79 2.023-2.84.561-1.03.933-2.262.718-3.419-.213 1.146-.744 2.111-1.382 3.01-.647.894-1.386 1.738-2.124 2.606-.725.879-1.465 1.779-2.055 2.799-.591 1-1.046 2.16-1.046 3.331"/></g><path fill="#e8e8e8" d="m30.19 24.19c0 0-1.371-4.923 1.614-16.33 2.989-11.405-29.807-6.01-29.807 14.807 0 2.256 2.909 2.361 8.105-3.986 0 0-2.122 8.998 4.553 5.094 0 0-1.127 6.374 3.996 3.462 0 0 3.776-1.332 8.117-.141 0 0 2.254-.713 3.422-2.906"/><g fill="#d1d1d1"><path d="m28.632 2.508c-8.833-.235-23.392 6.779-23.392 20.653 0 .057.01.107.014.162-2.119 1.317-3.254.747-3.254-.662 0-15.766 18.801-22.677 26.632-20.15"/><path d="m23.815 9.702c-10.768 2.999-11.749 14.989-11.745 15.04-2.253.544-3.336-.496-3.336-1.753 0-4.5 7.271-12.646 15.08-13.291"/><path d="m23.815 18.14c-10.04 7.103-6.341 9.594-6.337 9.649-3.953 1.826-4.048-2.866-3.129-3.724 2.551-2.385 7.739-6.093 9.466-5.925"/></g><g fill="#8d9998"><path d="m4.883 23.547c1.596-1.232 2.902-2.732 4.224-4.225 1.307-1.508 2.605-3.041 4.02-4.493 1.424-1.434 2.973-2.809 4.787-3.8 1.791-1.01 3.892-1.539 5.902-1.328-2.01.187-3.869.938-5.504 1.999-1.636 1.069-3.089 2.411-4.473 3.829-1.398 1.408-2.728 2.909-4.165 4.325-1.427 1.416-2.981 2.786-4.791 3.693"/><path d="m12.07 24.746c1.087-.41 2.02-1.014 2.898-1.692.877-.686 1.719-1.431 2.588-2.174.881-.727 1.79-1.466 2.84-2.023 1.03-.561 2.262-.932 3.419-.717-1.146.212-2.111.744-3.01 1.381-.894.647-1.738 1.385-2.606 2.125-.879.724-1.779 1.465-2.799 2.055-1.01.59-2.16 1.046-3.331 1.045"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m61 20.9c-6.2-5.6-12.4-11.3-18.6-16.9-9.1 13.8-24.5 26.1-39.1 35-.4 1.9-.8 3.7-1.3 5.5 6.4 5.8 12.8 11.7 19.2 17.5 15.1-8.3 31.1-20.1 40.8-33.5-.3-2.5-.7-5-1-7.6" fill="#699635"/><path d="m22.4 54.6c-6.3-5.8-12.6-11.6-18.9-17.3 15.7-8.9 28.9-21 38.6-35.3 6.3 5.8 12.6 11.5 18.9 17.3-9.7 14.3-22.9 26.4-38.6 35.3" fill="#83bf4f"/><g fill="#699635"><path d="m20.8 50.8c-4.2-3.8-8.4-7.7-12.6-11.5.3-.2.5-.3.8-.5.8-.5 1-1.4.3-2.1-.2-.2-.4-.4-.6-.6 12.7-7.8 23.7-17.8 32.3-29.4.2.2.4.4.6.6.7.6 1.7.5 2.3-.2.2-.2.3-.5.5-.7 4.2 3.8 8.4 7.7 12.6 11.5-.2.2-.3.5-.5.7-.6.8-.5 1.9.2 2.6.2.2.4.4.6.6-8.6 11.5-19.6 21.5-32.3 29.3-.2-.2-.4-.4-.6-.6-.7-.6-1.9-.7-2.8-.2-.3.2-.5.3-.8.5m-9.9-11.4c3.4 3.1 6.8 6.2 10.3 9.4 1.3-.4 2.8-.3 4 .3 11.6-7.4 21.7-16.6 29.8-27.3-.7-1.1-.8-2.5-.3-3.7-3.4-3.1-6.8-6.2-10.3-9.4-.9.8-2.2.9-3.3.3-8.1 10.8-18.2 20-29.8 27.4.6 1 .5 2.2-.4 3"/><path d="m20 37.3c1.1-.4 2.3-.3 3.1.4-.5.4-1.1.8-1.6 1.2-.2-.2-.7-.2-.9 0-.3.2-.4.5-.1.7.2.2.7.2 1 0 1.2-.8 2.9-.9 3.8 0 .7.7.8 1.7.1 2.5.2.2.4.3.6.5-.5.3-1 .7-1.5 1-.2-.2-.4-.4-.6-.5-1.1.3-2.3.2-3-.5.6-.4 1.1-.7 1.7-1.1.2.2.7.2 1 0 .3-.2.3-.5.1-.7-.2-.2-.6-.2-.9 0-.7.5-1.6.7-2.4.6-.6-.1-1.1-.3-1.5-.6-.7-.7-.7-1.6-.1-2.4-.2-.1-.3-.3-.5-.5.5-.3 1-.7 1.5-1-.1.1.1.2.2.4"/><path d="m43.2 15.9c.9-.6 2-.6 2.7.1-.4.5-.8 1-1.2 1.5-.2-.2-.6-.2-.8.1-.2.3-.2.7 0 .9s.6.2.8-.1c.9-1.1 2.4-1.3 3.3-.5.7.7.9 1.8.5 2.8.2.2.4.3.6.5-.4.5-.7.9-1.1 1.4-.2-.2-.4-.4-.6-.5-.9.5-1.9.5-2.6-.2.4-.5.9-1 1.3-1.5.2.2.6.2.8-.1s.2-.7 0-.9c-.2-.2-.6-.2-.8.1-.5.6-1.3 1-2 1-.5 0-1-.2-1.4-.5-.7-.7-.9-1.7-.5-2.7-.2-.1-.3-.3-.5-.5.4-.4.8-.9 1.1-1.4 0 .2.2.3.4.5"/><path d="m40.2 35.5c-3.2 2.9-8.6 2.8-11.7 0-3.1-2.9-2.9-7.4.3-10.3 3.2-2.9 8.2-3.2 11.3-.3 3.2 2.8 3.3 7.7.1 10.6"/></g><path d="m21.8 24.5l18.9 17.3c2.2-1.8 4.2-3.7 6.2-5.7l-18.8-17.3c-2 1.9-4.1 3.8-6.3 5.7" fill="#ffdd7d"/><path d="m40.8 49.4c2.1-1.6 4.2-3.3 6.2-5v-8.4c-2 2-4.1 3.9-6.2 5.7v7.7" fill="#dbb471"/><path d="m12.1 24.7c1.1-.4 2-1 2.9-1.7.9-.7 1.7-1.4 2.6-2.2.9-.7 1.8-1.5 2.8-2 1-.6 2.3-.9 3.4-.7-1.1.2-2.1.7-3 1.4-.9.6-1.7 1.4-2.6 2.1-.9.7-1.8 1.5-2.8 2.1-1 .6-2.2 1-3.3 1" fill="#8d9998" id="0"/><path d="m39.8 33.1c0 0 4.9 1.4 16.3-1.6 11.4-3 6 29.8-14.8 29.8-2.3 0-2.4-2.9 4-8.1 0 0-9 2.1-5.1-4.6 0 0-6.4 1.1-3.5-4 0 0 1.3-3.8.1-8.1.1 0 .8-2.2 3-3.4" fill="#e8e8e8"/><g fill="#d1d1d1"><path d="m61.5 34.7c.2 8.8-6.8 23.4-20.7 23.4-.1 0-.1 0-.2 0-1.3 2.1-.7 3.3.7 3.3 15.8-.1 22.7-18.9 20.2-26.7"/><path d="m54.3 39.5c-3 10.8-15 11.7-15 11.7-.5 2.3.5 3.3 1.8 3.3 4.4.1 12.6-7.2 13.2-15"/><path d="m45.9 39.5c-7.1 10-9.6 6.3-9.6 6.3-1.8 4 2.9 4 3.7 3.1 2.3-2.5 6-7.7 5.9-9.4"/></g><g fill="#8d9998"><path d="m40.5 58.4c1.2-1.6 2.7-2.9 4.2-4.2 1.5-1.3 3-2.6 4.5-4 1.4-1.4 2.8-3 3.8-4.8 1-1.8 1.5-3.9 1.3-5.9-.2 2-.9 3.9-2 5.5-1.1 1.6-2.4 3.1-3.8 4.5-1.4 1.4-2.9 2.7-4.3 4.2-1.5 1.3-2.8 2.9-3.7 4.7"/><path d="m39.3 51.2c.4-1.1 1-2 1.7-2.9.7-.9 1.4-1.7 2.2-2.6.7-.9 1.5-1.8 2-2.8.6-1 .9-2.3.7-3.4-.2 1.1-.7 2.1-1.4 3-.6.9-1.4 1.7-2.1 2.6-.7.9-1.5 1.8-2.1 2.8-.6 1-1 2.2-1 3.3"/></g><path d="m30.2 24.2c0 0-1.4-4.9 1.6-16.3 3-11.4-29.8-6-29.8 14.8 0 2.3 2.9 2.4 8.1-4 0 0-2.1 9 4.6 5.1 0 0-1.1 6.4 4 3.5 0 0 3.8-1.3 8.1-.1 0-.1 2.2-.8 3.4-3" fill="#e8e8e8"/><g fill="#d1d1d1"><path d="m28.6 2.5c-8.8-.2-23.4 6.8-23.4 20.7 0 .1 0 .1 0 .2-2.1 1.2-3.2.7-3.2-.7 0-15.8 18.8-22.7 26.6-20.2"/><path d="m23.8 9.7c-10.8 3-11.7 15-11.7 15-2.3.5-3.3-.5-3.3-1.8-.1-4.4 7.2-12.6 15-13.2"/><path d="m23.8 18.1c-10 7.1-6.3 9.6-6.3 9.6-4 1.8-4-2.9-3.1-3.7 2.5-2.3 7.7-6 9.4-5.9"/></g><path d="m4.9 23.5c1.6-1.2 2.9-2.7 4.2-4.2 1.3-1.5 2.6-3 4-4.5 1.4-1.4 3-2.8 4.8-3.8 1.8-1 3.9-1.5 5.9-1.3-2 .2-3.9.9-5.5 2-1.6 1.1-3.1 2.4-4.5 3.8-1.4 1.4-2.7 2.9-4.2 4.3-1.4 1.5-2.9 2.8-4.7 3.7" fill="#8d9998"/><use xlink:href="#0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4b9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4b9.svg
index 7d61230..b794bad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4b9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4b9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#75a843" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m34.12 18.813l8.88-8.813h-6.104l-4.924 4.887-4.892-4.887h-6.08l8.817 8.809v.01h-4.516v4.291h4.516v4.3h-4.516v4.295h4.516v4.295h4.303v-4.295h4.6v-4.295h-4.6v-4.3h4.6v-4.291h-4.6z"/><path d="m50.05 32.793l-4.256-2.895-6.777 11.863-4.976-2.756-4.082 7.673-4.478-3.21-6.482 8.762c1.354.707 2.781 1.3 4.271 1.77l3.236-4.373 5.07 3.637 4.358-8.198 4.855 2.689 6.556-11.475 3.976 2.706 5.678-8.506c-.048-2.249-.423-4.422-1.08-6.48l-5.869 8.793"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4bd37b"/><g fill="#fff"><path d="m34.1 18.8l8.9-8.8h-6.1l-4.9 4.9-4.9-4.9h-6.1l8.8 8.8h-4.5v4.3h4.5v4.3h-4.5v4.3h4.5v4.3h4.3v-4.3h4.6v-4.3h-4.6v-4.3h4.6v-4.3h-4.6"/><path d="m50.1 32.8l-4.3-2.9-6.8 11.9-5-2.8-4 7.7-4.5-3.2-6.5 8.7c1.4.7 2.8 1.3 4.3 1.8l3.2-4.4 5.1 3.6 4.4-8.2 4.9 2.7 6.6-11.5 4 2.7 5.7-8.5c0-2.2-.4-4.4-1.1-6.5l-6 8.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ba.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ba.svg
index a80710f..a961080 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ba.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ba.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b4d7ee" d="m54.48 31.956c.208 2.201-1.335 4-3.433 4h-38.1c-2.095 0-3.639-1.803-3.431-4l2.099-22.18c.209-2.204 2.094-4.01 4.189-4.01h32.386c2.095 0 3.98 1.803 4.19 4.01l2.1 22.18"/><g fill="#3e4347"><path d="m8.873 30.501h6v8.05h-6z"/><path d="m49.13 30.501h6v8.05h-6z"/><path d="m14.624 50.92h6v10.06h-6z"/><path d="m43.37 50.879h6v10.145h-6z"/></g><path fill="#428bc1" d="m41.42 24.998c-.322 2.627-2.352 4.777-4.514 4.777h-9.822c-2.164 0-4.194-2.15-4.514-4.777l-1.784-14.597c-.319-2.624 1.187-4.776 3.349-4.776h15.717c2.164 0 3.67 2.152 3.35 4.776l-1.782 14.597"/><g fill="#94989b"><path d="m22.953 58.916c-.175-.523-.768-.953-1.318-.953h-8.02c-.552 0-1.147.43-1.319.953l-1.371 4.129c-.174.527.132.955.682.955h12.03c.551 0 .86-.428.686-.955l-1.373-4.129"/><path d="m53.08 63.05l-1.371-4.129c-.174-.523-.771-.953-1.32-.953h-8.02c-.551 0-1.145.43-1.32.953l-1.371 4.129c-.175.527.136.955.687.955h12.03c.549 0 .861-.428.686-.955"/></g><g fill="#29abe2"><path d="m46.25 6.04c0 2.215-1.709 4.03-3.798 4.03h-20.899c-2.09 0-3.801-1.812-3.801-4.03v-2.01c0-2.214 1.711-4.02 3.801-4.02h20.899c2.089 0 3.798 1.81 3.798 4.02v2.01"/><path d="m15.519 29.18l-.305-2.067c-.164-1.091-1.098-1.985-2.081-1.985h-2.679c-.983 0-1.917.895-2.08 1.985l-.308 2.067c-.16 1.093.513 1.985 1.494 1.985h4.466c.982 0 1.655-.892 1.493-1.985"/><path d="m55.77 29.18l-.305-2.067c-.161-1.091-1.099-1.985-2.081-1.985h-2.68c-.98 0-1.916.895-2.079 1.985l-.308 2.067c-.161 1.093.512 1.984 1.494 1.984h4.467c.983.001 1.655-.891 1.492-1.984"/><path d="m51.48 36.04h-38.96c-3.058 0-5.04 3.037-4.397 6.746l.448 2.607c.642 3.709 3.671 6.746 6.732 6.746h33.395c3.061 0 6.09-3.037 6.732-6.746l.45-2.607c.642-3.709-1.339-6.746-4.4-6.746"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54.5 32c.2 2.2-1.3 4-3.4 4h-38.2c-2.1 0-3.6-1.8-3.4-4l2.1-22.2c.2-2.2 2.1-4 4.2-4h32.4c2.1 0 4 1.8 4.2 4l2.1 22.2" fill="#b4d7ee"/><g fill="#3e4347"><path d="m8.9 30.5h6v8h-6z"/><path d="m49.1 30.5h6v8h-6z"/><path d="m14.6 50.9h6v10.1h-6z"/><path d="m43.4 50.9h6v10.1h-6z"/></g><path d="m41.4 25c-.3 2.6-2.4 4.8-4.5 4.8h-9.8c-2.2 0-4.2-2.1-4.5-4.8l-1.8-14.6c-.3-2.6 1.2-4.8 3.3-4.8h15.7c2.2 0 3.7 2.2 3.3 4.8l-1.7 14.6" fill="#428bc1"/><g fill="#94989b"><path d="m23 58.9c-.2-.5-.8-1-1.3-1h-8c-.6 0-1.1.4-1.3 1l-1.5 4.1c-.2.5.1 1 .7 1h12c.6 0 .9-.4.7-1l-1.3-4.1"/><path d="m53.1 63l-1.4-4.1c-.2-.5-.8-1-1.3-1h-8c-.6 0-1.1.4-1.3 1l-1.4 4.1c-.2.5.1 1 .7 1h12c.5 0 .8-.4.7-1"/></g><g fill="#29abe2"><path d="m46.2 6c0 2.2-1.7 4-3.8 4h-20.9c-2.1 0-3.8-1.8-3.8-4v-2c0-2.2 1.7-4 3.8-4h20.9c2.1 0 3.8 1.8 3.8 4 0 0 0 2 0 2"/><path d="m15.5 29.2l-.3-2.1c-.2-1.1-1.1-2-2.1-2h-2.7c-1 0-1.9.9-2.1 2l-.3 2.1c-.2 1.1.5 2 1.5 2h4.5c1 0 1.7-.9 1.5-2"/><path d="m55.8 29.2l-.3-2.1c-.2-1.1-1.1-2-2.1-2h-2.7c-1 0-1.9.9-2.1 2l-.3 2.1c-.2 1.1.5 2 1.5 2h4.5c1 0 1.6-.9 1.5-2"/><path d="m51.5 36h-39c-3.1 0-5 3-4.4 6.7l.4 2.6c.6 3.7 3.7 6.7 6.7 6.7h33.4c3.1 0 6.1-3 6.7-6.7l.5-2.6c.7-3.6-1.3-6.7-4.3-6.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4bb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4bb.svg
index 986a92a..de2b138 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4bb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4bb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#212528" d="M64,4c0-2-2-4-4-4H4C2,0,0,2,0,4v41h64V4z"/><path fill="#ddd" d="M0,45v4c0,2,2,4,4,4h56c2,0,4-2,4-4v-4H0z"/><path fill="#bfbebe" d="m24 57c0 2.777-3.603 4-8 4v3h32v-3c-4.397 0-8-1.223-8-4v-4h-16v4"/><path fill="#3e4347" d="m4 4h56v38h-56z"/><g fill="#94989b"><circle cx="32" cy="49" r="1"/><path d="m16 61h32v3h-32z"/></g><g fill="#636c72"><path d="m56 42h-18l-14-38h18z"/><path d="m29.5 42h-5l-14-38h5z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212528"><path d="m7.3 53.8h49.4c.8 0 1.4-.6 1.4-1.4v-33c0-.8-.6-1.4-1.4-1.4h-49.4c-.7 0-1.3.6-1.3 1.4v33c0 .8.6 1.4 1.3 1.4"/><path d="M2,58.7C2,60.3,3.3,62,5,62h54c1.6,0,3-1.7,3-3.3H2z"/></g><path fill="#ddd" d="m57 53.8h-50l-5 4.9h60z"/><path fill="#bfbebe" d="m55.3 54.2h-46.6l-1.7 2h50z"/><path fill="#212528" d="m37.1 57.1h-10.2l-.8 1.1h11.8z"/><path fill="#3e4347" d="m9 21h46v29.8h-46z"/><circle cx="32" cy="19.6" r=".8" fill="#ddd"/><path d="m36.3 60.8h-8.6c-.3 0-1.1 0-1.1-1h10.8c0 1-.8 1-1.1 1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4bc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4bc.svg
index 45f60c8..16fd4d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4bc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4bc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#5f6262" d="m62 55.59c0 3.627-8.991 3.432-8.991 3.432l-25.13-6.31c-1.755-.371-3.156-2.304-3.156-4.322v-21.385l37.28 2.103v26.482"/><path fill="#343434" d="m60.19 13.397c-.012-.009-1.423-.223-1.435-.232l-6.956 3.431-1.033 44.12c5.751-4.947 11.233-5.04 11.233-5.04v-38.39c0-1.564-.703-2.961-1.809-3.899"/><path fill="#5f6262" d="m52.24 56.673c0 3.624-2.564 5.938-5.67 5.186l-39.27-9.54c-2.313-.562-4.158-3.482-4.158-6.532v-32.33l49.14 3.19-.042 40.03"/><path fill="#343434" d="m52.887 32.582c0 3.625-3.038 6.258-6.144 5.745l-39.27-6.504c-2.313-.383-4.157-3.162-4.157-6.213l1.284-13.233 48.51 3.915-.215 16.29"/><path fill="#5f6262" d="m4.597 11.48c-3.73 2.534-3.689 17.884 1.746 17.884l39.27 6.138c3.104.485 5.67-2.052 5.67-5.675 0 0-1.158-11.704 1-13.18l1.844-.801-49.53-4.366"/><path fill="#65562d" d="m30.973 26.587l-10.581-1.417-1.917 7.412 1.917 5.498 10.581 1.903z"/><path fill="#f8ecc5" d="m20.392 25.17l-1.917 7.412 10.575 1.658 1.923-7.653z"/><path fill="#bfae6e" d="m20.392 38.08l10.581 1.903-1.923-5.743-10.575-1.658z"/><path fill="#919193" d="m56.708 12.193l-35.944-3.147-13.592 1.589-.644.075c-.701.129-1.355.394-1.931.77l47.689 5.166 4.966-2.157c4.142-2.028 4.608 1.617 4.608 1.617-.501-3.199-3.402-3.75-5.152-3.913"/><path fill="#bfae6e" d="m18.729 10.202c0-4.294 3.435-4.534 4.22-4.751.74-.206 1.203-.867 1.033-1.477-.169-.613-.88-.732-1.648-.732-2.269 0-6.251.999-6.251 6.96 0 .662 2.646.662 2.646 0"/><path fill="#65562d" d="m18.239 9.908c-.095-.587-.074-1.201.061-1.798.137-.597.424-1.174.846-1.64.424-.462.966-.809 1.545-1.01.577-.208 1.177-.277 1.769-.309-.557.223-1.122.379-1.628.641-.505.26-.972.576-1.338.989-.765.816-1.073 1.952-1.255 3.123"/><path fill="#5f6262" d="m43.726 6.877c-.143 1.696-1.634 2.958-3.331 2.817l-18.449-1.536c-1.695-.138-2.959-1.632-2.816-3.328.141-1.699 1.632-2.962 3.33-2.819l18.446 1.536c1.698.141 2.961 1.634 2.82 3.33"/><path fill="#343434" d="m43.726 6.877c-.088 1.053-1.536 1.794-3.234 1.65l-18.449-1.536c-1.694-.138-3-1.109-2.913-2.161.087-1.054 1.534-1.794 3.233-1.651l18.447 1.537c1.697.139 3 1.108 2.916 2.161"/><path fill="#bfae6e" d="m43.986 13.07c0-2.612-1.855-4.204-2.979-4.664-1.674-.687-.324-3.722 1.35-2.941 1.993.93 4.696 3.723 4.696 7.604.001.881-3.067.881-3.067.001"/><path fill="#65562d" d="m44.39 13.11c-.181-1.17-.545-2.255-1.168-3.203-.613-.948-1.42-1.771-2.414-2.407.581.138 1.115.446 1.59.815.479.369.886.83 1.218 1.338.656 1.021.963 2.283.774 3.457"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,55.6c0,3.6-9,3.4-9,3.4l-25.1-6.3c-1.8-0.4-3.2-2.3-3.2-4.3V27L62,29.1V55.6z" fill="#5f6262"/><path d="m60.2 13.4c0 0-1.4-.2-1.4-.2l-7 3.4-1 44.1c5.8-4.9 11.2-5 11.2-5v-38.4c0-1.6-.7-3-1.8-3.9" fill="#343434"/><path d="m52.2 56.7c0 3.6-2.6 5.9-5.7 5.2l-39.2-9.6c-2.3-.6-4.2-3.5-4.2-6.5v-32.3l49.1 3.2v40" fill="#5f6262"/><path d="m52.9 32.6c0 3.6-3 6.3-6.1 5.7l-39.3-6.5c-2.3-.4-4.2-3.2-4.2-6.2l1.3-13.2 48.5 3.9-.2 16.3" fill="#343434"/><path d="m4.6 11.5c-3.7 2.5-3.7 17.9 1.7 17.9l39.3 6.1c3.1.5 5.7-2.1 5.7-5.7 0 0-1.2-11.7 1-13.2l1.8-.8-49.5-4.3" fill="#5f6262"/><path fill="#65562d" d="m31 26.6l-10.6-1.4-1.9 7.4 1.9 5.5 10.6 1.9z"/><path fill="#f8ecc5" d="m20.4 25.2l-1.9 7.4 10.6 1.6 1.9-7.6z"/><path fill="#bfae6e" d="m20.4 38.1l10.6 1.9-1.9-5.8-10.6-1.6z"/><path d="m56.7 12.2l-35.9-3.2-13.6 1.6-.6.1c-.7.1-1.4.4-1.9.8l47.7 5.2 5-2.2c4.1-2 4.6 1.6 4.6 1.6-.6-3.2-3.5-3.7-5.3-3.9" fill="#919193"/><path d="m18.7 10.2c0-4.3 3.4-4.5 4.2-4.8.7-.2 1.2-.9 1-1.5-.2-.6-.9-.7-1.6-.7-2.3 0-6.3 1-6.3 7 .1.7 2.7.7 2.7 0" fill="#bfae6e"/><path d="m18.2 9.9c-.1-.6-.1-1.2.1-1.8.1-.6.4-1.2.8-1.6.4-.5 1-.8 1.5-1 .6-.2 1.2-.3 1.8-.3-.6.2-1.1.4-1.6.6-.5.3-1 .6-1.3 1-.8.8-1.1 1.9-1.3 3.1" fill="#65562d"/><path d="m43.7 6.9c-.1 1.7-1.6 3-3.3 2.8l-18.5-1.5c-1.7-.1-3-1.6-2.8-3.3.1-1.7 1.6-3 3.3-2.8l18.4 1.5c1.8.1 3.1 1.6 2.9 3.3" fill="#5f6262"/><path d="m43.7 6.9c-.1 1.1-1.5 1.8-3.2 1.6l-18.5-1.5c-1.7-.1-3-1.1-2.9-2.2.1-1.1 1.5-1.8 3.2-1.7l18.4 1.5c1.8.3 3.1 1.2 3 2.3" fill="#343434"/><path d="m44 13.1c0-2.6-1.9-4.2-3-4.7-1.7-.7-.3-3.7 1.3-2.9 2 .9 4.7 3.7 4.7 7.6.1.9-3 .9-3 0" fill="#bfae6e"/><path d="m44.4 13.1c-.2-1.2-.5-2.3-1.2-3.2-.6-.9-1.4-1.8-2.4-2.4.6.1 1.1.4 1.6.8.5.4.9.8 1.2 1.3.7 1.1 1 2.3.8 3.5" fill="#65562d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4bd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4bd.svg
index 74bde66..f37c163 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4bd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4bd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m63.999 57.6c0 3.534-2.864 6.399-6.4 6.399h-51.2c-3.533 0-6.4-2.865-6.4-6.399v-51.2c0-3.534 2.867-6.4 6.4-6.4h51.2c3.536 0 6.4 2.866 6.4 6.4v51.2z"/><circle fill="#42ade2" cx="31.999" cy="31.998" r="32"/><path fill="#fff" d="m31.999 40.37c-4.616 0-8.373-3.757-8.373-8.374s3.757-8.373 8.373-8.373c4.619 0 8.375 3.756 8.375 8.373s-3.756 8.374-8.375 8.374"/><path fill="#3e4347" d="m38.4 23.998c-3.533 0-6.4 2.866-6.4 6.4v3.2c0 3.534 2.867 6.399 6.4 6.399h25.6v-16h-25.6"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 57.6c0 3.5-2.9 6.4-6.4 6.4h-51.2c-3.5 0-6.4-2.9-6.4-6.4v-51.2c0-3.5 2.9-6.4 6.4-6.4h51.2c3.5 0 6.4 2.9 6.4 6.4v51.2" fill="#3e4347"/><circle cx="32" cy="32" r="32" fill="#42ade2"/><path d="m32 40.4c-4.6 0-8.4-3.8-8.4-8.4s3.8-8.4 8.4-8.4c4.6 0 8.4 3.8 8.4 8.4s-3.8 8.4-8.4 8.4" fill="#fff"/><path d="m38.4 24c-3.5 0-6.4 2.9-6.4 6.4v3.2c0 3.5 2.9 6.4 6.4 6.4h25.6v-16h-25.6" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4be.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4be.svg
index 1bebd74..9eba4f9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4be.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4be.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m61.29 9.292l-6.586-6.586c-.389-.388-1.157-.706-1.707-.706h-44v4h-4v-4h-2c-.55 0-1 .45-1 1v58c0 .549.45 1 1 1h58c.55 0 1-.451 1-1v-50c0-.55-.318-1.319-.707-1.708"/><path fill="#fff" d="m12 62v-28c0-1.099.9-2 2-2h36c1.1 0 2 .9 2 2v28h-40"/><path fill="#e8e8e8" d="m18 2v20c0 1.1.9 2 2 2h30c1.1 0 2-.9 2-2v-20h-34"/><path fill="#3e4347" d="m36 6h10v16h-10z"/><path fill="#fff" d="m59 56c0-.551-.45-1-1-1h-2c-.55 0-1 .449-1 1v2c0 .549.45 1 1 1h2c.55 0 1-.451 1-1v-2"/><g fill="#f15744"><path d="m12 54h40v8h-40z"/><path d="m17 35.999h30v2h-30z"/><path d="m17 42h30v2h-30z"/><path d="m17 48h30v2h-30z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.3 9.3l-6.6-6.6c-.4-.4-1.2-.7-1.7-.7h-44v4h-4v-4h-2c-.5 0-1 .5-1 1v58c0 .5.5 1 1 1h58c.5 0 1-.5 1-1v-50c0-.6-.3-1.3-.7-1.7" fill="#3e4347"/><path d="m12 62v-28c0-1.1.9-2 2-2h36c1.1 0 2 .9 2 2v28h-40" fill="#fff"/><path d="m18 2v20c0 1.1.9 2 2 2h30c1.1 0 2-.9 2-2v-20h-34" fill="#e8e8e8"/><path fill="#3e4347" d="m36 6h10v16h-10z"/><path d="m59 56c0-.6-.5-1-1-1h-2c-.5 0-1 .4-1 1v2c0 .5.5 1 1 1h2c.5 0 1-.5 1-1v-2" fill="#fff"/><g fill="#f15744"><path d="m12 54h40v8h-40z"/><path d="m17 36h30v2h-30z"/><path d="m17 42h30v2h-30z"/><path d="m17 48h30v2h-30z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4bf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4bf.svg
index 3f8b024..eac0a2a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4bf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4bf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#d0d0d0" cx="32" cy="32" r="30"/><g fill="#fff"><circle cx="32" cy="32" r="6.637"/><path d="m32.24 42.613l9.19 13.635c6.772-2.643 12.174-8.05 14.817-14.816l-13.634-9.192c-.127 5.665-4.709 10.246-10.373 10.373"/><path d="m31.761 21.387l-9.192-13.635c-6.771 2.644-12.174 8.05-14.816 14.818l13.635 9.189c.126-5.663 4.708-10.245 10.373-10.372"/></g><path fill="#94989b" d="m32 44.96c-7.146 0-12.96-5.813-12.96-12.96 0-7.145 5.813-12.959 12.96-12.959 7.146 0 12.959 5.814 12.959 12.959 0 7.146-5.814 12.96-12.959 12.96m0-23.265c-5.683 0-10.305 4.623-10.305 10.305s4.622 10.305 10.305 10.305c5.682 0 10.305-4.623 10.305-10.305s-4.623-10.305-10.305-10.305"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#d0d0d0"/><g fill="#fff"><circle cx="32" cy="32" r="6.6"/><path d="m32.2 42.6l9.2 13.6c6.8-2.6 12.2-8 14.8-14.8l-13.6-9.2c-.1 5.7-4.7 10.3-10.4 10.4"/><path d="m31.8 21.4l-9.2-13.6c-6.8 2.6-12.2 8-14.8 14.8l13.6 9.2c.1-5.7 4.7-10.3 10.4-10.4"/></g><path d="m32 45c-7.1 0-13-5.8-13-13 0-7.1 5.8-13 13-13 7.1 0 13 5.8 13 13 0 7.1-5.9 13-13 13m0-23.3c-5.7 0-10.3 4.6-10.3 10.3s4.6 10.3 10.3 10.3c5.7 0 10.3-4.6 10.3-10.3s-4.6-10.3-10.3-10.3" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c0.svg
index a341495..2547f71 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#c28fef" cx="32" cy="32" r="30"/><circle fill="#fff" cx="32" cy="32" r="6.637"/><g fill="#ffc7ce"><path d="m32.24 42.613l9.191 13.635c6.771-2.643 12.174-8.05 14.816-14.816l-13.634-9.192c-.127 5.666-4.708 10.246-10.373 10.373"/><path d="m31.761 21.386l-9.191-13.634c-6.772 2.644-12.174 8.04-14.817 14.818l13.635 9.189c.127-5.664 4.709-10.246 10.373-10.373"/></g><path fill="#9450e0" d="m32 44.961c-7.146 0-12.959-5.814-12.959-12.961 0-7.145 5.813-12.959 12.959-12.959 7.146 0 12.96 5.814 12.96 12.959 0 7.146-5.814 12.961-12.96 12.961m0-23.265c-5.682 0-10.305 4.622-10.305 10.304 0 5.682 4.623 10.305 10.305 10.305 5.683 0 10.305-4.623 10.305-10.305 0-5.682-4.622-10.304-10.305-10.304"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#c28fef"/><circle cx="32" cy="32" r="6.6" fill="#fff"/><g fill="#ffc7ce"><path d="m32.2 42.6l9.2 13.6c6.8-2.6 12.2-8 14.8-14.8l-13.6-9.2c-.1 5.7-4.7 10.3-10.4 10.4"/><path d="m31.8 21.4l-9.2-13.6c-6.8 2.6-12.2 8-14.8 14.8l13.6 9.2c.1-5.7 4.7-10.3 10.4-10.4"/></g><path d="m32 45c-7.1 0-13-5.8-13-13 0-7.1 5.8-13 13-13s13 5.8 13 13c0 7.1-5.9 13-13 13m0-23.3c-5.7 0-10.3 4.6-10.3 10.3s4.6 10.3 10.3 10.3c5.7 0 10.3-4.6 10.3-10.3s-4.6-10.3-10.3-10.3" fill="#9450e0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c1.svg
index a403bef..8eaf3c9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#962c2c" d="m54.36.171l-24.603 8.552c0 0-.884-1.97-1.702-3.149-1.912-2.75-5.179-1.905-5.179-1.905l-18.766 6.103c0 0-2.592 1.086-3.649 3.965-1.042 2.838 0 6.298 0 6.298l10.843 43.965 43.06-37.551c0 0 1.44-16.757 2.303-24.524.303-2.736-2.304-1.754-2.304-1.754"/><path fill="#9aabaf" d="M53.619 24.855 57.52.171 3.369 20.501 11.25 63.48z"/><path fill="#b3c0c4" d="M54.939 27.81 58.846.911 4.689 22.06 11.25 63.48z"/><path fill="#c5cfd3" d="M55.913 28.587 60.3 1.415 5.787 23.598 11.25 63.48z"/><path fill="#d9e3e8" d="m57.11 29.714l4.17-27.29-54.42 22.934 4.393 38.12z"/><path fill="#ff8736" d="m11.306 64l47.12-33.35 5.526-24.839c0 0 .274-.804-.521-1.75-.556-.661-1.528-.389-1.528-.389l-25.16 10.652c0 0-1.494 6.03-4.519 7.606-3.3 1.725-18.766 9.343-18.766 9.343s-2.204 1.31-3.475 3.419c-1.216 2.02-1.39 4.51-1.39 4.51l2.711 24.801"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54.4.2l-24.6 8.5c0 0-.9-2-1.7-3.1-1.9-2.8-5.2-1.9-5.2-1.9l-18.8 6.1c0 0-2.6 1.1-3.6 4-1 2.8 0 6.3 0 6.3l10.8 44 43.1-37.6c0 0 1.4-16.8 2.3-24.5.3-2.8-2.3-1.8-2.3-1.8" fill="#962c2c"/><path fill="#9aabaf" d="m53.6 24.9l3.9-24.7-54.1 20.3 7.8 43z"/><path fill="#b3c0c4" d="M54.9 27.8 58.8.9 4.7 22.1 11.2 63.5z"/><path fill="#c5cfd3" d="m55.9 28.6l4.4-27.2-54.5 22.2 5.4 39.9z"/><path fill="#d9e3e8" d="m57.1 29.7l4.2-27.3-54.4 23 4.3 38.1z"/><path d="m11.3 64l47.1-33.4 5.6-24.8c0 0 .3-.8-.5-1.8-.6-.7-1.5-.4-1.5-.4l-25.3 10.7c0 0-1.5 6-4.5 7.6-3.3 1.7-18.8 9.3-18.8 9.3s-2.2 1.3-3.5 3.4c-1.2 2-1.4 4.5-1.4 4.5l2.8 24.9" fill="#ff8736"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c2.svg
index ae1cdbb..85fc741 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#962c2c" d="m49.25.172l-22.291 8.552c0 0-.801-1.97-1.543-3.149-1.731-2.75-4.691-1.905-4.691-1.905l-17 6.103c0 0-2.348 1.086-3.306 3.965-.945 2.838 0 6.298 0 6.298l9.822 43.964 39.01-37.551c0 0 1.305-16.757 2.086-24.524.275-2.735-2.086-1.753-2.086-1.753"/><path fill="#ff8736" d="m10.242 64l42.693-33.35c0 0 10.635-21.438 10.997-22.971.435-1.833-1.386-1.222-1.386-1.222l-22.793 10.652c0 0-1.354 6.03-4.094 7.606-2.989 1.725-17 9.342-17 9.342s-1.997 1.311-3.148 3.421c-1.102 2.02-5.268 26.525-5.268 26.525"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m49.3.2l-22.3 8.5c0 0-.8-2-1.5-3.1-1.7-2.8-4.7-1.9-4.7-1.9l-17 6.1c0 0-2.3 1.1-3.3 4-.9 2.8 0 6.3 0 6.3l9.8 44 39-37.6c0 0 1.3-16.8 2.1-24.5.2-2.8-2.1-1.8-2.1-1.8" fill="#962c2c"/><path d="m10.2 64l42.7-33.4c0 0 10.6-21.4 11-23 .4-1.8-1.4-1.2-1.4-1.2l-22.7 10.7c0 0-1.4 6-4.1 7.6-3 1.7-17 9.3-17 9.3s-2 1.3-3.1 3.4c-1.2 2.1-5.4 26.6-5.4 26.6" fill="#ff8736"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c3.svg
index 7b7b63e..46b14fc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d9e3e8" d="m0 8.83c16.295 11.774 10.721 33.872 19.901 49 2.67-1.769 5.344-3.538 8.01-5.308 1.67 2.748 3.857 5.25 6.816 7.389 7.898-6.096 15.797-12.192 23.695-18.288-3.816-2.759-5.994-6.292-7.408-10.186-3.864-10.618-2.063-23.911-12.477-31.438-12.845 2.943-25.693 5.887-38.539 8.83"/><g fill="#7d8b91"><path d="m11.03 14.14c.504.736.965 1.492 1.391 2.264 9.135-2.819 18.272-5.638 27.406-8.457-.336-.611-.703-1.209-1.1-1.792-9.231 2.662-18.464 5.324-27.697 7.985"/><path d="m15.264 23.24c8.938-3.296 17.877-6.592 26.813-9.887-.209-.672-.434-1.337-.68-1.991-8.998 3.121-17.996 6.242-26.992 9.361.312.828.597 1.667.859 2.517"/><path d="m17.06 30.581c8.803-3.803 17.605-7.606 26.408-11.408-.141-.705-.287-1.405-.443-2.102-8.844 3.618-17.683 7.236-26.527 10.854.2.878.384 1.765.562 2.656"/></g><path fill="#d9e3e8" d="m16.77 50.99c1.443 4.233 3.497 8.179 6.747 11.559 1.795 1.885 5.379 1.888 7.441.273 2.072-1.619 1.992-4.145.338-5.887-3.039-3.16-4.959-6.852-6.309-10.811-2.738 1.624-5.479 3.245-8.217 4.866"/><path opacity=".5" fill="#333" d="m18.942 48.984c.125 5.375 1.324 10.185 4.574 13.564 1.795 1.885 5.379 1.888 7.441.273 2.072-1.619 1.992-4.145.338-5.887-3.039-3.16 20.261-24.07 18.914-28.02-2.74 1.624-21.433 12.99-31.27 20.07"/><path fill="#b0bdc6" d="m24.22 43.66c1.316 4.682 3.24 9.08 6.615 12.786 1.834 2.044 2.191 4.754.121 6.376 10.412-8.04 20.824-16.07 31.24-24.11 2.068-1.619 2.301-3.927.996-5.382-2.406-2.643-3.775-5.777-4.715-9.113-15.939 9.05-27.28 15.482-34.25 19.441"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 8.8c16.3 11.8 10.7 33.9 19.9 49 2.7-1.8 5.3-3.5 8-5.3 1.7 2.7 3.9 5.2 6.8 7.4 7.9-6.1 15.8-12.2 23.7-18.3-3.8-2.8-6-6.3-7.4-10.2-3.8-10.6-2-23.9-12.5-31.4-12.8 2.9-25.7 5.9-38.5 8.8" fill="#d9e3e8"/><g fill="#7d8b91"><path d="m11 14.1c.5.7 1 1.5 1.4 2.3 9.1-2.8 18.3-5.6 27.4-8.5-.3-.6-.7-1.2-1.1-1.8-9.2 2.7-18.4 5.4-27.7 8"/><path d="m15.3 23.2c8.9-3.3 17.9-6.6 26.8-9.9-.2-.7-.4-1.3-.7-2-9 3.1-18 6.2-27 9.4.3.9.6 1.7.9 2.5"/><path d="m17.1 30.6c8.8-3.8 17.6-7.6 26.4-11.4-.1-.7-.3-1.4-.4-2.1-8.8 3.6-17.7 7.2-26.5 10.9.1.8.3 1.7.5 2.6"/></g><path d="m16.8 51c1.4 4.2 3.5 8.2 6.7 11.6 1.8 1.9 5.4 1.9 7.4.3 2.1-1.6 2-4.1.3-5.9-3-3.2-5-6.9-6.3-10.8-2.7 1.5-5.4 3.2-8.1 4.8" fill="#d9e3e8"/><path d="m18.9 49c.1 5.4 1.3 10.2 4.6 13.6 1.8 1.9 5.4 1.9 7.4.3 2.1-1.6 2-4.1.3-5.9-3-3.2 20.3-24.1 18.9-28-2.6 1.5-21.3 12.9-31.2 20" opacity=".5" fill="#333"/><path d="m24.2 43.7c1.3 4.7 3.2 9.1 6.6 12.8 1.8 2 2.2 4.8.1 6.4 10.4-8 20.8-16.1 31.2-24.1 2.1-1.6 2.3-3.9 1-5.4-2.4-2.6-3.8-5.8-4.7-9.1-15.9 9-27.2 15.4-34.2 19.4" fill="#b0bdc6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c4.svg
index 7cfc48e..b782c61 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d9e3e8" d="m0 0c17.302 17.05 6.697 46.953 24 64 12.729-8.352 27.27-16.648 40-25-7.652-7.539-8.296-18.363-10-28-7.939-3.03-16.6-6.951-29-11h-25"/><g fill="#7d8b91"><path d="m13.04 9.02c.418.813.8 1.641 1.146 2.48 5.411-.988 10.819-1.975 16.229-2.962-.3-.73-.632-1.448-.995-2.157-5.461.88-10.922 1.759-16.38 2.639"/><path d="m16.39 18.801c5.313-1.305 10.627-2.611 15.941-3.916-.166-.779-.349-1.55-.556-2.313-5.342 1.189-10.682 2.379-16.02 3.568.237.88.449 1.766.64 2.661"/><path d="m17.587 26.46c10.524-3.278 21.05-6.557 31.571-9.834-.077-.682-.164-1.362-.259-2.04-10.556 3.038-21.11 6.076-31.663 9.113.129.917.243 1.837.351 2.761"/></g><path opacity=".5" fill="#333" d="m25 0c4.854 4.784 2.92 17.885 4 24 7.05-1.857 17.954-11.144 25-13-7.939-3.03-16.6-6.951-29-11"/><path fill="#7d8b91" d="m22.11 51.32c.354.838.743 1.664 1.17 2.475 5.02-2.83 10.03-5.66 15.04-8.49-.371-.705-.709-1.422-1.017-2.15-5.064 2.722-10.128 5.443-15.194 8.165"/><path fill="#d9e3e8" d="m25 0c4.854 4.784 6.6 10.571 7.68 16.686 7.05-1.857 14.274-3.83 21.32-5.686-7.939-3.03-16.6-6.951-29-11"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 0c17.3 17 6.7 47 24 64 12.7-8.4 27.3-16.6 40-25-7.7-7.5-8.3-18.4-10-28-7.9-3-16.6-7-29-11h-25" fill="#d9e3e8"/><g fill="#7d8b91"><path d="m13 9c.4.8.8 1.6 1.1 2.5 5.4-1 10.8-2 16.2-3-.3-.7-.6-1.4-1-2.2-5.3 1-10.8 1.8-16.3 2.7"/><path d="m16.4 18.8c5.3-1.3 10.6-2.6 15.9-3.9-.2-.8-.3-1.6-.6-2.3-5.3 1.2-10.7 2.4-16 3.6.3.8.5 1.7.7 2.6"/><path d="m17.6 26.5c10.5-3.3 21.1-6.6 31.6-9.8-.1-.7-.2-1.4-.3-2-10.6 3-21.1 6.1-31.7 9.1.2.8.3 1.7.4 2.7"/></g><path d="m25 0c4.9 4.8 2.9 17.9 4 24 7-1.9 18-11.1 25-13-7.9-3-16.6-7-29-11" opacity=".5" fill="#333"/><path d="m22.1 51.3c.4.8.7 1.7 1.2 2.5 5-2.8 10-5.7 15-8.5-.4-.7-.7-1.4-1-2.2-5.1 2.8-10.1 5.5-15.2 8.2" fill="#7d8b91"/><path d="m25 0c4.9 4.8 6.6 10.6 7.7 16.7 7-1.9 14.3-3.8 21.3-5.7-7.9-3-16.6-7-29-11" fill="#d9e3e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c5.svg
index 2521c1f..5b18759 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="none" stroke="#ba9372" stroke-miterlimit="10" d="m2.909 19.16c0 0 24.822-14.91 28-14.91s29.18 14.91 29.18 14.91"/><path fill="#93a2aa" d="m64 56.793c0 1.634-1.301 2.959-2.907 2.959h-56.01c-1.606 0-2.909-1.325-2.909-2.959v-35.676c0-1.634 1.303-2.959 2.909-2.959h56.01c1.606 0 2.907 1.325 2.907 2.959v35.676"/><path fill="#ed4c5c" d="m61.824 21.12c0-1.634-1.304-2.959-2.91-2.959h-56.01c-1.606 0-2.909 1.325-2.909 2.959v9.457h61.824v-9.457"/><path fill="#d9e3e8" d="M0,30.574v26.219c0,1.634,1.303,2.959,2.909,2.959h56.005c1.606,0,2.91-1.325,2.91-2.959V30.574H0z"/><g fill="#fff"><path d="m3.104 26.05c.045.319.132.557.261.715.239.287.646.43 1.221.43.346 0 .626-.038.841-.114.409-.145.613-.415.613-.809 0-.23-.102-.408-.301-.534-.2-.123-.518-.231-.952-.327l-.742-.165c-.729-.164-1.23-.342-1.503-.535-.462-.322-.693-.824-.693-1.509 0-.624.227-1.143.678-1.556.453-.413 1.117-.62 1.992-.62.731 0 1.354.195 1.872.584.516.39.786.955.813 1.696h-1.38c-.025-.419-.21-.717-.552-.895-.229-.116-.515-.175-.854-.175-.378 0-.68.076-.906.228-.225.151-.338.362-.338.634 0 .249.111.435.334.558.143.082.447.178.91.289l1.204.289c.525.126.922.294 1.185.506.408.328.614.803.614 1.424 0 .637-.243 1.167-.728 1.587-.484.422-1.168.631-2.052.631-.903 0-1.612-.207-2.13-.621-.517-.415-.775-.985-.775-1.711h1.368"/><path d="m13.494 22.466h-3.628v1.48h3.33v1.211h-3.33v1.792h3.795v1.254h-5.194v-6.973h5.03v1.236"/><path d="m19.38 25.19c-.4.34-.975.51-1.72.51h-1.427v2.508h-1.423v-6.974h2.943c.68 0 1.22.18 1.624.54.402.359.605.916.605 1.67 0 .823-.201 1.405-.602 1.746m-1.094-2.512c-.182-.155-.436-.232-.763-.232h-1.29v2.053h1.29c.327 0 .581-.084.763-.251s.272-.432.272-.794c.001-.363-.09-.622-.272-.776"/><path d="m26.11 21.23v1.235h-2.051v5.738h-1.442v-5.738h-2.061v-1.235h5.554"/><path d="m32.02 22.466h-3.629v1.48h3.33v1.211h-3.33v1.792h3.796v1.254h-5.195v-6.973h5.03v1.236"/><path d="m37.851 21.23h2.06v6.974h-1.333v-4.717c0-.135.001-.325.005-.57.003-.244.004-.433.004-.565l-1.299 5.852h-1.393l-1.29-5.852c0 .132.001.321.004.565.004.245.005.435.005.57v4.717h-1.334v-6.974h2.083l1.248 5.483 1.24-5.483"/><path d="m46.35 21.973c.21.297.316.651.316 1.064 0 .426-.106.769-.318 1.027-.119.146-.294.278-.523.397.35.129.615.334.792.615.179.28.267.621.267 1.022 0 .413-.102.784-.304 1.111-.13.218-.292.401-.486.549-.219.171-.477.287-.774.351-.299.063-.62.095-.969.095h-3.089v-6.974h3.313c.834.014 1.427.261 1.775.743m-3.723.469v1.538h1.668c.296 0 .539-.058.724-.173.187-.115.279-.32.279-.613 0-.325-.122-.539-.369-.643-.211-.073-.48-.109-.81-.109h-1.492m0 2.691v1.859h1.664c.299 0 .529-.041.695-.123.301-.151.451-.441.451-.87 0-.363-.146-.612-.437-.748-.164-.076-.393-.115-.686-.119h-1.687z"/><path d="m53.19 22.466h-3.629v1.48h3.33v1.211h-3.33v1.792h3.796v1.254h-5.195v-6.973h5.03v1.236"/><path d="m58.861 21.411c.254.11.467.273.643.487.146.177.261.372.344.586.086.214.129.459.129.734 0 .331-.082.656-.248.976-.163.32-.435.546-.813.679.315.129.54.313.672.551.133.238.197.602.197 1.09v.468c0 .32.013.535.038.648.037.18.126.313.265.398v.175h-1.582c-.043-.155-.074-.28-.093-.374-.037-.195-.058-.396-.061-.601l-.01-.648c-.005-.445-.08-.741-.227-.89-.144-.148-.417-.223-.816-.223h-1.397v2.735h-1.4v-6.972h3.279c.468.011.829.07 1.08.181m-2.959 1.031v1.873h1.541c.307 0 .536-.038.689-.113.27-.133.405-.395.405-.786 0-.422-.131-.707-.394-.852-.146-.082-.367-.123-.661-.123h-1.58z"/></g><g fill="#93a2aa"><path d="m2.685 32.957h6.361v2.219h-6.361z"/><path d="m11.03 32.957h6.361v2.219h-6.361z"/><path d="m19.382 32.957h6.362v2.219h-6.362z"/><path d="m27.731 32.957h6.361v2.219h-6.361z"/><path d="m36.08 32.957h6.361v2.219h-6.361z"/><path d="m44.43 32.957h6.362v2.219h-6.362z"/><path d="m52.778 32.957h6.361v2.219h-6.361z"/><path d="m27.731 37.4h6.361v2.22h-6.361z"/><path d="m36.08 37.4h6.361v2.22h-6.361z"/><path d="m44.43 37.4h6.362v2.22h-6.362z"/><path d="m52.778 37.4h6.361v2.22h-6.361z"/><path d="m2.685 41.834h6.361v2.219h-6.361z"/><path d="m11.03 41.834h6.361v2.219h-6.361z"/><path d="m19.382 41.834h6.362v2.219h-6.362z"/><path d="m27.731 41.834h6.361v2.219h-6.361z"/><path d="m36.08 41.834h6.361v2.219h-6.361z"/><path d="m44.43 41.834h6.362v2.219h-6.362z"/><path d="m52.778 41.834h6.361v2.219h-6.361z"/><path d="m2.685 46.27h6.361v2.22h-6.361z"/><path d="m11.03 46.27h6.361v2.22h-6.361z"/><path d="m19.382 46.27h6.362v2.22h-6.362z"/><path d="m27.731 46.27h6.361v2.22h-6.361z"/><path d="m36.08 46.27h6.361v2.22h-6.361z"/><path d="m44.43 46.27h6.362v2.22h-6.362z"/><path d="m52.778 46.27h6.361v2.22h-6.361z"/><path d="m2.685 50.711h6.361v2.219h-6.361z"/><path d="m11.03 50.711h6.361v2.219h-6.361z"/><path d="m19.382 50.711h6.362v2.219h-6.362z"/><path d="m27.731 50.711h6.361v2.219h-6.361z"/><path d="m36.08 50.711h6.361v2.219h-6.361z"/><path d="m44.43 50.711h6.362v2.219h-6.362z"/><path d="m52.778 50.711h6.361v2.219h-6.361z"/><path d="m2.685 55.15h6.361v2.22h-6.361z"/><path d="m11.03 55.15h6.361v2.22h-6.361z"/><path d="m19.382 55.15h6.362v2.22h-6.362z"/><path d="m27.731 55.15h6.361v2.22h-6.361z"/><path d="m36.08 55.15h6.361v2.22h-6.361z"/><path d="m44.43 55.15h6.362v2.22h-6.362z"/></g><circle fill="#333" cx="31.14" cy="6.248" r="1.945"/><circle fill="#93a2aa" cx="30.912" cy="6.248" r="1.945"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.1 19.6c-9.8-6-25-14.8-27.1-14.8-2.1 0-16.7 8.9-26 14.8l-.5-.9c2.4-1.5 23.5-14.9 26.5-14.9 3 0 25.1 13.4 27.6 15l-.5.8" fill="#ba9372"/><path d="m62 56.8c0 1.6-1.2 3-2.7 3h-52.5c-1.5 0-2.7-1.3-2.7-3v-35.7c0-1.6 1.2-3 2.7-3h52.5c1.5 0 2.7 1.3 2.7 3 0 0 0 35.7 0 35.7" fill="#93a2aa"/><path d="M60,21.1c0-1.6-1.2-3-2.7-3H4.7c-1.5,0-2.7,1.3-2.7,3v9.5h58V21.1z" fill="#ed4c5c"/><path d="M2,30.6v26.2c0,1.6,1.2,3,2.7,3h52.5c1.5,0,2.7-1.3,2.7-3V30.6H2z" fill="#d9e3e8"/><g fill="#93a2aa"><path d="m4.5 33h6v2.2h-6z"/><path d="m12.3 33h6v2.2h-6z"/><path d="m20.2 33h6v2.2h-6z"/><path d="m28 33h6v2.2h-6z"/><path d="m35.8 33h6v2.2h-6z"/><path d="m43.7 33h6v2.2h-6z"/><path d="m51.5 33h6v2.2h-6z"/><path d="m28 37.4h6v2.2h-6z"/><path d="m35.8 37.4h6v2.2h-6z"/><path d="m43.7 37.4h6v2.2h-6z"/><path d="m51.5 37.4h6v2.2h-6z"/><path d="m4.5 41.8h6v2.2h-6z"/><path d="m12.3 41.8h6v2.2h-6z"/><path d="m20.2 41.8h6v2.2h-6z"/><path d="m28 41.8h6v2.2h-6z"/><path d="m35.8 41.8h6v2.2h-6z"/><path d="m43.7 41.8h6v2.2h-6z"/><path d="m51.5 41.8h6v2.2h-6z"/><path d="m4.5 46.3h6v2.2h-6z"/><path d="m12.3 46.3h6v2.2h-6z"/><path d="m20.2 46.3h6v2.2h-6z"/><path d="m28 46.3h6v2.2h-6z"/><path d="m35.8 46.3h6v2.2h-6z"/><path d="m43.7 46.3h6v2.2h-6z"/><path d="m51.5 46.3h6v2.2h-6z"/><path d="m4.5 50.7h6v2.2h-6z"/><path d="m12.3 50.7h6v2.2h-6z"/><path d="m20.2 50.7h6v2.2h-6z"/><path d="m28 50.7h6v2.2h-6z"/><path d="m35.8 50.7h6v2.2h-6z"/><path d="m43.7 50.7h6v2.2h-6z"/><path d="m51.5 50.7h6v2.2h-6z"/><path d="m4.5 55.1h6v2.2h-6z"/><path d="m12.3 55.1h6v2.2h-6z"/><path d="m20.2 55.1h6v2.2h-6z"/><path d="m28 55.1h6v2.2h-6z"/><path d="m35.8 55.1h6v2.2h-6z"/><path d="m43.7 55.1h6v2.2h-6z"/></g><ellipse cx="31.2" cy="6.2" rx="1.8" ry="1.9" fill="#333"/><ellipse cx="31" cy="6.2" rx="1.8" ry="1.9" fill="#93a2aa"/><g fill="#fff"><path d="m19.5 25.5v.2c0 .6.1 1 .2 1.3.1.2.3.4.7.4.4 0 .6-.1.7-.4.1-.2.1-.4.1-.8v-5.5h1.6v5.4c0 .7-.1 1.2-.3 1.6-.4.7-1 1-2 1-1 0-1.6-.3-2-.8-.3-.5-.5-1.3-.5-2.2v-.2c0 0 1.5 0 1.5 0"/><path d="m24.5 20.7h1.6v4.8c0 .5.1.9.2 1.2.2.4.6.7 1.3.7.6 0 1.1-.2 1.3-.7.1-.3.1-.7.1-1.2v-4.8h1.6v4.8c0 .8-.1 1.5-.4 1.9-.5.8-1.4 1.3-2.7 1.3-1.3 0-2.2-.4-2.7-1.3-.3-.5-.4-1.1-.4-1.9.1 0 .1-4.8.1-4.8"/><path d="m32.2 20.7h1.6v6.4h3.8v1.4h-5.4v-7.8"/><path d="m42.2 20.7h1.8l-2.6 4.9v2.9h-1.6v-2.9l-2.7-4.9h1.9l1.6 3.4 1.6-3.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c6.svg
index c60be18..a82a590 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#819096"><path d="m0 34.36h3.794v6.307h-3.794z"/><path d="m60.02 17.479h3.795v6.306h-3.795z"/><path d="m61.49 21.02l-34.521-12.211c-1.515-.536-3.411-.09-4.249 1.013l-9.489 12.446-12.512 16.408c-1.255 1.648-.837 3.652.97 4.451l41.879 18.501c2.146.948 4.602.032 5.455-2.01l8.38-20.12 6.25-14.999c.55-1.317-.426-2.869-2.163-3.484"/></g><path fill="#ed4c5c" d="m63.66 18.18c.55-1.316-.426-2.868-2.163-3.483l-34.521-12.212c-1.515-.537-3.411-.09-4.249 1.013l-9.489 12.446 44.17 17.235 6.249-14.999"/><path fill="#cad5dd" d="m13.234 15.945l-12.511 16.408c-1.255 1.649-.837 3.653.97 4.451l41.879 18.502c2.146.947 4.602.031 5.455-2.01l8.381-20.12-44.17-17.236"/><path opacity=".5" fill="#333" d="m2.353 30.22c-1.255 1.65.355 4.112 1.582 5.243 5.01 4.614 24.527 13.172 24.527 13.172l-26.11-18.415"/><g fill="#fff"><path d="m28.362 16.963c-.139.308-.181.565-.122.767.104.371.496.687 1.173.946.407.156.762.248 1.063.274.567.051.967-.108 1.197-.474.133-.212.118-.421-.045-.627-.164-.201-.474-.442-.928-.722l-.77-.477c-.751-.47-1.227-.849-1.427-1.139-.345-.487-.311-1.03.087-1.629.365-.543.919-.895 1.67-1.059.748-.164 1.617-.062 2.616.309.839.31 1.446.744 1.831 1.305.384.564.392 1.183.013 1.855l-1.608-.603c.207-.383.159-.727-.141-1.029-.197-.202-.493-.375-.883-.521-.436-.162-.824-.224-1.169-.189-.343.035-.594.171-.75.408-.142.219-.121.431.063.636.118.135.414.353.889.651l1.234.785c.542.346.912.675 1.1.982.296.481.271 1.01-.083 1.586-.367.594-.96.981-1.786 1.156-.825.175-1.765.061-2.815-.345-1.068-.412-1.777-.929-2.13-1.547-.352-.614-.305-1.25.136-1.907l1.585.608"/><path d="m42.613 18.314l-4.308-1.609-.796 1.346 3.982 1.5-.635 1.137-4.01-1.519-.995 1.688 4.616 1.767-.678 1.227-6.34-2.444 3.868-6.408 5.919 2.193-.623 1.122"/><path d="m48.45 23.598c-.668.145-1.47.039-2.395-.313l-1.767-.671-1.308 2.468-1.772-.685 3.597-6.625 3.55 1.314c.827.306 1.4.718 1.727 1.236.326.523.314 1.145-.043 1.865-.392.795-.923 1.268-1.589 1.411m-.133-2.922c-.149-.229-.422-.417-.82-.566l-1.573-.586-1.022 1.936 1.586.599c.403.152.76.19 1.065.115.305-.078.547-.29.723-.637.174-.346.189-.632.041-.861"/></g><path fill="#d9e3e8" d="m13.234 15.945c0 0-4.02 5.699-7.444 7.262-2.515 1.147-4.093-.018-4.643 1.875-3.297 11.396 42.17 30.535 42.17 30.535 2.147.947 4.603.031 5.456-2.01l8.629-20.426-44.17-17.235"/><g fill="#333"><path d="m18.822 26.442l1.322-1.954c1.151.411 1.979.667 2.481.768.805.162 1.558.143 2.256-.058.479-.136.935-.39 1.367-.756.258-.221.425-.395.507-.518l3.01 1.188-9.775 15.936-3.976-1.727 7.145-11.12-4.333-1.76"/><path d="m32.1 31.839l1.188-2.072c1.206.432 2.073.702 2.593.807.833.169 1.602.147 2.297-.066.476-.146.918-.414 1.331-.804.243-.234.4-.418.471-.55l3.162 1.25-8.661 16.938-4.205-1.825 6.388-11.821-4.564-1.857"/></g><path fill="#c7d3d8" d="m63.799 17.207c.321-1.046.576-1.965-1.885-2.636l-34.941-12.09c-2.188-.846-3.02-.638-4.249 1.013l-2.894 3.435 42.21 15.13 1.761-4.862"/><path fill="#93a2aa" d="m62.04 22.07v6.317l1.772-4.277.188-7.823z"/><g fill="#69787c"><ellipse cx="33.588" cy="8.189" rx="1.683" ry="1.443"/><ellipse cx="49.34" cy="13.901" rx="1.683" ry="1.443"/></g><path fill="#e8edef" d="m35.22 7.844l13.256 4.818c0 0 .491.313.237 2.58-.54-.106-.97-.884-.97-.884l-13.313-4.92c0 0-.174-.323.79-1.594"/><path fill="#93a2aa" d="m34.83 8.361l13.256 4.819c0 0 .343.424.31 1.921-.434-.271-.652-.743-.652-.743l-13.314-4.92c0 0-.164-.245.4-1.077"/><path fill="#69787c" d="m19.83 7.295v-.361l42.21 15.14v6.63l-.126-.015.012-6.348z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#819096"><path d="m2 34.2h3.6v5.9h-3.6z"/><path d="m58.3 18.4h3.6v5.9h-3.6z"/><path d="m59.7 21.7l-32.4-11.3c-1.4-.5-3.2-.1-4 .9l-8.9 11.6-11.7 15.3c-1.2 1.5-.8 3.4.9 4.2l39.3 17.3c2 .9 4.3 0 5.1-1.9l7.8-18.8 5.9-14c.5-1.2-.4-2.7-2-3.3"/></g><path d="m61.7 19.1c.5-1.2-.4-2.7-2-3.3l-32.4-11.3c-1.4-.5-3.2-.1-4 .9l-8.9 11.6 41.4 16.1 5.9-14" fill="#ed4c5c"/><path d="m14.4 17l-11.7 15.3c-1.2 1.5-.8 3.4.9 4.2l39.3 17.3c2 .9 4.3 0 5.1-1.9l7.9-18.8-41.5-16.1" fill="#cad5dd"/><path d="m4.2 30.3c-1.2 1.5.3 3.8 1.5 4.9 4.7 4.3 23 12.3 23 12.3l-24.5-17.2" opacity=".5" fill="#333"/><path d="m14.4 17c0 0-3.8 5.3-7 6.8-2.4 1.1-3.8 0-4.4 1.8-3 10.6 39.6 28.4 39.6 28.4 2 .9 4.3 0 5.1-1.9l8.1-19.1-41.4-16" fill="#d9e3e8"/><path d="m61.8 18.2c.3-1 .5-1.8-1.8-2.5l-32.7-11.2c-2.1-.8-2.8-.6-4 .9l-2.7 3.2 39.6 14.1 1.6-4.5" fill="#c7d3d8"/><path fill="#93a2aa" d="m60.2 22.7v5.9l1.6-4 .2-7.3z"/><g fill="#69787c"><ellipse cx="33.5" cy="9.8" rx="1.6" ry="1.3"/><ellipse cx="48.3" cy="15.1" rx="1.6" ry="1.3"/></g><path d="m35 9.5l12.4 4.5c0 0 .5.3.2 2.4-.5-.1-.9-.8-.9-.8l-12.5-4.6c.1-.1-.1-.4.8-1.5" fill="#e8edef"/><path d="m34.7 9.9l12.4 4.5c0 0 .3.4.3 1.8-.4-.3-.6-.7-.6-.7l-12.5-4.6c0 0-.2-.2.4-1" fill="#93a2aa"/><path fill="#69787c" d="m20.6 8.9v-.3l39.6 14.1v6.2h-.2l.1-5.9z"/><g fill="#fff"><path d="m28.3 17.9l-.1.1c-.3.5-.4.9-.4 1.1 0 .2.1.4.5.6.3.1.6.1.8-.1.1-.1.3-.3.5-.7l2.6-4.7 1.5.5-2.7 4.9c-.3.6-.7 1-1.1 1.2-.7.4-1.4.5-2.3.1-.9-.3-1.3-.8-1.3-1.4 0-.6.1-1.2.6-2l.1-.2 1.3.6"/><path d="m35.2 15.4l1.6.6-2.4 4.2c-.3.5-.4.8-.4 1.1 0 .5.3.8.9 1.1.6.2 1.1.2 1.6-.1.2-.2.5-.5.8-1l2.4-4.3 1.7.6-2.5 4.4c-.4.7-.9 1.3-1.4 1.6-.9.6-2 .6-3.3.1-1.3-.5-1.9-1.2-1.9-2.1 0-.5.2-1.1.6-1.8l2.3-4.4"/><path d="m42.9 18.1l1.7.6-3.3 5.9 4.1 1.6-.8 1.3-5.7-2.3 4-7.1"/></g><g fill="#333"><path d="m19 27.7l1.1-1.9c1 .3 1.7.5 2.1.6.7.1 1.3.1 1.9-.2.4-.1.8-.4 1.2-.8.2-.2.4-.4.5-.5l2.5 1-8.3 14.3-3.1-1.2 5.8-9.8-3.7-1.5"/><path d="m42.3 34.5c-.7.2-1.8.7-3.2 1.4-1.4.7-2.7 1.5-4 2.5-1 .7-2 1.6-3.1 2.8-1.1 1.1-1.9 2.1-2.4 2.9l-3.1-1.3c1.6-2.5 4-4.8 7.4-6.8 2.1-1.3 3.7-2.1 4.9-2.4l-7.7-3.1 1.5-2.5 10.9 4.3-1.2 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c7.svg
index e2c874a..21c4b77 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d9e3e8" d="m43.869 3.526c0 0-3.908-4.59-10.169-3.296-6.537 1.352-23.997 5.447-23.997 5.447l9.926 3.896 24.24-6.05"/><path fill="#699635" d="m48.544 8.948c2.163-.723 5.219 1.705 6.789 6.02 1.433 3.941.741 8.806-1.584 9.667l-3.062.584-4.94-15.764 2.797-.508"/><path fill="#83bf4f" d="m45.747 9.457c2.163-.723 5.219 1.705 6.79 6.02 1.432 3.941.74 8.806-1.585 9.667-2.131.789-5.508-1.636-6.74-6.098-1.189-4.302-.896-8.777 1.535-9.591"/><path fill="#699635" d="m44.43 11.881c1.723-.575 4.157 1.358 5.406 4.797 1.143 3.139.59 7.01-1.261 7.698l-2.438.465-3.936-12.554 2.229-.406"/><path fill="#83bf4f" d="m52.56 51.929c-1.054 0-2.139-.159-3.167-.526-4.53-1.606-12.756-10.1-13.68-11.06l2.631-2.451c2.346 2.445 9.12 9.04 12.273 10.154 1.928.684 4.337.122 5.146-.564 1.766-1.499 2.738-4.157 2.604-7.111-.128-2.825-1.275-5.332-2.993-6.543-5.911-4.17-8.37-10.439-8.37-10.439.313-2.219 2.188-1.702 2.188-1.702.021.059 1.722 5.02 8.291 9.239 2.718 1.748 4.322 5.332 4.502 9.285.185 4.04-1.258 7.768-3.858 9.975-1.2 1.018-3.319 1.744-5.567 1.744"/><path fill="#c7d3d8" d="m51.613 34.16c0 0-.299 4.03-6.94 6.211-4.277 1.406-23.366 7.504-23.366 7.504l6.684-6.082 23.622-7.633"/><path fill="#93a2aa" d="m21.14 24.841l-1.509-15.268c0 0-10.16-11.302-16.195 3.271-1.481 3.58-.473 11.695.404 15.466.899 3.871 3.837 11.621 6.638 14.475 12.07 12.293 17.515-.992 17.515-.992l-6.149-14.474 23.336-6.643-.504-2.875-23.536 7.04"/><path fill="#c7d3d8" d="m43.869 3.526l.804 14.276-23.533 7.04-1.511-15.268z"/><path fill="#d9e3e8" d="m51.613 34.16l-23.623 7.633-6.149-14.474 23.339-6.642z"/><g fill="#3e4347"><path d="m31.513 29.6c-.122 0-.246-.019-.368-.058-.636-.2-.985-.869-.781-1.495.007-.024.848-2.71.014-4.983-.787-2.147-2.521-3.252-2.539-3.262-.561-.352-.73-1.084-.379-1.639.354-.554 1.091-.728 1.656-.382.099.061 2.451 1.521 3.532 4.474 1.117 3.048.061 6.377.014 6.517-.165.505-.639.828-1.149.828"/><path d="m38.33 27.865c-.121 0-.246-.02-.368-.059-.636-.199-.985-.869-.781-1.494.007-.025.848-2.711.014-4.984-.787-2.147-2.521-3.251-2.538-3.262-.562-.351-.731-1.084-.379-1.639.352-.554 1.089-.727 1.655-.381.099.06 2.451 1.521 3.532 4.473 1.117 3.049.061 6.377.015 6.518-.165.505-.639.828-1.15.828"/></g><path fill="#699635" d="m12.658 20.651c1.724-.575 4.156 1.358 5.405 4.796 1.143 3.139.591 7.01-1.261 7.699l-3.32.654-4.103-12.506 3.279-.643"/><path fill="#83bf4f" d="m7.01 20.17c2.163-.723 5.22 1.705 6.788 6.02 1.435 3.941.741 8.805-1.583 9.666l-3.062.584-4.94-15.763 2.797-.509"/><path fill="#699635" d="m4.214 20.677c2.162-.723 5.219 1.705 6.788 6.02 1.434 3.941.741 8.805-1.584 9.666-2.131.789-5.506-1.636-6.738-6.097-1.191-4.302-.899-8.779 1.534-9.591"/><path fill="#83bf4f" d="m21.339 64c-5.96 0-13.705-7.564-16.186-11.619-1.429-2.333-1.087-4.186-.551-5.328 1.071-2.275 3.677-3.542 5.873-4.268l3.209 2.807c-1.733.279-5.01 1.294-5.797 2.963-.1.215-.368.785.365 1.982 2.382 3.893 9.07 9.895 13.09 9.895 2.042 0 3.476-1.036 4.263-3.079 1.589-4.124.018-11.202-5.365-15.909-2.965-2.596-4.765-6.722-4.889-9.119 0 0 .418-1.766 1.938-1.543 0 0 3.129 6.04 5.355 7.992 6.796 5.946 8.342 14.663 6.345 19.847-1.315 3.418-4.102 5.379-7.646 5.379"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.9 3.5c0 0-3.9-4.6-10.2-3.3-6.5 1.4-24 5.4-24 5.4l9.9 3.9 24.3-6" fill="#d9e3e8"/><path d="m48.5 8.9c2.2-.7 5.2 1.7 6.8 6 1.4 3.9.7 8.8-1.6 9.7l-3.1.6-4.9-15.7 2.8-.6" fill="#699635"/><path d="m45.7 9.5c2.2-.7 5.2 1.7 6.8 6 1.4 3.9.7 8.8-1.6 9.7-2.1.8-5.5-1.6-6.7-6.1-1.2-4.4-.9-8.8 1.5-9.6" fill="#83bf4f"/><path d="m44.4 11.9c1.7-.6 4.2 1.4 5.4 4.8 1.1 3.1.6 7-1.3 7.7l-2.4.5-3.9-12.6 2.2-.4" fill="#699635"/><path d="m52.6 51.9c-1.1 0-2.1-.2-3.2-.5-4.5-1.6-12.8-10.1-13.7-11.1l2.6-2.5c2.3 2.4 9.1 9 12.3 10.2 1.9.7 4.3.1 5.1-.6 1.8-1.5 2.7-4.2 2.6-7.1-.1-2.8-1.3-5.3-3-6.5-5.8-4.1-8.3-10.4-8.3-10.4.3-2.2 2.2-1.7 2.2-1.7 0 .1 1.7 5 8.3 9.2 2.7 1.7 4.3 5.3 4.5 9.3.2 4-1.3 7.8-3.9 10-1.2 1-3.3 1.7-5.5 1.7" fill="#83bf4f"/><path d="m51.6 34.2c0 0-.3 4-6.9 6.2-4.3 1.4-23.4 7.5-23.4 7.5l6.7-6.1 23.6-7.6" fill="#c7d3d8"/><path d="m21.1 24.8l-1.5-15.2c0 0-10.2-11.3-16.2 3.3-1.4 3.5-.4 11.6.4 15.4.9 3.9 3.8 11.6 6.6 14.5 12.1 12.3 17.5-1 17.5-1l-6.1-14.5 23.3-6.6-.5-2.9-23.5 7" fill="#93a2aa"/><path fill="#c7d3d8" d="m43.9 3.5l.8 14.3-23.6 7-1.5-15.2z"/><path fill="#d9e3e8" d="m51.6 34.2l-23.6 7.6-6.2-14.5 23.4-6.6z"/><g fill="#3e4347"><path d="m31.5 29.6c-.1 0-.2 0-.4-.1-.6-.2-1-.9-.8-1.5 0 0 .8-2.7 0-5-.8-2.1-2.5-3.3-2.5-3.3-.6-.4-.7-1.1-.4-1.6.4-.6 1.1-.7 1.7-.4.1.1 2.5 1.5 3.5 4.5 1.1 3 .1 6.4 0 6.5-.1.6-.6.9-1.1.9"/><path d="m38.3 27.9c-.1 0-.2 0-.4-.1-.6-.2-1-.9-.8-1.5 0 0 .8-2.7 0-5-.8-2.1-2.5-3.3-2.5-3.3-.6-.4-.7-1.1-.4-1.6.4-.6 1.1-.7 1.7-.4.1.1 2.5 1.5 3.5 4.5 1.1 3 .1 6.4 0 6.5-.1.5-.6.9-1.1.9"/></g><path d="m12.7 20.7c1.7-.6 4.2 1.4 5.4 4.8 1.1 3.1.6 7-1.3 7.7l-3.3.7-4.1-12.6 3.3-.6" fill="#699635"/><path d="m7 20.2c2.2-.7 5.2 1.7 6.8 6 1.4 3.9.7 8.8-1.6 9.7l-3.1.6-4.9-15.8 2.8-.5" fill="#83bf4f"/><path d="m4.2 20.7c2.2-.7 5.2 1.7 6.8 6 1.4 3.9.7 8.8-1.6 9.7-2.1.8-5.5-1.6-6.7-6.1-1.2-4.3-.9-8.8 1.5-9.6" fill="#699635"/><path d="m21.3 64c-6 0-13.7-7.6-16.2-11.6-1.4-2.3-1.1-4.2-.6-5.3 1.1-2.3 3.7-3.5 5.9-4.3l3.2 2.8c-1.7.3-5 1.3-5.8 3-.1.2-.4.8.4 2 2.4 3.9 9.1 9.9 13.1 9.9 2 0 3.5-1 4.3-3.1 1.6-4.1 0-11.2-5.4-15.9-3-2.6-4.8-6.7-4.9-9.1 0 0 .4-1.8 1.9-1.5 0 0 3.1 6 5.4 8 6.8 5.9 8.3 14.7 6.3 19.8-1.2 3.3-4 5.3-7.6 5.3" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c8.svg
index 2c9c57a..69c80f6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m0 0h64v64h-64z"/><path fill="#52c18e" d="m58.666 5.334h-5.566l-15.76 20.16-9.651-11.19-27.689 40.15v9.54h6.381l22.252-32.27 9.117 10.571 20.916-26.766z"/><path fill="#d0d5d8" d="m64 0h-64v50.705l2.969-4.305h-.836v-13.333h10.03l1.471-2.134h-11.5v-13.332h13.334v10.672l2.133-3.094v-7.578h5.226l1.471-2.133h-6.697v-13.334h13.333v12.666l2.417 2.8h7.456l1.667-2.133h-9.406v-13.333h13.333v8.31l2.134-2.73v-5.58h13.333v13.333h-1.067v.801l-1.04 1.333h2.106v13.333h-12.527l-2.939 3.761v11.705h-13.334v-6.266l-2.134-2.473v8.739h-9.824l-1.471 2.133h11.295v13.334h-13.332v-10.381l-2.133 3.094v7.287h-5.02l-1.471 2.133h55.03v-64m-48.533 15.467h-13.334v-13.333h13.334v13.333m30.932 46.4h-13.333v-13.334h13.333v13.334m15.467 0h-13.333v-13.334h13.333v13.334m0-15.467h-13.333v-13.333h13.333v13.333"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m0 0h64v64h-64z"/><path fill="#52c18e" d="m58.7 5.3h-5.6l-15.8 20.2-9.6-11.2-27.7 40.2v9.5h6.4l22.2-32.3 9.2 10.6 20.9-26.8z"/><path d="m64 0h-64v50.7l3-4.3h-.9v-13.3h10l1.5-2.1h-11.5v-13.4h13.3v10.7l2.1-3.1v-7.6h5.2l1.5-2.1h-6.7v-13.4h13.3v12.7l2.4 2.8h7.5l1.7-2.1h-9.4v-13.4h13.3v8.3l2.1-2.7v-5.6h13.3v13.3h-1.1v.8l-1 1.3h2.1v13.3h-12.4l-2.9 3.8v11.7h-13.3v-6.3l-2.1-2.5v8.7h-9.8l-1.5 2.1h11.3v13.3h-13.4v-10.1l-2.1 3.1v7.3h-5l-1.5 2.1h55v-64m-48.5 15.5h-13.4v-13.4h13.3c.1 0 .1 13.4.1 13.4m30.9 46.4h-13.3v-13.4h13.3c0 0 0 13.4 0 13.4m15.5 0h-13.4v-13.4h13.3v13.4zm0-15.5h-13.4v-13.3h13.3v13.3z" fill="#d0d5d8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4c9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4c9.svg
index aa47f54..6210970 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4c9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4c9.svg
@@ -1,5 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m0 0h64v64h-64z"/><path fill="#ed4c5c" d="M58.666 58.667 53.1 58.667 37.34 38.504 27.689 49.695 0 9.537 0 0 6.381 0 28.633 32.27 37.75 21.704 58.666 48.47z"/><path fill="#d0d5d8" d="M64,0H8.973l1.471,2.133h5.023V9.42l2.133,3.094V2.134h13.334v13.333H19.637l1.471,2.133h9.826v8.738
- l2.133-2.473v-6.266H46.4v11.706l2.938,3.76h12.529V46.4H59.76l1.041,1.332v0.801h1.066v13.334H48.533v-5.579l-2.133-2.73v8.31
- H33.066V48.533h9.406L40.807,46.4H33.35l-2.416,2.801v12.666H17.6V48.533h6.697L22.826,46.4H17.6v-7.578l-2.133-3.094V46.4H2.133
- V33.066h11.5l-1.471-2.133H2.133V17.601h0.836L0,13.295V64h64V0z M15.467,61.867H2.133V48.533h13.334V61.867z M46.4,15.467
- H33.066V2.134H46.4V15.467z M61.867,15.467H48.533V2.134h13.334V15.467z M61.867,30.934H48.533V17.601h13.334V30.934z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m0 0h64v64h-64z"/><path fill="#ed4c5c" d="m58.7 58.7h-5.6l-15.8-20.2-9.6 11.2-27.7-40.2v-9.5h6.4l22.2 32.3 9.2-10.6 20.9 26.8z"/><path d="m64 0h-55l1.5 2.1h5v7.3l2.1 3.1v-10.4h13.3v13.3h-11.3l1.5 2.1h9.8v8.7l2.1-2.5v-6.3h13.3v11.7l2.9 3.8h12.5v13.3h-2.1l1 1.3v.8h1.1v13.3h-13.2v-5.6l-2.1-2.7v8.3h-13.3v-13.1h9.4l-1.7-2.1h-7.5l-2.4 2.8v12.7h-13.3v-13.4h6.7l-1.5-2.1h-5.2v-7.6l-2.1-3.1v10.7h-13.4v-13.3h11.5l-1.5-2.1h-10v-13.4h.9l-3-4.3v50.7h64v-64m-48.5 61.9h-13.4v-13.4h13.3c.1 0 .1 13.4.1 13.4m30.9-46.4h-13.3v-13.4h13.3v13.4m15.5 0h-13.4v-13.4h13.3v13.4zm0 15.4h-13.4v-13.3h13.3v13.3z" fill="#d0d5d8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ca.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ca.svg
index e87d1fd..619ce84 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ca.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ca.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#333"><path d="m0 0h4v64h-4z"/><path d="m0 60h64v4h-64z"/></g><path fill="#fb4f00" d="m38.667 60h12v-53.33l-12 13.334z"/><path fill="#5c750a" d="m21.333 60h11.997v-40l-11.997 13.33z"/><path fill="#106995" d="m4 60h12v-26.67l-12 13.336z"/><path fill="#9aca0a" d="m33.33 20h13.334v40h-13.334z"/><path fill="#21adf1" d="M 16,33.333 H29.333 V60 H16 z"/><path fill="#fc9100" d="M 50.667,6.666 H64 V60 H50.667 z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#333"><path d="m0 0h4v64h-4z"/><path d="m0 60h64v4h-64z"/></g><path fill="#fb4f00" d="m38.7 60h12v-53.3l-12 13.3z"/><path fill="#5c750a" d="m21.3 60h12v-40l-12 13.3z"/><path fill="#106995" d="m4 60h12v-26.7l-12 13.4z"/><path fill="#9aca0a" d="m33.3 20h13.3v40h-13.3z"/><path fill="#21adf1" d="m16 33.3h13.3v26.7h-13.3z"/><path fill="#fc9100" d="m50.7 6.7h13.3v53.3h-13.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4cb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4cb.svg
index 236ba0d..29f1ef7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4cb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4cb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d3976e" d="m35.695 62.21c-1.364 2.084-4.447 2.382-6.84.696l-27.03-19.03c-1.849-1.302-2.376-3.79-1.206-5.577l23.777-36.32c1.171-1.788 3.792-2.499 5.889-1.576l30.648 13.5c2.715 1.195 3.85 3.872 2.485 5.956l-27.725 42.35"/><path fill="#fff" d="M31.394 59.752 3.535 40.705 28.04 3.274 59.09 17.451z"/><path fill="#94989b" d="m49.03 14.791c-.391.597-1.312.797-2.055.449l-11.72-5.503c-.674-.316-.917-1.027-.547-1.592l1.838-2.809c.37-.564 1.219-.777 1.9-.475l11.873 5.271c.751.333 1.047 1.089.656 1.687l-1.945 2.972"/><path fill="#333" d="m46.788 11.143l-7.55-3.427 1.864-2.847c.374-.571 1.243-.789 1.946-.483l5.02 2.179c.734.319 1.02 1.057.636 1.646l-1.92 2.932"/><g fill="#83bf4f"><path d="m47.34 26.576l-15.675-8.04.823-1.257 15.732 7.961z"/><path d="m26.723 17.713c-.173.097-.363.03-.424-.147l-.964-2.84c-.06-.173.057-.351.256-.392l.366-.077c.202-.042.415.067.476.241l.509 1.486c.062.177.252.242.424.144l2.905-1.636c.175-.098.422-.053.55.1l.233.279c.129.154.089.361-.085.459l-4.246 2.383"/></g><g fill="#b0bdc6"><path d="m42.22 34.407l-15.371-8.515.823-1.257 15.418 8.435z"/><path d="m23.906 26.19l-4.536-2.55 2.617-4 4.588 2.47z"/><path d="m37.09 42.24l-15.06-8.99.827-1.26 15.11 8.91z"/><path d="m19.13 33.483l-4.442-2.692 2.618-3.999 4.496 2.613z"/><path d="m31.962 50.07l-14.743-9.467.821-1.253 14.798 9.381z"/><path d="m14.357 40.776l-4.347-2.834 2.615-3.998 4.405 2.754z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m35.7 62.2c-1.4 2.1-4.4 2.4-6.8.7l-27-19c-1.8-1.3-2.4-3.8-1.2-5.6l23.7-36.3c1.2-1.8 3.8-2.5 5.9-1.6l30.6 13.5c2.7 1.2 3.9 3.9 2.5 6l-27.7 42.3" fill="#d3976e"/><path fill="#fff" d="M31.4 59.8 3.5 40.7 28 3.3 59.1 17.5z"/><path d="m49 14.8c-.4.6-1.3.8-2.1.4l-11.6-5.5c-.7-.3-.9-1-.5-1.6l1.8-2.8c.4-.6 1.2-.8 1.9-.5l11.9 5.3c.8.3 1 1.1.7 1.7l-2.1 3" fill="#94989b"/><path d="m46.8 11.1l-7.5-3.4 1.9-2.8c.4-.6 1.2-.8 1.9-.5l5 2.2c.7.3 1 1.1.6 1.6l-1.9 2.9" fill="#333"/><g fill="#83bf4f"><path d="m47.3 26.6l-15.6-8.1.8-1.2 15.7 7.9z"/><path d="m26.7 17.7c-.2.1-.4 0-.4-.1l-1-2.8c-.1-.2.1-.4.3-.4l.4-.1c.2 0 .4.1.5.2l.5 1.5c.1.2.3.2.4.1l2.9-1.6c.2-.1.4-.1.5.1l.2.3c.1.2.1.4-.1.5l-4.2 2.3"/></g><g fill="#b0bdc6"><path d="m42.2 34.4l-15.4-8.5.9-1.3 15.4 8.5z"/><path d="m23.9 26.2l-4.5-2.6 2.6-4 4.6 2.5z"/><path d="m37.1 42.2l-15.1-9 .9-1.2 15.1 8.9z"/><path d="m19.1 33.5l-4.4-2.7 2.6-4 4.5 2.6z"/><path d="m32 50.1l-14.8-9.5.8-1.3 14.8 9.4z"/><path d="m14.4 40.8l-4.4-2.9 2.6-4 4.4 2.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4cc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4cc.svg
index fcdd939..5403772 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4cc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4cc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m24.502 35.532c-6.674 7.343-21.637 25.326-23.873 27.565-.025.023-.051.049-.076.072-.9.9-.625 1.18.275.279 1.975-1.969 20.25-17.188 27.648-23.941l-3.974-3.975"/><path transform="matrix(.7071.7071-.7071.7071 28.21-22.606)" fill="#c94747" d="m33.31 6.883h16.17v31.745h-16.17z"/><g fill="#ed4c5c"><path d="m43.551 54.59c.875-7.83-2.549-17.09-9.799-24.335s-16.512-10.682-24.336-9.811l34.14 34.15"/><path d="M64,22.878c-5.25,0.583-11.449-1.716-16.311-6.573C42.838,11.447,40.539,5.246,41.113,0L64,22.878z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.5 35.5c-6.7 7.4-21.6 25.4-23.9 27.6 0 0-.1 0-.1.1-.9.9-.6 1.2.3.3 2-2 20.2-17.2 27.6-23.9l-3.9-4.1" fill="#d0d0d0"/><path transform="matrix(.7071-.7071.7071.7071-3.9661 35.935)" fill="#c94747" d="m25.5 14.7h31.7v16.2h-31.7z"/><g fill="#ed4c5c"><path d="m43.6 54.6c.9-7.8-2.5-17.1-9.8-24.3s-16.6-10.7-24.4-9.9l34.2 34.2"/><path d="m64 22.9c-5.2.6-11.4-1.7-16.3-6.6-4.9-4.9-7.2-11.1-6.6-16.3l22.9 22.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4cd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4cd.svg
index fb5f2c4..fa9f105 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4cd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4cd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M42.628 29.386 2 62 34.611 21.37z"/><circle fill="#ed4c5c" cx="45.03" cy="18.967" r="16.966"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M42.6 29.4 2 62 34.6 21.4z"/><circle cx="45" cy="19" r="17" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ce.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ce.svg
index 8d51e8e..47c8d2c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ce.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ce.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m59.62 23.813c-.76-.76-2.029-.76-2.789 0-.539.54-31.919 31.921-32.938 32.938-.145.145-.287.289-.434.433-3.829 3.831-10.06 3.831-13.892 0-3.829-3.83-3.829-10.06 0-13.892l37.619-37.617c2.309-2.31 6.067-2.31 8.375 0 2.24 2.24 2.307 5.843.201 8.165l-.027-.027-32.877 32.895v-.002c-.777.779-2.037.779-2.814 0-.759-.756-.777-1.971-.059-2.752 0 0 27.996-28.08 28.451-28.535.762-.761.764-2.027 0-2.79-.758-.758-1.975-.705-2.732.057-.633.635-28.06 28.03-28.388 28.358-.726.725-1.228 1.563-1.552 2.533-.369 1.107-.348 2.446.037 3.545.475 1.359 1.346 2.455 2.564 3.229 2.265 1.434 5.371 1.027 7.261-.832l32.693-32.71.031.031c3.849-3.847 3.849-10.11 0-13.956-3.848-3.847-10.11-3.847-13.954.001l-37.618 37.618c-5.366 5.368-5.366 14.1 0 19.471 5.369 5.369 14.11 5.369 19.471 0 .543-.54 33.23-33.23 33.371-33.372.761-.76.761-2.029 0-2.789"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.6 23.8c-.8-.8-2-.8-2.8 0-.5.5-31.9 31.9-32.9 32.9-.1.1-.3.3-.4.4-3.8 3.8-10.1 3.8-13.9 0-3.8-3.8-3.8-10.1 0-13.9l37.6-37.5c2.3-2.3 6.1-2.3 8.4 0 2.2 2.2 2.3 5.8.2 8.2l-32.9 32.8c-.8.8-2 .8-2.8 0-.8-.8-.8-2-.1-2.8 0 0 28-28.1 28.5-28.5.8-.8.8-2 0-2.8-.8-.8-2-.7-2.7.1-.6.6-28.1 28-28.4 28.4-.7.7-1.2 1.6-1.6 2.5-.4 1.1-.3 2.4 0 3.5.5 1.4 1.3 2.5 2.6 3.2 2.3 1.4 5.4 1 7.3-.8l32.7-32.7c3.8-3.8 3.8-10.1 0-14-3.8-3.8-10.1-3.8-14 0l-37.6 37.7c-5.4 5.4-5.4 14.1 0 19.5 5.4 5.4 14.1 5.4 19.5 0 .5-.5 33.2-33.2 33.4-33.4.7-.8.7-2-.1-2.8" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4cf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4cf.svg
index 66baf93..3d66c06 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4cf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4cf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f8db7d" d="m8.344.91c1.214-1.213 3.201-1.213 4.414 0l50.33 50.33c1.214 1.215 1.214 3.201 0 4.415l-7.433 7.433c-1.214 1.214-3.201 1.214-4.414 0l-50.33-50.33c-1.213-1.214-1.213-3.201 0-4.415l7.433-7.431"/><g fill="#ebc463"><path d="m38.33 40.729c-16.13-16.13-28.533-29.868-27.711-30.69.234-.234 1.52.608 3.607 2.301-3.177-3.298-6.01-6.344-8.35-8.96l-2.804 2.805c4.463 4.02 10.01 9.292 15.898 15.184 13.613 13.613 23.934 25.361 23.05 26.24-.88.88-12.629-9.441-26.24-23.05-5.878-5.877-11.14-11.405-15.15-15.863-.907 1.219-.819 2.958.286 4.063l25.978 25.979c1.464-1.051 10.186 5.646 19.672 15.13 3.348 3.35 6.35 6.604 8.786 9.477.105-.081.215-.157.312-.253l2.912-2.913c-5.458-4.964-12.579-11.784-20.245-19.45"/><path d="m8.344.911l-.23.229c4.234 3.782 9.601 8.875 15.327 14.601 12.618 12.617 22.18 23.509 21.362 24.329-.211.209-1.086-.268-2.48-1.299 7.25 7.274 13.689 14.01 18.432 19.223l2.336-2.336c.064-.064.113-.14.169-.208-1.682-1.611-3.506-3.397-5.398-5.29-7.723-7.723-13.659-14.307-13.259-14.707.4-.398 6.984 5.537 14.707 13.26 1.662 1.663 3.235 3.268 4.688 4.775.009-.813-.29-1.629-.907-2.245l-50.33-50.33c-1.215-1.214-3.2-1.214-4.414 0"/></g><g fill="#89664c"><path transform="matrix(-.7075-.7067.7067-.7075 12.214 17.339)" d="m8.56.276h2.27v11.732h-2.27z"/><path transform="matrix(-.7071-.7071.7071-.7071 20.425 23.02)" d="m13.845 4.347h2.269v5.866h-2.269z"/><path transform="matrix(-.7071-.7071.7071-.7071 23.637 30.77)" d="m17.06 7.557h2.269v5.866h-2.269z"/><path transform="matrix(-.7069-.7073.7073-.7069 26.838 38.523)" d="m20.265 10.768h2.271v5.865h-2.271z"/><path transform="matrix(-.7068-.7074.7074-.7068 25.04 48.35)" d="m21.404 13.12h2.27v11.729h-2.27z"/><path transform="matrix(-.7076-.7066.7066-.7076 33.29 54.02)" d="m26.688 17.19h2.27v5.867h-2.27z"/><path transform="matrix(-.7068-.7074.7074-.7068 36.462 61.781)" d="m29.9 20.402h2.27v5.864h-2.27z"/><path transform="matrix(-.7069-.7073.7073-.7069 39.678 69.53)" d="m33.11 23.613h2.27v5.864h-2.27z"/><path transform="matrix(-.7075-.7067.7067-.7075 37.924 79.35)" d="m34.25 25.963h2.272v11.731h-2.272z"/><path transform="matrix(-.7069-.7073.7073-.7069 46.1 85.04)" d="m39.533 30.03h2.27v5.866h-2.27z"/><path transform="matrix(-.7073-.7069.7069-.7073 49.34 92.79)" d="m42.745 33.25h2.27v5.865h-2.27z"/><path transform="matrix(-.7069-.7073.7073-.7069 52.52 100.54)" d="m45.954 36.457h2.27v5.865h-2.27z"/><path transform="matrix(-.7067-.7075.7075-.7067 50.701 110.37)" d="m47.09 38.808h2.269v11.73h-2.269z"/><path transform="matrix(-.708-.7062.7062-.708 59.04 116.04)" d="m52.38 42.878h2.27v5.867h-2.27z"/><path transform="matrix(-.7067-.7075.7075-.7067 62.12 123.8)" d="m55.59 46.09h2.27v5.864h-2.27z"/><path transform="matrix(-.7071-.7071.7071-.7071 65.38 131.55)" d="m58.8 49.3h2.269v5.865h-2.269z"/><circle cx="10.404" cy="13.235" r="2.601"/></g><circle fill="#fff" cx="10.772" cy="13.603" r="2.4"/><circle fill="#89664c" cx="21.989" cy="24.821" r="2.601"/><circle fill="#fff" cx="22.357" cy="25.19" r="2.4"/><circle fill="#89664c" cx="49.28" cy="52.11" r="2.601"/><circle fill="#fff" cx="49.65" cy="52.48" r="2.4"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3.9c1.2-1.2 3.2-1.2 4.4 0l50.3 50.3c1.2 1.2 1.2 3.2 0 4.4l-7.4 7.4c-1.2 1.2-3.2 1.2-4.4 0l-50.3-50.2c-1.2-1.2-1.2-3.2 0-4.4l7.4-7.5" fill="#f8db7d"/><g fill="#ebc463"><path d="m38.3 40.7c-16.1-16.1-28.5-29.8-27.7-30.7.2-.2 1.5.6 3.6 2.3-3.2-3.3-6-6.3-8.3-8.9l-2.8 2.8c4.5 4 10 9.3 15.9 15.2 13.6 13.6 23.9 25.3 23 26.2-.9.9-12.6-9.4-26.2-23.1-5.9-5.8-11.2-11.3-15.2-15.8-.9 1.2-.8 3 .3 4.1l26 26c1.5-1.1 10.2 5.6 19.7 15.1 3.3 3.3 6.3 6.6 8.8 9.5.1-.1.2-.2.3-.3l2.9-2.9c-5.5-5-12.6-11.8-20.3-19.5"/><path d="m8.3.9l-.2.2c4.2 3.8 9.6 8.9 15.3 14.6 12.6 12.6 22.2 23.5 21.4 24.3-.2.2-1.1-.3-2.5-1.3 7.3 7.3 13.7 14.1 18.5 19.3l2.3-2.3c.1-.1.1-.1.2-.2-1.7-1.6-3.5-3.4-5.4-5.3-7.7-7.7-13.7-14.3-13.3-14.7.4-.4 7 5.5 14.7 13.3 1.7 1.7 3.2 3.3 4.7 4.8 0-.8-.3-1.6-.9-2.2l-50.3-50.5c-1.3-1.2-3.2-1.2-4.5 0"/></g><g fill="#89664c"><path transform="matrix(.7067-.7075.7075.7067-1.502 8.6608)" d="m3.8 5h11.7v2.3h-11.7z"/><path transform="matrix(.7071-.7071.7071.7071-.7598 12.7251)" d="m12 6.1h5.9v2.3h-5.9z"/><path transform="matrix(.7071-.7071.7071.7071-2.0892 15.9357)" d="m15.3 9.4h5.9v2.3h-5.9z"/><path transform="matrix(.7073-.7069.7069.7073-3.4222 19.1385)" d="m18.5 12.6h5.9v2.3h-5.9z"/><path transform="matrix(.7074-.7068.7068.7074-6.825 21.486)" d="m16.7 17.9h11.7v2.3h-11.7z"/><path transform="matrix(.7066-.7076.7076.7066-6.0763 25.5928)" d="m24.9 19h5.9v2.3h-5.9z"/><path transform="matrix(.7074-.7068.7068.7074-7.4127 28.7619)" d="m28.1 22.2h5.9v2.3h-5.9z"/><path transform="matrix(.7073-.7069.7069.7073-8.7418 31.9772)" d="m31.3 25.4h5.9v2.3h-5.9z"/><path transform="matrix(.7067-.7075.7075.7067-12.1421 34.3701)" d="m29.5 30.7h11.7v2.3h-11.7z"/><path transform="matrix(.7073-.7069.7069.7073-11.4018 38.3971)" d="m37.7 31.8h5.9v2.3h-5.9z"/><path transform="matrix(.7069-.7073.7073.7069-12.7279 41.6411)" d="m40.9 35h5.9v2.3h-5.9z"/><path transform="matrix(.7073-.7069.7069.7073-14.0625 44.8164)" d="m44.2 38.3h5.9v2.3h-5.9z"/><path transform="matrix(.7075-.7067.7067.7075-17.4663 47.1476)" d="m42.4 43.5h11.7v2.3h-11.7z"/><path transform="matrix(.7062-.708.708.7062-16.7157 51.3424)" d="m50.6 44.7h5.9v2.3h-5.9z"/><path transform="matrix(.7075-.7067.7067.7075-18.0549 54.4228)" d="m53.8 47.9h5.9v2.3h-5.9z"/><path transform="matrix(.7071-.7071.7071.7071-19.3807 57.6783)" d="m57 51.1h5.9v2.3h-5.9z"/><circle cx="10.4" cy="13.2" r="2.6"/></g><circle cx="10.8" cy="13.6" r="2.4" fill="#fff"/><circle cx="22" cy="24.8" r="2.6" fill="#89664c"/><circle cx="22.4" cy="25.2" r="2.4" fill="#fff"/><circle cx="49.3" cy="52.1" r="2.6" fill="#89664c"/><circle cx="49.7" cy="52.5" r="2.4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d0.svg
index 9a6fdbe..5d4c52d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m.687 61.83c-1.194 1.194-.789 2.17.899 2.17h59.34c1.688 0 3.07-1.381 3.07-3.069v-59.35c0-1.688-.979-2.093-2.171-.899l-61.14 61.14m49.15-15.07c0 1.688-1.381 3.069-3.069 3.069h-10.96c-1.688 0-2.092-.977-.899-2.17l12.756-12.756c1.194-1.192 2.172-.789 2.172.899v10.958"/><g fill="#89664c"><path d="m2.373 61.33h1.01v2.666h-1.01z"/><path d="m5.347 61.33h1v2.666h-1z"/><path d="m8.323 61.33h1v2.666h-1z"/><path d="m11.296 58.988h1.01v5.01h-1.01z"/><path d="m14.438 61.33h1.01v2.666h-1.01z"/><path d="m17.413 61.33h1.01v2.666h-1.01z"/><path d="m20.388 61.33h1.01v2.666h-1.01z"/><path d="m23.363 58.988h1v5.01h-1z"/><path d="m26.504 61.33h1v2.666h-1z"/><path d="m29.479 61.33h1.01v2.666h-1.01z"/><path d="m32.453 61.33h1.01v2.666h-1.01z"/><path d="m35.43 58.988h1.01v5.01h-1.01z"/><path d="m38.57 61.33h1.01v2.666h-1.01z"/><path d="m41.545 61.33h1.01v2.666h-1.01z"/><path d="m44.521 61.33h1.01v2.666h-1.01z"/><path d="m47.5 58.988h1v5.01h-1z"/><path d="m50.637 61.33h1.01v2.666h-1.01z"/><path d="m53.611 61.33h1.01v2.666h-1.01z"/><path d="m56.59 61.33h1.01v2.666h-1.01z"/><path d="m59.56 58.988h1.01v5.01h-1.01z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m.7 61.8c-1.2 1.2-.8 2.2.9 2.2h59.3c1.7 0 3.1-1.4 3.1-3.1v-59.3c0-1.7-1-2.1-2.2-.9l-61.1 61.1m49.1-15c0 1.7-1.4 3.1-3.1 3.1h-11c-1.7 0-2.1-1-.9-2.2l12.8-12.8c1.2-1.2 2.2-.8 2.2.9v11" fill="#ffce31"/><g fill="#89664c"><path d="m2.4 61.3h1v2.7h-1z"/><path d="m5.3 61.3h1v2.7h-1z"/><path d="m8.3 61.3h1v2.7h-1z"/><path d="m11.3 59h1v5h-1z"/><path d="m14.4 61.3h1v2.7h-1z"/><path d="m17.4 61.3h1v2.7h-1z"/><path d="m20.4 61.3h1v2.7h-1z"/><path d="m23.4 59h1v5h-1z"/><path d="m26.5 61.3h1v2.7h-1z"/><path d="m29.5 61.3h1v2.7h-1z"/><path d="m32.5 61.3h1v2.7h-1z"/><path d="m35.4 59h1v5h-1z"/><path d="m38.6 61.3h1v2.7h-1z"/><path d="m41.5 61.3h1v2.7h-1z"/><path d="m44.5 61.3h1v2.7h-1z"/><path d="m47.5 59h1v5h-1z"/><path d="m50.6 61.3h1v2.7h-1z"/><path d="m53.6 61.3h1v2.7h-1z"/><path d="m56.6 61.3h1v2.7h-1z"/><path d="m59.6 59h1v5h-1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d1.svg
index 7b966f4..b0ff586 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d1.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#93a2aa" d="m50.55 34.43c-3.236-8.548-11.89-15.515-8.854-25.892-11.705 1.034-23.408 2.067-35.11 3.102-5.67 19.386 18.502 30.06 12.833 49.45 10.555-5.459 21.552-10.361 32.11-15.82 1.113-3.804.211-7.707-.975-10.84"/><path fill="#933434" d="m6.591 37.832c3.124-1.82 6.252-3.641 9.377-5.46 2.113 1.896 3.955 3.966 5.112 6.478-3.277 1.628-6.556 3.258-9.834 4.885.146-1.478.125-2.879-.023-4.228-1.467-.638-3.03-1.185-4.632-1.675"/><path fill="#b0bdc6" d="m58.999 33.36c-3.72-9.825-13.667-17.832-10.178-29.758-13.451 1.189-26.902 2.376-40.35 3.565-6.518 22.279 21.264 34.553 14.748 56.834 12.13-6.275 24.771-11.908 36.901-18.18 1.279-4.371.244-8.857-1.12-12.457"/><path fill="#ed4c5c" d="m0 23.02c4.141-1.231 8.282-2.462 12.425-3.692 1.99 2.829 3.614 5.782 4.319 9.05-4.271.962-8.543 1.925-12.813 2.888.556-1.688.894-3.335 1.07-4.956-1.556-1.169-3.248-2.26-5-3.295"/><path fill="#d9e3e8" d="m10.349 5.03c-5.571 21.346 22.703 31.815 17.13 53.16 11.856-6.435 24.25-12.284 36.1-18.72 1.095-4.188-.13-8.39-1.644-11.74-4.13-9.141-14.406-16.307-11.422-27.733-13.389 1.677-26.778 3.354-40.17 5.03"/><g fill="#7d8b91"><path d="m14.806 12.445c.106.785.255 1.556.443 2.314 10.09-1.985 20.18-3.971 30.27-5.956-.148-.599-.268-1.209-.352-1.831-10.119 1.825-20.242 3.65-30.363 5.473"/><path d="m17.641 20.876c9.923-2.412 19.847-4.824 29.771-7.236-.29-.555-.562-1.116-.807-1.685-9.997 2.264-19.99 4.527-29.986 6.791.314.719.654 1.428 1.022 2.13"/><path d="m21.17 26.626c9.658-2.808 19.318-5.615 28.978-8.422-.363-.531-.719-1.064-1.064-1.602-9.753 2.667-19.506 5.333-29.26 8 .435.679.885 1.353 1.345 2.024"/><path d="m32.03 45.672c.181.762.321 1.536.42 2.324 4.436-2.147 8.874-4.295 13.311-6.442-.087-.706-.214-1.399-.377-2.081-4.45 2.066-8.902 4.132-13.354 6.199"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.5 34.4c-3.2-8.5-11.9-15.5-8.9-25.9-11.7 1-23.4 2.1-35.1 3.1-5.6 19.4 18.6 30.1 12.9 49.5 10.6-5.5 21.6-10.4 32.1-15.8 1.1-3.8.2-7.7-1-10.9" fill="#93a2aa"/><path d="m6.6 37.8c3.1-1.8 6.3-3.6 9.4-5.5 2.1 1.9 4 4 5.1 6.5-3.3 1.6-6.6 3.3-9.8 4.9.1-1.5.1-2.9 0-4.2-1.5-.6-3.1-1.2-4.7-1.7" fill="#933434"/><path d="M59,33.4c-3.7-9.8-13.7-17.8-10.2-29.8C35.4,4.8,21.9,6,8.5,7.2C2,29.4,29.7,41.7,23.2,64
+ C35.3,57.7,48,52.1,60.1,45.8C61.4,41.4,60.4,37,59,33.4z" fill="#b0bdc6"/><path d="m0 23c4.1-1.2 8.3-2.5 12.4-3.7 2 2.8 3.6 5.8 4.3 9.1-4.3 1-8.5 1.9-12.8 2.9.6-1.7.9-3.3 1.1-5-1.6-1.2-3.2-2.2-5-3.3" fill="#ed4c5c"/><path d="m10.3 5c-5.5 21.4 22.8 31.8 17.2 53.2 11.9-6.4 24.2-12.3 36.1-18.7 1.1-4.2-.1-8.4-1.6-11.7-4.2-9.2-14.5-16.4-11.5-27.8-13.4 1.7-26.8 3.4-40.2 5" fill="#d9e3e8"/><g fill="#7d8b91"><path d="m14.8 12.4c.1.8.3 1.6.4 2.3 10.1-2 20.2-4 30.3-6-.1-.6-.3-1.2-.4-1.8-10.1 1.9-20.2 3.7-30.3 5.5"/><path d="m17.6 20.9c9.9-2.4 19.8-4.8 29.8-7.2-.3-.6-.6-1.1-.8-1.7-10 2.3-20 4.5-30 6.8.3.7.7 1.4 1 2.1"/><path d="m21.2 26.6c9.7-2.8 19.3-5.6 29-8.4-.4-.5-.7-1.1-1.1-1.6-9.8 2.7-19.5 5.3-29.3 8 .5.7.9 1.4 1.4 2"/><path d="m32 45.7c.2.8.3 1.5.4 2.3 4.4-2.1 8.9-4.3 13.3-6.4-.1-.7-.2-1.4-.4-2.1-4.4 2-8.8 4.1-13.3 6.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d2.svg
index 577e8ad..93fecc8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m44.21 1.537l-14.63 60.64 29.396-8.01c3.295-.924 5.229-4.3 4.32-7.539l-11.475-40.896c-.908-3.239-4.316-5.116-7.611-4.191"/><path fill="#e9f3fa" d="m41.837.901l-12.258 61.27 29.16-9.293c3.254-1.059 5.05-4.51 4.01-7.709l-13.13-40.4c-1.04-3.199-4.522-4.935-7.776-3.877"/><path fill="#d3976e" d="m39.791.381l-27.66 10.07-4.366 1.59c-3.216 1.17-3.296 3.02-2.146 6.183l15.569 42.776c1.15 3.162 2.056 3.574 5.271 2.404l4.367-1.59 27.659-10.07c3.216-1.172 4.89-4.684 3.739-7.846l-14.526-39.912c-1.151-3.161-4.691-4.775-7.907-3.605"/><g fill="#3e4347"><circle cx="8.621" cy="14.936" r="1.609"/><circle cx="10.843" cy="21.04" r="1.609"/><circle cx="13.04" cy="27.08" r="1.609"/><circle cx="15.237" cy="33.12" r="1.609"/><path d="m10.362 31.23c-.26-.713-.227-1.59-1.031-1.349-1.125.339-2.412.58-3.236-.28-.301-.314-.859-.283-1.026.156-.239.626.434 1.341.928 1.614 1.307.721 3.048.329 4.365-.141m-4.076-1.335c.037.073 0-.002 0 0"/><path d="m8.166 25.19c-.107-.293-.214-.586-.32-.88-.212-.581-.054-.669-.711-.47-1.125.34-2.412.58-3.235-.279-.301-.314-.859-.284-1.026.156-.239.626.434 1.342.928 1.615 1.304.72 3.048.327 4.364-.142m-4.077-1.335c.033.047.01.016 0 0"/><path d="m5.969 19.16c-.106-.293-.213-.586-.32-.88-.211-.581-.054-.669-.71-.47-1.126.341-2.411.578-3.235-.28-.301-.313-.859-.283-1.027.156-.24.626.435 1.342.928 1.615 1.304.722 3.047.327 4.364-.141m-4.076-1.336c.038.072 0-.003 0 0"/><path d="m12.56 37.27c-.107-.293-.214-.587-.32-.88-.212-.581-.054-.67-.711-.471-1.125.341-2.412.579-3.235-.278-.301-.314-.859-.283-1.026.156-.239.626.434 1.342.928 1.614 1.304.721 3.048.328 4.364-.141m-4.078-1.336c.039.077 0-.007 0 0"/></g><g fill="#94989b"><path d="m12.511 27.27c-.538-1.36-5.941.84-6.341 2.363.028-.091.031-.079.009.037.009-.032.007-.063-.006-.094.399 1.21-1.369 1.263-1.298-.283.081-1.749 2.168-2.812 3.571-3.333 1.306-.484 3.066-.858 4.365-.141 1.855 1.025.231 2.774-.3 1.451"/><path d="m10.314 21.237c-.543-1.358-5.949.836-6.341 2.363.027-.091.03-.079.009.038.009-.032.007-.063-.006-.094.398 1.211-1.369 1.263-1.298-.283.08-1.749 2.169-2.811 3.572-3.331 1.305-.485 3.066-.858 4.365-.142 1.856 1.023.229 2.771-.301 1.449"/><path d="m8.118 15.201c-.544-1.361-5.942.84-6.342 2.363.028-.091.031-.079.009.037.011-.032.009-.063-.005-.094.398 1.212-1.369 1.263-1.299-.283.08-1.749 2.169-2.811 3.571-3.332 1.306-.485 3.067-.858 4.366-.142 1.855 1.025.23 2.774-.3 1.451"/><path d="m14.708 33.31c-.548-1.358-5.945.837-6.341 2.363.027-.092.03-.079.009.037.009-.031.007-.063-.006-.094.398 1.211-1.369 1.264-1.298-.282.08-1.749 2.17-2.812 3.572-3.333 1.304-.485 3.067-.857 4.365-.142 1.854 1.023.228 2.774-.301 1.451"/></g><g fill="#d0d0d0"><path d="m8.804 26.944c-.831.311-1.627.721-2.311 1.326-.306.271-.936.861-.738 1.461.097.294-.262.426-.358.13-.242-.736.221-1.343.599-1.755.72-.783 1.696-1.263 2.644-1.613.229-.086.394.367.164.451"/><path d="m6.606 20.909c-.83.309-1.627.72-2.31 1.326-.306.271-.936.86-.738 1.461.097.294-.262.426-.359.13-.241-.737.222-1.343.599-1.756.72-.782 1.697-1.262 2.644-1.614.231-.084.396.368.164.453"/><path d="m4.41 14.875c-.831.308-1.627.719-2.311 1.324-.305.271-.935.861-.738 1.461.097.294-.262.426-.358.131-.242-.738.221-1.343.599-1.755.72-.783 1.697-1.262 2.644-1.614.23-.086.395.367.164.453"/><path d="m11 32.98c-.831.309-1.627.72-2.31 1.326-.307.271-.936.86-.739 1.461.097.294-.261.426-.358.131-.241-.736.221-1.344.599-1.755.72-.784 1.697-1.263 2.644-1.615.229-.086.394.367.164.452"/></g><g fill="#3e4347"><circle cx="17.464" cy="39.23" r="1.609"/><circle cx="19.688" cy="45.34" r="1.609"/><circle cx="21.884" cy="51.38" r="1.609"/><circle cx="24.08" cy="57.41" r="1.609"/><path d="m19.21 55.53c-.26-.713-.227-1.592-1.03-1.349-1.125.339-2.413.578-3.235-.28-.301-.313-.859-.284-1.027.155-.24.627.434 1.342.928 1.614 1.305.723 3.047.329 4.364-.14m-4.076-1.335c.028.049.011.018 0 0"/><path d="m17.01 49.49c-.106-.293-.213-.586-.32-.88-.211-.581-.054-.668-.711-.47-1.123.34-2.413.58-3.236-.279-.301-.314-.859-.283-1.026.156-.239.626.434 1.342.928 1.614 1.305.721 3.049.329 4.365-.141m-4.076-1.335c.032.048.008.014 0 0"/><path d="m14.813 43.46c-.26-.713-.228-1.593-1.031-1.35-1.127.341-2.41.578-3.235-.28-.301-.313-.859-.282-1.027.156-.24.626.435 1.343.928 1.615 1.305.722 3.05.327 4.365-.141m-4.077-1.335c.027.047.012.018 0 0"/><path d="m21.403 61.56c-.107-.293-.214-.587-.32-.88-.212-.581-.054-.669-.711-.471-1.124.34-2.412.58-3.235-.279-.301-.313-.859-.282-1.026.156-.239.627.435 1.343.928 1.615 1.305.722 3.048.329 4.364-.141m-4.077-1.335c.042.067.003 0 0 0"/></g><g fill="#94989b"><path d="m21.355 51.57c-.547-1.363-5.942.844-6.342 2.364.028-.092.031-.079.01.037.008-.032.006-.063-.006-.095.398 1.213-1.369 1.263-1.299-.283.08-1.747 2.169-2.812 3.571-3.331 1.306-.484 3.066-.858 4.366-.142 1.855 1.026.23 2.773-.3 1.45"/><path d="m19.16 45.536c-.533-1.355-5.949.835-6.341 2.363.027-.092.03-.08.009.037.009-.031.008-.063-.005-.094.397 1.212-1.369 1.261-1.299-.283.079-1.75 2.169-2.81 3.571-3.332 1.305-.484 3.066-.858 4.365-.142 1.856 1.024.23 2.772-.3 1.451"/><path d="m16.962 39.5c-.543-1.354-5.948.832-6.341 2.363.027-.091.03-.078.009.037.009-.031.007-.063-.006-.093.398 1.212-1.369 1.262-1.299-.283.08-1.749 2.169-2.812 3.571-3.332 1.305-.485 3.067-.858 4.366-.142 1.855 1.024.23 2.773-.3 1.45"/><path d="m23.552 57.61c-.543-1.365-5.94.846-6.341 2.363.027-.092.03-.079.009.037.009-.031.007-.063-.006-.094.398 1.211-1.369 1.263-1.298-.283.08-1.749 2.17-2.81 3.572-3.332 1.305-.484 3.067-.857 4.365-.141 1.855 1.025.228 2.772-.301 1.45"/></g><g fill="#d0d0d0"><path d="m17.647 51.24c-.831.311-1.627.72-2.311 1.326-.306.271-.936.86-.738 1.46.097.295-.262.427-.358.131-.242-.737.221-1.343.599-1.755.72-.783 1.697-1.263 2.644-1.613.23-.086.395.366.164.451"/><path d="m15.45 45.21c-.83.309-1.627.72-2.31 1.326-.306.27-.936.859-.738 1.461.097.294-.262.426-.358.131-.242-.738.221-1.344.599-1.756.719-.783 1.696-1.264 2.644-1.615.23-.084.395.368.163.453"/><path d="m13.254 39.17c-.831.308-1.627.72-2.311 1.323-.305.272-.935.861-.737 1.463.097.293-.262.426-.359.13-.242-.737.221-1.343.599-1.755.72-.783 1.697-1.263 2.645-1.613.229-.086.393.365.163.452"/><path d="m19.844 57.28c-.831.31-1.627.721-2.31 1.326-.306.271-.936.86-.738 1.461.097.293-.262.426-.359.13-.241-.736.222-1.343.6-1.755.719-.783 1.696-1.263 2.644-1.613.229-.087.393.366.163.451"/></g><path transform="matrix(.9397-.3421.3421.9397-5.684 11.806)" fill="#fff" d="m21.514 18.463h18.234v7.113h-18.234z"/><path fill="#3e4347" d="m38.03 19.265c-1.573 1.128-3.673 1.339-5.174 2.595-1.129.944-.994 3.656-2.199.925-.172.222-.368.421-.589.597-.181-.767.023-1.569-.124-2.35-1.901.848-2.726 3.104-3.443 4.893.048-1.677.858-3.604-.012-5.192-1.78 1.013-2.885 3.166-3.203 5.133.491-1.771 1.426-3.811 3.107-4.812.759 1.653-.078 3.687.007 5.42.607-1.809 1.539-4.258 3.398-5.146.112.835-.127 1.596.124 2.43.262-.141.491-.327.688-.561 1.232 2.669 1.38-.247 2.401-1.157 1.442-1.287 3.584-1.561 5.02-2.775"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.7 3.4l-13.9 56.9 27.9-7.5c3.1-.9 5-4 4.1-7.1l-10.9-38.3c-.9-3.1-4.1-4.8-7.2-4" fill="#3e4347"/><path d="m41.4 2.8l-11.6 57.5 27.6-8.7c3.1-1 4.8-4.2 3.8-7.2l-12.4-37.9c-1-3-4.3-4.6-7.4-3.7" fill="#e9f3fa"/><path d="m39.5 2.4l-26.2 9.4-4.1 1.5c-3 1.1-3.1 2.8-2 5.8l14.8 40.1c1.1 3 1.9 3.4 5 2.3l4.1-1.5 26.2-9.4c3-1.1 4.6-4.4 3.5-7.4l-13.8-37.5c-1.1-2.9-4.4-4.4-7.5-3.3" fill="#d3976e"/><path fill="#fff" d="m40.1 22.9l-16.2 5.8-2.4-6.3 16.3-5.8z"/><g fill="#3e4347"><path d="m25.3 56.1c1.1-.4 1.7-1.6 1.3-2.8-.4-1.1-1.7-1.7-2.8-1.3-1.1.4-1.7 1.6-1.3 2.8.4 1.2 1.6 1.7 2.8 1.3"/><path d="m21.1 44.7c1.1-.4 1.7-1.6 1.3-2.7-.4-1.1-1.7-1.7-2.8-1.3-1.1.4-1.7 1.6-1.3 2.7.4 1.2 1.7 1.8 2.8 1.3"/><path d="m17 33.7c1.1-.4 1.7-1.6 1.3-2.7-.4-1.1-1.7-1.7-2.8-1.3-1.1.4-1.7 1.6-1.3 2.7.4 1.2 1.7 1.7 2.8 1.3"/><path d="m12.6 21.7c1.1-.4 1.7-1.6 1.3-2.8-.4-1.1-1.7-1.7-2.8-1.3-1.1.4-1.7 1.6-1.3 2.7.4 1.2 1.7 1.8 2.8 1.4"/></g><g fill="#7d8b91"><path d="m12.7 19.4c-1.6-3.9-12-.4-10.6 3.7.9 2.6 3.9 2.7 7.1 1.7l-.6-1.7c0 0-3.7 1.2-4.3-.5-.6-1.8 6.3-3.5 6.8-2.5.5.9 2.2.5 1.6-.7"/><path d="m17.2 31.3c-1.6-3.9-12-.4-10.6 3.7.9 2.6 3.9 2.7 7 1.6l-.6-1.7c0 0-3.7 1.2-4.3-.5-.7-1.8 6.3-3.5 6.8-2.4.5 1 2.2.6 1.7-.7"/><path d="m21.3 42.3c-1.6-3.9-12-.4-10.6 3.7.9 2.6 3.9 2.7 7 1.7l-.7-1.7c0 0-3.6 1.2-4.2-.5-.6-1.8 6.3-3.5 6.8-2.5.5 1 2.2.6 1.7-.7"/><path d="m25.4 53.7c-1.6-3.9-12-.4-10.6 3.7.9 2.6 3.9 2.7 7 1.7l-.6-1.7c0 0-3.7 1.2-4.3-.5-.6-1.8 6.3-3.5 6.8-2.5.5 1 2.2.6 1.7-.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d3.svg
index e6a9799..604ba14 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m41.977 1.537l-28.34 7.951-4.474 1.256c-3.295.925-3.516 2.766-2.606 6l12.298 43.828c.91 3.24 1.781 3.719 5.076 2.794l4.475-1.255 28.339-7.952c3.296-.925 5.229-4.301 4.321-7.54l-11.477-40.895c-.909-3.239-4.318-5.116-7.612-4.191"/><path fill="#d0d0d0" d="m39.604.9l-27.991 9.103-4.419 1.437c-3.255 1.059-3.4 2.906-2.36 6.105l14.07 43.29c1.04 3.199 1.931 3.643 5.185 2.584l4.42-1.436 27.992-9.102c3.254-1.059 5.05-4.51 4.01-7.71l-13.13-40.39c-1.041-3.199-4.523-4.935-7.778-3.878"/><path fill="#42ade2" d="m37.559.381l-27.66 10.07 18.694 51.36 27.659-10.07c3.216-1.17 4.89-4.682 3.739-7.844l-14.525-39.913c-1.152-3.161-4.692-4.775-7.907-3.605"/><path fill="#3e4347" d="m5.532 12.04c-3.216 1.17-3.296 3.02-2.146 6.183l15.569 42.776c1.151 3.162 2.056 3.574 5.271 2.403l4.367-1.589-18.694-51.36-4.367 1.591"/><path transform="matrix(.9397-.3421.3421.9397-5.057 12.365)" fill="#fff" d="m23.406 16.961h18.234v7.113h-18.234z"/><path fill="#3e4347" d="m25.31 24.398c.211-.897.487-1.632.905-2.477.129-.262 1.921-2.721 2.226-1.927.526 1.375-.208 3.26-.233 4.71-.002.15.197.159.246.033.458-1.192.962-2.318 1.647-3.396.293-.864.824-1.155 1.591-.873.129 2.195-.22-.45.068 1.647.01.075.124.12.184.075 1.037-.787.597.906 1.45.702.768-.184 1.319-1.246 1.058-1.96.029.08.106.111.184.075 1.844-.881 3.762-1.888 5.385-3.146.127-.099-.052-.274-.178-.177-.267.207-5.204 3.034-5.2 3.046-.039-.106-.214-.131-.24 0-.184.892-1.223 1.923-1.759.694-.032-.073-.146-.08-.196-.025-.443-.503-.626-1.08-.551-1.731-.005-.095-.102-.155-.188-.108-1.569.86-2.351 2.399-3.05 3.99-.438.995-.217.637-.021-.855.157-1.197.261-2.209-.174-3.348-.027-.071-.111-.123-.184-.075-1.762 1.175-2.73 3.03-3.207 5.058-.041.159.2.225.237.068"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.2 3.4l-26.1 7.5-4.1 1.2c-3 .9-3.2 2.6-2.4 5.6l11.3 41.1c.8 3 1.6 3.5 4.7 2.6l4.1-1.2 26.1-7.5c3-.9 4.8-4 4-7.1l-10.6-38.2c-.8-3.1-4-4.8-7-4" fill="#3e4347"/><path d="m39 2.8l-25.8 8.5-4.1 1.3c-3 1-3.1 2.7-2.2 5.7l13 40.6c1 3 1.8 3.4 4.8 2.4l4.1-1.3 25.8-8.5c3-1 4.7-4.2 3.7-7.2l-12.1-37.8c-1-3-4.2-4.6-7.2-3.7" fill="#d0d0d0"/><path d="m37.1 2.4l-25.5 9.4 17.2 48.2 25.5-9.4c3-1.1 4.5-4.4 3.4-7.4l-13.3-37.5c-1-2.9-4.3-4.4-7.3-3.3" fill="#42ade2"/><path d="m7.6 13.3c-3 1.1-3 2.8-2 5.8l14.4 40.1c1.1 3 1.9 3.4 4.9 2.3l4-1.5-17.3-48.2-4 1.5" fill="#3e4347"/><path fill="#fff" d="m41.5 21.4l-15.8 5.9-2.2-6.3 15.8-5.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d4.svg
index aa20271..211f080 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d4.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M41.977,1.537L28,62l28.743-7.837c3.296-0.924,5.23-4.3,4.321-7.539L49.589,5.728
- C48.681,2.489,45.271,0.612,41.977,1.537z"/><path fill="#e9f3fa" d="m39.604.901l-11.604 61.1 28.506-9.118c3.254-1.059 5.05-4.51 4.01-7.709l-13.13-40.4c-1.041-3.199-4.523-4.935-7.778-3.877"/><path fill="#c28fef" d="m37.559.381l-27.66 10.07 18.694 51.36 27.66-10.07c3.216-1.171 4.89-4.683 3.74-7.845l-14.527-39.914c-1.152-3.161-4.692-4.775-7.907-3.605"/><g opacity=".5" fill="#9450e0"><path d="m17.04 12.691l-.88 1.933-1.915-.917.875-1.933 1.92.917"/><path d="m22.615 10.66l-.876 1.932-1.914-.917.877-1.932 1.913.917"/><path d="m28.2 8.629l-.881 1.932-1.913-.916.874-1.933 1.92.917"/><path d="m33.776 6.598l-.876 1.932-1.914-.917.877-1.932 1.913.917"/><path d="m39.36 4.566l-.88 1.933-1.913-.917.876-1.933 1.917.917"/><path d="m20.862 14.525l-.876 1.932-1.916-.916.879-1.933 1.913.917"/><path d="m26.443 12.494l-.877 1.932-1.914-.917.877-1.932 1.914.917"/><path d="m32.02 10.462l-.87 1.933-1.92-.917.88-1.933 1.91.917"/><path d="m37.604 8.431l-.876 1.933-1.915-.917.877-1.932 1.914.916"/><path d="m43.19 6.4l-.88 1.933-1.91-.917.87-1.933 1.92.917"/><path d="m19.11 18.39l-.877 1.932-1.914-.917.877-1.932 1.914.917"/><path d="m24.689 16.358l-.876 1.933-1.914-.917.877-1.933 1.913.917"/><path d="m30.27 14.328l-.877 1.932-1.913-.917.876-1.932 1.914.917"/><path d="m35.851 12.296l-.876 1.933-1.915-.917.878-1.933 1.913.917"/><path d="m41.43 10.265l-.875 1.933-1.913-.917.876-1.933 1.912.917"/><path d="m22.936 20.224l-.876 1.936-1.91-.921.87-1.932 1.916.917"/><path d="m28.516 18.19l-.876 1.94-1.914-.92.877-1.935 1.913.915"/><path d="m34.1 16.16l-.88 1.93-1.91-.91.87-1.936 1.92.916"/><path d="m39.678 14.13l-.876 1.93-1.914-.91.877-1.937 1.913.917"/><path d="m45.26 12.1l-.88 1.93-1.911-.91.871-1.938 1.92.918"/><path d="m21.18 24.09l-.873 1.93-1.914-.92.877-1.93 1.91.92"/><path d="m43.506 15.964l-.877 1.932-1.914-.917.877-1.929 1.914.914"/><path d="m25.01 25.922l-.88 1.932-1.91-.916.88-1.938 1.91.922"/><path d="m47.33 17.798l-.87 1.932-1.917-.917.877-1.932 1.91.917"/><path d="m23.257 29.787l-.876 1.932-1.914-.916.877-1.933 1.913.917"/><path d="m28.837 27.756l-.876 1.932-1.911-.917.874-1.932 1.913.917"/><path d="m34.419 25.725l-.877 1.932-1.915-.916.877-1.933 1.915.917"/><path d="m39.999 23.694l-.879 1.932-1.91-.917.88-1.932 1.909.917"/><path d="m45.58 21.663l-.877 1.932-1.914-.917.877-1.932 1.914.917"/><path d="m27.08 31.621l-.87 1.933-1.916-.917.876-1.933 1.91.917"/><path d="m32.665 29.59l-.876 1.932-1.914-.917.876-1.932 1.914.917"/><path d="m38.25 27.559l-.88 1.932-1.914-.917.874-1.932 1.92.917"/><path d="m43.826 25.527l-.876 1.933-1.91-.917.873-1.932 1.913.916"/><path d="m49.41 23.497l-.88 1.932-1.913-.917.873-1.932 1.92.917"/><path d="m25.332 35.486l-.876 1.932-1.914-.916.876-1.933 1.914.917"/><path d="m30.912 33.455l-.872 1.933-1.92-.917.879-1.933 1.913.917"/><path d="m36.492 31.424l-.876 1.936-1.914-.921.877-1.932 1.913.917"/><path d="m42.07 29.393l-.87 1.927-1.92-.912.88-1.932 1.91.917"/><path d="m47.653 27.361l-.876 1.929-1.914-.913.877-1.933 1.913.917"/><path d="m29.16 37.32l-.88 1.93-1.911-.91.881-1.937 1.91.917"/><path d="m34.739 35.29l-.876 1.93-1.914-.92.877-1.93 1.913.92"/><path d="m40.32 33.26l-.877 1.93-1.914-.92.881-1.93 1.91.92"/><path d="m45.9 31.23l-.88 1.93-1.91-.92.877-1.93 1.913.92"/><path d="m51.48 29.2l-.876 1.93-1.914-.92.877-1.93 1.913.92"/><path d="m27.406 41.19l-.876 1.93-1.914-.92.877-1.93 1.913.92"/><path d="m32.986 39.15l-.876 1.94-1.91-.92.87-1.93 1.916.91"/><path d="m38.566 37.12l-.876 1.93-1.914-.91.877-1.93 1.913.91"/><path d="m44.15 35.09l-.88 1.93-1.91-.91.87-1.94 1.92.92"/><path d="m49.728 33.06l-.876 1.933-1.914-.913.876-1.94 1.914.92"/><path d="m31.23 43.02l-.873 1.931-1.914-.921.877-1.93 1.91.92"/><path d="m36.813 40.987l-.875 1.933-1.918-.92.88-1.93 1.913.917"/><path d="m42.4 38.956l-.882 1.934-1.914-.918.876-1.932 1.92.916"/><path d="m47.975 36.925l-.875 1.932-1.91-.917.87-1.93 1.915.915"/><path d="m53.56 34.895l-.881 1.932-1.914-.917.877-1.932 1.918.917"/><path d="m29.48 46.884l-.877 1.931-1.913-.916.877-1.932 1.913.917"/><path d="m35.06 44.853l-.87 1.932-1.92-.917.88-1.932 1.91.917"/><path d="m40.641 42.821l-.876 1.933-1.914-.917.877-1.932 1.913.916"/><path d="m46.22 40.79l-.88 1.933-1.91-.917.88-1.933 1.91.917"/><path d="m51.802 38.759l-.876 1.932-1.916-.917.879-1.932 1.913.917"/><path d="m33.31 48.718l-.879 1.931-1.914-.916.877-1.932 1.916.917"/><path d="m38.888 46.687l-.878 1.931-1.91-.916.875-1.932 1.913.917"/><path d="m44.47 44.655l-.878 1.933-1.914-.917.877-1.933 1.915.917"/><path d="m50.05 42.624l-.88 1.933-1.91-.917.87-1.932 1.92.916"/><path d="m55.629 40.593l-.876 1.933-1.914-.918.877-1.932 1.913.917"/><path d="m31.554 52.583l-.877 1.937-1.913-.921.876-1.934 1.914.918"/><path d="m37.13 50.552l-.87 1.928-1.92-.913.88-1.933 1.91.918"/><path d="m42.715 48.52l-.876 1.93-1.914-.91.877-1.936 1.913.916"/><path d="m48.3 46.49l-.88 1.93-1.914-.91.874-1.938 1.92.918"/><path d="m53.876 44.46l-.876 1.93-1.91-.92.873-1.929 1.913.919"/><path d="m35.38 54.42l-.874 1.93-1.915-.92.878-1.93 1.911.92"/><path d="m40.962 52.39l-.872 1.93-1.92-.92.88-1.93 1.912.92"/><path d="m46.543 50.35l-.877 1.94-1.914-.92.877-1.93 1.914.91"/><path d="m52.12 48.32l-.87 1.94-1.92-.92.88-1.93 1.91.91"/><path d="m57.703 46.29l-.876 1.93-1.914-.91.877-1.93 1.913.91"/></g><path fill="#3e4347" d="m5.533 12.04c-3.217 1.171-3.297 3.02-2.146 6.184l15.568 42.776c1.151 3.162 2.056 3.574 5.272 2.404l4.366-1.59-18.694-51.36-4.366 1.59"/><path transform="matrix(.9397-.3421.3421.9397-5.057 12.364)" fill="#fff" d="m23.407 16.962h18.233v7.113h-18.233z"/><path fill="#3e4347" d="m39.922 17.763c-1.573 1.128-3.673 1.339-5.174 2.595-1.129.944-.994 3.656-2.199.925-.172.222-.368.42-.589.597-.181-.767.023-1.57-.124-2.35-1.902.847-2.726 3.104-3.444 4.893.048-1.677.858-3.604-.012-5.193-1.78 1.013-2.884 3.167-3.203 5.133.491-1.772 1.426-3.811 3.107-4.812.759 1.653-.078 3.687.007 5.42.608-1.809 1.54-4.258 3.399-5.146.112.835-.127 1.596.124 2.429.262-.141.491-.327.687-.56 1.232 2.668 1.38-.248 2.401-1.157 1.443-1.285 3.584-1.56 5.02-2.774"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.2 3.4l-12.9 56.7 26.5-7.3c3-.9 4.8-4 4-7.1l-10.6-38.3c-.8-3.1-4-4.8-7-4" fill="#3e4347"/><path d="m39 2.8l-10.7 57.3 26.3-8.5c3-1 4.7-4.2 3.7-7.2l-12.1-37.9c-1-3-4.2-4.6-7.2-3.7" fill="#e9f3fa"/><path d="m37.1 2.4l-25.5 9.4 17.2 48.2 25.5-9.4c3-1.1 4.5-4.4 3.4-7.4l-13.3-37.5c-1-2.9-4.3-4.4-7.3-3.3" fill="#c28fef"/><g fill="#a67acc"><path d="m23.8 12.4l-1.5 3.3-3.2-1.6 1.4-3.3z"/><path d="m33.1 8.9l-1.5 3.3-3.2-1.5 1.5-3.4z"/><path d="m42.4 5.5l-1.4 3.3-3.2-1.6 1.4-3.3z"/><path d="m20.8 19l-1.4 3.3-3.2-1.6 1.4-3.3z"/><path d="m30.2 15.5l-1.5 3.4-3.2-1.6 1.5-3.3z"/><path d="m39.5 12.1l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m27.3 22.2l-1.5 3.3-3.2-1.6 1.4-3.3z"/><path d="m45.9 15.3l-1.4 3.3-3.2-1.6 1.4-3.3z"/><path d="m24.3 28.8l-1.4 3.3-3.2-1.6 1.4-3.3z"/><path d="m33.7 25.3l-1.5 3.3-3.2-1.5 1.5-3.3z"/><path d="m43 21.9l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m30.8 32l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m40.1 28.5l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m49.4 25l-1.4 3.4-3.2-1.6 1.4-3.3z"/><path d="m27.8 38.6l-1.4 3.3-3.2-1.6 1.4-3.3z"/><path d="m37.2 35.1l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m46.5 31.7l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m34.3 41.7l-1.5 3.3-3.2-1.5 1.5-3.3z"/><path d="m43.6 38.3l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m52.9 34.8l-1.4 3.3-3.2-1.5 1.4-3.3z"/><path d="m31.3 48.4l-1.4 3.3-3.2-1.6 1.4-3.3z"/><path d="m40.7 44.9l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m50 41.5l-1.4 3.3-3.3-1.6 1.5-3.3z"/><path d="m37.8 51.5l-1.5 3.3-3.2-1.5 1.5-3.4z"/><path d="m47.1 48.1l-1.5 3.3-3.2-1.6 1.5-3.3z"/><path d="m56.4 44.6l-1.4 3.3-3.2-1.6 1.4-3.3z"/></g><path d="m7.6 13.3c-3 1.1-3 2.8-2 5.8l14.4 40.1c1.1 3 1.9 3.4 4.9 2.3l4-1.5-17.3-48.2-4 1.5" fill="#3e4347"/><path fill="#fff" d="m41.5 21.4l-15.8 5.9-2.2-6.3 15.8-5.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d5.svg
index 2093a43..be6b7fa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#962c2c" d="m54.976 35.15l7.527 7.438-33.29 15.79c0 0-4.406 2.02-6.482-1.203-8.214-12.731 32.25-22.02 32.25-22.02"/><path fill="#d9e3e8" d="m28.371 49.13c0 0-6.373 2.238-5.205 6.468 1.215 4.393 6.281 1.722 6.281 1.722l31.623-14.729c0 0-1.776-4.664 1.434-7.838l-34.13 14.377"/><path fill="#ed4c5c" d="m33.732 5l30.27 29.523-35.789 14.01-22.976-35.874z"/><path fill="#fff" d="m34.616 11.742l5.827 6.175-21.75 7.755-5.136-7.867z"/><g fill="#94989b"><path d="M61.05 38.02 39.873 46.625 60.65 37.1z"/><path d="m60.724 40.558l-22.504 9.297 22.1-10.213z"/><path d="M60.932 42.04 32.21 54.45 60.52 41.13z"/></g><path fill="#c94747" d="m22.73 57.17c-3.492-7.318 5.482-8.645 5.482-8.645l-22.978-35.874c0 0-5.234-.143-5.234 5.27 0 2.233 1.019 3.897 1.019 3.897l21.711 35.35"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55,35.1l7.5,7.4L29.2,58.4c0,0-4.4,2-6.5-1.2C14.5,44.4,55,35.1,55,35.1z" fill="#962c2c"/><path d="m28.4 49.1c0 0-6.4 2.2-5.2 6.5 1.2 4.4 6.3 1.7 6.3 1.7l31.6-14.7c0 0-1.8-4.7 1.4-7.8l-34.1 14.3" fill="#d9e3e8"/><path fill="#ed4c5c" d="m33.7 5l30.3 29.5-35.8 14-23-35.8z"/><path fill="#fff" d="m34.6 11.7l5.8 6.2-21.7 7.8-5.1-7.9z"/><g fill="#94989b"><path d="m61 38l-21.1 8.6 20.8-9.5z"/><path d="m60.7 40.6l-22.5 9.3 22.1-10.3z"/><path d="M60.9 42 32.2 54.4 60.5 41.1z"/></g><path d="m22.7 57.2c-3.5-7.3 5.5-8.6 5.5-8.6l-23-35.9c0 0-5.2-.1-5.2 5.3 0 2.2 1 3.9 1 3.9l21.7 35.3" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d6.svg
index 0b17c43..40a387e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m64 58h-64l5.656-45.99h52.684z"/><path fill="#b0bdc6" d="m26.22 8.437c-5.777 0-16.593 1.876-20.07.753 0 0 .858 19.66-3.981 47.42 6.885-.492 16.07-4.4 22.948-4.4 6.881 0 6.943 4.4 6.943 4.4l.012-43.32c0 0-.075-4.859-5.852-4.859"/><path fill="#e1ebef" d="m26.28 7.686c-5.792 0-14.687 1.811-17.372-1.679 0 0 .857 22.261-5.107 47.19 2.18 3.057 14.04-1.064 20.924-1.064 6.883 0 7.334 4.482 7.334 4.482l.012-44.05c0 0 .001-4.885-5.791-4.885"/><path fill="#94989b" d="m25.12 52.21c-6.879 0-19.05 4.4-22.948 4.4h29.891c0 0-.063-4.4-6.943-4.4"/><g fill="#7d8b91"><path d="m11.82 14.225l.079-.844c.947 0 2.601-.326 4.512-.702 2.62-.516 5.574-1.098 7.967-1.098 3.179 0 4.248.717 4.359.798l-.273.331-.268.336c-.01-.006-.962-.636-3.848-.636-2.311 0-5.229.576-7.815 1.087-1.966.391-3.669.728-4.713.728"/><path d="m11.418 18.543l.082-.877c.965 0 2.652-.339 4.602-.73 2.673-.537 5.686-1.142 8.125-1.142 3.241 0 4.331.745 4.445.831l-.279.344-.272.35c-.01-.006-.981-.661-3.925-.661-2.354 0-5.332.599-7.97 1.131-2.01.404-3.744.754-4.808.754"/><path d="m10.999 23.04l.086-.913c.985 0 2.707-.353 4.696-.76 2.728-.558 5.802-1.188 8.29-1.188 3.307 0 4.418.775 4.535.864l-.285.358-.278.364c-.011-.007-1-.688-4-.688-2.403 0-5.441.624-8.134 1.178-2.048.421-3.822.785-4.907.785"/><path d="m10.563 27.721l.088-.951c1.01 0 2.764-.368 4.795-.792 2.784-.582 5.924-1.238 8.463-1.238 3.373 0 4.508.808 4.627.901l-.291.373-.284.379c-.011-.007-1.022-.718-4.085-.718-2.453 0-5.554.65-8.303 1.227-2.091.439-3.903.819-5.01.819"/><path d="m10.11 32.602l.093-.992c1.027 0 2.823-.384 4.897-.825 2.844-.607 6.05-1.291 8.642-1.291 3.445 0 4.602.844 4.725.939l-.298.389-.29.396c-.011-.008-1.043-.748-4.171-.748-2.505 0-5.671.678-8.48 1.279-2.136.458-3.986.853-5.118.853"/><path d="m9.632 37.695l.097-1.037c1.049 0 2.885-.398 5-.859 2.906-.635 6.181-1.348 8.828-1.348 3.519 0 4.7.879 4.825.979l-.305.406-.297.414c-.01-.008-1.064-.781-4.26-.781-2.558 0-5.794.707-8.663 1.336-2.182.476-4.073.89-5.23.89"/><path d="m9.137 43.01l.101-1.084c1.072 0 2.949-.416 5.116-.896 2.971-.662 6.319-1.408 9.02-1.408 3.596 0 4.803.918 4.93 1.023l-.311.424-.303.432c-.012-.008-1.088-.816-4.354-.816-2.614 0-5.922.74-8.856 1.395-2.232.498-4.166.93-5.347.93"/><path d="m8.619 48.572l.105-1.131c1.097 0 3.02-.438 5.233-.939 3.039-.691 6.461-1.471 9.228-1.471 3.676 0 4.909.959 5.04 1.068l-.318.443-.311.451c-.012-.01-1.111-.854-4.451-.854-2.672 0-6.05.773-9.06 1.459-2.282.523-4.261.974-5.469.974"/></g><path fill="#b0bdc6" d="m37.805 8.437c5.775 0 16.592 1.876 20.07.753 0 0-.861 19.66 3.977 47.42-6.885-.492-16.07-4.4-22.947-4.4-6.88 0-6.943 4.4-6.943 4.4l-.008-43.32c0 0 .075-4.859 5.853-4.859"/><path fill="#d9e3e8" d="m37.744 7.68c5.791 0 14.686 1.81 17.371-1.68 0 0-.859 22.262 5.104 47.2-2.182 3.057-14.04-1.064-20.926-1.064-6.882 0-7.333 4.48-7.333 4.48l-.008-44.05c0 0 0-4.884 5.792-4.884"/><path fill="#94989b" d="m38.902 52.21c6.881 0 19.05 4.4 22.947 4.4h-29.89c0 0 .063-4.4 6.943-4.4"/><g fill="#7d8b91"><path d="m52.2 14.225l-.078-.844c-.947 0-2.602-.326-4.512-.702-2.619-.516-5.574-1.098-7.967-1.098-3.178 0-4.248.717-4.359.798l.273.331.268.336c.01-.006.963-.636 3.848-.636 2.311 0 5.229.576 7.814 1.087 1.967.391 3.67.728 4.713.728"/><path d="m52.607 18.543l-.082-.877c-.965 0-2.652-.339-4.602-.73-2.672-.537-5.686-1.142-8.125-1.142-3.242 0-4.332.745-4.445.831l.279.344.271.35c.01-.006.982-.661 3.926-.661 2.354 0 5.332.599 7.969 1.131 2.01.404 3.745.754 4.809.754"/><path d="m53.02 23.04l-.084-.913c-.984 0-2.707-.353-4.697-.76-2.727-.558-5.801-1.188-8.289-1.188-3.307 0-4.418.775-4.535.864l.285.357.277.364c.01-.007 1-.688 4-.688 2.402 0 5.439.624 8.133 1.178 2.049.422 3.822.786 4.906.786"/><path d="m53.46 27.721l-.09-.951c-1.01 0-2.764-.368-4.795-.792-2.783-.582-5.922-1.238-8.461-1.238-3.375 0-4.51.808-4.627.901l.289.373.285.379c.01-.007 1.021-.718 4.086-.718 2.451 0 5.553.65 8.303 1.227 2.09.439 3.901.819 5.01.819"/><path d="m53.918 32.602l-.094-.992c-1.027 0-2.822-.384-4.896-.825-2.844-.607-6.05-1.291-8.643-1.291-3.445 0-4.602.844-4.723.939l.297.389.289.396c.012-.008 1.043-.748 4.172-.748 2.504 0 5.672.678 8.479 1.279 2.137.458 3.986.853 5.119.853"/><path d="m54.39 37.695l-.096-1.037c-1.049 0-2.885-.398-5-.859-2.906-.635-6.182-1.348-8.83-1.348-3.518 0-4.699.879-4.824.979l.305.406.297.414c.01-.008 1.064-.781 4.26-.781 2.557 0 5.793.707 8.662 1.336 2.183.476 4.073.89 5.23.89"/><path d="m54.887 43.01l-.102-1.084c-1.072 0-2.949-.416-5.115-.896-2.971-.662-6.318-1.408-9.02-1.408-3.596 0-4.803.918-4.93 1.023l.309.424.305.432c.01-.008 1.088-.816 4.354-.816 2.613 0 5.922.74 8.855 1.395 2.231.498 4.165.93 5.347.93"/><path d="m55.4 48.572l-.105-1.131c-1.096 0-3.02-.438-5.232-.939-3.039-.691-6.463-1.471-9.229-1.471-3.676 0-4.91.959-5.04 1.068l.316.443.311.451c.012-.01 1.113-.854 4.451-.854 2.674 0 6.06.773 9.06 1.459 2.283.523 4.261.974 5.47.974"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m64 58h-64l5.7-46h52.6z"/><path d="m26.2 8.4c-5.8 0-16.6 1.9-20.1.8 0 0 .9 19.7-4 47.4 6.9-.5 16.1-4.4 22.9-4.4 6.9 0 6.9 4.4 6.9 4.4v-43.3c.2 0 .1-4.9-5.7-4.9" fill="#b0bdc6"/><path d="m26.3 7.7c-5.8 0-14.7 1.8-17.4-1.7 0 0 .9 22.3-5.1 47.2 2.2 3.1 14-1.1 20.9-1.1 6.9 0 7.3 4.5 7.3 4.5v-44c.1 0 .1-4.9-5.7-4.9" fill="#e1ebef"/><path d="m25.1 52.2c-6.9 0-19 4.4-22.9 4.4h29.9c0 0-.1-4.4-7-4.4" fill="#94989b"/><g fill="#7d8b91"><path d="m11.8 14.2l.1-.8c.9 0 2.6-.3 4.5-.7 2.6-.5 5.6-1.1 8-1.1 3.2 0 4.2.7 4.4.8l-.3.3-.3.3c0 0-1-.6-3.8-.6-2.3 0-5.2.6-7.8 1.1-2 .4-3.7.7-4.8.7"/><path d="m11.4 18.5l.1-.9c1 0 2.7-.3 4.6-.7 2.7-.5 5.7-1.1 8.1-1.1 3.2 0 4.3.7 4.4.8l-.2.4-.3.4c0 0-1-.7-3.9-.7-2.4 0-5.3.6-8 1.1-2 .4-3.7.7-4.8.7"/><path d="m11 23l.1-.9c1 0 2.7-.4 4.7-.8 2.7-.6 5.8-1.2 8.3-1.2 3.3 0 4.4.8 4.5.9l-.3.4-.3.4c0 0-1-.7-4-.7-2.4 0-5.4.6-8.1 1.2-2 .4-3.8.7-4.9.7"/><path d="m10.6 27.7l.1-1c1 0 2.8-.4 4.8-.8 2.8-.6 5.9-1.2 8.5-1.2 3.4 0 4.5.8 4.6.9l-.4.4-.2.4c0 0-1-.7-4.1-.7-2.5 0-5.6.6-8.3 1.2-2.1.4-3.9.8-5 .8"/><path d="m10.1 32.6l.1-1c1 0 2.8-.4 4.9-.8 2.8-.6 6-1.3 8.6-1.3 3.4 0 4.6.8 4.7.9l-.3.4-.3.4c0 0-1-.7-4.2-.7-2.5 0-5.7.7-8.5 1.3-2 .4-3.9.8-5 .8"/><path d="m9.6 37.7l.1-1c1 0 2.9-.4 5-.9 2.9-.6 6.2-1.3 8.8-1.3 3.5 0 4.7.9 4.8 1l-.3.4-.3.4c0 0-1.1-.8-4.3-.8-2.6 0-5.8.7-8.7 1.3-2 .5-3.9.9-5.1.9"/><path d="m9.1 43l.1-1.1c1.1 0 2.9-.4 5.1-.9 3-.7 6.3-1.4 9-1.4 3.6 0 4.8.9 4.9 1l-.2.5-.3.4c0 0-1.1-.8-4.4-.8-2.6 0-5.9.7-8.9 1.4-2.1.5-4.1.9-5.3.9"/><path d="m8.6 48.6l.1-1.1c1.1 0 3-.4 5.2-.9 3-.7 6.5-1.5 9.2-1.5 3.7 0 4.9 1 5 1.1l-.3.4-.2.4c0 0-1.1-.9-4.5-.9-2.7 0-6.1.8-9.1 1.5-2.2.5-4.2 1-5.4 1"/></g><path d="m37.8 8.4c5.8 0 16.6 1.9 20.1.8 0 0-.9 19.7 4 47.4-6.9-.5-16.1-4.4-22.9-4.4-6.9 0-6.9 4.4-6.9 4.4v-43.3c-.1 0-.1-4.9 5.7-4.9" fill="#b0bdc6"/><path d="m37.7 7.7c5.8 0 14.7 1.8 17.4-1.7 0 0-.9 22.3 5.1 47.2-2.2 3.1-14-1.1-20.9-1.1-6.9 0-7.3 4.5-7.3 4.5v-44c0 0 0-4.9 5.7-4.9" fill="#d9e3e8"/><path d="m38.9 52.2c6.9 0 19 4.4 22.9 4.4h-29.8c0 0 0-4.4 6.9-4.4" fill="#94989b"/><g fill="#7d8b91"><path d="m52.2 14.2l-.1-.8c-.9 0-2.6-.3-4.5-.7-2.6-.5-5.6-1.1-8-1.1-3.2 0-4.2.7-4.4.8l.3.3.3.3c0 0 1-.6 3.8-.6 2.3 0 5.2.6 7.8 1.1 2.1.4 3.8.7 4.8.7"/><path d="m52.6 18.5l-.1-.9c-1 0-2.7-.3-4.6-.7-2.7-.5-5.7-1.1-8.1-1.1-3.2 0-4.3.7-4.4.8l.3.3.3.4c0 0 1-.7 3.9-.7 2.4 0 5.3.6 8 1.1 1.9.5 3.6.8 4.7.8"/><path d="m53 23l-.1-.9c-1 0-2.7-.4-4.7-.8-2.7-.6-5.8-1.2-8.3-1.2-3.3 0-4.4.8-4.5.9l.3.4.3.4c0 0 1-.7 4-.7 2.4 0 5.4.6 8.1 1.2 2.1.4 3.8.7 4.9.7"/><path d="m53.5 27.7l-.1-1c-1 0-2.8-.4-4.8-.8-2.8-.6-5.9-1.2-8.5-1.2-3.4 0-4.5.8-4.6.9l.3.4.3.4c0 0 1-.7 4.1-.7 2.5 0 5.6.6 8.3 1.2 2 .4 3.9.8 5 .8"/><path d="m53.9 32.6l-.1-1c-1 0-2.8-.4-4.9-.8-2.8-.6-6-1.3-8.6-1.3-3.4 0-4.6.8-4.7.9l.3.4.3.4c0 0 1-.7 4.2-.7 2.5 0 5.7.7 8.5 1.3 2 .4 3.9.8 5 .8"/><path d="m54.4 37.7l-.1-1c-1 0-2.9-.4-5-.9-2.9-.6-6.2-1.3-8.8-1.3-3.5 0-4.7.9-4.8 1l.3.4.3.4c0 0 1.1-.8 4.3-.8 2.6 0 5.8.7 8.7 1.3 2 .5 3.9.9 5.1.9"/><path d="m54.9 43l-.1-1.1c-1.1 0-2.9-.4-5.1-.9-3-.7-6.3-1.4-9-1.4-3.6 0-4.8.9-4.9 1l.3.4.3.4c0 0 1.1-.8 4.4-.8 2.6 0 5.9.7 8.9 1.4 2.1.6 4 1 5.2 1"/><path d="m55.4 48.6l-.1-1.1c-1.1 0-3-.4-5.2-.9-3-.7-6.5-1.5-9.2-1.5-3.7 0-4.9 1-5 1.1l.3.4.3.5c0 0 1.1-.9 4.5-.9 2.7 0 6.1.8 9.1 1.5 2.1.4 4.1.9 5.3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d7.svg
index b7a3211..5ef4524 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#547725" d="m54.976 35.15l7.527 7.439-33.29 15.79c0 0-4.406 2.02-6.482-1.204-8.214-12.73 32.25-22.02 32.25-22.02"/><path fill="#d9e3e8" d="m28.37 49.13c0 0-6.373 2.238-5.205 6.467 1.215 4.393 6.281 1.722 6.281 1.722l31.623-14.728c0 0-1.776-4.664 1.434-7.838l-34.13 14.377"/><path fill="#83bf4f" d="M33.732 5 63.999 34.524 28.21 48.53 5.234 12.655z"/><path fill="#fff" d="m34.616 11.742l5.827 6.175-21.75 7.755-5.136-7.867z"/><g fill="#94989b"><path d="M61.05 38.02 39.873 46.626 60.65 37.1z"/><path d="m60.724 40.559l-22.504 9.297 22.1-10.213z"/><path d="M60.932 42.05 32.2 54.45 60.52 41.13z"/></g><path fill="#699635" d="m22.729 57.17c-3.492-7.317 5.482-8.644 5.482-8.644l-22.977-35.875c0 0-5.234-.143-5.234 5.27 0 2.233 1.019 3.897 1.019 3.897l21.71 35.35"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55,35.1l7.5,7.4L29.2,58.4c0,0-4.4,2-6.5-1.2C14.5,44.4,55,35.1,55,35.1z" fill="#547725"/><path d="m28.4 49.1c0 0-6.4 2.2-5.2 6.5 1.2 4.4 6.3 1.7 6.3 1.7l31.6-14.7c0 0-1.8-4.7 1.4-7.8l-34.1 14.3" fill="#d9e3e8"/><path fill="#83bf4f" d="m33.7 5l30.3 29.5-35.8 14-23-35.8z"/><path fill="#fff" d="m34.6 11.7l5.8 6.2-21.7 7.8-5.1-7.9z"/><g fill="#94989b"><path d="m61 38l-21.1 8.6 20.8-9.5z"/><path d="m60.7 40.6l-22.5 9.3 22.1-10.3z"/><path d="M60.9 42 32.2 54.5 60.5 41.1z"/></g><path d="m22.7 57.2c-3.5-7.3 5.5-8.6 5.5-8.6l-23-35.9c0 0-5.2-.1-5.2 5.3 0 2.2 1 3.9 1 3.9l21.7 35.3" fill="#699635"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d8.svg
index 4a5b891..3e1ba1c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#256382" d="m54.975 35.15l7.529 7.439-33.29 15.79c0 0-4.407 2.02-6.483-1.204-8.214-12.73 32.25-22.02 32.25-22.02"/><path fill="#d9e3e8" d="m28.371 49.13c0 0-6.374 2.238-5.205 6.467 1.214 4.393 6.28 1.722 6.28 1.722l31.624-14.728c0 0-1.777-4.664 1.434-7.838l-34.13 14.377"/><path fill="#42ade2" d="M33.732 5 64 34.524 28.21 48.53 5.234 12.655z"/><path fill="#fff" d="m34.617 11.742l5.826 6.175-21.75 7.755-5.136-7.867z"/><g fill="#94989b"><path d="M61.05 38.02 39.873 46.626 60.65 37.1z"/><path d="m60.724 40.559l-22.504 9.297 22.1-10.213z"/><path d="M60.932 42.05 32.21 54.45 60.52 41.13z"/></g><path fill="#428bc1" d="m22.729 57.17c-3.491-7.317 5.482-8.644 5.482-8.644l-22.977-35.875c0 0-5.234-.143-5.234 5.27 0 2.233 1.019 3.897 1.019 3.897l21.71 35.35"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55,35.1l7.5,7.4L29.2,58.4c0,0-4.4,2-6.5-1.2C14.5,44.4,55,35.1,55,35.1z" fill="#256382"/><path d="m28.4 49.1c0 0-6.4 2.2-5.2 6.5 1.2 4.4 6.3 1.7 6.3 1.7l31.6-14.7c0 0-1.8-4.7 1.4-7.8l-34.1 14.3" fill="#d9e3e8"/><path fill="#42ade2" d="m33.7 5l30.3 29.5-35.8 14-23-35.8z"/><path fill="#fff" d="m34.6 11.7l5.8 6.2-21.7 7.8-5.1-7.9z"/><g fill="#94989b"><path d="m61 38l-21.1 8.6 20.8-9.5z"/><path d="m60.7 40.6l-22.5 9.3 22.1-10.3z"/><path d="M60.9 42 32.2 54.5 60.5 41.1z"/></g><path d="m22.7 57.2c-3.5-7.3 5.5-8.6 5.5-8.6l-23-35.9c0 0-5.2-.1-5.2 5.3 0 2.2 1 3.9 1 3.9l21.7 35.3" fill="#428bc1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4d9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4d9.svg
index 3a0e7aa..0758e63 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4d9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4d9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#962c2c" d="m54.976 35.15l7.528 7.439-33.29 15.79c0 0-4.407 2.02-6.483-1.204-8.214-12.73 32.25-22.02 32.25-22.02"/><path fill="#d9e3e8" d="m28.371 49.13c0 0-6.374 2.238-5.205 6.467 1.214 4.393 6.28 1.722 6.28 1.722l31.624-14.728c0 0-1.776-4.664 1.434-7.838l-34.13 14.377"/><path fill="#ffce31" d="M33.733 5 64 34.524 28.21 48.53 5.234 12.655z"/><path fill="#fff" d="m34.617 11.742l5.827 6.175-21.751 7.755-5.135-7.867z"/><g fill="#94989b"><path d="M61.05 38.02 39.874 46.626 60.65 37.1z"/><path d="m60.725 40.559l-22.505 9.297 22.1-10.213z"/><path d="M60.933 42.05 32.21 54.45 60.52 41.13z"/></g><path fill="#ff8736" d="m22.729 57.17c-3.491-7.317 5.482-8.644 5.482-8.644l-22.977-35.875c0 0-5.234-.143-5.234 5.27 0 2.233 1.019 3.897 1.019 3.897l21.71 35.35"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55,35.1l7.5,7.4L29.2,58.4c0,0-4.4,2-6.5-1.2C14.5,44.4,55,35.1,55,35.1z" fill="#962c2c"/><path d="m28.4 49.1c0 0-6.4 2.2-5.2 6.5 1.2 4.4 6.3 1.7 6.3 1.7l31.6-14.7c0 0-1.8-4.7 1.4-7.8l-34.1 14.3" fill="#d9e3e8"/><path fill="#ffce31" d="m33.7 5l30.3 29.5-35.8 14-23-35.8z"/><path fill="#fff" d="m34.6 11.7l5.8 6.2-21.7 7.8-5.1-7.9z"/><g fill="#94989b"><path d="m61 38l-21.1 8.6 20.8-9.5z"/><path d="m60.7 40.6l-22.5 9.3 22.1-10.3z"/><path d="M60.9 42 32.2 54.5 60.5 41.1z"/></g><path d="m22.7 57.2c-3.5-7.3 5.5-8.6 5.5-8.6l-23-35.9c0 0-5.2-.1-5.2 5.3 0 2.2 1 3.9 1 3.9l21.7 35.3" fill="#ff8736"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4da.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4da.svg
index d72da05..8469d33 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4da.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4da.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#256382" d="m54.875 39.67l7.253 7.589-32.07 16.11c0 0-4.246 2.056-6.247-1.229-7.913-12.985 31.07-22.466 31.07-22.466"/><path fill="#d9e3e8" d="m29.24 53.93c0 0-6.142 2.282-5.02 6.597 1.169 4.48 6.05 1.756 6.05 1.756l30.467-15.02c0 0-1.713-4.759 1.381-7.997l-32.884 14.667"/><path fill="#42ade2" d="m34.409 8.914l29.16 30.12-34.48 14.29-22.14-36.598z"/><g fill="#94989b"><path d="m60.742 42.587l-20.412 8.793 20-9.703z"/><path d="M60.43 45.17 38.733 54.673 60.01 44.27z"/><path d="M60.63 46.689 32.938 59.36 60.2 45.787z"/></g><path fill="#428bc1" d="m23.809 62.14c-3.362-7.464 5.282-8.817 5.282-8.817l-22.14-36.598c0 0-5.04-.146-5.04 5.375 0 2.278.979 3.976.979 3.976l20.918 36.06"/><path fill="#547725" d="m8.694 32.18l-7.253 7.589 32.07 16.11c0 0 4.246 2.055 6.247-1.228 7.913-12.986-31.07-22.468-31.07-22.468"/><path fill="#d9e3e8" d="m34.33 46.44c0 0 6.142 2.283 5.01 6.598-1.168 4.481-6.05 1.756-6.05 1.756l-30.467-15.02c0 0 1.712-4.758-1.381-7.997l32.884 14.667"/><path fill="#83bf4f" d="M29.16 1.424 0 31.542 34.479 45.829 56.61 9.232z"/><g fill="#94989b"><path d="M3.243 34.19 23.24 43.888 2.827 35.1z"/><path d="M3.56 36.776 24.836 47.18 3.14 37.685z"/><path d="M3.369 38.3 30.631 51.868 2.938 39.2z"/></g><path fill="#699635" d="m39.761 54.648c3.362-7.467-5.282-8.819-5.282-8.819l22.13-36.597c0 0 5.04-.145 5.04 5.375 0 2.279-.98 3.976-.98 3.976l-20.916 36.07"/><path fill="#962c2c" d="m56.664 25.951l6.119 6.403-27.06 13.59c0 0-3.583 1.734-5.271-1.036-6.675-10.957 26.21-18.957 26.21-18.957"/><path fill="#d9e3e8" d="m35.04 37.983c0 0-5.183 1.925-4.231 5.566.985 3.78 5.105 1.481 5.105 1.481l25.706-12.677c0 0-1.445-4.02 1.164-6.747l-27.744 12.377"/><path fill="#ed4c5c" d="M39.4 0 64 25.413 34.909 37.468 16.231 6.589z"/><path fill="#fff" d="m40.12 5.804l4.732 5.316-17.682 6.674-4.174-6.774z"/><g fill="#94989b"><path d="m61.65 28.483l-17.26 7.346 16.84-8.255z"/><path d="m61.38 30.666l-18.33 7.943 17.914-8.85z"/><path d="M61.55 31.944 38.16 42.563 61.12 31.04z"/></g><path fill="#c94747" d="m30.452 44.908c-2.837-6.299 4.457-7.44 4.457-7.44l-18.678-30.879c0 0-4.255-.123-4.255 4.536 0 1.922.827 3.354.827 3.354l17.649 30.429"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54.9 39.7l7.3 7.6-32.1 16.1c0 0-4.2 2.1-6.2-1.2-8-13 31-22.5 31-22.5" fill="#256382"/><path d="m29.2 53.9c0 0-6.1 2.3-5 6.6 1.2 4.5 6.1 1.8 6.1 1.8l30.5-15c0 0-1.7-4.8 1.4-8l-33 14.6" fill="#d9e3e8"/><path fill="#42ade2" d="M34.4 8.9 63.6 39 29.1 53.3 7 16.7z"/><g fill="#94989b"><path d="m60.7 42.6l-20.4 8.8 20-9.7z"/><path d="M60.4 45.2 38.7 54.7 60 44.3z"/><path d="M60.6 46.7 32.9 59.4 60.2 45.8z"/></g><path d="m23.8 62.1c-3.4-7.5 5.3-8.8 5.3-8.8l-22.1-36.6c0 0-5-.1-5 5.4 0 2.3 1 4 1 4l20.8 36" fill="#428bc1"/><path d="m8.7 32.2l-7.3 7.6 32.1 16.1c0 0 4.2 2.1 6.2-1.2 8-13-31-22.5-31-22.5" fill="#547725"/><path d="m34.3 46.4c0 0 6.1 2.3 5 6.6-1.2 4.5-6 1.8-6 1.8l-30.5-15c0 0 1.7-4.8-1.4-8l32.9 14.6" fill="#d9e3e8"/><path fill="#83bf4f" d="M29.2 1.4 0 31.5 34.5 45.8 56.6 9.2z"/><g fill="#94989b"><path d="m3.2 34.2l20 9.7-20.4-8.8z"/><path d="m3.6 36.8l21.2 10.4-21.7-9.5z"/><path d="M3.4 38.3 30.6 51.9 2.9 39.2z"/></g><path d="m39.8 54.6c3.4-7.5-5.3-8.8-5.3-8.8l22.1-36.6c0 0 5-.1 5 5.4 0 2.3-1 4-1 4l-20.8 36" fill="#699635"/><path d="M56.7,26l6.1,6.4L35.7,45.9c0,0-3.6,1.7-5.3-1C23.8,34,56.7,26,56.7,26z" fill="#962c2c"/><path d="M35,38c0,0-5.2,1.9-4.2,5.6c1,3.8,5.1,1.5,5.1,1.5l25.7-12.7c0,0-1.4-4,1.2-6.7L35,38z" fill="#d9e3e8"/><path fill="#ed4c5c" d="M39.4 0 64 25.4 34.9 37.5 16.2 6.6z"/><path fill="#fff" d="m40.1 5.8l4.8 5.3-17.7 6.7-4.2-6.8z"/><g fill="#94989b"><path d="m61.6 28.5l-17.2 7.3 16.8-8.2z"/><path d="M61.4 30.7 43 38.6 61 29.8z"/><path d="M61.6 31.9 38.2 42.6 61.1 31z"/></g><path d="m30.5 44.9c-2.8-6.3 4.5-7.4 4.5-7.4l-18.8-30.9c0 0-4.3-.1-4.3 4.5 0 1.9.8 3.4.8 3.4l17.8 30.4" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4db.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4db.svg
index 2b406fa..616945d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4db.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4db.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d9e3e8" d="m64 62c0 1.104-.895 2-2 2h-60c-1.104 0-2-.896-2-2v-46c0-1.104.896-2 2-2h60c1.105 0 2 .896 2 2v46"/><path fill="#ed4c5c" d="m61 59c0 1.104-.895 2-2 2h-54c-1.104 0-2-.896-2-2v-40c0-1.104.896-2 2-2h54c1.105 0 2 .896 2 2v40"/><g fill="#fff"><path d="M7.157,29.941V18.925h2.288v4.2h4.282v-4.2h2.286v11.017h-2.286v-4.918H9.444v4.918H7.157z"/><path d="m26.371 20.875h-5.829v2.34h5.351v1.913h-5.351v2.832h6.099v1.981h-8.347v-11.02h8.08v1.95"/><path d="m28.435 18.925h2.302v9.04h5.502v1.981h-7.804v-11.02"/><path d="m37.785 18.925h2.301v9.04h5.5v1.981h-7.801v-11.02"/><path d="m55.615 28.962c-.83.856-2.035 1.285-3.609 1.285-1.573 0-2.777-.429-3.608-1.285-1.116-1.052-1.676-2.566-1.676-4.544 0-2.02.56-3.533 1.676-4.544.831-.857 2.035-1.286 3.608-1.286 1.574 0 2.779.428 3.609 1.286 1.112 1.01 1.668 2.526 1.668 4.544 0 1.978-.555 3.492-1.668 4.544m-1.437-1.675c.535-.672.804-1.629.804-2.869 0-1.236-.269-2.191-.804-2.867s-1.26-1.013-2.172-1.013c-.91 0-1.639.336-2.182 1.01s-.814 1.629-.814 2.87c0 1.24.271 2.197.814 2.869.543.673 1.271 1.01 2.182 1.01.912.001 1.637-.336 2.172-1.01"/></g><path fill="#8b979e" d="m37 14.03c0 1.086-.848 1.967-1.893 1.967h-6.216c-1.045 0-1.892-.88-1.892-1.967v-11.145c0-1.086.847-1.967 1.892-1.967h6.216c1.045 0 1.893.88 1.893 1.967v11.145"/><path fill="#b0bdc6" d="m37 13.11c0 1.086-.848 1.967-1.893 1.967h-6.216c-1.045 0-1.892-.881-1.892-1.967v-11.145c.001-1.086.848-1.966 1.893-1.966h6.216c1.045 0 1.893.88 1.893 1.967v11.144z"/><path fill="#fff" d="m58 56c0 1.104-.895 2-2 2h-48c-1.104 0-2-.896-2-2v-22c0-1.105.896-2 2-2h48c1.105 0 2 .895 2 2v22"/><g fill="#ed4c5c"><path d="m15.11 33.971h1.428v4.746h-.925v-3.21c0-.092.001-.222.003-.388.002-.166.003-.295.003-.385l-.899 3.982h-.964l-.893-3.982c0 .09.001.219.003.385s.003.296.003.388v3.21h-.924v-4.746h1.443l.864 3.732.858-3.732"/><path d="m17.516 39.39l.116.006c.09.004.176.001.258-.01.081-.01.15-.035.206-.074.054-.036.104-.112.149-.229.046-.115.066-.186.06-.212l-1.29-3.665h1.021l.767 2.59.723-2.59h.977l-1.203 3.453c-.232.664-.416 1.077-.552 1.237-.135.159-.407.239-.813.239-.081 0-.147 0-.197 0-.049-.002-.123-.006-.222-.012v-.733"/><path d="m25.707 35.408c.229.19.345.506.345.945v2.363h-.94v-2.135c0-.184-.025-.326-.074-.425-.089-.181-.26-.271-.511-.271-.31 0-.521.133-.636.396-.061.139-.09.318-.09.534v1.899h-.918v-3.503h.889v.513c.117-.182.229-.311.334-.391.188-.141.426-.213.715-.213.361.003.656.099.886.288"/><path d="m28.3 36.582c.17-.021.293-.047.367-.08.131-.056.197-.143.197-.261 0-.144-.051-.243-.152-.298-.1-.055-.249-.082-.445-.082-.219 0-.375.054-.467.161-.064.079-.109.187-.13.321h-.886c.02-.307.105-.559.259-.756.243-.31.661-.465 1.255-.465.385 0 .729.076 1.028.229.3.152.45.44.45.862v1.611c0 .111.001.246.006.404.006.121.024.203.055.246.029.042.074.078.135.105v.135h-.998c-.027-.07-.047-.137-.059-.199-.01-.063-.02-.133-.024-.212-.128.138-.274.254-.441.351-.198.113-.423.17-.673.17-.32 0-.584-.09-.792-.271-.209-.182-.313-.438-.313-.771 0-.432.168-.744.504-.938.184-.104.453-.18.811-.225l.313-.037m.56.429c-.059.036-.117.066-.178.089-.06.022-.142.043-.246.063l-.209.039c-.195.033-.336.076-.422.125-.145.084-.217.214-.217.39 0 .157.045.271.133.34s.195.104.322.104c.201 0 .385-.059.555-.174.168-.115.256-.328.262-.635v-.341"/><path d="m34.951 35.22c.15.061.287.164.409.314.099.123.165.273.2.451.021.119.032.291.032.52l-.007 2.211h-.94v-2.234c0-.133-.021-.242-.064-.328-.081-.162-.231-.244-.45-.244-.254 0-.429.104-.525.314-.049.112-.074.246-.074.403v2.089h-.924v-2.089c0-.208-.021-.36-.064-.454-.076-.17-.229-.255-.453-.255-.263 0-.438.085-.529.255-.049.096-.074.24-.074.432v2.111h-.93v-3.503h.892v.513c.114-.184.221-.313.321-.391.18-.137.41-.205.693-.205.268 0 .484.059.65.176.133.11.233.251.303.422.119-.205.27-.356.447-.453.189-.097.398-.145.631-.145.153 0 .306.029.456.09"/><path d="m38.723 35.28c.244.109.447.282.607.52.144.208.236.449.279.725.025.162.035.393.029.697h-2.556c.015.352.137.598.367.74.14.088.309.132.507.132.209 0 .378-.054.51-.161.07-.059.133-.139.188-.241h.938c-.025.208-.139.419-.341.634-.313.342-.755.512-1.319.512-.468 0-.88-.144-1.237-.432-.356-.287-.535-.756-.535-1.404 0-.608.161-1.074.483-1.398s.74-.488 1.256-.488c.304-.002.58.054.824.164m-1.373.792c-.129.134-.21.315-.244.544h1.582c-.018-.244-.1-.43-.246-.555-.146-.127-.327-.189-.543-.189-.237 0-.419.067-.549.2"/><path d="m42.879 34.789h-.93v-.847h.93v.847m-.93.418h.93v3.51h-.93v-3.51"/><path d="m44.48 37.598c.021.162.063.278.127.348.115.121.326.183.635.183.182 0 .324-.026.432-.081.106-.053.16-.133.16-.24 0-.104-.043-.182-.129-.235s-.406-.146-.96-.276c-.399-.1-.681-.223-.844-.371-.163-.146-.244-.356-.244-.631 0-.324.128-.604.382-.836.256-.232.613-.35 1.076-.35.439 0 .797.088 1.073.263s.436.478.477.907h-.918c-.014-.119-.046-.212-.101-.281-.102-.124-.273-.186-.516-.186-.201 0-.344.031-.43.092-.084.063-.127.136-.127.22 0 .105.045.182.137.229.09.05.408.134.957.255.366.086.641.215.822.39s.271.396.271.659c0 .348-.13.633-.389.852-.26.221-.66.33-1.203.33-.553 0-.961-.116-1.225-.349-.264-.233-.395-.53-.395-.89h.932z"/><path d="m47.42 37.755h.977v.962h-.977v-.962"/><path d="m49.25 37.755h.976v.962h-.976v-.962"/><path d="m51.08 37.755h.976v.962h-.976v-.962"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 60.1c0 1-.8 1.9-1.9 1.9h-56.2c-1 0-1.9-.8-1.9-1.9v-43.1c0-1 .8-1.9 1.9-1.9h56.2c1 0 1.9.8 1.9 1.9v43.1" fill="#d9e3e8"/><path d="m59.2 57.3c0 1-.8 1.9-1.9 1.9h-50.6c-1 0-1.9-.8-1.9-1.9v-37.5c0-1 .8-1.9 1.9-1.9h50.6c1 0 1.9.8 1.9 1.9v37.5" fill="#ff5a79"/><g fill="#fff"><path d="M8.7,30.1V19.7h2.1v3.9h4v-3.9H17v10.3h-2.1v-4.6h-4v4.6H8.7z"/><path d="m26.7 21.6h-5.5v2.2h5v1.8h-5v2.7h5.8v1.9h-7.8v-10.5h7.6c-.1 0-.1 1.9-.1 1.9"/><path d="M28.7,19.7h2.2v8.5H36v1.9h-7.3V19.7z"/><path d="M37.4,19.7h2.2v8.5h5.2v1.9h-7.3V19.7z"/><path d="m54.1 29.2c-.8.8-1.9 1.2-3.4 1.2-1.5 0-2.6-.4-3.4-1.2-1-1-1.6-2.4-1.6-4.3 0-1.9.5-3.3 1.6-4.3.8-.8 1.9-1.2 3.4-1.2 1.5 0 2.6.4 3.4 1.2 1 .9 1.6 2.4 1.6 4.3 0 1.8-.5 3.3-1.6 4.3m-1.3-1.6c.5-.6.8-1.5.8-2.7 0-1.2-.3-2.1-.8-2.7-.5-.6-1.2-.9-2-.9s-1.5.3-2 .9c-.5.6-.8 1.5-.8 2.7s.3 2.1.8 2.7c.5.6 1.2.9 2 .9.8 0 1.5-.3 2-.9"/></g><path d="m36.7 15.2c0 1-.8 1.8-1.8 1.8h-5.8c-1 0-1.8-.8-1.8-1.8v-10.5c0-1 .8-1.8 1.8-1.8h5.8c1 0 1.8.8 1.8 1.8v10.5" fill="#8b979e"/><path d="m36.7 14.3c0 1-.8 1.8-1.8 1.8h-5.8c-1 0-1.8-.8-1.8-1.8v-10.5c0-1 .8-1.8 1.8-1.8h5.8c1 0 1.8.8 1.8 1.8v10.5" fill="#b0bdc6"/><path d="m56.4 54.5c0 1-.8 1.9-1.9 1.9h-45c-1 0-1.9-.8-1.9-1.9v-20.6c0-1 .8-1.9 1.9-1.9h45c1 0 1.9.8 1.9 1.9v20.6" fill="#fff"/><g fill="#ff5a79"><path d="m16.2 33.8h1.3v4.4h-.9v-3c0-.1 0-.2 0-.4 0-.2 0-.3 0-.4l-.8 3.7h-.9l-.8-3.7c0 .1 0 .2 0 .4 0 .2 0 .3 0 .4v3h-.9v-4.4h1.4l.8 3.5.8-3.5"/><path d="m18.4 38.9h.1c.1 0 .2 0 .2 0 .1 0 .1 0 .2-.1 0 0 .1-.1.1-.2s.1-.2.1-.2l-1.1-3.4h1l.7 2.4.7-2.4h.9l-1.1 3.2c-.2.6-.4 1-.5 1.2-.1.2-.4.2-.8.2-.1 0-.1 0-.2 0 0 0-.1 0-.2 0-.1 0-.1-.7-.1-.7"/><path d="m26.1 35.2c.2.2.3.5.3.9v2.2h-.9v-2c0-.2 0-.3-.1-.4-.1-.2-.2-.3-.5-.3-.3 0-.5.1-.6.4-.1.1-.1.3-.1.5v1.8h-.9v-3.3h.8v.5c.1-.2.2-.3.3-.4.2-.1.4-.2.7-.2.5 0 .8.1 1 .3"/><path d="m28.5 36.3c.2 0 .3 0 .3-.1.1-.1.2-.1.2-.2 0-.1 0-.2-.1-.3-.1-.1-.2-.1-.4-.1-.2 0-.4 0-.4.1-.1.1-.1.2-.1.3h-.8c0-.3.1-.5.2-.7.2-.3.6-.4 1.2-.4.4 0 .7.1 1 .2.3.1.4.4.4.8v1.5c0 .1 0 .2 0 .4 0 .1 0 .2.1.2 0 0 .1.1.1.1v.1h-.9c0-.1 0-.1-.1-.2 0-.1 0-.1 0-.2-.1.1-.3.2-.4.3-.2.1-.4.2-.6.2-.3 0-.5-.1-.7-.3-.4 0-.5-.3-.5-.6 0-.4.2-.7.5-.9.2-.1.4-.2.8-.2h.2m.6.4c-.1 0-.1.1-.2.1-.1 0-.1 0-.2.1h-.2c-.2 0-.3.1-.4.1-.1.1-.2.2-.2.4 0 .1 0 .3.1.3.1.1.2.1.3.1.2 0 .4-.1.5-.2.2-.1.2-.3.2-.6l.1-.3"/><path d="m34.8 35c.1.1.3.2.4.3.1.1.2.3.2.4 0 .1 0 .3 0 .5v2.1h-.9v-2.1c0-.1 0-.2-.1-.3-.1-.2-.2-.2-.4-.2-.2 0-.4.1-.5.3 0 .1-.1.2-.1.4v2h-.9v-2c0-.2 0-.3-.1-.4-.1-.2-.2-.2-.4-.2-.2 0-.4.1-.5.2 0 .1-.1.2-.1.4v2h-.9v-3.4h.8v.5c.1-.2.2-.3.3-.4.2-.1.4-.2.6-.2.3 0 .5.1.6.2.1.1.2.2.3.4.1-.2.3-.3.4-.4.2-.1.4-.1.6-.1.4-.1.5 0 .7 0"/><path d="m38.3 35.1c.2.1.4.3.6.5.1.2.2.4.3.7 0 .2 0 .4 0 .7h-2.4c0 .3.1.6.3.7.1.1.3.1.5.1.2 0 .4 0 .5-.2.1-.1.1-.1.2-.2h.9c0 .2-.1.4-.3.6-.3.3-.7.5-1.2.5-.4 0-.8-.1-1.2-.4-.3-.3-.5-.7-.5-1.3 0-.6.2-1 .5-1.3.3-.3.7-.5 1.2-.5.1-.1.4 0 .6.1m-1.3.7c-.1.1-.2.3-.2.5h1.5c0-.2-.1-.4-.2-.5-.1-.1-.3-.2-.5-.2-.3 0-.5.1-.6.2"/><path d="m42.2 34.6h-.9v-.8h.9v.8m-.9.4h.9v3.3h-.9v-3.3"/><path d="m43.7 37.2c0 .2.1.3.1.3.1.1.3.2.6.2.2 0 .3 0 .4-.1.1-.1.2-.1.2-.2 0-.1 0-.2-.1-.2-.1-.1-.4-.1-.9-.3-.4-.1-.6-.2-.8-.3-.2-.1-.2-.3-.2-.6 0-.3.1-.6.4-.8.2-.2.6-.3 1-.3.4 0 .7.1 1 .2.3.2.4.4.4.8h-.9c0-.1 0-.2-.1-.3-.1-.1-.3-.2-.5-.2-.2 0-.3 0-.4.1-.1.1-.1.1-.1.2 0 .1 0 .2.1.2.1 0 .4.1.9.2.3.1.6.2.8.4.2.2.3.4.3.6 0 .3-.1.6-.4.8-.2.2-.6.3-1.1.3-.5 0-.9-.1-1.1-.3-.2-.2-.4-.5-.4-.8l.8.1"/><path d="m46.5 37.4h.9v.9h-.9v-.9"/><path d="m48.2 37.4h.9v.9h-.9v-.9"/><path d="m49.9 37.4h.9v.9h-.9v-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4dc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4dc.svg
index b5b1b7b..6b1d359 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4dc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4dc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m8.829 3.135c0 .684-.551 1.239-1.23 1.239-.679 0-1.23-.555-1.23-1.239v-1.896c0-.684.55-1.239 1.23-1.239.679 0 1.23.555 1.23 1.239v1.896"/><path d="m6.369 60.858c0-.685.551-1.239 1.23-1.239.679 0 1.23.555 1.23 1.239v1.896c0 .684-.551 1.238-1.23 1.238-.679 0-1.23-.555-1.23-1.238v-1.896"/></g><g fill="#a57b5e"><path d="m13.1 5.758c0 1.731-1.394 3.134-3.112 3.134h-4.776c-1.719 0-3.112-1.403-3.112-3.134 0-1.731 1.394-3.134 3.112-3.134h4.776c1.719.001 3.112 1.403 3.112 3.134"/><path d="m2.098 58.23c0-1.73 1.394-3.134 3.112-3.134h4.776c1.719 0 3.112 1.403 3.112 3.134 0 1.731-1.394 3.135-3.112 3.135h-4.776c-1.718 0-3.112-1.403-3.112-3.135"/></g><path fill="#dfcea3" d="m2.388 9.913h10.422v44.17h-10.422z"/><g fill="#89664c"><path d="m15.198 8.528c0 .765-.616 1.385-1.375 1.385h-12.448c-.76 0-1.375-.62-1.375-1.385 0-.765.616-1.385 1.375-1.385h12.449c.758.001 1.374.621 1.374 1.385"/><path d="m0 55.47c0-.764.616-1.385 1.375-1.385h12.449c.759 0 1.375.621 1.375 1.385 0 .766-.616 1.385-1.375 1.385h-12.449c-.76 0-1.375-.62-1.375-1.385"/></g><g fill="#a57b5e"><path d="m8.551 3.135c0 .684-.427 1.239-.952 1.239-.525 0-.952-.555-.952-1.239v-1.896c0-.684.426-1.239.952-1.239.525 0 .952.555.952 1.239v1.896"/><path d="m6.647 60.858c0-.685.426-1.239.952-1.239.525 0 .952.555.952 1.239v1.896c0 .684-.427 1.238-.952 1.238-.525 0-.952-.555-.952-1.238v-1.896"/></g><g fill="#bf9173"><path d="m11.854 5.758c0 1.731-1.078 3.134-2.408 3.134h-3.695c-1.33 0-2.408-1.403-2.408-3.134 0-1.731 1.078-3.134 2.408-3.134h3.695c1.33.001 2.408 1.403 2.408 3.134"/><path d="m3.343 58.23c0-1.73 1.078-3.134 2.408-3.134h3.695c1.33 0 2.408 1.403 2.408 3.134 0 1.731-1.078 3.135-2.408 3.135h-3.695c-1.33 0-2.408-1.403-2.408-3.135"/></g><path fill="#efd8b1" d="m3.567 9.913h8.06v44.17h-8.06z"/><g fill="#a57b5e"><path d="m13.478 8.528c0 .765-.477 1.385-1.063 1.385h-9.63c-.587 0-1.064-.62-1.064-1.385 0-.765.477-1.385 1.064-1.385h9.63c.586.001 1.063.621 1.063 1.385"/><path d="m1.72 55.47c0-.764.477-1.385 1.064-1.385h9.63c.587 0 1.063.621 1.063 1.385 0 .766-.477 1.385-1.063 1.385h-9.63c-.588 0-1.064-.62-1.064-1.385"/></g><g fill="#89664c"><path d="m57.631 3.142c0 .685-.551 1.239-1.23 1.239-.68 0-1.23-.555-1.23-1.239v-1.895c0-.684.551-1.238 1.23-1.238.68 0 1.23.555 1.23 1.238v1.895"/><path d="m55.17 60.865c0-.684.551-1.238 1.23-1.238.68 0 1.23.555 1.23 1.238v1.896c0 .684-.551 1.238-1.23 1.238-.68 0-1.23-.555-1.23-1.238v-1.896"/></g><g fill="#a57b5e"><path d="m61.9 5.766c0 1.73-1.393 3.134-3.111 3.134h-4.776c-1.719 0-3.112-1.403-3.112-3.134 0-1.731 1.394-3.134 3.112-3.134h4.776c1.719 0 3.111 1.403 3.111 3.134"/><path d="m50.9 58.24c0-1.73 1.393-3.135 3.111-3.135h4.776c1.719 0 3.112 1.404 3.112 3.135 0 1.73-1.394 3.135-3.112 3.135h-4.776c-1.718 0-3.111-1.404-3.111-3.135"/></g><path fill="#dfcea3" d="m51.19 9.92h10.422v44.17h-10.422z"/><g fill="#89664c"><path d="m64 8.536c0 .764-.616 1.384-1.375 1.384h-12.449c-.759 0-1.375-.62-1.375-1.385 0-.765.616-1.385 1.375-1.385h12.449c.759.001 1.375.621 1.375 1.386"/><path d="m48.801 55.47c0-.764.616-1.385 1.375-1.385h12.449c.759 0 1.375.621 1.375 1.385 0 .766-.616 1.385-1.375 1.385h-12.449c-.759-.001-1.375-.62-1.375-1.385"/></g><g fill="#a57b5e"><path d="m57.35 3.142c0 .685-.427 1.239-.952 1.239-.525 0-.951-.555-.951-1.239v-1.895c0-.684.426-1.238.951-1.238.525 0 .952.555.952 1.238v1.895"/><path d="m55.45 60.865c0-.684.426-1.238.951-1.238.525 0 .952.555.952 1.238v1.896c0 .684-.427 1.238-.952 1.238-.525 0-.951-.555-.951-1.238v-1.896"/></g><g fill="#bf9173"><path d="m60.66 5.766c0 1.73-1.078 3.134-2.408 3.134h-3.695c-1.329 0-2.407-1.403-2.407-3.134 0-1.731 1.078-3.134 2.407-3.134h3.695c1.33 0 2.408 1.403 2.408 3.134"/><path d="m52.15 58.24c0-1.73 1.078-3.135 2.408-3.135h3.695c1.329 0 2.407 1.404 2.407 3.135 0 1.73-1.078 3.135-2.407 3.135h-3.695c-1.33 0-2.408-1.404-2.408-3.135"/></g><path fill="#efd8b1" d="m52.37 9.92h8.06v44.17h-8.06z"/><g fill="#a57b5e"><path d="m62.28 8.536c0 .765-.477 1.385-1.063 1.385h-9.63c-.588 0-1.064-.62-1.064-1.385 0-.765.477-1.385 1.064-1.385h9.63c.587 0 1.063.62 1.063 1.385"/><path d="m50.52 55.47c0-.764.477-1.385 1.064-1.385h9.63c.587 0 1.063.621 1.063 1.385 0 .766-.477 1.385-1.063 1.385h-9.63c-.587-.001-1.064-.62-1.064-1.385"/></g><path fill="#fff6d7" d="m51.19 54.08c-19.19 4.154-38.38 0-38.38 0v-44.17c19.19 4.082 38.38 0 38.38 0v44.17"/><g fill="none" stroke="#7d8b91" stroke-miterlimit="10"><path d="m17.841 15.871c0 0 4.938 1.5 14.156 1.5 9.844 0 14.594-1.5 14.594-1.5"/><path d="m17.841 20.438c0 0 4.938 1.5 14.156 1.5 9.844 0 14.594-1.5 14.594-1.5"/><path d="m17.841 25c0 0 4.938 1.5 14.156 1.5"/><path d="m24.919 35.32c1.968.188 4.333.32 7.078.32 9.844 0 14.594-1.5 14.594-1.5"/><path d="m17.841 38.705c0 0 4.938 1.5 14.156 1.5 9.844 0 14.594-1.5 14.594-1.5"/><path d="m17.841 43.27c0 0 4.938 1.5 14.156 1.5 9.844 0 14.594-1.5 14.594-1.5"/><path d="m17.841 47.84c0 0 4.938 1.5 14.156 1.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m8.8 3.1c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2v-1.9c0-.6.5-1.2 1.2-1.2.7 0 1.2.6 1.2 1.2v1.9"/><path d="m6.4 60.9c0-.7.6-1.2 1.2-1.2.7 0 1.2.6 1.2 1.2v1.9c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2 0 0 0-1.9 0-1.9"/></g><g fill="#a57b5e"><path d="m13.1 5.8c0 1.7-1.4 3.1-3.1 3.1h-4.8c-1.7 0-3.1-1.4-3.1-3.1 0-1.7 1.4-3.1 3.1-3.1h4.8c1.7-.1 3.1 1.3 3.1 3.1"/><path d="m2.1 58.2c0-1.7 1.4-3.1 3.1-3.1h4.8c1.7 0 3.1 1.4 3.1 3.1 0 1.7-1.4 3.1-3.1 3.1h-4.8c-1.7.1-3.1-1.3-3.1-3.1"/></g><path fill="#dfcea3" d="m2.4 9.9h10.4v44.2h-10.4z"/><g fill="#89664c"><path d="m15.2 8.5c0 .8-.6 1.4-1.4 1.4h-12.4c-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4h12.4c.8 0 1.4.7 1.4 1.4"/><path d="m0 55.5c0-.8.6-1.4 1.4-1.4h12.4c.8 0 1.4.6 1.4 1.4 0 .8-.6 1.4-1.4 1.4h-12.4c-.8-.1-1.4-.7-1.4-1.4"/></g><g fill="#a57b5e"><path d="m8.6 3.1c0 .7-.4 1.2-1 1.2-.5 0-1-.6-1-1.2v-1.9c0-.7.4-1.2 1-1.2.5 0 1 .6 1 1.2v1.9"/><path d="m6.6 60.9c0-.7.4-1.2 1-1.2.5 0 1 .6 1 1.2v1.9c0 .7-.4 1.2-1 1.2-.5 0-1-.6-1-1.2 0 0 0-1.9 0-1.9"/></g><g fill="#bf9173"><path d="m11.9 5.8c0 1.7-1.1 3.1-2.4 3.1h-3.7c-1.3 0-2.4-1.4-2.4-3.1 0-1.7 1.1-3.1 2.4-3.1h3.7c1.3-.1 2.4 1.3 2.4 3.1"/><path d="m3.3 58.2c0-1.7 1.1-3.1 2.4-3.1h3.7c1.3 0 2.4 1.4 2.4 3.1 0 1.7-1.1 3.1-2.4 3.1h-3.6c-1.4.1-2.5-1.3-2.5-3.1"/></g><path fill="#efd8b1" d="m3.6 9.9h8.1v44.2h-8.1z"/><g fill="#a57b5e"><path d="m13.5 8.5c0 .8-.5 1.4-1.1 1.4h-9.6c-.6 0-1.1-.6-1.1-1.4 0-.8.5-1.4 1.1-1.4h9.6c.6 0 1.1.7 1.1 1.4"/><path d="m1.7 55.5c0-.8.5-1.4 1.1-1.4h9.6c.6 0 1.1.6 1.1 1.4 0 .8-.5 1.4-1.1 1.4h-9.6c-.6-.1-1.1-.7-1.1-1.4"/></g><g fill="#89664c"><path d="m57.6 3.1c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2v-1.9c0-.7.6-1.2 1.2-1.2.7 0 1.2.6 1.2 1.2v1.9"/><path d="m55.2 60.9c0-.7.6-1.2 1.2-1.2.7 0 1.2.6 1.2 1.2v1.9c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2v-1.9"/></g><g fill="#a57b5e"><path d="m61.9 5.8c0 1.7-1.4 3.1-3.1 3.1h-4.8c-1.7 0-3.1-1.4-3.1-3.1 0-1.7 1.4-3.1 3.1-3.1h4.8c1.7-.1 3.1 1.3 3.1 3.1"/><path d="m50.9 58.2c0-1.7 1.4-3.1 3.1-3.1h4.8c1.7 0 3.1 1.4 3.1 3.1 0 1.7-1.4 3.1-3.1 3.1h-4.8c-1.7.1-3.1-1.3-3.1-3.1"/></g><path fill="#dfcea3" d="m51.2 9.9h10.4v44.2h-10.4z"/><g fill="#89664c"><path d="m64 8.5c0 .8-.6 1.4-1.4 1.4h-12.4c-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4h12.4c.8.1 1.4.7 1.4 1.4"/><path d="m48.8 55.5c0-.8.6-1.4 1.4-1.4h12.4c.8 0 1.4.6 1.4 1.4 0 .8-.6 1.4-1.4 1.4h-12.4c-.8 0-1.4-.7-1.4-1.4"/></g><g fill="#a57b5e"><path d="m57.4 3.1c0 .7-.4 1.2-1 1.2-.5 0-1-.6-1-1.2v-1.9c0-.7.4-1.2 1-1.2.5 0 1 .6 1 1.2v1.9"/><path d="m55.4 60.9c0-.7.4-1.2 1-1.2.5 0 1 .6 1 1.2v1.9c0 .7-.4 1.2-1 1.2-.5 0-1-.6-1-1.2v-1.9"/></g><g fill="#bf9173"><path d="m60.7 5.8c0 1.7-1.1 3.1-2.4 3.1h-3.7c-1.3 0-2.4-1.4-2.4-3.1 0-1.7 1.1-3.1 2.4-3.1h3.7c1.3-.1 2.4 1.3 2.4 3.1"/><path d="m52.1 58.2c0-1.7 1.1-3.1 2.4-3.1h3.7c1.3 0 2.4 1.4 2.4 3.1 0 1.7-1.1 3.1-2.4 3.1h-3.7c-1.3.1-2.4-1.3-2.4-3.1"/></g><path fill="#efd8b1" d="m52.4 9.9h8.1v44.2h-8.1z"/><g fill="#a57b5e"><path d="m62.3 8.5c0 .8-.5 1.4-1.1 1.4h-9.6c-.6 0-1.1-.6-1.1-1.4 0-.8.5-1.4 1.1-1.4h9.6c.6.1 1.1.7 1.1 1.4"/><path d="m50.5 55.5c0-.8.5-1.4 1.1-1.4h9.6c.6 0 1.1.6 1.1 1.4 0 .8-.5 1.4-1.1 1.4h-9.6c-.6 0-1.1-.7-1.1-1.4"/></g><path d="M51.2,54.1c-19.2,4.2-38.4,0-38.4,0V9.9c19.2,4.1,38.4,0,38.4,0V54.1z" fill="#fff6d7"/><g fill="none" stroke="#7d8b91" stroke-miterlimit="10"><path d="m17.8 15.9c0 0 4.9 1.5 14.2 1.5 9.8 0 14.6-1.5 14.6-1.5"/><path d="m17.8 20.4c0 0 4.9 1.5 14.2 1.5 9.8 0 14.6-1.5 14.6-1.5"/><path d="m17.8 25c0 0 4.9 1.5 14.2 1.5"/><path d="m24.9 35.3c2 .2 4.3.3 7.1.3 9.8 0 14.6-1.5 14.6-1.5"/><path d="m17.8 38.7c0 0 4.9 1.5 14.2 1.5 9.8 0 14.6-1.5 14.6-1.5"/><path d="m17.8 43.3c0 0 4.9 1.5 14.2 1.5 9.8 0 14.6-1.5 14.6-1.5"/><path d="m17.8 47.8c0 0 4.9 1.5 14.2 1.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4dd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4dd.svg
index f2e0181..5e6f46c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4dd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4dd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#efd8b1" d="m0 20.3c0 0 28.19 29.946 31.16 43.7 0 0 8.06-17.928 32.836-25.368 0 0-8.782-20.643-32.19-37 0 0-23.917 7.129-31.811 18.668"/><path fill="#fff6d7" d="m3.171 7.876c0 0 21.98 38.16 22.399 52.47 0 0 11.04-14.801 36.427-14.03 0 0-4.814-22.868-24.598-46.3.001 0-24.493-.796-34.23 7.856"/><g fill="#7d8b91"><path d="m19.885 9.392c-.255.404.255-.402 0 0"/><path d="m19.885 9.392c.193-.304.254-.83.555-1.058.384-.288.842-.125 1.21-.391.764-.552 1.183-1.639 1.895-2.289.822-.75 1.823-1.255 2.865-1.626 1.054-.416 2.156-1.223 3.338-1.157-.452 1.545-1.521 2.832-1.745 4.456-.121.876.016 1.804.067 2.682.204-.662.351-1.384.647-2.01.412-.875 1.268-.778 2.07-1.075.836-.396 1.495-1.061 2.174-1.671.274.476 1.378-.342 1.574.39.085.315 2.838-.064 3.043-.163-.566-.032-2.71.11-2.802-.418-.308-.141-.851-.207-1.346-.244.022-.207-.019-.473.048-.665-.617.44-1.185.938-1.785 1.401-.889.687-2.028.539-2.867 1.155.336-1.013.949-1.901 1.336-2.893.169-.433.283-.877.355-1.336.067-.426.028-.212-.259-.4-1.35-.362-2.841.683-4.02 1.237-1.081.455-2.108 1.058-2.94 1.893-.51.512-1.3 2.336-1.982 2.5-1.363.037-.947 1.262-1.819 1.696-.453.225-.836.195-1.27.531-.547.426-1.221 1.061-1.97 1.023.02-.632.031-1.243-.234-1.833-.755.376-1.144 1.098-1.758 1.631.218-1.566.88-2.949.901-4.564-.859.575-1.438 1.302-1.913 2.218-.575 1.109-1.088 2.892-2.286 3.49-.023-1.538.654-3.01.469-4.558-.19.671-.234 1.63-.443 2.403-.248.919-.431 1.821-.375 2.778 2.154-.314 2.621-3.547 3.886-4.929-.254 1.442-.837 2.711-.72 4.208.896-.541 1.284-1.485 2.096-2.093.283.902-.354 2.087 1.071 1.429.628-.291 1.087-.823 1.66-1.194.407-.26.982-.093 1.271-.551"/><path d="m41.44 13.837c-.399-.35-1.126-.467-1.587-.899-.556-.522-1.553-.274-2.204-.122-1.632.381-2.694.836-4.231-.029.006.489.087 2.534-.697 2.406-.735-.012-.523-2.098-.587-2.753-.356.57-.745 1.08-.745 1.787 0 .523.223.836-.224 1.259-.555.526-1.506.401-2.188.303-.163-1.134.121-2.434.196-3.575-.235 1.019-.471 2.038-.707 3.058-.175.756-.851.909-1.534.706-.134-.177.066-1.024.08-1.234-.616 1.14-1.01 2.485-1.788 3.517-.363.479-1.292.982-1.682.211-.273-.541-.116-1.248-.039-1.823-.456.586-.95 2.315-1.826 2.279.105-.425.444-.773-.061-1.03-.233.446-.431.93-.654 1.386.242-.638.383-1.289.516-1.955-1.322.787-2.125 1.895-2.836 3.242.039-.242.091-.722.061-.891-.107.436-.899 1.922-.417 2.186.707-1.125 1.306-2.331 2.337-3.205-.549 1.468-1.132 2.779-1.423 4.327.636-.741 1.238-1.466 1.684-2.346.145-.287.28-.578.405-.873.324-.753.312-.19.864-.589.531-.379.767-1.113 1.063-1.665-.07 1.754 1.435 2.072 2.399.71.395-.557.667-1.187.971-1.794.019-.009.78.235.848.242.361.035.684-.027.972-.25 1.127.394 2.842.458 3.521-.768 1.233 1.3 2-.721 2.072-1.713 1.214.452 2.337-.088 3.477-.497.654-.235 1.98-.777 2.461.035.493.179 1 .216 1.503.357"/><path d="m30.812 24.09c.024.009.051.01.076.018-.004-.01-.077-.043-.076-.018"/><path d="m30.812 24.09c-.005-.359-.336-.601-.69-.32-.456.36-.207-.309-.175-.682.039-.453.078-.906.117-1.358-.227.406-.487.806-.686 1.226-.385.684-.266 1.966-1.329 2.092.155-.502.296-1 .43-1.511-.547.463-1.104.796-1.128 1.585-.031.975-1.018 3.364-2.313 3.114.113-1.97 1.214-3.788 1.652-5.701-2.02 1.212-3.72 4.154-3.949 6.432 1.026-1.652 1.701-3.584 3.095-4.983-.357 1.479-.902 2.897-1.027 4.425-.021.262.777.115.892.078.693-.226 1.189-.901 1.538-1.504.136-.237.26-.481.371-.731.279-.625.385-.221.948-.473.679-.303.72-1.179 1.38-1.098.727.09 2.235-.079 2.722-.408-.58-.065-1.206.006-1.771-.167 0 .006-.012.007-.077-.016m-.524-.353c.053.058.129.081.156.167-.052-.056-.105-.111-.156-.167"/><path d="m44.09 42.4c.501-.703-.232-.094 0 0"/><path d="m42.21 44.584c.012-.01.021-.022.033-.033-.045.038-.09.077-.126.109.03-.025.064-.051.093-.076"/><path d="m58.44 39.652c-1.814-1.329-3.897-2.099-5.856-3.188.44.622 1.02 1.253 1.286 1.976-1.048.097-.896 1.859-1.027 1.871-.478-.341-1.857.007-2.502.086.02-.111.04-.223.06-.334-1.85 1.225-3.256 2.968-5.688 2.517 1.097-1.689 2.04-3.597 1.897-5.659-1.756.627-2.79 2.343-3.572 3.934-.168-.621-.974-1.128-1.534-.634-.633.53-.881 1.479-1.102 2.236-.271.927-.434 1.883-.487 2.847-.037.659-.138.809.595.791 1.691-.039 3.168-1.957 4.02-3.223 2.171.589 3.497-.449 5.202-1.607.036.786.595 1.298 1.381 1.138.794-.184 1.151-1.192 1.776-1.232.459-.029.751.202 1.264.189.543-.018 1.084-.097 1.623-.158-.558-.733-.786-1.162-1.021-2.125 1.281.343 2.361.611 3.687.575m-16.2 4.899c.144-.123.266-.228-.033.033-.219.187-.187.157-.093.076-.506.423-1.122.882-1.806.864-.001-1.491.17-3.294.943-4.607.379-.644.921-.836 1.473-.255.394.436-.079.828-.095 1.215.098-.18.199-.356.305-.532.118.628.408 1.012.987 1.299-.498.685-1.044 1.345-1.681 1.907m1.853-2.151c-2.405-.984.735-4.079 2.067-4.678-.148 1.698-1.098 3.319-2.067 4.678m6.918-.756c-.821.222-.813-.562-.691-1.126.521.175 1.04.357 1.564.522-.217.279-.527.516-.873.604m2.668-.695l.045-.145c-.019.151-.035.111-.045.145m.185-.604c.06-.114.08-.26.118-.384-.255.111-.519.216-.787.289-.021-.334-.095-1.054.294-1.244.796-.421.751.866.926 1.368-.184-.01-.367-.02-.551-.029m.913-1.836c-.063-.007-.126-.018-.189-.027-.054-.119.009-.11.189.027"/></g><path transform="matrix(.7072-.707.707.7072 2.212 38.4)" fill="#ffce31" d="m36.05 11.179h22.842v10.705h-22.842z"/><path fill="#ed4c5c" d="m62.63 2.332l-.962-.963c-1.826-1.824-4.781-1.823-6.607 0l-3.3 3.303 7.568 7.568 3.301-3.302c1.825-1.824 1.824-4.781 0-6.606"/><path transform="matrix(.7072-.707.707.7072 9.254 41.32)" fill="#93a2aa" d="m53.05 4.137h2.921v10.704h-2.921z"/><path transform="matrix(.7071-.7071.7071.7071 9.257 41.33)" fill="#c7d3d8" d="m53.05 5.282h2.921v8.413h-2.921z"/><path fill="#fed0ac" d="m35.609 20.822l-3.279 8.583 2.257 2.269 8.593-3.282z"/><path fill="#333" d="m31.753 30.903c-.453 1.193.151 1.796 1.342 1.341l4.166-1.591-3.912-3.914-1.596 4.164"/><path transform="matrix(.7071.7071-.7071.7071 23.498-26.647)" fill="#ffdf85" d="m42.13 5.081h3.567v19.922h-3.567z"/><path transform="matrix(.7072.707-.707.7072 28.539-28.735)" fill="#ff8736" d="m47.18 10.126h3.568v19.922h-3.568z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 20.3c0 0 28.2 29.9 31.2 43.7 0 0 8.1-17.9 32.8-25.4 0 0-8.8-20.6-32.2-37 0 0-23.9 7.2-31.8 18.7" fill="#efd8b1"/><path d="m3.2 7.9c0 0 22 38.2 22.4 52.5 0 0 11-14.8 36.4-14 0 0-4.8-22.9-24.6-46.3 0-.1-24.5-.9-34.2 7.8" fill="#fff6d7"/><g fill="#7d8b91"><path d="m19.9 9.4c-.3.4.2-.4 0 0"/><path d="m19.9 9.4c.2-.3.3-.8.6-1.1.4-.3.8-.1 1.2-.4.8-.6 1.2-1.6 1.9-2.3.8-.8 1.8-1.3 2.9-1.6 1.1-.4 2.2-1.2 3.3-1.2-.5 1.5-1.5 2.8-1.7 4.5-.1.9 0 1.8.1 2.7.2-.7.4-1.4.6-2 .4-.9 1.3-.8 2.1-1.1.8-.4 1.5-1.1 2.2-1.7.3.5 1.4-.3 1.6.4.1.3 2.8-.1 3-.2-.6 0-2.7.1-2.8-.4-.3-.1-.9-.2-1.3-.2 0-.2 0-.5 0-.7-.6.4-1.2.9-1.8 1.4-.9.7-2 .5-2.9 1.2.3-1 .9-1.9 1.3-2.9.2-.4.3-.9.4-1.3.1-.4 0-.2-.3-.4-1.4-.4-2.8.7-4 1.2-1.1.5-2.1 1.1-2.9 1.9-.5.5-1.3 2.3-2 2.5-1.4 0-.9 1.3-1.8 1.7-.5.2-.8.2-1.3.5-.5.4-1.2 1.1-2 1 0-.6 0-1.2-.2-1.8-.8.4-1.1 1.1-1.8 1.6.2-1.6.9-2.9.9-4.6-.9.6-1.4 1.3-1.9 2.2-.6 1.1-1.1 2.9-2.3 3.5 0-1.5.7-3 .5-4.6-.3.8-.3 1.8-.5 2.5-.2.9-.4 1.8-.4 2.8 2.2-.3 2.6-3.5 3.9-4.9-.3 1.4-.8 2.7-.7 4.2.9-.5 1.3-1.5 2.1-2.1.3.9-.4 2.1 1.1 1.4.6-.3 1.1-.8 1.7-1.2.3-.2.9 0 1.2-.5"/><path d="m41.4 13.8c-.4-.4-1.1-.5-1.6-.9-.6-.5-1.6-.3-2.2-.1-1.6.4-2.7.8-4.2 0 0 .5.1 2.5-.7 2.4-.7 0-.5-2.1-.6-2.8-.4.6-.7 1.1-.7 1.8 0 .5.2.8-.2 1.3-.6.5-1.5.4-2.2.3-.2-1.1.1-2.4.2-3.6-.2 1-.5 2-.7 3.1-.2.8-.9.9-1.5.7-.1-.2.1-1 .1-1.2-.6 1.1-1 2.5-1.8 3.5-.4.5-1.3 1-1.7.2-.3-.5-.1-1.2 0-1.8-.5.6-1 2.3-1.8 2.3.1-.4.4-.8-.1-1-.2.4-.4.9-.7 1.4.2-.6.4-1.3.5-2-1.3.8-2.1 1.9-2.8 3.2 0-.2.1-.7.1-.9-.1.4-.9 1.9-.4 2.2.7-1.1 1.3-2.3 2.3-3.2-.5 1.5-1.1 2.8-1.4 4.3.6-.7 1.2-1.5 1.7-2.3.1-.3.3-.6.4-.9.3-.8.3-.2.9-.6.5-.4.8-1.1 1.1-1.7-.1 1.8 1.4 2.1 2.4.7.4-.6.7-1.2 1-1.8 0 0 .8.2.8.2.4 0 .7 0 1-.2 1.1.4 2.8.5 3.5-.8 1.2 1.3 2-.7 2.1-1.7 1.2.5 2.3-.1 3.5-.5.7-.2 2-.8 2.5 0 .2.3.7.3 1.2.4"/><path d="m30.8 24.1c0 0 .1 0 0 0"/><path d="m30.8 24.1c0-.4-.3-.6-.7-.3-.5.4-.2-.3-.2-.7 0-.5.1-.9.1-1.4-.2.4-.5.8-.7 1.2-.4.7-.3 2-1.3 2.1.2-.5.3-1 .4-1.5-.5.5-1.1.8-1.1 1.6 0 1-1 3.4-2.3 3.1.1-2 1.2-3.8 1.7-5.7-2 1.2-3.7 4.2-3.9 6.4 1-1.7 1.7-3.6 3.1-5-.4 1.5-.9 2.9-1 4.4 0 .3.8.1.9.1.7-.2 1.2-.9 1.5-1.5.1-.2.3-.5.4-.7.3-.6.4-.2.9-.5.7-.3.7-1.2 1.4-1.1.7.1 2.2-.1 2.7-.4-.6 0-1.2.1-1.9-.1m-.5-.4c.1.1.1.1.2.2-.1 0-.2-.1-.2-.2"/><path d="m44.1 42.4c.5-.7-.2-.1 0 0"/><path d="m42.2 44.6c0 0 0 0 0 0"/><path d="m58.4 39.7c-1.8-1.3-3.9-2.1-5.9-3.2.4.6 1 1.3 1.3 2-1 .1-.9 1.9-1 1.9-.5-.3-1.9 0-2.5.1 0-.1 0-.2.1-.3-1.8 1.2-3.3 3-5.7 2.5 1.1-1.7 2-3.6 1.9-5.7-1.8.6-2.8 2.3-3.6 3.9-.2-.6-1-1.1-1.5-.6-.6.5-.9 1.5-1.1 2.2-.3.9-.4 1.9-.5 2.8 0 .7-.1.8.6.8 1.7 0 3.2-2 4-3.2 2.2.6 3.5-.4 5.2-1.6 0 .8.6 1.3 1.4 1.1.8-.2 1.2-1.2 1.8-1.2.5 0 .8.2 1.3.2.5 0 1.1-.1 1.6-.2-.6-.7-.8-1.2-1-2.1 1.2.3 2.3.6 3.6.6m-16.2 4.9c.2-.2.3-.3 0 0-.3.2-.2.2-.1.1-.5.4-1.1.9-1.8.9 0-1.5.2-3.3.9-4.6.4-.6.9-.8 1.5-.3.4.4-.1.8-.1 1.2.1-.2.2-.4.3-.5.1.6.4 1 1 1.3-.5.6-1 1.3-1.7 1.9m1.9-2.2c-2.4-1 .7-4.1 2.1-4.7-.2 1.7-1.1 3.3-2.1 4.7m6.9-.8c-.8.2-.8-.6-.7-1.1.5.2 1 .4 1.6.5-.2.3-.5.6-.9.6m2.7-.7v-.1c0 .2 0 .1 0 .1m.2-.6c.1-.1.1-.3.1-.4-.3.1-.5.2-.8.3 0-.3-.1-1.1.3-1.2.8-.4.8.9.9 1.4-.2 0-.4 0-.5-.1m.9-1.8c-.1 0-.1 0-.2 0-.1-.1 0-.1.2 0"/></g><path transform="matrix(.7072-.707.707.7072 2.21 38.4031)" fill="#ffce31" d="m36.1 11.2h22.8v10.7h-22.8z"/><path d="m62.6 2.3l-1-1c-1.8-1.8-4.8-1.8-6.6 0l-3.3 3.3 7.6 7.6 3.3-3.3c1.9-1.8 1.9-4.7 0-6.6" fill="#ed4c5c"/><path transform="matrix(.7072-.707.707.7072 9.252 41.321)" fill="#93a2aa" d="m53.1 4.1h2.9v10.7h-2.9z"/><path transform="matrix(.7071-.7071.7071.7071 9.2573 41.3262)" fill="#c7d3d8" d="m53.1 5.3h2.9v8.4h-2.9z"/><path fill="#fed0ac" d="m35.6 20.8l-3.3 8.6 2.3 2.3 8.6-3.3z"/><path d="m31.8 30.9c-.5 1.2.2 1.8 1.3 1.3l4.2-1.6-3.9-3.9-1.6 4.2" fill="#333"/><path transform="matrix(.7071-.7071.7071.7071 2.2265 35.4574)" fill="#ffdf85" d="m34 13.3h19.9v3.6h-19.9z"/><path transform="matrix(.707-.7072.7072.707.1411 40.5113)" fill="#ff8736" d="m39 18.3h19.9v3.6h-19.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4de.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4de.svg
index f4e3bda..a403943 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4de.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4de.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#676e72" d="m58.42 2.51c-2.561-3.465-22.757 11.782-20.2 15.247 1.965 2.659 4.457 4.61 7.098 5.773-2.673 2.693-5.765 5.404-9.197 7.998-3.451 2.604-6.916 4.838-10.242 6.67-.356-2.887-1.499-5.854-3.462-8.51-2.56-3.465-22.755 11.783-20.2 15.247 3.583 4.852 8.919 7.361 13.712 6.974 6.416-.392 16.37-4.872 26.18-12.276 11.277-8.513 18.941-18.313 19.72-24.468.624-4.045-.488-8.696-3.413-12.655"/><g fill="#373e42"><path d="m8.03 47.16c.023.017.048.03.072.046-.255-.182-.598-.424-.072-.046"/><path d="m8.03 47.16c-1.784-1.284-4.402-2.653-3.81-5.117-4.263 4.251 7.07 9.158 10.25 8.319-2.284-.734-4.399-1.775-6.368-3.156.21.15.361.26-.072-.046"/><path d="m47.05 21.818c-2.322-1.153-7.608-3.729-6.834-6.953-4.264 4.252 7.07 9.159 10.25 8.319-1.168-.375-2.316-.818-3.416-1.366"/><path d="m51.779 42.515c.608-.819 1.473-1.614 2.547-2.323.424-.28.539-.855.258-1.283-.281-.43-.854-.55-1.275-.27-1.404.929-2.506 1.984-3.255 3.102-.542-.172-1.112-.284-1.692-.305-1.483-.055-2.832.503-3.896 1.612-.621.643-1.091 1.577-1.377 2.626-1.336.04-2.584.535-3.555 1.436-.854.789-1.398 1.823-1.723 2.89-1.838-.054-3.361.843-4.127 1.397-.406-.336-.852-.64-1.338-.867-1.344-.633-2.803-.648-4.219-.047-.822.348-1.621 1.023-2.295 1.876-1.244-.487-2.588-.522-3.834-.073-1.094.391-2 1.128-2.718 1.982-2.398-1.107-5.628-1.373-8.746-.648-2.848.662-6-.904-6.584-2.653-.484-1.449 1.214-2.476 2.269-2.96.462-.211.667-.76.458-1.228s-.755-.675-1.215-.462c-3.917 1.793-3.578 4.265-3.251 5.244.94 2.814 5.186 4.694 8.737 3.869 2.571-.6 5.276-.427 7.276.398-.621 1.145-.935 2.26-.936 2.89 0 1.793.921 2.591 1.47 2.905.31.18.651.295 1.01.346.687.101 1.417-.037 2.034-.406.809-.486 1.282-1.309 1.267-2.2-.029-1.599-.774-3.02-2.155-4.11-.008-.005-.016-.013-.024-.019.479-.518 1.055-.958 1.728-1.198.834-.3 1.592-.246 2.206-.066-.781 1.589-1.099 3.408-.54 4.875.495 1.299 1.816 2.01 3.213 1.711 1.404-.293 2.348-1.473 2.292-2.871-.063-1.631-.948-3.271-2.337-4.385.436-.506.918-.902 1.393-1.104.953-.404 1.848-.397 2.732.018.277.131.537.293.781.477-.267.298-.496.615-.689.948-.701 1.218-.844 2.595-.402 3.88.604 1.746 2.068 2.147 3.169 1.776 1.396-.466 2.462-2.169 1.829-4.208-.18-.582-.587-1.41-1.192-2.225l-.128-.139c.602-.433 1.455-.86 2.514-.873-.123 1.296.025 2.445.271 3.02.703 1.649 1.863 2.02 2.492 2.097.355.043.715.015 1.061-.077.671-.178 1.289-.59 1.713-1.172.553-.765.666-1.706.301-2.521-.654-1.458-1.896-2.474-3.594-2.935-.01-.002-.02-.006-.031-.008.238-.664.596-1.296 1.119-1.781.65-.602 1.368-.85 2-.926-.096 1.768.326 3.566 1.415 4.695.966 1 2.458 1.133 3.628.314 1.176-.82 1.58-2.275.98-3.539-.698-1.477-2.154-2.638-3.869-3.117.201-.637.49-1.19.848-1.563.719-.744 1.544-1.09 2.521-1.055.305.012.609.059.904.131-.128.379-.215.762-.262 1.143-.168 1.396.242 2.719 1.152 3.728 1.24 1.37 2.744 1.165 3.611.392 1.102-.977 1.414-2.961.031-4.59-.395-.464-1.094-1.065-1.971-1.576m-30.553 16.881c.007.285-.196.466-.366.568-.367.22-.857.236-1.193.045-.447-.257-.542-.844-.541-1.292-.001-.292.232-1.095.698-1.966.912.738 1.384 1.628 1.402 2.645m6.72-1.638c.03.762-.684.948-.826.979-.142.031-.861.143-1.128-.561-.352-.921-.105-2.178.441-3.314.893.773 1.473 1.864 1.513 2.896m5.907-.227c-.476.157-.728-.254-.857-.627-.268-.773-.179-1.58.254-2.332.109-.188.238-.369.386-.545.46.635.76 1.256.869 1.612.341 1.105-.219 1.747-.652 1.892m7.759-3.577c.118.261.003.506-.114.667-.251.346-.696.555-1.08.51-.512-.062-.83-.564-1.01-.977-.114-.269-.216-1.098-.128-2.082 1.129.321 1.912.953 2.327 1.882m5.539-4.143c.326.688-.257 1.141-.376 1.225s-.736.469-1.258-.072c-.685-.71-.951-1.964-.895-3.223 1.126.36 2.089 1.136 2.529 2.07m5.345-2.526c-.377.332-.77.053-1.035-.24-.55-.607-.785-1.383-.682-2.244.027-.216.074-.434.141-.652.673.403 1.191.856 1.434 1.142.747.881.484 1.69.142 1.994"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.4 2.5c-2.5-3.5-22.7 11.8-20.2 15.3 2 2.7 4.5 4.6 7.1 5.8-2.7 2.7-5.8 5.4-9.2 8-3.5 2.6-6.9 4.8-10.2 6.7-.4-2.9-1.5-5.9-3.5-8.5-2.5-3.6-22.7 11.7-20.2 15.1 3.6 4.9 8.9 7.4 13.7 7 6.4-.4 16.4-4.9 26.2-12.3 11.3-8.5 18.9-18.3 19.7-24.5.7-4-.5-8.6-3.4-12.6" fill="#676e72"/><g fill="#373e42"><path d="m8 47.2c.1 0 .1 0 0 0"/><path d="m8 47.2c-1.8-1.3-4.4-2.7-3.8-5.1-4.3 4.3 7.1 9.2 10.2 8.3-2.2-.8-4.3-1.8-6.4-3.2"/><path d="m47.1 21.8c-2.3-1.2-7.6-3.7-6.8-7-4.3 4.3 7.1 9.2 10.2 8.3-1.2-.3-2.3-.7-3.4-1.3"/><path d="m51.8 42.5c.6-.8 1.5-1.6 2.5-2.3.4-.3.5-.9.3-1.3-.3-.4-.9-.5-1.3-.3-1.4.9-2.5 2-3.3 3.1-.5-.2-1.1-.3-1.7-.3-1.5-.1-2.8.5-3.9 1.6-.6.6-1.1 1.6-1.4 2.6-1.3 0-2.6.5-3.6 1.4-.9.8-1.4 1.8-1.7 2.9-1.8-.1-3.4.8-4.1 1.4-.4-.3-.9-.6-1.3-.9-1.3-.6-2.8-.6-4.2 0-.8.3-1.6 1-2.3 1.9-1.2-.5-2.6-.5-3.8-.1-1.1.4-2 1.1-2.7 2-2.4-1.1-5.6-1.4-8.7-.6-2.8.7-6-.9-6.6-2.7-.5-1.4 1.2-2.5 2.3-3 .5-.2.7-.8.5-1.2s-.8-.7-1.2-.5c-3.9 1.8-3.6 4.3-3.3 5.2.9 2.8 5.2 4.7 8.7 3.9 2.6-.6 5.3-.4 7.3.4-.6 1.1-.9 2.3-.9 2.9 0 1.8.9 2.6 1.5 2.9.3.2.7.3 1 .3.7.1 1.4 0 2-.4.8-.5 1.3-1.3 1.3-2.2 0-1.6-.8-3-2.2-4.1.5-.5 1.1-1 1.7-1.2.8-.3 1.6-.2 2.2-.1-.8 1.6-1.1 3.4-.5 4.9.5 1.3 1.8 2 3.2 1.7 1.4-.3 2.3-1.5 2.3-2.9-.1-1.6-.9-3.3-2.3-4.4.4-.5.9-.9 1.4-1.1 1-.4 1.8-.4 2.7 0 .3.1.5.3.8.5-.3.3-.5.6-.7.9-.7 1.2-.8 2.6-.4 3.9.6 1.7 2.1 2.1 3.2 1.8 1.4-.5 2.5-2.2 1.8-4.2-.2-.6-.6-1.4-1.2-2.2l-.1-.1c.6-.4 1.5-.9 2.5-.9-.1 1.3 0 2.4.3 3 .7 1.6 1.9 2 2.5 2.1.4 0 .7 0 1.1-.1.7-.2 1.3-.6 1.7-1.2.6-.8.7-1.7.3-2.5-.7-1.5-1.9-2.5-3.6-2.9.2-.7.6-1.3 1.1-1.8.7-.6 1.4-.8 2-.9-.1 1.8.3 3.6 1.4 4.7 1 1 2.5 1.1 3.6.3 1.2-.8 1.6-2.3 1-3.5-.7-1.5-2.2-2.6-3.9-3.1.2-.6.5-1.2.8-1.6.7-.7 1.5-1.1 2.5-1.1.3 0 .6.1.9.1-.1.4-.2.8-.3 1.1-.2 1.4.2 2.7 1.2 3.7 1.2 1.4 2.7 1.2 3.6.4 1.1-1 1.4-3 0-4.6-.4-.2-1.1-.8-2-1.3m-30.6 16.9c0 .3-.2.5-.4.6-.4.2-.9.2-1.2 0-.4-.3-.5-.8-.5-1.3 0-.3.2-1.1.7-2 .9.8 1.4 1.7 1.4 2.7m6.7-1.6c0 .8-.7.9-.8 1s-.9.1-1.1-.6c-.4-.9-.1-2.2.4-3.3.9.7 1.5 1.8 1.5 2.9m6-.3c-.5.2-.7-.3-.9-.6-.3-.8-.2-1.6.3-2.3.1-.2.2-.4.4-.5.5.6.8 1.3.9 1.6.2 1-.3 1.7-.7 1.8m7.7-3.5c.1.3 0 .5-.1.7-.3.3-.7.6-1.1.5-.5-.1-.8-.6-1-1-.1-.3-.2-1.1-.1-2.1 1.1.3 1.9.9 2.3 1.9m5.6-4.2c.3.7-.3 1.1-.4 1.2s-.8.5-1.3 0c-.7-.7-1-2-.9-3.2 1.1.3 2.1 1.1 2.6 2m5.3-2.5c-.4.3-.8.1-1-.2-.5-.6-.8-1.4-.7-2.2 0-.2.1-.4.1-.7.7.4 1.2.9 1.4 1.1.8.9.5 1.7.2 2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4df.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4df.svg
index 567933c..a46aa37 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4df.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4df.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m62 47c0 3.3-2.7 6-6 6h-48c-3.3 0-6-2.7-6-6v-30c0-3.3 2.7-6 6-6h48c3.3 0 6 2.7 6 6v30"/><g fill="#62727a"><path d="m15 48c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v4"/><path d="m23 48c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v4"/><path d="m31 48c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v4"/><path d="m9 15c-1.1 0-2 .899-2 2v22c0 1.101.9 2 2 2h21c1.1 0 2.703.562 3.562 1.249l6.877 5.502c.858.688 2.462 1.249 3.562 1.249h11c1.1 0 2-.899 2-2v-30c0-1.101-.9-2-2-2h-46"/></g><path fill="#3e4347" d="m55 45c0 1.101-.9 2-2 2h-8c-1.1 0-2.721-.54-3.6-1.2l-4.801-3.6c-.879-.66-.699-1.2.4-1.2h16c1.1 0 2 .899 2 2v2z"/><path fill="#83bf4f" d="m46.41 45.76c-.322.322-.851.322-1.173 0-.321-.322-.321-.851 0-1.173l2.345-2.345c.322-.322.85-.322 1.172 0 .322.322.322.851 0 1.173l-2.344 2.345"/><g fill="#b2c1c0"><path d="m19 46l2 1v-2z"/><path d="m29 46l-2 1v-2z"/></g><circle fill="#f15744" cx="12" cy="46" r="1"/><path fill="#c7e755" d="m51 35c0 1.101-.9 2-2 2h-34c-1.1 0-2-.899-2-2v-12c0-1.101.9-2 2-2h34c1.1 0 2 .899 2 2v12"/><path fill="#f15744" d="m55 18c0-.55-.45-1-1-1h-6c-.55 0-1 .45-1 1 0 .55.45 1 1 1h6c.55 0 1-.45 1-1"/><g opacity=".7" fill="#3e4347"><path d="m17.928 28.564l.436.437-.436.437h-2.836l-.437-.437.437-.437h2.836"/><path d="m19.673 28.893l-.218-.219v-2.51l.545-.545.327.327v2.291l-.654.656m.654.872v2.291l-.327.327-.545-.545v-2.51l.218-.219.654.656m2.618-3.819h-2.4l-.436-.437.436-.437h2.4l.437.437-.437.437m.437 6.546l-.437.436h-2.4l-.436-.436.436-.437h2.4l.437.437m-.218-4.255v-2.291l.327-.327.546.545v2.51l-.219.219-.654-.656m.654.872l.219.219v2.51l-.546.545-.327-.327v-2.291l.654-.656"/><path d="m28.4 28.564l.436.437-.436.437h-2.836l-.438-.437.438-.437h2.836"/><path d="m30.15 29l-.218-.218v-3.056l.545-.545.327.873v2.29l-.654.656m.654.764v2.291l-.327.872-.545-.545v-3.055l.218-.219.654.656m2.618-1.419h-.764l-1.637-1.636v-.654h.655l1.745 1.745v.545h.001m.219 0v-2.29l.327-.873.546.545v3.056l-.219.218-.654-.656m.654.763l.219.219v3.055l-.546.545-.327-.872v-2.291l.654-.656"/><path d="m38.873 28.564l.436.437-.436.437h-2.836l-.437-.437.438-.437h2.835"/><path d="m41.27 26.16v2.073l-.654.655-.218-.218v-2.837l.872.327m-.872 6v-2.836l.218-.219.654.655v2.073l-.872.327m4.145.764h-3.6l-.545-.545.872-.327h2.946l.327.872m-.326-6.982h-2.936l-.873-.327.547-.546h3.588l-.326.873m-.11 2.618l.436.437-.436.437h-2.837l-.437-.437.437-.437h2.837"/><path d="m48.909 28.564l.437.437-.437.437h-2.837l-.436-.437.436-.437h2.837"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,47c0,3.3-2.7,6-6,6H8c-3.3,0-6-2.7-6-6V17c0-3.3,2.7-6,6-6h48c3.3,0,6,2.7,6,6V47z" fill="#3e4347"/><g fill="#62727a"><path d="m15 48c0 .5-.4 1-1 1h-4c-.6 0-1-.5-1-1v-4c0-.5.4-1 1-1h4c.6 0 1 .5 1 1v4"/><path d="m23 48c0 .5-.5 1-1 1h-4c-.5 0-1-.5-1-1v-4c0-.5.5-1 1-1h4c.5 0 1 .5 1 1v4"/><path d="m31 48c0 .5-.5 1-1 1h-4c-.5 0-1-.5-1-1v-4c0-.5.5-1 1-1h4c.5 0 1 .5 1 1v4"/><path d="m9 15c-1.1 0-2 .9-2 2v22c0 1.1.9 2 2 2h21c1.1 0 2.7.6 3.6 1.2l6.9 5.5c.9.7 2.5 1.2 3.6 1.2h11c1.1 0 2-.9 2-2v-29.9c0-1.1-.9-2-2-2-.1 0-46.1 0-46.1 0"/></g><path d="m55 45c0 1.1-.9 2-2 2h-8c-1.1 0-2.7-.5-3.6-1.2l-4.8-3.6c-.9-.7-.7-1.2.4-1.2h16c1.1 0 2 .9 2 2v2" fill="#3e4347"/><path d="m46.4 45.8c-.3.3-.9.3-1.2 0-.3-.3-.3-.9 0-1.2l2.3-2.3c.3-.3.8-.3 1.2 0 .3.3.3.9 0 1.2l-2.3 2.3" fill="#83bf4f"/><g fill="#b2c1c0"><path d="m19 46l2 1v-2z"/><path d="m29 46l-2 1v-2z"/></g><circle cx="12" cy="46" r="1" fill="#f15744"/><path d="m51 35c0 1.1-.9 2-2 2h-34c-1.1 0-2-.9-2-2v-12c0-1.1.9-2 2-2h34c1.1 0 2 .9 2 2v12" fill="#c7e755"/><path d="m55 18c0-.5-.5-1-1-1h-6c-.5 0-1 .5-1 1 0 .5.5 1 1 1h6c.5 0 1-.4 1-1" fill="#f15744"/><g opacity=".7" fill="#3e4347"><path d="m17.9 28.6l.4.4-.4.4h-2.8l-.4-.4.4-.4h2.8"/><path d="m19.7 28.9l-.2-.2v-2.5l.5-.5.3.3v2.3l-.6.6m.6.9v2.3l-.3.3-.5-.5v-2.5l.2-.2.6.6m2.6-3.9h-2.4l-.4-.4.4-.4h2.4l.4.4-.4.4m.5 6.6l-.4.4h-2.4l-.4-.4.4-.4h2.4l.4.4m-.2-4.3v-2.3l.3-.3.5.5v2.5l-.2.2-.6-.6m.6.9l.2.2v2.5l-.5.5-.3-.3v-2.3l.6-.6"/><path d="m28.4 28.6l.4.4-.4.4h-2.8l-.5-.4.4-.4h2.9"/><path d="m30.1 29l-.2-.2v-3.1l.5-.5.3.9v2.3l-.6.6m.7.8v2.3l-.3.9-.5-.5v-3.1l.2-.2.6.6m2.6-1.5h-.8l-1.6-1.6v-.7h.7l1.7 1.7v.6m.2 0v-2.3l.3-.9.5.5v3.1l-.1.3-.7-.7m.7.8l.2.2v3.1l-.5.5-.3-.9v-2.3l.6-.6"/><path d="m38.9 28.6l.4.4-.4.4h-2.9l-.4-.4.4-.4h2.9"/><path d="m41.3 26.2v2.1l-.7.7-.2-.2v-2.8l.9.2m-.9 6v-2.8l.2-.2.7.7v2.1l-.9.2m4.1.7h-3.6l-.5-.5.9-.3h2.9l.3.8m-.3-7h-2.9l-.9-.3.5-.5h3.6l-.3.8m-.1 2.7l.4.4-.4.4h-2.8l-.5-.4.4-.4h2.9"/><path d="m48.9 28.6l.4.4-.4.4h-2.8l-.5-.4.4-.4h2.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e0.svg
index fcfa470..7e52dbf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e0.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m6.444 30.89h13.333v31.11h-13.333z"/><g fill="#62727a"><path d="m61.16 41.978c-.233-1.214-1.47-2.199-2.677-2.199-16.918 0-24.947 0-41.865 0-1.207 0-2.443.985-2.677 2.199-1.113 5.889-1.113 11.936 0 17.822.233 1.215 1.47 2.201 2.677 2.201 16.918 0 24.947 0 41.865 0 1.207 0 2.443-.986 2.677-2.201 1.113-5.887 1.113-11.934 0-17.822"/><path d="m56.666 21.949c-.121-1.194-1.222-2.17-2.443-2.17h-35.556c-1.223 0-2.322.977-2.444 2.17l-1.363 13.385h43.14l-1.336-13.385"/></g><g fill="#3e4347"><path d="m58 35.33h-44.22l-.445 4.448h45.12z"/><path d="m33.569 53.11h-16.471c-.973 0-1.765-.832-1.765-1.853v-7.407c0-1.021.792-1.852 1.765-1.852h16.472c.972 0 1.764.83 1.764 1.852v7.407c-.001 1.021-.793 1.853-1.765 1.853m-16.471-9.877c-.324 0-.588.277-.588.617v7.407c0 .341.264.617.588.617h16.472c.324 0 .588-.276.588-.617v-7.407c0-.34-.264-.617-.588-.617h-16.472"/></g><path fill="#c7e755" d="m27.556 46.44c0 .611-.5 1.111-1.111 1.111h-7.777c-.611 0-1.111-.5-1.111-1.111v-1.11c0-.61.5-1.111 1.111-1.111h7.777c.611 0 1.111.501 1.111 1.111v1.11"/><g fill="#3e4347"><path d="m33.11 47c0 .305-.25.555-.556.555h-3.333c-.307 0-.556-.25-.556-.555v-1.111c0-.306.249-.556.556-.556h3.333c.306 0 .556.25.556.556v1.111"/><path d="m55.22 43.667c0 .306-.25.556-.556.556h-3.333c-.307 0-.556-.25-.556-.556v-1.111c0-.305.249-.555.556-.555h3.333c.306 0 .556.25.556.555v1.111"/><path d="m22 50.33c0 .306-.25.556-.556.556h-3.333c-.307 0-.556-.25-.556-.556v-1.111c0-.306.249-.556.556-.556h3.333c.306 0 .556.25.556.556v1.111"/><path d="m33.11 50.33c0 .306-.25.556-.556.556h-3.333c-.307 0-.556-.25-.556-.556v-1.111c0-.306.249-.556.556-.556h3.333c.306 0 .556.25.556.556v1.111"/><path d="m27.556 50.33c0 .306-.25.556-.556.556h-3.333c-.307 0-.556-.25-.556-.556v-1.111c0-.306.249-.556.556-.556h3.333c.306 0 .556.25.556.556v1.111"/></g><g fill="#b2c1c0"><circle cx="32" cy="57.56" r="2.223"/><path d="m59.667 53.11c0-1.228-.996-2.223-2.223-2.223-.909 0-1.688.548-2.032 1.33-.002.001-.003.004-.003.006-.056.127-.098.259-.128.396-.22.48-.586.49-1.17.49-1.842 0-3.333 1.491-3.333 3.332 0 1.842 1.491 3.334 3.333 3.334s3.333-1.492 3.333-3.334c0-.58.009-.939.48-1.166.149-.032.293-.082.431-.145.004 0 .007-.002.012-.003h-.002c.766-.35 1.302-1.119 1.302-2.02"/></g><circle fill="#258399" cx="54.11" cy="56.44" r="2.223"/><g fill="#3e4347"><circle cx="57.45" cy="53.11" r="1.111"/><circle cx="53" cy="47.556" r="1.111"/><path d="M56,39.778l-1.556-15.566C54.322,22.996,53.222,22,52,22H20.889c-1.222,0-2.322,0.995-2.443,2.211
- l-1.557,15.566H56z"/></g><path fill="#f5f5f5" d="m19.777 2h33.33v33.33h-33.33z"/><path fill="#a4b3b2" d="m27.516 39.778l.628-6.193c.091-.886.933-1.635 1.838-1.635h12.926c.905 0 1.747.749 1.838 1.635l.629 6.193h1.07l-.64-6.301c-.146-1.427-1.445-2.588-2.897-2.588h-12.927c-1.451 0-2.751 1.161-2.896 2.588l-.641 6.301h1.072"/><path fill="#62727a" d="m8.712 28.968c-1.513-.4-3.02-.4-4.535 0-1.254.341-2.227 1.998-2.175 3.282.3 8.326.325 16.651.078 24.979-.097 2.528 1.838 4.745 4.364 4.772 2.526-.027 4.461-2.244 4.364-4.772-.249-8.327-.222-16.652.078-24.979.052-1.284-.921-2.941-2.174-3.282"/><g fill="#a4b3b2"><path d="m22 6.445h28.889v2.222h-28.889z"/><path d="m22 10.889h28.889v2.223h-28.889z"/><path d="m22 15.334h28.889v2.222h-28.889z"/><path d="m22 22h28.889v2.222h-28.889z"/><path d="m22 26.445h14.444v2.222h-14.444z"/></g><g fill="#3e4347"><circle cx="17.556" cy="57.56" r="1.111"/><circle cx="22" cy="57.56" r="1.111"/><circle cx="26.444" cy="57.56" r="1.111"/><circle cx="38.524" cy="56.618" r="1.111"/><circle cx="42.969" cy="56.618" r="1.111"/><circle cx="47.41" cy="56.618" r="1.111"/><circle cx="38.524" cy="52.52" r="1.111"/><circle cx="42.969" cy="52.52" r="1.111"/><circle cx="47.41" cy="52.52" r="1.111"/><circle cx="38.524" cy="48.43" r="1.111"/><circle cx="42.969" cy="48.43" r="1.111"/><circle cx="47.41" cy="48.43" r="1.111"/><circle cx="38.524" cy="44.34" r="1.111"/><circle cx="42.969" cy="44.34" r="1.111"/><circle cx="47.41" cy="44.34" r="1.111"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m6.4 30.9h13.3v31.1h-13.3z"/><g fill="#62727a"><path d="m61.2 42c-.2-1.2-1.5-2.2-2.7-2.2-16.9 0-24.9 0-41.9 0-1.2 0-2.4 1-2.7 2.2-1.1 5.9-1.1 11.9 0 17.8.2 1.2 1.5 2.2 2.7 2.2 16.9 0 24.9 0 41.9 0 1.2 0 2.4-1 2.7-2.2 1.1-5.9 1.1-11.9 0-17.8"/><path d="M56.7,21.9c-0.1-1.2-1.2-2.2-2.4-2.2H18.7c-1.2,0-2.3,1-2.4,2.2l-1.4,13.4H58L56.7,21.9z"/></g><g fill="#3e4347"><path d="m58 35.3h-44.2l-.5 4.5h45.1z"/><path d="m33.6 53.1h-16.5c-1 0-1.8-.8-1.8-1.9v-7.4c0-1 .8-1.9 1.8-1.9h16.5c1 0 1.8.8 1.8 1.9v7.4c-.1 1.1-.9 1.9-1.8 1.9m-16.5-9.9c-.3 0-.6.3-.6.6v7.4c0 .3.3.6.6.6h16.5c.3 0 .6-.3.6-.6v-7.4c0-.3-.3-.6-.6-.6h-16.5"/></g><path d="m27.6 46.4c0 .6-.5 1.1-1.1 1.1h-7.8c-.6 0-1.1-.5-1.1-1.1v-1.1c0-.6.5-1.1 1.1-1.1h7.8c.6 0 1.1.5 1.1 1.1v1.1" fill="#c7e755"/><g fill="#3e4347"><path d="m33.1 47c0 .3-.2.6-.6.6h-3.3c-.3 0-.6-.2-.6-.6v-1.1c0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6v1.1"/><path d="m55.2 43.7c0 .3-.2.6-.6.6h-3.3c-.3 0-.6-.2-.6-.6v-1.1c0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6v1.1"/><path d="m22 50.3c0 .3-.2.6-.6.6h-3.3c-.3 0-.6-.2-.6-.6v-1.1c0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6v1.1"/><path d="m33.1 50.3c0 .3-.2.6-.6.6h-3.3c-.3 0-.6-.2-.6-.6v-1.1c0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6v1.1"/><path d="m27.6 50.3c0 .3-.2.6-.6.6h-3.3c-.3 0-.6-.2-.6-.6v-1.1c0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6v1.1"/></g><g fill="#b2c1c0"><circle cx="32" cy="57.6" r="2.2"/><path d="m59.7 53.1c0-1.2-1-2.2-2.2-2.2-.9 0-1.7.5-2 1.3-.1.1-.1.3-.1.4-.2.5-.6.5-1.2.5-1.8 0-3.3 1.5-3.3 3.3 0 1.8 1.5 3.3 3.3 3.3s3.3-1.5 3.3-3.3c0-.6 0-.9.5-1.2.1 0 .3-.1.4-.1.7-.3 1.3-1.1 1.3-2"/></g><circle cx="54.1" cy="56.4" r="2.2" fill="#258399"/><g fill="#3e4347"><circle cx="57.4" cy="53.1" r="1.1"/><circle cx="53" cy="47.6" r="1.1"/><path d="m56 39.8l-1.6-15.6c-.1-1.2-1.2-2.2-2.4-2.2h-31.1c-1.2 0-2.3 1-2.4 2.2l-1.6 15.6h39.1"/></g><path fill="#f5f5f5" d="m19.8 2h33.3v33.3h-33.3z"/><path d="m27.5 39.8l.6-6.2c.1-.9.9-1.6 1.8-1.6h12.9c.9 0 1.7.7 1.8 1.6l.6 6.2h1.1l-.6-6.3c-.1-1.4-1.4-2.6-2.9-2.6h-12.8c-1.5 0-2.8 1.2-2.9 2.6l-.6 6.3h1" fill="#a4b3b2"/><path d="m8.7 29c-1.5-.4-3-.4-4.5 0-1.3.3-2.2 2-2.2 3.2.3 8.3.3 16.7.1 25-.1 2.6 1.8 4.8 4.3 4.8 2.5 0 4.5-2.2 4.4-4.8-.2-8.3-.2-16.7.1-25 0-1.2-.9-2.9-2.2-3.2" fill="#62727a"/><g fill="#a4b3b2"><path d="m22 6.4h28.9v2.2h-28.9z"/><path d="m22 10.9h28.9v2.2h-28.9z"/><path d="m22 15.3h28.9v2.2h-28.9z"/><path d="m22 22h28.9v2.2h-28.9z"/><path d="m22 26.4h14.4v2.2h-14.4z"/></g><g fill="#3e4347"><circle cx="17.6" cy="57.6" r="1.1"/><circle cx="22" cy="57.6" r="1.1"/><circle cx="26.4" cy="57.6" r="1.1"/><circle cx="38.5" cy="56.6" r="1.1"/><circle cx="43" cy="56.6" r="1.1"/><circle cx="47.4" cy="56.6" r="1.1"/><circle cx="38.5" cy="52.5" r="1.1"/><circle cx="43" cy="52.5" r="1.1"/><circle cx="47.4" cy="52.5" r="1.1"/><circle cx="38.5" cy="48.4" r="1.1"/><circle cx="43" cy="48.4" r="1.1"/><circle cx="47.4" cy="48.4" r="1.1"/><circle cx="38.5" cy="44.3" r="1.1"/><circle cx="43" cy="44.3" r="1.1"/><circle cx="47.4" cy="44.3" r="1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e1.svg
index 23628e1..f15cb8a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m28.412 51.568h-8.853l-2.038 12.432h12.926z"/><path fill="#d0d0d0" d="m22.4 51.568l-7.538-8.75-3.353 21.18h12.929z"/><g fill="#42ade2"><path d="m38.744 8.695c2.786 2.312 5.704 4.968 8.627 7.89s5.578 5.841 7.89 8.627c-.31-3.132-2.417-7.125-5.905-10.612-3.488-3.487-7.48-5.595-10.612-5.905"/><path d="m63.955 26.602c-.5-5.04-3.895-11.474-9.511-17.09-5.615-5.616-12.05-9.01-17.09-9.512 4.487 3.724 9.187 8 13.895 12.706 4.708 4.709 8.983 9.409 12.706 13.896"/></g><path fill="#d0d0d0" d="m63.23 59.18c-9.537 9.539-30.357 4.184-46.5-11.959-16.14-16.14-21.498-36.965-11.96-46.5l58.46 58.46"/><ellipse transform="matrix(.7071.7071-.7071.7071 31.2-15.11)" fill="#94989b" cx="33.847" cy="30.11" rx="41.34" ry="9.224"/><path fill="#d0d0d0" d="m32.938 33.467c-.644.688-1.75.699-2.448 0-.701-.7-.69-1.806-.001-2.449l13.264-11.952 1.137 1.137-11.952 13.264"/><circle fill="#333" cx="43.09" cy="20.871" r="3.861"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m25 48.6l-10.6-10c0 0-4.5 6.2-4.5 11.3h14.6c0-.8.5-1.3.5-1.3" fill="#94989b"/><g fill="#333"><path d="m26.9 48.5c-4.6 1.4-14.1-8-12.6-12.6 1.2-3.8 1.2-3.8 1.2-3.8l15.2 15.2c0 0 0 0-3.8 1.2"/><path d="m15.2 7.3c-3 3-4.6 6.9-4.9 11.2-.6 7.7 3 16.7 10.1 23.9 7.2 7.1 16.2 10.6 24 10.1 4.4-.3 8.3-1.9 11.3-4.9l-40.5-40.3"/></g><g fill="#42ade2"><path d="m43.5 8c1.9 1.6 3.9 3.4 6 5.4 2 2 3.9 4 5.5 5.9-.2-2.2-1.7-4.9-4.1-7.3-2.4-2.3-5.2-3.8-7.4-4"/><path d="m61 20.3c-.3-3.5-2.7-7.9-6.6-11.8-3.9-3.8-8.3-6.2-11.8-6.5 3.1 2.6 6.4 5.5 9.6 8.8 3.3 3.2 6.2 6.5 8.8 9.5"/></g><path d="m55.5 47.8c-3.1 3.1-14.7-3.4-25.9-14.5-11.2-11.2-17.7-22.7-14.5-25.9 3.1-3.1 14.7 3.4 25.9 14.6 11.1 11.1 17.7 22.6 14.5 25.8" fill="#94989b"/><path fill="#333" d="m33.1 32.5l-2.7-2.7 12.1-10.3 1 .9z"/><path d="m32.5 36c-3-2.7-5.7-5.6-5.7-5.6l4.5-3.1 4.2 4.2-3 4.5" fill="#da5b52"/><g fill="#333"><path d="m48 20.6c-1.6 1.6-4.1 1.6-5.7 0-1.6-1.6-1.6-4.1 0-5.6 1.6-1.6 4.1-1.6 5.7 0s1.5 4.1 0 5.6"/><path d="M9.9,49.9C7.2,49.9,5,52,5,54.7v5.2h8.6V49.9H9.9z"/></g><path d="m24.5 49.9h-11.8v10.1h16.6v-5.2c0-2.8-2.1-4.9-4.8-4.9" fill="#616161"/><path fill="#333" d="m3 59.2h8.6v2.8h-8.6z"/><g fill="#616161"><path d="m10.6 59.2h20.8v2.8h-20.8z"/><path d="m12.5 40.2h-2.3v1.5c-.6.9-.9 2.1-.9 3.4 0 1.3.3 2.5.9 3.4v1.5h2.3c1.8 0 3.2-2.2 3.2-4.9 0-2.8-1.4-4.9-3.2-4.9"/></g><ellipse cx="10.1" cy="45" rx="3.2" ry="4.9" fill="#333"/><ellipse cx="10.6" cy="45" rx="2.3" ry="4" fill="#0d0d0d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e2.svg
index 2c6b148..44179fe 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m54.18 15.16c2.234 5.43 2.794 11.156 2.896 16.794-.07 5.627-.661 11.363-2.896 16.777-.438-5.574-.198-11.213-.164-16.793-.035-5.578-.236-11.205.164-16.778"/><path d="m58.42 6.765c2.709 8.24 3.448 16.741 3.578 25.18-.131 8.439-.861 16.936-3.578 25.17.021-8.236.479-16.473.515-24.711.038-8.55-.469-17.09-.515-25.642"/></g><path fill="#333" d="m18.19 52.37h-8.08l14.514-13.555h8.08z"/><path fill="#b0bdc6" d="m8.316 25.1c-1.577.132-3.01.206-4.251.206 0 0-2.065 3.212-2.065 6.646 0 3.438 2.068 6.646 2.068 6.646 1.24 0 2.677.074 4.254.205-.582-1.197-1.744-3.953-1.744-6.853.001-2.895 1.157-5.648 1.738-6.85"/><path fill="#ed4c5c" d="m42.25 4.918c0 0-15.983 18.04-29.584 19.725-.718 1.647-1.694 4.418-1.694 7.309 0 2.896.98 5.667 1.699 7.312 13.594 1.68 29.549 19.682 29.549 19.682l.03-54.03"/><path fill="#333" d="m12.664 24.643c-1.53.189-2.99.346-4.347.459-.581 1.202-1.738 3.955-1.738 6.85 0 2.899 1.162 5.655 1.744 6.853 1.356.113 2.815.27 4.346.459-.719-1.645-1.699-4.416-1.699-7.312 0-2.891.976-5.662 1.694-7.309"/><ellipse fill="#aa1d39" cx="43.883" cy="31.931" rx="6.285" ry="27.988"/><path fill="#5b0617" d="m43.883 59.942c-3.471 0-6.284-12.531-6.284-27.989 5.316-3.968 12.355 4.87 12.355 4.87-10.993 6.01-6.071 23.12-6.071 23.12"/><path fill="#333" d="m37.849 24.442c0 0-.25 2.635-.25 7.488 0 4.941.25 7.488.25 7.488l12.319-2.635v-9.707l-12.319-2.634"/><path fill="#4b4d4f" d="m37.703 26.813c0 0-.104 1.805-.104 5.128 0 3.382.104 5.126.104 5.126l12.466-1.803v-6.646l-12.466-1.805"/><ellipse fill="#ed4c5c" cx="50.17" cy="31.932" rx="1.571" ry="4.853"/><path fill="#898a90" d="m10.11 28.17h8.08v24.2h-8.08z"/><ellipse fill="#fff" cx="14.15" cy="32.528" rx="1.654" ry="1.969"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m54.2 15.2c2.2 5.4 2.8 11.2 2.9 16.8-.1 5.6-.7 11.4-2.9 16.8-.5-5.6-.2-11.3-.2-16.9 0-5.5-.2-11.2.2-16.7"/><path d="m58.4 6.8c2.7 8.2 3.5 16.7 3.6 25.2-.1 8.4-.9 16.9-3.6 25.2 0-8.2.5-16.5.5-24.7.1-8.6-.4-17.2-.5-25.7"/></g><path fill="#333" d="m18.2 52.4h-8.1l14.5-13.6h8.1z"/><path d="m8.3 25.1c-1.6.1-3 .2-4.3.2 0 0-2.1 3.2-2.1 6.6 0 3.4 2.1 6.6 2.1 6.6 1.2 0 2.7.1 4.3.2-.6-1.2-1.7-4-1.7-6.9 0-2.7 1.1-5.5 1.7-6.7" fill="#b0bdc6"/><path d="m42.2 4.9c0 0-16 18-29.6 19.7-.7 1.7-1.6 4.5-1.6 7.4 0 2.9 1 5.7 1.7 7.3 13.6 1.7 29.5 19.7 29.5 19.7v-54.1" fill="#ed4c5c"/><path d="m12.7 24.6c-1.5.2-3 .3-4.3.5-.6 1.2-1.7 4-1.7 6.9 0 2.9 1.2 5.7 1.7 6.9 1.4.1 2.8.3 4.3.5-.7-1.8-1.7-4.6-1.7-7.4 0-2.9.9-5.7 1.7-7.4" fill="#333"/><ellipse cx="43.9" cy="31.9" rx="6.3" ry="28" fill="#aa1d39"/><path d="m43.9 59.9c-3.5 0-6.3-12.5-6.3-28 5.3-4 12.4 4.9 12.4 4.9-11 6-6.1 23.1-6.1 23.1" fill="#5b0617"/><path d="m37.8 24.4c0 0-.2 2.6-.2 7.5 0 4.9.2 7.5.2 7.5l12.3-2.6v-9.7l-12.3-2.7" fill="#333"/><path d="m37.7 26.8c0 0-.1 1.8-.1 5.1 0 3.4.1 5.1.1 5.1l12.5-1.8v-6.6l-12.5-1.8" fill="#4b4d4f"/><ellipse cx="50.2" cy="31.9" rx="1.6" ry="4.9" fill="#ed4c5c"/><path fill="#898a90" d="m10.1 28.2h8.1v24.2h-8.1z"/><ellipse cx="14.2" cy="32.5" rx="1.7" ry="2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e3.svg
index 23e4b84..0967aba 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m38.09 57.56c-.528.528-1.143.959-1.824 1.276l-7.895 3.681c-1.552.725-3.294.802-4.903.216-1.61-.586-2.896-1.766-3.621-3.318l-3.681-7.894c-1.136-2.437-.622-5.349 1.277-7.248.529-.529 1.143-.959 1.826-1.277l7.895-3.681c3.203-1.495 7.03-.104 8.524 3.102l3.681 7.895c1.135 2.435.621 5.348-1.279 7.248m-17.734-10.374c-.679.68-.862 1.722-.456 2.593l3.681 7.895c.259.556.719.978 1.296 1.187.574.209 1.197.182 1.754-.076l7.894-3.682c1.129-.526 1.628-1.937 1.109-3.05l-3.681-7.894c-.534-1.146-1.904-1.645-3.05-1.111l-7.894 3.684c-.244.112-.464.266-.653.454"/><g fill="#898a90"><path d="m36.18 56.33c-.432.431-.932.78-1.486 1.041l-6.432 2.998c-1.266.59-2.686.652-3.996.175-1.313-.478-2.359-1.438-2.949-2.702l-2.999-6.432c-.925-1.984-.507-4.357 1.041-5.905.431-.431.931-.78 1.489-1.04l6.43-2.999c2.61-1.218 5.727-.084 6.945 2.527l2.999 6.433c.924 1.984.505 4.357-1.042 5.904m-14.448-8.452c-.555.556-.703 1.403-.373 2.113l3 6.431c.21.453.585.797 1.055.967.469.172.977.149 1.43-.063l6.43-2.999c.92-.429 1.327-1.577.904-2.483l-2.998-6.432c-.436-.934-1.55-1.34-2.484-.904l-6.432 2.998c-.2.095-.379.219-.532.372"/><path d="m1.465 53.802c0 0-3.95 2.535 1.125 7.609 5.073 5.076 7.609 1.123 7.609 1.123l-8.734-8.732"/></g><path fill="#b0bdc6" d="m2.893 55.23c0 0-4.203 2.281-.306 6.177 3.895 3.898 6.178-.308 6.178-.307l-5.872-5.87"/><path fill="#ed4c5c" d="m26.794 3.348l-25.321 50.28c-1.795 2.768 6.134 10.707 8.901 8.901l50.24-25.296-33.817-33.883"/><path fill="#898a90" d="m62.869 35.22l-1.363 1.364c-3.479 3.479-13.928-1.336-23.341-10.748-9.415-9.414-14.227-19.862-10.749-23.34l1.363-1.363 34.09 34.09"/><path fill="#dfe9ef" d="m61.63 33.976l-3.729 3.729c0 0-7.801.063-19.731-11.869-11.946-11.947-11.868-19.734-11.868-19.734l3.727-3.728 31.601 31.602"/><path fill="#b0bdc6" d="m52.12 11.879c9.412 9.412 14.225 19.862 10.748 23.34-3.479 3.479-13.928-1.335-23.34-10.747-9.416-9.414-14.228-19.862-10.75-23.34 3.479-3.479 13.928 1.333 23.342 10.747"/><path fill="#898a90" d="m39.512 24.455c6.672 6.671 13.861 11.03 18.723 11.764-.76-4.861-5.107-12.02-11.754-18.667-6.672-6.672-13.862-11.03-18.725-11.763.761 4.86 5.109 12.02 11.756 18.666"/><g fill="#fff"><path d="m5.549 55.675c-.508-.493-.905-.779-1.208-.838-.166-.031-.29.006-.371.113-.154.201-.091.604.204 1.188.293.578.838 1.312 1.691 2.161.859.854 1.57 1.364 2.085 1.588.521.224.879.262 1.058.124.177-.137.163-.381-.042-.74-.206-.363-.554-.783-1.031-1.271-.183.165-.366.331-.549.497-.415-.387-.822-.784-1.219-1.19.313-.322.627-.646.941-.969 1.34 1.373 2.789 2.639 4.333 3.785-.131.09-.262.181-.393.271-.373-.25-.74-.504-1.101-.766.281.392.461.675.533.856.131.318.084.546-.133.692-.35.238-1 .164-1.913-.248-.909-.405-1.936-1.111-3.03-2.2-1.104-1.102-1.834-2.153-2.271-3.104-.44-.966-.511-1.668-.249-2.058.237-.347.623-.356 1.188-.03.575.329 1.208.882 1.918 1.624-.145.172-.294.343-.444.515"/><path d="m13.645 57.39c.497.75.506 1.261.028 1.578-.463.308-1.172.287-2.087-.085-1.129-.434-2.431-1.279-3.819-2.668-1.412-1.421-2.25-2.73-2.657-3.83-.37-.916-.389-1.628-.082-2.092.317-.479.827-.469 1.574.029.929.553 2.12 1.727 3.719 3.336 1.571 1.572 2.739 2.774 3.324 3.732m-1.842-.828c-.407-.595-1.121-1.349-2.078-2.308-.952-.957-1.703-1.672-2.297-2.082-.588-.408-.966-.489-1.161-.232-.189.252-.126.727.208 1.398.333.664.917 1.464 1.808 2.36.893.894 1.69 1.481 2.353 1.815.67.335 1.144.399 1.395.209.257-.194.177-.572-.228-1.16"/><path d="m9.798 43.724c.496.73 1.016 1.442 1.559 2.137-.318.42-.635.84-.953 1.258 2.418 3.068 5.283 5.764 8.501 7.993-.302.198-.603.396-.905.595-3.11-2.171-5.883-4.783-8.233-7.75-.287.377-.577.754-.865 1.131-.486-.608-.954-1.234-1.403-1.873.769-1.157 1.535-2.32 2.299-3.491"/><path d="m14.466 41.706c-.658.887-1.317 1.77-1.978 2.65.682.881 1.399 1.732 2.151 2.552.659-.729 1.319-1.458 1.978-2.188.666.73 1.356 1.437 2.072 2.117-.714.673-1.428 1.346-2.142 2.02.974.931 1.995 1.812 3.058 2.641.923-.693 1.849-1.386 2.777-2.076.822.631 1.669 1.232 2.538 1.802-1.355.861-2.702 1.728-4.04 2.597-4.208-2.859-7.833-6.494-10.684-10.709.839-1.291 1.675-2.59 2.508-3.898.557.851 1.145 1.683 1.761 2.492"/><path d="m14.557 36.28c.336-.535.671-1.072 1.01-1.611 4.197 4.972 9.761 9.184 16.384 12.17-.572.35-1.144.701-1.713 1.053-1.325-.628-2.607-1.309-3.842-2.037-.755.566-1.509 1.133-2.26 1.7.865.869 1.758 1.694 2.682 2.472-.451.283-.9.568-1.35.853-4.401-3.828-8.155-8.774-10.907-14.6m7.437 8.957c.479-.427.959-.852 1.439-1.278-2.125-1.479-4.085-3.108-5.861-4.863 1.327 2.208 2.809 4.26 4.422 6.141"/><path d="m21.404 25.04c.625-1.055 1.248-2.116 1.87-3.181 4.402 7.932 10.935 14.476 18.856 18.894-.701.408-1.4.818-2.097 1.229-5.083-2.892-9.571-6.677-13.263-11.152-.318-.386-.757-.933-1.298-1.658-.541-.727-.939-1.298-1.218-1.703 3.571 6.364 8.338 11.68 13.88 15.635-.642.381-1.281.763-1.919 1.145-6.104-2.935-11.348-6.971-15.463-11.758.248.35.607.843 1.093 1.465.486.623.877 1.096 1.159 1.432 3.264 3.896 7.166 7.233 11.555 9.861-.544.328-1.087.657-1.627.986-6.196-3.766-11.393-8.973-15.15-15.178.523-.858 1.045-1.721 1.567-2.586 3.516 4.833 8.101 9.05 13.53 12.353-4.688-4.252-8.626-9.598-11.479-15.784"/><path d="m24.942 19.15c.516-.89 1.029-1.784 1.542-2.682 1.213 2.29 2.594 4.474 4.126 6.535 2.64 3.96 5.775 7.491 9.302 10.504-.358.276-.717.552-1.076.828-3.748-2.589-7.092-5.635-9.947-9.04-1.459-1.94-2.779-3.992-3.947-6.143m15.23 16.973c.756-.533 1.514-1.063 2.273-1.595 1.635 1.129 3.34 2.166 5.109 3.103-.86.489-1.716.979-2.569 1.471-1.665-.904-3.272-1.9-4.813-2.979"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m38.1 57.6c-.5.5-1.1 1-1.8 1.3l-7.9 3.7c-1.6.7-3.3.8-4.9.2-1.6-.6-2.9-1.8-3.6-3.3l-3.7-7.9c-1.1-2.4-.6-5.3 1.3-7.2.5-.5 1.1-1 1.8-1.3l7.9-3.7c3.2-1.5 7-.1 8.5 3.1l3.7 7.9c1.1 2.3.6 5.3-1.3 7.2m-17.7-10.4c-.7.7-.9 1.7-.5 2.6l3.7 7.9c.3.6.7 1 1.3 1.2.6.2 1.2.2 1.8-.1l7.9-3.7c1.1-.5 1.6-1.9 1.1-3l-3.7-7.9c-.5-1.1-1.9-1.6-3-1.1l-8 3.6c-.2.1-.5.3-.6.5" fill="#b0bdc6"/><g fill="#898a90"><path d="m36.2 56.3c-.4.4-.9.8-1.5 1l-6.4 3c-1.3.6-2.7.7-4 .2-1.3-.5-2.4-1.4-2.9-2.7l-3-6.4c-.9-2-.5-4.4 1-5.9.4-.4.9-.8 1.5-1l6.4-3c2.6-1.2 5.7-.1 6.9 2.5l3 6.4c.9 2 .5 4.4-1 5.9m-14.5-8.4c-.6.6-.7 1.4-.4 2.1l3 6.4c.2.5.6.8 1.1 1 .5.2 1 .1 1.4-.1l6.4-3c.9-.4 1.3-1.6.9-2.5l-3-6.4c-.4-.9-1.5-1.3-2.5-.9l-6.4 3c-.1.1-.3.2-.5.4"/><path d="m1.5 53.8c0 0-4 2.5 1.1 7.6 5.1 5.1 7.6 1.1 7.6 1.1l-8.7-8.7"/></g><path d="m2.9 55.2c0 0-4.2 2.3-.3 6.2 3.9 3.9 6.2-.3 6.2-.3l-5.9-5.9" fill="#b0bdc6"/><path d="m26.8 3.3l-25.3 50.3c-1.8 2.8 6.1 10.7 8.9 8.9l50.2-25.3-33.8-33.9" fill="#ed4c5c"/><path d="M62.9,35.2l-1.4,1.4c-3.5,3.5-13.9-1.3-23.3-10.7C28.8,16.4,23.9,6,27.4,2.5l1.4-1.4L62.9,35.2z" fill="#898a90"/><path d="m61.6 34l-3.7 3.7c0 0-7.8.1-19.7-11.9-12-11.9-11.9-19.7-11.9-19.7l3.7-3.7 31.6 31.6" fill="#dfe9ef"/><path d="m52.1 11.9c9.4 9.4 14.2 19.9 10.7 23.3-3.5 3.5-13.9-1.3-23.3-10.7-9.4-9.4-14.2-19.9-10.7-23.4 3.5-3.4 13.9 1.4 23.3 10.8" fill="#b0bdc6"/><path d="m39.5 24.5c6.7 6.7 13.9 11 18.7 11.8-.8-4.9-5.1-12-11.8-18.7-6.7-6.7-13.9-11-18.7-11.8.8 4.8 5.2 12 11.8 18.7" fill="#898a90"/><g fill="#fff"><path d="m5.5 55.7c-.5-.5-.9-.8-1.2-.8-.2 0-.3 0-.4.1-.2.2-.1.6.2 1.2.3.6.8 1.3 1.7 2.2.9.9 1.6 1.4 2.1 1.6.6.1.9.1 1.1 0 .2-.1.2-.4 0-.7-.2-.4-.6-.8-1-1.3-.2.2-.4.3-.5.5-.4-.4-.8-.8-1.2-1.2.3-.3.6-.6.9-1 1.3 1.4 2.8 2.6 4.3 3.8-.1.1-.3.2-.4.3-.4-.2-.7-.5-1.1-.8.3.4.5.7.5.9.1.3.1.5-.1.7-.4.2-1 .2-1.9-.2-.9-.4-1.9-1.1-3-2.2-1.1-1.1-1.8-2.2-2.3-3.1-.4-1-.5-1.7-.2-2.1.2-.3.6-.4 1.2 0 .6.3 1.2.9 1.9 1.6-.3.1-.4.3-.6.5"/><path d="m13.6 57.4c.5.8.5 1.3 0 1.6-.5.3-1.2.3-2.1-.1-1.1-.4-2.4-1.3-3.8-2.7-1.4-1.4-2.2-2.7-2.7-3.8-.4-.9-.4-1.6-.1-2.1.3-.5.8-.5 1.6 0 .9.6 2.1 1.7 3.7 3.3 1.7 1.6 2.9 2.8 3.4 3.8m-1.8-.8c-.4-.6-1.1-1.3-2.1-2.3-1-1-1.7-1.7-2.3-2.1-.6-.4-1-.5-1.2-.2-.2.3-.1.7.2 1.4.3.7.9 1.5 1.8 2.4.9.9 1.7 1.5 2.4 1.8.7.3 1.1.4 1.4.2.3-.3.2-.6-.2-1.2"/><path d="m9.8 43.7c.5.7 1 1.4 1.6 2.1-.3.4-.6.8-1 1.3 2.4 3.1 5.3 5.8 8.5 8-.3.2-.6.4-.9.6-3.1-2.2-5.9-4.8-8.2-7.8-.3.4-.6.8-.9 1.1-.5-.6-1-1.2-1.4-1.9.8-1 1.5-2.2 2.3-3.4"/><path d="m14.5 41.7c-.7.9-1.3 1.8-2 2.7.7.9 1.4 1.7 2.2 2.6.7-.7 1.3-1.5 2-2.2.7.7 1.4 1.4 2.1 2.1-.7.7-1.4 1.3-2.1 2 1 .9 2 1.8 3.1 2.6.9-.7 1.8-1.4 2.8-2.1.8.6 1.7 1.2 2.5 1.8-1.4.9-2.7 1.7-4 2.6-4.4-2.8-8.1-6.5-10.9-10.7.8-1.3 1.7-2.6 2.5-3.9.6.9 1.2 1.7 1.8 2.5"/><path d="m14.6 36.3c.3-.5.7-1.1 1-1.6 4.2 5 9.8 9.2 16.4 12.2-.6.3-1.1.7-1.7 1.1-1.3-.6-2.6-1.3-3.8-2-.8.6-1.5 1.1-2.3 1.7.9.9 1.8 1.7 2.7 2.5-.5.3-.9.6-1.4.9-4.4-4.1-8.2-9-10.9-14.8m7.4 8.9c.5-.4 1-.9 1.4-1.3-2.1-1.5-4.1-3.1-5.9-4.9 1.4 2.3 2.9 4.4 4.5 6.2"/><path d="m21.4 25c.6-1.1 1.2-2.1 1.9-3.2 4.4 7.9 10.9 14.5 18.9 18.9-.7.4-1.4.8-2.1 1.2-5.1-2.9-9.6-6.7-13.3-11.2-.3-.4-.8-.9-1.3-1.7-.5-.7-.9-1.3-1.2-1.7 3.6 6.4 8.3 11.7 13.9 15.6-.6.4-1.3.8-1.9 1.1-6.1-2.9-11.3-7-15.5-11.8.2.3.6.8 1.1 1.5.5.6.9 1.1 1.2 1.4 3.3 3.9 7.2 7.2 11.6 9.9-.5.3-1.1.7-1.6 1-6.2-3.8-11.4-9-15.1-15.2.5-.9 1-1.7 1.6-2.6 3.5 4.8 8.1 9 13.5 12.4-4.9-4-8.8-9.4-11.7-15.6"/><path d="m24.9 19.1c.5-.9 1-1.8 1.5-2.7 1.2 2.3 2.6 4.5 4.1 6.5 2.6 4 5.8 7.5 9.3 10.5-.4.3-.7.6-1.1.8-3.7-2.6-7.1-5.6-9.9-9-1.4-1.9-2.7-3.9-3.9-6.1m15.3 17c.8-.5 1.5-1.1 2.3-1.6 1.6 1.1 3.3 2.2 5.1 3.1-.9.5-1.7 1-2.6 1.5-1.7-.9-3.3-1.9-4.8-3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e4.svg
index 6f3e6f8..b7b0066 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="M24.894 39.03 24.894 51.36 0 64 0 47.47z"/><path fill="#b77e58" d="m24.894 39.03h39.11v12.331h-39.11z"/><path fill="#f2bc97" d="M24.894 51.36 0 64 53.47 64 64 51.36z"/><path fill="#d3976e" d="m35.412 47.47c0 0-.333 6.953-1.735 8.263-2.738 2.555-11.149 2.555-13.887 0-1.403-1.31-1.736-8.263-1.736-8.263h-18.05v16.527h53.47v-16.527h-18.05"/><path fill="#89664c" d="M64 51.36 53.47 64 53.47 47.47 64 39.03z"/><path fill="#881a0e" d="m37.934 0l2.413 5.528c0 0-9.118 5.268-10.958 17.512-1.693 11.27 2.55 19.05 2.55 19.05l1.25.779c0 0-1.429-8.896 3.534-16.833 2.993-4.786 7.06-7.856 8.529-8.795l2.05 4.739 1.503 1.503 11.195-19.446-1.503-1.503-20.563-2.532"/><path fill="#ed4c5c" d="m33.19 42.867c0 0-.124-6.981 4.02-15.374 3.401-6.89 9.06-9.679 9.06-9.679l2.536 5.667 11.195-19.446-20.563-2.533 2.412 5.529c0 0-9.117 5.267-10.957 17.512-1.694 11.27 2.296 18.324 2.296 18.324"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m24.9 39v12.4l-24.9 12.6v-16.5z"/><path fill="#b77e58" d="m24.9 39h39.1v12.3h-39.1z"/><path fill="#f2bc97" d="M24.9 51.4 0 64 53.5 64 64 51.4z"/><path d="M35.4,47.5c0,0-0.3,7-1.7,8.3c-2.7,2.6-11.1,2.6-13.9,0c-1.4-1.3-1.7-8.3-1.7-8.3H0V64h53.5V47.5H35.4z" fill="#d3976e"/><path fill="#89664c" d="M64 51.4 53.5 64 53.5 47.5 64 39z"/><path d="m37.9 0l2.4 5.5c0 0-9.1 5.3-11 17.5-1.7 11.3 2.5 19 2.5 19l1.2.8c0 0-1.4-8.9 3.5-16.8 3-4.8 7.1-7.9 8.5-8.8l2 4.7 1.5 1.5 11.5-19.4-1.5-1.5-20.6-2.5" fill="#881a0e"/><path d="m33.2 42.9c0 0-.1-7 4-15.4 3.4-6.9 9.1-9.7 9.1-9.7l2.5 5.7 11.2-19.5-20.6-2.5 2.4 5.5c0 0-9.1 5.3-11 17.5-1.6 11.3 2.4 18.4 2.4 18.4" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e5.svg
index a7fc8d1..75df61a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e5.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="M24.894 39.03 24.894 51.36 0 64 0 47.47z"/><path fill="#b77e58" d="m24.894 39.03h39.11v12.331h-39.11z"/><path fill="#f2bc97" d="M24.894 51.36 0 64 53.47 64 64 51.36z"/><path fill="#d3976e" d="m35.412 47.47c0 0-.333 6.953-1.735 8.263-2.738 2.555-11.149 2.555-13.887 0-1.403-1.31-1.736-8.263-1.736-8.263h-18.05v16.527h53.47v-16.527h-18.05"/><path fill="#89664c" d="M64 51.36 53.47 64 53.47 47.47 64 39.03z"/><path fill="#5b7f38" d="M48.479,34l-5.615-2.203c0,0,2.723-10.172-4.635-20.131C31.457,2.5,22.957,0,22.957,0l-1.436,0.333
- c0,0,7.301,5.28,9.404,14.401c1.268,5.501,0.561,10.551,0.188,12.25l-4.801-1.901h-2.125l5.834,21.667h2.125L48.479,34z"/><path fill="#83bf4f" d="m21.521.333c0 0 5.02 4.849 8.03 13.714 2.467 7.276.438 13.25.438 13.25l-5.801-2.214 5.834 21.667 16.333-12.75-5.615-2.203c0 0 2.723-10.172-4.635-20.13-6.772-9.166-14.583-11.333-14.583-11.333"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m24.9 39v12.4l-24.9 12.6v-16.5z"/><path fill="#b77e58" d="m24.9 39h39.1v12.3h-39.1z"/><path fill="#f2bc97" d="M24.9 51.4 0 64 53.5 64 64 51.4z"/><path d="M35.4,47.5c0,0-0.3,7-1.7,8.3c-2.7,2.6-11.1,2.6-13.9,0c-1.4-1.3-1.7-8.3-1.7-8.3H0V64h53.5V47.5H35.4z" fill="#d3976e"/><path fill="#89664c" d="M64 51.4 53.5 64 53.5 47.5 64 39z"/><path d="M48.5,34l-5.6-2.2c0,0,2.7-10.2-4.6-20.1C31.5,2.5,23,0,23,0l-1.4,0.3c0,0,7.3,5.3,9.4,14.4
+ c1.3,5.5,0.6,10.6,0.2,12.3l-4.8-1.9h-2.1L30,46.8h2.1L48.5,34z" fill="#5b7f38"/><path d="m21.5.3c0 0 5 4.8 8 13.7 2.5 7.3.5 13.3.5 13.3l-5.8-2.2 5.8 21.7 16.4-12.8-5.6-2.2c0 0 2.7-10.2-4.6-20.1-6.9-9.2-14.7-11.4-14.7-11.4" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e6.svg
index 534e59e..95182fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m31.999 64l-32-19.211v-25.609l32 19.21z"/><path fill="#fed0ac" d="m31.999 38.39v25.61l32-19.211v-25.609z"/><path fill="#d3976e" d="m-.001 19.18l32 19.21 32-19.18-32-19.211z"/><path fill="#89664c" d="M50.947 27.03 18.962 7.813 12.995 11.389 44.98 30.607z"/><path fill="#d0d0d0" d="m39.32 6.754l-7.07-4.342-5.97 3.576 7.07 4.341z"/><path fill="#d3976e" d="m50.832 27.1l-5.672 3.398v9.213l5.672-3.401z"/><g fill="#fff"><path d="m62.46 22.1l-5.672 3.398v9.212l5.672-3.4z"/><path d="m41.614 43.47l-7.733 4.63v12.569l7.733-4.639z"/></g><path fill="#d3976e" d="m45.16 56.1l5.672-3.407v-9.223l-5.672 3.399z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="M32 64 0 44.8 0 19.2 32 38.4z"/><path fill="#fed0ac" d="m32 38.4v25.6l32-19.2v-25.6z"/><path fill="#d3976e" d="M0 19.2 32 38.4 64 19.2 32 0z"/><path fill="#89664c" d="M50.9 27 19 7.8 13 11.4 45 30.6z"/><path fill="#d0d0d0" d="m39.3 6.8l-7.1-4.4-5.9 3.6 7.1 4.3z"/><path fill="#d3976e" d="m50.8 27.1l-5.6 3.4v9.2l5.6-3.4z"/><g fill="#fff"><path d="m62.5 22.1l-5.7 3.4v9.2l5.7-3.4z"/><path d="m41.6 43.5l-7.7 4.6v12.6l7.7-4.7z"/></g><path fill="#d3976e" d="m45.2 56.1l5.6-3.4v-9.2l-5.6 3.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e7.svg
index 6b0616c..c296f50 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m.603 48.697l18.517-19.292-14.257-20.467c-.683.894-1.186 2.126-1.329 3.482l-3.493 32.709c-.143 1.345.085 2.61.562 3.568"/><path d="m62.692 5.457l-26.774 24.899 21.1 28.517c1.155-.971 1.989-2.492 2.186-4.325l4.755-44.538c.196-1.847-.316-3.461-1.266-4.553"/></g><path fill="#cad5dd" d="m25.732 39.38l-6.613-9.976-18.516 19.292c.44.883 1.093 1.51 1.88 1.659l50.813 9.569c1.357.257 2.669-.168 3.722-1.053l-21.1-28.516-10.186 9.02"/><path fill="#dfe9ef" d="m59.27 4.01l-52.21 3.531c-.802.056-1.57.59-2.189 1.398l14.256 20.467 6.613 9.976 10.186-9.02 26.773-24.899c-.851-.977-2.045-1.539-3.426-1.448"/><path fill="#428bc1" d="m35.18 23.613l.614-5.125-17.543-.092-2.872 23.874 17.06 4.07.618-5.12-12.774-2.493.671-5.577 12.854 1.827.616-5.126-12.918-1.279.671-5.572z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m.6 48.7l18.5-19.3-14.2-20.5c-.7.9-1.2 2.1-1.3 3.5l-3.6 32.7c-.1 1.4.1 2.6.6 3.6"/><path d="m62.7 5.5l-26.8 24.9 21.1 28.5c1.2-1 2-2.5 2.2-4.3l4.8-44.6c.2-1.8-.4-3.5-1.3-4.5"/></g><path d="m25.7 39.4l-6.6-10-18.5 19.3c.4.9 1.1 1.5 1.9 1.7l50.8 9.6c1.4.3 2.7-.2 3.7-1.1l-21.1-28.5-10.2 9" fill="#cad5dd"/><path d="m59.3 4l-52.2 3.5c-.8.1-1.6.6-2.2 1.4l14.3 20.5 6.6 10 10.2-9 26.7-24.9c-.9-1-2.1-1.6-3.4-1.5" fill="#dfe9ef"/><path fill="#428bc1" d="m35.2 23.6l.6-5.1-17.5-.1-2.9 23.9 17 4 .7-5.1-12.8-2.5.7-5.5 12.8 1.8.6-5.1-12.9-1.3.7-5.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e8.svg
index 5672a6a..694c04e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m12.286 53.604l15.404-20.778-10.489-18.992c-.576.946-1.023 2.213-1.19 3.569l-4.03 32.715c-.167 1.347-.037 2.579.303 3.486"/><path d="m63.1 5.177l-22.15 27.08 15.594 26.35c.953-1.067 1.672-2.648 1.898-4.482l5.488-44.549c.228-1.846-.116-3.399-.825-4.396"/></g><path fill="#cad5dd" d="m32.537 42.11l-4.847-9.286-15.404 20.779c.315.832.807 1.396 1.425 1.473l39.849 4.903c1.064.133 2.117-.404 2.984-1.376l-15.594-26.35-8.413 9.857"/><path fill="#dfe9ef" d="m60.45 4.052l-41.465 8.199c-.636.128-1.265.727-1.785 1.583l10.49 18.991 4.847 9.286 8.413-9.857 22.15-27.08c-.636-.89-1.559-1.339-2.655-1.125"/><g fill="#79d3f7"><path d="m9.187 44.951c.825.019 1.421.704 1.326 1.523l-.711 6.098c-.095.819-.842 1.398-1.659 1.285l-6.367-.877c-.817-.113-1.392-.873-1.277-1.69l.708-5.02c.115-.817.884-1.471 1.708-1.452l6.272.137"/><path d="m11.258 29.699c.822-.07 1.412.543 1.312 1.362l-.836 6.794c-.101.819-.858 1.489-1.683 1.489h-8.551c-.825 0-1.396-.667-1.27-1.482l.906-5.845c.126-.815.902-1.539 1.725-1.609l8.397-.709"/><path d="m13.426 13.436c.812-.148 1.393.401 1.292 1.22l-.844 6.857c-.101.819-.854 1.562-1.674 1.651l-10.593 1.157c-.82.089-1.38-.503-1.245-1.317l.986-5.938c.135-.813.91-1.6 1.722-1.748l10.356-1.882"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m12.3 53.6l15.4-20.8-10.5-19c-.6.9-1 2.2-1.2 3.6l-4 32.7c-.2 1.4-.1 2.6.3 3.5"/><path d="m63.1 5.2l-22.1 27.1 15.6 26.4c1-1.1 1.7-2.6 1.9-4.5l5.5-44.5c.2-2-.2-3.5-.9-4.5"/></g><path d="m32.5 42.1l-4.8-9.3-15.4 20.8c.3.8.8 1.4 1.4 1.5l39.9 4.9c1.1.1 2.1-.4 3-1.4l-15.6-26.3-8.5 9.8" fill="#cad5dd"/><path d="m60.5 4.1l-41.5 8.2c-.6.1-1.3.7-1.8 1.6l10.5 19 4.8 9.3 8.4-9.9 22.2-27.1c-.6-.9-1.6-1.4-2.6-1.1" fill="#dfe9ef"/><g fill="#79d3f7"><path d="m9.2 45c.8 0 1.4.7 1.3 1.5l-.7 6.1c-.1.8-.8 1.4-1.7 1.3l-6.3-.9c-.8-.1-1.4-.9-1.3-1.7l.7-5c.1-.8.9-1.5 1.7-1.5l6.3.2"/><path d="m11.3 29.7c.8-.1 1.4.5 1.3 1.4l-.8 6.8c-.1.8-.9 1.5-1.7 1.5h-8.6c-.8 0-1.4-.7-1.3-1.5l.9-5.9c.1-.8.9-1.5 1.7-1.6l8.5-.7"/><path d="m13.4 13.4c.8-.1 1.4.4 1.3 1.2l-.8 6.9c-.1.8-.9 1.6-1.7 1.7l-10.6 1.1c-.8.1-1.4-.5-1.2-1.3l1-5.9c.1-.8.9-1.6 1.7-1.7l10.3-2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4e9.svg
index 67c10d2..2e5dd66 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m.603 52.56l18.517-19.528-14.257-20.719c-.683.905-1.186 2.152-1.329 3.525l-3.493 33.11c-.143 1.362.085 2.643.562 3.612"/><path d="m62.692 8.787l-26.774 25.2 21.1 28.867c1.155-.983 1.989-2.522 2.186-4.378l4.755-45.09c.196-1.87-.316-3.503-1.266-4.609"/></g><path fill="#cad5dd" d="m25.732 43.13l-6.613-10.1-18.516 19.529c.44.895 1.093 1.529 1.88 1.68l50.813 9.688c1.357.26 2.669-.17 3.722-1.065l-21.1-28.869-10.186 9.136"/><path fill="#dfe9ef" d="m59.27 7.322l-52.21 3.574c-.802.056-1.57.598-2.189 1.416l14.256 20.718 6.613 10.1 10.186-9.136 26.773-25.21c-.851-.989-2.045-1.557-3.426-1.465"/><path fill="#ed4c5c" d="m27.12 32.573l-11.729-17.503 4.888-.06.359-14.306 15.09-.704-.382 15.312 8.354.166z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m.6 52.6l18.5-19.6-14.2-20.7c-.7.9-1.2 2.2-1.3 3.5l-3.6 33.1c-.1 1.4.1 2.7.6 3.7"/><path d="m62.7 8.8l-26.8 25.2 21.1 28.9c1.2-1 2-2.5 2.2-4.4l4.8-45.1c.2-1.9-.4-3.5-1.3-4.6"/></g><path d="m25.7 43.1l-6.6-10.1-18.5 19.6c.4.9 1.1 1.5 1.9 1.7l50.8 9.7c1.4.3 2.7-.2 3.7-1.1l-21.1-28.9-10.2 9.1" fill="#cad5dd"/><path d="m59.3 7.3l-52.2 3.6c-.8.1-1.6.6-2.2 1.4l14.2 20.7 6.6 10.1 10.2-9.1 26.8-25.2c-.9-1-2.1-1.6-3.4-1.5" fill="#dfe9ef"/><path fill="#ed4c5c" d="m27.1 32.6l-11.7-17.5 4.9-.1.3-14.3 15.1-.7-.4 15.3 8.4.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ea.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ea.svg
index 2316a9d..b825c02 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m37.983 64l-8.803-1.217v-48.935h8.803z"/><path fill="#7d8b91" d="m44.33 13.848h-6.347v50.15l6.347-6.082z"/><path fill="#333" d="M46.769,0c-8.17,0-35.633,9.471-35.633,9.471l24.557,40.4L64,32.842V17.03C64,6.281,57.588,0,46.769,0z"/><path fill="#697277" d="m17.231 8.516c-10.876 0-17.231 7.497-17.231 18.244v17.03l35.692 6.082v-20.678c0-10.748-7.586-20.677-18.461-20.677"/><path fill="#ed4c5c" d="m62.684 14.172l-26 12.435v3.308l19.264-9.649v9.904l6.736-3.793z"/><g fill="#333"><path d="m9.727 22.752l2.563.346-.094 10.669-1.659-.224.063-7.217c.002-.207.006-.497.014-.871.007-.374.012-.661.013-.864l-1.693 8.736-1.731-.234-1.525-9.169c-.002.203-.003.491-.002.865.001.375 0 .666-.002.873l-.065 7.218-1.66-.224.095-10.67 2.592.349 1.478 8.599 1.613-8.182"/><path d="m16.376 23.649l2.02.272 2.923 11.08-1.934-.261-.543-2.27-3.139-.422-.597 2.114-1.862-.251 3.137-10.258m-.176 6.622l2.184.294-1.04-4.344-1.144 4.05"/><path d="m24.02 35.36l-1.77-.239.094-10.669 1.77.239-.094 10.669"/><path d="m25.783 24.917l1.781.24-.078 8.75 4.258.574-.017 1.919-6.04-.813.093-10.67"/></g><path fill="#52595e" d="m19.572 16.435l-4.51 2.08.306-2.979 3.215-1.483c1.206-.558 2.195 1.825.989 2.382"/><path fill="#333" d="m18.447 16.11c.267 2.55-1.493 3.872-3.02 4.03-.898.095-1.634-6.592-1.634-6.592s.85-.457 1.574-.533c1.524-.158 2.877 1.191 3.076 3.094"/><ellipse transform="matrix(.9946-.1039.1039.9946-1.653 1.656)" fill="#52595e" cx="15.07" cy="16.69" rx="2.772" ry="3.465"/><ellipse transform="matrix(.9946-.104.104.9946-1.655 1.659)" fill="#697277" cx="15.07" cy="16.691" rx="2.107" ry="2.634"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m38 64l-8.8-1.2v-49h8.8z"/><path fill="#7d8b91" d="m44.3 13.8h-6.3v50.2l6.3-6.1z"/><path d="M46.8,0c-8.2,0-35.6,9.5-35.6,9.5l24.6,40.4l28.3-17V17C64,6.3,57.6,0,46.8,0z" fill="#333"/><path d="M17.2,8.5C6.4,8.5,0,16,0,26.8v17l35.7,6.1V29.2C35.7,18.4,28.1,8.5,17.2,8.5z" fill="#697277"/><path fill="#ed4c5c" d="m62.7 14.2l-26 12.4v3.3l19.2-9.6v9.9l6.8-3.8z"/><g fill="#333"><path d="m9.7 22.8l2.6.3-.1 10.7-1.7-.2.1-7.2c0-.2 0-.5 0-.9 0-.4 0-.7 0-.9l-1.7 8.7-1.7-.2-1.5-9.2c0 .2 0 .5 0 .9 0 .4 0 .7 0 .9l-.1 7.2-1.7-.2.1-10.7 2.6.3 1.5 8.6 1.6-8.1"/><path d="m16.4 23.6l2 .3 2.9 11.1-1.9-.3-.5-2.3-3.2-.4-.6 2.1-1.9-.3 3.2-10.2m-.2 6.7l2.2.3-1-4.3-1.2 4"/><path d="m24 35.4l-1.8-.2.1-10.7 1.8.2-.1 10.7"/><path d="m25.8 24.9l1.8.2-.1 8.7 4.3.6v1.9l-6-.8v-10.6"/></g><path d="m19.6 16.4l-4.5 2.1.3-3 3.2-1.5c1.2-.5 2.2 1.9 1 2.4" fill="#52595e"/><path d="m18.4 16.1c.3 2.5-1.5 3.9-3 4-.9.1-1.6-6.6-1.6-6.6s.9-.5 1.6-.5c1.5-.1 2.8 1.2 3 3.1" fill="#333"/><ellipse transform="matrix(.9946-.1039.1039.9946-1.6525 1.6562)" cx="15.1" cy="16.7" rx="2.8" ry="3.5" fill="#52595e"/><ellipse transform="matrix(.9946-.104.104.9946-1.6542 1.6577)" cx="15.1" cy="16.7" rx="2.1" ry="2.6" fill="#697277"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4eb.svg
index 56eafc8..fcd20da 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m37.984 64l-8.804-1.217v-48.935h8.804z"/><path fill="#7d8b91" d="m44.33 13.848h-6.346v50.15l6.346-6.082z"/><path fill="#333" d="M46.77,0C38.6,0,11.136,9.471,11.136,9.471l24.557,40.4L64,32.842V17.03C64,6.282,57.589,0,46.77,0z"/><path fill="#697277" d="m17.232 8.517c-10.876 0-17.232 7.496-17.232 18.244v17.03l35.693 6.082v-20.677c0-10.748-7.586-20.677-18.461-20.677"/><path fill="#ed4c5c" d="m37.23 6.418v29.19l2.735-1.347-.009-18.678 11.274-4.271v-9.703z"/><g fill="#333"><path d="m9.728 22.753l2.563.347-.094 10.668-1.66-.223.063-7.218c.002-.207.007-.497.014-.871.008-.373.012-.661.014-.863l-1.694 8.735-1.731-.234-1.524-9.169c-.002.203-.003.491-.002.865 0 .375 0 .666-.002.873l-.065 7.218-1.66-.225.094-10.669 2.592.349 1.479 8.6 1.613-8.183"/><path d="m16.376 23.649l2.02.272 2.922 11.08-1.932-.262-.543-2.269-3.14-.422-.597 2.115-1.863-.252 3.137-10.258m-.175 6.623l2.183.295-1.039-4.344-1.144 4.049"/><path d="m24.02 35.36l-1.77-.24.094-10.668 1.77.238-.094 10.67"/><path d="m25.783 24.918l1.781.24-.076 8.75 4.256.574-.017 1.918-6.04-.813.093-10.669"/></g><path fill="#52595e" d="m19.572 16.435l-4.509 2.08.306-2.979 3.215-1.483c1.207-.557 2.195 1.825.988 2.382"/><path fill="#333" d="m18.448 16.11c.267 2.55-1.493 3.872-3.02 4.03-.898.095-1.634-6.592-1.634-6.592s.85-.457 1.574-.533c1.524-.159 2.877 1.191 3.076 3.094"/><ellipse transform="matrix(.9946-.1039.1039.9946-1.653 1.657)" fill="#52595e" cx="15.07" cy="16.691" rx="2.772" ry="3.465"/><ellipse transform="matrix(.9946-.104.104.9946-1.655 1.659)" fill="#697277" cx="15.07" cy="16.691" rx="2.107" ry="2.634"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m38 64l-8.8-1.2v-49h8.8z"/><path fill="#7d8b91" d="m44.3 13.8h-6.3v50.2l6.3-6.1z"/><path d="M46.8,0c-8.2,0-35.6,9.5-35.6,9.5l24.6,40.4l28.3-17V17C64,6.3,57.6,0,46.8,0z" fill="#333"/><path d="M17.2,8.5C6.4,8.5,0,16,0,26.8v17l35.7,6.1V29.2C35.7,18.4,28.1,8.5,17.2,8.5z" fill="#697277"/><path fill="#ed4c5c" d="m37.2 6.4v29.2l2.8-1.3v-18.7l11.2-4.3v-9.7z"/><g fill="#333"><path d="m9.7 22.8l2.6.3-.1 10.7-1.7-.2.1-7.2c0-.2 0-.5 0-.9 0-.4 0-.7 0-.9l-1.7 8.7-1.7-.2-1.5-9.2c0 .2 0 .5 0 .9 0 .4 0 .7 0 .9l-.1 7.2-1.6-.2v-10.7l2.6.3 1.5 8.6 1.6-8.1"/><path d="m16.4 23.6l2 .3 2.9 11.1-1.9-.3-.5-2.3-3.2-.4-.6 2.1-1.9-.3 3.2-10.2m-.2 6.7l2.2.3-1-4.3-1.2 4"/><path d="m24 35.4l-1.8-.2.1-10.7 1.8.2-.1 10.7"/><path d="m25.8 24.9l1.8.2-.1 8.7 4.3.6v1.9l-6-.8v-10.6"/></g><path d="m19.6 16.4l-4.5 2.1.3-3 3.2-1.5c1.2-.5 2.2 1.9 1 2.4" fill="#52595e"/><path d="m18.4 16.1c.3 2.5-1.5 3.9-3 4-.9.1-1.6-6.6-1.6-6.6s.9-.5 1.6-.5c1.5-.1 2.8 1.2 3 3.1" fill="#333"/><ellipse transform="matrix(.9946-.1039.1039.9946-1.6526 1.6563)" cx="15.1" cy="16.7" rx="2.8" ry="3.5" fill="#52595e"/><ellipse transform="matrix(.9946-.104.104.9946-1.6542 1.6578)" cx="15.1" cy="16.7" rx="2.1" ry="2.6" fill="#697277"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ec.svg
index 37f350e..2393774 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ec.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m37.984 64l-8.804-1.217v-48.935h8.804z"/><path fill="#7d8b91" d="m44.33 13.848h-6.346v50.15l6.346-6.082z"/><path fill="#697277" d="m17.232 8.517c-1.918 0-3.688.245-5.315.688-7.597 2.069-11.917 8.704-11.917 17.556v17.03l35.692 6.082v-20.677c0-10.748-7.585-20.677-18.46-20.677"/><path fill="#94989b" d="M35.692 49.871 0 43.789 35.692 27.45z"/><g fill="#b0bdc6"><path d="m43.963 34.609l-11.324-8.396 5.607-11.893c.434.404.803 1 .998 1.693l4.695 16.692c.194.686.187 1.363.024 1.904"/><path d="m7.883 17.605l16.11 10.582-8.454 16.68c-.686-.402-1.253-1.121-1.517-2.057l-6.394-22.727c-.265-.943-.141-1.827.256-2.478"/></g><path fill="#cad5dd" d="m30.08 31.981l2.558-5.768 11.324 8.396c-.152.496-.436.881-.831 1.027l-25.566 9.449c-.683.254-1.402.148-2.027-.219l8.454-16.68 6.088 3.795"/><path fill="#dfe9ef" d="m9.537 16.55l27.45-2.764c.421-.042.867.168 1.26.534l-5.607 11.893-2.558 5.768-6.089-3.794-16.11-10.582c.357-.583.928-.98 1.654-1.055"/><path fill="#333" d="M46.77,0c-7.357,0-30.345,7.675-34.853,9.205c1.627-0.443,3.397-0.688,5.315-0.688
- c10.875,0,18.46,9.929,18.46,20.677v20.677L64,32.842V17.03C64,6.282,57.588,0,46.77,0z"/><path fill="#ed4c5c" d="m37.23 6.418v29.19l2.734-1.347-.009-18.678 11.275-4.271v-9.703z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m38 64l-8.8-1.2v-49h8.8z"/><path fill="#7d8b91" d="m44.3 13.8h-6.3v50.2l6.3-6.1z"/><path d="m17.2 8.5c-1.9 0-3.7.2-5.3.7-7.6 2.1-11.9 8.7-11.9 17.6v17l35.7 6.1v-20.7c0-10.8-7.6-20.7-18.5-20.7" fill="#697277"/><path fill="#94989b" d="M35.7 49.9 0 43.8 35.7 27.5z"/><g fill="#b0bdc6"><path d="m44 34.6l-11.3-8.4 5.6-11.9c.4.4.8 1 1 1.7l4.7 16.7c.1.7.1 1.4 0 1.9"/><path d="m7.9 17.6l16.1 10.6-8.5 16.7c-.7-.4-1.3-1.1-1.5-2.1l-6.4-22.7c-.2-1-.1-1.8.3-2.5"/></g><path d="m30.1 32l2.6-5.8 11.3 8.4c-.2.5-.4.9-.8 1l-25.6 9.4c-.7.3-1.4.1-2-.2l8.4-16.6 6.1 3.8" fill="#cad5dd"/><path d="m9.5 16.5l27.5-2.7c.4 0 .9.2 1.3.5l-5.6 11.9-2.6 5.8-6.1-3.8-16.1-10.6c.3-.6.9-1 1.6-1.1" fill="#dfe9ef"/><path d="m46.8 0c-7.4 0-30.3 7.7-34.9 9.2 1.6-.4 3.4-.7 5.3-.7 10.9 0 18.5 9.9 18.5 20.7v20.7l28.3-17v-15.9c0-10.7-6.4-17-17.2-17" fill="#333"/><path fill="#ed4c5c" d="m37.2 6.4v29.2l2.8-1.3v-18.7l11.2-4.3v-9.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ed.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ed.svg
index b4bd441..c4fddba 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ed.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m37.983 64l-8.803-1.217v-48.935h8.803z"/><path fill="#7d8b91" d="m44.33 13.848h-6.347v50.15l6.347-6.082z"/><path fill="#333" d="M46.769,0c-8.17,0-35.633,9.471-35.633,9.471l24.556,40.4L64,32.842V17.03C64,6.281,57.588,0,46.769,0z"/><path fill="#697277" d="M17.231,8.516C6.355,8.516,0,16.013,0,26.76v17.029l35.692,6.082V29.193
- C35.691,18.445,28.106,8.516,17.231,8.516z"/><path fill="#94989b" d="M35.691 49.871 0 43.789 35.691 27.449z"/><path fill="#ed4c5c" d="m62.683 14.172l-26 12.435v3.307l19.263-9.648v9.904l6.736-3.793z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m38 64l-8.8-1.2v-49h8.8z"/><path fill="#7d8b91" d="m44.3 13.8h-6.3v50.2l6.3-6.1z"/><path d="M46.8,0c-8.2,0-35.6,9.5-35.6,9.5l24.6,40.4l28.3-17V17C64,6.3,57.6,0,46.8,0z" fill="#333"/><path d="M17.2,8.5C6.4,8.5,0,16,0,26.8v17l35.7,6.1V29.2C35.7,18.4,28.1,8.5,17.2,8.5z" fill="#697277"/><path fill="#94989b" d="M35.7 49.9 0 43.8 35.7 27.4z"/><path fill="#ed4c5c" d="m62.7 14.2l-26 12.4v3.3l19.2-9.6v9.9l6.8-3.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ee.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ee.svg
index 9802872..2c53c56 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m56.66.016v-.016h-46.933v.015c-.044-.001-.084-.015-.128-.015-4.712 0-9.6 6.954-9.6 26v32 5.997h4.267v-5.996h38.4v5.996h4.268l3.072-1.449v-5.988l6.655-3.119v3.947h4.267l3.072-1.449v-5.938-.064-29.939c0-10.943-2.707-19.821-7.339-19.985"/><path fill="#ed4c5c" d="m9.727 0h46.934v32h-46.934z"/><path fill="#881a0e" d="m56.66 50.753h4.267v6.638h-4.267z"/><g fill="#ed4c5c"><path d="m17.07 20l-17.07 6c0-19.05 4.888-26 9.6-26s7.466 8.955 7.466 20"/><path d="m17.07 50l-17.07 8v-32l17.07-6z"/></g><g fill="#c94747"><path d="m63.999 50l-17.07 8v-32l17.07-6z"/><path d="m50.01 62.55l-3.077 1.45v-6l3.077-1.45z"/><path d="m63.999 55.941l-3.072 1.449v-6l3.072-1.45z"/></g><path fill="#ed4c5c" d="m-.001 26v32 6h4.267v-6h38.4v6h4.268v-6-32z"/><path fill="#c94747" d="m42.665 32.911c0-2.2-1.919-4-4.266-4h-29.867c-2.347 0-4.267 1.8-4.267 4v18.18c0 2.2 1.92 4 4.267 4h29.867c2.347 0 4.266-1.8 4.266-4v-18.18"/><path fill="#ed4c5c" d="m41.45 34.2c0-2.2-1.92-4-4.267-4h-27.433c-2.347 0-4.267 1.8-4.267 4v15.615c0 2.2 1.92 4 4.267 4h27.434c2.347 0 4.267-1.8 4.267-4v-15.615z"/><g fill="#fff"><path d="m14.599 37.684h2.77v8.638h-1.793v-5.843c0-.168.002-.402.006-.705.004-.303.006-.537.006-.701l-1.746 7.249h-1.871l-1.733-7.249c0 .164.002.398.006.701.004.303.006.537.006.705v5.843h-1.794v-8.638h2.801l1.677 6.791 1.665-6.791"/><path d="m21.784 37.684h2.178l3.26 8.638h-2.088l-.607-1.776h-3.393l-.625 1.776h-2.01l3.288-8.638m-.127 5.373h2.359l-1.164-3.398-1.195 3.398"/><path d="m30.15 46.32h-1.912v-8.638h1.912v8.638"/><path d="m31.95 37.684h1.925v7.085h4.601v1.553h-6.526v-8.638"/></g><path fill="#881a0e" d="m43.665 19.11h-25.304l-12.458 3.381h37.762z"/><path fill="#af2b2b" d="m12.911 3.511h39.538v15.6h-39.538z"/><path fill="#ed4c5c" d="m59.732 20l-17.07 6c0-19.05 4.889-26 9.601-26s7.466 8.955 7.466 20"/><g fill="#c94747"><path d="m18.361 19.11l-12.458 3.38c0-13.904 3.567-18.98 7.01-18.98 3.44 0 5.45 7.536 5.45 15.6"/><path d="m63.999 20l-17.07 6c0-19.05 4.886-26 9.599-26s7.467 8.955 7.467 20"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.7 0h-47c0 0-.1 0-.1 0-4.7 0-9.6 7-9.6 26v32 6h4.3v-6h38.4v6h4.3l3.1-1.4v-6l6.7-3.1v3.9h4.3l3.1-1.4v-6-.1-29.9c-.2-10.9-2.9-19.8-7.5-20" fill="#c94747"/><path fill="#ed4c5c" d="m9.7 0h46.9v32h-46.9z"/><path fill="#881a0e" d="m56.7 50.8h4.3v6.6h-4.3z"/><g fill="#ed4c5c"><path d="M17.1,20L0,26C0,7,4.9,0,9.6,0S17.1,9,17.1,20z"/><path d="M17.1 50 0 58 0 26 17.1 20z"/></g><g fill="#c94747"><path d="m64 50l-17.1 8v-32l17.1-6z"/><path d="m50 62.6l-3.1 1.4v-6l3.1-1.4z"/><path d="m64 55.9l-3.1 1.5v-6l3.1-1.5z"/></g><path fill="#ed4c5c" d="m0 26v32 6h4.3v-6h38.4v6h4.2v-6-32z"/><path d="m42.7 32.9c0-2.2-1.9-4-4.3-4h-29.9c-2.3 0-4.3 1.8-4.3 4v18.2c0 2.2 1.9 4 4.3 4h29.9c2.3 0 4.3-1.8 4.3-4v-18.2" fill="#c94747"/><path d="m41.4 34.2c0-2.2-1.9-4-4.3-4h-27.4c-2.3 0-4.3 1.8-4.3 4v15.6c0 2.2 1.9 4 4.3 4h27.4c2.3 0 4.3-1.8 4.3-4v-15.6" fill="#ed4c5c"/><g fill="#fff"><path d="m14.6 37.7h2.8v8.6h-1.8v-5.8c0-.2 0-.4 0-.7s0-.5 0-.7l-1.7 7.2h-1.9l-1.7-7.2c0 .2 0 .4 0 .7s0 .5 0 .7v5.8h-1.8v-8.6h2.8l1.7 6.8 1.6-6.8"/><path d="m21.8 37.7h2.2l3.3 8.6h-2.1l-.6-1.8h-3.4l-.6 1.8h-2l3.2-8.6m-.1 5.4h2.3l-1.2-3.4-1.1 3.4"/><path d="m30.1 46.3h-1.9v-8.6h1.9v8.6"/><path d="M32,37.7h1.9v7.1h4.6v1.6H32V37.7z"/></g><path fill="#881a0e" d="m43.7 19.1h-25.3l-12.5 3.4h37.8z"/><path fill="#af2b2b" d="m12.9 3.5h39.5v15.6h-39.5z"/><path d="m59.7 20l-17.1 6c0-19 4.9-26 9.6-26s7.5 9 7.5 20" fill="#ed4c5c"/><g fill="#c94747"><path d="m18.4 19.1l-12.5 3.4c0-13.9 3.6-19 7-19 3.5 0 5.5 7.5 5.5 15.6"/><path d="M64,20l-17.1,6c0-19,4.9-26,9.6-26S64,9,64,20z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ef.svg
index d6edbb5..6ead0b0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m54.44 30.23c-2.685-2.574-4.216-5.555-4.02-7.491-.011-.003-.017-.005-.017-.005s-.109 4.242-1.537 5.947c-.768.874-1.652 1.822-2.66 2.802-.208.201-.422.404-.641.609.543-1.83.824-3.75.824-5.712 0-5.345-2.082-10.37-5.861-14.15-3.779-3.78-8.805-5.862-14.15-5.862s-10.371 2.082-14.15 5.862c-3.779 3.779-5.861 8.804-5.861 14.15 0 4.69 1.604 9.134 4.55 12.707-.478-.252-.946-.512-1.404-.779-1.609-.947-3.084-1.973-4.414-2.971-.789-.594-1.525-1.176-2.211-1.738-.366-.305-.615-.678-.62-.942-.006-.311.046-.586-.132-.779-.338-.367-1.05-.261-1.59.237-.54.498-.704 1.199-.366 1.564.188.205.42.168.754.186.465.027.471.168.875.592 0 0 4.51 4.652 6.104 6.109 1.478 1.35 3.279 2.553 5.29 3.625 1 .535 2.075 1.02 3.199 1.422 1.123.406 2.298.73 3.486.971 1.188.244 2.385.408 3.555.535.585.063 1.163.117 1.732.168.283.025.566.051.849.076.134.014.296.021.448.031l.465.029c2.478.133 4.984-.029 7.407-.443 2.425-.412 4.761-1.074 6.946-1.887 2.188-.813 4.225-1.775 6.088-2.795 1.863-1.021 3.555-2.098 5.067-3.158 1.085-.762 2.077-1.514 2.977-2.232v-.002c2.755-2.076 6.452-2.938 6.452-2.938s-.001-.002-.005-.01c-1.934.138-4.845-1.255-7.426-3.728m-28.07 10.332c-7.821 0-14.183-6.361-14.183-14.183 0-7.82 6.362-14.183 14.183-14.183 7.82 0 14.183 6.363 14.183 14.183 0 7.822-6.363 14.183-14.183 14.183"/><path fill="#333" d="m59.959 24.474c-3.433-3.289-7.449-4.666-8.974-3.076-.331.346-.517.804-.57 1.343-.19 1.937 1.341 4.917 4.02 7.491 2.581 2.473 5.491 3.866 7.425 3.727.639-.045 1.17-.256 1.549-.65 1.524-1.591-.023-5.546-3.455-8.835"/><g fill="#ed4c5c"><path d="m24.82 39.701c0 1.484 0 2.967 0 4.449 0 1.215 0 2.43 0 3.643 0 .424.354.777.776.777.424 0 .777-.354.777-.777 0-1.482 0-2.967 0-4.449 0-1.215 0-2.428 0-3.643 0-.422-.354-.777-.777-.777-.422 0-.776.355-.776.777"/><path d="m27.928 39.701c0 1.484 0 2.967 0 4.449 0 1.215 0 2.43 0 3.643 0 .424.354.777.777.777s.777-.354.777-.777c0-1.482 0-2.967 0-4.449 0-1.215 0-2.428 0-3.643 0-.422-.354-.777-.777-.777s-.777.355-.777.777"/></g><path fill="#c94747" d="m27.928 53.16c0-.91 0-1.818 0-2.729 0-2.078 0-4.156 0-6.234 0-1.436 0-2.871 0-4.307 0-.064 0-.129 0-.193 0-.422-.354-.777-.777-.777s-.776.355-.776.777c0 1.063 0 2.125 0 3.186 0 2.078 0 4.156 0 6.236 0 1.354 0 2.707 0 4.063-.546.438-.721 1.326-.776 2.063-.056-.748-.23-1.654-.777-2.084 0-.91 0-1.818 0-2.729 0-2.078 0-4.156 0-6.234 0-1.436 0-2.871 0-4.307 0-.064 0-.129 0-.193 0-.422-.354-.777-.777-.777s-.777.355-.777.777c0 1.063 0 2.125 0 3.186 0 2.078 0 4.156 0 6.236 0 1.354 0 2.707 0 4.063-.786.629-.803 2.199-.803 2.891h.025c0 .857.696 1.553 1.555 1.553.857 0 1.554-.695 1.554-1.553 0 .857.696 1.553 1.554 1.553.859 0 1.555-.695 1.555-1.553h.025c-.003-.699-.02-2.299-.805-2.914"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54.4 30.2c-2.7-2.6-4.2-5.6-4-7.5s-.1 4.2-1.5 5.9c-.8.9-1.7 1.8-2.7 2.8-.2.2-.4.4-.6.6.5-1.8.8-3.8.8-5.7 0-5.3-2.1-10.4-5.9-14.1-3.8-3.8-8.8-5.9-14.1-5.9s-10.4 2.2-14.2 5.9c-3.8 3.8-5.8 8.8-5.8 14.2 0 4.7 1.6 9.1 4.6 12.7-.5-.3-.9-.5-1.4-.8-1.6-.9-3.1-2-4.4-3-.8-.6-1.5-1.2-2.2-1.7-.4-.3-.6-.7-.6-.9 0-.3 0-.6-.1-.8-.3-.4-1-.3-1.6.2-.5.5-.7 1.2-.4 1.6.2.2.4.2.8.2.5 0 .5.2.9.6 0 0 4.5 4.7 6.1 6.1 1.5 1.3 3.3 2.6 5.3 3.6 1 .5 2.1 1 3.2 1.4 1.1.4 2.3.7 3.5 1 1.2.2 2.4.4 3.6.5.6.1 1.2.1 1.7.2.3 0 .6.1.8.1.1 0 .3 0 .4 0h.5c2.5.1 5 0 7.4-.4 2.4-.4 4.8-1.1 6.9-1.9 2.2-.8 4.2-1.8 6.1-2.8 1.9-1 3.6-2.1 5.1-3.2 1.1-.8 2.1-1.5 3-2.2 2.8-2.1 6.5-2.9 6.5-2.9-2.2.1-5.1-1.3-7.7-3.8m-28 10.4c-7.8 0-14.2-6.4-14.2-14.2 0-7.8 6.4-14.2 14.2-14.2 7.8 0 14.2 6.4 14.2 14.2 0 7.8-6.4 14.2-14.2 14.2" fill="#f2b200"/><path d="m60 24.5c-3.4-3.3-7.4-4.7-9-3.1-.3.3-.5.8-.6 1.3-.2 1.9 1.3 4.9 4 7.5 2.6 2.5 5.5 3.9 7.4 3.7.6 0 1.2-.3 1.5-.7 1.6-1.5.1-5.4-3.3-8.7" fill="#333"/><g fill="#ed4c5c"><path d="m24.8 39.7c0 1.5 0 3 0 4.4 0 1.2 0 2.4 0 3.6 0 .4.4.8.8.8.4 0 .8-.4.8-.8 0-1.5 0-3 0-4.4 0-1.2 0-2.4 0-3.6 0-.4-.4-.8-.8-.8-.4 0-.8.4-.8.8"/><path d="m27.9 39.7c0 1.5 0 3 0 4.4 0 1.2 0 2.4 0 3.6 0 .4.4.8.8.8s.8-.4.8-.8c0-1.5 0-3 0-4.4 0-1.2 0-2.4 0-3.6 0-.4-.4-.8-.8-.8s-.8.4-.8.8"/></g><path d="m27.9 53.2c0-.9 0-1.8 0-2.7 0-2.1 0-4.2 0-6.2 0-1.4 0-2.9 0-4.3 0-.1 0-.1 0-.2 0-.4-.4-.8-.8-.8s-.8.4-.8.8c0 1.1 0 2.1 0 3.2 0 2.1 0 4.2 0 6.2 0 1.4 0 2.7 0 4.1-.5.4-.7 1.3-.8 2.1-.1-.7-.2-1.7-.8-2.1 0-.9 0-1.8 0-2.7 0-2.1 0-4.2 0-6.2 0-1.4 0-2.9 0-4.3 0-.1 0-.1 0-.2 0-.4-.4-.8-.8-.8s-.8.4-.8.8c0 1.1 0 2.1 0 3.2 0 2.1 0 4.2 0 6.2 0 1.4 0 2.7 0 4.1-.8.6-.8 2.2-.8 2.9 0 .9.7 1.6 1.6 1.6.9 0 1.6-.7 1.6-1.6 0 .9.7 1.6 1.6 1.6.9 0 1.6-.7 1.6-1.6 0-.9 0-2.5-.8-3.1" fill="#c94747"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f0.svg
index 841d8ea..51f9f85 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m30.02 63.05c0 0 19.724-25.311 33.974-33.14-6.413-12.533-38.22-24.969-38.22-24.969l-20.11 26.22 19.625 31.658c1.084 1.47 3.212 1.59 4.725.235"/><path fill="#d0d0d0" d="m26.02 57.911c0 0 38.28-26.684 33.495-42.08-10.683.976-31.25-13.617-32.758-15.828-6.02 8.772-18.644 15.515-24.348 23.08-2.309 3.061-3.462 5.338-1.167 8.838l24.05 30.904c-1.056-1.431-.72-3.615.725-4.908"/><g fill="#94989b"><path d="m47.27 32.383l-28.326-22.2.739-.661 28.597 21.954z"/><path d="m17.946 31.16l-10.286-10.635c4.886-5.649 8.922-8.226 8.922-8.226l11.596 9.702-10.232 9.159"/><path d="m24.656 52.63l-21.882-26.819c.56-2.369 2.592-3.47 2.592-3.47l23.33 26.673-4.04 3.616"/><path d="M30.809 24.2 27.29 27.349 40 38.892 44.04 35.28z"/><path d="m23.778 30.496l-3.514 3.146 11.664 12.478 4.04-3.613z"/><path d="m28.321 4.37l1.116.705-1.664 4.69 3.762-3.366 1.066.673-5.458 4.886-1.074-.784 1.715-4.811-3.732 3.341-.931-.679 5.2-4.655"/><path d="m37.08 11.458l-3.155-2.042-1.189 1.064 2.852 1.904-1 .897-2.821-1.931-1.438 1.289 3.176 2.257-1.042.933-4.245-3.094 5.527-4.948 4.364 2.754-1.027.917"/><path d="m40.16 11.84l-2.55 3.604-.77.979 1.119-.708 4.209-2.608 1.516.957-2.7 3.694-.778 1.026 1.162-.704 4.553-2.605 1.574.994-8.303 4.271-1.34-.977 2.774-3.767.938-1.211-1.412.895-4.316 2.614-1.212-.883 4.113-6.467 1.423.896"/><path d="m45.13 21.819c-.248.299-.375.564-.38.796-.008.424.304.863.944 1.319.387.276.738.47 1.055.579.605.208 1.1.144 1.479-.195.221-.198.274-.432.163-.701-.114-.266-.376-.611-.783-1.034l-.684-.717c-.66-.695-1.047-1.22-1.168-1.583-.206-.605.005-1.187.633-1.75.573-.513 1.299-.779 2.184-.798.894-.018 1.847.289 2.869.93.868.545 1.433 1.185 1.686 1.917.257.741.042 1.446-.648 2.111l-1.66-1.094c.372-.379.438-.777.198-1.191-.159-.274-.438-.539-.834-.795-.438-.282-.856-.442-1.256-.482-.397-.04-.721.053-.974.279-.231.208-.28.445-.146.713.086.175.339.485.765.931l1.12 1.179c.5.526.808.988.918 1.385.174.619-.043 1.202-.648 1.744-.62.556-1.422.812-2.397.77-.965-.042-1.944-.43-2.931-1.152-.988-.722-1.56-1.454-1.727-2.198-.166-.736.085-1.399.75-1.994l1.472 1.031"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m30 63.1c0 0 19.7-25.3 34-33.1-6.4-12.5-38.2-25-38.2-25l-20.1 26.2 19.6 31.7c1.1 1.4 3.2 1.5 4.7.2" fill="#94989b"/><path d="m26 57.9c0 0 38.3-26.7 33.5-42.1-10.7 1-31.2-13.6-32.7-15.8-6 8.8-18.6 15.5-24.3 23.1-2.3 3.1-3.5 5.3-1.2 8.8l24.1 30.9c-1.2-1.4-.8-3.6.6-4.9" fill="#d0d0d0"/><g fill="#94989b"><path d="m47.3 32.4l-28.4-22.2.8-.7 28.6 22z"/><path d="M17.9,31.2L7.7,20.5c4.9-5.6,8.9-8.2,8.9-8.2L28.2,22L17.9,31.2z"/><path d="m24.7 52.6l-21.9-26.8c.6-2.4 2.6-3.5 2.6-3.5l23.3 26.7-4 3.6"/><path d="m30.8 24.2l-3.5 3.1 12.7 11.6 4-3.6z"/><path d="m23.8 30.5l-3.5 3.1 11.6 12.5 4.1-3.6z"/><path d="m28.3 4.4l1.1.7-1.7 4.7 3.8-3.4 1.1.7-5.5 4.9-1.1-.8 1.7-4.8-3.7 3.3-.9-.7 5.2-4.6"/><path d="m37.1 11.5l-3.2-2-1.2 1.1 2.9 1.9-1 .9-2.8-1.9-1.4 1.3 3.2 2.3-1 .9-4.2-3.1 5.5-4.9 4.4 2.8-1.2.7"/><path d="m40.2 11.8l-2.5 3.6-.8 1 1.1-.7 4.2-2.6 1.5 1-2.7 3.7-.8 1 1.2-.7 4.6-2.6 1.6 1-8.3 4.3-1.3-1 2.8-3.8.9-1.2-1.4.9-4.3 2.6-1.2-.9 4.1-6.5 1.3.9"/><path d="m45.1 21.8c-.2.3-.4.6-.4.8 0 .4.3.9.9 1.3.4.3.7.5 1.1.6.6.2 1.1.1 1.5-.2.2-.2.3-.4.2-.7-.1-.3-.4-.6-.8-1l-.7-.7c-.7-.7-1-1.2-1.2-1.6-.2-.6 0-1.2.6-1.8.6-.5 1.3-.8 2.2-.8.9 0 1.8.3 2.9.9.9.5 1.4 1.2 1.7 1.9.3.7 0 1.4-.6 2.1l-1.7-1.1c.4-.4.4-.8.2-1.2-.2-.3-.4-.5-.8-.8-.4-.3-.9-.4-1.3-.5-.4 0-.7.1-1 .3-.2.2-.3.4-.1.7.1.2.3.5.8.9l1.1 1.2c.5.5.8 1 .9 1.4.2.6 0 1.2-.6 1.7-.6.6-1.4.8-2.4.8-1 0-1.9-.4-2.9-1.2-1-.7-1.6-1.5-1.7-2.2-.2-.7.1-1.4.8-2l1.3 1.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f1.svg
index e9c1efd..bbb0684 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f1.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#5c6d6d" d="M50,4.129C50,2.064,47.867,0,45.732,0H18.267C16.134,0,14,2.064,14.001,4.129L14,59.871
- C14,61.936,16.134,64,18.267,64h27.466C47.867,64,50,61.936,50,59.871V4.129z"/><path fill="#212528" d="M49,59c0,2-2,4-4,4H19c-2,0-4-2-4-4l0.001-54C15,3,17,1,19,1h26c2,0,4,2,4,4V59z"/><g fill="#94989b"><circle cx="43.5" cy="4.499" r="1"/><path d="m35 4.533c0 .277-.133.501-.299.501h-5.402c-.164 0-.299-.223-.299-.501 0-.275.135-.499.299-.499h5.402c.166 0 .299.224.299.499"/></g><path fill="#3e4347" d="m17 8h30v48h-30z"/><path fill="#94989b" d="m35.75 60.25c0 .414-.336.75-.75.75h-6c-.414 0-.75-.336-.75-.75v-1.5c0-.414.336-.75.75-.75h6c.414 0 .75.336.75.75v1.5"/><path fill="#42ade2" d="m24 14.667c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#c7e755" d="m31 14.667c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#f2b200" d="m38 14.667c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#42ade2" d="m45 14.667c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#c7e755" d="m24 53.17c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#ff435e" d="m31 53.17c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#42ade2" d="m38 53.17c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#c28fef" d="m45 53.17c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#c7e755" d="m24 33.917c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#c28fef" d="m31 33.917c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#42ade2" d="m38 33.917c0 .46-.373.833-.834.833h-3.333c-.46 0-.833-.373-.833-.833v-3.333c0-.461.373-.834.833-.834h3.333c.461 0 .834.373.834.834v3.333"/><path fill="#ff435e" d="m24 27.5c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#f2b200" d="m31 27.5c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#c7e755" d="m38 27.5c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#f2b200" d="m45 27.5c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#c28fef" d="m24 21.08c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#42ade2" d="m31 21.08c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#ff435e" d="m38 21.08c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/><path fill="#c28fef" d="m45 21.08c0 .461-.373.834-.834.834h-3.333c-.46 0-.833-.373-.833-.834v-3.333c0-.46.373-.833.833-.833h3.333c.461 0 .834.373.834.833v3.333"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50 4.1c0-2-2.1-4.1-4.3-4.1h-27.4c-2.2 0-4.3 2.1-4.3 4.1v55.7c0 2.1 2.1 4.1 4.3 4.1h27.5c2.1 0 4.3-2.1 4.3-4.1v-55.7z" fill="#5c6d6d"/><path d="m49 59c0 2-2 4-4 4h-26c-2 0-4-2-4-4v-54c0-2 2-4 4-4h26c2 0 4 2 4 4v54" fill="#212528"/><g fill="#94989b"><circle cx="43.5" cy="4.5" r="1"/><path d="m35 4.5c0 .3-.1.5-.3.5h-5.4c-.2 0-.3-.2-.3-.5 0-.2.1-.5.3-.5h5.4c.2 0 .3.3.3.5"/></g><path fill="#3e4347" d="m17 8h30v48h-30z"/><path d="m35.8 60.2c0 .4-.3.8-.8.8h-6c-.4 0-.8-.3-.8-.8v-1.5c0-.4.3-.8.8-.8h6c.4 0 .8.3.8.8v1.5" fill="#94989b"/><path d="m24 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m31 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m38 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#f2b200"/><path d="m45 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m24 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m31 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#ff435e"/><path d="m38 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m45 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path d="m24 33.9c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m31 33.9c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path d="m38 33.9c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m24 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#ff435e"/><path d="m31 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#f2b200"/><path d="m38 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m45 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#f2b200"/><path d="m24 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path d="m31 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m38 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#ff435e"/><path d="m45 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f2.svg
index 25e99bc..9f323e4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f2.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#5c6d6d" d="M64,4.129C64,2.064,61.867,0,59.734,0H32.267C30.134,0,28,2.064,28.001,4.129L28,59.871
- C28,61.936,30.134,64,32.267,64h27.467C61.867,64,64,61.936,64,59.871V4.129z"/><path fill="#212528" d="m63 59c-.002 2-2 4-4 4h-26c-2 0-4-2-4-4l.002-54c-.002-2 1.998-4 3.998-4h26c2 0 4 2 4 4l.002 54"/><g fill="#94989b"><circle cx="57.5" cy="4.499" r="1"/><path d="m49 4.533c0 .277-.133.501-.299.501h-5.402c-.164 0-.299-.223-.299-.501 0-.275.135-.499.299-.499h5.402c.166 0 .299.224.299.499"/></g><path fill="#3e4347" d="m31 8h30v48h-30z"/><path fill="#94989b" d="m49.75 60.25c0 .414-.336.75-.75.75h-6c-.414 0-.75-.336-.75-.75v-1.5c0-.414.336-.75.75-.75h6c.414 0 .75.336.75.75v1.5"/><path fill="#42ade2" d="m38 14.667c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.374-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#c7e755" d="m45 14.667c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#f2b200" d="m52 14.667c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#42ade2" d="m59 14.667c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#c7e755" d="m38 53.17c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#ff435e" d="m45 53.17c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#42ade2" d="m52 53.17c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#c28fef" d="m59 53.17c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#c7e755" d="m38 33.917c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.374-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#c28fef" d="m45 33.917c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#42ade2" d="m52 33.917c0 .46-.373.833-.834.833h-3.332c-.461 0-.834-.373-.834-.833v-3.333c0-.461.373-.834.834-.834h3.332c.461 0 .834.373.834.834v3.333"/><path fill="#ff435e" d="m38 27.5c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.374-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#f2b200" d="m45 27.5c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.373-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#c7e755" d="m52 27.5c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.373-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#f2b200" d="m59 27.5c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.373-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#c28fef" d="m38 21.08c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.374-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#42ade2" d="m45 21.08c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.373-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#ff435e" d="m52 21.08c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.373-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#c28fef" d="m59 21.08c0 .461-.373.834-.834.834h-3.332c-.461 0-.834-.373-.834-.834v-3.333c0-.46.373-.833.834-.833h3.332c.461 0 .834.373.834.833v3.333"/><path fill="#f2b200" d="m36 32l-19.07-19.07v9.01h-16.929v20.12h16.929v9.01z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 4.1c0-2-2.1-4.1-4.3-4.1h-27.4c-2.2 0-4.3 2.1-4.3 4.1v55.7c0 2.1 2.1 4.1 4.3 4.1h27.5c2.1 0 4.3-2.1 4.3-4.1v-55.7z" fill="#5c6d6d"/><path d="m63 59c0 2-2 4-4 4h-26c-2 0-4-2-4-4v-54c0-2 2-4 4-4h26c2 0 4 2 4 4v54" fill="#212528"/><g fill="#94989b"><circle cx="57.5" cy="4.5" r="1"/><path d="m49 4.5c0 .3-.1.5-.3.5h-5.4c-.2 0-.3-.2-.3-.5 0-.2.1-.5.3-.5h5.4c.2 0 .3.3.3.5"/></g><path fill="#3e4347" d="m31 8h30v48h-30z"/><path d="m49.8 60.2c0 .4-.3.8-.8.8h-6c-.4 0-.8-.3-.8-.8v-1.5c0-.4.3-.8.8-.8h6c.4 0 .8.3.8.8v1.5" fill="#94989b"/><path d="m38 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m45 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m52 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#f2b200"/><path d="m59 14.7c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m38 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m45 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#ff435e"/><path d="m52 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m59 53.2c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path d="m38 33.9c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m45 33.9c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path d="m52 33.9c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m38 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#ff435e"/><path d="m45 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#f2b200"/><path d="m52 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c7e755"/><path d="m59 27.5c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#f2b200"/><path d="m38 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path d="m45 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#42ade2"/><path d="m52 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#ff435e"/><path d="m59 21.1c0 .5-.4.8-.8.8h-3.3c-.5 0-.8-.4-.8-.8v-3.3c0-.5.4-.8.8-.8h3.3c.5 0 .8.4.8.8v3.3" fill="#c28fef"/><path fill="#f2b200" d="m36 32l-19.1-19.1v9h-16.9v20.2h16.9v9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f3.svg
index bedebb9..7f2e947 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f2b200" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m38.442 13h-12.884c-2.373 0-4.297 1.89-4.297 4.222v29.555c0 2.332 1.924 4.223 4.297 4.223h12.885c2.374 0 4.297-1.891 4.297-4.223v-29.555c-.001-2.332-1.924-4.222-4.298-4.222m-8.544 1.541h4.203c.296 0 .537.237.537.528 0 .292-.241.528-.537.528h-4.203c-.297 0-.537-.237-.537-.528 0-.291.241-.528.537-.528m2.102 34.33c-.712 0-1.289-.567-1.289-1.267 0-.698.577-1.266 1.289-1.266.713 0 1.29.567 1.29 1.266 0 .7-.577 1.267-1.29 1.267m8.591-4.63h-17.18v-27.02h17.18v27.02"/><path d="m10.838 21.312c1.518 3.457 1.897 7.104 1.967 10.694-.047 3.582-.449 7.234-1.967 10.682-.298-3.549-.135-7.139-.111-10.691-.024-3.554-.161-7.136.111-10.685"/><path d="m14.647 15.969c1.84 5.246 2.343 10.659 2.431 16.04-.089 5.373-.585 10.783-2.431 16.02.014-5.244.326-10.488.351-15.734.025-5.443-.319-10.883-.351-16.328"/><path d="m53.16 42.688c-1.518-3.457-1.897-7.104-1.967-10.691.047-3.584.449-7.236 1.967-10.683.298 3.548.135 7.138.111 10.693.024 3.55.161 7.132-.111 10.681"/><path d="m49.35 48.03c-1.84-5.246-2.343-10.66-2.431-16.04.089-5.375.585-10.785 2.431-16.03-.014 5.245-.326 10.489-.351 15.734-.025 5.445.319 10.885.351 16.328"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#eda454"/><g fill="#fff"><path d="m38.4 13h-12.8c-2.4 0-4.3 1.9-4.3 4.2v29.6c0 2.3 1.9 4.2 4.3 4.2h12.9c2.4 0 4.3-1.9 4.3-4.2v-29.6c-.1-2.3-2-4.2-4.4-4.2m-8.5 1.5h4.2c.3 0 .5.2.5.5s-.2.5-.5.5h-4.2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5m2.1 34.4c-.7 0-1.3-.6-1.3-1.3s.6-1.3 1.3-1.3c.7 0 1.3.6 1.3 1.3s-.6 1.3-1.3 1.3m8.6-4.7h-17.2v-27h17.2v27"/><path d="m10.8 21.3c1.5 3.5 1.9 7.1 2 10.7 0 3.6-.4 7.2-2 10.7-.3-3.5-.1-7.1-.1-10.7 0-3.6-.1-7.1.1-10.7"/><path d="m14.6 16c1.8 5.2 2.3 10.7 2.4 16-.1 5.4-.6 10.8-2.4 16 0-5.2.3-10.5.4-15.7 0-5.4-.3-10.9-.4-16.3"/><path d="m53.2 42.7c-1.5-3.5-1.9-7.1-2-10.7 0-3.6.4-7.2 2-10.7.3 3.5.1 7.1.1 10.7 0 3.6.1 7.1-.1 10.7"/><path d="m49.4 48c-1.8-5.2-2.3-10.7-2.4-16 .1-5.4.6-10.8 2.4-16 0 5.2-.3 10.5-.4 15.7 0 5.4.3 10.9.4 16.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f4.svg
index fc3b6cc..3f7fd7f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f2b200" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m32 37c-2.757 0-5-2.243-5-5s2.243-5 5-5 5 2.243 5 5-2.243 5-5 5m0-8.571c-1.97 0-3.571 1.603-3.571 3.571s1.601 3.571 3.571 3.571 3.571-1.603 3.571-3.571-1.601-3.571-3.571-3.571"/><path d="m39.455 37v-4.285h6.545v-1.425h-6.545v-2.861h6.545v-1.429h-8v10z"/><path d="m48.45 37v-4.285h6.55v-1.425h-6.55v-2.861h6.55v-1.429h-8v10z"/><path d="m42.4 39.75v6.75h-20.8v-32h20.8v9.75h2.6v-9.75c0-2.762-2.328-5-5.2-5h-15.6c-2.87 0-5.2 2.238-5.2 5v35c0 2.762 2.33 5 5.2 5h15.6c2.872 0 5.2-2.238 5.2-5v-9.75h-2.6m-10.4 12.233c-.861 0-1.561-.672-1.561-1.5s.699-1.5 1.561-1.5c.863 0 1.561.672 1.561 1.5s-.698 1.5-1.561 1.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#eda454"/><g fill="#fff"><path d="m32 37c-2.8 0-5-2.2-5-5 0-2.8 2.2-5 5-5s5 2.2 5 5c0 2.8-2.2 5-5 5m0-8.6c-2 0-3.6 1.6-3.6 3.6s1.6 3.6 3.6 3.6 3.6-1.6 3.6-3.6-1.6-3.6-3.6-3.6"/><path d="m39.5 37v-4.3h6.5v-1.4h-6.5v-2.9h6.5v-1.4h-8v10z"/><path d="m48.5 37v-4.3h6.5v-1.4h-6.5v-2.9h6.5v-1.4h-8v10z"/><path d="m42.4 39.8v6.8h-20.8v-32h20.8v9.8h2.6v-9.8c0-2.8-2.3-5-5.2-5h-15.6c-2.9 0-5.2 2.2-5.2 5v35c0 2.8 2.3 5 5.2 5h15.6c2.9 0 5.2-2.2 5.2-5v-9.8h-2.6m-10.4 12.2c-.9 0-1.6-.7-1.6-1.5s.7-1.5 1.6-1.5c.9 0 1.6.7 1.6 1.5s-.7 1.5-1.6 1.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f5.svg
index 9ff36be..dfeb098 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><path fill="#fff" d="m37.767 14.996h-11.533c-2.123 0-3.844 1.691-3.844 3.778v26.449c0 2.088 1.721 3.779 3.844 3.779h11.532c2.124 0 3.845-1.691 3.845-3.779v-26.449c0-2.086-1.72-3.778-3.844-3.778m-7.647 1.379h3.761c.266 0 .48.212.48.473s-.215.472-.48.472h-3.761c-.266 0-.481-.211-.481-.472s.215-.473.481-.473m1.88 30.727c-.637 0-1.152-.509-1.152-1.135 0-.625.516-1.133 1.152-1.133.639 0 1.154.508 1.154 1.133 0 .626-.515 1.135-1.154 1.135m7.689-4.145h-15.376v-24.18h15.377v24.18"/><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.816 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><path d="m37.8 15h-11.6c-2.1 0-3.8 1.7-3.8 3.8v26.4c0 2.1 1.7 3.8 3.8 3.8h11.5c2.1 0 3.8-1.7 3.8-3.8v-26.4c.1-2.1-1.6-3.8-3.7-3.8m-7.7 1.4h3.8c.3 0 .5.2.5.5 0 .3-.2.5-.5.5h-3.8c-.3 0-.5-.2-.5-.5 0-.3.3-.5.5-.5m1.9 30.7c-.6 0-1.2-.5-1.2-1.1s.5-1.1 1.2-1.1c.6 0 1.2.5 1.2 1.1s-.6 1.1-1.2 1.1m7.7-4.1h-15.4v-24.2h15.4v24.2" fill="#fff"/><path transform="matrix(.7071-.7071.7071.7071-13.255 31.9996)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f6.svg
index 98c800f..f603362 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m44 16h6v32h-6z"/><path d="m34 24h6v24h-6z"/><path d="m24 32h6v16h-6z"/><path d="m14 40h6v8h-6z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m44 16h6v32h-6z"/><path d="m34 24h6v24h-6z"/><path d="m24 32h6v16h-6z"/><path d="m14 40h6v8h-6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f7.svg
index befa0a1..ed7884b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212528"><path d="m21.578 16.07c0 1.202-.975 2.176-2.176 2.176h-9.657c-1.202 0-2.176-.974-2.176-2.176v-2.714c0-1.201.974-2.175 2.176-2.175h9.657c1.201 0 2.176.974 2.176 2.175v2.714"/><path d="m60.672 15.887c0 .642-.521 1.162-1.162 1.162h-5.158c-.641 0-1.162-.52-1.162-1.162v-1.449c0-.642.521-1.162 1.162-1.162h5.158c.642 0 1.162.52 1.162 1.162v1.449"/><path d="m64 50.34c0 3-2.436 5.439-5.439 5.439h-53.12c-3 0-5.439-2.435-5.439-5.439v-1.632h64v1.632"/></g><path fill="#51575b" d="m0 20.15c0-3 2.436-5.439 5.439-5.439h53.12c3 0 5.439 2.436 5.439 5.439v1.631h-63.999v-1.631"/><path fill="#3e4347" d="m0 21.505h64v28.28h-64z"/><path fill="#51575b" d="m54.659 18h-32.08l3.218-10.835c.271-.605 1.606-1.585 2.404-1.806 4.89-1.35 15.947-1.35 20.837 0 .798.221 2.133 1.201 2.404 1.806l3.218 10.835"/><path fill="#3e4347" d="m53.1 29.613h-28.963l2.905-14.63c.245-.817 1.45-2.141 2.171-2.438 4.414-1.823 14.396-1.823 18.812 0 .721.298 1.925 1.622 2.171 2.438l2.904 14.63"/><path fill="#788287" d="m60.62 37.649c0 12.155-9.853 22-21.998 22-12.15 0-22-9.845-22-22 0-12.148 9.852-22 22-22 12.146 0 21.998 9.852 21.998 22"/><path fill="#212528" d="m58.17 37.646c0 10.806-8.757 19.556-19.553 19.556-10.801 0-19.559-8.75-19.559-19.556 0-10.798 8.758-19.555 19.559-19.555 10.796 0 19.553 8.757 19.553 19.555"/><circle fill="#3e4347" cx="38.621" cy="37.646" r="15.889"/><circle fill="#212528" cx="38.621" cy="37.648" r="8.556"/><g fill="#f5f5f5"><path opacity=".5" d="m50.31 30.868c0 2.716-2.203 4.921-4.921 4.921-2.719 0-4.922-2.205-4.922-4.921 0-2.715 2.203-4.922 4.922-4.922 2.717 0 4.921 2.207 4.921 4.922"/><circle opacity=".5" cx="35.563" cy="40.704" r="3.056"/><circle opacity=".5" cx="30.07" cy="46.2" r="1.892"/></g><path fill="#636c72" d="m15 45.35c0 1.202-.975 2.176-2.176 2.176h-9.246c-1.201 0-2.176-.974-2.176-2.176v-19.399c0-1.202.975-2.176 2.176-2.176h9.246c1.201 0 2.176.974 2.176 2.176v19.399"/><circle fill="#212528" cx="10.11" cy="18.604" r="3.173"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212528"><path d="m21.6 16.1c0 1.2-1 2.2-2.2 2.2h-9.7c-1.2 0-2.2-1-2.2-2.2v-2.7c0-1.2 1-2.2 2.2-2.2h9.7c1.2 0 2.2 1 2.2 2.2 0 0 0 2.7 0 2.7"/><path d="m60.7 15.9c0 .6-.5 1.2-1.2 1.2h-5.2c-.6 0-1.2-.5-1.2-1.2v-1.4c0-.6.5-1.2 1.2-1.2h5.2c.6 0 1.2.5 1.2 1.2v1.4"/><path d="m64 50.3c0 3-2.4 5.4-5.4 5.4h-53.2c-3 0-5.4-2.4-5.4-5.4v-1.6h64v1.6"/></g><path d="M0,20.1c0-3,2.4-5.4,5.4-5.4h53.1c3,0,5.4,2.4,5.4,5.4v1.6H0V20.1z" fill="#51575b"/><path fill="#3e4347" d="m0 21.5h64v28.3h-64z"/><path d="m54.7 18h-32.1l3.2-10.8c.3-.6 1.6-1.6 2.4-1.8 4.9-1.4 15.9-1.4 20.8 0 .8.2 2.1 1.2 2.4 1.8l3.3 10.8" fill="#51575b"/><path d="m53.1 29.6h-29l2.9-14.6c.2-.8 1.5-2.1 2.2-2.4 4.4-1.8 14.4-1.8 18.8 0 .7.3 1.9 1.6 2.2 2.4l2.9 14.6" fill="#3e4347"/><path d="m60.6 37.6c0 12.2-9.9 22-22 22-12.1 0-22-9.8-22-22 0-12.1 9.9-22 22-22 12.2 0 22 9.9 22 22" fill="#788287"/><path d="m58.2 37.6c0 10.8-8.8 19.6-19.6 19.6-10.8 0-19.6-8.8-19.6-19.6 0-10.8 8.8-19.6 19.6-19.6 10.8.1 19.6 8.8 19.6 19.6" fill="#212528"/><circle cx="38.6" cy="37.6" r="15.9" fill="#3e4347"/><circle cx="38.6" cy="37.6" r="8.6" fill="#212528"/><g fill="#f5f5f5"><path d="m50.3 30.9c0 2.7-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 2.2-4.9 4.9-4.9 2.7-.1 4.9 2.2 4.9 4.9" opacity=".5"/><circle cx="35.6" cy="40.7" r="3.1" opacity=".5"/><circle cx="30.1" cy="46.2" r="1.9" opacity=".5"/></g><path d="m15 45.3c0 1.2-1 2.2-2.2 2.2h-9.2c-1.2 0-2.2-1-2.2-2.2v-19.4c0-1.2 1-2.2 2.2-2.2h9.2c1.2 0 2.2 1 2.2 2.2v19.4" fill="#636c72"/><circle cx="10.1" cy="18.6" r="3.2" fill="#212528"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f8.svg
index 1c72be7..7814bdd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212528"><path d="m22.922 26.04c0 1.047-.849 1.896-1.896 1.896h-8.412c-1.046 0-1.896-.849-1.896-1.896v-2.364c0-1.046.85-1.895 1.896-1.895h8.412c1.047 0 1.896.849 1.896 1.895v2.364"/><path d="m56.975 25.881c0 .559-.453 1.012-1.012 1.012h-4.494c-.559 0-1.012-.453-1.012-1.012v-1.263c0-.559.453-1.012 1.012-1.012h4.494c.559 0 1.012.453 1.012 1.012v1.263"/><path d="m59.873 55.887c0 2.617-2.121 4.738-4.738 4.738h-46.27c-2.616 0-4.738-2.121-4.738-4.738v-1.421h55.747v1.421z"/></g><path fill="#51575b" d="m4.126 29.591c0-2.617 2.122-4.738 4.738-4.738h46.27c2.617 0 4.738 2.122 4.738 4.738v1.421h-55.746v-1.421"/><path fill="#3e4347" d="m4.126 30.775h55.747v24.636h-55.747z"/><path fill="#51575b" d="m51.736 28.796h-27.943l2.803-15.286c.236-.854 1.398-2.237 2.094-2.548 4.26-1.905 13.89-1.905 18.15 0 .695.311 1.857 1.694 2.094 2.548l2.802 15.286"/><path fill="#3e4347" d="m50.38 37.838h-25.23l2.53-12.745c.214-.711 1.263-1.864 1.892-2.124 3.845-1.588 12.541-1.588 16.384 0 .629.26 1.678 1.413 1.893 2.124l2.529 12.745"/><path fill="#788287" d="m56.928 44.838c0 10.588-8.582 19.16-19.16 19.16-10.584 0-19.17-8.574-19.17-19.16 0-10.582 8.581-19.16 19.17-19.16 10.578 0 19.16 8.582 19.16 19.16"/><path fill="#212528" d="m54.799 44.835c0 9.411-7.629 17.03-17.03 17.03-9.408 0-17.04-7.623-17.04-17.03 0-9.406 7.629-17.03 17.04-17.03 9.402 0 17.03 7.628 17.03 17.03"/><circle fill="#3e4347" cx="37.767" cy="44.835" r="13.84"/><circle fill="#212528" cx="37.767" cy="44.836" r="7.452"/><g fill="#f5f5f5"><path opacity=".5" d="m47.947 38.93c0 2.366-1.92 4.287-4.287 4.287-2.369 0-4.287-1.921-4.287-4.287 0-2.364 1.918-4.287 4.287-4.287 2.367 0 4.287 1.922 4.287 4.287"/><circle opacity=".5" cx="35.1" cy="47.5" r="2.662"/><circle opacity=".5" cx="30.32" cy="52.29" r="1.648"/></g><path fill="#636c72" d="m17.192 51.54c0 1.047-.848 1.895-1.895 1.895h-8.05c-1.046 0-1.895-.848-1.895-1.895v-16.898c0-1.047.849-1.896 1.895-1.896h8.05c1.047 0 1.895.849 1.895 1.896v16.898z"/><circle fill="#212528" cx="12.931" cy="28.25" r="2.764"/><path fill="#fff" d="m46.04 17.423c0 .962-.779 1.742-1.742 1.742h-13.06c-.963 0-1.742-.78-1.742-1.742v-1.792c0-.962.779-1.742 1.742-1.742h13.06c.963 0 1.742.78 1.742 1.742v1.792"/><g fill="#ffce31"><path d="m42.523 15.16l11.997-7.894-2.2-2.831z"/><path d="m56.53 18.869v-3.414l-12.33 2.372z"/><path d="m45.13 0h-4.132l-2.199 14.453z"/><path d="M33.631 15.16 23.37 4.435 21.07 7.266z"/><path d="m33.883 0h-4.186l6.869 14.453z"/><path d="m18.71 15.455v3.414l12.855-1.042z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#212528"><path d="m22.9 26c0 1-.8 1.9-1.9 1.9h-8.4c-1 0-1.9-.8-1.9-1.9v-2.4c0-1 .9-1.9 1.9-1.9h8.4c1 0 1.9.8 1.9 1.9v2.4"/><path d="m57 25.9c0 .6-.5 1-1 1h-4.5c-.6 0-1-.5-1-1v-1.3c0-.6.5-1 1-1h4.5c.6 0 1 .5 1 1v1.3"/><path d="m59.9 55.9c0 2.6-2.1 4.7-4.7 4.7h-46.3c-2.6 0-4.7-2.1-4.7-4.7v-1.4h55.7v1.4"/></g><path d="M4.1,29.6c0-2.6,2.1-4.7,4.7-4.7h46.3c2.6,0,4.7,2.1,4.7,4.7V31H4.1V29.6z" fill="#51575b"/><path fill="#3e4347" d="m4.1 30.8h55.7v24.6h-55.7z"/><path d="m51.7 28.8h-27.9l2.8-15.3c.2-.9 1.4-2.2 2.1-2.5 4.3-1.9 13.9-1.9 18.1 0 .7.3 1.9 1.7 2.1 2.5l2.8 15.3" fill="#51575b"/><path d="m50.4 37.8h-25.2l2.5-12.7c.2-.7 1.3-1.9 1.9-2.1 3.8-1.6 12.5-1.6 16.4 0 .6.3 1.7 1.4 1.9 2.1l2.5 12.7" fill="#3e4347"/><path d="m56.9 44.8c0 10.6-8.6 19.2-19.2 19.2-10.6 0-19.2-8.6-19.2-19.2 0-10.6 8.6-19.2 19.2-19.2 10.6.1 19.2 8.7 19.2 19.2" fill="#788287"/><path d="m54.8 44.8c0 9.4-7.6 17-17 17-9.4 0-17-7.6-17-17 0-9.4 7.6-17 17-17 9.4 0 17 7.6 17 17" fill="#212528"/><circle cx="37.8" cy="44.8" r="13.8" fill="#3e4347"/><circle cx="37.8" cy="44.8" r="7.5" fill="#212528"/><g fill="#f5f5f5"><path d="m47.9 38.9c0 2.4-1.9 4.3-4.3 4.3-2.4 0-4.3-1.9-4.3-4.3 0-2.4 1.9-4.3 4.3-4.3 2.4 0 4.3 2 4.3 4.3" opacity=".5"/><circle cx="35.1" cy="47.5" r="2.7" opacity=".5"/><circle cx="30.3" cy="52.3" r="1.6" opacity=".5"/></g><path d="m17.2 51.5c0 1-.8 1.9-1.9 1.9h-8.1c-1 0-1.9-.8-1.9-1.9v-16.9c0-1 .8-1.9 1.9-1.9h8.1c1 0 1.9.8 1.9 1.9v16.9" fill="#636c72"/><circle cx="12.9" cy="28.2" r="2.8" fill="#212528"/><path d="m46 17.4c0 1-.8 1.7-1.7 1.7h-13.1c-1 0-1.7-.8-1.7-1.7v-1.8c0-1 .8-1.7 1.7-1.7h13.1c1 0 1.7.8 1.7 1.7v1.8" fill="#fff"/><g fill="#ffce31"><path d="m42.5 15.2l12-7.9-2.2-2.9z"/><path d="m56.5 18.9v-3.4l-12.3 2.3z"/><path d="m45.1 0h-4.1l-2.2 14.5z"/><path d="M33.6 15.2 23.4 4.4 21.1 7.3z"/><path d="m33.9 0h-4.2l6.9 14.5z"/><path d="m18.7 15.5v3.4l12.9-1.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4f9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4f9.svg
index ee49947..8c71d01 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#7a8084" d="m31.08 54.02l-15.368-43.768c0 0 36.69-8.865 36.69 9.988v28.13c0 .803-1 1.814-1.814 1.814l-19.508 3.838"/><path fill="#94989b" d="m6.579 54.02c-.814 0-1.814-1.012-1.814-1.814v-28.13c0-18.854 28.13-18.854 28.13 0v28.13c0 .803-1 1.814-1.814 1.814h-24.5"/><path fill="#ed4c5c" d="m26.15 44.37c-1 0-1.814.81-1.814 1.813 0 1 .811 1.816 1.814 1.816.999 0 1.814-.816 1.814-1.816 0-1-.815-1.813-1.814-1.813"/><path fill="#7a8084" d="m11.09 55.833c-.486 0-.882-.396-.882-.885v-1.859c0-.488.396-.886.882-.886h15.476c.486 0 .883.397.883.886v1.859c0 .488-.396.885-.883.885h-15.476"/><path fill="#3e4347" d="m31.421 24.871c0 7.808-5.934 15.327-16.616 15.327-7.805 0-8.958-17.771-8.958-25.579 0 0 4.359-3.88 11.444-3.88 7.802 0 14.13 6.328 14.13 14.13"/><circle fill="#788287" cx="14.13" cy="26.07" r="14.13"/><path fill="#212528" d="m26.693 26.06c0 6.941-5.625 12.562-12.56 12.562-6.938 0-12.563-5.621-12.563-12.562 0-6.936 5.625-12.561 12.563-12.561 6.935 0 12.56 5.625 12.56 12.561"/><circle fill="#3e4347" cx="14.13" cy="26.06" r="10.206"/><circle fill="#212528" cx="14.13" cy="26.07" r="5.496"/><g fill="#f5f5f5"><path opacity=".5" d="m21.64 21.709c0 1.745-1.415 3.162-3.161 3.162-1.747 0-3.162-1.417-3.162-3.162 0-1.743 1.415-3.161 3.162-3.161 1.746 0 3.161 1.418 3.161 3.161"/><circle opacity=".5" cx="12.169" cy="28.03" r="1.963"/><circle opacity=".5" cx="8.637" cy="31.562" r="1.215"/></g><g fill="#3e4347"><path d="m51.23 20.351c0 1.458-.803 2.861-1.921 3.171-1.29.358-2.493-.842-2.493-2.734 0-1.892 1.203-3.33 2.493-3.228 1.119.089 1.921 1.334 1.921 2.791"/><path d="m45.3 23.06c0 .613-.729 1.281-1.701 1.508-1.063.248-1.999-.117-1.999-.837 0-.72.937-1.425 1.999-1.562.971-.125 1.701.278 1.701.891"/><path d="m45.17 19.919c0 .613-.729 1.281-1.701 1.508-1.063.249-2-.116-2-.836s.937-1.425 2-1.562c.972-.125 1.701.278 1.701.89"/><path d="m36.763 28.04l14.727-4.124v9.769z"/></g><g fill="#94989b"><path d="m37.671 52.54c-.492 0-.893-.383-.893-.855v-23.695c0-.473.4-.856.893-.856h21.17c6.88 0 6.88 25.407 0 25.407h-21.17z"/><path d="m34.06 31.667c0-.454.365-.822.814-.822h1.092c.451 0 .816.368.816.822v16.417c0 .455-.365.823-.816.823h-1.092c-.449 0-.814-.368-.814-.823v-16.417"/></g><path fill="#42ade2" d="m38.593 28.946h20.87v21.777h-20.87z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M31.1,54L15.7,10.2c0,0,36.7-8.9,36.7,10v28.1c0,0.8-1,1.8-1.8,1.8L31.1,54z" fill="#7a8084"/><path d="m6.6 54c-.8 0-1.8-1-1.8-1.8v-28.1c0-18.9 28.1-18.9 28.1 0v28.1c0 .8-1 1.8-1.8 1.8h-24.5" fill="#94989b"/><path d="m26.2 44.4c-1 0-1.8.8-1.8 1.8 0 1 .8 1.8 1.8 1.8 1 0 1.8-.8 1.8-1.8 0-1-.8-1.8-1.8-1.8" fill="#ed4c5c"/><path d="m11.1 55.8c-.5 0-.9-.4-.9-.9v-1.9c0-.5.4-.9.9-.9h15.5c.5 0 .9.4.9.9v1.9c0 .5-.4.9-.9.9h-15.5" fill="#7a8084"/><path d="m31.4 24.9c0 7.8-5.9 15.3-16.6 15.3-7.8 0-9-17.8-9-25.6 0 0 4.4-3.9 11.4-3.9 7.9 0 14.2 6.4 14.2 14.2" fill="#3e4347"/><circle cx="14.1" cy="26.1" r="14.1" fill="#788287"/><path d="m26.7 26.1c0 6.9-5.6 12.6-12.6 12.6-6.9-.1-12.5-5.7-12.5-12.6 0-6.9 5.6-12.6 12.6-12.6 6.9 0 12.5 5.6 12.5 12.6" fill="#212528"/><circle cx="14.1" cy="26.1" r="10.2" fill="#3e4347"/><circle cx="14.1" cy="26.1" r="5.5" fill="#212528"/><g fill="#f5f5f5"><path d="m21.6 21.7c0 1.7-1.4 3.2-3.2 3.2-1.7 0-3.2-1.4-3.2-3.2 0-1.7 1.4-3.2 3.2-3.2 1.8 0 3.2 1.5 3.2 3.2" opacity=".5"/><circle cx="12.2" cy="28" r="2" opacity=".5"/><circle cx="8.6" cy="31.6" r="1.2" opacity=".5"/></g><g fill="#3e4347"><path d="m51.2 20.4c0 1.5-.8 2.9-1.9 3.2-1.3.4-2.5-.8-2.5-2.7s1.2-3.3 2.5-3.2c1.1-.1 1.9 1.2 1.9 2.7"/><path d="m45.3 23.1c0 .6-.7 1.3-1.7 1.5-1.1.2-2-.1-2-.8s.9-1.4 2-1.6c1-.2 1.7.2 1.7.9"/><path d="m45.2 19.9c0 .6-.7 1.3-1.7 1.5-1.1.2-2-.1-2-.8s.9-1.4 2-1.6c.9-.1 1.7.3 1.7.9"/><path d="m36.8 28l14.7-4.1v9.8z"/></g><g fill="#94989b"><path d="m37.7 52.5c-.5 0-.9-.4-.9-.9v-23.6c0-.5.4-.9.9-.9h21.2c6.9 0 6.9 25.4 0 25.4h-21.2"/><path d="m34.1 31.7c0-.5.4-.8.8-.8h1.1c.5 0 .8.4.8.8v16.4c0 .5-.4.8-.8.8h-1.1c-.4 0-.8-.4-.8-.8v-16.4"/></g><path fill="#42ade2" d="m38.6 28.9h20.9v21.8h-20.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4fa.svg
index eda47cb..3d446fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="M17,61.999H5.75c0-2.589,2.519-4.688,5.625-4.688S17,59.41,17,61.999z"/><path d="M58.25,61.999H47c0-2.589,2.519-4.688,5.625-4.688S58.25,59.41,58.25,61.999z"/><path transform="matrix(.7074-.7068.7068.7074-.155 22.348)" d="m26.444.111h.937v22.5h-.937z"/><circle cx="18.957" cy="3.406" r="1.406"/><path transform="matrix(-.7071-.7071.7071-.7071 55.28 45.62)" d="m36.619.111h.937v22.5h-.937z"/><circle cx="45.04" cy="3.406" r="1.406"/><ellipse cx="32" cy="15.13" rx="7.969" ry="4.688"/></g><path fill="#c28fef" d="m59.1 57.14c-5.166 6.564-47.45 6.387-53.674 0-4.573-4.693-4.572-32.47 0-37.16 6.221-6.386 48.51-6.564 53.674 0 3.86 4.904 3.863 32.25 0 37.16"/><g fill="#3e4347"><path d="m49.52 52.683c-3.876 4.99-35.589 4.856-40.26 0-3.431-3.566-3.43-24.675 0-28.24 4.666-4.853 36.38-4.989 40.26 0 2.895 3.727 2.897 24.514 0 28.24"/><circle cx="56.38" cy="29.19" r="2.813"/><circle cx="56.38" cy="37.624" r="2.813"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="M17,62H5.8c0-2.6,2.5-4.7,5.6-4.7S17,59.4,17,62z"/><path d="m58.2 62h-11.2c0-2.6 2.5-4.7 5.6-4.7s5.6 2.1 5.6 4.7"/><path transform="matrix(.7074-.7068.7068.7074-.1569 22.3467)" d="m26.4.1h.9v22.5h-.9z"/><circle cx="19" cy="3.4" r="1.4"/><path transform="matrix(.7071-.7071.7071.7071 2.8286 29.5528)" d="m25.8 10.9h22.5v.9h-22.5z"/><circle cx="45" cy="3.4" r="1.4"/><ellipse cx="32" cy="15.1" rx="8" ry="4.7"/></g><path d="m59.1 57.1c-5.2 6.6-47.5 6.4-53.7 0-4.6-4.7-4.6-32.5 0-37.2 6.2-6.4 48.5-6.6 53.7 0 3.9 5 3.9 32.3 0 37.2" fill="#c28fef"/><g fill="#3e4347"><path d="m49.5 52.7c-3.9 5-35.6 4.9-40.3 0-3.4-3.6-3.4-24.7 0-28.2 4.7-4.9 36.4-5 40.3 0 2.9 3.7 2.9 24.5 0 28.2"/><circle cx="56.4" cy="29.2" r="2.8"/><circle cx="56.4" cy="37.6" r="2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4fb.svg
index 419b1ce..4a7bff1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m12.521 17.4c2.029-.404 4.059-.808 6.088-1.212 3.947-.786 7.894-1.571 11.839-2.356 4.115-.819 8.227-1.637 12.342-2.456 3.464-.691 6.931-1.381 10.397-2.071 2-.399 4.01-.798 6.01-1.197.21-.042.421-.084.631-.126.342-.067.533-.469.446-.787-.097-.355-.445-.515-.787-.446-1.171.232-2.339.464-3.508.698-2.967.591-5.932 1.181-8.896 1.771-3.945.785-7.894 1.571-11.838 2.357-4.113.819-8.229 1.638-12.34 2.458-3.467.689-6.934 1.379-10.398 2.069-2 .399-4.01.797-6.01 1.197-.173.033-.344.068-.517.102h6.543z"/><path fill="#d3976e" d="m63.999 53.27c0 2.121-1.879 4-4 4h-55.999c-2.121 0-4-1.879-4-4v-32c0-2.121 1.879-4 4-4h55.999c2.121 0 4 1.879 4 4v32"/><g fill="#594640"><circle cx="16.896" cy="36.602" r="1.599"/><circle cx="20.516" cy="32.981" r="1.601"/><circle cx="24.14" cy="29.36" r="1.6"/><circle cx="13.276" cy="40.22" r="1.6"/><circle cx="13.276" cy="32.981" r="1.601"/><circle cx="13.276" cy="25.74" r="1.6"/><circle cx="16.896" cy="29.36" r="1.6"/><circle cx="9.656" cy="36.602" r="1.6"/><circle cx="20.516" cy="40.22" r="1.6"/><circle cx="24.14" cy="43.843" r="1.6"/><circle cx="24.14" cy="36.602" r="1.6"/><circle cx="20.516" cy="25.74" r="1.6"/><circle cx="27.758" cy="40.22" r="1.599"/><circle cx="16.896" cy="43.843" r="1.6"/><circle cx="9.656" cy="43.843" r="1.6"/><circle cx="6.04" cy="40.22" r="1.599"/><circle cx="13.276" cy="47.46" r="1.6"/><circle cx="9.656" cy="29.36" r="1.6"/><circle cx="27.758" cy="32.981" r="1.6"/><circle cx="6.04" cy="32.981" r="1.6"/><circle cx="20.516" cy="47.46" r="1.6"/></g><path fill="#fff" d="m59.657 25.74c0 1.768-1.431 3.2-3.2 3.2h-19.2c-1.768 0-3.199-1.433-3.199-3.2 0-1.768 1.432-3.199 3.199-3.199h19.2c1.77 0 3.2 1.432 3.2 3.199"/><circle fill="#594640" cx="39.849" cy="39.04" r="4.8"/><path fill="#ed4c5c" d="m41.876 28.94l-.436-4.379-.44 4.379z"/><g fill="#594640"><circle cx="53.866" cy="38.902" r="4.8"/><path d="m59.657 50.791c0 .91-.737 1.65-1.649 1.65h-4.807c-.91 0-1.65-.74-1.65-1.65 0-.912.74-1.65 1.65-1.65h4.807c.912 0 1.649.738 1.649 1.65"/></g><g fill="#d3976e"><path d="m35.05 42.574v1.27h1.672l3.987-3.989-1.469-1.475z"/><path d="m49.06 42.574v1.27h1.678l3.986-3.989-1.464-1.475z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.5 17.4c2-.4 4.1-.8 6.1-1.2 3.9-.8 7.9-1.6 11.8-2.4 4.1-.8 8.2-1.6 12.3-2.5 3.5-.7 6.9-1.4 10.4-2.1 2-.4 4-.8 6-1.2.2 0 .4-.1.6-.1.3-.1.5-.5.4-.8-.1-.4-.4-.5-.8-.4-1 .3-2.2.5-3.3.7-3 .6-6 1.2-8.9 1.8-3.9.8-7.9 1.6-11.8 2.4-4.1.8-8.2 1.6-12.3 2.5-3.5.7-6.9 1.4-10.4 2.1-2 .4-4 .8-6 1.2-.2 0-.3.1-.5.1l6.4-.1" fill="#d0d0d0"/><path d="m64 53.3c0 2.1-1.9 4-4 4h-56c-2.1 0-4-1.9-4-4v-32c0-2.1 1.9-4 4-4h56c2.1 0 4 1.9 4 4v32" fill="#d3976e"/><g fill="#594640"><circle cx="16.9" cy="36.6" r="1.6"/><circle cx="20.5" cy="33" r="1.6"/><circle cx="24.1" cy="29.4" r="1.6"/><circle cx="13.3" cy="40.2" r="1.6"/><circle cx="13.3" cy="33" r="1.6"/><circle cx="13.3" cy="25.7" r="1.6"/><circle cx="16.9" cy="29.4" r="1.6"/><circle cx="9.7" cy="36.6" r="1.6"/><circle cx="20.5" cy="40.2" r="1.6"/><circle cx="24.1" cy="43.8" r="1.6"/><circle cx="24.1" cy="36.6" r="1.6"/><circle cx="20.5" cy="25.7" r="1.6"/><circle cx="27.8" cy="40.2" r="1.6"/><circle cx="16.9" cy="43.8" r="1.6"/><circle cx="9.7" cy="43.8" r="1.6"/><circle cx="6" cy="40.2" r="1.6"/><circle cx="13.3" cy="47.5" r="1.6"/><circle cx="9.7" cy="29.4" r="1.6"/><circle cx="27.8" cy="33" r="1.6"/><circle cx="6" cy="33" r="1.6"/><circle cx="20.5" cy="47.5" r="1.6"/></g><path d="m59.7 25.7c0 1.8-1.4 3.2-3.2 3.2h-19.2c-1.8 0-3.2-1.4-3.2-3.2 0-1.8 1.4-3.2 3.2-3.2h19.2c1.7 0 3.2 1.5 3.2 3.2" fill="#fff"/><circle cx="39.8" cy="39" r="4.8" fill="#594640"/><path fill="#ed4c5c" d="m41.9 28.9l-.5-4.3-.4 4.3z"/><g fill="#594640"><circle cx="53.9" cy="38.9" r="4.8"/><path d="m59.7 50.8c0 .9-.7 1.7-1.6 1.7h-4.8c-.9 0-1.7-.7-1.7-1.7 0-.9.7-1.7 1.7-1.7h4.7c.9 0 1.7.8 1.7 1.7"/></g><g fill="#d3976e"><path d="m35 42.6v1.2h1.7l4-3.9-1.5-1.5z"/><path d="m49.1 42.6v1.2h1.6l4-3.9-1.4-1.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4fc.svg
index 6295c13..6b1e3d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m2 13.999v9c0 .55.45 1 1 1h58c.55 0 1-.45 1-1v-9h-60"/><path fill="#62727a" d="m60 23.999v-6h-56v6h-2v24.01c0 1.094.9 1.99 2 1.99h56c1.1 0 2-.896 2-1.99v-24.01h-2"/><path fill="#b2c1c0" d="m53 23.999h-42c-2.21 0-4 4.03-4 9 0 4.971 1.79 9 4 9h42c2.21 0 4-4.03 4-9 0-4.971-1.79-9-4-9"/><path fill="#e8e8e8" d="m52.959 25.999h-41.959c-.521.177-2 2.605-2 7 0 4.395 1.479 6.819 2.041 7h41.932c.572-.217 2.027-2.643 2.027-7 0-4.395-1.479-6.819-2.041-7"/><g fill="#3e4347"><circle cx="42" cy="32.999" r="7"/><path d="m30.485 39.999c1.571-1.902 2.515-4.341 2.515-7 0-2.659-.943-5.098-2.515-7h-16.971c-1.571 1.902-2.515 4.341-2.515 7 0 2.66.943 5.098 2.515 7h16.971"/></g><circle fill="#fff" cx="42" cy="32.999" r="5"/><g fill="#b2c1c0"><path d="m44.656 36.601l-.499-.865c.682-.544 1.161-1.331 1.292-2.236h1c-.142 1.272-.82 2.373-1.793 3.101"/><path d="m44.656 29.397c.973.728 1.65 1.828 1.793 3.102h-1c-.131-.906-.61-1.692-1.292-2.236l.499-.866"/></g><circle fill="#fff" cx="22" cy="32.999" r="5"/><g fill="#b2c1c0"><path d="m19.343 36.601l.499-.865c-.682-.544-1.161-1.331-1.292-2.236h-1c.143 1.272.821 2.373 1.793 3.101"/><path d="m19.343 29.397c-.973.728-1.65 1.828-1.793 3.102h1c.131-.906.61-1.692 1.292-2.236l-.499-.866"/><path d="m22 23.999h20v18h-20z"/></g><path fill="#42ade2" d="m38 25.999h-12c-1.1 0-2 .9-2 2v2h16v-2c0-1.1-.9-2-2-2"/><path fill="#fff" d="m24 29.999v8c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-16"/><g fill="#b2c1c0"><path d="m26 31.999h12v2h-12z"/><path d="m26 35.999h12v2h-12z"/></g><g fill="#62727a"><path d="m22 30.999c-1.104 0-2 .896-2 2 0 1.105.896 2 2 2v-4"/><path d="m42 30.999c1.104 0 2 .896 2 2 0 1.105-.896 2-2 2v-4"/></g><g fill="#b2c1c0"><path d="m22 28.499c-.643 0-1.245.146-1.796.39l.499.864c.401-.161.837-.254 1.297-.254v-1"/><path d="m22 36.499c-.46 0-.896-.093-1.297-.254l-.499.863c.551.244 1.153.391 1.796.391v-1"/><path d="m42 28.499v1c.46 0 .896.093 1.297.254l.499-.864c-.551-.244-1.153-.39-1.796-.39"/><path d="m43.3 36.24c-.401.161-.837.254-1.297.254v1c.643 0 1.245-.146 1.796-.391l-.499-.863"/></g><path fill="#3e4347" d="m49.984 25.999l-1.964 7.879.69 1.121 2.31-9z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 14v9c0 .5.5 1 1 1h58c.5 0 1-.5 1-1v-9c0 0-60 0-60 0" fill="#3e4347"/><path d="m60 24v-6h-56v6h-2v24c0 1.1.9 2 2 2h56c1.1 0 2-.9 2-2v-24c0 0-2 0-2 0" fill="#62727a"/><path d="m53 24h-42c-2.2 0-4 4-4 9s1.8 9 4 9h42c2.2 0 4-4 4-9s-1.8-9-4-9" fill="#b2c1c0"/><path d="m53 26h-42c-.5.2-2 2.6-2 7s1.5 6.8 2 7h42c.6-.2 2-2.6 2-7 0-4.4-1.5-6.8-2-7" fill="#e8e8e8"/><g fill="#3e4347"><circle cx="42" cy="33" r="7"/><path d="m30.5 40c1.6-1.9 2.5-4.3 2.5-7s-.9-5.1-2.5-7h-17c-1.6 1.9-2.5 4.3-2.5 7 0 2.7.9 5.1 2.5 7h17"/></g><circle cx="42" cy="33" r="5" fill="#fff"/><g fill="#b2c1c0"><path d="m44.7 36.6l-.5-.9c.7-.5 1.2-1.3 1.3-2.2h1c-.2 1.3-.9 2.4-1.8 3.1"/><path d="m44.7 29.4c1 .7 1.7 1.8 1.8 3.1h-1c-.1-.9-.6-1.7-1.3-2.2l.5-.9"/></g><circle cx="22" cy="33" r="5" fill="#fff"/><g fill="#b2c1c0"><path d="m19.3 36.6l.5-.9c-.7-.5-1.2-1.3-1.3-2.2h-1c.2 1.3.9 2.4 1.8 3.1"/><path d="m19.3 29.4c-1 .7-1.6 1.8-1.8 3.1h1c.1-.9.6-1.7 1.3-2.2l-.5-.9"/><path d="m22 24h20v18h-20z"/></g><path d="m38 26h-12c-1.1 0-2 .9-2 2v2h16v-2c0-1.1-.9-2-2-2" fill="#42ade2"/><path d="m24 30v8c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-16" fill="#fff"/><g fill="#b2c1c0"><path d="m26 32h12v2h-12z"/><path d="m26 36h12v2h-12z"/></g><g fill="#62727a"><path d="m22 31c-1.1 0-2 .9-2 2 0 1.1.9 2 2 2v-4"/><path d="m42 31c1.1 0 2 .9 2 2 0 1.1-.9 2-2 2v-4"/></g><g fill="#b2c1c0"><path d="m22 28.5c-.6 0-1.2.1-1.8.4l.5.9c.4-.2.8-.3 1.3-.3 0 0 0-1 0-1"/><path d="m22 36.5c-.5 0-.9-.1-1.3-.3l-.5.9c.6.2 1.2.4 1.8.4 0 0 0-1 0-1"/><path d="m42 28.5v1c.5 0 .9.1 1.3.3l.5-.9c-.6-.3-1.2-.4-1.8-.4"/><path d="m43.3 36.2c-.4.2-.8.3-1.3.3v1c.6 0 1.2-.1 1.8-.4l-.5-.9"/></g><path fill="#3e4347" d="m50 26l-2 7.9.7 1.1 2.3-9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4fd.svg
index 8dbc20e..a440cbf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m27.23 58.55h12.255v5.446h-12.255z"/><g fill="#3e4347"><path d="m49.02 55.83c0 1.42-1.229 2.724-2.724 2.724h-27.23c-1.497 0-2.724-1.304-2.724-2.724v-19.06c0-1.42 1.228-2.724 2.724-2.724h27.23c1.495 0 2.724 1.304 2.724 2.724v19.06"/><circle cx="17.702" cy="17.703" r="17.702"/></g><g fill="#d0d0d0"><circle cx="11.43" cy="8.749" r="4.057"/><circle cx="23.975" cy="8.749" r="4.056"/><circle cx="28.03" cy="20.281" r="4.056"/><circle cx="17.702" cy="28.394" r="4.057"/><circle cx="7.373" cy="20.281" r="4.056"/><circle cx="16.16" cy="15.434" r="1.015"/><circle cx="19.3" cy="15.433" r="1.014"/><circle cx="20.314" cy="18.316" r="1.014"/><circle cx="17.733" cy="20.344" r="1.014"/><circle cx="15.15" cy="18.316" r="1.014"/></g><circle fill="#3e4347" cx="49.02" cy="20.426" r="14.979"/><g fill="#d0d0d0"><circle cx="43.714" cy="12.85" r="3.433"/><circle cx="54.33" cy="12.849" r="3.432"/><circle cx="57.761" cy="22.608" r="3.433"/><circle cx="49.02" cy="29.474" r="3.433"/><circle cx="40.28" cy="22.608" r="3.433"/><circle cx="47.722" cy="18.505" r=".858"/><circle cx="50.38" cy="18.506" r=".858"/><circle cx="51.23" cy="20.946" r=".858"/><circle cx="49.05" cy="22.662" r=".858"/><circle cx="46.864" cy="20.946" r=".858"/></g><g fill="#3e4347"><path d="m6.809 40.852v20.428l10.893-5.45v-9.53z"/><path d="m55.83 35.404v9.533l-6.81-1.362v-6.808z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m27.2 58.6h12.3v5.4h-12.3z"/><g fill="#3e4347"><path d="m49 55.8c0 1.4-1.2 2.7-2.7 2.7h-27.2c-1.5 0-2.7-1.3-2.7-2.7v-19c0-1.4 1.2-2.7 2.7-2.7h27.2c1.5 0 2.7 1.3 2.7 2.7 0 0 0 19 0 19"/><circle cx="17.7" cy="17.7" r="17.7"/></g><g fill="#d0d0d0"><circle cx="11.4" cy="8.7" r="4.1"/><circle cx="24" cy="8.7" r="4.1"/><circle cx="28" cy="20.3" r="4.1"/><circle cx="17.7" cy="28.4" r="4.1"/><circle cx="7.4" cy="20.3" r="4.1"/><circle cx="16.2" cy="15.4" r="1"/><circle cx="19.3" cy="15.4" r="1"/><circle cx="20.3" cy="18.3" r="1"/><circle cx="17.7" cy="20.3" r="1"/><circle cx="15.1" cy="18.3" r="1"/></g><circle cx="49" cy="20.4" r="15" fill="#3e4347"/><g fill="#d0d0d0"><circle cx="43.7" cy="12.9" r="3.4"/><circle cx="54.3" cy="12.8" r="3.4"/><circle cx="57.8" cy="22.6" r="3.4"/><circle cx="49" cy="29.5" r="3.4"/><circle cx="40.3" cy="22.6" r="3.4"/><circle cx="47.7" cy="18.5" r=".9"/><circle cx="50.4" cy="18.5" r=".9"/><circle cx="51.2" cy="20.9" r=".9"/><circle cx="49" cy="22.7" r=".9"/><circle cx="46.9" cy="20.9" r=".9"/></g><g fill="#3e4347"><path d="m6.8 40.9v20.4l10.9-5.5v-9.5z"/><path d="m55.8 35.4v9.5l-6.8-1.3v-6.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f4ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f4ff.svg
index be1b676..1fa2a4a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f4ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f4ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m23.821 41.555c-.471-.945-.069-2.09.897-2.549.964-.463 2.128-.068 2.599.879.469.947.067 2.09-.896 2.549-.967.462-2.131.07-2.6-.879"/><path fill="#c94747" d="m22.07 42.39c-.234-.473-.035-1.045.448-1.275.482-.23 1.063-.033 1.3.439.234.475.034 1.045-.448 1.275-.484.233-1.065.035-1.3-.439"/><path opacity=".5" fill="#3e4347" d="m24.521 41.879c.507.172.214-.607.475-1.354.264-.748.984-1.18.477-1.354-.506-.17-1.132.293-1.394 1.043-.265.749-.066 1.493.442 1.665"/><path fill="#b2c1c0" d="m29.07 39.05c-.471-.949-.068-2.092.896-2.553.966-.461 2.13-.068 2.603.881.469.947.065 2.09-.9 2.551-.965.461-2.13.066-2.599-.879"/><path fill="#c94747" d="m27.317 39.885c-.235-.475-.035-1.043.449-1.275.481-.23 1.063-.037 1.299.441.234.473.034 1.045-.449 1.275s-1.064.031-1.299-.441"/><path opacity=".5" fill="#3e4347" d="m29.765 39.37c.509.172.212-.605.476-1.354.263-.746.983-1.18.476-1.354-.508-.172-1.13.293-1.396 1.041-.262.751-.066 1.495.444 1.667"/><path fill="#b2c1c0" d="m34.31 36.543c-.471-.945-.069-2.09.897-2.549.964-.463 2.128-.07 2.599.879.469.947.067 2.09-.896 2.549-.968.463-2.132.068-2.6-.879"/><path fill="#c94747" d="m32.563 37.38c-.236-.475-.038-1.045.446-1.277.481-.229 1.063-.033 1.3.441.234.475.033 1.045-.447 1.275-.485.233-1.064.036-1.299-.439"/><path opacity=".5" fill="#3e4347" d="m35.01 36.867c.508.172.214-.607.475-1.354.265-.748.983-1.178.479-1.354-.51-.17-1.134.293-1.396 1.043-.265.749-.066 1.493.442 1.665"/><path fill="#b2c1c0" d="m39.604 34.16c-.336-1 .22-2.08 1.24-2.408 1.018-.33 2.118.213 2.454 1.215.335 1-.221 2.08-1.24 2.41-1.023.328-2.12-.217-2.454-1.217"/><path fill="#c94747" d="m37.755 34.752c-.168-.5.111-1.037.621-1.205.511-.164 1.061.109 1.228.611.167.5-.11 1.039-.62 1.203-.511.164-1.061-.105-1.229-.609"/><path opacity=".5" fill="#3e4347" d="m40.25 34.57c.478.236.293-.57.656-1.279.364-.705 1.135-1.039.657-1.275-.479-.238-1.161.141-1.524.846-.364.706-.27 1.472.211 1.708"/><path fill="#b2c1c0" d="m50.564 30.26c-.399-.979.088-2.09 1.084-2.479.998-.391 2.13.086 2.526 1.064.397.98-.087 2.09-1.085 2.48-.997.39-2.126-.087-2.525-1.065"/><path fill="#c94747" d="m48.759 30.965c-.199-.49.044-1.045.542-1.242.501-.193 1.063.043 1.264.535.197.49-.045 1.047-.544 1.24-.5.197-1.065-.043-1.262-.533"/><path opacity=".5" fill="#3e4347" d="m51.24 30.631c.495.209.261-.588.576-1.316.318-.725 1.07-1.105.576-1.314-.492-.205-1.152.213-1.469.939-.318.726-.177 1.484.317 1.691"/><path fill="#b2c1c0" d="m55.59 27.469c-.655-.834-.497-2.033.353-2.676s2.071-.49 2.726.346c.658.834.499 2.035-.353 2.678-.849.64-2.07.486-2.726-.348"/><path fill="#c94747" d="m54.05 28.633c-.327-.416-.248-1.016.178-1.338.426-.32 1.035-.244 1.363.174.327.418.248 1.018-.176 1.338-.428.322-1.037.246-1.365-.174"/><path opacity=".5" fill="#3e4347" d="m56.35 27.646c.533.066.084-.635.187-1.418.103-.785.721-1.352.188-1.42-.533-.068-1.049.512-1.152 1.295-.105.788.244 1.475.777 1.543"/><path fill="#b2c1c0" d="m59.65 23.652c-1.066-.143-1.811-1.102-1.666-2.146.143-1.045 1.121-1.775 2.187-1.635 1.062.141 1.81 1.1 1.665 2.146-.144 1.044-1.124 1.776-2.186 1.635"/><path fill="#c94747" d="m59.38 25.543c-.532-.07-.904-.551-.834-1.072.072-.523.562-.887 1.096-.818.531.07.903.549.832 1.072-.073.525-.562.888-1.094.818"/><path opacity=".5" fill="#3e4347" d="m60.31 23.26c.428-.32-.396-.51-.884-1.141-.486-.627-.456-1.455-.883-1.139-.429.322-.379 1.09.108 1.719.492.629 1.231.883 1.659.561"/><path fill="#b2c1c0" d="m60.53 17.959c-.926.531-2.115.225-2.658-.684-.543-.912-.231-2.078.694-2.611s2.118-.227 2.661.684c.541.908.233 2.076-.697 2.611"/><path fill="#c94747" d="m61.52 19.605c-.462.266-1.058.111-1.329-.342-.272-.455-.117-1.039.346-1.305.465-.268 1.059-.115 1.331.34s.114 1.04-.348 1.307"/><path opacity=".5" fill="#3e4347" d="m60.81 17.248c.137-.51-.629-.162-1.409-.361-.781-.199-1.273-.873-1.412-.361-.134.508.387 1.084 1.166 1.283.781.201 1.521-.051 1.655-.561"/><path fill="#b2c1c0" d="m53.938 8.791c-.511.926-1.692 1.27-2.635.768-.945-.504-1.294-1.662-.783-2.588.514-.926 1.693-1.27 2.637-.768.944.504 1.292 1.662.781 2.588"/><path fill="#c94747" d="m55.646 9.701c-.257.463-.846.635-1.318.383-.472-.25-.646-.828-.391-1.293.257-.461.846-.635 1.318-.381.474.248.647.828.391 1.291"/><path opacity=".5" fill="#3e4347" d="m53.799 8.04c-.152-.504-.625.184-1.397.408-.772.223-1.55-.1-1.399.406.154.506.903.734 1.676.51.772-.226 1.274-.816 1.12-1.324"/><path fill="#b2c1c0" d="m48.936 5.701c.046 1.053-.786 1.943-1.859 1.988-1.072.045-1.979-.773-2.026-1.824-.046-1.055.787-1.945 1.858-1.988 1.073-.047 1.979.771 2.027 1.824"/><path fill="#c94747" d="m50.877 5.619c.021.527-.393.971-.931.994-.535.021-.988-.385-1.01-.912-.022-.529.392-.971.931-.994.535-.021.988.385 1.01.912"/><path opacity=".5" fill="#3e4347" d="m48.42 5.131c-.396-.357-.44.473-.985 1.055s-1.381.697-.984 1.055c.395.357 1.154.174 1.701-.408.545-.587.665-1.345.268-1.702"/><path fill="#b2c1c0" d="m43.907 8.367c.591.881.344 2.064-.553 2.645-.896.578-2.102.338-2.693-.539-.591-.883-.344-2.064.552-2.646.897-.581 2.102-.337 2.694.54"/><path fill="#c94747" d="m45.53 7.316c.295.441.17 1.033-.277 1.324-.448.289-1.051.168-1.346-.273-.297-.438-.173-1.031.275-1.32.448-.291 1.051-.168 1.348.269"/><path opacity=".5" fill="#3e4347" d="m43.17 8.137c-.525-.105-.133.627-.293 1.402-.162.773-.82 1.297-.293 1.402s1.084-.438 1.246-1.211c.162-.775-.133-1.488-.66-1.593"/><path fill="#b2c1c0" d="m39.1 11.586c.893.588 1.13 1.775.53 2.65-.601.873-1.808 1.105-2.699.518-.89-.588-1.127-1.773-.528-2.648.6-.874 1.807-1.106 2.697-.52"/><path fill="#c94747" d="m40.19 10c.443.295.563.887.263 1.324s-.903.555-1.351.258c-.443-.293-.563-.885-.263-1.322.303-.44.904-.555 1.351-.26"/><path opacity=".5" fill="#3e4347" d="m38.34 11.652c-.527.1.126.629.281 1.406.156.773-.246 1.502.279 1.402.528-.102.828-.813.675-1.588-.155-.774-.706-1.321-1.235-1.22"/><path fill="#b2c1c0" d="m32.626 21.11c.913.549 1.201 1.727.639 2.621-.563.898-1.76 1.18-2.676.627-.915-.553-1.199-1.729-.637-2.625.563-.898 1.76-1.177 2.674-.623"/><path fill="#c94747" d="m33.644 19.482c.459.275.601.863.319 1.311-.28.449-.881.588-1.337.316-.457-.279-.602-.865-.319-1.314.282-.451.88-.59 1.337-.313"/><path opacity=".5" fill="#3e4347" d="m31.858 21.2c-.521.123.15.625.338 1.395.189.77-.185 1.514.34 1.393.521-.125.794-.846.604-1.613-.184-.772-.756-1.296-1.282-1.175"/><path fill="#b2c1c0" d="m29.571 25.982c.914.553 1.199 1.729.637 2.627-.563.896-1.76 1.176-2.673.625-.915-.553-1.202-1.727-.64-2.625.564-.898 1.762-1.177 2.676-.627"/><path fill="#c94747" d="m30.589 24.357c.459.275.6.863.318 1.313-.281.451-.879.59-1.336.313-.459-.273-.602-.863-.32-1.311.283-.449.879-.59 1.338-.315"/><path opacity=".5" fill="#3e4347" d="m28.804 26.08c-.521.121.151.623.339 1.391.185.771-.187 1.516.337 1.393s.797-.846.607-1.615c-.188-.769-.762-1.292-1.283-1.169"/><path fill="#b2c1c0" d="m26.515 30.859c.916.553 1.201 1.729.638 2.625-.562.896-1.759 1.178-2.671.627-.919-.553-1.203-1.727-.64-2.625.559-.9 1.761-1.177 2.673-.627"/><path fill="#c94747" d="m27.535 29.23c.456.277.6.863.317 1.311-.283.451-.881.592-1.338.314s-.6-.865-.318-1.313c.283-.446.88-.589 1.339-.312"/><path opacity=".5" fill="#3e4347" d="m25.749 30.955c-.523.123.15.623.337 1.395.188.768-.185 1.512.339 1.389.522-.121.793-.842.607-1.611-.187-.771-.761-1.294-1.283-1.173"/><path fill="#b2c1c0" d="m23.461 35.736c.915.553 1.199 1.729.638 2.625-.563.896-1.762 1.178-2.676.625-.914-.551-1.199-1.729-.637-2.623.562-.9 1.76-1.179 2.675-.627"/><path fill="#c94747" d="m24.481 34.11c.453.275.598.863.315 1.313-.281.449-.879.59-1.336.313-.458-.275-.601-.863-.319-1.313.284-.451.88-.588 1.34-.313"/><path opacity=".5" fill="#3e4347" d="m22.692 35.832c-.523.123.151.621.34 1.393.188.77-.185 1.512.338 1.391.523-.121.793-.844.606-1.613s-.76-1.294-1.284-1.171"/><g fill="#c94747"><path d="m21.423 38.986c.457.277.601.863.32 1.313-.283.449-.879.59-1.34.314-.456-.277-.598-.863-.316-1.313.28-.45.88-.589 1.336-.314"/><path d="m16.99 45.1c.458.275.6.863.319 1.311-.281.451-.881.592-1.336.314-.458-.277-.601-.863-.32-1.314.281-.448.878-.587 1.337-.311"/></g><path fill="#ed4c5c" d="m37.23 18.963c-1.141 1.119-2.985 1.119-4.124 0-1.14-1.119-1.142-2.93 0-4.049 1.138-1.117 2.984-1.117 4.124 0 1.138 1.117 1.138 2.93 0 4.049"/><path opacity=".5" fill="#3e4347" d="m37.35 17.83c0-.793-.979 0-2.188 0s-2.186-.793-2.186.002c0 .787.977 1.428 2.186 1.428 1.211.002 2.187-.639 2.188-1.43"/><path fill="#ed4c5c" d="m47.909 33.496c-1.141 1.119-2.984 1.117-4.125 0-1.138-1.117-1.139-2.93 0-4.047 1.139-1.119 2.984-1.119 4.125 0 1.139 1.117 1.138 2.932 0 4.047"/><path opacity=".5" fill="#3e4347" d="m48.04 32.363c0-.789-.98 0-2.189 0-1.208 0-2.185-.789-2.187 0 0 .793.979 1.432 2.187 1.432 1.21 0 2.187-.639 2.189-1.432"/><path fill="#ed4c5c" d="m59.37 14.289c-1.14 1.121-2.985 1.119-4.124 0-1.14-1.117-1.141-2.928 0-4.047 1.138-1.117 2.985-1.119 4.124 0 1.139 1.117 1.139 2.932 0 4.047"/><path opacity=".5" fill="#3e4347" d="m59.5 13.156c0-.789-.979 0-2.188 0s-2.184-.789-2.186.004c0 .789.977 1.428 2.186 1.428 1.211.002 2.187-.639 2.188-1.432"/><path fill="#ed4c5c" d="m21.354 45.3c-1.14 1.119-2.986 1.119-4.124 0-1.14-1.119-1.141-2.93 0-4.047 1.137-1.119 2.986-1.119 4.124 0 1.138 1.115 1.138 2.93 0 4.047"/><path opacity=".5" fill="#3e4347" d="m21.479 44.16c0-.791-.979 0-2.189 0-1.208 0-2.184-.791-2.185 0 0 .791.978 1.43 2.185 1.43 1.211.002 2.189-.639 2.189-1.43"/><path fill="#c94747" d="m17.318 47.22c-.541-.531-1.616-.236-1.772-.391-.169-.166.223-1.131-.404-1.744-.614-.605-1.687-.455-2.284.373-.211.293-.507.947-.618 1.277-.285.867-.555 3.051-.131 3.467.423.416 2.649.152 3.532-.129.336-.107 1-.4 1.301-.605.843-.588.99-1.645.376-2.248"/><path opacity=".5" fill="#3e4347" d="m17.205 47.973c-.118-.379-.545-.32-1.666.436-1.121.754-2.521 1.24-2.93.414-.407-.83-.674.961.304 1.227.876.235 4.712-.734 4.292-2.077"/><path fill="#c94747" d="m11.931 50.06c.457.277.6.865.319 1.313-.281.449-.879.59-1.338.313-.457-.275-.6-.863-.317-1.313.281-.447.879-.59 1.336-.313"/><path fill="#b2c1c0" d="m11.08 55.938l-1.719-1.686 1.719-1.688c.189-.186.189-.488 0-.676l-.688-.674c-.188-.186-.496-.186-.687 0l-1.719 1.688-1.717-1.688c-.19-.186-.499-.186-.688 0l-.687.674c-.19.188-.19.49 0 .676l1.719 1.688-4.469 4.385c-.189.186-.189.488 0 .674l.687.674c.19.188.499.188.688 0l4.467-4.385 1.719 1.688c.19.186.499.186.687 0l.688-.674c.189-.188.189-.491 0-.676"/><g opacity=".5"><path fill="#3e4347" d="m10.389 56.61c.19-.188.19-.49 0-.676l-1.373-1.347c-.189-.188-.189-.49 0-.676l1.374-1.35c.19-.186.19-.488 0-.676-.188-.186-.496-.186-.687 0l-1.375 1.35c-.188.186-.499.186-.688 0l-1.373-1.35c-.19-.186-.499-.186-.688 0-.19.188-.19.49 0 .676l1.374 1.35c.189.186.189.488 0 .676l-4.125 4.047c-.188.186-.188.488 0 .674.19.188.499.188.688 0l4.123-4.047c.189-.188.5-.188.688 0l1.375 1.35c.191.183.499.183.687-.001"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m58.4 13.5c-1.2 1.2-3.1 1.2-4.3 0-1.2-1.2-1.2-3.1 0-4.3 1.2-1.2 3.1-1.2 4.3 0 1.2 1.2 1.2 3.1 0 4.3"/><path d="m36.2 19.9c-1.2 1.2-3.1 1.2-4.3 0s-1.2-3.1 0-4.3c1.2-1.2 3.1-1.2 4.3 0 1.2 1.2 1.2 3.1 0 4.3"/><path d="m47.5 32.3c-1.2 1.2-3.1 1.2-4.3 0-1.2-1.2-1.2-3.1 0-4.3 1.2-1.2 3.1-1.2 4.3 0 1.2 1.2 1.2 3.1 0 4.3"/><path d="m22.1 43.6c-1.2 1.2-3.1 1.2-4.3 0-1.2-1.2-1.2-3.1 0-4.3 1.2-1.2 3.1-1.2 4.3 0 1.2 1.2 1.2 3.1 0 4.3"/></g><g fill="#b2c1c0"><path d="m46.1 10.1c-1.2 1.2-3.1 1.2-4.3 0s-1.2-3.1 0-4.3c1.2-1.2 3.1-1.2 4.3 0 1.2 1.3 1.2 3.2 0 4.3"/><path d="m59.5 25.7c-1.2 1.2-3.1 1.2-4.3 0s-1.2-3.1 0-4.3c1.2-1.2 3.1-1.2 4.3 0 1.2 1.2 1.2 3.1 0 4.3"/><path d="m28.5 31.4c-1.2 1.2-3.1 1.2-4.3 0s-1.2-3.1 0-4.3c1.2-1.2 3.1-1.2 4.3 0 1.2 1.3 1.2 3.2 0 4.3"/><path d="m34.9 38.3c-1.2 1.2-3.1 1.2-4.3 0-1.2-1.2-1.2-3.1 0-4.3 1.2-1.2 3.1-1.2 4.3 0 1.1 1.2 1.1 3.1 0 4.3"/></g><path d="m13.7 49.4l-2.2-2c0 0-6.3 4-9.4 7.1-.4.4.2 1 .6.6 1.7-1.7 4.3-3.6 6.4-5-2.4 2-5.6 4.7-6.2 5.2-.4.4.2 1 .6.6.4-.4 2.9-2.5 5.2-4.4-2 1.9-4.2 4-4.9 4.6-.4.4.1 1 .5.6.7-.6 2.6-2.3 4.4-4.1-1.8 2-3.6 3.8-4.2 4.2-.5.3 0 1 .5.6.6-.4 2.5-2.4 4.3-4.3-1.7 2.1-3.3 4-4 4.5-.5.3 0 1 .5.6 1-.7 3.9-4.2 5.8-6.6-1.4 2-3.5 4.8-5.5 6.8-.4.4.2 1 .6.6 3.1-3.3 7-9.6 7-9.6" fill="#89664c"/><path d="m19.3 44.2c-.6-.5-1.7-.2-1.9-.4-.2-.2.2-1.2-.4-1.8-.6-.6-1.8-.5-2.4.4-1.4 1.9-.8 4.9-.8 4.9s3.1.6 5.1-.8c.9-.6 1.1-1.7.4-2.3" fill="#c94747"/><g fill="#b2c1c0"><path d="m13.5 50l-2.4-2.4c2.5-2.4 4.9-.1 2.4 2.4"/><path d="m54.4 9c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0s.8 2 0 2.8"/><path d="m60.2 17c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.8.8 2 0 2.8"/><path d="m38.5 15.2c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.8.8 2 0 2.8"/><path d="m51.5 29.8c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0s.8 2.1 0 2.8"/><path d="m32.9 23.4c-.8.8-2.1.8-2.9 0s-.8-2.1 0-2.8 2.1-.8 2.9 0 .8 2 0 2.8"/><path d="m42.1 33.4c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0s.7 2 0 2.8"/><path d="m22.6 38.1c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.8.8 2 0 2.8"/><path d="m26.2 41.8c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.8.8 2 0 2.8"/></g><g fill="#ed4c5c"><path d="m50.4 8.7c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.8.8 2 0 2.8"/><path d="m61.4 20.7c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.8.8 2.1 0 2.8"/><path d="m41.3 12.3c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.7.8 2 0 2.8"/><path d="m55 28.1c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.7.8 2 0 2.8"/><path d="m30.6 26.7c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.7.8 2 0 2.8"/><path d="m38.4 35.1c-.8.8-2.1.8-2.9 0s-.8-2.1 0-2.8 2.1-.8 2.9 0c.8.8.8 2 0 2.8"/><path d="m24.9 34.8c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8s2.1-.8 2.9 0c.8.8.8 2 0 2.8"/><path d="m30 40.3c-.8.8-2.1.8-2.9 0-.8-.8-.8-2.1 0-2.8.8-.8 2.1-.8 2.9 0 .8.7.8 2 0 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f500.svg b/build/js/jsxc/lib/emojione/assets/svg/1f500.svg
index 864a342..81a5389 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f500.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f500.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="31.999" cy="32" r="30"/><g fill="#fff"><path d="m48.999 39.569l-6.379 6.431v-3.929h-5.592c-.004 0-.01 0-.016 0-1.563 0-4.49-.997-5.697-4.739l-1.572-4.449-1.611-4.564c-.336-1.055-.848-1.24-1.035-1.273h-12.1v-5.05h12.174c.004 0 .01 0 .014 0 1.564 0 4.49.997 5.699 4.74l1.572 4.448 1.611 4.564c.334 1.053.846 1.24 1.035 1.273h5.516v-3.888l6.379 6.432"/><path d="m28.372 35l-.24.68c-.336 1.055-.848 1.24-1.035 1.273h-12.1v5.04h12.174c.004 0 .01 0 .014 0 .92 0 2.309-.351 3.545-1.396-.535-.756-.99-1.636-1.32-2.658l-1.04-2.944"/><path d="m35.804 28.999l.266-.752c.334-1.053.846-1.24 1.035-1.273h5.516v3.888l6.379-6.431-6.38-6.431v3.929h-5.592c-.004 0-.01 0-.016 0-.934 0-2.352.361-3.602 1.446.561.774 1.035 1.688 1.377 2.751l1.017 2.873"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m49 39.6l-6.4 6.4v-3.9h-5.6c0 0 0 0 0 0-1.6 0-4.5-1-5.7-4.7l-1.6-4.4-1.6-4.6c-.3-1.1-.8-1.2-1-1.3h-12.1v-5h12.2c0 0 0 0 0 0 1.6 0 4.5 1 5.7 4.7l1.6 4.4 1.6 4.6c.3 1.1.8 1.2 1 1.3h5.5v-3.9l6.4 6.4"/><path d="m28.4 35l-.2.7c-.3 1.1-.8 1.2-1 1.3h-12.2v5h12.2c0 0 0 0 0 0 .9 0 2.3-.3 3.5-1.4-.5-.8-1-1.6-1.3-2.7l-1-2.9"/><path d="m35.8 29l.3-.8c.3-1.1.8-1.2 1-1.3h5.5v3.9l6.4-6.4-6.4-6.4v3.9h-5.6c0 0 0 0 0 0-.9 0-2.4.4-3.6 1.4.6.8 1 1.7 1.4 2.8l1 2.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f501.svg b/build/js/jsxc/lib/emojione/assets/svg/1f501.svg
index b87d873..fccd824 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f501.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f501.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m49.45 29l-5.265 3.065c.009.122.015.246.015.372 0 2.688-2.17 4.878-4.838 4.878h-11.748v-3.832l-11.609 6.758 11.609 6.759v-3.832h11.748c2.843 0 5.515-1.117 7.526-3.143 2.01-2.027 3.116-4.722 3.116-7.588.001-1.188-.188-2.344-.554-3.437"/><path d="m19.802 31.548c0-2.687 2.166-4.873 4.831-4.873h11.771v3.828l11.598-6.751-11.599-6.752v3.828h-11.77c-2.841 0-5.511 1.115-7.518 3.14-2.01 2.025-3.114 4.716-3.114 7.58 0 1.192.191 2.354.563 3.452l5.252-3.059c-.01-.13-.014-.261-.014-.393"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m49.4 29l-5.3 3.1c0 .1 0 .2 0 .4 0 2.7-2.2 4.9-4.8 4.9h-11.7v-3.8l-11.6 6.6 11.6 6.8v-3.8h11.7c2.8 0 5.5-1.1 7.5-3.1 2-2 3.1-4.7 3.1-7.6.1-1.3-.1-2.4-.5-3.5"/><path d="m19.8 31.5c0-2.7 2.2-4.9 4.8-4.9h11.8v3.8l11.6-6.6-11.6-6.8v3.8h-11.8c-2.8 0-5.5 1.1-7.5 3.1-2 2-3.1 4.7-3.1 7.6 0 1.2.2 2.4.6 3.5l5.3-3.1c-.1-.1-.1-.2-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f502.svg b/build/js/jsxc/lib/emojione/assets/svg/1f502.svg
index 4398517..3372590 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f502.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f502.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m47.33 23.735l-11.369-6.735v3.818h-11.539c-2.784 0-5.401 1.113-7.369 3.132-1.969 2.02-3.053 4.706-3.053 7.562 0 1.176.185 2.321.538 3.405.245-.345.517-.671.814-.976.738-.759 1.599-1.353 2.556-1.768.574-.25 1.169-.429 1.779-.533-.002-.042-.002-.086-.002-.129 0-2.682 2.124-4.861 4.736-4.861h11.539v3.82l11.37-6.735"/><path d="m49.46 28.09l-5.153 3.054c.008.121.014.246.014.371 0 2.682-2.125 4.861-4.738 4.861h-12.329c-1.186-2.273-3.522-3.818-6.211-3.818-3.887 0-7.04 3.233-7.04 7.223 0 3.988 3.152 7.222 7.04 7.222 3.058 0 5.658-1.999 6.631-4.795h11.908c2.785 0 5.401-1.112 7.371-3.131 1.967-2.02 3.051-4.707 3.051-7.562 0-1.183-.186-2.336-.544-3.425m-28.417 16.529c-2.604 0-4.717-2.167-4.717-4.839 0-2.674 2.112-4.84 4.717-4.84 2.605 0 4.715 2.166 4.715 4.84 0 2.672-2.109 4.839-4.715 4.839"/><path d="m21.785 42.742h-1.1v-4.271c-.403.388-.876.675-1.422.86v-1.029c.288-.098.6-.279.936-.549.337-.27.568-.584.693-.942h.893v5.931"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m47.3 23.7l-11.3-6.7v3.8h-11.6c-2.8 0-5.4 1.1-7.4 3.1s-3 4.8-3 7.6c0 1.2.2 2.3.5 3.4.2-.3.5-.7.8-1 .7-.8 1.6-1.4 2.6-1.8.6-.2 1.2-.4 1.8-.5 0 0 0-.1 0-.1 0-2.7 2.1-4.9 4.7-4.9h11.6v3.8l11.3-6.7"/><path d="m49.5 28.1l-5.2 3.1c0 .1 0 .2 0 .4 0 2.7-2.1 4.9-4.7 4.9h-12.4c-1.2-2.3-3.5-3.8-6.2-3.8-3.9 0-7 3.2-7 7.2s3.2 7.2 7 7.2c3.1 0 5.7-2 6.6-4.8h11.9c2.8 0 5.4-1.1 7.4-3.1 2-2 3.1-4.7 3.1-7.6 0-1.3-.2-2.4-.5-3.5m-28.5 16.5c-2.6 0-4.7-2.2-4.7-4.8 0-2.7 2.1-4.8 4.7-4.8 2.6 0 4.7 2.2 4.7 4.8.1 2.6-2.1 4.8-4.7 4.8"/><path d="m21.8 42.7h-1.1v-4.3c-.4.4-.9.7-1.4.9v-1c.3-.1.6-.3.9-.5.3-.3.6-.6.7-.9h.9v5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f503.svg b/build/js/jsxc/lib/emojione/assets/svg/1f503.svg
index ee9d9f7..3aa0d63 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f503.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f503.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m40 63.02l-6.809-9.283c-.273.014-.549.021-.828.021-5.978 0-10.841-3.828-10.841-8.535v-20.73h8.517l-15.02-20.489-15.02 20.488h8.514v20.73c0 5.02 2.482 9.73 6.986 13.279 4.506 3.55 10.493 5.503 16.863 5.503 2.637 0 5.208-.334 7.637-.984"/><path d="m31.671 10.235c5.97 0 10.829 3.823 10.829 8.524v20.775h-8.506l15 20.466 15-20.465h-8.506v-20.775c0-5.01-2.479-9.721-6.978-13.264-4.501-3.544-10.483-5.496-16.845-5.496-2.65 0-5.232.341-7.671.993l6.796 9.266c.29-.016.581-.024.875-.024"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m39.5 61.1l-6.4-8.7c-.3 0-.5 0-.8 0-5.6 0-10.2-3.6-10.2-8v-19.4h8l-14-19.2-14.1 19.2h8v19.4c0 4.7 2.3 9.1 6.6 12.4 4.2 3.3 9.8 5.2 15.8 5.2 2.4 0 4.8-.3 7.1-.9"/><path d="m31.7 11.6c5.6 0 10.2 3.6 10.2 8v19.5h-8l14.1 19.2 14-19.2h-8v-19.5c0-4.7-2.3-9.1-6.5-12.4-4.2-3.4-9.8-5.2-15.8-5.2-2.5 0-4.9.3-7.2.9l6.4 8.7c.2 0 .5 0 .8 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f504.svg b/build/js/jsxc/lib/emojione/assets/svg/1f504.svg
index 3d3d8c1..2eefda0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f504.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f504.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m27.325 20.06c1.528-.684 3.188-1.041 4.895-1.041 6.588 0 11.948 5.129 11.948 11.982h7.832c0-10.771-8.874-19.813-19.78-19.813-3.846 0-7.557 1.086-10.764 3.17l-3.456-3.357v13.146h13.532l-4.207-4.087"/><path d="m36.5 42.563c-1.465.662-3.052 1.016-4.691 1.016-6.598 0-11.966-5.346-11.966-12.58h-7.843c0 11.367 8.887 20.848 19.809 20.848 3.708 0 7.249-1.092 10.331-3.088l3.86 4.24v-14.766h-13.442l3.942 4.33"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m27.3 20.1c1.5-.7 3.2-1 4.9-1 6.6 0 11.9 5.1 11.9 12h7.9c0-10.8-8.9-19.8-19.8-19.8-3.8 0-7.6 1.1-10.8 3.2l-3.4-3.5v13.1h13.5l-4.2-4"/><path d="m36.5 42.6c-1.5.7-3.1 1-4.7 1-6.6 0-12-5.3-12-12.6h-7.8c0 11.4 8.9 20.8 19.8 20.8 3.7 0 7.2-1.1 10.3-3.1l3.9 4.3v-14.8h-13.4l3.9 4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f505.svg b/build/js/jsxc/lib/emojione/assets/svg/1f505.svg
index 9ba52e8..206610e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f505.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f505.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m32 46.887c-2.01 0-3.959-.395-5.797-1.172-1.771-.749-3.363-1.822-4.73-3.188-1.365-1.366-2.438-2.958-3.189-4.731-.776-1.836-1.17-3.786-1.17-5.795 0-2.01.394-3.959 1.17-5.795.751-1.773 1.824-3.365 3.189-4.732 1.367-1.366 2.959-2.439 4.73-3.189 1.838-.777 3.788-1.171 5.797-1.171 2.01 0 3.957.394 5.793 1.171 1.774.75 3.366 1.823 4.731 3.189 1.367 1.367 2.44 2.959 3.19 4.732.776 1.836 1.171 3.786 1.171 5.795 0 2.01-.395 3.959-1.171 5.795-.75 1.773-1.823 3.365-3.19 4.731-1.365 1.366-2.957 2.439-4.731 3.188-1.836.777-3.785 1.172-5.793 1.172m0-25.521c-5.863 0-10.633 4.77-10.633 10.634 0 5.863 4.77 10.633 10.633 10.633 5.861 0 10.632-4.77 10.632-10.633 0-5.864-4.771-10.634-10.632-10.634"/><path d="m29.874 51.1h4.254v5.902h-4.254z"/><path d="m29.874 7h4.254v5.902h-4.254z"/><path transform="matrix(.7055.7087-.7087.7055 47.747-19.71)" d="m44.632 45.47h5.917v4.254h-5.917z"/><path transform="matrix(.7035.7107-.7107.7035 16.513-6.803)" d="m13.442 14.261h5.933v4.253h-5.933z"/><path transform="matrix(.7071.7071-.7071.7071 38.463 2.346)" d="m14.272 44.635h4.254v5.932h-4.254z"/><path transform="matrix(.7106.7036-.7036.7106 25.303-28.742)" d="m45.46 13.421h4.253v5.933h-4.253z"/><path d="m51.1 29.873h5.903v4.253h-5.903z"/><path d="m7 29.873h5.902v4.253h-5.902z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eda454"><path d="m29 51.1h6v6.9h-6z"/><path d="m29 6h6v6.9h-6z"/><path d="m51.1 29h6.9v6h-6.9z"/><path d="m6 29h6.9v6h-6.9z"/><path transform="matrix(.7071-.7071.7071.7071-29.1995 25.3958)" d="m12.6 44.9h6.9v6h-6.9z"/><path transform="matrix(.7071-.7071.7071.7071 2.6902 38.6041)" d="m44.5 13.1h6.9v6h-6.9z"/><path transform="matrix(.707-.7072.7072.707-19.8611 47.9524)" d="m44.9 44.5h6v6.9h-6z"/><path transform="matrix(.7071-.7071.7071.7071-6.6501 16.0555)" d="m13.1 12.6h6v6.9h-6z"/><path d="m32 17c-8.3 0-15 6.7-15 15s6.7 15 15 15 15-6.7 15-15-6.7-15-15-15m0 25c-5.5 0-10-4.5-10-10s4.5-10 10-10 10 4.5 10 10-4.5 10-10 10"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f506.svg b/build/js/jsxc/lib/emojione/assets/svg/1f506.svg
index 09d8c75..dc65b9a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f506.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f506.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m32 47.41c-2.079 0-4.098-.408-6-1.212-1.837-.777-3.485-1.889-4.899-3.304-1.415-1.415-2.527-3.063-3.303-4.899-.805-1.901-1.213-3.92-1.213-6s.408-4.1 1.213-6c.775-1.835 1.888-3.484 3.303-4.9 1.414-1.415 3.063-2.525 4.899-3.302 1.902-.804 3.921-1.212 6-1.212 2.081 0 4.101.408 6 1.212 1.835.777 3.483 1.887 4.897 3.302 1.415 1.416 2.527 3.064 3.305 4.9.805 1.901 1.211 3.921 1.211 6s-.406 4.099-1.211 6c-.777 1.836-1.89 3.484-3.305 4.899-1.414 1.415-3.063 2.526-4.897 3.304-1.901.804-3.921 1.212-6 1.212m0-26.427c-6.071 0-11.01 4.939-11.01 11.01 0 6.071 4.939 11.01 11.01 11.01s11.01-4.94 11.01-11.01c0-6.072-4.94-11.01-11.01-11.01"/><path d="m29.798 51.775h4.404v12.225h-4.404z"/><path d="m29.798 0h4.404v12.224h-4.404z"/><path transform="matrix(.7053.7089-.7089.7053 50.5-20.831)" d="m44.18 48.12h12.255v4.405h-12.255z"/><path transform="matrix(.7071.7071-.7071.7071 13.695-5.673)" d="m7.583 11.493h12.223v4.403h-12.223z"/><path transform="matrix(.7068.7074-.7074.7068 39.603 5.063)" d="m11.493 44.19h4.402v12.223h-4.402z"/><path transform="matrix(.7106.7035-.7035.7106 24.16-31.443)" d="m48.1 7.506h4.403v12.287h-4.403z"/><path d="m51.774 29.797h12.226v4.404h-12.226z"/><path d="m0 29.797h12.226v4.404h-12.226z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eda454"><path d="m29 50.5h6v11.5h-6z"/><path d="m29 2h6v11.5h-6z"/><path d="m50.5 29h11.5v6h-11.5z"/><path d="m2 29h11.5v6h-11.5z"/><path transform="matrix(.7071-.7071.7071.7071-30.4169 24.8919)" d="m9.1 46.2h11.5v6h-11.5z"/><path transform="matrix(.7071-.7071.7071.7071 3.9082 39.1093)" d="m43.4 11.8h11.5v6h-11.5z"/><path transform="matrix(.7071-.7071.7071.7071-20.3642 49.1612)" d="m46.2 43.4h6v11.5h-6z"/><path transform="matrix(.7071-.7071.7071.7071-6.1467 14.8384)" d="m11.8 9.1h6v11.5h-6z"/><path d="m32 17c-8.3 0-15 6.7-15 15s6.7 15 15 15 15-6.7 15-15-6.7-15-15-15m0 25c-5.5 0-10-4.5-10-10s4.5-10 10-10 10 4.5 10 10-4.5 10-10 10"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f507.svg b/build/js/jsxc/lib/emojione/assets/svg/1f507.svg
index 42d942e..4d10ceb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f507.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f507.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><path fill="#fff" d="m41.475 28.11v-7.235-7c0-.485-.424-.879-.945-.879-.523 0-.945.394-.945.879v.455l-14.14 9.947h-6.17c-1.247 0-2.259.94-2.259 2.1v2.082 7.07 2.081c0 1.16 1.012 2.101 2.259 2.101h6.17l14.15 9.947v.455c0 .485.422.879.945.879.521 0 .945-.394.945-.879v-7-7.235c2.309 0 4.18-1.739 4.18-3.885-.001-2.147-1.872-3.887-4.18-3.887"/><path transform="matrix(-.7071-.7071.7071-.7071 31.999 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v6h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><path d="m41.5 28.1v-7.2-7c0-.5-.4-.9-.9-.9s-.9.4-.9.9v.5l-14.1 9.9h-6.2c-1.2 0-2.3.9-2.3 2.1v2.1 7.1 2.1c0 1.2 1 2.1 2.3 2.1h6.2l14.1 9.9v.5c0 .5.4.9.9.9s.9-.4.9-.9v-7-7.2c2.3 0 4.2-1.7 4.2-3.9 0-2.2-1.9-4-4.2-4" fill="#fff"/><path transform="matrix(.7071-.7071.7071.7071-13.2556 32.0003)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f508.svg b/build/js/jsxc/lib/emojione/assets/svg/1f508.svg
index 9894b05..9eac4a0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f508.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f508.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#8b979e" d="M11.128,45H3.783C1.694,45,0,43.416,0,41.463V22.537c0-1.954,1.693-3.536,3.782-3.536h7.346V45z" id="0"/><use xlink:href="#0"/><path fill="#b0bdc6" d="M29.836,2.247c1.306-1.306-18.708,16.754-18.708,16.754V45c0,0,10.271,7.855,18.708,16.754V2.247z"/><g fill="#333"><path d="m33 25.454v13.09c3.863 0 6.996-2.932 6.996-6.545 0-3.617-3.133-6.548-6.996-6.548"/><path d="m33 62.52c0 .816-.709 1.48-1.584 1.48-.874 0-1.583-.664-1.583-1.48v-61.04c-.001-.818.708-1.481 1.582-1.481.875 0 1.584.663 1.584 1.481v61.04"/></g><path fill="#8b979e" d="m11.128 40.18h-7.345c-2.089 0-3.783-.996-3.783-2.227v-11.914c0-1.23 1.693-2.227 3.782-2.227h7.346v16.368"/><path fill="#b0bdc6" d="m11.128 40.18h-7.345c-2.089 0-3.783-.996-3.783-2.227v-11.914c0-1.23 1.693-2.227 3.782-2.227h7.346v16.368"/><path fill="#dfe9ef" d="m29.836 13.27l-18.708 10.546v16.374l18.708 10.54z"/><path fill="#8b979e" d="m29.836 13.27h3.167v37.461h-3.167z"/><path fill="#333" d="m3.783 19h7.346v25.999h-7.346z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M11.1,45H3.8C1.7,45,0,43.4,0,41.5V22.5c0-2,1.7-3.5,3.8-3.5h7.3V45z" fill="#8b979e" id="0"/><use xlink:href="#0"/><path d="M29.8,2.2C31.1,0.9,11.1,19,11.1,19v26c0,0,10.3,7.9,18.7,16.8V2.2z" fill="#b0bdc6"/><g fill="#333"><path d="m33 25.5v13.1c3.9 0 7-2.9 7-6.5 0-3.7-3.1-6.6-7-6.6"/><path d="m33 62.5c0 .8-.7 1.5-1.6 1.5-.9 0-1.6-.7-1.6-1.5v-61c0-.8.7-1.5 1.6-1.5.9 0 1.6.7 1.6 1.5v61"/></g><path d="M11.1,40.2H3.8c-2.1,0-3.8-1-3.8-2.2V26c0-1.2,1.7-2.2,3.8-2.2h7.3V40.2z" fill="#8b979e"/><path d="M11.1,40.2H3.8c-2.1,0-3.8-1-3.8-2.2V26c0-1.2,1.7-2.2,3.8-2.2h7.3V40.2z" fill="#b0bdc6"/><path fill="#dfe9ef" d="m29.8 13.3l-18.7 10.5v16.4l18.7 10.5z"/><path fill="#8b979e" d="m29.8 13.3h3.2v37.5h-3.2z"/><path fill="#333" d="m3.8 19h7.3v26h-7.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f509.svg b/build/js/jsxc/lib/emojione/assets/svg/1f509.svg
index 37e5dae..5460d8e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f509.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f509.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#42ade2" d="m44.648 32c0 5.04-3.207 9.346-7.688 10.982l2.916 2.915c5.1-2.548 8.611-7.818 8.611-13.897 0-6.099-3.533-11.383-8.66-13.922l-2.922 2.92c4.511 1.623 7.743 5.94 7.743 11"/><path fill="#8b979e" d="M11.128,44.999H3.783C1.694,44.999,0,43.416,0,41.462V22.537C0,20.583,1.694,19,3.783,19h7.346V44.999z" id="0"/><use xlink:href="#0"/><path fill="#b0bdc6" d="M29.836,2.247C31.143,0.941,11.128,19,11.128,19v26c0,0,10.272,7.855,18.708,16.753V2.247z"/><g fill="#333"><path d="m33 25.454v13.09c3.863 0 6.996-2.932 6.996-6.545 0-3.617-3.133-6.547-6.996-6.547"/><path d="m33 62.52c0 .817-.709 1.481-1.584 1.481-.874 0-1.583-.664-1.583-1.481v-61.04c-.001-.818.708-1.481 1.582-1.481.875 0 1.584.663 1.584 1.481v61.04"/></g><path fill="#8b979e" d="m11.128 40.18h-7.345c-2.089 0-3.783-.997-3.783-2.227v-11.914c0-1.23 1.693-2.227 3.782-2.227h7.346v16.368"/><path fill="#b0bdc6" d="m11.128 40.18h-7.345c-2.089 0-3.783-.997-3.783-2.227v-11.914c0-1.23 1.693-2.227 3.782-2.227h7.346v16.368"/><path fill="#dfe9ef" d="m29.836 13.269l-18.708 10.547v16.374l18.708 10.54z"/><path fill="#8b979e" d="m29.836 13.269h3.167v37.461h-3.167z"/><path fill="#333" d="m3.783 19h7.346v25.999h-7.346z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m44.6 32c0 5-3.2 9.3-7.7 11l2.9 2.9c5.1-2.5 8.6-7.8 8.6-13.9 0-6.1-3.5-11.4-8.7-13.9l-2.8 2.9c4.5 1.6 7.7 5.9 7.7 11" fill="#42ade2"/><path d="m11.1 45h-7.3c-2.1 0-3.8-1.6-3.8-3.5v-19c0-2 1.7-3.5 3.8-3.5h7.3v26" fill="#8b979e" id="0"/><use xlink:href="#0"/><path d="M29.8,2.2C31.1,0.9,11.1,19,11.1,19v26c0,0,10.3,7.9,18.7,16.8V2.2z" fill="#b0bdc6"/><g fill="#333"><path d="m33 25.5v13.1c3.9 0 7-2.9 7-6.5 0-3.7-3.1-6.6-7-6.6"/><path d="m33 62.5c0 .8-.7 1.5-1.6 1.5-.9 0-1.6-.7-1.6-1.5v-61c0-.8.7-1.5 1.6-1.5.9 0 1.6.7 1.6 1.5v61"/></g><path d="M11.1,40.2H3.8c-2.1,0-3.8-1-3.8-2.2V26c0-1.2,1.7-2.2,3.8-2.2h7.3V40.2z" fill="#8b979e"/><path d="M11.1,40.2H3.8c-2.1,0-3.8-1-3.8-2.2V26c0-1.2,1.7-2.2,3.8-2.2h7.3V40.2z" fill="#b0bdc6"/><path fill="#dfe9ef" d="m29.8 13.3l-18.7 10.5v16.4l18.7 10.5z"/><path fill="#8b979e" d="m29.8 13.3h3.2v37.5h-3.2z"/><path fill="#333" d="m3.8 19h7.3v26h-7.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f50a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f50a.svg
index 3b12ee9..eb2e94c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f50a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f50a.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#42ade2"><path d="m51.43 7.386l-2.643 2.642c6.961 4.831 11.529 12.878 11.529 21.972 0 9.08-4.551 17.11-11.488 21.943l2.643 2.642c7.59-5.535 12.531-14.494 12.531-24.586 0-10.11-4.959-19.08-12.572-24.613"/><path d="m52.48 31.999c0 6.926-3.748 12.989-9.318 16.277l2.678 2.68c6.209-4.03 10.326-11.02 10.326-18.957 0-7.954-4.135-14.96-10.367-18.982l-2.682 2.681c5.596 3.282 9.363 9.36 9.363 16.301"/><path d="m44.807 31.999c0 4.84-3.078 8.973-7.381 10.545l2.799 2.798c4.896-2.447 8.27-7.507 8.27-13.343 0-5.853-3.393-10.928-8.314-13.365l-2.805 2.806c4.327 1.557 7.431 5.702 7.431 10.559"/></g><path fill="#8b979e" d="M11.128,44.999H3.783C1.694,44.999,0,43.416,0,41.462V22.537C0,20.583,1.694,19,3.783,19h7.346V44.999z" id="0"/><use xlink:href="#0"/><path fill="#b0bdc6" d="M29.836,2.247C31.142,0.941,11.128,19,11.128,19v26c0,0,10.271,7.855,18.708,16.753V2.247z"/><g fill="#333"><path d="m33 25.454v13.09c3.863 0 6.996-2.932 6.996-6.545 0-3.617-3.133-6.547-6.996-6.547"/><path d="m33 62.52c0 .817-.709 1.481-1.584 1.481-.874 0-1.583-.664-1.583-1.481v-61.04c-.001-.818.708-1.481 1.582-1.481.875 0 1.584.663 1.584 1.481v61.04"/></g><path fill="#8b979e" d="m11.128 40.18h-7.345c-2.089 0-3.783-.997-3.783-2.227v-11.914c0-1.23 1.693-2.227 3.782-2.227h7.346v16.368"/><path fill="#b0bdc6" d="m11.128 40.18h-7.345c-2.089 0-3.783-.997-3.783-2.227v-11.914c0-1.23 1.693-2.227 3.782-2.227h7.346v16.368"/><path fill="#dfe9ef" d="m29.836 13.269l-18.708 10.547v16.374l18.708 10.54z"/><path fill="#8b979e" d="m29.836 13.269h3.167v37.461h-3.167z"/><path fill="#333" d="m3.783 19h7.346v25.999h-7.346z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#42ade2"><path d="M51.4,7.4L48.8,10c7,4.8,11.5,12.9,11.5,22c0,9.1-4.6,17.1-11.5,21.9l2.6,2.6C59.1,51,64,42.1,64,32
+ C64,21.9,59,12.9,51.4,7.4z"/><path d="m52.5 32c0 6.9-3.7 13-9.3 16.3l2.7 2.7c6.2-4 10.3-11 10.3-19 0-8-4.1-15-10.4-19l-2.7 2.7c5.6 3.3 9.4 9.4 9.4 16.3"/><path d="m44.8 32c0 4.8-3.1 9-7.4 10.5l2.8 2.8c4.9-2.4 8.3-7.5 8.3-13.3 0-5.9-3.4-10.9-8.3-13.4l-2.8 2.8c4.3 1.6 7.4 5.7 7.4 10.6"/></g><path d="m11.1 45h-7.3c-2.1 0-3.8-1.6-3.8-3.5v-19c0-2 1.7-3.5 3.8-3.5h7.3v26" fill="#8b979e" id="0"/><use xlink:href="#0"/><path d="M29.8,2.2C31.1,0.9,11.1,19,11.1,19v26c0,0,10.3,7.9,18.7,16.8V2.2z" fill="#b0bdc6"/><g fill="#333"><path d="m33 25.5v13.1c3.9 0 7-2.9 7-6.5 0-3.7-3.1-6.6-7-6.6"/><path d="m33 62.5c0 .8-.7 1.5-1.6 1.5-.9 0-1.6-.7-1.6-1.5v-61c0-.8.7-1.5 1.6-1.5.9 0 1.6.7 1.6 1.5v61"/></g><path d="M11.1,40.2H3.8c-2.1,0-3.8-1-3.8-2.2V26c0-1.2,1.7-2.2,3.8-2.2h7.3V40.2z" fill="#8b979e"/><path d="M11.1,40.2H3.8c-2.1,0-3.8-1-3.8-2.2V26c0-1.2,1.7-2.2,3.8-2.2h7.3V40.2z" fill="#b0bdc6"/><path fill="#dfe9ef" d="m29.8 13.3l-18.7 10.5v16.4l18.7 10.5z"/><path fill="#8b979e" d="m29.8 13.3h3.2v37.5h-3.2z"/><path fill="#333" d="m3.8 19h7.3v26h-7.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f50b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f50b.svg
index a06b4dd..370d5cf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f50b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f50b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="M52,58c0,2.199-1.8,4-4,4H16c-2.2,0-4-1.801-4-4V10c0-2.2,1.8-4,4-4h32c2.2,0,4,1.8,4,4V58z"/><path d="m42 7c0 1.1-.9 2-2 2h-16c-1.1 0-2-.9-2-2v-3c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2v3"/></g><path fill="#fff" d="m16 13c-.542 0-1 .458-1 1v40c0 .541.458 1 1 1h32c.542 0 1-.459 1-1v-40c0-.542-.458-1-1-1h-32"/><g fill="#a8d600"><path d="m46 23c0 1.1-.9 2-2 2h-24c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h24c1.1 0 2 .9 2 2v4"/><path d="m46 36c0 1.1-.9 2-2 2h-24c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h24c1.1 0 2 .9 2 2v4"/><path d="m46 49c0 1.1-.9 2-2 2h-24c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h24c1.1 0 2 .9 2 2v4"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m42 7c0 1.1-.9 2-2 2h-16c-1.1 0-2-.9-2-2v-3c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2v3"/><path d="m48 6h-32c-2.2 0-4 1.8-4 4v48c0 2.2 1.8 4 4 4h32c2.2 0 4-1.8 4-4v-48c0-2.2-1.8-4-4-4m0 47c0 .5-.5 1-1 1h-30c-.5 0-1-.5-1-1v-38c0-.5.5-1 1-1h30c.5 0 1 .5 1 1v38"/></g><g fill="#a8d600"><path d="m46 24c0 1.1-.9 2-2 2h-24c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h24c1.1 0 2 .9 2 2v4"/><path d="m46 36c0 1.1-.9 2-2 2h-24c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h24c1.1 0 2 .9 2 2v4"/><path d="m46 48c0 1.1-.9 2-2 2h-24c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2h24c1.1 0 2 .9 2 2v4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f50c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f50c.svg
index 392cec1..bbbcf0a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f50c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f50c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m11.727 13.14c0 .633-.529 1.146-1.181 1.146h-1.574c-.651 0-1.18-.513-1.18-1.146v-11.997c0-.632.528-1.145 1.18-1.145h1.574c.651 0 1.181.513 1.181 1.145v11.997"/><path d="m21.84 13.14c0 .633-.528 1.146-1.182 1.146h-1.572c-.653 0-1.182-.513-1.182-1.146v-11.997c0-.632.529-1.145 1.182-1.145h1.572c.653 0 1.182.513 1.182 1.145v11.997"/></g><g fill="#3e4347"><path d="m.001 13.563v4.464c0 .633.528 1.145 1.179 1.145h1.713v4.808c0 4.16 2.265 7.806 5.666 9.843v4.236c0 .632.528 1.145 1.18 1.145h10.153c.653 0 1.182-.513 1.182-1.145v-4.236c3.399-2.037 5.666-5.684 5.666-9.843v-4.808h1.713c.65 0 1.18-.512 1.18-1.145v-4.464c0-.529-.37-.975-.872-1.105h-27.888c-.503.131-.872.576-.872 1.105"/><path d="m60.07 25.811v38.19h3.935v-38.19c0-1.801-.365-3.551-1.083-5.197-.694-1.59-1.688-3.02-2.95-4.244-1.266-1.226-2.737-2.188-4.378-2.86-1.698-.697-3.504-1.051-5.36-1.051-1.859 0-3.664.354-5.361 1.051-1.642.672-3.113 1.635-4.377 2.86-1.266 1.226-2.259 2.654-2.952 4.244-.718 1.646-1.083 3.396-1.083 5.197v24.838c0 5.258-4.411 9.537-9.837 9.537-5.424 0-9.837-4.279-9.837-9.537v-11.446h-3.935v11.445c0 1.802.365 3.55 1.083 5.197.694 1.591 1.687 3.02 2.95 4.244 1.266 1.226 2.737 2.188 4.377 2.861 1.7.696 3.505 1.049 5.361 1.049 1.858 0 3.664-.353 5.361-1.049 1.642-.674 3.113-1.636 4.377-2.861 1.266-1.226 2.258-2.653 2.952-4.244.718-1.647 1.083-3.396 1.083-5.197v-24.837c0-5.258 4.411-9.537 9.837-9.537 5.423-.001 9.837 4.279 9.837 9.537"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m11.7 13.1c0 .6-.5 1.1-1.2 1.1h-1.5c-.7 0-1.2-.5-1.2-1.1v-12c0-.6.5-1.1 1.2-1.1h1.6c.7 0 1.2.5 1.2 1.1v12z"/><path d="m21.8 13.1c0 .6-.5 1.1-1.2 1.1h-1.6c-.7 0-1.2-.5-1.2-1.1v-12c0-.6.5-1.1 1.2-1.1h1.6c.7 0 1.2.5 1.2 1.1v12"/></g><g fill="#3e4347"><path d="m0 13.6v4.4c0 .6.5 1.1 1.2 1.1h1.7v4.9c0 4.2 2.3 7.8 5.7 9.8v4.2c0 .6.5 1.1 1.2 1.1h10.2c.7 0 1.2-.5 1.2-1.1v-4.2c3.4-2 5.7-5.7 5.7-9.8v-4.8h1.7c.6 0 1.2-.5 1.2-1.1v-4.5c0-.5-.4-1-.9-1.1h-28c-.5.1-.9.5-.9 1.1"/><path d="m60.1 25.8v38.2h3.9v-38.2c0-1.8-.4-3.6-1.1-5.2-.7-1.6-1.7-3-3-4.2-1.3-1.2-2.7-2.2-4.4-2.9-1.7-.7-3.5-1.1-5.4-1.1-1.9 0-3.7.4-5.4 1.1-1.6.7-3.1 1.6-4.4 2.9-1.3 1.2-2.3 2.7-3 4.2-.7 1.6-1.1 3.4-1.1 5.2v24.8c0 5.3-4.4 9.5-9.8 9.5-5.4 0-9.8-4.3-9.8-9.5v-11.4h-3.9v11.4c0 1.8.4 3.5 1.1 5.2.7 1.6 1.7 3 3 4.2 1.3 1.2 2.7 2.2 4.4 2.9 1.7.7 3.5 1 5.4 1 1.9 0 3.7-.4 5.4-1 1.6-.7 3.1-1.6 4.4-2.9 1.3-1.2 2.3-2.7 3-4.2.7-1.6 1.1-3.4 1.1-5.2v-24.8c0-5.3 4.4-9.5 9.8-9.5 5.4 0 9.8 4.3 9.8 9.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f50d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f50d.svg
index cd2b9f0..7f1758d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f50d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f50d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7072-.707.707.7072-17.829 43.04)" fill="#b0bdc6" d="m40.18 40.847h5.727v4.393h-5.727z"/><path transform="matrix(.7069-.7073.7073.7069-17.829 43.06)" fill="#dfe9ef" d="m41.554 40.847h2.982v4.392h-2.982z"/><path transform="matrix(.7072-.707.707.7072-17.452 42.13)" fill="#b0bdc6" d="m39.27 41.22h5.727v1.819h-5.727z"/><circle fill="#dfe9ef" cx="24.703" cy="24.703" r="24.703"/><circle fill="#b0bdc6" cx="24.703" cy="24.703" r="22.23"/><circle fill="#fff" cx="24.703" cy="24.703" r="20.586"/><path fill="#dfe9ef" d="m36.34 29.631c-6.952 6.951-18.219 6.951-25.17.002-1.84-1.84-3.177-3.986-4.04-6.271-.473 5.09 1.235 10.343 5.132 14.239 6.949 6.947 18.217 6.947 25.17 0 5.11-5.111 6.449-12.553 4.04-18.897-.37 3.987-2.08 7.874-5.132 10.927"/><path transform="matrix(.7071-.7071.7071.7071-21.29 51.4)" fill="#333" d="m46.17 41.02h10.471v20.755h-10.471z"/><path transform="matrix(.7069-.7073.7073.7069-21.29 51.42)" fill="#575b5e" d="m48.538 41.02h5.727v20.757h-5.727z"/><path fill="#b0bdc6" d="m63.894 54.33c1.219 1.219-8.339 10.777-9.559 9.559l-.749-.75c-1.218-1.219 8.341-10.777 9.558-9.558l.75.749"/><path fill="#dfe9ef" d="m62.3 55.923c1.22 1.22-5.158 7.599-6.378 6.378l-.749-.748c-1.22-1.219 5.159-7.597 6.378-6.379l.749.749"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7072-.707.707.7072-17.5441 42.3457)" fill="#b0bdc6" d="m39.7 40.3h5.4v4.1h-5.4z"/><path transform="matrix(.7069-.7073.7073.7069-17.5421 42.3708)" fill="#dfe9ef" d="m41 40.3h2.8v4.1h-2.8z"/><path transform="matrix(.707-.7072.7072.707-17.1888 41.5085)" fill="#b0bdc6" d="m38.8 40.6h5.4v1.7h-5.4z"/><path d="m41.5 8.8c-9-9-23.7-9-32.8 0s-9 23.7 0 32.8c9 9 23.7 9 32.8 0 9.1-9.1 9.1-23.8 0-32.8m-2.1 30.6c-7.9 7.9-20.6 7.9-28.4 0-7.9-7.9-7.9-20.6 0-28.4 7.9-7.9 20.6-7.9 28.4 0 7.8 7.8 7.8 20.5 0 28.4" fill="#dfe9ef"/><path d="m39.9 10.4c-8.1-8.1-21.3-8.1-29.5 0-8.1 8.1-8.1 21.3 0 29.5 8.1 8.1 21.3 8.1 29.5 0 8.1-8.1 8.1-21.3 0-29.5m-1.1 28.4c-7.5 7.5-19.8 7.5-27.3 0s-7.5-19.8 0-27.3c7.5-7.5 19.8-7.5 27.3 0 7.5 7.5 7.5 19.8 0 27.3" fill="#b0bdc6"/><path d="m36.1 29.8c-6.5 6.5-17.1 6.5-23.6 0-1.7-1.7-3-3.7-3.8-5.9-.4 4.8 1.2 9.7 4.8 13.3 6.5 6.5 17.1 6.5 23.6 0 4.8-4.8 6-11.8 3.8-17.7-.4 3.8-2 7.4-4.8 10.3" opacity=".6" fill="#a6aeb0"/><path transform="matrix(.7071-.7071.7071.7071-20.7885 50.1891)" fill="#333" d="m45.3 40.5h9.8v19.5h-9.8z"/><path transform="matrix(.707-.7072.7072.707-20.7875 50.198)" fill="#575b5e" d="m47.5 40.5h5.4v19.5h-5.4z"/><path d="m61.9 52.9c1.1 1.1-7.8 10.1-9 9l-.7-.7c-1.1-1.1 7.8-10.1 9-9l.7.7" fill="#b0bdc6"/><path d="m60.4 54.4c1.1 1.1-4.8 7.1-6 6l-.7-.7c-1.1-1.1 4.8-7.1 6-6l.7.7" fill="#dfe9ef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f50e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f50e.svg
index c811d6b..a60c2aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f50e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f50e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(-.7072-.707.707-.7072 5.341 88.3)" fill="#b0bdc6" d="m18.09 40.847h5.727v4.393h-5.727z"/><path transform="matrix(-.7069-.7073.7073-.7069 5.325 88.29)" fill="#dfe9ef" d="m19.463 40.847h2.982v4.392h-2.982z"/><path transform="matrix(-.7072-.707.707-.7072 7.538 87.39)" fill="#b0bdc6" d="m19 41.22h5.727v1.819h-5.727z"/><circle fill="#dfe9ef" cx="39.3" cy="24.703" r="24.703"/><circle fill="#b0bdc6" cx="39.3" cy="24.703" r="22.23"/><circle fill="#fff" cx="39.3" cy="24.703" r="20.586"/><path fill="#dfe9ef" d="m27.664 29.631c6.951 6.951 18.219 6.951 25.17.002 1.84-1.84 3.177-3.986 4.04-6.271.473 5.09-1.235 10.343-5.132 14.239-6.949 6.947-18.217 6.947-25.16 0-5.11-5.111-6.449-12.553-4.04-18.897.37 3.987 2.08 7.874 5.132 10.927"/><path transform="matrix(-.7071-.7071.7071-.7071-14.839 96.65)" fill="#333" d="m7.363 41.02h10.471v20.755h-10.471z"/><path transform="matrix(-.7069-.7073.7073-.7069-14.849 96.65)" fill="#575b5e" d="m9.735 41.02h5.727v20.757h-5.727z"/><path fill="#b0bdc6" d="m.106 54.33c-1.219 1.219 8.339 10.777 9.559 9.559l.749-.75c1.218-1.219-8.341-10.777-9.558-9.558l-.75.749"/><path fill="#dfe9ef" d="m1.696 55.923c-1.22 1.22 5.158 7.599 6.378 6.378l.749-.748c1.22-1.219-5.159-7.597-6.378-6.379l-.749.749"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.707-.7072.7072.707-23.6115 27.7169)" fill="#b0bdc6" d="m19.6 39.7h4.1v5.4h-4.1z"/><path transform="matrix(.7073-.7069.7069.7073-23.6053 27.6984)" fill="#dfe9ef" d="m19.6 41h4.1v2.8h-4.1z"/><path transform="matrix(.7072-.707.707.7072-22.7534 28.058)" fill="#b0bdc6" d="m21.6 38.8h1.7v5.4h-1.7z"/><path d="m22.5 41.5c9 9 23.7 9 32.8 0 9-9 9-23.7 0-32.8s-23.7-9-32.8 0c-9.1 9.1-9.1 23.8 0 32.8m2.1-30.6c7.9-7.9 20.6-7.9 28.4 0 7.9 7.9 7.9 20.6 0 28.4-7.9 7.9-20.6 7.9-28.4 0-7.8-7.8-7.8-20.5 0-28.4" fill="#dfe9ef"/><path d="m24.1 39.9c8.1 8.1 21.3 8.1 29.5 0 8.1-8.1 8.1-21.3 0-29.5-8.1-8.1-21.3-8.1-29.5 0-8.1 8.2-8.1 21.4 0 29.5m1.1-28.4c7.5-7.5 19.8-7.5 27.3 0 7.5 7.5 7.5 19.8 0 27.3-7.5 7.5-19.8 7.5-27.3 0-7.5-7.5-7.5-19.8 0-27.3" fill="#b0bdc6"/><path d="m27.9 29.8c6.5 6.5 17.1 6.5 23.6 0 1.7-1.7 3-3.7 3.8-5.9.4 4.8-1.2 9.7-4.8 13.3-6.5 6.5-17.1 6.5-23.6 0-4.8-4.8-6-11.8-3.8-17.7.4 3.8 2 7.4 4.8 10.3" opacity=".6" fill="#a6aeb0"/><path transform="matrix(.7071-.7071.7071.7071-31.4441 24.465)" fill="#333" d="m4.1 45.3h19.5v9.8h-19.5z"/><path transform="matrix(.7072-.707.707.7072-31.4404 24.4592)" fill="#575b5e" d="m4.1 47.5h19.5v5.4h-19.5z"/><path d="m2.1 52.9c-1.1 1.1 7.8 10.1 9 9l.7-.7c1.1-1.1-7.8-10.1-9-9l-.7.7" fill="#b0bdc6"/><path d="m3.6 54.4c-1.1 1.1 4.8 7.1 6 6l.7-.7c1.1-1.1-4.8-7.1-6-6l-.7.7" fill="#dfe9ef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f50f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f50f.svg
index 28ed10b..eb3c3fb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f50f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f50f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,28.261v31.432C2,62.072,3.919,64,6.285,64h51.43C60.081,64,62,62.072,62,59.693V28.261H2z"/><path fill="#ff8736" d="M62,23.955c0-2.378-1.919-4.306-4.285-4.306H6.285C3.919,19.649,2,21.577,2,23.955v4.306h60V23.955z"/><g fill="#3e4347"><ellipse cx="12.367" cy="23.527" rx="5.92" ry="2.503"/><ellipse cx="51.633" cy="23.527" rx="5.92" ry="2.503"/></g><path fill="#dfe9ef" d="m32 0c-12.91 0-23.419 10.554-23.419 23.527 0 .784 1.58 1.419 3.786 1.419v-1.419c.753-10.972 9.27-19.653 19.633-19.653 10.365 0 18.88 8.681 19.634 19.653v1.419c2.204 0 3.784-.636 3.784-1.419 0-12.973-10.507-23.527-23.419-23.527"/><path fill="#b0bdc6" d="m51.634 23.527c-.754-10.972-9.269-19.653-19.634-19.653-10.363 0-18.88 8.681-19.634 19.653v1.419c2.205 0 4.18-.636 4.18-1.419 0-7.102 5.908-15.526 15.453-15.526 9.547 0 15.455 8.424 15.455 15.526 0 .784 1.973 1.419 4.18 1.419v-1.419"/><path fill="#3e4347" d="m36.609 56.4l-1.913-12.262c1.13-.834 1.866-2.176 1.866-3.693 0-2.533-2.044-4.584-4.563-4.584s-4.562 2.051-4.562 4.584c0 1.518.736 2.859 1.866 3.693l-1.912 12.262h9.218"/><path fill="#fff" d="m45.774 31.351h11.189l2.798 11.424c0 0-4.988 4.01-7.274 10.447v-14.11c.342-.311.56-.756.562-1.25-.002-.928-.752-1.678-1.681-1.68-.926 0-1.677.752-1.678 1.68 0 .496.218.941.562 1.248v14.11c-2.287-6.443-7.274-10.449-7.274-10.449l2.795-11.424"/><path fill="#3e4347" d="m62 0c0 12.87-2.239 17.691-2.239 17.691l.003 13.664-16.787-.001v-13.662c0 0-2.237-4.823-2.237-17.692h21.259"/><path fill="#94989b" d="m42.979 17.692h16.783v2.24h-16.783z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,28.3v31.4C2,62.1,3.9,64,6.3,64h51.4c2.4,0,4.3-1.9,4.3-4.3V28.3H2z" fill="#ffce31"/><path d="M62,24c0-2.4-1.9-4.3-4.3-4.3H6.3C3.9,19.6,2,21.6,2,24v4.3h60V24z" fill="#ff8736"/><g fill="#3e4347"><ellipse cx="12.4" cy="23.5" rx="5.9" ry="2.5"/><ellipse cx="51.6" cy="23.5" rx="5.9" ry="2.5"/></g><path d="m32 0c-12.9 0-23.4 10.6-23.4 23.5 0 .8 1.6 1.4 3.8 1.4v-1.4c.8-11 9.3-19.7 19.6-19.7 10.4 0 18.9 8.7 19.6 19.7v1.4c2.2 0 3.8-.6 3.8-1.4 0-12.9-10.5-23.5-23.4-23.5" fill="#dfe9ef"/><path d="m51.6 23.5c-.7-10.9-9.2-19.6-19.6-19.6-10.4 0-18.9 8.7-19.6 19.7v1.4c2.2 0 4.2-.6 4.2-1.4-.1-7.2 5.9-15.6 15.4-15.6 9.5 0 15.5 8.4 15.5 15.5 0 .8 2 1.4 4.2 1.4l-.1-1.4" fill="#b0bdc6"/><path d="m36.6 56.4l-1.9-12.3c1.1-.8 1.9-2.2 1.9-3.7 0-2.5-2-4.6-4.6-4.6s-4.6 2.1-4.6 4.6c0 1.5.7 2.9 1.9 3.7l-1.9 12.3h9.2" fill="#3e4347"/><path d="m45.8 31.4h11.2l2.8 11.4c0 0-5 4-7.3 10.4v-14.1c.3-.3.6-.8.6-1.2 0-.9-.8-1.7-1.7-1.7-.9 0-1.7.8-1.7 1.7 0 .5.2.9.6 1.2v14.1c-2.3-6.4-7.3-10.4-7.3-10.4l2.8-11.4" fill="#fff"/><path d="m62 0c0 12.9-2.2 17.7-2.2 17.7v13.7h-16.8v-13.7c0 0-2.2-4.8-2.2-17.7-.1 0 21.2 0 21.2 0" fill="#3e4347"/><path fill="#94989b" d="m43 17.7h16.8v2.2h-16.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f510.svg b/build/js/jsxc/lib/emojione/assets/svg/1f510.svg
index 6cd8ff5..2d9a97d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f510.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f510.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,28.262v31.432C2,62.072,3.919,64,6.285,64h51.43C60.081,64,62,62.072,62,59.693V28.262H2z"/><path fill="#ff8736" d="M62,23.956c0-2.378-1.919-4.306-4.285-4.306H6.285C3.919,19.65,2,21.578,2,23.956v4.306h60V23.956z"/><g fill="#3e4347"><ellipse cx="12.367" cy="23.528" rx="5.92" ry="2.503"/><ellipse cx="51.633" cy="23.528" rx="5.92" ry="2.503"/></g><path fill="#dfe9ef" d="m32 0c-12.91 0-23.419 10.555-23.419 23.528 0 .784 1.58 1.419 3.786 1.419v-1.419c.753-10.972 9.27-19.653 19.633-19.653 10.365 0 18.88 8.681 19.634 19.653v1.419c2.204 0 3.784-.636 3.784-1.419 0-12.973-10.507-23.528-23.419-23.528"/><path fill="#b0bdc6" d="m51.634 23.528c-.754-10.972-9.269-19.653-19.634-19.653-10.363 0-18.88 8.681-19.634 19.653v1.419c2.205 0 4.18-.636 4.18-1.419 0-7.102 5.908-15.525 15.453-15.525 9.547 0 15.455 8.423 15.455 15.525 0 .784 1.973 1.419 4.18 1.419v-1.419"/><path fill="#3e4347" d="m36.609 56.4l-1.913-12.262c1.13-.834 1.866-2.176 1.866-3.693 0-2.532-2.044-4.584-4.563-4.584s-4.562 2.052-4.562 4.584c0 1.518.736 2.859 1.866 3.693l-1.912 12.262h9.218"/><path fill="#42ade2" d="m43.24 27.335v8.199l2.34 2.204v3.753l-2.34 2.204v4.971l2.34 2.204v3.751l-2.34 2.205v3.423l4.69 3.751 4.689-3.751v-32.914c5.465-1.933 9.379-7.141 9.379-13.266 0-7.77-6.298-14.07-14.07-14.07-7.77 0-14.07 6.299-14.07 14.07-.001 6.125 3.915 11.333 9.378 13.266m9.333-17.909c0 2.565-2.079 4.644-4.644 4.644-2.563 0-4.642-2.078-4.642-4.644 0-2.563 2.079-4.642 4.642-4.642 2.565 0 4.644 2.078 4.644 4.642"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,28.3v31.4C2,62.1,3.9,64,6.3,64h51.4c2.4,0,4.3-1.9,4.3-4.3V28.3H2z" fill="#ffce31"/><path d="M62,24c0-2.4-1.9-4.3-4.3-4.3H6.3C3.9,19.6,2,21.6,2,24v4.3h60V24z" fill="#ff8736"/><g fill="#3e4347"><ellipse cx="12.4" cy="23.5" rx="5.9" ry="2.5"/><ellipse cx="51.6" cy="23.5" rx="5.9" ry="2.5"/></g><path d="m32 0c-12.9 0-23.4 10.6-23.4 23.5 0 .8 1.6 1.4 3.8 1.4v-1.4c.8-11 9.3-19.7 19.6-19.7 10.4 0 18.9 8.7 19.6 19.7v1.4c2.2 0 3.8-.6 3.8-1.4 0-12.9-10.5-23.5-23.4-23.5" fill="#dfe9ef"/><path d="m51.6 23.5c-.7-10.9-9.2-19.6-19.6-19.6-10.4 0-18.9 8.7-19.6 19.7v1.4c2.2 0 4.2-.6 4.2-1.4-.1-7.2 5.9-15.6 15.4-15.6 9.5 0 15.5 8.4 15.5 15.5 0 .8 2 1.4 4.2 1.4l-.1-1.4" fill="#b0bdc6"/><path d="m36.6 56.4l-1.9-12.3c1.1-.8 1.9-2.2 1.9-3.7 0-2.5-2-4.6-4.6-4.6s-4.6 2.1-4.6 4.6c0 1.5.7 2.9 1.9 3.7l-1.9 12.3h9.2" fill="#3e4347"/><path d="m43.2 27.3v8.2l2.3 2.2v3.8l-2.3 2.2v5l2.3 2.2v3.8l-2.3 2.2v3.4l4.7 3.8 4.7-3.8v-33c5.5-1.9 9.4-7.1 9.4-13.3 0-7.7-6.3-14-14.1-14s-14 6.3-14 14.1c0 6.1 3.9 11.3 9.3 13.2m9.4-17.9c0 2.6-2.1 4.6-4.6 4.6-2.6 0-4.6-2.1-4.6-4.6 0-2.6 2.1-4.6 4.6-4.6 2.5 0 4.6 2.1 4.6 4.6" fill="#42ade2"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f511.svg b/build/js/jsxc/lib/emojione/assets/svg/1f511.svg
index 0be942b..74b38d1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f511.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f511.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dae1e5" d="m61.19 18.709l-15.771-15.89c-1.085-1.093-2.859-1.093-3.943 0l-15.771 15.89c-1.084 1.092-1.084 2.88 0 3.972l3.963 3.992-2.484-2.502c1.635 1.646 1.635 4.31.001 5.958l-21.688 21.85-3.494 8.397 1.613 1.625 6.317-.588 24.15-24.331c1.635-1.646 4.278-1.646 5.913.001l-.772-.779 2.251 2.268c1.084 1.094 2.859 1.094 3.943 0l15.771-15.89c1.085-1.094 1.085-2.88.001-3.973m-7.886 1.986l-1.971 1.986c-.543.546-1.43.546-1.972 0l-7.886-7.945c-.542-.546-.542-1.44 0-1.986l1.971-1.986c.543-.546 1.43-.546 1.973 0l7.885 7.945c.543.546.543 1.44 0 1.986"/><g fill="#c2c8cc"><path d="m15.829 57.46l1.488-1.502.005-1.992-7.391 7.444 4.434-.493 1.458-1.467z"/><path d="m26.18 47.03l1.487-1.5.006-1.992-8.872 8.942h1.972l1.479-1.495h1.968l1.97-1.986z"/><path d="m30.666 31.583c.521-.523.232-.68-.039-.953s-.426-.564-.945-.041l-21.76 21.924c-.52.523-.231.68.04.953.271.273.427.563.946.039l21.758-21.922"/><path d="m33.624 34.562c.521-.523.231-.68-.04-.951-.271-.273-.426-.566-.945-.041l-21.76 21.922c-.52.523-.23.68.039.953.271.273.428.564.947.041l21.759-21.924"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 7c-6.7-6.7-17.5-6.7-24.1 0-5.5 5.5-6.4 13.8-3 20.3l-24.4 24.7-3.5 8.4 1.6 1.6 6.3-.6 26.8-27.2c0 0 0 0 0 0 6.5 3.6 14.8 2.6 20.2-2.9 6.8-6.7 6.8-17.6.1-24.3m-4.8 12.2c-2 2-5.3 2-7.3 0-2-2-2-5.3 0-7.4 2-2 5.3-2 7.3 0 2.1 2 2.1 5.3 0 7.4" fill="#eda454"/><g fill="#cc7f2b"><path d="m15.8 57.5l1.4-1.5v-2l-7.3 7.4 4.4-.5 1.5-1.5z"/><path d="m26.1 47l1.4-1.5v-2l-8.8 9h2l1.4-1.5h2l2-2z"/><path d="m30.5 31.6c.5-.5.2-.7 0-1-.3-.3-.4-.6-.9 0l-21.7 21.9c-.5.5-.2.7 0 1 .3.3.4.6.9 0l21.7-21.9"/><path d="m33.5 34.6c.5-.5.2-.7 0-1-.3-.3-.4-.6-.9 0l-21.8 21.9c-.5.5-.2.7 0 1 .3.3.4.6.9 0l21.8-21.9"/><path d="m56 8c-6.1-6.1-16-6.1-22.1 0-4.6 4.6-5.7 11.4-3.4 17.1-2.1-5.4-.9-11.7 3.4-16 5.8-5.9 15.3-5.9 21.1-.1 5.8 5.9 5.8 15.4 0 21.2-4.3 4.3-10.6 5.4-15.9 3.4 5.7 2.3 12.4 1.2 17-3.4 6-6.1 6-16.1-.1-22.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f512.svg b/build/js/jsxc/lib/emojione/assets/svg/1f512.svg
index 88ade64..fac55a2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f512.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f512.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,28.262v31.432C2,62.072,3.919,64,6.285,64h51.43C60.081,64,62,62.072,62,59.693V28.262H2z"/><path fill="#ff8736" d="M62,23.956c0-2.378-1.919-4.306-4.285-4.306H6.285C3.919,19.65,2,21.578,2,23.956v4.306h60V23.956z"/><g fill="#3e4347"><ellipse cx="12.367" cy="23.528" rx="5.92" ry="2.503"/><ellipse cx="51.633" cy="23.528" rx="5.92" ry="2.503"/></g><path fill="#dfe9ef" d="m32 0c-12.91 0-23.419 10.555-23.419 23.528 0 .784 1.58 1.419 3.786 1.419v-1.419c.753-10.972 9.27-19.653 19.633-19.653 10.365 0 18.88 8.681 19.634 19.653v1.419c2.204 0 3.784-.636 3.784-1.419 0-12.973-10.507-23.528-23.419-23.528"/><path fill="#b0bdc6" d="m51.634 23.528c-.754-10.972-9.269-19.653-19.634-19.653-10.363 0-18.88 8.681-19.634 19.653v1.419c2.205 0 4.18-.636 4.18-1.419 0-7.102 5.908-15.525 15.453-15.525 9.547 0 15.455 8.423 15.455 15.525 0 .784 1.973 1.419 4.18 1.419v-1.419"/><path fill="#3e4347" d="m36.609 56.4l-1.913-12.262c1.13-.834 1.866-2.176 1.866-3.693 0-2.532-2.044-4.584-4.563-4.584s-4.562 2.052-4.562 4.584c0 1.518.736 2.859 1.866 3.693l-1.912 12.262h9.218"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,28.3v31.4C2,62.1,3.9,64,6.3,64h51.4c2.4,0,4.3-1.9,4.3-4.3V28.3H2z" fill="#ffce31"/><path d="M62,24c0-2.4-1.9-4.3-4.3-4.3H6.3C3.9,19.6,2,21.6,2,24v4.3h60V24z" fill="#ff8736"/><g fill="#3e4347"><ellipse cx="12.4" cy="23.5" rx="5.9" ry="2.5"/><ellipse cx="51.6" cy="23.5" rx="5.9" ry="2.5"/></g><path d="m32 0c-12.9 0-23.4 10.6-23.4 23.5 0 .8 1.6 1.4 3.8 1.4v-1.4c.8-11 9.3-19.7 19.6-19.7 10.4 0 18.9 8.7 19.6 19.7v1.4c2.2 0 3.8-.6 3.8-1.4 0-12.9-10.5-23.5-23.4-23.5" fill="#dfe9ef"/><path d="m51.6 23.5c-.7-10.9-9.2-19.6-19.6-19.6-10.4 0-18.9 8.7-19.6 19.7v1.4c2.2 0 4.2-.6 4.2-1.4-.1-7.2 5.9-15.6 15.4-15.6 9.5 0 15.5 8.4 15.5 15.5 0 .8 2 1.4 4.2 1.4l-.1-1.4" fill="#b0bdc6"/><path d="m36.6 56.4l-1.9-12.3c1.1-.8 1.9-2.2 1.9-3.7 0-2.5-2-4.6-4.6-4.6s-4.6 2.1-4.6 4.6c0 1.5.7 2.9 1.9 3.7l-1.9 12.3h9.2" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f513.svg b/build/js/jsxc/lib/emojione/assets/svg/1f513.svg
index 2397c57..4d650b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f513.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f513.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M2,28.262v31.433C2,62.072,3.919,64,6.285,64h51.43C60.081,64,62,62.072,62,59.694V28.262H2z"/><path fill="#ff8736" d="M62,23.956c0-2.378-1.919-4.306-4.285-4.306H6.285C3.919,19.65,2,21.578,2,23.956v4.306h60V23.956z"/><g fill="#3e4347"><ellipse cx="12.367" cy="23.528" rx="5.92" ry="2.503"/><ellipse cx="51.633" cy="23.528" rx="5.92" ry="2.503"/><path d="m36.609 56.4l-1.913-12.262c1.13-.834 1.866-2.176 1.866-3.693 0-2.531-2.044-4.584-4.563-4.584s-4.562 2.053-4.562 4.584c0 1.518.736 2.859 1.866 3.693l-1.912 12.262h9.218"/></g><path fill="#dfe9ef" d="m32 0c-5.588 0-10.725 1.98-14.755 5.275l2.902 2.902c3.3-2.694 7.403-4.303 11.853-4.303 10.365 0 18.88 8.682 19.634 19.653v1.419c2.204 0 3.784-.636 3.784-1.419 0-12.972-10.507-23.527-23.419-23.527"/><path fill="#b0bdc6" d="m51.634 23.528c-.754-10.971-9.269-19.653-19.634-19.653-4.449 0-8.553 1.608-11.853 4.303l2.825 2.825c2.428-1.831 5.475-3 9.03-3 9.547 0 15.455 8.423 15.455 15.525 0 .783 1.973 1.419 4.18 1.419v-1.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,28.3v31.4C2,62.1,3.9,64,6.3,64h51.4c2.4,0,4.3-1.9,4.3-4.3V28.3H2z" fill="#ffce31"/><path d="M62,24c0-2.4-1.9-4.3-4.3-4.3H6.3C3.9,19.6,2,21.6,2,24v4.3h60V24z" fill="#ff8736"/><g fill="#3e4347"><ellipse cx="12.4" cy="23.5" rx="5.9" ry="2.5"/><ellipse cx="51.6" cy="23.5" rx="5.9" ry="2.5"/><path d="m36.6 56.4l-1.9-12.3c1.1-.8 1.9-2.2 1.9-3.7 0-2.5-2-4.6-4.6-4.6s-4.6 2.1-4.6 4.6c0 1.5.7 2.9 1.9 3.7l-1.9 12.3h9.2"/></g><path d="m32 0c-5.6 0-10.7 2-14.8 5.3l2.9 2.9c3.3-2.7 7.4-4.3 11.9-4.3 10.4 0 18.9 8.7 19.6 19.7v1.4c2.2 0 3.8-.6 3.8-1.4 0-13-10.5-23.6-23.4-23.6" fill="#dfe9ef"/><path d="m51.6 23.5c-.7-10.9-9.2-19.6-19.6-19.6-4.4 0-8.6 1.6-11.9 4.3l2.9 2.8c2.4-1.8 5.5-3 9-3 9.5 0 15.5 8.4 15.5 15.5 0 .8 2 1.4 4.2 1.4l-.1-1.4" fill="#b0bdc6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f514.svg b/build/js/jsxc/lib/emojione/assets/svg/1f514.svg
index 963ebe3..e647065 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f514.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f514.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b0bdc6" d="m43.711 23.66c-5.455-3.433-7.474-8.132-9.329-11.515-3.852-7.02-10.13-9.118-16.605-7.534-1.282-2.337-3.559-3.418-6.02-1.924-2.458 1.494-2.707 4.11-1.425 6.446-4.542 5.111-5.957 11.881-2.104 18.907 1.855 3.381 4.711 7.572 4.808 14.261.069 4.754-3.66 7.966 2.025 18.33l42.714-25.959c-5.685-10.366-10.191-8.574-14.07-11.01"/><path fill="#d9e3e8" d="m40.664 25.512c-4.923-3.756-7.02-8.405-8.88-11.787-3.852-7.02-9.365-9.585-14.747-8.665-1.281-2.336-3.307-3.57-5.275-2.374-1.969 1.196-1.967 3.66-.686 5.997-3.446 4.446-4.098 10.751-.245 17.776 1.854 3.382 4.629 7.623 5.257 13.989.447 4.522-2.463 7.238 3.222 17.604l34.22-20.802c-5.684-10.365-9.372-9.07-12.87-11.738"/><path fill="#7d888e" d="m57.739 34.693c1.835 3.345-6.241 11.864-18.04 19.03-11.795 7.17-22.841 10.271-24.676 6.927-1.833-3.342 6.241-11.863 18.04-19.03 11.796-7.17 22.845-10.269 24.676-6.929"/><path fill="#5a666b" d="m56.632 35.667c1.657 3.02-5.993 10.934-17.09 17.676-11.09 6.744-21.428 9.762-23.09 6.74-1.655-3.02 5.995-10.932 17.09-17.674 11.09-6.743 21.429-9.759 23.08-6.742"/><path fill="#383f42" d="m17.654 55.714c4.37-.478 11.458-3.32 18.892-7.838 7.434-4.518 13.315-9.56 15.894-13.304-4.369.478-11.459 3.318-18.892 7.837-7.435 4.518-13.317 9.56-15.894 13.305"/><g fill="#b0bdc6"><path d="m23.823 49.32c-.679.57-1.319 1.136-1.919 1.69 1.582 3.499 5.23 5.603 9.02 4.885-2.994.564-6.03-2.322-7.104-6.575"/><path d="m35.569 41.22c-.512.292-1.024.593-1.539.901.021.033.043.066.063.1.746 1.264 1.247 2.671 1.515 4.122.269 1.45.267 2.965-.071 4.402-.321 1.438-1.073 2.769-2.115 3.705.009-.012.016-.025.025-.036-.695.766-1.541 1.289-2.503 1.475 4.547-.868 7.567-5.445 6.749-10.233-.297-1.73-1.063-3.241-2.124-4.436"/></g><g fill="#d9e3e8"><path d="m30.927 55.892h.005l.011-.002-.011.002z"/><path d="m35.607 46.34c-.268-1.451-.769-2.858-1.515-4.122-.02-.033-.042-.066-.063-.1-.039.023-.078.047-.117.07-.122.072-.244.143-.365.217-.043.026-.085.053-.127.079-3.647 2.224-6.916 4.571-9.598 6.828 1.072 4.253 4.11 7.139 7.104 6.575.002 0 .004 0 .005 0 .003 0 .008-.002.011-.002.962-.186 1.808-.709 2.503-1.475-.01.011-.017.024-.025.036 1.042-.937 1.794-2.267 2.115-3.705.339-1.436.341-2.951.072-4.401"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.7 23.7c-5.5-3.4-7.5-8.1-9.3-11.5-3.9-7-10.1-9.1-16.6-7.5-1.3-2.3-3.6-3.4-6-1.9-2.5 1.5-2.7 4.1-1.4 6.4-4.6 5-6 11.8-2.2 18.8 1.9 3.4 4.7 7.6 4.8 14.3.1 4.8-3.7 8 2 18.3l42.7-26c-5.6-10.3-10.1-8.5-14-10.9" fill="#b0bdc6"/><path d="m40.7 25.5c-4.9-3.8-7-8.4-8.9-11.8-3.9-7-9.4-9.6-14.7-8.7-1.3-2.3-3.3-3.6-5.3-2.4-2 1.2-2 3.7-.7 6-3.5 4.5-4.1 10.8-.3 17.9 1.9 3.4 4.6 7.6 5.3 14 .4 4.5-2.5 7.2 3.2 17.6l34.2-20.8c-5.7-10.4-9.3-9.1-12.8-11.8" fill="#d9e3e8"/><path d="m57.7 34.7c1.8 3.3-6.2 11.9-18 19-11.8 7.2-22.8 10.3-24.7 7-1.8-3.3 6.2-11.9 18-19 11.9-7.2 22.9-10.3 24.7-7" fill="#7d888e"/><path d="m56.6 35.7c1.7 3-6 10.9-17.1 17.7-11.1 6.7-21.4 9.8-23.1 6.7-1.7-3 6-10.9 17.1-17.7 11.1-6.7 21.5-9.7 23.1-6.7" fill="#5a666b"/><path d="m17.7 55.7c4.4-.5 11.5-3.3 18.9-7.8s13.3-9.6 15.9-13.3c-4.4.4-11.5 3.3-19 7.8-7.4 4.5-13.3 9.6-15.8 13.3" fill="#383f42"/><g fill="#b0bdc6"><path d="m23.8 49.3c-.7.6-1.3 1.1-1.9 1.7 1.6 3.5 5.2 5.6 9 4.9-3 .6-6-2.3-7.1-6.6"/><path d="m35.6 41.2c-.5.3-1 .6-1.5.9 0 0 0 .1.1.1.7 1.3 1.2 2.7 1.5 4.1.3 1.5.3 3-.1 4.4-.3 1.4-1.1 2.8-2.1 3.7-.7.8-1.5 1.3-2.5 1.5 4.5-.9 7.6-5.4 6.7-10.2-.3-1.8-1.1-3.3-2.1-4.5"/></g><path d="m35.6 46.3c-.3-1.5-.8-2.9-1.5-4.1 0 0 0-.1-.1-.1 0 0-.1 0-.1.1-.1.1-.2.1-.4.2 0 0-.1.1-.1.1-3.6 2.2-6.9 4.6-9.6 6.8 1.1 4.3 4.1 7.1 7.1 6.6 1-.2 1.8-.7 2.5-1.5 1-.9 1.8-2.3 2.1-3.7.4-1.4.4-2.9.1-4.4" fill="#d9e3e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f515.svg b/build/js/jsxc/lib/emojione/assets/svg/1f515.svg
index fd5fe6a..a37acaf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f515.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f515.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><g fill="#fff"><path d="m42.01 31.968c-1.75-3.138-1.477-5.893-1.477-7.99 0-4.354-2.51-7.103-6.105-8.196 0-1.449-.824-2.595-2.427-2.595-1.604 0-2.429 1.146-2.429 2.595-3.596 1.093-6.104 3.841-6.104 8.196 0 2.098.272 4.853-1.476 7.99-1.242 2.229-3.93 2.669-3.93 9.09h27.875c.001-6.426-2.686-6.866-3.927-9.1"/><path d="m32.774 42.938c0 2.42-1.962 4.383-4.383 4.383s-4.383-1.963-4.383-4.383h8.766"/></g><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><g fill="#fff"><path d="m42 32c-1.8-3.1-1.5-5.9-1.5-8 0-4.4-2.5-7.1-6.1-8.2 0-1.4-.8-2.6-2.4-2.6-1.6 0-2.4 1.1-2.4 2.6-3.6 1.1-6.1 3.8-6.1 8.2 0 2.1.3 4.9-1.5 8-1.2 2.2-3.9 2.7-3.9 9.1h27.9c-.1-6.5-2.7-6.9-4-9.1"/><path d="m32.8 42.9c0 2.4-2 4.4-4.4 4.4-2.4 0-4.4-2-4.4-4.4h8.8"/></g><path transform="matrix(.7071-.7071.7071.7071-13.2556 32.0003)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f516.svg b/build/js/jsxc/lib/emojione/assets/svg/1f516.svg
index e3db779..5550796 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f516.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f516.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d19500" d="m44.45 21.507c-.081-.082-.153-.174-.215-.278-.378-.65-.157-1.483.492-1.861 6.759-3.934 8.242-7.219 9.551-10.117 1.127-2.495 2.191-4.85 6.166-6.485.695-.286 1.491.044 1.776.74.286.695-.046 1.491-.74 1.776-2.975 1.225-3.669 2.762-4.722 5.089-1.403 3.109-3.15 6.977-10.662 11.349-.544.318-1.22.214-1.646-.213"/><path fill="#ffbf1f" d="m43.726 20.515c-.043-.043-.084-.089-.122-.138-.455-.598-.339-1.453.257-1.908 6.293-4.792 7.306-8.158 8.2-11.127.772-2.569 1.503-4.996 5.301-7.162.653-.372 1.483-.149 1.856.508.372.652.146 1.484-.508 1.856-2.854 1.627-3.326 3.201-4.04 5.582-.964 3.199-2.161 7.18-9.155 12.508-.549.418-1.313.355-1.786-.119"/><path fill="#ed4c5c" d="m21.416 64l-.013-19.729-19.73-.013 34.24-34.24c1.814-1.815 4.758-1.814 6.573 0l13.168 13.168c1.815 1.815 1.815 4.758 0 6.573l-34.24 34.25"/><circle fill="#fff" cx="42.699" cy="22.973" r="4.934"/><g fill="#f2b200"><path d="m49.5 12.94c-1.353-.604-2.344-1-3.583-.588-1.893.634-3.452 2.43-4.635 5.336-.213.522-.076 1.101.299 1.476.124.125.275.228.449.298.696.282 1.49-.052 1.773-.749 1.083-2.664 2.217-3.526 2.979-3.782.355-.119.447.152.855.228 1.117-1.115 1.863-2.219 1.863-2.219"/><path d="m53.32 19.755c.379-1.127.127-2.11-.336-3.332 0 0-.777.803-2.144 1.937-.013.182-.043.359-.101.53-.254.761-1.117 1.895-3.781 2.978-.697.283-1.031 1.077-.748 1.773.07.174.173.325.297.449.375.376.953.511 1.477.299 2.907-1.182 4.704-2.741 5.336-4.634"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m44.5 21.5c-.1-.1-.2-.2-.2-.3-.4-.6-.2-1.5.5-1.9 6.8-3.9 8.2-7.2 9.6-10.1 1.1-2.5 2.2-4.8 6.2-6.5.7-.3 1.5 0 1.8.7.3.7 0 1.5-.7 1.8-3 1.2-3.7 2.8-4.7 5.1-1.4 3.1-3.2 7-10.7 11.3-.7.4-1.4.3-1.8-.1" fill="#d19500"/><path d="m43.7 20.5c0 0-.1-.1-.1-.1-.5-.6-.3-1.5.3-1.9 6.3-4.8 7.3-8.2 8.2-11.1.8-2.6 1.5-5 5.3-7.2.6-.4 1.4-.2 1.8.5.4.7.1 1.5-.5 1.9-2.9 1.6-3.3 3.2-4 5.6-1 3.2-2.2 7.2-9.2 12.5-.5.4-1.3.3-1.8-.2" fill="#ffbf1f"/><path d="M21.4,64l0-19.7l-19.7,0L35.9,10c1.8-1.8,4.8-1.8,6.6,0l13.2,13.2c1.8,1.8,1.8,4.8,0,6.6L21.4,64z" fill="#ed4c5c"/><circle cx="42.7" cy="23" r="4.9" fill="#fff"/><g fill="#f2b200"><path d="m49.5 12.9c-1.4-.6-2.3-1-3.6-.6-1.9.6-3.5 2.4-4.6 5.3-.2.5-.1 1.1.3 1.5.1.1.3.2.4.3.7.3 1.5-.1 1.8-.7 1.1-2.7 2.2-3.5 3-3.8.4-.1.4.2.9.2 1.1-1.1 1.8-2.2 1.8-2.2"/><path d="m53.3 19.8c.4-1.1.1-2.1-.3-3.3 0 0-.8.8-2.1 1.9 0 .2 0 .4-.1.5-.3.8-1.1 1.9-3.8 3-.7.3-1 1.1-.7 1.8.1.2.2.3.3.4.4.4 1 .5 1.5.3 2.8-1.2 4.6-2.8 5.2-4.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f517.svg b/build/js/jsxc/lib/emojione/assets/svg/1f517.svg
index 4c6ff7c..777545a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f517.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f517.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m36.15 41.525c1.19 1.191 1.305 3.03.247 4.087l-17.662 17.664c-1.055 1.055-2.896.943-4.087-.248l-13.674-13.674c-1.192-1.192-1.303-3.03-.248-4.087l17.664-17.663c1.057-1.057 2.896-.945 4.087.247 1.19 1.19 1.305 3.03.248 4.087l-13.824 13.825c-1.055 1.055-.945 2.895.247 4.087l5 5c1.192 1.192 3.03 1.302 4.087.247l13.824-13.823c1.056-1.058 2.895-.945 4.087.247"/><path d="m63.03 14.646c1.19 1.19 1.303 3.03.247 4.087l-17.663 17.663c-1.056 1.056-2.896.943-4.087-.247-1.192-1.192-1.305-3.03-.248-4.088l13.823-13.825c1.057-1.057.945-2.895-.247-4.087l-5-5c-1.192-1.191-3.03-1.304-4.088-.247l-13.823 13.824c-1.055 1.055-2.896.942-4.087-.248-1.192-1.191-1.303-3.03-.247-4.087l17.663-17.663c1.056-1.056 2.895-.945 4.087.247l13.673 13.674"/><path d="m44.48 19.521c1.192 1.192 1.303 3.03.246 4.085l-21.12 21.12c-1.055 1.055-2.893.946-4.085-.246-1.193-1.192-1.303-3.03-.247-4.087l21.12-21.12c1.057-1.058 2.895-.946 4.087.247"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m36.1 41.5c1.2 1.2 1.3 3 .2 4.1l-17.6 17.7c-1.1 1.1-2.9.9-4.1-.2l-13.6-13.7c-1.2-1.2-1.3-3-.2-4.1l17.7-17.7c1.1-1.1 2.9-.9 4.1.2 1.2 1.2 1.3 3 .2 4.1l-13.9 13.9c-1.1 1.1-.9 2.9.2 4.1l5 5c1.2 1.2 3 1.3 4.1.2l13.8-13.8c1.1-1.1 3-1 4.1.2"/><path d="m63 14.6c1.2 1.2 1.3 3 .2 4.1l-17.6 17.7c-1.1 1.1-2.9.9-4.1-.2-1.2-1.2-1.3-3-.2-4.1l13.8-13.8c1.1-1.1.9-2.9-.2-4.1l-5-5c-1.2-1.2-3-1.3-4.1-.2l-13.9 13.7c-1.1 1.1-2.9.9-4.1-.2-1.2-1.2-1.3-3-.2-4.1l17.7-17.7c1.1-1.1 2.9-.9 4.1.2l13.6 13.7"/><path d="m44.5 19.5c1.2 1.2 1.3 3 .2 4.1l-21.1 21.1c-1.1 1.1-2.9.9-4.1-.2-1.2-1.2-1.3-3-.2-4.1l21.1-21.1c1.1-1.1 2.9-1 4.1.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f518.svg b/build/js/jsxc/lib/emojione/assets/svg/1f518.svg
index 4db55df..a894198 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f518.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f518.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#94989b" cx="32" cy="31" r="30"/><circle fill="#626a6d" cx="32" cy="32" r="15"/><circle fill="#d9e3e8" cx="32" cy="30.375" r="15"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="31" r="30" fill="#94989b"/><circle cx="32" cy="32" r="15" fill="#626a6d"/><circle cx="32" cy="30.4" r="15" fill="#d9e3e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f519.svg b/build/js/jsxc/lib/emojione/assets/svg/1f519.svg
index b3161b9..b8fe574 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f519.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f519.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="M0,16L16,0v10h42c3.314,0,6,2.687,6,6s-2.686,6-6,6H16v10L0,16z"/><path d="M14,48.346C14,44.848,11.308,42,8,42H2v22h6c3.308,0,6-2.848,6-6.347c0-1.84-0.748-3.493-1.936-4.653
- C13.252,51.84,14,50.187,14,48.346z M8,60.617H5.125v-5.926H8c1.654,0,3,1.329,3,2.962S9.654,60.617,8,60.617z M8,51.309H5.125
- v-5.926H8c1.654,0,3,1.33,3,2.963S9.654,51.309,8,51.309z"/><path d="m40 60.62c-1.654 0-3-1.331-3-2.964v-9.308c0-1.633 1.346-2.963 3-2.963s3 1.33 3 2.963h3c0-3.497-2.691-6.345-6-6.345-3.307 0-6 2.848-6 6.346v9.308c0 3.498 2.693 6.346 6 6.346 3.309 0 6-2.848 6-6.347h-3c0 1.633-1.346 2.964-3 2.964"/><path d="m62 42h-3.152l-3.885 9.5h-1.963v-9.5h-3v22h3v-9.5h1.963l3.885 9.5h3.152l-4.42-11z"/><path d="m27 64h3l-4-22h-5l-3 22h3l.826-6.06h4.072l1.102 6.06m-4.713-9.441l1.285-9.416 1.711 9.416h-2.996"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m3 18l16-16v10h42v12h-42v10z"/><path d="m14 46.3c0-3.5-2.7-6.3-6-6.3h-6v22h6c3.3 0 6-2.8 6-6.3 0-1.8-.7-3.5-1.9-4.7 1.2-1.2 1.9-2.8 1.9-4.7m-6 12.3h-2.9v-5.9h2.9c1.7 0 3 1.3 3 3s-1.3 2.9-3 2.9m0-9.3h-2.9v-5.9h2.9c1.7 0 3 1.3 3 3s-1.3 2.9-3 2.9"/><path d="m40 58.6c-1.7 0-3-1.3-3-3v-9.3c0-1.6 1.3-3 3-3s3 1.3 3 3h3c0-3.5-2.7-6.3-6-6.3s-6 2.8-6 6.3v9.3c0 3.5 2.7 6.3 6 6.3s6-2.8 6-6.3h-3c0 1.7-1.3 3-3 3"/><path d="m62 40h-3.2l-3.8 9.5h-2v-9.5h-3v22h3v-9.5h2l3.8 9.5h3.2l-4.4-11z"/><path d="m27 62h3l-4-22h-5l-3 22h3l.8-6.1h4.1l1.1 6.1m-4.7-9.4l1.3-9.4 1.7 9.4h-3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f51a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f51a.svg
index 3d4b956..1925646 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f51a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f51a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="M0,16L16,0v10h42c3.313,0,6,2.687,6,6s-2.687,6-6,6H16v10L0,16z"/><path d="m22 45.38v-3.38h-12v22h12v-3.38h-9v-5.929h9v-3.381h-9v-5.93z"/><path d="m48 42h-6v22h6c3.308 0 6-2.848 6-6.347v-9.308c0-3.497-2.692-6.345-6-6.345m3 15.653c0 1.633-1.346 2.964-3 2.964h-3v-15.234h3c1.654 0 3 1.33 3 2.963v9.307"/><path d="m29 49.704l5.848 14.296h3.152v-22h-3v14.3l-5.85-14.3h-3.15v22h3z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m3 18l16-16v10h42v12h-42v10z"/><path d="m25 43.4v-3.4h-12v22h12v-3.4h-9v-5.9h9v-3.4h-9v-5.9z"/><path d="m51 40h-6v22h6c3.3 0 6-2.8 6-6.3v-9.3c0-3.6-2.7-6.4-6-6.4m3 15.7c0 1.6-1.3 3-3 3h-3v-15.3h3c1.7 0 3 1.3 3 3v9.3"/><path d="m32 47.7l5.8 14.3h3.2v-22h-3v14.3l-5.8-14.3h-3.2v22h3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f51b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f51b.svg
index 45a61c6..f9bb3d8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f51b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f51b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m64 16l-16-16v10h-32v-10l-16 16 16 16v-10h32v10z"/><path d="m20 64c-3.308 0-6-2.848-6-6.347v-9.308c0-3.498 2.692-6.346 6-6.346 3.307 0 6 2.848 6 6.346v9.308c0 3.499-2.693 6.347-6 6.347m0-18.617c-1.655 0-3 1.33-3 2.963v9.308c0 1.633 1.346 2.964 3 2.964 1.654 0 3-1.331 3-2.964v-9.308c0-1.633-1.346-2.963-3-2.963"/><path d="m33 49.704l5.848 14.296h3.152v-22h-3v14.3l-5.85-14.3h-3.15v22h3z"/><path d="m46 60h4v4h-4z"/><path d="m50 42h-4l.736 14h2.524z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m18 24h28v10l16-16-16-16v10h-28v-10l-16 16 16 16z"/><path d="m20 40c-3.3 0-6 2.8-6 6.3v9.3c0 3.5 2.7 6.3 6 6.3s6-2.8 6-6.3v-9.3c0-3.5-2.7-6.3-6-6.3m3 15.7c0 1.6-1.3 3-3 3s-3-1.3-3-3v-9.3c0-1.6 1.3-3 3-3s3 1.3 3 3v9.3"/><path d="m39 54.3l-5.8-14.3h-3.2v22h3v-14.3l5.8 14.3h3.2v-22h-3z"/><path d="m46 58h4v4h-4z"/><path d="m46.7 54h2.6l.7-14h-4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f51c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f51c.svg
index 2936307..62c2ffb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f51c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f51c.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="M64,16L48,0v10H6c-3.313,0-6,2.687-6,6s2.687,6,6,6h42v10L64,16z"/><path d="M8,64c-3.308,0-6-2.848-6-6.347h3c0,1.633,1.346,2.964,3,2.964s3-1.331,3-2.964s-1.346-2.962-3-2.962
- c-3.308,0-6-2.845-6-6.346C2,44.848,4.692,42,8,42s6,2.848,6,6.346h-3c0-1.633-1.346-2.963-3-2.963s-3,1.33-3,2.963
- s1.346,2.963,3,2.963c3.308,0,6,2.846,6,6.345S11.308,64,8,64z"/><path d="m24 64c-3.308 0-6-2.848-6-6.347v-9.308c0-3.497 2.692-6.345 6-6.345s6 2.848 6 6.346v9.308c0 3.498-2.692 6.346-6 6.346m0-18.617c-1.654 0-3 1.33-3 2.963v9.308c0 1.633 1.346 2.964 3 2.964s3-1.331 3-2.964v-9.308c0-1.633-1.346-2.963-3-2.963"/><path d="m40 64c-3.308 0-6-2.848-6-6.347v-9.308c0-3.497 2.692-6.345 6-6.345s6 2.848 6 6.346v9.308c0 3.498-2.692 6.346-6 6.346m0-18.617c-1.654 0-3 1.33-3 2.963v9.308c0 1.633 1.346 2.964 3 2.964s3-1.331 3-2.964v-9.308c0-1.633-1.346-2.963-3-2.963"/><path d="m53 49.704l5.848 14.296h3.152v-22h-3v14.3l-5.85-14.3h-3.15v22h3z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m61 18l-16-16v10h-42v12h42v10z"/><path d="m8 62c-3.3 0-6-2.8-6-6.3h3c0 1.6 1.3 3 3 3s3-1.3 3-3-1.3-3-3-3c-3.3 0-6-2.8-6-6.3 0-3.6 2.7-6.4 6-6.4s6 2.8 6 6.3h-3c0-1.6-1.3-3-3-3s-3 1.3-3 3 1.3 3 3 3c3.3 0 6 2.8 6 6.3 0 3.6-2.7 6.4-6 6.4"/><path d="m24 62c-3.3 0-6-2.8-6-6.3v-9.3c0-3.5 2.7-6.3 6-6.3s6 2.8 6 6.3v9.3c0 3.5-2.7 6.3-6 6.3m0-18.6c-1.7 0-3 1.3-3 3v9.3c0 1.6 1.3 3 3 3s3-1.3 3-3v-9.3c0-1.7-1.3-3-3-3"/><path d="m40 62c-3.3 0-6-2.8-6-6.3v-9.3c0-3.5 2.7-6.3 6-6.3s6 2.8 6 6.3v9.3c0 3.5-2.7 6.3-6 6.3m0-18.6c-1.7 0-3 1.3-3 3v9.3c0 1.6 1.3 3 3 3s3-1.3 3-3v-9.3c0-1.7-1.3-3-3-3"/><path d="m53 47.7l5.8 14.3h3.2v-22h-3v14.3l-5.8-14.3h-3.2v22h3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f51d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f51d.svg
index be3cc1b..cc4db67 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f51d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f51d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="M32,0L16,16h10v10c0,3.313,2.687,6,6,6s6-2.687,6-6V16h10L32,0z"/><path d="m32 64c-3.308 0-6-2.848-6-6.347v-9.308c0-3.497 2.692-6.345 6-6.345s6 2.848 6 6.346v9.308c0 3.498-2.692 6.346-6 6.346m0-18.617c-1.654 0-3 1.33-3 2.963v9.308c0 1.633 1.346 2.964 3 2.964s3-1.331 3-2.964v-9.308c0-1.633-1.346-2.963-3-2.963"/><path d="m22 42h-12v3h4.5v19h3v-19h4.5z"/><path d="m48 42h-6v22h3v-9.309h3c3.308 0 6-2.848 6-6.347s-2.692-6.344-6-6.344m0 9.309h-3v-5.926h3c1.654 0 3 1.329 3 2.962s-1.346 2.964-3 2.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m32 2l-16 16h10v15h12v-15h10z"/><path d="m32 62c-3.3 0-6-2.8-6-6.3v-9.3c0-3.5 2.7-6.3 6-6.3s6 2.8 6 6.3v9.3c0 3.5-2.7 6.3-6 6.3m0-18.6c-1.7 0-3 1.3-3 3v9.3c0 1.6 1.3 3 3 3s3-1.3 3-3v-9.3c0-1.7-1.3-3-3-3"/><path d="m22 40h-12v3h4.5v19h3v-19h4.5z"/><path d="m48 40h-6v22h3v-9.3h3c3.3 0 6-2.8 6-6.3 0-3.6-2.7-6.4-6-6.4m0 9.3h-3v-5.9h3c1.7 0 3 1.3 3 3s-1.3 2.9-3 2.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f51e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f51e.svg
index 7e6537f..19ac9d2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f51e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f51e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><g fill="#fff"><path d="m16.13 27.06v-3.487c1.613-.072 2.743-.18 3.389-.324 1.027-.228 1.865-.683 2.51-1.366.442-.468.777-1.091 1-1.87.132-.467.197-.814.197-1.042h4.279v26.06h-5.249v-17.976h-6.13"/><path d="m30.745 33.555c.66-1.187 1.629-2.079 2.904-2.679-1.265-.839-2.085-1.747-2.464-2.724s-.568-1.89-.568-2.741c0-1.894.715-3.508 2.145-4.845 1.427-1.336 3.447-2 6.05-2 2.607 0 4.625.668 6.05 2 1.43 1.336 2.145 2.951 2.145 4.845 0 .851-.189 1.764-.566 2.741s-1.195 1.824-2.453 2.544c1.287.72 2.258 1.672 2.908 2.858.648 1.187.975 2.511.975 3.973 0 2.193-.814 4.06-2.439 5.6s-3.895 2.31-6.809 2.31c-2.916 0-5.125-.77-6.623-2.31-1.5-1.54-2.25-3.406-2.25-5.6-.003-1.462.328-2.786.99-3.972m5.327 6.615c.664.707 1.584 1.061 2.758 1.061s2.094-.354 2.76-1.061.998-1.701.998-2.984c0-1.33-.338-2.34-1.016-3.03-.678-.688-1.592-1.033-2.742-1.033s-2.064.345-2.74 1.033c-.678.689-1.016 1.699-1.016 3.03 0 1.283.332 2.277.998 2.984m.326-11.865c.582.6 1.389.9 2.424.9 1.045 0 1.852-.301 2.424-.9.57-.599.855-1.371.855-2.318 0-1.031-.285-1.836-.855-2.418-.572-.581-1.379-.872-2.424-.872-1.035 0-1.842.291-2.424.872-.584.582-.875 1.387-.875 2.418 0 .947.291 1.719.875 2.318"/></g><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><g fill="#fff"><path d="m16.1 27.1v-3.5c1.6-.1 2.7-.2 3.4-.3 1-.2 1.9-.7 2.5-1.4.4-.5.8-1.1 1-1.9.1-.5.2-.8.2-1h4.3v26h-5.2v-18h-6.2z"/><path d="m30.7 33.6c.7-1.2 1.6-2.1 2.9-2.7-1.3-.8-2.1-1.7-2.5-2.7s-.6-1.9-.6-2.7c0-1.9.7-3.5 2.1-4.8 1.4-1.3 3.4-2 6.1-2 2.6 0 4.6.7 6.1 2 1.4 1.3 2.1 3 2.1 4.8 0 .9-.2 1.8-.6 2.7s-1 1.8-2.3 2.5c1.3.7 2.3 1.7 2.9 2.9.6 1.2 1 2.5 1 4 0 2.2-.8 4.1-2.4 5.6-1.6 1.5-3.9 2.3-6.8 2.3-2.9 0-5.1-.8-6.6-2.3-1.5-1.5-2.2-3.4-2.2-5.6-.1-1.5.2-2.9.8-4m5.4 6.6c.7.7 1.6 1.1 2.8 1.1s2.1-.4 2.8-1.1 1-1.7 1-3c0-1.3-.3-2.3-1-3s-1.6-1-2.7-1-2.1.3-2.7 1c-.7.7-1 1.7-1 3-.2 1.3.1 2.3.8 3m.3-11.9c.6.6 1.4.9 2.4.9 1 0 1.9-.3 2.4-.9.6-.6.9-1.4.9-2.3 0-1-.3-1.8-.9-2.4-.6-.6-1.4-.9-2.4-.9-1 0-1.8.3-2.4.9-.6.6-.9 1.4-.9 2.4 0 .9.3 1.7.9 2.3"/></g><path transform="matrix(.7071-.7071.7071.7071-13.2553 31.9997)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f51f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f51f.svg
index 626472f..f717fa7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f51f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f51f.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m62 52c0 5.523-4.478 10-10 10h-40c-5.522 0-10-4.477-10-10v-40c0-5.523 4.478-10 10-10h40c5.522 0 10 4.477 10 10v40"/><path fill="#fff" d="M57,45.666C57,50.27,53.269,54,48.667,54H15.333C10.731,54,7,50.27,7,45.666V12.334
- C7,7.73,10.731,4,15.333,4h33.334C53.269,4,57,7.73,57,12.334V45.666z"/><g fill="#9aa0a5"><path d="m26 45h-6.107v-23.02c-2.232 2.088-4.863 3.631-7.893 4.631v-5.543c1.594-.521 3.326-1.512 5.195-2.967 1.871-1.457 3.152-3.156 3.85-5.098h4.955v32"/><path d="m41 13c3.281 0 5.848 1.084 7.695 3.25 2.203 2.564 3.305 6.816 3.305 12.762 0 5.928-1.109 10.188-3.328 12.779-1.832 2.139-4.391 3.209-7.672 3.209-3.297 0-5.955-1.174-7.973-3.516-2.02-2.345-3.03-6.525-3.03-12.537 0-5.9 1.109-10.148 3.328-12.74 1.834-2.139 4.391-3.207 7.672-3.207m0 4.979c-.785 0-1.486.232-2.104.695-.615.465-1.094 1.295-1.432 2.492-.447 1.551-.67 4.168-.67 7.846 0 3.676.199 6.201.6 7.576s.906 2.291 1.514 2.746c.609.455 1.307.684 2.092.684s1.486-.23 2.104-.691c.615-.465 1.094-1.295 1.432-2.494.447-1.539.672-4.145.672-7.82 0-3.678-.201-6.203-.602-7.58-.4-1.375-.904-2.293-1.514-2.758-.61-.464-1.307-.696-2.092-.696"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#d0d0d0"/><path d="M57,45.7c0,4.6-3.7,8.3-8.3,8.3H15.3C10.7,54,7,50.3,7,45.7V12.3C7,7.7,10.7,4,15.3,4h33.3
+ c4.6,0,8.3,3.7,8.3,8.3V45.7z" fill="#fff"/><g fill="#9aa0a5"><path d="m26 45h-6.1v-23c-2.2 2.1-4.9 3.6-7.9 4.6v-5.5c1.6-.5 3.3-1.5 5.2-3 1.9-1.5 3.2-3.2 3.9-5.1h5v32z"/><path d="m41 13c3.3 0 5.8 1.1 7.7 3.2 2.2 2.6 3.3 6.9 3.3 12.8 0 5.9-1.1 10.2-3.3 12.8-1.9 2.1-4.4 3.2-7.7 3.2-3.3 0-6-1.2-8-3.5-2-2.3-3-6.5-3-12.5 0-5.9 1.1-10.1 3.3-12.7 1.9-2.2 4.4-3.3 7.7-3.3m0 5c-.8 0-1.5.2-2.1.7-.6.5-1.1 1.3-1.4 2.5-.4 1.6-.7 4.2-.7 7.8 0 3.7.2 6.2.6 7.6s.9 2.3 1.5 2.7c.6.5 1.3.7 2.1.7s1.5-.2 2.1-.7c.6-.5 1.1-1.3 1.4-2.5.4-1.5.7-4.1.7-7.8 0-3.7-.2-6.2-.6-7.6-.4-1.4-.9-2.3-1.5-2.8-.6-.4-1.3-.6-2.1-.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f520.svg b/build/js/jsxc/lib/emojione/assets/svg/1f520.svg
index 12470e0..04d626d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f520.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f520.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m19.357 25.377l-1.248 4.623h-4.109l5.357-18h5.205l5.438 18h-4.266l-1.352-4.623h-5.03m4.452-3.041l-1.094-3.818c-.313-1.07-.623-2.402-.885-3.472h-.051c-.26 1.069-.521 2.431-.809 3.472l-1.041 3.818h3.88"/><path d="m36 12.367c.963-.211 2.904-.367 4.729-.367 2.232 0 3.6.235 4.773.998 1.131.654 1.943 1.859 1.943 3.462 0 1.576-.84 3.042-2.662 3.776v.056c1.85.55 3.217 2.073 3.217 4.355 0 1.601-.674 2.86-1.682 3.751-1.172 1.024-3.14 1.602-6.357 1.602-1.801 0-3.143-.131-3.961-.262v-17.371m3.627 6.77h1.195c1.922 0 2.953-.866 2.953-2.176 0-1.34-.934-2.048-2.59-2.048-.793 0-1.25.053-1.559.105v4.119m.001 7.847c.359.052.787.052 1.412.052 1.658 0 3.123-.685 3.123-2.546 0-1.785-1.465-2.492-3.289-2.492h-1.246v4.986"/><path d="m27.307 51.25c-.684.36-2.215.75-4.213.75-5.672 0-8.594-3.756-8.594-8.729 0-5.955 3.994-9.271 8.959-9.271 1.926 0 3.383.416 4.04.777l-.754 3.135c-.754-.338-1.803-.647-3.115-.647-2.947 0-5.236 1.89-5.236 5.774 0 3.495 1.949 5.699 5.26 5.699 1.121 0 2.361-.26 3.092-.571l.56 3.083"/><path d="m36 34.37c1.318-.234 3.03-.367 4.838-.367 3.01 0 4.957.604 6.484 1.891 1.643 1.363 2.678 3.541 2.678 6.661 0 3.384-1.104 5.722-2.633 7.165-1.666 1.547-4.201 2.283-7.303 2.283-1.855 0-3.17-.131-4.064-.265v-17.368m3.596 14.428c.307.082.799.082 1.242.082 3.242.025 5.357-1.969 5.357-6.191.023-3.673-1.904-5.615-4.98-5.615-.797 0-1.313.078-1.619.158v11.566"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m19.4 25.4l-1.3 4.6h-4.1l5.4-18h5.2l5.4 18h-4.3l-1.4-4.6c.1 0-4.9 0-4.9 0m4.4-3.1l-1.1-3.8c-.3-1.1-.6-2.4-.9-3.5h-.1c-.3 1.1-.5 2.4-.8 3.5l-1 3.8h3.9"/><path d="m36 12.4c1-.2 2.9-.4 4.7-.4 2.2 0 3.6.2 4.8 1 1.1.7 1.9 1.9 1.9 3.5 0 1.6-.8 3-2.7 3.8v.1c1.8.6 3.2 2.1 3.2 4.4 0 1.6-.7 2.9-1.7 3.8-1.2 1-3.1 1.6-6.4 1.6-1.8 0-3.1-.1-4-.3v-17.5zm3.6 6.7h1.2c1.9 0 3-.9 3-2.2 0-1.3-.9-2-2.6-2-.8 0-1.2.1-1.6.1v4.1m0 7.9c.4 0 .8 0 1.4 0 1.7 0 3.1-.7 3.1-2.5 0-1.8-1.5-2.5-3.3-2.5h-1.2v5"/><path d="m27.3 51.2c-.7.4-2.2.8-4.2.8-5.7 0-8.6-3.8-8.6-8.7 0-6 4-9.3 9-9.3 1.9 0 3.4.4 4 .8l-.8 3.1c-.8-.3-1.8-.6-3.1-.6-2.9 0-5.2 1.9-5.2 5.8 0 3.5 1.9 5.7 5.3 5.7 1.1 0 2.4-.3 3.1-.6l.5 3"/><path d="m36 34.4c1.3-.2 3-.4 4.8-.4 3 0 5 .6 6.5 1.9 1.6 1.4 2.7 3.5 2.7 6.7 0 3.4-1.1 5.7-2.6 7.2-1.7 1.5-4.2 2.3-7.3 2.3-1.9 0-3.2-.1-4.1-.3v-17.4m3.6 14.4c.3.1.8.1 1.2.1 3.2 0 5.4-2 5.4-6.2 0-3.7-1.9-5.6-5-5.6-.8 0-1.3.1-1.6.2v11.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f521.svg b/build/js/jsxc/lib/emojione/assets/svg/1f521.svg
index 0503a12..a127d19 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f521.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f521.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m23.934 27.742l-.2-1.151h-.067c-.718.917-1.836 1.409-3.133 1.409-2.214 0-3.534-1.69-3.534-3.521 0-2.982 2.551-4.416 6.42-4.392v-.164c0-.61-.313-1.481-1.99-1.481-1.119 0-2.306.4-3.02.871l-.626-2.305c.76-.442 2.258-1.01 4.25-1.01 3.646 0 4.809 2.255 4.809 4.955v3.993c0 1.104.046 2.16.158 2.794h-3.066m-.403-5.426c-1.788-.025-3.177.425-3.177 1.808 0 .918.583 1.364 1.343 1.364.851 0 1.544-.587 1.768-1.316.044-.188.066-.398.066-.611v-1.245"/><path d="m37 28.785c.039-.621.08-1.767.08-2.834v-10.951h2.991v5.417h.039c.57-.817 1.574-1.341 2.913-1.341 2.303 0 3.995 1.885 3.977 4.797 0 3.418-2.205 5.127-4.409 5.127-1.122 0-2.204-.408-2.894-1.534h-.04l-.118 1.319h-2.539m3.071-4.04c0 .194.02.369.058.523.196.798.887 1.399 1.752 1.399 1.281 0 2.068-.973 2.068-2.68 0-1.477-.67-2.643-2.068-2.643-.808 0-1.556.604-1.752 1.458-.038.175-.058.349-.058.543v1.4"/><path d="m46.919 35v10.953c0 1.066.039 2.194.081 2.834h-2.669l-.14-1.396h-.04c-.611 1.066-1.778 1.609-3.02 1.609-2.292 0-4.13-1.923-4.13-4.875-.019-3.203 2.02-5.05 4.328-5.05 1.185 0 2.112.406 2.549 1.065h.039v-5.143h3m-3 8.311c0-.154-.02-.37-.039-.525-.179-.793-.829-1.457-1.759-1.457-1.361 0-2.075 1.205-2.075 2.699 0 1.615.812 2.625 2.057 2.625.867 0 1.561-.584 1.736-1.417.061-.217.08-.429.08-.683v-1.242"/><path d="m25.976 47.48c-.544.284-1.574.519-2.746.519-3.189 0-5.23-2.26-5.23-5.883 0-3.364 1.979-6.117 5.657-6.117.808 0 1.693.164 2.343.447l-.488 2.659c-.363-.189-.907-.354-1.714-.354-1.615 0-2.666 1.343-2.645 3.224 0 2.117 1.21 3.222 2.705 3.222.726 0 1.29-.141 1.755-.351l.363 2.634"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m23.9 27.7l-.2-1.2h-.1c-.7.9-1.8 1.4-3.1 1.4-2.2 0-3.5-1.7-3.5-3.5 0-3 2.6-4.4 6.4-4.4v-.2c0-.6-.3-1.5-2-1.5-1.1 0-2.3.4-3 .9l-.6-2.2c.8-.4 2.3-1 4.2-1 3.6 0 4.8 2.3 4.8 5v4c0 1.1 0 2.2.2 2.8 0-.1-3.1-.1-3.1-.1m-.4-5.4c-1.8 0-3.2.4-3.2 1.8 0 .9.6 1.4 1.3 1.4.9 0 1.5-.6 1.8-1.3 0-.2.1-.4.1-.6v-1.3"/><path d="m37 28.8c0-.6.1-1.8.1-2.8v-11h3v5.4c.6-.8 1.6-1.3 2.9-1.3 2.3 0 4 1.9 4 4.8 0 3.4-2.2 5.1-4.4 5.1-1.1 0-2.2-.4-2.9-1.5l-.1 1.3h-2.6m3.1-4.1c0 .2 0 .4.1.5.2.8.9 1.4 1.8 1.4 1.3 0 2.1-1 2.1-2.7 0-1.5-.7-2.6-2.1-2.6-.8 0-1.6.6-1.8 1.5 0 .2-.1.4-.1.5v1.4"/><path d="m46.9 35v11c0 1.1 0 2.2.1 2.8h-2.7l-.1-1.4c-.6 1.1-1.8 1.6-3 1.6-2.3 0-4.1-1.9-4.1-4.9 0-3.2 2-5 4.3-5 1.2 0 2.1.4 2.5 1.1v-5.2h3m-3 8.3c0-.2 0-.4 0-.5-.2-.8-.8-1.5-1.8-1.5-1.4 0-2.1 1.2-2.1 2.7 0 1.6.8 2.6 2.1 2.6.9 0 1.6-.6 1.7-1.4.1-.2.1-.4.1-.7v-1.2"/><path d="m26 47.5c-.5.3-1.6.5-2.7.5-3.3 0-5.3-2.3-5.3-5.9 0-3.4 2-6.1 5.7-6.1.8 0 1.7.2 2.3.4l-.5 2.7c-.4-.2-.9-.4-1.7-.4-1.6 0-2.7 1.3-2.6 3.2 0 2.1 1.2 3.2 2.7 3.2.7 0 1.3-.1 1.8-.3l.3 2.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f522.svg b/build/js/jsxc/lib/emojione/assets/svg/1f522.svg
index 2928ffa..5710ed9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f522.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f522.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="M22.054,17.909H22l-3.33,1.271L18,16.723L22.619,15H26v14h-3.946V17.909z"/><path d="m35.5 29v-1.947l1.824-1.61c3.08-2.69 4.578-4.237 4.619-5.847 0-1.123-.693-2.01-2.32-2.01-1.215 0-2.277.593-3.02 1.146l-.93-2.31c1.063-.785 2.711-1.42 4.619-1.42 3.189 0 4.947 1.82 4.947 4.32 0 2.31-1.715 4.152-3.754 5.932l-1.301 1.057v.043h5.314v2.649h-10"/><path d="m19.675 45.667c.587.29 1.941.832 3.291.832 1.72 0 2.593-.79 2.593-1.812 0-1.334-1.396-1.938-2.856-1.938h-1.35v-2.271h1.287c1.109-.02 2.524-.415 2.524-1.562 0-.813-.696-1.415-2.09-1.415-1.155 0-2.375.478-2.963.812l-.675-2.293c.851-.52 2.549-1.02 4.378-1.02 3.03 0 4.707 1.521 4.707 3.373 0 1.439-.851 2.564-2.595 3.148v.04c1.703.293 3.074 1.522 3.074 3.293 0 2.395-2.2 4.146-5.794 4.146-1.832 0-3.377-.459-4.206-.959l.675-2.374"/><path d="m40.775 49v-3.338h-6.775v-2.132l5.788-8.53h4.38v8.205h1.832v2.457h-1.832v3.338h-3.393m0-5.795v-3.098c0-.843.047-1.703.117-2.608h-.092c-.493.905-.895 1.724-1.411 2.608l-2.048 3.057v.041h3.434"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m22.1 17.9l-3.4 1.3-.7-2.5 4.6-1.7h3.4v14h-3.9v-11.1"/><path d="m35.5 29v-1.9l1.8-1.6c3.1-2.7 4.6-4.2 4.6-5.8 0-1.1-.7-2-2.3-2-1.2 0-2.3.6-3 1.1l-.9-2.3c1.1-.8 2.7-1.4 4.6-1.4 3.2 0 4.9 1.8 4.9 4.3 0 2.3-1.7 4.2-3.8 5.9l-1.3 1.1h5.3v2.6h-9.9"/><path d="m19.7 45.7c.6.3 1.9.8 3.3.8 1.7 0 2.6-.8 2.6-1.8 0-1.3-1.4-1.9-2.9-1.9h-1.4v-2.3h1.3c1.1 0 2.5-.4 2.5-1.6 0-.8-.7-1.4-2.1-1.4-1.2 0-2.4.5-3 .8l-.6-2.3c.9-.5 2.5-1 4.4-1 3 0 4.7 1.5 4.7 3.4 0 1.4-.9 2.6-2.6 3.1 1.7.3 3.1 1.5 3.1 3.3 0 2.4-2.2 4.1-5.8 4.1-1.8 0-3.4-.5-4.2-1l.7-2.2"/><path d="m40.8 49v-3.3h-6.8v-2.1l5.8-8.5h4.4v8.2h1.8v2.5h-1.8v3.2h-3.4m0-5.8v-3.1c0-.8 0-1.7.1-2.6h-.1c-.5.9-.9 1.7-1.4 2.6l-2 3.1h3.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f523.svg b/build/js/jsxc/lib/emojione/assets/svg/1f523.svg
index 4aded68..7de6af1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f523.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f523.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m14 14h16v4h-16z"/><path d="m14 22v4h6v4h4v-4h6v-4z"/><path d="m49.52 18.986c-.322-.488-.736-.882-1.195-1.231-.131-.1-.197-.146-.33-.239l-.267-.213c-.172-.145-.332-.291-.482-.438-.597-.595-.972-1.214-1.146-1.746-.154-.458-.172-.841-.15-1.118h-3.234l-2.067 10.808c-.607-.172-1.284-.27-2-.27-2.568 0-4.648 1.223-4.648 2.731 0 1.507 2.08 2.73 4.648 2.73 2.425 0 4.414-1.091 4.627-2.484l1.916-10.02c.262.213.541.415.838.6.23.142.469.275.713.401.123.061.247.12.371.181.08.041.235.118.311.163.38.209.754.475 1.025.773.274.3.453.644.502 1.02.053.376-.023.779-.179 1.159-.315.767-.885 1.426-1.4 1.948-.524.523-1.021.92-1.375 1.188-.356.268-.573.406-.573.406s.238-.109.639-.328c.398-.22.964-.55 1.591-1.013.62-.468 1.331-1.06 1.86-1.905.259-.423.46-.925.483-1.48.029-.555-.154-1.137-.476-1.621"/><path d="m27.659 46.529l1.321-1.123-1.955-2.212-1.401 1.255-2.704-2.762c1.654-.606 2.82-2.031 2.82-3.688 0-2.205-2.066-4-4.604-4s-4.604 1.795-4.604 4c0 .902.35 1.732.934 2.404-1.494.974-2.466 2.52-2.466 4.265 0 2.939 2.752 5.332 6.137 5.332 1.623 0 3.17-.566 4.306-1.535l1.485 1.535h.012l2.06-2.098-1.341-1.373m-8.06-8.529c0-.735.688-1.333 1.535-1.333s1.536.598 1.536 1.333c0 .736-.689 1.334-1.536 1.334s-1.535-.598-1.535-1.334m1.535 9.334c-1.692 0-3.068-1.195-3.068-2.666 0-.971.602-1.819 1.494-2.285l3.891 4.02c-.579.578-1.423.926-2.317.926"/><path d="m50 34h-4l-12 16h4z"/><path d="m38 42c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4m0-6c-1.103 0-2 .897-2 2s.897 2 2 2 2-.897 2-2-.897-2-2-2"/><path d="m46 50c-2.206 0-4-1.793-4-4 0-2.206 1.794-4 4-4s4 1.794 4 4c0 2.207-1.794 4-4 4m0-6c-1.103 0-2 .898-2 2 0 1.104.897 2 2 2s2-.896 2-2c0-1.102-.897-2-2-2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m14 14h16v4h-16z"/><path d="m14 22v4h6v4h4v-4h6v-4z"/><path d="m49.5 19c-.3-.5-.7-.9-1.2-1.2-.1-.1-.2-.1-.3-.2l-.3-.2c-.2-.1-.3-.3-.5-.4-.6-.6-1-1.2-1.1-1.7-.2-.5-.2-.8-.2-1.1h-3.2l-2.1 10.8c-.6-.2-1.3-.3-2-.3-2.6 0-4.6 1.2-4.6 2.7s2.1 2.7 4.6 2.7c2.4 0 4.4-1.1 4.6-2.5l1.9-10c.3.2.5.4.8.6.2.1.5.3.7.4.1.1.2.1.4.2.1 0 .2.1.3.2.4.2.8.5 1 .8.3.3.5.6.5 1 .1.4 0 .8-.2 1.2-.3.8-.9 1.4-1.4 1.9-.5.5-1 .9-1.4 1.2-.4.3-.6.4-.6.4s.2-.1.6-.3c.4-.2 1-.6 1.6-1 .6-.5 1.3-1.1 1.9-1.9.3-.4.5-.9.5-1.5.2-.7 0-1.3-.3-1.8"/><path d="m27.7 46.5l1.3-1.1-2-2.2-1.4 1.3-2.7-2.8c1.7-.6 2.8-2 2.8-3.7 0-2.2-2.1-4-4.6-4s-4.6 1.8-4.6 4c0 .9.4 1.7.9 2.4-1.5 1-2.5 2.5-2.5 4.3 0 2.9 2.8 5.3 6.1 5.3 1.6 0 3.2-.6 4.3-1.5l1.5 1.5 2.1-2.1-1.2-1.4m-8.1-8.5c0-.7.7-1.3 1.5-1.3s1.5.6 1.5 1.3-.7 1.3-1.5 1.3-1.5-.6-1.5-1.3m1.5 9.3c-1.7 0-3.1-1.2-3.1-2.7 0-1 .6-1.8 1.5-2.3l3.9 4c-.5.7-1.4 1-2.3 1"/><path d="m50 34h-4l-12 16h4z"/><path d="m38 42c-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4s4 1.8 4 4c0 2.2-1.8 4-4 4m0-6c-1.1 0-2 .9-2 2 0 1.1.9 2 2 2s2-.9 2-2c0-1.1-.9-2-2-2"/><path d="m46 50c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4m0-6c-1.1 0-2 .9-2 2 0 1.1.9 2 2 2s2-.9 2-2c0-1.1-.9-2-2-2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f524.svg b/build/js/jsxc/lib/emojione/assets/svg/1f524.svg
index 0eef3ca..236a41c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f524.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f524.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m18.05 40.704l-.205-1.325h-.067c-.729 1.052-1.867 1.621-3.185 1.621-2.252 0-3.595-1.945-3.595-4.055 0-3.428 2.593-5.077 6.529-5.05v-.189c0-.705-.318-1.703-2.023-1.703-1.14 0-2.345.459-3.072.998l-.638-2.645c.774-.515 2.298-1.164 4.322-1.164 3.709 0 4.893 2.594 4.893 5.701v4.593c0 1.271.045 2.487.157 3.219h-3.116m-.409-6.245c-1.818-.025-3.229.489-3.229 2.082 0 1.053.591 1.564 1.364 1.564.865 0 1.571-.671 1.797-1.512.044-.215.068-.457.068-.701v-1.433"/><path d="m28.519 40.481c.038-.786.08-2.24.08-3.595v-13.886h3.042v6.869h.039c.582-1.034 1.603-1.699 2.961-1.699 2.346 0 4.066 2.389 4.046 6.083 0 4.333-2.243 6.501-4.484 6.501-1.14 0-2.242-.519-2.942-1.945h-.038l-.121 1.673h-2.583m3.122-5.122c0 .246.02.468.06.665.2 1.01.901 1.773 1.781 1.773 1.301 0 2.103-1.233 2.103-3.398 0-1.871-.681-3.348-2.103-3.348-.818 0-1.581.762-1.781 1.846-.04.223-.06.442-.06.689v1.773"/><path d="m52.978 40.4c-.554.326-1.603.596-2.792.596-3.244 0-5.319-2.597-5.319-6.769 0-3.873 2.01-7.04 5.751-7.04.82 0 1.724.19 2.383.514l-.494 3.063c-.37-.219-.922-.409-1.746-.409-1.643 0-2.713 1.545-2.69 3.712 0 2.435 1.233 3.709 2.752 3.709.741 0 1.314-.164 1.783-.406l.372 3.03"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m18.1 40.7l-.2-1.3h-.1c-.7 1.1-1.9 1.6-3.2 1.6-2.3 0-3.6-1.9-3.6-4.1 0-3.4 2.6-5.1 6.5-5.1v-.2c0-.7-.3-1.7-2-1.7-1.1 0-2.3.5-3.1 1l-.6-2.6c.8-.5 2.3-1.2 4.3-1.2 3.7 0 4.9 2.6 4.9 5.7v4.6c0 1.3 0 2.5.2 3.2h-3.1zm-.5-6.2c-1.8 0-3.2.5-3.2 2.1 0 1.1.6 1.6 1.4 1.6.9 0 1.6-.7 1.8-1.5 0-.2.1-.5.1-.7-.1-.1-.1-1.5-.1-1.5"/><path d="m28.5 40.5c0-.8.1-2.2.1-3.6v-13.9h3v6.9c.6-1 1.6-1.7 3-1.7 2.3 0 4.1 2.4 4 6.1 0 4.3-2.2 6.5-4.5 6.5-1.1 0-2.2-.5-2.9-1.9l-.1 1.7-2.6-.1m3.1-5.1c0 .2 0 .5.1.7.2 1 .9 1.8 1.8 1.8 1.3 0 2.1-1.2 2.1-3.4 0-1.9-.7-3.3-2.1-3.3-.8 0-1.6.8-1.8 1.8 0 .2-.1.4-.1.7 0-.1 0 1.7 0 1.7"/><path d="m53 40.4c-.6.3-1.6.6-2.8.6-3.2 0-5.3-2.6-5.3-6.8 0-3.9 2-7 5.8-7 .8 0 1.7.2 2.4.5l-.5 3.1c-.4-.2-.9-.4-1.7-.4-1.6 0-2.7 1.5-2.7 3.7 0 2.4 1.2 3.7 2.8 3.7.7 0 1.3-.2 1.8-.4l.2 3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f525.svg b/build/js/jsxc/lib/emojione/assets/svg/1f525.svg
index 94b859c..23dd30a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f525.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f525.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff9d33" d="m56.963 26.17c0 0-3.04 2.77-8.117 6.074-1.388-8.08-5.229-18.06-12.841-30.24 0 0-2.487 13.07-10.774 25.436-3.617-5.598-5.168-9.992-5.168-9.992-26.08 26.08-4.462 44.556 9.114 44.556 17.424 0 32.758-8.361 27.786-35.832"/><path fill="#ffce31" d="m46.724 49.43c1.51-3.322 2.554-7.572 2.796-12.994 0 0-2.127 1.848-5.682 4.051-.972-5.389-3.66-12.04-8.988-20.17 0 0-1.742 8.715-7.542 16.961-2.531-3.732-3.617-6.662-3.617-6.662-4.333 6.824-6.03 12.232-6.123 16.459-2.396-.875-3.865-1.631-3.865-1.631 4.095 12.227 12.572 14.883 16.368 14.883 6.783 0 13.689-2.01 20.534-11.707-.001-.001-1.504.415-3.881.806"/><path fill="#ffdf85" d="m21.932 43.854c0 0 2.794 3.826 4.922 2.902 0 0 4.04-6.301 9.839-9.803 0 0-1.191 9.605.177 11.303 1.817 2.258 6.737-2.504 6.737-2.504 0 5.676-6.212 12.828-11.766 12.828-5.514 0-13.335-6.156-9.909-14.726"/><g fill="#ff9d33"><path d="m49.778 18.12c2.095-3.041 3.518-6.158 3.518-6.158 3.512 5.777 1.44 9.288-.104 10.436-2.07 1.542-5.83-.763-3.414-4.278"/><path d="m11.566 17.13c-2.05-3.525-2.28-7.919-2.28-7.919-5.01 7.549-3.05 11.657-1.384 12.901 2.234 1.67 6.03-.909 3.664-4.982"/><path d="m23.21 9.291c.256-2.369-.734-4.826-.734-4.826 4.747 3.064 4.691 5.732 4.071 6.771-.834 1.395-3.632.791-3.337-1.945"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 26.2c0 0-3 2.8-8.1 6.1-1.4-8.1-5.3-18.1-12.9-30.3 0 0-2.5 13.1-10.8 25.4-3.6-5.6-5.2-10-5.2-10-26 26.1-4.4 44.6 9.2 44.6 17.4 0 32.7-8.4 27.8-35.8" fill="#ff9d33"/><path d="m46.7 49.4c1.5-3.3 2.6-7.6 2.8-13 0 0-2.1 1.8-5.7 4.1-1-5.4-3.7-12-9-20.2 0 0-1.7 8.7-7.5 17-2.5-3.7-3.6-6.7-3.6-6.7-4.3 6.8-6 12.2-6.1 16.5-2.4-.9-3.9-1.6-3.9-1.6 4.1 12.2 12.6 14.9 16.4 14.9 6.8 0 13.7-2 20.5-11.7 0-.1-1.5.3-3.9.7" fill="#ffce31"/><path d="m21.9 43.9c0 0 2.8 3.8 4.9 2.9 0 0 4-6.3 9.8-9.8 0 0-1.2 9.6.2 11.3 1.8 2.3 6.7-2.5 6.7-2.5 0 5.7-6.2 12.8-11.8 12.8-5.4 0-13.2-6.2-9.8-14.7" fill="#ffdf85"/><g fill="#ff9d33"><path d="m49.8 18.1c2.1-3 3.5-6.2 3.5-6.2 3.5 5.8 1.4 9.3-.1 10.4-2.1 1.6-5.8-.7-3.4-4.2"/><path d="m11.6 17.1c-2.1-3.5-2.3-7.9-2.3-7.9-5 7.5-3.1 11.7-1.4 12.9 2.2 1.7 6-.9 3.7-5"/><path d="m23.2 9.3c.3-2.4-.7-4.8-.7-4.8 4.7 3.1 4.7 5.7 4.1 6.8-.9 1.3-3.7.7-3.4-2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f526.svg b/build/js/jsxc/lib/emojione/assets/svg/1f526.svg
index 1e3d1cc..1d9dcdf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f526.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f526.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m24.373 39.627c-7.556-7.557-16.722-10.663-20.613-7.03 5.217-5.04 12.546-6.609 19.08-4.705l25.896-25.895c3.048.891 5.923 2.536 8.327 4.94 2.402 2.404 4.05 5.278 4.94 8.327l-25.895 25.893c1.906 6.532.339 13.86-4.704 19.08 3.634-3.891.529-13.06-7.03-20.612"/><path fill="#676e72" d="m24.373 39.626c-5.658-5.66-13.284-7.226-17.14-3.559 5.196-5.064 11.801-7.354 17.272-6.509l25.895-25.894c2.554.396 4.861 1.475 6.661 3.275s2.878 4.107 3.273 6.661l-25.894 25.894c.846 5.473-1.443 12.08-6.507 17.274 3.665-3.86 2.101-11.484-3.558-17.14"/><path fill="#fef500" d="m10.548 53.45c-7.61-7.608-10.71-16.853-6.952-20.697.053-.054.11-.104.165-.156 3.891-3.635 13.06-.53 20.612 7.03 7.557 7.556 10.662 16.721 7.03 20.612-.053.054-.103.109-.156.164-3.843 3.757-13.09.66-20.696-6.95"/><path fill="#fff7ab" d="m17.13 46.875c-3.662-3.662-5.154-8.111-3.345-9.962.026-.024.051-.049.079-.075 1.872-1.749 6.282-.254 9.921 3.384 3.634 3.636 5.13 8.05 3.382 9.918-.027.027-.051.054-.077.079-1.85 1.808-6.3.317-9.96-3.344"/><path fill="#fff" d="m17.909 46.09c-1.714-1.715-2.413-3.799-1.567-4.665.013-.013.024-.023.037-.035.877-.819 2.942-.12 4.647 1.584 1.703 1.702 2.402 3.767 1.583 4.646-.013.012-.023.024-.035.037-.867.845-2.949.148-4.665-1.567"/><path transform="matrix(-.7072.707-.707-.7072 67.4 4.355)" fill="#3e4347" d="m28.539 14.864h8.52v2.541h-8.52z"/><path transform="matrix(-.7071.7072-.7072-.7071 67.836 3.3)" fill="#676e72" d="m30.847 14.43h4.775v2.542h-4.775z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 39.6c-7.6-7.6-16.7-10.7-20.6-7 5.2-5 12.5-6.6 19.1-4.7l25.8-25.9c3 .9 5.9 2.5 8.3 4.9 2.4 2.4 4 5.3 4.9 8.3l-25.8 26c1.9 6.5.3 13.9-4.7 19.1 3.6-4 .5-13.1-7-20.7" fill="#3e4347"/><path d="m24.4 39.6c-5.7-5.7-13.3-7.2-17.1-3.6 5.2-5.1 11.8-7.4 17.3-6.5l25.8-25.8c2.6.4 4.9 1.5 6.7 3.3s2.9 4.1 3.3 6.7l-26 25.8c.8 5.5-1.4 12.1-6.5 17.3 3.7-3.9 2.1-11.5-3.5-17.2" fill="#676e72"/><path d="m10.5 53.5c-7.6-7.6-10.7-16.9-7-20.7.1-.1.1-.1.2-.2 3.9-3.6 13.1-.5 20.6 7 7.6 7.6 10.7 16.7 7 20.6-.1.1-.1.1-.2.2-3.7 3.8-12.9.7-20.6-6.9" fill="#fef500"/><path d="m17.1 46.9c-3.7-3.7-5.2-8.1-3.3-10 0 0 .1 0 .1-.1 1.9-1.7 6.3-.3 9.9 3.4 3.6 3.6 5.1 8 3.4 9.9 0 0-.1.1-.1.1-1.9 1.8-6.3.3-10-3.3" fill="#fff7ab"/><path d="m17.9 46.1c-1.7-1.7-2.4-3.8-1.6-4.7.9-.8 2.9-.1 4.6 1.6 1.7 1.7 2.4 3.8 1.6 4.6-.8.9-2.9.2-4.6-1.5" fill="#fff"/><path transform="matrix(.7072-.707.707.7072-1.803 27.9134)" fill="#3e4347" d="m28.5 14.9h8.5v2.5h-8.5z"/><path transform="matrix(.7071-.7072.7072.7071-1.368 28.0995)" fill="#676e72" d="m30.8 14.4h4.8v2.5h-4.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f527.svg b/build/js/jsxc/lib/emojione/assets/svg/1f527.svg
index 38e00f4..5ca5cf3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f527.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f527.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m47.35 47.35l7.478-2 8.807 8.811c1.027-4.229-.109-8.875-3.413-12.176-3.301-3.301-7.946-4.438-12.174-3.413l-22.619-22.614c1.026-4.231-.112-8.877-3.413-12.178-3.302-3.303-7.948-4.436-12.174-3.413l8.81 8.812-2 7.475-7.477 2-8.809-8.812c-1.026 4.229.11 8.875 3.414 12.175 3.301 3.301 7.946 4.439 12.174 3.413l22.618 22.614c-1.026 4.231.112 8.877 3.413 12.179 3.302 3.303 7.948 4.436 12.174 3.412l-8.81-8.811 2.01-7.474"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47.4 47.4l7.5-2 8.8 8.8c1-4.2-.1-8.9-3.4-12.2-3.3-3.3-7.9-4.4-12.2-3.4l-22.7-22.6c1-4.2-.1-8.9-3.4-12.2-3.3-3.3-7.9-4.4-12.2-3.4l8.8 8.8-2 7.5-7.5 2-8.7-8.9c-1 4.2.1 8.9 3.4 12.2 3.3 3.3 7.9 4.4 12.2 3.4l22.6 22.6c-1 4.2.1 8.9 3.4 12.2 3.3 3.3 7.9 4.4 12.2 3.4l-8.8-8.8 2-7.4" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f528.svg b/build/js/jsxc/lib/emojione/assets/svg/1f528.svg
index 8955fce..0285e2d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f528.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f528.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m28.792 21.93l-5.582 5.755-5.548-5.723 5.578-5.755z"/><g fill="#94989b"><path d="m16.716 5.068l-9.853 10.163c-.361.372-.361.975 0 1.347l3.664 3.78.043.046 3.666 3.78c.359.372.945.372 1.305 0l9.855-10.165c.359-.371.359-.974 0-1.346l-7.375-7.605c-.361-.372-.943-.372-1.305 0"/><path d="m.271 22.03c-.361.372-.361.975 0 1.347l7.375 7.606c.357.372.943.372 1.305 0 0 0 2.033-2.122 2.076-2.177l-8.647-8.919c-.052.046-2.109 2.143-2.109 2.143"/></g><g fill="#3e4347"><path d="m10.527 20.358l-3.664-3.78c0 0 1.205 2.11-1.959 2.49-1.273.153-2.07.441-2.523.819l8.646 8.919c.367-.468.646-1.289.793-2.604.371-3.265 2.416-2.02 2.416-2.02l-3.666-3.78-.043-.045"/><path d="m39.573 4.288c-10.06-10.295-21.16 1.183-21.16 1.183l6.543 6.746c0 0 6.289-8.465 14.242-6.124.924.272 1.746.74 1.98.501.316-.326-.895-1.579-1.604-2.306"/></g><path fill="#f2b200" d="m26 24.807l-3.607 3.724c0 0 1.863 3 5.063 6.297 3.529 3.642 8.193 5.684 12.851 10.488 7.01 7.227 12.836 14.985 14.949 17.898.797 1.099.924.996 1.898-.01l3.039-3.133-34.19-35.26"/><path fill="#ffce31" d="m26 24.807l3.611-3.723c0 0 2.908 1.923 6.105 5.222 3.531 3.64 5.512 8.452 10.17 13.256 7.01 7.227 14.529 13.238 17.354 15.417 1.064.823.965.953-.01 1.96l-3.037 3.133-34.19-35.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m28.8 21.9l-5.6 5.8-5.5-5.7 5.5-5.8z"/><g fill="#94989b"><path d="m16.7 5.1l-9.8 10.1c-.4.4-.4 1 0 1.3l3.7 3.8 3.7 3.8c.4.4.9.4 1.3 0l9.8-10.1c.4-.4.4-1 0-1.3l-7.4-7.6c-.3-.4-.9-.4-1.3 0"/><path d="m.3 22c-.4.4-.4 1 0 1.3l7.3 7.7c.4.4 1 .4 1.4 0 0 0 2-2.1 2.1-2.2l-8.6-8.9c-.2 0-2.2 2.1-2.2 2.1"/></g><g fill="#3e4347"><path d="m10.5 20.4l-3.7-3.8c0 0 1.2 2.1-2 2.5-1.3.2-2.1.4-2.5.8l8.6 8.9c.4-.5.6-1.3.8-2.6.4-3.3 2.4-2 2.4-2l-3.6-3.8"/><path d="m39.6 4.3c-10.1-10.3-21.2 1.2-21.2 1.2l6.5 6.7c0 0 6.3-8.5 14.2-6.1.9.3 1.7.7 2 .5.4-.3-.8-1.6-1.5-2.3"/></g><path d="m26 24.8l-3.6 3.7c0 0 1.9 3 5.1 6.3 3.5 3.6 8.2 5.7 12.9 10.5 7 7.2 12.8 15 14.9 17.9.8 1.1.9 1 1.9 0l3-3.1-34.2-35.3" fill="#f2b200"/><path d="m26 24.8l3.6-3.7c0 0 2.9 1.9 6.1 5.2 3.5 3.6 5.5 8.5 10.2 13.3 7 7.2 14.5 13.2 17.4 15.4 1.1.8 1 1 0 2l-3 3.1-34.3-35.3" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f529.svg b/build/js/jsxc/lib/emojione/assets/svg/1f529.svg
index 9b15b60..b434447 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f529.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f529.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b6c0c6"><path d="m58.737 63.999h5.263v-3.36z"/><path d="m63.54 54.19l-45.13-45.1-9.34 9.339 44.44 44.41-1.37-1.371z"/></g><g fill="#7a8891"><path d="m64 54.638l-.45-.448h-.01l.46.463z"/><path d="m53.51 62.841l1.161 1.159z"/><path d="m58.737 63.999l5.263-3.359v-5.987l-.46-.463-11.4 7.28 1.37 1.371 1.161 1.159z"/><path d="m55.3 45.968l-11.399 7.282 4.109 4.11 11.41-7.28z"/><path d="m47.07 37.746l-11.412 7.284 4.118 4.11 11.404-7.282z"/><path d="m30.614 21.278l-11.414 7.28 4.122 4.114 11.406-7.282z"/><path d="m38.836 29.51l-11.405 7.285 4.115 4.114 11.409-7.282z"/><path d="m22.384 13.04l-11.406 7.284 4.112 4.114 11.415-7.278z"/></g><path fill="#4f585b" d="m7.05 17.863l-7.05 7.05 10.974 10.965 7.05-7.04z"/><path fill="#8b979e" d="M17.88 7.04 7.05 17.863 18.02 28.831 28.851 18.01z"/><path fill="#cedae0" d="m24.925 0l-7.05 7.04 10.971 10.97 7.05-7.05z"/><path fill="#4f585b" d="m28.329 39.13l-7.05 7.05 10.979 10.97 7.04-7.05z"/><path fill="#8b979e" d="M39.16 28.313 28.329 39.13 39.3 50.1 50.13 39.28z"/><path fill="#cedae0" d="m46.21 21.269l-7.05 7.04 10.97 10.967 7.05-7.04z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b6c0c6"><path d="m58.7 64h5.3v-3.4z"/><path d="m63.5 54.2l-45.1-45.1-9.3 9.3 44.4 44.4-1.4-1.3z"/></g><g fill="#7a8891"><path d="m64 54.6l-.5-.4.5.5z"/><path d="m53.5 62.8l1.2 1.2z"/><path d="m58.7 64l5.3-3.4v-5.9l-.5-.5-11.4 7.3 1.4 1.3 1.2 1.2z"/><path d="m55.3 46l-11.4 7.3 4.1 4.1 11.4-7.3z"/><path d="m47.1 37.7l-11.4 7.3 4.1 4.1 11.4-7.2z"/><path d="m30.6 21.3l-11.4 7.3 4.1 4.1 11.4-7.3z"/><path d="m38.8 29.5l-11.4 7.3 4.1 4.1 11.5-7.3z"/><path d="m22.4 13l-11.4 7.3 4.1 4.1 11.4-7.2z"/></g><path fill="#4f585b" d="m7.1 17.9l-7.1 7 11 11 7-7.1z"/><path fill="#8b979e" d="M17.9 7 7.1 17.9 18 28.8 28.9 18z"/><path fill="#cedae0" d="m24.9 0l-7 7 11 11 7-7z"/><path fill="#4f585b" d="m28.3 39.1l-7 7.1 11 10.9 7-7z"/><path fill="#8b979e" d="m39.2 28.3l-10.9 10.8 11 11 10.8-10.8z"/><path fill="#cedae0" d="m46.2 21.3l-7 7 10.9 11 7.1-7.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f52a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f52a.svg
index 6f2c08a..cbf2319 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f52a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f52a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6dfe3" d="m30.556 24.272c0 0 24 21.852 31.444 37.726 0 0-20.09.633-43.28-22.467 0 0 7.645-8.097 6.145-9.59l5.692-5.669"/><path fill="#aebabf" d="m20.927 37.04c-1.205 1.423-2.208 2.487-2.208 2.487 23.19 23.1 43.28 22.467 43.28 22.467-.469-1-1.01-2.026-1.596-3.067-6.677-.891-22.19-4.815-39.477-21.887"/><path fill="#333" d="m30.81 23.514l-21.599-21.514-6.962 6.934c0 0-.493.47-.092.87.896.894 1.546.545 2.354.724 1.107.246 2.362 1.494 2.362 1.494l17.989 17.92 5.945-5.922c.144-.14.144-.368.003-.506"/><path fill="#d0d0d0" d="m9.104 8.07c-.345.341-.9.34-1.241-.001-.341-.34-.344-.894 0-1.235.342-.342.897-.342 1.241-.001.343.342.342.895 0 1.237"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m30.6 24.3c0 0 24 21.9 31.4 37.7 0 0-20.1.6-43.3-22.5 0 0 7.6-8.1 6.1-9.6l5.8-5.6" fill="#d6dfe3"/><path d="M20.9,37c-1.2,1.4-2.2,2.5-2.2,2.5C41.9,62.6,62,62,62,62c-0.5-1-1-2-1.6-3.1C53.7,58,38.2,54.1,20.9,37z" fill="#aebabf"/><path d="m30.8 23.5l-21.6-21.5-7 6.9c0 0-.5.5-.1.9.9.9 1.5.5 2.4.7 1.1.3 2.4 1.5 2.4 1.5l18 17.9 5.9-5.9c.2-.1.2-.3 0-.5" fill="#333"/><path d="m9.1 8.1c-.3.3-.9.3-1.2 0-.3-.3-.3-.9 0-1.2.3-.3.9-.3 1.2 0 .3.3.3.8 0 1.2" fill="#d0d0d0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f52b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f52b.svg
index c115ec8..7ce6a43 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f52b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f52b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dff4f4" d="m53.43 24.688c0 0 1.042-5.113 3.896-1.218h.986c0 0-.286-3.03-2.086-3.226-3.65-.396-2.77 2.861-5.814.73-3.046-2.129 3.02 3.714 3.02 3.714"/><path fill="#87989b" d="m54.41 24.688c0 0 1.043-5.113 3.896-1.218l.576-1.065c0 0-1.318-2.465-3.102-2.13-1.782.335-1.344 2.83-4.389.699-3.043-2.129 3.02 3.714 3.02 3.714"/><path fill="#abc2c6" d="m54.35 28.645l.99-3.987-4.689-5.143-1.097 5.842z"/><path fill="#dff4f4" d="m6.344 7l.439-1.872.914-.731c1.219.37 4.832 1.5 5.927 2.603h-7.28"/><g fill="#5a6a6d"><path d="m7.698 7v-2.604c0 0 4.423-.274 7.281 2.603h-7.281"/><path d="m47.3 13.276v-1.552c0 0 1.594-.251 1.594 2.134-.001 2.385-1.594-.582-1.594-.582"/></g><g fill="#dff4f4"><path d="m46 12.05l1.3-.326v1.552l-1.424-.115z"/><path d="m9.813 24.17l4.066 3.987 10.734.121 3.113 2.588v2.859h6.302c0 0 5.221-4.488 9.269 1.883 2.099 3.302 9.306 0 8.554-4.971h2.803v-1.477c0 0-6.191-1-6.594-3.743-.403-2.738.256-10.315.256-10.315s-9.926-8.698-41.589-8.46l-3.105 1.096v1.946l6.191 14.486"/></g><path fill="#87989b" d="m54.784 30.3h-10.404v12.443c0 0 4.977.273 5.983 7.447.755 5.389-2.761 5.801-2.761 5.801v3.625h11.01c0 0 3.518-.977 3.518-5.803 0-3.26 0-8.855-6.109-15.554-1.913-2.095-1.233-7.959-1.233-7.959"/><path fill="#293030" d="m56.659 29.28h-10.404v13.456c0 0 4.977.273 5.982 7.447.756 5.389-2.761 5.801-2.761 5.801v3.625h11.01c0 0 3.519-.977 3.519-5.803 0-3.26 0-8.855-6.109-15.554-1.913-2.095-1.233-8.972-1.233-8.972"/><path fill="#dff4f4" d="m36.05 32.12l-.578 1.923c6.175 3.357 1.13 8.189 1.13 8.189 1.885 0 1.885 0 1.885 0s2.615-1.676 6.974-7.36c1.328-1.729-4.391-5.788-9.411-2.752"/><path fill="#475152" d="m37.943 32.12l-.579 1.923c6.177 3.357 1.133 8.189 1.133 8.189 4.969 0 3.266-5.795 8.859-7.36 2.34-.653-4.392-5.788-9.413-2.752"/><path fill="#dff4f4" d="m29.666 33.729c0 0-.127 2.986.838 6.451.962 3.449 3.72 4.645 7.212 4.645 4.152 0 7.43-4.149 8.06-6.29h-1.41c0 0-2.171 4.919-6.629 4.919-4.246 0-7.266-2.709-4.623-9.725h-3.451"/><path fill="#475152" d="m31.15 33.726c0 0-.199 2.99.766 6.455.963 3.449 3.722 4.645 7.213 4.645 4.152 0 5.733-2.742 6.652-3.918v-2.372c0 0-2.172 4.919-6.629 4.919-4.246 0-7.267-2.709-4.623-9.725l-3.379-.004"/><path fill="#87989b" d="m12.918 24.17l4.067 3.987 10.733.121 3.114 2.588v2.859h6.301c0 0 5.221-4.488 9.269 1.883 2.098 3.302 9.306 0 8.554-4.971h2.803v-1.477c0 0-6.191-1-6.594-3.743-.403-2.738.256-10.315.256-10.315s-10.844-9.252-44.694-8.46v3.042l6.191 14.486"/><path fill="#abc2c6" d="m50.561 16.974c-5.04-2.347-11.489-3.94-18.01-5.02 1.971.414 3.382 3.069 3.216 6.227-.155 2.964-3.528 11.529-3.528 11.529 6.577-.182 13.633 1.463 13.633 1.463 11.851-6.711 4.685-14.198 4.685-14.198"/><path fill="#5a6a6d" d="m52.03 19.277c-5.04-1.249-8.711-2.1-15.227-2.675 0 0-.346 5.767-.512 7.448l11.832 2.543c2.107.625.772 2.539.772 2.539 6.319-4.882 3.135-9.855 3.135-9.855"/><path fill="#dff4f4" d="m33.03 28.888l2.16-1.858 2.05-4.564.297-3.712-1.207-4.624-.454-1.839-3.322-.339-.314 17.756z"/><g fill="#293030"><path d="m35.69 24.458c-.434 1.165-1.495 1.925-2.371 1.7-.875-.227-1.234-1.352-.799-2.517.435-1.164 1.497-1.924 2.373-1.699s1.233 1.352.797 2.516"/><path d="m36.428 16.524c.091 1.215-.524 2.237-1.372 2.28-.848.044-1.609-.908-1.699-2.123-.09-1.216.523-2.238 1.372-2.281s1.609.908 1.699 2.124"/></g><g fill="#abc2c6"><path d="m32.554 11.952c-.038-.007-.077-.013-.114-.02-.108-.018-.217-.034-.328-.038.111.004.22.02.328.038-14.618-2.414-29.523-2.262-29.523-2.262l.582 2.957c6.701.071 18.921.324 31.352 1.212-.573-1-1.372-1.693-2.297-1.887"/><path d="m5.403 22.313l.646 3.289c0 0 25.523-1.59 26.23-1.525 1.042-.288 1.971-1.189 2.61-2.454-5.338-.167-18.715-.421-29.49.69"/></g><g fill="#87989b"><path d="m35.2 14.551c-.104-.253-.221-.489-.349-.712-12.431-.888-24.65-1.142-31.351-1.213l.241 1.229c6.814.042 19.05.189 31.459.696"/><path d="m4.82 19.349l.583 2.963c10.775-1.111 24.15-.856 29.49-.691.393-.777.671-1.691.804-2.683-4.743-.089-19.42-.292-30.877.411"/></g><path fill="#5a6a6d" d="m35.2 14.551c-12.404-.507-24.645-.654-31.459-.696l1.08 5.494c11.457-.703 26.13-.5 30.876-.411.033-.249.061-.502.074-.76.071-1.345-.147-2.599-.571-3.627"/><path fill="#dff4f4" d="m8.152 17.193c.832 4.423-.255 8.238-2.429 8.521-2.174.282-4.611-3.075-5.444-7.5-.832-4.423.256-8.238 2.43-8.521 2.173-.28 4.611 3.077 5.443 7.5"/><path fill="#293030" d="m6.984 17.345c.585 3.111-.18 5.795-1.708 5.993-1.529.198-3.243-2.164-3.829-5.274-.585-3.111.18-5.794 1.708-5.993 1.53-.198 3.244 2.162 3.829 5.274"/><path fill="#5a6a6d" d="m33.03 28.888c-.33-.574-.297-2.62 2.16-1.857l9.436.812-2.02 1.978-9.581-.933"/><path fill="#87989b" d="m37.24 22.466c-1.297-.017-1.773-3.435.294-3.712l9.691 1.822-.604 3.674-9.381-1.784"/><path fill="#5a6a6d" d="m36.33 14.13c-1.436.657-.938-1.274-.452-1.838l9.03 2.42 1.466 1.892-10.04-2.474"/><path fill="#dff4f4" d="m52.37 32.815c-.311 1.071-1.431 1.88-2.504 1.808-1.073-.071-1.693-.997-1.383-2.067s1.431-1.877 2.504-1.805c1.074.07 1.692.996 1.383 2.064"/><path fill="#87989b" d="m52.923 34.13l-.383.301-4.607-3.191.387-.298z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53.4 24.7c0 0 1-5.1 3.9-1.2h1c0 0-.3-3-2.1-3.2-3.7-.4-2.8 2.9-5.8.7-3-2.2 3 3.7 3 3.7" fill="#dff4f4"/><path d="m54.4 24.7c0 0 1-5.1 3.9-1.2l.6-1.1c0 0-1.3-2.5-3.1-2.1-1.8.3-1.3 2.8-4.4.7-3-2.2 3 3.7 3 3.7" fill="#87989b"/><path fill="#abc2c6" d="m54.4 28.6l.9-3.9-4.6-5.2-1.1 5.9z"/><path d="m6.3 7l.4-1.9.9-.7c1.2.4 4.8 1.5 5.9 2.6h-7.2" fill="#dff4f4"/><g fill="#5a6a6d"><path d="m7.7 7v-2.6c0 0 4.4-.3 7.3 2.6h-7.3"/><path d="m47.3 13.3v-1.6c0 0 1.6-.3 1.6 2.1 0 2.4-1.6-.5-1.6-.5"/></g><g fill="#dff4f4"><path d="m46 12.1l1.3-.4v1.6l-1.4-.1z"/><path d="m9.8 24.2l4.1 4 10.7.1 3.1 2.6v2.9h6.3c0 0 5.2-4.5 9.3 1.9 2.1 3.3 9.3 0 8.6-5h2.8v-1.5c0 0-6.2-1-6.6-3.7-.4-2.7.3-10.3.3-10.3s-10-8.8-41.7-8.6l-3.1 1.1v1.9l6.2 14.6"/></g><path d="m54.8 30.3h-10.4v12.4c0 0 5 .3 6 7.4.8 5.4-2.8 5.8-2.8 5.8v3.6h11c0 0 3.5-1 3.5-5.8 0-3.3 0-8.9-6.1-15.6-1.9-1.9-1.2-7.8-1.2-7.8" fill="#87989b"/><path d="m56.7 29.3h-10.4v13.5c0 0 5 .3 6 7.4.8 5.4-2.8 5.8-2.8 5.8v3.6h11c0 0 3.5-1 3.5-5.8 0-3.3 0-8.9-6.1-15.6-1.9-2-1.2-8.9-1.2-8.9" fill="#293030"/><path d="m36.1 32.1l-.6 1.9c6.2 3.4 1.1 8.2 1.1 8.2 1.9 0 1.9 0 1.9 0s2.6-1.7 7-7.4c1.3-1.7-4.4-5.7-9.4-2.7" fill="#dff4f4"/><path d="m37.9 32.1l-.5 1.9c6.2 3.4 1.1 8.2 1.1 8.2 5 0 3.3-5.8 8.9-7.4 2.3-.6-4.4-5.7-9.5-2.7" fill="#475152"/><path d="m29.7 33.7c0 0-.1 3 .8 6.5 1 3.4 3.7 4.6 7.2 4.6 4.2 0 7.4-4.1 8.1-6.3h-1.4c0 0-2.2 4.9-6.6 4.9-4.2 0-7.3-2.7-4.6-9.7-.1 0-3.5 0-3.5 0" fill="#dff4f4"/><path d="m31.1 33.7c0 0-.2 3 .8 6.5 1 3.4 3.7 4.6 7.2 4.6 4.2 0 5.7-2.7 6.7-3.9v-2.4c0 0-2.2 4.9-6.6 4.9-4.2 0-7.3-2.7-4.6-9.7h-3.5" fill="#475152"/><path d="m12.9 24.2l4.1 4 10.7.1 3.1 2.6v2.9h6.3c0 0 5.2-4.5 9.3 1.9 2.1 3.3 9.3 0 8.6-5h2.8v-1.5c0 0-6.2-1-6.6-3.7-.4-2.7.3-10.3.3-10.3s-10.9-9.4-44.8-8.6v3l6.2 14.6" fill="#87989b"/><path d="m50.6 17c-5-2.3-11.5-3.9-18-5 2 .4 3.4 3.1 3.2 6.2-.2 3-3.5 11.5-3.5 11.5 6.6-.2 13.6 1.5 13.6 1.5 11.8-6.7 4.7-14.2 4.7-14.2" fill="#abc2c6"/><path d="m52 19.3c-5-1.2-8.7-2.1-15.2-2.7 0 0-.3 5.8-.5 7.4l11.8 2.5c2.1.6.8 2.5.8 2.5 6.3-4.8 3.1-9.7 3.1-9.7" fill="#5a6a6d"/><path fill="#dff4f4" d="m33 28.9l2.2-1.9 2-4.5.3-3.7-1.2-4.7-.4-1.8-3.3-.3-.4 17.7z"/><g fill="#293030"><path d="m35.7 24.5c-.4 1.2-1.5 1.9-2.4 1.7-.9-.2-1.2-1.4-.8-2.5.4-1.2 1.5-1.9 2.4-1.7s1.2 1.3.8 2.5"/><path d="m36.4 16.5c.1 1.2-.5 2.2-1.4 2.3-.8 0-1.6-.9-1.7-2.1-.1-1.2.5-2.2 1.4-2.3s1.6.9 1.7 2.1"/></g><g fill="#abc2c6"><path d="m32.6 12c0 0-.1 0-.1 0-.1 0-.2 0-.3 0 .1 0 .2 0 .3 0-14.7-2.5-29.6-2.3-29.6-2.3l.6 3c6.7.1 18.9.3 31.4 1.2-.6-1.1-1.4-1.8-2.3-1.9"/><path d="m5.4 22.3l.6 3.3c0 0 25.5-1.6 26.2-1.5 1-.3 2-1.2 2.6-2.5-5.2-.1-18.6-.4-29.4.7"/></g><g fill="#87989b"><path d="m35.2 14.6c-.1-.3-.2-.5-.3-.7-12.5-.9-24.7-1.2-31.4-1.3l.2 1.2c6.9.1 19.1.2 31.5.8"/><path d="m4.8 19.3l.6 3c10.8-1.1 24.2-.9 29.5-.7.4-.8.7-1.7.8-2.7-4.7-.1-19.4-.3-30.9.4"/></g><path d="m35.2 14.6c-12.4-.6-24.6-.7-31.5-.7l1.1 5.5c11.5-.7 26.1-.5 30.9-.4 0-.2.1-.5.1-.8 0-1.4-.2-2.6-.6-3.6" fill="#5a6a6d"/><path d="m8.2 17.2c.8 4.4-.3 8.2-2.4 8.5-2.2.3-4.6-3.1-5.4-7.5-.8-4.4.3-8.2 2.4-8.5 2.1-.3 4.5 3.1 5.4 7.5" fill="#dff4f4"/><path d="m7 17.3c.6 3.1-.2 5.8-1.7 6-1.5.2-3.2-2.2-3.8-5.3-.6-3.1.2-5.8 1.7-6 1.5-.1 3.2 2.2 3.8 5.3" fill="#293030"/><path d="m33 28.9c-.3-.6-.3-2.6 2.2-1.9l9.4.8-2 2-9.6-.9" fill="#5a6a6d"/><path d="m37.2 22.5c-1.3 0-1.8-3.4.3-3.7l9.7 1.8-.6 3.7-9.4-1.8" fill="#87989b"/><path d="m36.3 14.1c-1.4.7-.9-1.3-.5-1.8l9 2.4 1.5 1.9-10-2.5" fill="#5a6a6d"/><path d="m52.4 32.8c-.3 1.1-1.4 1.9-2.5 1.8-1.1-.1-1.7-1-1.4-2.1s1.4-1.9 2.5-1.8c1.1.1 1.7 1 1.4 2.1" fill="#dff4f4"/><path fill="#87989b" d="m52.9 34.1l-.4.3-4.6-3.2.4-.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f52c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f52c.svg
index d5b68b9..149eb37 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f52c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f52c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m6.334 37.583h17.352v1.716h-17.352z"/><path fill="#29abe2" d="m6.334 35.867h17.352v1.716h-17.352z"/><g fill="#94989b"><path d="m34.783 45.47c-1.577 0-3.875 0-7.224 0-9.182 0-9.442-6.179-9.442-6.179h-6.905c0 0 .895 12.354 13.961 12.354h9.61v-6.175"/><path d="m34.937 44.783h7.668c5.144-11.645-1.692-26.23-1.841-26.524l-6.144 3.11c.03.059 5.03 14.577.317 23.414"/></g><g fill="#333"><path d="m46.569 47.972l-.008-.023c-1.573-4.991-6.249-8.613-11.778-8.653-5.527.04-10.205 3.662-11.78 8.653l-.008.023-5.569 16.03h34.711l-5.568-16.03"/><path d="m19.501 26.727l26.18-22.272 6.745 7.844-26.18 22.268z"/></g><g fill="#94989b"><path d="m25.01 33.13l-4.269-4.97-2.038 2.644 3.377 3.921z"/><path d="m53.811 8.632l-4.271-4.966-2.619 2.228 4.279 4.965z"/></g><path fill="#333" d="M55.05 10.07 48.3 2.227 50.921 0 57.666 7.842z"/><g fill="#d0d0d0"><ellipse transform="matrix(.9429.3331-.3331.9429 9.902-11.582)" cx="38.732" cy="23.09" rx="6.908" ry="6.865"/><ellipse cx="34.784" cy="51.648" rx="6.908" ry="6.863"/></g><g fill="#333"><ellipse transform="matrix(-.333.9429-.9429-.333 73.41-5.735)" cx="38.731" cy="23.09" rx="3.434" ry="3.455"/><ellipse cx="34.783" cy="51.648" rx="3.455" ry="3.432"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m24.6 54.3c-1-1-2.6-2.6-4.8-4.8-6.1-6.1-2.2-10.4-2.2-10.4l-4.6-4.6c0 0-7.6 8.8 1.1 17.4l6.4 6.4 4.1-4"/><path d="m33.7 44h7.2c4.8-10.9-1.6-24.6-1.7-24.9l-5.8 2.9c0 .1 4.7 13.7.3 22"/></g><g fill="#333"><path d="m44.6 47c-1.5-4.7-5.9-8.1-11.1-8.1-5.2 0-9.6 3.4-11.1 8.1l-5.2 15h32.6l-5.2-15"/><path d="m19.2 27.1l24.6-20.9 6.3 7.3-24.6 20.9z"/></g><g fill="#94989b"><path d="m24.3 33.1l-4-4.7-1.9 2.5 3.2 3.7z"/><path d="m51.4 10.1l-4-4.7-2.5 2.1 4 4.7z"/></g><path fill="#333" d="M52.5 11.4 46.2 4.1 48.7 2 55 9.4z"/><g fill="#d0d0d0"><path d="m43.3 25.8c-1.2 3.4-4.9 5.1-8.3 3.9-3.4-1.2-5.2-4.9-4-8.2 1.2-3.3 4.9-5.1 8.3-3.9 3.4 1.2 5.2 4.9 4 8.2"/><ellipse cx="33.5" cy="50.4" rx="6.5" ry="6.4"/></g><g fill="#333"><path d="m36.2 26.7c1.7.6 3.5-.3 4.1-2 .6-1.7-.3-3.5-2-4.1-1.7-.6-3.5.3-4.1 2-.6 1.6.3 3.5 2 4.1"/><ellipse cx="33.5" cy="50.4" rx="3.2" ry="3.2"/><path transform="matrix(.7067-.7076.7076.7067-21.5895 21.6604)" d="m14.5 28.7h1.6v16.3h-1.6z"/></g><path transform="matrix(.7067-.7076.7076.7067-20.4508 22.1324)" fill="#29abe2" d="m15.7 27.6h1.6v16.3h-1.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f52d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f52d.svg
index e93a2dd..e4dc010 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f52d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f52d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#333"><path d="m16.764 62h1.818l.938-2.219h-1.917z"/><path d="m44.488 59.781l.932 2.219h1.81l-.83-2.219z"/></g><g fill="#cad5dd"><path d="m35.602 30.18l-7.156.062-10.843 29.541h1.917l11.426-27.878c.338.086.691.13 1.055.13.386 0 .758-.051 1.115-.145l11.373 27.893h1.911l-10.798-29.603"/><path d="m33.553 24.287h-3.03l.693 35.494h1.646z"/></g><g fill="#333"><path d="m31.22 59.781l.04 2.219h1.565l.041-2.219z"/><ellipse cx="31.999" cy="27.625" rx="5.143" ry="5.137"/></g><circle fill="#fff" cx="31.999" cy="27.625" r="3.789"/><g fill="#333"><path d="m26.15 5.47c-.351-.128-.71.062-.801.424l-1.278 5.148c-.09.362.136.722.5.799l10.09 2.15c.364.078.737-.155.827-.516l.877-3.533c.09-.361-.123-.763-.473-.892l-9.737-3.58"/><path d="m26 18.71c-.45-.165-.912.08-1.029.546l-1.644 6.621c-.115.466.174.928.643 1.028l12.97 2.766c.469.1.947-.199 1.063-.664l1.128-4.544c.116-.465-.158-.98-.607-1.146l-12.524-4.607"/></g><path fill="#dfe9ef" d="m43.09 16.335l-2.78 11.201 18.624 4.474 2.366-9.507z"/><path fill="#333" d="m57.5 16.942c-.504-.114-1.016.202-1.137.702l-1.098 4.475c-.121.5-.636.827-1.141.726l-3.166-.632c-.506-.101-1.053.216-1.215.706l-.48 1.444c-.163.489.116.98.62 1.092l6.571 1.458c.504.112 1.01-.208 1.125-.71l1.803-7.874c.114-.502-.203-1.01-.706-1.12l-1.176-.267"/><path fill="#dfe9ef" d="m11.07 2.887l-4.724 19.02 33.582 7.16 3.542-14.268z"/><g fill="#333"><path d="m43.47 14.802l-2.164-.795c1.218.352 1.371 3.99.393 7.929-.979 3.94-2.799 7.01-4.02 6.655l2.244.479c1.218.351 2.996-2.557 3.975-6.497.978-3.941.785-7.419-.432-7.771"/><path d="m11.07 2.887l-2.937-.848c-1.623-.469-3.996 3.408-5.301 8.66-1.305 5.254-1.047 9.892.576 10.361l2.938.85c1.623.468 3.996-3.409 5.301-8.662 1.303-5.252 1.046-9.891-.577-10.361"/></g><path fill="#29abe2" d="m8.711 12.384c1.093-4.401 1.085-8.361.101-9.808-1.551.558-3.479 4.069-4.609 8.616-1.094 4.402-1.086 8.361-.103 9.809 1.552-.559 3.481-4.07 4.611-8.617"/><g fill="#333"><path d="m61.3 22.503l-1.703-.577c.811.234 1.057 2.672.404 5.298-.652 2.627-1.996 4.605-2.807 4.37l1.744.42c.811.234 1.998-1.705 2.65-4.33.653-2.627.524-4.947-.288-5.181"/><circle cx="46.791" cy="20.483" r=".86"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#333"><path d="m16.8 62h1.8l.9-2.2h-1.9z"/><path d="m44.5 59.8l.9 2.2h1.8l-.8-2.2z"/></g><g fill="#cad5dd"><path d="m35.6 30.2l-7.2.1-10.8 29.5h1.9l11.4-27.9c.4.1.7.1 1.1.1.4 0 .8-.1 1.1-.1l11.4 27.9h1.9l-10.8-29.6"/><path d="m33.6 24.3h-3.1l.7 35.5h1.7z"/></g><g fill="#333"><path d="m31.2 59.8l.1 2.2h1.5l.1-2.2z"/><ellipse cx="32" cy="27.6" rx="5.1" ry="5.1"/></g><circle cx="32" cy="27.6" r="3.8" fill="#fff"/><g fill="#333"><path d="m26.1 5.5c-.4-.1-.7.1-.8.4l-1.2 5.1c-.1.4.1.7.5.8l10.1 2.2c.4.1.7-.2.8-.5l.9-3.5c.1-.4-.1-.8-.5-.9l-9.8-3.6"/><path d="m26 18.7c-.5-.2-.9.1-1 .5l-1.6 6.6c-.1.5.2.9.6 1l13 2.8c.5.1.9-.2 1.1-.7l1.1-4.5c.1-.5-.2-1-.6-1.1l-12.6-4.6"/></g><path fill="#dfe9ef" d="m43.1 16.3l-2.8 11.2 18.6 4.5 2.4-9.5z"/><path d="m57.5 16.9c-.5-.1-1 .2-1.1.7l-1.1 4.5c-.1.5-.6.8-1.1.7l-3.2-.6c-.5-.1-1.1.2-1.2.7l-.5 1.4c-.2.5.1 1 .6 1.1l6.6 1.5c.5.1 1-.2 1.1-.7l1.8-7.9c.1-.5-.2-1-.7-1.1l-1.2-.3" fill="#333"/><path fill="#dfe9ef" d="m11.1 2.9l-4.8 19 33.6 7.2 3.6-14.3z"/><g fill="#333"><path d="m43.5 14.8l-2.2-.8c1.2.4 1.4 4 .4 7.9-1 3.9-2.8 7-4 6.7l2.2.5c1.2.4 3-2.6 4-6.5 1-4 .8-7.4-.4-7.8"/><path d="m11.1 2.9l-3-.9c-1.6-.5-4 3.4-5.3 8.7-1.3 5.3-1 9.9.6 10.4l2.9.9c1.6.5 4-3.4 5.3-8.7 1.3-5.3 1.1-9.9-.5-10.4"/></g><path d="m8.7 12.4c1.1-4.4 1.1-8.4.1-9.8-1.6.6-3.5 4.1-4.6 8.6-1.1 4.4-1.1 8.4-.1 9.8 1.6-.6 3.5-4.1 4.6-8.6" fill="#29abe2"/><g fill="#333"><path d="m61.3 22.5l-1.7-.6c.8.2 1.1 2.7.4 5.3-.7 2.6-2 4.6-2.8 4.4l1.7.4c.8.2 2-1.7 2.7-4.3.6-2.6.5-5-.3-5.2"/><circle cx="46.8" cy="20.5" r=".9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f52e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f52e.svg
index c9070fd..72eff08 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f52e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f52e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#ab8165" cx="32" cy="53.809" rx="26" ry="8.191"/><path fill="#725944" d="m57.818 52.853c-.002 3.488-11.56 6.314-25.818 6.314-14.258 0-25.816-2.826-25.818-6.314-.116.315-.182.632-.182.956 0 4.524 11.641 8.191 26 8.191 14.36 0 26-3.667 26-8.191 0-.324-.065-.641-.182-.956"/><ellipse fill="#ab8165" cx="32" cy="49.34" rx="21.937" ry="6.913"/><path fill="#725944" d="m53.785 48.531c-.002 2.944-9.755 5.327-21.785 5.327-12.03 0-21.783-2.384-21.785-5.327-.098.264-.152.533-.152.806 0 3.818 9.822 6.913 21.937 6.913s21.936-3.095 21.936-6.913c.001-.273-.053-.542-.151-.806"/><ellipse fill="#ab8165" cx="32" cy="44.866" rx="17.875" ry="5.632"/><path fill="#725944" d="m49.75 44.21c0 2.398-7.947 4.341-17.75 4.341-9.803 0-17.75-1.942-17.75-4.341-.08.216-.125.436-.125.657 0 3.11 8 5.632 17.875 5.632 9.872 0 17.875-2.521 17.875-5.632 0-.221-.045-.441-.125-.657"/><ellipse fill="#9d6bd1" cx="32" cy="24.23" rx="22.958" ry="22.24"/><g fill="#fff"><path d="m22.829 2.12c0 6.375-3.417 12.08-8.236 12.08 4.819 0 8.236 5.705 8.236 12.08 0-6.375 3.418-12.08 8.237-12.08-4.818 0-8.237-5.704-8.237-12.08"/><path d="m18.02 24.03c0 3.455-1.853 6.545-4.462 6.545 2.609 0 4.462 3.089 4.462 6.543 0-3.454 1.852-6.543 4.462-6.543-2.611 0-4.462-3.091-4.462-6.545"/><path d="m29.776 19.223c0 2.996-1.605 5.675-3.87 5.675 2.265 0 3.87 2.68 3.87 5.675 0-2.995 1.605-5.675 3.87-5.675-2.264 0-3.87-2.68-3.87-5.675"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53.3 55.3c0-3.5 1.7-9.5-5.1-12.8h-32.4c-6.8 3.2-5.1 9.3-5.1 12.8 0 2.6-4.7 1.7-4.7 4.7 0 2.3 3.2 2.2 4.4 1.7 3-1.1 4.9-3.8 5.5-4.6.5-.7.2-.9.5-1.7.3-.8 1.9.8 4-.1 3.1-1.3 1.1-3.9 3.4-3.9 1.4 0 4.4 1.2 8.2 1.2 3.8 0 6.8-1.2 8.2-1.2 2.3 0 .2 2.5 3.4 3.9 2.2.9 3.8-.7 4 .1.3.8-.1.9.5 1.7.6.9 2.5 3.5 5.5 4.6 1.3.5 4.4.6 4.4-1.7 0-3-4.7-2.1-4.7-4.7" fill="#94989b"/><g fill="#b0bdc6"><path d="m46.1 42.8c-3.9-1.3-24.3-1.3-28.2 0-7.7 2.6-5.9 10.6-5.9 10.6s2.6-4.4 6.1-3.4c0 0-4.6 2.2-2.3 5 .6-2.6 2.6.2 4.6-1.1 2.2-1.5.2-4.7 4.1-3.7 5.5 1.6 9.6 1.6 15.2 0 3.8-1.1 1.9 2.1 4.1 3.7 2 1.4 4-1.4 4.6 1.1 2.3-2.9-2.3-5-2.3-5 3.5-1 6.1 3.4 6.1 3.4s1.6-8-6.1-10.6"/><path d="m9.9 58.3c0-1.2-4.7.8-2.4 2.5 2.4 1.7 7.2-2.7 4.7-2.7-1.5 0-2.3 1.3-2.3.2"/><path d="m54.1 58.3c0-1.2 4.7.8 2.4 2.5-2.3 1.7-7.2-2.7-4.7-2.7 1.5 0 2.3 1.3 2.3.2"/></g><circle cx="32" cy="25.8" r="23.8" fill="#8c13d4"/><path d="m35.3 25.3c6.9 2.9 11.8 8.1 13.7 13.7 2.8-3.6 4.5-8.2 4.5-13.1 0-11.9-9.7-21.5-21.5-21.5-11.8 0-21.5 9.6-21.5 21.5 0 1.1.1 2.2.3 3.3 4.7-6.1 14.9-7.9 24.5-3.9" fill="#ae3ffd"/><ellipse cx="32" cy="39.9" rx="15.2" ry="9.7" fill="#6c368e"/><path d="m18.1 30.5c0-11.4 9.2-20.6 20.6-20.6 2.7 0 5.3.5 7.7 1.5-3.6-3.3-8.5-5.4-13.9-5.4-11.3 0-20.5 9.2-20.5 20.6 0 8.6 5.3 16 12.8 19.1-4.1-3.8-6.7-9.2-6.7-15.2" fill="#b371ec"/><g fill="#fff"><path d="m20.4 5.7c0 4.9-2.6 9.2-6.3 9.2 3.7 0 6.3 4.4 6.3 9.2 0-4.9 2.6-9.2 6.3-9.2-3.6 0-6.3-4.3-6.3-9.2"/><path d="m16.7 22.4c0 2.6-1.4 5-3.4 5 2 0 3.4 2.4 3.4 5 0-2.6 1.4-5 3.4-5-1.9 0-3.4-2.4-3.4-5"/><path d="m25.8 18.7c0 2.3-1.2 4.3-3 4.3 1.7 0 3 2 3 4.3 0-2.3 1.2-4.3 3-4.3-1.8.1-3-2-3-4.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f52f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f52f.svg
index 6e5393f..5783dec 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f52f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f52f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="M60,48H4L32,2L60,48z M13.283,43H50.72L32,11.701L13.283,43z"/><path d="M32,62L4,16h56L32,62z M32,52.299L50.72,21H13.283L32,52.299z"/><ellipse cx="31.999" cy="32" rx="4.2" ry="4.286"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m50.3 32l9.7-16h-19.5l-8.5-14-8.5 14h-19.5l9.7 16-9.7 16h19.5l8.5 14 8.5-14h19.5l-9.7-16m.4-11l-3.5 5.9-3.6-5.9h7.1m-6.6 11l-6.6 11h-11.1l-6.6-11 6.6-11h11.1l6.6 11m-12.1-20.3l2.6 4.3h-5.1l2.5-4.3m-18.7 9.3h7.2l-3.6 5.9-3.6-5.9m0 22l3.5-5.9 3.6 5.9h-7.1m18.7 9.3l-2.6-4.3h5.1l-2.5 4.3m15.2-15.2l3.5 5.9h-7.2l3.7-5.9"/><ellipse cx="32" cy="32" rx="4.2" ry="4.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f530.svg b/build/js/jsxc/lib/emojione/assets/svg/1f530.svg
index 50afa78..b0677aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f530.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f530.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#24bac5" d="M32 20.75 32 62 52 43.25 52 2z"/><path fill="#ffce31" d="m12 2v41.25l20 18.75v-41.25z"/><path fill="none" stroke="#3e4347" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M32 20.75 12 2 12 43.25 32 62 52 43.25 52 2z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#24bac5" d="m32 20.8v41.2l20-18.8v-41.2z"/><path fill="#ffce31" d="m12 2v41.2l20 18.8v-41.2z"/><path fill="none" stroke="#3e4347" stroke-linejoin="round" stroke-linecap="round" stroke-width="3" stroke-miterlimit="10" d="M32 20.8 12 2 12 43.2 32 62 52 43.2 52 2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f531.svg b/build/js/jsxc/lib/emojione/assets/svg/1f531.svg
index 95b9d2f..09cb93c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f531.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f531.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffb031" d="m57.04 24.593c-3.02-7.214-12.284-15.906-12.284-15.906s2.994 7.435.826 17.266l3.51-3.038c0 0 3.342 1.434 3.717 4.958.466 4.355-2.03 10.567-2.03 10.567s-5.506-1.737-13.92-1.616l-3.01-19.584 7.155 4.69-9.01-19.93-9.01 19.93 7.157-4.69-3.01 19.584c-8.416-.121-13.922 1.616-13.922 1.616s-2.494-6.212-2.028-10.567c.375-3.524 3.715-4.958 3.715-4.958l3.511 3.038c-2.168-9.832.826-17.266.826-17.266s-9.27 8.692-12.285 15.906c-3.097 7.407-4.955 16.225-4.955 16.225l6.399 5.914c0 0 5.649-1.664 9.963-1.997 4.129-.319 8.93-.399 8.93-.399l-.618 8.712 5.326 8.952 5.326-8.952-.62-8.712c0 0 4.801.08 8.93.399 4.314.333 9.963 1.997 9.963 1.997l6.401-5.914c0 0-1.858-8.818-4.957-16.225"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 24.6c-3-7.2-12.2-15.9-12.2-15.9s3 7.4.8 17.3l3.5-3c0 0 3.3 1.4 3.7 5 .5 4.4-2 10.6-2 10.6s-5.5-1.7-13.9-1.6l-3-19.6 7.2 4.7-9.1-20.1-9 19.9 7.2-4.7-3 19.6c-8.4-.1-13.9 1.6-13.9 1.6s-2.5-6.2-2-10.6c.4-3.5 3.7-5 3.7-5l3.5 3c-2.2-9.8.8-17.3.8-17.3s-9.3 8.9-12.3 16.1c-3.1 7.4-5 16.2-5 16.2l6.4 5.9c0 0 5.6-1.7 10-2 4.1-.3 8.9-.4 8.9-.4l-.6 8.7 5.3 9 5.3-9-.6-8.7c0 0 4.8.1 8.9.4 4.3.3 10 2 10 2l6.4-5.9c0 0-1.9-8.8-5-16.2" fill="#eda454"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f532.svg b/build/js/jsxc/lib/emojione/assets/svg/1f532.svg
index dcafb9c..4234050 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f532.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f532.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="M63.999,56c0,4.4-3.6,8-8,8H8c-4.4,0-8-3.6-8-8V8c0-4.4,3.6-8,8-8h47.999c4.4,0,8,3.6,8,8V56z"/><path fill="#d0d0d0" d="m55.999 50c0 3.299-2.702 6-5.998 6h-36c-3.296 0-5.998-2.701-5.998-6v-36c0-3.298 2.702-5.999 5.998-5.999h36c3.296 0 5.998 2.701 5.998 5.999v36"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m2 2h60v60h-60z"/><path fill="#d0d0d0" d="m10 10h44v44h-44z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f533.svg b/build/js/jsxc/lib/emojione/assets/svg/1f533.svg
index 44119a8..478b8cd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f533.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f533.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M64,56c0,4.4-3.6,8-8,8H8c-4.4,0-8-3.6-8-8V8c0-4.4,3.6-8,8-8h48c4.4,0,8,3.6,8,8V56z"/><path fill="#333" d="M56,50c0,3.301-2.699,6-6,6H14c-3.301,0-6-2.699-6-6V14c0-3.299,2.699-6,6-6h36c3.301,0,6,2.701,6,6V50z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m2 2h60v60h-60z"/><path fill="#333" d="m10 10h44v44h-44z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f534.svg b/build/js/jsxc/lib/emojione/assets/svg/1f534.svg
index 13ef2fb..a8ac9f7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f534.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f534.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f535.svg b/build/js/jsxc/lib/emojione/assets/svg/1f535.svg
index 9259662..3df8731 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f535.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f535.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#0071bc"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f536.svg b/build/js/jsxc/lib/emojione/assets/svg/1f536.svg
index 9df8bf5..351f0db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f536.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f536.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f27a52" d="m36.32 62.22c-2.375 2.375-6.258 2.375-8.633 0l-25.902-25.903c-2.375-2.375-2.375-6.258 0-8.633l25.903-25.902c2.375-2.375 6.258-2.375 8.633 0l25.904 25.902c2.373 2.375 2.373 6.258 0 8.633l-25.905 25.903"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-13.255 31.9997)" fill="#f27a52" d="m10.8 10.8h42.4v42.4h-42.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f537.svg b/build/js/jsxc/lib/emojione/assets/svg/1f537.svg
index 893d4c9..2d35144 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f537.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f537.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m36.32 62.22c-2.375 2.375-6.258 2.375-8.633 0l-25.903-25.903c-2.375-2.375-2.375-6.258 0-8.633l25.904-25.902c2.375-2.375 6.258-2.375 8.633 0l25.903 25.902c2.373 2.375 2.373 6.258 0 8.633l-25.904 25.903"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-13.255 31.9997)" fill="#0071b8" d="m10.8 10.8h42.4v42.4h-42.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f538.svg b/build/js/jsxc/lib/emojione/assets/svg/1f538.svg
index ad7acdd..10ba044 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f538.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f538.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f27a52" d="m34.16 47.11c-1.188 1.188-3.129 1.188-4.317 0l-12.951-12.951c-1.188-1.188-1.188-3.129 0-4.316l12.951-12.951c1.188-1.188 3.129-1.188 4.317 0l12.953 12.951c1.186 1.188 1.186 3.129 0 4.316l-12.953 12.951"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-13.2552 31.9992)" fill="#f27a52" d="m20.7 20.7h22.6v22.6h-22.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f539.svg b/build/js/jsxc/lib/emojione/assets/svg/1f539.svg
index 1161f4e..344ca59 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f539.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f539.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m34.16 47.11c-1.188 1.188-3.129 1.188-4.317 0l-12.951-12.951c-1.188-1.188-1.188-3.129 0-4.316l12.951-12.951c1.188-1.188 3.129-1.188 4.317 0l12.953 12.951c1.186 1.188 1.186 3.129 0 4.316l-12.953 12.951"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-13.2552 31.9992)" fill="#0071b8" d="m20.7 20.7h22.6v22.6h-22.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f53a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f53a.svg
index d9e692e..3210412 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f53a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f53a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m30.13 1.525c1.029-2.034 2.712-2.034 3.742 0l29.732 58.775c1.029 2.036-.012 3.7-2.314 3.7h-58.58c-2.303 0-3.344-1.664-2.314-3.7l29.732-58.775"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 2l-30 60h60z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f53b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f53b.svg
index 40a0d73..57d6ad4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f53b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f53b.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M33.871,62.475c-1.029,2.034-2.712,2.034-3.742,0L0.398,3.7C-0.632,1.664,0.409,0,2.711,0h58.578
- c2.303,0,3.344,1.664,2.314,3.7L33.871,62.475z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M32 62 62 2 2 2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f53c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f53c.svg
index 6708dcd..6836e6e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f53c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f53c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="M52 38 32 18 12 38z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="M52 38 32 18 12 38z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f53d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f53d.svg
index 22f7ab5..a624cea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f53d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f53d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="31.999" r="30"/><path fill="#fff" d="m12 27l20 20 20-20z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m12 26l20 20 20-20z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f549.svg b/build/js/jsxc/lib/emojione/assets/svg/1f549.svg
index 7c09f12..f068cd7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f549.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f549.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="32"/><circle fill="#fff" cx="32" cy="32" r="27.5"/><g fill="#ed4c5c"><path d="m53.55 26.299c-.711-.75-1.577-1.338-2.575-1.747-.991-.405-2.117-.636-3.351-.686-1.213-.049-2.561.077-4.01.375-1.383.285-2.895.736-4.493 1.34-.207-.2-.427-.381-.657-.537-.695-.481-1.476-.761-2.322-.835-1.867-.161-3.951.713-6.195 2.599-.154.129-.304.26-.447.389.063-.449.091-.898.077-1.346-.037-1.466-.488-2.83-1.306-3.944-.853-1.166-2.061-2-3.49-2.412-1.774-.508-3.511-.441-5.16.201-1.26.489-2.441 1.308-3.512 2.434-1.684 1.771-2.537 3.712-2.63 3.928l3.91 1.666-.003.007c.007-.016.659-1.502 1.869-2.744 2.02-2.076 3.777-1.572 4.354-1.407 1.063.305 1.69 1.174 1.721 2.383.03 1.114-.464 2.336-1.387 3.439-1.204 1.44-3.096 2.635-5.468 3.451l1.381 4.02c1.596-.549 3.039-1.243 4.291-2.064 1.183-.773 2.2-1.664 3.03-2.645.143.027.297.059.457.101 1.027.265 1.822.736 2.362 1.4 1.021 1.253 1.213 3.29.57 6.06-.985 4.242-4.121 7.236-7.626 7.282-1.953.026-3.883-.872-5.579-2.598-2.135-2.172-3.865-5.636-5-10.01l-4.111 1.07c.683 2.619 1.559 4.973 2.604 6.992 1 1.939 2.175 3.598 3.484 4.928 1.272 1.295 2.673 2.283 4.167 2.939 1.406.617 2.872.93 4.356.93.047 0 .094 0 .142-.002 1.36-.018 2.701-.298 3.986-.834 1.242-.518 2.4-1.26 3.44-2.209 1.029-.938 1.919-2.055 2.644-3.318.735-1.287 1.286-2.703 1.636-4.207.492-2.115.603-4.03.333-5.686-.254-1.555-.842-2.906-1.747-4.02-.229-.283-.48-.549-.751-.797.063-.053.126-.107.189-.16 1.478-1.23 2.545-1.623 3.052-1.578.113.01.38.033.748.68.594 1.043.524 2.148.341 4.175-.109 1.212-.235 2.585-.147 4.161.104 1.846.481 3.611 1.155 5.398.585 1.549 1.401 2.768 2.428 3.621 1.045.871 2.307 1.354 3.651 1.395.066.002.132.004.196.004.961 0 1.952-.219 2.943-.65.941-.409 1.87-1.01 2.759-1.77.848-.73 1.64-1.597 2.355-2.577.723-.988 1.35-2.071 1.864-3.215 1.057-2.353 1.636-4.755 1.669-6.948.042-2.638-.717-4.857-2.194-6.417m-2.052 6.353c-.024 1.594-.484 3.467-1.296 5.271-1.635 3.638-4.392 5.758-6.11 5.704-.404-.012-.742-.143-1.066-.41-.446-.375-.854-1.018-1.17-1.86-1.17-3.093-.958-5.423-.753-7.675.128-1.408.258-2.846-.015-4.295 2.523-.914 4.664-1.344 6.366-1.275 1.352.055 2.366.428 3.01 1.109.883.932 1.047 2.38 1.031 3.431"/><path d="m28.92 19.679c1.172 1.535 2.689 2.572 4.387 3 .604.151 1.223.227 1.859.227.986 0 2.01-.182 3.063-.546 1.835-.637 3.789-1.85 5.81-3.606l-2.789-3.206c-1.597 1.39-3.072 2.329-4.388 2.788-.932.328-1.77.405-2.489.229-1.877-.455-2.743-2.584-2.753-2.605.005.01.008.016.008.016l-3.976 1.501c.042.11.431 1.107 1.268 2.201"/><path transform="matrix(.6892.7245-.7245.6892 20.627-22.16)" d="m33.914 10.844h4.456v4.249h-4.456z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m57.2 29.6c-1.9-3.1-5-6.4-9.9-6.3-6.9 0-9.5 5.5-11.8 10.1-.7 1.4-1.9 3.6-3.5 3.9-1.9.4-3-.7-4.2-1.2 2.6-2.1 5-4.6 5.4-8.5.7-6.3-3.3-10.3-8.5-10.7-5-.4-9.1 1-12.3 2.8-.9.5-2.6 1.5-2.7 2.4 0 .6 2.2 3.6 3.9 7.8 2.3-1.5 5.5-4.2 9.2-4.5 6.4-.6 6.9 5.6.6 6.8-2.6.5-4.9-.2-7.1-.6 1.2 2.8-.6 8.1 1.5 10 2 1.8 4.9-.4 7.2-.3 3.4.1 5.7 3.8 4.1 7.5-2.1 4.7-10.1 5.9-14.9 2.9-9.2-5.8-7.5-16.7-9.2-16.7-2.1-.2-3.1 27 16.7 27 7.9 0 14.6-6 13.9-14.4-.2-2.5-1.1-4.6-1.7-6.5 1.6.2 3.2 0 4.7-.2-2 3.5-.7 10 1.1 12.7 2.6 3.9 8.9 5.3 13.6 2.2 3.8-2.6 6.4-6.7 6.7-12.7.3-5.4-.7-10.1-2.8-13.5m-10.2 18.4c-4.6.5-7.4-1.9-7.8-7.2 3.8-1.6 5.1-8.2 9.7-10.9 4-2.4 6.3 2.4 6.5 5.8.5 6.5-3 11.7-8.4 12.3"/><path d="m39.2 13.5c0 0 5.5-3.8 5.5-5.8 0-2-5.5-5.7-5.5-5.7s-5.5 3.7-5.5 5.7c0 2 5.5 5.8 5.5 5.8"/><path d="m37.8 21.5c7.9 1.8 17.9-4.4 17.9-6.4 0-2.6-4.7-5.1-5.6-6.2-2.5 3.3-7.1 7.4-13 5.8-5.9-1.6-8.3-9.3-8.3-9.3-.8 2.5-.8 5.5.1 7.9 1.4 3.4 5.2 7.3 8.9 8.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f54a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f54a.svg
index 16ac0a2..37fa3aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f54a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f54a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="m48.594 3.533c0 0 3.635.369 3.682 3.661.049 3.29 1.582 4.366 1.582 4.366s-4.662-1.452-4.783-3.983c-.12-2.529-.126-2.784-.481-4.04"/><path d="m62.54 12.04c0 0-2.225 2.898-5.05 1.207-2.824-1.688-4.545-.948-4.545-.948s3.686-3.203 5.9-1.977c2.216 1.228 2.434 1.359 3.694 1.718"/><path d="m45.32 9.248c0 0 3.57-.762 4.623 2.356 1.055 3.118 2.846 3.671 2.846 3.671s-4.883.046-5.775-2.324c-.889-2.371-.971-2.611-1.694-3.703"/><path d="m61.33 18.205c0 0-3.02 2.05-5.17-.443-2.148-2.49-4.02-2.33-4.02-2.33s4.506-1.881 6.223-.019c1.717 1.861 1.883 2.055 2.963 2.792"/></g><path fill="#83bf4f" d="m56.23 4.33c-2.224 3.933-3.47 8.607-3.834 13.1-.422 4.645.32 9.337 2.939 13.274.03-.017.06-.032.09-.048-1.369-4.306-2.399-8.683-2.202-13.241.087-2.02.368-4.02.802-5.994.275-1.387.683-2.764 1.14-4.1.166-.487 1.29-2.674 1.065-2.989"/><path fill="#699635" d="m59.39 0c0 0 1.373 3.386-1.514 4.965-2.885 1.581-3.117 3.438-3.117 3.438s-.896-4.8 1.283-6.09c2.178-1.289 2.4-1.411 3.348-2.313"/><path fill="#d0d0d0" d="m27.859 52.1c-4.059-14.824-26.4-2.173-26.4-2.173 19.982-19.99 28.869-18.342 32.797-13.658 2.721-14.315 6.04-18.869 19.326-17.391 0 0-8.928 4.244-6.143 21.963 2.783 17.717-11.174 29.584-35.672 19.398.001 0 9.54-1.141 16.09-8.139"/><path fill="#94989b" d="m20.539 35.12c-5.195-.312-11.633 4.358-11.633 4.358s8.01-11.963 14.864-14.868c6.762-2.868 10.633-.873 12.848 2.533-.932 2.445-1.666 5.467-2.361 9.125-2.353-2.805-6.487-4.521-13.718-1.148"/><circle fill="#3e4347" cx="43.791" cy="22.02" r=".931"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#699635"><path d="m10 17.1c0 0-2.1 1.9-.9 4.4 1.2 2.5.6 4 .6 4s2.4-3.2 1.5-5.2c-.8-1.9-.9-2.1-1.2-3.2"/><path d="m4.5 29.8c0 0 2.5 1.2 3.6-1.4 1.1-2.5 2.5-2.8 2.5-2.8s-3.5-.6-4.4 1.3c-1 1.9-1.1 2.1-1.7 2.9"/><path d="m14.2 20c0 0-2.5 1-2 3.9.5 2.8-.4 4.1-.4 4.1s3.1-2.2 2.7-4.4c-.3-2.2-.3-2.5-.3-3.6"/><path d="m7.5 34c0 0 2.6.2 3.1-2.7.4-2.9 1.6-3.6 1.6-3.6s-3.5.6-3.9 2.8c-.3 2.2-.4 2.4-.8 3.5"/></g><path d="m5.6 21.2c2.8 2 5.3 5 7.2 8.2 2 3.3 3.3 7.2 3.1 11.4 0 0-.1 0-.1 0-.7-3.9-1.7-7.7-3.5-11-.8-1.5-1.7-2.9-2.7-4.2-.7-.9-1.4-1.8-2.2-2.6-.3-.4-1.8-1.5-1.8-1.8" fill="#83bf4f"/><path d="m2 19.3c0 0 .4 3.2 2.8 3.1 2.4-.1 3.2 1.2 3.2 1.2s-1.2-4-3.1-4c-1.8-.1-2 0-2.9-.3" fill="#699635"/><path fill="#ffce31" d="m16.2 30.5l-4.6 3.5 5.8-.7z"/><path d="m27.8 32.1c.3-8 11.6-14.5 17.6-24.8 2.6-4.4 4.8-2.1 3.2 5.9 10.3 1.9-8 24.5-11.7 26.1l-9.1-7.2" fill="#8d9ba3"/><g fill="#d0d0d0"><path d="m27.1 32.8c.3-8 15.1-12 21.6-20.6 13.6-18 16.9-8 9.2-2.1 10.3 1.9-2.4 8.6-2.4 8.6 11.4.6-.9 6.7-.9 6.7 9.5 1.8-3 5.2-3 5.2 6.3 2.3-2.6 4.8-2.6 4.8 4.5 3.5-4.4 3.9-8.1 5.5l-13.8-8.1"/><path d="m15.5 32.1c0-1.9 2.3-4.4 5.7-4.4 9.1 0 18.2 9.7 24.8 18.4 3.9 5.1 10.4 2.8 12.4 5.6 1.4 2-1.6 2.9-1.6 2.9s2.5 4.3-2.3 2.7c0 0 1.6 5.1-4.2 2.9 0 0-1.3 3.3-4.1 1.2-3.7-2.8-.7-11.2-11.5-13.7-18.2-4.4-14.7-11-15.9-12.6-.6-.9-3.3-2-3.3-3"/></g><circle cx="20" cy="30.8" r="1.1" fill="#464d51"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f54b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f54b.svg
index cc472ae..687e4d7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f54b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f54b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="M14.499 62 2 49.5 2 2 14.499 14.5z"/><path d="m14.499 14.5h47.5v47.5h-47.5z"/><path d="M62 14.5 14.499 14.5 2 2 49.5 2z"/></g><path fill="#e8e8e8" d="m15.536 12h40.43l-7.5-7.5h-40.43l7.5 7.5"/><path fill="#b2c1c0" d="m10.535 7l5 5h36.684l-5-5z"/><path fill="#dbb471" d="m14.499 29.5h47.5v5h-47.5z"/><path opacity=".33" fill="#b2c1c0" d="M14.499 62 2 49.5 2 2 14.499 14.5z"/><path fill="#fbbf67" d="M14.499 34.5 2 22 2 17 14.499 29.5z"/><g fill="#dbb471"><path d="m39.5 37h13.75v5h-13.75z"/><path d="m59.5 37h2.501v5h-2.501z"/><path d="m14.499 37h2.501v5h-2.501z"/><path d="m37.729 38.589c-.603-.603-.28-1.081-.28-1.081l-1.075-.508-1.074.508c0 0 .322.479-.28 1.081-.287.288-.521.633-.521 1.067 0 .42.307.701.48 1.05.325.648.658 1.294 1.395 1.294.738 0 1.071-.646 1.396-1.294.174-.349.479-.63.479-1.05 0-.434-.232-.779-.52-1.067"/><path d="m21.479 38.589c-.602-.603-.28-1.081-.28-1.081l-1.075-.508-1.073.508c0 0 .322.479-.282 1.081-.286.288-.52.633-.52 1.067 0 .42.306.701.48 1.05.324.648.659 1.294 1.395 1.294.738 0 1.073-.646 1.396-1.294.176-.349.479-.63.479-1.05 0-.434-.232-.779-.52-1.067"/><path d="m57.73 38.589c-.604-.603-.282-1.081-.282-1.081l-1.073-.508-1.074.508c0 0 .322.479-.28 1.081-.288.288-.521.633-.521 1.067 0 .42.304.701.479 1.05.323.648.659 1.294 1.396 1.294.736 0 1.071-.646 1.396-1.294.174-.349.479-.63.479-1.05 0-.434-.234-.779-.52-1.067"/></g><path fill="#fbbf67" d="m13.25 35.75v5l1.249 1.25v-5z"/><g fill="#e8e8e8"><path d="m33.25 44.5h28.751v10h-28.751z"/><path d="m14.499 44.5h8.751v10h-8.751z"/></g><g fill="#fbbf67"><path d="m12.452 36.517c-.202-.793-.094-1.161-.094-1.161l-.358-.856-.359.147c0 0 .108.579-.093.978-.095.188-.172.452-.172.882 0 .415.103.793.159 1.195.108.747.218 1.494.465 1.736.248.245.357-.286.465-.817.057-.289.159-.465.159-.88 0-.428-.077-.845-.172-1.224"/><path d="m7.451 31.517c-.199-.794-.093-1.161-.093-1.161l-.359-.856-.359.148c0 0 .108.579-.091.976-.095.189-.174.453-.174.882 0 .416.103.794.16 1.196.11.747.22 1.494.465 1.737.247.244.357-.287.465-.818.059-.289.161-.465.161-.88-.001-.429-.08-.846-.175-1.224"/><path d="m8.25 30.75v5l2.499 2.5v-5z"/><path d="m3.249 25.75v5l2.501 2.5v-5z"/></g><path fill="#e8e8e8" d="m2 42l12.499 12.5v-10l-12.499-12.5z"/><g fill="#3e4347"><path opacity=".2" d="m33.25 44.5h28.751v10h-28.751z"/><path opacity=".2" d="m14.499 44.5h8.751v10h-8.751z"/></g><path fill="#dbb471" d="m14.499 54.5h47.5v7.499h-47.5z"/><path opacity=".5" fill="#3e4347" d="m14.499 54.5h47.5v7.499h-47.5z"/><path fill="#dbb471" d="M14.499 62 2 49.5 2 42 14.499 54.5z"/><path opacity=".25" fill="#3e4347" d="M14.499 62 2 49.5 2 42 14.499 54.5z"/><path fill="#ffce31" d="m23.25 42h9.999v17.5h-9.999z"/><g fill="#f2b200"><path d="m23.25 58.25h9.999v1.25h-9.999z"/><path d="m32 37h1.249v22.5h-1.249z"/></g><path fill="#dbb471" d="m23.25 37v17.5h4.286l.714-5 .714 5h4.286v-17.5z"/><g fill="#fff"><path opacity=".33" d="m30.75 47h-5l-1.249-1.25 1.249-1.25h5l1.25 1.25z"/><circle opacity=".33" cx="30.75" cy="50.75" r="1.251"/><circle opacity=".33" cx="25.75" cy="50.75" r="1.25"/><path opacity=".33" d="m25.792 41.01c-.24-.242-.112-.434-.112-.434l-.43-.203-.431.203c0 0 .13.191-.111.434-.114.113-.207.253-.207.426 0 .168.121.281.19.42.13.26.264.518.559.518.294 0 .43-.258.558-.518.07-.139.192-.252.192-.42 0-.173-.093-.313-.208-.426"/><path opacity=".33" d="m27.792 41.01c-.242-.242-.113-.434-.113-.434l-.429-.203-.43.203c0 0 .128.191-.112.434-.115.113-.208.253-.208.426 0 .168.121.281.19.42.132.26.264.518.56.518.293 0 .429-.258.557-.518.07-.139.192-.252.192-.42.001-.173-.093-.313-.207-.426"/><path opacity=".33" d="m29.792 41.01c-.242-.242-.113-.434-.113-.434l-.429-.203-.43.203c0 0 .13.191-.112.434-.113.113-.208.253-.208.426 0 .168.123.281.192.42.13.26.264.518.558.518.295 0 .429-.258.559-.518.07-.139.192-.252.192-.42 0-.173-.095-.313-.209-.426"/><path opacity=".33" d="m31.792 41.01c-.242-.242-.111-.434-.111-.434l-.431-.203-.428.203c0 0 .128.191-.114.434-.113.113-.208.253-.208.426 0 .168.123.281.192.42.13.26.264.518.558.518.295 0 .429-.258.559-.518.07-.139.192-.252.192-.42-.001-.173-.096-.313-.209-.426"/></g><g fill="#dbb471"><path d="m14.499 59.28l-1.717-1.72v-2.055l1.717 1.718v-.443l-3.592-3.594v-2.278l-.313-.313v2.277l-2.188-2.187v-2.278l-.311-.313v2.278l-3.439-3.438v-2.278l-.311-.313v2.278l-2.345-2.341v.444l.78.78v2.057l-.78-.782v.445l2.344 2.344v2.277l.311.313v-2.277l2.188 2.187v2.278l.313.313v-2.277l4.061 4.063v2.277l.313.313v-2.278l2.968 2.97v-.447zm-8.906-8.906l-2.5-2.5v-2.056l2.5 2.499v2.057m3.75 3.75l-3.437-3.438v-2.056l3.437 3.437v2.057m3.125 3.125l-2.813-2.813v-2.056l2.813 2.813v2.056"/><path d="m62 57.16v-.313h-5.469v-2.343h-.313v2.343h-4.765v-2.343h-.313v2.343h-4.609v-2.343h-.313v2.343h-4.063v-2.343h-.312v2.343h-5.313v-2.343h-.312v2.343h-2.97v.313h4.845v2.188h-17.811v-2.188h2.968v-.313h-4.843v-2.343h-.313v2.343h-3.595v.313h5.47v2.188h-5.47v.312h1.095v2.344h.311v-2.344h5.938v2.344h.313v-2.344h4.937v2.344h.311v-2.344h3.69v2.344h.313v-2.344h2.937v2.344h.312v-2.344h5.469v2.344h.313v-2.344h4.999v2.344h.313v-2.344h5.392v2.344h.313v-2.344h4.765v2.344h.313v-2.344h5.467v-.312h-3.594v-2.188h3.594m-18.281 2.189h-5.313v-2.188h5.313v2.188m3.75 0h-3.439v-2.188h3.438v2.188m5.626 0h-5.314v-2.188h5.313v2.188m5 0h-4.688v-2.188h4.688v2.188"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="M14.5 62 2 49.5 2 2 14.5 14.5z"/><path d="m14.5 14.5h47.5v47.5h-47.5z"/><path d="M62 14.5 14.5 14.5 2 2 49.5 2z"/></g><path d="M15.5,12H56l-7.5-7.5H8L15.5,12z" fill="#e8e8e8"/><path fill="#b2c1c0" d="m10.5 7l5 5h36.7l-5-5z"/><path fill="#dbb471" d="m14.5 29.5h47.5v5h-47.5z"/><path opacity=".33" fill="#b2c1c0" d="M14.5 62 2 49.5 2 2 14.5 14.5z"/><path fill="#fbbf67" d="M14.5 34.5 2 22 2 17 14.5 29.5z"/><g fill="#dbb471"><path d="m39.5 37h13.8v5h-13.8z"/><path d="m59.5 37h2.5v5h-2.5z"/><path d="m14.5 37h2.5v5h-2.5z"/><path d="m37.7 38.6c-.6-.6-.3-1.1-.3-1.1l-1-.5-1.1.5c0 0 .3.5-.3 1.1-.3.3-.5.6-.5 1.1 0 .4.3.7.5 1 .3.6.7 1.3 1.4 1.3.7 0 1.1-.6 1.4-1.3.2-.3.5-.6.5-1-.1-.5-.3-.8-.6-1.1"/><path d="m21.5 38.6c-.6-.6-.3-1.1-.3-1.1l-1.1-.5-1.1.5c0 0 .3.5-.3 1.1-.3.3-.5.6-.5 1.1 0 .4.3.7.5 1 .3.6.7 1.3 1.4 1.3.7 0 1.1-.6 1.4-1.3.2-.3.5-.6.5-1 0-.5-.2-.8-.5-1.1"/><path d="m57.7 38.6c-.6-.6-.3-1.1-.3-1.1l-1-.5-1.1.5c0 0 .3.5-.3 1.1-.3.3-.5.6-.5 1.1 0 .4.3.7.5 1 .3.6.7 1.3 1.4 1.3.7 0 1.1-.6 1.4-1.3.2-.3.5-.6.5-1-.1-.5-.3-.8-.6-1.1"/></g><path fill="#fbbf67" d="m13.2 35.8v5l1.3 1.2v-5z"/><g fill="#e8e8e8"><path d="m33.2 44.5h28.8v10h-28.8z"/><path d="m14.5 44.5h8.8v10h-8.8z"/></g><g fill="#fbbf67"><path d="m12.5 36.5c-.2-.8-.1-1.2-.1-1.2l-.4-.8-.4.1c0 0 .1.6-.1 1-.1.2-.2.5-.2.9 0 .4.1.8.2 1.2.1.7.2 1.5.5 1.7.2.2.4-.3.5-.8.1-.3.2-.5.2-.9-.1-.4-.2-.8-.2-1.2"/><path d="m7.5 31.5c-.2-.8-.1-1.2-.1-1.2l-.4-.8-.4.1c0 0 .1.6-.1 1-.1.2-.2.5-.2.9 0 .4.1.8.2 1.2.1.7.2 1.5.5 1.7.2.2.4-.3.5-.8.1-.3.2-.5.2-.9-.1-.4-.2-.8-.2-1.2"/><path d="m8.2 30.8v5l2.5 2.4v-5z"/><path d="m3.2 25.8v5l2.6 2.4v-5z"/></g><path fill="#e8e8e8" d="m2 42l12.5 12.5v-10l-12.5-12.5z"/><g fill="#3e4347"><path opacity=".2" d="m33.2 44.5h28.8v10h-28.8z"/><path opacity=".2" d="m14.5 44.5h8.8v10h-8.8z"/></g><path fill="#dbb471" d="m14.5 54.5h47.5v7.5h-47.5z"/><path opacity=".5" fill="#3e4347" d="m14.5 54.5h47.5v7.5h-47.5z"/><path fill="#dbb471" d="M14.5 62 2 49.5 2 42 14.5 54.5z"/><path opacity=".25" fill="#3e4347" d="M14.5 62 2 49.5 2 42 14.5 54.5z"/><path fill="#ffce31" d="m23.2 42h10v17.5h-10z"/><g fill="#f2b200"><path d="m23.2 58.2h10v1.2h-10z"/><path d="m32 37h1.2v22.5h-1.2z"/></g><path fill="#dbb471" d="m23.2 37v17.5h4.3l.7-5 .8 5h4.2v-17.5z"/><g fill="#fff"><path opacity=".33" d="m30.8 47h-5.1l-1.2-1.2 1.2-1.3h5.1l1.2 1.3z"/><circle cx="30.8" cy="50.8" r="1.3" opacity=".33"/><circle cx="25.8" cy="50.8" r="1.2" opacity=".33"/><path d="m25.8 41c-.2-.2-.1-.4-.1-.4l-.4-.2-.4.2c0 0 .1.2-.1.4-.1.1-.2.3-.2.4 0 .2.1.3.2.4.1.3.3.5.6.5.3 0 .4-.3.6-.5.1-.1.2-.3.2-.4-.2-.1-.3-.3-.4-.4" opacity=".33"/><path d="m27.8 41c-.2-.2-.1-.4-.1-.4l-.4-.2-.4.2c0 0 .1.2-.1.4-.1.1-.2.3-.2.4 0 .2.1.3.2.4.1.3.3.5.6.5.3 0 .4-.3.6-.5.1-.1.2-.3.2-.4-.2-.1-.3-.3-.4-.4" opacity=".33"/><path d="m29.8 41c-.2-.2-.1-.4-.1-.4l-.4-.2-.4.2c0 0 .1.2-.1.4-.1.1-.2.3-.2.4 0 .2.1.3.2.4.1.3.3.5.6.5.3 0 .4-.3.6-.5.1-.1.2-.3.2-.4-.2-.1-.3-.3-.4-.4" opacity=".33"/><path d="m31.8 41c-.2-.2-.1-.4-.1-.4l-.4-.2-.4.2c0 0 .1.2-.1.4-.1.1-.2.3-.2.4 0 .2.1.3.2.4.1.3.3.5.6.5.3 0 .4-.3.6-.5.1-.1.2-.3.2-.4-.2-.1-.3-.3-.4-.4" opacity=".33"/></g><g fill="#dbb471"><path d="m14.5 59.3l-1.7-1.7v-2.1l1.7 1.7v-.4l-3.6-3.6v-2.3l-.3-.3v2.3l-2.2-2.2v-2.3l-.3-.3v2.3l-3.4-3.4v-2.3l-.3-.3v2.3l-2.4-2.4v.4l.8.8v2.1l-.8-.8v.4l2.3 2.3v2.3l.3.3v-2.3l2.2 2.2v2.3l.3.3v-2.3l4.1 4.1v2.3l.3.3v-2.3l3 3v-.4m-8.9-8.9l-2.5-2.5v-2.1l2.5 2.5v2.1m3.7 3.7l-3.4-3.4v-2.1l3.4 3.4v2.1m3.2 3.1l-2.8-2.8v-2.1l2.8 2.8v2.1"/><path d="m62 57.2v-.3h-5.5v-2.3h-.3v2.3h-4.8v-2.3h-.3v2.3h-4.6v-2.3h-.3v2.3h-4.1v-2.3h-.3v2.3h-5.3v-2.3h-.3v2.3h-3v.3h4.8v2.2h-17.7v-2.2h3v-.3h-4.8v-2.3h-.3v2.3h-3.6v.3h5.4v2.2h-5.5v.3h1.1v2.3h.3v-2.3h5.9v2.3h.3v-2.3h4.9v2.3h.3v-2.3h3.7v2.3h.3v-2.3h2.9v2.3h.3v-2.3h5.5v2.3h.3v-2.3h5v2.3h.3v-2.3h5.4v2.3h.3v-2.3h4.8v2.3h.3v-2.3h5.6v-.3h-3.6v-2.2h3.6m-18.3 2.1h-5.3v-2.2h5.3v2.2m3.8 0h-3.5v-2.2h3.4l.1 2.2m5.6 0h-5.3v-2.2h5.3v2.2m5 0h-4.7v-2.2h4.7v2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f54c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f54c.svg
index fbb43c6..071b498 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f54c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f54c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m49 19h8v45h-8z"/><path d="m57 31h-8l-2-2h12z"/></g><path fill="#3e4347" d="m55 23.285c0-.594-.373-1.18-.887-1.485-.752-.447-1.113-.8-1.113-.8s-.363.353-1.115.8c-.513.305-.885.891-.885 1.485 0 .432.191.822.5 1.123v2.592h3v-2.592c.307-.301.5-.691.5-1.123"/><path fill="#e8e8e8" d="m47 27h12v2h-12z"/><g fill="#d3976e"><path d="m53.2 1.6c-.441 0-.8-.358-.8-.8 0-.407.306-.74.7-.79-.033-.003-.066-.01-.099-.01-.553 0-1 .447-1 1 0 .552.447 1 1 1 .552 0 1-.448 1-1 0-.034-.008-.066-.011-.101-.05.395-.382.701-.79.701"/><path d="m52.5 1.75h1v5.25h-1z"/></g><path fill="#e8e8e8" d="m53 5l-4 14h8z"/><circle fill="#d3976e" cx="53" cy="3.25" r="1"/><g fill="#b2c1c0"><path d="m7 19h8v45h-8z"/><path d="m15 31h-8l-2-2h12z"/></g><path fill="#3e4347" d="m13 23.285c0-.594-.373-1.18-.887-1.485-.752-.447-1.113-.8-1.113-.8s-.363.353-1.115.8c-.513.305-.885.891-.885 1.485 0 .432.191.822.5 1.123v2.592h3v-2.592c.306-.301.5-.691.5-1.123"/><path fill="#e8e8e8" d="m5 27h12v2h-12z"/><g fill="#d3976e"><path d="m11.199 1.6c-.441 0-.8-.358-.8-.8 0-.407.306-.74.7-.79-.033-.003-.066-.01-.099-.01-.553 0-1 .447-1 1 0 .552.447 1 1 1 .552 0 1-.448 1-1 0-.034-.008-.066-.011-.101-.05.395-.382.701-.79.701"/><path d="m10.5 1.75h1v5.25h-1z"/></g><path fill="#e8e8e8" d="m11 5l-4 14h8z"/><g fill="#d3976e"><circle cx="11" cy="3.25" r="1"/><path d="m31.5 13h1v9h-1z"/></g><g fill="#fbbf67"><path d="m41.469 26.6c-6.391-3.13-9.469-5.6-9.469-5.6s-3.078 2.47-9.471 5.6c-4.36 2.134-7.529 6.236-7.529 10.399 0 6.629 7.609 12 17 12 9.39 0 17-5.372 17-12 0-4.163-3.171-8.265-7.531-10.399"/><circle cx="32" cy="18" r="2"/></g><g fill="#d3976e"><path d="m33 12c-2.209 0-4-1.791-4-4 0-2.038 1.529-3.701 3.5-3.949-.167-.018-.33-.051-.5-.051-2.762 0-5 2.238-5 5s2.238 5 5 5c2.762 0 5-2.238 5-5 0-.171-.034-.333-.051-.5-.248 1.971-1.912 3.5-3.949 3.5"/><path d="m32 19c-.932 0-1.707-.639-1.93-1.5-.041.161-.07.326-.07.5 0 1.104.895 2 2 2 1.104 0 2-.896 2-2 0-.174-.029-.339-.071-.5-.224.861-1 1.5-1.929 1.5"/><path d="m31.5 19.5h1v1h-1z"/><path d="m32 40c-7.668 0-14.14-1.583-16.264-6.507-.471 1.135-.736 2.318-.736 3.506 0 6.629 7.609 12 17 12 9.39 0 17-5.372 17-12 0-1.188-.267-2.371-.737-3.506-2.12 4.924-8.596 6.507-16.263 6.507"/></g><path fill="#e8e8e8" d="m48 42h-32c-.551 0-1 .45-1 1v20c0 .55.449 1 1 1h32c.549 0 1-.45 1-1v-20c0-.55-.451-1-1-1"/><path fill="#b2c1c0" d="m24.5 54h-7v-3.922c-.326-.545-.5-1.159-.5-1.793 0-1.272.73-2.53 1.861-3.204.509-.302.762-.532.764-.534l1.394-1.278 1.376 1.299c.001-.001.252.223.741.514 1.133.674 1.864 1.932 1.864 3.203 0 .634-.174 1.248-.5 1.793v3.922"/><path fill="#3e4347" d="m36 56.57c0-1.189-.744-2.361-1.771-2.971-1.507-.892-2.229-1.599-2.229-1.599s-.725.707-2.23 1.6c-1.026.609-1.77 1.781-1.77 2.97 0 .861.383 1.646.998 2.244v5.186h6v-5.186c.615-.597 1-1.382 1-2.244"/><path fill="#b2c1c0" d="m26.998 64h2v-5.186c-.616-.597-.998-1.382-.998-2.244 0-1.189.744-2.361 1.77-2.971 1.505-.892 2.23-1.599 2.23-1.599s.723.707 2.23 1.6c1.026.609 1.77 1.781 1.77 2.97 0 .861-.385 1.646-1 2.244v5.186h2v-4.444c.65-.882 1-1.915 1-2.985 0-1.857-1.08-3.698-2.751-4.691-1.237-.733-1.852-1.31-1.853-1.31l-1.388-1.336-1.397 1.326c-.006.006-.619.584-1.863 1.32-1.67.992-2.748 2.833-2.748 4.69 0 1.07.35 2.104.998 2.985v4.445"/><path fill="#3e4347" d="m23 48.28c0-.594-.373-1.18-.887-1.485-.752-.447-1.113-.8-1.113-.8s-.363.353-1.115.8c-.513.305-.885.891-.885 1.485 0 .432.191.822.5 1.123v2.592h3v-2.592c.306-.301.5-.691.5-1.123"/><path fill="#b2c1c0" d="m46.5 54h-7v-3.922c-.326-.545-.5-1.159-.5-1.793 0-1.272.73-2.53 1.861-3.204.509-.302.762-.532.764-.534l1.394-1.278 1.376 1.299c.001-.001.252.223.741.514 1.134.674 1.864 1.932 1.864 3.203 0 .634-.174 1.248-.5 1.793v3.922"/><path fill="#3e4347" d="m45 48.28c0-.594-.373-1.18-.887-1.485-.752-.447-1.113-.8-1.113-.8s-.363.353-1.115.8c-.513.305-.885.891-.885 1.485 0 .432.191.822.5 1.123v2.592h3v-2.592c.307-.301.5-.691.5-1.123"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m49 19h8v45h-8z"/><path d="m57 31h-8l-2-2h12z"/></g><path d="m55 23.3c0-.6-.4-1.2-.9-1.5-.7-.4-1.1-.8-1.1-.8s-.4.4-1.1.8c-.5.3-.9.9-.9 1.5 0 .4.2.8.5 1.1v2.6h3v-2.6c.3-.3.5-.7.5-1.1" fill="#3e4347"/><path fill="#e8e8e8" d="m47 27h12v2h-12z"/><g fill="#d3976e"><path d="m53.2 1.6c-.4 0-.8-.4-.8-.8 0-.4.3-.7.7-.8 0 0-.1 0-.1 0-.6 0-1 .4-1 1 0 .6.4 1 1 1 .6 0 1-.4 1-1 0 0 0-.1 0-.1-.1.4-.4.7-.8.7"/><path d="m52.5 1.8h1v5.2h-1z"/></g><path fill="#e8e8e8" d="m53 5l-4 14h8z"/><circle cx="53" cy="3.2" r="1" fill="#d3976e"/><g fill="#b2c1c0"><path d="m7 19h8v45h-8z"/><path d="m15 31h-8l-2-2h12z"/></g><path d="m13 23.3c0-.6-.4-1.2-.9-1.5-.7-.4-1.1-.8-1.1-.8s-.4.4-1.1.8c-.5.3-.9.9-.9 1.5 0 .4.2.8.5 1.1v2.6h3v-2.6c.3-.3.5-.7.5-1.1" fill="#3e4347"/><path fill="#e8e8e8" d="m5 27h12v2h-12z"/><g fill="#d3976e"><path d="m11.2 1.6c-.4 0-.8-.4-.8-.8 0-.4.3-.7.7-.8 0 0-.1 0-.1 0-.6 0-1 .4-1 1 0 .6.4 1 1 1 .6 0 1-.4 1-1 0 0 0-.1 0-.1-.1.4-.4.7-.8.7"/><path d="m10.5 1.8h1v5.2h-1z"/></g><path fill="#e8e8e8" d="m11 5l-4 14h8z"/><g fill="#d3976e"><circle cx="11" cy="3.2" r="1"/><path d="m31.5 13h1v9h-1z"/></g><g fill="#fbbf67"><path d="m41.5 26.6c-6.4-3.1-9.5-5.6-9.5-5.6s-3.1 2.5-9.5 5.6c-4.3 2.1-7.5 6.2-7.5 10.4 0 6.6 7.6 12 17 12 9.4 0 17-5.4 17-12 0-4.2-3.2-8.3-7.5-10.4"/><circle cx="32" cy="18" r="2"/></g><g fill="#d3976e"><path d="m33 12c-2.2 0-4-1.8-4-4 0-2 1.5-3.7 3.5-3.9-.2-.1-.3-.1-.5-.1-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5c0-.2 0-.3-.1-.5-.2 2-1.9 3.5-3.9 3.5"/><path d="m32 19c-.9 0-1.7-.6-1.9-1.5 0 .2-.1.3-.1.5 0 1.1.9 2 2 2 1.1 0 2-.9 2-2 0-.2 0-.3-.1-.5-.2.9-1 1.5-1.9 1.5"/><path d="m31.5 19.5h1v1h-1z"/><path d="m32 40c-7.7 0-14.1-1.6-16.3-6.5-.4 1.1-.7 2.3-.7 3.5 0 6.6 7.6 12 17 12 9.4 0 17-5.4 17-12 0-1.2-.3-2.4-.7-3.5-2.2 4.9-8.6 6.5-16.3 6.5"/></g><path d="m48 42h-32c-.6 0-1 .5-1 1v20c0 .5.4 1 1 1h32c.5 0 1-.5 1-1v-20c0-.5-.5-1-1-1" fill="#e8e8e8"/><path d="m24.5 54h-7v-3.9c-.3-.5-.5-1.2-.5-1.8 0-1.3.7-2.5 1.9-3.2.5-.3.8-.5.8-.5l1.4-1.3 1.4 1.3c0 0 .3.2.7.5 1.1.7 1.9 1.9 1.9 3.2 0 .6-.2 1.2-.5 1.8v3.9z" fill="#b2c1c0"/><path d="m36 56.6c0-1.2-.7-2.4-1.8-3-1.5-.9-2.2-1.6-2.2-1.6s-.7.7-2.2 1.6c-1 .6-1.8 1.8-1.8 3 0 .9.4 1.6 1 2.2v5.2h6v-5.2c.6-.6 1-1.4 1-2.2" fill="#3e4347"/><path d="m27 64h2v-5.2c-.6-.6-1-1.4-1-2.2 0-1.2.7-2.4 1.8-3 1.5-.9 2.2-1.6 2.2-1.6s.7.7 2.2 1.6c1 .6 1.8 1.8 1.8 3 0 .9-.4 1.6-1 2.2v5.2h2v-4.4c.7-.9 1-1.9 1-3 0-1.9-1.1-3.7-2.8-4.7-1.2-.7-1.9-1.3-1.9-1.3l-1.3-1.4-1.4 1.3c0 0-.6.6-1.9 1.3-1.7 1-2.7 2.8-2.7 4.7 0 1.1.4 2.1 1 3v4.5" fill="#b2c1c0"/><path d="m23 48.3c0-.6-.4-1.2-.9-1.5-.7-.4-1.1-.8-1.1-.8s-.4.4-1.1.8c-.5.3-.9.9-.9 1.5 0 .4.2.8.5 1.1v2.6h3v-2.6c.3-.3.5-.7.5-1.1" fill="#3e4347"/><path d="m46.5 54h-7v-3.9c-.3-.5-.5-1.2-.5-1.8 0-1.3.7-2.5 1.9-3.2.5-.3.8-.5.8-.5l1.4-1.3 1.4 1.3c0 0 .3.2.7.5 1.1.7 1.9 1.9 1.9 3.2 0 .6-.2 1.2-.5 1.8v3.9z" fill="#b2c1c0"/><path d="m45 48.3c0-.6-.4-1.2-.9-1.5-.7-.4-1.1-.8-1.1-.8s-.4.4-1.1.8c-.5.3-.9.9-.9 1.5 0 .4.2.8.5 1.1v2.6h3v-2.6c.3-.3.5-.7.5-1.1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f54d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f54d.svg
index 42c0bfe..e334855 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f54d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f54d.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="m0 33h12v31h-12z"/><path fill="#c94747" d="m2 39h8v17h-8z"/><g fill="#3e4347"><path d="m4.5 47c-.553 0-1 .447-1 1v8h2v-8c0-.553-.447-1-1-1"/><path d="m7.5 47c-.553 0-1 .447-1 1v8h2v-8c0-.553-.447-1-1-1"/></g><path fill="#e8e8e8" d="m6 44c-2.209 0-4 1.791-4 4h1.5c0-1.38 1.119-2.5 2.5-2.5s2.5 1.12 2.5 2.5h1.5c0-2.209-1.791-4-4-4"/><path fill="#3e4347" d="m5 58h2v4h-2z"/><path fill="#e8e8e8" d="m2 38v3c0-.553.447-1 1-1s1 .447 1 1c0-.553.447-1 1-1s1 .447 1 1c0-.553.447-1 1-1s1 .447 1 1c0-.553.447-1 1-1s1 .447 1 1v-3h-8"/><g fill="#c94747"><path d="m3 35c-.553 0-1 .447-1 1v2h2v-2c0-.553-.447-1-1-1"/><path d="m6 35c-.553 0-1 .447-1 1v2h2v-2c0-.553-.447-1-1-1"/><path d="m9 35c-.553 0-1 .447-1 1v2h2v-2c0-.553-.447-1-1-1"/><path d="m0 22h12v11h-12z"/></g><path fill="#ed4c5c" d="m0 22h4v11h-4z"/><path fill="#fff" d="m2 23.19c-1.104 0-2 .896-2 2h4c0-1.105-.896-2-2-2"/><path fill="#e8e8e8" d="m6 23.19c-1.104 0-2 .896-2 2h4c0-1.105-.896-2-2-2"/><g fill="#3e4347"><path d="m2 24c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><path d="m6 24c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><path opacity=".5" d="m8 22h4v11h-4z"/></g><path fill="#b2c1c0" d="m10 23.19c-1.104 0-2 .896-2 2h4c0-1.105-.896-2-2-2"/><path fill="#3e4347" d="m10 24c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><g fill="#fff"><path d="m0 24.19h1v1h-1z"/><path d="m3 24.19h1v1h-1z"/></g><g fill="#e8e8e8"><path d="m4 24.19h1v1h-1z"/><path d="m7 24.19h1v1h-1z"/></g><g fill="#b2c1c0"><path d="m8 24.19h1v1h-1z"/><path d="m11 24.19h1v1h-1z"/></g><g fill="#fff"><path d="m0 27h1v1h-1z"/><path d="m3 27h1v1h-1z"/></g><g fill="#e8e8e8"><path d="m4 27h1v1h-1z"/><path d="m7 27h1v1h-1z"/></g><g fill="#b2c1c0"><path d="m8 27h1v1h-1z"/><path d="m11 27h1v1h-1z"/></g><path fill="#fff" d="m0 30h4v1h-4z"/><path fill="#e8e8e8" d="m4 30h4v1h-4z"/><path fill="#b2c1c0" d="m8 30h4v1h-4z"/><path fill="#fff" d="m0 21h4v1h-4z"/><path fill="#e8e8e8" d="m4 21h4v1h-4z"/><path fill="#b2c1c0" d="m8 21h4v1h-4z"/><g fill="#c94747"><path d="m11 19h-10l-1 2h12z"/><path d="m11 19h-10l-.867-3h11.734z"/></g><path opacity=".5" fill="#3e4347" d="m1 19l-.867-3h11.734l-.867 3z"/><path fill="#c94747" d="m9 10c-2.334-2.334-3-4-3-4s-.666 1.666-3 4c-1.231 1.231-3 2.761-3 5 0 2.762 2.687 4 6 4s6-1.238 6-4c0-2.239-1.769-3.769-3-5"/><path opacity=".5" fill="#3e4347" d="M6,16c-2.665,0-4.922-0.803-5.704-2.554C0.111,13.924,0,14.439,0,15c0,2.762,2.687,4,6,4
- s6-1.238,6-4c0-0.561-0.111-1.076-0.296-1.554C10.922,15.197,8.665,16,6,16z"/><g fill="#e8e8e8"><path d="m3.884 12.361c.387-1.506.96-2.769 1.616-3.861-1.148 1.086-2.258 2.45-2.766 4.426-.634 2.467.067 4.336 1.506 5.574-.805-1.482-1.027-3.527-.356-6.139"/><path d="m8.116 12.361c-.387-1.506-.96-2.769-1.616-3.861 1.148 1.086 2.258 2.45 2.766 4.426.634 2.467-.067 4.336-1.506 5.574.805-1.482 1.027-3.527.356-6.139"/></g><g fill="#b2c1c0"><path d="m6.666 1l.334-.5h-.666l-.334-.5-.334.5h-.666l.334.5-.334.5h.666l.334.5.334-.5h.666z"/><path d="M5.963,1.5C5.77,5.564,4.858,7.861,4.858,7.861C5.5,8,5.713,8,6,8s0.5,0,1.142-0.139
- c0,0-0.911-2.297-1.104-6.361H5.963z"/><circle cx="6" cy="6" r="1"/><circle cx="6" cy="4" r=".5"/></g><g fill="#e8e8e8"><ellipse cx="6" cy="5.75" rx=".75" ry=".5"/><ellipse cx="6" cy="3.75" rx=".25" ry=".125"/><path d="m52 33h12v31h-12z"/></g><path fill="#c94747" d="m54 39h8v17h-8z"/><g fill="#3e4347"><path d="m56.5 47c-.553 0-1 .447-1 1v8h2v-8c0-.553-.447-1-1-1"/><path d="m59.5 47c-.553 0-1 .447-1 1v8h2v-8c0-.553-.447-1-1-1"/></g><path fill="#e8e8e8" d="m58 44c-2.209 0-4 1.791-4 4h1.5c0-1.38 1.119-2.5 2.5-2.5s2.5 1.12 2.5 2.5h1.5c0-2.209-1.791-4-4-4"/><path fill="#3e4347" d="m57 58h2v4h-2z"/><path fill="#e8e8e8" d="m54 38v3c0-.553.447-1 1-1s1 .447 1 1c0-.553.447-1 1-1s1 .447 1 1c0-.553.447-1 1-1s1 .447 1 1c0-.553.447-1 1-1s1 .447 1 1v-3h-8"/><g fill="#c94747"><path d="m55 35c-.553 0-1 .447-1 1v2h2v-2c0-.553-.447-1-1-1"/><path d="m58 35c-.553 0-1 .447-1 1v2h2v-2c0-.553-.447-1-1-1"/><path d="m61 35c-.553 0-1 .447-1 1v2h2v-2c0-.553-.447-1-1-1"/><path d="m52 22h12v11h-12z"/></g><path fill="#ed4c5c" d="m52 22h4v11h-4z"/><path fill="#fff" d="m54 23.19c-1.104 0-2 .896-2 2h4c0-1.105-.896-2-2-2"/><path fill="#e8e8e8" d="m58 23.19c-1.104 0-2 .896-2 2h4c0-1.105-.896-2-2-2"/><g fill="#3e4347"><path d="m54 24c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><path d="m58 24c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><path opacity=".5" d="m60 22h4v11h-4z"/></g><path fill="#b2c1c0" d="m62 23.19c-1.104 0-2 .896-2 2h4c0-1.105-.896-2-2-2"/><path fill="#3e4347" d="m62 24c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><g fill="#fff"><path d="m52 24.19h1v1h-1z"/><path d="m55 24.19h1v1h-1z"/></g><g fill="#e8e8e8"><path d="m56 24.19h1v1h-1z"/><path d="m59 24.19h1v1h-1z"/></g><g fill="#b2c1c0"><path d="m60 24.19h1v1h-1z"/><path d="m63 24.19h1v1h-1z"/></g><g fill="#fff"><path d="m52 27h1v1h-1z"/><path d="m55 27h1v1h-1z"/></g><g fill="#e8e8e8"><path d="m56 27h1v1h-1z"/><path d="m59 27h1v1h-1z"/></g><g fill="#b2c1c0"><path d="m60 27h1v1h-1z"/><path d="m63 27h1v1h-1z"/></g><path fill="#fff" d="m52 30h4v1h-4z"/><path fill="#e8e8e8" d="m56 30h4v1h-4z"/><path fill="#b2c1c0" d="m60 30h4v1h-4z"/><path fill="#fff" d="m52 21h4v1h-4z"/><path fill="#e8e8e8" d="m56 21h4v1h-4z"/><path fill="#b2c1c0" d="m60 21h4v1h-4z"/><g fill="#c94747"><path d="m63 19h-10l-1 2h12z"/><path d="m63 19h-10l-.87-3h11.737z"/></g><path opacity=".5" fill="#3e4347" d="m53 19l-.87-3h11.737l-.867 3z"/><path fill="#c94747" d="m61 10c-2.334-2.334-3-4-3-4s-.666 1.666-3 4c-1.231 1.231-3 2.761-3 5 0 2.762 2.687 4 6 4s6-1.238 6-4c0-2.239-1.769-3.769-3-5"/><path opacity=".5" fill="#3e4347" d="m58 16c-2.665 0-4.922-.803-5.704-2.554-.185.478-.296.993-.296 1.554 0 2.762 2.687 4 6 4s6-1.238 6-4c0-.561-.111-1.076-.296-1.554-.782 1.751-3.039 2.554-5.704 2.554"/><g fill="#e8e8e8"><path d="m55.884 12.361c.388-1.506.96-2.77 1.616-3.861-1.148 1.086-2.258 2.45-2.766 4.426-.635 2.467.066 4.336 1.506 5.574-.805-1.482-1.027-3.527-.356-6.139"/><path d="m60.12 12.361c-.388-1.506-.96-2.77-1.616-3.861 1.148 1.086 2.258 2.45 2.766 4.426.635 2.467-.066 4.336-1.506 5.574.805-1.482 1.027-3.527.356-6.139"/></g><g fill="#b2c1c0"><path d="m58.666 1l.334-.5h-.67l-.33-.5-.334.5h-.666l.33.5-.33.5h.666l.334.5.33-.5h.67z"/><path d="m57.963 1.5c-.193 4.064-1.104 6.361-1.104 6.361.641.139.854.139 1.141.139s.5 0 1.142-.139c0 0-.911-2.297-1.104-6.361h-.075"/><circle cx="58" cy="6" r="1"/><circle cx="58" cy="4" r=".5"/></g><g fill="#e8e8e8"><ellipse cx="58" cy="5.75" rx=".75" ry=".5"/><ellipse cx="58" cy="3.75" rx=".25" ry=".125"/></g><path fill="#b2c1c0" d="m32 10c-2.209 0-4 1.791-4 4v6h8v-6c0-2.209-1.791-4-4-4"/><path fill="#e8e8e8" d="m30 19h4v-5c0-1.103-.897-2-2-2-1.104 0-2 .897-2 2v5"/><path fill="#b2c1c0" d="m32 15l-20 10v39h40v-39z"/><path fill="#c94747" d="M14,64h36V26.236l-18-9l-18,9V64z"/><g fill="#89664c"><path d="m22 43.5c-2.762 0-5 2.238-5 5v15.5h10v-15.5c0-2.762-2.238-5-5-5"/><path d="m32 43.5c-2.762 0-5 2.238-5 5v15.5h10v-15.5c0-2.762-2.238-5-5-5"/><path d="m42 43.5c-2.762 0-5 2.238-5 5v15.5h10v-15.5c0-2.762-2.238-5-5-5"/></g><path fill="#e8e8e8" d="m42 42c-2.088 0-3.926 1.068-5 2.687-1.074-1.619-2.912-2.687-5-2.687s-3.926 1.068-5 2.687c-1.074-1.619-2.912-2.687-5-2.687-3.313 0-6 2.687-6 6v16h2v-16c0-2.208 1.791-4 4-4s4 1.792 4 4v16h2v-16c0-2.208 1.791-4 4-4s4 1.792 4 4v16h2v-16c0-2.208 1.791-4 4-4s4 1.792 4 4v16h2v-16c0-3.313-2.687-6-6-6"/><g fill="#594640"><path d="m18 48h8v2h-8z"/><path d="m28 48h8v2h-8z"/><path d="m38 48h8v2h-8z"/><path d="m21 48h2v16h-2z"/><path d="m31 48h2v16h-2z"/><path d="m41 48h2v16h-2z"/></g><path fill="#3e4347" d="m28 26.06h8v7.342h-8z"/><g fill="#e8e8e8"><path d="m41 34.841h-18l9-14.841 9 14.841m-14.74-1.83h11.482l-5.742-9.463-5.74 9.463"/><path d="M32,40l-9-14.84h18L32,40z M26.26,26.989L32,36.452l5.742-9.463H26.26z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="M 2,32.9 H13.2 V62 H2 z"/><path fill="#c94747" d="m3.9 36h7.5v18.5h-7.5z"/><path d="m7.6 43.1c-.5 0-.9.4-.9.9v10.5h1.9v-10.5c0-.5-.5-.9-1-.9" fill="#3e4347"/><path d="m7.6 40.2c-2.1 0-3.8 1.7-3.8 3.8h1.4c0-1.3 1-2.3 2.3-2.3s2.5 1 2.5 2.3h1.4c0-2.1-1.7-3.8-3.8-3.8" fill="#e8e8e8"/><path fill="#3e4347" d="m6.7 56.4h1.9v3.8h-1.9z"/><path fill="#c94747" d="m2 22.6h11.2v10.3h-11.2z"/><g fill="#e8e8e8"><path d="m13 24.7c-.3-.6-.9-.9-1.6-.9-.7 0-1.3.4-1.6.9h-.6c-.3-.6-.9-.9-1.6-.9-.7 0-1.3.4-1.6.9h-.5c-.3-.6-.9-.9-1.6-.9-.7 0-1.3.4-1.6.9h-.3v.9h11.2v-.9h-.2"/><path d="m9.5 21.7h-3.7-3.8v.9h3.8 3.7 3.7v-.9z"/></g><path d="m13.1 17c.1-.3.1-.6.1-.9 0-2.1-1.7-3.5-2.8-4.7-2.2-2.2-2.8-3.8-2.8-3.8s-.6 1.6-2.8 3.8c-1.1 1.1-2.8 2.6-2.8 4.7 0 .3 0 .6.1.9l.8 2.8-.9 1.9h11.2l-.9-1.9.8-2.8" fill="#c94747"/><g fill="#e8e8e8"><path d="m5.6 13.6c.4-1.4.9-2.6 1.6-3.6-1.1 1-2.1 2.3-2.6 4.1-.6 2.3 0 4.1 1.4 5.2-.8-1.3-1-3.3-.4-5.7"/><path d="m9.6 13.6c-.4-1.4-.9-2.6-1.5-3.6 1.1 1 2.1 2.3 2.6 4.1.6 2.3-.1 4.1-1.4 5.2.7-1.3.9-3.3.3-5.7"/></g><g fill="#b2c1c0"><path d="m8.2 2.9l.4-.4h-.7l-.3-.5-.3.5h-.6l.3.4-.3.5h.6l.3.5.3-.5h.7z"/><path d="m7.6 3.4c-.2 3.8-1 6-1 6 .6.1.8.1 1.1.1.3 0 .5 0 1.1-.1-.1 0-1-2.2-1.2-6"/></g><path fill="#e8e8e8" d="m50.8 32.9h11.2v29.1h-11.2z"/><path fill="#c94747" d="m52.6 36h7.5v18.5h-7.5z"/><path d="m56.4 43.1c-.5 0-.9.4-.9.9v10.5h1.9v-10.5c-.1-.5-.5-.9-1-.9" fill="#3e4347"/><path d="m56.4 40.2c-2.1 0-3.8 1.7-3.8 3.8h1.4c0-1.3 1-2.3 2.3-2.3s2.3 1.1 2.3 2.3h1.4c.1-2.1-1.6-3.8-3.6-3.8" fill="#e8e8e8"/><path fill="#3e4347" d="m55.4 56.4h1.9v3.8h-1.9z"/><path fill="#c94747" d="m50.8 22.6h11.2v10.3h-11.2z"/><g fill="#e8e8e8"><path d="m60.1 23.7c-.7 0-1.3.4-1.6.9h-.5c-.3-.6-.9-.9-1.6-.9-.7 0-1.3.4-1.6.9h-.5c-.3-.6-.9-.9-1.6-.9-.7 0-1.3.4-1.6.9h-.3v.9h11.2v-.9h-.3c-.3-.5-.9-.9-1.6-.9"/><path d="m58.2 21.7h-3.7-3.7v.9h3.7 3.7 3.8v-.9z"/></g><path d="m61.9 17c.1-.3.1-.6.1-.9 0-2.1-1.7-3.5-2.8-4.7-2.2-2.2-2.8-3.8-2.8-3.8s-.6 1.6-2.8 3.8c-1.2 1.2-2.8 2.6-2.8 4.7 0 .3 0 .6.1.9l.8 2.8-.9 1.9h11.2l-.9-1.9.8-2.8" fill="#c94747"/><g fill="#e8e8e8"><path d="m54.4 13.6c.4-1.4.9-2.6 1.5-3.6-1.1 1-2.1 2.3-2.6 4.1-.6 2.3.1 4.1 1.4 5.2-.7-1.3-.9-3.3-.3-5.7"/><path d="m58.4 13.6c-.4-1.4-.9-2.6-1.6-3.6 1.1 1 2.1 2.3 2.6 4.1.6 2.3-.1 4.1-1.4 5.2.8-1.3 1-3.3.4-5.7"/></g><g fill="#b2c1c0"><path d="m57 2.9l.3-.4h-.6l-.3-.5-.3.5h-.7l.4.4-.4.5h.7l.3.5.3-.5h.6z"/><path d="m56.3 3.4c-.2 3.8-1 6-1 6 .6.1.8.1 1.1.1s.5 0 1.1-.1c-.1 0-.9-2.2-1.2-6"/><path d="m32 11.4c-2.1 0-3.8 1.7-3.8 3.8v5.6h7.5v-5.6c.1-2.1-1.6-3.8-3.7-3.8"/></g><path d="m30.1 19.8h3.8v-4.7c0-1-.8-1.9-1.9-1.9-1 0-1.9.8-1.9 1.9v4.7" fill="#3e4347"/><path fill="#b2c1c0" d="m32 16.1l-18.8 9.3v36.6h37.6v-36.6z"/><path d="M15.1,62h33.8V26.6L32,18.2l-16.9,8.4V62z" fill="#c94747"/><g fill="#89664c"><path d="m22.6 42.8c-2.6 0-4.7 2.1-4.7 4.7v14.5h9.4v-14.5c0-2.6-2.1-4.7-4.7-4.7"/><path d="m32 42.8c-2.6 0-4.7 2.1-4.7 4.7v14.5h9.4v-14.5c0-2.6-2.1-4.7-4.7-4.7"/><path d="m41.4 42.8c-2.6 0-4.7 2.1-4.7 4.7v14.5h9.4v-14.5c0-2.6-2.1-4.7-4.7-4.7"/></g><path d="m41.4 41.4c-2 0-3.7 1-4.7 2.5-1-1.5-2.7-2.5-4.7-2.5s-3.7 1-4.7 2.5c-1-1.5-2.7-2.5-4.7-2.5-3.1 0-5.6 2.5-5.6 5.6v15h1.9v-15c0-2.1 1.7-3.8 3.8-3.8s3.8 1.7 3.8 3.8v15h1.9v-15c0-2.1 1.7-3.8 3.8-3.8s3.8 1.7 3.8 3.8v15h1.9v-15c0-2.1 1.7-3.8 3.8-3.8s3.8 1.7 3.8 3.8v15h1.5v-15c0-3.1-2.5-5.6-5.6-5.6" fill="#e8e8e8"/><g fill="#594640"><path d="m45.1 47h-7.5v1.9h2.8v13.1h1.9v-13.1h2.8z"/><path d="m18.9 47v1.9h2.8v13.1h1.9v-13.1h2.8v-1.9z"/><path d="m28.2 47v1.9h2.9v13.1h1.8v-13.1h2.9v-1.9z"/></g><path fill="#3e4347" d="m28.2 26.4h7.5v6.9h-7.5z"/><g fill="#e8e8e8"><path d="m40.4 34.7h-16.8l8.4-13.9 8.4 13.9m-13.8-1.8h10.8l-5.4-8.8-5.4 8.8"/><path d="m32 39.5l-8.4-13.9h16.9l-8.5 13.9m-5.4-12.2l5.4 8.9 5.4-8.9c0 0-10.8 0-10.8 0"/></g><g fill="#3e4347"><path d="m3.9 24.5c-.5 0-.9.4-.9.9v6.6h1.9v-6.6c-.1-.5-.5-.9-1-.9"/><path d="m7.6 24.5c-.5 0-.9.4-.9.9v6.6h1.9v-6.6c0-.5-.5-.9-1-.9"/><path d="m11.4 24.5c-.5 0-.9.4-.9.9v6.6h1.9v-6.6c-.1-.5-.5-.9-1-.9"/><path d="m52.6 24.5c-.5 0-.9.4-.9.9v6.6h1.9v-6.6c0-.5-.5-.9-1-.9"/><path d="m56.4 24.5c-.5 0-.9.4-.9.9v6.6h1.9v-6.6c-.1-.5-.5-.9-1-.9"/><path d="m60.1 24.5c-.5 0-.9.4-.9.9v6.6h1.9v-6.6c0-.5-.5-.9-1-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f54e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f54e.svg
index ec0b6c3..82e1ca3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f54e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f54e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffb700"><path d="m7.143 21c0 .55-.449 1-1 1h-3.143c-.55 0-1-.45-1-1 0-.55.45-1 1-1h3.143c.55 0 1 .45 1 1"/><path d="m6.143 25c0 .55-.449 1-1 1h-1.143c-.55 0-1-.45-1-1 0-.55.45-1 1-1h1.143c.55 0 1 .45 1 1"/><path d="m13 25c0 .55-.45 1-1 1h-1.143c-.551 0-1-.45-1-1 0-.55.449-1 1-1h1.143c.55 0 1 .45 1 1"/><path d="m19.857 25c0 .55-.45 1-1 1h-1.143c-.551 0-1-.45-1-1 0-.55.449-1 1-1h1.143c.55 0 1 .45 1 1"/><path d="m14 21c0 .55-.45 1-1 1h-3.143c-.551 0-1-.45-1-1 0-.55.449-1 1-1h3.143c.55 0 1 .45 1 1"/><path d="m20.857 21c0 .55-.451 1-1 1h-3.143c-.551 0-1-.45-1-1 0-.55.449-1 1-1h3.143c.549 0 1 .45 1 1"/><path d="m27.715 21c0 .55-.451 1-1 1h-3.144c-.55 0-1-.45-1-1 0-.55.45-1 1-1h3.144c.549 0 1 .45 1 1"/><path d="m34.571 19c0 .55-.45 1-1 1h-3.143c-.55 0-1-.45-1-1 0-.55.45-1 1-1h3.143c.55 0 1 .45 1 1"/><path d="m41.43 21c0 .55-.45 1-1 1h-3.144c-.549 0-1-.45-1-1 0-.55.451-1 1-1h3.144c.55 0 1 .45 1 1"/><path d="m48.28 21c0 .55-.449 1-1 1h-3.143c-.549 0-1-.45-1-1 0-.55.451-1 1-1h3.143c.551 0 1 .45 1 1"/><path d="m55.14 21c0 .55-.449 1-1 1h-3.143c-.55 0-1-.45-1-1 0-.55.45-1 1-1h3.143c.55 0 1 .45 1 1"/><path d="m62 21c0 .55-.45 1-1 1h-3.143c-.551 0-1-.45-1-1 0-.55.449-1 1-1h3.143c.55 0 1 .45 1 1"/><path d="m2.6 21c-.014.164-.028.328-.028.5 0 1.934.896 3.5 2 3.5s2-1.566 2-3.5c0-.172-.015-.336-.028-.5h-3.944"/><path d="m9.457 21c-.014.164-.029.328-.029.5 0 1.934.896 3.5 2 3.5 1.105 0 2-1.566 2-3.5 0-.172-.015-.336-.028-.5h-3.943"/><path d="m16.314 21c-.014.164-.029.328-.029.5 0 1.934.896 3.5 2 3.5 1.105 0 2-1.566 2-3.5 0-.172-.015-.336-.028-.5h-3.943"/><path d="m23.17 21c-.014.164-.029.328-.029.5 0 1.934.896 3.5 2 3.5s2-1.566 2-3.5c0-.172-.016-.336-.029-.5h-3.942"/><path d="m36.887 21c-.014.164-.029.328-.029.5 0 1.934.896 3.5 2 3.5s2-1.566 2-3.5c0-.172-.016-.336-.029-.5h-3.942"/><path d="m43.743 21c-.014.164-.028.328-.028.5 0 1.934.895 3.5 2 3.5 1.104 0 2-1.566 2-3.5 0-.172-.016-.336-.029-.5h-3.943"/><path d="m50.6 21c-.014.164-.028.328-.028.5 0 1.934.896 3.5 2 3.5s2-1.566 2-3.5c0-.172-.015-.336-.028-.5h-3.944"/><path d="m57.46 21c-.014.164-.029.328-.029.5 0 1.934.896 3.5 2 3.5 1.105 0 2-1.566 2-3.5 0-.172-.015-.336-.028-.5h-3.943"/><path d="m30.03 19c-.013.164-.029.328-.029.5 0 1.934.896 3.5 2 3.5s2-1.566 2-3.5c0-.172-.016-.336-.029-.5h-3.942"/><path d="m26.715 25c0 .55-.451 1-1 1h-1.144c-.55 0-1-.45-1-1 0-.55.45-1 1-1h1.144c.549 0 1 .45 1 1"/><path d="m40.43 25c0 .55-.451 1-1 1h-1.144c-.55 0-1-.45-1-1 0-.55.45-1 1-1h1.144c.549 0 1 .45 1 1"/><path d="m47.29 25c0 .55-.45 1-1 1h-1.144c-.549 0-1-.45-1-1 0-.55.451-1 1-1h1.144c.55 0 1 .45 1 1"/><path d="m54.14 25c0 .55-.449 1-1 1h-1.143c-.55 0-1-.45-1-1 0-.55.45-1 1-1h1.143c.55 0 1 .45 1 1"/><path d="m61 25c0 .55-.45 1-1 1h-1.143c-.551 0-1-.45-1-1 0-.55.449-1 1-1h1.143c.55 0 1 .45 1 1"/><path d="m32 51.982c-15.676 0-28.429-12.754-28.429-28.429h2c0 14.573 11.856 26.429 26.429 26.429s26.428-11.855 26.428-26.429h2c0 15.676-12.752 28.429-28.428 28.429"/><path d="m32 45.05c-11.855 0-21.5-9.646-21.5-21.5h2c0 10.753 8.748 19.5 19.5 19.5s19.5-8.747 19.5-19.5h2c0 11.854-9.645 21.5-21.5 21.5"/><path d="m32 38.554c-8.271 0-15-6.729-15-15h2c0 7.169 5.832 13 13 13s13-5.831 13-13h2c0 8.27-6.729 15-15 15"/><path d="m32 31.554c-4.411 0-8-3.589-8-8h2c0 3.309 2.691 6 6 6s6-2.691 6-6h2c0 4.411-3.589 8-8 8"/><path d="m31 21h2v35h-2z"/><path d="m36 56.47c0 .848-1.791 1.535-4 1.535s-4-.687-4-1.535c0-.848 1.791-2.465 4-2.465s4 1.617 4 2.465"/><path d="m40 59.45c0 1.905-3.582 2.549-8 2.549s-8-.644-8-2.549c0-1.906 3.582-3.451 8-3.451s8 1.545 8 3.451"/></g><path fill="#e8e8e8" d="m5.143 12h-1.143c-.551 0-1 .45-1 1v7h3.143v-7c0-.55-.451-1-1-1"/><path fill="#b2c1c0" d="m4.554 9l-.483 3h1z"/><path fill="#ff8736" d="m4.93 4c0 0-1.688 1.82-1.324 4.74.18 1.455 1.948 1.888 1.948.008 0-2.02-1.316-2.046-.624-4.748"/><path fill="#e8e8e8" d="m12 12h-1.143c-.551 0-1 .45-1 1v7h3.143v-7c0-.55-.45-1-1-1"/><path fill="#b2c1c0" d="m11.411 9l-.482 3h1z"/><path fill="#ff8736" d="m11.787 4c0 0-1.688 1.82-1.324 4.74.18 1.455 1.948 1.888 1.948.008 0-2.02-1.315-2.046-.624-4.748"/><path fill="#e8e8e8" d="m18.857 12h-1.144c-.55 0-1 .45-1 1v7h3.144v-7c0-.55-.451-1-1-1"/><path fill="#b2c1c0" d="m18.268 9l-.483 3h1z"/><path fill="#ff8736" d="m18.644 4c0 0-1.688 1.82-1.324 4.74.181 1.455 1.948 1.888 1.948.008 0-2.02-1.316-2.046-.624-4.748"/><path fill="#e8e8e8" d="m25.714 12h-1.144c-.549 0-1 .45-1 1v7h3.144v-7c0-.55-.45-1-1-1"/><path fill="#b2c1c0" d="m25.13 9l-.487 3h1z"/><path fill="#ff8736" d="m25.5 4c0 0-1.688 1.82-1.324 4.74.182 1.455 1.949 1.888 1.949.008 0-2.02-1.316-2.046-.625-4.748"/><path fill="#e8e8e8" d="m32.571 10h-1.144c-.549 0-1 .45-1 1v7h3.144v-7c0-.55-.45-1-1-1"/><path fill="#b2c1c0" d="m31.982 7l-.482 3h1z"/><path fill="#ff8736" d="m32.357 2c0 0-1.688 1.82-1.324 4.74.182 1.455 1.949 1.888 1.949.008 0-2.02-1.316-2.046-.625-4.748"/><path fill="#e8e8e8" d="m39.43 12h-1.144c-.55 0-1 .45-1 1v7h3.144v-7c0-.55-.451-1-1-1"/><path fill="#b2c1c0" d="m38.84 9l-.48 3h1z"/><path fill="#ff8736" d="m39.22 4c0 0-1.688 1.82-1.324 4.74.181 1.455 1.948 1.888 1.948.008 0-2.02-1.316-2.046-.624-4.748"/><path fill="#e8e8e8" d="m46.28 12h-1.143c-.55 0-1 .45-1 1v7h3.143v-7c0-.55-.449-1-1-1"/><path fill="#b2c1c0" d="m45.697 9l-.477 3h1z"/><path fill="#ff8736" d="m46.07 4c0 0-1.688 1.82-1.324 4.74.181 1.455 1.949 1.888 1.949.008 0-2.02-1.316-2.046-.625-4.748"/><path fill="#e8e8e8" d="m60 12h-1.144c-.55 0-1 .45-1 1v7h3.144v-7c0-.55-.451-1-1-1"/><path fill="#b2c1c0" d="m59.41 9l-.482 3h1z"/><path fill="#ff8736" d="m59.786 4c0 0-1.688 1.82-1.324 4.74.181 1.455 1.948 1.888 1.948.008 0-2.02-1.315-2.046-.624-4.748"/><path fill="#e8e8e8" d="m53.14 12h-1.143c-.55 0-1 .45-1 1v7h3.143v-7c0-.55-.45-1-1-1"/><path fill="#b2c1c0" d="m52.55 9l-.48 3h1z"/><path fill="#ff8736" d="m52.93 4c0 0-1.688 1.82-1.324 4.74.181 1.455 1.949 1.888 1.949.008 0-2.02-1.317-2.046-.625-4.748"/><g fill="#c28200"><path d="m36.17 57.725c.197.188-1.49 1.651-4.175 1.651s-4.372-1.464-4.175-1.651c.144-.247 1.866.67 4.175.651 2.309.019 4.03-.898 4.175-.651"/><ellipse cx="4.571" cy="22.25" rx="1.5" ry=".25"/><ellipse cx="11.429" cy="22.25" rx="1.5" ry=".25"/><ellipse cx="18.286" cy="22.25" rx="1.5" ry=".25"/><ellipse cx="25.14" cy="22.25" rx="1.5" ry=".25"/><ellipse cx="38.857" cy="22.13" rx="1.5" ry=".25"/><ellipse cx="32" cy="20" rx="1.5" ry=".25"/><ellipse cx="45.76" cy="22.13" rx="1.5" ry=".25"/><ellipse cx="52.57" cy="22.13" rx="1.5" ry=".25"/><ellipse cx="59.43" cy="22.13" rx="1.5" ry=".25"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffb700"><path d="m7.1 21c0 .5-.4 1-1 1h-3.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h3.1c.6 0 1 .5 1 1"/><path d="m6.1 25c0 .5-.4 1-1 1h-1.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h1.1c.6 0 1 .5 1 1"/><path d="m13 25c0 .5-.4 1-1 1h-1.1c-.6 0-1-.5-1-1 0-.5.4-1 1-1h1.1c.6 0 1 .5 1 1"/><path d="m19.9 25c0 .5-.5 1-1 1h-1.1c-.6 0-1-.5-1-1 0-.5.4-1 1-1h1.1c.5 0 1 .5 1 1"/><path d="m14 21c0 .5-.4 1-1 1h-3.1c-.6 0-1-.5-1-1 0-.5.4-1 1-1h3.1c.6 0 1 .5 1 1"/><path d="m20.9 21c0 .5-.5 1-1 1h-3.1c-.6 0-1-.5-1-1 0-.5.4-1 1-1h3.1c.5 0 1 .5 1 1"/><path d="m27.7 21c0 .5-.5 1-1 1h-3.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h3.1c.6 0 1 .5 1 1"/><path d="m34.6 19c0 .5-.5 1-1 1h-3.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h3.1c.5 0 1 .5 1 1"/><path d="m41.4 21c0 .5-.5 1-1 1h-3.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h3.1c.6 0 1 .5 1 1"/><path d="m48.3 21c0 .5-.4 1-1 1h-3.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h3.1c.5 0 1 .5 1 1"/><path d="m55.1 21c0 .5-.4 1-1 1h-3.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h3.1c.6 0 1 .5 1 1"/><path d="m62 21c0 .5-.5 1-1 1h-3.1c-.6 0-1-.5-1-1 0-.5.4-1 1-1h3.1c.5 0 1 .5 1 1"/><path d="m2.6 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5s2-1.6 2-3.5c0-.2 0-.3 0-.5h-4"/><path d="m9.5 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5 1.1 0 2-1.6 2-3.5 0-.2 0-.3 0-.5h-4"/><path d="m16.3 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5 1.1 0 2-1.6 2-3.5 0-.2 0-.3 0-.5h-4"/><path d="m23.2 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5s2-1.6 2-3.5c0-.2 0-.3 0-.5h-4"/><path d="m36.9 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5s2-1.6 2-3.5c0-.2 0-.3 0-.5h-4"/><path d="m43.7 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5 1.1 0 2-1.6 2-3.5 0-.2 0-.3 0-.5h-4"/><path d="m50.6 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5s2-1.6 2-3.5c0-.2 0-.3 0-.5h-4"/><path d="m57.5 21c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5 1.1 0 2-1.6 2-3.5 0-.2 0-.3 0-.5h-4"/><path d="m30 19c0 .2 0 .3 0 .5 0 1.9.9 3.5 2 3.5s2-1.6 2-3.5c0-.2 0-.3 0-.5h-4"/><path d="m26.7 25c0 .5-.5 1-1 1h-1.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h1.1c.6 0 1 .5 1 1"/><path d="m40.4 25c0 .5-.5 1-1 1h-1.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h1.1c.6 0 1 .5 1 1"/><path d="m47.3 25c0 .5-.5 1-1 1h-1.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h1.1c.5 0 1 .5 1 1"/><path d="m54.1 25c0 .5-.4 1-1 1h-1.1c-.5 0-1-.5-1-1 0-.5.5-1 1-1h1.1c.6 0 1 .5 1 1"/><path d="m61 25c0 .5-.5 1-1 1h-1.1c-.6 0-1-.5-1-1 0-.5.4-1 1-1h1.1c.5 0 1 .5 1 1"/><path d="M32,52C16.3,52,3.6,39.2,3.6,23.6h2C5.6,38.1,17.4,50,32,50s26.4-11.9,26.4-26.4h2C60.4,39.2,47.7,52,32,52z"/><path d="m32 45.1c-11.9 0-21.5-9.6-21.5-21.5h2c0 10.8 8.7 19.5 19.5 19.5s19.5-8.7 19.5-19.5h2c0 11.8-9.6 21.5-21.5 21.5"/><path d="m32 38.6c-8.3 0-15-6.7-15-15h2c0 7.2 5.8 13 13 13s13-5.8 13-13h2c0 8.2-6.7 15-15 15"/><path d="m32 31.6c-4.4 0-8-3.6-8-8h2c0 3.3 2.7 6 6 6s6-2.7 6-6h2c0 4.4-3.6 8-8 8"/><path d="m31 21h2v35h-2z"/><path d="m36 56.5c0 .8-1.8 1.5-4 1.5s-4-.7-4-1.5 1.8-2.5 4-2.5 4 1.6 4 2.5"/><path d="m40 59.5c0 1.9-3.6 2.5-8 2.5s-8-.6-8-2.5c0-1.9 3.6-3.5 8-3.5s8 1.5 8 3.5"/></g><path d="m5.1 12h-1.1c-.6 0-1 .4-1 1v7h3.1v-7c0-.6-.4-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m4.6 9l-.5 3h1z"/><path d="m4.9 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 .1-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m12 12h-1.1c-.6 0-1 .4-1 1v7h3.1v-7c0-.6-.4-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m11.4 9l-.5 3h1z"/><path d="m11.8 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 0-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m18.9 12h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.5-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m18.3 9l-.5 3h1z"/><path d="m18.6 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 .1-2-1.2-2-.6-4.7" fill="#ff8736"/><path d="m25.7 12h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.4-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m25.1 9l-.5 3h1z"/><path d="m25.5 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 0-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m32.6 10h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.5-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m32 7l-.5 3h1z"/><path d="m32.4 2c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 0-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m39.4 12h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.4-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m38.8 9l-.4 3h1z"/><path d="m39.2 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 0-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m46.3 12h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.5-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m45.7 9l-.5 3h1z"/><path d="m46.1 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 0-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m60 12h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.5-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m59.4 9l-.5 3h1z"/><path d="m59.8 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 0-2-1.3-2-.6-4.7" fill="#ff8736"/><path d="m53.1 12h-1.1c-.5 0-1 .4-1 1v7h3.1v-7c0-.6-.4-1-1-1" fill="#e8e8e8"/><path fill="#b2c1c0" d="m52.6 9l-.5 3h1z"/><path d="m52.9 4c0 0-1.7 1.8-1.3 4.7.2 1.5 1.9 1.9 1.9 0 .1-2-1.3-2-.6-4.7" fill="#ff8736"/><g fill="#c28200"><path d="m36.2 57.7c.2.2-1.5 1.7-4.2 1.7s-4.4-1.5-4.2-1.7c.1-.2 1.9.7 4.2.7 2.3 0 4-.9 4.2-.7"/><ellipse cx="4.6" cy="22.2" rx="1.5" ry=".2"/><ellipse cx="11.4" cy="22.2" rx="1.5" ry=".2"/><ellipse cx="18.3" cy="22.2" rx="1.5" ry=".2"/><ellipse cx="25.1" cy="22.2" rx="1.5" ry=".2"/><ellipse cx="38.9" cy="22.1" rx="1.5" ry=".2"/><ellipse cx="32" cy="20" rx="1.5" ry=".2"/><ellipse cx="45.8" cy="22.1" rx="1.5" ry=".2"/><ellipse cx="52.6" cy="22.1" rx="1.5" ry=".2"/><ellipse cx="59.4" cy="22.1" rx="1.5" ry=".2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f550.svg b/build/js/jsxc/lib/emojione/assets/svg/1f550.svg
index f718cb6..bd5bb07 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f550.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f550.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M30.585 38 27 36.07 39.42 16 43 17.933z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M30.6 38 27 36.1 39.4 16 43 17.9z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f551.svg b/build/js/jsxc/lib/emojione/assets/svg/1f551.svg
index 92d11ba..2e55177 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f551.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f551.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="M28.07 36.5 26 32.897 43.93 22.5 46 26.1z"/><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m30 4h4v36h-4z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M27.9 37 26 33.4 46.1 21 48 24.6z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f552.svg b/build/js/jsxc/lib/emojione/assets/svg/1f552.svg
index f5287ff..834d2dd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f552.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f552.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="m26 30h24v4h-24z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="m26 30h24v4h-24z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f553.svg b/build/js/jsxc/lib/emojione/assets/svg/1f553.svg
index a768025..9f67b69 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f553.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f553.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M26 30.586 27.93 27 48 39.42 46.07 43z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M26 30.6 27.9 27 48 39.4 46.1 43z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f554.svg b/build/js/jsxc/lib/emojione/assets/svg/1f554.svg
index 417f46e..073f857 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f554.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f554.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M27 27.933 30.583 26 43 46.07 39.41 48z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M27 27.9 30.6 26 43 46.1 39.4 48z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f555.svg b/build/js/jsxc/lib/emojione/assets/svg/1f555.svg
index f282540..0fc3464 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f555.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f555.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="m30 26h4v24h-4z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="m30 26h4v24h-4z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f556.svg b/build/js/jsxc/lib/emojione/assets/svg/1f556.svg
index d703a67..5289190 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f556.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f556.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M33.414 26 37 27.93 24.584 48 21 46.07z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M33.4 26 37 27.9 24.6 48 21 46.1z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f557.svg b/build/js/jsxc/lib/emojione/assets/svg/1f557.svg
index 37c7bd1..f5bc3af 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f557.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f557.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M36.07 27 38 30.584 17.931 43 16 39.41z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M36.1 27 38 30.6 17.9 43 16 39.4z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f558.svg b/build/js/jsxc/lib/emojione/assets/svg/1f558.svg
index 6c1ee47..7e4eda3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f558.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f558.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="m14 30h24v4h-24z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="m14 30h24v4h-24z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f559.svg b/build/js/jsxc/lib/emojione/assets/svg/1f559.svg
index 75ab0bf..21e380e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f559.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f559.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M38 33.415 36.07 37 16 24.584 17.932 21z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M38 33.4 36.1 37 16 24.6 17.9 21z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f55a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f55a.svg
index 38a743b..6d7a353 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f55a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f55a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><path d="M37 36.07 33.416 38 21 17.932 24.584 16z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><path d="M37 36.1 33.4 38 21 17.9 24.6 16z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f55b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f55b.svg
index 505c9da..1381b3b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f55b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f55b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 6h4v32h-4z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 6h4v32h-4z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f55c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f55c.svg
index e396e29..9972f54 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f55c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f55c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><circle cx="32" cy="32" r="4"/><path d="m30 26h4v32h-4z"/><path transform="matrix(.7075.7067-.7067.7075 30.32-17.253)" d="m33.981 15.877h4.04v24.24h-4.04z"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><circle cx="32" cy="32" r="4"/><path d="m30 26h4v32h-4z"/><path transform="matrix(.7067-.7075.7075.7067-9.2498 33.6847)" d="m23.9 26h24.2v4h-24.2z"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f55d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f55d.svg
index 9afeb5b..86f2411 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f55d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f55d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M26.03 35.5 25 31.666 47.975 25.5 49 29.335z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m26 35.5l-1-3.8 23-6.2 1 3.8z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f55e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f55e.svg
index 480abc4..da97799 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f55e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f55e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M26 32.34 27.02 28.5 50 34.665 48.973 38.5z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m26 32.3l1-3.8 23 6.2-1 3.8z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f55f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f55f.svg
index 9517dd7..8185d20 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f55f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f55f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path transform="matrix(-.7067.7075-.7075-.7067 86.91 35.976)" d="m33.98 23.878h4.04v24.24h-4.04z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path transform="matrix(.7069-.7073.7073.7069-14.9093 36.0135)" d="m34 23.9h4v24.2h-4z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f560.svg b/build/js/jsxc/lib/emojione/assets/svg/1f560.svg
index 73192a7..54ef726 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f560.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f560.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M28.401 26.03 32.23 25 38.4 47.975 34.564 49z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m28.4 26l3.8-1 6.2 23-3.8 1z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f561.svg b/build/js/jsxc/lib/emojione/assets/svg/1f561.svg
index 66062e7..fea0cde 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f561.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f561.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M31.664 26 35.5 27.02 29.334 50 25.5 48.973z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m31.7 26l3.8 1-6.2 23-3.8-1z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f562.svg b/build/js/jsxc/lib/emojione/assets/svg/1f562.svg
index fd386b3..5cf968f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f562.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f562.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path transform="matrix(-.7073-.7069.7069-.7073 22.358 81.26)" d="m25.979 23.878h4.04v24.24h-4.04z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path transform="matrix(.7067-.7075.7075.7067-17.2588 30.3672)" d="m15.9 34h24.2v4h-24.2z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f563.svg b/build/js/jsxc/lib/emojione/assets/svg/1f563.svg
index af55072..ce97315 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f563.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f563.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M36.973 28.5 38 32.34 15.03 38.5 14 34.665z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m37 28.5l1 3.8-23 6.2-1-3.8z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f564.svg b/build/js/jsxc/lib/emojione/assets/svg/1f564.svg
index ce221df..d7d214f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f564.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f564.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M39 31.665 37.975 35.5 15 29.335 16.03 25.5z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m39 31.7l-1 3.8-23-6.2 1-3.8z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f565.svg b/build/js/jsxc/lib/emojione/assets/svg/1f565.svg
index 827f8c4..d7d8b48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f565.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f565.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path transform="matrix(.7071-.7071.7071.7071-11.598 28)" d="m25.979 15.878h4.04v24.24h-4.04z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path transform="matrix(.7071-.7071.7071.7071-11.5983 27.9992)" d="m26 15.9h4v24.2h-4z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f566.svg b/build/js/jsxc/lib/emojione/assets/svg/1f566.svg
index 279a81f..77030c0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f566.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f566.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M35.4 36.974 31.564 38 25.4 15.03 29.23 14z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m35.4 37l-3.8 1-6.2-23 3.8-1z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f567.svg b/build/js/jsxc/lib/emojione/assets/svg/1f567.svg
index 4b3f95e..02e8132 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f567.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f567.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#62727a" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m31 54h2v6h-2z"/><path d="m4 31h6v2h-6z"/><path d="m54 31h6v2h-6z"/><path d="m31 4h2v6h-2z"/><path d="m30 26h4v32h-4z"/><path d="M31.835 39 28 37.977 34.16 15 38 16.03z"/><circle cx="32" cy="32" r="4"/></g><circle fill="#62727a" cx="32" cy="32" r="3"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#62727a"/><g fill="#fff"><path d="m30 26h4v32h-4z"/><path d="m31.8 39l-3.8-1 6.2-23 3.8 1z"/><circle cx="32" cy="32" r="4"/></g><circle cx="32" cy="32" r="3" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f56f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f56f.svg
index de18fa7..af4c606 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f56f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f56f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#a29b95" cx="32" cy="55.13" rx="17.886" ry="6.866"/><ellipse fill="#dddad5" cx="32" cy="53.55" rx="16.498" ry="5.285"/><ellipse fill="#a29b95" cx="32" cy="51.22" rx="10.5" ry="4.221"/><ellipse fill="#dddad5" cx="32" cy="50.604" rx="9.848" ry="3.01"/><ellipse fill="#a29b95" cx="32" cy="42.534" rx="10.5" ry="8.628"/><ellipse fill="#dddad5" cx="32" cy="40.833" rx="8.923" ry="6.927"/><ellipse fill="#a29b95" cx="32" cy="36.27" rx="11.454" ry="4.42"/><ellipse fill="#dddad5" cx="32" cy="35.38" rx="10.164" ry="3.479"/><ellipse fill="#a29b95" cx="32" cy="29.431" rx="21" ry="6.866"/><ellipse fill="#dddad5" cx="32" cy="27.85" rx="19.37" ry="5.285"/><g fill="#dfcea3"><ellipse cx="32" cy="26.689" rx="12.409" ry="3.474"/><path d="m19.591 12.139h24.818v14.55h-24.818z"/></g><ellipse fill="#fff6d7" cx="32" cy="12.139" rx="12.409" ry="3.474"/><ellipse fill="#efd8b1" cx="32" cy="12.936" rx="9.418" ry="2.637"/><path fill="#ed4c5c" d="m31.536 12.498c-2 0-3.872-1-1.735-4.792 2.136-3.79 2.819-4.632 2.819-5.708-.001 0 6.357 10.5-1.084 10.5"/><path fill="#8f9496" d="m32.06 10.814c.16.62.226 1.254.367 1.875.077.328.095.618-.039.939-.054.143-.212.553-.421.52-.16-.024-.333-.527-.371-.643-.115-.372-.005-.661.045-1.024.031-.211.197-1.704.419-1.667"/><path fill="#ffce31" d="m31.702 12.482c-1.277 0-2.476-.642-1.107-3.065 1.365-2.422 1.803-2.961 1.803-3.651-.001 0 4.062 6.716-.696 6.716"/><path fill="#3e4347" d="m31.642 12.482c0 0 .144-1.697.358-1.697.257 0 .38 1.643.38 1.643s-.344.054-.738.054"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="55.1" rx="17.9" ry="6.9" fill="#a29b95"/><ellipse cx="32" cy="53.6" rx="16.5" ry="5.3" fill="#dddad5"/><ellipse cx="32" cy="51.2" rx="10.5" ry="4.2" fill="#a29b95"/><ellipse cx="32" cy="50.6" rx="9.8" ry="3" fill="#dddad5"/><ellipse cx="32" cy="42.5" rx="10.5" ry="8.6" fill="#a29b95"/><ellipse cx="32" cy="40.8" rx="8.9" ry="6.9" fill="#dddad5"/><ellipse cx="32" cy="36.3" rx="11.5" ry="4.4" fill="#a29b95"/><ellipse cx="32" cy="35.4" rx="10.2" ry="3.5" fill="#dddad5"/><ellipse cx="32" cy="29.4" rx="21" ry="6.9" fill="#a29b95"/><ellipse cx="32" cy="27.9" rx="19.4" ry="5.3" fill="#dddad5"/><g fill="#dfcea3"><ellipse cx="32" cy="26.7" rx="12.4" ry="3.5"/><path d="m19.6 12.1h24.8v14.5h-24.8z"/></g><ellipse cx="32" cy="12.1" rx="12.4" ry="3.5" fill="#fff6d7"/><ellipse cx="32" cy="12.9" rx="9.4" ry="2.6" fill="#efd8b1"/><path d="m31.5 12.5c-2 0-3.9-1-1.7-4.8 2.1-3.8 2.8-4.6 2.8-5.7 0 0 6.4 10.5-1.1 10.5" fill="#ed4c5c"/><path d="m32.1 10.8c.2.6.2 1.3.4 1.9.1.3.1.6 0 .9-.1.1-.2.6-.4.5-.2 0-.3-.5-.4-.6-.1-.4 0-.7 0-1 0-.2.1-1.7.4-1.7" fill="#8f9496"/><path d="m31.7 12.5c-1.3 0-2.5-.6-1.1-3.1 1.4-2.4 1.8-3 1.8-3.7 0 .1 4.1 6.8-.7 6.8" fill="#ffce31"/><path d="m31.6 12.5c0 0 .1-1.7.4-1.7.3 0 .4 1.6.4 1.6s-.4.1-.8.1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f570.svg b/build/js/jsxc/lib/emojione/assets/svg/1f570.svg
index cba3f0b..c2808cb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f570.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f570.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="M60,40c-4.988,0-9-8-9-12.999c0-9.996-9.022-18-19-18s-19,8.004-19,18C13,32,8.988,40,4,40H0v13h64V40H60z"/><circle fill="#fed0ac" cx="32" cy="28" r="15"/><g fill="#333"><circle cx="32" cy="28" r="2"/><path d="m40.11 30c.735 0 2.893-2 2.893-2s-2.158-1.999-2.893-1.999c-.599 0-1.103.595-1.271 1.413h-7.836v1.176h7.836c.169.816.673 1.41 1.271 1.41"/><path d="m32 13.695l-1 14h2z"/></g><g fill="#d3976e"><path d="m3 53h8v2h-8z"/><path d="m53 53h8v2h-8z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60,40c-5,0-9-8-9-13c0-10-9-18-19-18s-19,8-19,18c0,5-4,13-9,13H0v13h64V40H60z" fill="#594640"/><circle cx="32" cy="28" r="15" fill="#fed0ac"/><g fill="#333"><circle cx="32" cy="28" r="2"/><path d="m40.1 30c.7 0 2.9-2 2.9-2s-2.2-2-2.9-2c-.6 0-1.1.6-1.3 1.4h-7.8v1.2h7.8c.2.8.7 1.4 1.3 1.4"/><path d="m32 13.7l-1 14h2z"/></g><g fill="#d3976e"><path d="m3 53h8v2h-8z"/><path d="m53 53h8v2h-8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f573.svg b/build/js/jsxc/lib/emojione/assets/svg/1f573.svg
index cf9b2c7..4ccc436 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f573.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f573.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#63a1ba" d="m62 40.3c0 5.91-13.432 10.703-30 10.703-.334 0-.668-.002-1-.006l-2.714-2.708-2.968 2.448c-4.03-.327-7.746-.943-10.977-1.784l-3.243-3.325-2.233 1.486c-4.287-1.851-6.864-4.226-6.864-6.814 0-5.913 13.431-10.705 29.999-10.705 16.569 0 30 4.792 30 10.705"/><path fill="#538aa5" d="m31.999 43.46c9.153 0 17.344 1.465 22.846 3.771 2.414-1.012 4.307-2.184 5.537-3.468-4.04-4.21-15.216-7.237-28.382-7.237s-24.344 3.03-28.382 7.238c1.181 1.231 2.973 2.361 5.25 3.345l1.586-3.303 3.299 1.865c5.05-1.387 11.38-2.211 18.246-2.211"/><path fill="#467591" d="m14.387 48.958c3.214.833 6.909 1.446 10.909 1.771l2.599-1.972 3.126 2.234c.324.004.65.006.979.006 9.153 0 17.344-1.465 22.846-3.77-5.502-2.307-13.692-3.771-22.846-3.771-6.906 0-13.264.834-18.333 2.234-1.65.456.72 3.268.72 3.268"/><path fill="#dfe9ef" d="m26.38 16.15l-2.926.443 5.02 34.33c.833.035 1.677.057 2.529.067l-4.619-34.842"/><path fill="#b0bdc6" d="m24.313 16.562h-2.889l3.87 34.17c1.039.084 2.098.15 3.175.195l-4.156-34.36"/><path fill="#dfe9ef" d="m12.05 32.61l11.616-3.312c0 0 1.047-.147 1.285.588.347 1.066-.635 1.693-.635 1.693l-12.11 2.253-.154-1.222"/><path fill="#8b979e" d="m12.202 33.833l12.819-3.567c.045.834-.707 1.314-.707 1.314l-11.946 3.564-.166-1.311"/><path fill="#dfe9ef" d="m13.667 45.754l11.616-3.313c0 0 1.047-.146 1.286.588.346 1.066-.635 1.694-.635 1.694l-12.11 2.252-.155-1.221"/><path fill="#8b979e" d="m13.821 46.976l12.818-3.567c.045.834-.706 1.315-.706 1.315l-11.947 3.563-.165-1.311"/><path fill="#dfe9ef" d="m10.362 19.295l-2.564.451 4.247 28.538c.734.233 1.5.454 2.296.661l-3.979-29.65"/><path fill="#b0bdc6" d="m8.296 19.71h-2.889l3.449 27.396c.976.422 2.045.814 3.189 1.179l-3.749-28.575"/><path fill="#333" d="m8.109 16.15l-3.604.246.44 3.684 3.605.385.55-2.415z"/><path fill="#484a4c" d="m10.458 16.15h-2.349l.441 4.315 2.18-.755z"/><path fill="#333" d="m20.522 13.248l.361 3.752 3.633.16.614-2.326-1.02-1.836z"/><path fill="#484a4c" d="m24.11 12.998h2.366l.273 3.564-2.233.598"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 40.3c0 5.9-13.4 10.7-30 10.7-.3 0-.7 0-1 0l-2.7-2.7-3 2.4c-4-.3-7.7-.9-11-1.8l-3.2-3.3-2.2 1.5c-4.3-1.8-6.9-4.2-6.9-6.8 0-5.9 13.4-10.7 30-10.7 16.6 0 30 4.8 30 10.7" fill="#63a1ba"/><path d="m32 43.5c9.2 0 17.3 1.5 22.8 3.8 2.4-1 4.3-2.2 5.5-3.5-4-4.2-15.2-7.2-28.4-7.2s-24.3 3-28.4 7.2c1.2 1.2 3 2.4 5.2 3.3l1.6-3.3 3.3 1.9c5.2-1.4 11.5-2.2 18.4-2.2" fill="#538aa5"/><path d="m14.4 49c3.2.8 6.9 1.4 10.9 1.8l2.6-2 3.1 2.2c.3 0 .6 0 1 0 9.2 0 17.3-1.5 22.8-3.8-5.5-2.3-13.7-3.8-22.8-3.8-6.9 0-13.3.8-18.3 2.2-1.7.5.7 3.4.7 3.4" fill="#467591"/><path d="m26.4 16.1l-2.9.4 5 34.3c.8 0 1.7.1 2.5.1l-4.6-34.8" fill="#dfe9ef"/><path d="m24.3 16.6h-2.9l3.9 34.2c1 .1 2.1.2 3.2.2l-4.2-34.4" fill="#b0bdc6"/><path d="m12 32.6l11.6-3.3c0 0 1-.1 1.3.6.3 1.1-.6 1.7-.6 1.7l-12.1 2.3-.2-1.3" fill="#dfe9ef"/><path d="m12.2 33.8l12.8-3.5c0 .8-.7 1.3-.7 1.3l-11.9 3.6-.2-1.4" fill="#8b979e"/><path d="m13.7 45.8l11.6-3.3c0 0 1-.1 1.3.6.3 1.1-.6 1.7-.6 1.7l-12.2 2.2-.1-1.2" fill="#dfe9ef"/><path d="m13.8 47l12.8-3.6c0 .8-.7 1.3-.7 1.3l-11.9 3.6-.2-1.3" fill="#8b979e"/><path d="m10.4 19.3l-2.6.5 4.2 28.5c.7.2 1.5.5 2.3.7l-3.9-29.7" fill="#dfe9ef"/><path d="m8.3 19.7h-2.9l3.4 27.4c1 .4 2 .8 3.2 1.2l-3.7-28.6" fill="#b0bdc6"/><path fill="#333" d="m8.1 16.1l-3.6.3.4 3.7 3.7.4.5-2.5z"/><path fill="#484a4c" d="m10.5 16.1h-2.4l.5 4.4 2.1-.8z"/><path fill="#333" d="m20.5 13.2l.4 3.8 3.6.2.6-2.4-1-1.8z"/><path fill="#484a4c" d="m24.1 13h2.4l.2 3.6-2.2.6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f574.svg b/build/js/jsxc/lib/emojione/assets/svg/1f574.svg
index 7ab142d..cfaf2a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f574.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f574.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#594640"><path d="m39.37 42.566c0 0 8.04-3.297 8.963-1.23 4.34 9.761-10.846 12.67-16.11 12.563-5.306-.108-21.891-4-16.11-12.801 1.475-2.247 8.961 1.469 8.961 1.469h14.3z"/><path d="m24.587 53.08c-.919 2 1.06 3.978 3.059 3.058l2.715-2.717-3.057-3.058-2.717 2.717"/><path d="m39.41 53.08l-2.718-2.717-3.056 3.058 2.715 2.717c2 .92 3.978-1.057 3.059-3.058"/></g><path fill="#fed0ac" d="m28.926 26.904h6.148v4.687h-6.148z"/><g fill="#594640"><path d="m24.17 29.575l4.758-.26c0 .963 1.373 1.75 3.07 1.75 1.697 0 3.076-.787 3.076-1.75l4.766.26-.69 15.04h-14.3l-.68-15.04"/><path d="m19.213 10.134c0 2.323 0 9.42 0 9.42h25.577c0 0 0-7.097 0-9.42 0-12.178-25.577-12.178-25.577 0"/></g><path fill="#fed0ac" d="m18.34 17.94c0-4.218 3.076-2.077 3.076-2.077.558-11.08 3.511-5.097 10.584-5.097 7.08 0 10.03-5.987 10.591 5.097 0 0 3.068-2.141 3.068 2.077 0 1.614-.585 2.935-2.568 3.074-.837 6.526-5 7.872-11.09 7.872-6.09 0-10.247-1.346-11.09-7.872-1.985-.139-2.573-1.46-2.573-3.074"/><g fill="#594640"><path d="m35.11 22.466c0 .911.77 1.654 1.711 1.654.947 0 1.717-.743 1.717-1.654 0-.915-.77-1.65-1.717-1.65-.941 0-1.711.736-1.711 1.65"/><path d="m25.23 22.466c0 .911.766 1.654 1.712 1.654.942 0 1.714-.743 1.714-1.654 0-.915-.771-1.65-1.714-1.65-.946 0-1.712.736-1.712 1.65"/><path d="m46.14 29.55l-1.119 5.903-3.359-4.927c-1.469-2.164-4.363-.313-2.891 1.853l5.346 7.84c0 0 .793.867 1.98.621 1.186-.248 1.654-1.377 1.654-1.377l1.738-9.179-3.349-.734"/></g><path fill="#fed0ac" d="m48.43 26.642c-.924-.203-1.707-.193-2.293 2.908l3.35.734c.589-3.101-.126-3.44-1.057-3.642"/><path fill="#594640" d="m17.864 29.55l1.119 5.903 3.357-4.927c1.471-2.164 4.365-.313 2.891 1.853l-5.344 7.84c0 0-.793.867-1.98.621-1.188-.248-1.656-1.377-1.656-1.377l-1.736-9.179 3.349-.734"/><path fill="#fed0ac" d="m15.569 26.642c.924-.203 1.709-.193 2.295 2.908l-3.35.734c-.592-3.101.125-3.44 1.055-3.642"/><path fill="#fff" d="m32 40.884c0 0 4.791-6.81 4.31-9.143-.102-.482-.861-1.308-1.418-1.86-.416.687-1.549 1.185-2.896 1.185-1.344 0-2.477-.498-2.891-1.182-.557.553-1.316 1.377-1.416 1.857-.481 2.333 4.311 9.143 4.311 9.143"/><g fill="#594640"><path d="m33.28 39.16l-.429-6.196h-1.707l-.43 6.187c.719 1.143 1.285 1.951 1.285 1.951s.563-.804 1.281-1.942"/><path d="m32.852 32.513l.695-1.694c-.451.153-.98.247-1.548.247s-1.094-.093-1.547-.246l.693 1.693h1.707"/><ellipse cx="32" cy="61.4" rx="14.464" ry="1.599"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="60.9" rx="10" ry="1.1" fill="#a6aeb0"/><g fill="#2c3033"><path d="m30.1 54.9c-.4 2.6-4 2.1-3.7-.5l.3-2 3.7.5-.3 2"/><path d="m33.9 54.9c.4 2.6 4 2.1 3.7-.5l-.3-2-3.7.5.3 2"/></g><g fill="#ffdd67"><path d="m29.9 22.6h4.2v3.3h-4.2z"/><path d="m22.6 13.7h18.9c0 .1 1.5 4.8-1.8 5-.6 4.5-5.4 5.5-7.7 5.5-2.3 0-7.1-.9-7.7-5.5-3.3-.2-1.7-4.9-1.7-5"/></g><path d="m33.1 20.5c0 .3-.5.6-1.1.6s-1.1-.2-1.1-.6c0-.3 2.2-.3 2.2 0" fill="#eba352"/><g fill="#2c3033"><path d="m25 16.8c0 0-.5-.1-.8.1-.2.1-.2-1 0-1.2.2-.3.8-.3.8-.3v1.4"/><path d="m39 16.8c0 0 .5-.1.8.1.2.1.2-1 0-1.2-.2-.3-.8-.3-.8-.3v1.4"/><path d="m38.9 15.2c-.4-.3-2.1-.3-3.2-.3-.6 0-2.5 0-2.9.2-.1 0-.8 0-.8 0s-.8 0-.8 0c-.4-.2-2.4-.2-2.9-.2-1 0-2.7 0-3.2.3-.7.4-.7 1.2-.3 3.2.2 1.1.7 1.7 3.9 1.7 2.8.1 2.5-3.4 3.3-3.4.8 0 .5 3.4 3.3 3.4 3.2-.1 3.7-.7 3.9-1.7.4-2 .4-2.7-.3-3.2"/></g><g fill="#383b3d"><path d="m30.9 15.7c-.2-.1-1.3-.2-2.7-.2-1.4 0-2.6.1-2.8.2-.4.2-.5.7-.1 2.6.1.7.5.9.8 1h.1c.5.2 1.5.3 2.5.3 1 0 1.2-.2 1.5-.6.3-.4 1.1-2 1-2.9-.1-.2-.2-.3-.3-.4"/><path d="m33.1 15.7c.2-.1 1.3-.2 2.7-.2 1.4 0 2.6.1 2.8.2.4.2.5.7.1 2.6-.1.7-.5.9-.8 1h-.1c-.5.2-1.5.3-2.5.3-1 0-1.2-.2-1.5-.6-.3-.4-1.1-2-1-2.9.1-.2.2-.3.3-.4"/></g><path d="m40.8 11.4c-3.8-3.9 0-10.8-2.9-9.2-2.2 1.2-4.3 1.9-5.8 1.9-1.5 0-3.7-.7-5.8-1.9-3-1.6.9 5.3-2.9 9.2-3.7 1.9-5.2 1.7-5.2 2.2 0 .3 1.6 2.6 14 2.6 12.4 0 14-2.3 14-2.6-.2-.5-1.8-.3-5.4-2.2" fill="#594640"/><path d="m32 12.1c4 0 6.9-.2 9-.6 0 0-.1-.1-.2-.1-.4-.4-.7-.8-1-1.3-1.9.2-4.5.4-7.8.4s-5.9-.2-7.8-.4c-.2.5-.6.9-1 1.3-.1 0-.2.1-.2.1 2.1.4 5 .6 9 .6" fill="#2c3033"/><path d="m26.6 24.5l3.3-.2c0 .7.9 1.2 2.1 1.2 1.2 0 2.1-.5 2.1-1.2l3.3.2-.5 11.1h-9.9l-.4-11.1" fill="#594640"/><path d="m32 32.3c0 0 3.3-4.7 3-6.3-.1-.3-.6-.9-1-1.3-.3.5-1.1.8-2 .8-.9 0-1.7-.3-2-.8-.4.4-.9 1-1 1.3-.3 1.6 3 6.3 3 6.3" fill="#fff"/><g fill="#594640"><path d="m32.9 31.1l-.3-4.3h-1.2l-.3 4.3c.5.8.9 1.4.9 1.4s.4-.6.9-1.4"/><path d="m32.6 26.5l.5-1.2c-.3.1-.7.2-1.1.2-.4 0-.8-.1-1.1-.2l.5 1.2h1.2"/><path d="m25.3 37.6l-2.1-.5 3.4-12.6 2.1.5z"/></g><path d="m24.9 39.2c-.3 1.3-2.4.7-2.1-.5l.4-1.5 2.1.5-.4 1.5" fill="#ffdd67"/><path fill="#594640" d="m38.7 37.6l2.1-.5-3.4-12.6-2.1.5z"/><path d="m39.1 39.2c.3 1.3 2.4.7 2.1-.5l-.4-1.5-2.1.5.4 1.5" fill="#ffdd67"/><path fill="#594640" d="m36.9 38.2v-2.6h-9.8v2.6l-.8 14.9h4.3l1.4-12 1.4 12h4.3z"/><path fill="#2c3033" d="m27.1 35.6h9.9v1.2h-9.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fb.svg
index ab469ba..9e0d538 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2c3033"><path d="m57.37 37.33c0 0-7.03-4.256-26.441-4.256v29.411l17.21-4.375 9.231-20.78"/><path d="m7.285 37.33c0 0 7.03-4.256 26.441-4.256v29.411l-17.21-4.375-9.231-20.78"/></g><path fill="#62727a" d="M64,64c0-20.615-14.325-16.811-32-16.811S0,43.385,0,64H64z"/><path fill="#2c3033" d="M21.791 49.02 32.407 64 41.475 49.678z"/><path fill="#ffe1bd" d="m42.586 48.635c-5.068 5.516-16.1 5.516-21.17 0-3.845-4.186-3.75-23.67-3.75-23.67h28.672c0 0 .095 19.484-3.75 23.67"/><path fill="#e6b796" d="m34.885 40.05c0 .832-1.292 1.506-2.885 1.506s-2.885-.674-2.885-1.506c0-.834 5.77-.834 5.77 0"/><g fill="#62727a"><path d="m32.25 64h-20.841c2.762-11.957-4.12-26.674-4.12-26.674s8.965 7.466 17.17 7.466l7.795 19.21"/><path d="M32.407,64h20.841c-2.762-11.957,4.12-26.674,4.12-26.674s-8.965,7.466-17.166,7.466L32.407,64z"/></g><g fill="#2c3033"><path d="m18.841 31.915c0 0-.875-.163-1.563.131-.441.19-.292-1.931 0-2.346.397-.563 1.563-.536 1.563-.536v2.751"/><path d="m45.16 31.915c0 0 .874-.163 1.562.131.442.19.293-1.931 0-2.346-.396-.563-1.562-.536-1.562-.536v2.751"/><path d="m45 28.983c-.827-.525-4.03-.566-5.945-.566-1.092 0-4.719.032-5.522.454-.115.061-1.534.09-1.534.09s-1.418-.029-1.533-.09c-.804-.422-4.431-.454-5.522-.454-1.914 0-5.117.041-5.945.566-1.313.833-1.273 2.208-.541 6.138.383 2.051 1.36 3.133 7.364 3.294 5.313.142 4.688-6.342 6.178-6.342s.865 6.483 6.179 6.342c6-.161 6.981-1.243 7.363-3.294.731-3.93.771-5.305-.542-6.138"/></g><g fill="#383b3d"><path d="m29.896 29.84c-.436-.279-2.468-.468-5.057-.468-2.649 0-4.891.198-5.332.473-.726.448-.945 1.305-.228 4.968.262 1.337.938 1.605 1.59 1.867l.191.078c1.035.432 2.787.653 4.698.594 1.87-.059 2.209-.37 2.799-1.064.569-.672 2.107-3.85 1.846-5.549-.064-.423-.235-.724-.507-.899"/><path d="m34.1 29.84c.436-.279 2.468-.468 5.057-.468 2.648 0 4.891.198 5.333.473.725.448.944 1.305.228 4.968-.263 1.337-.938 1.605-1.591 1.867l-.191.078c-1.034.432-2.787.653-4.697.594-1.871-.059-2.21-.37-2.799-1.064-.569-.672-2.108-3.85-1.847-5.549.064-.423.235-.724.507-.899"/></g><path fill="#62727a" d="m48.5 21.762c-7.188-7.276.063-20.404-5.529-17.294-4.085 2.271-8.104 3.654-10.972 3.654s-6.885-1.383-10.972-3.654c-5.592-3.11 1.659 10.02-5.528 17.294-6.875 3.673-9.858 3.203-9.858 4.11 0 .493 2.921 4.912 26.358 4.912s26.36-4.419 26.36-4.912c0-.907-2.984-.437-9.859-4.11"/><path fill="#2c3033" d="m31.999 23.05c7.59 0 13.02-.438 16.902-1.081 0 0-.263-.159-.401-.233-.755-.765-1.342-1.596-1.811-2.463-3.665.471-8.443.785-14.69.785s-11.02-.314-14.69-.785c-.467.867-1.055 1.698-1.81 2.463-.139.074-.401.233-.401.233 3.883.643 9.311 1.081 16.901 1.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.5 41.2h41.6c0-22.4-3.2-27.2-20.8-27.2s-20.8 4.8-20.8 27.2" fill="#594640"/><path d="m51.3 36.3c-.1.9-.3 1.7-.6 2.1-.4.8-1.4 1.3-1.4 1.3s.2-1.7.2-4c-1-13.9-1.8-10-17.3-10-15.4 0-24.2 2.7-24.2 12 0 6.8 6.4 9.9 6.4 9.9 1.6 6.7 6.2 10.4 13.4 13.7 2.2 1 6.6 1 8.8 0 8-3.6 12.7-7.8 13.8-15.9 3.2-.2 4.2-2.4 4.2-4.9.1-4.3-1.8-4.6-3.3-4.2" fill="#ffe1bd"/><path d="m39.5 51.5c0 2.7-3.6 4.1-7.2 4.1s-7.2-1.4-7.2-4.1c0 0 0-.7.7-.7 3.2 0 9.7 0 13 0 .7 0 .7.7.7.7" fill="#664e27"/><path d="m41.9 35.3c4 0 5.6 1.4 5.6 2.9s0 3.5-5.3 3.5c-5.1 0-5.9-.6-5.9-2.8 0-1.5 1.6-3.6 5.6-3.6" fill="#f5f5f5"/><circle cx="41.5" cy="37.7" r="3.6" fill="#664e27"/><path d="m40.3 37.7c0 .7.5 1.2 1.2 1.2.7 0 1.2-.5 1.2-1.2s-.5-1.2-1.2-1.2c-.7 0-1.2.5-1.2 1.2" fill="#231f20"/><path d="m47.5 38.1c0-5.6-11.2-5.6-11.2.8 1.6-4.8 9.6-4.8 11.2-.8" fill="#664e27"/><path d="m32.3 48.4c-3.3 0-5-2.4-3.3-2.4s5 0 6.7 0-.1 2.4-3.4 2.4" fill="#e6b796"/><path d="m19.5 34.2c-4.6 0-6.5 1.7-6.5 3.4 0 1.7 0 4.1 6.1 4.1 5.9 0 6.9-.7 6.9-3.2 0-1.8-1.9-4.3-6.5-4.3" fill="#f5f5f5"/><circle cx="20" cy="37.1" r="4.2" fill="#664e27"/><path d="m21.4 37.1c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.7 0 1.4.6 1.4 1.4" fill="#231f20"/><path d="m13 37.5c0-6.5 13-6.5 13 .9-1.9-5.5-11.1-5.5-13-.9" fill="#664e27"/><circle cx="19.3" cy="37.3" r="11.1" opacity=".4" fill="#f5f5f5"/><g fill="#b0bdc6"><path transform="matrix(.5-.866.866.5-35.6058 35.404)" d="m11.8 47.1h2.2v2.9h-2.2z"/><path d="m13.2 48c5.9 3.4 13.4 1.4 16.8-4.5 3.4-5.9 1.4-13.4-4.5-16.8-5.9-3.4-13.4-1.4-16.8 4.5-3.4 5.9-1.4 13.4 4.5 16.8m-2.6-15.7c2.8-4.8 9-6.5 13.8-3.7 4.8 2.8 6.5 9 3.7 13.8-2.8 4.8-9 6.5-13.8 3.7s-6.5-9-3.7-13.8"/></g><path transform="matrix(.5001-.866.866.5001-41.4948 35.3982)" fill="#333" d="m4.7 51h10.3v5.2h-10.3z"/><path d="m4.3 56.7c-.4.7 5.4 4.1 5.8 3.4l.3-.5c.4-.7-5.4-4.1-5.8-3.4l-.3.5" fill="#b0bdc6"/><path d="m52.9 22.3c-9.1-10.1.1-23.8-7-19.5-5.2 3.2-10.2 4-13.9 4-3.6 0-8.7-.8-13.9-4-7.1-4.3 2.1 9.3-7 19.5-8.7 5.1-9.1 4.5-9.1 5.7 0 .7.4 6.8 30 6.8s30-6.2 30-6.8c0-1.2-.4-.6-9.1-5.7" fill="#62727a"/><path d="m32 24.1c9.6 0 20.9-1.8 20.9-1.8-1-1.1-1.7-2.2-2.3-3.4-4.6.7-10.7 1.1-18.6 1.1s-13.9-.4-18.6-1.1c-.6 1.2-1.3 2.4-2.3 3.4 0 0 11.3 1.8 20.9 1.8" fill="#2c3033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fc.svg
index 9362d27..1eb13a6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2c3033"><path d="m57.37 37.33c0 0-7.03-4.256-26.441-4.256v29.411l17.21-4.375 9.231-20.78"/><path d="m7.285 37.33c0 0 7.03-4.256 26.441-4.256v29.411l-17.21-4.375-9.231-20.78"/></g><path fill="#62727a" d="M64,64c0-20.615-14.325-16.811-32-16.811S0,43.385,0,64H64z"/><path fill="#2c3033" d="M21.791 49.02 32.407 64 41.475 49.678z"/><path fill="#fed0ac" d="m42.586 48.635c-5.068 5.516-16.1 5.516-21.17 0-3.845-4.186-3.75-23.67-3.75-23.67h28.672c0 0 .095 19.484-3.75 23.67"/><path fill="#e0a372" d="m34.885 40.05c0 .832-1.292 1.506-2.885 1.506s-2.885-.674-2.885-1.506c0-.834 5.77-.834 5.77 0"/><g fill="#62727a"><path d="m32.25 64h-20.841c2.762-11.957-4.12-26.674-4.12-26.674s8.965 7.466 17.17 7.466l7.795 19.21"/><path d="M32.407,64h20.841c-2.762-11.957,4.12-26.674,4.12-26.674s-8.965,7.466-17.166,7.466L32.407,64z"/></g><g fill="#2c3033"><path d="m18.841 31.915c0 0-.875-.163-1.563.131-.441.19-.292-1.931 0-2.346.397-.563 1.563-.536 1.563-.536v2.751"/><path d="m45.16 31.915c0 0 .874-.163 1.562.131.442.19.293-1.931 0-2.346-.396-.563-1.562-.536-1.562-.536v2.751"/><path d="m45 28.983c-.827-.525-4.03-.566-5.945-.566-1.092 0-4.719.032-5.522.454-.115.061-1.534.09-1.534.09s-1.418-.029-1.533-.09c-.804-.422-4.431-.454-5.522-.454-1.914 0-5.117.041-5.945.566-1.313.833-1.273 2.208-.541 6.138.383 2.051 1.36 3.133 7.364 3.294 5.313.142 4.688-6.342 6.178-6.342s.865 6.483 6.179 6.342c6-.161 6.981-1.243 7.363-3.294.731-3.93.771-5.305-.542-6.138"/></g><g fill="#383b3d"><path d="m29.896 29.84c-.436-.279-2.468-.468-5.057-.468-2.649 0-4.891.198-5.332.473-.726.448-.945 1.305-.228 4.968.262 1.337.938 1.605 1.59 1.867l.191.078c1.035.432 2.787.653 4.698.594 1.87-.059 2.209-.37 2.799-1.064.569-.672 2.107-3.85 1.846-5.549-.064-.423-.235-.724-.507-.899"/><path d="m34.1 29.84c.436-.279 2.468-.468 5.057-.468 2.648 0 4.891.198 5.333.473.725.448.944 1.305.228 4.968-.263 1.337-.938 1.605-1.591 1.867l-.191.078c-1.034.432-2.787.653-4.697.594-1.871-.059-2.21-.37-2.799-1.064-.569-.672-2.108-3.85-1.847-5.549.064-.423.235-.724.507-.899"/></g><path fill="#62727a" d="m48.5 21.762c-7.188-7.276.063-20.404-5.529-17.294-4.085 2.271-8.104 3.654-10.972 3.654s-6.885-1.383-10.972-3.654c-5.592-3.11 1.659 10.02-5.528 17.294-6.875 3.673-9.858 3.203-9.858 4.11 0 .493 2.921 4.912 26.358 4.912s26.36-4.419 26.36-4.912c0-.907-2.984-.437-9.859-4.11"/><path fill="#2c3033" d="m31.999 23.05c7.59 0 13.02-.438 16.902-1.081 0 0-.263-.159-.401-.233-.755-.765-1.342-1.596-1.811-2.463-3.665.471-8.443.785-14.69.785s-11.02-.314-14.69-.785c-.467.867-1.055 1.698-1.81 2.463-.139.074-.401.233-.401.233 3.883.643 9.311 1.081 16.901 1.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.5 41.2h41.6c0-22.4-3.2-27.2-20.8-27.2s-20.8 4.8-20.8 27.2" fill="#dbb471"/><path d="m51.3 36.3c-.1.9-.3 1.7-.6 2.1-.4.8-1.4 1.3-1.4 1.3s.2-1.7.2-4c-1-13.9-1.8-10-17.3-10-15.4 0-24.2 2.7-24.2 12 0 6.8 6.4 9.9 6.4 9.9 1.6 6.7 6.2 10.4 13.4 13.7 2.2 1 6.6 1 8.8 0 8-3.6 12.7-7.8 13.8-15.9 3.2-.2 4.2-2.4 4.2-4.9.1-4.3-1.8-4.6-3.3-4.2" fill="#fed0ac"/><path d="m39.5 51.5c0 2.7-3.6 4.1-7.2 4.1s-7.2-1.4-7.2-4.1c0 0 0-.7.7-.7 3.2 0 9.7 0 13 0 .7 0 .7.7.7.7" fill="#664e27"/><path d="m41.9 35.3c4 0 5.6 1.4 5.6 2.9s0 3.5-5.3 3.5c-5.1 0-5.9-.6-5.9-2.8 0-1.5 1.6-3.6 5.6-3.6" fill="#f5f5f5"/><circle cx="41.5" cy="37.7" r="3.6" fill="#664e27"/><path d="m40.3 37.7c0 .7.5 1.2 1.2 1.2.7 0 1.2-.5 1.2-1.2s-.5-1.2-1.2-1.2c-.7 0-1.2.5-1.2 1.2" fill="#231f20"/><path d="m47.5 38.1c0-5.6-11.2-5.6-11.2.8 1.6-4.8 9.6-4.8 11.2-.8" fill="#664e27"/><path d="m32.3 48.4c-3.3 0-5-2.4-3.3-2.4s5 0 6.7 0-.1 2.4-3.4 2.4" fill="#e0a372"/><path d="m19.5 34.2c-4.6 0-6.5 1.7-6.5 3.4 0 1.7 0 4.1 6.1 4.1 5.9 0 6.9-.7 6.9-3.2 0-1.8-1.9-4.3-6.5-4.3" fill="#f5f5f5"/><circle cx="20" cy="37.1" r="4.2" fill="#664e27"/><path d="m21.4 37.1c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.7 0 1.4.6 1.4 1.4" fill="#231f20"/><path d="m13 37.5c0-6.5 13-6.5 13 .9-1.9-5.5-11.1-5.5-13-.9" fill="#664e27"/><circle cx="19.3" cy="37.3" r="11.1" opacity=".4" fill="#f5f5f5"/><g fill="#b0bdc6"><path transform="matrix(.5-.866.866.5-35.6058 35.404)" d="m11.8 47.1h2.2v2.9h-2.2z"/><path d="m13.2 48c5.9 3.4 13.4 1.4 16.8-4.5 3.4-5.9 1.4-13.4-4.5-16.8-5.9-3.4-13.4-1.4-16.8 4.5-3.4 5.9-1.4 13.4 4.5 16.8m-2.6-15.7c2.8-4.8 9-6.5 13.8-3.7 4.8 2.8 6.5 9 3.7 13.8-2.8 4.8-9 6.5-13.8 3.7s-6.5-9-3.7-13.8"/></g><path transform="matrix(.5001-.866.866.5001-41.4948 35.3982)" fill="#333" d="m4.7 51h10.3v5.2h-10.3z"/><path d="m4.3 56.7c-.4.7 5.4 4.1 5.8 3.4l.3-.5c.4-.7-5.4-4.1-5.8-3.4l-.3.5" fill="#b0bdc6"/><path d="m52.9 22.3c-9.1-10.1.1-23.8-7-19.5-5.2 3.2-10.2 4-13.9 4-3.6 0-8.7-.8-13.9-4-7.1-4.3 2.1 9.3-7 19.5-8.7 5.1-9.1 4.5-9.1 5.7 0 .7.4 6.8 30 6.8s30-6.2 30-6.8c0-1.2-.4-.6-9.1-5.7" fill="#62727a"/><path d="m32 24.1c9.6 0 20.9-1.8 20.9-1.8-1-1.1-1.7-2.2-2.3-3.4-4.6.7-10.7 1.1-18.6 1.1s-13.9-.4-18.6-1.1c-.6 1.2-1.3 2.4-2.3 3.4 0 0 11.3 1.8 20.9 1.8" fill="#2c3033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fd.svg
index db694e7..6eaa233 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2c3033"><path d="m57.37 37.33c0 0-7.03-4.256-26.441-4.256v29.411l17.21-4.375 9.231-20.78"/><path d="m7.285 37.33c0 0 7.03-4.256 26.441-4.256v29.411l-17.21-4.375-9.231-20.78"/></g><path fill="#62727a" d="M64,64c0-20.615-14.325-16.811-32-16.811S0,43.385,0,64H64z"/><path fill="#2c3033" d="M21.791 49.02 32.407 64 41.475 49.678z"/><path fill="#d6a57c" d="m42.586 48.635c-5.068 5.516-16.1 5.516-21.17 0-3.845-4.186-3.75-23.67-3.75-23.67h28.672c0 0 .095 19.484-3.75 23.67"/><path fill="#b58360" d="m34.885 40.05c0 .832-1.292 1.506-2.885 1.506s-2.885-.674-2.885-1.506c0-.834 5.77-.834 5.77 0"/><g fill="#62727a"><path d="m32.25 64h-20.841c2.762-11.957-4.12-26.674-4.12-26.674s8.965 7.466 17.17 7.466l7.795 19.21"/><path d="M32.407,64h20.841c-2.762-11.957,4.12-26.674,4.12-26.674s-8.965,7.466-17.166,7.466L32.407,64z"/></g><g fill="#2c3033"><path d="m18.841 31.915c0 0-.875-.163-1.563.131-.441.19-.292-1.931 0-2.346.397-.563 1.563-.536 1.563-.536v2.751"/><path d="m45.16 31.915c0 0 .874-.163 1.562.131.442.19.293-1.931 0-2.346-.396-.563-1.562-.536-1.562-.536v2.751"/><path d="m45 28.983c-.827-.525-4.03-.566-5.945-.566-1.092 0-4.719.032-5.522.454-.115.061-1.534.09-1.534.09s-1.418-.029-1.533-.09c-.804-.422-4.431-.454-5.522-.454-1.914 0-5.117.041-5.945.566-1.313.833-1.273 2.208-.541 6.138.383 2.051 1.36 3.133 7.364 3.294 5.313.142 4.688-6.342 6.178-6.342s.865 6.483 6.179 6.342c6-.161 6.981-1.243 7.363-3.294.731-3.93.771-5.305-.542-6.138"/></g><g fill="#383b3d"><path d="m29.896 29.84c-.436-.279-2.468-.468-5.057-.468-2.649 0-4.891.198-5.332.473-.726.448-.945 1.305-.228 4.968.262 1.337.938 1.605 1.59 1.867l.191.078c1.035.432 2.787.653 4.698.594 1.87-.059 2.209-.37 2.799-1.064.569-.672 2.107-3.85 1.846-5.549-.064-.423-.235-.724-.507-.899"/><path d="m34.1 29.84c.436-.279 2.468-.468 5.057-.468 2.648 0 4.891.198 5.333.473.725.448.944 1.305.228 4.968-.263 1.337-.938 1.605-1.591 1.867l-.191.078c-1.034.432-2.787.653-4.697.594-1.871-.059-2.21-.37-2.799-1.064-.569-.672-2.108-3.85-1.847-5.549.064-.423.235-.724.507-.899"/></g><path fill="#62727a" d="m48.5 21.762c-7.188-7.276.063-20.404-5.529-17.294-4.085 2.271-8.104 3.654-10.972 3.654s-6.885-1.383-10.972-3.654c-5.592-3.11 1.659 10.02-5.528 17.294-6.875 3.673-9.858 3.203-9.858 4.11 0 .493 2.921 4.912 26.358 4.912s26.36-4.419 26.36-4.912c0-.907-2.984-.437-9.859-4.11"/><path fill="#2c3033" d="m31.999 23.05c7.59 0 13.02-.438 16.902-1.081 0 0-.263-.159-.401-.233-.755-.765-1.342-1.596-1.811-2.463-3.665.471-8.443.785-14.69.785s-11.02-.314-14.69-.785c-.467.867-1.055 1.698-1.81 2.463-.139.074-.401.233-.401.233 3.883.643 9.311 1.081 16.901 1.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.5 41.2h41.6c0-22.4-3.2-27.2-20.8-27.2-17.6 0-20.8 4.8-20.8 27.2" fill="#594640"/><path d="m51.3 36.3c-.1.9-.3 1.7-.6 2.1-.4.8-1.4 1.3-1.4 1.3s.2-1.7.2-4c-1-13.9-1.8-10-17.3-10-15.4 0-24.2 2.7-24.2 12 0 6.8 6.4 9.9 6.4 9.9 1.6 6.7 6.2 10.4 13.4 13.7 2.2 1 6.6 1 8.8 0 8-3.6 12.7-7.8 13.8-15.9 3.2-.2 4.2-2.4 4.2-4.9.1-4.3-1.8-4.6-3.3-4.2" fill="#d6a57c"/><path d="m39.5 51.5c0 2.7-3.6 4.1-7.2 4.1s-7.2-1.4-7.2-4.1c0 0 0-.7.7-.7 3.2 0 9.7 0 13 0 .7 0 .7.7.7.7" fill="#664e27"/><path d="m41.9 35.3c4 0 5.6 1.4 5.6 2.9s0 3.5-5.3 3.5c-5.1 0-5.9-.6-5.9-2.8 0-1.5 1.6-3.6 5.6-3.6" fill="#f5f5f5"/><circle cx="41.5" cy="37.7" r="3.6" fill="#664e27"/><path d="m40.3 37.7c0 .7.5 1.2 1.2 1.2.7 0 1.2-.5 1.2-1.2 0-.7-.5-1.2-1.2-1.2-.7 0-1.2.5-1.2 1.2" fill="#231f20"/><path d="m47.5 38.1c0-5.6-11.2-5.6-11.2.8 1.6-4.8 9.6-4.8 11.2-.8" fill="#664e27"/><path d="m32.3 48.4c-3.3 0-5-2.4-3.3-2.4s5 0 6.7 0-.1 2.4-3.4 2.4" fill="#b58360"/><path d="m19.5 34.2c-4.6 0-6.5 1.7-6.5 3.4 0 1.7 0 4.1 6.1 4.1 5.9 0 6.9-.7 6.9-3.2 0-1.8-1.9-4.3-6.5-4.3" fill="#f5f5f5"/><circle cx="20" cy="37.1" r="4.2" fill="#664e27"/><path d="m21.4 37.1c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.7 0 1.4.6 1.4 1.4" fill="#231f20"/><path d="m13 37.5c0-6.5 13-6.5 13 .9-1.9-5.5-11.1-5.5-13-.9" fill="#664e27"/><circle cx="19.3" cy="37.3" r="11.1" opacity=".4" fill="#f5f5f5"/><g fill="#b0bdc6"><path transform="matrix(.5-.866.866.5-35.6061 35.4031)" d="m11.8 47.1h2.2v2.9h-2.2z"/><path d="m13.2 48c5.9 3.4 13.4 1.4 16.8-4.5 3.4-5.9 1.4-13.4-4.5-16.8-5.9-3.4-13.4-1.4-16.8 4.5s-1.4 13.4 4.5 16.8m-2.6-15.7c2.8-4.8 9-6.5 13.8-3.7 4.8 2.8 6.5 9 3.7 13.8-2.8 4.8-9 6.5-13.8 3.7-4.9-2.8-6.5-9-3.7-13.8"/></g><path transform="matrix(.5001-.866.866.5001-41.4946 35.3972)" fill="#333" d="m4.7 51h10.3v5.2h-10.3z"/><path d="m4.3 56.7c-.4.7 5.4 4.1 5.8 3.4l.3-.5c.4-.7-5.4-4.1-5.8-3.4l-.3.5" fill="#b0bdc6"/><path d="m52.9 22.3c-9.1-10.1.1-23.8-7-19.5-5.2 3.2-10.2 4-13.9 4s-8.7-.8-13.9-4c-7.1-4.3 2.1 9.3-7 19.5-8.7 5.1-9.1 4.5-9.1 5.7 0 .7.4 6.8 30 6.8s30-6.2 30-6.8c0-1.2-.4-.6-9.1-5.7" fill="#62727a"/><path d="m32 24.1c9.6 0 20.9-1.8 20.9-1.8-1-1.1-1.7-2.2-2.3-3.4-4.6.7-10.7 1.1-18.6 1.1s-13.9-.4-18.6-1.1c-.6 1.2-1.3 2.4-2.3 3.4 0 0 11.3 1.8 20.9 1.8" fill="#2c3033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fe.svg
index 75370a0..f3f11e4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2c3033"><path d="m57.37 37.33c0 0-7.03-4.256-26.441-4.256v29.411l17.21-4.375 9.231-20.78"/><path d="m7.285 37.33c0 0 7.03-4.256 26.441-4.256v29.411l-17.21-4.375-9.231-20.78"/></g><path fill="#62727a" d="M64,64c0-20.615-14.325-16.811-32-16.811S0,43.385,0,64H64z"/><path fill="#2c3033" d="M21.791 49.02 32.407 64 41.475 49.678z"/><path fill="#b47d56" d="m42.586 48.635c-5.068 5.516-16.1 5.516-21.17 0-3.845-4.186-3.75-23.67-3.75-23.67h28.672c0 0 .095 19.484-3.75 23.67"/><path fill="#935e3e" d="m34.885 40.05c0 .832-1.292 1.506-2.885 1.506s-2.885-.674-2.885-1.506c0-.834 5.77-.834 5.77 0"/><g fill="#62727a"><path d="m32.25 64h-20.841c2.762-11.957-4.12-26.674-4.12-26.674s8.965 7.466 17.17 7.466l7.795 19.21"/><path d="M32.407,64h20.841c-2.762-11.957,4.12-26.674,4.12-26.674s-8.965,7.466-17.166,7.466L32.407,64z"/></g><g fill="#2c3033"><path d="m18.841 31.915c0 0-.875-.163-1.563.131-.441.19-.292-1.931 0-2.346.397-.563 1.563-.536 1.563-.536v2.751"/><path d="m45.16 31.915c0 0 .874-.163 1.562.131.442.19.293-1.931 0-2.346-.396-.563-1.562-.536-1.562-.536v2.751"/><path d="m45 28.983c-.827-.525-4.03-.566-5.945-.566-1.092 0-4.719.032-5.522.454-.115.061-1.534.09-1.534.09s-1.418-.029-1.533-.09c-.804-.422-4.431-.454-5.522-.454-1.914 0-5.117.041-5.945.566-1.313.833-1.273 2.208-.541 6.138.383 2.051 1.36 3.133 7.364 3.294 5.313.142 4.688-6.342 6.178-6.342s.865 6.483 6.179 6.342c6-.161 6.981-1.243 7.363-3.294.731-3.93.771-5.305-.542-6.138"/></g><g fill="#383b3d"><path d="m29.896 29.84c-.436-.279-2.468-.468-5.057-.468-2.649 0-4.891.198-5.332.473-.726.448-.945 1.305-.228 4.968.262 1.337.938 1.605 1.59 1.867l.191.078c1.035.432 2.787.653 4.698.594 1.87-.059 2.209-.37 2.799-1.064.569-.672 2.107-3.85 1.846-5.549-.064-.423-.235-.724-.507-.899"/><path d="m34.1 29.84c.436-.279 2.468-.468 5.057-.468 2.648 0 4.891.198 5.333.473.725.448.944 1.305.228 4.968-.263 1.337-.938 1.605-1.591 1.867l-.191.078c-1.034.432-2.787.653-4.697.594-1.871-.059-2.21-.37-2.799-1.064-.569-.672-2.108-3.85-1.847-5.549.064-.423.235-.724.507-.899"/></g><path fill="#62727a" d="m48.5 21.762c-7.188-7.276.063-20.404-5.529-17.294-4.085 2.271-8.104 3.654-10.972 3.654s-6.885-1.383-10.972-3.654c-5.592-3.11 1.659 10.02-5.528 17.294-6.875 3.673-9.858 3.203-9.858 4.11 0 .493 2.921 4.912 26.358 4.912s26.36-4.419 26.36-4.912c0-.907-2.984-.437-9.859-4.11"/><path fill="#2c3033" d="m31.999 23.05c7.59 0 13.02-.438 16.902-1.081 0 0-.263-.159-.401-.233-.755-.765-1.342-1.596-1.811-2.463-3.665.471-8.443.785-14.69.785s-11.02-.314-14.69-.785c-.467.867-1.055 1.698-1.81 2.463-.139.074-.401.233-.401.233 3.883.643 9.311 1.081 16.901 1.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.5 41.2h41.6c0-22.4-3.2-27.2-20.8-27.2s-20.8 4.8-20.8 27.2" fill="#231f20"/><path d="m51.3 36.3c-.1.9-.3 1.7-.6 2.1-.4.8-1.4 1.3-1.4 1.3s.2-1.7.2-4c-1-13.9-1.8-10-17.3-10-15.4 0-24.2 2.7-24.2 12 0 6.8 6.4 9.9 6.4 9.9 1.6 6.7 6.2 10.4 13.4 13.7 2.2 1 6.6 1 8.8 0 8-3.6 12.7-7.8 13.8-15.9 3.2-.2 4.2-2.4 4.2-4.9.1-4.3-1.8-4.6-3.3-4.2" fill="#b47d56"/><path d="m39.5 51.5c0 2.7-3.6 4.1-7.2 4.1s-7.2-1.4-7.2-4.1c0 0 0-.7.7-.7 3.2 0 9.7 0 13 0 .7 0 .7.7.7.7" fill="#664e27"/><path d="m41.9 35.3c4 0 5.6 1.4 5.6 2.9s0 3.5-5.3 3.5c-5.1 0-5.9-.6-5.9-2.8 0-1.5 1.6-3.6 5.6-3.6" fill="#f5f5f5"/><circle cx="41.5" cy="37.7" r="3.6" fill="#664e27"/><path d="m40.3 37.7c0 .7.5 1.2 1.2 1.2.7 0 1.2-.5 1.2-1.2 0-.7-.5-1.2-1.2-1.2-.7 0-1.2.5-1.2 1.2" fill="#231f20"/><path d="m47.5 38.1c0-5.6-11.2-5.6-11.2.8 1.6-4.8 9.6-4.8 11.2-.8" fill="#664e27"/><path d="m32.3 48.4c-3.3 0-5-2.4-3.3-2.4s5 0 6.7 0-.1 2.4-3.4 2.4" fill="#935e3e"/><path d="m19.5 34.2c-4.6 0-6.5 1.7-6.5 3.4 0 1.7 0 4.1 6.1 4.1 5.9 0 6.9-.7 6.9-3.2 0-1.8-1.9-4.3-6.5-4.3" fill="#f5f5f5"/><circle cx="20" cy="37.1" r="4.2" fill="#664e27"/><path d="m21.4 37.1c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.7 0 1.4.6 1.4 1.4" fill="#231f20"/><path d="m13 37.5c0-6.5 13-6.5 13 .9-1.9-5.5-11.1-5.5-13-.9" fill="#664e27"/><circle cx="19.3" cy="37.3" r="11.1" opacity=".4" fill="#f5f5f5"/><g fill="#b0bdc6"><path transform="matrix(.5-.866.866.5-35.6058 35.404)" d="m11.8 47.1h2.2v2.9h-2.2z"/><path d="m13.2 48c5.9 3.4 13.4 1.4 16.8-4.5 3.4-5.9 1.4-13.4-4.5-16.8-5.9-3.4-13.4-1.4-16.8 4.5s-1.4 13.4 4.5 16.8m-2.6-15.7c2.8-4.8 9-6.5 13.8-3.7 4.8 2.8 6.5 9 3.7 13.8-2.8 4.8-9 6.5-13.8 3.7-4.9-2.8-6.5-9-3.7-13.8"/></g><path transform="matrix(.5001-.866.866.5001-41.4944 35.398)" fill="#333" d="m4.7 51h10.3v5.2h-10.3z"/><path d="m4.3 56.7c-.4.7 5.4 4.1 5.8 3.4l.3-.5c.4-.7-5.4-4.1-5.8-3.4l-.3.5" fill="#b0bdc6"/><path d="m52.9 22.3c-9.1-10.1.1-23.8-7-19.5-5.2 3.2-10.2 4-13.9 4-3.6 0-8.7-.8-13.9-4-7.1-4.3 2.1 9.3-7 19.5-8.7 5.1-9.1 4.5-9.1 5.7 0 .7.4 6.8 30 6.8s30-6.2 30-6.8c0-1.2-.4-.6-9.1-5.7" fill="#62727a"/><path d="m32 24.1c9.6 0 20.9-1.8 20.9-1.8-1-1.1-1.7-2.2-2.3-3.4-4.6.7-10.7 1.1-18.6 1.1s-13.9-.4-18.6-1.1c-.6 1.2-1.3 2.4-2.3 3.4 0 0 11.3 1.8 20.9 1.8" fill="#2c3033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3ff.svg
index 8503b89..5fc5575 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f575-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2c3033"><path d="m57.37 37.33c0 0-7.03-4.256-26.441-4.256v29.411l17.21-4.375 9.231-20.78"/><path d="m7.285 37.33c0 0 7.03-4.256 26.441-4.256v29.411l-17.21-4.375-9.231-20.78"/></g><path fill="#62727a" d="M64,64c0-20.615-14.325-16.811-32-16.811S0,43.385,0,64H64z"/><path fill="#2c3033" d="M21.791 49.02 32.407 64 41.475 49.678z"/><path fill="#8a6859" d="m42.586 48.635c-5.068 5.516-16.1 5.516-21.17 0-3.845-4.186-3.75-23.67-3.75-23.67h28.672c0 0 .095 19.484-3.75 23.67"/><path fill="#705041" d="m34.885 40.05c0 .832-1.292 1.506-2.885 1.506s-2.885-.674-2.885-1.506c0-.834 5.77-.834 5.77 0"/><g fill="#62727a"><path d="m32.25 64h-20.841c2.762-11.957-4.12-26.674-4.12-26.674s8.965 7.466 17.17 7.466l7.795 19.21"/><path d="M32.407,64h20.841c-2.762-11.957,4.12-26.674,4.12-26.674s-8.965,7.466-17.166,7.466L32.407,64z"/></g><g fill="#2c3033"><path d="m18.841 31.915c0 0-.875-.163-1.563.131-.441.19-.292-1.931 0-2.346.397-.563 1.563-.536 1.563-.536v2.751"/><path d="m45.16 31.915c0 0 .874-.163 1.562.131.442.19.293-1.931 0-2.346-.396-.563-1.562-.536-1.562-.536v2.751"/><path d="m45 28.983c-.827-.525-4.03-.566-5.945-.566-1.092 0-4.719.032-5.522.454-.115.061-1.534.09-1.534.09s-1.418-.029-1.533-.09c-.804-.422-4.431-.454-5.522-.454-1.914 0-5.117.041-5.945.566-1.313.833-1.273 2.208-.541 6.138.383 2.051 1.36 3.133 7.364 3.294 5.313.142 4.688-6.342 6.178-6.342s.865 6.483 6.179 6.342c6-.161 6.981-1.243 7.363-3.294.731-3.93.771-5.305-.542-6.138"/></g><g fill="#383b3d"><path d="m29.896 29.84c-.436-.279-2.468-.468-5.057-.468-2.649 0-4.891.198-5.332.473-.726.448-.945 1.305-.228 4.968.262 1.337.938 1.605 1.59 1.867l.191.078c1.035.432 2.787.653 4.698.594 1.87-.059 2.209-.37 2.799-1.064.569-.672 2.107-3.85 1.846-5.549-.064-.423-.235-.724-.507-.899"/><path d="m34.1 29.84c.436-.279 2.468-.468 5.057-.468 2.648 0 4.891.198 5.333.473.725.448.944 1.305.228 4.968-.263 1.337-.938 1.605-1.591 1.867l-.191.078c-1.034.432-2.787.653-4.697.594-1.871-.059-2.21-.37-2.799-1.064-.569-.672-2.108-3.85-1.847-5.549.064-.423.235-.724.507-.899"/></g><path fill="#62727a" d="m48.5 21.762c-7.188-7.276.063-20.404-5.529-17.294-4.085 2.271-8.104 3.654-10.972 3.654s-6.885-1.383-10.972-3.654c-5.592-3.11 1.659 10.02-5.528 17.294-6.875 3.673-9.858 3.203-9.858 4.11 0 .493 2.921 4.912 26.358 4.912s26.36-4.419 26.36-4.912c0-.907-2.984-.437-9.859-4.11"/><path fill="#2c3033" d="m31.999 23.05c7.59 0 13.02-.438 16.902-1.081 0 0-.263-.159-.401-.233-.755-.765-1.342-1.596-1.811-2.463-3.665.471-8.443.785-14.69.785s-11.02-.314-14.69-.785c-.467.867-1.055 1.698-1.81 2.463-.139.074-.401.233-.401.233 3.883.643 9.311 1.081 16.901 1.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.5 41.2h41.6c0-22.4-3.2-27.2-20.8-27.2s-20.8 4.8-20.8 27.2" fill="#231f20"/><path d="m51.3 36.3c-.1.9-.3 1.7-.6 2.1-.4.8-1.4 1.3-1.4 1.3s.2-1.7.2-4c-1-13.9-1.8-10-17.3-10-15.4 0-24.2 2.7-24.2 12 0 6.8 6.4 9.9 6.4 9.9 1.6 6.7 6.2 10.4 13.4 13.7 2.2 1 6.6 1 8.8 0 8-3.6 12.7-7.8 13.8-15.9 3.2-.2 4.2-2.4 4.2-4.9.1-4.3-1.8-4.6-3.3-4.2" fill="#8a6859"/><path d="m39.5 51.5c0 2.7-3.6 4.1-7.2 4.1s-7.2-1.4-7.2-4.1c0 0 0-.7.7-.7 3.2 0 9.7 0 13 0 .7 0 .7.7.7.7" fill="#574137"/><path d="m41.9 35.3c4 0 5.6 1.4 5.6 2.9s0 3.5-5.3 3.5c-5.1 0-5.9-.6-5.9-2.8 0-1.5 1.6-3.6 5.6-3.6" fill="#f5f5f5"/><circle cx="41.5" cy="37.7" r="3.6" fill="#664e27"/><path d="m40.3 37.7c0 .7.5 1.2 1.2 1.2.7 0 1.2-.5 1.2-1.2 0-.7-.5-1.2-1.2-1.2-.7 0-1.2.5-1.2 1.2" fill="#231f20"/><path d="m47.5 38.1c0-5.6-11.2-5.6-11.2.8 1.6-4.8 9.6-4.8 11.2-.8" fill="#664e27"/><path d="m32.3 48.4c-3.3 0-5-2.4-3.3-2.4s5 0 6.7 0-.1 2.4-3.4 2.4" fill="#705041"/><path d="m19.5 34.2c-4.6 0-6.5 1.7-6.5 3.4 0 1.7 0 4.1 6.1 4.1 5.9 0 6.9-.7 6.9-3.2 0-1.8-1.9-4.3-6.5-4.3" fill="#f5f5f5"/><circle cx="20" cy="37.1" r="4.2" fill="#664e27"/><path d="m21.4 37.1c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.7 0 1.4.6 1.4 1.4" fill="#231f20"/><path d="m13 37.5c0-6.5 13-6.5 13 .9-1.9-5.5-11.1-5.5-13-.9" fill="#664e27"/><circle cx="19.3" cy="37.3" r="11.1" opacity=".4" fill="#f5f5f5"/><g fill="#b0bdc6"><path transform="matrix(.5-.866.866.5-35.6058 35.404)" d="m11.8 47.1h2.2v2.9h-2.2z"/><path d="m13.2 48c5.9 3.4 13.4 1.4 16.8-4.5 3.4-5.9 1.4-13.4-4.5-16.8-5.9-3.4-13.4-1.4-16.8 4.5s-1.4 13.4 4.5 16.8m-2.6-15.7c2.8-4.8 9-6.5 13.8-3.7 4.8 2.8 6.5 9 3.7 13.8-2.8 4.8-9 6.5-13.8 3.7-4.9-2.8-6.5-9-3.7-13.8"/></g><path transform="matrix(.5001-.866.866.5001-41.4944 35.398)" fill="#333" d="m4.7 51h10.3v5.2h-10.3z"/><path d="m4.3 56.7c-.4.7 5.4 4.1 5.8 3.4l.3-.5c.4-.7-5.4-4.1-5.8-3.4l-.3.5" fill="#b0bdc6"/><path d="m52.9 22.3c-9.1-10.1.1-23.8-7-19.5-5.2 3.2-10.2 4-13.9 4-3.6 0-8.7-.8-13.9-4-7.1-4.3 2.1 9.3-7 19.5-8.7 5.1-9.1 4.5-9.1 5.7 0 .7.4 6.8 30 6.8s30-6.2 30-6.8c0-1.2-.4-.6-9.1-5.7" fill="#62727a"/><path d="m32 24.1c9.6 0 20.9-1.8 20.9-1.8-1-1.1-1.7-2.2-2.3-3.4-4.6.7-10.7 1.1-18.6 1.1s-13.9-.4-18.6-1.1c-.6 1.2-1.3 2.4-2.3 3.4 0 0 11.3 1.8 20.9 1.8" fill="#2c3033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f575.svg b/build/js/jsxc/lib/emojione/assets/svg/1f575.svg
index 1148e6c..9612eda 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f575.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f575.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#2c3033"><path d="m57.37 37.33c0 0-7.03-4.256-26.441-4.256v29.412l17.21-4.375 9.231-20.781"/><path d="m7.285 37.33c0 0 7.03-4.256 26.441-4.256v29.412l-17.21-4.375-9.231-20.781"/></g><path fill="#62727a" d="M64,64c0-20.615-14.325-16.811-32-16.811S0,43.385,0,64H64z"/><path fill="#2c3033" d="M21.791 49.02 32.407 64 41.475 49.678z"/><path fill="#ffdd67" d="m42.586 48.635c-5.068 5.516-16.1 5.516-21.17 0-3.845-4.186-3.75-23.669-3.75-23.669h28.672c0-.001.095 19.483-3.75 23.669"/><path fill="#eba352" d="m34.885 40.05c0 .832-1.292 1.506-2.885 1.506s-2.885-.674-2.885-1.506c0-.834 5.77-.834 5.77 0"/><g fill="#62727a"><path d="m32.25 64h-20.841c2.762-11.957-4.12-26.674-4.12-26.674s8.965 7.467 17.17 7.467l7.795 19.21"/><path d="M32.407,64h20.841c-2.762-11.957,4.12-26.674,4.12-26.674s-8.965,7.467-17.166,7.467L32.407,64z"/></g><g fill="#2c3033"><path d="m18.841 31.916c0 0-.875-.163-1.563.131-.441.19-.292-1.931 0-2.346.397-.563 1.563-.536 1.563-.536v2.751"/><path d="m45.16 31.916c0 0 .874-.163 1.562.131.442.19.293-1.931 0-2.346-.396-.563-1.562-.536-1.562-.536v2.751"/><path d="m45 28.984c-.827-.525-4.03-.566-5.945-.566-1.092 0-4.719.032-5.522.454-.115.06-1.534.089-1.534.089s-1.418-.029-1.533-.09c-.804-.422-4.431-.454-5.522-.454-1.914 0-5.117.041-5.945.566-1.313.833-1.273 2.208-.541 6.137.383 2.051 1.36 3.133 7.364 3.295 5.313.141 4.688-6.342 6.178-6.342s.865 6.483 6.179 6.342c6-.162 6.981-1.244 7.363-3.295.731-3.928.771-5.303-.542-6.136"/></g><g fill="#383b3d"><path d="m29.896 29.84c-.436-.279-2.468-.468-5.057-.468-2.649 0-4.891.198-5.332.473-.726.448-.945 1.305-.228 4.967.262 1.338.938 1.605 1.59 1.867l.191.078c1.035.432 2.787.654 4.698.594 1.87-.059 2.209-.369 2.799-1.064.569-.672 2.107-3.849 1.846-5.548-.064-.422-.235-.724-.507-.899"/><path d="m34.1 29.84c.436-.279 2.468-.468 5.057-.468 2.648 0 4.891.198 5.333.473.725.448.944 1.305.228 4.967-.263 1.338-.938 1.605-1.591 1.867l-.191.078c-1.034.432-2.787.654-4.697.594-1.871-.059-2.21-.369-2.799-1.064-.569-.672-2.108-3.849-1.847-5.548.064-.422.235-.724.507-.899"/></g><path fill="#62727a" d="m48.5 21.762c-7.188-7.276.063-20.404-5.529-17.294-4.085 2.271-8.104 3.654-10.972 3.654s-6.885-1.382-10.972-3.654c-5.592-3.11 1.659 10.02-5.528 17.294-6.875 3.673-9.858 3.203-9.858 4.11 0 .493 2.921 4.912 26.358 4.912s26.36-4.419 26.36-4.912c0-.907-2.984-.437-9.859-4.11"/><path fill="#2c3033" d="m31.999 23.05c7.59 0 13.02-.438 16.902-1.081 0 0-.263-.159-.401-.233-.755-.765-1.342-1.596-1.811-2.463-3.665.471-8.443.785-14.69.785s-11.02-.314-14.69-.785c-.467.867-1.055 1.698-1.81 2.463-.139.074-.401.233-.401.233 3.883.644 9.311 1.081 16.901 1.081"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m11.5 41.2h41.6c0-22.4-3.2-27.2-20.8-27.2s-20.8 4.8-20.8 27.2" fill="#ffb300"/><path d="m51.3 36.3c-.1.9-.3 1.7-.6 2.1-.4.8-1.4 1.3-1.4 1.3s.2-1.7.2-4c-1-13.9-1.8-10-17.3-10-15.4 0-24.2 2.7-24.2 12 0 6.8 6.4 9.9 6.4 9.9 1.6 6.7 6.2 10.4 13.4 13.7 2.2 1 6.6 1 8.8 0 8-3.6 12.7-7.8 13.8-15.9 3.2-.2 4.2-2.4 4.2-4.9.1-4.3-1.8-4.6-3.3-4.2" fill="#ffdd67"/><path d="m39.5 51.5c0 2.7-3.6 4.1-7.2 4.1s-7.2-1.4-7.2-4.1c0 0 0-.7.7-.7 3.2 0 9.7 0 13 0 .7 0 .7.7.7.7" fill="#937237"/><path d="m41.9 35.3c4 0 5.6 1.4 5.6 2.9s0 3.5-5.3 3.5c-5.1 0-5.9-.6-5.9-2.8 0-1.5 1.6-3.6 5.6-3.6" fill="#f5f5f5"/><circle cx="41.5" cy="37.7" r="3.6" fill="#664e27"/><path d="m40.3 37.7c0 .7.5 1.2 1.2 1.2.7 0 1.2-.5 1.2-1.2 0-.7-.5-1.2-1.2-1.2-.7 0-1.2.5-1.2 1.2" fill="#231f20"/><path d="m47.5 38.1c0-5.6-11.2-5.6-11.2.8 1.6-4.8 9.6-4.8 11.2-.8" fill="#664e27"/><path d="m32.3 48.4c-3.3 0-5-2.4-3.3-2.4s5 0 6.7 0-.1 2.4-3.4 2.4" fill="#eba352"/><path d="m19.5 34.2c-4.6 0-6.5 1.7-6.5 3.4 0 1.7 0 4.1 6.1 4.1 5.9 0 6.9-.7 6.9-3.2 0-1.8-1.9-4.3-6.5-4.3" fill="#f5f5f5"/><circle cx="20" cy="37.1" r="4.2" fill="#664e27"/><path d="m21.4 37.1c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.7 0 1.4.6 1.4 1.4" fill="#231f20"/><path d="m13 37.5c0-6.5 13-6.5 13 .9-1.9-5.5-11.1-5.5-13-.9" fill="#664e27"/><circle cx="19.3" cy="37.3" r="11.1" opacity=".4" fill="#f5f5f5"/><g fill="#b0bdc6"><path transform="matrix(.5-.866.866.5-35.6058 35.404)" d="m11.8 47.1h2.2v2.9h-2.2z"/><path d="m13.2 48c5.9 3.4 13.4 1.4 16.8-4.5 3.4-5.9 1.4-13.4-4.5-16.8-5.9-3.4-13.4-1.4-16.8 4.5s-1.4 13.4 4.5 16.8m-2.6-15.7c2.8-4.8 9-6.5 13.8-3.7 4.8 2.8 6.5 9 3.7 13.8-2.8 4.8-9 6.5-13.8 3.7-4.9-2.8-6.5-9-3.7-13.8"/></g><path transform="matrix(.5001-.866.866.5001-41.4944 35.398)" fill="#333" d="m4.7 51h10.3v5.2h-10.3z"/><path d="m4.3 56.7c-.4.7 5.4 4.1 5.8 3.4l.3-.5c.4-.7-5.4-4.1-5.8-3.4l-.3.5" fill="#b0bdc6"/><path d="m52.9 22.3c-9.1-10.1.1-23.8-7-19.5-5.2 3.2-10.2 4-13.9 4-3.6 0-8.7-.8-13.9-4-7.1-4.3 2.1 9.3-7 19.5-8.7 5.1-9.1 4.5-9.1 5.7 0 .7.4 6.8 30 6.8s30-6.2 30-6.8c0-1.2-.4-.6-9.1-5.7" fill="#62727a"/><path d="m32 24.1c9.6 0 20.9-1.8 20.9-1.8-1-1.1-1.7-2.2-2.3-3.4-4.6.7-10.7 1.1-18.6 1.1s-13.9-.4-18.6-1.1c-.6 1.2-1.3 2.4-2.3 3.4 0 0 11.3 1.8 20.9 1.8" fill="#2c3033"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f576.svg b/build/js/jsxc/lib/emojione/assets/svg/1f576.svg
index 4415f0a..3f1075e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f576.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f576.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#222526"><path d="m3.587 32.594c3.984-13.409 8.265-19.593 10.1-19.593.975 0 1.306.675 1.662 2.225.854 3.716.053 4.892-.455 5.409-.699.714-1.838.128-1.838-3.838-.937 2.294-5.33 10.44-7.646 19.03l-1.827-3.229"/><path d="m60.41 32.594c-3.984-13.409-8.266-19.593-10.11-19.593-.974 0-1.305.675-1.66 2.225-.854 3.716-.054 4.892.453 5.409.7.714 1.838.128 1.838-3.838.938 2.294 5.332 10.44 7.646 19.03l1.828-3.229"/></g><path fill="#363b3d" d="m36.12 33.29c-2.356 1.206-5.891 1.206-8.247 0-2.518-1.323-5.593-2.171-9.275-2.502-3.595-.323-11.215-.313-15.03 1.063-.438.157-.868.361-1.283.58-.234.121-.281.211-.281.66v.579c0 1.09-.133.666.627 1.12 1.479.889 2.32 3.193 2.771 6.367.641 4.625 2.855 7.523 6.453 8.908 3.338 1.283 7.07 1.238 10.384-.115 1.812-.741 3.401-1.914 4.665-3.816 2.216-3.336 1.552-5.418 2.695-8.283.996-2.502 3.794-2.502 4.792 0 1.144 2.865.479 4.947 2.694 8.283 1.263 1.902 2.854 3.075 4.666 3.816 3.312 1.354 7.05 1.398 10.384.115 3.596-1.385 5.813-4.283 6.453-8.908.449-3.174 1.291-5.479 2.771-6.367.76-.454.627-.03.627-1.12v-.579c0-.449-.048-.539-.281-.66-.415-.219-.847-.423-1.282-.58-3.813-1.375-11.435-1.387-15.03-1.063-3.686.331-6.762 1.179-9.279 2.502"/><g fill="#5f6566"><path d="m26.18 35.05c-.832-.629-2.358-1.104-4.18-1.428-1.047-.188-2.189-.324-3.354-.413-2.737-.208-5.58-.15-7.547.157-1.218.191-2.103.477-2.406.855-1.416 1.773-1.128 6.314.315 9.473.387.847.852 1.598 1.393 2.164.923.967 2.127 1.617 3.455 2.02.885.269 1.822.418 2.779.472 1.6.09 3.237-.086 4.723-.492.259-.07.5-.168.738-.272 4.309-1.894 5.416-9.101 4.729-11.69-.082-.31-.309-.59-.645-.847"/><path d="m55.658 34.479c-.055-.086-.104-.179-.165-.254-.599-.75-3.457-1.14-6.733-1.138-1.188.002-2.43.054-3.642.158-1.325.114-2.608.294-3.741.537-2.156.465-3.763 1.163-4.02 2.112-.418 1.566-.174 4.824 1.035 7.576.492 1.119 1.144 2.154 1.979 2.956.689.663 1.501 1.173 2.452 1.431.155.043.321.068.479.106 3 .712 6.508.546 9.03-.983.525-.319 1.025-.678 1.45-1.121 2.483-2.592 3.432-8.926 1.875-11.38"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#222526"><path d="m3.6 32.6c4-13.4 8.3-19.6 10.1-19.6 1 0 1.3.7 1.7 2.2.9 3.7.1 4.9-.5 5.4-.7.7-1.8.1-1.8-3.8-.9 2.3-5.3 10.4-7.6 19l-1.9-3.2"/><path d="m60.4 32.6c-4-13.4-8.3-19.6-10.1-19.6-1 0-1.3.7-1.7 2.2-.9 3.7-.1 4.9.5 5.4.7.7 1.8.1 1.8-3.8.9 2.3 5.3 10.4 7.6 19l1.9-3.2"/></g><path d="m36.1 33.3c-2.4 1.2-5.9 1.2-8.2 0-2.5-1.3-5.6-2.2-9.3-2.5-3.6-.3-11.2-.3-15 1.1-.4.2-.9.4-1.3.6-.2.1-.3.1-.3.6v.6c0 1.1-.1.7.6 1.1 1.5.9 2.4 3.2 2.8 6.4.6 4.6 2.9 7.5 6.5 8.9 3.3 1.3 7.1 1.2 10.4-.1 1.8-.7 3.4-1.9 4.7-3.8 2.2-3.3 1.6-5.4 2.7-8.3 1-2.5 3.8-2.5 4.8 0 1.1 2.9.5 4.9 2.7 8.3 1.3 1.9 2.9 3.1 4.7 3.8 3.3 1.4 7 1.4 10.4.1 3.6-1.4 5.8-4.3 6.5-8.9.4-3.2 1.3-5.5 2.8-6.4.8-.5.6 0 .6-1.1v-.6c0-.4 0-.5-.3-.7-.4-.2-.8-.4-1.3-.6-3.8-1.4-11.4-1.4-15-1.1-3.9.4-7 1.3-9.5 2.6" fill="#363b3d"/><g fill="#5f6566"><path d="m26.2 35.1c-.8-.6-2.4-1.1-4.2-1.4-1-.2-2.2-.3-3.4-.4-2.7-.2-5.6-.2-7.5.2-1.2.2-2.1.5-2.4.9-1.4 1.6-1.1 6.1.3 9.3.4.8.9 1.6 1.4 2.2.9 1 2.1 1.6 3.5 2 .9.3 1.8.4 2.8.5 1.6.1 3.2-.1 4.7-.5.3-.1.5-.2.7-.3 4.3-1.9 5.4-9.1 4.7-11.7-.1-.3-.3-.6-.6-.8"/><path d="m55.7 34.5c-.1-.1-.1-.2-.2-.3-.6-.8-3.5-1.1-6.7-1.1-1.2 0-2.4.1-3.6.2-1.3.1-2.6.3-3.7.5-2.2.5-3.8 1.2-4 2.1-.4 1.6-.2 4.8 1 7.6.5 1.1 1.1 2.2 2 3 .7.7 1.5 1.2 2.5 1.4.2 0 .3.1.5.1 3 .7 6.5.5 9-1 .5-.3 1-.7 1.5-1.1 2.3-2.6 3.2-9 1.7-11.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f577.svg b/build/js/jsxc/lib/emojione/assets/svg/1f577.svg
index 2cd52f3..21bb089 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f577.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f577.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#44363c" d="m51.905 26l-2.273.705 2.177.962-2.339.423 2.03 1.239-2.38.091 1.828 1.523-2.364-.268 1.576 1.786-2.298-.63 1.288 2-2.18-.963.983 2.169-2.025-1.253.701 2.273-1.862-1.483.443 2.339-1.7-1.666.221 2.37-1.541-1.809.02 2.379-1.4-1.92-.137 2.375-1.283-2.01-.28 2.363-1.165-2.076-.413 2.346-1.053-2.14-.52 2.328-.963-2.178-.615 2.299-.875-2.219-.707 2.278-.799-2.248-.79 2.248-.709-2.278-.871 2.22-.62-2.3-.96 2.179-.523-2.319-1.056 2.13-.411-2.345-1.165 2.075-.289-2.363-1.284 2.01-.142-2.373-1.41 1.91.03-2.375-1.553 1.805.223-2.37-1.703 1.663.449-2.336-1.862 1.483.706-2.277-2.03 1.247.99-2.163-2.179.96 1.289-1.999-2.296.627 1.576-1.781-2.36.267 1.828-1.519-2.377-.09 2.033-1.232-2.342-.423 2.177-.963-2.269-.704 2.271-.76-2.169-1.03 2.351-.488-2.031-1.281 2.392-.201-1.864-1.512 2.398.077-1.681-1.715 2.373.347-1.479-1.889 2.325.602-1.276-2.04 2.251.84-1.065-2.151 2.154 1.051-.849-2.243 2.051 1.248-.645-2.312 1.93 1.429-.437-2.361 1.797 1.59-.236-2.389 1.659 1.735-.039-2.4 1.513 1.863.157-2.395 1.36 1.979.344-2.376 1.2 2.079.528-2.343 1.039 2.166.708-2.297.87 2.237.872-2.237.703 2.297 1.039-2.166.526 2.342 1.2-2.079.347 2.376 1.363-1.979.15 2.396 1.516-1.864-.038 2.4 1.662-1.734-.24 2.389 1.802-1.59-.437 2.361 1.935-1.427-.649 2.312 2.051-1.249-.854 2.245 2.162-1.053-1.07 2.153 2.25-.833-1.27 2.03 2.32-.598-1.48 1.888 2.37-.35-1.675 1.718 2.398-.077-1.863 1.509 2.39.204-2.03 1.279 2.349.487-2.17 1.03z"/><path fill="#75676d" d="m39.34 36.568c0 0 10.423-2.26 17.328-8.688 1.604-1.494-4.156-6.438-4.156-6.438s3.104 4.135.938 6.303c-2.072 2.072-10.294 5.236-11.392 5.133l-2.718 3.69"/><path fill="#5b4c52" d="m38.937 36.654c0 0 11.582-4.188 17.356-9.117 1.685-1.438-3.781-6.094-3.781-6.094s3.251 3.781 1.625 5.406c-2.072 2.072-11.453 6.06-12.552 5.953l-2.648 3.852"/><path fill="#75676d" d="m21.943 32.879c-1.098.104-9.319-3.061-11.392-5.133-2.167-2.168.938-6.303.938-6.303s-5.76 4.943-4.156 6.438c6.905 6.428 17.328 8.688 17.328 8.688l-2.718-3.69"/><path fill="#5b4c52" d="m22.416 32.803c-1.099.105-10.479-3.881-12.552-5.953-1.626-1.625 1.625-5.406 1.625-5.406s-5.466 4.656-3.781 6.093c5.774 4.93 17.356 9.117 17.356 9.117l-2.648-3.851"/><path fill="#75676d" d="m40.35 38.488c0 0 5.396 1.756 16.514-4.297 2.584-1.406-5.632 11.771-6.843 14.02 1.732-2.172 15.438-16.395 9.241-17.17-3.903-.482-12.758 4.055-14.15 3.555l-4.762 3.888"/><path fill="#5b4c52" d="m39.799 38.467c0 0 6.733.285 15.882-4.197 2.67-1.309-4.446 11.693-5.657 13.941 1.732-2.172 14.1-15.66 7.907-16.432-3.899-.484-12.01 3.064-13.405 2.564l-4.727 4.124"/><path fill="#75676d" d="m18.886 34.6c-1.393.5-10.247-4.04-14.15-3.555-6.197.771 7.509 14.994 9.241 17.17-1.211-2.248-9.426-15.426-6.843-14.02 11.12 6.05 16.514 4.297 16.514 4.297l-4.762-3.888"/><g fill="#5b4c52"><path d="m19.475 34.34c-1.393.5-9.506-3.049-13.405-2.564-6.197.771 6.175 14.26 7.907 16.432-1.211-2.249-8.327-15.251-5.657-13.942 9.148 4.482 15.882 4.197 15.882 4.197l-4.727-4.123"/><path d="m47.911 36.23l-1.821.566 1.744.77-1.872.336 1.623.993-1.9.072 1.465 1.213-1.89-.21 1.255 1.43-1.835-.507 1.025 1.601-1.738-.77.787 1.726-1.624-.99.565 1.81-1.485-1.18.35 1.869-1.36-1.334.18 1.895-1.23-1.45.02 1.905-1.13-1.535-.103 1.9-1.025-1.606-.228 1.89-.932-1.66-.322 1.874-.847-1.708-.413 1.86-.772-1.74-.492 1.84-.706-1.78-.563 1.82-.637-1.79-.631 1.79-.567-1.82-.692 1.78-.5-1.84-.773 1.741-.42-1.861-.85 1.708-.327-1.876-.936 1.66-.224-1.891-1.03 1.609-.11-1.9-1.129 1.528.023-1.908-1.24 1.449.181-1.894-1.362 1.328.359-1.863-1.488 1.18.565-1.82-1.621 1 .792-1.732-1.741.768 1.031-1.598-1.834.502 1.262-1.422-1.89.212 1.465-1.211-1.899-.071 1.626-.991-1.87-.334 1.736-.769-1.816-.564 1.818-.609-1.728-.821 1.87-.388-1.62-1.023 1.912-.159-1.491-1.21 1.918.06-1.344-1.371 1.899.277-1.184-1.509 1.858.479-1.02-1.625 1.799.667-.85-1.718 1.724.84-.682-1.795 1.639.999-.518-1.849 1.546 1.142-.351-1.887 1.438 1.27-.19-1.91 1.326 1.389-.03-1.919 1.211 1.49.12-1.92 1.09 1.586.275-1.899.96 1.662.422-1.873.829 1.73.564-1.835.7 1.788.698-1.788.562 1.835.83-1.731.422 1.874.959-1.663.276 1.9 1.086-1.586.125 1.92 1.212-1.492-.03 1.92 1.326-1.388-.186 1.91 1.438-1.269-.348 1.887 1.539-1.141-.509 1.849 1.63-.998-.68 1.792 1.73-.84-.85 1.72 1.79-.667-1.01 1.626 1.853-.48-1.183 1.512 1.897-.278-1.347 1.367 1.92-.06-1.491 1.21 1.911.161-1.623 1.022 1.879.388-1.736.822z"/></g><ellipse fill="#ffe62e" cx="37.425" cy="33.926" rx="4.722" ry="4.805"/><path fill="#3f3438" d="m40.683 33.926c0 1.824-1.453 3.305-3.248 3.305-1.79 0-3.245-1.48-3.245-3.305s1.455-3.305 3.245-3.305c1.794 0 3.248 1.481 3.248 3.305"/><ellipse fill="#ffe62e" cx="26.575" cy="33.926" rx="4.723" ry="4.805"/><path fill="#3f3438" d="m29.833 33.926c0 1.824-1.453 3.305-3.248 3.305-1.79 0-3.246-1.48-3.246-3.305s1.456-3.305 3.246-3.305c1.794 0 3.248 1.481 3.248 3.305"/><path fill="#75676d" d="m40.59 41.896c0 0 4.624 3.289 17.04.84 2.886-.572-8.895 9.547-10.723 11.33 2.303-1.555 19.636-11.03 13.952-13.617-3.579-1.627-13.387.055-14.565-.84l-5.707 2.287"/><path fill="#5b4c52" d="m40.07 41.711c0 0 6.341 2.285 16.41.744 2.939-.449-7.739 9.828-9.567 11.611 2.303-1.555 18.14-10.725 12.46-13.314-3.576-1.629-12.379-.668-13.559-1.563l-5.744 2.522"/><path fill="#75676d" d="m17.704 39.609c-1.179.895-10.986-.787-14.565.84-5.683 2.59 11.649 12.06 13.952 13.617-1.828-1.783-13.608-11.902-10.723-11.33 12.419 2.449 17.04-.84 17.04-.84l-5.707-2.287"/><path fill="#5b4c52" d="m18.19 39.19c-1.18.895-9.982-.066-13.559 1.563-5.683 2.59 10.157 11.76 12.46 13.314-1.828-1.783-12.507-12.06-9.567-11.611 10.07 1.541 16.41-.744 16.41-.744l-5.744-2.522"/><path fill="#fff" d="m35.06 40.973c0-1.049-1.371-.211-3.063-.211-1.691 0-3.063-.838-3.063.211 0 1.051 1.371 1.902 3.063 1.902 1.691 0 3.063-.852 3.063-1.902"/><g fill="#e24b4b"><path d="m40 15.875c0 0-3.582-.939-8-.939-4.42 0-8 .939-8 .939s3.58-3.045 8-3.045c4.418 0 8 3.045 8 3.045"/><path d="m40 18.316c0 0-3.582-1.217-8-1.217-4.418.001-8 1.217-8 1.217s3.582-3.498 8-3.498c4.417 0 7.999 3.498 7.999 3.498"/></g><path fill="#75676d" d="m36.836 44.18c0 0 2.33 2.645 10.186 2.928 1.826.064-6.732 4.508-8.092 5.328 1.613-.613 13.438-3.879 10.371-6.252-1.934-1.492-8.104-1.867-8.689-2.576l-3.776.572"/><path fill="#5b4c52" d="m36.549 43.994c0 0 3.508 2.281 9.816 2.779 1.838.145-6.076 4.842-7.436 5.662 1.613-.613 12.492-3.908 9.426-6.281-1.934-1.492-7.391-2.16-7.977-2.871l-3.829.711"/><path fill="#75676d" d="m23.388 43.37c-.586.709-6.756 1.082-8.688 2.574-3.068 2.375 8.758 5.641 10.369 6.254-1.357-.82-9.918-5.264-8.092-5.328 7.855-.283 10.186-2.928 10.186-2.928l-3.775-.572"/><path fill="#5b4c52" d="m23.623 43.05c-.586.709-6.04 1.379-7.977 2.871-3.068 2.373 7.813 5.668 9.424 6.281-1.357-.82-9.273-5.518-7.434-5.664 6.309-.496 9.816-2.779 9.816-2.779l-3.829-.709"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 33.7c0 0 4.9 2.3 16.2-2 2.6-1-6.8 10.5-8.2 12.4 1.9-1.8 16.7-13.6 10.9-15.1-3.6-.9-12.6 2.3-13.9 1.6l-5 3.1" fill="#75676d"/><path d="m39.1 33.7c0 0 6.3 1.1 15.6-2 2.7-.9-5.7 10.5-7.1 12.5 1.9-1.8 15.3-13.1 9.5-14.6-3.6-.9-11.8 1.4-13 .8l-5 3.3" fill="#5b4c52"/><path d="m19.4 30.6c-1.2.7-10.2-2.5-13.8-1.6-5.8 1.5 9 13.3 10.9 15.1-1.4-2-10.8-13.5-8.2-12.4 11.3 4.4 16.2 2 16.2 2l-5.1-3.1" fill="#75676d"/><path d="m20 30.3c-1.3.6-9.4-1.7-13-.8-5.8 1.5 7.6 12.8 9.5 14.6-1.4-2-9.8-13.4-7.1-12.5 9.2 3.1 15.6 2 15.6 2l-5-3.3" fill="#5b4c52"/><path opacity=".6" fill="#a6aeb0" d="m31 2h2v19.3h-2z"/><path d="m49.7 32.7c0 6.7-7.9 11.2-17.7 11.2s-17.7-4.5-17.7-11.2c0-12.1 17.7-16.2 17.7-16.2 0 0 17.7 4.1 17.7 16.2" fill="#5b4c52"/><g fill="#e24b4b"><path d="m40 22.8c0 0-3.6-.9-8-.9-4.4 0-8 .9-8 .9s3.6-3 8-3c4.4 0 8 3 8 3"/><path d="m40 25.3c0 0-3.6-1.2-8-1.2s-8 1.2-8 1.2 3.6-3.5 8-3.5c4.4 0 8 3.5 8 3.5"/></g><path d="m40.4 46.4c0 0 5.4 1.8 16.5-4.3 2.6-1.4-5.6 11.8-6.8 14 1.7-2.1 15.4-16.3 9.2-17.1-3.9-.5-12.8 4.1-14.1 3.6l-4.8 3.8" fill="#75676d"/><path d="m39.8 46.4c0 0 6.7.3 15.9-4.2 2.7-1.3-4.4 11.7-5.7 13.9 1.7-2.2 14.1-15.7 7.9-16.4-3.9-.5-12 3.1-13.4 2.6l-4.7 4.1" fill="#5b4c52"/><path d="m18.9 42.5c-1.4.5-10.3-4-14.2-3.5-6.2.8 7.5 15 9.2 17.2-1.2-2.2-9.4-15.4-6.8-14 11.1 6.1 16.5 4.3 16.5 4.3l-4.7-4" fill="#75676d"/><path d="m19.5 42.3c-1.4.5-9.5-3-13.4-2.6-6.2.8 6.1 14.3 7.9 16.4-1.2-2.2-8.3-15.2-5.7-13.9 9.1 4.5 15.9 4.2 15.9 4.2l-4.7-4.1" fill="#5b4c52"/><path d="m40.6 49.8c0 0 4.6 3.3 17 .8 2.9-.6-8.9 9.5-10.7 11.3 2.3-1.6 19.6-11 14-13.6-3.6-1.6-14.4.1-15.6-.8l-4.7 2.3" fill="#75676d"/><path d="m40.1 49.6c0 0 6.3 2.3 16.4.7 2.9-.4-7.7 9.8-9.6 11.6 2.3-1.6 18.1-10.7 12.5-13.3-3.6-1.5-13.4-.6-14.6-1.5l-4.7 2.5" fill="#5b4c52"/><path d="m18.7 47.5c-1.2.9-12-.8-15.6.8-5.6 2.7 11.7 12.1 14 13.7-1.8-1.8-13.6-11.9-10.7-11.3 12.4 2.4 17-.8 17-.8l-4.7-2.4" fill="#75676d"/><path d="m19.2 47.1c-1.2.9-11 0-14.6 1.6-5.7 2.6 10.2 11.7 12.5 13.3-1.8-1.8-12.5-12.1-9.6-11.6 10.1 1.5 16.4-.7 16.4-.7l-4.7-2.6" fill="#5b4c52"/><path d="m36.8 52.1c0 0 2.3 2.6 10.2 2.9 1.8.1-6.7 4.5-8.1 5.3 1.6-.6 13.4-3.9 10.4-6.3-1.9-1.5-8.1-1.9-8.7-2.6l-3.8.7" fill="#75676d"/><path d="m36.5 51.9c0 0 3.5 2.3 9.8 2.8 1.8.1-6.1 4.8-7.4 5.7 1.6-.6 12.5-3.9 9.4-6.3-1.9-1.5-7.4-2.2-8-2.9l-3.8.7" fill="#5b4c52"/><path d="m23.4 51.3c-.6.7-6.8 1.1-8.7 2.6-3.1 2.4 8.8 5.6 10.4 6.3-1.4-.8-9.9-5.3-8.1-5.3 7.9-.3 10.2-2.9 10.2-2.9l-3.8-.7" fill="#75676d"/><g fill="#5b4c52"><path d="m23.6 51c-.6.7-6 1.4-8 2.9-3.1 2.4 7.8 5.7 9.4 6.3-1.4-.8-9.3-5.5-7.4-5.7 6.3-.5 9.8-2.8 9.8-2.8l-3.8-.7"/><ellipse cx="32" cy="43.9" rx="13.9" ry="11.2"/></g><ellipse cx="36.9" cy="43.1" rx="4.3" ry="4.4" fill="#ffe62e"/><ellipse cx="36.9" cy="43.1" rx="2.9" ry="3" fill="#3f3438"/><ellipse cx="27.1" cy="43.1" rx="4.3" ry="4.4" fill="#ffe62e"/><path d="m30 43.1c0 1.7-1.3 3-2.9 3-1.6 0-2.9-1.3-2.9-3 0-1.7 1.3-3 2.9-3 1.6 0 2.9 1.3 2.9 3" fill="#3f3438"/><path d="m34.8 49.5c0-1-1.2-.2-2.8-.2s-2.8-.8-2.8.2c0 1 1.2 1.7 2.8 1.7s2.8-.8 2.8-1.7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f578.svg b/build/js/jsxc/lib/emojione/assets/svg/1f578.svg
index ab245c0..8a5a419 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f578.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f578.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#979797" d="m64 31.658h-5.61c-7.269-4.917-11.89-13.157-12.393-22.1l2.804-4.998-1.603-.953-2.806 5c-7.773 4.02-17.01 4.02-24.786-.001l-2.806-5-1.603.952 2.805 5c-.502 8.94-5.124 17.18-12.393 22.1h-5.609v1.905h5.61c7.269 4.916 11.89 13.155 12.393 22.09l-2.805 5 1.603.952 2.807-5c7.771-4.02 17.01-4.02 24.784 0l2.807 5 1.603-.952-2.804-4.998c.503-8.94 5.124-17.18 12.393-22.1h5.609v-1.905m-8.749 0h-5.503c-4.744-3.198-7.757-8.566-8.07-14.392l2.751-4.906c1.101 7.595 4.984 14.522 10.825 19.298m-23.25-.952l-2.293-4.087c.742.167 1.498.261 2.256.261.784 0 1.567-.097 2.336-.275l-2.299 4.101m3.895-3.135c.47 1.519 1.257 2.916 2.31 4.087h-4.603l2.293-4.087m-5.498 4.087h-4.584c1.044-1.178 1.826-2.578 2.283-4.101l2.301 4.101m0 1.905l-2.291 4.084c-.47-1.518-1.257-2.914-2.308-4.084h4.599m1.603.952l2.292 4.087c-1.512-.34-3.083-.339-4.592.015l2.3-4.102m1.602-.952h4.585c-1.043 1.177-1.826 2.577-2.284 4.101l-2.301-4.101m7.424-1.905c-2.136-1.501-3.509-3.923-3.738-6.573l2.855-5.089c.832 4.529 3.147 8.653 6.541 11.662h-5.658m-5.315-7.57c-2.33 1.153-5.05 1.167-7.397.046l-2.855-5.09c2.114.761 4.327 1.149 6.542 1.149 2.213 0 4.426-.389 6.541-1.149l-2.831 5.04m-9.02.954c-.196 2.655-1.548 5.088-3.663 6.616h-5.707c3.393-3.01 5.707-7.132 6.541-11.66l2.829 5.04m-3.711 8.521c2.136 1.5 3.508 3.922 3.736 6.57l-2.854 5.089c-.834-4.527-3.147-8.652-6.54-11.659h5.658m5.313 7.569c2.33-1.152 5.05-1.165 7.398-.046l2.854 5.089c-4.226-1.522-8.853-1.522-13.08.001l2.828-5.04m9.03-.951c.195-2.653 1.546-5.088 3.66-6.617h5.709c-3.393 3.01-5.708 7.132-6.54 11.661l-2.829-5.04m-5.314-26.648c3.677 0 7.353-.717 10.823-2.127l-2.753 4.909c-5.06 2.626-11.08 2.626-16.14-.001l-2.752-4.908c3.471 1.41 7.146 2.127 10.825 2.127m-12.426-1.172l2.752 4.906c-.319 5.826-3.331 11.197-8.07 14.391h-5.504c5.84-4.776 9.724-11.701 10.825-19.297m-10.824 21.2h5.503c4.742 3.196 7.754 8.565 8.07 14.39l-2.752 4.906c-1.1-7.594-4.983-14.52-10.823-19.296m12.425 20.25l2.753-4.908c5.06-2.626 11.08-2.626 16.14-.001l2.753 4.908c-6.94-2.819-14.707-2.819-21.648.001m23.25-.954l-2.751-4.905c.317-5.825 3.329-11.196 8.07-14.391h5.504c-5.841 4.776-9.725 11.702-10.825 19.296"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m64 31.7h-5.6c-7.3-5-11.9-13.2-12.4-22.1l2.8-5-1.6-1-2.8 5c-7.8 4-17 4-24.8 0l-2.8-5-1.6 1 2.8 5c-.5 8.9-5.1 17.2-12.4 22.1h-5.6v1.9h5.6c7.3 4.9 11.9 13.2 12.4 22.1l-2.8 5 1.6 1 2.8-5c7.8-4 17-4 24.8 0l2.8 5 1.6-1-2.8-5c.5-8.9 5.1-17.2 12.4-22.1h5.6v-1.9m-8.7 0h-5.5c-4.7-3.2-7.8-8.6-8.1-14.4l2.8-4.9c1 7.6 4.9 14.5 10.8 19.3m-23.3-1l-2.3-4.1c.7.2 1.5.3 2.3.3.8 0 1.6-.1 2.3-.3l-2.3 4.1m3.9-3.1c.5 1.5 1.3 2.9 2.3 4.1h-4.6l2.3-4.1m-5.5 4.1h-4.6c1-1.2 1.8-2.6 2.3-4.1l2.3 4.1m0 1.9l-2.3 4.1c-.5-1.5-1.3-2.9-2.3-4.1h4.6m1.6.9l2.3 4.1c-1.5-.3-3.1-.3-4.6 0l2.3-4.1m1.6-.9h4.6c-1 1.2-1.8 2.6-2.3 4.1l-2.3-4.1m7.4-1.9c-2.1-1.5-3.5-3.9-3.7-6.6l2.9-5.1c.8 4.5 3.1 8.7 6.5 11.7h-5.7m-5.3-7.6c-2.3 1.2-5.1 1.2-7.4 0l-2.8-5.1c2.1.8 4.3 1.1 6.5 1.1 2.2 0 4.4-.4 6.5-1.1l-2.8 5.1m-9 .9c-.2 2.7-1.5 5.1-3.7 6.6h-5.7c3.4-3 5.7-7.1 6.5-11.7l2.9 5.1m-3.7 8.6c2.1 1.5 3.5 3.9 3.7 6.6l-2.9 5.1c-.8-4.5-3.1-8.7-6.5-11.7h5.7m5.3 7.5c2.3-1.2 5.1-1.2 7.4 0l2.9 5.1c-4.2-1.5-8.9-1.5-13.1 0l2.8-5.1m9-.9c.2-2.7 1.5-5.1 3.7-6.6h5.7c-3.4 3-5.7 7.1-6.5 11.7l-2.9-5.1m-5.3-26.7c3.7 0 7.4-.7 10.8-2.1l-2.8 4.9c-5.1 2.6-11.1 2.6-16.1 0l-2.8-4.9c3.5 1.4 7.2 2.1 10.9 2.1m-12.4-1.1l2.8 4.9c-.4 5.8-3.4 11.2-8.1 14.4h-5.6c5.9-4.8 9.8-11.7 10.9-19.3m-10.8 21.2h5.5c4.7 3.2 7.7 8.5 8 14.4l-2.8 4.9c-1-7.6-4.9-14.6-10.7-19.3m12.4 20.2l2.8-4.9c5.1-2.6 11.1-2.6 16.1 0l2.8 4.9c-7-2.8-14.8-2.8-21.7 0m23.2-.9l-2.7-4.9c.3-5.8 3.3-11.2 8.1-14.4h5.5c-5.9 4.7-9.8 11.7-10.9 19.3" fill="#979797"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f579.svg b/build/js/jsxc/lib/emojione/assets/svg/1f579.svg
index 4d22db5..b2e6440 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f579.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f579.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#242a33" d="m56.933 48.14c-.711-3.02-3.235-9.02-4.797-11.799-2.293-4.083-37.983-4.081-40.28 0-1.561 2.779-4.087 8.784-4.797 11.799-.381 1.617 1.109 9.305 1.109 9.305.418 2.508 2.845 4.561 5.393 4.561h36.84c2.548 0 4.975-2.053 5.394-4.561-.001-.001 1.537-7.59 1.134-9.305"/><path fill="#a1acb3" d="m56.13 46.41c-.475.82-1.234 1.548-2.231 1.98-.495.219-1.052.342-1.616.374l-1.563.085c-2.081.094-4.163.182-6.244.235-4.163.131-8.327.165-12.489.183-4.163-.016-8.326-.05-12.488-.18-2.082-.055-4.164-.143-6.245-.236l-1.571-.086c-.543-.031-1.119-.155-1.608-.373-.997-.434-1.756-1.162-2.23-1.982.636.727 1.493 1.293 2.424 1.562.475.13.937.187 1.436.161l1.551-.084c2.081-.095 4.163-.183 6.245-.237 4.163-.13 8.326-.165 12.488-.179 4.162.017 8.326.051 12.489.182 2.081.055 4.163.143 6.244.236l1.559.083c.477.026.959-.031 1.428-.161.928-.27 1.786-.835 2.421-1.563"/><path fill="#6b7278" d="m7.841 53.43c.476-.82 1.235-1.547 2.231-1.979.496-.219 1.051-.343 1.616-.374l1.563-.084c2.082-.094 4.163-.182 6.245-.236 4.162-.131 8.326-.166 12.488-.182 4.164.014 8.326.049 12.489.18 2.081.055 4.163.142 6.245.235l1.571.085c.542.031 1.119.156 1.607.375.996.433 1.756 1.16 2.23 1.98-.636-.727-1.494-1.291-2.424-1.561-.475-.129-.938-.188-1.435-.16l-1.551.084c-2.082.094-4.164.182-6.245.236-4.163.13-8.325.164-12.489.179-4.163-.017-8.326-.051-12.488-.181-2.082-.055-4.163-.144-6.245-.237l-1.559-.083c-.477-.027-.958.031-1.427.16-.929.27-1.786.836-2.422 1.563"/><ellipse fill="#53585b" cx="36.02" cy="40.896" rx="11.888" ry="4.484"/><ellipse fill="#676e72" cx="36.02" cy="37.907" rx="10.637" ry="3.539"/><ellipse fill="#53585b" cx="36.02" cy="35.47" rx="9.386" ry="3.067"/><path fill="#d2cfcf" d="m39.764 17.13h-7.608v16.946c0 1.855 7.608 1.855 7.608 0v-16.946"/><ellipse fill="#ed4c5c" cx="35.959" cy="12.394" rx="10.486" ry="10.393"/><path fill="#a5000c" d="m24.13 35.07h-10.17v2.246c1.798 2.184 8.373 2.184 10.17 0v-2.246"/><ellipse fill="#ed4c5c" cx="19.05" cy="35.07" rx="5.085" ry="2.246"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.9 48.1c-.7-3-3.2-9-4.8-11.8-2.3-4.1-38-4.1-40.3 0-1.6 2.8-4.1 8.8-4.8 11.8-.4 1.6 1.1 9.3 1.1 9.3.5 2.5 2.9 4.6 5.5 4.6h36.8c2.5 0 5-2.1 5.4-4.6 0 0 1.5-7.5 1.1-9.3" fill="#242a33"/><path d="m56.1 46.4c-.5.8-1.2 1.5-2.2 2-.5.2-1.1.3-1.6.4l-1.6.1c-2.1.1-4.2.2-6.2.2-4.2.1-8.3.2-12.5.2-4.2 0-8.3 0-12.5-.2-2.1-.1-4.2-.1-6.2-.2l-1.6-.1c-.5 0-1.1-.2-1.6-.4-1-.4-1.8-1.2-2.2-2 .6.7 1.5 1.3 2.4 1.6.5.1.9.2 1.4.2l1.6-.1c2.1-.1 4.2-.2 6.2-.2 4.2-.1 8.3-.2 12.5-.2 4.2 0 8.3.1 12.5.2 2.1.1 4.2.1 6.2.2l1.6.1c.5 0 1 0 1.4-.2.9-.3 1.8-.9 2.4-1.6" fill="#a1acb3"/><path d="m7.8 53.4c.5-.8 1.2-1.5 2.2-2 .5-.2 1.1-.3 1.6-.4l1.6-.1c2.1-.1 4.2-.2 6.2-.2 4.2-.1 8.3-.2 12.5-.2 4.2 0 8.3 0 12.5.2 2.1.1 4.2.1 6.2.2l1.6.1c.5 0 1.1.2 1.6.4 1 .4 1.8 1.2 2.2 2-.6-.7-1.5-1.3-2.4-1.6-.5-.1-.9-.2-1.4-.2l-1.6.1c-2.1.1-4.2.2-6.2.2-4.2.1-8.3.2-12.5.2-4.2 0-8.3-.1-12.5-.2-2.1-.1-4.2-.1-6.2-.2l-1.6-.1c-.5 0-1 0-1.4.2-.9.3-1.7.9-2.4 1.6" fill="#6b7278"/><ellipse cx="36" cy="40.9" rx="11.9" ry="4.5" fill="#53585b"/><ellipse cx="36" cy="37.9" rx="10.6" ry="3.5" fill="#676e72"/><ellipse cx="36" cy="35.5" rx="9.4" ry="3.1" fill="#53585b"/><path d="m39.8 17.1h-7.6v16.9c0 1.9 7.6 1.9 7.6 0v-16.9" fill="#d2cfcf"/><ellipse cx="36" cy="12.4" rx="10.5" ry="10.4" fill="#ed4c5c"/><path d="m24.1 35.1h-10.1v2.2c1.8 2.2 8.4 2.2 10.2 0-.1 0-.1-2.2-.1-2.2" fill="#a5000c"/><ellipse cx="19" cy="35.1" rx="5.1" ry="2.2" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fb.svg
new file mode 100644
index 0000000..fc47b48
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m21.5 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/><path d="m38.7 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/></g><path d="m41.9 48.2c-.5-2.5-4.3-4.2-6.7-9.1 0 0-4.1-1.2-10-1.2 0 0-2.6 1.3-1.2 7.3.9 3.6-1 9.7-3.8 14.2 0 0 4.2 1.6 8.6 0 0 0-1.3-3.1.9-9.1.7-1.9-1-3.9.7-8.1 0 0 .8 1.8 6.9 7.3 0 0-1.2 5.6.2 10 0 0 .9.4 4.2.4 3.1 0 4.6-.4 4.6-.4s-2.8-3-4.4-11.3" fill="#c28fef"/><path d="m29.1 38.8c-2.1-1-3.4-1.1-4.2-.8-.3.3-.9 1-1.2 2.3 1.8 1 4.6.8 4.6.8.8-1.5.8-2.3.8-2.3" fill="#9450e0"/><g fill="#c28fef"><path d="m32.9 21.5c0 0 7.2-2.2 10.3-8.1 0 0 .5 2.3 4.2 4.5 0 0-5.4 4.1-9.2 5.8 0 0-.2 7.4 2.7 14.9 0 0-.3.9-7.1.9 0 0 3.5-6.3-.9-18"/><path d="m27.9 21.9c0 0-3.4-2-5-.7-8.9 7-9.4 8.7-8.4 14.2 0 0 1.8-1.3 5 .2 0 0-1.4-5.5 5-8.4 0 0 .2 4.2-2.1 11.2 0 0 1.4 1.9 5.5 1.9 0 0 4.3-9.1 0-18.4"/></g><path d="m44.1 12.4c0 0 3.9 2.1 3.9 5.4h-2.2c0 0-.2-1.8-1.2-2.5-1-.7-.5-2.9-.5-2.9" fill="#9450e0"/><path d="m44.1 12.4c0 0-1.7 1.4-2.8 2.7 0 0 .2 1.2 1.1 2.2l2.5-1.3-1.9 2.3c0 0 .7 1.1 2.1 1.6 0 0 1.8-1 2.9-2.1 0 0-3.2-1.8-3.9-5.4" fill="#ffc7ce"/><path d="m48 12.6c0 0 1.9-1.6 1.4-2.1-.5-.5-.9-.6-1.4 0-.2.2-.6.6-1.3 1.3-.7-.6-1 0-1.2.2-.3.3-.6 1.6-.6 1.6.5 1.4 1.4 2.5 2.7 3.3 1-.6 2.4-1.6 2.4-2 0-1-2-2.3-2-2.3" fill="#ffe1bd"/><path d="m45.5 13.2c0 0 .9-.2 1.3.2l-.2.1c0 0-.3-.2-1.1-.3" fill="#e6b796"/><path d="m14.4 36.5c0 0 1.6 1.1 5.7.2 0-.1-2.1-1.8-5.7-.2" fill="#9450e0"/><path d="m15.4 35.4c0 0-1.1 2.2.7 4.6.5.6 1.8 1.2 3.3.5 1.4-.6.2-1.1-.4-2.3.3-.4.7-.7.5-1.1-.3-.6-1.2-1-1.2-1s.5-.9-2.9-.7" fill="#ffe1bd"/><path d="m19.6 37.2c0-.1-.1-.1-.1-.2.1.3-.3.8-.5.6-.4-.4-.9-.8-.9-.8.6.7 1 1.5 1 1.5.3-.4.7-.7.5-1.1" fill="#e6b796"/><path d="m14 33.1c0 0 .5 2 .4 3.4 0 0 2.3-.9 5.7.2 0 0-.6-2 .1-3.5 0 0-.4-.9-2.1-1.1l-.7 2.9-.7-2.8c.1-.1-1.5-.6-2.7.9" fill="#ffc7ce"/><g fill="#e6b796"><path d="m48.6 15.6c-.3.3-.9.8-1.7-.1-.9-.9-.3-1.5.1-2 .2-.2.4-.4.4-.9 0-.4-.9-.8-.5-.5 0 0 .6.3-.2 1.4-.3.5-.7 1-.3 1.7.5.7 1.1 1.5 2.1.9.9-.7.6-1 .1-.5"/><path d="m32.9 21.2h-4.3l3.5 5.6z"/></g><path d="m35.9 22.1c-.5-.6-1.7-.3-1.7-.3l1.4-1.9c-1.1.8-2.9 1-2.9 1-1 2-.6 5.8-.6 5.8s-.8-3.9-3.5-5.8c0 0-1.4-.2-3.3.2l2.6 1.3-2 .8c0 0 1.3.2 2.9 1.1 0 0 1.6 6.4-.4 14.4l5.5.3c0 0 2.9-5.6-.2-15 1.1-1.2 2.2-1.9 2.2-1.9" fill="#ffc7ce"/><path d="m33.8 39.5c0 0 5.7-2.1 7.1-.9 0 0-.1.9-7.1.9" fill="#9450e0"/><path d="m32.1 27.2c0 0 1.3 4.7-.8 10.5 0 0 2.9-5.2.8-10.5" fill="#c28fef"/><path d="m28.6 7.9c-7.9 0-6.9-2-6.9 7.9 0 4.7 4.2 6.1 8.6 6 4.4-.1 6.9-1.1 6.9-5.8 0-7.8-2.1-8.1-8.6-8.1" fill="#ffe1bd"/><path d="m25 21.3c-.1.7-.1 2-3 1.6 0 0 .4-4.8-1.8-7.5-2.2-2.7-2.6-5.1-.9-7 0 0-2-4.4 7.1-5.6 4.6-.6 8.7 1.1 12.9-.8 0 0 3.8 7.5-3.4 8.4-7.2.9-7.2-1.6-11.4-1 0 0 .5 4.2 1.7 7.1 0 0 .2.8-.8 1.3 0 0-.9-3.9-2.3-4.8-1.4-.9-1.4 1.3-.7 2.5.7 1.2 1.2 1 1.2 1s1.7 2.5 1.4 4.8" fill="#594640"/><g fill="#664e27"><circle cx="27.9" cy="13.4" r="1.5"/><circle cx="35" cy="13.4" r="1.5"/><path d="m33.7 17.8c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fc.svg
new file mode 100644
index 0000000..289dcb6
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m21.5 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/><path d="m38.7 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/></g><path d="m41.9 48.2c-.5-2.5-4.3-4.2-6.7-9.1 0 0-4.1-1.2-10-1.2 0 0-2.6 1.3-1.2 7.3.9 3.6-1 9.7-3.8 14.2 0 0 4.2 1.6 8.6 0 0 0-1.3-3.1.9-9.1.7-1.9-1-3.9.7-8.1 0 0 .8 1.8 6.9 7.3 0 0-1.2 5.6.2 10 0 0 .9.4 4.2.4 3.1 0 4.6-.4 4.6-.4s-2.8-3-4.4-11.3" fill="#c28fef"/><path d="m29.1 38.8c-2.1-1-3.4-1.1-4.2-.8-.3.3-.9 1-1.2 2.3 1.8 1 4.6.8 4.6.8.8-1.5.8-2.3.8-2.3" fill="#9450e0"/><g fill="#c28fef"><path d="m32.9 21.5c0 0 7.2-2.2 10.3-8.1 0 0 .5 2.3 4.2 4.5 0 0-5.4 4.1-9.2 5.8 0 0-.2 7.4 2.7 14.9 0 0-.3.9-7.1.9 0 0 3.5-6.3-.9-18"/><path d="m27.9 21.9c0 0-3.4-2-5-.7-8.9 7-9.4 8.7-8.4 14.2 0 0 1.8-1.3 5 .2 0 0-1.4-5.5 5-8.4 0 0 .2 4.2-2.1 11.2 0 0 1.4 1.9 5.5 1.9 0 0 4.3-9.1 0-18.4"/></g><path d="m44.1 12.4c0 0 3.9 2.1 3.9 5.4h-2.2c0 0-.2-1.8-1.2-2.5-1-.7-.5-2.9-.5-2.9" fill="#9450e0"/><path d="m44.1 12.4c0 0-1.7 1.4-2.8 2.7 0 0 .2 1.2 1.1 2.2l2.5-1.3-1.9 2.3c0 0 .7 1.1 2.1 1.6 0 0 1.8-1 2.9-2.1 0 0-3.2-1.8-3.9-5.4" fill="#ffc7ce"/><path d="m48 12.6c0 0 1.9-1.6 1.4-2.1-.5-.5-.9-.6-1.4 0-.2.2-.6.6-1.3 1.3-.7-.6-1 0-1.2.2-.3.3-.6 1.6-.6 1.6.5 1.4 1.4 2.5 2.7 3.3 1-.6 2.4-1.6 2.4-2 0-1-2-2.3-2-2.3" fill="#fed0ac"/><path d="m45.5 13.2c0 0 .9-.2 1.3.2l-.2.1c0 0-.3-.2-1.1-.3" fill="#e0a372"/><path d="m14.4 36.5c0 0 1.6 1.1 5.7.2 0-.1-2.1-1.8-5.7-.2" fill="#9450e0"/><path d="m15.4 35.4c0 0-1.1 2.2.7 4.6.5.6 1.8 1.2 3.3.5 1.4-.6.2-1.1-.4-2.3.3-.4.7-.7.5-1.1-.3-.6-1.2-1-1.2-1s.6-.9-2.9-.7" fill="#fed0ac"/><path d="m19.6 37.2c0-.1-.1-.1-.1-.2.1.3-.3.8-.5.6-.4-.4-.9-.8-.9-.8.6.7 1 1.5 1 1.5.3-.4.7-.7.5-1.1" fill="#e0a372"/><path d="m14 33.1c0 0 .5 2 .4 3.4 0 0 2.3-.9 5.7.2 0 0-.6-2 .1-3.5 0 0-.4-.9-2.1-1.1l-.7 2.9-.7-2.8c.1-.1-1.5-.6-2.7.9" fill="#ffc7ce"/><g fill="#e0a372"><path d="m48.6 15.6c-.3.3-.9.8-1.7-.1-.9-.9-.3-1.5.1-2 .2-.2.4-.4.4-.9 0-.4-.9-.8-.5-.5 0 0 .6.3-.2 1.4-.3.5-.7 1-.3 1.7.5.7 1.1 1.5 2.1.9.9-.7.6-1 .1-.5"/><path d="m32.9 21.2h-4.3l3.5 5.6z"/></g><path d="m35.9 22.1c-.5-.6-1.7-.3-1.7-.3l1.4-1.9c-1.1.8-2.9 1-2.9 1-1 2-.6 5.8-.6 5.8s-.8-3.9-3.5-5.8c0 0-1.4-.2-3.3.2l2.6 1.3-2 .8c0 0 1.3.2 2.9 1.1 0 0 1.6 6.4-.4 14.4l5.5.3c0 0 2.9-5.6-.2-15 1.1-1.2 2.2-1.9 2.2-1.9" fill="#ffc7ce"/><path d="m33.8 39.5c0 0 5.7-2.1 7.1-.9 0 0-.1.9-7.1.9" fill="#9450e0"/><path d="m32.1 27.2c0 0 1.3 4.7-.8 10.5 0 0 2.9-5.2.8-10.5" fill="#c28fef"/><path d="m28.6 7.9c-7.9 0-6.9-2-6.9 7.9 0 4.7 4.2 6.1 8.6 6 4.4-.1 6.9-1.1 6.9-5.8 0-7.8-2.1-8.1-8.6-8.1" fill="#fed0ac"/><path d="m25 21.3c-.1.7-.1 2-3 1.6 0 0 .4-4.8-1.8-7.5-2.2-2.7-2.6-5.1-.9-7 0 0-2-4.4 7.1-5.6 4.6-.6 8.7 1.1 12.9-.8 0 0 3.8 7.5-3.4 8.4-7.2.9-7.2-1.6-11.4-1 0 0 .5 4.2 1.7 7.1 0 0 .2.8-.8 1.3 0 0-.9-3.9-2.3-4.8-1.4-.9-1.4 1.3-.7 2.5.7 1.2 1.2 1 1.2 1s1.7 2.5 1.4 4.8" fill="#dbb471"/><g fill="#664e27"><circle cx="27.9" cy="13.4" r="1.5"/><circle cx="35" cy="13.4" r="1.5"/><path d="m33.7 17.8c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fd.svg
new file mode 100644
index 0000000..0356c2a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m21.5 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/><path d="m38.7 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/></g><path d="m41.9 48.2c-.5-2.5-4.3-4.2-6.7-9.1 0 0-4.1-1.2-10-1.2 0 0-2.6 1.3-1.2 7.3.9 3.6-1 9.7-3.8 14.2 0 0 4.2 1.6 8.6 0 0 0-1.3-3.1.9-9.1.7-1.9-1-3.9.7-8.1 0 0 .8 1.8 6.9 7.3 0 0-1.2 5.6.2 10 0 0 .9.4 4.2.4 3.1 0 4.6-.4 4.6-.4s-2.8-3-4.4-11.3" fill="#c28fef"/><path d="m29.1 38.8c-2.1-1-3.4-1.1-4.2-.8-.3.3-.9 1-1.2 2.3 1.8 1 4.6.8 4.6.8.8-1.5.8-2.3.8-2.3" fill="#9450e0"/><g fill="#c28fef"><path d="m32.9 21.5c0 0 7.2-2.2 10.3-8.1 0 0 .5 2.3 4.2 4.5 0 0-5.4 4.1-9.2 5.8 0 0-.2 7.4 2.7 14.9 0 0-.3.9-7.1.9 0 0 3.5-6.3-.9-18"/><path d="m27.9 21.9c0 0-3.4-2-5-.7-8.9 7-9.4 8.7-8.4 14.2 0 0 1.8-1.3 5 .2 0 0-1.4-5.5 5-8.4 0 0 .2 4.2-2.1 11.2 0 0 1.4 1.9 5.5 1.9 0 0 4.3-9.1 0-18.4"/></g><path d="m44.1 12.4c0 0 3.9 2.1 3.9 5.4h-2.2c0 0-.2-1.8-1.2-2.5-1-.7-.5-2.9-.5-2.9" fill="#9450e0"/><path d="m44.1 12.4c0 0-1.7 1.4-2.8 2.7 0 0 .2 1.2 1.1 2.2l2.5-1.3-1.9 2.3c0 0 .7 1.1 2.1 1.6 0 0 1.8-1 2.9-2.1 0 0-3.2-1.8-3.9-5.4" fill="#ffc7ce"/><path d="m48 12.6c0 0 1.9-1.6 1.4-2.1-.5-.5-.9-.6-1.4 0-.2.2-.6.6-1.3 1.3-.7-.6-1 0-1.2.2-.3.3-.6 1.6-.6 1.6.5 1.4 1.4 2.5 2.7 3.3 1-.6 2.4-1.6 2.4-2 0-1-2-2.3-2-2.3" fill="#d6a57c"/><path d="m45.5 13.2c0 0 .9-.2 1.3.2l-.2.1c0 0-.3-.2-1.1-.3" fill="#b58360"/><path d="m14.4 36.5c0 0 1.6 1.1 5.7.2 0-.1-2.1-1.8-5.7-.2" fill="#9450e0"/><path d="m15.4 35.4c0 0-1.1 2.2.7 4.6.5.6 1.8 1.2 3.3.5 1.4-.6.2-1.1-.4-2.3.3-.4.7-.7.5-1.1-.3-.6-1.2-1-1.2-1s.5-.9-2.9-.7" fill="#d6a57c"/><path d="m19.6 37.2c0-.1-.1-.1-.1-.2.1.3-.3.8-.5.6-.4-.4-.9-.8-.9-.8.6.7 1 1.5 1 1.5.3-.4.7-.7.5-1.1" fill="#b58360"/><path d="m14 33.1c0 0 .5 2 .4 3.4 0 0 2.3-.9 5.7.2 0 0-.6-2 .1-3.5 0 0-.4-.9-2.1-1.1l-.7 2.9-.7-2.8c.1-.1-1.5-.6-2.7.9" fill="#ffc7ce"/><g fill="#b58360"><path d="m48.6 15.6c-.3.3-.9.8-1.7-.1-.9-.9-.3-1.5.1-2 .2-.2.4-.4.4-.9 0-.4-.9-.8-.5-.5 0 0 .6.3-.2 1.4-.3.5-.7 1-.3 1.7.5.7 1.1 1.5 2.1.9.9-.7.6-1 .1-.5"/><path d="m32.9 21.2h-4.3l3.5 5.6z"/></g><path d="m35.9 22.1c-.5-.6-1.7-.3-1.7-.3l1.4-1.9c-1.1.8-2.9 1-2.9 1-1 2-.6 5.8-.6 5.8s-.8-3.9-3.5-5.8c0 0-1.4-.2-3.3.2l2.6 1.3-2 .8c0 0 1.3.2 2.9 1.1 0 0 1.6 6.4-.4 14.4l5.5.3c0 0 2.9-5.6-.2-15 1.1-1.2 2.2-1.9 2.2-1.9" fill="#ffc7ce"/><path d="m33.8 39.5c0 0 5.7-2.1 7.1-.9 0 0-.1.9-7.1.9" fill="#9450e0"/><path d="m32.1 27.2c0 0 1.3 4.7-.8 10.5 0 0 2.9-5.2.8-10.5" fill="#c28fef"/><path d="m28.6 7.9c-7.9 0-6.9-2-6.9 7.9 0 4.7 4.2 6.1 8.6 6 4.4-.1 6.9-1.1 6.9-5.8 0-7.8-2.1-8.1-8.6-8.1" fill="#d6a57c"/><path d="m25 21.3c-.1.7-.1 2-3 1.6 0 0 .4-4.8-1.8-7.5-2.2-2.7-2.6-5.1-.9-7 0 0-2-4.4 7.1-5.6 4.6-.6 8.7 1.1 12.9-.8 0 0 3.8 7.5-3.4 8.4-7.2.9-7.2-1.6-11.4-1 0 0 .5 4.2 1.7 7.1 0 0 .2.8-.8 1.3 0 0-.9-3.9-2.3-4.8-1.4-.9-1.4 1.3-.7 2.5.7 1.2 1.2 1 1.2 1s1.7 2.5 1.4 4.8" fill="#594640"/><g fill="#664e27"><circle cx="27.9" cy="13.4" r="1.5"/><circle cx="35" cy="13.4" r="1.5"/><path d="m33.7 17.8c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fe.svg
new file mode 100644
index 0000000..70bb51f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m21.5 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/><path d="m38.7 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/></g><path d="m41.9 48.2c-.5-2.5-4.3-4.2-6.7-9.1 0 0-4.1-1.2-10-1.2 0 0-2.6 1.3-1.2 7.3.9 3.6-1 9.7-3.8 14.2 0 0 4.2 1.6 8.6 0 0 0-1.3-3.1.9-9.1.7-1.9-1-3.9.7-8.1 0 0 .8 1.8 6.9 7.3 0 0-1.2 5.6.2 10 0 0 .9.4 4.2.4 3.1 0 4.6-.4 4.6-.4s-2.8-3-4.4-11.3" fill="#c28fef"/><path d="m29.1 38.8c-2.1-1-3.4-1.1-4.2-.8-.3.3-.9 1-1.2 2.3 1.8 1 4.6.8 4.6.8.8-1.5.8-2.3.8-2.3" fill="#9450e0"/><g fill="#c28fef"><path d="m32.9 21.5c0 0 7.2-2.2 10.3-8.1 0 0 .5 2.3 4.2 4.5 0 0-5.4 4.1-9.2 5.8 0 0-.2 7.4 2.7 14.9 0 0-.3.9-7.1.9 0 0 3.5-6.3-.9-18"/><path d="m27.9 21.9c0 0-3.4-2-5-.7-8.9 7-9.4 8.7-8.4 14.2 0 0 1.8-1.3 5 .2 0 0-1.4-5.5 5-8.4 0 0 .2 4.2-2.1 11.2 0 0 1.4 1.9 5.5 1.9 0 0 4.3-9.1 0-18.4"/></g><path d="m44.1 12.4c0 0 3.9 2.1 3.9 5.4h-2.2c0 0-.2-1.8-1.2-2.5-1-.7-.5-2.9-.5-2.9" fill="#9450e0"/><path d="m44.1 12.4c0 0-1.7 1.4-2.8 2.7 0 0 .2 1.2 1.1 2.2l2.5-1.3-1.9 2.3c0 0 .7 1.1 2.1 1.6 0 0 1.8-1 2.9-2.1 0 0-3.2-1.8-3.9-5.4" fill="#ffc7ce"/><path d="m48 12.6c0 0 1.9-1.6 1.4-2.1-.5-.5-.9-.6-1.4 0-.2.2-.6.6-1.3 1.3-.7-.6-1 0-1.2.2-.3.3-.6 1.6-.6 1.6.5 1.4 1.4 2.5 2.7 3.3 1-.6 2.4-1.6 2.4-2 0-1-2-2.3-2-2.3" fill="#b47d56"/><path d="m45.5 13.2c0 0 .9-.2 1.3.2l-.2.1c0 0-.3-.2-1.1-.3" fill="#935e3e"/><path d="m14.4 36.5c0 0 1.6 1.1 5.7.2 0-.1-2.1-1.8-5.7-.2" fill="#9450e0"/><path d="m15.4 35.4c0 0-1.1 2.2.7 4.6.5.6 1.8 1.2 3.3.5 1.4-.6.2-1.1-.4-2.3.3-.4.7-.7.5-1.1-.3-.6-1.2-1-1.2-1s.6-.9-2.9-.7" fill="#b47d56"/><path d="m19.6 37.2c0-.1-.1-.1-.1-.2.1.3-.3.8-.5.6-.4-.4-.9-.8-.9-.8.6.7 1 1.5 1 1.5.3-.4.7-.7.5-1.1" fill="#935e3e"/><path d="m14 33.1c0 0 .5 2 .4 3.4 0 0 2.3-.9 5.7.2 0 0-.6-2 .1-3.5 0 0-.4-.9-2.1-1.1l-.7 2.9-.7-2.8c.1-.1-1.5-.6-2.7.9" fill="#ffc7ce"/><g fill="#935e3e"><path d="m48.6 15.6c-.3.3-.9.8-1.7-.1-.9-.9-.3-1.5.1-2 .2-.2.4-.4.4-.9 0-.4-.9-.8-.5-.5 0 0 .6.3-.2 1.4-.3.5-.7 1-.3 1.7.5.7 1.1 1.5 2.1.9.9-.7.6-1 .1-.5"/><path d="m32.9 21.2h-4.3l3.5 5.6z"/></g><path d="m35.9 22.1c-.5-.6-1.7-.3-1.7-.3l1.4-1.9c-1.1.8-2.9 1-2.9 1-1 2-.6 5.8-.6 5.8s-.8-3.9-3.5-5.8c0 0-1.4-.2-3.3.2l2.6 1.3-2 .8c0 0 1.3.2 2.9 1.1 0 0 1.6 6.4-.4 14.4l5.5.3c0 0 2.9-5.6-.2-15 1.1-1.2 2.2-1.9 2.2-1.9" fill="#ffc7ce"/><path d="m33.8 39.5c0 0 5.7-2.1 7.1-.9 0 0-.1.9-7.1.9" fill="#9450e0"/><path d="m32.1 27.2c0 0 1.3 4.7-.8 10.5 0 0 2.9-5.2.8-10.5" fill="#c28fef"/><path d="m28.6 7.9c-7.9 0-6.9-2-6.9 7.9 0 4.7 4.2 6.1 8.6 6 4.4-.1 6.9-1.1 6.9-5.8 0-7.8-2.1-8.1-8.6-8.1" fill="#b47d56"/><path d="m25 21.3c-.1.7-.1 2-3 1.6 0 0 .4-4.8-1.8-7.5-2.2-2.7-2.6-5.1-.9-7 0 0-2-4.4 7.1-5.6 4.6-.6 8.7 1.1 12.9-.8 0 0 3.8 7.5-3.4 8.4-7.2.9-7.2-1.6-11.4-1 0 0 .5 4.2 1.7 7.1 0 0 .2.8-.8 1.3 0 0-.9-3.9-2.3-4.8-1.4-.9-1.4 1.3-.7 2.5.7 1.2 1.2 1 1.2 1s1.7 2.5 1.4 4.8" fill="#231f20"/><g fill="#664e27"><circle cx="27.9" cy="13.4" r="1.5"/><circle cx="35" cy="13.4" r="1.5"/><path d="m33.7 17.8c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3ff.svg
new file mode 100644
index 0000000..61633d2
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f57a-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m21.5 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/><path d="m38.7 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/></g><path d="m41.9 48.2c-.5-2.5-4.3-4.2-6.7-9.1 0 0-4.1-1.2-10-1.2 0 0-2.6 1.3-1.2 7.3.9 3.6-1 9.7-3.8 14.2 0 0 4.2 1.6 8.6 0 0 0-1.3-3.1.9-9.1.7-1.9-1-3.9.7-8.1 0 0 .8 1.8 6.9 7.3 0 0-1.2 5.6.2 10 0 0 .9.4 4.2.4 3.1 0 4.6-.4 4.6-.4s-2.8-3-4.4-11.3" fill="#c28fef"/><path d="m29.1 38.8c-2.1-1-3.4-1.1-4.2-.8-.3.3-.9 1-1.2 2.3 1.8 1 4.6.8 4.6.8.8-1.5.8-2.3.8-2.3" fill="#9450e0"/><g fill="#c28fef"><path d="m32.9 21.5c0 0 7.2-2.2 10.3-8.1 0 0 .5 2.3 4.2 4.5 0 0-5.4 4.1-9.2 5.8 0 0-.2 7.4 2.7 14.9 0 0-.3.9-7.1.9 0 0 3.5-6.3-.9-18"/><path d="m27.9 21.9c0 0-3.4-2-5-.7-8.9 7-9.4 8.7-8.4 14.2 0 0 1.8-1.3 5 .2 0 0-1.4-5.5 5-8.4 0 0 .2 4.2-2.1 11.2 0 0 1.4 1.9 5.5 1.9 0 0 4.3-9.1 0-18.4"/></g><path d="m44.1 12.4c0 0 3.9 2.1 3.9 5.4h-2.2c0 0-.2-1.8-1.2-2.5-1-.7-.5-2.9-.5-2.9" fill="#9450e0"/><path d="m44.1 12.4c0 0-1.7 1.4-2.8 2.7 0 0 .2 1.2 1.1 2.2l2.5-1.3-1.9 2.3c0 0 .7 1.1 2.1 1.6 0 0 1.8-1 2.9-2.1 0 0-3.2-1.8-3.9-5.4" fill="#ffc7ce"/><path d="m48 12.6c0 0 1.9-1.6 1.4-2.1-.5-.5-.9-.6-1.4 0-.2.2-.6.6-1.3 1.3-.7-.6-1 0-1.2.2-.3.3-.6 1.6-.6 1.6.5 1.4 1.4 2.5 2.7 3.3 1-.6 2.4-1.6 2.4-2 0-1-2-2.3-2-2.3" fill="#8a6859"/><path d="m45.5 13.2c0 0 .9-.2 1.3.2l-.2.1c0 0-.3-.2-1.1-.3" fill="#705041"/><path d="m14.4 36.5c0 0 1.6 1.1 5.7.2 0-.1-2.1-1.8-5.7-.2" fill="#9450e0"/><path d="m15.4 35.4c0 0-1.1 2.2.7 4.6.5.6 1.8 1.2 3.3.5 1.4-.6.2-1.1-.4-2.3.3-.4.7-.7.5-1.1-.3-.6-1.2-1-1.2-1s.6-.9-2.9-.7" fill="#8a6859"/><path d="m19.6 37.2c0-.1-.1-.1-.1-.2.1.3-.3.8-.5.6-.4-.4-.9-.8-.9-.8.6.7 1 1.5 1 1.5.3-.4.7-.7.5-1.1" fill="#705041"/><path d="m14 33.1c0 0 .5 2 .4 3.4 0 0 2.3-.9 5.7.2 0 0-.6-2 .1-3.5 0 0-.4-.9-2.1-1.1l-.7 2.9-.7-2.8c.1-.1-1.5-.6-2.7.9" fill="#ffc7ce"/><g fill="#705041"><path d="m48.6 15.6c-.3.3-.9.8-1.7-.1-.9-.9-.3-1.5.1-2 .2-.2.4-.4.4-.9 0-.4-.9-.8-.5-.5 0 0 .6.3-.2 1.4-.3.5-.7 1-.3 1.7.5.7 1.1 1.5 2.1.9.9-.7.6-1 .1-.5"/><path d="m32.9 21.2h-4.3l3.5 5.6z"/></g><path d="m35.9 22.1c-.5-.6-1.7-.3-1.7-.3l1.4-1.9c-1.1.8-2.9 1-2.9 1-1 2-.6 5.8-.6 5.8s-.8-3.9-3.5-5.8c0 0-1.4-.2-3.3.2l2.6 1.3-2 .8c0 0 1.3.2 2.9 1.1 0 0 1.6 6.4-.4 14.4l5.5.3c0 0 2.9-5.6-.2-15 1.1-1.2 2.2-1.9 2.2-1.9" fill="#ffc7ce"/><path d="m33.8 39.5c0 0 5.7-2.1 7.1-.9 0 0-.1.9-7.1.9" fill="#9450e0"/><path d="m32.1 27.2c0 0 1.3 4.7-.8 10.5 0 0 2.9-5.2.8-10.5" fill="#c28fef"/><path d="m28.6 7.9c-7.9 0-6.9-2-6.9 7.9 0 4.7 4.2 6.1 8.6 6 4.4-.1 6.9-1.1 6.9-5.8 0-7.8-2.1-8.1-8.6-8.1" fill="#8a6859"/><path d="m25 21.3c-.1.7-.1 2-3 1.6 0 0 .4-4.8-1.8-7.5-2.2-2.7-2.6-5.1-.9-7 0 0-2-4.4 7.1-5.6 4.6-.6 8.7 1.1 12.9-.8 0 0 3.8 7.5-3.4 8.4-7.2.9-7.2-1.6-11.4-1 0 0 .5 4.2 1.7 7.1 0 0 .2.8-.8 1.3 0 0-.9-3.9-2.3-4.8-1.4-.9-1.4 1.3-.7 2.5.7 1.2 1.2 1 1.2 1s1.7 2.5 1.4 4.8" fill="#231f20"/><g fill="#574137"><circle cx="27.9" cy="13.4" r="1.5"/><circle cx="35" cy="13.4" r="1.5"/><path d="m33.7 17.8c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f57a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f57a.svg
new file mode 100644
index 0000000..11d2247
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f57a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m21.5 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/><path d="m38.7 58.9c0 0-1 1.5 0 3.1h2.9v-1.1c0 0 .5 1.1 4.9 1.1 1.5 0 1.7-1.5.1-1.6-1.6-.1-1.4-1.2-2.9-3.1l-5 1.6"/></g><path d="m41.9 48.2c-.5-2.5-4.3-4.2-6.7-9.1 0 0-4.1-1.2-10-1.2 0 0-2.6 1.3-1.2 7.3.9 3.6-1 9.7-3.8 14.2 0 0 4.2 1.6 8.6 0 0 0-1.3-3.1.9-9.1.7-1.9-1-3.9.7-8.1 0 0 .8 1.8 6.9 7.3 0 0-1.2 5.6.2 10 0 0 .9.4 4.2.4 3.1 0 4.6-.4 4.6-.4s-2.8-3-4.4-11.3" fill="#c28fef"/><path d="m29.1 38.8c-2.1-1-3.4-1.1-4.2-.8-.3.3-.9 1-1.2 2.3 1.8 1 4.6.8 4.6.8.8-1.5.8-2.3.8-2.3" fill="#9450e0"/><g fill="#c28fef"><path d="m32.9 21.5c0 0 7.2-2.2 10.3-8.1 0 0 .5 2.3 4.2 4.5 0 0-5.4 4.1-9.2 5.8 0 0-.2 7.4 2.7 14.9 0 0-.3.9-7.1.9 0 0 3.5-6.3-.9-18"/><path d="m27.9 21.9c0 0-3.4-2-5-.7-8.9 7-9.4 8.7-8.4 14.2 0 0 1.8-1.3 5 .2 0 0-1.4-5.5 5-8.4 0 0 .2 4.2-2.1 11.2 0 0 1.4 1.9 5.5 1.9 0 0 4.3-9.1 0-18.4"/></g><path d="m44.1 12.4c0 0 3.9 2.1 3.9 5.4h-2.2c0 0-.2-1.8-1.2-2.5-1-.7-.5-2.9-.5-2.9" fill="#9450e0"/><path d="m44.1 12.4c0 0-1.7 1.4-2.8 2.7 0 0 .2 1.2 1.1 2.2l2.5-1.3-1.9 2.3c0 0 .7 1.1 2.1 1.6 0 0 1.8-1 2.9-2.1 0 0-3.2-1.8-3.9-5.4" fill="#ffc7ce"/><path d="m48 12.6c0 0 1.9-1.6 1.4-2.1-.5-.5-.9-.6-1.4 0-.2.2-.6.6-1.3 1.3-.7-.6-1 0-1.2.2-.3.3-.6 1.6-.6 1.6.5 1.3 1.4 2.5 2.7 3.3 1-.6 2.4-1.6 2.4-2 0-1-2-2.3-2-2.3" fill="#ffdd67"/><path d="m45.5 13.2c0 0 .9-.2 1.3.2l-.2.1c0 0-.3-.2-1.1-.3" fill="#eba352"/><path d="m14.4 36.5c0 0 1.6 1.1 5.7.2 0-.1-2.1-1.8-5.7-.2" fill="#9450e0"/><path d="m15.4 35.4c0 0-1.1 2.2.7 4.6.5.6 1.8 1.2 3.3.5 1.4-.6.2-1.1-.4-2.3.3-.4.7-.7.5-1.1-.3-.6-1.2-1-1.2-1s.6-.9-2.9-.7" fill="#ffdd67"/><path d="m19.6 37.2c0-.1-.1-.1-.1-.2.1.3-.3.8-.5.6-.4-.4-.9-.8-.9-.8.6.7 1 1.5 1 1.5.3-.4.7-.7.5-1.1" fill="#eba352"/><path d="m14 33.1c0 0 .5 2 .4 3.4 0 0 2.3-.9 5.7.2 0 0-.6-2 .1-3.5 0 0-.4-.9-2.1-1.1l-.7 2.8-.7-2.8c.1 0-1.5-.5-2.7 1" fill="#ffc7ce"/><g fill="#eba352"><path d="m48.6 15.6c-.3.3-.9.8-1.7-.1-.9-.9-.3-1.5.1-2 .2-.2.4-.4.4-.9 0-.4-.9-.8-.5-.5 0 0 .6.3-.2 1.4-.3.5-.7 1-.3 1.7.5.7 1.1 1.5 2.1.9.9-.7.6-1 .1-.5"/><path d="m32.9 21.2h-4.3l3.5 5.6z"/></g><path d="m35.9 22.1c-.5-.6-1.7-.3-1.7-.3l1.4-1.9c-1.1.8-2.9 1-2.9 1-1 2-.6 5.8-.6 5.8s-.8-3.9-3.5-5.8c0 0-1.4-.2-3.3.2l2.6 1.3-2 .8c0 0 1.3.2 2.9 1.1 0 0 1.6 6.4-.4 14.4l5.5.3c0 0 2.9-5.6-.2-15 1.1-1.2 2.2-1.9 2.2-1.9" fill="#ffc7ce"/><path d="m33.8 39.5c0 0 5.7-2.1 7.1-.9 0 0-.1.9-7.1.9" fill="#9450e0"/><path d="m32.1 27.2c0 0 1.3 4.7-.8 10.5 0 0 2.9-5.2.8-10.5" fill="#c28fef"/><path d="m28.6 7.9c-7.9 0-6.9-2-6.9 7.9 0 4.7 4.2 6.1 8.6 6 4.4-.1 6.9-1.1 6.9-5.8 0-7.8-2.1-8.1-8.6-8.1" fill="#ffdd67"/><path d="m25 21.3c-.1.7-.1 2-3 1.6 0 0 .4-4.8-1.8-7.5-2.2-2.7-2.6-5.1-.9-7 0 0-2-4.4 7.1-5.6 4.6-.6 8.7 1.1 12.9-.8 0 0 3.8 7.5-3.4 8.4-7.2.9-7.2-1.6-11.4-1 0 0 .5 4.2 1.7 7.1 0 0 .2.8-.8 1.3 0 0-.9-3.9-2.3-4.8-1.4-.9-1.4 1.3-.7 2.5.7 1.2 1.2 1 1.2 1s1.7 2.5 1.4 4.8" fill="#ffb300"/><g fill="#937237"><circle cx="27.9" cy="13.4" r="1.5"/><circle cx="35" cy="13.4" r="1.5"/><path d="m33.7 17.8c-1.5 1.2-3.2 1.2-4.6 0-.2-.1-.3.1-.2.3.5.8 1.4 1.6 2.5 1.6 1.2 0 2.1-.7 2.5-1.6.2-.2 0-.4-.2-.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f587.svg b/build/js/jsxc/lib/emojione/assets/svg/1f587.svg
index 96007fe..b2dafc1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f587.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f587.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m51.799 51.802c-2-.708-3.588-2.295-4.295-4.295-.258-.733-.402-1.52-.4-2.34v-.695l.002-37.4c-.002-2.338 1.902-4.242 4.238-4.24 2.271-.002 4.129 1.79 4.238 4.03h-.027l.008 33.31c0 .788-.639 1.426-1.426 1.424-.768.002-1.391-.604-1.424-1.363 0 0-.039-28.395-.041-28.858 0-.771-.641-1.411-1.412-1.413-.77 0-1.359.645-1.357 1.413.002.642-.016 28.401-.016 28.736 0 .735.17 1.413.5 2.069.373.747 1.061 1.414 1.813 1.775.93.447 1.924.562 2.934.338 1.875-.423 3.242-2.202 3.256-4.1l-.01-33.12.033-.001c0-3.896-3.17-7.07-7.07-7.07s-7.07 3.172-7.07 7.07v37.21.888c.002.662.068 1.311.191 1.938.777 3.875 3.83 6.935 7.697 7.725.023-.228.035-.457.037-.69-.005-.82-.145-1.608-.405-2.339"/><path d="m61.17 11.369c0 .546 0 32.33-.002 33.36.002.146.002.292.002.438 0 3.646-2.789 6.652-6.346 7 .131.638.197 1.298.197 1.974.002.286-.014.57-.037.851 5.04-.434 9.01-4.675 9.01-9.824 0-.547-.002-33.651 0-33.799 0-.769-.645-1.412-1.414-1.413-.77.002-1.412.645-1.412 1.414"/></g><g fill="#ed4c5c"><path d="m44.28 44.28c-5.338-.001-32.775 0-32.91 0-.77 0-1.412.642-1.412 1.412 0 .771.643 1.414 1.414 1.412.525.001 29.895 0 33.1.001-.123-.627-.189-1.275-.191-1.938v-.887z"/><path d="m54.828 52.17c-.789-3.868-3.852-6.921-7.725-7.695v.695c-.002.82.143 1.606.4 2.34 2 .707 3.588 2.294 4.295 4.295.26.731.4 1.52.404 2.338-.002.233-.014.463-.037.69-.346 3.556-3.354 6.345-7 6.346l-38.1-.002c-2.34.001-4.242-1.902-4.24-4.241-.002-2.267 1.791-4.126 4.03-4.236l-.002.029 33.31-.01h-.002c.787 0 1.424.639 1.424 1.425.002.768-.604 1.392-1.361 1.423 0 0-28.396.042-28.859.043-.771 0-1.414.64-1.412 1.411-.002.77.641 1.359 1.412 1.356.641 0 28.398.016 28.734.016.734 0 1.412-.17 2.07-.497.746-.374 1.414-1.063 1.777-1.814.445-.928.561-1.924.336-2.934-.422-1.873-2.199-3.24-4.1-3.256l-33.12.01.002-.033c-3.895-.002-7.07 3.17-7.07 7.07s3.172 7.07 7.07 7.07h38.1c5.15.001 9.391-3.97 9.822-9.01.023-.28.039-.564.037-.851 0-.675-.066-1.335-.197-1.973"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m51.8 51.8c-2-.7-3.6-2.3-4.3-4.3-.3-.7-.4-1.5-.4-2.3v-.7-37.4c0-2.3 1.9-4.2 4.2-4.2 2.3 0 4.1 1.8 4.2 4v33.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0 0 0-28.4 0-28.9 0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4 0 .6 0 28.4 0 28.7 0 .7.2 1.4.5 2.1.4.7 1.1 1.4 1.8 1.8.9.4 1.9.6 2.9.3 1.9-.4 3.2-2.2 3.3-4.1v-33.1c0-3.9-3.2-7.1-7.1-7.1s-7.1 3.2-7.1 7.1v37.2.9c0 .7.1 1.3.2 1.9.8 3.9 3.8 6.9 7.7 7.7 0-.2 0-.5 0-.7.1-.7 0-1.5-.3-2.2"/><path d="m61.2 11.4c0 .5 0 32.3 0 33.4 0 .1 0 .3 0 .4 0 3.6-2.8 6.7-6.3 7 .1.6.2 1.3.2 2 0 .3 0 .6 0 .9 5-.4 9-4.7 9-9.8 0-.5 0-33.7 0-33.8 0-.8-.6-1.4-1.4-1.4-.9-.1-1.5.5-1.5 1.3"/></g><g fill="#ed4c5c"><path d="m44.3 44.3c-5.3 0-32.8 0-32.9 0-.8 0-1.4.6-1.4 1.4 0 .8.6 1.4 1.4 1.4.5 0 29.9 0 33.1 0-.1-.6-.2-1.3-.2-1.9v-.9"/><path d="m54.8 52.2c-.8-3.9-3.9-6.9-7.7-7.7v.7c0 .8.1 1.6.4 2.3 2 .7 3.6 2.3 4.3 4.3.3.7.4 1.5.4 2.3 0 .2 0 .5 0 .7-.3 3.6-3.4 6.3-7 6.3h-38.1c-2.3 0-4.2-1.9-4.2-4.2 0-2.3 1.8-4.1 4-4.2h33.3c.8 0 1.4.6 1.4 1.4 0 .8-.6 1.4-1.4 1.4 0 0-28.4 0-28.9 0-.8 0-1.4.6-1.4 1.4 0 .8.6 1.4 1.4 1.4.6 0 28.4 0 28.7 0 .7 0 1.4-.2 2.1-.5.7-.4 1.4-1.1 1.8-1.8.4-.9.6-1.9.3-2.9-.4-1.9-2.2-3.2-4.1-3.3h-33.1c-3.8.1-7 3.2-7 7.1s3.2 7.1 7.1 7.1h38.1c5.2 0 9.4-4 9.8-9 0-.3 0-.6 0-.9 0-.6 0-1.3-.2-1.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f58a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f58a.svg
index 707849c..1b61284 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f58a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f58a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#93a2aa"><path d="m36.595 15.1c-1.741 2.571-6.112 5.292-10.02 7.343.194.193.58.772.835.835 1.086-.478 2.191-.907 3.267-1.407 2.244-1.042 4.428-2.257 6.356-3.817 3.95-3.197 5.541-12.781 8.36-12.969 1.755-.127 3.453 2.362 4.59 3.501.579-.581 1.161-1.162 1.742-1.743.09-.088-1.287-1.371-1.432-1.515-1.729-1.73-3.722-3.524-6.373-2.453-3.61 1.463-5.331 9.272-7.328 12.225m9.333-10c.018.003.023.003 0 0m-1.359.207c-.028.012-.022.009 0 0"/><path d="m2.278 60.854c-.297.352-.369.813-.156 1.027.21.207.672.137 1.021-.163l2.335-1.752-1.443-1.445-1.757 2.333"/></g><g fill="#42ade2"><path d="m28.29 26.26l9.453 9.454 23.367-25.03-7.81-7.814z"/><path transform="matrix(-.7071-.7071.7071-.7071 10.664 86.09)" d="m17.64 26.904h11.05v27.868h-11.05z"/></g><g fill="#c7d3d8"><path d="m3.219 57.703l3.077 3.078 10.919-6.184-7.81-7.811z"/><path d="m31.21 23.37l9.436 9.438-2.903 2.906-9.453-9.454z"/></g><path fill="#42ade2" d="m53.831 3.401l6.767 6.767c1.869-1.868 1.869-4.898 0-6.767s-4.898-1.867-6.767 0"/><path transform="matrix(-.7071-.7071.7071-.7071 91.95 52.42)" fill="#c7d3d8" d="m50.925 6.168h11.818v1.994h-11.818z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#93a2aa"><path d="m36.6 15.1c-1.7 2.6-6.1 5.3-10 7.3.2.2.6.8.8.8 1.1-.5 2.2-.9 3.3-1.4 2.2-1 4.4-2.3 6.4-3.8 4-3.2 5.5-12.8 8.4-13 1.7 0 3.3 2.5 4.5 3.6.6-.6 1.2-1.2 1.7-1.7.1-.1-1.3-1.4-1.4-1.5-1.7-1.7-3.7-3.5-6.4-2.5-3.6 1.4-5.3 9.3-7.3 12.2m9.3-10c0 0 .1 0 0 0m-1.3.2c-.1 0-.1 0 0 0"/><path d="m2.3 60.9c-.3.4-.4.8-.2 1 .2.2.7.1 1-.2l2.4-1.7-1.5-1.5-1.7 2.4"/></g><g fill="#42ade2"><path d="m28.3 26.3l9.4 9.4 23.4-25-7.8-7.8z"/><path transform="matrix(.7071-.7071.7071.7071-22.0935 28.3397)" d="m9.2 35.3h27.9v11h-27.9z"/></g><g fill="#c7d3d8"><path d="m3.2 57.7l3.1 3.1 10.9-6.2-7.8-7.8z"/><path d="m31.2 23.4l9.4 9.4-2.9 2.9-9.4-9.4z"/></g><path d="m53.8 3.4l6.8 6.8c1.9-1.9 1.9-4.9 0-6.8s-4.9-1.9-6.8 0" fill="#42ade2"/><path transform="matrix(.7071-.7071.7071.7071 11.5774 42.2854)" fill="#c7d3d8" d="m55.8 1.3h2v11.8h-2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f58b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f58b.svg
index 1ee9adf..a15d1aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f58b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f58b.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m12.299 43.786l7.912 7.912-6.1 10.06c0 0-6.359-.695-12.531 2.244l9.977-9.976c.461.022.93-.139 1.28-.486.655-.658.655-1.719 0-2.377-.655-.653-1.718-.653-2.375.002-.351.351-.511.819-.485 1.28l-9.977 9.978c2.939-6.174 2.245-12.532 2.245-12.532l10.05-6.102"/><path fill="#3e4347" d="m61.54 2.458c3.276 3.278 3.275 8.592 0 11.867l-4.675 4.675c0 0-1.827 4.996-10.926 14.09-9.101 9.101-14.09 10.927-14.09 10.927l-9.659 9.663-11.87-11.871 9.661-9.659c0 0 1.828-4.992 10.928-14.09 9.1-9.1 14.09-10.93 14.09-10.93l4.672-4.672c3.279-3.275 8.592-3.275 11.87.001"/><g fill="#94989b"><path transform="matrix(-.7071.7071-.7071-.7071 96.98-15.621)" d="m50.607 3.884h2.237v16.783h-2.237z"/><path transform="matrix(-.7065.7078-.7078-.7065 70.39 48.56)" d="m24 30.485h2.239v16.783h-2.239z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m12.3 43.8l7.9 7.9-6.1 10.1c0 0-6.4-.7-12.5 2.2l10-10c.5 0 .9-.1 1.3-.5.7-.7.7-1.7 0-2.4-.7-.7-1.7-.7-2.4 0-.4.4-.5.9-.5 1.3l-10 10c2.9-6.2 2.2-12.5 2.2-12.5l10.1-6.1" fill="#94989b"/><path d="M61.5,2.5c3.3,3.3,3.3,8.6,0,11.9L56.9,19c0,0-1.8,5-10.9,14.1C36.8,42.2,31.8,44,31.8,44l-9.7,9.7L10.3,41.8
+ l9.7-9.7c0,0,1.8-5,10.9-14.1S45,7.1,45,7.1l4.7-4.7C53-0.8,58.3-0.8,61.5,2.5z" fill="#3e4347"/><g fill="#94989b"><path transform="matrix(.7071-.7071.7071.7071 6.4709 40.1706)" d="m50.6 3.9h2.2v16.8h-2.2z"/><path transform="matrix(.7065-.7078.7078.7065-20.1404 29.1912)" d="m24 30.5h2.2v16.8h-2.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f58c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f58c.svg
index ecaa53d..25a6916 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f58c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f58c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m20.542 54.614c.885-9.919 5.367-9.703 3.03-12.04-2.338-2.336.295-.322-12.322 3.262-4.473 1.27-6.41 5.271-6.725 8.814-.109.994-.821 5.622-4.525 6.954 0 0 7.809.848 11.698.01 3.969-.247 8.423-2.227 8.844-6.999"/><path fill="#94989b" d="m11.569 45.741c0 0 2.784.314 2.413 2.411-.371 2.102 2.205.054 2.269 1.724.06 1.666 2.887.568 2.794 2.246-.081 1.684 1.806.953 1.502 2.493-.302 1.546-.733 3.208-1.871 4.173-1.14.961.356-4.786-.931-3.629-1.289 1.156-.967-2.89-2.846-2.072-1.882.816-.32-3.272-2.394-2.395-2.076.883-1.424-2.961-2.659-2.656-1.235.307-1.076-1.078-1.076-1.078s1.158-.713 2.799-1.217"/><path fill="#ed4c5c" d="m4.641 53.761c0 0-.652 6.35-4.642 7.842 0 0 8.365 1.125 12.433-.053 0 0 2-.694-.203-1.808-2.209-1.115-.354-1.97-1.565-1.827-1.211.146 1.205-1.748-.713-1.547-1.922.201-.402-2.521-1.663-1.854-1.265.663-.948-1.979-1.586-1.138-.642.84-.359-.934-.969-.708s-.98.198-1.092 1.093"/><path fill="#ffc7ce" d="m10.795 59.89c0 0-.381.33-1.06.58-.337.109-.729.296-1.17.379-.439.085-.914.126-1.388.167-.476.015-.95.046-1.402-.056-.448-.064-.862-.205-1.215-.285-.705-.203-1.147-.447-1.147-.447s.486-.191 1.176-.32c.692-.148 1.583-.168 2.481-.26.9-.047 1.812.03 2.508.066.706.08 1.217.176 1.217.176"/><path fill="#89664c" d="m21.22 51.06l-6.373-6.373c0 0 27.834-30.758 37.4-40.741 2.625-2.739 7.03-2.683 9.715 0 2.684 2.682 2.739 7.09 0 9.715-9.983 9.565-40.742 37.4-40.742 37.4"/><path fill="#d3976e" d="m20.18 50.03l-4.294-4.295c0 0 27.462-29.434 36.813-39.07 2.564-2.643 6.182-3.252 7.989-1.444 1.81 1.808 1.199 5.425-1.443 7.99-9.632 9.351-39.06 36.815-39.06 36.815"/><path transform="matrix(.7071.7071-.7071.7071 38.681.17)" fill="#c7d3d8" d="m14.15 44.34h9.973v4.874h-9.973z"/><path transform="matrix(.707.7072-.7072.707 38.685.172)" fill="#fff" d="m15.952 44.34h6.366v4.875h-6.366z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.5 54.6c.9-9.9 5.4-9.7 3-12-2.3-2.3.3-.3-12.3 3.3-4.5 1.3-6.4 5.3-6.7 8.8-.1 1-.8 5.6-4.5 7 0 0 7.8.8 11.7 0 4-.3 8.4-2.3 8.8-7.1" fill="#3e4347"/><path d="m11.6 45.7c0 0 2.8.3 2.4 2.4-.4 2.1 2.2.1 2.3 1.7.1 1.7 2.9.6 2.8 2.2-.1 1.7 1.8 1 1.5 2.5-.3 1.5-.7 3.2-1.9 4.2-1.1 1 .4-4.8-.9-3.6-1.3 1.2-1-2.9-2.8-2.1-1.9.8-.3-3.3-2.4-2.4-2.1.9-1.4-3-2.7-2.7-1.3.4-1.1-.9-1.1-.9s1.1-.8 2.8-1.3" fill="#94989b"/><path d="m4.6 53.8c0 0-.7 6.3-4.6 7.8 0 0 8.4 1.1 12.4-.1 0 0 2-.7-.2-1.8-2.2-1.1-.4-2-1.6-1.8-1.2.1 1.2-1.7-.7-1.5-1.9.2-.4-2.5-1.7-1.9-1.3.7-.9-2-1.6-1.1-.6.8-.4-.9-1-.7s-.8.2-1 1.1" fill="#ed4c5c"/><path d="m10.8 59.9c0 0-.4.3-1.1.6-.3.1-.7.3-1.2.4-.4 0-.8.1-1.3.1-.5 0-.9 0-1.4-.1-.4-.1-.9-.2-1.2-.3-.7-.2-1.1-.4-1.1-.4s.5-.2 1.2-.3c.7-.1 1.6-.2 2.5-.3.9 0 1.8 0 2.5.1.6.1 1.1.2 1.1.2" fill="#ffc7ce"/><path d="m21.2 51.1l-6.4-6.4c0 0 27.8-30.8 37.4-40.7 2.6-2.7 7-2.7 9.7 0 2.7 2.7 2.7 7.1 0 9.7-9.9 9.5-40.7 37.4-40.7 37.4" fill="#89664c"/><path d="m20.2 50l-4.3-4.3c0 0 27.5-29.4 36.8-39.1 2.6-2.6 6.2-3.3 8-1.4 1.8 1.8 1.2 5.4-1.4 8-9.7 9.4-39.1 36.8-39.1 36.8" fill="#d3976e"/><path transform="matrix(.7071-.7071.7071.7071-27.4714 27.231)" fill="#c7d3d8" d="m16.7 41.8h4.9v10h-4.9z"/><path transform="matrix(.7072-.707.707.7072-27.4685 27.2231)" fill="#fff" d="m16.7 43.6h4.9v6.4h-4.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f58d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f58d.svg
index 6230fdd..5a76528 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f58d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f58d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#71ad3e" d="m18.314 51.746l-6.06-6.06c-.938-.939-2.246-.805-2.904.301l-6.949 11.644c-.66 1.106-.49 2.72.38 3.587.868.868 2.483 1.04 3.586.379l11.646-6.945c1.103-.661 1.238-1.967.3-2.907"/><path fill="#83bf4f" d="m21.595 55.22c-1.174 1.173-3.106 1.141-4.319-.072l-8.417-8.416c-1.213-1.214-1.245-3.147-.073-4.32l39.547-39.548c1.173-1.173 3.106-1.141 4.319.072l8.416 8.417c1.213 1.212 1.245 3.146.073 4.319l-39.546 39.548"/><path transform="matrix(.7071.7071-.7071.7071 30.773-16.219)" fill="#3e4347" d="m25.907 5.59h18.11v46.895h-18.11z"/><g fill="#52c18e"><path transform="matrix(.7071.7071-.7071.7071 25.916-27.94)" d="m37.629 14.999h18.12v4.631h-18.12z"/><path transform="matrix(.7071.7071-.7071.7071 35.63-4.497)" d="m14.186 38.444h18.11v4.63h-18.11z"/><path d="m34.964 29.04c-4.304 4.304-10.662 4.928-14.198 1.391l15.589-15.589c3.536 3.536 2.915 9.893-1.391 14.198"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.3 51.7l-6.1-6.1c-.9-.9-2.2-.8-2.9.3l-6.9 11.7c-.7 1.1-.5 2.7.4 3.6.9.9 2.5 1 3.6.4l11.6-6.9c1.1-.7 1.3-2 .3-3" fill="#71ad3e"/><path d="m21.6 55.2c-1.2 1.2-3.1 1.1-4.3-.1l-8.4-8.4c-1.2-1.2-1.2-3.1-.1-4.3l39.5-39.5c1.2-1.2 3.1-1.1 4.3.1l8.4 8.4c1.2 1.2 1.2 3.1.1 4.3l-39.5 39.5" fill="#83bf4f"/><path transform="matrix(.7071-.7071.7071.7071-10.2915 33.2278)" fill="#3e4347" d="m11.5 20h46.9v18.1h-46.9z"/><g fill="#52c18e"><path transform="matrix(.7071-.7071.7071.7071 1.4299 38.0826)" d="m44.4 8.3h4.6v18.1h-4.6z"/><path transform="matrix(.7071-.7071.7071.7071-22.013 28.3741)" d="m20.9 31.7h4.6v18.1h-4.6z"/><path d="m35 29c-4.3 4.3-10.7 4.9-14.2 1.4l15.6-15.6c3.5 3.6 2.9 9.9-1.4 14.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fb.svg
index 703acdf..5154c0b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m34.01 42.25l7.832 1.523 6.436-32.922c.432-2.207-.959-4.387-3.115-4.805l-.021-.004c-2.156-.42-4.264 1.078-4.707 3.35l-6.425 32.858"/><path fill="#e6b796" d="m45.16 6.05l-.021-.004c-.234-.047-.469-.061-.699-.063 1.76.697 2.824 2.635 2.441 4.6l-6.436 32.922 1.395.271 6.436-32.922c.431-2.207-.96-4.386-3.116-4.804"/><path fill="#ffe1bd" d="m26.04 43.34h9.428v-36.36c0-2.744-2.107-4.973-4.711-4.973-2.604 0-4.717 2.229-4.717 4.973v36.36"/><path fill="#e6b796" d="m30.761 1.999c-.242 0-.479.037-.711.076 2.264.363 4 2.408 4 4.896v36.36h1.42v-36.36c0-2.744-2.108-4.973-4.711-4.973"/><path fill="#ffe1bd" d="m21.01 43.17l7.951-2.07-8.654-33.12c-.605-2.314-2.873-3.727-5.064-3.156l-.014.004c-2.193.57-3.479 2.908-2.875 5.223l8.656 33.12"/><path fill="#e6b796" d="m15.245 4.825l-.014.004c-.232.061-.449.15-.66.248 1.955-.143 3.824 1.193 4.365 3.262l8.654 33.12 1.373-.357-8.653-33.12c-.606-2.314-2.873-3.726-5.065-3.156"/><path fill="#ffe1bd" d="m4.01 13.403c-1.885.946-2.537 3.287-1.537 5.272l13.246 26.27 6.695-3.363-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#e6b796" d="m4.01 13.403c-.221.109-.416.242-.602.385 1.729-.473 3.605.408 4.49 2.162l13.246 26.27 1.27-.639-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#ffe1bd" d="m61.683 29.27c-1.561-3.066-6.59-2.914-11.717 2.711-3.582 3.93-4.344 5.154-7.936 5.15v-4.117c0 0-7.703-5.738-23.04-3.119 0 0-8.732 1.225-8.732 5.754 0 0-1.484 11.1 1.598 18.08 4.592 10.398 28.17 13.14 35.609-4.559 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.969 8.764-7.113 7.05-10.476"/><g fill="#e6b796"><path d="m61.683 29.27c-.295-.582-.719-1.045-1.24-1.381.084.125.168.248.238.387 1.709 3.363-3.82 6.508-7.05 10.475-2.686 3.295-5.684 5.912-7.164 9.43-6.447 15.342-25.02 15.318-32.844 8.266 7.109 8.02 27.11 8.766 33.846-7.271 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.971 8.764-7.115 7.06-10.478"/><path d="m24.567 50.15c0-6.092 4.617-11.04 10.361-11.18-1.014-.441-2.115-.701-3.279-.701-4.777 0-8.652 4.084-8.652 9.121 0 2.203.748 4.213 1.979 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m24.321 46.87c.369-2.893-1.348-5.703-4.1-6.484-.436-.125-.875-.188-1.305-.201 1-.854 2.365-1.207 3.703-.826 2.223.633 3.537 3.047 2.938 5.393-.216.849-.656 1.571-1.236 2.118"/><path d="m42.31 33.2c-6.555-4.219-23.633-4.387-30.84 0 6.416-7.553 26.539-5.844 30.84 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 42.3l7.8 1.5 6.4-32.9c.4-2.2-1-4.4-3.1-4.8-2.2-.4-4.3 1.1-4.7 3.3l-6.4 32.9" fill="#ffe1bd"/><path d="m45.2 6.1c-.3-.1-.5-.1-.8-.1 1.8.7 2.8 2.6 2.4 4.6l-6.4 32.9 1.4.3 6.4-32.9c.5-2.3-.9-4.4-3-4.8" fill="#e6b796"/><path d="m26 43.3h9.4v-36.3c0-2.7-2.1-5-4.7-5-2.5 0-4.7 2.2-4.7 5v36.3" fill="#ffe1bd"/><path d="m30.8 2c-.2 0-.5 0-.7.1 2.3.4 4 2.4 4 4.9v36.4h1.4v-36.4c0-2.8-2.1-5-4.7-5" fill="#e6b796"/><path d="m21 43.2l8-2.1-8.7-33.1c-.6-2.3-2.9-3.7-5.1-3.2-2.2.6-3.5 2.9-2.9 5.2l8.7 33.2" fill="#ffe1bd"/><path d="m15.2 4.8c-.2.1-.4.2-.6.3 2-.1 3.8 1.2 4.4 3.3l8.7 33.1 1.4-.4-8.8-33.1c-.6-2.3-2.9-3.7-5.1-3.2" fill="#e6b796"/><path d="m4 13.4c-1.9.9-2.5 3.3-1.5 5.3l13.2 26.3 6.7-3.4-13.2-26.3c-1-2-3.3-2.8-5.2-1.9" fill="#ffe1bd"/><path d="m4 13.4c-.2.1-.4.2-.6.4 1.7-.5 3.6.4 4.5 2.2l13.2 26.3 1.3-.6-13.2-26.4c-1-2-3.3-2.8-5.2-1.9" fill="#e6b796"/><path d="m61.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-7.7-5.7-23-3.1 0 0-8.7 1.2-8.7 5.8 0 0-1.5 11.1 1.6 18.1 4.6 10.4 28.2 13.1 35.6-4.6 1.5-3.5 4.5-6.1 7.2-9.4 3.1-4 8.6-7.2 6.9-10.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m61.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7.1 10.5-2.7 3.3-5.7 5.9-7.2 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27.1 8.8 33.8-7.3 1.5-3.5 4.5-6.1 7.2-9.4 3.3-4 8.8-7.2 7.1-10.5"/><path d="m43.1 37.1c-6.5-2.4-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.8-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fc.svg
index 5976695..00e624a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m34.01 42.25l7.832 1.523 6.436-32.922c.432-2.207-.959-4.387-3.115-4.805l-.021-.004c-2.156-.42-4.264 1.078-4.707 3.35l-6.425 32.858"/><path fill="#e0a372" d="m45.16 6.05l-.021-.004c-.234-.047-.469-.061-.699-.063 1.76.697 2.824 2.635 2.441 4.6l-6.436 32.922 1.395.271 6.436-32.922c.431-2.207-.96-4.386-3.116-4.804"/><path fill="#fed0ac" d="m26.04 43.34h9.428v-36.36c0-2.744-2.107-4.973-4.711-4.973-2.604 0-4.717 2.229-4.717 4.973v36.36"/><path fill="#e0a372" d="m30.761 1.999c-.242 0-.479.037-.711.076 2.264.363 4 2.408 4 4.896v36.36h1.42v-36.36c0-2.744-2.108-4.973-4.711-4.973"/><path fill="#fed0ac" d="m21.01 43.17l7.951-2.07-8.654-33.12c-.605-2.314-2.873-3.727-5.064-3.156l-.014.004c-2.193.57-3.479 2.908-2.875 5.223l8.656 33.12"/><path fill="#e0a372" d="m15.245 4.825l-.014.004c-.232.061-.449.15-.66.248 1.955-.143 3.824 1.193 4.365 3.262l8.654 33.12 1.373-.357-8.653-33.12c-.606-2.314-2.873-3.726-5.065-3.156"/><path fill="#fed0ac" d="m4.01 13.403c-1.885.946-2.537 3.287-1.537 5.272l13.246 26.27 6.695-3.363-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#e0a372" d="m4.01 13.403c-.221.109-.416.242-.602.385 1.729-.473 3.605.408 4.49 2.162l13.246 26.27 1.27-.639-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#fed0ac" d="m61.683 29.27c-1.561-3.066-6.59-2.914-11.717 2.711-3.582 3.93-4.344 5.154-7.936 5.15v-4.117c0 0-7.703-5.738-23.04-3.119 0 0-8.732 1.225-8.732 5.754 0 0-1.484 11.1 1.598 18.08 4.592 10.398 28.17 13.14 35.609-4.559 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.969 8.764-7.113 7.05-10.476"/><g fill="#e0a372"><path d="m61.683 29.27c-.295-.582-.719-1.045-1.24-1.381.084.125.168.248.238.387 1.709 3.363-3.82 6.508-7.05 10.475-2.686 3.295-5.684 5.912-7.164 9.43-6.447 15.342-25.02 15.318-32.844 8.266 7.109 8.02 27.11 8.766 33.846-7.271 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.971 8.764-7.115 7.06-10.478"/><path d="m24.567 50.15c0-6.092 4.617-11.04 10.361-11.18-1.014-.441-2.115-.701-3.279-.701-4.777 0-8.652 4.084-8.652 9.121 0 2.203.748 4.213 1.979 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m24.321 46.87c.369-2.893-1.348-5.703-4.1-6.484-.436-.125-.875-.188-1.305-.201 1-.854 2.365-1.207 3.703-.826 2.223.633 3.537 3.047 2.938 5.393-.216.849-.656 1.571-1.236 2.118"/><path d="m42.31 33.2c-6.555-4.219-23.633-4.387-30.84 0 6.416-7.553 26.539-5.844 30.84 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 42.3l7.8 1.5 6.4-32.9c.4-2.2-1-4.4-3.1-4.8-2.2-.4-4.3 1.1-4.7 3.3l-6.4 32.9" fill="#fed0ac"/><path d="m45.2 6.1c-.3-.1-.5-.1-.8-.1 1.8.7 2.8 2.6 2.4 4.6l-6.4 32.9 1.4.3 6.4-32.9c.5-2.3-.9-4.4-3-4.8" fill="#e0a372"/><path d="m26 43.3h9.4v-36.3c0-2.7-2.1-5-4.7-5-2.5 0-4.7 2.2-4.7 5v36.3" fill="#fed0ac"/><path d="m30.8 2c-.2 0-.5 0-.7.1 2.3.4 4 2.4 4 4.9v36.4h1.4v-36.4c0-2.8-2.1-5-4.7-5" fill="#e0a372"/><path d="m21 43.2l8-2.1-8.7-33.1c-.6-2.3-2.9-3.7-5.1-3.2-2.2.6-3.5 2.9-2.9 5.2l8.7 33.2" fill="#fed0ac"/><path d="m15.2 4.8c-.2.1-.4.2-.6.3 2-.1 3.8 1.2 4.4 3.3l8.7 33.1 1.4-.4-8.8-33.1c-.6-2.3-2.9-3.7-5.1-3.2" fill="#e0a372"/><path d="m4 13.4c-1.9.9-2.5 3.3-1.5 5.3l13.2 26.3 6.7-3.4-13.2-26.3c-1-2-3.3-2.8-5.2-1.9" fill="#fed0ac"/><path d="m4 13.4c-.2.1-.4.2-.6.4 1.7-.5 3.6.4 4.5 2.2l13.2 26.3 1.3-.6-13.2-26.4c-1-2-3.3-2.8-5.2-1.9" fill="#e0a372"/><path d="m61.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-7.7-5.7-23-3.1 0 0-8.7 1.2-8.7 5.8 0 0-1.5 11.1 1.6 18.1 4.6 10.4 28.2 13.1 35.6-4.6 1.5-3.5 4.5-6.1 7.2-9.4 3.1-4 8.6-7.2 6.9-10.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m61.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7.1 10.5-2.7 3.3-5.7 5.9-7.2 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27.1 8.8 33.8-7.3 1.5-3.5 4.5-6.1 7.2-9.4 3.3-4 8.8-7.2 7.1-10.5"/><path d="m43.1 37.1c-6.5-2.4-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.8-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fd.svg
index d3633f8..79c9644 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m34.01 42.25l7.832 1.523 6.436-32.922c.432-2.207-.959-4.387-3.115-4.805l-.021-.004c-2.156-.42-4.264 1.078-4.707 3.35l-6.425 32.858"/><path fill="#b58360" d="m45.16 6.05l-.021-.004c-.234-.047-.469-.061-.699-.063 1.76.697 2.824 2.635 2.441 4.6l-6.436 32.922 1.395.271 6.436-32.922c.431-2.207-.96-4.386-3.116-4.804"/><path fill="#d6a57c" d="m26.04 43.34h9.428v-36.36c0-2.744-2.107-4.973-4.711-4.973-2.604 0-4.717 2.229-4.717 4.973v36.36"/><path fill="#b58360" d="m30.761 1.999c-.242 0-.479.037-.711.076 2.264.363 4 2.408 4 4.896v36.36h1.42v-36.36c0-2.744-2.108-4.973-4.711-4.973"/><path fill="#d6a57c" d="m21.01 43.17l7.951-2.07-8.654-33.12c-.605-2.314-2.873-3.727-5.064-3.156l-.014.004c-2.193.57-3.479 2.908-2.875 5.223l8.656 33.12"/><path fill="#b58360" d="m15.245 4.825l-.014.004c-.232.061-.449.15-.66.248 1.955-.143 3.824 1.193 4.365 3.262l8.654 33.12 1.373-.357-8.653-33.12c-.606-2.314-2.873-3.726-5.065-3.156"/><path fill="#d6a57c" d="m4.01 13.403c-1.885.946-2.537 3.287-1.537 5.272l13.246 26.27 6.695-3.363-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#b58360" d="m4.01 13.403c-.221.109-.416.242-.602.385 1.729-.473 3.605.408 4.49 2.162l13.246 26.27 1.27-.639-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#d6a57c" d="m61.683 29.27c-1.561-3.066-6.59-2.914-11.717 2.711-3.582 3.93-4.344 5.154-7.936 5.15v-4.117c0 0-7.703-5.738-23.04-3.119 0 0-8.732 1.225-8.732 5.754 0 0-1.484 11.1 1.598 18.08 4.592 10.398 28.17 13.14 35.609-4.559 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.969 8.764-7.113 7.05-10.476"/><g fill="#b58360"><path d="m61.683 29.27c-.295-.582-.719-1.045-1.24-1.381.084.125.168.248.238.387 1.709 3.363-3.82 6.508-7.05 10.475-2.686 3.295-5.684 5.912-7.164 9.43-6.447 15.342-25.02 15.318-32.844 8.266 7.109 8.02 27.11 8.766 33.846-7.271 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.971 8.764-7.115 7.06-10.478"/><path d="m24.567 50.15c0-6.092 4.617-11.04 10.361-11.18-1.014-.441-2.115-.701-3.279-.701-4.777 0-8.652 4.084-8.652 9.121 0 2.203.748 4.213 1.979 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m24.321 46.87c.369-2.893-1.348-5.703-4.1-6.484-.436-.125-.875-.188-1.305-.201 1-.854 2.365-1.207 3.703-.826 2.223.633 3.537 3.047 2.938 5.393-.216.849-.656 1.571-1.236 2.118"/><path d="m42.31 33.2c-6.555-4.219-23.633-4.387-30.84 0 6.416-7.553 26.539-5.844 30.84 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 42.3l7.8 1.5 6.4-32.9c.4-2.2-1-4.4-3.1-4.8-2.2-.4-4.3 1.1-4.7 3.3l-6.4 32.9" fill="#d6a57c"/><path d="m45.2 6.1c-.3-.1-.5-.1-.8-.1 1.8.7 2.8 2.6 2.4 4.6l-6.4 32.9 1.4.3 6.4-32.9c.5-2.3-.9-4.4-3-4.8" fill="#b58360"/><path d="m26 43.3h9.4v-36.3c0-2.7-2.1-5-4.7-5-2.5 0-4.7 2.2-4.7 5v36.3" fill="#d6a57c"/><path d="m30.8 2c-.2 0-.5 0-.7.1 2.3.4 4 2.4 4 4.9v36.4h1.4v-36.4c0-2.8-2.1-5-4.7-5" fill="#b58360"/><path d="m21 43.2l8-2.1-8.7-33.1c-.6-2.3-2.9-3.7-5.1-3.2-2.2.6-3.5 2.9-2.9 5.2l8.7 33.2" fill="#d6a57c"/><path d="m15.2 4.8c-.2.1-.4.2-.6.3 2-.1 3.8 1.2 4.4 3.3l8.7 33.1 1.4-.4-8.8-33.1c-.6-2.3-2.9-3.7-5.1-3.2" fill="#b58360"/><path d="m4 13.4c-1.9.9-2.5 3.3-1.5 5.3l13.2 26.3 6.7-3.4-13.2-26.3c-1-2-3.3-2.8-5.2-1.9" fill="#d6a57c"/><path d="m4 13.4c-.2.1-.4.2-.6.4 1.7-.5 3.6.4 4.5 2.2l13.2 26.3 1.3-.6-13.2-26.4c-1-2-3.3-2.8-5.2-1.9" fill="#b58360"/><path d="m61.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-7.7-5.7-23-3.1 0 0-8.7 1.2-8.7 5.8 0 0-1.5 11.1 1.6 18.1 4.6 10.4 28.2 13.1 35.6-4.6 1.5-3.5 4.5-6.1 7.2-9.4 3.1-4 8.6-7.2 6.9-10.5" fill="#d6a57c"/><g fill="#b58360"><path d="m61.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7.1 10.5-2.7 3.3-5.7 5.9-7.2 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27.1 8.8 33.8-7.3 1.5-3.5 4.5-6.1 7.2-9.4 3.3-4 8.8-7.2 7.1-10.5"/><path d="m43.1 37.1c-6.5-2.4-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.8-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fe.svg
index cb98f19..1e01c77 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m34.01 42.25l7.832 1.523 6.436-32.922c.432-2.207-.959-4.387-3.115-4.805l-.021-.004c-2.156-.42-4.264 1.078-4.707 3.35l-6.425 32.858"/><path fill="#935e3e" d="m45.16 6.05l-.021-.004c-.234-.047-.469-.061-.699-.063 1.76.697 2.824 2.635 2.441 4.6l-6.436 32.922 1.395.271 6.436-32.922c.431-2.207-.96-4.386-3.116-4.804"/><path fill="#b47d56" d="m26.04 43.34h9.428v-36.36c0-2.744-2.107-4.973-4.711-4.973-2.604 0-4.717 2.229-4.717 4.973v36.36"/><path fill="#935e3e" d="m30.761 1.999c-.242 0-.479.037-.711.076 2.264.363 4 2.408 4 4.896v36.36h1.42v-36.36c0-2.744-2.108-4.973-4.711-4.973"/><path fill="#b47d56" d="m21.01 43.17l7.951-2.07-8.654-33.12c-.605-2.314-2.873-3.727-5.064-3.156l-.014.004c-2.193.57-3.479 2.908-2.875 5.223l8.656 33.12"/><path fill="#935e3e" d="m15.245 4.825l-.014.004c-.232.061-.449.15-.66.248 1.955-.143 3.824 1.193 4.365 3.262l8.654 33.12 1.373-.357-8.653-33.12c-.606-2.314-2.873-3.726-5.065-3.156"/><path fill="#b47d56" d="m4.01 13.403c-1.885.946-2.537 3.287-1.537 5.272l13.246 26.27 6.695-3.363-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#935e3e" d="m4.01 13.403c-.221.109-.416.242-.602.385 1.729-.473 3.605.408 4.49 2.162l13.246 26.27 1.27-.639-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#b47d56" d="m61.683 29.27c-1.561-3.066-6.59-2.914-11.717 2.711-3.582 3.93-4.344 5.154-7.936 5.15v-4.117c0 0-7.703-5.738-23.04-3.119 0 0-8.732 1.225-8.732 5.754 0 0-1.484 11.1 1.598 18.08 4.592 10.398 28.17 13.14 35.609-4.559 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.969 8.764-7.113 7.05-10.476"/><g fill="#935e3e"><path d="m61.683 29.27c-.295-.582-.719-1.045-1.24-1.381.084.125.168.248.238.387 1.709 3.363-3.82 6.508-7.05 10.475-2.686 3.295-5.684 5.912-7.164 9.43-6.447 15.342-25.02 15.318-32.844 8.266 7.109 8.02 27.11 8.766 33.846-7.271 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.971 8.764-7.115 7.06-10.478"/><path d="m24.567 50.15c0-6.092 4.617-11.04 10.361-11.18-1.014-.441-2.115-.701-3.279-.701-4.777 0-8.652 4.084-8.652 9.121 0 2.203.748 4.213 1.979 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m24.321 46.87c.369-2.893-1.348-5.703-4.1-6.484-.436-.125-.875-.188-1.305-.201 1-.854 2.365-1.207 3.703-.826 2.223.633 3.537 3.047 2.938 5.393-.216.849-.656 1.571-1.236 2.118"/><path d="m42.31 33.2c-6.555-4.219-23.633-4.387-30.84 0 6.416-7.553 26.539-5.844 30.84 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 42.3l7.8 1.5 6.4-32.9c.4-2.2-1-4.4-3.1-4.8-2.2-.4-4.3 1.1-4.7 3.3l-6.4 32.9" fill="#b47d56"/><path d="m45.2 6.1c-.3-.1-.5-.1-.8-.1 1.8.7 2.8 2.6 2.4 4.6l-6.4 32.9 1.4.3 6.4-32.9c.5-2.3-.9-4.4-3-4.8" fill="#935e3e"/><path d="m26 43.3h9.4v-36.3c0-2.7-2.1-5-4.7-5-2.5 0-4.7 2.2-4.7 5v36.3" fill="#b47d56"/><path d="m30.8 2c-.2 0-.5 0-.7.1 2.3.4 4 2.4 4 4.9v36.4h1.4v-36.4c0-2.8-2.1-5-4.7-5" fill="#935e3e"/><path d="m21 43.2l8-2.1-8.7-33.1c-.6-2.3-2.9-3.7-5.1-3.2-2.2.6-3.5 2.9-2.9 5.2l8.7 33.2" fill="#b47d56"/><path d="m15.2 4.8c-.2.1-.4.2-.6.3 2-.1 3.8 1.2 4.4 3.3l8.7 33.1 1.4-.4-8.8-33.1c-.6-2.3-2.9-3.7-5.1-3.2" fill="#935e3e"/><path d="m4 13.4c-1.9.9-2.5 3.3-1.5 5.3l13.2 26.3 6.7-3.4-13.2-26.3c-1-2-3.3-2.8-5.2-1.9" fill="#b47d56"/><path d="m4 13.4c-.2.1-.4.2-.6.4 1.7-.5 3.6.4 4.5 2.2l13.2 26.3 1.3-.6-13.2-26.4c-1-2-3.3-2.8-5.2-1.9" fill="#935e3e"/><path d="m61.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-7.7-5.7-23-3.1 0 0-8.7 1.2-8.7 5.8 0 0-1.5 11.1 1.6 18.1 4.6 10.4 28.2 13.1 35.6-4.6 1.5-3.5 4.5-6.1 7.2-9.4 3.1-4 8.6-7.2 6.9-10.5" fill="#b47d56"/><g fill="#935e3e"><path d="m61.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7.1 10.5-2.7 3.3-5.7 5.9-7.2 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27.1 8.8 33.8-7.3 1.5-3.5 4.5-6.1 7.2-9.4 3.3-4 8.8-7.2 7.1-10.5"/><path d="m43.1 37.1c-6.5-2.4-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.8-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3ff.svg
index 2f98ddd..feae919 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f590-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m34.01 42.25l7.832 1.523 6.436-32.922c.432-2.207-.959-4.387-3.115-4.805l-.021-.004c-2.156-.42-4.264 1.078-4.707 3.35l-6.425 32.858"/><path fill="#705041" d="m45.16 6.05l-.021-.004c-.234-.047-.469-.061-.699-.063 1.76.697 2.824 2.635 2.441 4.6l-6.436 32.922 1.395.271 6.436-32.922c.431-2.207-.96-4.386-3.116-4.804"/><path fill="#8a6859" d="m26.04 43.34h9.428v-36.36c0-2.744-2.107-4.973-4.711-4.973-2.604 0-4.717 2.229-4.717 4.973v36.36"/><path fill="#705041" d="m30.761 1.999c-.242 0-.479.037-.711.076 2.264.363 4 2.408 4 4.896v36.36h1.42v-36.36c0-2.744-2.108-4.973-4.711-4.973"/><path fill="#8a6859" d="m21.01 43.17l7.951-2.07-8.654-33.12c-.605-2.314-2.873-3.727-5.064-3.156l-.014.004c-2.193.57-3.479 2.908-2.875 5.223l8.656 33.12"/><path fill="#705041" d="m15.245 4.825l-.014.004c-.232.061-.449.15-.66.248 1.955-.143 3.824 1.193 4.365 3.262l8.654 33.12 1.373-.357-8.653-33.12c-.606-2.314-2.873-3.726-5.065-3.156"/><path fill="#8a6859" d="m4.01 13.403c-1.885.946-2.537 3.287-1.537 5.272l13.246 26.27 6.695-3.363-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#705041" d="m4.01 13.403c-.221.109-.416.242-.602.385 1.729-.473 3.605.408 4.49 2.162l13.246 26.27 1.27-.639-13.246-26.27c-1-1.984-3.273-2.857-5.158-1.91"/><path fill="#8a6859" d="m61.683 29.27c-1.561-3.066-6.59-2.914-11.717 2.711-3.582 3.93-4.344 5.154-7.936 5.15v-4.117c0 0-7.703-5.738-23.04-3.119 0 0-8.732 1.225-8.732 5.754 0 0-1.484 11.1 1.598 18.08 4.592 10.398 28.17 13.14 35.609-4.559 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.969 8.764-7.113 7.05-10.476"/><g fill="#705041"><path d="m61.683 29.27c-.295-.582-.719-1.045-1.24-1.381.084.125.168.248.238.387 1.709 3.363-3.82 6.508-7.05 10.475-2.686 3.295-5.684 5.912-7.164 9.43-6.447 15.342-25.02 15.318-32.844 8.266 7.109 8.02 27.11 8.766 33.846-7.271 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.971 8.764-7.115 7.06-10.478"/><path d="m24.567 50.15c0-6.092 4.617-11.04 10.361-11.18-1.014-.441-2.115-.701-3.279-.701-4.777 0-8.652 4.084-8.652 9.121 0 2.203.748 4.213 1.979 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m24.321 46.87c.369-2.893-1.348-5.703-4.1-6.484-.436-.125-.875-.188-1.305-.201 1-.854 2.365-1.207 3.703-.826 2.223.633 3.537 3.047 2.938 5.393-.216.849-.656 1.571-1.236 2.118"/><path d="m42.31 33.2c-6.555-4.219-23.633-4.387-30.84 0 6.416-7.553 26.539-5.844 30.84 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 42.3l7.8 1.5 6.4-32.9c.4-2.2-1-4.4-3.1-4.8-2.2-.4-4.3 1.1-4.7 3.3l-6.4 32.9" fill="#8a6859"/><path d="m45.2 6.1c-.3-.1-.5-.1-.8-.1 1.8.7 2.8 2.6 2.4 4.6l-6.4 32.9 1.4.3 6.4-32.9c.5-2.3-.9-4.4-3-4.8" fill="#705041"/><path d="m26 43.3h9.4v-36.3c0-2.7-2.1-5-4.7-5-2.5 0-4.7 2.2-4.7 5v36.3" fill="#8a6859"/><path d="m30.8 2c-.2 0-.5 0-.7.1 2.3.4 4 2.4 4 4.9v36.4h1.4v-36.4c0-2.8-2.1-5-4.7-5" fill="#705041"/><path d="m21 43.2l8-2.1-8.7-33.1c-.6-2.3-2.9-3.7-5.1-3.2-2.2.6-3.5 2.9-2.9 5.2l8.7 33.2" fill="#8a6859"/><path d="m15.2 4.8c-.2.1-.4.2-.6.3 2-.1 3.8 1.2 4.4 3.3l8.7 33.1 1.4-.4-8.8-33.1c-.6-2.3-2.9-3.7-5.1-3.2" fill="#705041"/><path d="m4 13.4c-1.9.9-2.5 3.3-1.5 5.3l13.2 26.3 6.7-3.4-13.2-26.3c-1-2-3.3-2.8-5.2-1.9" fill="#8a6859"/><path d="m4 13.4c-.2.1-.4.2-.6.4 1.7-.5 3.6.4 4.5 2.2l13.2 26.3 1.3-.6-13.2-26.4c-1-2-3.3-2.8-5.2-1.9" fill="#705041"/><path d="m61.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-7.7-5.7-23-3.1 0 0-8.7 1.2-8.7 5.8 0 0-1.5 11.1 1.6 18.1 4.6 10.4 28.2 13.1 35.6-4.6 1.5-3.5 4.5-6.1 7.2-9.4 3.1-4 8.6-7.2 6.9-10.5" fill="#8a6859"/><g fill="#705041"><path d="m61.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7.1 10.5-2.7 3.3-5.7 5.9-7.2 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27.1 8.8 33.8-7.3 1.5-3.5 4.5-6.1 7.2-9.4 3.3-4 8.8-7.2 7.1-10.5"/><path d="m43.1 37.1c-6.5-2.4-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.8-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f590.svg b/build/js/jsxc/lib/emojione/assets/svg/1f590.svg
index 3ff42aa..daefb13 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f590.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f590.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m34.01 42.25l7.832 1.524 6.436-32.922c.432-2.207-.959-4.387-3.115-4.806l-.021-.004c-2.156-.42-4.264 1.078-4.707 3.35l-6.425 32.858"/><path fill="#eba352" d="m45.16 6.05l-.021-.004c-.235-.045-.469-.059-.7-.061 1.76.697 2.824 2.635 2.441 4.599l-6.436 32.923 1.395.271 6.436-32.922c.432-2.207-.959-4.387-3.115-4.806"/><path fill="#ffdd67" d="m26.04 43.34h9.428v-36.36c0-2.744-2.108-4.972-4.711-4.972-2.604 0-4.717 2.229-4.717 4.973v36.36"/><path fill="#eba352" d="m30.758 2c-.242 0-.479.037-.711.076 2.264.363 4 2.408 4 4.896v36.36h1.42v-36.36c0-2.744-2.108-4.972-4.711-4.972"/><path fill="#ffdd67" d="m21.01 43.17l7.951-2.069-8.654-33.12c-.605-2.313-2.873-3.726-5.064-3.155l-.014.004c-2.193.57-3.479 2.908-2.875 5.222l8.656 33.12"/><path fill="#eba352" d="m15.242 4.826l-.013.004c-.232.061-.449.149-.66.248 1.955-.143 3.824 1.193 4.365 3.261l8.654 33.12 1.373-.356-8.654-33.12c-.606-2.314-2.873-3.726-5.065-3.155"/><path fill="#ffdd67" d="m4 13.403c-1.885.946-2.537 3.288-1.537 5.271l13.246 26.27 6.695-3.362-13.246-26.27c-1-1.983-3.273-2.857-5.158-1.91"/><path fill="#eba352" d="m4 13.403c-.221.11-.416.242-.602.385 1.729-.472 3.605.408 4.49 2.162l13.246 26.27 1.27-.639-13.246-26.27c-1-1.983-3.273-2.857-5.158-1.91"/><path fill="#ffdd67" d="m61.68 29.27c-1.561-3.066-6.59-2.914-11.717 2.711-3.582 3.93-4.344 5.155-7.936 5.151v-4.117c0 0-7.703-5.739-23.04-3.12 0 0-8.732 1.225-8.732 5.754 0 0-1.484 11.1 1.598 18.08 4.592 10.398 28.17 13.14 35.609-4.559 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.968 8.764-7.113 7.05-10.476"/><g fill="#eba352"><path d="m61.68 29.27c-.295-.582-.719-1.045-1.24-1.381.084.125.168.248.238.387 1.709 3.363-3.82 6.508-7.05 10.475-2.686 3.295-5.684 5.912-7.164 9.43-6.447 15.342-25.02 15.318-32.844 8.266 7.109 8.02 27.11 8.766 33.846-7.271 1.48-3.518 4.479-6.135 7.164-9.428 3.234-3.97 8.764-7.115 7.06-10.478"/><path d="m24.564 50.15c0-6.092 4.617-11.03 10.361-11.18-1.014-.441-2.115-.701-3.279-.701-4.777 0-8.652 4.084-8.652 9.121 0 2.203.748 4.213 1.979 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m24.318 46.871c.369-2.893-1.348-5.703-4.1-6.484-.436-.125-.875-.188-1.305-.201 1-.854 2.365-1.207 3.703-.826 2.223.633 3.537 3.047 2.938 5.393-.216.849-.656 1.571-1.236 2.118"/><path d="m42.31 33.2c-6.555-4.219-23.633-4.387-30.84 0 6.416-7.553 26.539-5.844 30.84 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 42.3l7.8 1.5 6.4-32.9c.4-2.2-1-4.4-3.1-4.8-2.2-.4-4.3 1.1-4.7 3.3l-6.4 32.9" fill="#ffdd67"/><path d="m45.2 6.1c-.3-.1-.5-.1-.8-.1 1.8.7 2.8 2.6 2.4 4.6l-6.4 32.9 1.4.3 6.4-32.9c.5-2.3-.9-4.4-3-4.8" fill="#eba352"/><path d="m26 43.3h9.4v-36.3c0-2.7-2.1-5-4.7-5-2.5 0-4.7 2.2-4.7 5v36.3" fill="#ffdd67"/><path d="m30.8 2c-.2 0-.5 0-.7.1 2.3.4 4 2.4 4 4.9v36.4h1.4v-36.4c0-2.8-2.1-5-4.7-5" fill="#eba352"/><path d="m21 43.2l8-2.1-8.7-33.1c-.6-2.3-2.9-3.7-5.1-3.2-2.2.6-3.5 2.9-2.9 5.2l8.7 33.2" fill="#ffdd67"/><path d="m15.2 4.8c-.2.1-.4.2-.6.3 2-.1 3.8 1.2 4.4 3.3l8.7 33.1 1.4-.4-8.8-33.1c-.6-2.3-2.9-3.7-5.1-3.2" fill="#eba352"/><path d="m4 13.4c-1.9.9-2.5 3.3-1.5 5.3l13.2 26.3 6.7-3.4-13.2-26.3c-1-2-3.3-2.8-5.2-1.9" fill="#ffdd67"/><path d="m4 13.4c-.2.1-.4.2-.6.4 1.7-.5 3.6.4 4.5 2.2l13.2 26.3 1.3-.6-13.2-26.4c-1-2-3.3-2.8-5.2-1.9" fill="#eba352"/><path d="m61.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-7.7-5.7-23-3.1 0 0-8.7 1.2-8.7 5.8 0 0-1.5 11.1 1.6 18.1 4.6 10.4 28.2 13.1 35.6-4.6 1.5-3.5 4.5-6.1 7.2-9.4 3.1-4 8.6-7.2 6.9-10.5" fill="#ffdd67"/><g fill="#eba352"><path d="m61.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7.1 10.5-2.7 3.3-5.7 5.9-7.2 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27.1 8.8 33.8-7.3 1.5-3.5 4.5-6.1 7.2-9.4 3.3-4 8.8-7.2 7.1-10.5"/><path d="m43.1 37.1c-6.5-2.4-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.8-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fb.svg
index f788c6f..74a6b8c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m13.458 31.509c0-2.604 2.381-4.717 5.313-4.717h.098c2.936 0 6.281 2.112 6.281 4.717l-2.588-25.08c0-2.445 3.087-4.429 6.894-4.429h.064c3.807 0 6.891 1.983 6.891 4.429l-1.072 24.56c0-2.604 2.376-4.717 5.31-4.717h.1c2.934 0 5.311 2.112 5.311 4.717v2.738c.516-1.86 2.424-3.245 4.588-2.666 4.457 1.194 3.635 4.8 4.064 8.703.525 4.759 1.721 7.931 1.273 9.608-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.843-1.775-23.308-1.775-23.308"/><g fill="#e6b796"><path d="m13.458 31.509c0-1.408.709-2.659 1.813-3.523-1.869 2.394-.646 19.363 1.674 24.21 1.164 2.43 5.258 1.688 8.275 3.111 2.971 1.4 3.73 3.752 6.418 4.047 2.377.26 5.165-1.355 8.298-2.117 3.555-.863 6.068-.6 8.299-2.609 1.066-.961 1.641-2.469 3.844-3.154 1.621-.506 2.719-.955 3.93-2.232-.01.045-.01.088-.023.135-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.323-4.845-1.776-23.31-1.776-23.31"/><path d="m22.64 5.287c-.941 3.824 2.51 38.425 2.51 38.425 0 2.486 1.33 1.469 1.33-1.021 0 0-3.613-32.473-2.596-37.34.424-2.025 1.844-2.628 4.154-3.252 0 0-4.668.229-5.398 3.192"/><path d="m37 42.27v-12.99c0-.701.141-1.368.455-1.968-1.269.861-2.116 2.221-2.116 3.748v12.989c0 2.605 1.661.824 1.661-1.779"/><path d="m47.41 43.577v-10.378c0-.634.129-1.236.41-1.779-1.146.778-1.914 2.01-1.914 3.386v10.378c0 2.356 1.504.747 1.504-1.607"/><path d="m36.31 53.771c-.184-.862-.144-1.591-.204-2.295-.036-.713-.128-1.345-.306-2.203.408.176.729.505.941.889.224.384.329.822.362 1.254.038.866-.216 1.702-.793 2.355"/><path d="m25.979 47.38c.046 1.072-.121 2.01-.181 2.939-.086.938-.096 1.815-.063 2.879-.779-.76-1.015-1.922-.933-2.961.103-1.054.481-2.052 1.177-2.857"/><path d="m47.744 51.47c-.229-.852-.227-1.583-.324-2.284-.074-.71-.201-1.337-.422-2.187.417.155.754.467.986.84.243.371.372.805.428 1.233.083.866-.127 1.714-.668 2.398"/><path d="m34.407 10.762c.756-5.315-1.715-5.532-4.799-5.532-3.086 0-5.557.217-4.801 5.532.285 1.984 2.359 2.664 4.801 2.664s4.518-.678 4.799-2.664"/></g><path fill="#ffe8dc" d="m34.526 9.852c.797-5.603-1.744-5.833-4.92-5.833-3.174 0-5.713.23-4.916 5.833.297 2.082 2.42 2.792 4.916 2.792 2.5 0 4.623-.71 4.92-2.792"/><path fill="#e6b796" d="m15.255 53.612c-3.59-4.227-8.326-6.395-7.146-9.506 1.016-2.997 3.109-2.935 5.836-6.319l1.31 15.825"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.5 31.5c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 6.3 2.1 6.3 4.7l-2.6-25.1c0-2.4 3-4.4 6.9-4.4h.1c3.8 0 6.9 2 6.9 4.4l-1.2 24.6c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 5.3 2.1 5.3 4.7v2.7c.5-1.9 2.4-3.2 4.6-2.7 4.5 1.2 3.6 4.8 4.1 8.7.5 4.8 1.7 7.9 1.3 9.6-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3" fill="#ffe1bd"/><g fill="#e6b796"><path d="m13.5 31.5c0-1.4.7-2.7 1.8-3.5-1.9 2.4-.6 19.4 1.7 24.2 1.2 2.4 5.3 1.7 8.3 3.1 3 1.4 3.7 3.8 6.4 4 2.4.3 5.2-1.4 8.3-2.1 3.6-.9 6.1-.6 8.3-2.6 1.1-1 1.6-2.5 3.8-3.2 1.6-.5 2.7-1 3.9-2.2 0 0 0 .1 0 .1-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3"/><path d="m22.6 5.3c-.9 3.8 2.5 38.4 2.5 38.4 0 2.5 1.3 1.5 1.3-1 0 0-3.6-32.5-2.6-37.3.4-2 1.8-2.6 4.2-3.3 0 0-4.6.2-5.4 3.2"/><path d="m37 42.3v-13c0-.7.1-1.4.5-2-1.3.9-2.1 2.2-2.1 3.7v13c-.1 2.7 1.6.9 1.6-1.7"/><path d="m47.4 43.6v-10.4c0-.6.1-1.2.4-1.8-1.1.8-1.9 2-1.9 3.4v10.4c0 2.3 1.5.7 1.5-1.6"/><path d="m34.4 10.8c.8-5.3-1.7-5.5-4.8-5.5-3.1 0-5.6.2-4.8 5.5.3 2 2.4 2.7 4.8 2.7s4.5-.8 4.8-2.7"/></g><path d="m34.5 9.9c.8-5.7-1.7-5.9-4.9-5.9-3.2 0-5.7.2-4.9 5.8.3 2.1 2.4 2.8 4.9 2.8 2.5 0 4.6-.7 4.9-2.7" fill="#ffe8dc"/><path d="m15.3 53.6c-3.6-4.2-8.3-6.4-7.1-9.5 1-3 3.1-2.9 5.8-6.3l1.3 15.8" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fc.svg
index 290c4bb..57bccaa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m13.458 31.51c0-2.605 2.381-4.717 5.313-4.717h.098c2.936 0 6.281 2.112 6.281 4.717l-2.588-25.08c0-2.445 3.087-4.429 6.894-4.429h.064c3.807 0 6.891 1.983 6.891 4.429l-1.072 24.559c0-2.604 2.376-4.716 5.31-4.716h.1c2.934 0 5.311 2.113 5.311 4.716v2.738c.516-1.859 2.424-3.244 4.588-2.666 4.457 1.195 3.635 4.801 4.064 8.703.525 4.759 1.721 7.931 1.273 9.608-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.842-1.775-23.306-1.775-23.306"/><g fill="#e0a372"><path d="m13.458 31.51c0-1.408.709-2.66 1.813-3.523-1.869 2.393-.646 19.362 1.674 24.21 1.164 2.43 5.258 1.688 8.275 3.111 2.971 1.4 3.73 3.752 6.418 4.047 2.377.26 5.165-1.355 8.298-2.117 3.555-.863 6.068-.6 8.299-2.609 1.066-.961 1.641-2.469 3.844-3.154 1.621-.506 2.719-.955 3.93-2.232-.01.045-.01.088-.023.135-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.323-4.845-1.776-23.309-1.776-23.309"/><path d="m22.64 5.287c-.941 3.824 2.51 38.425 2.51 38.425 0 2.486 1.33 1.469 1.33-1.021 0 0-3.613-32.473-2.596-37.34.424-2.025 1.844-2.628 4.154-3.252 0 0-4.668.229-5.398 3.192"/><path d="m37 42.27v-12.989c0-.701.141-1.369.455-1.968-1.269.861-2.116 2.22-2.116 3.748v12.989c0 2.605 1.661.824 1.661-1.78"/><path d="m47.41 43.577v-10.378c0-.635.129-1.236.41-1.779-1.146.779-1.914 2.01-1.914 3.387v10.378c0 2.355 1.504.746 1.504-1.608"/><path d="m36.31 53.771c-.184-.862-.144-1.591-.204-2.296-.036-.713-.128-1.344-.306-2.202.408.175.729.505.941.889.224.384.329.822.362 1.253.038.866-.216 1.702-.793 2.356"/><path d="m25.979 47.38c.046 1.071-.121 2.01-.181 2.938-.086.938-.096 1.816-.063 2.88-.779-.761-1.015-1.923-.933-2.962.103-1.053.481-2.051 1.177-2.856"/><path d="m47.744 51.47c-.229-.853-.227-1.583-.324-2.284-.074-.711-.201-1.338-.422-2.187.417.155.754.467.986.84.243.371.372.804.428 1.233.083.866-.127 1.714-.668 2.398"/><path d="m34.407 10.762c.756-5.315-1.715-5.532-4.799-5.532-3.086 0-5.557.217-4.801 5.532.285 1.984 2.359 2.664 4.801 2.664s4.518-.678 4.799-2.664"/></g><path fill="#ffe8dc" d="m34.526 9.852c.797-5.603-1.744-5.833-4.92-5.833-3.174 0-5.713.23-4.916 5.833.297 2.082 2.42 2.792 4.916 2.792 2.5 0 4.623-.71 4.92-2.792"/><path fill="#e0a372" d="m15.255 53.612c-3.59-4.227-8.326-6.395-7.146-9.506 1.016-2.997 3.109-2.935 5.836-6.319l1.31 15.825"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.5 31.5c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 6.3 2.1 6.3 4.7l-2.6-25.1c0-2.4 3-4.4 6.9-4.4h.1c3.8 0 6.9 2 6.9 4.4l-1.2 24.6c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 5.3 2.1 5.3 4.7v2.7c.5-1.9 2.4-3.2 4.6-2.7 4.5 1.2 3.6 4.8 4.1 8.7.5 4.8 1.7 7.9 1.3 9.6-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3" fill="#fed0ac"/><g fill="#e0a372"><path d="m13.5 31.5c0-1.4.7-2.7 1.8-3.5-1.9 2.4-.6 19.4 1.7 24.2 1.2 2.4 5.3 1.7 8.3 3.1 3 1.4 3.7 3.8 6.4 4 2.4.3 5.2-1.4 8.3-2.1 3.6-.9 6.1-.6 8.3-2.6 1.1-1 1.6-2.5 3.8-3.2 1.6-.5 2.7-1 3.9-2.2 0 0 0 .1 0 .1-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3"/><path d="m22.6 5.3c-.9 3.8 2.5 38.4 2.5 38.4 0 2.5 1.3 1.5 1.3-1 0 0-3.6-32.5-2.6-37.3.4-2 1.8-2.6 4.2-3.3 0 0-4.6.2-5.4 3.2"/><path d="m37 42.3v-13c0-.7.1-1.4.5-2-1.3.9-2.1 2.2-2.1 3.7v13c-.1 2.7 1.6.9 1.6-1.7"/><path d="m47.4 43.6v-10.4c0-.6.1-1.2.4-1.8-1.1.8-1.9 2-1.9 3.4v10.4c0 2.3 1.5.7 1.5-1.6"/><path d="m34.4 10.8c.8-5.3-1.7-5.5-4.8-5.5-3.1 0-5.6.2-4.8 5.5.3 2 2.4 2.7 4.8 2.7s4.5-.8 4.8-2.7"/></g><path d="m34.5 9.9c.8-5.7-1.7-5.9-4.9-5.9-3.2 0-5.7.2-4.9 5.8.3 2.1 2.4 2.8 4.9 2.8 2.5 0 4.6-.7 4.9-2.7" fill="#ffe8dc"/><path d="m15.3 53.6c-3.6-4.2-8.3-6.4-7.1-9.5 1-3 3.1-2.9 5.8-6.3l1.3 15.8" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fd.svg
index 2ac5bf6..8ae9550 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m13.458 31.509c0-2.604 2.381-4.717 5.313-4.717h.098c2.936 0 6.281 2.112 6.281 4.717l-2.588-25.08c0-2.446 3.087-4.429 6.894-4.429h.064c3.807 0 6.891 1.983 6.891 4.429l-1.072 24.56c0-2.604 2.376-4.717 5.31-4.717h.1c2.934 0 5.311 2.112 5.311 4.717v2.737c.516-1.859 2.424-3.244 4.588-2.665 4.457 1.194 3.635 4.8 4.064 8.702.525 4.76 1.721 7.932 1.273 9.609-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.843-1.775-23.308-1.775-23.308"/><g fill="#b58360"><path d="m13.458 31.509c0-1.408.709-2.659 1.813-3.523-1.869 2.394-.646 19.363 1.674 24.21 1.164 2.43 5.258 1.688 8.275 3.111 2.971 1.4 3.73 3.752 6.418 4.047 2.377.26 5.165-1.355 8.298-2.117 3.555-.863 6.068-.6 8.299-2.609 1.066-.961 1.641-2.469 3.844-3.154 1.621-.506 2.719-.955 3.93-2.232-.01.045-.01.088-.023.135-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.323-4.845-1.776-23.31-1.776-23.31"/><path d="m22.64 5.286c-.941 3.824 2.51 38.426 2.51 38.426 0 2.486 1.33 1.469 1.33-1.021 0 0-3.613-32.473-2.596-37.34.424-2.025 1.844-2.628 4.154-3.252 0 0-4.668.228-5.398 3.191"/><path d="m37 42.27v-12.99c0-.701.141-1.368.455-1.968-1.269.861-2.116 2.221-2.116 3.748v12.99c0 2.605 1.661.824 1.661-1.78"/><path d="m47.41 43.577v-10.379c0-.634.129-1.235.41-1.778-1.146.778-1.914 2.01-1.914 3.386v10.379c0 2.355 1.504.746 1.504-1.608"/><path d="m36.31 53.771c-.184-.863-.144-1.592-.204-2.297-.036-.713-.128-1.344-.306-2.201.408.175.729.504.941.889.224.383.329.822.362 1.252.038.867-.216 1.703-.793 2.357"/><path d="m25.979 47.38c.046 1.071-.121 2.01-.181 2.938-.086.938-.096 1.815-.063 2.88-.779-.762-1.015-1.924-.933-2.963.103-1.052.481-2.05 1.177-2.855"/><path d="m47.744 51.47c-.229-.854-.227-1.584-.324-2.285-.074-.711-.201-1.338-.422-2.186.417.154.754.467.986.84.243.371.372.804.428 1.232.083.866-.127 1.715-.668 2.399"/><path d="m34.407 10.762c.756-5.315-1.715-5.532-4.799-5.532-3.086 0-5.557.217-4.801 5.532.285 1.984 2.359 2.664 4.801 2.664s4.518-.679 4.799-2.664"/></g><path opacity=".8" fill="#ffe8dc" d="m34.526 9.852c.797-5.603-1.744-5.833-4.92-5.833-3.174 0-5.713.23-4.916 5.833.297 2.082 2.42 2.792 4.916 2.792 2.5 0 4.623-.71 4.92-2.792"/><path fill="#b58360" d="m15.255 53.612c-3.59-4.227-8.326-6.395-7.146-9.506 1.016-2.998 3.109-2.936 5.836-6.32l1.31 15.826"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.5 31.5c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 6.3 2.1 6.3 4.7l-2.6-25.1c0-2.4 3-4.4 6.9-4.4h.1c3.8 0 6.9 2 6.9 4.4l-1.2 24.6c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 5.3 2.1 5.3 4.7v2.7c.5-1.9 2.4-3.2 4.6-2.7 4.5 1.2 3.6 4.8 4.1 8.7.5 4.8 1.7 7.9 1.3 9.6-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3" fill="#d6a57c"/><g fill="#b58360"><path d="m13.5 31.5c0-1.4.7-2.7 1.8-3.5-1.9 2.4-.6 19.4 1.7 24.2 1.2 2.4 5.3 1.7 8.3 3.1 3 1.4 3.7 3.8 6.4 4 2.4.3 5.2-1.4 8.3-2.1 3.6-.9 6.1-.6 8.3-2.6 1.1-1 1.6-2.5 3.8-3.2 1.6-.5 2.7-1 3.9-2.2 0 0 0 .1 0 .1-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3"/><path d="m22.6 5.3c-.9 3.8 2.5 38.4 2.5 38.4 0 2.5 1.3 1.5 1.3-1 0 0-3.6-32.5-2.6-37.3.4-2 1.8-2.6 4.2-3.3 0 0-4.6.2-5.4 3.2"/><path d="m37 42.3v-13c0-.7.1-1.4.5-2-1.3.9-2.1 2.2-2.1 3.7v13c-.1 2.7 1.6.9 1.6-1.7"/><path d="m47.4 43.6v-10.4c0-.6.1-1.2.4-1.8-1.1.8-1.9 2-1.9 3.4v10.4c0 2.3 1.5.7 1.5-1.6"/><path d="m34.4 10.8c.8-5.3-1.7-5.5-4.8-5.5-3.1 0-5.6.2-4.8 5.5.3 2 2.4 2.7 4.8 2.7s4.5-.8 4.8-2.7"/></g><path d="m34.5 9.9c.8-5.7-1.7-5.9-4.9-5.9-3.2 0-5.7.2-4.9 5.8.3 2.1 2.4 2.8 4.9 2.8 2.5 0 4.6-.7 4.9-2.7" fill="#ffe8dc"/><path d="m15.3 53.6c-3.6-4.2-8.3-6.4-7.1-9.5 1-3 3.1-2.9 5.8-6.3l1.3 15.8" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fe.svg
index a09d93d..b571c15 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m13.458 31.509c0-2.604 2.381-4.717 5.313-4.717h.098c2.936 0 6.281 2.113 6.281 4.717l-2.588-25.08c0-2.446 3.087-4.429 6.894-4.429h.064c3.807 0 6.891 1.983 6.891 4.429l-1.072 24.561c0-2.605 2.376-4.718 5.31-4.718h.1c2.934 0 5.311 2.112 5.311 4.718v2.736c.516-1.859 2.424-3.244 4.588-2.664 4.457 1.193 3.635 4.799 4.064 8.701.525 4.76 1.721 7.932 1.273 9.609-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.843-1.775-23.308-1.775-23.308"/><g fill="#935e3e"><path d="m13.458 31.509c0-1.408.709-2.658 1.813-3.523-1.869 2.395-.646 19.363 1.674 24.21 1.164 2.43 5.258 1.688 8.275 3.111 2.971 1.4 3.73 3.752 6.418 4.047 2.377.26 5.165-1.355 8.298-2.117 3.555-.863 6.068-.6 8.299-2.609 1.066-.961 1.641-2.469 3.844-3.154 1.621-.506 2.719-.955 3.93-2.232-.01.045-.01.088-.023.135-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.323-4.845-1.776-23.31-1.776-23.31"/><path d="m22.64 5.286c-.941 3.824 2.51 38.426 2.51 38.426 0 2.486 1.33 1.469 1.33-1.021 0 0-3.613-32.473-2.596-37.34.424-2.025 1.844-2.628 4.154-3.252 0 0-4.668.228-5.398 3.191"/><path d="m37 42.27v-12.991c0-.701.141-1.367.455-1.968-1.269.862-2.116 2.222-2.116 3.749v12.989c0 2.605 1.661.824 1.661-1.779"/><path d="m47.41 43.577v-10.379c0-.633.129-1.234.41-1.777-1.146.777-1.914 2.01-1.914 3.385v10.379c0 2.355 1.504.746 1.504-1.608"/><path d="m36.31 53.771c-.184-.863-.144-1.592-.204-2.296-.036-.713-.128-1.345-.306-2.202.408.176.729.504.941.889.224.383.329.822.362 1.253.038.867-.216 1.703-.793 2.356"/><path d="m25.979 47.38c.046 1.072-.121 2.01-.181 2.939-.086.938-.096 1.814-.063 2.879-.779-.761-1.015-1.923-.933-2.962.103-1.053.481-2.051 1.177-2.856"/><path d="m47.744 51.47c-.229-.853-.227-1.584-.324-2.285-.074-.71-.201-1.337-.422-2.186.417.154.754.467.986.84.243.371.372.805.428 1.232.083.867-.127 1.715-.668 2.399"/><path d="m34.407 10.762c.756-5.315-1.715-5.532-4.799-5.532-3.086 0-5.557.217-4.801 5.532.285 1.984 2.359 2.664 4.801 2.664s4.518-.679 4.799-2.664"/></g><path opacity=".8" fill="#ffe8dc" d="m34.526 9.852c.797-5.603-1.744-5.833-4.92-5.833-3.174 0-5.713.23-4.916 5.833.297 2.082 2.42 2.792 4.916 2.792 2.5 0 4.623-.71 4.92-2.792"/><path fill="#935e3e" d="m15.255 53.612c-3.59-4.227-8.326-6.395-7.146-9.506 1.016-2.998 3.109-2.936 5.836-6.32l1.31 15.826"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.5 31.5c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 6.3 2.1 6.3 4.7l-2.6-25.1c0-2.4 3-4.4 6.9-4.4h.1c3.8 0 6.9 2 6.9 4.4l-1.2 24.6c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 5.3 2.1 5.3 4.7v2.7c.5-1.9 2.4-3.2 4.6-2.7 4.5 1.2 3.6 4.8 4.1 8.7.5 4.8 1.7 7.9 1.3 9.6-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3" fill="#b47d56"/><g fill="#935e3e"><path d="m13.5 31.5c0-1.4.7-2.7 1.8-3.5-1.9 2.4-.6 19.4 1.7 24.2 1.2 2.4 5.3 1.7 8.3 3.1 3 1.4 3.7 3.8 6.4 4 2.4.3 5.2-1.4 8.3-2.1 3.6-.9 6.1-.6 8.3-2.6 1.1-1 1.6-2.5 3.8-3.2 1.6-.5 2.7-1 3.9-2.2 0 0 0 .1 0 .1-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3"/><path d="m22.6 5.3c-.9 3.8 2.5 38.4 2.5 38.4 0 2.5 1.3 1.5 1.3-1 0 0-3.6-32.5-2.6-37.3.4-2 1.8-2.6 4.2-3.3 0 0-4.6.2-5.4 3.2"/><path d="m37 42.3v-13c0-.7.1-1.4.5-2-1.3.9-2.1 2.2-2.1 3.7v13c-.1 2.7 1.6.9 1.6-1.7"/><path d="m47.4 43.6v-10.4c0-.6.1-1.2.4-1.8-1.1.8-1.9 2-1.9 3.4v10.4c0 2.3 1.5.7 1.5-1.6"/><path d="m34.4 10.8c.8-5.3-1.7-5.5-4.8-5.5-3.1 0-5.6.2-4.8 5.5.3 2 2.4 2.7 4.8 2.7s4.5-.8 4.8-2.7"/></g><path d="m34.5 9.9c.8-5.7-1.7-5.9-4.9-5.9-3.2 0-5.7.2-4.9 5.8.3 2.1 2.4 2.8 4.9 2.8 2.5 0 4.6-.7 4.9-2.7" fill="#ffe8dc"/><path d="m15.3 53.6c-3.6-4.2-8.3-6.4-7.1-9.5 1-3 3.1-2.9 5.8-6.3l1.3 15.8" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3ff.svg
index 2727755..63062da 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f595-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m13.458 31.509c0-2.604 2.381-4.717 5.313-4.717h.098c2.936 0 6.281 2.112 6.281 4.717l-2.588-25.08c0-2.445 3.087-4.429 6.894-4.429h.064c3.807 0 6.891 1.983 6.891 4.429l-1.072 24.56c0-2.604 2.376-4.717 5.31-4.717h.1c2.934 0 5.311 2.112 5.311 4.717v2.738c.516-1.86 2.424-3.245 4.588-2.666 4.457 1.194 3.635 4.8 4.064 8.703.525 4.758 1.721 7.93 1.273 9.607-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.843-1.775-23.307-1.775-23.307"/><g fill="#705041"><path d="m13.458 31.509c0-1.408.709-2.659 1.813-3.523-1.869 2.394-.646 19.362 1.674 24.21 1.164 2.43 5.258 1.688 8.275 3.111 2.971 1.4 3.73 3.752 6.418 4.047 2.377.26 5.165-1.355 8.298-2.117 3.555-.863 6.068-.6 8.299-2.609 1.066-.961 1.641-2.469 3.844-3.154 1.621-.506 2.719-.955 3.93-2.232-.01.045-.01.088-.023.135-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.898 2.594-8.275 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.323-4.845-1.776-23.309-1.776-23.309"/><path d="m22.64 5.287c-.941 3.824 2.51 38.424 2.51 38.424 0 2.486 1.33 1.469 1.33-1.02 0 0-3.613-32.473-2.596-37.34.424-2.025 1.844-2.628 4.154-3.252 0 0-4.668.229-5.398 3.192"/><path d="m37 42.27v-12.989c0-.701.141-1.368.455-1.968-1.269.861-2.116 2.221-2.116 3.748v12.988c0 2.605 1.661.824 1.661-1.779"/><path d="m47.41 43.576v-10.377c0-.634.129-1.236.41-1.779-1.146.778-1.914 2-1.914 3.386v10.377c0 2.356 1.504.747 1.504-1.607"/><path d="m36.31 53.77c-.184-.861-.144-1.59-.204-2.295-.036-.713-.128-1.344-.306-2.203.408.176.729.506.941.889.224.385.329.822.362 1.254.038.866-.216 1.702-.793 2.355"/><path d="m25.979 47.38c.046 1.072-.121 2.01-.181 2.939-.086.938-.096 1.816-.063 2.879-.779-.76-1.015-1.922-.933-2.961.103-1.054.481-2.052 1.177-2.857"/><path d="m47.744 51.47c-.229-.852-.227-1.582-.324-2.283-.074-.711-.201-1.338-.422-2.188.417.156.754.467.986.84.243.371.372.805.428 1.234.083.866-.127 1.713-.668 2.397"/><path d="m34.407 10.762c.756-5.315-1.715-5.532-4.799-5.532-3.086 0-5.557.217-4.801 5.532.285 1.984 2.359 2.664 4.801 2.664s4.518-.678 4.799-2.664"/></g><path opacity=".8" fill="#ffe8dc" d="m34.526 9.852c.797-5.603-1.744-5.833-4.92-5.833-3.174 0-5.713.23-4.916 5.833.297 2.082 2.42 2.792 4.916 2.792 2.5 0 4.623-.71 4.92-2.792"/><path fill="#705041" d="m15.255 53.611c-3.59-4.227-8.326-6.395-7.146-9.506 1.016-2.996 3.109-2.934 5.836-6.318l1.31 15.824"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.5 31.5c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 6.3 2.1 6.3 4.7l-2.6-25.1c0-2.4 3-4.4 6.9-4.4h.1c3.8 0 6.9 2 6.9 4.4l-1.2 24.6c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 5.3 2.1 5.3 4.7v2.7c.5-1.9 2.4-3.2 4.6-2.7 4.5 1.2 3.6 4.8 4.1 8.7.5 4.8 1.7 7.9 1.3 9.6-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3" fill="#8a6859"/><g fill="#705041"><path d="m13.5 31.5c0-1.4.7-2.7 1.8-3.5-1.9 2.4-.6 19.4 1.7 24.2 1.2 2.4 5.3 1.7 8.3 3.1 3 1.4 3.7 3.8 6.4 4 2.4.3 5.2-1.4 8.3-2.1 3.6-.9 6.1-.6 8.3-2.6 1.1-1 1.6-2.5 3.8-3.2 1.6-.5 2.7-1 3.9-2.2 0 0 0 .1 0 .1-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3"/><path d="m22.6 5.3c-.9 3.8 2.5 38.4 2.5 38.4 0 2.5 1.3 1.5 1.3-1 0 0-3.6-32.5-2.6-37.3.4-2 1.8-2.6 4.2-3.3 0 0-4.6.2-5.4 3.2"/><path d="m37 42.3v-13c0-.7.1-1.4.5-2-1.3.9-2.1 2.2-2.1 3.7v13c-.1 2.7 1.6.9 1.6-1.7"/><path d="m47.4 43.6v-10.4c0-.6.1-1.2.4-1.8-1.1.8-1.9 2-1.9 3.4v10.4c0 2.3 1.5.7 1.5-1.6"/><path d="m34.4 10.8c.8-5.3-1.7-5.5-4.8-5.5-3.1 0-5.6.2-4.8 5.5.3 2 2.4 2.7 4.8 2.7s4.5-.8 4.8-2.7"/></g><path d="m34.5 9.9c.8-5.7-1.7-5.9-4.9-5.9-3.2 0-5.7.2-4.9 5.8.3 2.1 2.4 2.8 4.9 2.8 2.5 0 4.6-.7 4.9-2.7" fill="#ffe8dc"/><path d="m15.3 53.6c-3.6-4.2-8.3-6.4-7.1-9.5 1-3 3.1-2.9 5.8-6.3l1.3 15.8" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f595.svg b/build/js/jsxc/lib/emojione/assets/svg/1f595.svg
index 17fac95..a424791 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f595.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f595.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m13.455 31.508c0-2.604 2.381-4.717 5.313-4.717h.098c2.936 0 6.281 2.112 6.281 4.717l-2.588-25.08c0-2.445 3.088-4.429 6.895-4.429h.064c3.807 0 6.891 1.983 6.891 4.429l-1.072 24.56c0-2.604 2.376-4.717 5.31-4.717h.1c2.934 0 5.311 2.112 5.311 4.717v2.737c.516-1.859 2.424-3.244 4.588-2.665 4.457 1.194 3.635 4.8 4.064 8.702.525 4.76 1.721 7.932 1.273 9.609-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.899 2.594-8.276 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.843-1.775-23.308-1.775-23.308"/><g fill="#eba352"><path d="m13.455 31.508c0-1.408.709-2.659 1.813-3.523-1.869 2.394-.646 19.363 1.674 24.21 1.164 2.43 5.258 1.688 8.275 3.111 2.971 1.4 3.73 3.752 6.418 4.047 2.377.26 5.166-1.355 8.298-2.117 3.555-.863 6.068-.6 8.299-2.609 1.066-.961 1.641-2.469 3.844-3.154 1.621-.506 2.719-.955 3.93-2.232-.01.045-.01.088-.023.135-.98 3.666-3.691 3.227-5.123 4.23-1.424.998-1.795 2.59-2.861 3.551-2.229 2.01-6.242 1.625-9.798 2.488-3.133.762-5.899 2.594-8.276 2.334-2.688-.297-3.449-2.646-6.418-4.047-3.02-1.422-7.111-.682-8.277-3.111-2.322-4.845-1.775-23.31-1.775-23.31"/><path d="m22.636 5.285c-.941 3.824 2.51 38.426 2.51 38.426 0 2.486 1.33 1.469 1.33-1.021 0 0-3.613-32.473-2.596-37.34.424-2.025 1.844-2.628 4.154-3.252.001 0-4.667.228-5.398 3.191"/><path d="m36.997 42.27v-12.99c0-.701.141-1.368.455-1.968-1.269.861-2.116 2.221-2.116 3.748v12.989c0 2.605 1.661.824 1.661-1.779"/><path d="m47.41 43.576v-10.379c0-.634.129-1.235.41-1.778-1.146.778-1.914 2.01-1.914 3.386v10.379c0 2.355 1.504.746 1.504-1.608"/><path d="m36.31 53.77c-.184-.863-.144-1.592-.204-2.296-.036-.713-.128-1.345-.306-2.202.408.176.729.504.941.889.224.383.329.822.362 1.253.038.867-.216 1.703-.793 2.356"/><path d="m25.976 47.38c.046 1.072-.121 2.01-.181 2.939-.086.938-.096 1.814-.063 2.879-.779-.761-1.015-1.923-.933-2.962.103-1.053.481-2.051 1.177-2.856"/><path d="m47.741 51.47c-.229-.853-.227-1.584-.324-2.285-.074-.71-.201-1.337-.422-2.186.417.154.754.467.986.84.243.371.372.805.428 1.232.083.867-.127 1.715-.668 2.399"/><path d="m34.404 10.761c.756-5.315-1.715-5.532-4.799-5.532-3.086 0-5.557.217-4.801 5.532.285 1.984 2.359 2.664 4.801 2.664s4.518-.679 4.799-2.664"/></g><path fill="#ffe8dc" d="m34.523 9.851c.797-5.603-1.745-5.833-4.92-5.833-3.174 0-5.713.23-4.916 5.833.297 2.082 2.42 2.792 4.916 2.792 2.5 0 4.624-.71 4.92-2.792"/><path fill="#eba352" d="m15.251 53.611c-3.59-4.227-8.326-6.395-7.146-9.506 1.016-2.998 3.109-2.936 5.836-6.32l1.31 15.826"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.5 31.5c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 6.3 2.1 6.3 4.7l-2.6-25.1c0-2.4 3-4.4 6.9-4.4h.1c3.8 0 6.9 2 6.9 4.4l-1.2 24.6c0-2.6 2.4-4.7 5.3-4.7h.1c2.9 0 5.3 2.1 5.3 4.7v2.7c.5-1.9 2.4-3.2 4.6-2.7 4.5 1.2 3.6 4.8 4.1 8.7.5 4.8 1.7 7.9 1.3 9.6-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3" fill="#ffdd67"/><g fill="#eba352"><path d="m13.5 31.5c0-1.4.7-2.7 1.8-3.5-1.9 2.4-.6 19.4 1.7 24.2 1.2 2.4 5.3 1.7 8.3 3.1 3 1.4 3.7 3.8 6.4 4 2.4.3 5.2-1.4 8.3-2.1 3.6-.9 6.1-.6 8.3-2.6 1.1-1 1.6-2.5 3.8-3.2 1.6-.5 2.7-1 3.9-2.2 0 0 0 .1 0 .1-1 3.7-3.7 3.2-5.1 4.2-1.4 1-1.8 2.6-2.9 3.6-2.2 2-6.2 1.6-9.8 2.5-3.1.8-5.9 2.6-8.3 2.3-2.7-.3-3.4-2.6-6.4-4-3-1.4-7.1-.7-8.3-3.1-2.3-4.8-1.7-23.3-1.7-23.3"/><path d="m22.6 5.3c-.9 3.8 2.5 38.4 2.5 38.4 0 2.5 1.3 1.5 1.3-1 0 0-3.6-32.5-2.6-37.3.4-2 1.8-2.6 4.2-3.3 0 0-4.6.2-5.4 3.2"/><path d="m37 42.3v-13c0-.7.1-1.4.5-2-1.3.9-2.1 2.2-2.1 3.7v13c-.1 2.7 1.6.9 1.6-1.7"/><path d="m47.4 43.6v-10.4c0-.6.1-1.2.4-1.8-1.1.8-1.9 2-1.9 3.4v10.4c0 2.3 1.5.7 1.5-1.6"/><path d="m34.4 10.8c.8-5.3-1.7-5.5-4.8-5.5-3.1 0-5.6.2-4.8 5.5.3 2 2.4 2.7 4.8 2.7s4.5-.8 4.8-2.7"/></g><path d="m34.5 9.9c.8-5.7-1.7-5.9-4.9-5.9-3.2 0-5.7.2-4.9 5.8.3 2.1 2.4 2.8 4.9 2.8 2.5 0 4.6-.7 4.9-2.7" fill="#ffe8dc"/><path d="m15.2 53.6c-3.6-4.2-8.3-6.4-7.1-9.5 1-3 3.1-2.9 5.8-6.3l1.3 15.8" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fb.svg
index 4b4d750..73de3c3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m31.15 43.48l7.657 1.829 7.604-32.687c.51-2.189-.777-4.424-2.883-4.928l-.023-.006c-2.107-.502-4.24.914-4.766 3.17l-7.589 32.622"/><path d="m22.1 41.32l9.05 2.162 8.243-35.434c.623-2.674-.896-5.33-3.394-5.926-2.496-.598-5.03 1.09-5.651 3.764l-8.243 35.434"/><path d="m20.307 42.781l8.446-2.201-9.812-33.01c-.685-2.309-3.128-3.684-5.456-3.076l-.014.004c-2.329.605-3.661 2.967-2.976 5.273l9.812 33.01"/><path d="m6.874 11.544c-2.167.564-3.333 2.738-2.696 4.881l8.43 28.363 7.7-2.01-8.43-28.364c-.636-2.14-2.835-3.439-5-2.873"/></g><g fill="#e6b796"><path d="m43.525 7.695l-.023-.006c-.227-.053-.459-.076-.686-.088 1.707.768 2.686 2.746 2.23 4.697l-7.604 32.683 1.361.328 7.604-32.687c.511-2.189-.776-4.423-2.882-4.927"/><path d="m35.997 2.121c-.232-.057-.466-.074-.698-.09 2.09.873 3.293 3.266 2.73 5.689l-8.243 35.434 1.361.326 8.243-35.434c.624-2.673-.896-5.33-3.393-5.925"/><path d="m13.485 4.492l-.014.004c-.247.064-.478.156-.701.258 2.085-.174 4.1 1.133 4.712 3.193l9.811 33.01 1.461-.381-9.813-33.01c-.685-2.309-3.128-3.684-5.456-3.076"/><path d="m6.874 11.544c-.251.064-.483.156-.706.262 1.904-.129 3.689 1.098 4.251 2.99l8.43 28.366 1.459-.381-8.43-28.364c-.636-2.14-2.835-3.439-5-2.873"/></g><path fill="#ffe1bd" d="m59.688 29.23c-1.537-3.07-6.496-2.918-11.553 2.713-3.529 3.936-4.279 5.16-7.822 5.156v-4.121c0 0-7.596-5.745-22.717-3.123 0 0-8.609 1.227-8.609 5.76 0 0-1.462 11.12 1.576 18.1 4.527 10.41 27.774 13.154 35.11-4.563 1.459-3.523 4.414-6.142 7.06-9.438 3.188-3.974 8.637-7.12 6.954-10.488"/><g fill="#e6b796"><path d="m59.688 29.23c-.291-.582-.709-1.047-1.223-1.383.082.125.164.248.234.387 1.684 3.368-3.766 6.516-6.955 10.487-2.648 3.299-5.604 5.919-7.06 9.44-6.359 15.359-24.67 15.336-32.381 8.275 7.01 8.03 26.721 8.775 33.368-7.279 1.459-3.523 4.414-6.142 7.06-9.438 3.189-3.975 8.638-7.121 6.955-10.489"/><path d="m23.09 50.14c0-6.098 4.554-11.05 10.217-11.192-1-.439-2.087-.701-3.234-.701-4.711 0-8.531 4.088-8.531 9.132 0 2.205.738 4.217 1.951 5.795-.254-.968-.403-1.98-.403-3.034"/><path d="m22.853 46.853c.362-2.895-1.328-5.708-4.04-6.491-.432-.125-.862-.188-1.287-.201.99-.854 2.332-1.207 3.65-.826 2.191.633 3.486 3.049 2.896 5.397-.212.849-.646 1.574-1.218 2.121"/><path d="m40.59 33.17c-6.464-4.225-23.298-4.391-30.406 0 6.325-7.563 26.16-5.852 30.406 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m31.1 43.5l7.7 1.8 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9-2.1-.5-4.2.9-4.8 3.2l-7.6 32.6"/><path d="m22.1 41.3l9 2.2 8.3-35.5c.6-2.6-.9-5.3-3.4-5.9-2.5-.6-5 1.1-5.7 3.8l-8.2 35.4"/><path d="m20.3 42.8l8.4-2.2-9.8-33c-.7-2.3-3.1-3.7-5.5-3.1-2.3.6-3.7 3-3 5.3l9.9 33"/><path d="m6.9 11.5c-2.2.6-3.3 2.7-2.7 4.9l8.4 28.4 7.7-2-8.4-28.4c-.7-2.1-2.9-3.4-5-2.9"/></g><g fill="#e6b796"><path d="m43.5 7.7c-.2-.1-.5-.1-.7-.1 1.7.8 2.7 2.7 2.2 4.7l-7.6 32.7 1.4.3 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9"/><path d="m36 2.1c-.2 0-.5-.1-.7-.1 2.1.9 3.3 3.3 2.7 5.7l-4.7 20.1.9 2.5 5.2-22.3c.6-2.6-.9-5.3-3.4-5.9"/><path d="m13.5 4.5c-.3.1-.5.2-.7.3 2.1-.2 4.1 1.1 4.7 3.2l5.7 19.3 2.1 1.9-6.4-21.6c-.6-2.3-3.1-3.7-5.4-3.1"/><path d="m6.9 11.5c-.3.1-.5.2-.7.3 1.9-.1 3.7 1.1 4.3 3l4 13.6 2.1 1.7-4.6-15.6c-.8-2.2-3-3.5-5.1-3"/></g><path d="m59.7 29.2c-1.5-3.1-6.5-2.9-11.6 2.7-3.5 3.9-5.1 5.3-8.6 5.3l.8-4.5-30.9 1.2c0 0-1.8 12.8 1.2 19.8 4.5 10.4 27.8 13.2 35.1-4.6 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m59.7 29.2c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7 10.5-2.6 3.3-5.6 5.9-7.1 9.4-6.3 15.4-24.6 15.4-32.3 8.3 7 8 26.7 8.8 33.4-7.3 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5"/><path d="m40.7 37.1c-6.5-2.4-18 2.1-16.4 13.7 0-10.9 10.1-13.6 15.5-13.6.7 0 .9-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fc.svg
index b960f0c..acd4f53 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m31.15 43.479l7.657 1.83 7.604-32.688c.51-2.189-.777-4.424-2.883-4.928l-.023-.006c-2.107-.502-4.24.914-4.766 3.17l-7.589 32.622"/><path d="m22.1 41.32l9.05 2.162 8.243-35.434c.623-2.674-.896-5.33-3.394-5.926-2.496-.598-5.03 1.09-5.651 3.764l-8.243 35.434"/><path d="m20.307 42.78l8.446-2.201-9.813-33.01c-.685-2.309-3.128-3.684-5.456-3.076l-.014.004c-2.329.605-3.661 2.967-2.976 5.273l9.813 33.01"/><path d="m6.873 11.544c-2.167.564-3.333 2.738-2.696 4.881l8.43 28.363 7.7-2.01-8.43-28.363c-.636-2.141-2.834-3.439-5-2.873"/></g><g fill="#e0a372"><path d="m43.525 7.694l-.023-.006c-.227-.053-.459-.076-.686-.088 1.707.768 2.686 2.746 2.23 4.697l-7.604 32.684 1.361.328 7.604-32.688c.511-2.188-.776-4.423-2.882-4.927"/><path d="m35.997 2.12c-.232-.057-.466-.074-.698-.09 2.09.873 3.293 3.266 2.73 5.689l-8.243 35.434 1.361.326 8.243-35.434c.624-2.673-.896-5.329-3.393-5.925"/><path d="m13.484 4.491l-.014.004c-.247.064-.478.156-.701.258 2.085-.174 4.1 1.133 4.712 3.193l9.811 33.01 1.461-.381-9.813-33.01c-.684-2.308-3.127-3.683-5.456-3.076"/><path d="m6.873 11.544c-.251.064-.483.156-.706.262 1.904-.129 3.689 1.098 4.251 2.99l8.43 28.365 1.459-.381-8.43-28.363c-.636-2.141-2.834-3.439-5-2.873"/></g><path fill="#fed0ac" d="m59.688 29.23c-1.537-3.07-6.496-2.918-11.553 2.713-3.529 3.936-4.279 5.16-7.822 5.156v-4.121c0 0-7.597-5.744-22.718-3.123 0 0-8.609 1.227-8.609 5.76 0 0-1.462 11.12 1.576 18.11 4.527 10.41 27.774 13.154 35.11-4.563 1.459-3.523 4.414-6.143 7.06-9.439 3.189-3.974 8.638-7.12 6.955-10.488"/><g fill="#e0a372"><path d="m59.688 29.23c-.291-.582-.709-1.047-1.223-1.383.082.125.164.248.234.387 1.684 3.367-3.766 6.516-6.955 10.486-2.648 3.299-5.604 5.92-7.06 9.441-6.359 15.359-24.671 15.336-32.382 8.275 7.01 8.03 26.722 8.775 33.368-7.279 1.459-3.523 4.414-6.143 7.06-9.439 3.19-3.974 8.639-7.12 6.956-10.488"/><path d="m23.09 50.14c0-6.098 4.554-11.05 10.218-11.193-1-.439-2.088-.701-3.234-.701-4.711 0-8.531 4.088-8.531 9.133 0 2.205.738 4.217 1.951 5.795-.256-.968-.404-1.98-.404-3.034"/><path d="m22.853 46.853c.362-2.895-1.328-5.709-4.04-6.492-.432-.125-.862-.188-1.287-.201.99-.854 2.332-1.207 3.65-.826 2.191.633 3.486 3.049 2.896 5.398-.213.849-.646 1.574-1.218 2.121"/><path d="m40.59 33.17c-6.464-4.225-23.299-4.391-30.406 0 6.325-7.563 26.16-5.852 30.406 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m31.1 43.5l7.7 1.8 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9-2.1-.5-4.2.9-4.8 3.2l-7.6 32.6"/><path d="m22.1 41.3l9 2.2 8.3-35.5c.6-2.6-.9-5.3-3.4-5.9-2.5-.6-5 1.1-5.7 3.8l-8.2 35.4"/><path d="m20.3 42.8l8.4-2.2-9.8-33c-.7-2.3-3.1-3.7-5.5-3.1-2.3.6-3.7 3-3 5.3l9.9 33"/><path d="m6.9 11.5c-2.2.6-3.3 2.7-2.7 4.9l8.4 28.4 7.7-2-8.4-28.4c-.7-2.1-2.9-3.4-5-2.9"/></g><g fill="#e0a372"><path d="m43.5 7.7c-.2-.1-.5-.1-.7-.1 1.7.8 2.7 2.7 2.2 4.7l-7.6 32.7 1.4.3 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9"/><path d="m36 2.1c-.2 0-.5-.1-.7-.1 2.1.9 3.3 3.3 2.7 5.7l-4.7 20.1.9 2.5 5.2-22.3c.6-2.6-.9-5.3-3.4-5.9"/><path d="m13.5 4.5c-.3.1-.5.2-.7.3 2.1-.2 4.1 1.1 4.7 3.2l5.7 19.3 2.1 1.9-6.4-21.6c-.6-2.3-3.1-3.7-5.4-3.1"/><path d="m6.9 11.5c-.3.1-.5.2-.7.3 1.9-.1 3.7 1.1 4.3 3l4 13.6 2.1 1.7-4.6-15.6c-.8-2.2-3-3.5-5.1-3"/></g><path d="m59.7 29.2c-1.5-3.1-6.5-2.9-11.6 2.7-3.5 3.9-5.1 5.3-8.6 5.3l.8-4.5-30.9 1.2c0 0-1.8 12.8 1.2 19.8 4.5 10.4 27.8 13.2 35.1-4.6 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m59.7 29.2c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7 10.5-2.6 3.3-5.6 5.9-7.1 9.4-6.3 15.4-24.6 15.4-32.3 8.3 7 8 26.7 8.8 33.4-7.3 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5"/><path d="m40.7 37.1c-6.5-2.4-18 2.1-16.4 13.7 0-10.9 10.1-13.6 15.5-13.6.7 0 .9-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fd.svg
index df36f62..ab30859 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m31.15 43.479l7.657 1.83 7.604-32.688c.51-2.189-.777-4.424-2.883-4.928l-.023-.006c-2.107-.502-4.24.914-4.766 3.17l-7.589 32.622"/><path d="m22.1 41.32l9.05 2.162 8.243-35.434c.623-2.674-.896-5.33-3.394-5.926-2.496-.598-5.03 1.09-5.651 3.764l-8.243 35.434"/><path d="m20.307 42.78l8.446-2.201-9.813-33.01c-.685-2.309-3.128-3.684-5.456-3.076l-.014.004c-2.329.605-3.661 2.967-2.976 5.273l9.813 33.01"/><path d="m6.873 11.544c-2.167.564-3.333 2.738-2.696 4.881l8.43 28.363 7.7-2.01-8.43-28.363c-.636-2.141-2.834-3.439-5-2.873"/></g><g fill="#b58360"><path d="m43.525 7.694l-.023-.006c-.227-.053-.459-.076-.686-.088 1.707.768 2.686 2.746 2.23 4.697l-7.604 32.684 1.361.328 7.604-32.688c.511-2.188-.776-4.423-2.882-4.927"/><path d="m35.997 2.12c-.232-.057-.466-.074-.698-.09 2.09.873 3.293 3.266 2.73 5.689l-8.243 35.434 1.361.326 8.243-35.434c.624-2.673-.896-5.329-3.393-5.925"/><path d="m13.484 4.491l-.014.004c-.247.064-.478.156-.701.258 2.085-.174 4.1 1.133 4.712 3.193l9.811 33.01 1.461-.381-9.813-33.01c-.684-2.308-3.127-3.683-5.456-3.076"/><path d="m6.873 11.544c-.251.064-.483.156-.706.262 1.904-.129 3.689 1.098 4.251 2.99l8.43 28.365 1.459-.381-8.43-28.363c-.636-2.141-2.834-3.439-5-2.873"/></g><path fill="#d6a57c" d="m59.688 29.23c-1.537-3.07-6.496-2.918-11.553 2.713-3.529 3.936-4.279 5.16-7.822 5.156v-4.121c0 0-7.597-5.744-22.718-3.123 0 0-8.609 1.227-8.609 5.76 0 0-1.462 11.12 1.576 18.11 4.527 10.41 27.774 13.154 35.11-4.563 1.459-3.523 4.414-6.143 7.06-9.439 3.189-3.974 8.638-7.12 6.955-10.488"/><g fill="#b58360"><path d="m59.688 29.23c-.291-.582-.709-1.047-1.223-1.383.082.125.164.248.234.387 1.684 3.367-3.766 6.516-6.955 10.486-2.648 3.299-5.604 5.92-7.06 9.441-6.359 15.359-24.671 15.336-32.382 8.275 7.01 8.03 26.722 8.775 33.368-7.279 1.459-3.523 4.414-6.143 7.06-9.439 3.19-3.974 8.639-7.12 6.956-10.488"/><path d="m23.09 50.14c0-6.098 4.554-11.05 10.218-11.193-1-.439-2.088-.701-3.234-.701-4.711 0-8.531 4.088-8.531 9.133 0 2.205.738 4.217 1.951 5.795-.256-.968-.404-1.98-.404-3.034"/><path d="m22.853 46.853c.362-2.895-1.328-5.709-4.04-6.492-.432-.125-.862-.188-1.287-.201.99-.854 2.332-1.207 3.65-.826 2.191.633 3.486 3.049 2.896 5.398-.213.849-.646 1.574-1.218 2.121"/><path d="m40.59 33.17c-6.464-4.225-23.299-4.391-30.406 0 6.325-7.563 26.16-5.852 30.406 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m31.1 43.5l7.7 1.8 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9-2.1-.5-4.2.9-4.8 3.2l-7.6 32.6"/><path d="m22.1 41.3l9 2.2 8.3-35.5c.6-2.6-.9-5.3-3.4-5.9-2.5-.6-5 1.1-5.7 3.8l-8.2 35.4"/><path d="m20.3 42.8l8.4-2.2-9.8-33c-.7-2.3-3.1-3.7-5.5-3.1-2.3.6-3.7 3-3 5.3l9.9 33"/><path d="m6.9 11.5c-2.2.6-3.3 2.7-2.7 4.9l8.4 28.4 7.7-2-8.4-28.4c-.7-2.1-2.9-3.4-5-2.9"/></g><g fill="#b58360"><path d="m43.5 7.7c-.2-.1-.5-.1-.7-.1 1.7.8 2.7 2.7 2.2 4.7l-7.6 32.7 1.4.3 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9"/><path d="m36 2.1c-.2 0-.5-.1-.7-.1 2.1.9 3.3 3.3 2.7 5.7l-4.7 20.1.9 2.5 5.2-22.3c.6-2.6-.9-5.3-3.4-5.9"/><path d="m13.5 4.5c-.3.1-.5.2-.7.3 2.1-.2 4.1 1.1 4.7 3.2l5.7 19.3 2.1 1.9-6.4-21.6c-.6-2.3-3.1-3.7-5.4-3.1"/><path d="m6.9 11.5c-.3.1-.5.2-.7.3 1.9-.1 3.7 1.1 4.3 3l4 13.6 2.1 1.7-4.6-15.6c-.8-2.2-3-3.5-5.1-3"/></g><path d="m59.7 29.2c-1.5-3.1-6.5-2.9-11.6 2.7-3.5 3.9-5.1 5.3-8.6 5.3l.8-4.5-30.9 1.2c0 0-1.8 12.8 1.2 19.8 4.5 10.4 27.8 13.2 35.1-4.6 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5" fill="#d6a57c"/><g fill="#b58360"><path d="m59.7 29.2c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7 10.5-2.6 3.3-5.6 5.9-7.1 9.4-6.3 15.4-24.6 15.4-32.3 8.3 7 8 26.7 8.8 33.4-7.3 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5"/><path d="m40.7 37.1c-6.5-2.4-18 2.1-16.4 13.7 0-10.9 10.1-13.6 15.5-13.6.7 0 .9-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fe.svg
index 811c7b4..6104d99 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m31.15 43.48l7.657 1.828 7.604-32.686c.51-2.189-.777-4.424-2.883-4.928l-.023-.006c-2.107-.502-4.24.914-4.766 3.17l-7.589 32.622"/><path d="m22.1 41.32l9.05 2.162 8.243-35.434c.623-2.674-.896-5.33-3.394-5.926-2.496-.598-5.03 1.09-5.651 3.764l-8.243 35.434"/><path d="m20.307 42.781l8.446-2.201-9.813-33.01c-.685-2.309-3.128-3.684-5.456-3.076l-.014.004c-2.329.605-3.661 2.967-2.976 5.273l9.813 33.01"/><path d="m6.873 11.544c-2.167.564-3.333 2.738-2.696 4.881l8.43 28.362 7.7-2.01-8.43-28.364c-.636-2.14-2.834-3.439-5-2.873"/></g><g fill="#935e3e"><path d="m43.525 7.695l-.023-.006c-.227-.053-.459-.076-.686-.088 1.707.768 2.686 2.746 2.23 4.697l-7.603 32.682 1.361.328 7.604-32.686c.51-2.189-.777-4.423-2.883-4.927"/><path d="m35.997 2.121c-.232-.057-.466-.074-.698-.09 2.09.873 3.293 3.266 2.73 5.689l-8.243 35.434 1.361.326 8.243-35.434c.624-2.673-.896-5.33-3.393-5.925"/><path d="m13.484 4.492l-.014.004c-.247.064-.478.156-.701.258 2.085-.174 4.1 1.133 4.712 3.193l9.811 33.01 1.461-.381-9.813-33.01c-.684-2.309-3.127-3.684-5.456-3.076"/><path d="m6.873 11.544c-.251.064-.483.156-.706.262 1.904-.129 3.689 1.098 4.251 2.99l8.43 28.366 1.459-.381-8.43-28.364c-.636-2.14-2.834-3.439-5-2.873"/></g><path fill="#b47d56" d="m59.688 29.23c-1.537-3.07-6.496-2.918-11.553 2.713-3.529 3.936-4.279 5.161-7.822 5.157v-4.122c0 0-7.597-5.744-22.718-3.123 0 0-8.609 1.227-8.609 5.76 0 0-1.462 11.12 1.576 18.1 4.527 10.41 27.774 13.154 35.11-4.563 1.459-3.523 4.414-6.141 7.06-9.438 3.189-3.974 8.638-7.121 6.955-10.488"/><g fill="#935e3e"><path d="m59.688 29.23c-.291-.582-.709-1.047-1.223-1.383.082.125.164.248.234.387 1.684 3.367-3.766 6.516-6.955 10.487-2.648 3.299-5.604 5.918-7.06 9.439-6.359 15.359-24.671 15.336-32.382 8.275 7.01 8.03 26.722 8.775 33.368-7.279 1.459-3.523 4.414-6.141 7.06-9.438 3.19-3.974 8.639-7.121 6.956-10.488"/><path d="m23.09 50.14c0-6.098 4.554-11.05 10.218-11.191-1-.439-2.088-.701-3.234-.701-4.711 0-8.531 4.088-8.531 9.131 0 2.205.738 4.217 1.951 5.795-.256-.968-.404-1.98-.404-3.034"/><path d="m22.853 46.852c.362-2.895-1.328-5.707-4.04-6.49-.432-.125-.862-.188-1.287-.201.99-.854 2.332-1.207 3.65-.826 2.191.633 3.486 3.049 2.896 5.396-.213.849-.646 1.574-1.218 2.121"/><path d="m40.59 33.17c-6.464-4.225-23.299-4.391-30.406 0 6.325-7.563 26.16-5.852 30.406 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m31.1 43.5l7.7 1.8 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9-2.1-.5-4.2.9-4.8 3.2l-7.6 32.6"/><path d="m22.1 41.3l9 2.2 8.3-35.5c.6-2.6-.9-5.3-3.4-5.9-2.5-.6-5 1.1-5.7 3.8l-8.2 35.4"/><path d="m20.3 42.8l8.4-2.2-9.8-33c-.7-2.3-3.1-3.7-5.5-3.1-2.3.6-3.7 3-3 5.3l9.9 33"/><path d="m6.9 11.5c-2.2.6-3.3 2.7-2.7 4.9l8.4 28.4 7.7-2-8.4-28.4c-.7-2.1-2.9-3.4-5-2.9"/></g><g fill="#935e3e"><path d="m43.5 7.7c-.2-.1-.5-.1-.7-.1 1.7.8 2.7 2.7 2.2 4.7l-7.6 32.7 1.4.3 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9"/><path d="m36 2.1c-.2 0-.5-.1-.7-.1 2.1.9 3.3 3.3 2.7 5.7l-4.7 20.1.9 2.5 5.2-22.3c.6-2.6-.9-5.3-3.4-5.9"/><path d="m13.5 4.5c-.3.1-.5.2-.7.3 2.1-.2 4.1 1.1 4.7 3.2l5.7 19.3 2.1 1.9-6.4-21.6c-.6-2.3-3.1-3.7-5.4-3.1"/><path d="m6.9 11.5c-.3.1-.5.2-.7.3 1.9-.1 3.7 1.1 4.3 3l4 13.6 2.1 1.7-4.6-15.6c-.8-2.2-3-3.5-5.1-3"/></g><path d="m59.7 29.2c-1.5-3.1-6.5-2.9-11.6 2.7-3.5 3.9-5.1 5.3-8.6 5.3l.8-4.5-30.9 1.2c0 0-1.8 12.8 1.2 19.8 4.5 10.4 27.8 13.2 35.1-4.6 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5" fill="#b47d56"/><g fill="#935e3e"><path d="m59.7 29.2c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7 10.5-2.6 3.3-5.6 5.9-7.1 9.4-6.3 15.4-24.6 15.4-32.3 8.3 7 8 26.7 8.8 33.4-7.3 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5"/><path d="m40.7 37.1c-6.5-2.4-18 2.1-16.4 13.7 0-10.9 10.1-13.6 15.5-13.6.7 0 .9-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3ff.svg
index cafa221..e936d88 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f596-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m31.15 43.48l7.657 1.828 7.604-32.687c.51-2.189-.777-4.424-2.883-4.928l-.023-.006c-2.107-.502-4.24.914-4.766 3.17l-7.589 32.623"/><path d="m22.1 41.32l9.05 2.162 8.243-35.435c.623-2.674-.896-5.33-3.394-5.926-2.496-.598-5.03 1.09-5.651 3.764l-8.243 35.435"/><path d="m20.307 42.781l8.446-2.201-9.813-33.01c-.685-2.309-3.128-3.684-5.456-3.076l-.014.004c-2.329.605-3.661 2.967-2.976 5.273l9.813 33.01"/><path d="m6.873 11.544c-2.167.564-3.333 2.738-2.696 4.881l8.43 28.362 7.7-2.01-8.43-28.364c-.636-2.141-2.834-3.439-5-2.873"/></g><g fill="#705041"><path d="m43.525 7.694l-.023-.006c-.227-.053-.459-.076-.686-.088 1.707.768 2.686 2.746 2.23 4.697l-7.603 32.683 1.361.328 7.604-32.687c.51-2.188-.777-4.423-2.883-4.927"/><path d="m35.997 2.12c-.232-.057-.466-.074-.698-.09 2.09.873 3.293 3.266 2.73 5.689l-8.243 35.435 1.361.326 8.243-35.435c.624-2.673-.896-5.329-3.393-5.925"/><path d="m13.484 4.491l-.014.004c-.247.064-.478.156-.701.258 2.085-.174 4.1 1.133 4.712 3.193l9.811 33.02 1.461-.381-9.813-33.01c-.684-2.308-3.127-3.683-5.456-3.076"/><path d="m6.873 11.544c-.251.064-.483.156-.706.262 1.904-.129 3.689 1.098 4.251 2.99l8.43 28.366 1.459-.381-8.43-28.364c-.636-2.141-2.834-3.439-5-2.873"/></g><path fill="#8a6859" d="m59.688 29.23c-1.537-3.07-6.496-2.918-11.553 2.713-3.529 3.936-4.279 5.161-7.822 5.157v-4.121c0 0-7.597-5.745-22.718-3.123 0 0-8.609 1.227-8.609 5.76 0 0-1.462 11.12 1.576 18.1 4.527 10.41 27.774 13.154 35.11-4.563 1.459-3.523 4.414-6.141 7.06-9.438 3.189-3.974 8.638-7.121 6.955-10.489"/><g fill="#705041"><path d="m59.688 29.23c-.291-.582-.709-1.047-1.223-1.383.082.125.164.248.234.387 1.684 3.368-3.766 6.517-6.955 10.487-2.648 3.299-5.604 5.918-7.06 9.439-6.359 15.359-24.671 15.336-32.382 8.275 7.01 8.03 26.722 8.775 33.368-7.279 1.459-3.523 4.414-6.141 7.06-9.438 3.19-3.973 8.639-7.12 6.956-10.488"/><path d="m23.09 50.14c0-6.098 4.554-11.05 10.218-11.191-1-.439-2.088-.701-3.234-.701-4.711 0-8.531 4.088-8.531 9.131 0 2.205.738 4.217 1.951 5.795-.256-.968-.404-1.98-.404-3.034"/><path d="m22.853 46.852c.362-2.895-1.328-5.707-4.04-6.49-.432-.125-.862-.188-1.287-.201.99-.854 2.332-1.207 3.65-.826 2.191.633 3.486 3.049 2.896 5.396-.213.849-.646 1.574-1.218 2.121"/><path d="m40.59 33.17c-6.464-4.226-23.299-4.392-30.406 0 6.325-7.564 26.16-5.853 30.406 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m31.1 43.5l7.7 1.8 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9-2.1-.5-4.2.9-4.8 3.2l-7.6 32.6"/><path d="m22.1 41.3l9 2.2 8.3-35.5c.6-2.6-.9-5.3-3.4-5.9-2.5-.6-5 1.1-5.7 3.8l-8.2 35.4"/><path d="m20.3 42.8l8.4-2.2-9.8-33c-.7-2.3-3.1-3.7-5.5-3.1-2.3.6-3.7 3-3 5.3l9.9 33"/><path d="m6.9 11.5c-2.2.6-3.3 2.7-2.7 4.9l8.4 28.4 7.7-2-8.4-28.4c-.7-2.1-2.9-3.4-5-2.9"/></g><g fill="#705041"><path d="m43.5 7.7c-.2-.1-.5-.1-.7-.1 1.7.8 2.7 2.7 2.2 4.7l-7.6 32.7 1.4.3 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9"/><path d="m36 2.1c-.2 0-.5-.1-.7-.1 2.1.9 3.3 3.3 2.7 5.7l-4.7 20.1.9 2.5 5.2-22.3c.6-2.6-.9-5.3-3.4-5.9"/><path d="m13.5 4.5c-.3.1-.5.2-.7.3 2.1-.2 4.1 1.1 4.7 3.2l5.7 19.3 2.1 1.9-6.4-21.6c-.6-2.3-3.1-3.7-5.4-3.1"/><path d="m6.9 11.5c-.3.1-.5.2-.7.3 1.9-.1 3.7 1.1 4.3 3l4 13.6 2.1 1.7-4.6-15.6c-.8-2.2-3-3.5-5.1-3"/></g><path d="m59.7 29.2c-1.5-3.1-6.5-2.9-11.6 2.7-3.5 3.9-5.1 5.3-8.6 5.3l.8-4.5-30.9 1.2c0 0-1.8 12.8 1.2 19.8 4.5 10.4 27.8 13.2 35.1-4.6 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5" fill="#8a6859"/><g fill="#705041"><path d="m59.7 29.2c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7 10.5-2.6 3.3-5.6 5.9-7.1 9.4-6.3 15.4-24.6 15.4-32.3 8.3 7 8 26.7 8.8 33.4-7.3 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5"/><path d="m40.7 37.1c-6.5-2.4-18 2.1-16.4 13.7 0-10.9 10.1-13.6 15.5-13.6.7 0 .9-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f596.svg b/build/js/jsxc/lib/emojione/assets/svg/1f596.svg
index 4c48a75..b2fb218 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f596.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f596.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m31.14 43.48l7.657 1.829 7.604-32.687c.51-2.189-.777-4.424-2.883-4.928l-.023-.006c-2.107-.502-4.24.914-4.766 3.17l-7.589 32.622"/><path d="m22.1 41.32l9.05 2.162 8.243-35.434c.623-2.674-.896-5.33-3.394-5.926-2.496-.598-5.03 1.09-5.651 3.764l-8.243 35.434"/><path d="m20.304 42.781l8.446-2.201-9.812-33.01c-.685-2.309-3.128-3.684-5.456-3.076l-.014.004c-2.329.605-3.661 2.967-2.976 5.273l9.812 33.01"/><path d="m6.87 11.544c-2.167.564-3.333 2.738-2.696 4.881l8.43 28.363 7.7-2.01-8.43-28.364c-.636-2.14-2.834-3.439-5-2.873"/></g><g fill="#eba352"><path d="m43.522 7.695l-.023-.006c-.227-.053-.459-.076-.686-.088 1.707.768 2.686 2.746 2.23 4.697l-7.603 32.683 1.361.328 7.604-32.687c.51-2.189-.777-4.423-2.883-4.927"/><path d="m35.994 2.121c-.232-.057-.466-.074-.698-.09 2.09.873 3.293 3.266 2.73 5.689l-8.243 35.434 1.361.326 8.243-35.434c.624-2.673-.896-5.33-3.393-5.925"/><path d="m13.481 4.492l-.014.004c-.247.064-.478.156-.701.258 2.085-.174 4.1 1.133 4.712 3.193l9.811 33.01 1.461-.381-9.812-33.01c-.685-2.309-3.128-3.684-5.457-3.076"/><path d="m6.87 11.544c-.251.064-.483.156-.706.262 1.904-.129 3.689 1.098 4.251 2.99l8.43 28.366 1.459-.381-8.43-28.364c-.636-2.14-2.834-3.439-5-2.873"/></g><path fill="#ffdd67" d="m59.685 29.23c-1.537-3.07-6.496-2.918-11.553 2.713-3.529 3.936-4.279 5.161-7.822 5.157v-4.122c0 0-7.597-5.744-22.718-3.123 0 0-8.609 1.227-8.609 5.76 0 0-1.462 11.12 1.576 18.1 4.527 10.41 27.774 13.154 35.11-4.563 1.459-3.523 4.414-6.142 7.06-9.438 3.189-3.974 8.638-7.121 6.955-10.488"/><g fill="#eba352"><path d="m59.685 29.23c-.291-.582-.709-1.047-1.223-1.383.082.125.164.248.234.387 1.684 3.367-3.766 6.516-6.955 10.487-2.648 3.299-5.604 5.919-7.06 9.44-6.359 15.359-24.671 15.336-32.382 8.275 7.01 8.03 26.722 8.775 33.368-7.279 1.459-3.523 4.414-6.142 7.06-9.438 3.19-3.975 8.639-7.122 6.956-10.489"/><path d="m23.09 50.14c0-6.098 4.554-11.05 10.218-11.192-1-.439-2.088-.701-3.234-.701-4.711 0-8.531 4.088-8.531 9.132 0 2.205.738 4.217 1.951 5.795-.256-.968-.404-1.98-.404-3.034"/><path d="m22.85 46.853c.362-2.895-1.328-5.708-4.04-6.491-.432-.125-.862-.188-1.287-.201.99-.854 2.332-1.207 3.65-.826 2.191.633 3.486 3.049 2.896 5.397-.213.849-.646 1.574-1.218 2.121"/><path d="m40.587 33.17c-6.464-4.225-23.299-4.391-30.406 0 6.325-7.563 26.16-5.852 30.406 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m31.1 43.5l7.7 1.8 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9-2.1-.5-4.2.9-4.8 3.2l-7.6 32.6"/><path d="m22.1 41.3l9 2.2 8.3-35.5c.6-2.6-.9-5.3-3.4-5.9-2.5-.6-5 1.1-5.7 3.8l-8.2 35.4"/><path d="m20.3 42.8l8.4-2.2-9.8-33c-.7-2.3-3.1-3.7-5.5-3.1-2.3.6-3.7 3-3 5.3l9.9 33"/><path d="m6.9 11.5c-2.2.6-3.3 2.7-2.7 4.9l8.4 28.4 7.7-2-8.4-28.4c-.7-2.1-2.9-3.4-5-2.9"/></g><g fill="#eba352"><path d="m43.5 7.7c-.2-.1-.5-.1-.7-.1 1.7.8 2.7 2.7 2.2 4.7l-7.6 32.7 1.4.3 7.6-32.7c.5-2.2-.8-4.4-2.9-4.9"/><path d="m36 2.1c-.2 0-.5-.1-.7-.1 2.1.9 3.3 3.3 2.7 5.7l-4.7 20.1.9 2.5 5.2-22.3c.6-2.6-.9-5.3-3.4-5.9"/><path d="m13.5 4.5c-.3.1-.5.2-.7.3 2.1-.2 4.1 1.1 4.7 3.2l5.7 19.3 2.1 1.9-6.4-21.6c-.6-2.3-3.1-3.7-5.4-3.1"/><path d="m6.9 11.5c-.3.1-.5.2-.7.3 1.9-.1 3.7 1.1 4.3 3l4 13.6 2.1 1.7-4.6-15.6c-.8-2.2-3-3.5-5.1-3"/></g><path d="m59.7 29.2c-1.5-3.1-6.5-2.9-11.6 2.7-3.5 3.9-5.1 5.3-8.6 5.3l.8-4.5-30.9 1.2c0 0-1.8 12.8 1.2 19.8 4.5 10.4 27.8 13.2 35.1-4.6 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5" fill="#ffdd67"/><g fill="#eba352"><path d="m59.7 29.2c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.8 6.5-7 10.5-2.6 3.3-5.6 5.9-7.1 9.4-6.3 15.4-24.6 15.4-32.3 8.3 7 8 26.7 8.8 33.4-7.3 1.5-3.5 4.4-6.1 7.1-9.4 3.1-4 8.6-7.1 6.9-10.5"/><path d="m40.7 37.1c-6.5-2.4-18 2.1-16.4 13.7 0-10.9 10.1-13.6 15.5-13.6.7 0 .9-.1.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5a4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5a4.svg
new file mode 100644
index 0000000..5cedc5f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5a4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5a5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5a5.svg
index 83e9648..852287c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5a5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5a5.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#5b636b" d="M46,58.25c0,2.071-1.671,3.75-3.733,3.75H21.733C19.672,62,18,60.321,18,58.25V5.75
- C18,3.679,19.672,2,21.733,2h20.533C44.329,2,46,3.679,46,5.75V58.25z"/><path fill="#181e2e" d="m20.8 6.489v20.625h22.4v-20.625h-22.4m21.467 19.687h-20.534v-5.625h20.533v5.625m.001-6.562h-20.534v-5.625h20.533v5.625m.001-6.563h-20.534v-5.625h20.533v5.625"/><path fill="#3e4347" d="m38.533 10.239h2.8v1.875h-2.8z"/><circle fill="#ff435e" cx="36.667" cy="11.176" r=".938"/><path fill="#181e2e" d="m21.733 32.27h15.866v3.75h-15.866z"/><path fill="#94989b" d="m21.733 41.18h20.533v18.75h-20.533z"/><path fill="#181e2e" d="m22.667 42.12h18.667v16.875h-18.667z"/><g fill="#94989b"><path d="m18 28.99h28v.938h-28z"/><path d="m18 38.37h28v.938h-28z"/></g><g fill="#42ade2"><path fill-rule="evenodd" d="m32.805 54.47l-.43.247c-.044-.095-.135-.163-.241-.163h-.27c-.106 0-.197.068-.239.163l-.432-.247-1.03-.595v1.188 1.187l1.03-.594.432-.249c.042.098.133.163.239.163h.27c.105 0 .197-.065.241-.163l.43.249 1.032.594v-1.187-1.188l-1.032.595"/><path d="m30.395 51.11c.173.272.414.471.692.605.279.136.595.203.914.203.317-.002.632-.067.912-.203.279-.135.519-.333.693-.605.035.318-.126.664-.431.91-.301.248-.738.395-1.174.394-.438 0-.875-.146-1.176-.394-.302-.246-.467-.591-.43-.91"/><path fill-rule="evenodd" d="m36.567 47.936v-.086c0-.067-.008-.08-.042-.099-.063-.033-.129-.064-.197-.086-.049-.019-.104-.035-.162-.05-.692-1.622-2.297-2.758-4.165-2.758-1.871 0-3.475 1.136-4.167 2.758-.058.015-.113.031-.164.05-.066.021-.131.053-.195.086-.035.019-.042.031-.042.099v.086c0 .163-.022.099.095.167.039.021.073.051.104.084-.107.39-.164.8-.164 1.225 0 2.515 2.029 4.554 4.534 4.554 2.503 0 4.531-2.039 4.531-4.554 0-.425-.056-.835-.165-1.225.032-.033.067-.063.105-.084.114-.069.094-.004.094-.167m-4.566-2.54c1.523 0 2.85.856 3.523 2.116-.538-.05-1.136-.038-1.483-.007-.562.049-1.03.176-1.413.373-.359.18-.897.18-1.256 0-.383-.197-.851-.324-1.413-.373-.348-.031-.946-.043-1.484.007.675-1.259 2-2.116 3.526-2.116m0 8.03c-2.209 0-4-1.798-4-4.02 0-.03.002-.06.002-.089.14.536.456.882.93 1.062.506.192 1.077.185 1.581-.017.275-.111.518-.285.71-.571.337-.498.237-.808.41-1.235.153-.374.578-.374.729 0 .175.428.075.737.412 1.235.191.286.433.46.71.571.504.201 1.072.209 1.581.017.474-.18.789-.527.93-1.063 0 .031.002.061.002.091.001 2.217-1.789 4.02-3.997 4.02"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,6c0-2-2-4-4-4H6C4,2,2,4,2,6v38h60V6z" fill="#212528"/><path d="M2,44v4c0,2,2,4,4,4h52c2,0,4-2,4-4v-4H2z" fill="#ddd"/><path d="m24 54c0 4-4 4-8 4h32c-4 0-8 0-8-4v-2h-16v2" fill="#bfbebe"/><path fill="#3e4347" d="m6 6h52v34h-52z"/><g fill="#94989b"><circle cx="32" cy="47.9" r="1"/><path d="m16 58h32v4h-32z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5a8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5a8.svg
index 2da2003..4eb491f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5a8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5a8.svg
@@ -1 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="m52 16c-10 0-30 0-40 0-3.681 0-10 5.088-10 10.805 0 5.716 2.24 27.2 2.24 27.2h55.52c0 0 2.24-21.479 2.24-27.2 0-5.717-6.319-10.805-10-10.805"/><g fill="#b2c1c0"><path d="m7 54v4c0 1.1.9 2 2 2h46c1.1 0 2-.9 2-2v-4h-50"/><path d="m48.666 16c-8.332 0-25 0-33.33 0-3.067 0-8.333 5.088-8.333 10.805 0 5.716 1.867 27.2 1.867 27.2h46.27c0 0 1.867-21.479 1.867-27.2 0-5.717-5.266-10.805-8.334-10.805"/></g><path fill="#62727a" d="m52 50c0 2.199-.45 4-1 4h-38c-.55 0-1-1.801-1-4 0-2.199.45-3 1-3h38c.55 0 1 .801 1 3"/><path fill="#e8e8e8" d="m51.865 58.05c-3.744-4.842-4.993-8.05-4.993-8.05h-29.744c0 0-1.249 3.205-4.993 8.05-3.744 4.842 2.621 3.874 6.865 3.874h26c4.244 0 10.609.968 6.865-3.874"/><g fill="#b2c1c0"><path d="m19.898 52.32c-.951 2.449-2.419 4.771-3.83 7.01-.313.498.525.946.837.449 1.454-2.309 2.948-4.699 3.927-7.225.211-.54-.727-.772-.934-.236"/><path d="m25.715 52.32c-.389 2.412-1.17 4.793-1.938 7.119-.183.55.754.783.935.236.769-2.326 1.55-4.707 1.939-7.119.09-.56-.844-.802-.936-.236"/><path d="m37.35 52.56c.39 2.412 1.171 4.793 1.939 7.119.181.547 1.117.313.935-.236-.769-2.326-1.55-4.707-1.938-7.119-.093-.567-1.027-.325-.936.236"/><path d="m43.17 52.56c.979 2.525 2.474 4.916 3.927 7.225.313.497 1.15.049.838-.449-1.41-2.24-2.879-4.563-3.83-7.01-.207-.537-1.145-.305-.935.236"/><path d="m31.516 52.44c0 2.372 0 4.745 0 7.117 0 .574.969.574.969 0 0-2.372 0-4.745 0-7.117-.001-.574-.969-.574-.969 0"/></g><path fill="#62727a" d="m16.875 18c-2.072 1.14-2.375 3.761-2.375 4.5 0 .962 0 1.5 5.836 1.5 5.828 0 17.5 0 23.328 0 5.836 0 5.836-.537 5.836-1.5 0-.74-.303-3.361-2.375-4.5h-30.25"/><path fill="#b2c1c0" d="m45 2h-26c-1.1 0-2 .9-2 2v16h30v-16c0-1.1-.9-2-2-2"/><path fill="#e8e8e8" d="m44 4h-24c-.55 0-1 .45-1 1v15h26v-15c0-.55-.45-1-1-1"/><path fill="#b2c1c0" d="m32 8c-2.654 0-4.999-1.298-6.454-3.287 1.06 2.519 3.55 4.287 6.454 4.287s5.395-1.769 6.454-4.287c-1.455 1.989-3.8 3.287-6.454 3.287"/><path fill="#fff" d="m21 9h22v11h-22z"/><path fill="#e8e8e8" d="m53 27c0 .553 0 1-21 1s-21-.447-21-1 0-1 21-1 21 .447 21 1"/><circle fill="#f15744" cx="50" cy="34" r="1"/><circle fill="#c7e755" cx="50" cy="38" r="1"/><path fill="#fff" d="m41.915 50h-19.83c0 0-.589 4.771-3.085 8h26c-2.496-3.229-3.085-8-3.085-8"/><path fill="#c7e755" d="m21 38c0 .55-.45 1-1 1h-7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h7c.55 0 1 .45 1 1v4"/><g fill="#62727a"><path d="m13 41.501h2c.364 0 .67-.207.846-.5.089.149.154.314.154.5 0 .55-.45 1-1 1h-2c-.55 0-1-.45-1-1 0-.186.065-.351.154-.5.176.293.482.5.846.5"/><path d="m18 41.501h2c.364 0 .67-.207.846-.5.089.149.154.314.154.5 0 .55-.45 1-1 1h-2c-.55 0-1-.45-1-1 0-.186.065-.351.154-.5.176.293.482.5.846.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M52,16c-10,0-30,0-40,0C8.3,16,2,21.1,2,26.8C2,32.5,4.2,54,4.2,54h55.5c0,0,2.2-21.5,2.2-27.2
+ C62,21.1,55.7,16,52,16z" fill="#e8e8e8"/><g fill="#b2c1c0"><path d="m7 54v4c0 1.1.9 2 2 2h46c1.1 0 2-.9 2-2v-4h-50"/><path d="M48.7,16c-8.3,0-25,0-33.3,0C12.3,16,7,21.1,7,26.8C7,32.5,8.9,54,8.9,54h46.3c0,0,1.9-21.5,1.9-27.2
+ C57,21.1,51.7,16,48.7,16z"/></g><path d="m52 50c0 2.2-.5 4-1 4h-38c-.6 0-1-1.8-1-4 0-2.2.4-3 1-3h38c.5 0 1 .8 1 3" fill="#62727a"/><path d="m51.9 58c-3.7-4.8-5-8-5-8h-29.8c0 0-1.2 3.2-5 8s2.6 3.9 6.9 3.9h26c4.2 0 10.6 1 6.9-3.9" fill="#e8e8e8"/><g fill="#b2c1c0"><path d="m19.9 52.3c-1 2.4-2.4 4.8-3.8 7-.3.5.5.9.8.4 1.5-2.3 2.9-4.7 3.9-7.2.2-.5-.7-.7-.9-.2"/><path d="m25.7 52.3c-.4 2.4-1.2 4.8-1.9 7.1-.2.5.8.8.9.2.8-2.3 1.5-4.7 1.9-7.1.1-.5-.8-.7-.9-.2"/><path d="m37.3 52.6c.4 2.4 1.2 4.8 1.9 7.1.2.5 1.1.3.9-.2-.8-2.3-1.5-4.7-1.9-7.1 0-.6-.9-.4-.9.2"/><path d="m43.2 52.6c1 2.5 2.5 4.9 3.9 7.2.3.5 1.2 0 .8-.4-1.4-2.2-2.9-4.6-3.8-7-.2-.6-1.1-.4-.9.2"/><path d="m31.5 52.4c0 2.4 0 4.7 0 7.1 0 .6 1 .6 1 0 0-2.4 0-4.7 0-7.1 0-.5-1-.5-1 0"/></g><path d="m16.9 18c-2.1 1.1-2.4 3.8-2.4 4.5 0 1 0 1.5 5.8 1.5 5.8 0 17.5 0 23.3 0 5.8 0 5.8-.5 5.8-1.5 0-.7-.3-3.4-2.4-4.5h-30.1" fill="#62727a"/><path d="m45 2h-26c-1.1 0-2 .9-2 2v16h30v-16c0-1.1-.9-2-2-2" fill="#b2c1c0"/><path d="m44 4h-24c-.5 0-1 .4-1 1v15h26v-15c0-.5-.5-1-1-1" fill="#e8e8e8"/><path d="M32,8c-2.7,0-5-1.3-6.5-3.3C26.6,7.2,29.1,9,32,9s5.4-1.8,6.5-4.3C37,6.7,34.7,8,32,8z" fill="#b2c1c0"/><path fill="#fff" d="m21 9h22v11h-22z"/><path d="m53 27c0 .6 0 1-21 1s-21-.4-21-1 0-1 21-1 21 .4 21 1" fill="#e8e8e8"/><circle cx="50" cy="34" r="1" fill="#f15744"/><circle cx="50" cy="38" r="1" fill="#c7e755"/><path d="m41.9 50h-19.8c0 0-.6 4.8-3.1 8h26c-2.5-3.2-3.1-8-3.1-8" fill="#fff"/><path d="m21 38c0 .5-.5 1-1 1h-7c-.6 0-1-.5-1-1v-4c0-.5.4-1 1-1h7c.5 0 1 .5 1 1v4" fill="#c7e755"/><g fill="#62727a"><path d="m13 41.5h2c.4 0 .7-.2.8-.5.1.1.2.3.2.5 0 .5-.4 1-1 1h-2c-.6 0-1-.5-1-1 0-.2.1-.4.2-.5.1.3.4.5.8.5"/><path d="m18 41.5h2c.4 0 .7-.2.8-.5.1.1.2.3.2.5 0 .5-.5 1-1 1h-2c-.5 0-1-.5-1-1 0-.2.1-.4.2-.5.1.3.4.5.8.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5b1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5b1.svg
index c649b9e..ed83ffe 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5b1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5b1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m19.05 58.735h-2.417c0-3.163-2.881-8.185-5.113-11.791-3.396-5.49-9.533-13.274-9.533-23.9 0-6.257 1.96-11.2 6.843-13.224 3.853-1.596 8.092.073 10.798 2.779l-1.71 1.708c-2.01-2.01-5.215-3.476-8.164-2.255-3.949 1.636-5.35 5.745-5.35 10.991 0 9.938 5.768 17.13 9.171 22.627 2.426 3.921 5.475 9.216 5.475 13.06"/><g fill="#bcc2cc"><path d="m13.168 14.458c-.758-.759-.944-1.801-.417-2.331l2.626-2.627c.529-.527 1.572-.341 2.33.417l-4.539 4.541"/><path d="m19.08 42.755c-13.07-13.07-10.777-22.83-3.342-30.27 7.435-7.435 17.193-9.729 30.27 3.343 16.454 16.454 18.387 30.44 10.951 37.875-7.435 7.435-21.42 5.502-37.874-10.952"/></g><g fill="#d8dfeb"><path d="m28.12 24.866c-5.07 5.07-9.106 10.585-11.569 16.571.697.793 1.454 1.599 2.27 2.415 16.524 16.525 30.851 18.19 38.662 10.377 7.811-7.811 6.146-22.14-10.378-38.662-.816-.816-1.622-1.573-2.415-2.27-5.986 2.463-11.501 6.499-16.57 11.569"/><path d="m43.977 12.562c-9.373-8.466-16.976-8.895-23.21-5.362l11.844 11.845c3.547-2.83 7.324-5.071 11.363-6.483"/><path d="m11.123 16.846l11.844 11.844c1.297-1.627 2.705-3.209 4.235-4.738 1.529-1.528 3.111-2.938 4.739-4.235l-11.844-11.845c-1.792 1.017-3.471 2.356-5.04 3.931-1.574 1.572-2.915 3.251-3.93 5.04"/><path d="m15.813 40.728c1.413-4.04 3.654-7.817 6.481-11.364l-11.844-11.845c-3.532 6.231-3.104 13.836 5.363 23.21"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m19 58.7h-2.4c0-3.2-2.9-8.2-5.1-11.8-3.4-5.4-9.5-13.2-9.5-23.9 0-6.3 2-11.2 6.8-13.2 3.9-1.6 8.1.1 10.8 2.8l-1.7 1.7c-2-2-5.2-3.5-8.2-2.3-3.9 1.6-5.3 5.7-5.3 11 0 9.9 5.8 17.1 9.2 22.6 2.4 4 5.4 9.3 5.4 13.1" fill="#94989b"/><g fill="#bcc2cc"><path d="m13.2 14.5c-.8-.8-.9-1.8-.4-2.3l2.6-2.6c.5-.5 1.6-.3 2.3.4l-4.5 4.5"/><path d="m19.1 42.8c-13.1-13.1-10.8-22.9-3.4-30.3 7.4-7.4 17.2-9.7 30.3 3.3 16.5 16.5 18.4 30.4 11 37.9-7.5 7.4-21.5 5.5-37.9-10.9"/></g><g fill="#d8dfeb"><path d="m28.1 24.9c-5.1 5-9.1 10.6-11.6 16.5.7.8 1.5 1.6 2.3 2.4 16.5 16.6 30.9 18.2 38.7 10.4s6.1-22.1-10.4-38.7c-.8-.8-1.6-1.6-2.4-2.3-6 2.6-11.5 6.6-16.6 11.7"/><path d="m44 12.6c-9.4-8.5-17-8.9-23.2-5.4l11.8 11.8c3.6-2.8 7.3-5 11.4-6.4"/><path d="m11.1 16.8l11.9 11.9c1.3-1.6 2.7-3.2 4.2-4.7 1.5-1.5 3.1-2.9 4.7-4.2l-11.8-11.9c-1.8 1-3.5 2.4-5 3.9-1.6 1.6-3 3.3-4 5"/><path d="m15.8 40.7c1.4-4 3.7-7.8 6.5-11.4l-11.9-11.8c-3.5 6.3-3.1 13.9 5.4 23.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5b2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5b2.svg
index 73ec69c..35468b2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5b2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5b2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m51.998 61.998v-43.12c0-8.438-4.01-15-14.02-15-7.343 0-12.02 5.625-12.02 13.13h-2c0-9.375 5.672-15 14.02-15 10.736 0 16.02 6.563 16.02 16.875v43.12l-2 .004"/><path fill="#3e4347" d="m40.04 33.1c0 16.01-6.721 28.899-15.02 28.899-8.294 0-15.02-12.891-15.02-28.899 0-9.772 6.726-22.663 15.02-22.663 8.296 0 15.02 12.89 15.02 22.663"/><g fill="#94989b"><path d="m15.199 25.542c-.748 2.465-1.193 5.05-1.193 7.521 0 4.853.616 9.3 1.623 13.1.305-.487.625-1.025.956-1.626 5.776-10.419 2.481-16.07-1.386-18.999"/><path d="m34.843 25.542c-3.87 2.928-7.163 8.58-1.39 18.999.332.601.651 1.139.96 1.626 1.01-3.804 1.619-8.251 1.619-13.1 0-2.467-.444-5.056-1.189-7.521"/></g><ellipse fill="#ed4c5c" cx="24.966" cy="21.686" rx="6.01" ry="5.625"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52 62v-43.1c0-8.4-4-15-14-15-7.3 0-12 5.6-12 13.1h-2c0-9.4 5.7-15 14-15 10.7 0 16 6.6 16 16.9v43.1h-2" fill="#d0d0d0"/><path d="m40 33.1c0 16-6.7 28.9-15 28.9-8.3 0-15-12.9-15-28.9 0-9.8 6.7-22.7 15-22.7 8.3 0 15 12.9 15 22.7" fill="#3e4347"/><g fill="#94989b"><path d="m15.2 25.5c-.7 2.5-1.2 5.1-1.2 7.6 0 4.9.6 9.3 1.6 13.1.3-.5.6-1 1-1.6 5.8-10.5 2.5-16.1-1.4-19.1"/><path d="m34.8 25.5c-3.9 2.9-7.2 8.6-1.4 19 .3.6.7 1.1 1 1.6 1-3.8 1.6-8.3 1.6-13.1 0-2.4-.4-5-1.2-7.5"/></g><ellipse cx="25" cy="21.7" rx="6" ry="5.6" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5bc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5bc.svg
index bfe7092..a0f89d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5bc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5bc.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m0 0v64l32-32z"/><path fill="#697277" d="m64 0h-64l32 32z"/><path fill="#333" d="m0 64h64l-32-32z"/><g fill="#52595e"><path d="m32 32l32 32v-64z"/><path d="m4 4v56l28-28z"/></g><path fill="#333" d="m60 4h-56l28 28z"/><path fill="#697277" d="m4 60h56l-28-28z"/><path fill="#333" d="m32 32l28 28v-56z"/><path fill="#d0d0d0" d="M56,54.293C56,55.235,55.236,56,54.295,56H9.707C8.766,56,8,55.235,8,54.293V9.707
- C8,8.764,8.766,8,9.707,8h44.588C55.236,8,56,8.764,56,9.707V54.293z"/><path fill="#42ade2" d="M56,54.293C56,55.235,55.236,56,54.295,56H9.707C8.766,56,8,55.235,8,54.293V9.707
- C8,8.764,8.766,8,9.707,8h44.588C55.236,8,56,8.764,56,9.707V54.293z"/><path fill="#fed0ac" d="M 8.193,35.669 H56 V56 H8.193 z"/><circle fill="#ffce31" cx="46.765" cy="18.517" r="5.03"/><path fill="#89664c" d="m17.848 39.925l14.252 4.066v-16.644z"/><path fill="#d3976e" d="m46.35 39.925l-14.25 4.066v-16.644z"/><path fill="#fff" d="m6 6v52h52v-52h-52m48.5 48.5h-45v-45h45v45"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m2 4v56l30-28z"/><path fill="#697277" d="m62 4h-60l30 28z"/><path fill="#333" d="m2 60h60l-30-28z"/><path fill="#697277" d="m32 32l30 28v-56z"/><path fill="#52595e" d="m5 7h54v50h-54z"/><path fill="#697277" d="m9 11v42l23-21z"/><path fill="#333" d="m55 11h-46l23 21z"/><path fill="#697277" d="m9 53h46l-23-21z"/><path fill="#333" d="m32 32l23 21v-42z"/><path fill="#42ade2" d="m16 18h32v18h-32z"/><path fill="#fed0ac" d="m16 34.7h32v11.3h-32z"/><circle cx="40.5" cy="24.5" r="3.8" fill="#ffce31"/><path fill="#89664c" d="M21.3 37.9 32 41 32 28.4z"/><path fill="#d3976e" d="M42.7 37.9 32 41 32 28.4z"/><path d="M11,13v38h42V13H11z M47,45H17V19h30V45z" fill="#fff"/><path d="M12,14v36h40V14H12z M48.2,46.2H15.8V17.8h32.3V46.2z" fill="#bfb3a4"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5c2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5c2.svg
index 8a748bc..d2046e8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5c2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5c2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m63.44 24.74h-15.754v34.26l16.02-32.382c.482-.998.36-1.813-.261-1.879"/><path fill="#aa7d5e" d="m60.818 21.298h-15.754l2.625 37.703 13.39-35.824c.482-.998.36-1.813-.261-1.879"/><path fill="#d3976e" d="m56.1 17.856h-8.411v41.15l9.377-38.836c.304-1.276-.129-2.309-.966-2.309"/><path fill="#f2bc97" d="m52.16 12.959h-8.411l3.944 46.04 5.433-43.733c.305-1.275-.129-2.309-.966-2.309"/><path fill="#ffce31" d="m45.805 10.971h-21.962v-3.375c0-1.434-.843-2.596-1.884-2.596h-20.07c-1.042 0-1.885 1.162-1.885 2.596v51.41h47.689v-45.43c0-1.433-.843-2.596-1.884-2.596"/><g fill="#fff"><ellipse cx="10.792" cy="54.707" rx="2.502" ry="2.511"/><path d="m23.92 52.2c-1.386 0-2.498 1.124-2.498 2.51 0 1.389 1.112 2.512 2.498 2.512 1.381 0 2.502-1.123 2.502-2.512 0-1.386-1.121-2.51-2.502-2.51"/><ellipse cx="36.898" cy="54.707" rx="2.5" ry="2.511"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63.4 24.7h-15.7v34.3l16-32.4c.5-1 .4-1.8-.3-1.9" fill="#89664c"/><path d="m60.8 21.3h-15.7l2.6 37.7 13.4-35.8c.5-1 .3-1.8-.3-1.9" fill="#aa7d5e"/><path d="m56.1 17.9h-8.4v41.1l9.4-38.8c.3-1.3-.2-2.3-1-2.3" fill="#d3976e"/><path d="m52.2 13h-8.4l3.9 46 5.4-43.7c.3-1.3-.1-2.3-.9-2.3" fill="#f2bc97"/><path d="M45.8,11h-22V7.6C23.8,6.2,23,5,22,5H1.9C0.8,5,0,6.2,0,7.6V59h47.7V13.6C47.7,12.1,46.8,11,45.8,11z" fill="#ffce31"/><g fill="#fff"><ellipse cx="10.8" cy="54.7" rx="2.5" ry="2.5"/><path d="m23.9 52.2c-1.4 0-2.5 1.1-2.5 2.5 0 1.4 1.1 2.5 2.5 2.5 1.4 0 2.5-1.1 2.5-2.5 0-1.4-1.1-2.5-2.5-2.5"/><ellipse cx="36.9" cy="54.7" rx="2.5" ry="2.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5c3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5c3.svg
index 3cb6cd0..4ab8e1b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5c3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5c3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#534741" d="M64 57.33 27.979 64 6.534 50.649 42.556 44.04z"/><path fill="#3e4347" d="m42.556 44.04l-36.02 6.676v-13.219l36.02-6.676z"/><path fill="#d0d0d0" d="m64 57.39l-21.444-13.35v-13.219l21.444 16.559z"/><path fill="#ed4c5c" d="m45.989 43.39l-36.02 6.68v-13.221l18.01-3.336v1.883l18.01-3.236z"/><path fill="#ff8736" d="m51.35 46.46l-36.02 6.68v-13.223l18.01-3.337v2.284l18.01-3.449z"/><path fill="#83bf4f" d="m56.712 49.87l-36.02 6.68v-13.22l18.01-3.341v2.02l18.01-3.187z"/><path fill="#ffce31" d="m62.07 53.27l-36.02 6.68v-13.219l18.01-3.341v2.64l18.01-3.8z"/><path fill="#d0d0d0" d="m27.979 64l-21.445-13.351v-13.218l21.445 16.619z"/><g fill="#3e4347"><path d="m64 57.33l-36.02 6.67v-9.95l36.02-6.67z"/><path d="M36.02 26.83 0 33.439 0 6.609 36.02 0z"/></g><path fill="#94989b" d="M36.02 26.83 0 33.439 6.534 37.497 42.556 30.821z"/><g fill="#d0d0d0"><path d="M0 6.609 3.267 8.605 6.534 37.431 0 33.439z"/><path d="m36.02 0l3.27 1.996 3.266 28.825-6.536-3.991z"/></g><path fill="#94989b" d="M36.02 0 0 6.609 3.267 8.605 39.29 1.996z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#534741" d="M64 57.3 28 64 6.5 50.6 42.6 44z"/><path fill="#3e4347" d="m42.6 44l-36.1 6.7v-13.2l36.1-6.7z"/><path fill="#d0d0d0" d="M64 57.4 42.6 44 42.6 30.8 64 47.4z"/><path fill="#ed4c5c" d="m46 43.4l-36 6.7v-13.3l18-3.3v1.9l18-3.2z"/><path fill="#ff8736" d="m51.4 46.5l-36.1 6.6v-13.2l18-3.3v2.3l18.1-3.5z"/><path fill="#83bf4f" d="m56.7 49.9l-36 6.6v-13.2l18-3.3v2l18-3.2z"/><path fill="#ffce31" d="m62.1 53.3l-36 6.7v-13.3l18-3.3v2.6l18-3.8z"/><path fill="#d0d0d0" d="M28 64 6.5 50.6 6.5 37.4 28 54.1z"/><g fill="#3e4347"><path d="m64 57.3l-36 6.7v-9.9l36-6.7z"/><path d="M36 26.8 0 33.4 0 6.6 36 0z"/></g><path fill="#94989b" d="m36 26.8l-36 6.6 6.5 4.1 36.1-6.7z"/><g fill="#d0d0d0"><path d="m0 6.6l3.3 2 3.2 28.8-6.5-4z"/><path d="m36 0l3.3 2 3.3 28.8-6.6-4z"/></g><path fill="#94989b" d="m36 0l-36 6.6 3.3 2 36-6.6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5c4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5c4.svg
index 18f9ce3..e27bdf1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5c4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5c4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b9b9bf" d="m63.15 5.647l-28.63-5.647-22.887 7.508 7.394 13.409 44.837-14.709c-.148-.275-.407-.5-.714-.561"/><path fill="#898a90" d="m63.865 6.208l-44.838 14.709 15.345 27.83 6.729 12.204 22.05-7.443c0 0 .849-.215.849-.682v-46.16c0-.16-.057-.312-.135-.455"/><path fill="#9fa1a6" d="m41.527 60.3c0 .467-.383.773-.85.681l-28.629-5.647c-.467-.092-.85-.549-.85-1.016v-46.16c0-.466.383-.773.85-.681l28.629 5.648c.467.092.85.549.85 1.015v46.16"/><g fill="#3e4347"><path d="m14.232 34.23c0-.467.381-.773.849-.681l22.563 4.451c.469.093.85.548.85 1.015v17.448c0 .467-.381.772-.85.681l-22.563-4.451c-.468-.092-.849-.549-.849-1.016v-17.447"/><path d="m38.494 34.929c0 .445-.381.734-.85.643l-22.563-4.452c-.468-.093-.849-.533-.849-.979s.381-.734.849-.643l22.563 4.451c.469.093.85.532.85.98"/></g><path fill="#d0d0d0" d="m14.232 11.847c0-.467.381-.773.849-.681l22.563 4.451c.469.092.85.549.85 1.016v17.448c0 .465-.381.771-.85.68l-22.563-4.451c-.468-.092-.849-.549-.849-1.016v-17.447"/><path fill="#3e4347" d="m23.331 26.341v.811c0 .445.382.884.849.977l4.367.861c.466.093.85-.196.85-.643v-.811l-6.07-1.195"/><path fill="#94989b" d="m29.396 27.499c0 .467-.384.773-.85.682l-4.367-.862c-.467-.092-.849-.549-.849-1.016v-3.09c0-.467.382-.773.849-.681l4.367.862c.466.092.85.548.85 1.015v3.09"/><path fill="#d0d0d0" d="m28.831 25.276c0 .233-.19.386-.425.34l-.773-.152c-.234-.046-.426-.275-.426-.508v-.772c0-.233.191-.386.426-.34l.773.153c.234.046.425.275.425.508v.771"/><path fill="#42ade2" d="m11.865 33.13l22.942 2.458-.667 21.572-21.307-4.77z"/><path fill="#ffce31" d="m16.1 31.34l18.04 14.241-8.753 6.809-18.04-4.02z"/><path fill="#83bf4f" d="m6.961 33.823l21.799 7.327-2.47 11.24h-21.804z"/><path fill="#ed4c5c" d="m2.658 41.32l22.996-.419 4.767 16.259-23.07 2.03z"/><path fill="#898a90" d="m38.494 56.47l-14.503 6.52v-6.05l14.503-6.524z"/><path fill="#3e4347" d="m24.26 63.34c0 .446-.382.735-.85.643l-22.564-4.45c-.466-.094-.848-.534-.848-.979s.382-.734.849-.643l22.564 4.451c.467.092.849.532.849.978"/><path fill="#d0d0d0" d="m0 40.26c0-.467.381-.772.849-.681l22.564 4.451c.468.093.85.549.85 1.016v17.447c0 .467-.382.773-.85.681l-22.565-4.451c-.467-.092-.848-.548-.848-1.015v-17.448"/><path fill="#3e4347" d="m15.16 55.948l-6.07-1.195v.848h.002c.021.433.394.85.848.939l4.367.861c.453.09.826-.181.848-.604v-.849z"/><path fill="#94989b" d="m15.16 55.911c0 .466-.383.773-.849.681l-4.367-.862c-.468-.092-.85-.549-.85-1.015v-3.091c0-.467.382-.771.85-.68l4.367.861c.466.092.849.549.849 1.016v3.09"/><path fill="#d0d0d0" d="m14.598 53.83c0 .233-.189.387-.424.341l-.774-.152c-.234-.047-.426-.275-.426-.508v-.772c0-.233.191-.386.426-.341l.773.153c.234.046.424.274.424.508v.771z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63.2 5.6l-28.7-5.6-22.9 7.5 7.4 13.4 44.9-14.7c-.2-.3-.4-.5-.7-.6" fill="#b9b9bf"/><path d="m63.9 6.2l-44.9 14.7 15.3 27.8 6.8 12.3 22-7.4c0 0 .8-.2.8-.7v-46.2c.1-.2 0-.3 0-.5" fill="#898a90"/><path d="m41.5 60.3c0 .5-.4.8-.8.7l-28.7-5.7c-.5-.1-.9-.5-.9-1v-46.1c0-.5.4-.8.9-.7l28.6 5.6c.5.1.8.5.8 1v46.2z" fill="#9fa1a6"/><g fill="#3e4347"><path d="m14.2 34.2c0-.5.4-.8.8-.7l22.6 4.5c.5.1.8.5.8 1v17.4c0 .5-.4.8-.8.7l-22.6-4.5c-.5-.1-.8-.5-.8-1 0 .1 0-17.4 0-17.4"/><path d="m38.5 34.9c0 .4-.4.7-.8.6l-22.6-4.5c-.5-.1-.8-.5-.8-1s.4-.7.8-.6l22.6 4.5c.4.1.8.6.8 1"/></g><path d="m14.2 11.8c0-.5.4-.8.8-.7l22.6 4.5c.5.1.8.5.8 1v17.4c0 .5-.4.8-.8.7l-22.6-4.5c-.5-.1-.8-.5-.8-1v-17.4" fill="#d0d0d0"/><path d="m23.3 26.3v.8c0 .4.4.9.8 1l4.4.9c.5.1.9-.2.9-.6v-.8l-6.1-1.3" fill="#3e4347"/><path d="m29.4 27.5c0 .5-.4.8-.9.7l-4.4-.9c-.5-.1-.8-.5-.8-1v-3.1c0-.5.4-.8.8-.7l4.4.9c.5.1.9.5.9 1 0 0 0 3.1 0 3.1" fill="#94989b"/><path d="m28.8 25.3c0 .2-.2.4-.4.3l-.8-.2c-.2 0-.4-.3-.4-.5v-.8c0-.2.2-.4.4-.3l.8.2c.2 0 .4.3.4.5v.8" fill="#d0d0d0"/><path fill="#42ade2" d="m11.9 33.1l22.9 2.5-.7 21.6-21.3-4.8z"/><path fill="#ffce31" d="m16.1 31.3l18 14.3-8.7 6.8-18.1-4z"/><path fill="#83bf4f" d="m7 33.8l21.8 7.3-2.5 11.3h-21.8z"/><path fill="#ed4c5c" d="m2.7 41.3l23-.4 4.7 16.3-23.1 2z"/><path fill="#898a90" d="m38.5 56.5l-14.5 6.5v-6.1l14.5-6.5z"/><path d="m24.3 63.3c0 .4-.4.7-.9.6l-22.6-4.4c-.4-.1-.8-.5-.8-.9s.4-.7.8-.6l22.6 4.5c.5 0 .9.4.9.8" fill="#3e4347"/><path d="m0 40.3c0-.5.4-.8.8-.7l22.6 4.4c.5.1.9.5.9 1v17.4c0 .5-.4.8-.9.7l-22.6-4.4c-.5-.1-.8-.5-.8-1v-17.4" fill="#d0d0d0"/><path d="m15.2 55.9l-6.1-1.2v.8c0 .4.4.8.8.9l4.4.9c.5.1.8-.2.8-.6l.1-.8" fill="#3e4347"/><path d="m15.2 55.9c0 .5-.4.8-.8.7l-4.4-.9c-.5-.1-.9-.5-.9-1v-3.1c0-.5.4-.8.9-.7l4.4.9c.5.1.8.5.8 1 0 0 0 3.1 0 3.1" fill="#94989b"/><path d="m14.6 53.8c0 .2-.2.4-.4.3l-.8-.1c-.2 0-.4-.3-.4-.5v-.8c0-.2.2-.4.4-.3l.8.2c.2 0 .4.3.4.5v.7" fill="#d0d0d0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5d1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5d1.svg
index 0b22a9a..a83f728 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5d1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5d1.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b1bcc4" d="M4.928,24.545l3.23,25.675C8.159,57.832,18.273,64,30.749,64c12.475,0,22.589-6.168,22.589-13.779
- l3.23-25.675H4.928z"/><g fill="#cad5dd"><path d="m9.104 24.545l2.708 25.675c0 7.612 8.478 13.78 18.937 13.78 10.458 0 18.936-6.168 18.936-13.779l2.707-25.675h-43.29z"/><ellipse cx="30.748" cy="25.16" rx="25.82" ry="11.73"/></g><ellipse fill="#333" cx="30.749" cy="24.545" rx="21.09" ry="9.578"/><path fill="#efd57f" d="m17.289 26.366c.426 3.295-4.921-3.653-6.531-1.578-.813 1.056 3.563 6.469 3.563 6.469l11-4.891c0 0 .963-8.588-.5-7.02-3.553 3.818-8.251 1.448-7.532 7.02"/><path fill="#fee790" d="m22.789 26.366c-3.369-.534-2.446-6.163-5-5.515-3.469.88-.938 5.313-7.162 8.123 0 0 18.13 12.377 19.622-.136 0 .138-3.043-6.761-4.929-6.174-1.07.333-.24 4.063-2.531 3.702"/><path fill="#efd57f" d="m33.32 25.664c-.33 3.306 8.531 9.532 8.531 9.532l11.844-9.625c0 0-3.809-1.097-4.969-2.625-.818-1.078-2.031-4.201-4.355-3.789-2.619.464-1.801 4.783-3.11 5.766-1.595 1.196-7.721-1.489-7.941.741"/><path fill="#fee790" d="m48.882 20.414c-1.143-.946-14.13 8.329-14.165 8.561-.353 2.156 5.082 1.952 5.815 2.02-.795 4.208 13.458.109 13.807-2.158-1.055-2.457-2.973-3.583-5.754-3.378-.281-.046 2.326-3.371.297-5.05"/><path fill="#428bc1" d="m23.592 35.453c-.833 1.107 17.16-.59 17.38-.854 1.39-1.702-3.419-4.108-4.03-4.522 2.864-3.307.845-4.371-3.236-3.292.399-6.783-1.245-8.54-4.484.009-1.185-.629-5.394-.051-6.304 2.088-1.038 2.444 4.844 1.038.679 6.571"/><path fill="#42ade2" d="m27.299 21.784c-1.806.502-1.097 12.562 1.257 13.155-.163.284-2.504 2.789-1.528 3.642 1.628 1.418 8.936-4.743 8.56-6.484 6.798.796 9.05-.707.287-4.32.692-1.038 3.884-4.092 1.796-5.109-2.41-1.174-4.438 3.098-6.082 2.792-1.388-.259-1.743-4.389-4.29-3.676"/><g fill="#b1bcc4"><path d="m51.695 32.01l-2.01 18.211c.001 7.611-8.478 13.779-18.935 13.779 12.475 0 22.589-6.168 22.589-13.779l2.983-23.46c-.585 1.941-2.215 3.731-4.626 5.249"/><path d="m11.812 50.22l-2.01-18.211c-2.41-1.518-4.04-3.308-4.627-5.25l2.985 23.46c.001 7.612 10.115 13.78 22.591 13.78-10.459 0-18.937-6.168-18.937-13.779"/></g><path fill="#cad5dd" d="m56.57 24.545h-.035c-.7-6.194-11.977-11.12-25.785-11.12-13.81 0-25.09 4.924-25.786 11.12h-.034l.022.204c-.012.136-.022.271-.022.407 0 .544.088 1.08.245 1.604.585 1.942 2.217 3.732 4.627 5.25l2.01 18.211c0 7.611 8.478 13.779 18.937 13.779 10.458 0 18.936-6.168 18.936-13.779l2.01-18.211c2.411-1.518 4.04-3.308 4.626-5.25.158-.525.247-1.06.247-1.604 0-.136-.013-.271-.021-.407l.02-.204m-25.819 9.578c-11.645 0-21.09-4.288-21.09-9.578s9.44-9.578 21.09-9.578c11.643 0 21.09 4.289 21.09 9.578s-9.442 9.578-21.09 9.578"/><g fill="#7d8b91"><path transform="matrix(.9824-.1867.1867.9824-10.405 2.948)" d="m9.397 55.899h2.102v1.61h-2.102z"/><path transform="matrix(.9825-.1863.1863.9825-10.151 5.414)" d="m22.685 55.917h2.102v1.609h-2.102z"/><path d="m13.705 52.58c0 0 4.132 3.799 11.214 4.736 0 0-.755 5.554-2.705 6.398-3.25 1.406-11.998-2.663-12.648-6.02-.333-1.711 4.139-5.111 4.139-5.111"/></g><path fill="#dfe9ef" d="m13.406 51c0 0 4.131 3.799 11.214 4.736 0 0-.756 5.553-2.706 6.396-3.249 1.408-11.997-2.662-12.648-6.02-.332-1.709 4.14-5.109 4.14-5.109"/><path fill="#fff" d="m54.37 29.92c-1.276 1.729-3.058 3.04-4.899 4.159-1.869 1.094-3.877 1.958-5.947 2.602-4.146 1.312-8.494 1.797-12.814 1.815-4.291-.025-8.65-.464-12.807-1.731-2.078-.624-4.098-1.47-5.969-2.568-1.839-1.125-3.626-2.468-4.797-4.276 1.504 1.509 3.354 2.555 5.248 3.405 1.9.854 3.896 1.462 5.919 1.933 4.059.91 8.228 1.25 12.419 1.239 4.16.02 8.339-.362 12.384-1.315 2.02-.491 4.01-1.118 5.914-1.971 1.904-.849 3.758-1.876 5.349-3.292"/><path fill="#b1bcc4" d="m58.42 14.675l.622-3.603c.642-2.869-10.79-7.446-22.13-9.583-11.336-2.136-23.805-2.064-24.448.804l-.973 3.538 46.926 8.844"/><path fill="#cad5dd" d="m55.35 14.1l.646-3.598c.64-2.868-9.229-7.15-19.08-9.01-9.852-1.857-20.758-1.49-21.401 1.378l-.949 3.542 40.787 7.686"/><path fill="#7d8b91" d="m11.551 5.601c.545-2.441 11.491-2.44 24.449.002 12.958 2.442 23.02 6.401 22.475 8.842-.545 2.441-11.492 2.44-24.449-.002-12.959-2.442-23.02-6.402-22.475-8.842"/><path fill="#333" d="m15.803 6.642c.443-1.993 9.385-1.993 19.965.001 10.58 1.994 18.797 5.227 18.353 7.221-.446 1.993-9.386 1.991-19.968-.001-10.579-1.995-18.797-5.228-18.35-7.221"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m4.9 24.5l3.2 25.7c.1 7.6 10.2 13.8 22.6 13.8 12.5 0 22.6-6.2 22.6-13.8l3.2-25.7h-51.6" fill="#b1bcc4"/><g fill="#cad5dd"><path d="m9.1 24.5l2.7 25.7c0 7.6 8.5 13.8 18.9 13.8 10.5 0 18.9-6.2 18.9-13.8l2.7-25.7h-43.2"/><ellipse cx="30.7" cy="25.2" rx="25.8" ry="11.7"/></g><ellipse cx="30.7" cy="24.5" rx="21.1" ry="9.6" fill="#333"/><path d="m17.3 26.4c.4 3.3-4.9-3.7-6.5-1.6-.8 1.1 3.6 6.5 3.6 6.5l11-4.9c0 0 1-8.6-.5-7-3.6 3.8-8.3 1.4-7.6 7" fill="#efd57f"/><path d="m22.8 26.4c-3.4-.5-2.4-6.2-5-5.5-3.5.9-.9 5.3-7.2 8.1 0 0 18.1 12.4 19.6-.1 0 .1-3-6.8-4.9-6.2-1.1.3-.2 4-2.5 3.7" fill="#fee790"/><path d="m33.3 25.7c-.3 3.3 8.5 9.5 8.5 9.5l11.8-9.6c0 0-3.8-1.1-5-2.6-.8-1.1-2-4.2-4.4-3.8-2.6.5-1.8 4.8-3.1 5.8-1.4 1.1-7.6-1.6-7.8.7" fill="#efd57f"/><path d="m48.9 20.4c-1.1-.9-14.1 8.3-14.2 8.6-.4 2.2 5.1 2 5.8 2-.8 4.2 13.5.1 13.8-2.2-1.1-2.5-3-3.6-5.8-3.4-.2 0 2.4-3.3.4-5" fill="#fee790"/><path d="m23.6 35.5c-.8 1.1 17.2-.6 17.4-.9 1.4-1.7-3.4-4.1-4-4.5 2.9-3.3.8-4.4-3.2-3.3.4-6.8-1.2-8.5-4.5 0-1.2-.6-5.4-.1-6.3 2.1-1.1 2.4 4.8 1 .6 6.6" fill="#428bc1"/><path d="m27.3 21.8c-1.8.5-1.1 12.6 1.3 13.2-.2.3-2.5 2.8-1.5 3.6 1.6 1.4 8.9-4.7 8.6-6.5 6.8.8 9-.7.3-4.3.7-1 3.9-4.1 1.8-5.1-2.4-1.2-4.4 3.1-6.1 2.8-1.5-.3-1.9-4.4-4.4-3.7" fill="#42ade2"/><g fill="#b1bcc4"><path d="m51.7 32l-2 18.2c0 7.6-8.5 13.8-18.9 13.8 12.5 0 22.6-6.2 22.6-13.8l3-23.5c-.7 2-2.3 3.8-4.7 5.3"/><path d="m11.8 50.2l-2-18.2c-2.4-1.5-4-3.3-4.6-5.2l3 23.5c0 7.5 10.1 13.7 22.5 13.7-10.4 0-18.9-6.2-18.9-13.8"/></g><path d="m56.6 24.5c-.7-6.2-12-11.1-25.8-11.1-13.9 0-25.1 4.9-25.8 11.1v.2c0 .1 0 .3 0 .4 0 .5.1 1.1.2 1.6.6 1.9 2.2 3.7 4.6 5.3l2 18.2c0 7.6 8.5 13.8 18.9 13.8 10.5 0 18.9-6.2 18.9-13.8l2-18.2c2.4-1.5 4-3.3 4.6-5.2.2-.5.2-1.1.2-1.6 0-.1 0-.3 0-.4l.2-.3m-25.9 9.6c-11.6 0-21.1-4.3-21.1-9.6s9.5-9.5 21.1-9.5c11.6 0 21.1 4.3 21.1 9.6s-9.4 9.5-21.1 9.5" fill="#cad5dd"/><g fill="#7d8b91"><path transform="matrix(.9824-.1867.1867.9824-10.403 2.9474)" d="m9.4 55.9h2.1v1.6h-2.1z"/><path transform="matrix(.9825-.1863.1863.9825-10.1515 5.4152)" d="m22.7 55.9h2.1v1.6h-2.1z"/><path d="m13.7 52.6c0 0 4.1 3.8 11.2 4.7 0 0-.8 5.6-2.7 6.4-3.2 1.4-12-2.7-12.6-6-.4-1.7 4.1-5.1 4.1-5.1"/></g><path d="m13.4 51c0 0 4.1 3.8 11.2 4.7 0 0-.8 5.6-2.7 6.4-3.2 1.4-12-2.7-12.6-6-.4-1.7 4.1-5.1 4.1-5.1" fill="#dfe9ef"/><path d="m54.4 29.9c-1.3 1.7-3.1 3-4.9 4.2-1.9 1.1-3.9 2-5.9 2.6-4.1 1.3-8.5 1.8-12.8 1.8-4.3 0-8.6-.5-12.8-1.7-2.1-.6-4.1-1.5-6-2.6-1.8-1.1-3.6-2.5-4.8-4.3 1.5 1.5 3.4 2.6 5.2 3.4 1.9.9 3.9 1.5 5.9 1.9 4.1.9 8.2 1.2 12.4 1.2 4.2 0 8.3-.4 12.4-1.3 2-.5 4-1.1 5.9-2 1.9-.7 3.8-1.8 5.4-3.2" fill="#fff"/><path d="m58.4 14.7l.6-3.6c.6-2.9-10.8-7.4-22.1-9.6-11.3-2.1-23.8-2.1-24.4.8l-1 3.5 46.9 8.9" fill="#b1bcc4"/><path d="m55.4 14.1l.6-3.6c.6-2.9-9.2-7.2-19.1-9-9.8-1.9-20.7-1.5-21.4 1.4l-.9 3.5 40.8 7.7" fill="#cad5dd"/><path d="M11.6,5.6C12.1,3.2,23,3.2,36,5.6s23,6.4,22.5,8.8c-0.5,2.4-11.5,2.4-24.4,0C21.1,12,11,8,11.6,5.6z" fill="#7d8b91"/><path d="m15.8 6.6c.4-2 9.4-2 20 0s18.8 5.2 18.4 7.2c-.4 2-9.4 2-20 0-10.6-1.9-18.8-5.2-18.4-7.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5d2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5d2.svg
index c74ab1e..edfd8d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5d2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5d2.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#93a2aa" d="m60 58.24c0 2.07-1.728 3.749-3.86 3.749h-45.39c-2.133 0-3.86-1.679-3.86-3.749v-44.37c0-2.071 1.728-3.75 3.86-3.75h45.39c2.133 0 3.86 1.679 3.86 3.75v44.37"/><path fill="#f0f4f5" d="m57.11 58.24c0 2.07-1.73 3.749-3.863 3.749h-45.39c-2.133 0-3.862-1.678-3.862-3.749v-44.37c0-2.071 1.729-3.75 3.862-3.75h45.39c2.133 0 3.863 1.679 3.863 3.75v44.37"/><path fill="#93a2aa" d="m52.28 56.37c-6.38 6.191-17.98 5.619-17.98 5.619s8.488-2.453 16.334-11.729c5.866-6.936 6.481-15.289 6.481-15.289s3.523 13.286-4.835 21.399"/><g fill="#3e4347"><ellipse cx="13.07" cy="16.994" rx="2.897" ry="2.812"/><ellipse cx="24.774" cy="16.994" rx="2.897" ry="2.812"/><ellipse cx="36.34" cy="16.994" rx="2.896" ry="2.812"/><ellipse cx="47.899" cy="16.994" rx="2.896" ry="2.812"/><path d="m40.567 4.604c-.623-1.226-1.678-2.544-3.576-2.603-1.834-.058-1.855 2.091-.09 2.217.004.002.008.003.015.003-.052.008.409.31.265.164.424.43.643.867.852 1.353.606 1.407.773 2.905.785 4.379h2.889c-.013-1.848-.261-3.779-1.14-5.513m-3.624-.383c.012.003.026.007.046.011-.02-.003-.037-.008-.053-.011.002 0 .002 0 .007 0"/><path d="m29 4.604c-.62-1.226-1.676-2.544-3.574-2.603-1.836-.058-1.857 2.091-.09 2.217.002.002.009.003.012.003-.051.008.41.31.266.164.424.43.643.867.853 1.353.605 1.407.772 2.905.782 4.379h2.891c-.013-1.848-.263-3.779-1.14-5.513m-3.624-.383c.013.003.026.007.046.011-.02-.003-.037-.008-.05-.011 0 0 .003 0 .004 0"/><path d="m17.444 4.604c-.62-1.226-1.68-2.544-3.578-2.603-1.832-.058-1.854 2.091-.088 2.217.005.002.008.003.013.003-.051.008.41.31.266.164.425.43.642.867.854 1.353.603 1.407.771 2.905.781 4.379h2.891c-.014-1.848-.261-3.779-1.139-5.513m-3.626-.383c.014.003.027.007.047.011-.02-.003-.036-.008-.052-.011.002 0 .004 0 .005 0"/><path d="m52.13 4.604c-.621-1.226-1.678-2.544-3.576-2.603-1.833-.058-1.855 2.091-.088 2.217.002.002.008.003.01.003-.049.008.41.31.269.164.423.43.642.867.851 1.353.605 1.407.773 2.905.782 4.379h2.892c-.013-1.848-.263-3.779-1.14-5.513m-3.627-.383c.013.003.027.007.049.011-.021-.003-.037-.008-.053-.011.002 0 .004 0 .004 0"/></g><g fill="#94989b"><path d="m36.34 16.01c-.334-.01.33.064.004-.007.336.073.08.022-.024-.026.359.169-.339-.302-.169-.128-.424-.43-.643-.866-.852-1.353-.604-1.407-.773-2.906-.783-4.379-.01-1.48.207-2.963.783-4.379.191-.468.408-.841.771-1.265.049-.057.125-.129.364-.288-.255.169-.002.021.069-.008-.193.059-.213.07-.067.034-.227.016-.257.019-.097.013 1.859-.058 1.866-2.282 0-2.223-1.923.06-2.919 1.381-3.575 2.603-.913 1.709-1.128 3.685-1.14 5.513-.012 1.84.266 3.788 1.14 5.513.622 1.226 1.679 2.545 3.575 2.604 1.867.058 1.86-2.166.001-2.224"/><path d="m24.775 16.01c-.337-.01.328.064.003-.007.334.073.079.022-.024-.026.356.169-.341-.302-.17-.128-.425-.43-.644-.866-.851-1.353-.605-1.407-.773-2.906-.783-4.379-.01-1.48.205-2.963.783-4.379.189-.468.406-.841.77-1.265.049-.057.127-.129.365-.288-.256.169-.003.021.068-.008-.191.059-.215.07-.064.034-.227.016-.26.019-.097.013 1.856-.058 1.863-2.282 0-2.223-1.923.06-2.923 1.381-3.576 2.603-.915 1.709-1.127 3.685-1.14 5.513-.012 1.84.266 3.788 1.14 5.513.62 1.226 1.677 2.545 3.576 2.604 1.864.058 1.857-2.166 0-2.224"/><path d="m13.212 16.01c-.336-.01.329.064.004-.007.338.073.079.022-.023-.026.357.169-.34-.302-.171-.128-.423-.43-.64-.866-.852-1.353-.606-1.407-.771-2.906-.783-4.379-.01-1.48.209-2.963.783-4.379.191-.468.409-.841.773-1.265.048-.057.124-.129.362-.288-.254.169-.002.021.068-.008-.191.059-.212.07-.063.034-.228.016-.26.019-.1.013 1.857-.058 1.865-2.282 0-2.223-1.922.06-2.921 1.381-3.575 2.603-.91 1.709-1.125 3.685-1.137 5.513-.013 1.84.266 3.788 1.139 5.513.622 1.226 1.679 2.545 3.575 2.604 1.865.058 1.857-2.166 0-2.224"/><path d="m47.897 16.01c-.334-.01.33.064.004-.007.336.073.08.022-.023-.026.357.169-.342-.302-.17-.128-.424-.43-.643-.866-.851-1.353-.606-1.407-.774-2.906-.784-4.379-.009-1.48.207-2.963.784-4.379.19-.468.405-.841.771-1.265.049-.057.127-.129.363-.288-.254.169-.001.021.07-.008-.192.059-.215.07-.066.034-.225.016-.258.019-.098.013 1.858-.058 1.865-2.282 0-2.223-1.922.06-2.922 1.381-3.574 2.603-.915 1.709-1.127 3.685-1.14 5.513-.013 1.84.267 3.788 1.14 5.513.621 1.226 1.677 2.545 3.574 2.604 1.866.058 1.859-2.166 0-2.224"/></g><g fill="#7d8b91"><path d="m8.698 25.24h42.891v2.78h-42.891z"/><path d="m8.698 33.579h42.891v2.78h-42.891z"/><path d="m8.698 41.919h42.891v2.78h-42.891z"/><path d="m30.14 50.26h16.618v2.78h-16.618z"/></g><path fill="#d7dadb" d="m57.11 34.969c0 12.889-9.579 27.02-22.815 27.02 0 0 5.371-2.98 5.371-13.936 15.09 0 17.444-13.08 17.444-13.08"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 58.2c0 2.1-1.7 3.7-3.9 3.7h-45.3c-2.1 0-3.9-1.7-3.9-3.7v-44.3c0-2.1 1.7-3.8 3.9-3.8h45.4c2.1 0 3.9 1.7 3.9 3.8v44.3z" fill="#93a2aa"/><path d="M57.1,58.2c0,2.1-1.7,3.7-3.9,3.7H7.9C5.7,62,4,60.3,4,58.2V13.9c0-2.1,1.7-3.8,3.9-3.8h45.4
+ c2.1,0,3.9,1.7,3.9,3.8V58.2z" fill="#f0f4f5"/><path d="m52.3 56.4c-6.4 6.2-18 5.6-18 5.6s8.5-2.5 16.3-11.7c5.9-6.9 6.5-15.3 6.5-15.3s3.5 13.3-4.8 21.4" fill="#93a2aa"/><g fill="#3e4347"><ellipse cx="13.1" cy="17" rx="2.9" ry="2.8"/><ellipse cx="24.8" cy="17" rx="2.9" ry="2.8"/><ellipse cx="36.3" cy="17" rx="2.9" ry="2.8"/><ellipse cx="47.9" cy="17" rx="2.9" ry="2.8"/><path d="m40.6 4.6c-.7-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.9 2.1-.1 2.2-.1 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c-.1-1.9-.4-3.9-1.2-5.6m-3.7-.4c.1 0 .1 0 0 0"/><path d="m29 4.6c-.6-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.9 2.1-.1 2.2-.1 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c-.1-1.9-.3-3.9-1.2-5.6m-3.6-.4c0 0 0 0 0 0"/><path d="m17.4 4.6c-.6-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.8 2.1 0 2.2-.1 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c-.1-1.9-.4-3.9-1.3-5.6m-3.6-.4c0 0 0 0 0 0"/><path d="m52.1 4.6c-.6-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.9 2.1-.1 2.2 0 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c0-1.9-.3-3.9-1.2-5.6m-3.6-.4c0 0 0 0 0 0"/></g><g fill="#94989b"><path d="m36.3 16c-.3 0 .4.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.1-2.9 1.4-3.6 2.6-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.9.3 1.9-1.9 0-2"/><path d="m24.8 16c-.4 0 .3.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.1-2.9 1.4-3.6 2.6-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.8.3 1.8-1.9 0-2"/><path d="m13.2 16c-.3 0 .3.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.1-2.9 1.4-3.6 2.6-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.9.3 1.9-1.9 0-2"/><path d="m47.9 16c-.3 0 .3.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.3-2.9 1.6-3.6 2.8-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.9.1 1.9-2.1 0-2.2"/></g><g fill="#7d8b91"><path d="m8.7 25.2h42.9v2.8h-42.9z"/><path d="m8.7 33.6h42.9v2.8h-42.9z"/><path d="m8.7 41.9h42.9v2.8h-42.9z"/><path d="m30.1 50.3h16.6v2.8h-16.6z"/></g><path d="m57.1 35c0 12.9-9.6 27-22.8 27 0 0 5.4-3 5.4-13.9 15.1 0 17.4-13.1 17.4-13.1" fill="#d7dadb"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5d3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5d3.svg
index acdd410..abe8a94 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5d3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5d3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#93a2aa" d="m61 60c0 2.209-1.789 4-3.998 4h-47.01c-2.209 0-3.999-1.791-3.999-4v-47.34c0-2.209 1.79-4 3.999-4h47.01c2.209 0 3.998 1.791 3.998 4v47.34"/><path fill="#ed4c5c" d="m58.01 12.661c0-2.209-1.792-4-4-4h-47.01c-2.209 0-4 1.791-4 4v22.673h55.01v-22.673"/><path fill="#d9e3e8" d="m3 35.33v24.666c0 2.209 1.792 4 4 4h47.01c2.209 0 4-1.791 4-4v-24.666h-55.01"/><g fill="#3e4347"><circle cx="12.397" cy="15.998" r="3"/><circle cx="24.516" cy="15.998" r="3"/><circle cx="36.49" cy="15.998" r="3"/><circle cx="48.47" cy="15.998" r="3"/><path d="m40.873 2.778c-.645-1.308-1.737-2.715-3.704-2.777-1.898-.062-1.922 2.231-.092 2.365.003.002.008.003.014.004-.054.008.424.33.275.175.438.459.665.925.882 1.443.627 1.501.801 3.1.813 4.672h2.992c-.013-1.972-.27-4.03-1.18-5.882m-3.754-.409c.014.004.027.008.048.012-.021-.004-.038-.009-.054-.012.002 0 .002 0 .006 0"/><path d="m28.898 2.778c-.644-1.308-1.736-2.715-3.703-2.777-1.9-.062-1.923 2.231-.093 2.365.003.002.009.003.012.004-.052.008.424.33.276.175.439.459.666.925.883 1.443.626 1.501.8 3.1.81 4.672h2.995c-.013-1.972-.271-4.03-1.18-5.882m-3.754-.409c.014.004.027.008.048.012-.021-.004-.038-.009-.052-.012 0 0 .002 0 .004 0"/><path d="m16.925 2.778c-.643-1.308-1.739-2.715-3.706-2.777-1.897-.062-1.921 2.231-.092 2.365.005.002.008.003.014.004-.052.008.425.33.275.175.439.459.665.925.884 1.443.625 1.501.799 3.1.81 4.672h2.994c-.015-1.972-.271-4.03-1.179-5.882m-3.756-.409c.014.004.028.008.048.012-.02-.004-.037-.009-.053-.012.002 0 .003 0 .005 0"/><path d="m52.849 2.778c-.643-1.308-1.737-2.715-3.704-2.777-1.898-.062-1.922 2.231-.091 2.365.003.002.008.003.01.004-.051.008.426.33.278.175.438.459.665.925.881 1.443.627 1.501.801 3.1.811 4.672h2.995c-.013-1.972-.271-4.03-1.18-5.882m-3.756-.409c.013.004.028.008.05.012-.021-.004-.038-.009-.055-.012.002 0 .005 0 .005 0"/></g><g fill="#94989b"><path d="m36.49 14.948c-.347-.011.341.068.004-.008.348.078.082.023-.025-.027.372.18-.352-.322-.176-.137-.438-.459-.664-.924-.881-1.443-.627-1.501-.801-3.1-.812-4.672-.01-1.579.215-3.161.812-4.672.198-.499.423-.897.799-1.35.051-.061.13-.138.377-.308-.264.181-.002.022.071-.008-.2.063-.221.074-.069.036-.234.017-.266.021-.1.014 1.925-.062 1.932-2.435 0-2.372-1.991.063-3.02 1.474-3.703 2.777-.946 1.823-1.168 3.932-1.18 5.882-.013 1.964.274 4.04 1.18 5.882.644 1.308 1.738 2.716 3.703 2.778 1.932.062 1.925-2.311 0-2.372"/><path d="m24.517 14.948c-.348-.011.34.068.002-.008.349.078.083.023-.023-.027.369.18-.354-.322-.176-.137-.439-.459-.666-.924-.882-1.443-.627-1.501-.802-3.1-.811-4.672-.01-1.579.213-3.161.811-4.672.196-.499.421-.897.798-1.35.05-.061.131-.138.378-.308-.265.181-.003.022.071-.008-.198.063-.223.074-.067.036-.234.017-.269.021-.101.014 1.924-.062 1.93-2.435 0-2.372-1.992.063-3.03 1.474-3.703 2.777-.948 1.823-1.168 3.932-1.181 5.882-.013 1.964.275 4.04 1.181 5.882.643 1.308 1.736 2.716 3.703 2.778 1.929.062 1.923-2.311 0-2.372"/><path d="m12.541 14.948c-.348-.011.341.068.003-.008.351.078.083.023-.023-.027.371.18-.354-.322-.177-.137-.438-.459-.663-.924-.882-1.443-.628-1.501-.8-3.1-.812-4.672-.011-1.579.216-3.161.812-4.672.197-.499.422-.897.801-1.35.05-.061.128-.138.375-.308-.264.181-.002.022.071-.008-.198.063-.22.074-.065.036-.234.017-.27.021-.103.014 1.924-.062 1.932-2.435 0-2.372-1.991.063-3.03 1.474-3.703 2.777-.946 1.824-1.167 3.932-1.18 5.882-.013 1.964.276 4.04 1.18 5.882.645 1.308 1.737 2.716 3.703 2.778 1.932.062 1.924-2.311 0-2.372"/><path d="m48.47 14.948c-.345-.011.342.068.004-.008.349.078.083.023-.023-.027.369.18-.354-.322-.177-.137-.438-.459-.665-.924-.881-1.443-.627-1.501-.802-3.1-.812-4.672-.01-1.579.215-3.161.812-4.672.197-.499.42-.897.798-1.35.051-.061.132-.138.377-.308-.264.181-.002.022.072-.008-.199.063-.223.074-.068.036-.233.017-.268.021-.102.014 1.925-.062 1.932-2.435 0-2.372-1.99.063-3.02 1.474-3.701 2.777-.947 1.823-1.168 3.932-1.181 5.882-.014 1.964.275 4.04 1.181 5.882.643 1.308 1.736 2.716 3.701 2.778 1.931.062 1.925-2.311 0-2.372"/></g><g fill="#d0d0d0"><path d="m33.553 8.66c.013-1.652.224-3.31.849-4.893.281-.708.912-2.188 2.089-2.225.578-.019.58-.73 0-.712-1.445.046-2.211 1.243-2.692 2.168-.913 1.76-1.131 3.778-1.142 5.661-.005.46.894.46.896.001"/><path d="m21.578 8.66c.011-1.652.224-3.31.85-4.893.278-.708.91-2.188 2.089-2.225.577-.019.579-.73 0-.712-1.445.046-2.212 1.243-2.695 2.168-.912 1.76-1.129 3.778-1.141 5.661-.002.46.894.46.897.001"/><path d="m9.604 8.66c.011-1.652.223-3.31.847-4.893.281-.708.912-2.188 2.09-2.225.577-.019.58-.73 0-.712-1.446.046-2.212 1.243-2.692 2.168-.914 1.76-1.13 3.778-1.143 5.661-.003.46.895.46.898.001"/><path d="m45.528 8.66c.011-1.652.223-3.31.85-4.893.278-.708.91-2.188 2.087-2.225.577-.019.58-.73 0-.712-1.443.046-2.211 1.243-2.691 2.168-.914 1.76-1.131 3.778-1.143 5.661-.005.46.894.46.897.001"/></g><g fill="#fff"><path d="m19.62 29.04c.067.48.202.839.4 1.076.363.433.987.648 1.869.648.529 0 .959-.057 1.289-.171.626-.218.938-.624.938-1.219 0-.347-.153-.615-.46-.806-.307-.185-.793-.349-1.458-.491l-1.137-.249c-1.119-.248-1.887-.516-2.305-.806-.708-.485-1.062-1.243-1.062-2.273 0-.941.346-1.722 1.039-2.345.692-.623 1.709-.934 3.052-.934 1.12 0 2.076.293 2.867.88.791.586 1.206 1.438 1.244 2.555h-2.109c-.039-.632-.321-1.081-.848-1.347-.351-.176-.786-.264-1.308-.264-.58 0-1.042.114-1.388.342s-.519.546-.519.955c0 .375.171.656.512.841.219.124.684.269 1.396.435l1.844.435c.808.189 1.413.443 1.815.762.626.494.939 1.21.939 2.146 0 .959-.37 1.756-1.112 2.391-.743.635-1.79.951-3.145.951-1.384 0-2.471-.313-3.263-.938-.793-.625-1.189-1.483-1.189-2.576h2.099z"/><path d="m35.541 23.641h-5.559v2.23h5.103v1.825h-5.103v2.7h5.815v1.889h-7.961v-10.504h7.704v1.86z"/><path d="m44.56 27.738c-.613.514-1.492.771-2.634.771h-2.187v3.776h-2.182v-10.504h4.511c1.04 0 1.869.271 2.487.812.618.542.928 1.38.928 2.516 0 1.24-.307 2.118-.923 2.629m-1.674-3.783c-.278-.233-.668-.349-1.169-.349h-1.978v3.094h1.978c.501 0 .891-.127 1.169-.378.277-.252.416-.651.416-1.197s-.139-.937-.416-1.17"/></g><g fill="#333"><path d="m16.337 45.39v-2.899c1.426-.06 2.422-.149 2.99-.269.907-.189 1.647-.568 2.216-1.137.392-.389.685-.906.886-1.554.116-.388.175-.677.175-.866h3.775v21.668h-4.632v-14.943h-5.41"/><path d="m32.629 45.39v-2.899c1.425-.06 2.422-.149 2.99-.269.907-.189 1.647-.568 2.216-1.137.392-.389.685-.906.886-1.554.116-.388.175-.677.175-.866h3.775v21.668h-4.633v-14.943h-5.409"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60 58.2c0 2.1-1.7 3.8-3.9 3.8h-45.3c-2.1 0-3.9-1.7-3.9-3.8v-44.3c0-2.1 1.7-3.8 3.9-3.8h45.4c2.1 0 3.9 1.7 3.9 3.8v44.3z" fill="#93a2aa"/><path d="M57.1,13.9c0-2.1-1.7-3.8-3.9-3.8H7.9c-2.1,0-3.9,1.7-3.9,3.8v21.3h53.1V13.9z" fill="#ed4c5c"/><path d="M4,35.1v23.1C4,60.3,5.7,62,7.9,62h45.4c2.1,0,3.9-1.7,3.9-3.8V35.1H4z" fill="#d9e3e8"/><g fill="#3e4347"><ellipse cx="13.1" cy="17" rx="2.9" ry="2.8"/><ellipse cx="24.8" cy="17" rx="2.9" ry="2.8"/><ellipse cx="36.3" cy="17" rx="2.9" ry="2.8"/><ellipse cx="47.9" cy="17" rx="2.9" ry="2.8"/><path d="m40.6 4.6c-.7-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.9 2.1-.1 2.2 0 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c-.1-1.9-.4-3.9-1.2-5.6m-3.7-.4c.1 0 .1 0 0 0"/><path d="m29 4.6c-.6-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.9 2.1-.1 2.2 0 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c-.1-1.9-.3-3.9-1.2-5.6m-3.6-.4c0 0 0 0 0 0"/><path d="m17.4 4.6c-.6-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.8 2.1 0 2.2 0 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c-.1-1.9-.4-3.9-1.3-5.6m-3.6-.4c0 0 0 0 0 0"/><path d="m52.1 4.6c-.6-1.2-1.7-2.5-3.6-2.6-1.8-.1-1.9 2.1-.1 2.2 0 0 .4.3.3.2.4.4.6.9.9 1.4.6 1.4.8 2.9.8 4.4h2.9c0-1.9-.3-3.9-1.2-5.6m-3.6-.4c0 0 0 0 0 0"/></g><g fill="#94989b"><path d="m36.3 16c-.3 0 .4.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.8-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3.1-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.1-2.9 1.4-3.6 2.6-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.8.3 1.8-1.9-.1-2"/><path d="m24.8 16c-.4 0 .3.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.1-2.9 1.4-3.6 2.6-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.8.3 1.8-1.9 0-2"/><path d="m13.2 16c-.3 0 .3.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.1-2.9 1.4-3.6 2.6-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.9.3 1.9-1.9 0-2"/><path d="m47.9 16c-.3 0 .3.1 0 0 .3.1-.4-.3-.2-.2-.4-.4-.6-.9-.9-1.4-.6-1.4-.8-2.9-.8-4.4 0-1.5.2-3 .8-4.4.2-.5.4-.8.8-1.3 0-.1.1-.1.4-.3-.3.2 0 0 .1 0-.2.1-.2.1-.1 0-.2 0-.3 0-.1 0 1.9-.1 1.9-2.3 0-2.2-1.9.3-2.9 1.6-3.6 2.8-.9 1.7-1.1 3.7-1.1 5.5 0 1.8.3 3.8 1.1 5.5.6 1.2 1.7 2.5 3.6 2.6 1.9.1 1.9-2.1 0-2.2"/></g><g fill="#d0d0d0"><path d="m33.5 10.1c0-1.5.2-3.1.8-4.6.3-.7.9-2.1 2-2.1.6 0 .6-.7 0-.7-1.4 0-2.1 1.2-2.6 2-.9 1.7-1.1 3.5-1.1 5.3 0 .6.9.6.9.1"/><path d="m21.9 10.1c0-1.5.2-3.1.8-4.6.3-.7.9-2.1 2-2.1.6 0 .6-.7 0-.7-1.4 0-2.1 1.2-2.6 2-.9 1.7-1.1 3.5-1.1 5.3.1.6.9.6.9.1"/><path d="m10.4 10.1c0-1.5.2-3.1.8-4.6.3-.7.9-2.1 2-2.1.6 0 .6-.7 0-.7-1.4 0-2.1 1.2-2.6 2-.9 1.7-1.1 3.5-1.1 5.3 0 .6.9.6.9.1"/><path d="m45.1 10.1c0-1.5.2-3.1.8-4.6.3-.7.9-2.1 2-2.1.6 0 .6-.7 0-.7-1.4 0-2.1 1.2-2.6 2-.9 1.7-1.1 3.5-1.1 5.3 0 .6.9.6.9.1"/></g><g fill="#fff"><path d="m19.1 28.4v.2c0 .8.1 1.4.3 1.7.1.3.5.5 1 .5.5 0 .8-.2 1-.5.1-.2.1-.6.1-1.1v-7.2h2.2v7.1c0 .9-.2 1.6-.5 2.1-.5.9-1.4 1.3-2.8 1.3s-2.2-.3-2.7-1c-.5-.7-.7-1.6-.7-2.9v-.2h2.1"/><path d="m26 22.1h2.2v6.3c0 .7.1 1.2.3 1.5.3.6.8.9 1.7.9.9 0 1.5-.3 1.7-.9.2-.3.3-.8.3-1.5v-6.3h2.2v6.3c0 1.1-.2 1.9-.5 2.5-.7 1.1-1.9 1.7-3.7 1.7s-3.1-.6-3.7-1.7c-.3-.6-.5-1.5-.5-2.5v-6.3"/><path d="m36.6 22.1h2.2v8.4h5.3v1.8h-7.5v-10.2"/></g><g fill="#333"><path d="m16.1 44.5v-2.8c1.3-.1 2.1-.1 2.6-.3.8-.2 1.4-.5 1.9-1.1.3-.4.6-.9.8-1.5.1-.4.2-.6.2-.8h3.3v20.6h-4.1v-14.1h-4.7"/><path d="m45 41.5c-.6.6-1.4 1.7-2.5 3.2-1.1 1.5-2 3.1-2.7 4.7-.6 1.3-1.1 2.8-1.5 4.7-.5 1.8-.7 3.4-.7 4.6h-4.1c.1-3.7 1.3-7.5 3.6-11.5 1.5-2.5 2.7-4.2 3.7-5.2h-10.1l.1-3.6h14.2v3.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5dc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5dc.svg
index 7894382..7d7fcab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5dc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5dc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m39.671 58.51h21.46v2.197h-21.46z"/><path fill="#3e4347" d="m47.48 45.647h5.844v4.78h-5.844z"/><g fill="#94989b"><path d="m17.997 7.709c3.152 0 6.303 0 9.455 0 2.593 0 5.185 0 7.777 0 2.11 2.297 4.221 4.595 6.331 6.893.147.162.296.322.443.483.707.769 1.621 1.183 2.621 1.183.568 0 1.138 0 1.706 0 2.202 0 4.404 0 6.608 0 1.103 0 2.202 0 3.305 0 1.931 0 3.541-1.753 3.541-3.854 0-2.102-1.61-3.855-3.541-3.855-3.406 0-6.813 0-10.219 0-2.111-2.298-4.223-4.595-6.333-6.893-.147-.162-.296-.322-.443-.482-.696-.762-1.603-1.184-2.595-1.184-.383 0-.764 0-1.146 0-1.849 0-3.695 0-5.543 0-3.845 0-7.689 0-11.533 0-.146 0-.29 0-.435 0-1.931 0-3.541 1.753-3.541 3.855.001 2.101 1.611 3.854 3.542 3.854"/><path d="m56.24 37.938c-3.513 0-7.03 0-10.542 0-1.019 0-1.989-.076-2.932.525-.604.386-1.102 1.022-1.594 1.557-1.521 1.658-3.044 3.316-4.567 4.975-.46.5-.92 1-1.38 1.502-2.663 0-5.326 0-7.989 0-3.081 0-6.162 0-9.243 0-1.931 0-3.541 1.753-3.541 3.855 0 2.102 1.61 3.855 3.541 3.855 3.152 0 6.303 0 9.455 0 2.146 0 4.294 0 6.439 0 .694 0 1.388 0 2.08 0 1.187 0 2.276-.094 3.229-1.131 2.274-2.477 4.55-4.953 6.825-7.429 3.02 0 6.05 0 9.07 0 .382 0 .763 0 1.145 0 1.931 0 3.541-1.755 3.541-3.855 0-2.102-1.61-3.854-3.541-3.854"/></g><path fill="#d0d0d0" d="m44.559 16.268h11.686v21.666h-11.686z"/><g fill="#3e4347"><path d="m56.24 19.88l-11.681 3.613v-3.612l11.681-3.613z"/><path d="m56.24 27.1l-11.681 3.617v-3.607l11.681-3.618z"/><path d="m56.24 34.32l-11.681 3.618v-3.608l11.681-3.617z"/></g><path fill="#94989b" d="m56.24 62.46c0 .852-.634 1.543-1.417 1.543h-8.853c-.783 0-1.416-.691-1.416-1.543v-5.706c0-.852.633-1.542 1.416-1.542h8.853c.783 0 1.417.69 1.417 1.542v5.706"/><g fill="#d0d0d0"><path d="m47.48 55.21h2.923v8.791h-2.923z"/><path d="m51.862 55.21h1.461v8.791h-1.461z"/></g><ellipse fill="#94989b" cx="39.67" cy="59.6" rx="2.869" ry="3.123"/><ellipse fill="#d0d0d0" cx="40.557" cy="58.51" rx=".886" ry=".964"/><ellipse fill="#94989b" cx="61.13" cy="59.6" rx="2.868" ry="3.123"/><ellipse fill="#d0d0d0" cx="62.19" cy="58.51" rx=".885" ry=".964"/><path fill="#94989b" d="m47.48 50.43h5.844v4.781h-5.844z"/><path fill="#428bc1" d="m34.563 20.604v-13c0 0-19.634-2.309-26.686 0-2.081.682-5.877 4.311-5.877 6.502 0 2.191 3.796 5.817 5.878 6.498 7.05 2.308 26.685 0 26.685 0"/><path fill="#ddeaf2" d="m34.563 19.261v-10.314c0 0-18.15-1.832-24.675 0-1.925.541-5.435 3.42-5.435 5.159 0 1.738 3.51 4.615 5.435 5.155 6.522 1.832 24.675 0 24.675 0"/><path fill="#ed4c5c" d="m37.538 33.691v-13.18c0 0-24.607-2.216-31.66.093-2.082.682-5.878 4.31-5.878 6.501s3.796 5.817 5.878 6.498c7.05 2.309 31.66.088 31.66.088"/><path fill="#ddeaf2" d="m37.538 32.09v-9.976c0 0-23.05-1.678-29.661.07-1.95.516-5.507 3.263-5.507 4.921s3.557 4.402 5.507 4.918c6.607 1.748 29.661.067 29.661.067"/><path fill="#ffce31" d="m35.23 46.5v-12.735c0 0-17.299-2.466-24.352-.157-2.081.681-5.877 4.31-5.877 6.501s3.796 5.817 5.878 6.498c7.05 2.309 24.351-.107 24.351-.107"/><path fill="#ddeaf2" d="m35.23 45.04v-9.833c0 0-15.847-1.902-22.308-.12-1.907.526-5.385 3.327-5.385 5.02 0 1.691 3.478 4.49 5.385 5.02 6.462 1.782 22.308-.084 22.308-.084"/><g fill="#94989b"><path d="m34.551 12.09l-19.264-1h19.289z"/><path d="m34.588 16.09l-14.05.178 14-1.178z"/><path d="m37.538 24.928l-9.987-.5 9.987-.5z"/><path d="m37.582 28.26l-20.628 1.334 20.54-2.334z"/><path d="M35.16 39.673 23.454 37.594 35.3 38.683z"/><path d="m35.26 42.26l-18.89.75 18.83-1.75z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m39.2 56.8h20.1v2.1h-20.1z"/><path fill="#3e4347" d="m46.5 44.8h5.5v4.5h-5.5z"/><g fill="#94989b"><path d="m18.9 9.2c3 0 5.9 0 8.9 0 2.4 0 4.9 0 7.3 0 2 2.2 4 4.3 5.9 6.5.1.2.3.3.4.5.7.7 1.5 1.1 2.5 1.1.5 0 1.1 0 1.6 0 2.1 0 4.1 0 6.2 0 1 0 2.1 0 3.1 0 1.8 0 3.3-1.6 3.3-3.6s-1.6-3.7-3.4-3.7c-3.2 0-6.4 0-9.6 0-2-2.2-4-4.3-5.9-6.5-.1-.2-.3-.3-.4-.5-.7-.6-1.5-1-2.4-1-.4 0-17.4 0-17.5 0-1.8 0-3.3 1.6-3.3 3.6 0 2 1.5 3.6 3.3 3.6"/><path d="m54.7 37.6c-3.3 0-6.6 0-9.9 0-1 0-1.9-.1-2.7.5-.6.4-1 1-1.5 1.5-1.4 1.6-2.9 3.1-4.3 4.7-.4.5-.9.9-1.3 1.4-2.5 0-5 0-7.5 0-2.9 0-5.8 0-8.7 0-1.8 0-3.3 1.6-3.3 3.6s1.5 3.6 3.3 3.6c3 0 5.9 0 8.9 0 2 0 4 0 6 0 .7 0 1.3 0 2 0 1.1 0 2.1-.1 3-1.1 2.1-2.3 4.3-4.6 6.4-7 2.8 0 5.7 0 8.5 0 .4 0 .7 0 1.1 0 1.8 0 3.3-1.6 3.3-3.6 0-2-1.5-3.6-3.3-3.6"/></g><path fill="#d0d0d0" d="m43.8 17.3h11v20.3h-11z"/><g fill="#3e4347"><path d="m54.7 20.6l-10.9 3.4v-3.4l10.9-3.3z"/><path d="m54.7 27.4l-10.9 3.4v-3.4l10.9-3.4z"/><path d="m54.7 34.2l-10.9 3.4v-3.4l10.9-3.4z"/></g><path d="m54.7 60.6c0 .8-.6 1.4-1.3 1.4h-8.3c-.7 0-1.3-.6-1.3-1.4v-5.3c0-.8.6-1.4 1.3-1.4h8.3c.7 0 1.3.6 1.3 1.4v5.3" fill="#94989b"/><g fill="#d0d0d0"><path d="m46.5 53.8h2.7v8.2h-2.7z"/><path d="m50.6 53.8h1.4v8.2h-1.4z"/></g><ellipse cx="39.2" cy="57.9" rx="2.7" ry="2.9" fill="#94989b"/><ellipse cx="40" cy="56.8" rx=".8" ry=".9" fill="#d0d0d0"/><ellipse cx="59.3" cy="57.9" rx="2.7" ry="2.9" fill="#94989b"/><ellipse cx="60.3" cy="56.8" rx=".8" ry=".9" fill="#d0d0d0"/><path fill="#94989b" d="m46.5 49.3h5.5v4.5h-5.5z"/><path d="m34.4 21.3v-12.2c0 0-18.4-2.2-25 0-2 .6-5.5 4-5.5 6.1s3.6 5.5 5.5 6.1c6.6 2.2 25 0 25 0" fill="#428bc1"/><path d="m34.4 20.1v-9.7c0 0-17-1.7-23.2 0-1.8.5-5.1 3.2-5.1 4.8s3.3 4.3 5.1 4.8c6.2 1.8 23.2.1 23.2.1" fill="#ddeaf2"/><path d="m37.2 33.6v-12.4c0 0-23.1-2.1-29.7.1-2 .6-5.5 4-5.5 6.1 0 2.1 3.6 5.5 5.5 6.1 6.6 2.2 29.7.1 29.7.1" fill="#ed4c5c"/><path d="m37.2 32.1v-9.4c0 0-21.7-1.6-27.8.1-1.8.5-5.2 3.1-5.2 4.6 0 1.6 3.3 4.1 5.2 4.6 6.2 1.7 27.8.1 27.8.1" fill="#ddeaf2"/><path d="m35.1 45.6v-11.9c0 0-16.3-2.3-22.9-.1-2 .6-5.5 4-5.5 6.1s3.6 5.5 5.5 6.1c6.6 2.1 22.9-.2 22.9-.2" fill="#ffce31"/><path d="m35.1 44.2v-9.2c0 0-14.9-1.8-21-.1-1.8.5-5 3.1-5 4.7 0 1.6 3.3 4.2 5 4.7 6.1 1.7 21-.1 21-.1" fill="#ddeaf2"/><g fill="#94989b"><path d="m34.4 13.3l-18.1-.9h18.1z"/><path d="m34.4 17.1l-13.1.2 13.1-1.1z"/><path d="m37.2 25.4l-9.4-.5 9.4-.5z"/><path d="m37.2 28.5l-19.3 1.2 19.3-2.1z"/><path d="m35.1 39.2l-11.1-2 11.1 1.1z"/><path d="m35.1 41.6l-17.8.7 17.8-1.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5dd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5dd.svg
index 6374e87..9bbf4f2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5dd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5dd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m62.74 29.483h-38.26l.001-.567c-.002-.694-.564-1.258-1.26-1.259h-.323c-.695 0-1.26.564-1.259 1.259v.567h-.127c-.801-7.838-5.284-13.84-10.693-13.84-5.976 0-10.821 7.323-10.82 16.356 0 9.03 4.844 16.357 10.819 16.357 5.41 0 9.893-6 10.694-13.84h.126l.001.567c0 .693.563 1.257 1.258 1.258h.324c.695 0 1.26-.563 1.26-1.258l-.001-.567h31.09v2.946h-1.258c-.695.001-1.258.564-1.258 1.259l-.002 1.699c0 .695.564 1.259 1.26 1.259h6.732c.695 0 1.258-.563 1.258-1.258v-1.699c0-.694-.563-1.259-1.258-1.259h-1.26l.002-2.947h2.121.836c.695 0 1.258-.563 1.258-1.259v-2.516c.001-.694-.563-1.257-1.257-1.258m-45.787 7.399c0 4.04-2.747 7.322-6.134 7.322-3.388 0-6.133-3.278-6.133-7.322 0-1.877.591-3.586 1.563-4.882-.971-1.296-1.562-3.01-1.563-4.882 0-4.04 2.746-7.323 6.134-7.323 3.388 0 6.134 3.278 6.134 7.323 0 1.876-.591 3.586-1.563 4.881.971 1.297 1.562 3.01 1.562 4.883"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#595959" d="m13.3 56.3l-1.7-1.8 4.1-4.1-2.1-2.1 4.1-4 2.1 2.1 4.2-4.2 1.8 1.8-1.1 1.1 1.6 1.5 1.1-1.1.9 1 3.3 3.3-3 2.9-3.3-3.2-2.1 2 3.2 3.2-2.3 2.2-3.1-3.2-2.1 2.1 3.2 3.2-3 3-3.2-3.2-.1-.1-.9-.9 1.1-1-1.6-1.6z"/><path d="m55.2 13.9c1.8-1 3-2.9 3-5.2 0-3.3-2.7-5.9-6-5.9-2.2 0-4.2 1.2-5.2 2.9-1.3-2.2-3.7-3.7-6.5-3.7-4.2 0-7.5 3.3-7.5 7.4 0 4.1 3.4 7.4 7.5 7.4.4 0 .7 0 1-.1l-1.1 1h-2.3v2.2l-.6.6-.2-.2c-.5-.5-1.4-.5-1.9 0l-.1.1c-.5.5-.5 1.3 0 1.8l.2.2-27.8 27.7.5.5-.7.7c-.7-.3-1.6-.3-2.1.2-.7.7-.5 2 .4 2.9.9.9 2.3 1.1 3 .4.5-.5.5-1.3.2-2.1l.7-.7.5.5 27.8-27.5.2.2c.5.5 1.4.5 1.9 0l.1-.1c.5-.5.5-1.3 0-1.8l-.2-.2.6-.6h2.3v-2.2l1.1-1c0 .3-.1.7-.1 1 0 4.1 3.4 7.4 7.5 7.4s7.5-3.3 7.5-7.4c.1-2.8-1.4-5.2-3.7-6.4m-3.7 11.3c-2.8 0-5-2.2-5-5 0-1.1.3-2.1.9-2.9l-1.2-1.2.5-.5c.8.4 1.6.3 2.1-.2.7-.7.5-2-.4-2.9-.9-.9-2.3-1.1-3-.4-.5.5-.5 1.3-.2 2.1l-.5.5-1.2-1.2c-.8.6-1.9 1-3 1-2.8 0-5-2.2-5-5s2.2-5 5-5c2.8 0 5 2.2 5 5h3.1c0-.2-.1-.4-.1-.6 0-2.1 1.7-3.7 3.7-3.7 2.1 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7c-.2 0-.5 0-.7-.1v2.8c0 0 0 0 0 0 2.8 0 5 2.2 5 5s-2.2 4.9-5 4.9" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5de.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5de.svg
index 1087492..fc37886 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5de.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5de.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse transform="matrix(-.7071-.7071.7071-.7071 8.64 20.857)" fill="#94989b" cx="8.639" cy="8.639" rx="3.287" ry="11.764"/><g fill="#d0d0d0"><path d="m38.421 25.579c-5.557-5.557-19.875-23.288-21.341-25.11.966 1.473-1.687 6.06-6.117 10.491-4.43 4.43-9.02 7.083-10.491 6.117 1.818 1.466 19.55 15.784 25.11 21.342 5.556 5.556 19.875 23.288 21.34 25.11.036.055.077.105.123.15 1.283 1.283 6.05-1.399 10.643-5.994 4.594-4.594 7.277-9.358 5.994-10.643-.046-.047-.096-.087-.15-.122-1.819-1.466-19.551-15.784-25.11-21.341"/><path d="m11.306 3.037c.757-.338 1.332-.404 1.605-.131.723.724-.931 3.55-3.694 6.313-2.763 2.763-5.589 4.417-6.313 3.694-.101-.101-.154-.246-.166-.424-.513 1.089-.631 1.916-.248 2.299.964.964 4.732-1.241 8.417-4.925 3.684-3.683 5.889-7.452 4.925-8.416-.614-.618-2.374.06-4.526 1.59"/><path d="m7.131 9.305c-.395-.393.41-1.838 1.796-3.225 1.266-1.266 2.579-2.045 3.098-1.872-.001-.132-.036-.237-.108-.309-.461-.461-2.262.593-4.02 2.353-1.76 1.762-2.814 3.563-2.354 4.02.333.333 1.369-.126 2.583-1.073-.464.222-.824.272-.992.103"/></g><g fill="#94989b"><path d="m25.15 34.11l1.793-1.996-17.487-15.7c-.758.579-1.511 1.109-2.25 1.586l17.944 16.11"/><path d="m18.371 7.159c-.503.721-1.053 1.45-1.647 2.183l15.605 17.382.024.027 3.61 3.609 22.693 22.08 1.744-2.049-22.546-21.932-3.552-3.552-15.931-17.745"/><path d="m12.21 14.11l16.42 16.418 1.896-1.896-16.387-16.388c-.139.143-.28.285-.422.428-.499.497-1 .978-1.507 1.438"/></g><path fill="#3e4347" d="m41.21 27.1c0 0 .689 1.842-5.789 8.319-6.478 6.478-8.318 5.788-8.318 5.788l-6.8-6.799c0 0 1.702.826 8.319-5.789 6.615-6.617 5.789-8.319 5.789-8.319l6.799 6.8"/><path fill="#94989b" d="m48.47 61.18c.473-.172 1.243-.531 2.309-1.229 1.595-1.045 3.326-2.484 5.01-4.163l-18.434-18.435c-1.612 1.612-3.248 3.148-4.899 4.607 5.929 6.782 13.696 16.347 16.02 19.22"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse transform="matrix(.7071-.7071.7071.7071-3.5789 8.6397)" cx="8.6" cy="8.6" rx="11.8" ry="3.3" fill="#94989b"/><g fill="#d0d0d0"><path d="m38.4 25.6c-5.5-5.6-19.9-23.3-21.3-25.1.9 1.4-1.7 6-6.1 10.5-4.4 4.4-9 7.1-10.5 6.1 1.8 1.4 19.5 15.8 25.1 21.3 5.6 5.6 19.9 23.3 21.3 25.1 0 .1.1.1.1.2 1.3 1.3 6-1.4 10.6-6 4.6-4.6 7.3-9.4 6-10.6 0 0-.1-.1-.2-.1-1.7-1.5-19.4-15.9-25-21.4"/><path d="m11.3 3c.8-.3 1.3-.4 1.6-.1.7.7-.9 3.5-3.7 6.3s-5.6 4.4-6.3 3.7c-.1-.1-.2-.2-.2-.4-.5 1.1-.6 1.9-.2 2.3 1 1 4.7-1.2 8.4-4.9 3.7-3.7 5.9-7.5 4.9-8.4-.6-.7-2.3 0-4.5 1.5"/><path d="m7.1 9.3c-.4-.4.4-1.8 1.8-3.2 1.3-1.3 2.6-2 3.1-1.9 0-.1 0-.2-.1-.3-.5-.5-2.3.6-4 2.4-1.8 1.8-2.8 3.6-2.4 4 .3.3 1.4-.1 2.6-1.1-.4.2-.8.3-1 .1"/></g><g fill="#94989b"><path d="m25.1 34.1l1.8-2-17.4-15.7c-.8.6-1.6 1.1-2.3 1.6l17.9 16.1"/><path d="m18.4 7.2c-.5.7-1.1 1.5-1.6 2.2l15.6 17.4 3.6 3.6 22.7 22.1 1.7-2-22.5-22-3.6-3.6-15.9-17.7"/><path d="m12.2 14.1l16.4 16.4 1.9-1.9-16.4-16.4c-.1.1-.3.3-.4.4-.5.6-1 1-1.5 1.5"/></g><path d="m41.2 27.1c0 0 .7 1.8-5.8 8.3-6.5 6.5-8.3 5.8-8.3 5.8l-6.8-6.8c0 0 1.7.8 8.3-5.8 6.6-6.6 5.8-8.3 5.8-8.3l6.8 6.8" fill="#3e4347"/><path d="m48.5 61.2c.5-.2 1.2-.5 2.3-1.2 1.6-1 3.3-2.5 5-4.2l-18.4-18.4c-1.6 1.6-3.2 3.1-4.9 4.6 5.9 6.7 13.7 16.3 16 19.2" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5e1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5e1.svg
index e93fc63..8802fe0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5e1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5e1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m36.811 30.423c0 0 14.588 8.555 27.19 33.578l-30.383-30.383 3.194-3.195"/><path fill="#d0d0d0" d="m30.422 36.813c0 0 8.555 14.587 33.578 27.19l-30.383-30.383-3.195 3.195"/><path fill="#3e4347" d="m3.621 13.703c-1.04-1.04-1.041-2.727 0-3.769l6.314-6.314c1.041-1.042 2.728-1.041 3.768-.001l22.602 25.12c1.041 1.039 1.041 2.727.001 3.768l-3.803 3.801c-1.041 1.041-2.728 1.041-3.768.001l-25.11-22.602"/><g fill="#d3976e"><path d="m5.757 13.11l7.35-7.35c1.042-1.042 1.042-2.729.003-3.771l-.195-.192c-.806-.807-2-.988-2.984-.543-2.431-1.837-5.902-1.651-8.117.562-2.213 2.216-2.402 5.688-.56 8.117-.446.98-.266 2.178.54 2.986l.195.192c1.04 1.04 2.726 1.04 3.768-.001"/><path d="m44.24 8.7c-2.842-1.294-5.829-.421-7.622 2.232-2.01 2.98-1.278 5.742-.039 7.202 1.319 1.554 3.349 2.073 5.05 1.291.88-.406 1.263-1.441.859-2.321-.403-.878-1.441-1.264-2.32-.86-.252.115-.64-.042-.923-.375-.605-.714-.504-1.828.272-2.979 1.121-1.66 2.529-1.341 3.271-1 1.554.708 2.801 2.646 2.177 4.98-1.078 4.04-5.154 9.676-11.789 16.317-6.642 6.635-12.283 10.71-16.317 11.789-2.334.624-4.271-.624-4.979-2.177-.337-.74-.656-2.149 1-3.27 1.151-.777 2.265-.879 2.979-.273.333.283.49.672.375.923-.403.878-.019 1.917.86 2.321.879.402 1.915.02 2.32-.86.782-1.703.263-3.733-1.291-5.05-1.459-1.238-4.221-1.972-7.201.039-2.653 1.793-3.526 4.781-2.232 7.622 1.317 2.894 4.855 5.233 9.07 4.108 4.692-1.254 10.711-5.526 17.888-12.695 7.17-7.178 11.441-13.196 12.695-17.889 1.126-4.214-1.214-7.752-4.108-9.07"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m36.8 30.4c0 0 14.6 8.6 27.2 33.6l-30.4-30.4 3.2-3.2" fill="#94989b"/><path d="m30.4 36.8c0 0 8.6 14.6 33.6 27.2l-30.4-30.4-3.2 3.2" fill="#d0d0d0"/><path d="m3.6 13.7c-1-1-1-2.7 0-3.8l6.3-6.3c1-1 2.7-1 3.8 0l22.6 25.1c1 1 1 2.7 0 3.8l-3.8 3.8c-1 1-2.7 1-3.8 0l-25.1-22.6" fill="#3e4347"/><g fill="#d3976e"><path d="m5.8 13.1l7.4-7.3c1-1 1-2.7 0-3.8l-.2-.2c-.8-.8-2-1-3-.5-2.5-1.9-6-1.7-8.2.5-2.2 2.2-2.4 5.7-.5 8.1-.4 1-.3 2.2.5 3l.2.2c1 1 2.7 1 3.8 0"/><path d="m44.2 8.7c-2.8-1.3-5.8-.4-7.6 2.2-2 3-1.3 5.7 0 7.2 1.3 1.6 3.3 2.1 5.1 1.3.9-.4 1.3-1.4.9-2.3-.4-.9-1.4-1.3-2.3-.9-.3.1-.6 0-.9-.4-.6-.7-.5-1.8.3-3 1.1-1.7 2.5-1.3 3.3-1 1.6.7 2.8 2.6 2.2 5-1.1 4-5.2 9.7-11.8 16.3-6.9 6.7-12.5 10.8-16.5 11.9-2.3.6-4.3-.6-5-2.2-.3-.7-.7-2.1 1-3.3 1.2-.8 2.3-.9 3-.3.3.3.5.7.4.9-.4.9 0 1.9.9 2.3.9.4 1.9 0 2.3-.9.8-1.7.3-3.7-1.3-5.1-1.5-1.2-4.2-2-7.2 0-2.7 1.8-3.5 4.8-2.2 7.6 1.3 2.9 4.9 5.2 9.1 4.1 4.7-1.3 10.7-5.5 17.9-12.7 7.2-7.2 11.4-13.2 12.7-17.9 1-3.9-1.4-7.5-4.3-8.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5e3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5e3.svg
index 41ea2d8..9ba8a6c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5e3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#467591"><path d="m38.868 44.826c-3.151-2.16-.401-3.729 1.195-4.69 2.065-1.242.889-2.544.95-3.923.028-.631 2.619-.506 2.432-2.941-.133-1.716-4.237-5.118-5.313-6.161-.62-.601-.072-2.308-.449-3.32-1.399-3.75-1.889-6.391-4.209-8.909-5.526-5.998-24.395-5.231-29.667 3.596-5.918 9.909-5.74 23.19 6.307 30.985 2.085 1.349-1.536 14.9-1.536 14.9h21.7c0-1.985-2.42-9.101 1.814-8.781 3.68.277 8.185.124 7.787-3.86-.119-1.201-.262-2.283.613-3.279.876-.996 1.614-1.397-1.624-3.617"/><path d="m43.844 42.665l20.16 2.535v-5.06z"/><path d="m60.22 59.33l2.16-4.385-18.536-9.595z"/><path d="m62.38 30.34l-2.16-4.382-16.376 13.975z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#5d6d74"><path d="m38.5 42.6c-4.6-1.5-3.3-2.6 1.1-4.3 2.1-.8.8-2.5.9-3.8 0-.6 2.5-.5 2.3-2.9-.1-1.7-3.8-4.1-4.8-5.1-.6-.6 1.2-2.2-.1-3.6-1.7-1.9-2-5.3-3-7.2 0 0 .8-1.2.2-1.9-5.2-5.8-24.5-5.2-29.5 3.4-5.5 9.7-5.6 23 5.9 30.2 5.1 3.2-1.4 14.6-1.4 14.6h20.3c0-1.9-2.3-8.9 1.7-8.6 3.4.3 7.7.1 7.3-3.8-.1-1.2-.2-2.2.6-3.2.8-.9 2-2.7-1.5-3.8"/><path d="m43.1 40.8l18.9 2.5v-5z"/><path d="m58.5 57.1l2-4.3-17.4-9.4z"/><path d="m60.5 28.8l-2-4.3-15.4 13.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5e8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5e8.svg
new file mode 100644
index 0000000..b8c77e4
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5e8.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M8.6,5h46.9c3.6,0,6.6,2.9,6.6,6.5v29.8c0,3.6-2.9,6.5-6.6,6.5h-6.9V59L38.1,47.8H8.6c-3.6,0-6.6-2.9-6.6-6.5
+ V11.5C2,7.9,4.9,5,8.6,5z" fill="#4fd1d9"/><g fill="#fff"><circle cx="48" cy="26.4" r="4.2"/><circle cx="32" cy="26.4" r="4.2"/><circle cx="16" cy="26.4" r="4.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5ef.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5ef.svg
index 3305cd5..ed82900 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5ef.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m63.31 17.14c1.334-1.746.676-2.981-1.465-2.744l-11.205 1.248c-2.141.238-3.93-1.389-3.98-3.614l-.225-10.1c-.049-2.225-1.127-2.575-2.396-.778l-8.05 11.413c-1.268 1.798-3.306 1.771-4.529-.06l-5.393-8.07c-1.223-1.83-2.504-1.53-2.846.667l-1.23 7.93c-.342 2.197-2.209 3.21-4.15 2.251l-14.403-7.122c-1.941-.959-2.609-.191-1.484 1.706l7.384 12.466c1.123 1.898.504 4.335-1.375 5.416l-6.664 3.827c-1.883 1.081-1.691 2.304.422 2.72l10.646 2.093c2.111.416 4.199 2.691 3.453 4.782-2.317 6.497-15.316 22.832-15.316 22.832s19.676-10.06 24.938-15.15c1.576-1.525 3.604-2.253 5.318-.914l7.167 5.585c1.719 1.338 3.059.613 2.977-1.611l-.252-6.952c-.08-2.224 1.477-3.342 3.461-2.483l15.461 6.685c1.984.858 2.6.069 1.365-1.755l-7.488-11.08c-1.234-1.824-1.152-4.745.18-6.492l9.682-12.689"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.4 18.1c1.3-1.6.6-2.8-1.4-2.6l-10.5 1.2c-2 .2-3.7-1.3-3.7-3.4l-.2-9.5c0-2.1-1.1-2.4-2.2-.7l-7.5 10.7c-1.2 1.7-3.1 1.7-4.2-.1l-5.1-7.6c-1.1-1.7-2.3-1.4-2.7.6l-1.2 7.4c-.3 2.1-2.1 3-3.9 2.1l-13.6-6.6c-1.8-.9-2.4-.2-1.4 1.6l6.9 11.7c1.1 1.8.5 4.1-1.3 5.1l-6.2 3.6c-1.8 1-1.6 2.2.4 2.5l10 2c2 .4 3.9 2.5 3.2 4.5-2.1 6.1-14.3 21.4-14.3 21.4s18.4-9.4 23.4-14.2c1.5-1.4 3.4-2.1 5-.9l6.7 5.2c1.6 1.3 2.9.6 2.8-1.5l-.2-6.5c-.1-2.1 1.4-3.1 3.2-2.3l14.5 6.3c1.9.8 2.4.1 1.3-1.6l-7-10.4c-1.2-1.7-1.1-4.4.2-6.1l9-11.9" fill="#4fd1d9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5f3.svg
index c003bff..c0cfc83 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M61.29 54.735 10.339 64 7.877 20.724 64 18.286z"/><path fill="#c94747" d="M10.339 64 2.585 49.4 0 15.482 7.877 20.724z"/><path fill="#881a0e" d="M64 18.286 7.877 20.724 0 15.482 42.09 14.385z"/><g fill="#fff"><path d="m24.05 30.14l2.803-.146-4.807 18.207-2.647.321-4.257-17.916 3.083-.161 2.643 13.551 3.182-13.856"/><path d="m37.498 44.816c-.917 1.426-2.228 2.247-3.95 2.46-1.745.215-3.08-.297-3.995-1.544-1.242-1.53-1.835-3.883-1.77-7.04.063-3.22.752-5.677 2.055-7.357.966-1.404 2.322-2.147 4.061-2.234 1.715-.086 2.996.507 3.857 1.772 1.148 1.474 1.688 3.74 1.633 6.813-.057 3.02-.684 5.39-1.891 7.133m-1.495-2.411c.595-1.099.911-2.601.946-4.51.037-1.901-.224-3.349-.78-4.349-.558-1-1.332-1.477-2.329-1.414-1 .063-1.821.639-2.447 1.736-.629 1.102-.968 2.635-1 4.594-.038 1.962.238 3.444.827 4.443.588.995 1.385 1.434 2.394 1.321.997-.109 1.797-.718 2.394-1.821"/><path d="m49.35 28.813l-.049 2.846-3.222.207-.234 13.44-2.327.282.242-13.572-3.396.219.055-2.955 8.931-.467"/><path d="m58.11 31.09l-5.33.344-.053 3.364 4.903-.388-.043 2.694-4.907.448-.066 4.082 5.58-.609-.044 2.787-7.715.937.269-16.01 7.45-.391-.044 2.739"/></g><path fill="#dfe9ef" d="m44.24 0c-11.328.206-22.658.412-33.992.618 2.342 10.04.087 18.234.087 18.234l33.997-1.567c0-.001 2.175-7.202-.092-17.285"/><g fill="#83bf4f"><path d="m40.807 6.808c-5.771.116-11.541.232-17.313.348.012-.474.016-.948.011-1.421 5.767-.115 11.533-.229 17.299-.344.009.472.009.944.003 1.417"/><path d="m18.507 8.731c-.108.163-.325.195-.48.073-.837-.659-1.685-1.318-2.546-1.977-.159-.12-.155-.328.004-.456.1-.079.198-.157.298-.235.162-.13.428-.135.59-.013.457.346.909.692 1.358 1.038.16.123.377.09.479-.073.576-.904 1.128-1.809 1.646-2.713.094-.163.34-.234.551-.162.126.044.253.089.38.133.209.072.305.267.209.428-.771 1.32-1.607 2.639-2.489 3.957"/></g><g fill="#93a2aa"><path d="m40.16 15.11c-5.791.126-11.582.251-17.373.377.06-.475.118-.949.174-1.424 5.789-.125 11.578-.249 17.366-.373-.053.474-.109.947-.167 1.42"/><path d="m20.13 17.16c-1.906.042-3.813.085-5.719.127.201-1.557.401-3.113.566-4.669 1.903-.041 3.807-.081 5.711-.122-.162 1.555-.358 3.11-.558 4.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M61.3 54.7 10.3 64 7.9 20.7 64 18.3z"/><path fill="#c94747" d="M10.3 64 2.6 49.4 0 15.5 7.9 20.7z"/><path fill="#881a0e" d="M64 18.3 7.9 20.7 0 15.5 42.1 14.4z"/><g fill="#fff"><path d="m24 30.1l2.8-.1-4.8 18.2-2.6.3-4.3-17.9 3.1-.2 2.7 13.6 3.1-13.9"/><path d="m37.5 44.8c-.9 1.4-2.2 2.2-4 2.5-1.7.2-3.1-.3-4-1.5-1.2-1.5-1.8-3.9-1.8-7 .1-3.2.8-5.7 2.1-7.4 1-1.4 2.3-2.1 4.1-2.2 1.7-.1 3 .5 3.9 1.8 1.1 1.5 1.7 3.7 1.6 6.8-.1 2.9-.7 5.3-1.9 7m-1.5-2.4c.6-1.1.9-2.6.9-4.5 0-1.9-.2-3.3-.8-4.3-.6-1-1.3-1.5-2.3-1.4-1 .1-1.8.6-2.4 1.7-.6 1.1-1 2.6-1 4.6 0 2 .2 3.4.8 4.4.6 1 1.4 1.4 2.4 1.3 1-.1 1.8-.7 2.4-1.8"/><path d="m49.3 28.8v2.8l-3.2.2-.2 13.4-2.3.3.2-13.5-3.4.2.1-3 8.8-.4"/><path d="m58.1 31.1l-5.3.3-.1 3.4 4.9-.4v2.7l-4.9.4-.1 4.1 5.6-.6v2.8l-7.7.9.3-16 7.5-.4-.2 2.8"/></g><path d="m44.2 0c-11.3.2-22.7.4-34 .6 2.3 10 .1 18.2.1 18.2l34-1.6c0 .1 2.2-7.1-.1-17.2" fill="#dfe9ef"/><g fill="#83bf4f"><path d="m40.8 6.8c-5.8.1-11.5.2-17.3.4 0-.5 0-.9 0-1.4 5.8-.2 11.5-.3 17.3-.4 0 .5 0 .9 0 1.4"/><path d="m18.5 8.7c-.1.2-.3.2-.5.1-.8-.7-1.7-1.3-2.5-2-.2-.1-.2-.3 0-.5.1-.1.2-.2.3-.2.2-.1.4-.1.6 0 .5.3.9.7 1.4 1 .2.1.4.1.5-.1.6-.9 1.1-1.8 1.6-2.7.1-.2.3-.2.6-.2.1 0 .3.1.4.1.1.2.2.4.1.6-.8 1.3-1.6 2.6-2.5 3.9"/></g><g fill="#93a2aa"><path d="m40.2 15.1c-5.8.1-11.6.3-17.4.4.1-.5.1-.9.2-1.4 5.8-.1 11.6-.2 17.4-.4-.1.5-.2.9-.2 1.4"/><path d="m20.1 17.2c-1.9 0-3.8.1-5.7.1.2-1.6.4-3.1.6-4.7 1.9 0 3.8-.1 5.7-.1-.2 1.5-.4 3.1-.6 4.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5fa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5fa.svg
index 6a0a63d..182a68f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6eef0" d="m63.999 64c0 0-10.328-2.802-13.869-3-7.432-.417-22.18 3.03-29.616 3-12.973-.042-20.04-3.36-20.494-14.565-.261-6.482 2.023-19.387 2-25.875-.022-5.912-2-23.56-2-23.56s16.635 2.825 22.244 3c10.455.326 41.735-3 41.735-3s-2.041 25.905-1.998 34.56c.037 7.377 1.998 29.44 1.998 29.44"/><path opacity=".5" fill="#62727a" d="m20.496 64c-12.973-.042-20.04-3.36-20.494-14.565 2.143 4.292 7.223-1.708 7.223-1.708s-.664 14.583 13.271 16.273"/><g fill="#83bf4f"><path d="m17.529 36.04c-3.447-1.028-3.447-3.369-3.447-3.369 4.02 0 8.535-4.29 8.535-4.29-2.957-6.774-4.188-1.027-4.188-1.027-4.348-3.242 1.15-4.862 1.15-4.862-3.365-.955-4.924-3.682-4.924-3.682-.164 1.695-1.15 1.619-1.15 1.619-7.717-3.02-9.107 1.843-9.107 1.843 1.227 2.575-1.398 2.87-1.398 2.87 2.543.293 3.855-2.063 3.855-2.063 5.256 1.768 2.467 8.102 2.467 8.102 2.051.808 2.625 3.46 2.625 3.46 2.545.513 5.256 1.991 5.256 1.991-2.629 3.38 1.475 4.562 1.475 4.562-1.561 5.892 1.723 7.805 1.723 7.805-.82-4.488 4.02-7.363 4.02-7.363 1.642-5.375-6.892-5.596-6.892-5.596"/><path d="m24.631 16.826c0 0-2.361-1.105-6.06.604 0 .001-.992 6.077 6.06-.604"/><path d="m30.27 18.22c-3.02-3.47-7.879 1.256-7.879 1.256 1.725.992 1.951 1.87 1.625 2.652-1.191 2.871.342 3.752.342 3.752.93-2.427 4.129-2.813 4.129-2.813-.184-2.267 1.783-4.847 1.783-4.847"/><path d="m47.07 19.958c0 0 .621-1.509-1.846-1.738 0 0-3.379 2.909-1.84 4.515 0 0-.619 2.884-1.48-1.32 0 0-1.412 2.479-3.322 1.927 0 0-.525 2.511-1.725.829 0 0 .982.276 1.199-.498 0 0-2.773-1.987-4.433 1.021 0 0-1.352.36-.83 1.77 0 0 .951-1.161 1.446.608 0 0 .525-.275.742-2.542 0 0 1.318-.441.301 1.352 0 0 3.02.03-1.659 1.822 0 0-.258-.031-.463-.717 0 0-.707 1.654-2.156 2.239 0 0 .34.66-.736.964 0 0-.584 1.021.803 1.021 0 0 1.201-2.457 3.479-.524 0 0 .432-.11-.246-1.077 0 0 1.199.307 1.66 1.575 0 0 .74-.085.857-1.188 0 0 .928-1.407 2.438.251 0 0-2-.389-2.523.964 0 0 .949-.277 1.537.111 0 0 .09.881-.926.967 0 0-7.819-2.982-8.679 2.923 0 0 .859 3.043 3.631 1.493 0 0 3.081.387 1.851 4.362 0 0 .492 3.099 3.197 2.815 0 0 .738-4.471 4.186-7.896 0 0-1.719 1.163-3.508-3.312 0 0 3.197 4.95 5.172 1.231 0 0-1.846.701-2.465-1.231 0 0 4.684.389 5.973 3.813 0 0 1.355-.724 1.723-2.928 0 0 1.602.055 3.572 2.928 0 0 .859-.058.43-1.935 0 0 3.076-.828 1.416-4.476 0 0 2.584 2.378 1.725-.714 0 0 2.83-2.322-.551-3.867 0 0 .117-1.711 2.148-1.491 0 0 2.031-3.536 1.051.662 0 0 .059.829 1.35 1.766 0 0 .557-1.379-.43-2.868 0 0 2.035-2.545 1.848-4.751-.001-.001-6.589 1.633-13.917 1.144"/><path d="m32.02 28.14c.527-.822-1.131-1.77-1.131-1.77.213 1.99.609 2.596 1.131 1.77"/><path d="m29.959 28.25c0 0 .865-.085.617-.816 0-.001-.617.042-.617.816"/><path d="m29.623 24.25c0 0-2.188 0-1.416.748.772.745 1.416-.748 1.416-.748"/><path d="m40.552 42.39c0 0 .672-.912.648-2.319 0-.001-2.127 1.626-.648 2.319"/><path d="m54.34 36.679c0 0-1.539.939-1.262 1.797.279.857 1.633-.171 1.262-1.797"/><path d="m60.5 39.718c.678-.793-3.699-1.772-3.699-1.772.863.859 3.088 2.479 3.699 1.772"/><path d="m55.6 39.887c1.029-1.177-3.107-.613-3.107-.613s2.708 1.079 3.107.613"/><path d="m57.23 40.13c0 0-.828 1.241-3.906 1.764 0 0 .648.998 0 2.875 0 0 3.107-2.652 4.896 1.185 0 0 1.535.559 2.613-2.914 0 0-1.293-1.254-1.723-3.03.001-.001-.424 2.279-1.88.122"/><path d="m55.763 31.736c0 0 3.484-.877 2.072-2.916.195-.11.35-.149.35-.149-1.508-1.631-.955.719-.955.719.096-.155.211-.274.328-.372.08.695-.17 1.733-1.795 2.718"/><path d="m19.496 24.03c0 0 2.563 2.588 2.895-.305.076-.651-.301-.78-.678-.764-.133-1.896-2.027-2.495-2.027-2.495-1.234.5-1.111 1.161-1.111 1.161 1.119.112 1.803 1.017 2.205 1.861-.225.234-.614.498-1.284.542"/><path d="m31.24 16.611c.76-1.19-1.629-2.549-1.629-2.549.305 2.867.877 3.74 1.629 2.549"/><path d="m29.16 15.599c0 0-.887.059-.887 1.171.001 0 1.237-.124.887-1.171"/><path d="m27.773 11c0 0-3.141 0-2.041 1.075 1.118 1.074 2.041-1.075 2.041-1.075"/></g><path fill="#d6eef0" d="m48.882 29.28c0 6.957-5.645 12.601-12.6 12.601-6.958 0-12.603-5.644-12.603-12.601s5.645-12.601 12.603-12.601c6.955.001 12.6 5.644 12.6 12.601"/><g fill="#699635"><path d="m28.658 40.06c-.748-.452-1.447-.975-2.092-1.56.428.665 1.106 1.36 2.092 1.56"/><path d="m44.24 18c-.871.741-2.023 1.315-3.338.937 0 0-.789 3.846-2.594 1.269 0 0 1.475.417 1.805-.774 0 0-4.176-3.044-6.683 1.575 0 0-2.053.559-1.266 2.723 0 0 1.441-1.794 2.183.929 0 0 .805-.417 1.123-3.896 0 0 1.998-.679.467 2.069 0 0 4.553.049-2.507 2.796 0 0-.393-.05-.711-1.094 0 0-1.066 2.531-3.252 3.433 0 0 .508 1.019-1.115 1.48 0 0-.869 1.578 1.219 1.578 0 0 1.807-3.788 5.255-.82 0 0 .645-.168-.375-1.654 0 0 1.805.483 2.508 2.429 0 0 1.121-.126 1.297-1.825 0 0 1.398-2.162 3.684.389 0 0-3.02-.604-3.811 1.482 0 0 1.426-.436 2.314.171 0 0 .145 1.34-1.398 1.483 0 0-11.812-4.592-13.11 4.476 0 0 .182.654.627 1.351.645.585 1.344 1.107 2.092 1.56.738.151 1.645 1.031 2.766.397 0 0 2.227-.715 2.983 1.48.375.032.756.059 1.139.059 3.428 0 6.547-1.311 8.924-3.448-.988-.042-2.67-.89-4.404-5.289 0 0 3 4.71 5.734 3.921.486-.579.92-1.204 1.307-1.862-.898.096-2.33-.093-2.953-2.059 0 0 1.65.144 3.572.877.809-1.752 1.275-3.698 1.275-5.759-.001-4.165-1.853-7.885-4.761-10.384"/><path d="m31.01 26.308c.793-1.259-1.717-2.723-1.717-2.723.326 3.063.93 3.987 1.717 2.723"/><path d="m28.826 25.23c0 0-.936.063-.936 1.255.001-.001 1.301-.127.936-1.255"/><path d="m27.385 20.327c0 0-3.303 0-2.135 1.146 1.168 1.144 2.135-1.146 2.135-1.146"/></g><path opacity=".33" fill="#d6eef0" d="m48.882 29.28c0 6.957-5.645 12.601-12.6 12.601-6.958 0-12.603-5.644-12.603-12.601s5.645-12.601 12.603-12.601c6.955.001 12.6 5.644 12.6 12.601"/><path fill="#fff" d="m45.521 28.994c-.135-4.971-3.982-8.818-8.951-8.953-1.504-.041-1.5 2.294 0 2.335 3.684.101 6.518 2.935 6.617 6.618.039 1.499 2.373 1.504 2.334 0"/><path fill="#89664c" d="m62.987 51.14c-2.199-2.2-4.4-4.399-6.602-6.601-1.02-1.02-2.219-1.184-3.271-.845-1.717-1.72-3.436-3.438-5.154-5.154 1.957-2.476 3.133-5.596 3.133-8.989 0-8.02-6.525-14.546-14.547-14.546-8.02 0-14.546 6.525-14.546 14.546 0 8.02 6.525 14.546 14.546 14.546 3.393 0 6.516-1.178 8.99-3.132 1.717 1.718 3.436 3.437 5.154 5.154-.34 1.051-.176 2.25.844 3.271 2.201 2.201 4.4 4.4 6.604 6.602 3.131 3.132 7.982-1.721 4.849-4.852m-37.626-21.589c0-6.168 5.02-11.187 11.185-11.187 6.17 0 11.188 5.02 11.188 11.187s-5.02 11.187-11.188 11.187c-6.167-.001-11.185-5.02-11.185-11.187"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dfe9ef" d="M21.6 56.6 2 58.2 8.1 5 27.1 3.8z"/><path fill="#bbc3c7" d="m43.4 62l-21.8-5.4 5.5-52.8 13.8 6z"/><path fill="#dfe9ef" d="M62 55.2 43.4 62 40.9 9.8 55.9 2z"/><path fill="#5df6ff" d="m22.1 52.1l-15.3 1.2 4.7-44.8 15.2-.9z"/><path fill="#00c0cf" d="m43.2 58l-21.1-5.9 4.6-44.5 14.4 6z"/><path fill="#5df6ff" d="M57.9 52.5 43.2 58 41.1 13.6 53 7.9z"/><g opacity=".7"><path d="m21.6 36c-.3.1-.6.3-.8.5.1.1.1.1.1.1-1.9 3.5 1.1 4.7 1.1 4.7-1.2 6.1 1.3 8.1 1.3 8.1-.6-4.6 3-7.6 3-7.6 1-4.7-3.3-5.6-4.7-5.8" fill="#f361f5"/><path d="m20.4 35.6c-1.8-1.2-1.8-3.1-1.8-3.1 3 0 6.3-4.4 6.3-4.4-2.2-7-3.1-1.1-3.1-1.1-3.2-3.4.9-5 .9-5-2.5-1-3.6-3.8-3.6-3.8-.1 1.8-.9 1.7-.9 1.7-5.7-3.1-6.7 1.9-6.7 1.9.9 2.7-1 3-1 3 1.9.3 2.9-2.1 2.9-2.1 3.9 1.8 1.8 8.4 1.8 8.4 1.5.8 1.9 3.6 1.9 3.6 1.1.3 2.1.9 2.9 1.4.1-.3.2-.4.4-.5" fill="#edba53"/><path d="m26.4 16.1c0 0-1.7-1.1-4.5.6 0 0-.7 6.3 4.5-.6" fill="#eef8fb"/><path d="m30.6 17.5c-2.2-3.6-5.8 1.3-5.8 1.3 1.3 1 1.4 1.9 1.2 2.7-.9 3 .3 3.9.3 3.9.7-2.5 3.1-2.9 3.1-2.9-.3-2.3 1.2-5 1.2-5" fill="#5f5cff"/><path d="m36.7 33.7c-.2.1-.4.1-.6 0-.5-.5-.8-1.1-1.1-1.7-.1-.1-.1-.2-.1-.3-1.7-.6-5-1.2-5.5 3.4 0 0 .6 3.1 2.7 1.5 0 0 2.3.4 1.4 4.5 0 0 .4 3.2 2.4 2.9 0 0 .5-4.6 3.1-8.2-.1.1-1.1 1.1-2.3-2.1" fill="#ff7033"/><path d="m53.3 18.1c0 0-4.9 1.7-10.3 1.2 0 0 .5-1.6-1.4-1.8 0 0-2.5 3-1.4 4.7 0 0-.5 3-1.1-1.4 0 0-1 2.6-2.5 2 0 0-.4 2.6-1.3.9 0 0 .7.3.9-.5 0 0-2.1-2.1-3.3 1.1 0 0-1 .4-.6 1.8 0 0 .7-1.2 1.1.6 0 0 .4-.3.5-2.6 0 0 1-.5.2 1.4 0 0 2.2 0-1.2 1.9 0 0-.2 0-.3-.7 0 0-.5 1.7-1.6 2.3 0 0 .3.7-.5 1 0 0-.4 1.1.6 1.1 0 0 .9-2.5 2.6-.5 0 0 .3-.1-.2-1.1 0 0 .9.3 1.2 1.6 0 0 .5-.1.6-1.2 0 0 .7-1.5 1.8.3 0 0-1.5-.4-1.9 1 0 0 .7-.3 1.1.1 0 0 0 .7-.4.9.2.3.4.7.7.9.2.2.2.4.1.6.8 1.3 2.2 2.9 3.3.3 0 0-1.4.7-1.8-1.3 0 0 3.5.4 4.4 3.9 0 0 1-.7 1.3-3 0 0 1.2.1 2.6 3 0 0 .6-.1.3-2 0 0 2.3-.9 1-4.6 0 0 1.9 2.5 1.3-.7 0 0 2.1-2.4-.4-4 0 0 .1-1.8 1.6-1.5 0 0 1.5-3.7.8.7 0 0 0 .9 1 1.8 0 0 .4-1.4-.3-3 .2-.2 1.7-2.9 1.5-5.2" fill="#6c732d"/><g fill="#f361f5"><path d="m31.9 27.8c.4-.9-.9-1.8-.9-1.8.2 2 .5 2.6.9 1.8"/><path d="m30.3 27.9c0 0 .6-.1.5-.8 0 0-.5 0-.5.8"/><path d="m30.1 23.8c0 0-1.6 0-1 .8.5.7 1-.8 1-.8"/></g><path d="m38.2 42.5c0 0 .5-.9.5-2.4 0 0-1.6 1.7-.5 2.4" fill="#edff54"/><path d="m48.4 36.6c0 0-1.1 1-.9 1.9.2.9 1.2-.2.9-1.9" fill="#eef8fb"/><path d="m53 39.8c.5-.8-2.7-1.8-2.7-1.8.6.8 2.2 2.5 2.7 1.8" fill="#edff54"/><path d="m49.3 39.9c.8-1.2-2.3-.6-2.3-.6s2 1.1 2.3.6" fill="#f361f5"/><g fill="#f33"><path d="m50.5 40.2c0 0-.6 1.3-2.9 1.8 0 0 .5 1 0 3 0 0 2.3-2.7 3.6 1.2 0 0 1.1.6 1.9-3 0 0-1-1.3-1.3-3.1.1 0-.2 2.3-1.3.1"/><path d="m49.5 31.5c0 0 2.6-.9 1.5-3 .1-.1.3-.2.3-.2-1.1-1.7-.7.7-.7.7.1-.2.2-.3.2-.4 0 .8-.1 1.9-1.3 2.9"/><path d="m22.6 23.5c0 0 1.9 2.7 2.1-.3.1-.7-.2-.8-.5-.8-.1-2-1.5-2.6-1.5-2.6-.9.5-.8 1.2-.8 1.2.8.1 1.3 1.1 1.6 1.9-.1.3-.4.6-.9.6"/></g><path d="m31.3 15.9c.6-1.2-1.2-2.6-1.2-2.6.2 2.9.6 3.8 1.2 2.6" fill="#edff54"/><path d="m29.8 14.8c0 0-.7.1-.7 1.2 0 0 .9-.1.7-1.2" fill="#fff"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5fb.svg
index eca993f..17545f8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 0h64v64h-64z"/><path fill="#464d51" d="m58.03 41.515l-20.51-8.554-25.631 4.429-11.889 6.61v20h64v-20z"/><path fill="#fff" d="m37.16 34.32c0 0-2.842-12.231-3.364-12.323-.24-.042-.712.1-1.177.261-1.021.354-1.123.115-2.063-.125-.769-.196-1.384.284-1.843.571-1.895 1.186-4.698 4.786-6.308 6.337-2.417 2.328-10.514 8.349-10.514 8.349s-1.626 1.469-3.33 4.628c0 0 3.344-2.226 4.673-2.281.818-.033.156 2.281.156 2.281l4.897-3.27-3.037 3.27c0 0 3.615-1.422 5.957-2.767 1.401-.805 3.64-3.751 3.942-3.169.496.956-1.947 3.773-1.947 3.773l1.158-.353-1.156 2.313 3.377-3.118-1.779 3.32c0 0 2.548-3.066 3.123-3.471 4.08-2.867-1.869 4.175-1.869 4.175s6.84-3.574 9.2-3.923c3.066-.454 6.483 2.664 6.483 2.664l-4.579-7.142"/><g fill="#c5ccd6"><path d="m59.02 43.577c-.892-1.106-.994-2.063-.994-2.063s-10.867-6.894-14.13-9.656c-2.333-1.972-6.357-6.6-8.526-8.752-.377-.374-1.299-1.245-1.812-1.106-1.313.355-2.024 3.755-3.114 4.459 0 0 .662.806.271 2.515 0 0 1.286-1.475 1.286-.335 0 2.28 1.704 2.143 2.024 3.187 1.285 4.191 3.341 7.08 4.312 7.479 1.901.793 3.398 2.159 3.398 2.159l-.789-2.111c2.453-.101 3.884 1.308 3.884 1.308s.146-1.962.964-1.711c2.426.747 5.987 3.874 5.987 3.874s-.108-1.327.817-1.408c2.251-.203 6.427 2.161 6.427 2.161"/><path d="m18.47 36.485l3.797-5.734-1.147 3.469z"/><path d="m23.57 33.937v-2.28l3.836-3.417z"/></g><g fill="#fff"><path d="m60.42 14.362c-.032 0-.062.006-.093.007.056-.165.093-.333.093-.51 0-1.09-1.132-1.98-2.593-2.119-.903-1.221-2.686-2.052-4.74-2.052-2.563 0-4.702 1.294-5.237 3.02-.157-.019-.315-.035-.48-.035-1.428 0-2.618.725-2.911 1.689-.024 0-.047-.005-.071-.005-1.085 0-1.963.633-1.963 1.413 0 .781.878 1.414 1.963 1.414.415 0 .799-.094 1.116-.252.36.294.881.484 1.47.484.208 0 .404-.03.594-.073.315.476.985.808 1.767.808.316 0 .61-.059.875-.154.881.457 1.959.729 3.127.729 1.113 0 2.146-.244 3.01-.662.256.052.521.088.799.088 1.098 0 2.046-.431 2.563-1.067.223.063.464.101.718.101 1.085 0 1.964-.633 1.964-1.414-.002-.781-.881-1.414-1.966-1.414"/><path d="m6.921 26.02c.017 0 .031.003.047.003-.028-.083-.047-.169-.047-.258 0-.554.574-1 1.315-1.075.458-.619 1.362-1.041 2.405-1.041 1.3 0 2.385.656 2.656 1.534.08-.01.16-.018.244-.018.725 0 1.328.367 1.477.856.013 0 .024-.002.036-.002.551 0 .996.321.996.717 0 .396-.445.717-.996.717-.21 0-.405-.047-.566-.127-.183.148-.446.245-.745.245-.105 0-.205-.015-.302-.037-.159.241-.499.41-.896.41-.161 0-.31-.03-.444-.078-.446.231-.994.369-1.586.369-.565 0-1.089-.124-1.524-.336-.13.026-.265.045-.405.045-.557 0-1.038-.219-1.301-.542-.113.032-.235.051-.364.051-.55 0-.996-.32-.996-.717 0-.395.446-.716.996-.716"/><path d="m38.36 9.766c.017 0 .031.003.047.003-.028-.083-.047-.169-.047-.258 0-.554.574-1 1.315-1.075.458-.619 1.362-1.041 2.405-1.041 1.3 0 2.385.656 2.656 1.534.08-.01.16-.018.244-.018.725 0 1.328.367 1.477.856.013 0 .024-.002.036-.002.551 0 .996.321.996.717 0 .396-.445.717-.996.717-.21 0-.405-.047-.566-.127-.183.148-.446.245-.745.245-.105 0-.205-.015-.302-.037-.159.241-.499.41-.896.41-.161 0-.31-.03-.444-.078-.446.231-.994.369-1.586.369-.565 0-1.089-.124-1.524-.336-.13.026-.265.045-.405.045-.557 0-1.038-.219-1.301-.542-.113.032-.235.051-.364.051-.55 0-.996-.32-.996-.717 0-.395.447-.716.996-.716"/><path d="m10.184 18.837c-.073 0-.142.011-.213.015-.314-.662-.977-1.207-1.845-1.536.094-.233.16-.475.16-.729 0-1.25-1.217-2.292-2.868-2.614-1.07-1.385-3.07-2.364-5.418-2.551v11.375c1.444-.046 2.777-.384 3.87-.943.663.355 1.484.575 2.387.575.815 0 1.571-.173 2.199-.469.458.289 1.061.469 1.728.469 1.428 0 2.584-.804 2.584-1.795 0-.993-1.157-1.797-2.584-1.797"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 0h64v64h-64z"/><path fill="#464d51" d="m58 41.5l-20.5-8.5-25.6 4.4-11.9 6.6v20h64v-20z"/><path d="m37.2 34.3c0 0-2.8-12.2-3.4-12.3-.2 0-.7.1-1.2.3-1 .4-1.1.1-2.1-.1-.8-.2-1.4.3-1.8.6-1.9 1.2-4.7 4.8-6.3 6.3-2.4 2.3-10.5 8.3-10.5 8.3s-1.6 1.5-3.3 4.6c0 0 3.3-2.2 4.7-2.3.8 0 .2 2.3.2 2.3l4.9-3.3-3 3.3c0 0 3.6-1.4 6-2.8 1.4-.8 3.6-3.8 3.9-3.2.5 1-1.9 3.8-1.9 3.8l1.2-.4-1.2 2.3 3.4-3.1-2 3.4c0 0 2.5-3.1 3.1-3.5 4.1-2.9-1.9 4.2-1.9 4.2s6.8-3.6 9.2-3.9c3.1-.5 6.5 2.7 6.5 2.7l-4.5-7.2" fill="#fff"/><g fill="#c5ccd6"><path d="m59 43.6c-.9-1.1-1-2.1-1-2.1s-10.9-6.9-14.1-9.7c-2.3-2-6.4-6.6-8.5-8.8-.4-.4-1.3-1.2-1.8-1.1-1.3.4-2 3.8-3.1 4.5 0 0 .7.8.3 2.5 0 0 1.3-1.5 1.3-.3 0 2.3 1.7 2.1 2 3.2 1.3 4.2 3.3 7.1 4.3 7.5 1.9.8 3.4 2.2 3.4 2.2l-.8-2.1c2.5-.1 3.9 1.3 3.9 1.3s.1-2 1-1.7c2.4.7 6 3.9 6 3.9s-.1-1.3.8-1.4c2.1-.3 6.3 2.1 6.3 2.1"/><path d="m18.5 36.5l3.8-5.7-1.2 3.4z"/><path d="m23.6 33.9v-2.2l3.8-3.5z"/></g><g fill="#fff"><path d="m60.4 14.4c0 0 0 0 0 0 0-.2 0-.3 0-.5 0-1.1-1.1-2-2.6-2.1-.9-1.2-2.7-2.1-4.7-2.1-2.6 0-4.7 1.3-5.2 3-.2 0-.3 0-.5 0-1.4 0-2.6.7-2.9 1.7 0 0 0 0-.1 0-1.1 0-2 .6-2 1.4 0 .8.9 1.4 2 1.4.4 0 .8-.1 1.1-.3.4.3.9.5 1.5.5.2 0 .4 0 .6-.1.3.5 1 .8 1.8.8.3 0 .6-.1.9-.2.9.5 2 .7 3.1.7 1.1 0 2.1-.2 3-.7.3.1.5.1.8.1 1.1 0 2-.4 2.6-1.1.2.1.5.1.7.1 1.1 0 2-.6 2-1.4-.1-.6-1-1.2-2.1-1.2"/><path d="m6.9 26c0 0 .1 0 0 0 0-.1 0-.2 0-.3 0-.6.6-1 1.3-1.1.5-.6 1.4-1 2.4-1 1.3 0 2.4.7 2.7 1.5.1 0 .2 0 .2 0 .7 0 1.3.4 1.5.9.6 0 1 .3 1 .7s-.4.7-1 .7c-.2 0-.4 0-.6-.1-.2.1-.4.2-.7.2-.1 0-.2 0-.3 0-.2.2-.5.4-.9.4-.2 0-.3 0-.4-.1-.4.2-1 .4-1.6.4-.6 0-1.1-.1-1.5-.3-.1 0-.3 0-.4 0-.6 0-1-.2-1.3-.5-.1 0-.2.1-.4.1-.6 0-1-.3-1-.7 0-.5.5-.8 1-.8"/><path d="m38.4 9.8c0 0 0 0 0 0 0-.1 0-.2 0-.3 0-.6.6-1 1.3-1.1.5-.6 1.4-1 2.4-1 1.3 0 2.4.7 2.7 1.5.1 0 .2 0 .2 0 .7 0 1.3.4 1.5.9.6 0 1 .3 1 .7s-.4.7-1 .7c-.2 0-.4 0-.6-.1-.2.1-.4.2-.7.2-.1 0-.2 0-.3 0-.2.2-.5.4-.9.4-.2 0-.3 0-.4-.1-.4.2-1 .4-1.6.4-.6 0-1.1-.1-1.5-.3-.1 0-.3 0-.4 0-.6 0-1-.2-1.3-.5-.1 0-.2.1-.4.1-.5 0-1-.3-1-.7 0-.5.4-.8 1-.8"/><path d="m10.2 18.8c-.1 0-.1 0-.2 0-.3-.7-1-1.2-1.8-1.5.1-.2.2-.5.2-.7 0-1.2-1.2-2.3-2.9-2.6-1.1-1.4-3.1-2.4-5.4-2.6v11.4c1.4 0 2.8-.4 3.9-.9.7.4 1.5.6 2.4.6.8 0 1.6-.2 2.2-.5.5.3 1.1.5 1.7.5 1.4 0 2.6-.8 2.6-1.8-.1-1.1-1.3-1.9-2.7-1.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5fc.svg
index 1e989c6..cb64daa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dae3ea" d="m38.667 47.48h-13.334l-1.333-3.48h16z"/><path fill="#ed4c5c" d="m38.667 48.17h-13.334c-1.709 6.27-4.156 10.817-9.333 15.833h7.742c0 0 2.739-9.5 8.258-9.5s8.258 9.5 8.258 9.5h7.742c-5.177-5.02-7.624-9.563-9.333-15.833"/><g fill="#dae3ea"><path d="m18 25.653c0 .913-.74 1.653-1.653 1.653h-14.694c-.913.001-1.653-.74-1.653-1.653 0-.913.74-1.653 1.653-1.653h14.693c.914 0 1.654.74 1.654 1.653"/><path d="m24.51 22.347c0 .913-.74 1.653-1.653 1.653h-14.694c-.913 0-1.653-.74-1.653-1.653 0-.913.74-1.653 1.653-1.653h14.693c.914-.001 1.654.74 1.654 1.653"/><path d="m64 40.667c0 .913-.74 1.653-1.653 1.653h-14.694c-.913 0-1.653-.74-1.653-1.653 0-.913.74-1.653 1.653-1.653h14.693c.914 0 1.654.74 1.654 1.653"/><path d="m60.17 37.36c0 .913-.74 1.653-1.653 1.653h-14.694c-.913 0-1.653-.74-1.653-1.653 0-.913.74-1.653 1.653-1.653h14.693c.914 0 1.654.74 1.654 1.653"/></g><path fill="#ed4c5c" d="m37.518 43.32h-11.04l1.568-5.638h7.899z"/><path fill="#dae3ea" d="m35.854 36.999h-7.704l.774-7h5.968z"/><path fill="#ed4c5c" d="m34.983 29.999h-5.963l.809-6.789h4.341z"/><g fill="#dae3ea"><path d="m28.403 19.643h7.193v2.883h-7.193z"/><path d="m28.403 14.989h7.193v1.77h-7.193z"/></g><path fill="#ed4c5c" d="m28.403 13.608h7.193v1.381h-7.193z"/><path fill="#c94747" d="m30.683 8.214h2.635v5.394h-2.635z"/><path fill="#dae3ea" d="m30.683 1.461h2.635v6.753h-2.635z"/><path fill="#ed4c5c" d="m30.683 0h2.635v1.461h-2.635z"/><g fill="#c5d0d8"><path d="m29.979 16.759h4.04v2.884h-4.04z"/><path d="m28.27 29.999h7.461v.683h-7.461z"/></g><g fill="#b2c1c0"><path d="m30.683 7.532h2.635v.683h-2.635z"/><path d="m28.403 21.843h7.193v.683h-7.193z"/><path d="m28.27 30.682h7.461v.683h-7.461z"/><path d="m28.05 32.787h7.898v.683h-7.898z"/><path d="m27.676 34.894h8.648v.683h-8.648z"/></g><g fill="#c5d0d8"><path d="m28.05 32.1h7.898v.683h-7.898z"/><path d="m27.676 34.21h8.648v.683h-8.648z"/><path d="m27.359 36.32h9.281v.683h-9.281z"/></g><g fill="#c94747"><path d="m25.333 47.48h13.334v.683h-13.334z"/><path d="m29.829 22.525h4.342v.683h-4.342z"/><path d="m29.573 43.505h-1.281v-3.346c0-.354.287-.641.641-.641.354 0 .641.287.641.641v3.346"/><path d="m31.618 43.505h-1.281v-3.346c0-.354.287-.641.641-.641.354 0 .641.287.641.641v3.346z"/><path d="m33.663 43.505h-1.281v-3.346c0-.354.287-.641.641-.641.354 0 .641.287.641.641v3.346"/><path d="m35.708 43.505h-1.281v-3.346c0-.354.287-.641.641-.641.354 0 .641.287.641.641v3.346"/><path d="m31.568 29.999h-1.281v-3.346c0-.354.287-.641.641-.641.354 0 .641.287.641.641v3.346z"/><path d="m33.713 29.999h-1.281v-3.346c0-.354.287-.641.641-.641.354 0 .641.287.641.641v3.346"/></g><path fill="#b2c1c0" d="m24 43.32h16v.683h-16z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dae3ea" d="m38.7 47.5h-13.4l-1.3-3.5h16z"/><path d="m38.7 48.2h-13.4c-1.7 6.2-4.1 10.8-9.3 15.8h7.7c0 0 2.7-9.5 8.3-9.5s8.3 9.5 8.3 9.5h7.7c-5.2-5-7.6-9.6-9.3-15.8" fill="#ed4c5c"/><g fill="#dae3ea"><path d="m18 25.7c0 .9-.7 1.7-1.7 1.7h-14.6c-.9 0-1.7-.7-1.7-1.7 0-1 .7-1.7 1.7-1.7h14.7c.9 0 1.6.7 1.6 1.7"/><path d="m24.5 22.3c0 .9-.7 1.7-1.7 1.7h-14.6c-.9 0-1.7-.7-1.7-1.7 0-.9.7-1.7 1.7-1.7h14.7c.9.1 1.6.8 1.6 1.7"/><path d="m64 40.7c0 .9-.7 1.7-1.7 1.7h-14.6c-.9 0-1.7-.7-1.7-1.7 0-.9.7-1.7 1.7-1.7h14.7c.9 0 1.6.8 1.6 1.7"/><path d="m60.2 37.4c0 .9-.7 1.7-1.7 1.7h-14.7c-.9 0-1.7-.7-1.7-1.7 0-.9.7-1.7 1.7-1.7h14.7c.9 0 1.7.7 1.7 1.7"/></g><path fill="#ed4c5c" d="m37.5 43.3h-11l1.6-5.6h7.8z"/><path fill="#dae3ea" d="m35.9 37h-7.8l.8-7h6z"/><path fill="#ed4c5c" d="m35 30h-6l.8-6.8h4.4z"/><g fill="#dae3ea"><path d="m28.4 19.6h7.2v2.9h-7.2z"/><path d="m28.4 15h7.2v1.8h-7.2z"/></g><path fill="#ed4c5c" d="m28.4 13.6h7.2v1.4h-7.2z"/><path fill="#c94747" d="m30.7 8.2h2.6v5.4h-2.6z"/><path fill="#dae3ea" d="m30.7 1.5h2.6v6.8h-2.6z"/><path fill="#ed4c5c" d="m30.7 0h2.6v1.5h-2.6z"/><g fill="#c5d0d8"><path d="m30 16.8h4v2.9h-4z"/><path d="m28.3 30h7.5v.7h-7.5z"/></g><g fill="#b2c1c0"><path d="m30.7 7.5h2.6v.7h-2.6z"/><path d="m28.4 21.8h7.2v.7h-7.2z"/><path d="m28.3 30.7h7.5v.7h-7.5z"/><path d="m28.1 32.8h7.9v.7h-7.9z"/><path d="m27.7 34.9h8.6v.7h-8.6z"/></g><g fill="#c5d0d8"><path d="m28.1 32.1h7.9v.7h-7.9z"/><path d="m27.7 34.2h8.6v.7h-8.6z"/><path d="m27.4 36.3h9.3v.7h-9.3z"/></g><g fill="#c94747"><path d="m25.3 47.5h13.3v.7h-13.3z"/><path d="m29.8 22.5h4.3v.7h-4.3z"/><path d="m29.6 43.5h-1.3v-3.3c0-.4.3-.6.6-.6.4 0 .6.3.6.6l.1 3.3"/><path d="m31.6 43.5h-1.3v-3.3c0-.4.3-.6.6-.6.4 0 .6.3.6.6l.1 3.3"/><path d="m33.7 43.5h-1.3v-3.3c0-.4.3-.6.6-.6.4 0 .6.3.6.6l.1 3.3"/><path d="m35.7 43.5h-1.3v-3.3c0-.4.3-.6.6-.6.4 0 .6.3.6.6l.1 3.3"/><path d="m31.6 30h-1.3v-3.3c0-.4.3-.6.6-.6.4 0 .6.3.6.6l.1 3.3"/><path d="m33.7 30h-1.3v-3.3c0-.4.3-.6.6-.6.4 0 .6.3.6.6l.1 3.3"/></g><path fill="#b2c1c0" d="m24 43.3h16v.7h-16z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5fd.svg
index 9c9e6cb..fc4d834 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m26.05 23.529h15.962v13.868h-15.962z"/><path d="m23.264 27.04c0 0-6.903.244-5.456 11.218l4.02 12.915 7.561-16.747-6.125-7.386"/></g><g fill="#42ade2"><path d="m12.707 18.601l7.137 15.362c0 0 3.063-.692 3.063-5.171l-6.886-12.08-3.314 1.89"/><path d="m40.38 34.645c-2.459-2.229-10.251-2.229-12.711 0-7.313 6.626-7.495 27.355-7.495 27.355h27.7c0 0-.183-20.729-7.494-27.355"/></g><path fill="#428bc1" d="m42.02 20.19l-.92-.669.49-6.594-3.41 5.354-2.01-.652-2.14-7.693-2.137 7.693-2.01.652-3.412-5.354.493 6.594-.921.669-6.97-1.218 7.398 5.496h7.562 7.56l7.395-5.496z"/><path fill="#42ade2" d="m41.24 24.04c0 5.686-5.264 8.426-7.213 8.426-1.95 0-7.214-2.74-7.214-8.426 0 0 14.427-4.384 14.427 0"/><path fill="#428bc1" d="m44.1 54.939l-8.08-8 10.904-10.798 8.08 8z"/><g fill="#42ade2"><path d="m52.952 49.34c-.386.381-1.01.381-1.395 0l-2.047-2.029c-.386-.383-.386-1 0-1.382l.034-.035c.386-.381 1.01-.381 1.394 0l2.049 2.029c.386.382.386 1 0 1.382l-.035.035"/><path d="m51.888 50.909c-.387.381-1.058.334-1.502-.105l-2.359-2.337c-.443-.439-.491-1.105-.105-1.487l.034-.034c.386-.381 1.058-.334 1.501.105l2.36 2.337c.443.439.488 1.105.104 1.487l-.033.034"/><path d="m50.559 52.22c-.385.382-1.057.335-1.5-.104l-2.359-2.338c-.444-.439-.491-1.104-.105-1.486l.034-.034c.387-.382 1.057-.334 1.5.105l2.36 2.337c.443.439.49 1.105.105 1.486l-.035.034"/><path d="m48.972 52.803c-.331.329-.868.329-1.199 0l-1.764-1.746c-.331-.328-.331-.861 0-1.189l.03-.029c.331-.328.868-.328 1.2 0l1.763 1.747c.332.328.332.86 0 1.188l-.03.029"/></g><g fill="#428bc1"><path d="m38.609 38.25c0 0-7.189 10.674-3.613 23.747h-5.508c0 0-1.725-14.858 9.121-23.747"/><path d="m38.03 50.42c0 0-3.507 5.206-1.763 11.583h-2.686c.001 0-.841-7.247 4.449-11.583"/><path d="m32.09 35.569c0 0-8 11.881-4.02 26.431h-6.128c0 0-1.92-16.537 10.152-26.431"/></g><path fill="#42ade2" d="m23.788 27.668l2.929 3.532c0 0 1.579 5.638-2.929 10.162 0-.001 2.086-7.206 0-13.694"/><g fill="#428bc1"><path d="m35.866 28.576c0 .24-.823.609-1.837.609-1.016 0-1.837-.37-1.837-.609 0-.154 3.674-.154 3.674 0"/><path d="m35.17 30.438c0 .164-.526.417-1.175.417-.649 0-1.176-.253-1.176-.417 0-.106 2.351-.106 2.351 0"/><path d="m39.468 25.13c0 .555-.794 1.406-1.771 1.406-.979 0-1.771-.852-1.771-1.406-.001-.355 3.542-.355 3.542 0"/><path d="m32.13 25.13c0 .555-.794 1.406-1.771 1.406-.979 0-1.772-.852-1.772-1.406 0-.355 3.543-.355 3.543 0"/></g><path fill="#ff9d27" d="m11.661 11.754c0 0-2.127-1.373-1.859-3.998.309-3.01 2.672-4.051 2.672-4.051s-.63 2.518 0 2.878c.419.241 1.765.01 1.93-2.324.053-.738-.943-2.259-.943-2.259s2.263.772 3.122 2.748c.636 1.465.014 4.02.014 4.02s1.116-.297 1.614-1.742c0 0 .58 3.256-1.965 4.727h-4.585"/><path fill="#428bc1" d="m15.952 22.01c0 1.035-.824 1.875-1.84 1.875h-.467c-1.016 0-1.84-.84-1.84-1.875l.022-8.146h4.147l-.022 8.146"/><g fill="#42ade2"><path d="m9.742 15.9c0 .54.442.977.986.977h2.897c.545 0 .985-.438.985-.977v-.049c0-.54-.44-.977-.985-.977h-2.897c-.544 0-.986.438-.986.977v.049"/><path d="m9.373 17.76c0 .54.508.978 1.136.978h3.337c.627 0 1.136-.438 1.136-.978v-.047c0-.54-.508-.978-1.136-.978h-3.337c-.627 0-1.136.438-1.136.978v.047"/><path d="m9.371 19.62c.001.54.51.978 1.137.978h3.337c.626 0 1.136-.438 1.136-.978v-.047c0-.541-.508-.978-1.136-.978h-3.337c-.627 0-1.136.438-1.136.978l-.001.047"/><path d="m10.08 21.14c0 .465.38.841.849.841h2.493c.468 0 .849-.375.849-.841v-.042c0-.463-.38-.84-.849-.84h-2.493c-.469 0-.849.377-.849.84v.042"/><ellipse cx="15.975" cy="16.04" rx="1.172" ry="1.159"/><path d="m18.204 12.01v.932h-.92v-.932h-.92v.932h-.92v-.932h-.92v.932h-.92v-.932h-.92v.932h-.92v-.932h-.92v.932h-.92v-.932h-.924v.932 1.466h10.13v-1.466-.932z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="m26 23.5h16v13.9h-16z"/><path d="m23.3 27c0 0-6.9.2-5.5 11.2l4 12.9 7.6-16.7-6.1-7.4"/></g><g fill="#42ade2"><path d="m12.7 18.6l7.1 15.4c0 0 3.1-.7 3.1-5.2l-6.9-12.1-3.3 1.9"/><path d="m40.4 34.6c-2.5-2.2-10.3-2.2-12.7 0-7.3 6.7-7.5 27.4-7.5 27.4h27.7c0 0-.2-20.7-7.5-27.4"/></g><path fill="#428bc1" d="m42 20.2l-.9-.7.5-6.6-3.4 5.4-2-.7-2.2-7.7-2.1 7.7-2 .7-3.4-5.4.5 6.6-1 .7-6.9-1.2 7.4 5.5h7.5 7.6l7.4-5.5z"/><path d="m41.2 24c0 5.7-5.3 8.4-7.2 8.4-2 0-7.2-2.7-7.2-8.4 0 0 14.4-4.3 14.4 0" fill="#42ade2"/><path fill="#428bc1" d="m44.1 54.9l-8.1-8 10.9-10.8 8.1 8z"/><g fill="#42ade2"><path d="m53 49.3c-.4.4-1 .4-1.4 0l-2-2c-.4-.4-.4-1 0-1.4.4-.4 1-.4 1.4 0l2 2c.4.4.4 1 0 1.4"/><path d="m51.9 50.9c-.4.4-1.1.3-1.5-.1l-2.4-2.3c-.4-.4-.5-1.1-.1-1.5.4-.4 1.1-.3 1.5.1l2.4 2.3c.5.4.5 1.1.1 1.5"/><path d="m50.6 52.2c-.4.4-1.1.3-1.5-.1l-2.4-2.3c-.4-.4-.5-1.1-.1-1.5.4-.4 1.1-.3 1.5.1l2.4 2.3c.4.4.5 1.1.1 1.5"/><path d="m49 52.8c-.3.3-.9.3-1.2 0l-1.8-1.7c-.3-.3-.3-.9 0-1.2.3-.3.9-.3 1.2 0l1.8 1.7c.3.3.3.8 0 1.2"/></g><g fill="#428bc1"><path d="m38.6 38.3c0 0-7.2 10.7-3.6 23.7h-5.5c0 0-1.7-14.9 9.1-23.7"/><path d="m38 50.4c0 0-3.5 5.2-1.8 11.6h-2.7c.1 0-.8-7.2 4.5-11.6"/><path d="m32.1 35.6c0 0-8 11.9-4 26.4h-6.1c-.1 0-2-16.5 10.1-26.4"/></g><path d="m23.8 27.7l2.9 3.5c0 0 1.6 5.6-2.9 10.2 0 0 2.1-7.2 0-13.7" fill="#42ade2"/><g fill="#428bc1"><path d="m35.9 28.6c0 .2-.8.6-1.8.6-1 0-1.8-.4-1.8-.6-.1-.2 3.6-.2 3.6 0"/><path d="m35.2 30.4c0 .2-.5.4-1.2.4s-1.2-.3-1.2-.4c0-.1 2.4-.1 2.4 0"/><path d="m39.5 25.1c0 .6-.8 1.4-1.8 1.4-1 0-1.8-.9-1.8-1.4 0-.3 3.6-.3 3.6 0"/><path d="m32.1 25.1c0 .6-.8 1.4-1.8 1.4-1 0-1.8-.9-1.8-1.4.1-.3 3.6-.3 3.6 0"/></g><path d="m11.7 11.8c0 0-2.1-1.4-1.9-4 .3-3 2.7-4.1 2.7-4.1s-.6 2.5 0 2.9c.4.2 1.8 0 1.9-2.3.1-.8-.9-2.3-.9-2.3s2.3.8 3.1 2.7c.6 1.5 0 4 0 4s1.1-.3 1.6-1.7c0 0 .6 3.3-2 4.7h-4.5z" fill="#ff9d27"/><path d="m16 22c0 1-.8 1.9-1.8 1.9h-.5c-1 0-1.8-.8-1.8-1.9v-8.1h4.1v8.1" fill="#428bc1"/><g fill="#42ade2"><path d="m9.7 15.9c0 .5.4 1 1 1h2.9c.5 0 1-.4 1-1 0-.5-.4-1-1-1h-2.9c-.5 0-1 .4-1 1"/><path d="m9.4 17.8c0 .5.5 1 1.1 1h3.3c.6 0 1.1-.4 1.1-1 0-.5-.5-1-1.1-1h-3.3c-.6-.1-1.1.4-1.1 1"/><path d="m9.4 19.6c0 .5.5 1 1.1 1h3.3c.6 0 1.1-.4 1.1-1 0-.5-.5-1-1.1-1h-3.3c-.6 0-1.1.4-1.1 1"/><path d="m10.1 21.1c0 .5.4.8.8.8h2.5c.5 0 .8-.4.8-.8 0-.5-.4-.8-.8-.8h-2.5c-.4 0-.8.3-.8.8"/><ellipse cx="16" cy="16" rx="1.2" ry="1.2"/><path d="m18.2 12v.9h-.9v-.9h-.9v.9h-1v-.9h-.9v.9h-.9v-.9h-.9v.9h-.9v-.9h-1v.9h-.9v-.9h-.9v.9 1.5h10.1v-1.5-.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5fe.svg
index f908a21..2b86ffc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#628441"><path d="m9.972 51.624c-.593-.107-1.582.4-2.265-.402-.678-.802-1.661-.121-1.886.609-.227.729-4.302.864-3.774 1.331.527.469 1.811 2.945 2.34 2.41s1.086-2.075 1.6-1.339.666 2.275-1.146 3.748c-1.811 1.473.906.602.527 2.342-.376 1.74 1.513 1.607 1.813 1.674.303.066 2.038-.937 2.341-1.605.303-.67 2.112-5.422 1.886-5.823-.225-.401-.83-1.406-1.583-1.204-.757.199 2.415-1.341.147-1.741"/><path d="m8.993 48.879c-.698.146-2.038.67-1.134 1.406.906.735 2.755-.938 3.567 0 .813.937 1.492-1.605 1.793-1 .301.603 2.415.074 3.926-.431 1.511-.507 3.094-1.646 4.606-1.243 1.51.402 2.716.795 1.886 1.401-.831.606-1.435 2.01-.756 2.213.68.201 1.662 1.741 2.568 1.405.906-.335 2.038-3.279 3.396-3.212 1.358.066.38-1.405-.527-1.538-.906-.136 1.132-2.545 1.661-1.407.527 1.138 3.473 2.01 4.15 1.606.681-.401 1.511-1.947 2.494-1.91.979.036-1.511 2.779 0 2.044 1.508-.736 1.432-3.346 2.642-2.543 1.208.803 1.509-2.409 1.659-1.07.152 1.337-.907 2.409 0 2.073.907-.334 3.02-2.542 2.567-3.881-.454-1.338-.754-3.414.681-4.15 1.434-.735-.455-5.822.905-5.822 1.358 0 1.358.619 1.435-.829.075-1.447.604-2.115 1.659-3.253 1.058-1.139-1.811-4.753-2.187-5.354-.379-.603.828-2.61-.606-3.278 0 0-1.357-1-1.661 0-.301 1 1.736 1.204 1.512 2.01-.227.804-2.267.938-2.343-.536-.073-1.471-.828-.134-.828.938s-2.416.135-1.661 1.406-1.282 2.743-.15 3.01c1.133.268-.378 5.353-1.132 5.889-.758.536-.228 1.539-1.587 1.941-1.36.401-2.794 3.346-4.604 3.815-1.813.469-2.267 1.337-2.491.469-.229-.871-1.588-.737-.378-1.34 1.207-.603 2.037-1.804.753-1.537-1.283.266-2.49 1.47-2.039 2.14.456.67.235 1.941-.788 2.61-1.024.67-2.606 1.605-1.853 2.275.755.67-.227 2.142-1.132 1.606-.907-.536-1.811-1.94-2.718-1.271-.907.668-3.32 1.204-4.605 1-1.282-.2-3.172-.803-3.396.067-.227.868-1.998 2.877-2.851 3.078-.85.202-1.475 1-2.433 1.204"/><path d="m20.393 49.27c-.639.117-1.965-.535-2.492.334-.53.871-1.209.352-1.585.887-.379.535-1.284-1-1.89 0-.603 1-2.112 2.075-1.282 2.677.83.603-.303 1.01.377 1.674.681.669 2.038.937 2.268 0 .225-.937 1.131-3.03 2.188-2.482 1.057.542 1.583.837 1.962.321s1.133-1.319 1.661-1.453c.527-.135.227-2.228-1.207-1.958"/><path d="m44.1 17.49c.66.684.981 1.272.454 1.406-.529.133-1.435-.804-1.813 0-.379.802-1.21 2.141-1.964 1.205-.757-.938 1.51-2.411.529-2.611-.981-.201-1.813-1.071-1.286-2.075.532-1 1.692-1.473 2.317-1.873.628-.402-.246-.804 0-1.407.252-.601.327-.601 1.461 0 1.131.604 2.338.972 2.338-.45s-1.282-2.093 0-2.494c1.286-.4.604-1.136 1.058-2.141.453-1 0-2.477-.527-3.414-.53-.936.904-2.676 2.265-.803 1.358 1.875 4.756 5.222 6.114 5.354 1.357.134 1.737.535 2.642.87.907.335 3.473-2.543 2.945-1.674-.528.871-1.661 2.275-1.059 2.812.605.535.907 1.271.53 1.606-.379.333 3.02-.669 1.51.268-1.51.937-2.189.803-2.567 1.405-.376.604-2.34.4-3.171-.067-.83-.468-2.265 1.942-2.718 2.678-.452.736.152 2.409-.452 1.808 0 0-1.661-.803-2.794-1.339-1.132-.536-2.489-1.808-3.548-1.339-1.059.468-1.9 1.533-2.113.87-.084-.263-.04-.686-.66-.92-.625-.234-1.453.301-1.642.853-.191.554.242.92.923 1.021.679.101 1.03.247 1.228.451"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#628441"><path d="m10 51.6c-.6-.1-1.6.4-2.3-.4-.7-.8-1.7-.1-1.9.6-.2.7-4.3.9-3.8 1.3.5.5 1.8 2.9 2.3 2.4s1.1-2.1 1.6-1.3.7 2.3-1.1 3.7c-1.8 1.5.9.6.5 2.3-.3 1.9 1.6 1.7 1.9 1.8.3.1 2-.9 2.3-1.6.3-.7 2.1-5.4 1.9-5.8-.2-.4-.8-1.4-1.6-1.2-.7.2 2.4-1.4.2-1.8"/><path d="m9 48.9c-.7.1-2 .7-1.1 1.4.9.7 2.8-.9 3.6 0 .8.9 1.5-1.6 1.8-1 .3.6 2.4.1 3.9-.4 1.5-.5 3.1-1.6 4.6-1.2 1.5.4 2.7.8 1.9 1.4-.8.6-1.4 2-.8 2.2.7.2 1.7 1.7 2.6 1.4.9-.3 2-3.3 3.4-3.2 1.4.1.4-1.4-.5-1.5-.9-.1 1.1-2.5 1.7-1.4.5 1.1 3.5 2 4.1 1.6.7-.4 1.5-1.9 2.5-1.9 1 0-1.5 2.8 0 2 1.5-.7 1.4-3.3 2.6-2.5 1.2.8 1.5-2.4 1.7-1.1.2 1.3-.9 2.4 0 2.1.9-.3 3-2.5 2.6-3.9-.5-1.3-.8-3.4.7-4.2 1.4-.7-.5-5.8.9-5.8 1.4 0 1.4.6 1.4-.8.1-1.4.6-2.1 1.7-3.3 1.1-1.1-1.8-4.8-2.2-5.4-.4-.6.8-2.6-.6-3.3 0 0-1.4-1-1.7 0-.3 1 1.7 1.2 1.5 2-.3.8-2.3.9-2.4-.5-.1-1.5-.8-.1-.8.9s-2.4.1-1.7 1.4-1.3 2.7-.2 3c1.1.3-.4 5.4-1.1 5.9-.8.5-.2 1.5-1.6 1.9-1.4.4-2.8 3.3-4.6 3.8-1.8.5-2.3 1.3-2.5.5-.2-.9-1.6-.7-.4-1.3 1.2-.6 2-1.8.8-1.5-1.3.3-2.5 1.5-2 2.1.5.7.2 1.9-.8 2.6-1 .7-2.6 1.6-1.9 2.3.8.7-.2 2.1-1.1 1.6-.9-.5-1.8-1.9-2.7-1.3-.9.7-3.3 1.2-4.6 1-1.3-.2-3.2-.8-3.4.1-.2.9-2 2.9-2.9 3.1-.8.2-1.4 1-2.4 1.2"/><path d="m20.4 49.3c-.6.1-2-.5-2.5.3-.5.9-1.2.4-1.6.9-.4.5-1.3-1-1.9 0-.6 1-2.1 2.1-1.3 2.7.8.6-.3 1 .4 1.7.7.7 2 .9 2.3 0 .2-.9 1.1-3 2.2-2.5 1.1.5 1.6.8 2 .3s1.1-1.3 1.7-1.5c.4-.1.1-2.2-1.3-1.9"/><path d="m44.1 17.5c.7.7 1 1.3.5 1.4-.5.1-1.4-.8-1.8 0-.4.8-1.2 2.1-2 1.2-.8-.9 1.5-2.4.5-2.6-1-.2-1.8-1.1-1.3-2.1.5-1 1.7-1.5 2.3-1.9.6-.4-.2-.8 0-1.4.3-.6.3-.6 1.5 0 1.1.6 2.3 1 2.3-.4s-1.3-2.1 0-2.5c1.3-.4.6-1.1 1.1-2.1.5-1 0-2.5-.5-3.4-.5-.9.9-2.7 2.3-.8 1.4 1.9 4.8 5.2 6.1 5.4 1.4.1 1.7.5 2.6.9.9.3 3.5-2.5 2.9-1.7-.5.9-1.7 2.3-1.1 2.8.6.5.9 1.3.5 1.6-.4.3 3-.7 1.5.3-1.5.9-2.2.8-2.6 1.4-.4.6-2.3.4-3.2-.1-.8-.5-2.3 1.9-2.7 2.7-.5.7.2 2.4-.5 1.8 0 0-1.7-.8-2.8-1.3-1.1-.5-2.5-1.8-3.5-1.3-1.1.5-1.9 1.5-2.1.9-.1-.3 0-.7-.7-.9-.6-.2-1.5.3-1.6.9-.2.6.2.9.9 1 .8-.2 1.2 0 1.4.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f5ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f5ff.svg
index 14d0a5e..3b6c02a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f5ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f5ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#acb8bf" d="m12.338 64l-4.617-31.87 6.754-14.729 1.754-10.09 9.05-2.779 6.02-4.537 6.81 3.039 4.95.9 4.11 5.853 9.29 7.767-1.24 14.13 1.13 12.426-1.579 19.88z"/><path fill="#dae3ea" d="M19.652,42.321V64c0,0,4.506,0,12.58,0c8.525,0,13.76,0,13.76,0V32.135L19.652,42.321z"/><path fill="#62727a" d="m19.652 44.947l3.996 6.66 9.736-.338c0 0 6.365-2.202 9.455-7.316 4.896-8.104 4.305-20.372 4.305-20.372l-27.492 21.366"/><g fill="#dae3ea"><path d="m16.238 21.648c0 0-.523-7.86 5.992-13.183 4.668-3.815 10.254-4.514 14.1-3.526 8.553 2.195 10.521 14.458 10.521 14.458-3.791 1.253-15.05-6-15.05-6l-2.289 11.856-6.941.132.111-2.982"/><path d="m16.238 21.648c0 0-1.127 9.169-.674 12.187.438 2.928 4.088 11.11 4.088 11.11s7.422-.952 9.869-.601c1.066.154 2.996 1.678 4.051 1.464 4.18-.848 9.871-8.614 11.594-12.516 3.02-6.845 1.689-13.897 1.689-13.897l-21.461-1.839-9.156 4.09"/></g><path fill="#62727a" d="m22.691 22.399l1.314-8.367c0 0-7.166-.263-7.768 7.616l6.454.751"/><path fill="#acb8bf" d="m31.811 13.395l-2.29 11.855c0 0 1.949 2.467 2.627 5.516l1.828-11.856-2.165-5.515"/><g fill="#62727a"><path d="m31.811 13.395c2.025 3.939 1.875 8.254 1.875 8.254 2.627-.788 11.742.563 13.17-2.251-6.604-1.614-8.743-7.504-15.05-6"/><path d="m29.521 25.25l-6.941.132c0 0 .844 4.107.195 5.205 0 0 5.459-.619 9.457.281 0 0-.421-3.769-2.711-5.618"/><path d="m21.23 35.08c0 0 .445-3.3 1.35-3.678.627-.263 2.477 1.126 2.477 1.126s2.578-1.581 3.525-1.464c1.857.23 6 4.465 6 4.465s-4.416-1.729-5.965-1.695c-.811.018-3.078 1.021-3.078 1.021s-1.932-.595-2.588-.525c-.469.049-1.725.75-1.725.75"/><path d="m21.455 39.02c0 0-.248-2.389.299-2.851.697-.59 2.732.309 3.641.225 1.252-.117 3.629-1.408 4.877-1.238 1.273.173 4.465 2.551 4.465 2.551s-3.621.155-5.797 1.355c-3.93 2.167-7.485-.042-7.485-.042"/></g><g fill="#83bf4f"><path d="M 0.209,60.493 H64 V64 H0.209 z"/><path d="m3.383 59.726c0-2.6-1.314-4.925-3.383-6.506.777 1.236 1.223 2.656 1.223 4.168 0 1.25-.471 2.033-1.014 3.105l3.072.401c.061-.382.102-.771.102-1.168"/><path d="m5.791 60.23c0-2.6-1.314-4.926-3.383-6.506.777 1.235 1.223 2.654 1.223 4.167 0 1.25-.309 2.435-.854 3.507h2.914c.059-.383.1-.772.1-1.168"/><path d="m8.24 60.23c0-2.6-1.313-4.926-3.381-6.506.775 1.235 1.223 2.654 1.223 4.167 0 1.25-.311 2.435-.854 3.507h2.912c.059-.383.1-.772.1-1.168"/><path d="m10.441 61.4c0-2.6-1.313-4.924-3.381-6.505.775 1.235 1.221 2.655 1.221 4.167 0 1.25-.309 2.436-.854 3.508h2.914c.061-.383.1-.772.1-1.17"/><path d="m13.191 60.59c0-2.599-1.313-4.925-3.381-6.505.775 1.235 1.221 2.654 1.221 4.167 0 1.25-.309 2.435-.854 3.507h2.914c.059-.383.1-.772.1-1.169"/><path d="m15.611 61.837c0-2.6-1.314-4.924-3.383-6.505.777 1.235 1.223 2.655 1.223 4.167 0 1.25-.309 2.436-.854 3.508h2.914c.059-.384.1-.772.1-1.17"/><path d="m17.303 61.4c0-2.6-1.313-4.924-3.381-6.505.777 1.235 1.221 2.655 1.221 4.167 0 1.25-.309 2.436-.854 3.508h2.914c.061-.383.1-.772.1-1.17"/><path d="m19.654 60.45c0-2.6-1.314-4.925-3.383-6.506.777 1.236 1.223 2.655 1.223 4.168 0 1.25-.309 2.435-.854 3.507h2.912c.061-.384.102-.771.102-1.169"/><path d="m21.984 61.837c0-2.6-1.314-4.924-3.383-6.505.777 1.235 1.223 2.655 1.223 4.167 0 1.25-.311 2.436-.854 3.508h2.914c.059-.384.1-.772.1-1.17"/><path d="m24.273 61.55c0-2.599-1.314-4.925-3.383-6.505.777 1.235 1.223 2.654 1.223 4.166 0 1.25-.309 2.436-.854 3.508h2.914c.059-.383.1-.772.1-1.169"/><path d="m26.549 62.49c0-2.6-1.314-4.925-3.383-6.506.775 1.236 1.221 2.655 1.221 4.168 0 1.25-.309 2.435-.854 3.507h2.914c.061-.384.102-.771.102-1.169"/><path d="m28.14 59.33c0-2.6-1.313-4.925-3.381-6.506.775 1.236 1.221 2.655 1.221 4.168 0 1.25-.309 2.434-.854 3.507h2.914c.059-.384.1-.771.1-1.169"/><path d="m30.338 60.23c0-2.6-1.314-4.924-3.383-6.505.777 1.235 1.223 2.655 1.223 4.167 0 1.25-.309 2.436-.854 3.508h2.914c.059-.384.1-.772.1-1.17"/><path d="m32.787 60.23c0-2.6-1.313-4.924-3.381-6.505.775 1.235 1.223 2.655 1.223 4.167 0 1.25-.311 2.436-.854 3.508h2.912c.059-.384.1-.772.1-1.17"/><path d="m34.988 61.4c0-2.6-1.313-4.926-3.383-6.506.777 1.235 1.223 2.654 1.223 4.167 0 1.25-.309 2.435-.854 3.507h2.914c.061-.382.1-.771.1-1.168"/><path d="m37.738 60.59c0-2.6-1.313-4.924-3.381-6.505.775 1.235 1.221 2.655 1.221 4.167 0 1.25-.309 2.435-.854 3.508h2.914c.059-.384.1-.772.1-1.17"/><path d="m40.16 61.839c0-2.6-1.314-4.926-3.383-6.506.777 1.235 1.223 2.654 1.223 4.167 0 1.25-.311 2.435-.854 3.507h2.914c.059-.383.1-.772.1-1.168"/><path d="m41.85 61.4c0-2.6-1.313-4.926-3.381-6.506.775 1.235 1.221 2.654 1.221 4.167 0 1.25-.309 2.435-.854 3.507h2.914c.059-.382.1-.771.1-1.168"/><path d="m53.03 60.23c0-2.6-1.314-4.926-3.383-6.506.777 1.235 1.221 2.654 1.221 4.167 0 1.25-.309 2.435-.854 3.507h2.914c.061-.383.102-.772.102-1.168"/><path d="m55.23 61.4c0-2.6-1.313-4.924-3.383-6.505.777 1.235 1.225 2.655 1.225 4.167 0 1.25-.311 2.436-.854 3.508h2.912c.059-.383.1-.772.1-1.17"/><path d="m57.984 60.59c0-2.599-1.314-4.925-3.383-6.505.777 1.235 1.223 2.654 1.223 4.167 0 1.25-.309 2.435-.852 3.507h2.912c.059-.383.1-.772.1-1.169"/><path d="m64 61.08c0-2.6-1.314-4.924-3.383-6.505.777 1.235 1.223 2.655 1.223 4.167 0 1.25-.311 2.436-.854 3.508h2.914c.059-.384.1-.771.1-1.17"/><path d="m60.4 61.837c0-2.6-1.313-4.924-3.381-6.505.775 1.235 1.221 2.655 1.221 4.167 0 1.25-.309 2.436-.854 3.508h2.914c.059-.384.1-.772.1-1.17"/><path d="m62.1 61.4c0-2.6-1.314-4.924-3.383-6.505.777 1.235 1.225 2.655 1.225 4.167 0 1.25-.311 2.436-.854 3.508h2.912c.059-.383.1-.772.1-1.17"/><path d="m44.2 60.45c0-2.599-1.314-4.924-3.383-6.504.777 1.234 1.223 2.654 1.223 4.166 0 1.25-.311 2.436-.854 3.508h2.913c.06-.383.101-.771.101-1.17"/><path d="m46.531 61.839c0-2.6-1.314-4.926-3.383-6.506.777 1.235 1.223 2.654 1.223 4.167 0 1.25-.311 2.435-.854 3.507h2.914c.059-.383.1-.772.1-1.168"/><path d="m48.82 61.55c0-2.6-1.314-4.925-3.383-6.506.777 1.236 1.223 2.656 1.223 4.168 0 1.25-.309 2.435-.854 3.507h2.914c.059-.384.1-.772.1-1.169"/><path d="m51.1 62.49c0-2.599-1.314-4.924-3.385-6.504.777 1.234 1.223 2.654 1.223 4.166 0 1.25-.309 2.436-.854 3.508h2.914c.061-.383.102-.771.102-1.17"/><path d="m51.578 52.16h.548v7.508h-.548z"/></g><path fill="#c94747" d="m50.2 47.771v3.297c0 .607.492 1.098 1.099 1.098h1.099v-2.196c-.001-1.605-2.198-2.199-2.198-2.199"/><path fill="#ed4c5c" d="m53.5 47.771v3.297c0 .607-.491 1.098-1.098 1.098h-1.099v-2.196c.001-1.605 2.197-2.199 2.197-2.199"/><path fill="#83bf4f" d="m3.826 51.26h.548v7.508h-.548z"/><path fill="#c94747" d="m2.452 46.868v3.297c0 .607.492 1.098 1.099 1.098h1.099v-2.196c-.001-1.604-2.198-2.199-2.198-2.199"/><path fill="#ed4c5c" d="m5.747 46.868v3.297c0 .607-.491 1.098-1.098 1.098h-1.098v-2.196c0-1.604 2.196-2.199 2.196-2.199"/><path fill="#83bf4f" d="m19.479 54.729h.548v7.508h-.548z"/><path fill="#c94747" d="m18.1 50.34v3.297c0 .607.492 1.098 1.099 1.098h1.099v-2.196c0-1.604-2.198-2.199-2.198-2.199"/><path fill="#ed4c5c" d="m21.399 50.34v3.297c0 .607-.491 1.098-1.098 1.098h-1.099v-2.196c.001-1.604 2.197-2.199 2.197-2.199"/><path fill="#f2b200" d="m41.692 47.22v3.296c0 .608.488 1.101 1.095 1.101h1.098v-2.198c0-1.603-2.193-2.199-2.193-2.199"/><path fill="#ffce31" d="m44.983 47.22v3.296c0 .608-.49 1.101-1.099 1.101h-1.098v-2.198c.001-1.603 2.197-2.199 2.197-2.199"/><path fill="#83bf4f" d="m43.06 51.617h.547v9.338h-.547z"/><path fill="#f2b200" d="m13.812 48.17v3.296c0 .608.488 1.101 1.095 1.101h1.098v-2.198c-.001-1.602-2.193-2.199-2.193-2.199"/><path fill="#ffce31" d="m17.1 48.17v3.296c0 .608-.49 1.101-1.099 1.101h-1.098v-2.198c0-1.602 2.197-2.199 2.197-2.199"/><path fill="#83bf4f" d="m15.183 52.57h.547v9.338h-.547z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#acb8bf" d="m11.7 61l-4.7-29.4 6.9-13.6 1.8-9.3 9.3-2.5 6.2-4.2 7 2.8 5.1.8 4.2 5.4 9.5 7.2-1.3 13 1.2 11.5-1.6 18.3z"/><path d="m19.2 41v20c0 0 4.6 0 12.9 0 8.7 0 14.1 0 14.1 0v-29.4l-27 9.4" fill="#dae3ea"/><path d="m19.2 43.4l4.1 6.1 10-.3c0 0 6.5-2 9.7-6.7 5-7.5 4.4-18.8 4.4-18.8l-28.2 19.7" fill="#62727a"/><g fill="#dae3ea"><path d="m15.7 22c0 0-.5-7.2 6.1-12.2 4.8-3.5 10.5-4.2 14.5-3.2 8.8 2 10.8 13.3 10.8 13.3-3.9 1.2-15.4-5.5-15.4-5.5l-2.3 10.9-7.1.1.1-2.8"/><path d="m15.7 22c0 0-1.2 8.5-.7 11.2.4 2.7 4.2 10.2 4.2 10.2s7.6-.9 10.1-.6c1.1.1 3.1 1.5 4.2 1.3 4.3-.8 10.1-7.9 11.9-11.5 3.1-6.3 1.7-12.8 1.7-12.8l-22-1.7-9.4 3.9"/></g><path d="m22.4 22.6l1.3-7.7c0 0-7.4-.2-8 7l6.7.7" fill="#62727a"/><path d="m31.7 14.3l-2.3 10.9c0 0 2 2.3 2.7 5.1l1.9-10.9-2.3-5.1" fill="#acb8bf"/><g fill="#62727a"><path d="m31.7 14.3c2.1 3.6 1.9 7.6 1.9 7.6 2.7-.7 12 .5 13.5-2.1-6.7-1.4-8.9-6.8-15.4-5.5"/><path d="m29.4 25.3l-7.1.1c0 0 .9 3.8.2 4.8 0 0 5.6-.6 9.7.3-.1 0-.5-3.5-2.8-5.2"/><path d="m20.9 34.3c0 0 .5-3 1.4-3.4.6-.2 2.5 1 2.5 1s2.6-1.5 3.6-1.4c1.9.2 6.2 4.1 6.2 4.1s-4.5-1.6-6.1-1.6c-.8 0-3.2.9-3.2.9s-2-.5-2.7-.5c-.5.3-1.7.9-1.7.9"/><path d="m21.1 38c0 0-.3-2.2.3-2.6.7-.5 2.8.3 3.7.2 1.3-.1 3.7-1.3 5-1.1 1.3.2 4.6 2.4 4.6 2.4s-3.7 0-5.9 1.1c-4.1 2-7.7 0-7.7 0"/></g><g fill="#83bf4f"><path d="m2 56h60v6h-60z"/><path d="m51.5 50.2h.5v7.5h-.5z"/></g><path d="m50.1 45.8v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c0-1.6-2.2-2.2-2.2-2.2" fill="#c94747"/><path d="m53.4 45.8v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ed4c5c"/><path fill="#83bf4f" d="m3.7 49.3h.5v7.5h-.5z"/><path d="m2.3 44.9v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c0-1.6-2.2-2.2-2.2-2.2" fill="#c94747"/><path d="m5.6 44.9v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ed4c5c"/><path fill="#83bf4f" d="m58.8 52.7h.5v7.5h-.5z"/><path d="m57.5 48.3v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c0-1.6-2.2-2.2-2.2-2.2" fill="#c94747"/><path d="m60.8 48.3v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ed4c5c"/><path fill="#83bf4f" d="m19.4 52.7h.5v7.5h-.5z"/><path d="m18 48.3v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c0-1.6-2.2-2.2-2.2-2.2" fill="#c94747"/><path d="m21.3 48.3v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ed4c5c"/><path d="m41.6 45.2v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c0-1.6-2.2-2.2-2.2-2.2" fill="#f2b200"/><path d="m44.9 45.2v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ffce31"/><path fill="#83bf4f" d="m43 49.6h.5v9.3h-.5z"/><path d="m13.7 46.2v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c0-1.6-2.2-2.2-2.2-2.2" fill="#f2b200"/><path d="m17 46.2v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ffce31"/><path fill="#83bf4f" d="m15.1 50.6h.5v9.3h-.5z"/><path d="m30.4 45.9v3.3c0 .6.5 1.1 1.1 1.1h1.1v-2.2c-.1-1.6-2.2-2.2-2.2-2.2" fill="#f2b200"/><path d="m33.6 45.9v3.3c0 .6-.5 1.1-1.1 1.1h-1.1v-2.2c0-1.6 2.2-2.2 2.2-2.2" fill="#ffce31"/><path fill="#83bf4f" d="m31.7 50.3h.5v9.3h-.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f600.svg b/build/js/jsxc/lib/emojione/assets/svg/1f600.svg
index d1d05c7..33a4769 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f600.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f600.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m51 35.32c0 8.05-6.311 17.447-19 17.447-12.693 0-19-9.395-19-17.447 0 0 6.307 0 19 0 12.689 0 19 0 19 0"/><path fill="#4c3526" d="m34.1 40.803c-.662-.016-1.676.576-1.305 2.143.188.791 1.355 1.748 1.355 3.02 0 2.596-4.303 2.596-4.303 0 0-1.275 1.168-2.232 1.355-3.02.373-1.566-.645-2.158-1.303-2.143-1.791.045-4.729 1.9-4.729 5.04 0 3.529 3.057 6.389 6.828 6.389 3.77 0 6.826-2.859 6.826-6.389.002-3.139-2.937-4.994-4.724-5.04"/><path fill="#ff717f" d="m41.1 51.02c-2.408-1.408-5.432-2.299-9.105-2.299s-6.697.891-9.104 2.299c2.406 1.41 5.43 2.299 9.104 2.299s6.697-.889 9.105-2.299"/><path fill="#fff" d="m13 35h38v5h-38z"/><path fill="#664e27" d="m32 53.764c-12.99 0-20-9.504-20-18.447v-1h40v1c0 8.943-7.01 18.447-20 18.447m-17.967-17.448c.504 7.666 6.764 15.448 17.967 15.448s17.465-7.781 17.969-15.447h-35.936z"/><path fill="#fff" d="m28.5 22c0 4.418-3.584 8-8 8-4.418 0-8-3.582-8-8 0-4.416 3.582-8 8-8 4.416 0 8 3.584 8 8"/><circle fill="#664e27" cx="20.5" cy="22" r="4"/><path fill="#fff" d="m51.5 22c0 4.418-3.584 8-8 8-4.418 0-8-3.582-8-8 0-4.416 3.582-8 8-8 4.416 0 8 3.584 8 8"/><circle fill="#664e27" cx="43.5" cy="22" r="4"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m49.7 34.4c-.4-.5-1.1-.4-1.9-.4-15.8 0-15.8 0-31.6 0-.8 0-1.5-.1-1.9.4-3.9 5 .7 19.6 17.7 19.6 17 0 21.6-14.6 17.7-19.6" fill="#664e27"/><path d="m33.8 41.7c-.6 0-1.5.5-1.1 2 .2.7 1.2 1.6 1.2 2.8 0 2.4-3.8 2.4-3.8 0 0-1.2 1-2 1.2-2.8.3-1.4-.6-2-1.1-2-1.6 0-4.1 1.7-4.1 4.6 0 3.2 2.7 5.8 6 5.8 3.3 0 6-2.6 6-5.8-.1-2.8-2.7-4.5-4.3-4.6" fill="#4c3526"/><path d="m24.3 50.7c2.2 1 4.8 1.5 7.7 1.5 2.9 0 5.5-.6 7.7-1.5-2.1-1.1-4.7-1.7-7.7-1.7s-5.6.6-7.7 1.7" fill="#ff717f"/><path d="m47 36c-15 0-15 0-29.9 0-2.1 0-2.1 4-.1 4 10.4 0 19.6 0 30 0 2 0 2-4 0-4" fill="#fff"/><g fill="#664e27"><circle cx="20.5" cy="23" r="5"/><circle cx="43.5" cy="23" r="5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f601.svg b/build/js/jsxc/lib/emojione/assets/svg/1f601.svg
index 743cb46..e3939db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f601.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f601.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#fff" d="m49.647 36.746c0 6.461-5.862 14-17.647 14-11.79 0-17.646-7.539-17.646-14 0 0 5.856 0 17.646 0 11.785 0 17.647 0 17.647 0"/><g fill="#664e27"><path d="m31.5 37.11h1v13.209h-1z"/><path d="m22.28 37.11h1v12.258h-1z"/><path d="m40.721 37.11h1v12.258h-1z"/><path d="m32 51.746c-12.18 0-18.75-7.729-18.75-15v-1h37.5v1c0 7.272-6.572 15-18.75 15m-16.496-14c.577 5.99 6.317 12 16.496 12s15.917-6.01 16.494-12h-32.99"/><path d="m27.7 23.683c-4.757-5.141-13.827-2.711-15.375 4.12-.091.416.546.807 1.268 1.061 3.147-4.229 8.697-5.717 13.537-3.628.498-.581.854-1.238.57-1.553"/><path d="m51.675 27.802c-1.549-6.831-10.618-9.261-15.374-4.121-.287.315.07.974.568 1.553 4.841-2.089 10.389-.603 13.536 3.626.722-.252 1.36-.642 1.27-1.058"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m28.5 27.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7 2.2 0 4.4.8 6.2 2.7.6.6 1.5-.4 1.3-.9"/><path d="m50.4 27.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.5.6 1.5-.4 1.3-.9"/><path d="m54 37.4c0-.8-.6-1.8-2.4-2.1-4.4-.6-11.1-1.3-19.6-1.3-8.5 0-15.2.7-19.6 1.3-1.7.3-2.4 1.3-2.4 2.1 0 9.6 3.5 12.6 17.8 12.6h8.4c14.3 0 17.8-3 17.8-12.6"/></g><g fill="#fff"><path d="m48.9 38.2c.2-.5-.1-1-.5-1.1 0 0-7.4-1.1-16.4-1.1-9 0-16.4 1.1-16.4 1.1-.5.1-.7.6-.5 1.1l1.1 2.9c.2.5.8.9 1.3.9h29.1c.5 0 1.1-.4 1.3-.9l1-2.9"/><path d="m32 48c6.4 0 15.5 0 15.2-2.1 0-.4-.1-.8-.3-1.3-.2-.5-.3-.7-1.4-.7-2.4 0-25.3 0-27.1 0-1.1 0-1.2.1-1.4.7-.1.5-.2.9-.3 1.3-.2 2.1 8.9 2.1 15.3 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f602.svg b/build/js/jsxc/lib/emojione/assets/svg/1f602.svg
index 5c4b086..ad3522a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f602.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f602.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32.06" cy="32" r="30"/><path fill="#664e27" d="m51.06 35.32c0 8.05-6.311 17.446-19 17.446-12.693 0-19-9.395-19-17.446 0 0 6.307 0 19 0 12.69 0 19 0 19 0"/><path fill="#4c3526" d="m34.16 40.805c-.662-.016-1.676.575-1.305 2.143.188.791 1.355 1.747 1.355 3.02 0 2.595-4.303 2.595-4.303 0 0-1.276 1.168-2.232 1.355-3.02.373-1.567-.645-2.158-1.303-2.143-1.791.045-4.729 1.9-4.729 5.04 0 3.528 3.057 6.389 6.828 6.389 3.77 0 6.826-2.86 6.826-6.389.003-3.139-2.937-4.994-4.724-5.04"/><path fill="#ff717f" d="m41.17 51.02c-2.408-1.408-5.432-2.298-9.105-2.298s-6.697.89-9.104 2.298c2.406 1.41 5.43 2.3 9.104 2.3s6.697-.89 9.105-2.3"/><path fill="#fff" d="m13.06 35h38v5h-38z"/><path fill="#664e27" d="m32.06 53.765c-12.99 0-20-9.504-20-18.446v-1h40v1c0 8.942-7.01 18.446-20 18.446m-17.967-17.447c.504 7.665 6.764 15.446 17.967 15.446s17.465-7.781 17.967-15.446h-35.934"/><g fill="#65b1ef"><path d="m59.38 35.874c7.307 7.679-2.621 18.12-9.93 10.437-5.336-5.611-5.578-16.301-5.578-16.301s10.174.257 15.508 5.864"/><path d="m14.422 46.31c-7.305 7.68-17.236-2.757-9.928-10.437 5.336-5.608 15.508-5.864 15.508-5.864s-.243 10.693-5.58 16.301"/></g><g fill="#664e27"><path d="m27.652 27.24c-3.264-6.197-12.653-6.197-15.917 0-.195.378.32.921.95 1.352 4.135-3.27 9.879-3.271 14.01 0 .632-.431 1.148-.974.953-1.352"/><path d="m52.39 27.24c-3.264-6.197-12.652-6.197-15.916-.001-.195.379.32.922.95 1.353 4.136-3.271 9.88-3.271 14.02-.001.63-.431 1.146-.973.951-1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m49.7 34.4c-.4-.5-1.1-.4-1.9-.4-15.8 0-15.8 0-31.6 0-.8 0-1.5-.1-1.9.4-3.9 5 .7 19.6 17.7 19.6 17 0 21.6-14.6 17.7-19.6" fill="#664e27"/><path d="m33.8 41.7c-.6 0-1.5.5-1.1 2 .2.7 1.2 1.6 1.2 2.8 0 2.4-3.8 2.4-3.8 0 0-1.2 1-2 1.2-2.8.3-1.4-.6-2-1.1-2-1.6 0-4.1 1.7-4.1 4.6 0 3.2 2.7 5.8 6 5.8 3.3 0 6-2.6 6-5.8-.1-2.8-2.7-4.5-4.3-4.6" fill="#4c3526"/><path d="m24.3 50.7c2.2 1 4.8 1.5 7.7 1.5 2.9 0 5.5-.6 7.7-1.5-2.1-1.1-4.7-1.7-7.7-1.7s-5.6.6-7.7 1.7" fill="#ff717f"/><path d="m47 36c-15 0-15 0-29.9 0-2.1 0-2.1 4-.1 4 10.4 0 19.6 0 30 0 2 0 2-4 0-4" fill="#fff"/><g fill="#65b1ef"><path d="m59.4 36.9c7.3 7.7-2.6 18.1-9.9 10.4-5.3-5.6-5.6-16.3-5.6-16.3s10.2.3 15.5 5.9"/><path d="m14.5 47.3c-7.3 7.7-17.2-2.7-9.9-10.4 5.3-5.6 15.5-5.9 15.5-5.9s-.3 10.7-5.6 16.3"/></g><g fill="#664e27"><path d="m28.5 28.7c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7 2.2 0 4.4.8 6.2 2.7.6.5 1.5-.4 1.3-.9"/><path d="m50.4 28.7c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.5.5 1.5-.4 1.3-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f603.svg b/build/js/jsxc/lib/emojione/assets/svg/1f603.svg
index 2a26280..a526b15 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f603.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f603.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m48 37c0 6.459-5.314 14-16 14-10.689 0-16-7.541-16-14 0 0 5.31 0 16 0 10.686 0 16 0 16 0"/><path fill="#fff" d="m16.917 37h30.17v6h-30.17z"/><g fill="#664e27"><path d="m32 52c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.959 15-17 15m-14.957-14c.524 5.989 5.728 12 14.957 12s14.432-6.01 14.955-12h-29.912"/><circle cx="20.5" cy="24.5" r="4.5"/><circle cx="43.5" cy="24.5" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="24.5" r="5"/><circle cx="43.5" cy="24.5" r="5"/><path d="m49 38c0-.8-.5-1.8-1.8-2.1-3.5-.7-8.6-1.3-15.2-1.3-6.6 0-11.7.7-15.2 1.3-1.3.3-1.8 1.3-1.8 2.1 0 7.3 5.6 14.6 17 14.6 11.4 0 17-7.3 17-14.6"/></g><path d="m44.7 38.3c-2.2-.4-6.8-1-12.7-1-5.9 0-10.5.6-12.7 1-1.3.2-1.4.7-1.3 1.5.1.4.1 1 .3 1.6.1.6.3.9 1.3.8 1.9-.2 23-.2 24.9 0 1 .1 1.1-.2 1.3-.8.1-.6.2-1.1.3-1.6 0-.8-.1-1.3-1.4-1.5" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f604.svg b/build/js/jsxc/lib/emojione/assets/svg/1f604.svg
index 047f4e1..9d3a840 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f604.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f604.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m48 37.5c0 6.461-5.314 14-16 14-10.689 0-16-7.539-16-14 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path fill="#fff" d="m16.918 37.5h30.17v5.6h-30.17z"/><g fill="#664e27"><path d="m32 52.5c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.957 15-17 15m-14.955-14c.523 5.99 5.727 12 14.955 12s14.434-6.01 14.957-12h-29.912"/><path d="m27.59 25.647c-3.264-6.197-12.653-6.197-15.917 0-.195.378.32.921.95 1.353 4.135-3.271 9.88-3.271 14.01-.001.632-.431 1.147-.974.952-1.352"/><path d="m52.33 25.647c-3.264-6.197-12.652-6.197-15.916-.001-.195.379.319.922.949 1.353 4.136-3.271 9.881-3.271 14.02-.001.631-.431 1.145-.973.951-1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M62,32c0,16.6-13.4,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67" id="0"/><path d="m49 38c0-.8-.5-1.8-1.8-2.1-3.5-.7-8.6-1.3-15.2-1.3-6.6 0-11.7.7-15.2 1.3-1.3.3-1.8 1.3-1.8 2.1 0 7.3 5.6 14.6 17 14.6 11.4 0 17-7.3 17-14.6" fill="#664e27" id="1"/><path d="m28.5 26.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7 2.2 0 4.4.8 6.2 2.7.6.5 1.5-.4 1.3-.9" fill="#664e27" id="2"/><path d="m50.4 26.9c-1.9-5.1-4.7-7.7-7.5-7.7-2.8 0-5.6 2.6-7.5 7.7-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7 2.3 0 4.4.8 6.2 2.7.5.5 1.5-.4 1.3-.9" fill="#664e27" id="3"/><path d="m44.7 38.3c-2.2-.4-6.8-1-12.7-1-5.9 0-10.5.6-12.7 1-1.3.2-1.4.7-1.3 1.5.1.4.1 1 .3 1.6.1.6.3.9 1.3.8 1.9-.2 23-.2 24.9 0 1 .1 1.1-.2 1.3-.8.1-.6.2-1.1.3-1.6 0-.8-.1-1.3-1.4-1.5" fill="#fff"/><use xlink:href="#0"/><use xlink:href="#1"/><use xlink:href="#2"/><use xlink:href="#3"/><path d="m44.7 38.3c-2.2-.4-6.8-1-12.7-1-5.9 0-10.5.6-12.7 1-1.3.2-1.4.7-1.3 1.5.1.4.1 1 .3 1.6.1.6.3.8 1.3.8 12.4 0 12.4 0 24.9 0 1 0 1.1-.2 1.3-.8.1-.6.2-1.1.3-1.6 0-.8-.1-1.3-1.4-1.5" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f605.svg b/build/js/jsxc/lib/emojione/assets/svg/1f605.svg
index 66a0724..da20875 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f605.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f605.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m48 37.499c0 6.46-5.314 13.999-16 13.999-10.689 0-16-7.539-16-13.999 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path fill="#fff" d="m16.918 37.499h30.17v5.599h-30.17z"/><path fill="#664e27" d="m32 52.5c-11.04 0-17-7.729-17-14.999v-1h34v1c0 7.271-5.957 14.999-17 14.999m-14.955-13.999c.523 5.989 5.726 11.999 14.955 11.999s14.434-6.01 14.957-11.999h-29.912"/><path fill="#65b1ef" d="M62,18.534c0.002,9.378-12.744,9.38-12.744,0c0-6.849,6.373-13.533,6.373-13.533S62,11.688,62,18.534z"/><g fill="#664e27"><path d="m27.59 25.648c-3.264-6.197-12.653-6.197-15.917 0-.195.378.32.921.95 1.353 4.135-3.271 9.88-3.271 14.01-.001.631-.431 1.145-.974.952-1.352"/><path d="m52.33 25.648c-3.264-6.197-12.653-6.197-15.917-.001-.195.379.32.922.951 1.353 4.135-3.271 9.879-3.271 14.01-.001.631-.431 1.146-.973.952-1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m25.5 26.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.6.5 1.5-.4 1.3-.9"/><path d="m47.4 26.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.5.5 1.5-.4 1.3-.9"/><path d="m46 38c0-.8-.5-1.8-1.8-2.1-3.5-.7-8.6-1.3-15.2-1.3-6.6 0-11.7.7-15.2 1.3-1.3.3-1.8 1.3-1.8 2.1 0 7.3 5.6 14.6 17 14.6 11.4 0 17-7.3 17-14.6"/></g><path d="m41.7 38.3c-2.2-.4-6.8-1-12.7-1-5.9 0-10.5.6-12.7 1-1.3.2-1.4.7-1.3 1.5.1.4.1 1 .3 1.6.1.6.3.9 1.3.8 1.9-.2 23-.2 24.9 0 1 .1 1.1-.2 1.3-.8.1-.6.2-1.1.3-1.6 0-.8-.1-1.3-1.4-1.5" fill="#fff"/><path d="M60,30.2c0,7.2-9.7,7.2-9.7,0c0-5.2,4.9-10.4,4.9-10.4S60,25,60,30.2z" fill="#65b1ef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f606.svg b/build/js/jsxc/lib/emojione/assets/svg/1f606.svg
index 551cb14..a16e007 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f606.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f606.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m51 33.32c0 8.05-6.311 17.445-19 17.445-12.695 0-19-9.395-19-17.445 0 0 6.305 0 19 0 12.689 0 19 0 19 0"/><path fill="#4c3526" d="m34.1 38.805c-.66-.016-1.676.574-1.303 2.143.186.791 1.355 1.746 1.355 3.02 0 2.594-4.305 2.594-4.305 0 0-1.277 1.17-2.232 1.357-3.02.371-1.568-.645-2.158-1.305-2.143-1.791.045-4.729 1.9-4.729 5.04 0 3.527 3.059 6.389 6.828 6.389s6.828-2.861 6.828-6.389c.002-3.139-2.937-4.994-4.726-5.04"/><path fill="#ff717f" d="m41.1 49.02c-2.406-1.408-5.43-2.297-9.104-2.297s-6.697.889-9.105 2.297c2.408 1.41 5.432 2.301 9.105 2.301s6.697-.891 9.104-2.301"/><path fill="#fff" d="m13 33h38v5h-38z"/><g fill="#664e27"><path d="m32 51.764c-12.992 0-20-9.504-20-18.445v-1h40v1c0 8.941-7.01 18.445-20 18.445m-17.969-17.446c.504 7.664 6.766 15.446 17.969 15.446s17.463-7.781 17.967-15.445h-35.936z"/><path d="m48.24 22.14c-1.447-.465-3-.657-4.561-.529-.324.026-.646.077-.971.133.111-.06.219-.128.33-.186 1.189-.611 2.424-1.147 3.738-1.633 1.314-.499 2.699-.925 4.201-1.506-1.467-.668-3.064-.893-4.664-.807-1.6.092-3.203.527-4.654 1.282-1.451.751-2.742 1.818-3.729 3.103-.967 1.285-1.701 2.785-1.797 4.412 1.467-.496 2.74-.929 4.02-1.219 1.268-.299 2.51-.479 3.783-.592 1.271-.107 2.57-.141 3.922-.141 1.355-.004 2.74.025 4.279-.004-1.078-1.126-2.453-1.835-3.893-2.313"/><path d="m22.34 18.893c-1.449-.755-3.055-1.19-4.652-1.282-1.6-.086-3.199.139-4.664.807 1.5.581 2.887 1.01 4.199 1.506 1.316.485 2.549 1.021 3.738 1.633.111.058.219.126.33.186-.322-.057-.646-.107-.971-.133-1.557-.128-3.113.064-4.561.529-1.439.479-2.814 1.188-3.893 2.314 1.537.029 2.922 0 4.279.004 1.35 0 2.648.033 3.922.141 1.271.112 2.516.293 3.781.592 1.275.29 2.549.723 4.02 1.219-.096-1.627-.83-3.127-1.799-4.412-.985-1.286-2.276-2.353-3.727-3.104"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m51.7 19.4c.6.3.3 1-.2 1.1-2.7.4-5.5.9-8.3 2.4 4 .7 7.2 2.7 9 4.8.4.5-.1 1.1-.5 1-4.8-1.7-9.7-2.7-15.8-2-.5 0-.9-.2-.8-.7 1.6-7.3 10.9-10 16.6-6.6"/><path d="m12.3 19.4c-.6.3-.3 1 .2 1.1 2.7.4 5.5.9 8.3 2.4-4 .7-7.2 2.7-9 4.8-.4.5.1 1.1.5 1 4.8-1.7 9.7-2.7 15.8-2 .5 0 .9-.2.8-.7-1.6-7.3-10.9-10-16.6-6.6"/><path d="m49.7 34.4c-.4-.5-1.1-.4-1.9-.4-15.8 0-15.8 0-31.6 0-.8 0-1.5-.1-1.9.4-3.9 5 .7 19.6 17.7 19.6 17 0 21.6-14.6 17.7-19.6"/></g><path d="m33.8 41.7c-.6 0-1.5.5-1.1 2 .2.7 1.2 1.6 1.2 2.8 0 2.4-3.8 2.4-3.8 0 0-1.2 1-2 1.2-2.8.3-1.4-.6-2-1.1-2-1.6 0-4.1 1.7-4.1 4.6 0 3.2 2.7 5.8 6 5.8s6-2.6 6-5.8c-.1-2.8-2.7-4.5-4.3-4.6" fill="#4c3526"/><path d="m24.3 50.7c2.2 1 4.8 1.5 7.7 1.5s5.5-.6 7.7-1.5c-2.1-1.1-4.7-1.7-7.7-1.7s-5.6.6-7.7 1.7" fill="#ff717f"/><path d="m47 36c-15 0-15 0-29.9 0-2.1 0-2.1 4-.1 4 10.4 0 19.6 0 30 0 2 0 2-4 0-4" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f607.svg b/build/js/jsxc/lib/emojione/assets/svg/1f607.svg
index ea77fb6..7109c83 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f607.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f607.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="M62,32c0,16.57-13.43,30-30,30C15.442,62,2,48.57,2,32S15.442,2,32,2C48.57,2,62,15.43,62,32z"/><path fill="#664e27" d="m17.317 39.949c2.475 1.457 4.865 2.34 7.314 2.926 2.439.586 4.9.834 7.371.84 2.468-.012 4.927-.26 7.367-.846 2.447-.588 4.838-1.467 7.316-2.92-1.061 2.717-3.418 4.855-6.05 6.223-2.652 1.379-5.66 2.043-8.64 2.041-2.977-.006-5.984-.668-8.637-2.047-2.624-1.369-4.98-3.504-6.05-6.217"/><path fill="#65b1ef" d="m60.42 7.619c-.33-2.777-5.316-4.684-12.734-5.354-3.582-.324-7.732-.357-12.195-.063 4.943.572 9.521 2.346 13.434 5.02 1.799.227 3.398.541 4.686.924.15.045.291.088.426.133-.564.385-1.268.82-2.119 1.281-.213.117-.436.234-.668.352-.758.334-1.625.682-2.613 1.039-4.684 1.68-10.715 3.02-16.986 3.758-1.563.186-3.109.332-4.629.439-8.125.318-14.27-.41-17.92-1.055-.367-.064-.709-.129-1.025-.191 3.143-4.148 7.338-7.455 12.19-9.52-11.06 2.504-18.677 6.539-18.247 10.164.16 1.342 1.406 2.48 3.486 3.375 2.229.957 5.414 1.633 9.248 1.98 4.958.447 11 .342 17.461-.424 9.695-1.15 18.13-3.527 23.19-6.25 3.358-1.804 5.237-3.759 5.02-5.609"/><path fill="#aefbff" d="m55.945 6.746c-1.482 1.639-3.41 2.809-5.34 3.875-1.963 1.027-4.03 1.861-6.139 2.527-4.225 1.354-8.619 2.09-13.02 2.477-4.398.371-8.822.418-13.223.078-4.391-.342-8.789-1.035-12.956-2.449 2.156.41 4.321.697 6.497.871 2.171.199 4.345.316 6.521.377 4.35.115 8.703-.012 13.04-.357 4.326-.352 8.628-.992 12.822-2.086 2.092-.559 4.158-1.223 6.154-2.072 2-.841 3.951-1.848 5.644-3.241"/><g fill="#664e27"><path d="m27.7 26.789c-4.756-5.142-13.826-2.711-15.375 4.119-.091.416.546.807 1.268 1.061 3.148-4.229 8.697-5.717 13.537-3.628.497-.579.855-1.237.57-1.552"/><path d="m51.674 30.908c-1.549-6.83-10.617-9.261-15.373-4.121-.287.316.07.975.568 1.553 4.84-2.088 10.389-.602 13.535 3.627.723-.253 1.36-.643 1.27-1.059"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M61,33c0,16-13,29-29,29C16,62,3,49,3,33C3,17,16,4,32,4C48,4,61,17,61,33z" fill="#ffdd67"/><g fill="#664e27"><path d="m28.6 34.4c-1.8-4.9-4.5-7.4-7.2-7.4-2.7 0-5.4 2.5-7.2 7.4-.2.5.7 1.4 1.2.9 1.7-1.8 3.8-2.6 6-2.6 2.2 0 4.3.7 6 2.6.5.5 1.4-.4 1.2-.9"/><path d="m49.8 34.4c-1.8-4.9-4.5-7.4-7.2-7.4-2.7 0-5.4 2.5-7.2 7.4-.2.5.7 1.4 1.2.9 1.7-1.8 3.8-2.6 6-2.6 2.2 0 4.3.7 6 2.6.4.5 1.4-.4 1.2-.9"/><path d="m44.2 42.2c-7.8 5.5-16.5 5.4-24.3 0-.9-.7-1.8.5-1.1 1.5 2.4 3.9 7.2 7.4 13.3 7.4 6.1 0 10.9-3.5 13.3-7.4.5-1-.3-2.1-1.2-1.5"/></g><path d="m54.3 7.2c-.5-4.2-8.4-6.4-25.8-4.6-16.3 1.8-24.6 5.7-24.2 9.8.7 6.4 12.2 8.6 26 7.1 13.8-1.4 24.6-5.9 24-12.3m-24.7 5.4c-9.2 1-16.9.4-17-1.2-.1-.6.9-1.2 2.5-1.9 4.7-3.4 10.6-5.5 16.9-5.5 4.5 0 8.8 1 12.6 2.9.9.3 1.4.6 1.4 1 .2 1.5-7.2 3.7-16.4 4.7" fill="#4aa9ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f608.svg b/build/js/jsxc/lib/emojione/assets/svg/1f608.svg
index 27bd712..bdf4236 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f608.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f608.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f46767" cx="32" cy="32" r="30"/><g fill="#ffdd67"><path d="m16.654 10.284c-5.59-2.668-9.213-8.144-9.213-8.144-1.545 14.431 4.344 17.934 7.678 17.999 4.465.092 7.986-6.776 1.535-9.855"/><path d="m47.35 10.284c5.588-2.668 9.213-8.144 9.213-8.144 1.545 14.431-4.346 17.934-7.678 17.999-4.465.092-7.988-6.776-1.535-9.855"/></g><path fill="#493b30" d="m17.316 43.33c2.475 1.455 4.865 2.338 7.314 2.924 2.439.586 4.9.836 7.369.84 2.471-.01 4.93-.26 7.367-.846 2.449-.586 4.838-1.467 7.316-2.918-1.061 2.717-3.416 4.854-6.04 6.221-2.654 1.379-5.662 2.043-8.641 2.041-2.979-.004-5.984-.668-8.637-2.047-2.625-1.367-4.98-3.502-6.05-6.215"/><path fill="#fff" d="m52.29 26.758c2.01 4.313.146 9.439-4.168 11.449-4.313 2.01-9.439.145-11.449-4.166-1.514-3.248 14.1-10.531 15.617-7.283"/><g fill="#493b30"><path d="m49.762 27.938c1.359 2.916.098 6.381-2.816 7.742-2.916 1.359-6.381.098-7.742-2.818-.864-1.852 9.694-6.776 10.558-4.924"/><path d="m53.895 27.09c-1.87.181-3.539.459-5.153.89-1.609.423-3.145.982-4.622 1.668-1.484.689-2.891 1.489-4.25 2.448-1.365.957-2.645 2.057-3.975 3.387.203-1.885 1.128-3.655 2.369-5.116 1.249-1.46 2.852-2.64 4.596-3.44 1.75-.81 3.67-1.262 5.591-1.279 1.912-.009 3.858.407 5.444 1.442"/></g><path fill="#fff" d="m11.709 26.758c-2.01 4.313-.146 9.439 4.168 11.449 4.311 2.01 9.438.145 11.447-4.166 1.516-3.248-14.1-10.531-15.615-7.283"/><g fill="#493b30"><path d="m14.238 27.938c-1.361 2.916-.1 6.381 2.814 7.742 2.918 1.359 6.383.098 7.744-2.818.862-1.852-9.694-6.776-10.558-4.924"/><path d="m10.11 27.09c1.586-1.035 3.531-1.451 5.444-1.443 1.921.017 3.841.469 5.591 1.279 1.744.802 3.346 1.981 4.595 3.441 1.241 1.46 2.167 3.23 2.37 5.115-1.33-1.33-2.61-2.43-3.975-3.386-1.36-.958-2.767-1.759-4.25-2.449-1.478-.685-3.01-1.244-4.622-1.667-1.613-.431-3.282-.709-5.153-.89"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f46767"/><g fill="#ffdd67"><path d="m16.7 10.3c-5.6-2.7-9.2-8.1-9.2-8.1-1.5 14.4 4.3 17.9 7.7 18 4.4 0 7.9-6.8 1.5-9.9"/><path d="m47.3 10.3c5.6-2.7 9.2-8.1 9.2-8.1 1.5 14.4-4.3 17.9-7.7 18-4.4 0-7.9-6.8-1.5-9.9"/></g><path d="m17.3 43.3c2.5 1.5 4.9 2.3 7.3 2.9 2.4.6 4.9.8 7.4.8 2.5 0 4.9-.3 7.4-.8 2.4-.6 4.8-1.5 7.3-2.9-1.1 2.7-3.4 4.9-6 6.2-2.7 1.4-5.7 2-8.6 2-3 0-6-.7-8.6-2-2.8-1.3-5.1-3.5-6.2-6.2" fill="#493b30"/><path d="m52.3 26.8c2 4.3.1 9.4-4.2 11.4-4.3 2-9.4.1-11.4-4.2-1.5-3.2 14.1-10.5 15.6-7.2" fill="#fff"/><g fill="#493b30"><path d="m49.8 27.9c1.4 2.9.1 6.4-2.8 7.7-2.9 1.4-6.4.1-7.7-2.8-1-1.8 9.6-6.7 10.5-4.9"/><path d="m53.9 27.1c-1.9.2-3.5.5-5.2.9-1.6.4-3.1 1-4.6 1.7-1.5.7-2.9 1.5-4.2 2.4-1.4 1-2.6 2.1-4 3.4.2-1.9 1.1-3.7 2.4-5.1 1.2-1.5 2.9-2.6 4.6-3.4 1.8-.8 3.7-1.3 5.6-1.3 1.9-.1 3.8.4 5.4 1.4"/></g><path d="m11.7 26.8c-2 4.3-.1 9.4 4.2 11.4 4.3 2 9.4.1 11.4-4.2 1.5-3.2-14.1-10.5-15.6-7.2" fill="#fff"/><g fill="#493b30"><path d="m14.2 27.9c-1.4 2.9-.1 6.4 2.8 7.7 2.9 1.4 6.4.1 7.7-2.8 1-1.8-9.6-6.7-10.5-4.9"/><path d="m10.1 27.1c1.6-1 3.5-1.5 5.4-1.4 1.9 0 3.8.5 5.6 1.3 1.7.8 3.3 2 4.6 3.4 1.2 1.5 2.2 3.2 2.4 5.1-1.3-1.3-2.6-2.4-4-3.4-1.4-1-2.8-1.8-4.2-2.4-1.5-.7-3-1.2-4.6-1.7-1.7-.5-3.3-.7-5.2-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f609.svg b/build/js/jsxc/lib/emojione/assets/svg/1f609.svg
index f596fb8..2e4509e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f609.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f609.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m22.324 45.618c2.23.678 4.285.919 6.328.914 2.035-.003 4.02-.274 5.975-.741 1.945-.479 3.838-1.144 5.652-2.069 1.818-.932 3.537-2.08 5.215-3.697-.32 2.346-1.771 4.479-3.584 6.06-1.83 1.594-4.076 2.69-6.426 3.257-2.352.563-4.85.613-7.205.03-2.332-.58-4.595-1.814-5.955-3.753"/><path d="m35 32.8c0 0 7.914 1.603 14 4.2 0 0-4.67-9.189-14-4.2"/><path d="m35 32.8c0 0 7.914-4.328 14-6.925 0 0-3.457 9.08-14 6.925"/><circle cx="22.252" cy="31.592" r="4.5"/></g><g fill="#917524"><path d="m51.2 24.915c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.469-.969 2.061-1.414 1.674"/><path d="m24.488 14.916c-4.168-.748-8.456.4-11.692 3.133-.443.389-1.955-1.205-1.412-1.674 3.732-3.152 8.68-4.479 13.493-3.615.703.135.191 2.269-.389 2.156"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><circle cx="22.3" cy="31.6" r="5" fill="#664e27"/><g fill="#917524"><path d="m51.2 27.5c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m24.5 18.8c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g><g fill="#664e27"><path d="m50.2 34.3c-1.7-3.5-4.4-5.3-7-5.3s-5.2 1.8-7 5.3c-.2.4.7 1 1.2.6 1.7-1.3 3.7-1.8 5.8-1.8s4.1.5 5.8 1.8c.4.3 1.3-.3 1.2-.6"/><path d="m44.1 42.2c-6.9 3.6-16.4 2.9-19.1 2.9-.7 0-1.2.3-1 .9 2 7 17 7 21.1-2.7.5-1.1-.3-1.4-1-1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f60a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f60a.svg
index 3b884ac..797c063 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f60a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f60a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#ff717f"><circle opacity=".8" cx="50.811" cy="36" r="8"/><circle opacity=".8" cx="13.189" cy="36" r="8"/></g><g fill="#664e27"><path d="m17.316 40.949c2.475 1.457 4.865 2.34 7.314 2.926 2.439.584 4.9.834 7.371.84 2.469-.012 4.928-.26 7.367-.846 2.447-.588 4.838-1.467 7.314-2.92-1.061 2.717-3.416 4.854-6.04 6.221-2.652 1.381-5.662 2.043-8.641 2.043-2.977-.006-5.984-.668-8.637-2.049-2.623-1.367-4.978-3.502-6.04-6.215"/><path d="m27.59 26.648c-3.264-6.197-12.653-6.197-15.917 0-.195.378.32.921.95 1.353 4.135-3.271 9.88-3.271 14.01-.001.631-.431 1.145-.974.952-1.352"/><path d="m52.33 26.648c-3.264-6.197-12.653-6.197-15.917-.001-.195.379.32.922.951 1.353 4.135-3.271 9.879-3.271 14.01-.001.631-.431 1.146-.973.952-1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#ff717f"><circle cx="50.8" cy="36" r="8" opacity=".8"/><circle cx="13.2" cy="36" r="8" opacity=".8"/></g><g fill="#664e27"><path d="m44.6 40.3c-8.1 5.7-17.1 5.6-25.2 0-1-.7-1.8.5-1.2 1.6 2.5 4 7.4 7.7 13.8 7.7s11.3-3.6 13.8-7.7c.6-1.1-.2-2.3-1.2-1.6"/><path d="m28.5 26.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7 2.2 0 4.4.8 6.2 2.7.6.5 1.5-.4 1.3-.9"/><path d="m50.4 26.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.5.5 1.5-.4 1.3-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f60b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f60b.svg
index 713c0fc..932ca7d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f60b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f60b.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="M62,31.996C62,48.566,48.566,62,32,62C15.432,62,2,48.566,2,31.996C2,15.434,15.432,2,32,2
- C48.566,2,62,15.428,62,31.996z"/><path fill="#ff717f" d="m44 51.914c-5.03-5.03-2.777-2.779 2.525-8.08 5.307-5.301 3.055-7.553 8.08-2.527 5.02 5.03 5.174 9.926 2.244 12.855-2.929 2.928-7.826 2.779-12.851-2.246"/><path fill="#e2596c" d="m47.59 42.771l6.85 8.973-8.97-6.851z"/><g fill="#664e27"><path d="m52.891 34.498c-.686 4.539-3.387 8.826-7.248 11.756-1.934 1.463-4.166 2.553-6.498 3.242-2.344.701-4.73.99-7.172 1-4.705.029-9.746-1.283-13.621-4.24-3.863-2.928-6.564-7.221-7.242-11.76 2.256 3.938 5.359 7.107 8.975 9.135 3.627 2.051 7.705 2.865 11.941 2.867 4.131.004 8.287-.813 11.891-2.863 3.616-2.026 6.72-5.199 8.974-9.139"/><path d="m27.59 27.646c-3.264-6.197-12.653-6.197-15.917 0-.195.378.32.921.95 1.352 4.135-3.27 9.88-3.271 14.01 0 .631-.432 1.145-.974.952-1.352"/><path d="m52.33 27.646c-3.264-6.197-12.653-6.197-15.917-.001-.195.379.32.922.951 1.353 4.135-3.271 9.879-3.271 14.01-.001.631-.431 1.146-.973.952-1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-13.4,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67"/><path d="m42 47.9c-5-5-2.8-2.8 2.5-8.1 5.3-5.3 3.1-7.6 8.1-2.5 5 5 5.2 9.9 2.2 12.9-2.9 2.9-7.8 2.7-12.8-2.3" fill="#ff717f"/><path fill="#e2596c" d="m45.6 38.7l6.8 9-8.9-6.8z"/><g fill="#664e27"><path d="m28.5 24.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.6.5 1.5-.4 1.3-.9"/><path d="m50.4 24.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.5.5 1.5-.4 1.3-.9"/><path d="m48.1 33c-4.3 6.1-9.5 7.6-16.1 7.6s-11.8-1.5-16.1-7.6c-.6-.8-2.2-.3-1.8.9 2.3 8 10 12.7 18 12.7s15.7-4.7 18-12.7c.2-1.2-1.4-1.7-2-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f60c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f60c.svg
index 1965287..4af17f1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f60c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f60c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m17.316 40.949c2.475 1.455 4.865 2.338 7.314 2.924 2.438.586 4.898.836 7.371.84 2.469-.01 4.928-.26 7.367-.844 2.447-.588 4.838-1.469 7.314-2.92-1.061 2.717-3.416 4.854-6.04 6.221-2.652 1.379-5.662 2.043-8.641 2.041-2.979-.004-5.986-.668-8.639-2.047-2.621-1.369-4.976-3.502-6.04-6.215"/><g fill="#917524"><path d="m53.2 20.727c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.468-.969 2.06-1.414 1.674"/><path d="m22.488 17.443c-4.168-.748-8.455.4-11.693 3.133-.443.389-1.953-1.205-1.412-1.674 3.734-3.152 8.682-4.479 13.492-3.615.703.135.191 2.27-.387 2.156"/></g><g fill="#664e27"><path d="m36.41 27.351c3.264 6.197 12.653 6.197 15.917 0 .195-.378-.319-.921-.95-1.352-4.135 3.27-9.88 3.271-14.02 0-.631.432-1.145.974-.952 1.352"/><path d="m11.673 27.351c3.264 6.197 12.653 6.197 15.917.001.195-.379-.32-.922-.951-1.353-4.135 3.271-9.879 3.271-14.01.001-.631.431-1.146.973-.952 1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#917524"><path d="m53.2 20.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 17.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.4-.4 2.2"/></g><g fill="#664e27"><path d="m44.6 40.3c-8.1 5.7-17.1 5.6-25.2 0-1-.7-1.8.5-1.2 1.6 2.5 4 7.4 7.7 13.8 7.7s11.3-3.6 13.8-7.7c.6-1.1-.2-2.3-1.2-1.6"/><path d="m35.9 27.2c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.6.4-1.2.6-1 1"/><path d="m11.2 27.2c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.7.4-1.2.6-1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f60d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f60d.svg
index e05ebcc..4237d7e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f60d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f60d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="31.999" r="30"/><path fill="#664e27" d="m48 37.499c0 6.461-5.314 14-15.998 14-10.689 0-16-7.539-16-14 0 0 5.311 0 16 0 10.684 0 15.998 0 15.998 0"/><path fill="#fff" d="m16.92 37.499h30.16v5.6h-30.16z"/><path fill="#664e27" d="m32 52.5c-11.04 0-17-7.729-17-15v-1h33.998v1c0 7.272-5.957 15-16.998 15m-14.955-14c.523 5.99 5.727 12 14.955 12 9.227 0 14.432-6.01 14.955-12h-29.91"/><g fill="#f46767"><path d="m61.848 13.22c-.463-2.655-2.031-4.89-4.463-5.553-2.654-.728-5.082.315-7.438 2.703-1.32-3.63-3.338-6.326-6.52-7.708-3.259-1.424-6.427-.466-8.425 2.061-2.076 2.628-2.902 6.677-.68 11.974 2.082 4.959 11.412 15.01 11.682 15.303.363-.226 10.754-6.72 13.299-9.909 2.49-3.12 3.01-6.227 2.545-8.871"/><path d="m29 4.723c-1.996-2.526-5.166-3.484-8.426-2.062-3.184 1.382-5.201 4.078-6.523 7.708-2.355-2.387-4.783-3.43-7.438-2.703-2.43.663-4 2.898-4.463 5.553-.459 2.644.057 5.751 2.545 8.872 2.547 3.189 12.94 9.683 13.303 9.909.268-.291 9.6-10.344 11.682-15.303 2.222-5.297 1.396-9.346-.68-11.974"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-13.4,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67"/><g fill="#f46767"><path d="m61.8 13.2c-.5-2.7-2-4.9-4.5-5.6-2.7-.7-5.1.3-7.4 2.7-1.3-3.6-3.3-6.3-6.5-7.7-3.2-1.4-6.4-.4-8.4 2.1-2.1 2.6-2.9 6.7-.7 12 2.1 5 11.4 15 11.7 15.3.4-.2 10.8-6.7 13.3-9.9 2.5-3.1 3-6.2 2.5-8.9"/><path d="m29 4.7c-2-2.5-5.2-3.5-8.4-2.1-3.2 1.4-5.2 4.1-6.5 7.7-2.4-2.3-4.8-3.4-7.5-2.6-2.4.7-4 2.9-4.5 5.6-.5 2.6.1 5.8 2.5 8.9 2.6 3.1 13 9.6 13.4 9.8.3-.3 9.6-10.3 11.7-15.3 2.2-5.3 1.4-9.3-.7-12"/></g><path d="m49 38.1c0-.8-.5-1.8-1.8-2.1-3.5-.7-8.6-1.3-15.2-1.3-6.6 0-11.7.7-15.2 1.3-1.4.3-1.8 1.3-1.8 2.1 0 7.3 5.6 14.6 17 14.6 11.4-.1 17-7.4 17-14.6" fill="#664e27"/><path d="m44.7 38.3c-2.2-.4-6.8-1-12.7-1-5.9 0-10.5.6-12.7 1-1.3.2-1.4.7-1.3 1.5.1.4.1 1 .3 1.6.1.6.3.9 1.3.8 1.9-.2 23-.2 24.9 0 1 .1 1.1-.2 1.3-.8.1-.6.2-1.1.3-1.6 0-.8-.1-1.3-1.4-1.5" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f60e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f60e.svg
index 8306b98..945ae68 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f60e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f60e.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#ffdd67" d="M32,2c16.568,0,30,13.432,30,30S48.567,62,32,62
- C15.431,62,2,48.568,2,32S15.431,2,32,2"/><path fill="#262626" d="m36.12 21.983c-2.355 1.177-5.89 1.177-8.247 0-2.517-1.292-5.593-2.119-9.274-2.442-3.595-.314-11.215-.304-15.03 1.039-.437.153-.869.352-1.283.564-.234.119-.281.207-.281.646v.565c0 1.063-.133.649.626 1.094 1.479.865 2.32 3.116 2.771 6.214.641 4.515 2.857 7.343 6.453 8.694 3.338 1.254 7.07 1.21 10.383-.112 1.811-.724 3.402-1.867 4.666-3.724 2.215-3.257 1.551-5.289 2.695-8.09.996-2.441 3.794-2.441 4.792 0 1.143 2.798.479 4.83 2.695 8.09 1.262 1.856 2.854 3 4.665 3.724 3.311 1.322 7.05 1.366 10.384.112 3.596-1.352 5.812-4.18 6.453-8.694.449-3.098 1.291-5.349 2.77-6.214.76-.444.627-.03.627-1.094v-.565c0-.438-.047-.526-.281-.646-.414-.213-.846-.411-1.283-.564-3.813-1.343-11.434-1.354-15.03-1.039-3.683.323-6.759 1.15-9.276 2.442"/></g><path fill="#664e27" d="m21.462 43.09c1.133 1.779 2.712 3.071 4.548 3.956 1.831.886 3.908 1.326 5.991 1.328 2.081-.007 4.156-.445 5.986-1.331 1.834-.886 3.414-2.176 4.549-3.953.246 2.078-.826 4.341-2.82 5.944-1.974 1.626-4.844 2.58-7.716 2.567-2.871.008-5.738-.944-7.713-2.57-1.991-1.602-3.066-3.863-2.825-5.941"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c16.6,0,30,13.4,30,30S48.6,62,32,62C15.4,62,2,48.6,2,32S15.4,2,32,2" fill="#ffdd67"/><path d="m35.8 20.5c-2.2 1.1-5.5 1.1-7.7 0-2.3-1.2-5.2-2-8.7-2.3-3.4-.3-10.5-.3-14 1-.4.1-.8.3-1.2.5-.1.1-.2.2-.2.6v.5c0 1-.1.6.6 1 1.4.8 2.2 2.9 2.6 5.8.6 4.2 2.7 6.9 6 8.1 3.1 1.2 6.6 1.1 9.7-.1 1.7-.7 3.2-1.7 4.4-3.5 2.1-3 1.4-4.9 2.5-7.5.9-2.3 3.5-2.3 4.5 0 1.1 2.6.4 4.5 2.5 7.5 1.2 1.7 2.7 2.8 4.4 3.5 3.1 1.2 6.6 1.3 9.7.1 3.4-1.3 5.4-3.9 6-8.1.4-2.9 1.2-5 2.6-5.8.7-.4.6 0 .6-1v-.5c0-.4 0-.5-.3-.6-.4-.2-.8-.4-1.2-.5-3.6-1.3-10.7-1.3-14-1-3.5.3-6.4 1.1-8.8 2.3" fill="#494949"/><path d="m44.6 42.3c-8.1 5.7-17.1 5.6-25.2 0-1-.7-1.8.5-1.2 1.6 2.5 4 7.4 7.7 13.8 7.7s11.3-3.6 13.8-7.7c.6-1.1-.2-2.3-1.2-1.6" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f60f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f60f.svg
index 94a9c61..68a3db6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f60f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f60f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m23.326 45.617c2.229.678 4.283.92 6.328.914 2.035-.002 4.02-.273 5.975-.74 1.945-.479 3.838-1.145 5.652-2.07 1.816-.932 3.535-2.08 5.213-3.697-.318 2.346-1.771 4.48-3.584 6.06-1.828 1.594-4.076 2.691-6.426 3.258-2.352.563-4.848.613-7.203.029-2.334-.579-4.597-1.813-5.955-3.753"/><g fill="#917524"><path d="m53.2 20.65c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.469-.969 2.061-1.414 1.674"/><path d="m22.487 17.367c-4.168-.748-8.455.4-11.691 3.133-.443.389-1.955-1.205-1.412-1.674 3.732-3.152 8.68-4.479 13.492-3.615.703.135.191 2.269-.389 2.156"/></g><g fill="#664e27"><path d="m52.971 27.1c-2.979-3.457-12.451-2.24-15.26 2.482-.204.352.334.854.99 1.253 1.901-1.332 4.127-2.076 6.391-2.235.01 2.496 1.981 4.519 4.418 4.519 3.525-.001 5.207-3.992 3.461-6.02"/><path d="m25.637 27.1c-2.979-3.456-12.45-2.241-15.26 2.483-.204.351.334.853.991 1.252 1.901-1.331 4.126-2.076 6.391-2.235.009 2.495 1.981 4.519 4.417 4.519 3.525-.001 5.208-3.992 3.461-6.02"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-13.4,30-30,30C15.4,62,2,48.6,2,32S15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67"/><g fill="#664e27"><path d="m53.9 30.8c-3.4-3.9-14-2.5-17.2 2.8-.2.4.4 1 1.1 1.4 2.1-1.5 4.6-2.3 7.2-2.5 0 2.8 2.2 5.1 5 5.1 4 0 5.9-4.5 3.9-6.8"/><path d="m26.6 30.8c-3.3-3.9-14-2.5-17.2 2.8-.2.4.4 1 1.1 1.4 2.1-1.5 4.6-2.3 7.2-2.5 0 2.8 2.2 5.1 5 5.1 3.9 0 5.8-4.5 3.9-6.8"/><path d="m25.8 51.8c5.8 1.4 15.1 0 19.8-3.5 1.2-.9-1.2-4-2.3-3.1-3.2 2.3-11.2 4.1-16.6 2.9-1.4-.4-2.4 3.3-.9 3.7"/></g><g fill="#917524"><path d="m53.2 24.6c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 21.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.1.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f610.svg b/build/js/jsxc/lib/emojione/assets/svg/1f610.svg
index 5884158..23a11f7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f610.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f610.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m38.34 45.999h-12.69c-.873 0-.873-3 0-3h12.689c.876 0 .876 3 .001 3"/><circle cx="20.5" cy="27.592" r="4.5"/><circle cx="43.5" cy="27.592" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="27.6" r="5"/><circle cx="43.5" cy="27.6" r="5"/><path d="m38.9 48h-13.8c-1.5 0-1.5-4 0-4h13.7c1.6 0 1.6 4 .1 4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f611.svg b/build/js/jsxc/lib/emojione/assets/svg/1f611.svg
index f0d6b9c..7938d2c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f611.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f611.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m47.951 27.19c0 2.185-1.85 3.958-4.133 3.958-2.285 0-4.135-1.772-4.137-3.958.001-1.388 8.27-1.388 8.27 0"/><path d="m49.09 24.84c-1.745-.601-3.514-.892-5.273-.899-1.75-.011-3.53.271-5.28.869-1.735.609-3.494 1.529-4.885 2.926 1.938-.222 3.633-.416 5.294-.523 1.66-.115 3.252-.159 4.862-.156 1.61.003 3.215.061 4.873.178 1.669.107 3.366.296 5.305.502-1.405-1.379-3.165-2.286-4.896-2.897"/><path d="m24.318 27.19c0 2.185-1.85 3.958-4.133 3.958-2.285 0-4.135-1.772-4.137-3.958.001-1.388 8.27-1.388 8.27 0"/><path d="m25.455 24.84c-1.747-.601-3.514-.892-5.273-.899-1.748-.012-3.529.271-5.28.869-1.734.609-3.494 1.529-4.885 2.926 1.94-.223 3.633-.416 5.294-.523 1.66-.115 3.251-.159 4.864-.156 1.607.003 3.214.06 4.873.178 1.667.107 3.366.296 5.303.502-1.402-1.38-3.163-2.286-4.896-2.897"/><path d="m40.35 45.46h-16.69c-.873 0-.873-3 0-3h16.689c.874 0 .874 3 .001 3"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m40 48h-16c-1.5 0-1.5-4 0-4h16c1.5 0 1.5 4 0 4"/><path d="m27.1 32h-16c-1.5 0-1.5-4 0-4h16c1.5 0 1.5 4 0 4"/><path d="m52.9 32h-16c-1.5 0-1.5-4 0-4h16c1.5 0 1.5 4 0 4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f612.svg b/build/js/jsxc/lib/emojione/assets/svg/1f612.svg
index 214ef7f..e557627 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f612.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f612.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m61.999 32c0 16.572-13.426 30-29.998 30-16.573 0-30-13.428-30-30s13.428-30 30-30c16.572 0 29.998 13.428 29.998 30"/><path fill="#664e27" d="m42.683 48c-1.801-1.061-3.541-1.701-5.322-2.127-1.775-.428-3.566-.609-5.361-.613-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.068-5.322 2.125.771-1.979 2.484-3.533 4.396-4.527 1.932-1 4.119-1.486 6.287-1.484 2.166.004 4.353.486 6.283 1.488 1.909.996 3.624 2.548 4.4 4.523"/><g fill="#917524"><path d="m53.2 18.534c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.469-.969 2.061-1.414 1.674"/><path d="m22.488 15.251c-4.168-.748-8.455.4-11.691 3.133-.443.389-1.955-1.205-1.412-1.674 3.732-3.152 8.68-4.479 13.492-3.615.703.134.191 2.269-.389 2.156"/></g><g fill="#664e27"><path d="m52.97 27.1c-2.979-3.457-12.451-2.24-15.26 2.482-.203.352.335.854.991 1.253 1.901-1.332 4.126-2.076 6.391-2.235.009 2.496 1.981 4.519 4.417 4.519 3.525-.001 5.208-3.992 3.461-6.02"/><path d="m25.636 27.1c-2.978-3.456-12.45-2.241-15.259 2.483-.204.351.334.853.991 1.252 1.901-1.331 4.126-2.076 6.391-2.235.009 2.495 1.981 4.519 4.417 4.519 3.526-.001 5.208-3.992 3.46-6.02"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-13.4,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67"/><g fill="#664e27"><path d="m53.9 29.2c-3.4-3.9-14-2.5-17.2 2.8-.2.4.4 1 1.1 1.4 2.1-1.5 4.6-2.3 7.2-2.5 0 2.8 2.2 5.1 5 5.1 4 0 5.8-4.5 3.9-6.8"/><path d="m26.5 29.2c-3.3-3.9-14-2.5-17.2 2.8-.2.4.4 1 1.1 1.4 2.1-1.5 4.6-2.3 7.2-2.5 0 2.8 2.2 5.1 5 5.1 4 0 5.9-4.5 3.9-6.8"/><path d="m40.3 44.7c-5.8-1.5-12-.4-16.9 3-1.2.9 1.1 4 2.3 3.2 3.2-2.3 8.4-3.8 13.7-2.4 1.3.3 2.4-3.4.9-3.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f613.svg b/build/js/jsxc/lib/emojione/assets/svg/1f613.svg
index 994b9b6..6077267 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f613.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f613.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m62 32c0 16.572-13.434 30-30 30-16.568 0-30-13.428-30-30 0-16.573 13.432-30 30-30 16.566 0 30 13.427 30 30"/><g fill="#664e27"><circle cx="43.5" cy="35" r="4.5"/><circle cx="20.5" cy="35" r="4.5"/></g><g fill="#917524"><path d="m25.578 19.906c-3.236 2.732-7.523 3.881-11.693 3.133-.578-.113-1.088 2.02-.385 2.156 4.809.863 9.756-.461 13.492-3.615.541-.469-.971-2.06-1.414-1.674"/><path d="m50.11 22.887c-4.168.748-8.455-.4-11.691-3.133-.443-.389-1.955 1.205-1.412 1.674 3.732 3.152 8.68 4.479 13.492 3.615.703-.135.191-2.27-.389-2.156"/></g><path fill="#664e27" d="m38.34 50h-12.69c-.873 0-.873-3 0-3h12.689c.874 0 .874 3 .001 3"/><path fill="#65b1ef" d="M62,18.534c0.002,9.378-12.744,9.38-12.744,0c0-6.85,6.373-13.533,6.373-13.533S62,11.687,62,18.534z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2S2,15.4,2,32z" fill="#ffdd67"/><path d="M48.5,16.3c0,9.9,13.5,9.9,13.5,0C62,9.1,55.3,2,55.3,2S48.5,9.1,48.5,16.3z" fill="#65b1ef"/><g fill="#664e27"><circle cx="43.5" cy="36" r="5"/><circle cx="20.5" cy="36" r="5"/></g><g fill="#917524"><path d="m25.6 21.9c-3.2 2.7-7.5 3.9-11.7 3.1-.6-.1-1.1 2-.4 2.2 4.8.9 9.8-.5 13.5-3.6.5-.5-1-2.1-1.4-1.7"/><path d="m50.1 24.9c-4.2.7-8.5-.4-11.7-3.1-.4-.4-2 1.2-1.4 1.7 3.7 3.2 8.7 4.5 13.5 3.6.7-.2.2-2.3-.4-2.2"/></g><path d="m40 52h-16c-1.5 0-1.5-4 0-4h16c1.5 0 1.5 4 0 4" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f614.svg b/build/js/jsxc/lib/emojione/assets/svg/1f614.svg
index 6ff03c5..28de02f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f614.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f614.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#917524"><path d="m53.2 26.2c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.469-.969 2.061-1.414 1.674"/><path d="m22.488 22.916c-4.168-.748-8.455.4-11.691 3.133-.443.389-1.955-1.205-1.412-1.674 3.732-3.152 8.68-4.479 13.492-3.615.703.135.191 2.269-.389 2.156"/></g><g fill="#664e27"><path d="m38.35 50h-12.69c-.873 0-.873-3 0-3h12.689c.874 0 .874 3 .001 3"/><path d="m36.41 34.05c3.264 6.197 12.653 6.197 15.917 0 .195-.378-.319-.921-.95-1.352-4.135 3.27-9.88 3.271-14.02 0-.631.432-1.145.974-.952 1.352"/><path d="m11.673 34.05c3.264 6.197 12.653 6.197 15.917.001.195-.379-.32-.922-.951-1.353-4.135 3.271-9.879 3.271-14.01.001-.631.431-1.146.973-.952 1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#917524"><path d="m53.2 25.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 22.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.4-.4 2.2"/></g><g fill="#664e27"><path d="m35.9 32.2c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.6.4-1.2.6-1 1"/><path d="m11.2 32.2c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.7.4-1.2.6-1 1"/><path d="m38 50h-12c-1.3 0-1.3-4 0-4h12c1.3 0 1.3 4 0 4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f615.svg b/build/js/jsxc/lib/emojione/assets/svg/1f615.svg
index f3435e1..534330c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f615.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f615.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m2.461 37.2c2.878 16.32 18.439 27.21 34.754 24.334 16.316-2.877 27.21-18.432 24.334-34.753-2.877-16.32-18.436-27.21-34.753-24.335-16.316 2.877-27.21 18.434-24.335 34.754"/><circle fill="#fff" cx="42.39" cy="24.673" r="7"/><circle fill="#664e27" cx="42.39" cy="24.672" r="3.5"/><circle fill="#fff" cx="19.741" cy="28.666" r="9"/><g fill="#664e27"><circle cx="19.741" cy="28.666" r="4.5"/><path d="m23.435 50.922c-.662 0-1.269-.441-1.448-1.112-.214-.8.261-1.622 1.062-1.837.211-.057.35-.407.601-1.225.335-1.095.843-2.749 2.692-3.244 1.849-.494 3.115.684 3.952 1.464.626.583.917.814 1.133.761.208-.056.353-.423.598-1.225.335-1.095.841-2.748 2.69-3.244 1.85-.493 3.115.685 3.952 1.465.611.57.915.82 1.128.762.208-.056.353-.422.598-1.224.335-1.095.841-2.749 2.691-3.245 1.847-.497 3.111.684 3.949 1.465.613.571.92.812 1.129.762.803-.217 1.623.262 1.837 1.063s-.262 1.622-1.062 1.836c-1.851.494-3.113-.686-3.951-1.467-.611-.571-.925-.813-1.126-.76-.209.056-.354.422-.599 1.224-.335 1.095-.841 2.749-2.691 3.245-1.842.496-3.111-.686-3.949-1.465-.613-.572-.924-.817-1.131-.762-.207.055-.352.422-.598 1.223-.334 1.095-.84 2.748-2.689 3.246-1.847.496-3.115-.684-3.953-1.464-.626-.583-.922-.821-1.133-.761-.211.057-.35.406-.6 1.225-.336 1.094-.842 2.749-2.693 3.244-.131.034-.261.05-.389.05"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.5 37.2c2.9 16.3 18.4 27.2 34.8 24.3 16.3-2.9 27.2-18.4 24.3-34.8-2.9-16.2-18.5-27.1-34.8-24.2-16.3 2.8-27.2 18.4-24.3 34.7" fill="#ffdd67"/><g fill="#664e27"><circle cx="42.4" cy="24.7" r="5"/><circle cx="19.7" cy="28.7" r="5"/><path d="m43.3 41.8c-5.8-1.5-12-.4-16.9 3-1.2.9 1.1 4 2.3 3.2 3.2-2.3 8.4-3.8 13.7-2.4 1.3.3 2.4-3.3.9-3.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f616.svg b/build/js/jsxc/lib/emojione/assets/svg/1f616.svg
index c660ee7..5f03826 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f616.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f616.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m48.24 31.14c-1.447-.465-3-.658-4.559-.529-.326.025-.648.076-.971.133.109-.061.217-.129.33-.186 1.188-.612 2.422-1.149 3.736-1.633 1.314-.5 2.699-.926 4.201-1.506-1.467-.668-3.064-.893-4.664-.807-1.6.092-3.203.527-4.654 1.281-1.451.752-2.742 1.818-3.727 3.104-.969 1.285-1.703 2.785-1.799 4.412 1.467-.496 2.74-.93 4.02-1.219 1.268-.299 2.51-.48 3.783-.592 1.271-.107 2.57-.141 3.922-.141 1.355-.004 2.74.025 4.279-.004-1.078-1.126-2.453-1.835-3.893-2.313"/><path d="m22.339 27.892c-1.449-.754-3.055-1.189-4.652-1.281-1.6-.086-3.197.139-4.664.807 1.502.58 2.887 1.01 4.201 1.506 1.314.484 2.547 1.021 3.736 1.633.111.057.219.125.33.186-.322-.057-.646-.107-.971-.133-1.557-.129-3.111.064-4.561.529-1.438.479-2.814 1.188-3.893 2.314 1.537.029 2.922 0 4.279.004 1.35 0 2.648.033 3.922.141 1.271.111 2.516.293 3.781.592 1.275.289 2.549.723 4.02 1.219-.096-1.627-.83-3.127-1.799-4.412-.984-1.287-2.275-2.353-3.727-3.105"/></g><g fill="#917524"><path d="m22.577 17.191c-3.236 2.732-7.523 3.881-11.693 3.133-.578-.113-1.088 2.02-.385 2.156 4.809.863 9.756-.461 13.492-3.615.541-.469-.971-2.06-1.414-1.674"/><path d="m53.11 20.17c-4.168.748-8.455-.4-11.691-3.133-.443-.389-1.955 1.205-1.412 1.674 3.732 3.152 8.68 4.479 13.492 3.615.703-.135.191-2.269-.389-2.156"/></g><path fill="#664e27" d="m49.635 47.09c-.469-.514-.923-1.045-1.404-1.543-.947-1.015-1.904-2.02-2.887-2.991l-.549-.544-.799.544c-1.146.78-2.255 1.602-3.367 2.421-.746.539-1.473 1.1-2.204 1.655-1.741-1.563-3.503-3.104-5.289-4.613l-1.125-.952-1.126.951c-1.787 1.51-3.552 3.046-5.294 4.609-.731-.557-1.458-1.117-2.205-1.655-1.115-.817-2.224-1.642-3.371-2.42l-.803-.546-.55.546c-.983.974-1.942 1.976-2.89 2.992-.947 1.018-1.878 2.054-2.772 3.134 1.219-.693 2.4-1.431 3.566-2.187.893-.58 1.769-1.181 2.642-1.783.796.798 1.608 1.577 2.42 2.355.991.965 2.01 1.899 3.02 2.833l.937.859 1.109-.86c1.797-1.393 3.561-2.825 5.311-4.272 1.75 1.446 3.512 2.875 5.307 4.269l1.105.859.936-.858c1.017-.934 2.03-1.87 3.02-2.834.813-.777 1.623-1.559 2.42-2.356.873.604 1.749 1.204 2.641 1.786.573.389 1.175.744 1.761 1.117.59.37 1.191.725 1.8 1.072-.447-.539-.899-1.071-1.365-1.588"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#917524"><path d="m22.6 18.2c-3.2 2.7-7.5 3.9-11.7 3.1-.6-.1-1.1 2-.4 2.2 4.8.9 9.8-.5 13.5-3.6.5-.5-1-2.1-1.4-1.7"/><path d="m53.1 21.2c-4.2.7-8.5-.4-11.7-3.1-.4-.4-2 1.2-1.4 1.7 3.7 3.2 8.7 4.5 13.5 3.6.7-.2.2-2.3-.4-2.2"/></g><g fill="#664e27"><path d="m46.6 42.4c-.5-.6-1.5-.8-2.2-.3l-4.2 2.8c-.7.5-1.8.4-2.4-.1l-4.6-3.9c-.6-.5-1.6-.5-2.3 0l-4.6 3.9c-.6.5-1.7.6-2.4.1l-4.3-2.8c-.7-.5-1.7-.3-2.2.3l-4.4 5.2c-.5.6-.4.8.3.4l3.8-2.1c.7-.4 1.8-.3 2.4.3l4.6 4.5c.6.6 1.6.6 2.3.1l4.5-3.4c.7-.5 1.7-.5 2.4 0l4.4 3.4c.7.5 1.7.4 2.3-.1l4.6-4.5c.6-.6 1.7-.7 2.4-.3l3.8 2.1c.7.4.9.2.3-.4l-4.5-5.2"/><path d="m51.7 28.1c.6.3.3 1-.2 1.1-2.7.4-5.5.9-8.3 2.4 4 .7 7.2 2.7 9 4.8.4.5-.1 1.1-.5 1-4.8-1.7-9.7-2.7-15.8-2-.5 0-.9-.2-.8-.7 1.6-7.3 10.9-10 16.6-6.6"/><path d="m12.3 28.1c-.6.3-.3 1 .2 1.1 2.7.4 5.5.9 8.3 2.4-4 .7-7.2 2.7-9 4.8-.4.5.1 1.1.5 1 4.8-1.7 9.7-2.7 15.8-2 .5 0 .9-.2.8-.7-1.6-7.3-10.9-10-16.6-6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f617.svg b/build/js/jsxc/lib/emojione/assets/svg/1f617.svg
index 3c7642c..be87801 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f617.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f617.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="29.999"/><g fill="#664e27"><circle cx="20.5" cy="25.592" r="4.5"/><circle cx="43.5" cy="25.592" r="4.5"/></g><g fill="#917524"><path d="m50.2 16.661c-3.236-2.732-7.523-3.881-11.693-3.133-.578.113-1.088-2.02-.385-2.156 4.809-.863 9.756.461 13.492 3.615.541.469-.971 2.061-1.414 1.674"/><path d="m25.488 13.378c-4.168-.748-8.452.4-11.69 3.133-.443.389-1.953-1.205-1.412-1.674 3.734-3.152 8.679-4.479 13.489-3.615.703.134.191 2.269-.387 2.156"/></g><g fill="#664e27"><path d="m41.803 39.4c-1.192-1.047-5.803 1.886-5.803 5.101s4.611 6.148 5.803 5.101c.968-.851-1.803-1.887-1.803-5.101s2.771-4.25 1.803-5.101"/><path d="m41.832 40.25c-.029-.247-.11-.462-.23-.571-.123-.104-.247-.139-.419-.163-.325-.064-.744-.056-1.161-.071-.844-.022-1.75-.068-2.66-.249-.908-.177-1.834-.487-2.67-1-.824-.517-1.576-1.252-1.895-2.192.918.343 1.703.57 2.512.747.802.182 1.606.32 2.441.487.833.169 1.693.345 2.592.676.447.173.912.384 1.354.774.206.203.419.502.43.826.02.319-.132.566-.294.739"/><path d="m41.832 48.75c.162.173.313.42.294.739-.011.324-.224.623-.43.826-.442.391-.907.602-1.354.774-.898.331-1.759.507-2.592.676-.835.167-1.64.306-2.441.487-.809.178-1.594.405-2.512.748.318-.94 1.07-1.676 1.895-2.192.836-.516 1.762-.826 2.67-1 .91-.181 1.816-.227 2.66-.249.417-.016.836-.007 1.161-.071.172-.024.296-.06.419-.163.12-.11.201-.325.23-.572"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m41.5 50.4c1.6-1.6-1.8-3-1.8-5.9s3.4-4.2 1.8-5.9c-1.9-2-6-.5-8.6-3.1 0 2.2 1.8 4.5 5.2 4.5 0 0-2.3.9-2.3 4.5s2.3 4.5 2.3 4.5c-3.4 0-5.2 2.3-5.2 4.5 2.6-2.7 6.7-1.2 8.6-3.1"/><circle cx="20.5" cy="25.6" r="5"/><circle cx="43.5" cy="25.6" r="5"/></g><g fill="#917524"><path d="m50.2 16.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2-1.4 1.7"/><path d="m25.5 13.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f618.svg b/build/js/jsxc/lib/emojione/assets/svg/1f618.svg
index 9825701..983b37b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f618.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f618.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="29.999"/><g fill="#664e27"><path d="m37.803 39.4c-1.192-1.047-5.803 1.886-5.803 5.101s4.611 6.148 5.803 5.101c.968-.851-1.803-1.887-1.803-5.101s2.771-4.25 1.803-5.101"/><path d="m37.832 40.25c-.029-.247-.11-.462-.23-.571-.123-.104-.247-.139-.419-.163-.325-.064-.744-.056-1.161-.071-.844-.022-1.75-.068-2.66-.249-.908-.177-1.834-.487-2.67-1-.824-.517-1.576-1.252-1.895-2.192.918.343 1.703.57 2.512.747.802.182 1.606.32 2.441.487.833.169 1.693.345 2.592.676.447.173.912.384 1.354.774.206.203.419.502.43.826.02.319-.132.566-.294.739"/><path d="m37.832 48.75c.162.173.313.42.294.739-.011.324-.224.623-.43.826-.442.391-.907.602-1.354.774-.898.331-1.759.507-2.592.676-.835.167-1.64.306-2.441.487-.809.178-1.594.405-2.512.748.318-.94 1.07-1.676 1.895-2.192.836-.516 1.762-.826 2.67-1 .91-.181 1.816-.227 2.66-.249.417-.016.836-.007 1.161-.071.172-.024.296-.06.419-.163.12-.11.201-.325.23-.572"/><path d="m35 29.8c0 0 7.914 1.603 14 4.2 0 0-4.67-9.189-14-4.2"/><path d="m35 29.8c0 0 7.914-4.328 14-6.925 0 0-3.457 9.08-14 6.925"/><circle cx="22.252" cy="28.592" r="4.5"/></g><g fill="#f46767"><path d="m50.854 57.998l.007.001-.006-.004-.005.005z"/><path d="m61.37 42.568c-.908-1.805-2.732-2.988-4.986-2.834-2.332.161-4.117 1.413-5.586 3.47-1.484-2.043-3.281-3.284-5.613-3.423-2.254-.138-4.068 1.063-4.963 2.876-.902 1.836-.943 4.239.91 6.968 1.822 2.685 9.482 8.193 9.727 8.37.244-.18 7.859-5.755 9.66-8.449 1.832-2.741 1.771-5.148.851-6.978"/></g><g fill="#917524"><path d="m51.2 21.708c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.468-.969 2.06-1.414 1.674"/><path d="m24.488 13.708c-4.168-.748-8.455.4-11.691 3.133-.443.389-1.955-1.205-1.412-1.674 3.732-3.152 8.68-4.479 13.492-3.615.703.135.191 2.27-.389 2.156"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path fill="#f46767" d="m50.9 58h-.1z"/><ellipse cx="22" cy="27" rx="5" ry="6" fill="#664e27"/><path d="m61.4 42.6c-.9-1.8-2.7-3-5-2.8-2.3.2-4.1 1.4-5.6 3.5-1.5-2-3.3-3.3-5.6-3.4-2.3-.1-4.1 1.1-5 2.9-.9 1.8-.9 4.2.9 7 1.8 2.7 9.5 8.2 9.7 8.4.2-.2 7.9-5.8 9.7-8.4 1.8-3 1.8-5.4.9-7.2" fill="#f46767"/><g fill="#664e27"><path d="m51.9 30.5c-1.9-4.1-4.7-6.1-7.5-6.1s-5.6 2-7.5 6.1c-.2.4.8 1.2 1.3.8 1.8-1.5 4-2.1 6.2-2.1s4.4.6 6.2 2.1c.5.4 1.4-.3 1.3-.8"/><path d="m39.5 50.4c1.6-1.6-1.8-3-1.8-5.9s3.4-4.2 1.8-5.9c-1.9-2-6-.5-8.6-3.1 0 2.2 1.8 4.5 5.2 4.5 0 0-2.3.9-2.3 4.5s2.3 4.5 2.3 4.5c-3.4 0-5.2 2.3-5.2 4.5 2.6-2.7 6.7-1.2 8.6-3.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f619.svg b/build/js/jsxc/lib/emojione/assets/svg/1f619.svg
index 06efa19..1ac00e3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f619.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f619.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="29.999"/><g fill="#664e27"><path d="m41.801 39.4c-1.191-1.047-5.803 1.887-5.803 5.102s4.611 6.148 5.803 5.1c.969-.85-1.803-1.887-1.803-5.1 0-3.215 2.772-4.25 1.803-5.102"/><path d="m41.83 40.25c-.029-.248-.11-.463-.23-.572-.123-.104-.247-.139-.419-.162-.325-.064-.744-.057-1.161-.072-.844-.021-1.75-.068-2.66-.248-.908-.178-1.834-.488-2.67-1-.824-.516-1.576-1.252-1.895-2.191.918.342 1.703.57 2.512.746.802.182 1.606.32 2.441.488.833.168 1.693.344 2.592.676.447.172.912.383 1.354.773.206.203.419.502.43.826.02.32-.132.566-.294.74"/><path d="m41.83 48.75c.162.172.313.42.294.738-.011.324-.224.623-.43.826-.442.391-.907.602-1.354.775-.898.33-1.759.506-2.592.676-.835.166-1.64.305-2.441.486-.809.178-1.594.404-2.512.748.318-.941 1.07-1.676 1.895-2.193.836-.516 1.762-.826 2.67-1 .91-.182 1.816-.227 2.66-.25.417-.016.836-.006 1.161-.07.172-.025.296-.061.419-.164.12-.109.201-.324.23-.57"/><path d="m27.699 24.444c-4.757-5.142-13.827-2.711-15.375 4.119-.091.416.546.807 1.268 1.061 3.147-4.229 8.696-5.717 13.537-3.628.498-.579.854-1.237.57-1.552"/><path d="m51.674 28.563c-1.549-6.83-10.618-9.261-15.374-4.121-.287.316.07.975.568 1.553 4.841-2.088 10.389-.602 13.536 3.627.722-.253 1.36-.643 1.27-1.059"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m29 26.6c-2.7-4.7-5.9-6.7-8.7-6.3s-5.1 3.5-6 8.8c-.1.5 1 1.3 1.4.7 1.4-2.2 3.4-3.3 5.7-3.7 2.2-.4 4.5 0 6.6 1.5.5.6 1.3-.5 1-1"/><path d="m50.6 22.8c-2.7-4.7-5.9-6.7-8.7-6.3s-5.1 3.5-6 8.8c-.1.5 1 1.3 1.4.7 1.4-2.2 3.4-3.3 5.7-3.7 2.2-.4 4.5 0 6.6 1.5.5.6 1.3-.5 1-1"/><path d="m45.6 45.4c1.3-1.9-2.3-2.6-2.8-5.5-.5-2.9 2.6-4.8.8-6.1-2.2-1.6-6 .6-9-1.6.4 2.1 2.6 4.1 5.9 3.5 0 0-2.1 1.3-1.5 4.8.6 3.5 3 4 3 4-3.3.6-4.7 3.2-4.3 5.3 2-2.8 6.4-2.1 7.9-4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f61a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f61a.svg
index 41b66cb..7a3cf76 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f61a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f61a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="29.999"/><g fill="#664e27"><path d="m41.801 39.4c-1.191-1.048-5.803 1.886-5.803 5.101s4.611 6.148 5.803 5.101c.969-.851-1.803-1.887-1.803-5.101s2.772-4.25 1.803-5.101"/><path d="m41.83 40.25c-.029-.247-.11-.463-.23-.571-.123-.104-.247-.14-.419-.163-.325-.064-.744-.056-1.161-.071-.844-.022-1.75-.068-2.659-.249-.908-.177-1.835-.487-2.671-1-.824-.517-1.576-1.253-1.895-2.192.918.343 1.703.57 2.513.746.801.182 1.605.321 2.439.488.834.169 1.694.345 2.593.676.447.173.911.384 1.354.774.206.203.419.502.43.826.02.319-.132.565-.294.739"/><path d="m41.83 48.75c.162.173.313.42.294.738-.011.325-.224.623-.43.827-.443.391-.907.602-1.354.774-.898.331-1.759.507-2.593.676-.834.167-1.639.306-2.439.487-.81.177-1.595.403-2.513.747.318-.94 1.07-1.676 1.895-2.193.836-.516 1.763-.825 2.671-1 .909-.182 1.815-.227 2.659-.249.417-.017.836-.007 1.161-.071.172-.024.296-.06.419-.164.12-.108.201-.324.23-.57"/></g><g opacity=".8" fill="#ff717f"><circle cx="49.809" cy="36.14" r="8"/><circle cx="14.188" cy="36.14" r="8"/></g><g fill="#664e27"><path d="m36.409 24.18c3.264 6.197 12.653 6.197 15.917 0 .195-.378-.319-.921-.95-1.352-4.135 3.27-9.88 3.271-14.02 0-.631.432-1.145.974-.952 1.352"/><path d="m11.672 24.18c3.264 6.197 12.653 6.197 15.917.001.195-.379-.32-.922-.951-1.353-4.135 3.271-9.879 3.271-14.01.001-.631.431-1.146.973-.952 1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m45.6 45.4c1.3-1.9-2.3-2.6-2.8-5.5s2.6-4.8.8-6.1c-2.2-1.6-6 .6-9-1.6.4 2.1 2.6 4.1 5.9 3.5 0 0-2.1 1.3-1.5 4.8.6 3.5 3 4 3 4-3.3.6-4.7 3.2-4.3 5.3 2-2.8 6.4-2.1 7.9-4.4" fill="#664e27"/><g fill="#ff717f"><path d="m55 20.9c-4.2-1-8.2.4-9 3.2-.8 2.8 1.9 6 6.1 7 4.2 1 8.2-.4 9-3.2.8-2.8-2-5.9-6.1-7" opacity=".8"/><path d="m21.9 29.7c-2.4-2.9-8.3-3-13.1-.2-4.8 2.9-6.8 7.6-4.3 10.5 2.4 2.9 8.3 3 13.1.2 4.8-2.8 6.7-7.5 4.3-10.5" opacity=".8"/></g><g fill="#664e27"><path d="m35.2 17.7c5.5 7.1 13.9 5.6 16.7-2.9.1-.4-.4-.5-1.2-.8-3.6 4-10.4 4.9-14.7 2.6-.6.4-1.1.7-.8 1.1"/><path d="m10.8 22c5.5 7.1 13.9 5.6 16.7-2.9.1-.4-.4-.5-1.2-.8-3.6 4-10.4 4.9-14.7 2.6-.6.4-1.1.7-.8 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f61b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f61b.svg
index 4431bef..ccef634 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f61b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f61b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m48 37.5c0 6.461-5.314 14-16 14-10.689 0-16-7.539-16-14 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path d="m32 52.5c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.957 15-17 15m-14.955-14c.523 5.99 5.727 12 14.955 12s14.434-6.01 14.957-12h-29.912"/></g><path fill="#ff717f" d="m32 40h-10c0 0 0 2.787 0 5.92 0 10.703 4.477 16.08 9.998 16.08 5.523-.002 10-5.379 10-16.08 0-3.131 0-5.916 0-5.916h-10"/><path fill="#e2596c" d="M33.5 40 32 56.854 30.5 40z"/><path opacity=".33" d="m22 40h20v3.385h-20z"/><g fill="#664e27"><circle cx="20.502" cy="24" r="4.5"/><circle cx="43.502" cy="24" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m47.9 38c-3.3 0-9.7 0-15.9 0s-12.6 0-15.9 0c-.7 0-1.1.5-1.1 1 0 7.3 6 15 17 15s17-7.7 17-15c0-.5-.4-1-1.1-1" fill="#664e27"/><path d="m41.2 44c-2.3 0-9.2 0-9.2 0s-6.9 0-9.2 0c-.7 0-.8.3-.8.8 0 .9 0 2.4 0 4 0 8.8 4.5 13.2 10 13.2 5.5 0 10-4.4 10-13.2 0-1.6 0-3.1 0-4 0-.5-.1-.8-.8-.8" fill="#ff717f"/><path fill="#e2596c" d="M33.5 44 32 57.8 30.5 44z"/><g fill="#664e27"><circle cx="20.5" cy="24.5" r="5"/><circle cx="43.5" cy="24.5" r="5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f61c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f61c.svg
index e291d3c..413c3d2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f61c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f61c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m35 25.471c0 0 7.914 1.729 14 4.529 0 0-4.67-9.912-14-4.529"/><path d="m35 25.471c0 0 7.914-4.67 14-7.471 0 0-3.457 9.791-14 7.471"/></g><path fill="#fff" d="m30.25 24.592c0 4.971-4.03 9-9 9-4.971 0-9-4.03-9-9 0-4.967 4.03-9 9-9 4.969 0 9 4.03 9 9"/><g fill="#664e27"><circle cx="21.25" cy="24.592" r="4.5"/><path d="m48 37.5c0 6.461-5.314 14-16 14-10.689 0-16-7.539-16-14 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path d="m32 52.5c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.957 15-17 15m-14.956-14c.523 5.99 5.727 12 14.956 12s14.434-6.01 14.957-12h-29.913"/></g><path fill="#ff717f" d="m32 40h-9.998c0 0 0 2.787 0 5.92 0 10.703 4.475 16.08 9.996 16.08 5.523 0 10-5.377 10-16.08 0-3.131 0-5.918 0-5.918h-10"/><path fill="#e2596c" d="M33.5 40 32 56.854 30.5 40z"/><path opacity=".33" d="m22 40h20v3.385h-20z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m31.2 24.6c0 5.5-4.5 10-10 10-5.5 0-10-4.5-10-10 0-5.5 4.5-10 10-10 5.6 0 10 4.5 10 10" fill="#fff"/><g fill="#664e27"><circle cx="21.2" cy="24.6" r="4.5"/><path d="m51 29.1c-1.9-4.1-4.7-6.1-7.5-6.1s-5.6 2-7.5 6.1c-.2.4.8 1.2 1.3.8 1.8-1.5 4-2.1 6.2-2.1s4.4.6 6.2 2.1c.5.4 1.5-.4 1.3-.8"/><path d="m47.9 38c-3.3 0-9.7 0-15.9 0s-12.6 0-15.9 0c-.7 0-1.1.5-1.1 1 0 7.3 6 15 17 15s17-7.7 17-15c0-.5-.4-1-1.1-1"/></g><path d="m41.2 44c-2.3 0-9.2 0-9.2 0s-6.9 0-9.2 0c-.7 0-.8.3-.8.8 0 .9 0 2.4 0 4 0 8.8 4.5 13.2 10 13.2 5.5 0 10-4.4 10-13.2 0-1.6 0-3.1 0-4 0-.5-.1-.8-.8-.8" fill="#ff717f"/><path fill="#e2596c" d="M33.5 44 32 57.8 30.5 44z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f61d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f61d.svg
index 57b9d38..5157da9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f61d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f61d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m48.24 27.14c-1.447-.465-3-.658-4.561-.529-.324.025-.646.076-.971.133.111-.061.219-.129.33-.186 1.189-.611 2.424-1.148 3.738-1.633 1.314-.5 2.699-.926 4.201-1.506-1.467-.668-3.064-.893-4.664-.807-1.6.092-3.203.527-4.654 1.281-1.451.752-2.742 1.818-3.729 3.104-.967 1.285-1.701 2.785-1.797 4.412 1.467-.496 2.74-.93 4.02-1.219 1.268-.299 2.51-.48 3.783-.592 1.271-.107 2.57-.141 3.922-.141 1.355-.004 2.74.025 4.279-.004-1.078-1.126-2.453-1.835-3.893-2.313"/><path d="m22.34 23.893c-1.449-.754-3.055-1.189-4.652-1.281-1.6-.086-3.199.139-4.664.807 1.5.58 2.887 1.01 4.199 1.506 1.316.484 2.549 1.021 3.738 1.633.111.057.219.125.33.186-.322-.057-.646-.107-.971-.133-1.557-.129-3.113.064-4.561.529-1.439.479-2.814 1.188-3.893 2.314 1.537.029 2.922 0 4.279.004 1.35 0 2.648.033 3.922.141 1.271.111 2.516.293 3.781.592 1.275.289 2.549.723 4.02 1.219-.096-1.627-.83-3.127-1.799-4.412-.985-1.287-2.276-2.353-3.727-3.105"/><path d="m48 37.5c0 6.461-5.314 14-16 14-10.689 0-16-7.539-16-14 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path d="m32 52.5c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.957 15-17 15m-14.955-14c.523 5.99 5.727 12 14.955 12s14.434-6.01 14.957-12h-29.912"/></g><path fill="#ff717f" d="m32 40h-10c0 0 0 2.787 0 5.92 0 10.703 4.477 16.08 9.998 16.08 5.523 0 10-5.377 10-16.08 0-3.131 0-5.918 0-5.918h-10"/><path fill="#e2596c" d="M33.5 40 32 56.854 30.5 40z"/><path opacity=".33" d="m22 40h20v3.385h-20z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m47.9 38c-3.3 0-9.7 0-15.9 0s-12.6 0-15.9 0c-.7 0-1.1.5-1.1 1 0 7.3 6 15 17 15s17-7.7 17-15c0-.5-.4-1-1.1-1" fill="#664e27"/><path d="m41.2 44c-2.3 0-9.2 0-9.2 0s-6.9 0-9.2 0c-.7 0-.8.3-.8.8 0 .9 0 2.4 0 4 0 8.8 4.5 13.2 10 13.2 5.5 0 10-4.4 10-13.2 0-1.6 0-3.1 0-4 0-.5-.1-.8-.8-.8" fill="#ff717f"/><path fill="#e2596c" d="M33.5 44 32 57.8 30.5 44z"/><g fill="#664e27"><path d="m51.7 23.4c.6.3.3 1-.2 1.1-2.7.4-5.5.9-8.3 2.4 4 .7 7.2 2.7 9 4.8.4.5-.1 1.1-.5 1-4.8-1.7-9.7-2.7-15.8-2-.5 0-.9-.2-.8-.7 1.6-7.3 10.9-10 16.6-6.6"/><path d="m12.3 23.4c-.6.3-.3 1 .2 1.1 2.7.4 5.5.9 8.3 2.4-4 .7-7.2 2.7-9 4.8-.4.5.1 1.1.5 1 4.8-1.7 9.7-2.7 15.8-2 .5 0 .9-.2.8-.7-1.6-7.3-10.9-10-16.6-6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f61e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f61e.svg
index 1ab9fbc..143c2f4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f61e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f61e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="30"/><g fill="#664e27"><path d="m42.683 51.839c-1.801-1.059-3.541-1.701-5.322-2.127-1.775-.426-3.566-.609-5.361-.611-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.066-5.322 2.123.771-1.977 2.484-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.166.004 4.354.486 6.283 1.49 1.909.994 3.624 2.546 4.4 4.521"/><path d="m23.934 29.23c1.354 3.189.098 6.979-2.806 8.468-2.904 1.484-6.354.105-7.711-3.083-.859-2.026 9.657-7.411 10.517-5.385"/><path d="m29.1 28.911c-2.079.222-3.933.56-5.727 1.087-1.788.515-3.494 1.198-5.135 2.034-1.649.842-3.212 1.815-4.723 2.986-1.517 1.167-2.938 2.508-4.416 4.131.226-2.3 1.252-4.46 2.633-6.24 1.387-1.782 3.168-3.222 5.106-4.197 1.944-.989 4.077-1.54 6.211-1.562 2.126-.008 4.29.498 6.05 1.761"/><path d="m40.06 29.23c-1.355 3.191-.1 6.979 2.803 8.467 2.906 1.486 6.356.107 7.713-3.081.858-2.026-9.656-7.409-10.516-5.386"/><path d="m34.894 28.911c1.762-1.263 3.924-1.771 6.05-1.761 2.136.021 4.269.572 6.213 1.561 1.938.977 3.718 2.416 5.104 4.198 1.38 1.783 2.409 3.941 2.635 6.24-1.478-1.623-2.901-2.964-4.416-4.131-1.513-1.17-3.075-2.145-4.723-2.988-1.643-.834-3.349-1.518-5.137-2.032-1.792-.527-3.647-.865-5.724-1.087"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m25.5 28.4c1.4 2.9-.4 6.6-3.9 8.3-3.5 1.6-7.5.6-8.9-2.3-.8-1.9 12-7.9 12.8-6"/><path d="m38.5 28.4c-1.4 2.9.4 6.6 3.9 8.3 3.5 1.6 7.5.6 8.9-2.3.8-1.9-12-7.9-12.8-6"/></g><g fill="#917524"><path d="m22.7 19.8c-2.7 3.3-9.2 6.3-13.5 6.3-.6 0-.7 2.2 0 2.2 4.9 0 12-3.3 15.2-7.1.5-.5-1.3-1.8-1.7-1.4"/><path d="m41.3 19.8c2.7 3.3 9.2 6.3 13.5 6.3.6 0 .7 2.2 0 2.2-4.9 0-12-3.3-15.2-7.1-.5-.5 1.3-1.8 1.7-1.4"/></g><path d="m40.6 46.4c-5.4-2.5-11.8-2.5-17.2 0-1.3.6.3 4.2 1.7 3.5 3.6-1.7 8.9-2.3 13.9 0 1.3.6 3-2.8 1.6-3.5" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f61f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f61f.svg
index 6572a93..a1eec05 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f61f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f61f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="20.5" cy="29.592" r="4.5"/><circle cx="43.5" cy="29.592" r="4.5"/></g><g fill="#917524"><path d="m51.2 18.727c-3.236-2.732-7.523-3.881-11.693-3.133-.578.113-1.088-2.02-.385-2.156 4.809-.863 9.756.461 13.492 3.615.541.468-.971 2.06-1.414 1.674"/><path d="m24.488 15.443c-4.168-.748-8.455.4-11.693 3.133-.443.389-1.953-1.205-1.412-1.674 3.734-3.152 8.681-4.479 13.492-3.615.703.135.191 2.27-.387 2.156"/></g><path fill="#664e27" d="m49.816 47.32c-1.393-1.01-2.844-1.796-4.326-2.226-1.451-.436-2.984-.518-4.215-.188-1.209.308-2.125 1.138-3.546 2.268-.701.552-1.561 1.122-2.563 1.537-1 .415-2.12.599-3.167.608-.448-.002-1.082-.053-1.6-.15-.537-.098-1.068-.254-1.569-.454-1-.415-1.86-.988-2.563-1.536-1.42-1.133-2.339-1.957-3.545-2.268-1.254-.326-2.745-.247-4.211.188-1.483.428-2.934 1.218-4.329 2.221.725-1.585 1.954-2.931 3.47-3.987 1.536-1.024 3.465-1.664 5.537-1.532 1.052.073 2.118.418 2.999.883.896.452 1.621.99 2.279 1.404 1.315.866 2.273 1.238 3.532 1.233 1.258.008 2.217-.364 3.533-1.229.658-.416 1.386-.952 2.28-1.403.88-.467 1.946-.808 2.997-.883 2.097-.13 3.982.508 5.533 1.532 1.519 1.055 2.747 2.399 3.474 3.982"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="29.6" r="5"/><circle cx="43.5" cy="29.6" r="5"/></g><g fill="#917524"><path d="m51.2 18.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m24.5 15.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.4-.4 2.2"/></g><path d="m40.6 44.4c-5.4-2.5-11.8-2.5-17.2 0-1.3.6.3 4.2 1.7 3.5 3.6-1.7 8.9-2.3 13.9 0 1.3.6 3-2.8 1.6-3.5" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f620.svg b/build/js/jsxc/lib/emojione/assets/svg/1f620.svg
index 5acf333..a32acbc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f620.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f620.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m42.684 48.84c-1.801-1.059-3.541-1.701-5.322-2.127-1.775-.426-3.566-.609-5.361-.611-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.066-5.322 2.123.771-1.977 2.484-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.166.004 4.354.486 6.283 1.49 1.909.994 3.624 2.546 4.4 4.521"/><path fill="#fff" d="m52.29 24.598c2.01 4.313.146 9.439-4.168 11.449-4.313 2.01-9.439.145-11.449-4.166-1.514-3.248 14.1-10.531 15.617-7.283"/><g fill="#664e27"><path d="m49.762 25.777c1.359 2.916.098 6.381-2.816 7.742-2.916 1.359-6.381.098-7.742-2.818-.864-1.851 9.694-6.775 10.558-4.924"/><path d="m53.895 24.926c-1.871.182-3.539.459-5.154.891-1.609.422-3.145.982-4.621 1.668-1.484.689-2.891 1.488-4.25 2.447-1.365.957-2.645 2.057-3.975 3.387.203-1.885 1.127-3.656 2.369-5.115 1.248-1.461 2.852-2.641 4.596-3.441 1.75-.811 3.67-1.262 5.59-1.279 1.911-.009 3.859.407 5.445 1.442"/></g><path fill="#fff" d="m11.709 24.598c-2.01 4.313-.146 9.439 4.168 11.449 4.311 2.01 9.438.145 11.447-4.166 1.516-3.248-14.1-10.531-15.615-7.283"/><g fill="#664e27"><path d="m14.238 25.777c-1.361 2.916-.1 6.381 2.814 7.742 2.918 1.359 6.383.098 7.744-2.818.862-1.851-9.694-6.775-10.558-4.924"/><path d="m10.11 24.926c1.586-1.035 3.531-1.451 5.443-1.443 1.922.018 3.842.469 5.592 1.279 1.744.801 3.346 1.98 4.594 3.441 1.242 1.461 2.168 3.23 2.371 5.115-1.33-1.33-2.611-2.43-3.975-3.387-1.361-.959-2.768-1.758-4.25-2.449-1.479-.684-3.01-1.244-4.623-1.666-1.612-.431-3.282-.709-5.152-.89"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m41 49.7c-5.8-4.8-12.2-4.8-18 0-.7.6-1.3-.4-.8-1.3 1.8-3.4 5.3-6.5 9.8-6.5s8.1 3.1 9.8 6.5c.5.8-.1 1.8-.8 1.3" fill="#664e27"/><path d="m10.2 24.9c-1.5 4.7.6 10 5.3 12.1 4.6 2.2 10 .5 12.7-3.7l-6.9-7.7-11.1-.7" fill="#fff"/><g fill="#664e27"><path d="m14.2 25.8c-1.4 2.9-.1 6.4 2.8 7.7 2.9 1.4 6.4.1 7.7-2.8 1-1.9-9.6-6.8-10.5-4.9"/><path d="m10.2 24.9c1.6-1 3.5-1.5 5.4-1.5 1.9 0 3.8.5 5.6 1.3 1.7.8 3.3 2 4.6 3.4 1.2 1.5 2.2 3.2 2.4 5.1-1.3-1.3-2.6-2.4-4-3.4-1.4-1-2.8-1.8-4.2-2.4-1.5-.7-3-1.2-4.6-1.7-1.8-.3-3.4-.6-5.2-.8"/></g><path d="m53.8 24.9c1.5 4.7-.6 10-5.3 12.1-4.6 2.2-10 .5-12.7-3.7l6.9-7.7 11.1-.7" fill="#fff"/><g fill="#664e27"><path d="m49.8 25.8c1.4 2.9.1 6.4-2.8 7.7-2.9 1.4-6.4.1-7.7-2.8-1-1.9 9.6-6.8 10.5-4.9"/><path d="m53.8 24.9c-1.6-1-3.5-1.5-5.4-1.5-1.9 0-3.8.5-5.6 1.3-1.7.8-3.3 2-4.6 3.4-1.2 1.5-2.2 3.2-2.4 5.1 1.3-1.3 2.6-2.4 4-3.4 1.4-1 2.8-1.8 4.2-2.4 1.5-.7 3-1.2 4.6-1.7 1.8-.3 3.4-.6 5.2-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f621.svg b/build/js/jsxc/lib/emojione/assets/svg/1f621.svg
index a8c8e2a..f7c7227 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f621.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f621.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f46767" cx="32" cy="32" r="30"/><path fill="#493b30" d="m42.684 48.839c-1.8-1.059-3.54-1.701-5.322-2.127-1.774-.426-3.565-.609-5.361-.611-1.798.008-3.587.189-5.36.615-1.782.428-3.521 1.066-5.323 2.123.771-1.977 2.485-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.167.004 4.354.486 6.284 1.49 1.909.994 3.624 2.546 4.399 4.521"/><path fill="#fff" d="m52.29 24.597c2.01 4.313.146 9.439-4.168 11.449-4.313 2.01-9.439.145-11.449-4.166-1.514-3.248 14.1-10.531 15.617-7.283"/><g fill="#493b30"><path d="m49.762 25.776c1.359 2.916.098 6.381-2.816 7.742-2.916 1.359-6.381.098-7.742-2.818-.864-1.851 9.694-6.775 10.558-4.924"/><path d="m53.895 24.925c-1.87.182-3.539.459-5.153.891-1.609.422-3.145.982-4.622 1.668-1.484.689-2.89 1.488-4.25 2.447-1.364.957-2.645 2.057-3.975 3.387.203-1.885 1.128-3.656 2.37-5.115 1.248-1.461 2.851-2.641 4.595-3.441 1.75-.811 3.67-1.262 5.591-1.279 1.911-.009 3.858.407 5.444 1.442"/></g><path fill="#fff" d="m11.709 24.597c-2.01 4.313-.146 9.439 4.168 11.449 4.311 2.01 9.438.145 11.447-4.166 1.516-3.248-14.1-10.531-15.615-7.283"/><g fill="#493b30"><path d="m14.238 25.776c-1.361 2.916-.1 6.381 2.814 7.742 2.918 1.359 6.383.098 7.744-2.818.862-1.851-9.694-6.775-10.558-4.924"/><path d="m10.11 24.925c1.586-1.035 3.531-1.451 5.444-1.443 1.921.018 3.841.469 5.591 1.279 1.744.801 3.346 1.98 4.595 3.441 1.241 1.461 2.167 3.23 2.37 5.115-1.33-1.33-2.61-2.43-3.975-3.387-1.36-.959-2.767-1.758-4.25-2.449-1.478-.684-3.01-1.244-4.622-1.666-1.613-.431-3.282-.709-5.153-.89"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ef5350"/><path d="m41 49.7c-5.8-4.8-12.2-4.8-18 0-.7.6-1.3-.4-.8-1.3 1.8-3.4 5.3-6.5 9.8-6.5s8.1 3.1 9.8 6.5c.5.8-.1 1.8-.8 1.3" fill="#302424"/><path d="m10.2 24.9c-1.5 4.7.6 10 5.3 12.1 4.6 2.2 10 .5 12.7-3.7l-6.9-7.7-11.1-.7" fill="#fff"/><g fill="#302424"><path d="m14.2 25.8c-1.4 2.9-.1 6.4 2.8 7.7 2.9 1.4 6.4.1 7.7-2.8 1-1.9-9.6-6.8-10.5-4.9"/><path d="m10.2 24.9c1.6-1 3.5-1.5 5.4-1.5 1.9 0 3.8.5 5.6 1.3 1.7.8 3.3 2 4.6 3.4 1.2 1.5 2.2 3.2 2.4 5.1-1.3-1.3-2.6-2.4-4-3.4-1.4-1-2.8-1.8-4.2-2.4-1.5-.7-3-1.2-4.6-1.7-1.8-.3-3.4-.6-5.2-.8"/></g><path d="m53.8 24.9c1.5 4.7-.6 10-5.3 12.1-4.6 2.2-10 .5-12.7-3.7l6.9-7.7 11.1-.7" fill="#fff"/><g fill="#302424"><path d="m49.8 25.8c1.4 2.9.1 6.4-2.8 7.7-2.9 1.4-6.4.1-7.7-2.8-1-1.9 9.6-6.8 10.5-4.9"/><path d="m53.8 24.9c-1.6-1-3.5-1.5-5.4-1.5-1.9 0-3.8.5-5.6 1.3-1.7.8-3.3 2-4.6 3.4-1.2 1.5-2.2 3.2-2.4 5.1 1.3-1.3 2.6-2.4 4-3.4 1.4-1 2.8-1.8 4.2-2.4 1.5-.7 3-1.2 4.6-1.7 1.8-.3 3.4-.6 5.2-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f622.svg b/build/js/jsxc/lib/emojione/assets/svg/1f622.svg
index b40a671..e39209c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f622.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f622.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m42.684 49.84c-1.801-1.059-3.541-1.701-5.322-2.127-1.775-.426-3.566-.609-5.361-.611-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.066-5.322 2.123.771-1.977 2.484-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.166.004 4.354.486 6.283 1.49 1.909.994 3.624 2.546 4.4 4.521"/><path fill="#fff" d="m52.75 30c0 4.971-4.03 9-9 9-4.971 0-9-4.03-9-9 0-4.967 4.03-9 9-9 4.969 0 9 4.03 9 9"/><circle fill="#664e27" cx="43.75" cy="30" r="6"/><g fill="#fff"><ellipse cx="45.3" cy="34.469" rx="2.812" ry="3.25"/><ellipse cx="41.529" cy="30" rx="1.645" ry="1.902"/><path d="m29.25 30c0 4.971-4.03 9-9 9-4.971 0-9-4.03-9-9 0-4.967 4.03-9 9-9 4.969 0 9 4.03 9 9"/></g><circle fill="#664e27" cx="20.25" cy="30" r="6"/><g fill="#fff"><ellipse cx="21.801" cy="34.469" rx="2.811" ry="3.25"/><ellipse cx="18.03" cy="30" rx="1.644" ry="1.902"/></g><path fill="#65b1ef" d="m46.35 35c-5.02 6.857-7.895 13.166-7.895 18.352 0 4.406 3.535 7.977 7.898 7.977 4.359 0 7.896-3.57 7.896-7.977.001-5.186-2.964-11.602-7.899-18.352"/><g fill="#917524"><path d="m53.2 19.652c-3.234-2.732-7.523-3.881-11.691-3.133-.58.113-1.09-2.02-.387-2.156 4.811-.863 9.758.461 13.492 3.615.541.469-.969 2.061-1.414 1.674"/><path d="m22.486 16.369c-4.168-.748-8.455.4-11.691 3.133-.443.389-1.955-1.205-1.412-1.674 3.732-3.152 8.68-4.479 13.492-3.615.703.135.191 2.269-.389 2.156"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m40.6 46.4c-5.4-2.5-11.8-2.5-17.2 0-1.3.6.3 4.2 1.7 3.5 3.6-1.7 8.9-2.3 13.9 0 1.3.6 3-2.8 1.6-3.5" fill="#664e27"/><path d="m54 31c0 5-4 9-9 9-5 0-9-4-9-9 0-5 4-9 9-9 5 0 9 4 9 9" fill="#fff"/><circle cx="45" cy="31" r="6" fill="#664e27"/><g fill="#fff"><ellipse cx="46.6" cy="35.5" rx="2.8" ry="3.2"/><ellipse cx="42.8" cy="31" rx="1.6" ry="1.9"/><path d="m28 31c0 5-4 9-9 9-5 0-9-4-9-9 0-5 4-9 9-9 5 0 9 4 9 9"/></g><circle cx="19" cy="31" r="6" fill="#664e27"/><g fill="#fff"><ellipse cx="20.6" cy="35.5" rx="2.8" ry="3.2"/><ellipse cx="16.8" cy="31" rx="1.6" ry="1.9"/></g><path d="m47 36c-5.1 6.8-8 13-8 18.1 0 4.4 3.6 7.9 8 7.9 4.4 0 8-3.5 8-7.9 0-5.1-3-11.4-8-18.1" fill="#65b1ef"/><g fill="#917524"><path d="m53.2 20.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 17.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f623.svg b/build/js/jsxc/lib/emojione/assets/svg/1f623.svg
index 070964e..9482683 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f623.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f623.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="30"/><g fill="#ff717f"><circle opacity=".8" cx="50.5" cy="29.14" r="8.31"/><circle opacity=".8" cx="13.499" cy="29.14" r="8.31"/></g><g fill="#664e27"><path d="m46.33 42c-1.93-2.558-4.182-4.331-6.631-5.538-2.445-1.208-5.072-1.788-7.699-1.791-2.636.008-5.258.591-7.701 1.794-2.447 1.208-4.697 2.981-6.629 5.535.227-3.02 2.106-6.196 4.773-8.363 2.67-2.197 6.119-3.43 9.557-3.416 3.432-.005 6.883 1.223 9.55 3.42 2.66 2.166 4.547 5.343 4.78 8.359"/><path d="m48.24 19.14c-1.447-.465-3-.658-4.559-.529-.326.025-.648.076-.971.133.109-.061.217-.129.33-.186 1.188-.611 2.422-1.148 3.736-1.633 1.314-.5 2.699-.926 4.201-1.506-1.467-.668-3.064-.893-4.664-.807-1.6.092-3.203.527-4.654 1.281-1.451.752-2.742 1.818-3.727 3.104-.969 1.285-1.703 2.785-1.799 4.412 1.467-.496 2.74-.93 4.02-1.219 1.268-.299 2.51-.48 3.783-.592 1.271-.107 2.57-.141 3.922-.141 1.355-.004 2.74.025 4.279-.004-1.078-1.126-2.453-1.835-3.893-2.313"/><path d="m22.339 15.893c-1.449-.754-3.055-1.189-4.652-1.281-1.6-.086-3.197.139-4.664.807 1.502.58 2.887 1.01 4.201 1.506 1.314.484 2.547 1.021 3.736 1.633.111.057.219.125.33.186-.322-.057-.646-.107-.971-.133-1.557-.129-3.111.064-4.561.529-1.438.479-2.814 1.188-3.893 2.314 1.537.029 2.922 0 4.279.004 1.35 0 2.648.033 3.922.141 1.271.111 2.516.293 3.781.592 1.275.289 2.549.723 4.02 1.219-.096-1.627-.83-3.127-1.799-4.412-.985-1.287-2.276-2.353-3.727-3.105"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#ff717f"><ellipse transform="matrix(.4226-.9063.9063.4226 1.9347 65.6611)" cx="52.5" cy="31.3" rx="6.5" ry="9" opacity=".8"/><ellipse transform="matrix(.9063-.4226.4226.9063-12.1546 7.7934)" cx="11.5" cy="31.3" rx="9" ry="6.5" opacity=".8"/></g><g fill="#664e27"><path d="m19.4 42.2c8.1-5.7 17.1-5.6 25.2 0 1 .7 1.8-.5 1.2-1.6-2.5-4-7.4-7.7-13.8-7.7s-11.3 3.6-13.8 7.7c-.6 1.1.2 2.3 1.2 1.6"/><path d="m51.7 15.1c.6.3.3 1-.2 1.1-2.7.4-5.5.9-8.3 2.4 4 .7 7.2 2.7 9 4.8.4.5-.1 1.1-.5 1-4.8-1.7-9.7-2.7-15.8-2-.5 0-.9-.2-.8-.7 1.6-7.3 10.9-10 16.6-6.6"/><path d="m12.3 15.1c-.6.3-.3 1 .2 1.1 2.7.4 5.5.9 8.3 2.4-4 .7-7.2 2.7-9 4.8-.4.5.1 1.1.5 1 4.8-1.7 9.7-2.7 15.8-2 .5 0 .9-.2.8-.7-1.6-7.3-10.9-10-16.6-6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f624.svg b/build/js/jsxc/lib/emojione/assets/svg/1f624.svg
index 4c1ef04..fe5de95 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f624.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f624.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m62 31.978c0 16.572-13.438 30-30 30-16.572 0-30-13.428-30-30-.001-16.562 13.427-29.998 29.999-29.998 16.563 0 30 13.426 30 29.998"/><path fill="#664e27" d="m44.4 38.546c-2.09-1.229-4.107-1.975-6.174-2.469-2.061-.494-4.139-.705-6.225-.709-2.084.008-4.16.219-6.219.713-2.066.496-4.086 1.24-6.176 2.465.895-2.295 2.885-4.098 5.102-5.252 2.24-1.164 4.781-1.725 7.295-1.723 2.516.002 5.05.563 7.293 1.727 2.216 1.156 4.204 2.957 5.104 5.248"/><g fill="#917524"><path d="m48.41 12.894c-4.221.355-8.06 2.576-10.484 6.05-.328.488-2.199-.66-1.797-1.252 2.791-4.01 7.225-6.574 12.1-6.984.713-.051.769 2.142.183 2.183"/><path d="m26.07 18.947c-2.418-3.477-6.262-5.697-10.482-6.05-.59-.039-.531-2.234.184-2.184 4.869.412 9.305 2.973 12.1 6.984.401.595-1.472 1.741-1.8 1.253"/></g><g fill="#d8d8d8"><path d="m61.712 47.37c-1-2.469-4.285-3.814-7.34-3.01-1.557.408-2.758 1.299-3.424 2.406-7.844-1.488-14.998-15.351-14.998-15.351s.184 11.316 5.861 17.943c-1.193-.365-2.545-.416-3.852-.07-3.059.801-4.729 3.455-3.732 5.922s4.279 3.814 7.338 3.01c.219-.057.428-.125.631-.203 1.615 3.105 5.936 4.744 9.977 3.682 4.256-1.119 6.584-4.809 5.197-8.244-.008-.012-.014-.018-.016-.031.211-.035.416-.078.623-.131 3.063-.804 4.731-3.456 3.735-5.923"/><path d="m2.286 47.37c1-2.469 4.287-3.814 7.342-3.01 1.559.408 2.758 1.299 3.424 2.406 7.842-1.488 14.996-15.352 14.996-15.352s-.184 11.316-5.859 17.943c1.191-.365 2.547-.416 3.854-.07 3.057.801 4.729 3.455 3.73 5.922-1 2.467-4.281 3.814-7.338 3.01-.217-.057-.428-.125-.631-.203-1.615 3.105-5.938 4.744-9.979 3.682-4.256-1.119-6.582-4.809-5.193-8.244.004-.012.012-.018.016-.031-.213-.035-.418-.078-.627-.131-3.06-.803-4.728-3.455-3.735-5.922"/></g><g fill="#fff"><path d="m59.34 44.856c-.92-2.639-3.943-4.078-6.754-3.219-1.434.438-2.539 1.389-3.152 2.572-7.217-1.59-13.801-16.416-13.801-16.416s.168 12.1 5.393 19.19c-1.098-.389-2.344-.441-3.547-.072-2.813.855-4.35 3.695-3.432 6.332.918 2.639 3.939 4.08 6.752 3.217.199-.059.393-.133.58-.215 1.486 3.32 5.463 5.072 9.184 3.938 3.916-1.197 6.06-5.145 4.781-8.818-.006-.014-.012-.02-.014-.033.193-.037.383-.084.574-.139 2.817-.859 4.352-3.695 3.436-6.334"/><path d="m4.653 44.856c.92-2.639 3.943-4.078 6.756-3.219 1.434.438 2.537 1.389 3.15 2.572 7.219-1.59 13.803-16.416 13.803-16.416s-.17 12.1-5.395 19.19c1.098-.389 2.344-.441 3.547-.072 2.813.855 4.352 3.695 3.434 6.332-.918 2.639-3.939 4.08-6.754 3.217-.199-.059-.393-.133-.58-.215-1.486 3.32-5.463 5.072-9.184 3.938-3.916-1.197-6.06-5.145-4.779-8.818.004-.014.012-.02.014-.033-.195-.037-.385-.084-.576-.139-2.817-.859-4.352-3.695-3.436-6.334"/></g><g fill="#664e27"><path d="m36.412 21.33c3.264 6.197 12.652 6.197 15.916 0 .195-.378-.32-.921-.949-1.352-4.137 3.27-9.881 3.271-14.02 0-.631.432-1.146.974-.951 1.352"/><path d="m11.673 21.33c3.264 6.197 12.652 6.197 15.916.001.195-.379-.318-.922-.949-1.353-4.135 3.271-9.881 3.271-14.02.001-.63.431-1.144.973-.951 1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-13.4,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67"/><g fill="#917524"><path d="m48.4 12.9c-4.2.4-8.1 2.6-10.5 6.1-.3.5-2.2-.7-1.8-1.3 2.8-4 7.2-6.6 12.1-7 .7 0 .8 2.2.2 2.2"/><path d="m26.1 19c-2.4-3.5-6.3-5.7-10.5-6.1-.6 0-.5-2.2.2-2.2 4.9.4 9.3 3 12.1 7 .4.6-1.5 1.8-1.8 1.3"/></g><g fill="#664e27"><path d="m21.2 39.9c7-4.8 14.7-4.8 21.6 0 .8.6 1.6-.4 1-1.3-2.1-3.4-6.4-6.5-11.8-6.5s-9.7 3.1-11.8 6.5c-.6.9.2 1.9 1 1.3"/><path d="m35.9 21c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.6.5-1.2.6-1 1"/><path d="m11.2 21c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.7.5-1.2.6-1 1"/></g><g fill="#d8d8d8"><path d="m61.7 47.3c-1-2.5-4.3-3.8-7.3-3-1.6.4-2.8 1.3-3.4 2.4-7.8-1.5-15-15.4-15-15.4s.2 11.3 5.9 17.9c-1.2-.4-2.5-.4-3.9-.1-3.1.8-4.7 3.5-3.7 5.9s4.3 3.8 7.3 3c.2-.1.4-.1.6-.2 1.6 3.1 5.9 4.7 10 3.7 4.3-1.1 6.6-4.8 5.2-8.2.2 0 .4-.1.6-.1 3-.7 4.7-3.4 3.7-5.9"/><path d="m2.3 47.3c1-2.5 4.3-3.8 7.3-3 1.6.4 2.8 1.3 3.4 2.4 7.8-1.5 15-15.4 15-15.4s-.2 11.3-5.9 17.9c1.2-.4 2.5-.4 3.9-.1 3.1.8 4.7 3.5 3.7 5.9-1 2.5-4.3 3.8-7.3 3-.2-.1-.4-.1-.6-.2-1.6 3.1-5.9 4.7-10 3.7-4.3-1.1-6.6-4.8-5.2-8.2-.2 0-.4-.1-.6-.1-3-.7-4.7-3.4-3.7-5.9"/></g><g fill="#fff"><path d="m59.3 44.8c-.9-2.6-3.9-4.1-6.8-3.2-1.4.4-2.5 1.4-3.2 2.6-7.2-1.6-13.8-16.4-13.8-16.4s.3 12.1 5.5 19.2c-1.1-.4-2.3-.4-3.5-.1-2.8.9-4.3 3.7-3.4 6.3.9 2.6 3.9 4.1 6.8 3.2.2-.1.4-.1.6-.2 1.5 3.3 5.5 5.1 9.2 3.9 3.9-1.2 6.1-5.1 4.8-8.8.2 0 .4-.1.6-.1 2.6-.9 4.2-3.7 3.2-6.4"/><path d="m4.7 44.8c.9-2.6 3.9-4.1 6.8-3.2 1.4.4 2.5 1.4 3.1 2.6 7.2-1.6 13.8-16.4 13.8-16.4s-.2 12.1-5.4 19.2c1.1-.4 2.3-.4 3.5-.1 2.8.9 4.4 3.7 3.4 6.3-.9 2.6-3.9 4.1-6.8 3.2-.2-.1-.4-.1-.6-.2-1.5 3.3-5.5 5.1-9.2 3.9-3.8-1.1-5.9-5.1-4.6-8.8-.2 0-.4-.1-.6-.1-2.8-.9-4.4-3.7-3.4-6.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f625.svg b/build/js/jsxc/lib/emojione/assets/svg/1f625.svg
index 3194fa0..c52759e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f625.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f625.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="M2,32c0,16.572,13.428,30,30,30s30-13.428,30-30S48.572,2,32,2S2,15.428,2,32z"/><g fill="#664e27"><path d="m15.318 52c1.801-1.061 3.541-1.701 5.322-2.127 1.775-.428 3.566-.609 5.361-.613 1.799.008 3.588.189 5.361.615 1.781.428 3.52 1.068 5.322 2.125-.771-1.979-2.484-3.533-4.396-4.527-1.932-1-4.119-1.486-6.287-1.484-2.166.004-4.354.486-6.283 1.488-1.909.996-3.624 2.548-4.4 4.523"/><circle cx="37.498" cy="36" r="4.5"/><circle cx="14.498" cy="36" r="4.5"/></g><g fill="#917524"><path d="m19.578 20.906c-3.236 2.732-7.523 3.881-11.693 3.133-.578-.113-1.088 2.02-.385 2.156 4.809.863 9.756-.461 13.492-3.615.541-.469-.971-2.06-1.414-1.674"/><path d="m44.11 23.887c-4.168.748-8.455-.4-11.691-3.133-.443-.389-1.955 1.205-1.412 1.674 3.732 3.152 8.68 4.479 13.492 3.615.703-.135.191-2.27-.389-2.156"/></g><path fill="#65b1ef" d="m44.688 38.605c0 8.576 11.656 8.578 11.654 0 0-6.264-5.826-12.375-5.826-12.375s-5.828 6.114-5.828 12.375"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,16.6,13.4,30,30,30s30-13.4,30-30S48.6,2,32,2S2,15.4,2,32z" fill="#ffdd67"/><path d="m47.7 37.6c0 8.6 11.7 8.6 11.7 0 0-6.3-5.8-12.4-5.8-12.4s-5.9 6.1-5.9 12.4" fill="#65b1ef"/><g fill="#664e27"><circle cx="38.5" cy="35" r="5"/><circle cx="15.5" cy="35" r="5"/></g><g fill="#917524"><path d="m20.6 19.9c-3.2 2.7-7.5 3.9-11.7 3.1-.6-.1-1.1 2-.4 2.2 4.8.9 9.8-.5 13.5-3.6.5-.5-1-2.1-1.4-1.7"/><path d="m45.1 22.9c-4.2.7-8.5-.4-11.7-3.1-.4-.4-2 1.2-1.4 1.7 3.7 3.2 8.7 4.5 13.5 3.6.7-.2.2-2.3-.4-2.2"/></g><path d="m38.1 47.3c-5.8-1.5-12-.4-16.9 3-1.2.9 1.1 4 2.3 3.2 3.2-2.3 8.4-3.8 13.7-2.4 1.3.3 2.4-3.3.9-3.8" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f626.svg b/build/js/jsxc/lib/emojione/assets/svg/1f626.svg
index bae8cd6..c037c08 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f626.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f626.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="20.502" cy="25" r="4.5"/><circle cx="43.502" cy="25" r="4.5"/></g><path fill="#fff" d="m19.05 49.73c0-5.23 4.301-11.334 12.953-11.334 8.654 0 12.953 6.104 12.953 11.334 0 0-4.299 0-12.953 0-8.652 0-12.953 0-12.953 0"/><g fill="#664e27"><path d="m18.979 49.895l1.617-6.475h22.804l1.62 6.475z"/><path d="m32 37.588c8.939 0 13.763 6.258 13.763 12.143v.811h-27.527v-.812c0-5.884 4.825-12.142 13.764-12.142m12.11 11.332c-.424-4.85-4.639-9.715-12.11-9.715-7.473 0-11.686 4.865-12.11 9.715h24.22"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="26" r="5"/><circle cx="43.5" cy="26" r="5"/><path d="m45.7 44c-1.5-3.6-5.1-6-13.7-6-8.6 0-12.2 2.4-13.7 6-.8 1.9.3 4 .3 4 .4 1.2 2.2 2 13.4 2 11.1 0 12.9-.8 13.4-2 0 0 1.1-2.1.3-4"/></g><path d="m42 43c.1-.3 0-.6-.2-.8 0 0-2.2-2.2-9.8-2.2-7.5 0-9.8 2.2-9.8 2.2-.2.1-.2.5-.2.8l.2.6c.1.3.3.5.6.5h18.4c.2 0 .5-.2.6-.5l.2-.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f627.svg b/build/js/jsxc/lib/emojione/assets/svg/1f627.svg
index c8e5812..b97c18b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f627.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f627.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#917524"><path d="m38.422 10.238c3.236 2.732 7.523 3.881 11.693 3.133.578-.113 1.088 2.02.385 2.156-4.809.863-9.756-.461-13.492-3.615-.541-.469.971-2.06 1.414-1.674"/><path d="m13.887 13.221c4.168.748 8.455-.4 11.691-3.133.443-.389 1.955 1.205 1.412 1.674-3.732 3.152-8.68 4.479-13.492 3.615-.703-.135-.191-2.27.389-2.156"/></g><path fill="#fff" d="m16 49.5c0-6.461 5.314-14 16-14 10.689 0 16 7.539 16 14 0 0-5.311 0-16 0-10.686 0-16 0-16 0"/><g fill="#664e27"><path d="m15.916 49.699l2-8h28.16l2 8z"/><path d="m32 34.498c11.04 0 17 7.729 17 15v1h-34v-1c0-7.271 5.957-15 17-15m14.957 14c-.523-5.99-5.729-12-14.957-12s-14.434 6.01-14.957 12h29.914"/><circle cx="20.5" cy="26" r="4.5"/><circle cx="43.5" cy="26" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="26" r="5"/><circle cx="43.5" cy="26" r="5"/><path d="m47.7 42c-1.7-3.6-5.9-6-15.7-6-9.8 0-14 2.4-15.7 6-.9 1.9.4 5 .4 5 1.6 3.9 1.4 5 15.3 5 13.9 0 13.6-1.1 15.3-5 0 0 1.3-3.1.4-5"/></g><path d="m43.4 41c.1-.3 0-.6-.2-.8 0 0-2.5-2.2-11.1-2.2-8.6 0-11.1 2.2-11.1 2.2-.2.2-.3.5-.2.8l.2.6c.1.3.4.5.7.5h21c.3 0 .6-.2.7-.5v-.6" fill="#fff"/><g fill="#917524"><path d="m52.2 16.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m23.5 13.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f628.svg b/build/js/jsxc/lib/emojione/assets/svg/1f628.svg
index dcf7548..38cfe0b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f628.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f628.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#fff" d="m16 49.5c0-6.461 5.314-14 16-14 10.689 0 16 7.539 16 14 0 0-5.311 0-16 0-10.686 0-16 0-16 0"/><path fill="#664e27" d="m15.916 50l2.084-8h28l2.08 8z"/><path fill="#fff" d="m15.917 48.699l1-3h30.16l1 3z"/><path fill="#664e27" d="m32 34.498c11.04 0 17 7.729 17 15v1h-34v-1c0-7.271 5.959-15 17-15m14.957 14c-.523-5.99-5.729-12-14.957-12s-14.432 6.01-14.955 12h29.912"/><g fill="#ba9436"><circle cx="46.09" cy="23.786" r="9"/><circle cx="17.906" cy="23.786" r="9"/></g><circle fill="#fff" cx="45.5" cy="21.785" r="9"/><circle fill="#664e27" cx="45.5" cy="21.785" r="4.5"/><circle fill="#fff" cx="18.5" cy="21.785" r="9"/><circle fill="#664e27" cx="18.5" cy="21.785" r="4.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><circle cx="19.5" cy="24.8" r="10" fill="#fff"/><circle cx="19.5" cy="24.8" r="3.5" fill="#664e27"/><circle cx="44.5" cy="24.8" r="10" fill="#fff"/><g fill="#664e27"><circle cx="44.5" cy="24.8" r="3.5"/><path d="m47.7 44c-1.7-3.6-5.9-6-15.7-6-9.8 0-14 2.4-15.7 6-.9 1.9.4 5 .4 5 1.6 3.9 1.4 5 15.3 5 13.9 0 13.6-1.1 15.3-5 0 0 1.3-3.1.4-5"/></g><path d="m43.4 43c.1-.3 0-.6-.2-.8 0 0-2.5-2.2-11.1-2.2s-11.1 2.2-11.1 2.2c-.2.2-.3.5-.2.8l.2.6c.1.3.4.5.7.5h21c.3 0 .6-.2.7-.5v-.6" fill="#fff"/><g fill="#917524"><path d="m50.2 13.5c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.4-1 2-1.4 1.7"/><path d="m25.5 10.2c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.1.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f629.svg b/build/js/jsxc/lib/emojione/assets/svg/1f629.svg
index a169e56..248da5b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f629.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f629.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#fff" d="m16 47.5c0-6.461 5.314-14 16-14 10.689 0 16 7.539 16 14 0 0-5.311 0-16 0-10.686 0-16 0-16 0"/><g fill="#664e27"><path d="m15.916 47.699l2-8h28.16l2 8z"/><path d="m32 32.498c11.04 0 17 7.729 17 15v1h-34v-1c0-7.271 5.957-15 17-15m14.955 14c-.523-5.99-5.727-12-14.955-12s-14.434 6.01-14.957 12h29.912"/></g><g fill="#917524"><path d="m38.422 12.238c3.236 2.732 7.523 3.881 11.693 3.133.578-.113 1.088 2.02.385 2.156-4.809.863-9.756-.461-13.492-3.615-.541-.469.971-2.06 1.414-1.674"/><path d="m13.887 15.221c4.168.748 8.455-.4 11.691-3.133.443-.389 1.955 1.205 1.412 1.674-3.732 3.152-8.68 4.479-13.492 3.615-.703-.135-.191-2.27.389-2.156"/></g><g fill="#664e27"><path d="m37.11 20.449c1.549 6.831 10.617 9.261 15.374 4.12.286-.315-.07-.973-.567-1.552-4.841 2.088-10.391.602-13.538-3.627-.721.254-1.358.644-1.269 1.059"/><path d="m11.518 24.569c4.756 5.142 13.826 2.711 15.375-4.119.091-.416-.547-.808-1.269-1.061-3.146 4.229-8.696 5.717-13.536 3.629-.498.58-.856 1.236-.57 1.551"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#917524"><path d="m39.4 18.2c3.2 2.7 7.5 3.9 11.7 3.1.6-.1 1.1 2 .4 2.2-4.8.9-9.8-.5-13.5-3.6-.5-.5 1-2 1.4-1.7"/><path d="m12.9 21.2c4.2.7 8.5-.4 11.7-3.1.4-.4 2 1.2 1.4 1.7-3.7 3.2-8.7 4.5-13.5 3.6-.7-.2-.2-2.3.4-2.2"/></g><g fill="#664e27"><path d="m35.8 24.8c2 8.8 10.2 11 16.3 4.4.3-.3-.2-.6-.7-1.3-4.9 2.1-11.4.1-14.3-3.8-.8.2-1.4.2-1.3.7"/><path d="m11.8 29.2c6.1 6.6 14.3 4.4 16.3-4.4.1-.4-.5-.5-1.2-.7-3.2 4.3-9.9 5.8-14.4 3.9-.5.5-1 .8-.7 1.2"/><path d="m47.7 44c-1.7-3.6-5.9-6-15.7-6-9.8 0-14 2.4-15.7 6-.9 1.9.4 5 .4 5 1.6 3.9 1.4 5 15.3 5 13.9 0 13.6-1.1 15.3-5 0 0 1.3-3.1.4-5"/></g><path d="m43.4 43c.1-.3 0-.6-.2-.8 0 0-2.5-2.2-11.1-2.2s-11.1 2.2-11.1 2.2c-.2.2-.3.5-.2.8l.2.6c.1.3.4.5.7.5h21c.3 0 .6-.2.7-.5v-.6" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f62a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f62a.svg
index c74fa3e..d2dd9f7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f62a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f62a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m43.813 48.29c0 6.314-5.287 8.416-11.811 8.416s-11.814-2.102-11.814-8.416c0-8.328 5.289-13.699 11.814-13.699 6.521 0 11.811 5.371 11.811 13.699"/><path fill="#4c3526" d="m34.695 38.973c-.848-.021-2.148.783-1.67 2.908.238 1.074 1.738 2.373 1.738 4.107 0 3.521-5.523 3.521-5.523 0 0-1.734 1.5-3.03 1.742-4.107.477-2.125-.826-2.93-1.674-2.908-2.295.061-6.06 2.58-6.06 6.842 0 4.791 3.922 8.676 8.758 8.676s8.756-3.885 8.756-8.676c0-4.262-3.77-6.782-6.06-6.842"/><path fill="#ff717f" d="m32 50.691c-6.434 0-8.268 1.965-8.268 1.965 1.65 2.76 8.268 2.611 8.268 2.611s6.617.15 8.266-2.611c0 0-1.834-1.965-8.266-1.965"/><path fill="#52e8b6" d="m30.14 26.83c-1.268-.666-4.143 7.912-8.545 8.711-.402-.52-.867-1-1.387-1.438-4.238-3.551-10.746-2.764-14.533 1.76-3.791 4.522-3.426 11.07.81 14.616 4.238 3.551 10.746 2.762 14.533-1.762 4.854-5.795 10.786-21.02 9.122-21.887"/><g fill="#664e27"><path d="m36.41 21.35c3.264 6.197 12.653 6.197 15.917 0 .195-.378-.319-.921-.95-1.352-4.135 3.27-9.88 3.271-14.02 0-.631.432-1.145.974-.952 1.352"/><path d="m11.673 21.35c3.264 6.197 12.653 6.197 15.917.001.195-.379-.32-.922-.951-1.353-4.135 3.271-9.879 3.271-14.01.001-.631.431-1.146.973-.952 1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m43.8 48.3c0 6.3-5.3 8.4-11.8 8.4s-11.8-2.1-11.8-8.4c0-8.3 5.3-13.7 11.8-13.7 6.5 0 11.8 5.4 11.8 13.7" fill="#664e27"/><path d="m34.7 39c-.8 0-2.1.8-1.7 2.9.2 1.1 1.7 2.4 1.7 4.1 0 3.5-5.5 3.5-5.5 0 0-1.7 1.5-3 1.7-4.1.5-2.1-.8-2.9-1.7-2.9-2.3.1-6.1 2.6-6.1 6.8 0 4.8 3.9 8.7 8.8 8.7s8.8-3.9 8.8-8.7c.1-4.2-3.7-6.8-6-6.8" fill="#4c3526"/><path d="m32 50.7c-6.4 0-8.3 2-8.3 2 1.6 2.8 8.3 2.6 8.3 2.6s6.6.2 8.3-2.6c0 0-1.9-2-8.3-2" fill="#ff717f"/><path d="m30.1 26.8c-1.3-.7-4.1 7.9-8.5 8.7-.4-.5-.9-1-1.4-1.4-4.2-3.5-10.7-2.8-14.5 1.8-3.8 4.5-3.4 11.1.8 14.6 4.2 3.6 10.7 2.8 14.5-1.8 4.9-5.8 10.8-21 9.1-21.9" fill="#52e8b6"/><g fill="#664e27"><path d="m35.9 20.5c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.6.5-1.2.6-1 1"/><path d="m11.2 20.5c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.7.5-1.2.6-1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f62b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f62b.svg
index 13d66fa..3ba1a6c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f62b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f62b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m48.24 24.14c-1.447-.465-3-.658-4.561-.529-.324.025-.648.076-.971.133.111-.061.219-.129.33-.186 1.189-.611 2.422-1.148 3.738-1.633 1.313-.5 2.699-.926 4.199-1.506-1.465-.668-3.064-.893-4.664-.807-1.598.092-3.203.527-4.652 1.281-1.451.752-2.742 1.818-3.729 3.104-.969 1.285-1.703 2.785-1.799 4.412 1.469-.496 2.742-.93 4.02-1.219 1.266-.299 2.51-.48 3.781-.592 1.273-.107 2.572-.141 3.922-.141 1.357-.004 2.742.025 4.279-.004-1.076-1.126-2.451-1.835-3.891-2.313"/><path d="m22.342 20.893c-1.451-.754-3.055-1.189-4.654-1.281-1.6-.086-3.197.139-4.664.807 1.502.58 2.887 1.01 4.201 1.506 1.314.484 2.549 1.021 3.738 1.633.111.057.219.125.33.186-.324-.057-.646-.107-.971-.133-1.557-.129-3.113.064-4.561.529-1.439.479-2.814 1.188-3.895 2.314 1.539.029 2.924 0 4.279.004 1.352 0 2.65.033 3.922.141 1.273.111 2.516.293 3.783.592 1.275.289 2.549.723 4.02 1.219-.096-1.627-.83-3.127-1.797-4.412-.985-1.287-2.276-2.353-3.727-3.105"/></g><g fill="#917524"><path d="m38.424 11.24c3.234 2.732 7.523 3.881 11.691 3.133.58-.113 1.09 2.02.387 2.156-4.811.863-9.758-.461-13.492-3.615-.541-.469.969-2.06 1.414-1.674"/><path d="m13.887 14.221c4.168.748 8.455-.4 11.693-3.133.443-.389 1.953 1.205 1.412 1.674-3.734 3.152-8.682 4.479-13.492 3.615-.703-.135-.191-2.27.387-2.156"/></g><path fill="#664e27" d="m32.1 32.25c-8.906-.063-16.17 5.252-16.227 11.865-.033 3.66 1.34 9.145 5.613 9.176 3.1.021 6.484-3.523 10.461-3.498 3.93.027 7.225 3.689 10.299 3.707 3.779.025 5.844-5.461 5.873-9.16.059-6.61-7.117-12.03-16.02-12.09"/><path fill="#4c3526" d="m34.09 38.39c-.658-.016-1.67.557-1.299 2.072.186.766 1.352 1.689 1.352 2.924 0 2.508-4.291 2.508-4.291 0 0-1.234 1.166-2.158 1.352-2.924.369-1.516-.643-2.088-1.301-2.072-1.785.045-4.717 1.838-4.717 4.873 0 3.41 3.053 6.176 6.811 6.176 3.76 0 6.811-2.766 6.811-6.176-.001-3.035-2.933-4.828-4.718-4.873"/><path fill="#fff" d="m44.898 37.766h-25.798l3.685-3.036 9.215-1.52 9.21 1.52z"/><path fill="#ff717f" d="m23.611 51.51c0 0 5-2.711 8.389-2.711s8.387 2.711 8.387 2.711c-2.215-3.061-5-5.838-8.387-5.838s-6.17 2.777-8.389 5.838"/><path fill="#664e27" d="m31.947 34.18l.143.002c4.73.033 9.145 1.74 11.807 4.564 1.578 1.674 2.402 3.605 2.385 5.584-.023 2.887-1.633 7.25-4.02 7.25-.998-.004-2.301-.715-3.68-1.465-1.914-1.043-4.088-2.225-6.617-2.242h-.051-.004c-2.521 0-4.713 1.119-6.648 2.107-1.4.715-2.723 1.391-3.756 1.391-.771-.006-1.383-.275-1.928-.855-1.311-1.389-1.877-4.203-1.857-6.377.046-5.49 6.43-9.959 14.227-9.959m0-1.924c-8.836 0-16.02 5.289-16.07 11.865-.033 3.66 1.34 9.145 5.613 9.176.008 0 .018 0 .025 0 3.082 0 6.445-3.498 10.393-3.498.014 0 .029 0 .043 0 3.93.027 7.225 3.689 10.299 3.707.01 0 .018 0 .027 0 3.764 0 5.816-5.471 5.846-9.16.059-6.609-7.117-12.02-16.02-12.09-.052 0-.105 0-.156 0z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#917524"><path d="m38.4 11.2c3.2 2.7 7.5 3.9 11.7 3.1.6-.1 1.1 2 .4 2.2-4.8.9-9.8-.5-13.5-3.6-.5-.5 1-2 1.4-1.7"/><path d="m13.9 14.2c4.2.7 8.5-.4 11.7-3.1.4-.4 2 1.2 1.4 1.7-3.7 3.2-8.7 4.5-13.5 3.6-.7-.2-.2-2.3.4-2.2"/></g><path d="m32 32c-8.8-.1-15.9 5.4-16 12.3 0 3.8 1.3 9.5 5.6 9.5 3.1 0 6.5-3.8 10.4-3.8 3.9 0 7.1 4 10.2 4 3.8 0 5.8-5.7 5.8-9.5.1-6.8-7.2-12.4-16-12.5" fill="#664e27"/><path d="m39 43.2c0-3.1-3-4.9-4.8-4.9-.7 0-1.7.6-1.3 2.1.2.8 1.4 1.7 1.4 3 0 2.5-4.4 2.5-4.4 0 0-1.3 1.2-2.2 1.4-3 .4-1.5-.7-2.1-1.3-2.1-1.8 0-4.8 1.9-4.8 4.9 0 1.9 1 3.4 2.5 4.6h9c1.3-1.2 2.3-2.7 2.3-4.6" fill="#4c3526"/><path d="m32 46c-6 0-8 5-8 5s4-3 8-3 8 3 8 3-2-5-8-5" fill="#ff717f"/><path d="m41.8 37c-2.5-1.9-5.7-3-9.8-3-4.1 0-7.3 1.2-9.8 3-.4.3-.4 1 .3 1 2.4 0 9.4 0 9.4 0s7.1 0 9.4 0c.8 0 .8-.7.5-1" fill="#fff"/><g fill="#664e27"><path d="m51.7 21.1c.6.3.3 1-.2 1.1-2.7.4-5.5.9-8.3 2.4 4 .7 7.2 2.7 9 4.8.4.5-.1 1.1-.5 1-4.8-1.7-9.7-2.7-15.8-2-.5 0-.9-.2-.8-.7 1.6-7.3 10.9-10 16.6-6.6"/><path d="m12.3 21.1c-.6.3-.3 1 .2 1.1 2.7.4 5.5.9 8.3 2.4-4 .7-7.2 2.7-9 4.8-.4.5.1 1.1.5 1 4.8-1.7 9.7-2.7 15.8-2 .5 0 .9-.2.8-.7-1.6-7.3-10.9-10-16.6-6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f62c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f62c.svg
index 17c0ac1..75c5b7d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f62c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f62c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="20.5" cy="25" r="4.5"/><circle cx="43.5" cy="25" r="4.5"/></g><path fill="#fff" d="m14.352 47.862c0-6.461 5.863-14 17.648-14 11.789 0 17.646 7.539 17.646 14 0 0-5.857 0-17.646 0-11.785 0-17.648 0-17.648 0"/><g fill="#969da3"><path d="m31.5 34.29h1v13.209h-1z"/><path d="m37.719 34.62h1v12.876h-1z"/><path d="m25.279 34.62h1v12.876h-1z"/><path d="m19.06 38.662h1v8.834h-1z"/><path d="m43.939 38.662h1v8.834h-1z"/></g><path fill="#664e27" d="m32 32.862c12.18 0 18.75 7.729 18.75 15v1h-37.5v-1c0-7.271 6.572-15 18.75-15m16.496 14c-.578-5.99-6.318-12-16.496-12-10.18 0-15.918 6.01-16.494 12h32.99"/><g fill="#917524"><path d="m48.41 15.507c-4.219.355-8.06 2.576-10.482 6.05-.33.488-2.199-.66-1.797-1.252 2.789-4.01 7.225-6.574 12.1-6.984.715-.052.771 2.142.183 2.183"/><path d="m26.07 21.56c-2.418-3.477-6.262-5.697-10.482-6.05-.588-.039-.529-2.234.186-2.184 4.869.412 9.305 2.973 12.1 6.984.401.594-1.47 1.741-1.8 1.253"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m52.5 40c-2.2-3.6-7.7-6-20.5-6-12.8 0-18.3 2.4-20.5 6-1.2 1.9.5 5 .5 5 2.1 3.9 1.8 5 20 5 18.1 0 17.9-1.1 20-5 0 0 1.7-3.1.5-5"/><circle cx="20.5" cy="24.5" r="5"/><circle cx="43.5" cy="24.5" r="5"/></g><g fill="#fff"><path d="m48 40c.1-.5-.2-1.2-.6-1.5 0 0-3.9-2.5-15.4-2.5-11.5 0-15.4 2.5-15.4 2.5-.4.3-.7.9-.6 1.5l.2 1c.1.5.6 1 1.1 1h29.3c.5 0 1-.4 1.1-1l.3-1"/><path d="m32 48c6.3 0 15.2 0 15-2.1 0-.4-.1-.8-.3-1.3-.2-.5-.3-.7-1.4-.7-2.4 0-24.9 0-26.7 0-1.1 0-1.2.1-1.4.7-.1.5-.2.9-.3 1.3-.1 2.1 8.8 2.1 15.1 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f62d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f62d.svg
index ddffc32..0fb4ba9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f62d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f62d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#65b1ef"><ellipse cx="17.472" cy="59.895" rx="12.472" ry="1.5"/><ellipse cx="43.952" cy="60.2" rx="18.05" ry="1.803"/></g><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#65b1ef"><path d="m44.48 60.47c2.279 0 4.557 0 6.834 0 8.201-11.689-1.543-20.606.898-32.13-2.279 0-4.557 0-6.834 0-3.149 11.187 7.304 20.441-.898 32.13"/><path d="m19.518 60.47c-2.277 0-4.555 0-6.834 0-8.201-11.689 1.545-20.606-.896-32.13 2.277 0 4.555 0 6.834 0 3.148 11.187-7.306 20.441.896 32.13"/></g><path fill="#fff" d="m19.05 50.73c0-5.23 4.301-11.334 12.953-11.334 8.654 0 12.953 6.104 12.953 11.334 0 0-4.299 0-12.953 0-8.652 0-12.953 0-12.953 0"/><g fill="#664e27"><path d="m18.979 50.895l1.617-6.475h22.804l1.62 6.475z"/><path d="m32 38.588c8.939 0 13.764 6.258 13.764 12.143v.811h-27.528v-.812c0-5.884 4.825-12.142 13.764-12.142m12.11 11.332c-.424-4.85-4.639-9.715-12.11-9.715-7.473 0-11.686 4.865-12.11 9.715h24.22"/></g><g fill="#917524"><path d="m37.3 11.533c2.418 3.477 6.262 5.695 10.482 6.05.59.041.529 2.234-.186 2.182-4.869-.41-9.305-2.971-12.1-6.984-.401-.593 1.47-1.739 1.8-1.251"/><path d="m16.211 17.434c4.221-.357 8.06-2.576 10.484-6.05.328-.49 2.199.658 1.797 1.252-2.789 4.01-7.227 6.572-12.1 6.984-.712.051-.771-2.144-.183-2.183"/></g><g fill="#664e27"><path d="m37.11 24.362c1.549 6.831 10.617 9.261 15.374 4.12.286-.315-.07-.973-.567-1.552-4.841 2.088-10.391.602-13.538-3.627-.721.254-1.358.644-1.269 1.059"/><path d="m11.518 28.482c4.756 5.142 13.826 2.711 15.375-4.119.091-.416-.547-.808-1.269-1.061-3.146 4.229-8.696 5.717-13.536 3.629-.498.58-.856 1.236-.57 1.551"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#65b1ef"><ellipse cx="17.5" cy="59.9" rx="12.5" ry="1.5"/><ellipse cx="44" cy="60.2" rx="18" ry="1.8"/></g><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m44.7 46c-1.4-3.6-4.8-6-12.7-6-8 0-11.3 2.4-12.7 6-.7 1.9.3 5 .3 5 1.3 3.9 1.1 5 12.4 5 11.3 0 11.1-1.1 12.4-5 0 0 1.1-3.1.3-5" fill="#664e27"/><path d="m41 45c.1-.3 0-.6-.2-.8 0 0-2-2.2-8.8-2.2-6.8 0-8.8 2.2-8.8 2.2-.2.1-.2.5-.2.8l.2.6c.1.3.3.5.5.5h16.6c.2 0 .5-.2.5-.5l.2-.6" fill="#fff"/><g fill="#65b1ef"><path d="m44.5 60.5c2.3 0 4.6 0 6.8 0 8.2-9.9-1.5-20 .9-29.8-2.3 0-4.6 2.5-6.8 2.5-3.2 9.5 7.3 17.4-.9 27.3"/><path d="m19.5 60.5c-2.3 0-4.6 0-6.8 0-8.2-9.9 1.5-20-.9-29.8 2.3 0 4.6 2.5 6.8 2.5 3.2 9.5-7.3 17.4.9 27.3"/></g><g fill="#917524"><path d="m40.7 18.3c3 3 7.2 4.5 11.4 4.1.6-.1.9 2.1.2 2.2-4.9.4-9.7-1.3-13.1-4.8-.6-.5 1.1-1.9 1.5-1.5"/><path d="m12 22.4c4.2.4 8.4-1.1 11.4-4.1.4-.4 2.1 1 1.6 1.5-3.4 3.5-8.3 5.2-13.1 4.8-.9 0-.5-2.2.1-2.2"/></g><g fill="#664e27"><path d="m35.9 30.3c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.6.4-1.2.6-1 1"/><path d="m11.2 30.3c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.7.4-1.2.6-1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f62e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f62e.svg
index 0d9195c..855b53c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f62e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f62e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="38" cy="45.14" r="7"/><circle cx="20.248" cy="28.05" r="4.5"/><circle cx="42.75" cy="22.05" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="32" cy="45.1" r="7"/><circle cx="20.2" cy="25" r="4.5"/><circle cx="42.7" cy="25" r="4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f62f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f62f.svg
index 895b15c..d9b0801 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f62f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f62f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="30"/><g fill="#664e27"><circle cx="20.501" cy="26.967" r="4.5"/><circle cx="43.501" cy="26.967" r="4.5"/></g><g fill="#917524"><path d="m50.2 17.05c-3.236-2.732-7.523-3.881-11.693-3.133-.578.113-1.088-2.02-.385-2.156 4.809-.863 9.756.461 13.492 3.615.541.469-.97 2.061-1.414 1.674"/><path d="m25.487 13.764c-4.168-.748-8.455.4-11.693 3.133-.443.389-1.953-1.205-1.412-1.674 3.734-3.152 8.682-4.479 13.492-3.615.703.134.191 2.269-.387 2.156"/></g><circle fill="#664e27" cx="31.999" cy="47.23" r="3.75"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20" cy="27" r="5"/><circle cx="44" cy="27" r="5"/></g><g fill="#917524"><path d="m50.2 17c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m25.5 13.8c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.1.2 2.3-.4 2.2"/></g><circle cx="32" cy="48" r="5" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f630.svg b/build/js/jsxc/lib/emojione/assets/svg/1f630.svg
index d68e2ba..9ae7444 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f630.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f630.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m40.31 48.14c0 4.59-3.719 8.313-8.313 8.313-4.59 0-8.313-3.723-8.313-8.313 0-4.592 3.723-8.313 8.313-8.313 4.594 0 8.313 3.721 8.313 8.313"/><path fill="#fff" d="m26.18 44.781c1.162-2.01 3.332-3.359 5.816-3.359 2.486 0 4.656 1.35 5.818 3.355l-11.634.004"/><g fill="#664e27"><circle cx="43.5" cy="33" r="4.5"/><circle cx="20.5" cy="33" r="4.5"/></g><g fill="#917524"><path d="m25.578 17.906c-3.236 2.732-7.524 3.881-11.694 3.133-.578-.113-1.088 2.02-.385 2.156 4.809.863 9.756-.461 13.493-3.615.541-.469-.971-2.06-1.414-1.674"/><path d="m50.11 20.887c-4.168.748-8.455-.4-11.691-3.133-.443-.389-1.955 1.205-1.412 1.674 3.732 3.152 8.68 4.479 13.492 3.615.703-.135.191-2.27-.389-2.156"/></g><path fill="#65b1ef" d="M62,18.534c0.002,9.377-12.744,9.379-12.744,0c0-6.85,6.373-13.533,6.373-13.533S62,11.687,62,18.534z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m40.3 48.1c0 4.6-3.7 8.3-8.3 8.3-4.6 0-8.3-3.7-8.3-8.3 0-4.6 3.7-8.3 8.3-8.3 4.6 0 8.3 3.7 8.3 8.3" fill="#664e27"/><path d="m26.2 44.8c1.2-2 3.3-3.4 5.8-3.4 2.5 0 4.7 1.3 5.8 3.4h-11.6" fill="#fff"/><g fill="#664e27"><circle cx="43.5" cy="33" r="4.5"/><circle cx="20.5" cy="33" r="4.5"/></g><g fill="#917524"><path d="m25.6 17.9c-3.2 2.7-7.5 3.9-11.7 3.1-.6-.1-1.1 2-.4 2.2 4.8.9 9.8-.5 13.5-3.6.5-.5-1-2.1-1.4-1.7"/><path d="m50.1 20.9c-4.2.7-8.5-.4-11.7-3.1-.4-.4-2 1.2-1.4 1.7 3.7 3.2 8.7 4.5 13.5 3.6.7-.2.2-2.3-.4-2.2"/></g><path d="m62 18.5c0 9.4-12.7 9.4-12.7 0 0-6.9 6.4-13.5 6.4-13.5s6.3 6.7 6.3 13.5" fill="#65b1ef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f631.svg b/build/js/jsxc/lib/emojione/assets/svg/1f631.svg
index b5f772e..686c983 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f631.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f631.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="M32,2C15.432,2,2,15.431,2,32c0,4.865,15.729,22.858,23.019,27.551C26.967,60.805,29.683,62,32,62
- s5.033-1.195,6.981-2.449C46.271,54.858,62,36.865,62,32C62,15.431,48.568,2,32,2z"/><circle fill="#fff" cx="20.5" cy="24" r="9"/><circle fill="#664e27" cx="20.5" cy="24" r="2.5"/><circle fill="#fff" cx="43.5" cy="24" r="9"/><g fill="#664e27"><circle cx="43.5" cy="24" r="2.5"/><ellipse cx="32" cy="46.06" rx="8.333" ry="12.02"/></g><path fill="#4c3526" d="m33.966 41.36c-.618-.018-1.568.605-1.221 2.252.176.83 1.271 1.837 1.271 3.18 0 2.727-4.03 2.727-4.03 0 0-1.343 1.094-2.35 1.27-3.18.348-1.646-.604-2.27-1.221-2.252-1.678.047-4.429 1.997-4.429 5.297 0 3.71 2.864 6.717 6.395 6.717 3.529 0 6.394-3.01 6.394-6.717 0-3.3-2.753-5.25-4.428-5.297"/><path fill="#ff717f" d="m32 51.857c-3.864 0-4.965 1.133-4.965 1.133.991 2.138 2.845 3.579 4.965 3.579s3.972-1.44 4.964-3.579c0 0-1.101-1.133-4.964-1.133"/><g fill="#917524"><path d="m22.682 7.701c-2.418 3.477-6.262 5.695-10.483 6.05-.588.041-.527 2.234.187 2.183 4.868-.41 9.305-2.97 12.1-6.984.4-.594-1.473-1.739-1.801-1.251"/><path d="m51.8 13.601c-4.22-.356-8.06-2.575-10.482-6.05-.327-.49-2.2.658-1.797 1.252 2.789 4.01 7.225 6.572 12.1 6.983.713.052.771-2.142.182-2.182"/></g><g fill="#d8a941"><path d="m48.33 45.703c4.04-2.893 4.738-8.977 9.928-10.904 6.475-2.404 2.727 1.191 2.02 6.791-.982 7.747-6.912 12.19-7.776 18.547-.064.463-.001 1.863-.001 1.863h-13.706c0 0 .133-2.714 0-3.61-.422-2.836 1.669-7.06 9.539-12.687"/><path d="m15.667 45.703c-4.04-2.893-4.738-8.977-9.929-10.904-6.474-2.404-2.726 1.191-2.02 6.791.981 7.747 6.912 12.19 7.776 18.547.063.463 0 1.863 0 1.863h13.706c0 0-.133-2.714 0-3.61.423-2.836-1.668-7.06-9.538-12.687"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-16.5 0-30 13.4-30 30 0 4.9 15.8 22.9 23 27.6 2 1.3 4.7 2.4 7 2.4 2.3 0 5-1.2 7-2.4 7.3-4.7 23-22.7 23-27.6 0-16.6-13.4-30-30-30" fill="#ffdd67"/><path d="m30.5 24.7c0 5.5-4.5 10-10 10-5.5 0-10-4.5-10-10 0-5.5 4.4-10 10-10 5.5 0 10 4.5 10 10" fill="#fff"/><path d="m24 24.7c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5c2 0 3.5 1.6 3.5 3.5" fill="#664e27"/><path d="m53.5 24.7c0 5.5-4.5 10-10 10-5.5 0-10-4.5-10-10 0-5.5 4.5-10 10-10 5.5 0 10 4.5 10 10" fill="#fff"/><g fill="#664e27"><path d="m47 24.7c0 1.9-1.6 3.5-3.5 3.5-2 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5c1.9 0 3.5 1.6 3.5 3.5"/><path d="m40.4 46.1c0 6.6-3.7 12-8.4 12-4.6 0-8.3-5.4-8.3-12 0-6.6 3.8-12 8.3-12 4.6-.1 8.4 5.3 8.4 12"/></g><path d="m34 41.4c-.6 0-1.6.6-1.2 2.3.2.8 1.3 1.8 1.3 3.2 0 2.7-4 2.7-4 0 0-1.3 1.1-2.3 1.3-3.2.4-1.6-.6-2.3-1.2-2.3-1.7 0-4.5 2-4.5 5.3 0 3.7 2.9 6.7 6.4 6.7 3.6 0 6.4-3 6.4-6.7-.1-3.3-2.8-5.3-4.5-5.3" fill="#4c3526"/><path d="m32 51.9c-3.9 0-4.9 1.1-4.9 1.1 1 2.1 2.8 3.6 4.9 3.6 2.2 0 4-1.4 5-3.6 0 0-1.1-1.1-5-1.1" fill="#ff717f"/><g fill="#917524"><path d="m22.7 7.7c-2.4 3.5-6.2 5.7-10.5 6.1-.6 0-.5 2.2.2 2.2 4.9-.4 9.3-3 12.1-7 .4-.6-1.5-1.8-1.8-1.3"/><path d="m51.8 13.6c-4.2-.4-8-2.6-10.5-6.1-.3-.5-2.2.7-1.8 1.3 2.8 4 7.2 6.6 12.1 7 .7 0 .8-2.2.2-2.2"/></g><g fill="#d8a941"><path d="m48.3 45.7c4-2.9 4.7-9 10-10.9 6.4-2.4 2.7 1.2 2 6.8-1 7.7-6.9 12.2-7.8 18.5-.1.5 0 1.9 0 1.9h-13.7c0 0 .2-2.7 0-3.6-.4-2.8 1.7-7.1 9.5-12.7"/><path d="m15.7 45.7c-4-2.9-4.7-9-10-10.9-6.4-2.4-2.7 1.2-2 6.8 1 7.7 6.9 12.2 7.8 18.5.1.5 0 1.9 0 1.9h13.6c0 0-.1-2.7 0-3.6.6-2.8-1.5-7.1-9.4-12.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f632.svg b/build/js/jsxc/lib/emojione/assets/svg/1f632.svg
index 58f83d3..703ddf1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f632.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f632.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><circle fill="#664e27" cx="31.999" cy="47.28" r="8.721"/><g fill="#fff"><path d="m25.896 43.754c1.219-2.106 3.497-3.524 6.104-3.524s4.885 1.417 6.104 3.521l-12.208.003"/><circle cx="20.248" cy="29.14" r="9"/></g><circle fill="#664e27" cx="20.249" cy="29.14" r="4.5"/><circle fill="#fff" cx="43.75" cy="29.14" r="9"/><circle fill="#664e27" cx="43.75" cy="29.14" r="4.5"/><g fill="#917524"><path d="m50.2 15.777c-3.236-2.732-7.523-3.881-11.693-3.133-.578.113-1.088-2.02-.385-2.156 4.809-.863 9.756.461 13.492 3.615.541.469-.971 2.061-1.414 1.674"/><path d="m25.488 12.494c-4.168-.748-8.455.4-11.693 3.133-.443.389-1.953-1.205-1.412-1.674 3.734-3.152 8.682-4.479 13.492-3.615.703.135.191 2.269-.387 2.156"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><circle cx="19" cy="29" r="11" fill="#fff"/><path d="m24 29c0 2.8-2.2 5-5 5-2.8 0-5-2.2-5-5s2.2-5 5-5c2.8 0 5 2.2 5 5" fill="#664e27"/><path d="m56 29c0 6.1-4.9 11-11 11-6.1 0-11-4.9-11-11 0-6.1 4.9-11 11-11 6.1 0 11 4.9 11 11" fill="#fff"/><path d="m50 29c0 2.8-2.2 5-5 5-2.8 0-5-2.2-5-5s2.2-5 5-5c2.8 0 5 2.2 5 5" fill="#664e27"/><g fill="#917524"><path d="m50.2 15.8c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m25.5 12.5c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g><circle cx="32" cy="49" r="9" fill="#664e27"/><path d="m26 46c1.2-2.4 3.4-4 6-4 2.6 0 4.8 1.6 6 4h-12" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f633.svg b/build/js/jsxc/lib/emojione/assets/svg/1f633.svg
index e377267..8be56d3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f633.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f633.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffb0ae" cx="32" cy="32" r="30"/><g fill="#ff717f"><circle cx="52.811" cy="37.14" r="8"/><circle cx="11.19" cy="37.14" r="8"/></g><g fill="#7c4545"><path d="m54.645 20.627c-2.713-3.253-6.736-5.129-10.973-5.116-.588.011-.721-2.18-.004-2.19 4.885-.015 9.527 2.148 12.66 5.903.451.555-1.314 1.86-1.683 1.403"/><path d="m20.326 15.36c-4.234-.013-8.257 1.863-10.972 5.116-.369.46-2.133-.848-1.681-1.403 3.13-3.753 7.772-5.918 12.659-5.903.717.011.582 2.202-.006 2.19"/></g><circle fill="#6d3737" cx="32" cy="49.47" r="4.5"/><path fill="#fff" d="m29.5 29.14c0 4.971-4.03 9-9 9-4.97 0-9-4.03-9-9 0-4.968 4.03-9 9-9 4.969 0 9 4.03 9 9"/><circle fill="#6d3737" cx="20.5" cy="29.14" r="4.5"/><path fill="#fff" d="m52.5 29.14c0 4.971-4.03 9-9 9-4.971 0-9-4.03-9-9 0-4.968 4.03-9 9-9 4.969 0 9 4.03 9 9"/><circle fill="#6d3737" cx="43.5" cy="29.14" r="4.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#ff717f"><circle cx="52.8" cy="37.1" r="8"/><circle cx="11.2" cy="37.1" r="8"/></g><g fill="#917524"><path d="m54.6 20.6c-2.7-3.3-6.7-5.1-11-5.1-.6 0-.7-2.2 0-2.2 4.9 0 9.5 2.1 12.7 5.9.5.6-1.3 1.9-1.7 1.4"/><path d="m20.3 15.4c-4.2 0-8.3 1.9-11 5.1-.4.5-2.1-.8-1.7-1.4 3.1-3.8 7.8-5.9 12.7-5.9.7 0 .6 2.2 0 2.2"/></g><circle cx="32" cy="49.5" r="4.5" fill="#664e27"/><path d="m29.5 29.1c0 5-4 9-9 9-5 0-9-4-9-9 0-5 4-9 9-9 5 0 9 4.1 9 9" fill="#fff"/><circle cx="20.5" cy="29.1" r="4.5" fill="#664e27"/><path d="m52.5 29.1c0 5-4 9-9 9-5 0-9-4-9-9 0-5 4-9 9-9 5 0 9 4.1 9 9" fill="#fff"/><circle cx="43.5" cy="29.1" r="4.5" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f634.svg b/build/js/jsxc/lib/emojione/assets/svg/1f634.svg
index 408ebe2..41beef9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f634.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f634.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m62 32c0 16.567-10.766 30-30 30-16.569 0-30-13.434-30-30 0-16.569 13.431-30 30-30 16.568 0 30 13.431 30 30"/><g fill="#467591"><path d="m26.824 21.283c-.213-.404-.686-.557-1.059-.348l-2 1.162.668-4.975c.025-.184-.012-.373-.098-.539l-.637-1.207c-.104-.193-.271-.34-.471-.406-.199-.068-.41-.045-.588.061l-4.941 2.865c-.176.104-.307.275-.359.488-.051.213-.021.441.08.637l.672 1.27c.215.406.686.559 1.057.348l1.867-1.082-.66 4.881c-.023.184.01.373.098.541l.67 1.268c.182.342.547.508.881.42.061-.018.119-.039.176-.074l5.04-2.914c.178-.107.307-.281.359-.49.055-.215.025-.439-.078-.635l-.67-1.271"/><path d="m40.5 8.07c-.113-.188-.287-.32-.488-.371l-7.87-1.979c-.416-.105-.824.168-.91.611l-.379 1.947c-.043.213-.002.436.109.619.113.189.289.32.49.371l3.614.91-5.471 4.732c-.133.115-.225.275-.26.453l-.379 1.947c-.041.211 0 .434.113.623.111.186.287.316.488.367l8.02 2.02c.111.027.221.027.328.004.088-.018.174-.053.252-.105.172-.115.289-.297.33-.512l.377-1.943c.086-.441-.184-.887-.6-.992l-3.832-.963 5.563-4.82c.133-.111.223-.275.258-.455l.361-1.842c.042-.212.003-.435-.11-.62"/><path d="m54.977 22.416c.189-.068.342-.209.428-.389l1.154-2.461c.178-.377.018-.83-.365-1.01l-5.834-2.756 10.125-5.03c.152-.074.275-.199.348-.354l1.096-2.338c.178-.377.018-.828-.363-1.01l-10.582-5c-.379-.178-.83-.016-1.01.361l-1.16 2.468c-.178.379-.018.83.363 1.01l5.543 2.619-9.971 4.945c-.152.076-.275.201-.346.354l-1.156 2.457c-.084.182-.094.391-.025.58.037.105.1.201.178.279.061.061.133.111.213.148l10.781 5.094c.182.088.391.098.579.032"/></g><g fill="#664e27"><path d="m49.969 45.17c.789 1.223 1.057 3.629-.643 4.725-1.383.889-3.65.65-5.416 1.787-1.787 1.154-2.533 3.309-3.928 4.207-1.918 1.238-3.723-.162-4.506-1.371-1.41-2.189.689-6.05 4.691-8.637 4-2.58 8.392-2.899 9.802-.711"/><path d="m38.787 33.986c5.577 4.237 14.09.269 14.424-6.727.018-.426-.678-.7-1.431-.824-2.366 4.712-7.573 7.141-12.702 5.924-.39.658-.627 1.367-.291 1.627"/><path d="m16.366 44.44c5.577 4.238 14.09.27 14.427-6.726.016-.426-.68-.701-1.434-.824-2.365 4.712-7.572 7.14-12.701 5.924-.39.658-.627 1.366-.292 1.626"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,16.6-10.8,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2S62,15.4,62,32z" fill="#ffdd67"/><g fill="#467591"><path d="m26.8 21.3c-.2-.4-.7-.6-1.1-.3l-2 1.2.7-5c0-.2 0-.4-.1-.5l-.6-1.2c-.1-.2-.3-.3-.5-.4-.2-.1-.4 0-.6.1l-4.9 2.9c-.2.1-.3.3-.4.5-.1.2 0 .4.1.6l.7 1.3c.2.4.7.6 1.1.3l1.9-1.1-.7 4.9c0 .2 0 .4.1.5l.7 1.3c.2.3.5.5.9.4.1 0 .1 0 .2-.1l5-2.9c.2-.1.3-.3.4-.5.1-.2 0-.4-.1-.6l-.8-1.4"/><path d="m40.5 8.1c-.1-.2-.3-.3-.5-.4l-7.9-2c-.4-.1-.8.2-.9.6l-.4 1.9c0 .2 0 .4.1.6.1.2.3.3.5.4l3.6.9-5.5 4.7c-.1.1-.2.3-.3.5l-.2 2c0 .2 0 .4.1.6.1.2.3.3.5.4l8 2c.1 0 .2 0 .3 0 .1 0 .2-.1.3-.1.2-.1.3-.3.3-.5l.4-1.9c.1-.4-.2-.9-.6-1l-3.8-1 5.5-4.8c.1-.1.2-.3.3-.5l.4-1.8c0-.2-.1-.4-.2-.6"/><path d="m55 22.4c.2-.1.3-.2.4-.4l1.2-2.5c.2-.4 0-.8-.4-1l-5.8-2.8 10.1-5c.2-.1.3-.2.3-.4l1.1-2.3c.2-.4 0-.8-.4-1l-10.5-4.9c-.4-.2-.8 0-1 .4l-1.2 2.5c-.2.4 0 .8.4 1l5.5 2.6-10 4.9c-.2.1-.3.2-.3.4l-1.2 2.5c-.1.2-.1.4 0 .6 0 .1.1.2.2.3.1.1.1.1.2.1l10.8 5.1c.2 0 .4 0 .6-.1"/></g><g fill="#664e27"><path d="m50 45.2c.8 1.2 1.1 3.6-.6 4.7-1.4.9-3.7.7-5.4 1.8-1.8 1.2-2.5 3.3-3.9 4.2-1.9 1.2-3.7-.2-4.5-1.4-1.4-2.2.7-6.1 4.7-8.6 3.9-2.6 8.3-2.9 9.7-.7"/><path d="m38.3 33.6c7.2 5.4 14.9 1.8 15.3-7.1 0-.5-.6-.4-1.4-.5-2.4 4.8-8.7 7.4-13.5 6.3-.3.7-.7 1.1-.4 1.3"/><path d="m15.9 44.1c7.2 5.4 14.9 1.8 15.3-7.1 0-.5-.6-.4-1.4-.5-2.4 4.8-8.7 7.4-13.5 6.3-.3.6-.8 1-.4 1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f635.svg b/build/js/jsxc/lib/emojione/assets/svg/1f635.svg
index 3ed3525..6556452 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f635.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f635.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><ellipse fill="#664e27" cx="32" cy="47.17" rx="7.64" ry="9.666"/><path fill="#fff" d="m26.654 43.26c1.068-2.336 3.063-3.906 5.348-3.906s4.279 1.57 5.346 3.902l-10.694.004"/><g fill="#664e27"><path d="m28.611 19.846l-12.152 12.154c-.77.768-3.555-2.02-2.785-2.785l12.154-12.152c.768-.77 3.553 2.01 2.783 2.783"/><path d="m25.826 32l-12.154-12.154c-.768-.768 2.02-3.553 2.785-2.783l12.154 12.152c.768.769-2.02 3.553-2.785 2.785"/><path d="m50.33 19.846l-12.154 12.154c-.77.768-3.553-2.02-2.783-2.785l12.152-12.152c.769-.77 3.553 2.01 2.785 2.783"/><path d="m47.545 32l-12.152-12.154c-.77-.768 2.01-3.553 2.783-2.783l12.152 12.152c.77.769-2.02 3.553-2.783 2.785"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m28.6 19.8l-12.1 12.2c-.8.8-3.6-2-2.8-2.8l12.2-12.2c.7-.7 3.5 2.1 2.7 2.8"/><path d="m25.8 32l-12.1-12.2c-.8-.8 2-3.6 2.8-2.8l12.2 12.2c.7.8-2.1 3.6-2.9 2.8"/><path d="m50.3 19.8l-12.1 12.2c-.8.8-3.6-2-2.8-2.8l12.2-12.2c.7-.7 3.5 2.1 2.7 2.8"/><path d="m47.5 32l-12.1-12.2c-.8-.8 2-3.6 2.8-2.8l12.2 12.2c.7.8-2.1 3.6-2.9 2.8"/><circle cx="32" cy="47" r="9"/></g><path d="m26 44c1.2-2.4 3.4-4 6-4 2.6 0 4.8 1.6 6 4h-12" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f636.svg b/build/js/jsxc/lib/emojione/assets/svg/1f636.svg
index 6a07bac..9ad70bc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f636.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f636.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="20.5" cy="28.467" r="4.5"/><circle cx="43.5" cy="28.467" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="28.5" r="5"/><circle cx="43.5" cy="28.5" r="5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f637.svg b/build/js/jsxc/lib/emojione/assets/svg/1f637.svg
index 80a2c6c..2fcc6b5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f637.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f637.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m18.199 47.43l-8.957 4.102c.826.961 1.707 1.873 2.648 2.725l7.58-3.564-1.271-3.263"/><path d="m17.12 35.12l-15.11-3.457c0 .113-.008.224-.008.337 0 1.114.064 2.211.184 3.293l14.156 3.238.781-3.411"/><path d="m54.758 51.53l-8.957-4.102-1.271 3.262 7.582 3.564c.939-.851 1.82-1.763 2.646-2.724"/><path d="m47.66 38.533l14.156-3.238c.12-1.082.184-2.18.184-3.294 0-.113-.006-.225-.008-.338l-15.11 3.458.781 3.412"/></g><path opacity=".1" d="m49.863 39.873c0 10.563-7.998 19.13-17.863 19.13s-17.861-8.564-17.861-19.13c0-10.573 10.377-8.54 17.861-8.54 7.486 0 17.863-2.033 17.863 8.54"/><path fill="#fff" d="m49.5 39.07c0 9.967-7.836 18.05-17.502 18.05s-17.502-8.08-17.502-18.05c0-9.975 10.168-8.06 17.502-8.06s17.502-1.918 17.502 8.06"/><g fill="#664e27"><path d="m27.7 22.912c-4.757-5.142-13.826-2.711-15.375 4.119-.091.416.547.807 1.268 1.061 3.147-4.229 8.697-5.717 13.537-3.628.498-.58.854-1.238.57-1.552"/><path d="m51.675 27.03c-1.549-6.83-10.618-9.261-15.374-4.121-.287.316.07.975.568 1.553 4.841-2.088 10.389-.602 13.536 3.627.722-.254 1.36-.643 1.27-1.059"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#fff"><path d="m18.2 47.4l-9 4.1c.8 1 1.7 1.9 2.6 2.7l7.6-3.6-1.2-3.2"/><path d="m17.1 35.1l-15.1-3.4c0 .1 0 .2 0 .3 0 1.1.1 2.2.2 3.3l14.2 3.2.7-3.4"/><path d="m54.8 51.5l-9-4.1-1.3 3.3 7.6 3.6c1-.9 1.8-1.8 2.7-2.8"/><path d="m47.7 38.5l14.2-3.2c.1-1.1.2-2.2.2-3.3 0-.1 0-.2 0-.3l-15.1 3.5.7 3.3"/></g><path d="m49.9 39.9c0 10.6-8 19.1-17.9 19.1s-17.9-8.6-17.9-19.1c0-10.6 10.4-8.5 17.9-8.5 7.5-.1 17.9-2.1 17.9 8.5" opacity=".1"/><path d="m49.5 39.1c0 10-7.8 18-17.5 18s-17.5-8.1-17.5-18c0-10 10.2-8.1 17.5-8.1s17.5-1.9 17.5 8.1" fill="#fff"/><g fill="#664e27"><path d="m35.8 20.8c2 8.8 10.2 11 16.3 4.4.3-.3-.2-.6-.7-1.3-4.9 2.1-11.4.1-14.3-3.8-.8.2-1.4.2-1.3.7"/><path d="m11.8 25.2c6.1 6.6 14.3 4.4 16.3-4.4.1-.4-.5-.5-1.2-.7-3.2 4.3-9.9 5.8-14.4 3.9-.5.5-1 .8-.7 1.2"/></g><g fill="#917524"><path d="m53.2 17c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 13.7c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f638.svg b/build/js/jsxc/lib/emojione/assets/svg/1f638.svg
index e9ac891..6e8aa84 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f638.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f638.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><g fill="#4c5359"><path d="m36.04 36.52c-.811-.945-3.299-1.02-4.04-1.02-.742 0-3.232.074-4.04 1.02-.576.672-.131 2.344 1.406 3.785.969.908 1.895 1.195 2.637 1.195.744 0 1.67-.287 2.639-1.195 1.535-1.442 1.982-3.114 1.404-3.785"/><path d="m49.34 44c0 6.04-5.758 13.1-17.337 13.1-11.583 0-17.337-7.05-17.337-13.1 0 0 5.754 0 17.337 0 11.579 0 17.337 0 17.337 0"/></g><path fill="#363b40" d="m33.689 45.34c-.532-.014-1.348.482-1.049 1.805.151.666 1.091 1.469 1.091 2.544 0 2.186-3.461 2.186-3.461 0 0-1.075.938-1.878 1.09-2.544.3-1.322-.518-1.818-1.047-1.805-1.44.038-3.802 1.601-3.802 4.243 0 2.971 2.458 5.379 5.489 5.379 3.03 0 5.488-2.408 5.488-5.379.001-2.642-2.361-4.205-3.799-4.243"/><path fill="#ff717f" d="m41.577 54.55c-2.533-1.815-5.712-2.96-9.577-2.96s-7.05 1.145-9.576 2.96c2.531 1.814 5.711 2.964 9.576 2.964s7.04-1.15 9.577-2.964"/><g fill="#fff"><path d="m16.886 43.706l3.842 5.614 3.842-5.614z"/><path d="m20.729 44h22.544v3h-22.544z"/><path d="m39.43 43.706l3.84 5.614 3.84-5.614z"/></g><g fill="#4c5359"><path d="m32 57.85c-11.854 0-18.25-7.135-18.25-13.849v-1h36.5v1c0 6.714-6.396 13.849-18.25 13.849m-16.396-12.85c.46 5.756 6.173 11.35 16.396 11.35s15.937-5.594 16.394-11.35h-32.79"/><g fill-rule="evenodd"><path d="m52.19 30.24c0 1.922.289 1.438 1.244 2.699-4.02 3.616-6.482-1.404-11.239-1.806-3.505-.296-4.901 1.374-4.901 1.374.268-1.081-.018-2.353-1.117-2.765 3.732-2.692 7.298-2.99 10.731-.744 2.614 1.712 4.405 2.4 5.282 1.242"/><path d="m11.809 30.24c0 1.922-.29 1.438-1.244 2.699 4.02 3.616 6.483-1.404 11.239-1.806 3.504-.296 4.902 1.374 4.902 1.374-.269-1.081.017-2.353 1.117-2.765-3.733-2.692-7.299-2.99-10.732-.744-2.614 1.712-4.406 2.4-5.282 1.242"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1 11.9 0 22-7 26.1-11.1 0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><g fill="#4c5359"><path d="m36 36c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.4 2-3.1 1.4-3.8"/><path d="m27 32.9c-1.9-5.1-4.7-7.7-7.5-7.7s-5.6 2.6-7.5 7.7c-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7 2.2 0 4.4.8 6.2 2.7.5.6 1.5-.4 1.3-.9"/><path d="m51.9 32.9c-1.9-5.1-4.7-7.7-7.5-7.7-2.8 0-5.6 2.6-7.5 7.7-.2.5.8 1.4 1.3.9 1.8-1.9 4-2.7 6.2-2.7s4.4.8 6.2 2.7c.6.6 1.5-.4 1.3-.9"/><path d="m49 45.4c0-.8-.5-1.8-1.8-2.1-3.5-.6-8.6-1.3-15.2-1.3-6.6 0-11.7.7-15.2 1.3-1.3.3-1.8 1.3-1.8 2.1 0 9.6 2.7 12.6 13.8 12.6h6.5c11 0 13.7-3 13.7-12.6"/></g><g fill="#fff"><path d="m45.1 46.2c.1-.5 0-1-.4-1.1 0 0-5.7-1.1-12.7-1.1-7 0-12.7 1.1-12.7 1.1-.4.1-.6.6-.4 1.1l.9 2.9c.1.5.6.9 1 .9h22.5c.4 0 .8-.4 1-.9l.8-2.9"/><path d="m32 56c4.9 0 12 0 11.8-2.1 0-.4-.1-.8-.2-1.3-.1-.5-.2-.7-1.1-.7-1.9 0-19.5 0-21 0-.8 0-.9.1-1.1.7-.1.5-.2.9-.2 1.3-.2 2.1 6.9 2.1 11.8 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f639.svg b/build/js/jsxc/lib/emojione/assets/svg/1f639.svg
index 86b16f3..1eb62f3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f639.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f639.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><g fill="#4c5359"><path d="m36.04 36.518c-.811-.946-3.299-1.018-4.04-1.018s-3.232.072-4.04 1.018c-.576.674-.131 2.344 1.404 3.785.971.91 1.897 1.197 2.639 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path d="m46.38 43.72c0 5.796-4.732 12.561-14.25 12.561-9.521 0-14.25-6.765-14.25-12.561 0 0 4.729 0 14.25 0 9.518 0 14.25 0 14.25 0"/></g><path fill="#363b40" d="m33.896 45c-.557-.013-1.41.463-1.098 1.73.158.639 1.141 1.409 1.141 2.44 0 2.095-3.62 2.095-3.62 0 0-1.031.982-1.802 1.141-2.44.313-1.268-.542-1.743-1.096-1.73-1.507.036-3.978 1.534-3.978 4.069 0 2.849 2.571 5.158 5.743 5.158s5.742-2.31 5.742-5.158c0-2.535-2.472-4.03-3.975-4.069"/><path fill="#ff717f" d="m40 53.839c-2.083-1.74-4.695-2.839-7.872-2.839s-5.79 1.099-7.871 2.839c2.081 1.739 4.694 2.841 7.871 2.841s5.789-1.102 7.872-2.841"/><g fill="#4c5359"><path d="m32.13 57c-9.743 0-15-6.843-15-13.28v-.72h30v.72c0 6.437-5.257 13.28-15 13.28m-13.476-12.561c.378 5.519 5.073 11.12 13.476 11.12s13.1-5.603 13.475-11.12h-26.951"/><path d="m49.24 29.467c-1.447-.465-3-.656-4.561-.529-.324.027-.646.078-.971.135.111-.061.219-.129.33-.188 1.189-.611 2.424-1.146 3.738-1.633 1.314-.498 2.699-.924 4.201-1.506-1.467-.668-3.064-.893-4.664-.807-1.6.092-3.203.527-4.654 1.283-1.451.75-2.742 1.818-3.729 3.102-.967 1.285-1.701 2.785-1.797 4.412 1.467-.496 2.74-.928 4.02-1.219 1.268-.299 2.51-.479 3.783-.592 1.271-.107 2.57-.141 3.922-.141 1.355-.004 2.74.025 4.279-.004-1.078-1.126-2.453-1.835-3.893-2.313"/><path d="m21.34 26.22c-1.449-.756-3.055-1.191-4.652-1.283-1.6-.086-3.199.139-4.664.807 1.5.582 2.887 1.01 4.199 1.506 1.316.486 2.549 1.021 3.738 1.633.111.059.219.127.33.188-.322-.057-.646-.107-.971-.135-1.557-.127-3.113.064-4.561.529-1.439.479-2.814 1.188-3.893 2.314 1.537.029 2.922 0 4.279.004 1.35 0 2.648.033 3.922.141 1.271.113 2.516.293 3.781.592 1.275.291 2.549.723 4.02 1.219-.096-1.627-.83-3.127-1.799-4.412-.985-1.285-2.276-2.353-3.727-3.103"/></g><g fill="#65b1ef"><path d="m59.44 37.873c7.307 7.68-2.621 18.12-9.93 10.438-5.336-5.611-5.578-16.301-5.578-16.301s10.174.256 15.508 5.863"/><path d="m14.487 48.31c-7.304 7.679-17.236-2.758-9.927-10.438 5.336-5.607 15.508-5.863 15.508-5.863s-.245 10.693-5.581 16.301"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1s22-7 26.1-11.1c0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><g fill="#65b1ef"><path d="m59.4 37.9c7.3 7.7-2.6 18.1-9.9 10.4-5.3-5.6-5.6-16.3-5.6-16.3s10.2.3 15.5 5.9"/><path d="m14.5 48.3c-7.3 7.7-17.2-2.7-9.9-10.4 5.3-5.6 15.5-5.9 15.5-5.9s-.3 10.7-5.6 16.3"/></g><g fill="#4c5359"><path d="m51.7 24.9c.6.3.3 1-.2 1.1-2.7.4-5.5.9-8.3 2.4 4 .7 7.2 2.7 9 4.8.4.5-.1 1.1-.5 1-4.8-1.7-9.7-2.7-15.8-2-.5 0-.9-.2-.8-.7 1.6-7.3 10.9-10 16.6-6.6"/><path d="m12.3 24.9c-.6.3-.3 1 .2 1.1 2.7.4 5.5.9 8.3 2.4-4 .7-7.2 2.7-9 4.8-.4.5.1 1.1.5 1 4.8-1.7 9.7-2.7 15.8-2 .5 0 .9-.2.8-.7-1.6-7.3-10.9-10-16.6-6.6"/><path d="m36 38c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.4 2-3.1 1.4-3.8"/><path d="m45 46.7c0-.6-.4-1.4-1.4-1.6-2.6-.6-6.6-1.1-11.6-1.1-5 0-9 .5-11.6 1-1 .2-1.4 1-1.4 1.6 0 5.7 4.3 11.4 13 11.4 8.7 0 13-5.7 13-11.3"/></g><path d="m25.5 54.6c1.9.9 4 1.4 6.5 1.4 2.5 0 4.6-.5 6.5-1.4-1.8-1-4-1.6-6.5-1.6-2.5 0-4.7.6-6.5 1.6" fill="#ff717f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f63a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f63a.svg
index f3ebd4a..c708d74 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f63a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f63a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.889,14.677C39.816,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.254-13.253c0 0 1.938-7.285 11.615-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.836 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.809-18.455C24.186,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.256-13.253c0,0-1.939-7.285-11.617-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.166 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.846-.881 1.416-1.633 1.662-2.162 1.629-2.643 2.143-5.342 2.143-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.645-4.902-17.05-4.902s-12.941 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .514 2.694 2.141 5.339.25.534.834 1.304 1.699 2.202.023.024.043.049.066.072v-.004c4.067 4.183 14.213 11.141 26.09 11.141 11.883 0 22.03-6.96 26.1-11.142v.005c.035-.036.066-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><g fill="#4c5359"><path d="m36.04 38.767c-.811-.945-3.299-1.018-4.04-1.018-.742 0-3.232.072-4.04 1.018-.576.674-.131 2.344 1.406 3.785.969.91 1.895 1.197 2.637 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path d="m43.744 45.861c0 4.74-3.9 10.275-11.744 10.275s-11.742-5.535-11.742-10.275c0 0 3.898 0 11.742 0s11.744 0 11.744 0"/></g><path fill="#ff717f" d="m32 51.38c-4.539 0-5.834 3.345-5.834 3.345.688 1.49 10.98 1.489 11.666 0 0 0-1.295-3.345-5.832-3.345"/><path fill="#4c5359" d="m32 56.87c-8.104 0-12.477-5.671-12.477-11.01v-.733h24.953v.733c.001 5.338-4.372 11.01-12.476 11.01m-10.977-10.275c.385 4.396 4.205 8.808 10.977 8.808 6.773 0 10.592-4.412 10.977-8.808h-21.954"/><path fill="#fff" d="m24.299 30.84c0 0-.484-4.569-4.508-6.03-4.539-1.651-7.637 2.386-8.477 4.694-1.24 3.407.316 7.133.777 7.992.307.566 3.66 3.241 11.221.709.001 0 1.881-3.789.987-7.361"/><path fill="#b2b6b8" d="m24.299 30.84c-.404-1.559-1.133-3.039-2.254-4.094-.547-.535-1.18-.962-1.869-1.245-.346-.146-.695-.255-1.074-.347-.338-.083-.719-.125-1.076-.139-1.451-.041-2.832.578-3.896 1.6-1.061 1.01-1.938 2.329-2.289 3.713-.383 1.406-.313 2.951.021 4.435.16.743.391 1.487.688 2.173l.113.243c-.031-.054.014.022.018.026.002 0 0-.005-.002-.006l.055.063c.098.103.23.209.369.312.283.203.602.384.941.532 1.365.595 2.949.792 4.518.751 1.586-.006 3.168-.31 4.752-.655-1.479.668-3.057 1.128-4.691 1.388-1.635.219-3.361.197-5.01-.396-.412-.147-.814-.334-1.207-.574-.195-.124-.385-.262-.576-.441-.049-.048-.092-.091-.15-.159l-.098-.124-.063-.102-.156-.299c-.379-.78-.662-1.574-.879-2.4-.416-1.645-.529-3.423-.09-5.15.49-1.739 1.49-3.206 2.791-4.381 1.305-1.15 3.121-1.924 4.922-1.71.445.051.867.126 1.307.269.396.126.811.285 1.189.498.768.412 1.447.973 1.984 1.634 1.048 1.342 1.638 2.963 1.714 4.585"/><path fill="#fff" d="m39.699 30.84c0 0 .484-4.568 4.508-6.03 4.539-1.651 7.637 2.387 8.477 4.694 1.24 3.407-.316 7.133-.777 7.992-.307.566-3.66 3.241-11.221.709 0 0-1.881-3.789-.987-7.361"/><path fill="#b2b6b8" d="m39.699 30.84c.076-1.622.666-3.243 1.715-4.587.537-.661 1.219-1.222 1.984-1.634.379-.213.793-.372 1.191-.498.438-.143.859-.218 1.307-.269 1.799-.214 3.615.56 4.92 1.71 1.301 1.175 2.301 2.642 2.791 4.382.439 1.728.326 3.505-.088 5.15-.219.825-.502 1.619-.881 2.399l-.156.299-.063.102-.098.124c-.059.068-.102.111-.15.159-.191.18-.381.317-.576.441-.393.24-.795.427-1.207.574-1.65.593-3.377.614-5.01.396-1.635-.26-3.213-.72-4.691-1.388 1.584.346 3.166.649 4.752.655 1.568.041 3.152-.156 4.518-.751.34-.148.658-.329.941-.532.139-.103.271-.209.369-.312l.055-.063c-.002.001-.004.006-.002.007.004-.005.049-.081.018-.027l.113-.243c.297-.686.527-1.43.688-2.173.334-1.483.404-3.03.021-4.435-.352-1.384-1.229-2.705-2.289-3.713-1.064-1.021-2.445-1.641-3.896-1.6-.357.014-.738.056-1.076.139-.377.092-.729.2-1.072.347-.691.283-1.324.71-1.871 1.245-1.122 1.058-1.85 2.537-2.255 4.096"/><g fill="#4c5359"><ellipse cx="44" cy="32.5" rx="4" ry="4.5"/><ellipse cx="20" cy="32.5" rx="4" ry="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1 11.9 0 22-7 26.1-11.1 0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><path d="m36 38c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.4 2-3.1 1.4-3.8" fill="#4c5359"/><path d="m24.3 30.8c0 0-.5-4.6-4.5-6-4.5-1.7-7.6 2.4-8.5 4.7-1.2 3.4.3 7.1.8 8 .3.6 3.7 3.2 11.2.7 0 0 1.9-3.8 1-7.4" fill="#fff"/><path d="m24.3 30.8c-.4-1.6-1.1-3-2.3-4.1-.5-.5-1.2-1-1.9-1.2-.3-.1-.7-.3-1.1-.3-.2-.1-.6-.2-1-.2-1.5 0-2.8.6-3.9 1.6-1.1 1-1.9 2.3-2.3 3.7-.4 1.4-.3 3 0 4.4.2.7.4 1.5.7 2.2l.1.2c0-.1 0 0 0 0l.1.1c.1.1.2.2.4.3.3.2.6.4.9.5 1.4.6 2.9.8 4.5.8 1.6 0 3.2-.3 4.8-.7-1.5.7-3.1 1.1-4.7 1.4-1.6.2-3.4.2-5-.4-.4-.1-.8-.3-1.2-.6-.2-.1-.4-.3-.6-.4-.1 0-.1-.1-.2-.2l-.1-.1-.1-.1-.2-.3c-.4-.8-.7-1.6-.9-2.4-.4-1.6-.5-3.4-.1-5.1.5-1.7 1.5-3.2 2.8-4.4 1.3-1.1 3.1-1.9 4.9-1.7.4.1.9.1 1.3.3.4.1.8.3 1.2.5.8.4 1.4 1 2 1.6 1.2 1.4 1.8 3 1.9 4.6" fill="#b2b6b8"/><path d="m39.7 30.8c0 0 .5-4.6 4.5-6 4.5-1.7 7.6 2.4 8.5 4.7 1.2 3.4-.3 7.1-.8 8-.3.6-3.7 3.2-11.2.7 0 0-1.9-3.8-1-7.4" fill="#fff"/><path d="m39.7 30.8c.1-1.6.7-3.2 1.7-4.6.5-.7 1.2-1.2 2-1.6.4-.2.8-.4 1.2-.5.4-.1.9-.2 1.3-.3 1.8-.2 3.6.6 4.9 1.7 1.3 1.2 2.3 2.6 2.8 4.4.4 1.7.3 3.5-.1 5.2-.2.8-.5 1.6-.9 2.4l-.2.3-.1.1v.1c-.1.1-.1.1-.2.2-.2.2-.4.3-.6.4-.4.2-.8.4-1.2.6-1.7.6-3.4.6-5 .4-1.6-.3-3.2-.7-4.7-1.4 1.6.3 3.2.6 4.8.7 1.6 0 3.2-.2 4.5-.8.3-.1.7-.3.9-.5.1-.1.3-.2.4-.3l.1-.1c0 0 0 0 0 0l.1-.2c.3-.7.5-1.4.7-2.2.3-1.5.4-3 0-4.4-.4-1.4-1.2-2.7-2.3-3.7-1.1-1-2.4-1.6-3.9-1.6-.4 0-.7.1-1.1.1-.4.1-.7.2-1.1.3-.7.3-1.3.7-1.9 1.2-1 1.1-1.7 2.6-2.1 4.1" fill="#b2b6b8"/><g fill="#4c5359"><ellipse cx="44" cy="32.5" rx="4" ry="4.5"/><ellipse cx="20" cy="32.5" rx="4" ry="4.5"/><path d="m45 46.7c0-.6-.4-1.4-1.4-1.6-2.6-.6-6.6-1.1-11.6-1.1-5 0-9 .5-11.6 1-1 .2-1.4 1-1.4 1.6 0 5.7 4.3 11.4 13 11.4 8.7 0 13-5.7 13-11.3"/></g><path d="m25.5 54.6c1.9.9 4 1.4 6.5 1.4 2.5 0 4.6-.5 6.5-1.4-1.8-1-4-1.6-6.5-1.6s-4.7.6-6.5 1.6" fill="#ff717f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f63b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f63b.svg
index 579f0ba..b738825 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f63b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f63b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#4c5359"><path d="m36.04 38.767c-.811-.945-3.299-1.018-4.04-1.018-.742 0-3.232.072-4.04 1.018-.576.674-.131 2.344 1.406 3.785.969.91 1.895 1.197 2.637 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path d="m43.743 45.861c0 4.74-3.9 10.275-11.743 10.275-7.845 0-11.743-5.535-11.743-10.275 0 0 3.898 0 11.743 0 7.843 0 11.743 0 11.743 0"/></g><path fill="#ff717f" d="m32 51.38c-4.539 0-5.834 3.345-5.834 3.345.688 1.49 10.98 1.489 11.666 0 0 0-1.295-3.345-5.832-3.345"/><path fill="#4c5359" d="m32 56.87c-8.104 0-12.477-5.671-12.477-11.01v-.733h24.953v.733c.001 5.338-4.372 11.01-12.476 11.01m-10.978-10.275c.385 4.396 4.205 8.808 10.978 8.808s10.592-4.412 10.977-8.808h-21.955"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><g fill="#f46767"><path d="m60.864 25.976c-.416-2.124-1.821-3.911-4-4.443-2.381-.581-4.557.255-6.668 2.163-1.185-2.904-2.993-5.061-5.846-6.166-2.923-1.139-5.763-.371-7.555 1.648-1.862 2.104-2.603 5.342-.609 9.58 1.867 3.967 10.233 12.01 10.474 12.242.326-.181 9.643-5.375 11.923-7.928 2.233-2.496 2.696-4.98 2.283-7.096"/><path d="m27.21 19.18c-1.79-2.02-4.632-2.787-7.554-1.648-2.854 1.105-4.663 3.262-5.849 6.166-2.112-1.91-4.289-2.743-6.668-2.162-2.179.531-3.587 2.318-4 4.442-.412 2.114.051 4.601 2.281 7.098 2.284 2.55 11.602 7.745 11.927 7.926.24-.232 8.606-8.275 10.474-12.242 1.992-4.237 1.25-7.477-.61-9.58"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1 11.9 0 22-7 26.1-11.1 0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><g fill="#f46767"><path d="m60.9 26c-.4-2.1-1.8-3.9-4-4.4-2.4-.6-4.6.3-6.7 2.2-1.2-2.9-3-5.1-5.8-6.2-2.9-1.1-5.8-.4-7.6 1.6-1.9 2.1-2.6 5.3-.6 9.6 1.9 4 10.2 12 10.5 12.2.3-.2 9.6-5.4 11.9-7.9 2.2-2.5 2.7-5 2.3-7.1"/><path d="m27.2 19.2c-1.8-2-4.6-2.8-7.6-1.6-2.9 1.1-4.7 3.3-5.8 6.2-2.1-1.9-4.3-2.7-6.7-2.2-2.2.5-3.6 2.3-4 4.4-.4 2.1.1 4.6 2.3 7.1 2.3 2.5 11.6 7.7 11.9 7.9.2-.2 8.6-8.3 10.5-12.2 2-4.3 1.3-7.5-.6-9.6"/></g><g fill="#4c5359"><path d="m36 38c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.4 2-3.1 1.4-3.8"/><path d="m45 46.7c0-.6-.4-1.4-1.4-1.6-2.6-.6-6.6-1.1-11.6-1.1-5 0-9 .5-11.6 1-1 .2-1.4 1-1.4 1.6 0 5.7 4.3 11.4 13 11.4 8.7 0 13-5.7 13-11.3"/></g><path d="m25.5 54.6c1.9.9 4 1.4 6.5 1.4 2.5 0 4.6-.5 6.5-1.4-1.8-1-4-1.6-6.5-1.6-2.5 0-4.7.6-6.5 1.6" fill="#ff717f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f63c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f63c.svg
index dd2dc70..7cebf3d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f63c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f63c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.887,14.677C39.814,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.256-13.253c0 0 1.939-7.285 11.617-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.834 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.807-18.455C24.184,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.844-.881 1.414-1.633 1.66-2.162 1.631-2.643 2.145-5.342 2.145-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141s22.03-6.96 26.09-11.142l.002.005c.033-.036.064-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><path fill="#4c5359" d="m36.04 38.767c-.811-.945-3.299-1.018-4.04-1.018-.742 0-3.232.072-4.04 1.018-.576.674-.131 2.344 1.406 3.785.969.91 1.895 1.197 2.637 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path fill="#fff" d="m24.299 30.84c0 0-.484-3.569-4.51-5.03-4.538-1.651-7.635 1.386-8.476 3.694-1.24 3.407.316 7.133.778 7.992.306.566 3.659 3.241 11.219.709.001 0 1.883-3.789.989-7.361"/><path fill="#b2b6b8" d="m24.299 30.84c0 0-5.917-4.811-6.273-4.824-1.451-.041-2.832-.422-3.896.6-1.061 1.01-1.938 2.329-2.29 3.713-.383 1.406-.313 2.951.021 4.435.16.743.392 1.487.688 2.173l.113.243c-.032-.054.014.022.017.026.002 0 0-.005-.002-.006l.055.063c.098.103.231.209.37.312.282.203.602.384.94.532 1.365.595 2.949.792 4.519.751 1.584-.006 3.168-.31 4.75-.655-1.479.668-3.055 1.128-4.69 1.388-1.634.219-3.361.197-5.01-.396-.411-.147-.814-.334-1.207-.574-.195-.124-.384-.262-.575-.441-.05-.048-.092-.091-.151-.159l-.097-.124-.063-.102-.156-.299c-.379-.78-.661-1.574-.879-2.4-.415-1.645-.529-3.423-.09-5.15.491-1.739 1.491-3.206 2.792-4.381 1.304-1.15 3.121-.924 4.921-.71.445.048 6.195 5.985 6.195 5.985"/><path fill="#fff" d="m39.697 30.84c0 0 .484-3.568 4.51-5.03 4.539-1.651 7.635 1.387 8.477 3.694 1.24 3.407-.316 7.133-.779 7.992-.305.566-3.658 3.241-11.219.709 0 0-1.883-3.789-.989-7.361"/><path fill="#b2b6b8" d="m39.697 30.84c0 0 5.75-5.937 6.197-5.987 1.801-.214 3.617-.44 4.92.71 1.301 1.175 2.301 2.642 2.793 4.382.438 1.728.324 3.505-.09 5.15-.219.825-.5 1.619-.881 2.399l-.154.299-.064.102-.096.124c-.061.068-.102.111-.152.159-.191.18-.379.317-.576.441-.391.24-.795.427-1.205.574-1.65.593-3.379.614-5.01.396-1.635-.26-3.211-.72-4.689-1.388 1.582.346 3.166.649 4.75.655 1.57.041 3.152-.156 4.52-.751.338-.148.658-.329.939-.532.139-.103.273-.209.371-.312l.055-.063c-.002.001-.004.006-.002.007.002-.005.049-.081.016-.027l.113-.243c.297-.686.529-1.43.689-2.173.334-1.483.404-3.03.021-4.435-.354-1.384-1.23-2.705-2.291-3.713-1.064-1.021-2.445-.641-3.896-.6-.356.015-6.274 4.826-6.274 4.826"/><g fill="#4c5359"><ellipse cx="44" cy="32.5" rx="4" ry="4.5"/><ellipse cx="20" cy="32.5" rx="4" ry="4.5"/><path d="m55.893 24.525c-1.871.182-3.539.459-5.154.891-1.609.422-3.145.982-4.621 1.668-1.484.689-2.891 1.488-4.25 2.447-1.365.957-2.645 2.057-3.975 3.387.203-1.885 1.127-3.656 2.369-5.115 1.248-1.461 2.852-2.641 4.596-3.441 1.75-.811 3.67-1.262 5.59-1.279 1.911-.009 3.859.407 5.445 1.442"/><path d="m8.104 24.525c1.586-1.035 3.531-1.451 5.443-1.443 1.922.018 3.842.469 5.592 1.279 1.744.801 3.346 1.98 4.594 3.441 1.242 1.461 2.168 3.23 2.371 5.115-1.33-1.33-2.611-2.43-3.975-3.387-1.361-.959-2.768-1.758-4.25-2.449-1.479-.684-3.01-1.244-4.623-1.666-1.613-.431-3.283-.708-5.152-.89"/><path d="m22.18 48.546c2.229.678 4.283.92 6.328.914 2.035-.002 4.02-.273 5.975-.74 1.945-.479 3.838-1.145 5.652-2.07 1.816-.932 3.535-2.08 5.213-3.697-.318 2.346-1.771 4.48-3.584 6.06-1.828 1.594-4.076 2.691-6.426 3.258-2.352.563-4.848.613-7.203.029-2.334-.579-4.598-1.814-5.955-3.753"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1s22-7 26.1-11.1c0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><path d="m36 38.8c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.5 2-3.2 1.4-3.8" fill="#4c5359"/><path d="m24.3 30.8c0 0-.5-3.6-4.5-5-4.5-1.7-7.6 1.4-8.5 3.7-1.2 3.4.3 7.1.8 8 .3.6 3.7 3.2 11.2.7 0 0 1.9-3.8 1-7.4" fill="#fff"/><path d="m24.3 30.8c0 0-5.9-4.8-6.3-4.8-1.5 0-2.8-.4-3.9.6-1.1 1-1.9 2.3-2.3 3.7-.4 1.4-.3 3 0 4.4.2.7.4 1.5.7 2.2l.1.2c0-.1 0 0 0 0l.1.1c.1.1.2.2.4.3.3.2.6.4.9.5 1.4.6 2.9.8 4.5.8 1.6 0 3.2-.3 4.8-.7-1.5.7-3.1 1.1-4.7 1.4-1.6.2-3.4.2-5-.4-.4-.1-.8-.3-1.2-.6-.2-.1-.4-.3-.6-.4-.1 0-.1-.1-.2-.2l-.1-.1-.1-.1-.2-.3c-.4-.8-.7-1.6-.9-2.4-.4-1.6-.5-3.4-.1-5.1.5-1.7 1.5-3.2 2.8-4.4 1.3-1.1 3.1-.9 4.9-.7.6.1 6.4 6 6.4 6" fill="#b2b6b8"/><path d="m39.7 30.8c0 0 .5-3.6 4.5-5 4.5-1.7 7.6 1.4 8.5 3.7 1.2 3.4-.3 7.1-.8 8-.3.6-3.7 3.2-11.2.7 0 0-1.9-3.8-1-7.4" fill="#fff"/><path d="m39.7 30.8c0 0 5.8-5.9 6.2-6 1.8-.2 3.6-.4 4.9.7 1.3 1.2 2.3 2.6 2.8 4.4.4 1.7.3 3.5-.1 5.2-.2.8-.5 1.6-.9 2.4l-.2.3-.1.1v.1c-.1.1-.1.1-.2.2-.2.2-.4.3-.6.4-.4.2-.8.4-1.2.6-1.7.6-3.4.6-5 .4-1.6-.3-3.2-.7-4.7-1.4 1.6.3 3.2.6 4.8.7 1.6 0 3.2-.2 4.5-.8.3-.1.7-.3.9-.5.1-.1.3-.2.4-.3l.1-.1c0 0 0 0 0 0l.1-.2c.3-.7.5-1.4.7-2.2.3-1.5.4-3 0-4.4-.4-1.4-1.2-2.7-2.3-3.7-1.1-1-2.4-.6-3.9-.6-.3-.1-6.2 4.7-6.2 4.7" fill="#b2b6b8"/><g fill="#4c5359"><ellipse cx="44" cy="32.5" rx="4" ry="4.5"/><ellipse cx="20" cy="32.5" rx="4" ry="4.5"/><path d="m55.9 24.5c-1.9.2-3.5.5-5.2.9-1.6.4-3.1 1-4.6 1.7-1.5.7-2.9 1.5-4.2 2.4-1.4 1-2.6 2.1-4 3.4.2-1.9 1.1-3.7 2.4-5.1 1.2-1.5 2.9-2.6 4.6-3.4 1.8-.8 3.7-1.3 5.6-1.3 1.9 0 3.8.4 5.4 1.4"/><path d="m8.1 24.5c1.6-1 3.5-1.5 5.4-1.4 1.9 0 3.8.5 5.6 1.3 1.7.8 3.3 2 4.6 3.4 1.2 1.5 2.2 3.2 2.4 5.1-1.3-1.3-2.6-2.4-4-3.4-1.4-1-2.8-1.8-4.2-2.4-1.5-.7-3-1.2-4.6-1.7-1.7-.4-3.3-.7-5.2-.9"/><path d="m25.8 53.5c5.8 1.4 15.1 0 19.8-3.5 1.2-.9-1.2-4-2.3-3.1-3.2 2.3-11.2 4.1-16.6 2.9-1.4-.4-2.4 3.3-.9 3.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f63d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f63d.svg
index bdb31fa..8d029f9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f63d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f63d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><path fill="#4c5359" d="m40 46.21c0-2.329 1.449-3.512 1.882-4.313.142-.168.262-.392.244-.678-.011-.324-.224-.623-.43-.826-.443-.391-.907-.602-1.354-.773-.898-.332-1.759-.508-2.593-.676s-1.639-.307-2.439-.488c-.81-.176-1.595-.404-2.513-.746.318.939 1.07 1.676 1.895 2.191.836.516 1.763.826 2.671 1 .903.179 1.804.226 2.643.247-1.763.713-4.01 2.815-4.01 5.058 0 2.242 2.241 4.343 4 5.056-.838.023-1.737.068-2.64.249-.908.176-1.835.486-2.671 1-.824.518-1.576 1.252-1.895 2.193.918-.344 1.703-.57 2.513-.748.801-.182 1.605-.32 2.439-.486.834-.17 1.694-.346 2.593-.676.447-.174.911-.385 1.354-.775.206-.203.419-.502.43-.826.018-.283-.102-.508-.242-.676-.431-.799-1.883-1.983-1.883-4.313"/><g opacity=".8" fill="#ff717f"><circle cx="49.811" cy="37.851" r="8"/><circle cx="14.189" cy="37.851" r="8"/></g><g fill="#4c5359"><path d="m36.41 26.894c3.264 6.197 12.653 6.197 15.917 0 .195-.378-.319-.921-.95-1.352-4.135 3.27-9.88 3.271-14.02 0-.631.432-1.145.974-.952 1.352"/><path d="m11.673 26.894c3.264 6.197 12.653 6.197 15.917.001.195-.379-.32-.922-.951-1.353-4.135 3.271-9.879 3.271-14.01.001-.631.431-1.146.973-.952 1.351"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1 11.9 0 22-7 26.1-11.1 0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><path d="m41.4 53.8c1.6-1.6-1.8-3-1.8-5.9 0-2.9 3.4-4.2 1.8-5.9-1.9-2-6-.5-8.6-3.1 0 2.2 1.8 4.5 5.2 4.5 0 0-2.3.9-2.3 4.5 0 3.6 2.3 4.5 2.3 4.5-3.4 0-5.2 2.3-5.2 4.5 2.5-2.7 6.7-1.2 8.6-3.1" fill="#4c5359"/><g fill="#ff717f"><path d="m23 34.7c-1.7-2.8-7-3.8-11.8-2.1-4.8 1.7-7.3 5.4-5.6 8.2 1.7 2.8 7 3.8 11.8 2.1 4.8-1.7 7.3-5.4 5.6-8.2" opacity=".8"/><path d="m41 34.7c1.7-2.8 7-3.8 11.8-2.1 4.8 1.7 7.3 5.4 5.6 8.2-1.7 2.8-7 3.8-11.8 2.1-4.8-1.7-7.3-5.4-5.6-8.2" opacity=".8"/></g><g fill="#4c5359"><path d="m35.9 25.6c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.6.4-1.2.6-1 1"/><path d="m11.2 25.6c4.2 8 12.7 8 16.9 0 .2-.4-.3-.6-1-1-4.2 3.3-11.1 3-14.9 0-.7.4-1.2.6-1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f63e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f63e.svg
index acf6640..aa7be0f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f63e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f63e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><path fill="#4c5359" d="m36.04 38.767c-.811-.945-3.299-1.018-4.04-1.018-.742 0-3.232.072-4.04 1.018-.576.674-.131 2.344 1.406 3.785.969.91 1.895 1.197 2.637 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path fill="#fff" d="m24.299 30.84c0 0-.484-3.569-4.509-5.03-4.539-1.651-7.636 1.386-8.477 3.694-1.24 3.407.316 7.133.778 7.992.306.566 3.659 3.241 11.22.709.001 0 1.882-3.789.988-7.361"/><path fill="#b2b6b8" d="m24.299 30.84c0 0-5.917-4.811-6.273-4.824-1.451-.041-2.832-.422-3.896.6-1.061 1.01-1.938 2.329-2.29 3.713-.383 1.406-.313 2.951.021 4.435.16.743.392 1.487.688 2.173l.113.243c-.032-.054.014.022.017.026.002 0 0-.005-.002-.006l.055.063c.098.103.231.209.37.312.282.203.602.384.94.532 1.365.595 2.949.792 4.519.751 1.585-.006 3.168-.31 4.751-.655-1.479.668-3.056 1.128-4.691 1.388-1.634.219-3.361.197-5.01-.396-.411-.147-.814-.334-1.207-.574-.195-.124-.384-.262-.575-.441-.05-.048-.092-.091-.151-.159l-.097-.124-.063-.102-.156-.299c-.379-.78-.661-1.574-.879-2.4-.415-1.645-.529-3.423-.09-5.15.491-1.739 1.491-3.206 2.792-4.381 1.304-1.15 3.121-.924 4.921-.71.445.048 6.195 5.985 6.195 5.985"/><path fill="#fff" d="m39.698 30.84c0 0 .484-3.568 4.509-5.03 4.539-1.651 7.636 1.387 8.477 3.694 1.24 3.407-.316 7.133-.778 7.992-.306.566-3.659 3.241-11.22.709 0 0-1.882-3.789-.988-7.361"/><path fill="#b2b6b8" d="m39.698 30.84c0 0 5.75-5.937 6.197-5.987 1.8-.214 3.616-.44 4.92.71 1.301 1.175 2.301 2.642 2.792 4.382.438 1.728.325 3.505-.089 5.15-.219.825-.501 1.619-.881 2.399l-.155.299-.063.102-.097.124c-.06.068-.102.111-.151.159-.191.18-.38.317-.576.441-.392.24-.795.427-1.206.574-1.65.593-3.378.614-5.01.396-1.635-.26-3.212-.72-4.69-1.388 1.583.346 3.166.649 4.751.655 1.569.041 3.152-.156 4.519-.751.339-.148.658-.329.94-.532.139-.103.272-.209.37-.312l.055-.063c-.002.001-.004.006-.002.007.003-.005.049-.081.017-.027l.113-.243c.297-.686.528-1.43.688-2.173.334-1.483.404-3.03.021-4.435-.353-1.384-1.229-2.705-2.29-3.713-1.064-1.021-2.445-.641-3.896-.6-.357.015-6.274 4.826-6.274 4.826"/><g fill="#4c5359"><ellipse cx="44" cy="32.5" rx="4" ry="4.5"/><ellipse cx="20" cy="32.5" rx="4" ry="4.5"/><path d="m55.893 24.525c-1.871.182-3.539.459-5.154.891-1.609.422-3.145.982-4.621 1.668-1.484.689-2.891 1.488-4.25 2.447-1.365.957-2.645 2.057-3.975 3.387.203-1.885 1.127-3.656 2.369-5.115 1.248-1.461 2.852-2.641 4.596-3.441 1.75-.811 3.67-1.262 5.59-1.279 1.911-.009 3.859.407 5.445 1.442"/><path d="m8.104 24.525c1.586-1.035 3.531-1.451 5.443-1.443 1.922.018 3.842.469 5.592 1.279 1.744.801 3.346 1.98 4.594 3.441 1.242 1.461 2.168 3.23 2.371 5.115-1.33-1.33-2.611-2.43-3.975-3.387-1.361-.959-2.768-1.758-4.25-2.449-1.479-.684-3.01-1.244-4.623-1.666-1.613-.431-3.283-.708-5.152-.89"/><path d="m42.684 53.36c-1.801-1.059-3.541-1.701-5.322-2.127-1.775-.426-3.566-.609-5.361-.611-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.066-5.322 2.123.771-1.977 2.484-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.166.004 4.354.486 6.283 1.49 1.909.994 3.624 2.547 4.4 4.521"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1 11.9 0 22-7 26.1-11.1 0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><path d="m36 38.8c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.5 2-3.2 1.4-3.8" fill="#4c5359"/><path d="m24.3 30.8c0 0-.5-3.6-4.5-5-4.5-1.6-7.6 1.4-8.5 3.7-1.2 3.4.3 7.1.8 8 .3.6 3.7 3.2 11.2.7 0 0 1.9-3.8 1-7.4" fill="#fff"/><path d="m24.3 30.8c0 0-5.9-4.8-6.3-4.8-1.5 0-2.8-.4-3.9.6-1.1 1-1.9 2.3-2.3 3.7-.4 1.4-.3 3 0 4.4.2.7.4 1.5.7 2.2l.1.2c0-.1 0 0 0 0l.1.1c.1.1.2.2.4.3.3.2.6.4.9.5 1.4.6 2.9.8 4.5.8 1.6 0 3.2-.3 4.8-.7-1.5.7-3.1 1.1-4.7 1.4-1.6.2-3.4.2-5-.4-.4-.1-.8-.3-1.2-.6-.2-.1-.4-.3-.6-.4-.1 0-.1-.1-.2-.2l-.1-.1-.1-.1-.2-.3c-.4-.8-.7-1.6-.9-2.4-.4-1.6-.5-3.4-.1-5.1.5-1.7 1.5-3.2 2.8-4.4 1.3-1.1 3.1-.9 4.9-.7.6.1 6.4 6 6.4 6" fill="#b2b6b8"/><path d="m39.7 30.8c0 0 .5-3.6 4.5-5 4.5-1.6 7.6 1.4 8.5 3.7 1.2 3.4-.3 7.1-.8 8-.3.6-3.7 3.2-11.2.7 0 0-1.9-3.8-1-7.4" fill="#fff"/><path d="m39.7 30.8c0 0 5.8-5.9 6.2-6 1.8-.2 3.6-.4 4.9.7 1.3 1.2 2.3 2.6 2.8 4.4.4 1.7.3 3.5-.1 5.1-.2.8-.5 1.6-.9 2.4l-.2.3-.1.1v.2c-.1.1-.1.1-.2.2-.2.2-.4.3-.6.4-.4.2-.8.4-1.2.6-1.7.6-3.4.6-5 .4-1.6-.3-3.2-.7-4.7-1.4 1.6.3 3.2.6 4.8.7 1.6 0 3.2-.2 4.5-.8.3-.1.7-.3.9-.5.1-.1.3-.2.4-.3l.1-.1c0 0 0 0 0 0l.1-.2c.3-.7.5-1.4.7-2.2.3-1.5.4-3 0-4.4-.4-1.4-1.2-2.7-2.3-3.7-1.1-1-2.4-.6-3.9-.6-.3-.1-6.2 4.7-6.2 4.7" fill="#b2b6b8"/><g fill="#4c5359"><ellipse cx="44" cy="32.5" rx="4" ry="4.5"/><ellipse cx="20" cy="32.5" rx="4" ry="4.5"/><path d="m55.9 24.5c-1.9.2-3.5.5-5.2.9-1.6.4-3.1 1-4.6 1.7-1.5.7-2.9 1.5-4.2 2.4-1.4 1-2.6 2.1-4 3.4.2-1.9 1.1-3.7 2.4-5.1 1.2-1.5 2.9-2.6 4.6-3.4 1.8-.8 3.7-1.3 5.6-1.3 1.9 0 3.8.4 5.4 1.4"/><path d="m8.1 24.5c1.6-1 3.5-1.5 5.4-1.4 1.9 0 3.8.5 5.6 1.3 1.7.8 3.3 2 4.6 3.4 1.2 1.5 2.2 3.2 2.4 5.1-1.3-1.3-2.6-2.4-4-3.4-1.4-1-2.8-1.8-4.2-2.4-1.5-.7-3-1.2-4.6-1.7-1.7-.4-3.3-.7-5.2-.9"/><path d="m23 54.2c5.8-4.8 12.2-4.8 18 0 .7.6 1.3-.4.8-1.3-1.8-3.4-5.3-6.5-9.8-6.5-4.5 0-8.1 3.1-9.8 6.5-.5.9.1 1.9.8 1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f63f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f63f.svg
index afbe331..5b17e95 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f63f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f63f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><path fill="#4c5359" d="m36.04 38.767c-.811-.945-3.299-1.018-4.04-1.018-.742 0-3.232.072-4.04 1.018-.576.674-.131 2.344 1.406 3.785.969.91 1.895 1.197 2.637 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path fill="#fff" d="m24.299 30.84c0 0-.484-4.569-4.509-6.03-4.539-1.651-7.636 2.386-8.477 4.694-1.24 3.407.316 7.133.778 7.992.306.566 3.659 3.241 11.22.709.001 0 1.882-3.789.988-7.361"/><path fill="#b2b6b8" d="m24.299 30.84c-.404-1.559-1.133-3.039-2.255-4.094-.546-.535-1.179-.962-1.869-1.245-.345-.146-.695-.255-1.074-.347-.337-.083-.719-.125-1.075-.139-1.451-.041-2.832.578-3.896 1.6-1.061 1.01-1.938 2.329-2.29 3.713-.383 1.406-.313 2.951.021 4.435.16.743.392 1.487.688 2.173l.113.243c-.032-.054.014.022.017.026.002 0 0-.005-.002-.006l.055.063c.098.103.231.209.37.312.282.203.602.384.94.532 1.365.595 2.949.792 4.519.751 1.585-.006 3.168-.31 4.751-.655-1.479.668-3.056 1.128-4.691 1.388-1.634.219-3.361.197-5.01-.396-.411-.147-.814-.334-1.207-.574-.195-.124-.384-.262-.575-.441-.05-.048-.092-.091-.151-.159l-.097-.124-.063-.102-.156-.299c-.379-.78-.661-1.574-.879-2.4-.415-1.645-.529-3.423-.09-5.15.491-1.739 1.491-3.206 2.792-4.381 1.304-1.15 3.121-1.924 4.921-1.71.446.051.867.126 1.307.269.396.126.812.285 1.19.498.767.412 1.447.973 1.984 1.634 1.047 1.342 1.638 2.963 1.714 4.585"/><path fill="#fff" d="m39.698 30.84c0 0 .484-4.568 4.509-6.03 4.539-1.651 7.636 2.387 8.477 4.694 1.24 3.407-.316 7.133-.778 7.992-.306.566-3.659 3.241-11.22.709 0 0-1.882-3.789-.988-7.361"/><path fill="#b2b6b8" d="m39.698 30.84c.076-1.622.667-3.243 1.715-4.587.537-.661 1.219-1.222 1.984-1.634.379-.213.794-.372 1.191-.498.438-.143.859-.218 1.307-.269 1.8-.214 3.616.56 4.92 1.71 1.301 1.175 2.301 2.642 2.792 4.382.438 1.728.325 3.505-.089 5.15-.219.825-.501 1.619-.881 2.399l-.155.299-.063.102-.097.124c-.06.068-.102.111-.151.159-.191.18-.38.317-.576.441-.392.24-.795.427-1.206.574-1.65.593-3.378.614-5.01.396-1.635-.26-3.212-.72-4.69-1.388 1.583.346 3.166.649 4.751.655 1.569.041 3.152-.156 4.519-.751.339-.148.658-.329.94-.532.139-.103.272-.209.37-.312l.055-.063c-.002.001-.004.006-.002.007.003-.005.049-.081.017-.027l.113-.243c.297-.686.528-1.43.688-2.173.334-1.483.404-3.03.021-4.435-.353-1.384-1.229-2.705-2.29-3.713-1.064-1.021-2.445-1.641-3.896-1.6-.356.014-.738.056-1.075.139-.378.092-.729.2-1.073.347-.691.283-1.324.71-1.87 1.245-1.123 1.058-1.851 2.537-2.256 4.096"/><g fill="#4c5359"><circle cx="45" cy="32.5" r="5"/><circle cx="19" cy="32.5" r="5"/><path d="m42.684 53.13c-1.801-1.059-3.541-1.701-5.322-2.127-1.775-.426-3.566-.609-5.361-.611-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.066-5.322 2.123.771-1.977 2.484-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.166.004 4.354.486 6.283 1.49 1.909.994 3.624 2.546 4.4 4.521"/></g><g fill="#fff"><ellipse cx="18.991" cy="35.972" rx="2.186" ry="2.528"/><ellipse cx="15.278" cy="31.719" rx="1.278" ry="1.479"/><ellipse cx="44.991" cy="35.972" rx="2.186" ry="2.528"/><ellipse cx="41.28" cy="31.719" rx="1.278" ry="1.479"/></g><path fill="#65b1ef" d="m46.98 37c-4.763 6.511-7.496 12.501-7.496 17.425 0 4.184 3.355 7.574 7.5 7.574 4.139 0 7.497-3.391 7.497-7.574 0-4.924-2.814-11.02-7.501-17.425"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m58.2 50.8c.8-.9 1.4-1.6 1.7-2.2 1.6-2.6 2.1-5.3 2.1-5.3l-2 .4c0 0 2.3-2.5 1.7-7.8l-2 2.1c0 0 1.9-5.4.3-10.4l-2.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-2-1.6c-1.7 5 .3 10.4.3 10.4l-1.9-2.1c-.7 5.3 1.6 7.8 1.6 7.8l-2-.4c0 0 .5 2.7 2.1 5.3.2.5.8 1.3 1.7 2.2 0 0 0 0 .1.1 4.1 4.1 14.2 11.1 26.1 11.1 11.9 0 22-7 26.1-11.1 0-.1.1-.1.1-.1" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><path d="m36 38.8c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.5 2-3.2 1.4-3.8" fill="#4c5359"/><path d="m24.3 30.8c0 0-.5-4.6-4.5-6-4.5-1.7-7.6 2.4-8.5 4.7-1.2 3.4.3 7.1.8 8 .3.6 3.7 3.2 11.2.7 0 0 1.9-3.8 1-7.4" fill="#fff"/><path d="m24.3 30.8c-.4-1.6-1.1-3-2.3-4.1-.5-.5-1.2-1-1.9-1.2-.3-.1-.7-.3-1.1-.3-.2-.1-.6-.2-1-.2-1.5 0-2.8.6-3.9 1.6-1.1 1-1.9 2.3-2.3 3.7-.4 1.4-.3 3 0 4.4.2.7.4 1.5.7 2.2l.1.2c0-.1 0 0 0 0l.1.1c.1.1.2.2.4.3.3.2.6.4.9.5 1.4.6 2.9.8 4.5.8 1.6 0 3.2-.3 4.8-.7-1.5.7-3.1 1.1-4.7 1.4-1.6.2-3.4.2-5-.4-.4-.1-.8-.3-1.2-.6-.2-.1-.4-.3-.6-.4-.1 0-.1-.1-.2-.2l-.1-.1-.1-.1-.2-.3c-.4-.8-.7-1.6-.9-2.4-.4-1.6-.5-3.4-.1-5.1.5-1.7 1.5-3.2 2.8-4.4 1.3-1.1 3.1-1.9 4.9-1.7.4.1.9.1 1.3.3.4.1.8.3 1.2.5.8.4 1.4 1 2 1.6 1.2 1.4 1.8 3 1.9 4.6" fill="#b2b6b8"/><path d="m39.7 30.8c0 0 .5-4.6 4.5-6 4.5-1.7 7.6 2.4 8.5 4.7 1.2 3.4-.3 7.1-.8 8-.3.6-3.7 3.2-11.2.7 0 0-1.9-3.8-1-7.4" fill="#fff"/><path d="m39.7 30.8c.1-1.6.7-3.2 1.7-4.6.5-.7 1.2-1.2 2-1.6.4-.2.8-.4 1.2-.5.4-.1.9-.2 1.3-.3 1.8-.2 3.6.6 4.9 1.7 1.3 1.2 2.3 2.6 2.8 4.4.4 1.7.3 3.5-.1 5.2-.2.8-.5 1.6-.9 2.4l-.2.3-.1.1v.1c-.1.1-.1.1-.2.2-.2.2-.4.3-.6.4-.4.2-.8.4-1.2.6-1.7.6-3.4.6-5 .4-1.6-.3-3.2-.7-4.7-1.4 1.6.3 3.2.6 4.8.7 1.6 0 3.2-.2 4.5-.8.3-.1.7-.3.9-.5.1-.1.3-.2.4-.3l.1-.1c0 0 0 0 0 0l.1-.2c.3-.7.5-1.4.7-2.2.3-1.5.4-3 0-4.4-.4-1.4-1.2-2.7-2.3-3.7-1.1-1-2.4-1.6-3.9-1.6-.4 0-.7.1-1.1.1-.4.1-.7.2-1.1.3-.7.3-1.3.7-1.9 1.2-1 1.1-1.7 2.6-2.1 4.1" fill="#b2b6b8"/><g fill="#4c5359"><circle cx="45" cy="32.5" r="5"/><circle cx="19" cy="32.5" r="5"/></g><g fill="#fff"><ellipse cx="19" cy="36" rx="2.2" ry="2.5"/><ellipse cx="15.3" cy="31.7" rx="1.3" ry="1.5"/><ellipse cx="45" cy="36" rx="2.2" ry="2.5"/><ellipse cx="41.3" cy="31.7" rx="1.3" ry="1.5"/></g><path d="m40.6 49.3c-5.4-2.5-11.8-2.5-17.2 0-1.3.6.3 4.2 1.7 3.5 3.6-1.7 8.9-2.3 13.9 0 1.3.6 3-2.8 1.6-3.5" fill="#4c5359"/><path d="m47 37c-4.8 6.5-7.5 12.5-7.5 17.4 0 4.2 3.4 7.6 7.5 7.6 4.1 0 7.5-3.4 7.5-7.6 0-4.9-2.8-11-7.5-17.4" fill="#65b1ef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f640.svg b/build/js/jsxc/lib/emojione/assets/svg/1f640.svg
index 42210ac..5c1c257 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f640.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f640.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dadee0" d="M60.861,2c1.797,13.431,1.51,24.233-1.166,31.132L34.888,14.677C39.815,9.584,49.818,3.459,60.861,2z"/><path fill="#f7a4a4" d="m57.738 32.18l-10.255-13.253c0 0 1.938-7.285 11.616-12.438 2.901 11.656-1.361 25.691-1.361 25.691"/><path fill="#f78d8d" d="m53.835 29.16l-6.352-8.209c0 0 2.574-5.02 8.568-8.216-3.497 7.563-2.216 16.425-2.216 16.425"/><path fill="#dadee0" d="M3.139,2c-1.797,13.431-1.51,24.233,1.166,31.132l24.808-18.455C24.185,9.584,14.182,3.459,3.139,2z"/><path fill="#f7a4a4" d="M6.262,32.177l10.255-13.253c0,0-1.938-7.285-11.616-12.438C2,18.142,6.262,32.177,6.262,32.177z"/><path fill="#f78d8d" d="m10.165 29.16l6.352-8.209c0 0-2.574-5.02-8.568-8.216 3.497 7.563 2.216 16.425 2.216 16.425"/><path fill="#dadee0" d="m58.2 50.754c.845-.881 1.415-1.633 1.661-2.162 1.63-2.643 2.144-5.342 2.144-5.342l-2 .424c0 0 2.318-2.463 1.691-7.793l-1.945 2.102c0 0 1.945-5.41.254-10.4l-2.152 1.588c0 0 .654-2.031.053-3.422l-.932.729c0 0 1.689-4.665.154-6.625-.855 2.827-1.871 2.784-1.871 2.784s1.242-2.116.273-3c-.986 1.594-1.807.558-1.768.079.055-.637-.193-1.534 2.703-1.957-2.314-1.414-5.05-.43-5.05-.43s.098-1.489 2.123-1.43c-1.871-1.593-4.48-.648-4.48-.648l.006.017c-4.111-3.11-9.646-4.902-17.05-4.902-7.408 0-12.942 1.792-17.05 4.902l.006-.017c0 0-2.609-.944-4.48.648 2.027-.06 2.125 1.43 2.125 1.43s-2.742-.984-5.057.43c2.898.423 2.65 1.32 2.703 1.957.039.479-.779 1.515-1.768-.079-.967.887.275 3 .275 3s-1.016.043-1.871-2.784c-1.537 1.96.154 6.625.154 6.625l-.932-.729c-.602 1.391.053 3.422.053 3.422l-2.154-1.588c-1.691 4.99.254 10.4.254 10.4l-1.945-2.102c-.625 5.33 1.691 7.793 1.691 7.793l-2-.424c0 0 .513 2.694 2.141 5.339.249.534.833 1.304 1.698 2.202.023.024.044.049.067.072v-.004c4.066 4.183 14.213 11.141 26.09 11.141 11.882 0 22.03-6.96 26.09-11.142v.005c.034-.036.065-.072.099-.109"/><g fill="#94989b"><path d="m37.686 10.763c-1.762-.258-3.65-.401-5.686-.401s-3.926.144-5.689.401c.736 3.856 2.75 6.583 5.688 11.585 2.98-5.079 4.964-7.756 5.687-11.585"/><path d="m46.813 13.785c-1.908-1.092-4.072-1.944-6.523-2.523.59 2.29 1.857 3.921 3.627 6.935 1.237-2.111 2.216-2.663 2.896-4.412"/><path d="m23.709 11.263c-2.451.579-4.615 1.431-6.521 2.522.686 1.765 1.666 2.323 2.891 4.411 1.794-3.057 3.048-4.664 3.63-6.933"/></g><g fill="#4c5359"><path d="m36.04 33.767c-.811-.945-3.299-1.018-4.04-1.018-.742 0-3.232.072-4.04 1.018-.576.674-.131 2.344 1.406 3.785.969.91 1.895 1.197 2.637 1.197.744 0 1.67-.287 2.639-1.197 1.535-1.442 1.982-3.112 1.404-3.785"/><path d="m18 53.943c0-5.653 4.65-12.25 14-12.25 9.354 0 14 6.597 14 12.25 0 0-4.646 0-14 0-9.35 0-14 0-14 0"/></g><path fill="#ff717f" d="m32 49.51c-5.391 0-6.929 3.798-6.929 3.798.818 1.692 13.04 1.69 13.855 0 .001 0-1.537-3.798-6.926-3.798"/><g fill="#4c5359"><path d="m32 40.818c9.661 0 14.875 6.763 14.875 13.13v.875h-29.75v-.875c0-6.362 5.213-13.12 14.875-13.12m13.09 12.25c-.458-5.241-5.01-10.5-13.09-10.5s-12.629 5.259-13.09 10.5h26.17"/><path d="m10.984 29.371c4.756 5.142 13.826 2.711 15.375-4.119.09-.416-.547-.807-1.268-1.061-3.148 4.229-8.697 5.717-13.537 3.628-.497.579-.855 1.238-.57 1.552"/><path d="m37.642 25.25c1.549 6.83 10.617 9.261 15.373 4.121.287-.316-.07-.975-.568-1.553-4.84 2.088-10.389.602-13.535-3.627-.724.253-1.36.643-1.27 1.059"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M60.9,2c1.8,13.4,1.5,24.2-1.2,31.1L34.9,14.7C39.8,9.6,49.8,3.5,60.9,2z" fill="#dadee0"/><path d="m57.7 32.2l-10.2-13.3c0 0 1.9-7.3 11.6-12.4 2.9 11.6-1.4 25.7-1.4 25.7" fill="#f7a4a4"/><path d="m53.8 29.2l-6.3-8.2c0 0 2.6-5 8.6-8.2-3.5 7.5-2.3 16.4-2.3 16.4" fill="#f78d8d"/><path d="M3.1,2C1.3,15.4,1.6,26.2,4.3,33.1l24.8-18.5C24.2,9.6,14.2,3.5,3.1,2z" fill="#dadee0"/><path d="m6.3 32.2l10.3-13.3c0 0-1.9-7.3-11.6-12.4-3 11.6 1.3 25.7 1.3 25.7" fill="#f7a4a4"/><path d="m10.2 29.2l6.4-8.2c0 0-2.6-5-8.6-8.2 3.4 7.5 2.2 16.4 2.2 16.4" fill="#f78d8d"/><path d="m59 27.6l-1.2 1.6c0 0 .7-2 .1-3.4l-.9.7c0 0 1.7-4.7.2-6.6-.9 2.8-1.9 2.8-1.9 2.8s1.2-2.1.3-3c-1 1.6-1.8.6-1.8.1.1-.6-.2-1.5 2.7-2-2.3-1.4-5.1-.4-5.1-.4s.1-1.5 2.1-1.4c-1.9-1.6-4.5-.6-4.5-.6-4.1-3.1-9.6-4.9-17.1-4.9-7.4 0-12.9 1.8-17.1 4.9 0 0-2.6-.9-4.5.6 2-.1 2.1 1.4 2.1 1.4s-2.7-1-5.1.4c2.9.4 2.7 1.3 2.7 2 0 .5-.8 1.5-1.8-.1-1 .9.3 3 .3 3s-1 0-1.9-2.8c-1.5 2 .2 6.6.2 6.6l-.9-.7c-.6 1.4.1 3.4.1 3.4l-1-1.6c-4.4 13 12.5 34.4 27 34.4s31.4-21.4 27-34.4" fill="#dadee0"/><g fill="#94989b"><path d="m37.7 10.8c-1.8-.3-3.7-.4-5.7-.4s-3.9.1-5.7.4c.7 3.9 2.8 6.6 5.7 11.6 3-5.1 5-7.8 5.7-11.6"/><path d="m46.8 13.8c-1.9-1.1-4.1-1.9-6.5-2.5.6 2.3 1.9 3.9 3.6 6.9 1.3-2.1 2.2-2.7 2.9-4.4"/><path d="m23.7 11.3c-2.5.6-4.6 1.4-6.5 2.5.7 1.8 1.7 2.3 2.9 4.4 1.8-3.1 3-4.7 3.6-6.9"/></g><g fill="#b2b6b8"><path d="m50.3 37.4c12.6-6.4 3.7 10.7 7.5 19.1 1.1 2.5-4 5.5-6.4 5.5-9.5 0-11.9-19.1-1.1-24.6"/><path d="m13.7 37.4c-12.6-6.4-3.7 10.7-7.5 19.1-1.1 2.5 4 5.5 6.4 5.5 9.5 0 11.9-19.1 1.1-24.6"/></g><path d="m36 30.6c-.8-.9-3.3-1-4-1-.7 0-3.2.1-4 1-.6.7-.1 2.3 1.4 3.8 1 .9 1.9 1.2 2.6 1.2.7 0 1.7-.3 2.6-1.2 1.6-1.5 2-3.1 1.4-3.8" fill="#4c5359"/><path d="m39.4 27.3c0 0 .4-5.2 4.1-6.8 4.1-1.9 6.9 2.7 7.6 5.3 1.1 3.9-.3 8.1-.7 9-.3.6-3.3 3.7-10.1.8 0 0-1.7-4.2-.9-8.3" fill="#fff"/><path d="m39.4 27.3c.1-1.8.6-3.7 1.5-5.2.5-.7 1.1-1.4 1.8-1.9.3-.2.7-.4 1.1-.6.4-.2.8-.2 1.2-.3 1.6-.2 3.3.6 4.4 1.9 1.2 1.3 2.1 3 2.5 5 .4 2 .3 4-.1 5.8-.2.9-.5 1.8-.8 2.7l-.1.3-.1.1-.1.1c-.1.1-.1.1-.1.2-.2.2-.3.4-.5.5-.4.3-.7.5-1.1.7-1.5.7-3 .7-4.5.4-1.5-.3-2.9-.8-4.2-1.6 1.4.4 2.9.7 4.3.7 1.4 0 2.8-.2 4.1-.8.3-.2.6-.4.8-.6.1-.1.2-.2.3-.4v-.1c0 0 0 0 0 0l.1-.3c.3-.8.5-1.6.6-2.5.3-1.7.4-3.4 0-5-.3-1.6-1.1-3.1-2.1-4.2-1-1.2-2.2-1.9-3.5-1.8-.3 0-.7.1-1 .2-.3.1-.7.2-1 .4-.6.3-1.2.8-1.7 1.4-.8 1.5-1.4 3.1-1.8 4.9" fill="#b2b6b8"/><ellipse cx="44.3" cy="29.2" rx="2" ry="5" fill="#4c5359"/><path d="m24.6 27.3c0 0-.4-5.2-4.1-6.8-4.1-1.9-6.9 2.7-7.6 5.3-1.1 3.9.3 8.1.7 9 .3.6 3.3 3.7 10.1.8 0 0 1.7-4.2.9-8.3" fill="#fff"/><path d="m24.6 27.3c-.4-1.8-1-3.4-2-4.6-.5-.6-1.1-1.1-1.7-1.4-.3-.2-.6-.3-1-.4-.3-.1-.6-.1-1-.2-1.3 0-2.6.7-3.5 1.8-1 1.1-1.7 2.6-2.1 4.2-.3 1.6-.3 3.3 0 5 .1.8.4 1.7.6 2.5l.1.3c0-.1 0 0 0 0v.1c.1.1.2.2.3.4.3.2.5.4.8.6 1.2.7 2.7.9 4.1.8 1.4 0 2.9-.3 4.3-.7-1.3.8-2.8 1.3-4.2 1.6-1.5.2-3 .2-4.5-.4-.4-.2-.7-.4-1.1-.7-.2-.1-.3-.3-.5-.5 0-.1-.1-.1-.1-.2l-.1-.1-.1-.1-.1-.3c-.3-.9-.6-1.8-.8-2.7-.4-1.9-.5-3.9-.1-5.8.4-2 1.3-3.6 2.5-5 1.2-1.3 2.8-2.2 4.4-1.9.4.1.8.1 1.2.3.4.1.7.3 1.1.6.7.5 1.3 1.1 1.8 1.9 1.1 1.2 1.6 3.1 1.7 4.9" fill="#b2b6b8"/><g fill="#4c5359"><ellipse cx="19.7" cy="29.2" rx="2" ry="5"/><path d="m40 49c0 6.1-3.6 11-8 11-4.4 0-8-4.9-8-11 0-6.1 3.6-11 8-11 4.4 0 8 4.9 8 11"/></g><path d="m33.9 44.7c-.6 0-1.5.6-1.2 2.1.2.8 1.2 1.7 1.2 2.9 0 2.5-3.9 2.5-3.9 0 0-1.2 1.1-2.2 1.2-2.9.3-1.5-.6-2.1-1.2-2.1-1.6 0-4.3 1.8-4.3 4.8 0 3.4 2.8 6.1 6.1 6.1 3.4 0 6.2-2.8 6.2-6.1.1-3-2.5-4.8-4.1-4.8" fill="#363b40"/><path d="m32 54.3c-3.7 0-4.7 1-4.7 1 1 2 2.7 3.3 4.7 3.3 2.1 0 3.8-1.3 4.8-3.3-.1 0-1.1-1-4.8-1" fill="#ff717f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f641.svg b/build/js/jsxc/lib/emojione/assets/svg/1f641.svg
index 1beb89c..aeb3b4f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f641.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f641.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m42.684 47c-1.801-1.061-3.541-1.701-5.322-2.127-1.775-.428-3.566-.609-5.361-.613-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.068-5.322 2.125.771-1.979 2.484-3.533 4.396-4.527 1.932-1 4.119-1.486 6.287-1.484 2.166.004 4.354.486 6.283 1.488 1.909.996 3.624 2.548 4.4 4.523"/><circle cx="20.5" cy="26.592" r="4.5"/><circle cx="43.5" cy="26.592" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="26.6" r="5"/><circle cx="43.5" cy="26.6" r="5"/><path d="m23 47.6c5.8-4.8 12.2-4.8 18 0 .7.6 1.3-.4.8-1.3-1.8-3.4-5.3-6.5-9.8-6.5s-8.1 3.1-9.8 6.5c-.5.9.1 1.9.8 1.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f642.svg b/build/js/jsxc/lib/emojione/assets/svg/1f642.svg
index 23b1e7e..753ef7c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f642.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f642.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m17.316 40.949c2.475 1.455 4.865 2.338 7.314 2.924 2.439.586 4.9.836 7.369.84 2.471-.01 4.93-.26 7.367-.846 2.449-.586 4.838-1.467 7.316-2.918-1.061 2.717-3.416 4.854-6.04 6.221-2.654 1.379-5.662 2.043-8.641 2.041-2.979-.004-5.984-.668-8.637-2.047-2.625-1.367-4.98-3.502-6.05-6.215"/><circle cx="20.502" cy="26.592" r="4.5"/><circle cx="43.502" cy="26.592" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="26.6" r="5"/><circle cx="43.5" cy="26.6" r="5"/><path d="m44.6 40.3c-8.1 5.7-17.1 5.6-25.2 0-1-.7-1.8.5-1.2 1.6 2.5 4 7.4 7.7 13.8 7.7s11.3-3.6 13.8-7.7c.6-1.1-.2-2.3-1.2-1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f643.svg b/build/js/jsxc/lib/emojione/assets/svg/1f643.svg
index fc78562..bdb24a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f643.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f643.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m46.684 23.05c-2.475-1.455-4.865-2.338-7.314-2.924-2.439-.586-4.9-.836-7.369-.84-2.471.01-4.93.26-7.367.846-2.449.586-4.838 1.467-7.316 2.918 1.061-2.717 3.416-4.854 6.04-6.221 2.654-1.379 5.662-2.043 8.641-2.041 2.979.004 5.984.668 8.637 2.047 2.625 1.367 4.98 3.502 6.05 6.215"/><circle cx="43.498" cy="37.408" r="4.5"/><circle cx="20.498" cy="37.408" r="4.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="43.5" cy="37.4" r="5"/><circle cx="20.5" cy="37.4" r="5"/><path d="m19.4 23.7c8.1-5.7 17.1-5.6 25.2 0 1 .7 1.8-.5 1.2-1.6-2.5-4-7.4-7.6-13.8-7.6s-11.3 3.6-13.8 7.6c-.6 1.1.2 2.3 1.2 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f644.svg b/build/js/jsxc/lib/emojione/assets/svg/1f644.svg
index 94c7269..dcb222c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f644.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f644.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="30"/><path fill="#664e27" d="m38.34 50h-12.69c-.873 0-.873-3 0-3h12.689c.874 0 .874 3 .001 3"/><path fill="#fff" d="m51.16 22.301c-.74 2.452-3.164 4.253-6.05 4.253-3.471 0-6.283-2.608-6.283-5.825 0-.539.084-1.059.232-1.554-2.725 1.547-4.566 4.47-4.566 7.826 0 4.971 4.03 9 9 9s9-4.03 9-9c0-1.725-.494-3.331-1.336-4.7"/><path fill="#664e27" d="m45.12 26.554c2.883 0 5.307-1.801 6.05-4.253-1.582-2.576-4.418-4.3-7.664-4.3-1.613 0-3.123.431-4.434 1.174-.148.495-.232 1.015-.232 1.554 0 3.216 2.812 5.825 6.283 5.825"/><path fill="#fff" d="m28.16 22.3c-.741 2.452-3.165 4.253-6.05 4.253-3.471 0-6.284-2.608-6.284-5.825 0-.539.085-1.059.233-1.554-2.725 1.547-4.566 4.47-4.566 7.826 0 4.971 4.03 9 9 9s9-4.03 9-9c0-1.725-.494-3.331-1.336-4.7"/><path fill="#664e27" d="m22.12 26.553c2.882 0 5.306-1.801 6.05-4.253-1.583-2.576-4.419-4.3-7.664-4.3-1.613 0-3.124.431-4.434 1.174-.148.495-.233 1.015-.233 1.554 0 3.216 2.814 5.825 6.284 5.825"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><path d="m45.5 40c6.1 0 11-4.9 11-11 0-1.6-.4-3.2-1-4.6-2.8-1.3-6.3-2-10-2s-7.2.8-10 2c-.6 1.4-1 2.9-1 4.6 0 6.1 4.9 11 11 11" fill="#fff"/><path d="m46 22.4c-.5.7-.8 1.6-.8 2.5 0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-.4-.1-.7-.1-1-2.4-.9-5.2-1.5-8.1-1.5" fill="#664e27"/><path d="m18.5 40c6.1 0 11-4.9 11-11 0-1.6-.4-3.2-1-4.6-2.8-1.3-6.3-2-10-2s-7.2.8-10 2c-.6 1.4-1 2.9-1 4.6 0 6.1 4.9 11 11 11" fill="#fff"/><g fill="#664e27"><path d="m19 22.4c-.5.7-.8 1.6-.8 2.5 0 2.5 2 4.5 4.5 4.5 2.5 0 4.5-2 4.5-4.5 0-.4-.1-.7-.1-1-2.4-.9-5.2-1.5-8.1-1.5"/><path d="m40.6 47.3c-5.4-2.5-11.8-2.5-17.2 0-1.4.7.3 4.2 1.6 3.5 3.6-1.7 8.9-2.3 13.9 0 1.4.6 3.1-2.8 1.7-3.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fb.svg
index 2ba72ee..ac2255e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32.01 1.984c-14.488 0-22.398 9.03-22.398 20.924v35.08h44.795v-35.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m52.4 61.984c0-15-1.389-15.171-20.4-15.171-19.02 0-20.395.171-20.395 15.171h40.795"/><path fill="#ffe1bd" d="m60.708 20.2c-.849.649-5.603 4.324-9.333 7.208.002-.067.009-.128.009-.197 0-4.01-2.537-4.479-2.537-4.479-5.236-1.342-10.664-11.454-10.664-11.454s-14.358 11.455-23.17 11.455c0 0-2.459.655-2.459 4.479 0 .049.005.092.006.141-3.718-2.876-8.415-6.507-9.26-7.152-1.434-1.093-3.084 1.638-1.883 2.961 6.477 7.151 8.455 11.814 12.908 14.384l1.577-3.506c.975 7.02 10.344 14.902 16.06 14.902 5.813 0 15.246-8.143 15.979-15.247l1.733 3.851c4.451-2.57 6.432-7.233 12.908-14.384 1.201-1.325-.449-4.055-1.881-2.962"/><path fill="#c99ff7" d="m42.812 44.39c4.414-3.542 7.43-6.208 7.43-6.208l-3.484-7.887c-2.978 2.749-8.628 5.666-14.752 8.688-6.125-3.02-11.774-5.939-14.752-8.688l-3.484 7.887c0 0 3.02 2.666 7.429 6.207-10.298 5.428-18.16 11.06-12.09 16.588 3.72 3.387 13.696-2.047 22.893-8.455 9.197 6.408 19.18 11.842 22.895 8.455 6.067-5.524-1.793-11.16-12.09-16.587"/><path fill="#e6b796" d="m36.01 36.2c0 1.587-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.149c0 0 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m26.46 29.86c.953 0 .824-2.458.824-2.458-2.918-6.522-9.418-2.394-9.418-2.394-2.529 1.128 1.133 4.694 1.719 4.852 2.752.746 6.875 0 6.875 0"/><circle fill="#664e27" cx="22.652" cy="26.875" r="3.108"/><g fill="#231f20"><circle cx="22.653" cy="26.875" r="1"/><path d="m28.1 28.343c-.795-.971-1.582-1.904-2.494-2.614-.914-.707-1.939-1.154-3.047-1.223-1.105-.107-2.266.128-3.471.355-.6.117-1.221.232-1.869.269-.627.026-1.385-.047-1.834-.529.592.234 1.176.11 1.74-.06.568-.163 1.131-.396 1.719-.594 1.166-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.609.313 1.16.714 1.611 1.195.912.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m37.478 29.86c-.953 0-.824-2.458-.824-2.458 2.918-6.522 9.42-2.394 9.42-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.29" cy="26.875" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.875" r="1"/><path d="m35.837 28.343c.354-1.205.947-2.36 1.863-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.967-.538 1.365-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.871-.269-1.201-.228-2.363-.463-3.469-.355-1.105.069-2.131.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#594640"/><path d="m15.3 33.3c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.7 10.4 9.1 11.8c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.7-9-16.7-16.5" fill="#ffe1bd"/><path d="m32 38.2c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/><path d="m36.8 31.4c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.8" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.8" r="1.2" fill="#2b2925"/><path d="m35.8 30c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31.4c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.8" r="3.5" fill="#664e27"/><path d="m28.1 30c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.8" r="1.2" fill="#2b2925"/><path d="m52.4 62c0-15-1.4-15.2-20.4-15.2-19 0-20.4.2-20.4 15.2 0 0 40.8 0 40.8 0" fill="#b386e2"/><g fill="#f4d3ae"><path d="m4.2 20.2c.8.6 13.9 11.2 13.9 11.2l-3.2 6.1c-4.3-2.5-6.2-7.2-12.5-14.3-1.2-1.4.4-4.1 1.8-3"/><path d="m59.8 20.2c-.8.6-13.9 11.2-13.9 11.2l3.2 6.1c4.3-2.6 6.2-7.2 12.5-14.4 1.2-1.3-.4-4-1.8-2.9"/></g><path d="m42.8 44.4c4.4-3.5 7.4-6.2 7.4-6.2l-3.5-7.9c-2.9 2.7-8.6 5.7-14.7 8.7-6.1-3-11.8-5.9-14.8-8.7l-3.5 7.9c0 0 3 2.7 7.4 6.2-10.2 5.4-18.1 11-12 16.6 3.7 3.4 13.7-2 22.9-8.5 9.2 6.4 19.2 11.8 22.9 8.5 6.1-5.6-1.8-11.2-12.1-16.6" fill="#c99ff7"/><g fill="#b386e2"><path d="M23.1 58.1 42.8 44.4 28.4 58z"/><path d="M21.2 44.4 32 39 20.2 43.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fc.svg
index c3df331..621160c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32.01 1.984c-14.488 0-22.398 9.03-22.398 20.924v35.08h44.795v-35.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m52.4 61.984c0-15-1.389-15.172-20.4-15.172-19.02 0-20.395.172-20.395 15.172h40.795"/><path fill="#fed0ac" d="m60.708 20.2c-.849.649-5.603 4.324-9.333 7.208.002-.067.009-.128.009-.197 0-4.01-2.537-4.479-2.537-4.479-5.236-1.342-10.664-11.454-10.664-11.454s-14.358 11.455-23.17 11.455c0 0-2.459.655-2.459 4.479 0 .049.006.092.006.141-3.718-2.876-8.415-6.507-9.26-7.152-1.434-1.093-3.084 1.638-1.883 2.961 6.477 7.151 8.455 11.814 12.908 14.384l1.576-3.506c.975 7.02 10.345 14.902 16.07 14.902 5.813 0 15.246-8.143 15.979-15.248l1.733 3.852c4.451-2.57 6.432-7.233 12.908-14.384 1.201-1.325-.449-4.055-1.881-2.962"/><path fill="#c99ff7" d="m42.812 44.38c4.414-3.541 7.43-6.207 7.43-6.207l-3.484-7.887c-2.978 2.749-8.628 5.665-14.752 8.688-6.125-3.02-11.773-5.939-14.752-8.688l-3.484 7.887c0 0 3.02 2.666 7.43 6.207-10.299 5.428-18.16 11.06-12.09 16.588 3.719 3.387 13.696-2.047 22.893-8.455 9.197 6.408 19.18 11.842 22.895 8.455 6.067-5.524-1.793-11.16-12.09-16.588"/><path fill="#e0a372" d="m36.01 36.2c0 1.588-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.148c0 0 8.09-.69 8.09.101"/><path fill="#f5f5f5" d="m26.46 29.86c.953 0 .824-2.458.824-2.458-2.918-6.522-9.418-2.394-9.418-2.394-2.529 1.128 1.133 4.694 1.719 4.852 2.752.746 6.875 0 6.875 0"/><circle fill="#664e27" cx="22.652" cy="26.875" r="3.108"/><g fill="#231f20"><circle cx="22.653" cy="26.875" r="1"/><path d="m28.1 28.343c-.795-.971-1.582-1.904-2.494-2.614-.914-.707-1.939-1.154-3.047-1.223-1.105-.107-2.266.128-3.471.355-.6.117-1.221.232-1.869.269-.627.026-1.385-.047-1.834-.529.592.234 1.176.11 1.74-.06.568-.163 1.131-.396 1.719-.594 1.166-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.609.313 1.16.714 1.611 1.195.912.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m37.478 29.86c-.953 0-.824-2.458-.824-2.458 2.918-6.522 9.42-2.394 9.42-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.29" cy="26.875" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.875" r="1"/><path d="m35.837 28.343c.354-1.205.947-2.36 1.863-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.967-.538 1.365-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.871-.269-1.201-.228-2.363-.463-3.469-.355-1.105.069-2.131.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#dbb471"/><path d="m15.3 33.3c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.7 10.4 9.1 11.8c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.3 0-16.7-9-16.7-16.5" fill="#fed0ac"/><path d="m32 38.2c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#e0a372"/><path d="m36.8 31.4c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m44.7 27.8c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5 0-1.9 1.6-3.5 3.5-3.5 1.9.1 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="41.2" cy="27.8" r="1.2" fill="#2b2925"/><path d="m35.8 30c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31.4c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.8" r="3.5" fill="#664e27"/><path d="m28.1 30c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.8" r="1.2" fill="#2b2925"/><path d="m52.4 62c0-15-1.4-15.2-20.4-15.2-19 0-20.4.2-20.4 15.2 0 0 40.8 0 40.8 0" fill="#b386e2"/><g fill="#f2c4a5"><path d="m4.2 20.2c.8.6 13.9 11.2 13.9 11.2l-3.2 6.1c-4.3-2.5-6.2-7.2-12.5-14.3-1.2-1.4.4-4.1 1.8-3"/><path d="m59.8 20.2c-.8.6-13.9 11.2-13.9 11.2l3.2 6.1c4.3-2.6 6.2-7.2 12.5-14.4 1.2-1.3-.4-4-1.8-2.9"/></g><path d="m42.8 44.4c4.4-3.5 7.4-6.2 7.4-6.2l-3.5-7.9c-2.9 2.7-8.6 5.7-14.7 8.7-6.1-3-11.8-5.9-14.8-8.7l-3.5 7.9c0 0 3 2.7 7.4 6.2-10.2 5.4-18.1 11-12 16.6 3.7 3.4 13.7-2 22.9-8.5 9.2 6.4 19.2 11.8 22.9 8.5 6.1-5.6-1.8-11.2-12.1-16.6" fill="#c99ff7"/><g fill="#b386e2"><path d="M23.1 58.1 42.8 44.4 28.4 58z"/><path d="M21.2 44.4 32 39 20.2 43.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fd.svg
index d3f9dd6..4460675 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32.01 1.984c-14.488 0-22.398 9.03-22.398 20.924v35.08h44.795v-35.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m52.4 61.984c0-15-1.389-15.172-20.4-15.172-19.02 0-20.395.172-20.395 15.172h40.795"/><path fill="#d6a57c" d="m60.708 20.2c-.849.649-5.603 4.324-9.333 7.208.002-.067.009-.128.009-.197 0-4.01-2.537-4.479-2.537-4.479-5.236-1.342-10.664-11.454-10.664-11.454s-14.358 11.455-23.17 11.455c0 0-2.459.655-2.459 4.479 0 .049.006.092.006.141-3.718-2.876-8.415-6.507-9.26-7.152-1.434-1.093-3.084 1.638-1.883 2.961 6.477 7.151 8.455 11.814 12.908 14.384l1.576-3.506c.975 7.02 10.345 14.902 16.07 14.902 5.813 0 15.246-8.143 15.979-15.248l1.733 3.852c4.451-2.57 6.432-7.233 12.908-14.384 1.201-1.325-.449-4.055-1.881-2.962"/><path fill="#c99ff7" d="m42.812 44.38c4.414-3.541 7.43-6.207 7.43-6.207l-3.484-7.887c-2.978 2.749-8.628 5.665-14.752 8.688-6.125-3.02-11.773-5.939-14.752-8.688l-3.484 7.887c0 0 3.02 2.666 7.43 6.207-10.299 5.428-18.16 11.06-12.09 16.588 3.719 3.387 13.696-2.047 22.893-8.455 9.197 6.408 19.18 11.842 22.895 8.455 6.067-5.524-1.793-11.16-12.09-16.588"/><path fill="#b58360" d="m36.01 36.2c0 1.588-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.148c0 0 8.09-.69 8.09.101"/><path fill="#f5f5f5" d="m26.46 29.86c.953 0 .824-2.458.824-2.458-2.918-6.522-9.418-2.394-9.418-2.394-2.529 1.128 1.133 4.694 1.719 4.852 2.752.746 6.875 0 6.875 0"/><circle fill="#664e27" cx="22.652" cy="26.875" r="3.108"/><g fill="#231f20"><circle cx="22.653" cy="26.875" r="1"/><path d="m28.1 28.343c-.795-.971-1.582-1.904-2.494-2.614-.914-.707-1.939-1.154-3.047-1.223-1.105-.107-2.266.128-3.471.355-.6.117-1.221.232-1.869.269-.627.026-1.385-.047-1.834-.529.592.234 1.176.11 1.74-.06.568-.163 1.131-.396 1.719-.594 1.166-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.609.313 1.16.714 1.611 1.195.912.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m37.478 29.86c-.953 0-.824-2.458-.824-2.458 2.918-6.522 9.42-2.394 9.42-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.29" cy="26.875" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.875" r="1"/><path d="m35.837 28.343c.354-1.205.947-2.36 1.863-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.967-.538 1.365-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.871-.269-1.201-.228-2.363-.463-3.469-.355-1.105.069-2.131.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.3-12.1-17.3S41.4,2,32,2z" fill="#594640"/><path d="m15.3 33.3c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.7 10.4 9.1 11.8c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.3 0-16.7-9-16.7-16.5" fill="#d6a57c"/><path d="m32 38.2c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0s0 2.3-3.2 2.3" fill="#b58360"/><path d="m36.8 31.4c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.8" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.8" r="1.2" fill="#2b2925"/><path d="m35.8 30c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31.4c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><path d="m19.3 27.8c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5 0-1.9-1.6-3.5-3.5-3.5-2 .1-3.5 1.6-3.5 3.5" fill="#664e27"/><path d="m28.1 30c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.8" r="1.2" fill="#2b2925"/><path d="m52.4 62c0-15-1.4-15.2-20.4-15.2-19 0-20.4.2-20.4 15.2h40.8" fill="#b386e2"/><g fill="#cc9b76"><path d="m4.2 20.2c.8.7 13.9 11.2 13.9 11.2l-3.2 6.1c-4.3-2.5-6.2-7.2-12.5-14.3-1.2-1.4.4-4.1 1.8-3"/><path d="m59.8 20.2c-.8.7-13.9 11.2-13.9 11.2l3.2 6.1c4.3-2.6 6.2-7.2 12.5-14.4 1.2-1.3-.4-4-1.8-2.9"/></g><path d="m42.8 44.4c4.4-3.5 7.4-6.2 7.4-6.2l-3.5-7.9c-3 2.7-8.6 5.7-14.8 8.7-6.1-3-11.8-5.9-14.8-8.7l-3.5 7.9c0 0 3 2.7 7.4 6.2-10.1 5.4-18 11-11.9 16.6 3.7 3.4 13.7-2 22.9-8.5 9.2 6.4 19.2 11.8 22.9 8.5 6.1-5.6-1.8-11.2-12.1-16.6" fill="#c99ff7"/><g fill="#b386e2"><path d="M23.1 58.1 42.8 44.4 28.4 58z"/><path d="M21.2 44.4 32 39 20.2 43.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fe.svg
index 71d8374..2a99eab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.01 1.984c-14.488 0-22.398 9.03-22.398 20.924v35.08h44.795v-35.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m52.4 61.984c0-15-1.389-15.172-20.4-15.172-19.02 0-20.395.172-20.395 15.172h40.795"/><path fill="#b47d56" d="m60.708 20.2c-.849.649-5.603 4.324-9.333 7.208.002-.067.009-.128.009-.197 0-4.01-2.537-4.479-2.537-4.479-5.236-1.342-10.664-11.454-10.664-11.454s-14.358 11.455-23.17 11.455c0 0-2.459.655-2.459 4.479 0 .049.006.092.006.141-3.718-2.876-8.415-6.507-9.26-7.152-1.434-1.093-3.084 1.638-1.883 2.961 6.477 7.151 8.455 11.814 12.908 14.384l1.576-3.506c.975 7.02 10.345 14.902 16.07 14.902 5.813 0 15.246-8.143 15.979-15.248l1.733 3.852c4.451-2.57 6.432-7.233 12.908-14.384 1.201-1.325-.449-4.055-1.881-2.962"/><path fill="#c99ff7" d="m42.812 44.38c4.414-3.541 7.43-6.207 7.43-6.207l-3.484-7.887c-2.978 2.749-8.628 5.665-14.752 8.688-6.125-3.02-11.773-5.939-14.752-8.688l-3.484 7.887c0 0 3.02 2.666 7.43 6.207-10.299 5.428-18.16 11.06-12.09 16.588 3.719 3.387 13.696-2.047 22.893-8.455 9.197 6.408 19.18 11.842 22.895 8.455 6.067-5.524-1.793-11.16-12.09-16.588"/><path fill="#935e3e" d="m36.01 36.2c0 1.588-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.148c0 0 8.09-.69 8.09.101"/><path fill="#f5f5f5" d="m26.46 29.86c.953 0 .824-2.458.824-2.458-2.918-6.522-9.418-2.394-9.418-2.394-2.529 1.128 1.133 4.694 1.719 4.852 2.752.746 6.875 0 6.875 0"/><circle fill="#664e27" cx="22.652" cy="26.875" r="3.108"/><g fill="#231f20"><circle cx="22.653" cy="26.875" r="1"/><path d="m28.1 28.343c-.795-.971-1.582-1.904-2.494-2.614-.914-.707-1.939-1.154-3.047-1.223-1.105-.107-2.266.128-3.471.355-.6.117-1.221.232-1.869.269-.627.026-1.385-.047-1.834-.529.592.234 1.176.11 1.74-.06.568-.163 1.131-.396 1.719-.594 1.166-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.609.313 1.16.714 1.611 1.195.912.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m37.478 29.86c-.953 0-.824-2.458-.824-2.458 2.918-6.522 9.42-2.394 9.42-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.29" cy="26.875" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.875" r="1"/><path d="m35.837 28.343c.354-1.205.947-2.36 1.863-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.967-.538 1.365-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.871-.269-1.201-.228-2.363-.463-3.469-.355-1.105.069-2.131.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.3-12.1-17.3S41.4,2,32,2z" fill="#231f20"/><path d="m15.3 33.3c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.7 10.4 9.1 11.8c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.7-9-16.7-16.5" fill="#b47d56"/><path d="m32 38.2c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/><path d="m36.8 31.4c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.8" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.8" r="1.2" fill="#2b2925"/><path d="m35.8 30c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31.4c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.8" r="3.5" fill="#664e27"/><path d="m28.1 30c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.8" r="1.2" fill="#2b2925"/><path d="m52.4 62c0-15-1.4-15.2-20.4-15.2-19 0-20.4.2-20.4 15.2h40.8" fill="#b386e2"/><g fill="#a8734f"><path d="m4.2 20.2c.8.7 13.9 11.2 13.9 11.2l-3.2 6.1c-4.3-2.5-6.2-7.2-12.5-14.3-1.2-1.4.4-4.1 1.8-3"/><path d="m59.8 20.2c-.8.7-13.9 11.2-13.9 11.2l3.2 6.1c4.3-2.6 6.2-7.2 12.5-14.4 1.2-1.3-.4-4-1.8-2.9"/></g><path d="m42.8 44.4c4.4-3.5 7.4-6.2 7.4-6.2l-3.5-7.9c-3 2.7-8.6 5.7-14.8 8.7-6.1-3-11.8-5.9-14.8-8.7l-3.5 7.9c0 0 3 2.7 7.4 6.2-10.1 5.4-18 11-11.9 16.6 3.7 3.4 13.7-2 22.9-8.5 9.2 6.4 19.2 11.8 22.9 8.5 6.1-5.6-1.8-11.2-12.1-16.6" fill="#c99ff7"/><g fill="#b386e2"><path d="M23.1 58.1 42.8 44.4 28.4 58z"/><path d="M21.2 44.4 32 39 20.2 43.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3ff.svg
index 870d6d7..b32480b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f645-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32.01 1.984c-14.488 0-22.398 9.03-22.398 20.924v35.08h44.795v-35.08c0-17.679-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m52.4 61.984c0-15-1.389-15.172-20.4-15.172-19.02 0-20.395.172-20.395 15.172h40.795"/><path fill="#8a6859" d="m60.708 20.2c-.849.649-5.603 4.324-9.333 7.208.002-.067.009-.128.009-.197 0-4.01-2.537-4.479-2.537-4.479-5.236-1.342-10.664-11.454-10.664-11.454s-14.358 11.455-23.17 11.455c0 0-2.459.655-2.459 4.479 0 .049.006.092.006.141-3.718-2.876-8.415-6.507-9.26-7.152-1.434-1.093-3.084 1.638-1.883 2.961 6.477 7.151 8.455 11.814 12.908 14.384l1.576-3.506c.975 7.02 10.345 14.902 16.07 14.902 5.813 0 15.246-8.143 15.979-15.248l1.733 3.852c4.451-2.57 6.432-7.233 12.908-14.384 1.201-1.325-.449-4.055-1.881-2.962"/><path fill="#c99ff7" d="m42.812 44.38c4.414-3.541 7.43-6.207 7.43-6.207l-3.484-7.887c-2.978 2.749-8.628 5.665-14.752 8.688-6.125-3.02-11.773-5.939-14.752-8.688l-3.484 7.887c0 0 3.02 2.666 7.43 6.207-10.299 5.428-18.16 11.06-12.09 16.588 3.719 3.387 13.696-2.047 22.893-8.455 9.197 6.408 19.18 11.842 22.895 8.455 6.067-5.524-1.793-11.16-12.09-16.588"/><path fill="#705041" d="m36.01 36.2c0 1.588-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.148c0 0 8.09-.69 8.09.101"/><path fill="#f5f5f5" d="m26.46 29.86c.953 0 .824-2.458.824-2.458-2.918-6.522-9.418-2.394-9.418-2.394-2.529 1.128 1.133 4.694 1.719 4.852 2.752.746 6.875 0 6.875 0"/><circle fill="#664e27" cx="22.652" cy="26.875" r="3.108"/><g fill="#231f20"><circle cx="22.653" cy="26.875" r="1"/><path d="m28.1 28.343c-.795-.971-1.582-1.904-2.494-2.614-.914-.707-1.939-1.154-3.047-1.223-1.105-.107-2.266.128-3.471.355-.6.117-1.221.232-1.869.269-.627.026-1.385-.047-1.834-.529.592.234 1.176.11 1.74-.06.568-.163 1.131-.396 1.719-.594 1.166-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.609.313 1.16.714 1.611 1.195.912.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m37.478 29.86c-.953 0-.824-2.458-.824-2.458 2.918-6.522 9.42-2.394 9.42-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.29" cy="26.875" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.875" r="1"/><path d="m35.837 28.343c.354-1.205.947-2.36 1.863-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.967-.538 1.365-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.871-.269-1.201-.228-2.363-.463-3.469-.355-1.105.069-2.131.516-3.045 1.223-.913.71-1.7 1.644-2.495 2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.3-12.1-17.3S41.4,2,32,2z" fill="#231f20"/><path d="m15.3 33.3c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.7 10.4 9.1 11.8c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.3 0-16.7-9-16.7-16.5" fill="#8a6859"/><path d="m32 38.2c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#705041"/><path d="m36.8 31.4c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.8" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.8" r="1.2" fill="#2b2925"/><path d="m35.8 30c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31.4c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.8" r="3.5" fill="#664e27"/><path d="m28.1 30c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.8" r="1.2" fill="#2b2925"/><path d="m52.4 62c0-15-1.4-15.2-20.4-15.2-19 0-20.4.2-20.4 15.2h40.8" fill="#b386e2"/><g fill="#7f5f52"><path d="m4.2 20.2c.8.7 13.9 11.2 13.9 11.2l-3.2 6.1c-4.3-2.5-6.2-7.2-12.5-14.3-1.2-1.4.4-4.1 1.8-3"/><path d="m59.8 20.2c-.8.7-13.9 11.2-13.9 11.2l3.2 6.1c4.3-2.6 6.2-7.2 12.5-14.4 1.2-1.3-.4-4-1.8-2.9"/></g><path d="m42.8 44.4c4.4-3.5 7.4-6.2 7.4-6.2l-3.5-7.9c-3 2.7-8.6 5.7-14.8 8.7-6.1-3-11.8-5.9-14.8-8.7l-3.5 7.9c0 0 3 2.7 7.4 6.2-10.1 5.4-18 11-11.9 16.6 3.7 3.4 13.7-2 22.9-8.5 9.2 6.4 19.2 11.8 22.9 8.5 6.1-5.6-1.8-11.2-12.1-16.6" fill="#c99ff7"/><g fill="#b386e2"><path d="M23.1 58.1 42.8 44.4 28.4 58z"/><path d="M21.2 44.4 32 39 20.2 43.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f645.svg b/build/js/jsxc/lib/emojione/assets/svg/1f645.svg
index f3faef0..d735d25 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f645.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f645.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.984c-14.488 0-22.398 9.03-22.398 20.924v35.08h44.794v-35.08c0-17.679-12.12-17.35-12.12-17.35s-.912-3.574-10.271-3.574"/><path fill="#b386e2" d="m52.4 61.984c0-15-1.389-15.171-20.4-15.171-19.02 0-20.395.171-20.395 15.171h40.795"/><path fill="#ffdd67" d="m60.705 20.2c-.849.649-5.603 4.324-9.333 7.208.001-.067.009-.128.009-.197 0-4.01-2.537-4.479-2.537-4.479-5.237-1.34-10.664-11.453-10.664-11.453s-14.357 11.454-23.17 11.454c0 0-2.459.655-2.459 4.479 0 .049.006.092.006.141-3.718-2.876-8.415-6.507-9.26-7.152-1.434-1.093-3.084 1.638-1.883 2.961 6.477 7.151 8.455 11.813 12.908 14.384l1.576-3.506c.975 7.02 10.345 14.902 16.07 14.902 5.814 0 15.246-8.143 15.979-15.247l1.733 3.851c4.451-2.57 6.432-7.232 12.908-14.384 1.201-1.324-.449-4.055-1.881-2.962"/><path fill="#c99ff7" d="m42.809 44.39c4.414-3.542 7.43-6.208 7.43-6.208l-3.484-7.887c-2.979 2.748-8.627 5.665-14.751 8.688-6.125-3.02-11.773-5.939-14.752-8.688l-3.484 7.887c0 0 3.02 2.666 7.43 6.207-10.299 5.428-18.16 11.06-12.09 16.588 3.719 3.387 13.696-2.047 22.893-8.455 9.197 6.408 19.17 11.842 22.894 8.455 6.067-5.524-1.793-11.16-12.09-16.587"/><path fill="#eba352" d="m36.01 36.2c0 1.587-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.149c-.001 0 8.09-.69 8.09.102"/><path fill="#f5f5f5" d="m26.458 29.86c.953 0 .824-2.458.824-2.458-2.918-6.522-9.418-2.394-9.418-2.394-2.529 1.128 1.133 4.694 1.719 4.852 2.751.746 6.875 0 6.875 0"/><circle fill="#664e27" cx="22.65" cy="26.875" r="3.108"/><g fill="#231f20"><circle cx="22.651" cy="26.875" r="1"/><path d="m28.1 28.344c-.795-.971-1.582-1.904-2.494-2.614-.914-.707-1.939-1.154-3.047-1.223-1.105-.107-2.266.128-3.471.355-.6.117-1.221.232-1.869.269-.627.026-1.385-.047-1.834-.529.592.234 1.176.11 1.74-.06.568-.163 1.131-.396 1.719-.594 1.166-.414 2.451-.754 3.814-.651.676.066 1.354.237 1.969.538.609.313 1.16.714 1.611 1.195.913.953 1.511 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m37.475 29.86c-.953 0-.824-2.458-.824-2.458 2.918-6.522 9.42-2.394 9.42-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.875" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.875" r="1"/><path d="m35.834 28.344c.354-1.205.947-2.36 1.863-3.313.451-.481 1-.882 1.609-1.195.615-.301 1.295-.472 1.967-.538 1.365-.103 2.65.237 3.814.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.738.06-.449.482-1.205.556-1.834.529-.648-.036-1.27-.151-1.871-.269-1.201-.228-2.363-.463-3.469-.355-1.105.069-2.131.516-3.045 1.223-.913.709-1.7 1.643-2.495 2.613"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.3-12.1-17.3S41.4,2,32,2z" fill="#ffb300"/><path d="m15.3 33.3c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.7 10.4 9.1 11.8c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.3 0-16.7-9-16.7-16.5" fill="#ffdd67"/><path d="m32 38.2c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#eba352"/><path d="m36.8 31.4c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.8" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.8" r="1.2" fill="#2b2925"/><path d="m35.8 30c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31.4c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.8" r="3.5" fill="#664e27"/><path d="m28.1 30c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.8" r="1.2" fill="#2b2925"/><path d="m52.4 62c0-15-1.4-15.2-20.4-15.2-19 0-20.4.2-20.4 15.2h40.8" fill="#b386e2"/><g fill="#ffd452"><path d="m4.2 20.2c.8.6 13.9 11.2 13.9 11.2l-3.2 6.1c-4.3-2.5-6.2-7.2-12.5-14.3-1.2-1.4.4-4.1 1.8-3"/><path d="m59.8 20.2c-.8.6-13.9 11.2-13.9 11.2l3.2 6.1c4.3-2.6 6.2-7.2 12.5-14.4 1.2-1.3-.4-4-1.8-2.9"/></g><path d="m42.8 44.4c4.4-3.5 7.4-6.2 7.4-6.2l-3.5-7.9c-3 2.7-8.6 5.7-14.8 8.7-6.1-3-11.8-5.9-14.8-8.7l-3.5 7.9c0 0 3 2.7 7.4 6.2-10.1 5.4-18 11-11.9 16.6 3.7 3.4 13.7-2 22.9-8.5 9.2 6.4 19.2 11.8 22.9 8.5 6.1-5.6-1.8-11.2-12.1-16.6" fill="#c99ff7"/><g fill="#b386e2"><path d="M23.1 58.1 42.8 44.4 28.4 58z"/><path d="M21.2 44.4 32 39 20.2 43.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fb.svg
index aebe112..b8d8dfd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m31.99 1.998c-14.65 0-22.65 9.199-22.65 21.314v26.895h45.3v-26.894c0-18.01-12.262-17.674-12.262-17.674s-.922-3.641-10.387-3.641"/><g fill="#ffe1bd"><path d="m45.781 8.799l3.504-2.844c0 0-4.91-4.525-13.166-3.896-2.424.184-2.363 2.443-1.061 2.588 8.01.888 7.713 3.037 10.723 4.152"/><path d="m18.2 8.799l-3.504-2.844c0 0 4.91-4.525 13.164-3.896 2.426.184 2.365 2.443 1.061 2.588-8.01.888-7.713 3.037-10.721 4.152"/></g><path fill="#c28fef" d="m62.729 25.824c-1.309-5.15-7.947-12.13-13.367-20.426l-6.924 4.688c0 0 6.717 6.096 11 19.04-2.466 5.851-5.442 14.925-9.725 17.594-2.424-1.173-6.128-1.207-11.73-1.207-5.588 0-9.287.033-11.711 1.197-4.273-2.682-7.245-11.741-9.709-17.584 4.287-12.941 11.01-19.04 11.01-19.04l-6.926-4.688c-5.42 8.299-12.06 15.276-13.368 20.426-2.422 9.531 11.957 29.29 11.76 36.17h2.912 3.152 25.801 3.121 2.943c-.197-6.879 14.184-26.643 11.761-36.17"/><path fill="#ffe1bd" d="m15.836 33.445c0 0-3.262-.828-3.262-5.623 0-3.797 2.459-4.449 2.459-4.449 8.811 0 23.17-11.375 23.17-11.375s5.428 10.04 10.664 11.375c0 0 2.537.465 2.537 4.449 0 4.795-3.385 5.623-3.385 5.623-.045 7.232-9.992 15.959-16.03 15.959-6.04 0-16.15-8.726-16.15-15.959"/><path fill="#e6b796" d="m36.03 36.748c0 1.576-3.289 2.033-4.04 2.033-.756 0-4.047-.561-4.047-2.137 0 .001 8.09-.683 8.09.104"/><path fill="#f5f5f5" d="m26.48 30.449c.951 0 .824-2.441.824-2.441-2.92-6.479-9.42-2.379-9.42-2.379-2.527 1.121 1.133 4.664 1.719 4.82 2.754.74 6.877 0 6.877 0"/><ellipse fill="#664e27" cx="22.673" cy="27.482" rx="3.108" ry="3.09"/><g fill="#231f20"><circle cx="22.672" cy="27.482" r="1"/><path d="m28.12 28.941c-.795-.963-1.582-1.891-2.496-2.596-.912-.703-1.938-1.146-3.045-1.215-1.107-.105-2.268.127-3.471.354-.602.117-1.223.23-1.871.268-.627.025-1.385-.047-1.832-.527.592.234 1.174.109 1.738-.059.568-.162 1.131-.395 1.721-.59 1.164-.41 2.451-.748 3.814-.646.676.066 1.354.236 1.969.535.607.311 1.16.709 1.611 1.186.913.947 1.509 2.095 1.862 3.29"/></g><path fill="#f5f5f5" d="m37.498 30.449c-.953 0-.826-2.441-.826-2.441 2.92-6.479 9.422-2.379 9.422-2.379 2.527 1.121-1.133 4.664-1.721 4.82-2.75.74-6.875 0-6.875 0"/><ellipse fill="#664e27" cx="41.3" cy="27.482" rx="3.109" ry="3.09"/><g fill="#231f20"><ellipse cx="41.31" cy="27.482" rx="1" ry=".994"/><path d="m35.857 28.941c.354-1.195.947-2.344 1.861-3.291.451-.477 1-.875 1.609-1.186.615-.299 1.295-.469 1.969-.535 1.363-.102 2.65.236 3.814.646.59.195 1.154.428 1.723.59.563.168 1.146.293 1.738.059-.449.48-1.205.553-1.834.527-.648-.037-1.27-.15-1.873-.268-1.199-.227-2.361-.459-3.467-.354-1.105.068-2.133.512-3.045 1.215-.913.707-1.7 1.635-2.495 2.597"/></g><path fill="#f09985" d="m34.861 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.133-.377-1.988-.445-2.576-.301-1.752.424-4.408.217-4.408.217 1.932 1.916 2.85 4.533 7.281 4.533 4.43 0 5.348-2.617 7.277-4.533.001 0-2.656.207-4.406-.217"/><path fill="#d47f6c" d="m34.861 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.133-.377-1.988-.445-2.576-.301-1.721.416-4.416.215-4.408.217 2.914.52 3.277 1.998 7.281 1.998 4 0 4.365-1.479 7.277-1.998.012-.002-2.687.199-4.406-.217"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.3,2,9.3,11.2,9.3,23.3v26.9h45.3V23.3c0-18-12.3-17.7-12.3-17.7S41.5,2,32,2z" fill="#594640"/><g fill="#ffe1bd"><path d="m31.2 3.2c0-.7-5-.6-6.5-.6-2.6 0-9.8 3.8-9.8 3.8s3.2 4 4.8 4c2.2 0 4.4-1.5 4.4-3.6 0-1.6 7.1-1.5 7.1-3.6"/><path d="m32.8 3.2c0-.7 5-.6 6.5-.6 2.6 0 9.8 3.8 9.8 3.8s-3.2 4-4.8 4c-2.2 0-4.4-1.5-4.4-3.6 0-1.6-7.1-1.5-7.1-3.6"/></g><path d="m61.7 25.8c-1.3-5.1-7.2-12.1-12.5-20.4l-5.9 5.7c0 0 5.7 5.1 9.9 18-2.4 5.9-5.4 14.9-9.6 17.6-2.4-1.2-6.1-1.2-11.6-1.2-5.5 0-9.2 0-11.6 1.2-4.2-2.7-7.2-11.7-9.6-17.6 4.2-12.9 9.9-18 9.9-18l-5.9-5.7c-5.4 8.3-11.2 15.3-12.5 20.4-2.4 9.6 11.1 29.3 10.9 36.2h37.6c-.2-6.9 13.3-26.6 10.9-36.2" fill="#c28fef"/><path d="m15.3 33.5c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-8.9-16.5-16.4" fill="#ffe1bd"/><path d="m32 38.4c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/><path d="m36.8 31.6c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="28" r="3.5" fill="#664e27"/><circle cx="41.2" cy="28" r="1.2" fill="#2b2925"/><path d="m35.8 30.2c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 31.6c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="28" r="3.5" fill="#664e27"/><path d="m28.1 30.2c-1.7-10.5-10.4-3.5-13.8-5 3.5 3.2 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m32 42.2l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#e08672"/><path d="m35 40.8c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#b86e5d"/><circle cx="22.8" cy="28" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fc.svg
index 586c688..f16fa5a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m31.99 1.998c-14.65 0-22.65 9.199-22.65 21.315v26.895h45.3v-26.895c0-18.01-12.262-17.674-12.262-17.674s-.921-3.641-10.385-3.641"/><g fill="#fed0ac"><path d="m45.78 8.799l3.504-2.844c0 0-4.91-4.525-13.166-3.896-2.424.184-2.363 2.443-1.061 2.588 8.01.888 7.714 3.037 10.723 4.152"/><path d="m18.2 8.799l-3.504-2.844c0 0 4.91-4.525 13.164-3.896 2.426.184 2.365 2.443 1.061 2.588-8.01.888-7.713 3.037-10.721 4.152"/></g><path fill="#c28fef" d="m62.728 25.824c-1.309-5.15-7.947-12.13-13.367-20.426l-6.924 4.688c0 0 6.717 6.096 11 19.04-2.466 5.851-5.442 14.925-9.725 17.594-2.424-1.173-6.128-1.207-11.73-1.207-5.588 0-9.288.033-11.711 1.197-4.273-2.682-7.245-11.74-9.708-17.584 4.287-12.941 11.01-19.04 11.01-19.04l-6.926-4.688c-5.42 8.299-12.06 15.276-13.367 20.426-2.422 9.531 11.957 29.29 11.76 36.17h2.912 3.152 25.799 3.121 2.943c-.196-6.879 14.185-26.643 11.761-36.17"/><path fill="#fed0ac" d="m15.836 33.445c0 0-3.262-.828-3.262-5.623 0-3.797 2.459-4.449 2.459-4.449 8.811 0 23.17-11.375 23.17-11.375s5.428 10.04 10.664 11.375c0 0 2.537.465 2.537 4.449 0 4.795-3.385 5.623-3.385 5.623-.045 7.232-9.992 15.959-16.03 15.959-6.04 0-16.15-8.726-16.15-15.959"/><path fill="#e0a372" d="m36.03 36.748c0 1.576-3.289 2.033-4.04 2.033-.756 0-4.046-.561-4.046-2.137 0 .001 8.09-.683 8.09.104"/><path fill="#f5f5f5" d="m26.481 30.449c.951 0 .824-2.441.824-2.441-2.92-6.479-9.42-2.379-9.42-2.379-2.527 1.121 1.133 4.664 1.719 4.82 2.754.74 6.877 0 6.877 0"/><ellipse fill="#664e27" cx="22.673" cy="27.482" rx="3.108" ry="3.09"/><g fill="#231f20"><circle cx="22.672" cy="27.482" r="1"/><path d="m28.12 28.941c-.795-.963-1.582-1.891-2.496-2.596-.912-.703-1.938-1.146-3.045-1.215-1.107-.105-2.268.127-3.471.354-.602.117-1.223.23-1.871.268-.627.025-1.385-.047-1.832-.527.592.234 1.174.109 1.738-.059.568-.162 1.131-.395 1.721-.59 1.164-.41 2.451-.748 3.814-.646.676.066 1.354.236 1.969.535.607.311 1.16.709 1.611 1.186.912.947 1.508 2.095 1.862 3.29"/></g><path fill="#f5f5f5" d="m37.497 30.449c-.953 0-.826-2.441-.826-2.441 2.92-6.479 9.422-2.379 9.422-2.379 2.527 1.121-1.133 4.664-1.721 4.82-2.75.74-6.875 0-6.875 0"/><ellipse fill="#664e27" cx="41.3" cy="27.482" rx="3.109" ry="3.09"/><g fill="#231f20"><ellipse cx="41.3" cy="27.482" rx="1" ry=".994"/><path d="m35.856 28.941c.354-1.195.947-2.344 1.861-3.291.451-.477 1-.875 1.609-1.186.615-.299 1.295-.469 1.969-.535 1.363-.102 2.65.236 3.814.646.59.195 1.154.428 1.723.59.563.168 1.146.293 1.738.059-.449.48-1.205.553-1.834.527-.648-.037-1.27-.15-1.873-.268-1.199-.227-2.361-.459-3.467-.354-1.105.068-2.133.512-3.045 1.215-.913.707-1.7 1.635-2.495 2.597"/></g><path fill="#e08672" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.752.424-4.408.217-4.408.217 1.932 1.916 2.85 4.533 7.28 4.533 4.429 0 5.347-2.617 7.277-4.533.001 0-2.656.207-4.406-.217"/><path fill="#b86e5d" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.721.416-4.416.215-4.408.217 2.914.52 3.277 1.998 7.28 1.998 4 0 4.365-1.479 7.277-1.998.012-.002-2.687.199-4.406-.217"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.3,2,9.3,11.2,9.3,23.3v26.9h45.3V23.3c0-18-12.3-17.7-12.3-17.7S41.5,2,32,2z" fill="#dbb471"/><g fill="#fed0ac"><path d="m31.2 3.2c0-.7-5-.6-6.5-.6-2.6 0-9.8 3.8-9.8 3.8s3.2 4 4.8 4c2.2 0 4.4-1.5 4.4-3.6 0-1.6 7.1-1.5 7.1-3.6"/><path d="m32.8 3.2c0-.7 5-.6 6.5-.6 2.6 0 9.8 3.8 9.8 3.8s-3.2 4-4.8 4c-2.2 0-4.4-1.5-4.4-3.6 0-1.6-7.1-1.5-7.1-3.6"/></g><path d="m61.7 25.8c-1.3-5.1-7.2-12.1-12.5-20.4l-5.9 5.7c0 0 5.7 5.1 9.9 18-2.4 5.9-5.4 14.9-9.6 17.6-2.4-1.2-6.1-1.2-11.6-1.2-5.5 0-9.2 0-11.6 1.2-4.2-2.7-7.2-11.7-9.6-17.6 4.2-12.9 9.9-18 9.9-18l-5.9-5.7c-5.4 8.3-11.2 15.3-12.5 20.4-2.4 9.6 11.1 29.3 10.9 36.2h37.6c-.2-6.9 13.3-26.6 10.9-36.2" fill="#c28fef"/><path d="m15.3 33.5c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.5-8.9-16.5-16.4" fill="#fed0ac"/><path d="m32 38.4c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0 0 2.3-3.2 2.3" fill="#e0a372"/><path d="m36.8 31.6c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="28" r="3.5" fill="#664e27"/><circle cx="41.2" cy="28" r="1.2" fill="#2b2925"/><path d="m35.8 30.2c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 31.6c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m19.3 28c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5s-1.6-3.5-3.5-3.5c-2 0-3.5 1.6-3.5 3.5" fill="#664e27"/><path d="m28.1 30.2c-1.7-10.5-10.4-3.5-13.8-5 3.5 3.2 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m32 42.2l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#e08672"/><path d="m35 40.8c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#b86e5d"/><circle cx="22.8" cy="28" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fd.svg
index ae045f6..9bc563c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m31.99 1.998c-14.65 0-22.65 9.199-22.65 21.315v26.895h45.3v-26.895c0-18.01-12.262-17.674-12.262-17.674s-.921-3.641-10.385-3.641"/><g fill="#d6a57c"><path d="m45.78 8.799l3.504-2.844c0 0-4.91-4.525-13.166-3.896-2.424.184-2.363 2.443-1.061 2.588 8.01.888 7.714 3.037 10.723 4.152"/><path d="m18.2 8.799l-3.504-2.844c0 0 4.91-4.525 13.164-3.896 2.426.184 2.365 2.443 1.061 2.588-8.01.888-7.713 3.037-10.721 4.152"/></g><path fill="#c28fef" d="m62.728 25.824c-1.309-5.15-7.947-12.13-13.367-20.426l-6.924 4.688c0 0 6.717 6.096 11 19.04-2.466 5.851-5.442 14.925-9.725 17.594-2.424-1.173-6.128-1.207-11.73-1.207-5.588 0-9.288.033-11.711 1.197-4.273-2.682-7.245-11.74-9.708-17.584 4.287-12.941 11.01-19.04 11.01-19.04l-6.926-4.688c-5.42 8.299-12.06 15.276-13.367 20.426-2.422 9.531 11.957 29.29 11.76 36.17h2.912 3.152 25.799 3.121 2.943c-.196-6.879 14.184-26.643 11.761-36.17"/><path fill="#d6a57c" d="m15.836 33.445c0 0-3.262-.828-3.262-5.623 0-3.797 2.459-4.449 2.459-4.449 8.811 0 23.17-11.375 23.17-11.375s5.428 10.04 10.664 11.375c0 0 2.537.465 2.537 4.449 0 4.795-3.385 5.623-3.385 5.623-.045 7.232-9.992 15.959-16.03 15.959-6.04 0-16.15-8.726-16.15-15.959"/><path fill="#b58360" d="m36.03 36.748c0 1.576-3.289 2.033-4.04 2.033-.756 0-4.046-.561-4.046-2.137 0 .001 8.09-.683 8.09.104"/><path fill="#f5f5f5" d="m26.481 30.449c.951 0 .824-2.441.824-2.441-2.92-6.479-9.42-2.379-9.42-2.379-2.527 1.121 1.133 4.664 1.719 4.82 2.754.74 6.877 0 6.877 0"/><ellipse fill="#664e27" cx="22.673" cy="27.482" rx="3.108" ry="3.09"/><g fill="#231f20"><circle cx="22.672" cy="27.482" r="1"/><path d="m28.12 28.941c-.795-.963-1.582-1.891-2.496-2.596-.912-.703-1.938-1.146-3.045-1.215-1.107-.105-2.268.127-3.471.354-.602.117-1.223.23-1.871.268-.627.025-1.385-.047-1.832-.527.592.234 1.174.109 1.738-.059.568-.162 1.131-.395 1.721-.59 1.164-.41 2.451-.748 3.814-.646.676.066 1.354.236 1.969.535.607.311 1.16.709 1.611 1.186.912.947 1.508 2.095 1.862 3.29"/></g><path fill="#f5f5f5" d="m37.497 30.449c-.953 0-.826-2.441-.826-2.441 2.92-6.479 9.422-2.379 9.422-2.379 2.527 1.121-1.133 4.664-1.721 4.82-2.75.74-6.875 0-6.875 0"/><ellipse fill="#664e27" cx="41.3" cy="27.482" rx="3.109" ry="3.09"/><g fill="#231f20"><ellipse cx="41.3" cy="27.482" rx="1" ry=".994"/><path d="m35.856 28.941c.354-1.195.947-2.344 1.861-3.291.451-.477 1-.875 1.609-1.186.615-.299 1.295-.469 1.969-.535 1.363-.102 2.65.236 3.814.646.59.195 1.154.428 1.723.59.563.168 1.146.293 1.738.059-.449.48-1.205.553-1.834.527-.648-.037-1.27-.15-1.873-.268-1.199-.227-2.361-.459-3.467-.354-1.105.068-2.133.512-3.045 1.215-.913.707-1.7 1.635-2.495 2.597"/></g><path fill="#b58360" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.752.424-4.408.217-4.408.217 1.932 1.916 2.85 4.533 7.28 4.533 4.429 0 5.347-2.617 7.277-4.533.001 0-2.656.207-4.406-.217"/><path fill="#805c44" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.721.416-4.416.215-4.408.217 2.914.52 3.277 1.998 7.28 1.998 4 0 4.365-1.479 7.277-1.998.012-.002-2.687.199-4.406-.217"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.3,2,9.3,11.2,9.3,23.3v26.9h45.3V23.3c0-18-12.3-17.7-12.3-17.7S41.5,2,32,2z" fill="#594640"/><g fill="#d6a57c"><path d="m31.2 3.2c0-.7-5-.6-6.5-.6-2.6 0-9.8 3.8-9.8 3.8s3.2 4 4.8 4c2.2 0 4.4-1.5 4.4-3.6 0-1.6 7.1-1.5 7.1-3.6"/><path d="m32.8 3.2c0-.7 5-.6 6.5-.6 2.6 0 9.8 3.8 9.8 3.8s-3.2 4-4.8 4c-2.2 0-4.4-1.5-4.4-3.6 0-1.6-7.1-1.5-7.1-3.6"/></g><path d="m61.7 25.8c-1.3-5.1-7.2-12.1-12.5-20.4l-5.9 5.7c0 0 5.7 5.1 9.9 18-2.4 5.9-5.4 14.9-9.6 17.6-2.4-1.2-6.1-1.2-11.6-1.2-5.5 0-9.2 0-11.6 1.2-4.2-2.7-7.2-11.7-9.6-17.6 4.2-12.9 9.9-18 9.9-18l-5.9-5.7c-5.4 8.3-11.2 15.3-12.5 20.4-2.4 9.6 11.1 29.3 10.9 36.2h37.6c-.2-6.9 13.3-26.6 10.9-36.2" fill="#c28fef"/><path d="m15.3 33.5c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-8.9-16.5-16.4" fill="#d6a57c"/><path d="m32 38.4c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#b58360"/><path d="m36.8 31.6c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><path d="m44.7 28c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5s1.6-3.5 3.5-3.5c1.9 0 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="41.2" cy="28" r="1.2" fill="#2b2925"/><path d="m35.8 30.2c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 31.6c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="28" r="3.5" fill="#664e27"/><path d="m28.1 30.2c-1.7-10.5-10.4-3.5-13.8-5 3.5 3.2 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m32 42.2l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#b58360"/><path d="m35 40.8c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9s4.6-1.3 7.7-1.9c0 0-2.9.4-4.7-.3" fill="#805c44"/><circle cx="22.8" cy="28" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fe.svg
index a3c6dcc..5392c73 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m31.989 1.998c-14.649 0-22.649 9.199-22.649 21.315v26.895h45.3v-26.895c0-18.01-12.262-17.674-12.262-17.674s-.922-3.641-10.387-3.641"/><g fill="#b47d56"><path d="m45.78 8.799l3.504-2.844c0 0-4.91-4.525-13.166-3.896-2.424.184-2.363 2.443-1.061 2.588 8.01.888 7.714 3.037 10.723 4.152"/><path d="m18.2 8.799l-3.504-2.844c0 0 4.91-4.525 13.164-3.896 2.426.184 2.365 2.443 1.061 2.588-8.01.888-7.713 3.037-10.721 4.152"/></g><path fill="#c28fef" d="m62.728 25.824c-1.309-5.15-7.947-12.13-13.367-20.426l-6.924 4.688c0 0 6.717 6.096 11 19.04-2.466 5.851-5.442 14.925-9.725 17.594-2.424-1.173-6.128-1.207-11.73-1.207-5.588 0-9.288.033-11.711 1.197-4.273-2.682-7.245-11.74-9.708-17.584 4.287-12.941 11.01-19.04 11.01-19.04l-6.926-4.688c-5.42 8.299-12.06 15.276-13.368 20.426-2.422 9.531 11.957 29.29 11.76 36.17h2.912 3.152 25.8 3.121 2.943c-.196-6.879 14.184-26.643 11.761-36.17"/><path fill="#b47d56" d="m15.836 33.445c0 0-3.262-.828-3.262-5.623 0-3.797 2.459-4.449 2.459-4.449 8.811 0 23.17-11.375 23.17-11.375s5.428 10.04 10.664 11.375c0 0 2.537.465 2.537 4.449 0 4.795-3.385 5.623-3.385 5.623-.045 7.232-9.992 15.959-16.03 15.959-6.04 0-16.15-8.726-16.15-15.959"/><path fill="#935e3e" d="m36.03 36.748c0 1.576-3.289 2.033-4.04 2.033-.756 0-4.046-.561-4.046-2.137 0 .001 8.089-.683 8.089.104"/><path fill="#f5f5f5" d="m26.48 30.449c.951 0 .824-2.441.824-2.441-2.92-6.479-9.42-2.379-9.42-2.379-2.527 1.121 1.133 4.664 1.719 4.82 2.754.74 6.877 0 6.877 0"/><ellipse fill="#664e27" cx="22.673" cy="27.482" rx="3.108" ry="3.09"/><g fill="#231f20"><circle cx="22.672" cy="27.482" r="1"/><path d="m28.12 28.941c-.795-.963-1.582-1.891-2.496-2.596-.912-.703-1.938-1.146-3.045-1.215-1.107-.105-2.268.127-3.471.354-.602.117-1.223.23-1.871.268-.627.025-1.385-.047-1.832-.527.592.234 1.174.109 1.738-.059.568-.162 1.131-.395 1.721-.59 1.164-.41 2.451-.748 3.814-.646.676.066 1.354.236 1.969.535.607.311 1.16.709 1.611 1.186.913.947 1.509 2.095 1.862 3.29"/></g><path fill="#f5f5f5" d="m37.497 30.449c-.953 0-.826-2.441-.826-2.441 2.92-6.479 9.422-2.379 9.422-2.379 2.527 1.121-1.133 4.664-1.721 4.82-2.75.74-6.875 0-6.875 0"/><ellipse fill="#664e27" cx="41.3" cy="27.482" rx="3.109" ry="3.09"/><g fill="#231f20"><ellipse cx="41.3" cy="27.482" rx="1" ry=".994"/><path d="m35.856 28.941c.354-1.195.947-2.344 1.861-3.291.451-.477 1-.875 1.609-1.186.615-.299 1.295-.469 1.969-.535 1.363-.102 2.65.236 3.814.646.59.195 1.154.428 1.723.59.563.168 1.146.293 1.738.059-.449.48-1.205.553-1.834.527-.648-.037-1.27-.15-1.873-.268-1.199-.227-2.361-.459-3.467-.354-1.105.068-2.133.512-3.045 1.215-.913.707-1.7 1.635-2.495 2.597"/></g><path fill="#935e3e" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.752.424-4.408.217-4.408.217 1.932 1.916 2.85 4.533 7.28 4.533 4.43 0 5.348-2.617 7.277-4.533.001 0-2.656.207-4.406-.217"/><path fill="#734c31" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.721.416-4.416.215-4.408.217 2.914.52 3.277 1.998 7.28 1.998 4 0 4.365-1.479 7.277-1.998.012-.002-2.687.199-4.406-.217"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.3,2,9.3,11.2,9.3,23.3v26.9h45.3V23.3c0-18-12.3-17.7-12.3-17.7S41.5,2,32,2z" fill="#231f20"/><g fill="#b47d56"><path d="m31.2 3.2c0-.7-5-.6-6.5-.6-2.6 0-9.8 3.8-9.8 3.8s3.2 4 4.8 4c2.2 0 4.4-1.5 4.4-3.6 0-1.6 7.1-1.5 7.1-3.6"/><path d="m32.8 3.2c0-.7 5-.6 6.5-.6 2.6 0 9.8 3.8 9.8 3.8s-3.2 4-4.8 4c-2.2 0-4.4-1.5-4.4-3.6 0-1.6-7.1-1.5-7.1-3.6"/></g><path d="m61.7 25.8c-1.3-5.2-7.2-12.1-12.5-20.4l-5.9 5.7c0 0 5.7 5.1 9.9 18-2.4 5.9-5.4 14.9-9.6 17.6-2.4-1.2-6.1-1.2-11.6-1.2-5.5 0-9.2 0-11.6 1.2-4.2-2.7-7.2-11.7-9.6-17.6 4.2-12.9 9.9-18 9.9-18l-5.9-5.7c-5.4 8.3-11.2 15.3-12.5 20.4-2.4 9.6 11.1 29.3 10.9 36.2h37.6c-.2-6.9 13.3-26.6 10.9-36.2" fill="#c28fef"/><path d="m15.3 33.5c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-8.9-16.5-16.4" fill="#b47d56"/><path d="m32 38.4c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/><path d="m36.8 31.6c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="28" r="3.5" fill="#664e27"/><circle cx="41.2" cy="28" r="1.2" fill="#2b2925"/><path d="m35.8 30.2c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 31.6c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="28" r="3.5" fill="#664e27"/><path d="m28.1 30.2c-1.7-10.5-10.4-3.5-13.8-5 3.5 3.2 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m32 42.2l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#935e3e"/><path d="m35 40.8c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#734c31"/><circle cx="22.8" cy="28" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3ff.svg
index b2ec41c..6a43d0b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f646-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m31.989 1.998c-14.649 0-22.649 9.199-22.649 21.315v26.895h45.3v-26.895c0-18.01-12.262-17.674-12.262-17.674s-.922-3.641-10.387-3.641"/><g fill="#8a6859"><path d="m45.78 8.799l3.504-2.844c0 0-4.91-4.525-13.166-3.896-2.424.184-2.363 2.443-1.061 2.588 8.01.888 7.714 3.037 10.723 4.152"/><path d="m18.2 8.799l-3.504-2.844c0 0 4.91-4.525 13.164-3.896 2.426.184 2.365 2.443 1.061 2.588-8.01.888-7.713 3.037-10.721 4.152"/></g><path fill="#c28fef" d="m62.728 25.824c-1.309-5.15-7.947-12.13-13.367-20.426l-6.924 4.688c0 0 6.717 6.096 11 19.04-2.466 5.851-5.442 14.925-9.725 17.594-2.424-1.173-6.128-1.207-11.73-1.207-5.588 0-9.288.033-11.711 1.197-4.273-2.682-7.245-11.74-9.708-17.584 4.287-12.941 11.01-19.04 11.01-19.04l-6.926-4.688c-5.42 8.299-12.06 15.276-13.368 20.426-2.422 9.531 11.957 29.29 11.76 36.17h2.912 3.152 25.8 3.121 2.943c-.196-6.879 14.184-26.643 11.761-36.17"/><path fill="#8a6859" d="m15.836 33.445c0 0-3.262-.828-3.262-5.623 0-3.797 2.459-4.449 2.459-4.449 8.811 0 23.17-11.375 23.17-11.375s5.428 10.04 10.664 11.375c0 0 2.537.465 2.537 4.449 0 4.795-3.385 5.623-3.385 5.623-.045 7.232-9.992 15.959-16.03 15.959-6.04 0-16.15-8.726-16.15-15.959"/><path fill="#705041" d="m36.03 36.748c0 1.576-3.289 2.033-4.04 2.033-.756 0-4.046-.561-4.046-2.137 0 .001 8.089-.683 8.089.104"/><path fill="#f5f5f5" d="m26.48 30.449c.951 0 .824-2.441.824-2.441-2.92-6.479-9.42-2.379-9.42-2.379-2.527 1.121 1.133 4.664 1.719 4.82 2.754.74 6.877 0 6.877 0"/><ellipse fill="#664e27" cx="22.673" cy="27.482" rx="3.108" ry="3.09"/><g fill="#231f20"><circle cx="22.672" cy="27.482" r="1"/><path d="m28.12 28.941c-.795-.963-1.582-1.891-2.496-2.596-.912-.703-1.938-1.146-3.045-1.215-1.107-.105-2.268.127-3.471.354-.602.117-1.223.23-1.871.268-.627.025-1.385-.047-1.832-.527.592.234 1.174.109 1.738-.059.568-.162 1.131-.395 1.721-.59 1.164-.41 2.451-.748 3.814-.646.676.066 1.354.236 1.969.535.607.311 1.16.709 1.611 1.186.913.947 1.509 2.095 1.862 3.29"/></g><path fill="#f5f5f5" d="m37.497 30.449c-.953 0-.826-2.441-.826-2.441 2.92-6.479 9.422-2.379 9.422-2.379 2.527 1.121-1.133 4.664-1.721 4.82-2.75.74-6.875 0-6.875 0"/><ellipse fill="#664e27" cx="41.3" cy="27.482" rx="3.109" ry="3.09"/><g fill="#231f20"><ellipse cx="41.3" cy="27.482" rx="1" ry=".994"/><path d="m35.856 28.941c.354-1.195.947-2.344 1.861-3.291.451-.477 1-.875 1.609-1.186.615-.299 1.295-.469 1.969-.535 1.363-.102 2.65.236 3.814.646.59.195 1.154.428 1.723.59.563.168 1.146.293 1.738.059-.449.48-1.205.553-1.834.527-.648-.037-1.27-.15-1.873-.268-1.199-.227-2.361-.459-3.467-.354-1.105.068-2.133.512-3.045 1.215-.913.707-1.7 1.635-2.495 2.597"/></g><path fill="#7d5442" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.752.424-4.408.217-4.408.217 1.932 1.916 2.85 4.533 7.28 4.533 4.43 0 5.348-2.617 7.277-4.533.001 0-2.656.207-4.406-.217"/><path fill="#5c3f34" d="m34.86 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.132-.377-1.987-.445-2.575-.301-1.721.416-4.416.215-4.408.217 2.914.52 3.277 1.998 7.28 1.998 4 0 4.365-1.479 7.277-1.998.012-.002-2.687.199-4.406-.217"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.3,2,9.3,11.2,9.3,23.3v26.9h45.3V23.3c0-18-12.3-17.7-12.3-17.7S41.5,2,32,2z" fill="#231f20"/><g fill="#8a6859"><path d="m31.2 3.2c0-.7-5-.6-6.5-.6-2.6 0-9.8 3.8-9.8 3.8s3.2 4 4.8 4c2.2 0 4.4-1.5 4.4-3.6 0-1.6 7.1-1.5 7.1-3.6"/><path d="m32.8 3.2c0-.7 5-.6 6.5-.6 2.6 0 9.8 3.8 9.8 3.8s-3.2 4-4.8 4c-2.2 0-4.4-1.5-4.4-3.6 0-1.6-7.1-1.5-7.1-3.6"/></g><path d="m61.7 25.8c-1.3-5.1-7.2-12.1-12.5-20.4l-5.9 5.7c0 0 5.7 5.1 9.9 18-2.4 5.9-5.4 14.9-9.6 17.6-2.4-1.2-6.1-1.2-11.6-1.2-5.5 0-9.2 0-11.6 1.2-4.2-2.7-7.2-11.7-9.6-17.6 4.2-12.9 9.9-18 9.9-18l-5.9-5.7c-5.4 8.3-11.2 15.3-12.5 20.4-2.4 9.6 11.1 29.3 10.9 36.2h37.6c-.2-6.9 13.3-26.6 10.9-36.2" fill="#c28fef"/><path d="m15.3 33.5c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-8.9-16.5-16.4" fill="#8a6859"/><path d="m32 38.4c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#705041"/><path d="m36.8 31.6c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="28" r="3.5" fill="#664e27"/><circle cx="41.2" cy="28" r="1.2" fill="#2b2925"/><path d="m35.8 30.2c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 31.6c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="28" r="3.5" fill="#664e27"/><path d="m28.1 30.2c-1.7-10.5-10.4-3.5-13.8-5 3.5 3.2 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m32 42.2l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#7d5442"/><path d="m35 40.8c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#5c3f34"/><circle cx="22.8" cy="28" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f646.svg b/build/js/jsxc/lib/emojione/assets/svg/1f646.svg
index 2f6c7e2..8a9a964 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f646.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f646.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m31.988 1.998c-14.65 0-22.65 9.199-22.65 21.314v26.895h45.3v-26.894c0-18.01-12.262-17.674-12.262-17.674s-.922-3.641-10.387-3.641"/><g fill="#ffdd67"><path d="m45.779 8.799l3.504-2.844c0 0-4.91-4.525-13.166-3.896-2.424.184-2.363 2.443-1.061 2.588 8.01.888 7.714 3.037 10.723 4.152"/><path d="m18.2 8.799l-3.504-2.844c0 0 4.91-4.525 13.164-3.896 2.426.184 2.365 2.443 1.061 2.588-8.01.888-7.713 3.037-10.721 4.152"/></g><path fill="#c28fef" d="m62.727 25.824c-1.309-5.15-7.947-12.13-13.367-20.426l-6.924 4.688c0 0 6.717 6.096 11 19.04-2.467 5.851-5.443 14.925-9.726 17.594-2.423-1.173-6.128-1.207-11.729-1.207-5.589 0-9.289.034-11.712 1.198-4.273-2.683-7.245-11.741-9.708-17.585 4.287-12.941 11.01-19.04 11.01-19.04l-6.926-4.688c-5.419 8.299-12.06 15.276-13.367 20.426-2.422 9.531 11.957 29.29 11.76 36.17h2.912 3.152 25.801 3.121 2.943c-.196-6.879 14.184-26.643 11.761-36.17"/><path fill="#ffdd67" d="m15.834 33.445c0 0-3.262-.828-3.262-5.623 0-3.797 2.459-4.449 2.459-4.449 8.811 0 23.17-11.375 23.17-11.375s5.428 10.04 10.664 11.375c0 0 2.537.465 2.537 4.449 0 4.795-3.385 5.623-3.385 5.623-.045 7.232-9.992 15.959-16.03 15.959-6.04 0-16.15-8.726-16.15-15.959"/><path fill="#eba352" d="m36.03 36.748c0 1.576-3.289 2.033-4.04 2.033-.756 0-4.047-.561-4.047-2.137 0 .001 8.09-.683 8.09.104"/><path fill="#f5f5f5" d="m26.479 30.449c.951 0 .824-2.441.824-2.441-2.92-6.479-9.42-2.379-9.42-2.379-2.527 1.121 1.133 4.664 1.719 4.82 2.753.74 6.877 0 6.877 0"/><ellipse fill="#664e27" cx="22.671" cy="27.482" rx="3.108" ry="3.09"/><g fill="#231f20"><circle cx="22.67" cy="27.482" r="1"/><path d="m28.12 28.941c-.795-.963-1.582-1.891-2.496-2.596-.912-.703-1.938-1.146-3.045-1.215-1.107-.105-2.268.127-3.471.354-.602.117-1.223.23-1.871.268-.627.025-1.385-.047-1.832-.527.592.234 1.174.109 1.738-.059.568-.162 1.131-.395 1.721-.59 1.164-.41 2.451-.748 3.814-.646.676.066 1.354.236 1.969.535.607.311 1.16.709 1.611 1.186.913.947 1.509 2.095 1.862 3.29"/></g><path fill="#f5f5f5" d="m37.496 30.449c-.953 0-.826-2.441-.826-2.441 2.92-6.479 9.422-2.379 9.422-2.379 2.527 1.121-1.133 4.664-1.721 4.82-2.75.74-6.875 0-6.875 0"/><ellipse fill="#664e27" cx="41.3" cy="27.482" rx="3.109" ry="3.09"/><g fill="#231f20"><ellipse cx="41.3" cy="27.482" rx="1" ry=".994"/><path d="m35.855 28.941c.354-1.195.947-2.344 1.861-3.291.451-.477 1-.875 1.609-1.186.615-.299 1.295-.469 1.969-.535 1.363-.102 2.65.236 3.814.646.59.195 1.154.428 1.723.59.563.168 1.146.293 1.738.059-.449.48-1.205.553-1.834.527-.648-.037-1.27-.15-1.873-.268-1.199-.227-2.361-.459-3.467-.354-1.105.068-2.133.512-3.045 1.215-.912.707-1.7 1.635-2.495 2.597"/></g><path fill="#f09985" d="m34.859 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.133-.377-1.988-.445-2.576-.301-1.752.424-4.408.217-4.408.217 1.932 1.916 2.85 4.533 7.281 4.533 4.43 0 5.348-2.617 7.277-4.533.001 0-2.656.207-4.406-.217"/><path fill="#d47f6c" d="m34.859 40.613c-.588-.145-1.445-.076-2.576.301-.1.029-.199.061-.295.094-.1-.033-.197-.064-.297-.094-1.133-.377-1.988-.445-2.576-.301-1.721.416-4.416.215-4.408.217 2.914.52 3.277 1.998 7.281 1.998 4 0 4.365-1.479 7.277-1.998.012-.002-2.687.199-4.406-.217"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.3,2,9.3,11.2,9.3,23.3v26.9h45.3V23.3c0-18-12.3-17.7-12.3-17.7S41.5,2,32,2z" fill="#ffb300"/><g fill="#ffdd67"><path d="m31.2 3.2c0-.7-5-.6-6.5-.6-2.6 0-9.8 3.8-9.8 3.8s3.2 4 4.8 4c2.2 0 4.4-1.5 4.4-3.6 0-1.6 7.1-1.5 7.1-3.6"/><path d="m32.8 3.2c0-.7 5-.6 6.5-.6 2.6 0 9.8 3.8 9.8 3.8s-3.2 4-4.8 4c-2.2 0-4.4-1.5-4.4-3.6 0-1.6-7.1-1.5-7.1-3.6"/></g><path d="m61.7 25.8c-1.3-5.1-7.2-12.1-12.5-20.4l-5.9 5.7c0 0 5.7 5.1 9.9 18-2.4 5.9-5.4 14.9-9.6 17.6-2.4-1.2-6.1-1.2-11.6-1.2-5.5 0-9.2 0-11.6 1.2-4.2-2.7-7.2-11.7-9.6-17.6 4.2-12.9 9.9-18 9.9-18l-5.9-5.7c-5.4 8.3-11.2 15.3-12.5 20.4-2.4 9.6 11.1 29.3 10.9 36.2h37.6c-.2-6.9 13.3-26.6 10.9-36.2" fill="#c28fef"/><path d="m15.3 33.5c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-8.9-16.5-16.4" fill="#ffdd67"/><path d="m32 38.4c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#eba352"/><path d="m36.8 31.6c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.1.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="28" r="3.5" fill="#664e27"/><circle cx="41.2" cy="28" r="1.2" fill="#2b2925"/><path d="m35.8 30.2c1.7-10.5 10.4-3.5 13.8-5-3.4 3.2-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.2 31.6c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.8" cy="28" r="3.5" fill="#664e27"/><path d="m28.1 30.2c-1.7-10.5-10.4-3.5-13.8-5 3.5 3.2 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m32 42.2l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#f09985"/><path d="m35 40.8c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#d47f6c"/><circle cx="22.8" cy="28" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fb.svg
index a71cde8..bce8d4b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m45.29 36.749c-8.241-4.362-13.292-.465-13.292-.465s-5.05-3.897-13.29.465c-7.352 3.888-16.918 12.769-16.224 16.716 0 0 21.937 6.907 29.514 6.907 7.578 0 29.517-6.907 29.517-6.907.695-3.947-8.873-12.828-16.225-16.716"/><path fill="#ffe1bd" d="m33.28 58.911c7.787-5.285 10.918-5.233 11.05-5.285.688 1.238 1.674 4.843 1.99 6.591-.004 0-.016.002-.016.002-.66 1.69-11.607 2.611-13.532.768-.395-.379-.522-1.377.505-2.076"/><path fill="#428bc1" d="m54.961 46.67c2.873-.614 8.885 2.818 6.486 8.04-2.1 4.578-14.811 5.481-15.12 5.504-.316-1.748-1.303-5.353-1.99-6.591 2.146-.822 8.242-6.444 10.625-6.956"/><path fill="#ffe1bd" d="m30.717 58.911c-7.787-5.285-10.918-5.233-11.05-5.285-.688 1.238-1.674 4.843-1.99 6.591.004 0 .016.002.016.002.659 1.69 11.606 2.611 13.531.768.395-.379.522-1.377-.505-2.076"/><path fill="#428bc1" d="m9.04 46.67c-2.872-.614-8.884 2.818-6.486 8.04 2.101 4.578 14.811 5.481 15.12 5.504.316-1.748 1.302-5.353 1.99-6.591-2.148-.822-8.244-6.444-10.627-6.956"/><g fill="#2e6c93"><path d="m43.03 53.3c0 0 2.483 4.25 3.305 6.92.069-3.373-.446-5.186-.817-6.107 1.73-1.953 8.513-6.902 9.452-7.439-4.284 1.313-11.94 6.626-11.94 6.626"/><path d="m20.97 53.3c0 0-2.483 4.25-3.305 6.92-.069-3.373.446-5.186.817-6.107-1.73-1.953-8.513-6.902-9.452-7.439 4.285 1.313 11.94 6.626 11.94 6.626"/></g><path fill="#594640" d="m31.999 14c11.815 0 19.09 6.63 19.09 14.869v8.157c0 6.506-5.143 6.507-5.139 6.506h-28.642c.002.001-4.407 0-4.407-6.506 0-3.063 0-8.157 0-8.157-.001-8.239 7.668-14.869 19.09-14.869"/><path fill="#ffe1bd" d="m49.29 38.495c0 0-.625-3.518-.715-4.703-.322-4.283-5.195 2.491-16.578 2.491-11.384 0-16.256-6.774-16.579-2.491-.089 1.186-.713 4.703-.713 4.703-3.796 0-3.796 5.288 0 5.288 0 6.558 10.292 9.522 17.292 9.522s17.293-2.965 17.293-9.522c3.795 0 3.795-5.288 0-5.288"/><g fill="#664e27"><path d="m44.07 42.979c-.121-.076-.27-.078-.391-.008-2.113 1.232-5.491 1.232-7.6 0-.121-.07-.271-.068-.391.008-.119.076-.191.213-.188.358.041 1.73 1.965 3.088 4.379 3.088 2.412 0 4.336-1.357 4.377-3.088.004-.146-.067-.282-.186-.358"/><path d="m27.92 42.971c-2.113 1.232-5.49 1.232-7.6 0-.121-.07-.273-.068-.39.008-.12.076-.192.213-.188.358.039 1.73 1.961 3.088 4.377 3.088 2.418 0 4.34-1.357 4.379-3.088.004-.147-.068-.284-.188-.358-.121-.077-.269-.079-.39-.008"/><path d="m29.03 50.03c.025.963 1.344 1.724 2.969 1.724 1.623 0 2.943-.761 2.969-1.724-.799.403-1.836.646-2.969.646s-2.169-.242-2.969-.646"/></g><g fill="#42ade2"><path d="m35.973 2l3.566 10.472 4.941-8.828z"/><path d="m53.21 8.242l-4.72 8.928 9.88-1.277z"/><path d="m28.374 2l-3.567 10.472-5.29-8.828z"/><path d="m10.791 8.242l4.715 8.928-9.873-1.277z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 36.7c-8.2-4.3-13.3-.4-13.3-.4s-5-3.9-13.3.5c-7.3 3.8-16.9 12.7-16.2 16.7 0 0 21.9 6.9 29.5 6.9 7.6 0 29.5-6.9 29.5-6.9.7-4-8.9-12.9-16.2-16.8" fill="#428bc1"/><path d="m33.3 58.9c7.8-5.3 10.9-5.2 11.1-5.3.7 1.2 1.7 4.8 2 6.6-.7 1.7-11.6 2.6-13.5.8-.5-.4-.6-1.4.4-2.1" fill="#ffe1bd"/><path d="m55 46.7c2.9-.6 8.9 2.8 6.5 8-2.1 4.6-14.8 5.5-15.1 5.5-.3-1.7-1.3-5.4-2-6.6 2.1-.8 8.2-6.4 10.6-6.9" fill="#428bc1"/><path d="m30.7 58.9c-7.8-5.3-10.9-5.2-11.1-5.3-.7 1.2-1.7 4.8-2 6.6.7 1.7 11.6 2.6 13.5.8.5-.4.6-1.4-.4-2.1" fill="#ffe1bd"/><path d="m9 46.7c-2.9-.6-8.9 2.8-6.5 8 2.1 4.6 14.8 5.5 15.1 5.5.3-1.7 1.3-5.4 2-6.6-2.1-.8-8.2-6.4-10.6-6.9" fill="#428bc1"/><g fill="#2e6c93"><path d="m43 53.3c0 0 2.5 4.2 3.3 6.9.1-3.4-.4-5.2-.8-6.1 1.7-2 8.5-6.9 9.5-7.4-4.3 1.3-12 6.6-12 6.6"/><path d="m21 53.3c0 0-2.5 4.2-3.3 6.9-.1-3.4.4-5.2.8-6.1-1.7-2-8.5-6.9-9.5-7.4 4.3 1.3 12 6.6 12 6.6"/></g><path d="m32 14c11.8 0 19.1 6.6 19.1 14.9v8.1c0 6.5-5.1 6.5-5.1 6.5h-28.7c0 0-4.4 0-4.4-6.5 0-3.1 0-8.2 0-8.2 0-8.2 7.7-14.8 19.1-14.8" fill="#594640"/><path d="m49.3 38.5c0 0-.6-3.5-.7-4.7-.3-4.3-5.2 2.5-16.6 2.5s-16.3-6.8-16.6-2.5c-.1 1.2-.7 4.7-.7 4.7-3.8 0-3.8 5.3 0 5.3 0 6.6 10.3 9.5 17.3 9.5 7 0 17.3-3 17.3-9.5 3.8 0 3.8-5.3 0-5.3" fill="#ffe1bd"/><g fill="#42ade2"><path d="m36 2l3.5 10.5 5-8.9z"/><path d="m53.2 8.2l-4.7 9 9.9-1.3z"/><path d="m28.4 2l-3.6 10.5-5.3-8.9z"/><path d="m10.8 8.2l4.7 9-9.9-1.3z"/></g><g fill="#664e27"><path d="m34.8 49.8c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/><path d="m34.2 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/><path d="m20 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fc.svg
index dd0316e..c492d09 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m45.29 36.749c-8.24-4.362-13.291-.465-13.291-.465s-5.05-3.897-13.291.465c-7.351 3.888-16.917 12.769-16.223 16.716 0 0 21.937 6.907 29.514 6.907 7.578 0 29.516-6.907 29.516-6.907.695-3.947-8.873-12.828-16.225-16.716"/><path fill="#fed0ac" d="m33.28 58.911c7.786-5.285 10.917-5.233 11.05-5.285.688 1.238 1.674 4.843 1.99 6.591-.004 0-.016.002-.016.002-.66 1.69-11.606 2.611-13.532.768-.394-.379-.523-1.377.506-2.076"/><path fill="#428bc1" d="m54.961 46.67c2.873-.614 8.885 2.818 6.486 8.04-2.1 4.578-14.811 5.481-15.12 5.504-.316-1.748-1.303-5.353-1.99-6.591 2.146-.822 8.242-6.444 10.625-6.956"/><path fill="#fed0ac" d="m30.716 58.911c-7.786-5.285-10.917-5.233-11.05-5.285-.688 1.238-1.674 4.843-1.99 6.591.004 0 .016.002.016.002.658 1.69 11.605 2.611 13.531.768.395-.379.523-1.377-.506-2.076"/><path fill="#428bc1" d="m9.04 46.67c-2.872-.614-8.884 2.818-6.486 8.04 2.101 4.578 14.812 5.481 15.12 5.504.316-1.748 1.302-5.353 1.99-6.591-2.149-.822-8.244-6.444-10.627-6.956"/><g fill="#2e6c93"><path d="m43.03 53.3c0 0 2.482 4.25 3.305 6.92.068-3.373-.447-5.186-.816-6.107 1.729-1.953 8.512-6.902 9.451-7.439-4.285 1.313-11.94 6.626-11.94 6.626"/><path d="m20.97 53.3c0 0-2.482 4.25-3.305 6.92-.068-3.373.447-5.186.816-6.107-1.729-1.953-8.512-6.902-9.451-7.439 4.285 1.313 11.94 6.626 11.94 6.626"/></g><path fill="#dbb471" d="m31.999 14c11.815 0 19.09 6.63 19.09 14.869v8.157c0 6.506-5.143 6.507-5.139 6.506h-28.643c.002.001-4.406 0-4.406-6.506 0-3.063 0-8.157 0-8.157-.001-8.239 7.667-14.869 19.09-14.869"/><path fill="#fed0ac" d="m49.29 38.495c0 0-.625-3.518-.715-4.703-.322-4.283-5.195 2.491-16.578 2.491-11.384 0-16.256-6.774-16.579-2.491-.089 1.186-.713 4.703-.713 4.703-3.796 0-3.796 5.288 0 5.288 0 6.558 10.292 9.522 17.292 9.522 7 0 17.293-2.965 17.293-9.522 3.795 0 3.795-5.288 0-5.288"/><g fill="#664e27"><path d="m44.07 42.979c-.121-.076-.27-.078-.391-.008-2.113 1.232-5.491 1.232-7.601 0-.121-.07-.27-.068-.39.008s-.191.213-.188.358c.041 1.73 1.966 3.088 4.379 3.088s4.337-1.357 4.378-3.088c.003-.146-.068-.282-.187-.358"/><path d="m27.921 42.971c-2.115 1.232-5.49 1.232-7.601 0-.122-.07-.272-.068-.39.008-.12.076-.191.213-.189.358.041 1.73 1.962 3.088 4.377 3.088 2.418 0 4.342-1.357 4.381-3.088.003-.147-.069-.284-.188-.358-.123-.077-.271-.079-.39-.008"/><path d="m29.03 50.03c.025.963 1.345 1.724 2.971 1.724 1.623 0 2.941-.761 2.967-1.724-.797.403-1.834.646-2.967.646-1.134.001-2.17-.242-2.971-.646"/></g><g fill="#42ade2"><path d="m35.973 2l3.566 10.472 4.941-8.828z"/><path d="m53.21 8.242l-4.72 8.928 9.88-1.277z"/><path d="m28.374 2l-3.566 10.472-5.291-8.828z"/><path d="m10.791 8.242l4.715 8.928-9.873-1.277z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 36.7c-8.2-4.3-13.3-.4-13.3-.4s-5.1-3.9-13.3.5c-7.3 3.8-16.9 12.7-16.2 16.7 0 0 21.9 6.9 29.5 6.9s29.5-6.9 29.5-6.9c.7-4-8.9-12.9-16.2-16.8" fill="#428bc1"/><path d="m33.3 58.9c7.8-5.3 10.9-5.2 11.1-5.3.7 1.2 1.7 4.8 2 6.6-.7 1.7-11.6 2.6-13.5.8-.5-.4-.6-1.4.4-2.1" fill="#fed0ac"/><path d="m55 46.7c2.9-.6 8.9 2.8 6.5 8-2.1 4.6-14.8 5.5-15.1 5.5-.3-1.7-1.3-5.4-2-6.6 2.1-.8 8.2-6.4 10.6-6.9" fill="#428bc1"/><path d="m30.7 58.9c-7.8-5.3-10.9-5.2-11.1-5.3-.7 1.2-1.7 4.8-2 6.6.7 1.7 11.6 2.6 13.5.8.5-.4.6-1.4-.4-2.1" fill="#fed0ac"/><path d="m9 46.7c-2.9-.6-8.9 2.8-6.5 8 2.1 4.6 14.8 5.5 15.1 5.5.3-1.7 1.3-5.4 2-6.6-2.1-.8-8.2-6.4-10.6-6.9" fill="#428bc1"/><g fill="#2e6c93"><path d="m43 53.3c0 0 2.5 4.2 3.3 6.9.1-3.4-.4-5.2-.8-6.1 1.7-2 8.5-6.9 9.5-7.4-4.3 1.3-12 6.6-12 6.6"/><path d="m21 53.3c0 0-2.5 4.2-3.3 6.9-.1-3.4.4-5.2.8-6.1-1.7-2-8.5-6.9-9.5-7.4 4.3 1.3 12 6.6 12 6.6"/></g><path d="m32 14c11.8 0 19.1 6.6 19.1 14.9v8.1c0 6.5-5.1 6.5-5.1 6.5h-28.7c0 0-4.4 0-4.4-6.5 0-3.1 0-8.2 0-8.2 0-8.2 7.7-14.8 19.1-14.8" fill="#dbb471"/><path d="m49.3 38.5c0 0-.6-3.5-.7-4.7-.3-4.3-5.2 2.5-16.6 2.5-11.4 0-16.3-6.8-16.6-2.5-.1 1.2-.7 4.7-.7 4.7-3.8 0-3.8 5.3 0 5.3 0 6.6 10.3 9.5 17.3 9.5s17.3-3 17.3-9.5c3.8 0 3.8-5.3 0-5.3" fill="#fed0ac"/><g fill="#42ade2"><path d="m36 2l3.5 10.5 5-8.9z"/><path d="m53.2 8.2l-4.7 9 9.9-1.3z"/><path d="m28.4 2l-3.6 10.5-5.3-8.9z"/><path d="m10.8 8.2l4.7 9-9.9-1.3z"/></g><g fill="#664e27"><path d="m34.8 49.8c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3.1-1.9.2-.3 0-.6-.2-.4"/><path d="m34.2 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/><path d="m20 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fd.svg
index 1527e40..e615034 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m45.29 36.749c-8.241-4.362-13.292-.465-13.292-.465s-5.05-3.897-13.29.465c-7.352 3.888-16.918 12.769-16.224 16.716 0 0 21.937 6.907 29.514 6.907 7.578 0 29.517-6.907 29.517-6.907.695-3.947-8.873-12.828-16.225-16.716"/><path fill="#d6a57c" d="m33.28 58.911c7.787-5.285 10.918-5.233 11.05-5.285.688 1.238 1.674 4.843 1.99 6.591-.004 0-.016.002-.016.002-.66 1.69-11.607 2.611-13.532.768-.395-.379-.522-1.377.505-2.076"/><path fill="#428bc1" d="m54.961 46.67c2.873-.614 8.885 2.818 6.486 8.04-2.1 4.578-14.811 5.481-15.12 5.504-.316-1.748-1.303-5.353-1.99-6.591 2.146-.822 8.242-6.444 10.625-6.956"/><path fill="#d6a57c" d="m30.717 58.911c-7.787-5.285-10.918-5.233-11.05-5.285-.688 1.238-1.674 4.843-1.99 6.591.004 0 .016.002.016.002.659 1.69 11.606 2.611 13.531.768.395-.379.522-1.377-.505-2.076"/><path fill="#428bc1" d="m9.04 46.67c-2.872-.614-8.884 2.818-6.486 8.04 2.101 4.578 14.811 5.481 15.12 5.504.316-1.748 1.302-5.353 1.99-6.591-2.148-.822-8.244-6.444-10.627-6.956"/><g fill="#2e6c93"><path d="m43.03 53.3c0 0 2.483 4.25 3.305 6.92.069-3.373-.446-5.186-.817-6.107 1.73-1.953 8.513-6.902 9.452-7.439-4.284 1.313-11.94 6.626-11.94 6.626"/><path d="m20.97 53.3c0 0-2.483 4.25-3.305 6.92-.069-3.373.446-5.186.817-6.107-1.73-1.953-8.513-6.902-9.452-7.439 4.285 1.313 11.94 6.626 11.94 6.626"/></g><path fill="#594640" d="m31.999 14c11.815 0 19.09 6.63 19.09 14.869v8.157c0 6.506-5.143 6.507-5.139 6.506h-28.642c.002.001-4.407 0-4.407-6.506 0-3.063 0-8.157 0-8.157-.001-8.239 7.668-14.869 19.09-14.869"/><path fill="#d6a57c" d="m49.29 38.495c0 0-.625-3.518-.715-4.703-.322-4.283-5.195 2.491-16.578 2.491-11.384 0-16.256-6.774-16.579-2.491-.089 1.186-.713 4.703-.713 4.703-3.796 0-3.796 5.288 0 5.288 0 6.558 10.292 9.522 17.292 9.522s17.293-2.965 17.293-9.522c3.795 0 3.795-5.288 0-5.288"/><g fill="#664e27"><path d="m44.07 42.979c-.121-.076-.27-.078-.391-.008-2.113 1.232-5.491 1.232-7.6 0-.121-.07-.271-.068-.391.008-.119.076-.191.213-.188.358.041 1.73 1.965 3.088 4.379 3.088 2.412 0 4.336-1.357 4.377-3.088.004-.146-.067-.282-.186-.358"/><path d="m27.92 42.971c-2.113 1.232-5.49 1.232-7.6 0-.121-.07-.273-.068-.39.008-.12.076-.192.213-.188.358.039 1.73 1.961 3.088 4.377 3.088 2.418 0 4.34-1.357 4.379-3.088.004-.147-.068-.284-.188-.358-.121-.077-.269-.079-.39-.008"/><path d="m29.03 50.03c.025.963 1.344 1.724 2.969 1.724 1.623 0 2.943-.761 2.969-1.724-.799.403-1.836.646-2.969.646s-2.169-.242-2.969-.646"/></g><g fill="#42ade2"><path d="m35.973 2l3.566 10.472 4.941-8.828z"/><path d="m53.21 8.242l-4.72 8.928 9.88-1.277z"/><path d="m28.374 2l-3.567 10.472-5.29-8.828z"/><path d="m10.791 8.242l4.715 8.928-9.873-1.277z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 36.7c-8.3-4.3-13.3-.4-13.3-.4s-5-3.9-13.3.5c-7.3 3.8-16.9 12.7-16.2 16.7 0 0 21.9 6.9 29.5 6.9 7.6 0 29.5-6.9 29.5-6.9.7-4-8.9-12.9-16.2-16.8" fill="#428bc1"/><path d="m33.3 58.9c7.8-5.3 10.9-5.2 11.1-5.3.7 1.2 1.7 4.8 2 6.6-.7 1.7-11.6 2.6-13.5.8-.5-.4-.6-1.4.4-2.1" fill="#d6a57c"/><path d="m55 46.7c2.9-.6 8.9 2.8 6.5 8-2.1 4.6-14.8 5.5-15.1 5.5-.3-1.7-1.3-5.4-2-6.6 2.1-.8 8.2-6.4 10.6-6.9" fill="#428bc1"/><path d="m30.7 58.9c-7.8-5.3-10.9-5.2-11.1-5.3-.7 1.2-1.7 4.8-2 6.6.7 1.7 11.6 2.6 13.5.8.5-.4.6-1.4-.4-2.1" fill="#d6a57c"/><path d="m9 46.7c-2.9-.6-8.9 2.8-6.5 8 2.1 4.6 14.8 5.5 15.1 5.5.3-1.7 1.3-5.4 2-6.6-2.1-.8-8.2-6.4-10.6-6.9" fill="#428bc1"/><g fill="#2e6c93"><path d="m43 53.3c0 0 2.5 4.2 3.3 6.9.1-3.4-.4-5.2-.8-6.1 1.7-2 8.5-6.9 9.5-7.4-4.3 1.3-12 6.6-12 6.6"/><path d="m21 53.3c0 0-2.5 4.2-3.3 6.9-.1-3.4.4-5.2.8-6.1-1.7-2-8.5-6.9-9.5-7.4 4.3 1.3 12 6.6 12 6.6"/></g><path d="m32 14c11.8 0 19.1 6.6 19.1 14.9v8.1c0 6.5-5.1 6.5-5.1 6.5h-28.7c0 0-4.4 0-4.4-6.5 0-3.1 0-8.2 0-8.2 0-8.2 7.7-14.8 19.1-14.8" fill="#594640"/><path d="m49.3 38.5c0 0-.6-3.5-.7-4.7-.3-4.3-5.2 2.5-16.6 2.5s-16.3-6.8-16.6-2.5c-.1 1.2-.7 4.7-.7 4.7-3.8 0-3.8 5.3 0 5.3 0 6.6 10.3 9.5 17.3 9.5s17.3-3 17.3-9.5c3.8 0 3.8-5.3 0-5.3" fill="#d6a57c"/><g fill="#42ade2"><path d="m36 2l3.5 10.5 5-8.9z"/><path d="m53.2 8.2l-4.7 9 9.9-1.3z"/><path d="m28.4 2l-3.6 10.5-5.3-8.9z"/><path d="m10.8 8.2l4.7 9-9.9-1.3z"/></g><g fill="#664e27"><path d="m34.8 49.8c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/><path d="m34.2 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/><path d="m20 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fe.svg
index 10ebf49..090651f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m45.29 36.749c-8.241-4.362-13.292-.465-13.292-.465s-5.05-3.897-13.29.465c-7.352 3.888-16.918 12.769-16.224 16.716 0 0 21.938 6.907 29.514 6.907 7.578 0 29.517-6.907 29.517-6.907.695-3.947-8.873-12.828-16.225-16.716"/><path fill="#b47d56" d="m33.28 58.911c7.787-5.285 10.918-5.233 11.05-5.285.688 1.238 1.674 4.843 1.99 6.591-.004 0-.016.002-.016.002-.66 1.69-11.607 2.611-13.533.768-.394-.379-.522-1.377.506-2.076"/><path fill="#428bc1" d="m54.961 46.67c2.873-.614 8.885 2.818 6.486 8.04-2.1 4.578-14.811 5.481-15.12 5.504-.316-1.748-1.303-5.353-1.99-6.591 2.146-.822 8.242-6.444 10.625-6.956"/><path fill="#b47d56" d="m30.716 58.911c-7.786-5.285-10.917-5.233-11.05-5.285-.688 1.238-1.674 4.843-1.99 6.591.004 0 .016.002.016.002.659 1.69 11.606 2.611 13.531.768.396-.379.523-1.377-.505-2.076"/><path fill="#428bc1" d="m9.04 46.67c-2.872-.614-8.884 2.818-6.486 8.04 2.101 4.578 14.812 5.481 15.12 5.504.316-1.748 1.303-5.353 1.99-6.591-2.147-.822-8.242-6.444-10.626-6.956"/><g fill="#2e6c93"><path d="m43.03 53.3c0 0 2.483 4.25 3.305 6.92.069-3.373-.446-5.186-.816-6.107 1.729-1.953 8.512-6.902 9.451-7.439-4.284 1.313-11.94 6.626-11.94 6.626"/><path d="m20.969 53.3c0 0-2.482 4.25-3.305 6.92-.068-3.373.447-5.186.817-6.107-1.729-1.953-8.512-6.902-9.452-7.439 4.285 1.313 11.94 6.626 11.94 6.626"/></g><path fill="#231f20" d="m31.998 14c11.816 0 19.1 6.63 19.1 14.869v8.157c0 6.506-5.143 6.507-5.139 6.506h-28.643c.002.001-4.407 0-4.407-6.506 0-3.063 0-8.157 0-8.157 0-8.239 7.668-14.869 19.09-14.869"/><path fill="#b47d56" d="m49.29 38.495c0 0-.625-3.518-.715-4.703-.322-4.283-5.195 2.491-16.578 2.491-11.385 0-16.257-6.774-16.58-2.491-.089 1.186-.713 4.703-.713 4.703-3.796 0-3.796 5.288 0 5.288 0 6.558 10.292 9.522 17.292 9.522s17.293-2.965 17.293-9.522c3.796 0 3.796-5.288.001-5.288"/><g fill="#47352d"><path d="m44.07 42.979c-.121-.076-.27-.078-.391-.008-2.113 1.232-5.492 1.232-7.601 0-.121-.07-.271-.068-.39.008-.12.076-.191.213-.188.358.041 1.73 1.966 3.088 4.379 3.088s4.337-1.357 4.378-3.088c.003-.146-.068-.282-.187-.358"/><path d="m27.92 42.971c-2.114 1.232-5.49 1.232-7.6 0-.122-.07-.273-.068-.391.008-.119.076-.191.213-.188.358.04 1.73 1.962 3.088 4.377 3.088 2.418 0 4.341-1.357 4.38-3.088.004-.147-.068-.284-.188-.358-.122-.077-.27-.079-.39-.008"/><path d="m29.03 50.03c.025.963 1.345 1.724 2.97 1.724 1.623 0 2.942-.761 2.968-1.724-.798.403-1.835.646-2.968.646s-2.17-.242-2.97-.646"/></g><g fill="#42ade2"><path d="m35.973 2l3.566 10.472 4.941-8.828z"/><path d="m53.21 8.242l-4.72 8.928 9.88-1.277z"/><path d="m28.373 2l-3.566 10.472-5.291-8.828z"/><path d="m10.79 8.242l4.716 8.928-9.874-1.277z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 36.7c-8.2-4.3-13.3-.4-13.3-.4s-5-3.9-13.3.5c-7.3 3.8-16.9 12.7-16.2 16.7 0 0 21.9 6.9 29.5 6.9 7.6 0 29.5-6.9 29.5-6.9.7-4-8.9-12.9-16.2-16.8" fill="#428bc1"/><path d="m33.3 58.9c7.8-5.3 10.9-5.2 11.1-5.3.7 1.2 1.7 4.8 2 6.6-.7 1.7-11.6 2.6-13.5.8-.5-.4-.6-1.4.4-2.1" fill="#b47d56"/><path d="m55 46.7c2.9-.6 8.9 2.8 6.5 8-2.1 4.6-14.8 5.5-15.1 5.5-.3-1.7-1.3-5.4-2-6.6 2.1-.8 8.2-6.4 10.6-6.9" fill="#428bc1"/><path d="m30.7 58.9c-7.8-5.3-10.9-5.2-11.1-5.3-.7 1.2-1.7 4.8-2 6.6.7 1.7 11.6 2.6 13.5.8.5-.4.6-1.4-.4-2.1" fill="#b47d56"/><path d="m9 46.7c-2.9-.6-8.9 2.8-6.5 8 2.1 4.6 14.8 5.5 15.1 5.5.3-1.7 1.3-5.4 2-6.6-2.1-.8-8.2-6.4-10.6-6.9" fill="#428bc1"/><g fill="#2e6c93"><path d="m43 53.3c0 0 2.5 4.2 3.3 6.9.1-3.4-.4-5.2-.8-6.1 1.7-2 8.5-6.9 9.5-7.4-4.3 1.3-12 6.6-12 6.6"/><path d="m21 53.3c0 0-2.5 4.2-3.3 6.9-.1-3.4.4-5.2.8-6.1-1.7-2-8.5-6.9-9.5-7.4 4.3 1.3 12 6.6 12 6.6"/></g><path d="m32 14c11.8 0 19.1 6.6 19.1 14.9v8.1c0 6.5-5.1 6.5-5.1 6.5h-28.7c0 0-4.4 0-4.4-6.5 0-3.1 0-8.2 0-8.2 0-8.2 7.7-14.8 19.1-14.8" fill="#231f20"/><path d="m49.3 38.5c0 0-.6-3.5-.7-4.7-.3-4.3-5.2 2.5-16.6 2.5s-16.3-6.8-16.6-2.5c-.1 1.2-.7 4.7-.7 4.7-3.8 0-3.8 5.3 0 5.3 0 6.6 10.3 9.5 17.3 9.5 7 0 17.3-3 17.3-9.5 3.8 0 3.8-5.3 0-5.3" fill="#b47d56"/><g fill="#42ade2"><path d="m36 2l3.5 10.5 5-8.9z"/><path d="m53.2 8.2l-4.7 9 9.9-1.3z"/><path d="m28.4 2l-3.6 10.5-5.3-8.9z"/><path d="m10.8 8.2l4.7 9-9.9-1.3z"/></g><g fill="#664e27"><path d="m34.8 49.8c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/><path d="m34.2 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/><path d="m20 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3ff.svg
index 9944a8c..f726d47 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f647-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m45.29 36.749c-8.24-4.362-13.291-.465-13.291-.465s-5.05-3.897-13.291.465c-7.352 3.888-16.918 12.769-16.224 16.716 0 0 21.937 6.907 29.515 6.907 7.579 0 29.516-6.907 29.516-6.907.695-3.947-8.873-12.828-16.225-16.716"/><path fill="#8a6859" d="m33.28 58.911c7.787-5.285 10.918-5.233 11.05-5.285.688 1.238 1.674 4.843 1.99 6.591-.004 0-.016.002-.016.002-.66 1.69-11.607 2.611-13.532.768-.395-.379-.523-1.377.505-2.076"/><path fill="#428bc1" d="m54.961 46.67c2.873-.614 8.885 2.818 6.486 8.04-2.1 4.578-14.811 5.481-15.12 5.504-.316-1.748-1.303-5.353-1.99-6.591 2.146-.822 8.242-6.444 10.625-6.956"/><path fill="#8a6859" d="m30.716 58.911c-7.787-5.285-10.918-5.233-11.05-5.285-.689 1.238-1.674 4.843-1.99 6.591.004 0 .016.002.016.002.658 1.69 11.605 2.611 13.531.768.395-.379.523-1.377-.506-2.076"/><path fill="#428bc1" d="m9.04 46.67c-2.872-.614-8.884 2.818-6.486 8.04 2.101 4.578 14.812 5.481 15.12 5.504.316-1.748 1.301-5.353 1.99-6.591-2.149-.822-8.244-6.444-10.627-6.956"/><g fill="#2e6c93"><path d="m43.03 53.3c0 0 2.482 4.25 3.305 6.92.068-3.373-.447-5.186-.818-6.107 1.73-1.953 8.514-6.902 9.453-7.439-4.285 1.313-11.94 6.626-11.94 6.626"/><path d="m20.97 53.3c0 0-2.483 4.25-3.305 6.92-.069-3.373.446-5.186.816-6.107-1.729-1.953-8.512-6.902-9.452-7.439 4.286 1.313 11.941 6.626 11.941 6.626"/></g><path fill="#231f20" d="m32 14c11.815 0 19.09 6.63 19.09 14.869v8.157c0 6.506-5.143 6.507-5.139 6.506h-28.643c.002.001-4.407 0-4.407-6.506 0-3.063 0-8.157 0-8.157 0-8.239 7.669-14.869 19.09-14.869"/><path fill="#8a6859" d="m49.29 38.495c0 0-.625-3.518-.715-4.703-.322-4.283-5.195 2.491-16.579 2.491-11.383 0-16.256-6.774-16.579-2.491-.089 1.186-.713 4.703-.713 4.703-3.796 0-3.796 5.288 0 5.288 0 6.558 10.292 9.522 17.292 9.522 7 0 17.293-2.965 17.293-9.522 3.796 0 3.796-5.288.001-5.288"/><g fill="#47352d"><path d="m44.07 42.979c-.121-.076-.27-.078-.391-.008-2.113 1.232-5.49 1.232-7.6 0-.121-.07-.27-.068-.391.008-.119.076-.191.213-.188.358.041 1.73 1.965 3.088 4.379 3.088 2.412 0 4.336-1.357 4.377-3.088.004-.146-.067-.282-.186-.358"/><path d="m27.92 42.971c-2.114 1.232-5.49 1.232-7.601 0-.121-.07-.272-.068-.389.008-.121.076-.192.213-.189.358.04 1.73 1.961 3.088 4.377 3.088 2.418 0 4.341-1.357 4.38-3.088.003-.147-.069-.284-.188-.358-.121-.077-.269-.079-.39-.008"/><path d="m29.03 50.03c.025.963 1.344 1.724 2.97 1.724 1.623 0 2.943-.761 2.968-1.724-.799.403-1.836.646-2.968.646-1.134.001-2.169-.242-2.97-.646"/></g><g fill="#42ade2"><path d="m35.973 2l3.566 10.472 4.941-8.828z"/><path d="m53.21 8.242l-4.72 8.928 9.88-1.277z"/><path d="m28.375 2l-3.568 10.472-5.29-8.828z"/><path d="m10.791 8.242l4.715 8.928-9.873-1.277z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 36.7c-8.3-4.3-13.3-.4-13.3-.4s-5-3.9-13.3.5c-7.3 3.8-16.9 12.7-16.2 16.7 0 0 21.9 6.9 29.5 6.9 7.6 0 29.5-6.9 29.5-6.9.7-4-8.9-12.9-16.2-16.8" fill="#428bc1"/><path d="m33.3 58.9c7.8-5.3 10.9-5.2 11.1-5.3.7 1.2 1.7 4.8 2 6.6-.7 1.7-11.6 2.6-13.5.8-.5-.4-.6-1.4.4-2.1" fill="#8a6859"/><path d="m55 46.7c2.9-.6 8.9 2.8 6.5 8-2.1 4.6-14.8 5.5-15.1 5.5-.3-1.7-1.3-5.4-2-6.6 2.1-.8 8.2-6.4 10.6-6.9" fill="#428bc1"/><path d="m30.7 58.9c-7.8-5.3-10.9-5.2-11.1-5.3-.7 1.2-1.7 4.8-2 6.6.7 1.7 11.6 2.6 13.5.8.5-.4.6-1.4-.4-2.1" fill="#8a6859"/><path d="m9 46.7c-2.9-.6-8.9 2.8-6.5 8 2.1 4.6 14.8 5.5 15.1 5.5.3-1.7 1.3-5.4 2-6.6-2.1-.8-8.2-6.4-10.6-6.9" fill="#428bc1"/><g fill="#2e6c93"><path d="m43 53.3c0 0 2.5 4.2 3.3 6.9.1-3.4-.4-5.2-.8-6.1 1.7-2 8.5-6.9 9.5-7.4-4.3 1.3-12 6.6-12 6.6"/><path d="m21 53.3c0 0-2.5 4.2-3.3 6.9-.1-3.4.4-5.2.8-6.1-1.7-2-8.5-6.9-9.5-7.4 4.3 1.3 12 6.6 12 6.6"/></g><path d="m32 14c11.8 0 19.1 6.6 19.1 14.9v8.1c0 6.5-5.1 6.5-5.1 6.5h-28.7c0 0-4.4 0-4.4-6.5 0-3.1 0-8.2 0-8.2 0-8.2 7.7-14.8 19.1-14.8" fill="#231f20"/><path d="m49.3 38.5c0 0-.6-3.5-.7-4.7-.3-4.3-5.2 2.5-16.6 2.5-11.4 0-16.3-6.8-16.6-2.5-.1 1.2-.7 4.7-.7 4.7-3.8 0-3.8 5.3 0 5.3 0 6.6 10.3 9.5 17.3 9.5s17.3-3 17.3-9.5c3.8 0 3.8-5.3 0-5.3" fill="#8a6859"/><g fill="#42ade2"><path d="m36 2l3.5 10.5 5-8.9z"/><path d="m53.2 8.2l-4.7 9 9.9-1.3z"/><path d="m28.4 2l-3.6 10.5-5.3-8.9z"/><path d="m10.8 8.2l4.7 9-9.9-1.3z"/></g><g fill="#574137"><path d="m34.8 49.8c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/><path d="m34.2 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/><path d="m20 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f647.svg b/build/js/jsxc/lib/emojione/assets/svg/1f647.svg
index 5e92a82..e5deddd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f647.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f647.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m45.29 36.749c-8.241-4.362-13.292-.465-13.292-.465s-5.05-3.897-13.291.465c-7.351 3.888-16.917 12.769-16.223 16.716 0 0 21.937 6.907 29.514 6.907 7.578 0 29.517-6.907 29.517-6.907.695-3.947-8.873-12.828-16.225-16.716"/><path fill="#ffdd67" d="m33.28 58.911c7.787-5.285 10.918-5.233 11.05-5.285.688 1.238 1.674 4.843 1.99 6.591-.004 0-.016.002-.016.002-.66 1.69-11.607 2.611-13.532.768-.395-.379-.522-1.377.505-2.076"/><path fill="#428bc1" d="m54.961 46.67c2.873-.614 8.885 2.818 6.486 8.04-2.1 4.578-14.811 5.481-15.12 5.504-.316-1.748-1.303-5.353-1.99-6.591 2.146-.822 8.242-6.444 10.625-6.956"/><path fill="#ffdd67" d="m30.717 58.911c-7.787-5.285-10.918-5.233-11.05-5.285-.688 1.238-1.674 4.843-1.99 6.591.004 0 .016.002.016.002.659 1.69 11.606 2.611 13.531.768.395-.379.522-1.377-.505-2.076"/><path fill="#428bc1" d="m9.04 46.67c-2.872-.614-8.884 2.818-6.486 8.04 2.101 4.578 14.812 5.481 15.12 5.504.316-1.748 1.302-5.353 1.99-6.591-2.149-.822-8.244-6.444-10.627-6.956"/><g fill="#2e6c93"><path d="m43.03 53.3c0 0 2.483 4.25 3.305 6.92.069-3.373-.446-5.186-.817-6.107 1.73-1.953 8.513-6.902 9.452-7.439-4.284 1.313-11.94 6.626-11.94 6.626"/><path d="m20.97 53.3c0 0-2.483 4.25-3.305 6.92-.069-3.373.447-5.186.817-6.107-1.729-1.953-8.512-6.902-9.452-7.439 4.285 1.313 11.94 6.626 11.94 6.626"/></g><path fill="#231f20" d="m31.998 14c11.816 0 19.1 6.63 19.1 14.869v8.157c0 6.506-5.143 6.507-5.139 6.506h-28.643c.002.001-4.407 0-4.407-6.506 0-3.063 0-8.157 0-8.157 0-8.239 7.668-14.869 19.09-14.869"/><path fill="#ffdd67" d="m49.29 38.495c0 0-.625-3.518-.715-4.703-.322-4.283-5.195 2.491-16.578 2.491-11.384 0-16.257-6.774-16.58-2.491-.089 1.186-.713 4.703-.713 4.703-3.796 0-3.796 5.288 0 5.288 0 6.558 10.292 9.522 17.292 9.522 7 0 17.293-2.965 17.293-9.522 3.796 0 3.796-5.288.001-5.288"/><g fill="#664e27"><path d="m44.07 42.979c-.121-.076-.27-.078-.391-.008-2.113 1.232-5.492 1.232-7.601 0-.121-.07-.271-.068-.39.008-.12.076-.191.213-.188.358.041 1.73 1.966 3.088 4.379 3.088s4.337-1.357 4.378-3.088c.003-.146-.068-.282-.187-.358"/><path d="m27.92 42.971c-2.114 1.232-5.49 1.232-7.6 0-.122-.07-.273-.068-.39.008-.12.076-.192.213-.189.358.04 1.73 1.961 3.088 4.377 3.088 2.418 0 4.341-1.357 4.38-3.088.004-.147-.068-.284-.188-.358-.122-.077-.27-.079-.39-.008"/><path d="m29.03 50.03c.025.963 1.345 1.724 2.97 1.724 1.623 0 2.942-.761 2.968-1.724-.798.403-1.835.646-2.968.646s-2.17-.242-2.97-.646"/></g><g fill="#42ade2"><path d="m35.973 2l3.566 10.472 4.941-8.828z"/><path d="m53.21 8.242l-4.72 8.928 9.88-1.277z"/><path d="m28.373 2l-3.566 10.472-5.291-8.828z"/><path d="m10.79 8.242l4.716 8.928-9.874-1.277z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.3 36.7c-8.3-4.3-13.3-.4-13.3-.4s-5-3.9-13.3.5c-7.3 3.8-16.9 12.7-16.2 16.7 0 0 21.9 6.9 29.5 6.9 7.6 0 29.5-6.9 29.5-6.9.7-4-8.9-12.9-16.2-16.8" fill="#428bc1"/><path d="m33.3 58.9c7.8-5.3 10.9-5.2 11.1-5.3.7 1.2 1.7 4.8 2 6.6-.7 1.7-11.6 2.6-13.5.8-.5-.4-.6-1.4.4-2.1" fill="#ffdd67"/><path d="m55 46.7c2.9-.6 8.9 2.8 6.5 8-2.1 4.6-14.8 5.5-15.1 5.5-.3-1.7-1.3-5.4-2-6.6 2.1-.8 8.2-6.4 10.6-6.9" fill="#428bc1"/><path d="m30.7 58.9c-7.8-5.3-10.9-5.2-11.1-5.3-.7 1.2-1.7 4.8-2 6.6.7 1.7 11.6 2.6 13.5.8.5-.4.6-1.4-.4-2.1" fill="#ffdd67"/><path d="m9 46.7c-2.9-.6-8.9 2.8-6.5 8 2.1 4.6 14.8 5.5 15.1 5.5.3-1.7 1.3-5.4 2-6.6-2.1-.8-8.2-6.4-10.6-6.9" fill="#428bc1"/><g fill="#2e6c93"><path d="m43 53.3c0 0 2.5 4.2 3.3 6.9.1-3.4-.4-5.2-.8-6.1 1.7-2 8.5-6.9 9.5-7.4-4.3 1.3-12 6.6-12 6.6"/><path d="m21 53.3c0 0-2.5 4.2-3.3 6.9-.1-3.4.4-5.2.8-6.1-1.7-2-8.5-6.9-9.5-7.4 4.3 1.3 12 6.6 12 6.6"/></g><path d="m32 14c11.8 0 19.1 6.6 19.1 14.9v8.1c0 6.5-5.1 6.5-5.1 6.5h-28.7c0 0-4.4 0-4.4-6.5 0-3.1 0-8.2 0-8.2 0-8.2 7.7-14.8 19.1-14.8" fill="#ffb300"/><path d="m49.3 38.5c0 0-.6-3.5-.7-4.7-.3-4.3-5.2 2.5-16.6 2.5-11.4 0-16.3-6.8-16.6-2.5-.1 1.2-.7 4.7-.7 4.7-3.8 0-3.8 5.3 0 5.3 0 6.6 10.3 9.5 17.3 9.5s17.3-3 17.3-9.5c3.8 0 3.8-5.3 0-5.3" fill="#ffdd67"/><g fill="#42ade2"><path d="m36 2l3.5 10.5 5-8.9z"/><path d="m53.2 8.2l-4.7 9 9.9-1.3z"/><path d="m28.4 2l-3.6 10.5-5.3-8.9z"/><path d="m10.8 8.2l4.7 9-9.9-1.3z"/></g><g fill="#937237"><path d="m34.8 49.8c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/><path d="m34.2 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/><path d="m20 43.3c2.4 4.5 7.3 4.5 9.7 0 .1-.2-.2-.3-.6-.6-2.4 1.9-6.4 1.7-8.6 0-.3.2-.6.3-.5.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f648.svg b/build/js/jsxc/lib/emojione/assets/svg/1f648.svg
index c7a58d5..b8b5116 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f648.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f648.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#89664c" cx="53.748" cy="32.13" rx="8.251" ry="11.556"/><ellipse fill="#e0ac7e" cx="53.748" cy="33.11" rx="5.372" ry="7.524"/><ellipse fill="#89664c" cx="10.249" cy="32.13" rx="8.25" ry="11.556"/><ellipse fill="#e0ac7e" cx="10.248" cy="33.11" rx="5.372" ry="7.524"/><path fill="#89664c" d="m46.06 14.207c1.357-.712 2.236-1.069 2.236-1.069-3.838-1.342-7.166-2.124-10.05-2.482 1.516-1.132 2.529-1.567 2.529-1.567-7.496-.437-13.324.786-17.797 2.642-4.896 1.755-9.06 4.95-11.934 9.292-.604.873-.877 1.424-.877 1.424l.004.006c-2.141 3.778-3.369 8.307-3.369 13.424.001 15.53 11.28 28.12 25.2 28.12 13.916 0 25.2-12.593 25.2-28.12 0-9.721-4.42-17.334-11.138-21.67"/><path fill="#e0ac7e" d="m55.4 39.07c0-6.531-5.572-11.826-12.447-11.826-4.734 0-8.854 2.514-10.955 6.211-2.105-3.697-6.223-6.211-10.957-6.211-6.875 0-12.447 5.295-12.447 11.826 0 5.949 4.627 10.855 10.645 11.688-.1 1.45.064 3.268.787 5.493 0 0 .143-.675.49-1.53 1.875 4.272 6.303 7.286 11.482 7.286 5.178 0 9.604-3.01 11.479-7.286.348.855.492 1.53.492 1.53.723-2.226.887-4.04.787-5.493 6.02-.832 10.644-5.739 10.644-11.688"/><g fill="#89664c"><ellipse cx="34.22" cy="45.535" rx=".744" ry="1.46"/><ellipse cx="29.781" cy="45.535" rx=".744" ry="1.46"/><path d="m26.861 44.85c.361-1.041 1.248-1.766 2.117-2.326.895-.557 1.9-.928 2.953-1.06 1.049-.118 2.162.033 3.113.571.957.521 1.678 1.41 2.092 2.389-.695-.783-1.496-1.393-2.367-1.744-.873-.34-1.814-.43-2.746-.315-.934.1-1.857.396-2.744.789-.441.206-.879.432-1.291.704-.422.261-.82.566-1.127.992"/><path d="m9.325 40.592l-8.325 23.408h12.949c-1.562-7.721 4-17 4-17l-8.625-6.403"/></g><path fill="#ffd6bb" d="m15.653 30.931c0 0 4.88-4.489 9.493-3.944 2.278.27-7.082 7.579-7.082 7.579s9.712-8.23 11.722-5.646c1.824 2.347-8.926 9.819-8.926 9.819s9.957-8.06 9.65-4.555c-.339 3.864-7.878 12.862-12.483 13.778-6.641 1.323-11.79-2.908-8.314-17.505 1.74-7.313 3.529.856 5.94.474"/><path fill="#89664c" d="m54.675 40.592l8.325 23.408h-12.949c1.562-7.721-4-17-4-17l8.625-6.403"/><path fill="#ffd6bb" d="m48.35 30.931c0 0-4.88-4.489-9.493-3.944-2.278.27 7.082 7.579 7.082 7.579s-9.712-8.23-11.722-5.646c-1.824 2.347 8.926 9.819 8.926 9.819s-9.957-8.06-9.65-4.555c.339 3.864 7.878 12.862 12.483 13.778 6.641 1.323 11.79-2.908 8.314-17.505-1.74-7.313-3.529.856-5.94.474"/><path fill="#3e4347" d="m42.633 48.29c0 4.325-4.761 8.02-10.634 8.02s-10.634-3.69-10.634-8.02c0 0 5.063 1.267 10.634 1.267 5.57 0 10.634-1.267 10.634-1.267"/><path fill="#fff" d="m40.935 49.601c0 1.773-3.716 2.835-8.936 2.835-5.221 0-8.936-1.062-8.936-2.835 0 0 3.984.853 8.936.853s8.936-.853 8.936-.853"/><path fill="#ff717f" d="m35.779 54.37c0 .923-1.69.816-3.78.816-2.089 0-3.781.106-3.781-.816 0-.921 1.692-1.384 3.781-1.384 2.09 0 3.78.463 3.78 1.384"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="53.8" cy="33" rx="8.2" ry="8.2" fill="#89664c"/><ellipse cx="53.8" cy="33" rx="5.4" ry="5.4" fill="#ffc5d3"/><ellipse cx="10.2" cy="33" rx="8.2" ry="8.2" fill="#89664c"/><ellipse cx="10.2" cy="33" rx="5.4" ry="5.4" fill="#ffc5d3"/><g fill="#89664c"><path d="m43.4 10.8c1.1-.6 1.9-.9 1.9-.9-3.2-1.1-6-1.8-8.5-2.1 1.3-1 2.1-1.3 2.1-1.3-20.4-2.9-30.1 9-30.1 19.5h46.4c-.7-7.4-4.8-12.4-11.8-15.2"/><path d="m55.3 27.6c0-9.7-10.4-17.6-23.3-17.6-12.9 0-23.3 7.9-23.3 17.6 0 2.3.6 4.4 1.6 6.4-1 2-1.6 4.2-1.6 6.4 0 9.7 10.4 17.6 23.3 17.6 12.9 0 23.3-7.9 23.3-17.6 0-2.3-.6-4.4-1.6-6.4 1-2 1.6-4.2 1.6-6.4"/></g><path d="m52 28.2c0-16.9-20-6.1-20-6.1s-20-10.8-20 6.1c0 4.7 2.9 9 7.5 11.7-1.3 1.7-2.1 3.6-2.1 5.7 0 6.1 6.6 11 14.7 11 8.1 0 14.7-4.9 14.7-11 0-2.1-.8-4-2.1-5.7 4.4-2.7 7.3-7 7.3-11.7" fill="#e0ac7e"/><g fill="#3b302a"><path d="m35.1 38.7c0 1.1-.4 2.1-1 2.1s-1-.9-1-2.1c0-1.1.4-2.1 1-2.1s1 1 1 2.1"/><path d="m30.9 38.7c0 1.1-.4 2.1-1 2.1s-1-.9-1-2.1c0-1.1.4-2.1 1-2.1s1 1 1 2.1"/><ellipse transform="matrix(.9608-.2772.2772.9608-11.8674 12.1398)" cx="37" cy="48" rx="4.5" ry="2.7"/></g><path d="M9.3,32.6L2,62h11.9c-1.6-7.7,4-21,4-21L9.3,32.6z" fill="#89664c"/><path d="m15.7 24.9c0 0 4.9-4.5 9.5-3.9 2.3.3-7.1 7.6-7.1 7.6s9.7-8.2 11.7-5.6c1.8 2.3-8.9 9.8-8.9 9.8s10-8.1 9.6-4.6c-.3 3.8-7.9 12.8-12.5 13.8-6.6 1.3-11.8-2.9-8.3-17.5 1.8-7.4 3.5.8 6 .4" fill="#ffd6bb"/><path d="M54.7,32.6L62,62H50.1c1.6-7.7-4-21-4-21L54.7,32.6z" fill="#89664c"/><path d="m48.3 24.9c0 0-4.9-4.5-9.5-3.9-2.3.3 7.1 7.6 7.1 7.6s-9.7-8.2-11.7-5.6c-1.8 2.3 8.9 9.8 8.9 9.8s-10-8.1-9.7-4.6c.4 3.8 8 12.8 12.6 13.8 6.6 1.3 11.8-2.9 8.3-17.5-1.8-7.4-3.5.8-6 .4" fill="#ffd6bb"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f649.svg b/build/js/jsxc/lib/emojione/assets/svg/1f649.svg
index 9736d55..ab6b684 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f649.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f649.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m46.11 8.257c1.352-.723 2.227-1.087 2.227-1.087-3.822-1.362-7.137-2.157-10.01-2.521 1.51-1.148 2.52-1.592 2.52-1.592-7.466-.442-13.271.799-17.727 2.685-4.877 1.783-9.02 5.03-11.886 9.439-.601.887-.874 1.446-.874 1.446l.004.006c-2.132 3.839-3.356 8.438-3.356 13.635 0 15.776 11.235 28.569 25.1 28.569 13.861 0 25.1-12.793 25.1-28.569 0-9.872-4.402-17.607-11.09-22.01"/><path fill="#e0ac7e" d="m55.42 33.517c0-6.634-5.551-12.01-12.398-12.01-4.715 0-8.818 2.553-10.912 6.309-2.097-3.756-6.195-6.309-10.913-6.309-6.848 0-12.398 5.378-12.398 12.01 0 6.04 4.609 11.03 10.603 11.872-.099 1.474.064 3.319.784 5.581 0 0 .142-.686.488-1.555 1.868 4.342 6.278 7.403 11.437 7.403s9.566-3.062 11.434-7.403c.346.869.49 1.555.49 1.555.72-2.262.883-4.107.784-5.581 5.991-.846 10.601-5.83 10.601-11.872"/><g fill="#89664c"><path d="m35.06 40.08c0 .82-.332 1.482-.74 1.482-.409 0-.742-.662-.742-1.482s.333-1.487.742-1.487c.407 0 .74.667.74 1.487"/><path d="m30.644 40.08c0 .82-.332 1.482-.74 1.482-.409 0-.742-.662-.742-1.482s.333-1.487.742-1.487c.408 0 .74.667.74 1.487"/><path d="m26.995 39.38c.359-1.057 1.242-1.793 2.108-2.36.891-.567 1.893-.944 2.941-1.078 1.044-.117 2.153.035 3.101.581.953.528 1.672 1.433 2.084 2.425-.693-.794-1.49-1.413-2.357-1.77-.87-.347-1.809-.438-2.736-.322-.93.104-1.85.402-2.732.804-.439.208-.876.437-1.286.713-.422.266-.818.574-1.123 1.01"/><path d="m50.32 45.08l-.893 15.916h12.865c-4.083-11-2.879-16.922-2.879-16.922l-9.09 1.01"/><path d="m13.473 45.27l.894 15.734h-12.867c4.083-11 2.879-16.834 2.879-16.834l9.09 1.1"/></g><g fill="#ffd6bb"><path d="m60.679 25.09c-2.244-5.05-6.303-9.283-8.02-7.12-1.597 2.01.12 2.284-.525 4.47-1.359 4.593 1.712 9.275.694 11.441-6.145 13.09 1.765 14.203 4.78 13.13 6.1-2.18 5.715-15.979 3.073-21.921"/><path d="m12.1 22.825c-.646-2.185 1.072-2.459-.527-4.466-1.718-2.165-5.774 2.071-8.02 7.121-2.644 5.936-3.03 19.742 3.073 21.918 3.02 1.075 10.925-.043 4.78-13.13-1.017-2.165 2.055-6.849.695-11.444"/></g><path fill="#3e4347" d="m42.704 42.857c0 4.316-4.741 7.998-10.592 7.998-5.85 0-10.592-3.682-10.592-7.998 0 0 5.04 1.265 10.592 1.265 5.549 0 10.592-1.265 10.592-1.265"/><path fill="#fff" d="m41.01 44.17c0 1.77-3.701 2.83-8.9 2.83s-8.9-1.061-8.9-2.83c0 0 3.969.852 8.9.852s8.9-.852 8.9-.852"/><path fill="#ff717f" d="m35.877 48.928c0 .922-1.683.814-3.765.814-2.081 0-3.766.107-3.766-.814 0-.918 1.685-1.38 3.766-1.38 2.082 0 3.765.462 3.765 1.38"/><g fill="#735540"><path d="m16.589 37.655c-.145 0-.287-.063-.386-.183l-.062-.076c-.134-.164-.15-.396-.04-.576.005-.008.052-.085.057-.093l.151-.213c.08-.105.156-.201.236-.292.15-.177.319-.344.495-.506.337-.309.726-.594 1.157-.853.822-.484 1.75-.821 2.762-1.01.95-.174 2-.229 2.832-.184-.539-.455-1.259-.98-2.096-1.387-.854-.416-1.748-.729-2.657-.931-.458-.102-.928-.18-1.396-.229-.469-.057-.946-.088-1.424-.093-.27-.004-.487-.221-.492-.49l-.002-.113c-.003-.201.114-.385.299-.466l.41-.155c.145-.049.283-.09.422-.126.274-.069.551-.12.831-.159.54-.072 1.115-.088 1.686-.047 1.123.088 2.248.397 3.258.896 1.01.494 1.939 1.192 2.694 2.02.396.437.732.889 1.01 1.346.146.243.278.49.395.748.058.122.114.257.165.393l.07.202c.004.01.041.112.043.123l.027.098c.061.216-.029.444-.221.562-.145.087-.299.154-.475.112-.41-.097-.819-.179-1.231-.238-.452-.067-.864-.108-1.258-.127-.857-.041-1.69.005-2.485.144-.779.131-1.57.36-2.353.683-.368.149-.736.324-1.1.52-.362.19-.71.396-1.047.617-.082.055-.177.081-.271.081"/><path d="m47.584 37.634c-.079 0-.155-.019-.22-.061-.336-.222-.685-.427-1.041-.614-.371-.198-.74-.373-1.103-.521-.785-.323-1.576-.553-2.353-.683-.799-.14-1.643-.185-2.487-.145-.396.018-.806.06-1.258.126-.409.061-.817.141-1.22.236-.18.047-.35-.025-.491-.112-.188-.117-.276-.345-.217-.559l.027-.098c.002-.008.035-.108.038-.116l.068-.196c.059-.15.113-.28.171-.408.116-.255.251-.502.395-.744.278-.465.616-.917 1.01-1.346.755-.825 1.686-1.522 2.695-2.02 1.012-.5 2.137-.809 3.256-.896.58-.04 1.151-.026 1.686.046.281.039.557.09.83.158.143.037.278.078.414.123l.42.159c.182.079.299.259.299.457v.113c0 .272-.219.495-.492.499-.479.005-.955.036-1.418.092-.475.051-.943.129-1.401.23-.907.202-1.801.515-2.657.931-.838.406-1.558.932-2.098 1.387.832-.045 1.883.01 2.834.184 1.012.185 1.939.522 2.758 1 .437.262.824.548 1.158.853.176.162.343.329.5.51.078.089.153.185.228.281l.104.147c.004.006.055.081.06.088.116.182.147.488.011.655-.113.139-.316.239-.501.239"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54 27.6c0-8.6-4.7-14-11.3-16.8 1.1-.6 1.8-.9 1.8-.9-3.1-1.1-5.7-1.8-8-2.1 1.2-1 2-1.3 2-1.3-19.2-3-28.5 9.8-28.5 21.1 0 2.3.6 4.4 1.5 6.4-1 2-1.5 4.2-1.5 6.4 0 9.7 9.9 17.6 22 17.6 12.1 0 22-7.9 22-17.6 0-2.3-.6-4.4-1.5-6.4.9-2 1.5-4.2 1.5-6.4" fill="#89664c"/><path d="m51 28.2c0-17-19-6.2-19-6.2s-19-10.8-19 6.2c0 4.7 2.8 9 7.1 11.7-1.3 1.7-2 3.6-2 5.7 0 6.1 6.2 11 13.9 11 7.7 0 13.9-4.9 13.9-11 0-2.1-.7-4-2-5.7 4.3-2.7 7.1-7 7.1-11.7" fill="#e0ac7e"/><g fill="#3b302a"><path d="m35.1 38.7c0 1.1-.4 2.1-1 2.1s-1-.9-1-2.1c0-1.1.4-2.1 1-2.1s1 1 1 2.1"/><path d="m30.9 38.7c0 1.1-.4 2.1-1 2.1s-1-.9-1-2.1c0-1.1.4-2.1 1-2.1s1 1 1 2.1"/></g><g fill="#89664c"><path d="m51.1 40.5l-1.8 21.5h12.7c-4-12-2.9-22.4-2.9-22.4l-8 .9"/><path d="m12.9 40.5l1.8 21.5h-12.7c4-12 2.9-22.4 2.9-22.4l8 .9"/></g><g fill="#ffd6bb"><path d="m58.4 26.1c-1.7-4.5-4.8-8.2-6.1-6.3-1.2 1.8.1 2-.4 4-1 4.1 1.3 8.2.5 10.1-4.7 11.6 1.3 12.6 3.6 11.6 4.7-1.9 4.4-14.1 2.4-19.4"/><path d="m5.6 26.1c1.7-4.5 4.8-8.2 6.1-6.3 1.2 1.8-.1 2 .4 4 1 4.1-1.3 8.2-.5 10.1 4.7 11.6-1.3 12.6-3.6 11.6-4.7-1.9-4.4-14.1-2.4-19.4"/></g><g fill="#3b302a"><path d="m41.8 44.3c1.4 1.2-2.9 6.9-9.8 7-6.9 0-11.3-5.8-9.8-7 .4-.3 5.2.9 9.8.9 4.7 0 9.5-1.2 9.8-.9"/><ellipse cx="40.7" cy="31.3" rx="3.5" ry="4.5"/><ellipse cx="23.3" cy="31.3" rx="3.5" ry="4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64a.svg
index f59e66a..47df40a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#89664c" cx="54.48" cy="26.406" rx="8.525" ry="12.443"/><ellipse fill="#e0ac7e" cx="54.48" cy="27.467" rx="5.552" ry="8.102"/><ellipse fill="#89664c" cx="9.525" cy="26.406" rx="8.524" ry="12.443"/><ellipse fill="#e0ac7e" cx="9.524" cy="27.467" rx="5.551" ry="8.102"/><path fill="#89664c" d="m46.06 6.803c1.357-.725 2.236-1.09 2.236-1.09-3.838-1.365-7.166-2.162-10.05-2.527 1.516-1.15 2.529-1.596 2.529-1.596-7.496-.444-13.324.801-17.797 2.691-4.896 1.787-9.06 5.04-11.934 9.461-.604.889-.877 1.449-.877 1.449l.004.006c-2.141 3.848-3.369 8.457-3.369 13.666 0 15.814 11.279 28.637 25.2 28.637 13.917 0 25.2-12.822 25.2-28.637 0-9.894-4.42-17.646-11.138-22.06"/><path fill="#e0ac7e" d="m55.4 32.12c0-6.65-5.572-12.04-12.447-12.04-4.734 0-8.854 2.559-10.956 6.322-2.105-3.764-6.221-6.322-10.957-6.322-6.875 0-12.447 5.391-12.447 12.04 0 6.06 4.627 11.05 10.645 11.9-.1 1.477.064 3.326.787 5.594 0 0 .143-.688.49-1.559 1.875 4.352 6.303 7.42 11.482 7.42 5.178 0 9.604-3.068 11.479-7.42.348.871.492 1.559.492 1.559.723-2.268.887-4.117.787-5.594 6.02-.847 10.645-5.843 10.645-11.9"/><g fill="#89664c"><ellipse cx="34.22" cy="38.699" rx=".744" ry="1.486"/><ellipse cx="29.783" cy="38.699" rx=".744" ry="1.486"/></g><g fill="#3e4347"><ellipse cx="18.722" cy="32.16" rx="4.359" ry="3.914"/><ellipse cx="45.28" cy="32.16" rx="4.358" ry="3.914"/></g><g fill="#89664c"><path d="m26.863 38c.361-1.059 1.248-1.797 2.117-2.365.895-.568 1.9-.947 2.953-1.082 1.049-.117 2.163.035 3.114.584.957.529 1.678 1.436 2.092 2.43-.695-.795-1.496-1.416-2.367-1.773-.873-.348-1.815-.439-2.747-.322-.934.104-1.857.402-2.744.805-.441.209-.879.438-1.291.715-.422.266-.821.574-1.127 1.01"/><path d="m14.897 48.5l-8.325 13.998h12.949c.827-6.998 4-7.594 4-7.594l-8.625-6.404"/></g><path fill="#ffd6bb" d="m20.225 39.842c0 0 4.88-4.49 9.493-3.945 2.278.27-7.082 7.58-7.082 7.58s9.712-8.23 11.722-5.646c1.824 2.346-8.926 9.818-8.926 9.818s9.958-8.05 9.651-4.555c-.339 3.865-7.878 12.863-12.484 13.779-6.641 1.322-11.79-2.908-8.314-17.506 1.74-7.312 3.529.856 5.94.475"/><path fill="#89664c" d="m48.34 46.703l10.617 15.797h-13.972c-.035-3.65-2.18-6.59-2.18-6.59l5.535-9.207"/><path fill="#ddb199" d="m38.23 40.18c0 0-6.222-2.291-10.28-.029-2 1.119 9.436 4.309 9.436 4.309s-12.12-3.908-12.99-.754c-.792 2.865 11.995 5.678 11.995 5.678s-12.276-3.652-10.658-.533c1.785 3.443 12.185 8.891 16.792 7.982 6.645-1.31-1.92-17.218-4.295-16.653"/><path fill="#ffd6bb" d="m39.558 40.18c0 0-6.222-2.291-10.28-.029-2 1.119 9.436 4.309 9.436 4.309s-12.12-3.908-12.99-.754c-.792 2.865 11.995 5.678 11.995 5.678s-12.276-3.652-10.658-.533c1.785 3.443 12.185 8.891 16.792 7.982 6.645-1.309 9.793-7.182 1.018-19.354-4.397-6.098-2.938 2.136-5.313 2.701"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="53.7" cy="33" rx="8.3" ry="8.2" fill="#89664c"/><ellipse cx="53.7" cy="33" rx="5.4" ry="5.4" fill="#ffc5d3"/><ellipse cx="10.2" cy="33" rx="8.2" ry="8.2" fill="#89664c"/><ellipse cx="10.2" cy="33" rx="5.4" ry="5.4" fill="#ffc5d3"/><g fill="#89664c"><path d="m43.4 10.8c1.1-.6 1.9-.9 1.9-.9-3.2-1.1-6-1.8-8.5-2.1 1.3-1 2.1-1.3 2.1-1.3-20.4-2.9-30.1 9-30.1 19.5h46.4c-.7-7.4-4.8-12.4-11.8-15.2"/><path d="m55.3 27.6c0-9.7-10.4-17.6-23.3-17.6s-23.3 7.9-23.3 17.6c0 2.3.6 4.4 1.6 6.4-1 2-1.6 4.2-1.6 6.4 0 9.7 10.4 17.6 23.3 17.6s23.3-7.9 23.3-17.6c0-2.3-.6-4.4-1.6-6.4 1-2 1.6-4.2 1.6-6.4"/></g><path d="m52 28.2c0-16.9-20-6.1-20-6.1s-20-10.8-20 6.1c0 4.7 2.9 9 7.5 11.7-1.3 1.7-2.1 3.6-2.1 5.7 0 6.1 6.6 11 14.7 11 8.1 0 14.7-4.9 14.7-11 0-2.1-.8-4-2.1-5.7 4.4-2.7 7.3-7 7.3-11.7" fill="#e0ac7e"/><g fill="#3b302a"><path d="m35.1 38.7c0 1.1-.4 2.1-1 2.1s-1-.9-1-2.1c0-1.1.4-2.1 1-2.1s1 1 1 2.1"/><path d="m30.9 38.7c0 1.1-.4 2.1-1 2.1-.6 0-1-.9-1-2.1 0-1.1.4-2.1 1-2.1.5.1 1 1 1 2.1"/><ellipse cx="40.7" cy="31.7" rx="3.5" ry="4.5"/><ellipse cx="23.3" cy="31.7" rx="3.5" ry="4.5"/></g><path fill="#89664c" d="m14.9 52l-8.3 10h12.9l4-3.6z"/><path d="m20.2 43.3c0 0 4.9-4.5 9.5-3.9 2.3.3-7.1 7.6-7.1 7.6s9.7-8.2 11.7-5.6c1.8 2.3-8.9 9.8-8.9 9.8s10-8.1 9.6-4.6c-.3 3.9-7.9 12.9-12.5 13.8-6.6 1.3-11.8-2.9-8.3-17.5 1.8-7.3 3.6.8 6 .4" fill="#ffd6bb"/><path fill="#89664c" d="M48.3 50.2 59 62 45 62 42.8 59.4z"/><path d="m38.2 43.7c0 0-6.2-2.3-10.3 0-2 1.1 9.4 4.3 9.4 4.3s-12.1-3.9-13-.8c-.8 2.9 12 5.7 12 5.7s-12.3-3.7-10.7-.5c1.8 3.4 12.2 8.9 16.8 8 6.8-1.4-1.8-17.3-4.2-16.7" fill="#ddb199"/><path d="m39.6 43.7c0 0-6.2-2.3-10.3 0-2 1.1 9.4 4.3 9.4 4.3s-12.1-3.9-13-.8c-.8 2.9 12 5.7 12 5.7s-12.3-3.7-10.7-.5c1.8 3.4 12.2 8.9 16.8 8 6.6-1.3 9.8-7.2 1-19.4-4.3-6.1-2.9 2.1-5.2 2.7" fill="#ffd6bb"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fb.svg
index dca6d0d..e9e7e3b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m27.02 1.998c-14.494 0-22.408 9.03-22.408 20.924v37.08h44.816v-37.08c0-17.679-12.13-17.35-12.13-17.35s-.912-3.574-10.277-3.574"/><path fill="#c28fef" d="m59.38 16.695h-7.393c0 0 8.01 32.355-15.01 32.355.001 0 .001.001 0 0v-7.14h-19.919v7.14c-12.525.388-15.05 2.408-15.05 12.948h50.02c12.422-14.97 11.05-28.03 7.354-45.3"/><path fill="#ffe1bd" d="m10.818 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.461-4.479 2.461-4.479 8.814 0 23.18-11.454 23.18-11.454s5.43 10.112 10.67 11.454c0 0 2.539.468 2.539 4.479 0 4.828-3.387 5.662-3.387 5.662-.045 7.282-9.996 16.07-16.04 16.07-6.04 0-16.16-8.785-16.16-16.07"/><path fill="#e6b796" d="m31.03 36.22c0 1.587-3.291 2.047-4.047 2.047s-4.047-.563-4.047-2.149c0-.001 8.094-.69 8.094.102"/><path fill="#f5f5f5" d="m21.468 29.874c.953 0 .824-2.458.824-2.458-2.92-6.522-9.424-2.394-9.424-2.394-2.527 1.128 1.135 4.694 1.721 4.852 2.754.746 6.879 0 6.879 0"/><path fill="#664e27" d="m20.769 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.107-1.392-3.107-3.109s1.391-3.11 3.107-3.11c1.72-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="17.66" cy="26.889" r="1"/><path d="m23.11 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.047-1.223-1.105-.107-2.268.128-3.473.355-.6.117-1.221.232-1.871.269-.627.026-1.385-.047-1.832-.529.59.234 1.174.11 1.738-.06.57-.163 1.133-.396 1.721-.594 1.166-.414 2.453-.754 3.818-.651.674.066 1.352.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.492 29.874c-.953 0-.826-2.458-.826-2.458 2.919-6.522 9.425-2.394 9.425-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.752.746-6.878 0-6.878 0"/><path fill="#664e27" d="m39.41 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.109-1.392-3.109-3.109s1.393-3.11 3.109-3.11c1.721-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="36.3" cy="26.889" r="1"/><path d="m30.849 28.357c.355-1.205.949-2.36 1.863-3.313.453-.481 1-.882 1.611-1.195.615-.301 1.295-.472 1.969-.538 1.365-.103 2.652.237 3.816.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.74.06-.449.482-1.207.556-1.836.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.363-.463-3.469-.355-1.105.069-2.133.516-3.047 1.223-.913.71-1.7 1.644-2.497 2.613"/></g><path fill="#f09985" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.754.427-4.41.218-4.41.218 1.934 1.929 2.85 4.564 7.283 4.564s5.352-2.636 7.283-4.564c0 0-2.658.209-4.408-.218"/><path fill="#d47f6c" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.723.418-4.418.217-4.41.218 2.914.523 3.277 2.01 7.283 2.01 4 0 4.369-1.488 7.283-2.01.009-.001-2.689.2-4.408-.218"/><path fill="#ffe1bd" d="m44.64 11.398c.488-1.037 2.162-1.037 3.926.784 1.049 1.085 1.396 1.535 2.219 1.621l-.277-9.08c-.023-.749.551-1.392 1.281-1.413h.006c.732-.022 1.342.583 1.365 1.354l-.027-.961c-.029-.915.65-1.679 1.516-1.705.867-.026 1.594.694 1.619 1.609l.021.711c-.023-.797.568-1.461 1.322-1.484h.002c.756-.023 1.387.604 1.412 1.4l.049 1.605c-.023-.74.502-1.355 1.205-1.377.701-.021 1.264.562 1.285 1.301l.217 7.03c.016.068.029.137.033.21 0 0 .605 3.685-.348 6.04-1.422 3.512-9.238 4.664-11.895-1.157-.527-1.156-1.553-1.998-2.479-3.068-1.116-1.289-2.989-2.28-2.452-3.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M27,2C12.5,2,4.6,11,4.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S36.4,2,27,2z" fill="#594640"/><path d="m59.4 16.7h-7.4c0 0 8 32.4-15 32.4 0 0 0 0 0 0v-7.1h-19.9v7.1c-12.6.3-15.1 2.4-15.1 12.9h50c12.4-15 11.1-28 7.4-45.3" fill="#c28fef"/><g fill="#ffe1bd"><path d="m44.6 11.4c.5-1 2.2-1 3.9.8 1 1.1 1.4 1.5 2.2 1.6l-.3-9.1c0-.7.6-1.4 1.3-1.4.7 0 1.3.6 1.4 1.4v-1c0-.9.7-1.7 1.5-1.7.9 0 1.6.7 1.6 1.6v.7c0-.8.6-1.5 1.3-1.5.8 0 1.4.6 1.4 1.4v1.6c0-.7.5-1.4 1.2-1.4.7 0 1.3.6 1.3 1.3l.2 7c0 .1 0 .1 0 .2 0 0 .6 3.7-.3 6-1.4 3.5-9.2 4.7-11.9-1.2-.5-1.2-1.6-2-2.5-3.1-.9-1.1-2.8-2.1-2.3-3.2"/><path d="m10.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-9-16.5-16.4"/></g><path d="m27 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/><path d="m31.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="36.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="36.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m30.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m22.2 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="17.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m23.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m27 41.7l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#e08672"/><path d="m30 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#b86e5d"/><circle cx="17.7" cy="27.4" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fc.svg
index 78aa9be..9e6ac9c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m27.02 1.998c-14.494 0-22.408 9.03-22.408 20.924v37.08h44.815v-37.08c0-17.679-12.13-17.35-12.13-17.35s-.912-3.574-10.276-3.574"/><path fill="#c28fef" d="m59.38 16.695h-7.393c0 0 8.01 32.355-15.01 32.355.001 0 .001.001 0 0v-7.14h-19.918v7.14c-12.527.388-15.05 2.408-15.05 12.948h50.02c12.422-14.97 11.05-28.03 7.354-45.3"/><path fill="#fed0ac" d="m10.818 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.461-4.479 2.461-4.479 8.814 0 23.18-11.454 23.18-11.454s5.43 10.112 10.67 11.454c0 0 2.539.468 2.539 4.479 0 4.828-3.387 5.662-3.387 5.662-.045 7.282-9.996 16.07-16.04 16.07-6.04 0-16.16-8.785-16.16-16.07"/><path fill="#e0a372" d="m31.03 36.22c0 1.587-3.29 2.047-4.046 2.047s-4.047-.563-4.047-2.149c.001-.001 8.093-.69 8.093.102"/><path fill="#f5f5f5" d="m21.469 29.874c.953 0 .824-2.458.824-2.458-2.92-6.522-9.424-2.394-9.424-2.394-2.527 1.128 1.135 4.694 1.721 4.852 2.754.746 6.879 0 6.879 0"/><path fill="#664e27" d="m20.77 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.107-1.392-3.107-3.109s1.391-3.11 3.107-3.11c1.72-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="17.659" cy="26.889" r="1"/><path d="m23.11 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.047-1.223-1.105-.107-2.268.128-3.473.355-.6.117-1.221.232-1.871.269-.627.026-1.385-.047-1.832-.529.59.234 1.174.11 1.738-.06.57-.163 1.133-.396 1.721-.594 1.166-.414 2.453-.754 3.818-.651.674.066 1.352.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.511 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.491 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.426-2.394 9.426-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.752.746-6.879 0-6.879 0"/><path fill="#664e27" d="m39.41 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.109-1.392-3.109-3.109s1.393-3.11 3.109-3.11c1.721-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="36.3" cy="26.889" r="1"/><path d="m30.85 28.357c.354-1.205.948-2.36 1.862-3.313.453-.481 1-.882 1.611-1.195.615-.301 1.295-.472 1.969-.538 1.365-.103 2.652.237 3.816.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.74.06-.449.482-1.207.556-1.836.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.363-.463-3.469-.355-1.105.069-2.133.516-3.047 1.223-.913.71-1.7 1.644-2.496 2.613"/></g><path fill="#e08672" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.754.427-4.41.218-4.41.218 1.934 1.929 2.85 4.564 7.283 4.564 4.433 0 5.351-2.636 7.282-4.564.001 0-2.658.209-4.407-.218"/><path fill="#b86e5d" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.723.418-4.418.217-4.41.218 2.914.523 3.277 2.01 7.283 2.01 4 0 4.368-1.488 7.282-2.01.01-.001-2.689.2-4.407-.218"/><path fill="#fed0ac" d="m44.64 11.398c.488-1.037 2.162-1.037 3.926.784 1.049 1.085 1.396 1.535 2.219 1.621l-.277-9.08c-.023-.749.551-1.392 1.281-1.413h.006c.732-.022 1.342.583 1.365 1.354l-.027-.961c-.029-.915.65-1.679 1.516-1.705.867-.026 1.594.694 1.619 1.609l.021.711c-.023-.797.568-1.461 1.322-1.484h.002c.756-.023 1.387.604 1.412 1.4l.049 1.605c-.023-.74.502-1.355 1.205-1.377.701-.021 1.264.562 1.285 1.301l.217 7.03c.016.068.029.137.033.21 0 0 .605 3.685-.348 6.04-1.422 3.512-9.238 4.664-11.895-1.157-.527-1.156-1.553-1.998-2.479-3.068-1.116-1.289-2.989-2.28-2.452-3.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M27,2C12.5,2,4.6,11,4.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S36.4,2,27,2z" fill="#dbb471"/><path d="m59.4 16.7h-7.4c0 0 8 32.4-15 32.4 0 0 0 0 0 0v-7.1h-19.9v7.1c-12.6.3-15.1 2.4-15.1 12.9h50c12.4-15 11.1-28 7.4-45.3" fill="#c28fef"/><g fill="#fed0ac"><path d="m44.6 11.4c.5-1 2.2-1 3.9.8 1 1.1 1.4 1.5 2.2 1.6l-.3-9.1c0-.7.6-1.4 1.3-1.4.7 0 1.3.6 1.4 1.4v-1c0-.9.7-1.7 1.5-1.7.9 0 1.6.7 1.6 1.6v.7c0-.8.6-1.5 1.3-1.5.8 0 1.4.6 1.4 1.4v1.6c0-.7.5-1.4 1.2-1.4.7 0 1.3.6 1.3 1.3l.2 7c0 .1 0 .1 0 .2 0 0 .6 3.7-.3 6-1.4 3.5-9.2 4.7-11.9-1.2-.5-1.2-1.6-2-2.5-3.1-.9-1.1-2.8-2.1-2.3-3.2"/><path d="m10.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.5-9-16.5-16.4"/></g><path d="m27 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0 0 2.3-3.2 2.3" fill="#e0a372"/><path d="m31.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="36.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="36.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m30.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m22.2 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><path d="m14.3 27.4c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5 0-1.9-1.6-3.5-3.5-3.5-2 .1-3.5 1.6-3.5 3.5" fill="#664e27"/><path d="m23.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m27 41.7l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#e08672"/><path d="m30 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#b86e5d"/><circle cx="17.7" cy="27.4" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fd.svg
index 9586fc2..d4e4a75 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m27.02 1.998c-14.494 0-22.408 9.03-22.408 20.924v37.08h44.815v-37.08c0-17.679-12.13-17.35-12.13-17.35s-.912-3.574-10.276-3.574"/><path fill="#c28fef" d="m59.38 16.695h-7.393c0 0 8.01 32.355-15.01 32.355.001 0 .001.001 0 0v-7.14h-19.918v7.14c-12.527.388-15.05 2.408-15.05 12.948h50.02c12.422-14.97 11.05-28.03 7.354-45.3"/><path fill="#d6a57c" d="m10.818 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.461-4.479 2.461-4.479 8.814 0 23.18-11.454 23.18-11.454s5.43 10.112 10.67 11.454c0 0 2.539.468 2.539 4.479 0 4.828-3.387 5.662-3.387 5.662-.045 7.282-9.996 16.07-16.04 16.07-6.04 0-16.16-8.785-16.16-16.07"/><path fill="#b58360" d="m31.03 36.22c0 1.587-3.29 2.047-4.046 2.047s-4.047-.563-4.047-2.149c.001-.001 8.093-.69 8.093.102"/><path fill="#f5f5f5" d="m21.469 29.874c.953 0 .824-2.458.824-2.458-2.92-6.522-9.424-2.394-9.424-2.394-2.527 1.128 1.135 4.694 1.721 4.852 2.754.746 6.879 0 6.879 0"/><path fill="#664e27" d="m20.77 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.107-1.392-3.107-3.109s1.391-3.11 3.107-3.11c1.72-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="17.659" cy="26.889" r="1"/><path d="m23.11 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.047-1.223-1.105-.107-2.268.128-3.473.355-.6.117-1.221.232-1.871.269-.627.026-1.385-.047-1.832-.529.59.234 1.174.11 1.738-.06.57-.163 1.133-.396 1.721-.594 1.166-.414 2.453-.754 3.818-.651.674.066 1.352.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.511 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.491 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.426-2.394 9.426-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.752.746-6.879 0-6.879 0"/><path fill="#664e27" d="m39.41 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.109-1.392-3.109-3.109s1.393-3.11 3.109-3.11c1.721-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="36.3" cy="26.889" r="1"/><path d="m30.85 28.357c.354-1.205.948-2.36 1.862-3.313.453-.481 1-.882 1.611-1.195.615-.301 1.295-.472 1.969-.538 1.365-.103 2.652.237 3.816.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.74.06-.449.482-1.207.556-1.836.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.363-.463-3.469-.355-1.105.069-2.133.516-3.047 1.223-.913.71-1.7 1.644-2.496 2.613"/></g><path fill="#b58360" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.754.427-4.41.218-4.41.218 1.934 1.929 2.85 4.564 7.283 4.564 4.433 0 5.351-2.636 7.282-4.564.001 0-2.658.209-4.407-.218"/><path fill="#805c44" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.723.418-4.418.217-4.41.218 2.914.523 3.277 2.01 7.283 2.01 4 0 4.368-1.488 7.282-2.01.01-.001-2.689.2-4.407-.218"/><path fill="#d6a57c" d="m44.64 11.398c.488-1.037 2.162-1.037 3.926.784 1.049 1.085 1.396 1.535 2.219 1.621l-.277-9.08c-.023-.749.551-1.392 1.281-1.413h.006c.732-.022 1.342.583 1.365 1.354l-.027-.961c-.029-.915.65-1.679 1.516-1.705.867-.026 1.594.694 1.619 1.609l.021.711c-.023-.797.568-1.461 1.322-1.484h.002c.756-.023 1.387.604 1.412 1.4l.049 1.605c-.023-.74.502-1.355 1.205-1.377.701-.021 1.264.562 1.285 1.301l.217 7.03c.016.068.029.137.033.21 0 0 .605 3.685-.348 6.04-1.422 3.512-9.238 4.664-11.895-1.157-.527-1.156-1.553-1.998-2.479-3.068-1.116-1.289-2.989-2.28-2.452-3.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M27,2C12.5,2,4.6,11,4.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S36.4,2,27,2z" fill="#594640"/><path d="m59.4 16.7h-7.4c0 0 8 32.4-15 32.4 0 0 0 0 0 0v-7.1h-19.9v7.1c-12.6.3-15.1 2.4-15.1 12.9h50c12.4-15 11.1-28 7.4-45.3" fill="#c28fef"/><g fill="#d6a57c"><path d="m44.6 11.4c.5-1 2.2-1 3.9.8 1 1.1 1.4 1.5 2.2 1.6l-.3-9.1c0-.7.6-1.4 1.3-1.4.7 0 1.3.6 1.4 1.4v-1c0-.9.7-1.7 1.5-1.7.9 0 1.6.7 1.6 1.6v.7c0-.8.6-1.5 1.3-1.5.8 0 1.4.6 1.4 1.4v1.6c0-.7.5-1.4 1.2-1.4.7 0 1.3.6 1.3 1.3l.2 7c0 .1 0 .1 0 .2 0 0 .6 3.7-.3 6-1.4 3.5-9.2 4.7-11.9-1.2-.5-1.2-1.6-2-2.5-3.1-.9-1.1-2.8-2.1-2.3-3.2"/><path d="m10.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-9-16.5-16.4"/></g><path d="m27 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#b58360"/><path d="m31.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m39.7 27.4c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5 0-1.9 1.6-3.5 3.5-3.5 1.9.1 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="36.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m30.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m22.2 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="17.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m23.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m27 41.7l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#b58360"/><path d="m30 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9s4.6-1.3 7.7-1.9c0 0-2.9.4-4.7-.3" fill="#805c44"/><circle cx="17.7" cy="27.4" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fe.svg
index b204c64..39a1150 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m27.02 1.998c-14.494 0-22.408 9.03-22.408 20.924v37.08h44.815v-37.08c0-17.679-12.13-17.35-12.13-17.35s-.912-3.574-10.276-3.574"/><path fill="#c28fef" d="m59.38 16.695h-7.393c0 0 8.01 32.355-15.01 32.355.001 0 .001.001 0 0v-7.14h-19.918v7.14c-12.527.388-15.05 2.408-15.05 12.948h50.02c12.422-14.97 11.05-28.03 7.354-45.3"/><path fill="#b47d56" d="m10.818 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.461-4.479 2.461-4.479 8.814 0 23.18-11.454 23.18-11.454s5.43 10.112 10.67 11.454c0 0 2.539.468 2.539 4.479 0 4.828-3.387 5.662-3.387 5.662-.045 7.282-9.996 16.07-16.04 16.07-6.04 0-16.16-8.785-16.16-16.07"/><path fill="#935e3e" d="m31.03 36.22c0 1.587-3.29 2.047-4.046 2.047s-4.047-.563-4.047-2.149c.001-.001 8.093-.69 8.093.102"/><path fill="#f5f5f5" d="m21.469 29.874c.953 0 .824-2.458.824-2.458-2.92-6.522-9.424-2.394-9.424-2.394-2.527 1.128 1.135 4.694 1.721 4.852 2.754.746 6.879 0 6.879 0"/><path fill="#664e27" d="m20.77 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.107-1.392-3.107-3.109s1.391-3.11 3.107-3.11c1.72-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="17.659" cy="26.889" r="1"/><path d="m23.11 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.047-1.223-1.105-.107-2.268.128-3.473.355-.6.117-1.221.232-1.871.269-.627.026-1.385-.047-1.832-.529.59.234 1.174.11 1.738-.06.57-.163 1.133-.396 1.721-.594 1.166-.414 2.453-.754 3.818-.651.674.066 1.352.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.511 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.491 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.426-2.394 9.426-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.752.746-6.879 0-6.879 0"/><path fill="#664e27" d="m39.41 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.109-1.392-3.109-3.109s1.393-3.11 3.109-3.11c1.721-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="36.3" cy="26.889" r="1"/><path d="m30.85 28.357c.354-1.205.948-2.36 1.862-3.313.453-.481 1-.882 1.611-1.195.615-.301 1.295-.472 1.969-.538 1.365-.103 2.652.237 3.816.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.74.06-.449.482-1.207.556-1.836.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.363-.463-3.469-.355-1.105.069-2.133.516-3.047 1.223-.913.71-1.7 1.644-2.496 2.613"/></g><path fill="#935e3e" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.754.427-4.41.218-4.41.218 1.934 1.929 2.85 4.564 7.283 4.564 4.433 0 5.351-2.636 7.282-4.564.001 0-2.658.209-4.407-.218"/><path fill="#734c31" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.723.418-4.418.217-4.41.218 2.914.523 3.277 2.01 7.283 2.01 4 0 4.368-1.488 7.282-2.01.01-.001-2.689.2-4.407-.218"/><path fill="#b47d56" d="m44.64 11.398c.488-1.037 2.162-1.037 3.926.784 1.049 1.085 1.396 1.535 2.219 1.621l-.277-9.08c-.023-.749.551-1.392 1.281-1.413h.006c.732-.022 1.342.583 1.365 1.354l-.027-.961c-.029-.915.65-1.679 1.516-1.705.867-.026 1.594.694 1.619 1.609l.021.711c-.023-.797.568-1.461 1.322-1.484h.002c.756-.023 1.387.604 1.412 1.4l.049 1.605c-.023-.74.502-1.355 1.205-1.377.701-.021 1.264.562 1.285 1.301l.217 7.03c.016.068.029.137.033.21 0 0 .605 3.685-.348 6.04-1.422 3.512-9.238 4.664-11.895-1.157-.527-1.156-1.553-1.998-2.479-3.068-1.116-1.289-2.989-2.28-2.452-3.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M27,2C12.5,2,4.6,11,4.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S36.4,2,27,2z" fill="#231f20"/><path d="m59.4 16.7h-7.4c0 0 8 32.4-15 32.4 0 0 0 0 0 0v-7.1h-19.9v7.1c-12.6.3-15.1 2.4-15.1 12.9h50c12.4-15 11.1-28 7.4-45.3" fill="#c28fef"/><g fill="#b47d56"><path d="m44.6 11.4c.5-1 2.2-1 3.9.8 1 1.1 1.4 1.5 2.2 1.6l-.3-9.1c0-.7.6-1.4 1.3-1.4.7 0 1.3.6 1.4 1.4v-1c0-.9.7-1.7 1.5-1.7.9 0 1.6.7 1.6 1.6v.7c0-.8.6-1.5 1.3-1.5.8 0 1.4.6 1.4 1.4v1.6c0-.7.5-1.4 1.2-1.4.7 0 1.3.6 1.3 1.3l.2 7c0 .1 0 .1 0 .2 0 0 .6 3.7-.3 6-1.4 3.5-9.2 4.7-11.9-1.2-.5-1.2-1.6-2-2.5-3.1-.9-1.1-2.8-2.1-2.3-3.2"/><path d="m10.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-9-16.5-16.4"/></g><path d="m27 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/><path d="m31.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="36.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="36.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m30.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m22.2 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="17.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m23.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m27 41.7l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#935e3e"/><path d="m30 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#734c31"/><circle cx="17.7" cy="27.4" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3ff.svg
index 5624cfa..f8cb017 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64b-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m27.02 1.998c-14.494 0-22.408 9.03-22.408 20.924v37.08h44.815v-37.08c0-17.679-12.13-17.35-12.13-17.35s-.912-3.574-10.276-3.574"/><path fill="#c28fef" d="m59.38 16.695h-7.393c0 0 8.01 32.355-15.01 32.355.001 0 .001.001 0 0v-7.14h-19.918v7.14c-12.527.388-15.05 2.408-15.05 12.948h50.02c12.422-14.97 11.05-28.03 7.354-45.3"/><path fill="#8a6859" d="m10.818 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.461-4.479 2.461-4.479 8.814 0 23.18-11.454 23.18-11.454s5.43 10.112 10.67 11.454c0 0 2.539.468 2.539 4.479 0 4.828-3.387 5.662-3.387 5.662-.045 7.282-9.996 16.07-16.04 16.07-6.04 0-16.16-8.785-16.16-16.07"/><path fill="#705041" d="m31.03 36.22c0 1.587-3.29 2.047-4.046 2.047s-4.047-.563-4.047-2.149c.001-.001 8.093-.69 8.093.102"/><path fill="#f5f5f5" d="m21.469 29.874c.953 0 .824-2.458.824-2.458-2.92-6.522-9.424-2.394-9.424-2.394-2.527 1.128 1.135 4.694 1.721 4.852 2.754.746 6.879 0 6.879 0"/><path fill="#664e27" d="m20.77 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.107-1.392-3.107-3.109s1.391-3.11 3.107-3.11c1.72-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="17.659" cy="26.889" r="1"/><path d="m23.11 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.047-1.223-1.105-.107-2.268.128-3.473.355-.6.117-1.221.232-1.871.269-.627.026-1.385-.047-1.832-.529.59.234 1.174.11 1.738-.06.57-.163 1.133-.396 1.721-.594 1.166-.414 2.453-.754 3.818-.651.674.066 1.352.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.511 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.491 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.426-2.394 9.426-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.752.746-6.879 0-6.879 0"/><path fill="#664e27" d="m39.41 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.109-1.392-3.109-3.109s1.393-3.11 3.109-3.11c1.721-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="36.3" cy="26.889" r="1"/><path d="m30.85 28.357c.354-1.205.948-2.36 1.862-3.313.453-.481 1-.882 1.611-1.195.615-.301 1.295-.472 1.969-.538 1.365-.103 2.652.237 3.816.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.74.06-.449.482-1.207.556-1.836.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.363-.463-3.469-.355-1.105.069-2.133.516-3.047 1.223-.913.71-1.7 1.644-2.496 2.613"/></g><path fill="#7d5442" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.754.427-4.41.218-4.41.218 1.934 1.929 2.85 4.564 7.283 4.564 4.433 0 5.351-2.636 7.282-4.564.001 0-2.658.209-4.407-.218"/><path fill="#5c3f34" d="m29.855 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.723.418-4.418.217-4.41.218 2.914.523 3.277 2.01 7.283 2.01 4 0 4.368-1.488 7.282-2.01.01-.001-2.689.2-4.407-.218"/><path fill="#8a6859" d="m44.64 11.398c.488-1.037 2.162-1.037 3.926.784 1.049 1.085 1.396 1.535 2.219 1.621l-.277-9.08c-.023-.749.551-1.392 1.281-1.413h.006c.732-.022 1.342.583 1.365 1.354l-.027-.961c-.029-.915.65-1.679 1.516-1.705.867-.026 1.594.694 1.619 1.609l.021.711c-.023-.797.568-1.461 1.322-1.484h.002c.756-.023 1.387.604 1.412 1.4l.049 1.605c-.023-.74.502-1.355 1.205-1.377.701-.021 1.264.562 1.285 1.301l.217 7.03c.016.068.029.137.033.21 0 0 .605 3.685-.348 6.04-1.422 3.512-9.238 4.664-11.895-1.157-.527-1.156-1.553-1.998-2.479-3.068-1.116-1.289-2.989-2.28-2.452-3.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M27,2C12.5,2,4.6,11,4.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S36.4,2,27,2z" fill="#231f20"/><path d="m59.4 16.7h-7.4c0 0 8 32.4-15 32.4 0 0 0 0 0 0v-7.1h-19.9v7.1c-12.6.3-15.1 2.4-15.1 12.9h50c12.4-15 11.1-28 7.4-45.3" fill="#c28fef"/><g fill="#8a6859"><path d="m44.6 11.4c.5-1 2.2-1 3.9.8 1 1.1 1.4 1.5 2.2 1.6l-.3-9.1c0-.7.6-1.4 1.3-1.4.7 0 1.3.6 1.4 1.4v-1c0-.9.7-1.7 1.5-1.7.9 0 1.6.7 1.6 1.6v.7c0-.8.6-1.5 1.3-1.5.8 0 1.4.6 1.4 1.4v1.6c0-.7.5-1.4 1.2-1.4.7 0 1.3.6 1.3 1.3l.2 7c0 .1 0 .1 0 .2 0 0 .6 3.7-.3 6-1.4 3.5-9.2 4.7-11.9-1.2-.5-1.2-1.6-2-2.5-3.1-.9-1.1-2.8-2.1-2.3-3.2"/><path d="m10.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6 0-16.5-9-16.5-16.4"/></g><path d="m27 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#705041"/><path d="m31.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="36.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="36.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m30.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m22.2 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="17.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m23.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m27 41.7l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#7d5442"/><path d="m30 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9 4.2 0 4.6-1.3 7.7-1.9 0 0-2.9.4-4.7-.3" fill="#5c3f34"/><circle cx="17.7" cy="27.4" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64b.svg
index 18b8600..d221b18 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m27.01 1.998c-14.494 0-22.408 9.03-22.408 20.924v37.08h44.817v-37.08c0-17.679-12.13-17.35-12.13-17.35s-.912-3.574-10.278-3.574"/><path fill="#c28fef" d="m59.38 16.695h-7.393c0 0 8.01 32.355-15.01 32.355 0 0 0 .001 0 0v-7.14h-19.92v7.14c-12.526.388-15.05 2.408-15.05 12.948h50.03c12.422-14.97 11.04-28.03 7.354-45.3"/><path fill="#ffdd67" d="m10.817 32.892c0 0-3.262-.834-3.262-5.662 0-3.823 2.461-4.479 2.461-4.479 8.814 0 23.18-11.454 23.18-11.454s5.43 10.112 10.67 11.454c0 0 2.539.468 2.539 4.479 0 4.828-3.387 5.662-3.387 5.662-.045 7.282-9.996 16.07-16.04 16.07-6.04 0-16.16-8.785-16.16-16.07"/><path fill="#eba352" d="m31.03 36.22c0 1.587-3.291 2.047-4.047 2.047s-4.047-.563-4.047-2.149c0-.001 8.094-.69 8.094.102"/><path fill="#f5f5f5" d="m21.467 29.874c.953 0 .824-2.458.824-2.458-2.92-6.522-9.424-2.394-9.424-2.394-2.527 1.128 1.135 4.694 1.721 4.852 2.754.746 6.879 0 6.879 0"/><path fill="#664e27" d="m20.768 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.107-1.392-3.107-3.109s1.391-3.11 3.107-3.11c1.72-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="17.657" cy="26.889" r="1"/><path d="m23.11 28.357c-.795-.971-1.582-1.904-2.496-2.614-.912-.707-1.938-1.154-3.047-1.223-1.105-.107-2.268.128-3.473.355-.6.117-1.221.232-1.871.269-.627.026-1.385-.047-1.832-.529.59.234 1.174.11 1.738-.06.57-.163 1.133-.396 1.721-.594 1.166-.414 2.453-.754 3.818-.651.674.066 1.352.237 1.969.538.607.313 1.16.714 1.611 1.195.913.954 1.51 2.109 1.862 3.314"/></g><path fill="#f5f5f5" d="m32.491 29.874c-.953 0-.826-2.458-.826-2.458 2.92-6.522 9.426-2.394 9.426-2.394 2.529 1.128-1.133 4.694-1.721 4.852-2.752.746-6.879 0-6.879 0"/><path fill="#664e27" d="m39.41 26.889c0 1.718-1.391 3.109-3.111 3.109-1.717 0-3.109-1.392-3.109-3.109s1.393-3.11 3.109-3.11c1.721-.001 3.111 1.392 3.111 3.11"/><g fill="#231f20"><circle cx="36.3" cy="26.889" r="1"/><path d="m30.848 28.357c.355-1.205.949-2.36 1.863-3.313.454-.481 1-.882 1.612-1.195.615-.301 1.295-.472 1.969-.538 1.365-.103 2.652.237 3.816.65.59.198 1.154.432 1.723.595.563.17 1.146.294 1.74.06-.449.482-1.207.556-1.836.529-.648-.036-1.27-.151-1.873-.269-1.199-.228-2.363-.463-3.469-.355-1.105.069-2.133.516-3.047 1.223-.914.71-1.701 1.644-2.498 2.613"/></g><path fill="#f09985" d="m29.854 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.754.427-4.41.218-4.41.218 1.934 1.929 2.85 4.564 7.283 4.564s5.352-2.636 7.284-4.564c0 0-2.659.209-4.409-.218"/><path fill="#d47f6c" d="m29.854 40.11c-.588-.146-1.447-.076-2.578.302-.1.031-.201.063-.297.096-.098-.033-.197-.064-.295-.096-1.135-.378-1.99-.447-2.578-.302-1.723.418-4.418.217-4.41.218 2.914.523 3.277 2.01 7.283 2.01 4 0 4.369-1.488 7.284-2.01.009-.001-2.69.2-4.409-.218"/><path fill="#ffdd67" d="m44.64 11.398c.488-1.037 2.162-1.037 3.926.784 1.049 1.085 1.396 1.535 2.219 1.621l-.277-9.08c-.023-.749.551-1.392 1.281-1.413h.006c.732-.022 1.342.583 1.365 1.354l-.027-.961c-.029-.915.65-1.679 1.516-1.705.867-.026 1.594.694 1.619 1.609l.021.711c-.023-.797.568-1.461 1.322-1.484h.002c.756-.023 1.387.604 1.412 1.4l.049 1.605c-.023-.74.502-1.355 1.205-1.377.701-.021 1.264.562 1.285 1.301l.217 7.03c.016.068.029.137.033.21 0 0 .605 3.685-.348 6.04-1.422 3.512-9.238 4.664-11.895-1.157-.527-1.156-1.553-1.998-2.479-3.068-1.116-1.289-2.989-2.28-2.452-3.419"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M27,2C12.5,2,4.6,11,4.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S36.4,2,27,2z" fill="#ffb300"/><path d="m59.4 16.7h-7.4c0 0 8 32.4-15 32.4 0 0 0 0 0 0v-7.1h-19.9v7.1c-12.6.3-15.1 2.4-15.1 12.9h50c12.4-15 11.1-28 7.4-45.3" fill="#c28fef"/><g fill="#ffdd67"><path d="m44.6 11.4c.5-1 2.2-1 3.9.8 1 1.1 1.4 1.5 2.2 1.6l-.3-9.1c0-.7.6-1.4 1.3-1.4.7 0 1.3.6 1.4 1.4v-1c0-.9.7-1.7 1.5-1.7.9 0 1.6.7 1.6 1.6v.7c0-.8.6-1.5 1.3-1.5.8 0 1.4.6 1.4 1.4v1.6c0-.7.5-1.4 1.2-1.4.7 0 1.3.6 1.3 1.3l.2 7c0 .1 0 .1 0 .2 0 0 .6 3.7-.3 6-1.4 3.5-9.2 4.7-11.9-1.2-.5-1.2-1.6-2-2.5-3.1-.9-1.1-2.8-2.1-2.3-3.2"/><path d="m10.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.5-9-16.5-16.4"/></g><path d="m27 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#eba352"/><path d="m31.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="36.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="36.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m30.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m22.2 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.1.8 8 0 8 0" fill="#f5f5f5"/><circle cx="17.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m23.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><path d="m27 41.7l-7.7-1.2c4.6 6.6 10.8 6.6 15.4 0l-7.7 1.2" fill="#f09985"/><path d="m30 40.2c-2.3-.9-3 .5-3 .5s-.8-1.4-3-.5c-1.8.7-4.7.3-4.7.3 3.1.7 3.5 1.9 7.7 1.9s4.6-1.3 7.7-1.9c0 0-2.9.4-4.7-.3" fill="#d47f6c"/><circle cx="17.7" cy="27.4" r="1.2" fill="#2b2925"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fb.svg
index a251782..2bec077 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e6b796" d="M43.636,62h11.761V49.12l-13.823,3.166C44.912,55.756,43.636,62,43.636,62z"/><path fill="#ffe1bd" d="m44.749 62h13.155c0 0-.189-6.401 2.02-11.86l-16.46 2.367c1.826 4.894 1.283 9.493 1.283 9.493"/><g fill="#4aa9ff"><path d="m27.03 2l5 10 5-10z"/><path d="M44.854 3 44.18 14.16 53.51 8z"/><path d="M10.541 8 19.871 14.16 19.2 3z"/></g><g fill="#ffe1bd"><path d="m45.969 44.43h-5v-22.26c0-1.489 1.119-2.731 2.495-2.731h.014c1.378 0 2.495 1.242 2.495 2.777v22.21"/><path d="m51.878 44.43h-5.909v-24.13c0-1.822 1.32-3.301 2.952-3.301 1.632 0 2.957 1.479 2.957 3.301v24.13"/><path d="m57.03 44.43h-5.152v-22.714c0-1.586 1.153-2.871 2.571-2.871h.01c1.42 0 2.571 1.285 2.571 2.871v22.714"/><path d="m59.38 22.248c1.323 0 2.349 1.195 2.349 2.667v19.515h-4.699v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><g fill="#e6b796"><path d="m43.46 19.438h.014c.15 0 .296.02.438.048-1.167.231-2.057 1.356-2.057 2.684v22.26h-.891v-22.26c.001-1.489 1.12-2.732 2.496-2.732"/><path d="m48.921 17c.152 0 .3.025.446.052-1.419.24-2.51 1.597-2.51 3.249v24.13h-.889v-24.13c.001-1.822 1.321-3.301 2.953-3.301"/><path d="m54.45 18.845h.01c.15 0 .297.021.44.05-1.21.235-2.132 1.404-2.132 2.821v22.714h-.89v-22.714c.001-1.586 1.154-2.871 2.572-2.871"/><path d="m59.38 22.248c.153 0 .301.02.444.051-1.101.233-1.903 1.314-1.903 2.616v19.515h-.891v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><path fill="#ffe1bd" d="m32.581 34.25c1.499-1.739 4.522-.901 6.62 3.463 1.463 3.049 1.861 2.437 2.654 2.603v-2.732c0 0 4.831-3.807 14.445-2.069 0 0 5.476.813 5.476 3.818 0 0 .93 7.367-1 11.998-2.878 6.901-17.661 8.72-22.324-3.02-.928-2.332-2.154-4.778-3.188-7.288-1.247-3.02-4.323-4.86-2.68-6.769"/><g fill="#e6b796"><path d="m33.583 33.542c-3.214 2.396 2.698 6.979 5.494 14.1 4 10.195 15.687 10.165 20.591 5.484-4.456 5.322-16.997 6.308-21.22-4.826-2.742-7.229-9.504-12.68-4.866-14.76"/><path d="m41.68 37.704c4.109-2.8 14.815-2.911 19.334 0-4.02-5.01-16.638-3.877-19.334 0"/><path d="m45.17 41.35c1.039.062 2.058.363 3.02.795.965.424 1.871 1.014 2.678 1.734.797.729 1.491 1.602 1.965 2.595.481.987.744 2.079.732 3.159-.375-1.01-.811-1.935-1.366-2.772-.56-.834-1.21-1.591-1.951-2.249-1.473-1.339-3.215-2.353-5.078-3.262"/><path d="M20.364,62H8.604V49.12l13.823,3.166C19.088,55.756,20.364,62,20.364,62z"/></g><g fill="#ffe1bd"><path d="M19.251,62H6.095c0,0,0.189-6.401-2.022-11.86l16.46,2.367C18.708,57.401,19.251,62,19.251,62z"/><path d="m18.03 44.43h5v-22.26c0-1.489-1.119-2.731-2.495-2.731h-.014c-1.378 0-2.495 1.242-2.495 2.777v22.21"/><path d="m12.12 44.43h5.909v-24.13c0-1.822-1.32-3.301-2.952-3.301-1.632 0-2.957 1.479-2.957 3.301v24.13"/><path d="m6.97 44.43h5.152v-22.714c0-1.586-1.153-2.871-2.572-2.871h-.008c-1.42 0-2.572 1.285-2.572 2.871v22.714"/><path d="m4.62 22.248c-1.323 0-2.349 1.195-2.349 2.667v19.515h4.699v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><g fill="#e6b796"><path d="m20.54 19.438h-.014c-.15 0-.296.02-.438.048 1.167.231 2.057 1.356 2.057 2.684v22.26h.891v-22.26c-.001-1.489-1.12-2.732-2.496-2.732"/><path d="m15.08 17c-.152 0-.3.025-.446.052 1.418.24 2.509 1.597 2.509 3.249v24.13h.889v-24.13c0-1.822-1.32-3.301-2.952-3.301"/><path d="m9.55 18.845h-.008c-.151 0-.297.021-.441.05 1.209.235 2.132 1.404 2.132 2.821v22.714h.89v-22.714c-.001-1.586-1.154-2.871-2.573-2.871"/><path d="m4.62 22.248c-.154 0-.301.02-.444.051 1.101.233 1.903 1.314 1.903 2.616v19.515h.891v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><path fill="#ffe1bd" d="m31.419 34.25c-1.499-1.739-4.522-.901-6.62 3.463-1.463 3.049-1.861 2.437-2.654 2.603v-2.732c0 0-4.831-3.807-14.446-2.069 0 0-5.475.813-5.475 3.818 0 0-.93 7.367 1 11.998 2.878 6.901 17.662 8.72 22.325-3.02.928-2.332 2.154-4.778 3.188-7.288 1.247-3.02 4.324-4.86 2.68-6.769"/><g fill="#e6b796"><path d="m30.417 33.542c3.214 2.396-2.698 6.979-5.494 14.1-4 10.195-15.687 10.165-20.591 5.484 4.456 5.322 16.997 6.308 21.22-4.826 2.742-7.229 9.504-12.68 4.866-14.76"/><path d="m22.32 37.704c-4.109-2.8-14.815-2.911-19.334 0 4.02-5.01 16.638-3.877 19.334 0"/><path d="m18.83 41.35c-1.039.062-2.058.363-3.02.795-.964.424-1.871 1.014-2.678 1.734-.797.729-1.491 1.602-1.965 2.595-.481.987-.744 2.079-.731 3.159.374-1.01.81-1.935 1.366-2.772.56-.834 1.209-1.591 1.951-2.249 1.472-1.339 3.214-2.353 5.077-3.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4aa9ff"><path d="m27 2l5 10 5-10z"/><path d="m44.9 3l-.7 11.2 9.3-6.2z"/><path d="m10.5 8l9.4 6.2-.7-11.2z"/></g><path d="m20.4 62h-11.8v-12.9l13.8 3.2c-3.3 3.5-2 9.7-2 9.7" fill="#e6b796"/><g fill="#ffe1bd"><path d="m19.3 62h-13.2c0 0 .2-6.4-2-11.9l16.5 2.4c-1.9 4.9-1.3 9.5-1.3 9.5"/><path d="m18 44.4h5v-22.2c0-1.5-1.1-2.7-2.5-2.7-1.4 0-2.5 1.2-2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m12.1 44.4h5.9v-24.1c0-1.8-1.3-3.3-3-3.3-1.6 0-3 1.5-3 3.3v24.1z"/><path d="m7 44.4h5.2v-22.7c0-1.6-1.2-2.9-2.6-2.9-1.4 0-2.6 1.3-2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m4.6 22.2c-1.3 0-2.3 1.2-2.3 2.7v19.5h4.7v-19.5c0-1.5-1.1-2.7-2.4-2.7"/></g><g fill="#e6b796"><path d="m20.5 19.4c-.2 0-.3 0-.5 0 1.2.2 2.1 1.4 2.1 2.7v22.3h.9v-22.2c0-1.5-1.1-2.8-2.5-2.8"/><path d="m15.1 17c-.2 0-.3 0-.4.1 1.4.2 2.5 1.6 2.5 3.2v16.1l.9 1v-17.1c-.1-1.8-1.4-3.3-3-3.3"/><path d="m9.6 18.8c-.2 0-.3 0-.4 0 1.2.2 2.1 1.4 2.1 2.8v14.7l.9 1v-15.6c-.1-1.6-1.2-2.9-2.6-2.9"/><path d="m4.6 22.2c-.2 0-.3 0-.4.1 1.1.2 1.9 1.3 1.9 2.6v11.5l.9 1v-12.5c0-1.5-1.1-2.7-2.4-2.7"/></g><path d="m31.4 34.2c-1.5-1.7-4.5-.9-6.6 3.5-1.5 3-1.9 2.4-2.7 2.6v-2.7c0 0-19.9-1.3-19.9 1.7 0 0-.9 7.4 1 12 2.9 6.9 17.7 8.7 22.3-3 .9-2.3 2.2-4.8 3.2-7.3 1.3-3 4.4-4.8 2.7-6.8" fill="#ffe1bd"/><g fill="#e6b796"><path d="m30.4 33.5c3.2 2.4-2.7 7-5.5 14.1-4 10.2-15.7 10.2-20.6 5.5 4.5 5.3 17 6.3 21.2-4.8 2.8-7.2 9.6-12.7 4.9-14.8"/><path d="m23 40.2c-3.9-1.4-12.1 1.3-11 9.1 0-7.3 6.5-9 10.1-9 .5 0 .9-.1.9-.1"/><path d="m43.6 62h11.8v-12.9l-13.8 3.2c3.3 3.5 2 9.7 2 9.7"/></g><g fill="#ffe1bd"><path d="m44.7 62h13.2c0 0-.2-6.4 2-11.9l-16.5 2.4c1.9 4.9 1.3 9.5 1.3 9.5"/><path d="m46 44.4h-5v-22.2c0-1.5 1.1-2.7 2.5-2.7 1.4 0 2.5 1.2 2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m51.9 44.4h-5.9v-24.1c0-1.8 1.3-3.3 3-3.3 1.6 0 3 1.5 3 3.3v24.1z"/><path d="m57 44.4h-5.2v-22.7c0-1.6 1.2-2.9 2.6-2.9 1.4 0 2.6 1.3 2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m59.4 22.2c1.3 0 2.3 1.2 2.3 2.7v19.5h-4.7v-19.5c0-1.5 1.1-2.7 2.4-2.7"/></g><g fill="#e6b796"><path d="m43.5 19.4c.2 0 .3 0 .5 0-1.2.2-2.1 1.4-2.1 2.7v22.3h-.9v-22.2c0-1.5 1.1-2.8 2.5-2.8"/><path d="m48.9 17c.2 0 .3 0 .4.1-1.4.2-2.5 1.6-2.5 3.2v16.1l-.9 1v-17.1c.1-1.8 1.4-3.3 3-3.3"/><path d="m54.4 18.8c.2 0 .3 0 .4 0-1.2.2-2.1 1.4-2.1 2.8v14.7l-.9 1v-15.6c.1-1.6 1.2-2.9 2.6-2.9"/><path d="m59.4 22.2c.2 0 .3 0 .4.1-1.1.2-1.9 1.3-1.9 2.6v11.5l-.9 1v-12.5c0-1.5 1.1-2.7 2.4-2.7"/></g><path d="m32.6 34.2c1.5-1.7 4.5-.9 6.6 3.5 1.5 3 1.9 2.4 2.7 2.6v-2.7c0 0 19.9-1.3 19.9 1.7 0 0 .9 7.4-1 12-2.9 6.9-17.7 8.7-22.3-3-.9-2.3-2.2-4.8-3.2-7.3-1.3-3-4.4-4.8-2.7-6.8" fill="#ffe1bd"/><g fill="#e6b796"><path d="m33.6 33.5c-3.2 2.4 2.7 7 5.5 14.1 4 10.2 15.7 10.2 20.6 5.5-4.5 5.3-17 6.3-21.2-4.8-2.8-7.2-9.6-12.7-4.9-14.8"/><path d="m41 40.2c3.9-1.4 12.1 1.3 11 9.1 0-7.3-6.5-9-10.1-9-.5 0-.9-.1-.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fc.svg
index 8cabe5a..f90b882 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0a372" d="M43.636,62h11.76V49.12l-13.822,3.166C44.911,55.756,43.636,62,43.636,62z"/><path fill="#fed0ac" d="m44.749 62h13.155c0 0-.189-6.401 2.02-11.86l-16.461 2.367c1.827 4.894 1.284 9.493 1.284 9.493"/><g fill="#4aa9ff"><path d="m27.03 2l5 10 5-10z"/><path d="M44.853 3 44.18 14.16 53.51 8z"/><path d="M10.541 8 19.871 14.16 19.2 3z"/></g><g fill="#fed0ac"><path d="m45.968 44.43h-5v-22.26c0-1.489 1.119-2.731 2.496-2.731h.014c1.377 0 2.494 1.242 2.494 2.777v22.21"/><path d="m51.878 44.43h-5.91v-24.13c0-1.822 1.32-3.301 2.953-3.301 1.632 0 2.957 1.479 2.957 3.301v24.13"/><path d="m57.03 44.43h-5.152v-22.714c0-1.586 1.152-2.871 2.571-2.871h.009c1.42 0 2.572 1.285 2.572 2.871v22.714"/><path d="m59.38 22.248c1.322 0 2.348 1.195 2.348 2.667v19.515h-4.698v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><g fill="#e0a372"><path d="m43.46 19.438h.014c.15 0 .295.02.438.048-1.166.231-2.056 1.356-2.056 2.684v22.26h-.892v-22.26c0-1.489 1.119-2.732 2.496-2.732"/><path d="m48.921 17c.152 0 .3.025.445.052-1.418.24-2.509 1.597-2.509 3.249v24.13h-.89v-24.13c.001-1.822 1.321-3.301 2.954-3.301"/><path d="m54.45 18.845h.009c.15 0 .297.021.441.05-1.21.235-2.133 1.404-2.133 2.821v22.714h-.889v-22.714c.001-1.586 1.153-2.871 2.572-2.871"/><path d="m59.38 22.248c.153 0 .301.02.443.051-1.1.233-1.902 1.314-1.902 2.616v19.515h-.891v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><path fill="#fed0ac" d="m32.582 34.25c1.499-1.739 4.522-.901 6.619 3.463 1.463 3.049 1.861 2.437 2.655 2.603v-2.732c0 0 4.831-3.807 14.445-2.069 0 0 5.476.813 5.476 3.818 0 0 .93 7.367-1 11.998-2.878 6.901-17.661 8.72-22.325-3.02-.927-2.332-2.153-4.778-3.188-7.288-1.247-3.02-4.323-4.86-2.679-6.769"/><g fill="#e0a372"><path d="m33.583 33.542c-3.213 2.396 2.698 6.979 5.494 14.1 4 10.195 15.687 10.165 20.59 5.484-4.455 5.322-16.996 6.308-21.22-4.826-2.741-7.229-9.503-12.68-4.865-14.76"/><path d="m41.679 37.704c4.109-2.8 14.816-2.911 19.335 0-4.02-5.01-16.638-3.877-19.335 0"/><path d="m45.17 41.35c1.04.062 2.059.363 3.02.795.965.424 1.871 1.014 2.678 1.734.798.729 1.492 1.602 1.966 2.595.481.987.744 2.079.731 3.159-.374-1.01-.811-1.935-1.365-2.772-.561-.834-1.21-1.591-1.951-2.249-1.474-1.339-3.216-2.353-5.079-3.262"/><path d="M20.365,62H8.604V49.12l13.824,3.166C19.088,55.756,20.365,62,20.365,62z"/></g><g fill="#fed0ac"><path d="M19.251,62H6.095c0,0,0.189-6.401-2.022-11.86l16.459,2.367C18.708,57.401,19.251,62,19.251,62z"/><path d="m18.03 44.43h5v-22.26c0-1.489-1.119-2.731-2.494-2.731h-.014c-1.379 0-2.496 1.242-2.496 2.777v22.21"/><path d="m12.12 44.43h5.909v-24.13c0-1.822-1.32-3.301-2.952-3.301-1.632 0-2.957 1.479-2.957 3.301v24.13"/><path d="m6.97 44.43h5.152v-22.714c0-1.586-1.153-2.871-2.572-2.871h-.008c-1.42 0-2.572 1.285-2.572 2.871v22.714"/><path d="m4.62 22.248c-1.323 0-2.349 1.195-2.349 2.667v19.515h4.699v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><g fill="#e0a372"><path d="m20.541 19.438h-.014c-.15 0-.297.02-.438.048 1.167.231 2.056 1.356 2.056 2.684v22.26h.891v-22.26c-.001-1.489-1.12-2.732-2.495-2.732"/><path d="m15.08 17c-.152 0-.3.025-.446.052 1.419.24 2.509 1.597 2.509 3.249v24.13h.889v-24.13c0-1.822-1.321-3.301-2.952-3.301"/><path d="m9.55 18.845h-.008c-.151 0-.297.021-.441.05 1.209.235 2.132 1.404 2.132 2.821v22.714h.89v-22.714c-.001-1.586-1.154-2.871-2.573-2.871"/><path d="m4.62 22.248c-.154 0-.301.02-.444.051 1.101.233 1.903 1.314 1.903 2.616v19.515h.891v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><path fill="#fed0ac" d="m31.419 34.25c-1.5-1.739-4.523-.901-6.62 3.463-1.463 3.049-1.862 2.437-2.655 2.603v-2.732c0 0-4.83-3.807-14.445-2.069 0 0-5.475.813-5.475 3.818 0 0-.93 7.367 1 11.998 2.878 6.901 17.662 8.72 22.325-3.02.927-2.332 2.153-4.778 3.188-7.288 1.247-3.02 4.323-4.86 2.68-6.769"/><g fill="#e0a372"><path d="m30.417 33.542c3.212 2.396-2.699 6.979-5.494 14.1-4 10.195-15.687 10.165-20.591 5.484 4.456 5.322 16.998 6.308 21.22-4.826 2.741-7.229 9.504-12.68 4.866-14.76"/><path d="m22.321 37.704c-4.11-2.8-14.816-2.911-19.335 0 4.02-5.01 16.639-3.877 19.335 0"/><path d="m18.83 41.35c-1.039.062-2.057.363-3.02.795-.964.424-1.87 1.014-2.677 1.734-.797.729-1.491 1.602-1.965 2.595-.481.987-.744 2.079-.731 3.159.374-1.01.81-1.935 1.366-2.772.56-.834 1.209-1.591 1.951-2.249 1.471-1.339 3.212-2.353 5.076-3.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4aa9ff"><path d="m27 2l5 10 5-10z"/><path d="m44.9 3l-.7 11.2 9.3-6.2z"/><path d="m10.5 8l9.4 6.2-.7-11.2z"/></g><path d="m20.4 62h-11.8v-12.9l13.8 3.2c-3.3 3.5-2 9.7-2 9.7" fill="#e0a372"/><g fill="#fed0ac"><path d="m19.3 62h-13.2c0 0 .2-6.4-2-11.9l16.5 2.4c-1.9 4.9-1.3 9.5-1.3 9.5"/><path d="m18 44.4h5v-22.2c0-1.5-1.1-2.7-2.5-2.7-1.4 0-2.5 1.2-2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m12.1 44.4h5.9v-24.1c0-1.8-1.3-3.3-3-3.3-1.6 0-3 1.5-3 3.3.1 0 .1 24.1.1 24.1"/><path d="m7 44.4h5.2v-22.7c0-1.6-1.2-2.9-2.6-2.9-1.4 0-2.6 1.3-2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m4.6 22.2c-1.3 0-2.3 1.2-2.3 2.7v19.5h4.7v-19.5c0-1.5-1.1-2.7-2.4-2.7"/></g><g fill="#e0a372"><path d="m20.5 19.4c-.2 0-.3 0-.5 0 1.2.2 2.1 1.4 2.1 2.7v22.3h.9v-22.2c0-1.5-1.1-2.8-2.5-2.8"/><path d="m15.1 17c-.2 0-.3 0-.4.1 1.4.2 2.5 1.6 2.5 3.2v16.1l.9 1v-17.1c-.1-1.8-1.4-3.3-3-3.3"/><path d="m9.6 18.8c-.2 0-.3 0-.4 0 1.2.2 2.1 1.4 2.1 2.8v14.7l.9 1v-15.6c-.1-1.6-1.2-2.9-2.6-2.9"/><path d="m4.6 22.2c-.2 0-.3 0-.4.1 1.1.2 1.9 1.3 1.9 2.6v11.5l.9 1v-12.5c0-1.5-1.1-2.7-2.4-2.7"/></g><path d="m31.4 34.2c-1.5-1.7-4.5-.9-6.6 3.5-1.5 3-1.9 2.4-2.7 2.6v-2.7c0 0-19.9-1.3-19.9 1.7 0 0-.9 7.4 1 12 2.9 6.9 17.7 8.7 22.3-3 .9-2.3 2.2-4.8 3.2-7.3 1.3-3 4.4-4.8 2.7-6.8" fill="#fed0ac"/><g fill="#e0a372"><path d="m30.4 33.5c3.2 2.4-2.7 7-5.5 14.1-4 10.2-15.7 10.2-20.6 5.5 4.5 5.3 17 6.3 21.2-4.8 2.8-7.2 9.6-12.7 4.9-14.8"/><path d="m23 40.2c-3.9-1.4-12.1 1.3-11 9.1 0-7.3 6.5-9 10.1-9 .5 0 .9-.1.9-.1"/><path d="m43.6 62h11.8v-12.9l-13.8 3.2c3.3 3.5 2 9.7 2 9.7"/></g><g fill="#fed0ac"><path d="m44.7 62h13.2c0 0-.2-6.4 2-11.9l-16.5 2.4c1.9 4.9 1.3 9.5 1.3 9.5"/><path d="m46 44.4h-5v-22.2c0-1.5 1.1-2.7 2.5-2.7 1.4 0 2.5 1.2 2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m51.9 44.4h-5.9v-24.1c0-1.8 1.3-3.3 3-3.3 1.6 0 3 1.5 3 3.3v24.1z"/><path d="m57 44.4h-5.2v-22.7c0-1.6 1.2-2.9 2.6-2.9 1.4 0 2.6 1.3 2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m59.4 22.2c1.3 0 2.3 1.2 2.3 2.7v19.5h-4.7v-19.5c0-1.5 1.1-2.7 2.4-2.7"/></g><g fill="#e0a372"><path d="m43.5 19.4c.2 0 .3 0 .5 0-1.2.2-2.1 1.4-2.1 2.7v22.3h-.9v-22.2c0-1.5 1.1-2.8 2.5-2.8"/><path d="m48.9 17c.2 0 .3 0 .4.1-1.4.2-2.5 1.6-2.5 3.2v16.1l-.9 1v-17.1c.1-1.8 1.4-3.3 3-3.3"/><path d="m54.4 18.8c.2 0 .3 0 .4 0-1.2.2-2.1 1.4-2.1 2.8v14.7l-.9 1v-15.6c.1-1.6 1.2-2.9 2.6-2.9"/><path d="m59.4 22.2c.2 0 .3 0 .4.1-1.1.2-1.9 1.3-1.9 2.6v11.5l-.9 1v-12.5c0-1.5 1.1-2.7 2.4-2.7"/></g><path d="m32.6 34.2c1.5-1.7 4.5-.9 6.6 3.5 1.5 3 1.9 2.4 2.7 2.6v-2.7c0 0 19.9-1.3 19.9 1.7 0 0 .9 7.4-1 12-2.9 6.9-17.7 8.7-22.3-3-.9-2.3-2.2-4.8-3.2-7.3-1.3-3-4.4-4.8-2.7-6.8" fill="#fed0ac"/><g fill="#e0a372"><path d="m33.6 33.5c-3.2 2.4 2.7 7 5.5 14.1 4 10.2 15.7 10.2 20.6 5.5-4.5 5.3-17 6.3-21.2-4.8-2.8-7.2-9.6-12.7-4.9-14.8"/><path d="m41 40.2c3.9-1.4 12.1 1.3 11 9.1 0-7.3-6.5-9-10.1-9-.5 0-.9-.1-.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fd.svg
index c69204b..0b0ed18 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b58360" d="M43.636,62h11.761V49.12l-13.823,3.166C44.911,55.756,43.636,62,43.636,62z"/><path fill="#d6a57c" d="m44.749 62h13.156c0 0-.189-6.401 2.02-11.86l-16.46 2.367c1.826 4.894 1.283 9.493 1.283 9.493"/><g fill="#4aa9ff"><path d="m27.03 2l5 10 5-10z"/><path d="M44.854 3 44.18 14.16 53.51 8z"/><path d="M10.541 8 19.871 14.16 19.2 3z"/></g><g fill="#d6a57c"><path d="m45.969 44.43h-5v-22.26c0-1.489 1.119-2.731 2.495-2.731h.014c1.378 0 2.495 1.242 2.495 2.777v22.21"/><path d="m51.878 44.43h-5.909v-24.13c0-1.822 1.32-3.301 2.952-3.301 1.633 0 2.957 1.479 2.957 3.301v24.13"/><path d="m57.03 44.43h-5.152v-22.714c0-1.586 1.152-2.871 2.572-2.871h.008c1.421 0 2.572 1.285 2.572 2.871v22.714"/><path d="m59.38 22.248c1.322 0 2.349 1.195 2.349 2.667v19.515h-4.699v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><g fill="#b58360"><path d="m43.46 19.438h.014c.15 0 .296.02.438.048-1.166.231-2.055 1.356-2.055 2.684v22.26h-.892v-22.26c0-1.489 1.119-2.732 2.495-2.732"/><path d="m48.921 17c.152 0 .301.025.445.052-1.418.24-2.508 1.597-2.508 3.249v24.13h-.89v-24.13c.001-1.822 1.321-3.301 2.953-3.301"/><path d="m54.45 18.845h.008c.151 0 .298.021.441.05-1.209.235-2.132 1.404-2.132 2.821v22.714h-.89v-22.714c.001-1.586 1.153-2.871 2.573-2.871"/><path d="m59.38 22.248c.154 0 .301.02.444.051-1.101.233-1.903 1.314-1.903 2.616v19.515h-.891v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><path fill="#d6a57c" d="m32.581 34.25c1.5-1.739 4.523-.901 6.619 3.463 1.463 3.049 1.862 2.437 2.656 2.603v-2.732c0 0 4.83-3.807 14.445-2.069 0 0 5.475.813 5.475 3.818 0 0 .93 7.367-1 11.998-2.879 6.901-17.662 8.72-22.326-3.02-.926-2.332-2.152-4.778-3.188-7.288-1.245-3.02-4.322-4.86-2.679-6.769"/><g fill="#b58360"><path d="m33.583 33.542c-3.213 2.396 2.699 6.979 5.494 14.1 4 10.195 15.688 10.165 20.591 5.484-4.456 5.322-16.997 6.308-21.22-4.826-2.74-7.229-9.504-12.68-4.865-14.76"/><path d="m41.679 37.704c4.11-2.8 14.816-2.911 19.336 0-4.02-5.01-16.639-3.877-19.336 0"/><path d="m45.17 41.35c1.04.062 2.058.363 3.02.795.964.424 1.87 1.014 2.678 1.734.798.729 1.491 1.602 1.966 2.595.48.987.744 2.079.73 3.159-.373-1.01-.81-1.935-1.365-2.772-.56-.834-1.209-1.591-1.951-2.249-1.474-1.339-3.215-2.353-5.078-3.262"/><path d="M20.364,62H8.604V49.12l13.823,3.166C19.089,55.756,20.364,62,20.364,62z"/></g><g fill="#d6a57c"><path d="M19.251,62H6.095c0,0,0.189-6.401-2.022-11.86l16.46,2.367C18.708,57.401,19.251,62,19.251,62z"/><path d="m18.03 44.43h5v-22.26c0-1.489-1.119-2.731-2.495-2.731h-.014c-1.378 0-2.495 1.242-2.495 2.777v22.21"/><path d="m12.12 44.43h5.909v-24.13c0-1.822-1.32-3.301-2.952-3.301-1.632 0-2.957 1.479-2.957 3.301v24.13"/><path d="m6.97 44.43h5.152v-22.714c0-1.586-1.153-2.871-2.572-2.871h-.008c-1.42 0-2.572 1.285-2.572 2.871v22.714"/><path d="m4.62 22.248c-1.323 0-2.349 1.195-2.349 2.667v19.515h4.699v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><g fill="#b58360"><path d="m20.54 19.438h-.014c-.15 0-.296.02-.438.048 1.166.231 2.055 1.356 2.055 2.684v22.26h.892v-22.26c0-1.489-1.119-2.732-2.495-2.732"/><path d="m15.08 17c-.152 0-.3.025-.446.052 1.418.24 2.508 1.597 2.508 3.249v24.13h.89v-24.13c0-1.822-1.32-3.301-2.952-3.301"/><path d="m9.55 18.845h-.008c-.151 0-.297.021-.441.05 1.209.235 2.132 1.404 2.132 2.821v22.714h.89v-22.714c-.001-1.586-1.154-2.871-2.573-2.871"/><path d="m4.62 22.248c-.154 0-.301.02-.444.051 1.101.233 1.903 1.314 1.903 2.616v19.515h.891v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><path fill="#d6a57c" d="m31.419 34.25c-1.5-1.739-4.523-.901-6.619 3.463-1.463 3.049-1.862 2.437-2.656 2.603v-2.732c0 0-4.83-3.807-14.445-2.069 0 0-5.475.813-5.475 3.818 0 0-.93 7.367 1 11.998 2.878 6.901 17.662 8.72 22.326-3.02.926-2.332 2.152-4.778 3.188-7.288 1.245-3.02 4.322-4.86 2.679-6.769"/><g fill="#b58360"><path d="m30.417 33.542c3.213 2.396-2.699 6.979-5.494 14.1-4 10.195-15.687 10.165-20.591 5.484 4.456 5.322 16.997 6.308 21.22-4.826 2.74-7.229 9.504-12.68 4.865-14.76"/><path d="m22.321 37.704c-4.11-2.8-14.816-2.911-19.335 0 4.02-5.01 16.638-3.877 19.335 0"/><path d="m18.83 41.35c-1.04.062-2.058.363-3.02.795-.964.424-1.871 1.014-2.678 1.734-.797.729-1.491 1.602-1.965 2.595-.481.987-.744 2.079-.731 3.159.374-1.01.81-1.935 1.366-2.772.56-.834 1.209-1.591 1.951-2.249 1.472-1.339 3.214-2.353 5.077-3.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4aa9ff"><path d="m27 2l5 10 5-10z"/><path d="m44.9 3l-.7 11.2 9.3-6.2z"/><path d="m10.5 8l9.4 6.2-.7-11.2z"/></g><path d="m20.4 62h-11.8v-12.9l13.8 3.2c-3.3 3.5-2 9.7-2 9.7" fill="#b58360"/><g fill="#d6a57c"><path d="m19.3 62h-13.2c0 0 .2-6.4-2-11.9l16.5 2.4c-1.9 4.9-1.3 9.5-1.3 9.5"/><path d="m18 44.4h5v-22.2c0-1.5-1.1-2.7-2.5-2.7-1.4 0-2.5 1.2-2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m12.1 44.4h5.9v-24.1c0-1.8-1.3-3.3-3-3.3-1.6 0-3 1.5-3 3.3.1 0 .1 24.1.1 24.1"/><path d="m7 44.4h5.2v-22.7c0-1.6-1.2-2.9-2.6-2.9-1.4 0-2.6 1.3-2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m4.6 22.2c-1.3 0-2.3 1.2-2.3 2.7v19.5h4.7v-19.5c0-1.5-1.1-2.7-2.4-2.7"/></g><g fill="#b58360"><path d="m20.5 19.4c-.2 0-.3 0-.5 0 1.2.2 2.1 1.4 2.1 2.7v22.3h.9v-22.2c0-1.5-1.1-2.8-2.5-2.8"/><path d="m15.1 17c-.2 0-.3 0-.4.1 1.4.2 2.5 1.6 2.5 3.2v16.1l.9 1v-17.1c-.1-1.8-1.4-3.3-3-3.3"/><path d="m9.6 18.8c-.2 0-.3 0-.4 0 1.2.2 2.1 1.4 2.1 2.8v14.7l.9 1v-15.6c-.1-1.6-1.2-2.9-2.6-2.9"/><path d="m4.6 22.2c-.2 0-.3 0-.4.1 1.1.2 1.9 1.3 1.9 2.6v11.5l.9 1v-12.5c0-1.5-1.1-2.7-2.4-2.7"/></g><path d="m31.4 34.2c-1.5-1.7-4.5-.9-6.6 3.5-1.5 3-1.9 2.4-2.7 2.6v-2.7c0 0-19.9-1.3-19.9 1.7 0 0-.9 7.4 1 12 2.9 6.9 17.7 8.7 22.3-3 .9-2.3 2.2-4.8 3.2-7.3 1.3-3 4.4-4.8 2.7-6.8" fill="#d6a57c"/><g fill="#b58360"><path d="m30.4 33.5c3.2 2.4-2.7 7-5.5 14.1-4 10.2-15.7 10.2-20.6 5.5 4.5 5.3 17 6.3 21.2-4.8 2.8-7.2 9.6-12.7 4.9-14.8"/><path d="m23 40.2c-3.9-1.4-12.1 1.3-11 9.1 0-7.3 6.5-9 10.1-9 .5 0 .9-.1.9-.1"/><path d="m43.6 62h11.8v-12.9l-13.8 3.2c3.3 3.5 2 9.7 2 9.7"/></g><g fill="#d6a57c"><path d="m44.7 62h13.2c0 0-.2-6.4 2-11.9l-16.5 2.4c1.9 4.9 1.3 9.5 1.3 9.5"/><path d="m46 44.4h-5v-22.2c0-1.5 1.1-2.7 2.5-2.7 1.4 0 2.5 1.2 2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m51.9 44.4h-5.9v-24.1c0-1.8 1.3-3.3 3-3.3 1.6 0 3 1.5 3 3.3v24.1z"/><path d="m57 44.4h-5.2v-22.7c0-1.6 1.2-2.9 2.6-2.9 1.4 0 2.6 1.3 2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m59.4 22.2c1.3 0 2.3 1.2 2.3 2.7v19.5h-4.7v-19.5c0-1.5 1.1-2.7 2.4-2.7"/></g><g fill="#b58360"><path d="m43.5 19.4c.2 0 .3 0 .5 0-1.2.2-2.1 1.4-2.1 2.7v22.3h-.9v-22.2c0-1.5 1.1-2.8 2.5-2.8"/><path d="m48.9 17c.2 0 .3 0 .4.1-1.4.2-2.5 1.6-2.5 3.2v16.1l-.9 1v-17.1c.1-1.8 1.4-3.3 3-3.3"/><path d="m54.4 18.8c.2 0 .3 0 .4 0-1.2.2-2.1 1.4-2.1 2.8v14.7l-.9 1v-15.6c.1-1.6 1.2-2.9 2.6-2.9"/><path d="m59.4 22.2c.2 0 .3 0 .4.1-1.1.2-1.9 1.3-1.9 2.6v11.5l-.9 1v-12.5c0-1.5 1.1-2.7 2.4-2.7"/></g><path d="m32.6 34.2c1.5-1.7 4.5-.9 6.6 3.5 1.5 3 1.9 2.4 2.7 2.6v-2.7c0 0 19.9-1.3 19.9 1.7 0 0 .9 7.4-1 12-2.9 6.9-17.7 8.7-22.3-3-.9-2.3-2.2-4.8-3.2-7.3-1.3-3-4.4-4.8-2.7-6.8" fill="#d6a57c"/><g fill="#b58360"><path d="m33.6 33.5c-3.2 2.4 2.7 7 5.5 14.1 4 10.2 15.7 10.2 20.6 5.5-4.5 5.3-17 6.3-21.2-4.8-2.8-7.2-9.6-12.7-4.9-14.8"/><path d="m41 40.2c3.9-1.4 12.1 1.3 11 9.1 0-7.3-6.5-9-10.1-9-.5 0-.9-.1-.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fe.svg
index f6afdab..4137080 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#935e3e" d="M43.636,62h11.761V49.12l-13.823,3.166C44.911,55.756,43.636,62,43.636,62z"/><path fill="#b47d56" d="m44.749 62h13.156c0 0-.189-6.401 2.02-11.86l-16.46 2.367c1.826 4.894 1.283 9.493 1.283 9.493"/><g fill="#4aa9ff"><path d="m27.03 2l5 10 5-10z"/><path d="M44.854 3 44.18 14.16 53.51 8z"/><path d="M10.541 8 19.871 14.16 19.2 3z"/></g><g fill="#b47d56"><path d="m45.969 44.43h-5v-22.26c0-1.489 1.119-2.731 2.495-2.731h.014c1.378 0 2.495 1.242 2.495 2.777v22.21"/><path d="m51.878 44.43h-5.909v-24.13c0-1.822 1.32-3.301 2.952-3.301 1.633 0 2.957 1.479 2.957 3.301v24.13"/><path d="m57.03 44.43h-5.152v-22.714c0-1.586 1.152-2.871 2.572-2.871h.008c1.421 0 2.572 1.285 2.572 2.871v22.714"/><path d="m59.38 22.248c1.322 0 2.349 1.195 2.349 2.667v19.515h-4.699v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><g fill="#935e3e"><path d="m43.46 19.438h.014c.15 0 .296.02.438.048-1.166.231-2.055 1.356-2.055 2.684v22.26h-.892v-22.26c0-1.489 1.119-2.732 2.495-2.732"/><path d="m48.921 17c.152 0 .301.025.445.052-1.418.24-2.508 1.597-2.508 3.249v24.13h-.89v-24.13c.001-1.822 1.321-3.301 2.953-3.301"/><path d="m54.45 18.845h.008c.151 0 .298.021.441.05-1.209.235-2.132 1.404-2.132 2.821v22.714h-.89v-22.714c.001-1.586 1.153-2.871 2.573-2.871"/><path d="m59.38 22.248c.154 0 .301.02.444.051-1.101.233-1.903 1.314-1.903 2.616v19.515h-.891v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><path fill="#b47d56" d="m32.581 34.25c1.5-1.739 4.523-.901 6.619 3.463 1.463 3.049 1.862 2.437 2.656 2.603v-2.732c0 0 4.83-3.807 14.445-2.069 0 0 5.475.813 5.475 3.818 0 0 .93 7.367-1 11.998-2.879 6.901-17.662 8.72-22.326-3.02-.926-2.332-2.152-4.778-3.188-7.288-1.245-3.02-4.322-4.86-2.679-6.769"/><g fill="#935e3e"><path d="m33.583 33.542c-3.213 2.396 2.699 6.979 5.494 14.1 4 10.195 15.688 10.165 20.591 5.484-4.456 5.322-16.997 6.308-21.22-4.826-2.74-7.229-9.504-12.68-4.865-14.76"/><path d="m41.679 37.704c4.11-2.8 14.816-2.911 19.336 0-4.02-5.01-16.639-3.877-19.336 0"/><path d="m45.17 41.35c1.04.062 2.058.363 3.02.795.964.424 1.87 1.014 2.678 1.734.798.729 1.491 1.602 1.966 2.595.48.987.744 2.079.73 3.159-.373-1.01-.81-1.935-1.365-2.772-.56-.834-1.209-1.591-1.951-2.249-1.474-1.339-3.215-2.353-5.078-3.262"/><path d="M20.364,62H8.604V49.12l13.823,3.166C19.089,55.756,20.364,62,20.364,62z"/></g><g fill="#b47d56"><path d="M19.251,62H6.095c0,0,0.189-6.401-2.022-11.86l16.46,2.367C18.708,57.401,19.251,62,19.251,62z"/><path d="m18.03 44.43h5v-22.26c0-1.489-1.119-2.731-2.495-2.731h-.014c-1.378 0-2.495 1.242-2.495 2.777v22.21"/><path d="m12.12 44.43h5.909v-24.13c0-1.822-1.32-3.301-2.952-3.301-1.632 0-2.957 1.479-2.957 3.301v24.13"/><path d="m6.97 44.43h5.152v-22.714c0-1.586-1.153-2.871-2.572-2.871h-.008c-1.42 0-2.572 1.285-2.572 2.871v22.714"/><path d="m4.62 22.248c-1.323 0-2.349 1.195-2.349 2.667v19.515h4.699v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><g fill="#935e3e"><path d="m20.54 19.438h-.014c-.15 0-.296.02-.438.048 1.166.231 2.055 1.356 2.055 2.684v22.26h.892v-22.26c0-1.489-1.119-2.732-2.495-2.732"/><path d="m15.08 17c-.152 0-.3.025-.446.052 1.418.24 2.508 1.597 2.508 3.249v24.13h.89v-24.13c0-1.822-1.32-3.301-2.952-3.301"/><path d="m9.55 18.845h-.008c-.151 0-.297.021-.441.05 1.209.235 2.132 1.404 2.132 2.821v22.714h.89v-22.714c-.001-1.586-1.154-2.871-2.573-2.871"/><path d="m4.62 22.248c-.154 0-.301.02-.444.051 1.101.233 1.903 1.314 1.903 2.616v19.515h.891v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><path fill="#b47d56" d="m31.419 34.25c-1.5-1.739-4.523-.901-6.619 3.463-1.463 3.049-1.862 2.437-2.656 2.603v-2.732c0 0-4.83-3.807-14.445-2.069 0 0-5.475.813-5.475 3.818 0 0-.93 7.367 1 11.998 2.878 6.901 17.662 8.72 22.326-3.02.926-2.332 2.152-4.778 3.188-7.288 1.245-3.02 4.322-4.86 2.679-6.769"/><g fill="#935e3e"><path d="m30.417 33.542c3.213 2.396-2.699 6.979-5.494 14.1-4 10.195-15.687 10.165-20.591 5.484 4.456 5.322 16.997 6.308 21.22-4.826 2.74-7.229 9.504-12.68 4.865-14.76"/><path d="m22.321 37.704c-4.11-2.8-14.816-2.911-19.335 0 4.02-5.01 16.638-3.877 19.335 0"/><path d="m18.83 41.35c-1.04.062-2.058.363-3.02.795-.964.424-1.871 1.014-2.678 1.734-.797.729-1.491 1.602-1.965 2.595-.481.987-.744 2.079-.731 3.159.374-1.01.81-1.935 1.366-2.772.56-.834 1.209-1.591 1.951-2.249 1.472-1.339 3.214-2.353 5.077-3.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4aa9ff"><path d="m27 2l5 10 5-10z"/><path d="m44.9 3l-.7 11.2 9.3-6.2z"/><path d="m10.5 8l9.4 6.2-.7-11.2z"/></g><path d="m20.4 62h-11.8v-12.9l13.8 3.2c-3.3 3.5-2 9.7-2 9.7" fill="#935e3e"/><g fill="#b47d56"><path d="m19.3 62h-13.2c0 0 .2-6.4-2-11.9l16.5 2.4c-1.9 4.9-1.3 9.5-1.3 9.5"/><path d="m18 44.4h5v-22.2c0-1.5-1.1-2.7-2.5-2.7-1.4 0-2.5 1.2-2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m12.1 44.4h5.9v-24.1c0-1.8-1.3-3.3-3-3.3-1.6 0-3 1.5-3 3.3.1 0 .1 24.1.1 24.1"/><path d="m7 44.4h5.2v-22.7c0-1.6-1.2-2.9-2.6-2.9-1.4 0-2.6 1.3-2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m4.6 22.2c-1.3 0-2.3 1.2-2.3 2.7v19.5h4.7v-19.5c0-1.5-1.1-2.7-2.4-2.7"/></g><g fill="#935e3e"><path d="m20.5 19.4c-.2 0-.3 0-.5 0 1.2.2 2.1 1.4 2.1 2.7v22.3h.9v-22.2c0-1.5-1.1-2.8-2.5-2.8"/><path d="m15.1 17c-.2 0-.3 0-.4.1 1.4.2 2.5 1.6 2.5 3.2v16.1l.9 1v-17.1c-.1-1.8-1.4-3.3-3-3.3"/><path d="m9.6 18.8c-.2 0-.3 0-.4 0 1.2.2 2.1 1.4 2.1 2.8v14.7l.9 1v-15.6c-.1-1.6-1.2-2.9-2.6-2.9"/><path d="m4.6 22.2c-.2 0-.3 0-.4.1 1.1.2 1.9 1.3 1.9 2.6v11.5l.9 1v-12.5c0-1.5-1.1-2.7-2.4-2.7"/></g><path d="m31.4 34.2c-1.5-1.7-4.5-.9-6.6 3.5-1.5 3-1.9 2.4-2.7 2.6v-2.7c0 0-19.9-1.3-19.9 1.7 0 0-.9 7.4 1 12 2.9 6.9 17.7 8.7 22.3-3 .9-2.3 2.2-4.8 3.2-7.3 1.3-3 4.4-4.8 2.7-6.8" fill="#b47d56"/><g fill="#935e3e"><path d="m30.4 33.5c3.2 2.4-2.7 7-5.5 14.1-4 10.2-15.7 10.2-20.6 5.5 4.5 5.3 17 6.3 21.2-4.8 2.8-7.2 9.6-12.7 4.9-14.8"/><path d="m23 40.2c-3.9-1.4-12.1 1.3-11 9.1 0-7.3 6.5-9 10.1-9 .5 0 .9-.1.9-.1"/><path d="m43.6 62h11.8v-12.9l-13.8 3.2c3.3 3.5 2 9.7 2 9.7"/></g><g fill="#b47d56"><path d="m44.7 62h13.2c0 0-.2-6.4 2-11.9l-16.5 2.4c1.9 4.9 1.3 9.5 1.3 9.5"/><path d="m46 44.4h-5v-22.2c0-1.5 1.1-2.7 2.5-2.7 1.4 0 2.5 1.2 2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m51.9 44.4h-5.9v-24.1c0-1.8 1.3-3.3 3-3.3 1.6 0 3 1.5 3 3.3v24.1z"/><path d="m57 44.4h-5.2v-22.7c0-1.6 1.2-2.9 2.6-2.9 1.4 0 2.6 1.3 2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m59.4 22.2c1.3 0 2.3 1.2 2.3 2.7v19.5h-4.7v-19.5c0-1.5 1.1-2.7 2.4-2.7"/></g><g fill="#935e3e"><path d="m43.5 19.4c.2 0 .3 0 .5 0-1.2.2-2.1 1.4-2.1 2.7v22.3h-.9v-22.2c0-1.5 1.1-2.8 2.5-2.8"/><path d="m48.9 17c.2 0 .3 0 .4.1-1.4.2-2.5 1.6-2.5 3.2v16.1l-.9 1v-17.1c.1-1.8 1.4-3.3 3-3.3"/><path d="m54.4 18.8c.2 0 .3 0 .4 0-1.2.2-2.1 1.4-2.1 2.8v14.7l-.9 1v-15.6c.1-1.6 1.2-2.9 2.6-2.9"/><path d="m59.4 22.2c.2 0 .3 0 .4.1-1.1.2-1.9 1.3-1.9 2.6v11.5l-.9 1v-12.5c0-1.5 1.1-2.7 2.4-2.7"/></g><path d="m32.6 34.2c1.5-1.7 4.5-.9 6.6 3.5 1.5 3 1.9 2.4 2.7 2.6v-2.7c0 0 19.9-1.3 19.9 1.7 0 0 .9 7.4-1 12-2.9 6.9-17.7 8.7-22.3-3-.9-2.3-2.2-4.8-3.2-7.3-1.3-3-4.4-4.8-2.7-6.8" fill="#b47d56"/><g fill="#935e3e"><path d="m33.6 33.5c-3.2 2.4 2.7 7 5.5 14.1 4 10.2 15.7 10.2 20.6 5.5-4.5 5.3-17 6.3-21.2-4.8-2.8-7.2-9.6-12.7-4.9-14.8"/><path d="m41 40.2c3.9-1.4 12.1 1.3 11 9.1 0-7.3-6.5-9-10.1-9-.5 0-.9-.1-.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3ff.svg
index fa54508..e13a1d7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64c-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#705041" d="M43.636,62h11.761V49.12l-13.823,3.166C44.912,55.756,43.636,62,43.636,62z"/><path fill="#8a6859" d="m44.749 62h13.155c0 0-.189-6.401 2.02-11.86l-16.46 2.367c1.826 4.894 1.283 9.493 1.283 9.493"/><g fill="#4aa9ff"><path d="m27.03 2l5 10 5-10z"/><path d="M44.854 3 44.18 14.16 53.51 8z"/><path d="M10.541 8 19.871 14.16 19.2 3z"/></g><g fill="#8a6859"><path d="m45.969 44.43h-5v-22.26c0-1.489 1.119-2.731 2.495-2.731h.014c1.378 0 2.495 1.242 2.495 2.777v22.21"/><path d="m51.878 44.43h-5.909v-24.13c0-1.822 1.32-3.301 2.952-3.301 1.632 0 2.957 1.479 2.957 3.301v24.13"/><path d="m57.03 44.43h-5.152v-22.714c0-1.586 1.153-2.871 2.571-2.871h.01c1.42 0 2.571 1.285 2.571 2.871v22.714"/><path d="m59.38 22.248c1.323 0 2.349 1.195 2.349 2.667v19.515h-4.699v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><g fill="#705041"><path d="m43.46 19.438h.014c.15 0 .296.02.438.048-1.167.231-2.057 1.356-2.057 2.684v22.26h-.891v-22.26c.001-1.489 1.12-2.732 2.496-2.732"/><path d="m48.921 17c.152 0 .3.025.446.052-1.419.24-2.51 1.597-2.51 3.249v24.13h-.889v-24.13c.001-1.822 1.321-3.301 2.953-3.301"/><path d="m54.45 18.845h.01c.15 0 .297.021.44.05-1.21.235-2.132 1.404-2.132 2.821v22.714h-.89v-22.714c.001-1.586 1.154-2.871 2.572-2.871"/><path d="m59.38 22.248c.153 0 .301.02.444.051-1.101.233-1.903 1.314-1.903 2.616v19.515h-.891v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><path fill="#8a6859" d="m32.581 34.25c1.499-1.739 4.522-.901 6.62 3.463 1.463 3.049 1.861 2.437 2.654 2.603v-2.732c0 0 4.831-3.807 14.445-2.069 0 0 5.476.813 5.476 3.818 0 0 .93 7.367-1 11.998-2.878 6.901-17.661 8.72-22.324-3.02-.928-2.332-2.154-4.778-3.188-7.288-1.247-3.02-4.323-4.86-2.68-6.769"/><g fill="#705041"><path d="m33.583 33.542c-3.214 2.396 2.698 6.979 5.494 14.1 4 10.195 15.687 10.165 20.591 5.484-4.456 5.322-16.997 6.308-21.22-4.826-2.742-7.229-9.504-12.68-4.866-14.76"/><path d="m41.68 37.704c4.109-2.8 14.815-2.911 19.334 0-4.02-5.01-16.638-3.877-19.334 0"/><path d="m45.17 41.35c1.039.062 2.058.363 3.02.795.965.424 1.871 1.014 2.678 1.734.797.729 1.491 1.602 1.965 2.595.481.987.744 2.079.732 3.159-.375-1.01-.811-1.935-1.366-2.772-.56-.834-1.21-1.591-1.951-2.249-1.473-1.339-3.215-2.353-5.078-3.262"/><path d="M20.364,62H8.604V49.12l13.823,3.166C19.088,55.756,20.364,62,20.364,62z"/></g><g fill="#8a6859"><path d="M19.251,62H6.095c0,0,0.189-6.401-2.022-11.86l16.46,2.367C18.708,57.401,19.251,62,19.251,62z"/><path d="m18.03 44.43h5v-22.26c0-1.489-1.119-2.731-2.495-2.731h-.014c-1.378 0-2.495 1.242-2.495 2.777v22.21"/><path d="m12.12 44.43h5.909v-24.13c0-1.822-1.32-3.301-2.952-3.301-1.632 0-2.957 1.479-2.957 3.301v24.13"/><path d="m6.97 44.43h5.152v-22.714c0-1.586-1.153-2.871-2.572-2.871h-.008c-1.42 0-2.572 1.285-2.572 2.871v22.714"/><path d="m4.62 22.248c-1.323 0-2.349 1.195-2.349 2.667v19.515h4.699v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><g fill="#705041"><path d="m20.54 19.438h-.014c-.15 0-.296.02-.438.048 1.167.231 2.057 1.356 2.057 2.684v22.26h.891v-22.26c-.001-1.489-1.12-2.732-2.496-2.732"/><path d="m15.08 17c-.152 0-.3.025-.446.052 1.418.24 2.509 1.597 2.509 3.249v24.13h.889v-24.13c0-1.822-1.32-3.301-2.952-3.301"/><path d="m9.55 18.845h-.008c-.151 0-.297.021-.441.05 1.209.235 2.132 1.404 2.132 2.821v22.714h.89v-22.714c-.001-1.586-1.154-2.871-2.573-2.871"/><path d="m4.62 22.248c-.154 0-.301.02-.444.051 1.101.233 1.903 1.314 1.903 2.616v19.515h.891v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><path fill="#8a6859" d="m31.419 34.25c-1.499-1.739-4.522-.901-6.62 3.463-1.463 3.049-1.861 2.437-2.654 2.603v-2.732c0 0-4.831-3.807-14.446-2.069 0 0-5.475.813-5.475 3.818 0 0-.93 7.367 1 11.998 2.878 6.901 17.662 8.72 22.325-3.02.928-2.332 2.154-4.778 3.188-7.288 1.247-3.02 4.324-4.86 2.68-6.769"/><g fill="#705041"><path d="m30.417 33.542c3.214 2.396-2.698 6.979-5.494 14.1-4 10.195-15.687 10.165-20.591 5.484 4.456 5.322 16.997 6.308 21.22-4.826 2.742-7.229 9.504-12.68 4.866-14.76"/><path d="m22.32 37.704c-4.109-2.8-14.815-2.911-19.334 0 4.02-5.01 16.638-3.877 19.334 0"/><path d="m18.83 41.35c-1.039.062-2.058.363-3.02.795-.964.424-1.871 1.014-2.678 1.734-.797.729-1.491 1.602-1.965 2.595-.481.987-.744 2.079-.731 3.159.374-1.01.81-1.935 1.366-2.772.56-.834 1.209-1.591 1.951-2.249 1.472-1.339 3.214-2.353 5.077-3.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4aa9ff"><path d="m27 2l5 10 5-10z"/><path d="m44.9 3l-.7 11.2 9.3-6.2z"/><path d="m10.5 8l9.4 6.2-.7-11.2z"/></g><path d="m20.4 62h-11.8v-12.9l13.8 3.2c-3.3 3.5-2 9.7-2 9.7" fill="#705041"/><g fill="#8a6859"><path d="m19.3 62h-13.2c0 0 .2-6.4-2-11.9l16.5 2.4c-1.9 4.9-1.3 9.5-1.3 9.5"/><path d="m18 44.4h5v-22.2c0-1.5-1.1-2.7-2.5-2.7-1.4 0-2.5 1.2-2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m12.1 44.4h5.9v-24.1c0-1.8-1.3-3.3-3-3.3-1.6 0-3 1.5-3 3.3.1 0 .1 24.1.1 24.1"/><path d="m7 44.4h5.2v-22.7c0-1.6-1.2-2.9-2.6-2.9-1.4 0-2.6 1.3-2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m4.6 22.2c-1.3 0-2.3 1.2-2.3 2.7v19.5h4.7v-19.5c0-1.5-1.1-2.7-2.4-2.7"/></g><g fill="#705041"><path d="m20.5 19.4c-.2 0-.3 0-.5 0 1.2.2 2.1 1.4 2.1 2.7v22.3h.9v-22.2c0-1.5-1.1-2.8-2.5-2.8"/><path d="m15.1 17c-.2 0-.3 0-.4.1 1.4.2 2.5 1.6 2.5 3.2v16.1l.9 1v-17.1c-.1-1.8-1.4-3.3-3-3.3"/><path d="m9.6 18.8c-.2 0-.3 0-.4 0 1.2.2 2.1 1.4 2.1 2.8v14.7l.9 1v-15.6c-.1-1.6-1.2-2.9-2.6-2.9"/><path d="m4.6 22.2c-.2 0-.3 0-.4.1 1.1.2 1.9 1.3 1.9 2.6v11.5l.9 1v-12.5c0-1.5-1.1-2.7-2.4-2.7"/></g><path d="m31.4 34.2c-1.5-1.7-4.5-.9-6.6 3.5-1.5 3-1.9 2.4-2.7 2.6v-2.7c0 0-19.9-1.3-19.9 1.7 0 0-.9 7.4 1 12 2.9 6.9 17.7 8.7 22.3-3 .9-2.3 2.2-4.8 3.2-7.3 1.3-3 4.4-4.8 2.7-6.8" fill="#8a6859"/><g fill="#705041"><path d="m30.4 33.5c3.2 2.4-2.7 7-5.5 14.1-4 10.2-15.7 10.2-20.6 5.5 4.5 5.3 17 6.3 21.2-4.8 2.8-7.2 9.6-12.7 4.9-14.8"/><path d="m23 40.2c-3.9-1.4-12.1 1.3-11 9.1 0-7.3 6.5-9 10.1-9 .5 0 .9-.1.9-.1"/><path d="m43.6 62h11.8v-12.9l-13.8 3.2c3.3 3.5 2 9.7 2 9.7"/></g><g fill="#8a6859"><path d="m44.7 62h13.2c0 0-.2-6.4 2-11.9l-16.5 2.4c1.9 4.9 1.3 9.5 1.3 9.5"/><path d="m46 44.4h-5v-22.2c0-1.5 1.1-2.7 2.5-2.7 1.4 0 2.5 1.2 2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m51.9 44.4h-5.9v-24.1c0-1.8 1.3-3.3 3-3.3 1.6 0 3 1.5 3 3.3v24.1z"/><path d="m57 44.4h-5.2v-22.7c0-1.6 1.2-2.9 2.6-2.9 1.4 0 2.6 1.3 2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m59.4 22.2c1.3 0 2.3 1.2 2.3 2.7v19.5h-4.7v-19.5c0-1.5 1.1-2.7 2.4-2.7"/></g><g fill="#705041"><path d="m43.5 19.4c.2 0 .3 0 .5 0-1.2.2-2.1 1.4-2.1 2.7v22.3h-.9v-22.2c0-1.5 1.1-2.8 2.5-2.8"/><path d="m48.9 17c.2 0 .3 0 .4.1-1.4.2-2.5 1.6-2.5 3.2v16.1l-.9 1v-17.1c.1-1.8 1.4-3.3 3-3.3"/><path d="m54.4 18.8c.2 0 .3 0 .4 0-1.2.2-2.1 1.4-2.1 2.8v14.7l-.9 1v-15.6c.1-1.6 1.2-2.9 2.6-2.9"/><path d="m59.4 22.2c.2 0 .3 0 .4.1-1.1.2-1.9 1.3-1.9 2.6v11.5l-.9 1v-12.5c0-1.5 1.1-2.7 2.4-2.7"/></g><path d="m32.6 34.2c1.5-1.7 4.5-.9 6.6 3.5 1.5 3 1.9 2.4 2.7 2.6v-2.7c0 0 19.9-1.3 19.9 1.7 0 0 .9 7.4-1 12-2.9 6.9-17.7 8.7-22.3-3-.9-2.3-2.2-4.8-3.2-7.3-1.3-3-4.4-4.8-2.7-6.8" fill="#8a6859"/><g fill="#705041"><path d="m33.6 33.5c-3.2 2.4 2.7 7 5.5 14.1 4 10.2 15.7 10.2 20.6 5.5-4.5 5.3-17 6.3-21.2-4.8-2.8-7.2-9.6-12.7-4.9-14.8"/><path d="m41 40.2c3.9-1.4 12.1 1.3 11 9.1 0-7.3-6.5-9-10.1-9-.5 0-.9-.1-.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64c.svg
index 179d6aa..0f7f86c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#eba352" d="M43.636,62h11.761V49.12l-13.823,3.166C44.912,55.756,43.636,62,43.636,62z"/><path fill="#ffdd67" d="m44.749 62h13.155c0 0-.189-6.401 2.02-11.86l-16.46 2.367c1.826 4.894 1.283 9.493 1.283 9.493"/><g fill="#4aa9ff"><path d="m27.03 2l5 10 5-10z"/><path d="M44.854 3 44.18 14.16 53.51 8z"/><path d="M10.541 8 19.871 14.16 19.2 3z"/></g><g fill="#ffdd67"><path d="m45.969 44.43h-5v-22.26c0-1.489 1.119-2.731 2.495-2.731h.014c1.378 0 2.495 1.242 2.495 2.777v22.21"/><path d="m51.878 44.43h-5.909v-24.13c0-1.822 1.32-3.301 2.952-3.301 1.632 0 2.957 1.479 2.957 3.301v24.13"/><path d="m57.03 44.43h-5.152v-22.714c0-1.586 1.153-2.871 2.571-2.871h.01c1.42 0 2.571 1.285 2.571 2.871v22.714"/><path d="m59.38 22.248c1.323 0 2.349 1.195 2.349 2.667v19.515h-4.699v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><g fill="#eba352"><path d="m43.46 19.438h.014c.15 0 .296.02.438.048-1.167.231-2.057 1.356-2.057 2.684v22.26h-.891v-22.26c.001-1.489 1.12-2.732 2.496-2.732"/><path d="m48.921 17c.152 0 .3.025.446.052-1.419.24-2.51 1.597-2.51 3.249v24.13h-.889v-24.13c.001-1.822 1.321-3.301 2.953-3.301"/><path d="m54.45 18.845h.01c.15 0 .297.021.44.05-1.21.235-2.132 1.404-2.132 2.821v22.714h-.89v-22.714c.001-1.586 1.154-2.871 2.572-2.871"/><path d="m59.38 22.248c.153 0 .301.02.444.051-1.101.233-1.903 1.314-1.903 2.616v19.515h-.891v-19.515c0-1.472 1.026-2.667 2.35-2.667"/></g><path fill="#ffdd67" d="m32.581 34.25c1.499-1.739 4.522-.901 6.62 3.463 1.463 3.049 1.861 2.437 2.654 2.603v-2.732c0 0 4.831-3.807 14.445-2.069 0 0 5.476.813 5.476 3.818 0 0 .93 7.367-1 11.998-2.878 6.901-17.661 8.72-22.324-3.02-.928-2.332-2.154-4.778-3.188-7.288-1.247-3.02-4.323-4.86-2.68-6.769"/><g fill="#eba352"><path d="m33.583 33.542c-3.214 2.396 2.698 6.979 5.494 14.1 4 10.195 15.687 10.165 20.591 5.484-4.456 5.322-16.997 6.308-21.22-4.826-2.742-7.229-9.504-12.68-4.866-14.76"/><path d="m41.68 37.704c4.109-2.8 14.815-2.911 19.334 0-4.02-5.01-16.638-3.877-19.334 0"/><path d="m45.17 41.35c1.039.062 2.058.363 3.02.795.965.424 1.871 1.014 2.678 1.734.797.729 1.491 1.602 1.965 2.595.481.987.744 2.079.732 3.159-.375-1.01-.811-1.935-1.366-2.772-.56-.834-1.21-1.591-1.951-2.249-1.473-1.339-3.215-2.353-5.078-3.262"/><path d="M20.364,62H8.604V49.12l13.823,3.166C19.088,55.756,20.364,62,20.364,62z"/></g><g fill="#ffdd67"><path d="M19.251,62H6.095c0,0,0.189-6.401-2.022-11.86l16.46,2.367C18.708,57.401,19.251,62,19.251,62z"/><path d="m18.03 44.43h5v-22.26c0-1.489-1.119-2.731-2.495-2.731h-.014c-1.378 0-2.495 1.242-2.495 2.777v22.21"/><path d="m12.12 44.43h5.909v-24.13c0-1.822-1.32-3.301-2.952-3.301-1.632 0-2.957 1.479-2.957 3.301v24.13"/><path d="m6.97 44.43h5.152v-22.714c0-1.586-1.153-2.871-2.572-2.871h-.008c-1.42 0-2.572 1.285-2.572 2.871v22.714"/><path d="m4.62 22.248c-1.323 0-2.349 1.195-2.349 2.667v19.515h4.699v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><g fill="#eba352"><path d="m20.54 19.438h-.014c-.15 0-.296.02-.438.048 1.167.231 2.057 1.356 2.057 2.684v22.26h.891v-22.26c-.001-1.489-1.12-2.732-2.496-2.732"/><path d="m15.08 17c-.152 0-.3.025-.446.052 1.418.24 2.509 1.597 2.509 3.249v24.13h.889v-24.13c0-1.822-1.32-3.301-2.952-3.301"/><path d="m9.55 18.845h-.008c-.151 0-.297.021-.441.05 1.209.235 2.132 1.404 2.132 2.821v22.714h.89v-22.714c-.001-1.586-1.154-2.871-2.573-2.871"/><path d="m4.62 22.248c-.154 0-.301.02-.444.051 1.101.233 1.903 1.314 1.903 2.616v19.515h.891v-19.515c0-1.472-1.026-2.667-2.35-2.667"/></g><path fill="#ffdd67" d="m31.419 34.25c-1.499-1.739-4.522-.901-6.62 3.463-1.463 3.049-1.861 2.437-2.654 2.603v-2.732c0 0-4.831-3.807-14.446-2.069 0 0-5.475.813-5.475 3.818 0 0-.93 7.367 1 11.998 2.878 6.901 17.662 8.72 22.325-3.02.928-2.332 2.154-4.778 3.188-7.288 1.247-3.02 4.324-4.86 2.68-6.769"/><g fill="#eba352"><path d="m30.417 33.542c3.214 2.396-2.698 6.979-5.494 14.1-4 10.195-15.687 10.165-20.591 5.484 4.456 5.322 16.997 6.308 21.22-4.826 2.742-7.229 9.504-12.68 4.866-14.76"/><path d="m22.32 37.704c-4.109-2.8-14.815-2.911-19.334 0 4.02-5.01 16.638-3.877 19.334 0"/><path d="m18.83 41.35c-1.039.062-2.058.363-3.02.795-.964.424-1.871 1.014-2.678 1.734-.797.729-1.491 1.602-1.965 2.595-.481.987-.744 2.079-.731 3.159.374-1.01.81-1.935 1.366-2.772.56-.834 1.209-1.591 1.951-2.249 1.472-1.339 3.214-2.353 5.077-3.262"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4aa9ff"><path d="m27 2l5 10 5-10z"/><path d="m44.9 3l-.7 11.2 9.3-6.2z"/><path d="m10.5 8l9.4 6.2-.7-11.2z"/></g><path d="m20.4 62h-11.8v-12.9l13.8 3.2c-3.3 3.5-2 9.7-2 9.7" fill="#eba352"/><g fill="#ffdd67"><path d="m19.3 62h-13.2c0 0 .2-6.4-2-11.9l16.5 2.4c-1.9 4.9-1.3 9.5-1.3 9.5"/><path d="m18 44.4h5v-22.2c0-1.5-1.1-2.7-2.5-2.7-1.4 0-2.5 1.2-2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m12.1 44.4h5.9v-24.1c0-1.8-1.3-3.3-3-3.3-1.6 0-3 1.5-3 3.3v24.1z"/><path d="m7 44.4h5.2v-22.7c0-1.6-1.2-2.9-2.6-2.9-1.4 0-2.6 1.3-2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m4.6 22.2c-1.3 0-2.3 1.2-2.3 2.7v19.5h4.7v-19.5c0-1.5-1.1-2.7-2.4-2.7"/></g><g fill="#eba352"><path d="m20.5 19.4c-.2 0-.3 0-.5 0 1.2.2 2.1 1.4 2.1 2.7v22.3h.9v-22.2c0-1.5-1.1-2.8-2.5-2.8"/><path d="m15.1 17c-.2 0-.3 0-.4.1 1.4.2 2.5 1.6 2.5 3.2v16.1l.9 1v-17.1c-.1-1.8-1.4-3.3-3-3.3"/><path d="m9.6 18.8c-.2 0-.3 0-.4 0 1.2.2 2.1 1.4 2.1 2.8v14.7l.9 1v-15.6c-.1-1.6-1.2-2.9-2.6-2.9"/><path d="m4.6 22.2c-.2 0-.3 0-.4.1 1.1.2 1.9 1.3 1.9 2.6v11.5l.9 1v-12.5c0-1.5-1.1-2.7-2.4-2.7"/></g><path d="m31.4 34.2c-1.5-1.7-4.5-.9-6.6 3.5-1.5 3-1.9 2.4-2.7 2.6v-2.7c0 0-19.9-1.3-19.9 1.7 0 0-.9 7.4 1 12 2.9 6.9 17.7 8.7 22.3-3 .9-2.3 2.2-4.8 3.2-7.3 1.3-3 4.4-4.8 2.7-6.8" fill="#ffdd67"/><g fill="#eba352"><path d="m30.4 33.5c3.2 2.4-2.7 7-5.5 14.1-4 10.2-15.7 10.2-20.6 5.5 4.5 5.3 17 6.3 21.2-4.8 2.8-7.2 9.6-12.7 4.9-14.8"/><path d="m23 40.2c-3.9-1.4-12.1 1.3-11 9.1 0-7.3 6.5-9 10.1-9 .5 0 .9-.1.9-.1"/><path d="m43.6 62h11.8v-12.9l-13.8 3.2c3.3 3.5 2 9.7 2 9.7"/></g><g fill="#ffdd67"><path d="m44.7 62h13.2c0 0-.2-6.4 2-11.9l-16.5 2.4c1.9 4.9 1.3 9.5 1.3 9.5"/><path d="m46 44.4h-5v-22.2c0-1.5 1.1-2.7 2.5-2.7 1.4 0 2.5 1.2 2.5 2.8 0-.1 0 22.1 0 22.1"/><path d="m51.9 44.4h-5.9v-24.1c0-1.8 1.3-3.3 3-3.3 1.6 0 3 1.5 3 3.3v24.1z"/><path d="m57 44.4h-5.2v-22.7c0-1.6 1.2-2.9 2.6-2.9 1.4 0 2.6 1.3 2.6 2.9 0 0 0 22.7 0 22.7"/><path d="m59.4 22.2c1.3 0 2.3 1.2 2.3 2.7v19.5h-4.7v-19.5c0-1.5 1.1-2.7 2.4-2.7"/></g><g fill="#eba352"><path d="m43.5 19.4c.2 0 .3 0 .5 0-1.2.2-2.1 1.4-2.1 2.7v22.3h-.9v-22.2c0-1.5 1.1-2.8 2.5-2.8"/><path d="m48.9 17c.2 0 .3 0 .4.1-1.4.2-2.5 1.6-2.5 3.2v16.1l-.9 1v-17.1c.1-1.8 1.4-3.3 3-3.3"/><path d="m54.4 18.8c.2 0 .3 0 .4 0-1.2.2-2.1 1.4-2.1 2.8v14.7l-.9 1v-15.6c.1-1.6 1.2-2.9 2.6-2.9"/><path d="m59.4 22.2c.2 0 .3 0 .4.1-1.1.2-1.9 1.3-1.9 2.6v11.5l-.9 1v-12.5c0-1.5 1.1-2.7 2.4-2.7"/></g><path d="m32.6 34.2c1.5-1.7 4.5-.9 6.6 3.5 1.5 3 1.9 2.4 2.7 2.6v-2.7c0 0 19.9-1.3 19.9 1.7 0 0 .9 7.4-1 12-2.9 6.9-17.7 8.7-22.3-3-.9-2.3-2.2-4.8-3.2-7.3-1.3-3-4.4-4.8-2.7-6.8" fill="#ffdd67"/><g fill="#eba352"><path d="m33.6 33.5c-3.2 2.4 2.7 7 5.5 14.1 4 10.2 15.7 10.2 20.6 5.5-4.5 5.3-17 6.3-21.2-4.8-2.8-7.2-9.6-12.7-4.9-14.8"/><path d="m41 40.2c3.9-1.4 12.1 1.3 11 9.1 0-7.3-6.5-9-10.1-9-.5 0-.9-.1-.9-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fb.svg
index ad5a150..7a858ef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.795v-37.08c0-17.68-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.958 49.05v-7.141h-19.91v7.141c-12.52.387-15.04 2.407-15.04 12.947h50c0-10.539-2.531-12.56-15.05-12.947"/><path fill="#ffe1bd" d="m15.813 32.891c0 0-3.26-.834-3.26-5.662 0-3.822 2.459-4.479 2.459-4.479 8.811 0 23.17-11.453 23.17-11.453s5.428 10.111 10.664 11.453c0 0 2.537.469 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.043 7.283-9.99 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#664e27" d="m26 42.963c-.111-.072-.172-.166-.172-.279-.002-.773 2.746-1.721 6.135-1.721s6.133.941 6.133 1.713c0 .105-.053.215-.145.287 0 0-2.65-.666-5.988-.666-3.332 0-5.963.666-5.963.666"/><g fill="#fff"><path d="m45.45 28.4c0 2.766-2.211 4.939-4.938 4.939-2.729 0-4.939-2.174-4.939-4.939 0-2.673 9.877-2.673 9.877 0"/><path d="m18.558 28.06c0 2.766 2.213 4.938 4.938 4.938 2.73 0 4.939-2.172 4.939-4.938 0-2.676-9.877-2.676-9.877 0"/></g><circle fill="#664e27" cx="23.496" cy="29.889" r="3.108"/><circle fill="#231f20" cx="23.497" cy="29.889" r="1"/><circle fill="#664e27" cx="40.511" cy="30.23" r="3.109"/><g fill="#231f20"><circle cx="40.51" cy="30.23" r="1"/><path d="m17.18 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/><path d="m34.2 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/></g><path fill="#e6b796" d="m36.05 37.39c0 1.588-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.148c0-.001 8.09-.69 8.09.101"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#594640"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.8 32.9c0 0-3.3-.8-3.3-5.7 0-3.8 2.5-4.5 2.5-4.5 8.8 0 23.2-11.5 23.2-11.5s5.4 10.1 10.7 11.5c0 0 2.5.5 2.5 4.5 0 4.8-3.4 5.7-3.4 5.7 0 7.3-10 16.1-16 16.1-6.1 0-16.2-8.8-16.2-16.1" fill="#ffe1bd"/><path d="m26 43c-.1-.1-.2-.2-.2-.3 0-.8 2.7-1.7 6.1-1.7s6.1.9 6.1 1.7c0 .1-.1.2-.1.3 0 0-2.7-.7-6-.7-3.3 0-5.9.7-5.9.7" fill="#664e27"/><g fill="#fff"><path d="m45.4 28.4c0 2.8-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 9.8-2.7 9.8 0"/><path d="m18.6 28.1c0 2.8 2.2 4.9 4.9 4.9 2.7 0 4.9-2.2 4.9-4.9 0-2.7-9.8-2.7-9.8 0"/></g><circle cx="23.5" cy="29.9" r="3.1" fill="#664e27"/><circle cx="23.5" cy="29.9" r="1" fill="#231f20"/><circle cx="40.5" cy="30.2" r="3.1" fill="#664e27"/><g fill="#231f20"><circle cx="40.5" cy="30.2" r="1"/><path d="m17.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/><path d="m34.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/></g><path d="m32 39c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fc.svg
index e25c596..10458b1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.793v-37.08c0-17.68-12.12-17.35-12.12-17.35s-.912-3.574-10.271-3.574"/><path fill="#b386e2" d="m41.957 49.05v-7.141h-19.909v7.141c-12.519.387-15.04 2.407-15.04 12.947h49.999c0-10.539-2.531-12.56-15.05-12.947"/><path fill="#fed0ac" d="m15.814 32.891c0 0-3.26-.834-3.26-5.662 0-3.822 2.459-4.479 2.459-4.479 8.811 0 23.17-11.453 23.17-11.453s5.428 10.111 10.664 11.453c0 0 2.537.469 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.043 7.283-9.99 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#664e27" d="m26 42.963c-.111-.072-.172-.166-.172-.279-.002-.773 2.746-1.721 6.134-1.721 3.388 0 6.132.941 6.132 1.713 0 .105-.053.215-.145.287 0 0-2.65-.666-5.988-.666-3.33 0-5.961.666-5.961.666"/><g fill="#fff"><path d="m45.45 28.4c0 2.766-2.211 4.939-4.938 4.939-2.729 0-4.939-2.174-4.939-4.939 0-2.673 9.877-2.673 9.877 0"/><path d="m18.558 28.06c0 2.766 2.213 4.938 4.938 4.938 2.73 0 4.939-2.172 4.939-4.938 0-2.676-9.877-2.676-9.877 0"/></g><circle fill="#664e27" cx="23.497" cy="29.889" r="3.108"/><circle fill="#231f20" cx="23.498" cy="29.889" r="1"/><circle fill="#664e27" cx="40.51" cy="30.23" r="3.109"/><g fill="#231f20"><circle cx="40.51" cy="30.23" r="1"/><path d="m17.18 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/><path d="m34.2 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/></g><path fill="#e0a372" d="m36.05 37.39c0 1.588-3.287 2.047-4.04 2.047s-4.04-.563-4.04-2.148c-.001-.001 8.09-.69 8.09.101"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#dbb471"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.8 32.9c0 0-3.3-.8-3.3-5.7 0-3.8 2.5-4.5 2.5-4.5 8.8 0 23.2-11.5 23.2-11.5s5.4 10.1 10.7 11.5c0 0 2.5.5 2.5 4.5 0 4.8-3.4 5.7-3.4 5.7 0 7.3-10 16.1-16 16.1-6.1 0-16.2-8.8-16.2-16.1" fill="#fed0ac"/><path d="m26 43c-.1-.1-.2-.2-.2-.3 0-.8 2.7-1.7 6.1-1.7s6.1.9 6.1 1.7c0 .1-.1.2-.1.3 0 0-2.7-.7-6-.7-3.3 0-5.9.7-5.9.7" fill="#664e27"/><g fill="#fff"><path d="m45.4 28.4c0 2.8-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 9.8-2.7 9.8 0"/><path d="m18.6 28.1c0 2.8 2.2 4.9 4.9 4.9 2.7 0 4.9-2.2 4.9-4.9 0-2.7-9.8-2.7-9.8 0"/></g><circle cx="23.5" cy="29.9" r="3.1" fill="#664e27"/><circle cx="23.5" cy="29.9" r="1" fill="#231f20"/><circle cx="40.5" cy="30.2" r="3.1" fill="#664e27"/><g fill="#231f20"><circle cx="40.5" cy="30.2" r="1"/><path d="m17.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/><path d="m34.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/></g><path d="m32 39c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#e0a372"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fd.svg
index 366f855..f9842d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.68-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.957 49.05v-7.141h-19.909v7.141c-12.52.387-15.04 2.407-15.04 12.947h49.999c0-10.539-2.531-12.56-15.05-12.947"/><path fill="#d6a57c" d="m15.813 32.891c0 0-3.26-.834-3.26-5.662 0-3.822 2.459-4.479 2.459-4.479 8.811 0 23.17-11.453 23.17-11.453s5.428 10.111 10.664 11.453c0 0 2.537.469 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.043 7.283-9.99 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#664e27" d="m26 42.963c-.111-.072-.172-.166-.172-.279-.002-.773 2.746-1.721 6.134-1.721 3.389 0 6.133.941 6.133 1.713 0 .105-.053.215-.145.287 0 0-2.65-.666-5.988-.666-3.331 0-5.962.666-5.962.666"/><g fill="#fff"><path d="m45.45 28.4c0 2.766-2.211 4.939-4.938 4.939-2.729 0-4.939-2.174-4.939-4.939 0-2.673 9.877-2.673 9.877 0"/><path d="m18.558 28.06c0 2.766 2.213 4.938 4.938 4.938 2.73 0 4.939-2.172 4.939-4.938 0-2.676-9.877-2.676-9.877 0"/></g><circle fill="#664e27" cx="23.496" cy="29.889" r="3.108"/><circle fill="#231f20" cx="23.497" cy="29.889" r="1"/><circle fill="#664e27" cx="40.51" cy="30.23" r="3.109"/><g fill="#231f20"><circle cx="40.509" cy="30.23" r="1"/><path d="m17.18 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/><path d="m34.2 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/></g><path fill="#b58360" d="m36.05 37.39c0 1.588-3.287 2.047-4.04 2.047s-4.04-.563-4.04-2.148c0-.001 8.09-.69 8.09.101"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#594640"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.8 32.9c0 0-3.3-.8-3.3-5.7 0-3.8 2.5-4.5 2.5-4.5 8.8 0 23.2-11.5 23.2-11.5s5.4 10.1 10.7 11.5c0 0 2.5.5 2.5 4.5 0 4.8-3.4 5.7-3.4 5.7 0 7.3-10 16.1-16 16.1-6.1 0-16.2-8.8-16.2-16.1" fill="#d6a57c"/><path d="m26 43c-.1-.1-.2-.2-.2-.3 0-.8 2.7-1.7 6.1-1.7 3.4 0 6.1.9 6.1 1.7 0 .1-.1.2-.1.3 0 0-2.7-.7-6-.7-3.3 0-5.9.7-5.9.7" fill="#664e27"/><g fill="#fff"><path d="m45.4 28.4c0 2.8-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 9.8-2.7 9.8 0"/><path d="m18.6 28.1c0 2.8 2.2 4.9 4.9 4.9 2.7 0 4.9-2.2 4.9-4.9 0-2.7-9.8-2.7-9.8 0"/></g><circle cx="23.5" cy="29.9" r="3.1" fill="#664e27"/><circle cx="23.5" cy="29.9" r="1" fill="#231f20"/><circle cx="40.5" cy="30.2" r="3.1" fill="#664e27"/><g fill="#231f20"><circle cx="40.5" cy="30.2" r="1"/><path d="m17.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/><path d="m34.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/></g><path d="m32 39c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#b58360"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fe.svg
index 8aa91cf..57de38b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.68-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.957 49.05v-7.141h-19.909v7.141c-12.52.387-15.04 2.407-15.04 12.947h49.999c0-10.539-2.531-12.56-15.05-12.947"/><path fill="#b47d56" d="m15.813 32.891c0 0-3.26-.834-3.26-5.662 0-3.822 2.459-4.479 2.459-4.479 8.811 0 23.17-11.453 23.17-11.453s5.428 10.111 10.664 11.453c0 0 2.537.469 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.043 7.283-9.99 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#574137" d="m26 42.963c-.111-.072-.172-.166-.172-.279-.002-.773 2.746-1.721 6.134-1.721 3.389 0 6.133.941 6.133 1.713 0 .105-.053.215-.145.287 0 0-2.65-.666-5.988-.666-3.331 0-5.962.666-5.962.666"/><g fill="#fff"><path d="m45.45 28.4c0 2.766-2.211 4.939-4.938 4.939-2.729 0-4.939-2.174-4.939-4.939 0-2.673 9.877-2.673 9.877 0"/><path d="m18.558 28.06c0 2.766 2.213 4.938 4.938 4.938 2.73 0 4.939-2.172 4.939-4.938 0-2.676-9.877-2.676-9.877 0"/></g><circle fill="#664e27" cx="23.496" cy="29.889" r="3.108"/><circle fill="#231f20" cx="23.497" cy="29.889" r="1"/><circle fill="#664e27" cx="40.51" cy="30.23" r="3.109"/><g fill="#231f20"><circle cx="40.509" cy="30.23" r="1"/><path d="m17.18 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/><path d="m34.2 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/></g><path fill="#935e3e" d="m36.05 37.39c0 1.588-3.287 2.047-4.04 2.047s-4.04-.563-4.04-2.148c0-.001 8.09-.69 8.09.101"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#231f20"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.8 32.9c0 0-3.3-.8-3.3-5.7 0-3.8 2.5-4.5 2.5-4.5 8.8 0 23.2-11.5 23.2-11.5s5.4 10.1 10.7 11.5c0 0 2.5.5 2.5 4.5 0 4.8-3.4 5.7-3.4 5.7 0 7.3-10 16.1-16 16.1-6.1 0-16.2-8.8-16.2-16.1" fill="#b47d56"/><path d="m26 43c-.1-.1-.2-.2-.2-.3 0-.8 2.7-1.7 6.1-1.7s6.1.9 6.1 1.7c0 .1-.1.2-.1.3 0 0-2.7-.7-6-.7-3.3 0-5.9.7-5.9.7" fill="#664e27"/><g fill="#fff"><path d="m45.4 28.4c0 2.8-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 9.8-2.7 9.8 0"/><path d="m18.6 28.1c0 2.8 2.2 4.9 4.9 4.9 2.7 0 4.9-2.2 4.9-4.9 0-2.7-9.8-2.7-9.8 0"/></g><circle cx="23.5" cy="29.9" r="3.1" fill="#664e27"/><circle cx="23.5" cy="29.9" r="1" fill="#231f20"/><circle cx="40.5" cy="30.2" r="3.1" fill="#664e27"/><g fill="#231f20"><circle cx="40.5" cy="30.2" r="1"/><path d="m17.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/><path d="m34.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/></g><path d="m32 39c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3ff.svg
index aef53ff..64af62a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64d-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.68-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.957 49.05v-7.141h-19.909v7.141c-12.52.387-15.04 2.407-15.04 12.947h49.999c0-10.539-2.531-12.56-15.05-12.947"/><path fill="#8a6859" d="m15.813 32.891c0 0-3.26-.834-3.26-5.662 0-3.822 2.459-4.479 2.459-4.479 8.811 0 23.17-11.453 23.17-11.453s5.428 10.111 10.664 11.453c0 0 2.537.469 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.043 7.283-9.99 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#47352d" d="m26 42.963c-.111-.072-.172-.166-.172-.279-.002-.773 2.746-1.721 6.134-1.721 3.389 0 6.133.941 6.133 1.713 0 .105-.053.215-.145.287 0 0-2.65-.666-5.988-.666-3.331 0-5.962.666-5.962.666"/><g fill="#fff"><path d="m45.45 28.4c0 2.766-2.211 4.939-4.938 4.939-2.729 0-4.939-2.174-4.939-4.939 0-2.673 9.877-2.673 9.877 0"/><path d="m18.558 28.06c0 2.766 2.213 4.938 4.938 4.938 2.73 0 4.939-2.172 4.939-4.938 0-2.676-9.877-2.676-9.877 0"/></g><circle fill="#664e27" cx="23.496" cy="29.889" r="3.108"/><circle fill="#231f20" cx="23.497" cy="29.889" r="1"/><circle fill="#664e27" cx="40.51" cy="30.23" r="3.109"/><g fill="#231f20"><circle cx="40.509" cy="30.23" r="1"/><path d="m17.18 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/><path d="m34.2 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/></g><path fill="#705041" d="m36.05 37.39c0 1.588-3.287 2.047-4.04 2.047s-4.04-.563-4.04-2.148c0-.001 8.09-.69 8.09.101"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#231f20"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.8 32.9c0 0-3.3-.8-3.3-5.7 0-3.8 2.5-4.5 2.5-4.5 8.8 0 23.2-11.5 23.2-11.5s5.4 10.1 10.7 11.5c0 0 2.5.5 2.5 4.5 0 4.8-3.4 5.7-3.4 5.7 0 7.3-10 16.1-16 16.1-6.1 0-16.2-8.8-16.2-16.1" fill="#8a6859"/><path d="m26 43c-.1-.1-.2-.2-.2-.3 0-.8 2.7-1.7 6.1-1.7s6.1.9 6.1 1.7c0 .1-.1.2-.1.3 0 0-2.7-.7-6-.7-3.3 0-5.9.7-5.9.7" fill="#574137"/><g fill="#fff"><path d="m45.4 28.4c0 2.8-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 9.8-2.7 9.8 0"/><path d="m18.6 28.1c0 2.8 2.2 4.9 4.9 4.9 2.7 0 4.9-2.2 4.9-4.9 0-2.7-9.8-2.7-9.8 0"/></g><circle cx="23.5" cy="29.9" r="3.1" fill="#664e27"/><circle cx="23.5" cy="29.9" r="1" fill="#231f20"/><circle cx="40.5" cy="30.2" r="3.1" fill="#664e27"/><g fill="#231f20"><circle cx="40.5" cy="30.2" r="1"/><path d="m17.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/><path d="m34.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/></g><path d="m32 39c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#705041"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64d.svg
index d4fe6db..6309a63 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.794v-37.08c0-17.68-12.12-17.35-12.12-17.35s-.912-3.574-10.271-3.574"/><path fill="#b386e2" d="m41.959 49.05v-7.141h-19.91v7.141c-12.52.387-15.05 2.407-15.05 12.947h50c0-10.539-2.533-12.56-15.04-12.947"/><path fill="#ffdd67" d="m15.814 32.891c0 0-3.26-.834-3.26-5.662 0-3.822 2.459-4.479 2.459-4.479 8.811 0 23.17-11.453 23.17-11.453s5.428 10.111 10.664 11.453c0 0 2.537.469 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.043 7.283-9.99 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#664e27" d="m26.01 42.963c-.111-.072-.172-.166-.172-.279-.002-.773 2.746-1.721 6.135-1.721s6.133.941 6.133 1.713c0 .105-.053.215-.145.287 0 0-2.65-.666-5.988-.666-3.332 0-5.963.666-5.963.666"/><g fill="#fff"><path d="m45.45 28.4c0 2.766-2.211 4.939-4.938 4.939-2.729 0-4.939-2.174-4.939-4.939 0-2.673 9.877-2.673 9.877 0"/><path d="m18.559 28.06c0 2.766 2.213 4.938 4.938 4.938 2.73 0 4.939-2.172 4.939-4.938 0-2.676-9.877-2.676-9.877 0"/></g><circle fill="#664e27" cx="23.497" cy="29.889" r="3.108"/><circle fill="#231f20" cx="23.498" cy="29.889" r="1"/><circle fill="#664e27" cx="40.512" cy="30.23" r="3.109"/><g fill="#231f20"><circle cx="40.51" cy="30.23" r="1"/><path d="m17.19 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/><path d="m34.2 28.17c-.117-.078-.182-.176-.182-.295-.002-.818 2.906-1.822 6.492-1.822 3.588 0 6.494.998 6.494 1.814 0 .111-.057.225-.154.303 0 0-2.805-.705-6.34-.705-3.525 0-6.31.705-6.31.705"/></g><path fill="#eba352" d="m36.05 37.39c0 1.588-3.287 2.047-4.04 2.047s-4.045-.563-4.045-2.148c0-.001 8.09-.69 8.09.101"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#ffb300"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.8 32.9c0 0-3.3-.8-3.3-5.7 0-3.8 2.5-4.5 2.5-4.5 8.8 0 23.2-11.5 23.2-11.5s5.4 10.1 10.7 11.5c0 0 2.5.5 2.5 4.5 0 4.8-3.4 5.7-3.4 5.7 0 7.3-10 16.1-16 16.1-6.1 0-16.2-8.8-16.2-16.1" fill="#ffdd67"/><path d="m26 43c-.1-.1-.2-.2-.2-.3 0-.8 2.7-1.7 6.1-1.7s6.1.9 6.1 1.7c0 .1-.1.2-.1.3 0 0-2.7-.7-6-.7-3.3 0-5.9.7-5.9.7" fill="#937237"/><g fill="#fff"><path d="m45.4 28.4c0 2.8-2.2 4.9-4.9 4.9-2.7 0-4.9-2.2-4.9-4.9 0-2.7 9.8-2.7 9.8 0"/><path d="m18.6 28.1c0 2.8 2.2 4.9 4.9 4.9 2.7 0 4.9-2.2 4.9-4.9 0-2.7-9.8-2.7-9.8 0"/></g><circle cx="23.5" cy="29.9" r="3.1" fill="#664e27"/><circle cx="23.5" cy="29.9" r="1" fill="#231f20"/><circle cx="40.5" cy="30.2" r="3.1" fill="#664e27"/><g fill="#231f20"><circle cx="40.5" cy="30.2" r="1"/><path d="m17.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/><path d="m34.2 28.2c-.1-.1-.2-.2-.2-.3 0-.8 2.9-1.8 6.5-1.8 3.6 0 6.5 1 6.5 1.8 0 .1-.1.2-.2.3 0 0-2.8-.7-6.3-.7-3.5 0-6.3.7-6.3.7"/></g><path d="m32 39c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fb.svg
index 689392a..8d869fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.794v-37.08c0-17.678-12.12-17.35-12.12-17.35s-.912-3.574-10.271-3.574"/><path fill="#b386e2" d="m41.956 49.05v-7.139h-19.91v7.139c-12.517.387-15.04 2.408-15.04 12.947h50c0-10.537-2.533-12.559-15.05-12.947"/><path fill="#ffe1bd" d="m15.814 32.893c0 0-3.262-.834-3.262-5.662 0-3.824 2.459-4.479 2.459-4.479 8.811 0 23.17-11.455 23.17-11.455s5.428 10.113 10.664 11.455c0 0 2.537.467 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.281-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#f5f5f5" d="m26.458 29.875c.951 0 .824-2.459.824-2.459-2.92-6.521-9.42-2.393-9.42-2.393-2.527 1.127 1.133 4.693 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="22.651" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="22.65" cy="26.889" r="1"/><path d="m28.1 28.357c-.795-.971-1.582-1.904-2.496-2.613-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.127-3.471.355-.602.117-1.223.232-1.871.268-.627.027-1.385-.047-1.832-.529.592.234 1.174.111 1.738-.059.568-.164 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.652.676.066 1.354.238 1.969.539.607.313 1.16.713 1.611 1.195.913.954 1.509 2.108 1.862 3.313"/></g><path fill="#f5f5f5" d="m37.476 29.875c-.953 0-.826-2.459-.826-2.459 2.92-6.521 9.422-2.393 9.422-2.393 2.527 1.127-1.133 4.693-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.889" r="1"/><path d="m35.835 28.357c.354-1.205.947-2.359 1.861-3.313.451-.482 1-.883 1.609-1.195.615-.301 1.295-.473 1.969-.539 1.363-.102 2.65.238 3.814.65.59.199 1.154.432 1.723.596.563.17 1.146.293 1.738.059-.449.482-1.205.557-1.834.529-.648-.035-1.27-.15-1.873-.268-1.199-.229-2.361-.463-3.467-.355-1.105.068-2.133.516-3.045 1.223-.913.711-1.7 1.645-2.495 2.613"/></g><circle fill="#89664c" cx="32" cy="41.498" r="3.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#594640"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#ffe1bd"/><path d="m32 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#e6b796"/><path d="m36.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m35.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m28.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.4" r="1.2" fill="#2b2925"/><circle cx="32" cy="43.5" r="3" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fc.svg
index 77f754d..2dfd81c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dbb471" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.678-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.956 49.05v-7.139h-19.909v7.139c-12.518.387-15.04 2.408-15.04 12.947h49.999c0-10.537-2.533-12.559-15.05-12.947"/><path fill="#fed0ac" d="m15.814 32.893c0 0-3.262-.834-3.262-5.662 0-3.824 2.459-4.479 2.459-4.479 8.811 0 23.17-11.455 23.17-11.455s5.428 10.113 10.664 11.455c0 0 2.537.467 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.281-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#f5f5f5" d="m26.459 29.875c.951 0 .824-2.459.824-2.459-2.92-6.521-9.42-2.393-9.42-2.393-2.527 1.127 1.133 4.693 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="22.651" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="22.65" cy="26.889" r="1"/><path d="m28.1 28.357c-.795-.971-1.582-1.904-2.496-2.613-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.127-3.471.355-.602.117-1.223.232-1.871.268-.627.027-1.385-.047-1.832-.529.592.234 1.174.111 1.738-.059.568-.164 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.652.676.066 1.354.238 1.969.539.607.313 1.16.713 1.611 1.195.912.954 1.508 2.108 1.862 3.313"/></g><path fill="#f5f5f5" d="m37.476 29.875c-.953 0-.826-2.459-.826-2.459 2.92-6.521 9.422-2.393 9.422-2.393 2.527 1.127-1.133 4.693-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.889" r="1"/><path d="m35.835 28.357c.354-1.205.947-2.359 1.861-3.313.451-.482 1-.883 1.609-1.195.615-.301 1.295-.473 1.969-.539 1.363-.102 2.65.238 3.814.65.59.199 1.154.432 1.723.596.563.17 1.146.293 1.738.059-.449.482-1.205.557-1.834.529-.648-.035-1.27-.15-1.873-.268-1.199-.229-2.361-.463-3.467-.355-1.105.068-2.133.516-3.045 1.223-.913.711-1.7 1.645-2.495 2.613"/></g><circle fill="#89664c" cx="32" cy="41.498" r="3.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#dbb471"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#fed0ac"/><path d="m32 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#e0a372"/><path d="m36.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m35.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><path d="m19.3 27.4c0 1.9 1.5 3.5 3.5 3.5 1.9 0 3.5-1.5 3.5-3.5s-1.7-3.4-3.6-3.4c-1.9 0-3.4 1.5-3.4 3.4" fill="#664e27"/><path d="m28.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.4" r="1.2" fill="#2b2925"/><circle cx="32" cy="43.5" r="3" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fd.svg
index ab82841..7cf16e6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.678-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.956 49.05v-7.139h-19.909v7.139c-12.518.387-15.04 2.408-15.04 12.947h49.999c0-10.537-2.533-12.559-15.05-12.947"/><path fill="#d6a57c" d="m15.814 32.893c0 0-3.262-.834-3.262-5.662 0-3.824 2.459-4.479 2.459-4.479 8.811 0 23.17-11.455 23.17-11.455s5.428 10.113 10.664 11.455c0 0 2.537.467 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.281-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#f5f5f5" d="m26.459 29.875c.951 0 .824-2.459.824-2.459-2.92-6.521-9.42-2.393-9.42-2.393-2.527 1.127 1.133 4.693 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="22.651" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="22.65" cy="26.889" r="1"/><path d="m28.1 28.357c-.795-.971-1.582-1.904-2.496-2.613-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.127-3.471.355-.602.117-1.223.232-1.871.268-.627.027-1.385-.047-1.832-.529.592.234 1.174.111 1.738-.059.568-.164 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.652.676.066 1.354.238 1.969.539.607.313 1.16.713 1.611 1.195.912.954 1.508 2.108 1.862 3.313"/></g><path fill="#f5f5f5" d="m37.476 29.875c-.953 0-.826-2.459-.826-2.459 2.92-6.521 9.422-2.393 9.422-2.393 2.527 1.127-1.133 4.693-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.889" r="1"/><path d="m35.835 28.357c.354-1.205.947-2.359 1.861-3.313.451-.482 1-.883 1.609-1.195.615-.301 1.295-.473 1.969-.539 1.363-.102 2.65.238 3.814.65.59.199 1.154.432 1.723.596.563.17 1.146.293 1.738.059-.449.482-1.205.557-1.834.529-.648-.035-1.27-.15-1.873-.268-1.199-.229-2.361-.463-3.467-.355-1.105.068-2.133.516-3.045 1.223-.913.711-1.7 1.645-2.495 2.613"/></g><circle fill="#89664c" cx="32" cy="41.498" r="3.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#594640"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#d6a57c"/><path d="m32 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#b58360"/><path d="m36.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><path d="m44.7 27.4c0 1.9-1.5 3.5-3.5 3.5-1.9 0-3.5-1.5-3.5-3.5s1.6-3.5 3.5-3.5c1.9.1 3.5 1.6 3.5 3.5" fill="#664e27"/><circle cx="41.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m35.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m28.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.4" r="1.2" fill="#2b2925"/><circle cx="32" cy="43.5" r="3" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fe.svg
index 70d867d..84d91ba 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.678-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.956 49.05v-7.139h-19.909v7.139c-12.518.387-15.04 2.408-15.04 12.947h49.999c0-10.537-2.533-12.559-15.05-12.947"/><path fill="#b47d56" d="m15.814 32.893c0 0-3.262-.834-3.262-5.662 0-3.824 2.459-4.479 2.459-4.479 8.811 0 23.17-11.455 23.17-11.455s5.428 10.113 10.664 11.455c0 0 2.537.467 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.281-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#f5f5f5" d="m26.459 29.875c.951 0 .824-2.459.824-2.459-2.92-6.521-9.42-2.393-9.42-2.393-2.527 1.127 1.133 4.693 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="22.651" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="22.65" cy="26.889" r="1"/><path d="m28.1 28.357c-.795-.971-1.582-1.904-2.496-2.613-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.127-3.471.355-.602.117-1.223.232-1.871.268-.627.027-1.385-.047-1.832-.529.592.234 1.174.111 1.738-.059.568-.164 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.652.676.066 1.354.238 1.969.539.607.313 1.16.713 1.611 1.195.912.954 1.508 2.108 1.862 3.313"/></g><path fill="#f5f5f5" d="m37.476 29.875c-.953 0-.826-2.459-.826-2.459 2.92-6.521 9.422-2.393 9.422-2.393 2.527 1.127-1.133 4.693-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.889" r="1"/><path d="m35.835 28.357c.354-1.205.947-2.359 1.861-3.313.451-.482 1-.883 1.609-1.195.615-.301 1.295-.473 1.969-.539 1.363-.102 2.65.238 3.814.65.59.199 1.154.432 1.723.596.563.17 1.146.293 1.738.059-.449.482-1.205.557-1.834.529-.648-.035-1.27-.15-1.873-.268-1.199-.229-2.361-.463-3.467-.355-1.105.068-2.133.516-3.045 1.223-.913.711-1.7 1.645-2.495 2.613"/></g><circle fill="#574137" cx="32" cy="41.498" r="3.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#231f20"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#b47d56"/><path d="m32 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#935e3e"/><path d="m36.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m35.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m28.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.4" r="1.2" fill="#2b2925"/><circle cx="32" cy="43.5" r="3" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3ff.svg
index 1845f2e..00882dd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64e-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-14.487 0-22.397 9.03-22.397 20.924v37.08h44.794v-37.08c0-17.678-12.12-17.35-12.12-17.35s-.913-3.574-10.272-3.574"/><path fill="#b386e2" d="m41.956 49.05v-7.139h-19.909v7.139c-12.518.387-15.04 2.408-15.04 12.947h49.999c0-10.537-2.533-12.559-15.05-12.947"/><path fill="#8a6859" d="m15.814 32.893c0 0-3.262-.834-3.262-5.662 0-3.824 2.459-4.479 2.459-4.479 8.811 0 23.17-11.455 23.17-11.455s5.428 10.113 10.664 11.455c0 0 2.537.467 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.281-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#f5f5f5" d="m26.459 29.875c.951 0 .824-2.459.824-2.459-2.92-6.521-9.42-2.393-9.42-2.393-2.527 1.127 1.133 4.693 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="22.651" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="22.65" cy="26.889" r="1"/><path d="m28.1 28.357c-.795-.971-1.582-1.904-2.496-2.613-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.127-3.471.355-.602.117-1.223.232-1.871.268-.627.027-1.385-.047-1.832-.529.592.234 1.174.111 1.738-.059.568-.164 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.652.676.066 1.354.238 1.969.539.607.313 1.16.713 1.611 1.195.912.954 1.508 2.108 1.862 3.313"/></g><path fill="#f5f5f5" d="m37.476 29.875c-.953 0-.826-2.459-.826-2.459 2.92-6.521 9.422-2.393 9.422-2.393 2.527 1.127-1.133 4.693-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.889" r="1"/><path d="m35.835 28.357c.354-1.205.947-2.359 1.861-3.313.451-.482 1-.883 1.609-1.195.615-.301 1.295-.473 1.969-.539 1.363-.102 2.65.238 3.814.65.59.199 1.154.432 1.723.596.563.17 1.146.293 1.738.059-.449.482-1.205.557-1.834.529-.648-.035-1.27-.15-1.873-.268-1.199-.229-2.361-.463-3.467-.355-1.105.068-2.133.516-3.045 1.223-.913.711-1.7 1.645-2.495 2.613"/></g><circle fill="#47352d" cx="32" cy="41.498" r="3.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#231f20"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4s-16.5-9-16.5-16.4" fill="#8a6859"/><path d="m32 37.8c-3.2 0-4.8-2.3-3.2-2.3s4.8 0 6.4 0c1.6 0 0 2.3-3.2 2.3" fill="#705041"/><path d="m36.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m35.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m28.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.4" r="1.2" fill="#2b2925"/><circle cx="32" cy="43.5" r="3" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64e.svg
index 12e30e7..b23b544 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#231f20" d="m32 1.998c-14.488 0-22.398 9.03-22.398 20.924v37.08h44.794v-37.08c0-17.678-12.12-17.35-12.12-17.35s-.912-3.574-10.271-3.574"/><path fill="#b386e2" d="m41.956 49.05v-7.139h-19.91v7.139c-12.517.387-15.04 2.408-15.04 12.947h50c0-10.537-2.534-12.559-15.05-12.947"/><path fill="#ffdd67" d="m15.814 32.893c0 0-3.262-.834-3.262-5.662 0-3.824 2.459-4.479 2.459-4.479 8.811 0 23.17-11.455 23.17-11.455s5.428 10.113 10.664 11.455c0 0 2.537.467 2.537 4.479 0 4.828-3.385 5.662-3.385 5.662-.045 7.281-9.992 16.07-16.03 16.07-6.04 0-16.15-8.785-16.15-16.07"/><path fill="#f5f5f5" d="m26.458 29.875c.951 0 .824-2.459.824-2.459-2.92-6.521-9.42-2.393-9.42-2.393-2.527 1.127 1.133 4.693 1.719 4.852 2.754.746 6.877 0 6.877 0"/><circle fill="#664e27" cx="22.651" cy="26.889" r="3.108"/><g fill="#231f20"><circle cx="22.65" cy="26.889" r="1"/><path d="m28.1 28.357c-.795-.971-1.582-1.904-2.496-2.613-.912-.707-1.938-1.154-3.045-1.223-1.107-.107-2.268.127-3.471.355-.602.117-1.223.232-1.871.268-.627.027-1.385-.047-1.832-.529.592.234 1.174.111 1.738-.059.568-.164 1.131-.396 1.721-.594 1.164-.414 2.451-.754 3.814-.652.676.066 1.354.238 1.969.539.607.313 1.16.713 1.611 1.195.913.954 1.509 2.108 1.862 3.313"/></g><path fill="#f5f5f5" d="m37.476 29.875c-.953 0-.826-2.459-.826-2.459 2.92-6.521 9.422-2.393 9.422-2.393 2.527 1.127-1.133 4.693-1.721 4.852-2.75.746-6.875 0-6.875 0"/><circle fill="#664e27" cx="41.28" cy="26.889" r="3.109"/><g fill="#231f20"><circle cx="41.28" cy="26.889" r="1"/><path d="m35.835 28.357c.354-1.205.947-2.359 1.861-3.313.451-.482 1-.883 1.609-1.195.615-.301 1.295-.473 1.969-.539 1.363-.102 2.65.238 3.814.65.59.199 1.154.432 1.723.596.563.17 1.146.293 1.738.059-.449.482-1.205.557-1.834.529-.648-.035-1.27-.15-1.873-.268-1.199-.229-2.361-.463-3.467-.355-1.105.068-2.133.516-3.045 1.223-.913.711-1.7 1.645-2.495 2.613"/></g><circle fill="#89664c" cx="32" cy="41.498" r="3.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C17.5,2,9.6,11,9.6,22.9V60h44.8V22.9c0-17.7-12.1-17.4-12.1-17.4S41.4,2,32,2z" fill="#ffb300"/><path d="m42 49.1v-7.1h-20v7.1c-12.5.3-15 2.4-15 12.9h50c0-10.5-2.5-12.6-15-12.9" fill="#b386e2"/><path d="m15.3 33c0 0-3.4-.9-3.4-5.8 0-3.9 2.5-4.6 2.5-4.6 9.1 0 25.9-11.7 25.9-11.7s3.5 10.3 8.9 11.7c0 0 2.6.5 2.6 4.6 0 4.9-3.5 5.8-3.5 5.8 0 7.4-10.3 16.4-16.5 16.4-6.1 0-16.5-9-16.5-16.4" fill="#ffdd67"/><path d="m32 37.8c-3.2 0-4.8-2.3-3.2-2.3 1.6 0 4.8 0 6.4 0 1.6 0 0 2.3-3.2 2.3" fill="#eba352"/><path d="m36.8 31c-1.1 0-1-1.4-1-1.4 1.7-8.8 11.5-4.1 11.5-4.1.8 1.5-1.8 5.3-2.5 5.5-3.2.8-8 0-8 0" fill="#f5f5f5"/><circle cx="41.2" cy="27.4" r="3.5" fill="#664e27"/><circle cx="41.2" cy="27.4" r="1.2" fill="#2b2925"/><path d="m35.8 29.6c1.7-10.5 10.4-3.5 13.8-5-3.4 3.3-10.3-3.8-13.8 5" fill="#3b3226"/><path d="m27.1 31c1.1 0 1-1.4 1-1.4-1.7-8.8-11.5-4.1-11.5-4.1-.8 1.5 1.8 5.3 2.5 5.5 3.2.8 8 0 8 0" fill="#f5f5f5"/><circle cx="22.7" cy="27.4" r="3.5" fill="#664e27"/><path d="m28.1 29.6c-1.7-10.5-10.4-3.5-13.8-5 3.4 3.3 10.4-3.8 13.8 5" fill="#3b3226"/><circle cx="22.7" cy="27.4" r="1.2" fill="#2b2925"/><circle cx="32" cy="43.5" r="3" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fb.svg
index c36d2c8..eddfe82 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2d2ac" d="m21.386 29.01c-3.843 14.679-5.539 27.738 2.79 27.738 8.753 0 7.947-13.04 7.947-27.957s.394-26.788-4.166-26.788c-4.897 0-2.821 12.686-6.571 27.01"/><path fill="#e6b796" d="m21.512 47.31c9.608 0 9.856-4.724 9.856-19.64 0-11.631.291-21.392-1.92-25.12 3.258 2.476 2.849 13.168 2.849 26.21 0 14.915 3.486 27.989-6.122 27.989-2.102 0-6.175-9.438-4.663-9.438"/><path fill="#f2d2ac" d="m36.04 2c-4.561 0-4.166 11.873-4.166 26.788s-.807 27.957 7.947 27.957c8.328 0 6.632-13.06 2.789-27.738-3.75-14.321-1.674-27.01-6.57-27.01"/><path fill="#e6b796" d="m37.825 56.745c-9.608 0-6.122-13.07-6.122-27.989 0-13.05-.409-23.738 2.849-26.21-2.211 3.733-1.92 13.494-1.92 25.13 0 14.916.248 19.64 9.855 19.64 1.513 0-2.56 9.438-4.662 9.438"/><path fill="#f2d2ac" d="m13.11 47.73l7.579 13.225 8.61-4.458-10.344-16.508c0 0-2.564 6.454-5.845 7.741"/><path fill="#ffe1bd" d="m20.92 38.19c-1 1.646-1.406 8.865-6.089 10.833l5.471 11.158c0 0 6.06-1.505 8.489-2.994 6.695-4.105-.936-9.04 2.977-18.11 2.186-5.072-1.816-17.11-6.6-17.11-4.793 0-2.563 6.89-3.03 8.682-.569 2.195-.344 4.837-1.221 7.543"/><path fill="#e6b796" d="m28.526 56.37c6.695-4.105-1.602-8.966 2.311-18.04 1.744-4.046-.453-12.521-3.841-15.786 3.897 2.461 6.9 11.933 4.867 16.547-3.982 9.04 4.5 13.764-2.405 18.02-.513.316-4.283 1.966-8.731 3.915l-.664-1.332c4.817-1.353 8.07-3.083 8.463-3.325"/><path fill="#f2d2ac" d="m45.05 39.989l-10.344 16.508 8.609 4.458 7.58-13.225c-3.281-1.287-5.845-7.741-5.845-7.741"/><path fill="#ffe1bd" d="m41.86 30.644c-.463-1.792 1.766-8.682-3.03-8.682-4.783 0-8.785 12.04-6.6 17.11 3.912 9.07-3.719 14.01 2.977 18.11 2.427 1.489 8.488 2.994 8.488 2.994l5.471-11.158c-4.683-1.968-5.088-9.187-6.089-10.833-.878-2.705-.651-5.347-1.22-7.543"/><path fill="#e6b796" d="m43.938 59.698l-.664 1.332c-4.449-1.949-8.219-3.599-8.731-3.915-6.905-4.257 1.577-8.981-2.405-18.02-2.033-4.614.97-14.09 4.867-16.547-3.389 3.265-5.586 11.74-3.842 15.786 3.912 9.07-4.385 13.935 2.311 18.04.394.243 3.646 1.973 8.464 3.325"/><g fill="#47b892"><path d="M2,55.307V62h22.202c2.474-4.821-11.641-15.607-11.641-15.607L2,55.307z"/><path d="m51.44 46.39c0 0-14.11 10.786-11.641 15.607h22.2v-6.693l-10.562-8.914"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M21.4,29c-3.8,14.7-5.5,27.7,2.8,27.7c8.8,0,7.9-13,7.9-28S32.5,2,28,2C23.1,2,25.1,14.7,21.4,29z" fill="#f2d2ac"/><path d="m21.5 47.3c9.6 0 9.9-4.7 9.9-19.6 0-11.6.3-21.4-1.9-25.1 3.3 2.5 2.8 13.2 2.8 26.2 0 14.9 3.5 28-6.1 28-2.1-.1-6.2-9.5-4.7-9.5" fill="#e6b796"/><path d="M36,2c-4.6,0-4.2,11.9-4.2,26.8s-0.8,28,7.9,28c8.3,0,6.6-13.1,2.8-27.7C38.9,14.7,40.9,2,36,2z" fill="#f2d2ac"/><path d="m37.8 56.7c-9.6 0-6.1-13.1-6.1-28 0-13-.4-23.7 2.8-26.2-2.2 3.7-1.9 13.5-1.9 25.1 0 14.9.2 19.6 9.9 19.6 1.5.1-2.6 9.5-4.7 9.5" fill="#e6b796"/><path d="m13.1 47.7l7.6 13.3 8.6-4.5-10.3-16.5c0 0-2.6 6.4-5.9 7.7" fill="#f2d2ac"/><path d="m20.9 38.2c-1 1.6-1.4 8.9-6.1 10.8l5.5 11.2c0 0 6.1-1.5 8.5-3 6.7-4.1-.9-9 3-18.1 2.2-5.1-1.8-17.1-6.6-17.1-4.8 0-2.6 6.9-3 8.7-.6 2.1-.4 4.8-1.3 7.5" fill="#ffe1bd"/><path d="m28.5 56.4c6.7-4.1-1.6-9 2.3-18 1.7-4-.5-12.5-3.8-15.8 3.9 2.5 6.9 11.9 4.9 16.5-4 9 4.5 13.8-2.4 18-.5.3-4.3 2-8.7 3.9l-.7-1.3c4.8-1.4 8-3.1 8.4-3.3" fill="#e6b796"/><path d="M45,40L34.7,56.5l8.6,4.5l7.6-13.2C47.6,46.4,45,40,45,40z" fill="#f2d2ac"/><path d="m41.9 30.6c-.5-1.8 1.8-8.7-3-8.7-4.9.1-8.9 12.1-6.7 17.2 3.9 9.1-3.7 14 3 18.1 2.4 1.5 8.5 3 8.5 3l5.5-11.2c-4.7-2-5.1-9.2-6.1-10.8-.9-2.7-.7-5.4-1.2-7.6" fill="#ffe1bd"/><path d="m43.9 59.7l-.6 1.3c-4.4-1.9-8.2-3.6-8.7-3.9-6.9-4.3 1.6-9-2.4-18-2-4.6 1-14.1 4.9-16.5-3.4 3.3-5.6 11.7-3.8 15.8 3.9 9.1-4.4 13.9 2.3 18 .3.2 3.5 1.9 8.3 3.3" fill="#e6b796"/><g fill="#47b892"><path d="M2,55.3V62h22.2c2.5-4.8-11.6-15.6-11.6-15.6L2,55.3z"/><path d="M51.4,46.4c0,0-14.1,10.8-11.6,15.6H62v-6.7L51.4,46.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fc.svg
index 235de87..0501179 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2c19b" d="m21.386 29.01c-3.843 14.679-5.539 27.738 2.79 27.738 8.754 0 7.947-13.04 7.947-27.957s.394-26.788-4.166-26.788c-4.897 0-2.821 12.686-6.571 27.01"/><path fill="#e0a372" d="m21.512 47.31c9.607 0 9.855-4.724 9.855-19.64 0-11.631.292-21.392-1.92-25.12 3.258 2.476 2.85 13.168 2.85 26.21 0 14.915 3.486 27.989-6.122 27.989-2.102 0-6.175-9.438-4.663-9.438"/><path fill="#f2c19b" d="m36.04 2c-4.56 0-4.166 11.873-4.166 26.788s-.807 27.957 7.947 27.957c8.328 0 6.633-13.06 2.789-27.738-3.75-14.321-1.674-27.01-6.57-27.01"/><path fill="#e0a372" d="m37.824 56.745c-9.607 0-6.121-13.07-6.121-27.989 0-13.05-.41-23.738 2.849-26.21-2.212 3.733-1.921 13.494-1.921 25.13 0 14.916.249 19.64 9.857 19.64 1.512 0-2.56 9.438-4.664 9.438"/><path fill="#f2c19b" d="m13.11 47.73l7.579 13.225 8.609-4.458-10.343-16.508c0 0-2.564 6.454-5.845 7.741"/><path fill="#fed0ac" d="m20.92 38.19c-1 1.646-1.406 8.865-6.089 10.833l5.471 11.158c0 0 6.06-1.505 8.489-2.994 6.694-4.105-.937-9.04 2.976-18.11 2.187-5.072-1.816-17.11-6.6-17.11-4.793 0-2.563 6.89-3.03 8.682-.568 2.195-.343 4.837-1.22 7.543"/><path fill="#e0a372" d="m28.527 56.37c6.694-4.105-1.603-8.966 2.31-18.04 1.745-4.046-.453-12.521-3.841-15.786 3.897 2.461 6.899 11.933 4.866 16.547-3.981 9.04 4.5 13.764-2.404 18.02-.514.316-4.283 1.966-8.732 3.915l-.664-1.332c4.818-1.353 8.07-3.083 8.465-3.325"/><path fill="#f2c19b" d="m45.05 39.989l-10.344 16.508 8.611 4.458 7.578-13.225c-3.281-1.287-5.845-7.741-5.845-7.741"/><path fill="#fed0ac" d="m41.859 30.644c-.463-1.792 1.768-8.682-3.02-8.682-4.783 0-8.787 12.04-6.601 17.11 3.912 9.07-3.718 14.01 2.976 18.11 2.428 1.489 8.49 2.994 8.49 2.994l5.471-11.158c-4.684-1.968-5.09-9.187-6.09-10.833-.877-2.705-.652-5.347-1.221-7.543"/><path fill="#e0a372" d="m43.938 59.698l-.664 1.332c-4.447-1.949-8.219-3.599-8.73-3.915-6.905-4.257 1.576-8.981-2.406-18.02-2.032-4.614.97-14.09 4.867-16.547-3.389 3.265-5.585 11.74-3.84 15.786 3.912 9.07-4.385 13.935 2.309 18.04.393.243 3.645 1.973 8.464 3.325"/><g fill="#47b892"><path d="M2,55.307V62h22.202c2.474-4.821-11.641-15.607-11.641-15.607L2,55.307z"/><path d="m51.44 46.39c0 0-14.12 10.786-11.641 15.607h22.2v-6.693l-10.561-8.914"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M21.4,29c-3.8,14.7-5.5,27.7,2.8,27.7c8.8,0,7.9-13,7.9-28S32.5,2,28,2C23.1,2,25.1,14.7,21.4,29z" fill="#f2c19b"/><path d="m21.5 47.3c9.6 0 9.9-4.7 9.9-19.6 0-11.6.3-21.4-1.9-25.1 3.3 2.5 2.8 13.2 2.8 26.2 0 14.9 3.5 28-6.1 28-2.1-.1-6.2-9.5-4.7-9.5" fill="#e0a372"/><path d="M36,2c-4.6,0-4.2,11.9-4.2,26.8s-0.8,28,7.9,28c8.3,0,6.6-13.1,2.8-27.7C38.9,14.7,40.9,2,36,2z" fill="#f2c19b"/><path d="m37.8 56.7c-9.6 0-6.1-13.1-6.1-28 0-13-.4-23.7 2.8-26.2-2.2 3.7-1.9 13.5-1.9 25.1 0 14.9.2 19.6 9.9 19.6 1.5.1-2.6 9.5-4.7 9.5" fill="#e0a372"/><path d="m13.1 47.7l7.6 13.3 8.6-4.5-10.3-16.5c0 0-2.6 6.4-5.9 7.7" fill="#f2c19b"/><path d="m20.9 38.2c-1 1.6-1.4 8.9-6.1 10.8l5.5 11.2c0 0 6.1-1.5 8.5-3 6.7-4.1-.9-9 3-18.1 2.2-5.1-1.8-17.1-6.6-17.1-4.8 0-2.6 6.9-3 8.7-.6 2.1-.4 4.8-1.3 7.5" fill="#fed0ac"/><path d="m28.5 56.4c6.7-4.1-1.6-9 2.3-18 1.7-4-.5-12.5-3.8-15.8 3.9 2.5 6.9 11.9 4.9 16.5-4 9 4.5 13.8-2.4 18-.5.3-4.3 2-8.7 3.9l-.7-1.3c4.8-1.4 8-3.1 8.4-3.3" fill="#e0a372"/><path d="M45,40L34.7,56.5l8.6,4.5l7.6-13.2C47.6,46.4,45,40,45,40z" fill="#f2c19b"/><path d="m41.9 30.6c-.5-1.8 1.8-8.7-3-8.7-4.8 0-8.8 12-6.6 17.1 3.9 9.1-3.7 14 3 18.1 2.4 1.5 8.5 3 8.5 3l5.4-11.1c-4.7-2-5.1-9.2-6.1-10.8-.9-2.7-.7-5.4-1.2-7.6" fill="#fed0ac"/><path d="m43.9 59.7l-.6 1.3c-4.4-1.9-8.2-3.6-8.7-3.9-6.9-4.3 1.6-9-2.4-18-2-4.6 1-14.1 4.9-16.5-3.4 3.3-5.6 11.7-3.8 15.8 3.9 9.1-4.4 13.9 2.3 18 .3.2 3.5 1.9 8.3 3.3" fill="#e0a372"/><g fill="#47b892"><path d="M2,55.3V62h22.2c2.5-4.8-11.6-15.6-11.6-15.6L2,55.3z"/><path d="M51.4,46.4c0,0-14.1,10.8-11.6,15.6H62v-6.7L51.4,46.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fd.svg
index f0e6edc..40c74cf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#cc996e" d="m21.386 29.01c-3.843 14.679-5.539 27.738 2.79 27.738 8.754 0 7.947-13.04 7.947-27.957s.394-26.788-4.166-26.788c-4.897 0-2.821 12.686-6.571 27.01"/><path fill="#b58360" d="m21.512 47.31c9.607 0 9.856-4.724 9.856-19.64 0-11.631.291-21.392-1.921-25.12 3.259 2.476 2.849 13.168 2.849 26.21 0 14.915 3.487 27.989-6.121 27.989-2.102 0-6.175-9.438-4.663-9.438"/><path fill="#cc996e" d="m36.04 2c-4.56 0-4.166 11.873-4.166 26.788s-.807 27.957 7.947 27.957c8.33 0 6.633-13.06 2.791-27.738-3.75-14.321-1.676-27.01-6.572-27.01"/><path fill="#b58360" d="m37.824 56.745c-9.607 0-6.122-13.07-6.122-27.989 0-13.05-.408-23.738 2.85-26.21-2.212 3.733-1.92 13.494-1.92 25.13 0 14.916.248 19.64 9.856 19.64 1.512 0-2.56 9.438-4.664 9.438"/><path fill="#cc996e" d="m13.11 47.73l7.579 13.225 8.61-4.458-10.344-16.508c0 0-2.564 6.454-5.845 7.741"/><path fill="#d6a57c" d="m20.92 38.19c-1 1.646-1.406 8.865-6.089 10.833l5.471 11.158c0 0 6.06-1.505 8.489-2.994 6.694-4.105-.936-9.04 2.977-18.11 2.186-5.072-1.817-17.11-6.601-17.11-4.793 0-2.563 6.89-3.03 8.682-.568 2.195-.343 4.837-1.22 7.543"/><path fill="#b58360" d="m28.527 56.37c6.694-4.105-1.603-8.966 2.31-18.04 1.745-4.046-.452-12.521-3.841-15.786 3.896 2.461 6.899 11.933 4.867 16.547-3.982 9.04 4.499 13.764-2.406 18.02-.512.316-4.282 1.966-8.731 3.915l-.664-1.332c4.818-1.353 8.07-3.083 8.465-3.325"/><path fill="#cc996e" d="m45.05 39.989l-10.344 16.508 8.609 4.458 7.578-13.225c-3.279-1.287-5.843-7.741-5.843-7.741"/><path fill="#d6a57c" d="m41.861 30.644c-.465-1.792 1.766-8.682-3.03-8.682-4.783 0-8.787 12.04-6.6 17.11 3.913 9.07-3.719 14.01 2.975 18.11 2.428 1.489 8.49 2.994 8.49 2.994l5.471-11.158c-4.684-1.968-5.088-9.187-6.09-10.833-.877-2.705-.652-5.347-1.219-7.543"/><path fill="#b58360" d="m43.938 59.698l-.662 1.332c-4.449-1.949-8.219-3.599-8.732-3.915-6.905-4.257 1.576-8.981-2.405-18.02-2.033-4.614.969-14.09 4.866-16.547-3.387 3.265-5.585 11.74-3.84 15.786 3.912 9.07-4.385 13.935 2.309 18.04.395.243 3.645 1.973 8.464 3.325"/><g fill="#47b892"><path d="M2,55.307V62h22.202c2.474-4.821-11.641-15.607-11.641-15.607L2,55.307z"/><path d="m51.44 46.39c0 0-14.12 10.786-11.641 15.607h22.2v-6.693l-10.561-8.914"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M21.4,29c-3.8,14.7-5.5,27.7,2.8,27.7c8.8,0,7.9-13,7.9-28S32.5,2,28,2C23.1,2,25.1,14.7,21.4,29z" fill="#cc996e"/><path d="m21.5 47.3c9.6 0 9.9-4.7 9.9-19.6 0-11.6.3-21.4-1.9-25.1 3.3 2.5 2.8 13.2 2.8 26.2 0 14.9 3.5 28-6.1 28-2.1-.1-6.2-9.5-4.7-9.5" fill="#b58360"/><path d="M36,2c-4.6,0-4.2,11.9-4.2,26.8s-0.8,28,7.9,28c8.3,0,6.6-13.1,2.8-27.7C38.9,14.7,40.9,2,36,2z" fill="#cc996e"/><path d="m37.8 56.7c-9.6 0-6.1-13.1-6.1-28 0-13-.4-23.7 2.9-26.2-2.2 3.7-1.9 13.5-1.9 25.1 0 14.9.2 19.6 9.9 19.6 1.4.1-2.7 9.5-4.8 9.5" fill="#b58360"/><path d="m13.1 47.7l7.6 13.3 8.6-4.5-10.3-16.5c0 0-2.6 6.4-5.9 7.7" fill="#cc996e"/><path d="m20.9 38.2c-1 1.6-1.4 8.9-6.1 10.8l5.5 11.2c0 0 6.1-1.5 8.5-3 6.7-4.1-.9-9 3-18.1 2.2-5.1-1.8-17.1-6.6-17.1-4.8 0-2.6 6.9-3 8.7-.6 2.1-.4 4.8-1.3 7.5" fill="#d6a57c"/><path d="m28.5 56.4c6.7-4.1-1.6-9 2.3-18 1.7-4-.5-12.5-3.8-15.8 3.9 2.5 6.9 11.9 4.9 16.5-4 9 4.5 13.8-2.4 18-.5.3-4.3 2-8.7 3.9l-.7-1.3c4.8-1.4 8-3.1 8.4-3.3" fill="#b58360"/><path d="M45,40L34.7,56.5l8.6,4.5l7.6-13.2C47.6,46.4,45,40,45,40z" fill="#cc996e"/><path d="m41.9 30.6c-.5-1.8 1.8-8.7-3-8.7-4.8 0-8.8 12-6.6 17.1 3.9 9.1-3.7 14 3 18.1 2.4 1.5 8.5 3 8.5 3l5.4-11.1c-4.7-2-5.1-9.2-6.1-10.8-.9-2.7-.7-5.4-1.2-7.6" fill="#d6a57c"/><path d="m43.9 59.7l-.6 1.3c-4.4-1.9-8.2-3.6-8.7-3.9-6.9-4.3 1.6-9-2.4-18-2-4.6 1-14.1 4.9-16.5-3.4 3.3-5.6 11.7-3.8 15.8 3.9 9.1-4.4 13.9 2.3 18 .3.2 3.5 1.9 8.3 3.3" fill="#b58360"/><g fill="#47b892"><path d="M2,55.3V62h22.2c2.5-4.8-11.6-15.6-11.6-15.6L2,55.3z"/><path d="M51.4,46.4c0,0-14.1,10.8-11.6,15.6H62v-6.7L51.4,46.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fe.svg
index 8bca32b..1e8149f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#a37352" d="m21.386 29.01c-3.843 14.679-5.539 27.738 2.79 27.738 8.753 0 7.947-13.04 7.947-27.957s.394-26.788-4.167-26.788c-4.896 0-2.82 12.686-6.57 27.01"/><path fill="#935e3e" d="m21.512 47.31c9.608 0 9.856-4.724 9.856-19.64 0-11.631.291-21.392-1.92-25.12 3.258 2.476 2.849 13.168 2.849 26.21 0 14.915 3.486 27.989-6.122 27.989-2.102 0-6.175-9.438-4.663-9.438"/><path fill="#a37352" d="m36.04 2c-4.561 0-4.166 11.873-4.166 26.788s-.807 27.957 7.947 27.957c8.328 0 6.632-13.06 2.789-27.738-3.75-14.321-1.674-27.01-6.57-27.01"/><path fill="#935e3e" d="m37.825 56.745c-9.608 0-6.122-13.07-6.122-27.989 0-13.05-.409-23.738 2.849-26.21-2.211 3.733-1.92 13.494-1.92 25.13 0 14.916.248 19.64 9.855 19.64 1.513 0-2.56 9.438-4.662 9.438"/><path fill="#a37352" d="m13.11 47.73l7.579 13.225 8.61-4.458-10.344-16.508c0 0-2.564 6.454-5.845 7.741"/><path fill="#b47d56" d="m20.92 38.19c-1 1.646-1.406 8.865-6.089 10.833l5.471 11.158c0 0 6.06-1.505 8.489-2.994 6.695-4.105-.936-9.04 2.977-18.11 2.186-5.072-1.816-17.11-6.6-17.11-4.793 0-2.563 6.89-3.03 8.682-.569 2.195-.344 4.837-1.221 7.543"/><path fill="#935e3e" d="m28.526 56.37c6.695-4.105-1.602-8.966 2.311-18.04 1.744-4.046-.453-12.521-3.841-15.786 3.897 2.461 6.9 11.933 4.867 16.547-3.982 9.04 4.5 13.764-2.405 18.02-.513.316-4.283 1.966-8.731 3.915l-.664-1.332c4.817-1.353 8.07-3.083 8.463-3.325"/><path fill="#a37352" d="m45.05 39.989l-10.344 16.508 8.609 4.458 7.58-13.225c-3.281-1.287-5.845-7.741-5.845-7.741"/><path fill="#b47d56" d="m41.86 30.644c-.463-1.792 1.766-8.682-3.03-8.682-4.783 0-8.785 12.04-6.6 17.11 3.912 9.07-3.719 14.01 2.977 18.11 2.427 1.489 8.488 2.994 8.488 2.994l5.471-11.158c-4.683-1.968-5.088-9.187-6.089-10.833-.878-2.705-.651-5.347-1.22-7.543"/><path fill="#935e3e" d="m43.938 59.698l-.664 1.332c-4.449-1.949-8.219-3.599-8.731-3.915-6.905-4.257 1.577-8.981-2.405-18.02-2.033-4.614.97-14.09 4.867-16.547-3.389 3.265-5.586 11.74-3.842 15.786 3.912 9.07-4.385 13.935 2.311 18.04.394.243 3.646 1.973 8.464 3.325"/><g fill="#47b892"><path d="M2,55.307V62h22.202c2.474-4.821-11.641-15.607-11.641-15.607L2,55.307z"/><path d="m51.44 46.39c0 0-14.11 10.786-11.641 15.607h22.2v-6.693l-10.562-8.914"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M21.4,29c-3.8,14.7-5.5,27.7,2.8,27.7c8.8,0,7.9-13,7.9-28S32.5,2,28,2C23.1,2,25.1,14.7,21.4,29z" fill="#a37352"/><path d="m21.5 47.3c9.6 0 9.9-4.7 9.9-19.6 0-11.6.3-21.4-1.9-25.1 3.3 2.5 2.8 13.2 2.8 26.2 0 14.9 3.5 28-6.1 28-2.1-.1-6.2-9.5-4.7-9.5" fill="#935e3e"/><path d="M36,2c-4.6,0-4.2,11.9-4.2,26.8s-0.8,28,7.9,28c8.3,0,6.6-13.1,2.8-27.7C38.9,14.7,40.9,2,36,2z" fill="#a37352"/><path d="m37.8 56.7c-9.6 0-6.1-13.1-6.1-28 0-13-.4-23.7 2.8-26.2-2.2 3.7-1.9 13.5-1.9 25.1 0 14.9.2 19.6 9.9 19.6 1.5.1-2.6 9.5-4.7 9.5" fill="#935e3e"/><path d="m13.1 47.7l7.6 13.3 8.6-4.5-10.3-16.5c0 0-2.6 6.4-5.9 7.7" fill="#a37352"/><path d="m20.9 38.2c-1 1.6-1.4 8.9-6.1 10.8l5.5 11.2c0 0 6.1-1.5 8.5-3 6.7-4.1-.9-9 3-18.1 2.2-5.1-1.8-17.1-6.6-17.1-4.8 0-2.6 6.9-3 8.7-.6 2.1-.4 4.8-1.3 7.5" fill="#b47d56"/><path d="m28.5 56.4c6.7-4.1-1.6-9 2.3-18 1.7-4-.5-12.5-3.8-15.8 3.9 2.5 6.9 11.9 4.9 16.5-4 9 4.5 13.8-2.4 18-.5.3-4.3 2-8.7 3.9l-.7-1.3c4.8-1.4 8-3.1 8.4-3.3" fill="#935e3e"/><path d="M45,40L34.7,56.5l8.6,4.5l7.6-13.2C47.6,46.4,45,40,45,40z" fill="#a37352"/><path d="m41.9 30.6c-.5-1.8 1.8-8.7-3-8.7-4.9.1-8.9 12.1-6.7 17.2 3.9 9.1-3.7 14 3 18.1 2.4 1.5 8.5 3 8.5 3l5.5-11.2c-4.7-2-5.1-9.2-6.1-10.8-.9-2.7-.7-5.4-1.2-7.6" fill="#b47d56"/><path d="m43.9 59.7l-.6 1.3c-4.4-1.9-8.2-3.6-8.7-3.9-6.9-4.3 1.6-9-2.4-18-2-4.6 1-14.1 4.9-16.5-3.4 3.3-5.6 11.7-3.8 15.8 3.9 9.1-4.4 13.9 2.3 18 .3.2 3.5 1.9 8.3 3.3" fill="#935e3e"/><g fill="#47b892"><path d="M2,55.3V62h22.2c2.5-4.8-11.6-15.6-11.6-15.6L2,55.3z"/><path d="M51.4,46.4c0,0-14.1,10.8-11.6,15.6H62v-6.7L51.4,46.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3ff.svg
index 47d424e..3c7a1b6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64f-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#805b4c" d="m21.386 29.01c-3.843 14.679-5.539 27.738 2.79 27.738 8.754 0 7.948-13.04 7.948-27.957s.394-26.788-4.167-26.788c-4.897 0-2.821 12.686-6.571 27.01"/><path fill="#705041" d="m21.512 47.31c9.607 0 9.856-4.724 9.856-19.64 0-11.631.292-21.392-1.921-25.12 3.259 2.476 2.85 13.168 2.85 26.21 0 14.915 3.486 27.989-6.122 27.989-2.102 0-6.175-9.438-4.663-9.438"/><path fill="#805b4c" d="m36.04 2c-4.561 0-4.166 11.873-4.166 26.788s-.807 27.957 7.947 27.957c8.329 0 6.633-13.06 2.79-27.738-3.75-14.321-1.675-27.01-6.571-27.01"/><path fill="#705041" d="m37.824 56.745c-9.607 0-6.121-13.07-6.121-27.989 0-13.05-.409-23.738 2.85-26.21-2.213 3.733-1.921 13.494-1.921 25.13 0 14.916.249 19.64 9.856 19.64 1.512 0-2.56 9.438-4.664 9.438"/><path fill="#805b4c" d="m13.11 47.73l7.579 13.225 8.61-4.458-10.344-16.508c0 0-2.564 6.454-5.845 7.741"/><path fill="#8a6859" d="m20.92 38.19c-1 1.646-1.406 8.865-6.089 10.833l5.471 11.158c0 0 6.06-1.505 8.49-2.994 6.693-4.105-.937-9.04 2.976-18.11 2.187-5.072-1.817-17.11-6.6-17.11-4.793 0-2.563 6.89-3.03 8.682-.569 2.195-.344 4.837-1.221 7.543"/><path fill="#705041" d="m28.527 56.37c6.693-4.105-1.603-8.966 2.309-18.04 1.746-4.046-.452-12.521-3.84-15.786 3.897 2.461 6.899 11.933 4.867 16.547-3.982 9.04 4.499 13.764-2.405 18.02-.513.316-4.283 1.966-8.731 3.915l-.664-1.332c4.817-1.353 8.07-3.083 8.464-3.325"/><path fill="#805b4c" d="m45.05 39.989l-10.344 16.508 8.61 4.458 7.578-13.225c-3.28-1.287-5.844-7.741-5.844-7.741"/><path fill="#8a6859" d="m41.86 30.644c-.464-1.792 1.767-8.682-3.03-8.682-4.783 0-8.787 12.04-6.601 17.11 3.912 9.07-3.718 14.01 2.976 18.11 2.428 1.489 8.49 2.994 8.49 2.994l5.471-11.158c-4.684-1.968-5.089-9.187-6.09-10.833-.877-2.705-.652-5.347-1.22-7.543"/><path fill="#705041" d="m43.938 59.698l-.663 1.332c-4.448-1.949-8.219-3.599-8.731-3.915-6.905-4.257 1.576-8.981-2.405-18.02-2.032-4.614.97-14.09 4.866-16.547-3.388 3.265-5.586 11.74-3.84 15.786 3.912 9.07-4.385 13.935 2.309 18.04.394.243 3.645 1.973 8.464 3.325"/><g fill="#47b892"><path d="M2,55.307V62h22.202c2.474-4.821-11.641-15.607-11.641-15.607L2,55.307z"/><path d="m51.44 46.39c0 0-14.12 10.786-11.641 15.607h22.2v-6.693l-10.561-8.914"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M21.4,29c-3.8,14.7-5.5,27.7,2.8,27.7c8.8,0,7.9-13,7.9-28S32.5,2,28,2C23.1,2,25.1,14.7,21.4,29z" fill="#805b4c"/><path d="m21.5 47.3c9.6 0 9.9-4.7 9.9-19.6 0-11.6.3-21.4-1.9-25.1 3.3 2.5 2.9 13.2 2.9 26.2 0 14.9 3.5 28-6.1 28-2.2-.1-6.3-9.5-4.8-9.5" fill="#705041"/><path d="M36,2c-4.6,0-4.2,11.9-4.2,26.8s-0.8,28,7.9,28c8.3,0,6.6-13.1,2.8-27.7C38.9,14.7,40.9,2,36,2z" fill="#805b4c"/><path d="m37.8 56.7c-9.6 0-6.1-13.1-6.1-28 0-13-.4-23.7 2.9-26.2-2.2 3.7-1.9 13.5-1.9 25.1 0 14.9.2 19.6 9.9 19.6 1.4.1-2.7 9.5-4.8 9.5" fill="#705041"/><path d="m13.1 47.7l7.6 13.3 8.6-4.5-10.3-16.5c0 0-2.6 6.4-5.9 7.7" fill="#805b4c"/><path d="m20.9 38.2c-1 1.6-1.4 8.9-6.1 10.8l5.5 11.2c0 0 6.1-1.5 8.5-3 6.7-4.1-.9-9 3-18.1 2.2-5.1-1.8-17.1-6.6-17.1-4.8 0-2.6 6.9-3 8.7-.6 2.1-.4 4.8-1.3 7.5" fill="#8a6859"/><path d="m28.5 56.4c6.7-4.1-1.6-9 2.3-18 1.7-4-.5-12.5-3.8-15.8 3.9 2.5 6.9 11.9 4.9 16.5-4 9 4.5 13.8-2.4 18-.5.3-4.3 2-8.7 3.9l-.7-1.3c4.8-1.4 8-3.1 8.4-3.3" fill="#705041"/><path d="M45,40L34.7,56.5l8.6,4.5l7.6-13.2C47.6,46.4,45,40,45,40z" fill="#805b4c"/><path d="m41.9 30.6c-.5-1.8 1.8-8.7-3-8.7-4.8 0-8.8 12-6.6 17.1 3.9 9.1-3.7 14 3 18.1 2.4 1.5 8.5 3 8.5 3l5.4-11.1c-4.7-2-5.1-9.2-6.1-10.8-.9-2.7-.7-5.4-1.2-7.6" fill="#8a6859"/><path d="m43.9 59.7l-.6 1.3c-4.4-1.9-8.2-3.6-8.7-3.9-6.9-4.3 1.6-9-2.4-18-2-4.6 1-14.1 4.9-16.5-3.4 3.3-5.6 11.7-3.8 15.8 3.9 9.1-4.4 13.9 2.3 18 .3.2 3.5 1.9 8.3 3.3" fill="#705041"/><g fill="#47b892"><path d="M2,55.3V62h22.2c2.5-4.8-11.6-15.6-11.6-15.6L2,55.3z"/><path d="M51.4,46.4c0,0-14.1,10.8-11.6,15.6H62v-6.7L51.4,46.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f64f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f64f.svg
index fd0374f..a6b0bca 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f64f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f64f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffc95c" d="m21.385 29.01c-3.842 14.679-5.539 27.738 2.79 27.738 8.754 0 7.947-13.04 7.947-27.957s.395-26.788-4.166-26.788c-4.896 0-2.821 12.686-6.571 27.01"/><path fill="#eba352" d="m21.512 47.31c9.607 0 9.855-4.724 9.855-19.64 0-11.631.292-21.392-1.92-25.12 3.258 2.476 2.85 13.168 2.85 26.21 0 14.915 3.486 27.989-6.122 27.989-2.103 0-6.175-9.438-4.663-9.438"/><path fill="#ffc95c" d="m36.04 2c-4.561 0-4.166 11.873-4.166 26.788s-.807 27.957 7.947 27.957c8.328 0 6.633-13.06 2.789-27.738-3.75-14.321-1.674-27.01-6.57-27.01"/><path fill="#eba352" d="m37.824 56.745c-9.607 0-6.121-13.07-6.121-27.989 0-13.05-.41-23.738 2.849-26.21-2.212 3.733-1.921 13.494-1.921 25.13 0 14.916.249 19.64 9.856 19.64 1.513 0-2.56 9.438-4.663 9.438"/><path fill="#ffc95c" d="m13.11 47.73l7.579 13.225 8.609-4.458-10.343-16.508c0 0-2.564 6.454-5.845 7.741"/><path fill="#ffdd67" d="m20.92 38.19c-1 1.646-1.406 8.865-6.09 10.833l5.471 11.158c0 0 6.06-1.505 8.489-2.994 6.694-4.105-.937-9.04 2.976-18.11 2.187-5.072-1.816-17.11-6.6-17.11-4.793 0-2.563 6.89-3.03 8.682-.568 2.195-.342 4.837-1.219 7.543"/><path fill="#eba352" d="m28.526 56.37c6.694-4.105-1.603-8.966 2.31-18.04 1.745-4.046-.453-12.521-3.841-15.786 3.897 2.461 6.899 11.933 4.866 16.547-3.981 9.04 4.5 13.764-2.404 18.02-.514.316-4.283 1.966-8.732 3.915l-.663-1.332c4.818-1.353 8.07-3.083 8.464-3.325"/><path fill="#ffc95c" d="m45.05 39.989l-10.344 16.508 8.61 4.458 7.579-13.225c-3.281-1.287-5.845-7.741-5.845-7.741"/><path fill="#ffdd67" d="m41.859 30.644c-.463-1.792 1.767-8.682-3.03-8.682-4.783 0-8.786 12.04-6.601 17.11 3.912 9.07-3.718 14.01 2.977 18.11 2.428 1.489 8.489 2.994 8.489 2.994l5.471-11.158c-4.683-1.968-5.089-9.187-6.089-10.833-.878-2.705-.652-5.347-1.221-7.543"/><path fill="#eba352" d="m43.938 59.698l-.664 1.332c-4.448-1.949-8.219-3.599-8.73-3.915-6.905-4.257 1.576-8.981-2.406-18.02-2.032-4.614.971-14.09 4.867-16.547-3.389 3.265-5.586 11.74-3.841 15.786 3.912 9.07-4.385 13.935 2.31 18.04.393.243 3.645 1.973 8.464 3.325"/><g fill="#47b892"><path d="M2,55.307V62h22.202c2.475-4.821-11.641-15.607-11.641-15.607L2,55.307z"/><path d="m51.44 46.39c0 0-14.11 10.786-11.641 15.607h22.2v-6.693l-10.562-8.914"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M21.4,29c-3.8,14.7-5.5,27.7,2.8,27.7c8.8,0,7.9-13,7.9-28S32.5,2,28,2C23.1,2,25.1,14.7,21.4,29z" fill="#ffc95c"/><path d="m21.5 47.3c9.6 0 9.9-4.7 9.9-19.6 0-11.6.3-21.4-1.9-25.1 3.3 2.5 2.8 13.2 2.8 26.2 0 14.9 3.5 28-6.1 28-2.1-.1-6.2-9.5-4.7-9.5" fill="#eba352"/><path d="M36,2c-4.6,0-4.2,11.9-4.2,26.8s-0.8,28,7.9,28c8.3,0,6.6-13.1,2.8-27.7C38.9,14.7,40.9,2,36,2z" fill="#ffc95c"/><path d="m37.8 56.7c-9.6 0-6.1-13.1-6.1-28 0-13-.4-23.7 2.8-26.2-2.2 3.7-1.9 13.5-1.9 25.1 0 14.9.2 19.6 9.9 19.6 1.5.1-2.6 9.5-4.7 9.5" fill="#eba352"/><path d="m13.1 47.7l7.6 13.3 8.6-4.5-10.3-16.5c0 0-2.6 6.4-5.9 7.7" fill="#ffc95c"/><path d="m20.9 38.2c-1 1.6-1.4 8.9-6.1 10.8l5.5 11.2c0 0 6.1-1.5 8.5-3 6.7-4.1-.9-9 3-18.1 2.2-5.1-1.8-17.1-6.6-17.1-4.8 0-2.6 6.9-3 8.7-.6 2.1-.4 4.8-1.3 7.5" fill="#ffdd67"/><path d="m28.5 56.4c6.7-4.1-1.6-9 2.3-18 1.7-4-.5-12.5-3.8-15.8 3.9 2.5 6.9 11.9 4.9 16.5-4 9 4.5 13.8-2.4 18-.5.3-4.3 2-8.7 3.9l-.7-1.3c4.8-1.4 8-3.1 8.4-3.3" fill="#eba352"/><path d="M45,40L34.7,56.5l8.6,4.5l7.6-13.2C47.6,46.4,45,40,45,40z" fill="#ffc95c"/><path d="m41.9 30.6c-.5-1.8 1.8-8.7-3-8.7-4.9.1-8.9 12.1-6.7 17.2 3.9 9.1-3.7 14 3 18.1 2.4 1.5 8.5 3 8.5 3l5.5-11.2c-4.7-2-5.1-9.2-6.1-10.8-.9-2.7-.7-5.4-1.2-7.6" fill="#ffdd67"/><path d="m43.9 59.7l-.6 1.3c-4.4-1.9-8.2-3.6-8.7-3.9-6.9-4.3 1.6-9-2.4-18-2-4.6 1-14.1 4.9-16.5-3.4 3.3-5.6 11.7-3.8 15.8 3.9 9.1-4.4 13.9 2.3 18 .3.2 3.5 1.9 8.3 3.3" fill="#eba352"/><g fill="#47b892"><path d="M2,55.3V62h22.2c2.5-4.8-11.6-15.6-11.6-15.6L2,55.3z"/><path d="M51.4,46.4c0,0-14.1,10.8-11.6,15.6H62v-6.7L51.4,46.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f680.svg b/build/js/jsxc/lib/emojione/assets/svg/1f680.svg
index 46da7be..4ba418a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f680.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f680.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff9d27"><path d="m10.893 48.732c4.01-4.01 4.395-4.966 6.857-2.505 2.465 2.464 1.51 2.849-2.504 6.86-2.988 2.988-6.777 2.422-6.777 2.422s-.567-3.788 2.424-6.777"/><path d="m18.516 52.842c1.555-4.189 2.077-4.742-.196-5.997-2.27-1.253-2.267-.409-3.82 3.78-1.157 3.121.227 5.912.227 5.912s2.632-.574 3.789-3.695"/></g><path fill="#fdf516" d="m16.2 48.943c.863-2.324.861-2.793 2.119-2.099 1.264.696.974 1.01.108 3.327-.642 1.732-2.101 2.051-2.101 2.051s-.769-1.548-.126-3.279"/><path fill="#ff9d27" d="m17.13 45.658c-1.254-2.271-1.808-1.75-5.998-.194-3.118 1.157-3.693 3.789-3.693 3.789s2.791 1.384 5.912.227c4.189-1.555 5.03-1.55 3.779-3.822"/><g fill="#fdf516"><path d="m15.04 47.777c2.324-.861 2.792-.861 2.097-2.119-.697-1.262-1-.971-3.327-.108-1.731.642-2.051 2.102-2.051 2.102s1.549.768 3.281.125"/><path d="m13.944 47.619c2.227-2.227 2.44-2.756 3.806-1.392 1.367 1.368.839 1.582-1.391 3.806-1.655 1.66-3.759 1.346-3.759 1.346s-.313-2.103 1.344-3.76"/></g><path fill="#3baacf" d="M18.52,38.032C12.268,27.622,2,31.917,2,31.917s14.71-14.708,24.588-4.831L18.52,38.032z"/><path fill="#428bc1" d="M23.347,30.327l3.241-3.24C16.71,17.209,2,31.917,2,31.917S14.905,22.654,23.347,30.327z"/><path fill="#3baacf" d="M25.971,45.482C36.382,51.734,32.084,62,32.084,62s14.711-14.707,4.831-24.586L25.971,45.482z"/><path fill="#428bc1" d="m33.676 40.654l3.239-3.24c9.88 9.879-4.831 24.586-4.831 24.586s9.265-12.903 1.592-21.346"/><path fill="#c5d0d8" d="m48.769 30.877c-11.632 11.629-24.595 17.883-29.07 13.404-4.479-4.479 1.774-17.442 13.405-29.07 13.56-13.559 28.708-13.04 28.708-13.04s.521 15.15-13.04 28.707"/><path fill="#dae3ea" d="M45.831,27.58C34.2,39.208,22.577,46.801,19.889,44.111c-2.69-2.688,4.904-14.312,16.534-25.939
- C49.982,4.611,62,2,62,2S59.391,14.018,45.831,27.58z"/><path fill="#c94747" d="m24.315 47.45c-.498.502-1.269.542-1.771.042l-5.977-5.978c-.5-.5-.54-1.353-.04-1.854l1.811-1.813 7.788 7.792-1.811 1.811"/><path fill="#f15744" d="m22.608 45.745c-.5.5-1.107.701-1.39.419l-3.358-3.357c-.282-.281-.127-.938.374-1.438l1.811-1.813 4.375 4.377-1.812 1.812"/><path fill="#3e4347" d="m20.874 48.18c-.323.322-.95.315-1.275-.01l-3.886-3.885c-.325-.326-.234-.854.091-1.178l1.176-1.178 5.073 5.07-1.179 1.181"/><path fill="#62727a" d="m20.11 47.41c-.326.324-.856.412-1.08.185l-2.71-2.707c-.229-.229-.072-.688.252-1.016l1.179-1.177 3.537 3.536-1.178 1.179"/><path fill="#c94747" d="m61.81 2.171c0 0-5.442-.194-12.724 2.58l10.144 10.144c2.777-7.283 2.58-12.724 2.58-12.724"/><path fill="#f15744" d="m61.81 2.171c0 0-4.346.9-10.757 4.55l6.207 6.206c3.651-6.41 4.55-10.756 4.55-10.756"/><circle fill="#edf4f9" cx="43.478" cy="20.504" r="5"/><circle fill="#3baacf" cx="43.477" cy="20.504" r="3.333"/><circle fill="#edf4f9" cx="33.473" cy="30.507" r="5"/><circle fill="#3baacf" cx="33.473" cy="30.506" r="3.334"/><g fill="#fff"><path d="m48.852 6.876c-.322.325-.852.326-1.179 0-.325-.326-.324-.854-.001-1.179.328-.325.855-.326 1.18 0 .327.326.327.854 0 1.179"/><circle cx="50.621" cy="8.644" r=".833"/><circle cx="52.979" cy="11" r=".834"/><circle cx="55.34" cy="13.36" r=".834"/><circle cx="57.694" cy="15.717" r=".834"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff9d27"><path d="m10.9 48.7c4-4 4.4-5 6.9-2.5 2.5 2.5 1.5 2.8-2.5 6.9-3 3-6.8 2.4-6.8 2.4s-.6-3.8 2.4-6.8"/><path d="m18.5 52.8c1.6-4.2 2.1-4.7-.2-6-2.3-1.3-2.3-.4-3.8 3.8-1.2 3.1.2 5.9.2 5.9s2.7-.5 3.8-3.7"/></g><path d="m16.2 48.9c.9-2.3.9-2.8 2.1-2.1 1.3.7 1 1 .1 3.3-.6 1.7-2.1 2.1-2.1 2.1s-.7-1.5-.1-3.3" fill="#fdf516"/><path d="m17.1 45.7c-1.3-2.3-1.8-1.8-6-.2-3.1 1.2-3.7 3.8-3.7 3.8s2.8 1.4 5.9.2c4.2-1.6 5.1-1.6 3.8-3.8" fill="#ff9d27"/><g fill="#fdf516"><path d="m15 47.8c2.3-.9 2.8-.9 2.1-2.1-.7-1.3-1-1-3.3-.1-1.7.6-2.1 2.1-2.1 2.1s1.6.7 3.3.1"/><path d="m13.9 47.6c2.2-2.2 2.4-2.8 3.8-1.4 1.4 1.4.8 1.6-1.4 3.8-1.7 1.7-3.8 1.3-3.8 1.3s-.2-2 1.4-3.7"/></g><path d="M18.5,38C12.3,27.6,2,31.9,2,31.9s14.7-14.7,24.6-4.8L18.5,38z" fill="#3baacf"/><path d="m23.3 30.3l3.2-3.2c-9.8-9.9-24.5 4.8-24.5 4.8s12.9-9.2 21.3-1.6" fill="#428bc1"/><path d="M26,45.5C36.4,51.7,32.1,62,32.1,62s14.7-14.7,4.8-24.6L26,45.5z" fill="#3baacf"/><path d="m33.7 40.7l3.2-3.2c9.9 9.9-4.8 24.6-4.8 24.6s9.2-13 1.6-21.4" fill="#428bc1"/><path d="m48.8 30.9c-11.7 11.6-24.6 17.9-29.1 13.4-4.5-4.5 1.8-17.4 13.4-29.1 13.6-13.6 28.7-13 28.7-13s.5 15.1-13 28.7" fill="#c5d0d8"/><path d="M45.8,27.6C34.2,39.2,22.6,46.8,19.9,44.1c-2.7-2.7,4.9-14.3,16.5-25.9C50,4.6,62,2,62,2S59.4,14,45.8,27.6z" fill="#dae3ea"/><path d="m24.3 47.5c-.5.5-1.3.5-1.8 0l-6-6c-.5-.5-.5-1.4 0-1.9l1.8-1.8 7.8 7.8-1.8 1.9" fill="#c94747"/><path d="m22.6 45.7c-.5.5-1.1.7-1.4.4l-3.4-3.4c-.3-.3-.1-.9.4-1.4l1.8-1.8 4.4 4.4-1.8 1.8" fill="#f15744"/><path d="m20.9 48.2c-.3.3-1 .3-1.3 0l-3.9-3.9c-.3-.3-.2-.9.1-1.2l1.2-1.2 5.1 5.1-1.2 1.2" fill="#3e4347"/><path d="m20.1 47.4c-.3.3-.9.4-1.1.2l-2.7-2.7c-.2-.2-.1-.7.3-1l1.2-1.2 3.5 3.5-1.2 1.2" fill="#62727a"/><path d="m61.8 2.2c0 0-5.4-.2-12.7 2.6l10.1 10.1c2.8-7.3 2.6-12.7 2.6-12.7" fill="#c94747"/><path d="m61.8 2.2c0 0-4.3.9-10.8 4.6l6.2 6.2c3.7-6.5 4.6-10.8 4.6-10.8" fill="#f15744"/><circle cx="43.5" cy="20.5" r="5" fill="#edf4f9"/><circle cx="43.5" cy="20.5" r="3.3" fill="#3baacf"/><circle cx="33.5" cy="30.5" r="5" fill="#edf4f9"/><circle cx="33.5" cy="30.5" r="3.3" fill="#3baacf"/><g fill="#fff"><path d="m48.9 6.9c-.3.3-.9.3-1.2 0-.3-.3-.3-.9 0-1.2.3-.3.9-.3 1.2 0 .3.3.3.9 0 1.2"/><circle cx="50.6" cy="8.6" r=".8"/><circle cx="53" cy="11" r=".8"/><circle cx="55.3" cy="13.4" r=".8"/><circle cx="57.7" cy="15.7" r=".8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f681.svg b/build/js/jsxc/lib/emojione/assets/svg/1f681.svg
index 6b96d77..fa2ce38 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f681.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f681.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m45.955 20.395c-2.047 0-3.891-1.012-4.65-1.875-.76-.864-2.604-1.876-4.651-1.876h-14.927c-10.116 0-17.646 9.889-17.646 26.37 0 2.426 2.576 3.641 4.622 3.641h20.465c2.048 0 4.811-1.283 6.144-2.85 0 0 4.684-5.623 6.318-7.432 2.316-2.564 5.378-7.537 9.119-7.537h5.625v-8.441c0 0-7.813 0-10.419 0"/><g fill="#3e4347"><path d="m31.999 31.18c0 .516-.421.938-.938.938h-3.75c-.515 0-.938-.422-.938-.938v-11.723c0-.516.423-.938.938-.938h3.75c.517 0 .938.422.938.938v11.723"/><path d="m22.624 18.508c-13.427 0-14.852 13.609-14.852 13.609h14.852c1.036 0 1.875-.84 1.875-1.875l.048-9.859c0 0 0-1.875-1.923-1.875"/></g><path fill="#ffce31" d="m60.54 14.769c-1.895 0-7.917 5.626-7.917 5.626v8.367l2.593 1.564c.816.678 1.761.436 2.1-.539 0 0 3.442-9.935 4.591-13.245.336-.976-.277-1.773-1.367-1.773"/><path fill="#62727a" d="m36.687 54.08h-5.654c-.138-3.521-.772-7.732-3.7-10.413-.962-.88-2.557.406-1.601 1.281 2.32 2.124 2.9 6.067 3.034 9.132h-16.03c.132-3.064.715-7.01 3.03-9.132.956-.875-.639-2.161-1.6-1.281-2.927 2.681-3.563 6.893-3.699 10.413h-2.843c0 0-3.749.232-4.687-3.917h-.937c0 0 0 6.326 5.551 6.326.026.002.048.012.073.012h29.06c.517 0 .938-.833.938-1.268-.001-.433-.422-1.153-.938-1.153"/><path fill="#fff" d="m35.912 40.32c.961-1.146 2.164-2.571 3.179-3.752h-32.547c0 0-.385 2.098-.385 3.752h29.753"/><path fill="#62727a" d="m58.639 28.24l-4.02-3.222c-.729-.586-1.808-1.663-2.394-2.395l-3.219-4.02c-.586-.731-1.664-.731-2.394 0-.732.73-.732 1.809 0 2.395l4.02 3.221c.732.586 1.809 1.663 2.395 2.395l3.22 4.02c.587.73 1.664.73 2.395 0 .729-.732.729-1.809-.001-2.396"/><g fill="#b2c1c0"><circle cx="52.624" cy="24.657" r="1.875"/><path d="m28.661 15.03c-.136-.66-.707-1.202-1.267-1.202h-3.915c-.561 0-1.132.542-1.268 1.202l-.525 1.611h7.5l-.525-1.611"/></g><path fill="#62727a" d="m48.874 14.622c0 1.12-.812 1.786-1.802 1.478 0 0-11.323-3.514-21.636-3.514-11.25 0-21.645 3.476-21.645 3.476-.984.328-1.791-.32-1.791-1.44 0-1.12.834-2.176 1.853-2.346 0 0 10.334-1.729 21.584-1.729 10.313 0 21.582 1.749 21.582 1.749 1.02.16 1.855 1.206 1.855 2.326"/><g fill="#b2c1c0"><path d="m24.499 9.142h1.875v5.097h-1.875z"/><path d="m27.312 8.438c0 .515-.421.938-.938.938h-1.875c-.515 0-.938-.423-.938-.938 0-.517.423-.938.938-.938h1.875c.517 0 .938.422.938.938"/></g><path fill="#62727a" d="m27.312 11.955c0 .515-.421.938-.938.938h-1.875c-.515 0-.938-.423-.938-.938v-.938c0-.516.423-.938.938-.938h1.875c.517 0 .938.422.938.938v.938"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m46 20.4c-2 0-3.9-1-4.7-1.9-.8-.9-2.6-1.9-4.7-1.9h-14.9c-10.1 0-17.6 9.9-17.6 26.4 0 2.4 2.6 3.6 4.6 3.6h20.5c2 0 4.8-1.3 6.1-2.8 0 0 4.7-5.6 6.3-7.4 2.3-2.6 5.4-7.5 9.1-7.5h5.6v-8.4c.1-.1-7.7-.1-10.3-.1" fill="#ffce31"/><g fill="#3e4347"><path d="m32 31.2c0 .5-.4.9-.9.9h-3.8c-.5 0-.9-.4-.9-.9v-11.7c0-.5.4-.9.9-.9h3.8c.5 0 .9.4.9.9v11.7"/><path d="m22.6 18.5c-13.4 0-14.8 13.6-14.8 13.6h14.9c1 0 1.9-.8 1.9-1.9v-9.9c-.1.1-.1-1.8-2-1.8"/></g><path d="m60.5 14.8c-1.9 0-7.9 5.6-7.9 5.6v8.4l2.6 1.6c.8.7 1.8.4 2.1-.5 0 0 3.4-9.9 4.6-13.2.3-1.1-.3-1.9-1.4-1.9" fill="#ffce31"/><path d="m36.7 54.1h-5.7c-.1-3.5-.8-7.7-3.7-10.4-1-.9-2.6.4-1.6 1.3 2.3 2.1 2.9 6.1 3 9.1h-16c.1-3.1.7-7 3-9.1 1-.9-.6-2.2-1.6-1.3-2.9 2.7-3.6 6.9-3.7 10.4h-2.8c0 0-3.7.2-4.7-3.9h-.9c0 0 0 6.3 5.6 6.3 0 0 0 0 .1 0h29.1c.5 0 .9-.8.9-1.3-.1-.4-.5-1.1-1-1.1" fill="#62727a"/><path d="m35.9 40.3c1-1.1 2.2-2.6 3.2-3.8h-32.6c0 0-.4 2.1-.4 3.8h29.8" fill="#fff"/><path d="m58.6 28.2l-4-3.2c-.7-.6-1.8-1.7-2.4-2.4l-3.2-4c-.6-.7-1.7-.7-2.4 0-.7.7-.7 1.8 0 2.4l4 3.2c.7.6 1.8 1.7 2.4 2.4l3.2 4c.6.7 1.7.7 2.4 0 .8-.7.8-1.8 0-2.4" fill="#62727a"/><g fill="#b2c1c0"><circle cx="52.6" cy="24.7" r="1.9"/><path d="m28.7 15c-.1-.7-.7-1.2-1.3-1.2h-3.9c-.6 0-1.1.5-1.3 1.2l-.5 1.6h7.5l-.5-1.6"/></g><path d="m48.9 14.6c0 1.1-.8 1.8-1.8 1.5 0 0-11.3-3.5-21.6-3.5-11.2 0-21.6 3.5-21.6 3.5-1 .3-1.8-.3-1.8-1.4 0-1.1.8-2.2 1.9-2.3 0 0 10.3-1.7 21.6-1.7 10.3 0 21.6 1.7 21.6 1.7.8.1 1.7 1.1 1.7 2.2" fill="#62727a"/><g fill="#b2c1c0"><path d="m24.5 9.1h1.9v5.1h-1.9z"/><path d="m27.3 8.4c0 .5-.4.9-.9.9h-1.9c-.5 0-.9-.4-.9-.9 0-.5.4-.9.9-.9h1.9c.5 0 .9.4.9.9"/></g><path d="m27.3 12c0 .5-.4.9-.9.9h-1.9c-.5 0-.9-.4-.9-.9v-1c0-.5.4-.9.9-.9h1.9c.5 0 .9.4.9.9v1" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f682.svg b/build/js/jsxc/lib/emojione/assets/svg/1f682.svg
index 86cc168..829f6e2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f682.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f682.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#dae3ea"><circle cx="24.359" cy="12.13" r="3.875"/><circle cx="28.67" cy="10.25" r="4.844"/><circle cx="20" cy="14.247" r="1.937"/><circle cx="35.557" cy="10.349" r="5.812"/><circle cx="42.767" cy="8.783" r="6.781"/></g><g fill="#b2c1c0"><path d="m46.48 9.98c-.18.612-.561 1.139-1.01 1.611-.467.451-1.032.843-1.679 1.08-1.293.507-2.795.383-4.02-.118l1.015-.177c-.559.45-1.064.716-1.659.947-.58.225-1.205.353-1.833.371-1.262.033-2.516-.476-3.249-1.378 1.146.19 2.137.153 3.03-.146.449-.133.873-.332 1.284-.551.395-.218.834-.509 1.117-.746l.459-.385.558.207c.956.356 1.903.532 2.896.427.493-.059 1.013-.164 1.522-.369.526-.184 1.032-.451 1.571-.773"/><path d="m33.471 10.932c-.176 1.042-1.115 1.925-2.238 2.231-1.134.312-2.314.09-3.283-.332l1.26-.41c-.332.514-.656.813-1.087 1.112-.421.279-.913.477-1.419.537-1.025.129-1.982-.291-2.527-.99.45-.046.843-.073 1.197-.168.351-.072.65-.209.906-.355.257-.152.482-.323.688-.528.193-.185.425-.468.52-.621l.463-.754.797.344c.764.329 1.504.573 2.262.614.755.044 1.588-.133 2.461-.68"/></g><path fill="#83bf4f" d="m37.625 15.13h24.375v3.906h-24.375z"/><path fill="#699635" d="m58.25 19.03v12.814h-16.87v-12.814h-1.88v26.798h20.63v-26.798z"/><g fill="#3e4347"><path d="m58.25 31.844v-12.813h-16.875v12.813h16.875m-7.5-11.25h5.625v9.375h-5.625v-9.375m-7.5 0h5.625v9.375h-5.625v-9.375"/><path d="m13.25 53.738h10.889v4.379h-10.889z"/><path d="m13.25 49.813h41.666v4.557h-41.666z"/></g><g fill="#75a843"><path d="m12.313 30.13h27.19v19.687h-27.19z"/><path d="m14.188 39.5c0 6.731-2.098 10.313-4.688 10.313-2.589 0-4.688-10.313-4.688-10.313s2.099-9.375 4.688-9.375c2.589 0 4.688 2.645 4.688 9.375"/></g><path fill="#83bf4f" d="m9.755 32.469c-.909 1.219-2.25 2.695-3.053 7.03h5.625c0-5.628-1.652-6.335-2.572-7.03"/><path fill="#699635" d="m9.5 28.25h6.563v22.478h-6.563z"/><path fill="#ed4c5c" d="m6.688 49.813l-4.688 11.247h11.25v-11.247z"/><g fill="#fff"><path d="m9.409 51.688c.216 0 .341.419.28.931l-.68 5.64c-.061.512-.487.93-.944.93-.458 0-.736-.408-.617-.91l1.352-5.68c.121-.501.394-.911.609-.911"/><path d="m6.887 52.56c.183-.479.41-.872.505-.872.093 0 .073.41-.046.91l-1.353 5.68c-.12.502-.538.91-.932.91-.393 0-.564-.392-.381-.869l2.207-5.759"/><path d="m11.882 58.25c0 .516-.348.938-.774.938-.425 0-.723-.418-.662-.93l.679-5.64c.061-.512.258-.931.436-.931s.322.422.322.938v5.625"/></g><path fill="#83bf4f" d="m11.375 30.13h2.813v9.375h-2.813z"/><path fill="#3e4347" d="m16.06 15.13l1.878 3.745v11.255h9.375v-11.255l1.877-3.745z"/><path fill="#94989b" d="m24.5 17l-.937 1.875v11.255h1.875v-11.255l.937-1.875z"/><path fill="#83bf4f" d="M16.063,39.5H39.5V32H16.063V39.5z"/><g fill="#3e4347"><path d="m54.22 44.19h-8.818v-.803c0-.991-.61-1.826-1.334-1.826h-.82v-5.05h.82c.724 0 1.334-.835 1.334-1.826v-.804h8.818v.804c0 .991.611 1.826 1.332 1.826h.82v5.05h-.82c-.721 0-1.332.835-1.332 1.826v.803m-7.261-1.608h5.702c.25-1.2 1.049-2.156 2.07-2.496v-2.105c-1.021-.338-1.82-1.295-2.07-2.495h-5.702c-.249 1.2-1.05 2.157-2.071 2.495v2.105c1.021.34 1.822 1.296 2.071 2.496"/><path d="m52.1 46.737c-4.215 0-7.632 3.417-7.632 7.632 0 4.214 3.417 7.631 7.632 7.631 4.214 0 7.631-3.417 7.631-7.631-.001-4.215-3.418-7.632-7.631-7.632m0 13.738c-3.372 0-6.105-2.734-6.105-6.105 0-3.373 2.733-6.105 6.105-6.105 3.371 0 6.105 2.732 6.105 6.105 0 3.37-2.734 6.105-6.105 6.105"/></g><circle fill="#699635" cx="52.1" cy="54.37" r="1.527"/><g fill="#ed4c5c"><path d="m51.34 49.41h1.527v9.92h-1.527z"/><path transform="matrix(.4996.8662-.8662.4996 73.17-17.93)" d="m51.34 49.41h1.526v9.921h-1.526z"/><path transform="matrix(-.4999.8661-.8661-.4999 125.24 36.423)" d="m51.34 49.41h1.526v9.922h-1.526z"/><path d="m52.1 48.26c-3.372 0-6.105 2.732-6.105 6.105 0 3.371 2.733 6.105 6.105 6.105 3.371 0 6.105-2.734 6.105-6.105 0-3.373-2.734-6.105-6.105-6.105m0 10.683c-2.53 0-4.58-2.049-4.58-4.578 0-2.53 2.05-4.58 4.58-4.58 2.529 0 4.579 2.05 4.579 4.58 0 2.529-2.05 4.578-4.579 4.578"/></g><path fill="#3e4347" d="m36.84 46.737c-4.215 0-7.632 3.417-7.632 7.632 0 4.214 3.417 7.631 7.632 7.631s7.632-3.417 7.632-7.631c0-4.215-3.417-7.632-7.632-7.632m0 13.738c-3.371 0-6.105-2.734-6.105-6.105 0-3.373 2.734-6.105 6.105-6.105 3.372 0 6.105 2.732 6.105 6.105 0 3.37-2.733 6.105-6.105 6.105"/><circle fill="#699635" cx="36.84" cy="54.37" r="1.526"/><g fill="#ed4c5c"><path d="m36.08 49.41h1.527v9.92h-1.527z"/><path transform="matrix(.4996.8662-.8662.4996 65.53-4.708)" d="m36.08 49.41h1.526v9.92h-1.526z"/><path transform="matrix(-.4999.8661-.8661-.4999 102.34 49.642)" d="m36.08 49.41h1.526v9.922h-1.526z"/><path d="m36.84 48.26c-3.371 0-6.105 2.732-6.105 6.105 0 3.371 2.734 6.105 6.105 6.105 3.372 0 6.105-2.734 6.105-6.105 0-3.373-2.733-6.105-6.105-6.105m0 10.683c-2.529 0-4.579-2.049-4.579-4.578 0-2.53 2.05-4.58 4.579-4.58s4.58 2.05 4.58 4.58c0 2.529-2.051 4.578-4.58 4.578"/></g><path fill="#3e4347" d="m19.629 50.729c-3.113 0-5.636 2.523-5.636 5.635 0 3.113 2.523 5.637 5.636 5.637 3.111 0 5.637-2.523 5.637-5.637 0-3.112-2.526-5.635-5.637-5.635m0 10.144c-2.49 0-4.509-2.02-4.509-4.51 0-2.489 2.02-4.507 4.509-4.507s4.51 2.02 4.51 4.507c0 2.491-2.02 4.51-4.51 4.51"/><circle fill="#699635" cx="19.629" cy="56.36" r="1.127"/><g fill="#ed4c5c"><path d="m19.07 52.701h1.128v7.326h-1.128z"/><path transform="matrix(.5001.8659-.8659.5001 58.62 11.176)" d="m19.07 52.701h1.127v7.326h-1.127z"/><path transform="matrix(-.5001.8659-.8659-.5001 78.26 67.56)" d="m19.07 52.701h1.127v7.327h-1.127z"/><path d="m19.629 51.856c-2.49 0-4.509 2.02-4.509 4.507 0 2.49 2.02 4.51 4.509 4.51s4.51-2.02 4.51-4.51c0-2.489-2.02-4.507-4.51-4.507m0 7.89c-1.868 0-3.382-1.514-3.382-3.383 0-1.867 1.514-3.381 3.382-3.381 1.869 0 3.382 1.514 3.382 3.381 0 1.869-1.513 3.383-3.382 3.383"/></g><path fill="#699635" d="m33.875 28.25c-1.036 0-1.875.84-1.875 1.875h3.75c0-1.035-.84-1.875-1.875-1.875"/><g fill="#83bf4f"><path d="m24.17 50.729h-18.285v-2.899h22.04c0-.001 0 2.899-3.75 2.899"/><path d="M62,49.813H26.902c0,0,0-3.984,6.563-3.984H62V49.813z"/></g><path fill="#dbb471" d="m31.512 52.801c0 .518-.42.938-.938.938h-8.887c-.518 0-.938-.42-.938-.938v-2.051c0-.518.42-.938.938-.938h8.887c.518 0 .938.42.938.938v2.051"/><g fill="#ffdd7d"><path d="m55.672 54.957c0 .518-.42.938-.938.938h-23.671c-.518 0-.938-.42-.938-.938v-.281c0-.518.42-.938.938-.938h23.672c.518 0 .938.42.938.938v.281z"/><path d="m31.699 55.43c-.258.449-.832.602-1.279.344l-2.639-1.523c-.448-.26-.602-.832-.343-1.281l.141-.243c.259-.448.832-.602 1.28-.343l2.639 1.523c.447.258.602.832.342 1.28l-.141.243"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="#dae3ea"><circle cx="24.4" cy="12.1" r="3.9"/><circle cx="28.7" cy="10.2" r="4.8"/><circle cx="20" cy="14.2" r="1.9"/><circle cx="35.6" cy="10.3" r="5.8"/><circle cx="42.8" cy="8.8" r="6.8"/></g><g fill="#b2c1c0"><path d="m46.5 10c-.2.6-.6 1.1-1 1.6-.5.5-1 .8-1.7 1.1-1.3.5-2.8.4-4-.1l1-.2c-.6.4-1.1.7-1.7.9-.6.2-1.2.4-1.8.4-1.3 0-2.5-.5-3.2-1.4 1.1.2 2.1.2 3-.1.4-.1.9-.3 1.3-.6.4-.2.8-.5 1.1-.7l.5-.4.6.2c1 .4 1.9.5 2.9.4.5-.1 1-.2 1.5-.4.4-.1.9-.4 1.5-.7"/><path d="m33.5 10.9c-.2 1-1.1 1.9-2.2 2.2-1.1.3-2.3.1-3.3-.3l1.3-.4c-.3.5-.7.8-1.1 1.1-.4.3-.9.5-1.4.5-1 .1-2-.3-2.5-1 .5 0 .8-.1 1.2-.2.4-.1.6-.2.9-.4.3-.2.5-.3.7-.5.2-.2.4-.5.5-.6l.5-.8.8.3c.8.3 1.5.6 2.3.6.6.3 1.4.1 2.3-.5"/></g><path fill="#83bf4f" d="m37.6 15.1h24.4v3.9h-24.4z"/><path fill="#699635" d="m58.2 19v12.8h-16.8v-12.8h-1.9v26.8h20.6v-26.8z"/><g fill="#3e4347"><path d="m58.2 31.8v-12.8h-16.8v12.8h16.8m-7.4-11.2h5.6v9.4h-5.6v-9.4m-7.6 0h5.6v9.4h-5.6v-9.4"/><path d="m13.2 53.7h10.9v4.4h-10.9z"/><path d="m13.2 49.8h41.7v4.6h-41.7z"/></g><g fill="#75a843"><path d="m12.3 30.1h27.2v19.7h-27.2z"/><path d="m14.2 39.5c0 6.7-2.1 10.3-4.7 10.3-2.6 0-4.7-10.3-4.7-10.3s2.1-9.4 4.7-9.4 4.7 2.7 4.7 9.4"/></g><path d="m9.8 32.5c-.9 1.2-2.2 2.7-3.1 7h5.6c0-5.6-1.6-6.3-2.5-7" fill="#83bf4f"/><path fill="#699635" d="m9.5 28.2h6.6v22.5h-6.6z"/><path fill="#ed4c5c" d="m6.7 49.8l-4.7 11.3h11.2v-11.3z"/><g fill="#fff"><path d="m9.4 51.7c.2 0 .3.4.3.9l-.7 5.7c-.1.5-.5.9-.9.9-.5 0-.7-.4-.6-.9l1.4-5.7c0-.5.3-.9.5-.9"/><path d="m6.9 52.6c.2-.5.4-.9.5-.9.1 0 .1.4 0 .9l-1.4 5.7c-.1.5-.5.9-.9.9-.4 0-.6-.4-.4-.9l2.2-5.7"/><path d="m11.9 58.2c0 .5-.3.9-.8.9-.4 0-.7-.4-.7-.9l.7-5.6c.1-.5.3-.9.4-.9s.3.4.3.9l.1 5.6"/></g><path fill="#83bf4f" d="m11.4 30.1h2.8v9.4h-2.8z"/><path fill="#3e4347" d="m16.1 15.1l1.8 3.8v11.2h9.4v-11.2l1.9-3.8z"/><path fill="#94989b" d="m24.5 17l-.9 1.9v11.2h1.8v-11.2l1-1.9z"/><path d="M16.1,39.5h23.4V32H16.1V39.5z" fill="#83bf4f"/><g fill="#3e4347"><path d="m54.2 44.2h-8.8v-.8c0-1-.6-1.8-1.3-1.8h-.8v-5.1h.8c.7 0 1.3-.8 1.3-1.8v-.8h8.8v.8c0 1 .6 1.8 1.3 1.8h.8v5.1h-.8c-.7 0-1.3.8-1.3 1.8v.8m-7.2-1.6h5.7c.2-1.2 1-2.2 2.1-2.5v-2.1c-1-.3-1.8-1.3-2.1-2.5h-5.7c-.2 1.2-1 2.2-2.1 2.5v2.1c1 .3 1.8 1.3 2.1 2.5"/><path d="m52.1 46.7c-4.2 0-7.6 3.4-7.6 7.6 0 4.2 3.4 7.6 7.6 7.6 4.2 0 7.6-3.4 7.6-7.6 0-4.1-3.4-7.6-7.6-7.6m0 13.8c-3.4 0-6.1-2.7-6.1-6.1 0-3.4 2.7-6.1 6.1-6.1 3.4 0 6.1 2.7 6.1 6.1 0 3.3-2.7 6.1-6.1 6.1"/></g><circle cx="52.1" cy="54.4" r="1.5" fill="#699635"/><path fill="#ed4c5c" d="m51.3 49.4h1.5v9.9h-1.5z" id="0"/><path transform="matrix(.8662-.4996.4996.8662-20.1927 33.3032)" fill="#ed4c5c" d="m47.1 53.6h9.9v1.5h-9.9z"/><use transform="matrix(.4999-.8661.8661.4999-21.0336 72.3174)" xlink:href="#0"/><path d="m52.1 48.3c-3.4 0-6.1 2.7-6.1 6.1 0 3.4 2.7 6.1 6.1 6.1 3.4 0 6.1-2.7 6.1-6.1 0-3.4-2.7-6.1-6.1-6.1m0 10.6c-2.5 0-4.6-2-4.6-4.6 0-2.5 2-4.6 4.6-4.6 2.5 0 4.6 2 4.6 4.6 0 2.6-2.1 4.6-4.6 4.6" fill="#ed4c5c"/><path d="m36.8 46.7c-4.2 0-7.6 3.4-7.6 7.6 0 4.2 3.4 7.6 7.6 7.6s7.6-3.4 7.6-7.6c.1-4.1-3.3-7.6-7.6-7.6m0 13.8c-3.4 0-6.1-2.7-6.1-6.1 0-3.4 2.7-6.1 6.1-6.1 3.4 0 6.1 2.7 6.1 6.1 0 3.3-2.7 6.1-6.1 6.1" fill="#3e4347"/><circle cx="36.8" cy="54.4" r="1.5" fill="#699635"/><path fill="#ed4c5c" d="m36.1 49.4h1.5v9.9h-1.5z" id="1"/><path transform="matrix(.8662-.4996.4996.8662-22.2347 25.6776)" fill="#ed4c5c" d="m31.9 53.6h9.9v1.5h-9.9z"/><use transform="matrix(.4999-.8661.8661.4999-28.666 59.098)" xlink:href="#1"/><path d="m36.8 48.3c-3.4 0-6.1 2.7-6.1 6.1 0 3.4 2.7 6.1 6.1 6.1 3.4 0 6.1-2.7 6.1-6.1 0-3.4-2.7-6.1-6.1-6.1m0 10.6c-2.5 0-4.6-2-4.6-4.6 0-2.5 2-4.6 4.6-4.6s4.6 2 4.6 4.6c0 2.6-2 4.6-4.6 4.6" fill="#ed4c5c"/><path d="m19.6 50.7c-3.1 0-5.6 2.5-5.6 5.6 0 3.1 2.5 5.6 5.6 5.6 3.1 0 5.6-2.5 5.6-5.6.1-3-2.5-5.6-5.6-5.6m0 10.2c-2.5 0-4.5-2-4.5-4.5 0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5c0 2.5-2 4.5-4.5 4.5" fill="#3e4347"/><circle cx="19.6" cy="56.4" r="1.1" fill="#699635"/><path fill="#ed4c5c" d="m19.1 52.7h1.1v7.3h-1.1z" id="2"/><path transform="matrix(.866-.5001.5001.866-25.5562 17.3731)" fill="#ed4c5c" d="m16 55.8h7.3v1.1h-7.3z"/><use transform="matrix(.5001-.866.866.5001-38.9963 45.1766)" xlink:href="#2"/><path d="m19.6 51.9c-2.5 0-4.5 2-4.5 4.5 0 2.5 2 4.5 4.5 4.5s4.5-2 4.5-4.5c0-2.5-2-4.5-4.5-4.5m0 7.8c-1.9 0-3.4-1.5-3.4-3.4 0-1.9 1.5-3.4 3.4-3.4 1.9 0 3.4 1.5 3.4 3.4 0 1.9-1.5 3.4-3.4 3.4" fill="#ed4c5c"/><path d="m33.9 28.2c-1 0-1.9.8-1.9 1.9h3.8c0-1-.9-1.9-1.9-1.9" fill="#699635"/><g fill="#83bf4f"><path d="m24.2 50.7h-18.3v-2.9h22c0 0 0 2.9-3.7 2.9"/><path d="m62 49.8h-35.1c0 0 0-4 6.6-4h28.5v4"/></g><path d="m31.5 52.8c0 .5-.4.9-.9.9h-8.9c-.5 0-.9-.4-.9-.9v-2.1c0-.5.4-.9.9-.9h8.9c.5 0 .9.4.9.9 0 .1 0 2.1 0 2.1" fill="#dbb471"/><g fill="#ffdd7d"><path d="m55.7 55c0 .5-.4.9-.9.9h-23.7c-.5 0-.9-.4-.9-.9v-.3c0-.5.4-.9.9-.9h23.7c.5 0 .9.4.9.9v.3"/><path d="m31.7 55.4c-.3.4-.8.6-1.3.3l-2.6-1.5c-.4-.3-.6-.8-.3-1.3l.1-.2c.3-.4.8-.6 1.3-.3l2.6 1.5c.4.3.6.8.3 1.3l-.1.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f683.svg b/build/js/jsxc/lib/emojione/assets/svg/1f683.svg
index 89f6347..8042882 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f683.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f683.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#94989b" cx="11.03" cy="57.25" rx="4.655" ry="4.754"/><path fill="#3e4347" d="m11.03 60.42c-1.712 0-3.104-1.421-3.104-3.17 0-1.748 1.392-3.168 3.104-3.168 1.712 0 3.104 1.42 3.104 3.168 0 1.749-1.391 3.17-3.104 3.17m0-4.754c-.855 0-1.552.711-1.552 1.584 0 .874.697 1.586 1.552 1.586.855 0 1.552-.712 1.552-1.586 0-.873-.696-1.584-1.552-1.584"/><ellipse fill="#94989b" cx="21.37" cy="57.25" rx="4.655" ry="4.754"/><path fill="#3e4347" d="m21.37 60.42c-1.713 0-3.104-1.421-3.104-3.17 0-1.748 1.391-3.168 3.104-3.168s3.104 1.42 3.104 3.168c0 1.749-1.391 3.17-3.104 3.17m0-4.754c-.854 0-1.553.711-1.553 1.584 0 .874.698 1.586 1.553 1.586.855 0 1.552-.712 1.552-1.586 0-.873-.696-1.584-1.552-1.584"/><ellipse fill="#94989b" cx="42.629" cy="57.25" rx="4.655" ry="4.754"/><path fill="#3e4347" d="m42.63 60.42c-1.713 0-3.104-1.421-3.104-3.17 0-1.748 1.391-3.168 3.104-3.168s3.104 1.42 3.104 3.168c-.001 1.749-1.391 3.17-3.104 3.17m0-4.754c-.855 0-1.553.711-1.553 1.584 0 .874.697 1.586 1.553 1.586s1.552-.712 1.552-1.586c0-.873-.697-1.584-1.552-1.584"/><ellipse fill="#94989b" cx="52.975" cy="57.25" rx="4.655" ry="4.754"/><path fill="#3e4347" d="m52.975 60.42c-1.712 0-3.104-1.421-3.104-3.17 0-1.748 1.392-3.168 3.104-3.168s3.104 1.42 3.104 3.168c-.001 1.749-1.392 3.17-3.104 3.17m0-4.754c-.854 0-1.552.711-1.552 1.584 0 .874.697 1.586 1.552 1.586.855 0 1.552-.712 1.552-1.586-.001-.873-.697-1.584-1.552-1.584"/><path fill="#f2b200" d="m54.29 20h-44.588c-2.985 0-5.405 2.471-5.405 5.518v31.729h55.4v-31.729c0-3.047-2.42-5.518-5.404-5.518"/><path fill="#699635" d="m54.29 20h-44.588c-2.985 0-5.405 2.471-5.405 5.518v2.759h55.4v-2.759c0-3.047-2.42-5.518-5.404-5.518"/><path fill="#ffe62e" d="m4.301 28.28h55.4v15.174h-55.4z"/><g fill="#3e4347"><path d="m3.668 54.49h.633v2.759h-.633z"/><path d="m2 53.11h1.668v5.52h-1.668z"/><path d="m59.698 54.49h.634v2.759h-.634z"/><path d="m60.33 53.11h1.668v5.52h-1.668z"/></g><path fill="#89664c" d="m26.04 52.05h11.924l2.703-2.76h19.03v-2.755h-20.15l-2.703 2.755h-9.685l-2.708-2.755h-20.15v2.755h19.03z"/><g fill="#3e4347"><path d="m56.59 39.637c0 .582-.463 1.057-1.034 1.057h-6.04c-.571 0-1.034-.475-1.034-1.057v-7.545c0-.582.463-1.056 1.034-1.056h6.04c.571 0 1.034.474 1.034 1.056v7.545"/><path d="m46.32 39.637c0 .582-.463 1.057-1.034 1.057h-6.04c-.571 0-1.034-.475-1.034-1.057v-7.545c0-.582.463-1.056 1.034-1.056h6.04c.571 0 1.034.474 1.034 1.056v7.545"/><path d="m36.05 39.637c0 .582-.463 1.057-1.035 1.057h-6.04c-.572 0-1.035-.475-1.035-1.057v-7.545c0-.582.463-1.056 1.035-1.056h6.04c.572 0 1.035.474 1.035 1.056v7.545"/><path d="m25.782 39.637c0 .582-.463 1.057-1.034 1.057h-6.04c-.571 0-1.034-.475-1.034-1.057v-7.545c0-.582.463-1.056 1.034-1.056h6.04c.571 0 1.034.474 1.034 1.056v7.545"/><path d="m15.511 39.637c0 .582-.463 1.057-1.035 1.057h-6.04c-.571 0-1.035-.475-1.035-1.057v-7.545c0-.582.463-1.056 1.035-1.056h6.04c.571 0 1.035.474 1.035 1.056v7.545"/><path d="m4.301 53.11h55.4v4.139h-55.4z"/></g><g fill="#b4d7ee"><path d="m14.358 38.487c0 .511-.406.926-.907.926h-3.986c-.501 0-.907-.415-.907-.926v-5.246c0-.511.406-.925.907-.925h3.985c.501 0 .907.415.907.925v5.246z"/><path d="m24.63 38.487c0 .511-.406.926-.908.926h-3.984c-.502 0-.908-.415-.908-.926v-5.246c0-.511.406-.925.908-.925h3.984c.502 0 .908.415.908.925v5.246"/><path d="m34.899 38.487c0 .511-.405.926-.906.926h-3.986c-.5 0-.906-.415-.906-.926v-5.246c0-.511.406-.925.906-.925h3.986c.501 0 .906.415.906.925v5.246"/><path d="m45.17 38.487c0 .511-.406.926-.907.926h-3.985c-.501 0-.906-.415-.906-.926v-5.246c0-.511.405-.925.906-.925h3.985c.501 0 .907.415.907.925v5.246"/><path d="m55.44 38.487c0 .511-.406.926-.908.926h-3.984c-.501 0-.907-.415-.907-.926v-5.246c0-.511.406-.925.907-.925h3.984c.502 0 .908.415.908.925v5.246"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="11" cy="57.2" rx="4.7" ry="4.8" fill="#94989b"/><path d="m11 60.4c-1.7 0-3.1-1.4-3.1-3.2 0-1.7 1.4-3.2 3.1-3.2s3.1 1.4 3.1 3.2c0 1.8-1.4 3.2-3.1 3.2m0-4.7c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6s1.6-.7 1.6-1.6c0-.9-.7-1.6-1.6-1.6" fill="#3e4347"/><ellipse cx="21.4" cy="57.2" rx="4.7" ry="4.8" fill="#94989b"/><path d="m21.4 60.4c-1.7 0-3.1-1.4-3.1-3.2 0-1.7 1.4-3.2 3.1-3.2s3.1 1.4 3.1 3.2c0 1.8-1.4 3.2-3.1 3.2m0-4.7c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6s1.6-.7 1.6-1.6c-.1-.9-.8-1.6-1.6-1.6" fill="#3e4347"/><ellipse cx="42.6" cy="57.2" rx="4.7" ry="4.8" fill="#94989b"/><path d="m42.6 60.4c-1.7 0-3.1-1.4-3.1-3.2 0-1.7 1.4-3.2 3.1-3.2s3.1 1.4 3.1 3.2c0 1.8-1.4 3.2-3.1 3.2m0-4.7c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6s1.6-.7 1.6-1.6c0-.9-.7-1.6-1.6-1.6" fill="#3e4347"/><ellipse cx="53" cy="57.2" rx="4.7" ry="4.8" fill="#94989b"/><path d="m53 60.4c-1.7 0-3.1-1.4-3.1-3.2 0-1.7 1.4-3.2 3.1-3.2s3.1 1.4 3.1 3.2c0 1.8-1.4 3.2-3.1 3.2m0-4.7c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6.9 0 1.6-.7 1.6-1.6-.1-.9-.8-1.6-1.6-1.6" fill="#3e4347"/><path d="m54.3 20h-44.6c-3 0-5.4 2.5-5.4 5.5v31.7h55.4v-31.7c0-3-2.4-5.5-5.4-5.5" fill="#f2b200"/><path d="m54.3 20h-44.6c-3 0-5.4 2.5-5.4 5.5v2.8h55.4v-2.8c0-3-2.4-5.5-5.4-5.5" fill="#699635"/><path fill="#ffe62e" d="m4.3 28.3h55.4v15.2h-55.4z"/><g fill="#3e4347"><path d="m3.7 54.5h.6v2.8h-.6z"/><path d="m2 53.1h1.7v5.5h-1.7z"/><path d="m59.7 54.5h.6v2.8h-.6z"/><path d="m60.3 53.1h1.7v5.5h-1.7z"/></g><path fill="#89664c" d="m26 52.1h12l2.7-2.8h19v-2.8h-20.2l-2.7 2.8h-9.6l-2.7-2.8h-20.2v2.8h19z"/><g fill="#3e4347"><path d="m56.6 39.6c0 .6-.5 1.1-1 1.1h-6c-.6 0-1-.5-1-1.1v-7.5c0-.6.5-1.1 1-1.1h6c.6 0 1 .5 1 1.1v7.5"/><path d="m46.3 39.6c0 .6-.5 1.1-1 1.1h-6c-.6 0-1-.5-1-1.1v-7.5c0-.6.5-1.1 1-1.1h6c.6 0 1 .5 1 1.1v7.5"/><path d="m36.1 39.6c0 .6-.5 1.1-1 1.1h-6c-.6 0-1-.5-1-1.1v-7.5c0-.6.5-1.1 1-1.1h6c.6 0 1 .5 1 1.1v7.5"/><path d="m25.8 39.6c0 .6-.5 1.1-1 1.1h-6c-.6 0-1-.5-1-1.1v-7.5c0-.6.5-1.1 1-1.1h6c.6 0 1 .5 1 1.1v7.5"/><path d="m15.5 39.6c0 .6-.5 1.1-1 1.1h-6c-.6 0-1-.5-1-1.1v-7.5c0-.6.5-1.1 1-1.1h6c.6 0 1 .5 1 1.1v7.5"/><path d="m4.3 53.1h55.4v4.1h-55.4z"/></g><g fill="#b4d7ee"><path d="m14.4 38.5c0 .5-.4.9-.9.9h-4c-.5 0-.9-.4-.9-.9v-5.2c0-.5.4-.9.9-.9h4c.5 0 .9.4.9.9v5.2"/><path d="m24.6 38.5c0 .5-.4.9-.9.9h-4c-.5 0-.9-.4-.9-.9v-5.2c0-.5.4-.9.9-.9h4c.5 0 .9.4.9.9 0-.1 0 5.2 0 5.2"/><path d="m34.9 38.5c0 .5-.4.9-.9.9h-4c-.5 0-.9-.4-.9-.9v-5.2c0-.5.4-.9.9-.9h4c.5 0 .9.4.9.9v5.2"/><path d="m45.2 38.5c0 .5-.4.9-.9.9h-4c-.5 0-.9-.4-.9-.9v-5.2c0-.5.4-.9.9-.9h4c.5 0 .9.4.9.9v5.2"/><path d="m55.4 38.5c0 .5-.4.9-.9.9h-4c-.5 0-.9-.4-.9-.9v-5.2c0-.5.4-.9.9-.9h4c.5 0 .9.4.9.9v5.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f684.svg b/build/js/jsxc/lib/emojione/assets/svg/1f684.svg
index 4a991ff..291c00a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f684.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f684.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m62 62h-60v-4.8l60-14.669z"/><path fill="#94989b" d="m2 44.3l60-4.06v1.42l-60 11.12z"/><g fill="#3e4347"><path d="m2 41.656l60-3.674v1.981l-60 4.337z"/><path d="m2 49.541l60-8.401v1.04l-60 12.83z"/></g><path fill="#c5d0d8" d="m2 53.613l60-11.75v.668l-60 16.559z"/><path fill="#dfecf4" d="m47.35 11.934c-.943-.556-3.129-.815-4.168-.633-1.358.241-5.02 2.674-5.02 2.674s-1.99-2.509-3.954-4.093c-.076.054-.15.108-.213.155-3.01 2.277-8.804 7.908-11.877 10.05-1.12.781-3.742 2.588-5.04 2.588-2.7 0-8.255 0-9.266 0-.424 0-.763-.625-.783-1.134-.084-2.073 3.171-7.852 5.94-12.374-2.704 2.765-4.751 6.128-6.29 9.542-1.496 3.319-2.516 6.681-3.205 9.571-.604 2.529-.953 4.698-1.148 6.159l-.141 1.17c-.057.525-.079.826-.079.826l36.09.484 23.794.486v-15.965c-2.855-1.879-12.849-8.448-14.647-9.507"/><path fill="#42ade2" d="m42.25 6.1c-1.237-.634-3.85-1.509-5.18-1.75-.762-.138-1.73-.235-2.834-.292 2.627 1.068 5.06 2.576 5.06 2.576s-3.636 2.203-5.088 3.248c1.964 1.584 3.954 4.093 3.954 4.093s3.66-2.433 5.02-2.674c1.039-.183 3.225.077 4.168.633 1.799 1.06 11.792 7.628 14.647 9.508v-1.342c0 0-14.476-11.295-19.746-14"/><g fill="#3e4347"><path d="m34.24 4.058c-1.144-.058-2.436-.073-3.792-.043-5.596.122-10.892.578-14.06 2.357-1.502.842-2.491 1.859-3.407 2.795-2.77 4.522-6.02 10.301-5.94 12.374.021.509.359 1.134.783 1.134 1.01 0 6.565 0 9.266 0 1.296 0 3.918-1.807 5.04-2.588 3.073-2.144 8.871-7.774 11.877-10.05.063-.047.137-.101.213-.155 1.451-1.044 5.087-3.247 5.087-3.247s-2.433-1.508-5.06-2.576"/><path d="m52.652 20.19v7.082c.712.216 1.448.445 2.186.679v-6.675c-.737-.378-1.473-.744-2.186-1.086"/><path d="m55.87 21.812v6.472c.576.186 1.145.372 1.699.555v-6.123c-.554-.299-1.123-.602-1.699-.904"/></g><path fill="#42ade2" d="m30.07 32.01c3.777-1.274 10.932-5.514 14.811-6.222.722-.132 2.192.06 2.913.194.94.175 2.308.539 3.845.99v-7.252c-1.471-.671-2.786-1.195-3.724-1.418-.654-.157-2.029-.227-2.67 0-4.429 1.57-11.671 9.06-15.903 11.279-3.259 1.706-10.08 4.859-13.637 4.859-2.831 0-10.11 0-13.376 0-.062.469-.107.857-.141 1.17 3.254 0 10.93 0 13.922 0 3.57-.001 10.525-2.44 13.96-3.6"/><g fill="#3e4347"><path d="m60.63 24.409v5.459c.513.175.973.332 1.366.469v-5.151c-.394-.226-.854-.489-1.366-.777"/><path d="m58.36 23.14v5.956c.554.185 1.082.363 1.578.531v-5.614c-.495-.278-1.024-.571-1.578-.873"/><path d="m2.112 36.436c0 0 1.252 4.414 5.04 4.23l54.843-1.74v-1.52l-59.888-.97"/></g><path fill="#62727a" d="m5.927 40.555c0 0 2.402 1.605.542 3.275-1.01.906.264 2.631 4.212 2.254 12.84-1.227 51.32-5.178 51.32-5.178v-1.98l-56.07 1.629"/><g fill="#fff"><path d="m24.23 28.698c-1.623 1.636-3.745 2.15-4.742 1.146-.995-1-.486-3.142 1.139-4.778 1.623-1.636 3.745-2.15 4.742-1.147.995 1 .486 3.143-1.139 4.779"/><path d="m4.499 29.11c.69-.04 1.18-1.25 1.097-2.703-.063-1.108-.441-2.032-.923-2.393-.469 1.465-.86 2.886-1.177 4.206.262.56.62.913 1 .89"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m62 62h-60v-4.8l60-14.7z"/><path fill="#94989b" d="m2 44.3l60-4.1v1.5l-60 11.1z"/><g fill="#3e4347"><path d="m2 41.7l60-3.7v2l-60 4.3z"/><path d="m2 49.5l60-8.4v1.1l-60 12.8z"/></g><path fill="#c5d0d8" d="m2 53.6l60-11.7v.6l-60 16.6z"/><path d="m47.4 11.9c-.9-.6-3.1-.8-4.2-.6-1.4.2-5 2.7-5 2.7s-2-2.5-4-4.1c-.1 0-.1.1-.2.1-3 2.3-8.8 7.9-11.9 10.1-1.1.8-3.7 2.6-5 2.6-2.7 0-8.3 0-9.3 0-.4 0-.8-.6-.8-1.1 0-2.1 3.2-7.9 6-12.4-2.7 2.8-4.8 6.1-6.3 9.5-1.5 3.3-2.5 6.7-3.2 9.6-.6 2.5-1 4.7-1.1 6.2l-.1 1.2c-.1.5-.1.8-.1.8l36.1.5 23.7.4v-16c-2.9-1.8-12.8-8.4-14.6-9.5" fill="#dfecf4"/><path d="m42.3 6.1c-1.2-.6-3.8-1.5-5.2-1.8-.8-.1-1.7-.2-2.8-.3 2.6 1.1 5.1 2.6 5.1 2.6s-3.6 2.2-5.1 3.2c2 1.6 4 4.1 4 4.1s3.7-2.4 5-2.7c1-.2 3.2.1 4.2.6 1.8 1.1 11.8 7.6 14.6 9.5v-1.3c-.1.1-14.6-11.2-19.8-13.9" fill="#42ade2"/><g fill="#3e4347"><path d="m34.2 4.1c-1.1-.1-2.4-.1-3.8-.1-5.6.1-10.9.6-14.1 2.4-1.5.8-2.5 1.9-3.4 2.8-2.7 4.5-5.9 10.3-5.9 12.3 0 .5.4 1.1.8 1.1 1 0 6.6 0 9.3 0 1.3 0 3.9-1.8 5-2.6 3.1-2.1 8.9-7.7 11.9-10 .1 0 .1-.1.2-.2 1.5-1 5.1-3.2 5.1-3.2s-2.4-1.5-5.1-2.5"/><path d="m52.7 20.2v7.1c.7.2 1.4.4 2.2.7v-6.7c-.8-.4-1.5-.8-2.2-1.1"/><path d="m55.9 21.8v6.5c.6.2 1.1.4 1.7.6v-6.1c-.6-.4-1.2-.7-1.7-1"/></g><path d="m30.1 32c3.8-1.3 10.9-5.5 14.8-6.2.7-.1 2.2.1 2.9.2.9.2 2.3.5 3.8 1v-7.3c-1.5-.7-2.8-1.2-3.7-1.4-.7-.2-2-.2-2.7 0-4.4 1.6-11.7 9.1-15.9 11.3-3.3 1.7-10.1 4.9-13.6 4.9-2.8 0-10.1 0-13.4 0-.1.5-.1.9-.1 1.2 3.3 0 10.9 0 13.9 0 3.6-.1 10.5-2.5 14-3.7" fill="#42ade2"/><g fill="#3e4347"><path d="m60.6 24.4v5.5c.5.2 1 .3 1.4.5v-5.2c-.4-.2-.9-.5-1.4-.8"/><path d="m58.4 23.1v6c.6.2 1.1.4 1.6.5v-5.6c-.6-.3-1.1-.6-1.6-.9"/><path d="m2.1 36.4c0 0 1.3 4.4 5 4.2l54.9-1.7v-1.5l-59.9-1"/></g><path d="m5.9 40.6c0 0 2.4 1.6.5 3.3-1 .9.3 2.6 4.2 2.3 12.9-1.3 51.4-5.3 51.4-5.3v-2l-56.1 1.7" fill="#62727a"/><g fill="#fff"><path d="m24.2 28.7c-1.6 1.6-3.7 2.1-4.7 1.1-1-1-.5-3.1 1.1-4.8 1.6-1.6 3.7-2.1 4.7-1.1 1.1 1 .6 3.2-1.1 4.8"/><path d="m4.5 29.1c.7 0 1.2-1.2 1.1-2.7-.1-1.1-.4-2-.9-2.4-.5 1.5-.9 2.9-1.2 4.2.3.6.6.9 1 .9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f685.svg b/build/js/jsxc/lib/emojione/assets/svg/1f685.svg
index a135d7c..e6e4a7a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f685.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f685.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m2 56.21h60v5.787h-60z"/><path fill="#3e4347" d="m49.53 51.51c0 3.391 2.518 6.141 5.625 6.141 3.106 0 5.625-2.75 5.625-6.141h-11.25"/><path fill="#94989b" d="m57.03 51.51c0 1.129-.843 2.047-1.875 2.047-1.035 0-1.875-.918-1.875-2.047h-1.875c0 2.256 1.681 4.094 3.75 4.094 2.066 0 3.75-1.838 3.75-4.094h-1.875"/><path fill="#3e4347" d="m37.495 51.51c0 3.391 2.518 6.141 5.625 6.141s5.625-2.75 5.625-6.141h-11.25"/><path fill="#94989b" d="m44.995 51.51c0 1.129-.843 2.047-1.875 2.047-1.034 0-1.875-.918-1.875-2.047h-1.875c0 2.256 1.681 4.094 3.75 4.094 2.067 0 3.75-1.838 3.75-4.094h-1.875"/><path fill="#3e4347" d="m25.464 51.51c0 3.391 2.518 6.141 5.625 6.141 3.107 0 5.625-2.75 5.625-6.141h-11.25"/><path fill="#94989b" d="m32.964 51.51c0 1.129-.842 2.047-1.875 2.047-1.034 0-1.875-.918-1.875-2.047h-1.875c0 2.256 1.681 4.094 3.75 4.094 2.067 0 3.75-1.838 3.75-4.094h-1.875"/><path fill="#52575b" d="m26.897 52.18h35.1v-5.233l-32.97-.887z"/><path fill="#42ade2" d="m8.575 50.713l-2.78 9.506c0 0 8.629 0 14.238 0 7.211 0 14.05-11.797 14.05-11.797l-25.512 2.291"/><path fill="#c5d0d8" d="m32.899 12.329l-7.656 11.504c0 0-17.755 6.893-19.981 16.11-1.396 5.777 3.681 9.498 8.225 11.797 7.85.166 20.601-3.318 20.601-3.318h27.912v-34.507c0 0-19.218-2.866-29.1-1.586"/><path fill="#dfecf4" d="m5.261 39.943c2.227-9.217 43.34-23.23 51.36-22.796 0 0-5.484-2.263-13.641-3.783l-18.503 6.321c-.258.526-.409.866-.409.866s-19.633 10.286-21.837 18.691c-.279 1.066-.341 3.633 0 4.645 1.015 3 5.064 6.365 7.079 7.189 1.056.434 2.506.629 4.174.664-4.544-2.299-9.621-6.02-8.225-11.797"/><path fill="#3e4347" d="m42.982 13.364c-.022-.002-.047-.008-.069-.013l-6.01-.833c-1.71-.149-3.439-.217-5.154-.182-.665.091-1.217.208-1.604.362-2.488.987-4.77 5.163-5.668 6.986l18.515-1.557-.012-4.763"/><path fill="#42ade2" d="M62,41.99H32.877c0-11.774,16.631-11.774,16.631-11.774H62V41.99z"/><path fill="#aab5bc" d="m20.886 40.18c0 .82-.403 1.484-.896 1.484h-9.336c-.494 0-.895-.664-.895-1.484 0-.82.401-1.484.895-1.484h9.336c.492-.001.896.663.896 1.484"/><path fill="#3e4347" d="m20.853 51.66c-1.344.184-2.397 1.715-2.397 3.596 0 1.883 1.053 3.412 2.397 3.598v-7.194"/><g fill="#fff"><path d="m20.853 53.1c-.806.109-1.438 1.027-1.438 2.156 0 1.131.633 2.049 1.438 2.16v-4.316"/><path d="m20.05 38.984c-.448.063-.799.57-.799 1.199 0 .627.352 1.137.799 1.199v-2.398"/></g><path fill="#3e4347" d="m14.382 52.764c-1.054.146-1.878 1.344-1.878 2.82 0 1.475.825 2.676 1.878 2.82v-5.64"/><path fill="#fff" d="m14.382 53.891c-.631.088-1.127.807-1.127 1.693 0 .885.496 1.604 1.127 1.691v-3.384"/><path fill="#3e4347" d="m9.758 53.24c-.752.105-1.34.961-1.34 2.01 0 1.053.588 1.908 1.34 2.01v-4.03"/><path fill="#fff" d="m9.758 54.05c-.451.061-.804.574-.804 1.205 0 .633.354 1.146.804 1.209v-2.414"/><path fill="#3e4347" d="m43.735 13.508v4.532l12.296-1.211c0 0-6.686-2.5-12.296-3.321"/><path fill="#fff" d="m5.073 41c-.125-1.362.556-2.687 1.357-3.768.817-1.102 1.815-2.043 2.847-2.924 2.094-1.733 4.384-3.188 6.735-4.505 4.707-2.638 9.669-4.733 14.693-6.615 5.04-1.835 10.168-3.433 15.383-4.692 2.604-.637 5.234-1.179 7.886-1.605 2.648-.371 5.348-.782 8.03-.481-2.668.145-5.253.809-7.829 1.444-2.576.646-5.129 1.39-7.674 2.149-5.08 1.551-10.127 3.214-15.1 5.062-4.981 1.823-9.904 3.812-14.661 6.115-2.365 1.173-4.705 2.41-6.865 3.905-1.083.74-2.116 1.557-3.02 2.501-.874.941-1.685 2.059-1.78 3.414"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m2 56.2h60v5.8h-60z"/><path d="m49.5 51.5c0 3.4 2.5 6.1 5.6 6.1 3.1 0 5.6-2.8 5.6-6.1h-11.2" fill="#3e4347"/><path d="m57 51.5c0 1.1-.8 2-1.9 2-1 0-1.9-.9-1.9-2h-1.9c0 2.3 1.7 4.1 3.8 4.1 2.1 0 3.8-1.8 3.8-4.1h-1.9" fill="#94989b"/><path d="m37.5 51.5c0 3.4 2.5 6.1 5.6 6.1s5.6-2.8 5.6-6.1h-11.2" fill="#3e4347"/><path d="m45 51.5c0 1.1-.8 2-1.9 2-1 0-1.9-.9-1.9-2h-1.9c0 2.3 1.7 4.1 3.8 4.1 2.1 0 3.8-1.8 3.8-4.1h-1.9" fill="#94989b"/><path d="m25.5 51.5c0 3.4 2.5 6.1 5.6 6.1s5.6-2.8 5.6-6.1h-11.2" fill="#3e4347"/><path d="m33 51.5c0 1.1-.8 2-1.9 2-1 0-1.9-.9-1.9-2h-1.9c0 2.3 1.7 4.1 3.8 4.1 2.1 0 3.8-1.8 3.8-4.1h-1.9" fill="#94989b"/><path fill="#52575b" d="m26.9 52.2h35.1v-5.3l-33-.8z"/><path d="m8.6 50.7l-2.8 9.5c0 0 8.6 0 14.2 0 7.2 0 14.1-11.8 14.1-11.8l-25.5 2.3" fill="#42ade2"/><path d="m32.9 12.3l-7.7 11.5c0 0-17.8 6.9-20 16.1-1.4 5.8 3.7 9.5 8.2 11.8 7.9.2 20.6-3.3 20.6-3.3h28v-34.5c0 0-19.2-2.9-29.1-1.6" fill="#c5d0d8"/><path d="m5.3 39.9c2.2-9.2 43.3-23.2 51.4-22.8 0 0-5.5-2.3-13.6-3.8l-18.5 6.3c-.3.5-.4.9-.4.9s-19.8 10.3-22 18.7c-.3 1.1-.3 3.6 0 4.6 1 3 5.1 6.4 7.1 7.2 1.1.4 2.5.6 4.2.7-4.6-2.3-9.6-6-8.2-11.8" fill="#dfecf4"/><path d="m43 13.4c0 0-.1 0 0 0l-6.1-.8c-1.7-.1-3.4-.2-5.2-.2-.7.1-1.2.2-1.6.4-2.5 1-4.8 5.2-5.7 7l18.6-1.7v-4.7" fill="#3e4347"/><path d="M62,42H32.9c0-11.8,16.6-11.8,16.6-11.8H62V42z" fill="#42ade2"/><path d="m20.9 40.2c0 .8-.4 1.5-.9 1.5h-9.3c-.5 0-.9-.7-.9-1.5 0-.8.4-1.5.9-1.5h9.3c.5 0 .9.7.9 1.5" fill="#aab5bc"/><path d="m20.9 51.7c-1.3.2-2.4 1.7-2.4 3.6 0 1.9 1.1 3.4 2.4 3.6v-7.2" fill="#3e4347"/><g fill="#fff"><path d="m20.9 53.1c-.8.1-1.4 1-1.4 2.2 0 1.1.6 2 1.4 2.2v-4.4"/><path d="m20.1 39c-.4.1-.8.6-.8 1.2 0 .6.4 1.1.8 1.2v-2.4"/></g><path d="m14.4 52.8c-1.1.1-1.9 1.3-1.9 2.8 0 1.5.8 2.7 1.9 2.8v-5.6" fill="#3e4347"/><path d="m14.4 53.9c-.6.1-1.1.8-1.1 1.7 0 .9.5 1.6 1.1 1.7v-3.4" fill="#fff"/><path d="m9.8 53.2c-.8.1-1.3 1-1.3 2 0 1.1.6 1.9 1.3 2v-4" fill="#3e4347"/><path d="m9.8 54.1c-.5 0-.8.5-.8 1.2 0 .6.4 1.1.8 1.2v-2.4" fill="#fff"/><path d="m43.7 13.5v4.5l12.3-1.2c0 0-6.7-2.5-12.3-3.3" fill="#3e4347"/><path d="m5.1 41c-.1-1.4.6-2.7 1.4-3.8.8-1.1 1.8-2 2.8-2.9 2.1-1.7 4.4-3.2 6.7-4.5 4.7-2.6 9.7-4.7 14.7-6.6 5-1.8 10.2-3.4 15.4-4.7 2.6-.6 5.2-1.2 7.9-1.6 2.6-.4 5.3-.8 8-.5-2.7.1-5.3.8-7.8 1.4-2.6.6-5.1 1.4-7.7 2.1-5.1 1.6-10.1 3.2-15.1 5.1-5 1.8-9.9 3.8-14.7 6.1-2.4 1.2-4.7 2.4-6.9 3.9-1.1.7-2.1 1.6-3 2.5-.8 1-1.6 2.1-1.7 3.5" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f686.svg b/build/js/jsxc/lib/emojione/assets/svg/1f686.svg
index 7a55886..15d5e1e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f686.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f686.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m16.388 48.875l-8.617 13.13h4.669l8.315-13.12z"/><path fill="#e6e6e6" d="m16.388 48.875h-4.368l-10.02 13.13h5.771z"/><path fill="#94989b" d="m47.613 48.875h-4.363l8.312 13.13h4.668z"/><path fill="#e6e6e6" d="M47.613 48.875 56.23 62 62 62 51.981 48.875z"/><path fill="#3e4347" d="m44.04 50.14h-24.08l-7.518 11.86h39.12z"/><path fill="#ba573f" d="M52.37,32.245H11.633L11.63,8.423C11.63,7.799,21.814,5,32,5s20.37,2.799,20.37,3.423V32.245z"/><path fill="#c5cdd3" d="m54.772 48.48c0 3.682-45.545 3.682-45.545 0v-6.107h45.545v6.107"/><path fill="#dae3ea" d="m47.994 52.668c0 4.533-31.988 4.533-31.988 0v-7.518h31.988v7.518"/><path fill="#f14e3a" d="m54.772 42.37h-45.542l-.002-29.991c0-.785 11.386-4.31 22.772-4.31 11.387-.001 22.772 3.525 22.772 4.31v29.991"/><g fill="#3e4347"><path d="m11.633 13.658v9.476c.15.792 19.391-2.354 19.24-3.147v-9.477c-.149-.792-19.392 2.356-19.24 3.148"/><path d="m33.13 10.51v9.475c-.149.793 19.09 3.94 19.241 3.148v-9.476c.152-.791-19.09-3.939-19.241-3.147"/></g><path fill="#fdf516" d="m37.874 42.37h-11.748c0 0 0-16.862 0-19.285 0-2.539 11.748-2.539 11.748 0 0 3.02 0 19.285 0 19.285"/><ellipse fill="#d5a943" cx="32" cy="27.29" rx="4.898" ry="4.772"/><ellipse fill="#3e4347" cx="31.999" cy="27.29" rx="3.352" ry="3.264"/><ellipse fill="#f14e3a" cx="21.866" cy="5.109" rx="3.191" ry="3.109"/><ellipse fill="#3e4347" cx="21.866" cy="5.109" rx="2.183" ry="2.126"/><ellipse fill="#f14e3a" cx="42.13" cy="5.109" rx="3.191" ry="3.109"/><ellipse fill="#3e4347" cx="42.13" cy="5.109" rx="2.183" ry="2.126"/><ellipse fill="#f5f5f5" cx="12.439" cy="26.401" rx="1.575" ry="1.535"/><ellipse fill="#3e4347" cx="12.439" cy="26.401" rx=".804" ry=".783"/><ellipse fill="#f5f5f5" cx="51.56" cy="26.401" rx="1.575" ry="1.535"/><ellipse fill="#3e4347" cx="51.56" cy="26.401" rx=".804" ry=".783"/><g fill="#fdf516"><path d="m42.32 33.561c-5.05-1.053-15.599-1.053-20.646 0-.666.137-1.928.84-1.928 1.879v3.756c0 1.037 1.262 1.74 1.928 1.877 5.05 1.053 15.599 1.053 20.646 0 .666-.137 1.928-.84 1.928-1.877v-3.756c0-1.04-1.262-1.743-1.928-1.879m-.193 5c0 .689-1.044 1.156-1.595 1.248-4.174.695-12.896.695-17.07 0-.551-.092-1.595-.559-1.595-1.248v-2.488c0-.689 1.044-1.156 1.595-1.248 4.174-.695 12.896-.695 17.07 0 .551.092 1.595.559 1.595 1.248v2.488"/><path d="m9.211 36.27h45.578v2.09h-45.578z"/></g><path fill="#f5f5f5" d="m35.34 36.27c0 1.801-1.497 3.26-3.343 3.26s-3.343-1.459-3.343-3.26c0-1.797 1.497-3.256 3.343-3.256s3.343 1.46 3.343 3.256"/><ellipse fill="#3e4347" cx="31.999" cy="36.27" rx="2.287" ry="2.229"/><path fill="#f5f5f5" d="m33.07 36.27c0 .576-.48 1.045-1.071 1.045s-1.071-.469-1.071-1.045c0-.574.48-1.043 1.071-1.043s1.071.469 1.071 1.043"/><path fill="#94989b" d="m24.768 42.37h14.465v6.508h-14.465z"/><g fill="#3e4347"><path d="m27.786 46.881h2.144v4.68h-2.144z"/><path d="m34.07 46.881h2.144v4.68h-2.144z"/></g><g fill="#94989b"><path d="m24.458 52.967l-7.438-1.278.367-2.039 7.44 1.278z"/><path d="m46.982 51.689l-7.441 1.278-.371-2.039 7.443-1.278z"/><path d="m8.161 42.37h47.678v2.783h-47.678z"/></g><path fill="#dae3ea" d="m26.13 40.947h11.746v4.203h-11.746z"/><path fill="#f14e3a" d="m26.13 52.967h11.746v4.332h-11.746z"/><path fill="#ba573f" d="m55.848 33.898c-.113.623-.724 1.041-1.365.932l-9.273-1.594c-.641-.109-1.069-.707-.957-1.331l.385-2.123c.112-.625.725-1.042 1.366-.932l9.273 1.592c.641.111 1.068.706.955 1.331l-.384 2.125"/><path fill="#3e4347" d="m55.1 33.486c-.082.461-.6.758-1.152.664l-8.01-1.376c-.554-.095-.936-.547-.852-1.01l.284-1.571c.083-.461.601-.76 1.153-.664l8.01 1.376c.554.095.935.546.852 1.01l-.285 1.571"/><path fill="#ba573f" d="m19.748 31.905c.112.625-.315 1.222-.957 1.331l-9.272 1.594c-.64.109-1.253-.309-1.366-.932l-.384-2.125c-.113-.625.314-1.22.956-1.331l9.273-1.592c.642-.11 1.253.306 1.365.932l.385 2.123"/><path fill="#3e4347" d="m18.905 31.764c.085.461-.296.914-.85 1.01l-8.01 1.376c-.553.094-1.071-.203-1.154-.664l-.284-1.571c-.083-.462.299-.913.851-1.01l8.01-1.376c.555-.096 1.071.203 1.154.664l.283 1.569"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m16.4 48.9l-8.6 13.1h4.6l8.4-13.1z"/><path fill="#e6e6e6" d="m16.4 48.9h-4.4l-10 13.1h5.8z"/><path fill="#94989b" d="m47.6 48.9h-4.4l8.4 13.1h4.6z"/><path fill="#e6e6e6" d="m47.6 48.9l8.6 13.1h5.8l-10-13.1z"/><path fill="#3e4347" d="m44 50.1h-24l-7.6 11.9h39.2z"/><path d="m52.4 32.2h-40.8v-23.8c0-.6 10.2-3.4 20.4-3.4s20.4 2.8 20.4 3.4c0 0 0 23.8 0 23.8" fill="#ba573f"/><path d="m54.8 48.5c0 3.7-45.5 3.7-45.5 0v-6.1h45.5v6.1" fill="#c5cdd3"/><path d="m48 52.7c0 4.5-32 4.5-32 0v-7.5h32v7.5" fill="#dae3ea"/><path d="m54.8 42.4h-45.6v-30c0-.8 11.4-4.3 22.8-4.3 11.4 0 22.8 3.5 22.8 4.3v30" fill="#f14e3a"/><g fill="#3e4347"><path d="m11.6 13.7v9.5l19.3-3.2v-9.5c-.2-.8-19.4 2.4-19.3 3.2"/><path d="m33.1 10.5v9.5l19.2 3.1v-9.5c.2-.7-19-3.9-19.2-3.1"/></g><path d="m37.9 42.4h-11.8c0 0 0-16.9 0-19.3 0-2.5 11.7-2.5 11.7 0 .1 3 .1 19.3.1 19.3" fill="#fdf516"/><ellipse cx="32" cy="27.3" rx="3.4" ry="3.3" fill="#3e4347"/><g fill="#f14e3a"><ellipse cx="21.9" cy="5.1" rx="3.2" ry="3.1"/><ellipse cx="42.1" cy="5.1" rx="3.2" ry="3.1"/></g><g fill="#fdf516"><path d="m42.3 33.6c-5-1.1-15.6-1.1-20.6 0-.7.1-1.9.8-1.9 1.9v3.8c0 1 1.3 1.7 1.9 1.9 5 1.1 15.6 1.1 20.6 0 .7-.1 1.9-.8 1.9-1.9v-3.8c.1-1.1-1.2-1.8-1.9-1.9m-.2 5c0 .7-1 1.2-1.6 1.2-4.2.7-12.9.7-17.1 0-.6-.1-1.6-.6-1.6-1.2v-2.5c0-.7 1-1.2 1.6-1.2 4.2-.7 12.9-.7 17.1 0 .6.1 1.6.6 1.6 1.2v2.5"/><path d="m9.2 36.3h45.6v2.1h-45.6z"/></g><path d="m35.3 36.3c0 1.8-1.5 3.3-3.3 3.3s-3.3-1.5-3.3-3.3c0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3" fill="#3e4347"/><circle cx="32" cy="36.3" r="1.5" fill="#fff"/><path fill="#94989b" d="m23 42.4h18v6.5h-18z"/><g fill="#3e4347"><path d="m27.8 46.9h2.1v4.7h-2.1z"/><path d="m34.1 46.9h2.1v4.7h-2.1z"/></g><path fill="#94989b" d="m8.2 42.4h47.7v2.8h-47.7z"/><path fill="#f14e3a" d="m26.1 53h11.7v4.3h-11.7z"/><g fill="#3e4347"><path d="m55.8 32.9c-.1.6-.7 1-1.4.9l-9.3-1.6c-.6-.1-1.1-.7-1-1.3l.4-2.1c.1-.6.7-1 1.4-.9l9.3 1.6c.6.1 1.1.7 1 1.3l-.4 2.1"/><path d="m19.7 30.9c.1.6-.3 1.2-1 1.3l-9.3 1.6c-.6.1-1.3-.3-1.4-.9l-.4-2.1c-.1-.6.3-1.2 1-1.3l9.3-1.6c.6-.1 1.3.3 1.4.9l.4 2.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f687.svg b/build/js/jsxc/lib/emojione/assets/svg/1f687.svg
index cd8ed87..5f075ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f687.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f687.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3e4347" cx="32" cy="32" r="30"/><path fill="#94989b" d="m20.17 46.34l-6.531 9.371c.814.631 1.66 1.223 2.539 1.77l7.303-11.141h-3.311"/><path fill="#e6e6e6" d="m20.17 46.34h-3.311l-5.594 7.323c.756.723 1.547 1.406 2.373 2.048l6.532-9.371"/><path fill="#94989b" d="m43.832 46.34h-3.309l7.303 11.141c.877-.547 1.723-1.139 2.537-1.77l-6.531-9.371"/><path fill="#e6e6e6" d="m43.832 46.34l6.531 9.371c.828-.643 1.619-1.325 2.373-2.048l-5.594-7.323h-3.31"/><path fill="#c7e755" d="m49.26 44.23c0 1.756-1.432 3.182-3.195 3.182h-28.13c-1.766 0-3.197-1.426-3.197-3.182v-23.549c0-12.576 34.518-12.576 34.518 0v23.549"/><g fill="#3e4347"><path d="m47.23 40.532c0 1.076-.877 1.948-1.957 1.948h-4.715c-1.082 0-1.957-.872-1.957-1.948 0-1.077.875-1.949 1.957-1.949h4.715c1.08 0 1.957.872 1.957 1.949"/><path d="m16.764 40.532c0-1.077.879-1.949 1.959-1.949h4.713c1.082 0 1.959.872 1.959 1.949 0 1.076-.877 1.948-1.959 1.948h-4.713c-1.08 0-1.959-.872-1.959-1.948"/><path d="m47.2 30.422c0 1.474-1.195 2.668-2.668 2.668h-25.07c-1.475 0-2.668-1.194-2.668-2.668v-8.612c0-1.473 1.193-2.668 2.668-2.668h25.07c1.473 0 2.668 1.195 2.668 2.668v8.612"/></g><g fill="#fff"><circle cx="21.08" cy="40.532" r="1.671"/><circle cx="42.92" cy="40.532" r="1.672"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#3e4347"/><path d="m20.2 46.3l-6.5 9.4c.8.6 1.7 1.2 2.5 1.8l7.3-11.1c0-.1-3.3-.1-3.3-.1" fill="#94989b"/><path d="m20.2 46.3h-3.3l-5.6 7.3c.8.7 1.5 1.4 2.4 2l6.5-9.3" fill="#e6e6e6"/><path d="m43.8 46.3h-3.3l7.3 11.1c.9-.5 1.7-1.1 2.5-1.8l-6.5-9.3" fill="#94989b"/><path d="m43.8 46.3l6.5 9.4c.8-.6 1.6-1.3 2.4-2l-5.6-7.3h-3.3z" fill="#e6e6e6"/><path d="m49.3 44.2c0 1.8-1.4 3.2-3.2 3.2h-28.2c-1.8 0-3.2-1.4-3.2-3.2v-23.5c0-12.6 34.5-12.6 34.5 0l.1 23.5" fill="#c7e755"/><g fill="#3e4347"><path d="m47.2 40.5c0 1.1-.9 1.9-2 1.9h-4.7c-1.1 0-2-.9-2-1.9 0-1.1.9-1.9 2-1.9h4.7c1.2 0 2 .9 2 1.9"/><path d="m16.8 40.5c0-1.1.9-1.9 2-1.9h4.7c1.1 0 2 .9 2 1.9 0 1.1-.9 1.9-2 1.9h-4.7c-1.2.1-2-.8-2-1.9"/><path d="m47.2 30.4c0 1.5-1.2 2.7-2.7 2.7h-25c-1.5 0-2.7-1.2-2.7-2.7v-8.6c0-1.5 1.2-2.7 2.7-2.7h25.1c1.5 0 2.7 1.2 2.7 2.7v8.6z"/></g><g fill="#fff"><circle cx="21.1" cy="40.5" r="1.7"/><circle cx="42.9" cy="40.5" r="1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f688.svg b/build/js/jsxc/lib/emojione/assets/svg/1f688.svg
index 00054ef..f5fc3b0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f688.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f688.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m2 56.46h60v5.539h-60z"/><path fill="#62696d" d="m2 56.46h60v1.848h-60z"/><path fill="#dfecf4" d="M25.346,14C14.488,14,2,37.428,2,50.605c0,3.188,2.536,5.777,5.693,5.855h0.005H62V14
- C62,14,48.875,14,25.346,14z"/><g fill="#3e4347"><path d="m15.13 19.856c-6.843 7.397-12.5 20.247-13.07 29.28h10.173c0 0 13.182 0 13.182-7.32 0-5.49 0-21.964 0-21.964h-10.283"/><path d="m41.55 19.856c-7.324 0-7.324 1.464-7.324 15.374v13.91h27.774v-29.28c0 0-18.619 0-20.45 0"/></g><path fill="#3baacf" d="M2.051,49.141C2.02,49.639,2,50.131,2,50.605c0,3.188,2.536,5.777,5.693,5.855h0.005H62v-7.32H2.051z"/><path fill="#fdf516" d="M11.521,56.461c0,0,7.343-7.32,21.98-7.32H62v7.32H11.521z"/><g fill="#62696d"><path d="m47.41 34.498c-.809 0-1.255.684-1.465 1.465l-1.281 10.25h-4.666c-1.377 0-1.377.873-1.377 1.951v.977h10.255v-14.643h-1.466"/><path d="m60.53 34.498c-.809 0-1.255.684-1.465 1.465l-1.281 10.25h-4.666c-1.377 0-1.377.873-1.377 1.951v.977h10.255v-14.643h-1.466"/></g><ellipse fill="#fff" cx="6.395" cy="52.802" rx=".732" ry="2.196"/><path fill="#3baacf" d="m25.426 56.46c0 0 11.335-7.32 24.626-7.32 0 0 11.948 0 11.948-11.08v18.396h-36.574"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m2 56.5h60v5.5h-60z"/><path fill="#62696d" d="m2 56.5h60v1.8h-60z"/><path d="M25.3,14C14.5,14,2,37.4,2,50.6c0,3.2,2.5,5.8,5.7,5.9h0H62V14C62,14,48.9,14,25.3,14z" fill="#dfecf4"/><g fill="#3e4347"><path d="m15.1 19.9c-6.8 7.4-12.5 20.2-13 29.2h10.2c0 0 13.2 0 13.2-7.3 0-5.5 0-22 0-22s-10.4.1-10.4.1"/><path d="m41.5 19.9c-7.3 0-7.3 1.5-7.3 15.4v13.9h27.8v-29.3c0 0-18.6 0-20.5 0"/></g><path d="m2.1 49.1c0 .5-.1 1-.1 1.5 0 3.2 2.5 5.8 5.7 5.9h54.3v-7.3l-59.9-.1" fill="#3baacf"/><path d="M11.5,56.5c0,0,7.3-7.3,22-7.3H62v7.3H11.5z" fill="#fdf516"/><g fill="#62696d"><path d="m47.4 34.5c-.8 0-1.3.7-1.5 1.5l-1.3 10.2h-4.6c-1.4 0-1.4.9-1.4 2v1h10.3v-14.7h-1.5"/><path d="m60.5 34.5c-.8 0-1.3.7-1.5 1.5l-1.3 10.2h-4.7c-1.4 0-1.4.9-1.4 2v1h10.4v-14.7h-1.5"/></g><ellipse cx="6.4" cy="52.8" rx=".7" ry="2.2" fill="#fff"/><path d="m25.4 56.5c0 0 11.3-7.3 24.6-7.3 0 0 11.9 0 11.9-11.1v18.4h-36.5" fill="#3baacf"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f689.svg b/build/js/jsxc/lib/emojione/assets/svg/1f689.svg
index da89f07..6c3953a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f689.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f689.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m2.01 62h17.448l17.822-11.234h-29.16l-6.124 2.474z"/><path fill="#e8e8e8" d="m23.378 51.46c.133-.071.268-.141.4-.215l-.4.215"/><path fill="#c7e755" d="m3.145 33.944c-2.104 9.747-.558 19.517 11.487 19.517 2.517 0 5.674-.395 8.669-1.957 4.778-2.582 7.647-7.963 8.705-15.521.093-.658.188-1.341.29-2.038h-29.15"/><path fill="#3e4347" d="m32.3 33.944c1.221-8.529 3.049-19.694 6.287-24.82h-21.997c-2.442 2.503-5.09 5.874-7.813 10.421-2.226 3.717-4.474 9.05-5.628 14.399h29.15"/><path fill="#dae3ea" d="m31.661 2c-1.32 0-8.725.625-15.07 7.124h21.997c1.428-2.262 3.131-3.354 5.178-2.514-1.465-1.177-3.997-4.61-12.1-4.61"/><path fill="#c5d0d8" d="m44.604 7.04l.006.004c-7.283-4.685-10.482 14.09-12.314 26.896l25.539-5.95v-11.01c0 0-6.319-4.676-13.231-9.94"/><g fill="#83bf4f"><path d="m32.3 33.944c-.102.697-.197 1.38-.29 2.038-1.06 7.564-3.931 12.949-8.718 15.527l34.547-19.539v-3.977l-25.539 5.951"/><path d="m19.448 41.34c0 .686.184 1.32.484 1.874h6.01c.299-.554.483-1.188.483-1.874 0-.685-.185-1.32-.483-1.871h-6.01c-.3.551-.484 1.186-.484 1.871"/><path d="m3.745 41.34c0 .686.184 1.32.485 1.874h6.01c.301-.554.485-1.188.485-1.874 0-.685-.184-1.32-.484-1.871h-6.01c-.3.551-.484 1.186-.484 1.871"/></g><g fill="#d6eef0"><path d="m6.361 41.34c0 .686.185 1.32.485 1.874h4.266c.3-.554.484-1.188.484-1.874 0-.685-.184-1.32-.482-1.871h-4.268c-.3.551-.485 1.186-.485 1.871"/><path d="m22.07 41.34c0 .686.184 1.32.484 1.874h4.266c.301-.554.484-1.188.484-1.874 0-.685-.184-1.32-.482-1.871h-4.267c-.301.551-.485 1.186-.485 1.871"/></g><g fill="#3e4347"><path d="m54.58 17.513l-5.711-3.586c-.829-.521-1.507-.103-1.507.928v15.578l8.723-2.032v-8.07c0-1.03-.677-2.3-1.505-2.82"/><path d="m43.19 10.348c-1.986-1.265-4.445 5.88-5.156 8.241-1.448 4.813-2.708 12.868-2.708 12.868-.161 1.016.479 1.67 1.416 1.451l7.178-1.672c.938-.219 1.704-1.24 1.704-2.271v-17.07c-.001 0-1.554-.985-2.434-1.545"/></g><path fill="#94989b" d="m19.458 53.11h42.542v-21.11h-4.165z"/><path fill="#ffe62e" d="m28.792 53.11h-3.111l33.19-21.11h1.037z"/><path fill="#666" d="M 19.458,53.111 H62 V62 H19.458 z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m2 62h17.5l17.8-11.2h-29.2l-6.1 2.4z"/><path d="m23.4 51.5c.1-.1.3-.1.4-.2l-.4.2" fill="#e8e8e8"/><path d="m3.1 33.9c-2.1 9.8-.5 19.6 11.5 19.6 2.5 0 5.7-.4 8.7-2 4.8-2.6 7.6-8 8.7-15.5.1-.7.2-1.3.3-2l-29.2-.1" fill="#c7e755"/><path d="m32.3 33.9c1.2-8.5 3-19.7 6.3-24.8h-22c-2.4 2.5-5.1 5.9-7.8 10.4-2.2 3.7-4.5 9.1-5.6 14.4h29.1" fill="#3e4347"/><path d="m31.7 2c-1.3 0-8.7.6-15.1 7.1h22c1.4-2.3 3.1-3.4 5.2-2.5-1.5-1.2-4-4.6-12.1-4.6" fill="#dae3ea"/><path d="m44.6 7c-7.3-4.7-10.5 14.1-12.3 26.9l25.5-6v-10.9c0 0-6.3-4.7-13.2-10" fill="#c5d0d8"/><g fill="#83bf4f"><path d="m32.3 33.9c-.1.7-.2 1.4-.3 2-1.1 7.6-3.9 12.9-8.7 15.5l34.5-19.4v-4l-25.5 5.9"/><path d="m19.4 41.3c0 .7.2 1.3.5 1.9h6c.3-.6.5-1.2.5-1.9 0-.7-.2-1.3-.5-1.9h-6c-.3.6-.5 1.3-.5 1.9"/><path d="m3.7 41.3c0 .7.2 1.3.5 1.9h6c.3-.6.5-1.2.5-1.9 0-.7-.2-1.3-.5-1.9h-6c-.3.6-.5 1.3-.5 1.9"/></g><g fill="#d6eef0"><path d="m6.4 41.3c0 .7.2 1.3.5 1.9h4.3c.3-.6.5-1.2.5-1.9 0-.7-.2-1.3-.5-1.9h-4.4c-.3.6-.4 1.3-.4 1.9"/><path d="m22.1 41.3c0 .7.2 1.3.5 1.9h4.3c.3-.6.5-1.2.5-1.9 0-.7-.2-1.3-.5-1.9h-4.3c-.4.6-.5 1.3-.5 1.9"/></g><g fill="#3e4347"><path d="m54.6 17.5l-5.7-3.6c-.8-.5-1.5-.1-1.5.9v15.6l8.7-2v-8.1c0-1-.7-2.3-1.5-2.8"/><path d="m43.2 10.3c-2-1.3-4.4 5.9-5.2 8.2-1.4 4.8-2.7 12.9-2.7 12.9-.2 1 .5 1.7 1.4 1.5l7.2-1.7c.9-.2 1.7-1.2 1.7-2.3v-17c0 0-1.5-1-2.4-1.6"/></g><path fill="#94989b" d="m19.5 53.1h42.5v-21.1h-4.2z"/><path fill="#ffe62e" d="m28.8 53.1h-3.1l33.2-21.1h1z"/><path fill="#666" d="m19.5 53.1h42.5v8.9h-42.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f68a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f68a.svg
index 3579a07..e98a079 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f68a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f68a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m43.893 7.372h-2.625c0-1.595-1.373-2.893-3.063-2.893h-12.411c-1.688 0-3.063 1.298-3.063 2.893h-2.625c.001-2.962 2.552-5.372 5.688-5.372h12.411c3.137 0 5.688 2.41 5.688 5.372"/><path d="m28.523 10.465l-1.443.495-2.89-7.507 1.44-.495z"/><path d="m35.477 10.465l1.439.495 2.893-7.507-1.439-.495z"/></g><path fill="#94989b" d="m17.428 50.21l-8.04 11.79h4.358l7.761-11.79z"/><path fill="#e6e6e6" d="m17.428 50.21h-4.077l-9.351 11.79h5.385z"/><path fill="#94989b" d="m46.572 50.21h-4.076l7.764 11.79h4.355z"/><path fill="#e6e6e6" d="M46.572 50.21 54.615 62 60 62 50.648 50.21z"/><path fill="#666" d="m43.24 51.34h-22.48l-7.02 10.66h36.517z"/><path fill="#c7e755" d="m53.25 47.977c0 14.558-42.508 14.558-42.508 0v-24.919c0-18.599 42.508-18.599 42.508 0v24.919"/><path fill="#dae3ea" d="m53.25 39.68h-42.507v-16.622c0-18.599 42.508-18.599 42.508 0v16.622"/><g fill="#83bf4f"><path d="m50.762 48.29c0 1.14-1.08 2.063-2.412 2.063h-5.803c-1.334 0-2.412-.924-2.412-2.063 0-1.139 1.078-2.062 2.412-2.062h5.803c1.332 0 2.412.923 2.412 2.062"/><path d="m13.238 48.29c0-1.139 1.081-2.062 2.412-2.062h5.805c1.332 0 2.41.923 2.41 2.062 0 1.14-1.078 2.063-2.41 2.063h-5.805c-1.331 0-2.412-.923-2.412-2.063"/></g><g fill="#d6eef0"><path d="m16.933 48.29c0-1.139 1.081-2.062 2.411-2.062h2.111c1.332 0 2.41.923 2.41 2.062 0 1.14-1.078 2.063-2.41 2.063h-2.111c-1.33 0-2.411-.923-2.411-2.063"/><path d="m40.13 48.29c0-1.139 1.082-2.062 2.412-2.062h2.109c1.332 0 2.412.923 2.412 2.062 0 1.14-1.08 2.063-2.412 2.063h-2.109c-1.33 0-2.412-.923-2.412-2.063"/></g><path fill="#3e4347" d="m50.723 39.713c0 1.559-37.445 1.559-37.445 0v-18.637c0-1.559 37.445-1.559 37.445 0v18.637"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m43.9 7.4h-2.6c0-1.6-1.4-2.9-3.1-2.9h-12.4c-1.7 0-3.1 1.3-3.1 2.9h-2.6c0-3 2.6-5.4 5.7-5.4h12.4c3.1 0 5.7 2.4 5.7 5.4"/><path d="m28.5 10.5l-1.4.5-2.9-7.5 1.4-.5z"/><path d="m35.5 10.5l1.4.5 2.9-7.5-1.4-.5z"/></g><path fill="#94989b" d="m17.4 50.2l-8 11.8h4.3l7.8-11.8z"/><path fill="#e6e6e6" d="m17.4 50.2h-4l-9.4 11.8h5.4z"/><path fill="#94989b" d="m46.6 50.2h-4.1l7.8 11.8h4.3z"/><path fill="#e6e6e6" d="m46.6 50.2l8 11.8h5.4l-9.4-11.8z"/><path fill="#666" d="m43.2 51.3h-22.4l-7.1 10.7h36.6z"/><path d="M53.3,48c0,14.6-42.5,14.6-42.5,0V23.1c0-18.6,42.5-18.6,42.5,0V48z" fill="#c7e755"/><path d="m53.3 39.7h-42.6v-16.6c0-18.6 42.5-18.6 42.5 0 .1 0 .1 16.6.1 16.6" fill="#dae3ea"/><g fill="#83bf4f"><path d="m50.8 48.3c0 1.1-1.1 2.1-2.4 2.1h-5.8c-1.3 0-2.4-.9-2.4-2.1 0-1.1 1.1-2.1 2.4-2.1h5.8c1.3 0 2.4 1 2.4 2.1"/><path d="m13.2 48.3c0-1.1 1.1-2.1 2.4-2.1h5.8c1.3 0 2.4.9 2.4 2.1 0 1.1-1.1 2.1-2.4 2.1h-5.8c-1.3 0-2.4-1-2.4-2.1"/></g><g fill="#d6eef0"><path d="m16.9 48.3c0-1.1 1.1-2.1 2.4-2.1h2.1c1.3 0 2.4.9 2.4 2.1 0 1.1-1.1 2.1-2.4 2.1h-2.1c-1.3 0-2.4-1-2.4-2.1"/><path d="m40.1 48.3c0-1.1 1.1-2.1 2.4-2.1h2.1c1.3 0 2.4.9 2.4 2.1 0 1.1-1.1 2.1-2.4 2.1h-2.1c-1.3 0-2.4-1-2.4-2.1"/></g><path d="m50.7 39.7c0 1.6-37.4 1.6-37.4 0v-18.6c0-1.6 37.4-1.6 37.4 0v18.6" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f68b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f68b.svg
index 6b63a09..8c64b51 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f68b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f68b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m4.813 22.625h54.38v20.625h-54.37z"/><path fill="#ffce31" d="m4.813 43.25h54.38v3.75h-54.37z"/><g fill="#3e4347"><path d="m55.44 18.875h-46.875c-2.063 0-3.75 1.688-3.75 3.75h54.38c0-2.062-1.688-3.75-3.75-3.75"/><path d="m25.438 15.13h13.13v3.75h-13.13z"/><path d="m2 2h60v1.875h-60z"/><path d="m23.563 39.793h-9.375v-11.25c0-3.28 9.375-3.28 9.375 0v11.25"/></g><path fill="#b4d7ee" d="m21.688 30.07c0-2.344-5.625-2.344-5.625 0v7.5h5.625v-7.5"/><path fill="#3e4347" d="m12.313 41.668h-7.5v-16.522c0 0 7.5.194 7.5 4.335v12.187"/><path fill="#b4d7ee" d="m10.438 31c0-3.672-5.625-3.633-5.625-3.633v12.07h5.625v-8.437"/><path fill="#3e4347" d="m34.813 39.793h-9.375v-11.25c0-3.28 9.375-3.28 9.375 0v11.25"/><path fill="#b4d7ee" d="m32.938 30.07c0-2.344-5.625-2.344-5.625 0v7.5h5.625v-7.5"/><path fill="#3e4347" d="m46.06 39.793h-9.375v-11.25c0-3.28 9.375-3.28 9.375 0v11.25"/><path fill="#b4d7ee" d="m44.19 30.07c0-2.344-5.625-2.344-5.625 0v7.5h5.625v-7.5"/><path fill="#3e4347" d="m57.31 39.793h-9.375v-11.25c0-3.28 9.375-3.28 9.375 0v11.25"/><path fill="#b4d7ee" d="m55.44 30.07c0-2.344-5.625-2.344-5.625 0v7.5h5.625v-7.5"/><g fill="#3e4347"><path d="m5.81 15.516h3.203v5.625h-3.203z"/><path d="m13.524 17.469h9.102v3.672h-9.102z"/><path d="m43.855 17.04h9.102v3.671h-9.102z"/></g><path fill="#94989b" d="m2 56.38h60v5.625h-60z"/><path fill="#e6e6e6" d="m2 57.31h60v.938h-60z"/><g fill="#3e4347"><path transform="matrix(.8519.5237-.5237.8519 11.04-15.544)" d="m32.573 6.616h.86v10.251h-.86z"/><path transform="matrix(.8516.5242-.5242.8516 12.694-18.398)" d="m37.995 8.092h1.681v10.251h-1.681z"/><path transform="matrix(.7881-.6155.6155.7881 2.744 23.641)" d="m35.28 1.955h.86v11.759h-.86z"/><path transform="matrix(.7877-.6161.6161.7877 4.346 25.23)" d="m37.875 1.828h1.795v8.958h-1.795z"/></g><path fill="#699635" d="M4.813,47c0,0-1.893,0-1.893,2.813v0.938v2.813h1.893h54.375V47H4.813z"/><path fill="#3e4347" d="m2.919 51.961h56.27v1.602h-56.27z"/><path fill="#63686b" d="m18.875 49.813h-9.375l-2.812 3.747h15z"/><circle fill="#3e4347" cx="10.906" cy="53.56" r="2.813"/><circle fill="#94989b" cx="10.906" cy="53.56" r=".938"/><circle fill="#3e4347" cx="17.469" cy="53.56" r="2.813"/><circle fill="#94989b" cx="17.469" cy="53.56" r=".938"/><path fill="#63686b" d="m54.5 49.813h-9.37l-2.82 3.747h15z"/><g fill="#3e4347"><circle cx="46.531" cy="53.56" r="2.813"/><circle cx="53.09" cy="53.56" r="2.813"/></g><g fill="#94989b"><circle cx="46.531" cy="53.56" r=".938"/><circle cx="53.09" cy="53.56" r=".938"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m4.8 22.6h54.4v20.6h-54.4z"/><path fill="#ffce31" d="m4.8 43.2h54.4v3.8h-54.4z"/><g fill="#3e4347"><path d="m55.4 18.9h-46.8c-2.1 0-3.8 1.7-3.8 3.8h54.4c0-2.1-1.7-3.8-3.8-3.8"/><path d="m25.4 15.1h13.1v3.8h-13.1z"/><path d="m2 2h60v1.9h-60z"/><path d="m23.6 39.8h-9.4v-11.3c0-3.3 9.4-3.3 9.4 0v11.3"/></g><path d="m21.7 30.1c0-2.3-5.6-2.3-5.6 0v7.5h5.6v-7.5" fill="#b4d7ee"/><path d="m12.3 41.7h-7.5v-16.6c0 0 7.5.2 7.5 4.3v12.3" fill="#3e4347"/><path d="M10.4,31c0-3.7-5.6-3.6-5.6-3.6v12.1h5.6V31z" fill="#b4d7ee"/><path d="m34.8 39.8h-9.4v-11.3c0-3.3 9.4-3.3 9.4 0v11.3" fill="#3e4347"/><path d="m32.9 30.1c0-2.3-5.6-2.3-5.6 0v7.5h5.6v-7.5" fill="#b4d7ee"/><path d="m46.1 39.8h-9.4v-11.3c0-3.3 9.4-3.3 9.4 0v11.3" fill="#3e4347"/><path d="m44.2 30.1c0-2.3-5.6-2.3-5.6 0v7.5h5.6v-7.5" fill="#b4d7ee"/><path d="m57.3 39.8h-9.4v-11.3c0-3.3 9.4-3.3 9.4 0v11.3" fill="#3e4347"/><path d="m55.4 30.1c0-2.3-5.6-2.3-5.6 0v7.5h5.6v-7.5" fill="#b4d7ee"/><g fill="#3e4347"><path d="m5.8 15.5h3.2v5.6h-3.2z"/><path d="m13.5 17.5h9.1v3.7h-9.1z"/><path d="m43.9 17h9.1v3.7h-9.1z"/></g><path fill="#94989b" d="m2 56.4h60v5.6h-60z"/><path fill="#e6e6e6" d="m2 57.3h60v.9h-60z"/><g fill="#3e4347"><path transform="matrix(.5237-.8519.8519.5237 5.7151 33.7073)" d="m27.9 11.3h10.3v.9h-10.3z"/><path transform="matrix(.5242-.8516.8516.5242 7.2242 39.3621)" d="m33.7 12.4h10.3v1.7h-10.3z"/><path transform="matrix(.7881-.6155.6155.7881 2.7438 23.6407)" d="m35.3 2h.9v11.8h-.9z"/><path transform="matrix(.7877-.6161.6161.7877 4.3475 25.2263)" d="m37.9 1.8h1.8v9h-1.8z"/></g><path d="M4.8,47c0,0-1.9,0-1.9,2.8v0.9v2.8h1.9h54.4V47H4.8z" fill="#699635"/><path fill="#3e4347" d="m2.9 52h56.3v1.6h-56.3z"/><path fill="#63686b" d="m18.9 49.8h-9.4l-2.8 3.8h15z"/><circle cx="10.9" cy="53.6" r="2.8" fill="#3e4347"/><circle cx="10.9" cy="53.6" r=".9" fill="#94989b"/><circle cx="17.5" cy="53.6" r="2.8" fill="#3e4347"/><circle cx="17.5" cy="53.6" r=".9" fill="#94989b"/><path fill="#63686b" d="m54.5 49.8h-9.4l-2.8 3.8h15z"/><g fill="#3e4347"><circle cx="46.5" cy="53.6" r="2.8"/><circle cx="53.1" cy="53.6" r="2.8"/></g><g fill="#94989b"><circle cx="46.5" cy="53.6" r=".9"/><circle cx="53.1" cy="53.6" r=".9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f68c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f68c.svg
index f8f0c7b..99862d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f68c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f68c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m2 38.36h60v16.522h-60z"/><g fill="#3e4347"><path d="m2 54.885h60v1.775h-60z"/><path d="m13.752 44.06h48.25v1.017h-48.25z"/><path d="m13.752 38.844h48.25v1.015h-48.25z"/></g><g fill="#63686b"><path d="m49.586 46.754c-4.57 0-8.277 3.639-8.277 8.132 0 .608.07 1.204.2 1.775h16.16c.128-.572.197-1.166.197-1.774 0-4.493-3.705-8.132-8.275-8.132"/><path d="m18.551 46.754c-4.57 0-8.275 3.639-8.275 8.132 0 .608.068 1.204.198 1.775h16.16c.13-.572.198-1.166.198-1.774 0-4.493-3.706-8.132-8.277-8.132"/></g><path fill="#ffce31" d="M59.931,16H4.259C3.111,16,2.291,16.945,2,18.026v20.337h60v-20.33C62,16.916,61.068,16,59.931,16z"/><ellipse fill="#3e4347" cx="49.586" cy="54.884" rx="7.242" ry="7.116"/><ellipse fill="#94989b" cx="49.586" cy="54.885" rx="3.62" ry="3.558"/><ellipse fill="#3e4347" cx="18.551" cy="54.884" rx="7.24" ry="7.116"/><path fill="#94989b" d="m18.551 51.33c-1.996 0-3.62 1.594-3.62 3.559 0 1.964 1.625 3.558 3.62 3.558 1.998 0 3.622-1.594 3.622-3.558 0-1.965-1.624-3.559-3.622-3.559"/><path fill="#3e4347" d="m2 20.941h3.125v17.422h-3.125z"/><path fill="#f5f5f5" d="m4.659 53.712c-.267.213-1.504.75-1.504.75v-3.629c0 0 1.238.538 1.504.751.801.642.801 1.485 0 2.128"/><path fill="#ed4c5c" d="m4.105 41.763c-.168.161-.951.563-.951.563v-2.723c0 0 .782.402.951.564.506.481.506 1.115 0 1.596"/><path fill="#63686b" d="m14.898 20.941h7.5v4.538h-7.5z"/><path fill="#3e4347" d="m14.898 27.3h7.5v4.538h-7.5z"/><path fill="#63686b" d="m24.14 20.941h7.5v4.538h-7.5z"/><path fill="#3e4347" d="m24.14 27.3h7.5v4.538h-7.5z"/><path fill="#63686b" d="m33.518 20.941h7.5v4.538h-7.5z"/><path fill="#3e4347" d="m33.518 27.3h7.5v4.538h-7.5z"/><path fill="#63686b" d="m42.893 20.941h7.5v4.538h-7.5z"/><path fill="#3e4347" d="m42.893 27.3h7.5v4.538h-7.5z"/><path fill="#63686b" d="m51.688 20.941h7.5v4.538h-7.5z"/><g fill="#3e4347"><path d="m51.688 27.3h7.5v4.538h-7.5z"/><path d="m2 33.621h60v1.017h-60z"/></g><path fill="#f5f5f5" d="m18.526 43.81l-3.295-3.191v-4.509l3.295-3.192h4.664l3.291 3.192v4.509l-3.291 3.191z"/><path fill="#ed4c5c" d="m19.11 42.45l-2.472-2.39v-3.388l2.472-2.392h3.494l2.466 2.392v3.388l-2.466 2.39z"/><g fill="#94989b"><path d="m13.284 36.478h1.948v3.773h-1.948z"/><path d="m4.03 23.489h2.657v12.328h-2.657z"/></g><g fill="#3e4347"><path d="m6.688 20.941h6.334v10.891h-6.334z"/><path d="m2 43.618h4.688v6.352h-4.688z"/></g><g fill="#63686b"><path d="m2 44.525h3.75v.908h-3.75z"/><path d="m2 46.34h3.75v.907h-3.75z"/><path d="m2 48.16h3.75v.907h-3.75z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m2 38.4h60v16.5h-60z"/><g fill="#3e4347"><path d="m2 54.9h60v1.8h-60z"/><path d="m13.8 44.1h48.2v1h-48.2z"/><path d="m13.8 38.8h48.2v1h-48.2z"/></g><g fill="#63686b"><path d="m49.6 46.8c-4.6 0-8.3 3.6-8.3 8.1 0 .6.1 1.2.2 1.8h16.2c.1-.6.2-1.2.2-1.8 0-4.5-3.7-8.1-8.3-8.1"/><path d="m18.6 46.8c-4.6 0-8.3 3.6-8.3 8.1 0 .6.1 1.2.2 1.8h16.2c.1-.6.2-1.2.2-1.8-.1-4.5-3.8-8.1-8.3-8.1"/></g><path d="m59.9 16h-55.6c-1.1 0-2 .9-2.3 2v20.3h60v-20.3c0-1.1-.9-2-2.1-2" fill="#ffce31"/><ellipse cx="49.6" cy="54.9" rx="7.2" ry="7.1" fill="#3e4347"/><ellipse cx="49.6" cy="54.9" rx="3.6" ry="3.6" fill="#94989b"/><ellipse cx="18.6" cy="54.9" rx="7.2" ry="7.1" fill="#3e4347"/><path d="m18.6 51.3c-2 0-3.6 1.6-3.6 3.6 0 2 1.6 3.6 3.6 3.6 2 0 3.6-1.6 3.6-3.6 0-2-1.7-3.6-3.6-3.6" fill="#94989b"/><path fill="#3e4347" d="m2 20.9h3.1v17.4h-3.1z"/><path d="m4.7 53.7c-.3.2-1.5.8-1.5.8v-3.6c0 0 1.2.5 1.5.8.8.5.8 1.4 0 2" fill="#f5f5f5"/><path d="m4.1 41.8c-.2.2-1 .6-1 .6v-2.7c0 0 .8.4 1 .6.5.3.5 1 0 1.5" fill="#ed4c5c"/><path fill="#63686b" d="m14.9 20.9h7.5v4.5h-7.5z"/><path fill="#3e4347" d="m14.9 27.3h7.5v4.5h-7.5z"/><path fill="#63686b" d="m24.1 20.9h7.5v4.5h-7.5z"/><path fill="#3e4347" d="m24.1 27.3h7.5v4.5h-7.5z"/><path fill="#63686b" d="m33.5 20.9h7.5v4.5h-7.5z"/><path fill="#3e4347" d="m33.5 27.3h7.5v4.5h-7.5z"/><path fill="#63686b" d="m42.9 20.9h7.5v4.5h-7.5z"/><path fill="#3e4347" d="m42.9 27.3h7.5v4.5h-7.5z"/><path fill="#63686b" d="m51.7 20.9h7.5v4.5h-7.5z"/><g fill="#3e4347"><path d="m51.7 27.3h7.5v4.5h-7.5z"/><path d="m2 33.6h60v1h-60z"/></g><path fill="#f5f5f5" d="m18.5 43.8l-3.3-3.2v-4.5l3.3-3.2h4.7l3.3 3.2v4.5l-3.3 3.2z"/><path fill="#ed4c5c" d="m19.1 42.4l-2.5-2.3v-3.4l2.5-2.4h3.5l2.5 2.4v3.4l-2.5 2.3z"/><g fill="#94989b"><path d="m13.3 36.5h1.9v3.8h-1.9z"/><path d="m4 23.5h2.7v12.3h-2.7z"/></g><g fill="#3e4347"><path d="m6.7 20.9h6.3v10.9h-6.3z"/><path d="m2 43.6h4.7v6.4h-4.7z"/></g><g fill="#63686b"><path d="m2 44.5h3.8v.9h-3.8z"/><path d="m2 46.3h3.8v.9h-3.8z"/><path d="m2 48.2h3.8v.9h-3.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f68d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f68d.svg
index ce544c0..d2d2f59 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f68d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f68d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m11 56.974v3.02c0 1.106.901 2.01 2 2.01h4c1.1-.001 2-.905 2-2.01v-3.02h-8"/><path d="m45 56.974v3.02c0 1.106.9 2.01 1.999 2.01h4c1.099 0 2-.904 2-2.01v-3.02h-8"/></g><path fill="#c5d0d8" d="m56 53.958c0 1.665-1.343 3.02-2.999 3.02h-42c-1.657 0-3-1.351-3-3.02v-46.25c0-1.666 1.343-3.02 3-3.02h42c1.657 0 3 1.35 3 3.02v46.25"/><path fill="#428bc1" d="m56 53.958c0 1.665-1.343 3.02-2.999 3.02h-42c-1.657 0-3-1.351-3-3.02v-6.03h48v6.03"/><g fill="#3e4347"><path d="m54.688 35.497c0 1.666-1.344 3.02-3 3.02h-39.37c-1.657 0-3-1.35-3-3.02v-17.733c0-1.665 1.343-3.02 3-3.02h39.37c1.657 0 3 1.351 3 3.02v17.733"/><path d="m10.553 49.47h8.896v5.962h-8.896z"/></g><path fill="#f15744" d="m11.974 50.959h5.931v2.981h-5.931z"/><path fill="#3e4347" d="m44.552 49.47h8.897v5.962h-8.897z"/><path fill="#f15744" d="m45.973 50.959h5.933v2.981h-5.933z"/><path fill="#3e4347" d="m47.95 11.502c0 .985-.794 1.782-1.772 1.782h-28.354c-.979 0-1.772-.797-1.772-1.782v-3.562c0-.985.793-1.782 1.772-1.782h28.354c.979 0 1.772.797 1.772 1.782v3.562"/><path fill="#b2c1c0" d="m16.05 4.694c0-1.489.793-2.694 1.773-2.694h28.354c.979 0 1.772 1.205 1.772 2.694h-31.899"/><path fill="#3e4347" d="m22 43.39h19.999v11.05h-19.999z"/><g fill="#62727a"><path d="m22.909 44.4h18.18v1h-18.18z"/><path d="m12.538 34.27h18.18v1.01h-18.18z"/><path d="m27.717 38.513l-7.186-3.744.549-.314 7.574 4.058z"/><path d="m33.32 34.27h18.18v1.01h-18.18z"/><path d="m48.5 38.513l-7.19-3.744.554-.314 7.576 4.058z"/><path d="m22.909 46.41h18.18v1.01h-18.18z"/><path d="m22.909 48.42h18.18v1.01h-18.18z"/><path d="m22.909 50.43h18.18v1.01h-18.18z"/><path d="m22.909 52.44h18.18v1h-18.18z"/></g><g fill="#fff"><ellipse cx="52.22" cy="43.46" rx="2.899" ry="2.915"/><ellipse cx="45.954" cy="43.46" rx="2.9" ry="2.915"/><ellipse cx="18.05" cy="43.46" rx="2.899" ry="2.915"/><ellipse cx="11.78" cy="43.46" rx="2.9" ry="2.915"/></g><g fill="#62727a"><path d="m8 24.802c0 .556-.447 1-1 1h-2c-.553 0-1-.449-1-1v-8.04c0-.556.447-1 1-1h2c.553 0 1 .45 1 1v8.04"/><path d="m5.839 16.716l-.708-.706 5.739-5.773v1.422z"/><path d="m56 24.802c0 .556.448 1 1 1h2c.553 0 .999-.449.999-1v-8.04c0-.556-.446-1-.999-1h-2c-.552 0-1 .45-1 1v8.04"/><path d="m58.16 16.716l.709-.706-5.739-5.773v1.422z"/></g><g fill="#c7e755"><path d="m20.458 7.986v1.268l-.398.401-.133-.133v-1.735l.531.199m-.531 3.669v-1.734l.133-.133.397.4v1.268l-.53.199m2.521.468h-2.19c-.177-.045-.287-.156-.331-.334l.53-.2h1.791l.2.534m-.2-4.269h-1.784l-.53-.2c.044-.178.155-.289.332-.334h2.183l-.201.534m-.065 1.601l.265.266-.265.268h-1.726l-.266-.268.266-.266h1.726"/><path d="m23.642 7.986v1.268l-.397.401-.133-.133v-1.735l.53.199m0 2.202v1.401l-.199.534c-.178-.045-.288-.156-.332-.334v-1.868l.133-.133.398.4m1.592-2.334h-1.585l-.531-.2c.044-.178.154-.289.331-.334h1.983l-.198.534m-.464 1.667l-.266.266-.265-.266v-1.535h.53v1.535zm.597-.267v-1.4l.198-.534c.178.045.289.156.332.334v1.868l-.132.133-.398-.401m.398.534l.132.133v1.868c-.043.178-.154.289-.332.334l-.198-.534v-1.401l.398-.4"/><path d="m26.693 9.655l-.133-.133v-1.536l.332-.333.199.2v1.4l-.398.402m.398.533v1.401l-.199.2-.332-.333v-1.535l.133-.133.398.4m1.593-2.334h-1.458l-.266-.266.266-.268h1.458l.266.268-.266.266m.265 4l-.266.267h-1.458l-.266-.267.266-.267h1.458l.266.267m-.133-2.601v-1.4l.199-.2.332.333v1.535l-.133.133-.398-.401m.398.534l.133.133v1.535l-.332.333-.199-.2v-1.401l.398-.4"/><path d="m30.01 11.655v-1.734l.133-.133.397.4v1.268l-.53.199m2.321.468h-1.989c-.178-.045-.288-.156-.332-.334l.53-.2h1.593l.198.534m-.065-2.869v-1.4l.199-.534c.177.045.287.156.331.334v1.868l-.133.133-.397-.401m.397.534l.133.133v1.868c-.044.178-.154.289-.331.334l-.199-.534v-1.401l.397-.4"/><path d="m33.459 9.254v-1.4l.2-.534c.176.045.287.156.331.334v1.868l-.132.133-.399-.401m.399.467l.132.134v1.867c-.044.179-.155.29-.331.334l-.2-.534v-1.4l.399-.401"/><path d="m34.787 9.655l-.132-.133v-1.536l.331-.333.198.2v1.4l-.397.402m.398.533v1.401l-.198.2-.331-.333v-1.535l.132-.133.397.4m1.592-2.334h-1.459l-.266-.266.266-.268h1.459l.266.268-.266.266m.266 4l-.266.267h-1.459l-.266-.267.266-.267h1.459l.266.267m-.134-2.601v-1.4l.199-.2.332.333v1.535l-.132.133-.399-.401m.4.534l.132.133v1.535l-.332.333-.199-.2v-1.401l.399-.4"/><path d="m38.24 9.721l-.134-.133v-1.867c.044-.178.156-.29.334-.334l.197.534v1.401l-.397.399m.398.467v1.401l-.197.534c-.178-.045-.29-.156-.334-.334v-1.868l.134-.133.397.4m1.593-.867h-.465l-.994-1v-.4h.397l1.062 1.067v.333m.131 0v-1.401l.2-.534c.178.044.287.156.331.334v1.867l-.132.133-.399-.399m.4.467l.132.133v1.868c-.044.178-.153.289-.331.334l-.2-.534v-1.401l.399-.4"/><path d="m42.08 7.986v1.268l-.397.401-.134-.133v-1.735l.531.199m-.531 3.669v-1.734l.134-.133.397.4v1.268l-.531.199m2.521.468h-2.19c-.178-.045-.287-.156-.331-.334l.531-.2h1.79l.2.534m-.2-4.269h-1.783l-.531-.2c.044-.178.154-.289.332-.334h2.183l-.201.534m-.065 1.601l.266.266-.266.268h-1.725l-.266-.268.266-.266h1.725"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m11 57v3c0 1.1.9 2 2 2h4c1.1 0 2-.9 2-2v-3h-8"/><path d="m45 57v3c0 1.1.9 2 2 2h4c1.1 0 2-.9 2-2v-3h-8"/></g><path d="M56,54c0,1.7-1.3,3-3,3H11c-1.7,0-3-1.4-3-3V7.7c0-1.7,1.3-3,3-3h42c1.7,0,3,1.3,3,3V54z" fill="#c5d0d8"/><path d="m56 54c0 1.7-1.3 3-3 3h-42c-1.7 0-3-1.4-3-3v-6h48v6" fill="#428bc1"/><g fill="#3e4347"><path d="M54.7,35.5c0,1.7-1.3,3-3,3H12.3c-1.7,0-3-1.3-3-3V17.8c0-1.7,1.3-3,3-3h39.4c1.7,0,3,1.4,3,3V35.5z"/><path d="m10.6 49.5h8.9v6h-8.9z"/></g><path fill="#f15744" d="m12 51h5.9v3h-5.9z"/><path fill="#3e4347" d="m44.6 49.5h8.9v6h-8.9z"/><path fill="#f15744" d="m46 51h5.9v3h-5.9z"/><path d="m48 11.5c0 1-.8 1.8-1.8 1.8h-28.4c-1 0-1.8-.8-1.8-1.8v-3.6c0-1 .8-1.8 1.8-1.8h28.4c1 0 1.8.8 1.8 1.8v3.6" fill="#3e4347"/><path d="m16.1 4.7c0-1.5.8-2.7 1.8-2.7h28.4c1 0 1.8 1.2 1.8 2.7-.1 0-32 0-32 0" fill="#b2c1c0"/><path fill="#3e4347" d="m22 43.4h20v11.1h-20z"/><g fill="#62727a"><path d="m22.9 44.4h18.2v1h-18.2z"/><path d="m12.5 34.3h18.2v1h-18.2z"/><path d="m27.7 38.5l-7.2-3.7.6-.3 7.6 4z"/><path d="m33.3 34.3h18.2v1h-18.2z"/><path d="m48.5 38.5l-7.2-3.7.6-.3 7.5 4z"/><path d="m22.9 46.4h18.2v1h-18.2z"/><path d="m22.9 48.4h18.2v1h-18.2z"/><path d="m22.9 50.4h18.2v1h-18.2z"/><path d="m22.9 52.4h18.2v1h-18.2z"/></g><g fill="#fff"><ellipse cx="52.2" cy="43.5" rx="2.9" ry="2.9"/><ellipse cx="46" cy="43.5" rx="2.9" ry="2.9"/><ellipse cx="18" cy="43.5" rx="2.9" ry="2.9"/><ellipse cx="11.8" cy="43.5" rx="2.9" ry="2.9"/></g><g fill="#62727a"><path d="m8 24.8c0 .6-.4 1-1 1h-2c-.6 0-1-.4-1-1v-8c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v8"/><path d="m5.8 16.7l-.7-.7 5.8-5.8v1.5z"/><path d="m56 24.8c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v8"/><path d="m58.2 16.7l.7-.7-5.8-5.8v1.5z"/></g><g fill="#c7e755"><path d="m20.5 8v1.3l-.4.4-.1-.1v-1.8l.5.2m-.6 3.7v-1.8l.1-.1.4.4v1.3l-.5.2m2.5.4h-2.2c-.2 0-.3-.2-.3-.3l.5-.2h1.8l.2.5m-.2-4.2h-1.8l-.5-.2c0-.2.2-.3.3-.3h2.2l-.2.5m0 1.6l.3.3-.3.2h-1.7l-.3-.3.3-.3h1.7z"/><path d="m23.6 8v1.3l-.4.4-.1-.1v-1.8l.5.2m0 2.2v1.4l-.2.5c-.2 0-.3-.2-.3-.3v-1.9l.1-.1.4.4m1.6-2.3h-1.6l-.5-.2c0-.2.2-.3.3-.3h2l-.2.5m-.4 1.6l-.3.3-.3-.3v-1.5h.5l.1 1.5m.6-.2v-1.4l.2-.5c.2 0 .3.2.3.3v1.9l-.1.1-.4-.4m.4.5l.1.1v1.9c0 .2-.2.3-.3.3l-.2-.5v-1.4l.4-.4"/><path d="m26.7 9.7l-.1-.1v-1.6l.3-.3.2.2v1.4l-.4.4m.4.5v1.4l-.2.2-.3-.3v-1.6l.1-.1.4.4m1.6-2.3h-1.5l-.2-.3.3-.3h1.5l.2.3-.3.3m.2 4l-.3.3h-1.5l-.1-.3.3-.3h1.5l.1.3m-.1-2.6v-1.4l.2-.2.3.3v1.5l-.1.1-.4-.3m.4.5l.1.1v1.5l-.3.4-.2-.2v-1.4l.4-.4"/><path d="m30 11.7v-1.8l.1-.1.4.4v1.3l-.5.2m2.3.4h-2c-.2 0-.3-.2-.3-.3l.5-.2h1.6l.2.5m0-2.8v-1.4l.2-.5c.2 0 .3.2.3.3v1.9l-.1.1-.4-.4m.4.5l.1.1v1.9c0 .2-.2.3-.3.3l-.2-.5v-1.4l.4-.4"/><path d="m33.5 9.3v-1.4l.2-.5c.2 0 .3.2.3.3v1.9l-.1.1-.4-.4m.4.4l.1.2v1.9c0 .2-.2.3-.3.3l-.2-.5v-1.4l.4-.5"/><path d="m34.8 9.7l-.1-.1v-1.6l.3-.3.2.2v1.4l-.4.4m.4.5v1.4l-.2.2-.3-.3v-1.6l.1-.1.4.4m1.6-2.3h-1.5l-.3-.3.3-.3h1.5l.2.3-.2.3m.2 4l-.3.3h-1.5l-.3-.3.3-.3h1.5l.3.3m-.1-2.6v-1.4l.2-.2.3.3v1.5l-.1.1-.4-.3m.4.5l.1.1v1.5l-.3.3-.2-.2v-1.4l.4-.3"/><path d="m38.2 9.7l-.1-.1v-1.9c0-.2.2-.3.3-.3l.2.5v1.4l-.4.4m.4.5v1.4l-.2.5c-.2 0-.3-.2-.3-.3v-1.9l.1-.1.4.4m1.6-.9h-.5l-1-1v-.4h.4l1.1 1.1v.3m.2 0v-1.4l.2-.5c.2 0 .3.2.3.3v1.9l-.1.1-.4-.4m.4.5l.1.1v1.9c0 .2-.2.3-.3.3l-.2-.5v-1.4l.4-.4"/><path d="m42.1 8v1.3l-.4.4-.1-.1v-1.8l.5.2m-.5 3.7v-1.8l.1-.1.4.4v1.3l-.5.2m2.5.4h-2.2c-.2 0-.3-.2-.3-.3l.5-.2h1.8l.2.5m-.2-4.2h-1.8l-.5-.2c0-.2.2-.3.3-.3h2.2l-.2.5m-.1 1.6l.3.3-.3.2h-1.7l-.3-.3.3-.3h1.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f68e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f68e.svg
index 1f9d5c8..ec3e927 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f68e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f68e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c5d0d8" d="m61.998 37.584l-59.998 2.053.002-16.07c0-2.589 2.098-4.688 4.688-4.688h50.623c2.589 0 4.688 2.099 4.688 4.688l-.003 14.02"/><path fill="#3e4347" d="m60.12 39.459h-56.25l.002-14.02c0-2.589 2.098-4.688 4.688-4.688h46.873c2.589 0 4.688 2.099 4.688 4.688l-.003 14.02"/><path fill="#c5d0d8" d="m2 38.699v11.481h59.998v-13.534h-40.3z"/><path fill="#428bc1" d="m2 50.18h59.998v6.299h-59.998z"/><path fill="#fff" d="m2 46.18h59.998v1.986h-59.998z"/><g fill="#63686b"><path d="m49.584 46.25c-4.569 0-8.275 3.76-8.275 8.4 0 .629.069 1.244.199 1.834l16.15-.002c.128-.59.198-1.203.198-1.832 0-4.64-3.706-8.4-8.276-8.4"/><path d="m18.55 46.25c-4.569 0-8.273 3.76-8.273 8.4 0 .629.068 1.244.198 1.834l16.15-.002c.13-.59.198-1.203.198-1.832-.001-4.64-3.707-8.4-8.277-8.4"/></g><path fill="#3e4347" d="m49.584 47.3c-3.998 0-7.241 3.287-7.241 7.35 0 4.059 3.243 7.35 7.241 7.35 3.999 0 7.241-3.291 7.241-7.35 0-4.063-3.242-7.35-7.241-7.35"/><ellipse fill="#94989b" cx="49.584" cy="54.649" rx="3.619" ry="3.675"/><path fill="#3e4347" d="m18.55 47.3c-3.998 0-7.239 3.287-7.239 7.35 0 4.059 3.241 7.35 7.239 7.35 4 0 7.242-3.291 7.242-7.35 0-4.063-3.241-7.35-7.242-7.35"/><path fill="#94989b" d="m18.55 50.975c-1.996 0-3.619 1.646-3.619 3.676 0 2.027 1.624 3.674 3.619 3.674 1.998 0 3.622-1.646 3.622-3.674 0-2.03-1.624-3.676-3.622-3.676"/><path fill="#3e4347" d="m8.383 39.564h-6.383v5.866l6.383-1.25z"/><g fill="#fff"><path d="m5.056 42.496c0 1.297-.85 2.348-1.899 2.348-.822 0-.796 0-.796-2.348 0-2.354-.028-2.354.796-2.354 1.05.001 1.899 1.053 1.899 2.354"/><path d="m7.951 42.1c0 1.086-.712 1.963-1.588 1.963-.685 0-.663 0-.663-1.963s-.024-1.963.663-1.963c.876.001 1.588.879 1.588 1.963"/></g><path fill="#3e4347" d="m2 52.17h4.825v1.969h-4.825z"/><path fill="#c5d0d8" d="m16.531 20.251h1.877v17.792h-1.877z"/><g fill="#3e4347"><path d="m15.595 20.75h.938v7.108h-.938z"/><path d="m18.407 20.75h.938v7.108h-.938z"/></g><path fill="#c5d0d8" d="m31.06 20.1h1.875v17.792h-1.875z"/><g fill="#3e4347"><path d="m30.13 20.75h.938v7.108h-.938z"/><path d="m32.938 20.75h.938v7.108h-.938z"/></g><path fill="#c5d0d8" d="m45.594 20.1h1.875v17.792h-1.875z"/><g fill="#3e4347"><path d="m44.657 20.75h.938v7.108h-.938z"/><path d="m47.47 20.75h.938v7.108h-.938z"/><path d="m25.437 15.13h13.12v3.75h-13.12z"/><path d="M 2,2 H61.998 V3.875 H2 z"/><path transform="matrix(.8519.5237-.5237.8519 11.04-15.544)" d="m32.574 6.616h.86v10.251h-.86z"/><path transform="matrix(.8517.524-.524.8517 12.684-18.39)" d="m37.995 8.092h1.682v10.251h-1.682z"/><path transform="matrix(.7881-.6155.6155.7881 2.744 23.641)" d="m35.28 1.954h.86v11.76h-.86z"/><path transform="matrix(.7879-.6158.6158.7879 4.34 25.21)" d="m37.874 1.827h1.796v8.958h-1.796z"/></g><path fill="#f15744" d="m62 45.609l-2.316.004v-2.863l2.316-.002z"/><path fill="#ffd45c" d="m59.684 39.887l2.316-.938v3.801h-2.316z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 37.6l-60 2v-16.1c0-2.6 2.1-4.7 4.7-4.7h50.6c2.6 0 4.7 2.1 4.7 4.7v14.1" fill="#c5d0d8"/><path d="m60.1 39.5h-56.2v-14c0-2.6 2.1-4.7 4.7-4.7h46.9c2.6 0 4.7 2.1 4.7 4.7l-.1 14" fill="#3e4347"/><path fill="#c5d0d8" d="m2 38.7v11.5h60v-13.6h-40.3z"/><path fill="#428bc1" d="m2 50.2h60v6.3h-60z"/><path fill="#fff" d="m2 46.2h60v2h-60z"/><g fill="#63686b"><path d="m49.6 46.2c-4.6 0-8.3 3.8-8.3 8.4 0 .6.1 1.2.2 1.8h16.2c.1-.6.2-1.2.2-1.8 0-4.6-3.7-8.4-8.3-8.4"/><path d="m18.5 46.2c-4.6 0-8.3 3.8-8.3 8.4 0 .6.1 1.2.2 1.8h16.2c.1-.6.2-1.2.2-1.8 0-4.6-3.7-8.4-8.3-8.4"/></g><path d="m49.6 47.3c-4 0-7.2 3.3-7.2 7.3 0 4.1 3.2 7.3 7.2 7.3 4 0 7.2-3.3 7.2-7.3 0-4-3.2-7.3-7.2-7.3" fill="#3e4347"/><ellipse cx="49.6" cy="54.6" rx="3.6" ry="3.7" fill="#94989b"/><path d="m18.5 47.3c-4 0-7.2 3.3-7.2 7.3 0 4.1 3.2 7.3 7.2 7.3 4 0 7.2-3.3 7.2-7.3.1-4-3.1-7.3-7.2-7.3" fill="#3e4347"/><path d="m18.5 51c-2 0-3.6 1.6-3.6 3.7 0 2 1.6 3.7 3.6 3.7 2 0 3.6-1.6 3.6-3.7.1-2.1-1.6-3.7-3.6-3.7" fill="#94989b"/><path fill="#3e4347" d="m8.4 39.6h-6.4v5.8l6.4-1.2z"/><g fill="#fff"><path d="m5.1 42.5c0 1.3-.8 2.3-1.9 2.3-.8 0-.8 0-.8-2.3 0-2.4 0-2.4.8-2.4 1 0 1.9 1.1 1.9 2.4"/><path d="m8 42.1c0 1.1-.7 2-1.6 2-.7 0-.7 0-.7-2s0-2 .7-2c.8 0 1.6.9 1.6 2"/></g><path fill="#3e4347" d="m2 52.2h4.8v2h-4.8z"/><path fill="#c5d0d8" d="m16.5 20.3h1.9v17.8h-1.9z"/><g fill="#3e4347"><path d="m15.6 20.8h.9v7.1h-.9z"/><path d="m18.4 20.8h.9v7.1h-.9z"/></g><path fill="#c5d0d8" d="m31.1 20.1h1.9v17.8h-1.9z"/><g fill="#3e4347"><path d="m30.1 20.8h.9v7.1h-.9z"/><path d="m32.9 20.8h.9v7.1h-.9z"/></g><path fill="#c5d0d8" d="m45.6 20.1h1.9v17.8h-1.9z"/><g fill="#3e4347"><path d="m44.7 20.8h.9v7.1h-.9z"/><path d="m47.5 20.8h.9v7.1h-.9z"/><path d="m25.4 15.1h13.1v3.8h-13.1z"/><path d="m2 2h60v1.9h-60z"/><path transform="matrix(.5237-.8519.8519.5237 5.7151 33.7079)" d="m27.9 11.3h10.3v.9h-10.3z"/><path transform="matrix(.524-.8517.8517.524 7.2275 39.3674)" d="m33.7 12.4h10.3v1.7h-10.3z"/><path transform="matrix(.7881-.6155.6155.7881 2.744 23.6406)" d="m35.3 2h.9v11.8h-.9z"/><path transform="matrix(.7879-.6158.6158.7879 4.3402 25.2133)" d="m37.9 1.8h1.8v9h-1.8z"/></g><path fill="#f15744" d="m62 45.6h-2.3v-2.8l2.3-.1z"/><path fill="#ffd45c" d="m59.7 39.9l2.3-1v3.9h-2.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f68f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f68f.svg
index 857f839..3e9cb1d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f68f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f68f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m26 26h4v38h-4z"/><path fill="#42ade2" d="m31 30h19v6h-19z"/><path fill="#fc97b2" d="m31 36h19v6h-19z"/><path fill="#42ade2" d="m14 30h11v6h-11z"/><path fill="#fc97b2" d="m14 36h11v6h-11z"/><path fill="#42ade2" d="m31 42h19v6h-19z"/><g fill="#699635"><path d="m26 48h4v2h-4z"/><path d="m25 35h6v2h-6z"/><path d="m25 41h6v2h-6z"/></g><path fill="#42ade2" d="m28 0c-7.732 0-14 6.268-14 14 0 3.866 1.567 7.366 4.101 9.9l9.899 1 9.901-1v.001c2.533-2.534 4.1-6.03 4.1-9.9-.001-7.733-6.269-14-14-14"/><path fill="#ff717f" d="m37.9 23.9l-2.828-2.828c-3.901 3.898-10.245 3.898-14.14 0l-2.828 2.828c2.223 2.224 5.01 3.526 7.899 3.942v2.16h4v-2.16c2.89-.416 5.676-1.718 7.9-3.942"/><path fill="#fff" d="m34 15c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8"/><g fill="#42ade2"><path d="m32 10c0 .55-.449 1-1 1h-6c-.549 0-1-.45-1-1v-2c0-.55.451-1 1-1h6c.551 0 1 .45 1 1v2"/><circle cx="25" cy="14" r="1"/><circle cx="31" cy="14" r="1"/></g><g fill="#fff"><path d="m31 16v3c0 .55.451 1 1 1 .551 0 1-.45 1-1v-3h-2"/><path d="m23 16v3c0 .55.451 1 1 1 .551 0 1-.45 1-1v-3h-2"/></g><g fill="#699635"><path d="m25 42h6v6h-6z"/><path d="m25 36h6v6h-6z"/><path d="m25 30h6v6h-6z"/></g><g fill="#83bf4f"><path d="m27 30h2v5h-2z"/><path d="m27 37h2v4h-2z"/><path d="m27 43h2v5h-2z"/></g><g fill="#fff"><path d="m15.941 31.562h1.625v2.964h-1.625z"/><path d="m19.515 31.562h3.313v2.964h-3.313z"/><path d="m15.941 37.501h3.313v2.999h-3.313z"/><path d="m21.17 37.502h1.656v2.998h-1.656z"/><path d="m42.57 31.531h6.158v1h-6.158z"/><path d="m35.2 31.531h6.158v1h-6.158z"/><path d="m38.633 33.525h10.1v1h-10.1z"/><path d="m37.414 43.504h11.314v1h-11.314z"/><path d="m45.03 45.498h3.701v1h-3.701z"/><path d="m33.25 45.498h10.598v1h-10.598z"/><path d="m41.498 37.503h7.23v1h-7.23z"/><path d="m32.927 37.503h7.231v1h-7.231z"/><path d="m44.961 39.498h3.768v1h-3.768z"/><path d="m40.12 39.498h3.77v1h-3.77z"/><path d="m35.463 39.498h3.77v1h-3.77z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m26 26h4v38h-4z"/><path fill="#42ade2" d="m31 30h19v6h-19z"/><path fill="#fc97b2" d="m31 36h19v6h-19z"/><path fill="#42ade2" d="m14 30h11v6h-11z"/><path fill="#fc97b2" d="m14 36h11v6h-11z"/><path fill="#42ade2" d="m31 42h19v6h-19z"/><g fill="#699635"><path d="m26 48h4v2h-4z"/><path d="m25 35h6v2h-6z"/><path d="m25 41h6v2h-6z"/></g><path d="m28 0c-7.7 0-14 6.3-14 14 0 3.9 1.6 7.4 4.1 9.9l9.9 1 9.9-1c2.5-2.5 4.1-6 4.1-9.9 0-7.7-6.3-14-14-14" fill="#42ade2"/><path d="m37.9 23.9l-2.8-2.8c-3.9 3.9-10.2 3.9-14.1 0l-2.8 2.8c2.2 2.2 5 3.5 7.9 3.9v2.2h4v-2.2c2.8-.4 5.6-1.7 7.8-3.9" fill="#ff717f"/><path d="m34 15c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8" fill="#fff"/><g fill="#42ade2"><path d="m32 10c0 .6-.4 1-1 1h-6c-.5 0-1-.4-1-1v-2c0-.6.5-1 1-1h6c.6 0 1 .4 1 1v2"/><circle cx="25" cy="14" r="1"/><circle cx="31" cy="14" r="1"/></g><g fill="#fff"><path d="m31 16v3c0 .5.5 1 1 1 .6 0 1-.5 1-1v-3h-2"/><path d="m23 16v3c0 .5.5 1 1 1 .6 0 1-.5 1-1v-3h-2"/></g><g fill="#699635"><path d="m25 42h6v6h-6z"/><path d="m25 36h6v6h-6z"/><path d="m25 30h6v6h-6z"/></g><g fill="#83bf4f"><path d="m27 30h2v5h-2z"/><path d="m27 37h2v4h-2z"/><path d="m27 43h2v5h-2z"/></g><g fill="#fff"><path d="m15.9 31.6h1.6v3h-1.6z"/><path d="m19.5 31.6h3.3v3h-3.3z"/><path d="m15.9 37.5h3.3v3h-3.3z"/><path d="m21.2 37.5h1.7v3h-1.7z"/><path d="m42.6 31.5h6.2v1h-6.2z"/><path d="m35.2 31.5h6.2v1h-6.2z"/><path d="m38.6 33.5h10.1v1h-10.1z"/><path d="m37.4 43.5h11.3v1h-11.3z"/><path d="m45 45.5h3.7v1h-3.7z"/><path d="m33.3 45.5h10.6v1h-10.6z"/><path d="m41.5 37.5h7.2v1h-7.2z"/><path d="m32.9 37.5h7.2v1h-7.2z"/><path d="m45 39.5h3.8v1h-3.8z"/><path d="m40.1 39.5h3.8v1h-3.8z"/><path d="m35.5 39.5h3.8v1h-3.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f690.svg b/build/js/jsxc/lib/emojione/assets/svg/1f690.svg
index 887e476..5357258 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f690.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f690.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#dae3ea" d="m62 51.637c0 .639.082 3.354-3.567 3.354 0 0-40.896 0-52.935 0-.643 0-3.378-.463-3.477-3.176 0 0 0-8.596 0-14.686 0-8.135 3.584-20.13 15.1-20.13 13.328 0 40.11 0 40.11 0 4.771 0 4.771 3.218 4.771 8.435v26.2"/><path fill="#c5d0d8" d="m62 49.762c0 2.514 0 5.229-3.567 5.229 0 0-40.874 0-52.915 0-.641 0-3.376-.463-3.477-3.176l-.041-3.141h60v1.088"/><g fill="#3e4347"><path d="m7.863 35.994h4.541c3.451-3.983 8.157-3.982 8.157-3.982v-12.365c-7.05 0-12.698 3.711-12.698 16.347"/><path d="m2.02 38.453h2.946c0 0-.337-13.78 5.167-17.749h-2.319c0 0-6.214 4.826-5.794 17.749"/><path d="m23.413 19.646h35.11v12.366h-35.11z"/><path d="m6.375 51.832c0 1.1-.732 1.994-1.637 1.994-.707 0-.683 0-.683-1.994s-.024-1.994.683-1.994c.904 0 1.637.891 1.637 1.994"/></g><path fill="#fff" d="m5.866 51.832c0 .742-.495 1.348-1.106 1.348-.478 0-.461 0-.461-1.348s-.017-1.348.461-1.348c.611 0 1.106.604 1.106 1.348"/><path fill="#f15744" d="m62 45.26l-2.316-2.81v-2.862l2.316-.004z"/><path fill="#ffd45c" d="m59.684 36.725l2.316-2.815v5.676h-2.316z"/><path fill="#3e4347" d="m10.577 45.543h-5.75v-3.02l5.75-.918z"/><path fill="#fff" d="m9.132 45.09h-4.092v-2.149l4.092-.651z"/><path fill="#62727a" d="M62,46.555c0,0-20.189,0-26.75,0c-4.307,0-5.625,2.119-5.625,2.119H62V46.555z"/><path fill="#c5d0d8" d="m60.21 54.719c0-5.176-4.198-9.375-9.375-9.375-5.176 0-9.375 4.199-9.375 9.375 0 2.5 18.75 2.5 18.75 0"/><path fill="#3e4347" d="m57.913 54.92c0-3.908-3.173-7.08-7.079-7.08-3.907 0-7.08 3.168-7.08 7.08s3.17 7.08 7.08 7.08c3.906 0 7.079-3.172 7.079-7.08"/><circle fill="#dae3ea" cx="50.834" cy="54.92" r="4.045"/><g fill="#3e4347"><circle cx="50.834" cy="50.877" r="1.012"/><circle cx="47.33" cy="52.899" r="1.01"/><circle cx="47.33" cy="56.944" r="1.01"/><circle cx="50.834" cy="58.967" r="1.012"/><circle cx="54.34" cy="56.943" r="1.012"/><path d="m54.844 53.773c-.484.279-1.104.113-1.382-.369s-.113-1.102.371-1.381c.483-.279 1.103-.115 1.381.371.278.483.11 1.102-.37 1.379"/></g><circle fill="#62727a" cx="50.834" cy="54.92" r="2.02"/><path fill="#c5d0d8" d="m28.27 54.719c0-5.176-4.201-9.375-9.375-9.375-5.178 0-9.375 4.199-9.375 9.375 0 2.5 18.75 2.5 18.75 0"/><path fill="#3e4347" d="m25.976 54.92c0-3.908-3.171-7.08-7.08-7.08-3.909 0-7.08 3.168-7.08 7.08s3.168 7.08 7.08 7.08c3.906 0 7.08-3.172 7.08-7.08"/><path fill="#dae3ea" d="m22.942 54.92c0-2.23-1.813-4.045-4.04-4.045-2.234 0-4.045 1.814-4.045 4.045 0 2.234 1.813 4.045 4.045 4.045 2.23 0 4.04-1.811 4.04-4.045"/><g fill="#3e4347"><circle cx="18.899" cy="50.877" r="1.012"/><circle cx="15.396" cy="52.899" r="1.01"/><path d="m14.889 56.07c.487-.277 1.104-.113 1.384.371.278.482.114 1.102-.372 1.381-.483.279-1.102.113-1.382-.371-.275-.482-.11-1.101.37-1.381"/><circle cx="18.899" cy="58.967" r="1.012"/><circle cx="22.403" cy="56.943" r="1.012"/><circle cx="22.403" cy="52.899" r="1.01"/></g><g fill="#62727a"><circle cx="18.899" cy="54.92" r="2.02"/><path d="m39.23 36.27h15v.938h-15z"/><path d="m25.23 37.59c0 .26-.208.469-.469.469-.258 0-.469-.209-.469-.469v-2.813c0-.258.211-.469.469-.469.26 0 .469.211.469.469v2.813"/><path d="m17.493 36.463c-.258.002-.469-.207-.469-.469 0-.258.21-.469.469-.469h2.813c.258 0 .469.211.469.469 0 .262-.21.469-.469.469h-2.813"/><path d="m2.02 41.625h1.869v5.604h-1.869z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 51.6c0 .6.1 3.4-3.6 3.4 0 0-40.9 0-52.9 0-.6 0-3.4-.5-3.5-3.2 0 0 0-8.6 0-14.7 0-8.1 3.6-20.1 15.1-20.1 13.3 0 40.1 0 40.1 0 4.8 0 4.8 3.2 4.8 8.4v26.2" fill="#dae3ea"/><path d="m62 49.8c0 2.5 0 5.2-3.6 5.2 0 0-40.9 0-52.9 0-.6 0-3.4-.5-3.5-3.2v-3.1h60v1.1" fill="#c5d0d8"/><g fill="#3e4347"><path d="m7.9 36h4.5c3.5-4 8.2-4 8.2-4v-12.4c-7.1 0-12.7 3.8-12.7 16.4"/><path d="m2 38.5h3c0 0-.3-13.8 5.2-17.7h-2.4c0-.1-6.2 4.7-5.8 17.7"/><path d="m23.4 19.6h35.1v12.4h-35.1z"/><path d="m6.4 51.8c0 1.1-.7 2-1.6 2-.7 0-.7 0-.7-2s0-2 .7-2c.8 0 1.6.9 1.6 2"/></g><path d="m5.9 51.8c0 .7-.5 1.3-1.1 1.3-.5 0-.5 0-.5-1.3s0-1.3.5-1.3c.6 0 1.1.6 1.1 1.3" fill="#fff"/><path fill="#f15744" d="m62 45.3l-2.3-2.9v-2.8h2.3z"/><path fill="#ffd45c" d="m59.7 36.7l2.3-2.8v5.7h-2.3z"/><path fill="#3e4347" d="m10.6 45.5h-5.8v-3l5.8-.9z"/><path fill="#fff" d="m9.1 45.1h-4.1v-2.2l4.1-.6z"/><path d="m62 46.6c0 0-20.2 0-26.8 0-4.3 0-5.6 2.1-5.6 2.1h32.4v-2.1" fill="#62727a"/><path d="m60.2 54.7c0-5.2-4.2-9.4-9.4-9.4-5.2 0-9.4 4.2-9.4 9.4.1 2.5 18.8 2.5 18.8 0" fill="#c5d0d8"/><path d="m57.9 54.9c0-3.9-3.2-7.1-7.1-7.1-3.9 0-7.1 3.2-7.1 7.1s3.2 7.1 7.1 7.1c3.9 0 7.1-3.2 7.1-7.1" fill="#3e4347"/><circle cx="50.8" cy="54.9" r="4" fill="#dae3ea"/><g fill="#3e4347"><circle cx="50.8" cy="50.9" r="1"/><circle cx="47.3" cy="52.9" r="1"/><circle cx="47.3" cy="56.9" r="1"/><circle cx="50.8" cy="59" r="1"/><circle cx="54.3" cy="56.9" r="1"/><path d="m54.8 53.8c-.5.3-1.1.1-1.4-.4s-.1-1.1.4-1.4c.5-.3 1.1-.1 1.4.4.3.5.1 1.1-.4 1.4"/></g><circle cx="50.8" cy="54.9" r="2" fill="#62727a"/><path d="m28.3 54.7c0-5.2-4.2-9.4-9.4-9.4-5.2 0-9.4 4.2-9.4 9.4 0 2.5 18.8 2.5 18.8 0" fill="#c5d0d8"/><path d="m26 54.9c0-3.9-3.2-7.1-7.1-7.1-3.9 0-7.1 3.2-7.1 7.1s3.2 7.1 7.1 7.1c3.9 0 7.1-3.2 7.1-7.1" fill="#3e4347"/><path d="m22.9 54.9c0-2.2-1.8-4-4-4-2.2 0-4 1.8-4 4 0 2.2 1.8 4 4 4 2.2.1 4-1.7 4-4" fill="#dae3ea"/><g fill="#3e4347"><circle cx="18.9" cy="50.9" r="1"/><circle cx="15.4" cy="52.9" r="1"/><path d="m14.9 56.1c.5-.3 1.1-.1 1.4.4.3.5.1 1.1-.4 1.4-.5.3-1.1.1-1.4-.4-.3-.5-.1-1.2.4-1.4"/><circle cx="18.9" cy="59" r="1"/><circle cx="22.4" cy="56.9" r="1"/><circle cx="22.4" cy="52.9" r="1"/></g><g fill="#62727a"><circle cx="18.9" cy="54.9" r="2"/><path d="m39.2 36.3h15v.9h-15z"/><path d="m25.2 37.6c0 .3-.2.5-.5.5-.3 0-.5-.2-.5-.5v-2.8c0-.3.2-.5.5-.5.3 0 .5.2.5.5v2.8"/><path d="m17.5 36.5c-.3 0-.5-.2-.5-.5 0-.3.2-.5.5-.5h2.8c.3 0 .5.2.5.5 0 .3-.2.5-.5.5h-2.8"/><path d="m2 41.6h1.9v5.6h-1.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f691.svg b/build/js/jsxc/lib/emojione/assets/svg/1f691.svg
index 93a6584..2bcbcff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f691.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f691.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b3bdc4" d="m29.19 12.781h9.375v4.688h-9.375z"/><path fill="#e1e8ed" d="m4.591 34.421c-.489.577-.716 3.204-.716 3.204v15h54.871c0 0 3.254-9.352 3.254-30 0-7.342-4.574-7.5-20.625-7.5s-20 1.513-23.438 4.688c-3.162 2.923-9.596 10.194-13.346 14.608"/><path fill="#3e4347" d="m19.514 20.75l-11.719 12.187h19.517v-15.303c-3.579 0-6.386 1.705-7.798 3.116"/><path fill="#b3bdc4" d="m62 54.5c0 1.031-.844 1.875-1.875 1.875h-56.25c-1.031 0-1.875-.844-1.875-1.875 0-1.031.844-1.875 1.875-1.875h56.25c1.031 0 1.875.844 1.875 1.875"/><path fill="#f15744" d="m33.875 6.688c-1.555 0-2.598 1.274-2.813 2.813-.119.845-.938 3.281-.938 3.281h7.5c0 0-.82-2.436-.938-3.281-.214-1.539-1.258-2.813-2.811-2.813"/><path fill="#ffc7ce" d="m32 9.5c0 1.036.839 1.875 1.875 1.875v-3.75c-1.036 0-1.875.839-1.875 1.875"/><g fill="#f15744"><path d="m40.04 2l-2.88 4.688 4.684-3.282z"/><path d="m27.708 2l2.886 4.688-4.688-3.282z"/><path d="m38.563 8.563l4.687-1.875.94 1.875z"/><path d="m29.19 8.563l-4.69-1.875-.937 1.875z"/></g><path fill="#62727a" d="m6.375 46.688v-7.188c0-1.031-.842-1.875-1.875-1.875h-.625v3.75 7.188h.625c1.032 0 1.875-.844 1.875-1.875"/><g fill="#f15744"><path d="m61.44 36.607h-28.503l-3.77 3.83h-22.793v3.75h24.688l3.691-3.672h26.296c.14-1.206.272-2.507.391-3.908"/><path d="m52.625 25.906c0-.516-.423-.938-.938-.938h-3.281c-.517 0-.938-.422-.938-.938v-3.28c0-.516-.423-.938-.938-.938h-.938c-.517 0-.938.422-.938.938v3.281c0 .516-.423.938-.938.938h-3.281c-.517 0-.938.422-.938.938v.938c0 .516.421.937.938.937h3.281c.515 0 .938.423.938.938v3.28c0 .517.421.938.938.938h.938c.515 0 .938-.421.938-.938v-3.281c0-.515.421-.938.938-.938h3.281c.515 0 .938-.421.938-.937v-.938"/></g><path fill="#3e4347" d="m56.38 54.5c0-4.143-3.362-7.498-7.501-7.498-4.141 0-7.499 3.355-7.499 7.498 0 4.141 3.358 7.502 7.499 7.502 4.139 0 7.501-3.361 7.501-7.502"/><path fill="#dae3ea" d="m48.874 50.21c2.366 0 4.286 1.92 4.286 4.285 0 2.367-1.92 4.287-4.286 4.287-2.364 0-4.284-1.92-4.284-4.287 0-2.365 1.92-4.285 4.284-4.285"/><g fill="#3e4347"><circle cx="48.874" cy="50.21" r="1.071"/><circle cx="45.16" cy="52.36" r="1.071"/><circle cx="45.16" cy="56.643" r="1.07"/><circle cx="48.874" cy="58.785" r="1.072"/><circle cx="52.588" cy="56.642" r="1.071"/><path d="m53.12 53.28c-.514.295-1.17.119-1.465-.391-.295-.514-.12-1.168.394-1.463.513-.297 1.168-.123 1.463.391s.116 1.168-.392 1.463"/></g><circle fill="#62727a" cx="48.874" cy="54.5" r="2.143"/><path fill="#3e4347" d="m22.625 54.5c0-4.143-3.361-7.5-7.5-7.5-4.143 0-7.5 3.357-7.5 7.5 0 4.141 3.357 7.502 7.5 7.502 4.139 0 7.5-3.361 7.5-7.502"/><path fill="#dae3ea" d="m19.41 54.5c0-2.365-1.921-4.285-4.285-4.285-2.368 0-4.287 1.92-4.287 4.285 0 2.367 1.921 4.287 4.287 4.287 2.364 0 4.285-1.92 4.285-4.287"/><g fill="#3e4347"><circle cx="15.13" cy="50.21" r="1.072"/><circle cx="11.413" cy="52.36" r="1.071"/><path d="m10.875 55.715c.517-.295 1.17-.121 1.468.393.295.512.12 1.168-.395 1.463-.512.297-1.168.121-1.465-.393-.291-.512-.116-1.168.392-1.463"/><circle cx="15.13" cy="58.786" r="1.071"/><circle cx="18.839" cy="56.643" r="1.072"/><circle cx="18.839" cy="52.35" r="1.07"/></g><circle fill="#62727a" cx="15.13" cy="54.5" r="2.143"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b3bdc4" d="m29.2 12.8h9.4v4.7h-9.4z"/><path d="m4.6 34.4c-.5.6-.7 3.2-.7 3.2v15h54.9c0 0 3.3-9.4 3.3-30 0-7.3-4.6-7.5-20.6-7.5s-20 1.5-23.4 4.7c-3.3 2.9-9.8 10.2-13.5 14.6" fill="#e1e8ed"/><path d="m19.5 20.8l-11.7 12.1h19.5v-15.3c-3.6 0-6.4 1.7-7.8 3.2" fill="#3e4347"/><path d="m62 54.5c0 1-.8 1.9-1.9 1.9h-56.2c-1 0-1.9-.8-1.9-1.9 0-1 .8-1.9 1.9-1.9h56.2c1.1 0 1.9.9 1.9 1.9" fill="#b3bdc4"/><path d="m33.9 6.7c-1.6 0-2.6 1.3-2.8 2.8-.1.8-.9 3.3-.9 3.3h7.5c0 0-.8-2.4-.9-3.3-.3-1.5-1.4-2.8-2.9-2.8" fill="#f15744"/><path d="m32 9.5c0 1 .8 1.9 1.9 1.9v-3.8c-1.1 0-1.9.9-1.9 1.9" fill="#ffc7ce"/><g fill="#f15744"><path d="m40 2l-2.8 4.7 4.6-3.3z"/><path d="m27.7 2l2.9 4.7-4.7-3.3z"/><path d="m38.6 8.6l4.6-1.9 1 1.9z"/><path d="m29.2 8.6l-4.7-1.9-.9 1.9z"/></g><path d="m6.4 46.7v-7.2c0-1-.8-1.9-1.9-1.9h-.6v3.8 7.2h.6c1 0 1.9-.9 1.9-1.9" fill="#62727a"/><g fill="#f15744"><path d="m61.4 36.6h-28.5l-3.8 3.8h-22.7v3.8h24.7l3.7-3.7h26.2c.2-1.2.3-2.5.4-3.9"/><path d="m52.6 25.9c0-.5-.4-.9-.9-.9h-3.3c-.5 0-.9-.4-.9-.9v-3.3c0-.5-.4-.9-.9-.9h-.9c-.5 0-.9.4-.9.9v3.2c0 .5-.4.9-.9.9h-3.3c-.5 0-.9.4-.9.9v.9c0 .5.4.9.9.9h3.3c.5 0 .9.4.9.9v3.5c0 .5.4.9.9.9h.9c.5 0 .9-.4.9-.9v-3.3c0-.5.4-.9.9-.9h3.3c.5 0 .9-.4.9-.9v-1"/></g><path d="m56.4 54.5c0-4.1-3.4-7.5-7.5-7.5-4.1 0-7.5 3.4-7.5 7.5 0 4.1 3.4 7.5 7.5 7.5 4.1 0 7.5-3.4 7.5-7.5" fill="#3e4347"/><path d="m48.9 50.2c2.4 0 4.3 1.9 4.3 4.3 0 2.4-1.9 4.3-4.3 4.3-2.4 0-4.3-1.9-4.3-4.3 0-2.4 1.9-4.3 4.3-4.3" fill="#dae3ea"/><g fill="#3e4347"><circle cx="48.9" cy="50.2" r="1.1"/><circle cx="45.2" cy="52.4" r="1.1"/><circle cx="45.2" cy="56.6" r="1.1"/><circle cx="48.9" cy="58.8" r="1.1"/><circle cx="52.6" cy="56.6" r="1.1"/><path d="m53.1 53.3c-.5.3-1.2.1-1.5-.4-.3-.5-.1-1.2.4-1.5.5-.3 1.2-.1 1.5.4s.1 1.2-.4 1.5"/></g><circle cx="48.9" cy="54.5" r="2.1" fill="#62727a"/><path d="m22.6 54.5c0-4.1-3.4-7.5-7.5-7.5-4.1 0-7.5 3.4-7.5 7.5 0 4.1 3.4 7.5 7.5 7.5 4.2 0 7.5-3.4 7.5-7.5" fill="#3e4347"/><path d="m19.4 54.5c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3 0 2.4 1.9 4.3 4.3 4.3 2.4 0 4.3-1.9 4.3-4.3" fill="#dae3ea"/><g fill="#3e4347"><circle cx="15.1" cy="50.2" r="1.1"/><circle cx="11.4" cy="52.4" r="1.1"/><path d="m10.9 55.7c.5-.3 1.2-.1 1.5.4.3.5.1 1.2-.4 1.5-.5.3-1.2.1-1.5-.4-.3-.5-.1-1.2.4-1.5"/><circle cx="15.1" cy="58.8" r="1.1"/><circle cx="18.8" cy="56.6" r="1.1"/><circle cx="18.8" cy="52.4" r="1.1"/></g><circle cx="15.1" cy="54.5" r="2.1" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f692.svg b/build/js/jsxc/lib/emojione/assets/svg/1f692.svg
index fa92ffa..d82b254 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f692.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f692.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f14e3a"><path d="m18.936 23h-11.01c-1.094 0-1.988.9-1.988 2s.895 2 1.988 2h11.01v-4"/><path d="m61.936 33l-6-6h-26c-1.1 0-2 .9-2 2v22h34v-18"/><path d="m19.936 23h-8.174c-1.111 0-1.656.89-1.826 1.977l-2.901 11.02-1.553 1.105c-.949.577-1.947 1.784-2.115 2.871l-1.408 9.05c-.168 1.087.604 1.977 1.715 1.977h18.262v-26c0-1.1-.901-2-2-2"/></g><g fill="#3e4347"><path d="m11.283 33.01l.742-5.02c.08-.545-.32-.99-.891-.99h-1.988l-2.111 9"/><path d="m19.936 32c-.006.566-.438 1.312-.896 1.467l-4.385 1.495c-.457.155-.773-.177-.709-.739l.727-6.199c.063-.564.503-1.024.977-1.024h3.441c.471 0 .85.434.844 1v4"/></g><g fill="#e1e8ed"><path d="m15.781 49c1.277.705 2.346 1.739 3.076 3h.078 3v-3h-6.154"/><path d="m0 51v4c0 1.1.887 2 1.969 2h1.969.068c-.041-.328-.068-.66-.068-1 0-3.01 1.641-5.636 4.063-7h-6.03c-1.082 0-1.969.9-1.969 2"/><path d="m20.936 52c-1.516-3.53-4.973-6-9-6s-7.482 2.47-9 6h18"/></g><circle fill="#3e4347" cx="11.936" cy="56" r="8"/><circle fill="#b2c1c0" cx="11.936" cy="56" r="5"/><g fill="#3e4347"><path d="m11.936 51.722c-.75 0-1.17.523-.934 1.164l.502 1.355c.238.641.627.641.865 0l.5-1.355c.238-.641-.181-1.164-.933-1.164"/><path d="m7.867 54.678c-.232.715.137 1.275.818 1.248l1.443-.059c.684-.027.803-.397.268-.822l-1.135-.896c-.534-.422-1.161-.185-1.394.529"/><path d="m9.42 59.46c.609.44 1.256.264 1.441-.394l.391-1.391c.184-.658-.131-.887-.699-.509l-1.203.804c-.569.378-.536 1.049.07 1.49"/><path d="m14.451 59.46c.607-.443.639-1.113.07-1.492l-1.201-.801c-.568-.379-.883-.15-.701.508l.393 1.391c.183.658.832.833 1.439.394"/><path d="m16.01 54.679c-.234-.715-.861-.952-1.396-.529l-1.133.896c-.537.423-.416.793.266.822l1.445.057c.681.029 1.048-.533.818-1.246"/><circle cx="37.936" cy="56" r="8"/></g><circle fill="#b2c1c0" cx="37.936" cy="56" r="5"/><g fill="#3e4347"><path d="m37.936 51.722c-.75 0-1.17.523-.934 1.164l.502 1.355c.238.641.627.641.865 0l.5-1.355c.238-.641-.181-1.164-.933-1.164"/><path d="m33.867 54.678c-.232.715.137 1.275.818 1.248l1.443-.059c.684-.027.803-.397.268-.822l-1.135-.896c-.534-.422-1.161-.185-1.394.529"/><path d="m35.42 59.46c.609.44 1.256.264 1.441-.394l.391-1.391c.184-.658-.131-.887-.699-.509l-1.203.803c-.569.379-.536 1.05.07 1.491"/><path d="m40.451 59.46c.607-.443.639-1.113.07-1.492l-1.201-.801c-.568-.379-.883-.15-.701.508l.393 1.391c.183.658.832.833 1.439.394"/><path d="m42.01 54.679c-.234-.715-.861-.952-1.396-.529l-1.133.896c-.537.423-.416.793.266.822l1.445.057c.681.029 1.048-.533.818-1.246"/><circle cx="54.936" cy="56" r="8"/></g><circle fill="#b2c1c0" cx="54.936" cy="56" r="5"/><g fill="#3e4347"><path d="m54.936 51.722c-.75 0-1.17.523-.934 1.164l.502 1.355c.238.641.627.641.865 0l.5-1.355c.238-.641-.181-1.164-.933-1.164"/><path d="m50.867 54.678c-.232.715.137 1.275.818 1.248l1.443-.059c.684-.027.803-.397.268-.822l-1.135-.896c-.534-.422-1.161-.185-1.394.529"/><path d="m52.42 59.46c.609.44 1.256.264 1.441-.394l.391-1.391c.184-.658-.131-.887-.699-.509l-1.203.803c-.569.379-.536 1.05.07 1.491"/><path d="m57.45 59.46c.607-.443.639-1.113.07-1.492l-1.201-.801c-.568-.379-.883-.15-.701.508l.393 1.391c.183.658.832.833 1.439.394"/><path d="m59.01 54.679c-.234-.715-.861-.952-1.396-.529l-1.133.896c-.537.423-.416.793.266.822l1.445.057c.681.029 1.048-.533.818-1.246"/></g><path fill="#b3bdc4" d="m26.936 35h-4c-.549 0-1 .45-1 1v16h6v-16c0-.55-.45-1-1-1"/><g fill="#e1e8ed"><path d="m62 49h-.057c-1.781-1.85-4.262-3-7.01-3h-17c-2.746 0-5.225 1.15-7.01 3h-2.994v3h3.078c1.385-2.389 3.963-4 6.922-4 2.961 0 5.539 1.611 6.922 4h3.156c1.385-2.389 3.963-4 6.922-4 4.42 0 8 3.581 8 8 0 .263-.014.521-.039.776.651-.331 1.104-1 1.104-1.776v-4c0-1.1-.9-2-2-2"/><path d="m18.936 19h-2c0-.55-.449-1-1-1h-3c-2.209 0-4 1.791-4 4v1h11l-1-4"/></g><path fill="#42ade2" d="m14.936 19h-2c-1.656 0-3 1.343-3 3v1h6v-3c0-.55-.45-1-1-1"/><g fill="#b8331e"><path d="m53.936 43h-16c-1.654 0-3-1.346-3-3v-6c0-1.654 1.346-3 3-3h16c1.654 0 3 1.346 3 3v6c0 1.654-1.346 3-3 3m-16-10c-.551 0-1 .448-1 1v6c0 .552.449 1 1 1h16c.553 0 1-.448 1-1v-6c0-.552-.447-1-1-1h-16"/><path d="m36.936 35h18v1h-18z"/><path d="m36.936 38h18v1h-18z"/></g><path fill="#b2c1c0" d="m54.19 21.337l-2.93-11.139-2.21-.592 2.936 11.139z"/><g fill="#3e4347"><path d="m13.205 3.828c-.143.531-.693.85-1.225.707-.531-.143-.85-.693-.707-1.225l.518-1.932c.143-.531.693-.85 1.225-.708.531.143.85.694.707 1.226l-.518 1.932"/><path d="m15.844 5.57l-4.571-2.258.518-1.933 5.088.328z"/></g><path transform="matrix(.9659.2588-.2588.9659 3.397-8.693)" fill="#e1e8ed" d="m19.713 6.556h30v4h-30z"/><path fill="#b3bdc4" d="m53.14 9.351l-24.567-6.582-2.207-.592-.811.818h.004l-4.055 4.09-1.035 3.864-7.59-2.034-.518 1.933 25.11 6.729 1.414 2.449 12.557 3.364.52-1.932 1.932.518 2.041-1.932.029-5.796-2.827-4.898m-30.463 2.19l1.035-3.863 2.691-2.715 2.145 8.151-5.871-1.573m5.732-6.745l6.889 1.845-5.059 5.104-1.83-6.949m2.61 8.98l5.988-6.04 2.166 8.228-8.154-2.186m10.359 2.764l-2.344-8.897 8.82 2.363-6.476 6.534"/><path fill="#b2c1c0" d="m20.295.551l-1.932-.518c-.531-.142-1.084.177-1.225.707l-2.33 8.693 3.863 1.036 2.33-8.693c.144-.531-.175-1.083-.706-1.225"/><g fill="#3e4347"><circle cx="18.294" cy="4.156" r="1"/><path d="m48.936 16l-7 7h-3v4h17v-11z"/></g><circle fill="#e1e8ed" cx="51.05" cy="21" r="2"/><path fill="#f14e3a" d="m26.436 47c0-.55-.449-1-1-1h-1c-.549 0-1 .45-1 1v1c0 .55.451 1 1 1h1c.551 0 1-.45 1-1v-1"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f14e3a"><path d="m18.9 23h-11c-1.1 0-2 .9-2 2s.9 2 2 2h11v-4"/><path d="m61.9 33l-6-6h-26c-1.1 0-2 .9-2 2v22h34v-18"/><path d="m19.9 23h-8.2c-1.1 0-1.7.9-1.8 2l-2.9 11-1.6 1.1c-.9.6-1.9 1.8-2.1 2.9l-1.3 9c-.2 1.1.6 2 1.7 2h18.3v-26c-.1-1.1-1-2-2.1-2"/></g><g fill="#3e4347"><path d="m11.3 33l.7-5c.1-.5-.3-1-.9-1h-2l-2.1 9"/><path d="m19.9 32c0 .6-.4 1.3-.9 1.5l-4.3 1.5c-.5.2-.8-.2-.7-.7l.7-6.2c.1-.6.5-1 1-1h3.4c.5 0 .9.4.8 1v3.9"/></g><g fill="#e1e8ed"><path d="m15.8 49c1.3.7 2.3 1.7 3.1 3h.1 3v-3h-6.2"/><path d="m0 51v4c0 1.1.9 2 2 2h2c0-.3-.1-.7-.1-1 0-3 1.6-5.6 4.1-7h-6c-1.1 0-2 .9-2 2"/><path d="m20.9 52c-1.5-3.5-5-6-9-6s-7.5 2.5-9 6h18"/></g><circle cx="11.9" cy="56" r="8" fill="#3e4347"/><circle cx="11.9" cy="56" r="5" fill="#b2c1c0"/><g fill="#3e4347"><path d="m11.9 51.7c-.8 0-1.2.5-.9 1.2l.5 1.4c.2.6.6.6.9 0l.5-1.4c.2-.7-.2-1.2-1-1.2"/><path d="m7.9 54.7c-.3.7.1 1.3.8 1.2l1.4-.1c.7 0 .8-.4.3-.8l-1.1-.9c-.6-.4-1.2-.1-1.4.6"/><path d="m9.4 59.5c.6.4 1.3.3 1.4-.4l.4-1.4c.2-.7-.1-.9-.7-.5l-1.1.8c-.6.3-.6 1 0 1.5"/><path d="m14.5 59.5c.6-.4.6-1.1.1-1.5l-1.2-.8c-.6-.4-.9-.2-.7.5l.4 1.4c.1.6.7.8 1.4.4"/><path d="m16 54.7c-.2-.7-.9-1-1.4-.5l-1.1.8c-.5.4-.4.8.3.8l1.4.1c.7.1 1-.5.8-1.2"/><circle cx="37.9" cy="56" r="8"/></g><circle cx="37.9" cy="56" r="5" fill="#b2c1c0"/><g fill="#3e4347"><path d="m37.9 51.7c-.8 0-1.2.5-.9 1.2l.5 1.4c.2.6.6.6.9 0l.5-1.4c.2-.7-.2-1.2-1-1.2"/><path d="m33.9 54.7c-.2.7.1 1.3.8 1.2l1.4-.1c.7 0 .8-.4.3-.8l-1.1-.9c-.6-.4-1.2-.1-1.4.6"/><path d="m35.4 59.5c.6.4 1.3.3 1.4-.4l.4-1.4c.2-.7-.1-.9-.7-.5l-1.2.8c-.5.3-.5 1 .1 1.5"/><path d="m40.5 59.5c.6-.4.6-1.1.1-1.5l-1.2-.8c-.6-.4-.9-.2-.7.5l.4 1.4c.1.6.7.8 1.4.4"/><path d="m42 54.7c-.2-.7-.9-1-1.4-.5l-1.1.8c-.5.4-.4.8.3.8l1.4.1c.7.1 1-.5.8-1.2"/><circle cx="54.9" cy="56" r="8"/></g><circle cx="54.9" cy="56" r="5" fill="#b2c1c0"/><g fill="#3e4347"><path d="m54.9 51.7c-.8 0-1.2.5-.9 1.2l.5 1.4c.2.6.6.6.9 0l.5-1.4c.2-.7-.2-1.2-1-1.2"/><path d="m50.9 54.7c-.2.7.1 1.3.8 1.2l1.4-.1c.7 0 .8-.4.3-.8l-1.1-.9c-.6-.4-1.2-.1-1.4.6"/><path d="m52.4 59.5c.6.4 1.3.3 1.4-.4l.4-1.4c.2-.7-.1-.9-.7-.5l-1.2.8c-.5.3-.5 1 .1 1.5"/><path d="m57.5 59.5c.6-.4.6-1.1.1-1.5l-1.2-.8c-.6-.4-.9-.2-.7.5l.4 1.4c.1.6.7.8 1.4.4"/><path d="m59 54.7c-.2-.7-.9-1-1.4-.5l-1.1.8c-.5.4-.4.8.3.8l1.4.1c.7.1 1-.5.8-1.2"/></g><path d="m26.9 35h-4c-.5 0-1 .5-1 1v16h6v-16c0-.5-.4-1-1-1" fill="#b3bdc4"/><g fill="#e1e8ed"><path d="m62 49c-1.8-1.8-4.3-3-7.1-3h-17c-2.7 0-5.2 1.2-7 3h-3v3h3.1c1.4-2.4 4-4 6.9-4 3 0 5.5 1.6 6.9 4h3.2c1.4-2.4 4-4 6.9-4 4.4 0 8 3.6 8 8 0 .3 0 .5 0 .8.7-.3 1.1-1 1.1-1.8v-4c0-1.1-.9-2-2-2"/><path d="m18.9 19h-2c0-.5-.4-1-1-1h-3c-2.2 0-4 1.8-4 4v1h11l-1-4"/></g><path d="m14.9 19h-2c-1.7 0-3 1.3-3 3v1h6v-3c0-.5-.4-1-1-1" fill="#42ade2"/><g fill="#b8331e"><path d="m53.9 43h-16c-1.7 0-3-1.3-3-3v-6c0-1.7 1.3-3 3-3h16c1.7 0 3 1.3 3 3v6c0 1.7-1.3 3-3 3m-16-10c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-6c0-.6-.4-1-1-1h-16"/><path d="m36.9 35h18v1h-18z"/><path d="m36.9 38h18v1h-18z"/></g><path fill="#b2c1c0" d="m54.2 21.3l-2.9-11.1-2.2-.6 2.9 11.1z"/><g fill="#3e4347"><path d="m13.2 3.8c-.1.5-.7.8-1.2.7-.5-.1-.9-.7-.7-1.2l.5-1.9c.1-.5.7-.9 1.2-.7.5.1.9.7.7 1.2l-.5 1.9"/><path d="m15.8 5.6l-4.5-2.3.5-1.9 5.1.3z"/></g><path transform="matrix(.2588-.9659.9659.2588 17.4651 39.8711)" fill="#e1e8ed" d="m32.7-6.4h4v30h-4z"/><path d="m53.1 9.4l-24.5-6.6-2.2-.6-.8.8-4.1 4.1-1 3.9-7.6-2-.5 1.9 25.1 6.7 1.4 2.4 12.6 3.4.5-1.9 1.9.5 2-1.9v-5.8l-2.8-4.9m-30.4 2.1l1-3.9 2.7-2.6 2.1 8.2-5.8-1.7m5.7-6.7l6.9 1.8-5.1 5.1-1.8-6.9m2.6 9l6-6 2.2 8.2-8.2-2.2m10.4 2.7l-2.4-8.9 8.8 2.4-6.4 6.5" fill="#b3bdc4"/><path d="m20.3.6l-1.9-.6c-.5-.1-1.1.2-1.2.7l-2.3 8.7 3.9 1 2.2-8.6c.1-.6-.2-1.1-.7-1.2" fill="#b2c1c0"/><g fill="#3e4347"><circle cx="18.3" cy="4.2" r="1"/><path d="m48.9 16l-7 7h-3v4h17v-11z"/></g><circle cx="51.1" cy="21" r="2" fill="#e1e8ed"/><path d="m26.4 47c0-.5-.4-1-1-1h-1c-.5 0-1 .5-1 1v1c0 .5.5 1 1 1h1c.6 0 1-.5 1-1v-1" fill="#f14e3a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f693.svg b/build/js/jsxc/lib/emojione/assets/svg/1f693.svg
index d762dbd..7964668 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f693.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f693.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m34.782 20.642h-2.644c-1.944 0-3.521-1.576-3.521-3.521 0-1.944 1.576-3.521 3.521-3.521h2.644v7.04"/><path fill="#f15744" d="m38.886 13.601h2.644c1.944 0 3.521 1.577 3.521 3.521 0 1.944-1.576 3.521-3.521 3.521h-2.644v-7.04"/><path fill="#cbd1d6" d="m39.07 20.642v-7.406c0-1.235-1-2.237-2.236-2.237s-2.236 1-2.236 2.237v7.406h-2.678v2.231h9.828v-2.231h-2.678"/><path fill="#3e4347" d="m58.18 37.591l-5.268-1.603c-1.055-.322-2.108-1.396-2.344-2.391l-2.186-9.245c-.236-.995-1.336-1.883-2.449-1.883h-18.207c-1.115 0-2.434.974-2.93 1.883l-5.273 9.399c-.497.908-1.767 1.914-2.821 2.236l-8.303 2.525c-1.055.323-2.23 1.789-2.48 2.779l.559 1.954-1.58 1.812-1.022 9.765h56.25v-14.469c-.002-1.017-.892-2.44-1.946-2.762"/><g fill="#b4d7ee"><path d="m35.75 33.659c0 .575.408 1.046.908 1.046h7.724c.498 0 .826-.46.725-1.023l-1.32-7.362c-.097-.564-.586-1.026-1.084-1.026h-6.04c-.5 0-.908.471-.908 1.046v7.319z"/><path d="m33.875 26.339c0-.575-.419-1.046-.929-1.046h-5.103c-.511 0-1.124.416-1.364.922l-3.753 7.576c-.246.502-.032.914.478.914h9.742c.51 0 .929-.471.929-1.046v-7.32"/></g><path fill="#fff" d="m4.897 45.06h2.834c.451 0 .955-.424 1.119-.941l.598-1.883c.164-.518-.072-.941-.523-.941h-3.01l-1.022 3.765"/><path fill="#f15744" d="m60.13 41.29h-2.31c-.367 0-.777.424-.911.941 0 0-.366 1.412-.487 1.883-.134.518.059.941.427.941h3.281v-3.765"/><g fill="#b2c1c0"><path d="m55.965 54.22c0 .663.542 1.207 1.207 1.207h3.619c.663 0 1.209-.544 1.209-1.207v-2.413c0-.664-.546-1.207-1.209-1.207h-3.619c-.665 0-1.207.543-1.207 1.207v2.413"/><path d="m2 54.22c0 .663.544 1.207 1.207 1.207h3.621c.661 0 1.205-.544 1.205-1.207v-2.413c0-.664-.544-1.207-1.205-1.207h-3.621c-.663 0-1.207.543-1.207 1.207v2.413"/><circle cx="52.16" cy="40.629" r="1.208"/></g><path fill="#e8e8e8" d="m44.604 38.16c0 4.729-6.607 7.098-6.607 13.791h-11.995c0-6.693-6.607-8.946-6.607-13.791h25.21"/><path fill="#dbb471" d="m31.999 40.564l1.121 3.434h3.603l-2.918 2.122 1.116 3.433-2.922-2.123-2.919 2.123 1.11-3.433-2.91-2.122h3.603z"/><ellipse fill="#62727a" cx="17.06" cy="53.53" rx="8.438" ry="8.471"/><ellipse fill="#e8e8e8" cx="17.06" cy="53.53" rx="4.821" ry="4.84"/><g fill="#3e4347"><path d="m18.202 51.15c-.205.646-.719 1.175-1.14 1.175s-.935-.528-1.14-1.175l-.021-.072c-.205-.645.318-1.174 1.161-1.174.843 0 1.366.529 1.161 1.174l-.021.072"/><path d="m15.575 51.35c.453.501.654 1.21.442 1.576-.21.367-.921.549-1.58.404l-.075-.018c-.659-.146-.853-.863-.431-1.597.421-.732 1.137-.923 1.591-.422l.053.057"/><path d="m14.438 53.731c.659-.145 1.37.037 1.58.403.212.367.011 1.076-.44 1.576l-.055.057c-.454.502-1.17.309-1.591-.424-.422-.732-.229-1.449.431-1.596l.075-.016"/><path d="m15.923 55.913c.207-.646.719-1.173 1.14-1.173s.935.527 1.14 1.173l.021.073c.205.646-.318 1.173-1.161 1.173-.843 0-1.366-.526-1.161-1.173l.021-.073"/><path d="m18.55 55.711c-.453-.501-.654-1.211-.442-1.576.21-.367.921-.549 1.58-.404l.075.018c.659.146.853.863.431 1.596-.421.732-1.137.924-1.591.423l-.053-.057"/><path d="m19.688 53.33c-.659.145-1.37-.037-1.58-.403-.212-.366-.014-1.075.44-1.576l.055-.056c.454-.501 1.17-.31 1.591.423.422.733.229 1.45-.431 1.596l-.075.016"/></g><g fill="#e8e8e8"><path d="m19.694 56.895l-1.045.605-4.218-7.34 1.045-.601z"/><path d="m12.844 52.924h8.438v1.211h-8.438z"/><path d="m18.649 49.559l1.045.601-4.218 7.34-1.045-.605z"/></g><ellipse fill="#62727a" cx="46.938" cy="53.53" rx="8.438" ry="8.471"/><ellipse fill="#e8e8e8" cx="46.938" cy="53.53" rx="4.821" ry="4.84"/><g fill="#3e4347"><path d="m48.08 51.15c-.205.646-.719 1.175-1.14 1.175s-.935-.528-1.14-1.175l-.021-.072c-.205-.645.318-1.174 1.161-1.174.843 0 1.366.529 1.161 1.174l-.021.072"/><path d="m45.45 51.35c.453.501.654 1.21.442 1.576-.21.367-.921.549-1.58.404l-.075-.018c-.659-.146-.853-.863-.431-1.597.421-.732 1.137-.923 1.591-.422l.053.057"/><path d="m44.31 53.731c.659-.145 1.37.037 1.58.403.212.367.011 1.076-.44 1.576l-.055.057c-.454.502-1.17.309-1.591-.424-.422-.732-.229-1.449.431-1.596l.075-.016"/><path d="m45.798 55.913c.207-.646.719-1.173 1.14-1.173s.935.527 1.14 1.173l.021.073c.205.646-.318 1.173-1.161 1.173-.843 0-1.366-.526-1.161-1.173l.021-.073"/><path d="m48.42 55.711c-.453-.501-.654-1.211-.442-1.576.21-.367.921-.549 1.58-.404l.075.018c.659.146.853.863.431 1.596-.421.732-1.137.924-1.591.423l-.053-.057"/><path d="m49.563 53.33c-.659.145-1.37-.037-1.58-.403-.212-.366-.014-1.075.44-1.576l.055-.056c.454-.501 1.17-.31 1.591.423.422.733.229 1.45-.431 1.596l-.075.016"/></g><g fill="#e8e8e8"><path d="m49.569 56.895l-1.049.605-4.21-7.34 1.04-.601z"/><path d="m42.719 52.924h8.438v1.211h-8.438z"/><path d="m48.52 49.559l1.049.601-4.219 7.34-1.04-.605z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34.8 20.6h-2.6c-1.9 0-3.5-1.6-3.5-3.5 0-1.9 1.6-3.5 3.5-3.5h2.6v7" fill="#42ade2"/><path d="m38.9 13.6h2.6c1.9 0 3.5 1.6 3.5 3.5 0 1.9-1.6 3.5-3.5 3.5h-2.6v-7" fill="#f15744"/><path d="m39.1 20.6v-7.4c0-1.2-1-2.2-2.2-2.2s-2.2 1-2.2 2.2v7.4h-2.7v2.2h9.8v-2.2c-.1 0-2.7 0-2.7 0" fill="#cbd1d6"/><path d="m58.2 37.6l-5.3-1.6c-1.1-.3-2.1-1.4-2.3-2.4l-2.2-9.2c-.2-1-1.3-1.9-2.4-1.9h-18.3c-1.1 0-2.4 1-2.9 1.9l-5.3 9.4c-.5.9-1.8 1.9-2.8 2.2l-8.3 2.5c-1.1.3-2.2 1.8-2.5 2.8l.6 2-1.6 1.8-1 9.8h56.2v-14.5c0-1.1-.9-2.5-1.9-2.8" fill="#3e4347"/><g fill="#b4d7ee"><path d="m35.8 33.7c0 .6.4 1 .9 1h7.7c.5 0 .8-.5.7-1l-1.3-7.4c-.1-.6-.6-1-1.1-1h-6c-.5 0-.9.5-.9 1v7.4"/><path d="m33.9 26.3c0-.6-.4-1-.9-1h-5.1c-.5 0-1.1.4-1.4.9l-3.8 7.6c-.2.5 0 .9.5.9h9.7c.5 0 .9-.5.9-1v-7.4z"/></g><path d="m4.9 45.1h2.8c.5 0 1-.4 1.1-.9l.6-1.9c.2-.5-.1-.9-.5-.9h-3l-1 3.7" fill="#fff"/><path d="m60.1 41.3h-2.3c-.4 0-.8.4-.9.9 0 0-.4 1.4-.5 1.9-.1.5.1.9.4.9h3.3c0 .1 0-3.7 0-3.7" fill="#f15744"/><g fill="#b2c1c0"><path d="m56 54.2c0 .7.5 1.2 1.2 1.2h3.6c.7 0 1.2-.5 1.2-1.2v-2.4c0-.7-.5-1.2-1.2-1.2h-3.6c-.7 0-1.2.5-1.2 1.2v2.4"/><path d="m2 54.2c0 .7.5 1.2 1.2 1.2h3.6c.7 0 1.2-.5 1.2-1.2v-2.4c0-.7-.5-1.2-1.2-1.2h-3.6c-.7 0-1.2.5-1.2 1.2v2.4"/><circle cx="52.2" cy="40.6" r="1.2"/></g><path d="m44.6 38.2c0 4.7-6.6 7.1-6.6 13.8h-12c0-6.7-6.6-8.9-6.6-13.8h25.2" fill="#e8e8e8"/><path fill="#dbb471" d="m32 40.6l1.1 3.4h3.6l-2.9 2.1 1.1 3.5-2.9-2.2-2.9 2.2 1.1-3.5-2.9-2.1h3.6z"/><ellipse cx="17.1" cy="53.5" rx="8.4" ry="8.5" fill="#62727a"/><ellipse cx="17.1" cy="53.5" rx="4.8" ry="4.8" fill="#e8e8e8"/><g fill="#3e4347"><path d="m18.2 51.1c-.2.6-.7 1.2-1.1 1.2s-.9-.5-1.1-1.2v-.1c-.2-.6.3-1.2 1.2-1.2.7.1 1.2.6 1 1.3"/><path d="m15.6 51.3c.5.5.7 1.2.4 1.6-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.9-.4-1.6.5-.7 1.2-.9 1.7-.4"/><path d="m14.4 53.7c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.6l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.8-.2-1.5.5-1.7"/><path d="m15.9 55.9c.2-.6.7-1.2 1.1-1.2s.9.5 1.1 1.2v.1c.2.6-.3 1.2-1.2 1.2-.7 0-1.2-.6-1-1.3"/><path d="m18.5 55.7c-.5-.5-.7-1.2-.4-1.6.2-.4.9-.5 1.6-.4h.1c.7.1.9.9.4 1.6-.4.8-1.1 1-1.7.4"/><path d="m19.7 53.3c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.6l.1-.1c.5-.5 1.2-.3 1.6.4.4.8.2 1.6-.5 1.7"/></g><g fill="#e8e8e8"><path d="m19.7 56.9l-1.1.6-4.2-7.3 1.1-.6z"/><path d="m12.8 52.9h8.4v1.2h-8.4z"/><path d="m18.6 49.6l1.1.6-4.2 7.3-1.1-.6z"/></g><ellipse cx="46.9" cy="53.5" rx="8.4" ry="8.5" fill="#62727a"/><ellipse cx="46.9" cy="53.5" rx="4.8" ry="4.8" fill="#e8e8e8"/><g fill="#3e4347"><path d="m48.1 51.1c-.2.6-.7 1.2-1.1 1.2s-.9-.5-1.1-1.2v-.1c-.2-.6.3-1.2 1.2-1.2.7.1 1.2.6 1 1.3"/><path d="m45.5 51.3c.5.5.7 1.2.4 1.6-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.9-.4-1.6.4-.7 1.1-.9 1.7-.4"/><path d="m44.3 53.7c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.6l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.8-.2-1.5.5-1.7"/><path d="m45.8 55.9c.2-.6.7-1.2 1.1-1.2s.9.5 1.1 1.2v.1c.2.6-.3 1.2-1.2 1.2-.7 0-1.2-.6-1-1.3"/><path d="m48.4 55.7c-.5-.5-.7-1.2-.4-1.6.2-.4.9-.5 1.6-.4h.1c.7.1.9.9.4 1.6-.5.8-1.2 1-1.7.4"/><path d="m49.6 53.3c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.6l.1-.1c.5-.5 1.2-.3 1.6.4.4.8.2 1.6-.5 1.7"/></g><g fill="#e8e8e8"><path d="m49.6 56.9l-1.1.6-4.2-7.3 1.1-.6z"/><path d="m42.7 52.9h8.4v1.2h-8.4z"/><path d="m48.5 49.6l1.1.6-4.2 7.3-1.1-.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f694.svg b/build/js/jsxc/lib/emojione/assets/svg/1f694.svg
index db8647d..680a097 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f694.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f694.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#62696d" d="m21.424 58.51h20.977v1.582h-20.977z"/><g fill="#42ade2"><path d="M36.568 8.323 39.682 2 38.877 9.03z"/><path d="m45.17 11.32l4.452-3.337-2.63 4.951z"/><path d="M27.769 8.323 24.656 2 25.459 9.03z"/><path d="m19.16 11.32l-4.445-3.337 2.629 4.951z"/></g><path fill="#62696d" d="m16.694 19.19h30.611v2.387h-30.611z"/><path fill="#f15744" d="m13.633 16.404h12.244v3.579h-12.244z"/><path fill="#badede" d="m25.877 16.404h12.244v3.579h-12.244z"/><path fill="#42ade2" d="m38.12 16.404h12.246v3.579h-12.246z"/><g fill="#62696d"><path d="m12.161 35.22c0 0-6.216.571-7.958-.895-1.157-.975-2.01-3.525-.93-4.58 1.298-1.264 5.656-.456 6.899.629 1.3 1.134 1.989 4.846 1.989 4.846"/><path d="m51.838 35.22c0 0 6.218.571 7.959-.895 1.157-.975 2.01-3.525.929-4.58-1.3-1.264-5.654-.456-6.897.629-1.303 1.134-1.991 4.846-1.991 4.846"/></g><path fill="#3e4347" d="m60.16 56.69c0 .657-.547 1.191-1.225 1.191h-53.876c-.678 0-1.225-.534-1.225-1.191 0 0-1.302-14.614 0-15.51 10.683-7.346 8.877-19.606 11.02-19.606 0 0 6.734-.597 17.14-.597 10.408 0 17.14.597 17.14.597 2.448 0 .063 11.446 11.02 19.606 1.299.971-.002 15.51-.002 15.51"/><path fill="#62696d" d="m45.07 46.606c0-.734-.509-1.329-1.135-1.329h-23.864c-.628 0-1.135.595-1.135 1.329v6.144h26.14v-6.144"/><path fill="#fff" d="m16.819 48.722c0 .659-.547 1.193-1.225 1.193l-8.76-.925c-.678 0-1.225-.534-1.225-1.191v-3.58c0-.659.547-1.192 1.225-1.192l8.76.923c.678 0 1.225.535 1.225 1.192v3.58"/><path fill="#ffce31" d="m8.652 49.18l-1.818-.193c-.678 0-1.225-.534-1.225-1.191v-3.58c0-.659.547-1.192 1.225-1.192l1.818.19v5.966"/><path fill="#fff" d="m47.18 48.723c0 .658.547 1.192 1.225 1.192l8.76-.923c.678 0 1.225-.534 1.225-1.193v-3.578c0-.659-.547-1.194-1.225-1.194l-8.76.925c-.678 0-1.225.535-1.225 1.192v3.579"/><path fill="#ffce31" d="m55.35 49.18l1.816-.19c.678 0 1.225-.534 1.225-1.193v-3.578c0-.659-.547-1.194-1.225-1.194l-1.816.19v5.965"/><g fill="#62696d"><path d="m11.67 34.39c0 0 5.103 2.869 7.458 7.182l-3.465 1.204c0-.001-.421-2.981-3.993-8.386"/><path d="m52.33 34.39c0 0-5.103 2.869-7.458 7.182l3.465 1.204c0-.001.421-2.981 3.993-8.386"/></g><g fill="#3e4347"><path d="m16.903 60.63c0 .758-.547 1.371-1.225 1.371h-8.571c-.678 0-1.225-.613-1.225-1.371v-2.747h11.02v2.747"/><path d="m58.12 60.63c0 .758-.548 1.371-1.225 1.371h-8.571c-.676 0-1.225-.613-1.225-1.371v-2.747h11.02v2.747"/></g><path fill="#c5d0d8" d="m62 57.34c0 .452-.548.82-1.225.82 0 0-12.206.806-28.775.806s-28.777-.806-28.777-.806c-.676 0-1.223-.368-1.223-.82v-4.922c0-.452.547-.82 1.223-.82 0 0 12.208.808 28.777.808s28.775-.808 28.775-.808c.677 0 1.225.368 1.225.82v4.922"/><g fill="#f15744"><ellipse cx="11.392" cy="55.28" rx="1.875" ry="1.921"/><ellipse cx="52.606" cy="55.28" rx="1.875" ry="1.921"/></g><path fill="#b4d7ee" d="m49.754 33.377c0 0-8.417-.421-17.754-.421-9.336 0-17.756.421-17.756.421l2.45-9.543c0 0 6.581-.422 15.306-.422 8.723 0 15.306.422 15.306.422l2.448 9.543"/><path fill="#ffce31" d="m24.5 53.36h15v5.625h-15z"/><g fill="#3e4347"><path d="m22.16 59.22c0 1.036-.84 1.875-1.875 1.875h-.234c-1.036 0-1.875-.839-1.875-1.875v-8.789c0-1.035.839-1.875 1.875-1.875h.234c1.035 0 1.875.84 1.875 1.875v8.789"/><path d="m45.828 59.22c0 1.036-.841 1.875-1.875 1.875h-.234c-1.036 0-1.875-.839-1.875-1.875v-8.789c0-1.035.839-1.875 1.875-1.875h.234c1.034 0 1.875.84 1.875 1.875v8.789"/></g><circle fill="#62696d" cx="43.836" cy="54.11" r="3.281"/><circle fill="#fff" cx="43.836" cy="54.11" r="2.344"/><circle fill="#62696d" cx="20.16" cy="54.11" r="3.281"/><circle fill="#fff" cx="20.16" cy="54.04" r="2.344"/><g fill="#3e4347"><path d="m23.21 46.65h17.578v.732h-17.578z"/><path d="m23.21 48.648h17.578v.73h-17.578z"/><path d="m23.21 50.644h17.578v.732h-17.578z"/></g><g fill="#c5d0d8"><circle cx="13.307" cy="46.65" r="2.605"/><circle cx="50.691" cy="46.65" r="2.605"/></g><g fill="#62696d"><path d="m17.997 35.33c2.317-.353 4.651-.56 6.986-.713 2.335-.165 4.677-.215 7.02-.227 2.341.011 4.682.061 7.02.225l3.5.277c1.164.14 2.328.253 3.486.438-1.173.041-2.34.025-3.509.053l-3.501.002-6.993.005-6.993-.007c-2.333-.007-4.665.007-7.01-.053"/><path d="m19.969 43.27c1.981-.436 3.987-.692 5.994-.866 2.01-.183 4.02-.246 6.04-.262 2.02.014 4.03.077 6.04.26 2.01.173 4.01.431 5.994.868-2.02.186-4.03.255-6.03.302-2 .057-4 .057-6 .07-1.999-.016-3.997-.016-6-.073-2-.048-4.01-.116-6.03-.299"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m36.6 8.3l3.1-6.3-.8 7z"/><path d="M45.2 11.3 49.6 8 47 12.9z"/><path d="m27.8 8.3l-3.1-6.3.8 7z"/><path d="m19.2 11.3l-4.5-3.3 2.6 4.9z"/></g><path fill="#62696d" d="m16.7 19.2h30.6v2.4h-30.6z"/><path fill="#f15744" d="m13.6 16.4h12.2v3.6h-12.2z"/><path fill="#badede" d="m25.9 16.4h12.2v3.6h-12.2z"/><path fill="#42ade2" d="m38.1 16.4h12.2v3.6h-12.2z"/><g fill="#62696d"><path d="m12.2 35.2c0 0-6.2.6-8-.9-1.2-1-2-3.5-.9-4.6 1.3-1.3 5.7-.5 6.9.6 1.3 1.2 2 4.9 2 4.9"/><path d="m51.8 35.2c0 0 6.2.6 8-.9 1.2-1 2-3.5.9-4.6-1.3-1.3-5.7-.5-6.9.6-1.3 1.2-2 4.9-2 4.9"/></g><path d="m60.2 56.7h-56.4c0 0-1.3-14.6 0-15.5 10.7-7.3 8.9-19.6 11-19.6 0 0 6.7-.6 17.1-.6 10.4 0 17.1.6 17.1.6 2.4 0 .1 11.4 11 19.6 1.5 1 .2 15.5.2 15.5" fill="#3e4347"/><path d="m45.1 45.6c0-.7-.5-1.3-1.1-1.3h-23.9c-.6 0-1.1.6-1.1 1.3v7.1h26.1v-7.1" fill="#62696d"/><path d="m16.8 48.7c0 .7-.5 1.2-1.2 1.2l-8.8-.9c-.7 0-1.2-.5-1.2-1.2v-3.6c0-.7.5-1.2 1.2-1.2l8.8.9c.7 0 1.2.5 1.2 1.2v3.6" fill="#fff"/><path d="m8.7 49.2l-1.9-.2c-.7 0-1.2-.5-1.2-1.2v-3.6c0-.7.5-1.2 1.2-1.2l1.8.2v6z" fill="#ffce31"/><path d="m47.2 48.7c0 .7.5 1.2 1.2 1.2l8.8-.9c.7 0 1.2-.5 1.2-1.2v-3.6c0-.7-.5-1.2-1.2-1.2l-8.8 1c-.7 0-1.2.5-1.2 1.2v3.5" fill="#fff"/><path d="m55.3 49.2l1.8-.2c.7 0 1.2-.5 1.2-1.2v-3.6c0-.7-.5-1.2-1.2-1.2l-1.8.2v6" fill="#ffce31"/><g fill="#62696d"><path d="m11.7 34.4c0 0 5.1 2.9 7.5 7.2l-3.5 1.2c0 0-.5-3-4-8.4"/><path d="m52.3 34.4c0 0-5.1 2.9-7.5 7.2l3.5 1.2c0 0 .5-3 4-8.4"/></g><g fill="#3e4347"><path d="m16.9 60.6c0 .8-.5 1.4-1.2 1.4h-8.6c-.7 0-1.2-.6-1.2-1.4v-2.7h11v2.7"/><path d="m58.1 60.6c0 .8-.5 1.4-1.2 1.4h-8.6c-.7 0-1.2-.6-1.2-1.4v-2.7h11v2.7"/></g><path d="m62 57.3c0 .5-.5.8-1.2.8 0 0-12.2.8-28.8.8s-28.8-.7-28.8-.7c-.7 0-1.2-.4-1.2-.8v-4.9c0-.5.5-.8 1.2-.8 0 0 12.2.8 28.8.8s28.8-.8 28.8-.8c.7 0 1.2.4 1.2.8 0-.1 0 4.8 0 4.8" fill="#c5d0d8"/><g fill="#f15744"><ellipse cx="11.4" cy="55.3" rx="1.9" ry="1.9"/><ellipse cx="52.6" cy="55.3" rx="1.9" ry="1.9"/></g><path d="m49.8 33.4c0 0-8.4-.4-17.8-.4-9.3 0-17.8.4-17.8.4l2.5-9.5c0 0 6.6-.4 15.3-.4 8.7 0 15.3.4 15.3.4l2.5 9.5" fill="#b4d7ee"/><path fill="#ffce31" d="m24.5 54.4h15v5.6h-15z"/><g fill="#3e4347"><path d="m22.2 59.2c0 2-4 2-4 0v-8.8c0-2 4-2 4 0v8.8"/><path d="m45.8 59.2c0 2-4 2-4 0v-8.8c0-2 4-2 4 0v8.8"/></g><circle cx="43.8" cy="54.1" r="3.3" fill="#62696d"/><circle cx="43.8" cy="54.1" r="2.3" fill="#fff"/><circle cx="20.2" cy="54.1" r="3.3" fill="#62696d"/><circle cx="20.2" cy="54" r="2.3" fill="#fff"/><g fill="#c5d0d8"><circle cx="13.3" cy="46.7" r="2.6"/><circle cx="50.7" cy="46.7" r="2.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f695.svg b/build/js/jsxc/lib/emojione/assets/svg/1f695.svg
index 2867013..c6bdad8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f695.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f695.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe62e" d="m58.18 38.1l-5.269-1.568c-1.055-.316-2.107-1.369-2.344-2.342l-2.184-9.05c-.236-.974-1.337-1.843-2.45-1.843h-18.207c-1.115 0-2.434.953-2.93 1.843l-5.273 9.203c-.497.891-1.767 1.875-2.822 2.191l-8.302 2.473c-1.055.316-2.231 1.75-2.48 2.721l.558 1.914-1.58 1.773-1.022 3.686h56.25v-8.295c-.001-.995-.891-2.388-1.945-2.704"/><path fill="#b2c1c0" d="m62 51.27c0-1.391-.482-2.168-1.526-2.168h-56.948c-1.044 0-1.526.777-1.526 2.168 0 .303.145 2 .204 2.297.238 1.182 1.228 1.061 2.271 1.061h55.05c1.043 0 2.032.121 2.271-1.061.058-.295.203-1.995.203-2.297"/><g fill="#3e4347"><path d="m35.75 34.25c0 .564.408 1.023.908 1.023h7.724c.499 0 .825-.449.725-1l-1.32-7.209c-.097-.552-.586-1-1.085-1h-6.04c-.5 0-.908.461-.908 1.024v7.168z"/><path d="m33.875 27.08c0-.563-.418-1.024-.928-1.024h-5.103c-.51 0-1.125.407-1.364.903l-3.753 7.419c-.246.49-.032.893.478.893h9.742c.51 0 .928-.459.928-1.023v-7.168"/></g><path fill="#fff" d="m4.897 45.41h2.834c.451 0 .955-.414 1.119-.922l.598-1.844c.164-.506-.071-.922-.523-.922h-3.01l-1.022 3.688"/><path fill="#f15744" d="m60.13 41.725h-2.309c-.368 0-.778.416-.912.922 0 0-.366 1.383-.487 1.844-.134.508.059.922.427.922h3.281v-3.688"/><g fill="#3e4347"><path d="m24.969 42.19c0 .254-.21.461-.469.461h-1.875c-.258 0-.469-.207-.469-.461v-1.844c0-.252.21-.459.469-.459h1.875c.258 0 .469.207.469.459v1.844"/><path d="m27.781 44.951c0 .252-.21.461-.469.461h-1.875c-.258 0-.469-.209-.469-.461v-1.844c0-.254.21-.461.469-.461h1.875c.258 0 .469.207.469.461v1.844"/><path d="m30.594 42.19c0 .254-.21.461-.469.461h-1.875c-.258 0-.469-.207-.469-.461v-1.844c0-.252.21-.459.469-.459h1.875c.258 0 .469.207.469.459v1.844"/><path d="m33.406 44.951c0 .252-.211.461-.469.461h-1.875c-.258 0-.469-.209-.469-.461v-1.844c0-.254.21-.461.469-.461h1.875c.258 0 .469.207.469.461v1.844"/><path d="m36.22 42.19c0 .254-.211.461-.469.461h-1.875c-.258 0-.469-.207-.469-.461v-1.844c0-.252.211-.459.469-.459h1.875c.258 0 .469.207.469.459v1.844"/><path d="m39.03 44.951c0 .252-.211.461-.469.461h-1.875c-.258 0-.469-.209-.469-.461v-1.844c0-.254.211-.461.469-.461h1.875c.258 0 .469.207.469.461v1.844"/><path d="m41.844 42.19c0 .254-.211.461-.469.461h-1.875c-.258 0-.469-.207-.469-.461v-1.844c0-.252.211-.459.469-.459h1.875c.258 0 .469.207.469.459v1.844"/></g><path fill="#f15744" d="m34.18 16.697c-.213-.859-1.086-.773-1.943-.773-.857 0-1.73-.086-1.944.773l-.785 4.754h5.457l-.785-4.754"/><g fill="#3e4347"><path d="m35.508 21.451h-2.182l-.314-5.546c-.085-1-.435-.901-.777-.901-.343 0-.692-.101-.777.901l-.314 5.546h-2.184c-.6 0-1.091.415-1.091.921v.922h8.73v-.922c.001-.507-.491-.921-1.091-.921"/><ellipse cx="16.06" cy="53.705" rx="8.438" ry="8.295"/></g><ellipse fill="#e8e8e8" cx="16.06" cy="53.705" rx="4.822" ry="4.74"/><g fill="#3e4347"><path d="m17.201 51.37c-.204.633-.718 1.15-1.139 1.15s-.935-.518-1.139-1.15l-.022-.07c-.205-.631.319-1.148 1.161-1.148.842 0 1.366.518 1.161 1.148l-.022.07"/><path d="m14.575 51.57c.454.49.655 1.186.442 1.543-.209.359-.92.537-1.58.396l-.075-.018c-.659-.143-.853-.846-.431-1.563.421-.719 1.137-.904 1.591-.414l.053.056"/><path d="m13.438 53.904c.659-.141 1.371.037 1.58.396.212.357.012 1.053-.439 1.543l-.055.055c-.454.49-1.169.303-1.591-.414-.422-.719-.229-1.42.431-1.563l.074-.017"/><path d="m14.924 56.04c.207-.633.718-1.148 1.139-1.148s.935.516 1.139 1.148l.022.072c.205.631-.319 1.146-1.161 1.146-.842 0-1.366-.516-1.161-1.146l.022-.072"/><path d="m17.55 55.842c-.454-.49-.655-1.184-.442-1.543.209-.359.92-.537 1.58-.396l.076.018c.659.143.852.846.43 1.564-.421.717-1.137.904-1.591.412l-.053-.055"/><path d="m18.688 53.51c-.659.143-1.371-.037-1.58-.395-.212-.359-.015-1.055.439-1.545l.055-.053c.454-.492 1.17-.305 1.591.414.421.717.229 1.418-.43 1.563l-.075.016"/></g><g fill="#e8e8e8"><path d="m18.695 57l-1.046.59-4.219-7.18 1.046-.592z"/><path d="m11.844 53.11h8.438v1.186h-8.438z"/><path d="m17.649 49.818l1.046.592-4.219 7.18-1.046-.59z"/></g><ellipse fill="#3e4347" cx="47.938" cy="53.705" rx="8.438" ry="8.295"/><ellipse fill="#e8e8e8" cx="47.938" cy="53.705" rx="4.821" ry="4.74"/><g fill="#3e4347"><path d="m49.08 51.37c-.204.633-.718 1.15-1.139 1.15s-.935-.518-1.139-1.15l-.022-.07c-.205-.631.319-1.148 1.161-1.148.842 0 1.366.518 1.161 1.148l-.022.07"/><path d="m46.45 51.57c.454.49.654 1.186.441 1.543-.208.359-.92.537-1.579.396l-.076-.018c-.659-.143-.852-.846-.43-1.563.421-.719 1.137-.904 1.591-.414l.053.056"/><path d="m45.31 53.904c.659-.141 1.371.037 1.579.396.213.357.013 1.053-.439 1.543l-.055.055c-.454.49-1.17.303-1.591-.414-.422-.719-.229-1.42.43-1.563l.076-.017"/><path d="m46.799 56.04c.207-.633.718-1.148 1.139-1.148s.935.516 1.139 1.148l.022.072c.205.631-.319 1.146-1.161 1.146-.842 0-1.366-.516-1.161-1.146l.022-.072"/><path d="m49.42 55.842c-.454-.49-.654-1.184-.441-1.543.208-.359.92-.537 1.579-.396l.076.018c.659.143.852.846.43 1.564-.421.717-1.137.904-1.591.412l-.053-.055"/><path d="m50.563 53.51c-.659.143-1.371-.037-1.579-.395-.213-.359-.015-1.055.439-1.545l.055-.053c.454-.492 1.17-.305 1.591.414.422.717.229 1.418-.43 1.563l-.076.016"/></g><g fill="#e8e8e8"><path d="m50.569 57l-1.049.59-4.21-7.18 1.04-.592z"/><path d="m43.719 53.11h8.438v1.186h-8.438z"/><path d="m49.52 49.818l1.049.592-4.219 7.18-1.04-.59z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.2 38.1l-5.3-1.6c-1.1-.3-2.1-1.4-2.3-2.3l-2.2-9.1c-.2-1-1.3-1.8-2.5-1.8h-18.2c-1.1 0-2.4 1-2.9 1.8l-5.3 9.2c-.5.9-1.8 1.9-2.8 2.2l-8.3 2.5c-1.1.3-2.2 1.8-2.5 2.7l.6 1.9-1.6 1.8-1 3.7h56.2v-8.3c0-1-.9-2.4-1.9-2.7" fill="#ffe62e"/><path d="m62 51.3c0-1.4-.5-2.2-1.5-2.2h-57c-1 0-1.5.8-1.5 2.2 0 .3.1 2 .2 2.3.2 1.2 1.2 1.1 2.3 1.1h55.1c1 0 2 .1 2.3-1.1 0-.3.1-2 .1-2.3" fill="#b2c1c0"/><g fill="#3e4347"><path d="m35.8 34.2c0 .6.4 1 .9 1h7.7c.5 0 .8-.4.7-1l-1.3-7.2c-.1-.6-.6-1-1.1-1h-6c-.5 0-.9.5-.9 1v7.2"/><path d="m33.9 27.1c0-.6-.4-1-.9-1h-5.1c-.5 0-1.1.4-1.4.9l-3.8 7.4c-.2.5 0 .9.5.9h9.7c.5 0 .9-.5.9-1v-7.2z"/></g><path d="m4.9 45.4h2.8c.5 0 1-.4 1.1-.9l.6-1.8c.2-.5-.1-.9-.5-.9h-3l-1 3.6" fill="#fff"/><path d="m60.1 41.7h-2.3c-.4 0-.8.4-.9.9 0 0-.4 1.4-.5 1.8-.1.5.1.9.4.9h3.3v-3.6" fill="#f15744"/><g fill="#3e4347"><path d="m25 42.2c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/><path d="m27.8 45c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/><path d="m30.6 42.2c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/><path d="m33.4 45c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/><path d="m36.2 42.2c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/><path d="m39 45c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/><path d="m41.8 42.2c0 .3-.2.5-.5.5h-1.9c-.3 0-.5-.2-.5-.5v-1.8c0-.3.2-.5.5-.5h1.9c.3 0 .5.2.5.5v1.8"/></g><path d="m34.2 16.7c-.2-.9-1.1-.8-1.9-.8-.9 0-1.7-.1-1.9.8l-.8 4.8h5.4l-.8-4.8" fill="#f15744"/><g fill="#3e4347"><path d="m35.5 21.5h-2.2l-.3-5.6c-.1-1-.4-.9-.8-.9-.3 0-.7-.1-.8.9l-.3 5.5h-2.1c-.6 0-1.1.4-1.1.9v.9h8.7v-.9c0-.4-.5-.8-1.1-.8"/><ellipse cx="16.1" cy="53.7" rx="8.4" ry="8.3"/></g><ellipse cx="16.1" cy="53.7" rx="4.8" ry="4.7" fill="#e8e8e8"/><g fill="#3e4347"><path d="m17.2 51.4c-.2.6-.7 1.2-1.1 1.2s-.9-.5-1.1-1.2v-.1c-.2-.6.3-1.1 1.2-1.1.7 0 1.2.5 1 1.2"/><path d="m14.6 51.6c.5.5.7 1.2.4 1.5-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.8-.4-1.6.5-.7 1.2-.9 1.7-.3"/><path d="m13.4 53.9c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.5l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.7-.2-1.4.5-1.6"/><path d="m14.9 56c.2-.6.7-1.1 1.1-1.1s.9.5 1.1 1.1v.1c.2.6-.3 1.1-1.2 1.1-.7.1-1.2-.5-1-1.2"/><path d="m17.5 55.8c-.5-.5-.7-1.2-.4-1.5.2-.4.9-.5 1.6-.4h.1c.7.1.9.8.4 1.6-.4.7-1.1.9-1.7.3"/><path d="m18.7 53.5c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.5l.1-.1c.5-.5 1.2-.3 1.6.4.4.7.2 1.4-.5 1.6"/></g><g fill="#e8e8e8"><path d="m18.7 57l-1.1.6-4.2-7.2 1.1-.6z"/><path d="m11.8 53.1h8.4v1.2h-8.4z"/><path d="m17.6 49.8l1.1.6-4.2 7.2-1.1-.6z"/></g><ellipse cx="47.9" cy="53.7" rx="8.4" ry="8.3" fill="#3e4347"/><ellipse cx="47.9" cy="53.7" rx="4.8" ry="4.7" fill="#e8e8e8"/><g fill="#3e4347"><path d="m49.1 51.4c-.2.6-.7 1.2-1.1 1.2s-1-.6-1.2-1.2v-.1c-.2-.6.3-1.1 1.2-1.1.8 0 1.3.5 1.1 1.2"/><path d="m46.5 51.6c.5.5.7 1.2.4 1.5-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.8-.4-1.6.4-.7 1.1-.9 1.7-.3"/><path d="m45.3 53.9c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.5l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.7-.2-1.4.5-1.6"/><path d="m46.8 56c.2-.6.7-1.1 1.1-1.1s.9.5 1.1 1.1v.1c.2.6-.3 1.1-1.2 1.1-.7.1-1.2-.5-1-1.2"/><path d="m49.4 55.8c-.5-.5-.7-1.2-.4-1.5.2-.4.9-.5 1.6-.4h.1c.7.1.9.8.4 1.6-.5.7-1.2.9-1.7.3"/><path d="m50.6 53.5c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.5l.1-.1c.5-.5 1.2-.3 1.6.4.4.7.2 1.4-.5 1.6"/></g><g fill="#e8e8e8"><path d="m50.6 57l-1.1.6-4.2-7.2 1.1-.6z"/><path d="m43.7 53.1h8.4v1.2h-8.4z"/><path d="m49.5 49.8l1.1.6-4.2 7.2-1.1-.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f696.svg b/build/js/jsxc/lib/emojione/assets/svg/1f696.svg
index 107fbc2..6a02e81 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f696.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f696.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe62e"><path d="m58.25 31.06c0 0-1.875 2.056-1.875 3.841l-.938-4.253 2.813.412"/><path d="m57.31 27.925c0 0 2.734-.53 3.75.455.597.578.937 2.271.937 2.271 0 1-.844 1.818-1.875 1.818h-2.813c-1.031 0-1.875-.818-1.875-1.818v-.909c.001-.999.844-1.817 1.876-1.817"/><path d="m5.75 31.06c0 0 1.875 2.056 1.875 3.841l.938-4.253-2.813.412"/><path d="m6.688 27.925c0 0-2.735-.53-3.75.455-.598.578-.938 2.271-.938 2.271 0 1 .844 1.818 1.875 1.818h2.813c1.031 0 1.875-.818 1.875-1.818v-.909c0-.999-.845-1.817-1.875-1.817"/></g><path fill="#b2c1c0" d="m40.44 9.501h-16.875c-.516 0-.938.422-.938.938v1.875c0 .516.422.938.938.938h16.875c.516 0 .938-.422.938-.938v-1.875c-.001-.516-.423-.938-.938-.938"/><g fill="#3e4347"><path d="m58.25 60.13c0 1.031-.844 1.875-1.875 1.875h-7.5c-1.031 0-1.875-.844-1.875-1.875v-7.5c0-1.029.844-1.875 1.875-1.875h7.5c1.031 0 1.875.846 1.875 1.875v7.5"/><path d="m17 60.13c0 1.031-.844 1.875-1.875 1.875h-7.5c-1.031 0-1.875-.844-1.875-1.875v-7.5c0-1.029.844-1.875 1.875-1.875h7.5c1.03 0 1.875.846 1.875 1.875v7.5"/></g><g fill="#ffe62e"><path d="m60.752 42c-1.508-4.563-4.125-7.934-4.125-7.934-5.793 0-7.164-7.692-7.164-7.692h-17.463-17.464c0 0-1.369 7.692-7.163 7.692 0 0-2.617 3.371-4.126 7.934-.603 1.824-.169 5.869 0 7.811.084.961.281 3.297 3.513 3.486 6.351.375 10.155 1.201 25.419 1.201 15.266 0 18.801-.818 25.06-1.201 3.232-.195 3.43-2.525 3.512-3.486.17-1.942.603-5.987 0-7.811"/><path d="m51.992 16.759c-1.602-3.279-3.459-4-5.881-4.445-3.395-.62-7.05-.938-14.11-.938-7.06 0-10.717.317-14.11.938-2.422.442-4.278 1.166-5.88 4.445-1.86 3.808-4.383 16.265-4.383 18.15 0 2.01 2.129 2.721 4.652 2.721h19.723 19.722c2.523 0 4.652-.707 4.652-2.721.001-1.882-2.522-14.338-4.382-18.15"/></g><path fill="#b2c1c0" d="m16.917 36.688c-.526 3.107-3.437 5.625-6.495 5.625-3.063 0-5.118-2.518-4.59-5.625.526-3.106 3.436-5.624 6.495-5.624 3.062-.001 5.118 2.517 4.59 5.624"/><path fill="#fff" d="m15.07 36.688c-.35 2.072-2.29 3.75-4.329 3.75-2.042 0-3.412-1.678-3.061-3.75.35-2.07 2.291-3.749 4.329-3.749 2.042-.001 3.411 1.678 3.061 3.749"/><path fill="#3e4347" d="m47.938 15.496c-.975-.666-8.334-1.776-15.938-1.776-7.604 0-14.964 1.11-15.938 1.776-3.697 2.528-4.688 14.211-4.688 14.211s1.903.888 4.688.888c2.227 0 2.813-1.432 15.938-1.432 13.13 0 13.71 1.432 15.937 1.432 2.783 0 4.688-.888 4.688-.888s-.99-11.683-4.687-14.211"/><path fill="#b2c1c0" d="m47.08 36.688c.527 3.107 3.436 5.625 6.494 5.625 3.063 0 5.119-2.518 4.592-5.625-.527-3.106-3.438-5.624-6.496-5.624-3.063-.001-5.117 2.517-4.59 5.624"/><path fill="#fff" d="m48.93 36.688c.35 2.072 2.291 3.75 4.33 3.75 2.041 0 3.41-1.678 3.061-3.75-.35-2.07-2.291-3.749-4.33-3.749-2.042-.001-3.413 1.678-3.061 3.749"/><path fill="#3e4347" d="m44.652 50.75c-12.658 0-12.582 0-25.314 0-1.01 0-.17-1.918.643-2.299 4.362-2.051 19.414-1.814 24.03 0 .859.338 1.654 2.299.644 2.299"/><g fill="#fff"><circle cx="54.5" cy="47.938" r="2.813"/><circle cx="9.5" cy="47.938" r="2.813"/></g><g fill="#f15744"><circle cx="9.5" cy="47.938" r="1.875"/><circle cx="54.5" cy="47.938" r="1.875"/></g><path fill="#ffe62e" d="m39.5 2h-15c-.516 0-.938.422-.938.938v6.563h16.875v-6.564c.001-.515-.421-.937-.937-.937"/><path fill="#e8e8e8" d="m41.12 39.711c-.531-1.596-2.369-3.604-4.02-3.922-2.51-.48-7.682-.48-10.191 0-1.658.318-3.494 2.326-4.02 3.922l-.105.314c-.531 1.596.41 2.902 2.09 2.902h14.271c1.682 0 2.623-1.307 2.092-2.902l-.107-.314"/><path fill="#62727a" d="m32 36.834c-1.93 0-3.734.125-4.832.336-1.018.195-2.537 1.73-2.955 2.986l-.107.32c-.107.32-.099.605.024.777.124.17.391.268.733.268h14.271c.344 0 .611-.098.734-.268.123-.172.131-.457.023-.785l-.104-.307c-.422-1.262-1.939-2.797-2.959-2.992-1.094-.21-2.898-.335-4.828-.335"/><g fill="#e8e8e8"><path d="m25.697 38.709h12.606c-.391-.412-.818-.752-1.186-.938h-10.234c-.369.186-.796.526-1.186.938"/><path d="m24.659 40.3l-.096.279h14.873l-.092-.271c-.072-.219-.189-.443-.324-.666h-14.04c-.132.22-.247.441-.319.658"/></g><g fill="#62727a"><path d="m26.504 5.057c0-.258-.211-.469-.469-.469h-.129c-.259 0-.469-.16-.469-.356 0-.196.21-.356.469-.356h2.116c.259 0 .469.16.469.356 0 .196-.21.356-.469.356h-.147c-.258 0-.469.211-.469.469v2.1c0 .258-.203.469-.451.469s-.451-.211-.451-.469v-2.1"/><path d="m30.531 6.663c-.259 0-.528.203-.602.45l-.019.063c-.073.248-.342.45-.599.45-.255 0-.399-.201-.32-.446l.925-2.858c.08-.245.355-.446.614-.446h.241c.258 0 .535.201.615.445l.94 2.859c.081.245-.063.445-.322.445h-.03c-.258 0-.533-.201-.61-.447l-.022-.068c-.078-.246-.354-.447-.611-.447h-.2m.099-.634c.243 0 .385-.179.317-.398-.069-.219-.183-.601-.254-.849 0 0-.014-.05-.072-.272-.006 0-.059.206-.117.457 0 0-.012.05-.076.267l-.103.346c-.074.247.064.449.305.449"/><path d="m36.02 7.626c-.258 0-.549-.153-.648-.34-.1-.186-.279-.525-.398-.753 0 0-.023-.042-.135-.258-.006 0-.094.185-.195.411 0 0 0 0-.123.262l-.125.257c-.111.231-.416.421-.674.421h-.09c-.258 0-.359-.18-.225-.401l.664-1.095c.133-.221.135-.582.002-.803l-.629-1.048c-.133-.222-.029-.402.229-.402h.096c.258 0 .547.154.643.342s.268.527.381.753c0 0 0 0 .094.212.006 0 .09-.183.184-.406 0 0 0 0 .1-.217l.129-.264c.115-.232.418-.421.676-.421h.09c.258 0 .359.18.225.399l-.637 1.032c-.135.22-.135.58 0 .799l.689 1.121c.135.22.035.399-.225.399h-.098"/><path d="m38.11 3.876c.248 0 .451.211.451.469v2.813c0 .258-.203.469-.451.469s-.451-.212-.451-.47v-2.812c0-.258.203-.469.451-.469"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe62e"><path d="m58.2 31.1c0 0-1.9 2.1-1.9 3.8l-.9-4.3 2.8.5"/><path d="m57.3 27.9c0 0 2.7-.5 3.8.5.6.6.9 2.3.9 2.3 0 1-.8 1.8-1.9 1.8h-2.8c-1 0-1.9-.8-1.9-1.8v-.9c0-1.1.9-1.9 1.9-1.9"/><path d="m5.8 31.1c0 0 1.9 2.1 1.9 3.8l.9-4.3-2.8.5"/><path d="m6.7 27.9c0 0-2.7-.5-3.8.5-.6.6-.9 2.3-.9 2.3 0 1 .8 1.8 1.9 1.8h2.8c1 0 1.9-.8 1.9-1.8v-.9c0-1.1-.9-1.9-1.9-1.9"/></g><path d="m40.4 9.5h-16.8c-.5 0-.9.4-.9.9v1.9c0 .5.4.9.9.9h16.9c.5 0 .9-.4.9-.9v-1.9c0-.5-.4-.9-1-.9" fill="#b2c1c0"/><g fill="#3e4347"><path d="m58.2 60.1c0 1-.8 1.9-1.9 1.9h-7.5c-1 0-1.9-.8-1.9-1.9v-7.5c0-1 .8-1.9 1.9-1.9h7.5c1 0 1.9.8 1.9 1.9v7.5"/><path d="m17 60.1c0 1-.8 1.9-1.9 1.9h-7.5c-1 0-1.9-.8-1.9-1.9v-7.5c0-1 .8-1.9 1.9-1.9h7.5c1 0 1.9.8 1.9 1.9v7.5"/></g><g fill="#ffe62e"><path d="m60.8 42c-1.5-4.6-4.1-7.9-4.1-7.9-5.8 0-7.2-7.7-7.2-7.7h-17.5-17.5c0 0-1.4 7.7-7.2 7.7 0 0-2.6 3.4-4.1 7.9-.6 1.8-.2 5.9 0 7.8.1 1 .3 3.3 3.5 3.5 6.4.4 10.2 1.2 25.4 1.2 15.3 0 18.8-.8 25.1-1.2 3.2-.2 3.4-2.5 3.5-3.5.2-1.9.7-6 .1-7.8"/><path d="m52 16.8c-1.6-3.3-3.5-4-5.9-4.4-3.4-.6-7.1-.9-14.1-.9-7.1 0-10.7.3-14.1.9-2.4.4-4.3 1.2-5.9 4.4-1.9 3.8-4.4 16.2-4.4 18.1 0 2 2.1 2.7 4.7 2.7h19.7 19.7c2.5 0 4.7-.7 4.7-2.7 0-1.9-2.5-14.3-4.4-18.1"/></g><path d="m16.9 36.7c-.5 3.1-3.4 5.6-6.5 5.6-3.1 0-5.1-2.5-4.6-5.6.5-3.1 3.4-5.6 6.5-5.6 3.1 0 5.1 2.5 4.6 5.6" fill="#b2c1c0"/><path d="m15.1 36.7c-.4 2.1-2.3 3.8-4.3 3.8-2 0-3.4-1.7-3.1-3.8.3-2.1 2.3-3.8 4.3-3.8 2.1 0 3.4 1.7 3.1 3.8" fill="#fff"/><path d="m47.9 15.5c-1-.7-8.3-1.8-15.9-1.8s-15 1.1-15.9 1.8c-3.7 2.5-4.7 14.2-4.7 14.2s1.9.9 4.7.9c2.2 0 2.8-1.4 15.9-1.4s13.7 1.4 15.9 1.4c2.8 0 4.7-.9 4.7-.9s-1-11.7-4.7-14.2" fill="#3e4347"/><path d="m47.1 36.7c.5 3.1 3.4 5.6 6.5 5.6 3.1 0 5.1-2.5 4.6-5.6-.5-3.1-3.4-5.6-6.5-5.6-3.1 0-5.1 2.5-4.6 5.6" fill="#b2c1c0"/><path d="m48.9 36.7c.3 2.1 2.3 3.8 4.3 3.8 2 0 3.4-1.7 3.1-3.8-.3-2.1-2.3-3.8-4.3-3.8-2.1 0-3.4 1.7-3.1 3.8" fill="#fff"/><path d="m44.7 50.8c-12.7 0-12.6 0-25.3 0-1 0-.2-1.9.6-2.3 4.4-2.1 19.4-1.8 24 0 .9.3 1.7 2.3.7 2.3" fill="#3e4347"/><g fill="#fff"><circle cx="54.5" cy="47.9" r="2.8"/><circle cx="9.5" cy="47.9" r="2.8"/></g><g fill="#f15744"><circle cx="9.5" cy="47.9" r="1.9"/><circle cx="54.5" cy="47.9" r="1.9"/></g><path d="m39.5 2h-15c-.5 0-.9.4-.9.9v6.6h16.9v-6.6c-.1-.5-.5-.9-1-.9" fill="#ffe62e"/><path d="m41.1 39.7c-.5-1.6-2.4-3.6-4-3.9-2.5-.5-7.7-.5-10.2 0-1.7.3-3.5 2.3-4 3.9l-.1.3c-.5 1.6.4 2.9 2.1 2.9h14.3c1.7 0 2.6-1.3 2.1-2.9l-.2-.3" fill="#e8e8e8"/><path d="m32 36.8c-1.9 0-3.7.1-4.8.3-1 .2-2.5 1.7-3 3l-.1.3c-.1.3-.1.6 0 .8.1.2.4.3.7.3h14.3c.3 0 .6-.1.7-.3.1-.2.1-.5 0-.8l-.1-.3c-.4-1.3-1.9-2.8-3-3-1-.1-2.8-.3-4.7-.3" fill="#62727a"/><g fill="#e8e8e8"><path d="m25.7 38.7h12.6c-.4-.4-.8-.8-1.2-.9h-10.2c-.4.2-.8.5-1.2.9"/><path d="m24.7 40.3l-.1.3h14.9l-.1-.3c-.1-.2-.2-.4-.3-.7h-14.1c-.2.3-.3.5-.3.7"/></g><g fill="#62727a"><path d="m26.5 5.1c0-.3-.2-.5-.5-.5h-.1c-.3 0-.5-.2-.5-.4s.2-.4.5-.4h2.1c.3 0 .5.2.5.4s-.2.4-.5.4h-.1c-.3 0-.5.2-.5.5v2.1c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-2.1z"/><path d="m30.5 6.7c-.3 0-.5.2-.6.4v.1c-.1.2-.3.4-.6.4-.3 0-.4-.2-.3-.4l.9-2.9c.1-.2.4-.4.6-.4h.2c.3 0 .5.2.6.4l.9 2.9c.1.2-.1.4-.3.4-.3 0-.5-.2-.6-.4v-.1c-.1-.2-.4-.4-.6-.4h-.2m.1-.7c.2 0 .4-.2.3-.4-.1-.2-.2-.6-.3-.8 0 0 0-.1-.1-.3 0 0-.1.2-.1.5 0 0 0 .1-.1.3l-.1.3c.1.2.2.4.4.4"/><path d="m36 7.6c-.3 0-.5-.2-.6-.3-.1-.2-.3-.5-.4-.8 0 0 0 0-.1-.3 0 0-.1.2-.2.4 0 0 0 0-.1.3l-.1.3c-.1.2-.4.4-.7.4h-.1c-.3 0-.4-.2-.2-.4l.7-1.1c.1-.2.1-.6 0-.8l-.6-1c-.1-.2 0-.4.2-.4h.1c.3 0 .5.2.6.3s.3.5.4.8c0 0 0 0 .1.2 0 0 .1-.2.2-.4 0 0 0 0 .1-.2l.1-.3c.1-.2.4-.4.7-.4h.1c.3 0 .4.2.2.4l-.6 1c-.1.2-.1.6 0 .8l.7 1.1c0 .2-.1.4-.5.4"/><path d="m38.1 3.9c.2 0 .5.2.5.5v2.8c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-2.9c.1-.2.3-.4.5-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f697.svg b/build/js/jsxc/lib/emojione/assets/svg/1f697.svg
index 80e76b4..da85c34 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f697.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f697.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f15744" d="m58.18 37.875l-3.394-1.584c-1.055-.318-2.107-1.381-2.344-2.363l-2.183-10.07c-.237-.983-1.337-1.86-2.45-1.86h-21.958c-1.115 0-2.434.962-2.93 1.86 0 0-3.274 6.489-4.336 8.359-.507.893-2.722 2.772-3.759 3.142-2.116.754-6.427 3.426-6.427 3.426-1.055.319-2.231 1.769-2.48 2.748l.558 1.931-1.58 1.79-1.022 3.721h56.25v-8.372c-.001-1.01-.891-2.412-1.945-2.73"/><path fill="#b2c1c0" d="m62 51.16c0-1.403-.482-2.188-1.526-2.188h-56.948c-1.044 0-1.526.785-1.526 2.188 0 .306.145 2.02.204 2.317.238 1.194 1.228 1.072 2.271 1.072h55.05c1.043 0 2.032.122 2.271-1.072.058-.297.203-2.01.203-2.317"/><g fill="#3e4347"><path d="m37.625 33.989c0 .569.408 1.034.908 1.034h9.599c.499 0 .825-.455.725-1.012l-1.32-8.208c-.097-.558-.586-1.014-1.085-1.014h-7.918c-.5 0-.908.465-.908 1.034v8.166z"/><path d="m34.813 25.825c0-.569-.418-1.034-.929-1.034h-6.978c-.51 0-1.125.411-1.364.912l-3.753 8.418c-.246.496-.032.903.478.903h11.617c.511 0 .929-.465.929-1.034v-8.165"/></g><path fill="#fff" d="m4.897 45.26h2.834c.451 0 .955-.419 1.119-.931l.598-1.86c.164-.512-.071-.93-.523-.93h-3.01l-1.022 3.721"/><path fill="#ffe62e" d="m60.13 41.535h-2.309c-.368 0-.778.418-.912.93 0 0-.366 1.396-.487 1.86-.134.512.059.931.427.931h3.281v-3.721"/><ellipse fill="#3e4347" cx="16.06" cy="53.628" rx="8.438" ry="8.372"/><path fill="#e8e8e8" d="m20.884 53.628c0 2.642-2.159 4.785-4.821 4.785-2.663 0-4.822-2.144-4.822-4.785 0-2.64 2.159-4.784 4.822-4.784 2.662 0 4.821 2.144 4.821 4.784"/><g fill="#3e4347"><path d="m17.201 51.27c-.204.638-.717 1.16-1.139 1.16s-.935-.522-1.139-1.16l-.021-.072c-.205-.638.318-1.159 1.161-1.159.843 0 1.366.521 1.161 1.159l-.023.072"/><path d="m14.575 51.47c.454.495.654 1.197.443 1.559-.21.362-.921.542-1.58.4l-.075-.019c-.659-.144-.853-.853-.431-1.578.421-.725 1.137-.911 1.591-.417l.052.055"/><path d="m13.438 53.827c.659-.141 1.37.039 1.58.4.211.361.011 1.063-.44 1.559l-.054.055c-.455.495-1.17.306-1.591-.418-.422-.726-.229-1.434.431-1.577l.074-.019"/><path d="m14.923 55.984c.207-.638.718-1.159 1.139-1.159s.935.521 1.139 1.159l.022.073c.205.638-.318 1.158-1.161 1.158-.843 0-1.366-.521-1.161-1.158l.022-.073"/><path d="m17.55 55.785c-.454-.495-.654-1.196-.443-1.559.209-.362.921-.542 1.58-.4l.076.018c.659.144.852.854.43 1.579-.421.724-1.137.912-1.591.416l-.052-.054"/><path d="m18.688 53.43c-.659.143-1.371-.037-1.58-.399-.211-.362-.014-1.063.44-1.559l.055-.054c.454-.496 1.17-.308 1.591.417.421.726.229 1.434-.43 1.578l-.076.017"/></g><g fill="#e8e8e8"><path d="m18.695 56.954l-1.046.596-4.219-7.25 1.046-.597z"/><path d="m11.844 53.03h8.438v1.196h-8.438z"/><path d="m17.649 49.703l1.046.597-4.219 7.25-1.046-.596z"/></g><ellipse fill="#3e4347" cx="47.938" cy="53.628" rx="8.438" ry="8.372"/><path fill="#e8e8e8" d="m52.759 53.628c0 2.642-2.159 4.785-4.821 4.785s-4.821-2.144-4.821-4.785c0-2.64 2.159-4.784 4.821-4.784s4.821 2.144 4.821 4.784"/><g fill="#3e4347"><path d="m49.08 51.27c-.204.638-.718 1.16-1.139 1.16s-.935-.522-1.139-1.16l-.022-.072c-.205-.638.319-1.159 1.161-1.159.842 0 1.366.521 1.161 1.159l-.022.072"/><path d="m46.45 51.47c.454.495.654 1.197.441 1.559-.208.362-.92.542-1.579.4l-.076-.019c-.659-.144-.852-.853-.43-1.578.421-.725 1.137-.911 1.591-.417l.053.055"/><path d="m45.31 53.827c.659-.141 1.371.039 1.579.4.213.361.013 1.063-.439 1.559l-.055.055c-.454.495-1.17.306-1.591-.418-.422-.726-.229-1.434.43-1.577l.076-.019"/><path d="m46.799 55.984c.207-.638.718-1.159 1.139-1.159s.935.521 1.139 1.159l.022.073c.205.638-.319 1.158-1.161 1.158-.842 0-1.366-.521-1.161-1.158l.022-.073"/><path d="m49.42 55.785c-.454-.495-.654-1.196-.441-1.559.208-.362.92-.542 1.579-.4l.076.018c.659.144.852.854.43 1.579-.421.724-1.137.912-1.591.416l-.053-.054"/><path d="m50.563 53.43c-.659.143-1.371-.037-1.579-.399-.213-.362-.015-1.063.439-1.559l.055-.054c.454-.496 1.17-.308 1.591.417.422.726.229 1.434-.43 1.578l-.076.017"/></g><g fill="#e8e8e8"><path d="m50.569 56.954l-1.049.596-4.21-7.25 1.04-.597z"/><path d="m43.719 53.03h8.438v1.196h-8.438z"/><path d="m49.52 49.703l1.049.597-4.219 7.25-1.04-.596z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.2 37.9l-3.4-1.6c-1.1-.3-2.1-1.4-2.3-2.4l-2.2-10.1c-.2-1-1.3-1.9-2.4-1.9h-22c-1.1 0-2.4 1-2.9 1.9 0 0-3.3 6.5-4.3 8.4-.5.9-2.7 2.8-3.8 3.1-2.1.8-6.4 3.4-6.4 3.4-1.1.3-2.2 1.8-2.5 2.7l.6 1.9-1.6 1.8-1 3.7h56.2v-8.4c-.1-.8-1-2.2-2-2.5" fill="#f15744"/><path d="m62 51.2c0-1.4-.5-2.2-1.5-2.2h-57c-1 0-1.5.8-1.5 2.2 0 .3.1 2 .2 2.3.2 1.2 1.2 1.1 2.3 1.1h55.1c1 0 2 .1 2.3-1.1 0-.3.1-2 .1-2.3" fill="#b2c1c0"/><g fill="#3e4347"><path d="m37.6 34c0 .6.4 1 .9 1h9.6c.5 0 .8-.5.7-1l-1.3-8.2c-.1-.6-.6-1-1.1-1h-7.9c-.5 0-.9.5-.9 1v8.2"/><path d="m34.8 25.8c0-.6-.4-1-.9-1h-7c-.5 0-1.1.4-1.4.9l-3.8 8.4c-.2.5 0 .9.5.9h11.6c.5 0 .9-.5.9-1v-8.2z"/></g><path d="m4.9 45.3h2.8c.5 0 1-.4 1.1-.9l.6-1.9c.2-.5-.1-.9-.5-.9h-3l-1 3.7" fill="#fff"/><path d="m60.1 41.5h-2.3c-.4 0-.8.4-.9.9 0 0-.4 1.4-.5 1.9-.1.5.1.9.4.9h3.3v-3.7" fill="#ffe62e"/><ellipse cx="16.1" cy="53.6" rx="8.4" ry="8.4" fill="#3e4347"/><path d="m20.9 53.6c0 2.6-2.2 4.8-4.8 4.8-2.7 0-4.8-2.1-4.8-4.8 0-2.6 2.2-4.8 4.8-4.8 2.6 0 4.8 2.2 4.8 4.8" fill="#e8e8e8"/><g fill="#3e4347"><path d="m17.2 51.3c-.2.6-.7 1.2-1.1 1.2s-.9-.5-1.1-1.2v-.1c-.2-.6.3-1.2 1.2-1.2.7 0 1.2.6 1 1.3"/><path d="m14.6 51.5c.4.5.6 1.2.4 1.5-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.9-.4-1.6.5-.7 1.2-.9 1.7-.3"/><path d="m13.4 53.8c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.6l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.8-.2-1.5.5-1.7"/><path d="m14.9 56c.2-.6.7-1.2 1.1-1.2s.9.5 1.1 1.2v.1c.2.6-.3 1.2-1.2 1.2-.7-.1-1.2-.6-1-1.3"/><path d="m17.5 55.8c-.5-.5-.7-1.2-.4-1.6.2-.4.9-.5 1.6-.4h.1c.7.1.9.9.4 1.6-.4.7-1.1.9-1.7.4"/><path d="m18.7 53.4c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.6l.1-.1c.5-.5 1.2-.3 1.6.4.4.9.2 1.6-.5 1.7"/></g><g fill="#e8e8e8"><path d="m18.7 57l-1.1.6-4.2-7.3 1.1-.6z"/><path d="m11.8 53h8.4v1.2h-8.4z"/><path d="m17.6 49.7l1.1.6-4.2 7.3-1.1-.6z"/></g><ellipse cx="47.9" cy="53.6" rx="8.4" ry="8.4" fill="#3e4347"/><path d="m52.8 53.6c0 2.6-2.2 4.8-4.8 4.8s-4.8-2.1-4.8-4.8c0-2.6 2.2-4.8 4.8-4.8s4.8 2.2 4.8 4.8" fill="#e8e8e8"/><g fill="#3e4347"><path d="m49.1 51.3c-.2.6-.7 1.2-1.1 1.2s-.9-.5-1.1-1.2v-.1c-.2-.6.3-1.2 1.2-1.2.7 0 1.2.6 1 1.3"/><path d="m46.5 51.5c.5.5.7 1.2.4 1.6-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.9-.4-1.6.4-.8 1.1-1 1.7-.4"/><path d="m45.3 53.8c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.6l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.8-.2-1.5.5-1.7"/><path d="m46.8 56c.2-.6.7-1.2 1.1-1.2s.9.5 1.1 1.2v.1c.2.6-.3 1.2-1.2 1.2-.7-.1-1.2-.6-1-1.3"/><path d="m49.4 55.8c-.5-.5-.7-1.2-.4-1.6.2-.4.9-.5 1.6-.4h.1c.7.1.9.9.4 1.6-.5.7-1.2.9-1.7.4"/><path d="m50.6 53.4c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.6l.1-.1c.5-.5 1.2-.3 1.6.4.4.9.2 1.6-.5 1.7"/></g><g fill="#e8e8e8"><path d="m50.6 57l-1.1.6-4.2-7.3 1.1-.6z"/><path d="m43.7 53h8.4v1.2h-8.4z"/><path d="m49.5 49.7l1.1.6-4.2 7.3-1.1-.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f698.svg b/build/js/jsxc/lib/emojione/assets/svg/1f698.svg
index 8812725..cd0a888 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f698.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f698.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m55.44 33.11c0 0-5.346-13.71-7.228-14.841-2.9-1.744-12.324-2.268-16.213-2.268-3.886 0-13.313.524-16.214 2.268-1.88 1.131-7.228 14.841-7.228 14.841h46.883"/><g fill="#3e4347"><path d="m5.75 50.26v9.787c0 1.076.844 1.957 1.875 1.957h3.75c1.031 0 1.875-.881 1.875-1.957v-9.787h-7.5"/><path d="m50.75 50.26v9.787c0 1.076.844 1.957 1.875 1.957h3.75c1.031 0 1.875-.881 1.875-1.957v-9.787h-7.5"/></g><path fill="#428bc1" d="m60.48 50.46c-.521.963-1.898 1.75-3.065 1.75h-50.827c-1.165 0-2.543-.787-3.065-1.75l-.223-.414c-.522-.963-.471-2.191.112-2.729.582-.539 2.01-.98 3.177-.98h50.826c1.167 0 2.595.441 3.179.98.58.537.632 1.766.11 2.729l-.224.414"/><path fill="#42ade2" d="m56.16 48.3c.493.537.09.979-.895.979h-46.538c-.985 0-1.388-.441-.896-.979.493-.539 1.701-.979 2.686-.979h42.959c.985 0 2.194.44 2.684.979"/><path fill="#428bc1" d="m59.54 34.3c-2.17-1.068-5.02-2.281-5.02-2.281h-45.04c0 0-2.851 1.212-5.02 2.281-1.534.756-2.459 1.349-2.459 2.847l1.103 7.15c.296 1.662 2.501 3.02 4.901 3.02h47.992c2.4 0 4.606-1.361 4.903-3.02l1.101-7.15c0-1.498-.923-2.091-2.459-2.847"/><path fill="#3e4347" d="m51.581 30.36c0 0-3.151-9.429-4.859-10.418-2.633-1.526-11.192-1.984-14.722-1.984-3.528 0-12.09.458-14.722 1.984-1.707.989-4.859 10.418-4.859 10.418-.379.715.291 1.3 1.492 1.3h36.18c1.201 0 1.873-.585 1.492-1.3"/><path fill="#42ade2" d="m42.11 31.489c-1.906-1.787-4.129-1.787-5.202-1.787-2.923 0-6.892 0-9.814 0-1.073 0-3.53 0-5.202 1.787-.406.436-2.078 2.128-2.078 2.128h24.375c0 0-1.645-1.721-2.079-2.128"/><path fill="#3e4347" d="m40.555 32.766c-.643-.566-.938-1.106-3.609-1.106-2.474 0-8.354 0-10.829 0-1.851 0-2.029.54-2.671 1.106-.24.212-.82.851-.82.851h18.75c-.001 0-.579-.639-.821-.851"/><path fill="#42ade2" d="m7.625 52.21c0 0 .216 1.643.386 2.164.335 1.025 1.729 1.75 2.789 1.75h42.4c1.06 0 2.453-.725 2.788-1.75.171-.521.387-2.164.387-2.164h-48.75"/><path fill="#3e4347" d="m44.19 56.986c-5.184 1.467-19.19 1.467-24.375 0-.445-.127-.938-.859-.938-.859h26.25c0 0-.49.732-.937.859"/><path fill="#42ade2" d="m58.986 41.523c-.405 2.111-2.425 3.838-4.486 3.838h-45c-2.062 0-4.082-1.727-4.486-3.838l-.402-2.109c-.405-2.111.952-3.84 3.01-3.84h48.75c2.062 0 3.419 1.729 3.01 3.84l-.404 2.109"/><path fill="#3e4347" d="m25.882 42.23c-.862.646-2.448 1.174-3.525 1.174h-13.711c-1.078 0-1.959-.881-1.959-1.957v-1.957c0-1.078.881-1.957 1.959-1.957h13.711c1.077 0 2.663.527 3.525 1.174l.784.586c.862.646.862 1.703 0 2.35l-.784.587"/><g fill="#f9f3d9"><ellipse cx="11.375" cy="40.469" rx="2.813" ry="2.936"/><ellipse cx="19.813" cy="40.469" rx="2.813" ry="2.936"/></g><path fill="#3e4347" d="m38.12 42.23c.863.646 2.448 1.174 3.527 1.174h13.711c1.076 0 1.957-.881 1.957-1.957v-1.957c0-1.078-.881-1.957-1.957-1.957h-13.71c-1.079 0-2.664.527-3.527 1.174l-.783.586c-.86.646-.86 1.703 0 2.35l.782.587"/><g fill="#f9f3d9"><ellipse cx="52.625" cy="40.469" rx="2.813" ry="2.936"/><ellipse cx="44.19" cy="40.469" rx="2.813" ry="2.936"/></g><g fill="#428bc1"><path d="m9.478 31.682c.115.525-.24.957-.789.957h-3.144c-.549 0-1.095-.432-1.21-.957l-.438-2c-.115-.526.24-.957.791-.957h3.142c.551 0 1.095.43 1.21.957l.438 2"/><path d="m54.52 31.682c-.115.525.24.957.791.957h3.143c.549 0 1.095-.432 1.21-.957l.438-2c.115-.526-.24-.957-.79-.957h-3.143c-.549 0-1.095.43-1.21.957l-.439 2"/></g><g fill="#b4d7ee"><path d="m38.563 35.574h-13.13l1.875-1.957h9.375z"/><path d="m25.438 52.21h13.13v3.914h-13.13z"/></g><g fill="#428bc1"><path d="m30.828 33.617h1.875v1.957h-1.875z"/><path d="m30.828 52.21h1.875v3.914h-1.875z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.4 33.1c0 0-5.3-13.7-7.2-14.8-2.9-1.8-12.3-2.3-16.2-2.3-3.9 0-13.3.5-16.2 2.3-1.9 1.1-7.2 14.8-7.2 14.8h46.8" fill="#428bc1"/><g fill="#3e4347"><path d="m5.8 50.3v9.7c0 1.1.8 2 1.9 2h3.8c1 0 1.9-.9 1.9-2v-9.8h-7.6z"/><path d="m50.8 50.3v9.7c0 1.1.8 2 1.9 2h3.8c1 0 1.9-.9 1.9-2v-9.8h-7.6z"/></g><path d="m60.5 50.5c-.5 1-1.9 1.8-3.1 1.8h-50.8c-1.2 0-2.5-.8-3.1-1.8l-.2-.5c-.5-1-.5-2.2.1-2.7.6-.5 2-1 3.2-1h50.8c1.2 0 2.6.4 3.2 1 .6.5.6 1.8.1 2.7l-.2.5" fill="#428bc1"/><path d="m56.2 48.3c.5.5.1 1-.9 1h-46.6c-1 0-1.4-.4-.9-1 .5-.5 1.7-1 2.7-1h43c1 0 2.2.5 2.7 1" fill="#42ade2"/><path d="m59.5 34.3c-2.2-1.1-5-2.3-5-2.3h-45c0 0-2.9 1.2-5 2.3-1.6.8-2.5 1.3-2.5 2.8l1.1 7.2c.3 1.7 2.5 3 4.9 3h48c2.4 0 4.6-1.4 4.9-3l1.1-7.2c0-1.5-.9-2-2.5-2.8" fill="#428bc1"/><path d="m51.6 30.4c0 0-3.2-9.4-4.9-10.4-2.6-1.5-11.2-2-14.7-2-3.5 0-12.1.5-14.7 2-1.7 1-4.9 10.4-4.9 10.4-.4.7.3 1.3 1.5 1.3h36.2c1.2 0 1.9-.6 1.5-1.3" fill="#3e4347"/><path d="m42.1 31.5c-1.9-1.8-4.1-1.8-5.2-1.8-2.9 0-6.9 0-9.8 0-1.1 0-3.5 0-5.2 1.8-.4.4-2.1 2.1-2.1 2.1h24.4c0 0-1.7-1.7-2.1-2.1" fill="#42ade2"/><path d="m40.6 32.8c-.6-.6-.9-1.1-3.6-1.1-2.5 0-8.4 0-10.8 0-1.9 0-2 .5-2.7 1.1-.2.2-.8.9-.8.9h18.8c-.1-.1-.7-.7-.9-.9" fill="#3e4347"/><path d="m7.6 52.2c0 0 .2 1.6.4 2.2.3 1 1.7 1.8 2.8 1.8h42.4c1.1 0 2.5-.7 2.8-1.8.2-.5.4-2.2.4-2.2h-48.8" fill="#42ade2"/><path d="m44.2 57c-5.2 1.5-19.2 1.5-24.4 0-.4-.1-.9-.9-.9-.9h26.2c0 0-.5.8-.9.9" fill="#3e4347"/><path d="m59 41.5c-.4 2.1-2.4 3.8-4.5 3.8h-45c-2.1 0-4.1-1.7-4.5-3.8l-.4-2.1c-.4-2.1 1-3.8 3-3.8h48.8c2.1 0 3.4 1.7 3 3.8l-.4 2.1" fill="#42ade2"/><path d="m25.9 42.2c-.9.6-2.4 1.2-3.5 1.2h-13.8c-1.1 0-2-.9-2-2v-2c0-1.1.9-2 2-2h13.7c1.1 0 2.7.5 3.5 1.2l.8.6c.9.6.9 1.7 0 2.3l-.7.7" fill="#3e4347"/><g fill="#f9f3d9"><ellipse cx="11.4" cy="40.5" rx="2.8" ry="2.9"/><ellipse cx="19.8" cy="40.5" rx="2.8" ry="2.9"/></g><path d="m38.1 42.2c.9.6 2.4 1.2 3.5 1.2h13.7c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2h-13.7c-1.1 0-2.7.5-3.5 1.2l-.8.6c-.9.6-.9 1.7 0 2.3l.8.7" fill="#3e4347"/><g fill="#f9f3d9"><ellipse cx="52.6" cy="40.5" rx="2.8" ry="2.9"/><ellipse cx="44.2" cy="40.5" rx="2.8" ry="2.9"/></g><g fill="#428bc1"><path d="m9.5 31.7c.1.5-.2 1-.8 1h-3.2c-.5 0-1.1-.4-1.2-1l-.4-2c-.1-.5.2-1 .8-1h3.1c.6 0 1.1.4 1.2 1l.5 2"/><path d="m54.5 31.7c-.1.5.2 1 .8 1h3.1c.5 0 1.1-.4 1.2-1l.4-2c.1-.5-.2-1-.8-1h-3.1c-.5 0-1.1.4-1.2 1l-.4 2"/></g><g fill="#b4d7ee"><path d="m38.6 35.6h-13.2l1.9-2h9.4z"/><path d="m25.4 52.2h13.1v3.9h-13.1z"/></g><g fill="#428bc1"><path d="m30.8 33.6h1.9v2h-1.9z"/><path d="m30.8 52.2h1.9v3.9h-1.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f699.svg b/build/js/jsxc/lib/emojione/assets/svg/1f699.svg
index bb3726b..12d1b6d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f699.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f699.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m61.19 41.1c.119.484-.172.979-.643 1.1l-2.118.44-2.053-12.189 1.777-.192c.473-.119.956.177 1.073.661l1.964 10.18"/><path fill="#42ade2" d="m56.27 27.721c0 0 1.286-.474 1.286-2.72 0 0-12.43 0-23.949 0-2.125 0-4.762-.09-7.243 4.493-2.132 3.936-5.252 8.08-5.401 8.233-12.398 0-15.437 6.676-16.228 7.453-1.304 1.282-.858 9.447-.858 9.447h2.344 51.34c0 0 2.57 0 2.57-4.139-.001-4.189-3.857-22.767-3.857-22.767"/><g fill="#3e4347"><path d="m5.75 55.55c0 .507-.423.922-.938.922h-1.874c-.517 0-.938-.415-.938-.922v-4.608c0-.507.421-.922.938-.922h1.875c.515 0 .938.415.938.922v4.608"/><path d="m38.938 55.55c0 .507-.423.922-.938.922h-12c-.517 0-.938-.415-.938-.922v-1.843c0-.508.421-.922.938-.922h12c.515 0 .938.414.938.922v1.843"/><path d="m62 55.55c0 .507-.423.922-.938.922h-1.875c-.517 0-.938-.415-.938-.922v-5.529c0-.507.421-.921.938-.921h1.875c.515 0 .938.414.938.921v5.529"/></g><g fill="#b4d7ee"><path d="m16.06 44.658c3.673 0 6.859 2.174 8.467 5.36-.751-4.196-4.254-7.373-8.467-7.373-4.215 0-7.716 3.177-8.467 7.373 1.605-3.186 4.794-5.36 8.467-5.36"/><path d="m47.938 44.658c3.66 0 6.835 2.174 8.438 5.36-.749-4.196-4.239-7.373-8.438-7.373-4.2 0-7.688 3.177-8.438 7.373 1.601-3.186 4.777-5.36 8.438-5.36"/></g><path fill="#d6eef0" d="m3.875 49.1c0 0-.038-2.453.456-3.01.523-.587 1.816-.821 2.999-.596.943.178-.427 2.626-3.455 3.603"/><g fill="#3e4347"><path d="m41.737 38.17c0 .672.487 1.222 1.084 1.222h9.216c.596 0 .985-.537.865-1.195l-1.575-8.603c-.116-.659-.699-1.198-1.295-1.198h-7.211c-.597 0-1.084.55-1.084 1.222v8.552"/><path d="m39.5 29.614c0-.672-.499-1.222-1.107-1.222h-6.09c-.608 0-1.342.485-1.628 1.078l-4.478 8.853c-.295.586-.038 1.066.569 1.066h11.626c.608 0 1.107-.55 1.107-1.222v-8.553z"/><ellipse cx="16.06" cy="53.705" rx="8.438" ry="8.295"/></g><ellipse fill="#e8e8e8" cx="16.06" cy="53.705" rx="4.821" ry="4.739"/><g fill="#3e4347"><path d="m17.201 51.37c-.204.631-.718 1.148-1.139 1.148s-.935-.518-1.139-1.148l-.022-.072c-.205-.631.319-1.148 1.161-1.148.842 0 1.366.518 1.161 1.148l-.022.072"/><path d="m14.575 51.568c.454.49.654 1.186.441 1.543-.208.359-.92.537-1.579.396l-.076-.018c-.659-.143-.852-.846-.43-1.563.421-.718 1.137-.904 1.591-.413l.053.055"/><path d="m13.438 53.902c.659-.141 1.371.037 1.579.396.213.358.013 1.054-.439 1.544l-.055.055c-.454.49-1.17.303-1.591-.414-.422-.718-.229-1.42.43-1.563l.076-.018"/><path d="m14.924 56.04c.207-.633.718-1.148 1.139-1.148s.935.516 1.139 1.148l.022.071c.205.634-.319 1.149-1.161 1.149-.842 0-1.366-.516-1.161-1.149l.022-.071"/><path d="m17.55 55.841c-.454-.491-.654-1.185-.441-1.544.208-.359.92-.537 1.579-.396l.076.019c.659.142.852.846.43 1.563-.421.717-1.137.903-1.591.412l-.053-.054"/><path d="m18.688 53.51c-.659.143-1.371-.036-1.579-.395-.213-.359-.015-1.054.439-1.543l.055-.055c.454-.491 1.17-.304 1.591.414.422.717.229 1.419-.43 1.563l-.076.016"/></g><g fill="#e8e8e8"><path d="m18.694 57l-1.045.59-4.218-7.18 1.045-.594z"/><path d="m11.844 53.11h8.438v1.186h-8.438z"/><path d="m17.649 49.816l1.045.594-4.218 7.18-1.045-.59z"/></g><ellipse fill="#3e4347" cx="47.938" cy="53.705" rx="8.438" ry="8.295"/><ellipse fill="#e8e8e8" cx="47.938" cy="53.705" rx="4.821" ry="4.739"/><g fill="#3e4347"><path d="m49.08 51.37c-.204.631-.718 1.148-1.139 1.148s-.935-.518-1.139-1.148l-.022-.072c-.205-.631.319-1.148 1.161-1.148.842 0 1.366.518 1.161 1.148l-.022.072"/><path d="m46.45 51.568c.454.49.654 1.186.441 1.543-.208.359-.92.537-1.579.396l-.076-.018c-.659-.143-.852-.846-.43-1.563.421-.718 1.137-.904 1.591-.413l.053.055"/><path d="m45.31 53.902c.659-.141 1.371.037 1.579.396.213.358.013 1.054-.439 1.544l-.055.055c-.454.49-1.17.303-1.591-.414-.422-.718-.229-1.42.43-1.563l.076-.018"/><path d="m46.799 56.04c.207-.633.718-1.148 1.139-1.148s.935.516 1.139 1.148l.022.071c.205.634-.319 1.149-1.161 1.149-.842 0-1.366-.516-1.161-1.149l.022-.071"/><path d="m49.42 55.841c-.454-.491-.654-1.185-.441-1.544.208-.359.92-.537 1.579-.396l.076.019c.659.142.852.846.43 1.563-.421.717-1.137.903-1.591.412l-.053-.054"/><path d="m50.563 53.51c-.659.143-1.371-.036-1.579-.395-.213-.359-.015-1.054.439-1.543l.055-.055c.454-.491 1.17-.304 1.591.414.422.717.229 1.419-.43 1.563l-.076.016"/></g><g fill="#e8e8e8"><path d="m50.569 57l-1.049.59-4.21-7.18 1.04-.594z"/><path d="m43.719 53.11h8.438v1.186h-8.438z"/><path d="m49.52 49.816l1.049.594-4.219 7.18-1.04-.59z"/></g><g fill="#3e4347"><path d="m37.713 21c0 0-2.057.959-2.057 4h2.057c0 0-.172-2.613 1.943-4h-1.943"/><path d="m49.6 21c0 0 2.057.959 2.057 4h-2.057c0 0 .17-2.613-1.943-4h1.943"/><path d="m34.512 22h18.14c1.5 0 1.5-2 0-2h-18.14c-1.5.001-1.5 2 0 2"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.2 41.1c.1.5-.2 1-.6 1.1l-2.1.4-2.1-12.2 1.8-.2c.5-.1 1 .2 1.1.7l1.9 10.2" fill="#3e4347"/><path d="m56.3 27.7c0 0 1.3-.5 1.3-2.7 0 0-12.4 0-23.9 0-2.1 0-4.8-.1-7.2 4.5-2.1 3.9-5.3 8.1-5.4 8.2-12.4 0-15.4 6.7-16.2 7.5-1.3 1.3-.9 9.4-.9 9.4h2.3 51.3c0 0 2.6 0 2.6-4.1-.1-4.2-3.9-22.8-3.9-22.8" fill="#42ade2"/><g fill="#3e4347"><path d="m5.8 55.5c0 .5-.4.9-.9.9h-2c-.5 0-.9-.4-.9-.9v-4.6c0-.5.4-.9.9-.9h1.9c.5 0 .9.4.9.9l.1 4.6"/><path d="m38.9 55.5c0 .5-.4.9-.9.9h-12c-.5 0-.9-.4-.9-.9v-1.8c0-.5.4-.9.9-.9h12c.5 0 .9.4.9.9v1.8"/><path d="m62 55.5c0 .5-.4.9-.9.9h-1.9c-.5 0-.9-.4-.9-.9v-5.5c0-.5.4-.9.9-.9h1.9c.5 0 .9.4.9.9v5.5"/></g><g fill="#b4d7ee"><path d="m16.1 44.7c3.7 0 6.9 2.2 8.5 5.4-.8-4.2-4.3-7.4-8.5-7.4-4.2 0-7.7 3.2-8.5 7.4 1.6-3.3 4.8-5.4 8.5-5.4"/><path d="m47.9 44.7c3.7 0 6.8 2.2 8.4 5.4-.7-4.2-4.2-7.4-8.4-7.4-4.2 0-7.7 3.2-8.4 7.4 1.6-3.3 4.8-5.4 8.4-5.4"/></g><path d="m3.9 49.1c0 0 0-2.5.5-3 .5-.6 1.8-.8 3-.6.9.2-.5 2.6-3.5 3.6" fill="#d6eef0"/><g fill="#3e4347"><path d="m41.7 38.2c0 .7.5 1.2 1.1 1.2h9.2c.6 0 1-.5.9-1.2l-1.6-8.6c-.1-.7-.7-1.2-1.3-1.2h-7.2c-.6 0-1.1.5-1.1 1.2 0 0 0 8.6 0 8.6"/><path d="m39.5 29.6c0-.7-.5-1.2-1.1-1.2h-6.1c-.6 0-1.3.5-1.6 1.1l-4.5 8.9c-.3.6 0 1.1.6 1.1h11.6c.6 0 1.1-.5 1.1-1.2v-8.7"/><ellipse cx="16.1" cy="53.7" rx="8.4" ry="8.3"/></g><ellipse cx="16.1" cy="53.7" rx="4.8" ry="4.7" fill="#e8e8e8"/><g fill="#3e4347"><path d="m17.2 51.4c-.2.6-.7 1.1-1.1 1.1s-.9-.5-1.1-1.1v-.1c-.2-.6.3-1.1 1.2-1.1.7 0 1.2.5 1 1.2"/><path d="m14.6 51.6c.5.5.7 1.2.4 1.5-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.8-.4-1.6.5-.7 1.2-.9 1.7-.3"/><path d="m13.4 53.9c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.5l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.7-.2-1.4.5-1.6"/><path d="m14.9 56c.2-.6.7-1.1 1.1-1.1s.9.5 1.1 1.1v.1c.2.6-.3 1.1-1.2 1.1-.7.1-1.2-.5-1-1.2"/><path d="m17.5 55.8c-.5-.5-.7-1.2-.4-1.5.2-.4.9-.5 1.6-.4h.1c.7.1.9.8.4 1.6-.4.7-1.1.9-1.7.3"/><path d="m18.7 53.5c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.5l.1-.1c.5-.5 1.2-.3 1.6.4.4.7.2 1.4-.5 1.6"/></g><g fill="#e8e8e8"><path d="m18.7 57l-1.1.6-4.2-7.2 1.1-.6z"/><path d="m11.8 53.1h8.4v1.2h-8.4z"/><path d="m17.6 49.8l1.1.6-4.2 7.2-1.1-.6z"/></g><ellipse cx="47.9" cy="53.7" rx="8.4" ry="8.3" fill="#3e4347"/><ellipse cx="47.9" cy="53.7" rx="4.8" ry="4.7" fill="#e8e8e8"/><g fill="#3e4347"><path d="m49.1 51.4c-.2.6-.7 1.1-1.1 1.1s-1-.5-1.2-1.1v-.1c-.2-.6.3-1.1 1.2-1.1.8 0 1.3.5 1.1 1.2"/><path d="m46.5 51.6c.5.5.7 1.2.4 1.5-.2.4-.9.5-1.6.4h-.1c-.7-.1-.9-.8-.4-1.6.4-.7 1.1-.9 1.7-.3"/><path d="m45.3 53.9c.7-.1 1.4 0 1.6.4.2.4 0 1.1-.4 1.5l-.1.1c-.5.5-1.2.3-1.6-.4-.4-.7-.2-1.4.5-1.6"/><path d="m46.8 56c.2-.6.7-1.1 1.1-1.1s.9.5 1.1 1.1v.1c.2.6-.3 1.1-1.2 1.1-.7.1-1.2-.5-1-1.2"/><path d="m49.4 55.8c-.5-.5-.7-1.2-.4-1.5.2-.4.9-.5 1.6-.4h.1c.7.1.9.8.4 1.6-.5.7-1.2.9-1.7.3"/><path d="m50.6 53.5c-.7.1-1.4 0-1.6-.4-.2-.4 0-1.1.4-1.5l.1-.1c.5-.5 1.2-.3 1.6.4.4.7.2 1.4-.5 1.6"/></g><g fill="#e8e8e8"><path d="m50.6 57l-1.1.6-4.2-7.2 1.1-.6z"/><path d="m43.7 53.1h8.4v1.2h-8.4z"/><path d="m49.5 49.8l1.1.6-4.2 7.2-1.1-.6z"/></g><g fill="#3e4347"><path d="m37.7 21c0 0-2.1 1-2.1 4h2.1c0 0-.2-2.6 1.9-4h-1.9"/><path d="m49.6 21c0 0 2.1 1 2.1 4h-2.1c0 0 .2-2.6-1.9-4h1.9"/><path d="m34.5 22h18.1c1.5 0 1.5-2 0-2h-18.1c-1.5 0-1.5 2 0 2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f69a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f69a.svg
index 771a2b3..c543e98 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f69a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f69a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b2c1c0" d="m62 50.783c0-1.029-.844-1.871-1.875-1.871h-56.25c-1.031 0-1.875.842-1.875 1.871v1.869c0 1.027.844 1.869 1.875 1.869h56.25c1.031 0 1.875-.842 1.875-1.869v-1.869"/><ellipse fill="#3e4347" cx="12.313" cy="55.46" rx="6.563" ry="6.545"/><ellipse fill="#b2c1c0" cx="12.313" cy="55.46" rx="3.75" ry="3.74"/><ellipse fill="#3e4347" cx="50.75" cy="55.46" rx="6.563" ry="6.545"/><ellipse fill="#b2c1c0" cx="50.75" cy="55.46" rx="3.75" ry="3.74"/><path fill="#62727a" d="M54.5,19H28.25c-3.095,0-5.625,2.524-5.625,5.609v24.303h37.5V24.609C60.125,21.524,57.593,19,54.5,19z"/><path fill="#f15744" d="m15.13 26.479c-4.453 0-5.625 0-5.625 7.479 0 5.607-5.625 5.607-5.625 11.217v3.738h18.75v-22.434c0 0-5.156 0-7.5 0"/><path fill="#ffce31" d="m5.75 43.3h1.875v3.738h-1.875z"/><path fill="#d33b23" d="m12.785 39.564c-1.095 0-1.676.789-1.293 1.752l1.589 3.979c.384.961 1.595 1.748 2.69 1.748h2.986c1.095 0 1.992-.842 1.992-1.869v-3.74c0-1.027-.897-1.869-1.992-1.869h-5.972"/><g fill="#3e4347"><path d="m20.75 28.348h-7.5c0 0-1.875.208-1.875 2.804v4.465c0 0 0 2.078 1.875 2.078s7.5 0 7.5 0v-9.347"/><circle cx="12.313" cy="51.717" r=".938"/><circle cx="9.06" cy="53.588" r=".936"/><path d="m8.596 56.52c.448-.258 1.023-.104 1.281.342.258.445.104 1.018-.344 1.277-.447.258-1.022.104-1.28-.344-.258-.445-.105-1.018.343-1.275"/><circle cx="12.313" cy="59.2" r=".938"/><circle cx="15.561" cy="57.33" r=".935"/><circle cx="15.561" cy="53.587" r=".935"/></g><ellipse fill="#62727a" cx="12.313" cy="55.46" rx="1.875" ry="1.869"/><g fill="#3e4347"><circle cx="50.75" cy="51.717" r=".938"/><circle cx="47.5" cy="53.588" r=".936"/><path d="m47.03 56.52c.448-.258 1.023-.104 1.281.342.259.445.104 1.018-.344 1.277-.447.258-1.021.104-1.28-.344-.257-.445-.104-1.018.343-1.275"/><circle cx="50.75" cy="59.2" r=".938"/><circle cx="53.998" cy="57.33" r=".935"/><circle cx="53.998" cy="53.587" r=".935"/></g><ellipse fill="#62727a" cx="50.75" cy="55.46" rx="1.875" ry="1.869"/><g fill="#fff"><path d="m28.354 32.725c-.507-.425-1.22-.637-2.25-.637-.597 0-1.161.041-1.604.115v5.421c.328.039.769.072 1.358.072 1.073 0 1.948-.254 2.496-.752.523-.475.86-1.211.86-2.191.001-.94-.327-1.595-.86-2.028m-2.291 4.17c-.205 0-.417 0-.557-.023v-3.942c.14-.033.368-.058.687-.058 1.261 0 1.964.696 1.958 1.913 0 1.399-.778 2.117-2.088 2.11"/><path d="m33.17 35.2h-2.078v1.617h2.323v.826h-3.331v-5.511h3.208v.827h-2.201v1.422h2.078v.819"/><path d="m35.31 36.795v-4.665h-1.01v5.509h3.275v-.844z"/><path d="m38.33 32.13h1.01v5.511h-1.01z"/><path d="m43.744 32.13l-.802 2.519c-.222.67-.419 1.34-.565 1.992h-.017c-.146-.67-.328-1.314-.54-2.01l-.753-2.503h-1.097l1.783 5.511h1.155l1.906-5.511h-1.07"/><path d="m46.42 36.813v-1.613h2.08v-.823h-2.08v-1.422h2.2v-.825h-3.21v5.509h3.331v-.826z"/><path d="m53.1 36.1c-.14-.531-.375-.916-.77-1.063v-.025c.517-.188.998-.67.998-1.381 0-.467-.172-.85-.474-1.104-.368-.31-.908-.441-1.703-.441-.581 0-1.146.049-1.523.115v5.437h1v-2.266h.507c.573.018.835.246.99.965.156.688.288 1.137.368 1.301h1.04c-.115-.214-.261-.853-.433-1.538m-1.875-1.465h-.597v-1.74c.099-.025.304-.048.622-.048.655 0 1.08.278 1.08.882 0 .547-.425.906-1.105.906"/><path d="m57.11 32.13l-.663 1.415c-.188.4-.345.744-.481 1.094h-.017c-.146-.374-.287-.686-.476-1.094l-.663-1.415h-1.145l1.743 3.212v2.299h1.01v-2.322l1.835-3.188h-1.138"/></g><g fill="#3e4347"><path d="m27.313 30.22v-5.609c0-.516.421-.935.938-.935h26.25c.517 0 .938.419.938.935v5.609h1.875v-5.609c0-1.546-1.262-2.805-2.813-2.805h-26.25c-1.551 0-2.813 1.258-2.813 2.805v5.609h1.876"/><path d="m55.44 39.564v3.74c0 .514-.421.934-.938.934h-26.25c-.517 0-.938-.42-.938-.934v-3.74h-1.875v3.74c0 1.545 1.262 2.803 2.813 2.803h26.25c1.551 0 2.813-1.258 2.813-2.803v-3.74h-1.875"/></g><g fill="#b2c1c0"><circle cx="29.19" cy="25.543" r=".938"/><circle cx="53.56" cy="25.543" r=".938"/><circle cx="29.19" cy="42.37" r=".938"/><circle cx="53.56" cy="42.37" r=".938"/></g><path fill="#62727a" d="m37.625 55.46c0 1.027-.844 1.869-1.875 1.869h-7.5c-1.031 0-1.875-.842-1.875-1.869v-1.871c0-1.027.844-1.869 1.875-1.869h7.5c1.031 0 1.875.842 1.875 1.869v1.871"/><path fill="#b2c1c0" d="m28.484 52.652c-.645 0-1.172.422-1.172.934 0 .516.527.936 1.172.936h7.03c.645 0 1.172-.42 1.172-.936 0-.512-.527-.934-1.172-.934h-7.03"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 50.8c0-1-.8-1.9-1.9-1.9h-56.2c-1 0-1.9.8-1.9 1.9v1.9c0 1 .8 1.9 1.9 1.9h56.2c1 0 1.9-.8 1.9-1.9v-1.9" fill="#b2c1c0"/><ellipse cx="12.3" cy="55.5" rx="6.6" ry="6.5" fill="#3e4347"/><ellipse cx="12.3" cy="55.5" rx="3.8" ry="3.7" fill="#b2c1c0"/><ellipse cx="50.8" cy="55.5" rx="6.6" ry="6.5" fill="#3e4347"/><ellipse cx="50.8" cy="55.5" rx="3.8" ry="3.7" fill="#b2c1c0"/><path d="m54.5 19h-26.3c-3.1 0-5.6 2.5-5.6 5.6v24.3h37.5v-24.3c0-3.1-2.5-5.6-5.6-5.6" fill="#62727a"/><path d="m15.1 26.5c-4.5 0-5.6 0-5.6 7.5 0 5.6-5.6 5.6-5.6 11.2v3.7h18.8v-22.4c-.1 0-5.2 0-7.6 0" fill="#f15744"/><path fill="#ffce31" d="m5.8 43.3h1.9v3.7h-1.9z"/><path d="m12.8 39.6c-1.1 0-1.7.8-1.3 1.8l1.6 4c.4 1 1.6 1.7 2.7 1.7h3c1.1 0 2-.8 2-1.9v-3.7c0-1-.9-1.9-2-1.9h-6" fill="#d33b23"/><g fill="#3e4347"><path d="m20.8 28.3h-7.5c0 0-1.9.2-1.9 2.8v4.5c0 0 0 2.1 1.9 2.1s7.5 0 7.5 0v-9.4"/><circle cx="12.3" cy="51.7" r=".9"/><circle cx="9.1" cy="53.6" r=".9"/><path d="m8.6 56.5c.4-.3 1-.1 1.3.3.3.4.1 1-.3 1.3-.4.3-1 .1-1.3-.3-.3-.5-.2-1 .3-1.3"/><circle cx="12.3" cy="59.2" r=".9"/><circle cx="15.6" cy="57.3" r=".9"/><circle cx="15.6" cy="53.6" r=".9"/></g><ellipse cx="12.3" cy="55.5" rx="1.9" ry="1.9" fill="#62727a"/><g fill="#3e4347"><circle cx="50.8" cy="51.7" r=".9"/><circle cx="47.5" cy="53.6" r=".9"/><path d="m47 56.5c.4-.3 1-.1 1.3.3.3.4.1 1-.3 1.3-.4.3-1 .1-1.3-.3-.3-.5-.1-1 .3-1.3"/><circle cx="50.8" cy="59.2" r=".9"/><circle cx="54" cy="57.3" r=".9"/><circle cx="54" cy="53.6" r=".9"/></g><ellipse cx="50.8" cy="55.5" rx="1.9" ry="1.9" fill="#62727a"/><g fill="#fff"><path d="m28.4 32.7c-.5-.4-1.2-.6-2.2-.6-.6 0-1.2 0-1.6.1v5.4c.3 0 .8.1 1.4.1 1.1 0 1.9-.3 2.5-.8.5-.5.9-1.2.9-2.2-.2-.9-.5-1.5-1-2m-2.3 4.2c-.2 0-.4 0-.6 0v-3.9c.1 0 .4-.1.7-.1 1.3 0 2 .7 2 1.9 0 1.4-.8 2.1-2.1 2.1"/><path d="m33.2 35.2h-2.1v1.6h2.3v.8h-3.3v-5.5h3.2v.9h-2.2v1.4h2.1v.8"/><path d="m35.3 36.8v-4.7h-1v5.5h3.3v-.8z"/><path d="m38.3 32.1h1v5.5h-1z"/><path d="m43.7 32.1l-.8 2.5c-.2.7-.4 1.3-.6 2-.1-.7-.3-1.3-.5-2l-.8-2.5h-1l1.8 5.5h1.2l1.9-5.5c-.1 0-1.2 0-1.2 0"/><path d="m46.4 36.8v-1.6h2.1v-.8h-2.1v-1.4h2.2v-.9h-3.2v5.5h3.3v-.8z"/><path d="m53.1 36.1c-.1-.5-.4-.9-.8-1.1.5-.2 1-.7 1-1.4 0-.5-.2-.8-.5-1.1-.4-.3-.9-.4-1.7-.4-.6 0-1.1 0-1.5.1v5.4h1v-2.3h.5c.6 0 .8.2 1 1 .2.7.3 1.1.4 1.3h1c-.1-.2-.2-.8-.4-1.5m-1.9-1.5h-.6v-1.7c.1 0 .3 0 .6 0 .7 0 1.1.3 1.1.9 0 .5-.4.8-1.1.8"/><path d="m57.1 32.1l-.7 1.4c-.2.4-.3.7-.5 1.1-.1-.4-.3-.7-.5-1.1l-.7-1.4h-1.1l1.7 3.2v2.3h1v-2.3l1.8-3.2h-1"/></g><g fill="#3e4347"><path d="m27.3 30.2v-5.6c0-.5.4-.9.9-.9h26.2c.5 0 .9.4.9.9v5.6h1.9v-5.6c0-1.5-1.3-2.8-2.8-2.8h-26.2c-1.6 0-2.8 1.3-2.8 2.8v5.6c0 0 1.9 0 1.9 0"/><path d="m55.4 39.6v3.7c0 .5-.4.9-.9.9h-26.3c-.5 0-.9-.4-.9-.9v-3.7h-1.9v3.7c0 1.5 1.3 2.8 2.8 2.8h26.2c1.6 0 2.8-1.3 2.8-2.8v-3.7h-1.8"/></g><g fill="#b2c1c0"><circle cx="29.2" cy="25.5" r=".9"/><circle cx="53.6" cy="25.5" r=".9"/><circle cx="29.2" cy="42.4" r=".9"/><circle cx="53.6" cy="42.4" r=".9"/></g><path d="m37.6 55.5c0 1-.8 1.9-1.9 1.9h-7.5c-1 0-1.9-.8-1.9-1.9v-1.9c0-1 .8-1.9 1.9-1.9h7.5c1 0 1.9.8 1.9 1.9v1.9" fill="#62727a"/><path d="m28.5 52.7c-.6 0-1.2.4-1.2.9 0 .5.5.9 1.2.9h7c.6 0 1.2-.4 1.2-.9 0-.5-.5-.9-1.2-.9h-7" fill="#b2c1c0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f69b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f69b.svg
index f4ad992..5f0fbc1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f69b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f69b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#3e4347" cx="1" cy="43" rx="1" ry="4"/><path fill="#c94747" d="m16.09 37.5h14.492v12.584h-14.492z"/><g fill="#3e4347"><path d="m26 62.1c0 1.047-.9 1.904-2 1.904h-4c-1.1 0-2-.857-2-1.904v-16.192c0-1.047.9-1.904 2-1.904h4c1.1 0 2 .857 2 1.904v16.192"/><ellipse cx="57" cy="52" rx="4" ry="9"/><ellipse cx="53" cy="52" rx="4" ry="9"/><path d="m52.5 52h5v9h-5z"/><path d="m1 39h3v8h-3z"/><ellipse cx="7" cy="44" rx="1" ry="5"/><ellipse cx="4" cy="44" rx="1" ry="5"/><path d="m4 39h3v10h-3z"/></g><g fill="#b2c1c0"><ellipse cx="4" cy="44" rx=".5" ry="3"/><ellipse cx="1" cy="43" rx=".5" ry="2"/><path d="m38 0c-.232 0-.451.047-.658.12-.217.412-.342.88-.342 1.38 0 .357.068.695.184 1.013.42-.045.816.092.816.487 0 2.873 0 11 0 11h2v-12c0-1.105-.897-2-2-2"/></g><path fill="#f15744" d="m60.733 38.721l-2.756-1.521c0 0-.625-5.326-1.627-6.467s-8.518-2.409-10.02-5.707c-1.504-3.297-2.131-5.706-2.131-5.706s1.754 0 1.129-1.268c-.627-1.269-3.258-3.678-6.389-4.312 0 0-1.492-2.155-3.939-2.79-2.447-.634-22.951-3.556-23.99-.761-2.152 5.79-2.254 11.286-3.131 27.772 0 0-1.879.506-1.879 1.9 0 1.396 0 6.342 0 6.342l10.09 4.891c.326-5.203 1.504-9.06 2.908-9.06 1.65 0 2.99 5.322 2.998 11.902 1.563.561 4.629 1.256 9.928 1.02 8.518-.381 32.06-3.172 32.06-3.172s.377-9.383-3.256-13.06"/><path fill="#3e4347" d="m21.935 18c-.514-.03-.934.407-.934.972v5.136c0 .564.42 1.042.934 1.062l22.434.829c.514.02.766-.389.563-.907l-1.943-4.92c-.205-.519-.793-.968-1.307-.998l-19.747-1.174"/><path fill="#b2c1c0" d="m56.993 43.975c.066.549-.336 1.023-.891 1.055l-16.688.969c-.557.031-1.059-.391-1.117-.939l-1.291-12.06c-.058-.55.348-.999.903-.999h16.65c.555 0 1.064.448 1.129.997l1.305 10.978"/><path fill="#3e4347" d="m13.501 27.965c0 .568.449 1.034 1 1.034h3c.549 0 1-.466 1-1.034v-8.268c0-.568-.412-.847-.916-.619l-3.168 1.437c-.504.228-.916.88-.916 1.448v6"/><path fill="#fed0ac" d="m52.16 30.703c1.111-.003 1.115-.076.008-.163l-16.17-1.273c-1.105-.087-2.893-.373-3.971-.635l-6.182-1.505c-1.078-.262-1.135-.105-.129.349l5.43 2.448c1.01.454 2.059 1.673 2.34 2.709l3.145 11.604c.281 1.035.389 1.016.242-.047l-1.609-11.511c-.146-1.061.641-1.932 1.752-1.935l15.15-.041"/><g fill="#b2c1c0"><path d="m11 34.24c-1.152 1.01-2.848 1.01-4 0 0-6.83 0-13.66 0-20.489 1.152-1.01 2.848-1.01 4 0 0 6.829 0 13.66 0 20.489"/><path d="m8 0c-.232 0-.451.046-.658.12-.217.412-.342.88-.342 1.38 0 .357.068.695.184 1.013.419-.046.816.091.816.487 0 2.873 0 11 0 11h2v-12c0-1.105-.897-2-2-2"/></g><g fill="#3e4347"><path d="m39.31 34.912c.072.537.611.971 1.197.961l4.264-.072c.586-.01 1.01-.459.934-.996-.072-.539-.613-.971-1.199-.961l-4.264.072c-.587.01-1.01.457-.932.996"/><path d="m39.839 38.826c.074.537.613.969 1.199.959l4.264-.07c.586-.01 1.01-.459.934-.996-.074-.539-.615-.971-1.201-.961l-4.262.072c-.588.008-1.01.457-.934.996"/><path d="m40.37 42.738c.072.539.615.971 1.199.961l4.266-.072c.584-.01 1-.457.932-.996-.072-.537-.611-.969-1.199-.959l-4.264.07c-.584.01-1.01.459-.934.996"/><path d="m48.769 33.771c-.586.01-1.01.459-.932.996.072.539.611.971 1.197.961l4.264-.072c.586-.008 1.01-.457.934-.996-.072-.537-.613-.969-1.199-.961l-4.264.072"/><path d="m48.37 38.682c.072.539.613.971 1.199.961l4.264-.072c.586-.01 1.01-.457.934-.996-.074-.537-.615-.971-1.199-.961l-4.266.072c-.586.009-1 .459-.932.996"/><path d="m48.897 42.596c.072.537.611.971 1.197.961l4.266-.072c.586-.01 1-.459.932-.996-.072-.539-.613-.971-1.197-.961l-4.266.072c-.586.009-1.01.457-.932.996"/></g><path fill="#f15744" d="M34 26.828 32.61 27 32 17.17 33.392 17z"/><g fill="#fff"><path d="m38 51.57c0 .564-.449 1.053-.998 1.084l-6 .344c-.549.031-.998-.406-.998-.971v-1.6c0-.564.449-1.053.998-1.084l6-.343c.549-.029.998.406.998.971v1.599"/><path d="m62 49.34c0 .578-.447 1.105-.994 1.172l-4.01.477c-.547.066-.994-.359-.994-.938v-1.396c0-.582.447-1.109.994-1.176l4.01-.477c.547-.064.994.359.994.938v1.4"/></g><path fill-rule="evenodd" fill="#62727a" d="m16.418 55l-10.418-8v-3.442l10.418 6z"/><path fill="#b2c1c0" d="m17 49c-.551 0-1 .449-1 1v8c0 .549.449 1 1 1h1v-10h-1"/><g fill-rule="evenodd"><path fill="#3e4347" d="m14.14 33.699l-.639-.489v-2.47h.639z"/><g fill="#fed0ac"><path d="m17 36.666c0 0 8.854-4.664 12.542 5.213 3.688 9.875-4.814-5.402-12.542-5.213"/><path d="m16.09 12.04c0 0 4.107-2.163 5.819 2.419 1.711 4.582-2.234-2.507-5.819-2.419"/><path d="m57.978 37.2c0 0 5.253 0 5.896 10.857 0 .001-2.802-8.584-5.896-10.857"/></g></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><ellipse cx="2.9" cy="37.4" rx=".5" ry="2.1"/><path d="m2.9 35.3h1.4v4.3h-1.4z"/></g><ellipse cx="2.9" cy="37.4" rx=".2" ry="1.1" fill="#b2c1c0"/><g fill="#3e4347"><ellipse cx="4.7" cy="39.1" rx=".6" ry="2.7"/><ellipse cx="6.6" cy="39.1" rx=".6" ry="2.7"/><path d="m4.7 36.3h1.8v5.4h-1.8z"/></g><g fill="#b2c1c0"><ellipse cx="4.7" cy="39.1" rx=".3" ry="1.4"/><path d="M12.1 44.4 2 35.5 2 25.4 12.1 16.6z"/></g><path fill="#e1e8ed" d="m9.5 44.4l-4.1-4v-4.4l4.1 1.2z"/><path fill="#fff" d="m9.5 37.2l-4.1-1.2h1.6l5.1 1.2z"/><g fill="#62727a"><path d="m12.1 16.6h13.4v27.8h-13.4z"/><path d="m9.5 37.2h4.9v7.2h-4.9z"/></g><path fill="#c94747" d="m21.3 37.2h12.3v11.8h-12.3z"/><g fill="#3e4347"><path d="m29.7 60.2c0 1-.8 1.8-1.7 1.8h-3.4c-.9 0-1.7-.8-1.7-1.8v-15.2c0-1 .8-1.8 1.7-1.8h3.4c.9 0 1.7.8 1.7 1.8v15.2"/><ellipse cx="56" cy="50.7" rx="3.4" ry="8.4"/><ellipse cx="52.6" cy="50.7" rx="3.4" ry="8.4"/><path d="m52.2 50.7h4.2v8.4h-4.2z"/><path d="m11 38.6h2.5v9.4h-2.5z"/><ellipse cx="13.6" cy="43.2" rx=".8" ry="4.7"/><ellipse cx="11" cy="43.2" rx=".9" ry="4.7"/></g><g fill="#b2c1c0"><ellipse cx="11" cy="43.2" rx=".4" ry="2.8"/><path d="m39.9 2c-.2 0-.4 0-.6.1-.2.4-.3.8-.3 1.3 0 .3.1.7.2 1 .4 0 .7.1.7.5 0 2.7 0 10.3 0 10.3h1.7v-11.3c0-1.1-.8-1.9-1.7-1.9"/></g><path d="m59.2 38.3c-.5-.5-2.3-1.4-2.3-1.4s-.5-5-1.4-6.1c-.9-1.1-7.2-2.3-8.5-5.4-1.3-3.1-1.8-5.4-1.8-5.4s1.5 0 1-1.2c-.5-1.2-2.8-3.4-5.4-4 0 0-1.3-2-3.3-2.6-2.1-.6-19.5-3.3-20.4-.7-1.8 5.4-1.9 10.6-2.7 26 0 0-1.6.5-1.6 1.8 0 1.3 0 5.9 0 5.9l8.6 4.6c.3-4.9 1.3-8.5 2.5-8.5 1.4 0 2.5 5 2.5 11.2 1.3.5 3.9 1.2 8.4 1 7.2-.4 27.2-3 27.2-3s.5-8.6-2.8-12.2" fill="#f15744"/><path d="m56 43.2c.1.5-.3 1-.8 1l-14.2.9c-.5 0-.9-.4-.9-.9l-1.1-11.3c0-.5.3-.9.8-.9h14.2c.5 0 .9.4 1 .9l1 10.3" fill="#b2c1c0"/><path d="m19.1 28.2c0 .5.4 1 .9 1h2.5c.5 0 .9-.4.9-1v-7.8c0-.5-.4-.8-.8-.6l-2.7 1.3c-.4.2-.8.8-.8 1.4v5.7" fill="#3e4347"/><path d="m51.9 30.8c.9 0 .9-.1 0-.2l-13.7-1.2c-.9-.1-2.5-.4-3.4-.6l-5.3-1.4c-.9-.2-1-.1-.1.3l4.6 2.3c.9.4 1.7 1.6 2 2.5l2.7 10.9c.2 1 .3 1 .2 0l-1.4-10.8c-.1-1 .5-1.8 1.5-1.8h12.9" fill="#fed0ac"/><g fill="#b2c1c0"><path d="m17 34.1c-1 .9-2.4.9-3.4 0 0-6.4 0-12.8 0-19.2 1-.9 2.4-.9 3.4 0 0 6.4 0 12.8 0 19.2"/><path d="m14.4 2c-.2 0-.4 0-.6.1-.2.4-.3.8-.3 1.3 0 .3.1.7.2 1 .4 0 .7.1.7.5 0 2.7 0 10.3 0 10.3h1.7v-11.3c0-1.1-.8-1.9-1.7-1.9"/></g><g fill="#3e4347"><path d="m41 34.7c.1.5.5.9 1 .9l3.6-.1c.5 0 .9-.4.8-.9-.1-.5-.5-.9-1-.9l-3.6.1c-.5 0-.9.4-.8.9"/><path d="m41.5 38.4c.1.5.5.9 1 .9l3.6-.1c.5 0 .9-.4.8-.9-.1-.5-.5-.9-1-.9l-3.6.1c-.6 0-.9.4-.8.9"/><path d="m41.9 42.1c.1.5.5.9 1 .9l3.6-.1c.5 0 .9-.4.8-.9-.1-.5-.5-.9-1-.9l-3.6.1c-.5-.1-.9.4-.8.9"/><path d="m49 33.7c-.5 0-.9.4-.8.9.1.5.5.9 1 .9l3.6-.1c.5 0 .9-.4.8-.9-.1-.5-.5-.9-1-.9l-3.6.1"/><path d="m48.7 38.3c.1.5.5.9 1 .9l3.6-.1c.5 0 .9-.4.8-.9-.1-.5-.5-.9-1-.9l-3.6.1c-.5-.1-.9.4-.8.9"/><path d="m49.1 41.9c.1.5.5.9 1 .9l3.6-.1c.5 0 .9-.4.8-.9-.1-.5-.5-.9-1-.9l-3.6.1c-.5 0-.8.4-.8.9"/><path d="m34.9 19.4l-8.6-.6c-.4 0-.8.4-.8.9v4.8c0 .5.4 1 .8 1l9 .4-.4-6.5"/><path d="m45.8 25.5l-1.7-4.6c-.1-.5-.6-.9-1.1-.9l-7-.5.4 6.5 8.9.4c.4 0 .7-.4.5-.9"/></g><g fill="#fff"><path d="m39.9 50.3c0 .5-.4 1-.8 1l-5.1.3c-.5 0-.8-.4-.8-.9v-1.5c0-.5.4-1 .8-1l5.1-.3c.5 0 .8.4.8.9v1.5"/><path d="m60.3 48.3c0 .5-.4 1-.8 1.1l-3.5.4c-.5.1-.8-.3-.8-.9v-1.3c0-.5.4-1 .8-1.1l3.4-.4c.5-.1.8.3.8.9v1.3z"/></g><path fill="#62727a" d="m21.6 53.6l-8.9-7.5v-3.3l8.9 5.7z"/><path d="m22.1 47.9c-.5 0-.9.4-.9.9v7.5c0 .5.4.9.9.9h.9v-9.4l-.9.1" fill="#b2c1c0"/><g fill="#fed0ac"><path d="m22.1 36.4c0 0 7.5-4.4 10.7 4.9 3 9.2-4.2-5.1-10.7-4.9"/><path d="m21.3 13.3c0 0 3.5-2 4.9 2.3 1.5 4.2-1.9-2.4-4.9-2.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f69c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f69c.svg
index 34275cf..794c2d3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f69c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f69c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m13 37.999h36v15h-36z"/><path fill="#258399" d="m36.563 35.999h12.437v-13.171c-5.533 0-2.447 4.826-4.525 7.805-2.745 3.923-7.912.426-7.912 5.366"/><path fill="#3e4347" d="m57 37.999h-31l3-23h25l3 23m-28-2h25l-2-19h-21l-2 19"/><g fill="#699635"><path d="m56 15c0 .73-.268 1-1 1h-27c-.731 0-1-.27-1-1v-2c0-.73.269-1 1-1h27c.732 0 1 .27 1 1v2"/><path d="m28 31c0-.689-.31-1-1-1 0 0-18.547 1.199-20.979 2.483-3 1.583-4.615 9.911-2.75 12.517.562.785 2.729 1 3.729 1l18-2c1 0 3-2 3-3v-10"/></g><g fill="#83bf4f"><path d="m37.675 44.999c2.138-4.611 6.428-7.768 11.384-7.768 4.86 0 9.09 3.035 11.263 7.504l3.678-1.736c-2.683-6.238-8.356-10-14.941-10-6.681 0-12.425 3.617-15.06 10l3.675 2"/><path d="m10 45.999c3 0 7 4 7 7h3c0-6-4-10-10-10v3"/></g><path fill="#3e4347" d="m4.267 34.37l8.733-.808-1.604 6.75c-4.667.875-8.513 3.932-8.513 3.932s-2.078-3.233 1.384-9.874"/><path fill="#fff" d="m4.839 35.05l4.161-.385-5.218 3.098c0 0 .145-1.555 1.057-2.713"/><path fill="#83bf4f" d="m0 44.25h8.479v3.131h-8.479z"/><circle fill="#3e4347" cx="9" cy="53.999" r="9"/><path fill="#ffd45c" d="m14 53.999c0 2.762-2.242 5-5 5-2.761 0-5-2.238-5-5 0-2.764 2.239-5 5-5 2.758 0 5 2.236 5 5"/><g fill="#83bf4f"><path d="m0 27.17h2v15h-2z"/><path d="m2 39.25v2c1.656 0 3 1.343 3 3h2c0-2.762-2.239-5-5-5"/></g><g fill="#3e4347"><path d="m35.1 27.23c0 1.012-.82 1.833-1.833 1.833-1.013 0-1.833-.821-1.833-1.833v-6.75c0-1.012.82-1.833 1.833-1.833 1.013 0 1.833.821 1.833 1.833v6.75"/><path d="m32.27 16.399h1v3.333h-1z"/><circle cx="49" cy="49.999" r="13"/></g><path fill="#ffd45c" d="m56 50c0 3.865-3.14 6.998-7 6.998-3.865 0-7-3.133-7-6.998 0-3.869 3.135-7 7-7 3.86 0 7 3.133 7 7"/><g fill="#3e4347"><path d="m16.931 37.999c0 4.234-1.749 4.234-1.749 4.234v-4.234c0-4.232 1.749-4.232 1.749-4.232v4.232"/><path d="m20.419 37.999c0 4.234-1.748 4.234-1.748 4.234v-4.234c0-4.232 1.748-4.232 1.748-4.232v4.232"/><path d="m23.908 37.999c0 4.234-1.749 4.234-1.749 4.234v-4.234c0-4.232 1.749-4.232 1.749-4.232v4.232"/></g><path fill="#d89500" d="m54.32 49.999c0-2.935-2.384-5.316-5.317-5.316s-5.317 2.382-5.317 5.316c0 2.936 2.384 5.318 5.317 5.318s5.317-2.382 5.317-5.318"/><g fill="#ffd45c"><circle cx="49" cy="44.683" r="1.329"/><circle cx="44.39" cy="47.34" r="1.329"/><path d="m43.729 51.51c.636-.367 1.451-.149 1.817.485.366.637.147 1.449-.488 1.816-.634.367-1.449.149-1.815-.486-.366-.635-.147-1.449.486-1.815"/><circle cx="49" cy="55.32" r="1.329"/><circle cx="53.606" cy="52.658" r="1.329"/><circle cx="53.606" cy="47.34" r="1.329"/></g><circle fill="#3e4347" cx="49" cy="49.999" r="2.659"/><circle fill="#d89500" cx="9" cy="53.999" r="3.795"/><g fill="#ffd45c"><circle cx="9" cy="50.2" r=".948"/><circle cx="5.713" cy="52.1" r=".949"/><circle cx="5.713" cy="55.897" r=".949"/><circle cx="9" cy="57.795" r=".948"/><circle cx="12.287" cy="55.897" r=".949"/><circle cx="12.287" cy="52.1" r=".949"/></g><circle fill="#3e4347" cx="9" cy="53.999" r="1.898"/><path fill="#ffd45c" d="m28 33.15l-.021-2.425c0 0-11.22.091-20.861 2.027-1.012.203-1.916 1.538-1.916 1.538 8.333-.936 22.798-1.14 22.798-1.14"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b8331e" d="m28.2 38.6h-23.1v6.5l9.1 7.5h33.7v-14z"/><path d="m52.6 17h-23.4l-2.8 21.4h-21.3v1.6h21.1l4.4 6.4h7.1l17.8-7.8-2.9-21.6m-4.7 19.7v-12.4c-5.2 0-2.3 4.5-4.2 7.3-2.6 3.7-7.4.4-7.4 5h-7.1l1.9-17.8h1.2v1.8c-.5.3-.8.8-.8 1.4v6.3c0 .9.8 1.7 1.7 1.7.9 0 1.7-.8 1.7-1.7v-6.3c0-.9-.8-1.7-1.7-1.7v-1.5h17.6l1.9 17.8-4.8.1" fill="#3e4347"/><g fill="#f14e3a"><path d="m54 17c0 .7-.2 1-.9 1h-24.2c-.7 0-.9-.3-.9-1v-2c0-.7.2-1 .9-1h24.2c.7 0 .9.3.9 1v2"/><path d="m6.9 33.3l21.3-3.3v8.4h-23.9c0 0 1.7-4.1 2.6-5.1"/><path d="m37.3 45.1c2-4.3 6-7.3 10.7-7.3 4.6 0 8.5 2.8 10.6 7l3.4-1.6c-2.5-5.8-7.8-9.4-14-9.4-6.3 0-11.6 3.4-14.1 9.4l3.4 1.9"/></g><circle cx="47.9" cy="49.8" r="12.2" fill="#3e4347"/><path d="m54.5 49.8c0 3.6-2.9 6.6-6.6 6.6-3.6 0-6.6-2.9-6.6-6.6 0-3.6 2.9-6.6 6.6-6.6 3.7 0 6.6 3 6.6 6.6" fill="#ffd45c"/><circle cx="47.9" cy="49.8" r="2.8" fill="#3e4347"/><path d="m15.3 43.6c-2.3-1.1-4.8-1.5-7.1-.9-.7-1.7-2.4-2.9-4.3-2.9v-11.4h-1.9v14.1h1.9v-.9c1.1 0 2.1.7 2.5 1.6-.7.3-1.5.7-2.1 1.2h-2.3v2.9h3l13.6 6.6h2.7c.2-4.5-2-8.4-6-10.3" fill="#f14e3a"/><circle cx="10.4" cy="53.6" r="8.4" fill="#3e4347"/><path d="m15.1 53.6c0 2.6-2.1 4.7-4.7 4.7-2.6 0-4.7-2.1-4.7-4.7s2.1-4.7 4.7-4.7c2.6 0 4.7 2.1 4.7 4.7" fill="#ffd45c"/><circle cx="10.4" cy="53.6" r="1.9" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f69d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f69d.svg
index f89f56d..4244515 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f69d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f69d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aab5bc" d="m2 34.22h60v5.625h-60z"/><path fill="#c5d0d8" d="m2 39.842h60v5.625h-60z"/><path fill="#dfecf4" d="m2 43.12h60v.938h-60z"/><g fill="#3e4347"><path d="m2 34.22h60v.938h-60z"/><path d="m4.813 36.527h3.75v1.875h-3.75z"/><path d="m12.313 36.527h3.75v1.875h-3.75z"/><path d="m19.813 36.527h3.75v1.875h-3.75z"/><path d="m27.313 36.527h3.75v1.875h-3.75z"/></g><path fill="#c5d0d8" d="m9.5 45.47h7.501v16.533h-7.501z"/><path fill="#dfecf4" d="m10.848 45.47h4.688v16.533h-4.688z"/><path fill="#c5d0d8" d="m47 45.47h7.5v16.533h-7.5z"/><path fill="#dfecf4" d="m48.35 45.47h4.688v16.533h-4.688z"/><path fill="#c5d0d8" d="m28.25 45.47h7.501v16.533h-7.501z"/><path fill="#dfecf4" d="m29.598 45.47h4.688v16.533h-4.688z"/><path fill="#c5d0d8" d="M7.741,24.092c0,3.793,9.881,13.501,22.864,13.501H62V24.092H7.741"/><path fill="#3e4347" d="m7.741 24.09c0 .802.465 1.875 1.284 3.058h52.975v-3.058h-54.26"/><path fill="#428bc1" d="m45.534 39.898c-8.639 0-12.67-3.621-16.227-6.816-2.777-2.496-5.402-4.854-9.524-4.854h-9.937c.856 1.021 1.947 2.089 3.253 3.127h6.684c2.925 0 4.915 1.788 7.435 4.053 3.777 3.393 8.479 7.617 18.316 7.617h16.466v-3.127h-16.466"/><path fill="#3e4347" d="m46.37 37.26c-8.638 0-12.67-3.621-16.226-6.816-2.779-2.496-5.402-4.853-9.524-4.853h-11.717v1.39c.372.558.827 1.14 1.364 1.736h10.353c2.923 0 4.913 1.789 7.435 4.053 3.777 3.395 8.479 7.617 18.315 7.617h15.631v-3.127h-15.631"/><path fill="#dfecf4" d="M37.132,2h-2.424C26.846,2,7.741,16.729,7.741,24.092h35.123H62V2H37.132z"/><g fill="#3e4347"><path d="m34.33 6.817c0-3-1.326-3-5.914-3 0 0-13.553 5.912-19.862 17.273 0 0 13.734-3.956 21.567-3.956 2.273 0 4.209-6.999 4.209-10.317"/><path d="m62 3.817v15.273c0 0-.329 0-3.105 0-4.817 0-17.63-15.273-12.06-15.273 3.793 0 15.167 0 15.167 0"/><path d="m42.45 15.416c0 1.501-1.217 2.719-2.719 2.719-1.502 0-2.719-1.217-2.719-2.719v-8.88c0-1.501 1.217-2.719 2.719-2.719 1.502 0 2.719 1.217 2.719 2.719v8.88"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aab5bc" d="m2 34.2h60v5.6h-60z"/><path fill="#c5d0d8" d="m2 39.8h60v5.6h-60z"/><path fill="#dfecf4" d="m2 43.1h60v.9h-60z"/><g fill="#3e4347"><path d="m2 34.2h60v.9h-60z"/><path d="m4.8 36.5h3.7v1.9h-3.7z"/><path d="m12.3 36.5h3.8v1.9h-3.8z"/><path d="m19.8 36.5h3.8v1.9h-3.8z"/><path d="m27.3 36.5h3.8v1.9h-3.8z"/></g><path fill="#c5d0d8" d="m9.5 45.5h7.5v16.5h-7.5z"/><path fill="#dfecf4" d="m10.8 45.5h4.7v16.5h-4.7z"/><path fill="#c5d0d8" d="m47 45.5h7.5v16.5h-7.5z"/><path fill="#dfecf4" d="m48.3 45.5h4.7v16.5h-4.7z"/><path fill="#c5d0d8" d="m28.2 45.5h7.5v16.5h-7.5z"/><path fill="#dfecf4" d="m29.6 45.5h4.7v16.5h-4.7z"/><path d="M7.7,24.1c0,3.8,9.9,13.5,22.9,13.5H62V24.1H7.7" fill="#c5d0d8"/><path d="m7.7 24.1c0 .8.5 1.9 1.3 3.1h53v-3.1h-54.3" fill="#3e4347"/><path d="m45.5 39.9c-8.6 0-12.7-3.6-16.2-6.8-2.8-2.5-5.4-4.9-9.5-4.9h-10c.9 1 1.9 2.1 3.3 3.1h6.7c2.9 0 4.9 1.8 7.4 4.1 3.8 3.4 8.5 7.6 18.3 7.6h16.5v-3.1c0 0-16.5 0-16.5 0" fill="#428bc1"/><path d="m46.4 37.3c-8.6 0-12.7-3.6-16.2-6.8-2.8-2.5-5.4-4.9-9.5-4.9h-11.8v1.4c.4.6.8 1.1 1.4 1.7h10.4c2.9 0 4.9 1.8 7.4 4.1 3.8 3.4 8.5 7.6 18.3 7.6h15.6v-3.1h-15.6" fill="#3e4347"/><path d="M37.1,2h-2.4c-7.9,0-27,14.7-27,22.1h35.1H62V2H37.1z" fill="#dfecf4"/><g fill="#3e4347"><path d="m34.3 6.8c0-3-1.3-3-5.9-3 0 0-13.6 5.9-19.9 17.3 0 0 13.7-4 21.6-4 2.3 0 4.2-7 4.2-10.3"/><path d="m62 3.8v15.3c0 0-.3 0-3.1 0-4.8 0-17.6-15.3-12.1-15.3 3.8 0 15.2 0 15.2 0"/><path d="m42.5 15.4c0 1.5-1.2 2.7-2.7 2.7-1.5 0-2.7-1.2-2.7-2.7v-8.9c0-1.5 1.2-2.7 2.7-2.7 1.5 0 2.7 1.2 2.7 2.7v8.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f69e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f69e.svg
index 55d1440..2bbbd3a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f69e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f69e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#63686b" d="m2 15.84l11.827-5.296 8.894-8.544 3.319 6.68 4.95 3.068 2.885 4.092 2.934-2.948 2.931-1.445 1.59 3.972 2.305 1.384 3.365-4.393 1.684-.421 2.646-4.634 5.09 5.537 1.73 4.512 3.85 4.152v36.694h-60z"/><g fill="#c5d0d8"><path d="m22.721 2l.097 3.791-1.778 1.564-.91 3.13 2.93-1.685 2.07-.602.91.482z"/><path d="m27.11 9.341l-.302 2.287-2.26 3.37-3.508 9.08 2.306-.237 1.202 3.13 1.732-2.708 1.634 1.443.913 6.382 2.692-2.47.338-4.182 1.538 4.182.675 4.273 1.633-8.455-1.828-9.598-2.885-4.092z"/><path d="m39.74 11.447l-.34 4.935-2.64 4.03-.58 6.856 3.56-5.352 1.155 3.52 3.125 6.228v-5.115l-.62-6.137.235-3.611-2.305-1.384z"/><path d="m51.33 7.355l1.391 4.092-1.153.963-.238 5.6-3.13 1.441v5.987l-1.44 5.385 2.98.843 1.875 2.584 2.02-.357 3.995 6.679-.58-4.212 2.35 1.443.485-4.814 2.115 3.974v-15.407l-3.85-4.152-1.73-4.512z"/><path d="m10.365 30.04l1.587-8.122 7.02-5.295-1.682-.603 1.01-4.93-2.836 5.533-2.885 1.507 1.443-4.03-1.395.898.336-3.551-2.596 4.814-1.01 6.559-3.102-8.884-4.254 1.904v21.963z"/></g><path fill="#3e4347" d="m2 58.25h60v1.875h-60z"/><path fill="#89664c" d="m2 60.13h60v1.875h-60z"/><g fill="#dbb471"><path d="m39.5 60.13h3.75v1.875h-3.75z"/><path d="m32 60.13h3.75v1.875h-3.75z"/><path d="m54.5 60.13h3.75v1.875h-3.75z"/><path d="m47 60.13h3.75v1.875h-3.75z"/><path d="m9.5 60.13h3.75v1.875h-3.75z"/><path d="M 2,60.125 H5.75 V62 H2 z"/><path d="m24.5 60.13h3.75v1.875h-3.75z"/><path d="m17 60.13h3.75v1.875h-3.75z"/></g><circle fill="#94989b" cx="27.1" cy="55.12" r="4.399"/><path fill="#3e4347" d="m27.1 58.05c-1.618 0-2.933-1.314-2.933-2.933 0-1.617 1.314-2.933 2.933-2.933s2.933 1.315 2.933 2.933c0 1.618-1.315 2.933-2.933 2.933m0-4.399c-.808 0-1.467.658-1.467 1.466 0 .809.659 1.466 1.467 1.466s1.466-.657 1.466-1.466c0-.808-.658-1.466-1.466-1.466"/><circle fill="#94989b" cx="36.877" cy="55.12" r="4.399"/><path fill="#3e4347" d="m36.877 58.05c-1.619 0-2.934-1.314-2.934-2.933 0-1.617 1.314-2.933 2.934-2.933 1.617 0 2.934 1.315 2.934 2.933 0 1.618-1.317 2.933-2.934 2.933m0-4.399c-.807 0-1.467.658-1.467 1.466 0 .809.66 1.466 1.467 1.466.809 0 1.467-.657 1.467-1.466 0-.808-.658-1.466-1.467-1.466"/><circle fill="#94989b" cx="56.965" cy="55.12" r="4.398"/><path fill="#3e4347" d="m56.965 58.05c-1.619 0-2.934-1.314-2.934-2.933 0-1.617 1.314-2.933 2.934-2.933 1.617 0 2.932 1.315 2.932 2.933-.001 1.618-1.315 2.933-2.932 2.933m0-4.399c-.809 0-1.467.658-1.467 1.466 0 .809.658 1.466 1.467 1.466.807 0 1.465-.657 1.465-1.466 0-.808-.659-1.466-1.465-1.466"/><path fill="#f2b200" d="M62,20.651H25.855c-2.82,0-5.107,2.286-5.107,5.106v29.364H62V25.757V20.651z"/><path fill="#699635" d="M62,20.651H25.855c-2.82,0-5.107,2.286-5.107,5.106v2.554H62V20.651z"/><path fill="#ffe62e" d="m20.748 28.312h41.25v14.04h-41.25z"/><g fill="#3e4347"><path d="m20.15 52.57h.598v2.554h-.598z"/><path d="m18.574 51.29h1.576v5.105h-1.576z"/></g><path fill="#89664c" d="m41.28 50.31h11.27l2.56-2.55h6.89v-2.55h-7.95l-2.55 2.55h-9.16l-2.551-2.55h-19.04v2.55h17.984z"/><g fill="#3e4347"><path d="m60.45 38.824c0 .539-.438.978-.977.978h-5.707c-.539 0-.977-.438-.977-.978v-6.982c0-.539.438-.978.977-.978h5.707c.539 0 .977.438.977.978v6.982"/><path d="m50.75 38.824c0 .539-.438.978-.979.978h-5.703c-.541 0-.977-.438-.977-.978v-6.982c0-.539.436-.978.977-.978h5.703c.541 0 .979.438.979.978v6.982"/><path d="m41.05 38.824c0 .539-.438.978-.977.978h-5.705c-.539 0-.979-.438-.979-.978v-6.982c0-.539.439-.978.979-.978h5.705c.539 0 .977.438.977.978v6.982"/><path d="m31.34 38.824c0 .539-.439.978-.979.978h-5.705c-.539 0-.977-.438-.977-.978v-6.982c0-.539.438-.978.977-.978h5.705c.539 0 .979.438.979.978v6.982"/><path d="m20.748 51.29h41.25v3.83h-41.25z"/></g><g fill="#b4d7ee"><path d="m30.26 37.769c0 .476-.385.86-.859.86h-3.78c-.475 0-.86-.385-.86-.86v-4.872c0-.475.386-.859.86-.859h3.78c.475 0 .859.385.859.859v4.872"/><path d="m39.967 37.769c0 .476-.387.86-.861.86h-3.779c-.475 0-.859-.385-.859-.86v-4.872c0-.475.385-.859.859-.859h3.779c.475 0 .861.385.861.859v4.872"/><path d="m49.67 37.769c0 .476-.385.86-.859.86h-3.779c-.475 0-.861-.385-.861-.86v-4.872c0-.475.387-.859.861-.859h3.779c.475 0 .859.385.859.859v4.872"/><path d="m59.38 37.769c0 .476-.385.86-.859.86h-3.779c-.477 0-.861-.385-.861-.86v-4.872c0-.475.385-.859.861-.859h3.779c.475 0 .859.385.859.859v4.872"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#63686b" d="m2 15.8l11.8-5.3 8.9-8.5 3.3 6.7 5 3 2.9 4.1 2.9-2.9 2.9-1.5 1.6 4 2.3 1.4 3.4-4.4 1.7-.4 2.6-4.6 5.1 5.5 1.8 4.5 3.8 4.2v36.6h-60z"/><g fill="#c5d0d8"><path d="m22.7 2l.1 3.8-1.8 1.6-.9 3.1 3-1.7 2-.6.9.5z"/><path d="m27.1 9.3l-.3 2.3-2.3 3.4-3.5 9.1 2.3-.3 1.2 3.2 1.8-2.7 1.6 1.4.9 6.4 2.7-2.5.4-4.2 1.5 4.2.7 4.3 1.6-8.5-1.8-9.6-2.9-4.1z"/><path d="m39.7 11.4l-.3 5-2.6 4-.6 6.9 3.5-5.4 1.2 3.5 3.1 6.3v-5.1l-.6-6.2.2-3.6-2.3-1.4z"/><path d="m51.3 7.4l1.4 4-1.1 1-.3 5.6-3.1 1.5v5.9l-1.4 5.4 2.9.9 1.9 2.6 2-.4 4 6.7-.6-4.2 2.4 1.4.5-4.8 2.1 4v-15.4l-3.8-4.2-1.8-4.5z"/><path d="m10.4 30l1.6-8.1 7-5.3-1.7-.6 1-4.9-2.8 5.5-2.9 1.5 1.4-4-1.4.9.4-3.6-2.6 4.9-1 6.5-3.1-8.9-4.3 1.9v22z"/></g><path fill="#3e4347" d="m2 58.2h60v1.9h-60z"/><path fill="#89664c" d="m2 60.1h60v1.9h-60z"/><g fill="#dbb471"><path d="m39.5 60.1h3.8v1.9h-3.8z"/><path d="m32 60.1h3.8v1.9h-3.8z"/><path d="m54.5 60.1h3.8v1.9h-3.8z"/><path d="m47 60.1h3.8v1.9h-3.8z"/><path d="m9.5 60.1h3.8v1.9h-3.8z"/><path d="m2 60.1h3.8v1.9h-3.8z"/><path d="m24.5 60.1h3.8v1.9h-3.8z"/><path d="m17 60.1h3.8v1.9h-3.8z"/></g><circle cx="27.1" cy="55.1" r="4.4" fill="#94989b"/><path d="m27.1 58.1c-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9s2.9 1.3 2.9 2.9c0 1.5-1.3 2.9-2.9 2.9m0-4.4c-.8 0-1.5.7-1.5 1.5 0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5c0-.9-.7-1.5-1.5-1.5" fill="#3e4347"/><circle cx="36.9" cy="55.1" r="4.4" fill="#94989b"/><path d="m36.9 58.1c-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9 1.6 0 2.9 1.3 2.9 2.9 0 1.5-1.3 2.9-2.9 2.9m0-4.4c-.8 0-1.5.7-1.5 1.5 0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5-.1-.9-.7-1.5-1.5-1.5" fill="#3e4347"/><circle cx="57" cy="55.1" r="4.4" fill="#94989b"/><path d="m57 58.1c-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9 1.6 0 2.9 1.3 2.9 2.9 0 1.5-1.3 2.9-2.9 2.9m0-4.4c-.8 0-1.5.7-1.5 1.5 0 .8.7 1.5 1.5 1.5.8 0 1.5-.7 1.5-1.5-.1-.9-.7-1.5-1.5-1.5" fill="#3e4347"/><path d="M62,20.7H25.9c-2.8,0-5.1,2.3-5.1,5.1v29.4H62V25.8V20.7z" fill="#f2b200"/><path d="M62,20.7H25.9c-2.8,0-5.1,2.3-5.1,5.1v2.6H62V20.7z" fill="#699635"/><path fill="#ffe62e" d="m20.7 28.3h41.3v14h-41.3z"/><g fill="#3e4347"><path d="m20.1 52.6h.6v2.6h-.6z"/><path d="m18.6 51.3h1.6v5.1h-1.6z"/></g><path fill="#89664c" d="m41.3 50.3h11.3l2.5-2.5h6.9v-2.6h-7.9l-2.6 2.6h-9.2l-2.5-2.6h-19.1v2.6h18z"/><g fill="#3e4347"><path d="m60.5 38.8c0 .5-.4 1-1 1h-5.7c-.5 0-1-.4-1-1v-7c0-.5.4-1 1-1h5.7c.5 0 1 .4 1 1v7"/><path d="m50.8 38.8c0 .5-.4 1-1 1h-5.7c-.5 0-1-.4-1-1v-7c0-.5.4-1 1-1h5.7c.5 0 1 .4 1 1v7"/><path d="m41 38.8c0 .5-.4 1-1 1h-5.7c-.5 0-1-.4-1-1v-7c0-.5.4-1 1-1h5.7c.5 0 1 .4 1 1 0 0 0 7 0 7"/><path d="m31.3 38.8c0 .5-.4 1-1 1h-5.7c-.5 0-1-.4-1-1v-7c0-.5.4-1 1-1h5.7c.5 0 1 .4 1 1v7"/><path d="m20.7 51.3h41.3v3.8h-41.3z"/></g><g fill="#b4d7ee"><path d="m30.3 37.8c0 .5-.4.9-.9.9h-3.8c-.5 0-.9-.4-.9-.9v-4.9c0-.5.4-.9.9-.9h3.8c.5 0 .9.4.9.9v4.9"/><path d="m40 37.8c0 .5-.4.9-.9.9h-3.8c-.5 0-.9-.4-.9-.9v-4.9c0-.5.4-.9.9-.9h3.8c.5 0 .9.4.9.9v4.9"/><path d="m49.7 37.8c0 .5-.4.9-.9.9h-3.8c-.5 0-.9-.4-.9-.9v-4.9c0-.5.4-.9.9-.9h3.8c.5 0 .9.4.9.9v4.9"/><path d="m59.4 37.8c0 .5-.4.9-.9.9h-3.8c-.5 0-.9-.4-.9-.9v-4.9c0-.5.4-.9.9-.9h3.8c.5 0 .9.4.9.9v4.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f69f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f69f.svg
index a27229f..9f19748 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f69f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f69f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m2 9.5h60v1.875h-60z"/><path d="m2 17h60v1.875h-60z"/></g><g fill="#63686b"><path d="m2 11.375h60v5.625h-60z"/><circle cx="54.5" cy="5.75" r="3.75"/></g><circle fill="#3e4347" cx="54.5" cy="5.75" r="2.344"/><circle fill="#63686b" cx="26.375" cy="5.75" r="3.75"/><circle fill="#3e4347" cx="26.375" cy="5.75" r="2.344"/><circle fill="#63686b" cx="35.75" cy="5.75" r="3.75"/><g fill="#3e4347"><circle cx="35.75" cy="5.75" r="2.344"/><path d="m28.25 2h5.625v16.875h-5.625z"/></g><path fill="#63686b" d="m29.19 2h3.75v16.875h-3.75z"/><path fill="#3e4347" d="m56.38 2h5.625v16.875h-5.625z"/><g fill="#63686b"><path d="m57.31 2h3.75v16.875h-3.75z"/><path d="m43.25 27.313h15v24.374h-15z"/></g><path fill="#3e4347" d="m45.13 29.19h11.25v20.624h-11.25z"/><path fill="#63686b" d="m24.5 27.313h15v24.374h-15z"/><path fill="#3e4347" d="m26.375 29.19h11.25v20.624h-11.25z"/><path fill="#63686b" d="m20.75 27.313h-7.5l-7.5 24.374h15z"/><path fill="#3e4347" d="m18.875 29.19v20.622h-11.25l7.505-20.622z"/><g fill="#ed4c5c"><path d="m16.15 23.563c-5.598 0-6.65 3.75-6.65 3.75l-7.5 24.375c0 7.5 0 10.312 14.808 10.312h45.19v-10.312-24.375-3.75c0 0-34.05 0-45.85 0m23.35 3.75v24.375h-15v-24.375h15m-33.75 24.375l7.5-24.375h7.5v24.375h-15m52.5 0h-15v-24.375h15v24.375"/><path d="m24.5 18.875h37.5v3.75h-37.5z"/></g><path fill="#63686b" d="m28.25 22.625h33.75v.938h-33.75z"/><path fill="#fff" d="m2.938 53.12h2.813v2.813h-2.813z"/><path fill="#ffce31" d="m5.75 53.12h5.625v2.813h-5.625z"/><g fill="#94989b"><path d="m25.438 4.813h11.25v1.875h-11.25z"/><path d="m53.56 4.813h8.438v1.875h-8.438z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m2 9.5h60v1.9h-60z"/><path d="m2 17h60v1.9h-60z"/></g><g fill="#63686b"><path d="m2 11.4h60v5.6h-60z"/><circle cx="54.5" cy="5.8" r="3.8"/></g><circle cx="54.5" cy="5.8" r="2.3" fill="#3e4347"/><circle cx="26.4" cy="5.8" r="3.8" fill="#63686b"/><circle cx="26.4" cy="5.8" r="2.3" fill="#3e4347"/><circle cx="35.8" cy="5.8" r="3.8" fill="#63686b"/><g fill="#3e4347"><circle cx="35.8" cy="5.8" r="2.3"/><path d="m28.2 2h5.6v16.9h-5.6z"/></g><path fill="#63686b" d="m29.2 2h3.8v16.9h-3.8z"/><path fill="#3e4347" d="m56.4 2h5.6v16.9h-5.6z"/><g fill="#63686b"><path d="m57.3 2h3.8v16.9h-3.8z"/><path d="m43.2 27.3h15v24.4h-15z"/></g><path fill="#3e4347" d="m45.1 29.2h11.2v20.6h-11.2z"/><path fill="#63686b" d="m24.5 27.3h15v24.4h-15z"/><path fill="#3e4347" d="m26.4 29.2h11.2v20.6h-11.2z"/><path fill="#63686b" d="m20.8 27.3h-7.6l-7.4 24.4h15z"/><path fill="#3e4347" d="m18.9 29.2v20.6h-11.3l7.5-20.6z"/><g fill="#ed4c5c"><path d="m16.1 23.6c-5.6 0-6.6 3.8-6.6 3.8l-7.5 24.3c0 7.5 0 10.3 14.8 10.3h45.2v-10.3-24.4-3.8c0 .1-34 .1-45.9.1m23.4 3.7v24.4h-15v-24.4h15m-33.7 24.4l7.5-24.4h7.5v24.4h-15m52.4 0h-15v-24.4h15v24.4"/><path d="m24.5 18.9h37.5v3.8h-37.5z"/></g><path fill="#63686b" d="m28.2 22.6h33.8v.9h-33.8z"/><path fill="#fff" d="m2.9 53.1h2.8v2.8h-2.8z"/><path fill="#ffce31" d="m5.8 53.1h5.6v2.8h-5.6z"/><g fill="#94989b"><path d="m25.4 4.8h11.2v1.9h-11.2z"/><path d="m53.6 4.8h8.4v1.9h-8.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a0.svg
index 1822dcf..e8eb108 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a0.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m30.716 6.688h3.751v15h-3.751z"/><g fill="#3e4347"><path d="M62 17 2 5.75 2 3.875 62 15.13z"/><path d="m42.31 9.501l-20.623-3.751v-1.875l20.623 3.751z"/><circle cx="21.792" cy="4.813" r="2.812"/></g><circle fill="#94989b" cx="21.792" cy="4.813" r=".938"/><circle fill="#3e4347" cx="42.21" cy="8.563" r="2.813"/><circle fill="#94989b" cx="42.21" cy="8.563" r=".938"/><path fill="#d0d0d0" d="m30.716 14.188h3.751v7.5h-3.751z"/><path fill="#dae3ea" d="M62,51.742C62,57.408,57.409,62,51.744,62H12.258C6.592,62,2,57.408,2,51.742V30.824
- c0-5.666,4.592-10.258,10.258-10.258h39.486C57.409,20.565,62,25.158,62,30.824V51.742z"/><path fill="#3e4347" d="M57.92,47.547H6.08V32.795c0-4.683,3.797-8.479,8.48-8.479h34.88c4.685,0,8.479,3.797,8.479,8.479V47.547z"/><path fill="#ed4c5c" d="M62,51.742C62,57.408,57.409,62,51.744,62H12.258C6.592,62,2,57.408,2,51.742H62z"/><g fill="#dae3ea"><path d="m61.14 55.846c.284-.651.508-1.338.652-2.052h-59.59c.146.714.369 1.4.654 2.052h58.28"/><path d="m43.94 21.526h4.079v26.98h-4.079z"/><path d="m29.96 21.526h4.08v26.98h-4.08z"/><path d="m15.98 21.526h4.079v26.98h-4.079z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m30.7 6.7h3.8v15h-3.8z"/><g fill="#3e4347"><path d="M62 17 2 5.8 2 3.9 62 15.1z"/><path d="m42.3 9.5l-20.6-3.7v-1.9l20.6 3.7z"/><circle cx="21.8" cy="4.8" r="2.8"/></g><circle cx="21.8" cy="4.8" r=".9" fill="#94989b"/><circle cx="42.2" cy="8.6" r="2.8" fill="#3e4347"/><circle cx="42.2" cy="8.6" r=".9" fill="#94989b"/><path fill="#d0d0d0" d="m30.7 14.2h3.8v7.5h-3.8z"/><path d="M62,51.7C62,57.4,57.4,62,51.7,62H12.3C6.6,62,2,57.4,2,51.7V30.8c0-5.7,4.6-10.3,10.3-10.3h39.5
+ c5.7,0,10.3,4.6,10.3,10.3V51.7z" fill="#dae3ea"/><path d="m57.9 47.5h-51.8v-14.7c0-4.7 3.8-8.5 8.5-8.5h34.9c4.7 0 8.5 3.8 8.5 8.5l-.1 14.7" fill="#3e4347"/><path d="M62,51.7C62,57.4,57.4,62,51.7,62H12.3C6.6,62,2,57.4,2,51.7H62z" fill="#ed4c5c"/><g fill="#dae3ea"><path d="m61.1 55.8c.3-.7.5-1.3.7-2.1h-59.6c.1.7.4 1.4.7 2.1h58.2"/><path d="m43.9 21.5h4.1v27h-4.1z"/><path d="m30 21.5h4.1v27h-4.1z"/><path d="m16 21.5h4.1v27h-4.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a1.svg
index 6dde337..84de8fd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m30 11.525h4v12.05h-4z"/><path d="m39.568 13l-15.707-3.063.572-2.956 3.436.671 3.03-2.478 3.926.767 2.127 3.482 3.191.627z"/></g><path fill="#3e4347" d="M62 19.05 2 7.01 2 5 62 17.05z"/><path fill="#ed4c5c" d="m54.959 48.961h-45.917c0 0 0-13.1 0-17.462 0-5.544 4.477-10.04 10-10.04h25.917c5.523 0 10 4.495 10 10.04v17.462"/><path fill="#3e4347" d="m50.98 44.854h-37.96v-11.424c0-4.583 3.701-8.299 8.267-8.299h21.426c4.566 0 8.268 3.715 8.268 8.299v11.424"/><path fill="#dae3ea" d="m54.959 48.961c0 5.544-4.477 10.04-10 10.04h-25.917c-5.523 0-10-4.495-10-10.04h45.917"/><g fill="#ed4c5c"><path d="m24.806 46.862h-2.688c0-11.837 4-24.03 4-24.03h2.688c0 .001-4 12.226-4 24.03"/><path d="m39.2 46.862h2.688c0-11.837-4-24.03-4-24.03h-2.688c0 .001 4 12.226 4 24.03"/><path d="m54.12 52.977c.277-.638.496-1.309.637-2.01h-45.516c.142.699.359 1.37.637 2.01h44.24"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m30 11.5h4v12h-4z"/><path d="m39.6 13l-15.7-3.1.5-2.9 3.5.7 3-2.5 3.9.7 2.1 3.5 3.2.6z"/></g><path fill="#3e4347" d="M62 19.1 2 7 2 5 62 17z"/><path d="M55,49H9c0,0,0-13.1,0-17.5c0-5.5,4.5-10,10-10H45c5.5,0,10,4.5,10,10V49z" fill="#ed4c5c"/><path d="m51 44.9h-38v-11.5c0-4.6 3.7-8.3 8.3-8.3h21.4c4.6 0 8.3 3.7 8.3 8.3v11.5" fill="#3e4347"/><path d="m55 49c0 5.5-4.5 10-10 10h-26c-5.5 0-10-4.5-10-10h46" fill="#dae3ea"/><g fill="#ed4c5c"><path d="m24.8 46.9h-2.7c0-11.8 4-24 4-24h2.7c0-.1-4 12.2-4 24"/><path d="m39.2 46.9h2.7c0-11.8-4-24-4-24h-2.7c0-.1 4 12.2 4 24"/><path d="m54.1 53c.3-.6.5-1.3.6-2h-45.5c.1.7.4 1.4.6 2h44.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a2.svg
index 5522e05..032a22c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m20.454 23.25l-4.833 1.645v1.646l4.833-1.351z"/><path fill="#3e4347" d="m20.454 25.19l-4.833 1.351v1.937l4.833-1.358z"/><path fill="#42ade2" d="m0 53h64v11h-64z"/><g fill="#dae3ea"><circle cx="26.22" cy="13.562" r="3.875"/><circle cx="22.345" cy="10.897" r="4.844"/><circle cx="30.09" cy="16.468" r="1.938"/><circle cx="15.563" cy="9.687" r="5.813"/><circle cx="8.783" cy="6.781" r="6.781"/></g><path fill="#94989b" d="m33.865 17.229c-1.159-.49-2.433-.762-3.771-.762-1.534 0-3.555.366-4.844 1l-.969 7.717h13.563l-3.979-7.957"/><path fill="#62727a" d="m17.501 27.12l-4.844 2.212v5.572h2.906v11.596h25.19v-12.596z"/><path fill="#b2c1c0" d="m17.501 27.12v5.817h2.906v12.592h25.19v-12.592h2.905v-5.817z"/><g fill="#62727a"><path d="m20.407 48.539l-11.625 1.831v-9.684l11.625-5.813z"/><path d="m26.22 35.389c0 .268-.218.484-.484.484h-2.906c-.267 0-.484-.217-.484-.484v-.969c0-.267.218-.484.484-.484h2.906c.267 0 .484.218.484.484v.969"/><path d="m32.03 35.389c0 .268-.218.484-.484.484h-2.906c-.267 0-.484-.217-.484-.484v-.969c0-.267.218-.484.484-.484h2.906c.267 0 .484.218.484.484v.969"/><path d="m37.844 35.389c0 .268-.218.484-.484.484h-2.906c-.267 0-.484-.217-.484-.484v-.969c0-.267.218-.484.484-.484h2.906c.267 0 .484.218.484.484v.969"/><path d="m43.656 35.389c0 .268-.218.484-.484.484h-2.906c-.268 0-.484-.217-.484-.484v-.969c0-.267.217-.484.484-.484h2.906c.267 0 .484.218.484.484v.969"/></g><g fill="#fff"><path d="m12.173 42.663c0-.267-.197-.393-.438-.28l-1.544.721c-.241.113-.439.422-.439.689v1.293c0 .267.205.408.454.314l1.514-.564c.25-.094.454-.387.454-.653v-1.52"/><path d="m15.563 41.08c0-.268-.197-.393-.438-.279l-1.544.72c-.241.113-.439.423-.439.689v1.608c0 .267.205.408.454.314l1.514-.565c.25-.093.454-.387.454-.653v-1.834"/><path d="m16.972 39.94c-.241.114-.439.423-.439.69v1.924c0 .267.204.408.454.314l1.998-.746c.25-.093.454-.387.454-.654v-2.195c0-.267-.197-.393-.438-.279l-2.029.946"/></g><g fill="#b2c1c0"><path d="m4.907 7.252c.468.417.915.777 1.396 1.058.461.298.951.499 1.424.651.955.291 1.919.298 2.925.13l.587-.098.377.465c.233.288.609.657.955.945.362.293.741.569 1.157.785.821.464 1.786.688 2.948.719-.892.747-2.22 1.01-3.452.735-.613-.137-1.201-.381-1.729-.712-.541-.34-.986-.697-1.45-1.245l.964.366c-1.3.258-2.799.095-3.973-.648-.589-.355-1.07-.847-1.442-1.379-.353-.547-.626-1.137-.687-1.772"/><path d="m17.501 10.655c.754.703 1.538 1.036 2.289 1.135.753.104 1.525.004 2.337-.173l.848-.187.313.828c.063.168.237.49.392.708.163.24.352.451.574.649.225.192.493.384.824.521.329.161.709.262 1.143.393-.669.582-1.687.813-2.67.492-.485-.156-.931-.443-1.291-.797-.366-.376-.627-.731-.856-1.298l1.159.642c-1.03.23-2.232.224-3.286-.297-1.046-.514-1.801-1.559-1.776-2.616"/></g><path fill="#f15744" d="m57.964 58.51c0 0-32.815 6.945-48.35 1.232-2.139-.787-4.591-2.158-7.606-5.239v-4.663c0 0 10.956-1.429 24.396-8.629 16.5-8.843 30.992-9.327 35.729-7.265-.002 0-4.164 6.687-4.164 24.564"/><path fill="#d33b23" d="m58.09 53.22c.101-4.057 1.361-5.752 3.03-8.449 5.82-9.395 1-10.821 1-10.821-3.8 6.276-4.03 19.27-4.03 19.27"/><path fill="#fff" d="m61.1 35.988c-6-1.682-19.723-.449-34.933 7.704-13.174 7.06-24.06 7.599-24.17 7.603v.969c.11-.005 11.242-.548 24.624-7.718 14.753-7.905 28.369-9.195 34.12-7.65.114-.309.233-.613.357-.908"/><path fill="#b2c1c0" d="m61.09 36.01c-.123.292-.24.591-.352.896.903.363 2.382 1.188 2.832 2.792.172-.561.285-1.067.351-1.527-.785-1.168-2.01-1.828-2.831-2.161"/><path fill="#62727a" d="m20.454 25.19h25.09v1.938h-25.09z"/><path fill="#ff9d27" d="m20.454 23.25h25.09v1.938h-25.09z"/><path fill="#c5d0d8" d="m17.501 27.12h30.999v5.813h-30.999z"/><g fill="#94989b"><path d="m19.501 28.567h1.438v2.927h-1.438z"/><path d="m23.15 28.567h1.438v2.927h-1.438z"/><path d="m26.791 28.567h1.438v2.927h-1.438z"/><path d="m30.437 28.567h1.438v2.927h-1.438z"/><path d="m34.08 28.567h1.438v2.927h-1.438z"/><path d="m37.727 28.567h1.438v2.927h-1.438z"/><path d="m41.37 28.567h1.438v2.927h-1.438z"/><path d="m45.02 28.567h1.438v2.927h-1.438z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m21.2 23.8l-4.6 1.5v1.6l4.6-1.3z"/><path fill="#3e4347" d="m21.2 25.6l-4.6 1.3v1.8l4.6-1.3z"/><path fill="#75d6ff" d="m2 51.7h60v10.3h-60z"/><path d="m30.2 15.6c0 0-.1 0-.1 0 .1-.3.1-.6.1-.9 0-1.7-1.2-3.2-2.9-3.5-.5-2-2.3-3.5-4.4-3.5-.6 0-1.3.1-1.8.4-1-1.5-2.6-2.4-4.5-2.4-.2 0-.4 0-.6 0-1-2.2-3.2-3.7-5.8-3.7-3.5 0-6.3 2.8-6.3 6.4s2.8 6.4 6.4 6.4c.7 0 1.4-.1 2-.3 1 1.3 2.6 2.2 4.3 2.2 1.2 0 2.3-.4 3.2-1.1.8.8 1.9 1.3 3.1 1.3.2 0 .4 0 .6-.1.6 1 1.8 1.6 3 1.6.7 0 1.3-.2 1.9-.5.2.8.9 1.4 1.8 1.4 1 0 1.8-.8 1.8-1.8 0-1.1-.8-1.9-1.8-1.9" fill="#dae3ea"/><path d="m33.7 18.2c-1.1-.5-2.3-.7-3.5-.7-1.4 0-3.3.3-4.5.9l-.9 7.2h12.7l-3.8-7.4" fill="#94989b"/><path fill="#62727a" d="m18.4 27.4l-4.5 2.1v5.2h2.7v10.9h23.6v-11.8z"/><path fill="#b2c1c0" d="m18.4 27.4v5.5h2.7v11.8h23.6v-11.8h2.8v-5.5z"/><path fill="#62727a" d="m21.1 47.5l-10.9 1.7v-9.1l10.9-5.4z"/><path d="m56.3 56.9c0 0-30.8 6.5-45.3 1.2-2-.7-4.3-2-7.1-4.9v-4.4c0 0 10.3-1.3 22.9-8.1 15.5-8.3 29.1-8.7 33.5-6.8-.1-.1-4 6.2-4 23" fill="#f15744"/><path d="m56.5 51.9c.1-3.8 1.3-5.4 2.8-7.9 5.5-8.8.9-10.1.9-10.1-3.5 5.8-3.7 18-3.7 18" fill="#d33b23"/><path d="m59.3 35.7c-5.6-1.6-18.5-.4-32.7 7.2-12.4 6.7-22.6 7.2-22.7 7.2v.9c.1 0 10.5-.5 23.1-7.2 13.8-7.4 26.6-8.6 32-7.2.1-.3.2-.6.3-.9" fill="#fff"/><path d="m59.3 35.8c-.1.3-.2.6-.3.8.8.3 2.2 1.1 2.7 2.6.2-.5.3-1 .3-1.4-.8-1.1-2-1.7-2.7-2" fill="#b2c1c0"/><path fill="#62727a" d="m21.2 25.6h23.5v1.8h-23.5z"/><path fill="#ff9d27" d="m21.2 23.8h23.5v1.8h-23.5z"/><path fill="#c5d0d8" d="m18.4 27.4h29.1v5.4h-29.1z"/><g fill="#94989b"><path d="m20.3 28.8h1.3v2.7h-1.3z"/><path d="m23.7 28.8h1.3v2.7h-1.3z"/><path d="m27.1 28.8h1.3v2.7h-1.3z"/><path d="m30.5 28.8h1.3v2.7h-1.3z"/><path d="m34 28.8h1.3v2.7h-1.3z"/><path d="m37.4 28.8h1.3v2.7h-1.3z"/><path d="m40.8 28.8h1.3v2.7h-1.3z"/><path d="m44.2 28.8h1.3v2.7h-1.3z"/></g><g fill="#62727a"><path d="m22.9 33.8h3.6v1.8h-3.6z"/><path d="m42.9 34.3l-3.6 1v-1.5h3.6z"/><path d="m33.8 33.8h3.6v1.8h-3.6z"/><path d="m28.4 33.8h3.6v1.8h-3.6z"/></g><g fill="#fff"><path d="m13.5 41.4l-2.3 1.1v2.2l2.3-.9z"/><path d="m20.1 38.1l-2.3 1.2v2.8l2.3-.9z"/><path d="m16.8 39.8l-2.3 1.1v2.5l2.3-.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fb.svg
index a7040fa..a97ed61 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac68" d="m48.07 29.577c-.404 1.378-2.902 1.378-3.098 1.321-.197-.058-2.299-1.406-1.895-2.785.402-1.38.406-1.63 2.967-.879 2.565.751 2.431.963 2.026 2.343"/><path fill="#3b946f" d="m23.356 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.998 1.459l17.697 5.549.91-2.915-17.75-5.652"/><path fill="#cea284" d="m42.28 33.861l.695.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.733-.775 1.248-.604"/><path fill="#e0ac68" d="m42.33 42.26l4.489-13.42h-2.489l-4.45 13.24z"/><path fill="#7a5136" d="M49.35 44.21 61.02 41.3 3 37.426z"/><path fill="#ffe1bd" d="m24.343 26.415v-1.306h-3.834v1.306c0 .721-.598 1.304-1.334 1.304h6.502c-.737 0-1.334-.583-1.334-1.304"/><path fill="#594640" d="m11.19 9.694c0 1.957 0 7.935 0 7.935h22.471c0 0 0-5.978 0-7.935 0-10.258-22.471-10.258-22.471 0"/><path fill="#ffe1bd" d="m10.427 16.27c0-3.554 2.701-1.75 2.701-1.75.49-9.336 3.084-4.294 9.297-4.294 6.219 0 8.811-5.04 9.307 4.294 0 0 2.695-1.804 2.695 1.75 0 1.359-.514 2.472-2.258 2.589-.734 5.497-4.393 6.631-9.744 6.631-5.35 0-9-1.134-9.74-6.631-1.743-.118-2.258-1.23-2.258-2.589"/><g fill="#574137"><path d="m17.927 19.923c0 1.597 2.01 2.936 4.5 2.936 2.484 0 4.5-1.339 4.5-2.936 0 0-2.393.141-4.5.141s-4.5-.141-4.5-.141"/><path d="m25.27 14.938c0 .809.672 1.47 1.498 1.47.828 0 1.502-.661 1.502-1.47 0-.813-.674-1.467-1.502-1.467-.827 0-1.498.654-1.498 1.467"/><ellipse cx="18.09" cy="14.938" rx="1.5" ry="1.47"/></g><path fill="#e6b796" d="m21.427 17.709c0 .543.447.979 1 .979s1-.436 1-.979h-2"/><path fill="#47b892" d="m27.17 27.414h-9.387c-1.477 0-2.674 1.172-2.674 2.617 0 .208.025.411.072.605l2.543 13.576h12.02l-2.572-16.798"/><path fill="#d3976e" d="m59.24 55.24l1.76-11.799-11.725 1.02-46.27-7.04c-.363 8.404 11.678 17.816 11.678 17.816h44.562"/><path fill="#af7146" d="m61 43.44l.012-2.141-11.736 1.883-46.28-5.76c-.035.835.047 1.649.201 2.444l46.08 5.731 11.725-2.157"/><path fill="#d3976e" d="m49.28 43.19v2.41l11.72-2.16.02-2.14z"/><path fill="#ffe1bd" d="m61 54.26h-11.71l-.01-8.66 11.72-2.16z"/><path fill="#42ade2" d="m59.43 50.856c-1.152 0-2.193-.431-2.996-1.12-.957-.82-1.574-2.01-1.574-3.354 0 2.473-2.047 4.474-4.572 4.474s-4.57-2-4.57-4.474c0 2.473-2.047 4.474-4.572 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.047 4.474-4.57 4.474-2.525 0-4.572-2-4.572-4.474 0 1.344-.615 2.533-1.572 3.354-.805.688-1.846 1.12-3 1.12-2.523 0-4.57-2-4.57-4.474v17.618h64v-17.617c-.004 2.472-2.051 4.473-4.576 4.473"/><g fill="#428bc1"><path d="m23.22 61.42c-1.646.195-3.469.094-5.04-.417-2.041-.608-3.855-1.7-5.984-2.078-2.863-.489-5.994-.051-8.672 1.032 3.496-.194 6.844-.525 10.199.683 2.984 1.075 6.375 2.211 9.492.78"/><path d="m35.638 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.6-3.857-1.707-5.988-2.078-2.838-.479-6.02-.074-8.668 1.035 3.484-.221 6.855-.523 10.197.682 2.97 1.073 6.388 2.217 9.492.78"/><path d="m48.06 61.42c-1.492.18-3.672.248-5.03-.417-2.045-.602-3.857-1.707-5.988-2.078-2.859-.491-5.996-.05-8.67 1.032 3.494-.195 6.846-.528 10.199.683 2.976 1.075 6.38 2.214 9.49.78"/><path d="m60.48 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.597-3.855-1.703-5.986-2.078-2.844-.479-6.02-.07-8.672 1.035 3.484-.223 6.857-.522 10.199.682 2.982 1.074 6.376 2.21 9.492.78"/></g><path fill="#3b946f" d="m18.339 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.996 1.459l17.699 5.549.91-2.915-17.75-5.652"/><path fill="#fbbf67" d="m31.09 60.09h-2.487l10.547-31.25h2.494z"/><path fill="#ffe1bd" d="m37.26 33.861l.697.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.173-.503.732-.775 1.246-.604"/><g fill="#fbbf67"><path d="m30.894 56.736c-2.355-.969-6.1 1.094-7.1 4.705h9.371c.975-2.267-.695-4.055-2.271-4.705"/><path d="m43.09 29.551c-.461 1.568-3.301 1.568-3.523 1.503-.225-.065-2.615-1.6-2.156-3.168s.463-1.854 3.377-.999 2.761 1.094 2.302 2.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.1 29.4c-.4 1.4-2.9 1.4-3.1 1.3-.2-.1-2.3-1.4-1.9-2.8.4-1.4.4-1.6 3-.9 2.5.8 2.4 1 2 2.4" fill="#e0ac68"/><path d="m23.4 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path d="m42.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.7-.7 1.2-.6" fill="#ffe1bd"/><path fill="#e0ac68" d="m42.3 42l4.5-13.4h-2.5l-4.4 13.2z"/><path fill="#7a5136" d="M49.3 43.9 61 41 3 37.2z"/><path d="m24.3 26.2v-1.3h-3.8v1.3c0 .7-.6 1.3-1.3 1.3h6.5c-.8 0-1.4-.5-1.4-1.3" fill="#ffe1bd"/><path d="m27.2 27.2h-9.4c-1.5 0-2.7 1.2-2.7 2.6 0 .2 0 .4.1.6l2.5 13.5h12l-2.5-16.7" fill="#47b892"/><path d="m59.2 54.9l1.8-11.8-11.7 1-46.3-6.9c-.4 8.3 11.7 17.7 11.7 17.7h44.5" fill="#d3976e"/><path d="m61 43.1v-2.1l-11.7 1.9-46.3-5.7c0 .8 0 1.6.2 2.4l46.1 5.7 11.7-2.2" fill="#af7146"/><path fill="#d3976e" d="m49.3 42.9v2.4l11.7-2.2v-2.1z"/><path fill="#ffe1bd" d="m61 53.9h-11.7v-8.6l11.7-2.2z"/><path d="m57.7 48.7c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v14.9h60v-14.9c.2 0-1.7 1.6-4.1 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.3 13.6 3.9 18.5 1.5"/><path d="m35.4 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.3 13.7 3.9 18.5 1.5"/><path d="m58.7 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g><path d="m18.3 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path fill="#fbbf67" d="m31.1 59.7h-2.5l10.5-31.1h2.5z"/><path d="m37.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.6-.7 1.2-.6" fill="#ffe1bd"/><g fill="#fbbf67"><path d="m30.9 56.3c-2.4-1-6.1 1.1-7.1 4.7h9.4c.9-2.2-.7-4-2.3-4.7"/><path d="m43.1 29.4c-.5 1.6-3.3 1.6-3.5 1.5-.2-.1-2.6-1.6-2.2-3.1.5-1.6.5-1.8 3.4-1 2.9.8 2.7 1 2.3 2.6"/></g><path d="m11.1 13.9l1.2 2.1h20.3l.9-2.3c0-8.2-1.9-11.6-11-11.7-9.1-.1-11.4 3.5-11.4 11.9" fill="#594640"/><path d="m32.6 13.7c-.1.5-.2.9-.3 1.2-.2.4-.7.7-.7.7s.1-.9.1-2.2c-.5-7.5-1-3.9-9.3-3.9-8.3 0-8.7-3.6-9.3 3.9 0 1.3.1 2.2.1 2.2s-.5-.3-.7-.7c-.1-.3-.2-.7-.3-1.2-.8-.2-1.8 0-1.8 2.2 0 1.4.5 2.6 2.3 2.7.6 4.7 6.9 7.9 9.7 7.9 2.8 0 9.1-3.1 9.7-7.9 1.7-.1 2.3-1.3 2.3-2.7 0-2.2-1-2.4-1.8-2.2" fill="#ffe1bd"/><g fill="#664e27"><circle cx="18.2" cy="16.2" r="1.7"/><circle cx="26.7" cy="16.2" r="1.7"/><path d="m25.2 21.5c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fc.svg
index b7c19ea..4579d7f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac68" d="m48.07 29.577c-.404 1.378-2.902 1.378-3.098 1.321-.197-.058-2.299-1.406-1.895-2.785.402-1.38.406-1.63 2.967-.879 2.565.751 2.431.963 2.026 2.343"/><path fill="#3b946f" d="m23.356 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.998 1.459l17.697 5.549.91-2.915-17.75-5.652"/><path fill="#cea284" d="m42.28 33.861l.695.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.733-.775 1.248-.604"/><path fill="#e0ac68" d="m42.33 42.26l4.489-13.42h-2.489l-4.45 13.24z"/><path fill="#7a5136" d="M49.35 44.21 61.02 41.3 3 37.426z"/><path fill="#fed0ac" d="m24.343 26.415v-1.306h-3.834v1.306c0 .721-.598 1.304-1.334 1.304h6.502c-.737 0-1.334-.583-1.334-1.304"/><path fill="#dbb471" d="m11.19 9.694c0 1.957 0 7.935 0 7.935h22.471c0 0 0-5.978 0-7.935 0-10.258-22.471-10.258-22.471 0"/><path fill="#fed0ac" d="m10.427 16.27c0-3.554 2.701-1.75 2.701-1.75.49-9.336 3.084-4.294 9.297-4.294 6.219 0 8.811-5.04 9.307 4.294 0 0 2.695-1.804 2.695 1.75 0 1.359-.514 2.472-2.258 2.589-.734 5.497-4.393 6.631-9.744 6.631-5.35 0-9-1.134-9.74-6.631-1.743-.118-2.258-1.23-2.258-2.589"/><g fill="#574137"><path d="m17.927 19.923c0 1.597 2.01 2.936 4.5 2.936 2.484 0 4.5-1.339 4.5-2.936 0 0-2.393.141-4.5.141s-4.5-.141-4.5-.141"/><path d="m25.27 14.938c0 .809.672 1.47 1.498 1.47.828 0 1.502-.661 1.502-1.47 0-.813-.674-1.467-1.502-1.467-.827 0-1.498.654-1.498 1.467"/><ellipse cx="18.09" cy="14.938" rx="1.5" ry="1.47"/></g><path fill="#e0a372" d="m21.427 17.709c0 .543.447.979 1 .979s1-.436 1-.979h-2"/><path fill="#47b892" d="m27.17 27.414h-9.387c-1.477 0-2.674 1.172-2.674 2.617 0 .208.025.411.072.605l2.543 13.576h12.02l-2.572-16.798"/><path fill="#d3976e" d="m59.24 55.24l1.76-11.799-11.725 1.02-46.27-7.04c-.363 8.404 11.678 17.816 11.678 17.816h44.562"/><path fill="#af7146" d="m61 43.44l.012-2.141-11.736 1.883-46.28-5.76c-.035.835.047 1.649.201 2.444l46.08 5.731 11.725-2.157"/><path fill="#d3976e" d="m49.28 43.19v2.41l11.72-2.16.02-2.14z"/><path fill="#fed0ac" d="m61 54.26h-11.71l-.01-8.66 11.72-2.16z"/><path fill="#42ade2" d="m59.43 50.856c-1.152 0-2.193-.431-2.996-1.12-.957-.82-1.574-2.01-1.574-3.354 0 2.473-2.047 4.474-4.572 4.474s-4.57-2-4.57-4.474c0 2.473-2.047 4.474-4.572 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.047 4.474-4.57 4.474-2.525 0-4.572-2-4.572-4.474 0 1.344-.615 2.533-1.572 3.354-.805.688-1.846 1.12-3 1.12-2.523 0-4.57-2-4.57-4.474v17.618h64v-17.617c-.004 2.472-2.051 4.473-4.576 4.473"/><g fill="#428bc1"><path d="m23.22 61.42c-1.646.195-3.469.094-5.04-.417-2.041-.608-3.855-1.7-5.984-2.078-2.863-.489-5.994-.051-8.672 1.032 3.496-.194 6.844-.525 10.199.683 2.984 1.075 6.375 2.211 9.492.78"/><path d="m35.638 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.6-3.857-1.707-5.988-2.078-2.838-.479-6.02-.074-8.668 1.035 3.484-.221 6.855-.523 10.197.682 2.97 1.073 6.388 2.217 9.492.78"/><path d="m48.06 61.42c-1.492.18-3.672.248-5.03-.417-2.045-.602-3.857-1.707-5.988-2.078-2.859-.491-5.996-.05-8.67 1.032 3.494-.195 6.846-.528 10.199.683 2.976 1.075 6.38 2.214 9.49.78"/><path d="m60.48 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.597-3.855-1.703-5.986-2.078-2.844-.479-6.02-.07-8.672 1.035 3.484-.223 6.857-.522 10.199.682 2.982 1.074 6.376 2.21 9.492.78"/></g><path fill="#3b946f" d="m18.339 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.996 1.459l17.699 5.549.91-2.915-17.75-5.652"/><path fill="#fbbf67" d="m31.09 60.09h-2.487l10.547-31.25h2.494z"/><path fill="#fed0ac" d="m37.26 33.861l.697.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.173-.503.732-.775 1.246-.604"/><g fill="#fbbf67"><path d="m30.894 56.736c-2.355-.969-6.1 1.094-7.1 4.705h9.371c.975-2.267-.695-4.055-2.271-4.705"/><path d="m43.09 29.551c-.461 1.568-3.301 1.568-3.523 1.503-.225-.065-2.615-1.6-2.156-3.168s.463-1.854 3.377-.999 2.761 1.094 2.302 2.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.1 29.4c-.4 1.4-2.9 1.4-3.1 1.3-.2-.1-2.3-1.4-1.9-2.8.4-1.4.4-1.6 3-.9 2.5.8 2.4 1 2 2.4" fill="#e0ac68"/><path d="m23.4 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path d="m42.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.7-.7 1.2-.6" fill="#fed0ac"/><path fill="#e0ac68" d="m42.3 42l4.5-13.4h-2.5l-4.4 13.2z"/><path fill="#7a5136" d="M49.3 43.9 61 41 3 37.2z"/><path d="m24.3 26.2v-1.3h-3.8v1.3c0 .7-.6 1.3-1.3 1.3h6.5c-.8 0-1.4-.5-1.4-1.3" fill="#fed0ac"/><path d="m27.2 27.2h-9.4c-1.5 0-2.7 1.2-2.7 2.6 0 .2 0 .4.1.6l2.5 13.5h12l-2.5-16.7" fill="#47b892"/><path d="m59.2 54.9l1.8-11.8-11.7 1-46.3-6.9c-.4 8.3 11.7 17.7 11.7 17.7h44.5" fill="#d3976e"/><path d="m61 43.1v-2.1l-11.7 1.9-46.3-5.7c0 .8 0 1.6.2 2.4l46.1 5.7 11.7-2.2" fill="#af7146"/><path fill="#d3976e" d="m49.3 42.9v2.4l11.7-2.2v-2.1z"/><path fill="#fed0ac" d="m61 53.9h-11.7v-8.6l11.7-2.2z"/><path d="m57.7 48.7c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v14.9h60v-14.9c.2 0-1.7 1.6-4.1 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.3 13.6 3.9 18.5 1.5"/><path d="m35.4 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.3 13.7 3.9 18.5 1.5"/><path d="m58.7 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g><path d="m18.3 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path fill="#fbbf67" d="m31.1 59.7h-2.5l10.5-31.1h2.5z"/><path d="m37.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.6-.7 1.2-.6" fill="#fed0ac"/><g fill="#fbbf67"><path d="m30.9 56.3c-2.4-1-6.1 1.1-7.1 4.7h9.4c.9-2.2-.7-4-2.3-4.7"/><path d="m43.1 29.4c-.5 1.6-3.3 1.6-3.5 1.5-.2-.1-2.6-1.6-2.2-3.1.5-1.6.5-1.8 3.4-1 2.9.8 2.7 1 2.3 2.6"/></g><path d="m11.1 13.9l1.2 2.1h20.3l.9-2.3c0-8.2-1.9-11.6-11-11.7-9.1-.1-11.4 3.5-11.4 11.9" fill="#dbb471"/><path d="m32.6 13.7c-.1.5-.2.9-.3 1.2-.2.4-.7.7-.7.7s.1-.9.1-2.2c-.5-7.5-1-3.9-9.3-3.9-8.3 0-8.7-3.6-9.3 3.9 0 1.3.1 2.2.1 2.2s-.5-.3-.7-.7c-.1-.3-.2-.7-.3-1.2-.8-.2-1.8 0-1.8 2.2 0 1.4.5 2.6 2.3 2.7.6 4.7 6.9 7.9 9.7 7.9 2.8 0 9.1-3.1 9.7-7.9 1.7-.1 2.3-1.3 2.3-2.7 0-2.2-1-2.4-1.8-2.2" fill="#fed0ac"/><g fill="#664e27"><circle cx="18.2" cy="16.2" r="1.7"/><circle cx="26.7" cy="16.2" r="1.7"/><path d="m25.2 21.5c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fd.svg
index e53c0b6..30f40ac 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac68" d="m48.07 29.577c-.404 1.378-2.902 1.378-3.098 1.321-.197-.058-2.299-1.406-1.895-2.785.402-1.38.406-1.63 2.967-.879 2.565.751 2.431.963 2.026 2.343"/><path fill="#3b946f" d="m23.356 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.998 1.459l17.697 5.549.91-2.915-17.75-5.652"/><path fill="#b58360" d="m42.28 33.861l.695.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.733-.775 1.248-.604"/><path fill="#e0ac68" d="m42.33 42.26l4.489-13.42h-2.489l-4.45 13.24z"/><path fill="#7a5136" d="M49.35 44.21 61.02 41.3 3 37.426z"/><path fill="#d6a57c" d="m24.343 26.415v-1.306h-3.834v1.306c0 .721-.598 1.304-1.334 1.304h6.502c-.737 0-1.334-.583-1.334-1.304"/><path fill="#594640" d="m11.19 9.694c0 1.957 0 7.935 0 7.935h22.471c0 0 0-5.978 0-7.935 0-10.258-22.471-10.258-22.471 0"/><path fill="#d6a57c" d="m10.427 16.27c0-3.554 2.701-1.75 2.701-1.75.49-9.336 3.084-4.294 9.297-4.294 6.219 0 8.811-5.04 9.307 4.294 0 0 2.695-1.804 2.695 1.75 0 1.359-.514 2.472-2.258 2.589-.734 5.497-4.393 6.631-9.744 6.631-5.35 0-9-1.134-9.74-6.631-1.743-.118-2.258-1.23-2.258-2.589"/><g fill="#574137"><path d="m17.927 19.923c0 1.597 2.01 2.936 4.5 2.936 2.484 0 4.5-1.339 4.5-2.936 0 0-2.393.141-4.5.141s-4.5-.141-4.5-.141"/><path d="m25.27 14.938c0 .809.672 1.47 1.498 1.47.828 0 1.502-.661 1.502-1.47 0-.813-.674-1.467-1.502-1.467-.827 0-1.498.654-1.498 1.467"/><ellipse cx="18.09" cy="14.938" rx="1.5" ry="1.47"/></g><path fill="#b58360" d="m21.427 17.709c0 .543.447.979 1 .979s1-.436 1-.979h-2"/><path fill="#47b892" d="m27.17 27.414h-9.387c-1.477 0-2.674 1.172-2.674 2.617 0 .208.025.411.072.605l2.543 13.576h12.02l-2.572-16.798"/><path fill="#d3976e" d="m59.24 55.24l1.76-11.799-11.725 1.02-46.27-7.04c-.363 8.404 11.678 17.816 11.678 17.816h44.562"/><path fill="#af7146" d="m61 43.44l.012-2.141-11.736 1.883-46.28-5.76c-.035.835.047 1.649.201 2.444l46.08 5.731 11.725-2.157"/><path fill="#d3976e" d="m49.28 43.19v2.41l11.72-2.16.02-2.14z"/><path fill="#d6a57c" d="m61 54.26h-11.71l-.01-8.66 11.72-2.16z"/><path fill="#42ade2" d="m59.43 50.856c-1.152 0-2.193-.431-2.996-1.12-.957-.82-1.574-2.01-1.574-3.354 0 2.473-2.047 4.474-4.572 4.474s-4.57-2-4.57-4.474c0 2.473-2.047 4.474-4.572 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.047 4.474-4.57 4.474-2.525 0-4.572-2-4.572-4.474 0 1.344-.615 2.533-1.572 3.354-.805.688-1.846 1.12-3 1.12-2.523 0-4.57-2-4.57-4.474v17.618h64v-17.617c-.004 2.472-2.051 4.473-4.576 4.473"/><g fill="#428bc1"><path d="m23.22 61.42c-1.646.195-3.469.094-5.04-.417-2.041-.608-3.855-1.7-5.984-2.078-2.863-.489-5.994-.051-8.672 1.032 3.496-.194 6.844-.525 10.199.683 2.984 1.075 6.375 2.211 9.492.78"/><path d="m35.638 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.6-3.857-1.707-5.988-2.078-2.838-.479-6.02-.074-8.668 1.035 3.484-.221 6.855-.523 10.197.682 2.97 1.073 6.388 2.217 9.492.78"/><path d="m48.06 61.42c-1.492.18-3.672.248-5.03-.417-2.045-.602-3.857-1.707-5.988-2.078-2.859-.491-5.996-.05-8.67 1.032 3.494-.195 6.846-.528 10.199.683 2.976 1.075 6.38 2.214 9.49.78"/><path d="m60.48 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.597-3.855-1.703-5.986-2.078-2.844-.479-6.02-.07-8.672 1.035 3.484-.223 6.857-.522 10.199.682 2.982 1.074 6.376 2.21 9.492.78"/></g><path fill="#3b946f" d="m18.339 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.996 1.459l17.699 5.549.91-2.915-17.75-5.652"/><path fill="#fbbf67" d="m31.09 60.09h-2.487l10.547-31.25h2.494z"/><path fill="#d6a57c" d="m37.26 33.861l.697.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.173-.503.732-.775 1.246-.604"/><g fill="#fbbf67"><path d="m30.894 56.736c-2.355-.969-6.1 1.094-7.1 4.705h9.371c.975-2.267-.695-4.055-2.271-4.705"/><path d="m43.09 29.551c-.461 1.568-3.301 1.568-3.523 1.503-.225-.065-2.615-1.6-2.156-3.168s.463-1.854 3.377-.999 2.761 1.094 2.302 2.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.1 29.4c-.4 1.4-2.9 1.4-3.1 1.3-.2-.1-2.3-1.4-1.9-2.8.4-1.4.4-1.6 3-.9 2.5.8 2.4 1 2 2.4" fill="#e0ac68"/><path d="m23.4 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path d="m42.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.7-.7 1.2-.6" fill="#d6a57c"/><path fill="#e0ac68" d="m42.3 42l4.5-13.4h-2.5l-4.4 13.2z"/><path fill="#7a5136" d="M49.3 43.9 61 41 3 37.2z"/><path d="m24.3 26.2v-1.3h-3.8v1.3c0 .7-.6 1.3-1.3 1.3h6.5c-.8 0-1.4-.5-1.4-1.3" fill="#d6a57c"/><path d="m27.2 27.2h-9.4c-1.5 0-2.7 1.2-2.7 2.6 0 .2 0 .4.1.6l2.5 13.5h12l-2.5-16.7" fill="#47b892"/><path d="m59.2 54.9l1.8-11.8-11.7 1-46.3-6.9c-.4 8.3 11.7 17.7 11.7 17.7h44.5" fill="#d3976e"/><path d="m61 43.1v-2.1l-11.7 1.9-46.3-5.7c0 .8 0 1.6.2 2.4l46.1 5.7 11.7-2.2" fill="#af7146"/><path fill="#d3976e" d="m49.3 42.9v2.4l11.7-2.2v-2.1z"/><path fill="#d6a57c" d="m61 53.9h-11.7v-8.6l11.7-2.2z"/><path d="m57.7 48.7c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v14.9h60v-14.9c.2 0-1.7 1.6-4.1 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.3 13.6 3.9 18.5 1.5"/><path d="m35.4 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.3 13.7 3.9 18.5 1.5"/><path d="m58.7 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g><path d="m18.3 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path fill="#fbbf67" d="m31.1 59.7h-2.5l10.5-31.1h2.5z"/><path d="m37.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.6-.7 1.2-.6" fill="#d6a57c"/><g fill="#fbbf67"><path d="m30.9 56.3c-2.4-1-6.1 1.1-7.1 4.7h9.4c.9-2.2-.7-4-2.3-4.7"/><path d="m43.1 29.4c-.5 1.6-3.3 1.6-3.5 1.5-.2-.1-2.6-1.6-2.2-3.1.5-1.6.5-1.8 3.4-1 2.9.8 2.7 1 2.3 2.6"/></g><path d="m11.1 13.9l1.2 2.1h20.3l.9-2.3c0-8.2-1.9-11.6-11-11.7-9.1-.1-11.4 3.5-11.4 11.9" fill="#594640"/><path d="m32.6 13.7c-.1.5-.2.9-.3 1.2-.2.4-.7.7-.7.7s.1-.9.1-2.2c-.5-7.5-1-3.9-9.3-3.9-8.3 0-8.7-3.6-9.3 3.9 0 1.3.1 2.2.1 2.2s-.5-.3-.7-.7c-.1-.3-.2-.7-.3-1.2-.8-.2-1.8 0-1.8 2.2 0 1.4.5 2.6 2.3 2.7.6 4.7 6.9 7.9 9.7 7.9 2.8 0 9.1-3.1 9.7-7.9 1.7-.1 2.3-1.3 2.3-2.7 0-2.2-1-2.4-1.8-2.2" fill="#d6a57c"/><g fill="#664e27"><circle cx="18.2" cy="16.2" r="1.7"/><circle cx="26.7" cy="16.2" r="1.7"/><path d="m25.2 21.5c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fe.svg
index 247b418..3b64992 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac68" d="m48.07 29.577c-.404 1.378-2.902 1.378-3.098 1.321-.197-.058-2.299-1.406-1.895-2.785.402-1.38.406-1.63 2.967-.879 2.565.751 2.431.963 2.026 2.343"/><path fill="#3b946f" d="m23.356 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.998 1.459l17.697 5.549.91-2.915-17.75-5.652"/><path fill="#935e3e" d="m42.28 33.861l.695.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.733-.775 1.248-.604"/><path fill="#e0ac68" d="m42.33 42.26l4.489-13.42h-2.489l-4.45 13.24z"/><path fill="#7a5136" d="M49.35 44.21 61.02 41.3 3 37.426z"/><path fill="#b47d56" d="m24.343 26.415v-1.306h-3.834v1.306c0 .721-.598 1.304-1.334 1.304h6.502c-.737 0-1.334-.583-1.334-1.304"/><path fill="#231f20" d="m11.19 9.694c0 1.957 0 7.935 0 7.935h22.471c0 0 0-5.978 0-7.935 0-10.258-22.471-10.258-22.471 0"/><path fill="#b47d56" d="m10.427 16.27c0-3.554 2.701-1.75 2.701-1.75.49-9.336 3.084-4.294 9.297-4.294 6.219 0 8.811-5.04 9.307 4.294 0 0 2.695-1.804 2.695 1.75 0 1.359-.514 2.472-2.258 2.589-.734 5.497-4.393 6.631-9.744 6.631-5.35 0-9-1.134-9.74-6.631-1.743-.118-2.258-1.23-2.258-2.589"/><g fill="#47352d"><path d="m17.927 19.923c0 1.597 2.01 2.936 4.5 2.936 2.484 0 4.5-1.339 4.5-2.936 0 0-2.393.141-4.5.141s-4.5-.141-4.5-.141"/><path d="m25.27 14.938c0 .809.672 1.47 1.498 1.47.828 0 1.502-.661 1.502-1.47 0-.813-.674-1.467-1.502-1.467-.827 0-1.498.654-1.498 1.467"/><ellipse cx="18.09" cy="14.938" rx="1.5" ry="1.47"/></g><path fill="#935e3e" d="m21.427 17.709c0 .543.447.979 1 .979s1-.436 1-.979h-2"/><path fill="#47b892" d="m27.17 27.414h-9.387c-1.477 0-2.674 1.172-2.674 2.617 0 .208.025.411.072.605l2.543 13.576h12.02l-2.572-16.798"/><path fill="#d3976e" d="m59.24 55.24l1.76-11.799-11.725 1.02-46.27-7.04c-.363 8.404 11.678 17.816 11.678 17.816h44.562"/><path fill="#af7146" d="m61 43.44l.012-2.141-11.736 1.883-46.28-5.76c-.035.835.047 1.649.201 2.444l46.08 5.731 11.725-2.157"/><path fill="#d3976e" d="m49.28 43.19v2.41l11.72-2.16.02-2.14z"/><path fill="#b47d56" d="m61 54.26h-11.71l-.01-8.66 11.72-2.16z"/><path fill="#42ade2" d="m59.43 50.856c-1.152 0-2.193-.431-2.996-1.12-.957-.82-1.574-2.01-1.574-3.354 0 2.473-2.047 4.474-4.572 4.474s-4.57-2-4.57-4.474c0 2.473-2.047 4.474-4.572 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.047 4.474-4.57 4.474-2.525 0-4.572-2-4.572-4.474 0 1.344-.615 2.533-1.572 3.354-.805.688-1.846 1.12-3 1.12-2.523 0-4.57-2-4.57-4.474v17.618h64v-17.617c-.004 2.472-2.051 4.473-4.576 4.473"/><g fill="#428bc1"><path d="m23.22 61.42c-1.646.195-3.469.094-5.04-.417-2.041-.608-3.855-1.7-5.984-2.078-2.863-.489-5.994-.051-8.672 1.032 3.496-.194 6.844-.525 10.199.683 2.984 1.075 6.375 2.211 9.492.78"/><path d="m35.638 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.6-3.857-1.707-5.988-2.078-2.838-.479-6.02-.074-8.668 1.035 3.484-.221 6.855-.523 10.197.682 2.97 1.073 6.388 2.217 9.492.78"/><path d="m48.06 61.42c-1.492.18-3.672.248-5.03-.417-2.045-.602-3.857-1.707-5.988-2.078-2.859-.491-5.996-.05-8.67 1.032 3.494-.195 6.846-.528 10.199.683 2.976 1.075 6.38 2.214 9.49.78"/><path d="m60.48 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.597-3.855-1.703-5.986-2.078-2.844-.479-6.02-.07-8.672 1.035 3.484-.223 6.857-.522 10.199.682 2.982 1.074 6.376 2.21 9.492.78"/></g><path fill="#3b946f" d="m18.339 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.996 1.459l17.699 5.549.91-2.915-17.75-5.652"/><path fill="#fbbf67" d="m31.09 60.09h-2.487l10.547-31.25h2.494z"/><path fill="#b47d56" d="m37.26 33.861l.697.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.173-.503.732-.775 1.246-.604"/><g fill="#fbbf67"><path d="m30.894 56.736c-2.355-.969-6.1 1.094-7.1 4.705h9.371c.975-2.267-.695-4.055-2.271-4.705"/><path d="m43.09 29.551c-.461 1.568-3.301 1.568-3.523 1.503-.225-.065-2.615-1.6-2.156-3.168s.463-1.854 3.377-.999 2.761 1.094 2.302 2.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.1 29.4c-.4 1.4-2.9 1.4-3.1 1.3-.2-.1-2.3-1.4-1.9-2.8.4-1.4.4-1.6 3-.9 2.5.8 2.4 1 2 2.4" fill="#e0ac68"/><path d="m23.4 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path d="m42.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.7-.7 1.2-.6" fill="#b47d56"/><path fill="#e0ac68" d="m42.3 42l4.5-13.4h-2.5l-4.4 13.2z"/><path fill="#7a5136" d="M49.3 43.9 61 41 3 37.2z"/><path d="m24.3 26.2v-1.3h-3.8v1.3c0 .7-.6 1.3-1.3 1.3h6.5c-.8 0-1.4-.5-1.4-1.3" fill="#b47d56"/><path d="m27.2 27.2h-9.4c-1.5 0-2.7 1.2-2.7 2.6 0 .2 0 .4.1.6l2.5 13.5h12l-2.5-16.7" fill="#47b892"/><path d="m59.2 54.9l1.8-11.8-11.7 1-46.3-6.9c-.4 8.3 11.7 17.7 11.7 17.7h44.5" fill="#d3976e"/><path d="m61 43.1v-2.1l-11.7 1.9-46.3-5.7c0 .8 0 1.6.2 2.4l46.1 5.7 11.7-2.2" fill="#af7146"/><path fill="#d3976e" d="m49.3 42.9v2.4l11.7-2.2v-2.1z"/><path fill="#b47d56" d="m61 53.9h-11.7v-8.6l11.7-2.2z"/><path d="m57.7 48.7c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v14.9h60v-14.9c.2 0-1.7 1.6-4.1 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.3 13.6 3.9 18.5 1.5"/><path d="m35.4 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.3 13.7 3.9 18.5 1.5"/><path d="m58.7 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g><path d="m18.3 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path fill="#fbbf67" d="m31.1 59.7h-2.5l10.5-31.1h2.5z"/><path d="m37.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.6-.7 1.2-.6" fill="#b47d56"/><g fill="#fbbf67"><path d="m30.9 56.3c-2.4-1-6.1 1.1-7.1 4.7h9.4c.9-2.2-.7-4-2.3-4.7"/><path d="m43.1 29.4c-.5 1.6-3.3 1.6-3.5 1.5-.2-.1-2.6-1.6-2.2-3.1.5-1.6.5-1.8 3.4-1 2.9.8 2.7 1 2.3 2.6"/></g><path d="m11.1 13.9l1.2 2.1h20.3l.9-2.3c0-8.2-1.9-11.6-11-11.7-9.1-.1-11.4 3.5-11.4 11.9" fill="#231f20"/><path d="m32.6 13.7c-.1.5-.2.9-.3 1.2-.2.4-.7.7-.7.7s.1-.9.1-2.2c-.5-7.5-1-3.9-9.3-3.9-8.3 0-8.7-3.6-9.3 3.9 0 1.3.1 2.2.1 2.2s-.5-.3-.7-.7c-.1-.3-.2-.7-.3-1.2-.8-.2-1.8 0-1.8 2.2 0 1.4.5 2.6 2.3 2.7.6 4.7 6.9 7.9 9.7 7.9 2.8 0 9.1-3.1 9.7-7.9 1.7-.1 2.3-1.3 2.3-2.7 0-2.2-1-2.4-1.8-2.2" fill="#b47d56"/><g fill="#664e27"><circle cx="18.2" cy="16.2" r="1.7"/><circle cx="26.7" cy="16.2" r="1.7"/><path d="m25.2 21.5c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3ff.svg
index 671826f..57bd8c0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a3-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac68" d="m48.07 29.577c-.404 1.378-2.902 1.378-3.098 1.321-.197-.058-2.299-1.406-1.895-2.785.402-1.38.406-1.63 2.967-.879 2.565.751 2.431.963 2.026 2.343"/><path fill="#3b946f" d="m23.356 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.998 1.459l17.697 5.549.91-2.915-17.75-5.652"/><path fill="#705041" d="m42.28 33.861l.695.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.733-.775 1.248-.604"/><path fill="#e0ac68" d="m42.33 42.26l4.489-13.42h-2.489l-4.45 13.24z"/><path fill="#7a5136" d="M49.35 44.21 61.02 41.3 3 37.426z"/><path fill="#8a6859" d="m24.343 26.415v-1.306h-3.834v1.306c0 .721-.598 1.304-1.334 1.304h6.502c-.737 0-1.334-.583-1.334-1.304"/><path fill="#231f20" d="m11.19 9.694c0 1.957 0 7.935 0 7.935h22.471c0 0 0-5.978 0-7.935 0-10.258-22.471-10.258-22.471 0"/><path fill="#8a6859" d="m10.427 16.27c0-3.554 2.701-1.75 2.701-1.75.49-9.336 3.084-4.294 9.297-4.294 6.219 0 8.811-5.04 9.307 4.294 0 0 2.695-1.804 2.695 1.75 0 1.359-.514 2.472-2.258 2.589-.734 5.497-4.393 6.631-9.744 6.631-5.35 0-9-1.134-9.74-6.631-1.743-.118-2.258-1.23-2.258-2.589"/><g fill="#47352d"><path d="m17.927 19.923c0 1.597 2.01 2.936 4.5 2.936 2.484 0 4.5-1.339 4.5-2.936 0 0-2.393.141-4.5.141s-4.5-.141-4.5-.141"/><path d="m25.27 14.938c0 .809.672 1.47 1.498 1.47.828 0 1.502-.661 1.502-1.47 0-.813-.674-1.467-1.502-1.467-.827 0-1.498.654-1.498 1.467"/><ellipse cx="18.09" cy="14.938" rx="1.5" ry="1.47"/></g><path fill="#705041" d="m21.427 17.709c0 .543.447.979 1 .979s1-.436 1-.979h-2"/><path fill="#47b892" d="m27.17 27.414h-9.387c-1.477 0-2.674 1.172-2.674 2.617 0 .208.025.411.072.605l2.543 13.576h12.02l-2.572-16.798"/><path fill="#d3976e" d="m59.24 55.24l1.76-11.799-11.725 1.02-46.27-7.04c-.363 8.404 11.678 17.816 11.678 17.816h44.562"/><path fill="#af7146" d="m61 43.44l.012-2.141-11.736 1.883-46.28-5.76c-.035.835.047 1.649.201 2.444l46.08 5.731 11.725-2.157"/><path fill="#d3976e" d="m49.28 43.19v2.41l11.72-2.16.02-2.14z"/><path fill="#8a6859" d="m61 54.26h-11.71l-.01-8.66 11.72-2.16z"/><path fill="#42ade2" d="m59.43 50.856c-1.152 0-2.193-.431-2.996-1.12-.957-.82-1.574-2.01-1.574-3.354 0 2.473-2.047 4.474-4.572 4.474s-4.57-2-4.57-4.474c0 2.473-2.047 4.474-4.572 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.047 4.474-4.57 4.474-2.525 0-4.572-2-4.572-4.474 0 1.344-.615 2.533-1.572 3.354-.805.688-1.846 1.12-3 1.12-2.523 0-4.57-2-4.57-4.474v17.618h64v-17.617c-.004 2.472-2.051 4.473-4.576 4.473"/><g fill="#428bc1"><path d="m23.22 61.42c-1.646.195-3.469.094-5.04-.417-2.041-.608-3.855-1.7-5.984-2.078-2.863-.489-5.994-.051-8.672 1.032 3.496-.194 6.844-.525 10.199.683 2.984 1.075 6.375 2.211 9.492.78"/><path d="m35.638 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.6-3.857-1.707-5.988-2.078-2.838-.479-6.02-.074-8.668 1.035 3.484-.221 6.855-.523 10.197.682 2.97 1.073 6.388 2.217 9.492.78"/><path d="m48.06 61.42c-1.492.18-3.672.248-5.03-.417-2.045-.602-3.857-1.707-5.988-2.078-2.859-.491-5.996-.05-8.67 1.032 3.494-.195 6.846-.528 10.199.683 2.976 1.075 6.38 2.214 9.49.78"/><path d="m60.48 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.597-3.855-1.703-5.986-2.078-2.844-.479-6.02-.07-8.672 1.035 3.484-.223 6.857-.522 10.199.682 2.982 1.074 6.376 2.21 9.492.78"/></g><path fill="#3b946f" d="m18.339 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.996 1.459l17.699 5.549.91-2.915-17.75-5.652"/><path fill="#fbbf67" d="m31.09 60.09h-2.487l10.547-31.25h2.494z"/><path fill="#8a6859" d="m37.26 33.861l.697.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.173-.503.732-.775 1.246-.604"/><g fill="#fbbf67"><path d="m30.894 56.736c-2.355-.969-6.1 1.094-7.1 4.705h9.371c.975-2.267-.695-4.055-2.271-4.705"/><path d="m43.09 29.551c-.461 1.568-3.301 1.568-3.523 1.503-.225-.065-2.615-1.6-2.156-3.168s.463-1.854 3.377-.999 2.761 1.094 2.302 2.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.1 29.4c-.4 1.4-2.9 1.4-3.1 1.3-.2-.1-2.3-1.4-1.9-2.8.4-1.4.4-1.6 3-.9 2.5.8 2.4 1 2 2.4" fill="#e0ac68"/><path d="m23.4 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path d="m42.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.7-.7 1.2-.6" fill="#8a6859"/><path fill="#e0ac68" d="m42.3 42l4.5-13.4h-2.5l-4.4 13.2z"/><path fill="#7a5136" d="M49.3 43.9 61 41 3 37.2z"/><path d="m24.3 26.2v-1.3h-3.8v1.3c0 .7-.6 1.3-1.3 1.3h6.5c-.8 0-1.4-.5-1.4-1.3" fill="#8a6859"/><path d="m27.2 27.2h-9.4c-1.5 0-2.7 1.2-2.7 2.6 0 .2 0 .4.1.6l2.5 13.5h12l-2.5-16.7" fill="#47b892"/><path d="m59.2 54.9l1.8-11.8-11.7 1-46.3-6.9c-.4 8.3 11.7 17.7 11.7 17.7h44.5" fill="#d3976e"/><path d="m61 43.1v-2.1l-11.7 1.9-46.3-5.7c0 .8 0 1.6.2 2.4l46.1 5.7 11.7-2.2" fill="#af7146"/><path fill="#d3976e" d="m49.3 42.9v2.4l11.7-2.2v-2.1z"/><path fill="#8a6859" d="m61 53.9h-11.7v-8.6l11.7-2.2z"/><path d="m57.7 48.7c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v14.9h60v-14.9c.2 0-1.7 1.6-4.1 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.3 13.6 3.9 18.5 1.5"/><path d="m35.4 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.3 13.7 3.9 18.5 1.5"/><path d="m58.7 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g><path d="m18.3 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path fill="#fbbf67" d="m31.1 59.7h-2.5l10.5-31.1h2.5z"/><path d="m37.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.6-.7 1.2-.6" fill="#8a6859"/><g fill="#fbbf67"><path d="m30.9 56.3c-2.4-1-6.1 1.1-7.1 4.7h9.4c.9-2.2-.7-4-2.3-4.7"/><path d="m43.1 29.4c-.5 1.6-3.3 1.6-3.5 1.5-.2-.1-2.6-1.6-2.2-3.1.5-1.6.5-1.8 3.4-1 2.9.8 2.7 1 2.3 2.6"/></g><path d="m11.1 13.9l1.2 2.1h20.3l.9-2.3c0-8.2-1.9-11.6-11-11.7-9.1-.1-11.4 3.5-11.4 11.9" fill="#231f20"/><path d="m32.6 13.7c-.1.5-.2.9-.3 1.2-.2.4-.7.7-.7.7s.1-.9.1-2.2c-.5-7.5-1-3.9-9.3-3.9-8.3 0-8.7-3.6-9.3 3.9 0 1.3.1 2.2.1 2.2s-.5-.3-.7-.7c-.1-.3-.2-.7-.3-1.2-.8-.2-1.8 0-1.8 2.2 0 1.4.5 2.6 2.3 2.7.6 4.7 6.9 7.9 9.7 7.9 2.8 0 9.1-3.1 9.7-7.9 1.7-.1 2.3-1.3 2.3-2.7 0-2.2-1-2.4-1.8-2.2" fill="#8a6859"/><g fill="#574137"><circle cx="18.2" cy="16.2" r="1.7"/><circle cx="26.7" cy="16.2" r="1.7"/><path d="m25.2 21.5c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a3.svg
index b311223..89eb387 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0ac68" d="m48.07 29.577c-.404 1.378-2.902 1.378-3.098 1.321-.197-.058-2.299-1.406-1.895-2.785.402-1.38.406-1.63 2.967-.879 2.565.751 2.431.963 2.026 2.343"/><path fill="#3b946f" d="m23.354 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.998 1.459l17.697 5.549.91-2.915-17.75-5.652"/><path fill="#cea284" d="m42.28 33.861l.695.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.733-.775 1.248-.604"/><path fill="#e0ac68" d="m42.32 42.26l4.496-13.42h-2.486l-4.453 13.24z"/><path fill="#7a5136" d="m49.34 44.21l11.67-2.91-58.01-3.874z"/><path fill="#ffdd67" d="m24.34 26.415v-1.306h-3.834v1.306c0 .721-.598 1.304-1.334 1.304h6.502c-.736 0-1.334-.583-1.334-1.304"/><path fill="#231f20" d="m11.188 9.694c0 1.957 0 7.935 0 7.935h22.471c0 0 0-5.978 0-7.935-.001-10.258-22.471-10.258-22.471 0"/><path fill="#ffdd67" d="m10.424 16.27c0-3.554 2.701-1.75 2.701-1.75.49-9.336 3.084-4.294 9.297-4.294 6.219 0 8.811-5.04 9.307 4.294 0 0 2.695-1.804 2.695 1.75 0 1.359-.514 2.472-2.258 2.589-.734 5.497-4.393 6.631-9.744 6.631-5.35 0-9-1.134-9.74-6.631-1.743-.118-2.258-1.23-2.258-2.589"/><g fill="#574137"><path d="m17.924 19.923c0 1.597 2.01 2.936 4.5 2.936 2.484 0 4.5-1.339 4.5-2.936 0 0-2.393.141-4.5.141s-4.5-.141-4.5-.141"/><path d="m25.26 14.938c0 .809.672 1.47 1.498 1.47.828 0 1.502-.661 1.502-1.47 0-.813-.674-1.467-1.502-1.467-.826 0-1.498.654-1.498 1.467"/><ellipse cx="18.08" cy="14.938" rx="1.5" ry="1.47"/></g><path fill="#eba352" d="m21.424 17.709c0 .543.447.979 1 .979s1-.436 1-.979h-2"/><path fill="#47b892" d="m27.17 27.414h-9.387c-1.477 0-2.674 1.172-2.674 2.617 0 .208.025.411.072.605l2.543 13.576h12.02l-2.572-16.798"/><path fill="#d3976e" d="M59.24,55.242L61,43.443l-11.725,1.02L3,37.426C2.637,45.83,14.678,55.242,14.678,55.242H59.24z"/><path fill="#af7146" d="m61 43.44l.012-2.141-11.736 1.883-46.28-5.76c-.035.835.047 1.649.201 2.444l46.08 5.731 11.725-2.157"/><path fill="#d3976e" d="m49.27 43.19v2.41l11.73-2.16.01-2.14z"/><path fill="#ffdd67" d="m61 54.26h-11.71l-.02-8.66 11.73-2.16z"/><path fill="#42ade2" d="m59.43 50.856c-1.152 0-2.193-.431-2.996-1.12-.957-.82-1.574-2.01-1.574-3.354 0 2.473-2.047 4.474-4.572 4.474s-4.57-2-4.57-4.474c0 2.473-2.047 4.474-4.572 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.045 4.474-4.57 4.474s-4.572-2-4.572-4.474c0 2.473-2.047 4.474-4.57 4.474-2.525 0-4.572-2-4.572-4.474 0 1.344-.615 2.533-1.572 3.354-.805.688-1.846 1.12-3 1.12-2.523 0-4.57-2-4.57-4.474v17.618h64v-17.617c-.004 2.472-2.051 4.473-4.576 4.473"/><g fill="#428bc1"><path d="m23.22 61.42c-1.646.195-3.469.094-5.04-.417-2.041-.608-3.855-1.7-5.984-2.078-2.863-.489-5.994-.051-8.672 1.032 3.496-.194 6.844-.525 10.199.683 2.984 1.075 6.375 2.211 9.492.78"/><path d="m35.635 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.6-3.857-1.707-5.988-2.078-2.838-.479-6.02-.074-8.668 1.035 3.484-.221 6.855-.523 10.197.682 2.97 1.073 6.388 2.217 9.492.78"/><path d="m48.05 61.42c-1.492.18-3.672.248-5.03-.417-2.045-.602-3.857-1.707-5.988-2.078-2.859-.491-5.996-.05-8.67 1.032 3.494-.195 6.846-.528 10.199.683 2.976 1.075 6.38 2.214 9.49.78"/><path d="m60.47 55.606c-1.496.175-3.67.249-5.03-.419-2.045-.597-3.855-1.703-5.986-2.078-2.844-.479-6.02-.07-8.672 1.035 3.484-.223 6.857-.522 10.199.682 2.982 1.074 6.376 2.21 9.492.78"/></g><path fill="#3b946f" d="m18.336 28.858c-.078-.012-.16-.019-.242-.019-.891 0-1.613.707-1.613 1.578 0 .658.412 1.223.996 1.459l17.699 5.549.91-2.915-17.75-5.652"/><path fill="#fbbf67" d="m31.09 60.09h-2.49l10.55-31.25h2.491z"/><path fill="#ffdd67" d="m37.26 33.861l.697.229c.369.122.617.438.662.793.906.37 2.01 1.101 1.426 2.789-.098.281-.629 1.826-2.496 1.211-2.744-.906-2.744-.906-2.02-3.01l.486-1.413c.174-.503.732-.775 1.246-.604"/><g fill="#fbbf67"><path d="m30.891 56.736c-2.355-.969-6.1 1.094-7.1 4.705h9.371c.975-2.267-.695-4.055-2.271-4.705"/><path d="m43.09 29.551c-.461 1.568-3.301 1.568-3.523 1.503-.225-.065-2.615-1.6-2.156-3.168s.463-1.854 3.377-.999 2.761 1.094 2.302 2.664"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48.1 29.4c-.4 1.4-2.9 1.4-3.1 1.3-.2-.1-2.3-1.4-1.9-2.8.4-1.4.4-1.6 3-.9 2.5.8 2.4 1 2 2.4" fill="#e0ac68"/><path d="m23.4 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path d="m42.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.7-.7 1.2-.6" fill="#ffdd67"/><path fill="#e0ac68" d="m42.3 42l4.5-13.4h-2.5l-4.4 13.2z"/><path fill="#7a5136" d="M49.3 43.9 61 41 3 37.2z"/><path d="m24.3 26.2v-1.3h-3.8v1.3c0 .7-.6 1.3-1.3 1.3h6.5c-.8 0-1.4-.5-1.4-1.3" fill="#ffdd67"/><path d="m27.2 27.2h-9.4c-1.5 0-2.7 1.2-2.7 2.6 0 .2 0 .4.1.6l2.5 13.5h12l-2.5-16.7" fill="#47b892"/><path d="m59.2 54.9l1.8-11.8-11.7 1-46.3-6.9c-.4 8.3 11.7 17.7 11.7 17.7h44.5" fill="#d3976e"/><path d="m61 43.1v-2.1l-11.7 1.9-46.3-5.7c0 .8 0 1.6.2 2.4l46.1 5.7 11.7-2.2" fill="#af7146"/><path fill="#d3976e" d="m49.3 42.9v2.4l11.7-2.2v-2.1z"/><path fill="#ffdd67" d="m61 53.9h-11.7v-8.6l11.7-2.2z"/><path d="m57.7 48.7c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-2.7-1.6-4.3-1.6s-1.9 1.6-4.3 1.6-2.7-1.6-4.3-1.6-1.9 1.6-4.3 1.6c-2.4 0-4.3-1.6-4.3-1.6v14.9h60v-14.9c.2 0-1.7 1.6-4.1 1.6" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.4-.3 13.6 3.9 18.5 1.5"/><path d="m35.4 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m47 59.4c-6.8.9-11.4-4.6-18.5-1.5 5.5-.3 13.7 3.9 18.5 1.5"/><path d="m58.7 53.5c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g><path d="m18.3 28.7c-.1 0-.2 0-.2 0-.9 0-1.6.7-1.6 1.6 0 .7.4 1.2 1 1.4l17.7 5.5.9-2.9-17.8-5.6" fill="#3b946f"/><path fill="#fbbf67" d="m31.1 59.7h-2.5l10.5-31.1h2.5z"/><path d="m37.3 33.6l.7.2c.4.1.6.4.7.8.9.4 2 1.1 1.4 2.8-.1.3-.6 1.8-2.5 1.2-2.7-.9-2.7-.9-2-3l.5-1.4c.1-.5.6-.7 1.2-.6" fill="#ffdd67"/><g fill="#fbbf67"><path d="m30.9 56.3c-2.4-1-6.1 1.1-7.1 4.7h9.4c.9-2.2-.7-4-2.3-4.7"/><path d="m43.1 29.3c-.5 1.6-3.3 1.6-3.5 1.5-.2-.1-2.6-1.6-2.2-3.1.5-1.6.5-1.8 3.4-1s2.7 1.1 2.3 2.6"/></g><path d="m11.1 13.9l1.2 2.1h20.3l.9-2.3c0-8.2-1.9-11.6-11-11.7-9.1-.1-11.4 3.5-11.4 11.9" fill="#ffb300"/><path d="m32.6 13.7c-.1.5-.2.9-.3 1.2-.2.4-.7.7-.7.7s.1-.9.1-2.2c-.5-7.5-1-3.9-9.3-3.9-8.3 0-8.7-3.6-9.3 3.9 0 1.3.1 2.2.1 2.2s-.5-.3-.7-.7c-.1-.3-.2-.7-.3-1.2-.8-.2-1.8 0-1.8 2.2 0 1.4.5 2.6 2.3 2.7.6 4.7 6.9 7.9 9.7 7.9 2.8 0 9.1-3.1 9.7-7.9 1.7-.1 2.3-1.3 2.3-2.7 0-2.2-1-2.4-1.8-2.2" fill="#ffdd67"/><g fill="#937237"><circle cx="18.2" cy="16.2" r="1.7"/><circle cx="26.7" cy="16.2" r="1.7"/><path d="m25.2 21.5c-1.8 1.4-3.8 1.4-5.6 0-.2-.2-.4.1-.3.4.5 1 1.6 1.9 3 1.9 1.4 0 2.5-.9 3-1.9.3-.3.1-.6-.1-.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a4.svg
index e406570..70aa1ad 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m41.94 30.29h1.21v4.485h-3.12z"/><path fill="#f9c19b" d="m41.93 30.19c0 2.01-.43 3.035-1.878 3.035l-.018 1.548c1.713 0 2.414-2.134 2.414-4.486l-.518-.097"/><path fill="#fed0ac" d="m42.983 23.287l-6.813 2.145c-.786 1.436-.249 2.195-.277 2.815-.013.275-.571.779-.868 1.042-.662.588.446 1.063.86.976.263.618-.163.787.853.696.56-.05 1.314-.566 1.314-.566-2.464 1.55-1.826 2.187-.811 1.919 0 1.306.811 1.306 2.588 1.306 1.449 0 2.618-1.316 2.618-3.33l1.942-.338-1.406-6.665"/><g fill="#594640"><path d="m40.4 21.444c5.03 0 5.685 4.269 4.987 7.228-.372 1.576-1.206 2.579-2.179 3.01l-.493-.317-.269-1.076c0 0 .982-.229 1.272-1.351.134-.513-.381-1.492-1.136-1.534-.527-.029-1.288.363-1.449.483 0-1.304.266-2.654-.623-3.041-.729-.319-3.868 1.1-4.342.586-1.267-1.375 1.206-3.988 4.232-3.988"/><path d="m42.31 28.676c-.094-.012-.187.001-.269.035.043-.092.095-.181.155-.271.072-.111.16-.215.246-.337-.283.076-.537.282-.662.57-.126.293-.076.628.079.873.024-.148.026-.286.049-.415.016-.082.035-.159.059-.234.038.002.073.002.107.006.072.009.136.01.199.021.063.006.126.023.198.034.072.013.145.037.239.049-.048-.174-.214-.301-.4-.331"/><ellipse cx="37" cy="28.02" rx=".541" ry=".755"/><path d="m38.05 30.394c0 0-.804 1.159-1.01 1.322-.434.347-.582.118-.369-.173.218-.3 1.377-1.149 1.377-1.149"/></g><path fill="#f27a52" d="m42.925 41.547l-4.708-.503c0 0 .403-4.208 1.048-5.813.6-1.494 3.922-.596 3.922-.596l-.262 6.912"/><g fill="#428bc1"><path d="m41.695 35.416c-.328-.314-.847-.311-1.154.008l-2.108 2.199 1.191 1.135 2.108-2.198c.309-.318.293-.831-.037-1.144"/><path d="m39.949 38.07c-.021-.449-.398-.792-.848-.78l-3.157.062.067 1.624 3.157-.062c.451-.01.801-.394.781-.844"/></g><path fill="#f9c19b" d="m36.3 38.34l.042-.794c.014-.283-.204-.529-.487-.55l-.383-.029c-.203-.014-.385.091-.478.255-.513-.002-1.191.134-1.239 1.083-.008.156-.055 1.023.973 1.099 1.511.111 1.511.111 1.572-1.064"/><g fill="#594640"><path d="m36.816 25.2c-.135.957-2.292-.438-1.306-2.394 1.391-2.756 4.828-2.754 4.828-2.754s-3.15 2.502-3.522 5.148"/><path d="m38.636 24.567c-.322.856-2.026-.88-.709-2.482 1.857-2.257 5.03-1.542 5.03-1.542s-3.432 1.656-4.323 4.02"/><path d="m40.23 24.349c-.519.696-1.618-1.333.002-2.45 2.287-1.573 4.994-.09 4.994-.09s-3.564.613-4.996 2.54"/></g><path fill="#42ade2" d="m0 44h64v20h-64z"/><path fill="#c94747" d="m0 34.852h25.338l7.852 7.111z"/><path fill="#dae3ea" d="M0,34.852c0,0,7.211,13.908,27.944,18.963h32.5L64,43.701L0,34.852z"/><path fill="#f15744" d="m28.495 50.852h28.905l-28.986-4.608 30.24.574-49.777-7.818c3.84 4.164 10.11 9.13 19.622 11.852"/><path fill="#6adbc6" d="m34.819 30.2c0 0-1.634 0-4.74 1.587-3.19 1.629-4.741 3.061-4.741 3.061l4.563 4.135 4.919.699v-9.482"/><path fill="#fff" d="m32.408 32.35c-1.364.415-2.648 1.137-3.795 1.978-1.028.754-.032 2.491 1.01 1.727 1-.737 2.118-1.411 3.316-1.776 1.231-.374.707-2.305-.531-1.929"/><path fill="#428bc1" d="m34.819 53.814c0 0 5.817-2.082 7.624-1.604.4.106 0 .803 0 .803s4.595-3.632 7-3.231c1.679.279 0 3.066 0 3.066s4.254-6.378 8.25-6.01c2.309.213.957 4 .957 4l5.35-10.01v12.985h-29.18"/><path fill="#42ade2" d="m34.819 53.814c0 0 5.817-1.713 7.624-1.32.4.088 0 .66 0 .66s4.595-2.988 7-2.659c1.679.229 0 2.524 0 2.524s4.254-5.249 8.25-4.945c2.309.175.957 3.291.957 3.291l5.35-8.237v10.687h-29.18"/><path fill="#bbecff" d="m40.673 53.814c0 0 7.231-2.762 8.458-2.648 1.844.171.809 2.041.809 2.041s2.997-2.752 4.566-2.449c1.095.212 0 2.324 0 2.324s2.774-4.832 5.381-4.553c1.506.16.624 3.03.624 3.03l3.489-2.135v4.392h-23.327z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffb300"><path d="m36.8 23.2c-.1 1-2.3-.4-1.3-2.4 1.4-2.8 4.8-2.8 4.8-2.8s-3.1 2.5-3.5 5.2"/><path d="m38.6 22.5c-.3.9-2-.9-.7-2.5 1.9-2.3 5-1.5 5-1.5s-3.4 1.7-4.3 4"/><path d="m40.2 22.3c-.5.7-1.6-1.3 0-2.5 2.3-1.6 5-.1 5-.1s-3.5.7-5 2.6"/></g><path fill="#ffdd67" d="m41.3 27.8l1.6-.9v5.6h-3.6z"/><path d="m38.8 30.4c1.1.7.5 2.1.5 2.1 1.5 0 2.5-2.9 2.5-4.7l-3 2.6" fill="#eba352"/><path d="m42.4 20.4l-6.5 2.3c-.8 1.5-.3 2.3-.3 3 0 .3-.6.8-.9 1.1-.7.6.5 1.1.9 1 .3.6-.5 1 1.4.6 0 0-2 .8-.6 1.2-.1.8-.3 2.3 3.8.7 1.2-.5 1.6-2.6 1.6-2.6l2-.4-1.4-6.9" fill="#ffdd67"/><path d="m37.7 19.9c4.3-1.4 6.6.8 7 1.8 1.1 2.6.2 5.5-1.9 7.7 0 0-.9-.4-1.1-1.6 0 0 1.1.5 1.5-1.8.4-1.9-1.6-2.9-2.6-.3h-.3c-.6-1.3.5-2.9-1-3.4-1.3-.5-3.6.7-3.6.7-.5-.8.3-2.6 2-3.1" fill="#ffb300"/><path d="m37.2 25.7c0 .4-.2.7-.5.7-.3 0-.4-.3-.4-.7 0-.4.1-.7.4-.7.2-.1.5.2.5.7" fill="#937237"/><path d="m41.3 26.2c0-.8.7-1.5 1.3-1.5 0 0-1.1.9-.9 2.2.1 0-.4-.2-.4-.7" fill="#eba352"/><path d="m37.6 28.3c0 0-.8.6-1.1.7-.6.3-.7.1-.3-.2.3-.2.8-.4.8-.4l.6-.1" fill="#937237"/><path d="m43.3 39.5l-5.4-.5c0 0 .4-4.5 1.1-6.3.6-1.6 3.9-.7 3.9-.7l.4 7.5" fill="#47b892"/><g fill="#3b946f"><path d="m41.7 33.4c-.3-.3-.8-.3-1.2 0l-2.1 2.2 1.2 1.1 2.1-2.2c.3-.3.3-.8 0-1.1"/><path d="m39.9 36c0-.4-.4-.8-.8-.8l-3.2.1.1 1.7 3.2-.1c.4 0 .8-.4.7-.9"/></g><path d="m36.3 36.3v-.8c0-.3-.2-.5-.5-.5h-.4c-.2 0-.4.1-.5.3-.5 0-1.2.1-1.2 1.1 0 .2-.1 1 1 1.1 1.5 0 1.5 0 1.6-1.2" fill="#ffdd67"/><path fill="#42ade2" d="m2 42h60v20h-60z"/><path fill="#c94747" d="m2 32.8h23.8l7.3 7.1z"/><path d="m2 32.8c0 0 6.8 13.9 26.2 19h30.5l3.3-10.1-60-8.9" fill="#dae3ea"/><path d="m28.7 48.8h27.1l-27.2-4.6 28.4.6-46.7-7.8c3.6 4.1 9.5 9.1 18.4 11.8" fill="#f15744"/><path d="m34.6 28.2c0 0-1.5 0-4.4 1.6-3 1.6-4.4 3.1-4.4 3.1l4.2 4.1 4.6.7v-9.5" fill="#6adbc6"/><path d="m32.4 30.3c-1.3.4-2.5 1.1-3.6 2-1 .8 0 2.5.9 1.7.9-.7 2-1.4 3.1-1.8 1.2-.3.7-2.3-.4-1.9" fill="#fff"/><path d="m34.6 51.8c0 0 5.5-2.1 7.1-1.6.4.1 0 .8 0 .8s4.3-3.6 6.6-3.2c1.6.3 0 3.1 0 3.1s4-6.4 7.7-6c2.2.2.9 4 .9 4l5-10v13h-27.3z" fill="#428bc1"/><path d="m34.6 51.8c0 0 5.5-1.7 7.1-1.3.4.1 0 .7 0 .7s4.3-3 6.6-2.7c1.6.2 0 2.5 0 2.5s4-5.3 7.7-5c2.2.2.9 3.3.9 3.3l5-8.2v10.7h-27.3" fill="#42ade2"/><path d="m40.1 51.8c0 0 6.8-2.8 7.9-2.7 1.7.2.8 2 .8 2s2.8-2.8 4.3-2.5c1 .2 0 2.3 0 2.3s2.6-4.8 5-4.6c1.4.2.6 3 .6 3l3.3-2.1v4.4l-21.9.2" fill="#bbecff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a5.svg
index 29f9645..30aa0d0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="M2,32c0,8.25,6.751,15,15,15h30c8.251,0,15-6.75,15-15s-6.749-15-15-15H17C8.751,17,2,23.75,2,32z"/><path fill="#3e4347" d="m3.875 32c0 7.238 5.889 13.13 13.13 13.13h30c7.238 0 13.13-5.887 13.13-13.12s-5.887-13.12-13.12-13.12h-30c-7.236 0-13.12 5.887-13.12 13.13"/><circle fill="#ffe62e" cx="32" cy="32" r="7.5"/><circle fill="#ed4c5c" cx="13.25" cy="32" r="7.5"/><circle fill="#83bf4f" cx="50.75" cy="32" r="7.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M2,32c0,8.2,6.8,15,15,15h30c8.3,0,15-6.8,15-15s-6.7-15-15-15H17C8.8,17,2,23.8,2,32z" fill="#94989b"/><path d="m3.9 32c0 7.2 5.9 13.1 13.1 13.1h30c7.2 0 13.1-5.9 13.1-13.1s-5.9-13.1-13.1-13.1h-30c-7.2 0-13.1 5.9-13.1 13.1" fill="#3e4347"/><circle cx="32" cy="32" r="7.5" fill="#ffe62e"/><circle cx="13.2" cy="32" r="7.5" fill="#ed4c5c"/><circle cx="50.8" cy="32" r="7.5" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a6.svg
index cffdd9d..7f6e697 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m32 2c-8.25 0-15 6.751-15 15v30c0 8.251 6.75 15 15 15s15-6.749 15-15v-30c0-8.249-6.75-15-15-15"/><path fill="#3e4347" d="m32 3.875c-7.238 0-13.12 5.889-13.12 13.13v30c0 7.238 5.887 13.13 13.13 13.13s13.13-5.887 13.13-13.12v-30c0-7.236-5.887-13.12-13.12-13.12"/><circle fill="#ffe62e" cx="32" cy="32" r="7.5"/><circle fill="#ed4c5c" cx="32" cy="13.25" r="7.5"/><circle fill="#83bf4f" cx="32" cy="50.75" r="7.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-8.2 0-15 6.8-15 15v30c0 8.3 6.8 15 15 15s15-6.7 15-15v-30c0-8.2-6.8-15-15-15" fill="#94989b"/><path d="m32 3.9c-7.2 0-13.1 5.9-13.1 13.1v30c0 7.2 5.9 13.1 13.1 13.1s13.1-5.9 13.1-13.1v-30c0-7.2-5.9-13.1-13.1-13.1" fill="#3e4347"/><circle cx="32" cy="32" r="7.5" fill="#ffe62e"/><circle cx="32" cy="13.2" r="7.5" fill="#ed4c5c"/><circle cx="32" cy="50.8" r="7.5" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a7.svg
index 1a0175f..c48a759 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m3.416 17.487h57.17v19.651h-57.17z"/><g fill="#3e4347"><path d="m12.697 37.14h-9.281l8.582-19.653h9.283z"/><path d="m23.07 37.14l8.12-19.653h9.743l-8.12 19.653"/><path d="m42.719 37.14l8.121-19.653h9.75l-8.13 19.653"/></g><path fill="#94989b" d="m11.375 10.925h3.75v6.076h-3.75z"/><path fill="#d0d0d0" d="m12.313 10.925h1.875v6.076h-1.875z"/><circle fill="#94989b" cx="13.25" cy="8.564" r="6.563"/><circle fill="#d0d0d0" cx="13.25" cy="8.564" r="5.626"/><circle fill="#ed4c5c" cx="13.25" cy="8.564" r="4.688"/><path fill="#94989b" d="m48.875 10.925h3.75v6.076h-3.75z"/><path fill="#d0d0d0" d="m49.813 10.925h1.875v6.076h-1.875z"/><circle fill="#94989b" cx="50.75" cy="8.564" r="6.563"/><circle fill="#d0d0d0" cx="50.75" cy="8.564" r="5.626"/><circle fill="#ed4c5c" cx="50.75" cy="8.564" r="4.688"/><path fill="#94989b" d="m11.375 37.625h3.75v24.375h-3.75z"/><path fill="#d0d0d0" d="m12.313 37.625h1.875v24.375h-1.875z"/><path fill="#3e4347" d="M17,62H9.5c0,0,1.875-2.47,1.875-3.311h3.75C15.125,59.53,17,62,17,62z"/><path fill="#94989b" d="m48.875 37.625h3.75v24.375h-3.75z"/><path fill="#d0d0d0" d="m49.813 37.625h1.875v24.375h-1.875z"/><path fill="#3e4347" d="M54.5,62H47c0,0,1.875-2.47,1.875-3.311h3.75C52.625,59.53,54.5,62,54.5,62z"/><path fill="#94989b" d="m7.938 44.19h48.12v3.75h-48.12z"/><path fill="#d0d0d0" d="m9.514 45.13h44.97v1.875h-44.97z"/><g fill="#3e4347"><circle cx="13.25" cy="46.06" r=".688"/><circle cx="50.75" cy="46.06" r=".688"/></g><path fill="#d0d0d0" d="m61.06 17h-58.12c-.519 0-.938.42-.938.938v18.75c0 .519.419.938.938.938h58.13c.519 0 .938-.419.938-.938v-18.75c-.001-.518-.42-.938-.938-.938m-.938 17.813c0 .519-.419.938-.938.938h-54.37c-.518 0-.938-.419-.938-.938v-15c0-.518.419-.938.938-.938h54.38c.519 0 .938.42.938.938v15z"/><path fill="#94989b" d="m61.06 17.469c.258 0 .469.21.469.469v18.75c0 .259-.211.469-.469.469h-58.12c-.258 0-.469-.21-.469-.469v-18.75c0-.259.21-.469.469-.469h58.13m-56.25 18.75h54.38c.775 0 1.406-.63 1.406-1.406v-15c0-.775-.631-1.406-1.406-1.406h-54.37c-.775 0-1.406.631-1.406 1.406v15c-.001.776.63 1.406 1.406 1.406m56.25-19.219h-58.12c-.519 0-.938.42-.938.938v18.75c0 .519.419.938.938.938h58.13c.519 0 .938-.419.938-.938v-18.75c-.001-.518-.42-.938-.938-.938zm-56.25 18.75c-.518 0-.938-.419-.938-.938v-15c0-.518.419-.938.938-.938h54.38c.519 0 .938.42.938.938v15c0 .519-.419.938-.938.938h-54.37"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m3.4 17.5h57.2v19.7h-57.2z"/><g fill="#3e4347"><path d="m12.7 37.1h-9.3l8.6-19.6h9.3z"/><path d="m23.1 37.1l8.1-19.6h9.7l-8.1 19.6"/><path d="m42.7 37.1l8.1-19.6h9.8l-8.1 19.6"/></g><path fill="#94989b" d="m11.4 10.9h3.8v6.1h-3.8z"/><path fill="#d0d0d0" d="m12.3 10.9h1.9v6.1h-1.9z"/><circle cx="13.2" cy="8.6" r="6.6" fill="#94989b"/><circle cx="13.2" cy="8.6" r="5.6" fill="#d0d0d0"/><circle cx="13.2" cy="8.6" r="4.7" fill="#ed4c5c"/><path fill="#94989b" d="m48.9 10.9h3.8v6.1h-3.8z"/><path fill="#d0d0d0" d="m49.8 10.9h1.9v6.1h-1.9z"/><circle cx="50.8" cy="8.6" r="6.6" fill="#94989b"/><circle cx="50.8" cy="8.6" r="5.6" fill="#d0d0d0"/><circle cx="50.8" cy="8.6" r="4.7" fill="#ed4c5c"/><path fill="#94989b" d="m11.4 37.6h3.8v24.4h-3.8z"/><path fill="#d0d0d0" d="m12.3 37.6h1.9v24.4h-1.9z"/><path d="m17 62h-7.5c0 0 1.9-2.5 1.9-3.3h3.8c-.1.8 1.8 3.3 1.8 3.3" fill="#3e4347"/><path fill="#94989b" d="m48.9 37.6h3.8v24.4h-3.8z"/><path fill="#d0d0d0" d="m49.8 37.6h1.9v24.4h-1.9z"/><path d="m54.5 62h-7.5c0 0 1.9-2.5 1.9-3.3h3.8c-.1.8 1.8 3.3 1.8 3.3" fill="#3e4347"/><path fill="#94989b" d="m7.9 44.2h48.1v3.8h-48.1z"/><path fill="#d0d0d0" d="m9.5 45.1h45v1.9h-45z"/><g fill="#3e4347"><circle cx="13.2" cy="46.1" r=".7"/><circle cx="50.8" cy="46.1" r=".7"/></g><path d="m61.1 17h-58.2c-.5 0-.9.4-.9.9v18.8c0 .5.4.9.9.9h58.1c.5 0 .9-.4.9-.9v-18.8c.1-.5-.3-.9-.8-.9m-1 17.8c0 .5-.4.9-.9.9h-54.4c-.5 0-.9-.4-.9-.9v-15c0-.5.4-.9.9-.9h54.4c.5 0 .9.4.9.9v15" fill="#d0d0d0"/><path d="m61.1 17.5c.3 0 .5.2.5.5v18.8c0 .3-.2.5-.5.5h-58.2c-.3 0-.5-.2-.5-.5v-18.9c0-.3.2-.5.5-.5h58.2m-56.3 18.8h54.4c.8 0 1.4-.6 1.4-1.4v-15c0-.8-.6-1.4-1.4-1.4h-54.4c-.8 0-1.4.6-1.4 1.4v15c0 .8.6 1.4 1.4 1.4m56.3-19.2h-58.2c-.5 0-.9.4-.9.9v18.8c0 .5.4.9.9.9h58.1c.5 0 .9-.4.9-.9v-18.8c.1-.5-.3-.9-.8-.9zm-56.3 18.8c-.5 0-.9-.4-.9-.9v-15c0-.5.4-.9.9-.9h54.4c.5 0 .9.4.9.9v15c0 .5-.4.9-.9.9h-54.4" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a8.svg
index a8d2f06..2a00519 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M9.339,52.533v4.233C9.339,59.104,19.484,61,32,61c12.516,0,22.661-1.896,22.661-4.233v-4.233H9.339z"/><path fill="#62696d" d="M12.78,52.533v4.233C12.78,59.104,21.384,61,32,61c10.616,0,19.221-1.896,19.221-4.233v-4.233H12.78z"/><path fill="#c94747" d="m54.66 52.53h-45.32l4.957-25.14h35.407z"/><ellipse fill="#b23838" cx="32" cy="52.53" rx="22.66" ry="4.233"/><path opacity=".3" fill="#ffc7ce" d="m51.17 52.25l-4.158-24.865h-30.03l-4.156 24.865c-.029.094-.048.188-.048.283 0 2.338 8.604 4.233 19.22 4.233 10.616 0 19.221-1.896 19.221-4.233 0-.095-.02-.189-.047-.283"/><ellipse fill="#ed4c5c" cx="32" cy="27.385" rx="17.703" ry="4.232"/><g opacity=".5"><path fill="#c94747" d="m17.208 27.847c-.013-.707.639-1.195 1.18-1.536.574-.353 1.192-.621 1.818-.854 1.262-.439 2.562-.741 3.868-.984 2.618-.482 5.272-.646 7.929-.664 2.645.017 5.307.18 7.922.662 1.307.244 2.606.546 3.869.984.626.233 1.243.502 1.817.855.541.34 1.192.829 1.18 1.536-.103-.679-.756-1.022-1.307-1.303-.584-.273-1.206-.464-1.836-.62-1.254-.332-2.543-.545-3.838-.692-2.591-.294-5.197-.429-7.814-.423-2.604-.007-5.219.128-7.808.421-1.295.147-2.583.361-3.838.693-.63.156-1.252.347-1.836.62-.55.282-1.203.625-1.306 1.305"/></g><ellipse opacity=".3" fill="#ffc7ce" cx="32" cy="40.2" rx="13.455" ry="13.408"/><path fill="#ffe6ea" d="m44.746 40.2l-7.881-1.96 4.335-7.21-7.229 4.33-1.971-7.856-1.97 7.856-7.236-4.33 4.346 7.21-7.887 1.96 7.887 1.97-4.346 7.21 7.236-4.33 1.97 7.857 1.971-7.857 7.229 4.33-4.335-7.21z"/><g fill="#f15744"><path d="m56.875 8.03l-7.924 11.83 12.873-6.986z"/><path d="m7.126 8.03l7.924 11.83-12.875-6.986z"/><path d="m0 23.15l11.986 4-11.986 1.664z"/><path d="m64 23.15l-11.99 4 11.99 1.664z"/><path d="M17.244 4.01 25.302 18.242 23.695 3z"/><path d="M46.756 4.01 38.699 18.242 40.3 3z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m9.3 52.5v4.2c0 2.4 10.2 4.3 22.7 4.3s22.7-1.9 22.7-4.2v-4.2l-45.4-.1" fill="#3e4347"/><path d="m12.8 52.5v4.2c0 2.3 8.6 4.2 19.2 4.2s19.2-1.9 19.2-4.2v-4.2h-38.4" fill="#62696d"/><path fill="#c94747" d="m54.7 52.5h-45.4l5-25.1h35.4z"/><ellipse cx="32" cy="52.5" rx="22.7" ry="4.2" fill="#b23838"/><path d="m51.2 52.2l-4.2-24.8h-30l-4.2 24.9c0 .1 0 .2 0 .3 0 2.3 8.6 4.2 19.2 4.2s19.2-1.9 19.2-4.2c0-.2 0-.3 0-.4" opacity=".3" fill="#ffc7ce"/><ellipse cx="32" cy="27.4" rx="17.7" ry="4.2" fill="#ed4c5c"/><g opacity=".5"><path d="m17.2 27.8c0-.7.6-1.2 1.2-1.5.6-.4 1.2-.6 1.8-.9 1.3-.4 2.6-.7 3.9-1 2.6-.5 5.3-.6 7.9-.7 2.6 0 5.3.2 7.9.7 1.3.2 2.6.5 3.9 1 .6.2 1.2.5 1.8.9.5.3 1.2.8 1.2 1.5-.1-.7-.8-1-1.3-1.3-.6-.3-1.2-.5-1.8-.6-1.3-.3-2.5-.5-3.8-.7-2.6-.3-5.2-.4-7.8-.4-2.6 0-5.2.1-7.8.4-1.3.1-2.6.4-3.8.7-.6.2-1.3.3-1.8.6-.7.3-1.4.7-1.5 1.3" fill="#c94747"/></g><ellipse cx="32" cy="40.2" rx="13.5" ry="13.4" opacity=".3" fill="#ffc7ce"/><path fill="#ffe6ea" d="m44.7 40.2l-7.8-2 4.3-7.2-7.2 4.4-2-7.9-2 7.9-7.2-4.4 4.3 7.2-7.8 2 7.8 2-4.3 7.2 7.2-4.3 2 7.8 2-7.8 7.2 4.3-4.3-7.2z"/><g fill="#f15744"><path d="m56.9 8l-7.9 11.9 12.8-7z"/><path d="m7.1 8l7.9 11.9-12.8-7z"/><path d="m0 23.1l12 4-12 1.7z"/><path d="m64 23.1l-12 4 12 1.7z"/><path d="M17.2 4 25.3 18.2 23.7 3z"/><path d="M46.8 4 38.7 18.2 40.3 3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6a9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6a9.svg
index 0d0009f..d07347b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6a9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6a9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ccc" d="m26.16 61.52c0 1.367-4.345 2.476-9.699 2.476-5.359 0-9.704-1.108-9.704-2.476 0-1.369 4.345-2.477 9.704-2.477 5.354.001 9.699 1.108 9.699 2.477"/><path fill="#ed4c5c" d="m56.08 17.698c-1.889-.888-33.09-15.558-37.642-17.698v39.485c4.545-2.136 35.737-16.801 37.643-17.699 1.547-.727 1.547-3.36-.001-4.088"/><path fill="#d3976e" d="m14.49 0h3.945v61.53h-3.945z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m26.2 61.5c0 1.4-4.3 2.5-9.7 2.5-5.4 0-9.7-1.1-9.7-2.5 0-1.4 4.3-2.5 9.7-2.5 5.3 0 9.7 1.2 9.7 2.5" fill="#ccc"/><path d="m56.1 17.7c-1.9-.9-33.1-15.6-37.7-17.7v39.5c4.5-2.1 35.7-16.8 37.6-17.7 1.6-.7 1.6-3.4.1-4.1" fill="#ed4c5c"/><path fill="#d3976e" d="m14.5 0h3.9v61.5h-3.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6aa.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6aa.svg
index a9357fb..ac7fa2f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6aa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6aa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m2.999 29v31.998h58v-31.998c0-38.969-58-38.37-58 0"/><path fill="#594640" d="m7.244 31.24v29.763h49.51v-29.763c0-36.25-49.51-35.688-49.51 0"/><path fill="#a37d64" d="m8.04 31.653v29.347h47.927v-29.347c0-35.739-47.927-35.19-47.927 0"/><path fill="#94989b" d="m-.001 61h64v3h-64z"/><g fill="#594640"><path d="m35.24 30.483h16.641c-.648-12.07-8.293-18.62-16.641-19.765v19.765"/><path d="M29.67,30.483V10.75c-8.342,1.239-15.981,7.855-16.638,19.733H29.67z"/><path d="m35.24 36.06h16.689v19.948h-16.689z"/><path d="m12.98 36.06h16.689v19.948h-16.689z"/></g><g fill="#89664c"><path d="m34.785 30.15h16.641c-.647-12.06-8.293-18.62-16.641-19.765v19.765"/><path d="m29.21 30.15v-19.733c-8.342 1.239-15.982 7.855-16.639 19.733h16.639"/><path d="m34.785 35.723h16.69v19.947h-16.69z"/><path d="m12.522 35.723h16.69v19.947h-16.69z"/></g><path fill="#ffce31" d="m47.46 28.861h7v14h-7z"/><path fill="#f2b200" d="m47.957 29.361h6v13h-6z"/><path fill="#3e4347" d="m51.967 41.2l-.418-2.672c.246-.181.408-.473.408-.803 0-.553-.448-1-.999-1-.552 0-.999.447-.999 1 0 .33.162.622.408.803l-.418 2.672h2.02"/><circle fill="#b78300" cx="50.958" cy="33.02" r="2.873"/><path fill="#ffd664" d="m53.83 32.511c0 1.585-1.285 2.871-2.87 2.871-1.589 0-2.875-1.286-2.875-2.871 0-1.588 1.286-2.875 2.875-2.875 1.585 0 2.87 1.286 2.87 2.875"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M3,29v32h58V29C61-10,3-9.4,3,29z" fill="#89664c"/><path d="M7.2,31.2V61h49.5V31.2C56.8-5,7.2-4.5,7.2,31.2z" fill="#594640"/><path d="M8,31.7V61H56V31.7C56-4.1,8-3.5,8,31.7z" fill="#a37d64"/><path fill="#94989b" d="m0 61h64v3h-64z"/><g fill="#594640"><path d="m35.2 30.5h16.6c-.6-12.1-8.3-18.6-16.6-19.8 0 0 0 19.8 0 19.8"/><path d="m29.7 30.5v-19.7c-8.3 1.2-16 7.9-16.6 19.7h16.6"/><path d="m35.2 36.1h16.7v19.9h-16.7z"/><path d="m13 36.1h16.7v19.9h-16.7z"/></g><g fill="#89664c"><path d="m34.8 30.1h16.6c-.6-12.1-8.3-18.6-16.6-19.8 0 .1 0 19.8 0 19.8"/><path d="m29.2 30.1v-19.7c-8.3 1.2-16 7.9-16.6 19.7h16.6"/><path d="m34.8 35.7h16.7v19.9h-16.7z"/><path d="m12.5 35.7h16.7v19.9h-16.7z"/></g><path fill="#ffce31" d="m47.5 28.9h7v14h-7z"/><path fill="#f2b200" d="m48 29.4h6v13h-6z"/><path d="m52 41.2l-.4-2.7c.2-.2.4-.5.4-.8 0-.6-.4-1-1-1-.6 0-1 .4-1 1 0 .3.2.6.4.8l-.4 2.7h2" fill="#3e4347"/><circle cx="51" cy="33" r="2.9" fill="#b78300"/><path d="m53.8 32.5c0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9 1.6 0 2.9 1.3 2.9 2.9" fill="#ffd664"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ab.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ab.svg
index a6f01a4..1877e1d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ab.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ab.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#fff" cx="32" cy="32" r="22"/><path transform="matrix(-.7071-.7071.7071-.7071 31.999 77.26)" fill="#ed4c5c" d="m4.639 28h54.721v7.999h-54.721z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-16.6 0-30 13.4-30 30 0 16.6 13.4 30 30 30s30-13.4 30-30c0-16.6-13.4-30-30-30m22 30c0 4.6-1.4 8.9-3.9 12.5l-30.6-30.6c3.6-2.5 7.9-3.9 12.5-3.9 12.2 0 22 9.9 22 22m-44 0c0-4.6 1.4-8.9 3.9-12.5l30.6 30.6c-3.6 2.5-7.9 3.9-12.5 3.9-12.1 0-22-9.9-22-22" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ac.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ac.svg
index fe4ff80..2f44e92 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ac.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ac.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="M 0,50 H25.999 V64 H0 z"/><path fill="#dce5e5" d="m26 50h34v14h-34z"/><path fill="#ff8736" d="m60 50h4v14h-4z"/><path fill="#abc2c6" d="m33.46 15.986c-5.106 19.12 10.427-6.992 30.54 31.02-10.663-14.14-45.19-3.834-59.708-19.511-20.14-21.743 37.602-43.1 29.17-11.511"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f2b200" d="m0 50h26v14h-26z"/><path fill="#dce5e5" d="m26 50h34v14h-34z"/><path fill="#ff8736" d="m60 50h4v14h-4z"/><path d="M33.5,16C28.4,35.1,43.9,9,64,47C53.3,32.9,18.8,43.2,4.3,27.5C-15.8,5.8,41.9-15.6,33.5,16z" fill="#abc2c6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ad.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ad.svg
index 02c3735..f02dd41 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ad.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ad.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><path fill="#f2b200" d="m12 32h15.437v8h-15.437z"/><path fill="#fff" d="m27.438 32h20.19v8h-20.19z"/><g fill="#ffce31"><ellipse cx="13.28" cy="35.999" rx=".686" ry=".863"/><ellipse cx="13.28" cy="33.436" rx=".686" ry=".863"/><ellipse cx="13.28" cy="38.563" rx=".686" ry=".865"/><ellipse cx="15.198" cy="37.11" rx=".685" ry=".864"/><ellipse cx="15.197" cy="34.889" rx=".686" ry=".866"/><ellipse cx="17.11" cy="35.999" rx=".686" ry=".863"/><ellipse cx="17.11" cy="33.436" rx=".686" ry=".863"/><ellipse cx="17.11" cy="38.563" rx=".686" ry=".866"/><path d="m15.198 38.564c-.378-.002-.686.385-.686.864h1.37c.001-.478-.307-.864-.684-.863"/><path d="m15.198 33.436c.377 0 .685-.388.685-.864h-1.37c0 .476.306.864.685.864"/><ellipse cx="18.896" cy="37.11" rx=".684" ry=".864"/><ellipse cx="18.896" cy="34.889" rx=".685" ry=".864"/><path d="m18.896 38.563c-.378 0-.685.387-.685.866h1.369c0-.48-.307-.866-.684-.866"/><path d="m18.896 33.436c.377 0 .684-.388.684-.864h-1.368c-.001.476.306.864.684.864"/><ellipse cx="20.54" cy="35.999" rx=".685" ry=".863"/><ellipse cx="20.541" cy="33.436" rx=".684" ry=".864"/><ellipse cx="20.541" cy="38.563" rx=".684" ry=".865"/><ellipse cx="22.458" cy="37.11" rx=".685" ry=".863"/><ellipse cx="22.458" cy="34.889" rx=".685" ry=".864"/><ellipse cx="24.376" cy="35.999" rx=".685" ry=".863"/><ellipse cx="24.376" cy="33.436" rx=".685" ry=".863"/><ellipse cx="24.376" cy="38.563" rx=".685" ry=".865"/><path d="m22.458 38.563c-.378 0-.686.387-.686.866h1.37c.003-.48-.305-.866-.684-.866"/><path d="m22.457 33.436c.38 0 .688-.388.686-.864h-1.37c-.001.476.307.864.684.864"/><path d="m26.843 37.11c0 .478-.307.862-.685.863-.381 0-.686-.386-.685-.864 0-.476.304-.864.685-.863.378 0 .685.388.685.864"/><ellipse cx="26.16" cy="34.889" rx=".685" ry=".866"/><path d="m26.16 38.563c-.38 0-.685.387-.685.865h1.37c.001-.48-.305-.866-.685-.866"/><path d="m26.16 33.436c.378 0 .685-.388.686-.864h-1.371c0 .476.304.864.685.864"/></g><path fill="#ff8736" d="m47.625 32h2.375v8h-2.375z"/><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v5.999h-58.37z"/><path fill="#abc2c6" d="m30.647 11.865c-3.15 11.8 6.435-4.315 18.846 19.14-6.58-8.725-27.885-2.366-36.845-12.04-12.426-13.418 23.2-26.598 17.999-7.103"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><path fill="#eda454" d="m12 32h15.4v8h-15.4z"/><path fill="#fff" d="m27.4 32h20.2v8h-20.2z"/><g fill="#ffce31"><ellipse cx="13.3" cy="36" rx=".7" ry=".9"/><path d="m14 33.4c0 .5-.3.9-.7.9-.4 0-.7-.4-.7-.9 0-.5.3-.9.7-.9.4.1.7.5.7.9"/><ellipse cx="13.3" cy="38.6" rx=".7" ry=".9"/><ellipse cx="15.2" cy="37.1" rx=".7" ry=".9"/><ellipse cx="15.2" cy="34.9" rx=".7" ry=".9"/><ellipse cx="17.1" cy="36" rx=".7" ry=".9"/><path d="m17.8 33.4c0 .5-.3.9-.7.9-.4 0-.7-.4-.7-.9 0-.5.3-.9.7-.9.4.1.7.5.7.9"/><ellipse cx="17.1" cy="38.6" rx=".7" ry=".9"/><path d="m15.2 38.6c-.4 0-.7.4-.7.9h1.4c0-.6-.3-.9-.7-.9"/><path d="m15.2 33.4c.4 0 .7-.4.7-.9h-1.4c0 .5.3.9.7.9"/><ellipse cx="18.9" cy="37.1" rx=".7" ry=".9"/><ellipse cx="18.9" cy="34.9" rx=".7" ry=".9"/><path d="m18.9 38.6c-.4 0-.7.4-.7.9h1.4c0-.6-.3-.9-.7-.9"/><path d="m18.9 33.4c.4 0 .7-.4.7-.9h-1.4c0 .5.3.9.7.9"/><ellipse cx="20.5" cy="36" rx=".7" ry=".9"/><path d="m21.2 33.4c0 .5-.3.9-.7.9s-.7-.4-.7-.9c0-.5.3-.9.7-.9.4.1.7.5.7.9"/><ellipse cx="20.5" cy="38.6" rx=".7" ry=".9"/><ellipse cx="22.5" cy="37.1" rx=".7" ry=".9"/><ellipse cx="22.5" cy="34.9" rx=".7" ry=".9"/><ellipse cx="24.4" cy="36" rx=".7" ry=".9"/><path d="m25.1 33.4c0 .5-.3.9-.7.9s-.7-.4-.7-.9c0-.5.3-.9.7-.9s.7.5.7.9"/><ellipse cx="24.4" cy="38.6" rx=".7" ry=".9"/><path d="m22.5 38.6c-.4 0-.7.4-.7.9h1.4c-.1-.6-.4-.9-.7-.9"/><path d="m22.5 33.4c.4 0 .7-.4.7-.9h-1.4c0 .5.3.9.7.9"/><path d="m26.8 37.1c0 .5-.3.9-.7.9-.4 0-.7-.4-.7-.9 0-.5.3-.9.7-.9.4 0 .7.4.7.9"/><ellipse cx="26.2" cy="34.9" rx=".7" ry=".9"/><path d="m26.2 38.6c-.4 0-.7.4-.7.9h1.4c-.1-.6-.4-.9-.7-.9"/><path d="m26.2 33.4c.4 0 .7-.4.7-.9h-1.4c0 .5.3.9.7.9"/></g><path fill="#ff8736" d="m47.6 32h2.4v8h-2.4z"/><path transform="matrix(.7071-.7071.7071.7071-13.2556 32.0003)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/><path d="M30.6,11.9C27.5,23.7,37.1,7.5,49.5,31c-6.6-8.7-27.9-2.4-36.8-12C0.2,5.6,35.9-7.6,30.6,11.9z" fill="#abc2c6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ae.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ae.svg
index 6c462d3..54cbd38 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ae.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ae.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m28 38l-1 10h-8l-1-10h-2v13h14v-13z"/><path d="m20 37l3-3 3 4-4 2z"/><path d="m45 23h-6-6c-1 0-2 1-2 2l-1 4-5 3 1 2 6-2 2-5 1 24h3l1-13 1 13h3l1-24 1 9h3l-1-11c0-1-1-2-2-2"/><path d="M43,19c0,1-1,2-2,1.999h-4C36,21,35,20,35,19v-4c0-1,1-2,2-2h4c1,0,2,1,2,2V19z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m28 38l-1 10h-8l-1-10h-2v13h14v-13z"/><path d="m20 37l3-3 3 4-4 2z"/><path d="m45 23h-6-6c-1 0-2 1-2 2l-1 4-5 3 1 2 6-2 2-5 1 24h3l1-13 1 13h3l1-24 1 9h3l-1-11c0-1-1-2-2-2"/><path d="m43 19c0 1-1 2-2 2h-4c-1 0-2-1-2-2v-4c0-1 1-2 2-2h4c1 0 2 1 2 2v4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6af.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6af.svg
index ad4c760..bfc991b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6af.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6af.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><g fill="#fff"><path d="m32.603 20.38h2.595c.956 0 1.73-.618 1.73-1.379v-3.44c0-.761-.774-1.378-1.73-1.378h-2.595c-.956 0-1.73.617-1.73 1.378v3.44c-.001.761.773 1.379 1.73 1.379"/><path d="m39.486 21.929h-11.524c-.816 0-1.478.52-1.478 1.162v5.809l-3.688 2.977v1.339l5.75-2.929.745-6.03v25.563h2.956l1.477-11.619 1.479 11.619h2.953v-25.563l1.33 11.62h1.479v-12.782c0-.642-.662-1.162-1.479-1.162"/><path d="m19.926 34.23h2.815v3.754h-2.815z"/><path d="m23.786 38.863h2.815v3.754h-2.815z"/><path d="m19.16 43.15h2.815v3.755h-2.815z"/></g><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.816 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32.1" r="30" fill="#ff5a79"/><circle cx="32" cy="32.1" r="24" fill="#333"/><g fill="#fff"><path d="m32.6 20.5h2.6c1 0 1.7-.6 1.7-1.4v-3.4c0-.8-.8-1.4-1.7-1.4h-2.6c-1 0-1.7.6-1.7 1.4v3.4c0 .7.8 1.4 1.7 1.4"/><path d="m39.5 22h-11.5c-.8 0-1.5.5-1.5 1.2v5.8l-3.7 3v1.3l5.8-2.9.7-6v25.6h3l1.5-11.6 1.5 11.6h3v-25.7l1.3 11.6h1.4v-12.7c0-.7-.7-1.2-1.5-1.2"/><path d="m20 34.3h2.8v3.8h-2.8z"/><path d="m23.8 38.9h2.8v3.8h-2.8z"/><path d="m19.2 43.2h2.8v3.8h-2.8z"/></g><path transform="matrix(.7071-.7071.7071.7071-13.2935 32.0473)" fill="#ff5a79" d="m29 2.9h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b0.svg
index 1022cab..504d3ce 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m36.574 24.14v-1.043h-7.576v1.043c0 .575-.459 1.042-1.023 1.042h-4.945c-2.313 0-4.188 1.911-4.188 4.267v5.098h5.686v-1.788c0-.985.783-1.785 1.752-1.785h.635c.24 0 .512.239.619.44 1.033 1.869 2.998 3.133 5.254 3.133 2.264 0 4.236-1.273 5.266-3.156.113-.195.375-.417.605-.417.002 0 .002 0 .002 0h4.813v-5.791h-5.874c-.567-.001-1.026-.468-1.026-1.043"/><path d="m24.527 16.706c.166 0 1.463-.022 1.617-.063.633-.049 1.311-.106 4.436-.124.135.182.291.345.465.488v2.29h-1.025c-.564 0-1.021.467-1.021 1.042 0 .576.457 1.043 1.021 1.043h1.025 3.484 1.023c.564 0 1.021-.467 1.021-1.043 0-.575-.457-1.042-1.021-1.042h-1.023v-2.29c.174-.144.328-.307.463-.488 3.125.018 3.803.075 4.436.124.154.041 1.453.063 1.619.063 1.023 0 1.854-.846 1.854-1.888 0-1.043-.83-1.889-1.854-1.889-.166 0-1.465.021-1.619.063-.633.048-1.311.106-4.436.124-.506-.679-1.304-1.116-2.205-1.116s-1.701.437-2.207 1.117c-3.125-.018-3.803-.076-4.436-.124-.154-.042-1.451-.063-1.617-.063-1.025 0-1.855.846-1.855 1.889 0 1.041.83 1.887 1.855 1.887"/><path d="m45.16 23.1h2.842v9.691h-2.842z"/><path d="m17.516 52h8.336l1.516-13.996h-11.368l1.516 13.996m8.355-8.973h-8.373l-.439-4.059h9.252l-.44 4.059"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m36.6 24.1v-1h-7.6v1c0 .6-.5 1-1 1h-5c-2.3 0-4.2 1.9-4.2 4.3v5.1h5.7v-1.8c0-1 .8-1.8 1.8-1.8h.6c.2 0 .5.2.6.4 1 1.9 3 3.1 5.3 3.1 2.3 0 4.2-1.3 5.3-3.2.1-.2.4-.4.6-.4h4.8v-5.8h-5.9c-.6.2-1-.3-1-.9"/><path d="m24.5 16.7c.2 0 1.5 0 1.6-.1.6 0 1.3-.1 4.4-.1.1.2.3.3.5.5v2.3h-1c-.6 0-1 .5-1 1s.5 1 1 1h1 3.5 1c.6 0 1-.5 1-1s-.5-1-1-1h-1v-2.3c.2-.1.3-.3.5-.5 3.1 0 3.8.1 4.4.1.2 0 1.5.1 1.6.1 1 0 1.9-.8 1.9-1.9s-.8-1.9-1.9-1.9c-.2 0-1.5 0-1.6.1-.6 0-1.3.1-4.4.1-.5-.7-1.3-1.1-2.2-1.1s-1.7.4-2.2 1.1c-3.1 0-3.8-.1-4.4-.1-.2 0-1.5-.1-1.6-.1-1 0-1.9.8-1.9 1.9s.8 1.9 1.8 1.9"/><path d="m45.2 23.1h2.8v9.7h-2.8z"/><path d="m17.5 52h8.3l1.5-14h-11.3l1.5 14m8.4-9h-8.4l-.4-4h9.3l-.5 4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b1.svg
index 868aab0..0eec893 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><g fill="#fff"><path d="m35.28 26.05v-.779h-5.782v.779c0 .43-.348.777-.779.777h-3.773c-1.763 0-3.192 1.425-3.192 3.182v3.802h4.335v-1.332c0-.735.599-1.331 1.337-1.331h.486c.181 0 .389.177.471.326 0 0 .002 0 .002.001.786 1.394 2.285 2.336 4.01 2.336 1.727 0 3.23-.95 4.02-2.354.087-.146.285-.31.462-.31h.002 3.669v-4.32h-4.481c-.431 0-.781-.348-.781-.777"/><path d="m26.577 19.304c.126 0 1.113-.016 1.229-.045.48-.034.996-.077 3.372-.09.102.132.221.251.352.355v1.668h-.777c-.431 0-.778.34-.778.759 0 .418.348.759.778.759h.777 2.649.777c.429 0 .777-.341.777-.759 0-.419-.349-.759-.777-.759h-.776v-1.668c.131-.104.248-.223.351-.355 2.375.013 2.89.056 3.37.09.118.03 1.104.045 1.231.045.777 0 1.407-.615 1.407-1.374 0-.76-.63-1.375-1.407-1.375-.127 0-1.113.016-1.231.047-.48.034-.995.076-3.37.089-.384-.494-.99-.814-1.675-.814-.686 0-1.292.32-1.677.814-2.376-.013-2.892-.055-3.372-.089-.116-.031-1.104-.047-1.229-.047-.777 0-1.409.614-1.409 1.375-.001.759.631 1.374 1.408 1.374"/><path d="m42.25 25.27h1.708v6.832h-1.708z"/><path d="m21.18 46.621h6.263l1.14-10.248h-8.54l1.137 10.248m6.278-6.57h-6.291l-.33-2.971h6.951l-.33 2.971"/></g><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><g fill="#fff"><path d="m35.3 26.1v-.8h-5.8v.8c0 .4-.3.8-.8.8h-3.8c-1.8 0-3.2 1.4-3.2 3.2v3.8h4.3v-1.3c0-.7.6-1.3 1.3-1.3h.5c.2 0 .4.2.5.3.8 1.4 2.3 2.3 4 2.3 1.7 0 3.2-.9 4-2.4.1-.1.3-.3.5-.3h3.7v-4.3h-4.5c-.4-.1-.7-.4-.7-.8"/><path d="m26.6 19.3c.1 0 1.1 0 1.2 0 .5 0 1-.1 3.4-.1.1.1.2.3.4.4v1.7h-.8c-.4 0-.8.3-.8.8s.3.8.8.8h.8 2.6.8c.4 0 .8-.3.8-.8s-.3-.8-.8-.8h-.8v-1.7c.1-.1.2-.2.4-.4 2.4 0 2.9.1 3.4.1.1 0 1.1 0 1.2 0 .8 0 1.4-.6 1.4-1.4s-.6-1.4-1.4-1.4c-.1 0-1.1 0-1.2 0-.5 0-1 .1-3.4.1-.4-.5-1-.8-1.7-.8-.7 0-1.3.3-1.7.8-2.4 0-2.9-.1-3.4-.1-.1 0-1.1 0-1.2 0-.8 0-1.4.6-1.4 1.4s.6 1.4 1.4 1.4"/><path d="m42.2 25.3h1.7v6.8h-1.7z"/><path d="m21.2 46.6h6.3l1.1-10.2h-8.6l1.2 10.2m6.3-6.5h-6.3l-.3-3h7l-.4 3"/></g><path transform="matrix(.7071-.7071.7071.7071-13.2553 31.9997)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b2.svg
index 332aae0..0a4447d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#62727a"><path d="m27.5 50.999c0-2.98 2.285-5.5 4.99-5.5.189 0 .381.012.563.037l19.01 1.988c2.023.264 3.436 1.693 3.436 3.475 0 1.783-1.412 3.211-3.447 3.477l-18.987 1.986c-.194.025-.386.037-.575.037-2.707 0-4.992-2.518-4.992-5.5m1 0c0 2.4 1.865 4.506 3.99 4.506.146 0 .295-.008.457-.029l18.988-1.986c1.276-.166 2.564-1 2.564-2.49s-1.288-2.322-2.553-2.488l-19.01-1.988c-.149-.02-.298-.029-.444-.029-2.124-.002-3.989 2.104-3.989 4.504"/><path d="m40 50.999c0-6.617 5.383-12 12-12s12 5.383 12 12-5.383 12-12 12-12-5.383-12-12m2 0c0 5.514 4.486 10 10 10s10-4.486 10-10-4.486-10-10-10-10 4.486-10 10"/><path d="m0 50.999c0-6.617 5.383-12 12-12s12 5.383 12 12-5.383 12-12 12-12-5.383-12-12m2 0c0 5.514 4.486 10 10 10s10-4.486 10-10-4.486-10-10-10-10 4.486-10 10"/></g><g fill="#42ade2"><path d="m42 50.999c0-5.514 4.486-10 10-10s10 4.486 10 10-4.486 10-10 10-10-4.486-10-10m2 0c0 4.412 3.589 8 8 8s8-3.588 8-8c0-4.41-3.589-8-8-8s-8 3.59-8 8"/><path d="m2 50.999c0-5.514 4.486-10 10-10s10 4.486 10 10-4.486 10-10 10-10-4.486-10-10m2 0c0 4.412 3.589 8 8 8s8-3.588 8-8c0-4.41-3.589-8-8-8s-8 3.59-8 8"/></g><g fill="#ff9d27"><path d="m61.28 41.712c-8.336-7.966-21.945-2.311-22.278 9.309-.037 1.305-2.036 1.307-1.999 0 .385-13.396 16.08-19.925 25.691-10.74.94.898-.476 2.325-1.414 1.431"/><path d="m2.723 41.712c8.336-7.966 21.945-2.311 22.278 9.309.037 1.305 2.036 1.307 1.999 0-.385-13.397-16.08-19.926-25.691-10.741-.94.899.476 2.326 1.414 1.432"/></g><path fill="#42ade2" d="m50.996 50.04c-.74-5.83-4.22-10.68-9.482-13.201-1.161-.557-.148-2.288 1.01-1.735 5.946 2.849 9.643 8.419 10.469 14.937.162 1.282-1.835 1.265-1.995-.001"/><path fill="#b2c1c0" d="m15.495 22.14c2.214-1.538 5.22-1.965 7.838-2.01 1.29-.023 1.288 1.977 0 2-1.864.033-3.938.284-5.691 1.103.688.688 1.377 1.377 2.065 2.065.234.234.379.647.258.973-.5 1.334-1 2.667-1.5 4-.449 1.196-2.383.679-1.93-.531.436-1.16.871-2.32 1.306-3.479-.85-.85-1.698-1.698-2.548-2.548-.482-.483-.32-1.207.202-1.571"/><g fill="#42ade2"><path transform="matrix(-.3162.9487-.9487-.3162 91.18 18.283)" d="m29.514 40.999h18.973v2h-18.973z"/><path d="m12.64 51.769c4.757-3.959 3.472-11.211 3.132-12.762l2.439-7.919c3.035.418 14.13 2.592 19.582 12.398l1.748-.971c-6.852-12.333-21.357-13.47-21.973-13.513l-.791-.054-3.08 9.999.069.273c.019.074 1.848 7.471-2.406 11.01l1.28 1.537"/></g><g fill="#62727a"><path d="m28 20.13h-4.5v2h4.5c.275 0 .5-.225.5-.5v-1c0-.276-.225-.5-.5-.5"/><circle cx="12" cy="50.999" r="1"/></g><path fill="#42ade2" d="m16.498 31.13c2.836 1.421 4.988 4.01 6.813 6.802 2.881 4.412 5.099 11.188 11.27 11.906l17.451.025c1.292 0 1.292 1.986 0 1.986-5.736 0-12.03-.012-17.303-.012-10.141 0-10.96-14.307-18.23-18.585v-2.122"/><circle fill="#62727a" cx="52" cy="50.999" r="2"/><path transform="matrix(-.3162.9487-.9487-.3162 85.06-1.308)" fill="#b2c1c0" d="m39.837 28.999h6.325v2h-6.325z"/><g fill="#62727a"><path d="m40.637 26.08c3.799 0 3.793-2.082 7.096-2.082.789 0 1.974 1 2.229 1.804.254.798-.774 2.436-1.289 3.093-.666.852-1.668 1.431-2.592.899-1.314-.756-2.572-1.682-6.068-.035-.789.371-2.065-.576-2.01-2.901.017-.707.999-.778 2.634-.778"/><path d="m35.99 51.769h2.551c.549 0 1 .449 1 1s-.451 1-1 1h-2.551c-.549 0-1-.449-1-1s.451-1 1-1"/></g><circle fill="#b2c1c0" cx="33" cy="50.999" r="4"/><path fill="#e8e8e8" d="m32.734 51.964c-1.667-.666-3.334-1.334-5-2-1.182-.473-.667-2.408.531-1.928 1.666.666 3.333 1.332 5 2 1.182.473.667 2.406-.531 1.928"/><g fill="#62727a"><path d="m26.791 47.96h2.549c.551 0 1 .449 1 1s-.449 1-1 1h-2.549c-.551 0-1-.449-1-1s.449-1 1-1"/><path d="m24.5 22.531c0 .275-.225.5-.5.5-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5.275 0 .5.225.5.5v3"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#62727a"><path d="m27.5 51c0-3 2.3-5.5 5-5.5.2 0 .4 0 .6 0l19 2c2 .3 3.4 1.7 3.4 3.5 0 1.8-1.4 3.2-3.4 3.5l-19 2c-.2 0-.4 0-.6 0-2.7 0-5-2.5-5-5.5m1 0c0 2.4 1.9 4.5 4 4.5.1 0 .3 0 .5 0l19-2c1.3-.2 2.6-1 2.6-2.5s-1.3-2.3-2.6-2.5l-19-2c-.1 0-.3 0-.4 0-2.2 0-4.1 2.1-4.1 4.5"/><path d="m40 51c0-6.6 5.4-12 12-12s12 5.4 12 12-5.4 12-12 12-12-5.4-12-12m2 0c0 5.5 4.5 10 10 10s10-4.5 10-10-4.5-10-10-10-10 4.5-10 10"/><path d="m0 51c0-6.6 5.4-12 12-12s12 5.4 12 12-5.4 12-12 12-12-5.4-12-12m2 0c0 5.5 4.5 10 10 10s10-4.5 10-10-4.5-10-10-10-10 4.5-10 10"/></g><g fill="#42ade2"><path d="m42 51c0-5.5 4.5-10 10-10s10 4.5 10 10-4.5 10-10 10-10-4.5-10-10m2 0c0 4.4 3.6 8 8 8s8-3.6 8-8c0-4.4-3.6-8-8-8s-8 3.6-8 8"/><path d="m2 51c0-5.5 4.5-10 10-10s10 4.5 10 10-4.5 10-10 10-10-4.5-10-10m2 0c0 4.4 3.6 8 8 8s8-3.6 8-8c0-4.4-3.6-8-8-8s-8 3.6-8 8"/></g><g fill="#ff9d27"><path d="m61.3 41.7c-8.3-8-21.9-2.3-22.3 9.3 0 1.3-2 1.3-2 0 .4-13.4 16.1-19.9 25.7-10.7.9.9-.5 2.3-1.4 1.4"/><path d="m2.7 41.7c8.3-8 21.9-2.3 22.3 9.3 0 1.3 2 1.3 2 0-.4-13.4-16.1-19.9-25.7-10.7-.9.9.5 2.3 1.4 1.4"/></g><path d="m51 50c-.7-5.8-4.2-10.7-9.5-13.2-1.2-.6-.1-2.3 1-1.7 6 2.9 9.7 8.4 10.5 14.9.2 1.3-1.8 1.3-2 0" fill="#42ade2"/><path d="m15.5 22.1c2.2-1.5 5.2-2 7.8-2 1.3 0 1.3 2 0 2-1.9 0-3.9.3-5.7 1.1.7.7 1.4 1.4 2.1 2.1.2.2.4.6.3 1-.5 1.3-1 2.7-1.5 4-.4 1.2-2.4.7-1.9-.5.4-1.2.9-2.3 1.3-3.5-.9-.9-1.7-1.7-2.5-2.5-.6-.6-.4-1.3.1-1.7" fill="#b2c1c0"/><g fill="#42ade2"><path transform="matrix(.3162-.9487.9487.3162-13.1788 65.7207)" d="m29.5 41h19v2h-19z"/><path d="m12.6 51.8c4.8-4 3.5-11.2 3.1-12.8l2.4-7.9c3 .4 14.1 2.6 19.6 12.4l1.7-1c-6.7-12.3-21.2-13.5-21.8-13.5l-.8-.1-3.1 10 .1.3c0 .1 1.8 7.5-2.4 11l1.2 1.6"/></g><g fill="#62727a"><path d="m28 20.1h-4.5v2h4.5c.3 0 .5-.2.5-.5v-1c0-.3-.2-.5-.5-.5"/><circle cx="12" cy="51" r="1"/></g><path d="m16.5 31.1c2.8 1.4 5 4 6.8 6.8 2.9 4.4 5.1 11.2 11.3 11.9h17.5c1.3 0 1.3 2 0 2-5.7 0-12 0-17.3 0-10.1 0-11-14.3-18.2-18.6l-.1-2.1" fill="#42ade2"/><circle cx="52" cy="51" r="2" fill="#62727a"/><path transform="matrix(.3162-.9487.9487.3162.943 61.3081)" fill="#b2c1c0" d="m39.8 29h6.3v2h-6.3z"/><g fill="#62727a"><path d="m40.6 26.1c3.8 0 3.8-2.1 7.1-2.1.8 0 2 1 2.2 1.8.3.8-.8 2.4-1.3 3.1-.7.9-1.7 1.4-2.6.9-1.3-.8-2.6-1.7-6.1 0-.8.4-2.1-.6-2-2.9.1-.7 1.1-.8 2.7-.8"/><path d="m36 51.8h2.6c.5 0 1 .4 1 1s-.5 1-1 1h-2.6c-.5 0-1-.4-1-1s.4-1 1-1"/></g><circle cx="33" cy="51" r="4" fill="#b2c1c0"/><path d="m32.7 52c-1.7-.7-3.3-1.3-5-2-1.2-.5-.7-2.4.5-1.9 1.7.7 3.3 1.3 5 2 1.2.4.7 2.3-.5 1.9" fill="#e8e8e8"/><g fill="#62727a"><path d="m26.8 48h2.5c.6 0 1 .4 1 1s-.4 1-1 1h-2.5c-.6 0-1-.4-1-1s.4-1 1-1"/><path d="m24.5 22.5c0 .3-.2.5-.5.5-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5.3 0 .5.2.5.5v3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b3.svg
index 317dff6..320cc23 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><path fill="#fff" d="m51.998 32.823c-.374-.886-.911-1.681-1.595-2.364-.682-.684-1.477-1.221-2.362-1.596-.917-.389-1.892-.584-2.896-.584-1 0-1.977.195-2.895.584-.27.115-.532.245-.785.389l-2.533-3.467.873-2.21c.845-.471 1.906-1.141 2.221-1.699.549-.971-1.363-.421-5.533-.421 0 0-2.242-.222-1.219.802.646.646 1.828 1.235 2.611 1.582l-.426 1.078h-10.874c.01-.061.018-.123.023-.186.123-1.176-.385-2.159-1.143-3.307-.063-.095-.121-.179-.172-.259-.041-.063-.061-.138-.061-.219 0-.233.188-.421.422-.421.839 0 3.354 0 3.354 0l1.055-1.689h-5.313c0 0-.028.003-.037.004-.516.046-1.217.343-1.486 1.021-.154.389-.143.823.036 1.291.159.417.451.865.894 1.366 1.322 1.504.708 2.691.059 3.948-.061.116-.121.236-.182.353-.186.374-.793 1.286-1.564 2.398-.231-.13-.474-.249-.721-.354-.92-.389-1.893-.584-2.896-.584-1 0-1.977.195-2.896.584-.885.375-1.68.912-2.363 1.596s-1.218 1.479-1.593 2.364c-.389.918-.584 1.894-.584 2.897s.195 1.978.584 2.896c.375.886.91 1.682 1.593 2.365s1.478 1.22 2.363 1.594c.919.389 1.892.586 2.896.586 1 0 1.977-.197 2.896-.586.885-.374 1.68-.91 2.362-1.594.684-.684 1.219-1.479 1.593-2.365.389-.919.584-1.893.584-2.896s-.195-1.979-.584-2.897c-.374-.886-.909-1.681-1.593-2.364-.087-.089-.177-.174-.269-.256.264-.379.51-.742.73-1.073l7.04 7.159c-.098.244-.15.51-.15.788 0 1.103.844 2.01 1.919 2.103l.37 2.289h-.666v.844h2.321v-.844h-.802l-.385-2.383c.654-.213 1.17-.735 1.369-1.395l2.32-.272c.094.409.224.809.389 1.198.375.886.911 1.682 1.595 2.365.682.684 1.478 1.22 2.362 1.594.918.389 1.892.586 2.895.586 1 0 1.979-.197 2.896-.586.886-.374 1.681-.91 2.362-1.594.684-.684 1.221-1.479 1.595-2.365.388-.919.585-1.893.585-2.896s-.196-1.98-.584-2.898m-27.395 2.898c0 3.172-2.58 5.753-5.75 5.753-3.169 0-5.749-2.581-5.749-5.753 0-3.174 2.58-5.753 5.749-5.753.953 0 1.85.233 2.643.645-1.229 1.733-2.582 3.599-3.319 4.603-.002.003-.004.004-.004.006-.103.141-.163.313-.163.5 0 .466.377.844.843.844.279 0 .525-.136.681-.344.297-.405 1.86-2.541 3.33-4.618 1.071 1.044 1.739 2.503 1.739 4.117m.942-8.146c.054-.106.11-.216.169-.333.104-.199.213-.41.32-.636h10.76l-3.259 8.251-.485-3.02h.664v-.844h-2.32v.844h.801l.508 3.152-7.203-7.331c.017-.03.031-.059.045-.087m9.844 8.439c-.091-.156-.2-.299-.327-.426l3.139-7.944 1.904 2.606c-.073.068-.146.137-.216.209-.684.684-1.22 1.479-1.595 2.364-.389.918-.584 1.894-.584 2.897 0 .007 0 .014 0 .021l-2.321.273m5.72-4.387l2.501 3.422-4.209.494c.046-1.529.692-2.91 1.708-3.916m4.04 9.847c-2.651 0-4.889-1.806-5.549-4.254l7.084-.829-4.209-5.762c.799-.422 1.709-.661 2.674-.661 3.171 0 5.749 2.579 5.749 5.753 0 3.172-2.579 5.753-5.749 5.753"/><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><path d="m52 32.8c-.4-.9-.9-1.7-1.6-2.4-.7-.7-1.5-1.2-2.4-1.6-.9-.4-1.9-.6-2.9-.6-1 0-2 .2-2.9.6-.3.1-.5.2-.8.4l-2.5-3.5.9-2.2c.8-.5 1.9-1.1 2.2-1.7.5-1-1.4-.4-5.5-.4 0 0-2.2-.2-1.2.8.6.6 1.8 1.2 2.6 1.6l-.4 1.1h-10.9c0-.1 0-.1 0-.2.1-1.2-.4-2.2-1.1-3.3-.1-.1-.1-.2-.2-.3 0-.1-.1-.1-.1-.2 0-.2.2-.4.4-.4.8 0 3.4 0 3.4 0l1.1-1.7h-5.3c0 0 0 0 0 0-.5 0-1.2.3-1.5 1-.2.4-.1.8 0 1.3.2.4.5.9.9 1.4 1.3 1.5.7 2.7.1 3.9-.1.1-.1.2-.2.4-.2.4-.8 1.3-1.6 2.4-.2-.1-.5-.2-.7-.4-.9-.4-1.9-.6-2.9-.6s-2 .2-2.9.6c-.9.4-1.7.9-2.4 1.6-.7.7-1.2 1.5-1.6 2.4-.4.9-.6 1.9-.6 2.9 0 1 .2 2 .6 2.9.4.9.9 1.7 1.6 2.4.7.7 1.5 1.2 2.4 1.6.9.4 1.9.6 2.9.6 1 0 2-.2 2.9-.6.9-.4 1.7-.9 2.4-1.6.7-.7 1.2-1.5 1.6-2.4.4-.9.6-1.9.6-2.9 0-1-.2-2-.6-2.9-.4-.9-.9-1.7-1.6-2.4-.1-.1-.2-.2-.3-.3.3-.4.5-.7.7-1.1l7 7.2c-.1.2-.2.5-.2.8 0 1.1.8 2 1.9 2.1l.4 2.3h-.7v.8h2.3v-.8h-.8l-.4-2.4c.7-.2 1.2-.7 1.4-1.4l2.3-.3c.1.4.2.8.4 1.2.4.9.9 1.7 1.6 2.4.7.7 1.5 1.2 2.4 1.6.9.4 1.9.6 2.9.6 1 0 2-.2 2.9-.6.9-.4 1.7-.9 2.4-1.6.7-.7 1.2-1.5 1.6-2.4.4-.9.6-1.9.6-2.9 0-.9-.2-1.9-.6-2.8m-27.4 2.9c0 3.2-2.6 5.8-5.8 5.8-3.2 0-5.7-2.6-5.7-5.8 0-3.2 2.6-5.8 5.7-5.8 1 0 1.9.2 2.6.6-1.2 1.7-2.6 3.6-3.3 4.6-.1.1-.2.3-.2.5 0 .5.4.8.8.8.3 0 .5-.1.7-.3.3-.4 1.9-2.5 3.3-4.6 1.2 1.1 1.9 2.6 1.9 4.2m.9-8.1c.1-.1.1-.2.2-.3.1-.2.2-.4.3-.6h10.8l-3.3 8.3-.5-3h.7v-1h-2.3v.8h.8l.5 3.2-7.2-7.4c0 0 0 0 0 0m9.9 8.4c-.1-.2-.2-.3-.3-.4l3.1-7.9 1.9 2.6c-.1.1-.1.1-.2.2-.7.7-1.2 1.5-1.6 2.4-.4.9-.6 1.9-.6 2.9l-2.3.2m5.7-4.4l2.5 3.4-4.2.5c0-1.5.7-2.9 1.7-3.9m4 9.9c-2.7 0-4.9-1.8-5.5-4.3l7.1-.8-4.2-5.8c.8-.4 1.7-.7 2.7-.7 3.2 0 5.7 2.6 5.7 5.8 0 3.2-2.6 5.8-5.8 5.8" fill="#fff"/><path transform="matrix(.7071-.7071.7071.7071-13.2553 31.9997)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fb.svg
index f383205..23c64dc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m26.883 17.13l2.115-.753 2.818 7.763-5.445 1.94z"/><path fill="#e6b796" d="m26.803 16.969c1.266 3.488 1.156 5.523-1.375 6.424l.943 2.691c2.992-1.066 2.875-5.197 1.398-9.27l-.966.155"/><path fill="#ffe1bd" d="m24.307 4.36l-10.551 7.953c-.473 2.975.941 3.955 1.281 5.05.15.482-.51 1.703-.861 2.344-.787 1.43 1.447 1.563 2.115 1.154.846.904.209 1.463 1.926.674.945-.434 1.939-1.799 1.939-1.799-3.328 4.217-1.814 4.924-.209 3.828.82 2.262 2.236 1.756 5.34.65 2.533-.902 3.746-3.908 2.482-7.396l3.18-1.795-6.642-10.66"/><path fill="#594640" d="m18.639 2.776c8.779-3.129 12.609 3.852 13.25 9.41.342 2.959-.484 5.215-1.916 6.566l-1.057-.244-1.146-1.693c0 0 1.572-1.01 1.375-3.133-.09-.971-1.604-2.346-2.949-1.947-.941.279-2.02 1.43-2.229 1.736-.818-2.256-1.203-4.758-2.998-4.875-1.477-.098-6.07 4.313-7.213 3.717-3.082-1.588-.404-7.652 4.883-9.537"/><g fill="#574137"><path d="m26.523 14.11c-.172.037-.326.117-.447.229.018-.188.055-.373.1-.566.061-.238.148-.471.221-.736-.447.307-.76.822-.801 1.398-.033.586.264 1.135.689 1.461-.051-.271-.135-.512-.176-.746-.023-.15-.039-.297-.045-.443.066-.02.131-.041.191-.057.133-.029.244-.068.361-.088.115-.027.234-.037.369-.063.133-.021.273-.025.449-.064-.2-.27-.567-.391-.911-.325"/><path d="m17.779 15.944c.262.723.051 1.459-.471 1.645s-1.156-.25-1.418-.971c-.262-.723-.051-1.459.469-1.645.522-.185 1.159.248 1.42.971"/><path d="m20.16 19.733c0 0-.676 2.508-.928 2.914-.543.871-.945.568-.756-.068.194-.655 1.684-2.846 1.684-2.846"/></g><g fill="#3b946f"><path d="m26.404 24.752c-.85-.154-1.676.395-1.842 1.225l-1.117 5.709 3.086.555 1.115-5.708c.168-.831-.388-1.628-1.242-1.781"/><path d="m26.492 31.829c-.191-.82-1.025-1.307-1.871-1.111l-5.961 1.356.684 2.975 5.961-1.352c.847-.198 1.379-1.048 1.187-1.868"/></g><path fill="#e6b796" d="m19.412 33.542l-.191-1.482c-.07-.528-.568-.899-1.109-.825l-.736.098c-.391.051-.699.316-.818.658-.973.198-2.213.715-1.979 2.487.037.291.248 1.914 2.217 1.65 2.903-.387 2.903-.387 2.616-2.586"/><path fill="#d3976e" d="m29.914 49.36c-1.611.125-2.822 1.492-2.703 3.053l6.932-.537c.805-.063 1.41-.744 1.352-1.527l-.107-1.412-5.474.423"/><g fill="#3e4347"><path d="m35.387 48.94l-5.506.43-.731-9.65 5.506-.43z"/><path d="m34.822 41.497l-5.672-1.777 5.348-6.787 6.455 1.187z"/></g><g fill="#333"><path d="m13.775 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.662-1.414-3.742-2.473s-1.93-2.293-2.521-3.666c-.615-1.424-.928-2.935-.928-4.492s.313-3.066.928-4.49c.592-1.373 1.441-2.607 2.521-3.666 1.08-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.082 1.059 1.93 2.293 2.523 3.666.615 1.424.926 2.934.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.441 2.607-2.523 3.666-1.08 1.059-2.34 1.891-3.742 2.473-1.453.601-2.994.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c.001-5.26-4.368-9.539-9.738-9.539"/><path d="m50.23 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.66-1.414-3.742-2.473-1.08-1.059-1.932-2.293-2.521-3.666-.617-1.424-.928-2.936-.928-4.492s.311-3.066.928-4.49c.59-1.373 1.441-2.607 2.521-3.666 1.082-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.08 1.059 1.93 2.293 2.523 3.666.615 1.423.926 2.933.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.443 2.607-2.523 3.666s-2.34 1.891-3.742 2.473c-1.454.601-2.995.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c0-5.26-4.369-9.539-9.738-9.539"/></g><path fill="#ed4c5c" d="m41.666 36.19l2.125-5.221-1.389-.543-2.057 5.05h-22.341l-2.17-2.27-1.09 1 2.611 2.734 3.402.002.047 2.83 13.895 13.533 6.211-15.262 8.639 12.732 1.352-.623-9.235-13.967m-7.516 14.517l-12.615-12.297.611-1.465h17.604l-5.6 13.762"/><ellipse fill="#333" cx="50.23" cy="50.46" rx="2.355" ry="2.307"/><g fill="#94989b"><path d="m26.9 51.944h4.04v1.258h-4.04z"/><path d="m38.674 53.56h4.04v1.258h-4.04z"/></g><path fill="#b3b3b3" d="m30.727 52.27v.606l3.972.534v-.608z"/><ellipse fill="#333" cx="34.699" cy="53.649" rx="3.307" ry="3.24"/><g fill="#b3b3b3"><ellipse cx="34.699" cy="53.649" rx=".826" ry=".809"/><path d="m34.699 53.954l3.975.536v-.61l-3.975-.54z"/></g><path fill="#d3976e" d="m38.615 51.851c-1.535.49-2.385 2.1-1.896 3.588l6.611-2.117c.768-.246 1.191-1.049.945-1.795l-.441-1.348-5.219 1.672"/><g fill="#3e4347"><path d="m43.834 50.18l-4.694 1.503-3.626-11.283 5.252-1.68z"/><path d="m41.33 40.839l-5.816-.439 4.576-8.659 4.89 2.409z"/></g><path fill="#47b892" d="M46,28.463l-11.502,4.469l-9.117-8.065c0,0,2.615-3.305,3.928-3.549C38.617,19.577,46,28.463,46,28.463z"/><path fill="#3e4347" d="m44.98 34.15l-10.21.553-.271-1.771 11.309-4.792c1.776 2.608-.828 6.01-.828 6.01"/><g fill="#47b892"><path d="m26.572 24.399c-.865-.035-1.604.623-1.646 1.469l-.283 5.805 3.137.121.279-5.805c.046-.846-.62-1.557-1.487-1.59"/><path d="m27.68 31.391c-.307-.785-1.201-1.15-2.01-.84l-5.705 2.168 1.105 2.85 5.707-2.166c.811-.31 1.213-1.224.905-2.01"/></g><path fill="#ffe1bd" d="m20.92 34.07l-.404-1.441c-.145-.512-.691-.811-1.217-.663l-.715.2c-.379.105-.646.41-.715.766-.934.33-2.086 1.014-1.6 2.736.078.283.521 1.857 2.434 1.324 2.818-.783 2.818-.783 2.217-2.922"/><path fill="#ed4c5c" d="m14.244 51.2l-1.377-.78 8.323-14.499 1.38.777z"/><ellipse fill="#333" cx="13.775" cy="50.46" rx="1.178" ry="1.154"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m25.1 16.1l2.1-2.6 3.9 9.3-6.1 2.5z"/><path d="m22.8 22.1c2.2.4 2.2 3.2 2.2 3.2 2.5-1 2.2-6.6.9-9.6l-3.1 6.4" fill="#e6b796"/><path d="m21.8 3.2l-9.2 8.2c-.3 3.1 1.2 4 1.6 5.1.2.5-.4 1.8-.8 2.4-.7 1.5 1.5 1.5 2.2 1.1.9.9-.2 2.1 2.8.1 0 0-2.7 2.8-.1 2.4.3 1.4 1.1 4 6.8-1.4 1.7-1.6 1-5.4 1-5.4l3.1-2-7.4-10.5" fill="#ffe1bd"/><path d="m13.8 5.4c6.1-5.3 11.5-3.2 12.9-1.9 3.6 3.6 4.1 9.1 2.3 14.1 0 0-1.8 0-2.9-1.9 0 0 2.1.1 1.3-4-.7-3.4-4.7-3.7-4.6 1.3l-.5.2c-1.8-1.8-1.3-5.2-4.1-5-2.5.2-5.6 3.8-5.6 3.8-1.3-1-1.3-4.4 1.2-6.6" fill="#594640"/><path d="m16.8 15.4c.3.7.1 1.4-.4 1.6-.5.2-.8-.3-1.1-1-.3-.7-.4-1.3.1-1.5.5-.1 1.1.2 1.4.9" fill="#664e27"/><path d="m24 13.5c-.6-1.3.1-2.9 1.2-3.4 0 0-1.2 2.3.1 4.3 0 0-.9 0-1.3-.9" fill="#e6b796"/><path d="m19.3 19.4c0 0-.9 1.5-1.3 2-.8.9-1 .6-.7 0 .3-.5 1-1.2 1-1.2l1-.8" fill="#664e27"/><g fill="#3b946f"><path d="m25 24.3l-1.6 7.4 3.1.5.7-6.3z"/><path d="m26.5 31.8c-.2-.8-1-1.3-1.9-1.1l-6 1.4.7 3 6-1.4c.9-.2 1.4-1.1 1.2-1.9"/></g><path d="m19.4 33.5l-.2-1.5c-.1-.5-.6-.9-1.1-.8l-.7.1c-.4 0-.7.3-.8.7-1 .2-2.2.7-2 2.5 0 .3.2 1.9 2.2 1.7 2.9-.5 2.9-.5 2.6-2.7" fill="#e6b796"/><path d="m29.9 49.4c-1.6.1-2.8 1.5-2.7 3.1l6.9-.5c.8-.1 1.4-.7 1.4-1.5l-.1-1.4-5.5.3" fill="#d3976e"/><g fill="#3e4347"><path d="m35.4 48.9l-5.5.5-.8-9.7 5.6-.4z"/><path d="m34.8 41.5l-5.7-1.8 5.4-6.8 6.5 1.2z"/></g><g fill="#333"><path d="m13.8 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5s-2-2.3-2.6-3.6c-.6-1.5-.9-3-.9-4.5 0-1.6.3-3.1.9-4.5.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7-1.1 1.1-2.3 1.9-3.7 2.5-1.4.5-2.9.8-4.5.8m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c0-5.2-4.4-9.5-9.7-9.5"/><path d="m50.2 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5-1.1-1.1-1.9-2.3-2.5-3.7-.6-1.4-.9-2.9-.9-4.5s.3-3.1.9-4.5c.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7s-2.3 1.9-3.7 2.5c-1.4.6-3 .9-4.6.9m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c.1-5.2-4.3-9.5-9.7-9.5"/></g><path d="m41.7 36.2l2.1-5.2-1.4-.5-2.1 5.1h-22.3l-2.2-2.3-1.1 1 2.6 2.7h3.4v2.8l13.9 13.5 6.3-15.3 8.6 12.7 1.4-.6-9.2-13.9m-7.5 14.5l-12.7-12.3.6-1.5h17.6l-5.5 13.8" fill="#ed4c5c"/><ellipse cx="50.2" cy="50.5" rx="2.4" ry="2.3" fill="#333"/><g fill="#94989b"><path d="m26.9 51.9h4v1.3h-4z"/><path d="m38.7 53.6h4v1.3h-4z"/></g><path fill="#b3b3b3" d="m30.7 52.3v.6l4 .5v-.6z"/><ellipse cx="34.7" cy="53.7" rx="3.3" ry="3.2" fill="#333"/><g fill="#b3b3b3"><ellipse cx="34.7" cy="53.7" rx=".8" ry=".8"/><path d="m34.7 54l4 .5v-.6l-4-.6z"/></g><path d="m38.6 51.9c-1.5.5-2.4 2.1-1.9 3.6l6.6-2.1c.8-.2 1.2-1 .9-1.8l-.4-1.3-5.2 1.6" fill="#d3976e"/><g fill="#3e4347"><path d="m43.8 50.2l-4.7 1.5-3.6-11.3 5.3-1.7z"/><path d="m41.3 40.8l-5.8-.4 4.6-8.7 4.9 2.5z"/></g><path d="M46,28.5l-11.5,4.5L25,24.3c0,0,2.4-4.9,3.7-5.1C38,17.4,46,28.5,46,28.5z" fill="#47b892"/><path d="m45 34.2l-10.2.6-.3-1.8 11.3-4.8c1.8 2.5-.8 6-.8 6" fill="#3e4347"/><g fill="#47b892"><path d="m25 24.3l-.3 7.4 3.1.1.3-5.9c0-.8-3.1-1.6-3.1-1.6"/><path d="m27.7 31.4c-.3-.8-1.2-1.1-2-.8l-5.7 2.1 1.1 2.8 5.7-2.2c.8-.2 1.2-1.1.9-1.9"/></g><path d="m20.9 34.1l-.4-1.4c-.1-.5-.7-.8-1.2-.7l-.7.2c-.4.1-.6.4-.7.8-.9.3-2.1 1-1.6 2.7.1.3.5 1.9 2.4 1.3 2.8-.8 2.8-.8 2.2-2.9" fill="#ffe1bd"/><path fill="#ed4c5c" d="m14.2 51.2l-1.3-.8 8.3-14.5 1.4.8z"/><ellipse cx="13.8" cy="50.5" rx="1.2" ry="1.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fc.svg
index 1af82ae..3451fe9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m26.883 17.13l2.115-.752 2.818 7.762-5.445 1.95z"/><path fill="#e0a372" d="m26.803 16.97c1.266 3.488 1.156 5.523-1.375 6.424l.943 2.691c2.992-1.066 2.875-5.197 1.398-9.27l-.966.155"/><path fill="#fed0ac" d="m24.307 4.36l-10.551 7.953c-.473 2.975.941 3.955 1.281 5.05.15.482-.51 1.703-.861 2.344-.787 1.43 1.447 1.563 2.115 1.154.846.904.209 1.463 1.926.674.945-.434 1.939-1.799 1.939-1.799-3.328 4.217-1.814 4.924-.209 3.828.82 2.262 2.236 1.756 5.34.65 2.533-.902 3.746-3.908 2.482-7.396l3.18-1.795-6.642-10.66"/><path fill="#dbb471" d="m18.639 2.776c8.779-3.129 12.609 3.852 13.25 9.41.342 2.959-.484 5.215-1.916 6.566l-1.057-.244-1.146-1.693c0 0 1.572-1.01 1.375-3.133-.09-.971-1.604-2.346-2.949-1.947-.941.279-2.02 1.43-2.229 1.736-.818-2.256-1.203-4.758-2.998-4.875-1.477-.098-6.07 4.313-7.213 3.717-3.082-1.587-.404-7.652 4.883-9.537"/><g fill="#574137"><path d="m26.523 14.11c-.172.037-.326.117-.447.229.018-.188.055-.373.1-.566.061-.238.148-.471.221-.736-.447.307-.76.822-.801 1.398-.033.586.264 1.135.689 1.461-.051-.271-.135-.512-.176-.746-.023-.15-.039-.297-.045-.443.066-.02.131-.041.191-.057.133-.029.244-.068.361-.088.115-.027.234-.037.369-.063.133-.021.273-.025.449-.064-.2-.27-.567-.391-.911-.325"/><path d="m17.779 15.944c.262.723.051 1.459-.471 1.645s-1.156-.25-1.418-.971c-.262-.723-.051-1.459.469-1.645.522-.185 1.159.249 1.42.971"/><path d="m20.16 19.733c0 0-.676 2.508-.928 2.914-.543.871-.945.568-.756-.068.194-.654 1.684-2.846 1.684-2.846"/></g><g fill="#3b946f"><path d="m26.404 24.753c-.85-.154-1.676.395-1.842 1.225l-1.117 5.709 3.086.555 1.115-5.707c.168-.833-.388-1.63-1.242-1.782"/><path d="m26.492 31.829c-.191-.82-1.025-1.307-1.871-1.111l-5.961 1.355.684 2.975 5.961-1.352c.847-.197 1.379-1.047 1.187-1.867"/></g><path fill="#e0a372" d="m19.412 33.542l-.191-1.482c-.07-.527-.568-.898-1.109-.824l-.736.098c-.391.051-.699.316-.818.658-.973.197-2.213.715-1.979 2.486.037.291.248 1.914 2.217 1.65 2.903-.387 2.903-.387 2.616-2.586"/><path fill="#d3976e" d="m29.914 49.36c-1.611.125-2.822 1.492-2.703 3.053l6.932-.537c.805-.063 1.41-.744 1.352-1.527l-.107-1.412-5.474.423"/><g fill="#3e4347"><path d="m35.387 48.94l-5.506.43-.731-9.65 5.506-.43z"/><path d="m34.822 41.497l-5.672-1.777 5.348-6.787 6.455 1.187z"/></g><g fill="#333"><path d="m13.775 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.662-1.414-3.742-2.473s-1.93-2.293-2.521-3.666c-.615-1.424-.928-2.935-.928-4.492s.313-3.066.928-4.49c.592-1.373 1.441-2.607 2.521-3.666 1.08-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.082 1.059 1.93 2.293 2.523 3.666.615 1.424.926 2.934.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.441 2.607-2.523 3.666-1.08 1.059-2.34 1.891-3.742 2.473-1.453.601-2.994.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c.001-5.26-4.368-9.539-9.738-9.539"/><path d="m50.23 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.66-1.414-3.742-2.473-1.08-1.059-1.932-2.293-2.521-3.666-.617-1.424-.928-2.936-.928-4.492s.311-3.066.928-4.49c.59-1.373 1.441-2.607 2.521-3.666 1.082-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.08 1.059 1.93 2.293 2.523 3.666.615 1.423.926 2.933.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.443 2.607-2.523 3.666s-2.34 1.891-3.742 2.473c-1.454.601-2.995.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c0-5.26-4.369-9.539-9.738-9.539"/></g><path fill="#ed4c5c" d="m41.666 36.19l2.125-5.221-1.389-.543-2.057 5.05h-22.341l-2.17-2.27-1.09 1 2.611 2.734 3.402.002.047 2.83 13.895 13.533 6.211-15.262 8.639 12.732 1.352-.623-9.235-13.967m-7.516 14.517l-12.615-12.297.611-1.465h17.604l-5.6 13.762"/><ellipse fill="#333" cx="50.23" cy="50.46" rx="2.355" ry="2.307"/><g fill="#94989b"><path d="m26.9 51.944h4.04v1.258h-4.04z"/><path d="m38.674 53.56h4.04v1.258h-4.04z"/></g><path fill="#b3b3b3" d="m30.727 52.27v.606l3.972.534v-.608z"/><ellipse fill="#333" cx="34.699" cy="53.649" rx="3.307" ry="3.24"/><g fill="#b3b3b3"><ellipse cx="34.699" cy="53.649" rx=".826" ry=".809"/><path d="m34.699 53.954l3.975.536v-.61l-3.975-.54z"/></g><path fill="#d3976e" d="m38.615 51.851c-1.535.49-2.385 2.1-1.896 3.588l6.611-2.117c.768-.246 1.191-1.049.945-1.795l-.441-1.348-5.219 1.672"/><g fill="#3e4347"><path d="m43.834 50.18l-4.694 1.503-3.626-11.283 5.252-1.68z"/><path d="m41.33 40.839l-5.816-.439 4.576-8.659 4.89 2.409z"/></g><path fill="#47b892" d="M46,28.464l-11.502,4.469l-9.117-8.064c0,0,2.615-3.305,3.928-3.549C38.617,19.577,46,28.464,46,28.464z"/><path fill="#3e4347" d="m44.98 34.15l-10.21.553-.271-1.771 11.309-4.791c1.776 2.607-.828 6.01-.828 6.01"/><g fill="#47b892"><path d="m26.572 24.399c-.865-.035-1.604.623-1.646 1.469l-.283 5.805 3.137.121.279-5.805c.046-.845-.62-1.556-1.487-1.59"/><path d="m27.68 31.392c-.307-.785-1.201-1.15-2.01-.84l-5.705 2.168 1.105 2.85 5.707-2.166c.811-.311 1.213-1.225.905-2.01"/></g><path fill="#fed0ac" d="m20.92 34.07l-.404-1.441c-.145-.512-.691-.811-1.217-.662l-.715.199c-.379.105-.646.41-.715.766-.934.33-2.086 1.014-1.6 2.736.078.283.521 1.857 2.434 1.324 2.818-.783 2.818-.783 2.217-2.922"/><path fill="#ed4c5c" d="m14.244 51.2l-1.377-.78 8.323-14.499 1.38.777z"/><ellipse fill="#333" cx="13.775" cy="50.46" rx="1.178" ry="1.154"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m25.1 16.1l2.1-2.6 3.9 9.3-6.1 2.5z"/><path d="m22.8 22.1c2.2.4 2.2 3.2 2.2 3.2 2.5-1 2.2-6.6.9-9.6l-3.1 6.4" fill="#e0a372"/><path d="m21.8 3.2l-9.2 8.2c-.3 3.1 1.2 4 1.6 5.1.2.5-.4 1.8-.8 2.4-.7 1.5 1.5 1.5 2.2 1.1.9.9-.2 2.1 2.8.1 0 0-2.7 2.8-.1 2.4.3 1.4 1.1 4 6.8-1.4 1.7-1.6 1-5.4 1-5.4l3.1-2-7.4-10.5" fill="#fed0ac"/><path d="m13.8 5.4c6.1-5.3 11.5-3.2 12.9-1.9 3.6 3.6 4.1 9.1 2.3 14.1 0 0-1.8 0-2.9-1.9 0 0 2.1.1 1.3-4-.7-3.4-4.7-3.7-4.6 1.3l-.5.2c-1.8-1.8-1.3-5.2-4.1-5-2.5.2-5.6 3.8-5.6 3.8-1.3-1-1.3-4.4 1.2-6.6" fill="#dbb471"/><path d="m16.8 15.4c.3.7.1 1.4-.4 1.6-.5.2-.8-.3-1.1-1-.3-.7-.4-1.3.1-1.5.5-.1 1.1.2 1.4.9" fill="#664e27"/><path d="m24 13.5c-.6-1.3.1-2.9 1.2-3.4 0 0-1.2 2.3.1 4.3 0 0-.9 0-1.3-.9" fill="#e0a372"/><path d="m19.3 19.4c0 0-.9 1.5-1.3 2-.8.9-1 .6-.7 0 .3-.5 1-1.2 1-1.2l1-.8" fill="#664e27"/><g fill="#3b946f"><path d="m25 24.3l-1.6 7.4 3.1.5.7-6.3z"/><path d="m26.5 31.8c-.2-.8-1-1.3-1.9-1.1l-6 1.4.7 3 6-1.4c.9-.2 1.4-1.1 1.2-1.9"/></g><path d="m19.4 33.5l-.2-1.5c-.1-.5-.6-.9-1.1-.8l-.7.1c-.4 0-.7.3-.8.7-1 .2-2.2.7-2 2.5 0 .3.2 1.9 2.2 1.7 2.9-.5 2.9-.5 2.6-2.7" fill="#e0a372"/><path d="m29.9 49.4c-1.6.1-2.8 1.5-2.7 3.1l6.9-.5c.8-.1 1.4-.7 1.4-1.5l-.1-1.4-5.5.3" fill="#d3976e"/><g fill="#3e4347"><path d="m35.4 48.9l-5.5.5-.8-9.7 5.6-.4z"/><path d="m34.8 41.5l-5.7-1.8 5.4-6.8 6.5 1.2z"/></g><g fill="#333"><path d="m13.8 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5s-2-2.3-2.6-3.6c-.6-1.5-.9-3-.9-4.5 0-1.6.3-3.1.9-4.5.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7-1.1 1.1-2.3 1.9-3.7 2.5-1.4.5-2.9.8-4.5.8m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c0-5.2-4.4-9.5-9.7-9.5"/><path d="m50.2 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5-1.1-1.1-1.9-2.3-2.5-3.7-.6-1.4-.9-2.9-.9-4.5s.3-3.1.9-4.5c.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7s-2.3 1.9-3.7 2.5c-1.4.6-3 .9-4.6.9m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c.1-5.2-4.3-9.5-9.7-9.5"/></g><path d="m41.7 36.2l2.1-5.2-1.4-.5-2.1 5.1h-22.3l-2.2-2.3-1.1 1 2.6 2.7h3.4v2.8l13.9 13.5 6.3-15.3 8.6 12.7 1.4-.6-9.2-13.9m-7.5 14.5l-12.7-12.3.6-1.5h17.6l-5.5 13.8" fill="#ed4c5c"/><ellipse cx="50.2" cy="50.5" rx="2.4" ry="2.3" fill="#333"/><g fill="#94989b"><path d="m26.9 51.9h4v1.3h-4z"/><path d="m38.7 53.6h4v1.3h-4z"/></g><path fill="#b3b3b3" d="m30.7 52.3v.6l4 .5v-.6z"/><ellipse cx="34.7" cy="53.7" rx="3.3" ry="3.2" fill="#333"/><g fill="#b3b3b3"><ellipse cx="34.7" cy="53.7" rx=".8" ry=".8"/><path d="m34.7 54l4 .5v-.6l-4-.6z"/></g><path d="m38.6 51.9c-1.5.5-2.4 2.1-1.9 3.6l6.6-2.1c.8-.2 1.2-1 .9-1.8l-.4-1.3-5.2 1.6" fill="#d3976e"/><g fill="#3e4347"><path d="m43.8 50.2l-4.7 1.5-3.6-11.3 5.3-1.7z"/><path d="m41.3 40.8l-5.8-.4 4.6-8.7 4.9 2.5z"/></g><path d="M46,28.5l-11.5,4.5L25,24.3c0,0,2.4-4.9,3.7-5.1C38,17.4,46,28.5,46,28.5z" fill="#47b892"/><path d="m45 34.2l-10.2.6-.3-1.8 11.3-4.8c1.8 2.5-.8 6-.8 6" fill="#3e4347"/><g fill="#47b892"><path d="m25 24.3l-.3 7.4 3.1.1.3-5.9c0-.8-3.1-1.6-3.1-1.6"/><path d="m27.7 31.4c-.3-.8-1.2-1.1-2-.8l-5.7 2.1 1.1 2.8 5.7-2.2c.8-.2 1.2-1.1.9-1.9"/></g><path d="m20.9 34.1l-.4-1.4c-.1-.5-.7-.8-1.2-.7l-.7.2c-.4.1-.6.4-.7.8-.9.3-2.1 1-1.6 2.7.1.3.5 1.9 2.4 1.3 2.8-.8 2.8-.8 2.2-2.9" fill="#fed0ac"/><path fill="#ed4c5c" d="m14.2 51.2l-1.3-.8 8.3-14.5 1.4.8z"/><ellipse cx="13.8" cy="50.5" rx="1.2" ry="1.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fd.svg
index ca9d718..a5b9598 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m26.883 17.13l2.115-.752 2.818 7.762-5.445 1.95z"/><path fill="#b58360" d="m26.803 16.97c1.266 3.488 1.156 5.523-1.375 6.424l.943 2.691c2.992-1.066 2.875-5.197 1.398-9.27l-.966.155"/><path fill="#d6a57c" d="m24.307 4.36l-10.551 7.953c-.473 2.975.941 3.955 1.281 5.05.15.482-.51 1.703-.861 2.344-.787 1.43 1.447 1.563 2.115 1.154.846.904.209 1.463 1.926.674.945-.434 1.939-1.799 1.939-1.799-3.328 4.217-1.814 4.924-.209 3.828.82 2.262 2.236 1.756 5.34.65 2.533-.902 3.746-3.908 2.482-7.396l3.18-1.795-6.642-10.66"/><path fill="#594640" d="m18.639 2.776c8.779-3.129 12.609 3.852 13.25 9.41.342 2.959-.484 5.215-1.916 6.566l-1.057-.244-1.146-1.693c0 0 1.572-1.01 1.375-3.133-.09-.971-1.604-2.346-2.949-1.947-.941.279-2.02 1.43-2.229 1.736-.818-2.256-1.203-4.758-2.998-4.875-1.477-.098-6.07 4.313-7.213 3.717-3.082-1.587-.404-7.652 4.883-9.537"/><g fill="#574137"><path d="m26.523 14.11c-.172.037-.326.117-.447.229.018-.188.055-.373.1-.566.061-.238.148-.471.221-.736-.447.307-.76.822-.801 1.398-.033.586.264 1.135.689 1.461-.051-.271-.135-.512-.176-.746-.023-.15-.039-.297-.045-.443.066-.02.131-.041.191-.057.133-.029.244-.068.361-.088.115-.027.234-.037.369-.063.133-.021.273-.025.449-.064-.2-.27-.567-.391-.911-.325"/><path d="m17.779 15.944c.262.723.051 1.459-.471 1.645s-1.156-.25-1.418-.971c-.262-.723-.051-1.459.469-1.645.522-.185 1.159.249 1.42.971"/><path d="m20.16 19.733c0 0-.676 2.508-.928 2.914-.543.871-.945.568-.756-.068.194-.654 1.684-2.846 1.684-2.846"/></g><g fill="#3b946f"><path d="m26.404 24.753c-.85-.154-1.676.395-1.842 1.225l-1.117 5.709 3.086.555 1.115-5.707c.168-.833-.388-1.63-1.242-1.782"/><path d="m26.492 31.829c-.191-.82-1.025-1.307-1.871-1.111l-5.961 1.355.684 2.975 5.961-1.352c.847-.197 1.379-1.047 1.187-1.867"/></g><path fill="#b58360" d="m19.412 33.542l-.191-1.482c-.07-.527-.568-.898-1.109-.824l-.736.098c-.391.051-.699.316-.818.658-.973.197-2.213.715-1.979 2.486.037.291.248 1.914 2.217 1.65 2.903-.387 2.903-.387 2.616-2.586"/><path fill="#d3976e" d="m29.914 49.36c-1.611.125-2.822 1.492-2.703 3.053l6.932-.537c.805-.063 1.41-.744 1.352-1.527l-.107-1.412-5.474.423"/><g fill="#3e4347"><path d="m35.387 48.94l-5.506.43-.731-9.65 5.506-.43z"/><path d="m34.822 41.497l-5.672-1.777 5.348-6.787 6.455 1.187z"/></g><g fill="#333"><path d="m13.775 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.662-1.414-3.742-2.473s-1.93-2.293-2.521-3.666c-.615-1.424-.928-2.935-.928-4.492s.313-3.066.928-4.49c.592-1.373 1.441-2.607 2.521-3.666 1.08-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.082 1.059 1.93 2.293 2.523 3.666.615 1.424.926 2.934.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.441 2.607-2.523 3.666-1.08 1.059-2.34 1.891-3.742 2.473-1.453.601-2.994.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c.001-5.26-4.368-9.539-9.738-9.539"/><path d="m50.23 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.66-1.414-3.742-2.473-1.08-1.059-1.932-2.293-2.521-3.666-.617-1.424-.928-2.936-.928-4.492s.311-3.066.928-4.49c.59-1.373 1.441-2.607 2.521-3.666 1.082-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.08 1.059 1.93 2.293 2.523 3.666.615 1.423.926 2.933.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.443 2.607-2.523 3.666s-2.34 1.891-3.742 2.473c-1.454.601-2.995.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c0-5.26-4.369-9.539-9.738-9.539"/></g><path fill="#ed4c5c" d="m41.666 36.19l2.125-5.221-1.389-.543-2.057 5.05h-22.341l-2.17-2.27-1.09 1 2.611 2.734 3.402.002.047 2.83 13.895 13.533 6.211-15.262 8.639 12.732 1.352-.623-9.235-13.967m-7.516 14.517l-12.615-12.297.611-1.465h17.604l-5.6 13.762"/><ellipse fill="#333" cx="50.23" cy="50.46" rx="2.355" ry="2.307"/><g fill="#94989b"><path d="m26.9 51.944h4.04v1.258h-4.04z"/><path d="m38.674 53.56h4.04v1.258h-4.04z"/></g><path fill="#b3b3b3" d="m30.727 52.27v.606l3.972.534v-.608z"/><ellipse fill="#333" cx="34.699" cy="53.649" rx="3.307" ry="3.24"/><g fill="#b3b3b3"><ellipse cx="34.699" cy="53.649" rx=".826" ry=".809"/><path d="m34.699 53.954l3.975.536v-.61l-3.975-.54z"/></g><path fill="#d3976e" d="m38.615 51.851c-1.535.49-2.385 2.1-1.896 3.588l6.611-2.117c.768-.246 1.191-1.049.945-1.795l-.441-1.348-5.219 1.672"/><g fill="#3e4347"><path d="m43.834 50.18l-4.694 1.503-3.626-11.283 5.252-1.68z"/><path d="m41.33 40.839l-5.816-.439 4.576-8.659 4.89 2.409z"/></g><path fill="#47b892" d="M46,28.464l-11.502,4.469l-9.117-8.064c0,0,2.615-3.305,3.928-3.549C38.617,19.577,46,28.464,46,28.464z"/><path fill="#3e4347" d="m44.98 34.15l-10.21.553-.271-1.771 11.309-4.791c1.776 2.607-.828 6.01-.828 6.01"/><g fill="#47b892"><path d="m26.572 24.399c-.865-.035-1.604.623-1.646 1.469l-.283 5.805 3.137.121.279-5.805c.046-.845-.62-1.556-1.487-1.59"/><path d="m27.68 31.392c-.307-.785-1.201-1.15-2.01-.84l-5.705 2.168 1.105 2.85 5.707-2.166c.811-.311 1.213-1.225.905-2.01"/></g><path fill="#d6a57c" d="m20.92 34.07l-.404-1.441c-.145-.512-.691-.811-1.217-.662l-.715.199c-.379.105-.646.41-.715.766-.934.33-2.086 1.014-1.6 2.736.078.283.521 1.857 2.434 1.324 2.818-.783 2.818-.783 2.217-2.922"/><path fill="#ed4c5c" d="m14.244 51.2l-1.377-.78 8.323-14.499 1.38.777z"/><ellipse fill="#333" cx="13.775" cy="50.46" rx="1.178" ry="1.154"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m25.1 16.1l2.1-2.6 3.9 9.3-6.1 2.5z"/><path d="m22.8 22.1c2.2.4 2.2 3.2 2.2 3.2 2.5-1 2.2-6.6.9-9.6l-3.1 6.4" fill="#b58360"/><path d="m21.8 3.2l-9.2 8.2c-.3 3.1 1.2 4 1.6 5.1.2.5-.4 1.8-.8 2.4-.7 1.5 1.5 1.5 2.2 1.1.9.9-.2 2.1 2.8.1 0 0-2.7 2.8-.1 2.4.3 1.4 1.1 4 6.8-1.4 1.7-1.6 1-5.4 1-5.4l3.1-2-7.4-10.5" fill="#d6a57c"/><path d="m13.8 5.4c6.1-5.3 11.5-3.2 12.9-1.9 3.6 3.6 4.1 9.1 2.3 14.1 0 0-1.8 0-2.9-1.9 0 0 2.1.1 1.3-4-.7-3.4-4.7-3.7-4.6 1.3l-.5.2c-1.8-1.8-1.3-5.2-4.1-5-2.5.2-5.6 3.8-5.6 3.8-1.3-1-1.3-4.4 1.2-6.6" fill="#594640"/><path d="m16.8 15.4c.3.7.1 1.4-.4 1.6-.5.2-.8-.3-1.1-1-.3-.7-.4-1.3.1-1.5.5-.1 1.1.2 1.4.9" fill="#664e27"/><path d="m24 13.5c-.6-1.3.1-2.9 1.2-3.4 0 0-1.2 2.3.1 4.3 0 0-.9 0-1.3-.9" fill="#b58360"/><path d="m19.3 19.4c0 0-.9 1.5-1.3 2-.8.9-1 .6-.7 0 .3-.5 1-1.2 1-1.2l1-.8" fill="#664e27"/><g fill="#3b946f"><path d="m25 24.3l-1.6 7.4 3.1.5.7-6.3z"/><path d="m26.5 31.8c-.2-.8-1-1.3-1.9-1.1l-6 1.4.7 3 6-1.4c.9-.2 1.4-1.1 1.2-1.9"/></g><path d="m19.4 33.5l-.2-1.5c-.1-.5-.6-.9-1.1-.8l-.7.1c-.4 0-.7.3-.8.7-1 .2-2.2.7-2 2.5 0 .3.2 1.9 2.2 1.7 2.9-.5 2.9-.5 2.6-2.7" fill="#b58360"/><path d="m29.9 49.4c-1.6.1-2.8 1.5-2.7 3.1l6.9-.5c.8-.1 1.4-.7 1.4-1.5l-.1-1.4-5.5.3" fill="#d3976e"/><g fill="#3e4347"><path d="m35.4 48.9l-5.5.5-.8-9.7 5.6-.4z"/><path d="m34.8 41.5l-5.7-1.8 5.4-6.8 6.5 1.2z"/></g><g fill="#333"><path d="m13.8 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5s-2-2.3-2.6-3.6c-.6-1.5-.9-3-.9-4.5 0-1.6.3-3.1.9-4.5.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7-1.1 1.1-2.3 1.9-3.7 2.5-1.4.5-2.9.8-4.5.8m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c0-5.2-4.4-9.5-9.7-9.5"/><path d="m50.2 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5-1.1-1.1-1.9-2.3-2.5-3.7-.6-1.4-.9-2.9-.9-4.5s.3-3.1.9-4.5c.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7s-2.3 1.9-3.7 2.5c-1.4.6-3 .9-4.6.9m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c.1-5.2-4.3-9.5-9.7-9.5"/></g><path d="m41.7 36.2l2.1-5.2-1.4-.5-2.1 5.1h-22.3l-2.2-2.3-1.1 1 2.6 2.7h3.4v2.8l13.9 13.5 6.3-15.3 8.6 12.7 1.4-.6-9.2-13.9m-7.5 14.5l-12.7-12.3.6-1.5h17.6l-5.5 13.8" fill="#ed4c5c"/><ellipse cx="50.2" cy="50.5" rx="2.4" ry="2.3" fill="#333"/><g fill="#94989b"><path d="m26.9 51.9h4v1.3h-4z"/><path d="m38.7 53.6h4v1.3h-4z"/></g><path fill="#b3b3b3" d="m30.7 52.3v.6l4 .5v-.6z"/><ellipse cx="34.7" cy="53.7" rx="3.3" ry="3.2" fill="#333"/><g fill="#b3b3b3"><ellipse cx="34.7" cy="53.7" rx=".8" ry=".8"/><path d="m34.7 54l4 .5v-.6l-4-.6z"/></g><path d="m38.6 51.9c-1.5.5-2.4 2.1-1.9 3.6l6.6-2.1c.8-.2 1.2-1 .9-1.8l-.4-1.3-5.2 1.6" fill="#d3976e"/><g fill="#3e4347"><path d="m43.8 50.2l-4.7 1.5-3.6-11.3 5.3-1.7z"/><path d="m41.3 40.8l-5.8-.4 4.6-8.7 4.9 2.5z"/></g><path d="M46,28.5l-11.5,4.5L25,24.3c0,0,2.4-4.9,3.7-5.1C38,17.4,46,28.5,46,28.5z" fill="#47b892"/><path d="m45 34.2l-10.2.6-.3-1.8 11.3-4.8c1.8 2.5-.8 6-.8 6" fill="#3e4347"/><g fill="#47b892"><path d="m25 24.3l-.3 7.4 3.1.1.3-5.9c0-.8-3.1-1.6-3.1-1.6"/><path d="m27.7 31.4c-.3-.8-1.2-1.1-2-.8l-5.7 2.1 1.1 2.8 5.7-2.2c.8-.2 1.2-1.1.9-1.9"/></g><path d="m20.9 34.1l-.4-1.4c-.1-.5-.7-.8-1.2-.7l-.7.2c-.4.1-.6.4-.7.8-.9.3-2.1 1-1.6 2.7.1.3.5 1.9 2.4 1.3 2.8-.8 2.8-.8 2.2-2.9" fill="#d6a57c"/><path fill="#ed4c5c" d="m14.2 51.2l-1.3-.8 8.3-14.5 1.4.8z"/><ellipse cx="13.8" cy="50.5" rx="1.2" ry="1.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fe.svg
index b92df64..1dcaae8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m26.883 17.13l2.115-.752 2.818 7.762-5.445 1.95z"/><path fill="#935e3e" d="m26.803 16.97c1.266 3.488 1.156 5.523-1.375 6.424l.943 2.691c2.992-1.066 2.875-5.197 1.398-9.27l-.966.155"/><path fill="#b47d56" d="m24.307 4.36l-10.551 7.953c-.473 2.975.941 3.955 1.281 5.05.15.482-.51 1.703-.861 2.344-.787 1.43 1.447 1.563 2.115 1.154.846.904.209 1.463 1.926.674.945-.434 1.939-1.799 1.939-1.799-3.328 4.217-1.814 4.924-.209 3.828.82 2.262 2.236 1.756 5.34.65 2.533-.902 3.746-3.908 2.482-7.396l3.18-1.795-6.642-10.66"/><path fill="#231f20" d="m18.639 2.776c8.779-3.129 12.609 3.852 13.25 9.41.342 2.959-.484 5.215-1.916 6.566l-1.057-.244-1.146-1.693c0 0 1.572-1.01 1.375-3.133-.09-.971-1.604-2.346-2.949-1.947-.941.279-2.02 1.43-2.229 1.736-.818-2.256-1.203-4.758-2.998-4.875-1.477-.098-6.07 4.313-7.213 3.717-3.082-1.587-.404-7.652 4.883-9.537"/><g fill="#47352d"><path d="m26.523 14.11c-.172.037-.326.117-.447.229.018-.188.055-.373.1-.566.061-.238.148-.471.221-.736-.447.307-.76.822-.801 1.398-.033.586.264 1.135.689 1.461-.051-.271-.135-.512-.176-.746-.023-.15-.039-.297-.045-.443.066-.02.131-.041.191-.057.133-.029.244-.068.361-.088.115-.027.234-.037.369-.063.133-.021.273-.025.449-.064-.2-.27-.567-.391-.911-.325"/><path d="m17.779 15.944c.262.723.051 1.459-.471 1.645s-1.156-.25-1.418-.971c-.262-.723-.051-1.459.469-1.645.522-.185 1.159.249 1.42.971"/><path d="m20.16 19.733c0 0-.676 2.508-.928 2.914-.543.871-.945.568-.756-.068.194-.654 1.684-2.846 1.684-2.846"/></g><g fill="#3b946f"><path d="m26.404 24.753c-.85-.154-1.676.395-1.842 1.225l-1.117 5.709 3.086.555 1.115-5.707c.168-.833-.388-1.63-1.242-1.782"/><path d="m26.492 31.829c-.191-.82-1.025-1.307-1.871-1.111l-5.961 1.355.684 2.975 5.961-1.352c.847-.197 1.379-1.047 1.187-1.867"/></g><path fill="#935e3e" d="m19.412 33.542l-.191-1.482c-.07-.527-.568-.898-1.109-.824l-.736.098c-.391.051-.699.316-.818.658-.973.197-2.213.715-1.979 2.486.037.291.248 1.914 2.217 1.65 2.903-.387 2.903-.387 2.616-2.586"/><path fill="#d3976e" d="m29.914 49.36c-1.611.125-2.822 1.492-2.703 3.053l6.932-.537c.805-.063 1.41-.744 1.352-1.527l-.107-1.412-5.474.423"/><g fill="#3e4347"><path d="m35.387 48.94l-5.506.43-.731-9.65 5.506-.43z"/><path d="m34.822 41.497l-5.672-1.777 5.348-6.787 6.455 1.187z"/></g><g fill="#333"><path d="m13.775 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.662-1.414-3.742-2.473s-1.93-2.293-2.521-3.666c-.615-1.424-.928-2.935-.928-4.492s.313-3.066.928-4.49c.592-1.373 1.441-2.607 2.521-3.666 1.08-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.082 1.059 1.93 2.293 2.523 3.666.615 1.424.926 2.934.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.441 2.607-2.523 3.666-1.08 1.059-2.34 1.891-3.742 2.473-1.453.601-2.994.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c.001-5.26-4.368-9.539-9.738-9.539"/><path d="m50.23 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.66-1.414-3.742-2.473-1.08-1.059-1.932-2.293-2.521-3.666-.617-1.424-.928-2.936-.928-4.492s.311-3.066.928-4.49c.59-1.373 1.441-2.607 2.521-3.666 1.082-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.08 1.059 1.93 2.293 2.523 3.666.615 1.423.926 2.933.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.443 2.607-2.523 3.666s-2.34 1.891-3.742 2.473c-1.454.601-2.995.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c0-5.26-4.369-9.539-9.738-9.539"/></g><path fill="#ed4c5c" d="m41.666 36.19l2.125-5.221-1.389-.543-2.057 5.05h-22.341l-2.17-2.27-1.09 1 2.611 2.734 3.402.002.047 2.83 13.895 13.533 6.211-15.262 8.639 12.732 1.352-.623-9.235-13.967m-7.516 14.517l-12.615-12.297.611-1.465h17.604l-5.6 13.762"/><ellipse fill="#333" cx="50.23" cy="50.46" rx="2.355" ry="2.307"/><g fill="#94989b"><path d="m26.9 51.944h4.04v1.258h-4.04z"/><path d="m38.674 53.56h4.04v1.258h-4.04z"/></g><path fill="#b3b3b3" d="m30.727 52.27v.606l3.972.534v-.608z"/><ellipse fill="#333" cx="34.699" cy="53.649" rx="3.307" ry="3.24"/><g fill="#b3b3b3"><ellipse cx="34.699" cy="53.649" rx=".826" ry=".809"/><path d="m34.699 53.954l3.975.536v-.61l-3.975-.54z"/></g><path fill="#d3976e" d="m38.615 51.851c-1.535.49-2.385 2.1-1.896 3.588l6.611-2.117c.768-.246 1.191-1.049.945-1.795l-.441-1.348-5.219 1.672"/><g fill="#3e4347"><path d="m43.834 50.18l-4.694 1.503-3.626-11.283 5.252-1.68z"/><path d="m41.33 40.839l-5.816-.439 4.576-8.659 4.89 2.409z"/></g><path fill="#47b892" d="M46,28.464l-11.502,4.469l-9.117-8.064c0,0,2.615-3.305,3.928-3.549C38.617,19.577,46,28.464,46,28.464z"/><path fill="#3e4347" d="m44.98 34.15l-10.21.553-.271-1.771 11.309-4.791c1.776 2.607-.828 6.01-.828 6.01"/><g fill="#47b892"><path d="m26.572 24.399c-.865-.035-1.604.623-1.646 1.469l-.283 5.805 3.137.121.279-5.805c.046-.845-.62-1.556-1.487-1.59"/><path d="m27.68 31.392c-.307-.785-1.201-1.15-2.01-.84l-5.705 2.168 1.105 2.85 5.707-2.166c.811-.311 1.213-1.225.905-2.01"/></g><path fill="#b47d56" d="m20.92 34.07l-.404-1.441c-.145-.512-.691-.811-1.217-.662l-.715.199c-.379.105-.646.41-.715.766-.934.33-2.086 1.014-1.6 2.736.078.283.521 1.857 2.434 1.324 2.818-.783 2.818-.783 2.217-2.922"/><path fill="#ed4c5c" d="m14.244 51.2l-1.377-.78 8.323-14.499 1.38.777z"/><ellipse fill="#333" cx="13.775" cy="50.46" rx="1.178" ry="1.154"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m25.1 16.1l2.1-2.6 3.9 9.3-6.1 2.5z"/><path d="m22.8 22.1c2.2.4 2.2 3.2 2.2 3.2 2.5-1 2.2-6.6.9-9.6l-3.1 6.4" fill="#935e3e"/><path d="m21.8 3.2l-9.2 8.2c-.3 3.1 1.2 4 1.6 5.1.2.5-.4 1.8-.8 2.4-.7 1.5 1.5 1.5 2.2 1.1.9.9-.2 2.1 2.8.1 0 0-2.7 2.8-.1 2.4.3 1.4 1.1 4 6.8-1.4 1.7-1.6 1-5.4 1-5.4l3.1-2-7.4-10.5" fill="#b47d56"/><path d="m13.8 5.4c6.1-5.3 11.5-3.2 12.9-1.9 3.6 3.6 4.1 9.1 2.3 14.1 0 0-1.8 0-2.9-1.9 0 0 2.1.1 1.3-4-.7-3.4-4.7-3.7-4.6 1.3l-.5.2c-1.8-1.8-1.3-5.2-4.1-5-2.5.2-5.6 3.8-5.6 3.8-1.3-1-1.3-4.4 1.2-6.6" fill="#231f20"/><path d="m16.8 15.4c.3.7.1 1.4-.4 1.6-.5.2-.8-.3-1.1-1-.3-.7-.4-1.3.1-1.5.5-.1 1.1.2 1.4.9" fill="#664e27"/><path d="m24 13.5c-.6-1.3.1-2.9 1.2-3.4 0 0-1.2 2.3.1 4.3 0 0-.9 0-1.3-.9" fill="#935e3e"/><path d="m19.3 19.4c0 0-.9 1.5-1.3 2-.8.9-1 .6-.7 0 .3-.5 1-1.2 1-1.2l1-.8" fill="#664e27"/><g fill="#3b946f"><path d="m25 24.3l-1.6 7.4 3.1.5.7-6.3z"/><path d="m26.5 31.8c-.2-.8-1-1.3-1.9-1.1l-6 1.4.7 3 6-1.4c.9-.2 1.4-1.1 1.2-1.9"/></g><path d="m19.4 33.5l-.2-1.5c-.1-.5-.6-.9-1.1-.8l-.7.1c-.4 0-.7.3-.8.7-1 .2-2.2.7-2 2.5 0 .3.2 1.9 2.2 1.7 2.9-.5 2.9-.5 2.6-2.7" fill="#935e3e"/><path d="m29.9 49.4c-1.6.1-2.8 1.5-2.7 3.1l6.9-.5c.8-.1 1.4-.7 1.4-1.5l-.1-1.4-5.5.3" fill="#d3976e"/><g fill="#3e4347"><path d="m35.4 48.9l-5.5.5-.8-9.7 5.6-.4z"/><path d="m34.8 41.5l-5.7-1.8 5.4-6.8 6.5 1.2z"/></g><g fill="#333"><path d="m13.8 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5s-2-2.3-2.6-3.6c-.6-1.5-.9-3-.9-4.5 0-1.6.3-3.1.9-4.5.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7-1.1 1.1-2.3 1.9-3.7 2.5-1.4.5-2.9.8-4.5.8m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c0-5.2-4.4-9.5-9.7-9.5"/><path d="m50.2 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5-1.1-1.1-1.9-2.3-2.5-3.7-.6-1.4-.9-2.9-.9-4.5s.3-3.1.9-4.5c.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7s-2.3 1.9-3.7 2.5c-1.4.6-3 .9-4.6.9m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c.1-5.2-4.3-9.5-9.7-9.5"/></g><path d="m41.7 36.2l2.1-5.2-1.4-.5-2.1 5.1h-22.3l-2.2-2.3-1.1 1 2.6 2.7h3.4v2.8l13.9 13.5 6.3-15.3 8.6 12.7 1.4-.6-9.2-13.9m-7.5 14.5l-12.7-12.3.6-1.5h17.6l-5.5 13.8" fill="#ed4c5c"/><ellipse cx="50.2" cy="50.5" rx="2.4" ry="2.3" fill="#333"/><g fill="#94989b"><path d="m26.9 51.9h4v1.3h-4z"/><path d="m38.7 53.6h4v1.3h-4z"/></g><path fill="#b3b3b3" d="m30.7 52.3v.6l4 .5v-.6z"/><ellipse cx="34.7" cy="53.7" rx="3.3" ry="3.2" fill="#333"/><g fill="#b3b3b3"><ellipse cx="34.7" cy="53.7" rx=".8" ry=".8"/><path d="m34.7 54l4 .5v-.6l-4-.6z"/></g><path d="m38.6 51.9c-1.5.5-2.4 2.1-1.9 3.6l6.6-2.1c.8-.2 1.2-1 .9-1.8l-.4-1.3-5.2 1.6" fill="#d3976e"/><g fill="#3e4347"><path d="m43.8 50.2l-4.7 1.5-3.6-11.3 5.3-1.7z"/><path d="m41.3 40.8l-5.8-.4 4.6-8.7 4.9 2.5z"/></g><path d="M46,28.5l-11.5,4.5L25,24.3c0,0,2.4-4.9,3.7-5.1C38,17.4,46,28.5,46,28.5z" fill="#47b892"/><path d="m45 34.2l-10.2.6-.3-1.8 11.3-4.8c1.8 2.5-.8 6-.8 6" fill="#3e4347"/><g fill="#47b892"><path d="m25 24.3l-.3 7.4 3.1.1.3-5.9c0-.8-3.1-1.6-3.1-1.6"/><path d="m27.7 31.4c-.3-.8-1.2-1.1-2-.8l-5.7 2.1 1.1 2.8 5.7-2.2c.8-.2 1.2-1.1.9-1.9"/></g><path d="m20.9 34.1l-.4-1.4c-.1-.5-.7-.8-1.2-.7l-.7.2c-.4.1-.6.4-.7.8-.9.3-2.1 1-1.6 2.7.1.3.5 1.9 2.4 1.3 2.8-.8 2.8-.8 2.2-2.9" fill="#b47d56"/><path fill="#ed4c5c" d="m14.2 51.2l-1.3-.8 8.3-14.5 1.4.8z"/><ellipse cx="13.8" cy="50.5" rx="1.2" ry="1.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3ff.svg
index bc68dca..44fc622 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b4-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m26.883 17.13l2.115-.752 2.818 7.762-5.445 1.95z"/><path fill="#705041" d="m26.803 16.97c1.266 3.488 1.156 5.523-1.375 6.424l.943 2.691c2.992-1.066 2.875-5.197 1.398-9.27l-.966.155"/><path fill="#8a6859" d="m24.307 4.36l-10.551 7.953c-.473 2.975.941 3.955 1.281 5.05.15.482-.51 1.703-.861 2.344-.787 1.43 1.447 1.563 2.115 1.154.846.904.209 1.463 1.926.674.945-.434 1.939-1.799 1.939-1.799-3.328 4.217-1.814 4.924-.209 3.828.82 2.262 2.236 1.756 5.34.65 2.533-.902 3.746-3.908 2.482-7.396l3.18-1.795-6.642-10.66"/><path fill="#231f20" d="m18.639 2.776c8.779-3.129 12.609 3.852 13.25 9.41.342 2.959-.484 5.215-1.916 6.566l-1.057-.244-1.146-1.693c0 0 1.572-1.01 1.375-3.133-.09-.971-1.604-2.346-2.949-1.947-.941.279-2.02 1.43-2.229 1.736-.818-2.256-1.203-4.758-2.998-4.875-1.477-.098-6.07 4.313-7.213 3.717-3.082-1.587-.404-7.652 4.883-9.537"/><g fill="#47352d"><path d="m26.523 14.11c-.172.037-.326.117-.447.229.018-.188.055-.373.1-.566.061-.238.148-.471.221-.736-.447.307-.76.822-.801 1.398-.033.586.264 1.135.689 1.461-.051-.271-.135-.512-.176-.746-.023-.15-.039-.297-.045-.443.066-.02.131-.041.191-.057.133-.029.244-.068.361-.088.115-.027.234-.037.369-.063.133-.021.273-.025.449-.064-.2-.27-.567-.391-.911-.325"/><path d="m17.779 15.944c.262.723.051 1.459-.471 1.645s-1.156-.25-1.418-.971c-.262-.723-.051-1.459.469-1.645.522-.185 1.159.249 1.42.971"/><path d="m20.16 19.733c0 0-.676 2.508-.928 2.914-.543.871-.945.568-.756-.068.194-.654 1.684-2.846 1.684-2.846"/></g><g fill="#3b946f"><path d="m26.404 24.753c-.85-.154-1.676.395-1.842 1.225l-1.117 5.709 3.086.555 1.115-5.707c.168-.833-.388-1.63-1.242-1.782"/><path d="m26.492 31.829c-.191-.82-1.025-1.307-1.871-1.111l-5.961 1.355.684 2.975 5.961-1.352c.847-.197 1.379-1.047 1.187-1.867"/></g><path fill="#705041" d="m19.412 33.542l-.191-1.482c-.07-.527-.568-.898-1.109-.824l-.736.098c-.391.051-.699.316-.818.658-.973.197-2.213.715-1.979 2.486.037.291.248 1.914 2.217 1.65 2.903-.387 2.903-.387 2.616-2.586"/><path fill="#d3976e" d="m29.914 49.36c-1.611.125-2.822 1.492-2.703 3.053l6.932-.537c.805-.063 1.41-.744 1.352-1.527l-.107-1.412-5.474.423"/><g fill="#3e4347"><path d="m35.387 48.94l-5.506.43-.731-9.65 5.506-.43z"/><path d="m34.822 41.497l-5.672-1.777 5.348-6.787 6.455 1.187z"/></g><g fill="#333"><path d="m13.775 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.662-1.414-3.742-2.473s-1.93-2.293-2.521-3.666c-.615-1.424-.928-2.935-.928-4.492s.313-3.066.928-4.49c.592-1.373 1.441-2.607 2.521-3.666 1.08-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.082 1.059 1.93 2.293 2.523 3.666.615 1.424.926 2.934.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.441 2.607-2.523 3.666-1.08 1.059-2.34 1.891-3.742 2.473-1.453.601-2.994.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c.001-5.26-4.368-9.539-9.738-9.539"/><path d="m50.23 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.66-1.414-3.742-2.473-1.08-1.059-1.932-2.293-2.521-3.666-.617-1.424-.928-2.936-.928-4.492s.311-3.066.928-4.49c.59-1.373 1.441-2.607 2.521-3.666 1.082-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.08 1.059 1.93 2.293 2.523 3.666.615 1.423.926 2.933.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.443 2.607-2.523 3.666s-2.34 1.891-3.742 2.473c-1.454.601-2.995.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c0-5.26-4.369-9.539-9.738-9.539"/></g><path fill="#ed4c5c" d="m41.666 36.19l2.125-5.221-1.389-.543-2.057 5.05h-22.341l-2.17-2.27-1.09 1 2.611 2.734 3.402.002.047 2.83 13.895 13.533 6.211-15.262 8.639 12.732 1.352-.623-9.235-13.967m-7.516 14.517l-12.615-12.297.611-1.465h17.604l-5.6 13.762"/><ellipse fill="#333" cx="50.23" cy="50.46" rx="2.355" ry="2.307"/><g fill="#94989b"><path d="m26.9 51.944h4.04v1.258h-4.04z"/><path d="m38.674 53.56h4.04v1.258h-4.04z"/></g><path fill="#b3b3b3" d="m30.727 52.27v.606l3.972.534v-.608z"/><ellipse fill="#333" cx="34.699" cy="53.649" rx="3.307" ry="3.24"/><g fill="#b3b3b3"><ellipse cx="34.699" cy="53.649" rx=".826" ry=".809"/><path d="m34.699 53.954l3.975.536v-.61l-3.975-.54z"/></g><path fill="#d3976e" d="m38.615 51.851c-1.535.49-2.385 2.1-1.896 3.588l6.611-2.117c.768-.246 1.191-1.049.945-1.795l-.441-1.348-5.219 1.672"/><g fill="#3e4347"><path d="m43.834 50.18l-4.694 1.503-3.626-11.283 5.252-1.68z"/><path d="m41.33 40.839l-5.816-.439 4.576-8.659 4.89 2.409z"/></g><path fill="#47b892" d="M46,28.464l-11.502,4.469l-9.117-8.064c0,0,2.615-3.305,3.928-3.549C38.617,19.577,46,28.464,46,28.464z"/><path fill="#3e4347" d="m44.98 34.15l-10.21.553-.271-1.771 11.309-4.791c1.776 2.607-.828 6.01-.828 6.01"/><g fill="#47b892"><path d="m26.572 24.399c-.865-.035-1.604.623-1.646 1.469l-.283 5.805 3.137.121.279-5.805c.046-.845-.62-1.556-1.487-1.59"/><path d="m27.68 31.392c-.307-.785-1.201-1.15-2.01-.84l-5.705 2.168 1.105 2.85 5.707-2.166c.811-.311 1.213-1.225.905-2.01"/></g><path fill="#8a6859" d="m20.92 34.07l-.404-1.441c-.145-.512-.691-.811-1.217-.662l-.715.199c-.379.105-.646.41-.715.766-.934.33-2.086 1.014-1.6 2.736.078.283.521 1.857 2.434 1.324 2.818-.783 2.818-.783 2.217-2.922"/><path fill="#ed4c5c" d="m14.244 51.2l-1.377-.78 8.323-14.499 1.38.777z"/><ellipse fill="#333" cx="13.775" cy="50.46" rx="1.178" ry="1.154"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m25.1 16.1l2.1-2.6 3.9 9.3-6.1 2.5z"/><path d="m22.8 22.1c2.2.4 2.2 3.2 2.2 3.2 2.5-1 2.2-6.6.9-9.6l-3.1 6.4" fill="#705041"/><path d="m21.8 3.2l-9.2 8.2c-.3 3.1 1.2 4 1.6 5.1.2.5-.4 1.8-.8 2.4-.7 1.5 1.5 1.5 2.2 1.1.9.9-.2 2.1 2.8.1 0 0-2.7 2.8-.1 2.4.3 1.4 1.1 4 6.8-1.4 1.7-1.6 1-5.4 1-5.4l3.1-2-7.4-10.5" fill="#8a6859"/><path d="m13.8 5.4c6.1-5.3 11.5-3.2 12.9-1.9 3.6 3.6 4.1 9.1 2.3 14.1 0 0-1.8 0-2.9-1.9 0 0 2.1.1 1.3-4-.7-3.4-4.7-3.7-4.6 1.3l-.5.2c-1.8-1.8-1.3-5.2-4.1-5-2.5.2-5.6 3.8-5.6 3.8-1.3-1-1.3-4.4 1.2-6.6" fill="#231f20"/><path d="m16.8 15.4c.3.7.1 1.4-.4 1.6-.5.2-.8-.3-1.1-1-.3-.7-.4-1.3.1-1.5.5-.1 1.1.2 1.4.9" fill="#574137"/><path d="m24 13.5c-.6-1.3.1-2.9 1.2-3.4 0 0-1.2 2.3.1 4.3 0 0-.9 0-1.3-.9" fill="#705041"/><path d="m19.3 19.4c0 0-.9 1.5-1.3 2-.8.9-1 .6-.7 0 .3-.5 1-1.2 1-1.2l1-.8" fill="#574137"/><g fill="#3b946f"><path d="m25 24.3l-1.6 7.4 3.1.5.7-6.3z"/><path d="m26.5 31.8c-.2-.8-1-1.3-1.9-1.1l-6 1.4.7 3 6-1.4c.9-.2 1.4-1.1 1.2-1.9"/></g><path d="m19.4 33.5l-.2-1.5c-.1-.5-.6-.9-1.1-.8l-.7.1c-.4 0-.7.3-.8.7-1 .2-2.2.7-2 2.5 0 .3.2 1.9 2.2 1.7 2.9-.5 2.9-.5 2.6-2.7" fill="#705041"/><path d="m29.9 49.4c-1.6.1-2.8 1.5-2.7 3.1l6.9-.5c.8-.1 1.4-.7 1.4-1.5l-.1-1.4-5.5.3" fill="#d3976e"/><g fill="#3e4347"><path d="m35.4 48.9l-5.5.5-.8-9.7 5.6-.4z"/><path d="m34.8 41.5l-5.7-1.8 5.4-6.8 6.5 1.2z"/></g><g fill="#333"><path d="m13.8 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5s-2-2.3-2.6-3.6c-.6-1.5-.9-3-.9-4.5 0-1.6.3-3.1.9-4.5.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7-1.1 1.1-2.3 1.9-3.7 2.5-1.4.5-2.9.8-4.5.8m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c0-5.2-4.4-9.5-9.7-9.5"/><path d="m50.2 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5-1.1-1.1-1.9-2.3-2.5-3.7-.6-1.4-.9-2.9-.9-4.5s.3-3.1.9-4.5c.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7s-2.3 1.9-3.7 2.5c-1.4.6-3 .9-4.6.9m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c.1-5.2-4.3-9.5-9.7-9.5"/></g><path d="m41.7 36.2l2.1-5.2-1.4-.5-2.1 5.1h-22.3l-2.2-2.3-1.1 1 2.6 2.7h3.4v2.8l13.9 13.5 6.3-15.3 8.6 12.7 1.4-.6-9.2-13.9m-7.5 14.5l-12.7-12.3.6-1.5h17.6l-5.5 13.8" fill="#ed4c5c"/><ellipse cx="50.2" cy="50.5" rx="2.4" ry="2.3" fill="#333"/><g fill="#94989b"><path d="m26.9 51.9h4v1.3h-4z"/><path d="m38.7 53.6h4v1.3h-4z"/></g><path fill="#b3b3b3" d="m30.7 52.3v.6l4 .5v-.6z"/><ellipse cx="34.7" cy="53.7" rx="3.3" ry="3.2" fill="#333"/><g fill="#b3b3b3"><ellipse cx="34.7" cy="53.7" rx=".8" ry=".8"/><path d="m34.7 54l4 .5v-.6l-4-.6z"/></g><path d="m38.6 51.9c-1.5.5-2.4 2.1-1.9 3.6l6.6-2.1c.8-.2 1.2-1 .9-1.8l-.4-1.3-5.2 1.6" fill="#d3976e"/><g fill="#3e4347"><path d="m43.8 50.2l-4.7 1.5-3.6-11.3 5.3-1.7z"/><path d="m41.3 40.8l-5.8-.4 4.6-8.7 4.9 2.5z"/></g><path d="M46,28.5l-11.5,4.5L25,24.3c0,0,2.4-4.9,3.7-5.1C38,17.4,46,28.5,46,28.5z" fill="#47b892"/><path d="m45 34.2l-10.2.6-.3-1.8 11.3-4.8c1.8 2.5-.8 6-.8 6" fill="#3e4347"/><g fill="#47b892"><path d="m25 24.3l-.3 7.4 3.1.1.3-5.9c0-.8-3.1-1.6-3.1-1.6"/><path d="m27.7 31.4c-.3-.8-1.2-1.1-2-.8l-5.7 2.1 1.1 2.8 5.7-2.2c.8-.2 1.2-1.1.9-1.9"/></g><path d="m20.9 34.1l-.4-1.4c-.1-.5-.7-.8-1.2-.7l-.7.2c-.4.1-.6.4-.7.8-.9.3-2.1 1-1.6 2.7.1.3.5 1.9 2.4 1.3 2.8-.8 2.8-.8 2.2-2.9" fill="#8a6859"/><path fill="#ed4c5c" d="m14.2 51.2l-1.3-.8 8.3-14.5 1.4.8z"/><ellipse cx="13.8" cy="50.5" rx="1.2" ry="1.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b4.svg
index 793220b..d66ad5c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m26.883 17.13l2.115-.753 2.818 7.763-5.445 1.94z"/><path fill="#eba352" d="m26.803 16.969c1.266 3.488 1.156 5.523-1.375 6.424l.943 2.691c2.992-1.066 2.875-5.197 1.398-9.27l-.966.155"/><path fill="#ffdd67" d="m24.307 4.36l-10.551 7.953c-.473 2.975.941 3.955 1.281 5.05.15.482-.51 1.703-.861 2.344-.787 1.43 1.447 1.563 2.115 1.154.846.904.209 1.463 1.926.674.945-.434 1.939-1.799 1.939-1.799-3.328 4.217-1.814 4.924-.209 3.828.82 2.262 2.236 1.756 5.34.65 2.533-.902 3.746-3.908 2.482-7.396l3.18-1.795-6.642-10.66"/><path fill="#231f20" d="m18.639 2.776c8.779-3.129 12.609 3.852 13.25 9.41.342 2.959-.484 5.215-1.916 6.566l-1.057-.244-1.146-1.693c0 0 1.572-1.01 1.375-3.133-.09-.971-1.604-2.346-2.949-1.947-.941.279-2.02 1.43-2.229 1.736-.818-2.256-1.203-4.758-2.998-4.875-1.477-.098-6.07 4.313-7.213 3.717-3.082-1.588-.404-7.652 4.883-9.537"/><g fill="#574137"><path d="m26.523 14.11c-.172.037-.326.117-.447.229.018-.188.055-.373.1-.566.061-.238.148-.471.221-.736-.447.307-.76.822-.801 1.398-.033.586.264 1.135.689 1.461-.051-.271-.135-.512-.176-.746-.023-.15-.039-.297-.045-.443.066-.02.131-.041.191-.057.133-.029.244-.068.361-.088.115-.027.234-.037.369-.063.133-.021.273-.025.449-.064-.2-.27-.567-.391-.911-.325"/><path d="m17.779 15.944c.262.723.051 1.459-.471 1.645s-1.156-.25-1.418-.971c-.262-.723-.051-1.459.469-1.645.522-.185 1.159.248 1.42.971"/><path d="m20.16 19.733c0 0-.676 2.508-.928 2.914-.543.871-.945.568-.756-.068.194-.655 1.684-2.846 1.684-2.846"/></g><g fill="#3b946f"><path d="m26.404 24.752c-.85-.154-1.676.395-1.842 1.225l-1.117 5.709 3.086.555 1.115-5.707c.168-.832-.388-1.629-1.242-1.782"/><path d="m26.492 31.829c-.191-.82-1.025-1.307-1.871-1.111l-5.961 1.355.684 2.975 5.961-1.352c.847-.197 1.379-1.047 1.187-1.867"/></g><path fill="#eba352" d="m19.412 33.542l-.191-1.483c-.07-.527-.568-.898-1.109-.824l-.736.098c-.391.051-.699.316-.818.658-.973.197-2.213.715-1.979 2.487.037.291.248 1.914 2.217 1.65 2.903-.387 2.903-.387 2.616-2.586"/><path fill="#d3976e" d="m29.914 49.36c-1.611.125-2.822 1.492-2.703 3.053l6.932-.537c.805-.063 1.41-.744 1.352-1.527l-.107-1.412-5.474.423"/><g fill="#3e4347"><path d="m35.387 48.94l-5.506.43-.731-9.65 5.506-.43z"/><path d="m34.822 41.497l-5.672-1.777 5.348-6.788 6.455 1.188z"/></g><g fill="#333"><path d="m13.775 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.662-1.414-3.742-2.473s-1.93-2.293-2.521-3.666c-.615-1.424-.928-2.935-.928-4.492s.313-3.066.928-4.49c.592-1.373 1.441-2.607 2.521-3.666 1.08-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.082 1.059 1.93 2.293 2.523 3.666.615 1.424.926 2.934.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.441 2.607-2.523 3.666-1.08 1.059-2.34 1.891-3.742 2.473-1.453.601-2.994.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c.001-5.26-4.368-9.539-9.738-9.539"/><path d="m50.23 62c-1.59 0-3.131-.305-4.584-.906-1.4-.582-2.66-1.414-3.742-2.473-1.08-1.059-1.932-2.293-2.521-3.666-.617-1.424-.928-2.936-.928-4.492s.311-3.066.928-4.49c.59-1.373 1.441-2.607 2.521-3.666 1.082-1.061 2.342-1.891 3.742-2.473 1.453-.602 2.994-.908 4.584-.908s3.131.307 4.584.908c1.402.582 2.662 1.412 3.742 2.473 1.08 1.059 1.93 2.293 2.523 3.666.615 1.423.926 2.933.926 4.49s-.311 3.068-.926 4.492c-.594 1.373-1.443 2.607-2.523 3.666s-2.34 1.891-3.742 2.473c-1.454.601-2.995.906-4.584.906m0-21.08c-5.369 0-9.738 4.279-9.738 9.539 0 5.262 4.369 9.541 9.738 9.541s9.738-4.279 9.738-9.541c0-5.26-4.369-9.539-9.738-9.539"/></g><path fill="#ed4c5c" d="m41.666 36.19l2.125-5.221-1.389-.543-2.057 5.05h-22.341l-2.17-2.27-1.09 1 2.611 2.734 3.402.002.047 2.83 13.895 13.533 6.211-15.262 8.639 12.732 1.352-.623-9.235-13.967m-7.516 14.517l-12.615-12.297.611-1.465h17.604l-5.6 13.762"/><ellipse fill="#333" cx="50.23" cy="50.46" rx="2.355" ry="2.307"/><g fill="#94989b"><path d="m26.9 51.944h4.04v1.258h-4.04z"/><path d="m38.674 53.56h4.04v1.258h-4.04z"/></g><path fill="#b3b3b3" d="m30.727 52.27v.606l3.972.534v-.608z"/><ellipse fill="#333" cx="34.699" cy="53.649" rx="3.307" ry="3.24"/><g fill="#b3b3b3"><ellipse cx="34.699" cy="53.649" rx=".826" ry=".809"/><path d="m34.699 53.954l3.975.536v-.61l-3.975-.54z"/></g><path fill="#d3976e" d="m38.615 51.851c-1.535.49-2.385 2.1-1.896 3.588l6.611-2.117c.768-.246 1.191-1.049.945-1.795l-.441-1.348-5.219 1.672"/><g fill="#3e4347"><path d="m43.834 50.18l-4.694 1.503-3.626-11.283 5.252-1.68z"/><path d="m41.33 40.839l-5.816-.439 4.576-8.659 4.89 2.409z"/></g><path fill="#47b892" d="M46,28.463l-11.502,4.469l-9.117-8.064c0,0,2.615-3.305,3.928-3.549C38.617,19.577,46,28.463,46,28.463z"/><path fill="#3e4347" d="m44.98 34.15l-10.21.553-.271-1.772 11.309-4.791c1.776 2.608-.828 6.01-.828 6.01"/><g fill="#47b892"><path d="m26.572 24.399c-.865-.035-1.604.623-1.646 1.469l-.283 5.805 3.137.121.279-5.805c.046-.846-.62-1.557-1.487-1.59"/><path d="m27.68 31.391c-.307-.785-1.201-1.15-2.01-.84l-5.705 2.168 1.105 2.85 5.707-2.166c.811-.31 1.213-1.225.905-2.01"/></g><path fill="#ffdd67" d="m20.92 34.07l-.404-1.442c-.145-.512-.691-.811-1.217-.662l-.715.199c-.379.105-.646.41-.715.766-.934.331-2.086 1.014-1.6 2.737.078.283.521 1.857 2.434 1.324 2.818-.783 2.818-.783 2.217-2.922"/><path fill="#ed4c5c" d="m14.244 51.2l-1.377-.78 8.323-14.499 1.38.777z"/><ellipse fill="#333" cx="13.775" cy="50.46" rx="1.178" ry="1.154"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m26.1 16.1l2.1-2.6 3.9 9.3-6.1 2.5z"/><path d="m23.8 22.1c2.2.4 2.2 3.2 2.2 3.2 2.5-1 2.2-6.6.9-9.6l-3.1 6.4" fill="#eba352"/><path d="m22.8 3.2l-9.2 8.2c-.3 3.1 1.2 4 1.6 5.1.2.5-.4 1.8-.8 2.4-.7 1.5 1.5 1.5 2.2 1.1.9.9-.2 2.1 2.8.1 0 0-2.7 2.8-.1 2.4.3 1.4 1.1 4 6.8-1.4 1.7-1.6 1-5.4 1-5.4l3.1-2-7.4-10.5" fill="#ffdd67"/><path d="m14.8 5.4c6.1-5.3 11.5-3.2 12.9-1.9 3.6 3.6 4.1 9.1 2.3 14.1 0 0-1.8 0-2.9-1.9 0 0 2.1.1 1.3-4-.7-3.4-4.7-3.7-4.6 1.3l-.5.2c-1.8-1.8-1.3-5.2-4.1-5-2.5.2-5.6 3.8-5.6 3.8-1.3-1-1.3-4.4 1.2-6.6" fill="#ffb300"/><path d="m17.8 15.4c.3.7.1 1.4-.4 1.6-.5.2-.8-.3-1.1-1-.3-.7-.4-1.3.1-1.5.5-.1 1.1.2 1.4.9" fill="#937237"/><path d="m25 13.5c-.6-1.3.1-2.9 1.2-3.4 0 0-1.2 2.3.1 4.3 0 0-.9 0-1.3-.9" fill="#eba352"/><path d="m20.3 19.4c0 0-.9 1.5-1.3 2-.8.9-1 .6-.7 0 .3-.5 1-1.2 1-1.2l1-.8" fill="#937237"/><g fill="#3b946f"><path d="m26 24.3l-1.6 7.4 3.1.5.7-6.3z"/><path d="m27.5 31.8c-.2-.8-1-1.3-1.9-1.1l-6 1.4.7 3 6-1.4c.9-.2 1.4-1.1 1.2-1.9"/></g><path d="m20.4 33.5l-.2-1.5c-.1-.5-.6-.9-1.1-.8l-.7.1c-.4 0-.7.3-.8.7-1 .2-2.2.7-2 2.5 0 .3.2 1.9 2.2 1.7 2.9-.5 2.9-.5 2.6-2.7" fill="#eba352"/><path d="m30.9 49.4c-1.6.1-2.8 1.5-2.7 3.1l6.9-.5c.8-.1 1.4-.7 1.4-1.5l-.1-1.4-5.5.3" fill="#d3976e"/><g fill="#3e4347"><path d="m36.4 48.9l-5.5.5-.8-9.7 5.6-.4z"/><path d="m35.8 41.5l-5.7-1.8 5.4-6.8 6.5 1.2z"/></g><g fill="#333"><path d="m14.8 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5s-2-2.3-2.6-3.6c-.6-1.5-.9-3-.9-4.5 0-1.6.3-3.1.9-4.5.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7-1.1 1.1-2.3 1.9-3.7 2.5-1.4.5-2.9.8-4.5.8m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c0-5.2-4.4-9.5-9.7-9.5"/><path d="m51.2 62c-1.6 0-3.1-.3-4.6-.9-1.4-.6-2.7-1.4-3.7-2.5-1.1-1.1-1.9-2.3-2.5-3.7-.6-1.4-.9-2.9-.9-4.5s.3-3.1.9-4.5c.6-1.4 1.4-2.6 2.5-3.7 1.1-1.1 2.3-1.9 3.7-2.5 1.5-.6 3-.9 4.6-.9s3.1.3 4.6.9c1.4.6 2.7 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7.6 1.4.9 2.9.9 4.5 0 1.6-.3 3.1-.9 4.5-.6 1.4-1.4 2.6-2.5 3.7s-2.3 1.9-3.7 2.5c-1.4.6-3 .9-4.6.9m0-21.1c-5.4 0-9.7 4.3-9.7 9.5 0 5.3 4.4 9.5 9.7 9.5s9.7-4.3 9.7-9.5c.1-5.2-4.3-9.5-9.7-9.5"/></g><path d="m42.7 36.2l2.1-5.2-1.4-.5-2.1 5.1h-22.3l-2.2-2.3-1.1 1 2.6 2.7h3.4v2.8l13.9 13.5 6.3-15.3 8.6 12.7 1.4-.6-9.2-13.9m-7.5 14.5l-12.7-12.3.6-1.5h17.6l-5.5 13.8" fill="#ed4c5c"/><ellipse cx="51.2" cy="50.5" rx="2.4" ry="2.3" fill="#333"/><g fill="#94989b"><path d="m27.9 51.9h4v1.3h-4z"/><path d="m39.7 53.6h4v1.3h-4z"/></g><path fill="#b3b3b3" d="m31.7 52.3v.6l4 .5v-.6z"/><ellipse cx="35.7" cy="53.7" rx="3.3" ry="3.2" fill="#333"/><g fill="#b3b3b3"><ellipse cx="35.7" cy="53.7" rx=".8" ry=".8"/><path d="m35.7 54l4 .5v-.6l-4-.6z"/></g><path d="m39.6 51.9c-1.5.5-2.4 2.1-1.9 3.6l6.6-2.1c.8-.2 1.2-1 .9-1.8l-.4-1.3-5.2 1.6" fill="#d3976e"/><g fill="#3e4347"><path d="m44.8 50.2l-4.7 1.5-3.6-11.3 5.3-1.7z"/><path d="m42.3 40.8l-5.8-.4 4.6-8.7 4.9 2.5z"/></g><path d="M47,28.5l-11.5,4.5L26,24.3c0,0,2.4-4.9,3.7-5.1C39,17.4,47,28.5,47,28.5z" fill="#47b892"/><path d="m46 34.2l-10.2.6-.3-1.8 11.3-4.8c1.8 2.5-.8 6-.8 6" fill="#3e4347"/><g fill="#47b892"><path d="m26 24.3l-.3 7.4 3.1.1.3-5.9c0-.8-3.1-1.6-3.1-1.6"/><path d="m28.7 31.4c-.3-.8-1.2-1.1-2-.8l-5.7 2.1 1.1 2.8 5.7-2.2c.8-.2 1.2-1.1.9-1.9"/></g><path d="m21.9 34.1l-.4-1.4c-.1-.5-.7-.8-1.2-.7l-.7.2c-.4.1-.6.4-.7.8-.9.3-2.1 1-1.6 2.7.1.3.5 1.9 2.4 1.3 2.8-.8 2.8-.8 2.2-2.9" fill="#ffdd67"/><path fill="#ed4c5c" d="m15.2 51.2l-1.3-.8 8.3-14.5 1.4.8z"/><ellipse cx="14.8" cy="50.5" rx="1.2" ry="1.2" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fb.svg
index 4bf22a1..5ce96f5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aec470" d="M64,64v-7.5c0,0-27.5-7.393-64-42.58V64H64z"/><path fill="#95a55b" d="M64,64v-3.5c0,0-27.334,6.75-64-23.58V64H64z"/><path fill="#ffe1bd" d="m38.05 16.287l2.07.014-.01 7.588-5.309-.035z"/><path fill="#f9c19b" d="m38.03 16.13c-.004 3.406-.738 5.127-3.205 5.109l-.029 2.619c2.914.018 4.111-3.584 4.115-7.561l-.881-.167"/><path fill="#ffe1bd" d="m39.842 4.459l-11.604 3.549c-1.34 2.418-.43 3.709-.477 4.758-.023.465-.977 1.311-1.48 1.752-1.129.986.758 1.801 1.463 1.66.445 1.045-.279 1.328 1.451 1.186.951-.078 2.236-.941 2.236-.941-4.197 2.592-3.111 3.676-1.383 3.234-.002 2.211 1.379 2.219 4.404 2.24 2.469.016 4.459-2.197 4.463-5.604l3.309-.551-2.382-11.283"/><path fill="#594640" d="m35.447 1.314c8.559.057 9.672 7.281 8.479 12.279-.635 2.66-2.057 4.346-3.717 5.063l-.834-.541-.459-1.822c0 0 1.676-.377 2.17-2.27.229-.867-.645-2.527-1.932-2.607-.9-.055-2.191.6-2.467.799.002-2.205.455-4.482-1.057-5.148-1.244-.547-6.588 1.816-7.393.941-2.159-2.338 2.058-6.729 7.21-6.694"/><g fill="#574137"><path d="m38.693 13.564c-.16-.021-.318 0-.457.057.074-.154.162-.305.264-.457.125-.186.275-.359.42-.566-.48.125-.914.471-1.129.957-.213.494-.131 1.061.135 1.475.041-.25.047-.482.084-.697.027-.139.061-.27.1-.396.064.004.125.006.184.012.123.016.23.018.338.037.109.012.215.041.338.063s.246.063.408.084c-.089-.299-.368-.518-.685-.569"/><path d="m30.57 12.404c0 .705-.412 1.275-.922 1.271-.508-.002-.918-.578-.918-1.283s.414-1.275.922-1.271.92.578.918 1.283"/><path d="m31.432 16.422c0 0-1.369 1.949-1.717 2.223-.74.58-.992.193-.629-.297.373-.506 2.346-1.926 2.346-1.926"/></g><g fill="#3e4347"><path d="m38.732 18.564l-1.372.139-2.13-9.03 1.375-.139z"/><path d="m38.41 18.82l-1.19-.66 4.389-5 1.192.66z"/><path transform="matrix(.986.167-.167.986 3.834-6.02)" d="m36.818 17.251h1.836v5.067h-1.836z"/></g><path fill="#f15744" d="m45.06 14.943c-.738 1.693-5.729-2.961-9.104-4.436-3.705-1.615-9.998-2.268-9.398-3.643 2.18-4.992 8.09-7.232 13.199-5 5.11 2.234 7.485 8.089 5.303 13.08"/><g fill="#3b946f"><path d="m35.25 22.713c-.688-.4-1.572-.186-1.977.479l-2.756 4.576 2.488 1.447 2.756-4.574c.407-.664.177-1.528-.511-1.928"/><path d="m33.1 28.846c.094-.766-.473-1.447-1.264-1.545l-5.57-.703-.344 2.781 5.566.705c.795.098 1.52-.469 1.612-1.238"/></g><path fill="#e6b796" d="m26.455 28.1l.299-1.338c.105-.479-.207-.955-.697-1.061l-.668-.148c-.352-.078-.703.055-.91.313-.904-.137-2.135-.08-2.49 1.523-.059.264-.387 1.729 1.395 2.121 2.626.578 2.626.578 3.071-1.41"/><path fill="#d3976e" d="m30.547 45.05c-1.43-.398-2.904.4-3.293 1.783l6.15 1.715c.715.197 1.451-.201 1.646-.895l.352-1.252-4.855-1.351"/><g fill="#3e4347"><path d="m35.402 46.4l-4.884-1.36 2.396-8.552 4.887 1.364z"/><path d="m37.25 39.805l-4.336-3.317 6.748-4.178 5.197 3.05z"/></g><g fill="#333"><path d="m12.652 50.887c-1.371-.5-2.605-1.246-3.67-2.223-1.025-.941-1.852-2.055-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.086-1.42.121-2.822.609-4.166.49-1.344 1.232-2.549 2.211-3.584.941-1 2.063-1.797 3.326-2.371 1.266-.574 2.615-.896 4.01-.957 1.443-.064 2.869.156 4.24.654 1.371.5 2.605 1.248 3.67 2.225 1.027.941 1.854 2.053 2.453 3.309.6 1.252.945 2.584 1.025 3.955.084 1.42-.121 2.822-.611 4.166-.488 1.344-1.232 2.549-2.209 3.584-.943.998-2.063 1.797-3.328 2.371s-2.613.896-4.01.957c-1.443.064-2.869-.158-4.24-.656m6.619-18.19c-4.633-1.688-9.746.635-11.398 5.172-1.652 4.541.773 9.605 5.406 11.291s9.746-.635 11.398-5.174-.773-9.603-5.406-11.289"/><path d="m44.1 62.33c-1.371-.498-2.605-1.246-3.67-2.221-1.025-.941-1.852-2.057-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.084-1.422.121-2.824.609-4.166.488-1.344 1.232-2.551 2.211-3.584.941-1 2.063-1.797 3.328-2.371 1.266-.576 2.613-.896 4-.959 1.443-.063 2.869.156 4.24.656 1.373.5 2.607 1.248 3.67 2.223 1.029.943 1.854 2.055 2.453 3.309s.945 2.586 1.025 3.957c.084 1.42-.121 2.82-.611 4.164-.488 1.344-1.232 2.551-2.209 3.584-.943 1-2.063 1.799-3.328 2.373s-2.613.895-4.01.957c-1.442.063-2.869-.158-4.24-.658m6.619-18.19c-4.633-1.686-9.746.635-11.398 5.174s.773 9.604 5.406 11.289c4.633 1.688 9.746-.633 11.398-5.172s-.773-9.603-5.406-11.291"/></g><path fill="#ed4c5c" d="m44.826 37.37l3.471-3.836-1.027-.904-3.361 3.715-19.277-7.02-1.158-2.641-1.256.52 1.395 3.182 2.936 1.07-.848 2.455 7.738 16.04 10.15-11.217 3.457 13.697 1.361-.113-3.581-14.953m-11.05 10.166l-7.02-14.572.986-1.07 15.189 5.529-9.152 10.113"/><ellipse transform="matrix(-.9398-.3419.3419-.9398 74.67 117.92)" fill="#333" cx="47.726" cy="52.38" rx="2.163" ry="2.119"/><g fill="#94989b"><path transform="matrix(.9396.3422-.3422.9396 17.989-6.946)" d="m26.828 46.931h3.704v1.154h-3.704z"/><path transform="matrix(.9397.342-.342.9397 20.301-9.939)" d="m36.478 52.02h3.706v1.155h-3.706z"/></g><path fill="#b3b3b3" d="m30.336 47.811l-.196.529 3.264 1.71.192-.53z"/><ellipse transform="matrix(.9397.3419-.3419.9397 19.19-8.367)" fill="#333" cx="33.33" cy="50.25" rx="3.036" ry="2.975"/><g fill="#b3b3b3"><ellipse transform="matrix(.94.3412-.3412.94 19.15-8.357)" cx="33.33" cy="50.25" rx=".758" ry=".743"/><path d="m33.23 50.52l3.264 1.71.192-.531-3.26-1.711z"/></g><path fill="#d3976e" d="m37.27 49.928c-1.48-.057-2.719 1.063-2.764 2.502l6.369.25c.738.027 1.357-.531 1.379-1.254l.043-1.301-5.03-.197"/><g fill="#3e4347"><path d="m42.3 50.13l-4.523-.183.413-10.867 5.06.19z"/><path d="m43.08 41.28l-4.89-2.2 6.669-6.04 3.461 3.616z"/></g><path fill="#47b892" d="m50.988 32.07l-11.326.242-5.334-9.82c0 0 3.293-2.029 4.502-1.83 8.58 1.422 12.158 11.408 12.158 11.408"/><path fill="#3e4347" d="m48.32 36.656l-8.986-2.729.324-1.615 11.262-.582c.715 2.809-2.6 4.926-2.6 4.926"/><g fill="#47b892"><path d="m35.502 22.461c-.734-.301-1.578.035-1.881.75l-2.066 4.922 2.668 1.088 2.063-4.922c.306-.715-.046-1.537-.784-1.838"/><path d="m34.26 28.842c-.018-.773-.674-1.369-1.471-1.355l-5.604.078.059 2.807 5.604-.076c.796-.015 1.431-.677 1.412-1.454"/></g><path fill="#ffe1bd" d="m27.59 29.03l.104-1.369c.035-.488-.344-.916-.842-.953l-.68-.055c-.361-.027-.688.152-.857.436-.91-.008-2.119.221-2.24 1.859-.021.27-.133 1.768 1.684 1.908 2.679.208 2.679.208 2.831-1.826"/><path fill="#ed4c5c" d="m16.449 41.715l-.943-1.102 11.734-9.902.95 1.105z"/><ellipse transform="matrix(-.94-.3413.3413-.94 17.605 84.961)" fill="#333" cx="16.276" cy="40.932" rx="1.082" ry="1.061"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m37 16.4l2.8-1.5v9.5h-6.2z"/><path d="m32.9 20.8c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#e6b796"/><path d="m38.8 4l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#ffe1bd"/><path d="m31.1 3.1c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.5-4.3 3.5-5.3" fill="#594640"/><path d="m30.1 12.8c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m37 13.7c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#e6b796"/><path d="m30.8 17.2c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><path d="M62,62v-7.1c0,0-25.2-7-60-40.6V62H62z" fill="#aec470"/><path d="M62,62v-3.3c0,0-25.1,6.4-60-22.5V62H62z" fill="#95a55b"/><g fill="#3e4347"><path d="m37.9 18.7l-1.3.2-2-8.6 1.3-.2z"/><path d="m37.6 19l-1.1-.7 4.2-4.7 1.1.6z"/><path transform="matrix(.1669-.986.986.1669 11.186 53.0165)" d="m34.6 19h4.8v1.7h-4.8z"/></g><path d="m43.9 15.3c-.7 1.6-5.5-2.8-8.7-4.2-3.5-1.5-9.5-2.2-9-3.5 2.1-4.8 7.7-6.9 12.6-4.8 5 2.1 7.2 7.7 5.1 12.5" fill="#f15744"/><g fill="#3b946f"><path d="m34.6 22.7c-.7-.4-1.5-.2-1.9.5l-2.6 4.4 2.4 1.4 2.6-4.4c.4-.7.1-1.5-.5-1.9"/><path d="m32.5 28.5c.1-.7-.5-1.4-1.2-1.5l-5.3-.6-.3 2.6 5.3.7c.8.1 1.5-.4 1.5-1.2"/></g><path d="m26.2 27.8l.3-1.3c.1-.5-.2-.9-.7-1l-.6-.1c-.3-.1-.7.1-.9.3-.9-.1-2-.1-2.4 1.5-.1.3-.4 1.6 1.3 2 2.6.5 2.6.5 3-1.4" fill="#e6b796"/><path d="m30.1 44c-1.4-.4-2.8.4-3.1 1.7l5.9 1.6c.7.2 1.4-.2 1.6-.9l.3-1.2-4.7-1.2" fill="#d3976e"/><g fill="#3e4347"><path d="m34.7 45.2l-4.6-1.3 2.3-8.1 4.6 1.3z"/><path d="m36.5 39l-4.1-3.2 6.4-4 4.9 2.9z"/></g><g fill="#333"><path d="m13.1 49.5c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .4-1.2 1.1-2.3 2.1-3.3.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2.6 1.2.9 2.5 1 3.8.1 1.4-.1 2.7-.6 4-.5 1.2-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3-1.2.5-2.5.9-3.8.9-1.4 0-2.7-.2-4-.7m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.6-4.4-.7-9.2-5.1-10.8"/><path d="m43 60.4c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .5-1.3 1.2-2.4 2.1-3.4.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2s.9 2.5 1 3.8c.1 1.4-.1 2.7-.6 4-.5 1.3-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3s-2.4.9-3.7.9c-1.4.1-2.8-.1-4.1-.6m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.7-4.4-.7-9.2-5.1-10.8"/></g><path d="m43.7 36.6l3.3-3.6-1-.9-3.2 3.5-18.3-6.6-1.1-2.5-1.2.5 1.3 3 2.8 1-.8 2.3 7.4 15.3 9.7-10.7 3.3 13 1.3-.1-3.5-14.2m-10.5 9.7l-6.7-13.9.9-1 14.5 5.3-8.7 9.6" fill="#ed4c5c"/><ellipse transform="matrix(.3419-.9397.9397.3419-17.2712 77.1916)" cx="46.5" cy="50.9" rx="2" ry="2.1" fill="#333"/><g fill="#94989b"><path transform="matrix(.3421-.9397.9397.3421-24.8566 57.0869)" d="m27.8 44.5h1.1v3.5h-1.1z"/><path transform="matrix(.342-.9397.9397.342-23.359 68.9155)" d="m37 49.4h1.1v3.5h-1.1z"/></g><path fill="#b3b3b3" d="m29.9 46.6l-.2.5 3.1 1.6.2-.5z"/><ellipse transform="matrix(.3419-.9397.9397.3419-24.3947 62.974)" cx="32.8" cy="48.9" rx="2.8" ry="2.9" fill="#333"/><g fill="#b3b3b3"><ellipse transform="matrix(.3415-.9399.9399.3415-24.3909 63.0019)" cx="32.8" cy="48.9" rx=".7" ry=".7"/><path d="m32.7 49.2l3.1 1.6.2-.5-3.1-1.6z"/></g><path d="m36.5 48.6c-1.4-.1-2.6 1-2.6 2.4l6.1.2c.7 0 1.3-.5 1.3-1.2v-1.2l-4.8-.2" fill="#d3976e"/><g fill="#3e4347"><path d="m41.3 48.8l-4.3-.2.4-10.3 4.8.2z"/><path d="m42 40.4l-4.6-2.1 6.3-5.8 3.3 3.5z"/></g><path d="m49.6 31.6l-10.8.2-5.1-9.4c0 0 3.1-1.9 4.3-1.7 8.2 1.4 11.6 10.9 11.6 10.9" fill="#47b892"/><path d="m47 36l-8.6-2.6.3-1.5 10.7-.6c.8 2.6-2.4 4.7-2.4 4.7" fill="#3e4347"/><g fill="#47b892"><path d="m34.8 22.4c-.7-.3-1.5 0-1.8.7l-2 4.7 2.5 1 2-4.7c.4-.6 0-1.4-.7-1.7"/><path d="m33.7 28.5c0-.7-.6-1.3-1.4-1.3l-5.3.1v2.7l5.3-.1c.8 0 1.4-.6 1.4-1.4"/></g><path d="m27.3 28.7l.1-1.3c0-.5-.3-.9-.8-.9l-.6-.1c-.3 0-.7.1-.8.4-.9 0-2 .2-2.1 1.8 0 .3-.1 1.7 1.6 1.8 2.5.2 2.5.2 2.6-1.7" fill="#ffe1bd"/><path fill="#ed4c5c" d="m16.7 40.8l-.9-1.1 11.2-9.4.9 1z"/><ellipse transform="matrix(.3413-.94.94.3413-26.7403 41.8999)" cx="16.5" cy="40" rx="1" ry="1" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fc.svg
index 91053c3..9b088b9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aec470" d="M64,64v-7.5c0,0-27.5-7.393-64-42.58V64H64z"/><path fill="#95a55b" d="M64,64v-3.5c0,0-27.334,6.75-64-23.58V64H64z"/><path fill="#fed0ac" d="m38.05 16.287l2.07.014-.01 7.588-5.309-.035z"/><path fill="#f9c19b" d="m38.03 16.13c-.004 3.406-.738 5.127-3.205 5.109l-.029 2.619c2.914.018 4.111-3.584 4.115-7.561l-.881-.167"/><path fill="#fed0ac" d="m39.842 4.459l-11.604 3.549c-1.34 2.418-.43 3.709-.477 4.758-.023.465-.977 1.311-1.48 1.752-1.129.986.758 1.801 1.463 1.66.445 1.045-.279 1.328 1.451 1.186.951-.078 2.236-.941 2.236-.941-4.197 2.592-3.111 3.676-1.383 3.234-.002 2.211 1.379 2.219 4.404 2.24 2.469.016 4.459-2.197 4.463-5.604l3.309-.551-2.382-11.283"/><path fill="#dbb471" d="m35.447 1.314c8.559.057 9.672 7.281 8.479 12.279-.635 2.66-2.057 4.346-3.717 5.063l-.834-.541-.459-1.822c0 0 1.676-.377 2.17-2.27.229-.867-.645-2.527-1.932-2.607-.9-.055-2.191.6-2.467.799.002-2.205.455-4.482-1.057-5.148-1.244-.547-6.588 1.816-7.393.941-2.159-2.338 2.058-6.729 7.21-6.694"/><g fill="#574137"><path d="m38.693 13.564c-.16-.021-.318 0-.457.057.074-.154.162-.305.264-.457.125-.186.275-.359.42-.566-.48.125-.914.471-1.129.957-.213.494-.131 1.061.135 1.475.041-.25.047-.482.084-.697.027-.139.061-.27.1-.396.064.004.125.006.184.012.123.016.23.018.338.037.109.012.215.041.338.063s.246.063.408.084c-.089-.299-.368-.518-.685-.569"/><path d="m30.57 12.404c0 .705-.412 1.275-.922 1.271-.508-.002-.918-.578-.918-1.283s.414-1.275.922-1.271.92.578.918 1.283"/><path d="m31.432 16.422c0 0-1.369 1.949-1.717 2.223-.74.58-.992.193-.629-.297.373-.506 2.346-1.926 2.346-1.926"/></g><g fill="#3e4347"><path d="m38.732 18.564l-1.372.139-2.13-9.03 1.375-.139z"/><path d="m38.41 18.82l-1.19-.66 4.389-5 1.192.66z"/><path transform="matrix(.986.167-.167.986 3.834-6.02)" d="m36.818 17.251h1.836v5.067h-1.836z"/></g><path fill="#f15744" d="m45.06 14.943c-.738 1.693-5.729-2.961-9.104-4.436-3.705-1.615-9.998-2.268-9.398-3.643 2.18-4.992 8.09-7.232 13.199-5 5.11 2.234 7.485 8.089 5.303 13.08"/><g fill="#3b946f"><path d="m35.25 22.713c-.688-.4-1.572-.186-1.977.479l-2.756 4.576 2.488 1.447 2.756-4.574c.407-.664.177-1.528-.511-1.928"/><path d="m33.1 28.846c.094-.766-.473-1.447-1.264-1.545l-5.57-.703-.344 2.781 5.566.705c.795.098 1.52-.469 1.612-1.238"/></g><path fill="#e0a372" d="m26.455 28.1l.299-1.338c.105-.479-.207-.955-.697-1.061l-.668-.148c-.352-.078-.703.055-.91.313-.904-.137-2.135-.08-2.49 1.523-.059.264-.387 1.729 1.395 2.121 2.626.578 2.626.578 3.071-1.41"/><path fill="#d3976e" d="m30.547 45.05c-1.43-.398-2.904.4-3.293 1.783l6.15 1.715c.715.197 1.451-.201 1.646-.895l.352-1.252-4.855-1.351"/><g fill="#3e4347"><path d="m35.402 46.4l-4.884-1.36 2.396-8.552 4.887 1.364z"/><path d="m37.25 39.805l-4.336-3.317 6.748-4.178 5.197 3.05z"/></g><g fill="#333"><path d="m12.652 50.887c-1.371-.5-2.605-1.246-3.67-2.223-1.025-.941-1.852-2.055-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.086-1.42.121-2.822.609-4.166.49-1.344 1.232-2.549 2.211-3.584.941-1 2.063-1.797 3.326-2.371 1.266-.574 2.615-.896 4.01-.957 1.443-.064 2.869.156 4.24.654 1.371.5 2.605 1.248 3.67 2.225 1.027.941 1.854 2.053 2.453 3.309.6 1.252.945 2.584 1.025 3.955.084 1.42-.121 2.822-.611 4.166-.488 1.344-1.232 2.549-2.209 3.584-.943.998-2.063 1.797-3.328 2.371s-2.613.896-4.01.957c-1.443.064-2.869-.158-4.24-.656m6.619-18.19c-4.633-1.688-9.746.635-11.398 5.172-1.652 4.541.773 9.605 5.406 11.291s9.746-.635 11.398-5.174-.773-9.603-5.406-11.289"/><path d="m44.1 62.33c-1.371-.498-2.605-1.246-3.67-2.221-1.025-.941-1.852-2.057-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.084-1.422.121-2.824.609-4.166.488-1.344 1.232-2.551 2.211-3.584.941-1 2.063-1.797 3.328-2.371 1.266-.576 2.613-.896 4-.959 1.443-.063 2.869.156 4.24.656 1.373.5 2.607 1.248 3.67 2.223 1.029.943 1.854 2.055 2.453 3.309s.945 2.586 1.025 3.957c.084 1.42-.121 2.82-.611 4.164-.488 1.344-1.232 2.551-2.209 3.584-.943 1-2.063 1.799-3.328 2.373s-2.613.895-4.01.957c-1.442.063-2.869-.158-4.24-.658m6.619-18.19c-4.633-1.686-9.746.635-11.398 5.174s.773 9.604 5.406 11.289c4.633 1.688 9.746-.633 11.398-5.172s-.773-9.603-5.406-11.291"/></g><path fill="#ed4c5c" d="m44.826 37.37l3.471-3.836-1.027-.904-3.361 3.715-19.277-7.02-1.158-2.641-1.256.52 1.395 3.182 2.936 1.07-.848 2.455 7.738 16.04 10.15-11.217 3.457 13.697 1.361-.113-3.581-14.953m-11.05 10.166l-7.02-14.572.986-1.07 15.189 5.529-9.152 10.113"/><ellipse transform="matrix(-.9398-.3419.3419-.9398 74.67 117.92)" fill="#333" cx="47.726" cy="52.38" rx="2.163" ry="2.119"/><g fill="#94989b"><path transform="matrix(.9396.3422-.3422.9396 17.989-6.946)" d="m26.828 46.931h3.704v1.154h-3.704z"/><path transform="matrix(.9397.342-.342.9397 20.301-9.939)" d="m36.478 52.02h3.706v1.155h-3.706z"/></g><path fill="#b3b3b3" d="m30.336 47.811l-.196.529 3.264 1.71.192-.53z"/><ellipse transform="matrix(.9397.3419-.3419.9397 19.19-8.367)" fill="#333" cx="33.33" cy="50.25" rx="3.036" ry="2.975"/><g fill="#b3b3b3"><ellipse transform="matrix(.94.3412-.3412.94 19.15-8.357)" cx="33.33" cy="50.25" rx=".758" ry=".743"/><path d="m33.23 50.52l3.264 1.71.192-.531-3.26-1.711z"/></g><path fill="#d3976e" d="m37.27 49.928c-1.48-.057-2.719 1.063-2.764 2.502l6.369.25c.738.027 1.357-.531 1.379-1.254l.043-1.301-5.03-.197"/><g fill="#3e4347"><path d="m42.3 50.13l-4.523-.183.413-10.867 5.06.19z"/><path d="m43.08 41.28l-4.89-2.2 6.669-6.04 3.461 3.616z"/></g><path fill="#47b892" d="m50.988 32.07l-11.326.242-5.334-9.82c0 0 3.293-2.029 4.502-1.83 8.58 1.422 12.158 11.408 12.158 11.408"/><path fill="#3e4347" d="m48.32 36.656l-8.986-2.729.324-1.615 11.262-.582c.715 2.809-2.6 4.926-2.6 4.926"/><g fill="#47b892"><path d="m35.502 22.461c-.734-.301-1.578.035-1.881.75l-2.066 4.922 2.668 1.088 2.063-4.922c.306-.715-.046-1.537-.784-1.838"/><path d="m34.26 28.842c-.018-.773-.674-1.369-1.471-1.355l-5.604.078.059 2.807 5.604-.076c.796-.015 1.431-.677 1.412-1.454"/></g><path fill="#fed0ac" d="m27.59 29.03l.104-1.369c.035-.488-.344-.916-.842-.953l-.68-.055c-.361-.027-.688.152-.857.436-.91-.008-2.119.221-2.24 1.859-.021.27-.133 1.768 1.684 1.908 2.679.208 2.679.208 2.831-1.826"/><path fill="#ed4c5c" d="m16.449 41.715l-.943-1.102 11.734-9.902.95 1.105z"/><ellipse transform="matrix(-.94-.3413.3413-.94 17.605 84.961)" fill="#333" cx="16.276" cy="40.932" rx="1.082" ry="1.061"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m37 16.4l2.8-1.5v9.5h-6.2z"/><path d="m32.9 20.8c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#e0a372"/><path d="m38.8 4l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#fed0ac"/><path d="m31.1 3.1c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.5-4.3 3.5-5.3" fill="#dbb471"/><path d="m30.1 12.8c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m37 13.7c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#e0a372"/><path d="m30.8 17.2c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><path d="M62,62v-7.1c0,0-25.2-7-60-40.6V62H62z" fill="#aec470"/><path d="M62,62v-3.3c0,0-25.1,6.4-60-22.5V62H62z" fill="#95a55b"/><g fill="#3e4347"><path d="m37.9 18.7l-1.3.2-2-8.6 1.3-.2z"/><path d="m37.6 19l-1.1-.7 4.2-4.7 1.1.6z"/><path transform="matrix(.1669-.986.986.1669 11.186 53.0165)" d="m34.6 19h4.8v1.7h-4.8z"/></g><path d="m43.9 15.3c-.7 1.6-5.5-2.8-8.7-4.2-3.5-1.5-9.5-2.2-9-3.5 2.1-4.8 7.7-6.9 12.6-4.8 5 2.1 7.2 7.7 5.1 12.5" fill="#f15744"/><g fill="#3b946f"><path d="m34.6 22.7c-.7-.4-1.5-.2-1.9.5l-2.6 4.4 2.4 1.4 2.6-4.4c.4-.7.1-1.5-.5-1.9"/><path d="m32.5 28.5c.1-.7-.5-1.4-1.2-1.5l-5.3-.6-.3 2.6 5.3.7c.8.1 1.5-.4 1.5-1.2"/></g><path d="m26.2 27.8l.3-1.3c.1-.5-.2-.9-.7-1l-.6-.1c-.3-.1-.7.1-.9.3-.9-.1-2-.1-2.4 1.5-.1.3-.4 1.6 1.3 2 2.6.5 2.6.5 3-1.4" fill="#e0a372"/><path d="m30.1 44c-1.4-.4-2.8.4-3.1 1.7l5.9 1.6c.7.2 1.4-.2 1.6-.9l.3-1.2-4.7-1.2" fill="#d3976e"/><g fill="#3e4347"><path d="m34.7 45.2l-4.6-1.3 2.3-8.1 4.6 1.3z"/><path d="m36.5 39l-4.1-3.2 6.4-4 4.9 2.9z"/></g><g fill="#333"><path d="m13.1 49.5c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .4-1.2 1.1-2.3 2.1-3.3.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2.6 1.2.9 2.5 1 3.8.1 1.4-.1 2.7-.6 4-.5 1.2-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3-1.2.5-2.5.9-3.8.9-1.4 0-2.7-.2-4-.7m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.6-4.4-.7-9.2-5.1-10.8"/><path d="m43 60.4c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .5-1.3 1.2-2.4 2.1-3.4.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2s.9 2.5 1 3.8c.1 1.4-.1 2.7-.6 4-.5 1.3-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3s-2.4.9-3.7.9c-1.4.1-2.8-.1-4.1-.6m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.7-4.4-.7-9.2-5.1-10.8"/></g><path d="m43.7 36.6l3.3-3.6-1-.9-3.2 3.5-18.3-6.6-1.1-2.5-1.2.5 1.3 3 2.8 1-.8 2.3 7.4 15.3 9.7-10.7 3.3 13 1.3-.1-3.5-14.2m-10.5 9.7l-6.7-13.9.9-1 14.5 5.3-8.7 9.6" fill="#ed4c5c"/><ellipse transform="matrix(.3419-.9397.9397.3419-17.2712 77.1916)" cx="46.5" cy="50.9" rx="2" ry="2.1" fill="#333"/><g fill="#94989b"><path transform="matrix(.3421-.9397.9397.3421-24.8566 57.0869)" d="m27.8 44.5h1.1v3.5h-1.1z"/><path transform="matrix(.342-.9397.9397.342-23.359 68.9155)" d="m37 49.4h1.1v3.5h-1.1z"/></g><path fill="#b3b3b3" d="m29.9 46.6l-.2.5 3.1 1.6.2-.5z"/><ellipse transform="matrix(.3419-.9397.9397.3419-24.3947 62.974)" cx="32.8" cy="48.9" rx="2.8" ry="2.9" fill="#333"/><g fill="#b3b3b3"><ellipse transform="matrix(.3415-.9399.9399.3415-24.3909 63.0019)" cx="32.8" cy="48.9" rx=".7" ry=".7"/><path d="m32.7 49.2l3.1 1.6.2-.5-3.1-1.6z"/></g><path d="m36.5 48.6c-1.4-.1-2.6 1-2.6 2.4l6.1.2c.7 0 1.3-.5 1.3-1.2v-1.2l-4.8-.2" fill="#d3976e"/><g fill="#3e4347"><path d="m41.3 48.8l-4.3-.2.4-10.3 4.8.2z"/><path d="m42 40.4l-4.6-2.1 6.3-5.8 3.3 3.5z"/></g><path d="m49.6 31.6l-10.8.2-5.1-9.4c0 0 3.1-1.9 4.3-1.7 8.2 1.4 11.6 10.9 11.6 10.9" fill="#47b892"/><path d="m47 36l-8.6-2.6.3-1.5 10.7-.6c.8 2.6-2.4 4.7-2.4 4.7" fill="#3e4347"/><g fill="#47b892"><path d="m34.8 22.4c-.7-.3-1.5 0-1.8.7l-2 4.7 2.5 1 2-4.7c.4-.6 0-1.4-.7-1.7"/><path d="m33.7 28.5c0-.7-.6-1.3-1.4-1.3l-5.3.1v2.7l5.3-.1c.8 0 1.4-.6 1.4-1.4"/></g><path d="m27.3 28.7l.1-1.3c0-.5-.3-.9-.8-.9l-.6-.1c-.3 0-.7.1-.8.4-.9 0-2 .2-2.1 1.8 0 .3-.1 1.7 1.6 1.8 2.5.2 2.5.2 2.6-1.7" fill="#fed0ac"/><path fill="#ed4c5c" d="m16.7 40.8l-.9-1.1 11.2-9.4.9 1z"/><ellipse transform="matrix(.3413-.94.94.3413-26.7403 41.8999)" cx="16.5" cy="40" rx="1" ry="1" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fd.svg
index 2d70870..561ba2d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aec470" d="M64,64v-7.5c0,0-27.5-7.393-64-42.58V64H64z"/><path fill="#95a55b" d="M64,64v-3.5c0,0-27.334,6.75-64-23.58V64H64z"/><path fill="#d6a57c" d="m38.05 16.287l2.07.014-.01 7.588-5.309-.035z"/><path fill="#f9c19b" d="m38.03 16.13c-.004 3.406-.738 5.127-3.205 5.109l-.029 2.619c2.914.018 4.111-3.584 4.115-7.561l-.881-.167"/><path fill="#d6a57c" d="m39.842 4.459l-11.604 3.549c-1.34 2.418-.43 3.709-.477 4.758-.023.465-.977 1.311-1.48 1.752-1.129.986.758 1.801 1.463 1.66.445 1.045-.279 1.328 1.451 1.186.951-.078 2.236-.941 2.236-.941-4.197 2.592-3.111 3.676-1.383 3.234-.002 2.211 1.379 2.219 4.404 2.24 2.469.016 4.459-2.197 4.463-5.604l3.309-.551-2.382-11.283"/><path fill="#594640" d="m35.447 1.314c8.559.057 9.672 7.281 8.479 12.279-.635 2.66-2.057 4.346-3.717 5.063l-.834-.541-.459-1.822c0 0 1.676-.377 2.17-2.27.229-.867-.645-2.527-1.932-2.607-.9-.055-2.191.6-2.467.799.002-2.205.455-4.482-1.057-5.148-1.244-.547-6.588 1.816-7.393.941-2.159-2.338 2.058-6.729 7.21-6.694"/><g fill="#574137"><path d="m38.693 13.564c-.16-.021-.318 0-.457.057.074-.154.162-.305.264-.457.125-.186.275-.359.42-.566-.48.125-.914.471-1.129.957-.213.494-.131 1.061.135 1.475.041-.25.047-.482.084-.697.027-.139.061-.27.1-.396.064.004.125.006.184.012.123.016.23.018.338.037.109.012.215.041.338.063s.246.063.408.084c-.089-.299-.368-.518-.685-.569"/><path d="m30.57 12.404c0 .705-.412 1.275-.922 1.271-.508-.002-.918-.578-.918-1.283s.414-1.275.922-1.271.92.578.918 1.283"/><path d="m31.432 16.422c0 0-1.369 1.949-1.717 2.223-.74.58-.992.193-.629-.297.373-.506 2.346-1.926 2.346-1.926"/></g><g fill="#3e4347"><path d="m38.732 18.564l-1.372.139-2.13-9.03 1.375-.139z"/><path d="m38.41 18.82l-1.19-.66 4.389-5 1.192.66z"/><path transform="matrix(.986.167-.167.986 3.834-6.02)" d="m36.818 17.251h1.836v5.067h-1.836z"/></g><path fill="#f15744" d="m45.06 14.943c-.738 1.693-5.729-2.961-9.104-4.436-3.705-1.615-9.998-2.268-9.398-3.643 2.18-4.992 8.09-7.232 13.199-5 5.11 2.234 7.485 8.089 5.303 13.08"/><g fill="#3b946f"><path d="m35.25 22.713c-.688-.4-1.572-.186-1.977.479l-2.756 4.576 2.488 1.447 2.756-4.574c.407-.664.177-1.528-.511-1.928"/><path d="m33.1 28.846c.094-.766-.473-1.447-1.264-1.545l-5.57-.703-.344 2.781 5.566.705c.795.098 1.52-.469 1.612-1.238"/></g><path fill="#b58360" d="m26.455 28.1l.299-1.338c.105-.479-.207-.955-.697-1.061l-.668-.148c-.352-.078-.703.055-.91.313-.904-.137-2.135-.08-2.49 1.523-.059.264-.387 1.729 1.395 2.121 2.626.578 2.626.578 3.071-1.41"/><path fill="#d3976e" d="m30.547 45.05c-1.43-.398-2.904.4-3.293 1.783l6.15 1.715c.715.197 1.451-.201 1.646-.895l.352-1.252-4.855-1.351"/><g fill="#3e4347"><path d="m35.402 46.4l-4.884-1.36 2.396-8.552 4.887 1.364z"/><path d="m37.25 39.805l-4.336-3.317 6.748-4.178 5.197 3.05z"/></g><g fill="#333"><path d="m12.652 50.887c-1.371-.5-2.605-1.246-3.67-2.223-1.025-.941-1.852-2.055-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.086-1.42.121-2.822.609-4.166.49-1.344 1.232-2.549 2.211-3.584.941-1 2.063-1.797 3.326-2.371 1.266-.574 2.615-.896 4.01-.957 1.443-.064 2.869.156 4.24.654 1.371.5 2.605 1.248 3.67 2.225 1.027.941 1.854 2.053 2.453 3.309.6 1.252.945 2.584 1.025 3.955.084 1.42-.121 2.822-.611 4.166-.488 1.344-1.232 2.549-2.209 3.584-.943.998-2.063 1.797-3.328 2.371s-2.613.896-4.01.957c-1.443.064-2.869-.158-4.24-.656m6.619-18.19c-4.633-1.688-9.746.635-11.398 5.172-1.652 4.541.773 9.605 5.406 11.291s9.746-.635 11.398-5.174-.773-9.603-5.406-11.289"/><path d="m44.1 62.33c-1.371-.498-2.605-1.246-3.67-2.221-1.025-.941-1.852-2.057-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.084-1.422.121-2.824.609-4.166.488-1.344 1.232-2.551 2.211-3.584.941-1 2.063-1.797 3.328-2.371 1.266-.576 2.613-.896 4-.959 1.443-.063 2.869.156 4.24.656 1.373.5 2.607 1.248 3.67 2.223 1.029.943 1.854 2.055 2.453 3.309s.945 2.586 1.025 3.957c.084 1.42-.121 2.82-.611 4.164-.488 1.344-1.232 2.551-2.209 3.584-.943 1-2.063 1.799-3.328 2.373s-2.613.895-4.01.957c-1.442.063-2.869-.158-4.24-.658m6.619-18.19c-4.633-1.686-9.746.635-11.398 5.174s.773 9.604 5.406 11.289c4.633 1.688 9.746-.633 11.398-5.172s-.773-9.603-5.406-11.291"/></g><path fill="#ed4c5c" d="m44.826 37.37l3.471-3.836-1.027-.904-3.361 3.715-19.277-7.02-1.158-2.641-1.256.52 1.395 3.182 2.936 1.07-.848 2.455 7.738 16.04 10.15-11.217 3.457 13.697 1.361-.113-3.581-14.953m-11.05 10.166l-7.02-14.572.986-1.07 15.189 5.529-9.152 10.113"/><ellipse transform="matrix(-.9398-.3419.3419-.9398 74.67 117.92)" fill="#333" cx="47.726" cy="52.38" rx="2.163" ry="2.119"/><g fill="#94989b"><path transform="matrix(.9396.3422-.3422.9396 17.989-6.946)" d="m26.828 46.931h3.704v1.154h-3.704z"/><path transform="matrix(.9397.342-.342.9397 20.301-9.939)" d="m36.478 52.02h3.706v1.155h-3.706z"/></g><path fill="#b3b3b3" d="m30.336 47.811l-.196.529 3.264 1.71.192-.53z"/><ellipse transform="matrix(.9397.3419-.3419.9397 19.19-8.367)" fill="#333" cx="33.33" cy="50.25" rx="3.036" ry="2.975"/><g fill="#b3b3b3"><ellipse transform="matrix(.94.3412-.3412.94 19.15-8.357)" cx="33.33" cy="50.25" rx=".758" ry=".743"/><path d="m33.23 50.52l3.264 1.71.192-.531-3.26-1.711z"/></g><path fill="#d3976e" d="m37.27 49.928c-1.48-.057-2.719 1.063-2.764 2.502l6.369.25c.738.027 1.357-.531 1.379-1.254l.043-1.301-5.03-.197"/><g fill="#3e4347"><path d="m42.3 50.13l-4.523-.183.413-10.867 5.06.19z"/><path d="m43.08 41.28l-4.89-2.2 6.669-6.04 3.461 3.616z"/></g><path fill="#47b892" d="m50.988 32.07l-11.326.242-5.334-9.82c0 0 3.293-2.029 4.502-1.83 8.58 1.422 12.158 11.408 12.158 11.408"/><path fill="#3e4347" d="m48.32 36.656l-8.986-2.729.324-1.615 11.262-.582c.715 2.809-2.6 4.926-2.6 4.926"/><g fill="#47b892"><path d="m35.502 22.461c-.734-.301-1.578.035-1.881.75l-2.066 4.922 2.668 1.088 2.063-4.922c.306-.715-.046-1.537-.784-1.838"/><path d="m34.26 28.842c-.018-.773-.674-1.369-1.471-1.355l-5.604.078.059 2.807 5.604-.076c.796-.015 1.431-.677 1.412-1.454"/></g><path fill="#d6a57c" d="m27.59 29.03l.104-1.369c.035-.488-.344-.916-.842-.953l-.68-.055c-.361-.027-.688.152-.857.436-.91-.008-2.119.221-2.24 1.859-.021.27-.133 1.768 1.684 1.908 2.679.208 2.679.208 2.831-1.826"/><path fill="#ed4c5c" d="m16.449 41.715l-.943-1.102 11.734-9.902.95 1.105z"/><ellipse transform="matrix(-.94-.3413.3413-.94 17.605 84.961)" fill="#333" cx="16.276" cy="40.932" rx="1.082" ry="1.061"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m37 16.4l2.8-1.5v9.5h-6.2z"/><path d="m32.9 20.8c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#b58360"/><path d="m38.8 4l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#d6a57c"/><path d="m31.1 3.1c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.5-4.3 3.5-5.3" fill="#594640"/><path d="m30.1 12.8c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m37 13.7c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#b58360"/><path d="m30.8 17.2c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><path d="M62,62v-7.1c0,0-25.2-7-60-40.6V62H62z" fill="#aec470"/><path d="M62,62v-3.3c0,0-25.1,6.4-60-22.5V62H62z" fill="#95a55b"/><g fill="#3e4347"><path d="m37.9 18.7l-1.3.2-2-8.6 1.3-.2z"/><path d="m37.6 19l-1.1-.7 4.2-4.7 1.1.6z"/><path transform="matrix(.1669-.986.986.1669 11.186 53.0165)" d="m34.6 19h4.8v1.7h-4.8z"/></g><path d="m43.9 15.3c-.7 1.6-5.5-2.8-8.7-4.2-3.5-1.5-9.5-2.2-9-3.5 2.1-4.8 7.7-6.9 12.6-4.8 5 2.1 7.2 7.7 5.1 12.5" fill="#f15744"/><g fill="#3b946f"><path d="m34.6 22.7c-.7-.4-1.5-.2-1.9.5l-2.6 4.4 2.4 1.4 2.6-4.4c.4-.7.1-1.5-.5-1.9"/><path d="m32.5 28.5c.1-.7-.5-1.4-1.2-1.5l-5.3-.6-.3 2.6 5.3.7c.8.1 1.5-.4 1.5-1.2"/></g><path d="m26.2 27.8l.3-1.3c.1-.5-.2-.9-.7-1l-.6-.1c-.3-.1-.7.1-.9.3-.9-.1-2-.1-2.4 1.5-.1.3-.4 1.6 1.3 2 2.6.5 2.6.5 3-1.4" fill="#b58360"/><path d="m30.1 44c-1.4-.4-2.8.4-3.1 1.7l5.9 1.6c.7.2 1.4-.2 1.6-.9l.3-1.2-4.7-1.2" fill="#d3976e"/><g fill="#3e4347"><path d="m34.7 45.2l-4.6-1.3 2.3-8.1 4.6 1.3z"/><path d="m36.5 39l-4.1-3.2 6.4-4 4.9 2.9z"/></g><g fill="#333"><path d="m13.1 49.5c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .4-1.2 1.1-2.3 2.1-3.3.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2.6 1.2.9 2.5 1 3.8.1 1.4-.1 2.7-.6 4-.5 1.2-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3-1.2.5-2.5.9-3.8.9-1.4 0-2.7-.2-4-.7m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.6-4.4-.7-9.2-5.1-10.8"/><path d="m43 60.4c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .5-1.3 1.2-2.4 2.1-3.4.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2s.9 2.5 1 3.8c.1 1.4-.1 2.7-.6 4-.5 1.3-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3s-2.4.9-3.7.9c-1.4.1-2.8-.1-4.1-.6m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.7-4.4-.7-9.2-5.1-10.8"/></g><path d="m43.7 36.6l3.3-3.6-1-.9-3.2 3.5-18.3-6.6-1.1-2.5-1.2.5 1.3 3 2.8 1-.8 2.3 7.4 15.3 9.7-10.7 3.3 13 1.3-.1-3.5-14.2m-10.5 9.7l-6.7-13.9.9-1 14.5 5.3-8.7 9.6" fill="#ed4c5c"/><ellipse transform="matrix(.3419-.9397.9397.3419-17.2712 77.1916)" cx="46.5" cy="50.9" rx="2" ry="2.1" fill="#333"/><g fill="#94989b"><path transform="matrix(.3421-.9397.9397.3421-24.8566 57.0869)" d="m27.8 44.5h1.1v3.5h-1.1z"/><path transform="matrix(.342-.9397.9397.342-23.359 68.9155)" d="m37 49.4h1.1v3.5h-1.1z"/></g><path fill="#b3b3b3" d="m29.9 46.6l-.2.5 3.1 1.6.2-.5z"/><ellipse transform="matrix(.3419-.9397.9397.3419-24.3947 62.974)" cx="32.8" cy="48.9" rx="2.8" ry="2.9" fill="#333"/><g fill="#b3b3b3"><ellipse transform="matrix(.3415-.9399.9399.3415-24.3909 63.0019)" cx="32.8" cy="48.9" rx=".7" ry=".7"/><path d="m32.7 49.2l3.1 1.6.2-.5-3.1-1.6z"/></g><path d="m36.5 48.6c-1.4-.1-2.6 1-2.6 2.4l6.1.2c.7 0 1.3-.5 1.3-1.2v-1.2l-4.8-.2" fill="#d3976e"/><g fill="#3e4347"><path d="m41.3 48.8l-4.3-.2.4-10.3 4.8.2z"/><path d="m42 40.4l-4.6-2.1 6.3-5.8 3.3 3.5z"/></g><path d="m49.6 31.6l-10.8.2-5.1-9.4c0 0 3.1-1.9 4.3-1.7 8.2 1.4 11.6 10.9 11.6 10.9" fill="#47b892"/><path d="m47 36l-8.6-2.6.3-1.5 10.7-.6c.8 2.6-2.4 4.7-2.4 4.7" fill="#3e4347"/><g fill="#47b892"><path d="m34.8 22.4c-.7-.3-1.5 0-1.8.7l-2 4.7 2.5 1 2-4.7c.4-.6 0-1.4-.7-1.7"/><path d="m33.7 28.5c0-.7-.6-1.3-1.4-1.3l-5.3.1v2.7l5.3-.1c.8 0 1.4-.6 1.4-1.4"/></g><path d="m27.3 28.7l.1-1.3c0-.5-.3-.9-.8-.9l-.6-.1c-.3 0-.7.1-.8.4-.9 0-2 .2-2.1 1.8 0 .3-.1 1.7 1.6 1.8 2.5.2 2.5.2 2.6-1.7" fill="#d6a57c"/><path fill="#ed4c5c" d="m16.7 40.8l-.9-1.1 11.2-9.4.9 1z"/><ellipse transform="matrix(.3413-.94.94.3413-26.7403 41.8999)" cx="16.5" cy="40" rx="1" ry="1" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fe.svg
index 17e92a2..a1153c3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aec470" d="M64,64v-7.5c0,0-27.5-7.393-64-42.58V64H64z"/><path fill="#95a55b" d="M64,64v-3.5c0,0-27.334,6.75-64-23.58V64H64z"/><path fill="#b47d56" d="m38.05 16.287l2.07.014-.01 7.588-5.309-.035z"/><path fill="#f9c19b" d="m38.03 16.13c-.004 3.406-.738 5.127-3.205 5.109l-.029 2.619c2.914.018 4.111-3.584 4.115-7.561l-.881-.167"/><path fill="#b47d56" d="m39.842 4.459l-11.604 3.549c-1.34 2.418-.43 3.709-.477 4.758-.023.465-.977 1.311-1.48 1.752-1.129.986.758 1.801 1.463 1.66.445 1.045-.279 1.328 1.451 1.186.951-.078 2.236-.941 2.236-.941-4.197 2.592-3.111 3.676-1.383 3.234-.002 2.211 1.379 2.219 4.404 2.24 2.469.016 4.459-2.197 4.463-5.604l3.309-.551-2.382-11.283"/><path fill="#231f20" d="m35.447 1.314c8.559.057 9.672 7.281 8.479 12.279-.635 2.66-2.057 4.346-3.717 5.063l-.834-.541-.459-1.822c0 0 1.676-.377 2.17-2.27.229-.867-.645-2.527-1.932-2.607-.9-.055-2.191.6-2.467.799.002-2.205.455-4.482-1.057-5.148-1.244-.547-6.588 1.816-7.393.941-2.159-2.338 2.058-6.729 7.21-6.694"/><g fill="#47352d"><path d="m38.693 13.564c-.16-.021-.318 0-.457.057.074-.154.162-.305.264-.457.125-.186.275-.359.42-.566-.48.125-.914.471-1.129.957-.213.494-.131 1.061.135 1.475.041-.25.047-.482.084-.697.027-.139.061-.27.1-.396.064.004.125.006.184.012.123.016.23.018.338.037.109.012.215.041.338.063s.246.063.408.084c-.089-.299-.368-.518-.685-.569"/><path d="m30.57 12.404c0 .705-.412 1.275-.922 1.271-.508-.002-.918-.578-.918-1.283s.414-1.275.922-1.271.92.578.918 1.283"/><path d="m31.432 16.422c0 0-1.369 1.949-1.717 2.223-.74.58-.992.193-.629-.297.373-.506 2.346-1.926 2.346-1.926"/></g><g fill="#3e4347"><path d="m38.732 18.564l-1.372.139-2.13-9.03 1.375-.139z"/><path d="m38.41 18.82l-1.19-.66 4.389-5 1.192.66z"/><path transform="matrix(.986.167-.167.986 3.834-6.02)" d="m36.818 17.251h1.836v5.067h-1.836z"/></g><path fill="#f15744" d="m45.06 14.943c-.738 1.693-5.729-2.961-9.104-4.436-3.705-1.615-9.998-2.268-9.398-3.643 2.18-4.992 8.09-7.232 13.199-5 5.11 2.234 7.485 8.089 5.303 13.08"/><g fill="#3b946f"><path d="m35.25 22.713c-.688-.4-1.572-.186-1.977.479l-2.756 4.576 2.488 1.447 2.756-4.574c.407-.664.177-1.528-.511-1.928"/><path d="m33.1 28.846c.094-.766-.473-1.447-1.264-1.545l-5.57-.703-.344 2.781 5.566.705c.795.098 1.52-.469 1.612-1.238"/></g><path fill="#935e3e" d="m26.455 28.1l.299-1.338c.105-.479-.207-.955-.697-1.061l-.668-.148c-.352-.078-.703.055-.91.313-.904-.137-2.135-.08-2.49 1.523-.059.264-.387 1.729 1.395 2.121 2.626.578 2.626.578 3.071-1.41"/><path fill="#d3976e" d="m30.547 45.05c-1.43-.398-2.904.4-3.293 1.783l6.15 1.715c.715.197 1.451-.201 1.646-.895l.352-1.252-4.855-1.351"/><g fill="#3e4347"><path d="m35.402 46.4l-4.884-1.36 2.396-8.552 4.887 1.364z"/><path d="m37.25 39.805l-4.336-3.317 6.748-4.178 5.197 3.05z"/></g><g fill="#333"><path d="m12.652 50.887c-1.371-.5-2.605-1.246-3.67-2.223-1.025-.941-1.852-2.055-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.086-1.42.121-2.822.609-4.166.49-1.344 1.232-2.549 2.211-3.584.941-1 2.063-1.797 3.326-2.371 1.266-.574 2.615-.896 4.01-.957 1.443-.064 2.869.156 4.24.654 1.371.5 2.605 1.248 3.67 2.225 1.027.941 1.854 2.053 2.453 3.309.6 1.252.945 2.584 1.025 3.955.084 1.42-.121 2.822-.611 4.166-.488 1.344-1.232 2.549-2.209 3.584-.943.998-2.063 1.797-3.328 2.371s-2.613.896-4.01.957c-1.443.064-2.869-.158-4.24-.656m6.619-18.19c-4.633-1.688-9.746.635-11.398 5.172-1.652 4.541.773 9.605 5.406 11.291s9.746-.635 11.398-5.174-.773-9.603-5.406-11.289"/><path d="m44.1 62.33c-1.371-.498-2.605-1.246-3.67-2.221-1.025-.941-1.852-2.057-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.084-1.422.121-2.824.609-4.166.488-1.344 1.232-2.551 2.211-3.584.941-1 2.063-1.797 3.328-2.371 1.266-.576 2.613-.896 4-.959 1.443-.063 2.869.156 4.24.656 1.373.5 2.607 1.248 3.67 2.223 1.029.943 1.854 2.055 2.453 3.309s.945 2.586 1.025 3.957c.084 1.42-.121 2.82-.611 4.164-.488 1.344-1.232 2.551-2.209 3.584-.943 1-2.063 1.799-3.328 2.373s-2.613.895-4.01.957c-1.442.063-2.869-.158-4.24-.658m6.619-18.19c-4.633-1.686-9.746.635-11.398 5.174s.773 9.604 5.406 11.289c4.633 1.688 9.746-.633 11.398-5.172s-.773-9.603-5.406-11.291"/></g><path fill="#ed4c5c" d="m44.826 37.37l3.471-3.836-1.027-.904-3.361 3.715-19.277-7.02-1.158-2.641-1.256.52 1.395 3.182 2.936 1.07-.848 2.455 7.738 16.04 10.15-11.217 3.457 13.697 1.361-.113-3.581-14.953m-11.05 10.166l-7.02-14.572.986-1.07 15.189 5.529-9.152 10.113"/><ellipse transform="matrix(-.9398-.3419.3419-.9398 74.67 117.92)" fill="#333" cx="47.726" cy="52.38" rx="2.163" ry="2.119"/><g fill="#94989b"><path transform="matrix(.9396.3422-.3422.9396 17.989-6.946)" d="m26.828 46.931h3.704v1.154h-3.704z"/><path transform="matrix(.9397.342-.342.9397 20.301-9.939)" d="m36.478 52.02h3.706v1.155h-3.706z"/></g><path fill="#b3b3b3" d="m30.336 47.811l-.196.529 3.264 1.71.192-.53z"/><ellipse transform="matrix(.9397.3419-.3419.9397 19.19-8.367)" fill="#333" cx="33.33" cy="50.25" rx="3.036" ry="2.975"/><g fill="#b3b3b3"><ellipse transform="matrix(.94.3412-.3412.94 19.15-8.357)" cx="33.33" cy="50.25" rx=".758" ry=".743"/><path d="m33.23 50.52l3.264 1.71.192-.531-3.26-1.711z"/></g><path fill="#d3976e" d="m37.27 49.928c-1.48-.057-2.719 1.063-2.764 2.502l6.369.25c.738.027 1.357-.531 1.379-1.254l.043-1.301-5.03-.197"/><g fill="#3e4347"><path d="m42.3 50.13l-4.523-.183.413-10.867 5.06.19z"/><path d="m43.08 41.28l-4.89-2.2 6.669-6.04 3.461 3.616z"/></g><path fill="#47b892" d="m50.988 32.07l-11.326.242-5.334-9.82c0 0 3.293-2.029 4.502-1.83 8.58 1.422 12.158 11.408 12.158 11.408"/><path fill="#3e4347" d="m48.32 36.656l-8.986-2.729.324-1.615 11.262-.582c.715 2.809-2.6 4.926-2.6 4.926"/><g fill="#47b892"><path d="m35.502 22.461c-.734-.301-1.578.035-1.881.75l-2.066 4.922 2.668 1.088 2.063-4.922c.306-.715-.046-1.537-.784-1.838"/><path d="m34.26 28.842c-.018-.773-.674-1.369-1.471-1.355l-5.604.078.059 2.807 5.604-.076c.796-.015 1.431-.677 1.412-1.454"/></g><path fill="#b47d56" d="m27.59 29.03l.104-1.369c.035-.488-.344-.916-.842-.953l-.68-.055c-.361-.027-.688.152-.857.436-.91-.008-2.119.221-2.24 1.859-.021.27-.133 1.768 1.684 1.908 2.679.208 2.679.208 2.831-1.826"/><path fill="#ed4c5c" d="m16.449 41.715l-.943-1.102 11.734-9.902.95 1.105z"/><ellipse transform="matrix(-.94-.3413.3413-.94 17.605 84.961)" fill="#333" cx="16.276" cy="40.932" rx="1.082" ry="1.061"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m37 16.4l2.8-1.5v9.5h-6.2z"/><path d="m32.9 20.8c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#935e3e"/><path d="m38.8 4l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#b47d56"/><path d="m31.1 3.1c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.5-4.3 3.5-5.3" fill="#231f20"/><path d="m30.1 12.8c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m37 13.7c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#935e3e"/><path d="m30.8 17.2c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><path d="M62,62v-7.1c0,0-25.2-7-60-40.6V62H62z" fill="#aec470"/><path d="M62,62v-3.3c0,0-25.1,6.4-60-22.5V62H62z" fill="#95a55b"/><g fill="#3e4347"><path d="m37.9 18.7l-1.3.2-2-8.6 1.3-.2z"/><path d="m37.6 19l-1.1-.7 4.2-4.7 1.1.6z"/><path transform="matrix(.1669-.986.986.1669 11.186 53.0165)" d="m34.6 19h4.8v1.7h-4.8z"/></g><path d="m43.9 15.3c-.7 1.6-5.5-2.8-8.7-4.2-3.5-1.5-9.5-2.2-9-3.5 2.1-4.8 7.7-6.9 12.6-4.8 5 2.1 7.2 7.7 5.1 12.5" fill="#f15744"/><g fill="#3b946f"><path d="m34.6 22.7c-.7-.4-1.5-.2-1.9.5l-2.6 4.4 2.4 1.4 2.6-4.4c.4-.7.1-1.5-.5-1.9"/><path d="m32.5 28.5c.1-.7-.5-1.4-1.2-1.5l-5.3-.6-.3 2.6 5.3.7c.8.1 1.5-.4 1.5-1.2"/></g><path d="m26.2 27.8l.3-1.3c.1-.5-.2-.9-.7-1l-.6-.1c-.3-.1-.7.1-.9.3-.9-.1-2-.1-2.4 1.5-.1.3-.4 1.6 1.3 2 2.6.5 2.6.5 3-1.4" fill="#935e3e"/><path d="m30.1 44c-1.4-.4-2.8.4-3.1 1.7l5.9 1.6c.7.2 1.4-.2 1.6-.9l.3-1.2-4.7-1.2" fill="#d3976e"/><g fill="#3e4347"><path d="m34.7 45.2l-4.6-1.3 2.3-8.1 4.6 1.3z"/><path d="m36.5 39l-4.1-3.2 6.4-4 4.9 2.9z"/></g><g fill="#333"><path d="m13.1 49.5c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .4-1.2 1.1-2.3 2.1-3.3.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2.6 1.2.9 2.5 1 3.8.1 1.4-.1 2.7-.6 4-.5 1.2-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3-1.2.5-2.5.9-3.8.9-1.4 0-2.7-.2-4-.7m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.6-4.4-.7-9.2-5.1-10.8"/><path d="m43 60.4c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .5-1.3 1.2-2.4 2.1-3.4.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2s.9 2.5 1 3.8c.1 1.4-.1 2.7-.6 4-.5 1.3-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3s-2.4.9-3.7.9c-1.4.1-2.8-.1-4.1-.6m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.7-4.4-.7-9.2-5.1-10.8"/></g><path d="m43.7 36.6l3.3-3.6-1-.9-3.2 3.5-18.3-6.6-1.1-2.5-1.2.5 1.3 3 2.8 1-.8 2.3 7.4 15.3 9.7-10.7 3.3 13 1.3-.1-3.5-14.2m-10.5 9.7l-6.7-13.9.9-1 14.5 5.3-8.7 9.6" fill="#ed4c5c"/><ellipse transform="matrix(.3419-.9397.9397.3419-17.2712 77.1916)" cx="46.5" cy="50.9" rx="2" ry="2.1" fill="#333"/><g fill="#94989b"><path transform="matrix(.3421-.9397.9397.3421-24.8566 57.0869)" d="m27.8 44.5h1.1v3.5h-1.1z"/><path transform="matrix(.342-.9397.9397.342-23.359 68.9155)" d="m37 49.4h1.1v3.5h-1.1z"/></g><path fill="#b3b3b3" d="m29.9 46.6l-.2.5 3.1 1.6.2-.5z"/><ellipse transform="matrix(.3419-.9397.9397.3419-24.3947 62.974)" cx="32.8" cy="48.9" rx="2.8" ry="2.9" fill="#333"/><g fill="#b3b3b3"><ellipse transform="matrix(.3415-.9399.9399.3415-24.3909 63.0019)" cx="32.8" cy="48.9" rx=".7" ry=".7"/><path d="m32.7 49.2l3.1 1.6.2-.5-3.1-1.6z"/></g><path d="m36.5 48.6c-1.4-.1-2.6 1-2.6 2.4l6.1.2c.7 0 1.3-.5 1.3-1.2v-1.2l-4.8-.2" fill="#d3976e"/><g fill="#3e4347"><path d="m41.3 48.8l-4.3-.2.4-10.3 4.8.2z"/><path d="m42 40.4l-4.6-2.1 6.3-5.8 3.3 3.5z"/></g><path d="m49.6 31.6l-10.8.2-5.1-9.4c0 0 3.1-1.9 4.3-1.7 8.2 1.4 11.6 10.9 11.6 10.9" fill="#47b892"/><path d="m47 36l-8.6-2.6.3-1.5 10.7-.6c.8 2.6-2.4 4.7-2.4 4.7" fill="#3e4347"/><g fill="#47b892"><path d="m34.8 22.4c-.7-.3-1.5 0-1.8.7l-2 4.7 2.5 1 2-4.7c.4-.6 0-1.4-.7-1.7"/><path d="m33.7 28.5c0-.7-.6-1.3-1.4-1.3l-5.3.1v2.7l5.3-.1c.8 0 1.4-.6 1.4-1.4"/></g><path d="m27.3 28.7l.1-1.3c0-.5-.3-.9-.8-.9l-.6-.1c-.3 0-.7.1-.8.4-.9 0-2 .2-2.1 1.8 0 .3-.1 1.7 1.6 1.8 2.5.2 2.5.2 2.6-1.7" fill="#b47d56"/><path fill="#ed4c5c" d="m16.7 40.8l-.9-1.1 11.2-9.4.9 1z"/><ellipse transform="matrix(.3413-.94.94.3413-26.7403 41.8999)" cx="16.5" cy="40" rx="1" ry="1" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3ff.svg
index 095782b..ca9993a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b5-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aec470" d="M64,64v-7.5c0,0-27.5-7.393-64-42.58V64H64z"/><path fill="#95a55b" d="M64,64v-3.5c0,0-27.334,6.75-64-23.58V64H64z"/><path fill="#8a6859" d="m38.05 16.287l2.07.014-.01 7.588-5.309-.035z"/><path fill="#f9c19b" d="m38.03 16.13c-.004 3.406-.738 5.127-3.205 5.109l-.029 2.619c2.914.018 4.111-3.584 4.115-7.561l-.881-.167"/><path fill="#8a6859" d="m39.842 4.459l-11.604 3.549c-1.34 2.418-.43 3.709-.477 4.758-.023.465-.977 1.311-1.48 1.752-1.129.986.758 1.801 1.463 1.66.445 1.045-.279 1.328 1.451 1.186.951-.078 2.236-.941 2.236-.941-4.197 2.592-3.111 3.676-1.383 3.234-.002 2.211 1.379 2.219 4.404 2.24 2.469.016 4.459-2.197 4.463-5.604l3.309-.551-2.382-11.283"/><path fill="#231f20" d="m35.447 1.314c8.559.057 9.672 7.281 8.479 12.279-.635 2.66-2.057 4.346-3.717 5.063l-.834-.541-.459-1.822c0 0 1.676-.377 2.17-2.27.229-.867-.645-2.527-1.932-2.607-.9-.055-2.191.6-2.467.799.002-2.205.455-4.482-1.057-5.148-1.244-.547-6.588 1.816-7.393.941-2.159-2.338 2.058-6.729 7.21-6.694"/><g fill="#47352d"><path d="m38.693 13.564c-.16-.021-.318 0-.457.057.074-.154.162-.305.264-.457.125-.186.275-.359.42-.566-.48.125-.914.471-1.129.957-.213.494-.131 1.061.135 1.475.041-.25.047-.482.084-.697.027-.139.061-.27.1-.396.064.004.125.006.184.012.123.016.23.018.338.037.109.012.215.041.338.063s.246.063.408.084c-.089-.299-.368-.518-.685-.569"/><path d="m30.57 12.404c0 .705-.412 1.275-.922 1.271-.508-.002-.918-.578-.918-1.283s.414-1.275.922-1.271.92.578.918 1.283"/><path d="m31.432 16.422c0 0-1.369 1.949-1.717 2.223-.74.58-.992.193-.629-.297.373-.506 2.346-1.926 2.346-1.926"/></g><g fill="#3e4347"><path d="m38.732 18.564l-1.372.139-2.13-9.03 1.375-.139z"/><path d="m38.41 18.82l-1.19-.66 4.389-5 1.192.66z"/><path transform="matrix(.986.167-.167.986 3.834-6.02)" d="m36.818 17.251h1.836v5.067h-1.836z"/></g><path fill="#f15744" d="m45.06 14.943c-.738 1.693-5.729-2.961-9.104-4.436-3.705-1.615-9.998-2.268-9.398-3.643 2.18-4.992 8.09-7.232 13.199-5 5.11 2.234 7.485 8.089 5.303 13.08"/><g fill="#3b946f"><path d="m35.25 22.713c-.688-.4-1.572-.186-1.977.479l-2.756 4.576 2.488 1.447 2.756-4.574c.407-.664.177-1.528-.511-1.928"/><path d="m33.1 28.846c.094-.766-.473-1.447-1.264-1.545l-5.57-.703-.344 2.781 5.566.705c.795.098 1.52-.469 1.612-1.238"/></g><path fill="#705041" d="m26.455 28.1l.299-1.338c.105-.479-.207-.955-.697-1.061l-.668-.148c-.352-.078-.703.055-.91.313-.904-.137-2.135-.08-2.49 1.523-.059.264-.387 1.729 1.395 2.121 2.626.578 2.626.578 3.071-1.41"/><path fill="#d3976e" d="m30.547 45.05c-1.43-.398-2.904.4-3.293 1.783l6.15 1.715c.715.197 1.451-.201 1.646-.895l.352-1.252-4.855-1.351"/><g fill="#3e4347"><path d="m35.402 46.4l-4.884-1.36 2.396-8.552 4.887 1.364z"/><path d="m37.25 39.805l-4.336-3.317 6.748-4.178 5.197 3.05z"/></g><g fill="#333"><path d="m12.652 50.887c-1.371-.5-2.605-1.246-3.67-2.223-1.025-.941-1.852-2.055-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.086-1.42.121-2.822.609-4.166.49-1.344 1.232-2.549 2.211-3.584.941-1 2.063-1.797 3.326-2.371 1.266-.574 2.615-.896 4.01-.957 1.443-.064 2.869.156 4.24.654 1.371.5 2.605 1.248 3.67 2.225 1.027.941 1.854 2.053 2.453 3.309.6 1.252.945 2.584 1.025 3.955.084 1.42-.121 2.822-.611 4.166-.488 1.344-1.232 2.549-2.209 3.584-.943.998-2.063 1.797-3.328 2.371s-2.613.896-4.01.957c-1.443.064-2.869-.158-4.24-.656m6.619-18.19c-4.633-1.688-9.746.635-11.398 5.172-1.652 4.541.773 9.605 5.406 11.291s9.746-.635 11.398-5.174-.773-9.603-5.406-11.289"/><path d="m44.1 62.33c-1.371-.498-2.605-1.246-3.67-2.221-1.025-.941-1.852-2.057-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.084-1.422.121-2.824.609-4.166.488-1.344 1.232-2.551 2.211-3.584.941-1 2.063-1.797 3.328-2.371 1.266-.576 2.613-.896 4-.959 1.443-.063 2.869.156 4.24.656 1.373.5 2.607 1.248 3.67 2.223 1.029.943 1.854 2.055 2.453 3.309s.945 2.586 1.025 3.957c.084 1.42-.121 2.82-.611 4.164-.488 1.344-1.232 2.551-2.209 3.584-.943 1-2.063 1.799-3.328 2.373s-2.613.895-4.01.957c-1.442.063-2.869-.158-4.24-.658m6.619-18.19c-4.633-1.686-9.746.635-11.398 5.174s.773 9.604 5.406 11.289c4.633 1.688 9.746-.633 11.398-5.172s-.773-9.603-5.406-11.291"/></g><path fill="#ed4c5c" d="m44.826 37.37l3.471-3.836-1.027-.904-3.361 3.715-19.277-7.02-1.158-2.641-1.256.52 1.395 3.182 2.936 1.07-.848 2.455 7.738 16.04 10.15-11.217 3.457 13.697 1.361-.113-3.581-14.953m-11.05 10.166l-7.02-14.572.986-1.07 15.189 5.529-9.152 10.113"/><ellipse transform="matrix(-.9398-.3419.3419-.9398 74.67 117.92)" fill="#333" cx="47.726" cy="52.38" rx="2.163" ry="2.119"/><g fill="#94989b"><path transform="matrix(.9396.3422-.3422.9396 17.989-6.946)" d="m26.828 46.931h3.704v1.154h-3.704z"/><path transform="matrix(.9397.342-.342.9397 20.301-9.939)" d="m36.478 52.02h3.706v1.155h-3.706z"/></g><path fill="#b3b3b3" d="m30.336 47.811l-.196.529 3.264 1.71.192-.53z"/><ellipse transform="matrix(.9397.3419-.3419.9397 19.19-8.367)" fill="#333" cx="33.33" cy="50.25" rx="3.036" ry="2.975"/><g fill="#b3b3b3"><ellipse transform="matrix(.94.3412-.3412.94 19.15-8.357)" cx="33.33" cy="50.25" rx=".758" ry=".743"/><path d="m33.23 50.52l3.264 1.71.192-.531-3.26-1.711z"/></g><path fill="#d3976e" d="m37.27 49.928c-1.48-.057-2.719 1.063-2.764 2.502l6.369.25c.738.027 1.357-.531 1.379-1.254l.043-1.301-5.03-.197"/><g fill="#3e4347"><path d="m42.3 50.13l-4.523-.183.413-10.867 5.06.19z"/><path d="m43.08 41.28l-4.89-2.2 6.669-6.04 3.461 3.616z"/></g><path fill="#47b892" d="m50.988 32.07l-11.326.242-5.334-9.82c0 0 3.293-2.029 4.502-1.83 8.58 1.422 12.158 11.408 12.158 11.408"/><path fill="#3e4347" d="m48.32 36.656l-8.986-2.729.324-1.615 11.262-.582c.715 2.809-2.6 4.926-2.6 4.926"/><g fill="#47b892"><path d="m35.502 22.461c-.734-.301-1.578.035-1.881.75l-2.066 4.922 2.668 1.088 2.063-4.922c.306-.715-.046-1.537-.784-1.838"/><path d="m34.26 28.842c-.018-.773-.674-1.369-1.471-1.355l-5.604.078.059 2.807 5.604-.076c.796-.015 1.431-.677 1.412-1.454"/></g><path fill="#8a6859" d="m27.59 29.03l.104-1.369c.035-.488-.344-.916-.842-.953l-.68-.055c-.361-.027-.688.152-.857.436-.91-.008-2.119.221-2.24 1.859-.021.27-.133 1.768 1.684 1.908 2.679.208 2.679.208 2.831-1.826"/><path fill="#ed4c5c" d="m16.449 41.715l-.943-1.102 11.734-9.902.95 1.105z"/><ellipse transform="matrix(-.94-.3413.3413-.94 17.605 84.961)" fill="#333" cx="16.276" cy="40.932" rx="1.082" ry="1.061"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m37 16.4l2.8-1.5v9.5h-6.2z"/><path d="m32.9 20.8c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#705041"/><path d="m38.8 4l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#8a6859"/><path d="m31.1 3.1c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.5-4.3 3.5-5.3" fill="#231f20"/><path d="m30.1 12.8c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#574137"/><path d="m37 13.7c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#705041"/><path d="m30.8 17.2c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#574137"/><path d="M62,62v-7.1c0,0-25.2-7-60-40.6V62H62z" fill="#aec470"/><path d="M62,62v-3.3c0,0-25.1,6.4-60-22.5V62H62z" fill="#95a55b"/><g fill="#3e4347"><path d="m37.9 18.7l-1.3.2-2-8.6 1.3-.2z"/><path d="m37.6 19l-1.1-.7 4.2-4.7 1.1.6z"/><path transform="matrix(.1669-.986.986.1669 11.186 53.0165)" d="m34.6 19h4.8v1.7h-4.8z"/></g><path d="m43.9 15.3c-.7 1.6-5.5-2.8-8.7-4.2-3.5-1.5-9.5-2.2-9-3.5 2.1-4.8 7.7-6.9 12.6-4.8 5 2.1 7.2 7.7 5.1 12.5" fill="#f15744"/><g fill="#3b946f"><path d="m34.6 22.7c-.7-.4-1.5-.2-1.9.5l-2.6 4.4 2.4 1.4 2.6-4.4c.4-.7.1-1.5-.5-1.9"/><path d="m32.5 28.5c.1-.7-.5-1.4-1.2-1.5l-5.3-.6-.3 2.6 5.3.7c.8.1 1.5-.4 1.5-1.2"/></g><path d="m26.2 27.8l.3-1.3c.1-.5-.2-.9-.7-1l-.6-.1c-.3-.1-.7.1-.9.3-.9-.1-2-.1-2.4 1.5-.1.3-.4 1.6 1.3 2 2.6.5 2.6.5 3-1.4" fill="#705041"/><path d="m30.1 44c-1.4-.4-2.8.4-3.1 1.7l5.9 1.6c.7.2 1.4-.2 1.6-.9l.3-1.2-4.7-1.2" fill="#d3976e"/><g fill="#3e4347"><path d="m34.7 45.2l-4.6-1.3 2.3-8.1 4.6 1.3z"/><path d="m36.5 39l-4.1-3.2 6.4-4 4.9 2.9z"/></g><g fill="#333"><path d="m13.1 49.5c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .4-1.2 1.1-2.3 2.1-3.3.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2.6 1.2.9 2.5 1 3.8.1 1.4-.1 2.7-.6 4-.5 1.2-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3-1.2.5-2.5.9-3.8.9-1.4 0-2.7-.2-4-.7m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.6-4.4-.7-9.2-5.1-10.8"/><path d="m43 60.4c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .5-1.3 1.2-2.4 2.1-3.4.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2s.9 2.5 1 3.8c.1 1.4-.1 2.7-.6 4-.5 1.3-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3s-2.4.9-3.7.9c-1.4.1-2.8-.1-4.1-.6m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.7-4.4-.7-9.2-5.1-10.8"/></g><path d="m43.7 36.6l3.3-3.6-1-.9-3.2 3.5-18.3-6.6-1.1-2.5-1.2.5 1.3 3 2.8 1-.8 2.3 7.4 15.3 9.7-10.7 3.3 13 1.3-.1-3.5-14.2m-10.5 9.7l-6.7-13.9.9-1 14.5 5.3-8.7 9.6" fill="#ed4c5c"/><ellipse transform="matrix(.3419-.9397.9397.3419-17.2712 77.1916)" cx="46.5" cy="50.9" rx="2" ry="2.1" fill="#333"/><g fill="#94989b"><path transform="matrix(.3421-.9397.9397.3421-24.8566 57.0869)" d="m27.8 44.5h1.1v3.5h-1.1z"/><path transform="matrix(.342-.9397.9397.342-23.359 68.9155)" d="m37 49.4h1.1v3.5h-1.1z"/></g><path fill="#b3b3b3" d="m29.9 46.6l-.2.5 3.1 1.6.2-.5z"/><ellipse transform="matrix(.3419-.9397.9397.3419-24.3947 62.974)" cx="32.8" cy="48.9" rx="2.8" ry="2.9" fill="#333"/><g fill="#b3b3b3"><ellipse transform="matrix(.3415-.9399.9399.3415-24.3909 63.0019)" cx="32.8" cy="48.9" rx=".7" ry=".7"/><path d="m32.7 49.2l3.1 1.6.2-.5-3.1-1.6z"/></g><path d="m36.5 48.6c-1.4-.1-2.6 1-2.6 2.4l6.1.2c.7 0 1.3-.5 1.3-1.2v-1.2l-4.8-.2" fill="#d3976e"/><g fill="#3e4347"><path d="m41.3 48.8l-4.3-.2.4-10.3 4.8.2z"/><path d="m42 40.4l-4.6-2.1 6.3-5.8 3.3 3.5z"/></g><path d="m49.6 31.6l-10.8.2-5.1-9.4c0 0 3.1-1.9 4.3-1.7 8.2 1.4 11.6 10.9 11.6 10.9" fill="#47b892"/><path d="m47 36l-8.6-2.6.3-1.5 10.7-.6c.8 2.6-2.4 4.7-2.4 4.7" fill="#3e4347"/><g fill="#47b892"><path d="m34.8 22.4c-.7-.3-1.5 0-1.8.7l-2 4.7 2.5 1 2-4.7c.4-.6 0-1.4-.7-1.7"/><path d="m33.7 28.5c0-.7-.6-1.3-1.4-1.3l-5.3.1v2.7l5.3-.1c.8 0 1.4-.6 1.4-1.4"/></g><path d="m27.3 28.7l.1-1.3c0-.5-.3-.9-.8-.9l-.6-.1c-.3 0-.7.1-.8.4-.9 0-2 .2-2.1 1.8 0 .3-.1 1.7 1.6 1.8 2.5.2 2.5.2 2.6-1.7" fill="#8a6859"/><path fill="#ed4c5c" d="m16.7 40.8l-.9-1.1 11.2-9.4.9 1z"/><ellipse transform="matrix(.3413-.94.94.3413-26.7403 41.8999)" cx="16.5" cy="40" rx="1" ry="1" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b5.svg
index d37990f..0d5eb71 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#aec470" d="M64,64v-7.5c0,0-27.5-7.393-64-42.58V64H64z"/><path fill="#95a55b" d="M64,64v-3.5c0,0-27.334,6.75-64-23.58V64H64z"/><path fill="#ffdd67" d="m38.05 16.287l2.07.014-.01 7.588-5.309-.035z"/><path fill="#f9c19b" d="m38.03 16.13c-.004 3.406-.738 5.127-3.205 5.109l-.029 2.619c2.914.018 4.111-3.584 4.115-7.561l-.881-.167"/><path fill="#ffdd67" d="m39.842 4.459l-11.604 3.549c-1.34 2.418-.43 3.709-.477 4.758-.023.465-.977 1.311-1.48 1.752-1.129.986.758 1.801 1.463 1.66.445 1.045-.279 1.328 1.451 1.186.951-.078 2.236-.941 2.236-.941-4.197 2.592-3.111 3.676-1.383 3.234-.002 2.211 1.379 2.219 4.404 2.24 2.469.016 4.459-2.197 4.463-5.604l3.309-.551-2.382-11.283"/><path fill="#231f20" d="m35.447 1.314c8.559.057 9.672 7.281 8.479 12.279-.635 2.66-2.057 4.346-3.717 5.063l-.834-.541-.459-1.822c0 0 1.676-.377 2.17-2.27.229-.867-.645-2.527-1.932-2.607-.9-.055-2.191.6-2.467.799.002-2.205.455-4.482-1.057-5.148-1.244-.547-6.588 1.816-7.393.941-2.159-2.338 2.058-6.729 7.21-6.694"/><g fill="#574137"><path d="m38.693 13.564c-.16-.021-.318 0-.457.057.074-.154.162-.305.264-.457.125-.186.275-.359.42-.566-.48.125-.914.471-1.129.957-.213.494-.131 1.061.135 1.475.041-.25.047-.482.084-.697.027-.139.061-.27.1-.396.064.004.125.006.184.012.123.016.23.018.338.037.109.012.215.041.338.063s.246.063.408.084c-.089-.299-.368-.518-.685-.569"/><path d="m30.57 12.404c0 .705-.412 1.275-.922 1.271-.508-.002-.918-.578-.918-1.283s.414-1.275.922-1.271.92.578.918 1.283"/><path d="m31.432 16.422c0 0-1.369 1.949-1.717 2.223-.74.58-.992.193-.629-.297.373-.506 2.346-1.926 2.346-1.926"/></g><g fill="#3e4347"><path d="m38.732 18.564l-1.372.139-2.13-9.03 1.375-.139z"/><path d="m38.41 18.82l-1.19-.66 4.389-5 1.192.66z"/><path transform="matrix(.986.167-.167.986 3.834-6.02)" d="m36.818 17.251h1.836v5.067h-1.836z"/></g><path fill="#f15744" d="m45.06 14.943c-.738 1.693-5.729-2.961-9.104-4.436-3.705-1.615-9.998-2.268-9.398-3.643 2.18-4.992 8.09-7.232 13.199-5 5.11 2.234 7.485 8.089 5.303 13.08"/><g fill="#3b946f"><path d="m35.25 22.713c-.688-.4-1.572-.186-1.977.479l-2.756 4.576 2.488 1.447 2.756-4.574c.407-.664.177-1.528-.511-1.928"/><path d="m33.1 28.846c.094-.766-.473-1.447-1.264-1.545l-5.57-.703-.344 2.781 5.566.705c.795.098 1.52-.469 1.612-1.238"/></g><path fill="#eba352" d="m26.455 28.1l.299-1.338c.105-.479-.207-.955-.697-1.061l-.668-.148c-.352-.078-.703.055-.91.313-.904-.137-2.135-.08-2.49 1.523-.059.264-.387 1.729 1.395 2.121 2.626.578 2.626.578 3.071-1.41"/><path fill="#d3976e" d="m30.547 45.05c-1.43-.398-2.904.4-3.293 1.783l6.15 1.715c.715.197 1.451-.201 1.646-.895l.352-1.252-4.855-1.351"/><g fill="#3e4347"><path d="m35.402 46.4l-4.884-1.36 2.396-8.552 4.887 1.364z"/><path d="m37.25 39.805l-4.336-3.317 6.748-4.178 5.197 3.05z"/></g><g fill="#333"><path d="m12.652 50.887c-1.371-.5-2.605-1.246-3.67-2.223-1.025-.941-1.852-2.055-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.086-1.42.121-2.822.609-4.166.49-1.344 1.232-2.549 2.211-3.584.941-1 2.063-1.797 3.326-2.371 1.266-.574 2.615-.896 4.01-.957 1.443-.064 2.869.156 4.24.654 1.371.5 2.605 1.248 3.67 2.225 1.027.941 1.854 2.053 2.453 3.309.6 1.252.945 2.584 1.025 3.955.084 1.42-.121 2.822-.611 4.166-.488 1.344-1.232 2.549-2.209 3.584-.943.998-2.063 1.797-3.328 2.371s-2.613.896-4.01.957c-1.443.064-2.869-.158-4.24-.656m6.619-18.19c-4.633-1.688-9.746.635-11.398 5.172-1.652 4.541.773 9.605 5.406 11.291s9.746-.635 11.398-5.174-.773-9.603-5.406-11.289"/><path d="m44.1 62.33c-1.371-.498-2.605-1.246-3.67-2.221-1.025-.941-1.852-2.057-2.453-3.309-.6-1.252-.945-2.584-1.023-3.955-.084-1.422.121-2.824.609-4.166.488-1.344 1.232-2.551 2.211-3.584.941-1 2.063-1.797 3.328-2.371 1.266-.576 2.613-.896 4-.959 1.443-.063 2.869.156 4.24.656 1.373.5 2.607 1.248 3.67 2.223 1.029.943 1.854 2.055 2.453 3.309s.945 2.586 1.025 3.957c.084 1.42-.121 2.82-.611 4.164-.488 1.344-1.232 2.551-2.209 3.584-.943 1-2.063 1.799-3.328 2.373s-2.613.895-4.01.957c-1.442.063-2.869-.158-4.24-.658m6.619-18.19c-4.633-1.686-9.746.635-11.398 5.174s.773 9.604 5.406 11.289c4.633 1.688 9.746-.633 11.398-5.172s-.773-9.603-5.406-11.291"/></g><path fill="#ed4c5c" d="m44.826 37.37l3.471-3.836-1.027-.904-3.361 3.715-19.277-7.02-1.158-2.641-1.256.52 1.395 3.182 2.936 1.07-.848 2.455 7.738 16.04 10.15-11.217 3.457 13.697 1.361-.113-3.581-14.953m-11.05 10.166l-7.02-14.572.986-1.07 15.189 5.529-9.152 10.113"/><ellipse transform="matrix(-.9398-.3419.3419-.9398 74.67 117.92)" fill="#333" cx="47.726" cy="52.38" rx="2.163" ry="2.119"/><g fill="#94989b"><path transform="matrix(.9396.3422-.3422.9396 17.989-6.946)" d="m26.828 46.931h3.704v1.154h-3.704z"/><path transform="matrix(.9397.342-.342.9397 20.301-9.939)" d="m36.478 52.02h3.706v1.155h-3.706z"/></g><path fill="#b3b3b3" d="m30.336 47.811l-.196.529 3.264 1.71.192-.53z"/><ellipse transform="matrix(.9397.3419-.3419.9397 19.19-8.367)" fill="#333" cx="33.33" cy="50.25" rx="3.036" ry="2.975"/><g fill="#b3b3b3"><ellipse transform="matrix(.94.3412-.3412.94 19.15-8.357)" cx="33.33" cy="50.25" rx=".758" ry=".743"/><path d="m33.23 50.52l3.264 1.71.192-.531-3.26-1.711z"/></g><path fill="#d3976e" d="m37.27 49.928c-1.48-.057-2.719 1.063-2.764 2.502l6.369.25c.738.027 1.357-.531 1.379-1.254l.043-1.301-5.03-.197"/><g fill="#3e4347"><path d="m42.3 50.13l-4.523-.183.413-10.867 5.06.19z"/><path d="m43.08 41.28l-4.89-2.2 6.669-6.04 3.461 3.616z"/></g><path fill="#47b892" d="m50.988 32.07l-11.326.242-5.334-9.82c0 0 3.293-2.029 4.502-1.83 8.58 1.422 12.158 11.408 12.158 11.408"/><path fill="#3e4347" d="m48.32 36.656l-8.986-2.729.324-1.615 11.262-.582c.715 2.809-2.6 4.926-2.6 4.926"/><g fill="#47b892"><path d="m35.502 22.461c-.734-.301-1.578.035-1.881.75l-2.066 4.922 2.668 1.088 2.063-4.922c.306-.715-.046-1.537-.784-1.838"/><path d="m34.26 28.842c-.018-.773-.674-1.369-1.471-1.355l-5.604.078.059 2.807 5.604-.076c.796-.015 1.431-.677 1.412-1.454"/></g><path fill="#ffdd67" d="m27.59 29.03l.104-1.369c.035-.488-.344-.916-.842-.953l-.68-.055c-.361-.027-.688.152-.857.436-.91-.008-2.119.221-2.24 1.859-.021.27-.133 1.768 1.684 1.908 2.679.208 2.679.208 2.831-1.826"/><path fill="#ed4c5c" d="m16.449 41.715l-.943-1.102 11.734-9.902.95 1.105z"/><ellipse transform="matrix(-.94-.3413.3413-.94 17.605 84.961)" fill="#333" cx="16.276" cy="40.932" rx="1.082" ry="1.061"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m37 16.4l2.8-1.5v9.5h-6.2z"/><path d="m32.9 20.8c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#eba352"/><path d="m38.8 4l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#ffdd67"/><path d="m31.1 3.1c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.5-4.3 3.5-5.3" fill="#ffb300"/><path d="m30.1 12.8c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#937237"/><path d="m37 13.7c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#eba352"/><path d="m30.8 17.2c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#937237"/><path d="M62,62v-7.1c0,0-25.2-7-60-40.6V62H62z" fill="#aec470"/><path d="M62,62v-3.3c0,0-25.1,6.4-60-22.5V62H62z" fill="#95a55b"/><g fill="#3e4347"><path d="m37.9 18.7l-1.3.2-2-8.6 1.3-.2z"/><path d="m37.6 19l-1.1-.7 4.2-4.7 1.1.6z"/><path transform="matrix(.1669-.986.986.1669 11.186 53.0165)" d="m34.6 19h4.8v1.7h-4.8z"/></g><path d="m43.9 15.3c-.7 1.6-5.5-2.8-8.7-4.2-3.5-1.5-9.5-2.2-9-3.5 2.1-4.8 7.7-6.9 12.6-4.8 5 2.1 7.2 7.7 5.1 12.5" fill="#f15744"/><g fill="#3b946f"><path d="m34.6 22.7c-.7-.4-1.5-.2-1.9.5l-2.6 4.4 2.4 1.4 2.6-4.4c.4-.7.1-1.5-.5-1.9"/><path d="m32.5 28.5c.1-.7-.5-1.4-1.2-1.5l-5.3-.6-.3 2.6 5.3.7c.8.1 1.5-.4 1.5-1.2"/></g><path d="m26.2 27.8l.3-1.3c.1-.5-.2-.9-.7-1l-.6-.1c-.3-.1-.7.1-.9.3-.9-.1-2-.1-2.4 1.5-.1.3-.4 1.6 1.3 2 2.6.5 2.6.5 3-1.4" fill="#eba352"/><path d="m30.1 44c-1.4-.4-2.8.4-3.1 1.7l5.9 1.6c.7.2 1.4-.2 1.6-.9l.3-1.2-4.7-1.2" fill="#d3976e"/><g fill="#3e4347"><path d="m34.7 45.2l-4.6-1.3 2.3-8.1 4.6 1.3z"/><path d="m36.5 39l-4.1-3.2 6.4-4 4.9 2.9z"/></g><g fill="#333"><path d="m13.1 49.5c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .4-1.2 1.1-2.3 2.1-3.3.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2.6 1.2.9 2.5 1 3.8.1 1.4-.1 2.7-.6 4-.5 1.2-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3-1.2.5-2.5.9-3.8.9-1.4 0-2.7-.2-4-.7m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.6-4.4-.7-9.2-5.1-10.8"/><path d="m43 60.4c-1.3-.5-2.5-1.2-3.5-2.1-1-.9-1.8-2-2.3-3.2-.6-1.2-.9-2.5-1-3.8-.1-1.4.1-2.7.6-4 .5-1.3 1.2-2.4 2.1-3.4.9-1 2-1.7 3.2-2.3 1.2-.5 2.5-.9 3.8-.9 1.4-.1 2.7.1 4 .6 1.3.5 2.5 1.2 3.5 2.1 1 .9 1.8 2 2.3 3.2s.9 2.5 1 3.8c.1 1.4-.1 2.7-.6 4-.5 1.3-1.2 2.4-2.1 3.4-.9 1-2 1.7-3.2 2.3s-2.4.9-3.7.9c-1.4.1-2.8-.1-4.1-.6m6.3-17.3c-4.4-1.6-9.3.6-10.9 4.9-1.6 4.3.7 9.1 5.1 10.8 4.4 1.6 9.3-.6 10.9-4.9 1.7-4.4-.7-9.2-5.1-10.8"/></g><path d="m43.7 36.6l3.3-3.6-1-.9-3.2 3.5-18.3-6.6-1.1-2.5-1.2.5 1.3 3 2.8 1-.8 2.3 7.4 15.3 9.7-10.7 3.3 13 1.3-.1-3.5-14.2m-10.5 9.7l-6.7-13.9.9-1 14.5 5.3-8.7 9.6" fill="#ed4c5c"/><ellipse transform="matrix(.3419-.9397.9397.3419-17.2712 77.1916)" cx="46.5" cy="50.9" rx="2" ry="2.1" fill="#333"/><g fill="#94989b"><path transform="matrix(.3421-.9397.9397.3421-24.8566 57.0869)" d="m27.8 44.5h1.1v3.5h-1.1z"/><path transform="matrix(.342-.9397.9397.342-23.359 68.9155)" d="m37 49.4h1.1v3.5h-1.1z"/></g><path fill="#b3b3b3" d="m29.9 46.6l-.2.5 3.1 1.6.2-.5z"/><ellipse transform="matrix(.3419-.9397.9397.3419-24.3947 62.974)" cx="32.8" cy="48.9" rx="2.8" ry="2.9" fill="#333"/><g fill="#b3b3b3"><ellipse transform="matrix(.3415-.9399.9399.3415-24.3909 63.0019)" cx="32.8" cy="48.9" rx=".7" ry=".7"/><path d="m32.7 49.2l3.1 1.6.2-.5-3.1-1.6z"/></g><path d="m36.5 48.6c-1.4-.1-2.6 1-2.6 2.4l6.1.2c.7 0 1.3-.5 1.3-1.2v-1.2l-4.8-.2" fill="#d3976e"/><g fill="#3e4347"><path d="m41.3 48.8l-4.3-.2.4-10.3 4.8.2z"/><path d="m42 40.4l-4.6-2.1 6.3-5.8 3.3 3.5z"/></g><path d="m49.6 31.6l-10.8.2-5.1-9.4c0 0 3.1-1.9 4.3-1.7 8.2 1.4 11.6 10.9 11.6 10.9" fill="#47b892"/><path d="m47 36l-8.6-2.6.3-1.5 10.7-.6c.8 2.6-2.4 4.7-2.4 4.7" fill="#3e4347"/><g fill="#47b892"><path d="m34.8 22.4c-.7-.3-1.5 0-1.8.7l-2 4.7 2.5 1 2-4.7c.4-.6 0-1.4-.7-1.7"/><path d="m33.7 28.5c0-.7-.6-1.3-1.4-1.3l-5.3.1v2.7l5.3-.1c.8 0 1.4-.6 1.4-1.4"/></g><path d="m27.3 28.7l.1-1.3c0-.5-.3-.9-.8-.9l-.6-.1c-.3 0-.7.1-.8.4-.9 0-2 .2-2.1 1.8 0 .3-.1 1.7 1.6 1.8 2.5.2 2.5.2 2.6-1.7" fill="#ffdd67"/><path fill="#ed4c5c" d="m16.7 40.8l-.9-1.1 11.2-9.4.9 1z"/><ellipse transform="matrix(.3413-.94.94.3413-26.7403 41.8999)" cx="16.5" cy="40" rx="1" ry="1" fill="#333"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fb.svg
index 36fad56..b4d3dde 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m33.1 19.416h2.387v8.844h-6.142z"/><path fill="#e6b796" d="m33.08 19.225c0 3.971-.848 5.982-3.703 5.982l-.031 3.052c3.375 0 4.756-4.208 4.756-8.843l-1.022-.191"/><path fill="#ffe1bd" d="m35.16 5.613l-13.428 4.227c-1.551 2.83-.494 4.328-.549 5.549-.023.543-1.127 1.535-1.711 2.055-1.304 1.158.879 2.094 1.695 1.924.518 1.217-.32 1.549 1.682 1.371 1.102-.098 2.59-1.115 2.59-1.115-4.855 3.055-3.6 4.311-1.598 3.783 0 2.574 1.598 2.574 5.102 2.574 2.857 0 5.16-2.594 5.16-6.564l3.828-.668-2.771-13.14"/><path fill="#594640" d="m30.07 1.98c9.908 0 11.203 8.414 9.828 14.248-.732 3.105-2.375 5.083-4.295 5.932l-.969-.625-.531-2.119c0 0 1.938-.453 2.51-2.664.264-1.012-.752-2.941-2.24-3.02-1.041-.059-2.537.715-2.855.951 0-2.57.521-5.23-1.229-5.994-1.439-.629-7.625 2.168-8.557 1.154-2.503-2.709 2.372-7.86 8.338-7.86"/><g fill="#664e27"><path d="m33.839 16.236c-.186-.025-.367.002-.529.07.084-.182.188-.357.305-.535.145-.219.318-.422.486-.664-.559.148-1.057.555-1.307 1.123-.246.578-.148 1.238.158 1.721.049-.293.053-.564.096-.816.031-.16.07-.313.115-.461.074.004.146.004.213.012.143.016.268.018.393.041.125.012.248.047.391.068.141.025.283.072.473.096-.103-.344-.427-.598-.794-.655"/><ellipse cx="23.368" cy="14.947" rx="1.066" ry="1.49"/><path d="m25.437 19.623c0 0-1.584 2.283-1.986 2.604-.855.684-1.148.234-.729-.34.431-.592 2.715-2.264 2.715-2.264"/></g><g fill="#d3976e"><path d="m23.755 59.15c-1.627.001-3.1 1.289-3.102 2.875l7-.008c.811 0 1.654-.645 1.654-1.439v-1.434l-5.554.006"/><path d="m39.474 57.27c-1.234 1.039-1.5 2.956-.449 4.162l5.314-4.471c.615-.518.828-1.545.303-2.148l-.951-1.09-4.217 3.547"/></g><path fill="#3b946f" d="m33.17 28.449l3.616 11.02 3.211-.183-4.174-12.894z"/><path fill="#ffe1bd" d="m38.33 38.643l-1.514.304c-.539.108-.889.628-.779 1.159l.145.717c.078.383.369.668.727.76.264.943.871 2.128 2.678 1.764.301-.061 1.955-.391 1.563-2.316-.578-2.838-.578-2.838-2.82-2.388"/><path fill="#e6b796" d="m37.34 41.658c1.287-.318.829-1.665.664-2.594-.028-.158-.27-.091-.241.066.138.776.604 2.02-.489 2.287-.157.039-.09.28.066.241"/><path fill="#47b892" d="m36.827 41.07h-10.06c0 0-.098-8.987.902-12.526.93-3.296 8.158-2.146 8.158-2.146l1 14.672"/><path fill="#3e4347" d="m36.788 48.43l.043-7.36h-10.07l-2.467 8.22-.541 9.96 5.555-.11.91-8.67.83-1.854.28 2.874 8.567 5.76 3.793-3.525z"/><path fill="#3b946f" d="m33.933 29.826c.17-.927-.467-1.813-1.42-1.977-.951-.167-1.861.455-2.029 1.381l-.955 5.435-4.883 3.412 2.043 2.788 5.504-3.846c.297-.209.504-.496.615-.814h.002l.005-.024c.052-.152.076-.312.083-.473l1.035-5.882"/><path fill="#ffe1bd" d="m26.442 39.4l-.867-1.451c-.311-.516-.986-.693-1.51-.395l-.711.402c-.377.216-.574.615-.541 1.016-.908.604-1.947 1.646-.91 3.379.172.287 1.117 1.873 3.02.79 2.803-1.592 2.803-1.592 1.519-3.741"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m32.6 16.1l2.7-1.5v9.5h-6.1z"/><path d="m28.4 20.5c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#e6b796"/><path d="m34.4 3.7l-11 3.8c-1.4 2.6-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#ffe1bd"/><path d="m26.6 2.8c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.6-4.3 3.5-5.3" fill="#594640"/><path d="m25.7 12.5c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m32.6 13.4c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#e6b796"/><path d="m26.4 16.9c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><g fill="#d3976e"><path d="m21.6 58.8c-1.9 0-3.6 1.4-3.6 3.2h8.1c.9 0 1.9-.7 1.9-1.6v-1.6h-6.4"/><path d="m39.7 56.7c-1.4 1.2-1.7 3.3-.5 4.6l6.1-5c.7-.6 1-1.7.4-2.4l-1.1-1.2-4.9 4"/></g><path fill="#3b946f" d="m32.4 24.6l4.2 12.3 3.7-.2-4.8-14.4z"/><path d="m38.4 36l-1.7.3c-.6.1-1 .7-.9 1.3l.2.8c.1.4.4.7.8.8.3 1 1 2.4 3.1 2 .3-.1 2.3-.4 1.8-2.6-.7-3.1-.7-3.1-3.3-2.6" fill="#ffe1bd"/><path d="m37.2 39.3c1.5-.4 1-1.9.8-2.9 0-.2-.3-.1-.3.1.2.9.7 2.2-.6 2.5-.1.1 0 .4.1.3" fill="#e6b796"/><path d="m36.6 38.7h-11.6c0 0-.8-8.5 2.2-13.9 2.2-4.1 8.3-2.4 8.3-2.4l1.1 16.3" fill="#47b892"/><path fill="#3e4347" d="m36.6 46.9l.1-8.2h-11.7l-2.8 9.1-.6 11h6.4l1-9.7 1-2 .3 3.2 9.6 6.2 4.7-3.7z"/><path d="m33.3 26.2c.2-1-.5-2-1.6-2.2-1.1-.2-2.1.5-2.3 1.5l-1.1 6-5.6 3.8 2.4 3.1 6.3-4.3c.3-.2.6-.6.7-.9.1-.2.1-.3.1-.5l1.1-6.5" fill="#3b946f"/><path d="m24.7 36.8l-1-1.6c-.4-.6-1.1-.8-1.7-.4l-.8.4c-.4.2-.7.7-.6 1.1-1 .7-2.2 1.8-1 3.8.2.3 1.3 2.1 3.5.9 3.1-1.8 3.1-1.8 1.6-4.2" fill="#ffe1bd"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fc.svg
index fb22bfb..8c15b9b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m33.1 19.416h2.387v8.844h-6.143z"/><path fill="#e0a372" d="m33.08 19.225c0 3.971-.848 5.982-3.702 5.982l-.033 3.052c3.376 0 4.757-4.208 4.757-8.843l-1.022-.191"/><path fill="#fed0ac" d="m35.16 5.613l-13.427 4.227c-1.551 2.83-.494 4.328-.549 5.549-.025.543-1.127 1.535-1.713 2.055-1.303 1.158.881 2.094 1.697 1.924.516 1.217-.322 1.549 1.68 1.371 1.104-.098 2.592-1.115 2.592-1.115-4.857 3.055-3.6 4.311-1.598 3.783 0 2.574 1.598 2.574 5.102 2.574 2.856 0 5.159-2.594 5.159-6.564l3.828-.668-2.771-13.14"/><path fill="#dbb471" d="m30.07 1.98c9.907 0 11.202 8.414 9.827 14.248-.732 3.105-2.375 5.083-4.295 5.932l-.969-.625-.531-2.119c0 0 1.938-.453 2.51-2.664.264-1.012-.752-2.941-2.24-3.02-1.041-.059-2.537.715-2.855.951 0-2.57.521-5.23-1.228-5.994-1.441-.629-7.627 2.168-8.557 1.154-2.503-2.709 2.372-7.86 8.338-7.86"/><g fill="#664e27"><path d="m33.839 16.236c-.186-.025-.367.002-.529.07.084-.182.188-.357.305-.535.145-.219.318-.422.486-.664-.559.148-1.057.555-1.307 1.123-.246.578-.148 1.238.158 1.721.049-.293.053-.564.096-.816.031-.16.07-.313.115-.461.074.004.146.004.213.012.143.016.268.018.393.041.125.012.248.047.391.068.141.025.283.072.473.096-.103-.344-.427-.598-.794-.655"/><ellipse cx="23.368" cy="14.947" rx="1.065" ry="1.49"/><path d="m25.438 19.623c0 0-1.584 2.283-1.986 2.604-.855.684-1.148.234-.729-.34.431-.592 2.715-2.264 2.715-2.264"/></g><g fill="#d3976e"><path d="m23.756 59.15c-1.629.001-3.1 1.289-3.104 2.875l7-.008c.811 0 1.652-.645 1.654-1.439v-1.434l-5.554.006"/><path d="m39.474 57.27c-1.234 1.039-1.5 2.956-.449 4.162l5.314-4.471c.615-.518.828-1.545.303-2.148l-.951-1.09-4.217 3.547"/></g><path fill="#3b946f" d="m33.17 28.449l3.616 11.02 3.211-.183-4.174-12.894z"/><path fill="#fed0ac" d="m38.33 38.643l-1.514.304c-.539.108-.889.628-.779 1.159l.145.717c.078.383.369.668.727.76.264.943.871 2.128 2.678 1.764.301-.061 1.955-.391 1.563-2.316-.578-2.838-.578-2.838-2.82-2.388"/><path fill="#e0a372" d="m37.34 41.658c1.287-.318.829-1.665.664-2.594-.028-.158-.27-.091-.241.066.138.776.604 2.02-.489 2.287-.157.039-.09.28.066.241"/><path fill="#47b892" d="m36.827 41.07h-10.06c0 0-.098-8.987.9-12.526.932-3.296 8.159-2.146 8.159-2.146l1 14.672"/><path fill="#3e4347" d="m36.788 48.43l.043-7.36h-10.07l-2.469 8.22-.539 9.96 5.554-.11.91-8.67.83-1.854.28 2.874 8.567 5.76 3.793-3.525z"/><path fill="#3b946f" d="m33.933 29.826c.17-.927-.467-1.813-1.42-1.977-.951-.167-1.86.455-2.028 1.381l-.955 5.435-4.883 3.412 2.043 2.788 5.503-3.846c.297-.209.504-.496.615-.814h.002l.005-.024c.052-.152.076-.312.083-.473l1.035-5.882"/><path fill="#fed0ac" d="m26.441 39.4l-.867-1.451c-.309-.516-.984-.693-1.51-.395l-.709.402c-.377.216-.576.615-.541 1.016-.908.604-1.947 1.646-.91 3.379.17.287 1.117 1.873 3.02.79 2.801-1.592 2.801-1.592 1.517-3.741"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m32.6 16.1l2.7-1.5v9.5h-6.1z"/><path d="m28.4 20.5c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#e0a372"/><path d="m34.4 3.7l-11 3.8c-1.4 2.5-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#fed0ac"/><path d="m26.6 2.8c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.6-4.3 3.5-5.3" fill="#dbb471"/><path d="m25.7 12.5c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m32.6 13.4c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#e0a372"/><path d="m26.4 16.9c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><g fill="#d3976e"><path d="m21.6 58.8c-1.9 0-3.6 1.4-3.6 3.2h8.1c.9 0 1.9-.7 1.9-1.6v-1.6h-6.4"/><path d="m39.7 56.7c-1.4 1.2-1.7 3.3-.5 4.6l6.1-5c.7-.6 1-1.7.3-2.4l-1.1-1.2-4.8 4"/></g><path fill="#3b946f" d="m32.4 24.6l4.2 12.3 3.7-.2-4.8-14.4z"/><path d="m38.4 36l-1.7.3c-.6.1-1 .7-.9 1.3l.2.8c.1.4.4.7.8.8.3 1 1 2.4 3.1 2 .3-.1 2.3-.4 1.8-2.6-.7-3.1-.7-3.1-3.3-2.6" fill="#fed0ac"/><path d="m37.2 39.3c1.5-.4 1-1.9.8-2.9 0-.2-.3-.1-.3.1.2.9.7 2.2-.6 2.5-.1.1 0 .4.1.3" fill="#e0a372"/><path d="m36.6 38.7h-11.6c0 0-.8-8.5 2.2-13.9 2.2-4.1 8.3-2.4 8.3-2.4l1.1 16.3" fill="#47b892"/><path fill="#3e4347" d="m36.6 46.9v-8.2h-11.6l-2.8 9.1-.6 11h6.4l1-9.7 1-2 .3 3.2 9.6 6.2 4.7-3.7z"/><path d="m33.3 26.2c.2-1-.5-2-1.6-2.2-1.1-.2-2.1.5-2.3 1.5l-1.1 6-5.6 3.8 2.4 3.1 6.3-4.3c.3-.2.6-.6.7-.9.1-.2.1-.3.1-.5l1.1-6.5" fill="#3b946f"/><path d="m24.7 36.8l-1-1.6c-.4-.6-1.1-.8-1.7-.4l-.8.4c-.4.2-.7.7-.6 1.1-1 .7-2.2 1.8-1 3.8.2.3 1.3 2.1 3.5.9 3.1-1.8 3.1-1.8 1.6-4.2" fill="#fed0ac"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fd.svg
index f06680a..69ef31c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m33.1 19.416h2.387v8.844h-6.143z"/><path fill="#b58360" d="m33.08 19.225c0 3.971-.848 5.982-3.702 5.982l-.033 3.052c3.376 0 4.757-4.208 4.757-8.843l-1.022-.191"/><path fill="#d6a57c" d="m35.16 5.613l-13.427 4.227c-1.551 2.83-.494 4.328-.549 5.549-.025.543-1.127 1.535-1.713 2.055-1.303 1.158.881 2.094 1.697 1.924.516 1.217-.322 1.549 1.68 1.371 1.104-.098 2.592-1.115 2.592-1.115-4.857 3.055-3.6 4.311-1.598 3.783 0 2.574 1.598 2.574 5.102 2.574 2.856 0 5.159-2.594 5.159-6.564l3.828-.668-2.771-13.14"/><path fill="#594640" d="m30.07 1.98c9.907 0 11.202 8.414 9.827 14.248-.732 3.105-2.375 5.083-4.295 5.932l-.969-.625-.531-2.119c0 0 1.938-.453 2.51-2.664.264-1.012-.752-2.941-2.24-3.02-1.041-.059-2.537.715-2.855.951 0-2.57.521-5.23-1.228-5.994-1.441-.629-7.627 2.168-8.557 1.154-2.503-2.709 2.372-7.86 8.338-7.86"/><g fill="#664e27"><path d="m33.839 16.236c-.186-.025-.367.002-.529.07.084-.182.188-.357.305-.535.145-.219.318-.422.486-.664-.559.148-1.057.555-1.307 1.123-.246.578-.148 1.238.158 1.721.049-.293.053-.564.096-.816.031-.16.07-.313.115-.461.074.004.146.004.213.012.143.016.268.018.393.041.125.012.248.047.391.068.141.025.283.072.473.096-.103-.344-.427-.598-.794-.655"/><ellipse cx="23.368" cy="14.947" rx="1.065" ry="1.49"/><path d="m25.438 19.623c0 0-1.584 2.283-1.986 2.604-.855.684-1.148.234-.729-.34.431-.592 2.715-2.264 2.715-2.264"/></g><g fill="#d3976e"><path d="m23.756 59.15c-1.629.001-3.1 1.289-3.104 2.875l7-.008c.811 0 1.652-.645 1.654-1.439v-1.434l-5.554.006"/><path d="m39.474 57.27c-1.234 1.039-1.5 2.956-.449 4.162l5.314-4.471c.615-.518.828-1.545.303-2.148l-.951-1.09-4.217 3.547"/></g><path fill="#3b946f" d="m33.17 28.449l3.616 11.02 3.211-.183-4.174-12.894z"/><path fill="#d6a57c" d="m38.33 38.643l-1.514.304c-.539.108-.889.628-.779 1.159l.145.717c.078.383.369.668.727.76.264.943.871 2.128 2.678 1.764.301-.061 1.955-.391 1.563-2.316-.578-2.838-.578-2.838-2.82-2.388"/><path fill="#b58360" d="m37.34 41.658c1.287-.318.829-1.665.664-2.594-.028-.158-.27-.091-.241.066.138.776.604 2.02-.489 2.287-.157.039-.09.28.066.241"/><path fill="#47b892" d="m36.827 41.07h-10.06c0 0-.098-8.987.9-12.526.932-3.296 8.159-2.146 8.159-2.146l1 14.672"/><path fill="#3e4347" d="m36.788 48.43l.043-7.36h-10.07l-2.469 8.22-.539 9.96 5.554-.11.91-8.67.83-1.854.28 2.874 8.567 5.76 3.793-3.525z"/><path fill="#3b946f" d="m33.933 29.826c.17-.927-.467-1.813-1.42-1.977-.951-.167-1.86.455-2.028 1.381l-.955 5.435-4.883 3.412 2.043 2.788 5.503-3.846c.297-.209.504-.496.615-.814h.002l.005-.024c.052-.152.076-.312.083-.473l1.035-5.882"/><path fill="#d6a57c" d="m26.441 39.4l-.867-1.451c-.309-.516-.984-.693-1.51-.395l-.709.402c-.377.216-.576.615-.541 1.016-.908.604-1.947 1.646-.91 3.379.17.287 1.117 1.873 3.02.79 2.801-1.592 2.801-1.592 1.517-3.741"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m32.6 16.1l2.8-1.5v9.5h-6.2z"/><path d="m28.4 20.5c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#b58360"/><path d="m34.4 3.7l-11 3.8c-1.4 2.6-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#d6a57c"/><path d="m26.6 2.8c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.6-4.3 3.5-5.3" fill="#594640"/><path d="m25.7 12.5c0 .7-.4 1.2-.9 1.2-.5 0-.6-.6-.6-1.2 0-.7.1-1.2.6-1.2.5 0 .9.6.9 1.2" fill="#664e27"/><path d="m32.6 13.4c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#b58360"/><path d="m26.4 16.9c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><g fill="#d3976e"><path d="m21.6 58.8c-1.9 0-3.6 1.4-3.6 3.2h8.1c.9 0 1.9-.7 1.9-1.6v-1.6h-6.4"/><path d="m39.7 56.7c-1.4 1.2-1.7 3.3-.5 4.6l6.1-5c.7-.6 1-1.7.3-2.4l-1.1-1.2-4.8 4"/></g><path fill="#3b946f" d="m32.4 24.6l4.2 12.3 3.7-.2-4.8-14.4z"/><path d="m38.4 36l-1.7.3c-.6.1-1 .7-.9 1.3l.2.8c.1.4.4.7.8.8.3 1 1 2.4 3.1 2 .3-.1 2.3-.4 1.8-2.6-.7-3.1-.7-3.1-3.3-2.6" fill="#d6a57c"/><path d="m37.2 39.3c1.5-.4 1-1.9.8-2.9 0-.2-.3-.1-.3.1.2.9.7 2.2-.6 2.5-.1.1 0 .4.1.3" fill="#b58360"/><path d="m36.6 38.7h-11.6c0 0-.8-8.5 2.2-13.9 2.2-4.1 8.3-2.4 8.3-2.4l1.1 16.3" fill="#47b892"/><path fill="#3e4347" d="m36.6 46.9l.1-8.2h-11.7l-2.8 9.1-.6 11h6.4l1-9.7 1-2 .3 3.2 9.6 6.2 4.7-3.7z"/><path d="m33.3 26.2c.2-1-.5-2-1.6-2.2-1.1-.2-2.1.5-2.3 1.5l-1.1 6-5.6 3.8 2.4 3.1 6.3-4.3c.3-.2.6-.6.7-.9.1-.2.1-.3.1-.5l1.1-6.5" fill="#3b946f"/><path d="m24.7 36.8l-1-1.6c-.4-.6-1.1-.8-1.7-.4l-.8.4c-.4.2-.7.7-.6 1.1-1 .7-2.2 1.8-1 3.8.2.3 1.3 2.1 3.5.9 3.1-1.8 3.1-1.8 1.6-4.2" fill="#d6a57c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fe.svg
index 362aa5e..82b4e83 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m33.1 19.416h2.387v8.844h-6.143z"/><path fill="#935e3e" d="m33.08 19.225c0 3.971-.848 5.982-3.702 5.982l-.033 3.052c3.376 0 4.757-4.208 4.757-8.843l-1.022-.191"/><path fill="#b47d56" d="m35.16 5.613l-13.427 4.227c-1.551 2.83-.494 4.328-.549 5.549-.025.543-1.127 1.535-1.713 2.055-1.303 1.158.881 2.094 1.697 1.924.516 1.217-.322 1.549 1.68 1.371 1.104-.098 2.592-1.115 2.592-1.115-4.857 3.055-3.6 4.311-1.598 3.783 0 2.574 1.598 2.574 5.102 2.574 2.856 0 5.159-2.594 5.159-6.564l3.828-.668-2.771-13.14"/><path fill="#231f20" d="m30.07 1.98c9.907 0 11.202 8.414 9.827 14.248-.732 3.105-2.375 5.083-4.295 5.932l-.969-.625-.531-2.119c0 0 1.938-.453 2.51-2.664.264-1.012-.752-2.941-2.24-3.02-1.041-.059-2.537.715-2.855.951 0-2.57.521-5.23-1.228-5.994-1.441-.629-7.627 2.168-8.557 1.154-2.503-2.709 2.372-7.86 8.338-7.86"/><g fill="#574137"><path d="m33.839 16.236c-.186-.025-.367.002-.529.07.084-.182.188-.357.305-.535.145-.219.318-.422.486-.664-.559.148-1.057.555-1.307 1.123-.246.578-.148 1.238.158 1.721.049-.293.053-.564.096-.816.031-.16.07-.313.115-.461.074.004.146.004.213.012.143.016.268.018.393.041.125.012.248.047.391.068.141.025.283.072.473.096-.103-.344-.427-.598-.794-.655"/><ellipse cx="23.368" cy="14.947" rx="1.065" ry="1.49"/><path d="m25.438 19.623c0 0-1.584 2.283-1.986 2.604-.855.684-1.148.234-.729-.34.431-.592 2.715-2.264 2.715-2.264"/></g><g fill="#d3976e"><path d="m23.756 59.15c-1.629.001-3.1 1.289-3.104 2.875l7-.008c.811 0 1.652-.645 1.654-1.439v-1.434l-5.554.006"/><path d="m39.474 57.27c-1.234 1.039-1.5 2.956-.449 4.162l5.314-4.471c.615-.518.828-1.545.303-2.148l-.951-1.09-4.217 3.547"/></g><path fill="#3b946f" d="m33.17 28.449l3.616 11.02 3.211-.183-4.174-12.894z"/><path fill="#b47d56" d="m38.33 38.643l-1.514.304c-.539.108-.889.628-.779 1.159l.145.717c.078.383.369.668.727.76.264.943.871 2.128 2.678 1.764.301-.061 1.955-.391 1.563-2.316-.578-2.838-.578-2.838-2.82-2.388"/><path fill="#935e3e" d="m37.34 41.658c1.287-.318.829-1.665.664-2.594-.028-.158-.27-.091-.241.066.138.776.604 2.02-.489 2.287-.157.039-.09.28.066.241"/><path fill="#47b892" d="m36.827 41.07h-10.06c0 0-.098-8.987.9-12.526.932-3.296 8.159-2.146 8.159-2.146l1 14.672"/><path fill="#3e4347" d="m36.788 48.43l.043-7.36h-10.07l-2.469 8.22-.539 9.96 5.554-.11.91-8.67.83-1.854.28 2.874 8.567 5.76 3.793-3.525z"/><path fill="#3b946f" d="m33.933 29.826c.17-.927-.467-1.813-1.42-1.977-.951-.167-1.86.455-2.028 1.381l-.955 5.435-4.883 3.412 2.043 2.788 5.503-3.846c.297-.209.504-.496.615-.814h.002l.005-.024c.052-.152.076-.312.083-.473l1.035-5.882"/><path fill="#b47d56" d="m26.441 39.4l-.867-1.451c-.309-.516-.984-.693-1.51-.395l-.709.402c-.377.216-.576.615-.541 1.016-.908.604-1.947 1.646-.91 3.379.17.287 1.117 1.873 3.02.79 2.801-1.592 2.801-1.592 1.517-3.741"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m32.6 16.1l2.7-1.5v9.5h-6.1z"/><path d="m28.4 20.5c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#935e3e"/><path d="m34.4 3.7l-11 3.8c-1.4 2.6-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#b47d56"/><path d="m26.6 2.8c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.6-4.3 3.5-5.3" fill="#231f20"/><path d="m25.7 12.5c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#664e27"/><path d="m32.6 13.4c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#935e3e"/><path d="m26.4 16.9c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#664e27"/><g fill="#d3976e"><path d="m21.6 58.8c-1.9 0-3.6 1.4-3.6 3.2h8.1c.9 0 1.9-.7 1.9-1.6v-1.6h-6.4"/><path d="m39.7 56.7c-1.4 1.2-1.7 3.3-.5 4.6l6.1-5c.7-.6 1-1.7.4-2.4l-1.1-1.2-4.9 4"/></g><path fill="#3b946f" d="m32.4 24.6l4.2 12.3 3.7-.2-4.8-14.4z"/><path d="m38.4 36l-1.7.3c-.6.1-1 .7-.9 1.3l.2.8c.1.4.4.7.8.8.3 1 1 2.4 3.1 2 .3-.1 2.3-.4 1.8-2.6-.7-3.1-.7-3.1-3.3-2.6" fill="#b47d56"/><path d="m37.2 39.3c1.5-.4 1-1.9.8-2.9 0-.2-.3-.1-.3.1.2.9.7 2.2-.6 2.5-.1.1 0 .4.1.3" fill="#935e3e"/><path d="m36.6 38.7h-11.6c0 0-.8-8.5 2.2-13.9 2.2-4.1 8.3-2.4 8.3-2.4l1.1 16.3" fill="#47b892"/><path fill="#3e4347" d="m36.6 46.9l.1-8.2h-11.7l-2.8 9.1-.6 11h6.4l1-9.7 1-2 .3 3.2 9.6 6.2 4.7-3.7z"/><path d="m33.3 26.2c.2-1-.5-2-1.6-2.2-1.1-.2-2.1.5-2.3 1.5l-1.1 6-5.6 3.8 2.4 3.1 6.3-4.3c.3-.2.6-.6.7-.9.1-.2.1-.3.1-.5l1.1-6.5" fill="#3b946f"/><path d="m24.7 36.8l-1-1.6c-.4-.6-1.1-.8-1.7-.4l-.8.4c-.4.2-.7.7-.6 1.1-1 .7-2.2 1.8-1 3.8.2.3 1.3 2.1 3.5.9 3.1-1.8 3.1-1.8 1.6-4.2" fill="#b47d56"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3ff.svg
index 031121d..454b2a9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b6-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m33.1 19.416h2.387v8.844h-6.143z"/><path fill="#705041" d="m33.08 19.225c0 3.971-.848 5.982-3.702 5.982l-.033 3.052c3.376 0 4.757-4.208 4.757-8.843l-1.022-.191"/><path fill="#8a6859" d="m35.16 5.613l-13.427 4.227c-1.551 2.83-.494 4.328-.549 5.549-.025.543-1.127 1.535-1.713 2.055-1.303 1.158.881 2.094 1.697 1.924.516 1.217-.322 1.549 1.68 1.371 1.104-.098 2.592-1.115 2.592-1.115-4.857 3.055-3.6 4.311-1.598 3.783 0 2.574 1.598 2.574 5.102 2.574 2.856 0 5.159-2.594 5.159-6.564l3.828-.668-2.771-13.14"/><path fill="#231f20" d="m30.07 1.98c9.907 0 11.202 8.414 9.827 14.248-.732 3.105-2.375 5.083-4.295 5.932l-.969-.625-.531-2.119c0 0 1.938-.453 2.51-2.664.264-1.012-.752-2.941-2.24-3.02-1.041-.059-2.537.715-2.855.951 0-2.57.521-5.23-1.228-5.994-1.441-.629-7.627 2.168-8.557 1.154-2.503-2.709 2.372-7.86 8.338-7.86"/><g fill="#47352d"><path d="m33.839 16.236c-.186-.025-.367.002-.529.07.084-.182.188-.357.305-.535.145-.219.318-.422.486-.664-.559.148-1.057.555-1.307 1.123-.246.578-.148 1.238.158 1.721.049-.293.053-.564.096-.816.031-.16.07-.313.115-.461.074.004.146.004.213.012.143.016.268.018.393.041.125.012.248.047.391.068.141.025.283.072.473.096-.103-.344-.427-.598-.794-.655"/><ellipse cx="23.368" cy="14.947" rx="1.065" ry="1.49"/><path d="m25.438 19.623c0 0-1.584 2.283-1.986 2.604-.855.684-1.148.234-.729-.34.431-.592 2.715-2.264 2.715-2.264"/></g><g fill="#d3976e"><path d="m23.756 59.15c-1.629.001-3.1 1.289-3.104 2.875l7-.008c.811 0 1.652-.645 1.654-1.439v-1.434l-5.554.006"/><path d="m39.474 57.27c-1.234 1.039-1.5 2.956-.449 4.162l5.314-4.471c.615-.518.828-1.545.303-2.148l-.951-1.09-4.217 3.547"/></g><path fill="#3b946f" d="m33.17 28.449l3.616 11.02 3.211-.183-4.174-12.894z"/><path fill="#8a6859" d="m38.33 38.643l-1.514.304c-.539.108-.889.628-.779 1.159l.145.717c.078.383.369.668.727.76.264.943.871 2.128 2.678 1.764.301-.061 1.955-.391 1.563-2.316-.578-2.838-.578-2.838-2.82-2.388"/><path fill="#705041" d="m37.34 41.658c1.287-.318.829-1.665.664-2.594-.028-.158-.27-.091-.241.066.138.776.604 2.02-.489 2.287-.157.039-.09.28.066.241"/><path fill="#47b892" d="m36.827 41.07h-10.06c0 0-.098-8.987.9-12.526.932-3.296 8.159-2.146 8.159-2.146l1 14.672"/><path fill="#3e4347" d="m36.788 48.43l.043-7.36h-10.07l-2.469 8.22-.539 9.96 5.554-.11.91-8.67.83-1.854.28 2.874 8.567 5.76 3.793-3.525z"/><path fill="#3b946f" d="m33.933 29.826c.17-.927-.467-1.813-1.42-1.977-.951-.167-1.86.455-2.028 1.381l-.955 5.435-4.883 3.412 2.043 2.788 5.503-3.846c.297-.209.504-.496.615-.814h.002l.005-.024c.052-.152.076-.312.083-.473l1.035-5.882"/><path fill="#8a6859" d="m26.441 39.4l-.867-1.451c-.309-.516-.984-.693-1.51-.395l-.709.402c-.377.216-.576.615-.541 1.016-.908.604-1.947 1.646-.91 3.379.17.287 1.117 1.873 3.02.79 2.801-1.592 2.801-1.592 1.517-3.741"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m32.6 16.1l2.7-1.5v9.5h-6.1z"/><path d="m28.4 20.5c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#705041"/><path d="m34.4 3.7l-11 3.8c-1.4 2.6-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#8a6859"/><path d="m26.6 2.8c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.6-4.3 3.5-5.3" fill="#231f20"/><path d="m25.7 12.5c0 .7-.4 1.2-.9 1.2-.5 0-.6-.6-.6-1.2 0-.7.1-1.2.6-1.2.5 0 .9.6.9 1.2" fill="#574137"/><path d="m32.6 13.4c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#705041"/><path d="m26.4 16.9c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#574137"/><g fill="#d3976e"><path d="m21.6 58.8c-1.9 0-3.6 1.4-3.6 3.2h8.1c.9 0 1.9-.7 1.9-1.6v-1.6h-6.4"/><path d="m39.7 56.7c-1.4 1.2-1.7 3.3-.5 4.6l6.1-5c.7-.6 1-1.7.3-2.4l-1.1-1.2-4.8 4"/></g><path fill="#3b946f" d="m32.4 24.6l4.2 12.3 3.7-.2-4.8-14.4z"/><path d="m38.4 36l-1.7.3c-.6.1-1 .7-.9 1.3l.2.8c.1.4.4.7.8.8.3 1 1 2.4 3.1 2 .3-.1 2.3-.4 1.8-2.6-.7-3.1-.7-3.1-3.3-2.6" fill="#8a6859"/><path d="m37.2 39.3c1.5-.4 1-1.9.8-2.9 0-.2-.3-.1-.3.1.2.9.7 2.2-.6 2.5-.1.1 0 .4.1.3" fill="#705041"/><path d="m36.6 38.7h-11.6c0 0-.8-8.5 2.2-13.9 2.2-4.1 8.3-2.4 8.3-2.4l1.1 16.3" fill="#47b892"/><path fill="#3e4347" d="m36.6 46.9l.1-8.2h-11.7l-2.8 9.1-.6 11h6.4l1-9.7 1-2 .3 3.2 9.6 6.2 4.7-3.7z"/><path d="m33.3 26.2c.2-1-.5-2-1.6-2.2-1.1-.2-2.1.5-2.3 1.5l-1.1 6-5.6 3.8 2.4 3.1 6.3-4.3c.3-.2.6-.6.7-.9.1-.2.1-.3.1-.5l1.1-6.5" fill="#3b946f"/><path d="m24.7 36.8l-1-1.6c-.4-.6-1.1-.8-1.7-.4l-.8.4c-.4.2-.7.7-.6 1.1-1 .7-2.2 1.8-1 3.8.2.3 1.3 2.1 3.5.9 3.1-1.8 3.1-1.8 1.6-4.2" fill="#8a6859"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b6.svg
index 39cdd2f..8ba1d28 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m33.1 19.416h2.386v8.844h-6.144z"/><path fill="#eba352" d="m33.08 19.225c0 3.971-.847 5.982-3.703 5.982l-.033 3.052c3.375 0 4.757-4.208 4.757-8.843l-1.021-.191"/><path fill="#ffdd67" d="m35.15 5.613l-13.425 4.227c-1.551 2.83-.494 4.328-.549 5.549-.025.543-1.127 1.535-1.712 2.055-1.304 1.158.88 2.094 1.697 1.924.516 1.217-.322 1.549 1.68 1.371 1.104-.098 2.592-1.115 2.592-1.115-4.857 3.055-3.6 4.311-1.598 3.783 0 2.574 1.598 2.574 5.102 2.574 2.855 0 5.16-2.594 5.16-6.564l3.828-.668-2.775-13.14"/><path fill="#231f20" d="m30.07 1.98c9.908 0 11.203 8.414 9.828 14.248-.732 3.105-2.375 5.083-4.295 5.932l-.969-.625-.531-2.119c0 0 1.938-.453 2.51-2.664.262-1.012-.752-2.941-2.242-3.02-1.039-.059-2.537.715-2.853.951 0-2.57.521-5.23-1.229-5.994-1.441-.629-7.627 2.168-8.557 1.154-2.504-2.709 2.371-7.86 8.338-7.86"/><g fill="#664e27"><path d="m33.836 16.236c-.184-.025-.367.002-.527.07.084-.182.188-.357.305-.535.145-.219.318-.422.486-.664-.559.148-1.059.555-1.306 1.123-.248.578-.148 1.238.158 1.721.047-.293.05-.564.095-.816.031-.16.068-.313.115-.461.074.004.145.004.213.012.143.016.268.018.391.041.127.012.25.047.393.068.141.025.283.072.473.096-.103-.344-.429-.598-.796-.655"/><ellipse cx="23.367" cy="14.947" rx="1.065" ry="1.49"/><path d="m25.436 19.623c0 0-1.584 2.283-1.986 2.604-.855.684-1.148.234-.729-.34.432-.592 2.715-2.264 2.715-2.264"/></g><g fill="#d3976e"><path d="m23.754 59.15c-1.629.001-3.1 1.289-3.104 2.875l7-.008c.811 0 1.652-.645 1.654-1.439v-1.434l-5.554.006"/><path d="m39.473 57.27c-1.236 1.039-1.5 2.956-.449 4.162l5.313-4.471c.617-.518.83-1.545.305-2.148l-.953-1.09-4.216 3.547"/></g><path fill="#3b946f" d="m33.17 28.449l3.615 11.02 3.211-.183-4.174-12.894z"/><path fill="#ffdd67" d="m38.33 38.643l-1.514.304c-.539.108-.889.628-.779 1.159l.145.717c.078.383.369.668.727.76.264.943.871 2.128 2.678 1.764.299-.061 1.953-.391 1.563-2.316-.578-2.838-.578-2.838-2.82-2.388"/><path fill="#eba352" d="m37.33 41.658c1.287-.318.828-1.665.663-2.594-.028-.158-.269-.091-.241.066.139.776.604 2.02-.488 2.287-.157.039-.091.28.066.241"/><path fill="#47b892" d="m36.826 41.07h-10.06c0 0-.098-8.987.9-12.526.932-3.296 8.16-2.146 8.16-2.146l1 14.672"/><path fill="#3e4347" d="m36.787 48.43l.041-7.36h-10.07l-2.469 8.22-.539 9.96 5.556-.11.91-8.67.83-1.854.28 2.874 8.565 5.76 3.793-3.525z"/><path fill="#3b946f" d="m33.93 29.826c.17-.927-.465-1.813-1.417-1.977-.951-.167-1.861.455-2.029 1.381l-.955 5.435-4.883 3.412 2.043 2.788 5.504-3.846c.297-.209.503-.496.615-.814h.002l.004-.024c.051-.152.076-.312.083-.473l1.033-5.882"/><path fill="#ffdd67" d="m26.44 39.4l-.867-1.451c-.309-.516-.984-.693-1.51-.395l-.709.402c-.377.216-.576.615-.541 1.016-.908.604-1.947 1.646-.91 3.379.17.287 1.117 1.873 3.02.79 2.8-1.592 2.8-1.592 1.517-3.741"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m32.6 16.1l2.7-1.5v9.5h-6.1z"/><path d="m28.4 20.5c1.8 1.1.8 3.6.8 3.6 2.5 0 4.3-4.9 4.3-8l-5.1 4.4" fill="#eba352"/><path d="m34.4 3.7l-11 3.8c-1.4 2.6-.4 3.9-.5 5 0 .5-1 1.4-1.5 1.9-1.2 1 .8 1.9 1.5 1.7.5 1.1-.9 1.7 2.4 1.1 0 0-3.4 1.4-1 2.1-.2 1.3-.5 3.8 6.4 1.2 2-.8 2.8-4.4 2.8-4.4l3.4-.6-2.5-11.8" fill="#ffdd67"/><path d="m26.6 2.8c7.2-2.4 11.2 1.3 11.8 3 1.8 4.4.3 9.4-3.1 13.1 0 0-1.6-.7-1.9-2.7 0 0 1.8.8 2.6-3 .7-3.2-2.7-4.9-4.4-.5h-.5c-1-2.2.8-5-1.8-5.8-2.2-.8-6.2 1.2-6.2 1.2-.7-1.4.6-4.3 3.5-5.3" fill="#ffb300"/><path d="m25.7 12.5c0 .7-.4 1.2-.9 1.2s-.6-.6-.6-1.2c0-.7.1-1.2.6-1.2s.9.6.9 1.2" fill="#937237"/><path d="m32.6 13.4c0-1.3 1.1-2.5 2.2-2.5 0 0-1.9 1.6-1.4 3.8 0 0-.8-.3-.8-1.3" fill="#eba352"/><path d="m26.4 16.9c0 0-1.4 1-1.8 1.2-1 .5-1.1.2-.6-.3.4-.4 1.3-.7 1.3-.7l1.1-.2" fill="#937237"/><g fill="#d3976e"><path d="m21.6 58.8c-1.9 0-3.6 1.4-3.6 3.2h8.1c.9 0 1.9-.7 1.9-1.6v-1.6h-6.4"/><path d="m39.7 56.7c-1.4 1.2-1.7 3.3-.5 4.6l6.1-5c.7-.6 1-1.7.4-2.4l-1.1-1.2-4.9 4"/></g><path fill="#3b946f" d="m32.4 24.6l4.2 12.3 3.7-.2-4.8-14.4z"/><path d="m38.4 36l-1.7.3c-.6.1-1 .7-.9 1.3l.2.8c.1.4.4.7.8.8.3 1 1 2.4 3.1 2 .3-.1 2.3-.4 1.8-2.6-.7-3.1-.7-3.1-3.3-2.6" fill="#ffdd67"/><path d="m37.2 39.3c1.5-.4 1-1.9.8-2.9 0-.2-.3-.1-.3.1.2.9.7 2.2-.6 2.5-.1.1 0 .4.1.3" fill="#eba352"/><path d="m36.6 38.7h-11.6c0 0-.8-8.5 2.2-13.9 2.2-4.1 8.3-2.4 8.3-2.4l1.1 16.3" fill="#47b892"/><path fill="#3e4347" d="m36.6 46.9l.1-8.2h-11.7l-2.8 9.1-.6 11h6.4l1-9.7 1-2 .3 3.2 9.6 6.2 4.7-3.7z"/><path d="m33.3 26.2c.2-1-.5-2-1.6-2.2-1.1-.2-2.1.5-2.3 1.5l-1.1 6-5.6 3.8 2.4 3.1 6.3-4.3c.3-.2.6-.6.7-.9.1-.2.1-.3.1-.5l1.1-6.5" fill="#3b946f"/><path d="m24.7 36.8l-1-1.6c-.4-.6-1.1-.8-1.7-.4l-.8.4c-.4.2-.7.7-.6 1.1-1 .7-2.2 1.8-1 3.8.2.3 1.3 2.1 3.5.9 3.1-1.8 3.1-1.8 1.6-4.2" fill="#ffdd67"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b7.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b7.svg
index 6365b46..ff92a91 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><circle fill="#333" cx="32" cy="32" r="24"/><g fill="#fff"><path d="m41.969 47.21l-3.881-9.293c-.281-.762-.543-3.213-.543-3.213-.023-.262-.068-.52-.137-.766l-2.289-8.8 2.967 1.515v2.787c0 .881.699 1.592 1.564 1.592.863 0 1.564-.711 1.564-1.592v-4.756l-8.361-4.262-.008-.003c-.532-.256-1.126-.398-1.755-.398-1.228 0-2.329.547-3.083 1.415l-.007-.008-4.02 4.099h-5.02c-.863 0-1.563.712-1.563 1.594 0 .883.7 1.594 1.563 1.594h6.318l2.271-2.313 1.45 6.734-4.148 4.229v10.5c0 .883.701 1.596 1.564 1.596.865 0 1.564-.713 1.564-1.596v-9.18l3.311-3.371c.279-.281.666-.455 1.092-.455.635 0 1.183.387 1.426.941l5.289 12.658c.23.59.793 1 1.45 1 .864 0 1.565-.713 1.565-1.596-.001-.232-.05-.453-.139-.654"/><circle cx="29.749" cy="15.694" r="2.931"/></g><path transform="matrix(-.7071-.7071.7071-.7071 32 77.25)" fill="#ed4c5c" d="m2.815 29h58.37v5.999h-58.37z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><circle cx="32" cy="32" r="24" fill="#333"/><g fill="#fff"><path d="m42 47.2l-3.9-9.3c-.3-.8-.5-3.2-.5-3.2 0-.3-.1-.5-.1-.8l-2.3-8.8 3 1.5v2.8c0 .9.7 1.6 1.6 1.6.9 0 1.6-.7 1.6-1.6v-4.8l-8.4-4.3c-.5-.3-1.1-.4-1.8-.4-1.2 0-2.3.5-3.1 1.4l-4 4.1h-5c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6h6.3l2.3-2.3 1.5 6.7-4.1 4.2v10.5c0 .9.7 1.6 1.6 1.6s1.6-.7 1.6-1.6v-9.2l3.3-3.4c.3-.3.7-.5 1.1-.5.6 0 1.2.4 1.4.9l5.3 12.7c.2.6.8 1 1.5 1 .9 0 1.6-.7 1.6-1.6-.4 0-.4-.2-.5-.4"/><circle cx="29.8" cy="15.7" r="2.9"/></g><path transform="matrix(.7071-.7071.7071.7071-13.2553 31.9997)" fill="#ff5a79" d="m29 2.8h6v58.4h-6z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b8.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b8.svg
index faa73dd..8b9b118 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b8.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M34.121,0.893c-1.166-1.19-3.076-1.19-4.242,0L2.121,29.201C0.955,30.391,0,32.741,0,34.425V60.94
- C0,62.622,1.35,64,3,64h58c1.65,0,3-1.378,3-3.06V34.425c0-1.684-0.955-4.034-2.121-5.224L34.121,0.893z"/><path fill="none" stroke="#000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="m33.799 7.162c-.988-.998-2.607-.998-3.596 0l-23.519 23.73c-.988.996-1.799 2.967-1.799 4.378v22.23c0 1.41 1.145 2.564 2.543 2.564h49.15c1.396 0 2.541-1.154 2.541-2.564v-22.23c0-1.411-.809-3.382-1.797-4.378l-23.519-23.73z"/><g fill-rule="evenodd"><path d="m41.519 23.58c0 2.64-2.137 4.779-4.78 4.779-2.636 0-4.776-2.139-4.776-4.779s2.141-4.779 4.776-4.779c2.643 0 4.78 2.139 4.78 4.779"/><path d="m29.01 27.46c0 2.143-1.736 3.88-3.881 3.88-2.14 0-3.879-1.737-3.879-3.88s1.739-3.88 3.879-3.88c2.144 0 3.881 1.737 3.881 3.88"/></g><g stroke="#000" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10"><g stroke-width="2"><path d="m23.09 39.23l-3.1 6.18 9.563-.09-2.513-6.09 1.07-6.377h-5.95z"/><path d="m34.895 30.727l.602 10.333h5.513l.747-11.95z"/><g fill="none"><path d="m21.95 32.853l-2.267 4.068-4.03 2.983"/><path d="m34.795 31.06l-2.755 5.689-1.506.692"/><path d="m41.757 29.11l3.061 4.21-2.478 4.9"/><path d="m28.393 33.26l2.322 3.651-1.313 3.871"/></g></g><g fill="none"><g stroke-width="3"><path d="m37.416 38.71l-3.576 7.117.549 8.805"/><path d="m40.33 38.03l-.447 7.884 4.951 7.98"/></g><g stroke-width="2"><path d="m22.582 43.829l-2.02 4.191-.301 6.3"/><path d="m26.16 44.31l.363 3.03 3.677 6.554"/></g></g></g><path transform="matrix(.9622.2724-.2724.9622 12.465-6.475)" d="m26.963 40.23h5.18v2.842h-5.18z"/><path transform="matrix(.9293.3693-.3693.9293 18.04-13.12)" d="m40.09 38.474h6.386v4.163h-6.386z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m34 2.8c-1.1-1.1-2.9-1.1-4 0l-26 26.6c-1.1 1.1-2 3.3-2 4.9v24.9c0 1.5 1.3 2.8 2.8 2.8h54.4c1.5 0 2.8-1.3 2.8-2.9v-24.8c0-1.6-.9-3.8-2-4.9l-26-26.6" fill="#ffce31"/><g fill="#231f20"><path d="m55 59.7h-46c-2.1 0-3.8-1.7-3.8-3.8v-20.8c0-1.7.9-3.9 2.1-5.1l22-22.2c.7-.8 1.7-1.2 2.7-1.2 1 0 2 .4 2.7 1.1l22 22.2c1.2 1.2 2.1 3.4 2.1 5.1v20.8c0 2.2-1.7 3.9-3.8 3.9m-23-50.3c-.3 0-.5.1-.7.3l-22 22.3c-.7.6-1.3 2.1-1.3 3.1v20.8c0 .5.4 1 1 1h46c.5 0 1-.5 1-1v-20.8c0-1-.6-2.4-1.3-3.1l-22-22.3c-.2-.2-.4-.3-.7-.3"/><path d="m36.4 28.6c2.5 0 4.5-2 4.5-4.5s-2-4.5-4.5-4.5c-2.5 0-4.5 2-4.5 4.5s2.1 4.5 4.5 4.5"/><circle cx="25.6" cy="27.7" r="3.6"/><path d="m40.8 44.7l.2-3.2 3.6 1.4 1.4-3.6-3.3-1.3 2.2-4.3c.2-.3.1-.7-.1-1l-2.9-3.9c0 0-.1-.1-.1-.1 0 0 0-.1-.1-.1 0 0 0 0-.1 0-.1-.1-.2-.1-.2-.1 0 0-.1 0-.1 0-.1 0-.3 0-.4 0l-6.4 1.5c-.4.1-.6.4-.7.8l-2.4 5-1.9-3c-.1-.1-.1-.1-.2-.2 0-.1-.1-.2-.1-.3-.2-.2-.4-.3-.7-.3h-5.6c0 0 0 0-.1 0-.4-.1-.8.1-.9.5l-2 3.6-3.6 2.7c-.4.3-.5.9-.2 1.3.2.2.5.4.8.4.2 0 .4-.1.6-.2l3.8-2.8c.1-.1.2-.2.3-.3l.9-1.7.5 3.2-2.8 5.5c-.1.3-.1.6 0 .9.2.3.5.4.8.4h.2l-.5 1.1c-.1.1-.1.2-.1.4l-.3 5.9c0 .5.4 1 .9 1 .5 0 .9-.4.9-.9l.3-5.7.9-1.8h2.8l.1 1c0 .1.1.2.1.3l3.4 6.1c.2.3.5.5.8.5.2 0 .3 0 .5-.1.5-.3.6-.8.4-1.3l-3.4-6-.1-.6h2c.3 0 .6-.2.8-.4.2-.3.2-.6.1-.9l-.7-1.6 1.8.5.7-2.6-1.7-.5.7-2.2 1-.5c.2-.1.4-.2.5-.4l1.1-2.3.3 6c0 0 0 0 0 0l-1.9 3.7c-.1.2-.2.5-.1.7l.5 8.3c0 .7.7 1.3 1.4 1.3 0 0 .1 0 .1 0 .8 0 1.4-.7 1.3-1.5l-.5-7.9 1.9-3.8h1.1l-.3 3.7c0 .3.1.6.2.8l4.6 7.5c.3.4.7.7 1.2.7.3 0 .5-.1.7-.2.7-.4.9-1.3.5-1.9l-4.4-7.2m-12.2-5.3l-.3-.7.6-3.3.9 1.4c0 0 0 0 0 0l-.9 2.6h-.3m13.1-3.6l.2-3.8 1 1.4-1.2 2.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6b9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6b9.svg
index 6a00b08..962b094 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6b9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6b9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m38 23h-6-6c-1 0-2 1-2 2l-1 11h3l1-9 1 24h3l1-13 1 13h3l1-24 1 9h3l-1-11c0-1-1-2-2-2"/><path d="M36,19c0,1-1,2-2,1.999h-4C29,21,28,20,28,19v-4c0-1,1-2,2-2h4c1,0,2,1,2,2V19z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m38 23h-6-6c-1 0-2 1-2 2l-1 11h3l1-9 1 24h3l1-13 1 13h3l1-24 1 9h3l-1-11c0-1-1-2-2-2"/><path d="m36 19c0 1-1 2-2 2h-4c-1 0-2-1-2-2v-4c0-1 1-2 2-2h4c1 0 2 1 2 2v4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ba.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ba.svg
index e365b62..b98439e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ba.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ba.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#e84d88" cx="32" cy="33" r="30"/><g fill="#fff"><path d="m36 24h-4-4c-1 0-2 1-2 2l-3 11h3l2-9v4l-2 9h2v11h3v-11h2v11h3v-11h2l-2-9v-4l2 9h3l-3-11c0-1-1-2-2-2"/><path d="M36,20c0,1-1,2-2,1.999h-4C29,22,28,21,28,20v-4c0-1,1-2,2-2h4c1,0,2,1,2,2V20z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><g fill="#fff"><path d="m36 23h-4-4c-1 0-2 1-2 2l-3 11h3l2-9v4l-2 9h2v11h3v-11h2v11h3v-11h2l-2-9v-4l2 9h3l-3-11c0-1-1-2-2-2"/><path d="m36 19c0 1-1 2-2 2h-4c-1 0-2-1-2-2v-4c0-1 1-2 2-2h4c1 0 2 1 2 2v4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6bb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6bb.svg
index 858cedf..8ece75f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6bb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6bb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m46 23h-4-4c-1 0-2 1-2 2l-3 11h3l2-9v4l-2 9h2v11h3v-11h2v11h3v-11h2l-2-9v-4l2 9h3l-3-11c0-1-1-2-2-2"/><path d="M46,19c0,1-1,2-2,1.999h-4C39,21,38,20,38,19v-4c0-1,1-2,2-2h4c1,0,2,1,2,2V19z"/><path d="m28 22.999h-6-6c-1 0-2 1-2 2l-1 11h3l1-9 1 24h3l1-13 1 13h3l1-24 1 9h3l-1-11c0-1-1-2-2-2"/><path d="m26 18.999c0 1-1 2-2 1.999h-4c-1 .001-2-.999-2-1.999v-4c0-1 1-2 2-2h4c1 0 2 1 2 2v4"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m46 23h-4-4c-1 0-2 1-2 2l-3 11h3l2-9v4l-2 9h2v11h3v-11h2v11h3v-11h2l-2-9v-4l2 9h3l-3-11c0-1-1-2-2-2"/><path d="m46 19c0 1-1 2-2 2h-4c-1 0-2-1-2-2v-4c0-1 1-2 2-2h4c1 0 2 1 2 2v4"/><path d="m28 23h-6-6c-1 0-2 1-2 2l-1 11h3l1-9 1 24h3l1-13 1 13h3l1-24 1 9h3l-1-11c0-1-1-2-2-2"/><path d="m26 19c0 1-1 2-2 2h-4c-1 0-2-1-2-2v-4c0-1 1-2 2-2h4c1 0 2 1 2 2v4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6bc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6bc.svg
index 73249da..4741117 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6bc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6bc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ff8736" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m37 19.501c0 1.25-1.25 2.5-2.5 2.499h-5c-1.25.001-2.5-1.249-2.5-2.499v-5c0-1.25 1.25-2.5 2.5-2.5h5c1.25 0 2.5 1.25 2.5 2.5v5"/><path d="m31 41l-5-3-3 7 3 7 3-1-2-6z"/><path d="m33 41l5-3 3 7-3 7-3-1 2-6z"/><path d="m36 24h-8.05l-7.947-3-1 2 7 5v6c0 2 1 3 3 3h6c2 0 3-1 3-3v-6l7-5-1-2-8 3"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#eda454"/><g fill="#fff"><path d="m37 19.5c0 1.2-1.2 2.5-2.5 2.5h-5c-1.2 0-2.5-1.2-2.5-2.5v-5c0-1.2 1.2-2.5 2.5-2.5h5c1.2 0 2.5 1.2 2.5 2.5v5"/><path d="m31 41l-5-3-3 7 3 7 3-1-2-6z"/><path d="m33 41l5-3 3 7-3 7-3-1 2-6z"/><path d="m36 24h-8.1l-7.9-3-1 2 7 5v6c0 2 1 3 3 3h6c2 0 3-1 3-3v-6l7-5-1-2-8 3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6bd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6bd.svg
index 7fc7ccf..5a108e2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6bd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6bd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#9e958f" d="m58.25 35.837c0 8.02-6.497 14.513-14.513 14.513v-14.513h14.513"/><path fill="#e2d8c7" d="m59.27 3.328h-9.775c-.842 0-1.525.749-1.525 1.305v29.938c0 .557.684 1.604 1.525 1.604h9.775c.843 0 1.525-1.047 1.525-1.604v-29.938c0-.556-.683-1.305-1.525-1.305"/><g fill="#c6bbb3"><path d="m60.31.001h-11.859c-1.022 0-1.85.908-1.85 1.583v1.922c0 .674.827 1.945 1.85 1.945h11.859c1.022 0 1.849-1.271 1.849-1.945v-1.923c-.001-.674-.827-1.582-1.849-1.582"/><path d="m43.957 51.985c0-2.492.648-4.836 1.787-6.879h-35.27c1.139 2.043 1.787 4.387 1.787 6.879 0 4.686-2.29 7.903-5.831 10.523h43.35c-3.541-2.619-5.83-5.837-5.83-10.523"/></g><g fill="#e2d8c7"><path d="m50.99 62.51c0 .826-.683 1.494-1.525 1.494h-42.707c-.842 0-1.525-.668-1.525-1.494 0-.826.683-1.495 1.525-1.495h42.707c.843 0 1.525.669 1.525 1.495"/><path d="m28.11 53.808c12.635 0 22.878-8.05 22.878-17.972h-45.757c0 9.927 10.243 17.972 22.879 17.972"/></g><path fill="#c6bbb3" d="m48.685 35.09c0 1.014-.683 1.834-1.526 1.834h-43.791c-.842 0-1.525-.82-1.525-1.834 0-1.014.683-1.834 1.525-1.834h43.791c.843 0 1.526.82 1.526 1.834"/><path fill="#42ade2" d="m48.685 31.421c0 1.014-.683 1.835-1.526 1.835h-43.791c-.842 0-1.525-.822-1.525-1.835 0-1.014.683-1.834 1.525-1.834h43.791c.843 0 1.526.821 1.526 1.834"/><g fill="#636a6b"><circle cx="47.967" cy="33.537" r="2.965"/><path d="m57.951 7.351c0 1.972-1.599 3.571-3.571 3.571-1.972 0-3.571-1.599-3.571-3.571h7.142"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.2 35.8c0 8-6.5 14.5-14.5 14.5v-14.5h14.5" fill="#9e958f"/><path d="m59.3 3.3h-9.8c-.8 0-1.5.7-1.5 1.3v29.9c0 .6.7 1.6 1.5 1.6h9.8c.8 0 1.5-1 1.5-1.6v-29.9c0-.5-.7-1.3-1.5-1.3" fill="#e2d8c7"/><g fill="#c6bbb3"><path d="m60.3 0h-11.8c-1 0-1.8.9-1.8 1.6v1.9c0 .7.8 1.9 1.8 1.9h11.9c1 0 1.8-1.3 1.8-1.9v-1.9c0-.7-.9-1.6-1.9-1.6"/><path d="m44 52c0-2.5.6-4.8 1.8-6.9h-35.3c1.1 2 1.8 4.4 1.8 6.9 0 4.7-2.3 7.9-5.8 10.5h43.4c-3.7-2.6-5.9-5.8-5.9-10.5"/></g><g fill="#e2d8c7"><path d="m51 62.5c0 .8-.7 1.5-1.5 1.5h-42.7c-.8 0-1.5-.7-1.5-1.5 0-.8.7-1.5 1.5-1.5h42.7c.8 0 1.5.7 1.5 1.5"/><path d="m28.1 53.8c12.6 0 22.9-8 22.9-18h-45.8c0 10 10.3 18 22.9 18"/></g><path d="m48.7 35.1c0 1-.7 1.8-1.5 1.8h-43.8c-.8 0-1.5-.8-1.5-1.8 0-1 .7-1.8 1.5-1.8h43.8c.8 0 1.5.8 1.5 1.8" fill="#c6bbb3"/><path d="m48.7 31.4c0 1-.7 1.8-1.5 1.8h-43.8c-.8 0-1.5-.8-1.5-1.8 0-1 .7-1.8 1.5-1.8h43.8c.8 0 1.5.8 1.5 1.8" fill="#42ade2"/><g fill="#636a6b"><circle cx="48" cy="33.5" r="3"/><path d="m58 7.4c0 2-1.6 3.6-3.6 3.6s-3.6-1.6-3.6-3.6h7.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6be.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6be.svg
index d686cc9..71390fb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6be.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6be.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="M15.585,45L11,19h3.97l2.895,17.855L21.375,19h4.609l3.365,18.16L32.296,19h3.905l-4.667,26h-4.111
- l-3.822-19.438L19.79,45H15.585z"/><path d="m46 41.29c-1.93 0-3.5-1.669-3.5-3.716v-11.142c0-2.047 1.57-3.713 3.5-3.713s3.5 1.666 3.5 3.713h3.5c0-4.094-3.139-7.429-7-7.429-3.857 0-7 3.335-7 7.429v11.143c0 4.096 3.143 7.428 7 7.428 3.861 0 7-3.332 7-7.429h-3.5c0 2.047-1.57 3.716-3.5 3.716"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="M15.6,45L11,19h4l2.9,17.9L21.4,19H26l3.4,18.2L32.3,19h3.9l-4.7,26h-4.1l-3.8-19.4L19.8,45H15.6z"/><path d="m46 41.3c-1.9 0-3.5-1.7-3.5-3.7v-11.2c0-2 1.6-3.7 3.5-3.7 1.9 0 3.5 1.7 3.5 3.7h3.5c0-4.1-3.1-7.4-7-7.4-3.9 0-7 3.3-7 7.4v11.1c0 4.1 3.1 7.4 7 7.4 3.9 0 7-3.3 7-7.4h-3.5c0 2.1-1.6 3.8-3.5 3.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6bf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6bf.svg
index 867a28d..dd21474 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6bf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6bf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="M36.05 21.07 50.899 2 61.16 2 49.658 21.07z"/><path fill="#b2c1c0" d="m48.31 5.329c0 0 3.038 1.845 6.427 1.672 3.412-.173 6.426-5 6.426-5l-5.494 9.108-7.359-5.779"/><path fill="#e8e8e8" d="M57.792,37.335L23.236,9.803C39.5-11.71,74.059,15.822,57.792,37.335z"/><path fill="#b2c1c0" d="m27.725 5.336c-3.109 0-7.555 3.554-7.555 3.554l38.24 30.521c0 0 3.472-4.224 2.613-8.793-.361-1.922-1.594-4.547-3.264-7.08-1.68-2.539-3.797-4.97-6.184-7.182-2.392-2.217-5.05-4.209-7.794-5.871-2.743-1.661-5.571-2.986-8.313-3.879-2.729-.887-5.365-1.344-7.743-1.274"/><path fill="#62727a" d="m26.461 6.734c-2.529.074-5.276.768-6.951 2.86-1.792 2.237-1.72 5.334-.977 7.979 1.632 5.804 6 10.739 10.42 14.532 4.773 4.101 10.433 7.466 16.489 9.08 4.626 1.229 12.212 1.836 14.245-3.939 1.319-3.747-.439-7.999-2.34-11.188-2.145-3.6-5.01-6.733-8.156-9.432-3.279-2.813-6.932-5.203-10.83-7-3.705-1.707-7.8-3.01-11.9-2.888"/><path fill="#b2c1c0" d="m27.922 8.807c-2.506.07-5.258.855-6.627 3.198-1.406 2.404-.863 5.446.11 7.901 2.228 5.628 6.889 10.241 11.662 13.658 4.953 3.545 11.225 6.712 17.416 6.417 2.487-.119 5.166-.998 6.438-3.373 1.346-2.512.681-5.615-.373-8.102-2.33-5.506-6.903-10.01-11.643-13.374-4.86-3.446-10.936-6.494-16.983-6.325"/><g fill="#3e4347"><path d="m44.847 33.481c-1.208-.018-.926 1.188-.394 1.861.635.803 1.712 1.537 2.75 1.56 1.209.027.951-1.167.414-1.849-.637-.812-1.723-1.556-2.77-1.572"/><path d="m36.36 23.532c-1.371.005-.992 1.413-.405 2.156.712.902 1.927 1.748 3.096 1.752 1.379.008 1.017-1.396.424-2.15-.713-.909-1.938-1.763-3.115-1.758"/><path d="m29.52 11.122c-1.535.034-1.037 1.67-.398 2.479.788 1 2.137 1.957 3.438 1.938 1.543-.022 1.069-1.646.423-2.469-.79-1.01-2.153-1.978-3.463-1.948"/><path d="m25.607 18.933c-1.233.017-.8 1.325-.294 1.959.637.797 1.715 1.568 2.758 1.563 1.232-.006.813-1.313.307-1.951-.636-.8-1.725-1.583-2.771-1.571"/><path d="m33.23 29.487c-.921-.004-.627.949-.245 1.429.481.602 1.284 1.165 2.065 1.173 1.026.012.561-1.088.148-1.549-.481-.538-1.232-1.049-1.968-1.053"/><path d="m41.1 17.288c-1.679.021-1.263 1.742-.533 2.677.867 1.112 2.357 2.142 3.793 2.134 1.68-.007 1.281-1.724.553-2.665-.868-1.119-2.373-2.163-3.813-2.146"/><path d="m49.885 27.895c-1.512-.007-1.198 1.495-.524 2.356.79 1.012 2.136 1.921 3.435 1.938 1.508.02 1.219-1.475.545-2.342-.791-1.018-2.15-1.947-3.456-1.952"/></g><g fill="#8ad8ff"><path d="m30.03 11.535l-27.99 17.275v1l28.664-17.6z"/><path d="m26.442 19.13l-24.402 20.555v1l24.882-20.846z"/><path d="m27.17 19.929l-25.13 24.401v1l25.655-24.845z"/><path d="m28.01 20.851l-25.97 27.23v1.01l26.455-27.743z"/><path d="m31.27 12.553l-29.23 19.81v1.034l29.898-20.07z"/><path d="m32.31 13.626l-30.27 22.356v1.258l30.88-22.822z"/><path d="m41.18 17.902l-39.14 33.28v1.39l39.954-34.02z"/><path d="m36.485 23.616l-34.445 32.444v1.4l35.14-33.13z"/><path d="M42.638 18.933 7.839 62 9.127 62 43.41 19.563z"/><path d="M37.32 24.363 1.961 62 3.249 62 38.1 24.993z"/><path d="M38.697 25.73 13 62 14.29 62 39.474 26.36z"/><path d="m43.973 19.929l-26.2 42.07h1.141l25.867-41.41z"/><path d="m49.932 28.312l-19.792 33.688h1.07l19.577-33.2z"/><path d="m44.73 33.748l-22.895 28.25h1.068l22.683-27.77z"/><path d="M45.813 34.436 26.08 62 27.15 62 46.669 34.923z"/><path d="M46.994 35.19 34.11 62 35.18 62 47.85 35.68z"/><path d="m51.34 29.27l-13.96 32.73h1.01l13.84-32.29z"/><path d="m52.52 30.17l-11.632 31.83h1l11.579-31.33z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="M36 21.1 50.9 2 61.2 2 49.7 21.1z"/><path d="m48.3 5.3c0 0 3 1.8 6.4 1.7 3.4-.2 6.4-5 6.4-5l-5.5 9.1-7.3-5.8" fill="#b2c1c0"/><path d="m57.8 37.3l-34.6-27.5c16.3-21.5 50.9 6 34.6 27.5" fill="#e8e8e8"/><path d="m27.7 5.3c-3.1 0-7.6 3.6-7.6 3.6l38.2 30.5c0 0 3.5-4.2 2.6-8.8-.4-1.9-1.6-4.5-3.3-7.1-1.7-2.5-3.8-5-6.2-7.2-2.4-2.2-5-4.2-7.8-5.9-2.7-1.7-5.6-3-8.3-3.9-2.6-.8-5.2-1.2-7.6-1.2" fill="#b2c1c0"/><path d="m26.5 6.7c-2.5.1-5.3.8-7 2.9-1.8 2.2-1.7 5.3-1 8 1.6 5.8 6 10.7 10.4 14.5 4.8 4.1 10.4 7.5 16.5 9.1 4.6 1.2 12.2 1.8 14.2-3.9 1.3-3.7-.4-8-2.3-11.2-2.1-3.6-5-6.7-8.2-9.4-3.3-2.8-6.9-5.2-10.8-7-3.6-1.8-7.7-3.1-11.8-3" fill="#62727a"/><path d="m27.9 8.8c-2.5.1-5.3.9-6.6 3.2-1.4 2.4-.9 5.4.1 7.9 2.2 5.6 6.9 10.2 11.7 13.7 5 3.5 11.2 6.7 17.4 6.4 2.5-.1 5.2-1 6.4-3.4 1.3-2.5.7-5.6-.4-8.1-2.3-5.5-6.9-10-11.6-13.4-4.9-3.4-10.9-6.5-17-6.3" fill="#b2c1c0"/><g fill="#3e4347"><path d="m44.8 33.5c-1.2 0-.9 1.2-.4 1.9.6.8 1.7 1.5 2.8 1.6 1.2 0 1-1.2.4-1.8-.6-1-1.7-1.7-2.8-1.7"/><path d="m36.4 23.5c-1.4 0-1 1.4-.4 2.2.7.9 1.9 1.7 3.1 1.8 1.4 0 1-1.4.4-2.1-.7-1-2-1.9-3.1-1.9"/><path d="m29.5 11.1c-1.5 0-1 1.7-.4 2.5.8 1 2.1 2 3.4 1.9 1.5 0 1.1-1.6.4-2.5-.7-.9-2.1-1.9-3.4-1.9"/><path d="m25.6 18.9c-1.2 0-.8 1.3-.3 2 .6.8 1.7 1.6 2.8 1.6 1.2 0 .8-1.3.3-2-.7-.8-1.7-1.6-2.8-1.6"/><path d="m33.2 29.5c-.9 0-.6.9-.2 1.4.5.6 1.3 1.2 2.1 1.2 1 0 .6-1.1.1-1.5-.5-.6-1.2-1.1-2-1.1"/><path d="m41.1 17.3c-1.7 0-1.3 1.7-.5 2.7.9 1.1 2.4 2.1 3.8 2.1 1.7 0 1.3-1.7.6-2.7-1-1.1-2.5-2.1-3.9-2.1"/><path d="m49.9 27.9c-1.5 0-1.2 1.5-.5 2.4.8 1 2.1 1.9 3.4 1.9 1.5 0 1.2-1.5.5-2.3-.8-1.1-2.1-2-3.4-2"/></g><g fill="#8ad8ff"><path d="m30 11.5l-28 17.3v1l28.7-17.6z"/><path d="m26.4 19.1l-24.4 20.6v1l24.9-20.9z"/><path d="m27.2 19.9l-25.2 24.4v1l25.7-24.8z"/><path d="m28 20.9l-26 27.2v1l26.5-27.8z"/><path d="m31.3 12.6l-29.3 19.8v1l29.9-20.1z"/><path d="M32.3 13.6 2 36 2 37.2 32.9 14.4z"/><path d="M41.2 17.9 2 51.2 2 52.6 42 18.5z"/><path d="M36.5 23.6 2 56.1 2 57.5 37.2 24.3z"/><path d="M42.6 18.9 7.8 62 9.1 62 43.4 19.6z"/><path d="M37.3 24.4 2 62 3.2 62 38.1 25z"/><path d="M38.7 25.7 13 62 14.3 62 39.5 26.4z"/><path d="m44 19.9l-26.2 42.1h1.1l25.9-41.4z"/><path d="m49.9 28.3l-19.8 33.7h1.1l19.6-33.2z"/><path d="m44.7 33.7l-22.9 28.3h1.1l22.7-27.8z"/><path d="m45.8 34.4l-19.7 27.6h1.1l19.5-27.1z"/><path d="m47 35.2l-12.9 26.8h1.1l12.6-26.3z"/><path d="m51.3 29.3l-13.9 32.7h1l13.8-32.3z"/><path d="m52.5 30.2l-11.6 31.8h1l11.6-31.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fb.svg
index f6541d8..fa9921f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28.12 2c1.63.796 3.02 2.424 3.362 4.483.354 2.054-.401 4.188-1.689 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.086.405.221.798.381 1.186.168.384.36.764.71 1.059-.471-.043-.901-.342-1.255-.654-.362-.32-.657-.701-.933-1.099-.514-.81-.896-1.719-1.08-2.691-.189-.97-.192-2.01.047-3.02.118-.506.298-1 .53-1.479.126-.234.246-.457.415-.7.184-.28.262-.366.449-.612.952-1.152 1.599-2.532 1.66-4.01.095-1.491-.499-3.071-1.449-4.634"/><path d="m38.17 2c1.629.796 3.02 2.424 3.363 4.483.352 2.056-.402 4.189-1.691 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.381 1.186.17.384.361.764.711 1.059-.471-.043-.9-.342-1.254-.654-.363-.32-.658-.701-.936-1.097-.514-.812-.896-1.721-1.078-2.693-.191-.97-.193-2.01.045-3.02.119-.506.299-1 .531-1.479.127-.234.246-.456.414-.7.184-.28.262-.366.451-.612.951-1.152 1.598-2.532 1.66-4.01.094-1.491-.5-3.071-1.449-4.634"/><path d="m48.23 2c1.631.796 3.02 2.424 3.363 4.483.354 2.056-.402 4.189-1.691 5.725-.924 1.091-1.383 2.487-1.406 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.381 1.186.168.384.361.764.709 1.059-.469-.043-.9-.342-1.254-.654-.361-.32-.658-.701-.934-1.097-.514-.812-.896-1.721-1.078-2.693-.191-.97-.193-2.01.043-3.02.119-.508.301-1 .531-1.48.127-.234.246-.456.416-.7.182-.278.26-.366.449-.612.951-1.152 1.598-2.532 1.66-4.01.094-1.491-.497-3.071-1.449-4.634"/></g><path fill="#ffe1bd" d="m50.928 36.38c2.18 3.65-4.203 6.561-7.848 6.561-3.641 0-12.35-1.303-10.622-5.188 1.815-4.076 8.897-11.418 12.54-11.418 3.641 0 3.783 6.451 5.93 10.05"/><g fill="#e6b796"><path d="m45.35 31.915c-.387 1.095-1.328 5.667-2.322 5.841"/><path d="m21.636 32.598l-11.793-.186c0 0 3.543 3.309 4.756 8l7.04-3.574c-.976-1.647 0-4.242 0-4.242"/></g><path fill="#594640" d="m3.953 31.438c-3.51-5.909-1.207-8.179-1.207-8.179.545-4.383 9.176-7.85 12.588-7.151 6.982 1.428 6.285 7.626 5.361 7.955l-8.51 7.313c0 0 2.607 6.605 7 6.312l-8.514 5.061-6.72-11.311"/><path fill="#ffe1bd" d="m20.18 34.445c-3.063 1.031-3.684 2.449-8.359-3.683l2.061-1.225c0 0 1.666-.498.096-6.442-.709-2.693.914-5.99 2.357-4.899 2.998 2.269 2.18 3.976 2.996 4.61 1.486 1.156 2.502-.004 3.043 1.023.291.554-.668 1.239-.609 1.412.15.434.57.424 1.234.45.662.025-.025.855.732 1.744.758.889 1.07 1.211 1.07 1.211-.229.516-.76.813-.307 1.359 1.059 1.277 1.575 2.458-4.314 4.44"/><path fill="#e6b796" d="m18.634 23.359c-.246-.214-.336-.444-.434-.701-.092-.26-.186-.542-.342-.835-.156-.283-.416-.591-.75-.712-.324-.127-.641-.084-.893.049.289.106.545.203.73.352.186.147.318.33.443.567.137.229.252.506.445.772.176.265.495.538.801.508"/><path fill="#ffe1bd" d="m9.82 31.858c1.258 1.322 3.01 1.623 3.908.675.902-.947.615-2.787-.645-4.107-1.258-1.318-3.01-1.622-3.908-.674-.902.95-.613 2.788.645 4.106"/><path fill="#574137" d="m10.04 28.458c.299-.168.67-.246 1.051-.193.379.063.748.252 1.025.523.229.217.408.477.531.756.092-.107.215-.186.355-.17-.08.195-.064.346-.053.496.02.148.045.291.09.424.039.135.094.256.166.381.074.123.186.246.359.389-.176.1-.42.074-.623-.061-.207-.131-.348-.355-.422-.58-.064-.229-.072-.467.008-.676.016-.041.037-.08.059-.119-.529-.393-1.01-.725-1.52-.789-.273-.047-.555-.018-.848.045-.289.066-.582.176-.91.266.185-.29.429-.526.732-.692"/><path fill="#c94747" d="m22.777 27.315c.141-.278.27-.556.336-.822.057-.257.061-.526-.287-.813.178-.05.424.017.609.193.186.183.285.445.314.68.027.226.012.433-.027.627.199.056.414.162.576.324.18.162.293.361.373.551.068.197.119.387.129.592-.324-.242-.596-.5-.832-.59-.119-.041-.217-.066-.346-.07-.127-.01-.271-.006-.424-.002l-.779.021.358-.691"/><path fill="#574137" d="m15.351 24.06c.371-.068.676.033 1.021.077.342.062.699.104 1.074.087.371-.02.771-.103 1.104-.345.338-.23.555-.636.537-1.049-.598.479-1.1.485-1.762.523-.324.02-.674.029-1.033.106-.339.072-.781.213-.941.601"/><g fill="#c6bbb3"><path d="m13.08 57.48c0 2.5-.893 4.525-2.879 4.525-1.988 0-3.385-2.182-2.52-4.525 1.32-3.572 4.49-5.49 6.479-5.49 1.986-.001-1.08 2.992-1.08 5.49"/><path d="m50.93 57.48c0 2.5.893 4.525 2.879 4.525s3.385-2.182 2.52-4.525c-1.318-3.572-4.49-5.49-6.477-5.49-1.989-.001 1.078 2.992 1.078 5.49"/></g><path fill="#e2d8c7" d="m59.1 40.1c0 18.416-12.03 18.789-26.866 18.789-14.836 0-26.865-.373-26.865-18.789h53.731"/><path fill="#c6bbb3" d="m5.369 40.961h53.731v1.191h-53.731z"/><path fill="#ddd3ca" d="m59.4 41.4h-54.31c-4.115 0-4.115-4.754 0-4.754h54.31c3.471 0 3.471 4.754 0 4.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 36.4c2.2 3.7-4.2 6.6-7.8 6.6-3.6 0-12.4-1.3-10.6-5.2 1.8-4.1 8.9-11.4 12.5-11.4 3.6-.1 3.8 6.4 5.9 10" fill="#ffe1bd"/><g fill="#e6b796"><path d="M45.4,31.9C45,33,44,37.6,43,37.8"/><path d="m21.6 32.6l-11.8-.2c0 0 3.5 3.3 4.8 8l7-3.6c-.9-1.6 0-4.2 0-4.2"/></g><path d="m3.9 31.4c-3.5-5.9-1.2-8.2-1.2-8.2.5-4.4 9.2-7.9 12.6-7.2 7 1.4 6.3 7.6 5.4 8l-8.5 7.3c0 0 2.6 6.6 7 6.3l-8.5 5.1-6.8-11.3" fill="#594640"/><path d="m20.2 34.4c-3.1 1-3.7 2.4-8.4-3.7l2.1-1.2c0 0 1.7-.5.1-6.4-.7-2.7.9-6 2.4-4.9 3 2.3 2.2 4 3 4.6 1.5 1.2 2.5 0 3 1 .3.6-.7 1.2-.6 1.4.1.4.6.4 1.2.5.7 0 0 .9.7 1.7.8.9 1.1 1.2 1.1 1.2-.2.5-.8.8-.3 1.4 1 1.3 1.6 2.5-4.3 4.4" fill="#ffe1bd"/><path d="m18.6 23.4c-.2-.2-.3-.4-.4-.7-.1-.3-.2-.5-.3-.8-.2-.3-.4-.6-.8-.7-.3-.1-.6-.1-.9 0 .3.1.5.2.7.4.2.1.3.3.4.6.1.2.3.5.4.8.3.1.6.4.9.4" fill="#e6b796"/><path d="m9.8 31.9c1.3 1.3 3 1.6 3.9.7.9-.9.6-2.8-.6-4.1-1.3-1.3-3-1.6-3.9-.7-.9.9-.6 2.7.6 4.1" fill="#ffe1bd"/><path d="m10 28.5c.3-.2.7-.2 1.1-.2.4.1.7.3 1 .5.2.2.4.5.5.8.1-.1.2-.2.4-.2-.1.2-.1.3-.1.5 0 .1 0 .3.1.4 0 .1.1.3.2.4.1.1.2.2.4.4-.2.1-.4.1-.6-.1-.2-.1-.3-.4-.4-.6-.1-.2-.1-.5 0-.7 0 0 0-.1.1-.1-.5-.4-1-.7-1.5-.8-.3 0-.6 0-.8 0-.3.1-.6.2-.9.3 0-.2.2-.5.5-.6" fill="#574137"/><path d="m22.8 27.3c.1-.3.3-.6.3-.8.1-.3.1-.5-.3-.8.2 0 .4 0 .6.2.2.2.3.4.3.7 0 .2 0 .4 0 .6.2.1.4.2.6.3.2.2.3.4.4.6.1.2.1.4.1.6-.3-.2-.6-.5-.8-.6-.1 0-.2-.1-.3-.1-.1 0-.3 0-.4 0h-.8l.3-.7" fill="#c94747"/><path d="m15.3 24.1c.4-.1.7 0 1 .1.3.1.7.1 1.1.1.4 0 .8-.1 1.1-.3.3-.2.6-.6.5-1-.6.5-1.1.5-1.8.5-.3 0-.7 0-1 .1-.3-.1-.7.1-.9.5" fill="#574137"/><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m40.3 11.4c-3.7-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m29.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m51.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fc.svg
index a35a6e2..62648e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28.12 2c1.63.796 3.02 2.424 3.362 4.483.354 2.054-.401 4.188-1.689 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.086.405.221.798.381 1.186.168.384.36.764.71 1.059-.471-.043-.901-.342-1.255-.654-.362-.32-.657-.701-.933-1.099-.514-.81-.896-1.719-1.08-2.691-.189-.97-.192-2.01.047-3.02.118-.506.298-1 .53-1.479.126-.234.246-.457.415-.7.184-.28.262-.366.449-.612.952-1.152 1.599-2.532 1.66-4.01.095-1.491-.499-3.071-1.449-4.634"/><path d="m38.17 2c1.628.796 3.02 2.424 3.362 4.483.353 2.056-.401 4.189-1.691 5.725-.923 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.087.405.222.798.382 1.186.169.384.36.764.711 1.059-.472-.043-.901-.342-1.255-.654-.363-.32-.658-.701-.935-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.046-3.02.118-.506.298-1 .531-1.479.126-.234.245-.456.414-.7.184-.28.262-.366.45-.612.951-1.152 1.598-2.532 1.661-4.01.093-1.491-.501-3.071-1.449-4.634"/><path d="m48.23 2c1.63.796 3.02 2.424 3.363 4.483.353 2.056-.402 4.189-1.692 5.725-.923 1.091-1.382 2.487-1.406 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.382 1.186.167.384.36.764.709 1.059-.47-.043-.9-.342-1.255-.654-.361-.32-.658-.701-.933-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.044-3.02.118-.508.3-1 .531-1.48.126-.234.245-.456.415-.7.183-.278.261-.366.449-.612.952-1.152 1.598-2.532 1.661-4.01.093-1.491-.498-3.071-1.449-4.634"/></g><path fill="#fed0ac" d="m50.928 36.38c2.18 3.65-4.203 6.561-7.848 6.561-3.641 0-12.35-1.303-10.621-5.188 1.814-4.076 8.896-11.418 12.539-11.418 3.641 0 3.783 6.451 5.93 10.05"/><g fill="#e0a372"><path d="m45.35 31.914c-.387 1.096-1.328 5.668-2.322 5.842"/><path d="m21.637 32.598l-11.793-.186c0 0 3.543 3.309 4.756 8l7.04-3.574c-.977-1.647 0-4.242 0-4.242"/></g><path fill="#dbb471" d="m3.953 31.438c-3.51-5.908-1.207-8.179-1.207-8.179.545-4.383 9.176-7.85 12.588-7.151 6.982 1.428 6.285 7.626 5.361 7.955l-8.51 7.313c0 0 2.607 6.605 7 6.313l-8.514 5.061-6.72-11.312"/><path fill="#fed0ac" d="m20.18 34.445c-3.063 1.031-3.684 2.449-8.359-3.684l2.061-1.225c0 0 1.666-.498.096-6.441-.709-2.693.914-5.99 2.357-4.899 2.998 2.269 2.18 3.976 2.996 4.61 1.486 1.156 2.502-.004 3.043 1.023.291.554-.668 1.239-.609 1.412.15.434.57.424 1.234.45.662.025-.025.855.732 1.743.758.889 1.07 1.211 1.07 1.211-.229.516-.76.813-.307 1.359 1.059 1.277 1.574 2.459-4.314 4.441"/><path fill="#e0a372" d="m18.635 23.359c-.246-.214-.336-.444-.434-.701-.092-.26-.186-.542-.342-.835-.156-.283-.416-.591-.75-.712-.324-.127-.641-.084-.893.049.289.106.545.203.73.352.186.147.318.33.443.567.137.229.252.506.445.772.176.265.494.538.801.508"/><path fill="#fed0ac" d="m9.82 31.857c1.258 1.322 3.01 1.623 3.908.676.902-.947.615-2.787-.645-4.107-1.258-1.317-3.01-1.621-3.908-.674-.902.949-.612 2.787.645 4.105"/><path fill="#574137" d="m10.04 28.457c.299-.168.67-.246 1.051-.193.379.063.748.252 1.025.523.229.217.408.477.531.756.092-.107.215-.186.355-.17-.08.195-.064.346-.053.496.02.148.045.291.09.424.039.135.094.256.166.381.074.123.186.246.359.389-.176.1-.42.074-.623-.061-.207-.131-.348-.355-.422-.58-.064-.229-.072-.467.008-.676.016-.041.037-.08.059-.119-.529-.393-1.01-.725-1.52-.789-.273-.047-.555-.018-.848.045-.289.066-.582.176-.91.266.185-.29.429-.526.732-.692"/><path fill="#c94747" d="m22.777 27.314c.141-.277.27-.556.336-.821.057-.257.061-.526-.287-.813.178-.05.424.017.609.193.186.183.285.445.314.68.027.226.012.433-.027.627.199.056.414.161.576.323.18.162.293.361.373.551.068.197.119.387.129.592-.324-.242-.596-.5-.832-.59-.119-.041-.217-.066-.346-.07-.127-.01-.271-.006-.424-.002l-.779.021.358-.691"/><path fill="#574137" d="m15.352 24.06c.371-.068.676.033 1.021.077.342.062.699.104 1.074.087.371-.02.771-.103 1.104-.345.338-.23.555-.636.537-1.049-.598.479-1.1.485-1.762.523-.324.02-.674.029-1.033.106-.34.072-.781.213-.941.601"/><g fill="#c6bbb3"><path d="m13.08 57.48c0 2.5-.893 4.525-2.879 4.525-1.988 0-3.385-2.182-2.52-4.525 1.32-3.572 4.49-5.49 6.479-5.49 1.987-.001-1.08 2.992-1.08 5.49"/><path d="m50.93 57.48c0 2.5.893 4.525 2.879 4.525s3.385-2.182 2.52-4.525c-1.318-3.572-4.49-5.49-6.477-5.49-1.989-.001 1.078 2.992 1.078 5.49"/></g><path fill="#e2d8c7" d="m59.1 40.1c0 18.416-12.03 18.789-26.865 18.789s-26.866-.373-26.866-18.789h53.731"/><path fill="#c6bbb3" d="m5.369 40.961h53.73v1.191h-53.73z"/><path fill="#ddd3ca" d="m59.4 41.4h-54.31c-4.115 0-4.115-4.754 0-4.754h54.31c3.471 0 3.471 4.754 0 4.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 36.4c2.2 3.7-4.2 6.6-7.8 6.6-3.6 0-12.4-1.3-10.6-5.2 1.8-4.1 8.9-11.4 12.5-11.4 3.6-.1 3.8 6.4 5.9 10" fill="#fed0ac"/><g fill="#e0a372"><path d="M45.4,31.9C45,33,44,37.6,43,37.8"/><path d="m21.6 32.6l-11.8-.2c0 0 3.5 3.3 4.8 8l7-3.6c-.9-1.6 0-4.2 0-4.2"/></g><path d="m4 31.4c-3.5-5.9-1.2-8.2-1.2-8.2.5-4.4 9.2-7.9 12.6-7.2 7 1.4 6.3 7.6 5.4 8l-8.5 7.3c0 0 2.6 6.6 7 6.3l-8.5 5.1-6.8-11.3" fill="#dbb471"/><path d="m20.2 34.4c-3.1 1-3.7 2.4-8.4-3.7l2.1-1.2c0 0 1.7-.5.1-6.4-.7-2.7.9-6 2.4-4.9 3 2.3 2.2 4 3 4.6 1.5 1.2 2.5 0 3 1 .3.6-.7 1.2-.6 1.4.1.4.6.4 1.2.5.7 0 0 .9.7 1.7.8.9 1.1 1.2 1.1 1.2-.2.5-.8.8-.3 1.4 1 1.3 1.6 2.5-4.3 4.4" fill="#fed0ac"/><path d="m18.6 23.4c-.2-.2-.3-.4-.4-.7-.1-.3-.2-.5-.3-.8-.2-.3-.4-.6-.8-.7-.3-.1-.6-.1-.9 0 .3.1.5.2.7.4.2.1.3.3.4.6.1.2.3.5.4.8.3.1.6.4.9.4" fill="#e0a372"/><path d="m9.8 31.9c1.3 1.3 3 1.6 3.9.7.9-.9.6-2.8-.6-4.1-1.3-1.3-3-1.6-3.9-.7-.9.9-.6 2.7.6 4.1" fill="#fed0ac"/><path d="m10 28.5c.3-.2.7-.2 1.1-.2.4.1.7.3 1 .5.2.2.4.5.5.8.1-.1.2-.2.4-.2-.1.2-.1.3-.1.5 0 .1 0 .3.1.4 0 .1.1.3.2.4.1.1.2.2.4.4-.2.1-.4.1-.6-.1-.2-.1-.3-.4-.4-.6-.1-.2-.1-.5 0-.7 0 0 0-.1.1-.1-.5-.4-1-.7-1.5-.8-.3 0-.6 0-.8 0-.3.1-.6.2-.9.3 0-.2.2-.5.5-.6" fill="#574137"/><path d="m22.8 27.3c.1-.3.3-.6.3-.8.1-.3.1-.5-.3-.8.2 0 .4 0 .6.2.2.2.3.4.3.7 0 .2 0 .4 0 .6.2.1.4.2.6.3.2.2.3.4.4.6.1.2.1.4.1.6-.3-.2-.6-.5-.8-.6-.1 0-.2-.1-.3-.1-.1 0-.3 0-.4 0h-.8l.3-.7" fill="#c94747"/><path d="m15.3 24.1c.4-.1.7 0 1 .1.3.1.7.1 1.1.1.4 0 .8-.1 1.1-.3.3-.2.6-.6.5-1-.6.5-1.1.5-1.8.5-.3 0-.7 0-1 .1-.3-.1-.7.1-.9.5" fill="#574137"/><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m40.3 11.4c-3.6-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m29.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m51.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fd.svg
index 573ba98..4c4957f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28.12 2c1.63.796 3.02 2.424 3.362 4.483.354 2.054-.401 4.188-1.689 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.086.405.221.798.381 1.186.168.384.36.764.71 1.059-.471-.043-.901-.342-1.255-.654-.362-.32-.657-.701-.933-1.099-.514-.81-.896-1.719-1.08-2.691-.189-.97-.192-2.01.047-3.02.118-.506.298-1 .53-1.479.126-.234.246-.457.415-.7.184-.28.262-.366.449-.612.952-1.152 1.599-2.532 1.66-4.01.095-1.491-.499-3.071-1.449-4.634"/><path d="m38.17 2c1.628.796 3.02 2.424 3.362 4.483.353 2.056-.401 4.189-1.691 5.725-.923 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.087.405.222.798.382 1.186.169.384.36.764.711 1.059-.472-.043-.901-.342-1.255-.654-.363-.32-.658-.701-.935-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.046-3.02.118-.506.298-1 .531-1.479.126-.234.245-.456.414-.7.184-.28.262-.366.45-.612.951-1.152 1.598-2.532 1.661-4.01.093-1.491-.501-3.071-1.449-4.634"/><path d="m48.23 2c1.63.796 3.02 2.424 3.363 4.483.353 2.056-.402 4.189-1.692 5.725-.923 1.091-1.382 2.487-1.406 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.382 1.186.167.384.36.764.709 1.059-.47-.043-.9-.342-1.255-.654-.361-.32-.658-.701-.933-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.044-3.02.118-.508.3-1 .531-1.48.126-.234.245-.456.415-.7.183-.278.261-.366.449-.612.952-1.152 1.598-2.532 1.661-4.01.093-1.491-.498-3.071-1.449-4.634"/></g><path fill="#d6a57c" d="m50.928 36.38c2.18 3.65-4.203 6.561-7.848 6.561-3.641 0-12.35-1.303-10.621-5.188 1.814-4.076 8.896-11.418 12.539-11.418 3.641 0 3.783 6.451 5.93 10.05"/><g fill="#b58360"><path d="m45.35 31.914c-.387 1.096-1.328 5.668-2.322 5.842"/><path d="m21.637 32.598l-11.793-.186c0 0 3.543 3.309 4.756 8l7.04-3.574c-.977-1.647 0-4.242 0-4.242"/></g><path fill="#594640" d="m3.953 31.438c-3.51-5.908-1.207-8.179-1.207-8.179.545-4.383 9.176-7.85 12.588-7.151 6.982 1.428 6.285 7.626 5.361 7.955l-8.51 7.313c0 0 2.607 6.605 7 6.313l-8.514 5.061-6.72-11.312"/><path fill="#d6a57c" d="m20.18 34.445c-3.063 1.031-3.684 2.449-8.359-3.684l2.061-1.225c0 0 1.666-.498.096-6.441-.709-2.693.914-5.99 2.357-4.899 2.998 2.269 2.18 3.976 2.996 4.61 1.486 1.156 2.502-.004 3.043 1.023.291.554-.668 1.239-.609 1.412.15.434.57.424 1.234.45.662.025-.025.855.732 1.743.758.889 1.07 1.211 1.07 1.211-.229.516-.76.813-.307 1.359 1.059 1.277 1.574 2.459-4.314 4.441"/><path fill="#b58360" d="m18.635 23.359c-.246-.214-.336-.444-.434-.701-.092-.26-.186-.542-.342-.835-.156-.283-.416-.591-.75-.712-.324-.127-.641-.084-.893.049.289.106.545.203.73.352.186.147.318.33.443.567.137.229.252.506.445.772.176.265.494.538.801.508"/><path fill="#d6a57c" d="m9.82 31.857c1.258 1.322 3.01 1.623 3.908.676.902-.947.615-2.787-.645-4.107-1.258-1.317-3.01-1.621-3.908-.674-.902.949-.612 2.787.645 4.105"/><path fill="#574137" d="m10.04 28.457c.299-.168.67-.246 1.051-.193.379.063.748.252 1.025.523.229.217.408.477.531.756.092-.107.215-.186.355-.17-.08.195-.064.346-.053.496.02.148.045.291.09.424.039.135.094.256.166.381.074.123.186.246.359.389-.176.1-.42.074-.623-.061-.207-.131-.348-.355-.422-.58-.064-.229-.072-.467.008-.676.016-.041.037-.08.059-.119-.529-.393-1.01-.725-1.52-.789-.273-.047-.555-.018-.848.045-.289.066-.582.176-.91.266.185-.29.429-.526.732-.692"/><path fill="#c94747" d="m22.777 27.314c.141-.277.27-.556.336-.821.057-.257.061-.526-.287-.813.178-.05.424.017.609.193.186.183.285.445.314.68.027.226.012.433-.027.627.199.056.414.161.576.323.18.162.293.361.373.551.068.197.119.387.129.592-.324-.242-.596-.5-.832-.59-.119-.041-.217-.066-.346-.07-.127-.01-.271-.006-.424-.002l-.779.021.358-.691"/><path fill="#574137" d="m15.352 24.06c.371-.068.676.033 1.021.077.342.062.699.104 1.074.087.371-.02.771-.103 1.104-.345.338-.23.555-.636.537-1.049-.598.479-1.1.485-1.762.523-.324.02-.674.029-1.033.106-.34.072-.781.213-.941.601"/><g fill="#c6bbb3"><path d="m13.08 57.48c0 2.5-.893 4.525-2.879 4.525-1.988 0-3.385-2.182-2.52-4.525 1.32-3.572 4.49-5.49 6.479-5.49 1.987-.001-1.08 2.992-1.08 5.49"/><path d="m50.93 57.48c0 2.5.893 4.525 2.879 4.525s3.385-2.182 2.52-4.525c-1.318-3.572-4.49-5.49-6.477-5.49-1.989-.001 1.078 2.992 1.078 5.49"/></g><path fill="#e2d8c7" d="m59.1 40.1c0 18.416-12.03 18.789-26.865 18.789s-26.866-.373-26.866-18.789h53.731"/><path fill="#c6bbb3" d="m5.369 40.961h53.73v1.191h-53.73z"/><path fill="#ddd3ca" d="m59.4 41.4h-54.31c-4.115 0-4.115-4.754 0-4.754h54.31c3.471 0 3.471 4.754 0 4.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 36.4c2.2 3.7-4.2 6.6-7.8 6.6-3.6 0-12.4-1.3-10.6-5.2 1.8-4.1 8.9-11.4 12.5-11.4 3.6-.1 3.8 6.4 5.9 10" fill="#d6a57c"/><g fill="#7d5442"><path d="M45.4,31.9C45,33,44,37.6,43,37.8"/><path d="m21.6 32.6l-11.8-.2c0 0 3.5 3.3 4.8 8l7-3.6c-.9-1.6 0-4.2 0-4.2"/></g><path d="m4 31.4c-3.5-5.9-1.2-8.2-1.2-8.2.5-4.4 9.2-7.9 12.6-7.2 7 1.4 6.3 7.6 5.4 8l-8.5 7.3c0 0 2.6 6.6 7 6.3l-8.5 5.1-6.8-11.3" fill="#594640"/><path d="m20.2 34.4c-3.1 1-3.7 2.4-8.4-3.7l2.1-1.2c0 0 1.7-.5.1-6.4-.7-2.7.9-6 2.4-4.9 3 2.3 2.2 4 3 4.6 1.5 1.2 2.5 0 3 1 .3.6-.7 1.2-.6 1.4.1.4.6.4 1.2.5.7 0 0 .9.7 1.7.8.9 1.1 1.2 1.1 1.2-.2.5-.8.8-.3 1.4 1 1.3 1.6 2.5-4.3 4.4" fill="#d6a57c"/><path d="m18.6 23.4c-.2-.2-.3-.4-.4-.7-.1-.3-.2-.5-.3-.8-.2-.3-.4-.6-.8-.7-.3-.1-.6-.1-.9 0 .3.1.5.2.7.4.2.1.3.3.4.6.1.2.3.5.4.8.3.1.6.4.9.4" fill="#7d5442"/><path d="m9.8 31.9c1.3 1.3 3 1.6 3.9.7.9-.9.6-2.8-.6-4.1-1.3-1.3-3-1.6-3.9-.7-.9.9-.6 2.7.6 4.1" fill="#d6a57c"/><path d="m10 28.5c.3-.2.7-.2 1.1-.2.4.1.7.3 1 .5.2.2.4.5.5.8.1-.1.2-.2.4-.2-.1.2-.1.3-.1.5 0 .1 0 .3.1.4 0 .1.1.3.2.4.1.1.2.2.4.4-.2.1-.4.1-.6-.1-.2-.1-.3-.4-.4-.6-.1-.2-.1-.5 0-.7 0 0 0-.1.1-.1-.5-.4-1-.7-1.5-.8-.3 0-.6 0-.8 0-.3.1-.6.2-.9.3 0-.2.2-.5.5-.6" fill="#574137"/><path d="m22.8 27.3c.1-.3.3-.6.3-.8.1-.3.1-.5-.3-.8.2 0 .4 0 .6.2.2.2.3.4.3.7 0 .2 0 .4 0 .6.2.1.4.2.6.3.2.2.3.4.4.6.1.2.1.4.1.6-.3-.2-.6-.5-.8-.6-.1 0-.2-.1-.3-.1-.1 0-.3 0-.4 0h-.8l.3-.7" fill="#c94747"/><path d="m15.3 24.1c.4-.1.7 0 1 .1.3.1.7.1 1.1.1.4 0 .8-.1 1.1-.3.3-.2.6-.6.5-1-.6.5-1.1.5-1.8.5-.3 0-.7 0-1 .1-.3-.1-.7.1-.9.5" fill="#574137"/><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m40.3 11.4c-3.6-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m29.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m51.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fe.svg
index d6429a4..43c665f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28.12 2c1.63.796 3.02 2.424 3.362 4.483.354 2.054-.401 4.188-1.689 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.086.405.221.798.381 1.186.168.384.36.764.71 1.059-.471-.043-.901-.342-1.255-.654-.362-.32-.657-.701-.933-1.099-.514-.81-.896-1.719-1.08-2.691-.189-.97-.192-2.01.047-3.02.118-.506.298-1 .53-1.479.126-.234.246-.457.415-.7.184-.28.262-.366.449-.612.952-1.152 1.599-2.532 1.66-4.01.095-1.491-.499-3.071-1.449-4.634"/><path d="m38.17 2c1.628.796 3.02 2.424 3.362 4.483.353 2.056-.401 4.189-1.691 5.725-.923 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.087.405.222.798.382 1.186.169.384.36.764.711 1.059-.472-.043-.901-.342-1.255-.654-.363-.32-.658-.701-.935-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.046-3.02.118-.506.298-1 .531-1.479.126-.234.245-.456.414-.7.184-.28.262-.366.45-.612.951-1.152 1.598-2.532 1.661-4.01.093-1.491-.501-3.071-1.449-4.634"/><path d="m48.23 2c1.63.796 3.02 2.424 3.363 4.483.353 2.056-.402 4.189-1.692 5.725-.923 1.091-1.382 2.487-1.406 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.382 1.186.167.384.36.764.709 1.059-.47-.043-.9-.342-1.255-.654-.361-.32-.658-.701-.933-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.044-3.02.118-.508.3-1 .531-1.48.126-.234.245-.456.415-.7.183-.278.261-.366.449-.612.952-1.152 1.598-2.532 1.661-4.01.093-1.491-.498-3.071-1.449-4.634"/></g><path fill="#b47d56" d="m50.928 36.38c2.18 3.65-4.203 6.561-7.848 6.561-3.641 0-12.35-1.303-10.621-5.188 1.814-4.076 8.896-11.418 12.539-11.418 3.641 0 3.783 6.451 5.93 10.05"/><g fill="#935e3e"><path d="m45.35 31.914c-.387 1.096-1.328 5.668-2.322 5.842"/><path d="m21.637 32.598l-11.793-.186c0 0 3.543 3.309 4.756 8l7.04-3.574c-.977-1.647 0-4.242 0-4.242"/></g><path fill="#231f20" d="m3.953 31.438c-3.51-5.908-1.207-8.179-1.207-8.179.545-4.383 9.176-7.85 12.588-7.151 6.982 1.428 6.285 7.626 5.361 7.955l-8.51 7.313c0 0 2.607 6.605 7 6.313l-8.514 5.061-6.72-11.312"/><path fill="#b47d56" d="m20.18 34.445c-3.063 1.031-3.684 2.449-8.359-3.684l2.061-1.225c0 0 1.666-.498.096-6.441-.709-2.693.914-5.99 2.357-4.899 2.998 2.269 2.18 3.976 2.996 4.61 1.486 1.156 2.502-.004 3.043 1.023.291.554-.668 1.239-.609 1.412.15.434.57.424 1.234.45.662.025-.025.855.732 1.743.758.889 1.07 1.211 1.07 1.211-.229.516-.76.813-.307 1.359 1.059 1.277 1.574 2.459-4.314 4.441"/><path fill="#935e3e" d="m18.635 23.359c-.246-.214-.336-.444-.434-.701-.092-.26-.186-.542-.342-.835-.156-.283-.416-.591-.75-.712-.324-.127-.641-.084-.893.049.289.106.545.203.73.352.186.147.318.33.443.567.137.229.252.506.445.772.176.265.494.538.801.508"/><path fill="#b47d56" d="m9.82 31.857c1.258 1.322 3.01 1.623 3.908.676.902-.947.615-2.787-.645-4.107-1.258-1.317-3.01-1.621-3.908-.674-.902.949-.612 2.787.645 4.105"/><path fill="#47352d" d="m10.04 28.457c.299-.168.67-.246 1.051-.193.379.063.748.252 1.025.523.229.217.408.477.531.756.092-.107.215-.186.355-.17-.08.195-.064.346-.053.496.02.148.045.291.09.424.039.135.094.256.166.381.074.123.186.246.359.389-.176.1-.42.074-.623-.061-.207-.131-.348-.355-.422-.58-.064-.229-.072-.467.008-.676.016-.041.037-.08.059-.119-.529-.393-1.01-.725-1.52-.789-.273-.047-.555-.018-.848.045-.289.066-.582.176-.91.266.185-.29.429-.526.732-.692"/><path fill="#c94747" d="m22.777 27.314c.141-.277.27-.556.336-.821.057-.257.061-.526-.287-.813.178-.05.424.017.609.193.186.183.285.445.314.68.027.226.012.433-.027.627.199.056.414.161.576.323.18.162.293.361.373.551.068.197.119.387.129.592-.324-.242-.596-.5-.832-.59-.119-.041-.217-.066-.346-.07-.127-.01-.271-.006-.424-.002l-.779.021.358-.691"/><path fill="#47352d" d="m15.352 24.06c.371-.068.676.033 1.021.077.342.062.699.104 1.074.087.371-.02.771-.103 1.104-.345.338-.23.555-.636.537-1.049-.598.479-1.1.485-1.762.523-.324.02-.674.029-1.033.106-.34.072-.781.213-.941.601"/><g fill="#c6bbb3"><path d="m13.08 57.48c0 2.5-.893 4.525-2.879 4.525-1.988 0-3.385-2.182-2.52-4.525 1.32-3.572 4.49-5.49 6.479-5.49 1.987-.001-1.08 2.992-1.08 5.49"/><path d="m50.93 57.48c0 2.5.893 4.525 2.879 4.525s3.385-2.182 2.52-4.525c-1.318-3.572-4.49-5.49-6.477-5.49-1.989-.001 1.078 2.992 1.078 5.49"/></g><path fill="#e2d8c7" d="m59.1 40.1c0 18.416-12.03 18.789-26.865 18.789s-26.866-.373-26.866-18.789h53.731"/><path fill="#c6bbb3" d="m5.369 40.961h53.73v1.191h-53.73z"/><path fill="#ddd3ca" d="m59.4 41.4h-54.31c-4.115 0-4.115-4.754 0-4.754h54.31c3.471 0 3.471 4.754 0 4.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 36.4c2.2 3.7-4.2 6.6-7.8 6.6-3.6 0-12.3-1.3-10.6-5.2 1.8-4.1 8.9-11.4 12.5-11.4 3.6-.1 3.8 6.4 5.9 10" fill="#b47d56"/><g fill="#7d5442"><path d="M45.4,31.9C45,33,44,37.6,43,37.8"/><path d="m21.6 32.6l-11.8-.2c0 0 3.5 3.3 4.8 8l7-3.6c-.9-1.6 0-4.2 0-4.2"/></g><path d="m4 31.4c-3.5-5.9-1.2-8.2-1.2-8.2.5-4.4 9.2-7.9 12.6-7.2 7 1.4 6.3 7.6 5.4 8l-8.5 7.3c0 0 2.6 6.6 7 6.3l-8.5 5.1-6.8-11.3" fill="#231f20"/><path d="m20.2 34.4c-3.1 1-3.7 2.4-8.4-3.7l2.1-1.2c0 0 1.7-.5.1-6.4-.7-2.7.9-6 2.4-4.9 3 2.3 2.2 4 3 4.6 1.5 1.2 2.5 0 3 1 .3.6-.7 1.2-.6 1.4.1.4.6.4 1.2.5.7 0 0 .9.7 1.7.8.9 1.1 1.2 1.1 1.2-.2.5-.8.8-.3 1.4 1 1.3 1.6 2.5-4.3 4.4" fill="#b47d56"/><path d="m18.6 23.4c-.2-.2-.3-.4-.4-.7-.1-.3-.2-.5-.3-.8-.2-.3-.4-.6-.8-.7-.3-.1-.6-.1-.9 0 .3.1.5.2.7.4.2.1.3.3.4.6.1.2.3.5.4.8.3.1.6.4.9.4" fill="#7d5442"/><path d="m9.8 31.9c1.3 1.3 3 1.6 3.9.7.9-.9.6-2.8-.6-4.1-1.3-1.3-3-1.6-3.9-.7-.9.9-.6 2.7.6 4.1" fill="#b47d56"/><path d="m10 28.5c.3-.2.7-.2 1.1-.2.4.1.7.3 1 .5.2.2.4.5.5.8.1-.1.2-.2.4-.2-.1.2-.1.3-.1.5 0 .1 0 .3.1.4 0 .1.1.3.2.4.1.1.2.2.4.4-.2.1-.4.1-.6-.1-.2-.1-.3-.4-.4-.6-.1-.2-.1-.5 0-.7 0 0 0-.1.1-.1-.5-.4-1-.7-1.5-.8-.3 0-.6 0-.8 0-.3.1-.6.2-.9.3 0-.2.2-.5.5-.6" fill="#574137"/><path d="m22.8 27.3c.1-.3.3-.6.3-.8.1-.3.1-.5-.3-.8.2 0 .4 0 .6.2.2.2.3.4.3.7 0 .2 0 .4 0 .6.2.1.4.2.6.3.2.2.3.4.4.6.1.2.1.4.1.6-.3-.2-.6-.5-.8-.6-.1 0-.2-.1-.3-.1-.1 0-.3 0-.4 0h-.8l.3-.7" fill="#c94747"/><path d="m15.3 24.1c.4-.1.7 0 1 .1.3.1.7.1 1.1.1.4 0 .8-.1 1.1-.3.3-.2.6-.6.5-1-.6.5-1.1.5-1.8.5-.3 0-.7 0-1 .1-.3-.1-.7.1-.9.5" fill="#574137"/><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m40.3 11.4c-3.6-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m29.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m51.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3ff.svg
index 8214e23..c036318 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c0-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28.12 2c1.63.796 3.02 2.424 3.362 4.483.354 2.054-.401 4.188-1.689 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.086.405.221.798.381 1.186.168.384.36.764.71 1.059-.471-.043-.901-.342-1.255-.654-.362-.32-.657-.701-.933-1.099-.514-.81-.896-1.719-1.08-2.691-.189-.97-.192-2.01.047-3.02.118-.506.298-1 .53-1.479.126-.234.246-.457.415-.7.184-.28.262-.366.449-.612.952-1.152 1.599-2.532 1.66-4.01.095-1.491-.499-3.071-1.449-4.634"/><path d="m38.17 2c1.628.796 3.02 2.424 3.362 4.483.353 2.056-.401 4.189-1.691 5.725-.923 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.087.405.222.798.382 1.186.169.384.36.764.711 1.059-.472-.043-.901-.342-1.255-.654-.363-.32-.658-.701-.935-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.046-3.02.118-.506.298-1 .531-1.479.126-.234.245-.456.414-.7.184-.28.262-.366.45-.612.951-1.152 1.598-2.532 1.661-4.01.093-1.491-.501-3.071-1.449-4.634"/><path d="m48.23 2c1.63.796 3.02 2.424 3.363 4.483.353 2.056-.402 4.189-1.692 5.725-.923 1.091-1.382 2.487-1.406 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.382 1.186.167.384.36.764.709 1.059-.47-.043-.9-.342-1.255-.654-.361-.32-.658-.701-.933-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.044-3.02.118-.508.3-1 .531-1.48.126-.234.245-.456.415-.7.183-.278.261-.366.449-.612.952-1.152 1.598-2.532 1.661-4.01.093-1.491-.498-3.071-1.449-4.634"/></g><path fill="#8a6859" d="m50.928 36.38c2.18 3.65-4.203 6.561-7.848 6.561-3.641 0-12.35-1.303-10.621-5.188 1.814-4.076 8.896-11.418 12.539-11.418 3.641 0 3.783 6.451 5.93 10.05"/><g fill="#705041"><path d="m45.35 31.914c-.387 1.096-1.328 5.668-2.322 5.842"/><path d="m21.637 32.598l-11.793-.186c0 0 3.543 3.309 4.756 8l7.04-3.574c-.977-1.647 0-4.242 0-4.242"/></g><path fill="#231f20" d="m3.953 31.438c-3.51-5.908-1.207-8.179-1.207-8.179.545-4.383 9.176-7.85 12.588-7.151 6.982 1.428 6.285 7.626 5.361 7.955l-8.51 7.313c0 0 2.607 6.605 7 6.313l-8.514 5.061-6.72-11.312"/><path fill="#8a6859" d="m20.18 34.445c-3.063 1.031-3.684 2.449-8.359-3.684l2.061-1.225c0 0 1.666-.498.096-6.441-.709-2.693.914-5.99 2.357-4.899 2.998 2.269 2.18 3.976 2.996 4.61 1.486 1.156 2.502-.004 3.043 1.023.291.554-.668 1.239-.609 1.412.15.434.57.424 1.234.45.662.025-.025.855.732 1.743.758.889 1.07 1.211 1.07 1.211-.229.516-.76.813-.307 1.359 1.059 1.277 1.574 2.459-4.314 4.441"/><path fill="#705041" d="m18.635 23.359c-.246-.214-.336-.444-.434-.701-.092-.26-.186-.542-.342-.835-.156-.283-.416-.591-.75-.712-.324-.127-.641-.084-.893.049.289.106.545.203.73.352.186.147.318.33.443.567.137.229.252.506.445.772.176.265.494.538.801.508"/><path fill="#8a6859" d="m9.82 31.857c1.258 1.322 3.01 1.623 3.908.676.902-.947.615-2.787-.645-4.107-1.258-1.317-3.01-1.621-3.908-.674-.902.949-.612 2.787.645 4.105"/><path fill="#47352d" d="m10.04 28.457c.299-.168.67-.246 1.051-.193.379.063.748.252 1.025.523.229.217.408.477.531.756.092-.107.215-.186.355-.17-.08.195-.064.346-.053.496.02.148.045.291.09.424.039.135.094.256.166.381.074.123.186.246.359.389-.176.1-.42.074-.623-.061-.207-.131-.348-.355-.422-.58-.064-.229-.072-.467.008-.676.016-.041.037-.08.059-.119-.529-.393-1.01-.725-1.52-.789-.273-.047-.555-.018-.848.045-.289.066-.582.176-.91.266.185-.29.429-.526.732-.692"/><path fill="#c94747" d="m22.777 27.314c.141-.277.27-.556.336-.821.057-.257.061-.526-.287-.813.178-.05.424.017.609.193.186.183.285.445.314.68.027.226.012.433-.027.627.199.056.414.161.576.323.18.162.293.361.373.551.068.197.119.387.129.592-.324-.242-.596-.5-.832-.59-.119-.041-.217-.066-.346-.07-.127-.01-.271-.006-.424-.002l-.779.021.358-.691"/><path fill="#47352d" d="m15.352 24.06c.371-.068.676.033 1.021.077.342.062.699.104 1.074.087.371-.02.771-.103 1.104-.345.338-.23.555-.636.537-1.049-.598.479-1.1.485-1.762.523-.324.02-.674.029-1.033.106-.34.072-.781.213-.941.601"/><g fill="#c6bbb3"><path d="m13.08 57.48c0 2.5-.893 4.525-2.879 4.525-1.988 0-3.385-2.182-2.52-4.525 1.32-3.572 4.49-5.49 6.479-5.49 1.987-.001-1.08 2.992-1.08 5.49"/><path d="m50.93 57.48c0 2.5.893 4.525 2.879 4.525s3.385-2.182 2.52-4.525c-1.318-3.572-4.49-5.49-6.477-5.49-1.989-.001 1.078 2.992 1.078 5.49"/></g><path fill="#e2d8c7" d="m59.1 40.1c0 18.416-12.03 18.789-26.865 18.789s-26.866-.373-26.866-18.789h53.731"/><path fill="#c6bbb3" d="m5.369 40.961h53.73v1.191h-53.73z"/><path fill="#ddd3ca" d="m59.4 41.4h-54.31c-4.115 0-4.115-4.754 0-4.754h54.31c3.471 0 3.471 4.754 0 4.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 36.4c2.2 3.7-4.2 6.6-7.8 6.6-3.6 0-12.3-1.3-10.6-5.2 1.8-4.1 8.9-11.4 12.5-11.4 3.6-.1 3.8 6.4 5.9 10" fill="#8a6859"/><g fill="#705041"><path d="M45.4,31.9C45,33,44,37.6,43,37.8"/><path d="m21.6 32.6l-11.8-.2c0 0 3.5 3.3 4.8 8l7-3.6c-.9-1.6 0-4.2 0-4.2"/></g><path d="m4 31.4c-3.5-5.9-1.2-8.2-1.2-8.2.5-4.4 9.2-7.9 12.6-7.2 7 1.4 6.3 7.6 5.4 8l-8.5 7.3c0 0 2.6 6.6 7 6.3l-8.5 5.1-6.8-11.3" fill="#231f20"/><path d="m20.2 34.4c-3.1 1-3.7 2.4-8.4-3.7l2.1-1.2c0 0 1.7-.5.1-6.4-.7-2.7.9-6 2.4-4.9 3 2.3 2.2 4 3 4.6 1.5 1.2 2.5 0 3 1 .3.6-.7 1.2-.6 1.4.1.4.6.4 1.2.5.7 0 0 .9.7 1.7.8.9 1.1 1.2 1.1 1.2-.2.5-.8.8-.3 1.4 1 1.3 1.6 2.5-4.3 4.4" fill="#8a6859"/><path d="m18.6 23.4c-.2-.2-.3-.4-.4-.7-.1-.3-.2-.5-.3-.8-.2-.3-.4-.6-.8-.7-.3-.1-.6-.1-.9 0 .3.1.5.2.7.4.2.1.3.3.4.6.1.2.3.5.4.8.3.1.6.4.9.4" fill="#705041"/><path d="m9.8 31.9c1.3 1.3 3 1.6 3.9.7.9-.9.6-2.8-.6-4.1-1.3-1.3-3-1.6-3.9-.7-.9.9-.6 2.7.6 4.1" fill="#8a6859"/><path d="m10 28.5c.3-.2.7-.2 1.1-.2.4.1.7.3 1 .5.2.2.4.5.5.8.1-.1.2-.2.4-.2-.1.2-.1.3-.1.5 0 .1 0 .3.1.4 0 .1.1.3.2.4.1.1.2.2.4.4-.2.1-.4.1-.6-.1-.2-.1-.3-.4-.4-.6-.1-.2-.1-.5 0-.7 0 0 0-.1.1-.1-.5-.4-1-.7-1.5-.8-.3 0-.6 0-.8 0-.3.1-.6.2-.9.3 0-.2.2-.5.5-.6" fill="#574137"/><path d="m22.8 27.3c.1-.3.3-.6.3-.8.1-.3.1-.5-.3-.8.2 0 .4 0 .6.2.2.2.3.4.3.7 0 .2 0 .4 0 .6.2.1.4.2.6.3.2.2.3.4.4.6.1.2.1.4.1.6-.3-.2-.6-.5-.8-.6-.1 0-.2-.1-.3-.1-.1 0-.3 0-.4 0h-.8l.3-.7" fill="#c94747"/><path d="m15.3 24.1c.4-.1.7 0 1 .1.3.1.7.1 1.1.1.4 0 .8-.1 1.1-.3.3-.2.6-.6.5-1-.6.5-1.1.5-1.8.5-.3 0-.7 0-1 .1-.3-.1-.7.1-.9.5" fill="#574137"/><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m40.3 11.4c-3.6-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m29.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m51.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c0.svg
index 514f46a..6985f1f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28.11 2c1.63.796 3.02 2.424 3.362 4.483.354 2.054-.401 4.188-1.689 5.725-.924 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.086.405.221.798.381 1.186.168.384.36.764.71 1.059-.471-.043-.901-.342-1.255-.654-.362-.32-.657-.701-.933-1.099-.514-.81-.896-1.719-1.08-2.691-.189-.97-.192-2.01.047-3.02.118-.506.298-1 .53-1.479.126-.234.246-.457.415-.7.184-.28.262-.366.449-.612.952-1.152 1.599-2.532 1.66-4.01.095-1.491-.499-3.071-1.449-4.634"/><path d="m38.17 2c1.628.796 3.02 2.424 3.362 4.483.353 2.056-.401 4.189-1.691 5.725-.923 1.091-1.383 2.487-1.408 4.059-.01.778.056 1.595.26 2.39.087.405.222.798.382 1.186.169.384.36.764.711 1.059-.472-.043-.901-.342-1.255-.654-.363-.32-.658-.701-.935-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.046-3.02.118-.506.298-1 .531-1.479.126-.234.245-.456.414-.7.184-.28.262-.366.45-.612.951-1.152 1.598-2.532 1.661-4.01.093-1.491-.501-3.071-1.449-4.634"/><path d="m48.23 2c1.63.796 3.02 2.424 3.363 4.483.353 2.056-.402 4.189-1.692 5.725-.923 1.091-1.382 2.487-1.406 4.059-.01.778.055 1.595.26 2.39.086.405.221.798.382 1.186.167.384.36.764.709 1.059-.47-.043-.9-.342-1.255-.654-.361-.32-.658-.701-.933-1.097-.514-.812-.896-1.721-1.079-2.693-.19-.97-.193-2.01.044-3.02.118-.508.3-1 .531-1.48.126-.234.245-.456.415-.7.183-.278.261-.366.449-.612.952-1.152 1.598-2.532 1.661-4.01.093-1.491-.499-3.071-1.449-4.634"/></g><path fill="#ffdd67" d="m50.924 36.38c2.18 3.65-4.203 6.561-7.848 6.561-3.641 0-12.349-1.303-10.621-5.188 1.814-4.076 8.896-11.418 12.539-11.418 3.641 0 3.783 6.451 5.93 10.05"/><g fill="#eba352"><path d="m45.35 31.915c-.387 1.096-1.328 5.667-2.322 5.841"/><path d="m21.633 32.599l-11.793-.186c0 0 3.543 3.308 4.756 8l7.04-3.574c-.976-1.647 0-4.241 0-4.241"/></g><path fill="#231f20" d="m3.95 31.438c-3.51-5.908-1.207-8.179-1.207-8.179.545-4.383 9.176-7.85 12.588-7.151 6.982 1.428 6.285 7.626 5.361 7.955l-8.51 7.313c0 0 2.607 6.604 7 6.312l-8.514 5.061-6.72-11.311"/><path fill="#ffdd67" d="m20.18 34.445c-3.063 1.031-3.684 2.449-8.359-3.684l2.061-1.225c0 0 1.666-.497.096-6.441-.709-2.693.914-5.99 2.357-4.899 2.998 2.269 2.18 3.976 2.996 4.61 1.486 1.156 2.502-.004 3.043 1.023.291.554-.668 1.239-.609 1.412.15.434.57.424 1.234.45.662.025-.025.855.732 1.744s1.07 1.21 1.07 1.21c-.229.517-.76.813-.307 1.359 1.059 1.278 1.575 2.459-4.314 4.441"/><path fill="#eba352" d="m18.631 23.359c-.246-.214-.336-.444-.434-.701-.092-.26-.186-.542-.342-.835-.156-.283-.416-.591-.75-.712-.324-.127-.641-.084-.893.049.289.106.545.203.73.352.186.147.318.33.443.567.137.229.252.506.445.772.176.265.495.538.801.508"/><path fill="#ffdd67" d="m9.817 31.858c1.258 1.321 3.01 1.622 3.908.675.902-.947.615-2.786-.645-4.106-1.258-1.318-3.01-1.622-3.908-.674-.902.948-.613 2.786.645 4.105"/><path fill="#574137" d="m10.04 28.458c.299-.169.67-.246 1.051-.193.379.062.748.252 1.025.522.229.218.408.478.531.757.092-.108.215-.186.355-.171-.08.195-.064.347-.053.496.02.148.045.291.09.425.039.135.094.256.166.38.074.124.186.246.359.39-.176.1-.42.074-.623-.062-.207-.131-.348-.354-.422-.579-.064-.229-.072-.468.008-.676.016-.042.037-.081.059-.119-.529-.394-1.01-.725-1.52-.789-.273-.048-.555-.018-.848.045-.289.065-.582.176-.91.265.185-.289.429-.526.732-.691"/><path fill="#c94747" d="m22.774 27.314c.141-.277.27-.556.336-.821.057-.257.061-.526-.287-.813.178-.05.424.017.609.193.186.183.285.445.314.68.027.226.012.433-.027.627.199.056.414.162.576.323.18.163.293.362.373.552.068.196.119.387.129.591-.324-.241-.596-.5-.832-.59-.119-.04-.217-.065-.346-.07-.127-.009-.271-.005-.424-.001l-.779.021.358-.692"/><path fill="#574137" d="m15.348 24.06c.371-.068.676.033 1.021.077.342.062.699.104 1.074.087.371-.02.771-.103 1.104-.345.338-.23.555-.636.537-1.049-.598.479-1.1.485-1.762.523-.324.02-.674.029-1.033.106-.339.072-.781.213-.941.601"/><g fill="#c6bbb3"><path d="m13.07 57.48c0 2.5-.893 4.525-2.879 4.525-1.988 0-3.385-2.182-2.52-4.525 1.32-3.572 4.49-5.49 6.479-5.49 1.986-.001-1.08 2.992-1.08 5.49"/><path d="m50.926 57.48c0 2.5.893 4.525 2.879 4.525s3.385-2.182 2.52-4.525c-1.318-3.572-4.49-5.49-6.477-5.49-1.989-.001 1.078 2.992 1.078 5.49"/></g><path fill="#e2d8c7" d="m59.1 40.1c0 18.416-12.03 18.789-26.865 18.789-14.836 0-26.865-.373-26.865-18.789h53.73"/><path fill="#c6bbb3" d="m5.366 40.961h53.73v1.191h-53.73z"/><path fill="#ddd3ca" d="m59.4 41.4h-54.31c-4.115 0-4.115-4.754 0-4.754h54.31c3.471 0 3.471 4.754 0 4.754"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m50.9 36.4c2.2 3.7-4.2 6.6-7.8 6.6-3.6 0-12.3-1.3-10.6-5.2 1.8-4.1 8.9-11.4 12.5-11.4 3.6-.1 3.8 6.4 5.9 10" fill="#ffdd67"/><g fill="#eba352"><path d="M45.4,31.9C45,33,44,37.6,43,37.8"/><path d="m21.6 32.6l-11.8-.2c0 0 3.5 3.3 4.8 8l7-3.6c-.9-1.6 0-4.2 0-4.2"/></g><path d="m4 31.4c-3.5-5.9-1.2-8.2-1.2-8.2.5-4.4 9.2-7.9 12.6-7.2 7 1.4 6.3 7.6 5.4 8l-8.5 7.3c0 0 2.6 6.6 7 6.3l-8.5 5.1-6.8-11.3" fill="#ffb300"/><path d="m20.2 34.4c-3.1 1-3.7 2.4-8.4-3.7l2.1-1.2c0 0 1.7-.5.1-6.4-.7-2.7.9-6 2.4-4.9 3 2.3 2.2 4 3 4.6 1.5 1.2 2.5 0 3 1 .3.6-.7 1.2-.6 1.4.1.4.6.4 1.2.5.7 0 0 .9.7 1.7s1.1 1.2 1.1 1.2c-.2.5-.8.8-.3 1.4 1 1.3 1.6 2.5-4.3 4.4" fill="#ffdd67"/><path d="m18.6 23.4c-.2-.2-.3-.4-.4-.7-.1-.3-.2-.5-.3-.8-.2-.3-.4-.6-.8-.7-.3-.1-.6-.1-.9 0 .3.1.5.2.7.4.2.1.3.3.4.6.1.2.3.5.4.8.3.1.6.4.9.4" fill="#eba352"/><path d="m9.8 31.9c1.3 1.3 3 1.6 3.9.7.9-.9.6-2.8-.6-4.1-1.3-1.3-3-1.6-3.9-.7-.9.9-.6 2.7.6 4.1" fill="#ffdd67"/><path d="m10 28.5c.3-.2.7-.2 1.1-.2.4.1.7.3 1 .5.2.2.4.5.5.8.1-.1.2-.2.4-.2-.1.2-.1.3-.1.5 0 .1 0 .3.1.4 0 .1.1.3.2.4.1.1.2.2.4.4-.2.1-.4.1-.6-.1-.2-.1-.3-.4-.4-.6-.1-.2-.1-.5 0-.7 0 0 0-.1.1-.1-.5-.4-1-.7-1.5-.8-.3 0-.6 0-.8 0-.3.1-.6.2-.9.3 0-.2.2-.5.5-.6" fill="#574137"/><path d="m22.8 27.3c.1-.3.3-.6.3-.8.1-.3.1-.5-.3-.8.2 0 .4 0 .6.2.2.2.3.4.3.7 0 .2 0 .4 0 .6.2.1.4.2.6.3.2.2.3.4.4.6.1.2.1.4.1.6-.3-.2-.6-.5-.8-.6-.1 0-.2-.1-.3-.1-.1 0-.3 0-.4 0h-.8l.3-.7" fill="#c94747"/><path d="m15.3 24.1c.4-.1.7 0 1 .1.3.1.7.1 1.1.1.4 0 .8-.1 1.1-.3.3-.2.6-.6.5-1-.6.5-1.1.5-1.8.5-.3 0-.7 0-1 .1-.3-.1-.7.1-.9.5" fill="#574137"/><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m40.3 11.4c-3.6-3.8-1.2-9.4-1.2-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7-6.6 1.2-12.6"/><path d="m29.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/><path d="m51.3 14.8c-2.8-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.3 4.3 2.1 6.9 2.1 6.9s5.2-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c1.svg
index 6a5dbbb..cef7b67 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m15.16 0c2.522 1.231 4.673 3.75 5.202 6.937.548 3.177-.622 6.478-2.614 8.855-1.429 1.688-2.139 3.849-2.179 6.279-.015 1.204.086 2.468.402 3.697.133.627.341 1.234.589 1.834.26.594.558 1.182 1.099 1.638-.728-.066-1.395-.528-1.941-1.013-.561-.495-1.017-1.084-1.443-1.699-.795-1.253-1.387-2.659-1.671-4.163-.293-1.501-.297-3.104.072-4.675.183-.783.461-1.552.82-2.287.195-.363.381-.708.642-1.084.285-.434.405-.566.695-.947 1.473-1.783 2.473-3.918 2.568-6.206.148-2.305-.771-4.749-2.241-7.166"/><path d="m30.718 0c2.518 1.231 4.67 3.75 5.202 6.937.545 3.18-.621 6.48-2.616 8.855-1.429 1.688-2.14 3.849-2.179 6.279-.016 1.204.086 2.468.401 3.697.134.627.343 1.234.591 1.834.262.594.558 1.182 1.1 1.638-.73-.066-1.395-.528-1.942-1.013-.562-.495-1.018-1.084-1.445-1.696-.795-1.256-1.387-2.662-1.67-4.166-.294-1.501-.299-3.104.072-4.675.182-.783.459-1.552.821-2.287.194-.363.379-.706.641-1.084.284-.434.405-.566.696-.947 1.471-1.783 2.472-3.918 2.57-6.206.144-2.305-.775-4.749-2.242-7.166"/><path d="m46.28 0c2.521 1.231 4.673 3.75 5.203 6.937.545 3.18-.623 6.48-2.619 8.855-1.427 1.688-2.137 3.849-2.175 6.279-.015 1.204.085 2.468.401 3.697.133.627.342 1.234.592 1.834.258.594.557 1.182 1.096 1.638-.727-.066-1.393-.528-1.941-1.013-.559-.495-1.018-1.084-1.442-1.696-.795-1.256-1.387-2.662-1.669-4.166-.295-1.501-.3-3.104.067-4.672.183-.786.464-1.555.821-2.29.195-.363.38-.706.643-1.084.283-.431.403-.566.695-.947 1.473-1.783 2.472-3.918 2.57-6.206.143-2.305-.772-4.749-2.242-7.166"/></g><g fill="#c6bbb3"><path d="m11.813 59.17c0 2.665-.952 4.826-3.071 4.826-2.121 0-3.61-2.326-2.688-4.826 1.408-3.811 4.79-5.857 6.91-5.857 2.12-.001-1.151 3.191-1.151 5.857"/><path d="m52.19 59.17c0 2.665.952 4.826 3.071 4.826 2.118 0 3.609-2.326 2.688-4.826-1.406-3.811-4.79-5.857-6.908-5.857-2.121-.001 1.149 3.191 1.149 5.857"/></g><path fill="#e2d8c7" d="m60.903 40.638c0 19.644-12.831 20.04-28.658 20.04-15.824 0-28.656-.398-28.656-20.04h57.31"/><path fill="#c6bbb3" d="m3.59 41.56h57.31v1.27h-57.31z"/><path fill="#ddd3ca" d="m61.23 42.02h-57.933c-4.39 0-4.39-5.07 0-5.07h57.933c3.701 0 3.701 5.07 0 5.07"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c6bbb3"><path d="m13.1 57.5c0 2.5-.9 4.5-2.9 4.5-2 0-3.4-2.2-2.5-4.5 1.3-3.6 4.5-5.5 6.5-5.5 1.9 0-1.1 3-1.1 5.5"/><path d="m50.9 57.5c0 2.5.9 4.5 2.9 4.5s3.4-2.2 2.5-4.5c-1.3-3.6-4.5-5.5-6.5-5.5-1.9 0 1.1 3 1.1 5.5"/></g><path d="m59.1 40.1c0 18.4-12 18.8-26.9 18.8s-26.8-.4-26.8-18.8h53.7" fill="#e2d8c7"/><path fill="#c6bbb3" d="m5.4 41h53.7v1.2h-53.7z"/><path d="m59.4 41.4h-54.3c-4.1 0-4.1-4.8 0-4.8h54.3c3.5 0 3.5 4.8 0 4.8" fill="#ddd3ca"/><g opacity=".6" fill="#a6aeb0"><path d="m33.8 14.8c-5-5.2-1.7-12.8-1.7-12.8s-10.5 10.1-3.9 17c7.7 8 3.9 13 3.9 13s9.6-9 1.7-17.2"/><path d="m18.8 19.5c-3.8-3.8-1.3-9.3-1.3-9.3s-7.9 7.3-2.9 12.4c5.8 5.8 2.9 9.5 2.9 9.5s7.2-6.6 1.3-12.6"/><path d="m48.7 19.5c-3.8-3.8-1.3-9.3-1.3-9.3s-7.9 7.3-2.9 12.4c5.8 5.8 2.9 9.5 2.9 9.5s7.2-6.6 1.3-12.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c2.svg
index 09953b5..f29b9c7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#0071bc" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m34.26 22.973c0 4.764 9.555 4.764 9.555 0 0-2.586 0-4.751 0-4.751h-9.555l-3.801 2.851h3.801c0 .671 0 1.35 0 1.9"/><path d="m43.816 17.272v-3.801h-10.506l.95 3.801z"/><path d="m24.639 25.61l-10.319-2.186v9.836l10.319 2.184z"/><path d="m24.639 19.05l-10.319 2.189 10.319 2.185z"/><path d="m30.893 43.08l14.387-14.406h-8.698-5.689-.012l-6.651 11.972-1.9-3.416h-5.702l4.751 8.547h5.701l3.813-6.86z"/><path d="m32.57 43.805h15.11v-15.13z"/><path d="m30.893 45.48h16.791v5.04h-16.791z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m34.3 23c0 4.8 9.6 4.8 9.6 0 0-2.6 0-4.8 0-4.8h-9.6l-3.8 2.9h3.8c0 .6 0 1.3 0 1.9"/><path d="m43.8 17.3v-3.8h-10.5l1 3.8z"/><path d="m24.6 25.6l-10.3-2.2v9.9l10.3 2.1z"/><path d="m24.6 19.1l-10.3 2.1 10.3 2.2z"/><path d="m30.9 43.1l14.4-14.4h-8.7-5.7l-6.7 11.9-1.9-3.4h-5.7l4.8 8.6h5.7l3.8-6.9z"/><path d="m32.6 43.8h15.1v-15.1z"/><path d="m30.9 45.5h16.8v5h-16.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c3.svg
index 77189c8..618ee79 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#0071bc" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m17.424 43.528h14v5.999h-14z"/><path d="m11.424 29.528h6v14h-6z"/><path d="m37.15 21.973c0 4.764 9.555 4.764 9.555 0 0-2.586 0-4.751 0-4.751h-9.555l-3.801 2.851h3.801c0 .67 0 1.349 0 1.9"/><path d="m46.709 16.271v-3.8h-10.509l.95 3.8z"/><path d="m33.785 42.08l14.395-14.406h-8.704-5.691-.011l-13.502 14.1h5.702l7.811-8.16z"/><path d="m33.785 44.48h16.791v5.05h-16.791z"/><path d="m35.463 42.805h15.11v-15.13z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m17.4 43.5h14v6h-14z"/><path d="m11.4 29.5h6v14h-6z"/><path d="m37.2 22c0 4.8 9.6 4.8 9.6 0 0-2.6 0-4.8 0-4.8h-9.6l-3.8 2.9h3.8c0 .6 0 1.3 0 1.9"/><path d="m46.7 16.3v-3.8h-10.5l1 3.8z"/><path d="m33.8 42.1l14.4-14.4h-8.7-5.7l-13.5 14.1h5.7l7.8-8.2z"/><path d="m33.8 44.5h16.8v5h-16.8z"/><path d="m35.5 42.8h15.1v-15.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c4.svg
index c0ad888..b7c8c1c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#0071bc" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m52 41c0 1.104-.895 2-2 2h-36c-1.104 0-2-.896-2-2v-20c0-1.104.896-2 2-2h36c1.105 0 2 .896 2 2v20"/><circle cx="14.5" cy="48" r="2"/><circle cx="21.5" cy="48" r="2"/><circle cx="28.5" cy="48" r="2"/><circle cx="35.5" cy="48" r="2"/><circle cx="42.5" cy="48" r="2"/><circle cx="49.5" cy="48" r="2"/><path d="m41 19h-2v-3.903c0-.569-.447-1.032-1-1.032h-12c-.551 0-1 .463-1 1.032v3.903h-2v-3.903c0-1.708 1.345-3.097 3-3.097h12c1.654 0 3 1.389 3 3.097v3.903"/></g><g fill="#0071bc"><path d="m17.5 19h2v24h-2z"/><path d="m44.5 19h2v24h-2z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><circle cx="14.5" cy="48" r="2"/><circle cx="21.5" cy="48" r="2"/><circle cx="28.5" cy="48" r="2"/><circle cx="35.5" cy="48" r="2"/><circle cx="42.5" cy="48" r="2"/><circle cx="49.5" cy="48" r="2"/><path d="m41 19h-2v-3.9c0-.6-.4-1-1-1h-12c-.6 0-1 .5-1 1v3.9h-2v-3.9c0-1.7 1.3-3.1 3-3.1h12c1.7 0 3 1.4 3 3.1v3.9"/><path d="m50 19h-3.5v24h3.5c1.1 0 2-.9 2-2v-20c0-1.1-.9-2-2-2"/><path d="m19.5 19h25v24h-25z"/><path d="m17.5 19h-3.5c-1.1 0-2 .9-2 2v20c0 1.1.9 2 2 2h3.5v-24"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6c5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6c5.svg
index 083c6fb..dea7416 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6c5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6c5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#0071bc" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m48.621 52h-33.24c-1.862 0-3.378-1.496-3.378-3.334v-23.332c0-1.838 1.516-3.334 3.378-3.334h33.24c1.863 0 3.379 1.496 3.379 3.334v23.332c0 1.838-1.516 3.334-3.379 3.334m-33.24-28c-.76 0-1.378.599-1.378 1.334v23.332c0 .735.618 1.334 1.378 1.334h33.24c.76 0 1.379-.599 1.379-1.334v-23.332c0-.735-.619-1.334-1.379-1.334h-33.24"/><path d="m47 32h-3v16h3c.553 0 1-.447 1-1v-14c0-.553-.447-1-1-1"/><path d="m38 32v-4c0-1.104-.898-2-2-2h-8c-1.104 0-2 .896-2 2v4h-4v16h20v-16h-4m-2 0h-8v-4h8v4"/><path d="m17 32c-.553 0-1 .447-1 1v14c0 .553.447 1 1 1h3v-16h-3"/><circle cx="24" cy="16" r="4"/><path d="m42 14h-18v4h6l2-2 2 2h2l2-2 2 2h2l2-2z"/></g><circle fill="#0071bc" cx="23" cy="16" r="2"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m48.6 52h-33.2c-1.9 0-3.4-1.5-3.4-3.3v-23.4c0-1.8 1.5-3.3 3.4-3.3h33.2c1.9 0 3.4 1.5 3.4 3.3v23.3c0 1.9-1.5 3.4-3.4 3.4m-33.2-28c-.8 0-1.4.6-1.4 1.3v23.3c0 .7.6 1.3 1.4 1.3h33.2c.8 0 1.4-.6 1.4-1.3v-23.3c0-.7-.6-1.3-1.4-1.3h-33.2"/><path d="m47 32h-3v16h3c.6 0 1-.4 1-1v-14c0-.6-.4-1-1-1"/><path d="m38 32v-4c0-1.1-.9-2-2-2h-8c-1.1 0-2 .9-2 2v4h-4v16h20v-16h-4m-2 0h-8v-4h8v4"/><path d="m17 32c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3v-16h-3"/><path d="m42 14h-14.6c-.7-1.2-2-2-3.4-2-2.2 0-4 1.8-4 4s1.8 4 4 4c1.5 0 2.8-.8 3.4-2h2.6l2-2 2 2h2l2-2 2 2h2l2-2-2-2m-19 4c-1.1 0-2-.9-2-2s.9-2 2-2c1.1 0 2 .9 2 2s-.9 2-2 2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6cb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6cb.svg
index 21edfae..a33ada1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6cb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6cb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#666" d="m10.419 34.19h-1.201v-22.601c0-1.647.792-4.763 3.792-4.763v1.291c-2.561 0-2.591 3.33-2.591 3.472v22.601"/><path fill="#94989b" d="m21.644 6.988c-.499-.474-2.459-1.229-2.459-1.229l-1.581-5.149c-.187-.717-1.942-.816-3.922-.224-1.979.595-3.434 1.658-3.248 2.372l1.655 5.305c0 0-1.301 2.272-1.444 3.119-.265 1.561.615 6.302.615 6.302l13.958-4.186c0 .001-2.26-5.062-3.574-6.31"/><path fill="#3e4347" d="m12.09 8.06c.25-.635.747-1.151 1.296-1.555.555-.406 1.188-.689 1.834-.911.65-.2 1.328-.351 2.02-.359.679-.005 1.4.109 1.95.521-.595-.328-1.288-.364-1.942-.328-.662.048-1.314.19-1.946.404-.635.197-1.245.473-1.803.832-.549.363-1.074.806-1.405 1.396"/><path fill="#ffe62e" d="m25.22 13.299c.361 1.397-2.469 3.465-6.323 4.62-3.855 1.157-7.273.961-7.635-.435-.361-1.395 2.47-3.464 6.324-4.619 3.854-1.157 7.271-.961 7.634.434"/><path fill="#fff" d="m22.938 12.14c-1.405-.116-3.305.113-5.331.722-2.136.641-3.956 1.563-5.094 2.493 1.404.118 3.304-.113 5.33-.721 2.137-.642 3.957-1.562 5.095-2.494"/><path fill="#42ade2" d="m59.33 40.687c0 1.104-.896 2-2 2h-50.66c-1.104 0-2-.896-2-2v-13.04c0-1.104.896-2 2-2h50.66c1.104 0 2 .896 2 2v13.04"/><g fill="#428bc1"><path opacity=".5" d="m59.33 40.687c0 1.104-.896 2-2 2h-50.66c-1.104 0-2-.896-2-2v-13.04c0-1.104.896-2 2-2h50.66c1.104 0 2 .896 2 2v13.04"/><path d="m45 42.687h-40.33v-15.391c0 0 8.04 9.23 40.33 15.391"/></g><path fill="#42ade2" d="m62.28 30.466c0-1.751-1.321-3.17-2.95-3.17-1.629 0-2.949 1.419-2.949 3.17v12.419c0 1.752 1.32 3.171 2.949 3.171 1.629 0 2.95-1.419 2.95-3.171v-12.419"/><path fill="#428bc1" d="m56.38 30.466v12.419c0 1.752 1.32 3.171 2.949 3.171 1.629 0 2.95-1.419 2.95-3.171 0 0-4.425 1.321-5.899-12.419"/><path fill="#3e4347" d="m6.104 59.772h3.933v4.228h-3.933z"/><g fill="#428bc1"><path d="M45,59.772H3.974C1.779,59.772,0,57.86,0,55.501l0,0c0-2.359,1.779-4.271,3.974-4.271H45V59.772z"/><path d="m45 51.23h-41.03c-2.195 0-3.974-1.912-3.974-4.27 0-2.36 1.779-4.272 3.974-4.272h41.03v8.542"/></g><path fill="#3e4347" d="m53.964 59.772h3.932v4.228h-3.932z"/><g fill="#428bc1"><path d="m19 51.23h41.03c2.194 0 3.974 1.912 3.974 4.271 0 2.359-1.779 4.271-3.974 4.271h-41.03v-8.542"/><path d="m19 42.687h41.03c2.194 0 3.974 1.912 3.974 4.271 0 2.36-1.779 4.272-3.974 4.272h-41.03v-8.543"/></g><path fill="#42ade2" d="m7.62 30.466c0-1.751-1.321-3.17-2.95-3.17-1.629 0-2.949 1.419-2.949 3.17v12.419c0 1.752 1.32 3.171 2.949 3.171 1.629 0 2.95-1.419 2.95-3.171v-12.419"/><path fill="#428bc1" d="m1.721 30.466v12.419c0 1.752 1.32 3.171 2.949 3.171 1.629 0 2.95-1.419 2.95-3.171 0 0-4.425 1.321-5.899-12.419"/><g fill="#42ade2"><path d="m.313 48.623c-.202-.512-.313-1.074-.313-1.664 0-2.36 1.779-4.272 3.974-4.272h41.03c0 0-39.16.913-44.687 5.936"/><path d="m.313 57.17c-.202-.512-.313-1.074-.313-1.665 0-2.359 1.779-4.271 3.974-4.271h41.03c0-.001-39.16.913-44.687 5.936"/><path d="m63.69 45.29c.202.512.313 1.074.313 1.664 0 2.36-1.779 4.272-3.974 4.272h-41.03c0 0 39.16-.913 44.687-5.936"/><path d="m63.69 53.836c.202.512.313 1.074.313 1.665 0 2.359-1.779 4.271-3.974 4.271h-41.03c0 0 39.16-.913 44.687-5.936"/></g><path fill="#c7e755" d="m60.37 26.21c0 0-2.941 2.549-3.399 3.765-1.039 2.755-.342 8.94 0 11.891.057.49.45 1.915.45 1.915s-3.405-.924-4.567-1.057c-2.261-.259-6.83.22-9.09 0-1.024-.1-4.046-.793-4.046-.793s2.601-1.185 3.124-1.981c1.621-2.474 1.862-8.876 2.129-11.89.037-.411 0-1.652 0-1.652s2.209.71 2.971.793c2.248.246 6.784-.151 9.03-.396.856-.094 3.399-.595 3.399-.595"/><path fill="#9db730" d="m47.45 36.36c.402-1.024.967-1.969 1.619-2.832-.045-.218-.093-.426-.16-.639-.095-.301-.219-.584-.387-.845-.33-.523-.856-.921-1.444-1.192.628.102 1.277.343 1.806.836.264.241.492.532.683.842.046.073.087.155.131.233.779-.869 1.649-1.638 2.601-2.263 1.043-.687 2.163-1.246 3.353-1.531-2.042 1.38-3.907 2.913-5.462 4.762-.781.917-1.464 1.922-2.053 2.999-.586 1.079-1.051 2.239-1.457 3.469 0-1.305.279-2.621.77-3.839"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m10.4 34.2h-1.2v-22.6c0-1.6.8-4.8 3.8-4.8v1.3c-2.6 0-2.6 3.3-2.6 3.5 0 0 0 22.6 0 22.6" fill="#666"/><path d="m21.6 7c-.5-.5-2.5-1.2-2.5-1.2l-1.6-5.1c-.2-.7-1.9-.8-3.9-.2-2 .6-3.4 1.7-3.2 2.4l1.7 5.3c0 0-1.3 2.3-1.4 3.1-.3 1.6.6 6.3.6 6.3l14-4.2c-.1-.1-2.3-5.2-3.7-6.4" fill="#94989b"/><path d="m12.1 8.1c.2-.6.7-1.2 1.3-1.6.6-.4 1.2-.7 1.8-.9.6-.2 1.3-.4 2-.4.7 0 1.4.1 2 .5-.6-.3-1.3-.4-1.9-.3-.7 0-1.3.2-1.9.4-.6.2-1.2.5-1.8.8-.7.4-1.2.9-1.5 1.5" fill="#3e4347"/><path d="m25.2 13.3c.4 1.4-2.5 3.5-6.3 4.6-3.9 1.2-7.3 1-7.6-.4-.4-1.4 2.5-3.5 6.3-4.6 3.8-1.2 7.3-1 7.6.4" fill="#ffe62e"/><path d="m22.9 12.1c-1.4-.1-3.3.1-5.3.7-2.1.6-4 1.6-5.1 2.5 1.4.1 3.3-.1 5.3-.7 2.2-.6 4-1.5 5.1-2.5" fill="#fff"/><path d="m59.3 40.7c0 1.1-.9 2-2 2h-50.6c-1.1 0-2-.9-2-2v-13c0-1.1.9-2 2-2h50.7c1.1 0 2 .9 2 2v13z" fill="#42ade2"/><g fill="#428bc1"><path d="m59.3 40.7c0 1.1-.9 2-2 2h-50.6c-1.1 0-2-.9-2-2v-13c0-1.1.9-2 2-2h50.7c1.1 0 2 .9 2 2v13z" opacity=".5"/><path d="m45 42.7h-40.3v-15.4c0 0 8 9.2 40.3 15.4"/></g><path d="m62.3 30.5c0-1.8-1.3-3.2-3-3.2-1.6 0-2.9 1.4-2.9 3.2v12.4c0 1.8 1.3 3.2 2.9 3.2 1.6 0 3-1.4 3-3.2v-12.4" fill="#42ade2"/><path d="m56.4 30.5v12.4c0 1.8 1.3 3.2 2.9 3.2 1.6 0 3-1.4 3-3.2 0 0-4.4 1.3-5.9-12.4" fill="#428bc1"/><path fill="#3e4347" d="m6.1 59.8h3.9v4.2h-3.9z"/><g fill="#428bc1"><path d="m45 59.8h-41c-2.2 0-4-1.9-4-4.3 0-2.4 1.8-4.3 4-4.3h41v8.6"/><path d="m45 51.2h-41c-2.2 0-4-1.9-4-4.3 0-2.4 1.8-4.3 4-4.3h41v8.6"/></g><path fill="#3e4347" d="m54 59.8h3.9v4.2h-3.9z"/><g fill="#428bc1"><path d="m19 51.2h41c2.2 0 4 1.9 4 4.3 0 2.4-1.8 4.3-4 4.3h-41v-8.6"/><path d="m19 42.7h41c2.2 0 4 1.9 4 4.3 0 2.4-1.8 4.3-4 4.3h-41v-8.6"/></g><path d="m7.6 30.5c0-1.8-1.3-3.2-2.9-3.2-1.6 0-2.9 1.4-2.9 3.2v12.4c0 1.8 1.3 3.2 2.9 3.2 1.6 0 2.9-1.4 2.9-3.2v-12.4" fill="#42ade2"/><path d="m1.7 30.5v12.4c0 1.8 1.3 3.2 2.9 3.2 1.6 0 2.9-1.4 2.9-3.2.1 0-4.3 1.3-5.8-12.4" fill="#428bc1"/><g fill="#42ade2"><path d="m.3 48.6c-.2-.5-.3-1.1-.3-1.6 0-2.4 1.8-4.3 4-4.3h41c0 0-39.2.9-44.7 5.9"/><path d="m.3 57.2c-.2-.5-.3-1.1-.3-1.7 0-2.4 1.8-4.3 4-4.3h41c0 0-39.2.9-44.7 6"/><path d="m63.7 45.3c.2.5.3 1.1.3 1.7 0 2.4-1.8 4.3-4 4.3h-41c0-.1 39.2-1 44.7-6"/><path d="m63.7 53.8c.2.5.3 1.1.3 1.7 0 2.4-1.8 4.3-4 4.3h-41c0 0 39.2-.9 44.7-6"/></g><path d="m60.4 26.2c0 0-2.9 2.5-3.4 3.8-1 2.8-.3 8.9 0 11.9.1.5.5 1.9.5 1.9s-3.4-.9-4.6-1.1c-2.3-.3-6.8.2-9.1 0-1-.1-4-.8-4-.8s2.6-1.2 3.1-2c1.6-2.5 1.9-8.9 2.1-11.9 0-.4 0-1.7 0-1.7s2.2.7 3 .8c2.2.2 6.8-.2 9-.4.8 0 3.4-.5 3.4-.5" fill="#c7e755"/><path d="m47.4 36.4c.4-1 1-2 1.6-2.8 0-.2-.1-.4-.2-.6-.1-.3-.2-.6-.4-.8-.3-.5-.9-.9-1.4-1.2.6.1 1.3.3 1.8.8.3.2.5.5.7.8 0 .1.1.2.1.2.8-.9 1.6-1.6 2.6-2.3 1-.7 2.2-1.2 3.4-1.5-2 1.4-3.9 2.9-5.5 4.8-.8.9-1.5 1.9-2.1 3-.6 1.1-1.1 2.2-1.5 3.5.2-1.4.5-2.7.9-3.9" fill="#9db730"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6cc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6cc.svg
index 10a3179..8446d6d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6cc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6cc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#467591"><path d="m59.53 29.647c-1.229 0-2.234 1.01-2.234 2.234v1.766c0 1.229-1.01 2.234-2.233 2.234h-46.12c-1.229 0-2.234-1.01-2.234-2.234v-22c0-1.229-1.01-2.234-2.234-2.234h-2.237c-1.228-.001-2.234 1-2.234 2.234v40.709c0 1.229 1.01 2.234 2.234 2.234h2.236c1.229 0 2.234-1.01 2.234-2.234v-1.766c0-1.23 1-2.236 2.234-2.236h46.12c1.229 0 2.233 1.01 2.233 2.236v1.766c0 1.229 1.01 2.234 2.234 2.234h2.236c1.229 0 2.234-1.01 2.234-2.234v-20.473c0-1.229-1.01-2.234-2.234-2.234h-2.234z"/><circle cx="13.856" cy="28.507" r="5.096"/><path d="m54.978 33.603h-34.15v-5.096c0 0 8.798-15.1 34.15 5.096"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m6 55c0 .5-.4 1-1 1h-2c-.5 0-1-.5-1-1v-42c0-.6.5-1 1-1h2c.6 0 1 .4 1 1v42"/><path d="m5 55.3h4v6.7h-4z"/><path d="m55 55.3h4v6.7h-4z"/><path d="m62 49c0-.5-.4-1-1-1h-58c-.5 0-1 .5-1 1v8c0 .5.5 1 1 1h58c.6 0 1-.5 1-1v-8"/></g><path fill="#b0bdc6" d="m6 40h20v8h-20z"/><path d="m23.5 39.9c0 0-6.3 3.1-14.3.8-2.5-.7-5.3.9-4.8-.3 1.7-3.6 2.2-11-.1-13.9-1.6-2.1 3.6-.6 4.5 2.7 2.7 9.8 14.7 6 14.7 10.7" fill="#dae3ea"/><path fill="#ffdd67" d="m16.8 35l-.7 1.4 5.3 2.6 2.2-4.6z"/><path d="m17.1 34c2.4 1.2 5.2-1.6 5.2-1.6-.2 2 1.3 2 1.3 2-1 2-4.3 2.5-7.1 1.2l.6-1.6" fill="#eba352"/><path d="m8 32.2l6.4-6.9c3.7.5 10.4 4.6 7.3 8.9-.8 1.2-2.8 2.5-5.2 1.4l-1.5 2.1-7-5.5" fill="#ffdd67"/><path d="m7.3 28c-2.9 6 1.8 9.2 5.6 10.1 2.1.5 3.8 0 4.8-.9l-1.3-1.7c0 0-4.8-.6-4.8-4.9 0-1.8 2.6-3.9 2.6-5.4-.8-.9-5.2-.8-6.9 2.8" fill="#ffbc00"/><path d="m60 38c-.5-.5-27.8-13.7-34.9-8.1l-2 18.1h37.9c0 0 .7-8.1-1-10" fill="#ed4c5c"/><path d="m30 27.7c-1-1.4-2.6.6-2.6.6s-.7-1-1.6-.6c-.8.4-1.2 1.8-1.2 1.8s-1-1.1-1.5-.3c-8 12.4.9 30.4.9 30.4s-.7-8.1 1.5-10.1c2-1.8 3.4 3.5 3.4 3.5s-.2-7.8.5-8.4c1.6-1.2 2.9 5 2.9 5s2.5-15.4-2.3-21.9" fill="#a53838"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6cd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6cd.svg
index 7b9b148..1daf857 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6cd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6cd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M1.059 39.12 2.171 0 28.965 2.469 27.18 40.19z"/><path fill="#fcbe10" d="m28.527 18.05l.211-5.06-9.628-.788.531-11.143-6.355-.586-.391 8.512-.079 2.701-11.392-.936-.145 5.767 11.38.643-.649 22.98 6.19.25.741-22.878z"/><g fill="#ffce31"><path d="m10.629 13.347c0 0-.353 6.348-5.12 9.924l4.071.369-.457 5.01c0 0 4.794-5.631 5.642-14.931l-4.136-.374"/><path d="m21.06 14.298c0 0-.803 6.305 3.238 10.685l-4.071-.373-.457 5.01c0 0-3.694-6.404-2.847-15.704l4.137.38"/></g><path fill="#ffe62e" d="m15.4 14.06c-.146 1.591-2.059 2.978-4.253 3.08l-1.756.083c-2.193.102-3.588-.736-3.099-1.863.489-1.127.663-3.03.385-4.225-.277-1.196 1.247-1.77 3.386-1.272l1.712.399c2.139.498 3.77 2.207 3.625 3.798"/><path fill="#ffce31" d="m6.807 15.579c-.185.147-.005.337.047.42.157.248.667.545 1.627.633.275.025.57.031.877.017l1.756-.083c1.229-.057 2.376-.578 3.057-1.294-.001-.001-5.176-1.436-7.364.307"/><path fill="#ffe62e" d="m16.238 14.13c-.145 1.592 1.485 3.301 3.624 3.798l1.712.399c2.139.497 3.661-.075 3.385-1.271-.276-1.197-.104-3.098.386-4.225.488-1.127-.905-1.966-3.099-1.863l-1.756.083c-2.194.102-4.106 1.488-4.252 3.079"/><g fill="#ffce31"><path d="m24.414 17.18c.155.178-.057.333-.123.404-.199.216-.753.416-1.713.328-.276-.025-.567-.073-.867-.143l-1.712-.399c-1.198-.278-2.232-.998-2.771-1.826 0 0 5.348-.474 7.186 1.636"/><path d="m15.614 13.625c0 0-.561.405-1.744-.797-1.348-1.37-3.653.075-.86 1.061 1.491.527 2.604-.264 2.604-.264"/><path d="m16.11 13.669c0 0 .478.5 1.858-.468 1.572-1.103 3.58.734.655 1.199-1.561.248-2.513-.731-2.513-.731"/><path d="m15.62 16.271c-1.17-.107-1.538.732-1.264-2.276.274-3.01.484-2.116 1.654-2.01 1.17.107 1.539-.733 1.265 2.276-.274 3.01-.485 2.117-1.655 2.01"/></g><path fill="#ffe62e" d="m15.615 16.327c-.948-.086-1.263.78-.981-2.307.281-3.086.434-2.177 1.383-2.09.948.086 1.264-.78.982 2.306-.282 3.087-.436 2.178-1.384 2.091"/><path fill="#c28fef" d="M38.786 12.323 43.613 0 61.729 5.622 58.889 15.56z"/><path fill="#ffe62e" d="m45.496 13.388l6.276 1.025 3.578-10.931-6.01-1.891z"/><path fill="#42ade2" d="m32.438 11.188v19.477l31.562-.284v-19.19z"/><path fill="#0071bc" d="m32.438 11.188l-5.298 2.135v17.342h5.298z"/><path fill="#3e4347" d="m16 64l-8-4v-34h8z"/><g fill="#62727a"><path d="m8 60l-8 4v-38h8z"/><path d="m16 26h48v38h-48z"/></g><g fill="#3e4347"><circle cx="32" cy="35" r="3"/><circle cx="52" cy="35" r="3"/></g><path fill="#d0d0d0" d="m31 34.969c0 4.846 0 5.691 0 10.537 0 6.664 3.896 12.25 11 12.488 3.709.125 7.05-1.994 9.156-4.908 1.616-2.238 1.844-4.926 1.844-7.58 0-4.846 0-5.691 0-10.537 0-1.291-2-1.291-2 0 0 4.1 0 4.201 0 8.301 0 1.467.026 2.934-.022 4.4-.16 4.756-4.481 8.172-8.978 8.322-4.353.146-7.864-3.213-8.832-7.256-.406-1.699-.168-3.742-.168-5.466 0-4.1 0-4.201 0-8.301 0-1.291-2-1.291-2 0"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M1.1 39.1 2.2 0 29 2.5 27.2 40.2z"/><path fill="#fcbe10" d="m28.5 18l.2-5-9.6-.8.5-11.1-6.3-.6-.4 8.5-.1 2.7-11.4-.9-.1 5.7 11.4.7-.7 22.9 6.2.3.7-22.9z"/><g fill="#ffce31"><path d="m10.6 13.3c0 0-.4 6.3-5.1 9.9l4.1.4-.5 5c0 0 4.8-5.6 5.6-14.9l-4.1-.4"/><path d="m21.1 14.3c0 0-.8 6.3 3.2 10.7l-4.1-.4-.5 5c0 0-3.7-6.4-2.8-15.7l4.2.4"/></g><path d="m15.4 14.1c-.1 1.6-2.1 3-4.3 3.1l-1.8.1c-2.2.1-3.6-.7-3.1-1.9s.7-3 .4-4.2c-.3-1.2 1.2-1.8 3.4-1.3l1.7.4c2.2.5 3.8 2.2 3.7 3.8" fill="#ffe62e"/><path d="m6.8 15.6c-.2.1 0 .3 0 .4.2.2.7.5 1.6.6.3 0 .6 0 .9 0l1.8-.1c1.2-.1 2.4-.6 3.1-1.3 0 .1-5.2-1.4-7.4.4" fill="#ffce31"/><path d="m16.2 14.1c-.1 1.6 1.5 3.3 3.6 3.8l1.7.4c2.1.5 3.7-.1 3.4-1.3-.3-1.2-.1-3.1.4-4.2.5-1.1-.9-2-3.1-1.9l-1.8.1c-2.1.2-4 1.5-4.2 3.1" fill="#ffe62e"/><g fill="#ffce31"><path d="m24.4 17.2c.2.2-.1.3-.1.4-.2.2-.8.4-1.7.3-.3 0-.6-.1-.9-.1l-1.7-.4c-1.2-.3-2.2-1-2.8-1.8 0-.1 5.4-.5 7.2 1.6"/><path d="m15.6 13.6c0 0-.6.4-1.7-.8-1.3-1.4-3.7.1-.9 1.1 1.5.5 2.6-.3 2.6-.3"/><path d="m16.1 13.7c0 0 .5.5 1.9-.5 1.6-1.1 3.6.7.7 1.2-1.6.2-2.6-.7-2.6-.7"/><path d="m15.6 16.3c-1.2-.1-1.5.7-1.3-2.3.3-3 .5-2.1 1.7-2 1.2.1 1.5-.7 1.3 2.3s-.5 2.1-1.7 2"/></g><path d="m15.6 16.3c-.9-.1-1.3.8-1-2.3.3-3.1.4-2.2 1.4-2.1.9.1 1.3-.8 1 2.3-.3 3.1-.4 2.2-1.4 2.1" fill="#ffe62e"/><path fill="#c28fef" d="m38.8 12.3l4.8-12.3 18.1 5.6-2.8 10z"/><path fill="#ffe62e" d="m45.5 13.4l6.3 1 3.5-10.9-6-1.9z"/><path fill="#42ade2" d="m32.4 11.2v19.5l31.6-.3v-19.2z"/><path fill="#0071bc" d="m32.4 11.2l-5.3 2.1v17.4h5.3z"/><path fill="#3e4347" d="m16 64l-8-4v-34h8z"/><g fill="#62727a"><path d="m8 60l-8 4v-38h8z"/><path d="m16 26h48v38h-48z"/></g><g fill="#3e4347"><circle cx="32" cy="35" r="3"/><circle cx="52" cy="35" r="3"/></g><path d="m31 35c0 4.8 0 5.7 0 10.5 0 6.7 3.9 12.2 11 12.5 3.7.1 7-2 9.2-4.9 1.6-2.2 1.8-4.9 1.8-7.6 0-4.8 0-5.7 0-10.5 0-1.3-2-1.3-2 0 0 4.1 0 4.2 0 8.3 0 1.5 0 2.9 0 4.4-.2 4.8-4.5 8.2-9 8.3-4.4.1-7.9-3.2-8.8-7.3-.4-1.7-.2-3.7-.2-5.4 0-4.1 0-4.2 0-8.3 0-1.3-2-1.3-2 0" fill="#d0d0d0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ce.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ce.svg
index 929ea1d..96f9fef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ce.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ce.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m53.645 51.49c-1.444-.771-3.293-4.747-3.293-4.747h-36.705c0 0-1.848 3.977-3.292 4.747-1.88 1-5.355 2.01-5.355 5.706v4.801h54v-4.801c0-3.697-3.475-4.701-5.355-5.706"/><path fill="#62696d" d="m55.4 57.933c0 1.123-.805 2.033-1.8 2.033h-43.2c-.994 0-1.8-.91-1.8-2.033 0-1.124.806-2.034 1.8-2.034h43.2c.996-.001 1.8.91 1.8 2.034"/><path fill="#b2c1c0" d="m57 49.797v-3.051c0-14.04-11.193-22.374-25-22.374s-25 8.333-25 22.374v3.051h50"/><path fill="#dae3ea" d="m53.21 49.797v-2.882c0-13.575-9.494-21.531-21.21-21.531-11.711 0-21.21 7.956-21.21 21.531v2.882h42.41"/><g fill="#94989b"><path d="m26.768 10.136h10.465v4.068h-10.465z"/><path d="m30.14 14.204h3.715v6.102h-3.715z"/></g><path fill="#3e4347" d="m30.14 14.204h3.715v3.051h-3.715z"/><path fill="#b2c1c0" d="m26 19.796h12v6.101h-12z"/><path fill="#dae3ea" d="m28 19.796h8v6.668h-8z"/><g fill="#42ade2"><path d="M51.13 2 42.18 16.792 56.729 6.437z"/><path d="M12.865 2 21.818 16.792 7.274 6.437z"/><path d="m48 22.848l11.55-6.06 2.45 6.06z"/><path d="M16 22.848 4.455 16.792 2 22.848z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53.6 51.5c-1.4-.8-3.3-4.7-3.3-4.7h-36.7c0 0-1.8 4-3.3 4.7-1.9 1-5.4 2-5.4 5.7v4.8h54v-4.8c.1-3.7-3.4-4.7-5.3-5.7" fill="#3e4347"/><path d="m55.4 57.9c0 1.1-.8 2-1.8 2h-43.2c-1 0-1.8-.9-1.8-2 0-1.1.8-2 1.8-2h43.2c1 0 1.8.9 1.8 2" fill="#62696d"/><path d="m57 49.8v-3.1c0-14-11.2-22.4-25-22.4s-25 8.4-25 22.4v3.1c0 0 50 0 50 0" fill="#b2c1c0"/><path d="m53.2 49.8v-2.9c0-13.6-9.5-21.5-21.2-21.5-11.7 0-21.2 8-21.2 21.5v2.9h42.4" fill="#dae3ea"/><g fill="#94989b"><path d="m26.8 10.1h10.5v4.1h-10.5z"/><path d="m30.1 14.2h3.7v6.1h-3.7z"/></g><path fill="#3e4347" d="m30.1 14.2h3.7v3.1h-3.7z"/><path fill="#b2c1c0" d="m26 19.8h12v6.1h-12z"/><path fill="#dae3ea" d="m28 19.8h8v6.7h-8z"/><g fill="#42ade2"><path d="M51.1 2 42.2 16.8 56.7 6.4z"/><path d="M12.9 2 21.8 16.8 7.3 6.4z"/><path d="m48 22.8l11.5-6 2.5 6z"/><path d="m16 22.8l-11.5-6-2.5 6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6cf.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6cf.svg
index 861a585..f2fb4aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6cf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6cf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m30.495 9.06c0 0-2.576 1.106-5.488-1.669-1.723-1.643-4.565-2.951-5.844-3.387h-1.1c0 0-3.795 0-7.766 3.387-2.365 2.02-4.593 2.165-5.04 1.669h-1.1c-1.37 3.121-4.16 2.75-4.16 2.75v30.393h34.21l-2.62-33.14h-1.099"/><path fill="#62696d" d="m31.594 9.06c0 0-2.576 1.106-5.488-1.669-3.551-3.387-6.943-3.387-6.943-3.387s-3.795 0-7.766 3.387c-3.256 2.775-6.137 1.669-6.137 1.669-1.371 3.122-4.16 2.75-4.16 2.75v30.393h34.21v-30.393c0 0-2.495.371-3.72-2.75"/><path fill="#3e4347" d="m1.1 35.51l21.391 11.447v9.06l-21.391-13.82z"/><g fill="#62696d"><path d="m22.491 56.02l41.509-6.98v-8.03l-41.509 5.947z"/><path d="m21.502 55.39l.401 4.2.588.41v-3.98z"/></g><g fill="#3e4347"><path d="m22.491 60l1.42-.41.679-3.918-2.099.348z"/><path d="m63.56 52.977v-3.867l-2.689.454.9 3.706z"/><path d="m.438 42.2v3.16h1.494l.979-3.16z"/></g><path fill="#94989b" d="M1.1 35.51 22.491 46.957 64 41.01 35.02 30.976z"/><path fill="#dae3ea" d="m2.262 29.681l20.978 8.339v7.617l-20.978-10.337z"/><path fill="#ffdd7d" d="m23.24 45.637l38.655-5.186v-6.738l-38.655 4.307z"/><path fill="#fff" d="m2.262 29.681l20.978 8.339 38.655-4.307-26.585-6.751z"/><g fill="#b2c1c0"><path d="m4.061 25.623c0 0 1.174 3.197 5.03 4.725 0 0 5.719-1.654 13.311-1.6 0 0-2.982-2.744-3.814-4.959-.001 0-6.626-2.385-14.53 1.834"/><path d="m21.446 24.23c0 0 .797 3.197 3.416 4.725 0 0 3.879-1.654 9.03-1.602 0 0-2.023-2.744-2.587-4.955-.001 0-4.495-2.387-9.858 1.832"/></g><g fill="#dae3ea"><path d="m7.512 23.17c0 0 2.568 3.531 3.77 8.25 0 0 5.717-2.303 13.309-2.23 0 0-2.98-3.828-3.813-6.91 0 0-5.557-1.078-13.266.89"/><path d="m22.614 22.18c0 0 2.297 3.158 3.369 7.377 0 0 5.113-2.061 11.898-1.992 0 0-2.664-3.424-3.408-6.18 0 0-4.969-.965-11.859.795"/></g><g fill="#a53838"><path d="m11.795 39.994c0 0-.576-4.166-.27-5.449.209-.877 1.162-2.247 1.707-2.676 1.408-1.113 6.271-1.521 6.271-1.521s17.71-2.498 23.544-2.27c.873.033 3.332 1.604 3.332 1.604l-27.57 3.461-2.979 5.34-.311 3.352-3.724-1.841"/><path d="m17.389 35.693l-1.556 2.789-.311 3.35 7.718 3.805v-7.617z"/></g><path fill="#ed4c5c" d="m23.24 38.02v7.617l38.655-5.186v-6.738z"/><path fill="#c94747" d="m17.389 35.693l5.851 2.327 38.655-4.307-15.755-4-27.329 3.43z"/><path fill="#ed4c5c" d="m54.38 31.804c0 0-.652-1.227-.953-1.457-.354-.273-1.566-.365-1.566-.365s-.414-.926-.637-1.023c-.471-.211-1.908.723-1.908.723s-.793-1.08-1.127-1.084c-7.307-.037-22.609 1.75-29.71 3.895-.77.232-1.953 2.069-2.426 3.02-.984 1.973-2.314 6.637-2.617 9.07-.289 2.32 1.113 8.941 1.113 8.941s1.156-4.461 2.266-5.82c.514-.631.984 2.688.984 2.688s.863-4.168 1.217-4.617c.396-.506 1.033 2.529 1.033 2.529s.629-6.609 1.072-8.18c.301-1.068 1.389-3.02 2.123-3.344 7.01-3.063 21.675-5.569 28.929-5.354.453.013 2.207.382 2.207.382"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m30.5 9.1c0 0-2.6 1.1-5.5-1.7-1.7-1.6-4.6-3-5.8-3.4h-1.1c0 0-3.8 0-7.8 3.4-2.4 2-4.6 2.2-5 1.7h-1.1c-1.4 3.1-4.2 2.7-4.2 2.7v30.4h34.2l-2.6-33.1h-1.1" fill="#3e4347"/><path d="m31.6 9.1c0 0-2.6 1.1-5.5-1.7-3.5-3.4-6.9-3.4-6.9-3.4s-3.8 0-7.8 3.4c-3.3 2.8-6.1 1.7-6.1 1.7-1.4 3.1-4.2 2.8-4.2 2.8v30.4h34.2v-30.5c0 0-2.5.4-3.7-2.7" fill="#62696d"/><path fill="#3e4347" d="m1.1 35.5l21.4 11.5v9l-21.4-13.8z"/><g fill="#62696d"><path d="m22.5 56l41.5-7v-8l-41.5 6z"/><path d="m21.5 55.4l.4 4.2.6.4v-4z"/></g><g fill="#3e4347"><path d="m22.5 60l1.4-.4.7-3.9-2.1.3z"/><path d="m63.6 53v-3.9l-2.7.5.9 3.7z"/><path d="m.4 42.2v3.2h1.5l1-3.2z"/></g><path fill="#94989b" d="M1.1 35.5 22.5 47 64 41 35 31z"/><path fill="#dae3ea" d="m2.3 29.7l20.9 8.3v7.6l-20.9-10.3z"/><path fill="#ffdd7d" d="m23.2 45.6l38.7-5.1v-6.8l-38.7 4.3z"/><path fill="#fff" d="M2.3 29.7 23.2 38 61.9 33.7 35.3 27z"/><g fill="#b2c1c0"><path d="m4.1 25.6c0 0 1.2 3.2 5 4.7 0 0 5.7-1.7 13.3-1.6 0 0-3-2.7-3.8-5 0 .1-6.6-2.3-14.5 1.9"/><path d="m21.4 24.2c0 0 .8 3.2 3.4 4.7 0 0 3.9-1.7 9-1.6 0 0-2-2.7-2.6-5 .1.1-4.4-2.3-9.8 1.9"/></g><g fill="#dae3ea"><path d="m7.5 23.2c0 0 2.6 3.5 3.8 8.2 0 0 5.7-2.3 13.3-2.2 0 0-3-3.8-3.8-6.9 0 0-5.6-1.1-13.3.9"/><path d="m22.6 22.2c0 0 2.3 3.2 3.4 7.4 0 0 5.1-2.1 11.9-2 0 0-2.7-3.4-3.4-6.2 0 0-5-1-11.9.8"/></g><g fill="#a53838"><path d="m11.8 40c0 0-.6-4.2-.3-5.4.2-.9 1.2-2.2 1.7-2.7 1.4-1.1 6.3-1.5 6.3-1.5s17.7-2.5 23.5-2.3c.9 0 3.3 1.6 3.3 1.6l-27.6 3.5-3 5.3-.3 3.4-3.6-1.9"/><path d="m17.4 35.7l-1.6 2.8-.3 3.3 7.7 3.8v-7.6z"/></g><path fill="#ed4c5c" d="m23.2 38v7.6l38.7-5.1v-6.8z"/><path fill="#c94747" d="m17.4 35.7l5.8 2.3 38.7-4.3-15.8-4-27.3 3.4z"/><path d="m54.4 31.8c0 0-.7-1.2-1-1.5-.4-.3-1.6-.4-1.6-.4s-.4-.9-.6-1c-.5-.2-1.9.7-1.9.7s-.8-1.1-1.1-1.1c-7.3 0-22.6 1.8-29.7 3.9-.8.2-2 2.1-2.4 3-1 2-2.3 6.6-2.6 9.1-.3 2.3 1.1 8.9 1.1 8.9s1.2-4.5 2.3-5.8c.5-.6 1 2.7 1 2.7s.9-4.2 1.2-4.6c.4-.5 1 2.5 1 2.5s.6-6.6 1.1-8.2c.3-1.1 1.4-3 2.1-3.3 7-3.1 21.7-5.6 28.9-5.4.4.1 2.2.5 2.2.5" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6d0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6d0.svg
index 09f4b3f..65314e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6d0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6d0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M32 10.05 48.639 25.406 53 21.382 32 2 11 21.382 15.361 25.406z"/><g fill="#42ade2"><path d="m22.524 35.624c4.934 7.817 4.934 7.817 4.934 7.817.701 1.454 2.879 1.12 4.02 0l3.619-3.504 5.568 8.599c-3.354 3.313-5.285 5.152-8.638 8.456-1.804 1.788-.426 5.01 2.01 5.01 5.18 0 11.781 0 16.959 0v-2.932c-9.873-2.934-9.873-2.934-9.873-2.934 2.266-2.238 4.536-4.477 6.81-6.717 1.208-1.189.949-2.926 0-4.146-3.048-3.908-6.095-7.814-9.142-11.72-.984-1.267-2.996-1.01-4.02 0-1.768 1.739-3.534 3.481-5.301 5.229 0 0 0 0-5.528-4.625l-1.421 1.469"/><path d="m35.537 29.633c.575-.514.637-1.42.138-2.02l-3.333-3.956c-.501-.595-1.381-.662-1.955-.145l-3.836 3.444c-.576.512-.635 1.422-.136 2.02l3.333 3.954c.498.595 1.378.661 1.955.139l3.834-3.44"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m48.6 25.4l4.4-4-21-19.4-21 19.4 4.4 4 16.6-15.3z"/><path d="m47.9 49.4c1.2-1.2.9-2.9 0-4.1-3-3.9-6.1-7.8-9.1-11.7-1-1.3-3-1-4 0-1.8 1.7-3.5 3.5-5.3 5.2 0 0 0 0-5.5-4.6l-1.4 1.5c4.9 7.8 4.9 7.8 4.9 7.8.7 1.5 2.9 1.1 4 0l3.6-3.5 5.6 8.6c-3.4 3.3-5.3 5.2-8.6 8.5-1.8 1.8-.4 5 2 5 5.2 0 11.8 0 17 0v-2.9c-9.9-2.9-9.9-2.9-9.9-2.9 2.2-2.4 4.5-4.6 6.7-6.9"/><path d="m30.4 23.5l-3.9 3.5c-.6.5-.6 1.4-.1 2l3.3 4c.5.6 1.4.7 2 .1l3.8-3.4c.6-.5.6-1.4.1-2l-3.3-4c-.5-.6-1.3-.7-1.9-.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6d1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6d1.svg
new file mode 100644
index 0000000..4107a85
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6d1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e9edf2" d="M64 45.3 45.3 64 18.7 64 0 45.3 0 18.7 18.7 0 45.3 0 64 18.7z"/><path fill="#ed4c5c" d="M58 42.8 42.8 58 21.2 58 6 42.8 6 21.2 21.2 6 42.8 6 58 21.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6d2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6d2.svg
new file mode 100644
index 0000000..b820572
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6d2.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m53.1 38.6h-7.5v3.8h7.5c1 0 1.9.8 1.9 1.9s-.8 1.9-1.9 1.9h-46.8c-1 0-1.9.8-1.9 1.9 0 1 .8 1.9 1.9 1.9h46.9c3.1 0 5.6-2.5 5.6-5.6 0-3.3-2.6-5.8-5.7-5.8"/><path d="m54.5 25.7l-3.7-.3c0-.1 2.3-13.8 2.8-16.6.3-1.6.9-6.1 6.6-6.1v3.8c-2.3 0-2.6.9-2.8 2.6-.6 2.8-2.9 16.4-2.9 16.6"/></g><path d="m54.7 12.3h-50.7c-1.9 0-2.2 1.8-1.9 2.8l5.7 25.4c.3 1 1.3 1.8 2.4 1.8h39.8c1 0 2-.8 2.2-1.9l4.2-26.3c.1-.9-.7-1.8-1.7-1.8m-47.8 8.5l-1-3.8c-.1-.5.2-.9.7-.9h7.1c.5 0 1 .4 1 .9l.4 3.8c.1.5-.3.9-.8.9h-6.3c-.5 0-1-.4-1.1-.9m3.2 9.3c-.5 0-1-.4-1.2-.9l-.7-2.9c-.1-.5.2-.9.7-.9h5.7c.5 0 1 .4 1 .9l.3 2.8c.1.5-.3.9-.8.9.1.1-5 .1-5 .1m6 8.5h-3.9c-.5 0-1-.4-1.2-.9l-.7-2.9c-.1-.5.2-.9.7-.9h4.5c.5 0 1 .4 1 .9l.3 2.8c.2.5-.2 1-.7 1m11.5-1c0 .5-.4.9-.9.9h-4.9c-.5 0-1-.4-1-.9l-.3-2.8c-.1-.5.3-.9.8-.9h5.4c.5 0 .9.4.9.9v2.8m0-8.4c0 .5-.4.9-.9.9h-5.8c-.5 0-1-.4-1-.9l-.3-2.8c-.1-.5.3-.9.8-.9h6.3c.5 0 .9.4.9.9 0 0 0 2.8 0 2.8m0-8.4c0 .5-.4.9-.9.9h-6.7c-.5 0-1-.4-1-.9l-.5-3.8c-.1-.5.3-.9.8-.9h7.3c.5 0 .9.4.9.9.1 0 .1 3.8.1 3.8m10.2 16.8c-.1.5-.5.9-1 .9h-4.4c-.5 0-.9-.4-.9-.9v-2.8c0-.5.4-.9.9-.9h4.9c.5 0 .9.4.8.9l-.3 2.8m.9-8.4c-.1.5-.5.9-1 .9h-5.3c-.5 0-.9-.4-.9-.9v-2.8c0-.5.4-.9.9-.9h5.8c.5 0 .9.4.8.9l-.3 2.8m.9-8.4c-.1.5-.5.9-1 .9h-6.2c-.5 0-.9-.4-.9-.9v-3.8c0-.5.4-.9.9-.9h6.8c.5 0 .9.4.8.9l-.4 3.8m8.7 16.8c-.1.5-.6.9-1.1.9h-4.8c-.5 0-.9-.4-.8-.9l.3-2.8c.1-.5.5-.9 1-.9h5.1c.5 0 .9.4.8.9l-.5 2.8m1.3-8.4c-.1.5-.6.9-1.1.9h-5.3c-.5 0-.9-.4-.8-.9l.3-2.8c.1-.5.5-.9 1-.9h5.5c.5 0 .9.4.8.9l-.4 2.8m1.3-8.4c-.1.5-.6.9-1.1.9h-5.7c-.5 0-.9-.4-.8-.9l.4-3.8c.1-.5.5-.9 1-.9h5.9c.5 0 .9.4.8.9l-.5 3.8" fill="#f15744"/><circle cx="12.3" cy="56.4" r="5.6" fill="#62727a"/><circle cx="12.3" cy="56.4" r="2.8" fill="#fff"/><circle cx="46.1" cy="56.4" r="5.6" fill="#62727a"/><path d="m48.9 56.4c0 1.6-1.3 2.8-2.8 2.8-1.6 0-2.8-1.3-2.8-2.8 0-1.6 1.3-2.8 2.8-2.8 1.5 0 2.8 1.2 2.8 2.8" fill="#fff"/><path d="m61.1 2h-2.8v5.6h2.8c.5 0 .9-.4.9-.9v-3.8c0-.5-.4-.9-.9-.9" fill="#62727a"/><g fill="#f15744"><path d="m12.3 48.9c-4.1 0-7.5 3.4-7.5 7.5h15c0-4.2-3.3-7.5-7.5-7.5"/><path d="m46.1 48.9c-4.1 0-7.5 3.4-7.5 7.5h15c0-4.2-3.4-7.5-7.5-7.5"/></g><path d="m42.3 38.4c0 .1 0 .1 0 .1s0 0 0-.1" fill="#75a843"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e0.svg
index b1b0b04..af26bdb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m20.902 50.885l29.984-29.984c3.478.846 7.295-.092 10.01-2.803 2.714-2.715 3.646-6.534 2.804-10.01l-8.655 8.656-6.144-1.647-1.647-6.147 8.655-8.652c-3.476-.845-7.294.09-10.01 2.806-2.715 2.712-3.648 6.531-2.807 10.01l-29.984 29.986c-3.477-.844-7.295.09-10.01 2.805-4.142 4.139-4.141 10.852 0 14.992 4.14 4.141 10.852 4.141 14.991 0 2.715-2.715 3.648-6.534 2.806-10.01m-8.654 8.658l-6.146-1.646-1.646-6.147 4.499-4.496 6.144 1.645 1.646 6.146-4.497 4.498"/><path fill="#3e4347" d="m28.791 21.93l-5.581 5.755-5.549-5.724 5.579-5.754z"/><g fill="#94989b"><path d="m16.716 5.067l-9.855 10.164c-.36.371-.36.975 0 1.346l3.665 3.781.043.045 3.665 3.781c.36.371.946.371 1.306 0l9.854-10.165c.36-.372.36-.974 0-1.347l-7.374-7.605c-.361-.371-.944-.371-1.304 0"/><path d="m.27 22.03c-.36.371-.36.975 0 1.346l7.375 7.607c.358.371.944.371 1.305 0 0 0 2.033-2.122 2.077-2.178l-8.647-8.918c-.054.045-2.11 2.143-2.11 2.143"/></g><g fill="#3e4347"><path d="m10.526 20.358l-3.665-3.781c0 0 1.206 2.111-1.958 2.491-1.273.153-2.071.441-2.523.819l8.646 8.918c.366-.467.646-1.289.793-2.603.371-3.265 2.415-2.02 2.415-2.02l-3.665-3.781-.043-.044"/><path d="m39.572 4.288c-10.06-10.295-21.16 1.183-21.16 1.183l6.542 6.746c0 0 6.29-8.465 14.242-6.124.925.272 1.747.74 1.981.501.317-.326-.894-1.579-1.604-2.306"/></g><path fill="#f2b200" d="m25.999 24.807l-3.608 3.724c0 0 1.864 2.999 5.063 6.297 3.529 3.641 8.194 5.684 12.853 10.488 7.01 7.227 12.835 14.986 14.948 17.898.798 1.1.925.996 1.899-.01l3.038-3.133-34.19-35.26"/><path fill="#ffce31" d="m25.999 24.807l3.61-3.723c0 0 2.908 1.923 6.106 5.221 3.531 3.641 5.511 8.453 10.169 13.257 7.01 7.227 14.529 13.238 17.354 15.418 1.064.822.965.951-.011 1.959l-3.037 3.133-34.19-35.27"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.9 50.9l30-30c3.5.8 7.3-.1 10-2.8 2.7-2.7 3.6-6.5 2.8-10l-8.7 8.6-6.1-1.6-1.6-6.1 8.7-8.7c-3.5-.8-7.3.1-10 2.8-2.7 2.7-3.6 6.5-2.8 10l-30 30c-3.5-.8-7.3.1-10 2.8-4.2 4.1-4.2 10.9-.1 15 4.1 4.1 10.9 4.1 15 0 2.7-2.7 3.6-6.5 2.8-10m-8.7 8.6l-6.1-1.6-1.6-6.1 4.5-4.5 6.1 1.6 1.6 6.1-4.5 4.5" fill="#94989b"/><path fill="#3e4347" d="m28.8 21.9l-5.6 5.8-5.5-5.7 5.5-5.8z"/><g fill="#94989b"><path d="m16.7 5.1l-9.8 10.1c-.4.4-.4 1 0 1.3l3.7 3.8 3.7 3.8c.4.4.9.4 1.3 0l9.8-10.1c.4-.4.4-1 0-1.3l-7.4-7.6c-.3-.4-.9-.4-1.3 0"/><path d="m.3 22c-.4.4-.4 1 0 1.3l7.3 7.7c.4.4.9.4 1.3 0 0 0 2-2.1 2.1-2.2l-8.6-8.9c-.1 0-2.1 2.1-2.1 2.1"/></g><g fill="#3e4347"><path d="m10.5 20.4l-3.7-3.8c0 0 1.2 2.1-2 2.5-1.3.2-2.1.4-2.5.8l8.6 8.9c.4-.5.6-1.3.8-2.6.4-3.3 2.4-2 2.4-2l-3.6-3.8"/><path d="m39.6 4.3c-10.1-10.3-21.2 1.2-21.2 1.2l6.5 6.7c0 0 6.3-8.5 14.2-6.1.9.3 1.7.7 2 .5.4-.3-.8-1.6-1.5-2.3"/></g><path d="m26 24.8l-3.6 3.7c0 0 1.9 3 5.1 6.3 3.5 3.6 8.2 5.7 12.9 10.5 7 7.2 12.8 15 14.9 17.9.8 1.1.9 1 1.9 0l3-3.1-34.2-35.3" fill="#f2b200"/><path d="m26 24.8l3.6-3.7c0 0 2.9 1.9 6.1 5.2 3.5 3.6 5.5 8.5 10.2 13.3 7 7.2 14.5 13.2 17.4 15.4 1.1.8 1 1 0 2l-3 3.1-34.3-35.3" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e1.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e1.svg
index 44a3901..e9a41aa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#728084"><path d="m35.751 23.688h17.941c-.379-8.762-3.33-14.688-3.33-14.688s-5.566.795-9.535 0c-1.791-.359-3.58-1.196-5.076-2.063v16.751"/><path d="m28.25 23.688v-16.75c-1.497.867-3.282 1.703-5.075 2.062-3.969.795-9.535 0-9.535 0s-2.951 5.926-3.332 14.688h17.942"/><path d="m28.25 31.09h-17.614c.051.381.107.764.17 1.15 1.84 11.293 11.865 20.688 17.443 25.13v-26.28"/><path d="m35.751 31.09v26.28c5.578-4.445 15.605-13.838 17.445-25.13.063-.387.117-.77.168-1.15h-17.613"/></g><g opacity=".3" fill="#b0bdc6"><path d="m36.54 22.711h17.941c-.379-8.763-3.33-14.688-3.33-14.688s-5.566.796-9.535 0c-1.791-.359-3.58-1.195-5.076-2.062v16.75"/><path d="m27.459 22.711v-16.75c-1.496.866-3.283 1.702-5.076 2.062-3.969.796-9.533 0-9.533 0s-2.953 5.926-3.332 14.688h17.941"/><path d="m27.459 31.755h-17.613c.051.381.105.764.168 1.15 1.84 11.295 11.867 20.688 17.445 25.13v-26.28"/><path d="m36.54 31.755v26.28c5.578-4.445 15.605-13.838 17.445-25.13.063-.387.117-.77.168-1.15h-17.613z"/></g><path fill="#89969b" d="m28 3.793h8v57.24h-8z"/><path fill="#b0bdc6" d="m29 3.793h6v57.24h-6z"/><path fill="#89969b" d="m8.821 23.256h46.36v8h-46.36z"/><path fill="#b0bdc6" d="m8.821 24.26h46.36v6h-46.36z"/><g opacity=".2"><path d="m31.998 60.801c-.309 0-.617-.09-.889-.268-.754-.496-18.51-12.344-21.07-28.27-2.127-13.256 2.669-23.2 2.873-23.618.314-.638.998-.999 1.691-.901.023.003 2.301.327 4.854.327 1.467 0 2.729-.104 3.746-.311 3.758-.763 7.695-4.135 7.734-4.168.609-.527 1.51-.528 2.122.001.039.032 3.973 3.404 7.73 4.168 1.02.207 2.277.311 3.746.311 2.551 0 4.832-.324 4.855-.327.697-.102 1.377.263 1.691.901.205.417 5 10.361 2.871 23.618-2.557 15.923-20.313 27.771-21.07 28.27-.268.178-.575.268-.887.268m-16.606-49.623c-1.092 2.771-3.699 10.753-2.123 20.554 2.01 12.545 15.16 22.817 18.729 25.395 3.569-2.578 16.717-12.85 18.731-25.395 1.572-9.8-1.031-17.781-2.123-20.554-.99.1-2.469.213-4.068.213-1.684 0-3.158-.126-4.387-.376-3.314-.674-6.539-2.835-8.153-4.051-1.611 1.216-4.834 3.377-8.146 4.051-1.23.25-2.707.376-4.391.376-1.6 0-3.081-.114-4.069-.213"/></g><g fill="#b0bdc6"><path d="m31.998 64c-.344 0-.686-.1-.986-.297-.84-.553-20.564-13.715-23.408-31.407-2.364-14.73 2.964-25.779 3.188-26.24.352-.709 1.109-1.11 1.881-1 .025.003 2.559.364 5.396.364 1.629 0 3.03-.117 4.16-.346 4.174-.849 8.549-4.594 8.592-4.632.68-.586 1.678-.587 2.358.001.043.037 4.412 3.782 8.59 4.631 1.131.229 2.527.346 4.16.346 2.836 0 5.369-.36 5.395-.364.777-.114 1.531.292 1.881 1 .229.463 5.557 11.512 3.191 26.24-2.842 17.692-22.57 30.854-23.409 31.407-.3.197-.646.297-.989.297m-18.452-55.13c-1.213 3.079-4.107 11.947-2.357 22.837 2.236 13.939 16.848 25.351 20.811 28.22 3.963-2.865 18.573-14.277 20.811-28.21 1.748-10.89-1.146-19.757-2.359-22.837-1.1.111-2.742.237-4.52.237-1.869 0-3.51-.141-4.873-.418-3.684-.75-7.266-3.151-9.06-4.502-1.793 1.352-5.373 3.753-9.05 4.501-1.367.277-3.01.418-4.875.418-1.781 0-3.424-.126-4.524-.237"/><path d="m31.998 61.67c-.316 0-.635-.092-.916-.275-.775-.512-19.07-12.717-21.703-29.12-2.189-13.658 2.75-23.902 2.959-24.332.324-.657 1.027-1.029 1.744-.928.023.003 2.369.337 5 .337 1.512 0 2.811-.107 3.859-.321 3.869-.787 7.926-4.26 7.965-4.294.631-.543 1.557-.544 2.186.001.041.034 4.094 3.507 7.965 4.293 1.051.213 2.346.321 3.857.321 2.629 0 4.98-.333 5-.337.723-.105 1.42.271 1.744.928.211.43 5.152 10.674 2.959 24.332-2.635 16.403-20.928 28.608-21.706 29.12-.277.183-.595.275-.915.275m-17.11-51.12c-1.125 2.855-3.813 11.08-2.189 21.17 2.074 12.922 15.621 23.504 19.295 26.16 3.676-2.656 17.223-13.238 19.297-26.16 1.619-10.1-1.063-18.317-2.188-21.17-1.021.103-2.543.219-4.193.219-1.732 0-3.252-.13-4.518-.387-3.414-.694-6.736-2.921-8.399-4.174-1.662 1.253-4.979 3.479-8.395 4.174-1.268.257-2.787.387-4.521.387-1.646 0-3.171-.117-4.189-.219"/></g><path fill="#dfe9ef" d="m31.998 62.943c-.332 0-.662-.096-.955-.287-.811-.533-19.885-13.264-22.635-30.37-2.285-14.244 2.867-24.927 3.086-25.375.338-.686 1.072-1.073 1.818-.967.023.003 2.473.352 5.217.352 1.574 0 2.93-.113 4.02-.334 4.04-.821 8.268-4.443 8.309-4.479.658-.567 1.623-.567 2.28.001.043.035 4.27 3.657 8.307 4.478 1.094.222 2.445.334 4.02.334 2.742 0 5.193-.348 5.217-.352.752-.11 1.48.282 1.818.967.223.448 5.373 11.132 3.086 25.375-2.748 17.11-21.824 29.836-22.635 30.37-.289.192-.623.287-.955.287m-17.842-53.31c-1.172 2.978-3.973 11.553-2.281 22.08 2.164 13.477 16.291 24.512 20.12 27.28 3.833-2.771 17.959-13.807 20.12-27.28 1.691-10.529-1.107-19.1-2.281-22.08-1.063.107-2.65.229-4.371.229-1.809 0-3.393-.136-4.713-.404-3.561-.724-7.02-3.046-8.758-4.353-1.732 1.307-5.193 3.629-8.756 4.353-1.322.268-2.906.404-4.713.404-1.72 0-3.31-.122-4.374-.229"/><ellipse fill="#b0bdc6" cx="32" cy="3.127" rx="1.381" ry="1.402"/><ellipse fill="#dfe9ef" cx="32" cy="3.128" rx="1.055" ry="1.069"/><path fill="#89969b" d="m32 3.667c-.42 0-.797-.179-1.064-.464.054.555.501.994 1.064.994s1.01-.438 1.065-.994c-.269.285-.646.464-1.065.464"/><ellipse fill="#b0bdc6" cx="50.865" cy="8.03" rx="1.383" ry="1.402"/><ellipse fill="#dfe9ef" cx="50.865" cy="8.03" rx="1.055" ry="1.069"/><path fill="#89969b" d="m50.865 8.572c-.42 0-.797-.179-1.064-.464.057.556.504.994 1.064.994.563 0 1.01-.438 1.066-.994-.269.285-.646.464-1.066.464"/><ellipse fill="#b0bdc6" cx="54.32" cy="21.22" rx="1.381" ry="1.402"/><ellipse fill="#dfe9ef" cx="54.32" cy="21.22" rx="1.053" ry="1.069"/><path fill="#89969b" d="m54.32 21.76c-.42 0-.797-.179-1.066-.464.057.556.504.994 1.066.994.561 0 1.01-.438 1.064-.994-.267.285-.644.464-1.064.464"/><ellipse fill="#b0bdc6" cx="52.28" cy="37.652" rx="1.381" ry="1.402"/><ellipse fill="#dfe9ef" cx="52.28" cy="37.653" rx="1.053" ry="1.069"/><path fill="#89969b" d="m52.28 38.19c-.42 0-.797-.178-1.064-.463.055.555.502.994 1.064.994s1.01-.439 1.064-.994c-.267.286-.644.463-1.064.463"/><ellipse fill="#b0bdc6" cx="43.977" cy="50.49" rx="1.383" ry="1.402"/><ellipse fill="#dfe9ef" cx="43.977" cy="50.49" rx="1.055" ry="1.069"/><path fill="#89969b" d="m43.977 51.03c-.42 0-.797-.18-1.064-.465.055.557.502.994 1.064.994s1.01-.438 1.064-.992c-.268.286-.645.463-1.064.463"/><ellipse fill="#b0bdc6" cx="31.998" cy="60.734" rx="1.383" ry="1.4"/><ellipse fill="#dfe9ef" cx="31.998" cy="60.736" rx="1.055" ry="1.068"/><path fill="#89969b" d="m31.998 61.27c-.42 0-.797-.18-1.064-.465.057.555.504.994 1.064.994.563 0 1.01-.439 1.067-.994-.271.286-.648.465-1.067.465"/><ellipse fill="#b0bdc6" cx="20.02" cy="50.49" rx="1.381" ry="1.402"/><ellipse fill="#dfe9ef" cx="20.02" cy="50.49" rx="1.053" ry="1.069"/><path fill="#89969b" d="m20.02 51.03c-.42 0-.797-.18-1.066-.465.057.557.504.994 1.066.994.561 0 1.01-.438 1.064-.992-.269.286-.646.463-1.064.463"/><ellipse fill="#b0bdc6" cx="11.71" cy="37.653" rx="1.383" ry="1.401"/><ellipse fill="#dfe9ef" cx="11.71" cy="37.654" rx="1.055" ry="1.068"/><path fill="#89969b" d="m11.71 38.19c-.42 0-.797-.18-1.064-.465.057.555.504.994 1.064.994.563 0 1.01-.439 1.066-.994-.269.286-.646.465-1.066.465"/><ellipse fill="#b0bdc6" cx="9.681" cy="21.22" rx="1.381" ry="1.402"/><ellipse fill="#dfe9ef" cx="9.681" cy="21.22" rx="1.053" ry="1.069"/><path fill="#89969b" d="m9.681 21.76c-.42 0-.799-.179-1.066-.464.057.556.504.994 1.066.994.561 0 1.01-.438 1.064-.994-.267.285-.644.464-1.064.464"/><ellipse fill="#b0bdc6" cx="13.07" cy="8.03" rx="1.381" ry="1.402"/><ellipse fill="#dfe9ef" cx="13.07" cy="8.03" rx="1.053" ry="1.069"/><path fill="#89969b" d="m13.07 8.572c-.42 0-.797-.179-1.066-.464.057.556.504.994 1.066.994.561 0 1.01-.438 1.064-.994-.267.285-.644.464-1.064.464"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#728084"><path d="m35.8 23.7h17.9c-.4-8.8-3.3-14.7-3.3-14.7s-5.6.8-9.5 0c-1.8-.4-3.6-1.2-5.1-2.1v16.8"/><path d="m28.2 23.7v-16.8c-1.4.9-3.2 1.7-5 2.1-4 .8-9.5 0-9.5 0s-3 5.9-3.3 14.7h17.8"/><path d="m28.2 31.1h-17.6c.1.4.1.8.2 1.2 1.8 11.3 11.9 20.7 17.4 25.1v-26.3"/><path d="m35.8 31.1v26.3c5.6-4.4 15.6-13.8 17.4-25.1.1-.4.1-.8.2-1.1l-17.6-.1"/></g><g opacity=".3" fill="#b0bdc6"><path d="m36.5 22.7h17.9c-.3-8.8-3.2-14.7-3.2-14.7s-5.6.8-9.5 0c-1.9-.3-3.7-1.2-5.2-2v16.7"/><path d="m27.5 22.7v-16.7c-1.5.8-3.3 1.7-5.1 2-4 .8-9.5 0-9.5 0s-3 5.9-3.3 14.7c-.1 0 17.9 0 17.9 0"/><path d="m27.5 31.8h-17.7c.1.4.1.8.2 1.1 1.9 11.3 11.9 20.7 17.5 25.1v-26.2"/><path d="m36.5 31.8v26.2c5.6-4.4 15.6-13.8 17.4-25.1.1-.4.1-.8.2-1.1h-17.6"/></g><path fill="#89969b" d="m28 3.8h8v57.2h-8z"/><path fill="#b0bdc6" d="m29 3.8h6v57.2h-6z"/><path fill="#89969b" d="m8.8 23.3h46.4v8h-46.4z"/><path fill="#b0bdc6" d="m8.8 24.3h46.4v6h-46.4z"/><g opacity=".2"><path d="m32 60.8c-.3 0-.6-.1-.9-.3-.7-.5-18.5-12.3-21.1-28.2-2.1-13.3 2.7-23.2 2.9-23.7.3-.6 1-1 1.7-.9 0 0 2.3.3 4.9.3 1.5 0 2.7-.1 3.7-.3 3.8-.7 7.7-4.1 7.7-4.1.6-.5 1.5-.5 2.1 0 0 0 4 3.4 7.7 4.2 1 .2 2.3.3 3.7.3 2.6 0 4.8-.3 4.9-.3.7-.1 1.4.3 1.7.9.2.4 5 10.4 2.9 23.6-2.5 15.9-20.3 27.7-21 28.2-.3.2-.6.3-.9.3m-16.6-49.6c-1.1 2.8-3.7 10.8-2.1 20.6 2 12.5 15.2 22.8 18.7 25.4 3.6-2.6 16.7-12.9 18.7-25.4 1.6-9.8-1-17.8-2.1-20.6-1 .1-2.5.2-4.1.2-1.7 0-3.2-.1-4.4-.4-3.3-.7-6.5-2.8-8.1-4-1.6 1.2-4.8 3.4-8.1 4.1-1.2.2-2.7.4-4.4.4-1.6-.1-3.1-.2-4.1-.3"/></g><g fill="#b0bdc6"><path d="m32 64c-.3 0-.7-.1-1-.3-.8-.6-20.6-13.7-23.4-31.4-2.4-14.7 3-25.8 3.2-26.2.4-.7 1.1-1.1 1.9-1 0 0 2.6.4 5.4.4 1.6 0 3-.1 4.2-.3 4.2-.8 8.5-4.6 8.6-4.6.7-.6 1.7-.6 2.4 0 0 0 4.4 3.8 8.6 4.6 1.1.2 2.5.3 4.2.3 2.8 0 5.4-.4 5.4-.4.8-.1 1.5.3 1.9 1 .2.5 5.6 11.5 3.2 26.2-3 17.7-22.8 30.9-23.6 31.4-.3.2-.7.3-1 .3m-18.5-55.1c-1.2 3.1-4.1 11.9-2.4 22.8 2.3 13.9 16.9 25.4 20.9 28.2 4-2.9 18.6-14.3 20.8-28.2 1.7-10.9-1.1-19.8-2.4-22.8-1.1.1-2.7.2-4.5.2-1.9 0-3.5-.1-4.9-.4-3.7-.7-7.3-3.2-9.1-4.5-1.8 1.4-5.4 3.8-9.1 4.5-1.4.3-3 .4-4.9.4-1.6 0-3.3-.1-4.4-.2"/><path d="m32 61.7c-.3 0-.6-.1-.9-.3-.8-.5-19.1-12.7-21.7-29.1-2.2-13.7 2.8-23.9 3-24.3.3-.7 1-1 1.7-.9 0 0 2.4.3 5 .3 1.5 0 2.8-.1 3.9-.3 3.9-.8 7.9-4.3 8-4.3.6-.5 1.6-.5 2.2 0 0 0 4.1 3.5 8 4.3 1.1.2 2.3.3 3.9.3 2.6 0 5-.3 5-.3.7-.1 1.4.3 1.7.9.2.4 5.2 10.7 3 24.3-2.8 16.4-21.1 28.6-21.9 29.1-.3.2-.6.3-.9.3m-17.1-51.1c-1.1 2.9-3.8 11.1-2.2 21.2 2.1 12.8 15.6 23.4 19.3 26.1 3.7-2.7 17.2-13.2 19.3-26.2 1.6-10.1-1.1-18.3-2.2-21.2-1 .1-2.5.2-4.2.2-1.7 0-3.3-.1-4.5-.4-3.4-.6-6.7-2.8-8.4-4.1-1.7 1.3-5 3.5-8.4 4.2-1.3.3-2.8.4-4.5.4-1.7 0-3.2-.1-4.2-.2"/></g><path d="m32 62.9c-.3 0-.7-.1-1-.3-.8-.5-19.9-13.3-22.6-30.4-2.3-14.2 2.9-24.8 3.1-25.3.3-.7 1.1-1.1 1.8-1 0 0 2.5.4 5.2.4 1.6 0 2.9-.1 4-.3 4-.8 8.3-4.4 8.3-4.5.7-.6 1.6-.6 2.3 0 0 0 4.3 3.7 8.3 4.5 1.1.2 2.4.3 4 .3 2.7 0 5.2-.3 5.2-.4.8-.1 1.5.3 1.8 1 .2.4 5.4 11.1 3.1 25.4-2.7 17.1-21.7 29.8-22.5 30.4-.3.1-.7.2-1 .2m-17.8-53.3c-1.2 3-4 11.6-2.3 22.1 2.1 13.5 16.3 24.5 20.1 27.3 3.8-2.8 18-13.8 20.1-27.3 1.7-10.5-1.1-19.1-2.3-22.1-1.1.1-2.7.2-4.4.2-1.8 0-3.4-.1-4.7-.4-3.6-.7-7-3-8.8-4.4-1.7 1.3-5.2 3.6-8.8 4.4-1.3.3-2.9.4-4.7.4-1.6.1-3.2-.1-4.2-.2" fill="#dfe9ef"/><ellipse cx="32" cy="3.1" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="32" cy="3.1" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m32 3.7c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1s1-.4 1.1-1c-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="50.9" cy="8" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="50.9" cy="8" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m50.9 8.6c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="54.3" cy="21.2" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="54.3" cy="21.2" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m54.3 21.8c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="52.3" cy="37.7" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="52.3" cy="37.7" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m52.3 38.2c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1s1-.4 1.1-1c-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="44" cy="50.5" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="44" cy="50.5" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m44 51c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1s1-.4 1.1-1c-.3.4-.7.5-1.1.5" fill="#89969b"/><ellipse cx="32" cy="60.7" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="32" cy="60.7" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m32 61.3c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="20" cy="50.5" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="20" cy="50.5" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m20 51c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.4-.7.5-1.1.5" fill="#89969b"/><ellipse cx="11.7" cy="37.7" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="11.7" cy="37.7" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m11.7 38.2c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="9.7" cy="21.2" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="9.7" cy="21.2" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m9.7 21.8c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.3-.7.5-1.1.5" fill="#89969b"/><ellipse cx="13.1" cy="8" rx="1.4" ry="1.4" fill="#b0bdc6"/><ellipse cx="13.1" cy="8" rx="1.1" ry="1.1" fill="#dfe9ef"/><path d="m13.1 8.6c-.4 0-.8-.2-1.1-.5.1.6.5 1 1.1 1 .6 0 1-.4 1.1-1-.3.3-.7.5-1.1.5" fill="#89969b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e2.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e2.svg
index 9a0f987..c5a60a8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m7.111 6.895h49.777v50.21h-49.777z"/><ellipse cx="32" cy="57.1" rx="26" ry="4.895"/><ellipse cx="32" cy="23.571" rx="26" ry="4.895"/><ellipse cx="32" cy="40.43" rx="26" ry="4.895"/></g><g fill="#d0d0d0"><ellipse cx="32" cy="6.895" rx="26" ry="4.895"/><path d="m7.412 22.446c3.514 1.92 13.193 4.206 24.588 4.206s21.08-2.286 24.588-4.206c-6.227.917-14.94 2.394-24.588 2.394s-18.361-1.477-24.588-2.394"/><path d="m7.412 39.3c3.514 1.922 13.193 4.208 24.588 4.208s21.08-2.286 24.588-4.208c-6.227.919-14.94 2.395-24.588 2.395s-18.361-1.476-24.588-2.395"/><path d="m7.412 55.617c3.514 1.92 13.193 4.207 24.588 4.207s21.08-2.287 24.588-4.207c-6.227.918-14.94 2.395-24.588 2.395s-18.361-1.477-24.588-2.395"/></g><ellipse fill="#3e4347" cx="15.67" cy="6.894" rx="3.887" ry=".978"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m7.1 6.9h49.8v50.2h-49.8z"/><ellipse cx="32" cy="57.1" rx="26" ry="4.9"/><ellipse cx="32" cy="23.6" rx="26" ry="4.9"/><ellipse cx="32" cy="40.4" rx="26" ry="4.9"/></g><g fill="#d0d0d0"><ellipse cx="32" cy="6.9" rx="26" ry="4.9"/><path d="m7.4 22.4c3.5 1.9 13.2 4.2 24.6 4.2s21.1-2.3 24.6-4.2c-6.2.9-14.9 2.4-24.6 2.4s-18.4-1.4-24.6-2.4"/><path d="m7.4 39.3c3.5 1.9 13.2 4.2 24.6 4.2s21.1-2.3 24.6-4.2c-6.2.9-14.9 2.4-24.6 2.4s-18.4-1.5-24.6-2.4"/><path d="m7.4 55.6c3.5 1.9 13.2 4.2 24.6 4.2s21.1-2.3 24.6-4.2c-6.2.9-15 2.4-24.6 2.4s-18.4-1.5-24.6-2.4"/></g><ellipse cx="15.7" cy="6.9" rx="3.9" ry="1" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e3.svg
index cc3d219..2ccec72 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#699635" d="m0 20.383c0 0 1.881-3.737 4.645-5.545 6.418-4.199 4.813 9.06 14.48 3.307 3.783-2.25 4.707 2.864 6.885 3.419 4.746 1.209 12.322.604 12.322.604s11.25-2.357 14.813-5.228c3.034-2.444 5 .21 8.06-1.132 1.329-.586 2.792.012 2.792.012v15.751h-64v-11.188"/><g fill="#83bf4f"><path d="m27 21.01c0 0-6.797.349-12.141-3.742-3.652-2.795-5.527 5.418-8.828 5.418-3.429.001-6.03-4.639-6.03-4.639v35.21l27-32.24"/><path d="m37 21.01c0 0 2.471.527 9.395-2.636 3.225-1.473 4.128 5.687 5.938 5.735 1.592.041 4.25-3.75 6.625-3.873 3.23-.165 5.04 1.617 5.04 1.617v31.401l-27-32.24"/></g><path fill="#ffdd7d" d="m38.15 21.01h-12.296l-25.854 25.12v17.87h64v-17.87z"/><path fill="#666" d="m37 21.01h-10l-27 31.15v11.84h64v-11.84z"/><g fill="#fff"><path d="m64 58.04v-3.69l-27.402-33.34h-.418z"/><path d="m0 58.04v-3.69l27.402-33.34h.422z"/><path d="m33.807 64h-3.607l.412-11.87h2.777z"/><path d="m33.15 45.28h-2.296l.356-10.02h1.585z"/><path d="m32.709 32.835h-1.419l.154-4.342h1.113z"/><path d="m32.514 27.27h-1.027l.085-2.422h.856z"/><path d="m32.402 24.11h-.803l.053-1.542h.698z"/><path d="m32.33 22.07h-.66l.037-1.06h.583z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 20.4c0 0 1.9-3.7 4.6-5.5 6.4-4.2 4.8 9.1 14.5 3.3 3.8-2.2 4.7 2.9 6.9 3.4 4.7 1.2 12.3.6 12.3.6s11.2-2.4 14.8-5.2c3-2.4 5 .2 8.1-1.1 1.3-.6 2.8 0 2.8 0v15.8h-64v-11.3" fill="#699635"/><g fill="#83bf4f"><path d="m27 21c0 0-6.8.3-12.1-3.7-3.7-2.8-5.5 5.4-8.8 5.4-3.4 0-6-4.6-6-4.6v35.2l26.9-32.3"/><path d="M37,21c0,0,2.5,0.5,9.4-2.6c3.2-1.5,4.1,5.7,5.9,5.7c1.6,0,4.2-3.8,6.6-3.9c3.2-0.2,5,1.6,5,1.6v31.4L37,21z"/></g><path fill="#ffdd7d" d="m38.1 21h-12.2l-25.9 25.1v17.9h64v-17.9z"/><path fill="#666" d="m37 21h-10l-27 31.2v11.8h64v-11.8z"/><g fill="#fff"><path d="m64 58v-3.7l-27.4-33.3h-.4z"/><path d="m0 58v-3.7l27.4-33.3h.4z"/><path d="m33.8 64h-3.6l.4-11.9h2.8z"/><path d="m33.1 45.3h-2.2l.3-10h1.6z"/><path d="m32.7 32.8h-1.4l.1-4.3h1.2z"/><path d="m32.5 27.3h-1l.1-2.5h.8z"/><path d="m32.4 24.1h-.8l.1-1.5h.6z"/><path d="m32.3 22.1h-.6v-1.1h.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e4.svg
index b3f1aca..4828d42 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c7e755" d="m0 22.17c0 0 1.88-5.412 4.645-7.06 6.417-3.834 3.813 10.27 13.479 5.02 3.783-2.055 4.708 4.616 6.886 5.123 4.745 1.104 17.321.551 17.321.551s2.357-3.896 4.67-4.314c4.25-.767 3.498-6.04 6.893-7.572 2.338-1.056 4.25 1.304 7.313.077 1.329-.533 2.792-3.988 2.792-3.988v18.384l-63.999 1.492v-7.709"/><path fill="#666" d="m36.999 24.739h-9.999l-27 29.451v9.81h63.999v-9.81z"/><g fill="#594640"><path d="m26.336 27.717h11.327v.317h-11.327z"/><path d="m27.397 26.387h9.205v.253h-9.205z"/><path d="m28.309 25.25h7.382v.253h-7.382z"/><path d="m23.22 31.618h17.564v.498h-17.564z"/><path d="m25.01 29.379h13.979v.497h-13.979z"/></g><g fill="#dbb471"><path d="m36.603 26.387l-.513-.634h-8.175l-.518.634z"/><path d="m37.663 27.717l-.653-.823h-10.01l-.659.823z"/><path d="m35.69 25.25l-.41-.511h-6.564l-.407.511z"/><path d="m40.782 31.618l-1-1.243h-15.562l-1 1.243z"/><path d="m38.989 29.379l-.799-.994h-12.383l-.797.994z"/></g><g fill="#594640"><path d="m15.312 41.511h33.377v.934h-33.377z"/><path d="m18.437 37.592h27.13v.746h-27.13z"/><path d="m21.12 34.23h21.752v.748h-21.752z"/><path d="m0 60.702h63.999v1.833h-63.999z"/><path d="m6.124 53.01h51.752v1.465h-51.752z"/><path d="m11.405 46.41h41.19v1.467h-41.19z"/></g><g fill="#dbb471"><path d="m45.563 37.592l-1.533-1.867h-24.07l-1.528 1.867z"/><path d="m48.688 41.511l-1.945-2.431h-29.486l-1.945 2.431z"/><path d="m42.876 34.23l-1.199-1.492h-19.354l-1.203 1.492z"/><path d="m57.876 53.01l-2.945-3.67h-45.861l-2.946 3.67z"/><path d="m60.2 55.938h-56.4l-3.804 4.764h63.999z"/><path d="m52.595 46.41l-2.345-2.933h-36.499l-2.346 2.933z"/></g><path fill="#666" d="m11.03 64l19.12-39.26h-.151l-18.969 36.33z"/><path fill="#3e4347" d="m7.03 61.07h4.03v2.932h-4.03z"/><path fill="#e6e6e6" d="m29.604 24.739l-22.604 36.33h4.03l18.969-36.33z"/><path fill="#666" d="m52.968 64l-19.12-39.26h.148l18.969 36.33z"/><path fill="#e6e6e6" d="m34.396 24.739l22.603 36.33h-4.03l-18.969-36.33z"/><path fill="#3e4347" d="m52.937 61.07h4.03v2.932h-4.03z"/><g fill="#83bf4f"><path d="m27 24.739c0 0-4.747-1.776-6.73-.782-3.188 1.599-2.788-3.506-5.411-4.635-2.787-1.2-6.089 3.255-8.827 2.948-3.41-.382-6.03-6.237-6.03-6.237v38.15l27-29.447"/><path d="m36.999 24.739c0 0 3.883-.641 4.957-1.855.953-1.076 2.834-4.171 4.906-4.332 2.564-.198 5.416 2.838 6.949 2.876 1.592.038 1.094-4.545 5.145-5.395 3.166-.665 5.04 3.476 5.04 3.476v34.677l-27-29.447"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m0 22.2c0 0 1.9-5.4 4.6-7.1 6.4-3.8 3.8 10.3 13.5 5 3.8-2.1 4.7 4.6 6.9 5.1 4.7 1.1 17.3.6 17.3.6s2.4-3.9 4.7-4.3c4.2-.8 3.5-6 6.9-7.6 2.3-1.1 4.2 1.3 7.3.1 1.3-.5 2.8-4 2.8-4v18.4l-64 1.5v-7.7" fill="#c7e755"/><path fill="#666" d="m37 24.7h-10l-27 29.5v9.8h64v-9.8z"/><g fill="#594640"><path d="m26.3 27.7h11.3v.3h-11.3z"/><path d="m27.4 26.4h9.2v.3h-9.2z"/><path d="m28.3 25.2h7.4v.3h-7.4z"/><path d="m23.2 31.6h17.6v.5h-17.6z"/><path d="m25 29.4h14v.5h-14z"/></g><g fill="#dbb471"><path d="m36.6 26.4l-.5-.6h-8.2l-.5.6z"/><path d="m37.7 27.7l-.7-.8h-10l-.7.8z"/><path d="m35.7 25.2l-.4-.5h-6.6l-.4.5z"/><path d="m40.8 31.6l-1-1.2h-15.6l-1 1.2z"/><path d="m39 29.4l-.8-1h-12.4l-.8 1z"/></g><g fill="#594640"><path d="m15.3 41.5h33.4v.9h-33.4z"/><path d="m18.4 37.6h27.1v.7h-27.1z"/><path d="m21.1 34.2h21.8v.7h-21.8z"/><path d="m0 60.7h64v1.8h-64z"/><path d="m6.1 53h51.8v1.5h-51.8z"/><path d="m11.4 46.4h41.2v1.5h-41.2z"/></g><g fill="#dbb471"><path d="m45.6 37.6l-1.6-1.9h-24l-1.6 1.9z"/><path d="m48.7 41.5l-2-2.4h-29.4l-2 2.4z"/><path d="m42.9 34.2l-1.2-1.5h-19.4l-1.2 1.5z"/><path d="m57.9 53l-3-3.7h-45.8l-3 3.7z"/><path d="m60.2 55.9h-56.4l-3.8 4.8h64z"/><path d="m52.6 46.4l-2.4-2.9h-36.4l-2.4 2.9z"/></g><path fill="#666" d="m11 64l19.1-39.3h-.1l-19 36.4z"/><path fill="#3e4347" d="m7 61.1h4v2.9h-4z"/><path fill="#e6e6e6" d="m29.6 24.7l-22.6 36.4h4l19-36.4z"/><path fill="#666" d="m53 64l-19.1-39.3h.1l19 36.4z"/><path fill="#e6e6e6" d="m34.4 24.7l22.6 36.4h-4l-19-36.4z"/><path fill="#3e4347" d="m52.9 61.1h4v2.9h-4z"/><g fill="#83bf4f"><path d="m27 24.7c0 0-4.7-1.8-6.7-.8-3.2 1.6-2.8-3.5-5.4-4.6-2.8-1.2-6.1 3.3-8.8 2.9-3.5-.3-6.1-6.2-6.1-6.2v38.2l27-29.5"/><path d="m37 24.7c0 0 3.9-.6 5-1.9 1-1.1 2.8-4.2 4.9-4.3 2.6-.2 5.4 2.8 6.9 2.9 1.6 0 1.1-4.5 5.1-5.4 3.2-.7 5 3.5 5 3.5v34.7l-26.9-29.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e5.svg
index 6d89add..db896db 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M 2,49.565 H62 V62 H2 z"/><g fill="#3e4347"><path d="m50.28 42.514h1.107v4.848h-1.107z"/><path d="m59.2 42.514h1.108v4.848h-1.108z"/><path d="m54.742 42.514h1.107v4.848h-1.107z"/></g><path fill="#dae3ea" d="m44.667 27.693h-16.627l-5.543 9.697 27.783 8.476z"/><path fill="#3e4347" d="m43.915 42.3h17.04v1.211h-17.04z"/><path fill="#c5d0d8" d="m42.673 27.693h-6.653l2.22-9.693h2.216z"/><path fill="#dae3ea" d="m25.683 32.54h-23.683l6.259 9.204 1.781-1.444-3.629-5.337h4.387v4.847h2.222v-4.847h3.852v4.847h2.218v-4.847h6.593z"/><path fill="#3e4347" d="m47.19 45.866c-.532 0-.831.519-.661 1.15l.033.125c.17.633.745 1.148 1.278 1.148h13.19c.535 0 .971-.544.971-1.212 0-.664-.436-1.212-.971-1.212h-13.84z"/><path fill="#f15744" d="m58.52 54.35c0 0-14.41 0-31.04 0-12.541 0-22.17-16.961-22.17-16.961h17.18c22.17 0 27.561 10.903 33.673 10.903h4.572l-2.218 6.06"/><path fill="#c94747" d="m14.616 48.695h7.866c11.359 0 18.311 2.861 23.21 5.652 2.961 0 5.546 0 7.603 0-5.33-2.415-12.08-10.196-30.814-10.196h-12.328c1.281 1.506 2.782 3.088 4.461 4.544"/><g fill="#3e4347"><path d="m28.825 29.51l-4.074 7.269h16.629l-2.22-7.269z"/><path d="m32.696 41.02c-.608 0-1.108.546-1.108 1.211v2.422c0 .667.5 1.211 1.108 1.211h2.217c.61 0 1.109-.544 1.109-1.211v-2.422c0-.665-.499-1.211-1.109-1.211h-2.217"/><path d="m26.05 41.02c-.61 0-1.108.546-1.108 1.211v2.422c0 .667.498 1.211 1.108 1.211h2.217c.61 0 1.108-.544 1.108-1.211v-2.422c0-.665-.498-1.211-1.108-1.211h-2.217"/></g><path fill="#dae3ea" d="m44.891 22.847c0-.665-.498-1.212-1.107-1.212h-8.87c-.609 0-1.107.547-1.107 1.212 0 .667.498 1.211 1.107 1.211h8.87c.609 0 1.107-.544 1.107-1.211"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m2 49.6h60v12.4h-60z"/><g fill="#3e4347"><path d="m50.3 42.5h1.1v4.8h-1.1z"/><path d="m59.2 42.5h1.1v4.8h-1.1z"/><path d="m54.7 42.5h1.1v4.8h-1.1z"/></g><path fill="#dae3ea" d="m44.7 27.7h-16.7l-5.5 9.7 27.8 8.5z"/><path fill="#3e4347" d="m43.9 42.3h17v1.2h-17z"/><path fill="#c5d0d8" d="m42.7 27.7h-6.7l2.2-9.7h2.3z"/><path fill="#dae3ea" d="m25.7 32.5h-23.7l6.3 9.2 1.7-1.4-3.6-5.3h4.4v4.8h2.2v-4.8h3.9v4.8h2.2v-4.8h6.6z"/><path d="m47.2 45.9c-.5 0-.8.5-.7 1.2v.1c.2.6.7 1.1 1.3 1.1h13.2c.5 0 1-.5 1-1.2 0-.7-.4-1.2-1-1.2h-13.8" fill="#3e4347"/><path d="m58.5 54.3c0 0-14.4 0-31 0-12.5 0-22.2-17-22.2-17h17.2c22.2 0 27.6 10.9 33.7 10.9h4.6l-2.3 6.1" fill="#f15744"/><path d="m14.6 48.7h7.9c11.4 0 18.3 2.9 23.2 5.7 3 0 5.5 0 7.6 0-5.3-2.5-12.1-10.2-30.8-10.2h-12.3c1.2 1.5 2.7 3 4.4 4.5" fill="#c94747"/><g fill="#3e4347"><path d="m28.8 29.5l-4 7.3h16.6l-2.2-7.3z"/><path d="m32.7 41c-.6 0-1.1.5-1.1 1.2v2.4c0 .7.5 1.2 1.1 1.2h2.2c.6 0 1.1-.5 1.1-1.2v-2.4c0-.7-.5-1.2-1.1-1.2h-2.2"/><path d="m26 41c-.6 0-1.1.5-1.1 1.2v2.4c0 .7.5 1.2 1.1 1.2h2.2c.6 0 1.1-.5 1.1-1.2v-2.4c0-.7-.5-1.2-1.1-1.2h-2.2"/></g><path d="m44.9 22.8c0-.7-.5-1.2-1.1-1.2h-8.9c-.6 0-1.1.5-1.1 1.2 0 .7.5 1.2 1.1 1.2h8.9c.6.1 1.1-.5 1.1-1.2" fill="#dae3ea"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6e9.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6e9.svg
index 191f8ac..191a114 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m43.35 25.14l14.456-1.752-13.961 5.09"/><path fill="#b2c1c0" d="m44.39 24.505c0 0-5.203-.227-9.289 3.21v4.285c0 0 5.16 0 9.289-3.213.457-.354 1.033-.958 1.033-2.141 0-1.182-.461-2.141-1.033-2.141"/><path fill="#42ade2" d="m9.291 25.13l8.257 16.25 13.03-4.22-17.16-13.285z"/><path fill="#428bc1" d="m13.419 17.625v6.25l-4.128 1.255 2.064-6.255z"/><ellipse fill="#3e4347" cx="35.1" cy="30.13" rx="1.032" ry="2.5"/><path fill="#dae3ea" d="m50.581 17.625l-5.656 9.789c0 0-23.3 6.491-31.509 9.321-8.21 2.832-5.402 5.668-11.356 11.42-6.755 6.529 2.738 6.905 33.947-5.64 2.797-1.122 4.215-5.723 8.678-8.643 4.803-3.142 8.992-4.373 8.992-4.373l3.098-14.375-6.194 2.501"/><g fill="#42ade2"><path d="m51.612 10.125l-4.132 1.25 3.101 6.563 9.172 2.192 4.246-2.902-7.225-2.098z"/><path d="m21.323 46.48l38.547 7.395 4.129-2.896-26.839-11.478z"/></g><path fill="#428bc1" d="m63.999 43.874v7.105l-4.129 2.896 2.125-8.685z"/><path fill="#3e4347" d="m8.161 39.664c-1.207 1.237-1.731 2.625-2.762 4.338.945 1.062 2.329 1.748 3.891 1.748 2.851 0 5.161-2.238 5.161-5 0 0-2.323 0-3.097 0-1.209 0-2.314-.41-3.193-1.086"/><path fill="#dae3ea" d="m10.373 49.3l-.956.2c-.599-6.489 1.113-9.861 1.184-9.999l.75.968-.373-.488.377.481c-.014.032-1.516 3.047-.982 8.838"/><g fill="#3e4347"><ellipse cx="21.677" cy="40.75" rx="1.032" ry="1.875"/><ellipse cx="25.807" cy="39.501" rx="1.032" ry="1.874"/><ellipse cx="29.936" cy="38.25" rx="1.032" ry="1.874"/></g><path fill="#ffce31" d="m51.612 30.04l12.387-3.333-11.899 6.667"/><path fill="#b2c1c0" d="m51.612 29.505c0 0-5.203-.264-9.291 3.748v4.997c0 0 5.162 0 9.291-3.747.455-.415 1.033-1.121 1.033-2.5.001-1.38-.462-2.498-1.033-2.498"/><ellipse fill="#3e4347" cx="42.32" cy="35.75" rx="1.032" ry="2.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m43.4 25.1l14.4-1.7-14 5.1"/><path d="m44.4 24.5c0 0-5.2-.2-9.3 3.2v4.3c0 0 5.2 0 9.3-3.2.5-.4 1-1 1-2.1 0-1.2-.4-2.2-1-2.2" fill="#b2c1c0"/><path fill="#42ade2" d="m9.3 25.1l8.2 16.3 13.1-4.2-17.2-13.3z"/><path fill="#428bc1" d="m13.4 17.6v6.3l-4.1 1.2 2.1-6.2z"/><ellipse cx="35.1" cy="30.1" rx="1" ry="2.5" fill="#3e4347"/><path d="m50.6 17.6l-5.7 9.8c0 0-23.3 6.5-31.5 9.3-8.2 2.9-5.4 5.7-11.3 11.5-6.8 6.5 2.7 6.9 33.9-5.6 2.8-1.1 4.2-5.7 8.7-8.6 4.8-3.1 9-4.4 9-4.4l3.1-14.4-6.2 2.4" fill="#dae3ea"/><g fill="#42ade2"><path d="m51.6 10.1l-4.1 1.3 3.1 6.5 9.2 2.2 4.2-2.9-7.2-2.1z"/><path d="M21.3 46.5 59.9 53.9 64 51 37.2 39.5z"/></g><path fill="#428bc1" d="m64 43.9v7.1l-4.1 2.9 2.1-8.7z"/><path d="m8.2 39.7c-1.2 1.2-1.8 2.6-2.8 4.3.9 1.1 2.3 1.7 3.9 1.7 2.9 0 5.2-2.2 5.2-5 0 0-2.3 0-3.1 0-1.3.1-2.4-.4-3.2-1" fill="#3e4347"/><path d="m10.4 49.3l-1 .2c-.6-6.5 1.1-9.9 1.2-10l.8 1-.4-.5.4.5c-.1 0-1.6 3-1 8.8" fill="#dae3ea"/><g fill="#3e4347"><ellipse cx="21.7" cy="40.8" rx="1" ry="1.9"/><ellipse cx="25.8" cy="39.5" rx="1" ry="1.9"/><ellipse cx="29.9" cy="38.2" rx="1" ry="1.9"/></g><path fill="#ffce31" d="m51.6 30l12.4-3.3-11.9 6.7"/><path d="m51.6 29.5c0 0-5.2-.3-9.3 3.7v5c0 0 5.2 0 9.3-3.7.5-.4 1-1.1 1-2.5 0-1.4-.4-2.5-1-2.5" fill="#b2c1c0"/><ellipse cx="42.3" cy="35.8" rx="1" ry="2.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6eb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6eb.svg
index 79ffdaf..5220fb3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m32.861 11.03c0 0-2.542-1.17-4.589-2.112-2.046-.942-2.563-2.093-1.146-2.553 1.417-.464 4.684-.739 7.259-.611 1.17.058 4.68.229 4.68.229 2.576.127 2.751.958.389 1.845l-6.593 3.202"/><path fill="#dae3ea" d="m8.328 20.389c0 0-2.561 1.016-2.849 2.151-.276 1.093-1.139 14.767 56.725-17.518 3.436-1.917 1.68-3.982-3.03-4.514-14.213-1.603-10.721-.514-50.845 19.881"/><path fill="#42ade2" d="m21.06 13.818c0 0-12.821-3.814-17.04-5.238-2.659-.896-4.02 2.059-4.02 2.059s4.96 12.168 5.479 11.901l15.477-7.848c.52-.266.566-.66.103-.874"/><path fill="#c5d0d8" d="m34.77 25.525c0 0-10.405.879-17.545 8.08-.409.411-1.249 1.497.081 2.111 2.541.712 8.41 1.28 18.369-3.484l-.905-6.703"/><path fill="#94989b" d="m35.911 32.06c-.873.306-1.931-.898-2.354-2.675-.424-1.778-.064-3.473.81-3.778.875-.301 1.929.895 2.351 2.674.428 1.78.069 3.477-.807 3.779"/><path fill="#42ade2" d="m33.26 15.225c-2.529 1.129-3.698 1.722-5.114 4l-10.383 15.616c-1.416 2.281-.426 3.445 2.2 2.588 2.627-.858 6.199-3.245 7.941-5.302l16.549-19.566c1.742-2.057 1.098-2.82-1.432-1.691l-9.761 4.352"/><g fill="#3e4347"><path d="m35.06 29.617c-.305-1.282-.938-2.251-1.594-2.585-.129.671-.11 1.503.094 2.358.305 1.281.939 2.254 1.598 2.588.128-.673.109-1.505-.098-2.361"/><path d="m54.4.733c-.452.754-3.236 3.075-3.236 3.075s.542.857 2.052.428c1.306-.369 2.598-1.637 3.334-3.02l-2.15-.479"/><circle cx="21.287" cy="17.427" r=".951"/><circle cx="24.912" cy="15.558" r=".952"/><circle cx="28.537" cy="13.688" r=".952"/><circle cx="32.16" cy="11.819" r=".952"/><circle cx="35.787" cy="9.949" r=".952"/><circle cx="39.41" cy="8.08" r=".951"/><circle cx="43.04" cy="6.21" r=".952"/></g><ellipse fill="#94989b" cx="32" cy="61.5" rx="24.553" ry="2.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32.9 11c0 0-2.5-1.2-4.6-2.1-2-.9-2.6-2.1-1.1-2.6 1.4-.5 4.7-.7 7.3-.6 1.1.1 4.6.3 4.6.3 2.6.1 2.8 1 .4 1.8l-6.6 3.2" fill="#42ade2"/><path d="M8.3,20.4c0,0-2.6,1-2.8,2.2C5.2,23.6,4.3,37.3,62.2,5c3.4-1.9,1.7-4-3-4.5C45-1.1,48.5,0,8.3,20.4z" fill="#dae3ea"/><path d="m21.1 13.8c0 0-12.8-3.8-17-5.2-2.7-.9-4 2.1-4 2.1s5 12.2 5.5 11.9l15.4-7.9c.5-.3.5-.7.1-.9" fill="#42ade2"/><path d="m34.8 25.5c0 0-10.4.9-17.5 8.1-.4.4-1.2 1.5.1 2.1 2.5.7 8.4 1.3 18.4-3.5l-1-6.7" fill="#c5d0d8"/><path d="m35.9 32.1c-.9.3-1.9-.9-2.4-2.7-.4-1.8-.1-3.5.8-3.8.9-.3 1.9.9 2.4 2.7.4 1.8.1 3.5-.8 3.8" fill="#94989b"/><path d="m33.3 15.2c-2.5 1.1-3.7 1.7-5.1 4l-10.4 15.6c-1.4 2.3-.4 3.4 2.2 2.6 2.6-.9 6.2-3.2 7.9-5.3l16.5-19.6c1.7-2.1 1.1-2.8-1.4-1.7l-9.7 4.4" fill="#42ade2"/><g fill="#3e4347"><path d="m35.1 29.6c-.3-1.3-.9-2.3-1.6-2.6-.1.7-.1 1.5.1 2.4.3 1.3.9 2.3 1.6 2.6.1-.7.1-1.5-.1-2.4"/><path d="m54.4.7c-.5.8-3.2 3.1-3.2 3.1s.5.9 2.1.4c1.3-.4 2.6-1.6 3.3-3l-2.2-.5"/><circle cx="21.3" cy="17.4" r="1"/><circle cx="24.9" cy="15.6" r="1"/><circle cx="28.5" cy="13.7" r="1"/><circle cx="32.2" cy="11.8" r="1"/><circle cx="35.8" cy="9.9" r="1"/><circle cx="39.4" cy="8.1" r="1"/><circle cx="43" cy="6.2" r="1"/></g><ellipse cx="32" cy="61.5" rx="24.6" ry="2.5" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6ec.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6ec.svg
index db4b992..c170f90 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m30.608 26.304c.656 1.01.545 2.255-.254 2.779-.801.526-1.98.135-2.639-.875-.66-1.01-.548-2.256.25-2.78.799-.527 1.979-.135 2.643.876"/><path fill="#42ade2" d="m30.708 17.295c0 0-1.406-2.149-2.537-3.881-1.129-1.732-.978-2.875.343-2.542 1.317.333 3.978 1.719 5.909 3.075.873.617 3.507 2.469 3.507 2.469 1.932 1.355 1.667 2.086-.584 1.619l-6.638-.74"/><g fill="#3e4347"><path d="m34.474 26.663c.658 1.01.545 2.256-.254 2.78-.799.526-1.981.133-2.639-.875-.659-1.01-.547-2.256.252-2.779.797-.527 1.979-.136 2.641.874"/><path d="m55.53 29.19c.656 1.01.545 2.256-.254 2.78-.8.526-1.981.135-2.638-.875-.66-1.01-.548-2.256.25-2.78.798-.526 1.98-.137 2.642.875"/></g><path fill="#94989b" d="m54.949 30.05c-.175-2.216-.35-4.429-.524-6.646-.091-1.119-1.816-.936-1.729.177.174 2.215.35 4.431.526 6.646.088 1.12 1.816.937 1.727-.177"/><path fill="#dae3ea" d="m3.775 12.262c0 0-2.713-1.324-3.423-.005-1.76 3.269.846 11.939 61.12 15.181 3.577.193 3.21-2.268-.177-4.98-10.221-8.194 4.271-4.854-57.52-10.196"/><path fill="#3e4347" d="m57.5 20.297c-.714.365-3.98.805-3.98.805s.005.928 1.38 1.333c1.188.354 2.793.003 4.03-.715l-1.431-1.423"/><path fill="#42ade2" d="m16.779 13.388c0 0-8.09-9.229-10.663-12.394-1.625-1.997-4.097-.368-4.097-.368s-2.131 11.706-1.599 11.751l15.862 1.638c.531.05.755-.235.497-.627"/><path fill="#3e4347" d="m38.34 27.02c.658 1.01.547 2.256-.252 2.778-.799.526-1.982.133-2.639-.873-.661-1.01-.549-2.258.251-2.782.798-.527 1.978-.134 2.64.877"/><path fill="#94989b" d="m37.16 27.613c-1.92-1.742-3.843-3.484-5.763-5.227-.207-.189-.561-.078-.668.166-.654 1.511-1.311 3.02-1.966 4.532-.04.095-.038.182-.02.263.017.167.125.317.348.335 2.575.232 5.152.464 7.728.696.442.04.666-.469.341-.765"/><path fill="#c5d0d8" d="m25.22 29.479c0 0-8.472-4.405-17.452-2.315-.514.12-1.687.553-.951 1.678 1.623 1.795 5.891 5.107 15.884 6.277l2.519-5.64"/><path fill="#94989b" d="m22.957 35.11c-.821-.189-1.06-1.642-.536-3.226.526-1.589 1.619-2.729 2.441-2.537.822.195 1.063 1.637.536 3.225-.524 1.592-1.618 2.732-2.441 2.538"/><path fill="#3e4347" d="m23.473 32.792c.38-1.142.356-2.205.01-2.783-.423.456-.806 1.11-1.062 1.875-.38 1.142-.354 2.208-.008 2.788.423-.457.809-1.111 1.06-1.88"/><path fill="#42ade2" d="m28.997 20.747c-2.498-.361-3.688-.472-5.879.606l-15.535 7.04c-2.193 1.08-1.986 2.466.457 3.085 2.446.62 6.355.512 8.691-.232l22.2-7.088c2.335-.744 2.202-1.651-.299-2.01l-9.638-1.396"/><g fill="#3e4347"><circle cx="19.29" cy="17.419" r=".868"/><path d="m23.07 16.857c-.478-.041-.897.316-.938.794-.038.477.32.897.798.936.476.041.896-.317.936-.795.038-.477-.317-.897-.796-.935"/><circle cx="26.707" cy="18.02" r=".868"/><circle cx="30.414" cy="18.328" r=".868"/><circle cx="34.13" cy="18.63" r=".868"/><circle cx="37.831" cy="18.933" r=".868"/><path d="m41.61 18.369c-.477-.04-.897.318-.937.796-.038.477.317.896.796.935.476.04.896-.316.937-.794.039-.477-.318-.896-.796-.937"/><circle cx="45.25" cy="19.538" r=".867"/></g><ellipse fill="#94989b" cx="31.3" cy="61.5" rx="24.553" ry="2.501"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m30.6 26.3c.7 1 .5 2.3-.3 2.8-.8.5-2 .1-2.6-.9-.7-1-.5-2.3.2-2.8.9-.5 2-.1 2.7.9" fill="#3e4347"/><path d="m30.7 17.3c0 0-1.4-2.1-2.5-3.9-1.1-1.7-1-2.9.3-2.5 1.3.3 4 1.7 5.9 3.1.9.6 3.5 2.5 3.5 2.5 1.9 1.4 1.7 2.1-.6 1.6l-6.6-.8" fill="#42ade2"/><g fill="#3e4347"><path d="m34.5 26.7c.7 1 .5 2.3-.3 2.8-.8.5-2 .1-2.6-.9-.7-1-.5-2.3.3-2.8.7-.5 1.9-.1 2.6.9"/><path d="m55.5 29.2c.7 1 .5 2.3-.3 2.8-.8.5-2 .1-2.6-.9-.7-1-.5-2.3.2-2.8.9-.5 2.1-.1 2.7.9"/></g><path d="m54.9 30c-.2-2.2-.3-4.4-.5-6.6-.1-1.1-1.8-.9-1.7.2.2 2.2.3 4.4.5 6.6.1 1.1 1.8 1 1.7-.2" fill="#94989b"/><path d="m3.8 12.3c0 0-2.7-1.3-3.4 0-1.8 3.3.8 11.9 61.1 15.2 3.6.2 3.2-2.3-.2-5-10.2-8.2 4.3-4.9-57.5-10.2" fill="#dae3ea"/><path d="m57.5 20.3c-.7.4-4 .8-4 .8s0 .9 1.4 1.3c1.2.4 2.8 0 4-.7l-1.4-1.4" fill="#3e4347"/><path d="m16.8 13.4c0 0-8.1-9.2-10.7-12.4-1.6-2-4.1-.4-4.1-.4s-2.1 11.7-1.6 11.8l15.9 1.6c.5.1.7-.2.5-.6" fill="#42ade2"/><path d="m38.3 27c.7 1 .5 2.3-.3 2.8-.8.5-2 .1-2.6-.9-.7-1-.5-2.3.3-2.8.8-.5 2-.1 2.6.9" fill="#3e4347"/><path d="m37.2 27.6c-1.9-1.7-3.8-3.5-5.8-5.2-.2-.2-.6-.1-.7.2-.7 1.5-1.3 3-2 4.5 0 .1 0 .2 0 .3 0 .2.1.3.3.3 2.6.2 5.2.5 7.7.7.6 0 .8-.5.5-.8" fill="#94989b"/><path d="m25.2 29.5c0 0-8.5-4.4-17.5-2.3-.5.1-1.7.6-1 1.7 1.6 1.8 5.9 5.1 15.9 6.3l2.6-5.7" fill="#c5d0d8"/><path d="m23 35.1c-.8-.2-1.1-1.6-.5-3.2.5-1.6 1.6-2.7 2.4-2.5.8.2 1.1 1.6.5 3.2-.5 1.6-1.6 2.7-2.4 2.5" fill="#94989b"/><path d="m23.5 32.8c.4-1.1.4-2.2 0-2.8-.4.5-.8 1.1-1.1 1.9-.4 1.1-.4 2.2 0 2.8.4-.5.8-1.1 1.1-1.9" fill="#3e4347"/><path d="m29 20.7c-2.5-.4-3.7-.5-5.9.6l-15.5 7c-2.2 1.1-2 2.5.5 3.1 2.4.6 6.4.5 8.7-.2l22.2-7.1c2.3-.7 2.2-1.7-.3-2l-9.7-1.4" fill="#42ade2"/><g fill="#3e4347"><circle cx="19.3" cy="17.4" r=".9"/><path d="m23.1 16.9c-.5 0-.9.3-.9.8 0 .5.3.9.8.9.5 0 .9-.3.9-.8 0-.5-.4-.9-.8-.9"/><circle cx="26.7" cy="18" r=".9"/><circle cx="30.4" cy="18.3" r=".9"/><circle cx="34.1" cy="18.6" r=".9"/><circle cx="37.8" cy="18.9" r=".9"/><path d="m41.6 18.4c-.5 0-.9.3-.9.8 0 .5.3.9.8.9.5 0 .9-.3.9-.8 0-.5-.3-.9-.8-.9"/><circle cx="45.2" cy="19.5" r=".9"/></g><ellipse cx="31.3" cy="61.5" rx="24.6" ry="2.5" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6f0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6f0.svg
index 4e0c852..1d11f7a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#d0d0d0" d="m24.415 24.388c3.204-3.204 3.204-8.399 0-11.604l-11.604 11.604c3.205 3.204 8.399 3.204 11.604 0"/><path fill="#94989b" d="m27.04 27.01c-4.309 4.309-4.309 4.309-6.04 2.576-1.732-1.731-1.732-1.731 2.578-6.04 4.307-4.308 4.307-4.308 6.04-2.576 1.732 1.733 1.732 1.733-2.576 6.04"/><path fill="#7f8285" d="m37.21 37.18c-4.309 4.309-4.309 4.309-6.04 2.576-.357-.357-6.569-6.57-6.928-6.927-1.73-1.732-1.73-1.732 2.576-6.04 4.308-4.308 4.308-4.308 6.04-2.576.357.357 6.568 6.57 6.925 6.927 1.733 1.733 1.733 1.733-2.574 6.04"/><path fill="#646669" d="m39.591 39.563c-3.23 3.23-3.23 3.23-4.53 1.932-1.298-1.3-1.298-1.3 1.934-4.529 3.229-3.23 3.229-3.23 4.528-1.933 1.299 1.299 1.299 1.299-1.932 4.53"/><path fill="#94989b" d="m22.17 15.03l-7.115-1.348c-.026-.252-.136-.497-.328-.689-.449-.449-1.176-.449-1.625 0-.448.448-.448 1.175 0 1.623.165.166.37.271.584.313l1.366 7.218.813-.812-.181.035-1.24-6.548c.101-.053.196-.122.282-.207.057-.058.108-.121.15-.188l6.522 1.235-.031.17.803-.802"/><g fill="#3e4347"><path transform="matrix(-.7069-.7073.7073-.7069 19.817 82.29)" d="m26.313 35.985h1.292v2.112h-1.292z"/><path transform="matrix(.7071-.7071.7071.7071-8.187 34.1)" d="m36.01 26.29h2.113v1.292h-2.113z"/></g><path fill="#428bc1" d="m31.07 42.644c.187.188.194.485.015.665l-18.561 18.56c-.18.181-.476.173-.665-.014l-9.712-9.714c-.188-.187-.194-.484-.015-.663l18.561-18.561c.18-.179.476-.173.663.014l9.714 9.713" id="0"/><use xlink:href="#0"/><path fill="#428bc1" d="m61.855 11.858c.188.187.192.484.015.664l-18.56 18.561c-.18.18-.479.173-.663-.014l-9.714-9.714c-.187-.187-.194-.484-.015-.663l18.561-18.562c.178-.179.476-.173.663.015l9.713 9.713"/><g fill="#42ade2"><path d="m3.321 51.803l.679.677h16.396l5.084-5.08h-17.752z"/><path d="m29.21 42.31h-16.393l-2.544 2.541h17.747l1.871-1.868z"/><path d="m34.11 21.02l.676.673h16.394l5.09-5.085h-17.754z"/><path d="m60 11.52h-16.396l-2.544 2.54h17.751l1.868-1.864z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m24.4 24.4c3.2-3.2 3.2-8.4 0-11.6l-11.6 11.6c3.2 3.2 8.4 3.2 11.6 0" fill="#d0d0d0"/><path d="m27 27c-4.3 4.3-4.3 4.3-6 2.6-1.7-1.7-1.7-1.7 2.6-6 4.3-4.3 4.3-4.3 6-2.6 1.7 1.7 1.7 1.7-2.6 6" fill="#94989b"/><path d="m37.2 37.2c-4.3 4.3-4.3 4.3-6 2.6-.4-.4-6.6-6.6-6.9-6.9-1.7-1.7-1.7-1.7 2.6-6 4.3-4.3 4.3-4.3 6-2.6.4.4 6.6 6.6 6.9 6.9 1.7 1.7 1.7 1.7-2.6 6" fill="#7f8285"/><path d="m39.6 39.6c-3.2 3.2-3.2 3.2-4.5 1.9-1.3-1.3-1.3-1.3 1.9-4.5 3.2-3.2 3.2-3.2 4.5-1.9 1.3 1.2 1.3 1.2-1.9 4.5" fill="#646669"/><path d="m22.2 15l-7.1-1.3c0-.3-.1-.5-.3-.7-.4-.4-1.2-.4-1.6 0-.4.4-.4 1.2 0 1.6.2.2.4.3.6.3l1.4 7.2.8-.8h-.2l-1.2-6.5c.1-.1.2-.1.3-.2.1-.1.1-.1.1-.2l6.5 1.2v.2l.7-.8" fill="#94989b"/><g fill="#3e4347"><path transform="matrix(.7073-.7069.7069.7073-18.2947 29.8994)" d="m25.9 36.4h2.1v1.3h-2.1z"/><path transform="matrix(.7071-.7071.7071.7071-8.1867 34.0994)" d="m36 26.3h2.1v1.3h-2.1z"/></g><path d="m31.1 42.6c.2.2.2.5 0 .7l-18.6 18.6c-.2.2-.5.2-.7 0l-9.7-9.7c-.1-.2-.1-.5 0-.7l18.6-18.6c.2-.2.5-.2.7 0l9.7 9.7" fill="#428bc1" id="0"/><use xlink:href="#0"/><path d="m61.9 11.9c.2.2.2.5 0 .7l-18.6 18.5c-.2.2-.5.2-.7 0l-9.7-9.7c-.2-.2-.2-.5 0-.7l18.6-18.6c.2-.1.5-.1.6 0l9.8 9.8" fill="#428bc1"/><g fill="#42ade2"><path d="m3.3 51.8l.7.7h16.4l5.1-5.1h-17.8z"/><path d="m29.2 42.3h-16.4l-2.5 2.6h17.7l1.9-1.9z"/><path d="m34.1 21l.7.7h16.4l5.1-5.1h-17.8z"/><path d="m60 11.5h-16.4l-2.5 2.6h17.7l1.9-1.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6f3.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6f3.svg
index e54728e..81b10ac 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f6f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6f3.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e8e8e8"><circle cx="46" cy="16.5" r="3"/><circle cx="49" cy="14" r="4"/><circle cx="53" cy="15" r="4"/><circle cx="34" cy="5.833" r="3"/><circle cx="38" cy="4" r="4"/></g><g fill="#fff"><path d="m41 17.612v32.388h8v-32.388c-2.4-2.342-5.6-1.946-8 0"/><path d="m29 6.612v32.388h8v-32.388c-2.4-2.342-5.6-1.946-8 0"/></g><path fill="#ed4c5c" d="m29 8.612v32.388h8v-32.388c-2.4-2.342-5.6-1.946-8 0"/><path fill="#fff" d="m29 10.612v32.388h8v-32.388c-2.4-2.342-5.6-1.946-8 0"/><path fill="#ed4c5c" d="m41 19.612v32.388h8v-32.388c-2.4-2.342-5.6-1.946-8 0"/><path fill="#fff" d="m41 21.612v32.388h8v-32.388c-2.4-2.342-5.6-1.946-8 0"/><g fill="#94989b"><path d="m60.5 49h-51v-26l2-2v-2.9l2-1.1v-2.189l8-3.604 16 2.793 23 21.48z"/><path d="m35.434 14v4l-1.934.362v3.638l-2-.191v4.167l-2 .024v4.674l31 16.17v-11.362l-23-21.48z"/></g><path fill="#fff" d="M7,24c0,0-5.473,1.968-7,7c0,0,1.654,6.074,6.49,13.496C11.327,51.92,14,62,14,62V31.79L7,24z"/><g fill="#3e4347"><path d="m28 27v3l-14.5-2v-1z"/><path d="m30 23v3l-14.5-2v-1z"/><path d="m32 19v3l-14.5-2v-1z"/><path d="m34 15v3l-14.5-2v-1z"/></g><path fill="#fff" d="m13.5 13v2l8-2v-2z"/><path fill="#e8e8e8" d="m21.5 11v2l16 2v-2z"/><path fill="#d0d0d0" d="m37.5 15v-2l23 22.48v.52z"/><path fill="#fff" d="m11.5 17v2l8-2v-2z"/><path fill="#e8e8e8" d="m19.5 15v2l16 2v-2z"/><path fill="#d0d0d0" d="m35.5 19v-2l25 21.48v.52z"/><path fill="#fff" d="m9.5 21v2l8-2v-2z"/><path fill="#e8e8e8" d="m17.5 19v2l16 2v-2z"/><path fill="#d0d0d0" d="m33.5 23v-2l27 20.48v.52z"/><path fill="#fff" d="m7.5 25v2l8-2v-2z"/><path fill="#e8e8e8" d="m15.5 23v2l16 2v-2z"/><path fill="#d0d0d0" d="m31.5 27v-2l29 19.48v.52z"/><circle fill="#e8e8e8" cx="42" cy="4" r="4"/><g fill="#d0d0d0"><path d="m43.09 5.509c-.146.094-.306.146-.457.188-.153.033-.297.065-.449.056-.296-.005-.6-.063-.902-.183-.154-.05-.309-.118-.457-.193-.142-.07-.305-.172-.411-.233l-.456-.264-.429.303-.357.252c-.124.072-.226.206-.358.238l-.388.172c-.064.04-.138.024-.207.047l-.214.042c-.146.052-.298.011-.459.021-.166.015-.324-.024-.495-.056-.351-.05-.684-.173-1.055-.312.172.307.442.594.782.803.169.112.351.213.562.272.207.069.418.153.65.148l.349.016c.114-.002.243.024.349-.015l.667-.178c.243-.044.388-.189.575-.294l.083-.055c.061.029.119.059.183.089.209.093.427.177.66.24.463.113.991.171 1.502.049.256-.053.493-.161.705-.28.2-.141.375-.289.506-.462.267-.34.389-.716.428-1.088-.32.263-.586.522-.907.677"/><path d="m54.08 16.297c-.163.055-.331.064-.489.066-.156-.006-.304-.011-.448-.059-.285-.079-.564-.211-.828-.404-.137-.087-.269-.191-.393-.302-.12-.104-.252-.242-.34-.329l-.374-.369-.492.185-.409.154c-.138.039-.271.143-.407.14l-.418.07c-.072.022-.139-.011-.211-.006l-.219-.014c-.154.014-.291-.064-.449-.096-.164-.027-.307-.104-.465-.178-.326-.137-.617-.34-.942-.567.089.341.278.687.556.974.135.151.285.295.475.405.183.119.365.253.593.308l.333.103c.111.026.229.084.341.073l.69-.004c.247.019.423-.086.631-.141l.094-.032c.051.044.101.087.154.132.18.143.369.279.578.399.42.226.917.414 1.442.425.261.013.518-.032.752-.095.229-.085.437-.186.606-.319.344-.262.557-.596.688-.945-.376.173-.698.358-1.049.426"/></g><g fill="#3e4347"><path d="m37.5 16.835l-1-.885v1.55l1 .862z"/><path d="m39.5 18.605l-1-.885v1.504l1 .866z"/><path d="m41.5 20.375l-1-.885v1.457l1 .862z"/><path d="m43.5 22.15l-1-.89v1.41l1 .862z"/><path d="m45.5 23.916l-1-.886v1.364l1 .856z"/><path d="m47.5 25.686l-1-.885v1.319l1 .859z"/><path d="m49.5 27.457l-1-.886v1.269l1 .863z"/><path d="m50.5 28.341v1.223l1 .862v-1.196z"/><path d="m54.5 31.881v1.129l1 .863v-1.106z"/><path d="m52.5 30.11v1.18l1 .86v-1.153z"/><path d="m56.5 33.652v1.082l1 .862v-1.059z"/><path d="m58.5 35.422v1.035l1 .863v-1.01z"/><path d="m35.586 20.662l-1.086-.847v1.482l1.086.823z"/><path d="m37.755 22.353l-1.086-.846v1.437l1.086.823z"/><path d="m39.924 24.04l-1.086-.84v1.391l1.086.824z"/><path d="m42.09 25.736l-1.08-.846v1.35l1.08.82z"/><path d="m44.26 27.428l-1.08-.846v1.303l1.08.823z"/><path d="m46.43 29.12l-1.08-.85v1.262l1.08.824z"/><path d="m48.601 30.813l-1.081-.847v1.214l1.081.82z"/><path d="m49.686 31.659v1.168l1.084.823v-1.146z"/><path d="m54.02 35.04v1.08l1.09.823v-1.056z"/><path d="m51.854 33.35v1.123l1.085.827v-1.1z"/><path d="m56.19 36.732v1.036l1.09.824v-1.014z"/><path d="m58.36 38.426v.984l1.09.83v-.97z"/><path d="m33.673 24.479l-1.173-.82v1.431l1.173.801z"/><path d="m36.02 26.12l-1.173-.823v1.391l1.173.797z"/><path d="m38.37 27.753l-1.18-.818v1.345l1.18.8z"/><path d="m40.713 29.391l-1.172-.818v1.304l1.172.797z"/><path d="m43.06 31.03l-1.173-.82v1.261l1.173.799z"/><path d="m45.41 32.667l-1.18-.819v1.222l1.18.793z"/><path d="m47.756 34.3l-1.175-.814v1.174l1.175.797z"/><path d="m48.929 35.12v1.13l1.171.8v-1.109z"/><path d="m53.621 38.4v1.043l1.174.797v-1.02z"/><path d="m51.27 36.762v1.086l1.18.798v-1.066z"/><path d="m55.969 40.04v1l1.171.796v-.981z"/><path d="m58.31 41.676v.957l1.18.797v-.936z"/><path d="m31.762 28.859l-1.262-.749v1.308l1.262.722z"/><path d="m34.28 30.346l-1.26-.744v1.264l1.26.724z"/><path d="m36.806 31.834l-1.261-.744v1.23l1.261.72z"/><path d="m39.33 33.32l-1.26-.741v1.185l1.26.724z"/><path d="m41.851 34.811l-1.261-.741v1.14l1.261.728z"/><path d="m44.37 36.3l-1.26-.745v1.107l1.26.718z"/><path d="m46.896 37.787l-1.26-.747v1.07l1.26.724z"/><path d="m48.16 38.531v1.028l1.26.721v-1.01z"/><path d="m53.2 41.508v.952l1.26.72v-.93z"/><path d="m50.681 40.02v.99l1.26.722v-.968z"/><path d="m55.726 42.996v.908l1.26.725v-.889z"/><path d="m58.25 44.48v.87l1.26.73v-.85z"/></g><path fill="#d0d0d0" d="M7,24c0,0-1.186,8.459,2.25,18.199C14,55.666,13.75,62,13.75,62h44.5c0,0,0.25-2.99,3-6.852S64,49,64,49
- S20.375,20.761,7,24z"/><path fill="#42ade2" d="m64 57.09l-1.738 1.189c-1.551 1.055-3.484.93-4.932-.318-.332-.287-.624-.631-.881-1l-1.941 1.322c-1.547 1.055-3.479.936-4.916-.314-.342-.291-.624-.629-.881-1l-1.94 1.322c-1.544 1.055-3.479.932-4.916-.316-.341-.289-.633-.627-.88-.998l-1.94 1.316c-1.545 1.055-3.479.936-4.927-.313-.33-.293-.623-.629-.87-1l-1.95 1.322c-1.534 1.055-3.468.932-4.921-.318-.326-.287-.626-.625-.876-.998l-1.94 1.322c-1.553 1.055-3.479.934-4.924-.313-.333-.293-.634-.633-.878-1.01l-1.936 1.322c-1.552 1.055-3.482.936-4.922-.314-.34-.291-.636-.625-.883-1l-1.938 1.324c-1.546 1.055-3.48.934-4.927-.314-.333-.291-.625-.631-.882-1l-1.94 1.32c-.104.072-.214.126-.321.189v5.498h64v-6.908"/><g fill="#3e4347"><path d="m32.932 34.734c0-.279-.204-.604-.453-.717l-1.154-.523c-.25-.113-.454.023-.454.305v1.877c0 .281.208.592.464.693l1.135.451c.255.104.463-.043.463-.324v-1.762"/><path d="m37.05 36.65c0-.281-.203-.605-.451-.723l-1.158-.541c-.248-.115-.452.018-.452.299v1.648c0 .279.207.596.461.701l1.141.475c.253.105.46-.037.46-.318v-1.541"/><path d="m41.18 38.621c0-.281-.202-.607-.449-.729l-1.162-.559c-.248-.119-.449.014-.449.295v1.438c0 .279.205.6.457.709l1.146.498c.252.109.457-.031.457-.313v-1.339"/><path d="m45.3 40.652c0-.281-.201-.609-.445-.732l-1.168-.58c-.246-.121-.447.008-.447.289v1.25c0 .281.205.604.454.717l1.153.525c.25.113.453-.021.453-.303v-1.166"/><path d="m49.42 42.816c0-.281-.197-.617-.439-.748l-1.184-.645c-.24-.129-.438-.008-.438.273v1.01c0 .281.2.611.446.734l1.17.592c.244.125.445-.004.445-.285v-.929"/><path d="m53.54 44.791c0-.281-.198-.617-.44-.746l-1.18-.629c-.243-.129-.441-.006-.441.275v.977c0 .281.201.611.445.734l1.172.59c.244.127.444-.002.444-.283v-.918"/><path d="m57.22 46.82c0-.281-.196-.621-.435-.758l-.741-.414c-.239-.135-.435-.016-.435.266v.877c0 .279.197.617.438.748l.736.4c.24.133.437.014.437-.268v-.851"/><path d="m60.5 48.574c0-.279-.199-.611-.443-.738l-.658-.334c-.244-.123-.445.002-.445.283v.758c0 .281.201.611.447.734l.655.33c.244.125.444-.002.444-.283v-.75"/><path d="m28.982 32.977c0-.288-.246-.622-.547-.74l-1.389-.541c-.301-.116-.547.026-.547.315v1.938c0 .291.251.611.559.715l1.367.467c.307.105.557-.045.557-.332v-1.822"/></g><g fill="#e8e8e8"><path d="m58.25 45.498c0 .891 0 1.779 0 2.668 0 .322.5.322.5 0 0-.889 0-1.777 0-2.668 0-.322-.5-.322-.5 0"/><path d="m51.25 41.42c0 1.094 0 2.188 0 3.281 0 .322.5.322.5 0 0-1.094 0-2.188 0-3.281 0-.322-.5-.322-.5 0"/><path d="m43.75 36.969c0 1.578 0 3.154 0 4.732 0 .322.5.322.5 0 0-1.578 0-3.154 0-4.732 0-.323-.5-.323-.5 0"/><path d="m35.15 32.758c0 1.91 0 3.82 0 5.73 0 .322.5.322.5 0 0-1.91 0-3.82 0-5.73 0-.322-.5-.322-.5 0"/></g><path fill="#ed4c5c" d="m58.883 48.2c.411.607-.5.787-2.036.402-1.541-.383-3.118-1.188-3.531-1.793-.411-.605.5-.785 2.036-.402 1.54.385 3.118 1.188 3.531 1.793"/><path opacity=".5" fill="#6f1f08" d="m58.678 48.74c-.517-.59-1.984-1.318-3.431-1.68-.838-.209-1.479-.246-1.832-.143.517.59 1.985 1.318 3.432 1.68.839.21 1.479.247 1.831.143"/><path fill="#ed4c5c" d="m51.924 45.02c.445.738-.547 1-2.215.592-1.673-.41-3.383-1.34-3.83-2.076-.445-.738.548-1 2.216-.592 1.672.41 3.382 1.339 3.829 2.076"/><path opacity=".5" fill="#6f1f08" d="m51.699 45.707c-.559-.713-2.151-1.555-3.722-1.939-.909-.225-1.606-.242-1.99-.096.56.713 2.151 1.555 3.722 1.939.909.225 1.607.241 1.99.096"/><path fill="#ed4c5c" d="m44.35 41.523c.512.727-.543 1.018-2.355.652-1.815-.365-3.699-1.25-4.213-1.975-.513-.727.543-1.018 2.355-.652 1.815.366 3.698 1.251 4.213 1.975"/><path opacity=".5" fill="#6f1f08" d="m44.14 42.22c-.633-.699-2.383-1.498-4.089-1.84-.99-.201-1.739-.199-2.145-.043.634.697 2.384 1.496 4.089 1.84.988.199 1.74.197 2.145.043"/><path fill="#ed4c5c" d="m36.02 38.04c.61.848-.584 1.244-2.668.889-2.087-.354-4.271-1.328-4.885-2.174-.609-.848.584-1.246 2.668-.891 2.088.356 4.27 1.328 4.885 2.176"/><path opacity=".5" fill="#6f1f08" d="m35.799 38.879c-.748-.807-2.778-1.686-4.739-2.02-1.137-.193-1.992-.158-2.45.047.749.809 2.777 1.688 4.737 2.02 1.137.193 1.994.156 2.452-.049"/><g fill="#e8e8e8"><path d="m28.75 29.469c0 2.301 0 4.601 0 6.902 0 .322.5.322.5 0 0-2.301 0-4.601 0-6.902 0-.322-.5-.322-.5 0"/><path d="m37.817 34.17c0 1.873 0 3.748 0 5.623 0 .322.5.322.5 0 0-1.875 0-3.75 0-5.623 0-.322-.5-.322-.5 0"/><path d="m46.18 38.424c0 1.586 0 3.172 0 4.758 0 .322.5.322.5 0 0-1.586 0-3.172 0-4.758 0-.322-.5-.322-.5 0"/><path d="m53.584 42.75c0 1.223 0 2.443 0 3.666 0 .322.5.322.5 0 0-1.223 0-2.443 0-3.666 0-.322-.5-.322-.5 0"/><path d="m23.948 4.534c-.018 0-.035.005-.054.006-.175-.881-.848-1.54-1.652-1.54-.854 0-1.553.737-1.676 1.697-.152-.101-.327-.163-.515-.163-.579 0-1.051.551-1.051 1.233 0 .681.618 1.233 1.199 1.233h3.789c.563-.024 1.012-.569 1.012-1.233 0-.682-.472-1.233-1.052-1.233"/><path d="m55.05 23.534c.018 0 .035.005.054.006.176-.881.849-1.54 1.652-1.54.854 0 1.553.737 1.676 1.697.152-.101.327-.163.515-.163.58 0 1.052.551 1.052 1.232-.001.682-.619 1.234-1.2 1.234h-3.789c-.563-.024-1.012-.569-1.012-1.233 0-.682.472-1.233 1.052-1.233"/></g><g fill="#94989b"><path d="m3.612 14.827c0 0-.111-1.394 1.874-1.877 0 0 .621-1.762 2.993-1.639 0 0-2.451.921-2.271 2.45.001 0-1.746-.408-2.596 1.066"/><path d="m4 5.204c0 0 .678-1.224 2.6-.529 0 0 1.49-1.125 3.4.287 0 0-2.552-.586-3.246.788 0 0-1.231-1.306-2.754-.546"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e8e8e8"><path d="m41.4 2c-.7 0-1.3.2-1.9.5-.6-.3-1.2-.5-1.9-.5-3.4 0-3.8 2.6-3.8 2.6-1.6 0-2.8 1.3-2.8 2.8 0 1.6 1.3 2.8 2.8 2.8.9 0 1.7-.4 2.2-1.1.5.2 1 .3 1.5.3.7 0 1.3-.2 1.9-.5.6.3 1.2.5 1.9.5 2.1 0 3.8-1.7 3.8-3.7 0-2-1.7-3.7-3.7-3.7"/><path d="m51.7 11.9c-.7 0-1.3.2-1.9.5-.6-.3-1.2-.5-1.9-.5-3.4 0-3.8 2.7-3.8 2.7-1.6 0-2.8 1.3-2.8 2.8 0 1.6 1.3 2.8 2.8 2.8.9 0 1.7-.4 2.2-1.1.5.2 1 .3 1.5.3.7 0 1.3-.2 1.9-.5.6.3 1.2.5 1.9.5 2.1 0 3.8-1.7 3.8-3.7 0-2.1-1.6-3.8-3.7-3.8"/></g><g fill="#fff"><path d="m40.4 18.5v30.3h7.5v-30.3c-2.2-2.2-5.2-1.8-7.5 0"/><path d="m29.2 8.2v30.3h7.5v-30.3c-2.3-2.2-5.3-1.8-7.5 0"/></g><path d="m29.2 10.1v30.3h7.5v-30.3c-2.3-2.2-5.3-1.9-7.5 0" fill="#ed4c5c"/><path d="m29.2 11.9v30.3h7.5v-30.3c-2.3-2.2-5.3-1.8-7.5 0" fill="#fff"/><path d="m40.4 20.3v30.3h7.5v-30.3c-2.2-2.1-5.2-1.8-7.5 0" fill="#ed4c5c"/><path d="m40.4 22.2v30.3h7.5v-30.3c-2.2-2.2-5.2-1.8-7.5 0" fill="#fff"/><g fill="#94989b"><path d="m58.7 47.8h-47.8v-24.3l1.9-1.9v-2.7l1.9-1v-2l7.5-3.4 15 2.6 21.5 20.1z"/><path d="m35.2 15.1v3.7l-1.8.4v3.4l-1.9-.2v3.9h-1.8v4.4l29 15.1v-10.6l-21.5-20.1z"/></g><path d="m8.6 24.5c0 0-5.1 1.8-6.6 6.5 0 0 1.6 5.7 6.1 12.6 4.5 6.9 7 16.4 7 16.4v-28.3l-6.5-7.2" fill="#fff"/><g fill="#3e4347"><path d="m28.2 27.3v2l-4.9-2.1z"/><path d="m30.1 23.5v1.7l-13.6-1.7z"/><path d="m32 19.8v1.7l-13.6-1.7z"/><path d="m33.9 16v1.7l-13.6-1.7z"/></g><path fill="#fff" d="m14.7 14.2v1.8l7.5-1.8v-1.9z"/><path fill="#e8e8e8" d="m22.2 12.3v1.9l15 1.8v-1.8z"/><path fill="#d0d0d0" d="m37.2 16v-1.8l21.5 21v.5z"/><path fill="#fff" d="m12.8 17.9v1.9l7.5-1.9v-1.9z"/><path fill="#e8e8e8" d="m20.3 16v1.9l15 1.9v-1.9z"/><path fill="#d0d0d0" d="m35.3 19.8v-1.9l23.4 20.1v.5z"/><path fill="#fff" d="m10.9 21.6v1.9l7.5-1.9v-1.8z"/><path fill="#e8e8e8" d="m18.4 19.8v1.8l15 1.9v-1.9z"/><path fill="#d0d0d0" d="m33.4 23.5v-1.9l25.3 19.2v.5z"/><path fill="#fff" d="m9 25.4v1.9l7.5-1.9v-1.9z"/><path fill="#e8e8e8" d="m16.5 23.5v1.9l15 1.9v-1.9z"/><path fill="#d0d0d0" d="m31.5 27.3v-1.9l27.2 18.2v.5z"/><g fill="#3e4347"><path d="m57.8 36.9v-.9l-21.6-19.1v1.5z"/><path d="m57.7 39.6v-.9l-23.4-18.2v1.4z"/><path d="m57.8 42.6v-.8l-25.3-17.7v1.4z"/><path d="m30.6 28.3v1.2l27.2 15.6v-.8z"/></g><path d="m8.6 24.5c0 0-1.1 7.9 2.1 17 4.4 12.6 4.2 18.5 4.2 18.5h41.7c0 0 .2-2.8 2.8-6.4 2.6-3.6 2.6-5.8 2.6-5.8s-40.9-26.4-53.4-23.3" fill="#d0d0d0"/><path fill="#3e4347" d="m58.3 46.8l-30.9-15.2v2.8l30.9 14z"/><g fill="#e8e8e8"><path d="m56.6 44.6v2.5h.5v-2.5z"/><path d="m50 40.7v3.1h.5v-3.1z"/><path d="m43 36.6v4.4h.5v-4.4z"/><path d="m35 32.6v5.4h.4v-5.4z"/></g><g fill="#ed4c5c"><path d="m57.2 47.1c.4.6-.5.7-1.9.4-1.4-.4-2.9-1.1-3.3-1.7-.4-.6.5-.7 1.9-.4 1.4.4 2.9 1.1 3.3 1.7"/><path d="m50.7 44.1c.4.7-.5.9-2.1.6-1.6-.4-3.2-1.3-3.6-1.9-.4-.7.5-.9 2.1-.6 1.6.4 3.2 1.2 3.6 1.9"/><path d="m43.6 40.8c.5.7-.5 1-2.2.6-1.7-.3-3.5-1.2-3.9-1.8-.5-.7.5-1 2.2-.6 1.6.3 3.4 1.2 3.9 1.8"/><path d="m35.8 37.6c.6.8-.5 1.2-2.5.8-2-.3-4-1.2-4.6-2-.6-.8.5-1.2 2.5-.8 1.9.3 4 1.2 4.6 2"/></g><g fill="#e8e8e8"><path d="m29 29.6v6.4h.4v-6.4z"/><path d="m37.5 34v5.2h.4v-5.2z"/><path d="m45.3 37.9v4.5h.5v-4.5z"/><path d="m52.2 42v3.4h.5v-3.4z"/></g><g fill="#94989b"><path d="m5.4 15.9c0 0-.1-1.3 1.8-1.8 0 0 .6-1.6 2.8-1.5 0 0-2.3.9-2.1 2.3-.1 0-1.7-.4-2.5 1"/><path d="m5.8 6.9c0 0 .6-1.1 2.4-.5 0 0 1.4-1.1 3.2.3 0 0-2.4-.5-3 .7-.1 0-1.2-1.2-2.6-.5"/></g><path fill="#75d6ff" d="m2 56h60v6h-60z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6f4.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6f4.svg
new file mode 100644
index 0000000..a0f4a49
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6f4.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><ellipse cx="9.5" cy="7" rx="2.3" ry="4"/><path d="m2.9 5h4.7v4h-4.7z"/><ellipse cx="2.9" cy="7" rx=".9" ry="2"/></g><ellipse cx="9.5" cy="7" rx=".9" ry="2" fill="#83bf4f"/><ellipse cx="55.4" cy="54" rx="6.6" ry="7" fill="#3e4347"/><path fill="#83bf4f" d="m9.5 5h13.1v4h-13.1z"/><g fill="#3e4347"><ellipse cx="21.7" cy="7" rx="2.3" ry="4"/><path d="m22.6 5h6.6v4h-6.6z"/></g><ellipse cx="29.2" cy="7" rx="1.4" ry="2" fill="#94989b"/><path d="m28.3 52c0 0-1.7-8-9.4-8-2.7 0-4.4-1.8-5.2-3.1-.4-.7-1.7-2.9-1.7-2.9l-3.2 2 9 16h37.6v-4c0 0-16.3 0-27.1 0" fill="#83bf4f"/><path d="m58.7 54c0 1.9-1.5 3.5-3.3 3.5s-3.3-1.6-3.3-3.5 1.5-3.5 3.3-3.5 3.3 1.6 3.3 3.5" fill="#d0d0d0"/><path d="m55.4 46.5c3.1 0 5.6-.5 5.6-1.1-1.6-1.2-3.5-1.9-5.6-1.9-5.4 0-9.8 4.7-9.8 10.5h2.8c0-4.1 3.2-7.5 7-7.5" fill="#83bf4f"/><ellipse cx="55.4" cy="54" rx="2.2" ry="2.3" fill="#fff"/><path d="m13.7 40.9c-.4-.7-1.7-2.9-1.7-2.9l-1.4.9-.6 3.5 2.9 5.2 1-6.1c0-.3-.1-.4-.2-.6" opacity=".5" fill="#3e4347"/><path d="m57.8 44.8c0 .3-3.4-.7-6.7 1.4-3.3 2-4.3 5.9-4.5 5.8-.3.1.4-4.4 4-6.7 3.7-2.4 7.4-.8 7.2-.5" fill="#c7e755"/><g fill="#3e4347"><path d="m6.6 47.2c.3-.1.6-.2.9-.2l.1-.8c.2-1.2.4-1.7 1.2-1.8s-1.5-.1-2.2 2.8" opacity=".5"/><path d="m9.5 47h-1.9c-2.6 0-4.7 3.1-4.7 7s2.1 7 4.7 7h1.9c2.6 0 4.7-3.1 4.7-7s-2.1-7-4.7-7"/></g><path d="m11.8 54c0 1.9-1 3.5-2.3 3.5s-2.3-1.6-2.3-3.5 1-3.5 2.3-3.5 2.3 1.6 2.3 3.5" fill="#d0d0d0"/><ellipse cx="9.5" cy="54" rx="1.6" ry="2.3" fill="#fff"/><g opacity=".25"><path d="m5 54c0 3.9 2.7 6.3 2.8 6 .2-.2-2-2.5-1.9-6-.1-3.5 2.1-5.8 1.9-6-.1-.3-2.8 2.1-2.8 6" fill="#fff"/></g><path d="m11.4 42.1l6-37.1h-3.8l-5.8 36.6c-1.4.6-2.2 2.1-2.5 4.1l-.5 2.8c.7-.9 1.7-1.5 2.7-1.5l.1-.8c.2-1.4.5-2 1.8-1.7.5.1.5 1.2.2 2.6l-1.1 6.5c0 0 0 0 0 0-.1.7.3 1.4 1 1.5.7.1 1.3-.4 1.4-1.1l1.1-6.5c.6-2.2.7-4.4-.6-5.4" fill="#83bf4f"/><g fill="#c7e755"><path d="m9.9 43.6c.8-.3 1.6.8.9 4.5s-.9 2.7-.3-1.8c.4-2.7-1.1-2.5-.6-2.7"/><path d="m11.8 25.6c-1.5 8.9-2.8 16.1-3.1 16.1-.2 0 .8-7.3 2.3-16.2 1.5-8.9 2.8-16.1 3.1-16.1.2 0-.9 7.3-2.3 16.2"/><ellipse cx="14.2" cy="6.2" rx="4.7" ry=".5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6f5.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6f5.svg
new file mode 100644
index 0000000..7d7f738
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6f5.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="52" cy="54.5" r="7.5" fill="#3e4347"/><circle cx="52" cy="54.3" r="3.8" fill="#94989b"/><circle cx="10.5" cy="54.5" r="7.5" fill="#3e4347"/><circle cx="10.5" cy="54.5" r="3.8" fill="#94989b"/><path d="m53 36.9h-21.4c0 0 5.3 2.3 5.3 7.2 0 2.7-2.4 4.8-5.3 4.8h-9.7c-1.7 0-3.1-5.3-3.1-11.9 0-6.8 2.7-10.4 2.7-10.4v-2.1c0-.7-.4-1.3-.9-1.3-.7-.1-1.5-.5-1.7-1.4-.5-1.8-1.7-1.8-2.5-1.8-1.4 0-1.4 0-1.4 0v6.6h3.4c0 0-7.9 10.4-7.9 15.6 0 .8.8 2 .8 2-.3 0-.5 0-.8 0-3.4 0-6.8 1.9-8.4 4.8-.8 1.4 5.9.6 8.4 1.9 2.1 1.1 3 2.9 6.5 2.9.8 0 1.4 0 1.8 0 0 0 0 0 1.1 0 .1 0 .2 0 .4 0 1.3 0 1.8 1 3.2 1h38.5c0-11.3-9-17.9-9-17.9" fill="#f2b200"/><g fill="#d0d0d0"><path d="m14 20h.9v6.6h-.9z"/><path d="m13.1 23.3c0 1.3.4 2.3.9 2.3v-4.7c-.5 0-.9 1.1-.9 2.4"/></g><g fill="#94989b"><path d="m14 20v6.6h.9c0 0-.9-3.3-.9-6.6"/><path d="m14 25.6v-1.2c-.7-.3-.9-1.1-.9-1.1 0 1.3.4 2.3.9 2.3"/></g><g fill="#3e4347"><circle cx="20.8" cy="24.6" r="1"/><path d="m23.3 25c-.1-.1-.2-.2-.3-.3l-2-.8c-.4-.1-.8.1-.9.5-.1.4.1.8.5.9l1.7.7c.2.1.4.1.6 0 .4-.2.5-.6.4-1"/></g><circle cx="22.6" cy="25.4" r=".6" fill="#94989b"/><path d="m55.8 31.3c0-1-.8-1.9-1.9-1.8l-22.5.8c-1 0-1.9.9-1.9 2v2.7c0 1 .8 1.9 1.9 1.9h22.5c1 0 1.9-.9 1.9-1.9v-3.7" fill="#3e4347"/><path d="m30.5 32.1l24.3-.8c0-.5-.4-.9-.9-.9l-22.5.8c-.5 0-.9.4-.9.9" fill="#94989b"/><path d="m57.8 43.9c-1-.8-2.1-1.5-3.2-2-1.1-.6-2.3-1.1-3.5-1.4-1.2-.3-2.4-.6-3.7-.7-1.2-.1-2.5 0-3.6.3-2.3.6-4.3 2.4-5.2 4.7-.9 2.3-.6 4.9.3 7.3-.7-1.1-1.1-2.3-1.3-3.6-.2-1.3-.1-2.6.3-3.9.4-1.3 1.1-2.5 2.1-3.4 1-.9 2.2-1.6 3.5-1.9 1.3-.4 2.7-.4 3.9-.3 1.3.1 2.6.4 3.8.9 2.6.8 4.9 2.2 6.6 4" fill="#89664c"/><path d="m58.6 45.2c-1-.7-2-1.3-3.1-1.8-1.1-.5-2.2-.9-3.3-1.2-1.1-.3-2.3-.5-3.5-.6-1.2-.1-2.3-.1-3.4.2-2.3.4-4.3 1.8-5.3 3.8-1 2.1-.8 4.6.2 6.8-.7-1-1.1-2.2-1.3-3.4-.2-1.2 0-2.5.4-3.7.5-1.2 1.3-2.2 2.3-3 1-.8 2.2-1.3 3.4-1.5 1.2-.2 2.5-.2 3.7-.1 1.2.1 2.4.4 3.6.8 2.4.8 4.5 2 6.3 3.7" fill="#ffce31"/><g fill="#d0d0d0"><circle cx="8" cy="54.5" r=".5"/><circle cx="8.7" cy="56.3" r=".5"/><circle cx="10.5" cy="57" r=".5"/><circle cx="12.3" cy="56.3" r=".5"/><circle cx="13" cy="54.5" r=".5"/><circle cx="12.3" cy="52.7" r=".5"/><circle cx="10.5" cy="52" r=".5"/><circle cx="8.7" cy="52.7" r=".5"/></g><path d="m19.2 51.6c-.5-1.4-1.2-2.6-2.1-3.6-1-1-2.2-1.7-3.5-2.1-1.3-.4-2.7-.3-4 0-1.3.4-2.6 1-3.7 2 .8-1.2 2-2.2 3.5-2.7 1.4-.5 3-.6 4.5-.2 1.5.4 2.8 1.3 3.8 2.5.9 1.2 1.4 2.6 1.5 4.1" fill="#ffce31"/><g fill="#d0d0d0"><circle cx="10.5" cy="54.5" r=".9"/><circle cx="50.2" cy="56.1" r=".5"/><circle cx="52" cy="56.8" r=".5"/><circle cx="53.8" cy="56.1" r=".5"/><path d="m51.2 54.7c.2.3.5.5.8.5s.7-.2.8-.5h-1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f6f6.svg b/build/js/jsxc/lib/emojione/assets/svg/1f6f6.svg
new file mode 100644
index 0000000..3d86164
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f6f6.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m6.1 38.9c0 0-5.5 10.6-3.7 20.1 1.8 9.5 23.4-5.3 39.6-20.1 16.2-14.8 21.3-22 19.8-36.7 0 0 1.5 17.5-21.6 30.1-23.2 12.5-32.3 9.1-34.1 6.6" fill="#eda454"/><path d="m40.2 32.3c15.8-8.7 20.1-19.6 21.2-25.6.4-2.5.4-4.2.4-4.5 0-1.5-5.6 7.2-12.4 11.5-6.8 4.3-30.6 22.2-34.3 25.2-3.7 3-9 0-9 0 1.8 2.5 10.9 5.9 34.1-6.6" fill="#f9b978"/><g fill="#3e4347"><path d="m32.4 27.2c-7.5 5.6-14.8 11.1-16.7 12.6-.1.1-.2.2-.4.3 4.8-.4 12.6-2.4 24.4-8.8 2.4-1.3 4.5-2.7 6.4-4.1h-13.7"/><path d="m60.1 5.1c-2.3 2.6-6 6.9-10.3 9.6-2.5 1.6-7.5 5.1-12.9 9.1h13.2c7.1-6.6 9.4-13.3 10.1-17.4.1-.7.2-1.3.2-1.9.1.2-.1.4-.3.6"/><path d="m26.1 35.2c.6 1.2 2.2 8.6 4.2 12.6.1.2.2.4.3.6 1.5-1.1 3-2.3 4.5-3.5 0-.1-.1-.2-.1-.2-1.9-3.8-6.8-9.3-7.4-10.5-.6-1.2-1.1-2.4-1.7-3.5-.5.4-1.1.8-1.6 1.2.6 1 1.2 2.1 1.8 3.3" opacity=".5"/></g><path d="m27.9 31.2c-13.5-27-13.5-27-13.5-27 .5-.3.7-1.1.4-1.6-.3-.6-.9-.8-1.4-.4l-1.8 1.2c-.6.3-.7 1-.5 1.6.3.6.9.8 1.4.4 0 0-.5-1 13.5 27 .7 1.4 2.6 10 4.9 14.6 3.2 6.3 6.9 13.7 6.9 13.7.6 1.2 1.9 1.6 2.9.9l1.8-1.2c1-.7 1.3-2.2.8-3.3 0 0-3.7-7.4-6.9-13.7-2.2-4.4-7.8-10.8-8.5-12.2" fill="#a87d5d"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f910.svg b/build/js/jsxc/lib/emojione/assets/svg/1f910.svg
index 2c2e27b..51851ff 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f910.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f910.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.999" cy="32" r="30"/><path fill="#fff" d="m28.499 28c0 4.418-3.584 8-8 8-4.418 0-8-3.582-8-8 0-4.416 3.582-8 8-8 4.416 0 8 3.585 8 8"/><circle fill="#664e27" cx="22.499" cy="30" r="4"/><path fill="#fff" d="m51.5 28c0 4.418-3.584 8-8 8-4.418 0-8-3.582-8-8 0-4.416 3.582-8 8-8 4.416 0 8 3.585 8 8"/><circle fill="#664e27" cx="41.499" cy="30" r="4"/><path fill="#94989b" d="m25.7 47.33c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m25.842 46.802v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m22.7 49.829c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m22.842 49.3v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m19.7 47.33c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m19.842 46.802v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m16.7 49.829c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.401c-.166 0-.3.134-.3.3v4.4c0 .166.134.3.3.3h2.401"/><path fill="#6a6c6e" d="m16.842 49.3v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m37.7 47.33c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m37.842 46.802v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m34.7 49.829c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m34.842 49.3v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m31.7 47.33c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m31.842 46.802v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m28.7 49.829c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m28.842 49.3v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m49.7 47.33c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m49.842 46.802v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m46.7 49.829c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m46.842 49.3v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m43.7 47.33c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m43.842 46.802v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#94989b" d="m40.7 49.829c.165 0 .299-.134.299-.3v-4.4c0-.166-.134-.3-.299-.3h-2.4c-.166 0-.301.134-.301.3v4.4c0 .166.135.3.301.3h2.4"/><path fill="#6a6c6e" d="m40.842 49.3v-3.57c0-.069-.056-.125-.125-.125s-.125.056-.125.125v3.57c0 .065-.054.118-.118.118h-1.948c-.069 0-.125.057-.125.125s.056.125.125.125h1.948c.203 0 .368-.165.368-.368"/><path fill="#aaafb3" d="m53.22 44.31c-.023-.162-.174-.333-.332-.377 0 0-4.419-.523-6.949 2.01-2.529 2.53-2.01 6.949-2.01 6.949.045.158.215.309.378.332l3.2.465c.164.024.393.14.509.256l3.118 3.119c.117.116.308.116.424 0l5.498-5.498c.117-.117.117-.308 0-.424l-3.12-3.119c-.116-.117-.23-.346-.255-.51l-.465-3.199"/><path fill="#6a6c6e" d="m56.663 51.625l-5.241 5.241c-.048.049-.128.049-.177 0s-.049-.128 0-.177l5.24-5.24c.063-.063.063-.164 0-.228l-2.973-2.972c-.131-.131-.252-.375-.279-.557l-.443-3.049c-.016-.106-.123-.229-.227-.258-.002.001-.873-.098-2.027.017-.068.007-.129-.043-.137-.112-.006-.068.045-.13.112-.137 1.189-.117 2.063-.017 2.1-.012.217.059.396.262.426.466l.444 3.049c.019.13.115.323.208.415l2.972 2.973c.16.161.161.422.002.581"/><g fill="#67686b"><path d="m56.08 53.797c.141-.141.141-.372-.001-.514l-7.211-7.211c-.142-.143-.372-.143-.515-.001l-2.061 2.061c-.143.143-.143.373 0 .515l7.211 7.211c.143.143.373.143.516 0l2.061-2.061"/><path d="m56.48 52.15l-2.411-2.412c-.221-.221-.579-.221-.799-.001l-3.197 3.197c-.221.222-.221.579 0 .8l2.412 2.411 3.995-3.995"/></g><path fill="#aaafb3" d="m53.43 50.32l-3.111 3.111c-.117.117-.117.307 0 .424l8.06 8.06c.117.117.307.117.424 0l3.112-3.111c.116-.117.116-.307 0-.424l-8.06-8.06c-.118-.117-.307-.117-.424 0m7.41 8.02c.127.127.127.334 0 .461l-2.043 2.042c-.127.128-.333.128-.46 0l-2.233-2.233c-.127-.127-.127-.333 0-.46l2.042-2.042c.127-.127.333-.127.46 0l2.234 2.232m-6.616-4.113c-.694.695-2.064.453-3.059-.541l2.517-2.518c.994.995 1.236 2.364.542 3.059"/><path fill="#6a6c6e" d="m61.64 58.33l-7.475-7.475c-.049-.049-.128-.049-.177 0-.048.049-.048.128 0 .177l7.475 7.474c.046.047.046.121 0 .168l-2.792 2.791c-.049.049-.049.129 0 .178s.128.049.177 0l2.792-2.793c.143-.143.143-.377 0-.52"/><path fill="#aaafb3" d="m54.49 52.791c.117-.117.117-.307 0-.424l-5.939-5.94c-.117-.117-.308-.117-.424 0l-1.698 1.697c-.116.117-.116.308 0 .424l5.94 5.94c.117.117.307.117.424 0l1.697-1.697"/><path fill="#6a6c6e" d="m54.22 52.32l-5.353-5.353c-.049-.049-.129-.049-.178 0s-.049.127 0 .176l5.354 5.354c.046.046.046.121 0 .167l-1.377 1.378c-.049.049-.049.128 0 .176.048.049.127.049.176 0l1.378-1.377c.143-.144.143-.377 0-.521"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#696a6b"><path d="m47.9 43.9l-4 4c-.2.2-.2.4 0 .6l9.6 11.4c.1.1.4.2.5 0l5.9-5.9c.2-.2.2-.4 0-.6l-11.4-9.6c-.2-.1-.4-.1-.6.1m9.8 9.7c.1.1.1.4 0 .5l-3.7 3.6c-.1.1-.4.1-.5 0l-3.2-3.7 3.6-3.6 3.8 3.2"/><path d="m47.6 42h-3.2c-.2 0-.4.2-.4.4v2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v-2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v-2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v-2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v2c0-.2-.2-.4-.4-.4h-3.2c-.2 0-.4.2-.4.4v5.3c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v-2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v-2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v-2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v-2c0 .2.2.4.4.4h3.2c.2 0 .4-.2.4-.4v-5.3c0-.2-.2-.4-.4-.4"/></g><g fill="#664e27"><circle cx="20.5" cy="29" r="5"/><circle cx="43.5" cy="29" r="5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f911.svg b/build/js/jsxc/lib/emojione/assets/svg/1f911.svg
index 9c47904..19404ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f911.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f911.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><path d="m48 37.5c0 6.461-5.314 14-16 14-10.688 0-16-7.539-16-14 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path d="m32 52.5c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.957 15-17 15m-14.955-14c.523 5.99 5.727 12 14.955 12 9.229 0 14.434-6.01 14.957-12h-29.912"/></g><path fill="#74e063" d="m32 40h-10c0 0 0 2.787 0 5.92 0 10.703 4.478 16.08 9.998 16.08 5.523 0 10-5.377 10-16.08 0-3.131 0-5.918 0-5.918h-10"/><path opacity=".33" d="m39.642 40v5.66c-.001 8.348-3 13.74-7.643 13.74-4.642-.003-7.64-5.396-7.64-13.738v-5.662h-.805v5.662c0 8.878 3.314 14.617 8.443 14.621h.001c5.13 0 8.446-5.74 8.448-14.623v-5.66h-.804"/><path opacity=".33" d="m22 40h20v3.385h-20z"/><g opacity=".33"><path d="m28.342 45.33c.971-.293 1.721-.121 2.256.518-.646 1.166-1.043 2.01-1.191 2.535.008.979.237 1.517.691 1.611.362.022.713-.275 1.051-.896l.8-1.748c.548-1.092 1.317-1.658 2.312-1.699.574.041 1.088.251 1.545.629.457.379.757.804.9 1.277.145.475.217.768.221.881l1.281.13c.295.629.26 1.226-.104 1.787l-1.338-.13c-.006.545-.292 1.268-.864 2.168-.808.037-1.51-.23-2.108-.801.777-1.102 1.141-1.982 1.088-2.645.069-.621-.139-.949-.627-.986-.276-.021-.636.416-1.076 1.313-.392 1.028-.844 1.791-1.352 2.287s-1.123.719-1.852.662c-.981-.072-1.734-.557-2.26-1.453-.375-.57-.586-1.01-.635-1.306l-1.293-.033c-.316-.911-.238-1.583.236-2.01l1.318.109c.061-.517.395-1.25 1-2.197"/></g><g fill="#664e27"><path d="m22.5 22.774l-2.34-.814c-.838-.355-1.26-.759-1.271-1.211.074-.572.743-.913 2.01-1.022.691.129 1.824.535 3.398 1.216.767-.728.908-1.677.426-2.851-1.286-.653-2.268-.992-2.941-1.014v-1.647c-.605-.544-1.479-.573-2.622-.087l.095 1.607c-.381.092-.92.397-1.616.921-1.102.743-1.646 1.729-1.635 2.953.005.909.358 1.649 1.052 2.229.695.579 1.728 1.062 3.096 1.443 1.204.453 1.809.854 1.809 1.2.005.607-.396.9-1.205.879-.848.133-2.023-.228-3.528-1.078-.673.801-.942 1.699-.809 2.697 1.223.617 2.187.897 2.89.85l-.023 1.673c.763.394 1.535.375 2.315-.055l.03-1.603c.146-.019.518-.138 1.113-.364.597-.228 1.113-.643 1.555-1.248.438-.607.652-1.266.646-1.98-.162-1.23-.974-2.128-2.442-2.694"/><path d="m45.5 22.774l-2.34-.814c-.838-.355-1.26-.759-1.27-1.211.073-.572.742-.913 2.01-1.022.691.129 1.824.535 3.398 1.216.766-.728.908-1.677.426-2.851-1.287-.653-2.268-.992-2.941-1.014v-1.647c-.605-.544-1.479-.573-2.622-.087l.095 1.607c-.381.092-.92.397-1.616.921-1.103.743-1.646 1.729-1.636 2.953.006.909.358 1.649 1.053 2.229.695.579 1.728 1.062 3.096 1.443 1.204.453 1.808.854 1.809 1.2.005.607-.396.9-1.205.879-.848.133-2.023-.228-3.528-1.078-.673.801-.942 1.699-.81 2.697 1.224.617 2.188.897 2.891.85l-.023 1.673c.763.394 1.535.375 2.315-.055l.03-1.603c.146-.019.518-.138 1.113-.364.596-.228 1.113-.643 1.554-1.248.438-.607.653-1.266.646-1.98-.162-1.23-.973-2.128-2.441-2.694"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><path d="m19 20.8c0-2.4 5.3-1.3 7 .4 1-1.7.5-3.2.5-3.2s-1.5-1.1-3.8-1.5v-2.2c-1.8-.6-3.8 0-3.8 0v2.1c0 0-3.6.7-3.6 4.4 0 4.9 7.4 3.9 7.4 7 0 2.3-5 1.3-7.4-.5-.8 1.8 0 3.4 0 3.4 1.8.8 3.6 1 3.6 1v2c0 0 2 .6 3.8 0v-2.1c0 0 4.2-.2 4.2-3.8.1-4.7-7.9-4.3-7.9-7"/><path d="m41 20.8c0-2.4 5.3-1.3 7 .4 1-1.7.5-3.2.5-3.2s-1.5-1.1-3.8-1.5v-2.2c-1.8-.6-3.8 0-3.8 0v2.1c0 0-3.6.7-3.6 4.4 0 4.9 7.4 3.9 7.4 7 0 2.3-5 1.3-7.4-.5-.8 1.8 0 3.4 0 3.4 1.8.8 3.6 1 3.6 1v2c0 0 2 .6 3.8 0v-2.1c0 0 4.2-.2 4.2-3.8.1-4.7-7.9-4.3-7.9-7"/><path d="m47.9 38c-3.3 0-9.7 0-15.9 0-6.2 0-12.6 0-15.9 0-.7 0-1.1.5-1.1 1 0 7.3 6 15 17 15 11 0 17-7.7 17-15 0-.5-.4-1-1.1-1"/></g><path d="m41.2 44c-2.3 0-9.2 0-9.2 0s-6.9 0-9.2 0c-.7 0-.8.3-.8.8 0 .9 0 2.4 0 4 0 8.8 4.5 13.2 10 13.2 5.5 0 10-4.4 10-13.2 0-1.6 0-3.1 0-4 0-.5-.1-.8-.8-.8" fill="#74e063"/><g fill="#449636"><path d="m30.7 49.5c0-1.6 3.3-.8 4.4.3.7-1.1.3-2.1.3-2.1s-1-.7-2.4-1v-1.5c-1.1-.4-2.4 0-2.4 0v1.4c0 0-2.3.4-2.3 2.9 0 3.2 4.7 2.5 4.7 4.6 0 1.5-3.1.9-4.7-.3-.5 1.2 0 2.2 0 2.2 1.1.5 2.3.7 2.3.7v1.3c0 0 1.2.4 2.4 0v-1.4c0 0 2.6-.2 2.6-2.5.2-3.1-4.9-2.8-4.9-4.6"/><path d="m39.6 44v3.5c0 8.3-3 12-7.6 12-4.6 0-7.6-3.6-7.6-12v-3.5h-.8v3.5c0 8.9 3.3 12.9 8.4 12.9 5.1 0 8.4-4 8.4-12.9v-3.5h-.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f912.svg b/build/js/jsxc/lib/emojione/assets/svg/1f912.svg
index dcb6ea7..2b9d9b0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f912.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f912.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#e5e5e5" d="m3.494 35.486l18.665 15.717 4.91-4.912-15.717-18.665c-4.793-4.793-12.652 3.066-7.858 7.86"/><path fill="#fff" d="m4.965 33.813l18.18 16.406 2.947-2.945-16.406-18.18c-2.778-2.779-7.493 1.936-4.716 4.714"/><path fill="#ed4c5c" d="m6.47 33.746l16.849 15.674 1.966-1.97-15.671-16.847z"/><ellipse transform="matrix(.7072-.707.707.7072-20.393 15.11)" fill="#a5203c" cx="8.04" cy="32.17" rx="2.223" ry=".744"/><g fill="#51575b"><path d="m14.76 39.875l-2.129 2.125-.681-.61 2.13-2.13z"/><path d="m16.617 41.701l-2.043 2.043-.679-.614 2.041-2.04z"/><path d="m18.46 43.541l-1.959 1.961-.68-.617 1.96-1.961z"/><path d="m20.315 45.37l-1.769 1.77-.676-.622 1.769-1.768z"/><path d="m22.17 47.2l-1.632 1.632-.676-.622 1.637-1.636z"/></g><g fill="#664e27"><path d="m43.584 47.633c-2.229-.678-4.283-.92-6.328-.914-2.035.002-4.02.273-5.975.74-1.945.479-3.838 1.145-5.652 2.07-1.816.932-3.535 2.08-5.213 3.697.318-2.346 1.771-4.48 3.584-6.06 1.828-1.594 4.076-2.691 6.426-3.258 2.352-.563 4.848-.613 7.203-.029 2.334.579 4.598 1.813 5.955 3.753"/><circle cx="43.497" cy="30.31" r="4.5"/><circle cx="20.497" cy="30.31" r="4.5"/></g><g fill="#917524"><path d="m25.577 15.213c-3.236 2.732-7.523 3.881-11.693 3.133-.578-.113-1.088 2.02-.385 2.156 4.808.863 9.755-.461 13.492-3.615.541-.469-.97-2.061-1.414-1.674"/><path d="m50.11 18.19c-4.168.748-8.455-.4-11.691-3.133-.443-.389-1.955 1.205-1.412 1.674 3.732 3.152 8.68 4.479 13.492 3.615.703-.134.191-2.269-.389-2.156"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="43.5" cy="30.3" r="5"/><circle cx="20.5" cy="30.3" r="5"/></g><g fill="#917524"><path d="m25.6 15.2c-3.2 2.7-7.5 3.9-11.7 3.1-.6-.1-1.1 2-.4 2.2 4.8.9 9.8-.5 13.5-3.6.5-.5-1-2.1-1.4-1.7"/><path d="m50.1 18.2c-4.2.7-8.5-.4-11.7-3.1-.4-.4-2 1.2-1.4 1.7 3.7 3.2 8.7 4.5 13.5 3.6.7-.2.2-2.3-.4-2.2"/></g><path d="m4.4 38.7l24.2 14.2 4.6-6.5-21.4-18.1c-6.4-4.5-13.7 5.9-7.4 10.4" fill="#e5e5e5"/><path d="m5.8 36.5l23.8 15 2.8-3.9-22.2-17.3c-3.7-2.6-8.1 3.6-4.4 6.2" fill="#fff"/><path fill="#ed4c5c" d="m7.5 36.2l22.1 14.4 1.9-2.6-21.1-16z"/><ellipse transform="matrix(.5763-.8172.8172.5763-24.0655 21.7566)" cx="9" cy="34.1" rx="2.6" ry=".9" fill="#a5203c"/><g fill="#51575b"><path d="m18.1 41.5l-2 2.8-.9-.5 2-2.9z"/><path d="m20.5 43.2l-1.9 2.7-.9-.5 1.9-2.8z"/><path d="m23 44.9l-1.9 2.6-.8-.5 1.8-2.6z"/><path d="m25.4 46.6l-1.6 2.4-.9-.6 1.7-2.3z"/><path d="m27.9 48.3l-1.5 2.2-.9-.6 1.5-2.1z"/></g><path d="m41.5 43.9c-6 .3-11.6 3.3-15.2 8-.9 1.2 2.2 3.5 3.1 2.3 2.4-3.1 6.8-6.2 12.3-6.5 1.4 0 1.3-3.8-.2-3.8" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f913.svg b/build/js/jsxc/lib/emojione/assets/svg/1f913.svg
index c6ea98b..1dc83d7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f913.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f913.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><path fill="#664e27" d="m48 37c0 6.459-5.314 14-16 14-10.689 0-16-7.541-16-14 0 0 5.311 0 16 0 10.686 0 16 0 16 0"/><path fill="#fff" d="m24 37h16v6h-16z"/><g fill="#664e27"><path d="m32 52c-11.04 0-17-7.729-17-15v-1h34v1c0 7.271-5.959 15-17 15m-14.957-14c.523 5.988 5.728 12 14.957 12s14.432-6.01 14.955-12h-29.912"/><circle cx="21.5" cy="24.5" r="3"/><circle cx="42.5" cy="24.5" r="3"/></g><path fill="#3e4347" d="m56.2 16.05c-.893-.11-3.693-.247-7.091-.247-3.898 0-7.01.563-10.07 1.107-3.039.539-5.063.917-7.04.917-1.98 0-4-.379-7.04-.917-3.065-.543-6.173-1.107-10.07-1.107-3.397 0-6.199.136-7.092.247-1.794.222-1.794.222-1.794 2.222 0 2.922.332 3.431.472 3.605.19.236.723.563.896.813.254.366.345 1.497.467 2.148.968 5.173 2.304 6.964 9.923 6.964 7.092 0 10.588-2.128 11.921-7.387.101-.392.276-2.072.385-2.462.043-.155.184-.386.552-.442.493-.048.941-.07 1.385-.07s.891.022 1.385.07c.367.056.509.288.552.442.106.391.284 2.07.385 2.462 1.334 5.258 4.828 7.387 11.922 7.387 7.618 0 8.953-1.792 9.92-6.964.122-.652.215-1.782.469-2.148.174-.25.705-.577.896-.813.139-.174.47-.683.47-3.605 0-2 0-2-1.796-2.222m-27.824 6.363c-.092.423-.211.917-.375 1.542-.954 3.644-3.063 6.071-10.247 6.071-6.962 0-7.58-1.468-8.235-5.592-.244-1.537-.769-3.24-.169-4.671.333-.795.907-1.912 2.921-1.912 1.471 0 8.748.097 13.222 1.071 1.305.286 3.43.781 2.883 3.491m26.1 2.02c-.654 4.124-1.271 5.592-8.232 5.592-7.186 0-9.293-2.427-10.248-6.071-.164-.625-.283-1.119-.376-1.542-.545-2.709 1.579-3.204 2.884-3.49 4.475-.975 11.752-1.071 13.223-1.071 2.01 0 2.588 1.116 2.92 1.912.599 1.43.075 3.133-.171 4.67"/><path fill="#fff" d="m29.956 17.613h4.088v5.01h-4.088z"/><path opacity=".5" fill="#3e4347" d="m29.956 21.88h4.088v.747h-4.088z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#fff"><circle cx="17" cy="30" r="11"/><circle cx="47" cy="30" r="11"/></g><g fill="#494949"><path d="m36 27c-1.8-1.3-6.2-1.3-8 0-1.1-1-.9-2.1-2-3.1 3.1-2.3 8.4-2.7 12 0-1.1 1-.9 2.1-2 3.1"/><path d="m47 17c-7.2 0-13 5.8-13 13s5.8 13 13 13 13-5.8 13-13-5.8-13-13-13m0 23c-5.5 0-10-4.5-10-10 0-5.5 4.5-10 10-10s10 4.5 10 10c0 5.5-4.5 10-10 10"/><path d="m17 17c-7.2 0-13 5.8-13 13 0 7.2 5.8 13 13 13 7.2 0 13-5.8 13-13s-5.8-13-13-13m0 23c-5.5 0-10-4.5-10-10 0-5.5 4.5-10 10-10s10 4.5 10 10c0 5.5-4.5 10-10 10"/></g><g fill="#664e27"><ellipse cx="20" cy="30.5" rx="4" ry="5"/><ellipse cx="44" cy="30.5" rx="4" ry="5"/><path d="m26.7 51.3c5.8 1.5 12 .4 16.9-3 1.2-.9-1.1-4-2.3-3.2-3.2 2.3-8.4 3.8-13.7 2.4-1.3-.3-2.4 3.4-.9 3.8"/></g><g fill="#917524"><path d="m53.2 15.7c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 12.4c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.2.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f914.svg b/build/js/jsxc/lib/emojione/assets/svg/1f914.svg
index 4ff8721..3b5fe13 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f914.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f914.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="M59.345,29.346c0,15.106-12.237,27.346-27.345,27.346S4.653,44.452,4.653,29.346
- C4.653,14.24,16.893,2,32,2S59.345,14.24,59.345,29.346z"/><g fill="#917524"><path d="m48.04 10.664c-3.339-1.939-7.368-2.293-10.993-.961-.501.193-1.297-1.643-.688-1.875 4.18-1.536 8.832-1.131 12.684 1.109.561.336-.545 2.01-1 1.727"/><path d="m24.93 14.01c-3.337-1.939-7.367-2.293-10.994-.962-.499.195-1.297-1.641-.687-1.874 4.181-1.536 8.833-1.13 12.685 1.11.559.334-.544 2-1 1.726"/></g><path fill="#664e27" d="m39.605 37.776h-15.212c-.796 0-.796-2.735 0-2.735h15.213c.796 0 .796 2.735-.001 2.735"/><circle fill="#fff" cx="21.444" cy="21.17" r="7.342"/><circle fill="#664e27" cx="23.447" cy="18.17" r="3.671"/><circle fill="#fff" cx="42.554" cy="21.17" r="7.342"/><circle fill="#664e27" cx="44.557" cy="18.17" r="3.672"/><path fill="#fff" d="m40.949 40.836c-4.258 1.83-15.238 5.086-17.66 3.396-1.087-.761-1.145-2.177-1.251-4.604-.106-2.395-2.852-4.567-4.583-4.484-2.073.098-2.986 1.763-1.908 3.75 2.369 4.357-.375 6.367.076 9.835.26 2.01.199 5.417 3.965 9.138 4.258 4.208 10.295 3.221 12.358 2.79 2.434-.507 3.447-.776 3.832-1.973.426-1.324.086-1.573.273-2.058.41-1.059.722-.991.799-2.121.084-1.23-.877-1.747-.768-2.357.222-1.271 1.311-1.285-.244-3.973 3.498-1.156 5.748-2.113 7.662-3.668 3.468-2.812-.292-4.644-2.551-3.671"/><path fill="#a5b3b2" d="m28.1 62c-3.729 0-6.923-1.21-9.238-3.498-3.587-3.544-3.928-6.812-4.152-8.974-.025-.244-.05-.474-.077-.688-.195-1.502.132-2.721.446-3.902.467-1.744.869-3.25-.422-5.627-.702-1.293-.747-2.604-.124-3.598.559-.89 1.606-1.434 2.874-1.493.018-.001.132-.004.148-.004 2.313 0 5.357 2.531 5.484 5.374.102 2.314.18 3.431.854 3.902.122.085.532.285 1.685.285 4.101 0 11.796-2.425 14.952-3.782.53-.229 1.143-.349 1.769-.349 1.607 0 2.994.752 3.449 1.873.273.674.431 2.049-1.586 3.686-1.875 1.522-4.01 2.481-6.939 3.49.688 1.502.463 2.214.075 2.999-.093.189-.169.344-.212.534.031.065.101.177.153.262.271.437.678 1.097.611 2.074-.058.847-.237 1.209-.505 1.666-.109.188-.223.38-.351.709-.007.028-.001.12.003.188.018.346.047.869-.26 1.822-.572 1.779-2.25 2.129-4.57 2.611-1.417.296-2.747.44-4.067.44m-10.545-25.931c-.463.021-1.018.136-1.293.575-.277.441-.211 1.109.182 1.833 1.623 2.989 1.067 5.069.576 6.905-.284 1.065-.553 2.072-.402 3.236.029.228.055.471.082.731.211 2.026.5 4.802 3.621 7.884 1.955 1.934 4.572 2.913 7.779 2.914 1.17 0 2.357-.129 3.629-.396 2.429-.506 2.891-.704 3.094-1.333.208-.647.191-.941.178-1.2-.014-.24-.029-.539.112-.905.18-.464.351-.755.476-.969.169-.287.232-.396.267-.899.028-.421-.139-.691-.351-1.034-.228-.368-.511-.826-.405-1.416.081-.467.247-.803.381-1.073.227-.458.376-.761-.521-2.31-.137-.237-.156-.519-.051-.771.104-.251.322-.449.597-.539 3.245-1.073 5.487-1.989 7.339-3.491.799-.649 1.186-1.262 1.031-1.641-.224-.552-1.65-.863-2.502-.496-3.106 1.336-11.188 3.954-15.795 3.954-1.309 0-2.254-.216-2.889-.658-1.46-1.021-1.534-2.711-1.646-5.269-.084-1.854-2.268-3.632-3.489-3.632"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M4,30c0,15.5,12.5,28,28,28s28-12.5,28-28S47.5,2,32,2S4,14.5,4,30z" fill="#ffdd67"/><g fill="#917524"><path d="m14.2 12c3.4-2 7.5-2.3 11.3-1 .5.2 1.3-1.7.7-1.9-4.3-1.6-9-1.2-13 1.1-.6.3.5 2.1 1 1.8"/><path d="m38.2 15c3.4-2 7.5-2.3 11.3-1 .5.2 1.3-1.7.7-1.9-4.3-1.6-9-1.2-13 1.1-.6.3.5 2 1 1.8"/></g><path d="m24.1 34.7c5.1-1.3 10.7-.4 15 2.6 1.1.7-.9 3.5-2 2.7-2.9-1.9-7.4-3.3-12.1-2.1-1.2.3-2.2-2.8-.9-3.2" fill="#664e27"/><path d="m42.8 29.1c-4.1 0-7.5-3.4-7.5-7.5 0-1.7.6-3.3 1.5-4.5 1.7-.5 3.6-.7 5.6-.7 2.4 0 4.7.4 6.7 1.1.8 1.2 1.3 2.6 1.3 4.2-.1 4.1-3.4 7.4-7.6 7.4" fill="#fff"/><path d="m43.8 16.4c.4.6.7 1.3.7 2.1 0 2.1-1.7 3.8-3.8 3.8s-3.7-1.7-3.7-3.7c0-.6.1-1.1.4-1.6 1.5-.4 3.2-.6 5-.6.5 0 1 0 1.4 0" fill="#664e27"/><path d="m21.2 29.1c-4.1 0-7.5-3.4-7.5-7.5 0-1.7.6-3.3 1.5-4.5 1.7-.5 3.6-.7 5.6-.7 2.4 0 4.7.4 6.7 1.1.8 1.2 1.3 2.6 1.3 4.2-.1 4.1-3.5 7.4-7.6 7.4" fill="#fff"/><path d="m22.2 16.4c.4.6.7 1.3.7 2.1 0 2.1-1.7 3.8-3.8 3.8s-3.8-1.7-3.8-3.8c0-.6.1-1.1.4-1.6 1.5-.4 3.2-.6 5-.6.6.1 1 .1 1.5.1" fill="#664e27"/><path d="m32.6 44c-4.2 1-14.9 2.3-16.8.3-.9-.9-.7-2.2-.4-4.5.3-2.3-1.9-4.7-3.5-4.9-1.9-.2-3 1.2-2.3 3.2 1.4 4.5-1.4 5.9-1.6 9.2-.1 1.9-.7 5.1 2.2 9.2 3.3 4.6 9 4.7 11 4.6 2.3-.1 3.3-.2 3.8-1.2.6-1.2.3-1.5.6-1.9.5-.9.8-.8 1.1-1.9.3-1.1-.5-1.8-.3-2.3.4-1.2 1.4-1 .4-3.8 3.4-.5 5.6-1 7.6-2.2 3.7-2 .5-4.3-1.8-3.8" fill="#fff"/><path d="m17.5 61.7c-3.4-.6-6.2-2.3-8-4.8-2.8-3.9-2.6-7-2.4-9.1 0-.2 0-.5 0-.7.1-1.4.5-2.5 1-3.6.7-1.6 1.3-2.9.5-5.3-.4-1.2-.3-2.4.5-3.2.7-.7 1.7-1.1 2.9-.9 0 0 .1 0 .1 0 2.1.4 4.5 3.2 4.2 5.9-.3 2.2-.4 3.2.2 3.8.1.1.4.4 1.5.5 3.8.7 11.3-.4 14.4-1.1.5-.1 1.1-.1 1.7 0 1.5.3 2.6 1.2 2.9 2.3.1.7.1 2-2 3.2-2 1.1-4.1 1.7-7 2.1.8 2-1.1 2.7-.7 3.5.5 1.1.4 2-.7 3.1-.8.7.2 1.6-.6 3-.9 1.5-2.4 1.6-4.6 1.7-1.5-.1-2.7-.1-3.9-.4m-7.6-24.5c.7 3.3.9 4.5-.3 7.2-1.8 3.6-2.5 13.8 8.2 15.7 6.5 1.2 7.5-.4 7.2-2.1-.2-1.1.7-1.5 1-1.9.7-1.2-.3-1.8-.3-2.3 0-.9.9-.9 1.1-1.8.3-1.6-1.7-2.2 0-2.3 3.3-.2 5.5-.8 7.4-2.1 1.8-1.2.5-3.7-1.9-3.2-5.6 1.2-14 2.6-16.8 0-1.3-1.2-.3-2.6-.4-5.3-.2-3.6-5.9-5-5.2-1.9" fill="#cccfd4"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f915.svg b/build/js/jsxc/lib/emojione/assets/svg/1f915.svg
index d40a8a4..26dfd8c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f915.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f915.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="31.906" cy="32.09" r="29.906"/><g fill="#664e27"><path d="m42.59 49.84c-1.801-1.059-3.541-1.701-5.322-2.127-1.775-.426-3.566-.609-5.361-.611-1.799.008-3.588.189-5.361.615-1.781.428-3.52 1.066-5.322 2.123.771-1.977 2.484-3.531 4.396-4.525 1.932-1 4.119-1.486 6.287-1.486 2.166.004 4.354.486 6.283 1.49 1.91.994 3.624 2.546 4.4 4.521"/><circle cx="43.656" cy="30" r="4.5"/><circle cx="20.16" cy="30" r="4.5"/></g><path fill="#cccfd4" d="M32,2c-6.038,0-11.655,1.79-16.361,4.859c17.616,9.12,33.116,23.082,41.685,41.217
- C60.28,43.43,62,37.918,62,32C62,15.432,48.568,2,32,2z"/><path fill="#fff" d="m32.919 3.569c-5.501 0-10.618 1.631-14.905 4.427 16.684 7.687 31.572 19.31 39.38 35.832 3.083-5.844 2.858-12.928 2.858-12.928 0-15.09-12.236-27.331-27.331-27.331"/><path fill="#cccfd4" d="m15.826 6.75c14.525-.069 28.896 3.29 41.879 9.779 2.726 4.517 4.295 9.811 4.295 15.471 0 .468-.014.932-.035 1.395-17.14-10.592-37.38-15.325-57.45-13.409 2.387-5.454 6.355-10.05 11.315-13.236"/><path fill="#fff" d="m16.966 8.136c13.587-.06 27.634 3.976 39.777 9.623 3.345 6.539 3.477 11.863 3.477 11.863-16.391-8.722-35.33-13.1-52.858-11.445 0 0 4.239-7.777 9.604-10.04"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="31.9" cy="32.1" r="29.9" fill="#ffdd67"/><g fill="#664e27"><circle cx="43.7" cy="30" r="5"/><circle cx="20.2" cy="30" r="5"/></g><path d="m32 2c-6 0-11.7 1.8-16.4 4.9 17.7 9.1 33.2 23 41.7 41.2 3-4.6 4.7-10.2 4.7-16.1 0-16.6-13.4-30-30-30" fill="#cccfd4"/><path d="m32.9 3.6c-5.5 0-10.6 1.6-14.9 4.4 16.7 7.7 31.6 19.3 39.4 35.8 3.1-5.8 2.9-12.9 2.9-12.9-.1-15.1-12.3-27.3-27.4-27.3" fill="#fff"/><path d="m15.8 6.7c14.5-.1 28.9 3.3 41.9 9.8 2.7 4.5 4.3 9.8 4.3 15.5 0 .5 0 .9 0 1.4-17.2-10.6-37.4-15.3-57.5-13.4 2.4-5.5 6.4-10.1 11.3-13.3" fill="#cccfd4"/><path d="m17 8.1c13.6-.1 27.6 4 39.8 9.6 3.3 6.5 3.5 11.9 3.5 11.9-16.5-8.7-35.4-13.1-52.9-11.4 0 0 4.2-7.8 9.6-10.1" fill="#fff"/><path d="m40.3 42.8c-5.8-1.5-12-.4-16.9 3-1.2.9 1.1 4 2.3 3.2 3.2-2.3 8.4-3.8 13.7-2.4 1.3.3 2.4-3.3.9-3.8" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f916.svg b/build/js/jsxc/lib/emojione/assets/svg/1f916.svg
index ec03572..047eae1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f916.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f916.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#00b9f1" d="m57.6 13.651c-.656-.974-1.637-1.658-2.674-2.167-3.377-1.659-11.639-1.31-12.334-5.653-.914-5.695-5.855.061-6.771.061-1.059 0-1.573-3.892-3.723-3.892-2.152 0-2.664 3.892-3.723 3.892-.916 0-5.859-5.756-6.771-.061-.695 4.344-8.959 3.995-12.334 5.653-1.037.51-2.02 1.194-2.674 2.167-.521.773.625 1.614 1.207.887 1.586-1.984 4.832-2.37 7.145-2.827 1.941-.384 4.049-.612 5.881-1.393 2.596-1 2.48-4.931 3.268-4.931.588 0 2.697 3.02 4.549 3.02 1.58 0 2.58-3.698 3.453-3.698.877 0 1.871 3.698 3.451 3.698 1.854 0 3.963-3.02 4.551-3.02.785 0 .672 3.931 3.268 4.931 1.832.781 3.939 1.01 5.881 1.393 2.313.457 5.559.842 7.145 2.827.58.728 1.726-.113 1.205-.887"/><path fill="#89967a" d="M53,57c0,2.762-2.238,5-5,5H16c-2.76,0-5-2.238-5-5V36h42V57z"/><path fill="#b6c4a7" d="m32 12c-15.463 0-21 8.536-21 24v21h42v-21c0-15.464-5.535-24-21-24"/><g fill="#89967a"><path d="m11 54.98c-1.104 0-2-1.168-2-2.609v-6.783c0-1.439.896-2.607 2-2.607v11.999"/><path d="m53 42.98c1.105 0 2 1.168 2 2.607v6.783c0 1.441-.895 2.609-2 2.609v-11.999"/></g><g fill="#3e4347"><path d="m7 19.979h-2v30h2 2v-2h-2z"/><path d="m57 19.979v28h-2v2h2 2v-30z"/></g><circle fill="#00b9f1" cx="58" cy="19.979" r="4"/><g enable-background="new "><circle fill="#ff5263" cx="6" cy="19.979" r="4"/></g><path fill="#efffd9" d="m21.5 39.5c-4.415 0-8-3.583-8-8 0-4.42 3.585-8 8-8 4.422 0 8 3.58 8 8 0 4.417-3.578 8-8 8"/><circle fill="#545b61" cx="21.5" cy="31.5" r="6"/><circle fill="#ff5263" cx="21.5" cy="31.5" r="2.285"/><path fill="#efffd9" d="m42.5 39.5c-4.415 0-8-3.583-8-8 0-4.42 3.585-8 8-8 4.422 0 8 3.58 8 8 0 4.417-3.578 8-8 8"/><path fill="#545b61" d="m42.5 37.5c-3.313 0-6-2.688-6-6 0-3.315 2.688-6 6-6 3.317 0 6 2.685 6 6 0 3.313-2.683 6-6 6"/><circle fill="#ff5263" cx="42.5" cy="31.5" r="2.286"/><path fill="#efffd9" d="m19.769 54.09c-7.358 0-7.358-13 0-13h24.463c7.358 0 7.358 13 0 13h-24.463"/><path fill="#89967a" d="m20.488 52.588c-5.984 0-5.984-10 0-10h23.02c5.984 0 5.984 10 0 10h-23.02"/><g opacity=".7" fill="#3e4347"><path d="m21.19 50.662c0 1.234-2 1.234-2 0v-6.148c0-1.234 2-1.234 2 0v6.148"/><path d="m25.916 50.662c0 1.234-2 1.234-2 0v-6.148c0-1.234 2-1.234 2 0v6.148"/><path d="m30.639 50.662c0 1.234-2 1.234-2 0v-6.148c0-1.234 2-1.234 2 0v6.148"/><path d="m35.36 50.662c0 1.234-2 1.234-2 0v-6.148c0-1.234 2-1.234 2 0v6.148"/><path d="m40.08 50.662c0 1.234-2 1.234-2 0v-6.148c0-1.234 2-1.234 2 0v6.148"/><path d="m44.807 50.662c0 1.234-2 1.234-2 0v-6.148c0-1.234 2-1.234 2 0v6.148"/></g><circle fill="#f5f5f5" cx="32" cy="36.98" r="2"/><path transform="matrix(.7071-.7071.7071.7071-16.776 33.459)" fill="#545b61" d="m31.617 34.98h.765v4h-.765z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.6 13.7c-.7-1-1.6-1.7-2.7-2.2-3.4-1.7-11.6-1.3-12.3-5.7-.9-5.7-5.9.1-6.8.1-1.1 0-1.6-3.9-3.7-3.9-2.2 0-2.7 3.9-3.7 3.9-.9 0-5.9-5.8-6.8-.1-.7 4.3-9 4-12.3 5.7-1 .5-2 1.2-2.7 2.2-.5.8.6 1.6 1.2.9 1.6-2 4.8-2.4 7.1-2.8 1.9-.4 4-.6 5.9-1.4 2.6-1 2.5-4.9 3.3-4.9.6 0 2.7 3 4.5 3 1.6 0 2.6-3.7 3.5-3.7.9 0 1.9 3.7 3.5 3.7 1.9 0 4-3 4.6-3 .8 0 .7 3.9 3.3 4.9 1.8.8 3.9 1 5.9 1.4 2.3.5 5.6.8 7.1 2.8.5.7 1.6-.2 1.1-.9" fill="#00b9f1"/><path d="M53,57c0,2.8-2.2,5-5,5H16c-2.8,0-5-2.2-5-5V36h42V57z" fill="#89967a"/><path d="m32 12c-15.5 0-21 8.5-21 24v21h42v-21c0-15.5-5.5-24-21-24" fill="#b6c4a7"/><g fill="#89967a"><path d="m11 55c-1.1 0-2-1.2-2-2.6v-6.8c0-1.4.9-2.6 2-2.6v12"/><path d="m53 43c1.1 0 2 1.2 2 2.6v6.8c0 1.4-.9 2.6-2 2.6v-12"/></g><g fill="#3e4347"><path d="m7 20h-2v30h2 2v-2h-2z"/><path d="m57 20v28h-2v2h2 2v-30z"/></g><circle cx="58" cy="20" r="4" fill="#00b9f1"/><g enable-background="new"><circle cx="6" cy="20" r="4" fill="#ff5263"/></g><path d="m21.5 39.5c-4.4 0-8-3.6-8-8 0-4.4 3.6-8 8-8 4.4 0 8 3.6 8 8 0 4.4-3.6 8-8 8" fill="#efffd9"/><circle cx="21.5" cy="31.5" r="6" fill="#545b61"/><circle cx="21.5" cy="31.5" r="2.3" fill="#ff5263"/><path d="m42.5 39.5c-4.4 0-8-3.6-8-8 0-4.4 3.6-8 8-8 4.4 0 8 3.6 8 8 0 4.4-3.6 8-8 8" fill="#efffd9"/><path d="m42.5 37.5c-3.3 0-6-2.7-6-6 0-3.3 2.7-6 6-6 3.3 0 6 2.7 6 6 0 3.3-2.7 6-6 6" fill="#545b61"/><circle cx="42.5" cy="31.5" r="2.3" fill="#ff5263"/><path d="m19.8 54.1c-7.4 0-7.4-13 0-13h24.5c7.4 0 7.4 13 0 13h-24.5" fill="#efffd9"/><path d="m20.5 52.6c-6 0-6-10 0-10h23c6 0 6 10 0 10h-23" fill="#89967a"/><g opacity=".7" fill="#3e4347"><path d="m21.2 50.7c0 1.2-2 1.2-2 0v-6.1c0-1.2 2-1.2 2 0v6.1"/><path d="m25.9 50.7c0 1.2-2 1.2-2 0v-6.1c0-1.2 2-1.2 2 0v6.1"/><path d="m30.6 50.7c0 1.2-2 1.2-2 0v-6.1c0-1.2 2-1.2 2 0v6.1"/><path d="m35.4 50.7c0 1.2-2 1.2-2 0v-6.1c0-1.2 2-1.2 2 0v6.1"/><path d="m40.1 50.7c0 1.2-2 1.2-2 0v-6.1c0-1.2 2-1.2 2 0v6.1"/><path d="m44.8 50.7c0 1.2-2 1.2-2 0v-6.1c0-1.2 2-1.2 2 0v6.1"/></g><circle cx="32" cy="37" r="2" fill="#f5f5f5"/><path transform="matrix(.7071-.7071.7071.7071-16.7765 33.4583)" fill="#545b61" d="m31.6 35h.8v4h-.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f917.svg b/build/js/jsxc/lib/emojione/assets/svg/1f917.svg
index 505de9e..238b5a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f917.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f917.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="29" r="27"/><g opacity=".8" enable-background="new "><path fill="#ff717f" d="m46.568 12.665c3.918-.69 7.647 1.925 8.339 5.842.69 3.915-1.919 7.648-5.837 8.34-3.916.689-7.65-1.925-8.342-5.84-.692-3.916 1.924-7.652 5.84-8.342"/></g><g opacity=".8" enable-background="new "><circle fill="#ff717f" cx="14.478" cy="25.636" r="7.2"/></g><path fill="#664e27" d="m18.906 29.377c2.422.904 4.678 1.314 6.941 1.451 2.254.135 4.475-.027 6.664-.408 2.187-.396 4.326-1 6.396-1.901 2.075-.902 4.06-2.056 6.03-3.731-.517 2.577-2.27 4.836-4.383 6.461-2.136 1.639-4.7 2.693-7.343 3.16-2.636.459-5.404.348-7.972-.467-2.536-.801-4.958-2.327-6.329-4.565"/><path fill="#fff" d="m27.314 47.541l-1.355-.002c2.496.004 2.489-4.279.025-4.281h-11.09c0 0 5.366-.258 4.65-2.877-.492-1.797-3.551-1.525-5.926-1.025-2.824.598-3.634.973-5.195 1.719-8.307 3.974-5.754 14.464-1.525 17.675 2.941 2.232 5.168 2.27 8.203 2.27 2.474 0 8.494 0 8.494 0 2.924.004 3.387-4.01.465-4.02l2.265.006c2.53.002 2.524-4.406-.007-4.41h1c3.638.008 3.633-5.05-.006-5.06"/><g fill="#a5b3b2"><path d="m23.603 62c0 0-.008 0-.01 0h-8.492c-2.967 0-5.529 0-8.77-2.459-2.838-2.154-4.677-6.865-4.277-10.953.367-3.754 2.485-6.738 5.967-8.402 1.688-.809 2.555-1.189 5.406-1.789 1.238-.264 2.33-.397 3.246-.397 2.654 0 3.525 1.15 3.789 2.115.212.771.093 1.51-.343 2.131-.007.01-.015.02-.021.029h5.885c1.842.004 2.803 1.574 2.803 3.123-.001.455-.086.914-.251 1.334 1.624.484 2.466 1.924 2.464 3.35 0 1.32-.73 2.654-2.138 3.219.208.467.313.988.312 1.51 0 1.42-.791 2.854-2.309 3.129.082.275.123.559.123.84 0 1.583-1.267 3.22-3.384 3.22m-6.93-22.03c-.787 0-1.75.119-2.862.354-2.753.582-3.5.936-4.986 1.648-3.646 1.742-4.661 4.67-4.871 6.818-.37 3.793 1.494 7.645 3.511 9.174 2.736 2.078 4.791 2.078 7.637 2.078h8.502c1.075 0 1.476-.773 1.477-1.26 0-.51-.362-.795-1.02-.797h-.002c-.527 0-.954-.441-.953-.982.002-.541.429-.98.955-.98h.002l2.265.006c.911 0 .938-1.09.938-1.215s-.025-1.229-.949-1.23c-.526 0-.953-.439-.952-.982 0-.543.428-.982.954-.982h1c1.309 0 1.771-.826 1.771-1.533.001-.717-.465-1.553-1.778-1.557l-1.355-.002.003-1.965c.872 0 .917-.967.918-1.16 0-.119-.025-1.156-.895-1.158h-11.09c-.52 0-.942-.424-.954-.957-.014-.533.39-.979.907-1 1.211-.063 3.232-.479 3.724-1.18.077-.109.116-.229.054-.451-.162-.595-1.292-.683-1.952-.683"/><path d="m25.958 48.52h-8.682c-.525 0-.954-.439-.954-.982 0-.541.429-.982.954-.982h8.682c.526 0 .954.441.954.982.001.543-.427.982-.954.982"/><path d="m26.318 53.58h-9.04c-.525 0-.954-.439-.954-.982 0-.541.429-.982.954-.982h9.04c.527 0 .955.441.955.982 0 .543-.428.982-.955.982"/><path d="m24.06 57.98h-6.783c-.525 0-.954-.439-.954-.98s.429-.982.954-.982h6.783c.526 0 .953.441.953.982s-.427.98-.953.98"/></g><path fill="#fff" d="m36.679 52.596h1c-2.533.004-2.539 4.412-.006 4.41l2.263-.006c-2.924.006-2.461 4.02.463 4.02 0 0 6.02 0 8.494 0 3.037 0 5.264-.037 8.203-2.27 4.229-3.211 6.783-13.701-1.523-17.676-1.562-.746-2.373-1.121-5.196-1.719-2.373-.5-5.434-.771-5.926 1.025-.716 2.619 4.653 2.877 4.653 2.877h-11.09c-2.465.002-2.473 4.285.025 4.281l-1.357.002c-3.639.009-3.643 5.064-.006 5.056"/><g fill="#a5b3b2"><path d="m40.4 62c-2.119 0-3.385-1.637-3.387-3.221 0-.281.043-.566.125-.84-1.52-.277-2.311-1.711-2.313-3.129 0-.521.105-1.045.316-1.512-1.41-.564-2.139-1.896-2.14-3.219 0-1.424.839-2.863 2.464-3.348-.166-.42-.25-.879-.252-1.334 0-1.549.963-3.119 2.803-3.123h5.887c-.006-.01-.015-.02-.021-.029-.437-.621-.556-1.359-.344-2.131.265-.964 1.137-2.114 3.791-2.114.916 0 2.01.133 3.247.396 2.85.6 3.718.98 5.404 1.789 3.483 1.664 5.6 4.648 5.968 8.402.4 4.088-1.438 8.799-4.276 10.953-3.24 2.46-5.802 2.46-8.772 2.46h-8.5m-.459-4.02c-.656.002-1.018.287-1.018.797.002.486.4 1.26 1.477 1.26v.982l.004-.982h8.496c2.847 0 4.901 0 7.637-2.078 2.02-1.529 3.882-5.381 3.512-9.174-.208-2.148-1.224-5.076-4.871-6.818-1.486-.713-2.233-1.066-4.986-1.648-1.11-.234-2.073-.354-2.862-.354-.659 0-1.788.088-1.952.682-.061.223-.022.342.055.451.491.701 2.513 1.117 3.724 1.18.519.025.921.471.906 1-.01.533-.433.957-.95.957h-11.09c-.871.002-.895 1.039-.895 1.158 0 .193.045 1.16.916 1.16 0 0 0 0 .002 0 0 0 0 0 .002 0 .527 0 .953.439.953.982.002.523-.398.953-.902.982h-.002c0 0 0 0-.002 0-.002 0-.002 0-.002 0s0 0-.002 0h-.002c0 0 0 0-.002 0-.002 0-.002 0-.002 0s0 0-.002 0c-.002 0-.002 0-.002 0h-.002c-.002 0-.002 0-.002 0h-.002c0 0 0 0-.002 0h-.002c0 0 0 0-.002 0 0 0 0 0-.002 0 0 0 0 0-.002 0h-.004c0 0 0 0-.002 0h-.002c-.002 0-.006 0-.01 0l-1.355.002c-1.314.004-1.779.84-1.779 1.555.002.709.463 1.535 1.764 1.535h1.01.002c.525 0 .953.439.955.982 0 .543-.428.982-.955.982-.922.002-.949 1.104-.949 1.23 0 .125.027 1.215.938 1.215l2.268-.006h.002c.526 0 .953.439.955.98 0 .541-.427.982-.953.982h-.006z"/><path d="m46.724 48.52h-8.682c-.527 0-.955-.439-.955-.982 0-.541.428-.982.955-.982h8.682c.525 0 .952.441.952.982 0 .543-.427.982-.952.982"/><path d="m46.724 53.58h-9.04c-.527 0-.955-.439-.955-.982 0-.541.428-.982.955-.982h9.04c.525 0 .952.441.952.982 0 .543-.427.982-.952.982"/><path d="m46.724 57.98h-6.784c-.529 0-.955-.439-.955-.98s.426-.982.955-.982h6.783c.525 0 .952.441.952.982s-.426.98-.951.98"/></g><g fill="#664e27"><path d="m25.613 14.895c-3.751-4.839-11.834-3.414-13.701 2.416-.111.355.415.744 1.022 1.02 3.063-3.442 8.01-4.314 12.06-2.127.477-.469.839-1.014.614-1.309"/><path d="m46.909 11.14c-3.751-4.84-11.833-3.414-13.703 2.415-.11.356.415.746 1.022 1.021 3.063-3.443 8.01-4.315 12.07-2.128.477-.468.839-1.012.615-1.308"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="30" r="28" fill="#ffdd67"/><g fill="#ff717f"><ellipse transform="matrix(.2588-.9659.9659.2588 16.2122 64.2167)" cx="49.9" cy="21.5" rx="6.1" ry="8.4" opacity=".8"/><ellipse transform="matrix(.8192-.5735.5735.8192-13.9487 12.1328)" cx="12.3" cy="28.2" rx="8.4" ry="6.1" opacity=".8"/></g><g fill="#664e27"><path d="m26.7 18.2c-2.5-4.3-5.3-6.1-7.8-5.6-2.5.4-4.6 3.1-5.4 8-.1.5.9 1.2 1.3.6 1.3-2 3.1-3 5.1-3.3 2-.4 4 0 5.9 1.4.5.3 1.2-.7.9-1.1"/><path d="m46.2 14.7c-2.5-4.2-5.3-6.1-7.8-5.6-2.5.4-4.6 3.2-5.4 8-.1.5.9 1.2 1.3.6 1.3-2 3.1-3 5.1-3.3 2-.4 4 0 5.9 1.4.4.3 1.1-.6.9-1.1"/><path d="m42.9 26.5c-6.3 6.3-14.3 7.7-22.4 3.9-1-.5-1.6.7-.8 1.6 2.8 3.2 7.8 5.6 13.4 4.6 5.6-1 9.5-5 11-9 .5-.9-.4-1.8-1.2-1.1"/></g><path d="m27.2 46.8c0 0 1.8-.6 1.1-3-.7-2.5-6.9 0-10-1.2 0 0 2.5-.8 1.7-2.9-.8-1.9-7.6-2.6-14.3 2.6-6.7 5.2-2.4 17.2 5.9 18.7 5.8 1 14.6.9 15.7-1.6.9-2-1.9-2.7-1.9-2.7s3.5 0 3.5-2.7c0-1.6-1.3-1.6-1.3-1.6s2.9-.4 2.9-3.1c.1-2.3-3.3-2.5-3.3-2.5" fill="#fff"/><path d="m28.4 46.9c2.2-1.5.3-5.1-2.4-4.7-2.3.4-6.3.4-6.3.4 0 0 1.3-.5 1-2.2-.3-1.7-2.7-4.2-12.3-.3-3.6 1.5-5.9 4.5-6.3 8.2-.4 4 1.4 8.7 4.3 10.8 3.2 2.4 10.7 3.8 17.9 2.4 4.8-.9 4.3-4 2.3-4.5 3.3-.6 3.6-3.4 2-4.2 3.7-1.2 2.7-5.8-.2-5.9m-2.6 5.1c-1.9.2-7 .6-7 .6s3.5.7 7.2.1c3.3-.5 3.1 2.8-1.5 3.4-2.2.3-5.7.4-5.7.4s3.2.5 4.9.3c4.4-.6 3.9 2.7-.2 3.3-7.3 1-13.2 0-16.1-2.1-4.1-3-6.5-13 1.5-16.7 3.6-1.7 9.5-3.2 10.4-1.2 1.2 2.9-4.2 3.2-4.2 3.2s4.4.6 10.7-.1c1.7-.2 3 1.9.9 3.1-1.8 1.1-7.9 1.5-7.9 1.5s3.3.1 7.9-.3c3.7-.3 4 3.9-.9 4.5" fill="#cccfd4"/><path d="m36.8 46.8c0 0-1.8-.6-1.1-3 .7-2.5 6.9 0 10-1.2 0 0-2.5-.8-1.7-2.9.8-1.9 7.6-2.6 14.3 2.6 6.7 5.2 2.3 17.2-5.9 18.6-5.8 1-14.6.9-15.7-1.6-.9-2 1.9-2.7 1.9-2.7s-3.5 0-3.5-2.7c0-1.6 1.3-1.6 1.3-1.6s-2.9-.4-2.9-3.1c-.1-2.2 3.3-2.4 3.3-2.4" fill="#fff"/><path d="m35.4 52.7c-1.5.8-1.2 3.6 2 4.2-2 .5-2.5 3.6 2.3 4.5 7.3 1.4 14.7.1 17.9-2.4 2.8-2.1 4.7-6.8 4.3-10.8-.4-3.7-2.7-6.7-6.3-8.2-9.7-3.9-12-1.5-12.3.3-.3 1.7 1 2.2 1 2.2 0 0-4 0-6.3-.4-2.7-.5-4.6 3.2-2.4 4.7-2.9.2-3.9 4.8-.2 5.9m1.9-5.2c4.6.4 7.9.3 7.9.3s-6.1-.4-7.9-1.5c-2.1-1.2-.8-3.3.9-3.1 6.4.8 10.7.1 10.7.1s-5.4-.4-4.2-3.2c.9-2 6.8-.5 10.4 1.2 8 3.8 5.5 13.7 1.5 16.7-2.8 2.1-8.8 3.2-16.1 2.1-4.2-.6-4.7-3.9-.2-3.3 1.7.2 4.9-.3 4.9-.3s-3.5-.1-5.7-.4c-4.6-.6-4.8-3.9-1.5-3.4 3.6.5 7.2-.1 7.2-.1s-5.1-.3-7-.6c-4.9-.6-4.6-4.8-.9-4.5" fill="#cccfd4"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fb.svg
index 8b9d472..2ac3bea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m16.601 44.721c.25 2.281 2.316 3.926 4.615 3.67l.037-.004c2.299-.256 3.961-2.316 3.711-4.598l-3.576-32.637c-.25-2.282-2.318-3.926-4.617-3.67l-.036.004c-2.299.256-3.96 2.316-3.71 4.598l3.576 32.637"/><path fill="#e6b796" d="m19.241 47.664l.042-.004c2.297-.256 3.939-2.344 3.689-4.629l-3.576-32.637c-.135-1.238-.808-2.291-1.76-2.951 1.929.181 3.532 1.686 3.75 3.679l3.574 32.638c.252 2.283-1.395 4.369-3.693 4.625l-.039.005c-1.049.116-2.051-.161-2.85-.719.278.027.569.026.863-.007"/><g fill="#ffe1bd"><path d="m45.907 36.01v-4.201c0 0-22.268 3.866-24.467-2.754l-6.03 4.806c0 0-2.927 11.962.172 19.08 4.613 10.607 26.525 14.664 34-3.385 1.485-3.591 1.686-13.621-3.676-13.548"/><path d="m38.433 38.75c-.111 2.293 1.672 4.246 3.982 4.359l.036.002c2.31.113 4.274-1.654 4.386-3.947l1.586-32.797c.11-2.293-1.674-4.247-3.984-4.36l-.037-.002c-2.311-.114-4.271 1.655-4.383 3.948l-1.586 32.797"/></g><path fill="#e6b796" d="m40.577 42.08l.043.002c2.309.113 4.257-1.686 4.368-3.982l1.585-32.796c.061-1.244-.439-2.39-1.275-3.193 1.877.486 3.223 2.227 3.126 4.23l-1.585 32.797c-.111 2.295-2.064 4.091-4.375 3.978l-.038-.002c-1.055-.052-2-.486-2.702-1.164.271.07.558.115.853.13"/><g fill="#ffe1bd"><path d="m22.296 26.334c0-2.347 1.867-4.251 4.173-4.251h.065c2.306 0 4.175 1.904 4.175 4.251v6.574c0 2.348-1.869 4.254-4.175 4.254h-.065c-2.306 0-4.173-1.906-4.173-4.254v-6.574"/><path d="m30.709 25.859c0-2.347 1.864-4.251 4.171-4.251h.068c2.302 0 4.171 1.904 4.171 4.251v6.573c0 2.349-1.869 4.255-4.171 4.255h-.068c-2.307 0-4.171-1.906-4.171-4.255v-6.573"/></g><g fill="#e6b796"><path d="m25.27 35.583h.052c2.306 0 4.134-1.846 4.134-4.197v-6.577c0-.633-.135-1.234-.381-1.776.996.777 1.64 2 1.64 3.38v6.578c0 2.348-1.831 4.17-4.132 4.17h-.055c-1.682 0-3.129-1-3.789-2.465.7.548 1.579.887 2.531.887"/><path d="m33.659 35.11h.05c2.306 0 4.151-1.846 4.151-4.196v-6.578c0-.633-.139-1.234-.379-1.776.994.777 1.638 2 1.638 3.38v6.578c0 2.349-1.846 4.171-4.147 4.171h-.054c-1.682 0-3.132-1-3.792-2.465.705.549 1.581.886 2.533.886"/><path d="m40.847 31.447c-3.127-2.402-4.135.746-9.84.305-2.499-.193-4.169 4.977-.6 7.299 4.965 3.229 5.775-.498 6.898 1.11 1.193 1.71 2.441 2.153 3.395 4.087.695 1.404 7.418.08 8.393-2.543 1.869-5.04-3.281-6.441-8.246-10.258"/></g><path fill="#ffe1bd" d="m41.18 32.396c-3.249-2.501-4.299.777-10.238.316-2.597-.202-4.334 5.176-.619 7.592 5.162 3.361 6.01-.518 7.172 1.157 1.244 1.775 2.541 2.239 3.533 4.251.723 1.462-2.133 6.385-2.133 6.385s6.178 5.557 7.836 2.947c3.078-4.846 2.787-8.957 3.03-11.979.551-6.958-3.413-6.699-8.578-10.669"/><g fill="#e6b796"><path d="m47.539 36.561c3.527 2.15 2.304 12.01-.972 16.469-8.144 11.09-23.2 9.271-29.677 2.164 5.858 7.984 21.839 10.433 30.624-1.024 3.516-4.591 5.647-15.744.025-17.609"/><path d="m40.26 45.767c.222.452.104 1.237-.168 2.103.544-1.307.955-2.681.629-3.345-.992-2.01-1.625-2.473-2.867-4.251-1.17-1.676-2.01 2.205-7.177-1.156-1.909-1.242-2.37-3.266-2.02-4.912-.958 1.721-.872 4.571 1.562 6.156 5.164 3.359 6.01-.52 7.176 1.154 1.239 1.778 1.875 2.24 2.866 4.251"/><path d="m27.733 53.707c0-6.521 4.707-11.863 10.694-12.404-.729-.205-1.49-.33-2.282-.33-5.128 0-9.285 4.43-9.285 9.892 0 1.575.355 3.058.972 4.378-.058-.506-.099-1.016-.099-1.536"/><path d="m25.899 41.488c-1.01-.287-2.02-.179-2.91.225.383.025.768.082 1.151.193 2.938.844 4.717 3.978 4.114 7.114.357-.485.637-1.048.795-1.683.646-2.544-.763-5.161-3.15-5.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.1 47.3c.4 2.3 2.7 3.8 5.1 3.4 2.4-.4 4-2.6 3.5-4.9l-6-32.7c-.4-2.3-2.7-3.8-5.1-3.4-2.4.4-4 2.6-3.5 4.9l6 32.7" fill="#ffe1bd"/><path d="m21 50.1c2.4-.4 4-2.6 3.6-4.9l-6-32.7c-.2-1.2-1-2.3-2-2.9 2 .1 3.8 1.5 4.2 3.5l6 32.7c.4 2.3-1.1 4.5-3.5 4.9-1.1.2-2.1 0-3-.5.1 0 .4 0 .7-.1" fill="#e6b796"/><g fill="#ffe1bd"><path d="m47.1 34.4c0 0-23.1 2-25.4-4.7l-6.1 4.5c0 0-1.9 11 1.1 18.4 3.2 7.9 13.7 7.5 13.7 7.5 10.8 2.2 15.2.5 19.7-9.9 1.6-3.7-3-15.8-3-15.8"/><path d="m39.5 39.2c-.1 2.3 1.7 4.3 4.1 4.4 2.4.1 4.5-1.7 4.6-4l1.8-33.2c.1-2.3-1.7-4.3-4.1-4.4-2.4-.1-4.5 1.7-4.6 4l-1.8 33.2"/></g><path d="m41.8 42.6c2.4.1 4.5-1.7 4.6-4l1.6-33.3c.1-1.3-.5-2.4-1.3-3.2 2 .5 3.4 2.3 3.3 4.3l-1.7 33.2c-.1 2.3-2.2 4.1-4.6 4-1.1-.1-2.1-.5-2.8-1.2.3.1.6.1.9.2" fill="#e6b796"/><g fill="#ffe1bd"><path d="m22.7 26.6c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3v-6.7"/><path d="m31.5 26.1c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3 0 0 0-6.7 0-6.7"/></g><g fill="#e6b796"><path d="m25.8 36c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.5 1.6.9 2.6.9"/><path d="m34.6 35.5c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.6 1.6.9 2.6.9"/><path d="m43.5 41.7c-5.9-2.1-16.3 1.8-14.9 12 0-9.6 8.9-11.9 13.9-11.9.6 0 1-.1 1-.1"/><path d="m42.1 31.8c-3.3-2.4-4.3.8-10.2.3-2.6-.2-4.3 5-.6 7.4 5.2 3.3 6-.5 7.2 1.1 1.2 1.7 2.5 2.2 3.5 4.1.7 1.4 6.7.1 7.7-2.6 1.9-5-2.5-6.4-7.6-10.3"/></g><path d="m42.4 32.8c-3.4-2.5-4.5.8-10.7.3-2.7-.2-4.5 5.2-.6 7.7 5.4 3.4 6.3-.5 7.5 1.2 1.3 1.8 2.6 2.3 3.7 4.3.8 1.5-2.2 6.5-2.2 6.5s5.4 5.6 7.1 3c3.2-4.9 3.7-7.7 4-10.8.5-7.2-3.4-8.2-8.8-12.2" fill="#ffe1bd"/><g fill="#e6b796"><path d="m41.4 46.3c.2.5.1 1.3-.2 2.1.6-1.3 1-2.7.7-3.4-1-2-1.7-2.5-3-4.3-1.2-1.7-2.1 2.2-7.5-1.2-2-1.3-2.5-3.3-2.1-5-1 1.7-.9 4.6 1.6 6.2 5.4 3.4 6.3-.5 7.5 1.2 1.4 1.9 2 2.4 3 4.4"/><path d="m46.6 34.9c6.9 5.3 3.9 15.7.6 20.1-5.2 6.9-10 5.9-16.7 4.5 0 0-8.8 1-13.6-6.8 3 8.2 13.6 7.8 13.6 7.8 7.2 2.2 12.2 2.7 17.7-4.4 3.4-4.5 7.2-16.9-1.6-21.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fc.svg
index b820679..edbd0b2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m16.601 44.721c.25 2.281 2.316 3.926 4.615 3.67l.036-.004c2.299-.256 3.962-2.316 3.712-4.598l-3.576-32.637c-.25-2.282-2.318-3.927-4.617-3.671l-.036.005c-2.299.256-3.96 2.316-3.71 4.598l3.576 32.637"/><path fill="#e0a372" d="m19.241 47.664l.042-.004c2.298-.256 3.939-2.344 3.688-4.629l-3.576-32.637c-.135-1.238-.808-2.29-1.76-2.95 1.929.181 3.531 1.686 3.75 3.679l3.575 32.637c.251 2.283-1.396 4.369-3.694 4.625l-.038.005c-1.05.116-2.052-.161-2.851-.719.279.027.57.026.864-.007"/><g fill="#fed0ac"><path d="m45.908 36.01v-4.2c0 0-22.269 3.865-24.468-2.754l-6.03 4.806c0 0-2.927 11.962.172 19.08 4.612 10.607 26.525 14.664 34-3.385 1.485-3.592 1.686-13.622-3.676-13.549"/><path d="m38.433 38.75c-.11 2.293 1.672 4.246 3.982 4.359l.037.002c2.31.113 4.273-1.654 4.385-3.947l1.586-32.797c.111-2.293-1.674-4.246-3.983-4.359l-.037-.002c-2.311-.114-4.272 1.655-4.384 3.948l-1.586 32.796"/></g><path fill="#e0a372" d="m40.578 42.08l.042.002c2.309.113 4.258-1.686 4.369-3.982l1.585-32.796c.06-1.244-.439-2.391-1.276-3.193 1.877.485 3.224 2.227 3.127 4.229l-1.586 32.797c-.111 2.295-2.063 4.091-4.374 3.978l-.038-.002c-1.055-.052-2-.486-2.702-1.164.27.071.558.116.853.131"/><g fill="#fed0ac"><path d="m22.296 26.334c0-2.347 1.867-4.251 4.173-4.251h.065c2.306 0 4.175 1.904 4.175 4.251v6.574c0 2.348-1.869 4.254-4.175 4.254h-.065c-2.306 0-4.173-1.906-4.173-4.254v-6.574"/><path d="m30.709 25.859c0-2.347 1.864-4.251 4.17-4.251h.069c2.302 0 4.171 1.904 4.171 4.251v6.573c0 2.349-1.869 4.255-4.171 4.255h-.068c-2.306 0-4.17-1.906-4.17-4.255v-6.573z"/></g><g fill="#e0a372"><path d="m25.26 35.583h.053c2.305 0 4.133-1.846 4.133-4.196v-6.577c0-.633-.135-1.234-.38-1.776.996.777 1.64 2 1.64 3.381v6.578c0 2.348-1.831 4.17-4.133 4.17h-.054c-1.682 0-3.13-1-3.79-2.465.701.546 1.58.885 2.531.885"/><path d="m33.659 35.11h.051c2.305 0 4.15-1.846 4.15-4.195v-6.578c0-.633-.139-1.234-.378-1.775.994.776 1.638 2 1.638 3.38v6.578c0 2.349-1.846 4.171-4.148 4.171h-.053c-1.682 0-3.133-1-3.793-2.465.705.547 1.582.884 2.533.884"/><path d="m40.848 31.447c-3.128-2.402-4.136.746-9.841.305-2.498-.193-4.168 4.977-.599 7.299 4.964 3.229 5.775-.498 6.899 1.11 1.193 1.71 2.44 2.153 3.394 4.087.695 1.404 7.418.08 8.394-2.543 1.868-5.04-3.283-6.441-8.247-10.258"/></g><path fill="#fed0ac" d="m41.18 32.396c-3.249-2.501-4.3.776-10.24.316-2.596-.202-4.334 5.176-.619 7.592 5.163 3.361 6.01-.518 7.172 1.157 1.244 1.775 2.541 2.239 3.534 4.251.722 1.462-2.134 6.385-2.134 6.385s6.178 5.557 7.837 2.947c3.077-4.846 2.786-8.957 3.03-11.979.551-6.958-3.412-6.699-8.577-10.669"/><g fill="#e0a372"><path d="m47.54 36.561c3.527 2.15 2.303 12.01-.972 16.469-8.144 11.09-23.2 9.271-29.678 2.164 5.858 7.984 21.839 10.433 30.624-1.024 3.516-4.591 5.647-15.744.026-17.609"/><path d="m40.26 45.767c.223.452.104 1.237-.168 2.103.545-1.307.955-2.681.629-3.345-.992-2.01-1.625-2.473-2.867-4.251-1.17-1.676-2.01 2.205-7.176-1.156-1.91-1.242-2.371-3.266-2.02-4.912-.958 1.721-.873 4.571 1.562 6.156 5.164 3.359 6.01-.52 7.175 1.154 1.24 1.778 1.876 2.24 2.866 4.251"/><path d="m27.733 53.707c0-6.521 4.708-11.863 10.696-12.404-.73-.205-1.49-.33-2.282-.33-5.128 0-9.286 4.43-9.286 9.892 0 1.575.355 3.058.972 4.378-.059-.506-.1-1.016-.1-1.536"/><path d="m25.899 41.488c-1.01-.287-2.02-.179-2.909.225.382.025.767.082 1.151.193 2.938.844 4.717 3.978 4.113 7.114.357-.485.638-1.048.796-1.683.646-2.544-.764-5.161-3.151-5.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.1 47.3c.4 2.3 2.7 3.8 5.1 3.4 2.4-.4 4-2.6 3.5-4.9l-6-32.7c-.4-2.3-2.7-3.8-5.1-3.4-2.4.4-4 2.6-3.5 4.9l6 32.7" fill="#fed0ac"/><path d="m21 50.1c2.4-.4 4-2.6 3.6-4.9l-6-32.7c-.2-1.2-1-2.3-2-2.9 2 .1 3.8 1.5 4.2 3.5l6 32.7c.4 2.3-1.1 4.5-3.5 4.9-1.1.2-2.1 0-3-.5.1 0 .4 0 .7-.1" fill="#e0a372"/><g fill="#fed0ac"><path d="m47.1 34.4c0 0-23.1 2-25.4-4.7l-6.1 4.5c0 0-1.9 11 1.1 18.4 3.2 7.9 13.7 7.5 13.7 7.5 10.8 2.2 15.2.5 19.7-9.9 1.6-3.7-3-15.8-3-15.8"/><path d="m39.5 39.2c-.1 2.3 1.7 4.3 4.1 4.4 2.4.1 4.5-1.7 4.6-4l1.7-33.2c.1-2.3-1.7-4.3-4.1-4.4-2.4-.1-4.5 1.7-4.6 4l-1.7 33.2"/></g><path d="m41.8 42.6c2.4.1 4.5-1.7 4.6-4l1.6-33.3c.1-1.3-.5-2.4-1.3-3.2 2 .5 3.4 2.3 3.3 4.3l-1.7 33.2c-.1 2.3-2.2 4.1-4.6 4-1.1-.1-2.1-.5-2.8-1.2.3.1.6.1.9.2" fill="#e0a372"/><g fill="#fed0ac"><path d="m22.7 26.6c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3v-6.7"/><path d="m31.5 26.1c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3 0 0 0-6.7 0-6.7"/></g><g fill="#e0a372"><path d="m25.8 36c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.5 1.6.9 2.6.9"/><path d="m34.6 35.5c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.6 1.6.9 2.6.9"/><path d="m43.5 41.7c-5.9-2.1-16.3 1.8-14.9 12 0-9.6 8.9-11.9 13.9-11.9.6 0 1-.1 1-.1"/><path d="m42.1 31.8c-3.3-2.4-4.3.8-10.2.3-2.6-.2-4.3 5-.6 7.4 5.2 3.3 6-.5 7.2 1.1 1.2 1.7 2.5 2.2 3.5 4.1.7 1.4 6.7.1 7.7-2.6 1.9-5-2.5-6.4-7.6-10.3"/></g><path d="m42.4 32.8c-3.4-2.5-4.5.8-10.7.3-2.7-.2-4.5 5.2-.6 7.7 5.4 3.4 6.3-.5 7.5 1.2 1.3 1.8 2.6 2.3 3.7 4.3.8 1.5-2.2 6.5-2.2 6.5s5.4 5.6 7.1 3c3.2-4.9 3.7-7.7 4-10.8.5-7.2-3.4-8.2-8.8-12.2" fill="#fed0ac"/><g fill="#e0a372"><path d="m41.4 46.3c.2.5.1 1.3-.2 2.1.6-1.3 1-2.7.7-3.4-1-2-1.7-2.5-3-4.3-1.2-1.7-2.1 2.2-7.5-1.2-2-1.3-2.5-3.3-2.1-5-1 1.7-.9 4.6 1.6 6.2 5.4 3.4 6.3-.5 7.5 1.2 1.4 1.9 2 2.4 3 4.4"/><path d="m46.6 34.9c6.9 5.3 3.9 15.7.6 20.1-5.2 6.9-10 5.9-16.7 4.5 0 0-8.8 1-13.6-6.8 3 8.2 13.6 7.8 13.6 7.8 7.2 2.2 12.2 2.7 17.7-4.4 3.4-4.5 7.2-16.9-1.6-21.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fd.svg
index a6d2226..39f8819 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m16.601 44.721c.25 2.281 2.316 3.926 4.616 3.67l.035-.004c2.3-.256 3.963-2.316 3.713-4.598l-3.576-32.637c-.25-2.282-2.319-3.926-4.618-3.67l-.036.004c-2.299.256-3.96 2.316-3.71 4.598l3.576 32.637"/><path fill="#b58360" d="m19.241 47.664l.042-.004c2.297-.256 3.94-2.344 3.688-4.629l-3.575-32.636c-.135-1.238-.808-2.291-1.76-2.951 1.929.181 3.531 1.686 3.75 3.679l3.576 32.637c.25 2.283-1.396 4.369-3.695 4.625l-.037.005c-1.051.116-2.052-.161-2.851-.719.277.027.568.026.862-.007"/><g fill="#d6a57c"><path d="m45.908 36.01v-4.2c0 0-22.27 3.865-24.468-2.754l-6.03 4.806c0 0-2.927 11.962.172 19.08 4.612 10.607 26.524 14.664 34-3.385 1.485-3.592 1.687-13.622-3.675-13.549"/><path d="m38.433 38.75c-.11 2.293 1.671 4.246 3.981 4.359l.037.002c2.311.113 4.274-1.654 4.386-3.947l1.585-32.796c.111-2.293-1.673-4.247-3.982-4.36l-.037-.002c-2.311-.114-4.273 1.655-4.384 3.948l-1.586 32.796"/></g><path fill="#b58360" d="m40.578 42.08l.042.002c2.308.113 4.257-1.686 4.368-3.982l1.586-32.796c.06-1.244-.439-2.39-1.276-3.193 1.877.486 3.224 2.227 3.126 4.23l-1.586 32.796c-.111 2.295-2.063 4.091-4.373 3.978l-.039-.002c-1.055-.052-2-.486-2.701-1.164.269.071.558.116.853.131"/><g fill="#d6a57c"><path d="m22.297 26.334c0-2.347 1.867-4.251 4.172-4.251h.066c2.305 0 4.174 1.904 4.174 4.251v6.574c0 2.348-1.869 4.254-4.174 4.254h-.066c-2.305 0-4.172-1.906-4.172-4.254v-6.574"/><path d="m30.709 25.859c0-2.347 1.865-4.251 4.17-4.251h.07c2.301 0 4.17 1.904 4.17 4.251v6.573c0 2.349-1.869 4.255-4.17 4.255h-.07c-2.305 0-4.17-1.906-4.17-4.255v-6.573"/></g><g fill="#b58360"><path d="m25.26 35.583h.053c2.305 0 4.133-1.846 4.133-4.196v-6.577c0-.633-.135-1.234-.379-1.776.996.777 1.639 2 1.639 3.38v6.578c0 2.348-1.83 4.17-4.132 4.17h-.054c-1.682 0-3.131-1-3.791-2.465.701.547 1.58.886 2.531.886"/><path d="m33.659 35.11h.05c2.306 0 4.151-1.846 4.151-4.195v-6.578c0-.633-.14-1.234-.378-1.776.994.777 1.637 2 1.637 3.38v6.578c0 2.349-1.846 4.171-4.147 4.171h-.054c-1.682 0-3.132-1-3.792-2.465.704.548 1.581.885 2.533.885"/><path d="m40.848 31.447c-3.129-2.402-4.137.746-9.842.305-2.498-.193-4.168 4.977-.598 7.299 4.963 3.229 5.774-.498 6.898 1.11 1.193 1.71 2.439 2.153 3.394 4.087.695 1.404 7.418.08 8.394-2.543 1.869-5.04-3.283-6.441-8.246-10.258"/></g><path fill="#d6a57c" d="m41.18 32.396c-3.25-2.501-4.301.776-10.239.316-2.597-.202-4.335 5.176-.62 7.592 5.163 3.361 6.01-.518 7.173 1.157 1.243 1.775 2.541 2.239 3.534 4.251.721 1.462-2.135 6.385-2.135 6.385s6.179 5.557 7.838 2.947c3.077-4.846 2.785-8.957 3.03-11.979.55-6.958-3.414-6.699-8.578-10.669"/><g fill="#b58360"><path d="m47.539 36.561c3.527 2.15 2.303 12.01-.971 16.469-8.145 11.09-23.2 9.271-29.678 2.164 5.857 7.984 21.838 10.433 30.623-1.024 3.516-4.591 5.648-15.744.026-17.609"/><path d="m40.26 45.767c.223.452.104 1.237-.168 2.103.545-1.307.956-2.681.63-3.345-.993-2.01-1.626-2.473-2.867-4.251-1.17-1.676-2.01 2.205-7.177-1.156-1.909-1.242-2.371-3.266-2.02-4.912-.957 1.721-.873 4.571 1.563 6.156 5.162 3.359 6.01-.52 7.174 1.154 1.241 1.778 1.876 2.24 2.866 4.251"/><path d="m27.733 53.707c0-6.521 4.708-11.863 10.694-12.404-.729-.205-1.49-.33-2.281-.33-5.129 0-9.285 4.43-9.285 9.892 0 1.575.355 3.058.971 4.378-.059-.506-.099-1.016-.099-1.536"/><path d="m25.899 41.488c-1.01-.287-2.02-.179-2.909.225.382.025.766.082 1.15.193 2.938.844 4.717 3.978 4.114 7.114.356-.485.638-1.048.796-1.683.645-2.544-.765-5.161-3.151-5.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.1 47.3c.4 2.3 2.7 3.8 5.1 3.4 2.4-.4 4-2.6 3.5-4.9l-6-32.7c-.4-2.3-2.7-3.8-5.1-3.4-2.4.4-4 2.6-3.5 4.9l6 32.7" fill="#d6a57c"/><path d="m21 50.1c2.4-.4 4-2.6 3.6-4.9l-6-32.7c-.2-1.2-1-2.3-2-2.9 2 .1 3.8 1.5 4.2 3.5l6 32.7c.4 2.3-1.1 4.5-3.5 4.9-1.1.2-2.1 0-3-.5.1 0 .4 0 .7-.1" fill="#b58360"/><g fill="#d6a57c"><path d="m47.1 34.4c0 0-23.1 2-25.4-4.7l-6.1 4.5c0 0-1.9 11 1.1 18.4 3.2 7.9 13.7 7.5 13.7 7.5 10.8 2.2 15.2.5 19.7-9.9 1.6-3.7-3-15.8-3-15.8"/><path d="m39.5 39.2c-.1 2.3 1.7 4.3 4.1 4.4 2.4.1 4.5-1.7 4.6-4l1.8-33.2c.1-2.3-1.7-4.3-4.1-4.4-2.4-.1-4.5 1.7-4.6 4l-1.8 33.2"/></g><path d="m41.8 42.6c2.4.1 4.5-1.7 4.6-4l1.6-33.3c.1-1.3-.5-2.4-1.3-3.2 2 .5 3.4 2.3 3.3 4.3l-1.7 33.2c-.1 2.3-2.2 4.1-4.6 4-1.1-.1-2.1-.5-2.8-1.2.3.1.6.1.9.2" fill="#b58360"/><g fill="#d6a57c"><path d="m22.7 26.6c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3v-6.7"/><path d="m31.5 26.1c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3 0 0 0-6.7 0-6.7"/></g><g fill="#b58360"><path d="m25.8 36c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.5 1.6.9 2.6.9"/><path d="m34.6 35.5c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.6 1.6.9 2.6.9"/><path d="m43.5 41.7c-5.9-2.1-16.3 1.8-14.9 12 0-9.6 8.9-11.9 13.9-11.9.6 0 1-.1 1-.1"/><path d="m42.1 31.8c-3.3-2.4-4.3.8-10.2.3-2.6-.2-4.3 5-.6 7.4 5.2 3.3 6-.5 7.2 1.1 1.2 1.7 2.5 2.2 3.5 4.1.7 1.4 6.7.1 7.7-2.6 1.9-5-2.5-6.4-7.6-10.3"/></g><path d="m42.4 32.8c-3.4-2.5-4.5.8-10.7.3-2.7-.2-4.5 5.2-.6 7.7 5.4 3.4 6.3-.5 7.5 1.2 1.3 1.8 2.6 2.3 3.7 4.3.8 1.5-2.2 6.5-2.2 6.5s5.4 5.6 7.1 3c3.2-4.9 3.7-7.7 4-10.8.5-7.2-3.4-8.2-8.8-12.2" fill="#d6a57c"/><g fill="#b58360"><path d="m41.4 46.3c.2.5.1 1.3-.2 2.1.6-1.3 1-2.7.7-3.4-1-2-1.7-2.5-3-4.3-1.2-1.7-2.1 2.2-7.5-1.2-2-1.3-2.5-3.3-2.1-5-1 1.7-.9 4.6 1.6 6.2 5.4 3.4 6.3-.5 7.5 1.2 1.4 1.9 2 2.4 3 4.4"/><path d="m46.6 34.9c6.9 5.3 3.9 15.7.6 20.1-5.2 6.9-10 5.9-16.7 4.5 0 0-8.8 1-13.6-6.8 3 8.2 13.6 7.8 13.6 7.8 7.2 2.2 12.2 2.7 17.7-4.4 3.4-4.5 7.2-16.9-1.6-21.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fe.svg
index 8ffb4e6..b8b1f45 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m16.601 44.721c.25 2.281 2.316 3.926 4.615 3.67l.036-.004c2.3-.256 3.962-2.316 3.712-4.598l-3.576-32.637c-.25-2.282-2.318-3.926-4.617-3.67l-.036.004c-2.299.256-3.96 2.316-3.71 4.598l3.576 32.637"/><path fill="#935e3e" d="m19.241 47.664l.042-.004c2.297-.256 3.939-2.344 3.688-4.629l-3.576-32.636c-.135-1.238-.808-2.291-1.76-2.951 1.929.181 3.531 1.686 3.75 3.679l3.575 32.637c.251 2.283-1.396 4.369-3.694 4.625l-.038.005c-1.05.116-2.052-.161-2.851-.719.279.027.57.026.864-.007"/><g fill="#b47d56"><path d="m45.907 36.01v-4.2c0 0-22.268 3.865-24.466-2.754l-6.03 4.806c0 0-2.927 11.962.172 19.08 4.612 10.607 26.524 14.664 34-3.385 1.483-3.592 1.685-13.622-3.677-13.549"/><path d="m38.433 38.75c-.111 2.293 1.671 4.246 3.981 4.359l.036.002c2.311.113 4.275-1.654 4.387-3.947l1.585-32.796c.11-2.293-1.673-4.247-3.983-4.36l-.037-.002c-2.311-.114-4.272 1.655-4.383 3.948l-1.586 32.796"/></g><path fill="#935e3e" d="m40.577 42.08l.043.002c2.308.113 4.256-1.686 4.367-3.982l1.586-32.796c.061-1.244-.439-2.39-1.275-3.193 1.877.486 3.223 2.227 3.125 4.23l-1.585 32.796c-.111 2.295-2.063 4.091-4.374 3.978l-.039-.002c-1.055-.052-2-.486-2.701-1.164.27.071.558.116.853.131"/><g fill="#b47d56"><path d="m22.296 26.334c0-2.347 1.867-4.251 4.172-4.251h.066c2.305 0 4.174 1.904 4.174 4.251v6.574c0 2.348-1.869 4.254-4.174 4.254h-.066c-2.305 0-4.172-1.906-4.172-4.254v-6.574"/><path d="m30.708 25.859c0-2.347 1.865-4.251 4.17-4.251h.069c2.301 0 4.17 1.904 4.17 4.251v6.573c0 2.349-1.869 4.255-4.17 4.255h-.069c-2.305 0-4.17-1.906-4.17-4.255v-6.573"/></g><g fill="#935e3e"><path d="m25.26 35.583h.052c2.306 0 4.134-1.846 4.134-4.196v-6.577c0-.633-.135-1.234-.38-1.776.996.777 1.639 2 1.639 3.38v6.578c0 2.348-1.83 4.17-4.131 4.17h-.055c-1.682 0-3.13-1-3.79-2.465.7.547 1.579.886 2.531.886"/><path d="m33.659 35.11h.049c2.307 0 4.152-1.846 4.152-4.195v-6.578c0-.633-.14-1.234-.379-1.776.994.777 1.637 2 1.637 3.38v6.578c0 2.349-1.846 4.171-4.146 4.171h-.055c-1.682 0-3.13-1-3.791-2.465.705.548 1.581.885 2.533.885"/><path d="m40.847 31.447c-3.128-2.402-4.136.746-9.84.305-2.499-.193-4.169 4.977-.599 7.299 4.963 3.229 5.775-.498 6.898 1.11 1.193 1.71 2.44 2.153 3.395 4.087.695 1.404 7.418.08 8.393-2.543 1.868-5.04-3.283-6.441-8.247-10.258"/></g><path fill="#b47d56" d="m41.18 32.396c-3.25-2.501-4.3.776-10.238.316-2.598-.202-4.335 5.176-.62 7.592 5.163 3.361 6.01-.518 7.172 1.157 1.243 1.775 2.541 2.239 3.533 4.251.722 1.462-2.134 6.385-2.134 6.385s6.179 5.557 7.837 2.947c3.078-4.846 2.786-8.957 3.03-11.979.552-6.958-3.413-6.699-8.577-10.669"/><g fill="#935e3e"><path d="m47.538 36.561c3.527 2.15 2.304 12.01-.971 16.469-8.145 11.09-23.2 9.271-29.677 2.164 5.858 7.984 21.838 10.433 30.623-1.024 3.516-4.591 5.648-15.744.025-17.609"/><path d="m40.26 45.767c.222.452.104 1.237-.168 2.103.544-1.307.956-2.681.63-3.345-.993-2.01-1.626-2.473-2.867-4.251-1.17-1.676-2.01 2.205-7.177-1.156-1.908-1.242-2.37-3.266-2.02-4.912-.957 1.721-.872 4.571 1.563 6.156 5.163 3.359 6.01-.52 7.174 1.154 1.24 1.778 1.875 2.24 2.866 4.251"/><path d="m27.734 53.707c0-6.521 4.707-11.863 10.693-12.404-.729-.205-1.49-.33-2.281-.33-5.128 0-9.285 4.43-9.285 9.892 0 1.575.355 3.058.971 4.378-.058-.506-.098-1.016-.098-1.536"/><path d="m25.9 41.488c-1.01-.287-2.02-.179-2.91.225.383.025.767.082 1.15.193 2.939.844 4.717 3.978 4.115 7.114.356-.485.637-1.048.795-1.683.645-2.544-.764-5.161-3.15-5.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.1 47.3c.4 2.3 2.7 3.8 5.1 3.4 2.4-.4 4-2.6 3.5-4.9l-6-32.7c-.4-2.3-2.7-3.8-5.1-3.4-2.4.4-4 2.6-3.5 4.9l6 32.7" fill="#b47d56"/><path d="m21 50.1c2.4-.4 4-2.6 3.6-4.9l-6-32.7c-.2-1.2-1-2.3-2-2.9 2 .1 3.8 1.5 4.2 3.5l6 32.7c.4 2.3-1.1 4.5-3.5 4.9-1.1.2-2.1 0-3-.5.1 0 .4 0 .7-.1" fill="#935e3e"/><g fill="#b47d56"><path d="m47.1 34.4c0 0-23.1 2-25.4-4.7l-6.1 4.5c0 0-1.9 11 1.1 18.4 3.2 7.9 13.7 7.5 13.7 7.5 10.8 2.2 15.2.5 19.7-9.9 1.6-3.7-3-15.8-3-15.8"/><path d="m39.5 39.2c-.1 2.3 1.7 4.3 4.1 4.4 2.4.1 4.5-1.7 4.6-4l1.7-33.2c.1-2.3-1.7-4.3-4.1-4.4-2.4-.1-4.5 1.7-4.6 4l-1.7 33.2"/></g><path d="m41.8 42.6c2.4.1 4.5-1.7 4.6-4l1.6-33.3c.1-1.3-.5-2.4-1.3-3.2 2 .5 3.4 2.3 3.3 4.3l-1.7 33.2c-.1 2.3-2.2 4.1-4.6 4-1.1-.1-2.1-.5-2.8-1.2.3.1.6.1.9.2" fill="#935e3e"/><g fill="#b47d56"><path d="m22.7 26.6c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3v-6.7"/><path d="m31.5 26.1c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3 0 0 0-6.7 0-6.7"/></g><g fill="#935e3e"><path d="m25.8 36c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.5 1.6.9 2.6.9"/><path d="m34.6 35.5c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.6 1.6.9 2.6.9"/><path d="m43.5 41.7c-5.9-2.1-16.3 1.8-14.9 12 0-9.6 8.9-11.9 13.9-11.9.6 0 1-.1 1-.1"/><path d="m42.1 31.8c-3.3-2.4-4.3.8-10.2.3-2.6-.2-4.3 5-.6 7.4 5.2 3.3 6-.5 7.2 1.1 1.2 1.7 2.5 2.2 3.5 4.1.7 1.4 6.7.1 7.7-2.6 1.9-5-2.5-6.4-7.6-10.3"/></g><path d="m42.4 32.8c-3.4-2.5-4.5.8-10.7.3-2.7-.2-4.5 5.2-.6 7.7 5.4 3.4 6.3-.5 7.5 1.2 1.3 1.8 2.6 2.3 3.7 4.3.8 1.5-2.2 6.5-2.2 6.5s5.4 5.6 7.1 3c3.2-4.9 3.7-7.7 4-10.8.5-7.2-3.4-8.2-8.8-12.2" fill="#b47d56"/><g fill="#935e3e"><path d="m41.4 46.3c.2.5.1 1.3-.2 2.1.6-1.3 1-2.7.7-3.4-1-2-1.7-2.5-3-4.3-1.2-1.7-2.1 2.2-7.5-1.2-2-1.3-2.5-3.3-2.1-5-1 1.7-.9 4.6 1.6 6.2 5.4 3.4 6.3-.5 7.5 1.2 1.4 1.9 2 2.4 3 4.4"/><path d="m46.6 34.9c6.9 5.3 3.9 15.7.6 20.1-5.2 6.9-10 5.9-16.7 4.5 0 0-8.8 1-13.6-6.8 3 8.2 13.6 7.8 13.6 7.8 7.2 2.2 12.2 2.7 17.7-4.4 3.4-4.5 7.2-16.9-1.6-21.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3ff.svg
index f48a8f6..1dfacef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f918-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m16.601 44.721c.25 2.281 2.316 3.926 4.615 3.67l.037-.004c2.299-.256 3.961-2.316 3.711-4.598l-3.576-32.637c-.25-2.282-2.318-3.926-4.617-3.67l-.036.004c-2.299.256-3.96 2.316-3.71 4.598l3.576 32.637"/><path fill="#705041" d="m19.241 47.664l.042-.004c2.297-.256 3.939-2.344 3.689-4.629l-3.576-32.636c-.135-1.238-.808-2.291-1.76-2.951 1.929.181 3.532 1.686 3.75 3.679l3.574 32.637c.252 2.283-1.395 4.369-3.693 4.625l-.039.005c-1.049.116-2.051-.161-2.85-.719.278.027.569.026.863-.007"/><g fill="#8a6859"><path d="m45.907 36.01v-4.2c0 0-22.268 3.865-24.467-2.754l-6.03 4.806c0 0-2.927 11.962.172 19.08 4.613 10.607 26.525 14.664 34-3.385 1.485-3.592 1.686-13.622-3.676-13.549"/><path d="m38.433 38.75c-.111 2.293 1.672 4.246 3.982 4.359l.036.002c2.31.113 4.274-1.654 4.386-3.947l1.586-32.796c.11-2.293-1.674-4.247-3.984-4.36l-.037-.002c-2.311-.114-4.271 1.655-4.383 3.948l-1.586 32.796"/></g><path fill="#705041" d="m40.577 42.08l.043.002c2.309.113 4.257-1.686 4.368-3.982l1.585-32.796c.061-1.244-.439-2.39-1.275-3.193 1.877.486 3.223 2.227 3.126 4.23l-1.585 32.796c-.111 2.295-2.064 4.091-4.375 3.978l-.038-.002c-1.055-.052-2-.486-2.702-1.164.271.071.558.116.853.131"/><g fill="#8a6859"><path d="m22.296 26.334c0-2.347 1.867-4.251 4.173-4.251h.065c2.306 0 4.175 1.904 4.175 4.251v6.574c0 2.348-1.869 4.254-4.175 4.254h-.065c-2.306 0-4.173-1.906-4.173-4.254v-6.574"/><path d="m30.709 25.859c0-2.347 1.864-4.251 4.171-4.251h.068c2.302 0 4.171 1.904 4.171 4.251v6.573c0 2.349-1.869 4.255-4.171 4.255h-.068c-2.307 0-4.171-1.906-4.171-4.255v-6.573"/></g><g fill="#705041"><path d="m25.27 35.583h.052c2.306 0 4.134-1.846 4.134-4.196v-6.577c0-.633-.135-1.234-.381-1.776.996.777 1.64 2 1.64 3.38v6.578c0 2.348-1.831 4.17-4.132 4.17h-.055c-1.682 0-3.129-1-3.789-2.465.7.547 1.579.886 2.531.886"/><path d="m33.659 35.11h.05c2.306 0 4.151-1.846 4.151-4.195v-6.578c0-.633-.139-1.234-.379-1.776.994.777 1.638 2 1.638 3.38v6.578c0 2.349-1.846 4.171-4.147 4.171h-.054c-1.682 0-3.132-1-3.792-2.465.705.548 1.581.885 2.533.885"/><path d="m40.847 31.447c-3.127-2.402-4.135.746-9.84.305-2.499-.193-4.169 4.977-.6 7.299 4.965 3.229 5.775-.498 6.898 1.11 1.193 1.71 2.441 2.153 3.395 4.087.695 1.404 7.418.08 8.393-2.543 1.869-5.04-3.281-6.441-8.246-10.258"/></g><path fill="#8a6859" d="m41.18 32.396c-3.249-2.501-4.299.776-10.238.316-2.597-.202-4.334 5.176-.619 7.592 5.162 3.361 6.01-.518 7.172 1.157 1.244 1.775 2.541 2.239 3.533 4.251.723 1.462-2.133 6.385-2.133 6.385s6.178 5.557 7.836 2.947c3.078-4.846 2.787-8.957 3.03-11.979.551-6.958-3.413-6.699-8.578-10.669"/><g fill="#705041"><path d="m47.539 36.561c3.527 2.15 2.304 12.01-.972 16.469-8.144 11.09-23.2 9.271-29.677 2.164 5.858 7.984 21.839 10.433 30.624-1.024 3.516-4.591 5.647-15.744.025-17.609"/><path d="m40.26 45.767c.222.452.104 1.237-.168 2.103.544-1.307.955-2.681.629-3.345-.992-2.01-1.625-2.473-2.867-4.251-1.17-1.676-2.01 2.205-7.177-1.156-1.909-1.242-2.37-3.266-2.02-4.912-.958 1.721-.872 4.571 1.562 6.156 5.164 3.359 6.01-.52 7.176 1.154 1.239 1.778 1.875 2.24 2.866 4.251"/><path d="m27.733 53.707c0-6.521 4.707-11.863 10.694-12.404-.729-.205-1.49-.33-2.282-.33-5.128 0-9.285 4.43-9.285 9.892 0 1.575.355 3.058.972 4.378-.058-.506-.099-1.016-.099-1.536"/><path d="m25.899 41.488c-1.01-.287-2.02-.179-2.91.225.383.025.768.082 1.151.193 2.938.844 4.717 3.978 4.114 7.114.357-.485.637-1.048.795-1.683.646-2.544-.763-5.161-3.15-5.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.1 47.3c.4 2.3 2.7 3.8 5.1 3.4 2.4-.4 4-2.6 3.5-4.9l-6-32.7c-.4-2.3-2.7-3.8-5.1-3.4-2.4.4-4 2.6-3.5 4.9l6 32.7" fill="#8a6859"/><path d="m21 50.1c2.4-.4 4-2.6 3.6-4.9l-6-32.7c-.2-1.2-1-2.3-2-2.9 2 .1 3.8 1.5 4.2 3.5l6 32.7c.4 2.3-1.1 4.5-3.5 4.9-1.1.2-2.1 0-3-.5.1 0 .4 0 .7-.1" fill="#705041"/><g fill="#8a6859"><path d="m47.1 34.4c0 0-23.1 2-25.4-4.7l-6.1 4.5c0 0-1.9 11 1.1 18.4 3.2 7.9 13.7 7.5 13.7 7.5 10.8 2.2 15.2.5 19.7-9.9 1.6-3.7-3-15.8-3-15.8"/><path d="m39.5 39.2c-.1 2.3 1.7 4.3 4.1 4.4 2.4.1 4.5-1.7 4.6-4l1.8-33.2c.1-2.3-1.7-4.3-4.1-4.4-2.4-.1-4.5 1.7-4.6 4l-1.8 33.2"/></g><path d="m41.8 42.6c2.4.1 4.5-1.7 4.6-4l1.6-33.3c.1-1.3-.5-2.4-1.3-3.2 2 .5 3.4 2.3 3.3 4.3l-1.7 33.2c-.1 2.3-2.2 4.1-4.6 4-1.1-.1-2.1-.5-2.8-1.2.3.1.6.1.9.2" fill="#705041"/><g fill="#8a6859"><path d="m22.7 26.6c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3v-6.7"/><path d="m31.5 26.1c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3 0 0 0-6.7 0-6.7"/></g><g fill="#705041"><path d="m25.8 36c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.5 1.6.9 2.6.9"/><path d="m34.6 35.5c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.6 1.6.9 2.6.9"/><path d="m43.5 41.7c-5.9-2.1-16.3 1.8-14.9 12 0-9.6 8.9-11.9 13.9-11.9.6 0 1-.1 1-.1"/><path d="m42.1 31.8c-3.3-2.4-4.3.8-10.2.3-2.6-.2-4.3 5-.6 7.4 5.2 3.3 6-.5 7.2 1.1 1.2 1.7 2.5 2.2 3.5 4.1.7 1.4 6.7.1 7.7-2.6 1.9-5-2.5-6.4-7.6-10.3"/></g><path d="m42.4 32.8c-3.4-2.5-4.5.8-10.7.3-2.7-.2-4.5 5.2-.6 7.7 5.4 3.4 6.3-.5 7.5 1.2 1.3 1.8 2.6 2.3 3.7 4.3.8 1.5-2.2 6.5-2.2 6.5s5.4 5.6 7.1 3c3.2-4.9 3.7-7.7 4-10.8.5-7.2-3.4-8.2-8.8-12.2" fill="#8a6859"/><g fill="#705041"><path d="m41.4 46.3c.2.5.1 1.3-.2 2.1.6-1.3 1-2.7.7-3.4-1-2-1.7-2.5-3-4.3-1.2-1.7-2.1 2.2-7.5-1.2-2-1.3-2.5-3.3-2.1-5-1 1.7-.9 4.6 1.6 6.2 5.4 3.4 6.3-.5 7.5 1.2 1.4 1.9 2 2.4 3 4.4"/><path d="m46.6 34.9c6.9 5.3 3.9 15.7.6 20.1-5.2 6.9-10 5.9-16.7 4.5 0 0-8.8 1-13.6-6.8 3 8.2 13.6 7.8 13.6 7.8 7.2 2.2 12.2 2.7 17.7-4.4 3.4-4.5 7.2-16.9-1.6-21.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f918.svg b/build/js/jsxc/lib/emojione/assets/svg/1f918.svg
index c5feff8..125c338 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f918.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f918.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m16.601 44.718c.25 2.283 2.316 3.927 4.616 3.671l.035-.004c2.3-.257 3.963-2.315 3.713-4.599l-3.576-32.635c-.25-2.282-2.319-3.926-4.618-3.67l-.036.004c-2.299.256-3.96 2.316-3.71 4.598l3.576 32.635"/><path fill="#eba352" d="m19.241 47.663l.042-.005c2.297-.257 3.94-2.344 3.688-4.629l-3.575-32.636c-.135-1.238-.808-2.291-1.76-2.951 1.929.181 3.531 1.686 3.75 3.679l3.576 32.635c.25 2.285-1.396 4.37-3.695 4.626l-.037.005c-1.051.116-2.052-.162-2.851-.719.277.028.568.027.862-.005"/><g fill="#ffdd67"><path d="m45.908 36.01v-4.2c0 0-22.27 3.865-24.468-2.754l-6.03 4.806c0 0-2.927 11.961.172 19.08 4.612 10.605 26.524 14.664 34-3.387 1.485-3.589 1.687-13.619-3.675-13.547"/><path d="m38.433 38.748c-.11 2.293 1.671 4.247 3.981 4.36l.037.002c2.311.113 4.274-1.656 4.386-3.949l1.585-32.795c.111-2.293-1.673-4.247-3.982-4.36l-.037-.002c-2.311-.114-4.273 1.655-4.384 3.948l-1.586 32.796"/></g><path fill="#eba352" d="m40.578 42.08l.042.002c2.308.114 4.257-1.686 4.368-3.982l1.586-32.796c.06-1.244-.439-2.39-1.276-3.193 1.877.486 3.224 2.227 3.126 4.23l-1.586 32.795c-.111 2.295-2.063 4.092-4.373 3.979l-.039-.002c-1.055-.052-2-.486-2.701-1.164.269.072.558.117.853.131"/><g fill="#ffdd67"><path d="m22.297 26.333c0-2.347 1.867-4.251 4.172-4.251h.066c2.305 0 4.174 1.904 4.174 4.251v6.573c0 2.349-1.869 4.255-4.174 4.255h-.066c-2.305 0-4.172-1.906-4.172-4.255v-6.573"/><path d="m30.709 25.858c0-2.347 1.865-4.251 4.17-4.251h.07c2.301 0 4.17 1.904 4.17 4.251v6.573c0 2.348-1.869 4.254-4.17 4.254h-.07c-2.305 0-4.17-1.906-4.17-4.254v-6.573"/></g><g fill="#eba352"><path d="m25.26 35.581h.053c2.305 0 4.133-1.846 4.133-4.195v-6.578c0-.633-.135-1.234-.379-1.776.996.777 1.639 2 1.639 3.38v6.577c0 2.348-1.83 4.171-4.132 4.171h-.054c-1.682 0-3.131-1-3.791-2.466.701.549 1.58.887 2.531.887"/><path d="m33.659 35.11h.05c2.306 0 4.151-1.846 4.151-4.196v-6.578c0-.633-.14-1.234-.378-1.776.994.777 1.637 2 1.637 3.38v6.578c0 2.347-1.846 4.17-4.147 4.17h-.054c-1.682 0-3.132-1-3.792-2.466.704.55 1.581.888 2.533.888"/><path d="m40.848 31.446c-3.129-2.402-4.137.746-9.842.304-2.498-.192-4.168 4.976-.598 7.3 4.963 3.228 5.774-.499 6.898 1.109 1.193 1.709 2.439 2.153 3.394 4.087.695 1.403 7.418.08 8.394-2.543 1.869-5.04-3.283-6.441-8.246-10.257"/></g><path fill="#ffdd67" d="m41.18 32.394c-3.25-2.5-4.301.777-10.239.318-2.597-.203-4.335 5.174-.62 7.591 5.163 3.36 6.01-.519 7.173 1.156 1.243 1.775 2.541 2.238 3.534 4.25.721 1.463-2.135 6.385-2.135 6.385s6.179 5.558 7.838 2.948c3.077-4.847 2.785-8.957 3.03-11.979.55-6.959-3.414-6.699-8.578-10.669"/><g fill="#eba352"><path d="m47.539 36.559c3.527 2.149 2.303 12.01-.971 16.47-8.145 11.09-23.2 9.27-29.678 2.162 5.857 7.986 21.838 10.434 30.623-1.023 3.516-4.591 5.648-15.743.026-17.609"/><path d="m40.26 45.765c.223.452.104 1.236-.168 2.104.545-1.307.956-2.682.63-3.346-.993-2.01-1.626-2.473-2.867-4.25-1.17-1.677-2.01 2.203-7.177-1.157-1.909-1.242-2.371-3.265-2.02-4.913-.957 1.722-.873 4.572 1.563 6.157 5.162 3.358 6.01-.52 7.174 1.155 1.241 1.777 1.876 2.238 2.866 4.25"/><path d="m27.733 53.706c0-6.521 4.708-11.865 10.694-12.406-.729-.204-1.49-.328-2.281-.328-5.129 0-9.285 4.43-9.285 9.891 0 1.576.355 3.057.971 4.377-.059-.505-.099-1.014-.099-1.534"/><path d="m25.899 41.487c-1.01-.289-2.02-.18-2.909.224.382.025.766.081 1.15.192 2.938.846 4.717 3.979 4.114 7.115.356-.484.638-1.047.796-1.682.645-2.544-.765-5.161-3.151-5.849"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m18.1 47.3c.4 2.3 2.7 3.8 5.1 3.4 2.4-.4 4-2.6 3.5-4.9l-6-32.7c-.4-2.3-2.7-3.8-5.1-3.4-2.4.4-4 2.6-3.5 4.9l6 32.7" fill="#ffdd67"/><path d="m21 50.1c2.4-.4 4-2.6 3.6-4.9l-6-32.7c-.2-1.2-1-2.3-2-2.9 2 .1 3.8 1.5 4.2 3.5l6 32.7c.4 2.3-1.1 4.5-3.5 4.9-1.1.2-2.1 0-3-.5.1 0 .4 0 .7-.1" fill="#eba352"/><g fill="#ffdd67"><path d="m47.1 34.4c0 0-23.1 2-25.4-4.7l-6.1 4.5c0 0-1.9 11 1.1 18.4 3.2 7.9 13.7 7.5 13.7 7.5 10.8 2.2 15.2.5 19.7-9.9 1.6-3.7-3-15.8-3-15.8"/><path d="m39.5 39.2c-.1 2.3 1.7 4.3 4.1 4.4 2.4.1 4.5-1.7 4.6-4l1.8-33.2c.1-2.3-1.7-4.3-4.1-4.4-2.4-.1-4.5 1.7-4.6 4l-1.8 33.2"/></g><path d="m41.8 42.6c2.4.1 4.5-1.7 4.6-4l1.6-33.3c.1-1.3-.5-2.4-1.3-3.2 2 .5 3.4 2.3 3.3 4.3l-1.7 33.2c-.1 2.3-2.2 4.1-4.6 4-1.1-.1-2.1-.5-2.8-1.2.3.1.6.1.9.2" fill="#eba352"/><g fill="#ffdd67"><path d="m22.7 26.6c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3v-6.7"/><path d="m31.5 26.1c0-2.4 1.9-4.3 4.3-4.3h.1c2.4 0 4.3 1.9 4.3 4.3v6.7c0 2.4-1.9 4.3-4.3 4.3h-.1c-2.4 0-4.3-1.9-4.3-4.3 0 0 0-6.7 0-6.7"/></g><g fill="#eba352"><path d="m25.8 36c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.5 1.6.9 2.6.9"/><path d="m34.6 35.5c2.5 0 4.4-1.9 4.4-4.2v-6.7c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.7c0 2.4-1.9 4.2-4.3 4.2h-.1c-1.8 0-3.3-1-3.9-2.5.7.6 1.6.9 2.6.9"/><path d="m43.5 41.7c-5.9-2.1-16.3 1.8-14.9 12 0-9.6 8.9-11.9 13.9-11.9.6 0 1-.1 1-.1"/><path d="m42.1 31.8c-3.3-2.4-4.3.8-10.2.3-2.6-.2-4.3 5-.6 7.4 5.2 3.3 6-.5 7.2 1.1 1.2 1.7 2.5 2.2 3.5 4.1.7 1.4 6.7.1 7.7-2.6 1.9-5-2.5-6.4-7.6-10.3"/></g><path d="m42.4 32.8c-3.4-2.5-4.5.8-10.7.3-2.7-.2-4.5 5.2-.6 7.7 5.4 3.4 6.3-.5 7.5 1.2 1.3 1.8 2.6 2.3 3.7 4.3.8 1.5-2.2 6.5-2.2 6.5s5.4 5.6 7.1 3c3.2-4.9 3.7-7.7 4-10.8.5-7.2-3.4-8.2-8.8-12.2" fill="#ffdd67"/><g fill="#eba352"><path d="m41.4 46.3c.2.5.1 1.3-.2 2.1.6-1.3 1-2.7.7-3.4-1-2-1.7-2.5-3-4.3-1.2-1.7-2.1 2.2-7.5-1.2-2-1.3-2.5-3.3-2.1-5-1 1.7-.9 4.6 1.6 6.2 5.4 3.4 6.3-.5 7.5 1.2 1.4 1.9 2 2.4 3 4.4"/><path d="m46.6 34.9c6.9 5.3 3.9 15.7.6 20.1-5.2 6.9-10 5.9-16.7 4.5 0 0-8.8 1-13.6-6.8 3 8.2 13.6 7.8 13.6 7.8 7.2 2.2 12.2 2.7 17.7-4.4 3.4-4.5 7.2-16.9-1.6-21.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fb.svg
new file mode 100644
index 0000000..6798a54
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m47.8 31c0 0-8.6-6.5-9.8-8.5-1.4-2.4-2.1-6.1 1.9-8.6 4.2-2.7 6.3-7 5-9.6-1.6-3.2-5.1-3.1-7.7.4-5.9 7.6-12.5 10.9-16.2 16.7-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l7.2 4.2 20.5-21.4"/><path d="m28.7 52.5c2.4 2.1 8.5 8.1 8.5 8.1 3.7 3.2 8.6-2.2 4.9-5.4l-10.8-9.8c.1 0-6.2 3.9-2.6 7.1"/></g><path d="m42.3 55.3c2.9 3-1.6 7.8-4.9 4.4-2.6-2.7-5.1-5.5-10.1-8.6-2.9-1.8-5.9-3.5-5.9-3.5-3.6-2.1-7.5-8.3-5.4-13.8 1.4-3.7 4.1-8.8 6.3-12.1 3.7-5.8 10.2-9.5 16.1-17.1.8-1.1 2.5-2.7 4.4-2.3-1.7-.6-3.8.2-5.6 2.5-5.9 7.5-12.5 10.8-16.2 16.6-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l6.5 3.8c5.5 3.4 7.1 5.9 10.3 8.7 1.7 1.4 4 1.9 5.5.2 1.8-2 1.4-4.2-.1-5.6" fill="#e6b796"/><path d="m37.7 22.2c11.5 6.4 12.3 10.9 12.3 13.6-.1 4.9-6.8 5-8 .8l-.6-5.9c-.5-5-8-10.9-3.7-8.5" fill="#ffe1bd"/><path d="m23 31.5c4.3 2.6 9.8 1.4 12.7-2.7-.2.6-.4 1.2-.8 1.7-2.2 3.6-6.8 4.8-10.4 2.7-1-.6-1.9-1.5-2.5-2.4.4.2.7.5 1 .7" fill="#e6b796"/><path d="m36.8 42l-3.6.3-2.7-2.3c-3.3-2.7-7.6 2.7-4.4 5.4l3.9 3.2c.8.6 1.4.8 2.4.7l5.1-.5c4.2-.3 3.5-7.2-.7-6.8" fill="#ffe1bd"/><path d="m38.1 48.2l-5.1.4c-1.1.1-1.7-.1-2.4-.7l-3.9-3.2c-1.4-1.2-1.4-2.9-.6-4.2-1.3 1.3-1.7 3.5 0 4.9l3.9 3.2c.8.6 1.4.8 2.4.7l5.1-.5c1.1-.1 1.9-.7 2.4-1.5-.5.5-1.1.8-1.8.9" fill="#e6b796"/><path d="m41.3 36l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#ffe1bd"/><path d="m42.8 43.2l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.6.6-1.3 1-2.1 1" fill="#e6b796"/><path d="m45.8 31.7l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#ffe1bd"/><g fill="#e6b796"><path d="m42.1 32.7c0 0 1.3-.9 3.6-.7-1.7-.9-3.7-.3-3.7-.3s-3.9-4.6-7.5-2.7c3.8-.8 7.6 3.7 7.6 3.7"/><path d="m47.2 38.9l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.5.6-1.2.9-2.1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fc.svg
new file mode 100644
index 0000000..1c604fa
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m47.8 31c0 0-8.6-6.5-9.8-8.5-1.4-2.4-2.1-6.1 1.9-8.6 4.2-2.7 6.3-7 5-9.6-1.6-3.2-5.1-3.1-7.7.4-5.9 7.6-12.5 10.9-16.2 16.7-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l7.2 4.2 20.5-21.4"/><path d="m28.7 52.5c2.4 2.1 8.5 8.1 8.5 8.1 3.7 3.2 8.6-2.2 4.9-5.4l-10.8-9.8c.1 0-6.2 3.9-2.6 7.1"/></g><path d="m42.3 55.3c2.9 3-1.6 7.8-4.9 4.4-2.6-2.7-5.1-5.5-10.1-8.6-2.9-1.8-5.9-3.5-5.9-3.5-3.6-2.1-7.5-8.3-5.4-13.8 1.4-3.7 4.1-8.8 6.3-12.1 3.7-5.8 10.2-9.5 16.1-17.1.8-1.1 2.5-2.7 4.4-2.3-1.7-.6-3.8.2-5.6 2.5-5.9 7.5-12.5 10.8-16.2 16.6-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l6.5 3.8c5.5 3.4 7.1 5.9 10.3 8.7 1.7 1.4 4 1.9 5.5.2 1.8-2 1.4-4.2-.1-5.6" fill="#e0a372"/><path d="m37.7 22.2c11.5 6.4 12.3 10.9 12.3 13.6-.1 4.9-6.8 5-8 .8l-.6-5.9c-.5-5-8-10.9-3.7-8.5" fill="#fed0ac"/><path d="m23 31.5c4.3 2.6 9.8 1.4 12.7-2.7-.2.6-.4 1.2-.8 1.7-2.2 3.6-6.8 4.8-10.4 2.7-1-.6-1.9-1.5-2.5-2.4.4.2.7.5 1 .7" fill="#e0a372"/><path d="m36.8 42l-3.6.3-2.7-2.3c-3.3-2.7-7.6 2.7-4.4 5.4l3.9 3.2c.7.6 1.4.8 2.4.7l5.1-.5c4.2-.3 3.5-7.2-.7-6.8" fill="#fed0ac"/><path d="m38.1 48.2l-5.1.4c-1.1.1-1.7-.1-2.4-.7l-3.9-3.2c-1.4-1.2-1.4-2.9-.6-4.2-1.3 1.3-1.7 3.5 0 4.9l3.9 3.2c.7.6 1.4.8 2.4.7l5.1-.5c1.1-.1 1.9-.7 2.4-1.5-.5.5-1.1.8-1.8.9" fill="#e0a372"/><path d="m41.3 36l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#fed0ac"/><path d="m42.8 43.2l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.6.6-1.3 1-2.1 1" fill="#e0a372"/><path d="m45.8 31.7l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#fed0ac"/><g fill="#e0a372"><path d="m42.1 32.7c0 0 1.3-.9 3.6-.7-1.7-.9-3.7-.3-3.7-.3s-3.9-4.6-7.5-2.7c3.8-.8 7.6 3.7 7.6 3.7"/><path d="m47.2 38.9l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.5.6-1.2.9-2.1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fd.svg
new file mode 100644
index 0000000..7270638
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m47.8 31c0 0-8.6-6.5-9.8-8.5-1.4-2.4-2.1-6.1 1.9-8.6 4.2-2.7 6.3-7 5-9.6-1.6-3.2-5.1-3.1-7.7.4-5.9 7.6-12.5 10.9-16.2 16.7-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l7.2 4.2 20.5-21.4"/><path d="m28.7 52.5c2.4 2.1 8.5 8.1 8.5 8.1 3.7 3.2 8.6-2.2 4.9-5.4l-10.8-9.8c.1 0-6.2 3.9-2.6 7.1"/></g><path d="m42.3 55.3c2.9 3-1.6 7.8-4.9 4.4-2.6-2.7-5.1-5.5-10.1-8.6-2.9-1.8-5.9-3.5-5.9-3.5-3.6-2.1-7.5-8.3-5.4-13.8 1.4-3.7 4.1-8.8 6.3-12.1 3.7-5.8 10.2-9.5 16.1-17.1.8-1.1 2.5-2.7 4.4-2.3-1.7-.6-3.8.2-5.6 2.5-5.9 7.5-12.5 10.8-16.2 16.6-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l6.5 3.8c5.5 3.4 7.1 5.9 10.3 8.7 1.7 1.4 4 1.9 5.5.2 1.8-2 1.4-4.2-.1-5.6" fill="#b58360"/><path d="m37.7 22.2c11.5 6.4 12.3 10.9 12.3 13.6-.1 4.9-6.8 5-8 .8l-.6-5.9c-.5-5-8-10.9-3.7-8.5" fill="#d6a57c"/><path d="m23 31.5c4.3 2.6 9.8 1.4 12.7-2.7-.2.6-.4 1.2-.8 1.7-2.2 3.6-6.8 4.8-10.4 2.7-1-.6-1.9-1.5-2.5-2.4.4.2.7.5 1 .7" fill="#b58360"/><path d="m36.8 42l-3.6.3-2.7-2.3c-3.3-2.7-7.6 2.7-4.4 5.4l3.9 3.2c.7.6 1.4.8 2.4.7l5.1-.5c4.2-.3 3.5-7.2-.7-6.8" fill="#d6a57c"/><path d="m38.1 48.2l-5.1.4c-1.1.1-1.7-.1-2.4-.7l-3.9-3.2c-1.4-1.2-1.4-2.9-.6-4.2-1.3 1.3-1.7 3.5 0 4.9l3.9 3.2c.7.6 1.4.8 2.4.7l5.1-.5c1.1-.1 1.9-.7 2.4-1.5-.5.5-1.1.8-1.8.9" fill="#b58360"/><path d="m41.3 36l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#d6a57c"/><path d="m42.8 43.2l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.6.6-1.3 1-2.1 1" fill="#b58360"/><path d="m45.8 31.7l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#d6a57c"/><g fill="#b58360"><path d="m42.1 32.7c0 0 1.3-.9 3.6-.7-1.7-.9-3.7-.3-3.7-.3s-3.9-4.6-7.5-2.7c3.8-.8 7.6 3.7 7.6 3.7"/><path d="m47.2 38.9l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.5.6-1.2.9-2.1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fe.svg
new file mode 100644
index 0000000..c7d9afa
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m47.8 31c0 0-8.6-6.5-9.8-8.5-1.4-2.4-2.1-6.1 1.9-8.6 4.2-2.7 6.3-7 5-9.6-1.6-3.2-5.1-3.1-7.7.4-5.9 7.6-12.5 10.9-16.2 16.7-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l7.2 4.2 20.5-21.4"/><path d="m28.7 52.5c2.4 2.1 8.5 8.1 8.5 8.1 3.7 3.2 8.6-2.2 4.9-5.4l-10.8-9.8c.1 0-6.2 3.9-2.6 7.1"/></g><path d="m42.3 55.3c2.9 3-1.6 7.8-4.9 4.4-2.6-2.7-5.1-5.5-10.1-8.6-2.9-1.8-5.9-3.5-5.9-3.5-3.6-2.1-7.5-8.3-5.4-13.8 1.4-3.7 4.1-8.8 6.3-12.1 3.7-5.8 10.2-9.5 16.1-17.1.8-1.1 2.5-2.7 4.4-2.3-1.7-.6-3.8.2-5.6 2.5-5.9 7.5-12.5 10.8-16.2 16.6-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l6.5 3.8c5.5 3.4 7.1 5.9 10.3 8.7 1.7 1.4 4 1.9 5.5.2 1.8-2 1.4-4.2-.1-5.6" fill="#935e3e"/><path d="m37.7 22.2c11.5 6.4 12.3 10.9 12.3 13.6-.1 4.9-6.8 5-8 .8l-.6-5.9c-.5-5-8-10.9-3.7-8.5" fill="#b47d56"/><path d="m23 31.5c4.3 2.6 9.8 1.4 12.7-2.7-.2.6-.4 1.2-.8 1.7-2.2 3.6-6.8 4.8-10.4 2.7-1-.6-1.9-1.5-2.5-2.4.4.2.7.5 1 .7" fill="#935e3e"/><path d="m36.8 42l-3.6.3-2.7-2.3c-3.3-2.7-7.6 2.7-4.4 5.4l3.9 3.2c.8.6 1.4.8 2.4.7l5.1-.5c4.2-.3 3.5-7.2-.7-6.8" fill="#b47d56"/><path d="m38.1 48.2l-5.1.4c-1.1.1-1.7-.1-2.4-.7l-3.9-3.2c-1.4-1.2-1.4-2.9-.6-4.2-1.3 1.3-1.7 3.5 0 4.9l3.9 3.2c.7.6 1.4.8 2.4.7l5.1-.5c1.1-.1 1.9-.7 2.4-1.5-.5.5-1.1.8-1.8.9" fill="#935e3e"/><path d="m41.3 36l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#b47d56"/><path d="m42.8 43.2l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.6.6-1.3 1-2.1 1" fill="#935e3e"/><path d="m45.8 31.7l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#b47d56"/><g fill="#935e3e"><path d="m42.1 32.7c0 0 1.3-.9 3.6-.7-1.7-.9-3.7-.3-3.7-.3s-3.9-4.6-7.5-2.7c3.8-.8 7.6 3.7 7.6 3.7"/><path d="m47.2 38.9l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.5.6-1.2.9-2.1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3ff.svg
new file mode 100644
index 0000000..7f95819
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f919-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m47.8 31c0 0-8.6-6.5-9.8-8.5-1.4-2.4-2.1-6.1 1.9-8.6 4.2-2.7 6.3-7 5-9.6-1.6-3.2-5.1-3.1-7.7.4-5.9 7.6-12.5 10.9-16.2 16.7-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l7.2 4.2 20.5-21.4"/><path d="m28.7 52.5c2.4 2.1 8.5 8.1 8.5 8.1 3.7 3.2 8.6-2.2 4.9-5.4l-10.8-9.8c.1 0-6.2 3.9-2.6 7.1"/></g><path d="m42.3 55.3c2.9 3-1.6 7.8-4.9 4.4-2.6-2.7-5.1-5.5-10.1-8.6-2.9-1.8-5.9-3.5-5.9-3.5-3.6-2.1-7.5-8.3-5.4-13.8 1.4-3.7 4.1-8.8 6.3-12.1 3.7-5.8 10.2-9.5 16.1-17.1.8-1.1 2.5-2.7 4.4-2.3-1.7-.6-3.8.2-5.6 2.5-5.9 7.5-12.5 10.8-16.2 16.6-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l6.5 3.8c5.5 3.4 7.1 5.9 10.3 8.7 1.7 1.4 4 1.9 5.5.2 1.8-2 1.4-4.2-.1-5.6" fill="#705041"/><path d="m37.7 22.2c11.5 6.4 12.3 10.9 12.3 13.6-.1 4.9-6.8 5-8 .8l-.6-5.9c-.5-5-8-10.9-3.7-8.5" fill="#8a6859"/><path d="m23 31.5c4.3 2.6 9.8 1.4 12.7-2.7-.2.6-.4 1.2-.8 1.7-2.2 3.6-6.8 4.8-10.4 2.7-1-.6-1.9-1.5-2.5-2.4.4.2.7.5 1 .7" fill="#705041"/><path d="m36.8 42l-3.6.3-2.7-2.3c-3.3-2.7-7.6 2.7-4.4 5.4l3.9 3.2c.8.6 1.4.8 2.4.7l5.1-.5c4.2-.3 3.5-7.2-.7-6.8" fill="#8a6859"/><path d="m38.1 48.2l-5.1.4c-1.1.1-1.7-.1-2.4-.7l-3.9-3.2c-1.4-1.2-1.4-2.9-.6-4.2-1.3 1.3-1.7 3.5 0 4.9l3.9 3.2c.8.6 1.4.8 2.4.7l5.1-.5c1.1-.1 1.9-.7 2.4-1.5-.5.5-1.1.8-1.8.9" fill="#705041"/><path d="m41.3 36l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#8a6859"/><path d="m42.8 43.2l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.6.6-1.3 1-2.1 1" fill="#705041"/><path d="m45.8 31.7l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#8a6859"/><g fill="#705041"><path d="m42.1 32.7c0 0 1.3-.9 3.6-.7-1.7-.9-3.7-.3-3.7-.3s-3.9-4.6-7.5-2.7c3.8-.8 7.6 3.7 7.6 3.7"/><path d="m47.2 38.9l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.5.6-1.2.9-2.1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f919.svg b/build/js/jsxc/lib/emojione/assets/svg/1f919.svg
new file mode 100644
index 0000000..84df19c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f919.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m47.8 31c0 0-8.6-6.5-9.8-8.5-1.4-2.4-2.1-6.1 1.9-8.6 4.2-2.7 6.3-7 5-9.6-1.6-3.2-5.1-3.1-7.7.4-5.9 7.6-12.5 10.9-16.2 16.7-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l7.2 4.2 20.5-21.4"/><path d="m28.7 52.5c2.4 2.1 8.5 8.1 8.5 8.1 3.7 3.2 8.6-2.2 4.9-5.4l-10.8-9.8c.1 0-6.2 3.9-2.6 7.1"/></g><path d="m42.3 55.3c2.9 3-1.6 7.8-4.9 4.4-2.6-2.7-5.1-5.5-10.1-8.6-2.9-1.8-5.9-3.5-5.9-3.5-3.6-2.1-7.5-8.3-5.4-13.8 1.4-3.7 4.1-8.8 6.3-12.1 3.7-5.8 10.2-9.5 16.1-17.1.8-1.1 2.5-2.7 4.4-2.3-1.7-.6-3.8.2-5.6 2.5-5.9 7.5-12.5 10.8-16.2 16.6-2.2 3.4-5.1 8.6-6.5 12.4-2 5.5 2 12.4 5.6 14.4l6.5 3.8c5.5 3.4 7.1 5.9 10.3 8.7 1.7 1.4 4 1.9 5.5.2 1.8-2 1.4-4.2-.1-5.6" fill="#eba352"/><path d="m37.7 22.2c11.5 6.4 12.3 10.9 12.3 13.6-.1 4.9-6.8 5-8 .8l-.6-5.9c-.5-5-8-10.9-3.7-8.5" fill="#ffdd67"/><path d="m23 31.5c4.3 2.6 9.8 1.4 12.7-2.7-.2.6-.4 1.2-.8 1.7-2.2 3.6-6.8 4.8-10.4 2.6-1-.6-1.9-1.5-2.5-2.4.4.3.7.6 1 .8" fill="#eba352"/><path d="m36.8 42l-3.6.3-2.7-2.3c-3.3-2.7-7.6 2.7-4.4 5.4l3.9 3.2c.8.6 1.4.8 2.4.7l5.1-.5c4.2-.3 3.5-7.2-.7-6.8" fill="#ffdd67"/><path d="m38.1 48.2l-5.1.4c-1.1.1-1.7-.1-2.4-.7l-3.9-3.2c-1.4-1.2-1.4-2.9-.6-4.2-1.3 1.3-1.7 3.5 0 4.9l3.9 3.2c.7.6 1.4.8 2.4.7l5.1-.5c1.1-.1 1.9-.7 2.4-1.5-.5.5-1.1.8-1.8.9" fill="#eba352"/><path d="m41.3 36l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#ffdd67"/><path d="m42.8 43.2l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.6.6-1.3 1-2.1 1" fill="#eba352"/><path d="m45.8 31.7l-4.1.4-3.2-2.7c-3.8-3.1-8.9 3.1-5.1 6.3l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c4.8-.4 4-8.5-.9-8" fill="#ffdd67"/><g fill="#eba352"><path d="m42.1 32.7c0 0 1.3-.9 3.6-.7-1.7-.9-3.7-.3-3.7-.3s-3.9-4.6-7.5-2.7c3.8-.8 7.6 3.7 7.6 3.7"/><path d="m47.2 38.9l-5.9.6c-1.2.1-1.9-.2-2.8-.8l-4.6-3.8c-1.7-1.4-1.6-3.4-.7-4.9-1.5 1.6-2 4.1 0 5.7l4.6 3.8c.9.7 1.6 1 2.8.8l5.9-.6c1.3-.1 2.2-.8 2.8-1.8-.5.6-1.2.9-2.1 1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fb.svg
new file mode 100644
index 0000000..7a7baa8
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 40.9h-8.1v-31.6c0-2.1 1.8-3.9 4-3.9 2.2 0 4 1.8 4 3.9l.1 31.6" fill="#ffe1bd"/><path d="m25.3 5.5c.3 0 .5 0 .7.1-1.9.3-3.3 1.9-3.3 3.8v31.6h-1.4v-31.7c-.1-2.1 1.7-3.8 4-3.8" fill="#e6b796"/><path d="m38.4 40.9h-9v-34.2c0-2.6 2-4.7 4.5-4.7 2.5 0 4.5 2.1 4.5 4.7 0 0 0 34.2 0 34.2" fill="#ffe1bd"/><path d="m33.8 2c.2 0 .5 0 .7.1-2.2.3-3.8 2.3-3.8 4.6v34.2h-1.4v-34.2c0-2.6 2-4.7 4.5-4.7" fill="#e6b796"/><path d="m46.2 40.9h-7.9v-32.2c0-2.2 1.8-4.1 3.9-4.1 2.2 0 3.9 1.8 3.9 4.1l.1 32.2" fill="#ffe1bd"/><path d="m42.3 4.6c.2 0 .5 0 .7.1-1.8.3-3.3 2-3.3 4v32.2h-1.4v-32.2c.1-2.3 1.8-4.1 4-4.1" fill="#e6b796"/><path d="m49.8 9.4c2 0 3.6 1.7 3.6 3.8v27.7h-7.2v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#ffe1bd"/><path d="m49.8 9.4c.2 0 .5 0 .7.1-1.7.3-2.9 1.9-2.9 3.7v27.7h-1.4v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#e6b796"/><path d="m13.5 30.2c4.3.4 5.7 3.7 6.2 5.4l.2.8c0 0 .5.5 1.1 1.4.1 0 .1 0 .2 0 0 0 1.9-3 1.8-9.2l6.3.5 1.4 1 7.7-.1 1.3 1.4 6.6-.4 1.4 1.3c0 0 5.7 0 5.8.6.5 2.1 1 5 0 13.5-2.4 20.5-28.8 16.8-34.2 7.7-1-1.7-4.9-6.5-4.9-6.5-.6-.5-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.8-1.8.2-4.7 3.2-4.4" fill="#ffe1bd"/><g fill="#e6b796"><path d="m11 31c-.2.7-.1 1.4.1 1.9 2 4.2 2.7 7.8 3 10.7.1 1 .5 2.1 1.1 2.7 2.9 3 7.2 14.4 17.5 14.4 11.4 0 16.9-5.2 18.6-7.4-1.3 3.2-6.7 8.6-18.7 8.6-11.2 0-14.2-10.1-18.2-14.6-.7-.9-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.5-.9-.3-2.4.7-3.3"/><path d="m20.1 41.8c0 0-1.3-4.1-1.8-6-.4-1.6-1.9-4.5-4.5-5.6 4 .5 5.4 3.8 5.9 5.4l.2.8c0 0 .7.5 1.3 1.4 0 0-1.3 1.8-1.1 4"/><path d="m28.9 26.9c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.1-.2-1.7"/><path d="m38 27.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/><path d="m45.8 28.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fc.svg
new file mode 100644
index 0000000..7343906
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 40.9h-8.1v-31.6c0-2.1 1.8-3.9 4-3.9 2.2 0 4 1.8 4 3.9l.1 31.6" fill="#fed0ac"/><path d="m25.3 5.5c.3 0 .5 0 .7.1-1.9.3-3.3 1.9-3.3 3.8v31.6h-1.4v-31.7c-.1-2.1 1.7-3.8 4-3.8" fill="#e0a372"/><path d="m38.4 40.9h-9v-34.2c0-2.6 2-4.7 4.5-4.7 2.5 0 4.5 2.1 4.5 4.7v34.2" fill="#fed0ac"/><path d="m33.8 2c.2 0 .5 0 .7.1-2.2.3-3.8 2.3-3.8 4.6v34.2h-1.4v-34.2c0-2.6 2-4.7 4.5-4.7" fill="#e0a372"/><path d="m46.2 40.9h-7.9v-32.2c0-2.2 1.8-4.1 3.9-4.1 2.2 0 3.9 1.8 3.9 4.1l.1 32.2" fill="#fed0ac"/><path d="m42.3 4.6c.2 0 .5 0 .7.1-1.8.3-3.3 2-3.3 4v32.2h-1.4v-32.2c.1-2.3 1.8-4.1 4-4.1" fill="#e0a372"/><path d="m49.8 9.4c2 0 3.6 1.7 3.6 3.8v27.7h-7.2v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#fed0ac"/><path d="m49.8 9.4c.2 0 .5 0 .7.1-1.7.3-2.9 1.9-2.9 3.7v27.7h-1.4v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#e0a372"/><path d="m13.5 30.2c4.3.4 5.7 3.7 6.2 5.4l.2.8c0 0 .5.5 1.1 1.4.1 0 .1 0 .2 0 0 0 1.9-3 1.8-9.2l6.3.5 1.4 1 7.7-.1 1.3 1.4 6.6-.4 1.4 1.3c0 0 5.7 0 5.8.6.5 2.1 1 5 0 13.5-2.4 20.5-28.8 16.8-34.2 7.7-1-1.7-4.9-6.5-4.9-6.5-.6-.5-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.8-1.8.2-4.7 3.2-4.4" fill="#fed0ac"/><g fill="#e0a372"><path d="m11 31c-.2.7-.1 1.4.1 1.9 2 4.2 2.7 7.8 3 10.7.1 1 .5 2.1 1.1 2.7 2.9 3 7.2 14.4 17.5 14.4 11.4 0 16.9-5.2 18.6-7.4-1.3 3.2-6.7 8.6-18.7 8.6-11.2 0-14.2-10.1-18.2-14.6-.7-.9-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.5-.9-.3-2.4.7-3.3"/><path d="m20.1 41.8c0 0-1.3-4.1-1.8-6-.4-1.6-1.9-4.5-4.5-5.6 4 .5 5.4 3.8 5.9 5.4l.2.8c0 0 .7.5 1.3 1.4 0 0-1.3 1.8-1.1 4"/><path d="m28.9 26.9c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.1-.2-1.7"/><path d="m38 27.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/><path d="m45.8 28.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fd.svg
new file mode 100644
index 0000000..55f936d
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 40.9h-8.1v-31.6c0-2.1 1.8-3.9 4-3.9 2.2 0 4 1.8 4 3.9l.1 31.6" fill="#d6a57c"/><path d="m25.3 5.5c.3 0 .5 0 .7.1-1.9.3-3.3 1.9-3.3 3.8v31.6h-1.4v-31.7c-.1-2.1 1.7-3.8 4-3.8" fill="#b58360"/><path d="m38.4 40.9h-9v-34.2c0-2.6 2-4.7 4.5-4.7 2.5 0 4.5 2.1 4.5 4.7 0 0 0 34.2 0 34.2" fill="#d6a57c"/><path d="m33.8 2c.2 0 .5 0 .7.1-2.2.3-3.8 2.3-3.8 4.6v34.2h-1.4v-34.2c0-2.6 2-4.7 4.5-4.7" fill="#b58360"/><path d="m46.2 40.9h-7.9v-32.2c0-2.2 1.8-4.1 3.9-4.1 2.2 0 3.9 1.8 3.9 4.1l.1 32.2" fill="#d6a57c"/><path d="m42.3 4.6c.2 0 .5 0 .7.1-1.8.3-3.3 2-3.3 4v32.2h-1.4v-32.2c.1-2.3 1.8-4.1 4-4.1" fill="#b58360"/><path d="m49.8 9.4c2 0 3.6 1.7 3.6 3.8v27.7h-7.2v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#d6a57c"/><path d="m49.8 9.4c.2 0 .5 0 .7.1-1.7.3-2.9 1.9-2.9 3.7v27.7h-1.4v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#b58360"/><path d="m13.5 30.2c4.3.4 5.7 3.7 6.2 5.4l.2.8c0 0 .5.5 1.1 1.4.1 0 .1 0 .2 0 0 0 1.9-3 1.8-9.2l6.3.5 1.4 1 7.7-.1 1.3 1.4 6.6-.4 1.4 1.3c0 0 5.7 0 5.8.6.5 2.1 1 5 0 13.5-2.4 20.5-28.8 16.8-34.2 7.7-1-1.7-4.9-6.5-4.9-6.5-.6-.5-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.8-1.8.2-4.7 3.2-4.4" fill="#d6a57c"/><g fill="#b58360"><path d="m11 31c-.2.7-.1 1.4.1 1.9 2 4.2 2.7 7.8 3 10.7.1 1 .5 2.1 1.1 2.7 2.9 3 7.2 14.4 17.5 14.4 11.4 0 16.9-5.2 18.6-7.4-1.3 3.2-6.7 8.6-18.7 8.6-11.2 0-14.2-10.1-18.2-14.6-.7-.9-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.5-.9-.3-2.4.7-3.3"/><path d="m20.1 41.8c0 0-1.3-4.1-1.8-6-.4-1.6-1.9-4.5-4.5-5.6 4 .5 5.4 3.8 5.9 5.4l.2.8c0 0 .7.5 1.3 1.4 0 0-1.3 1.8-1.1 4"/><path d="m28.9 26.9c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.1-.2-1.7"/><path d="m38 27.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/><path d="m45.8 28.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fe.svg
new file mode 100644
index 0000000..6dc3b22
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 40.9h-8.1v-31.6c0-2.1 1.8-3.9 4-3.9 2.2 0 4 1.8 4 3.9l.1 31.6" fill="#b47d56"/><path d="m25.3 5.5c.3 0 .5 0 .7.1-1.9.3-3.3 1.9-3.3 3.8v31.6h-1.4v-31.7c-.1-2.1 1.7-3.8 4-3.8" fill="#935e3e"/><path d="m38.4 40.9h-9v-34.2c0-2.6 2-4.7 4.5-4.7 2.5 0 4.5 2.1 4.5 4.7v34.2" fill="#b47d56"/><path d="m33.8 2c.2 0 .5 0 .7.1-2.2.3-3.8 2.3-3.8 4.6v34.2h-1.4v-34.2c0-2.6 2-4.7 4.5-4.7" fill="#935e3e"/><path d="m46.2 40.9h-7.9v-32.2c0-2.2 1.8-4.1 3.9-4.1 2.2 0 3.9 1.8 3.9 4.1l.1 32.2" fill="#b47d56"/><path d="m42.3 4.6c.2 0 .5 0 .7.1-1.8.3-3.3 2-3.3 4v32.2h-1.4v-32.2c.1-2.3 1.8-4.1 4-4.1" fill="#935e3e"/><path d="m49.8 9.4c2 0 3.6 1.7 3.6 3.8v27.7h-7.2v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#b47d56"/><path d="m49.8 9.4c.2 0 .5 0 .7.1-1.7.3-2.9 1.9-2.9 3.7v27.7h-1.4v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#935e3e"/><path d="m13.5 30.2c4.3.4 5.7 3.7 6.2 5.4l.2.8c0 0 .5.5 1.1 1.4.1 0 .1 0 .2 0 0 0 1.9-3 1.8-9.2l6.3.5 1.4 1 7.7-.1 1.3 1.4 6.6-.4 1.4 1.3c0 0 5.7 0 5.8.6.5 2.1 1 5 0 13.5-2.4 20.5-28.8 16.8-34.2 7.7-1-1.7-4.9-6.5-4.9-6.5-.6-.5-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.8-1.8.2-4.7 3.2-4.4" fill="#b47d56"/><g fill="#935e3e"><path d="m11 31c-.2.7-.1 1.4.1 1.9 2 4.2 2.7 7.8 3 10.7.1 1 .5 2.1 1.1 2.7 2.9 3 7.2 14.4 17.5 14.4 11.4 0 16.9-5.2 18.6-7.4-1.3 3.2-6.7 8.6-18.7 8.6-11.2 0-14.2-10.1-18.2-14.6-.7-.9-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.5-.9-.3-2.4.7-3.3"/><path d="m20.1 41.8c0 0-1.3-4.1-1.8-6-.4-1.6-1.9-4.5-4.5-5.6 4 .5 5.4 3.8 5.9 5.4l.2.8c0 0 .7.5 1.3 1.4 0 0-1.3 1.8-1.1 4"/><path d="m28.9 26.9c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.1-.2-1.7"/><path d="m38 27.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/><path d="m45.8 28.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3ff.svg
new file mode 100644
index 0000000..d27a387
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91a-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 40.9h-8.1v-31.6c0-2.1 1.8-3.9 4-3.9 2.2 0 4 1.8 4 3.9l.1 31.6" fill="#8a6859"/><path d="m25.3 5.5c.3 0 .5 0 .7.1-1.9.3-3.3 1.9-3.3 3.8v31.6h-1.4v-31.7c-.1-2.1 1.7-3.8 4-3.8" fill="#705041"/><path d="m38.4 40.9h-9v-34.2c0-2.6 2-4.7 4.5-4.7 2.5 0 4.5 2.1 4.5 4.7v34.2" fill="#8a6859"/><path d="m33.8 2c.2 0 .5 0 .7.1-2.2.3-3.8 2.3-3.8 4.6v34.2h-1.4v-34.2c0-2.6 2-4.7 4.5-4.7" fill="#705041"/><path d="m46.2 40.9h-7.9v-32.2c0-2.2 1.8-4.1 3.9-4.1 2.2 0 3.9 1.8 3.9 4.1l.1 32.2" fill="#8a6859"/><path d="m42.3 4.6c.2 0 .5 0 .7.1-1.8.3-3.3 2-3.3 4v32.2h-1.4v-32.2c.1-2.3 1.8-4.1 4-4.1" fill="#705041"/><path d="m49.8 9.4c2 0 3.6 1.7 3.6 3.8v27.7h-7.2v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#8a6859"/><path d="m49.8 9.4c.2 0 .5 0 .7.1-1.7.3-2.9 1.9-2.9 3.7v27.7h-1.4v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#705041"/><path d="m13.5 30.2c4.3.4 5.7 3.7 6.2 5.4l.2.8c0 0 .5.5 1.1 1.4.1 0 .1 0 .2 0 0 0 1.9-3 1.8-9.2l6.3.5 1.4 1 7.7-.1 1.3 1.4 6.6-.4 1.4 1.3c0 0 5.7 0 5.8.6.5 2.1 1 5 0 13.5-2.4 20.5-28.8 16.8-34.2 7.7-1-1.7-4.9-6.5-4.9-6.5-.6-.5-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.8-1.8.2-4.7 3.2-4.4" fill="#8a6859"/><g fill="#705041"><path d="m11 31c-.2.7-.1 1.4.1 1.9 2 4.2 2.7 7.8 3 10.7.1 1 .5 2.1 1.1 2.7 2.9 3 7.2 14.4 17.5 14.4 11.4 0 16.9-5.2 18.6-7.4-1.3 3.2-6.7 8.6-18.7 8.6-11.2 0-14.2-10.1-18.2-14.6-.7-.9-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.5-.9-.3-2.4.7-3.3"/><path d="m20.1 41.8c0 0-1.3-4.1-1.8-6-.4-1.6-1.9-4.5-4.5-5.6 4 .5 5.4 3.8 5.9 5.4l.2.8c0 0 .7.5 1.3 1.4 0 0-1.3 1.8-1.1 4"/><path d="m28.9 26.9c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.1-.2-1.7"/><path d="m38 27.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/><path d="m45.8 28.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91a.svg
new file mode 100644
index 0000000..74d0015
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 40.9h-8.1v-31.6c0-2.1 1.8-3.9 4-3.9 2.2 0 4 1.8 4 3.9l.1 31.6" fill="#ffdd67"/><path d="m25.3 5.5c.3 0 .5 0 .7.1-1.9.3-3.3 1.9-3.3 3.8v31.6h-1.4v-31.7c-.1-2.1 1.7-3.8 4-3.8" fill="#eba352"/><path d="m38.4 40.9h-9v-34.2c0-2.6 2-4.7 4.5-4.7 2.5 0 4.5 2.1 4.5 4.7 0 0 0 34.2 0 34.2" fill="#ffdd67"/><path d="m33.8 2c.2 0 .5 0 .7.1-2.2.3-3.8 2.3-3.8 4.6v34.2h-1.4v-34.2c0-2.6 2-4.7 4.5-4.7" fill="#eba352"/><path d="m46.2 40.9h-7.9v-32.2c0-2.2 1.8-4.1 3.9-4.1 2.2 0 3.9 1.8 3.9 4.1l.1 32.2" fill="#ffdd67"/><path d="m42.3 4.6c.2 0 .5 0 .7.1-1.8.3-3.3 2-3.3 4v32.2h-1.4v-32.2c.1-2.3 1.8-4.1 4-4.1" fill="#eba352"/><path d="m49.8 9.4c2 0 3.6 1.7 3.6 3.8v27.7h-7.2v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#ffdd67"/><path d="m49.8 9.4c.2 0 .5 0 .7.1-1.7.3-2.9 1.9-2.9 3.7v27.7h-1.4v-27.7c0-2.1 1.6-3.8 3.6-3.8" fill="#eba352"/><path d="m13.5 30.2c4.3.4 5.7 3.7 6.2 5.4l.2.8c0 0 .5.5 1.1 1.4.1 0 .1 0 .2 0 0 0 1.9-3 1.8-9.2l6.3.5 1.4 1 7.7-.1 1.3 1.4 6.6-.4 1.4 1.3c0 0 5.7 0 5.8.6.5 2.1 1 5 0 13.5-2.4 20.5-28.8 16.8-34.2 7.7-1-1.7-4.9-6.5-4.9-6.5-.6-.5-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.8-1.8.2-4.7 3.2-4.4" fill="#ffdd67"/><g fill="#eba352"><path d="m11 31c-.2.7-.1 1.4.1 1.9 2 4.2 2.7 7.8 3 10.7.1 1 .5 2.1 1.1 2.7 2.9 3 7.2 14.4 17.5 14.4 11.4 0 16.9-5.2 18.6-7.4-1.3 3.2-6.7 8.6-18.7 8.6-11.2 0-14.2-10.1-18.2-14.6-.7-.9-1-1.3-1.1-2.3-.3-2.9-1-6.5-3-10.7-.5-.9-.3-2.4.7-3.3"/><path d="m20.1 41.8c0 0-1.3-4.1-1.8-6-.4-1.6-1.9-4.5-4.5-5.6 4 .5 5.4 3.8 5.9 5.4l.2.8c0 0 .7.5 1.3 1.4 0 0-1.3 1.8-1.1 4"/><path d="m28.9 26.9c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.1-.2-1.7"/><path d="m38 27.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/><path d="m45.8 28.6c.2.5.5 1 .8 1.4.3.4.6.9.9 1.4.3.5.5 1.1.5 1.7 0 .6-.2 1.2-.5 1.7 0-.6-.1-1.1-.2-1.6-.1-.5-.3-.9-.6-1.4-.2-.5-.5-.9-.7-1.5-.3-.5-.4-1.2-.2-1.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fb.svg
new file mode 100644
index 0000000..00f8540
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 7.8c2.7 1.7 6.2 5.5 10.4 7.2 3.8 1.5 11.9 2.3 11.9 2.3v31c0 0-14.8-1-19.6 2.9l-2.7-43.4" fill="#ffe1bd"/><path d="m42.7 48.3c0 0 10.2-2.8 19.3-2.8v2.7c-6.6 0-19.6 2.9-19.6 2.9l.3-2.8" fill="#e6b796"/><path d="m17.9 14.1c0 0 6.5-6.5 9.4-7.9 10.6-5.3 20.2 7.6 19.9 18.5-.2 6.3-1.1 15.9-2.5 22-2.1 9-14.9 9.3-20.5 8.7l-6.3-41.3" fill="#ffe1bd"/><path d="m24.2 54.2c10.9 0 18.1-3.3 21.4-8.4-.5 6.8-9.8 11-21.4 10 0 0 0-1.6 0-1.6" fill="#e6b796"/><path d="M30.2,6.2C12.2,4,5.1,13.5,3.1,17c-1.8,3.1-1.1,6.1,0.7,8c2,2.1,12.2,4.8,12.2,4.8S37,7,30.2,6.2z" fill="#ffe1bd"/><path d="m37 36c-6.9-.6-9.5-6-10.6-8.5l-.9 4c0 0 1.7 5.2 8.4 5.4 1.7.1 3.3-.2 4.7-.9-.5.1-1.1.1-1.6 0" fill="#e6b796"/><path d="m14.6 46.2l3.2 3.1 4.2-.4c4.9-.4 5.5 8.9.6 9.3l-5.9.6c-1.1.1-1.9-.1-2.8-1.1l-4.5-4.4c-3.9-3.7 1.4-10.8 5.2-7.1" fill="#ffe1bd"/><path d="m9.2 52.1l4.5 4.4c.9.9 1.7 1.1 2.8 1.1l5.9-.6c2.2-.2 3.3-2.1 3.4-4.2.3 2.4-.8 5.3-3.4 5.6l-6 .6c-1.1.1-1.8-.3-2.7-1.3l-4.5-4.4c-1-1-1.4-2.3-1.3-3.5.3.8.6 1.6 1.3 2.3" fill="#e6b796"/><path d="m13 36.5l3.7 3.7 4.9-.5c5.8-.5 6.5 10.5.7 11l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-4.3-4.4 1.9-12.8 6.3-8.4" fill="#ffe1bd"/><path d="m6.7 43.4l5.3 5.2c1.1 1.1 2 1.3 3.3 1.3l7-.7c2.6-.2 3.9-2.5 4-4.9.4 2.9-.9 6.1-3.9 6.4l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-1.2-1.2-1.6-2.7-1.5-4.1.2.9.6 1.8 1.4 2.6" fill="#e6b796"/><path d="m12.7 25.3l4.4 4.3 5.7-.5c6.8-.6 7.6 12.2.8 12.8l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-5.2-5.2 2.1-14.9 7.3-9.8" fill="#ffe1bd"/><g fill="#e6b796"><path d="m5.3 33.4l6.2 6.1c1.3 1.3 2.3 1.6 3.8 1.5l8.2-.8c3-.3 4.5-2.9 4.7-5.7.4 3.4-1 7.1-4.6 7.4l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.2 1.1.7 2.1 1.6 3.1"/><path d="m14.4 20.2c0 0-.8-2.4-3.5-4.2 2.6.4 4.4 3 4.4 3l-.9 1.2"/><path d="m3.7 23.7l6.2 6.1c1.3 1.3 2.3 1.5 3.8 1.5l.1 1.7c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.1 1 .7 2.1 1.6 3.1"/></g><path d="m30.8 21.6l-5.1 3.8-1.1 6.9c-1.3 8.1-12.9 5.1-11.6-3l1.6-9.8c.4-1.8.5-3 2-4.1l7.2-5.4c6.2-4.4 13 7.2 7 11.6" fill="#ffe1bd"/><g fill="#e6b796"><path d="m18.6 37.1c-3.9-.1-7-3.6-6-7.8 2-8.4 1.7-10.8 2.5-12.3 2-3.4 12.1-10.6 12.8-11.1-.3.4-10.7 9.6-11.6 11.7-1 2.2-1.1 5.7-2 9.8-1.4 6.2.8 7.8 4.3 9.7"/><path d="m25.7 25.6c0 0 2-.7 4.5-3.3-1.6 3.8-3.3 4.1-3.3 4.1s-1.3 10.9-7 10.8c4.5-1.6 5.8-11.6 5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fc.svg
new file mode 100644
index 0000000..92dd899
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 7.8c2.7 1.7 6.2 5.5 10.4 7.2 3.8 1.5 11.9 2.3 11.9 2.3v31c0 0-14.8-1-19.6 2.9l-2.7-43.4" fill="#fed0ac"/><path d="m42.7 48.3c0 0 10.2-2.8 19.3-2.8v2.7c-6.6 0-19.6 2.9-19.6 2.9l.3-2.8" fill="#e0a372"/><path d="m17.9 14.1c0 0 6.5-6.5 9.4-7.9 10.6-5.3 20.2 7.6 19.9 18.5-.2 6.3-1.1 15.9-2.5 22-2.1 9-14.9 9.3-20.5 8.7l-6.3-41.3" fill="#fed0ac"/><path d="m24.2 54.2c10.9 0 18.1-3.3 21.5-8.4-.5 6.8-9.8 11-21.5 10v-1.6" fill="#e0a372"/><path d="M30.2,6.2C12.2,4,5.1,13.5,3.1,17c-1.8,3.1-1.1,6.1,0.7,8c2,2.1,12.2,4.8,12.2,4.8S37,6.9,30.2,6.2z" fill="#fed0ac"/><path d="m37 36c-6.9-.6-9.5-6-10.6-8.5l-.9 4c0 0 1.7 5.2 8.4 5.4 1.7.1 3.3-.2 4.7-.9-.5.1-1.1.1-1.6 0" fill="#e0a372"/><path d="m14.6 46.2l3.2 3.1 4.2-.4c4.9-.4 5.5 8.9.6 9.3l-5.9.6c-1.1.1-1.9-.1-2.8-1.1l-4.5-4.4c-3.9-3.7 1.4-10.8 5.2-7.1" fill="#fed0ac"/><path d="m9.2 52l4.5 4.4c.9.9 1.7 1.1 2.8 1.1l5.9-.6c2.2-.2 3.3-2.1 3.4-4.2.3 2.4-.8 5.3-3.4 5.6l-6 .6c-1.1.1-1.8-.3-2.7-1.3l-4.5-4.4c-1-1-1.4-2.3-1.3-3.5.3.9.6 1.7 1.3 2.3" fill="#e0a372"/><path d="m13 36.5l3.7 3.7 4.9-.5c5.8-.5 6.5 10.5.7 11l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-4.3-4.4 1.9-12.8 6.3-8.4" fill="#fed0ac"/><path d="m6.7 43.4l5.3 5.2c1.1 1.1 2 1.3 3.3 1.3l7-.7c2.6-.2 3.9-2.5 4-4.9.4 2.9-.9 6.1-3.9 6.4l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-1.2-1.2-1.6-2.7-1.5-4.1.2.9.6 1.8 1.4 2.6" fill="#e0a372"/><path d="m12.7 25.3l4.4 4.3 5.7-.5c6.8-.6 7.6 12.2.8 12.8l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.2c-5.2-5.1 2.1-14.8 7.3-9.7" fill="#fed0ac"/><g fill="#e0a372"><path d="m5.3 33.4l6.2 6.1c1.3 1.3 2.3 1.6 3.8 1.5l8.2-.8c3-.3 4.5-2.9 4.7-5.7.4 3.4-1 7.1-4.6 7.4l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.2 1.1.7 2.1 1.6 3.1"/><path d="m14.4 20.2c0 0-.8-2.4-3.5-4.2 2.6.4 4.4 3 4.4 3l-.9 1.2"/><path d="m3.7 23.6l6.2 6.1c1.3 1.3 2.3 1.5 3.8 1.5l.1 1.7c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.1 1.1.7 2.2 1.6 3.1"/></g><path d="m30.8 21.6l-5.1 3.8-1.1 6.9c-1.3 8.1-12.9 5.1-11.6-3l1.6-9.8c.3-1.8.5-3 2-4.1l7.2-5.4c6.2-4.4 13 7.2 7 11.6" fill="#fed0ac"/><g fill="#e0a372"><path d="m18.6 37.1c-3.9-.1-7-3.6-6-7.8 2-8.4 1.7-10.8 2.5-12.3 2-3.4 12.1-10.6 12.8-11.1-.3.4-10.7 9.6-11.6 11.7-1 2.2-1.1 5.7-2 9.8-1.4 6.2.8 7.8 4.3 9.7"/><path d="m25.7 25.6c0 0 2-.7 4.5-3.3-1.6 3.8-3.3 4.1-3.3 4.1s-1.3 10.9-7 10.8c4.5-1.6 5.8-11.6 5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fd.svg
new file mode 100644
index 0000000..6254ca9
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 7.8c2.7 1.7 6.2 5.5 10.4 7.2 3.8 1.5 11.9 2.3 11.9 2.3v31c0 0-14.8-1-19.6 2.9l-2.7-43.4" fill="#d6a57c"/><path d="m42.7 48.3c0 0 10.2-2.8 19.3-2.8v2.7c-6.6 0-19.6 2.9-19.6 2.9l.3-2.8" fill="#b58360"/><path d="m17.9 14.1c0 0 6.5-6.5 9.4-7.9 10.6-5.3 20.2 7.6 19.9 18.5-.2 6.3-1.1 15.9-2.5 22-2.1 9-14.9 9.3-20.5 8.7l-6.3-41.3" fill="#d6a57c"/><path d="m24.2 54.2c10.9 0 18.1-3.3 21.4-8.4-.5 6.8-9.8 11-21.4 10 0 0 0-1.6 0-1.6" fill="#b58360"/><path d="M30.2,6.2C12.2,4,5.1,13.5,3.1,17c-1.8,3.1-1.1,6.1,0.7,8c2,2.1,12.2,4.8,12.2,4.8S37,7,30.2,6.2z" fill="#d6a57c"/><path d="m37 36c-6.9-.6-9.5-6-10.6-8.5l-.9 4c0 0 1.7 5.2 8.4 5.4 1.7.1 3.3-.2 4.7-.9-.5.1-1.1.1-1.6 0" fill="#b58360"/><path d="m14.6 46.2l3.2 3.1 4.2-.4c4.9-.4 5.5 8.9.6 9.3l-5.9.6c-1.1.1-1.9-.1-2.8-1.1l-4.5-4.4c-3.9-3.7 1.4-10.8 5.2-7.1" fill="#d6a57c"/><path d="m9.2 52.1l4.5 4.4c.9.9 1.7 1.1 2.8 1.1l5.9-.6c2.2-.2 3.3-2.1 3.4-4.2.3 2.4-.8 5.3-3.4 5.6l-6 .6c-1.1.1-1.8-.3-2.7-1.3l-4.5-4.4c-1-1-1.4-2.3-1.3-3.5.3.8.6 1.6 1.3 2.3" fill="#b58360"/><path d="m13 36.5l3.7 3.7 4.9-.5c5.8-.5 6.5 10.5.7 11l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-4.3-4.4 1.9-12.8 6.3-8.4" fill="#d6a57c"/><path d="m6.7 43.4l5.3 5.2c1.1 1.1 2 1.3 3.3 1.3l7-.7c2.6-.2 3.9-2.5 4-4.9.4 2.9-.9 6.1-3.9 6.4l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-1.2-1.2-1.6-2.7-1.5-4.1.2.9.6 1.8 1.4 2.6" fill="#b58360"/><path d="m12.7 25.3l4.4 4.3 5.7-.5c6.8-.6 7.6 12.2.8 12.8l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-5.2-5.2 2.1-14.9 7.3-9.8" fill="#d6a57c"/><g fill="#b58360"><path d="m5.3 33.4l6.2 6.1c1.3 1.3 2.3 1.6 3.8 1.5l8.2-.8c3-.3 4.5-2.9 4.7-5.7.4 3.4-1 7.1-4.6 7.4l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.2 1.1.7 2.1 1.6 3.1"/><path d="m14.4 20.2c0 0-.8-2.4-3.5-4.2 2.6.4 4.4 3 4.4 3l-.9 1.2"/><path d="m3.7 23.7l6.2 6.1c1.3 1.3 2.3 1.5 3.8 1.5l.1 1.7c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.1 1 .7 2.1 1.6 3.1"/></g><path d="m30.8 21.6l-5.1 3.8-1.1 6.9c-1.3 8.1-12.9 5.1-11.6-3l1.6-9.8c.4-1.8.5-3 2-4.1l7.2-5.4c6.2-4.4 13 7.2 7 11.6" fill="#d6a57c"/><g fill="#b58360"><path d="m18.6 37.1c-3.9-.1-7-3.6-6-7.8 2-8.4 1.7-10.8 2.5-12.3 2-3.4 12.1-10.6 12.8-11.1-.3.4-10.7 9.6-11.6 11.7-1 2.2-1.1 5.7-2 9.8-1.4 6.2.8 7.8 4.3 9.7"/><path d="m25.7 25.6c0 0 2-.7 4.5-3.3-1.6 3.8-3.3 4.1-3.3 4.1s-1.3 10.9-7 10.8c4.5-1.6 5.8-11.6 5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fe.svg
new file mode 100644
index 0000000..074eca3
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 7.8c2.7 1.7 6.2 5.5 10.4 7.2 3.8 1.5 11.9 2.3 11.9 2.3v31c0 0-14.8-1-19.6 2.9l-2.7-43.4" fill="#b47d56"/><path d="m42.7 48.3c0 0 10.2-2.8 19.3-2.8v2.7c-6.6 0-19.6 2.9-19.6 2.9l.3-2.8" fill="#935e3e"/><path d="m17.9 14.1c0 0 6.5-6.5 9.4-7.9 10.6-5.3 20.2 7.6 19.9 18.5-.2 6.3-1.1 15.9-2.5 22-2.1 9-14.9 9.3-20.5 8.7l-6.3-41.3" fill="#b47d56"/><path d="m24.2 54.2c10.9 0 18.1-3.3 21.4-8.4-.5 6.8-9.8 11-21.4 10 0 0 0-1.6 0-1.6" fill="#935e3e"/><path d="M30.2,6.2C12.2,4,5.1,13.5,3.1,17c-1.8,3.1-1.1,6.1,0.7,8c2,2.1,12.2,4.8,12.2,4.8S37,7,30.2,6.2z" fill="#b47d56"/><path d="m37 36c-6.9-.6-9.5-6-10.6-8.5l-.9 4c0 0 1.7 5.2 8.4 5.4 1.7.1 3.3-.2 4.7-.9-.5.1-1.1.1-1.6 0" fill="#935e3e"/><path d="m14.6 46.2l3.2 3.1 4.2-.4c4.9-.4 5.5 8.9.6 9.3l-5.9.6c-1.1.1-1.9-.1-2.8-1.1l-4.5-4.4c-3.9-3.7 1.4-10.8 5.2-7.1" fill="#b47d56"/><path d="m9.2 52.1l4.5 4.4c.9.9 1.7 1.1 2.8 1.1l5.9-.6c2.2-.2 3.3-2.1 3.4-4.2.3 2.4-.8 5.3-3.4 5.6l-6 .6c-1.1.1-1.8-.3-2.7-1.3l-4.5-4.4c-1-1-1.4-2.3-1.3-3.5.3.8.6 1.6 1.3 2.3" fill="#935e3e"/><path d="m13 36.5l3.7 3.7 4.9-.5c5.8-.5 6.5 10.5.7 11l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-4.3-4.4 1.9-12.8 6.3-8.4" fill="#b47d56"/><path d="m6.7 43.4l5.3 5.2c1.1 1.1 2 1.3 3.3 1.3l7-.7c2.6-.2 3.9-2.5 4-4.9.4 2.9-.9 6.1-3.9 6.4l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-1.2-1.2-1.6-2.7-1.5-4.1.2.9.6 1.8 1.4 2.6" fill="#935e3e"/><path d="m12.7 25.3l4.4 4.3 5.7-.5c6.8-.6 7.6 12.2.8 12.8l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-5.2-5.2 2.1-14.9 7.3-9.8" fill="#b47d56"/><g fill="#935e3e"><path d="m5.3 33.4l6.2 6.1c1.3 1.3 2.3 1.6 3.8 1.5l8.2-.8c3-.3 4.5-2.9 4.7-5.7.4 3.4-1 7.1-4.6 7.4l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.2 1.1.7 2.1 1.6 3.1"/><path d="m14.4 20.2c0 0-.8-2.4-3.5-4.2 2.6.4 4.4 3 4.4 3l-.9 1.2"/><path d="m3.7 23.7l6.2 6.1c1.3 1.3 2.3 1.5 3.8 1.5l.1 1.7c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.1 1 .7 2.1 1.6 3.1"/></g><path d="m30.8 21.6l-5.1 3.8-1.1 6.9c-1.3 8.1-12.9 5.1-11.6-3l1.6-9.8c.4-1.8.5-3 2-4.1l7.2-5.4c6.2-4.4 13 7.2 7 11.6" fill="#b47d56"/><g fill="#935e3e"><path d="m18.6 37.1c-3.9-.1-7-3.6-6-7.8 2-8.4 1.7-10.8 2.5-12.3 2-3.4 12.1-10.6 12.8-11.1-.3.4-10.7 9.6-11.6 11.7-1 2.2-1.1 5.7-2 9.8-1.4 6.2.8 7.8 4.3 9.7"/><path d="m25.7 25.6c0 0 2-.7 4.5-3.3-1.6 3.8-3.3 4.1-3.3 4.1s-1.3 10.9-7 10.8c4.5-1.6 5.8-11.6 5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3ff.svg
new file mode 100644
index 0000000..163866b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91b-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 7.8c2.7 1.7 6.2 5.5 10.4 7.2 3.8 1.5 11.9 2.3 11.9 2.3v31c0 0-14.8-1-19.6 2.9l-2.7-43.4" fill="#8a6859"/><path d="m42.7 48.3c0 0 10.2-2.8 19.3-2.8v2.7c-6.6 0-19.6 2.9-19.6 2.9l.3-2.8" fill="#705041"/><path d="m17.9 14.1c0 0 6.5-6.5 9.4-7.9 10.6-5.3 20.2 7.6 19.9 18.5-.2 6.3-1.1 15.9-2.5 22-2.1 9-14.9 9.3-20.5 8.7l-6.3-41.3" fill="#8a6859"/><path d="m24.2 54.2c10.9 0 18.1-3.3 21.4-8.4-.5 6.8-9.8 11-21.4 10 0 0 0-1.6 0-1.6" fill="#705041"/><path d="M30.2,6.2C12.2,4,5.1,13.5,3.1,17c-1.8,3.1-1.1,6.1,0.7,8c2,2.1,12.2,4.8,12.2,4.8S37,6.9,30.2,6.2z" fill="#8a6859"/><path d="m37 36c-6.9-.6-9.5-6-10.6-8.5l-.9 4c0 0 1.7 5.2 8.4 5.4 1.7.1 3.3-.2 4.7-.9-.5.1-1.1.1-1.6 0" fill="#705041"/><path d="m14.6 46.2l3.2 3.1 4.2-.4c4.9-.4 5.5 8.9.6 9.3l-5.9.6c-1.1.1-1.9-.1-2.8-1.1l-4.5-4.4c-3.9-3.7 1.4-10.8 5.2-7.1" fill="#8a6859"/><path d="m9.2 52l4.5 4.4c.9.9 1.7 1.1 2.8 1.1l5.9-.6c2.2-.2 3.3-2.1 3.4-4.2.3 2.4-.8 5.3-3.4 5.6l-6 .6c-1.1.1-1.8-.3-2.7-1.3l-4.5-4.4c-1-1-1.4-2.3-1.3-3.5.3.9.6 1.7 1.3 2.3" fill="#705041"/><path d="m13 36.5l3.7 3.7 4.9-.5c5.8-.5 6.5 10.5.7 11l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-4.3-4.4 1.9-12.8 6.3-8.4" fill="#8a6859"/><path d="m6.7 43.4l5.3 5.2c1.1 1.1 2 1.3 3.3 1.3l7-.7c2.6-.2 3.9-2.5 4-4.9.4 2.9-.9 6.1-3.9 6.4l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-1.2-1.2-1.6-2.7-1.5-4.1.2.9.6 1.8 1.4 2.6" fill="#705041"/><path d="m12.7 25.3l4.4 4.3 5.7-.5c6.8-.6 7.6 12.2.8 12.8l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.2c-5.2-5.1 2.1-14.8 7.3-9.7" fill="#8a6859"/><g fill="#705041"><path d="m5.3 33.4l6.2 6.1c1.3 1.3 2.3 1.6 3.8 1.5l8.2-.8c3-.3 4.5-2.9 4.7-5.7.4 3.4-1 7.1-4.6 7.4l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.2 1.1.7 2.1 1.6 3.1"/><path d="m14.4 20.2c0 0-.8-2.4-3.5-4.2 2.6.4 4.4 3 4.4 3l-.9 1.2"/><path d="m3.7 23.6l6.2 6.1c1.3 1.3 2.3 1.5 3.8 1.5l.1 1.7c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.1 1.1.7 2.2 1.6 3.1"/></g><path d="m30.8 21.6l-5.1 3.8-1.1 6.9c-1.3 8.1-12.9 5.1-11.6-3l1.6-9.8c.4-1.8.5-3 2-4.1l7.2-5.4c6.2-4.4 13 7.2 7 11.6" fill="#8a6859"/><g fill="#705041"><path d="m18.6 37.1c-3.9-.1-7-3.6-6-7.8 2-8.4 1.7-10.8 2.5-12.3 2-3.4 12.1-10.6 12.8-11.1-.3.4-10.7 9.6-11.6 11.7-1 2.2-1.1 5.7-2 9.8-1.4 6.2.8 7.8 4.3 9.7"/><path d="m25.7 25.6c0 0 2-.7 4.5-3.3-1.6 3.8-3.3 4.1-3.3 4.1s-1.3 10.9-7 10.8c4.5-1.6 5.8-11.6 5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91b.svg
new file mode 100644
index 0000000..ea97a80
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91b.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.6 7.8c2.7 1.7 6.2 5.5 10.4 7.2 3.8 1.5 11.9 2.3 11.9 2.3v31c0 0-14.8-1-19.6 2.9l-2.7-43.4" fill="#ffdd67"/><path d="m42.7 48.3c0 0 10.2-2.8 19.3-2.8v2.7c-6.6 0-19.6 2.9-19.6 2.9l.3-2.8" fill="#eba352"/><path d="m17.9 14.1c0 0 6.5-6.5 9.4-7.9 10.6-5.3 20.2 7.6 19.9 18.5-.2 6.3-1.1 15.9-2.5 22-2.1 9-14.9 9.3-20.5 8.7l-6.3-41.3" fill="#ffdd67"/><path d="m24.2 54.2c10.9 0 18.1-3.3 21.5-8.4-.5 6.8-9.8 11-21.5 10v-1.6" fill="#eba352"/><path d="M30.2,6.2C12.2,4,5.1,13.5,3.1,17c-1.8,3.1-1.1,6.1,0.7,8c2,2.1,12.2,4.8,12.2,4.8S37,7,30.2,6.2z" fill="#ffdd67"/><path d="m37 36c-6.9-.6-9.5-6-10.6-8.5l-.9 4c0 0 1.7 5.2 8.4 5.4 1.7.1 3.3-.2 4.7-.9-.5.1-1.1.1-1.6 0" fill="#eba352"/><path d="m14.6 46.2l3.2 3.1 4.2-.4c4.9-.4 5.5 8.9.6 9.3l-5.9.6c-1.1.1-1.9-.1-2.8-1.1l-4.5-4.4c-3.9-3.7 1.4-10.8 5.2-7.1" fill="#ffdd67"/><path d="m9.2 52l4.5 4.4c.9.9 1.7 1.1 2.8 1.1l5.9-.6c2.2-.2 3.3-2.1 3.4-4.2.3 2.4-.8 5.3-3.4 5.6l-6 .6c-1.1.1-1.8-.3-2.7-1.3l-4.5-4.4c-1-1-1.4-2.3-1.3-3.5.3.9.6 1.7 1.3 2.3" fill="#eba352"/><path d="m13 36.5l3.7 3.7 4.9-.5c5.8-.5 6.5 10.5.7 11l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-4.3-4.4 1.9-12.8 6.3-8.4" fill="#ffdd67"/><path d="m6.7 43.4l5.3 5.2c1.1 1.1 2 1.3 3.3 1.3l7-.7c2.6-.2 3.9-2.5 4-4.9.4 2.9-.9 6.1-3.9 6.4l-7 .7c-1.3.1-2.2-.2-3.3-1.3l-5.3-5.2c-1.2-1.2-1.6-2.7-1.5-4.1.2.9.6 1.8 1.4 2.6" fill="#eba352"/><path d="m12.7 25.3l4.4 4.3 5.7-.5c6.8-.6 7.6 12.2.8 12.8l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.2c-5.2-5.1 2.1-14.8 7.3-9.7" fill="#ffdd67"/><g fill="#eba352"><path d="m5.3 33.4l6.2 6.1c1.3 1.3 2.3 1.6 3.8 1.5l8.2-.8c3-.3 4.5-2.9 4.7-5.7.4 3.4-1 7.1-4.6 7.4l-8.2.8c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.2 1.1.7 2.1 1.6 3.1"/><path d="m14.4 20.2c0 0-.8-2.4-3.5-4.2 2.6.4 4.4 3 4.4 3l-.9 1.2"/><path d="m3.7 23.6l6.2 6.1c1.3 1.3 2.3 1.5 3.8 1.5l.1 1.7c-1.5.1-2.6-.2-3.8-1.5l-6.2-6.1c-1.4-1.4-1.9-3.1-1.7-4.8.1 1.1.7 2.2 1.6 3.1"/></g><path d="m30.8 21.6l-5.1 3.8-1.1 6.9c-1.3 8.1-12.9 5.1-11.6-3l1.6-9.8c.3-1.8.5-3 2-4.1l7.2-5.4c6.2-4.4 13 7.2 7 11.6" fill="#ffdd67"/><g fill="#eba352"><path d="m18.6 37.1c-3.9-.1-7-3.6-6-7.8 2-8.4 1.7-10.8 2.5-12.3 2-3.4 12.1-10.6 12.8-11.1-.3.4-10.7 9.6-11.6 11.7-1 2.2-1.1 5.7-2 9.8-1.4 6.2.8 7.8 4.3 9.7"/><path d="m25.7 25.6c0 0 2-.7 4.5-3.3-1.6 3.8-3.3 4.1-3.3 4.1s-1.3 10.9-7 10.8c4.5-1.6 5.8-11.6 5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fb.svg
new file mode 100644
index 0000000..d3c0de3
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 7.8c-2.7 1.7-6.2 5.5-10.4 7.2-3.9 1.5-12 2.3-12 2.3v31c0 0 14.8-1 19.6 2.9l2.8-43.4" fill="#ffe1bd"/><path d="m21.3 48.3c0 0-10.2-2.8-19.3-2.8v2.7c6.6 0 19.6 2.9 19.6 2.9l-.3-2.8" fill="#e6b796"/><path d="m46.1 14.1c0 0-6.5-6.5-9.4-7.9-10.6-5.3-20.2 7.6-19.9 18.5.2 6.3 1.1 15.9 2.5 22 2.1 9 14.9 9.3 20.5 8.7l6.3-41.3" fill="#ffe1bd"/><path d="m39.8 54.2c-10.9 0-18.1-3.3-21.5-8.4.5 6.8 9.8 11 21.5 10v-1.6" fill="#e6b796"/><path d="M33.8,6.2C51.8,4,58.9,13.5,60.9,17c1.8,3.1,1.1,6.1-0.7,8c-2,2.1-12.2,4.8-12.2,4.8S27,7,33.8,6.2z" fill="#ffe1bd"/><path d="m27 36c6.9-.6 9.5-6 10.6-8.5l.9 4c0 0-1.7 5.2-8.4 5.4-1.7.1-3.3-.2-4.7-.9.5.1 1.1.1 1.6 0" fill="#e6b796"/><path d="m49.4 46.2l-3.2 3.1-4.2-.4c-4.9-.4-5.5 8.9-.6 9.3l5.9.6c1.1.1 1.9-.1 2.8-1.1l4.5-4.4c3.9-3.7-1.4-10.8-5.2-7.1" fill="#ffe1bd"/><path d="m54.8 52.1l-4.5 4.4c-.9.9-1.7 1.1-2.8 1.1l-6-.6c-2.2-.2-3.3-2.1-3.4-4.2-.3 2.4.8 5.3 3.4 5.6l6 .6c1.1.1 1.8-.3 2.7-1.3l4.5-4.4c1-1 1.4-2.3 1.3-3.5-.2.8-.5 1.6-1.2 2.3" fill="#e6b796"/><path d="m51 36.5l-3.7 3.7-4.9-.5c-5.8-.5-6.5 10.5-.7 11l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c4.3-4.4-1.9-12.8-6.3-8.4" fill="#ffe1bd"/><path d="m57.3 43.4l-5.3 5.2c-1.1 1.1-2 1.3-3.3 1.3l-7-.7c-2.6-.2-3.9-2.5-4-4.9-.4 2.9.9 6.1 3.9 6.4l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c1.2-1.2 1.6-2.7 1.5-4.1-.2.9-.6 1.8-1.4 2.6" fill="#e6b796"/><path d="m51.3 25.3l-4.3 4.3-5.8-.6c-6.8-.6-7.6 12.2-.8 12.8l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c5.2-5.1-2.1-14.8-7.3-9.7" fill="#ffe1bd"/><g fill="#e6b796"><path d="m58.7 33.4l-6.2 6.1c-1.3 1.3-2.3 1.6-3.8 1.5l-8.2-.8c-3-.3-4.5-2.9-4.7-5.7-.4 3.4 1 7.1 4.6 7.4l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.2 1.1-.7 2.1-1.6 3.1"/><path d="m49.6 20.2c0 0 .8-2.4 3.5-4.2-2.6.4-4.4 3-4.4 3l.9 1.2"/><path d="m60.3 23.7l-6.2 6.1c-1.3 1.3-2.3 1.5-3.8 1.5l-.1 1.7c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.1 1-.6 2.1-1.6 3.1"/></g><path d="m33.2 21.6l5.1 3.8 1.1 6.9c1.3 8.1 12.9 5.1 11.6-3l-1.7-9.8c-.3-1.8-.5-3-2-4.1l-7.3-5.3c-6-4.5-12.8 7.1-6.8 11.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m45.4 37.1c3.9-.1 7-3.6 6-7.8-2-8.4-1.7-10.8-2.5-12.3-2-3.4-12.1-10.6-12.8-11.1.3.4 10.7 9.6 11.6 11.7 1 2.2 1.1 5.7 2 9.8 1.4 6.2-.8 7.8-4.3 9.7"/><path d="m38.3 25.6c0 0-2-.7-4.5-3.3 1.6 3.8 3.3 4.1 3.3 4.1s1.3 10.9 7 10.8c-4.5-1.6-5.8-11.6-5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fc.svg
new file mode 100644
index 0000000..9459974
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 7.8c-2.7 1.7-6.2 5.5-10.4 7.2-3.9 1.5-12 2.3-12 2.3v31c0 0 14.8-1 19.6 2.9l2.8-43.4" fill="#fed0ac"/><path d="m21.3 48.3c0 0-10.2-2.8-19.3-2.8v2.7c6.6 0 19.6 2.9 19.6 2.9l-.3-2.8" fill="#e0a372"/><path d="m46.1 14.1c0 0-6.5-6.5-9.4-7.9-10.6-5.3-20.2 7.6-19.9 18.5.2 6.3 1.1 15.9 2.5 22 2.1 9 14.9 9.3 20.5 8.7l6.3-41.3" fill="#fed0ac"/><path d="m39.8 54.2c-10.9 0-18.1-3.3-21.5-8.4.5 6.8 9.8 11 21.5 10v-1.6" fill="#e0a372"/><path d="M33.8,6.2C51.8,4,58.9,13.5,60.9,17c1.8,3.1,1.1,6.1-0.7,8c-2,2.1-12.2,4.8-12.2,4.8S27,7,33.8,6.2z" fill="#fed0ac"/><path d="m27 36c6.9-.6 9.5-6 10.6-8.5l.9 4c0 0-1.7 5.2-8.4 5.4-1.7.1-3.3-.2-4.7-.9.5.1 1.1.1 1.6 0" fill="#e0a372"/><path d="m49.4 46.2l-3.2 3.1-4.2-.4c-4.9-.4-5.5 8.9-.6 9.3l5.9.6c1.1.1 1.9-.1 2.8-1.1l4.5-4.4c3.9-3.7-1.4-10.8-5.2-7.1" fill="#fed0ac"/><path d="m54.8 52.1l-4.5 4.4c-.9.9-1.7 1.1-2.8 1.1l-6-.6c-2.2-.2-3.3-2.1-3.4-4.2-.3 2.4.8 5.3 3.4 5.6l6 .6c1.1.1 1.8-.3 2.7-1.3l4.5-4.4c1-1 1.4-2.3 1.3-3.5-.2.8-.5 1.6-1.2 2.3" fill="#e0a372"/><path d="m51 36.5l-3.7 3.7-4.9-.5c-5.8-.5-6.5 10.5-.7 11l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c4.3-4.4-1.9-12.8-6.3-8.4" fill="#fed0ac"/><path d="m57.3 43.4l-5.3 5.2c-1.1 1.1-2 1.3-3.3 1.3l-7-.7c-2.6-.2-3.9-2.5-4-4.9-.4 2.9.9 6.1 3.9 6.4l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c1.2-1.2 1.6-2.7 1.5-4.1-.2.9-.6 1.8-1.4 2.6" fill="#e0a372"/><path d="m51.3 25.3l-4.3 4.3-5.8-.6c-6.8-.6-7.6 12.2-.8 12.8l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c5.2-5.1-2.1-14.8-7.3-9.7" fill="#fed0ac"/><g fill="#e0a372"><path d="m58.7 33.4l-6.2 6.1c-1.3 1.3-2.3 1.6-3.8 1.5l-8.2-.8c-3-.3-4.5-2.9-4.7-5.7-.4 3.4 1 7.1 4.6 7.4l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.2 1.1-.7 2.1-1.6 3.1"/><path d="m49.6 20.2c0 0 .8-2.4 3.5-4.2-2.6.4-4.4 3-4.4 3l.9 1.2"/><path d="m60.3 23.7l-6.2 6.1c-1.3 1.3-2.3 1.5-3.8 1.5l-.1 1.7c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.1 1-.6 2.1-1.6 3.1"/></g><path d="m33.2 21.6l5.1 3.8 1.1 6.9c1.3 8.1 12.9 5.1 11.6-3l-1.7-9.8c-.3-1.8-.5-3-2-4.1l-7.3-5.3c-6-4.5-12.8 7.1-6.8 11.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m45.4 37.1c3.9-.1 7-3.6 6-7.8-2-8.4-1.7-10.8-2.5-12.3-2-3.4-12.1-10.6-12.8-11.1.3.4 10.7 9.6 11.6 11.7 1 2.2 1.1 5.7 2 9.8 1.4 6.2-.8 7.8-4.3 9.7"/><path d="m38.3 25.6c0 0-2-.7-4.5-3.3 1.6 3.8 3.3 4.1 3.3 4.1s1.3 10.9 7 10.8c-4.5-1.6-5.8-11.6-5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fd.svg
new file mode 100644
index 0000000..c540bb0
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 7.8c-2.7 1.7-6.2 5.5-10.4 7.2-3.9 1.5-12 2.3-12 2.3v31c0 0 14.8-1 19.6 2.9l2.8-43.4" fill="#d6a57c"/><path d="m21.3 48.3c0 0-10.2-2.8-19.3-2.8v2.7c6.6 0 19.6 2.9 19.6 2.9l-.3-2.8" fill="#b58360"/><path d="m46.1 14.1c0 0-6.5-6.5-9.4-7.9-10.6-5.3-20.2 7.6-19.9 18.5.2 6.3 1.1 15.9 2.5 22 2.1 9 14.9 9.3 20.5 8.7l6.3-41.3" fill="#d6a57c"/><path d="m39.8 54.2c-10.9 0-18.1-3.3-21.5-8.4.5 6.8 9.8 11 21.5 10v-1.6" fill="#b58360"/><path d="M33.8,6.2C51.8,4,58.9,13.5,60.9,17c1.8,3.1,1.1,6.1-0.7,8c-2,2.1-12.2,4.8-12.2,4.8S27,7,33.8,6.2z" fill="#d6a57c"/><path d="m27 36c6.9-.6 9.5-6 10.6-8.5l.9 4c0 0-1.7 5.2-8.4 5.4-1.7.1-3.3-.2-4.7-.9.5.1 1.1.1 1.6 0" fill="#b58360"/><path d="m49.4 46.2l-3.2 3.1-4.2-.4c-4.9-.4-5.5 8.9-.6 9.3l5.9.6c1.1.1 1.9-.1 2.8-1.1l4.5-4.4c3.9-3.7-1.4-10.8-5.2-7.1" fill="#d6a57c"/><path d="m54.8 52.1l-4.5 4.4c-.9.9-1.7 1.1-2.8 1.1l-6-.6c-2.2-.2-3.3-2.1-3.4-4.2-.3 2.4.8 5.3 3.4 5.6l6 .6c1.1.1 1.8-.3 2.7-1.3l4.5-4.4c1-1 1.4-2.3 1.3-3.5-.2.8-.5 1.6-1.2 2.3" fill="#b58360"/><path d="m51 36.5l-3.7 3.7-4.9-.5c-5.8-.5-6.5 10.5-.7 11l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c4.3-4.4-1.9-12.8-6.3-8.4" fill="#d6a57c"/><path d="m57.3 43.4l-5.3 5.2c-1.1 1.1-2 1.3-3.3 1.3l-7-.7c-2.6-.2-3.9-2.5-4-4.9-.4 2.9.9 6.1 3.9 6.4l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c1.2-1.2 1.6-2.7 1.5-4.1-.2.9-.6 1.8-1.4 2.6" fill="#b58360"/><path d="m51.3 25.3l-4.3 4.3-5.8-.6c-6.8-.6-7.6 12.2-.8 12.8l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c5.2-5.1-2.1-14.8-7.3-9.7" fill="#d6a57c"/><g fill="#b58360"><path d="m58.7 33.4l-6.2 6.1c-1.3 1.3-2.3 1.6-3.8 1.5l-8.2-.8c-3-.3-4.5-2.9-4.7-5.7-.4 3.4 1 7.1 4.6 7.4l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.2 1.1-.7 2.1-1.6 3.1"/><path d="m49.6 20.2c0 0 .8-2.4 3.5-4.2-2.6.4-4.4 3-4.4 3l.9 1.2"/><path d="m60.3 23.7l-6.2 6.1c-1.3 1.3-2.3 1.5-3.8 1.5l-.1 1.7c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.1 1-.6 2.1-1.6 3.1"/></g><path d="m33.2 21.6l5.1 3.8 1.1 6.9c1.3 8.1 12.9 5.1 11.6-3l-1.7-9.8c-.3-1.8-.5-3-2-4.1l-7.3-5.3c-6-4.5-12.8 7.1-6.8 11.5" fill="#d6a57c"/><g fill="#b58360"><path d="m45.4 37.1c3.9-.1 7-3.6 6-7.8-2-8.4-1.7-10.8-2.5-12.3-2-3.4-12.1-10.6-12.8-11.1.3.4 10.7 9.6 11.6 11.7 1 2.2 1.1 5.7 2 9.8 1.4 6.2-.8 7.8-4.3 9.7"/><path d="m38.3 25.6c0 0-2-.7-4.5-3.3 1.6 3.8 3.3 4.1 3.3 4.1s1.3 10.9 7 10.8c-4.5-1.6-5.8-11.6-5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fe.svg
new file mode 100644
index 0000000..c3a410c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 7.8c-2.7 1.7-6.2 5.5-10.4 7.2-3.9 1.5-12 2.3-12 2.3v31c0 0 14.8-1 19.6 2.9l2.8-43.4" fill="#b47d56"/><path d="m21.3 48.3c0 0-10.2-2.8-19.3-2.8v2.7c6.6 0 19.6 2.9 19.6 2.9l-.3-2.8" fill="#935e3e"/><path d="m46.1 14.1c0 0-6.5-6.5-9.4-7.9-10.6-5.3-20.2 7.6-19.9 18.5.2 6.3 1.1 15.9 2.5 22 2.1 9 14.9 9.3 20.5 8.7l6.3-41.3" fill="#b47d56"/><path d="m39.8 54.2c-10.9 0-18.1-3.3-21.5-8.4.5 6.8 9.8 11 21.5 10v-1.6" fill="#935e3e"/><path d="M33.8,6.2C51.8,4,58.9,13.5,60.9,17c1.8,3.1,1.1,6.1-0.7,8c-2,2.1-12.2,4.8-12.2,4.8S27,7,33.8,6.2z" fill="#b47d56"/><path d="m27 36c6.9-.6 9.5-6 10.6-8.5l.9 4c0 0-1.7 5.2-8.4 5.4-1.7.1-3.3-.2-4.7-.9.5.1 1.1.1 1.6 0" fill="#935e3e"/><path d="m49.4 46.2l-3.2 3.1-4.2-.4c-4.9-.4-5.5 8.9-.6 9.3l5.9.6c1.1.1 1.9-.1 2.8-1.1l4.5-4.4c3.9-3.7-1.4-10.8-5.2-7.1" fill="#b47d56"/><path d="m54.8 52.1l-4.5 4.4c-.9.9-1.7 1.1-2.8 1.1l-6-.6c-2.2-.2-3.3-2.1-3.4-4.2-.3 2.4.8 5.3 3.4 5.6l6 .6c1.1.1 1.8-.3 2.7-1.3l4.5-4.4c1-1 1.4-2.3 1.3-3.5-.2.8-.5 1.6-1.2 2.3" fill="#935e3e"/><path d="m51 36.5l-3.7 3.7-4.9-.5c-5.8-.5-6.5 10.5-.7 11l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c4.3-4.4-1.9-12.8-6.3-8.4" fill="#b47d56"/><path d="m57.3 43.4l-5.3 5.2c-1.1 1.1-2 1.3-3.3 1.3l-7-.7c-2.6-.2-3.9-2.5-4-4.9-.4 2.9.9 6.1 3.9 6.4l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c1.2-1.2 1.6-2.7 1.5-4.1-.2.9-.6 1.8-1.4 2.6" fill="#935e3e"/><path d="m51.3 25.3l-4.3 4.3-5.8-.6c-6.8-.6-7.6 12.2-.8 12.8l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c5.2-5.1-2.1-14.8-7.3-9.7" fill="#b47d56"/><g fill="#935e3e"><path d="m58.7 33.4l-6.2 6.1c-1.3 1.3-2.3 1.6-3.8 1.5l-8.2-.8c-3-.3-4.5-2.9-4.7-5.7-.4 3.4 1 7.1 4.6 7.4l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.2 1.1-.7 2.1-1.6 3.1"/><path d="m49.6 20.2c0 0 .8-2.4 3.5-4.2-2.6.4-4.4 3-4.4 3l.9 1.2"/><path d="m60.3 23.7l-6.2 6.1c-1.3 1.3-2.3 1.5-3.8 1.5l-.1 1.7c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.1 1-.6 2.1-1.6 3.1"/></g><path d="m33.2 21.6l5.1 3.8 1.1 6.9c1.3 8.1 12.9 5.1 11.6-3l-1.7-9.8c-.3-1.8-.5-3-2-4.1l-7.3-5.3c-6-4.5-12.8 7.1-6.8 11.5" fill="#b47d56"/><g fill="#935e3e"><path d="m45.4 37.1c3.9-.1 7-3.6 6-7.8-2-8.4-1.7-10.8-2.5-12.3-2-3.4-12.1-10.6-12.8-11.1.3.4 10.7 9.6 11.6 11.7 1 2.2 1.1 5.7 2 9.8 1.4 6.2-.8 7.8-4.3 9.7"/><path d="m38.3 25.6c0 0-2-.7-4.5-3.3 1.6 3.8 3.3 4.1 3.3 4.1s1.3 10.9 7 10.8c-4.5-1.6-5.8-11.6-5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3ff.svg
new file mode 100644
index 0000000..1ff1b64
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91c-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 7.8c-2.7 1.7-6.2 5.5-10.4 7.2-3.9 1.5-12 2.3-12 2.3v31c0 0 14.8-1 19.6 2.9l2.8-43.4" fill="#8a6859"/><path d="m21.3 48.3c0 0-10.2-2.8-19.3-2.8v2.7c6.6 0 19.6 2.9 19.6 2.9l-.3-2.8" fill="#705041"/><path d="m46.1 14.1c0 0-6.5-6.5-9.4-7.9-10.6-5.3-20.2 7.6-19.9 18.5.2 6.3 1.1 15.9 2.5 22 2.1 9 14.9 9.3 20.5 8.7l6.3-41.3" fill="#8a6859"/><path d="m39.8 54.2c-10.9 0-18.1-3.3-21.5-8.4.5 6.8 9.8 11 21.5 10v-1.6" fill="#705041"/><path d="M33.8,6.2C51.8,4,58.9,13.5,60.9,17c1.8,3.1,1.1,6.1-0.7,8c-2,2.1-12.2,4.8-12.2,4.8S27,7,33.8,6.2z" fill="#8a6859"/><path d="m27 36c6.9-.6 9.5-6 10.6-8.5l.9 4c0 0-1.7 5.2-8.4 5.4-1.7.1-3.3-.2-4.7-.9.5.1 1.1.1 1.6 0" fill="#705041"/><path d="m49.4 46.2l-3.2 3.1-4.2-.4c-4.9-.4-5.5 8.9-.6 9.3l5.9.6c1.1.1 1.9-.1 2.8-1.1l4.5-4.4c3.9-3.7-1.4-10.8-5.2-7.1" fill="#8a6859"/><path d="m54.8 52.1l-4.5 4.4c-.9.9-1.7 1.1-2.8 1.1l-6-.6c-2.2-.2-3.3-2.1-3.4-4.2-.3 2.4.8 5.3 3.4 5.6l6 .6c1.1.1 1.8-.3 2.7-1.3l4.5-4.4c1-1 1.4-2.3 1.3-3.5-.2.8-.5 1.6-1.2 2.3" fill="#705041"/><path d="m51 36.5l-3.7 3.7-4.9-.5c-5.8-.5-6.5 10.5-.7 11l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c4.3-4.4-1.9-12.8-6.3-8.4" fill="#8a6859"/><path d="m57.3 43.4l-5.3 5.2c-1.1 1.1-2 1.3-3.3 1.3l-7-.7c-2.6-.2-3.9-2.5-4-4.9-.4 2.9.9 6.1 3.9 6.4l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c1.2-1.2 1.6-2.7 1.5-4.1-.2.9-.6 1.8-1.4 2.6" fill="#705041"/><path d="m51.3 25.3l-4.3 4.3-5.8-.6c-6.8-.6-7.6 12.2-.8 12.8l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c5.2-5.1-2.1-14.8-7.3-9.7" fill="#8a6859"/><g fill="#705041"><path d="m58.7 33.4l-6.2 6.1c-1.3 1.3-2.3 1.6-3.8 1.5l-8.2-.8c-3-.3-4.5-2.9-4.7-5.7-.4 3.4 1 7.1 4.6 7.4l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.2 1.1-.7 2.1-1.6 3.1"/><path d="m49.6 20.2c0 0 .8-2.4 3.5-4.2-2.6.4-4.4 3-4.4 3l.9 1.2"/><path d="m60.3 23.7l-6.2 6.1c-1.3 1.3-2.3 1.5-3.8 1.5l-.1 1.7c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.1 1-.6 2.1-1.6 3.1"/></g><path d="m33.2 21.6l5.1 3.8 1.1 6.9c1.3 8.1 12.9 5.1 11.6-3l-1.7-9.8c-.3-1.8-.5-3-2-4.1l-7.3-5.3c-6-4.5-12.8 7.1-6.8 11.5" fill="#8a6859"/><g fill="#705041"><path d="m45.4 37.1c3.9-.1 7-3.6 6-7.8-2-8.4-1.7-10.8-2.5-12.3-2-3.4-12.1-10.6-12.8-11.1.3.4 10.7 9.6 11.6 11.7 1 2.2 1.1 5.7 2 9.8 1.4 6.2-.8 7.8-4.3 9.7"/><path d="m38.3 25.6c0 0-2-.7-4.5-3.3 1.6 3.8 3.3 4.1 3.3 4.1s1.3 10.9 7 10.8c-4.5-1.6-5.8-11.6-5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91c.svg
new file mode 100644
index 0000000..80a75c9
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91c.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m24.4 7.8c-2.7 1.7-6.2 5.5-10.4 7.2-3.9 1.5-12 2.3-12 2.3v31c0 0 14.8-1 19.6 2.9l2.8-43.4" fill="#ffdd67"/><path d="m21.3 48.3c0 0-10.2-2.8-19.3-2.8v2.7c6.6 0 19.6 2.9 19.6 2.9l-.3-2.8" fill="#eba352"/><path d="m46.1 14.1c0 0-6.5-6.5-9.4-7.9-10.6-5.3-20.2 7.6-19.9 18.5.2 6.3 1.1 15.9 2.5 22 2.1 9 14.9 9.3 20.5 8.7l6.3-41.3" fill="#ffdd67"/><path d="m39.8 54.2c-10.9 0-18.1-3.3-21.4-8.4.5 6.8 9.8 11 21.4 10v-1.6" fill="#eba352"/><path d="M33.8,6.2C51.8,4,58.9,13.5,60.9,17c1.8,3.1,1.1,6.1-0.7,8c-2,2.1-12.2,4.8-12.2,4.8S27,7,33.8,6.2z" fill="#ffdd67"/><path d="m27 36c6.9-.6 9.5-6 10.6-8.5l.9 4c0 0-1.7 5.2-8.4 5.4-1.7.1-3.3-.2-4.7-.9.5.1 1.1.1 1.6 0" fill="#eba352"/><path d="m49.4 46.2l-3.2 3.1-4.2-.4c-4.9-.4-5.5 8.9-.6 9.3l5.9.6c1.1.1 1.9-.1 2.8-1.1l4.5-4.4c3.9-3.7-1.4-10.8-5.2-7.1" fill="#ffdd67"/><path d="m54.8 52l-4.5 4.4c-.9.9-1.7 1.1-2.8 1.1l-6-.5c-2.2-.2-3.3-2.1-3.4-4.2-.3 2.4.8 5.3 3.4 5.6l6 .6c1.1.1 1.8-.3 2.7-1.3l4.5-4.4c1-1 1.4-2.3 1.3-3.5-.2.8-.5 1.6-1.2 2.2" fill="#eba352"/><path d="m51 36.5l-3.7 3.7-4.9-.5c-5.8-.5-6.5 10.5-.7 11l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c4.3-4.4-1.9-12.8-6.3-8.4" fill="#ffdd67"/><path d="m57.3 43.4l-5.3 5.2c-1.1 1.1-2 1.3-3.3 1.3l-7-.7c-2.6-.2-3.9-2.5-4-4.9-.4 2.9.9 6.1 3.9 6.4l7 .7c1.3.1 2.2-.2 3.3-1.3l5.3-5.2c1.2-1.2 1.6-2.7 1.5-4.1-.2.9-.6 1.8-1.4 2.6" fill="#eba352"/><path d="m51.3 25.3l-4.3 4.3-5.8-.6c-6.8-.6-7.6 12.2-.8 12.8l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c5.2-5.1-2.1-14.8-7.3-9.7" fill="#ffdd67"/><g fill="#eba352"><path d="m58.7 33.4l-6.2 6.1c-1.3 1.3-2.3 1.6-3.8 1.5l-8.2-.8c-3-.3-4.5-2.9-4.7-5.7-.4 3.4 1 7.1 4.6 7.4l8.2.8c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.2 1.1-.7 2.1-1.6 3.1"/><path d="m49.6 20.2c0 0 .8-2.4 3.5-4.2-2.6.4-4.4 3-4.4 3l.9 1.2"/><path d="m60.3 23.6l-6.2 6.1c-1.3 1.3-2.3 1.5-3.8 1.5l-.1 1.7c1.5.1 2.6-.2 3.8-1.5l6.2-6.1c1.4-1.4 1.9-3.1 1.7-4.8-.1 1.1-.7 2.2-1.6 3.1"/></g><path d="m33.2 21.6l5.1 3.8 1.1 6.9c1.3 8.1 12.9 5.1 11.6-3l-1.7-9.8c-.3-1.8-.5-3-2-4.1l-7.3-5.3c-6-4.5-12.8 7.1-6.8 11.5" fill="#ffdd67"/><g fill="#eba352"><path d="m45.4 37.1c3.9-.1 7-3.6 6-7.8-2-8.4-1.7-10.8-2.5-12.3-2-3.4-12.1-10.6-12.8-11.1.3.4 10.7 9.6 11.6 11.7 1 2.2 1.1 5.7 2 9.8 1.4 6.2-.8 7.8-4.3 9.7"/><path d="m38.3 25.6c0 0-2-.7-4.5-3.3 1.6 3.8 3.3 4.1 3.3 4.1s1.3 10.9 7 10.8c-4.5-1.6-5.8-11.6-5.8-11.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fb.svg
new file mode 100644
index 0000000..bc7cf60
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 33.4l-1.2-18.1-8.3 5.1c-4.1-.7-5.2-.7-8.4-2.3-1.9-.9-4.3-.3-5.5.4-1.8-1.9-13.5.9-14.8 1.5-3.5-1-8.7-5.1-8.7-5.1l-1.7 20.5 2.3.6c.2.7.8 2.4.8 2.4-2.2 2.8.4 6.1 2.9 5-1.1 2.8 1.8 5.4 4.1 3.6-.3 2.6 2.4 4.5 4.4 2.7-.9 3.1 2.6 5.4 4.7 2.9 1.5 1 2.9 1.8 4.1 2.2 2.1.9 4.4-1.1 4-3.6 2.4 2.8 6 .1 5.2-3 2.7 2.1 6-1.4 4.3-4.5 3 1.7 5.6-2.9 2.7-5.9l9.1-4.4" fill="#ffe1bd"/><g fill="#e6b796"><path d="m13.9 36.3c1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.4 1.3.6.3 1.3.3 2 0 .1-.3.3-.7.6-1l.7-.8c.4-.5.9-.9 1.3-1.1.8-2.1-.6-4.1-2.4-4.2"/><path d="m25.4 46.2c1.6.4 2.8 2.5 1.6 4.8l-.6.9c-.6 1.1-1.4 1.6-2.2 1.7 1.1.3 2.3-.1 3.1-1.6l.6-.9c1.4-2.8-.5-5.1-2.5-4.9"/><path d="m18.3 45.4l1.6-2.5c-.1-1.4-1.3-2.6-2.5-2.7 1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.5 1.3.8.4 1.7.3 2.6-.3.1-.5.3-1.1.6-1.6"/><path d="m22.6 40.9c1.6.5 2.7 2.7 1.3 4.9l-1.9 3c-.7 1.1-1.5 1.5-2.3 1.5 1 .3 2.3 0 3.2-1.4l1.9-3c1.6-2.6-.2-5.1-2.2-5"/><path d="m35.9 43.4c.1 0 1.3-.2 1.7-.2-1.5-1.5-3.9-.3-5.3-1.1 1 1.7 3.1 1.3 3.3 1.3l2.4 3.1c2 2.5.4 5.4-1.7 5.7 2.2.7 4.4-1.6 3.7-4.1-.1-.1-4.1-4.7-4.1-4.7"/><path d="m38.3 37.6c0 0 1.5-.3 2.8-.3-1.5-1.2-3.8-.1-5.3-1.1.6 1.3 1.9 1.3 2.3 1.3l4.6 5.3c2.1 2.4.6 5.3-1.5 5.8 2.4.7 4.7-2.4 3.2-5.1-1-.3-6.1-5.9-6.1-5.9"/><path d="m35.1 49.1c-1.5-1.2-3.6-.3-4.5-.9.5 1.4 2.4 1.1 2.5 1.1 1.7 2.6-.1 5.3-2.2 5.5 2.1.9 4.4-1.1 4-3.6-.1-.1-1.5-1.9-1.5-1.9.2-.1 1.3-.2 1.7-.2"/><path d="m55.2 31.7c0 0-1.7 3.5-8.3 5.4-.9-1.1-2.8-3.3-5-5.2 1.4-.3 2.1-1.4 3.2-1.6-.4-.4-1.8-.2-2.9.2-2 .7-6.6-2.5-6.6-2.5l-3.8.5c-2.7 2.6-8.5 4-8.8 0-.2-2.8 5.9-4.7 7.8-6.5 2.4-2.3 4.5-5.2 8.4-3.2 3.2 1.6 4.5 1.5 8.9 2.3 1.5.3 2.5 1 3.6 2.5-.9-2.1-2.2-3-3.8-3.3l7-3.3.1-1.7-8.3 4.7c-3.8-.6-5.2-.6-8.3-2.1-2-1-3.6-.7-4.9.1-2.4-1.4-3.8-1.1-4.7-.9-2.8.9-7.3 1-11.3 2.6.7.2 1.4.4 1.9.4 3.9-1.2 8-1.1 9.9-1.8.6-.2 1.8-.2 3.1.5-.8.7-1.5 1.5-2.3 2.3-1.9 1.8-7.7 4.4-7.3 7.7.2 1.6 2.4 5.8 9.7 1.1l3.1-.4c0 0 5.7 2.7 11 8.9 2.1 2.4.8 5-1.3 5.6 2.7.5 5-3.3 2.4-5.9l6.3-3.4 1.2-3"/></g><path d="m53.4 16.3l3.3 17.1-2.7 1.2c-1.4-3.7-3.5-12.6-3-16.9l2.4-1.4" fill="#3b946f"/><path d="m11.1 38c-.5-1.2-.8-2.8-.8-2.8l-2.5-1.7-.2 1.9 2.2.6c.3 1 .6 1.8 1 2.4l.3-.4" fill="#e6b796"/><path d="m6.1 35.1l5.4-18.7 2.5 1.7c.4 2.8-4.2 15.6-5.9 17.5l-2-.5" fill="#3b946f"/><g fill="#47b892"><path d="m53.3 16.2c-.8.5 2.1 17.8 3.3 17.3 3.8-1.7 5.5-2.2 5.5-2.2v-20.6c-.1 0-2.4 1.7-8.8 5.5"/><path d="m2 9v25.5c0 0 1.8.3 4.1.8 1.3.3 6-18.5 5.7-18.8-3.4-2.3-9.8-7.5-9.8-7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fc.svg
new file mode 100644
index 0000000..c13f18b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 33.4l-1.2-18.1-8.3 5.1c-4.1-.7-5.2-.7-8.4-2.3-1.9-.9-4.3-.3-5.5.4-1.8-1.9-13.5.9-14.8 1.5-3.5-1-8.7-5.1-8.7-5.1l-1.8 20.5 2.4.6c.2.7.8 2.4.8 2.4-2.2 2.8.4 6.1 2.9 5-1.1 2.8 1.8 5.4 4.1 3.6-.3 2.6 2.4 4.5 4.4 2.7-.9 3.1 2.6 5.4 4.7 2.9 1.5 1 2.9 1.8 4.1 2.2 2.1.9 4.4-1.1 4-3.6 2.4 2.8 6 .1 5.2-3 2.7 2.1 6-1.4 4.3-4.5 3 1.7 5.6-2.9 2.7-5.9l9.1-4.4" fill="#fed0ac"/><g fill="#e0a372"><path d="m13.9 36.3c1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.4 1.3.6.3 1.3.3 2 0 .1-.3.3-.7.6-1l.7-.8c.4-.5.9-.9 1.3-1.1.8-2.1-.6-4.1-2.4-4.2"/><path d="m25.4 46.2c1.6.4 2.8 2.5 1.6 4.8l-.6.9c-.6 1.1-1.4 1.6-2.2 1.7 1.1.3 2.3-.1 3.1-1.6l.6-.9c1.4-2.8-.5-5.1-2.5-4.9"/><path d="m18.3 45.4l1.6-2.5c-.1-1.4-1.3-2.6-2.5-2.7 1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.5 1.3.8.4 1.7.3 2.6-.3.1-.5.3-1.1.6-1.6"/><path d="m22.6 40.9c1.6.5 2.7 2.7 1.3 4.9l-1.9 3c-.7 1.1-1.5 1.5-2.3 1.5 1 .3 2.3 0 3.2-1.4l1.9-3c1.6-2.6-.2-5.1-2.2-5"/><path d="m35.9 43.4c.1 0 1.3-.2 1.7-.2-1.5-1.5-3.9-.3-5.3-1.1 1 1.7 3.1 1.3 3.3 1.3l2.4 3.1c2 2.5.4 5.4-1.7 5.7 2.2.7 4.4-1.6 3.7-4.1-.1-.1-4.1-4.7-4.1-4.7"/><path d="m38.3 37.6c0 0 1.5-.3 2.8-.3-1.5-1.2-3.8-.1-5.3-1.1.6 1.3 1.9 1.3 2.3 1.3l4.6 5.3c2.1 2.4.6 5.3-1.5 5.8 2.4.7 4.7-2.4 3.2-5.1-1-.3-6.1-5.9-6.1-5.9"/><path d="m35.1 49.1c-1.5-1.2-3.6-.3-4.5-.9.5 1.4 2.4 1.1 2.5 1.1 1.7 2.6-.1 5.3-2.2 5.5 2.1.9 4.4-1.1 4-3.6-.1-.1-1.5-1.9-1.5-1.9.2-.1 1.3-.2 1.7-.2"/><path d="m55.2 31.7c0 0-1.7 3.5-8.3 5.4-.9-1.1-2.8-3.3-5-5.2 1.4-.3 2.1-1.4 3.2-1.6-.4-.4-1.8-.2-2.9.2-2 .7-6.6-2.5-6.6-2.5l-3.8.5c-2.7 2.6-8.5 4-8.8 0-.2-2.8 5.9-4.7 7.8-6.5 2.4-2.3 4.5-5.2 8.4-3.2 3.2 1.6 4.5 1.5 8.9 2.3 1.5.3 2.5 1 3.6 2.5-.9-2.1-2.2-3-3.8-3.3l7-3.3.1-1.7-8.3 4.7c-3.8-.6-5.2-.6-8.3-2.1-2-1-3.6-.7-4.9.1-2.4-1.4-3.8-1.1-4.7-.9-2.8.9-7.3 1-11.3 2.6.7.2 1.4.4 1.9.4 3.9-1.2 8-1.1 9.9-1.8.6-.2 1.8-.2 3.1.5-.8.7-1.5 1.5-2.3 2.3-1.9 1.8-7.7 4.4-7.3 7.7.2 1.6 2.4 5.8 9.7 1.1l3.1-.4c0 0 5.7 2.7 11 8.9 2.1 2.4.8 5-1.3 5.6 2.7.5 5-3.3 2.4-5.9l6.3-3.4 1.2-3"/></g><path d="m53.4 16.3l3.3 17.1-2.7 1.2c-1.4-3.7-3.5-12.6-3-16.9l2.4-1.4" fill="#3b946f"/><path d="m11.1 38c-.5-1.2-.8-2.8-.8-2.8l-2.5-1.7-.2 1.9 2.2.6c.3 1 .6 1.8 1 2.4l.3-.4" fill="#e0a372"/><path d="m6.1 35.1l5.4-18.7 2.5 1.7c.4 2.8-4.2 15.6-5.9 17.5l-2-.5" fill="#3b946f"/><g fill="#47b892"><path d="m53.3 16.2c-.8.5 2.1 17.8 3.3 17.3 3.8-1.7 5.5-2.2 5.5-2.2v-20.6c-.1 0-2.4 1.7-8.8 5.5"/><path d="m2 9v25.5c0 0 1.8.3 4.1.8 1.3.3 6-18.5 5.7-18.8-3.4-2.3-9.8-7.5-9.8-7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fd.svg
new file mode 100644
index 0000000..76871fc
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 33.4l-1.2-18.1-8.3 5.1c-4.1-.7-5.2-.7-8.4-2.3-1.9-.9-4.3-.3-5.5.4-1.8-1.9-13.5.9-14.8 1.5-3.5-1-8.7-5.1-8.7-5.1l-1.7 20.5 2.3.6c.2.7.8 2.4.8 2.4-2.2 2.8.4 6.1 2.9 5-1.1 2.8 1.8 5.4 4.1 3.6-.3 2.6 2.4 4.5 4.4 2.7-.9 3.1 2.6 5.4 4.7 2.9 1.5 1 2.9 1.8 4.1 2.2 2.1.9 4.4-1.1 4-3.6 2.4 2.8 6 .1 5.2-3 2.7 2.1 6-1.4 4.3-4.5 3 1.7 5.6-2.9 2.7-5.9l9.1-4.4" fill="#d6a57c"/><g fill="#b58360"><path d="m13.9 36.3c1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.4 1.3.6.3 1.3.3 2 0 .1-.3.3-.7.6-1l.7-.8c.4-.5.9-.9 1.3-1.1.8-2.1-.6-4.1-2.4-4.2"/><path d="m25.4 46.2c1.6.4 2.8 2.5 1.6 4.8l-.6.9c-.6 1.1-1.4 1.6-2.2 1.7 1.1.3 2.3-.1 3.1-1.6l.6-.9c1.4-2.8-.5-5.1-2.5-4.9"/><path d="m18.3 45.4l1.6-2.5c-.1-1.4-1.3-2.6-2.5-2.7 1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.5 1.3.8.4 1.7.3 2.6-.3.1-.5.3-1.1.6-1.6"/><path d="m22.6 40.9c1.6.5 2.7 2.7 1.3 4.9l-1.9 3c-.7 1.1-1.5 1.5-2.3 1.5 1 .3 2.3 0 3.2-1.4l1.9-3c1.6-2.6-.2-5.1-2.2-5"/><path d="m35.9 43.4c.1 0 1.3-.2 1.7-.2-1.5-1.5-3.9-.3-5.3-1.1 1 1.7 3.1 1.3 3.3 1.3l2.4 3.1c2 2.5.4 5.4-1.7 5.7 2.2.7 4.4-1.6 3.7-4.1-.1-.1-4.1-4.7-4.1-4.7"/><path d="m38.3 37.6c0 0 1.5-.3 2.8-.3-1.5-1.2-3.8-.1-5.3-1.1.6 1.3 1.9 1.3 2.3 1.3l4.6 5.3c2.1 2.4.6 5.3-1.5 5.8 2.4.7 4.7-2.4 3.2-5.1-1-.3-6.1-5.9-6.1-5.9"/><path d="m35.1 49.1c-1.5-1.2-3.6-.3-4.5-.9.5 1.4 2.4 1.1 2.5 1.1 1.7 2.6-.1 5.3-2.2 5.5 2.1.9 4.4-1.1 4-3.6-.1-.1-1.5-1.9-1.5-1.9.2-.1 1.3-.2 1.7-.2"/><path d="m55.2 31.7c0 0-1.7 3.5-8.3 5.4-.9-1.1-2.8-3.3-5-5.2 1.4-.3 2.1-1.4 3.2-1.6-.4-.4-1.8-.2-2.9.2-2 .7-6.6-2.5-6.6-2.5l-3.8.5c-2.7 2.6-8.5 4-8.8 0-.2-2.8 5.9-4.7 7.8-6.5 2.4-2.3 4.5-5.2 8.4-3.2 3.2 1.6 4.5 1.5 8.9 2.3 1.5.3 2.5 1 3.6 2.5-.9-2.1-2.2-3-3.8-3.3l7-3.3.1-1.7-8.3 4.7c-3.8-.6-5.2-.6-8.3-2.1-2-1-3.6-.7-4.9.1-2.4-1.4-3.8-1.1-4.7-.9-2.8.9-7.3 1-11.3 2.6.7.2 1.4.4 1.9.4 3.9-1.2 8-1.1 9.9-1.8.6-.2 1.8-.2 3.1.5-.8.7-1.5 1.5-2.3 2.3-1.9 1.8-7.7 4.4-7.3 7.7.2 1.6 2.4 5.8 9.7 1.1l3.1-.4c0 0 5.7 2.7 11 8.9 2.1 2.4.8 5-1.3 5.6 2.7.5 5-3.3 2.4-5.9l6.3-3.4 1.2-3"/></g><path d="m53.4 16.3l3.3 17.1-2.7 1.2c-1.4-3.7-3.5-12.6-3-16.9l2.4-1.4" fill="#3b946f"/><path d="m11.1 38c-.5-1.2-.8-2.8-.8-2.8l-2.5-1.7-.2 1.9 2.2.6c.3 1 .6 1.8 1 2.4l.3-.4" fill="#b58360"/><path d="m6.1 35.1l5.4-18.7 2.5 1.7c.4 2.8-4.2 15.6-5.9 17.5l-2-.5" fill="#3b946f"/><g fill="#47b892"><path d="m53.3 16.2c-.8.5 2.1 17.8 3.3 17.3 3.8-1.7 5.5-2.2 5.5-2.2v-20.6c-.1 0-2.4 1.7-8.8 5.5"/><path d="m2 9v25.5c0 0 1.8.3 4.1.8 1.3.3 6-18.5 5.7-18.8-3.4-2.3-9.8-7.5-9.8-7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fe.svg
new file mode 100644
index 0000000..45a6c82
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 33.4l-1.2-18.1-8.3 5.1c-4.1-.7-5.2-.7-8.4-2.3-1.9-.9-4.3-.3-5.5.4-1.8-1.9-13.5.9-14.8 1.5-3.5-1-8.7-5.1-8.7-5.1l-1.7 20.5 2.3.6c.2.7.8 2.4.8 2.4-2.2 2.8.4 6.1 2.9 5-1.1 2.8 1.8 5.4 4.1 3.6-.3 2.6 2.4 4.5 4.4 2.7-.9 3.1 2.6 5.4 4.7 2.9 1.5 1 2.9 1.8 4.1 2.2 2.1.9 4.4-1.1 4-3.6 2.4 2.8 6 .1 5.2-3 2.7 2.1 6-1.4 4.3-4.5 3 1.7 5.6-2.9 2.7-5.9l9.1-4.4" fill="#b47d56"/><g fill="#935e3e"><path d="m13.9 36.3c1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.4 1.3.6.3 1.3.3 2 0 .1-.3.3-.7.6-1l.7-.8c.4-.5.9-.9 1.3-1.1.8-2.1-.6-4.1-2.4-4.2"/><path d="m25.4 46.2c1.6.4 2.8 2.5 1.6 4.8l-.6.9c-.6 1.1-1.4 1.6-2.2 1.7 1.1.3 2.3-.1 3.1-1.6l.6-.9c1.4-2.8-.5-5.1-2.5-4.9"/><path d="m18.3 45.4l1.6-2.5c-.1-1.4-1.3-2.6-2.5-2.7 1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.5 1.3.8.4 1.7.3 2.6-.3.1-.5.3-1.1.6-1.6"/><path d="m22.6 40.9c1.6.5 2.7 2.7 1.3 4.9l-1.9 3c-.7 1.1-1.5 1.5-2.3 1.5 1 .3 2.3 0 3.2-1.4l1.9-3c1.6-2.6-.2-5.1-2.2-5"/><path d="m35.9 43.4c.1 0 1.3-.2 1.7-.2-1.5-1.5-3.9-.3-5.3-1.1 1 1.7 3.1 1.3 3.3 1.3l2.4 3.1c2 2.5.4 5.4-1.7 5.7 2.2.7 4.4-1.6 3.7-4.1-.1-.1-4.1-4.7-4.1-4.7"/><path d="m38.3 37.6c0 0 1.5-.3 2.8-.3-1.5-1.2-3.8-.1-5.3-1.1.6 1.3 1.9 1.3 2.3 1.3l4.6 5.3c2.1 2.4.6 5.3-1.5 5.8 2.4.7 4.7-2.4 3.2-5.1-1-.3-6.1-5.9-6.1-5.9"/><path d="m35.1 49.1c-1.5-1.2-3.6-.3-4.5-.9.5 1.4 2.4 1.1 2.5 1.1 1.7 2.6-.1 5.3-2.2 5.5 2.1.9 4.4-1.1 4-3.6-.1-.1-1.5-1.9-1.5-1.9.2-.1 1.3-.2 1.7-.2"/><path d="m55.2 31.7c0 0-1.7 3.5-8.3 5.4-.9-1.1-2.8-3.3-5-5.2 1.4-.3 2.1-1.4 3.2-1.6-.4-.4-1.8-.2-2.9.2-2 .7-6.6-2.5-6.6-2.5l-3.8.5c-2.7 2.6-8.5 4-8.8 0-.2-2.8 5.9-4.7 7.8-6.5 2.4-2.3 4.5-5.2 8.4-3.2 3.2 1.6 4.5 1.5 8.9 2.3 1.5.3 2.5 1 3.6 2.5-.9-2.1-2.2-3-3.8-3.3l7-3.3.1-1.7-8.3 4.7c-3.8-.6-5.2-.6-8.3-2.1-2-1-3.6-.7-4.9.1-2.4-1.4-3.8-1.1-4.7-.9-2.8.9-7.3 1-11.3 2.6.7.2 1.4.4 1.9.4 3.9-1.2 8-1.1 9.9-1.8.6-.2 1.8-.2 3.1.5-.8.7-1.5 1.5-2.3 2.3-1.9 1.8-7.7 4.4-7.3 7.7.2 1.6 2.4 5.8 9.7 1.1l3.1-.4c0 0 5.7 2.7 11 8.9 2.1 2.4.8 5-1.3 5.6 2.7.5 5-3.3 2.4-5.9l6.3-3.4 1.2-3"/></g><path d="m53.4 16.3l3.3 17.1-2.7 1.2c-1.4-3.7-3.5-12.6-3-16.9l2.4-1.4" fill="#3b946f"/><path d="m11.1 38c-.5-1.2-.8-2.8-.8-2.8l-2.5-1.7-.2 1.9 2.2.6c.3 1 .6 1.8 1 2.4l.3-.4" fill="#935e3e"/><path d="m6.1 35.1l5.4-18.7 2.5 1.7c.4 2.8-4.2 15.6-5.9 17.5l-2-.5" fill="#3b946f"/><g fill="#47b892"><path d="m53.3 16.2c-.8.5 2.1 17.8 3.3 17.3 3.8-1.7 5.5-2.2 5.5-2.2v-20.6c-.1 0-2.4 1.7-8.8 5.5"/><path d="m2 9v25.5c0 0 1.8.3 4.1.8 1.3.3 6-18.5 5.7-18.8-3.4-2.3-9.8-7.5-9.8-7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3ff.svg
new file mode 100644
index 0000000..4444426
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91d-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 33.4l-1.2-18.1-8.3 5.1c-4.1-.7-5.2-.7-8.4-2.3-1.9-.9-4.3-.3-5.5.4-1.8-1.9-13.5.9-14.8 1.5-3.5-1-8.7-5.1-8.7-5.1l-1.7 20.5 2.3.6c.2.7.8 2.4.8 2.4-2.2 2.8.4 6.1 2.9 5-1.1 2.8 1.8 5.4 4.1 3.6-.3 2.6 2.4 4.5 4.4 2.7-.9 3.1 2.6 5.4 4.7 2.9 1.5 1 2.9 1.8 4.1 2.2 2.1.9 4.4-1.1 4-3.6 2.4 2.8 6 .1 5.2-3 2.7 2.1 6-1.4 4.3-4.5 3 1.7 5.6-2.9 2.7-5.9l9.1-4.4" fill="#8a6859"/><g fill="#705041"><path d="m13.9 36.3c1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.4 1.3.6.3 1.3.3 2 0 .1-.3.3-.7.6-1l.7-.8c.4-.5.9-.9 1.3-1.1.8-2.1-.6-4.1-2.4-4.2"/><path d="m25.4 46.2c1.6.4 2.8 2.5 1.6 4.8l-.6.9c-.6 1.1-1.4 1.6-2.2 1.7 1.1.3 2.3-.1 3.1-1.6l.6-.9c1.4-2.8-.5-5.1-2.5-4.9"/><path d="m18.3 45.4l1.6-2.5c-.1-1.4-1.3-2.6-2.5-2.7 1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.5 1.3.8.4 1.7.3 2.6-.3.1-.5.3-1.1.6-1.6"/><path d="m22.6 40.9c1.6.5 2.7 2.7 1.3 4.9l-1.9 3c-.7 1.1-1.5 1.5-2.3 1.5 1 .3 2.3 0 3.2-1.4l1.9-3c1.6-2.6-.2-5.1-2.2-5"/><path d="m35.9 43.4c.1 0 1.3-.2 1.7-.2-1.5-1.5-3.9-.3-5.3-1.1 1 1.7 3.1 1.3 3.3 1.3l2.4 3.1c2 2.5.4 5.4-1.7 5.7 2.2.7 4.4-1.6 3.7-4.1-.1-.1-4.1-4.7-4.1-4.7"/><path d="m38.3 37.6c0 0 1.5-.3 2.8-.3-1.5-1.2-3.8-.1-5.3-1.1.6 1.3 1.9 1.3 2.3 1.3l4.6 5.3c2.1 2.4.6 5.3-1.5 5.8 2.4.7 4.7-2.4 3.2-5.1-1-.3-6.1-5.9-6.1-5.9"/><path d="m35.1 49.1c-1.5-1.2-3.6-.3-4.5-.9.5 1.4 2.4 1.1 2.5 1.1 1.7 2.6-.1 5.3-2.2 5.5 2.1.9 4.4-1.1 4-3.6-.1-.1-1.5-1.9-1.5-1.9.2-.1 1.3-.2 1.7-.2"/><path d="m55.2 31.7c0 0-1.7 3.5-8.3 5.4-.9-1.1-2.8-3.3-5-5.2 1.4-.3 2.1-1.4 3.2-1.6-.4-.4-1.8-.2-2.9.2-2 .7-6.6-2.5-6.6-2.5l-3.8.5c-2.7 2.6-8.5 4-8.8 0-.2-2.8 5.9-4.7 7.8-6.5 2.4-2.3 4.5-5.2 8.4-3.2 3.2 1.6 4.5 1.5 8.9 2.3 1.5.3 2.5 1 3.6 2.5-.9-2.1-2.2-3-3.8-3.3l7-3.3.1-1.7-8.3 4.7c-3.8-.6-5.2-.6-8.3-2.1-2-1-3.6-.7-4.9.1-2.4-1.4-3.8-1.1-4.7-.9-2.8.9-7.3 1-11.3 2.6.7.2 1.4.4 1.9.4 3.9-1.2 8-1.1 9.9-1.8.6-.2 1.8-.2 3.1.5-.8.7-1.5 1.5-2.3 2.3-1.9 1.8-7.7 4.4-7.3 7.7.2 1.6 2.4 5.8 9.7 1.1l3.1-.4c0 0 5.7 2.7 11 8.9 2.1 2.4.8 5-1.3 5.6 2.7.5 5-3.3 2.4-5.9l6.3-3.4 1.2-3"/></g><path d="m53.4 16.3l3.3 17.1-2.7 1.2c-1.4-3.7-3.5-12.6-3-16.9l2.4-1.4" fill="#3b946f"/><path d="m11.1 38c-.5-1.2-.8-2.8-.8-2.8l-2.5-1.7-.2 1.9 2.2.6c.3 1 .6 1.8 1 2.4l.3-.4" fill="#705041"/><path d="m6.1 35.1l5.4-18.7 2.5 1.7c.4 2.8-4.2 15.6-5.9 17.5l-2-.5" fill="#3b946f"/><g fill="#47b892"><path d="m53.3 16.2c-.8.5 2.1 17.8 3.3 17.3 3.8-1.7 5.5-2.2 5.5-2.2v-20.6c-.1 0-2.4 1.7-8.8 5.5"/><path d="m2 9v25.5c0 0 1.8.3 4.1.8 1.3.3 6-18.5 5.7-18.8-3.4-2.3-9.8-7.5-9.8-7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91d.svg
new file mode 100644
index 0000000..185bf3b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91d.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.3 33.4l-1.2-18.1-8.3 5.1c-4.1-.7-5.2-.7-8.4-2.2-1.9-.9-4.3-.3-5.5.4-1.8-1.9-13.5.9-14.8 1.5-3.5-1.1-8.7-5.1-8.7-5.1l-1.8 20.4 2.4.6c.2.7.8 2.4.8 2.4-2.2 2.8.4 6.1 2.9 5-1.1 2.8 1.8 5.4 4.1 3.6-.3 2.6 2.4 4.5 4.4 2.7-.9 3.1 2.6 5.4 4.7 2.9 1.5 1 2.9 1.8 4.1 2.2 2.1.9 4.4-1.1 4-3.6 2.4 2.8 6 .1 5.2-3 2.7 2.1 6-1.4 4.3-4.5 3 1.7 5.6-2.9 2.7-5.9l9.1-4.4" fill="#ffdd67"/><g fill="#eba352"><path d="m13.9 36.3c1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.4 1.3.6.3 1.3.3 2 0 .1-.3.3-.7.6-1l.7-.8c.4-.5.9-.9 1.3-1.1.8-2.1-.6-4.1-2.4-4.2"/><path d="m25.3 46.2c1.6.4 2.8 2.5 1.6 4.8l-.6.9c-.6 1.1-1.4 1.6-2.2 1.7 1.1.3 2.3-.1 3.1-1.6l.6-.9c1.5-2.8-.4-5.1-2.5-4.9"/><path d="m18.3 45.4l1.6-2.5c-.1-1.4-1.3-2.6-2.5-2.7 1.5.7 2.5 3 .9 5l-.7.8c-.8 1-1.6 1.3-2.5 1.3.8.4 1.7.3 2.6-.3.1-.5.3-1.1.6-1.6"/><path d="m22.6 40.9c1.6.5 2.7 2.7 1.3 4.9l-1.9 3c-.7 1.1-1.5 1.5-2.3 1.5 1 .3 2.3 0 3.2-1.4l1.9-3c1.6-2.6-.2-5.1-2.2-5"/><path d="m35.9 43.4c.1 0 1.3-.2 1.7-.2-1.5-1.5-3.9-.3-5.3-1.1 1 1.7 3.1 1.3 3.3 1.3l2.4 3.1c2 2.5.4 5.4-1.7 5.7 2.2.7 4.4-1.6 3.7-4.1-.1-.1-4.1-4.7-4.1-4.7"/><path d="m38.3 37.6c0 0 1.5-.3 2.8-.3-1.5-1.2-3.8-.1-5.3-1.1.6 1.3 1.9 1.3 2.3 1.4l4.6 5.3c2.1 2.4.6 5.3-1.5 5.8 2.4.7 4.7-2.4 3.2-5.1-1-.4-6.1-6-6.1-6"/><path d="m35.1 49.1c-1.5-1.2-3.6-.3-4.5-.9.5 1.4 2.4 1.1 2.5 1.1 1.7 2.6-.1 5.3-2.2 5.5 2.1.9 4.4-1.1 4-3.6-.1-.1-1.5-1.9-1.5-1.9.2-.1 1.3-.2 1.7-.2"/><path d="m55.2 31.7c0 0-1.7 3.5-8.3 5.4-.9-1.1-2.8-3.3-5-5.2 1.4-.3 2.1-1.4 3.2-1.6-.4-.4-1.8-.2-2.9.2-2 .7-6.6-2.5-6.6-2.5l-3.8.5c-2.7 2.6-8.5 4-8.8 0-.2-2.8 5.9-4.7 7.8-6.5 2.4-2.3 4.5-5.2 8.4-3.2 3.2 1.6 4.5 1.5 8.9 2.3 1.5.3 2.5 1 3.6 2.5-.9-2.1-2.2-3-3.8-3.3l7-3.3.1-1.7-8.3 4.7c-3.8-.6-5.2-.6-8.3-2.1-2-1-3.6-.7-4.9.1-2.4-1.4-3.8-1.1-4.7-.9-2.8.9-7.3 1-11.3 2.6.7.2 1.4.4 1.9.4 3.9-1.2 8-1.1 9.9-1.8.6-.2 1.8-.2 3.1.5-.8.7-1.5 1.5-2.3 2.3-1.9 1.8-7.7 4.4-7.3 7.7.2 1.6 2.4 5.8 9.7 1.1l3.1-.4c0 0 5.7 2.7 11 8.9 2.1 2.4.8 5-1.3 5.6 2.7.5 5-3.3 2.4-5.9l6.3-3.4 1.2-3"/></g><path d="m53.4 16.3l3.3 17.1-2.7 1.2c-1.4-3.7-3.5-12.6-3-16.9l2.4-1.4" fill="#3b946f"/><path d="m11.1 38c-.5-1.2-.8-2.8-.8-2.8l-2.5-1.7-.2 1.9 2.2.6c.3 1 .6 1.8 1 2.4l.3-.4" fill="#eba352"/><path d="m6.1 35.1l5.4-18.7 2.5 1.7c.4 2.8-4.2 15.6-5.9 17.5l-2-.5" fill="#3b946f"/><g fill="#47b892"><path d="m53.3 16.2c-.8.5 2.1 17.8 3.3 17.3 3.8-1.7 5.5-2.2 5.5-2.2v-20.6c-.1 0-2.4 1.7-8.8 5.5"/><path d="m2 9v25.5c0 0 1.8.3 4.1.8 1.3.3 6-18.5 5.7-18.8-3.4-2.3-9.8-7.5-9.8-7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fb.svg
new file mode 100644
index 0000000..aa4cd73
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m49.3 34.4c0 0 2.9 13.6-1.1 20.3-6 9.9-27.4 11.7-33.2-6.8-.6-2 8.4-17.8 8.4-17.8l25.9 4.3"/><path d="m35.1 30.3c1 2 0 4.5-2.2 5.4-2.2 1-4.8.1-5.8-2l-13.7-25.9c-1-2 0-4.5 2.2-5.4 2.2-1 4.8-.1 5.8 2l13.7 25.9"/></g><g fill="#e6b796"><path d="m34.3 34.1c-2.2 1-4.8.1-5.8-2l-13.7-25.9c-.5-1.1-.5-2.3 0-3.4-1.6 1.1-2.3 3.2-1.4 5l13.7 25.9c1 2 3.6 3 5.8 2 1-.4 1.8-1.2 2.2-2.1-.2.2-.5.4-.8.5"/><path d="m29.2 28c.1 2.4 1.6 3.5 7.5 2l.8 3-16 .2 8.4-13.1-.7 7.9"/></g><path d="m24.3 39.4c-.6 2.3-3.2 3.7-5.6 3.1-2.5-.6-4-3-3.4-5.3l8.9-29.2c.6-2.3 2.6-3.7 5-3.1 2.5.6 4 3 3.4 5.3l-8.3 29.2" fill="#ffe1bd"/><path d="m20.9 42.1c-2.5-.6-4-3-3.4-5.3l8.3-29.2c.3-1.3 1.2-2.3 2.4-2.8-2.2-.1-4.2 1.2-4.7 3.3l-8.3 29.2c-.6 2.3.9 4.7 3.4 5.3 1.1.3 2.3.1 3.3-.3-.3-.1-.6-.1-1-.2" fill="#e6b796"/><path d="m51 31.6c.1-2.3-1.5-4.2-3.7-4.4h-.1c-2.2-.2-4 1.5-4.2 3.8l-.4 6.3c-.1 2.3 1.5 4.2 3.7 4.4h.1c2.2.2 4-1.5 4.2-3.8l.4-6.3" fill="#ffe1bd"/><path d="m47.6 40.2c-2.2-.2-3.8-2.1-3.7-4.4l.4-6.3c0-.6.2-1.2.5-1.7-1 .7-1.7 1.8-1.7 3.1l-.4 6.3c-.1 2.3 1.4 4.2 3.6 4.4 1.6.1 3-.7 3.7-2.1-.6.6-1.5.8-2.4.7" fill="#e6b796"/><path d="m43.8 26.9c.2-2.8-1.7-5.1-4.3-5.3h-.1c-2.6-.2-4.8 1.9-5 4.7l-.5 7.7c-.2 2.8 1.7 5.1 4.3 5.3h.1c2.6.2 4.8-1.9 5-4.7l.5-7.7" fill="#ffe1bd"/><g fill="#e6b796"><path d="m39.7 37.6c-2.6-.2-4.5-2.5-4.3-5.2l.6-7.7c.1-.7.3-1.4.6-2.1-1.2.8-2 2.2-2.1 3.8l-.9 7.8c-.2 2.8 2 5 4.6 5.1h.1c1.9.1 3.6-.9 4.4-2.6-1 .6-2 .9-3 .9"/><path d="m26.1 31.2c3.5-2 4.2 1.2 10.2 1.3 2.6.1 3.8 5.3-.2 7.2-5.5 2.6-6-1.1-7.3.4-1.4 1.5-2.8 1.8-4 3.6-.8 1.3-7.7-.7-8.4-3.4-1.4-5.1 4.1-5.9 9.7-9.1"/></g><path d="m25.7 32.1c3.7-2.1 4.4 1.2 10.6 1.4 2.7.1 3.9 5.5-.2 7.5-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.9 1.9-4.1 3.8-.9 1.4 1.5 6.5 1.5 6.5s-7 4.8-8.5 2.1c-2.7-5.1-1.9-9-1.8-12 .2-7.1 4.3-6.4 10.1-9.7" fill="#ffe1bd"/><g fill="#e6b796"><path d="m18.6 35.4c-3.9 1.7-3.7 11.5-.8 16.2 7.2 11.7 21.3 11.4 28.8 5.1-7 7.2-22.1 8-29.9-4.1-3.2-4.8-4.2-15.9 1.9-17.2"/><path d="m25.2 45.2c-.3.4-.2 1.2-.1 2.1-.4-1.3-.7-2.7-.3-3.3 1.3-1.9 2-2.2 3.5-3.9 1.4-1.5 1.9 2.4 7.6-.4 2.1-1 2.8-2.9 2.6-4.6.8 1.8.4 4.6-2.3 5.9-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.2 1.9-3.4 3.8"/><path d="m38.8 53.6c0-6.5-5-11.8-11.4-12.3.8-.2 1.6-.3 2.4-.3 5.5 0 9.9 4.4 9.9 9.8 0 1.6-.4 3-1 4.4 0-.6.1-1.1.1-1.6"/><path d="m40.7 41.4c1.1-.3 2.2-.2 3.1.2-.4 0-.8.1-1.2.2-3.1.8-5 4-4.4 7.1-.4-.5-.7-1-.8-1.7-.7-2.5.8-5.1 3.3-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fc.svg
new file mode 100644
index 0000000..bf4eff6
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m49.3 34.4c0 0 2.9 13.6-1.1 20.3-6 9.9-27.4 11.7-33.2-6.8-.6-2 8.4-17.8 8.4-17.8l25.9 4.3"/><path d="m35.1 30.3c1 2 0 4.5-2.2 5.4-2.2 1-4.8.1-5.8-2l-13.7-25.9c-1-2 0-4.5 2.2-5.4 2.2-1 4.8-.1 5.8 2l13.7 25.9"/></g><g fill="#e0a372"><path d="m34.3 34.1c-2.2 1-4.8.1-5.8-2l-13.7-25.9c-.5-1.1-.5-2.3 0-3.4-1.6 1.1-2.3 3.2-1.4 5l13.7 25.9c1 2 3.6 3 5.8 2 1-.4 1.8-1.2 2.2-2.1-.2.2-.5.4-.8.5"/><path d="m29.2 28c.1 2.4 1.6 3.5 7.5 2l.8 3-16 .2 8.4-13.1-.7 7.9"/></g><path d="m24.3 39.4c-.6 2.3-3.2 3.7-5.6 3.1-2.5-.6-4-3-3.4-5.3l8.9-29.2c.6-2.3 2.6-3.7 5-3.1 2.5.6 4 3 3.4 5.3l-8.3 29.2" fill="#fed0ac"/><path d="m20.9 42.1c-2.5-.6-4-3-3.4-5.3l8.3-29.1c.3-1.3 1.2-2.3 2.4-2.8-2.2-.1-4.2 1.2-4.7 3.3l-8.3 29.2c-.6 2.3.9 4.7 3.4 5.3 1.1.3 2.3.1 3.3-.3-.3-.2-.6-.2-1-.3" fill="#e0a372"/><path d="m51 31.6c.1-2.3-1.5-4.2-3.7-4.4h-.1c-2.2-.2-4 1.5-4.2 3.8l-.4 6.3c-.1 2.3 1.5 4.2 3.7 4.4h.1c2.2.2 4-1.5 4.2-3.8l.4-6.3" fill="#fed0ac"/><path d="m47.6 40.2c-2.2-.2-3.8-2.1-3.7-4.4l.4-6.3c0-.6.2-1.2.5-1.7-1 .7-1.7 1.8-1.7 3.1l-.4 6.3c-.1 2.3 1.4 4.2 3.6 4.4 1.6.1 3-.7 3.7-2.1-.6.6-1.5.8-2.4.7" fill="#e0a372"/><path d="m43.8 26.9c.2-2.8-1.7-5.1-4.3-5.3h-.1c-2.6-.2-4.8 1.9-5 4.7l-.5 7.7c-.2 2.8 1.7 5.1 4.3 5.3h.1c2.6.2 4.8-1.9 5-4.7l.5-7.7" fill="#fed0ac"/><g fill="#e0a372"><path d="m39.7 37.6c-2.6-.2-4.5-2.5-4.3-5.2l.6-7.7c.1-.7.3-1.4.6-2.1-1.2.8-2 2.2-2.1 3.8l-.9 7.8c-.2 2.8 2 5 4.6 5.1h.1c1.9.1 3.6-.9 4.4-2.6-1 .6-2 .9-3 .9"/><path d="m26.1 31.2c3.5-2 4.2 1.2 10.2 1.3 2.6.1 3.8 5.3-.2 7.2-5.5 2.6-6-1.1-7.3.4-1.4 1.5-2.8 1.8-4 3.6-.8 1.3-7.7-.7-8.4-3.4-1.4-5.1 4.1-5.9 9.7-9.1"/></g><path d="m25.7 32.1c3.7-2.1 4.4 1.2 10.6 1.4 2.7.1 3.9 5.5-.2 7.5-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.9 1.9-4.1 3.8-.9 1.4 1.5 6.5 1.5 6.5s-7 4.8-8.5 2.1c-2.7-5.1-1.9-9-1.8-12 .2-7.1 4.3-6.4 10.1-9.7" fill="#fed0ac"/><g fill="#e0a372"><path d="m18.6 35.4c-3.9 1.7-3.7 11.5-.8 16.2 7.2 11.7 21.3 11.4 28.8 5.1-7 7.2-22.1 8-29.9-4.1-3.2-4.8-4.2-15.9 1.9-17.2"/><path d="m25.2 45.2c-.3.4-.2 1.2-.1 2.1-.4-1.3-.7-2.7-.3-3.3 1.3-1.9 2-2.2 3.5-3.9 1.4-1.5 1.9 2.4 7.6-.4 2.1-1 2.8-2.9 2.6-4.6.8 1.8.4 4.6-2.3 5.9-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.2 1.9-3.4 3.8"/><path d="m38.8 53.6c0-6.5-5-11.8-11.4-12.3.8-.2 1.6-.3 2.4-.3 5.5 0 9.9 4.4 9.9 9.8 0 1.6-.4 3-1 4.4 0-.6.1-1.1.1-1.6"/><path d="m40.7 41.4c1.1-.3 2.2-.2 3.1.2-.4 0-.8.1-1.2.2-3.1.8-5 4-4.4 7.1-.4-.5-.7-1-.8-1.7-.7-2.5.8-5.1 3.3-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fd.svg
new file mode 100644
index 0000000..5562818
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m49.3 34.4c0 0 2.9 13.6-1.1 20.3-6 9.9-27.4 11.7-33.2-6.8-.6-2 8.4-17.8 8.4-17.8l25.9 4.3"/><path d="m35.1 30.3c1 2 0 4.5-2.2 5.4-2.2 1-4.8.1-5.8-2l-13.7-25.9c-1-2 0-4.5 2.2-5.4 2.2-1 4.8-.1 5.8 2l13.7 25.9"/></g><g fill="#b58360"><path d="m34.3 34.1c-2.2 1-4.8.1-5.8-2l-13.7-25.9c-.5-1.1-.5-2.3 0-3.4-1.6 1.1-2.3 3.2-1.4 5l13.7 25.9c1 2 3.6 3 5.8 2 1-.4 1.8-1.2 2.2-2.1-.2.2-.5.4-.8.5"/><path d="m29.2 28c.1 2.4 1.6 3.5 7.5 2l.8 3-16 .2 8.4-13.1-.7 7.9"/></g><path d="m24.3 39.4c-.6 2.3-3.2 3.7-5.6 3.1-2.5-.6-4-3-3.4-5.3l8.9-29.2c.6-2.3 2.6-3.7 5-3.1 2.5.6 4 3 3.4 5.3l-8.3 29.2" fill="#d6a57c"/><path d="m20.9 42.1c-2.5-.6-4-3-3.4-5.3l8.3-29.1c.3-1.3 1.2-2.3 2.4-2.8-2.2-.1-4.2 1.2-4.7 3.3l-8.3 29.2c-.6 2.3.9 4.7 3.4 5.3 1.1.3 2.3.1 3.3-.3-.3-.2-.6-.2-1-.3" fill="#b58360"/><path d="m51 31.6c.1-2.3-1.5-4.2-3.7-4.4h-.1c-2.2-.2-4 1.5-4.2 3.8l-.4 6.3c-.1 2.3 1.5 4.2 3.7 4.4h.1c2.2.2 4-1.5 4.2-3.8l.4-6.3" fill="#d6a57c"/><path d="m47.6 40.2c-2.2-.2-3.8-2.1-3.7-4.4l.4-6.3c0-.6.2-1.2.5-1.7-1 .7-1.7 1.8-1.7 3.1l-.4 6.3c-.1 2.3 1.4 4.2 3.6 4.4 1.6.1 3-.7 3.7-2.1-.6.6-1.5.8-2.4.7" fill="#b58360"/><path d="m43.8 26.9c.2-2.8-1.7-5.1-4.3-5.3h-.1c-2.6-.2-4.8 1.9-5 4.7l-.5 7.7c-.2 2.8 1.7 5.1 4.3 5.3h.1c2.6.2 4.8-1.9 5-4.7l.5-7.7" fill="#d6a57c"/><g fill="#b58360"><path d="m39.7 37.6c-2.6-.2-4.5-2.5-4.3-5.2l.6-7.7c.1-.7.3-1.4.6-2.1-1.2.8-2 2.2-2.1 3.8l-.9 7.8c-.2 2.8 2 5 4.6 5.1h.1c1.9.1 3.6-.9 4.4-2.6-1 .6-2 .9-3 .9"/><path d="m26.1 31.2c3.5-2 4.2 1.2 10.2 1.3 2.6.1 3.8 5.3-.2 7.2-5.5 2.6-6-1.1-7.3.4-1.4 1.5-2.8 1.8-4 3.6-.8 1.3-7.7-.7-8.4-3.4-1.4-5.1 4.1-5.9 9.7-9.1"/></g><path d="m25.7 32.1c3.7-2.1 4.4 1.2 10.6 1.4 2.7.1 3.9 5.5-.2 7.5-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.9 1.9-4.1 3.8-.9 1.4 1.5 6.5 1.5 6.5s-7 4.8-8.5 2.1c-2.7-5.1-1.9-9-1.8-12 .2-7.1 4.3-6.4 10.1-9.7" fill="#d6a57c"/><g fill="#b58360"><path d="m18.6 35.4c-3.9 1.7-3.7 11.5-.8 16.2 7.2 11.7 21.3 11.4 28.8 5.1-7 7.2-22.1 8-29.9-4.1-3.2-4.8-4.2-15.9 1.9-17.2"/><path d="m25.2 45.2c-.3.4-.2 1.2-.1 2.1-.4-1.3-.7-2.7-.3-3.3 1.3-1.9 2-2.2 3.5-3.9 1.4-1.5 1.9 2.4 7.6-.4 2.1-1 2.8-2.9 2.6-4.6.8 1.8.4 4.6-2.3 5.9-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.2 1.9-3.4 3.8"/><path d="m38.8 53.6c0-6.5-5-11.8-11.4-12.3.8-.2 1.6-.3 2.4-.3 5.5 0 9.9 4.4 9.9 9.8 0 1.6-.4 3-1 4.4 0-.6.1-1.1.1-1.6"/><path d="m40.7 41.4c1.1-.3 2.2-.2 3.1.2-.4 0-.8.1-1.2.2-3.1.8-5 4-4.4 7.1-.4-.5-.7-1-.8-1.7-.7-2.5.8-5.1 3.3-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fe.svg
new file mode 100644
index 0000000..5067aae
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m49.3 34.4c0 0 2.9 13.6-1.1 20.3-6 9.9-27.4 11.7-33.2-6.8-.6-2 8.4-17.8 8.4-17.8l25.9 4.3"/><path d="m35.1 30.3c1 2 0 4.5-2.2 5.4-2.2 1-4.8.1-5.8-2l-13.7-25.9c-1-2 0-4.5 2.2-5.4 2.2-1 4.8-.1 5.8 2l13.7 25.9"/></g><g fill="#935e3e"><path d="m34.3 34.1c-2.2 1-4.8.1-5.8-2l-13.7-25.9c-.5-1.1-.5-2.3 0-3.4-1.6 1.1-2.3 3.2-1.4 5l13.7 25.9c1 2 3.6 3 5.8 2 1-.4 1.8-1.2 2.2-2.1-.2.2-.5.4-.8.5"/><path d="m29.2 28c.1 2.4 1.6 3.5 7.5 2l.8 3-16 .2 8.4-13.1-.7 7.9"/></g><path d="m24.3 39.4c-.6 2.3-3.2 3.7-5.6 3.1-2.5-.6-4-3-3.4-5.3l8.9-29.2c.6-2.3 2.6-3.7 5-3.1 2.5.6 4 3 3.4 5.3l-8.3 29.2" fill="#b47d56"/><path d="m20.9 42.1c-2.5-.6-4-3-3.4-5.3l8.3-29.2c.3-1.3 1.2-2.3 2.4-2.8-2.2-.1-4.1 1.2-4.7 3.3l-8.3 29.2c-.6 2.3.9 4.7 3.4 5.3 1.1.3 2.3.1 3.3-.3-.3-.1-.6-.1-1-.2" fill="#935e3e"/><path d="m51 31.6c.1-2.3-1.5-4.2-3.7-4.4h-.1c-2.2-.2-4 1.5-4.2 3.8l-.4 6.3c-.1 2.3 1.5 4.2 3.7 4.4h.1c2.2.2 4-1.5 4.2-3.8l.4-6.3" fill="#b47d56"/><path d="m47.6 40.2c-2.2-.2-3.8-2.1-3.7-4.4l.4-6.3c0-.6.2-1.2.5-1.7-1 .7-1.7 1.8-1.7 3.1l-.4 6.3c-.1 2.3 1.4 4.2 3.6 4.4 1.6.1 3-.7 3.7-2.1-.6.6-1.5.8-2.4.7" fill="#935e3e"/><path d="m43.8 26.9c.2-2.8-1.7-5.1-4.3-5.3h-.1c-2.6-.2-4.8 1.9-5 4.7l-.5 7.7c-.2 2.8 1.7 5.1 4.3 5.3h.1c2.6.2 4.8-1.9 5-4.7l.5-7.7" fill="#b47d56"/><g fill="#935e3e"><path d="m39.7 37.6c-2.6-.2-4.5-2.5-4.3-5.2l.6-7.7c.1-.7.3-1.4.6-2.1-1.2.8-2 2.2-2.1 3.8l-.9 7.8c-.2 2.8 2 5 4.6 5.1h.1c1.9.1 3.6-.9 4.4-2.6-1 .6-2 .9-3 .9"/><path d="m26.1 31.2c3.5-2 4.2 1.2 10.2 1.3 2.6.1 3.8 5.3-.2 7.2-5.5 2.6-6-1.1-7.3.4-1.4 1.5-2.8 1.8-4 3.6-.8 1.3-7.7-.7-8.4-3.4-1.4-5.1 4.1-5.9 9.7-9.1"/></g><path d="m25.7 32.1c3.7-2.1 4.4 1.2 10.6 1.4 2.7.1 3.9 5.5-.2 7.5-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.9 1.9-4.1 3.8-.9 1.4 1.5 6.5 1.5 6.5s-7 4.8-8.5 2.1c-2.7-5.1-1.9-9-1.8-12 .2-7.1 4.3-6.4 10.1-9.7" fill="#b47d56"/><g fill="#935e3e"><path d="m18.6 35.4c-3.9 1.7-3.7 11.5-.8 16.2 7.2 11.7 21.3 11.4 28.8 5.1-7 7.2-22.1 8-29.9-4.1-3.2-4.8-4.2-15.9 1.9-17.2"/><path d="m25.2 45.2c-.3.4-.2 1.2-.1 2.1-.4-1.3-.7-2.7-.3-3.3 1.3-1.9 2-2.2 3.5-3.9 1.4-1.5 1.9 2.4 7.6-.4 2.1-1 2.8-2.9 2.6-4.6.8 1.8.4 4.6-2.3 5.9-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.2 1.9-3.4 3.8"/><path d="m38.8 53.6c0-6.5-5-11.8-11.4-12.3.8-.2 1.6-.3 2.4-.3 5.5 0 9.9 4.4 9.9 9.8 0 1.6-.4 3-1 4.4 0-.6.1-1.1.1-1.6"/><path d="m40.7 41.4c1.1-.3 2.2-.2 3.1.2-.4 0-.8.1-1.2.2-3.1.8-5 4-4.4 7.1-.4-.5-.7-1-.8-1.7-.7-2.5.8-5.1 3.3-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3ff.svg
new file mode 100644
index 0000000..741dc66
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91e-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m49.3 34.4c0 0 2.9 13.6-1.1 20.3-6 9.9-27.4 11.7-33.2-6.8-.6-2 8.4-17.8 8.4-17.8l25.9 4.3"/><path d="m35.1 30.3c1 2 0 4.5-2.2 5.4-2.2 1-4.8.1-5.8-2l-13.7-25.9c-1-2 0-4.5 2.2-5.4 2.2-1 4.8-.1 5.8 2l13.7 25.9"/></g><g fill="#705041"><path d="m34.3 34.1c-2.2 1-4.8.1-5.8-2l-13.7-25.9c-.5-1.1-.5-2.3 0-3.4-1.6 1.1-2.3 3.2-1.4 5l13.7 25.9c1 2 3.6 3 5.8 2 1-.4 1.8-1.2 2.2-2.1-.2.2-.5.4-.8.5"/><path d="m29.2 28c.1 2.4 1.6 3.5 7.5 2l.8 3-16 .2 8.4-13.1-.7 7.9"/></g><path d="m24.3 39.4c-.6 2.3-3.2 3.7-5.6 3.1-2.5-.6-4-3-3.4-5.3l8.9-29.2c.6-2.3 2.6-3.7 5-3.1 2.5.6 4 3 3.4 5.3l-8.3 29.2" fill="#8a6859"/><path d="m20.9 42.1c-2.5-.6-4-3-3.4-5.3l8.3-29.1c.3-1.3 1.2-2.3 2.4-2.8-2.2-.1-4.2 1.2-4.7 3.3l-8.3 29.2c-.6 2.3.9 4.7 3.4 5.3 1.1.3 2.3.1 3.3-.3-.3-.2-.6-.2-1-.3" fill="#705041"/><path d="m51 31.6c.1-2.3-1.5-4.2-3.7-4.4h-.1c-2.2-.2-4 1.5-4.2 3.8l-.4 6.3c-.1 2.3 1.5 4.2 3.7 4.4h.1c2.2.2 4-1.5 4.2-3.8l.4-6.3" fill="#8a6859"/><path d="m47.6 40.2c-2.2-.2-3.8-2.1-3.7-4.4l.4-6.3c0-.6.2-1.2.5-1.7-1 .7-1.7 1.8-1.7 3.1l-.4 6.3c-.1 2.3 1.4 4.2 3.6 4.4 1.6.1 3-.7 3.7-2.1-.6.6-1.5.8-2.4.7" fill="#705041"/><path d="m43.8 26.9c.2-2.8-1.7-5.1-4.3-5.3h-.1c-2.6-.2-4.8 1.9-5 4.7l-.5 7.7c-.2 2.8 1.7 5.1 4.3 5.3h.1c2.6.2 4.8-1.9 5-4.7l.5-7.7" fill="#8a6859"/><g fill="#705041"><path d="m39.7 37.6c-2.6-.2-4.5-2.5-4.3-5.2l.6-7.7c.1-.7.3-1.4.6-2.1-1.2.8-2 2.2-2.1 3.8l-.9 7.8c-.2 2.8 2 5 4.6 5.1h.1c1.9.1 3.6-.9 4.4-2.6-1 .6-2 .9-3 .9"/><path d="m26.1 31.2c3.5-2 4.2 1.2 10.2 1.3 2.6.1 3.8 5.3-.2 7.2-5.5 2.6-6-1.1-7.3.4-1.4 1.5-2.8 1.8-4 3.6-.8 1.3-7.7-.7-8.4-3.4-1.4-5.1 4.1-5.9 9.7-9.1"/></g><path d="m25.7 32.1c3.7-2.1 4.4 1.2 10.6 1.4 2.7.1 3.9 5.5-.2 7.5-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.9 1.9-4.1 3.8-.9 1.4 1.5 6.5 1.5 6.5s-7 4.8-8.5 2.1c-2.7-5.1-1.9-9-1.8-12 .2-7.1 4.3-6.4 10.1-9.7" fill="#8a6859"/><g fill="#705041"><path d="m18.6 35.4c-3.9 1.7-3.7 11.5-.8 16.2 7.2 11.7 21.3 11.4 28.8 5.1-7 7.2-22.1 8-29.9-4.1-3.2-4.8-4.2-15.9 1.9-17.2"/><path d="m25.2 45.2c-.3.4-.2 1.2-.1 2.1-.4-1.3-.7-2.7-.3-3.3 1.3-1.9 2-2.2 3.5-3.9 1.4-1.5 1.9 2.4 7.6-.4 2.1-1 2.8-2.9 2.6-4.6.8 1.8.4 4.6-2.3 5.9-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.2 1.9-3.4 3.8"/><path d="m38.8 53.6c0-6.5-5-11.8-11.4-12.3.8-.2 1.6-.3 2.4-.3 5.5 0 9.9 4.4 9.9 9.8 0 1.6-.4 3-1 4.4 0-.6.1-1.1.1-1.6"/><path d="m40.7 41.4c1.1-.3 2.2-.2 3.1.2-.4 0-.8.1-1.2.2-3.1.8-5 4-4.4 7.1-.4-.5-.7-1-.8-1.7-.7-2.5.8-5.1 3.3-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f91e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f91e.svg
new file mode 100644
index 0000000..574dcc1
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f91e.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m49.3 34.4c0 0 2.9 13.6-1.1 20.3-6 9.9-27.4 11.7-33.2-6.8-.6-2 8.4-17.8 8.4-17.8l25.9 4.3"/><path d="m35.1 30.3c1 2 0 4.5-2.2 5.4-2.2 1-4.8.1-5.8-2l-13.7-25.9c-1-2 0-4.5 2.2-5.4 2.2-1 4.8-.1 5.8 2l13.7 25.9"/></g><g fill="#eba352"><path d="m34.3 34.1c-2.2 1-4.8.1-5.8-2l-13.7-25.9c-.5-1.1-.5-2.3 0-3.4-1.6 1.1-2.3 3.2-1.4 5l13.7 25.9c1 2 3.6 3 5.8 2 1-.4 1.8-1.2 2.2-2.1-.2.2-.5.4-.8.5"/><path d="m29.2 28c.1 2.4 1.6 3.5 7.5 2l.8 3-16 .2 8.4-13.1-.7 7.9"/></g><path d="m24.3 39.4c-.6 2.3-3.2 3.7-5.6 3.1-2.5-.6-4-3-3.4-5.3l8.9-29.2c.6-2.3 2.6-3.7 5-3.1 2.5.6 4 3 3.4 5.3l-8.3 29.2" fill="#ffdd67"/><path d="m20.9 42.1c-2.5-.6-4-3-3.4-5.3l8.3-29.1c.3-1.3 1.2-2.3 2.4-2.8-2.2-.1-4.2 1.2-4.7 3.3l-8.3 29.2c-.6 2.3.9 4.7 3.4 5.3 1.1.3 2.3.1 3.3-.3-.3-.2-.6-.2-1-.3" fill="#eba352"/><path d="m51 31.6c.1-2.3-1.5-4.2-3.7-4.4h-.1c-2.2-.2-4 1.5-4.2 3.8l-.4 6.3c-.1 2.3 1.5 4.2 3.7 4.4h.1c2.2.2 4-1.5 4.2-3.8l.4-6.3" fill="#ffdd67"/><path d="m47.6 40.2c-2.2-.2-3.8-2.1-3.7-4.4l.4-6.3c0-.6.2-1.2.5-1.7-1 .7-1.7 1.8-1.7 3.1l-.4 6.3c-.1 2.3 1.4 4.2 3.6 4.4 1.6.1 3-.7 3.7-2.1-.6.6-1.5.8-2.4.7" fill="#eba352"/><path d="m43.8 26.9c.2-2.8-1.7-5.1-4.3-5.3h-.1c-2.6-.2-4.8 1.9-5 4.7l-.5 7.7c-.2 2.8 1.7 5.1 4.3 5.3h.1c2.6.2 4.8-1.9 5-4.7l.5-7.7" fill="#ffdd67"/><g fill="#eba352"><path d="m39.7 37.6c-2.6-.2-4.5-2.5-4.3-5.2l.6-7.7c.1-.7.3-1.4.6-2.1-1.2.8-2 2.2-2.1 3.8l-.9 7.8c-.2 2.8 2 5 4.6 5.1h.1c1.9.1 3.6-.9 4.4-2.6-1 .6-2 .9-3 .9"/><path d="m26.1 31.2c3.5-2 4.2 1.2 10.2 1.3 2.6.1 3.8 5.3-.2 7.2-5.5 2.6-6-1.1-7.3.4-1.4 1.5-2.8 1.8-4 3.6-.8 1.3-7.7-.7-8.4-3.4-1.4-5.1 4.1-5.9 9.7-9.1"/></g><path d="m25.7 32.1c3.7-2.1 4.4 1.2 10.6 1.4 2.7.1 3.9 5.5-.2 7.5-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.9 1.9-4.1 3.8-.9 1.4 1.5 6.5 1.5 6.5s-7 4.8-8.5 2.1c-2.7-5.1-1.9-9-1.8-12 .2-7.1 4.3-6.4 10.1-9.7" fill="#ffdd67"/><g fill="#eba352"><path d="m18.6 35.4c-3.9 1.7-3.7 11.5-.8 16.2 7.2 11.7 21.3 11.4 28.8 5.1-7 7.2-22.1 8-29.9-4.1-3.2-4.8-4.2-15.9 1.9-17.2"/><path d="m25.2 45.2c-.3.4-.2 1.2-.1 2.1-.4-1.3-.7-2.7-.3-3.3 1.3-1.9 2-2.2 3.5-3.9 1.4-1.5 1.9 2.4 7.6-.4 2.1-1 2.8-2.9 2.6-4.6.8 1.8.4 4.6-2.3 5.9-5.7 2.7-6.2-1.1-7.6.4-1.5 1.6-2.2 1.9-3.4 3.8"/><path d="m38.8 53.6c0-6.5-5-11.8-11.4-12.3.8-.2 1.6-.3 2.4-.3 5.5 0 9.9 4.4 9.9 9.8 0 1.6-.4 3-1 4.4 0-.6.1-1.1.1-1.6"/><path d="m40.7 41.4c1.1-.3 2.2-.2 3.1.2-.4 0-.8.1-1.2.2-3.1.8-5 4-4.4 7.1-.4-.5-.7-1-.8-1.7-.7-2.5.8-5.1 3.3-5.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f920.svg b/build/js/jsxc/lib/emojione/assets/svg/1f920.svg
new file mode 100644
index 0000000..11437ce
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f920.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#89664c"><path d="m2.1 19.6c-1 2.7 3.6 12.1 7.7 13.2 8.8 2.3 22.1-4 22.1-4s-11.2-5.1-15.4-6.6c-10.8-4.1-13.7-4.3-14.4-2.6"/><path d="m61.9 19.6c1 2.7-3.6 12.1-7.7 13.2-8.8 2.3-22.1-4-22.1-4s11.2-5.1 15.4-6.6c10.8-4.1 13.7-4.3 14.4-2.6"/></g><path d="m55 39c0 12.7-10.3 23-23 23-12.7 0-23-10.3-23-23 0-12.7 10.3-23 23-23 12.7 0 23 10.3 23 23" fill="#ffdd67"/><path d="m44.1 11.5c-2.1-3.1.3-4.8-1.4-7.6-1-1.8-2-2.6-3.5-1.2-2.4 2.5-5.2 3.5-7.2 3.5-2 0-4.8-1-7.2-3.5-1.5-1.5-2.4-.6-3.5 1.2-1.7 2.8.7 4.5-1.4 7.6-1.3 1.9-2.6 9.3-2.6 9.3l14.7 2.9 14.7-2.9c0 0-1.3-7.4-2.6-9.3" fill="#d3976e"/><path d="m22.4 5.9c0 0 4.5 3 4.4 4.6-.1 1.8-5.6 5-5.6 5s2.5-3.9 2.6-5.3c.1-1.2-1.4-4.3-1.4-4.3" fill="#fed0ac"/><path d="m41.6 5.9c0 0-4.5 3-4.4 4.6.1 1.8 5.6 5 5.6 5s-2.5-3.9-2.6-5.3c-.1-1.2 1.4-4.3 1.4-4.3" fill="#89664c"/><path d="m47 20.3c-8.6 2.2-15 2.2-15 2.2s-6.4 0-15-2.2l-.7 2.1 15.7 3.6 15.7-3.6-.7-2.1" fill="#3e4347"/><path d="m32 25c0 0-7.4.2-20.7-4.6 0 0 5.1 3.8 7.8 7 5.1 6.2 20.8 6.2 25.9 0 2.6-3.2 7.8-7 7.8-7-13.4 4.8-20.8 4.6-20.8 4.6" fill="#d3976e"/><g fill="#664e27"><path d="m39.6 47.9c-4.9 3.6-10.4 3.6-15.3 0-.6-.4-1.1.3-.7 1 1.5 2.6 4.5 4.9 8.4 4.9 3.9 0 6.9-2.3 8.4-4.9.4-.7-.2-1.4-.8-1"/><circle cx="23.2" cy="36.9" r="3.8"/><circle cx="40.8" cy="36.9" r="3.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f921.svg b/build/js/jsxc/lib/emojione/assets/svg/1f921.svg
new file mode 100644
index 0000000..63812e7
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f921.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 27.2c0-3-1.5-5.6-3.9-7.1.3-.9.5-1.9.5-2.9 0-4.7-3.7-8.6-8.3-8.7-1.3-2.5-3.9-4.3-6.9-4.3-1.5 0-2.9.4-4.1 1.2-1.5-2-4.2-3.4-7.3-3.4-3.1 0-5.8 1.4-7.4 3.4-1.2-.8-2.6-1.2-4.1-1.2-3 0-5.6 1.7-6.9 4.3-4.6.1-8.3 3.9-8.3 8.7 0 1 .2 2 .5 2.9-2.3 1.5-3.8 4.1-3.8 7.1 0 2 .7 3.9 1.9 5.4-.5 1-.8 2.1-.8 3.3 0 2.7 1.5 5.1 3.7 6.3 0 .3-.1.5-.1.8 0 3.9 3.1 7.1 6.9 7.1s32.9 0 36.7 0 6.9-3.2 6.9-7.1c0-.3 0-.6 0-.8 2.2-1.2 3.7-3.6 3.7-6.3 0-1.2-.3-2.3-.8-3.3 1.2-1.5 1.9-3.3 1.9-5.4" fill="#42ade2"/><path d="m51.8 35c-.1.9-.3 1.8-.6 2.3-.5.9-1.4 1.4-1.4 1.4s.3-.9.2-3.4c-1.3-19.9-3.7-11-17.9-11-14.2 0-16.6-8.9-17.9 11-.1 2.5.2 3.4.2 3.4s-.9-.5-1.4-1.4c-.3-.5-.4-1.3-.6-2.3-1.5-.4-3.5-.1-3.5 4.3 0 2.7 1 5 4.4 5.2 1.4 11 5.7 12.8 14.3 16.7 2.3 1 6.9 1 9.1 0 8.6-3.9 12.9-5.7 14.3-16.7 3.4-.2 4.4-2.5 4.4-5.2-.2-4.4-2.1-4.7-3.6-4.3" fill="#fed0ac"/><path d="m49.1 35.5c-1.3-19.2-3.5-9.9-17.1-9.9s-15.8-9.3-17.1 9.9c-.1 2.4.4 6.7.7 8.9.8 5.2 3.9 12.2 12 16 2.2 1 6.6 1 8.7 0 8.2-3.7 11.3-10.8 12-16 .4-2.3.9-6.6.8-8.9" fill="#f5f5f5"/><path d="m41.2 49.3c-3.8 3.9-3.3 8.8-9.2 8.8-5.9 0-5.4-4.9-9.2-8.8-3.7-3.9 5.1.5 9.2.5 4.1 0 12.9-4.4 9.2-.5" fill="#574137"/><path d="m38.9 48.2l-6.9 1.6-6.9-1.6c0 0-.2 1.6.5 2.3 1 1 4.8 1.5 6.5 1.5 1.7 0 5.4-.5 6.5-1.5.5-.6.3-2.3.3-2.3" fill="#fff"/><path d="m32 55.1c-2.8 0-3.7 2-3.7 2l3.7.6 3.7-.6c0 0-.9-2-3.7-2" fill="#ff717f"/><path d="m32 49c-2.3 0-15.8-5-9.9.6 3.2 3 3.2 10 9.9 10s6.7-6.9 9.9-10c5.9-5.6-7.6-.6-9.9-.6m7.9 1.1c-3.3 3.3-2.8 7.3-7.9 7.4-5.1 0-4.6-4.1-7.9-7.4-3.2-3.2 4.4.4 7.9.4 3.5 0 11.1-3.7 7.9-.4" fill="#cf4350"/><circle cx="32" cy="43.4" r="6.6" fill="#ff5263"/><path d="m27 35.8c0 2.9-8 2.9-8 0 0-9.9 8-9.9 8 0" fill="#f5f5f5"/><path d="m27.7 36.2c0 3.7-10 3.7-10 0 0-12.3 10-12.3 10 0" fill="#3e4347"/><path d="m27.4 36.3c0 2.9-8 2.9-8 0 0-9.9 8-9.9 8 0" fill="#f5f5f5"/><ellipse cx="23.7" cy="34.5" rx="2.5" ry="3.5" fill="#0a84a5"/><circle cx="23.7" cy="34.5" r=".8" fill="#231f20"/><path d="m36.3 36.2c0 3.7 10 3.7 10 0 0-12.3-10-12.3-10 0" fill="#3e4347"/><path d="m36.6 36.3c0 2.9 8 2.9 8 0 0-9.9-8-9.9-8 0" fill="#f5f5f5"/><ellipse cx="40.3" cy="34.5" rx="2.5" ry="3.5" fill="#0a84a5"/><circle cx="40.3" cy="34.5" r=".8" fill="#231f20"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f922.svg b/build/js/jsxc/lib/emojione/assets/svg/1f922.svg
new file mode 100644
index 0000000..893e564
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f922.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#c7e755"/><g fill="#425e21"><circle cx="20.5" cy="27" r="4.5"/><circle cx="43.5" cy="27" r="4.5"/><path d="m37.4 43.2h-10.8c-.7 0-.7-2.5 0-2.5h10.7c.8 0 .8 2.5.1 2.5"/><path d="m23.7 35c1 2 1.6 4.4 1.6 7 0 2.6-.6 5-1.6 7 2.1-.9 3.6-3.7 3.6-7s-1.5-6.1-3.6-7"/><path d="m40.3 49c-1-2-1.6-4.4-1.6-7 0-2.6.6-5 1.6-7-2.1.9-3.6 3.7-3.6 7s1.5 6 3.6 7"/></g><g fill="#75a843"><path d="m25.6 15.9c-3.2 2.7-7.5 3.9-11.7 3.1-.6-.1-1.1 2-.4 2.2 4.8.9 9.8-.5 13.5-3.6.5-.5-1-2.1-1.4-1.7"/><path d="m50.1 18.9c-4.2.7-8.5-.4-11.7-3.1-.4-.4-2 1.2-1.4 1.7 3.7 3.2 8.7 4.5 13.5 3.6.7-.2.2-2.3-.4-2.2"/></g><g opacity=".5" fill="#ff717f"><path d="m51.7 30.3c4.9 0 8.8 4 8.8 8.8 0 4.9-4 8.8-8.8 8.8-4.9 0-8.8-4-8.8-8.8-.1-4.8 3.9-8.8 8.8-8.8" opacity=".8"/><circle cx="12.3" cy="39.1" r="8.8" opacity=".8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f923.svg b/build/js/jsxc/lib/emojione/assets/svg/1f923.svg
new file mode 100644
index 0000000..e029257
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f923.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.9 55.7c1.2-1-2.9-12.1-4-13.1-.8-.7-4.4-.3-5.6.7-4.2 3.4-.3 13 4.5 14.3 1.3.4 4.1-1 5.1-1.9" fill="#286699"/><path d="m15.4 59.7c1.3-1.2-3.8-15.4-5.1-16.7-.9-.9-5-.6-6.4.7-4.6 4.2.2 16.4 5.7 18.2 1.5.5 4.6-1.1 5.8-2.2" fill="#b2c1c0"/><path d="m16.1 59.5c1.1-1.2-4-15.3-5.2-16.6-.8-.9-4.5-.8-5.6.4-3.9 3.9.8 16.1 5.7 18.1 1.5.6 4.1-.9 5.1-1.9" fill="#e8e8e8"/><path d="m19 58c1.5-1.3-3.5-14.7-4.8-15.9-.9-.8-5.4-.4-6.9.9-5.1 4.2-.4 15.8 5.4 17.3 1.7.5 5-1.2 6.3-2.3" fill="#3383c4"/><path d="m18.2 56.5c.2-.7-3.7-11.8-4.3-13-.4-.8-1.5-1.3-1.7-.6-.6 2.2 2.9 11.9 4.7 14.2.6.6 1.1 0 1.3-.6" fill="#e8e8e8"/><path d="m16.4 57.1c.2-.7-3.7-11.8-4.3-13-.4-.8-1.5-1.3-1.7-.6-.6 2.2 2.9 11.9 4.7 14.2.6.6 1.2 0 1.3-.6" fill="#fff"/><circle cx="38" cy="34" r="24" fill="#ffdd67"/><path d="m35.6 48c.4-.3.3-.9.3-1.5.1-12.5.1-12.5.1-25 0-.6.1-1.2-.3-1.5-4-3.1-15.6.5-15.6 14-.1 13.4 11.6 17.1 15.5 14" fill="#664e27"/><path d="m29.8 35.5c0-.5-.4-1.2-1.6-.9-.6.1-1.3.9-2.2.9-1.9 0-1.9-3 0-3 .9 0 1.6.8 2.2.9 1.1.3 1.6-.4 1.6-.9 0-1.2-1.4-3.3-3.7-3.3-2.6 0-4.7 2.1-4.7 4.7 0 2.6 2.1 4.7 4.7 4.7 2.3.1 3.7-1.9 3.7-3.1" fill="#4c3526"/><path d="m22.7 27.9c-.8 1.8-1.2 3.8-1.2 6.1 0 2.3.4 4.3 1.2 6.1.8-1.7 1.3-3.7 1.3-6.1 0-2.4-.5-4.4-1.3-6.1" fill="#ff717f"/><path d="m34 45.8c0-11.8 0-11.8 0-23.6 0-1.6-3-1.6-3 0 0 8.2 0 15.4 0 23.6 0 1.6 3 1.6 3 0" fill="#fff"/><g fill="#664e27"><path d="m40.7 31.2c4.1-1.5 6.1-3.7 6.1-6s-2-4.5-6.1-6c-.4-.1-1.2.6-.8 1 1.5 1.4 2.1 3.2 2.1 5 0 1.8-.6 3.5-2.1 5-.4.4.4 1.2.8 1"/><path d="m40.7 48.7c4.1-1.5 6.1-3.7 6.1-6 0-2.2-2-4.5-6.1-6-.4-.1-1.2.6-.8 1 1.5 1.4 2.1 3.2 2.1 5 0 1.8-.6 3.5-2.1 5-.4.4.4 1.2.8 1"/></g><path d="m18.7 8.2c-1.8-.5-9.4 10.7-9.6 12.3-.1 1.2 2.6 4.3 4.4 4.8 6 1.6 12.4-8.3 10.3-13.6-.5-1.5-3.6-3.1-5.1-3.5" fill="#286699"/><path d="m15.8 3.9c-2.1-.6-11.4 13-11.6 15-.1 1.4 3.2 5.2 5.4 5.8 7.3 1.9 15-10.1 12.6-16.5-.7-1.8-4.5-3.8-6.4-4.3" fill="#3383c4"/><path d="m14.5 2.3c-1.8-.2-11.6 13.9-12.1 15.9-.3 1.4 2 4.5 3.8 4.7 5.9.8 14.3-11.7 13.1-17.4-.4-1.6-3.3-3-4.8-3.2" fill="#b2c1c0"/><path d="m14.1 2c-1.6-.1-11.5 14-12.1 15.9-.4 1.3 1.5 4.2 3.1 4.3 5.4.4 13.8-12 13-17.4-.1-1.6-2.7-2.7-4-2.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f924.svg b/build/js/jsxc/lib/emojione/assets/svg/1f924.svg
new file mode 100644
index 0000000..4e30304
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f924.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53 60.1c0 1.1-6.1 1.9-13.7 1.9-7.5 0-13.7-.9-13.7-1.9 0-1.1 6.1-1.9 13.7-1.9 7.6 0 13.7.8 13.7 1.9" fill="#42ade2"/><path d="M62,32c0,16.6-10.8,30-30,30C15.4,62,2,48.6,2,32C2,15.4,15.4,2,32,2C48.6,2,62,15.4,62,32z" fill="#ffdd67"/><path d="m44.2 61.5c-1.7 0-3.5 0-5.2 0 1.3-2.8 1.3-6.1 0-8.9 1.7 0 3.5 0 5.2 0 1.3 2.8 1.3 6.1 0 8.9" fill="#42ade2"/><path d="m44.5 52.1c-.2 1.7-1.8 4-4.1 3.8-1.9-.2-3.8-2.2-6.2-2.5-2.5-.3-4.8 1.1-6.7.8-2.6-.3-3.2-2.9-3-4.6.4-3 5.2-4.9 10.7-4.2 5.5.6 9.7 3.6 9.3 6.7" fill="#664e27"/><circle cx="20.5" cy="29" r="10" fill="#fff"/><circle cx="20.5" cy="29" r="3.5" fill="#664e27"/><circle cx="43.5" cy="29" r="10" fill="#fff"/><circle cx="43.5" cy="29" r="3.5" fill="#664e27"/><g fill="#917524"><path d="m53.2 18.9c-3.2-2.7-7.5-3.9-11.7-3.1-.6.1-1.1-2-.4-2.2 4.8-.9 9.8.5 13.5 3.6.6.5-1 2.1-1.4 1.7"/><path d="m22.5 11.7c-4.2-.7-8.5.4-11.7 3.1-.4.4-2-1.2-1.4-1.7 3.7-3.2 8.7-4.5 13.5-3.6.7.1.2 2.3-.4 2.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f925.svg b/build/js/jsxc/lib/emojione/assets/svg/1f925.svg
new file mode 100644
index 0000000..7446d3f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f925.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,32c0,15.5-10,28-28,28C18.5,60,6,47.5,6,32C6,16.5,18.5,4,34,4C49.5,4,62,16.5,62,32z" fill="#ffdd67"/><path d="m30.4 26.1c0 5.4-4.3 9.7-9.7 9.7-5.4 0-9.7-4.3-9.7-9.7 0-5.3 4.3-9.7 9.7-9.7 5.4 0 9.7 4.3 9.7 9.7" fill="#fff"/><circle cx="24" cy="28.2" r="3.2" fill="#664e27"/><path d="m54.7 26.1c0 5.4-4.3 9.7-9.7 9.7-5.4 0-9.7-4.3-9.7-9.7s4.3-9.7 9.7-9.7c5.3 0 9.7 4.3 9.7 9.7" fill="#fff"/><g fill="#664e27"><circle cx="40.7" cy="28.2" r="3.2"/><path d="m45.7 48c-1.4-3.6-4.8-6-12.7-6-8 0-11.3 2.4-12.7 6-.7 1.9.3 4 .3 4 .4 1.2 2.1 2 12.4 2 10.3 0 12-.8 12.4-2 0 0 1.1-2.1.3-4"/></g><path d="m42 47.1c.1-.2 0-.5-.2-.7 0 0-2-1.9-8.8-1.9-6.8 0-8.8 1.9-8.8 1.9-.2.2-.2.5-.2.7l.2.5c.1.2.3.4.5.4h16.6c.2 0 .5-.2.5-.4l.2-.5" fill="#fff"/><path d="m30.6 39.3c-7.3 1.3-15.7 1.8-23.1 1.2-8.7-.7-6.2-11.2 1-9.6 7.3 1.3 14.7 1.8 22.1 1.3 4.5-.2 4.6 6.1 0 7.1" fill="#eba352"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fb.svg
new file mode 100644
index 0000000..60e2089
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33.6,2C52,2,62,13.4,62,28.3V62H5.3V28.3C5.3,6.1,20.6,6.5,20.6,6.5S21.8,2,33.6,2z" fill="#594640"/><path fill="#c28fef" d="m21 52.2h25.2v9.8h-25.2z"/><path d="m54.1 44.8c0 0 4.1-1 4.1-7.1 0-4.8-3.1-5.6-3.1-5.6-19.1 0-29.3-9.4-29.3-9.4s-6.9 7.7-13.5 9.4c0 0-3.2.6-3.2 5.6 0 6.1 4.3 7.1 4.3 7.1 0 3.8 12.7 16.2 20.3 16.2 7.6.1 20.4-12.3 20.4-16.2" fill="#ffe1bd"/><ellipse cx="33.6" cy="55.2" rx="4" ry="3" fill="#664e27"/><path d="m13.7 17.3c0 0 2.9 1.4 3.9 5.3.6 2.3.9 2.4 2 3.2l6.2-12c.6-1.1 1.9-1.5 2.9-.9 1 .6 1.4 1.9.8 3l.7-1.4c.7-1.3 2.3-1.8 3.5-1.1 1.2.7 1.7 2.2 1 3.5l-.5 1c.6-1.1 2-1.6 3-1 1.1.6 1.4 1.9.8 3.1l-1.2 2.3c.6-1 1.8-1.5 2.8-.9 1 .5 1.6 1.9 1 2.9-10.1 18.1-10.7 19.2-15.3 19.8 0 0-3.9 4.4-7 17.9l1.6-25.1-6.2-19.6" opacity=".3"/><path d="m23.9 42l-8.7-4.7c0 0-7.4 10-13.2 24.6h16.3c0 .1.1-11.2 5.6-19.9" fill="#b386e2"/><path d="m11.4 17.3c1.5-1 3.9.3 4.8 4.2.6 2.3.7 3.2 1.8 4l7-12.8c1.8-3 4.9-1.1 3.5 1.9l-5.1 10 6.4-10.8c1.6-3 5.8-1.6 4.1 2l-6.2 10.7 6-9.2c2.1-3.2 5-.9 3.5 1.6l-5.1 9.7 4.8-7c1.6-2.5 4.3-.5 3 1.8 0 0-8 15.5-11.3 18-4.8 3.7-16.6-.9-15.7-11.1.2-2-.6-4-1-6.2-.3-2.8-2.2-5.7-.5-6.8" fill="#ffe1bd"/><path d="m38.4 40.8c2.7 5.1 8.2 5.1 10.9 0 .1-.3-.2-.4-.7-.7-2.7 2.1-7.2 2-9.6 0-.4.4-.8.5-.6.7" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fc.svg
new file mode 100644
index 0000000..a5fc0ae
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33.6,2C52,2,62,13.4,62,28.3V62H5.3V28.3C5.3,6.1,20.6,6.5,20.6,6.5S21.8,2,33.6,2z" fill="#dbb471"/><path fill="#c28fef" d="m21 52.2h25.2v9.8h-25.2z"/><path d="m54.1 44.8c0 0 4.1-1 4.1-7.1 0-4.8-3.1-5.6-3.1-5.6-19.1 0-29.3-9.4-29.3-9.4s-6.9 7.7-13.5 9.4c0 0-3.2.6-3.2 5.6 0 6.1 4.3 7.1 4.3 7.1 0 3.8 12.7 16.2 20.3 16.2 7.6.1 20.4-12.3 20.4-16.2" fill="#fed0ac"/><ellipse cx="33.6" cy="55.2" rx="4" ry="3" fill="#664e27"/><path d="m13.7 17.3c0 0 2.9 1.4 3.9 5.3.6 2.3.9 2.4 2 3.2l6.2-12c.6-1.1 1.9-1.5 2.9-.9 1 .6 1.4 1.9.8 3l.7-1.4c.7-1.3 2.3-1.8 3.5-1.1 1.2.7 1.7 2.2 1 3.5l-.5 1c.6-1.1 2-1.6 3-1 1.1.6 1.4 1.9.8 3.1l-1.2 2.3c.6-1 1.8-1.5 2.8-.9 1 .5 1.6 1.9 1 2.9-10.1 18.1-10.7 19.2-15.3 19.8 0 0-3.9 4.4-7 17.9l1.6-25.1-6.2-19.6" opacity=".3"/><path d="m23.9 42l-8.7-4.7c0 0-7.4 10-13.2 24.6h16.3c0 .1.1-11.2 5.6-19.9" fill="#b386e2"/><path d="m11.4 17.3c1.5-1 3.9.3 4.8 4.2.6 2.3.7 3.2 1.8 4l7-12.8c1.8-3 4.9-1.1 3.5 1.9l-5.1 10 6.4-10.8c1.6-3 5.8-1.6 4.1 2l-6.2 10.7 6-9.2c2.1-3.2 5-.9 3.5 1.6l-5.1 9.7 4.8-7c1.6-2.5 4.3-.5 3 1.8 0 0-8 15.5-11.3 18-4.8 3.7-16.6-.9-15.7-11.1.2-2-.6-4-1-6.2-.3-2.8-2.2-5.7-.5-6.8" fill="#fed0ac"/><path d="m38.4 40.8c2.7 5.1 8.2 5.1 10.9 0 .1-.3-.2-.4-.7-.7-2.7 2.1-7.2 2-9.6 0-.4.4-.8.5-.6.7" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fd.svg
new file mode 100644
index 0000000..ea86bb8
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33.6,2C52,2,62,13.4,62,28.3V62H5.3V28.3C5.3,6.1,20.6,6.5,20.6,6.5S21.8,2,33.6,2z" fill="#594640"/><path fill="#c28fef" d="m21 52.2h25.2v9.8h-25.2z"/><path d="m54.1 44.8c0 0 4.1-1 4.1-7.1 0-4.8-3.1-5.6-3.1-5.6-19.1 0-29.3-9.4-29.3-9.4s-6.9 7.7-13.5 9.4c0 0-3.2.6-3.2 5.6 0 6.1 4.3 7.1 4.3 7.1 0 3.8 12.7 16.2 20.3 16.2 7.6.1 20.4-12.3 20.4-16.2" fill="#d6a57c"/><ellipse cx="33.6" cy="55.2" rx="4" ry="3" fill="#664e27"/><path d="m13.7 17.3c0 0 2.9 1.4 3.9 5.3.6 2.3.9 2.4 2 3.2l6.2-12c.6-1.1 1.9-1.5 2.9-.9 1 .6 1.4 1.9.8 3l.7-1.4c.7-1.3 2.3-1.8 3.5-1.1 1.2.7 1.7 2.2 1 3.5l-.5 1c.6-1.1 2-1.6 3-1 1.1.6 1.4 1.9.8 3.1l-1.2 2.3c.6-1 1.8-1.5 2.8-.9 1 .5 1.6 1.9 1 2.9-10.1 18.1-10.7 19.2-15.3 19.8 0 0-3.9 4.4-7 17.9l1.6-25.1-6.2-19.6" opacity=".3"/><path d="m23.9 42l-8.7-4.7c0 0-7.4 10-13.2 24.6h16.3c0 .1.1-11.2 5.6-19.9" fill="#b386e2"/><path d="m11.4 17.3c1.5-1 3.9.3 4.8 4.2.6 2.3.7 3.2 1.8 4l7-12.8c1.8-3 4.9-1.1 3.5 1.9l-5.1 10 6.4-10.8c1.6-3 5.8-1.6 4.1 2l-6.2 10.7 6-9.2c2.1-3.2 5-.9 3.5 1.6l-5.1 9.7 4.8-7c1.6-2.5 4.3-.5 3 1.8 0 0-8 15.5-11.3 18-4.8 3.7-16.6-.9-15.7-11.1.2-2-.6-4-1-6.2-.3-2.8-2.2-5.7-.5-6.8" fill="#d6a57c"/><path d="m38.4 40.8c2.7 5.1 8.2 5.1 10.9 0 .1-.3-.2-.4-.7-.7-2.7 2.1-7.2 2-9.6 0-.4.4-.8.5-.6.7" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fe.svg
new file mode 100644
index 0000000..27bb43a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33.6,2C52,2,62,13.4,62,28.3V62H5.3V28.3C5.3,6.1,20.6,6.5,20.6,6.5S21.8,2,33.6,2z" fill="#231f20"/><path fill="#c28fef" d="m21 52.2h25.2v9.8h-25.2z"/><path d="m54.1 44.8c0 0 4.1-1 4.1-7.1 0-4.8-3.1-5.6-3.1-5.6-19.2 0-29.3-9.4-29.3-9.4s-6.9 7.7-13.5 9.4c0 0-3.2.6-3.2 5.6 0 6.1 4.3 7.1 4.3 7.1 0 3.8 12.7 16.2 20.3 16.2 7.6.1 20.4-12.3 20.4-16.2" fill="#b47d56"/><ellipse cx="33.6" cy="55.2" rx="4" ry="3" fill="#664e27"/><path d="m13.7 17.3c0 0 2.9 1.4 3.9 5.3.6 2.3.9 2.4 2 3.2l6.2-12c.6-1.1 1.9-1.5 2.9-.9 1 .6 1.4 1.9.8 3l.7-1.4c.7-1.3 2.3-1.8 3.5-1.1 1.2.7 1.7 2.2 1 3.5l-.5 1c.6-1.1 2-1.6 3-1 1.1.6 1.4 1.9.8 3.1l-1.2 2.3c.6-1 1.8-1.5 2.8-.9 1 .5 1.6 1.9 1 2.9-10.1 18.1-10.7 19.2-15.3 19.8 0 0-3.9 4.4-7 17.9l1.6-25.1-6.2-19.6" opacity=".3"/><path d="m23.9 42l-8.7-4.7c0 0-7.4 10-13.2 24.6h16.3c0 .1.1-11.2 5.6-19.9" fill="#b386e2"/><path d="m11.4 17.3c1.5-1 3.9.3 4.8 4.2.6 2.3.7 3.2 1.8 4l7-12.8c1.8-3 4.9-1.1 3.5 1.9l-5.1 10 6.4-10.8c1.6-3 5.8-1.6 4.1 2l-6.2 10.7 6-9.2c2.1-3.2 5-.9 3.5 1.6l-5.1 9.7 4.8-7c1.6-2.5 4.3-.5 3 1.8 0 0-8 15.5-11.3 18-4.8 3.7-16.6-.9-15.7-11.1.2-2-.6-4-1-6.2-.3-2.8-2.2-5.7-.5-6.8" fill="#b47d56"/><path d="m38.4 40.8c2.7 5.1 8.2 5.1 10.9 0 .1-.3-.2-.4-.7-.7-2.7 2.1-7.2 2-9.6 0-.4.4-.8.5-.6.7" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3ff.svg
new file mode 100644
index 0000000..2f70443
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f926-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33.6,2C52,2,62,13.4,62,28.3V62H5.3V28.3C5.3,6.1,20.6,6.5,20.6,6.5S21.8,2,33.6,2z" fill="#231f20"/><path fill="#c28fef" d="m21 52.2h25.2v9.8h-25.2z"/><path d="m54.1 44.8c0 0 4.1-1 4.1-7.1 0-4.8-3.1-5.6-3.1-5.6-19.1 0-29.3-9.4-29.3-9.4s-6.9 7.7-13.5 9.4c0 0-3.2.6-3.2 5.6 0 6.1 4.3 7.1 4.3 7.1 0 3.8 12.7 16.2 20.3 16.2 7.6.1 20.4-12.3 20.4-16.2" fill="#8a6859"/><ellipse cx="33.6" cy="55.2" rx="4" ry="3" fill="#574137"/><path d="m13.7 17.3c0 0 2.9 1.4 3.9 5.3.6 2.3.9 2.4 2 3.2l6.2-12c.6-1.1 1.9-1.5 2.9-.9 1 .6 1.4 1.9.8 3l.7-1.4c.7-1.3 2.3-1.8 3.5-1.1 1.2.7 1.7 2.2 1 3.5l-.5 1c.6-1.1 2-1.6 3-1 1.1.6 1.4 1.9.8 3.1l-1.2 2.3c.6-1 1.8-1.5 2.8-.9 1 .5 1.6 1.9 1 2.9-10.1 18.1-10.7 19.2-15.3 19.8 0 0-3.9 4.4-7 17.9l1.6-25.1-6.2-19.6" opacity=".3"/><path d="m23.9 42l-8.7-4.7c0 0-7.4 10-13.2 24.6h16.3c0 .1.1-11.2 5.6-19.9" fill="#b386e2"/><path d="m11.4 17.3c1.5-1 3.9.3 4.8 4.2.6 2.3.7 3.2 1.8 4l7-12.8c1.8-3 4.9-1.1 3.5 1.9l-5.1 10 6.4-10.8c1.6-3 5.8-1.6 4.1 2l-6.2 10.7 6-9.2c2.1-3.2 5-.9 3.5 1.6l-5.1 9.7 4.8-7c1.6-2.5 4.3-.5 3 1.8 0 0-8 15.5-11.3 18-4.8 3.7-16.6-.9-15.7-11.1.2-2-.6-4-1-6.2-.3-2.8-2.2-5.7-.5-6.8" fill="#8a6859"/><path d="m38.4 40.8c2.7 5.1 8.2 5.1 10.9 0 .1-.3-.2-.4-.7-.7-2.7 2.1-7.2 2-9.6 0-.4.4-.8.5-.6.7" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f926.svg b/build/js/jsxc/lib/emojione/assets/svg/1f926.svg
new file mode 100644
index 0000000..bff8eff
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f926.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M33.6,2C52,2,62,13.4,62,28.3V62H5.3V28.3C5.3,6.1,20.6,6.5,20.6,6.5S21.8,2,33.6,2z" fill="#ffb300"/><path fill="#c28fef" d="m21 52.2h25.2v9.8h-25.2z"/><path d="m54.1 44.8c0 0 4.1-1 4.1-7.1 0-4.8-3.1-5.6-3.1-5.6-19.1 0-29.3-9.4-29.3-9.4s-6.9 7.7-13.5 9.4c0 0-3.2.6-3.2 5.6 0 6.1 4.3 7.1 4.3 7.1 0 3.8 12.7 16.2 20.3 16.2 7.6.1 20.4-12.3 20.4-16.2" fill="#ffdd67"/><ellipse cx="33.6" cy="55.2" rx="4" ry="3" fill="#937237"/><path d="m13.7 17.3c0 0 2.9 1.4 3.9 5.3.6 2.3.9 2.4 2 3.2l6.2-12c.6-1.1 1.9-1.5 2.9-.9 1 .6 1.4 1.9.8 3l.7-1.4c.7-1.3 2.3-1.8 3.5-1.1 1.2.7 1.7 2.2 1 3.5l-.5 1c.6-1.1 2-1.6 3-1 1.1.6 1.4 1.9.8 3.1l-1.2 2.3c.6-1 1.8-1.5 2.8-.9 1 .5 1.6 1.9 1 2.9-10.1 18.1-10.7 19.2-15.3 19.8 0 0-3.9 4.4-7 17.9l1.6-25.1-6.2-19.6" opacity=".3"/><path d="m23.9 42l-8.7-4.7c0 0-7.4 10-13.2 24.6h16.3c0 .1.1-11.2 5.6-19.9" fill="#b386e2"/><path d="m11.4 17.3c1.5-1 3.9.3 4.8 4.2.6 2.3.7 3.2 1.8 4l7-12.8c1.8-3 4.9-1.1 3.5 1.9l-5.1 10 6.4-10.8c1.6-3 5.8-1.6 4.1 2l-6.2 10.7 6-9.2c2.1-3.2 5-.9 3.5 1.6l-5.1 9.7 4.8-7c1.6-2.5 4.3-.5 3 1.8 0 0-8 15.5-11.3 18-4.8 3.7-16.6-.9-15.7-11.1.2-2-.6-4-1-6.2-.3-2.8-2.2-5.7-.5-6.8" fill="#ffdd67"/><path d="m38.4 40.8c2.7 5.1 8.2 5.1 10.9 0 .1-.3-.2-.4-.7-.7-2.7 2.1-7.2 2-9.6 0-.4.4-.8.5-.6.7" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f927.svg b/build/js/jsxc/lib/emojione/assets/svg/1f927.svg
new file mode 100644
index 0000000..1c513dd
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f927.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="35" cy="29" r="27" fill="#ffdd67"/><g fill="#917524"><path d="m20.5 12.7c-.6.1-.4 2 .2 2 3.8-.3 7.6 1 10.2 3.7.4.4 1.8-.9 1.4-1.4-3.1-3.1-7.4-4.7-11.8-4.3"/><path d="m49.5 12.7c-4.4-.4-8.7 1.2-11.8 4.3-.4.5 1 1.8 1.4 1.4 2.7-2.7 6.4-4.1 10.2-3.7.5.1.8-1.9.2-2"/></g><path d="m33.1 29.3c-8.1 3.7-11.9 8-31.1 8.5 0 0 2 14.1 12.9 12.2 7.3-1.2 4.3 10.3 4.3 10.3s8-10.3 10-4.6c2.1 5.9 6.8 6.2 6.8 6.2 8.5-11.6 7.2-37.2-2.9-32.6" fill="#f5f5f5"/><g fill="#d6d6d6"><path d="m37.3 34.8c-.4-1.1-7.2 11.2-18 25.5 4.6-.6 8-7.6 9.2-4.5.6 1.7 3.7 4.3 3.7 4.3s8.6-14.5 5.1-25.3"/><path d="m32.3 33.5c.9-3.9-12.2 3.6-27.5 11.9 3.9 7.4 10 4.2 12.7 4.9 0 0 12.8-8.3 14.8-16.8"/></g><g fill="#664e27"><path d="m51.9 19.8c.5.3.3.9-.1.9-2.3.3-4.8.7-7.1 2 3.5.6 6.2 2.3 7.7 4.1.3.4-.1 1-.5.8-4.1-1.5-8.3-2.3-13.6-1.7-.4 0-.8-.2-.7-.6 1.4-6.1 9.4-8.4 14.3-5.5"/><path d="m18.1 19.8c-.5.3-.3.9.1.9 2.3.3 4.8.7 7.1 2-3.5.6-6.2 2.3-7.7 4.1-.3.4.1 1 .5.8 4.1-1.5 8.3-2.3 13.6-1.7.4 0 .8-.2.7-.6-1.4-6.1-9.4-8.4-14.3-5.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fb.svg
new file mode 100644
index 0000000..4b1d23f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.9 27.3l-8.5-.6c0 4.8-10.4 7-10.4 10.8 0 2.7 2.5 3.4 2.5 3.4s-7.9 3-7.9 11.4c0 6.7 5.3 9.6 11.6 9.6h10.3c0 0 .7-2-.6-9.1-2.5-13.9 7.6-11.6 3-25.5" fill="#e84d88"/><path d="m20.4 46.7l.6-1.4 1.1-.3c2.7 0 3.5 1.7 4.9 1.7v5.7c0 0-1.1 1-5.4 1-2.1 0-3.5-1.4-4.1-4.4-.7-2.4 2.9-2.3 2.9-2.3" fill="#ffe1bd"/><path d="m22.1 45c0 0-1.2.3-1.2 1 0 .4 1.4-.1 2.4 1-1.4-.7-3-.3-3-.3-.6-.6-.1-1.7 1.8-1.7" fill="#e6b796"/><g fill="#231f20"><path d="m26 46.2c5.8-1.2 11.6-3.1 11.6-3.1l-.9 7.6.2 1.2c0 0-3.5 1.9-10.8 2.5v-.6c0 0-5.4.8-7.1-1.2 2.7 1.2 7-.2 7-.2v-6.2" opacity=".3"/><path opacity=".3" d="m35.8 31.5l4.1 7.2-1.3 2.5z"/></g><path d="m42.2 27.3c0 0 7.7 11.8 6.7 16.7-1.1 5.6-22.3 8.8-22.3 8.8l-.3-6.4c0 0 13.1-3.1 14.8-5.4-1.1-2.5-5.3-9.6-5.3-9.6l6.4-4.1" fill="#e84d88"/><path d="m28.4 26.3l8.4-14.8.2 15.3c-3.5 1.5-5.5 0-5.5 0-1.1-2-3.1-.5-3.1-.5" fill="#e6b796"/><path d="m40.3 9.1c-3.4-6.7-8.9-6.3-8.9-6.3-6.9-3.1-14.3 3.6-15.7 7.4-2.9 7.7 3.8 10.8 4.7 10.1l14.3-4.5c0 0 2.9 3 1.6 9-1.3 5.9 4.7 10.3 4.7 10.3s5.9-12.8-.7-26" fill="#594640"/><path d="m17.2 12.4c-.2-2.1 4.1-1.7 6.4.6 5 5.1 6.5 3.8 6.5 3.8-.3-.4-.5-.9-.6-1.4-.5-2 .2-3.9 1.7-4.2 1.5-.3 3.2 1.1 3.7 3.1.5 1.8-.1 3.5-1.3 4.1 1.8 5.5.1 5.6-2.5 7.6-5.6 4.6-6.5 3.4-7.1 1.6-.3-.8-.9-.4-1.6-.5 0 0-.1-.5-.6-1.8-.4-1.3-1.7-1.1-1.3-1.8.4-.7.6-1.1.3-1.5-.1-.2-1.4.4-1.8-.3-.7-1.2 1.1-1.4.8-3.6 0-1.2-2.2-1.4-2.6-5.7" fill="#ffe1bd"/><path d="m22.4 24.2c-.4 0-.7-.1-1-.2-.3-.1-.6-.3-.6-.8-.2.1-.2.4-.2.7.1.3.3.5.5.7.2.2.4.3.6.4-.1.2-.1.5 0 .8.1.3.2.5.3.7.2.2.3.4.5.5 0-.5-.1-.9-.1-1.2 0-.1.1-.3.1-.4.1-.1.2-.3.3-.4l.5-.8h-.9" fill="#c94747"/><path d="m31.3 12.4c-.4.2-.7.5-.8.9-.2.4-.2.9-.1 1.3.1.4.2.7.4 1-.2 0-.3.1-.4.2.2 0 .4.1.5.2.1.1.3.2.4.3.1.1.2.2.3.4.1.1.1.3.2.6.2-.1.3-.4.3-.6 0-.3-.1-.6-.3-.8-.2-.2-.4-.4-.7-.4-.1 0-.1 0-.2 0-.1-.8-.1-1.4.1-2 .1-.3.3-.6.6-.8.2-.2.5-.5.8-.7-.3.1-.7.2-1.1.4" fill="#664e27"/><path d="m20.9 17.8c-.1-.4-.2-.6-.4-.8-.2-.2-.4-.5-.6-.8-.2-.3-.3-.8-.3-1.2.1-.4.3-.7.6-.8-.1.3-.1.7-.1.9s.1.5.3.8c.1.3.4.6.5.9.2.2.3.7 0 1" fill="#e6b796"/><path d="m23.7 15c-.3.3-.4.7-.6 1.1-.1.4-.3.8-.6 1.1-.2.4-.6.7-1 .9-.4.2-1 .2-1.4-.1.9-.3 1.2-.8 1.6-1.4.2-.3.4-.6.7-1 .4-.4.8-.7 1.3-.6" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fc.svg
new file mode 100644
index 0000000..b168358
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.9 27.3l-8.5-.6c0 4.8-10.4 7-10.4 10.8 0 2.7 2.5 3.4 2.5 3.4s-7.9 3-7.9 11.4c0 6.7 5.3 9.6 11.6 9.6h10.3c0 0 .7-2-.6-9.1-2.5-13.9 7.6-11.6 3-25.5" fill="#e84d88"/><path d="m20.4 46.7l.6-1.4 1.1-.3c2.7 0 3.5 1.7 4.9 1.7v5.7c0 0-1.1 1-5.4 1-2.1 0-3.5-1.4-4.1-4.4-.7-2.4 2.9-2.3 2.9-2.3" fill="#fed0ac"/><path d="m22.1 45c0 0-1.2.3-1.2 1 0 .4 1.4-.1 2.4 1-1.4-.7-3-.3-3-.3-.6-.6-.1-1.7 1.8-1.7" fill="#e0a372"/><g fill="#231f20"><path d="m26 46.2c5.8-1.2 11.6-3.1 11.6-3.1l-.9 7.6.2 1.2c0 0-3.5 1.9-10.8 2.5v-.6c0 0-5.4.8-7.1-1.2 2.7 1.2 7-.2 7-.2v-6.2" opacity=".3"/><path opacity=".3" d="m35.8 31.5l4.1 7.2-1.3 2.5z"/></g><path d="m42.2 27.3c0 0 7.7 11.8 6.7 16.7-1.1 5.6-22.3 8.8-22.3 8.8l-.3-6.4c0 0 13.1-3.1 14.8-5.4-1.1-2.5-5.3-9.6-5.3-9.6l6.4-4.1" fill="#e84d88"/><path d="m28.4 26.3l8.4-14.8.2 15.3c-3.5 1.5-5.5 0-5.5 0-1.1-2-3.1-.5-3.1-.5" fill="#e0a372"/><path d="m40.3 9.1c-3.4-6.7-8.9-6.3-8.9-6.3-6.9-3.1-14.3 3.6-15.7 7.4-2.9 7.7 3.8 10.8 4.7 10.1l14.3-4.5c0 0 2.9 3 1.6 9-1.3 5.9 4.7 10.3 4.7 10.3s5.9-12.8-.7-26" fill="#dbb471"/><path d="m17.2 12.4c-.2-2.1 4.1-1.7 6.4.6 5 5.1 6.5 3.8 6.5 3.8-.3-.4-.5-.9-.6-1.4-.5-2 .2-3.9 1.7-4.2 1.5-.3 3.2 1.1 3.7 3.1.5 1.8-.1 3.5-1.3 4.1 1.8 5.5.1 5.6-2.5 7.6-5.6 4.6-6.5 3.4-7.1 1.6-.3-.8-.9-.4-1.6-.5 0 0-.1-.5-.6-1.8-.4-1.3-1.7-1.1-1.3-1.8.4-.7.6-1.1.3-1.5-.1-.2-1.4.4-1.8-.3-.7-1.2 1.1-1.4.8-3.6 0-1.2-2.2-1.4-2.6-5.7" fill="#fed0ac"/><path d="m22.4 24.2c-.4 0-.7-.1-1-.2-.3-.1-.6-.3-.6-.8-.2.1-.2.4-.2.7.1.3.3.5.5.7.2.2.4.3.6.4-.1.2-.1.5 0 .8.1.3.2.5.3.7.2.2.3.4.5.5 0-.5-.1-.9-.1-1.2 0-.1.1-.3.1-.4.1-.1.2-.3.3-.4l.5-.8h-.9" fill="#c94747"/><path d="m31.3 12.4c-.4.2-.7.5-.8.9-.2.4-.2.9-.1 1.3.1.4.2.7.4 1-.2 0-.3.1-.4.2.2 0 .4.1.5.2.1.1.3.2.4.3.1.1.2.2.3.4.1.1.1.3.2.6.2-.1.3-.4.3-.6 0-.3-.1-.6-.3-.8-.2-.2-.4-.4-.7-.4-.1 0-.1 0-.2 0-.1-.8-.1-1.4.1-2 .1-.3.3-.6.6-.8.2-.2.5-.5.8-.7-.3.1-.7.2-1.1.4" fill="#664e27"/><path d="m20.9 17.8c-.1-.4-.2-.6-.4-.8-.2-.2-.4-.5-.6-.8-.2-.3-.3-.8-.3-1.2.1-.4.3-.7.6-.8-.1.3-.1.7-.1.9s.1.5.3.8c.1.3.4.6.5.9.2.2.3.7 0 1" fill="#e0a372"/><path d="m23.7 15c-.3.3-.4.7-.6 1.1-.1.4-.3.8-.6 1.1-.2.4-.6.7-1 .9-.4.2-1 .2-1.4-.1.8-.3 1.2-.8 1.6-1.4.2-.3.4-.6.7-1 .4-.4.8-.7 1.3-.6" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fd.svg
new file mode 100644
index 0000000..dbb32ea
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.9 27.3l-8.5-.6c0 4.8-10.4 7-10.4 10.8 0 2.7 2.5 3.4 2.5 3.4s-7.9 3-7.9 11.4c0 6.7 5.3 9.6 11.6 9.6h10.3c0 0 .7-2-.6-9.1-2.5-13.9 7.6-11.6 3-25.5" fill="#e84d88"/><path d="m20.4 46.7l.6-1.4 1.1-.3c2.7 0 3.6 1.7 4.9 1.7v5.7c0 0-1.1 1-5.4 1-2.1 0-3.5-1.4-4.1-4.4-.7-2.4 2.9-2.3 2.9-2.3" fill="#d6a57c"/><path d="m22.1 45c0 0-1.2.3-1.2 1 0 .4 1.4-.1 2.4 1-1.4-.7-3-.3-3-.3-.6-.6-.1-1.7 1.8-1.7" fill="#b58360"/><g fill="#231f20"><path d="m26 46.2c5.8-1.2 11.6-3.1 11.6-3.1l-.9 7.6.2 1.2c0 0-3.5 1.9-10.8 2.5v-.6c0 0-5.4.8-7.1-1.2 2.7 1.2 7-.2 7-.2v-6.2" opacity=".3"/><path opacity=".3" d="m35.8 31.5l4.1 7.2-1.3 2.5z"/></g><path d="m42.2 27.3c0 0 7.7 11.8 6.7 16.7-1.1 5.6-22.3 8.8-22.3 8.8l-.3-6.4c0 0 13.1-3.1 14.8-5.4-1.1-2.5-5.3-9.6-5.3-9.6l6.4-4.1" fill="#e84d88"/><path d="m28.4 26.3l8.4-14.8.2 15.3c-3.5 1.5-5.5 0-5.5 0-1.1-2-3.1-.5-3.1-.5" fill="#b58360"/><path d="m40.3 9.1c-3.4-6.7-8.9-6.3-8.9-6.3-6.9-3.1-14.3 3.6-15.7 7.4-2.9 7.7 3.8 10.8 4.7 10.1l14.3-4.5c0 0 2.9 3 1.6 9-1.3 5.9 4.7 10.3 4.7 10.3s5.9-12.8-.7-26" fill="#594640"/><path d="m17.2 12.4c-.2-2.1 4.1-1.7 6.4.6 5 5.1 6.5 3.8 6.5 3.8-.3-.4-.5-.9-.6-1.4-.5-2 .2-3.9 1.7-4.2 1.5-.3 3.2 1.1 3.7 3.1.5 1.8-.1 3.5-1.3 4.1 1.8 5.5.1 5.6-2.5 7.6-5.6 4.6-6.5 3.4-7.1 1.6-.3-.8-.9-.4-1.6-.5 0 0-.1-.5-.6-1.8-.4-1.3-1.7-1.1-1.3-1.8.4-.7.6-1.1.3-1.5-.1-.2-1.4.4-1.8-.3-.7-1.2 1.1-1.4.8-3.6 0-1.2-2.2-1.4-2.6-5.7" fill="#d6a57c"/><path d="m22.4 24.2c-.4 0-.7-.1-1-.2-.3-.1-.6-.3-.6-.8-.2.1-.2.4-.2.7.1.3.3.5.5.7.2.2.4.3.6.4-.1.2-.1.5 0 .8.1.3.2.5.3.7.2.2.3.4.5.5 0-.5-.1-.9-.1-1.2 0-.1.1-.3.1-.4s.2-.3.3-.4l.5-.8h-.9" fill="#c94747"/><path d="m31.3 12.4c-.4.2-.7.5-.8.9-.2.4-.2.9-.1 1.3.1.4.2.7.4 1-.2 0-.3.1-.4.2.2 0 .4.1.5.2.1.1.3.2.4.3.1.1.2.2.3.4.1.1.1.3.2.6.2-.1.3-.4.3-.6 0-.3-.1-.6-.3-.8-.2-.2-.4-.4-.7-.4-.1 0-.1 0-.2 0-.1-.8-.1-1.4.1-2 .1-.3.3-.6.6-.8.2-.2.5-.5.8-.7-.3.1-.7.2-1.1.4" fill="#664e27"/><path d="m20.9 17.8c-.1-.4-.2-.6-.4-.8-.2-.2-.4-.5-.6-.8-.2-.3-.3-.8-.3-1.2.1-.4.3-.7.6-.8-.1.3-.1.7-.1.9s.1.5.3.8c.1.3.4.6.5.9.2.2.3.7 0 1" fill="#b58360"/><path d="m23.7 15c-.3.3-.4.7-.6 1.1-.1.4-.3.8-.6 1.1-.2.4-.6.7-1 .9-.4.2-1 .2-1.4-.1.8-.3 1.2-.8 1.6-1.4.2-.3.4-.6.7-1 .4-.4.8-.7 1.3-.6" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fe.svg
new file mode 100644
index 0000000..a3bab2c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.9 27.3l-8.5-.6c0 4.8-10.4 7-10.4 10.8 0 2.7 2.5 3.4 2.5 3.4s-7.9 3-7.9 11.4c0 6.7 5.3 9.6 11.6 9.6h10.3c0 0 .7-2-.6-9.1-2.5-13.9 7.6-11.6 3-25.5" fill="#e84d88"/><path d="m20.4 46.7l.6-1.4 1.1-.3c2.7 0 3.5 1.7 4.9 1.7v5.7c0 0-1.1 1-5.4 1-2.1 0-3.5-1.4-4.1-4.4-.7-2.4 2.9-2.3 2.9-2.3" fill="#b47d56"/><path d="m22.1 45c0 0-1.2.3-1.2 1 0 .4 1.4-.1 2.4 1-1.4-.7-3-.3-3-.3-.6-.6-.1-1.7 1.8-1.7" fill="#935e3e"/><g fill="#231f20"><path d="m26 46.2c5.8-1.2 11.6-3.1 11.6-3.1l-.9 7.6.2 1.2c0 0-3.5 1.9-10.8 2.5v-.6c0 0-5.4.8-7.1-1.2 2.7 1.2 7-.2 7-.2v-6.2" opacity=".3"/><path opacity=".3" d="m35.8 31.5l4.1 7.2-1.3 2.5z"/></g><path d="m42.2 27.3c0 0 7.7 11.8 6.7 16.7-1.1 5.6-22.3 8.8-22.3 8.8l-.3-6.4c0 0 13.1-3.1 14.8-5.4-1.1-2.5-5.3-9.6-5.3-9.6l6.4-4.1" fill="#e84d88"/><path d="m28.4 26.3l8.4-14.8.2 15.3c-3.5 1.5-5.5 0-5.5 0-1.1-2-3.1-.5-3.1-.5" fill="#935e3e"/><path d="m40.3 9.1c-3.4-6.7-8.9-6.3-8.9-6.3-6.9-3.1-14.3 3.6-15.7 7.4-2.9 7.7 3.8 10.8 4.7 10.1l14.3-4.5c0 0 2.9 3 1.6 9-1.3 5.9 4.7 10.3 4.7 10.3s5.9-12.8-.7-26" fill="#231f20"/><path d="m17.2 12.4c-.2-2.1 4.1-1.7 6.4.6 5 5.1 6.5 3.8 6.5 3.8-.3-.4-.5-.9-.6-1.4-.5-2 .2-3.9 1.7-4.2 1.5-.3 3.2 1.1 3.7 3.1.5 1.8-.1 3.5-1.3 4.1 1.8 5.5.1 5.6-2.5 7.6-5.6 4.6-6.5 3.4-7.1 1.6-.3-.8-.9-.4-1.6-.5 0 0-.1-.5-.6-1.8-.4-1.3-1.7-1.1-1.3-1.8.4-.7.6-1.1.3-1.5-.1-.2-1.4.4-1.8-.3-.7-1.2 1.1-1.4.8-3.6 0-1.2-2.2-1.4-2.6-5.7" fill="#b47d56"/><path d="m22.4 24.2c-.4 0-.7-.1-1-.2-.3-.1-.6-.3-.6-.8-.2.1-.2.4-.2.7.1.3.3.5.5.7.2.2.4.3.6.4-.1.2-.1.5 0 .8.1.3.2.5.3.7.2.2.3.4.5.5 0-.5-.1-.9-.1-1.2 0-.1.1-.3.1-.4.1-.1.2-.3.3-.4l.5-.8h-.9" fill="#c94747"/><path d="m31.3 12.4c-.4.2-.7.5-.8.9-.2.4-.2.9-.1 1.3.1.4.2.7.4 1-.2 0-.3.1-.4.2.2 0 .4.1.5.2.1.1.3.2.4.3.1.1.2.2.3.4.1.1.1.3.2.6.2-.1.3-.4.3-.6 0-.3-.1-.6-.3-.8-.2-.2-.4-.4-.7-.4-.1 0-.1 0-.2 0-.1-.8-.1-1.4.1-2 .1-.3.3-.6.6-.8.2-.2.5-.5.8-.7-.3.1-.7.2-1.1.4" fill="#664e27"/><path d="m20.9 17.8c-.1-.4-.2-.6-.4-.8-.2-.2-.4-.5-.6-.8-.2-.3-.3-.8-.3-1.2.1-.4.3-.7.6-.8-.1.3-.1.7-.1.9s.1.5.3.8c.1.3.4.6.5.9.2.2.3.7 0 1" fill="#935e3e"/><path d="m23.7 15c-.3.3-.4.7-.6 1.1-.1.4-.3.8-.6 1.1-.2.4-.6.7-1 .9-.4.2-1 .2-1.4-.1.8-.3 1.2-.8 1.6-1.4.2-.3.4-.6.7-1 .4-.4.8-.7 1.3-.6" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3ff.svg
new file mode 100644
index 0000000..ad37b4b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f930-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.9 27.3l-8.5-.6c0 4.8-10.4 7-10.4 10.8 0 2.7 2.5 3.4 2.5 3.4s-7.9 3-7.9 11.4c0 6.7 5.3 9.6 11.6 9.6h10.3c0 0 .7-2-.6-9.1-2.5-13.9 7.6-11.6 3-25.5" fill="#e84d88"/><path d="m20.4 46.7l.6-1.4 1.1-.3c2.7 0 3.5 1.7 4.9 1.7v5.7c0 0-1.1 1-5.4 1-2.1 0-3.5-1.4-4.1-4.4-.7-2.4 2.9-2.3 2.9-2.3" fill="#8a6859"/><path d="m22.1 45c0 0-1.2.3-1.2 1 0 .4 1.4-.1 2.4 1-1.4-.7-3-.3-3-.3-.6-.6-.1-1.7 1.8-1.7" fill="#705041"/><g fill="#231f20"><path d="m26 46.2c5.8-1.2 11.6-3.1 11.6-3.1l-.9 7.6.2 1.2c0 0-3.5 1.9-10.8 2.5v-.6c0 0-5.4.8-7.1-1.2 2.7 1.2 7-.2 7-.2v-6.2" opacity=".3"/><path opacity=".3" d="m35.8 31.5l4.1 7.2-1.3 2.5z"/></g><path d="m42.2 27.3c0 0 7.7 11.8 6.7 16.7-1.1 5.6-22.3 8.8-22.3 8.8l-.3-6.4c0 0 13.1-3.1 14.8-5.4-1.1-2.5-5.3-9.6-5.3-9.6l6.4-4.1" fill="#e84d88"/><path d="m28.4 26.3l8.4-14.8.2 15.3c-3.5 1.5-5.5 0-5.5 0-1.1-2-3.1-.5-3.1-.5" fill="#705041"/><path d="m40.3 9.1c-3.4-6.7-8.9-6.3-8.9-6.3-6.9-3.1-14.3 3.6-15.7 7.4-2.9 7.7 3.8 10.8 4.7 10.1l14.3-4.5c0 0 2.9 3 1.6 9-1.3 5.9 4.7 10.3 4.7 10.3s5.9-12.8-.7-26" fill="#231f20"/><path d="m17.2 12.4c-.2-2.1 4.1-1.7 6.4.6 5 5.1 6.5 3.8 6.5 3.8-.3-.4-.5-.9-.6-1.4-.5-2 .2-3.9 1.7-4.2 1.5-.3 3.2 1.1 3.7 3.1.5 1.8-.1 3.5-1.3 4.1 1.8 5.5.1 5.6-2.5 7.6-5.6 4.6-6.5 3.4-7.1 1.6-.3-.8-.9-.4-1.6-.5 0 0-.1-.5-.6-1.8-.4-1.3-1.7-1.1-1.3-1.8.4-.7.6-1.1.3-1.5-.1-.2-1.4.4-1.8-.3-.7-1.2 1.1-1.4.8-3.6 0-1.2-2.2-1.4-2.6-5.7" fill="#8a6859"/><path d="m22.4 24.2c-.4 0-.7-.1-1-.2-.3-.1-.6-.3-.6-.8-.2.1-.2.4-.2.7.1.3.3.5.5.7.2.2.4.3.6.4-.1.2-.1.5 0 .8.1.3.2.5.3.7.2.2.3.4.5.5 0-.5-.1-.9-.1-1.2 0-.1.1-.3.1-.4.1-.1.2-.3.3-.4l.5-.8h-.9" fill="#c94747"/><path d="m31.3 12.4c-.4.2-.7.5-.8.9-.2.4-.2.9-.1 1.3.1.4.2.7.4 1-.2 0-.3.1-.4.2.2 0 .4.1.5.2.1.1.3.2.4.3.1.1.2.2.3.4.1.1.1.3.2.6.2-.1.3-.4.3-.6 0-.3-.1-.6-.3-.8-.2-.2-.4-.4-.7-.4-.1 0-.1 0-.2 0-.1-.8-.1-1.4.1-2 .1-.3.3-.6.6-.8.2-.2.5-.5.8-.7-.3.1-.7.2-1.1.4" fill="#574137"/><path d="m20.9 17.8c-.1-.4-.2-.6-.4-.8-.2-.2-.4-.5-.6-.8-.2-.3-.3-.8-.3-1.2.1-.4.3-.7.6-.8-.1.3-.1.7-.1.9s.1.5.3.8c.1.3.4.6.5.9.2.2.3.7 0 1" fill="#705041"/><path d="m23.7 15c-.3.3-.4.7-.6 1.1-.1.4-.3.8-.6 1.1-.2.4-.6.7-1 .9-.4.2-1 .2-1.4-.1.9-.3 1.2-.8 1.6-1.4.2-.3.4-.6.7-1 .4-.4.8-.7 1.3-.6" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f930.svg b/build/js/jsxc/lib/emojione/assets/svg/1f930.svg
new file mode 100644
index 0000000..768b902
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f930.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m39.9 27.3l-8.5-.6c0 4.8-10.4 7-10.4 10.8 0 2.7 2.5 3.4 2.5 3.4s-7.9 3-7.9 11.4c0 6.7 5.3 9.6 11.6 9.6h10.3c0 0 .7-2-.6-9.1-2.5-13.9 7.6-11.6 3-25.5" fill="#e84d88"/><path d="m20.4 46.7l.6-1.4 1.1-.3c2.7 0 3.5 1.7 4.9 1.7v5.7c0 0-1.1 1-5.4 1-2.1 0-3.5-1.4-4.1-4.4-.7-2.4 2.9-2.3 2.9-2.3" fill="#ffdd67"/><path d="m22.1 45c0 0-1.2.3-1.2 1 0 .4 1.4-.1 2.4 1-1.4-.7-3-.3-3-.3-.6-.6-.1-1.7 1.8-1.7" fill="#eba352"/><g fill="#231f20"><path d="m26 46.2c5.8-1.2 11.6-3.1 11.6-3.1l-.9 7.6.2 1.2c0 0-3.5 1.9-10.8 2.5v-.6c0 0-5.4.8-7.1-1.2 2.7 1.2 7-.2 7-.2v-6.2" opacity=".3"/><path opacity=".3" d="m35.8 31.5l4.1 7.2-1.3 2.5z"/></g><path d="m42.2 27.3c0 0 7.7 11.8 6.7 16.7-1.1 5.6-22.3 8.8-22.3 8.8l-.3-6.4c0 0 13.1-3.1 14.8-5.4-1.1-2.5-5.3-9.6-5.3-9.6l6.4-4.1" fill="#e84d88"/><path d="m28.4 26.3l8.4-14.8.2 15.3c-3.5 1.5-5.5 0-5.5 0-1.1-2-3.1-.5-3.1-.5" fill="#eba352"/><path d="m40.3 9.1c-3.4-6.7-8.9-6.3-8.9-6.3-6.9-3.1-14.3 3.6-15.7 7.4-2.9 7.7 3.8 10.8 4.7 10.1l14.3-4.5c0 0 2.9 3 1.6 9-1.3 5.9 4.7 10.3 4.7 10.3s5.9-12.8-.7-26" fill="#ffb300"/><path d="m17.2 12.4c-.2-2.1 4.1-1.7 6.4.6 5 5.1 6.5 3.8 6.5 3.8-.3-.4-.5-.9-.6-1.4-.5-2 .2-3.9 1.7-4.2 1.5-.3 3.2 1.1 3.7 3.1.5 1.8-.1 3.5-1.3 4.1 1.8 5.5.1 5.6-2.5 7.6-5.6 4.6-6.5 3.4-7.1 1.6-.3-.8-.9-.4-1.6-.5 0 0-.1-.5-.6-1.8-.4-1.3-1.7-1.1-1.3-1.8.4-.7.6-1.1.3-1.5-.1-.2-1.4.4-1.8-.3-.7-1.1 1.1-1.4.8-3.6 0-1.2-2.2-1.4-2.6-5.7" fill="#ffdd67"/><path d="m22.4 24.2c-.4 0-.7-.1-1-.2-.3-.1-.6-.3-.6-.8-.2.1-.2.4-.2.7.1.3.3.5.5.7.2.2.4.3.6.4-.1.2-.1.5 0 .8.1.3.2.5.3.7.2.2.3.4.5.5 0-.5-.1-.9-.1-1.2 0-.1.1-.3.1-.4.1-.1.2-.3.3-.4l.5-.8h-.9" fill="#c94747"/><path d="m31.3 12.4c-.4.2-.7.5-.8.9-.2.4-.2.9-.1 1.3.1.4.2.7.4 1-.2 0-.3.1-.4.2.2 0 .4.1.5.2.1.1.3.2.4.3.1.1.2.2.3.4.1.1.1.3.2.6.2-.1.3-.4.3-.6 0-.3-.1-.6-.3-.8-.2-.2-.4-.4-.7-.4-.1 0-.1 0-.2 0-.1-.8-.1-1.4.1-2 .1-.3.3-.6.6-.8.2-.2.5-.5.8-.7-.3.1-.7.2-1.1.4" fill="#664e27"/><path d="m20.9 17.8c-.1-.4-.2-.6-.4-.8-.2-.2-.4-.5-.6-.8-.2-.3-.3-.8-.3-1.2.1-.4.3-.7.6-.8-.1.3-.1.7-.1.9 0 .3.1.5.3.8.1.3.4.6.5.9.2.2.3.7 0 1" fill="#eba352"/><path d="m23.7 15c-.3.3-.4.7-.6 1.1-.1.4-.3.8-.6 1.1-.2.4-.6.7-1 .9-.4.2-1 .2-1.4-.1.8-.3 1.2-.8 1.6-1.4.2-.3.4-.6.7-1 .4-.4.8-.7 1.3-.6" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fb.svg
new file mode 100644
index 0000000..891ddd1
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m38.6 32.7v-1.6h-4.4v1.6c0 .9-.7 1.6-1.5 1.6h7.5c-.9 0-1.6-.7-1.6-1.6"/><path d="m30.7 34.3h11.3v5.1h-11.3z"/></g><path d="m25.9 34.3c-1.4 0-2.1.8-2.6 1.3-16 18.2-16 18.2-16 18.2h3.2c2.5 0 3.3-.9 4-1.7 15.7-17.8 15.7-17.8 15.7-17.8h-4.3" fill="#75a843"/><path d="m4.9 43.8l4.8 2.9c.9.5 2 .3 2.6-.6.6-.8.3-2-.6-2.5l-4.8-2.9c-.9-.5-2-.3-2.6.6-.5.8-.2 2 .6 2.5" fill="#e6b796"/><path d="m17.7 48.3c0 .6-.5 1.1-1.1 1.1h-9.2c-.6 0-1.1-.5-1.1-1.1v-20.6c0-.6.5-1.1 1.1-1.1h9.1c.6 0 1.1.5 1.1 1.1v20.6z" fill="#3e4347"/><circle cx="12" cy="31.1" r="1.1" fill="#b2c1c0"/><circle cx="12" cy="31.1" r=".6" fill="#3e4347"/><path d="m12.8 51.5c0 1.3-1 2.3-2.3 2.3h-4.2c-1.3 0-2.3-1-2.3-2.3v-7.7c0-1.3 1-2.3 2.3-2.3h4.3c1.3 0 2.3 1 2.3 2.3v7.7z" fill="#ffe1bd"/><path d="m53.4 24.9v4.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4v-4.2c0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4" fill="#e6b796"/><path d="m60 34.1c0 .9-.8 1.7-1.7 1.7h-3.2c-.9 0-1.7-.8-1.7-1.7v-5.8c0-.9.8-1.7 1.7-1.7h3.2c.9 0 1.7.8 1.7 1.7v5.8" fill="#ffe1bd"/><path d="m16.3 28.7c0 .2-.1.3-.3.3h-.6c-.2 0-.3-.1-.3-.3v-.6c0-.2.1-.3.3-.3h.6c.2 0 .3.1.3.3 0 .1 0 .6 0 .6" fill="#fff"/><path d="m54.3 35.6c-1 2.2-1.9 4.2-2.7 6-.8-1.8-1.7-3.8-2.7-6-.3-.7-1.2-1.3-2.6-1.3h-2.6c0 0 3.5 7.9 4.7 10.5 0 .1.9 2 2.8 2h.2c.6 0 2.4-.2 3.2-2l4.1-9.1h-4.4z" fill="#75a843"/><path d="m46.4 34.3h-5.6c-.5 2.1-2.3 3.7-4.4 3.7-2.1 0-3.9-1.6-4.4-3.7h-5.6v25.7c0 0 3.4 2 10 2 6.5 0 10-2 10-2v-25.7" fill="#83bf4f"/><path d="m22.4 16.6l1.4 2.6h25.1l1.1-2.8c0-10-2.4-14.3-13.5-14.4-11.3-.1-14.1 4.4-14.1 14.6" fill="#594640"/><path d="m49 16.5c-.1.6-.2 1.1-.4 1.4-.3.6-.9.9-.9.9s.2-1.1.1-2.7c-.6-9.3-1.2-4.8-11.4-4.8-10.2 0-10.8-4.5-11.4 4.8-.1 1.6.1 2.7.1 2.7s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.4-1-.3-2.2 0-2.2 2.8 0 1.7.6 3.2 2.8 3.3.8 5.8 8.5 9.7 12 9.7 3.5 0 11.3-3.9 12-9.7 2.1-.2 2.8-1.6 2.8-3.3 0-2.9-1.3-3.1-2.2-2.8" fill="#ffe1bd"/><g fill="#664e27"><circle cx="31.1" cy="19.5" r="2.2"/><circle cx="41.6" cy="19.5" r="2.2"/><path d="m40.4 26.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fc.svg
new file mode 100644
index 0000000..8e9e654
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m38.6 32.7v-1.6h-4.4v1.6c0 .9-.7 1.6-1.5 1.6h7.5c-.9 0-1.6-.7-1.6-1.6"/><path d="m30.7 34.3h11.3v5.1h-11.3z"/></g><path d="m25.9 34.3c-1.4 0-2.1.8-2.6 1.3-16 18.2-16 18.2-16 18.2h3.2c2.5 0 3.3-.9 4-1.7 15.7-17.8 15.7-17.8 15.7-17.8h-4.3" fill="#75a843"/><path d="m4.9 43.8l4.8 2.9c.9.5 2 .3 2.6-.6.6-.8.3-2-.6-2.5l-4.8-2.9c-.9-.5-2-.3-2.6.6-.5.8-.2 2 .6 2.5" fill="#e0a372"/><path d="m17.7 48.3c0 .6-.5 1.1-1.1 1.1h-9.2c-.6 0-1.1-.5-1.1-1.1v-20.6c0-.6.5-1.1 1.1-1.1h9.1c.6 0 1.1.5 1.1 1.1v20.6z" fill="#3e4347"/><circle cx="12" cy="31.1" r="1.1" fill="#b2c1c0"/><circle cx="12" cy="31.1" r=".6" fill="#3e4347"/><path d="m12.8 51.5c0 1.3-1 2.3-2.3 2.3h-4.2c-1.3 0-2.3-1-2.3-2.3v-7.7c0-1.3 1-2.3 2.3-2.3h4.3c1.3 0 2.3 1 2.3 2.3v7.7z" fill="#fed0ac"/><path d="m53.4 24.9v4.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4v-4.2c0-.8-.6-1.4-1.4-1.4s-1.4.6-1.4 1.4" fill="#e0a372"/><path d="m60 34.1c0 .9-.8 1.7-1.7 1.7h-3.2c-.9 0-1.7-.8-1.7-1.7v-5.8c0-.9.8-1.7 1.7-1.7h3.2c.9 0 1.7.8 1.7 1.7v5.8" fill="#fed0ac"/><path d="m16.3 28.7c0 .2-.1.3-.3.3h-.6c-.2 0-.3-.1-.3-.3v-.6c0-.2.1-.3.3-.3h.6c.2 0 .3.1.3.3 0 .1 0 .6 0 .6" fill="#fff"/><path d="m54.3 35.6c-1 2.2-1.9 4.2-2.7 6-.8-1.8-1.7-3.8-2.7-6-.3-.7-1.2-1.3-2.6-1.3h-2.6c0 0 3.5 7.9 4.7 10.5 0 .1.9 2 2.8 2h.2c.6 0 2.4-.2 3.2-2l4.1-9.1h-4.4z" fill="#75a843"/><path d="m46.4 34.3h-5.6c-.5 2.1-2.3 3.7-4.4 3.7-2.1 0-3.9-1.6-4.4-3.7h-5.6v25.7c0 0 3.5 2 10 2 6.5 0 10-2 10-2v-25.7" fill="#83bf4f"/><path d="m22.4 16.6l1.4 2.6h25.1l1.1-2.8c0-10-2.4-14.3-13.5-14.4-11.3-.1-14.1 4.4-14.1 14.6" fill="#dbb471"/><path d="m49 16.5c-.1.6-.2 1.1-.4 1.4-.3.6-.9.9-.9.9s.2-1.1.1-2.7c-.6-9.3-1.2-4.8-11.4-4.8-10.2 0-10.8-4.5-11.4 4.8-.1 1.6.1 2.7.1 2.7s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.4-1-.3-2.2 0-2.2 2.8 0 1.7.6 3.2 2.8 3.3.8 5.8 8.5 9.7 12 9.7 3.5 0 11.3-3.9 12-9.7 2.1-.2 2.8-1.6 2.8-3.3 0-2.9-1.3-3.1-2.2-2.8" fill="#fed0ac"/><g fill="#664e27"><circle cx="31.1" cy="19.5" r="2.2"/><circle cx="41.6" cy="19.5" r="2.2"/><path d="m40.4 26.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fd.svg
new file mode 100644
index 0000000..d40f5f7
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m38.6 32.7v-1.6h-4.4v1.6c0 .9-.7 1.6-1.5 1.6h7.5c-.9 0-1.6-.7-1.6-1.6"/><path d="m42 39.3h-11.3v-5h11.3z"/></g><path d="m25.9 34.3c-1.4 0-2.1.8-2.6 1.3-16 18.2-16 18.2-16 18.2h3.2c2.5 0 3.3-.9 4-1.7 15.7-17.8 15.7-17.8 15.7-17.8h-4.3" fill="#75a843"/><path d="m4.9 43.8l4.8 2.9c.9.5 2 .3 2.6-.6.6-.8.3-2-.6-2.5l-4.8-2.9c-.9-.5-2-.3-2.6.6-.5.8-.2 2 .6 2.5" fill="#b58360"/><path d="m17.7 48.3c0 .6-.5 1.1-1.1 1.1h-9.2c-.6 0-1.1-.5-1.1-1.1v-20.6c0-.6.5-1.1 1.1-1.1h9.1c.6 0 1.1.5 1.1 1.1v20.6z" fill="#3e4347"/><circle cx="12" cy="31.1" r="1.1" fill="#b2c1c0"/><circle cx="12" cy="31.1" r=".6" fill="#3e4347"/><path d="m12.8 51.5c0 1.3-1 2.3-2.3 2.3h-4.2c-1.3 0-2.3-1-2.3-2.3v-7.7c0-1.3 1-2.3 2.3-2.3h4.3c1.3 0 2.3 1 2.3 2.3v7.7z" fill="#d6a57c"/><path d="m53.4 24.9v4.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4v-4.2c0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4" fill="#b58360"/><path d="m60 34.1c0 .9-.8 1.7-1.7 1.7h-3.2c-.9 0-1.7-.8-1.7-1.7v-5.8c0-.9.8-1.7 1.7-1.7h3.2c.9 0 1.7.8 1.7 1.7v5.8" fill="#d6a57c"/><path d="m16.3 28.7c0 .2-.1.3-.3.3h-.6c-.2 0-.3-.1-.3-.3v-.6c0-.2.1-.3.3-.3h.6c.2 0 .3.1.3.3v.6" fill="#fff"/><path d="m54.3 35.6c-1 2.2-1.9 4.2-2.7 6-.8-1.8-1.7-3.8-2.7-6-.3-.7-1.2-1.3-2.6-1.3h-2.6c0 0 3.5 7.9 4.7 10.5 0 .1.9 2 2.8 2h.2c.6 0 2.4-.2 3.2-2l4.1-9.1h-4.4z" fill="#75a843"/><path d="m46.4 34.3h-5.6c-.5 2.1-2.3 3.7-4.4 3.7-2.1 0-3.9-1.6-4.4-3.7h-5.6v25.7c0 0 3.5 2 10 2 6.5 0 10-2 10-2v-25.7" fill="#83bf4f"/><path d="m22.4 16.6l1.4 2.6h25.1l1.1-2.8c0-10-2.4-14.3-13.5-14.4-11.3-.1-14.1 4.4-14.1 14.6" fill="#594640"/><path d="m49 16.5c-.1.6-.2 1.1-.4 1.4-.3.6-.9.9-.9.9s.2-1.1.1-2.7c-.6-9.3-1.2-4.8-11.4-4.8-10.2 0-10.8-4.5-11.4 4.8-.1 1.6.1 2.7.1 2.7s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.4-1-.3-2.2 0-2.2 2.8 0 1.7.6 3.2 2.8 3.3.8 5.8 8.5 9.7 12 9.7 3.5 0 11.3-3.9 12-9.7 2.1-.2 2.8-1.6 2.8-3.3 0-2.9-1.3-3.1-2.2-2.8" fill="#d6a57c"/><g fill="#664e27"><circle cx="31.1" cy="19.5" r="2.2"/><circle cx="41.6" cy="19.5" r="2.2"/><path d="m40.4 26.7c0 1.5-2 2.3-4 2.3s-4-.8-4-2.3c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fe.svg
new file mode 100644
index 0000000..d19b5ea
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m38.6 32.7v-1.6h-4.4v1.6c0 .9-.7 1.6-1.5 1.6h7.5c-.9 0-1.6-.7-1.6-1.6"/><path d="m30.7 34.3h11.3v5.1h-11.3z"/></g><path d="m25.9 34.3c-1.4 0-2.1.8-2.6 1.3-16 18.2-16 18.2-16 18.2h3.2c2.5 0 3.3-.9 4-1.7 15.7-17.8 15.7-17.8 15.7-17.8h-4.3" fill="#75a843"/><path d="m4.9 43.8l4.8 2.9c.9.5 2 .3 2.6-.6.6-.8.3-2-.6-2.5l-4.8-2.9c-.9-.5-2-.3-2.6.6-.5.8-.2 2 .6 2.5" fill="#935e3e"/><path d="m17.7 48.3c0 .6-.5 1.1-1.1 1.1h-9.2c-.6 0-1.1-.5-1.1-1.1v-20.6c0-.6.5-1.1 1.1-1.1h9.1c.6 0 1.1.5 1.1 1.1v20.6z" fill="#3e4347"/><circle cx="12" cy="31.1" r="1.1" fill="#b2c1c0"/><circle cx="12" cy="31.1" r=".6" fill="#3e4347"/><path d="m12.8 51.5c0 1.3-1 2.3-2.3 2.3h-4.2c-1.3 0-2.3-1-2.3-2.3v-7.7c0-1.3 1-2.3 2.3-2.3h4.3c1.3 0 2.3 1 2.3 2.3v7.7z" fill="#b47d56"/><path d="m53.4 24.9v4.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4v-4.2c0-.8-.6-1.4-1.4-1.4s-1.4.6-1.4 1.4" fill="#935e3e"/><path d="m60 34.1c0 .9-.8 1.7-1.7 1.7h-3.2c-.9 0-1.7-.8-1.7-1.7v-5.8c0-.9.8-1.7 1.7-1.7h3.2c.9 0 1.7.8 1.7 1.7v5.8" fill="#b47d56"/><path d="m16.3 28.7c0 .2-.1.3-.3.3h-.6c-.2 0-.3-.1-.3-.3v-.6c0-.2.1-.3.3-.3h.6c.2 0 .3.1.3.3 0 .1 0 .6 0 .6" fill="#fff"/><path d="m54.3 35.6c-1 2.2-1.9 4.2-2.7 6-.8-1.8-1.7-3.8-2.7-6-.3-.7-1.2-1.3-2.6-1.3h-2.6c0 0 3.5 7.9 4.7 10.5 0 .1.9 2 2.8 2h.2c.6 0 2.4-.2 3.2-2l4.1-9.1h-4.4z" fill="#75a843"/><path d="m46.4 34.3h-5.6c-.5 2.1-2.3 3.7-4.4 3.7-2.1 0-3.9-1.6-4.4-3.7h-5.6v25.7c0 0 3.5 2 10 2 6.5 0 10-2 10-2v-25.7" fill="#83bf4f"/><path d="m22.4 16.6l1.4 2.6h25.1l1.1-2.8c0-10-2.4-14.3-13.5-14.4-11.3-.1-14.1 4.4-14.1 14.6" fill="#231f20"/><path d="m49 16.5c-.1.6-.2 1.1-.4 1.4-.3.6-.9.9-.9.9s.2-1.1.1-2.7c-.6-9.3-1.2-4.8-11.4-4.8-10.2 0-10.8-4.5-11.4 4.8-.1 1.6.1 2.7.1 2.7s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.4-1-.3-2.2 0-2.2 2.8 0 1.7.6 3.2 2.8 3.3.8 5.8 8.5 9.7 12 9.7 3.5 0 11.3-3.9 12-9.7 2.1-.2 2.8-1.6 2.8-3.3 0-2.9-1.3-3.1-2.2-2.8" fill="#b47d56"/><g fill="#664e27"><circle cx="31.1" cy="19.5" r="2.2"/><circle cx="41.6" cy="19.5" r="2.2"/><path d="m40.4 26.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3ff.svg
new file mode 100644
index 0000000..3be2743
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f933-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m38.6 32.7v-1.6h-4.4v1.6c0 .9-.7 1.6-1.5 1.6h7.5c-.9 0-1.6-.7-1.6-1.6"/><path d="m30.7 34.3h11.3v5.1h-11.3z"/></g><path d="m25.9 34.3c-1.4 0-2.1.8-2.6 1.3-16 18.2-16 18.2-16 18.2h3.2c2.5 0 3.3-.9 4-1.7 15.7-17.8 15.7-17.8 15.7-17.8h-4.3" fill="#75a843"/><path d="m4.9 43.8l4.8 2.9c.9.5 2 .3 2.6-.6.6-.8.3-2-.6-2.5l-4.8-2.9c-.9-.5-2-.3-2.6.6-.5.8-.2 2 .6 2.5" fill="#705041"/><path d="m17.7 48.3c0 .6-.5 1.1-1.1 1.1h-9.2c-.6 0-1.1-.5-1.1-1.1v-20.6c0-.6.5-1.1 1.1-1.1h9.1c.6 0 1.1.5 1.1 1.1v20.6z" fill="#3e4347"/><circle cx="12" cy="31.1" r="1.1" fill="#b2c1c0"/><circle cx="12" cy="31.1" r=".6" fill="#3e4347"/><path d="m12.8 51.5c0 1.3-1 2.3-2.3 2.3h-4.2c-1.3 0-2.3-1-2.3-2.3v-7.7c0-1.3 1-2.3 2.3-2.3h4.3c1.3 0 2.3 1 2.3 2.3l-.1 7.7" fill="#8a6859"/><path d="m53.4 24.9v4.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4v-4.2c0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4" fill="#705041"/><path d="m60 34.1c0 .9-.8 1.7-1.7 1.7h-3.2c-.9 0-1.7-.8-1.7-1.7v-5.8c0-.9.8-1.7 1.7-1.7h3.2c.9 0 1.7.8 1.7 1.7v5.8" fill="#8a6859"/><path d="m16.3 28.7c0 .2-.1.3-.3.3h-.6c-.2 0-.3-.1-.3-.3v-.6c0-.2.1-.3.3-.3h.6c.2 0 .3.1.3.3v.6" fill="#fff"/><path d="m54.3 35.6c-1 2.2-1.9 4.2-2.7 6-.8-1.8-1.7-3.8-2.7-6-.3-.7-1.2-1.3-2.6-1.3h-2.6c0 0 3.5 7.9 4.7 10.5 0 .1.9 2 2.8 2h.2c.6 0 2.4-.2 3.2-2l4.1-9.1h-4.4z" fill="#75a843"/><path d="m46.4 34.3h-5.6c-.5 2.1-2.3 3.7-4.4 3.7-2.1 0-3.9-1.6-4.4-3.7h-5.6v25.7c0 0 3.4 2 10 2 6.5 0 10-2 10-2v-25.7" fill="#83bf4f"/><path d="m22.4 16.6l1.4 2.6h25.1l1.1-2.8c0-10-2.4-14.3-13.5-14.4-11.3-.1-14.1 4.4-14.1 14.6" fill="#231f20"/><path d="m49 16.5c-.1.6-.2 1.1-.4 1.4-.3.6-.9.9-.9.9s.2-1.1.1-2.7c-.6-9.3-1.2-4.8-11.4-4.8-10.2 0-10.8-4.5-11.4 4.8-.1 1.6.1 2.7.1 2.7s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.4-1-.3-2.2 0-2.2 2.8 0 1.7.6 3.2 2.8 3.3.8 5.8 8.5 9.7 12 9.7s11.3-3.9 12-9.7c2.1-.2 2.8-1.6 2.8-3.3 0-2.9-1.3-3.1-2.2-2.8" fill="#8a6859"/><g fill="#574137"><circle cx="31.1" cy="19.5" r="2.2"/><circle cx="41.6" cy="19.5" r="2.2"/><path d="m40.4 26.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f933.svg b/build/js/jsxc/lib/emojione/assets/svg/1f933.svg
new file mode 100644
index 0000000..009221c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f933.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m38.6 32.7v-1.6h-4.4v1.6c0 .9-.7 1.6-1.5 1.6h7.5c-.9 0-1.6-.7-1.6-1.6"/><path d="m30.7 34.3h11.3v5.1h-11.3z"/></g><path d="m25.9 34.3c-1.4 0-2.1.8-2.6 1.3-16 18.2-16 18.2-16 18.2h3.2c2.5 0 3.3-.9 4-1.7 15.7-17.8 15.7-17.8 15.7-17.8h-4.3" fill="#75a843"/><path d="m4.9 43.8l4.8 2.9c.9.5 2 .3 2.6-.6.6-.8.3-2-.6-2.5l-4.8-2.9c-.9-.5-2-.3-2.6.6-.5.8-.2 2 .6 2.5" fill="#eba352"/><path d="m17.7 48.3c0 .6-.5 1.1-1.1 1.1h-9.2c-.6 0-1.1-.5-1.1-1.1v-20.6c0-.6.5-1.1 1.1-1.1h9.1c.6 0 1.1.5 1.1 1.1v20.6z" fill="#3e4347"/><circle cx="12" cy="31.1" r="1.1" fill="#b2c1c0"/><circle cx="12" cy="31.1" r=".6" fill="#3e4347"/><path d="m12.8 51.5c0 1.3-1 2.3-2.3 2.3h-4.2c-1.3 0-2.3-1-2.3-2.3v-7.7c0-1.3 1-2.3 2.3-2.3h4.3c1.3 0 2.3 1 2.3 2.3v7.7z" fill="#ffdd67"/><path d="m53.4 24.9v4.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4v-4.2c0-.8-.6-1.4-1.4-1.4s-1.4.6-1.4 1.4" fill="#eba352"/><path d="m60 34.1c0 .9-.8 1.7-1.7 1.7h-3.2c-.9 0-1.7-.8-1.7-1.7v-5.8c0-.9.8-1.7 1.7-1.7h3.2c.9 0 1.7.8 1.7 1.7v5.8" fill="#ffdd67"/><path d="m16.3 28.7c0 .2-.1.3-.3.3h-.6c-.2 0-.3-.1-.3-.3v-.6c0-.2.1-.3.3-.3h.6c.2 0 .3.1.3.3 0 .1 0 .6 0 .6" fill="#fff"/><path d="m54.3 35.6c-1 2.2-1.9 4.2-2.7 6-.8-1.8-1.7-3.8-2.7-6-.3-.7-1.2-1.3-2.6-1.3h-2.6c0 0 3.5 7.9 4.7 10.5 0 .1.9 2 2.8 2h.2c.6 0 2.4-.2 3.2-2l4.1-9.1h-4.4z" fill="#75a843"/><path d="m46.4 34.3h-5.6c-.5 2.1-2.3 3.7-4.4 3.7-2.1 0-3.9-1.6-4.4-3.7h-5.6v25.7c0 0 3.5 2 10 2 6.5 0 10-2 10-2v-25.7" fill="#83bf4f"/><path d="M22.4,16.7l1.4,2.6h25.1l1.1-2.8C50,6.4,47.6,2.1,36.5,2C25.2,1.9,22.4,6.4,22.4,16.7z" fill="#ffb300"/><path d="m49 16.5c-.1.6-.2 1.1-.4 1.4-.3.6-.9.9-.9.9s.2-1.1.1-2.7c-.6-9.3-1.2-4.8-11.4-4.8-10.2 0-10.8-4.5-11.4 4.8-.1 1.6.1 2.7.1 2.7s-.6-.3-.9-.9c-.2-.3-.3-.9-.4-1.4-1-.3-2.2 0-2.2 2.8 0 1.7.6 3.2 2.8 3.3.8 5.8 8.5 9.7 12 9.7 3.5 0 11.3-3.9 12-9.7 2.1-.2 2.8-1.6 2.8-3.3 0-2.9-1.3-3.1-2.2-2.8" fill="#ffdd67"/><g fill="#937237"><circle cx="31.1" cy="19.5" r="2.2"/><circle cx="41.6" cy="19.5" r="2.2"/><path d="m40.4 26.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fb.svg
new file mode 100644
index 0000000..9688cea
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3 38.3h47.3c0-25.5-3.6-31-23.7-31-19.9.1-23.6 5.5-23.6 31" fill="#594640"/><path d="m53.7 32.7c-.2 1-.4 1.9-.6 2.4-.5.9-1.5 1.5-1.5 1.5s.3-1.9.2-4.6c-1.1-15.8-2-11.4-19.7-11.4s-18.6-4.3-19.7 11.4c-.1 2.7.2 4.6.2 4.6s-1-.5-1.6-1.5c-.3-.5-.5-1.4-.6-2.4-1.7-.4-3.8-.1-3.8 4.7 0 2.9 1.1 5.4 4.8 5.6 1.2 9.3 6.6 14.1 15.7 18.1 2.5 1.1 7.6 1.1 10 0 9.1-4.1 14.5-8.8 15.7-18.1 3.7-.3 4.8-2.7 4.8-5.6-.1-4.7-2.3-5.1-3.9-4.7" fill="#ffe1bd"/><path d="m40.2 50.9c0 3.4-4.1 5.1-8.2 5.1-4.1 0-8.2-1.7-8.2-5.1 0 0 0-.9.8-.9 3.7 0 11.1 0 14.7 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m21.1 31.5c-4.5 0-6.4 1.7-6.4 3.3 0 1.6 0 4 6 4 5.8 0 6.7-.7 6.7-3.2.1-1.6-1.8-4.1-6.3-4.1" fill="#f5f5f5"/><path d="m25.6 34.3c0 2.3-1.8 4.1-4.1 4.1-2.3 0-4.1-1.8-4.1-4.1 0-2.3 1.8-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1" fill="#664e27"/><path d="m22.9 34.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4" fill="#231f20"/><path d="m14.7 34.8c0-6.4 12.8-6.4 12.8.9-1.9-5.5-11-5.5-12.8-.9" fill="#664e27"/><path d="m42.9 31.5c4.6 0 6.4 1.7 6.4 3.3 0 1.6 0 4-6 4-5.8 0-6.7-.7-6.7-3.2 0-1.6 1.8-4.1 6.3-4.1" fill="#f5f5f5"/><path d="m38.4 34.3c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1 0-2.3-1.8-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.1" fill="#664e27"/><path d="m41.1 34.3c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4 0-.8-.6-1.4-1.4-1.4-.8.1-1.4.7-1.4 1.4" fill="#231f20"/><path d="m49.3 34.8c0-6.4-12.8-6.4-12.8.9 1.9-5.5 11-5.5 12.8-.9" fill="#664e27"/><path d="m32 47c-3.3 0-5-3-3.3-3 1.7 0 5 0 6.7 0 1.6 0-.1 3-3.4 3" fill="#e6b796"/><g fill="#d9a000"><path d="m22 8l-4-4-4 4h2v4h6z"/><path d="m50 8l-4-4-4 4v4h6v-4z"/></g><path d="m54 16h-44c0-13.3 44-13.3 44 0" fill="#9450e0"/><path d="m48 16h-36c0-10.7 36-10.7 36 0" fill="#7e44bf"/><path fill="#d9a000" d="m8 20h48v6h-48z"/><path fill="#ffce31" d="m50 10l2 2v2h-16v-2l2-2-6-8-6 8 2 2v2h-16v-2l2-2-8-6.1 2 20.1h48l2-20.1z"/><path fill="#66caf2" d="m32 22v-3.1h2z"/><g fill="#428bc1"><path d="m32 22l-2-3.1h2z"/><path d="m34 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m32 16v2.9h-2z"/><path d="m14.8 22v-3.1h1.9z"/></g><g fill="#428bc1"><path d="m14.8 22l-2.1-3.1h2.1z"/><path d="m16.7 18.9h-1.9v-2.9z"/></g><g fill="#66caf2"><path d="m14.8 16v2.9h-2.1z"/><path d="m23.4 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m23.4 22l-2-3.1h2z"/><path d="m25.4 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m23.4 16v2.9h-2z"/><path d="m40.7 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m40.7 22l-2-3.1h2z"/><path d="m42.7 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m40.7 16v2.9h-2z"/><path d="m49.3 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m49.3 22l-2-3.1h2z"/><path d="m51.3 18.9h-2v-2.9z"/></g><path fill="#66caf2" d="m49.3 16v2.9h-2z"/><path fill="#428bc1" d="m8 22l-2-3.1h2z"/><g fill="#66caf2"><path d="m8 16v2.9h-2z"/><path d="m56 22v-3.1h2z"/></g><path fill="#428bc1" d="m58 18.9h-2v-2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fc.svg
new file mode 100644
index 0000000..cc27b53
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3 38.3h47.3c0-25.5-3.6-31-23.7-31-19.9.1-23.6 5.5-23.6 31" fill="#dbb471"/><path d="m53.7 32.7c-.2 1-.4 1.9-.6 2.4-.5.9-1.5 1.5-1.5 1.5s.3-1.9.2-4.6c-1.1-15.8-2-11.4-19.7-11.4s-18.6-4.3-19.7 11.4c-.1 2.7.2 4.6.2 4.6s-1-.5-1.6-1.5c-.3-.5-.5-1.4-.6-2.4-1.7-.4-3.8-.1-3.8 4.7 0 2.9 1.1 5.4 4.8 5.6 1.2 9.3 6.6 14.1 15.7 18.1 2.5 1.1 7.6 1.1 10 0 9.1-4.1 14.5-8.8 15.7-18.1 3.7-.3 4.8-2.7 4.8-5.6-.1-4.7-2.3-5.1-3.9-4.7" fill="#fed0ac"/><path d="m40.2 50.9c0 3.4-4.1 5.1-8.2 5.1s-8.2-1.7-8.2-5.1c0 0 0-.9.8-.9 3.7 0 11.1 0 14.7 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m21.1 31.5c-4.5 0-6.4 1.7-6.4 3.3 0 1.6 0 4 6 4 5.8 0 6.7-.7 6.7-3.2.1-1.6-1.8-4.1-6.3-4.1" fill="#f5f5f5"/><path d="m25.6 34.3c0 2.3-1.8 4.1-4.1 4.1-2.3 0-4.1-1.8-4.1-4.1 0-2.3 1.8-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1" fill="#664e27"/><path d="m22.9 34.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4" fill="#231f20"/><path d="m14.7 34.8c0-6.4 12.8-6.4 12.8.9-1.9-5.5-11-5.5-12.8-.9" fill="#664e27"/><path d="m42.9 31.5c4.6 0 6.4 1.7 6.4 3.3 0 1.6 0 4-6 4-5.8 0-6.7-.7-6.7-3.2 0-1.6 1.8-4.1 6.3-4.1" fill="#f5f5f5"/><path d="m38.4 34.3c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1 0-2.3-1.8-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.1" fill="#664e27"/><path d="m41.1 34.3c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4 0-.8-.6-1.4-1.4-1.4-.8.1-1.4.7-1.4 1.4" fill="#231f20"/><path d="m49.3 34.8c0-6.4-12.8-6.4-12.8.9 1.9-5.5 11-5.5 12.8-.9" fill="#664e27"/><path d="m32 47c-3.3 0-5-3-3.3-3 1.7 0 5 0 6.7 0 1.6 0-.1 3-3.4 3" fill="#e0a372"/><g fill="#d9a000"><path d="m22 8l-4-4-4 4h2v4h6z"/><path d="m50 8l-4-4-4 4v4h6v-4z"/></g><path d="m54 16h-44c0-13.3 44-13.3 44 0" fill="#9450e0"/><path d="m48 16h-36c0-10.7 36-10.7 36 0" fill="#7e44bf"/><path fill="#d9a000" d="m8 20h48v6h-48z"/><path fill="#ffce31" d="m50 10l2 2v2h-16v-2l2-2-6-8-6 8 2 2v2h-16v-2l2-2-8-6.1 2 20.1h48l2-20.1z"/><path fill="#66caf2" d="m32 22v-3.1h2z"/><g fill="#428bc1"><path d="m32 22l-2-3.1h2z"/><path d="m34 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m32 16v2.9h-2z"/><path d="m14.8 22v-3.1h1.9z"/></g><g fill="#428bc1"><path d="m14.8 22l-2.1-3.1h2.1z"/><path d="m16.7 18.9h-1.9v-2.9z"/></g><g fill="#66caf2"><path d="m14.8 16v2.9h-2.1z"/><path d="m23.4 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m23.4 22l-2-3.1h2z"/><path d="m25.4 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m23.4 16v2.9h-2z"/><path d="m40.7 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m40.7 22l-2-3.1h2z"/><path d="m42.7 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m40.7 16v2.9h-2z"/><path d="m49.3 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m49.3 22l-2-3.1h2z"/><path d="m51.3 18.9h-2v-2.9z"/></g><path fill="#66caf2" d="m49.3 16v2.9h-2z"/><path fill="#428bc1" d="m8 22l-2-3.1h2z"/><g fill="#66caf2"><path d="m8 16v2.9h-2z"/><path d="m56 22v-3.1h2z"/></g><path fill="#428bc1" d="m58 18.9h-2v-2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fd.svg
new file mode 100644
index 0000000..44a0524
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3 38.3h47.3c0-25.5-3.6-31-23.7-31-19.9.1-23.6 5.5-23.6 31" fill="#594640"/><path d="m53.7 32.7c-.2 1-.4 1.9-.6 2.4-.5.9-1.5 1.5-1.5 1.5s.3-1.9.2-4.6c-1.1-15.8-2-11.4-19.7-11.4s-18.6-4.3-19.7 11.4c-.1 2.7.2 4.6.2 4.6s-1-.5-1.6-1.5c-.3-.5-.5-1.4-.6-2.4-1.7-.4-3.8-.1-3.8 4.7 0 2.9 1.1 5.4 4.8 5.6 1.2 9.3 6.6 14.1 15.7 18.1 2.5 1.1 7.6 1.1 10 0 9.1-4.1 14.5-8.8 15.7-18.1 3.7-.3 4.8-2.7 4.8-5.6-.1-4.7-2.3-5.1-3.9-4.7" fill="#d6a57c"/><path d="m40.2 50.9c0 3.4-4.1 5.1-8.2 5.1-4.1 0-8.2-1.7-8.2-5.1 0 0 0-.9.8-.9 3.7 0 11.1 0 14.7 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m21.1 31.5c-4.6 0-6.4 1.7-6.4 3.3 0 1.6 0 4 6 4 5.8 0 6.7-.7 6.7-3.2.1-1.6-1.8-4.1-6.3-4.1" fill="#f5f5f5"/><path d="m25.6 34.3c0 2.3-1.8 4.1-4.1 4.1-2.3 0-4.1-1.8-4.1-4.1 0-2.3 1.8-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1" fill="#664e27"/><path d="m22.9 34.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4" fill="#231f20"/><path d="m14.7 34.8c0-6.4 12.8-6.4 12.8.9-1.9-5.5-11-5.5-12.8-.9" fill="#664e27"/><path d="m42.9 31.5c4.6 0 6.4 1.7 6.4 3.3 0 1.6 0 4-6 4-5.8 0-6.7-.7-6.7-3.2 0-1.6 1.8-4.1 6.3-4.1" fill="#f5f5f5"/><path d="m38.4 34.3c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1 0-2.3-1.8-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.1" fill="#664e27"/><path d="m41.1 34.3c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4 0-.8-.6-1.4-1.4-1.4-.8.1-1.4.7-1.4 1.4" fill="#231f20"/><path d="m49.3 34.8c0-6.4-12.8-6.4-12.8.9 1.9-5.5 11-5.5 12.8-.9" fill="#664e27"/><path d="m32 47c-3.3 0-5-3-3.3-3s5 0 6.7 0c1.6 0-.1 3-3.4 3" fill="#b58360"/><g fill="#d9a000"><path d="m22 8l-4-4-4 4h2v4h6z"/><path d="m50 8l-4-4-4 4v4h6v-4z"/></g><path d="m54 16h-44c0-13.3 44-13.3 44 0" fill="#9450e0"/><path d="m48 16h-36c0-10.7 36-10.7 36 0" fill="#7e44bf"/><path fill="#d9a000" d="m8 20h48v6h-48z"/><path fill="#ffce31" d="m50 10l2 2v2h-16v-2l2-2-6-8-6 8 2 2v2h-16v-2l2-2-8-6.1 2 20.1h48l2-20.1z"/><path fill="#66caf2" d="m32 22v-3.1h2z"/><g fill="#428bc1"><path d="m32 22l-2-3.1h2z"/><path d="m34 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m32 16v2.9h-2z"/><path d="m14.8 22v-3.1h1.9z"/></g><g fill="#428bc1"><path d="m14.8 22l-2.1-3.1h2.1z"/><path d="m16.7 18.9h-1.9v-2.9z"/></g><g fill="#66caf2"><path d="m14.8 16v2.9h-2.1z"/><path d="m23.4 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m23.4 22l-2-3.1h2z"/><path d="m25.4 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m23.4 16v2.9h-2z"/><path d="m40.7 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m40.7 22l-2-3.1h2z"/><path d="m42.7 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m40.7 16v2.9h-2z"/><path d="m49.3 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m49.3 22l-2-3.1h2z"/><path d="m51.3 18.9h-2v-2.9z"/></g><path fill="#66caf2" d="m49.3 16v2.9h-2z"/><path fill="#428bc1" d="m8 22l-2-3.1h2z"/><g fill="#66caf2"><path d="m8 16v2.9h-2z"/><path d="m56 22v-3.1h2z"/></g><path fill="#428bc1" d="m58 18.9h-2v-2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fe.svg
new file mode 100644
index 0000000..71c66cb
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3 38.3h47.3c0-25.5-3.6-31-23.7-31-19.9.1-23.6 5.5-23.6 31" fill="#231f20"/><path d="m53.7 32.7c-.2 1-.4 1.9-.6 2.4-.5.9-1.5 1.5-1.5 1.5s.3-1.9.2-4.6c-1.1-15.8-2-11.4-19.7-11.4s-18.6-4.3-19.7 11.4c-.1 2.7.2 4.6.2 4.6s-1-.5-1.6-1.5c-.3-.5-.5-1.4-.6-2.4-1.7-.4-3.8-.1-3.8 4.7 0 2.9 1.1 5.4 4.8 5.6 1.2 9.3 6.6 14.1 15.7 18.1 2.5 1.1 7.6 1.1 10 0 9.1-4.1 14.5-8.8 15.7-18.1 3.7-.3 4.8-2.7 4.8-5.6-.1-4.7-2.3-5.1-3.9-4.7" fill="#b47d56"/><path d="m40.2 50.9c0 3.4-4.1 5.1-8.2 5.1s-8.2-1.7-8.2-5.1c0 0 0-.9.8-.9 3.7 0 11.1 0 14.7 0 .9 0 .9.9.9.9" fill="#664e27"/><path d="m21.1 31.5c-4.5 0-6.4 1.7-6.4 3.3 0 1.6 0 4 6 4 5.8 0 6.7-.7 6.7-3.2.1-1.6-1.8-4.1-6.3-4.1" fill="#f5f5f5"/><path d="m25.6 34.3c0 2.3-1.8 4.1-4.1 4.1-2.3 0-4.1-1.8-4.1-4.1 0-2.3 1.8-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1" fill="#664e27"/><path d="m22.9 34.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4" fill="#231f20"/><path d="m14.7 34.8c0-6.4 12.8-6.4 12.8.9-1.9-5.5-11-5.5-12.8-.9" fill="#664e27"/><path d="m42.9 31.5c4.6 0 6.4 1.7 6.4 3.3 0 1.6 0 4-6 4-5.8 0-6.7-.7-6.7-3.2 0-1.6 1.8-4.1 6.3-4.1" fill="#f5f5f5"/><path d="m38.4 34.3c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1 0-2.3-1.8-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.1" fill="#664e27"/><path d="m41.1 34.3c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4 0-.8-.6-1.4-1.4-1.4-.8.1-1.4.7-1.4 1.4" fill="#231f20"/><path d="m49.3 34.8c0-6.4-12.8-6.4-12.8.9 1.9-5.5 11-5.5 12.8-.9" fill="#664e27"/><path d="m32 47c-3.3 0-5-3-3.3-3 1.7 0 5 0 6.7 0 1.6 0-.1 3-3.4 3" fill="#935e3e"/><g fill="#d9a000"><path d="m22 8l-4-4-4 4h2v4h6z"/><path d="m50 8l-4-4-4 4v4h6v-4z"/></g><path d="m54 16h-44c0-13.3 44-13.3 44 0" fill="#9450e0"/><path d="m48 16h-36c0-10.7 36-10.7 36 0" fill="#7e44bf"/><path fill="#d9a000" d="m8 20h48v6h-48z"/><path fill="#ffce31" d="m50 10l2 2v2h-16v-2l2-2-6-8-6 8 2 2v2h-16v-2l2-2-8-6.1 2 20.1h48l2-20.1z"/><path fill="#66caf2" d="m32 22v-3.1h2z"/><g fill="#428bc1"><path d="m32 22l-2-3.1h2z"/><path d="m34 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m32 16v2.9h-2z"/><path d="m14.8 22v-3.1h1.9z"/></g><g fill="#428bc1"><path d="m14.8 22l-2.1-3.1h2.1z"/><path d="m16.7 18.9h-1.9v-2.9z"/></g><g fill="#66caf2"><path d="m14.8 16v2.9h-2.1z"/><path d="m23.4 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m23.4 22l-2-3.1h2z"/><path d="m25.4 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m23.4 16v2.9h-2z"/><path d="m40.7 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m40.7 22l-2-3.1h2z"/><path d="m42.7 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m40.7 16v2.9h-2z"/><path d="m49.3 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m49.3 22l-2-3.1h2z"/><path d="m51.3 18.9h-2v-2.9z"/></g><path fill="#66caf2" d="m49.3 16v2.9h-2z"/><path fill="#428bc1" d="m8 22l-2-3.1h2z"/><g fill="#66caf2"><path d="m8 16v2.9h-2z"/><path d="m56 22v-3.1h2z"/></g><path fill="#428bc1" d="m58 18.9h-2v-2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3ff.svg
new file mode 100644
index 0000000..d45a0f0
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f934-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3 38.3h47.3c0-25.5-3.6-31-23.7-31-19.9.1-23.6 5.5-23.6 31" fill="#231f20"/><path d="m53.7 32.7c-.2 1-.4 1.9-.6 2.4-.5.9-1.5 1.5-1.5 1.5s.3-1.9.2-4.6c-1.1-15.8-2-11.4-19.7-11.4-17.6 0-18.6-4.3-19.7 11.4-.1 2.7.2 4.6.2 4.6s-1-.5-1.6-1.5c-.3-.5-.5-1.4-.6-2.4-1.7-.4-3.8-.1-3.8 4.7 0 2.9 1.1 5.4 4.8 5.6 1.2 9.3 6.6 14.1 15.7 18.1 2.5 1.1 7.6 1.1 10 0 9.1-4.1 14.5-8.8 15.7-18.1 3.7-.3 4.8-2.7 4.8-5.6-.1-4.7-2.3-5.1-3.9-4.7" fill="#8a6859"/><path d="m40.2 50.9c0 3.4-4.1 5.1-8.2 5.1-4.1 0-8.2-1.7-8.2-5.1 0 0 0-.9.8-.9 3.7 0 11.1 0 14.7 0 .9 0 .9.9.9.9" fill="#574137"/><path d="m21.1 31.5c-4.5 0-6.4 1.7-6.4 3.3 0 1.6 0 4 6 4 5.8 0 6.7-.7 6.7-3.2.1-1.6-1.8-4.1-6.3-4.1" fill="#f5f5f5"/><path d="m25.6 34.3c0 2.3-1.8 4.1-4.1 4.1-2.3 0-4.1-1.8-4.1-4.1 0-2.3 1.8-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1" fill="#574137"/><path d="m22.9 34.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4" fill="#231f20"/><path d="m14.7 34.8c0-6.4 12.8-6.4 12.8.9-1.9-5.5-11-5.5-12.8-.9" fill="#574137"/><path d="m42.9 31.5c4.6 0 6.4 1.7 6.4 3.3 0 1.6 0 4-6 4-5.8 0-6.7-.7-6.7-3.2 0-1.6 1.8-4.1 6.3-4.1" fill="#f5f5f5"/><path d="m38.4 34.3c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1 0-2.3-1.8-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.1" fill="#574137"/><path d="m41.1 34.3c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4 0-.8-.6-1.4-1.4-1.4-.8.1-1.4.7-1.4 1.4" fill="#231f20"/><path d="m49.3 34.8c0-6.4-12.8-6.4-12.8.9 1.9-5.5 11-5.5 12.8-.9" fill="#574137"/><path d="m32 47c-3.3 0-5-3-3.3-3 1.7 0 5 0 6.7 0 1.6 0-.1 3-3.4 3" fill="#705041"/><g fill="#d9a000"><path d="m22 8l-4-4-4 4h2v4h6z"/><path d="m50 8l-4-4-4 4v4h6v-4z"/></g><path d="m54 16h-44c0-13.3 44-13.3 44 0" fill="#9450e0"/><path d="m48 16h-36c0-10.7 36-10.7 36 0" fill="#7e44bf"/><path fill="#d9a000" d="m8 20h48v6h-48z"/><path fill="#ffce31" d="m50 10l2 2v2h-16v-2l2-2-6-8-6 8 2 2v2h-16v-2l2-2-8-6.1 2 20.1h48l2-20.1z"/><path fill="#66caf2" d="m32 22v-3.1h2z"/><g fill="#428bc1"><path d="m32 22l-2-3.1h2z"/><path d="m34 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m32 16v2.9h-2z"/><path d="m14.8 22v-3.1h1.9z"/></g><g fill="#428bc1"><path d="m14.8 22l-2.1-3.1h2.1z"/><path d="m16.7 18.9h-1.9v-2.9z"/></g><g fill="#66caf2"><path d="m14.8 16v2.9h-2.1z"/><path d="m23.4 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m23.4 22l-2-3.1h2z"/><path d="m25.4 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m23.4 16v2.9h-2z"/><path d="m40.7 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m40.7 22l-2-3.1h2z"/><path d="m42.7 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m40.7 16v2.9h-2z"/><path d="m49.3 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m49.3 22l-2-3.1h2z"/><path d="m51.3 18.9h-2v-2.9z"/></g><path fill="#66caf2" d="m49.3 16v2.9h-2z"/><path fill="#428bc1" d="m8 22l-2-3.1h2z"/><g fill="#66caf2"><path d="m8 16v2.9h-2z"/><path d="m56 22v-3.1h2z"/></g><path fill="#428bc1" d="m58 18.9h-2v-2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f934.svg b/build/js/jsxc/lib/emojione/assets/svg/1f934.svg
new file mode 100644
index 0000000..a075a6b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f934.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m8.3 38.3h47.3c0-25.5-3.6-31-23.7-31-19.9.1-23.6 5.5-23.6 31" fill="#ffb300"/><path d="m53.7 32.7c-.2 1-.4 1.9-.6 2.4-.5.9-1.5 1.5-1.5 1.5s.3-1.9.2-4.6c-1.1-15.8-2-11.4-19.7-11.4-17.6 0-18.6-4.3-19.7 11.4-.1 2.7.2 4.6.2 4.6s-1-.5-1.6-1.5c-.3-.5-.5-1.4-.6-2.4-1.7-.4-3.8-.1-3.8 4.7 0 2.9 1.1 5.4 4.8 5.6 1.2 9.3 6.6 14.1 15.7 18.1 2.5 1.1 7.6 1.1 10 0 9.1-4.1 14.5-8.8 15.7-18.1 3.7-.3 4.8-2.7 4.8-5.6-.1-4.7-2.3-5.1-3.9-4.7" fill="#ffdd67"/><path d="m40.2 50.9c0 3.4-4.1 5.1-8.2 5.1s-8.2-1.7-8.2-5.1c0 0 0-.9.8-.9 3.7 0 11.1 0 14.7 0 .9 0 .9.9.9.9" fill="#937237"/><path d="m21.1 31.5c-4.5 0-6.4 1.6-6.4 3.3 0 1.6 0 4 6 4 5.8 0 6.7-.7 6.7-3.2.1-1.6-1.8-4.1-6.3-4.1" fill="#f5f5f5"/><path d="m25.6 34.3c0 2.3-1.8 4.1-4.1 4.1-2.3 0-4.1-1.8-4.1-4.1 0-2.3 1.8-4.1 4.1-4.1 2.3 0 4.1 1.9 4.1 4.1" fill="#664e27"/><path d="m22.9 34.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4.8.1 1.4.7 1.4 1.4" fill="#231f20"/><path d="m14.7 34.8c0-6.4 12.8-6.4 12.8.9-1.9-5.5-11-5.5-12.8-.9" fill="#664e27"/><path d="m42.9 31.5c4.6 0 6.4 1.6 6.4 3.3 0 1.6 0 4-6 4-5.8 0-6.7-.7-6.7-3.2 0-1.6 1.8-4.1 6.3-4.1" fill="#f5f5f5"/><path d="m38.4 34.3c0 2.3 1.8 4.1 4.1 4.1 2.3 0 4.1-1.8 4.1-4.1 0-2.3-1.8-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.1" fill="#664e27"/><path d="m41.1 34.3c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4 0-.8-.6-1.4-1.4-1.4-.8.1-1.4.7-1.4 1.4" fill="#231f20"/><path d="m49.3 34.8c0-6.4-12.8-6.4-12.8.9 1.9-5.5 11-5.5 12.8-.9" fill="#664e27"/><path d="m32 47c-3.3 0-5-3-3.3-3 1.7 0 5 0 6.7 0 1.6 0-.1 3-3.4 3" fill="#eba352"/><g fill="#d9a000"><path d="m22 8l-4-4-4 4h2v4h6z"/><path d="m50 8l-4-4-4 4v4h6v-4z"/></g><path d="m54 16h-44c0-13.3 44-13.3 44 0" fill="#9450e0"/><path d="m48 16h-36c0-10.7 36-10.7 36 0" fill="#7e44bf"/><path fill="#d9a000" d="m8 20h48v6h-48z"/><path fill="#ffce31" d="m50 10l2 2v2h-16v-2l2-2-6-8-6 8 2 2v2h-16v-2l2-2-8-6.1 2 20.1h48l2-20.1z"/><path fill="#66caf2" d="m32 22v-3.1h2z"/><g fill="#428bc1"><path d="m32 22l-2-3.1h2z"/><path d="m34 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m32 16v2.9h-2z"/><path d="m14.8 22v-3.1h1.9z"/></g><g fill="#428bc1"><path d="m14.8 22l-2.1-3.1h2.1z"/><path d="m16.7 18.9h-1.9v-2.9z"/></g><g fill="#66caf2"><path d="m14.8 16v2.9h-2.1z"/><path d="m23.4 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m23.4 22l-2-3.1h2z"/><path d="m25.4 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m23.4 16v2.9h-2z"/><path d="m40.7 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m40.7 22l-2-3.1h2z"/><path d="m42.7 18.9h-2v-2.9z"/></g><g fill="#66caf2"><path d="m40.7 16v2.9h-2z"/><path d="m49.3 22v-3.1h2z"/></g><g fill="#428bc1"><path d="m49.3 22l-2-3.1h2z"/><path d="m51.3 18.9h-2v-2.9z"/></g><path fill="#66caf2" d="m49.3 16v2.9h-2z"/><path fill="#428bc1" d="m8 22l-2-3.1h2z"/><g fill="#66caf2"><path d="m8 16v2.9h-2z"/><path d="m56 22v-3.1h2z"/></g><path fill="#428bc1" d="m58 18.9h-2v-2.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fb.svg
new file mode 100644
index 0000000..b5259d6
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e6b796" d="m26.7 32.8h10.6v6.5h-10.6z"/><path d="m54 62c0 0 0 0-5-22-.2-.8-1.2-3.2-3.5-3.4-8.5-.6-8.2-.4-8.2-.4 0 1.6-2.4 3-5.3 3-2.9 0-5.3-1.3-5.3-3 0 0 .3-.2-8.2.4-2.2.2-3.3 2.4-3.5 3.4-5 22-5 22-5 22h6l3-14 1 14h24l1-14 3 14h6" fill="#3e4347"/><path d="m32 61c0 0 8.3-14.5 7.4-19.4-.2-1-1.5-2.8-2.4-4-.7 1.5-2.7 2.5-5 2.5-2.3 0-4.3-1.1-5-2.5-1 1.2-2.3 2.9-2.4 3.9-.9 5.1 7.4 19.5 7.4 19.5" fill="#fff"/><g fill="#646464"><path d="m32 61l11-13.7-4.1-6.2z"/><path d="m37.3 35.1c0 0 4.1 3.5 5.1 6.9l-2.1 2.2-3.3-6.5.3-2.6"/><path d="m32 61l-11-13.7 4.1-6.2z"/><path d="m26.7 35.1c0 0-4.1 3.5-5.1 6.9l2.1 2.2 3.2-6.6-.2-2.5"/></g><path d="m38.4 42.2c.5 1.1-4.8-1-4.8-1v-2.4c0 0 5.1-2.8 4.8-1.7-.4 1.4-.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m36.2 39.8l-2.2-.1 1.5-1.2-1.9.9v1.2l2.1.7-1.6-1z"/><path d="m25.6 42.2c-.5 1.1 4.8-1 4.8-1v-2.4c0 0-5.1-2.8-4.8-1.7.4 1.4.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m27.8 39.8l2.2-.1-1.5-1.2 1.9.9v1.2l-2.1.7 1.6-1z"/><g fill="#3e4347"><path d="m33.6 41.6c-.6.5-2.6.5-3.1 0-.6-.5-.6-2.5 0-3 .6-.5 2.6-.5 3.1 0 .5.4.5 2.4 0 3"/><path d="m32 43.7l-1.2 1.2 1.2 1.1 1.2-1.1z"/><path d="m32 48.8l-1.2 1.1 1.2 1.2 1.2-1.2z"/><path d="M32 53.9 30.8 55 32 56.1 33.2 55z"/></g><path d="m16.4 18.3l1.6 2.9h28l1.2-3.1c0-11.2-2.6-16-15.1-16.1-12.5-.1-15.7 4.9-15.7 16.3" fill="#594640"/><path d="m46 18.1c-.1.6-.2 1.3-.4 1.6-.3.6-1 1-1 1s.2-1.3.1-3c-.7-10.4-1.3-5.4-12.7-5.4-11.4 0-12-5-12.7 5.4-.1 1.8.1 3 .1 3s-.7-.4-1-1c-.2-.3-.3-1-.4-1.6-1.1-.3-2.5 0-2.5 3.1 0 1.9.7 3.5 3.1 3.7.8 6.5 9.5 10.8 13.4 10.8 3.9 0 12.6-4.3 13.4-10.8 2.4-.2 3.1-1.8 3.1-3.7 0-3.1-1.4-3.3-2.5-3.1" fill="#ffe1bd"/><g fill="#664e27"><circle cx="26.1" cy="21" r="2.4"/><circle cx="37.9" cy="21" r="2.4"/><path d="m36 28.4c0 1.7-2 2.6-4 2.6s-4-.9-4-2.6c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fc.svg
new file mode 100644
index 0000000..d57750a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0a372" d="m26.7 32.8h10.6v6.5h-10.6z"/><path d="m54 62c0 0 0 0-5-22-.2-.8-1.2-3.2-3.5-3.4-8.5-.6-8.2-.4-8.2-.4 0 1.6-2.4 3-5.3 3-2.9 0-5.3-1.3-5.3-3 0 0 .3-.2-8.2.4-2.2.2-3.3 2.4-3.5 3.4-5 22-5 22-5 22h6l3-14 1 14h24l1-14 3 14h6" fill="#3e4347"/><path d="m32 61c0 0 8.3-14.5 7.4-19.4-.2-1-1.5-2.8-2.4-4-.7 1.5-2.7 2.5-5 2.5-2.3 0-4.3-1.1-5-2.5-1 1.2-2.3 2.9-2.4 3.9-.9 5.1 7.4 19.5 7.4 19.5" fill="#fff"/><g fill="#646464"><path d="m32 61l11-13.7-4.1-6.2z"/><path d="m37.3 35.1c0 0 4.1 3.5 5.1 6.9l-2.1 2.2-3.3-6.5.3-2.6"/><path d="m32 61l-11-13.7 4.1-6.2z"/><path d="m26.7 35.1c0 0-4.1 3.5-5.1 6.9l2.1 2.2 3.2-6.6-.2-2.5"/></g><path d="m38.4 42.2c.5 1.1-4.8-1-4.8-1v-2.4c0 0 5.1-2.8 4.8-1.7-.4 1.4-.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m36.2 39.8l-2.2-.1 1.5-1.2-1.9.9v1.2l2.1.7-1.6-1z"/><path d="m25.6 42.2c-.5 1.1 4.8-1 4.8-1v-2.4c0 0-5.1-2.8-4.8-1.7.4 1.4.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m27.8 39.8l2.2-.1-1.5-1.2 1.9.9v1.2l-2.1.7 1.6-1z"/><g fill="#3e4347"><path d="m33.6 41.6c-.6.5-2.6.5-3.1 0-.6-.5-.6-2.5 0-3 .6-.5 2.6-.5 3.1 0 .5.4.5 2.4 0 3"/><path d="m32 43.7l-1.2 1.2 1.2 1.1 1.2-1.1z"/><path d="m32 48.8l-1.2 1.1 1.2 1.2 1.2-1.2z"/><path d="M32 53.9 30.8 55 32 56.1 33.2 55z"/></g><path d="m16.4 18.3l1.6 2.9h28l1.2-3.1c0-11.2-2.6-16-15.1-16.1-12.5-.1-15.7 4.9-15.7 16.3" fill="#dbb471"/><path d="m46 18.1c-.1.6-.2 1.3-.4 1.6-.3.6-1 1-1 1s.2-1.3.1-3c-.7-10.4-1.3-5.4-12.7-5.4-11.4 0-12-5-12.7 5.4-.1 1.8.1 3 .1 3s-.7-.4-1-1c-.2-.3-.3-1-.4-1.6-1.1-.3-2.5 0-2.5 3.1 0 1.9.7 3.5 3.1 3.7.8 6.5 9.5 10.8 13.4 10.8 3.9 0 12.6-4.3 13.4-10.8 2.4-.2 3.1-1.8 3.1-3.7 0-3.1-1.4-3.3-2.5-3.1" fill="#fed0ac"/><g fill="#664e27"><circle cx="26.1" cy="21" r="2.4"/><circle cx="37.9" cy="21" r="2.4"/><path d="m36 28.4c0 1.7-2 2.6-4 2.6s-4-.9-4-2.6c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fd.svg
new file mode 100644
index 0000000..9c816e3
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b58360" d="m26.7 32.8h10.6v6.5h-10.6z"/><path d="m54 62c0 0 0 0-5-22-.2-.8-1.2-3.2-3.5-3.4-8.5-.6-8.2-.4-8.2-.4 0 1.6-2.4 3-5.3 3s-5.3-1.3-5.3-3c0 0 .3-.2-8.2.4-2.2.2-3.3 2.4-3.5 3.4-5 22-5 22-5 22h6l3-14 1 14h24l1-14 3 14h6" fill="#3e4347"/><path d="m32 61c0 0 8.3-14.5 7.4-19.4-.2-1-1.5-2.8-2.4-4-.7 1.5-2.7 2.5-5 2.5-2.3 0-4.3-1.1-5-2.5-1 1.2-2.3 2.9-2.4 3.9-.9 5.1 7.4 19.5 7.4 19.5" fill="#fff"/><g fill="#646464"><path d="m32 61l11-13.7-4.1-6.2z"/><path d="m37.3 35.1c0 0 4.1 3.5 5.1 6.9l-2.1 2.2-3.3-6.5.3-2.6"/><path d="m32 61l-11-13.7 4.1-6.2z"/><path d="m26.7 35.1c0 0-4.1 3.5-5.1 6.9l2.1 2.2 3.2-6.6-.2-2.5"/></g><path d="m38.4 42.2c.5 1.1-4.8-1-4.8-1v-2.4c0 0 5.1-2.8 4.8-1.7-.4 1.4-.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m36.2 39.8l-2.2-.1 1.5-1.2-1.9.9v1.2l2.1.7-1.6-1z"/><path d="m25.6 42.2c-.5 1.1 4.8-1 4.8-1v-2.4c0 0-5.1-2.8-4.8-1.7.4 1.4.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m27.8 39.8l2.2-.1-1.5-1.2 1.9.9v1.2l-2.1.7 1.6-1z"/><g fill="#3e4347"><path d="m33.6 41.6c-.6.5-2.6.5-3.1 0-.6-.5-.6-2.5 0-3 .6-.5 2.6-.5 3.1 0 .5.4.5 2.4 0 3"/><path d="m32 43.7l-1.2 1.2 1.2 1.1 1.2-1.1z"/><path d="m32 48.8l-1.2 1.1 1.2 1.2 1.2-1.2z"/><path d="M32 53.9 30.8 55 32 56.1 33.2 55z"/></g><path d="m16.4 18.3l1.6 2.9h28l1.2-3.1c0-11.2-2.6-16-15.1-16.1-12.5-.1-15.7 4.9-15.7 16.3" fill="#594640"/><path d="m46 18.1c-.1.6-.2 1.3-.4 1.6-.3.6-1 1-1 1s.2-1.3.1-3c-.7-10.4-1.3-5.4-12.7-5.4-11.4 0-12-5-12.7 5.4-.1 1.8.1 3 .1 3s-.7-.4-1-1c-.2-.3-.3-1-.4-1.6-1.1-.3-2.5 0-2.5 3.1 0 1.9.7 3.5 3.1 3.7.8 6.5 9.5 10.8 13.4 10.8 3.9 0 12.6-4.3 13.4-10.8 2.4-.2 3.1-1.8 3.1-3.7 0-3.1-1.4-3.3-2.5-3.1" fill="#d6a57c"/><g fill="#664e27"><circle cx="26.1" cy="21" r="2.4"/><circle cx="37.9" cy="21" r="2.4"/><path d="m36 28.4c0 1.7-2 2.6-4 2.6s-4-.9-4-2.6c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fe.svg
new file mode 100644
index 0000000..e15d176
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#935e3e" d="m26.7 32.8h10.6v6.5h-10.6z"/><path d="m54 62c0 0 0 0-5-22-.2-.8-1.2-3.2-3.5-3.4-8.5-.6-8.2-.4-8.2-.4 0 1.6-2.4 3-5.3 3-2.9 0-5.3-1.3-5.3-3 0 0 .3-.2-8.2.4-2.2.2-3.3 2.4-3.5 3.4-5 22-5 22-5 22h6l3-14 1 14h24l1-14 3 14h6" fill="#3e4347"/><path d="m32 61c0 0 8.3-14.5 7.4-19.4-.2-1-1.5-2.8-2.4-4-.7 1.5-2.7 2.5-5 2.5-2.3 0-4.3-1.1-5-2.5-1 1.2-2.3 2.9-2.4 3.9-.9 5.1 7.4 19.5 7.4 19.5" fill="#fff"/><g fill="#646464"><path d="m32 61l11-13.7-4.1-6.2z"/><path d="m37.3 35.1c0 0 4.1 3.5 5.1 6.9l-2.1 2.2-3.3-6.5.3-2.6"/><path d="m32 61l-11-13.7 4.1-6.2z"/><path d="m26.7 35.1c0 0-4.1 3.5-5.1 6.9l2.1 2.2 3.2-6.6-.2-2.5"/></g><path d="m38.4 42.2c.5 1.1-4.8-1-4.8-1v-2.4c0 0 5.1-2.8 4.8-1.7-.4 1.4-.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m36.2 39.8l-2.2-.1 1.5-1.2-1.9.9v1.2l2.1.7-1.6-1z"/><path d="m25.6 42.2c-.5 1.1 4.8-1 4.8-1v-2.4c0 0-5.1-2.8-4.8-1.7.4 1.4.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m27.8 39.8l2.2-.1-1.5-1.2 1.9.9v1.2l-2.1.7 1.6-1z"/><g fill="#3e4347"><path d="m33.6 41.6c-.6.5-2.6.5-3.1 0-.6-.5-.6-2.5 0-3 .6-.5 2.6-.5 3.1 0 .5.4.5 2.4 0 3"/><path d="m32 43.7l-1.2 1.2 1.2 1.1 1.2-1.1z"/><path d="m32 48.8l-1.2 1.1 1.2 1.2 1.2-1.2z"/><path d="M32 53.9 30.8 55 32 56.1 33.2 55z"/></g><path d="m16.4 18.3l1.6 2.9h28l1.2-3.1c0-11.2-2.6-16-15.1-16.1-12.5-.1-15.7 4.9-15.7 16.3" fill="#231f20"/><path d="m46 18.1c-.1.6-.2 1.3-.4 1.6-.3.6-1 1-1 1s.2-1.3.1-3c-.7-10.4-1.3-5.4-12.7-5.4-11.4 0-12-5-12.7 5.4-.1 1.8.1 3 .1 3s-.7-.4-1-1c-.2-.3-.3-1-.4-1.6-1.1-.3-2.5 0-2.5 3.1 0 1.9.7 3.5 3.1 3.7.8 6.5 9.5 10.8 13.4 10.8 3.9 0 12.6-4.3 13.4-10.8 2.4-.2 3.1-1.8 3.1-3.7 0-3.1-1.4-3.3-2.5-3.1" fill="#b47d56"/><g fill="#664e27"><circle cx="26.1" cy="21" r="2.4"/><circle cx="37.9" cy="21" r="2.4"/><path d="m36 28.4c0 1.7-2 2.6-4 2.6s-4-.9-4-2.6c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3ff.svg
new file mode 100644
index 0000000..f8655db
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f935-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#705041" d="m26.7 32.8h10.6v6.5h-10.6z"/><path d="m54 62c0 0 0 0-5-22-.2-.8-1.2-3.2-3.5-3.4-8.5-.6-8.2-.4-8.2-.4 0 1.6-2.4 3-5.3 3-2.9 0-5.3-1.3-5.3-3 0 0 .3-.2-8.2.4-2.2.2-3.3 2.4-3.5 3.4-5 22-5 22-5 22h6l3-14 1 14h24l1-14 3 14h6" fill="#3e4347"/><path d="m32 61c0 0 8.3-14.5 7.4-19.4-.2-1-1.5-2.8-2.4-4-.7 1.5-2.7 2.5-5 2.5-2.3 0-4.3-1.1-5-2.5-1 1.2-2.3 2.9-2.4 3.9-.9 5.1 7.4 19.5 7.4 19.5" fill="#fff"/><g fill="#646464"><path d="m32 61l11-13.7-4.1-6.2z"/><path d="m37.3 35.1c0 0 4.1 3.5 5.1 6.9l-2.1 2.2-3.3-6.5.3-2.6"/><path d="m32 61l-11-13.7 4.1-6.2z"/><path d="m26.7 35.1c0 0-4.1 3.5-5.1 6.9l2.1 2.2 3.2-6.6-.2-2.5"/></g><path d="m38.4 42.2c.5 1.1-4.8-1-4.8-1v-2.4c0 0 5.1-2.8 4.8-1.7-.4 1.4-.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m36.2 39.8l-2.2-.1 1.5-1.2-1.9.9v1.2l2.1.7-1.6-1z"/><path d="m25.6 42.2c-.5 1.1 4.8-1 4.8-1v-2.4c0 0-5.1-2.8-4.8-1.7.4 1.4.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m27.8 39.8l2.2-.1-1.5-1.2 1.9.9v1.2l-2.1.7 1.6-1z"/><g fill="#3e4347"><path d="m33.6 41.6c-.6.5-2.6.5-3.1 0-.6-.5-.6-2.5 0-3 .6-.5 2.6-.5 3.1 0 .5.4.5 2.4 0 3"/><path d="m32 43.7l-1.2 1.2 1.2 1.1 1.2-1.1z"/><path d="m32 48.8l-1.2 1.1 1.2 1.2 1.2-1.2z"/><path d="M32 53.9 30.8 55 32 56.1 33.2 55z"/></g><path d="m16.4 18.3l1.6 2.9h28l1.2-3.1c0-11.2-2.6-16-15.1-16.1-12.5-.1-15.7 4.9-15.7 16.3" fill="#231f20"/><path d="m46 18.1c-.1.6-.2 1.3-.4 1.6-.3.6-1 1-1 1s.2-1.3.1-3c-.7-10.4-1.3-5.4-12.7-5.4-11.4 0-12-5-12.7 5.4-.1 1.8.1 3 .1 3s-.7-.4-1-1c-.2-.3-.3-1-.4-1.6-1.1-.3-2.5 0-2.5 3.1 0 1.9.7 3.5 3.1 3.7.8 6.5 9.5 10.8 13.4 10.8 3.9 0 12.6-4.3 13.4-10.8 2.4-.2 3.1-1.8 3.1-3.7 0-3.1-1.4-3.3-2.5-3.1" fill="#8a6859"/><g fill="#574137"><circle cx="26.1" cy="21" r="2.4"/><circle cx="37.9" cy="21" r="2.4"/><path d="m36 28.4c0 1.7-2 2.6-4 2.6s-4-.9-4-2.6c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f935.svg b/build/js/jsxc/lib/emojione/assets/svg/1f935.svg
new file mode 100644
index 0000000..228b84a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f935.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#eba352" d="m26.7 32.8h10.6v6.5h-10.6z"/><path d="m54 62c0 0 0 0-5-22-.2-.8-1.2-3.2-3.5-3.4-8.5-.6-8.2-.4-8.2-.4 0 1.6-2.4 3-5.3 3-2.9 0-5.3-1.3-5.3-3 0 0 .3-.2-8.2.4-2.2.2-3.3 2.4-3.5 3.4-5 22-5 22-5 22h6l3-14 1 14h24l1-14 3 14h6" fill="#3e4347"/><path d="m32 61c0 0 8.3-14.5 7.4-19.4-.2-1-1.5-2.8-2.4-4-.7 1.5-2.7 2.5-5 2.5-2.3 0-4.3-1.1-5-2.5-1 1.2-2.3 2.9-2.4 3.9-.9 5.1 7.4 19.5 7.4 19.5" fill="#fff"/><g fill="#646464"><path d="m32 61l11-13.7-4.1-6.2z"/><path d="m37.3 35.1c0 0 4.1 3.5 5.1 6.9l-2.1 2.2-3.3-6.5.3-2.6"/><path d="m32 61l-11-13.7 4.1-6.2z"/><path d="m26.7 35.1c0 0-4.1 3.5-5.1 6.9l2.1 2.2 3.2-6.6-.2-2.5"/></g><path d="m38.4 42.2c.5 1.1-4.8-1-4.8-1v-2.4c0 0 5.1-2.8 4.8-1.7-.4 1.4-.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m36.2 39.8l-2.2-.1 1.5-1.2-1.9.9v1.2l2.1.7-1.6-1z"/><path d="m25.6 42.2c-.5 1.1 4.8-1 4.8-1v-2.4c0 0-5.1-2.8-4.8-1.7.4 1.4.4 4.2 0 5.1" fill="#3e4347"/><path fill="#646464" d="m27.8 39.8l2.2-.1-1.5-1.2 1.9.9v1.2l-2.1.7 1.6-1z"/><g fill="#3e4347"><path d="m33.6 41.6c-.6.5-2.6.5-3.1 0-.6-.5-.6-2.5 0-3 .6-.5 2.6-.5 3.1 0 .5.4.5 2.4 0 3"/><path d="m32 43.7l-1.2 1.2 1.2 1.1 1.2-1.1z"/><path d="m32 48.8l-1.2 1.1 1.2 1.2 1.2-1.2z"/><path d="M32 53.9 30.8 55 32 56.1 33.2 55z"/></g><path d="m16.4 18.3l1.6 2.9h28l1.2-3.1c0-11.2-2.6-16-15.1-16.1-12.5-.1-15.7 4.9-15.7 16.3" fill="#ffb300"/><path d="m46 18.1c-.1.6-.2 1.3-.4 1.6-.3.6-1 1-1 1s.2-1.3.1-3c-.7-10.4-1.3-5.4-12.7-5.4-11.4 0-12-5-12.7 5.4-.1 1.8.1 3 .1 3s-.7-.4-1-1c-.2-.3-.3-1-.4-1.6-1.1-.3-2.5 0-2.5 3.1 0 1.9.7 3.5 3.1 3.7.8 6.5 9.5 10.8 13.4 10.8 3.9 0 12.6-4.3 13.4-10.8 2.4-.2 3.1-1.8 3.1-3.7 0-3.1-1.4-3.3-2.5-3.1" fill="#ffdd67"/><g fill="#937237"><circle cx="26.1" cy="21" r="2.4"/><circle cx="37.9" cy="21" r="2.4"/><path d="m36 28.4c0 1.7-2 2.6-4 2.6s-4-.9-4-2.6c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fb.svg
new file mode 100644
index 0000000..42ba4e6
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="31.9" cy="13" rx="19.7" ry="11" fill="#d93d3d"/><ellipse cx="31.9" cy="16.8" rx="24" ry="11" fill="#e2e9ed"/><path d="M61.8,62H2c0-11.8,13.4-12.9,29.9-12.9C48.4,49.1,61.8,50.2,61.8,62z" fill="#ff4848"/><path d="m51.7 50.7c0 1.4-3.7 1.4-4.9 2.5-.9.9-.1 4.6-1.5 5.3-1.2.6-3.8-2.3-5.3-1.9-1.3.3-2.1 4.1-3.6 4.3-1.4.2-3-3.3-4.5-3.3-1.5 0-3.1 3.5-4.5 3.3-1.5-.2-2.2-4-3.6-4.3-1.5-.4-4.1 2.5-5.3 1.9-1.5-.7-.6-4.4-1.5-5.3-1.2-1.1-4.9-1.1-4.9-2.5.1-1.4 39.6-1.4 39.6 0" fill="#fff"/><path d="m54.3 25.9c-13.8-13.9-31.1-13.9-44.9 0l.1 15.4c0 6.7 6.6 14 22.8 14 15.4 0 22-6 22-14v-15.4" fill="#ffe1bd"/><path d="m38.3 46.2c.1.1.2.3.2.5 0 1.5-3 3.3-6.7 3.3-3.7 0-6.7-1.8-6.7-3.3 0-.2.1-.4.2-.6 0 0 2.9 1.3 6.5 1.3 3.7.1 6.5-1.2 6.5-1.2" fill="#454749"/><path d="m31.9 8.3c-26.9 0-31.6 21.2-22.4 28.5 0 0 4.6-7.8 14.3-11.6 3.2-1.2 5.9-2.4 8.1-3.6 2.2 1.1 4.9 2.3 8.1 3.6 9.7 3.7 14.3 11.6 14.3 11.6 9.2-7.3 4.5-28.5-22.4-28.5" fill="#8b9fa5"/><g fill="#454749"><path d="m41.5 48.6c-.5 0-1-.1-1.5-.3-.5-.2-.9-.5-1.3-.8-.8-.6-1.4-1.6-1.4-2.6.7.7 1.3 1.3 2 1.9.7.6 1.5 1.1 2.2 1.8"/><path d="m22.2 48.6c.7-.7 1.5-1.2 2.1-1.8.7-.6 1.3-1.2 2-1.9 0 1-.7 1.9-1.4 2.6-.4.3-.8.6-1.3.8-.4.1-.9.3-1.4.3"/><path d="m19.3 36.7l-.3-2.7c.7-.1 1.7-.3 2.8-.5 5.2-1 13.9-2.7 23.4.5l-.9 2.5c-8.8-3-17.1-1.4-22-.4-1.2.3-2.2.5-3 .6"/><ellipse cx="21" cy="35.4" rx="8" ry="8"/></g><ellipse cx="21" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><ellipse cx="42.8" cy="35.4" rx="8" ry="8" fill="#454749"/><ellipse cx="42.8" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m60 26.1c0 13.3.7-6.8-28.1-6.8-28.8 0-28.1 20.1-28.1 6.8 0-13.3 12.6-19.1 28.1-19.1 15.5 0 28.1 5.8 28.1 19.1" fill="#ff4848"/><path d="m6.8 33.6c0 0-6-2.4-4.3-6.2.6-1.5 4.3-1.1 5.7-2 1.7-1.1 3.6-5.6 5.6-6.1 1.2-.3 3.3 1.9 4.5 1.8 1.9-.2 4.2-3.9 6.1-4.3 2.3-.4 6.8 2.5 9.1 2.4 2-.1 5.3-3.3 7.3-3.1 2.2.2 4.9 4.3 6.9 5.1 1.9.7 6.5-.7 8 .5 1 .8.3 3.9 1 4.9.9 1.3 5.3 1.9 5.3 3.4 0 3.6-5.2 4-5.2 4s.9-2.6.5-3.1c-.8-1.1-4.6-1.2-5.2-2.5-.6-1.2 1-3.2.1-4.1-1.4-1.4-4.8.9-6.8.5-1.7-.4-3.9-4-5.7-4.1-1.9-.1-4.7 3.3-6.6 3.4-1.8.1-4.9-2.7-6.7-2.4-2 .3-4.3 4.7-6.3 4.7-1.6 0-4.3-3.3-5.9-2.9-1.9.4-1.7 4.9-3.4 5.9-1 .6-3.8-.8-4.6 0-.8.6.6 4.2.6 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fc.svg
new file mode 100644
index 0000000..039a576
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="31.9" cy="13" rx="19.7" ry="11" fill="#d93d3d"/><ellipse cx="31.9" cy="16.8" rx="24" ry="11" fill="#e2e9ed"/><path d="M61.8,62H2c0-11.8,13.4-12.9,29.9-12.9C48.4,49.1,61.8,50.2,61.8,62z" fill="#ff4848"/><path d="m51.7 50.7c0 1.4-3.7 1.4-4.9 2.5-.9.9-.1 4.6-1.5 5.3-1.2.6-3.8-2.3-5.3-1.9-1.3.3-2.1 4.1-3.6 4.3-1.4.2-3-3.3-4.5-3.3-1.5 0-3.1 3.5-4.5 3.3-1.5-.2-2.3-4-3.6-4.3-1.5-.4-4.1 2.5-5.3 1.9-1.5-.7-.6-4.4-1.5-5.3-1.2-1.1-4.9-1.1-4.9-2.5.1-1.4 39.6-1.4 39.6 0" fill="#fff"/><path d="m54.3 25.9c-13.8-13.9-31.1-13.9-44.9 0l.1 15.4c0 6.7 6.6 14 22.8 14 15.4 0 22-6 22-14v-15.4" fill="#fed0ac"/><path d="m38.3 46.2c.1.1.2.3.2.5 0 1.5-3 3.3-6.6 3.3s-6.7-1.8-6.7-3.3c0-.2.1-.4.2-.6 0 0 2.9 1.3 6.5 1.3 3.6.1 6.4-1.2 6.4-1.2" fill="#454749"/><path d="m31.9 8.3c-26.9 0-31.6 21.2-22.4 28.5 0 0 4.6-7.8 14.3-11.6 3.2-1.2 5.9-2.4 8.1-3.6 2.2 1.1 4.9 2.3 8.1 3.6 9.7 3.7 14.3 11.6 14.3 11.6 9.2-7.3 4.5-28.5-22.4-28.5" fill="#8b9fa5"/><g fill="#454749"><path d="m41.5 48.6c-.5 0-1-.1-1.5-.3-.5-.2-.9-.5-1.3-.8-.8-.6-1.4-1.6-1.4-2.6.7.7 1.3 1.3 2 1.9.7.6 1.5 1.1 2.2 1.8"/><path d="m22.2 48.6c.7-.7 1.5-1.2 2.2-1.8.7-.6 1.3-1.2 2-1.9 0 1-.7 1.9-1.4 2.6-.4.3-.8.6-1.3.8-.5.1-1 .3-1.5.3"/><path d="m19.3 36.7l-.3-2.7c.7-.1 1.7-.3 2.8-.5 5.2-1 13.9-2.7 23.4.5l-.9 2.5c-8.8-3-17.1-1.4-22-.4-1.2.3-2.2.5-3 .6"/><ellipse cx="21" cy="35.4" rx="8" ry="8"/></g><ellipse cx="21" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m50.8 35.4c0 4.4-3.6 8-8 8-4.4 0-8-3.6-8-8s3.6-8 8-8c4.4 0 8 3.6 8 8" fill="#454749"/><ellipse cx="42.8" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m60 26.1c0 13.3.7-6.8-28.1-6.8-28.8 0-28.1 20.1-28.1 6.8 0-13.3 12.6-19.1 28.1-19.1 15.5 0 28.1 5.8 28.1 19.1" fill="#ff4848"/><path d="m6.8 33.6c0 0-6-2.4-4.3-6.2.6-1.5 4.3-1.1 5.7-2 1.7-1.1 3.6-5.6 5.6-6.1 1.2-.3 3.3 1.9 4.5 1.8 1.9-.2 4.2-3.9 6.1-4.3 2.3-.4 6.8 2.5 9.1 2.4 2-.1 5.3-3.3 7.3-3.1 2.2.2 4.9 4.3 6.9 5.1 1.9.7 6.5-.7 8 .5 1 .8.3 3.9 1 4.9.9 1.3 5.3 1.9 5.3 3.4 0 3.6-5.2 4-5.2 4s.9-2.6.5-3.1c-.8-1.1-4.6-1.2-5.2-2.5-.6-1.2 1-3.2.1-4.1-1.4-1.4-4.8.9-6.8.5-1.7-.4-3.9-4-5.7-4.1-1.9-.1-4.7 3.3-6.6 3.4-1.8.1-4.9-2.7-6.7-2.4-2 .3-4.3 4.7-6.3 4.7-1.6 0-4.3-3.3-5.9-2.9-1.9.4-1.7 4.9-3.4 5.9-1 .6-3.8-.8-4.6 0-.8.6.6 4.2.6 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fd.svg
new file mode 100644
index 0000000..a28a074
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="31.9" cy="13" rx="19.7" ry="11" fill="#d93d3d"/><ellipse cx="31.9" cy="16.8" rx="24" ry="11" fill="#e2e9ed"/><path d="M61.8,62H2c0-11.8,13.4-12.9,29.9-12.9C48.4,49.1,61.8,50.2,61.8,62z" fill="#ff4848"/><path d="m51.7 50.7c0 1.4-3.7 1.4-4.9 2.5-.9.9-.1 4.6-1.5 5.3-1.2.6-3.8-2.3-5.3-1.9-1.3.3-2.1 4.1-3.6 4.3-1.4.2-3-3.3-4.5-3.3-1.5 0-3.1 3.5-4.5 3.3-1.5-.2-2.2-4-3.6-4.3-1.5-.4-4.1 2.5-5.3 1.9-1.5-.7-.6-4.4-1.5-5.3-1.2-1.1-4.9-1.1-4.9-2.5.1-1.4 39.6-1.4 39.6 0" fill="#fff"/><path d="m54.3 25.9c-13.8-13.9-31.1-13.9-44.9 0l.1 15.4c0 6.7 6.6 14 22.8 14 15.4 0 22-6 22-14v-15.4" fill="#d6a57c"/><path d="m38.3 46.2c.1.1.2.3.2.5 0 1.5-3 3.3-6.6 3.3-3.7 0-6.7-1.8-6.7-3.3 0-.2.1-.4.2-.6 0 0 2.9 1.3 6.5 1.3 3.6.1 6.4-1.2 6.4-1.2" fill="#454749"/><path d="m31.9 8.3c-26.9 0-31.6 21.2-22.4 28.5 0 0 4.6-7.8 14.3-11.6 3.2-1.2 5.9-2.4 8.1-3.6 2.2 1.1 4.9 2.3 8.1 3.6 9.7 3.7 14.3 11.6 14.3 11.6 9.2-7.3 4.5-28.5-22.4-28.5" fill="#8b9fa5"/><g fill="#454749"><path d="m41.5 48.6c-.5 0-1-.1-1.5-.3-.5-.2-.9-.5-1.3-.8-.8-.6-1.4-1.6-1.4-2.6.7.7 1.3 1.3 2 1.9.7.6 1.5 1.1 2.2 1.8"/><path d="m22.2 48.6c.7-.7 1.5-1.2 2.2-1.8.7-.6 1.3-1.2 2-1.9 0 1-.7 1.9-1.4 2.6-.4.3-.8.6-1.3.8-.5.1-1 .3-1.5.3"/><path d="m19.3 36.7l-.3-2.7c.7-.1 1.7-.3 2.8-.5 5.2-1 13.9-2.7 23.4.5l-.9 2.5c-8.8-3-17.1-1.4-22-.4-1.2.3-2.2.5-3 .6"/><ellipse cx="21" cy="35.4" rx="8" ry="8"/></g><ellipse cx="21" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m50.8 35.4c0 4.4-3.6 8-8 8-4.4 0-8-3.6-8-8s3.6-8 8-8c4.4 0 8 3.6 8 8" fill="#454749"/><ellipse cx="42.8" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m60 26.1c0 13.3.7-6.8-28.1-6.8-28.8 0-28.1 20.1-28.1 6.8 0-13.3 12.6-19.1 28.1-19.1 15.5 0 28.1 5.8 28.1 19.1" fill="#ff4848"/><path d="m6.8 33.6c0 0-6-2.4-4.3-6.2.6-1.5 4.3-1.1 5.7-2 1.7-1.1 3.6-5.6 5.6-6.1 1.2-.3 3.3 1.9 4.5 1.8 1.9-.2 4.2-3.9 6.1-4.3 2.3-.4 6.8 2.5 9.1 2.4 2-.1 5.3-3.3 7.3-3.1 2.2.2 4.9 4.3 6.9 5.1 1.9.7 6.5-.7 8 .5 1 .8.3 3.9 1 4.9.9 1.3 5.3 1.9 5.3 3.4 0 3.6-5.2 4-5.2 4s.9-2.6.5-3.1c-.8-1.1-4.6-1.2-5.2-2.5-.6-1.2 1-3.2.1-4.1-1.4-1.4-4.8.9-6.8.5-1.7-.4-3.9-4-5.7-4.1-1.9-.1-4.7 3.3-6.6 3.4-1.8.1-4.9-2.7-6.7-2.4-2 .3-4.3 4.7-6.3 4.7-1.6 0-4.3-3.3-5.9-2.9-1.9.4-1.7 4.9-3.4 5.9-1 .6-3.8-.8-4.6 0-.8.6.6 4.2.6 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fe.svg
new file mode 100644
index 0000000..bac1e46
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="31.9" cy="13" rx="19.7" ry="11" fill="#d93d3d"/><ellipse cx="31.9" cy="16.8" rx="24" ry="11" fill="#e2e9ed"/><path d="M61.8,62H2c0-11.8,13.4-12.9,29.9-12.9C48.4,49.1,61.8,50.2,61.8,62z" fill="#ff4848"/><path d="m51.7 50.7c0 1.4-3.7 1.4-4.9 2.5-.9.9-.1 4.6-1.5 5.3-1.2.6-3.8-2.3-5.3-1.9-1.3.3-2.1 4.1-3.6 4.3-1.4.2-3-3.3-4.5-3.3-1.5 0-3.1 3.5-4.5 3.3-1.5-.2-2.2-4-3.6-4.3-1.5-.4-4.1 2.5-5.3 1.9-1.5-.7-.6-4.4-1.5-5.3-1.2-1.1-4.9-1.1-4.9-2.5.1-1.4 39.6-1.4 39.6 0" fill="#fff"/><path d="m54.3 25.9c-13.8-13.9-31.1-13.9-44.9 0l.1 15.4c0 6.7 6.6 14 22.8 14 15.4 0 22-6 22-14v-15.4" fill="#b47d56"/><path d="m38.3 46.2c.1.1.2.3.2.5 0 1.5-3 3.3-6.6 3.3-3.7 0-6.7-1.8-6.7-3.3 0-.2.1-.4.2-.6 0 0 2.9 1.3 6.5 1.3 3.6.1 6.4-1.2 6.4-1.2" fill="#454749"/><path d="m31.9 8.3c-26.9 0-31.6 21.2-22.4 28.5 0 0 4.6-7.8 14.3-11.6 3.2-1.2 5.9-2.4 8.1-3.6 2.2 1.1 4.9 2.3 8.1 3.6 9.7 3.7 14.3 11.6 14.3 11.6 9.2-7.3 4.5-28.5-22.4-28.5" fill="#8b9fa5"/><g fill="#454749"><path d="m41.5 48.6c-.5 0-1-.1-1.5-.3-.5-.2-.9-.5-1.3-.8-.8-.6-1.4-1.6-1.4-2.6.7.7 1.3 1.3 2 1.9.7.6 1.5 1.1 2.2 1.8"/><path d="m22.2 48.6c.7-.7 1.5-1.2 2.1-1.8.7-.6 1.3-1.2 2-1.9 0 1-.7 1.9-1.4 2.6-.4.3-.8.6-1.3.8-.4.1-.9.3-1.4.3"/><path d="m19.3 36.7l-.3-2.7c.7-.1 1.7-.3 2.8-.5 5.2-1 13.9-2.7 23.4.5l-.9 2.5c-8.8-3-17.1-1.4-22-.4-1.2.3-2.2.5-3 .6"/><ellipse cx="21" cy="35.4" rx="8" ry="8"/></g><ellipse cx="21" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><ellipse cx="42.8" cy="35.4" rx="8" ry="8" fill="#454749"/><ellipse cx="42.8" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m60 26.1c0 13.3.7-6.8-28.1-6.8-28.8 0-28.1 20.1-28.1 6.8 0-13.3 12.6-19.1 28.1-19.1 15.5 0 28.1 5.8 28.1 19.1" fill="#ff4848"/><path d="m6.8 33.6c0 0-6-2.4-4.3-6.2.6-1.5 4.3-1.1 5.7-2 1.7-1.1 3.6-5.6 5.6-6.1 1.2-.3 3.3 1.9 4.5 1.8 1.9-.2 4.2-3.9 6.1-4.3 2.3-.4 6.8 2.5 9.1 2.4 2-.1 5.3-3.3 7.3-3.1 2.2.2 4.9 4.3 6.9 5.1 1.9.7 6.5-.7 8 .5 1 .8.3 3.9 1 4.9.9 1.3 5.3 1.9 5.3 3.4 0 3.6-5.2 4-5.2 4s.9-2.6.5-3.1c-.8-1.1-4.6-1.2-5.2-2.5-.6-1.2 1-3.2.1-4.1-1.4-1.4-4.8.9-6.8.5-1.7-.4-3.9-4-5.7-4.1-1.9-.1-4.7 3.3-6.6 3.4-1.8.1-4.9-2.7-6.7-2.4-2 .3-4.3 4.7-6.3 4.7-1.6 0-4.3-3.3-5.9-2.9-1.9.4-1.7 4.9-3.4 5.9-1 .6-3.8-.8-4.6 0-.8.6.6 4.2.6 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3ff.svg
new file mode 100644
index 0000000..bd8eb1b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f936-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="31.9" cy="13" rx="19.7" ry="11" fill="#d93d3d"/><ellipse cx="31.9" cy="16.8" rx="24" ry="11" fill="#e2e9ed"/><path d="M61.8,62H2c0-11.8,13.4-12.9,29.9-12.9C48.4,49.1,61.8,50.2,61.8,62z" fill="#ff4848"/><path d="m51.7 50.7c0 1.4-3.7 1.4-4.9 2.5-.9.9-.1 4.6-1.5 5.3-1.2.6-3.8-2.3-5.3-1.9-1.3.3-2.1 4.1-3.6 4.3-1.4.2-3-3.3-4.5-3.3-1.5 0-3.1 3.5-4.5 3.3-1.5-.2-2.3-4-3.6-4.3-1.5-.4-4.1 2.5-5.3 1.9-1.5-.7-.6-4.4-1.5-5.3-1.2-1.1-4.9-1.1-4.9-2.5.1-1.4 39.6-1.4 39.6 0" fill="#fff"/><path d="m54.3 25.9c-13.8-13.9-31.1-13.9-44.9 0l.1 15.4c0 6.7 6.6 14 22.8 14 15.4 0 22-6 22-14v-15.4" fill="#8a6859"/><path d="m38.3 46.2c.1.1.2.3.2.5 0 1.5-3 3.3-6.6 3.3s-6.7-1.8-6.7-3.3c0-.2.1-.4.2-.6 0 0 2.9 1.3 6.5 1.3 3.6.1 6.4-1.2 6.4-1.2" fill="#454749"/><path d="m31.9 8.3c-26.9 0-31.6 21.2-22.4 28.5 0 0 4.6-7.8 14.3-11.6 3.2-1.2 5.9-2.4 8.1-3.6 2.2 1.1 4.9 2.3 8.1 3.6 9.7 3.7 14.3 11.6 14.3 11.6 9.2-7.3 4.5-28.5-22.4-28.5" fill="#8b9fa5"/><g fill="#454749"><path d="m41.5 48.6c-.5 0-1-.1-1.5-.3-.5-.2-.9-.5-1.3-.8-.8-.6-1.4-1.6-1.4-2.6.7.7 1.3 1.3 2 1.9.7.6 1.5 1.1 2.2 1.8"/><path d="m22.2 48.6c.7-.7 1.5-1.2 2.1-1.8.7-.6 1.3-1.2 2-1.9 0 1-.7 1.9-1.4 2.6-.4.3-.8.6-1.3.8-.4.1-.9.3-1.4.3"/><path d="m19.3 36.7l-.3-2.7c.7-.1 1.7-.3 2.8-.5 5.2-1 13.9-2.7 23.4.5l-.9 2.5c-8.8-3-17.1-1.4-22-.4-1.2.3-2.2.5-3 .6"/><ellipse cx="21" cy="35.4" rx="8" ry="8"/></g><ellipse cx="21" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m50.8 35.4c0 4.4-3.6 8-8 8-4.4 0-8-3.6-8-8s3.6-8 8-8c4.4 0 8 3.6 8 8" fill="#454749"/><path d="m48.3 35.4c0 3-2.5 5.5-5.5 5.5-3 0-5.5-2.5-5.5-5.5s2.4-5.5 5.5-5.5c3 0 5.5 2.5 5.5 5.5" fill="#b4d7ee"/><path d="m60 26.1c0 13.3.7-6.8-28.1-6.8-28.8 0-28.1 20.1-28.1 6.8 0-13.3 12.6-19.1 28.1-19.1 15.5 0 28.1 5.8 28.1 19.1" fill="#ff4848"/><path d="m6.8 33.6c0 0-6-2.4-4.3-6.2.6-1.5 4.3-1.1 5.7-2 1.7-1.1 3.6-5.6 5.6-6.1 1.2-.3 3.3 1.9 4.5 1.8 1.9-.2 4.2-3.9 6.1-4.3 2.3-.4 6.8 2.5 9.1 2.4 2-.1 5.3-3.3 7.3-3.1 2.2.2 4.9 4.3 6.9 5.1 1.9.7 6.5-.7 8 .5 1 .8.3 3.9 1 4.9.9 1.3 5.3 1.9 5.3 3.4 0 3.6-5.2 4-5.2 4s.9-2.6.5-3.1c-.8-1.1-4.6-1.2-5.2-2.5-.6-1.2 1-3.2.1-4.1-1.4-1.4-4.8.9-6.8.5-1.7-.4-3.9-4-5.7-4.1-1.9-.1-4.7 3.3-6.6 3.4-1.8.1-4.9-2.7-6.7-2.4-2 .3-4.3 4.7-6.3 4.7-1.6 0-4.3-3.3-5.9-2.9-1.9.4-1.7 4.9-3.4 5.9-1 .6-3.8-.8-4.6 0-.8.6.6 4.2.6 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f936.svg b/build/js/jsxc/lib/emojione/assets/svg/1f936.svg
new file mode 100644
index 0000000..c2c0e98
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f936.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="31.9" cy="13" rx="19.7" ry="11" fill="#d93d3d"/><ellipse cx="31.9" cy="16.8" rx="24" ry="11" fill="#e2e9ed"/><path d="M61.8,62H2c0-11.8,13.4-12.9,29.9-12.9C48.4,49.1,61.8,50.2,61.8,62z" fill="#ff4848"/><path d="m51.7 50.7c0 1.4-3.7 1.4-4.9 2.5-.9.9-.1 4.6-1.5 5.3-1.2.6-3.8-2.3-5.3-1.9-1.3.3-2.1 4.1-3.6 4.3-1.4.2-3-3.3-4.5-3.3-1.5 0-3.1 3.5-4.5 3.3-1.5-.2-2.3-4-3.6-4.3-1.5-.4-4.1 2.5-5.3 1.9-1.5-.7-.6-4.4-1.5-5.3-1.2-1.1-4.9-1.1-4.9-2.5.1-1.4 39.6-1.4 39.6 0" fill="#fff"/><path d="m54.3 25.9c-13.8-13.9-31.1-13.9-44.9 0l.1 15.4c0 6.7 6.6 14 22.8 14 15.4 0 22-6 22-14v-15.4" fill="#ffdd67"/><path d="m38.3 46.2c.1.1.2.3.2.5 0 1.5-3 3.3-6.6 3.3s-6.7-1.8-6.7-3.3c0-.2.1-.4.2-.6 0 0 2.9 1.3 6.5 1.3 3.6.1 6.4-1.2 6.4-1.2" fill="#454749"/><path d="m31.9 8.3c-26.9 0-31.6 21.2-22.4 28.5 0 0 4.6-7.8 14.3-11.6 3.2-1.2 5.9-2.4 8.1-3.6 2.2 1.1 4.9 2.3 8.1 3.6 9.7 3.7 14.3 11.6 14.3 11.6 9.2-7.3 4.5-28.5-22.4-28.5" fill="#8b9fa5"/><g fill="#454749"><path d="m41.5 48.6c-.5 0-1-.1-1.5-.3-.5-.2-.9-.5-1.3-.8-.8-.6-1.4-1.6-1.4-2.6.7.7 1.3 1.3 2 1.9.7.6 1.5 1.1 2.2 1.8"/><path d="m22.2 48.6c.7-.7 1.5-1.2 2.1-1.8.7-.6 1.3-1.2 2-1.9 0 1-.7 1.9-1.4 2.6-.4.3-.8.6-1.3.8-.4.1-.9.3-1.4.3"/><path d="m19.3 36.7l-.3-2.7c.7-.1 1.7-.3 2.8-.5 5.2-1 13.9-2.7 23.4.5l-.9 2.5c-8.8-3-17.1-1.4-22-.4-1.2.3-2.2.5-3 .6"/><ellipse cx="21" cy="35.4" rx="8" ry="8"/></g><ellipse cx="21" cy="35.4" rx="5.5" ry="5.5" fill="#b4d7ee"/><path d="m50.8 35.4c0 4.4-3.6 8-8 8-4.4 0-8-3.6-8-8s3.6-8 8-8c4.4 0 8 3.6 8 8" fill="#454749"/><path d="m48.3 35.4c0 3-2.5 5.5-5.5 5.5-3 0-5.5-2.5-5.5-5.5s2.4-5.5 5.5-5.5c3 0 5.5 2.5 5.5 5.5" fill="#b4d7ee"/><path d="m60 26.1c0 13.3.7-6.8-28.1-6.8-28.8 0-28.1 20.1-28.1 6.8 0-13.3 12.6-19.1 28.1-19.1 15.5 0 28.1 5.8 28.1 19.1" fill="#ff4848"/><path d="m6.8 33.6c0 0-6-2.4-4.3-6.2.6-1.5 4.3-1.1 5.7-2 1.7-1.1 3.6-5.6 5.6-6.1 1.2-.3 3.3 1.9 4.5 1.8 1.9-.2 4.2-3.9 6.1-4.3 2.3-.4 6.8 2.5 9.1 2.4 2-.1 5.3-3.3 7.3-3.1 2.2.2 4.9 4.3 6.9 5.1 1.9.7 6.5-.7 8 .5 1 .8.3 3.9 1 4.9.9 1.3 5.3 1.9 5.3 3.4 0 3.6-5.2 4-5.2 4s.9-2.6.5-3.1c-.8-1.1-4.6-1.2-5.2-2.5-.6-1.2 1-3.2.1-4.1-1.4-1.4-4.8.9-6.8.5-1.7-.4-3.9-4-5.7-4.1-1.9-.1-4.7 3.3-6.6 3.4-1.8.1-4.9-2.7-6.7-2.4-2 .3-4.3 4.7-6.3 4.7-1.6 0-4.3-3.3-5.9-2.9-1.9.4-1.7 4.9-3.4 5.9-1 .6-3.8-.8-4.6 0-.8.6.6 4.2.6 4.2" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fb.svg
new file mode 100644
index 0000000..e654bcd
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-13.4,0-20.8,8.5-20.8,19.7v22.7h41.6V21.7c0-16.7-11.2-16.4-11.2-16.4S40.7,2,32,2z" fill="#594640"/><path d="m51.1 36.7c-5.2-4.7-19 4.3-19.1 4.3-.1-.1-13.9-9-19.1-4.3-4.8 4.4.8 25.3.8 25.3h36.5c.1 0 5.7-20.9.9-25.3" fill="#c28fef"/><path d="m17.7 33.2c0 0-3.1-.2-3.9-4.7-.6-3.5 1.5-4.6 1.5-4.6 7.7-3.9 19.3-14.3 19.3-14.3s5.4 5.4 11.6 8.9c0 0 2.4 0 3.1 3.8.8 4.5-2.2 5.8-2.2 5.8 1.2 6.8-6.5 16.5-12 17.5-5.5.9-16.2-5.6-17.4-12.4" fill="#ffe1bd"/><g fill="#664e27"><path d="m28.6 40.9c-.1 0-.2-.1-.2-.2-.1-.7 2.2-2.7 5.2-3.2 3.1-.5 5.8.5 6 1.2 0 .1 0 .2-.1.3 0 0-2.6-1.1-5.7-.5-3 .5-5.2 2.4-5.2 2.4"/><path d="m18.1 23c-.1-.1-.1-.1-.1-.2 0-.6 2-1.5 4.6-1.6 2.6-.2 4.8.4 4.8 1.1 0 .1 0 .2-.1.2 0 0-2.1-.4-4.6-.2-2.6.1-4.6.7-4.6.7"/><path d="m42.8 16.7c.1-.1.1-.2 0-.2-.2-.6-2.5-.5-4.9.4-2.4.9-4.1 2.4-3.9 2.9 0 .1.1.1.2.2 0 0 1.7-1.2 4.1-2.1 2.4-1 4.5-1.2 4.5-1.2"/></g><path d="m37 34.4c.2 1-2.8 1.8-3.5 2-.7.1-3.8.3-3.9-.7-.1-.1 7.3-1.8 7.4-1.3" fill="#e6b796"/><path d="m27.1 29.8c.9-.2.4-2.4.4-2.4-3.7-5.5-8.9-.7-8.9-.7-2.1 1.4 1.8 4.1 2.3 4.1 2.6.3 6.2-1 6.2-1" fill="#f5f5f5"/><path d="m26 27.1c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3.1.8 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m24.2 27.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.2 1.2.8"/><path d="m28.4 28.1c-.9-.8-1.7-1.5-2.7-2-.9-.5-1.9-.7-3-.6-1 .1-2 .5-3.1.9-.5.2-1.1.4-1.7.5-.6.1-1.3.2-1.7-.2.6.1 1.1-.1 1.6-.3.5-.2 1-.5 1.5-.8 1-.6 2.1-1.1 3.4-1.2.6 0 1.3 0 1.9.2.6.2 1.2.5 1.7.8.8.7 1.6 1.7 2.1 2.7"/></g><path d="m37.1 28c-.9.2-1.1-2.1-1.1-2.1 1.6-6.4 8.2-3.7 8.2-3.7 2.5.6-.3 4.4-.8 4.7-2.4 1.1-6.3 1.1-6.3 1.1" fill="#f5f5f5"/><path d="m42.9 24.2c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3 .7 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m41.1 24.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.3 1.2.8"/><path d="m35.4 26.9c.1-1.1.5-2.3 1.2-3.3.3-.5.8-1 1.3-1.3.5-.4 1.1-.6 1.7-.8 1.2-.3 2.4-.2 3.6 0 .6.1 1.1.2 1.7.3.5.1 1.1.1 1.6-.2-.3.5-1 .7-1.6.8-.6.1-1.2.1-1.7.1-1.1 0-2.2 0-3.2.2-1 .2-1.9.8-2.6 1.6-.9.6-1.4 1.6-2 2.6"/><path d="m16.6 49.9l-.8 12.1h11.1l-1.3-12.8h-.8c-.1-.7-.2-1.4-1.1-3.2-1.5-3.3-7.4-2.1-9.7-1.5l-2 5.5c3.6.4 4.6-.1 4.6-.1" opacity=".2"/></g><path d="m17.4 50.4v-1.1c0 0-10.2 2.1-14-1.4-4.8-4.5 3.4-2 9.6-3.5 2.2-.6 8.1-1.7 9.7 1.5 1.7 3.5 1.3 4.5 1.3 4.5h-6.6c0 0 0 0 0 0" fill="#ffe1bd"/><path fill="#c28fef" d="m16.3 62l.8-12.3h7.7l1.1 12.3z"/><path d="m47.4 49.9l.8 12.1h-11.1l1.3-12.8h.8c.1-.7.2-1.4 1.1-3.2 1.5-3.3 7.4-2.1 9.7-1.5l2 5.6c-3.6.3-4.6-.2-4.6-.2" opacity=".2" fill="#231f20"/><path d="m46.6 50.4v-1.1c0 0 10.2 2.1 14-1.4 4.8-4.5-3.4-2-9.6-3.5-2.2-.6-8.2-1.7-9.7 1.5-1.7 3.5-1.3 4.5-1.3 4.5h6.6" fill="#ffe1bd"/><path fill="#c28fef" d="m47.7 62l-.8-12.3h-7.7l-1.1 12.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fc.svg
new file mode 100644
index 0000000..8686bdf
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-13.4,0-20.8,8.5-20.8,19.7v22.7h41.6V21.7c0-16.7-11.2-16.4-11.2-16.4S40.7,2,32,2z" fill="#dbb471"/><path d="m51.1 36.7c-5.2-4.7-19 4.3-19.1 4.3-.1-.1-13.9-9-19.1-4.3-4.8 4.4.8 25.3.8 25.3h36.5c.1 0 5.7-20.9.9-25.3" fill="#c28fef"/><path d="m17.7 33.2c0 0-3.1-.2-3.9-4.7-.6-3.5 1.5-4.6 1.5-4.6 7.7-3.9 19.3-14.3 19.3-14.3s5.4 5.4 11.6 8.9c0 0 2.4 0 3.1 3.8.8 4.5-2.2 5.8-2.2 5.8 1.2 6.8-6.5 16.5-12 17.5-5.5.9-16.2-5.6-17.4-12.4" fill="#fed0ac"/><g fill="#664e27"><path d="m28.6 40.9c-.1 0-.2-.1-.2-.2-.1-.7 2.2-2.7 5.2-3.2 3.1-.5 5.8.5 6 1.2 0 .1 0 .2-.1.3 0 0-2.6-1.1-5.7-.5-3 .5-5.2 2.4-5.2 2.4"/><path d="m18.1 23c-.1-.1-.1-.1-.1-.2 0-.6 2-1.5 4.6-1.6 2.6-.2 4.8.4 4.8 1.1 0 .1 0 .2-.1.2 0 0-2.1-.4-4.6-.2-2.6.1-4.6.7-4.6.7"/><path d="m42.8 16.7c.1-.1.1-.2 0-.2-.2-.6-2.5-.5-4.9.4-2.4.9-4.1 2.4-3.9 2.9 0 .1.1.1.2.2 0 0 1.7-1.2 4.1-2.1 2.4-1 4.5-1.2 4.5-1.2"/></g><path d="m37 34.4c.2 1-2.8 1.8-3.5 2-.7.1-3.8.3-3.9-.7-.1-.1 7.3-1.8 7.4-1.3" fill="#e0a372"/><path d="m27.1 29.8c.9-.2.4-2.4.4-2.4-3.7-5.5-8.9-.7-8.9-.7-2.1 1.4 1.8 4.1 2.3 4.1 2.6.3 6.2-1 6.2-1" fill="#f5f5f5"/><path d="m26 27.1c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3.1.8 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m24.2 27.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.2 1.2.8"/><path d="m28.4 28.1c-.9-.8-1.7-1.5-2.7-2-.9-.5-1.9-.7-3-.6-1 .1-2 .5-3.1.9-.5.2-1.1.4-1.7.5-.6.1-1.3.2-1.7-.2.6.1 1.1-.1 1.6-.3.5-.2 1-.5 1.5-.8 1-.6 2.1-1.1 3.4-1.2.6 0 1.3 0 1.9.2.6.2 1.2.5 1.7.8.8.7 1.6 1.7 2.1 2.7"/></g><path d="m37.1 28c-.9.2-1.1-2.1-1.1-2.1 1.6-6.4 8.2-3.7 8.2-3.7 2.5.6-.3 4.4-.8 4.7-2.4 1.1-6.3 1.1-6.3 1.1" fill="#f5f5f5"/><path d="m42.9 24.2c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3 .7 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m41.1 24.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.3 1.2.8"/><path d="m35.4 26.9c.1-1.1.5-2.3 1.2-3.3.3-.5.8-1 1.3-1.3.5-.4 1.1-.6 1.7-.8 1.2-.3 2.4-.2 3.6 0 .6.1 1.1.2 1.7.3.5.1 1.1.1 1.6-.2-.3.5-1 .7-1.6.8-.6.1-1.2.1-1.7.1-1.1 0-2.2 0-3.2.2-1 .2-1.9.8-2.6 1.6-.9.6-1.4 1.6-2 2.6"/><path d="m16.6 49.9l-.8 12.1h11.1l-1.3-12.8h-.8c-.1-.7-.2-1.4-1.1-3.2-1.5-3.3-7.4-2.1-9.7-1.5l-2 5.5c3.6.4 4.6-.1 4.6-.1" opacity=".2"/></g><path d="m17.4 50.4v-1.1c0 0-10.2 2.1-14-1.4-4.8-4.5 3.4-2 9.6-3.5 2.2-.6 8.1-1.7 9.7 1.5 1.7 3.5 1.3 4.5 1.3 4.5h-6.6" fill="#fed0ac"/><path fill="#c28fef" d="m16.3 62l.8-12.3h7.7l1.1 12.3z"/><path d="m47.4 49.9l.8 12.1h-11.1l1.3-12.8h.8c.1-.7.2-1.4 1.1-3.2 1.5-3.3 7.4-2.1 9.7-1.5l2 5.6c-3.6.3-4.6-.2-4.6-.2" opacity=".2" fill="#231f20"/><path d="m46.6 50.4v-1.1c0 0 10.2 2.1 14-1.4 4.8-4.5-3.4-2-9.6-3.5-2.2-.6-8.1-1.7-9.7 1.5-1.7 3.5-1.3 4.5-1.3 4.5h6.6" fill="#fed0ac"/><path fill="#c28fef" d="m47.7 62l-.8-12.3h-7.7l-1.1 12.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fd.svg
new file mode 100644
index 0000000..ee50fbb
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-13.4,0-20.8,8.5-20.8,19.7v22.7h41.6V21.7c0-16.7-11.2-16.4-11.2-16.4S40.7,2,32,2z" fill="#594640"/><path d="m51.1 36.7c-5.2-4.7-19 4.3-19.1 4.3-.1-.1-13.9-9-19.1-4.3-4.8 4.4.8 25.3.8 25.3h36.5c.1 0 5.7-20.9.9-25.3" fill="#c28fef"/><path d="m17.7 33.2c0 0-3.1-.2-3.9-4.7-.6-3.5 1.5-4.6 1.5-4.6 7.7-3.9 19.3-14.3 19.3-14.3s5.4 5.4 11.6 8.9c0 0 2.4 0 3.1 3.8.8 4.5-2.2 5.8-2.2 5.8 1.2 6.8-6.5 16.5-12 17.5-5.5.9-16.2-5.6-17.4-12.4" fill="#d6a57c"/><g fill="#664e27"><path d="m28.6 40.9c-.1 0-.2-.1-.2-.2-.1-.7 2.2-2.7 5.2-3.2 3.1-.5 5.8.5 6 1.2 0 .1 0 .2-.1.3 0 0-2.6-1.1-5.7-.5-3 .5-5.2 2.4-5.2 2.4"/><path d="m18.1 23c-.1-.1-.1-.1-.1-.2 0-.6 2-1.5 4.6-1.6 2.6-.2 4.8.4 4.8 1.1 0 .1 0 .2-.1.2 0 0-2.1-.4-4.6-.2-2.6.1-4.6.7-4.6.7"/><path d="m42.8 16.7c.1-.1.1-.2 0-.2-.2-.6-2.5-.5-4.9.4-2.4.9-4.1 2.4-3.9 2.9 0 .1.1.1.2.2 0 0 1.7-1.2 4.1-2.1 2.4-1 4.5-1.2 4.5-1.2"/></g><path d="m37 34.4c.2 1-2.8 1.8-3.5 2-.7.1-3.8.3-3.9-.7-.1-.1 7.3-1.8 7.4-1.3" fill="#b58360"/><path d="m27.1 29.8c.9-.2.4-2.4.4-2.4-3.7-5.5-8.9-.7-8.9-.7-2.1 1.4 1.8 4.1 2.3 4.1 2.6.3 6.2-1 6.2-1" fill="#f5f5f5"/><path d="m26 27.1c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3.1.8 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m24.2 27.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.2 1.2.8"/><path d="m28.4 28.1c-.9-.8-1.7-1.5-2.7-2-.9-.5-1.9-.7-3-.6-1 .1-2 .5-3.1.9-.5.2-1.1.4-1.7.5-.6.1-1.3.2-1.7-.2.6.1 1.1-.1 1.6-.3.5-.2 1-.5 1.5-.8 1-.6 2.1-1.1 3.4-1.2.6 0 1.3 0 1.9.2.6.2 1.2.5 1.7.8.8.7 1.6 1.7 2.1 2.7"/></g><path d="m37.1 28c-.9.2-1.1-2.1-1.1-2.1 1.6-6.4 8.2-3.7 8.2-3.7 2.5.6-.3 4.4-.8 4.7-2.4 1.1-6.3 1.1-6.3 1.1" fill="#f5f5f5"/><path d="m42.9 24.2c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3 .7 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m41.1 24.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.3 1.2.8"/><path d="m35.4 26.9c.1-1.1.5-2.3 1.2-3.3.3-.5.8-1 1.3-1.3.5-.4 1.1-.6 1.7-.8 1.2-.3 2.4-.2 3.6 0 .6.1 1.1.2 1.7.3.5.1 1.1.1 1.6-.2-.3.5-1 .7-1.6.8-.6.1-1.2.1-1.7.1-1.1 0-2.2 0-3.2.2-1 .2-1.9.8-2.6 1.6-.9.6-1.4 1.6-2 2.6"/><path d="m16.6 49.9l-.8 12.1h11.1l-1.3-12.8h-.8c-.1-.7-.2-1.4-1.1-3.2-1.5-3.3-7.4-2.1-9.7-1.5l-2 5.5c3.6.4 4.6-.1 4.6-.1" opacity=".2"/></g><path d="m17.4 50.4v-1.1c0 0-10.2 2.1-14-1.4-4.8-4.5 3.4-2 9.6-3.5 2.2-.6 8.1-1.7 9.7 1.5 1.7 3.5 1.3 4.5 1.3 4.5h-6.6" fill="#d6a57c"/><path fill="#c28fef" d="m16.3 62l.8-12.3h7.7l1.1 12.3z"/><path d="m47.4 49.9l.8 12.1h-11.1l1.3-12.8h.8c.1-.7.2-1.4 1.1-3.2 1.5-3.3 7.4-2.1 9.7-1.5l2 5.6c-3.6.3-4.6-.2-4.6-.2" opacity=".2" fill="#231f20"/><path d="m46.6 50.4v-1.1c0 0 10.2 2.1 14-1.4 4.8-4.5-3.4-2-9.6-3.5-2.2-.6-8.1-1.7-9.7 1.5-1.7 3.5-1.3 4.5-1.3 4.5h6.6" fill="#d6a57c"/><path fill="#c28fef" d="m47.7 62l-.8-12.3h-7.7l-1.1 12.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fe.svg
new file mode 100644
index 0000000..4a7bc96
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-13.4,0-20.8,8.5-20.8,19.7v22.7h41.6V21.7c0-16.7-11.2-16.4-11.2-16.4S40.7,2,32,2z" fill="#231f20"/><path d="m51.1 36.7c-5.2-4.7-19 4.3-19.1 4.3-.1-.1-13.9-9-19.1-4.3-4.8 4.4.8 25.3.8 25.3h36.5c.1 0 5.7-20.9.9-25.3" fill="#c28fef"/><path d="m17.7 33.2c0 0-3.1-.2-3.9-4.7-.6-3.5 1.5-4.6 1.5-4.6 7.7-3.9 19.3-14.3 19.3-14.3s5.4 5.4 11.6 8.9c0 0 2.4 0 3.1 3.8.8 4.5-2.2 5.8-2.2 5.8 1.2 6.8-6.5 16.5-12 17.5-5.5.9-16.2-5.6-17.4-12.4" fill="#b47d56"/><g fill="#664e27"><path d="m28.6 40.9c-.1 0-.2-.1-.2-.2-.1-.7 2.2-2.7 5.2-3.2 3.1-.5 5.8.5 6 1.2 0 .1 0 .2-.1.3 0 0-2.6-1.1-5.7-.5-3 .5-5.2 2.4-5.2 2.4"/><path d="m18.1 23c-.1-.1-.1-.1-.1-.2 0-.6 2-1.5 4.6-1.6 2.6-.2 4.8.4 4.8 1.1 0 .1 0 .2-.1.2 0 0-2.1-.4-4.6-.2-2.6.1-4.6.7-4.6.7"/><path d="m42.8 16.7c.1-.1.1-.2 0-.2-.2-.6-2.5-.5-4.9.4-2.4.9-4.1 2.4-3.9 2.9 0 .1.1.1.2.2 0 0 1.7-1.2 4.1-2.1 2.4-1 4.5-1.2 4.5-1.2"/></g><path d="m37 34.4c.2 1-2.8 1.8-3.5 2-.7.1-3.8.3-3.9-.7-.1-.1 7.3-1.8 7.4-1.3" fill="#935e3e"/><path d="m27.1 29.8c.9-.2.4-2.4.4-2.4-3.7-5.5-8.9-.7-8.9-.7-2.1 1.4 1.8 4.1 2.3 4.1 2.6.3 6.2-1 6.2-1" fill="#f5f5f5"/><path d="m26 27.1c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3.1.8 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m24.2 27.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.2 1.2.8"/><path d="m28.4 28.1c-.9-.8-1.7-1.5-2.7-2-.9-.5-1.9-.7-3-.6-1 .1-2 .5-3.1.9-.5.2-1.1.4-1.7.5-.6.1-1.3.2-1.7-.2.6.1 1.1-.1 1.6-.3.5-.2 1-.5 1.5-.8 1-.6 2.1-1.1 3.4-1.2.6 0 1.3 0 1.9.2.6.2 1.2.5 1.7.8.8.7 1.6 1.7 2.1 2.7"/></g><path d="m37.1 28c-.9.2-1.1-2.1-1.1-2.1 1.6-6.4 8.2-3.7 8.2-3.7 2.5.6-.3 4.4-.8 4.7-2.4 1.1-6.3 1.1-6.3 1.1" fill="#f5f5f5"/><path d="m42.9 24.2c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3 .7 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m41.1 24.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.3 1.2.8"/><path d="m35.4 26.9c.1-1.1.5-2.3 1.2-3.3.3-.5.8-1 1.3-1.3.5-.4 1.1-.6 1.7-.8 1.2-.3 2.4-.2 3.6 0 .6.1 1.1.2 1.7.3.5.1 1.1.1 1.6-.2-.3.5-1 .7-1.6.8-.6.1-1.2.1-1.7.1-1.1 0-2.2 0-3.2.2-1 .2-1.9.8-2.6 1.6-.9.6-1.4 1.6-2 2.6"/><path d="m16.6 49.9l-.8 12.1h11.1l-1.3-12.8h-.8c-.1-.7-.2-1.4-1.1-3.2-1.5-3.3-7.4-2.1-9.7-1.5l-2 5.5c3.6.4 4.6-.1 4.6-.1" opacity=".2"/></g><path d="m17.4 50.4v-1.1c0 0-10.2 2.1-14-1.4-4.8-4.5 3.4-2 9.6-3.5 2.2-.6 8.1-1.7 9.7 1.5 1.7 3.5 1.3 4.5 1.3 4.5h-6.6" fill="#b47d56"/><path fill="#c28fef" d="m16.3 62l.8-12.3h7.7l1.1 12.3z"/><path d="m47.4 49.9l.8 12.1h-11.1l1.3-12.8h.8c.1-.7.2-1.4 1.1-3.2 1.5-3.3 7.4-2.1 9.7-1.5l2 5.6c-3.6.3-4.6-.2-4.6-.2" opacity=".2" fill="#231f20"/><path d="m46.6 50.4v-1.1c0 0 10.2 2.1 14-1.4 4.8-4.5-3.4-2-9.6-3.5-2.2-.6-8.1-1.7-9.7 1.5-1.7 3.5-1.3 4.5-1.3 4.5h6.6" fill="#b47d56"/><path fill="#c28fef" d="m47.7 62l-.8-12.3h-7.7l-1.1 12.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3ff.svg
new file mode 100644
index 0000000..25bfd9e
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f937-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-13.4,0-20.8,8.5-20.8,19.7v22.7h41.6V21.7c0-16.7-11.2-16.4-11.2-16.4S40.7,2,32,2z" fill="#231f20"/><path d="m51.1 36.7c-5.2-4.7-19 4.3-19.1 4.3-.1-.1-13.9-9-19.1-4.3-4.8 4.4.8 25.3.8 25.3h36.5c.1 0 5.7-20.9.9-25.3" fill="#c28fef"/><path d="m17.7 33.2c0 0-3.1-.2-3.9-4.7-.6-3.5 1.5-4.6 1.5-4.6 7.7-3.9 19.3-14.3 19.3-14.3s5.4 5.4 11.6 8.9c0 0 2.4 0 3.1 3.8.8 4.5-2.2 5.8-2.2 5.8 1.2 6.8-6.5 16.5-12 17.5-5.5.9-16.2-5.6-17.4-12.4" fill="#8a6859"/><g fill="#574137"><path d="m28.6 40.9c-.1 0-.2-.1-.2-.2-.1-.7 2.2-2.7 5.2-3.2 3.1-.5 5.8.5 6 1.2 0 .1 0 .2-.1.3 0 0-2.6-1.1-5.7-.5-3 .5-5.2 2.4-5.2 2.4"/><path d="m18.1 23c-.1-.1-.1-.1-.1-.2 0-.6 2-1.5 4.6-1.6 2.6-.2 4.8.4 4.8 1.1 0 .1 0 .2-.1.2 0 0-2.1-.4-4.6-.2-2.6.1-4.6.7-4.6.7"/><path d="m42.8 16.7c.1-.1.1-.2 0-.2-.2-.6-2.5-.5-4.9.4-2.4.9-4.1 2.4-3.9 2.9 0 .1.1.1.2.2 0 0 1.7-1.2 4.1-2.1 2.4-1 4.5-1.2 4.5-1.2"/></g><path d="m37 34.4c.2 1-2.8 1.8-3.5 2-.7.1-3.8.3-3.9-.7-.1-.1 7.3-1.8 7.4-1.3" fill="#705041"/><path d="m27.1 29.8c.9-.2.4-2.4.4-2.4-3.7-5.5-8.9-.7-8.9-.7-2.1 1.4 1.8 4.1 2.3 4.1 2.6.3 6.2-1 6.2-1" fill="#f5f5f5"/><path d="m26 27.1c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3.1.8 3.3 2.3" fill="#574137"/><g fill="#231f20"><path d="m24.2 27.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.2 1.2.8"/><path d="m28.4 28.1c-.9-.8-1.7-1.5-2.7-2-.9-.5-1.9-.7-3-.6-1 .1-2 .5-3.1.9-.5.2-1.1.4-1.7.5-.6.1-1.3.2-1.7-.2.6.1 1.1-.1 1.6-.3.5-.2 1-.5 1.5-.8 1-.6 2.1-1.1 3.4-1.2.6 0 1.3 0 1.9.2.6.2 1.2.5 1.7.8.8.7 1.6 1.7 2.1 2.7"/></g><path d="m37.1 28c-.9.2-1.1-2.1-1.1-2.1 1.6-6.4 8.2-3.7 8.2-3.7 2.5.6-.3 4.4-.8 4.7-2.4 1.1-6.3 1.1-6.3 1.1" fill="#f5f5f5"/><path d="m42.9 24.2c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3 .7 3.3 2.3" fill="#574137"/><g fill="#231f20"><path d="m41.1 24.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.3 1.2.8"/><path d="m35.4 26.9c.1-1.1.5-2.3 1.2-3.3.3-.5.8-1 1.3-1.3.5-.4 1.1-.6 1.7-.8 1.2-.3 2.4-.2 3.6 0 .6.1 1.1.2 1.7.3.5.1 1.1.1 1.6-.2-.3.5-1 .7-1.6.8-.6.1-1.2.1-1.7.1-1.1 0-2.2 0-3.2.2-1 .2-1.9.8-2.6 1.6-.9.6-1.4 1.6-2 2.6"/><path d="m16.6 49.9l-.8 12.1h11.1l-1.3-12.8h-.8c-.1-.7-.2-1.4-1.1-3.2-1.5-3.3-7.4-2.1-9.7-1.5l-2 5.5c3.6.4 4.6-.1 4.6-.1" opacity=".2"/></g><path d="m17.4 50.4v-1.1c0 0-10.2 2.1-14-1.4-4.8-4.5 3.4-2 9.6-3.5 2.2-.6 8.1-1.7 9.7 1.5 1.7 3.5 1.3 4.5 1.3 4.5h-6.6c0 0 0 0 0 0" fill="#8a6859"/><path fill="#c28fef" d="m16.3 62l.8-12.3h7.7l1.1 12.3z"/><path d="m47.4 49.9l.8 12.1h-11.1l1.3-12.8h.8c.1-.7.2-1.4 1.1-3.2 1.5-3.3 7.4-2.1 9.7-1.5l2 5.6c-3.6.3-4.6-.2-4.6-.2" opacity=".2" fill="#231f20"/><path d="m46.6 50.4v-1.1c0 0 10.2 2.1 14-1.4 4.8-4.5-3.4-2-9.6-3.5-2.2-.6-8.2-1.7-9.7 1.5-1.7 3.5-1.3 4.5-1.3 4.5h6.6" fill="#8a6859"/><path fill="#c28fef" d="m47.7 62l-.8-12.3h-7.7l-1.1 12.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f937.svg b/build/js/jsxc/lib/emojione/assets/svg/1f937.svg
new file mode 100644
index 0000000..c2ab59f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f937.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2c-13.4,0-20.8,8.5-20.8,19.7v22.7h41.6V21.7c0-16.7-11.2-16.4-11.2-16.4S40.7,2,32,2z" fill="#ffb300"/><path d="m51.1 36.7c-5.2-4.7-19 4.3-19.1 4.3-.1-.1-13.9-9-19.1-4.3-4.8 4.4.8 25.3.8 25.3h36.5c.1 0 5.7-20.9.9-25.3" fill="#c28fef"/><path d="m17.7 33.2c0 0-3.1-.2-3.9-4.7-.6-3.5 1.5-4.6 1.5-4.6 7.7-3.9 19.3-14.3 19.3-14.3s5.4 5.4 11.6 8.9c0 0 2.4 0 3.1 3.8.8 4.5-2.2 5.8-2.2 5.8 1.2 6.8-6.5 16.5-12 17.5-5.5.9-16.2-5.6-17.4-12.4" fill="#ffdd67"/><g fill="#937237"><path d="m28.6 40.9c-.1 0-.2-.1-.2-.2-.1-.7 2.2-2.7 5.2-3.2 3.1-.5 5.8.5 6 1.2 0 .1 0 .2-.1.3 0 0-2.6-1.1-5.7-.5-3 .5-5.2 2.4-5.2 2.4"/><path d="m18.1 23c-.1-.1-.1-.1-.1-.2 0-.6 2-1.5 4.6-1.6 2.6-.2 4.8.4 4.8 1.1 0 .1 0 .2-.1.2 0 0-2.1-.4-4.6-.2-2.6.1-4.6.7-4.6.7"/><path d="m42.8 16.7c.1-.1.1-.2 0-.2-.2-.6-2.5-.5-4.9.4-2.4.9-4.1 2.4-3.9 2.9 0 .1.1.1.2.2 0 0 1.7-1.2 4.1-2.1 2.4-1 4.5-1.2 4.5-1.2"/></g><path d="m37 34.4c.2 1-2.8 1.8-3.5 2-.7.1-3.8.3-3.9-.7-.1-.1 7.3-1.8 7.4-1.3" fill="#eba352"/><path d="m27.1 29.8c.9-.2.4-2.4.4-2.4-3.7-5.5-8.9-.7-8.9-.7-2.1 1.4 1.8 4.1 2.3 4.1 2.6.3 6.2-1 6.2-1" fill="#f5f5f5"/><path d="m26 27.1c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3.1.8 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m24.2 27.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.2 1.2.8"/><path d="m28.4 28.1c-.9-.8-1.7-1.5-2.7-2-.9-.5-1.9-.7-3-.6-1 .1-2 .5-3.1.9-.5.2-1.1.4-1.7.5-.6.1-1.3.2-1.7-.2.6.1 1.1-.1 1.6-.3.5-.2 1-.5 1.5-.8 1-.6 2.1-1.1 3.4-1.2.6 0 1.3 0 1.9.2.6.2 1.2.5 1.7.8.8.7 1.6 1.7 2.1 2.7"/></g><path d="m37.1 28c-.9.2-1.1-2.1-1.1-2.1 1.6-6.4 8.2-3.7 8.2-3.7 2.5.6-.3 4.4-.8 4.7-2.4 1.1-6.3 1.1-6.3 1.1" fill="#f5f5f5"/><path d="m42.9 24.2c.3 1.6-.8 3-2.3 3.3-1.6.3-3-.8-3.3-2.3-.3-1.6.8-3 2.3-3.3 1.6-.3 3 .7 3.3 2.3" fill="#664e27"/><g fill="#231f20"><path d="m41.1 24.5c.1.5-.3 1.1-.8 1.2-.5.1-1.1-.3-1.2-.8-.1-.5.3-1.1.8-1.2.6-.1 1.1.3 1.2.8"/><path d="m35.4 26.9c.1-1.1.5-2.3 1.2-3.3.3-.5.8-1 1.3-1.3.5-.4 1.1-.6 1.7-.8 1.2-.3 2.4-.2 3.6 0 .6.1 1.1.2 1.7.3.5.1 1.1.1 1.6-.2-.3.5-1 .7-1.6.8-.6.1-1.2.1-1.7.1-1.1 0-2.2 0-3.2.2-1 .2-1.9.8-2.6 1.6-.9.6-1.4 1.6-2 2.6"/><path d="m16.6 49.9l-.8 12.1h11.1l-1.3-12.8h-.8c-.1-.7-.2-1.4-1.1-3.2-1.5-3.3-7.4-2.1-9.7-1.5l-2 5.5c3.6.4 4.6-.1 4.6-.1" opacity=".2"/></g><path d="m17.4 50.4v-1.1c0 0-10.2 2.1-14-1.4-4.8-4.5 3.4-2 9.6-3.5 2.2-.6 8.1-1.7 9.7 1.5 1.7 3.5 1.3 4.5 1.3 4.5h-6.6" fill="#ffdd67"/><path fill="#c28fef" d="m16.3 62l.8-12.3h7.7l1.1 12.3z"/><path d="m47.4 49.9l.8 12.1h-11.1l1.3-12.8h.8c.1-.7.2-1.4 1.1-3.2 1.5-3.3 7.4-2.1 9.7-1.5l2 5.6c-3.6.3-4.6-.2-4.6-.2" opacity=".2" fill="#231f20"/><path d="m46.6 50.4v-1.1c0 0 10.2 2.1 14-1.4 4.8-4.5-3.4-2-9.6-3.5-2.2-.6-8.1-1.7-9.7 1.5-1.7 3.5-1.3 4.5-1.3 4.5h6.6" fill="#ffdd67"/><path fill="#c28fef" d="m47.7 62l-.8-12.3h-7.7l-1.1 12.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fb.svg
new file mode 100644
index 0000000..41bb168
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m44.6 33.7l6.7 3.8 6.7 6.8-3.7 2.4-5.5-5.9-5.3-2.8z"/><path d="m55.2 45l-1.9 1.7c-.7.6-.8 1.6-.2 2.3l.8 1c.4.5 1 .7 1.6.5 1.1 1.2 2.9 2.5 5.2.5.4-.3 2.5-2.2.4-4.7-3-3.8-3-3.8-5.9-1.3"/><path d="m22.6 58.8c-2 1.5-4.6 1.3-4.6 2.2s1.6.9 3.9.9c2.1 0 4.5-1.9 5.6-.9 1.1.9 2.4.9 3.9.9 1.4 0 1.3-2.1 0-2.1-1.3 0-3-2.8-3.3-4-.7-2.8-1.5-8.5-1.5-8.5s-.6 1.5 2.6-4.3c0 0 2.4-5 .8-6.7-1.8-1.8-3.7-.2-5.8 5.3-2.1 5.4-2 5.5-2 5.5s0 0 1.4 7.9c.2 1.4 1 2.4-1 3.8"/><path d="m28.6 38.9c0-2 2.4-3.6 5.3-3.6 3 0 5.3 1.6 5.3 3.6 0 2-2.4 3.6-5.3 3.6-2.9 0-5.3-1.6-5.3-3.6"/></g><g fill="#3e4347"><path d="m29.2 43c0 0 .5-.8 2.8-.8 0-.2-.1-.4-.1-.6 0-2.3 1.8-4.1 4-4.1 1.4 0 2.6.8 3.4 1.9 0 0 0 0 2.1-.7l2.9.1c0 0 2.1-2.7 3.2-5.4 0 0-6.2.5-9.9-6.2l-5-2.4-4.3 3.4c0 0-2.3 3.8-2.3 9.7 0-.1 3.2.7 3.2 5.1"/><path d="m49.6 6.5l-3.8-1.1c-.4-1.4-.2-1.8-.2-1.8 0-.9.7-1.6 1.6-1.6h8.2c-.4 2.2-3.6 4.2-5.8 4.5"/></g><path d="m45.7 5.4l3.8 1.1c0 0-1.9 5.1-2.9 8.9-.3 1.2-1.2 1.6-1.6 2.1-2.4 3.1-7.1 6.4-7.1 6.4l-4.1-4.6c0 0 3.4-3.3 7-5.2.3-.2 1.7-1.3 1.9-2.4.3-2.4 2.6-4.3 3-6.3" fill="#ffe1bd"/><path d="m9.3 15.4l2.6-3c-.5-1.4-.8-1.6-.8-1.6-.5-.7-1.5-1-2.2-.5l-7 4.4c1.5 1.7 5.4 1.8 7.4.7" fill="#3e4347"/><path d="m11.9 12.4l-2.6 3c0 0 4.1 2.8 6.5 5.9.8 1 1.8 1 2.3 1.3 3.4 1.9 9 3 9 3l2-5.9c0 0-5.3-1.9-9.3-2.2-.4 0-1 0-1.8-.9-1.5-1.7-4.6-2.8-6.1-4.2" fill="#ffe1bd"/><path d="m22.6 25.1c0 0 .6-4.3 4-7 0 0 4.3 1.9 5.3 1.8 1-.1 4.5-3.4 4.5-3.4s3.4 1.9 5.8 5.8l-4.6 4.9c0 0-2.6-1.3-9.3 1 0 0-2.6-.9-5.7-3.1" fill="#428bc1"/><path d="m23.1 42.5c0 0 3.7.8 4.9 3.6 0 0 .8-2.7 2.6-5.4l-4.3-3.8c0 0-1.6 2.1-3.2 5.6" fill="#3e4347"/><path d="m48.7 47.2l-1.6-1.3-16.3 6.4v2.1c2.6 6.6 5.2 8.7 12.5 6 7.3-2.9 8-6.5 5.4-13.2" fill="#594640"/><path d="m31.5 54c-.1-.4-.2-.8-.1-1 .1-.4.4-.8.4-.8s.2.8.6 1.8c2.8 5.9 2 2.8 8.7.2 6.7-2.6 8.1.2 6.2-6-.4-1-.8-1.7-.8-1.7s.5.1.8.3c.2.2.4.5.6.8.7-.1 1.5-.5.7-2.4-.4-1.1-1.2-1.9-2.7-1.4-2-3.6-8-4.1-10.3-3.2-2.3.9-6.3 5.4-5.4 9.4-1.4.6-1.4 1.7-1 2.9.9 1.7 1.7 1.6 2.3 1.1" fill="#ffe1bd"/><g fill="#664e27"><circle cx="42.3" cy="47.5" r="1.5"/><circle cx="35.5" cy="50.2" r="1.5"/><path d="m35 45.5c1-1.7 2.6-2.3 4.5-1.7.2.1.3-.2.1-.4-.7-.6-1.9-1-3-.6s-1.7 1.5-1.9 2.5c-.1.2.2.4.3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fc.svg
new file mode 100644
index 0000000..17ccde4
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m44.6 33.7l6.7 3.8 6.7 6.8-3.7 2.4-5.5-5.9-5.3-2.8z"/><path d="m55.2 45l-1.9 1.7c-.7.6-.8 1.6-.2 2.3l.8 1c.4.5 1 .7 1.6.5 1.1 1.2 2.9 2.5 5.2.5.4-.3 2.5-2.2.4-4.7-3-3.8-3-3.8-5.9-1.3"/><path d="m22.6 58.8c-2 1.5-4.6 1.3-4.6 2.2s1.6.9 3.9.9c2.1 0 4.5-1.9 5.6-.9 1.1.9 2.4.9 3.9.9 1.4 0 1.3-2.1 0-2.1-1.3 0-3-2.8-3.3-4-.7-2.8-1.5-8.5-1.5-8.5s-.6 1.5 2.6-4.3c0 0 2.4-5 .8-6.7-1.8-1.8-3.7-.2-5.8 5.3-2.1 5.4-2 5.5-2 5.5s0 0 1.4 7.9c.2 1.4 1 2.4-1 3.8"/><path d="m28.6 38.9c0-2 2.4-3.6 5.3-3.6 3 0 5.3 1.6 5.3 3.6 0 2-2.4 3.6-5.3 3.6-2.9 0-5.3-1.6-5.3-3.6"/></g><g fill="#3e4347"><path d="m29.2 43c0 0 .5-.8 2.8-.8 0-.2-.1-.4-.1-.6 0-2.3 1.8-4.1 4-4.1 1.4 0 2.6.8 3.4 1.9 0 0 0 0 2.1-.7l2.9.1c0 0 2.1-2.7 3.2-5.4 0 0-6.2.5-9.9-6.2l-5-2.4-4.3 3.4c0 0-2.3 3.8-2.3 9.7 0-.1 3.2.7 3.2 5.1"/><path d="m49.6 6.5l-3.8-1.1c-.4-1.4-.2-1.8-.2-1.8 0-.9.7-1.6 1.6-1.6h8.2c-.4 2.2-3.6 4.2-5.8 4.5"/></g><path d="m45.7 5.4l3.8 1.1c0 0-1.9 5.1-2.9 8.9-.3 1.2-1.2 1.6-1.6 2.1-2.4 3.1-7.1 6.4-7.1 6.4l-4.1-4.6c0 0 3.4-3.3 7-5.2.3-.2 1.7-1.3 1.9-2.4.3-2.4 2.6-4.3 3-6.3" fill="#fed0ac"/><path d="m9.3 15.4l2.6-3c-.5-1.4-.8-1.6-.8-1.6-.5-.7-1.5-1-2.2-.5l-7 4.4c1.5 1.7 5.4 1.8 7.4.7" fill="#3e4347"/><path d="m11.9 12.4l-2.6 3c0 0 4.1 2.8 6.5 5.9.8 1 1.8 1 2.3 1.3 3.4 1.9 9 3 9 3l2-5.9c0 0-5.3-1.9-9.3-2.2-.4 0-1 0-1.8-.9-1.5-1.7-4.6-2.8-6.1-4.2" fill="#fed0ac"/><path d="m22.6 25.1c0 0 .6-4.3 4-7 0 0 4.3 1.9 5.3 1.8 1-.1 4.5-3.4 4.5-3.4s3.4 1.9 5.8 5.8l-4.6 4.9c0 0-2.6-1.3-9.3 1 0 0-2.6-.9-5.7-3.1" fill="#428bc1"/><path d="m23.1 42.5c0 0 3.7.8 4.9 3.6 0 0 .8-2.7 2.6-5.4l-4.3-3.8c0 0-1.6 2.1-3.2 5.6" fill="#3e4347"/><path d="m48.7 47.2l-1.6-1.3-16.3 6.4v2.1c2.6 6.6 5.2 8.7 12.5 6 7.3-2.9 8-6.5 5.4-13.2" fill="#dbb471"/><path d="m31.5 54c-.1-.4-.2-.8-.1-1 .1-.4.4-.8.4-.8s.2.8.6 1.8c2.8 5.9 2 2.8 8.7.2 6.7-2.6 8.1.2 6.2-6-.4-1-.8-1.7-.8-1.7s.5.1.8.3c.2.2.4.5.6.8.7-.1 1.5-.5.7-2.4-.4-1.1-1.2-1.9-2.7-1.4-2-3.6-8-4.1-10.3-3.2-2.3.9-6.3 5.4-5.4 9.4-1.4.6-1.4 1.7-1 2.9.9 1.7 1.7 1.6 2.3 1.1" fill="#fed0ac"/><g fill="#664e27"><circle cx="42.3" cy="47.5" r="1.5"/><circle cx="35.5" cy="50.2" r="1.5"/><path d="m35 45.5c1-1.7 2.6-2.3 4.5-1.7.2.1.3-.2.1-.4-.7-.6-1.9-1-3-.6-1.1.4-1.7 1.5-1.9 2.5-.1.2.2.4.3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fd.svg
new file mode 100644
index 0000000..e76db7a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m44.6 33.7l6.7 3.8 6.7 6.8-3.7 2.4-5.5-5.9-5.3-2.8z"/><path d="m55.2 45l-1.9 1.7c-.7.6-.8 1.6-.2 2.3l.8 1c.4.5 1 .7 1.6.5 1.1 1.2 2.9 2.5 5.2.5.4-.3 2.5-2.2.4-4.7-3-3.8-3-3.8-5.9-1.3"/><path d="m22.6 58.8c-2 1.5-4.6 1.3-4.6 2.2s1.6.9 3.9.9c2.1 0 4.5-1.9 5.6-.9 1.1.9 2.4.9 3.9.9 1.4 0 1.3-2.1 0-2.1-1.3 0-3-2.8-3.3-4-.7-2.8-1.5-8.5-1.5-8.5s-.6 1.5 2.6-4.3c0 0 2.4-5 .8-6.7-1.8-1.8-3.7-.2-5.8 5.3-2.1 5.4-2 5.5-2 5.5s0 0 1.4 7.9c.2 1.4 1 2.4-1 3.8"/><path d="m28.6 38.9c0-2 2.4-3.6 5.3-3.6 3 0 5.3 1.6 5.3 3.6 0 2-2.4 3.6-5.3 3.6-2.9 0-5.3-1.6-5.3-3.6"/></g><g fill="#3e4347"><path d="m29.2 43c0 0 .5-.8 2.8-.8 0-.2-.1-.4-.1-.6 0-2.3 1.8-4.1 4-4.1 1.4 0 2.6.8 3.4 1.9 0 0 0 0 2.1-.7l2.9.1c0 0 2.1-2.7 3.2-5.4 0 0-6.2.5-9.9-6.2l-5-2.4-4.3 3.4c0 0-2.3 3.8-2.3 9.7 0-.1 3.2.7 3.2 5.1"/><path d="m49.6 6.5l-3.8-1.1c-.4-1.4-.2-1.8-.2-1.8 0-.9.7-1.6 1.6-1.6h8.2c-.4 2.2-3.6 4.2-5.8 4.5"/></g><path d="m45.7 5.4l3.8 1.1c0 0-1.9 5.1-2.9 8.9-.3 1.2-1.2 1.6-1.6 2.1-2.4 3.1-7.1 6.4-7.1 6.4l-4.1-4.6c0 0 3.4-3.3 7-5.2.3-.2 1.7-1.3 1.9-2.4.3-2.4 2.6-4.3 3-6.3" fill="#d6a57c"/><path d="m9.3 15.4l2.6-3c-.5-1.4-.8-1.6-.8-1.6-.5-.7-1.5-1-2.2-.5l-7 4.4c1.5 1.7 5.4 1.8 7.4.7" fill="#3e4347"/><path d="m11.9 12.4l-2.6 3c0 0 4.1 2.8 6.5 5.9.8 1 1.8 1 2.3 1.3 3.4 1.9 9 3 9 3l2-5.9c0 0-5.3-1.9-9.3-2.2-.4 0-1 0-1.8-.9-1.5-1.7-4.6-2.8-6.1-4.2" fill="#d6a57c"/><path d="m22.6 25.1c0 0 .6-4.3 4-7 0 0 4.3 1.9 5.3 1.8 1-.1 4.5-3.4 4.5-3.4s3.4 1.9 5.8 5.8l-4.6 4.9c0 0-2.6-1.3-9.3 1 0 0-2.6-.9-5.7-3.1" fill="#428bc1"/><path d="m23.1 42.5c0 0 3.7.8 4.9 3.6 0 0 .8-2.7 2.6-5.4l-4.3-3.8c0 0-1.6 2.1-3.2 5.6" fill="#3e4347"/><path d="m48.7 47.2l-1.6-1.3-16.3 6.4v2.1c2.6 6.6 5.2 8.7 12.5 6 7.3-2.9 8-6.5 5.4-13.2" fill="#594640"/><path d="m31.5 54c-.1-.4-.2-.8-.1-1 .1-.4.4-.8.4-.8s.2.8.6 1.8c2.8 5.9 2 2.8 8.7.2 6.7-2.6 8.1.2 6.2-6-.4-1-.8-1.7-.8-1.7s.5.1.8.3c.2.2.4.5.6.8.7-.1 1.5-.5.7-2.4-.4-1.1-1.2-1.9-2.7-1.4-2-3.6-8-4.1-10.3-3.2-2.3.9-6.3 5.4-5.4 9.4-1.4.6-1.4 1.7-1 2.9.9 1.7 1.7 1.6 2.3 1.1" fill="#d6a57c"/><g fill="#664e27"><circle cx="42.3" cy="47.5" r="1.5"/><circle cx="35.5" cy="50.2" r="1.5"/><path d="m35 45.5c1-1.7 2.6-2.3 4.5-1.7.2.1.3-.2.1-.4-.7-.6-1.9-1-3-.6s-1.7 1.5-1.9 2.5c-.1.2.2.4.3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fe.svg
new file mode 100644
index 0000000..83a3dd3
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m44.6 33.7l6.7 3.8 6.7 6.8-3.7 2.4-5.5-5.9-5.3-2.8z"/><path d="m55.2 45l-1.9 1.7c-.7.6-.8 1.6-.2 2.3l.8 1c.4.5 1 .7 1.6.5 1.1 1.2 2.9 2.5 5.2.5.4-.3 2.5-2.2.4-4.7-3-3.8-3-3.8-5.9-1.3"/><path d="m22.6 58.8c-2 1.5-4.6 1.3-4.6 2.2s1.6.9 3.9.9c2.1 0 4.5-1.9 5.6-.9 1.1.9 2.4.9 3.9.9 1.4 0 1.3-2.1 0-2.1-1.3 0-3-2.8-3.3-4-.7-2.8-1.5-8.5-1.5-8.5s-.6 1.5 2.6-4.3c0 0 2.4-5 .8-6.7-1.8-1.8-3.7-.2-5.8 5.3-2.1 5.4-2 5.5-2 5.5s0 0 1.4 7.9c.2 1.4 1 2.4-1 3.8"/><path d="m28.6 38.9c0-2 2.4-3.6 5.3-3.6 3 0 5.3 1.6 5.3 3.6 0 2-2.4 3.6-5.3 3.6-2.9 0-5.3-1.6-5.3-3.6"/></g><g fill="#3e4347"><path d="m29.2 43c0 0 .5-.8 2.8-.8 0-.2-.1-.4-.1-.6 0-2.3 1.8-4.1 4-4.1 1.4 0 2.6.8 3.4 1.9 0 0 0 0 2.1-.7l2.9.1c0 0 2.1-2.7 3.2-5.4 0 0-6.2.5-9.9-6.2l-5-2.4-4.3 3.4c0 0-2.3 3.8-2.3 9.7 0-.1 3.2.7 3.2 5.1"/><path d="m49.6 6.5l-3.8-1.1c-.4-1.4-.2-1.8-.2-1.8 0-.9.7-1.6 1.6-1.6h8.2c-.4 2.2-3.6 4.2-5.8 4.5"/></g><path d="m45.7 5.4l3.8 1.1c0 0-1.9 5.1-2.9 8.9-.3 1.2-1.2 1.6-1.6 2.1-2.4 3.1-7.1 6.4-7.1 6.4l-4.1-4.6c0 0 3.4-3.3 7-5.2.3-.2 1.7-1.3 1.9-2.4.3-2.4 2.6-4.3 3-6.3" fill="#b47d56"/><path d="m9.3 15.4l2.6-3c-.5-1.4-.8-1.6-.8-1.6-.5-.7-1.5-1-2.2-.5l-7 4.4c1.5 1.7 5.4 1.8 7.4.7" fill="#3e4347"/><path d="m11.9 12.4l-2.6 3c0 0 4.1 2.8 6.5 5.9.8 1 1.8 1 2.3 1.3 3.4 1.9 9 3 9 3l2-5.9c0 0-5.3-1.9-9.3-2.2-.4 0-1 0-1.8-.9-1.5-1.7-4.6-2.8-6.1-4.2" fill="#b47d56"/><path d="m22.6 25.1c0 0 .6-4.3 4-7 0 0 4.3 1.9 5.3 1.8 1-.1 4.5-3.4 4.5-3.4s3.4 1.9 5.8 5.8l-4.6 4.9c0 0-2.6-1.3-9.3 1 0 0-2.6-.9-5.7-3.1" fill="#428bc1"/><path d="m23.1 42.5c0 0 3.7.8 4.9 3.6 0 0 .8-2.7 2.6-5.4l-4.3-3.8c0 0-1.6 2.1-3.2 5.6" fill="#3e4347"/><path d="m48.7 47.2l-1.6-1.3-16.3 6.4v2.1c2.6 6.6 5.2 8.7 12.5 6 7.3-2.9 8-6.5 5.4-13.2" fill="#231f20"/><path d="m31.5 54c-.1-.4-.2-.8-.1-1 .1-.4.4-.8.4-.8s.2.8.6 1.8c2.8 5.9 2 2.8 8.7.2 6.7-2.6 8.1.2 6.2-6-.4-1-.8-1.7-.8-1.7s.5.1.8.3c.2.2.4.5.6.8.7-.1 1.5-.5.7-2.4-.4-1.1-1.2-1.9-2.7-1.4-2-3.6-8-4.1-10.3-3.2-2.3.9-6.3 5.4-5.4 9.4-1.4.6-1.4 1.7-1 2.9.9 1.7 1.7 1.6 2.3 1.1" fill="#b47d56"/><g fill="#664e27"><circle cx="42.3" cy="47.5" r="1.5"/><circle cx="35.5" cy="50.2" r="1.5"/><path d="m35 45.5c1-1.7 2.6-2.3 4.5-1.7.2.1.3-.2.1-.4-.7-.6-1.9-1-3-.6s-1.7 1.5-1.9 2.5c-.1.2.2.4.3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3ff.svg
new file mode 100644
index 0000000..347df3b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f938-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m44.6 33.7l6.7 3.8 6.7 6.8-3.7 2.4-5.5-5.9-5.3-2.8z"/><path d="m55.2 45l-1.9 1.7c-.7.6-.8 1.6-.2 2.3l.8 1c.4.5 1 .7 1.6.5 1.1 1.2 2.9 2.5 5.2.5.4-.3 2.5-2.2.4-4.7-3-3.8-3-3.8-5.9-1.3"/><path d="m22.6 58.8c-2 1.5-4.6 1.3-4.6 2.2s1.6.9 3.9.9c2.1 0 4.5-1.9 5.6-.9 1.1.9 2.4.9 3.9.9 1.4 0 1.3-2.1 0-2.1-1.3 0-3-2.8-3.3-4-.7-2.8-1.5-8.5-1.5-8.5s-.6 1.5 2.6-4.3c0 0 2.4-5 .8-6.7-1.8-1.8-3.7-.2-5.8 5.3-2.1 5.4-2 5.5-2 5.5s0 0 1.4 7.9c.2 1.4 1 2.4-1 3.8"/><path d="m28.6 38.9c0-2 2.4-3.6 5.3-3.6 3 0 5.3 1.6 5.3 3.6 0 2-2.4 3.6-5.3 3.6-2.9 0-5.3-1.6-5.3-3.6"/></g><g fill="#3e4347"><path d="m29.2 43c0 0 .5-.8 2.8-.8 0-.2-.1-.4-.1-.6 0-2.3 1.8-4.1 4-4.1 1.4 0 2.6.8 3.4 1.9 0 0 0 0 2.1-.7l2.9.1c0 0 2.1-2.7 3.2-5.4 0 0-6.2.5-9.9-6.2l-5-2.4-4.3 3.4c0 0-2.3 3.8-2.3 9.7 0-.1 3.2.7 3.2 5.1"/><path d="m49.6 6.5l-3.8-1.1c-.4-1.4-.2-1.8-.2-1.8 0-.9.7-1.6 1.6-1.6h8.2c-.4 2.2-3.6 4.2-5.8 4.5"/></g><path d="m45.7 5.4l3.8 1.1c0 0-1.9 5.1-2.9 8.9-.3 1.2-1.2 1.6-1.6 2.1-2.4 3.1-7.1 6.4-7.1 6.4l-4.1-4.6c0 0 3.4-3.3 7-5.2.3-.2 1.7-1.3 1.9-2.4.3-2.4 2.6-4.3 3-6.3" fill="#8a6859"/><path d="m9.3 15.4l2.6-3c-.5-1.4-.8-1.6-.8-1.6-.5-.7-1.5-1-2.2-.5l-7 4.4c1.5 1.7 5.4 1.8 7.4.7" fill="#3e4347"/><path d="m11.9 12.4l-2.6 3c0 0 4.1 2.8 6.5 5.9.8 1 1.8 1 2.3 1.3 3.4 1.9 9 3 9 3l2-5.9c0 0-5.3-1.9-9.3-2.2-.4 0-1 0-1.8-.9-1.5-1.7-4.6-2.8-6.1-4.2" fill="#8a6859"/><path d="m22.6 25.1c0 0 .6-4.3 4-7 0 0 4.3 1.9 5.3 1.8 1-.1 4.5-3.4 4.5-3.4s3.4 1.9 5.8 5.8l-4.6 4.9c0 0-2.6-1.3-9.3 1 0 0-2.6-.9-5.7-3.1" fill="#428bc1"/><path d="m23.1 42.5c0 0 3.7.8 4.9 3.6 0 0 .8-2.7 2.6-5.4l-4.3-3.8c0 0-1.6 2.1-3.2 5.6" fill="#3e4347"/><path d="m48.7 47.2l-1.6-1.3-16.3 6.4v2.1c2.6 6.6 5.2 8.7 12.5 6 7.3-2.9 8-6.5 5.4-13.2" fill="#231f20"/><path d="m31.5 54c-.1-.4-.2-.8-.1-1 .1-.4.4-.8.4-.8s.2.8.6 1.8c2.8 5.9 2 2.8 8.7.2 6.7-2.6 8.1.2 6.2-6-.4-1-.8-1.7-.8-1.7s.5.1.8.3c.2.2.4.5.6.8.7-.1 1.5-.5.7-2.4-.4-1.1-1.2-1.9-2.7-1.4-2-3.6-8-4.1-10.3-3.2-2.3.9-6.3 5.4-5.4 9.4-1.4.6-1.4 1.7-1 2.9.9 1.7 1.7 1.6 2.3 1.1" fill="#8a6859"/><g fill="#574137"><circle cx="42.3" cy="47.5" r="1.5"/><circle cx="35.5" cy="50.2" r="1.5"/><path d="m35 45.5c1-1.7 2.6-2.3 4.5-1.7.2.1.3-.2.1-.4-.7-.6-1.9-1-3-.6s-1.7 1.5-1.9 2.5c-.1.2.2.4.3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f938.svg b/build/js/jsxc/lib/emojione/assets/svg/1f938.svg
new file mode 100644
index 0000000..d3c2a1a
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f938.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m44.6 33.7l6.7 3.8 6.7 6.8-3.7 2.4-5.5-5.9-5.3-2.8z"/><path d="m55.2 45l-1.9 1.7c-.7.6-.8 1.6-.2 2.3l.8 1c.4.5 1 .7 1.6.5 1.1 1.2 2.9 2.5 5.2.5.4-.3 2.5-2.2.4-4.7-3-3.8-3-3.8-5.9-1.3"/><path d="m22.6 58.8c-2 1.5-4.6 1.3-4.6 2.2s1.6.9 3.9.9c2.1 0 4.5-1.9 5.6-.9 1.1.9 2.4.9 3.9.9 1.4 0 1.3-2.1 0-2.1-1.3 0-3-2.8-3.3-4-.7-2.8-1.5-8.5-1.5-8.5s-.6 1.5 2.6-4.3c0 0 2.4-5 .8-6.7-1.8-1.8-3.7-.2-5.8 5.3-2.1 5.4-2 5.5-2 5.5s0 0 1.4 7.9c.2 1.4 1 2.4-1 3.8"/><path d="m28.6 38.9c0-2 2.4-3.6 5.3-3.6 3 0 5.3 1.6 5.3 3.6 0 2-2.4 3.6-5.3 3.6-2.9 0-5.3-1.6-5.3-3.6"/></g><g fill="#3e4347"><path d="m29.2 43c0 0 .5-.8 2.8-.8 0-.2-.1-.4-.1-.6 0-2.3 1.8-4.1 4-4.1 1.4 0 2.6.8 3.4 1.9 0 0 0 0 2.1-.7l2.9.1c0 0 2.1-2.7 3.2-5.4 0 0-6.2.5-9.9-6.2l-5-2.4-4.3 3.4c0 0-2.3 3.8-2.3 9.7 0-.1 3.2.7 3.2 5.1"/><path d="m49.6 6.5l-3.8-1.1c-.4-1.4-.2-1.8-.2-1.8 0-.9.7-1.6 1.6-1.6h8.2c-.4 2.2-3.6 4.2-5.8 4.5"/></g><path d="m45.7 5.4l3.8 1.1c0 0-1.9 5.1-2.9 8.9-.3 1.2-1.2 1.6-1.6 2.1-2.4 3.1-7.1 6.4-7.1 6.4l-4.1-4.6c0 0 3.4-3.3 7-5.2.3-.2 1.7-1.3 1.9-2.4.3-2.4 2.6-4.3 3-6.3" fill="#ffdd67"/><path d="m9.3 15.4l2.6-3c-.5-1.4-.8-1.6-.8-1.6-.5-.7-1.5-1-2.2-.5l-7 4.4c1.5 1.7 5.4 1.8 7.4.7" fill="#3e4347"/><path d="m11.9 12.4l-2.6 3c0 0 4.1 2.8 6.5 5.9.8 1 1.8 1 2.3 1.3 3.4 1.9 9 3 9 3l2-5.9c0 0-5.3-1.9-9.3-2.2-.4 0-1 0-1.8-.9-1.5-1.7-4.6-2.8-6.1-4.2" fill="#ffdd67"/><path d="m22.6 25.1c0 0 .6-4.3 4-7 0 0 4.3 1.9 5.3 1.8 1-.1 4.5-3.4 4.5-3.4s3.4 1.9 5.8 5.8l-4.6 4.9c0 0-2.6-1.3-9.3 1 0 0-2.6-.9-5.7-3.1" fill="#428bc1"/><path d="m23.1 42.5c0 0 3.7.8 4.9 3.6 0 0 .8-2.7 2.6-5.4l-4.3-3.8c0 0-1.6 2.1-3.2 5.6" fill="#3e4347"/><path d="m48.7 47.2l-1.6-1.3-16.3 6.4v2.1c2.6 6.6 5.2 8.7 12.5 6 7.3-2.9 8-6.5 5.4-13.2" fill="#ffb300"/><path d="m31.5 54c-.1-.4-.2-.8-.1-1 .1-.4.4-.8.4-.8s.2.8.6 1.8c2.8 5.9 2 2.8 8.7.2 6.7-2.6 8.1.2 6.2-6-.4-1-.8-1.7-.8-1.7s.5.1.8.3c.2.2.4.5.6.8.7-.1 1.5-.5.7-2.4-.4-1.1-1.2-1.9-2.7-1.4-2-3.6-8-4.1-10.3-3.2-2.3.9-6.3 5.4-5.4 9.4-1.4.6-1.4 1.7-1 2.9.9 1.7 1.7 1.6 2.3 1.1" fill="#ffdd67"/><g fill="#937237"><circle cx="42.3" cy="47.5" r="1.5"/><circle cx="35.5" cy="50.2" r="1.5"/><path d="m35 45.5c1-1.7 2.6-2.3 4.5-1.7.2.1.3-.2.1-.4-.7-.6-1.9-1-3-.6-1.1.4-1.7 1.5-1.9 2.5-.1.2.2.4.3.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fb.svg
new file mode 100644
index 0000000..db37b39
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#42ade2"/><circle cx="6" cy="30" r="4" fill="#c28fef"/><path d="m17 10c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ed4c5c"/><path d="m62 24c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ffce31"/><circle cx="54" cy="53" r="4" fill="#83bf4f"/><path d="m57 56.1l-1.3 2.6 2.5 1.5c0 0 .8-2.4 1-3.2.3-1.4-1.4-2.3-2.2-.9" fill="#e6b796"/><g fill="#3b946f"><path d="m18 56.3c2.2 0 3-1.6 3.5-2.6 1.1-2.6 4.1-10.5 4.1-10.5h-2.7c-1.5 0-2.4.7-2.7 1.4l-2.8 7.4h-3.3l1.2 2.6c.4.6 1.2 1.7 2.7 1.7"/><path d="m50.3 61.6c-2.2 0-2.5-.8-3.1-2.7l-5.5-15.7h2.7c1.5 0 2.4.7 2.7 1.4l3.8 12.6h3.3l-1.2 2.7c-.4.6-1.2 1.7-2.7 1.7"/></g><path d="m13.2 47.6l1.3 2.6-2.5 1.5c0 0-.8-2.4-1-3.2-.3-1.5 1.4-2.3 2.2-.9" fill="#e6b796"/><g fill="#ffe1bd"><path d="m11.7 51.5v-2.6c.3-1.9 9.4-1.9 9.1 0v2.6c-.2 1.9-9.3 1.9-9.1 0"/><path d="m58.5 60v-2.6c-.3-1.9-9.4-1.9-9.1 0v2.6c.2 1.9 9.3 1.9 9.1 0"/><path d="m36 41.6v-1.7h-4.7v1.7c0 1-.7 1.7-1.6 1.7h7.9c-.9 0-1.6-.7-1.6-1.7"/><path d="m27.5 43.2h12.3v7.1h-12.3z"/></g><path d="m44.2 43.2h-5.9c-.5 2.2-2.4 3.9-4.7 3.9-2.3 0-4.2-1.7-4.7-3.9h-5.9v18.8h21.1l.1-18.8" fill="#47b892"/><path d="m20.1 26.3l1.4 2.6h24.4l1.1-2.7c0-9.8-2.3-14-13.1-14.1-11.1-.1-13.8 4.3-13.8 14.2" fill="#594640"/><path d="m45.9 26.2c-.1.6-.2 1.1-.4 1.4-.3.5-.9.8-.9.8s.2-1.1.1-2.6c-.6-9-1.1-4.7-11.1-4.7-10 0-10.5-4.3-11.1 4.7-.1 1.5.1 2.6.1 2.6s-.6-.3-.9-.8c-.2-.3-.3-.8-.4-1.4-.9-.2-2.2 0-2.2 2.7 0 1.7.6 3.1 2.7 3.2.7 5.6 8.3 9.4 11.7 9.4s10.9-3.8 11.7-9.4c2.1-.1 2.7-1.5 2.7-3.2.1-2.8-1.1-3-2-2.7" fill="#ffe1bd"/><g fill="#664e27"><circle cx="28.6" cy="27.1" r="2.1"/><circle cx="38.8" cy="27.1" r="2.1"/><path d="m37.7 34.7c0 1.5-2 2.3-4 2.3s-4-.8-4-2.3c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fc.svg
new file mode 100644
index 0000000..bb834f7
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#42ade2"/><circle cx="6" cy="30" r="4" fill="#c28fef"/><path d="m17 10c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ed4c5c"/><path d="m62 24c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ffce31"/><circle cx="54" cy="53" r="4" fill="#83bf4f"/><path d="m57 56.1l-1.3 2.6 2.5 1.5c0 0 .8-2.4 1-3.2.3-1.4-1.4-2.3-2.2-.9" fill="#e0a372"/><g fill="#3b946f"><path d="m18 56.3c2.2 0 3-1.6 3.5-2.6 1.1-2.6 4.1-10.5 4.1-10.5h-2.7c-1.5 0-2.4.7-2.7 1.4l-2.8 7.4h-3.3l1.2 2.6c.4.6 1.2 1.7 2.7 1.7"/><path d="m50.3 61.6c-2.2 0-2.5-.8-3.1-2.7l-5.5-15.7h2.7c1.5 0 2.4.7 2.7 1.4l3.8 12.6h3.3l-1.2 2.7c-.4.6-1.2 1.7-2.7 1.7"/></g><path d="m13.2 47.6l1.3 2.6-2.5 1.5c0 0-.8-2.4-1-3.2-.3-1.5 1.4-2.3 2.2-.9" fill="#e0a372"/><g fill="#fed0ac"><path d="m11.7 51.5v-2.6c.3-1.9 9.4-1.9 9.1 0v2.6c-.2 1.9-9.3 1.9-9.1 0"/><path d="m58.5 60v-2.6c-.3-1.9-9.4-1.9-9.1 0v2.6c.2 1.9 9.3 1.9 9.1 0"/><path d="m36 41.6v-1.7h-4.7v1.7c0 1-.7 1.7-1.6 1.7h7.9c-.9 0-1.6-.7-1.6-1.7"/><path d="m27.5 43.2h12.3v7.1h-12.3z"/></g><path d="m44.2 43.2h-5.9c-.5 2.2-2.4 3.9-4.7 3.9-2.3 0-4.2-1.7-4.7-3.9h-5.9v18.8h21.1l.1-18.8" fill="#47b892"/><path d="m20.1 26.3l1.4 2.6h24.4l1.1-2.7c0-9.8-2.3-14-13.1-14.1-11.1-.1-13.8 4.3-13.8 14.2" fill="#dbb471"/><path d="m45.9 26.2c-.1.6-.2 1.1-.4 1.4-.3.5-.9.8-.9.8s.2-1.1.1-2.6c-.6-9-1.1-4.7-11.1-4.7-10 0-10.5-4.3-11.1 4.7-.1 1.5.1 2.6.1 2.6s-.6-.3-.9-.8c-.2-.3-.3-.8-.4-1.4-.9-.2-2.2 0-2.2 2.7 0 1.7.6 3.1 2.7 3.2.7 5.6 8.3 9.4 11.7 9.4s10.9-3.8 11.7-9.4c2.1-.1 2.7-1.5 2.7-3.2.1-2.8-1.1-3-2-2.7" fill="#fed0ac"/><g fill="#664e27"><circle cx="28.5" cy="27.1" r="2.1"/><circle cx="38.8" cy="27.1" r="2.1"/><path d="m37.7 34.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fd.svg
new file mode 100644
index 0000000..8c2b703
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#42ade2"/><circle cx="6" cy="30" r="4" fill="#c28fef"/><path d="m17 10c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ed4c5c"/><path d="m62 24c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ffce31"/><circle cx="54" cy="53" r="4" fill="#83bf4f"/><path d="m57 56.1l-1.3 2.6 2.5 1.5c0 0 .8-2.4 1-3.2.3-1.4-1.4-2.3-2.2-.9" fill="#b58360"/><g fill="#3b946f"><path d="m18 56.3c2.2 0 3-1.6 3.5-2.6 1.1-2.6 4.1-10.5 4.1-10.5h-2.7c-1.5 0-2.4.7-2.7 1.4l-2.8 7.4h-3.3l1.2 2.6c.4.6 1.2 1.7 2.7 1.7"/><path d="m50.3 61.6c-2.2 0-2.5-.8-3.1-2.7l-5.5-15.7h2.7c1.5 0 2.4.7 2.7 1.4l3.8 12.6h3.3l-1.2 2.7c-.4.6-1.2 1.7-2.7 1.7"/></g><path d="m13.2 47.6l1.3 2.6-2.5 1.5c0 0-.8-2.4-1-3.2-.3-1.5 1.4-2.3 2.2-.9" fill="#b58360"/><g fill="#d6a57c"><path d="m11.7 51.5v-2.6c.3-1.9 9.4-1.9 9.1 0v2.6c-.2 1.9-9.3 1.9-9.1 0"/><path d="m58.5 60v-2.6c-.3-1.9-9.4-1.9-9.1 0v2.6c.2 1.9 9.3 1.9 9.1 0"/><path d="m36 41.6v-1.7h-4.7v1.7c0 1-.7 1.7-1.6 1.7h7.9c-.9 0-1.6-.7-1.6-1.7"/><path d="m27.5 43.2h12.3v7.1h-12.3z"/></g><path d="m44.2 43.2h-5.9c-.5 2.2-2.4 3.9-4.7 3.9-2.3 0-4.2-1.7-4.7-3.9h-5.9v18.8h21.1l.1-18.8" fill="#47b892"/><path d="m20.1 26.3l1.4 2.6h24.4l1.1-2.7c0-9.8-2.3-14-13.1-14.1-11.1-.1-13.8 4.3-13.8 14.2" fill="#594640"/><path d="m45.9 26.2c-.1.6-.2 1.1-.4 1.4-.3.5-.9.8-.9.8s.2-1.1.1-2.6c-.6-9-1.1-4.7-11.1-4.7-10 0-10.5-4.3-11.1 4.7-.1 1.5.1 2.6.1 2.6s-.6-.3-.9-.8c-.2-.3-.3-.8-.4-1.4-.9-.2-2.2 0-2.2 2.7 0 1.7.6 3.1 2.7 3.2.7 5.6 8.3 9.4 11.7 9.4s10.9-3.8 11.7-9.4c2.1-.1 2.7-1.5 2.7-3.2.1-2.8-1.1-3-2-2.7" fill="#d6a57c"/><g fill="#664e27"><circle cx="28.6" cy="27.1" r="2.1"/><circle cx="38.8" cy="27.1" r="2.1"/><path d="m37.7 34.7c0 1.5-2 2.3-4 2.3s-4-.8-4-2.3c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fe.svg
new file mode 100644
index 0000000..fcf0992
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#42ade2"/><circle cx="6" cy="30" r="4" fill="#c28fef"/><path d="m17 10c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ed4c5c"/><path d="m62 24c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ffce31"/><circle cx="54" cy="53" r="4" fill="#83bf4f"/><path d="m57 56.1l-1.3 2.6 2.5 1.5c0 0 .8-2.4 1-3.2.3-1.4-1.4-2.3-2.2-.9" fill="#935e3e"/><g fill="#3b946f"><path d="m18 56.3c2.2 0 3-1.6 3.5-2.6 1.1-2.6 4.1-10.5 4.1-10.5h-2.7c-1.5 0-2.4.7-2.7 1.4l-2.8 7.4h-3.3l1.2 2.6c.4.6 1.2 1.7 2.7 1.7"/><path d="m50.3 61.6c-2.2 0-2.5-.8-3.1-2.7l-5.5-15.7h2.7c1.5 0 2.4.7 2.7 1.4l3.8 12.6h3.3l-1.2 2.7c-.4.6-1.2 1.7-2.7 1.7"/></g><path d="m13.2 47.6l1.3 2.6-2.5 1.5c0 0-.8-2.4-1-3.2-.3-1.5 1.4-2.3 2.2-.9" fill="#935e3e"/><g fill="#b47d56"><path d="m11.7 51.5v-2.6c.3-1.9 9.4-1.9 9.1 0v2.6c-.2 1.9-9.3 1.9-9.1 0"/><path d="m58.5 60v-2.6c-.3-1.9-9.4-1.9-9.1 0v2.6c.2 1.9 9.3 1.9 9.1 0"/><path d="m36 41.6v-1.7h-4.7v1.7c0 1-.7 1.7-1.6 1.7h7.9c-.9 0-1.6-.7-1.6-1.7"/><path d="m27.5 43.2h12.3v7.1h-12.3z"/></g><path d="m44.2 43.2h-5.9c-.5 2.2-2.4 3.9-4.7 3.9-2.3 0-4.2-1.7-4.7-3.9h-5.9v18.8h21.1l.1-18.8" fill="#47b892"/><path d="m20.1 26.3l1.4 2.6h24.4l1.1-2.7c0-9.8-2.3-14-13.1-14.1-11.1-.1-13.8 4.3-13.8 14.2" fill="#231f20"/><path d="m45.9 26.2c-.1.6-.2 1.1-.4 1.4-.3.5-.9.8-.9.8s.2-1.1.1-2.6c-.6-9-1.1-4.7-11.1-4.7-10 0-10.5-4.3-11.1 4.7-.1 1.5.1 2.6.1 2.6s-.6-.3-.9-.8c-.2-.3-.3-.8-.4-1.4-.9-.2-2.2 0-2.2 2.7 0 1.7.6 3.1 2.7 3.2.7 5.6 8.3 9.4 11.7 9.4s10.9-3.8 11.7-9.4c2.1-.1 2.7-1.5 2.7-3.2.1-2.8-1.1-3-2-2.7" fill="#b47d56"/><g fill="#664e27"><circle cx="28.6" cy="27.1" r="2.1"/><circle cx="38.8" cy="27.1" r="2.1"/><path d="m37.7 34.7c0 1.5-2 2.3-4 2.3s-4-.8-4-2.3c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3ff.svg
new file mode 100644
index 0000000..b1d6168
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f939-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#42ade2"/><circle cx="6" cy="30" r="4" fill="#c28fef"/><path d="m17 10c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ed4c5c"/><path d="m62 24c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ffce31"/><circle cx="54" cy="53" r="4" fill="#83bf4f"/><path d="m57 56.1l-1.3 2.6 2.5 1.5c0 0 .8-2.4 1-3.2.3-1.4-1.4-2.3-2.2-.9" fill="#705041"/><g fill="#3b946f"><path d="m18 56.3c2.2 0 3-1.6 3.5-2.6 1.1-2.6 4.1-10.5 4.1-10.5h-2.7c-1.5 0-2.4.7-2.7 1.4l-2.8 7.4h-3.3l1.2 2.6c.4.6 1.2 1.7 2.7 1.7"/><path d="m50.3 61.6c-2.2 0-2.5-.8-3.1-2.7l-5.5-15.7h2.7c1.5 0 2.4.7 2.7 1.4l3.8 12.6h3.3l-1.2 2.7c-.4.6-1.2 1.7-2.7 1.7"/></g><path d="m13.2 47.6l1.3 2.6-2.5 1.5c0 0-.8-2.4-1-3.2-.3-1.5 1.4-2.3 2.2-.9" fill="#705041"/><g fill="#8a6859"><path d="m11.7 51.5v-2.6c.3-1.9 9.4-1.9 9.1 0v2.6c-.2 1.9-9.3 1.9-9.1 0"/><path d="m58.5 60v-2.6c-.3-1.9-9.4-1.9-9.1 0v2.6c.2 1.9 9.3 1.9 9.1 0"/><path d="m36 41.6v-1.7h-4.7v1.7c0 1-.7 1.7-1.6 1.7h7.9c-.9 0-1.6-.7-1.6-1.7"/><path d="m27.5 43.2h12.3v7.1h-12.3z"/></g><path d="m44.2 43.2h-5.9c-.5 2.2-2.4 3.9-4.7 3.9-2.3 0-4.2-1.7-4.7-3.9h-5.9v18.8h21.1l.1-18.8" fill="#47b892"/><path d="m20.1 26.3l1.4 2.6h24.4l1.1-2.7c0-9.8-2.3-14-13.1-14.1-11.1-.1-13.8 4.3-13.8 14.2" fill="#231f20"/><path d="m45.9 26.2c-.1.6-.2 1.1-.4 1.4-.3.5-.9.8-.9.8s.2-1.1.1-2.6c-.6-9-1.1-4.7-11.1-4.7-10 0-10.5-4.3-11.1 4.7-.1 1.5.1 2.6.1 2.6s-.6-.3-.9-.8c-.2-.3-.3-.8-.4-1.4-.9-.2-2.2 0-2.2 2.7 0 1.7.6 3.1 2.7 3.2.7 5.6 8.3 9.4 11.7 9.4s10.9-3.8 11.7-9.4c2.1-.1 2.7-1.5 2.7-3.2.1-2.8-1.1-3-2-2.7" fill="#8a6859"/><g fill="#574137"><circle cx="28.6" cy="27.1" r="2.1"/><circle cx="38.8" cy="27.1" r="2.1"/><path d="m37.7 34.7c0 1.5-2 2.3-4 2.3s-4-.8-4-2.3c0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f939.svg b/build/js/jsxc/lib/emojione/assets/svg/1f939.svg
new file mode 100644
index 0000000..3859ff2
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f939.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m48 6c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#42ade2"/><circle cx="6" cy="30" r="4" fill="#c28fef"/><path d="m17 10c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ed4c5c"/><path d="m62 24c0 2.2-1.8 4-4 4-2.2 0-4-1.8-4-4 0-2.2 1.8-4 4-4 2.2 0 4 1.8 4 4" fill="#ffce31"/><circle cx="54" cy="53" r="4" fill="#83bf4f"/><path d="m57 56.1l-1.3 2.6 2.5 1.5c0 0 .8-2.4 1-3.2.3-1.4-1.4-2.3-2.2-.9" fill="#eba352"/><g fill="#3b946f"><path d="m18 56.3c2.2 0 3-1.6 3.5-2.6 1.1-2.6 4.1-10.5 4.1-10.5h-2.7c-1.5 0-2.4.7-2.7 1.4l-2.8 7.4h-3.3l1.2 2.6c.4.6 1.2 1.7 2.7 1.7"/><path d="m50.3 61.6c-2.2 0-2.5-.8-3.1-2.7l-5.5-15.7h2.7c1.5 0 2.4.7 2.7 1.4l3.8 12.6h3.3l-1.2 2.7c-.4.6-1.2 1.7-2.7 1.7"/></g><path d="m13.2 47.6l1.3 2.6-2.5 1.5c0 0-.8-2.4-1-3.2-.3-1.5 1.4-2.3 2.2-.9" fill="#eba352"/><g fill="#ffdd67"><path d="m11.7 51.5v-2.6c.3-1.9 9.4-1.9 9.1 0v2.6c-.2 1.9-9.3 1.9-9.1 0"/><path d="m58.5 60v-2.6c-.3-1.9-9.4-1.9-9.1 0v2.6c.2 1.9 9.3 1.9 9.1 0"/><path d="m36 41.6v-1.7h-4.7v1.7c0 1-.7 1.7-1.6 1.7h7.9c-.9 0-1.6-.7-1.6-1.7"/><path d="m27.5 43.2h12.3v7.1h-12.3z"/></g><path d="m44.2 43.2h-5.9c-.5 2.2-2.4 3.9-4.7 3.9-2.3 0-4.2-1.7-4.7-3.9h-5.9v18.8h21.1l.1-18.8" fill="#47b892"/><path d="m20.1 26.3l1.4 2.6h24.4l1.1-2.7c0-9.8-2.3-14-13.1-14.1-11.1-.1-13.8 4.3-13.8 14.2" fill="#ffb300"/><path d="m45.9 26.2c-.1.6-.2 1.1-.4 1.4-.3.5-.9.8-.9.8s.2-1.1.1-2.6c-.6-9-1.1-4.7-11.1-4.7-10 0-10.5-4.3-11.1 4.7-.1 1.5.1 2.6.1 2.6s-.6-.3-.9-.8c-.2-.3-.3-.8-.4-1.4-.9-.2-2.2 0-2.2 2.7 0 1.7.6 3.1 2.7 3.2.7 5.6 8.3 9.4 11.7 9.4s10.9-3.8 11.7-9.4c2.1-.1 2.7-1.5 2.7-3.2.1-2.8-1.1-3-2-2.7" fill="#ffdd67"/><g fill="#937237"><circle cx="28.5" cy="27.1" r="2.1"/><circle cx="38.8" cy="27.1" r="2.1"/><path d="m37.7 34.7c0 1.5-2 2.3-4 2.3-2 0-4-.8-4-2.3 0 0 0-.4.4-.4 1.8 0 5.4 0 7.2 0 .4 0 .4.4.4.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93a.svg
new file mode 100644
index 0000000..f566e06
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m25.7 25.6c0 0 5.5 1.8 5.5 6 2.9 0 .4-6-5.5-6" fill="#838e96"/><path d="m27 35.6c0 0-1.9-.8-4-3l5-4.7c2 2 2.9 3.8 2.9 3.8l-3.9 3.9" fill="#ffdd67"/><path d="m28.1 28c0 0-.5 2.2-2.2 3.9-1.4 1.4-.5 2.8-.5 2.8s-2-1.2-2.6-2.2c.1 0 4.3-4.4 5.3-4.5" fill="#eba352"/><path d="m21.8 26.4c-1.9 1.8-1.5 5.2-.4 6.3 1.1 1.2 2.6-.3 4.5-2.1 1.9-1.8 3.3-3.3 2.2-4.5-1.2-1.2-4.5-1.5-6.3.3" fill="#e8e8e8"/><path d="m24.8 25.1c-.4.5-1.1 1.7 0 1.8 1.5.2 3.9.4 2.1 2.6-.3.3-.7.7-1 1-1.9 1.8-3.4 3.3-4.5 2.1-1.1-1.2-1.5-4.5.4-6.3.8-.7 1.9-1.1 3-1.2" fill="#b2c1c0"/><path d="m24.2 27.3l-22.2-20.8 21.9 21.9c.4-.4.5-.9.3-1.1" fill="#838e96"/><path d="m22.6 28.8l-20.6-22.3 21.9 21.9c-.5.4-1.1.6-1.3.4" fill="#3e4347"/><path d="m22.8 32.5c0 .2-.7.4-1.1 0-1.7-1.6-.7-4.5-.7-4.5s-.4 2.8 1.1 4.2c.2.2.7.2.7.3" fill="#fff"/><g fill="#e8e8e8"><path d="m30.5 30.8c4.3 3.2 5.8 2.5 7.5 4.1 2.1-4.5 5.4-6.3 5.4-6.3 1-5 5.6-5.6 5.6-5.6l-1.6 11.7c0 0-5.3 7-9.9 7-1.2 0-11.9-6.4-11.9-6.4 4.2-1.4 4.9-4.5 4.9-4.5"/><path d="m58.8 23.6c0 0-.1-2 1.7-5 2-3.4 4.3-16-8.4-16v21h6.7"/></g><path d="m45.1 12.3c0 5.7 3.6 10.3 6.4 10.3 2.8 0 5.1-4.6 5.1-10.3 0-5.7-2.1-10.3-5-10.3-2.8 0-6.5 4.6-6.5 10.3" fill="#b2c1c0"/><path d="m44.5 12.3c0 5 2.9 9 5.1 9s3.8-4 3.8-9c0-5-1.7-9-3.8-9s-5.1 4-5.1 9" fill="#3e4347"/><g fill="#b2c1c0"><path d="m50 11.8l1.3 1.8-1.3 1.8-1.2-1.8z"/><path d="m50.3 18.3l-.9 1.3-.9-1.3.9-1.2z"/><path d="m47.1 16l-.7.9-.6-.9.6-.9z"/><path d="m48.2 16l-.7-.9.7-.9.6.9z"/><path d="m50.9 9.9l-.6.9-.6-.9.6-.9z"/><path d="m50 6.6l.7-1 .6 1-.6.9z"/><path d="m48.2 5l.6-1 .6 1-.6.9z"/><path d="m51.8 11.4l.6.9-.6.9-.7-.9z"/><path d="m51.9 17.2l-.6.9-.6-.9.6-.9z"/><path d="m46.9 12l.6-.9.7.9-.7.9z"/><path d="m46.8 9.9l-.4-.7.4-.6.5.6z"/><path d="m46.7 6.3l.5-.7.4.7-.4.6z"/><path d="m45.4 13.5l.4-.6.5.6-.5.7z"/><path d="m47.7 18.3l-.4.7-.5-.7.5-.6z"/><path d="m47.4 8.3l.9-1.4 1 1.4-1 1.3z"/></g><path d="m53.9 62h-11.8c0 0 .8-5.6 6.9-13 0 0 7.4-14.1 7.4-28.3 0 0 3.7.6 5.6 2.7v38.2c-1.7-1.6-3-3.6-3-3.6l-2.1-.2c-.1-.1-.8 2-3 4.2" fill="#e8e8e8"/><path d="m46.4 23.6c3.6-3.8 12.1-.6 13.9.8 0 0-1.6 9.2 1.7 20.7v6.8c-1.4 1-3.3 4.1-3 6.2-.7 0-1.4 0-2.1-.2-5.2-4.5-8-8.8-8-8.8-4.6-11.5-6.1-21.7-2.5-25.5" fill="#b2c1c0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fb.svg
new file mode 100644
index 0000000..107ff26
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e6b796"><path d="m44.4 9.3c-3 3.7-4.3 7.1-12.2 11.6-2.8 1.6-3.2 5-4.3 4.8-6.3-1.3-20.4-2.7-20.4-2.7l-1.5 8.2c-.8 11.3 18.5 7.4 22.9 5.4 2.7-1.2 4.5-1.4 5.8-3.7 1.2-2.2 3.3.5 15.3-19.9l-5.6-3.7"/><path d="m46.2 31.5l9.2-7.6 3 11.6-9.3 2.7z"/></g><path d="m50.5 7.1l-14.8 8.9c-.9 4.2.9 5.8 1.2 7.4.2.7-.8 2.4-1.4 3.3-1.2 2 1.8 2.4 2.7 1.9 1 1.4.7 2.2 1.5 1.6.7-.5 2.1 2.3 1.9 3.1l10.8-1.5-1.9-24.7" fill="#ffe1bd"/><path d="m43 2.9c12-3.3 16.4 7.3 16.7 15.4.2 4.3-2.8 8.4-4.8 10.1l-9.3-16.8c-1.9-.3-8.4 5.4-9.9 4.4-4-2.7.2-11.1 7.3-13.1" fill="#594640"/><path d="m41.6 3.9l6.1 12c-.3 1-.8 2.4-.5 4.2 2.1 12.4 4.8 7.9 8.4 2.6 1-1.5 1.5-3.7 1.5-4.8l2.9-1.1c1-.4.2-3.5-.8-3l-3.2 1.2c-.8-.9-5.3-1.9-6.4-1.4l-5.6-11c-.6-1.3-3-.4-2.4 1.3" fill="#ed4c5c"/><path d="m12.8 6l14.7 10c.9 4.2-.9 5.8-1.2 7.4-.2.7.8 2.4 1.4 3.3 1.2 2-1.8 2.4-2.7 1.9-1 1.4-.7 2.2-1.5 1.6-.7-.5-2.3 2.4-1.9 3.1.4.6-.4.8-1.2.2-.9 3.4-2.8 2.7-6.9 1.2-8.6-3.2-.7-28.7-.7-28.7" fill="#ffe1bd"/><path d="m20.1 2.9c-11.9-3.3-16.3 7.3-16.6 15.4-.2 4.3 1.1 7.4 3.2 9.2l1.4-.5 9.5-15.3c1.9-.3 8.5 5.4 9.9 4.4 3.9-2.8-.2-11.2-7.4-13.2" fill="#594640"/><path d="m19.1 2.6l-5.6 11c-1.1-.5-5.5.5-6.4 1.4l-3.1-1.2c-.9-.4-1.8 2.6-.8 3l2.9 1.1c.1 1.1.5 3.3 1.5 4.8 3.6 5.3 6.3 9.9 8.4-2.6.3-1.8-.2-3.2-.5-4.2l6-12.1c.7-1.3-1.6-2.4-2.4-1.2" fill="#42ade2"/><path d="m15.6 34.8l-1.8-10.6c-.2-1.4-2.9-.9-2.6.5l1.8 10.6 2.6-.5" fill="#e8e8e8"/><path d="m17.4 62c0 0 3.6-8 3.6-13.6 0-8.3-6.1-10.9-10.4-12.3-4.1-1.3-4.6-5-4.6-5-1 0-6.2 6.8-3 16.8 2.5 7.9-.4 14-.4 14h14.8z" fill="#42ade2"/><path d="m4.8 62h6.5c0 0 4.9-4.8 4.9-13.3 0-12.2-8.2-12.9-10.7-10.4-3.1 3.4-1.4 6.7.3 13.5 1 4-1 10.2-1 10.2" fill="#e6b796"/><path d="m46.5 62c0 0-3.6-8-3.6-13.6 0-8.3 6.1-10.9 10.4-12.3 4.1-1.3 4.6-5 4.6-5 1 0 6.2 6.8 3 16.8-2.5 7.9.4 14 .4 14h-14.8z" fill="#ed4c5c"/><path d="m59.1 62h-6.5c0 0-4.9-4.8-4.9-13.3 0-12.2 8.2-12.9 10.7-10.4 3.2 3.4 1.5 6.7-.2 13.5-1 4 .9 10.2.9 10.2" fill="#e6b796"/><path d="m41.7 32.9c0 0 3.7-1.9 7.3-4.8.5-.4.6-3.8 4.2-6.1 2.1-1.3 3.2.3 4-.1.9-.4 2.3 0 2.3 0l-6.3 10.7-11.5.3" opacity=".3" fill="#3e4347"/><path d="m60.8 23.1c-1.5-3-4.9.1-4.9.1s-.9-2.2-3.2-.3c-2.7 2.2-2.1 4.7-3.3 5.9-2.7 2-5.6 3.9-12.3 5.3-3.2.6-4.5 3.7-5.5 3.2-5.6-3.3-10.6 1.6-15.4 0-10.1-3.5-12.9 1.6-12.7 6.9.2 3.8 4.8 5.8 8.3 6.6 8.3 2.1 14.1-2.6 18.9-3.1 2.9-.3 3.5.4 5.4-1.4 1.7-1.7 2.9 1.2 17.8-11.8 0 0 2.1.2 6.5-3.5 2-1.7 2.2-4.3.4-7.9" fill="#ffe1bd"/><path d="m25.1 43c0 0 4.9.7 7.6-6-4.6 5.6-7.6 6-7.6 6" fill="#e6b796"/><path d="m32.3 47.6c0 0-6.5-2-12.7-8.7-1.1-1.2-.7-3.4-3.6-5.4l-3.1.3c-.6-.6-2.7-3.2-4.6-1.2-1.8 1.8-2.6 6.6-1.2 8.4.8 1 7 5 7.4 5.5 4.7 5.7 5.3 9.4 5.3 9.4s.8-2.2 1.2-5.1l11.3-3.2" opacity=".3" fill="#3e4347"/><path d="m60.9 41.9c-2.3-5.8-7.9-7.3-13.2-.3-3.1 4.1-9.7 2.4-13.2 7.7-2.2-3.4-7.3-2-15.4-9.6 0 0-.2-4.1-3.1-6.2-2-1.5-3.1.3-3.1.3s-3.4-3.1-4.9-.1c-1.8 3.6-1.9 6.5.5 7.9 4.1 2.5 6.5 2.8 6.5 2.8 12.8 14.5 13.8 12.1 15.5 13.4 2.9 2.5 3.8 2.1 9.6.4 4.6-1.3 11.6-1.1 17.9-7.2 2.4-2.6 4.3-5.6 2.9-9.1" fill="#ffe1bd"/><g fill="#e6b796"><path d="m46.9 42.7c0 0 6.3 5.3 10.3 4.2-3.7 2-8.3-.6-10.3-4.2"/><path d="m44 50.1c0 0-3.5 3.6-9.5-.1 6.9 1.7 9.5.1 9.5.1"/></g><g fill="#664e27"><path d="m40.9 22.3c.3 1.1-.1 2.2-.9 2.4-.8.2-1.2-.6-1.6-1.7-.3-1.2 2.2-1.8 2.5-.7"/><path d="m22.7 22.3c-.3 1.1.1 2.2.9 2.4.8.2 1.2-.6 1.6-1.7.2-1.2-2.2-1.8-2.5-.7"/><path d="m22.3 29.8c0 0-1.5 1.7-1.4 2.9 0 0-1.8-1.4-1.2-2.4.5-1 2.6-.5 2.6-.5"/><path d="m40.8 29.8c0 0 1.5 1.7 1.4 2.9 0 0 1.8-1.4 1.2-2.4-.4-1-2.6-.5-2.6-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fc.svg
new file mode 100644
index 0000000..e417df2
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e0a372"><path d="m44.4 9.3c-3 3.7-4.3 7.1-12.2 11.6-2.8 1.6-3.2 5-4.3 4.8-6.3-1.3-20.4-2.7-20.4-2.7l-1.5 8.2c-.8 11.3 18.5 7.4 22.9 5.4 2.7-1.2 4.5-1.4 5.8-3.7 1.2-2.2 3.3.5 15.3-19.9l-5.6-3.7"/><path d="m46.2 31.5l9.2-7.6 3 11.6-9.3 2.7z"/></g><path d="m50.5 7.1l-14.8 8.9c-.9 4.2.9 5.8 1.2 7.4.2.7-.8 2.4-1.4 3.3-1.2 2 1.8 2.4 2.7 1.9 1 1.4.7 2.2 1.5 1.6.7-.5 2.1 2.3 1.9 3.1l10.8-1.5-1.9-24.7" fill="#fed0ac"/><path d="m43 2.9c12-3.3 16.4 7.3 16.7 15.4.2 4.3-2.8 8.4-4.8 10.1l-9.3-16.8c-1.9-.3-8.4 5.4-9.9 4.4-4-2.7.2-11.1 7.3-13.1" fill="#dbb471"/><path d="m41.6 3.9l6.1 12c-.3 1-.8 2.4-.5 4.2 2.1 12.4 4.8 7.9 8.4 2.6 1-1.5 1.5-3.7 1.5-4.8l2.9-1.1c1-.4.2-3.5-.8-3l-3.2 1.2c-.8-.9-5.3-1.9-6.4-1.4l-5.6-11c-.6-1.3-3-.4-2.4 1.3" fill="#ed4c5c"/><path d="m12.8 6l14.7 10c.9 4.2-.9 5.8-1.2 7.4-.2.7.8 2.4 1.4 3.3 1.2 2-1.8 2.4-2.7 1.9-1 1.4-.7 2.2-1.5 1.6-.7-.5-2.3 2.4-1.9 3.1.4.6-.4.8-1.2.2-.9 3.4-2.8 2.7-6.9 1.2-8.6-3.2-.7-28.7-.7-28.7" fill="#fed0ac"/><path d="m20.1 2.9c-11.9-3.3-16.3 7.3-16.6 15.4-.2 4.3 1.1 7.4 3.2 9.2l1.4-.5 9.5-15.3c1.9-.3 8.5 5.4 9.9 4.4 3.9-2.8-.2-11.2-7.4-13.2" fill="#dbb471"/><path d="m19.1 2.6l-5.6 11c-1.1-.5-5.5.5-6.4 1.4l-3.1-1.2c-.9-.4-1.8 2.6-.8 3l2.9 1.1c.1 1.1.5 3.3 1.5 4.8 3.6 5.3 6.3 9.9 8.4-2.6.3-1.8-.2-3.2-.5-4.2l6-12.1c.7-1.3-1.6-2.4-2.4-1.2" fill="#42ade2"/><path d="m15.6 34.8l-1.8-10.6c-.2-1.4-2.9-.9-2.6.5l1.8 10.6 2.6-.5" fill="#e8e8e8"/><path d="m17.4 62c0 0 3.6-8 3.6-13.6 0-8.3-6.1-10.9-10.4-12.3-4.1-1.3-4.6-5-4.6-5-1 0-6.2 6.8-3 16.8 2.5 7.9-.4 14-.4 14h14.8z" fill="#42ade2"/><path d="m4.8 62h6.5c0 0 4.9-4.8 4.9-13.3 0-12.2-8.2-12.9-10.7-10.4-3.1 3.4-1.4 6.7.3 13.5 1 4-1 10.2-1 10.2" fill="#e0a372"/><path d="m46.5 62c0 0-3.6-8-3.6-13.6 0-8.3 6.1-10.9 10.4-12.3 4.1-1.3 4.6-5 4.6-5 1 0 6.2 6.8 3 16.8-2.5 7.9.4 14 .4 14h-14.8z" fill="#ed4c5c"/><path d="m59.1 62h-6.5c0 0-4.9-4.8-4.9-13.3 0-12.2 8.2-12.9 10.7-10.4 3.2 3.4 1.5 6.7-.2 13.5-1 4 .9 10.2.9 10.2" fill="#e0a372"/><path d="m41.7 32.9c0 0 3.7-1.9 7.3-4.8.5-.4.6-3.8 4.2-6.1 2.1-1.3 3.2.3 4-.1.9-.4 2.3 0 2.3 0l-6.3 10.7-11.5.3" opacity=".3" fill="#3e4347"/><path d="m60.8 23.1c-1.5-3-4.9.1-4.9.1s-.9-2.2-3.2-.3c-2.7 2.2-2.1 4.7-3.3 5.9-2.7 2-5.6 3.9-12.3 5.3-3.2.6-4.5 3.7-5.5 3.2-5.6-3.3-10.6 1.6-15.4 0-10.1-3.5-12.9 1.6-12.7 6.9.2 3.8 4.8 5.8 8.3 6.6 8.3 2.1 14.1-2.6 18.9-3.1 2.9-.3 3.5.4 5.4-1.4 1.7-1.7 2.9 1.2 17.8-11.8 0 0 2.1.2 6.5-3.5 2-1.7 2.2-4.3.4-7.9" fill="#fed0ac"/><path d="m25.1 43c0 0 4.9.7 7.6-6-4.6 5.6-7.6 6-7.6 6" fill="#e0a372"/><path d="m32.3 47.6c0 0-6.5-2-12.7-8.7-1.1-1.2-.7-3.4-3.6-5.4l-3.1.3c-.6-.6-2.7-3.2-4.6-1.2-1.8 1.8-2.6 6.6-1.2 8.4.8 1 7 5 7.4 5.5 4.7 5.7 5.3 9.4 5.3 9.4s.8-2.2 1.2-5.1l11.3-3.2" opacity=".3" fill="#3e4347"/><path d="m60.9 41.9c-2.3-5.8-7.9-7.3-13.2-.3-3.1 4.1-9.7 2.4-13.2 7.7-2.2-3.4-7.3-2-15.4-9.6 0 0-.2-4.1-3.1-6.2-2-1.5-3.1.3-3.1.3s-3.4-3.1-4.9-.1c-1.8 3.6-1.9 6.5.5 7.9 4.1 2.5 6.5 2.8 6.5 2.8 12.8 14.5 13.8 12.1 15.5 13.4 2.9 2.5 3.8 2.1 9.6.4 4.6-1.3 11.6-1.1 17.9-7.2 2.4-2.6 4.3-5.6 2.9-9.1" fill="#fed0ac"/><g fill="#e0a372"><path d="m46.9 42.7c0 0 6.3 5.3 10.3 4.2-3.7 2-8.3-.6-10.3-4.2"/><path d="m44 50.1c0 0-3.5 3.6-9.5-.1 6.9 1.7 9.5.1 9.5.1"/></g><g fill="#664e27"><path d="m40.9 22.3c.3 1.1-.1 2.2-.9 2.4-.8.2-1.2-.6-1.6-1.7-.3-1.2 2.2-1.8 2.5-.7"/><path d="m22.7 22.3c-.3 1.1.1 2.2.9 2.4.8.2 1.2-.6 1.6-1.7.2-1.2-2.2-1.8-2.5-.7"/><path d="m22.3 29.8c0 0-1.5 1.7-1.4 2.9 0 0-1.8-1.4-1.2-2.4.5-1 2.6-.5 2.6-.5"/><path d="m40.8 29.8c0 0 1.5 1.7 1.4 2.9 0 0 1.8-1.4 1.2-2.4-.4-1-2.6-.5-2.6-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fd.svg
new file mode 100644
index 0000000..5b897f9
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b58360"><path d="m44.4 9.3c-3 3.7-4.3 7.1-12.2 11.6-2.8 1.6-3.2 5-4.3 4.8-6.3-1.3-20.4-2.7-20.4-2.7l-1.5 8.2c-.8 11.3 18.5 7.4 22.9 5.4 2.7-1.2 4.5-1.4 5.8-3.7 1.2-2.2 3.3.5 15.3-19.9l-5.6-3.7"/><path d="m46.2 31.5l9.2-7.6 3 11.6-9.3 2.7z"/></g><path d="m50.5 7.1l-14.9 8.9c-.9 4.2.9 5.8 1.2 7.4.2.7-.8 2.4-1.4 3.3-1.2 2 1.8 2.4 2.7 1.9 1 1.4.7 2.2 1.5 1.6.7-.5 2.1 2.3 1.9 3.1l10.8-1.5-1.8-24.7" fill="#d6a57c"/><path d="m43 2.9c12-3.3 16.4 7.3 16.7 15.4.2 4.3-2.8 8.4-4.8 10.1l-9.3-16.8c-1.9-.3-8.4 5.4-9.9 4.4-4-2.7.2-11.1 7.3-13.1" fill="#594640"/><path d="m41.6 3.9l6.1 12c-.3 1-.8 2.4-.5 4.2 2.1 12.4 4.8 7.9 8.4 2.6 1-1.5 1.5-3.7 1.5-4.8l2.9-1.1c1-.4.2-3.5-.8-3l-3.2 1.2c-.8-.9-5.3-1.9-6.4-1.4l-5.6-11c-.6-1.3-3-.4-2.4 1.3" fill="#ed4c5c"/><path d="m12.8 6l14.7 10c.9 4.2-.9 5.8-1.2 7.4-.2.7.8 2.4 1.4 3.3 1.2 2-1.8 2.4-2.7 1.9-1 1.4-.7 2.2-1.5 1.6-.7-.5-2.3 2.4-1.9 3.1.4.6-.4.8-1.2.2-.9 3.4-2.8 2.7-6.9 1.2-8.6-3.2-.7-28.7-.7-28.7" fill="#d6a57c"/><path d="m20.1 2.9c-11.9-3.3-16.3 7.3-16.6 15.4-.2 4.3 1.1 7.4 3.2 9.2l1.4-.5 9.5-15.3c1.9-.3 8.5 5.4 9.9 4.4 3.9-2.8-.2-11.2-7.4-13.2" fill="#594640"/><path d="m19.1 2.6l-5.6 11c-1.1-.5-5.5.5-6.4 1.4l-3.1-1.2c-.9-.4-1.8 2.6-.8 3l2.9 1.1c.1 1.1.5 3.3 1.5 4.8 3.6 5.3 6.3 9.9 8.4-2.6.3-1.8-.2-3.2-.5-4.2l6-12.1c.7-1.3-1.6-2.4-2.4-1.2" fill="#42ade2"/><path d="m15.6 34.8l-1.8-10.6c-.2-1.4-2.9-.9-2.6.5l1.8 10.6 2.6-.5" fill="#e8e8e8"/><path d="m17.4 62c0 0 3.6-8 3.6-13.6 0-8.3-6.1-10.9-10.4-12.3-4.1-1.3-4.6-5-4.6-5-1 0-6.2 6.8-3 16.8 2.5 7.9-.4 14-.4 14h14.8z" fill="#42ade2"/><path d="m4.8 62h6.5c0 0 4.9-4.8 4.9-13.3 0-12.2-8.2-12.9-10.7-10.4-3.1 3.4-1.4 6.7.3 13.5 1 4-1 10.2-1 10.2" fill="#b58360"/><path d="m46.5 62c0 0-3.6-8-3.6-13.6 0-8.3 6.1-10.9 10.4-12.3 4.1-1.3 4.6-5 4.6-5 1 0 6.2 6.8 3 16.8-2.5 7.9.4 14 .4 14h-14.8z" fill="#ed4c5c"/><path d="m59.1 62h-6.5c0 0-4.9-4.8-4.9-13.3 0-12.2 8.2-12.9 10.7-10.4 3.2 3.4 1.5 6.7-.2 13.5-1 4 .9 10.2.9 10.2" fill="#b58360"/><path d="m41.7 32.9c0 0 3.7-1.9 7.3-4.8.5-.4.6-3.8 4.2-6.1 2.1-1.3 3.2.3 4-.1.9-.4 2.3 0 2.3 0l-6.3 10.7-11.5.3" opacity=".3" fill="#3e4347"/><path d="m60.7 23.1c-1.5-3-4.9.1-4.9.1s-.8-2.2-3.1-.3c-2.7 2.2-2.1 4.7-3.3 5.9-2.7 2-5.6 3.9-12.3 5.3-3.2.6-4.5 3.7-5.5 3.2-5.6-3.3-10.6 1.6-15.4 0-10.1-3.5-12.9 1.6-12.7 6.9.2 3.8 4.8 5.8 8.3 6.6 8.3 2.1 14.1-2.6 18.9-3.1 2.9-.3 3.5.4 5.4-1.4 1.7-1.7 2.9 1.2 17.8-11.8 0 0 2.1.2 6.5-3.5 2-1.7 2.2-4.3.3-7.9" fill="#d6a57c"/><path d="m25.1 43c0 0 4.9.7 7.6-6-4.6 5.6-7.6 6-7.6 6" fill="#b58360"/><path d="m32.3 47.6c0 0-6.5-2-12.7-8.7-1.1-1.2-.7-3.4-3.6-5.4l-3.1.3c-.6-.6-2.7-3.2-4.6-1.2-1.8 1.8-2.6 6.6-1.2 8.4.8 1 7 5 7.4 5.5 4.7 5.7 5.3 9.4 5.3 9.4s.8-2.2 1.2-5.1l11.3-3.2" opacity=".3" fill="#3e4347"/><path d="m60.9 41.9c-2.3-5.8-7.9-7.3-13.2-.3-3.1 4.1-9.7 2.4-13.2 7.7-2.2-3.4-7.3-2-15.4-9.6 0 0-.2-4.1-3.1-6.2-2-1.5-3.1.3-3.1.3s-3.4-3.1-4.9-.1c-1.8 3.6-1.9 6.5.5 7.9 4.1 2.5 6.5 2.8 6.5 2.8 12.8 14.5 13.8 12.1 15.5 13.4 2.9 2.5 3.8 2.1 9.6.4 4.6-1.3 11.6-1.1 17.9-7.2 2.4-2.6 4.3-5.6 2.9-9.1" fill="#d6a57c"/><g fill="#b58360"><path d="m46.9 42.7c0 0 6.3 5.3 10.3 4.2-3.7 2-8.3-.6-10.3-4.2"/><path d="m44 50.1c0 0-3.5 3.6-9.5-.1 6.9 1.7 9.5.1 9.5.1"/></g><g fill="#664e27"><path d="m40.9 22.3c.3 1.1-.1 2.2-.9 2.4-.8.2-1.2-.6-1.6-1.7-.3-1.2 2.2-1.8 2.5-.7"/><path d="m22.7 22.3c-.3 1.1.1 2.2.9 2.4.8.2 1.2-.6 1.6-1.7.2-1.2-2.2-1.8-2.5-.7"/><path d="m22.3 29.8c0 0-1.5 1.7-1.4 2.9 0 0-1.8-1.4-1.2-2.4.5-1 2.6-.5 2.6-.5"/><path d="m40.8 29.8c0 0 1.5 1.7 1.4 2.9 0 0 1.8-1.4 1.2-2.4-.4-1-2.6-.5-2.6-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fe.svg
new file mode 100644
index 0000000..7f34250
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#935e3e"><path d="m44.4 9.3c-3 3.7-4.3 7.1-12.2 11.6-2.8 1.6-3.2 5-4.3 4.8-6.3-1.3-20.4-2.7-20.4-2.7l-1.5 8.2c-.8 11.3 18.5 7.4 22.9 5.4 2.7-1.2 4.5-1.4 5.8-3.7 1.2-2.2 3.3.5 15.3-19.9l-5.6-3.7"/><path d="m46.2 31.5l9.2-7.6 3 11.6-9.3 2.7z"/></g><path d="m50.5 7.1l-14.9 8.9c-.9 4.2.9 5.8 1.2 7.4.2.7-.8 2.4-1.4 3.3-1.2 2 1.8 2.4 2.7 1.9 1 1.4.7 2.2 1.5 1.6.7-.5 2.1 2.3 1.9 3.1l10.8-1.5-1.8-24.7" fill="#b47d56"/><path d="m43 2.9c12-3.3 16.4 7.3 16.7 15.4.2 4.3-2.8 8.4-4.8 10.1l-9.3-16.8c-1.9-.3-8.4 5.4-9.9 4.4-4-2.7.2-11.1 7.3-13.1" fill="#231f20"/><path d="m41.6 3.9l6.1 12c-.3 1-.8 2.4-.5 4.2 2.1 12.4 4.8 7.9 8.4 2.6 1-1.5 1.5-3.7 1.5-4.8l2.9-1.1c1-.4.2-3.5-.8-3l-3.2 1.2c-.8-.9-5.3-1.9-6.4-1.4l-5.6-11c-.6-1.3-3-.4-2.4 1.3" fill="#ed4c5c"/><path d="m12.8 6l14.7 10c.9 4.2-.9 5.8-1.2 7.4-.2.7.8 2.4 1.4 3.3 1.2 2-1.8 2.4-2.7 1.9-1 1.4-.7 2.2-1.5 1.6-.7-.5-2.3 2.4-1.9 3.1.4.6-.4.8-1.2.2-.9 3.4-2.8 2.7-6.9 1.2-8.6-3.2-.7-28.7-.7-28.7" fill="#b47d56"/><path d="m20.1 2.9c-11.9-3.3-16.3 7.3-16.6 15.4-.2 4.3 1.1 7.4 3.2 9.2l1.4-.5 9.5-15.3c1.9-.3 8.5 5.4 9.9 4.4 3.9-2.8-.2-11.2-7.4-13.2" fill="#231f20"/><path d="m19.1 2.6l-5.6 11c-1.1-.5-5.5.5-6.4 1.4l-3.1-1.2c-.9-.4-1.8 2.6-.8 3l2.9 1.1c.1 1.1.5 3.3 1.5 4.8 3.6 5.3 6.3 9.9 8.4-2.6.3-1.8-.2-3.2-.5-4.2l6-12.1c.7-1.3-1.6-2.4-2.4-1.2" fill="#42ade2"/><path d="m15.6 34.8l-1.8-10.6c-.2-1.4-2.9-.9-2.6.5l1.8 10.6 2.6-.5" fill="#e8e8e8"/><path d="m17.4 62c0 0 3.6-8 3.6-13.6 0-8.3-6.1-10.9-10.4-12.3-4.1-1.3-4.6-5-4.6-5-1 0-6.2 6.8-3 16.8 2.5 7.9-.4 14-.4 14h14.8z" fill="#42ade2"/><path d="m4.8 62h6.5c0 0 4.9-4.8 4.9-13.3 0-12.2-8.2-12.9-10.7-10.4-3.1 3.4-1.4 6.7.3 13.5 1 4-1 10.2-1 10.2" fill="#935e3e"/><path d="m46.5 62c0 0-3.6-8-3.6-13.6 0-8.3 6.1-10.9 10.4-12.3 4.1-1.3 4.6-5 4.6-5 1 0 6.2 6.8 3 16.8-2.5 7.9.4 14 .4 14h-14.8z" fill="#ed4c5c"/><path d="m59.1 62h-6.5c0 0-4.9-4.8-4.9-13.3 0-12.2 8.2-12.9 10.7-10.4 3.2 3.4 1.5 6.7-.2 13.5-1 4 .9 10.2.9 10.2" fill="#935e3e"/><path d="m41.7 32.9c0 0 3.7-1.9 7.3-4.8.5-.4.6-3.8 4.2-6.1 2.1-1.3 3.2.3 4-.1.9-.4 2.3 0 2.3 0l-6.3 10.7-11.5.3" opacity=".3" fill="#3e4347"/><path d="m60.7 23.1c-1.5-3-4.9.1-4.9.1s-.8-2.2-3.1-.3c-2.7 2.2-2.1 4.7-3.3 5.9-2.7 2-5.6 3.9-12.3 5.3-3.2.6-4.5 3.7-5.5 3.2-5.6-3.3-10.6 1.6-15.4 0-10.1-3.5-12.9 1.6-12.7 6.9.2 3.8 4.8 5.8 8.3 6.6 8.3 2.1 14.1-2.6 18.9-3.1 2.9-.3 3.5.4 5.4-1.4 1.7-1.7 2.9 1.2 17.8-11.8 0 0 2.1.2 6.5-3.5 2-1.7 2.2-4.3.3-7.9" fill="#b47d56"/><path d="m25.1 43c0 0 4.9.7 7.6-6-4.6 5.6-7.6 6-7.6 6" fill="#935e3e"/><path d="m32.3 47.6c0 0-6.5-2-12.7-8.7-1.1-1.2-.7-3.4-3.6-5.4l-3.1.3c-.6-.6-2.7-3.2-4.6-1.2-1.8 1.8-2.6 6.6-1.2 8.4.8 1 7 5 7.4 5.5 4.7 5.7 5.3 9.4 5.3 9.4s.8-2.2 1.2-5.1l11.3-3.2" opacity=".3" fill="#3e4347"/><path d="m60.9 41.9c-2.3-5.8-7.9-7.3-13.2-.3-3.1 4.1-9.7 2.4-13.2 7.7-2.2-3.4-7.3-2-15.4-9.6 0 0-.2-4.1-3.1-6.2-2-1.5-3.1.3-3.1.3s-3.4-3.1-4.9-.1c-1.8 3.6-1.9 6.5.5 7.9 4.1 2.5 6.5 2.8 6.5 2.8 12.8 14.5 13.8 12.1 15.5 13.4 2.9 2.5 3.8 2.1 9.6.4 4.6-1.3 11.6-1.1 17.9-7.2 2.4-2.6 4.3-5.6 2.9-9.1" fill="#b47d56"/><g fill="#935e3e"><path d="m46.9 42.7c0 0 6.3 5.3 10.3 4.2-3.7 2-8.3-.6-10.3-4.2"/><path d="m44 50.1c0 0-3.5 3.6-9.5-.1 6.9 1.7 9.5.1 9.5.1"/></g><g fill="#664e27"><path d="m40.9 22.3c.3 1.1-.1 2.2-.9 2.4-.8.2-1.2-.6-1.6-1.7-.3-1.2 2.2-1.8 2.5-.7"/><path d="m22.7 22.3c-.3 1.1.1 2.2.9 2.4.8.2 1.2-.6 1.6-1.7.2-1.2-2.2-1.8-2.5-.7"/><path d="m22.3 29.8c0 0-1.5 1.7-1.4 2.9 0 0-1.8-1.4-1.2-2.4.5-1 2.6-.5 2.6-.5"/><path d="m40.8 29.8c0 0 1.5 1.7 1.4 2.9 0 0 1.8-1.4 1.2-2.4-.4-1-2.6-.5-2.6-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3ff.svg
new file mode 100644
index 0000000..a4e5ecc
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93c-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#705041"><path d="m44.4 9.3c-3 3.7-4.3 7.1-12.2 11.6-2.8 1.6-3.2 5-4.3 4.8-6.3-1.3-20.4-2.7-20.4-2.7l-1.5 8.2c-.8 11.3 18.5 7.4 22.9 5.4 2.7-1.2 4.5-1.4 5.8-3.7 1.2-2.2 3.3.5 15.3-19.9l-5.6-3.7"/><path d="m46.2 31.5l9.2-7.6 3 11.6-9.3 2.7z"/></g><path d="m50.5 7.1l-14.8 8.9c-.9 4.2.9 5.8 1.2 7.4.2.7-.8 2.4-1.4 3.3-1.2 2 1.8 2.4 2.7 1.9 1 1.4.7 2.2 1.5 1.6.7-.5 2.1 2.3 1.9 3.1l10.8-1.5-1.9-24.7" fill="#8a6859"/><path d="m43 2.9c12-3.3 16.4 7.3 16.7 15.4.2 4.3-2.8 8.4-4.8 10.1l-9.3-16.8c-1.9-.3-8.4 5.4-9.9 4.4-4-2.7.2-11.1 7.3-13.1" fill="#231f20"/><path d="m41.6 3.9l6.1 12c-.3 1-.8 2.4-.5 4.2 2.1 12.4 4.8 7.9 8.4 2.6 1-1.5 1.5-3.7 1.5-4.8l2.9-1.1c1-.4.2-3.5-.8-3l-3.2 1.2c-.8-.9-5.3-1.9-6.4-1.4l-5.6-11c-.6-1.3-3-.4-2.4 1.3" fill="#ed4c5c"/><path d="m12.8 6l14.7 10c.9 4.2-.9 5.8-1.2 7.4-.2.7.8 2.4 1.4 3.3 1.2 2-1.8 2.4-2.7 1.9-1 1.4-.7 2.2-1.5 1.6-.7-.5-2.3 2.4-1.9 3.1.4.6-.4.8-1.2.2-.9 3.4-2.8 2.7-6.9 1.2-8.6-3.2-.7-28.7-.7-28.7" fill="#8a6859"/><path d="m20.1 2.9c-11.9-3.3-16.3 7.3-16.6 15.4-.2 4.3 1.1 7.4 3.2 9.2l1.4-.5 9.5-15.3c1.9-.3 8.5 5.4 9.9 4.4 3.9-2.8-.2-11.2-7.4-13.2" fill="#231f20"/><path d="m19.1 2.6l-5.6 11c-1.1-.5-5.5.5-6.4 1.4l-3.1-1.2c-.9-.4-1.8 2.6-.8 3l2.9 1.1c.1 1.1.5 3.3 1.5 4.8 3.6 5.3 6.3 9.9 8.4-2.6.3-1.8-.2-3.2-.5-4.2l6-12.1c.7-1.3-1.6-2.4-2.4-1.2" fill="#42ade2"/><path d="m15.6 34.8l-1.8-10.6c-.2-1.4-2.9-.9-2.6.5l1.8 10.6 2.6-.5" fill="#e8e8e8"/><path d="m17.4 62c0 0 3.6-8 3.6-13.6 0-8.3-6.1-10.9-10.4-12.3-4.1-1.3-4.6-5-4.6-5-1 0-6.2 6.8-3 16.8 2.5 7.9-.4 14-.4 14h14.8z" fill="#42ade2"/><path d="m4.8 62h6.5c0 0 4.9-4.8 4.9-13.3 0-12.2-8.2-12.9-10.7-10.4-3.1 3.4-1.4 6.7.3 13.5 1 4-1 10.2-1 10.2" fill="#705041"/><path d="m46.5 62c0 0-3.6-8-3.6-13.6 0-8.3 6.1-10.9 10.4-12.3 4.1-1.3 4.6-5 4.6-5 1 0 6.2 6.8 3 16.8-2.5 7.9.4 14 .4 14h-14.8z" fill="#ed4c5c"/><path d="m59.1 62h-6.5c0 0-4.9-4.8-4.9-13.3 0-12.2 8.2-12.9 10.7-10.4 3.2 3.4 1.5 6.7-.2 13.5-1 4 .9 10.2.9 10.2" fill="#705041"/><path d="m41.7 32.9c0 0 3.7-1.9 7.3-4.8.5-.4.6-3.8 4.2-6.1 2.1-1.3 3.2.3 4-.1.9-.4 2.3 0 2.3 0l-6.3 10.7-11.5.3" opacity=".3" fill="#3e4347"/><path d="m60.8 23.1c-1.5-3-4.9.1-4.9.1s-.9-2.2-3.2-.3c-2.7 2.2-2.1 4.7-3.3 5.9-2.7 2-5.6 3.9-12.3 5.3-3.2.6-4.5 3.7-5.5 3.2-5.6-3.3-10.6 1.6-15.4 0-10.1-3.5-12.9 1.6-12.7 6.9.2 3.8 4.8 5.8 8.3 6.6 8.3 2.1 14.1-2.6 18.9-3.1 2.9-.3 3.5.4 5.4-1.4 1.7-1.7 2.9 1.2 17.8-11.8 0 0 2.1.2 6.5-3.5 2-1.7 2.2-4.3.4-7.9" fill="#8a6859"/><path d="m25.1 43c0 0 4.9.7 7.6-6-4.6 5.6-7.6 6-7.6 6" fill="#705041"/><path d="m32.3 47.6c0 0-6.5-2-12.7-8.7-1.1-1.2-.7-3.4-3.6-5.4l-3.1.3c-.6-.6-2.7-3.2-4.6-1.2-1.8 1.8-2.6 6.6-1.2 8.4.8 1 7 5 7.4 5.5 4.7 5.7 5.3 9.4 5.3 9.4s.8-2.2 1.2-5.1l11.3-3.2" opacity=".3" fill="#3e4347"/><path d="m60.9 41.9c-2.3-5.8-7.9-7.3-13.2-.3-3.1 4.1-9.7 2.4-13.2 7.7-2.2-3.4-7.3-2-15.4-9.6 0 0-.2-4.1-3.1-6.2-2-1.5-3.1.3-3.1.3s-3.4-3.1-4.9-.1c-1.8 3.6-1.9 6.5.5 7.9 4.1 2.5 6.5 2.8 6.5 2.8 12.8 14.5 13.8 12.1 15.5 13.4 2.9 2.5 3.8 2.1 9.6.4 4.6-1.3 11.6-1.1 17.9-7.2 2.4-2.6 4.3-5.6 2.9-9.1" fill="#8a6859"/><g fill="#705041"><path d="m46.9 42.7c0 0 6.3 5.3 10.3 4.2-3.7 2-8.3-.6-10.3-4.2"/><path d="m44 50.1c0 0-3.5 3.6-9.5-.1 6.9 1.7 9.5.1 9.5.1"/></g><g fill="#574137"><path d="m40.9 22.3c.3 1.1-.1 2.2-.9 2.4-.8.2-1.2-.6-1.6-1.7-.3-1.2 2.2-1.8 2.5-.7"/><path d="m22.7 22.3c-.3 1.1.1 2.2.9 2.4.8.2 1.2-.6 1.6-1.7.2-1.2-2.2-1.8-2.5-.7"/><path d="m22.3 29.8c0 0-1.5 1.7-1.4 2.9 0 0-1.8-1.4-1.2-2.4.5-1 2.6-.5 2.6-.5"/><path d="m40.8 29.8c0 0 1.5 1.7 1.4 2.9 0 0 1.8-1.4 1.2-2.4-.4-1-2.6-.5-2.6-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93c.svg
new file mode 100644
index 0000000..694ce76
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93c.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eba352"><path d="m44.4 9.3c-3 3.7-4.3 7.1-12.2 11.6-2.8 1.6-3.2 5-4.3 4.8-6.3-1.3-20.4-2.7-20.4-2.7l-1.5 8.2c-.8 11.3 18.5 7.4 22.9 5.4 2.7-1.2 4.5-1.4 5.8-3.7 1.2-2.2 3.3.5 15.3-19.9l-5.6-3.7"/><path d="m46.2 31.5l9.2-7.6 3 11.6-9.3 2.7z"/></g><path d="m50.5 7.1l-14.8 8.9c-.9 4.2.9 5.8 1.2 7.4.2.7-.8 2.4-1.4 3.3-1.2 2 1.8 2.4 2.7 1.9 1 1.4.7 2.2 1.5 1.6.7-.5 2.1 2.3 1.9 3.1l10.8-1.5-1.9-24.7" fill="#ffdd67"/><path d="m43 2.9c12-3.3 16.4 7.3 16.7 15.4.2 4.3-2.8 8.4-4.8 10.1l-9.3-16.8c-1.9-.3-8.5 5.4-9.9 4.4-4-2.7.2-11.1 7.3-13.1" fill="#ffb300"/><path d="m41.6 3.9l6.1 12c-.3 1-.8 2.4-.5 4.2 2.1 12.4 4.8 7.9 8.4 2.6 1-1.5 1.5-3.7 1.5-4.8l2.9-1.1c1-.4.2-3.5-.8-3l-3.2 1.2c-.8-.9-5.3-1.9-6.4-1.4l-5.6-11c-.6-1.3-3-.4-2.4 1.3" fill="#ed4c5c"/><path d="m12.8 6l14.7 10c.9 4.2-.9 5.8-1.2 7.4-.2.7.8 2.4 1.4 3.3 1.2 2-1.8 2.4-2.7 1.9-1 1.4-.7 2.2-1.5 1.6-.7-.5-2.3 2.4-1.9 3.1.4.6-.4.8-1.2.2-.9 3.4-2.8 2.7-6.9 1.2-8.6-3.2-.7-28.7-.7-28.7" fill="#ffdd67"/><path d="m20.1 2.9c-11.9-3.3-16.3 7.3-16.6 15.4-.2 4.3 1.1 7.4 3.2 9.2l1.4-.5 9.5-15.3c1.9-.3 8.5 5.4 9.9 4.4 3.9-2.8-.2-11.2-7.4-13.2" fill="#ffb300"/><path d="m19.1 2.6l-5.6 11c-1.1-.5-5.5.5-6.4 1.4l-3.1-1.2c-.9-.4-1.8 2.6-.8 3l2.9 1.1c.1 1.1.5 3.3 1.5 4.8 3.6 5.3 6.3 9.9 8.4-2.6.3-1.8-.2-3.2-.5-4.2l6-12.1c.7-1.3-1.6-2.4-2.4-1.2" fill="#42ade2"/><path d="m15.6 34.8l-1.8-10.6c-.2-1.4-2.9-.9-2.6.5l1.8 10.6 2.6-.5" fill="#e8e8e8"/><path d="m17.4 62c0 0 3.6-8 3.6-13.6 0-8.3-6.1-10.9-10.4-12.3-4.1-1.3-4.6-5-4.6-5-1 0-6.2 6.8-3 16.8 2.5 7.9-.4 14-.4 14h14.8z" fill="#42ade2"/><path d="m4.8 62h6.5c0 0 4.9-4.8 4.9-13.3 0-12.2-8.2-12.9-10.7-10.4-3.1 3.4-1.4 6.7.3 13.5 1 4-1 10.2-1 10.2" fill="#eba352"/><path d="m46.5 62c0 0-3.6-8-3.6-13.6 0-8.3 6.1-10.9 10.4-12.3 4.1-1.3 4.6-5 4.6-5 1 0 6.2 6.8 3 16.8-2.5 7.9.4 14 .4 14h-14.8z" fill="#ed4c5c"/><path d="m59.1 62h-6.5c0 0-4.9-4.8-4.9-13.3 0-12.2 8.2-12.9 10.7-10.4 3.2 3.4 1.5 6.7-.2 13.5-1 4 .9 10.2.9 10.2" fill="#eba352"/><path d="m41.7 32.9c0 0 3.7-1.9 7.3-4.8.5-.4.6-3.8 4.2-6.1 2.1-1.3 3.2.3 4-.1.9-.4 2.3 0 2.3 0l-6.3 10.7-11.5.3" opacity=".3" fill="#3e4347"/><path d="m60.7 23.1c-1.5-3-4.9.1-4.9.1s-.8-2.2-3.1-.3c-2.7 2.2-2.1 4.7-3.3 5.9-2.7 2-5.6 3.9-12.3 5.3-3.2.6-4.5 3.7-5.5 3.2-5.6-3.3-10.6 1.6-15.4 0-10.1-3.5-12.9 1.6-12.7 6.9.2 3.8 4.8 5.8 8.3 6.6 8.3 2.1 14.1-2.6 18.9-3.1 2.9-.3 3.5.4 5.4-1.4 1.7-1.7 2.9 1.2 17.8-11.8 0 0 2.1.2 6.5-3.5 2-1.7 2.2-4.3.3-7.9" fill="#ffdd67"/><path d="m25.1 43c0 0 4.9.7 7.6-6-4.6 5.6-7.6 6-7.6 6" fill="#eba352"/><path d="m32.3 47.6c0 0-6.5-2-12.7-8.7-1.1-1.2-.7-3.4-3.6-5.4l-3.1.3c-.6-.6-2.7-3.2-4.6-1.2-1.8 1.8-2.6 6.6-1.2 8.4.8 1 7 5 7.4 5.5 4.7 5.7 5.3 9.4 5.3 9.4s.8-2.2 1.2-5.1l11.3-3.2" opacity=".3" fill="#3e4347"/><path d="m60.9 41.9c-2.3-5.8-7.9-7.3-13.2-.3-3.1 4.1-9.7 2.4-13.2 7.7-2.2-3.4-7.3-2-15.4-9.6 0 0-.2-4.1-3.1-6.2-2-1.5-3.1.3-3.1.3s-3.4-3.1-4.9-.1c-1.8 3.6-1.9 6.5.5 7.9 4.1 2.5 6.5 2.8 6.5 2.8 12.8 14.5 13.8 12.1 15.5 13.4 2.9 2.5 3.8 2.1 9.6.4 4.6-1.3 11.6-1.1 17.9-7.2 2.4-2.6 4.3-5.6 2.9-9.1" fill="#ffdd67"/><g fill="#eba352"><path d="m46.9 42.7c0 0 6.3 5.3 10.3 4.2-3.7 2-8.3-.6-10.3-4.2"/><path d="m44 50.1c0 0-3.5 3.6-9.5-.1 6.9 1.7 9.5.1 9.5.1"/></g><g fill="#937237"><path d="m40.9 22.3c.3 1.1-.1 2.2-.9 2.4-.8.2-1.2-.6-1.6-1.7-.3-1.2 2.2-1.8 2.5-.7"/><path d="m22.7 22.3c-.3 1.1.1 2.2.9 2.4.8.2 1.2-.6 1.6-1.7.2-1.2-2.2-1.8-2.5-.7"/><path d="m22.3 29.8c0 0-1.5 1.7-1.4 2.9 0 0-1.8-1.4-1.2-2.4.5-1 2.6-.5 2.6-.5"/><path d="m40.8 29.8c0 0 1.5 1.7 1.4 2.9 0 0 1.8-1.4 1.2-2.4-.4-1-2.6-.5-2.6-.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fb.svg
new file mode 100644
index 0000000..ab8d140
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m48.2 14.7l-3.3 8.4-6.5 2.8c0 0-10 2.7-10.4 2.8l-10.2 3.7c-.8.2-1.5.7-1.9 1.4l-4.2 8.6c-1.7-.4-2.1.4-3.4 4-1.2 3.1 1.5 4.1 2 4.3 2.9 1.1 4.3-.8 5-2.3.6-.1 1.2-.5 1.4-1.1l.4-1.2c.2-.7 0-1.4-.4-1.8l3.5-7.1 2.7-1c-.4 5.7 2.1 12.8-.1 19.8l19.1-.7c-5.5-6.9-2-15.6-1.8-22.6l8.4-5.4c.4-.3.8-.7 1-1.2l3.7-9.5-5-1.9"/><path d="m32.7 20.6l3.6-1.1-2.2 11.2-7.3-1.4z"/></g><path d="m26.8 24.9c1.9 1.7.1 4.4.1 4.4 3 .6 6.2-4.8 6.9-8.4l-7 4" fill="#e6b796"/><path d="m37.8 6.4l-13.9 1.9c-2.2 2.7-1.4 4.5-1.8 5.8-.1.6-1.5 1.4-2.3 1.8-1.6 1 .5 2.4 1.4 2.4.3 1.4-1.5 1.8 2.5 1.8 0 0-4.3.9-1.6 2.2-.6 1.5-1.5 4.4 7.3 3 2.6-.4 4.3-4.5 4.3-4.5l4.3.2-.2-14.6" fill="#ffe1bd"/><g fill="#664e27"><path d="m25.4 14.8c-.2.8-.8 1.4-1.3 1.3-.6-.1-.6-.8-.4-1.6.2-.8.5-1.4 1-1.3.5 0 .8.7.7 1.6"/><path d="m25.2 20.1c0 0-1.8.9-2.4 1-1.3.4-1.4-.1-.6-.4.6-.3 1.7-.6 1.7-.6h1.3"/></g><path d="m57 3.1c4.6 2.4 6.4 8 3.9 12.5-2.5 4.5-8.2 6.2-12.8 3.8-4.6-2.4-6.4-8-3.9-12.5 2.4-4.5 8.1-6.2 12.8-3.8" fill="#ffce31"/><path d="m59.4 4.9c-4.9.6-8.3 2.4-9.6 3.3-.3-.5-.5-1-.7-1.7.7-.7 2.9-2.7 7.2-3.7-.9-.4-1.8-.6-2.7-.7-2.3.8-3.9 1.9-4.8 2.7 0-.6 0-1.3.1-2.1-.6.2-1.1.5-1.6.8-.4 5.6 3.2 7.7 4.5 8.3 0 .4.1 1.1-.2 2-1.4-.6-4.8-2.5-7.6-6.7-.3.5-.5 1.1-.7 1.6 2.9 4 6.3 5.8 7.8 6.5-.3.5-.6 1-1.1 1.4-1-.2-3.9-1.2-7-4.6.1.9.3 1.8.6 2.7 2 1.7 3.8 2.6 5 3-.5.4-1.2.7-1.9 1 .4.3.8.6 1.3.8.1 0 .2.1.3.1 5-2.5 5.1-6.6 5-8 .3-.2.9-.6 1.7-.8 0 1.6-.1 5.4-2 9.8.6 0 1.2-.1 1.7-.2 1.8-4.5 1.8-8.2 1.8-9.8.6 0 1.2 0 1.8.2.3.9.9 3.8-.4 8.1.7-.5 1.4-1.1 2-1.8.5-2.5.3-4.5.1-5.7.6.3 1.2.7 1.9 1.2.1-.6.1-1.2.1-1.8-4.7-3.2-8.4-1.2-9.6-.4-.4-.2-1-.5-1.6-1.1 1.3-.8 4.8-2.6 9.7-3-.3-.5-.7-.9-1.1-1.4" fill="#f2b200"/><g fill="#e6b796"><ellipse transform="matrix(.9994-.0353.0353.9994-1.2782.9539)" cx="26.4" cy="36.7" rx="1.1" ry="1.5"/><ellipse transform="matrix(.9994-.0348.0348.9994-1.2043 1.1884)" cx="33.5" cy="35.2" rx="1.1" ry="1.5"/></g><path d="m23.3 9.2c0 0 11.6.5 12.1 14.3 0 0 7.4-2 7.1-11-.3-9.1-12.5-14.8-19.2-3.3" fill="#ed4c5c"/><path d="m42.2 10.2c-2.9 1.7-3.8 4.9-3.8 4.9-1.4-1.3-2.5-1.2-2.5-1.2-1 .8-1.3 2.8-1.3 4.7.4 1.4.7 3 .7 4.8 0 0 7.4-2 7.1-11 .1-.8 0-1.5-.2-2.2" opacity=".5" fill="#3e4347"/><path d="m37.9 16.6c.1 1.6-1.2 3-2.9 3.1-1.6.1-3-1.2-3.1-2.9-.1-1.6 1.2-3 2.9-3.1 1.7 0 3.1 1.3 3.1 2.9" fill="#ed4c5c"/><g fill="#3e4347"><circle cx="33.9" cy="15.3" r=".5"/><circle cx="35.9" cy="15.2" r=".5"/><path d="m34 17.7c-.3 0-.5.2-.5.5 0 .3.2.5.5.5s.5-.2.5-.5c0-.3-.2-.5-.5-.5"/><circle cx="36" cy="18.1" r=".5"/><circle cx="33" cy="16.8" r=".5"/><circle cx="35" cy="16.7" r=".5"/><circle cx="37" cy="16.6" r=".5"/></g><path d="m57.7 51.7c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2c-1.6 0-1.9 1.2-4.3 1.2s-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-4.3-1.2-4.3-1.2v11.5h60v-11.5c.2 0-1.7 1.2-4.1 1.2" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m35.4 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/><path d="m47.1 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m58.7 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fc.svg
new file mode 100644
index 0000000..85395e0
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m48.2 14.7l-3.3 8.4-6.5 2.8c0 0-10 2.7-10.4 2.8l-10.2 3.7c-.8.2-1.5.7-1.9 1.4l-4.2 8.6c-1.7-.4-2.1.4-3.4 4-1.2 3.1 1.5 4.1 2 4.3 2.9 1.1 4.3-.8 5-2.3.6-.1 1.2-.5 1.4-1.1l.4-1.2c.2-.7.1-1.4-.4-1.8l3.5-7.1 2.7-1c-.4 5.7 2.1 12.8-.1 19.8l19.1-.7c-5.5-6.9-2-15.6-1.8-22.6l8.4-5.4c.4-.3.8-.7 1-1.2l3.7-9.5-5-1.9"/><path d="m32.7 20.6l3.6-1.1-2.2 11.2-7.3-1.4z"/></g><path d="m26.8 24.9c1.9 1.7.1 4.4.1 4.4 3 .6 6.2-4.8 6.9-8.4l-7 4" fill="#e0a372"/><path d="m37.8 6.4l-13.9 1.9c-2.2 2.7-1.4 4.5-1.8 5.8-.1.6-1.5 1.4-2.3 1.8-1.6 1 .5 2.4 1.4 2.4.3 1.4-1.5 1.8 2.5 1.8 0 0-4.3.9-1.6 2.2-.6 1.5-1.5 4.4 7.3 3 2.6-.4 4.3-4.5 4.3-4.5l4.3.2-.2-14.6" fill="#fed0ac"/><g fill="#664e27"><path d="m25.4 14.8c-.2.8-.8 1.4-1.3 1.3-.6-.1-.6-.8-.4-1.6.2-.8.5-1.4 1-1.3.5 0 .8.7.7 1.6"/><path d="m25.2 20.1c0 0-1.8.9-2.4 1-1.3.4-1.4-.1-.6-.4.6-.3 1.7-.6 1.7-.6h1.3"/></g><path d="m57 3.1c4.6 2.4 6.4 8 3.9 12.5-2.5 4.5-8.2 6.2-12.8 3.8-4.6-2.4-6.4-8-3.9-12.5 2.4-4.5 8.1-6.2 12.8-3.8" fill="#ffce31"/><path d="m59.4 4.9c-4.9.6-8.3 2.4-9.6 3.3-.3-.5-.5-1-.7-1.7.7-.7 2.9-2.7 7.2-3.7-.9-.4-1.8-.6-2.7-.7-2.3.8-3.9 1.9-4.8 2.7 0-.6 0-1.3.1-2.1-.6.2-1.1.5-1.6.8-.4 5.6 3.2 7.7 4.5 8.3 0 .4.1 1.1-.2 2-1.4-.6-4.8-2.5-7.6-6.7-.3.5-.5 1.1-.7 1.6 2.9 4 6.3 5.8 7.8 6.5-.3.5-.6 1-1.1 1.4-1-.2-3.9-1.2-7-4.6.1.9.3 1.8.6 2.7 2 1.7 3.8 2.6 5 3-.5.4-1.2.7-1.9 1 .4.3.8.6 1.3.8.1 0 .2.1.3.1 5-2.5 5.1-6.6 5-8 .3-.2.9-.6 1.7-.8 0 1.6-.1 5.4-2 9.8.6 0 1.2-.1 1.7-.2 1.8-4.5 1.8-8.2 1.8-9.8.6 0 1.2 0 1.8.2.3.9.9 3.8-.4 8.1.7-.5 1.4-1.1 2-1.8.5-2.5.3-4.5.1-5.7.6.3 1.2.7 1.9 1.2.1-.6.1-1.2.1-1.8-4.7-3.2-8.4-1.2-9.6-.4-.4-.2-1-.5-1.6-1.1 1.3-.8 4.8-2.6 9.7-3-.3-.5-.7-.9-1.1-1.4" fill="#f2b200"/><g fill="#e0a372"><ellipse transform="matrix(.9994-.0353.0353.9994-1.2782.9539)" cx="26.4" cy="36.7" rx="1.1" ry="1.5"/><ellipse transform="matrix(.9994-.0348.0348.9994-1.2043 1.1884)" cx="33.5" cy="35.2" rx="1.1" ry="1.5"/></g><path d="m23.3 9.2c0 0 11.6.5 12.1 14.3 0 0 7.4-2 7.1-11-.3-9.1-12.5-14.8-19.2-3.3" fill="#ed4c5c"/><path d="m42.2 10.2c-2.9 1.7-3.8 4.9-3.8 4.9-1.4-1.3-2.5-1.2-2.5-1.2-1 .8-1.3 2.8-1.3 4.7.4 1.4.7 3 .7 4.8 0 0 7.4-2 7.1-11 .1-.8 0-1.5-.2-2.2" opacity=".5" fill="#3e4347"/><ellipse transform="matrix(.9994-.0348.0348.9994-.5599 1.2271)" cx="35" cy="16.7" rx="3" ry="3" fill="#ed4c5c"/><g fill="#3e4347"><circle cx="33.9" cy="15.3" r=".5"/><circle cx="35.9" cy="15.2" r=".5"/><circle cx="34" cy="18.2" r=".5"/><circle cx="36" cy="18.1" r=".5"/><circle cx="33" cy="16.8" r=".5"/><circle cx="35" cy="16.7" r=".5"/><path d="m36.9 16.1c-.3 0-.5.2-.5.5 0 .3.2.5.5.5.3 0 .5-.2.5-.5 0-.3-.2-.5-.5-.5"/></g><path d="m57.7 51.7c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2c-1.6 0-1.9 1.2-4.3 1.2-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-4.3-1.2-4.3-1.2v11.5h60v-11.5c.2 0-1.7 1.2-4.1 1.2" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m35.4 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/><path d="m47 60c-6.8.7-11.4-3.5-18.5-1.1 5.5-.3 13.7 2.9 18.5 1.1"/><path d="m58.7 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fd.svg
new file mode 100644
index 0000000..3977b73
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m48.2 14.7l-3.3 8.4-6.5 2.8c0 0-10 2.7-10.4 2.8l-10.2 3.7c-.8.2-1.5.7-1.9 1.4l-4.2 8.6c-1.7-.4-2.1.4-3.4 4-1.2 3.1 1.5 4.1 2 4.3 2.9 1.1 4.3-.8 5-2.3.6-.1 1.2-.5 1.4-1.1l.4-1.2c.2-.7 0-1.4-.4-1.8l3.5-7.1 2.7-1c-.4 5.7 2.1 12.8-.1 19.8l19.1-.7c-5.5-6.9-2-15.6-1.8-22.6l8.4-5.4c.4-.3.8-.7 1-1.2l3.7-9.5-5-1.9"/><path d="m32.7 20.6l3.6-1.1-2.2 11.2-7.3-1.4z"/></g><path d="m26.8 24.9c1.9 1.7.1 4.4.1 4.4 3 .6 6.2-4.8 6.9-8.4l-7 4" fill="#b58360"/><path d="m37.8 6.4l-13.9 1.9c-2.2 2.7-1.4 4.5-1.8 5.8-.1.6-1.5 1.4-2.3 1.8-1.6 1 .5 2.4 1.4 2.4.3 1.4-1.5 1.8 2.5 1.8 0 0-4.3.9-1.6 2.2-.6 1.5-1.5 4.4 7.3 3 2.6-.4 4.3-4.5 4.3-4.5l4.3.2-.2-14.6" fill="#d6a57c"/><g fill="#664e27"><path d="m25.4 14.8c-.2.8-.8 1.4-1.3 1.3-.6-.1-.6-.8-.4-1.6.2-.8.5-1.4 1-1.3.5 0 .8.7.7 1.6"/><path d="m25.2 20.1c0 0-1.8.9-2.4 1-1.3.4-1.4-.1-.6-.4.6-.3 1.7-.6 1.7-.6h1.3"/></g><path d="m57 3.1c4.6 2.4 6.4 8 3.9 12.5-2.5 4.5-8.2 6.2-12.8 3.8-4.6-2.4-6.4-8-3.9-12.5 2.4-4.5 8.1-6.2 12.8-3.8" fill="#ffce31"/><path d="m59.4 4.9c-4.9.6-8.3 2.4-9.6 3.3-.3-.5-.5-1-.7-1.7.7-.7 2.9-2.7 7.2-3.7-.9-.4-1.8-.6-2.7-.7-2.3.8-3.9 1.9-4.8 2.7 0-.6 0-1.3.1-2.1-.6.2-1.1.5-1.6.8-.4 5.6 3.2 7.7 4.5 8.3 0 .4.1 1.1-.2 2-1.4-.6-4.8-2.5-7.6-6.7-.3.5-.5 1.1-.7 1.6 2.9 4 6.3 5.8 7.8 6.5-.3.5-.6 1-1.1 1.4-1-.2-3.9-1.2-7-4.6.1.9.3 1.8.6 2.7 2 1.7 3.8 2.6 5 3-.5.4-1.2.7-1.9 1 .4.3.8.6 1.3.8.1 0 .2.1.3.1 5-2.5 5.1-6.6 5-8 .3-.2.9-.6 1.7-.8 0 1.6-.1 5.4-2 9.8.6 0 1.2-.1 1.7-.2 1.8-4.5 1.8-8.2 1.8-9.8.6 0 1.2 0 1.8.2.3.9.9 3.8-.4 8.1.7-.5 1.4-1.1 2-1.8.5-2.5.3-4.5.1-5.7.6.3 1.2.7 1.9 1.2.1-.6.1-1.2.1-1.8-4.7-3.2-8.4-1.2-9.6-.4-.4-.2-1-.5-1.6-1.1 1.3-.8 4.8-2.6 9.7-3-.3-.5-.7-.9-1.1-1.4" fill="#f2b200"/><g fill="#b58360"><ellipse transform="matrix(.9994-.0353.0353.9994-1.2782.9539)" cx="26.4" cy="36.7" rx="1.1" ry="1.5"/><ellipse transform="matrix(.9994-.0348.0348.9994-1.2043 1.1884)" cx="33.5" cy="35.2" rx="1.1" ry="1.5"/></g><path d="m23.3 9.2c0 0 11.6.5 12.1 14.3 0 0 7.4-2 7.1-11-.3-9.1-12.5-14.8-19.2-3.3" fill="#ed4c5c"/><path d="m42.2 10.2c-2.9 1.7-3.8 4.9-3.8 4.9-1.4-1.3-2.5-1.2-2.5-1.2-1 .8-1.3 2.8-1.3 4.7.4 1.4.7 3 .7 4.8 0 0 7.4-2 7.1-11 .1-.8 0-1.5-.2-2.2" opacity=".5" fill="#3e4347"/><path d="m37.9 16.6c.1 1.6-1.2 3-2.9 3.1-1.6.1-3-1.2-3.1-2.9-.1-1.6 1.2-3 2.9-3.1 1.7 0 3.1 1.3 3.1 2.9" fill="#ed4c5c"/><g fill="#3e4347"><circle cx="33.9" cy="15.3" r=".5"/><circle cx="35.9" cy="15.2" r=".5"/><path d="m34 17.7c-.3 0-.5.2-.5.5 0 .3.2.5.5.5s.5-.2.5-.5c0-.3-.2-.5-.5-.5"/><circle cx="36" cy="18.1" r=".5"/><circle cx="33" cy="16.8" r=".5"/><circle cx="35" cy="16.7" r=".5"/><path d="m36.9 16.1c-.3 0-.5.2-.5.5 0 .3.2.5.5.5.3 0 .5-.2.5-.5 0-.3-.2-.5-.5-.5"/></g><path d="m57.7 51.7c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2c-1.6 0-1.9 1.2-4.3 1.2s-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-4.3-1.2-4.3-1.2v11.5h60v-11.5c.2 0-1.7 1.2-4.1 1.2" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m35.4 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/><path d="m47.1 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m58.7 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fe.svg
new file mode 100644
index 0000000..d25f2bf
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m48.2 14.7l-3.3 8.4-6.5 2.8c0 0-10 2.7-10.4 2.8l-10.2 3.7c-.8.2-1.5.7-1.9 1.4l-4.2 8.6c-1.7-.4-2.1.4-3.4 4-1.2 3.1 1.5 4.1 2 4.3 2.9 1.1 4.3-.8 5-2.3.6-.1 1.2-.5 1.4-1.1l.4-1.2c.2-.7.1-1.4-.4-1.8l3.5-7.1 2.7-1c-.4 5.7 2.1 12.8-.1 19.8l19.1-.7c-5.5-6.9-2-15.6-1.8-22.6l8.4-5.4c.4-.3.8-.7 1-1.2l3.7-9.5-5-1.9"/><path d="m32.7 20.6l3.6-1.1-2.2 11.2-7.3-1.4z"/></g><path d="m26.8 24.9c1.9 1.7.1 4.4.1 4.4 3 .6 6.2-4.8 6.9-8.4l-7 4" fill="#935e3e"/><path d="m37.8 6.4l-13.9 1.9c-2.2 2.7-1.4 4.5-1.8 5.8-.1.6-1.5 1.4-2.3 1.8-1.6 1 .5 2.4 1.4 2.4.3 1.4-1.5 1.8 2.5 1.8 0 0-4.3.9-1.6 2.2-.6 1.5-1.5 4.4 7.3 3 2.6-.4 4.3-4.5 4.3-4.5l4.3.2-.2-14.6" fill="#b47d56"/><g fill="#664e27"><path d="m25.4 14.8c-.2.8-.8 1.4-1.3 1.3-.6-.1-.6-.8-.4-1.6.2-.8.5-1.4 1-1.3.5 0 .8.7.7 1.6"/><path d="m25.2 20.1c0 0-1.8.9-2.4 1-1.3.4-1.4-.1-.6-.4.6-.3 1.7-.6 1.7-.6h1.3"/></g><path d="m57 3.1c4.6 2.4 6.4 8 3.9 12.5-2.5 4.5-8.2 6.2-12.8 3.8-4.6-2.4-6.4-8-3.9-12.5 2.4-4.5 8.1-6.2 12.8-3.8" fill="#ffce31"/><path d="m59.4 4.9c-4.9.6-8.3 2.4-9.6 3.3-.3-.5-.5-1-.7-1.7.7-.7 2.9-2.7 7.2-3.7-.9-.4-1.8-.6-2.7-.7-2.3.8-3.9 1.9-4.8 2.7 0-.6 0-1.3.1-2.1-.6.2-1.1.5-1.6.8-.4 5.6 3.2 7.7 4.5 8.3 0 .4.1 1.1-.2 2-1.4-.6-4.8-2.5-7.6-6.7-.3.5-.5 1.1-.7 1.6 2.9 4 6.3 5.8 7.8 6.5-.3.5-.6 1-1.1 1.4-1-.2-3.9-1.2-7-4.6.1.9.3 1.8.6 2.7 2 1.7 3.8 2.6 5 3-.5.4-1.2.7-1.9 1 .4.3.8.6 1.3.8.1 0 .2.1.3.1 5-2.5 5.1-6.6 5-8 .3-.2.9-.6 1.7-.8 0 1.6-.1 5.4-2 9.8.6 0 1.2-.1 1.7-.2 1.8-4.5 1.8-8.2 1.8-9.8.6 0 1.2 0 1.8.2.3.9.9 3.8-.4 8.1.7-.5 1.4-1.1 2-1.8.5-2.5.3-4.5.1-5.7.6.3 1.2.7 1.9 1.2.1-.6.1-1.2.1-1.8-4.7-3.2-8.4-1.2-9.6-.4-.4-.2-1-.5-1.6-1.1 1.3-.8 4.8-2.6 9.7-3-.3-.5-.7-.9-1.1-1.4" fill="#f2b200"/><g fill="#935e3e"><ellipse transform="matrix(.9994-.0353.0353.9994-1.2782.9539)" cx="26.4" cy="36.7" rx="1.1" ry="1.5"/><ellipse transform="matrix(.9994-.0348.0348.9994-1.2043 1.1884)" cx="33.5" cy="35.2" rx="1.1" ry="1.5"/></g><path d="m23.3 9.2c0 0 11.6.5 12.1 14.3 0 0 7.4-2 7.1-11-.3-9.1-12.5-14.8-19.2-3.3" fill="#ed4c5c"/><path d="m42.2 10.2c-2.9 1.7-3.8 4.9-3.8 4.9-1.4-1.3-2.5-1.2-2.5-1.2-1 .8-1.3 2.8-1.3 4.7.4 1.4.7 3 .7 4.8 0 0 7.4-2 7.1-11 .1-.8 0-1.5-.2-2.2" opacity=".5" fill="#3e4347"/><ellipse transform="matrix(.9994-.0348.0348.9994-.5599 1.2272)" cx="35" cy="16.7" rx="3" ry="3" fill="#ed4c5c"/><g fill="#3e4347"><circle cx="33.9" cy="15.3" r=".5"/><circle cx="35.9" cy="15.2" r=".5"/><circle cx="34" cy="18.2" r=".5"/><circle cx="36" cy="18.1" r=".5"/><circle cx="33" cy="16.8" r=".5"/><circle cx="35" cy="16.7" r=".5"/><path d="m36.9 16.1c-.3 0-.5.2-.5.5 0 .3.2.5.5.5.3 0 .5-.2.5-.5 0-.3-.2-.5-.5-.5"/></g><path d="m57.7 51.7c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2c-1.6 0-1.9 1.2-4.3 1.2s-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-4.3-1.2-4.3-1.2v11.5h60v-11.5c.2 0-1.7 1.2-4.1 1.2" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m35.4 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/><path d="m47.1 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m58.7 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3ff.svg
new file mode 100644
index 0000000..16cd1bb
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93d-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m48.2 14.7l-3.3 8.4-6.5 2.8c0 0-10 2.7-10.4 2.8l-10.2 3.7c-.8.2-1.5.7-1.9 1.4l-4.2 8.6c-1.7-.4-2.1.4-3.4 4-1.2 3.1 1.5 4.1 2 4.3 2.9 1.1 4.3-.8 5-2.3.6-.1 1.2-.5 1.4-1.1l.4-1.2c.2-.7.1-1.4-.4-1.8l3.5-7.1 2.7-1c-.4 5.7 2.1 12.8-.1 19.8l19.1-.7c-5.5-6.9-2-15.6-1.8-22.6l8.4-5.4c.4-.3.8-.7 1-1.2l3.7-9.5-5-1.9"/><path d="m32.7 20.6l3.6-1.1-2.2 11.2-7.3-1.4z"/></g><path d="m26.8 24.9c1.9 1.7.1 4.4.1 4.4 3 .6 6.2-4.8 6.9-8.4l-7 4" fill="#705041"/><path d="m37.8 6.4l-13.9 1.9c-2.2 2.7-1.4 4.5-1.8 5.8-.1.6-1.5 1.4-2.3 1.8-1.6 1 .5 2.4 1.4 2.4.3 1.4-1.5 1.8 2.5 1.8 0 0-4.3.9-1.6 2.2-.6 1.5-1.5 4.4 7.3 3 2.6-.4 4.3-4.5 4.3-4.5l4.3.2-.2-14.6" fill="#8a6859"/><g fill="#574137"><path d="m25.4 14.8c-.2.8-.8 1.4-1.3 1.3-.6-.1-.6-.8-.4-1.6.2-.8.5-1.4 1-1.3.5 0 .8.7.7 1.6"/><path d="m25.2 20.1c0 0-1.8.9-2.4 1-1.3.4-1.4-.1-.6-.4.6-.3 1.7-.6 1.7-.6h1.3"/></g><path d="m57 3.1c4.6 2.4 6.4 8 3.9 12.5-2.5 4.5-8.2 6.2-12.8 3.8-4.6-2.4-6.4-8-3.9-12.5 2.4-4.5 8.1-6.2 12.8-3.8" fill="#ffce31"/><path d="m59.4 4.9c-4.9.6-8.3 2.4-9.6 3.3-.3-.5-.5-1-.7-1.7.7-.7 2.9-2.7 7.2-3.7-.9-.4-1.8-.6-2.7-.7-2.3.8-3.9 1.9-4.8 2.7 0-.6 0-1.3.1-2.1-.6.2-1.1.5-1.6.8-.4 5.6 3.2 7.7 4.5 8.3 0 .4.1 1.1-.2 2-1.4-.6-4.8-2.5-7.6-6.7-.3.5-.5 1.1-.7 1.6 2.9 4 6.3 5.8 7.8 6.5-.3.5-.6 1-1.1 1.4-1-.2-3.9-1.2-7-4.6.1.9.3 1.8.6 2.7 2 1.7 3.8 2.6 5 3-.5.4-1.2.7-1.9 1 .4.3.8.6 1.3.8.1 0 .2.1.3.1 5-2.5 5.1-6.6 5-8 .3-.2.9-.6 1.7-.8 0 1.6-.1 5.4-2 9.8.6 0 1.2-.1 1.7-.2 1.8-4.5 1.8-8.2 1.8-9.8.6 0 1.2 0 1.8.2.3.9.9 3.8-.4 8.1.7-.5 1.4-1.1 2-1.8.5-2.5.3-4.5.1-5.7.6.3 1.2.7 1.9 1.2.1-.6.1-1.2.1-1.8-4.7-3.2-8.4-1.2-9.6-.4-.4-.2-1-.5-1.6-1.1 1.3-.8 4.8-2.6 9.7-3-.3-.5-.7-.9-1.1-1.4" fill="#f2b200"/><g fill="#705041"><ellipse transform="matrix(.9994-.0353.0353.9994-1.2782.9539)" cx="26.4" cy="36.7" rx="1.1" ry="1.5"/><ellipse transform="matrix(.9994-.0348.0348.9994-1.2043 1.1884)" cx="33.5" cy="35.2" rx="1.1" ry="1.5"/></g><path d="m23.3 9.2c0 0 11.6.5 12.1 14.3 0 0 7.4-2 7.1-11-.3-9.1-12.5-14.8-19.2-3.3" fill="#ed4c5c"/><path d="m42.2 10.2c-2.9 1.7-3.8 4.9-3.8 4.9-1.4-1.3-2.5-1.2-2.5-1.2-1 .8-1.3 2.8-1.3 4.7.4 1.4.7 3 .7 4.8 0 0 7.4-2 7.1-11 .1-.8 0-1.5-.2-2.2" opacity=".5" fill="#3e4347"/><ellipse transform="matrix(.9994-.0348.0348.9994-.5599 1.2272)" cx="35" cy="16.7" rx="3" ry="3" fill="#ed4c5c"/><g fill="#3e4347"><circle cx="33.9" cy="15.3" r=".5"/><circle cx="35.9" cy="15.2" r=".5"/><circle cx="34" cy="18.2" r=".5"/><circle cx="36" cy="18.1" r=".5"/><circle cx="33" cy="16.8" r=".5"/><circle cx="35" cy="16.7" r=".5"/><path d="m36.9 16.1c-.3 0-.5.2-.5.5 0 .3.2.5.5.5.3 0 .5-.2.5-.5 0-.3-.2-.5-.5-.5"/></g><path d="m57.7 51.7c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2c-1.6 0-1.9 1.2-4.3 1.2s-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-4.3-1.2-4.3-1.2v11.5h60v-11.5c.2 0-1.7 1.2-4.1 1.2" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m35.4 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/><path d="m47.1 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m58.7 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93d.svg
new file mode 100644
index 0000000..1ba0ab8
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93d.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m48.2 14.7l-3.3 8.4-6.5 2.8c0 0-10 2.7-10.4 2.8l-10.2 3.7c-.8.2-1.5.7-1.9 1.4l-4.2 8.6c-1.7-.4-2.1.4-3.4 4-1.2 3.1 1.5 4.1 2 4.3 2.9 1.1 4.3-.8 5-2.3.6-.1 1.2-.5 1.4-1.1l.4-1.2c.2-.7 0-1.4-.4-1.8l3.5-7.1 2.7-1c-.4 5.7 2.1 12.8-.1 19.8l19.1-.7c-5.5-6.9-2-15.6-1.8-22.6l8.4-5.4c.4-.3.8-.7 1-1.2l3.7-9.5-5-1.9"/><path d="m32.7 20.6l3.6-1.1-2.2 11.2-7.3-1.4z"/></g><path d="m26.8 24.9c1.9 1.7.1 4.4.1 4.4 3 .6 6.2-4.8 6.9-8.4l-7 4" fill="#eba352"/><path d="m37.8 6.4l-13.9 1.9c-2.2 2.7-1.4 4.5-1.8 5.8-.1.6-1.5 1.4-2.3 1.8-1.6 1 .5 2.4 1.4 2.4.3 1.4-1.5 1.8 2.5 1.8 0 0-4.3.9-1.6 2.2-.6 1.5-1.5 4.4 7.3 3 2.6-.4 4.3-4.5 4.3-4.5l4.3.2-.2-14.6" fill="#ffdd67"/><g fill="#937237"><path d="m25.4 14.8c-.2.8-.8 1.4-1.3 1.3-.6-.1-.6-.8-.4-1.6.2-.8.5-1.4 1-1.3s.8.7.7 1.6"/><path d="m25.2 20.1c0 0-1.8.9-2.4 1-1.3.4-1.4-.1-.6-.4.6-.3 1.7-.6 1.7-.6h1.3"/></g><path d="m57 3.1c4.6 2.4 6.4 8 3.9 12.5-2.5 4.5-8.2 6.2-12.8 3.8-4.6-2.4-6.4-8-3.9-12.5 2.4-4.5 8.1-6.2 12.8-3.8" fill="#ffce31"/><path d="m59.4 4.9c-4.9.6-8.3 2.4-9.6 3.3-.3-.5-.5-1-.7-1.7.7-.7 2.9-2.7 7.2-3.7-.9-.4-1.8-.6-2.7-.7-2.3.8-3.9 1.9-4.8 2.7 0-.6 0-1.3.1-2.1-.6.2-1.1.5-1.6.8-.4 5.6 3.2 7.7 4.5 8.3 0 .4.1 1.1-.2 2-1.4-.6-4.8-2.5-7.6-6.7-.3.5-.5 1.1-.7 1.6 2.9 4 6.3 5.8 7.8 6.5-.3.5-.6 1-1.1 1.4-1-.2-3.9-1.2-7-4.6.1.9.3 1.8.6 2.7 2 1.7 3.8 2.6 5 3-.5.4-1.2.7-1.9 1 .4.3.8.6 1.3.8.1 0 .2.1.3.1 5-2.5 5.1-6.6 5-8 .3-.2.9-.6 1.7-.8 0 1.6-.1 5.4-2 9.8.6 0 1.2-.1 1.7-.2 1.8-4.5 1.8-8.2 1.8-9.8.6 0 1.2 0 1.8.2.3.9.9 3.8-.4 8.1.7-.5 1.4-1.1 2-1.8.5-2.5.3-4.5.1-5.7.6.3 1.2.7 1.9 1.2.1-.6.1-1.2.1-1.8-4.7-3.2-8.4-1.2-9.6-.4-.4-.2-1-.5-1.6-1.1 1.3-.8 4.8-2.6 9.7-3-.3-.5-.7-.9-1.1-1.4" fill="#f2b200"/><g fill="#eba352"><ellipse transform="matrix(.9994-.0353.0353.9994-1.2782.9539)" cx="26.4" cy="36.7" rx="1.1" ry="1.5"/><path d="m34.6 35.2c0 .8-.4 1.5-1.1 1.5-.6 0-1.1-.6-1.2-1.4 0-.8.4-1.5 1.1-1.5.7-.1 1.2.5 1.2 1.4"/></g><path d="m23.3 9.2c0 0 11.6.5 12.1 14.3 0 0 7.4-2 7.1-11-.3-9.1-12.5-14.8-19.2-3.3" fill="#ed4c5c"/><path d="m42.2 10.2c-2.9 1.7-3.8 4.9-3.8 4.9-1.4-1.3-2.5-1.2-2.5-1.2-1 .8-1.3 2.8-1.3 4.7.4 1.4.7 3 .7 4.8 0 0 7.4-2 7.1-11 .1-.8 0-1.5-.2-2.2" opacity=".5" fill="#3e4347"/><path d="m37.9 16.6c.1 1.6-1.2 3-2.9 3.1-1.6.1-3-1.2-3.1-2.9-.1-1.6 1.2-3 2.9-3.1 1.7 0 3.1 1.3 3.1 2.9" fill="#ed4c5c"/><g fill="#3e4347"><circle cx="33.9" cy="15.3" r=".5"/><circle cx="35.9" cy="15.2" r=".5"/><path d="m34 17.7c-.3 0-.5.2-.5.5 0 .3.2.5.5.5s.5-.2.5-.5c0-.3-.2-.5-.5-.5"/><circle cx="36" cy="18.1" r=".5"/><path d="m33 16.3c-.3 0-.5.2-.5.5 0 .3.2.5.5.5.3 0 .5-.2.5-.5 0-.3-.3-.5-.5-.5"/><circle cx="35" cy="16.7" r=".5"/><path d="m36.9 16.1c-.3 0-.5.2-.5.5 0 .3.2.5.5.5.3 0 .5-.2.5-.5 0-.3-.2-.5-.5-.5"/></g><path d="m57.7 51.7c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2c-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2c-1.6 0-1.9 1.2-4.3 1.2-2.4 0-2.7-1.2-4.3-1.2s-1.9 1.2-4.3 1.2-2.7-1.2-4.3-1.2-1.9 1.2-4.3 1.2c-2.4 0-4.3-1.2-4.3-1.2v11.5h60v-11.5c.2 0-1.7 1.2-4.1 1.2" fill="#75d6ff"/><g fill="#42ade2"><path d="m23.8 60c-6.8.7-11.4-3.5-18.5-1.1 5.4-.3 13.6 2.9 18.5 1.1"/><path d="m35.4 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/><path d="m47 60c-6.8.7-11.4-3.5-18.5-1.1 5.5-.3 13.7 2.9 18.5 1.1"/><path d="m58.7 55.4c-6.8.7-11.5-3.6-18.5-1.1 5.5-.3 13.6 3 18.5 1.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fb.svg
new file mode 100644
index 0000000..58ad79f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m33.5 18l-3.1-1.8v10.8h6.9z"/><path d="m38.2 22.9c-2 1.3-.9 4.1-.9 4.1-2.8 0-4.8-5.6-4.8-9l5.7 4.9" fill="#e6b796"/><path d="m31.4 3.9l12.4 4.3c1.6 2.9.5 4.4.6 5.6 0 .6 1.1 1.6 1.7 2.1 1.3 1.2-.9 2.1-1.7 2-.5 1.2 1 2-2.7 1.2 0 0 3.8 1.6 1.1 2.3.3 1.5.5 4.3-7.2 1.4-2.3-.8-3.1-4.8-3.1-4.8l-3.9-.7 2.8-13.4" fill="#ffe1bd"/><path d="m40.2 2.9c-8.2-2.7-12.6 1.5-13.4 3.4-2.1 5-.3 10.6 3.5 14.8 0 0 1.8-.8 2.1-3 0 0-2 .9-2.9-3.4-.8-3.6 3.1-5.5 5-.6h.5c1.1-2.5-.9-5.6 2-6.6 2.5-.8 7.1 1.4 7.1 1.4.9-1.6-.5-4.9-3.9-6" fill="#594640"/><path d="m41.3 13.9c0 .8.4 1.4 1 1.4s.7-.6.7-1.4-.2-1.4-.7-1.4-1 .6-1 1.4" fill="#664e27"/><path d="m33.5 14.9c0-1.5-1.3-2.8-2.5-2.8 0 0 2.2 1.8 1.6 4.2 0 0 .9-.3.9-1.4" fill="#e6b796"/><path d="m40.5 18.9c0 0 1.5 1.1 2 1.4 1.1.6 1.3.2.7-.3-.5-.4-1.5-.8-1.5-.8l-1.2-.3" fill="#664e27"/><path d="m25.1 22.9l-2.6-6-3.5 1.6 2.9 6.7c.4 1 3.9 2.1 3.9 2.1l1.9-.9v-2.4l-2.6-1.1" fill="#ffe1bd"/><g fill="#3e4347"><path d="m17.9 58.6l.9-4.1c-.9-.8-1.2-.8-1.2-.8-.6-.3-1.4 0-1.7.6l-3.9 7.5c1.4.7 4.3-.3 5.9-3.2"/><path d="m31.6 54.9l1.5-3.8c-1-.7-3.3-1.7-3.3-1.7l-4 8.8c1.5.5 4.4-.4 5.8-3.3"/></g><g fill="#ffe1bd"><path d="m18.8 54.5l-.9 4.1c0 0 4.9-1.5 8.3-2 3.4-.6 6.2-7.5 6.2-7.5l-5.8-1.2c0 0-1.3 4.7-2.3 4.7-1.9-.1-3.9 2.3-5.5 1.9"/><path d="m31.6 54.9l1.5-3.8c1.4.4 2-.3 3.5.4 1.5.7.4-2.3.4-2.3l6.1-.8c0 0-.4 10.3-5.6 8.3-3.2-1.3-5.9-1.8-5.9-1.8"/></g><path d="M16,8.8c-3.1,1.8-4.1,5.6-2.4,8.7c1.8,3,5.7,4.1,8.8,2.3c3.1-1.8,4.1-5.6,2.4-8.7C23,8.1,19,7,16,8.8z" fill="#b5de24"/><path fill="#c94747" d="m38.4 26.5l4.4 1.6-.5 4.1-5.2-1.7z"/><path d="m51.7 38.8c-1.1-2.5-1.3-3.1-2.5-2.8 0 0-2.8-5.6-3.5-6.3-.8-.8-2.9-1.6-2.9-1.6l-.5 4.1.8.2 2.7 5.1c-.9.9.1 2.8 1.1 2.9 1.5 3.7 6.3 1.8 4.8-1.6" fill="#ffe1bd"/><path d="m42.7 40.7c0 0-2.6-9.8-3.7-13.6-.9-3.2-8.9-2.4-9.1-2.3l-2.2-.8c-.1 1.4-.8 2.6-1.9 3.4 0 0 3.7 1.4 3.7 1.5l-.5 11.9-3.6 7 7.1 1.5c.4-.7.7-1.4 1-2.1.7-1.2 1.9-1.1 2.4.3.2.6.4 1.2.6 1.8l6.8-.9-.6-7.7" fill="#ed4c5c"/><g fill="#ffce31"><path d="m25.5 47.7l1.1.2 1.7-2.3v2.7l1.1.2v-6.1z"/><path d="m41.7 48.6l1.1-.2.4-2-.3-3.1z"/><path d="m35.6 29.2l-1.9-4.5c-.4 0-.8 0-1.2-.1l.7 1.6-2.2-1.5c-.7 0-1.1.1-1.2.1l-1.3-.5 7.1 4.9"/><path d="m39.1 27.8c-.1-.2-.1-.5-.2-.7-.1-.4-.3-.7-.6-.9l-1.3 3 2.1-1.4"/><path d="m36.5 26.7l.7-1.3c-.7-.3-1.4-.5-2.3-.6l1.6 1.9"/></g><g fill="#3e4347"><path d="m25.9 49.6c-.6 1.1-1.4 2-2.4 2.7.4 4 2.6 4.5 2.6 4.5 1.7 0 3.4-1.1 3.8-2.7-.3-1.2-1.5-3-4-4.5"/><path d="m37.3 51c-.1.1-.2.3-.4.3-.4 4.2.5 5.5.5 5.5 3.4 1.1 4.7-2.3 4.7-2.3-.8-2.2-3.1-3.5-4.8-3.5"/></g><g fill="#ed4c5c"><path d="m16.2 8.7c.3.4.8.9 1.5 1.4 2.7 2.3 3.1 1.8 3.6 1.2.5-.6.9-1.1-1.8-3.4-1.2 0-2.3.2-3.3.8"/><path d="m16.9 20.2c.2-.5.4-1.2.6-2.3.6-3.5 0-3.6-.8-3.7s-1.4-.3-2 3.2c-.1.4-.1.8-.2 1.2.7.7 1.5 1.3 2.4 1.6"/><path d="m25.6 13.7c-.5.1-1.1.3-1.8.6-3.3 1.2-3.1 1.8-2.8 2.5.3.7.5 1.3 3.8.1.1 0 .2-.1.4-.1.3-1 .5-2.1.4-3.1"/></g><path d="m25.6 13.8c0-.1 0-.1 0 0-.1-.1-.2 0-.3 0h.3" fill="#42ade2"/><path d="m36.2 37.5c-5.4 0-5.4-4.8 0-4.8 5.4 0 5.4 4.8 0 4.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fc.svg
new file mode 100644
index 0000000..fb609ba
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fc.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m33.5 18l-3.1-1.8v10.8h6.9z"/><path d="m38.2 22.9c-2 1.3-.9 4.1-.9 4.1-2.8 0-4.8-5.6-4.8-9l5.7 4.9" fill="#e0a372"/><path d="m31.4 3.9l12.4 4.3c1.6 2.9.5 4.4.6 5.6 0 .6 1.1 1.6 1.7 2.1 1.3 1.2-.9 2.1-1.7 2-.5 1.2 1 2-2.7 1.2 0 0 3.8 1.6 1.1 2.3.3 1.5.5 4.3-7.2 1.4-2.3-.8-3.1-4.8-3.1-4.8l-3.9-.7 2.8-13.4" fill="#fed0ac"/><path d="m40.2 2.9c-8.2-2.7-12.6 1.5-13.4 3.4-2.1 5-.3 10.6 3.5 14.8 0 0 1.8-.8 2.1-3 0 0-2 .9-2.9-3.4-.8-3.6 3.1-5.5 5-.6h.5c1.1-2.5-.9-5.6 2-6.6 2.5-.8 7.1 1.4 7.1 1.4.9-1.6-.5-4.9-3.9-6" fill="#dbb471"/><path d="m41.3 13.9c0 .8.4 1.4 1 1.4.5 0 .7-.6.7-1.4s-.2-1.4-.7-1.4c-.6 0-1 .6-1 1.4" fill="#664e27"/><path d="m33.5 14.9c0-1.5-1.3-2.8-2.5-2.8 0 0 2.2 1.8 1.6 4.2 0 0 .9-.3.9-1.4" fill="#e0a372"/><path d="m40.5 18.9c0 0 1.5 1.1 2 1.4 1.1.6 1.3.2.7-.3-.5-.4-1.5-.8-1.5-.8l-1.2-.3" fill="#664e27"/><path d="m25.1 22.9l-2.6-6-3.5 1.6 2.9 6.7c.4 1 3.9 2.1 3.9 2.1l1.9-.9v-2.4l-2.6-1.1" fill="#fed0ac"/><g fill="#3e4347"><path d="m17.9 58.6l.9-4.1c-.9-.8-1.2-.8-1.2-.8-.6-.3-1.4 0-1.7.6l-3.9 7.5c1.4.7 4.3-.3 5.9-3.2"/><path d="m31.6 54.9l1.5-3.8c-1-.7-3.3-1.7-3.3-1.7l-4 8.8c1.5.5 4.4-.4 5.8-3.3"/></g><g fill="#fed0ac"><path d="m18.8 54.5l-.9 4.1c0 0 4.9-1.5 8.3-2 3.4-.6 6.2-7.5 6.2-7.5l-5.8-1.2c0 0-1.3 4.7-2.3 4.7-1.9-.1-3.9 2.3-5.5 1.9"/><path d="m31.6 54.9l1.5-3.8c1.4.4 2-.3 3.5.4 1.5.7.4-2.3.4-2.3l6.1-.8c0 0-.4 10.3-5.6 8.3-3.2-1.3-5.9-1.8-5.9-1.8"/></g><path d="M16,8.8c-3.1,1.8-4.1,5.6-2.4,8.7c1.8,3,5.7,4.1,8.8,2.3c3.1-1.8,4.1-5.6,2.4-8.7C23,8.1,19,7,16,8.8z" fill="#b5de24"/><path fill="#c94747" d="m38.4 26.5l4.4 1.6-.5 4.1-5.2-1.7z"/><path d="m51.7 38.8c-1.1-2.5-1.3-3.1-2.5-2.8 0 0-2.7-5.6-3.5-6.3-.8-.8-2.9-1.6-2.9-1.6l-.5 4.1.8.2 2.7 5.1c-.9.9.1 2.8 1.1 2.9 1.5 3.7 6.3 1.8 4.8-1.6" fill="#fed0ac"/><path d="m42.7 40.7c0 0-2.6-9.8-3.7-13.6-.9-3.2-8.9-2.4-9.1-2.3l-2.2-.8c-.1 1.4-.8 2.6-1.9 3.4 0 0 3.7 1.4 3.7 1.5l-.5 11.9-3.6 7 7.1 1.5c.4-.7.7-1.4 1-2.1.7-1.2 1.9-1.1 2.4.3.2.6.4 1.2.6 1.8l6.8-.9-.6-7.7" fill="#ed4c5c"/><g fill="#ffce31"><path d="m25.5 47.7l1.1.2 1.7-2.3v2.7l1.1.2v-6.1z"/><path d="m41.7 48.6l1.1-.2.4-2-.3-3.1z"/><path d="m35.6 29.2l-1.9-4.5c-.4 0-.8 0-1.2-.1l.7 1.6-2.2-1.5c-.7 0-1.1.1-1.2.1l-1.3-.5 7.1 4.9"/><path d="m39.1 27.8c-.1-.2-.1-.5-.2-.7-.1-.4-.3-.7-.6-.9l-1.3 3 2.1-1.4"/><path d="m36.5 26.7l.7-1.3c-.7-.3-1.4-.5-2.3-.6l1.6 1.9"/></g><g fill="#3e4347"><path d="m25.9 49.6c-.6 1.1-1.4 2-2.4 2.7.4 4 2.6 4.5 2.6 4.5 1.7 0 3.4-1.1 3.8-2.7-.3-1.2-1.5-3-4-4.5"/><path d="m37.3 51c-.1.1-.2.3-.4.3-.4 4.2.5 5.5.5 5.5 3.4 1.1 4.7-2.3 4.7-2.3-.8-2.2-3.1-3.5-4.8-3.5"/></g><g fill="#ed4c5c"><path d="m16.2 8.7c.3.4.8.9 1.5 1.4 2.7 2.3 3.1 1.8 3.6 1.2.5-.6.9-1.1-1.8-3.4-1.2 0-2.3.2-3.3.8"/><path d="m16.9 20.2c.2-.5.4-1.2.6-2.3.6-3.5 0-3.6-.8-3.7s-1.4-.3-2 3.2c-.1.4-.1.8-.2 1.2.7.7 1.5 1.3 2.4 1.6"/><path d="m25.6 13.7c-.5.1-1.1.3-1.8.6-3.3 1.2-3.1 1.8-2.8 2.5.3.7.5 1.3 3.8.1.1 0 .2-.1.4-.1.3-1 .5-2.1.4-3.1"/></g><path d="m25.6 13.8c0-.1 0-.1 0 0-.1-.1-.2 0-.3 0h.3" fill="#42ade2"/><path d="m36.2 37.4c-5.4 0-5.4-4.8 0-4.8 5.4.1 5.4 4.8 0 4.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fd.svg
new file mode 100644
index 0000000..facf15d
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m33.5 18l-3.1-1.8v10.8h6.9z"/><path d="m38.2 22.9c-2 1.3-.9 4.1-.9 4.1-2.8 0-4.8-5.6-4.8-9l5.7 4.9" fill="#b58360"/><path d="m31.4 3.9l12.4 4.3c1.6 2.9.5 4.4.6 5.6 0 .6 1.1 1.6 1.7 2.1 1.3 1.2-.9 2.1-1.7 2-.5 1.2 1 2-2.7 1.2 0 0 3.8 1.6 1.1 2.3.3 1.5.5 4.3-7.2 1.4-2.3-.8-3.1-4.8-3.1-4.8l-3.9-.7 2.8-13.4" fill="#d6a57c"/><path d="m40.2 2.9c-8.2-2.7-12.6 1.5-13.4 3.4-2.1 5-.3 10.6 3.5 14.8 0 0 1.8-.8 2.1-3 0 0-2 .9-2.9-3.4-.8-3.6 3.1-5.5 5-.6h.5c1.1-2.5-.9-5.6 2-6.6 2.5-.8 7.1 1.4 7.1 1.4.9-1.6-.5-4.9-3.9-6" fill="#594640"/><path d="m41.3 13.9c0 .8.4 1.4 1 1.4s.7-.6.7-1.4-.2-1.4-.7-1.4-1 .6-1 1.4" fill="#664e27"/><path d="m33.5 14.9c0-1.5-1.3-2.8-2.5-2.8 0 0 2.2 1.8 1.6 4.2 0 0 .9-.3.9-1.4" fill="#b58360"/><path d="m40.5 18.9c0 0 1.5 1.1 2 1.4 1.1.6 1.3.2.7-.3-.5-.4-1.5-.8-1.5-.8l-1.2-.3" fill="#664e27"/><path d="m25.1 22.9l-2.6-6-3.5 1.6 2.9 6.7c.4 1 3.9 2.1 3.9 2.1l1.9-.9v-2.4l-2.6-1.1" fill="#d6a57c"/><g fill="#3e4347"><path d="m17.9 58.6l.9-4.1c-.9-.8-1.2-.8-1.2-.8-.6-.3-1.4 0-1.7.6l-3.9 7.5c1.4.7 4.3-.3 5.9-3.2"/><path d="m31.6 54.9l1.5-3.8c-1-.7-3.3-1.7-3.3-1.7l-4 8.8c1.5.5 4.4-.4 5.8-3.3"/></g><g fill="#d6a57c"><path d="m18.8 54.5l-.9 4.1c0 0 4.9-1.5 8.3-2 3.4-.6 6.2-7.5 6.2-7.5l-5.8-1.2c0 0-1.3 4.7-2.3 4.7-1.9-.1-3.9 2.3-5.5 1.9"/><path d="m31.6 54.9l1.5-3.8c1.4.4 2-.3 3.5.4 1.5.7.4-2.3.4-2.3l6.1-.8c0 0-.4 10.3-5.6 8.3-3.2-1.3-5.9-1.8-5.9-1.8"/></g><path d="M16,8.8c-3.1,1.8-4.1,5.6-2.4,8.7c1.8,3,5.7,4.1,8.8,2.3c3.1-1.8,4.1-5.6,2.4-8.7C23,8.1,19,7,16,8.8z" fill="#b5de24"/><path fill="#c94747" d="m38.4 26.5l4.4 1.6-.5 4.1-5.2-1.7z"/><path d="m51.7 38.8c-1.1-2.5-1.3-3.1-2.5-2.8 0 0-2.8-5.6-3.5-6.3-.8-.8-2.9-1.6-2.9-1.6l-.5 4.1.8.2 2.7 5.1c-.9.9.1 2.8 1.1 2.9 1.5 3.7 6.3 1.8 4.8-1.6" fill="#d6a57c"/><path d="m42.7 40.7c0 0-2.6-9.8-3.7-13.6-.9-3.2-8.9-2.4-9.1-2.3l-2.2-.8c-.1 1.4-.8 2.6-1.9 3.4 0 0 3.7 1.4 3.7 1.5l-.5 11.9-3.6 7 7.1 1.5c.4-.7.7-1.4 1-2.1.7-1.2 1.9-1.1 2.4.3.2.6.4 1.2.6 1.8l6.8-.9-.6-7.7" fill="#ed4c5c"/><g fill="#ffce31"><path d="m25.5 47.7l1.1.2 1.7-2.3v2.7l1.1.2v-6.1z"/><path d="m41.7 48.6l1.1-.2.4-2-.3-3.1z"/><path d="m35.6 29.2l-1.9-4.5c-.4 0-.8 0-1.2-.1l.7 1.6-2.2-1.5c-.7 0-1.1.1-1.2.1l-1.3-.5 7.1 4.9"/><path d="m39.1 27.8c-.1-.2-.1-.5-.2-.7-.1-.4-.3-.7-.6-.9l-1.3 3 2.1-1.4"/><path d="m36.5 26.7l.7-1.3c-.7-.3-1.4-.5-2.3-.6l1.6 1.9"/></g><g fill="#3e4347"><path d="m25.9 49.6c-.6 1.1-1.4 2-2.4 2.7.4 4 2.6 4.5 2.6 4.5 1.7 0 3.4-1.1 3.8-2.7-.3-1.2-1.5-3-4-4.5"/><path d="m37.3 51c-.1.1-.2.3-.4.3-.4 4.2.5 5.5.5 5.5 3.4 1.1 4.7-2.3 4.7-2.3-.8-2.2-3.1-3.5-4.8-3.5"/></g><g fill="#ed4c5c"><path d="m16.2 8.7c.3.4.8.9 1.5 1.4 2.7 2.3 3.1 1.8 3.6 1.2.5-.6.9-1.1-1.8-3.4-1.2 0-2.3.2-3.3.8"/><path d="m16.9 20.2c.2-.5.4-1.2.6-2.3.6-3.5 0-3.6-.8-3.7s-1.4-.3-2 3.2c-.1.4-.1.8-.2 1.2.7.7 1.5 1.3 2.4 1.6"/><path d="m25.6 13.7c-.5.1-1.1.3-1.8.6-3.3 1.2-3.1 1.8-2.8 2.5.3.7.5 1.3 3.8.1.1 0 .2-.1.4-.1.3-1 .5-2.1.4-3.1"/></g><path d="m25.6 13.8c0-.1 0-.1 0 0-.1-.1-.2 0-.3 0h.3" fill="#42ade2"/><path d="m36.2 37.5c-5.4 0-5.4-4.8 0-4.8 5.4 0 5.4 4.8 0 4.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fe.svg
new file mode 100644
index 0000000..2b3023f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3fe.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m33.5 18l-3.1-1.8v10.8h6.9z"/><path d="m38.2 22.9c-2 1.3-.9 4.1-.9 4.1-2.8 0-4.8-5.6-4.8-9l5.7 4.9" fill="#935e3e"/><path d="m31.4 3.9l12.4 4.3c1.6 2.9.5 4.4.6 5.6 0 .6 1.1 1.6 1.7 2.1 1.3 1.2-.9 2.1-1.7 2-.5 1.2 1 2-2.7 1.2 0 0 3.8 1.6 1.1 2.3.3 1.5.5 4.3-7.2 1.4-2.3-.8-3.1-4.8-3.1-4.8l-3.9-.7 2.8-13.4" fill="#b47d56"/><path d="m40.2 2.9c-8.2-2.7-12.6 1.5-13.4 3.4-2.1 5-.3 10.6 3.5 14.8 0 0 1.8-.8 2.1-3 0 0-2 .9-2.9-3.4-.8-3.6 3.1-5.5 5-.6h.5c1.1-2.5-.9-5.6 2-6.6 2.5-.8 7.1 1.4 7.1 1.4.9-1.6-.5-4.9-3.9-6" fill="#231f20"/><path d="m41.3 13.9c0 .8.4 1.4 1 1.4s.7-.6.7-1.4-.2-1.4-.7-1.4-1 .6-1 1.4" fill="#664e27"/><path d="m33.5 14.9c0-1.5-1.3-2.8-2.5-2.8 0 0 2.2 1.8 1.6 4.2 0 0 .9-.3.9-1.4" fill="#935e3e"/><path d="m40.5 18.9c0 0 1.5 1.1 2 1.4 1.1.6 1.3.2.7-.3-.5-.4-1.5-.8-1.5-.8l-1.2-.3" fill="#664e27"/><path d="m25.1 22.9l-2.6-6-3.5 1.6 2.9 6.7c.4 1 3.9 2.1 3.9 2.1l1.9-.9v-2.4l-2.6-1.1" fill="#b47d56"/><g fill="#3e4347"><path d="m17.9 58.6l.9-4.1c-.9-.8-1.2-.8-1.2-.8-.6-.3-1.4 0-1.7.6l-3.9 7.5c1.4.7 4.3-.3 5.9-3.2"/><path d="m31.6 54.9l1.5-3.8c-1-.7-3.3-1.7-3.3-1.7l-4 8.8c1.5.5 4.4-.4 5.8-3.3"/></g><g fill="#b47d56"><path d="m18.8 54.5l-.9 4.1c0 0 4.9-1.5 8.3-2 3.4-.6 6.2-7.5 6.2-7.5l-5.8-1.2c0 0-1.3 4.7-2.3 4.7-1.9-.1-3.9 2.3-5.5 1.9"/><path d="m31.6 54.9l1.5-3.8c1.4.4 2-.3 3.5.4 1.5.7.4-2.3.4-2.3l6.1-.8c0 0-.4 10.3-5.6 8.3-3.2-1.3-5.9-1.8-5.9-1.8"/></g><path d="M16,8.8c-3.1,1.8-4.1,5.6-2.4,8.7c1.8,3,5.7,4.1,8.8,2.3c3.1-1.8,4.1-5.6,2.4-8.7C23,8.1,19,7,16,8.8z" fill="#b5de24"/><path fill="#c94747" d="m38.4 26.5l4.4 1.6-.5 4.1-5.2-1.7z"/><path d="m51.7 38.8c-1.1-2.5-1.3-3.1-2.5-2.8 0 0-2.8-5.6-3.5-6.3-.8-.8-2.9-1.6-2.9-1.6l-.5 4.1.8.2 2.7 5.1c-.9.9.1 2.8 1.1 2.9 1.5 3.7 6.3 1.8 4.8-1.6" fill="#b47d56"/><path d="m42.7 40.7c0 0-2.6-9.8-3.7-13.6-.9-3.2-8.9-2.4-9.1-2.3l-2.2-.8c-.1 1.4-.8 2.6-1.9 3.4 0 0 3.7 1.4 3.7 1.5l-.5 11.9-3.6 7 7.1 1.5c.4-.7.7-1.4 1-2.1.7-1.2 1.9-1.1 2.4.3.2.6.4 1.2.6 1.8l6.8-.9-.6-7.7" fill="#ed4c5c"/><g fill="#ffce31"><path d="m25.5 47.7l1.1.2 1.7-2.3v2.7l1.1.2v-6.1z"/><path d="m41.7 48.6l1.1-.2.4-2-.3-3.1z"/><path d="m35.6 29.2l-1.9-4.5c-.4 0-.8 0-1.2-.1l.7 1.6-2.2-1.5c-.7 0-1.1.1-1.2.1l-1.3-.5 7.1 4.9"/><path d="m39.1 27.8c-.1-.2-.1-.5-.2-.7-.1-.4-.3-.7-.6-.9l-1.3 3 2.1-1.4"/><path d="m36.5 26.7l.7-1.3c-.7-.3-1.4-.5-2.3-.6l1.6 1.9"/></g><g fill="#3e4347"><path d="m25.9 49.6c-.6 1.1-1.4 2-2.4 2.7.4 4 2.6 4.5 2.6 4.5 1.7 0 3.4-1.1 3.8-2.7-.3-1.2-1.5-3-4-4.5"/><path d="m37.3 51c-.1.1-.2.3-.4.3-.4 4.2.5 5.5.5 5.5 3.4 1.1 4.7-2.3 4.7-2.3-.8-2.2-3.1-3.5-4.8-3.5"/></g><g fill="#ed4c5c"><path d="m16.2 8.7c.3.4.8.9 1.5 1.4 2.7 2.3 3.1 1.8 3.6 1.2.5-.6.9-1.1-1.8-3.4-1.2 0-2.3.2-3.3.8"/><path d="m16.9 20.2c.2-.5.4-1.2.6-2.3.6-3.5 0-3.6-.8-3.7s-1.4-.3-2 3.2c-.1.4-.1.8-.2 1.2.7.7 1.5 1.3 2.4 1.6"/><path d="m25.6 13.7c-.5.1-1.1.3-1.8.6-3.3 1.2-3.1 1.8-2.8 2.5.3.7.5 1.3 3.8.1.1 0 .2-.1.4-.1.3-1 .5-2.1.4-3.1"/></g><path d="m25.6 13.8c0-.1 0-.1 0 0-.1-.1-.2 0-.3 0h.3" fill="#42ade2"/><path d="m36.2 37.5c-5.4 0-5.4-4.8 0-4.8 5.4 0 5.4 4.8 0 4.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3ff.svg
new file mode 100644
index 0000000..65220a5
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93e-1f3ff.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m33.5 18l-3.1-1.8v10.8h6.9z"/><path d="m38.2 22.9c-2 1.3-.9 4.1-.9 4.1-2.8 0-4.8-5.6-4.8-9l5.7 4.9" fill="#705041"/><path d="m31.4 3.9l12.4 4.3c1.6 2.9.5 4.4.6 5.6 0 .6 1.1 1.6 1.7 2.1 1.3 1.2-.9 2.1-1.7 2-.5 1.2 1 2-2.7 1.2 0 0 3.8 1.6 1.1 2.3.3 1.5.5 4.3-7.2 1.4-2.3-.8-3.1-4.8-3.1-4.8l-3.9-.7 2.8-13.4" fill="#8a6859"/><path d="m40.2 2.9c-8.2-2.7-12.6 1.5-13.4 3.4-2.1 5-.3 10.6 3.5 14.8 0 0 1.8-.8 2.1-3 0 0-2 .9-2.9-3.4-.8-3.6 3.1-5.5 5-.6h.5c1.1-2.5-.9-5.6 2-6.6 2.5-.8 7.1 1.4 7.1 1.4.9-1.6-.5-4.9-3.9-6" fill="#231f20"/><path d="m41.3 13.9c0 .8.4 1.4 1 1.4s.7-.6.7-1.4-.2-1.4-.7-1.4-1 .6-1 1.4" fill="#574137"/><path d="m33.5 14.9c0-1.5-1.3-2.8-2.5-2.8 0 0 2.2 1.8 1.6 4.2 0 0 .9-.3.9-1.4" fill="#705041"/><path d="m40.5 18.9c0 0 1.5 1.1 2 1.4 1.1.6 1.3.2.7-.3-.5-.4-1.5-.8-1.5-.8l-1.2-.3" fill="#574137"/><path d="m25.1 22.9l-2.6-6-3.5 1.6 2.9 6.7c.4 1 3.9 2.1 3.9 2.1l1.9-.9v-2.4l-2.6-1.1" fill="#8a6859"/><g fill="#3e4347"><path d="m17.9 58.6l.9-4.1c-.9-.8-1.2-.8-1.2-.8-.6-.3-1.4 0-1.7.6l-3.9 7.5c1.4.7 4.3-.3 5.9-3.2"/><path d="m31.6 54.9l1.5-3.8c-1-.7-3.3-1.7-3.3-1.7l-4 8.8c1.5.5 4.4-.4 5.8-3.3"/></g><g fill="#8a6859"><path d="m18.8 54.5l-.9 4.1c0 0 4.9-1.5 8.3-2 3.4-.6 6.2-7.5 6.2-7.5l-5.8-1.2c0 0-1.3 4.7-2.3 4.7-1.9-.1-3.9 2.3-5.5 1.9"/><path d="m31.6 54.9l1.5-3.8c1.4.4 2-.3 3.5.4 1.5.7.4-2.3.4-2.3l6.1-.8c0 0-.4 10.3-5.6 8.3-3.2-1.3-5.9-1.8-5.9-1.8"/></g><path d="M16,8.8c-3.1,1.8-4.1,5.6-2.4,8.7c1.8,3,5.7,4.1,8.8,2.3c3.1-1.8,4.1-5.6,2.4-8.7C23,8.1,19,7,16,8.8z" fill="#b5de24"/><path fill="#c94747" d="m38.4 26.5l4.4 1.6-.5 4.1-5.2-1.7z"/><path d="m51.7 38.8c-1.1-2.5-1.3-3.1-2.5-2.8 0 0-2.8-5.6-3.5-6.3-.8-.8-2.9-1.6-2.9-1.6l-.5 4.1.8.2 2.7 5.1c-.9.9.1 2.8 1.1 2.9 1.5 3.7 6.3 1.8 4.8-1.6" fill="#8a6859"/><path d="m42.7 40.7c0 0-2.6-9.8-3.7-13.6-.9-3.2-8.9-2.4-9.1-2.3l-2.2-.8c-.1 1.4-.8 2.6-1.9 3.4 0 0 3.7 1.4 3.7 1.5l-.5 11.9-3.6 7 7.1 1.5c.4-.7.7-1.4 1-2.1.7-1.2 1.9-1.1 2.4.3.2.6.4 1.2.6 1.8l6.8-.9-.6-7.7" fill="#ed4c5c"/><g fill="#ffce31"><path d="m25.5 47.7l1.1.2 1.7-2.3v2.7l1.1.2v-6.1z"/><path d="m41.7 48.6l1.1-.2.4-2-.3-3.1z"/><path d="m35.6 29.2l-1.9-4.5c-.4 0-.8 0-1.2-.1l.7 1.6-2.2-1.5c-.7 0-1.1.1-1.2.1l-1.3-.5 7.1 4.9"/><path d="m39.1 27.8c-.1-.2-.1-.5-.2-.7-.1-.4-.3-.7-.6-.9l-1.3 3 2.1-1.4"/><path d="m36.5 26.7l.7-1.3c-.7-.3-1.4-.5-2.3-.6l1.6 1.9"/></g><g fill="#3e4347"><path d="m25.9 49.6c-.6 1.1-1.4 2-2.4 2.7.4 4 2.6 4.5 2.6 4.5 1.7 0 3.4-1.1 3.8-2.7-.3-1.2-1.5-3-4-4.5"/><path d="m37.3 51c-.1.1-.2.3-.4.3-.4 4.2.5 5.5.5 5.5 3.4 1.1 4.7-2.3 4.7-2.3-.8-2.2-3.1-3.5-4.8-3.5"/></g><g fill="#ed4c5c"><path d="m16.2 8.7c.3.4.8.9 1.5 1.4 2.7 2.3 3.1 1.8 3.6 1.2.5-.6.9-1.1-1.8-3.4-1.2 0-2.3.2-3.3.8"/><path d="m16.9 20.2c.2-.5.4-1.2.6-2.3.6-3.5 0-3.6-.8-3.7s-1.4-.3-2 3.2c-.1.4-.1.8-.2 1.2.7.7 1.5 1.3 2.4 1.6"/><path d="m25.6 13.7c-.5.1-1.1.3-1.8.6-3.3 1.2-3.1 1.8-2.8 2.5.3.7.5 1.3 3.8.1.1 0 .2-.1.4-.1.3-1 .5-2.1.4-3.1"/></g><path d="m25.6 13.8c0-.1 0-.1 0 0-.1-.1-.2 0-.3 0h.3" fill="#42ade2"/><path d="m36.2 37.4c-5.4 0-5.4-4.8 0-4.8 5.4.1 5.4 4.8 0 4.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f93e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f93e.svg
new file mode 100644
index 0000000..d3a20ac
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f93e.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m33.5 18l-3.1-1.8v10.8h6.9z"/><path d="m38.2 22.9c-2 1.3-.9 4.1-.9 4.1-2.8 0-4.8-5.6-4.8-9l5.7 4.9" fill="#eba352"/><path d="m31.4 3.9l12.4 4.3c1.6 2.9.5 4.4.6 5.6 0 .6 1.1 1.6 1.7 2.1 1.3 1.2-.9 2.1-1.7 2-.5 1.2 1 2-2.7 1.2 0 0 3.8 1.6 1.1 2.3.3 1.5.5 4.3-7.2 1.4-2.3-.8-3.1-4.8-3.1-4.8l-3.9-.7 2.8-13.4" fill="#ffdd67"/><path d="m40.2 2.9c-8.2-2.7-12.6 1.5-13.4 3.4-2.1 5-.3 10.6 3.5 14.8 0 0 1.8-.8 2.1-3 0 0-2 .9-2.9-3.4-.8-3.6 3.1-5.5 5-.6h.5c1.1-2.5-.9-5.6 2-6.6 2.5-.8 7.1 1.4 7.1 1.4.9-1.6-.5-4.9-3.9-6" fill="#ffb300"/><path d="m41.3 13.9c0 .8.4 1.4 1 1.4s.7-.6.7-1.4-.2-1.4-.7-1.4-1 .6-1 1.4" fill="#937237"/><path d="m33.5 14.9c0-1.5-1.3-2.8-2.5-2.8 0 0 2.2 1.8 1.6 4.2 0 0 .9-.3.9-1.4" fill="#eba352"/><path d="m40.5 18.9c0 0 1.5 1.1 2 1.4 1.1.6 1.3.2.7-.3-.5-.4-1.5-.8-1.5-.8l-1.2-.3" fill="#937237"/><path d="m25.1 22.9l-2.6-6-3.5 1.6 2.9 6.7c.4 1 3.9 2.1 3.9 2.1l1.9-.9v-2.4l-2.6-1.1" fill="#ffdd67"/><g fill="#3e4347"><path d="m17.9 58.6l.9-4.1c-.9-.8-1.2-.8-1.2-.8-.6-.3-1.4 0-1.7.6l-3.9 7.5c1.4.7 4.3-.3 5.9-3.2"/><path d="m31.6 54.9l1.5-3.8c-1-.7-3.3-1.7-3.3-1.7l-4 8.8c1.5.5 4.4-.4 5.8-3.3"/></g><g fill="#ffdd67"><path d="m18.8 54.5l-.9 4.1c0 0 4.9-1.5 8.3-2 3.4-.6 6.2-7.5 6.2-7.5l-5.8-1.2c0 0-1.3 4.7-2.3 4.7-1.9-.1-3.9 2.3-5.5 1.9"/><path d="m31.6 54.9l1.5-3.8c1.4.4 2-.3 3.5.4 1.5.7.4-2.3.4-2.3l6.1-.8c0 0-.4 10.3-5.6 8.3-3.2-1.3-5.9-1.8-5.9-1.8"/></g><path d="M16,8.8c-3.1,1.8-4.1,5.6-2.4,8.7c1.8,3,5.7,4.1,8.8,2.3c3.1-1.8,4.1-5.6,2.4-8.7C23,8.1,19,7,16,8.8z" fill="#b5de24"/><path fill="#c94747" d="m38.4 26.5l4.4 1.6-.5 4.1-5.2-1.7z"/><path d="m51.7 38.8c-1.1-2.5-1.3-3.1-2.5-2.8 0 0-2.8-5.6-3.5-6.3-.8-.8-2.9-1.6-2.9-1.6l-.5 4.1.8.2 2.7 5.1c-.9.9.1 2.8 1.1 2.9 1.5 3.7 6.3 1.8 4.8-1.6" fill="#ffdd67"/><path d="m42.7 40.7c0 0-2.6-9.8-3.7-13.6-.9-3.2-8.9-2.4-9.1-2.3l-2.2-.8c-.1 1.4-.8 2.6-1.9 3.4 0 0 3.7 1.4 3.7 1.5l-.5 11.9-3.6 7 7.1 1.5c.4-.7.7-1.4 1-2.1.7-1.2 1.9-1.1 2.4.3.2.6.4 1.2.6 1.8l6.8-.9-.6-7.7" fill="#ed4c5c"/><g fill="#ffce31"><path d="m25.5 47.7l1.1.2 1.7-2.3v2.7l1.1.2v-6.1z"/><path d="m41.7 48.6l1.1-.2.4-2-.3-3.1z"/><path d="m35.6 29.2l-1.9-4.5c-.4 0-.8 0-1.2-.1l.7 1.6-2.2-1.5c-.7 0-1.1.1-1.2.1l-1.3-.5 7.1 4.9"/><path d="m39.1 27.8c-.1-.2-.1-.5-.2-.7-.1-.4-.3-.7-.6-.9l-1.3 3 2.1-1.4"/><path d="m36.5 26.7l.7-1.3c-.7-.3-1.4-.5-2.3-.6l1.6 1.9"/></g><g fill="#3e4347"><path d="m25.9 49.6c-.6 1.1-1.4 2-2.4 2.7.4 4 2.6 4.5 2.6 4.5 1.7 0 3.4-1.1 3.8-2.7-.3-1.2-1.5-3-4-4.5"/><path d="m37.3 51c-.1.1-.2.3-.4.3-.4 4.2.5 5.5.5 5.5 3.4 1.1 4.7-2.3 4.7-2.3-.8-2.2-3.1-3.5-4.8-3.5"/></g><g fill="#ed4c5c"><path d="m16.2 8.7c.3.4.8.9 1.5 1.4 2.7 2.3 3.1 1.8 3.6 1.2.5-.6.9-1.1-1.8-3.4-1.2 0-2.3.2-3.3.8"/><path d="m16.9 20.2c.2-.5.4-1.2.6-2.3.6-3.5 0-3.6-.8-3.7s-1.4-.3-2 3.2c-.1.4-.1.8-.2 1.2.7.7 1.5 1.3 2.4 1.6"/><path d="m25.6 13.7c-.5.1-1.1.3-1.8.6-3.3 1.2-3.1 1.8-2.8 2.5.3.7.5 1.3 3.8.1.1 0 .2-.1.4-.1.3-1 .5-2.1.4-3.1"/></g><path d="m25.6 13.8c0-.1 0-.1 0 0-.1-.1-.2 0-.3 0h.3" fill="#42ade2"/><path d="m36.2 37.5c-5.4 0-5.4-4.8 0-4.8 5.4 0 5.4 4.8 0 4.8" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f940.svg b/build/js/jsxc/lib/emojione/assets/svg/1f940.svg
new file mode 100644
index 0000000..dda76b8
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f940.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m38.7 15.9c-.2-3.5-1.3-7-3.9-9.5-1.3-1.3-2.9-2.2-4.6-2.7-1.8-.5-3.6-.3-5.2.3-1.6.7-3 1.8-4 3.1-1 1.3-1.8 2.8-2.3 4.4-1.1 3.1-1.4 6.4-.7 9.7.6 3.2 1.9 6.5 3.2 9.7 1.3 3.3 2.7 6.6 3.9 10 2.4 6.8 3.8 14 4 21.1h-6.1c.2-6.7-.6-13.4-2.5-20-.9-3.3-2.1-6.6-3.2-9.9-1.1-3.3-2.3-6.8-2.7-10.4-.5-3.6 0-7.5 1.5-10.9.8-1.7 1.8-3.4 3.1-4.8 1.3-1.5 3.1-2.7 5.2-3.4 2.1-.7 4.4-.7 6.4 0 2 .7 3.7 1.9 4.9 3.3 2.3 2.9 3.1 6.5 3 10" fill="#7b853d"/><g fill="#9ca84d"><path d="m3.9 23.5c4.9-7.1 11.8-5.3 11.8-5.3s4.2 3.9-2.3 10c-4.5 4.1-6.4 12.3-6.4 12.3s-8.8-8.8-3.1-17"/><path d="m38.4 52.4c-6.9-3.6-5.1-8.7-5.1-8.7s3.8-3.1 9.7 1.7c4 3.3 12 4.8 12 4.8s-8.6 6.5-16.6 2.2"/></g><path d="m48 17c-7-5.7-10.3-8.7-14.3-6.6-4 2.1-2 17.2 6.5 18 8.3.8 11.7 6.2 11.7 6.2s7.4-8.4-3.9-17.6" fill="#803c3c"/><path d="m34.8 21.8c-1.5-8.1-3.8-12.1.2-14.2 4-2.1 22 9.8 17.1 15.5-6 7.1-5.8 11.6-5.8 11.6s-9.2-.8-11.5-12.9" fill="#663030"/><path d="m38.3 27.9c1.9 2.8 14.1-.3 18.9 3.1 0 0 2.2-6.9-2.7-10.2-2.8-1.8-22.6-2.4-16.2 7.1" fill="#994848"/><path d="m42.3 22.5c-12.8-6-13.1-13.4-7.8-16.1 5.3-2.7 15 .2 18.2 7.8 3.2 7.8 9.3 12.5 9.3 12.5s-9.9.4-19.7-4.2" fill="#b35454"/><path d="m48.7 20.2c1.5-12.4-9.3-16.3-14.6-13.6-5.3 2.7-5.7 10.7-.9 17.7 4.8 7.1 6.1 12.2 6.1 12.2s8.3-7.5 9.4-16.3" fill="#cc6060"/><path d="M36,9.7c-8.1,4.3-7-1.2-1.7-3.9c13-6.7,21.3,6.7,21.3,6.7S43.1,5.8,36,9.7z" fill="#7b853d"/><path d="m36 9.7c1.5-2.2 6.2-6.6.2-5.1-11.8 2.9-5.8 20.3-5.8 20.3s1.1-8.8 5.6-15.2" fill="#9ca84d"/><g fill="#594640"><path d="m16.3 46.6l7-3.1.6 4z"/><path d="m23.9 25.4l-4.6 3.4-1.1-2.9z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f941.svg b/build/js/jsxc/lib/emojione/assets/svg/1f941.svg
new file mode 100644
index 0000000..3a07224
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f941.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m60.1 52.1l-28.1 6.4-28.1-6.4v-17.9h56.2z"/><path d="m32 37.7c0 0-23.4-.6-30-10.4v5.7c0 0 3.2 8.5 30 8.5 26.8 0 30-8.5 30-8.5v-5.7c-6.6 9.8-30 10.4-30 10.4" fill="#b2c1c0"/><path d="m32 16.9c-16.6 0-30 4.7-30 10.4s13.4 10.4 30 10.4c16.6 0 30-4.7 30-10.4s-13.4-10.4-30-10.4" fill="#e8e8e8"/><path d="m32 56.6c0 0-23.4-.6-30-10.4v5.7c0 0 3.2 8.5 30 8.5 26.8 0 30-8.5 30-8.5v-5.7c-6.6 9.8-30 10.4-30 10.4" fill="#b2c1c0"/><path d="m60.1 42.6c0 0 0 0 0 3.6 0 5.2-12.6 9.5-28.1 9.5-15.5 0-28.1-4.2-28.1-9.5v-3.6c-1.2 1.1-1.9 2.3-1.9 3.6 0 5.7 13.4 10.4 30 10.4 16.6 0 30-4.7 30-10.4 0-1.3-.7-2.5-1.9-3.6" fill="#e8e8e8"/><path d="m25.2 38.5c0 0 0 0 0 0" opacity=".5" fill="#3e4347"/><path d="m32 21.6c13.7 0 25.1 3.3 27.6 7.6.4-.6.6-1.3.6-1.9 0-5.2-12.1-9.5-28.2-9.5s-28.1 4.4-28.1 9.5c0 .6.2 1.3.5 1.9 2.6-4.3 14-7.6 27.6-7.6" fill="#b2c1c0"/><path d="m32 36.4c14 0 25-3 27.6-7.1-2.5-4.4-13.9-7.6-27.6-7.6-13.6 0-25 3.3-27.6 7.6 2.5 4.1 13.5 7.1 27.6 7.1" fill="#fff"/><path d="m46.5 23.4c-.6-.3-1.2-.5-1.7-.5l-36.2-20.9c-.5-.2-1.9 2.1-1.4 2.4l36.7 20.2c.2.4.7.9 1.2 1.2 3.5 2 4.9-.4 1.4-2.4" fill="#d3976e"/><path fill="#89664c" d="m33.7 19l2.2-1.2-1.7-1-2.2 1.3z"/><path d="m55.4 2l-36.2 20.9c-.5 0-1.1.1-1.7.5-3.5 2-2.1 4.4 1.4 2.4.6-.3 1-.8 1.2-1.2l36.7-20.2c.5-.3-.9-2.6-1.4-2.4" fill="#d3976e"/><path d="m3.9 53.3v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="6.7" cy="53.3" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m5.8 38.6v14.6c0 .3.4.5.9.5s.9-.2.9-.5v-14.6h-1.8" fill="#8a8e91"/><path d="m3.9 34.4v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="6.7" cy="34.4" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m54.5 53.3v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="57.3" cy="53.3" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m56.4 38.6v14.6c0 .3.4.5.9.5s.9-.2.9-.5v-14.6h-1.8" fill="#8a8e91"/><path d="m54.5 34.4v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="57.3" cy="34.4" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m38.6 57.1v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="41.4" cy="57.1" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m40.4 42.4v14.6c0 .3.4.5.9.5s.9-.2.9-.5v-14.6h-1.8" fill="#8a8e91"/><path d="m38.6 38.2v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="41.4" cy="38.2" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m19.8 57.1v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="22.6" cy="57.1" rx="2.8" ry=".9" fill="#e8e8e8"/><path d="m21.7 42.4v14.6c0 .3.4.5.9.5s.9-.2.9-.5v-14.6h-1.8" fill="#8a8e91"/><path d="m19.8 38.2v3.8c0 1.5 5.6 1.5 5.6 0v-3.8h-5.6" fill="#b2c1c0"/><ellipse cx="22.6" cy="38.2" rx="2.8" ry=".9" fill="#e8e8e8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f942.svg b/build/js/jsxc/lib/emojione/assets/svg/1f942.svg
new file mode 100644
index 0000000..41384a1
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f942.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.3 5.7c0 0-2.2-1.9-6.2-3-4-1.1-6.8-.5-6.8-.5s-.4-.2-2 4c-2.9 7.8-4.2 14.5-2 27.4.6 3.4.6 4.3-.8 9.5-1.1 4.1-2.4 7-3.2 8.4-3.4-.6-6.1-.3-6.4.9-.4 1.4 2.7 3.4 6.8 4.5 4.1 1.1 7.8.9 8.1-.5.3-1.2-2-2.9-5.4-4.1.1-1.6.3-4.8 1.4-8.9 1.4-5.2 1.9-6 4.1-8.7 8.5-9.9 10.7-16.4 12.1-24.6.8-4.4.3-4.4.3-4.4" opacity=".8" fill="#a1b8c7"/><path d="m9.3 55.3c-5.1-1.4-5.6-2.4-5.6-2.4.3 1.9 4.7 3 5.3 3.2.7.2 5 1.4 6.3-.1 0 0-.9.6-6-.7" fill="#fff"/><path d="m8.7 52.4c-.2.3-.1.8.4 1 .6.2.7-.4 1-1.7.5-2.3 2.7-9.8 2.7-9.8s-1.9 6.5-4.1 10.5" opacity=".33" fill="#3e4347"/><path d="m19.9 13.7c-2.6 0-5.9.2-7 3.1-.5 3.5-.5 7.4.1 12.3.4 3.6 3.6 4.3 5.5 1.8 6-8 8-13.7 9.2-21 .4-2.7-3.5 3.8-7.8 3.8" fill="#fed0ac"/><path d="m25.5 9.5c.4-2.4 1.4-1.7 1.2 0-.2 1.7-1.9 9.3-6 16.1-4.2 6.7 3.4-6.9 4.8-16.1" opacity=".33" fill="#3e4347"/><path d="m56 56.8c-.3-1.2-3-1.5-6.4-.9-.8-1.4-2.1-4.3-3.2-8.4-1.4-5.2-1.4-6.1-.8-9.5 2.2-12.9.9-19.6-2-27.4-1.5-4.2-2-4-2-4s-2.8-.7-6.8.4c-4 1.1-6.2 3-6.2 3s-.5 0 .3 4.4c1.4 8.2 3.6 14.7 11.9 24.7 2.2 2.7 2.7 3.4 4.1 8.7 1.1 4.1 1.4 7.2 1.4 8.9-3.4 1.2-5.7 2.9-5.4 4.1.4 1.4 4 1.6 8.1.5 4.3-1.1 7.3-3.1 7-4.5" opacity=".8" fill="#a1b8c7"/><path d="m48.7 59.6c5.1-1.4 5.6-2.4 5.6-2.4-.3 1.9-4.7 3.1-5.4 3.2-.7.2-5 1.4-6.3-.1.1 0 1 .7 6.1-.7" fill="#fff"/><path d="m49.3 56.7c.2.3.1.8-.4 1-.6.2-.7-.4-1-1.7-.5-2.3-2.7-9.9-2.7-9.9s1.9 6.7 4.1 10.6" opacity=".33" fill="#3e4347"/><path d="m38.1 18.1c2.6 0 5.9.2 7 3.1.5 3.5.5 7.4-.1 12.3-.4 3.6-4 3.8-6 1.1-5.6-7.7-7.5-13.3-8.7-20.3-.4-2.8 3.5 3.8 7.8 3.8" fill="#fed0ac"/><g fill="#fff"><path d="m22.5 5.6c-4.5-1.2-6-2.5-6-2.5.1.3.4.7.8 1-.6 1.3-3.8 8.5-4 16.2-.1 4 .3 9.7.8 13.8-.1-5.2.6-13.6 1.7-18.8 1.3-6.4 2.6-9.2 3.1-10.1 1.2.6 2.5 1.1 3.3 1.3 0 0 0 0 .1 0-.3 2.3-2 13.6-7 26.7 0 0 7.7-15.2 9.1-26.3 1.8.2 3.9.3 4.5-.4.1 0-1.9.3-6.4-.9" opacity=".5"/><path d="m31.3 13.8c.2 1.7 1.9 9.3 6 16.1 4.1 6.8-3.4-6.9-4.8-16.1-.3-2.3-1.3-1.7-1.2 0" opacity=".5"/><path d="m33.6 11.2c1.4 11.2 9.2 27.2 9.2 27.2-5.1-13.2-6.8-25.2-7.1-27.6 0 0 0 0 .1 0 1.7-.5 5.5-2.1 5.8-3.4 0 0-1.5 1.3-6 2.5-4.6 1.3-6.6.9-6.6.9.6.7 2.7.6 4.6.4" opacity=".5"/></g><path d="m40.9 12.2c-.8-2.3.4-2.2 1.1-.6.7 1.6 2.8 9.2 2.3 17.3-.5 8-.2-7.8-3.4-16.7" opacity=".33" fill="#3e4347"/><g fill="#42ade2"><path d="M47.7 18.1 62 14.7 59 9z"/><path d="m49.3 21.1l8.3 6.9 2.6-4.9z"/><path d="m46 13.3l7.5-8.7-5.1-2.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f943.svg b/build/js/jsxc/lib/emojione/assets/svg/1f943.svg
new file mode 100644
index 0000000..025cd0b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f943.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 58.3c-.2 2.1-2.1 3.7-4.1 3.7h-41.8c-2.1 0-4-1.7-4.1-3.7l-5-52.6c-.2-2 1.4-3.7 3.5-3.7h53.1c2.1 0 3.6 1.7 3.4 3.7l-5 52.6" fill="#e8e8e8"/><path d="m54.1 46.1c-6.3 0-12.2 3.8-12.2 3.8s11.4-1.8 10.3-.9c-8.5 6.4-34 6.2-39 .5-2.7-3.1 17.2 4.3 21.1-3.3h-24.4c-1 0-1.8.8-1.6 1.9l1.3 9.4c.1 1 1.1 1.9 2.1 1.9h40.4c1 0 2-.8 2.1-1.9l1.3-9.4c.3-1.2.2-2-1.4-2" fill="#b2c1c0"/><path d="m56.9 31.1c.1-1-.7-1.9-1.7-1.9h-46.4c-1 0-1.8.8-1.7 1.9l1.1 11.3c.1 1 1 1.9 2.1 1.9h43.6c1 0 2-.8 2.1-1.9l.9-11.3" fill="#89664c"/><g fill="#e8e8e8"><path d="m18.5 55.3c-3.6-.7-7.4-4.1-7.2-1.2.4 5 1.6 3 12.7 3s-4.3-1.5-5.5-1.8"/><path d="m46.1 55.3c3.6-.7 7.4-4.1 7.2-1.2-.4 5-1.6 3-12.7 3s4.3-1.5 5.5-1.8"/></g><path d="m53.6 41.4c0-.5 0-.9-21.6-.9-21.7 0-21.6.4-21.6.9s-.1.9 21.6.9c21.6 0 21.6-.4 21.6-.9" opacity=".67" fill="#594640"/><path d="m51.7 40.4c1 .2 2-.5 2.1-1.5l.7-5.9c.1-1.1-.7-1.9-1.7-1.9h-42.5c-1.1 0-1.1.3 0 .5 0 0 5.7.3 11.3 1.4 3.9.8 5.3 2.1 9.9 3.1 4.4.9 6.6.5 10.7 1.3 5 1.1 9.5 3 9.5 3" opacity=".67" fill="#ff8736"/><path d="m45.1 40.4c0 1 .8 1.9 1.7 1.9h5.5c1 0 1.9-.8 2-1.9 1-8 2.9-25.8 3.9-33.8.1-1-.6-1.9-1.6-1.9h-9.1c-1 0-1.8.8-1.8 1.9-.1 8.1-.4 25.9-.6 33.8" opacity=".5" fill="#fff"/><path d="m31.9 27.7c.3-1.1 0-2.9-.6-3.9l-3.7-6.4c-.6-1-1.9-1.6-3-1.3l-7.3 1.9c-1.1.3-2.4 1.4-2.8 2.4l-2.8 6.1c-.3.7-.4 1.7-.1 2.6h20l.3-1.4" opacity=".5" fill="#b2c1c0"/><path d="m16.5 37.2c.6 1 2 1.5 3.1 1.2l8.4-2.2c1.1-.3 2.2-1.4 2.5-2.6l1.1-4.6h-20c.1.4.2.8.4 1.1l4.5 7.1" opacity=".5" fill="#ff8736"/><path d="m14.1 31.7c1.3 2.3 3.1 6 4.8 5.5 1.7-.5 6.5-1.7 7.4-2 .9-.2 1.2-1.8-3.5-.5-4.8 1.3-6-.8-7.7-3.5-1.7-2.6-2.3-1.7-1 .5" opacity=".67" fill="#89664c"/><path d="m51 27.7l-4.7-4.9c-.7-.7-2.1-1.2-3.1-1.1l-5.9.6c-1 .1-2.2 1-2.7 1.9l-2.4 5h19.5c-.1-.6-.3-1.1-.7-1.5" opacity=".5" fill="#b2c1c0"/><path d="m31.7 34l5.4 5.6c.7.7 2.1 1.1 3 .8l5.2-1.6c1-.3 2.2-1.3 2.7-2.2l3.3-5.8c.2-.4.3-1 .3-1.5h-19.4l-.9 1.7c-.4.9-.3 2.3.4 3" opacity=".5" fill="#ff8736"/><path d="m34.4 26.6c-1.2 2.1-3.2 5.1-2.1 6.3 1.1 1.2 4.2 4.3 4.8 4.9.6.6 1.9.2-1.2-3-3.1-3.2-2-5-.7-7.6 1.4-2.6.4-2.7-.8-.6" opacity=".67" fill="#89664c"/><path d="m42.9 31.9c0 1.9-5.5 7.3-3.8 7.5 1.2.1 3.3-5.1 5.4-6.7 1.3-1 3.4-1.3 5.1-2.1 2.1-1.1.5-1.5-2.2-.4-1.5.6-2.9-.2-4-1h-1.8c.8.9 1.3 1.8 1.3 2.7" opacity=".5" fill="#ffce31"/><path d="m42.1 27.9c0 0-3.8-5-4.7-4.1-.8.8 2.3 3.1 4.2 5.4h1.8c-.8-.7-1.3-1.3-1.3-1.3" fill="#fff"/><path d="m29 34.3c.5-.7-.8-2.8-1.9-5.1h-1.2c1.2 2.7 2.3 6.1 3.1 5.1" opacity=".5" fill="#ffce31"/><path d="m26.5 19.2c.2-2.7-1.1-1.3-1.6 1.9-.5 3.2-5.2 3.9-5.2 3.9s-6.9.9-6.6 2.3c.5 1.8 8-2.5 10.9-.9.6.3 1.2 1.5 1.8 2.8h1.2c-.7-1.4-1.3-2.8-1.4-3.9-.2-1.8.7-4 .9-6.1" fill="#fff"/><g opacity=".5"><path d="m11.1 42.5c1.2 0 .7-8.4-.2-18.9-.8-10.4-2.2-18.9-3-18.9-1.4 0-.7 8.4.2 18.9.8 10.4 2.2 18.9 3 18.9" fill="#fff"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f944.svg b/build/js/jsxc/lib/emojione/assets/svg/1f944.svg
new file mode 100644
index 0000000..f69528c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f944.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.9 38.4c-3.3-3.3-5.6-5.6-10.4-10.4-3.1-3.1-.4-11-8.6-19.2-5.8-5.8-15.3-9-19.2-5.1-3.9 3.9-.7 13.4 5.1 19.2 8.2 8.2 16 5.5 19.2 8.6 4.8 4.8 7.1 7.1 10.4 10.4 4.3 4.3 4.6 5.8 11.3 14.8 3.3 4.5 6.5 7.3 10.4 3.4 4-4 1.1-7.1-3.4-10.4-9-6.7-10.4-7-14.8-11.3" fill="#d0d0d0"/><path d="m15.6 5.9c5.4 6.9 7.2 14.9 4.4 20.1.2 0 .4.1.5.1 1.9 0 3.6-.5 4.8-1.7 1.2-1.2 2-2.9 1.7-4.8-.4-2.8-1.9-6-5.2-9.3-1.8-1.9-4-3.4-6.2-4.4" fill="#fff"/><path d="m13.2 23.7c-6.9-6.9-9.2-15.8-5.5-20.4-1.3.1-2.3.5-3.1 1.3-3.1 3.1-.6 11.7 5.1 17.4 2.3 2.3 4.6 3.7 6.7 4.6 0 0 0-.1-.1-.1-1.1-.8-2.1-1.8-3.1-2.8" fill="#94989b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f945.svg b/build/js/jsxc/lib/emojione/assets/svg/1f945.svg
new file mode 100644
index 0000000..181c852
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f945.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g opacity=".6"><path d="m58.3 39.8l2.9-3.1v-4.2l-2.9-3.1 2.9-3.1v-4.2l-2.9-3.1 2.9-3.1v-4.2l-2.9-3.1 2.9-3.1v-.3h-3.6l-1.3 1.3-1.3-1.3h-7.2l-1.3 1.3-1.3-1.3h-7.2l-1.3 1.3-1.3-1.3h-7.2l-1.3 1.3-1.3-1.3h-7.2l-1.3 1.3-1.3-1.3h-6.9l-1.3 1.3-1.2-1.3h-3.7v.3l2.9 3.1-2.9 3.1v4.2l3 3.1-2.9 3.1v4.2l2.9 3.1-2.9 3.1v4.2l2.9 3.1-2.9 3.1v2.1h1.9l2.9-3.1 2.9 3.1h3.9l2.9-3.1 2.9 3.1h3.9l2.9-3.1 3 3.1h4l2.9-3.1 2.9 3.1h3.9l2.9-3.1 2.9 3.1h3.9l2.9-3.1 2.9 3.1h1.9v-2.1l-2.8-3.1m1-15.6l-2.9 3.1-2.9-3.1 2.9-3.1 2.9 3.1m-43.9 5.2l-2.9 3.1-2.9-3.1 2.9-3.1 2.9 3.1m-5.8-10.4l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m4.8 5.2l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m4.9-5.2l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m2.9 7.3l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m2-2.1l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m4.9-5.2l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m2.9 7.3l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m2-2.1l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m4.8-5.2l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m3 7.3l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m1.9-2.1l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m4.9-5.2l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m2.9 7.3l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m4.9-15.6l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9-5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9 5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.8-5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9 5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9-5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9 5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9-5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.8 5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-4.9-5.2l2.9 3.1-2.9 3.1-2.9-3.1 2.9-3.1m-7.8 8.3l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m0 10.4l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m0 10.4l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m7.8 8.3l-2.9-3.1 2.9-3.1 2.9 3.1-2.9 3.1m1.9-8.3l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m7.8 8.3l-2.9-3.1 2.9-3.1 2.9 3.1-2.9 3.1m2-8.3l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m7.8 8.3l-2.9-3.1 2.9-3.1 2.9 3.1-2.9 3.1m2-8.3l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m7.8 8.3l-2.9-3.1 2.9-3.1 2.9 3.1-2.9 3.1m1.9-8.3l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1m7.8 8.3l-2.9-3.1 2.9-3.1 2.9 3.1-2.9 3.1m2-8.3l2.9-3.1 2.9 3.1-2.9 3.1-2.9-3.1" fill="#d0d0d0"/></g><path d="m58.3 2h-52.6c-2 0-3.7 1.8-3.7 4v39c0 .6.8 1 1.9 1s1.9-.4 1.9-1v-39h52.5v39c0 .6.8 1 1.9 1 1 0 1.9-.4 1.9-1v-39c-.1-2.2-1.8-4-3.8-4" fill="#d0d0d0"/><circle cx="41" cy="49" r="12.7" fill="#fff"/><path d="m54 49c0-.3.1-4.7-2.5-7.6-.1-.3-.7-1.3-2.4-2.6-1.2-.9-2.4-1.6-2.5-1.6 0 0 0 0 0 0-.1-.1-2.3-1.2-4.9-1.2-.2 0-.4 0-.6 0-2 0-4 .5-5.2 1-1.1.5-2.2 1.3-2.3 1.3-1.5.8-4.3 4.1-4.5 5.9-.9 1.1-1.6 6.3 0 9.4 1.2 4.3 5.5 6.5 5.8 6.7.2.1 2.6 1.6 5.5 1.6.1 0 .9 0 1.1 0 3.1 0 7.8-2.2 8.8-3.9 2.5-1.9 3.9-6.9 3.7-9m-19.2 6.5c-1.2-2-2-4.6-2.1-5.2.4-.6 2.3-3.5 3.4-4.3.6.1 3.2.6 5.7 1 .3.8 1.7 4.3 2.1 5.7-.4.5-2.1 2.5-3.8 4-1.7 0-4.7-1-5.3-1.2m15.7-14c0 .2-.1.9-.4 1.7-.7-.3-2.3-1.1-4.6-1.2-.3-.5-1.6-2.3-3.7-3.5.3-.5.7-1.2.9-1.4.1 0 .2 0 .4 0 1.1 0 3 .7 3.2.8.1 0 3.5 1.8 4.2 3.6m-18.3 8.4c-1.5-.3-2.4-.7-2.6-.9-.6-2-.1-4.2 0-4.5.5-1 2.1-3.5 3.1-3.9 1.1-.2 2.4.1 2.9.2-.1.7-.1 2.7.1 4.7-1.1.9-3 3.7-3.5 4.4m8.7-13.2c.3 0 .8.1 1.2.2-.3.4-.7 1.1-.8 1.4-.7.1-3.3.6-5.3 1.9-.4-.1-1.6-.4-2.8-.3.3-.6.7-1 .8-1 0-.1 3.1-2.3 6.9-2.2m8.2 16.5c-.5 0-2.5-.1-4.6-.6-.4-1.4-1.8-5-2.1-5.8 1.3-1.9 2.6-3.7 3-4.2 2.5.1 4.2 1 4.5 1.2 1.4 2.3 1.7 4.6 1.8 5-.7 2.4-2.2 4-2.6 4.4m-20.4-5.7c0 .5.1 1.1.3 1.7-.1.4-.2.8-.3 1.1-.1-.9-.1-1.9 0-2.8m4.2 10.1c.7-.6 1.5-1.2 1.8-1.5.7.2 3.6 1.2 5.5 1.2.3.4 1.3 1.7 2.6 2.8-.8.8-1.9 1.1-2.1 1.2-3.6.1-7-1.9-7.8-3.7m9.3 3.7c.4-.2.8-.5 1.2-.9.6-.1 3-.5 5.2-2.1.1 0 .4 0 .6 0-1.4 1.3-4.5 2.7-7 3m6.7-3.6c.8-2 .8-3.6.7-4.1.4-.4 1.9-2 2.7-4.4.4.1.7.2.9.2 0 .2.1.6.1 1.2-.3 2.2-1.5 5.5-3.5 6.9-.2.2-.6.2-.9.2" fill="#4a4e51"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f947.svg b/build/js/jsxc/lib/emojione/assets/svg/1f947.svg
new file mode 100644
index 0000000..abb7620
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f947.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m46.1 2l-11.3 16.9h5.6l12.6-16.9z"/><path fill="#e8e8e8" d="m40.4 2l-11.2 16.9h5.6l11.3-16.9z"/><path fill="#ed4c5c" d="m34.8 2l-11.2 16.9h5.6l11.2-16.9z"/><g fill="#ffce31"><circle cx="32" cy="41.4" r="20.6"/><path d="m21.7 15.1c-.5 0-.9.4-.9.9v8.4c0 .5.4.9.9.9h20.6c.5 0 .9-.4.9-.9v-8.4c0-.5-.4-.9-.9-.9h-20.6m19.7 6.6c0 .5-.4.9-.9.9h-16.9c-.5 0-.9-.4-.9-.9v-3.8c0-.5.4-.9.9-.9h16.9c.5 0 .9.4.9.9v3.8"/></g><path d="m14.3 43.8c0-11.2 8.6-20.3 19.6-21.1-.5 0-1.1-.1-1.6-.1-10.5 0-19 8.5-19 19.1 0 3.1.8 6.1 2.1 8.7-.7-2.1-1.1-4.3-1.1-6.6" opacity=".5" fill="#89664c"/><path d="m39.9 57.3c9.3-6.2 12.1-18.3 6.7-27.7.3.4.6.8.9 1.2 5.8 8.6 3.4 20.3-5.3 26.2-2.6 1.8-5.5 2.8-8.4 3.1 2.2-.6 4.2-1.5 6.1-2.8" opacity=".33" fill="#fff"/><path fill="#ed4c5c" d="m23.6 18.9h5.6l-11.3-16.9h-6.9z"/><path fill="#e8e8e8" d="m29.2 18.9h5.6l-11.2-16.9h-5.7z"/><path opacity=".5" fill="#3e4347" d="m32.9 4.8l-2.8 4.2 6.6 9.9h3.7l1-1.4z"/><path fill="#428bc1" d="m34.8 18.9h5.6l-11.2-16.9h-5.6z"/><g fill="#89664c"><path d="m26.8 35.2v1c1 0 1.9-.2 2.8-.6v-1.4c-.8.6-1.7.9-2.8 1" opacity=".5"/><path opacity=".5" d="m33.4 28.7h.9v21.6h-.9z"/><path opacity=".5" d="m37.2 51.2v2.8h-10.4v1h11.3v-3.8z"/></g><g fill="#fff"><path opacity=".33" d="m34.3 50.3h2.8v.9h-2.8z"/><path d="m30.6 28.7h2.8v-.9h-3.8c0 2.1-1.7 3.8-3.8 3.8v3.7c.3 0 .6 0 .9-.1v-2.8c2.2.1 3.9-1.6 3.9-3.7" opacity=".33"/><path d="m30.6 51.2v-16c-.3.2-.6.3-.9.5v14.6h-3.8v3.7h.9v-2.8h3.8" opacity=".33"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f948.svg b/build/js/jsxc/lib/emojione/assets/svg/1f948.svg
new file mode 100644
index 0000000..2da21e1
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f948.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m46.1 2l-11.3 16.9h5.6l12.6-16.9z"/><path fill="#e8e8e8" d="m40.4 2l-11.2 16.9h5.6l11.3-16.9z"/><path fill="#ed4c5c" d="m34.8 2l-11.2 16.9h5.6l11.2-16.9z"/><g fill="#b2c1c0"><circle cx="32" cy="41.4" r="20.6"/><path d="m21.7 15.1c-.5 0-.9.4-.9.9v8.4c0 .5.4.9.9.9h20.6c.5 0 .9-.4.9-.9v-8.4c0-.5-.4-.9-.9-.9h-20.6m19.7 6.6c0 .5-.4.9-.9.9h-16.9c-.5 0-.9-.4-.9-.9v-3.8c0-.5.4-.9.9-.9h16.9c.5 0 .9.4.9.9v3.8"/></g><path d="m14.3 43.8c0-11.2 8.6-20.3 19.6-21.1-.5 0-1.1-.1-1.6-.1-10.5 0-19 8.5-19 19.1 0 3.1.8 6.1 2.1 8.7-.7-2.1-1.1-4.3-1.1-6.6" opacity=".5" fill="#3e4347"/><path d="m39.9 57.3c9.3-6.2 12.1-18.3 6.7-27.7.3.4.6.8.9 1.3 5.8 8.6 3.4 20.3-5.3 26.2-2.6 1.8-5.5 2.8-8.4 3.1 2.2-.7 4.2-1.6 6.1-2.9" opacity=".33" fill="#fff"/><path fill="#ed4c5c" d="m23.6 18.9h5.6l-11.3-16.9h-6.9z"/><path fill="#e8e8e8" d="m29.2 18.9h5.6l-11.2-16.9h-5.7z"/><path opacity=".5" fill="#3e4347" d="m32.9 4.8l-2.8 4.2 6.6 9.9h3.7l1-1.4z"/><path fill="#428bc1" d="m34.8 18.9h5.6l-11.2-16.9h-5.6z"/><g fill="#3e4347"><path d="m31.5 31.5c-2.1 0-3.8 1.7-3.8 3.7h-2.7c0 .3-.1.6-.1.9h3.8c0-2.1 1.7-3.8 3.8-3.8.8 0 1.5.3 2.1.7-.7-.8-1.8-1.5-3.1-1.5" opacity=".5"/><path opacity=".5" d="m39 54h-14v1h15v-3.8h-1z"/><path d="m31.5 42.8c-2.1 0-3.8 1.7-3.8 3.8v3.8h.9v-2.8c0-2.1 1.7-3.8 3.8-3.8 4.1 0 7.5-3.4 7.5-7.5 0-2.3-1-4.4-2.7-5.8 1.1 1.3 1.8 3 1.8 4.8 0 4.1-3.3 7.5-7.5 7.5" opacity=".5"/></g><g fill="#fff"><path opacity=".33" d="m28.7 50.3h10.3v.9h-10.3z"/><path d="m32.5 40c2.1 0 3.8-1.7 3.8-3.8 0-1.3-.6-2.4-1.6-3.1.4.6.7 1.3.7 2.1 0 2.1-1.7 3.8-3.8 3.8-4.1 0-7.5 3.4-7.5 7.5v7.5h.9v-6.6c0-4.1 3.3-7.4 7.5-7.4" opacity=".33"/><path d="m32.5 28.7c1.8 0 3.5.7 4.8 1.8-1.4-1.6-3.4-2.7-5.8-2.7-4.1 0-7.5 3.4-7.5 7.5h1c.5-3.7 3.6-6.6 7.5-6.6" opacity=".33"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f949.svg b/build/js/jsxc/lib/emojione/assets/svg/1f949.svg
new file mode 100644
index 0000000..1322b55
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f949.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#428bc1" d="m46.1 2l-11.3 16.9h5.6l12.6-16.9z"/><path fill="#e8e8e8" d="m40.4 2l-11.2 16.9h5.6l11.3-16.9z"/><path fill="#ed4c5c" d="m34.8 2l-11.2 16.9h5.6l11.2-16.9z"/><g fill="#d3976e"><circle cx="32" cy="41.4" r="20.6"/><path d="m21.7 15.1c-.5 0-.9.4-.9.9v8.4c0 .5.4.9.9.9h20.6c.5 0 .9-.4.9-.9v-8.4c0-.5-.4-.9-.9-.9h-20.6m19.7 6.6c0 .5-.4.9-.9.9h-16.9c-.5 0-.9-.4-.9-.9v-3.8c0-.5.4-.9.9-.9h16.9c.5 0 .9.4.9.9v3.8"/></g><path d="m14.3 43.8c0-11.2 8.6-20.3 19.6-21.1-.5 0-1.1-.1-1.6-.1-10.5 0-19 8.5-19 19.1 0 3.1.8 6.1 2.1 8.7-.7-2.1-1.1-4.3-1.1-6.6" opacity=".5" fill="#3e4347"/><path d="m39.9 57.3c9.3-6.2 12.1-18.3 6.7-27.7.3.4.6.8.9 1.2 5.8 8.6 3.4 20.3-5.3 26.2-2.6 1.8-5.5 2.8-8.4 3.1 2.2-.6 4.2-1.5 6.1-2.8" opacity=".33" fill="#fff"/><path fill="#ed4c5c" d="m23.6 18.9h5.6l-11.3-16.9h-6.9z"/><path fill="#e8e8e8" d="m29.2 18.9h5.6l-11.2-16.9h-5.7z"/><path opacity=".5" fill="#3e4347" d="m32.9 4.8l-2.8 4.2 6.6 9.9h3.7l1-1.4z"/><path fill="#428bc1" d="m34.8 18.9h5.6l-11.2-16.9h-5.6z"/><g fill="#3e4347"><path d="m31.5 31.5c-2.1 0-3.8 1.7-3.8 3.7h-2.7c0 .3-.1.6-.1.9h3.8c0-2.1 1.7-3.8 3.8-3.8.8 0 1.5.3 2.1.7-.7-.8-1.8-1.5-3.1-1.5" opacity=".5"/><path d="m37.4 41.8c1.6-1.4 2.6-3.4 2.6-5.6 0-2.3-1-4.4-2.7-5.8 1.1 1.3 1.8 3 1.8 4.8 0 2.2-1 4.3-2.6 5.6 1.6 1.4 2.6 3.4 2.6 5.6 0 4.1-3.4 7.5-7.5 7.5-1.8 0-3.5-.7-4.8-1.8 1.4 1.6 3.4 2.7 5.8 2.7 4.1 0 7.5-3.4 7.5-7.5-.1-2.1-1.1-4.1-2.7-5.5" opacity=".5"/></g><g fill="#fff"><path d="m32.5 28.7c1.8 0 3.5.7 4.8 1.8-1.4-1.6-3.4-2.7-5.8-2.7-4.1 0-7.5 3.4-7.5 7.5h1c.5-3.7 3.6-6.6 7.5-6.6" opacity=".33"/><path d="m36.2 36.2c0-1.3-.6-2.4-1.6-3.1.4.6.7 1.3.7 2.1 0 2.1-1.7 3.8-3.8 3.8v3.8c.3 0 .6.1.9.1v-2.9c2.1 0 3.8-1.7 3.8-3.8" opacity=".33"/><path d="m32.5 51.2c2.1 0 3.8-1.7 3.8-3.8 0-1.3-.6-2.4-1.6-3.1.4.6.7 1.3.7 2.1 0 2.1-1.7 3.8-3.8 3.8-.8 0-1.5-.3-2.1-.7.6 1.1 1.7 1.7 3 1.7" opacity=".33"/><path d="m27.9 47.5c-.1-.3-.1-.6-.1-.9h-3.8c0 2.3 1 4.4 2.7 5.8-1.1-1.3-1.8-3-1.8-4.8l3-.1" opacity=".33"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f94a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f94a.svg
new file mode 100644
index 0000000..752af12
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f94a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m15.6 59c0 0 7.3-3.8 14.9-2.3 7.1 1.4 7.3-3 11.1-3s3.2-3.4 6.1-3.2c0 0 1.3.1 1.3 1.4 0 0-2.4.1-3.4 2s-6.6 1.7-8.8 3.9c-2.7 2.7-10.3.9-13.5 1.2-2.5.3-5.5 3-9.8 3l2.1-3"/><path d="m27.3 53.6c0 0 4.6-.2 7.3 1.8 2.8 2 4.8 4.5 8.3 3.3 3.5-1.2 6.8-2.1 10.6-.9 0 0 .5-.7.4-1.5 0 0-2.4-1.4-5.2-.8s-5.6 2.2-7.4 1.6-5.6-4.7-11.7-4.7l-2.3 1.2"/><path d="m55.8 57.7c.1-.2.1-.4 0-.4l-3.3-1.2-.3.7 3.3 1.2c0 0 .2-.1.3-.3"/></g><path d="m14.3 37.6c0 0-5.4-18.3 13.1-24.3 16.4-5.2 11 10.1-13.1 24.3" fill="#c94747"/><path d="m27.4 10.6c-8.6 22.2-14.5 21.6-10.5 29.4l1.5 19.8c0 0 2.7-1.6 9.1-5.3 4.8-2.8 14.3-3.5 20.7-7.3 11.3-6.6 17.8-16.7 11.3-28.1-6.5-11.3-24.9-27.2-32.1-8.5" fill="#ed4c5c"/><path d="m24.4 42.8c-3.2-5.6-8.2-8.7-11.2-7l-9.1 5.3 11.5 20.4 9.1-5.3c3-1.8 2.9-7.8-.3-13.4" fill="#c94747"/><path d="m15.4 48.1c3.2 5.6 3.3 11.6.3 13.4-3 1.8-8-1.4-11.2-7-3.2-5.6-3.3-11.6-.3-13.4 3-1.7 8 1.4 11.2 7" fill="#3e4347"/><path d="m13.6 49.1c2.3 4.1 2.5 8.4.5 9.6-2 1.2-5.6-1.1-7.9-5.2-2.3-4.1-2.5-8.4-.5-9.6 2.1-1.2 5.6 1.2 7.9 5.2" fill="#ed4c5c"/><path d="m13.6 49.1c-1.9-3.4-4.7-5.6-6.8-5.5-.4 1.9.2 4.8 1.8 7.6 1.9 3.4 4.7 5.6 6.8 5.5.4-1.9-.2-4.8-1.8-7.6" fill="#c94747"/><path d="m38.7 6c3-1.8 12.6 5.4 17 13.1 4.4 7.7-2.5 9.2-6.9 1.5-4.3-7.8-15-11.8-10.1-14.6" fill="#ff717f"/><path d="m26.2 13.8c0 0-2 9.4-8.9 17.1 0 0 4.4-7 6-15.9l2.9-1.2" fill="#3e4347"/><path d="m30 9.9c3.4-1 .1-3.8 2-6-1.8 1.4-4.1 3.4-5 6.7-4.6 17.5-11.3 19.2-11.4 24.8 1.2-.8 3.8-3.3 6.8-2.5 4.3 1.2-4.9-4.5.2-3.8 5.2.6-2.1-3.7 2.6-4 4.7-.3-4-5 2.1-4.9 6.1.1-3.5-4.1 3.5-4.5 7-.6-5-4.6-.8-5.8" fill="#c94747"/><path d="m9 39.9c2.7 1.2 5.5 3.9 7.6 7.5 2.1 3.7 2.9 7.4 2.6 10.4l4.9-2.9c2-1.2 2.2-6.2-.8-11.5-2.5-4.4-6-6.8-8.1-6.8-.5 0-.8.1-1.2.3l-5 3" fill="#fff"/><path d="m51 50.7c0-.2-.1-.4-.2-.4l-3.6.7.1.8 3.5-.6c.1-.1.2-.3.2-.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f94b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f94b.svg
new file mode 100644
index 0000000..44fc92b
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f94b.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.7 52.7c0-34.4-7.9-43.1-7.9-43.1-12.1-6.1-14.6-6.4-20-6.5-.4 0-1.2 0-1.6 0-5.4.1-7.9.4-20.1 6.5 0 0-7.9 8.7-7.9 43.1 0 0 3.9-1.2 11.6 0 0 0-.8 3-2.9 7.1 0 0 8.2 2.7 19.3-1.5 12.3 4.7 20.8 1.5 20.8 1.5-2.1-4.1-2.9-7.1-2.9-7.1 7.7-1.2 11.6 0 11.6 0" fill="#fff"/><g fill="#3e4347"><path d="m47.1 34c0 0 5-1.1 8.5.7 0 0-5.3-1.1-8.8 1.9l.3-2.6"/><path d="m61.6 43.8c0 0-3.8-1.4-9.4 0 0 0 6.2-.1 9.6 2.8l-.2-2.8"/><path d="m48.7 47.8c0 0 3.1-1.6 7.2-1.2 0 0-4-1.5-7.7-.9l.5 2.1"/><path d="m49.4 20.7l-2.1 2.6c0 0-.2-1.2-1.3-3 0 0 1.1 4.9 0 11.3-1.2 6.9-.3 20.8 4.4 28.7l1.7-2.2c0 0-6.1-16.9-4.2-26 1.5-7.2-.6-6.8 1.5-11.4"/><path d="m28.1 41.2c0 0-5.1 2.1-9.9 11.5 0 0 2.3.7 4.4 1.3 0 0 3.8-7.4 9.5-12.1l-4-.7"/><path d="m33.8 40.1c0 0 5.1 2.1 9.9 11.5 0 0-2.3.7-4.4 1.3 0 0-3.8-7.4-9.5-12.1l4-.7"/><path d="M18.7,6c0,0,2.1,6.1,7.6,14.4c0,0-4.4-10.9-5.1-15.7L18.7,6z"/><path d="m30.7 37.5c0 0-5.7 3.7-5 4.3.7.6 4.3 4.4 5 3.9.7-.6 5.7-4.2 5-4.8-.8-.7-4.1-4-5-3.4"/><path d="m18 34c0 0-5-1.1-8.5.7 0 0 5.3-1.1 8.8 1.9l-.3-2.6"/><path d="m3.5 43.8c0 0 3.8-1.4 9.4 0 0 0-6.2-.1-9.6 2.8l.2-2.8"/><path d="m16.5 47.8c0 0-3.1-1.6-7.2-1.2 0 0 4-1.5 7.7-.9l-.5 2.1"/><path d="m14.8 20.7l2.1 2.6c0 0 .2-1.2 1.3-3 0 0-1.1 4.9 0 11.3 1.2 6.9.3 20.8-4.4 28.7l-1.7-2.2c0 0 6.1-16.9 4.2-26-1.4-7.2.6-6.8-1.5-11.4"/><path d="m17.2 39.9v2.8c16.4 2 29.2 0 29.2 0v-2.8c-17.7-2.2-29.2 0-29.2 0"/><path d="m45.6 6c0 0-2.1 6.1-7.6 14.4 0 0 4.4-10.9 5.1-15.7l2.5 1.3"/></g><path d="m25.2 3.7c0 0 2.7 11.2 7.4 19.7 0 0 5.8-13.6 6.2-19.7 0 0-7.7-1.5-13.6 0" fill="#d0d0d0"/><path d="m26.3 4.6c0 0 2.7 5.2 6.3 7.9 0 0 3.4-2.3 5.3-7.7l-5.2 19.5-5.7-13.8-.7-5.9" fill="#94989b"/><g fill="#3e4347"><path d="m32.3 25c-5.9-8-8.5-20-8.6-20.5l2.5-.4c0 .1 2.6 12.1 8.2 19.8l-2.1 1.1"/><path d="m28.5 40.3l-2.4-.8c6.1-12.7 12-35.2 12-35.5l2.5.5c0 .2-5.9 22.9-12.1 35.8"/><path d="m44.4 62c-3.5 0-8-.6-13.2-2.5-11.2 4-19.4 1.4-19.8 1.3l-1.2-.4.5-1c1.3-2.5 2.1-4.6 2.5-5.8-6.2-.8-9.5.1-9.5.2l-1.7.5v-1.5c0-34.4 7.8-43.5 8.1-43.8l.2-.2.2-.1c12.4-6.2 15.1-6.5 20.7-6.7.4 0 1.3 0 1.7 0 5.5.1 8.3.4 20.7 6.7l.2.1.1.2c.3.4 8.1 9.4 8.1 43.8v1.5l-1.7-.5c0 0-3.3-.9-9.5-.1.4 1.2 1.2 3.3 2.5 5.8l.5 1-1.2.4c-.2 0-3.2 1.1-8.2 1.1m-12.1-4.4c8.7 3.2 15.4 2.2 18 1.6-1.7-3.6-2.4-6.1-2.4-6.2l-.3-1.1 1.3-.2c5-.8 8.6-.6 10.5-.3-.2-30-6.5-39.6-7.5-40.9-12.1-6.1-14.3-6.2-19.1-6.3-.4 0-1.1 0-1.5 0-4.8.1-7.1.2-19.2 6.3-.9 1.3-7.3 10.9-7.5 40.9 1.9-.3 5.5-.5 10.5.3l1.3.2-.3 1.1c0 .1-.7 2.6-2.4 6.1 2.5.5 8.5 1.2 16-1.4-.9-2.7-3.3-10.4-3.3-14.8h2.6c0 4.3 2.6 12.6 3.3 14.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f950.svg b/build/js/jsxc/lib/emojione/assets/svg/1f950.svg
new file mode 100644
index 0000000..184e56c
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f950.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 5.1c7.9-.8 15.2 8 3.4 14-7.9 4-15.1 9.2-21.3 15.3l-17-16.9c7.4-7.2 18.5-10.7 34.9-12.4" fill="#fbbf67"/><path d="m5.1 52.4c1.4-16.7 5-27.7 12.4-34.9l17 16.9c-6.2 6.2-11.4 13.4-15.4 21.3-6 12-14.7 4.5-14-3.3" fill="#d99634"/><path d="m53.3 9c-12.7.2-22.6 1.7-30.4 5 7-4.1 16.2-6.4 28.3-7.8 4.3-.5 8.5 2 9.3 5.3-1.8-1.5-4.4-2.6-7.2-2.5" fill="#ffebb8"/><path d="m11.7 54.7c4.3 1.8 8.6 1 9.8-1.5 6.4-13 16.9-23.5 30-29.9 2.5-1.3 3.3-5.6 1.5-9.8-.5-1.1-1-2.3-1.5-3.4-1.8-4.3-6.1-6.6-9.5-4.9-16.8 8.2-30.3 21.8-38.6 38.6-1.7 3.4.7 7.8 4.9 9.5 1.1.5 2.3 1 3.4 1.4" fill="#d99634"/><path d="m10.3 52.1c4.1 1.6 8.3.7 9.6-1.8 6.8-13 17.4-23.6 30.4-30.3 2.5-1.3 3.4-5.5 1.8-9.6-.4-1.1-.9-2.2-1.3-3.3-1.6-4.1-5.7-6.2-9.1-4.5-16.7 8.7-30.4 22.4-39.1 39.1-1.7 3.3.4 7.5 4.5 9.1 1.1.4 2.2.8 3.2 1.3" fill="#fbbf67"/><path d="m42.2 7.2c-8.2 3.3-15.8 7.7-22.8 13 6.4-6.3 13.8-11.6 21.8-15.7 3.4-1.7 7.7.5 9.4 4.7.3.7.6 1.4.9 2.1-2-3.6-5.9-5.5-9.3-4.1" fill="#ffebb8"/><path d="m16.7 45.5c4 1.5 8.3.1 10.1-2.9 3.9-6.5 9.4-12 15.9-15.9 3-1.8 4.4-6.1 2.9-10.1-1.3-3.1-2.6-6.3-3.9-9.4-1.5-4-7.2-5.5-12.1-2.6-10.3 6.2-18.8 14.7-24.9 24.9-2.9 4.9-1.4 10.6 2.6 12.1 3.1 1.3 6.2 2.6 9.4 3.9" fill="#fbbf67"/><path d="m17.9 48.4c4.2 1.6 8.6.1 10.3-3 3.7-6.7 9.1-12.4 15.6-16.4 3-1.9 4.3-6.3 2.5-10.4-1.5-3.2-3-6.5-4.5-9.7-1.8-4.1-7.7-5.6-12.7-2.6-10.3 6.2-18.7 15-24.5 25.6-2.7 5.1-.8 10.9 3.4 12.5 3.3 1.3 6.6 2.7 9.9 4" fill="#d99634"/><path d="m16.4 45.2c4 1.5 8.3.1 10.1-2.9 3.9-6.5 9.4-12 15.9-15.9 3-1.8 4.4-6.1 2.9-10.1-1.3-3.1-2.6-6.3-3.9-9.4-1.5-4-7.2-5.5-12.1-2.6-10.3 6.2-18.8 14.7-24.9 24.9-3 5-1.4 10.6 2.5 12.1 3.2 1.3 6.3 2.6 9.5 3.9" fill="#fbbf67"/><path d="m43.4 19c-1.4-2.8-2.7-5.7-4.1-8.5-1.6-3.6-6.9-4.8-11.2-1.9-9 5.9-16.4 14-21.5 23.5-1 2-1.3 4-1 5.8-1.3-2.3-1.3-5.6.5-8.7 5.6-9.5 13.6-17.4 23-23 4.6-2.7 9.8-1.3 11.2 2.4 1.2 2.9 2.4 5.8 3.6 8.7.7 1.9.7 3.9.2 5.6.1-1.2-.1-2.6-.7-3.9" fill="#ffebb8"/><path d="m27.9 30.9c3.7 3.7.1-24.6-5-23.4-5.8 1.3-14.2 9.7-15.5 15.4-1.1 5.1 10.9-1.6 20.5 8" fill="#d99634"/><path d="m26.1 27.9c5.6 5.6 1.1-23.7-3.9-22.4-5.6 1.5-14.2 10-15.7 15.7-1.3 5 10.3-2.6 19.6 6.7" fill="#fbbf67"/><g fill="#ffebb8"><path d="m20.6 10.8c-3.6 1-8.4 6.7-10.6 10.6-.3-.6-.5-1.2-.3-1.8 1.1-4.2 7.5-10.6 11.7-11.7 3.7-1 6 9.6 6.1 14.7-1.5-4.5-3.8-12.6-6.9-11.8"/><path transform="matrix(.7077-.7065.7065.7077-6.8974 18.913)" d="m18.8 17.2h1.3v1.3h-1.3z"/><path transform="matrix(.7073-.7069.7069.7073-5.805 20.9655)" d="m21.8 16.9h1.3v1.3h-1.3z"/><path transform="matrix(.7073-.7069.7069.7073-19.3501 16.2871)" d="m9.4 30.9h1.3v1.3h-1.3z"/><path transform="matrix(.7071-.7071.7071.7071-22.4351 16.5292)" d="m8.1 34.7h1.3v1.3h-1.3z"/><path transform="matrix(.7067-.7075.7075.7067-30.3525 15.9475)" d="m3.4 43.9h1.3v1.3h-1.3z"/><path transform="matrix(.7075-.7067.7067.7075-31.8156 17.2783)" d="m4.3 46.4h1.3v1.3h-1.3z"/></g><g fill="#fbbf67"><path transform="matrix(.7075-.7067.7067.7075-37.0121 24.7162)" d="m10.7 56.4h1.3v1.3h-1.3z"/><path transform="matrix(.7071-.7071.7071.7071-38.7091 24.3121)" d="m9.4 58.2h1.3v1.3h-1.3z"/></g><g fill="#ffebb8"><path transform="matrix(.7071-.7071.7071.7071 3.5572 28.1592)" d="m35.1 9.1h1.3v1.3h-1.3z"/><path transform="matrix(.7073-.7069.7069.7073 1.1047 30.6667)" d="m36.9 13.4h1.3v1.3h-1.3z"/><path transform="matrix(.7073-.7069.7069.7073 5.3647 39.1435)" d="m49.3 12.5h1.3v1.3h-1.3z"/><path transform="matrix(.7073-.7069.7069.7073 7.1954 37.6337)" d="m48.4 9.5h1.3v1.3h-1.3z"/><path transform="matrix(.7073-.7069.7069.7073 5.4746 37.595)" d="m47.5 11.5h1.3v1.3h-1.3z"/><path transform="matrix(.7079-.7063.7063.7079 8.3941 44.6746)" d="m57.6 11.5h1.3v1.3h-1.3z"/><path transform="matrix(.7069-.7073.7073.7069 6.5722 44.7649)" d="m56.7 13.8h1.3v1.3h-1.3z"/><path transform="matrix(.7074-.7069.7069.7074-4.4574 19.0453)" d="m19.8 13.9h1.9v1.9h-1.9z"/><path transform="matrix(.7071-.7071.7071.7071-23.0582 18.581)" d="m9.9 36.2h1.9v1.9h-1.9z"/></g><path transform="matrix(.7074-.7069.7069.7074-36.7195 22.7284)" fill="#fbbf67" d="m8.1 54.7h1.9v1.9h-1.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f951.svg b/build/js/jsxc/lib/emojione/assets/svg/1f951.svg
new file mode 100644
index 0000000..b8c26d2
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f951.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.2 7.9l2.5 2.6 5.3-3.5c2.2-.3 3.2-5-2.8-3.5-1.5.4-3.8 1.5-5 4.4" fill="#89664c"/><path d="m61.1 7c1.8-.7.5-2.8.5-2.8s.4 1.5-2.4 1.9c-4.1.6-5.2 3.6-5.2 3.6l.7.7c0 0 2.4-1.8 6.4-3.4" fill="#594640"/><path d="m53.5 6c8.8 9.3 1.2 23.3-7.6 39.5-.7 1.4-1.5 2.7-2.2 4.1-6.2 11.5-15.3 12.7-20.2 12.4-5.5-.4-11-3-14.7-6.9-3.8-4-6.3-9.8-6.7-15.7-.4-5.2.5-15.1 11.1-22 1.2-.8 2.5-1.6 3.7-2.4 14.9-9.8 27.8-18.3 36.6-9" fill="#699635"/><g fill="#c7e755"><path d="m15 19.9c14.5-9.4 29.3-20.4 37-12.2 7.7 8.1-7.5 18.6-16 34.5-8.5 15.8-18.9 18.5-25.8 11.3-6.8-7.3-9.8-24.1 4.8-33.6"/><path d="m11.8 51.8c1.6 1.6 3.3 2.5 5.3 2.6 5.5.4 11.6-4.8 16.7-14.2 2.9-5.5 6.6-10.3 9.9-14.6 5.2-6.7 10-13.1 6.9-16.4-5.3-5.6-19 3.4-30 10.7-1.2.8-2.5 1.6-3.7 2.4-9.1 5.9-9.9 14-9.6 18.3.3 4.4 2 8.6 4.5 11.2"/></g><path d="m11.8 51.8c1.6 1.6 3.3 2.5 5.3 2.6 5.5.4 11.6-4.8 16.7-14.2 2.9-5.5 6.6-10.3 9.9-14.6 5.2-6.7 10-13.1 6.9-16.4-5.3-5.6-19 3.4-30 10.7-1.2.8-2.5 1.6-3.7 2.4-9.1 5.9-9.9 14-9.6 18.3.3 4.4 2 8.6 4.5 11.2" opacity=".33" fill="#ffce31"/><path d="m17.2 27c6-6.6 14.8-6 16.6-2 1.8 4-.8 10-4.8 14.4-4.1 4.4-9.6 7.3-13.3 5.5-3.8-1.8-4.5-11.3 1.5-17.9" fill="#89664c"/><path d="m16.5 33.6c2.6-3.8 5.3-4.8 4.8-3.9-.4.9-1.8 3.1-2.6 5.1-.9 2-1.4 3.7-2.4 4.3-1 .8-2.3-1.4.2-5.5" fill="#d3976e"/><path d="m26.4 36.7c-3.5 3.7-7.7 6.6-11.7 7.5.3.3.6.6 1 .7 3.8 1.9 9.2-1 13.3-5.5 4-4.4 6.6-10.4 4.8-14.4-.2-.4-.4-.7-.7-1-.7 4.2-3.3 8.9-6.7 12.7" fill="#594640"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f952.svg b/build/js/jsxc/lib/emojione/assets/svg/1f952.svg
new file mode 100644
index 0000000..d72b1ce
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f952.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m59.9 21.3c-9.5-12-26-6.4-26-6.4-2.3 2.5-4.6 5.2-6.9 8.1-1.5-.5-2.8 1.5-2 2.6-2.1 2.8-4.3 5.3-6.5 7.7-1.8-.4-2.2 1.2-2 2.2-1.5 1.6-3 3.2-4.4 4.6 0 0-13.4 17.9 12.5 16.3 1.1-.6 2.3-1.3 3.4-2 1.4 1.7 2.9-.6 2.7-1.8 1.8-1.2 3.7-2.5 5.7-4 .8.2 1.9.2 2-1.5 1.6-1.2 3.1-2.5 4.7-3.8 2-1.7 3.8-3.4 5.5-5.1 1.1.1 2.9-.2 2.6-2.9 2.3-2.7 4.2-5.4 5.8-8.1.8-.1 2.3-.6 1.3-2.3.5-1.2 1.1-2.4 1.6-3.6" fill="#75a843"/><path d="m39.9 33.5c-1.4 1.2-4.2.7-5.5 1.8-4.5 3.9-4.1 6.7-4.9 7.6-.8.9-3.3-.2-3.7 4.1 1-1.9 3.2-2 4.3-4.1 1.8-3.5 7.4-4.7 9.8-9.4" opacity=".8" fill="#c7e755"/><path d="m13.4 38.8c-1.5 1.5-2.9 3-4.1 4.4-1.4-.7-2.9 1.3-2.6 3.1-2.5 3.1-4 6-3.9 8.9-1.1 1.7-1 3.1 1.3 4 1.6 2.5 4.8 3.1 9.1 2.1.8.7 2.2 1.6 3.3-1 3-1.1 6.3-2.7 9.9-4.8-1.3-1.9-12.4 3.7-5.2-1.8 8.5-6.4-10 3-2.1-4.4 7.9-7.4-10.6 4.1-4.7-1.6 5.9-5.8 2-5.2-2.6-2.6-3.5 1.9-.4-3.3 1.6-6.3" fill="#558730"/><path d="m58.2 3.1c-4.5-2.6-10.3-.5-16.5 4.5-1.5-.8-2.9 0-3.5 3.1-.1.1-3.5 3.4-5.1 5.2 0 0 .4 1.2.4 1.6-.3 1.7-1.2 3.3-2.2 4.7-1 1.4-2.1 2.7-3.2 3.9-1.1 1.1-9.7 12.4-10 12.7.6.2 1.8 1.2 5.4-5.4.6-1.1 2.4-1.5 3.2-2.7.9-1.2.9-3.1 1.7-4.5.8-1.4 3-1.8 4-3.2 1-1.3 2-4.9 3.2-6.1 2.4-2.4 3.1-1.9 2.9-.3-.5 2.4 3.8-3 3.1.4-.6 3.1-3.2 5.1-4.3 6.7-5.7 8.1-10.7 9.5-11 10.9-.9 4.8-3.8 4.5-5.1 8.1 4.3-1.4 3.5-3.3 8.1-5.2 1.3-.6.1-4.4 5.6-8.4 3.5-2.6 2.4-4.7 7.5-8.5 1-.7 5.1-7.8 2.6-1.4-1.1 2.9 7.8-5.3 6.3-2-5.5 12-7.3 7.2-10.7 15.8 4-5.8 6.7-4.6 11-12.4 2.8-5.1 5.6 1.5 2.9 4.7-3.5 4.1-4.5 5.9-5.7 7.1-1.2 1.2-4.4 1.4-7.2 7.9 4.1-4.1 3.9-.9 7.6-7.3 4.5-7.6 8.2-6.1 9.9-9.7 4.2-9.6 3.8-17.5-.9-20.2" fill="#c7e755"/><g fill="#75a843"><path d="m45.1 9.5c.2.2.1.8-.4 1.2-.4.4-1 .6-1.2.4-.2-.2-.1-.8.4-1.2.4-.4.9-.6 1.2-.4" opacity=".8"/><path d="m51.6 6.3c.3.3.1.9-.4 1.4-.5.5-1.1.7-1.3.4-.3-.3-.1-.9.4-1.4.5-.5 1.1-.6 1.3-.4" opacity=".8"/><path d="m51.8 12.3c.2.2.1.6-.3.9-.3.3-.7.5-.9.3-.2-.2-.1-.6.3-.9.3-.4.7-.5.9-.3" opacity=".8"/><path d="m57.7 7.5c.3.3.2 1.1-.4 1.6-.5.5-1.2.7-1.6.4-.3-.3-.2-1.1.4-1.6.5-.6 1.2-.8 1.6-.4" opacity=".8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f953.svg b/build/js/jsxc/lib/emojione/assets/svg/1f953.svg
new file mode 100644
index 0000000..d702dc5
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f953.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 44.8c1.8 3.4 2.8 4.2 8.3 4.8 6.4.7 1.7 4.3 12.1 5.2 9.7-4 5.2-5.8 12.6-9.1 11.2-5 8.3-7.5 14.6-10.9 10.3-5.4 6.3-8.3 12.4-11.5-2-3.8-5-2.4-6.4-5.1-2.2-4.3-5.4-1.9-5.4-7.3-7.7 5-4.7 7.3-15.3 12.4-7.8 3.7-5 7.7-16.6 11.3-7.6 2.4-6.3 8.2-16.3 10.2" fill="#c94747"/><path d="m3.3 46.9c11.7-1.1 6.9-8.6 17.3-10.5 8.6-1.6 10-8.4 17.8-10.3 7.1-1.8 2.6-5.6 12.7-11.9 1.6 1.4 3.2 1.2 4.1 3.2-6.7 3.1-5.3 8.5-14.1 11.8-11.1 4.2-6.7 5.4-17.5 9.9-9 3.7-8.5 8.3-15.4 10.1-.1.1-3.5.1-4.9-2.3" fill="#ffa6af"/><path d="m13.7 50.8c9.4-1.7 7.7-8.2 13.3-9.3 10.3-2 10.3-7.1 17.1-10 8.9-3.8 8.5-8 13.4-11.6 0 0 2 .2 3.3 1.7-5.7 3.4-2.9 7.8-13.4 11.9-6.6 2.6-5.5 6.6-15.9 10.4-6.6 2.4-4.2 6.6-13.9 9.9-2.3-.4-3.9-3-3.9-3" fill="#fed0ac"/><g fill="#fff"><path d="m56.1 23c0 0-1.5 1.3-2.5 3.7-1.1 2.4-5.2 2.4-8.5 6.2 0 0 2.6-1.8 5.8-2.6 5.9-1.7 3-4.3 5.2-7.3"/><path d="m48.5 22.4c-1.4 1.4-3.4 3.1-10.3 5.2-4.4 1.3-7.1 4.2-8.7 6.3-.7.8-2.4 2.5-5.5 3.7 0 0 4.5-1.1 7-4.1 3-3.6 4.6-4.2 10.4-6 5.4-1.6 7.1-5.1 7.1-5.1"/><path d="m22.7 42.4c-4.5.9-5 4.9-10 6.6 0 0 3.6-.8 6.1-3.6 1.8-1.9 3.9-3 3.9-3"/></g><path d="m16 35.6c0 0-.9.5-1.8 1.1 3.1 9 8.1 9 12.7 15.8 1.1-.7 1.5-1.2 1.5-1.2 3.3-8.1-12.4-15.7-12.4-15.7" opacity=".7" fill="#3e4347"/><path d="m47.2 40c-11.9-8.1-7.3-11.7-14.7-18.6-10.2-9.5-5.9-11-12.8-19.4-2 6-4.7 2.2-8.7 6.3-2.5 2.5-5.4-.2-9 3.4 5.7 5.8.2 7.6 9.9 17.4 5.9 6 1.8 7.8 12.6 17.4 7.1 6.3 1.4 6.7 11 14.7 12 2.7 8.1-3 15.5-1.5 6.4 1.3 7.9.8 11.1-2.4-10.7-5.8-7.2-12-14.9-17.3" fill="#c94747"/><path d="m59.8 59.2c-12.9-5.4-4.8-12.1-15.8-18-9.1-4.9-8.3-13-16.3-17.9-7.4-4.6-.9-7.2-10.1-17.9-2.3 1-4 .3-5.7 2.2 6.5 5.9 3 11.4 11.7 18.4 11 8.7 5.7 8.5 16.2 17.4 8.8 7.4 6.6 12.4 13.7 16.9 0-.1 3.8 1 6.3-1.1" fill="#ffa6af"/><path d="m46.7 59.9c-10-5.3-5.7-12-11.7-15.2-10.9-6-9.1-11.7-15.7-17.4-8.6-7.5-6.7-12-11-17.8 0 0-2.4-.5-4.3.8 5.3 5.9.5 9.8 10.9 18.2 6.6 5.3 3.8 9.4 14.3 17.4 6.5 5 2.4 9 12.1 16.1 2.6.2 5.4-2.1 5.4-2.1" fill="#fed0ac"/><g fill="#fff"><path d="m8.8 13.4c0 0 1.3 2 1.5 5 .3 3.1 5 4.6 7.4 10 0 0-2.3-2.9-5.6-5-6.1-3.9-1.9-5.8-3.3-10"/><path d="m17.6 15.5c1.1 2.1 2.7 4.7 9.8 9.5 4.5 3 6.5 7.2 7.6 10.2.4 1.2 1.8 3.7 4.9 6.2 0 0-4.7-2.9-6.5-7.1-2.1-5.1-3.7-6.4-9.6-10.5-5.6-3.8-6.2-8.3-6.2-8.3"/><path d="m39.5 47.2c4.7 2.6 3.9 7.3 8.9 11 0 0-3.8-2.2-5.6-6.2-1.4-2.8-3.3-4.8-3.3-4.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f954.svg b/build/js/jsxc/lib/emojione/assets/svg/1f954.svg
new file mode 100644
index 0000000..15d99ff
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f954.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M38.7,2c-12.4,0-14.6,10.9-24,17C3.1,26.7,0,35.5,3.2,45.1c4.1,12.4,15.5,21,28.8,14.2
+ c13.3-6.8,18.3-19.1,25.1-25.5C65.4,26,64.4,2,38.7,2z" fill="#bf906c"/><path d="m59.4 12.1c.7 4 .8 11.7-1.8 15.5-1.1 1.7-3 4.1-4.1 5.5 2.7-6.1 1.4-9.7 1.4-9.7-3.1 14.3-12 15.2-17.8 26.1 0 0 5.2-3.1 8.6-6.6 0 0-4.7 11.5-15.9 12.9-10.4 1.3-11 4.6-13.9 4.6 4.3 2.8 10.5 1.8 16-1 13.3-6.8 18.3-19.1 25.1-25.5 5.9-5.6 6.4-15.8 2.4-21.8" fill="#805f47"/><g fill="#cc9a72"><path d="m27.5 51.2c.3 1.4-1.5 2.9-3.9 3.4-2.4.4-4.6-.4-4.8-1.8-.3-1.4 2.1.6 4.5.1 2.4-.5 3.9-3.2 4.2-1.7"/><path d="m12.8 50.7c-1.1.8-3-.3-4.4-2.6-1.3-2.3-1.6-4.8-.5-5.6 1.1-.8.4 2.4 1.7 4.6 1.4 2.3 4.3 2.7 3.2 3.6"/><path d="m8.7 37.6c-1.3 0-2.3-2.2-2.3-4.9.1-2.7 1.2-4.9 2.5-4.9 1.3 0-.9 2.2-.9 4.9-.1 2.7 2 4.9.7 4.9"/><path d="m37.4 42.8c.2 1.5-1.7 3-4.2 3.3-2.5.3-4.7-.6-4.9-2.1-.2-1.5 2.2.7 4.7.4 2.5-.4 4.2-3.1 4.4-1.6"/><path d="m46.9 13.4c1.3.1 2.1 2.3 1.8 5-.3 2.7-1.6 4.8-2.9 4.8-1.3-.1 1.1-2.1 1.4-4.8.2-2.8-1.7-5.1-.3-5"/><path d="m28.6 10.8c-.6-.8.1-2.4 1.7-3.6 1.6-1.2 3.5-1.6 4.1-.8.6.8-1.7.5-3.3 1.7-1.6 1.3-1.9 3.5-2.5 2.7"/><path d="m18.4 21.8c-.6-1.3 1.1-3.1 3.7-4.1 2.7-1 5.3-.8 5.9.5.6 1.3-2.5 0-5.2 1-2.6.9-3.8 3.8-4.4 2.6"/><path d="m26.3 33.8c1.1 1.6-.1 4.6-2.8 6.9-2.7 2.2-5.8 2.7-6.9 1.2-1.1-1.6 2.9-.8 5.6-3 2.6-2.3 2.9-6.7 4.1-5.1"/><path d="m42.6 5.3c1.3 1.2.6 4.2-1.5 6.6-2.1 2.4-4.8 3.4-6.1 2.2-1.3-1.2 2.5-1.2 4.6-3.6 2.1-2.4 1.7-6.4 3-5.2"/><path d="m44.4 29.4c1 1.3 0 4-2.2 5.9-2.2 2-4.9 2.5-5.9 1.2-1-1.3 2.4-.8 4.7-2.8 2.2-1.9 2.4-5.6 3.4-4.3"/><path d="m22.3 27.6c.2 1.4-1.7 2.9-4.2 3.4-2.5.5-4.7-.2-4.9-1.6-.2-1.4 2.1.5 4.6 0 2.6-.6 4.3-3.2 4.5-1.8"/><path d="m55.4 12.6c1.3.6 1.6 3 .7 5.4-.9 2.4-2.6 3.9-3.9 3.3-1.3-.6 1.5-1.6 2.4-4 .9-2.4-.5-5.3.8-4.7"/><path d="m38.2 23c.3 1.5-1.9 3.4-4.8 4.4-3 .9-5.6.5-5.9-1-.3-1.5 2.6.2 5.6-.8 2.9-.9 4.8-4.1 5.1-2.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f955.svg b/build/js/jsxc/lib/emojione/assets/svg/1f955.svg
new file mode 100644
index 0000000..468c7a2
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f955.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m40.1 30.1c-1.4-.8-6.1-5.6-6.9-6.9-1.8-3.1-4.9 1.3-5.7 2.6-.7 1.3-2.1 3.2-3.2 4.1-1.2.9-3.4 2.5-4.1 4.8-.7 2.2-3.5 4.4-4.3 5.5-.7 1.1-1.9 3.2-3.8 4.8-1.9 1.6-3.3 3.5-3.7 5.1-.4 1.6-2.6 2.1-2.9 3.7-.4 1.6-1.8 4.4-2.6 5.3-2.1 2.4-.3 4.3 2.1 2.1.9-.8 4.5-5.1 6.1-5.5s4.2-2.5 5.8-4.4c1.6-1.9 5.6-4.1 7.2-5.8 2.5-2.6 6.2-3 9.3-6.4 2.8-3.2 12.1-5.8 6.7-9" fill="#e88f27"/><g fill="#ffce31"><path d="m9.3 53.3c1.1.3-1.4-1.8-2-.6-.6 1.2-1.3 1.8-1.7 3-.4 1.2-2 2.8-2.5 4-.5 1.2-.3 2 .8.1 1.1-1.9 1.5-2.6 2.6-3.7 1.1-1 .8-3.4 2.8-2.8"/><path d="m11 51.8c.5-.5-1.1-.7-.6-1.5.7-1 2-1.7 3.4-4.6 0 0 1.9 1.5 2.4.9.6-.8-1.8-2.4-2.4-2.2-1.1.3-1.5 2.7-4.4 5.5-.9 1 .9 2.6 1.6 1.9"/><path d="m28 33c.6-.7-1.7-2.7-2.3-2.6-1.1.2-1.7 2.6-4.8 5.1-1.1.9.6 2.8 1.4 2.1.5-.5-1.1-.9-.5-1.6.7-.9 2.1-1.5 3.8-4.3 0 .1 1.9 1.8 2.4 1.3"/><path d="m20.4 39.6c-.2.5-1-.6-1.4-.1-.6.7-.7 1.8-2.6 3.5 0 0 1.9 1.1 1.5 1.6-.4.6-2.6-.8-2.6-1.2-.1-.9 1.7-1.7 3-4.4.5-1.1 2.5-.1 2.1.6"/><path d="m31.5 24.4c-.9 0-1.5 1.9-4.1 3.5-.9.6.4 2.5 1 2.1.4-.3-.8-1-.3-1.4.6-.6 1.8-.9 3.2-3 0 0 1.4 1.9 1.9 1.5.6-.6-1.2-2.7-1.7-2.7"/></g><path d="m62 14c-13.1.9-6.2-8.1-6.2-8.1s-5.1 2.7-6.4 1.6l.2-5.5c0 0-4.2 3.1-5.7 3l-5.1-1.8c0 0 .6 2.9.3 4.7l-3.8.2c9.5 7.9.3 5.5.3 5.5 8.2 5.7 2 11.7-.3 13.7-.9.8 1.3 2.7 1.7 2.1 2.1-2.9 8.2-11.5 13.6-1.6 0 0-.4-7.8 5.4-1.7-2.5-7.5 5.1-5.1 5.1-5.1l-3.7-2.7c.1 0 .9-2.5 4.6-4.3" fill="#699635"/><path d="m61.1 20.9c0 0-.4-3.7-3.8-4.9-1.5-.5 4.6-2 4.6-2-3.2-2.1-7.3-.6-6-2.6 2-3-.1-5.5-.1-5.5s-5.2 4.1-5 1.9c.3-3.7-1.2-5.8-1.2-5.8s-3.4 4.5-4.3 3.4c-2-2.4-6.5-2.1-6.5-2.1s4.2 4.6 1.2 4.5c-2.4-.1-4.7.3-4.7.3s7.1 4.9 4.9 4.7c-2.2-.3-4.6.8-4.6.8s6.2 1.9 4.3 8.2c-.5 1.6-2.4 4.2-4.8 6.2.4 1.3 1.3 1.4 1.3 1.4s3.7-4.5 5.1-5.5c6.6-4.9 9.2 3.9 9.2 3.9s1.7-2 1.9-5.3c.1-3 3.6 3.6 3.6 3.6s1.3-2.9.3-5.4c-1.4-2.7 4.6.2 4.6.2" fill="#83bf4f"/><g fill="#699635"><path d="m48.4 5.5c0 6.8-3.8 12.8-3.8 12.8 6.8-6.4 3.8-12.8 3.8-12.8"/><path d="m41.2 8.9c1.7 6 0 12.2 0 12.2 4.2-7.3 0-12.2 0-12.2"/><path d="M57,18.1C48,17,39.8,24,39.8,24C49.1,13.5,57,18.1,57,18.1z"/><path d="m47.2 16.8c0 0 5.1-3 10-2.7 0 0-4.3-2.9-10 2.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f956.svg b/build/js/jsxc/lib/emojione/assets/svg/1f956.svg
new file mode 100644
index 0000000..dc1e86f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f956.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m28.8 54.5c-11.2.7-21.2 1-24.8-1.6-5.1-3.8.7-19.2 4.9-24.6l50.9-12.8c6.3 11.6-1.8 15.9-12.8 23.5-10 7-13.8 15.1-18.2 15.5" fill="#fbd399"/><path d="m30.9 44.5c-8.7 8.3-34.1 14.1-27.5-7.1 2.9-9.4 8.5-10.7 9.3-12.4 2.2-4.9 8.4-7.2 10.6-7.9 5.2-1.5 2.3-6 15.7-5.4 1.2.1 3.8-2.1 6.7-2.5 7.9-1.2 13 3.6 14.1 6.4 5.3 13.2-9.1 10.2-28.9 28.9" fill="#fbbf67"/><path d="m7.5 53.1c-8.6-1.1-3.8-19.4 2.4-23.8 6.2-4.5 14.9-1.9 19.5 5.7 4.6 7.7 4.7 17.8-2.8 18.6-6.3.6-12 .4-19.1-.5" fill="#fff3e3"/><path d="m14.4 25c4.4-.9 8.2-3.8 16.1.9 5.7 4.7 6.8 8.6 7 5.7.9-4-6.9-11.1-14.2-10.5-7.2-.7-13.9 6.4-8.9 3.9" fill="#d3976e"/><path d="m13.4 25.1c.2-.6 7.9-5.1 13.3-2.7 5.1 2.2 6.7 4.2 9.5 8.3.4.6.6 1.1.9 1.5.1 0 .1-.2 0-.8.5-3.1-4.9-9.8-11.4-10.3-6.2-1.3-13.6 3.5-12.3 4" fill="#89664c"/><path d="m26.9 16.5c3.4-.7 6.2-2.9 12.1.7 4.3 3.6 5.1 6.5 5.3 4.3.7-3-5.2-8.4-10.7-7.9-5.4-.6-10.5 4.7-6.7 2.9" fill="#d3976e"/><path d="m26.1 16.5c.1-.5 6-3.8 10-2 3.8 1.6 5.1 3.2 7.2 6.3.3.5.5.8.7 1.1 0 0 .1-.2 0-.6.4-2.4-3.7-7.4-8.6-7.7-4.7-1.1-10.3 2.6-9.3 2.9" fill="#89664c"/><path d="m41.2 11.7c2.5-.2 4.7-1.6 8.8 1.5 2.8 2.9 3.2 5.1 3.5 3.5.7-2.2-3.2-6.5-7.2-6.6-3.9-.7-8 2.7-5.1 1.6" fill="#d3976e"/><path d="m40.6 11.7c.1-.3 4.6-2.3 7.4-.7 2.7 1.5 3.4 2.7 4.7 5.1.2.4.3.7.4.9 0 0 .1-.1.1-.4.5-1.7-2.1-5.7-5.7-6.3-3.3-1.1-7.5 1.1-6.9 1.4" fill="#89664c"/><g fill="#ede0d1"><path d="M7.1 47.2 8.2 46 7.1 44.8 6 46z"/><path d="m12.2 32.1l1.1-1.1-1.1-1.2-1.1 1.2z"/><path d="m7.7 39.3l1.1-1.1-1.1-1.2-1.1 1.2z"/><path d="m10.5 40.5l1.1-1.2-1.1-1.1-1.1 1.1z"/><path d="m16.5 49.5l1.1-1.2-1.1-1.1-1.1 1.1z"/><path d="m19.6 47.2l1.1-1.2-1.1-1.2-1.1 1.2z"/><path d="m26.7 37.6l1.1-1.2-1.1-1.1-1.1 1.1z"/><path d="m21.3 33.8l1.1-1.2-1.1-1.1-1.1 1.1z"/><path d="m29.2 48.3l1.1-1.1-1.1-1.2-1.1 1.2z"/><path d="m28.1 45.6l1.1-1.2-1.1-1.1-1.1 1.1z"/><path d="m23.4 38.8l1.7-1.8-1.7-1.7-1.6 1.7z"/><path d="m19.3 51.8l1.7-1.7-1.7-1.8-1.7 1.8z"/><path d="m6 44l1.6-1.8-1.6-1.7-1.7 1.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f957.svg b/build/js/jsxc/lib/emojione/assets/svg/1f957.svg
new file mode 100644
index 0000000..e0a2a01
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f957.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 33.2c0 13.2 13.4 28.8 30 28.8 16.6 0 30-15.6 30-28.8 0 0-60 0-60 0" fill="#b2c1c0"/><path d="m62 33.2c0 8.5-13.4 15.4-30 15.4-16.6 0-30-6.9-30-15.4 0-8.5 13.4-15.4 30-15.4 16.6 0 30 6.9 30 15.4" fill="#e8e8e8"/><path d="m32 46.6c-15.2 0-28.1-6.2-28.1-13.5 0-7.3 12.9-13.5 28.1-13.5 15.2 0 28.1 6.2 28.1 13.5 0 7.4-12.9 13.5-28.1 13.5" fill="#b2c1c0"/><path d="m12.5 16.4c.1 1.7.9 7.4.2 10 4.4.8 1.1-7.7-.2-10" fill="#699635"/><path d="m55.6 27.7c2-4.6-1.1-9.4-3.1-6.6-2 2.8-.5 4.6-5.6 3.6-1.1-1.9 1.6-7.7 0-8.8-2.6-1.7-2.6 4.7-5.6 1-3-3.6-3.1 4.9-7.6 4.9-2.2 0 .9-6.6-4.1-7.9-5-1.3-3.6 4.4-9.6 1.1-6-3.3-9.1 1.7-6.3 3.8 2.7 2.1.5 6.3.1 7.9-3.4-1.6-3.2 5.3-3.1 6.4-2.4.8-6.3 2.5-6.4 2.6 2.5 6 14.1 10.9 27.7 10.9 15.2 0 28.1-6.2 28.1-13.5 0-7.4-7.8 2.1-4.5-5.4" fill="#83bf4f"/><path d="m38.3 36c2.5-5.3-3.6-3.1-5.9-.8-.1-3.8 1.9-6.2 3.6-8.8-2.8 2-5.8 4.3-9.1 5.5 1.9 2.2 2.9 5.2 3.3 8.1 8 .8 6.2 4.6 5.8 6.5 9.5-.7-.1-5.3 2.3-10.5" fill="#699635"/><g fill="#ed4c5c"><path d="m17.3 22.8c-1.6 1.6-2.1 3.6-1.1 4.6.9 1 2.9.5 4.5-1.1 1.6-1.6 2.1-3.6 1.1-4.6-1-.9-3-.4-4.5 1.1"/><path d="m38.4 41.6c-1.6 1.6-2.1 3.6-1.1 4.6.9 1 2.9.5 4.5-1.1 1.6-1.6 2.1-3.6 1.1-4.6-.9-1-2.9-.5-4.5 1.1"/></g><path d="m26.1 20c-3.9.2-5.7 10.3-8.5 9.7 2.3 2.2 3.5 5.5 3.5 8.7.6.1 1.5-1.6 2 .2-.7-5.5-.5-11.5 3-18.6" fill="#699635"/><path d="m42.4 23.3c1 2 .9 4.1-.3 4.7-1.2.6-2.9-.4-4-2.4-1-2-.9-4.1.3-4.7 1.2-.6 3 .4 4 2.4" fill="#ed4c5c"/><path d="m50.1 25c-8.5-1-9.8-1.2-2.7 5.9 1.9 2.4-5.3 7.5-7.9 8 3.3 6.3 3.9 6.9 8.5 5.3 6.4-2.2 3.2-9.7 6.2-8.1-1.6-2.4-10.6-3.5-4.1-11.1" fill="#699635"/><path d="m55.3 30.1c-.2-1.1 2.2-3.6 1.7-7.1-.5-3.2-4.2-5.1-5.3-1.4-1 3.4-4.2 2.6-4.2 2.6 2.1-8.2 1-12.2-3.6-7.3-2.4 2.5-.2-8.5-7.8 3.2-3.9 6-2.3-13.7-9.3-6.5-5.6 5.7-9.9-5.4-13.6 1.3-1.9 3.5 2.2 4 1.1 10.8 0 0-4.2-2.6-3.8 6 .1 1.5-7.4 1.8-5.7 4.3 1.7-.7 12.4-5.8 11.8-1.1-.2 1.4-1.1 5.9 1.4 5.7 2.7-.2 5.2-4.4 5.3.4.1 3.7 1.9 3.9 4.5 1.6.7-.6 1.2-1.6 2.2-2 1.8-.7 3.5.3 5.2.9 3.2 1.2 2.3-3.3.1-4.1-.4-.1-2.9-.5-2.7-.9.4-1.2 1.8-2 2.8-2.5.9-.4 1.9-.7 2.9-.7 1.4.1.9 1 .6 2.1-.3 1.3-.1 3 1.3 3.4 1.6.5 2.9-1 4-1.9.8-.7 6.1-4.1 4.3-.5-1.1 2.1-6.4 2.8-4 5.9 1.6 2 3.8 1.1 5-.8 1-1.5 1.4-3.3 1.8-5.1.3-1.4.4-2.2 1.8-1.5 1.9 1 4.3 3.2 4.4-.4.1-2.4 1-6.8 3.1-2.6-1.3-5.5-5.1-.3-5.3-1.8m-13 6.8c-.1.1-2.6 1.9-3 .2-.3-1.3 1-2.8.2-3.9-1.4-1.9-5.1-.1-6.5.9-.8.6-2.8 2.5-1.3 3.4 1.1.7 2.8.3 3.8 1.3.8.8 1 2.3-.4 1.7-1.8-.7-3.6-1.6-5.6-.8-1.1.4-3.8 4.4-5.1 3.6-.7-.4-.4-3.2-.5-4-.3-2.3-1.9-1.9-3.4-1-.6.4-2.4 1.7-3.1 1.2-.7-.5-.3-2.7-.2-3.4.5-4.3-2.3-4.7-5.9-3.7 0-1.3-.1-6.5 2.3-5.6 1.4.5 5 4.9 6.3 2.4 1.4-2.7 7.6-14.6 7.6-5.7 0 2.4-2.1 7.5-.4 8.7 1.5 1 5.3-3.2 6.3-3.8 2.5-1.7 5.3-3.3 6.6.5.9 2.5 1.1 5.8 4.2 6.5-.8.5-1.4 1-1.9 1.5m4.8-4.2c-.3 1.8-2.4 2.2-3.8 1.4-2.9-1.7-1.3-7.6-4.9-8.5-4.3-1.1-9.9 6.4-10.7 5.6-1-1.1 1.1-5.7.8-8.7-.9-7.7-6.9-.2-9.3 6-.5 1.2-4.2-2-4.2-2 1.9-8.2-2.6-8.1-1.2-10.7 2.9-5.8 7.2 5.4 13.1-.7 6.4-6.5 4 14.6 10 5.7 5.5-8.1 4.6-1.4 5.8-1.8 2.1-.7 5.7-7.6 3.8 5.1-11.9-2.2 1.2 5.1.6 8.6m8.8 3.1c-1.5-.3-3.1-2.9-4.9-2-1.5.7-1.6 4.7-2.2 6.1-.7 1.7-3 3.8-4.4 1.3-.3-.6 4-3.3 4.5-4.5 1-2.3-1.1-2.5-.9-4 .7-4.6-10.3-9.2-.4-7.5 5.6 1 4.3-5.9 6.9-4.4 5 3-3.7 10.5 1.9 10.6-.4 1.5-.2 3-.5 4.4" fill="#c7e755"/><path d="m8.6 34.6c1.6 1.5 2.1 3.6 1.1 4.6-.9 1-2.9.5-4.5-1.1-1.6-1.6-2.1-3.6-1.1-4.6 1-.9 3-.4 4.5 1.1" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f958.svg b/build/js/jsxc/lib/emojione/assets/svg/1f958.svg
new file mode 100644
index 0000000..2062eae
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f958.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><circle cx="32" cy="32" r="30"/><path d="m6.3 18l-2.7-2.7c-2.1-2.1-2.1-5.5 0-7.5l4.2-4.2c2.1-2.1 5.5-2.1 7.5 0l2.7 2.7-3.1 3.1-2.7-2.7c-.3-.3-.9-.3-1.3 0l-4.2 4.2c-.3.3-.3.9 0 1.3l2.7 2.7-3.1 3.1"/><path d="m57.7 46l2.7 2.7c2.1 2.1 2.1 5.5 0 7.5l-4.2 4.2c-2.1 2.1-5.5 2.1-7.5 0l-2.7-2.7 3.1-3.1 2.7 2.7c.3.3.9.3 1.3 0l4.2-4.2c.3-.3.3-.9 0-1.3l-2.7-2.7 3.1-3.1"/></g><circle cx="32" cy="32" r="23.4" fill="#f2b200"/><path d="m39.6 11.4c-5-2.6-12.9 2.4-12 6.6.9 4.2 11.2 7.2 14 13.1 2.8 5.9 4.1 7.8 9.1 3.8 4.9-4.1 7.2-13.8-11.1-23.5" fill="#b47d56"/><g fill="#89664c"><path d="m38.8 13.8c3.4 0-2.1 1.9-5.3 4.7-1.6 1.4-.9-4.7 5.3-4.7"/><path d="m46.1 18.7c3.4 0-2.1 1.9-5.4 4.7-1.5 1.3-.8-4.7 5.4-4.7"/><path d="m50.6 26.2c3.4 0-2.1 1.9-5.4 4.7-1.5 1.3-.7-4.7 5.4-4.7"/></g><path d="m10.7 38c-1.9-4.8 4.4-10.7 8.5-9.2 4.2 1.5 5.7 10.9 11.2 14.4 5.5 3.4 7.3 4.9 2.5 8.5-4.9 3.6-15.1 3.8-22.2-13.7" fill="#b47d56"/><g fill="#89664c"><path d="m13.4 39.3c-.5 2.9 2.2-1.5 5.6-3.8 1.6-1.1-4.7-1.5-5.6 3.8"/><path d="m16.8 45.4c-.5 2.9 2.2-1.5 5.6-3.8 1.6-1.1-4.7-1.5-5.6 3.8"/><path d="m22.8 49.9c-.5 2.9 2.2-1.5 5.6-3.8 1.6-1.1-4.6-1.6-5.6 3.8"/></g><g fill="#699635"><path d="m25.6 13c-2.2-2.1-2.2-2.1-8.6 4.6-3.5 3.7-5.3 7.6-4.1 8.7 2.2 2.1 2.2 2.1 8.5-4.6 3.6-3.6 5.4-7.5 4.2-8.7"/><path d="m51.5 40.2c-1.8-2.4-1.8-2.4-9.1 2.8-4.1 2.9-6.5 6.3-5.6 7.6 1.8 2.4 1.8 2.4 9.1-2.8 4.1-2.9 6.6-6.3 5.6-7.6"/><path d="m38.6 33.2c1.3-3 1.3-3-7.5-7.1-4.9-2.3-9.4-2.8-10.1-1.2-1.3 3-1.3 3 7.5 7.1 4.8 2.3 9.3 2.8 10.1 1.2"/></g><path d="m43.5 37.8c.2-2.2-1.6-1.1-4.9-1.2-3.3-.2-2.4 2.4-2.2 4.5.1 2.1 1.4.4 6.2.5 1.8.1.6-1.6.9-3.8" fill="#ed4c5c"/><path d="m29.9 34.1c-2.5-.9-1.7.8-3 3.2-1.3 2.4 2.1 2.5 4.6 3.1 2.5.6.9-.9 2.6-4.4.7-1.3-1.7-1-4.2-1.9" fill="#ffce31"/><path d="m24.5 18.9c-2.5-.9-1.7.8-3 3.2-1.3 2.4 2.1 2.5 4.6 3.1 2.5.6.9-.9 2.6-4.4.7-1.3-1.7-1-4.2-1.9" fill="#ed4c5c"/><path d="m14 26.2c-2.5-.9-1.7.8-3 3.2-1.3 2.4 2.1 2.5 4.6 3.1 2.5.6.9-.9 2.6-4.4.7-1.4-1.7-1.1-4.2-1.9" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f959.svg b/build/js/jsxc/lib/emojione/assets/svg/1f959.svg
new file mode 100644
index 0000000..8be63ab
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f959.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m2.3 42c2.2 4.6 7 9.6 16.5 11 9.4 1.4 19.8 4.5 27.6 2.3 7.8-2.1 14.8-6.3 15.6-10.2.8-3.8-25.8-28.5-30.7-35.3-5-6.8-10.4 7.4-14.5 11.5-4.1 4-17 15.4-14.5 20.7"/><path d="m55.8 39.1c-1.9-2.2-5.8-8.3-7.7-9.4s-8.3-7.8-8.3-7.8c-4.6-6.2-7-8.1-9.4-10.7-2.2-2.4-2.4-1.8-3.9-.6-1.6 1.2-5.3 6.7-6.7 9.5-1.4 2.8-3.8 4.3-5.6 6-5.5 5-9.8 12-9.8 12s-3.6 5.7 1.7 1.8c5.3-3.8 17-22.7 19.4-22.7 3.1 0 6.1 6 8.6 10.3 2.6 4.3 6.5 6.2 9.5 10.7 3 4.4 6.2 14.1 8.9 13.1s7.5-4.2 8-6.2c.4-2.1-2.9-3.8-4.7-6"/></g><path d="m55.8 39.1c-1.9-2.2-5.8-8.3-7.7-9.4s-8.3-7.8-8.3-7.8c-4.6-6.2-7-8.1-9.4-10.7-2.2-2.4-2.4-1.8-3.9-.6-1.6 1.2-5.3 6.7-6.7 9.5-1.4 2.8-3.8 4.3-5.6 6-5.5 5-9.8 12-9.8 12s-3.6 5.7 1.7 1.8c5.3-3.8 17-22.7 19.4-22.7 3.1 0 6.1 6 8.6 10.3 2.6 4.3 6.5 6.2 9.5 10.7 3 4.4 6.2 14.1 8.9 13.1s7.5-4.2 8-6.2c.4-2.1-2.9-3.8-4.7-6" opacity=".67" fill="#fff"/><path d="m13.7 27.8c-.9-.4-4.6-1.8-5.2-.9s.4 3.5-1.9 3.2c-2.2-.2-1.8 1.1-2.5 1.9s-1.1 2-.9 2.4 1.1 5.3 2.1 4.4c1-.9 9.7-10.5 8.4-11" fill="#d3976e"/><path d="m12.8 28.8c0 0-2.1-4.2-1.2-5.2s2.3.5 2.9-1.1-.2-4.2 1.9-3.8c2.1.5 2.1-2 3-2.1s4.3-.1 3.4.8c-.9.9-5 5.1-6.2 7.1s-3.1 5.8-3.8 4.3" fill="#83bf4f"/><path d="m38.2 26.2c0 0 5.1-5.6 10.1-1.6 4.7 3.8 3.7 9.6 1.4 14.3l-11.5-12.7" fill="#c94747"/><path d="m49.7 37.7c1.5-4.2 1.6-8.9-2.4-12.1-3-2.4-6-1.4-7.9-.2l10.3 12.3" fill="#ed4c5c"/><path d="m35.3 20.2c1.9 0 4.2-4.8 4.6-1.9s3.4.9 3.6 2.9-.6 3.8.8 3.9c1.4.2 1.1-.7 1.1 6.8 0 0 .5 2.1-1.1 1.5s-12.5-13.2-9-13.2" fill="#83bf4f"/><g fill="#d3976e"><path d="m43.8 31c1.3-.2 2.9-1.9 4.3 0s.4 4.5 2.8 4.8 3 2.2 3 4 2 1.8 2.7 2.4-.8 3.1-1.3 3.8-1.2 2.2-2 1.1-1.9-6.6-5.6-9.2-7.1-6.3-3.9-6.9"/><path d="m27.3 14.1c0 0 4.1-4.1 6.7-4.6s1.8 1.8 2.3 2.8c.9 1.8.9 1.4 1.9 2.5s-.6 5.6-.7 7.5-.4 3.7-1.5 2.5c-1.1-1.2-1.9-5.7-4.2-6.7-2.3-.9-6.1-2.5-4.5-4"/><path d="m47.2 53c-.3.2-5.6-7-11.9-16-6.3-9-11.2-16.5-10.9-16.7.3-.2 5.6 6.9 11.9 16 6.2 9 11.1 16.5 10.9 16.7"/><path d="m9.9 48.8c.2.3 5.2-4.9 11.2-11.5 6-6.6 10.7-12.1 10.5-12.4-.2-.3-5.2 4.9-11.2 11.5-6.1 6.6-10.8 12.2-10.5 12.4"/><path d="m18.2 48c.2.3 4-3.3 8.5-8.1 4.5-4.8 8-8.9 7.8-9.1-.2-.3-4 3.3-8.5 8.1-4.4 4.7-8 8.8-7.8 9.1"/><path d="m41.5 54c-.3.2-3.7-4.2-7.6-9.8-3.9-5.6-6.9-10.4-6.6-10.6.3-.2 3.6 4.2 7.6 9.8 3.9 5.6 6.9 10.4 6.6 10.6"/><path d="m39.6 36c.2.2-2.4 3.6-5.9 7.5-3.5 3.9-6.5 6.9-6.7 6.7-.2-.2 2.4-3.6 5.9-7.5 3.4-3.9 6.4-6.9 6.7-6.7"/><path d="m26.5 52c-.3.2-2.9-3.1-5.9-7.5-3-4.3-5.2-8-5-8.2.3-.2 2.9 3.1 5.9 7.5 3.1 4.3 5.3 8 5 8.2"/><path d="m19 51c-.3.2-2.4-2.4-4.7-5.7-2.4-3.4-4-6.3-3.8-6.5.3-.2 2.4 2.4 4.7 5.7 2.4 3.4 4.1 6.3 3.8 6.5"/><path d="m25.3 23.3c.2.2-1.8 2.9-4.5 6-2.7 3.1-5.1 5.3-5.3 5.1-.2-.2 1.8-2.9 4.5-6 2.7-3 5.1-5.3 5.3-5.1"/><path d="m44.1 41.3c.2.2-1.8 2.9-4.5 6-2.7 3.1-5.1 5.3-5.3 5.1-.2-.2 1.8-2.9 4.5-6 2.6-3 5-5.3 5.3-5.1"/><path d="m34 53c-.3.2-4.2-4.9-8.7-11.5-4.6-6.6-8.1-12-7.8-12.2.3-.2 4.2 4.9 8.7 11.5 4.6 6.5 8.1 12 7.8 12.2"/></g><g fill="#89664c"><path d="m12 28.6c.7-.9-2.4.2-2.6 1.9-.2 1.6-3.1 3.5-3.4 4.6-.3 1-1.3 1.6-1.2 2.4.2.8 5.3-6.2 7.2-8.9"/><path d="m28.3 14.8c.2.9 2.2 1.6 3.7 2.2 1.5.6 3.2 4.3 3.8 5.8.6 1.5 1.2 1.5.8.5s-1.4-6.3-3.9-7.3c-2.9-1.2-4.7-2.4-4.4-1.2"/><path d="m44.9 32.4c-.8-.8-1.4.1-.8.9.6.8 2.6 2.5 3.9 3.5s3.1 2 4.4 5.7 2.1 4.3 2.4 3.1-1.4-1.9-2.2-4.6-3.9-4.5-4.8-5.6-2.1-2.2-2.9-3"/><path d="m36.7 20.3c-.4-1.6-1.4-5.1-4.7-6s-1.7-1.6.2-1.3 4 2.3 4.8 5.6c.6 2.5 0 2.7-.3 1.7" opacity=".67"/><path d="m34.3 11.5c-1.1-.5-2.1-.2-1.6.6.6.8 2.7.2 4 3.1s.8-2.3-2.4-3.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f95a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f95a.svg
new file mode 100644
index 0000000..005e3e6
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f95a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M53.6,29.8C51.1,11.8,39.7,2,32,2s-19.1,9.8-21.6,27.8C8,47.8,15.9,62,32,62S56,47.8,53.6,29.8z" fill="#ffc294"/><path d="m53.6 29.8c-2-14.2-9.5-23.3-16.4-26.5 4.7 4.7 8.9 12.1 10.2 22.1 2.5 18-5.4 32.2-21.6 32.2-3.5 0-6.6-.7-9.2-1.9 3.7 4 8.9 6.3 15.4 6.3 16.1 0 24-14.2 21.6-32.2" opacity=".33" fill="#d3976e"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f95b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f95b.svg
new file mode 100644
index 0000000..877c052
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f95b.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-9.9 0-18 3.8-18 8.4 0 0 0 28 7.7 43.7.7 4.5 5 7.9 10.3 7.9 5.2 0 9.5-3.4 10.3-7.9 7.7-15.7 7.7-43.7 7.7-43.7 0-4.6-8.1-8.4-18-8.4" opacity=".8" fill="#a1b8c7"/><g fill="#555e63"><path d="m32 58.3c-4.3 0-8.1-1.7-10.3-4.2.7 4.5 5 7.9 10.3 7.9 5.2 0 9.5-3.4 10.3-7.9-2.2 2.5-6 4.2-10.3 4.2" opacity=".3"/><path d="m32 59c-3.4 0-6.4-.9-8.1-2.3.6 2.4 4 4.3 8.1 4.3 4.1 0 7.5-1.9 8.1-4.3-1.7 1.4-4.7 2.3-8.1 2.3" opacity=".3"/></g><path d="m32 14.2c-8.6 0-15 2.9-15 7.2 0 0 .8 18.5 6.1 31 1.9 2.3 5.2 3.8 8.9 3.8s7-1.5 8.9-3.8c5.3-12.5 6.1-31 6.1-31 0-4.3-6.4-7.2-15-7.2" fill="#fff"/><g fill="#f2ece3"><path d="m32 14.2c-9.2 0-15 3-15 7.3 0 4.3 6.3 8 15 8s15-3.7 15-8c0-4.3-5.8-7.3-15-7.3"/><path d="m37.8 30.1c-1.2 0-2.2-.6-2.3-1.4 0-.5.2-.9.7-1.3.4-.3 1-.5 1.6-.5.1 0 .2 0 .3 0 1.2 0 2.2.6 2.3 1.4 0 .5-.2.9-.7 1.3-.4.3-1 .5-1.6.5-.1-.1-.2 0-.3 0"/><path d="m41.6 29.3c-.5 0-1-.2-1.2-.6-.2-.3-.2-.7 0-1.1.2-.3.5-.6.8-.8.3-.2.7-.2 1-.2.5 0 1 .2 1.2.6.4.6 0 1.5-.8 1.9-.4.1-.7.2-1 .2"/><path d="m33.5 30.5c-.9 0-1.5-.5-1.6-1.1 0-.4.1-.7.5-1 .3-.2.7-.4 1.1-.4.1 0 .2 0 .2 0 .9 0 1.5.5 1.6 1.1.1.7-.6 1.3-1.5 1.4-.1 0-.2 0-.3 0"/><path d="m30.2 30.8c-.4 0-.7-.1-.9-.4-.2-.2-.3-.6-.2-.9.1-.3.2-.6.5-.7.3-.2.6-.3.9-.3.4 0 .7.1.9.4.4.5.3 1.2-.3 1.6-.3.2-.6.3-.9.3"/></g><path d="m44.7 25.6c-.3-.3-.9-.3-1.3 0-.2.2-.3.4-.4.6-.2-.1-.5-.2-.8-.2-.4 0-.9.1-1.3.3-.3.2-.5.4-.7.6-.5-.4-1.2-.7-2.1-.7-.1 0-.2 0-.4 0-.7.1-1.4.3-1.9.6-.4.3-.6.6-.7.9-.4-.3-.9-.4-1.4-.4-.1 0-.2 0-.3 0-.5.1-1 .3-1.4.6-.2.1-.3.3-.4.5-.3-.3-.7-.5-1.2-.5-.4 0-.9.1-1.2.4-.2.1-.3.3-.4.4 0-.1-.1-.1-.1-.2-.3-.3-.9-.3-1.3 0-.1.1-.1.1-.2.2 0-.1-.1-.2-.1-.3-.3-.3-.8-.3-1.2 0-.4.3-.5.8-.2 1.1.3.3.8.3 1.2 0 .1 0 .1-.1.1-.1s.1.3.1.4c.3.3.9.3 1.3 0 0 .4.1.7.4 1 .3.4.8.6 1.3.6.4 0 .9-.1 1.2-.4.2-.1.4-.3.5-.5.4.4 1 .6 1.7.6.1 0 .2 0 .3 0 .8-.1 1.5-.5 1.8-1.1.5.4 1.3.7 2.1.7.1 0 .2 0 .4 0 .7-.1 1.4-.3 1.9-.6.2-.1.3-.3.4-.4.3.2.7.3 1.1.3.4 0 .9-.1 1.3-.3 1.1-.5 1.5-1.6 1.1-2.4.2 0 .4-.1.5-.2.5-.6.6-1.1.3-1.5m-14 4.5c-.2.1-.3.2-.5.2-.2 0-.3-.1-.5-.2-.2-.2-.1-.6.2-.9.2-.1.3-.2.5-.2.2 0 .3.1.5.2.2.3.1.7-.2.9m3-.1c-.1 0-.1 0-.2 0-.5 0-1-.3-1-.6-.1-.4.4-.8 1-.9.1 0 .1 0 .2 0 .5 0 1 .3 1 .6.1.4-.4.8-1 .9m4.4-.5c-.1 0-.2 0-.3 0-.9 0-1.7-.4-1.7-1-.1-.6.7-1.2 1.8-1.3.1 0 .2 0 .3 0 .9 0 1.7.4 1.7 1 0 .7-.8 1.2-1.8 1.3m4.2-.9c-.2.1-.5.2-.7.2-.3 0-.6-.1-.7-.3-.2-.4.1-.9.6-1.2.2-.1.5-.2.7-.2.3 0 .6.1.7.3.2.3-.1.9-.6 1.2" fill="#fff"/><path d="m32 2c-9.9 0-18 3.8-18 8.4 0 4.6 8.1 8.4 18 8.4 9.9 0 18-3.8 18-8.4 0-4.6-8.1-8.4-18-8.4m0 14.6c-9.1 0-16.5-3-16.5-6.7 0-3.7 7.4-7.2 16.5-7.2 9.1 0 16.5 3.5 16.5 7.2 0 3.7-7.4 6.7-16.5 6.7" opacity=".3" fill="#555e63"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f95c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f95c.svg
new file mode 100644
index 0000000..3866204
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f95c.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m42.6 40.2c4-4.6 8.5-4.5 13.6-9.6 6.6-6.6 7.7-16.3 3-22.7-.1-1.6-.4-3.9-1-4.8-.3-.4-1.3-1.2-1.8-1.1-.6.1-1.4.9-2 1.7-6.4-3.3-15-1.9-20.9 4.1-5.1 5.1-4.5 10.1-9.1 14.1-5.6 4.9-11.3 2.1-16.8 7.6-7.3 7.3-7.1 19.2.4 26.7 7.5 7.5 19.5 7.6 26.8.4 5.3-5.5 2.8-10.7 7.8-16.4" fill="#ffc294"/><path d="m56.3 2.5c-.6 0-1.7 1.6-1.7 1.6l3.1 2.6c0 0 .3-1.6-.1-2.7-.3-1-1.1-1.5-1.3-1.5" fill="#dba780"/><g fill="#e8b188"><path d="m42 3.9c-.2.2 1.6 1.2 2.3 1.2 1.2.1 4.8-1.5 4.5-1.8-.8-.7-5.4-.8-6.8.6"/><path d="m39.2 5.1c.8-.1 3 .6 3.1 1.1.1.4-3.6 4.1-4.4 4.4-.8.3-3.6-1.5-3.5-1.9.2-.7 3.3-3.4 4.8-3.6"/></g><g fill="#dba780"><path d="m32.3 10.4c.5-.3 3.9 1.1 3.9 1.7 0 .5-3.6 4.8-4.2 4.8-.7 0-2-.7-2.2-1.4-.2-.4 1.9-4.7 2.5-5.1"/><path d="m28.9 17.4c-.5.2-2.5 3.5-2.6 3.9-.1.7 1.3 1.7 2 1.6.4 0 3.2-3.3 3.3-3.9.1-.6-2-1.9-2.7-1.6"/></g><g fill="#e8b188"><path d="m22.4 27.6c.6 0 3.5-2.4 3.8-2.7.4-.6-.5-1.9-1.2-2-.4-.1-4.1 2.1-4.4 2.5-.4.4 1.1 2.2 1.8 2.2"/><path d="m14.4 31c.7.1 4.7-2.1 5-2.5.6-.6-.2-2.4-1-2.7-.4-.2-5.3 1.6-5.7 2-.6.6.7 3 1.7 3.2"/></g><path d="m8.5 36c.7-.1 3.9-3.4 4-3.9.3-.8-1.5-2.9-2.4-3-.4-.1-3.8 3.6-4.1 4.2-.3.6 1.5 2.8 2.5 2.7" fill="#dba780"/><g fill="#cf9d78"><path d="m7.1 38.6c.2-.6-1.5-2.7-2.2-3-.4-.1-1.7 4.6-1.6 5.4 0 .6 1.2 1.9 2 2 .6 0 1.7-4.1 1.8-4.4"/><path d="m5 45.1c.1-.5-1.2-1.8-1.8-2-.4-.1.4 6 1 6 .5 0 .7-3.7.8-4"/><path d="m8.2 49.7c.1-.5-1.3-3-2-3-.8 0-1.1 4.4-.1 5.4.8.9 2-2.1 2.1-2.4"/><path d="m8.4 40.1c-1-.1-2.1 4-1.9 4.5.1.3 2.2 3.2 2.5 3.3.6.1 2.7-3.3 2.6-3.8-.2-.8-2.5-3.9-3.2-4"/></g><g fill="#e8b188"><path d="m23.2 33c.1-1-2.3-3.8-2.7-3.6-.3.1-5 2.8-5.1 3.2-.1.6 2.5 3.9 3 3.8.8-.2 4.7-2.7 4.8-3.4"/><path d="m29.8 28.3c.1-1-2-2.7-2.4-2.4-.4.1-4.5 2.8-4.6 3.1-.1.6 1.8 3.3 2.3 3.2.9-.2 4.6-3.1 4.7-3.9"/></g><g fill="#dba780"><path d="m35.9 22.6c.1-1-2.7-3-3.2-2.7-.3.1-3.5 3.9-3.6 4.2-.1.6 1.8 3 2.3 2.9.9-.2 4.5-3.6 4.5-4.4"/><path d="m41.1 16c.1-1-3.2-3.1-3.7-2.9-.3.1-3.6 4.6-3.7 4.9-.1.6 2.6 2.9 3.1 2.8.9-.1 4.3-4 4.3-4.8"/></g><g fill="#e8b188"><path d="m47.5 10c.1-1-3.1-3.1-3.6-2.8-.3.1-4.4 4-4.5 4.3-.1.6 2.8 3 3.4 2.9.8-.2 4.6-3.7 4.7-4.4"/><path d="m53.5 5.2c.1-1-2.4-1.7-2.8-1.5-.3.1-4.5 2.1-4.5 2.4-.1.6 2.5 2.9 3 2.8.7-.1 4.2-2.9 4.3-3.7"/></g><g fill="#dba780"><path d="m13.8 33.5c-1-.1-4.4 3.6-4.4 4.5 0 .7 2.4 3.8 3.3 3.9.6.1 4.1-3.3 4.1-4.4-.1-.9-2.3-4-3-4"/><path d="m60.2 22.1c-.2.2-1.2-1.6-1.2-2.3-.1-1.2 1.5-4.8 1.8-4.5.7.8.8 5.4-.6 6.8"/><path d="m59 24.8c.1-.8-.6-3-1.1-3.1-.5-.1-4.1 3.6-4.4 4.4-.3.8 1.5 3.6 1.9 3.5.7-.1 3.4-3.3 3.6-4.8"/></g><g fill="#cf9d78"><path d="m53.7 31.8c.3-.5-1.1-3.8-1.7-3.9-.5 0-4.9 3.6-4.8 4.2 0 .7.7 2 1.4 2.2.4.1 4.7-2 5.1-2.5"/><path d="m46.7 35.2c-.2.5-3.5 2.5-3.9 2.6-.7.1-1.7-1.3-1.6-2 0-.4 3.3-3.2 3.9-3.3.5-.2 1.9 1.9 1.6 2.7"/></g><g fill="#dba780"><path d="m36.5 41.6c0-.6 2.4-3.5 2.7-3.7.6-.4 1.9.5 2 1.2.1.4-2.1 4.1-2.5 4.4-.4.3-2.3-1.1-2.2-1.9"/><path d="m33.1 49.6c-.1-.7 2.1-4.7 2.5-5 .6-.6 2.4.2 2.7 1 .2.4-1.6 5.3-2.1 5.7-.5.6-3-.7-3.1-1.7"/></g><g fill="#cf9d78"><path d="m28.1 55.5c.1-.7 3.4-3.9 3.9-4 .8-.3 2.9 1.5 3 2.4.1.5-3.6 3.9-4.2 4.2-.7.2-2.8-1.7-2.7-2.6"/><path d="m25.5 56.8c.7-.2 2.7 1.5 3 2.2.1.4-4.6 1.6-5.4 1.6-.6 0-2-1.2-2-2-.1-.5 4-1.7 4.4-1.8"/><path d="m18.9 59c.5-.1 1.8 1.2 2 1.8.1.4-6-.4-6-1 0-.5 3.7-.7 4-.8"/><path d="m14.3 55.8c.5-.1 3 1.3 3 2 0 .8-4.4 1.1-5.4.1-.9-.9 2.1-2 2.4-2.1"/><path d="m23.9 55.6c.1 1-4.1 2.1-4.5 1.9-.3-.1-3.2-2.2-3.3-2.5-.1-.6 3.3-2.7 3.8-2.6.9.2 4 2.4 4 3.2"/></g><g fill="#dba780"><path d="m31.1 40.8c1-.1 3.8 2.3 3.6 2.7-.1.3-2.9 5-3.2 5.1-.6.1-3.9-2.5-3.8-3 .1-.8 2.6-4.7 3.4-4.8"/><path d="m35.7 34.3c1-.1 2.7 2 2.4 2.4-.1.3-2.7 4.4-3.1 4.5-.6.1-3.3-1.8-3.2-2.3.2-.9 3.2-4.6 3.9-4.6"/></g><g fill="#cf9d78"><path d="m41.4 28.1c1-.1 3 2.7 2.8 3.2-.1.3-3.9 3.5-4.2 3.6-.6.1-3-1.8-2.9-2.3.2-.9 3.6-4.4 4.3-4.5"/><path d="m48 22.9c1-.1 3.1 3.2 2.9 3.7-.1.3-4.6 3.6-4.9 3.7-.6.1-2.9-2.6-2.8-3.1.2-.9 4.1-4.2 4.8-4.3"/></g><g fill="#dba780"><path d="m54.1 16.6c1-.1 3.1 3.1 2.8 3.6-.1.3-4 4.4-4.3 4.5-.6.1-3-2.8-2.9-3.4.2-.8 3.7-4.7 4.4-4.7"/><path d="m58.9 10.6c1-.1 1.7 2.4 1.5 2.8-.1.3-2.1 4.5-2.4 4.5-.6.1-2.9-2.5-2.8-3 .1-.8 3-4.2 3.7-4.3"/></g><g fill="#cf9d78"><path d="m30.6 50.2c.1 1-3.6 4.4-4.5 4.4-.7 0-3.8-2.4-3.9-3.3-.1-.6 3.3-4.1 4.4-4 .8 0 3.9 2.2 4 2.9"/><path d="m9.4 51c-1-.1-2 2.7-1.8 3.2.1.3 1.9 2.2 2.2 2.2.6.1 3.1-1.4 3-2-.1-.9-2.6-3.4-3.4-3.4"/><path d="m13.3 45.9c-1.3-.1-3.3 3.2-3 3.8.2.4 3.5 3.8 3.9 3.9.9.2 3.7-2.1 3.6-3.2-.1-1.1-3.5-4.4-4.5-4.5"/></g><g fill="#e8b188"><path d="m25.3 43.6c1.5 0 3.9-3.8 3.6-4.5-.2-.5-3.8-4.2-4.3-4.3-1-.2-4.4 2.5-4.3 3.8 0 1.3 3.8 5 5 5"/><path d="m30.3 37.1c1.2-.2 3.9-3.8 3.7-4.4-.1-.4-2.6-3-3-3-.8 0-4.1 2.8-4.2 3.9-.1 1.1 2.5 3.6 3.5 3.5"/></g><g fill="#dba780"><path d="m36 31.4c1.4-.3 4.4-4.4 4.3-5-.1-.4-2.6-3-3-3-.9.1-4.6 3.3-4.8 4.5-.2 1.2 2.4 3.7 3.5 3.5"/><path d="m42.6 17.4c-1.4.3-4.4 4.4-4.3 5 .1.4 2.8 3.3 3.3 3.3.9 0 4.7-3.2 4.8-4.5.1-1.2-2.8-4-3.8-3.8"/></g><g fill="#e8b188"><path d="m48.9 11.1c-1.5.2-5.2 4-5 4.6.1.4 3.7 4.2 4.2 4.2.9 0 4.5-3.9 4.5-5.1.1-1.2-2.6-3.8-3.7-3.7"/><path d="m54.8 6.4c-1.2.3-4.4 3.5-4.3 4 .1.3 2.6 3 3 3 .7-.1 3.8-3.4 4-4.4.1-.9-1.9-2.8-2.7-2.6"/></g><path d="m18.5 39.9c-1.5-.1-4.1 3.2-4 4 .1.9 4.5 5.5 5.5 5.5 1 0 4-2.8 3.9-4.2-.2-1.4-4.2-5.3-5.4-5.3" fill="#dba780"/><g opacity=".2" fill="#3e4347"><path d="m42.6 3.5c-.2.1-.4.3-.6.4-.2.2 1.6 1.2 2.3 1.2 1.2.1 4.8-1.5 4.5-1.8-.2-.1-.4-.2-.8-.3-1.1.5-2.9 1.2-3.7 1.2-.4 0-1.2-.4-1.7-.7"/><path d="m37.9 9.6c-.6.2-2.4-.8-3.2-1.4-.2.2-.3.4-.3.5-.1.4 2.7 2.2 3.5 1.9.8-.3 4.5-4 4.4-4.4 0-.1-.1-.2-.4-.4-.9 1.2-3.3 3.6-4 3.8"/><path d="m32 16.1c-.6 0-1.7-.5-2.1-1.1-.1.3-.2.6-.1.7.2.6 1.5 1.3 2.2 1.3.6 0 4.2-4.3 4.2-4.8 0-.1-.1-.2-.3-.4-.9 1.3-3.4 4.3-3.9 4.3"/><path d="m28.3 22c-.5.1-1.4-.5-1.8-1.1-.1.2-.1.3-.1.3-.1.7 1.3 1.7 2 1.6.4 0 3.2-3.3 3.3-3.9 0-.1-.1-.3-.2-.5-.9 1.1-2.9 3.5-3.2 3.6"/><path d="m20.6 25.3c-.3.5 1.1 2.3 1.9 2.3.6 0 3.5-2.4 3.8-2.7.1-.2.1-.6-.1-.9-.3.4-3.2 2.7-3.7 2.7-.5 0-1.3-.8-1.7-1.5-.2 0-.2.1-.2.1"/><path d="m14.3 30.1c-.6-.1-1.4-1.2-1.7-2.1-.4.6.9 2.9 1.8 3 .7.1 4.7-2.1 5-2.5.2-.3.2-.7.1-1.1 0 .1-.1.2-.1.2-.4.4-4.4 2.5-5.1 2.5"/><path d="m8.5 36c.7-.1 3.9-3.4 4-3.9.1-.2 0-.5-.1-.8-.4.7-3.3 3.7-3.9 3.8-.7.1-1.9-1.1-2.4-2-.1.1-.1.1-.1.2-.3.6 1.5 2.8 2.5 2.7"/><path d="m5.3 43c.6 0 1.8-4 1.9-4.4 0-.1 0-.4-.1-.6-.3 1-1.3 4.2-1.8 4.2-.7-.1-1.6-1-1.9-1.6 0 .2-.1.4-.1.5 0 .4 1.2 1.8 2 1.9"/><path d="m4.8 44.6c-.1 1.1-.3 3.6-.7 3.6-.4 0-.9-2.6-1.1-4.4.1 1.6.6 5.3 1.1 5.3.5 0 .7-3.7.8-4 .1-.1 0-.3-.1-.5"/><path d="m8 49.1c-.3.8-1.3 2.9-2 2.2-.3-.3-.5-.9-.6-1.6 0 1 .2 2 .6 2.5.8.8 2-2.2 2-2.5.2-.1.2-.3 0-.6"/><path d="m8.9 47c-.3-.1-2-2.4-2.4-3.1-.1.4-.1.6 0 .7.1.3 2.2 3.2 2.5 3.3.6.1 2.7-3.3 2.6-3.8 0-.1-.1-.3-.2-.4-.4 1-2 3.4-2.5 3.3"/><path d="m18.3 35.5c-.4.1-2.1-1.9-2.8-3.1-.1.1-.2.2-.2.2-.1.6 2.5 3.9 3 3.8.8-.2 4.8-2.7 4.9-3.4 0-.2-.1-.4-.2-.6-.6.9-4 2.9-4.7 3.1"/><path d="m22.8 29c-.1.6 1.8 3.3 2.3 3.2.8-.2 4.6-3.1 4.6-3.9 0-.2-.1-.4-.2-.6-.7 1-3.7 3.4-4.5 3.6-.4.1-1.6-1.4-2.1-2.4 0 0-.1.1-.1.1"/><path d="m31.4 26.1c-.4.1-1.6-1.3-2.1-2.2-.1.1-.1.2-.2.3-.1.6 1.8 3 2.3 2.9.3-.1 1.1-.6 1.9-1.4.4-.5.9-1 1.5-1.5.6-.7 1.1-1.3 1.1-1.5 0-.2-.1-.4-.2-.6-.7 1.1-3.5 3.8-4.3 4"/><path d="m36.8 19.9c-.4.1-2.2-1.3-2.8-2.2-.1.2-.2.3-.2.4-.1.6 2.6 2.9 3.1 2.8.8-.2 4.2-4 4.3-4.8 0-.1-.1-.3-.2-.5-.7 1.2-3.4 4.2-4.2 4.3"/><path d="m42.7 13.4c-.4.1-2.4-1.4-3.1-2.3-.2.2-.3.3-.3.3-.1.6 2.8 3 3.4 2.9.8-.2 4.7-3.6 4.7-4.4 0-.2-.1-.3-.2-.5-.7 1.2-3.7 3.8-4.5 4"/><path d="m49.1 8c-.4.1-2-1.2-2.7-2.1-.2.1-.3.2-.3.3-.1.6 2.5 2.9 3 2.8.8-.2 4.3-3 4.4-3.7 0-.2-.1-.4-.2-.5-.8 1-3.5 3.1-4.2 3.2"/><path d="m12.6 41c-.8-.1-2.5-2.4-3.1-3.4-.1.2-.1.3-.1.4 0 .7 2.4 3.8 3.3 3.9.6.1 4.1-3.3 4.1-4.4 0-.1-.1-.3-.1-.5-.7 1.4-3.5 4.1-4.1 4"/><path d="m59.1 19.2c0 .2-.1.5-.1.6 0 .6 1.1 2.4 1.2 2.3.9-.9 1.2-2.9 1.1-4.6-.1 1.4-.4 2.9-1.1 3.6-.1.2-.9-1.1-1.1-1.9"/><path d="m55.4 28.7c-.3.1-1.5-1.6-1.8-2.7 0 .1-.1.1-.1.1-.3.8 1.5 3.6 1.9 3.5.7-.2 3.4-3.3 3.6-4.8 0-.2 0-.5 0-.8-.4 1.6-2.9 4.5-3.6 4.7"/><path d="m53.6 30.9c-.6.6-4.6 2.6-5.1 2.4-.5-.1-1-.9-1.2-1.5-.1.1-.1.2-.1.3 0 .7.7 2 1.4 2.2.6.2 4.8-1.9 5.2-2.5 0-.2-.1-.5-.2-.9"/><path d="m46.6 34.3c-.5.6-3.5 2.4-3.8 2.5-.5.1-1.2-.6-1.5-1.3-.1.1-.1.2-.1.2-.1.7 1 2.1 1.6 2 .4-.1 3.7-2 3.9-2.6.1-.1.1-.4-.1-.8"/><path d="m38.7 43.5c.4-.3 2.6-4 2.5-4.4 0-.1-.1-.3-.2-.4-.5 1.1-2 3.6-2.3 3.9-.4.3-1.6-.6-2.1-1.3-.1.2-.1.3-.1.4-.1.7 1.8 2.1 2.2 1.8"/><path d="m33.2 49.1c-.1.2-.1.4-.1.5.1.9 2.6 2.2 3.1 1.7.5-.4 2.2-5.3 2.1-5.7 0-.1-.1-.2-.1-.2-.4 1.5-1.6 4.7-2 5.1-.5.4-2.4-.5-3-1.4"/><path d="m35 53.8c0-.1-.1-.3-.2-.5-.7 1-3.5 3.6-4.1 3.8-.5.2-2-.9-2.5-1.9-.1.1-.1.2-.1.3-.1 1 2 2.8 2.7 2.5.6-.3 4.3-3.7 4.2-4.2"/><path d="m28 58.5c-1 .5-4.4 1.3-5 1.3-.4 0-1.3-.7-1.8-1.4-.1.1-.2.2-.2.3.1.8 1.5 2 2 2 .8 0 5.6-1.2 5.4-1.6 0-.2-.2-.4-.4-.6"/><path d="m20.4 60c-1 0-3.2-.3-4.6-.6-.6.1-1 .2-.9.4.1.7 6.2 1.4 6 1 0-.2-.2-.5-.5-.8"/><path d="m17.2 57.8c0-.2-.1-.4-.4-.6-.9.5-3.9.6-5-.1-.2.3-.3.5-.1.8 1.2 1 5.5.6 5.5-.1"/><path d="m16.1 55c.1.3 3 2.3 3.3 2.5.5.2 4.6-1 4.5-1.9 0-.1-.1-.3-.3-.5-.8.8-3.9 1.7-4.3 1.5-.2-.1-2.2-1.4-2.9-2.1-.2.2-.3.4-.3.5"/><path d="m31.4 47.8c-.5.1-2.9-1.7-3.6-2.6-.1.2-.2.4-.2.5-.1.5 3.2 3.1 3.8 3 .3-.1 3-4.8 3.2-5.1 0-.1-.1-.3-.2-.5-.6 1.1-2.7 4.6-3 4.7"/><path d="m35 40.3c-.5.1-2.3-1.1-3-1.9-.1.2-.2.3-.2.5-.1.5 2.5 2.5 3.2 2.3.3-.1 3-4.2 3.1-4.5.1-.1 0-.4-.2-.7-.5 1-2.6 4.2-2.9 4.3"/><path d="m39.9 34c-.5.1-2.1-1.1-2.6-1.8-.1.2-.2.3-.2.4-.1.5 2.2 2.4 2.9 2.3.3-.1 4.1-3.3 4.2-3.6.1-.1 0-.4-.2-.7-.8.8-3.8 3.3-4.1 3.4"/><path d="m43.4 26.8c-.1.1-.2.3-.2.4-.1.5 2.2 3.2 2.8 3.1.3-.1 4.8-3.4 4.9-3.7.1-.1 0-.4-.2-.7-.9.8-4.4 3.4-4.7 3.5-.5.1-2-1.6-2.6-2.6"/><path d="m52.7 23.7c-.5.1-2.2-1.8-2.7-2.8-.1.2-.2.3-.2.4-.1.5 2.3 3.5 2.9 3.4.3-.1 4.2-4.2 4.3-4.5.1-.1 0-.4-.2-.7-.8.9-3.8 4.2-4.1 4.2"/><path d="m58 17.1c-.5.1-2.1-1.6-2.6-2.5-.1.2-.2.3-.2.4-.1.5 2.2 3.2 2.8 3 .3-.1 2.3-4.2 2.4-4.5.1-.1 0-.5 0-.8-.4.6-2.1 4.3-2.4 4.4"/><path d="m30.6 50.2c0-.1-.1-.2-.2-.4-.7 1.3-3.6 3.9-4.4 3.9-.6 0-3-1.8-3.7-2.8-.1.2-.2.4-.2.5.2.9 3.3 3.2 3.9 3.3.9-.1 4.6-3.5 4.6-4.5"/><path d="m12.6 53.9c-.6.7-2.3 1.7-2.8 1.6-.3-.1-1.7-1.5-2.1-2.1-.1.3-.1.6-.1.7.1.3 1.9 2.2 2.2 2.2.6.1 3.1-1.4 3-2 0-.1 0-.2-.2-.4"/><path d="m17.8 50.4c0-.1-.1-.3-.1-.4-.5 1.2-2.8 2.9-3.5 2.7-.4-.1-3.1-2.8-3.8-3.7-.1.3-.1.5-.1.7.2.4 3.5 3.8 3.9 3.9.9.2 3.7-2 3.6-3.2"/><path d="m25.2 42.7c-1 0-4.2-3-4.9-4.6-.1.2-.1.3-.1.5.1 1.3 3.9 5 5 5 1.5 0 3.9-3.8 3.6-4.5 0 0-.1-.1-.1-.2-.5 1.4-2.3 3.9-3.5 3.8"/><path d="m30.2 36.2c-.8.1-2.8-1.7-3.3-2.9-.1.1-.1.2-.1.3-.1 1.1 2.5 3.6 3.5 3.5 1.2-.2 3.9-3.8 3.7-4.4 0-.1-.1-.2-.2-.3-.6 1.2-2.6 3.6-3.6 3.8"/><path d="m35.9 30.5c-.9.2-2.9-1.5-3.4-2.8 0 .1-.1.2-.1.3-.2 1.2 2.4 3.7 3.5 3.5 1.4-.3 4.4-4.4 4.3-5 0-.1-.1-.2-.2-.4-.7 1.3-2.9 4.1-4.1 4.4"/><path d="m46.3 20.6c-.6 1.4-3.9 4.1-4.7 4.1-.4 0-2.4-2.1-3.1-3-.1.3-.2.5-.2.6.1.4 2.8 3.3 3.3 3.3.9 0 4.7-3.2 4.8-4.5 0 0 0-.2-.1-.5"/><path d="m48.1 19.1c-.4 0-3.2-2.8-4-3.9-.2.3-.3.5-.2.6.1.4 3.7 4.2 4.2 4.2.9 0 4.5-3.9 4.5-5.1 0-.2 0-.4-.1-.6-.5 1.5-3.5 4.8-4.4 4.8"/><path d="m53.4 12.5c-.3 0-2-1.7-2.7-2.6-.2.3-.3.4-.3.5.1.3 2.6 3 3 3 .7-.1 3.8-3.4 4-4.4 0-.2 0-.4-.1-.6-.6 1.3-3.2 4.1-3.9 4.1"/><path d="m20 48.5c-.9 0-4.5-3.7-5.3-5.1-.1.2-.1.4-.1.5.1.9 4.5 5.5 5.5 5.5 1 0 4-2.8 3.9-4.2 0-.1-.1-.2-.1-.4-.6 1.5-3.1 3.7-3.9 3.7"/><path d="m33.3 25.6c.5-.5 1-1 1.5-1.5-.5.5-1 1-1.5 1.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f95d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f95d.svg
new file mode 100644
index 0000000..d60d50f
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f95d.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.7 62c-47.5 0-47.5-60 0-60v60" fill="#9e7658"/><ellipse cx="37.7" cy="32" rx="24.3" ry="30" fill="#89664c"/><ellipse cx="37.7" cy="32" rx="22.9" ry="28.3" fill="#b2d921"/><ellipse cx="37.7" cy="32" rx="20" ry="24.7" fill="#c7e755"/><path d="m53.4 37.3c-.3 1.4-6.2 0-6.7 1.2-.6 1.3 3.3 6.8 2.5 7.8-.8 1-5.3-3.8-6.3-3.1-1 .7.1 7.9-1 8.3-1.1.4-3-6.6-4.2-6.6-1.1 0-3.1 6.9-4.2 6.5-1.2-.4 0-7.6-1-8.3-1-.7-5.5 4.1-6.3 3.1-.8-1 3.1-6.5 2.5-7.8-.6-1.2-6.4.1-6.7-1.2-.3-1.4 5.3-3.7 5.3-5.2 0-1.4-5.6-3.8-5.3-5.2.3-1.4 6.2 0 6.7-1.2.6-1.3-3.3-6.8-2.5-7.8.8-1 5.3 3.8 6.3 3.1 1-.7-.1-7.9 1-8.3 1.1-.4 3 6.6 4.2 6.6 1.1 0 3.1-6.9 4.2-6.6 1.2.4 0 7.6 1 8.3 1 .7 5.5-4.1 6.3-3.1.8 1-3.1 6.5-2.5 7.8.6 1.2 6.4-.1 6.7 1.2.3 1.4-5.3 3.7-5.3 5.2 0 1.5 5.6 3.9 5.3 5.3" fill="#b2d921"/><path fill="#ecffad" d="m51 32l-8.1 1.7 6.3 6.5-7.7-3.5 2.8 9.5-5.2-7.7-1.4 9.9-1.5-9.9-5.2 7.7 2.8-9.5-7.7 3.5 6.3-6.5-8.1-1.7 8.1-1.7-6.3-6.5 7.7 3.5-2.8-9.5 5.2 7.7 1.5-9.9 1.4 9.9 5.2-7.7-2.8 9.5 7.7-3.5-6.3 6.5z"/><g fill="#3e4347"><path d="m34.9 17.4l-.4 2.4 1.3 1.9.4-2.4z"/><path d="m32.4 14l-.5 2.4 1.3 1.9.5-2.4z"/><path d="m41.4 16.9l-1.7 1.3-.2 2.5 1.7-1.4z"/><path d="m40.4 46.6l.5-2.4-1.4-1.9-.4 2.4z"/><path d="m43 50l.4-2.4-1.3-1.9-.5 2.4z"/><path d="m33.9 47.1l1.7-1.3.2-2.5-1.7 1.4z"/><path d="m49.5 28.6l-1.9-.5-1.6 1.6 2 .5z"/><path d="m52.3 25.5l-2-.6-1.5 1.6 1.9.6z"/><path d="m49.9 36.6l-1-2.1-2-.2 1 2.1z"/><path d="m25.8 35.4l2 .5 1.5-1.6-2-.5z"/><path d="m23.1 38.5l1.9.6 1.5-1.6-1.9-.6z"/><path d="m25.4 27.4l1 2.1 2 .2-1-2.1z"/><path d="m47.2 22.6l-2 .6-.8 2.2 1.9-.5z"/><path d="m48.5 18.3l-1.9.6-.8 2.3 1.9-.6z"/><path d="m26.8 45.7l1.9-.6.9-2.3-2 .6z"/><path d="m30 20.3l.5 2.4 1.8 1-.4-2.4z"/><path d="m26.6 18.6l.4 2.4 1.9 1-.5-2.4z"/><path d="m48.7 45.4l-.4-2.4-1.8-1 .4 2.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f95e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f95e.svg
new file mode 100644
index 0000000..603a347
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f95e.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m2 45.6h60v2.7h-60z"/><ellipse cx="32" cy="48.4" rx="30" ry="13.6"/></g><ellipse cx="32" cy="45.6" rx="30" ry="13.6" fill="#e8e8e8"/><ellipse cx="31.1" cy="42.9" rx="25.3" ry="12.3" fill="#fed0ac"/><path d="m55.4 41.5c0 6-10.9 10.9-24.4 10.9-13.5 0-24.4-4.9-24.4-10.9 0-6 10.9-10.9 24.4-10.9 13.5 0 24.4 4.9 24.4 10.9" fill="#d3976e"/><path d="m59.2 37.5c0 6-10.9 12.3-24.4 12.3-17.8 0-24.4-6.2-24.4-12.3 0-6 10.9-9.5 24.4-9.5 13.5-.1 24.4 3.4 24.4 9.5" opacity=".5" fill="#594640"/><ellipse cx="35.7" cy="36.1" rx="25.3" ry="12.3" fill="#fed0ac"/><path d="m60.1 34.7c0 6-10.9 10.9-24.4 10.9-13.5 0-24.4-4.9-24.4-10.9 0-6 10.9-10.9 24.4-10.9 13.5 0 24.4 4.9 24.4 10.9" fill="#d3976e"/><path d="m55.4 30.6c0 6-10.1 12.3-22.5 12.3-16.4 0-26.2-6.2-26.2-12.3s13.8-9.5 26.2-9.5 22.5 3.5 22.5 9.5" opacity=".5" fill="#594640"/><ellipse cx="30.1" cy="29.3" rx="25.3" ry="12.3" fill="#fed0ac"/><path d="m54.5 27.9c0 6-10.9 10.9-24.4 10.9-13.5 0-24.4-4.9-24.4-10.9s11-10.9 24.4-10.9c13.5 0 24.4 4.9 24.4 10.9" fill="#d3976e"/><path d="m54 22.5c0 6-10.3 13.6-23 13.6-16.8 0-25.8-7.6-25.8-13.6s13.2-9.5 25.8-9.5 23 3.4 23 9.5" opacity=".5" fill="#594640"/><ellipse cx="29.2" cy="21.1" rx="25.3" ry="12.3" fill="#fed0ac"/><path d="m53.6 19.7c0 6-10.9 10.9-24.4 10.9-13.5 0-24.4-4.9-24.4-10.9 0-6 10.9-10.9 24.4-10.9 13.4 0 24.4 4.9 24.4 10.9" fill="#d3976e"/><path d="m56.4 17.2c0 5.3-10.1 10.7-22.5 10.7-16.4 0-26.2-5.5-26.2-10.7 0-5.3 13.8-8.4 26.2-8.4s22.5 3.1 22.5 8.4" opacity=".5" fill="#594640"/><ellipse cx="32.9" cy="14.3" rx="25.3" ry="12.3" fill="#fed0ac"/><path d="M57.3,12.9c0,6-10.9,10.9-24.4,10.9c-13.5,0-24.4-4.9-24.4-10.9S19.5,2,32.9,2C46.4,2,57.3,6.9,57.3,12.9z" fill="#d3976e"/><g opacity=".8"><path d="m35.5 2.5c-23.2 0-32 11.9-23.5 11.9 3.8 0-3.8 6.8.1 9.2 1.1.7 2.8-1.2 4.1-1.2 4.1 0-4.2 22.9 2.1 22.9 5.4 0-1-15.4 2.6-22.3.5-1 3.5-3.8 3.9-.4.8 6.6 5.2 5.5 9.2 1.4 5.6-5.7 4.5 1.5 8.5 1.5 2.6 0 3.4-3.3 5.7-3.3 4.9 0-3.3 16.9 2.4 16.9 4.7 0-.7-18.8 3.6-18.8 2.2 0-1.2-4 1.7-4 5.4.1.5-13.8-20.4-13.8" fill="#c76a00"/></g><path d="m11.8 11.7c-.9.5-.8 1.4 1.9 1.1 2.7-.4-.5 4.6-.6 7.7-.1 3.1 11.2-6.3 12.5-.6 1.3 5.7 2.8 8.4 7.8 2.9 3.9-4.3 5.3-1.6 8 .6s6.6-5.7 10.5-6.6c3.8-1 4.1-3.7 2.9-5.4-1.2-1.7-2.2-1.2-1.2 1.4.9 2.6-4.1 1.5-6.6 4.3-2.5 2.7-4.2 3.4-6.4 1.4-2.2-2-6.3 0-8.9 3-4.9 5.6-4-5.8-8-5.8-4 0-8.6 3.9-7.9 1.8.5-2 2.5-9.4-4-5.8" opacity=".5" fill="#fff6d1"/><path d="m19.3 7.4c0 2.1 8.9-1.5 12.7-1.5 12.6 0 19.2 6.8 19.2 3.2 0-.7-8.2-4.9-16.3-5-7.9-.1-15.6 1.8-15.6 3.3" opacity=".7" fill="#a13e14"/><g fill="#fff6d1"><path d="m51.5 25.9c0 0 1.4 12.3-1 12.3-1.3 0 1-12.3 1-12.3" opacity=".5"/><path d="m18.8 30.5c0 0 2.3 14.1-.1 14.1-1.9-.1.1-14.1.1-14.1" opacity=".5"/></g><path fill="#fff" d="m25.9 6v2.9l4.5 4.7 10.5-4.4v-3.4l-4.2-1.8z"/><g fill="#dbb471"><path opacity=".5" d="m30.4 9.3v4.3l10.5-4.4v-3.4z"/><path opacity=".25" d="m30.4 9.3l-4.5-3.3v2.9l4.5 4.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f980.svg b/build/js/jsxc/lib/emojione/assets/svg/1f980.svg
index 549fc7e..1f7936f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f980.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f980.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d64553" d="m27.609 5.411c-.641.303-3.121 3.41-4.65 3.41s.369-2.705 2.41-4.762c2.039-2.059 2.798-2.908-1.327-.971-2.34 1.1-3.785 2.209-4.709 3.297-.201-.693-.377-.99-1.318.076-1.857 2.105-4.045 5.588-3.125 9.387.127.521.295.955.49 1.32-.539 3.078.691 7.219 5.621 11.289h1.752c0 0-4.99-4.148-4.146-9.572.004 0 .01 0 .012-.002 2.152-.355 1.596-.883 4.334-4.373 1.193-1.523 1.291-2.623.859-3.469 3.961-3.226 4.318-5.876 3.797-5.63"/><path fill="#ed4c5c" d="m14.89 15.848c-.92-3.799 1.268-7.281 3.125-9.387 1.857-2.104.734 1.088 2.693 2.189 1.957 1.1 4.982 2.367 2.244 5.859-2.738 3.49-2.182 4.02-4.334 4.373-1 .169-3.01-.09-3.728-3.034"/><path fill="#d64553" d="m36.39 5.411c.641.303 3.121 3.41 4.65 3.41s-.369-2.705-2.41-4.762c-2.039-2.059-2.799-2.908 1.326-.971 2.34 1.1 3.785 2.209 4.709 3.297.201-.693.377-.99 1.318.076 1.857 2.105 4.045 5.588 3.125 9.387-.127.521-.295.955-.49 1.32.539 3.078-.691 7.219-5.621 11.289h-1.752c0 0 4.99-4.148 4.146-9.572-.004 0-.01 0-.012-.002-2.152-.355-1.596-.883-4.334-4.373-1.193-1.523-1.291-2.623-.859-3.469-3.96-3.226-4.318-5.876-3.796-5.63"/><path fill="#ed4c5c" d="m49.11 15.848c.92-3.799-1.268-7.281-3.125-9.387-1.857-2.104-.734 1.088-2.693 2.189-1.957 1.1-4.982 2.367-2.244 5.859 2.738 3.49 2.182 4.02 4.334 4.373 1 .169 3.01-.09 3.728-3.034"/><g fill="#d64553"><path d="m24.489 23.08c-.582-1.943-1.569-1.041-1.271-.154.302.885 1.887 4.477.541 7.469l.567.422c.001-.001 1.583-3 .163-7.737"/><path d="m4.832 35.435c.142.084.291.135.437.143.469.02 1.822-1.332 3.49-2.428.507.154 1.95-.151 3.657-.334 1.024.758 4.898 1.786 7.466 3.866 0 0 1.398-.332.725-2.328 0 0-5.184-4.918-6.785-4.446-.316.092-.575.23-.803.385-1.712-.264-3.739-.428-4.28.143-.259.273-.426.561-.527.84-1.473.531-3.804 1.488-3.999 2.295-.074.309-.08.586-.039.834-.75.895-1.782 2.625-2.174 5.647 0 0 .587-2.313 2.832-4.617"/><path d="m16.608 52.34c.436-.305 1.104-1.639 2.031-3.105 1.227-.336 4.438-2.756 7.642-3.488 0 0 .619-1.313-1.339-2.029 0 0-7.02 1.027-7.666 2.588-.126.309-.182.6-.205.877-1.273 1.189-2.668 2.689-2.566 3.475.049.377.165.688.318.943-.512 1.498-1.233 3.939-.735 4.6.19.25.402.43.619.551.223 1.154.91 3.053 2.99 5.252 0 0-1.412-1.912-1.784-5.129.152-.059.286-.145.382-.258.307-.357.114-2.273.313-4.277"/><path d="m9.433 54.06c.152-.059.285-.145.381-.256.309-.357.114-2.273.315-4.277.436-.307 1.103-1.641 2.03-3.105 1.225-.336 4.437-2.756 7.643-3.486 0 0 .618-1.314-1.34-2.031 0 0-7.03 1.027-7.666 2.588-.126.309-.181.6-.205.877-1.272 1.189-2.668 2.689-2.566 3.475.049.375.165.688.318.943-.513 1.496-1.233 3.939-.735 4.598.19.252.402.432.619.553.222 1.152.91 3.051 2.989 5.252 0-.002-1.412-1.915-1.783-5.131"/><path d="m11.646 39.16c1.218.365 5.205.014 8.311 1.098 0 0 1.208-.787-.087-2.439 0 0-6.513-2.867-7.865-1.877-.267.193-.465.412-.628.635-1.7.336-3.665.869-3.984 1.592-.153.346-.217.674-.219.973-1.211 1-3.091 2.695-3.01 3.521.032.314.12.58.241.801-.408 1.098-.807 3.08-.176 6.06 0 0-.212-2.377 1.138-5.314.161.031.319.029.458-.016.447-.139 1.275-1.873 2.484-3.471.527-.029 1.786-.808 3.335-1.562"/><path d="m39.509 23.08c.582-1.943 1.571-1.041 1.272-.154-.301.885-1.888 4.477-.542 7.469l-.568.422c0-.001-1.58-3-.162-7.737"/><path d="m44.12 36.681c2.568-2.08 6.441-3.107 7.467-3.866 1.707.184 3.15.489 3.656.334 1.668 1.096 3.02 2.447 3.492 2.428.145-.008.295-.059.436-.143 2.244 2.305 2.832 4.618 2.832 4.618-.393-3.02-1.424-4.752-2.174-5.648.041-.248.037-.525-.037-.834-.195-.807-2.527-1.764-4-2.295-.102-.279-.27-.566-.527-.84-.541-.57-2.568-.406-4.281-.143-.227-.154-.486-.293-.801-.385-1.604-.473-6.787 4.446-6.787 4.446-.672 1.996.724 2.328.724 2.328"/><path d="m49.49 50.655c.104-.785-1.293-2.285-2.564-3.475-.023-.277-.08-.568-.205-.877-.643-1.561-7.669-2.588-7.669-2.588-1.957.717-1.338 2.029-1.338 2.029 3.204.732 6.417 3.152 7.642 3.488.93 1.467 1.598 2.801 2.031 3.105.201 2 .006 3.92.314 4.275.096.113.229.199.383.258-.373 3.217-1.785 5.129-1.785 5.129 2.08-2.199 2.768-4.098 2.99-5.252.217-.121.428-.301.619-.551.498-.66-.223-3.102-.736-4.6.154-.253.269-.564.318-.941"/><path d="m55.975 47.841c.102-.785-1.293-2.285-2.566-3.475-.023-.277-.08-.568-.205-.877-.641-1.561-7.666-2.588-7.666-2.588-1.959.717-1.34 2.031-1.34 2.031 3.205.73 6.418 3.15 7.643 3.486.928 1.465 1.594 2.799 2.031 3.105.199 2 .006 3.92.314 4.277.096.111.229.197.381.256-.371 3.217-1.783 5.129-1.783 5.129 2.078-2.201 2.768-4.1 2.99-5.252.217-.121.428-.301.619-.553.498-.658-.225-3.102-.736-4.598.152-.254.269-.566.318-.941"/><path d="m59.834 42.663c.082-.826-1.797-2.521-3.01-3.521-.002-.299-.064-.627-.219-.973-.32-.723-2.285-1.256-3.984-1.592-.164-.223-.361-.441-.627-.635-1.354-.99-7.865 1.877-7.865 1.877-1.297 1.652-.088 2.439-.088 2.439 3.105-1.084 7.094-.732 8.311-1.098 1.549.754 2.809 1.533 3.336 1.561 1.209 1.598 2.035 3.332 2.482 3.471.141.045.299.047.459.016 1.35 2.938 1.137 5.314 1.137 5.314.631-2.979.232-4.961-.174-6.06.121-.22.209-.485.24-.8"/></g><g fill="#ed4c5c"><path d="m37.942 26.571c-.82 0-1.131-1.459-1.443-1.459-.273 0-.088.762-.641 1.156-.248.178-.676.074-.883-.156-.676-.744-.377-1.789-.727-1.789-.332 0-.016 1.023-.709 1.635-.211.184-.629.17-.834-.031-.656-.635-.379-1.604-.707-1.604s-.051.969-.707 1.604c-.205.201-.623.215-.832.031-.695-.611-.377-1.635-.711-1.635-.352 0-.049 1.045-.725 1.789-.209.23-.639.334-.883.156-.553-.395-.369-1.156-.643-1.156-.311 0-.622 1.459-1.442 1.459-6.05 0-9.05 5.373-9.05 9.938 0 5.859 6.715 17.814 14.999 17.814 8.285 0 15-11.955 15-17.814 0-4.565-3-9.938-9.06-9.938"/><ellipse cx="40.42" cy="22.258" rx="3.915" ry="3.826"/></g><ellipse fill="#fcfcfa" cx="40.42" cy="22.258" rx="3.394" ry="3.434"/><path fill="#3e4347" d="m42.748 22.258c0 1.305-1.043 2.363-2.332 2.363-1.288 0-2.333-1.059-2.333-2.363 0-1.301 1.045-2.357 2.333-2.357 1.289 0 2.332 1.057 2.332 2.357"/><ellipse fill="#ed4c5c" cx="23.583" cy="22.258" rx="3.914" ry="3.826"/><ellipse fill="#fcfcfa" cx="23.582" cy="22.258" rx="3.393" ry="3.434"/><path fill="#3e4347" d="m25.914 22.258c0 1.305-1.045 2.363-2.333 2.363-1.286 0-2.331-1.059-2.331-2.363 0-1.301 1.045-2.357 2.331-2.357 1.288 0 2.333 1.057 2.333 2.357"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m27.6 5.4c-.6.3-3.1 3.4-4.6 3.4s.4-2.7 2.4-4.8c2-2.1 2.8-2.9-1.3-1-2.3 1.1-3.8 2.2-4.7 3.3-.2-.7-.4-1-1.3.1-1.9 2.1-4 5.6-3.1 9.4.1.5.3 1 .5 1.3-.5 3.1.7 7.2 5.6 11.3h1.8c0 0-5-4.1-4.1-9.6 2.2-.4 1.6-.9 4.3-4.4 1.2-1.5 1.3-2.6.9-3.5 3.8-3.1 4.1-5.7 3.6-5.5" fill="#d64553"/><path d="m14.9 15.8c-.9-3.8 1.3-7.2 3.1-9.3 1.9-2.1.7 1.1 2.7 2.2 2 1.1 5 2.4 2.2 5.9-2.7 3.5-2.2 4-4.3 4.4-1 .1-3-.2-3.7-3.2" fill="#ed4c5c"/><path d="m36.4 5.4c.6.3 3.1 3.4 4.6 3.4s-.4-2.7-2.4-4.8c-2-2.1-2.8-2.9 1.3-1 2.3 1.1 3.8 2.2 4.7 3.3.2-.7.4-1 1.3.1 1.9 2.1 4 5.6 3.1 9.4-.1.5-.3 1-.5 1.3.5 3.1-.7 7.2-5.6 11.3h-1.8c0 0 5-4.1 4.1-9.6-2.2-.4-1.6-.9-4.3-4.4-1.2-1.5-1.3-2.6-.9-3.5-3.8-3.1-4.1-5.7-3.6-5.5" fill="#d64553"/><path d="m49.1 15.8c.9-3.8-1.3-7.2-3.1-9.3-1.9-2.1-.7 1.1-2.7 2.2-2 1.1-5 2.4-2.2 5.9 2.7 3.5 2.2 4 4.3 4.4 1 .1 3-.2 3.7-3.2" fill="#ed4c5c"/><g fill="#d64553"><path d="m24.5 23.1c-.6-1.9-1.6-1-1.3-.2.3.9 1.9 4.5.5 7.5l.6.4c0 0 1.6-3 .2-7.7"/><path d="m4.8 35.4c.1.1.3.1.4.1.5 0 1.8-1.3 3.5-2.4.5.2 1.9-.2 3.7-.3 1 .8 4.9 1.8 7.5 3.9 0 0 1.4-.3.7-2.3 0 0-5.2-4.9-6.8-4.4-.3.1-.6.2-.8.4-1.7-.3-3.7-.4-4.3.1-.3.3-.4.6-.5.8-1.5.5-3.8 1.5-4 2.3-.1.3-.1.6 0 .8-.8.9-1.8 2.6-2.2 5.7 0 0 .6-2.4 2.8-4.7"/><path d="m16.6 52.3c.4-.3 1.1-1.6 2-3.1 1.2-.3 4.4-2.8 7.6-3.5 0 0 .6-1.3-1.3-2 0 0-7 1-7.7 2.6-.1.3-.2.6-.2.9-1.3 1.2-2.7 2.7-2.6 3.5 0 .4.2.7.3.9-.5 1.5-1.2 3.9-.7 4.6.2.2.4.4.6.6.2 1.2.9 3.1 3 5.3 0 0-1.4-1.9-1.8-5.1.2-.1.3-.1.4-.3.4-.4.2-2.4.4-4.4"/><path d="m9.4 54.1c.2-.1.3-.1.4-.3.3-.4.1-2.3.3-4.3.4-.3 1.1-1.6 2-3.1 1.2-.3 4.4-2.8 7.6-3.5 0 0 .6-1.3-1.3-2 0 0-7 1-7.7 2.6-.1.3-.2.6-.2.9-1.3 1.2-2.7 2.7-2.6 3.5 0 .4.2.7.3.9-.5 1.5-1.2 3.9-.7 4.6.2.3.4.4.6.6.2 1.2.9 3.1 3 5.3.1-.1-1.3-2-1.7-5.2"/><path d="m11.6 39.2c1.2.4 5.2 0 8.3 1.1 0 0 1.2-.8-.1-2.4 0 0-6.5-2.9-7.9-1.9-.3.2-.5.4-.6.6-1.7.3-3.7.9-4 1.6-.2.3-.2.7-.2 1-1.2 1-3.1 2.7-3 3.5 0 .3.1.6.2.8-.4 1.1-.8 3.1-.2 6.1 0 0-.2-2.4 1.1-5.3.2 0 .3 0 .5 0 .4-.1 1.3-1.9 2.5-3.5.6-.1 1.9-.9 3.4-1.6"/><path d="m39.5 23.1c.6-1.9 1.6-1 1.3-.2-.3.9-1.9 4.5-.5 7.5l-.6.4c0 0-1.6-3-.2-7.7"/><path d="m44.1 36.7c2.6-2.1 6.4-3.1 7.5-3.9 1.7.2 3.2.5 3.7.3 1.7 1.1 3 2.4 3.5 2.4.1 0 .3-.1.4-.1 2.2 2.3 2.8 4.6 2.8 4.6-.4-3-1.4-4.8-2.2-5.6 0-.2 0-.5 0-.8-.2-.8-2.5-1.8-4-2.3-.1-.3-.3-.6-.5-.8-.5-.6-2.6-.4-4.3-.1-.2-.2-.5-.3-.8-.4-1.6-.5-6.8 4.4-6.8 4.4-.7 1.9.7 2.3.7 2.3"/><path d="m49.5 50.7c.1-.8-1.3-2.3-2.6-3.5 0-.3-.1-.6-.2-.9-.6-1.6-7.7-2.6-7.7-2.6-2 .7-1.3 2-1.3 2 3.2.7 6.4 3.2 7.6 3.5.9 1.5 1.6 2.8 2 3.1.2 2 0 3.9.3 4.3.1.1.2.2.4.3-.4 3.2-1.8 5.1-1.8 5.1 2.1-2.2 2.8-4.1 3-5.3.2-.1.4-.3.6-.6.5-.7-.2-3.1-.7-4.6.2-.2.3-.5.4-.8"/><path d="m56 47.8c.1-.8-1.3-2.3-2.6-3.5 0-.3-.1-.6-.2-.9-.6-1.6-7.7-2.6-7.7-2.6-2 .7-1.3 2-1.3 2 3.2.7 6.4 3.2 7.6 3.5.9 1.5 1.6 2.8 2 3.1.2 2 0 3.9.3 4.3.1.1.2.2.4.3-.4 3.2-1.8 5.1-1.8 5.1 2.1-2.2 2.8-4.1 3-5.3.2-.1.4-.3.6-.6.5-.7-.2-3.1-.7-4.6.2-.1.3-.4.4-.8"/><path d="m59.8 42.7c.1-.8-1.8-2.5-3-3.5 0-.3-.1-.6-.2-1-.3-.7-2.3-1.3-4-1.6-.2-.2-.4-.4-.6-.6-1.4-1-7.9 1.9-7.9 1.9-1.3 1.7-.1 2.4-.1 2.4 3.1-1.1 7.1-.7 8.3-1.1 1.5.8 2.8 1.5 3.3 1.6 1.2 1.6 2 3.3 2.5 3.5.1 0 .3 0 .5 0 1.3 2.9 1.1 5.3 1.1 5.3.6-3 .2-5-.2-6.1.2-.3.3-.5.3-.8"/></g><g fill="#ed4c5c"><path d="m37.9 26.6c-.8 0-1.1-1.5-1.4-1.5-.3 0-.1.8-.6 1.2-.2.2-.7.1-.9-.2-.7-.7-.4-1.8-.7-1.8-.3 0 0 1-.7 1.6-.2.2-.6.2-.8 0-.7-.6-.4-1.6-.7-1.6s-.1 1-.7 1.6c-.2.2-.6.2-.8 0-.7-.6-.4-1.6-.7-1.6-.4 0 0 1-.7 1.8-.2.2-.6.3-.9.2-.6-.4-.4-1.2-.6-1.2-.3 0-.6 1.5-1.4 1.5-6.1 0-9.1 5.4-9.1 9.9 0 5.9 6.7 17.8 15 17.8 8.3 0 15-12 15-17.8-.2-4.6-3.2-9.9-9.3-9.9"/><ellipse cx="40.4" cy="22.3" rx="3.9" ry="3.8"/></g><ellipse cx="40.4" cy="22.3" rx="3.4" ry="3.4" fill="#fcfcfa"/><path d="m42.7 22.3c0 1.3-1 2.4-2.3 2.4-1.3 0-2.3-1.1-2.3-2.4 0-1.3 1-2.4 2.3-2.4 1.3 0 2.3 1.1 2.3 2.4" fill="#3e4347"/><ellipse cx="23.6" cy="22.3" rx="3.9" ry="3.8" fill="#ed4c5c"/><ellipse cx="23.6" cy="22.3" rx="3.4" ry="3.4" fill="#fcfcfa"/><path d="m25.9 22.3c0 1.3-1 2.4-2.3 2.4-1.3 0-2.3-1.1-2.3-2.4 0-1.3 1-2.4 2.3-2.4 1.3 0 2.3 1.1 2.3 2.4" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f981.svg b/build/js/jsxc/lib/emojione/assets/svg/1f981.svg
index 804a2e0..965e4ef 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f981.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f981.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#af7751" d="m59.58 19.802c-3.51-6.479-11.532-11.556-11.532-11.556l4.346 1.4c0 0-5.85-8.755-10.363-7.529-1.351.367-2.789.971-4.145 1.635.201-1.172.791-1.752.791-1.752-2.367.662-4.111 1.986-5.4 3.52-.622-2.092-1.274-3.52-1.274-3.52s-.652 1.428-1.273 3.52c-1.289-1.533-3.03-2.857-5.4-3.52 0 0 .59.579.791 1.752-1.355-.664-2.794-1.268-4.145-1.635-4.514-1.226-10.363 7.529-10.363 7.529l4.346-1.4c0 0-8.02 5.076-11.532 11.556-3.511 6.478-2.174 10.505-2.174 10.505s.836-3.359 3.51-6.845c0 0-3.51 9.227-2.173 17.666 0 0 1.337-6.442 3.844-10.295 0 0-4.847 9.826-1.504 20.583 0 0-.167-4.123 1.839-7.451 0 0-.501 6.479 5.516 12.606 0 0-1.337-2.601-1-7.079 0 0 1.4 6.905 7.887 11.458 0 0-2.037-3.678-2.037-6.305 0 0 2.456 4.688 8.864 7.355 0 0-1.479-4.525-1.998-8.665.639 1.466 1.453 2.947 2.52 4.355 0 0-.512-2.964-.409-4.851 0 0 1.734 6.331 4.896 9.16 3.161-2.829 4.896-9.16 4.896-9.16.103 1.887-.408 4.851-.408 4.851 1.065-1.407 1.88-2.889 2.519-4.354-.523 4.139-2 8.664-2 8.664 6.408-2.667 8.864-7.355 8.864-7.355 0 2.627-2.037 6.305-2.037 6.305 6.486-4.553 7.887-11.458 7.887-11.458.334 4.479-1 7.079-1 7.079 6.02-6.127 5.516-12.606 5.516-12.606 2.01 3.328 1.839 7.451 1.839 7.451 3.343-10.757-1.505-20.583-1.505-20.583 2.508 3.853 3.845 10.295 3.845 10.295 1.337-8.439-2.173-17.666-2.173-17.666 2.674 3.485 3.51 6.845 3.51 6.845s1.336-4.03-2.174-10.505"/><path fill="#e5bc5e" d="m21.27 9.655c0 3.853-2.588 7.04-5.775 6.973-9.357-.211-8.06-10.07-5.503-12 2.6-1.965 11.278 1.186 11.278 5.03"/><path fill="#3e4347" d="m17.732 10.42c0 2.054-1.38 3.756-3.081 3.718-4.992-.112-4.301-5.37-2.936-6.404 1.387-1.046 6.02.635 6.02 2.686"/><path fill="#af7751" d="m26.334 7.274c0 0-10.616-3.554-15.787 11.757-3.103 9.19 15.787-11.757 15.787-11.757"/><path fill="#e5bc5e" d="m42.73 9.655c0 3.853 2.588 7.04 5.775 6.973 9.356-.211 8.06-10.07 5.502-12.01-2.599-1.965-11.277 1.186-11.277 5.03"/><path fill="#3e4347" d="m46.27 10.42c0 2.054 1.381 3.756 3.081 3.718 4.992-.112 4.302-5.37 2.936-6.404-1.387-1.046-6.02.635-6.02 2.686"/><path fill="#af7751" d="m37.666 7.274c0 0 10.616-3.554 15.787 11.757 3.104 9.19-15.787-11.757-15.787-11.757"/><path fill="#e5bc5e" d="m51.852 25.292c-.477-1.801-2.412-8.367-4.051-9.259-.397-.216-1.811 0-1.811 0s-3.806-4.558-5.43-5.658c-1.15-.779-5.15-2.085-5.15-2.085-1.618-.539-5.202-.539-6.82 0 0 0-4 1.306-5.15 2.085-1.624 1.101-5.43 5.658-5.43 5.658s-1.414-.216-1.813 0c-1.637.892-3.572 7.458-4.049 9.259-.512 1.938 5.35 3.126 6.251 4.917.976 1.938 1.075 6.198 1.075 6.198h25.05c0 0 .101-4.259 1.076-6.198.902-1.792 6.763-2.98 6.252-4.917"/><path fill="#3e4347" d="m37.742 23.921c0 0 1.307-5.03 4.759-5.03 3.457 0 5.241 2.215 5.241 2.215h-1.945c0 0-.378 2.813-2.811 2.813-2.161 0-3.135-1.083-3.135-1.083l-2.109 1.082"/><circle fill="#ffdc14" cx="42.743" cy="21.408" r="2.243"/><g fill="#3e4347"><ellipse cx="42.743" cy="21.408" rx=".945" ry="1.27"/><path d="m43.04 20.2c1.527 0 2.708.433 3.573.914h1.128c0 0-1.784-2.215-5.241-2.215-3.452 0-4.759 5.03-4.759 5.03l1.329-.682c.728-1.404 1.995-3.044 3.97-3.044"/><path d="m26.26 23.921c0 0-1.305-5.03-4.759-5.03-3.457 0-5.241 2.215-5.241 2.215h1.945c0 0 .378 2.813 2.812 2.813 2.161 0 3.133-1.083 3.133-1.083l2.11 1.082"/></g><circle fill="#ffdc14" cx="21.257" cy="21.408" r="2.244"/><g fill="#3e4347"><ellipse cx="21.258" cy="21.408" rx=".945" ry="1.271"/><path d="m20.959 20.2c-1.527 0-2.709.433-3.573.914h-1.128c0 0 1.784-2.215 5.241-2.215 3.454 0 4.759 5.03 4.759 5.03l-1.328-.681c-.728-1.405-1.995-3.045-3.971-3.045"/></g><path fill="#fff" d="m32 9.537l-1.309 2.964 1.309 8.254 1.31-8.254z"/><path fill="#ffda87" d="m28.325 24.11c0 0-9.646 9.735-10.1 10.51-.71 1.206-.447 4.272 0 5.6.533 1.58 3.145 5.884 3.145 5.884l10.632-6.121 10.632 6.121c0 0 2.61-4.304 3.144-5.884.448-1.327.71-4.394 0-5.6-.456-.775-10.1-10.51-10.1-10.51h-7.348"/><path fill="#fff" d="m25.969 52.05c1.279 1.627 2.465 3.211 4.03 4.589-.115-.367-.228-.736-.336-1.105.302.491.758 1.192 1.292 1.485.105-.61-.079-2.088-.047-2.631.409.831.818 1.662 1.228 2.492.41-.83.82-1.661 1.23-2.492 0 .368-.144 2.086-.051 2.631.535-.293.992-.994 1.293-1.485-.107.369-.219.738-.334 1.105 1.646-1.233 2.775-2.995 4.03-4.589-4.111 0-8.221 0-12.331 0"/><g fill="#af7751"><path d="m48.591 35.05c0 0-2.993-1.854-5.984-1.854 0 0 3.785 1.555 5.984 5.04v-3.186"/><path d="m45.566 43.33c0 0-1.668-2.795-4.334-3.938 0 0 2.533 2.834 2.614 6.775l1.72-2.837"/><path d="m49.812 41.18c0 0-3.607-4.159-8.306-5.41 0 0 5.02 4.02 6.427 10.414l1.879-5"/><path d="m15.408 35.05c0 0 2.993-1.854 5.984-1.854 0 0-3.784 1.555-5.984 5.04v-3.186"/><path d="m18.434 43.33c0 0 1.668-2.795 4.334-3.938 0 0-2.533 2.834-2.615 6.775l-1.719-2.837"/><path d="m14.188 41.18c0 0 3.607-4.159 8.306-5.41 0 0-5.02 4.02-6.427 10.414l-1.879-5"/></g><path fill="#fff" d="m32 40.711c-3.141 0-10.632 5.405-10.632 5.405 0 3.357 5.066 8.178 10.632 8.178 5.567 0 10.632-4.82 10.632-8.178 0 0-7.489-5.405-10.632-5.405"/><g fill="#3e4347"><path d="m30.837 32.889l.45 4.237c.129.815.449 1.48.713 1.48.262 0 .582-.665.711-1.48l.451-4.237h-2.325"/><path d="m24.289 27.804v2.148c0 .771.626 1.678 1.389 2.01l4.931 2.155c.765.332 2.02.332 2.781 0l4.932-2.155c.763-.335 1.388-1.241 1.388-2.01v-2.148h-15.421"/></g><path fill="#ffda87" d="m39.711 27.804c-2.137-4.263-2.409-4.682-4.25-5.59-1.552-.767-5.371-.767-6.923 0-1.841.909-2.112 1.327-4.249 5.59h15.422"/><path fill="#af7751" d="m39.24 27.343c-1.449-1.262-13.04-1.262-14.489 0-1.042.908-.237.308 2.527 2.248 1.717 1.201 3.358 4.333 4.685 4.433v.019c.01 0 .021-.009.033-.009s.023.009.033.009v-.019c1.326-.1 2.966-3.232 4.684-4.433 2.764-1.94 3.57-1.34 2.527-2.248"/><path fill="#3e4347" d="m32 37.689l-10.632 8.427c0 0 4.742-3.141 6.553-3.605 1.976-.508 6.183-.509 8.157 0 1.812.467 6.554 3.605 6.554 3.605l-10.632-8.427"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58 21.2c3.9-2.6 4-6.4 4-6.4-3.9-.2-3.8-4.2-7.4-7.8-4.8-4.8-10.9-1.8-10.9-1.8.3-1.5-.5-2.4.1-3.2-8.2 0-11.8 3.5-11.8 3.5 0 0-3.6-3.5-11.8-3.5.5.8-.2 1.7.1 3.2 0 0-6.2-3.1-10.9 1.8-3.6 3.7-3.5 7.7-7.4 7.8 0 0 .1 3.8 4 6.4 0 0-4.1 3.9-3.4 12.1 0 0 1.6-2 5.5-2.7-4.5 3.8-1.9 9.4-5.2 13.2 0 0 4.6 1 6.5-.3-.7 5.9 2.9 8.2 2.9 11.1 4.1-1.3 4.7-5.4 4.7-5.4 0 7.5 2.6 7.2 2.6 11.2 0 0 4.5-.7 6.4-4.5.7 3.5 4.3 3.9 6.2 6.1 1.9-2.2 5.4-2.6 6.2-6.1 1.9 3.7 6.4 4.5 6.4 4.5 0-4 2.6-3.7 2.6-11.2 0 0 .6 4 4.7 5.4 0-2.9 3.6-5.2 2.9-11.1 1.9 1.3 6.5.3 6.5.3-3.3-3.9-.7-9.5-5.2-13.2 3.8.8 5.5 2.7 5.5 2.7.3-8.3-3.8-12.1-3.8-12.1" fill="#8f6b51"/><path d="m55.7 7.1c-2.6-2.1-10.1.2-13 3.8 3.5 1.2 7.6 4.2 10.7 11.4 6.5-3.2 5-13 2.3-15.2" fill="#e5bc5e"/><path d="m52 19.5c3.8-1.6 3-7 1.5-8.2-1.3-1.1-5.1 0-6.7 1.8 1.8 1.4 3.6 3.5 5.2 6.4" fill="#3e4347"/><path d="m21.3 10.9c-2.9-3.6-10.4-5.9-13-3.8-2.7 2.2-4.3 12 2.3 15.2 3.2-7.1 7.2-10.2 10.7-11.4" fill="#e5bc5e"/><path d="m12 19.5c1.6-2.9 3.4-5 5.2-6.4-1.7-1.8-5.4-2.9-6.7-1.8-1.5 1.2-2.3 6.6 1.5 8.2" fill="#3e4347"/><path d="m48.9 28.7c.5-2.2-1.6-7.3-3.5-8.3-.3-.2-1.5 0-1.5 0-.4-.5-2.3-6-7.3-7-3-.5-4.6 2-4.6 2s-1.6-2.6-4.6-2c-5 .9-7 6.5-7.3 7 0 0-1.2-.2-1.5 0-1.9 1.1-3.9 6.1-3.5 8.3.6 2.7 5.3 5.4 5.3 10h23.4c-.1-4.6 4.6-7.3 5.1-10" fill="#e5bc5e"/><path fill="#fff" d="M32 16.4 30.7 19 32 27.1 33.3 19z"/><g fill="#3e4347"><path d="m42.9 26c0 1.7-1.1 3-2.4 3-1.3 0-2.4-1.3-2.4-3 0-1.7 1.1-3 2.4-3 1.3 0 2.4 1.4 2.4 3"/><path d="m21.1 26c0 1.7 1.1 3 2.4 3 1.3 0 2.4-1.3 2.4-3 0-1.7-1.1-3-2.4-3-1.3 0-2.4 1.4-2.4 3"/></g><path d="m20.5 41.8c0 6.4 7.7 11.3 7.7 11.3-.1-1.3.3-2.3.3-2.3.3 1.9 1.2 3.3 1.2 3.3 0-1.6.8-2.3.8-2.3.8 2.2 1.6 3.1 1.6 3.1s.8-.9 1.6-3.1c0 0 .8.7.8 2.3 0 0 .9-1.4 1.2-3.3 0 0 .4 1.1.3 2.3 0 0 7.7-4.9 7.7-11.3h-23.2" fill="#fff"/><path d="m43.3 36.5c-.3-.6-5.4-4.7-5.4-4.7h-11.8c0 0-5 4-5.4 4.7-.5 1-.6 4.2-.2 5.2 0 0 4.9 7.4 11.5 1 6.6 6.4 11.5-1 11.5-1 .4-1 .3-4.2-.2-5.2" fill="#ffda87"/><g fill="#3e4347"><path d="m20.5 41.8c0 0 0 0 0 0"/><path d="m43.5 41.8c0 0 0 0 0 0"/><path d="m33 42.7v-5.9l3.8-1.6c.6-.3 1.1-1 1.1-1.6v-1.7h-11.8v1.7c0 .6.5 1.3 1.1 1.6l3.8 1.6v5.9c-5 4.6-9.9-.4-10.4-.9.6.9 5.4 8.9 11.5 2.6 6 6.3 10.9-1.8 11.5-2.6-.6.6-5.6 5.6-10.6.9"/></g><path d="m37.9 31.9c-1.6-2.9-1.8-3.1-3.2-3.8-1.2-.5-4.1-.5-5.3 0-1.4.6-1.6.9-3.2 3.8h11.7" fill="#ffda87"/><path d="m32 30.3c-3.8 0-5.9 1.6-5.9 1.6s.2-.1 2.3 1.4c1.3 1 2.4 3.6 3.6 3.6 1.2 0 2.3-2.6 3.6-3.6 2.1-1.6 2.3-1.4 2.3-1.4s-2.1-1.6-5.9-1.6" fill="#af7751"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f982.svg b/build/js/jsxc/lib/emojione/assets/svg/1f982.svg
index 73d0649..a1afc31 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f982.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f982.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c94747" d="m41.543 14.914c.053-.805-.738-2.479-2.973-3.631-2.396-1.232-4.365-1.104-4.943.021-.572 1.107.707 2.91 2.861 4.02.957.494 1.441.504 2.094.729 1.133.396.723.889.324 1.16-.057.041-.633.318.227.24 1.129-.096 2.34-1.293 2.41-2.537"/><path fill="#703712" d="m38.05 10.3c-1.076-.383-3.424-1.283-4.443 1.068-.158.363-.127.793.055 1.246 1.387 2.287 4.996-.791 7.271.639 0 0-1.385-2.421-2.883-2.953"/><path fill="#6b6b6d" d="m31.377 22.853c-1.564-1.6-2.221 1.244-4.918 2.797-2.695 1.561-.584 4.373.574 2.674 1.158-1.688 7.03-2.723 4.344-5.471"/><path fill="#3e4347" d="m30.781 22.439c-.08.008-1.668.168-.414 2.139.846 1.328-1.676 1.047-3.26 2.57-.313.301-.992 1.043-1.676 1.27.385.523 1.086.662 1.602-.094 1.158-1.688 7.03-2.723 4.344-5.471-.213-.217-.408-.346-.596-.414"/><path fill="#6b6b6d" d="m26.04 26.875c-1.963-1.078-1.777 1.818-3.918 4.078-2.139 2.255.699 4.335 1.324 2.388.627-1.943 5.967-4.615 2.594-6.466"/><path fill="#3e4347" d="m26.04 26.875c-.498-.275-.857-.289-1.152-.127-.154.414-.176.965.447 1.439.744.568.547.988-.119 1.707-.664.717-1.793 1.08-2.449 2.678-.477 1.154-1.012.957-1.273.759.418.895 1.58 1.176 1.953.01.626-1.943 5.966-4.615 2.593-6.466"/><g fill="#6b6b6d"><path d="m40.717 27.06c-8.299 0-14.34 3.188-14.34 5.91 0 2.716 4.248 4.925 9.484 4.925 5.238 0 9.07-2.568 10.699-4.925 1.637-2.361-.603-5.91-5.843-5.91"/><path d="m50.05 7.429c-1.635 0-2.959 1.818-2.959 4.055 0 2.242 1.324 4.061 2.959 4.061s2.959-1.818 2.959-4.061c0-2.236-1.324-4.055-2.959-4.055"/><path d="m51.16 5.707c-.773-2.271-2.186-3.238-3.648-3.238-1.535 0-2.27 1.93-1.66 4.24.529 2.02 2.729 4.674 4.146 4.125 1.416-.549 1.937-2.85 1.162-5.127"/><path d="m48.38 2.869c-.873-1.105-3.463-1.164-5.783-.127-2.322 1.039-3.494 2.777-2.617 3.885.871 1.105 2.338 1.346 4.734.455 2.09-.79 4.543-3.094 3.666-4.213"/><path d="m33.31 31.12c-10.248 0-15.877 2.531-15.877 6.261 0 3.732 4.23 7.352 10.695 7.352 6.469 0 10.377-2.273 12.396-5.506s-.746-8.107-7.214-8.107"/><path d="m38.441 26.328c.994-2.01-2.035-1.406-4.547-3.1-2.512-1.695-4.496 1.291-2.414 1.604 2.081.304 5.245 4.96 6.961 1.496"/><path d="m33.35 29.871c.924-2.037-2.08-1.348-4.648-2.969-2.57-1.621-4.451 1.422-2.361 1.666 2.091.252 5.415 4.818 7.01 1.303"/><path d="m42.38 5.162c-1.049-1.01-3.738-.248-5.998 1.693-2.258 1.947-3.236 4.35-2.18 5.377 1.047 1 2.594.824 4.951-.992 2.055-1.58 4.282-5.069 3.227-6.078"/><path d="m52.39 15.435c-.973-2.723-4.787-3.883-7.4-.594-4.139 5.213-4.725 11.305-2.664 13.271 2.068 1.961 5.857.889 8.473-2.402 2.61-3.285 2.565-7.546 1.591-10.275"/></g><g fill="#3e4347"><path d="m37.28 24.599c-.398-.123-.857-.25-1.346-.412-1.291.162-1.988.641-3.223.195-1.465-.527-1.852-.979-1.852-.979l-.002.002c-.434.561-.35 1.281.617 1.426 1.43.209 3.371 2.475 5 2.746 2.947-.593 1.673-2.185.804-2.978"/><path d="m39.15 10.302c-2.357 1.816-3.904 1.996-4.951.992-.199-.193-.303-.447-.363-.725-.143.684-.037 1.271.363 1.662 1.047 1 2.594.824 4.951-.992 1.869-1.438 3.873-4.447 3.426-5.74-.338 1.481-1.926 3.649-3.426 4.803"/><path d="m48.45 2.994c-.445 1.15-2.189 2.566-3.738 3.15-.846.314-1.568.48-2.197.525-.088.297-.221.613-.389.943.713.014 1.559-.148 2.586-.531 2.02-.761 4.361-2.929 3.738-4.087"/><path d="m48.582 4.716c.646-.65.639-1.332.471-1.848-.334-.186-.686-.281-1.045-.338.145.1.273.211.373.338.725.924-.82 2.654-2.559 3.674.014.057.018.109.033.166.432 1.643 1.971 3.709 3.293 4.123-2.603-2.607-1.857-4.818-.566-6.115"/><path d="m51.988 8.451c-.15-.182-.314-.34-.49-.477-.039 1.371-.564 2.498-1.496 2.859-.754.291-1.723-.328-2.547-1.27-.229.574-.369 1.221-.369 1.92 0 .568.086 1.107.24 1.598-.002-.035-.17-3.115 1.824-1.596 1.571 1.2 2.957-.419 2.838-3.034"/><path d="m53 11.484c-.229 1.443-1.129 1.814-2 1.814-.191 0-.381-.018-.563-.045.604.301 1.125.752 1.508 1.316.641-.743 1.057-1.843 1.057-3.085"/><path d="m49.621 23.304c.746.498 1.279 1.145 1.586 1.846 2.191-3.197 2.102-7.139 1.182-9.715-.348-.973-1.061-1.74-1.949-2.182-.001 0 2.603 3.864-.819 10.05"/><path d="m44.15 16.671c-.871.561 2.383-.635 5.283.596 2.902 1.233-1.854-2.799-5.283-.596"/><path d="m42.662 19.855c-1.047.672 2.857-.762 6.338.717 3.48 1.476-2.225-3.36-6.338-.717"/><path d="m43.16 22.533c-.064.017-.066.023 0 0"/></g><path fill="#6b6b6d" d="m46.06 22.32c-7.115 0-12.291 3.188-12.291 5.91 0 2.719 3.637 4.925 8.129 4.925 4.488 0 7.77-2.568 9.17-4.925 1.401-2.361-.519-5.91-5.01-5.91"/><g fill="#3e4347"><path d="m40.38 23.82c-1.143.201 2.975.133 6.27 1.822 3.292 1.69-1.778-2.615-6.27-1.822"/><path d="m36.676 26.1c-1.143.201 2.977.133 6.27 1.822 3.294 1.692-1.778-2.613-6.27-1.822"/><path d="m31.996 30.13c-1.43.336 3.689.061 7.709 2.34 4.02 2.279-2.098-3.668-7.709-2.34"/><path d="m28.832 31.896c-.418 0-.84.031-1.264.098-1.658.258 4.189.41 8.521 3.427.736.514 1.164.723 1.336.723.385 0-.527-1.063-2.156-2.123-1.626-1.063-3.968-2.125-6.437-2.125"/><path d="m14.806 38.702c-.161.432-.263.863-.263 1.285 0 .867.258 1.693.71 2.465.367-.563.875-.926 1.337-1.193-.841-.766-1.461-1.627-1.784-2.557"/><path d="m47.49 22.457c.084.057 4.984 3.459-.594 7.846.191.537.234 1.092.117 1.627 1.873-.967 3.268-2.367 4.059-3.699 1.242-2.095-.129-5.114-3.582-5.774"/><path d="m36.01 32.28c3.977 1.767 6 6.101 1.025 7.972-7.865 2.957-8.5 4.229-11.602 3.623-.371-.072-.426.607-.686.859.457.076.922.145 1.395.189 6.705.652 11.65-1.518 14.09-4.834 1.958-2.665 1.282-6.206-4.218-7.809"/><path d="m44.855 28.04c.785 1.154 2.85 3.084-.574 5.132-2.777 1.66-3.287 1.354-4.25 1.506.674.674 1.039 1.447 1.156 2.252v.002c2.508-.961 4.361-2.5 5.373-3.958 1.102-1.591.44-3.714-1.705-4.934"/></g><path fill="#6b6b6d" d="m42.867 33.31c0-2.201 2.486-.507 5.537-1.099 3.049-.6 3.514 2.876 1.479 2.367s-7.02 2.536-7.02-1.268"/><path fill="#3e4347" d="m50.5 32.591c-.363.17-.734.49-1.029 1.031-.18.332-.283.631-.332.906.271-.014.525-.004.742.049 1.4.352 1.617-1.189.619-1.986"/><path fill="#6b6b6d" d="m50.29 33.462c1.705-1.562 2.156 1.246 4.771 2.805 2.613 1.553.26 4.307-.787 2.633-1.042-1.678-6.919-2.747-3.984-5.438"/><path fill="#3e4347" d="m53.48 38.16c.346.238.631.484.793.744.881 1.408 2.672-.314 1.672-1.82-.684-.006-1.651.188-2.465 1.076"/><g fill="#6b6b6d"><path d="m56.09 44.792c-.48-.141-1.537.488-1.264 1.08.279.594 2.896.617 2.896.311.001-.366-.8-1.127-1.632-1.391"/><path d="m55.53 38.02c2.41 0 .561 2.277 1.207 5.064.648 2.799-3.145 3.219-2.59 1.354.557-1.867-2.771-6.418 1.383-6.418"/><path d="m37.24 38.935c0-2.201 2.486-.508 5.537-1.1 3.049-.6 3.514 2.877 1.477 2.367-2.033-.51-7.01 2.537-7.01-1.267"/></g><path fill="#3e4347" d="m44.877 38.22c-.361.17-.732.49-1.027 1.031-.18.332-.283.631-.332.906.271-.014.525-.004.74.049 1.402.352 1.619-1.189.619-1.986"/><path fill="#6b6b6d" d="m44.664 39.09c1.703-1.563 2.156 1.246 4.77 2.805 2.615 1.553.262 4.307-.785 2.633-1.044-1.678-6.92-2.747-3.985-5.438"/><path fill="#3e4347" d="m47.855 43.78c.344.238.631.484.793.744.881 1.408 2.672-.314 1.672-1.82-.685-.006-1.65.188-2.465 1.076"/><g fill="#6b6b6d"><path d="m50.46 50.42c-.479-.141-1.537.488-1.262 1.08.277.594 2.896.617 2.896.311.001-.366-.8-1.127-1.634-1.391"/><path d="m49.912 43.647c2.41 0 .561 2.277 1.207 5.064.646 2.799-3.146 3.219-2.59 1.354.555-1.867-2.771-6.418 1.383-6.418"/><path d="m47.15 28.816c0-2.199 2.484-.506 5.535-1.1 3.049-.6 3.514 2.879 1.479 2.369-2.033-.511-7.01 2.538-7.01-1.269"/></g><path fill="#3e4347" d="m54.783 28.1c-.363.17-.734.492-1.027 1.031-.182.332-.285.633-.334.908.271-.014.525-.006.742.049 1.402.352 1.617-1.189.619-1.988"/><path fill="#6b6b6d" d="m54.57 28.97c1.705-1.563 2.156 1.246 4.771 2.805 2.613 1.552.26 4.306-.787 2.632-1.042-1.679-6.919-2.747-3.984-5.437"/><path fill="#3e4347" d="m57.76 33.661c.346.238.631.484.793.746.881 1.406 2.674-.314 1.672-1.822-.684-.005-1.651.188-2.465 1.076"/><g fill="#6b6b6d"><path d="m60.37 40.3c-.48-.139-1.537.488-1.264 1.08.28.594 2.897.617 2.897.312 0-.367-.799-1.128-1.633-1.392"/><path d="m59.816 33.53c2.41 0 .561 2.277 1.207 5.064.648 2.797-3.145 3.219-2.59 1.352.557-1.867-2.771-6.416 1.383-6.416"/><path d="m35.875 37.39c-1.799-.393-2.41 1.258-1.594 2.652.816 1.385 1.406 1.504 1.875 4 .465 2.492 4.881 1.498 5.414-.934.391-1.777-1.826-4.869-5.695-5.718"/></g><g fill="#3e4347"><path d="m41.57 43.11c.275-1.254-.754-3.162-2.74-4.475 1.16 1.244 2.082 2.467 1.01 3.758-.631.76-.871-.98-4.168-.906-.787.018-1.746-2.35-1.746-2.35-.529 2.275-.236 4.094 2.23 4.906 2.408.794 4.881 1.499 5.414-.933"/><path d="m32.41 28.25c-.234-.072-.494-.143-.779-.217-.006 0-2.047-.24-3.506 1.352.227.148.459.305.691.463.959-.602 2.174-1.148 3.594-1.598"/></g><path fill="#6b6b6d" d="m20.336 34.95c1.076 1.107-.01 2.258-1.486 2.271-1.475.023-1.822-.34-4.046.402-2.222.738-3.269-2.824-1.509-4.256 1.282-1.043 4.728-.795 7.04 1.583"/><path fill="#3e4347" d="m19.553 34.27c-.182-.141-.363-.277-.553-.395-.877.498-1.705 1.33-1.963 2.713-.342-.045-.563-.17-.715-.434-.716-1.236-2.395-1.215-2.395-1.215.705.24 1.44.766 1.76 1.885.034.121.113.453.127.51.5-.121.876-.16 1.216-.17.186-.006.361-.002.537.01.22-1.01.906-2 1.986-2.904"/><path fill="#6b6b6d" d="m33.02 42.476c-5.03 1.986-11.986 6.27-6.615 13.689 0 0-2.4-3.166 3.266-7.684.25-.199 2.317 1.283 2.334 3.518.014 1.701-2 3-2 6 0 1.488-2.697 4-2.697 4s22.13-5.707 12.688-18.03c-2.303-2.94-5.951-1.871-6.976-1.492"/><g fill="#3e4347"><path d="m28.15 59.55c-.809 1.248-.844 2.453-.844 2.453 2.127-2.129 3.328-1.988 3.039-4.104s.662-2.984 2.184-4.479c1.521-1.49-1.148-3.107-1.15-4.725 0-1.617-1.613-2.984-1.943-1.254-.328 1.727-1.162 1.01-2.914 3.742-1.52 2.371-.494 4.375-.195 4.865.031.043.047.078.078.119 0 0-.502-1.346.365-1.799.863-.461-.516-1.361.313-1.756.822-.383-.168-1.451 1.102-2.359 1.264-.881 1.486-1.77 1.486-1.77s1.582.904.447 2.205c-1.137 1.314.063 1.244 1.076 1.555 1.014.303-2.125.705-1.039 1.627 1.086.9-1.48.758-.836 1.916.639 1.172-1.455.561-.705 1.918s.347.582-.464 1.846"/><path d="m27.303 61.999c0 0 20.818-5.371 13.447-16.945.1.201 4.66 9.685-13.447 16.945"/></g><path fill="#6b6b6d" d="m16.498 37.706c0 0-.178-.52-.244-.689-1.085-2.76-3.908-2.469-4.608-2.318-16.03 3.389-7.24 17.422-7.24 17.422s2.594-10.122 9.08-9.907c1.513 4.785-4.05 6.447-4.05 6.447 8.133-2.392 8.174-7.476 7.06-10.955"/><path fill="#3e4347" d="m5.817 50.14c.504-1.174-.328-.832 1.152-1.412 1.479-.578-.204-1.057 1.066-1.551 1.271-.486-.324-1.482 1.013-1.625 1.334-.143-.176-1.734.653-1.506.825.221 1.465.779 1.813-.559.349-1.344 1.972-1.277 1.972-1.277s-.559.686-.517 1.809c.041 1.131-1.359 1.408-1.178 2.01.178.617-1.326.629-1.173 1.283.152.68-1.182 1.35-1.182 1.35 4.466-1.314 6.484-3.439 7.219-5.666-.887 1.834-3.07 2.047-2.145.369 1.147-2.086-1.235-4.03-2.511-2.365-1.276 1.672-3.12 1.635-4.371 4.03-1.25 2.394-2.419.372-2.628 2.968-.209 2.596-.594 4.121-.594 4.121s.903-.812 1.411-1.976"/><path fill="#6b6b6d" d="m19.01 39.587c-.889.67-2.768 1.814-1.65 4.871 1.119 3.066 1.574 3.078 1.439 1.314-.143-1.82 0-1.941 3.846-1.404 3.844.539.592 2.375-.037 3.152-.629.783 6.748-.711 5.979-5.813-.669-4.427-7.183-3.933-9.577-2.12"/><g fill="#3e4347"><path d="m18.457 44.43c.396 1.611.15 2.52.15 2.52.188.051.25-.377.188-1.178-.143-1.82 0-1.941 3.846-1.404 1.865.262 2.055.83 1.689 1.432l.004-.002c1.836-2.493-6.467-3.757-5.877-1.368"/><path d="m28.582 41.708c-.291-1.934-1.697-2.928-3.387-3.283.012.01 5.996 4.91-2.592 9.1-.628.783 6.749-.711 5.979-5.813"/></g><circle fill="#6b6b6d" cx="21.604" cy="35.64" r="3.5"/><ellipse fill="#fcfcfa" cx="21.604" cy="35.64" rx="3.03" ry="3.141"/><ellipse fill="#3e4347" cx="21.604" cy="35.64" rx="2.086" ry="2.16"/><circle fill="#6b6b6d" cx="28.662" cy="36.757" r="4"/><ellipse fill="#fcfcfa" cx="28.661" cy="36.757" rx="3.468" ry="3.59"/><ellipse fill="#3e4347" cx="28.662" cy="36.757" rx="2.383" ry="2.469"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m51.3 28.2c0 0 .4-1.4-.4-2.9 2.5-3.2 2.4-8.1.7-10.5 1.4-2 1.4-5.1-.4-6.6 0 0-.2-5.1-3.5-5.5l-7.7 4.6c0 0 2 1.2 5.5-.3.2 1.4.8 2.3 1.5 3.1-.8 1.5.1 3.2.1 3.2s-3 2.8-3.7 3.7c-2.1 2.6-2.3 5.9-2.3 5.9l-17.5 11.3-10.1.2 2.8 2.9c0 0 .8-.1 1.1-.1l9.3 7.1-4.1 3.4c1.6.9 17.7-3 17.7-3 .5-.4 2-1.7.4-4l.3-3.5 10.3-9" fill="#3e4347"/><g fill="#6b6b6d"><path d="m46.6 6.3c-1.5.9 1.1 2.5 1.1 3.9 1.7 1.1 3.4-1 3.5-2 .3-1.6-.1-4.6-2.4-5.1.2.5-.1 2-2.2 3.2"/><path d="m32.9 42.5c-5 2-11.9 6.2-6.6 13.6 0 0 0 .1.1.1 0 0-1.6-2.7 1.3-5.8 1.3-1.4 2.4-2.6 2.4-2.6s2.2 1.5 1.6 4.2c-1 4.5-4.4 10-4.4 10s22-5.7 12.6-18c-2.4-2.9-6-1.8-7-1.5"/><path d="m60.4 40.5c.3-.4.5-1 .3-1.8-.6-2.4.8-4.8-.5-5.4.2-.8-3.3-4.6-5.4-4.8-1-1.4-2.9-.5-3.9-.5.3-3.4-3.7-5.5-3.7-5.5 1.7.3 2.5.9 3.3 2 2.4-3.8 1.8-9.6-.6-10.8 2.5-.1 2.7-2.9 1.5-4.7.1 2.6-1.6 3.7-3.1 2.5-1.4-1.1-2 .6-1.5 1.7-3.2 2-5.9 6.6-6.1 9.7-1.7.4-3.2 1-4.4 1.6-2.4-1.6-4.1-2-5.2-1.8-3.1-1.7-3.2 2.6-5.7 4.1-2.2-.5-2.5 3.6-3.9 5.2-1.1.1-2.4.7-2.9 1.6-5.5-2.1-7 1.2-7 1.2-15.9 3.4-7.2 17.4-7.2 17.4s1.3-4.6 4.5-7.9c2.6-2.7 5.3-2.5 5.3-2.5-2.4 6.1 1.9 3.1 2.4 1.3.9-3.2.3-6.4-2.3-8 1.6-.2 1.9 1.8 2.7 1.7.2-1.4 1.1-1.4 1.1-1.4-1.5 1.8-.4 4 .1 4.9-.9.7-1.7 2-.9 4.3 1.1 3.1 1.6 3.1 1.4 1.3-.1-1.8 0-1.9 3.8-1.4 3.8.5.6 2.4 0 3.1-.1.1 0 .2.1.2 5.4-1.7 5.4-4.7 3.5-6.5 1.5.2 2.1 2.4 1.9 3 1.5-1.1 4.1-2.2 5.6-2.7-.1-.7-.1-1.4.1-2.2.3.6 1 2.2 1.7 2.2 3.4-.1 3.7 1.7 4.3.9 1.1-1.3.2-2.6-1-3.9.9.6 1.5 1.3 1.9 2.1.7-.2 2.1-.2 2.9-.2-.2 1.5 2.6 3 4.3 3.8-1.1 1.3.8 4.3.4 5.8-.2.7.2 1 .6 1.1 0 1.2 5.5 1.3 1.6-.6.3-.4.5-1 .3-1.8-.5-2.3.7-4.3-.4-4.9.1-.3.2-1.5-1.3-2.1-2.3-1-2.9-3.3-4-3.1-1.2-1.8-4.3-.3-5.5-.8.9-2-1.1-4.3-3.9-5.5 3.3 1 4.9 2 5.1 4.8 1.8.3 3-.6 4-1.9 1.3.2 2.7-.6 3.8-.7.2 1.7 3 3.2 4.8 4-1.1 1.3.8 4.4.4 5.8-.2.7.2 1 .6 1.1-.1 1 6.1 1.1 1.6-.6.3-.4.5-1 .3-1.8-.6-2.4.8-4.5-.5-4.9.1-1.8-3.6-5.2-5.7-5.5-1-.9-2.9-.4-2.9-.4s1.1-.5 1.5-1.4c1.3.5 2.7-.4 4.3-.5.2 1.5 2.8 2.8 4.5 3.6-.8 1.5.9 4.6.5 6-.2.7.2 1 .7 1.1.2.9 6.2 1.6 1.8-.6m-16.7-23.5c3.4-2.2 8.1 1.8 5.3.6-3-1.2-6.2 0-5.3-.6m-1.5 3.3c4.1-2.7 9.8 2.2 6.3.7s-7.3-.1-6.3-.7m-7.9 5.7c-.6.6-1 1.3-1.1 1.9-.4.1-1.2.3-1.6.4-1.4-.7-2.4-1.2-3.3-1.5 1.6-1 2.1-1.5 2.3-2 .7.1 2.9.6 3.7 1.2m-7.5 5.4c-.9.1-1.7.5-2.5.7.7-.8 2-2 2.7-2.9.4.2.9.5 1.3.8-.7.5-1.2.9-1.5 1.4m12.7 1.2c-4-2.3-9.1-2-7.7-2.3 5.6-1.4 11.7 4.5 7.7 2.3m4.1-3.8c-3.8-1.9-8.5-1.9-7.2-2.1 5.2-.9 11 4 7.2 2.1m2.6-2.9c-3.3-1.7-7.4-1.6-6.2-1.8 4.4-.8 9.4 3.5 6.2 1.8"/></g><ellipse cx="21.5" cy="35.7" rx="3" ry="3.1" fill="#fcfcfa"/><ellipse cx="21.5" cy="35.7" rx="2.1" ry="2.2" fill="#3e4347"/><ellipse cx="28.5" cy="36.8" rx="3.4" ry="3.6" fill="#fcfcfa"/><ellipse cx="28.5" cy="36.8" rx="2.4" ry="2.5" fill="#3e4347"/><path d="m39.4 11.6l-5.9-.2c-1 4.2 5.6 3.4 5.6 5.2 0 .6-.9 1.3-.1 1 3-1 2.4-5.3.4-6" fill="#c94747"/><path d="m39.8 5c-5 .8-7.1 6-5.7 7.3 1 1 2.6.8 4.9-1 1.4-1.1 2.8-2.9 3.3-4.4 2.8-.1 5.4-1.8 6-3.7-1.2-2.1-6.8-1.4-8.5 1.8" fill="#6b6b6d"/><g fill="#3e4347"><path d="m33.7 10.5c-1.1 2.5 2.8 3.9 5.5 1.4 2-1.8 3.8-4.1 3.1-6.5-3.9 7.5-8.4 6.8-8.6 5.1"/><path d="m28 59.6c-.8 1.2-.8 2.4-.8 2.4 2.1-2.1 3.3-2 3-4.1-.3-2.1.7-3 2.2-4.5 1.5-1.5-1.1-3.1-1.1-4.7 0-1.6-1.6-3-1.9-1.2-.3 1.7-1.2 1-2.9 3.7-1.5 2.4-.5 4.4-.2 4.9 0 0 0 .1.1.1 0 0-.5-1.3.4-1.8.9-.5-.5-1.4.3-1.8.8-.4-.2-1.4 1.1-2.4 1.3-.9 1.5-1.8 1.5-1.8s1.6.9.4 2.2c-1.3 1.4-.1 1.4.9 1.7 1 .3-2.1.7-1 1.6 1.1.9-1.5.8-.8 1.9.6 1.2-1.4.6-.7 1.9.7 1.4.3.6-.5 1.9"/><path d="m5.8 50.2c.5-1.2-.3-.8 1.1-1.4 1.5-.6-.2-1.1 1.1-1.5 1.3-.5-.3-1.5 1-1.6 1.3-.1-.2-1.7.6-1.5.8.2 1.5.8 1.8-.6.3-1.3 2-1.3 2-1.3s-.6.7-.5 1.8c0 1.1-1.4 1.4-1.2 2 .2.6-1.3.6-1.2 1.3.2.7-1.2 1.3-1.2 1.3 4.9-.9 6.6-3.3 7.2-5.6-.9 1.8-3.1 2-2.1.4 1.1-2.1-1.2-4-2.5-2.4-1.3 1.7-3.1 1.6-4.3 4s-2.4.4-2.6 2.9c-.2 2.6-.6 4.1-.6 4.1s.9-.8 1.4-1.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f983.svg b/build/js/jsxc/lib/emojione/assets/svg/1f983.svg
index 3942564..59cc30f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f983.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f983.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m61.999 33.859v-7.394c.002-1.306-1.059-2.364-2.364-2.362h-3.179l2.754-1.59c1.129-.654 1.52-2.101.865-3.229l-3.697-6.402c-.652-1.133-2.1-1.521-3.229-.864l-2.752 1.588 1.588-2.752c.652-1.131.267-2.578-.864-3.23l-6.402-3.696c-1.132-.653-2.579-.266-3.229.866l-1.59 2.752v-3.18c-.003-1.307-1.061-2.366-2.368-2.366h-7.391c-1.307 0-2.365 1.059-2.365 2.365v3.178l-1.59-2.752c-.651-1.132-2.099-1.52-3.229-.866l-6.401 3.696c-1.131.652-1.519 2.1-.865 3.23l-6.917 12.267 20.625 11.482 12.09 20.938c.652 1.13 2.1 1.52 3.229.863l6.402-3.694c1.131-.653 1.519-2.101.864-3.229l-1.59-2.754 2.754 1.59c1.131.652 2.578.267 3.229-.865l3.696-6.402c.652-1.131.266-2.578-.866-3.23l-2.749-1.588h3.176c1.308-.004 2.369-1.063 2.368-2.37"/><g fill="#f4bc58"><path d="m16.404 57.992c-4.399-1.946-.487-5.516-4.506-5.749-4.01-.234-6.662-2.835-6.662-2.835 4.553-2.1 8.304 3.474 12.703-1.205-3.859 6.445.154 10.535-1.535 9.789"/><path d="m29.544 61.719c-4.53 0-5.479-1.324-7.599-.689-4.494 1.345-6.514.9-6.514.9 4.521-3.357 8.678-2.391 9.254-8.789.338 5.698 6.706 8.578 4.859 8.578"/></g><g fill="#3e4347"><path d="m40.12 31.551c0 11.133-7.652 20.16-17.09 20.16-9.438 0-30.988-14.964-15.72-31.08 5.104-5.391 2.881 5.199 17.492 5.199 9.438 0 15.317-5.403 15.317 5.729"/><path d="m30.818 49.5c0 2.32-3.164 7.268-5.993 7.268-2.828 0-6.03-3.363-6.03-5.685 0-2.322 12.02-2.722 12.02-1.583"/></g><g fill="#51575c"><path d="m15.609 33.902c-1.989 12.344 13.386 20.557 19.786 20.557 6.402 0-.35-7.148 8.818-14.702 8.327-6.86-11.753-5.765-18.15-5.765s-9.48-6.107-10.45-.09"/><path d="m17.557 20.17c.437 3.116 2.146 5.916 4.615 7.373 2.479 1.47 5.546 1.414 8.355.544 2.85-.833 5.537-2.354 8.119-4.02 2.578-1.695 5.05-3.613 7.559-5.533-1.928 2.511-4.146 4.799-6.643 6.795-2.49 1.994-5.291 3.711-8.469 4.683-1.592.448-3.281.715-4.988.571-1.696-.157-3.41-.705-4.791-1.736-2.802-2.025-4.162-5.534-3.757-8.672"/></g><path fill="#f29a2e" d="m6.162 16.04c3.216.896 3.662 3.258 5.04 1.601 2.153-2.589-.24-5.861-2.69-6.802-4.205-1.612-6.492 6.722-6.492 6.722s2.087-2.094 4.14-1.521"/><path fill="#ed4c5c" d="m5.04 21.968c-.744 1-2.893 3.642-2.037 4.546.703.743 3.82-1.459 3.82-1.459s-.291 3.902.732 4.107c2.029.406 2.615-6.077 4.486-6.964 1.504-.714 6.175.702 6.239-2.331.065-3.035.071-10.809-2.466-12.87-2.508-2.04-6-2.084-9.654 3.541-2.288 3.523 3.718 4.92-1.12 11.43"/><g fill="#3e4347"><ellipse cx="5.04" cy="13.527" rx=".631" ry=".324"/><path d="m7.182 12.5c0 0-.364-2.425 2.574-2.85 0 0 .899 4.152-2.574 2.85"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 33.9v-7.4c0-1.3-1.1-2.4-2.4-2.4h-3.2l2.8-1.6c1.1-.7 1.5-2.1.9-3.2l-3.7-6.4c-.7-1.1-2.1-1.5-3.2-.9l-2.8 1.6 1.6-2.8c.7-1.1.3-2.6-.9-3.2l-6.4-3.7c-1.1-.7-2.6-.3-3.2.9l-1.6 2.8v-3.2c0-1.3-1.1-2.4-2.4-2.4h-7.4c-1.3 0-2.4 1.1-2.4 2.4v3.2l-1.6-2.8c-.7-1.1-2.1-1.5-3.2-.9l-6.4 3.7c-1.1.7-1.5 2.1-.9 3.2l-6.8 12.3 20.6 11.5 12.1 20.9c.7 1.1 2.1 1.5 3.2.9l6.4-3.7c1.1-.7 1.5-2.1.9-3.2l-1.6-2.8 2.8 1.6c1.1.7 2.6.3 3.2-.9l3.7-6.4c.7-1.1.3-2.6-.9-3.2l-2.7-1.6h3.2c1.2 0 2.3-1 2.3-2.3" fill="#3e4347"/><g fill="#f4bc58"><path d="m16.4 58c-4.4-1.9-.5-5.5-4.5-5.7-4-.2-6.7-2.8-6.7-2.8 4.6-2.1 8.3 3.5 12.7-1.2-3.8 6.3.2 10.4-1.5 9.7"/><path d="m29.5 61.7c-4.5 0-5.5-1.3-7.6-.7-4.5 1.3-6.5.9-6.5.9 4.5-3.4 8.7-2.4 9.3-8.8.3 5.7 6.7 8.6 4.8 8.6"/></g><g fill="#3e4347"><path d="m40.1 31.6c0 11.1-7.7 20.2-17.1 20.2-9.4 0-31-15-15.7-31.1 5.1-5.4 2.9 5.2 17.5 5.2 9.4-.1 15.3-5.5 15.3 5.7"/><path d="m30.8 49.5c0 2.3-3.2 7.3-6 7.3-2.8 0-6-3.4-6-5.7 0-2.3 12-2.7 12-1.6"/></g><g fill="#51575c"><path d="m15.6 33.9c-2 12.3 13.4 20.6 19.8 20.6 6.4 0-.3-7.1 8.8-14.7 8.3-6.9-11.8-5.8-18.2-5.8s-9.4-6.1-10.4-.1"/><path d="m17.6 20.2c.4 3.1 2.1 5.9 4.6 7.4 2.5 1.5 5.5 1.4 8.4.5 2.9-.8 5.5-2.4 8.1-4 2.6-1.7 5-3.6 7.6-5.5-1.9 2.5-4.1 4.8-6.6 6.8-2.5 2-5.3 3.7-8.5 4.7-1.6.4-3.3.7-5 .6-1.7-.2-3.4-.7-4.8-1.7-2.9-2.2-4.2-5.7-3.8-8.8"/></g><path d="m6.2 16c3.2.9 3.7 3.3 5 1.6 2.2-2.6-.2-5.9-2.7-6.8-4.2-1.6-6.5 6.8-6.5 6.8s2.1-2.1 4.2-1.6" fill="#f29a2e"/><path d="m5 22c-.7 1-2.9 3.6-2 4.5.7.7 3.8-1.5 3.8-1.5s-.3 4 .8 4.2c2 .4 2.6-6.1 4.5-7 1.5-.7 6.2.7 6.2-2.3.1-3 .1-10.8-2.5-12.9-2.5-2-6-2.1-9.7 3.5-2.2 3.6 3.8 5-1.1 11.5" fill="#ed4c5c"/><g fill="#3e4347"><ellipse cx="5" cy="13.5" rx=".6" ry=".3"/><path d="m7.2 12.5c0 0-.4-2.4 2.6-2.9 0 0 .9 4.2-2.6 2.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f984.svg b/build/js/jsxc/lib/emojione/assets/svg/1f984.svg
index 92918a7..507937d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f984.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f984.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m19.07 36.497c0 0 4.865-4.717 5.19.416.001 0-2.63-.973-5.19-.416"/><ellipse cx="22.515" cy="37.54" rx="1.744" ry="1.834"/></g><path fill="#bd87a4" d="m27.945 19.577c3.752-11.439-11.947-15.918-11.756-13.73.299 3.42 1.28 14.211 6.287 16.02.878.316 3.831 2.724 5.469-2.29"/><path fill="#fedef0" d="m62 61.999v-18.508c-4.355-23.12-13.252-31.773-24.14-31.773-10.99 0-19.292 6.547-19.292 17.881 0 4.545 4.403 5.42 4.403 9.111 0 6.939-3.219 7.826-3.219 10.709 0 8.26 8.27 6.342 8.27 6.342s.287 2.027 2.785 2.027c8.01 0 8.1-9.514 8.1-9.514 3.762 3.738-4.291 13.725-4.291 13.725h27.383"/><path fill="#9e3838" d="m16.249 34.02c2.097-6.072 12.608-14.14 6.704-16.631-3.878-1.636-10.03 8.27-6.704 16.631"/><path fill="#ffec40" d="m62 20.647c-5.351-11.174-21.609-14.314-23.59-8.9-1.628 4.449-.152 5.221 5.739 5.941 0 0 9.224.943 11.833 1.42 2.258.342 4.356.801 6.02 1.539"/><g fill="#bd87a4"><path d="m45.555 23.16c1.659 2.141 3.03 4.5 4.108 7 1.044 2.5 1.813 5.23 1.509 8.06-.195 1.4-.771 2.795-1.749 3.863-.978 1-2.026 1.902-3.206 2.629-1.169.734-2.428 1.313-3.695 1.799-1.27.473-2.566.873-3.613 1.75.904-1.039 2.242-1.566 3.43-2.172 1.224-.566 2.4-1.197 3.475-1.975 1.063-.783 2.088-1.639 2.967-2.596.832-.949 1.305-2.162 1.459-3.424.355-2.551-.367-5.193-1.247-7.678-.917-2.5-2.106-4.916-3.438-7.264"/><path d="m28.352 47.25c-.381.457-.236.617.132.32.368-.295 2.246-1.488 3.136.699 0 0 .436.969.376-.111-.063-1.084-1.504-3.473-3.644-.908"/><path d="m30.402 49.991c-.359.496-1.428 1.121-1.925.764-.497-.355-.235-1.561.124-2.055.357-.492 1.053-.605 1.551-.248.497.356.609 1.047.25 1.539"/><path d="m34.984 49.552c-.652 2.186-2.26 4.094-4.299 5.266-1.029.574-2.167.961-3.328 1.105-1.161.15-2.335.061-3.439-.229 2.277-.146 4.43-.605 6.301-1.689.938-.525 1.801-1.186 2.594-1.934.782-.761 1.525-1.586 2.171-2.519"/></g><g fill="#3e4347"><path d="m43.47 25.765c0 0-1.953 1.912-3.908 1.912 0 0 .017-1.34-1.558-2.904 0 0 .615 1.557-.01 2.904 0 0-.209-.01-.733.057 0 0-.197-1.539-1.629-2.961 0 0 1.084 2.658-.924 3.605 0 0-.08-1.188-1.449-2.199 0 0 .9 1.803-.136 3.15-1.036 1.35-2.354 2.328-2.354 4.932 0 0 1.137-5.305 8.901-5.305 1.243 0 3.8-1.266 3.8-3.191"/><path d="m39.479 32.23c0 1.906-1.474 3.453-3.284 3.453-1.816 0-3.287-1.547-3.287-3.453 0-1.91 1.471-3.455 3.287-3.455 1.81-.001 3.284 1.544 3.284 3.455"/></g><path fill="#fbbf67" d="m54.22 10.942c-8.871-.631-24.809 8.252-24.809-.516 0-5.759 15.938-8.169 24.809.516"/><path fill="#c94747" d="m11.206 29.03c5.713-6.77 23.22-11.969 16.882-18.06-4.168-4.01-16.997 5.693-16.882 18.06"/><g fill="#ed4c5c"><path d="m13.362 15.16c8.522-2.529 26.02 2.705 24.1-5.854-1.259-5.62-17.343-4.536-24.1 5.854"/><path d="m28.07 28.29c-1.327-6.283 3.545-18.559-2.811-17.697-4.173.566-4.357 12.205 2.811 17.697"/><path d="m33.869 23.12c-1.606-5.145-12.268-11.127-5.461-13.979 4.471-1.872 10.11 6.215 5.461 13.979"/></g><g fill="#ffec40"><path d="m24.1 29.06c-1.609 1.43-3.643 1.268-4.542-.348-.905-1.623-.336-4.084 1.269-5.51 1.609-1.418 3.643-1.256 4.549.355.899 1.618.333 4.085-1.276 5.503"/><path d="m21.36 27.27c-1.449 1.281-3.28 1.135-4.093-.318-.814-1.457-.303-3.678 1.146-4.957 1.446-1.285 3.279-1.137 4.092.316.813 1.455.3 3.673-1.145 4.959"/><path d="m18.629 25.495c-1.3 1.145-2.95 1.023-3.68-.289-.73-1.307-.271-3.309 1.031-4.457 1.304-1.16 2.952-1.021 3.682.289.73 1.307.272 3.297-1.033 4.457"/><path d="m15.919 23.747c-1.173 1.033-2.656.924-3.313-.262-.658-1.178-.246-2.971.927-4.01 1.173-1.033 2.655-.918 3.313.266.659 1.172.246 2.971-.927 4.01"/><path d="m13.218 22.02c-1.053.941-2.391.826-2.982-.23-.594-1.066-.219-2.68.836-3.613 1.056-.932 2.39-.826 2.981.232.592 1.066.22 2.674-.835 3.611"/></g><g fill="#dbb471"><path d="m19.861 21.513c-.17 1.092-.711 2.17-1.586 2.951-1.091.961-2.377 1.156-3.355.668.012.02.017.047.029.074.73 1.313 2.38 1.434 3.68.289 1.156-1.021 1.644-2.697 1.232-3.982"/><path d="m17.1 20.501c-.226.789-.667 1.557-1.312 2.123-1.126 1-2.482 1.094-3.39.367.051.176.115.342.206.494.658 1.186 2.141 1.295 3.313.262.937-.828 1.379-2.143 1.183-3.246"/></g><g fill="#ffec40"><path d="m10.53 20.323c-.947.842-2.15.748-2.684-.205-.534-.957-.198-2.406.753-3.252.948-.834 2.148-.74 2.684.213.531.949.196 2.404-.753 3.244"/><path d="m6.156 19.386c-.949-.553-4.362-4.621-4.146-5.201.184-.508 5.178.236 6.124.791.948.551 1.137 2.293.786 3.24-.35.963-1.818 1.722-2.764 1.17"/></g><g fill="#dbb471"><path d="m14.275 19.14c-.153.65-.507 1.285-1.032 1.748-1.055.934-2.39.83-2.981-.23-.018-.037-.017-.076-.034-.115-.081.057-.16.096-.244.141.008.395.069.777.251 1.109.591 1.057 1.929 1.172 2.982.23.838-.745 1.222-1.899 1.058-2.883"/><path d="m9.07 16.884c-.572.951-1.797 1.742-2.78 1.412-.587-.195-1.992-1.215-3.271-2.303 1.034 1.377 2.552 3.049 3.136 3.393.946.553 2.414-.207 2.764-1.17.134-.365.191-.846.151-1.332"/><path d="m11.465 17.671c-.167.701-.547 1.379-1.114 1.889-.829.732-1.815.859-2.539.443.017.033.016.078.035.115.533.953 1.736 1.047 2.684.205.768-.676 1.107-1.754.934-2.652"/><path d="m25.779 24.872c-.285 1.182-.929 2.322-1.879 3.166-1.394 1.24-3.047 1.461-4.27.777.932 1.51 2.9 1.637 4.471.246 1.214-1.068 1.836-2.734 1.678-4.189"/><path d="m22.877 23.931c-.298.893-.814 1.734-1.543 2.379-1.363 1.209-3.01 1.34-4.121.498.021.051.034.092.055.141.813 1.453 2.644 1.6 4.093.318.97-.86 1.509-2.145 1.516-3.336"/></g><path fill="#fedef0" d="m42.697 19.608c8.204-8.85-4.192-19.414-4.936-17.346-1.161 3.232-4.791 13.449-.998 17.16.666.653 2.341 4.063 5.934.182"/><path fill="#bd87a4" d="m37.971 16.606c-1.508-3 1.064-10.426 1.49-11.461.496-1.209 6.248 4.643 3.039 12.547-.285.715-.748 1.348-1.432 1.221-.69-.139-.346-2.201.229-3.475.572-1.279-.468-.115-.922.756-.458.883-.569.107-.342-.861.229-.967-.859.859-.859 1.951 0 1.078-.185 1.352-1.203-.678"/><path fill="#c7e755" d="m62 26.544c-4.188-2.352-5.257-5.057-6.02-7.436-2.609-.477-11.833-1.42-11.833-1.42 2.918 1.27 5.412 3.215 7.53 5.482.071.063 3.809 3.24 7.129 3.537 1.022.083 2.087.04 3.192-.163"/><path fill="#42ade2" d="m51.68 23.17c7.57 8.107 10.32 20.32 10.32 20.32v-6.848c-3.592-5.396-1.279-6.711-3.191-9.936-3.321-.296-7.06-3.474-7.129-3.536"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2 2l4.4 5.9c.3-.6.7-1.2 1-1.9l-5.4-4" fill="#ff9c70"/><path d="m9.1 11.5c.7-.9 1.4-1.8 2-2.7l-3.6-2.7c-.3.6-.7 1.2-1 1.9l2.6 3.5" fill="#ffe76e"/><path d="m11.6 14.9c1.1-1.1 2.2-2.2 3.3-3.3l-3.8-2.8c-.7.9-1.4 1.8-2 2.7l2.5 3.4" fill="#d3ff75"/><path d="m14.1 18.2c1.6-1.2 3.2-2.4 4.8-3.6l-3.9-2.9c-1.1 1.1-2.2 2.2-3.3 3.3l2.4 3.2" fill="#59ffba"/><path d="m16.4 21.3c2.2-1.2 4.4-2.5 6.5-3.7l-4.1-3.1c-1.6 1.2-3.2 2.4-4.8 3.6l2.4 3.2" fill="#73deff"/><path d="m23 17.6c-2.2 1.2-4.4 2.5-6.5 3.7l3.9 5.2 4.9-4.9 1.4-1.4-3.7-2.6" fill="#8387f7"/><g fill="#ff639b"><path d="m32.3 17.8c0 0 4.2-7.1 22.2-8.8-18.3-2-23.5 4.6-23.5 4.6s.7 2.7 1.3 4.2"/><path d="m31.1 18.8c0 0 9-6.3 25.1-5.2l-14.7 7.1c0 0 8.4 1.2 19.8 1.9l-11.9 3.9c0 0 4.2 2.6 11.8 5.1l-8 1.2c0 0 6.3.4 8.7 6.2l-5.5-.4c0 0 2.5 5.9 5.5 9.3l-5.2-3c0 0 3 5.1 5.2 10.1l-5.4-1.6c2.5 5.9 4.8 8.4 4.8 8.4-13.5-4-30.2-43-30.2-43"/></g><path d="m29.4 20.4c0 0 11.9-5.4 28.7-1.6l-18.2 3.6c0 0 12.2.6 19.6 5.8h-11.7c0 0 7.3 1.7 10.6 7.1l-6.9-.7c0 0 7.5 3.2 10.5 9.6l-7.3-3.8c0 0 5.8 3.1 5 13.4l-4.2-8.8c0 0 1.6 10.7 4.8 13.2l-4.4-.1c2 2.2 3 3.9 3 3.9h-10.8l-18.7-41.6" fill="#fca9c9"/><path d="m28.2 19c0 0-.6-4.4 2.6-10.9 0 0 4.1 5.1 5.1 14.2l-7.7-3.3" fill="#b2c1c0"/><path d="m10.4 53.9c1.5 1 5-3 9-3.7 15-2.8 12.2-8.6 12.2-8.6 4.1 5.1-2.2 17.1-5.8 20.4h30.4c-.2-40-25.1-43.2-25.1-43.2-.8-7.2-7-10.8-7-10.8-1.9 4.5-1 12.5-1 12.5-3.1 5.4-18.9 20.3-20.7 22.5-1.8 2.2 3.8 8.8 3.8 8.8 1.5.2 3.4 1.5 4.2 2.1" fill="#eff6f7"/><g fill="#b2c1c0"><path d="m15.1 52c.8-.6 2.7-1.8 5.6-2.4 2-.4 3.9-1 5.7-1.8 1.8-.8 3.4-1.9 4.4-3.6.9-1.6.9-3.7.2-5.5 1.1 1.6 1.5 3.9.5 5.9-.9 2-2.8 3.3-4.7 4.1-1.9.9-3.9 1.4-6 1.7-2.4.3-4.7 1.2-5.7 1.6"/><path d="m6.2 45.8c-.5.4-1.8.6-2.2.1-.4-.5.3-1.6.8-1.9.5-.4 1.2-.3 1.6.2.4.6.3 1.3-.2 1.6"/><path d="m15.9 43.1c-.1 2.3-1.3 4.6-3.1 6.2-.9.8-2 1.5-3.1 1.9-1.1.4-2.4.6-3.6.6 2.3-.7 4.4-1.7 6-3.2.8-.7 1.5-1.6 2.2-2.5.6-.9 1.2-1.9 1.6-3"/></g><path d="m16.4 35.2c0 0 .9-.7 1.7-.5 0 0-1.1 1.1-.3 2.9 0 0 .9-2.1 2.5-2.2 0 0-1.1 1.5.3 2.9 0 0 .3-2.1 2.3-2.8 0 0-.3 1.1.7 2.5 0 0-.3-1.9 1.1-2.9 1.4-.9 3-1.5 3.7-3.8 0 0-3.4 3.5-8.1 2.5-1.1-.4-2.9-.7-3.9 1.4" fill="#3e4347"/><g fill="#b2c1c0"><path d="m25.4 21.6c-1.7-2.2-.6-8.4-.4-9.3.2-1 5.8 2.8 4.3 9.5-.1.6-.4 1.2-1 1.2-.6 0-.6-1.7-.3-2.8.3-1.1-.4 0-.6.7-.3.8-.5.2-.4-.6.1-.8-.6.8-.4 1.7.1.9 0 1.1-1.2-.4"/><path d="m5 42.1c-.5.3-.4.5 0 .3.5-.2 2.7-.7 2.9 1.6 0 0 .1 1.1.4 0 .3-1-.3-3.7-3.3-1.9"/></g><g fill="#ff639b"><path d="m23 18c0 0 2.7 11 13.5 16.6 0 0-26.6-5.8-13.5-16.6"/><path d="m31.1 18.8c0 0 6.8 18 20.8 23-13.8-13.2-10.4-20.6-21.4-25.8 0 0 0 1.3.6 2.8"/></g><path d="m31.7 41.6c0 0 6.3 4.1 1.7 20.4h-7.5c0 0 9.3-11.2 5.8-20.4" fill="#b2c1c0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f985.svg b/build/js/jsxc/lib/emojione/assets/svg/1f985.svg
new file mode 100644
index 0000000..afba6f9
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f985.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m52.4 41.1l-37.5-20.3c0 0-9.4 5.5-10 12.5 0 0 2.2-3.1 5.3-2.8-6.2 2.6-7.3 10.7-7.3 10.7 3.2-3.1 5.9-3.2 5.9-3.2-5.7 3.5-6.8 13.4-6.8 13.4 2.3-2.1 4.6-3.4 4.6-3.4-4.8 7-1.7 14-1.7 14h57.1c0 0 1.2-15.5-9.6-20.9" fill="#594640"/><path d="m37.4 25.6c0 0 4-25.6-14.6-22.6 2.9.6 2.9 3.4 2.9 3.4s-7-2.9-13.3 3.8c4.3 1 4.5 4.7 4.5 4.7s-9.2-.6-10 11.9c3.7-2.4 6.5-1.2 6.5-1.2s-6.8 6.1-2 16.7c2.9-3 3.5-3.6 3.5-3.6s-1.5 5.9 3.5 13c6.1-1.2 7.7-3.9 7.7-3.9s.9 6.6 4.9 10.4c5.8-2.7 8.3-7.3 8.3-7.3s1.1 2.9 6.1 5.6c1.9-3.9.4-9.6.4-9.6s1.8 1.9 3.6 5.8l1-1.3-13-25.8" fill="#b2c1c0"/><path d="m53.1 24.4c4.8-12.5-14.4-26.3-30.3-21.4 4.3.3 5.1 2.3 5.1 2.3s-9.2-1.8-15.5 4.9c4.8.1 7.3 2.2 7.3 2.2s-10.9.6-12.2 12.3c3.4-2.8 7.5-3.5 7.5-3.5s-8.8 8-4.1 18.7c2.9-3 6.7-5.5 6.7-5.5s-3.6 7.2 1.4 14.3c5.1.5 7.9-6.2 7.9-6.2s.7 8.8 4.7 12.6c5.8-2.7 7.3-8.2 7.3-8.2s1.4 5.5 6.4 8.2c1.9-3.9.1-10.4.1-10.4s3.3 3 5 6.8c11-14.3-4.3-15.9-1.2-23.5.1 0 3.4-2.4 3.9-3.6" fill="#e8e8e8"/><path d="m41.6 15.6c-1.2-3.9-6.5-4.4-8.7-1.5-1.4.6-5.1-1.4-5.1-1.4 1.9 3.3 3.6 3.6 4.1 3.6 0 .3-.1.6-.1.9 0 5.9 7.9 6.6 9.7 1.9.4.1 3.3.8 5.1-2.5-2.9 1.5-4.6-.4-5-1" fill="#3e4347"/><circle cx="36.9" cy="17.3" r="3" fill="#c7e755"/><circle cx="36.9" cy="17.3" r="1.5" fill="#3e4347"/><path d="m59.4 35.1c0 0-2.3-3.9-4.9-5.4-7.8-4.5-16.3-2.4-17.7-5.5 8.6-2 26.2 1.7 22.6 10.9" fill="#f2b200"/><path d="m50.6 17.3c3.6-.8 9.7 4.6 11.1 9.6 1.5 5.2-2.8 9.6-2.8 9.6s4.9-12.3-22-12.3c7.8-1.6 12.9-.5 12.9-.5s-.8-6 .8-6.4" fill="#ffce31"/><path d="m52.3 22.2c-1 1.4-.3 1.9.7.5 1-1.5.3-1.9-.7-.5" fill="#3e4347"/><g fill="#fff"><path d="m48.7 39.8c-1.3-3.4-5.7-4.8-5.7-4.8s.5 4.6-.6 7.4c-2.5-2.7-5.4-9.6-5.4-9.6s-.2 7.5-4.4 10.7c-2.9-4.7-3.8-12.2-3.8-12.2s-2.4 4.3-6.1 6.2c-1.2-2.9-1.1-6.4-.8-7.7-2.4 4.3.4 8.7.4 8.7s3.6-1.2 5.5-3.8c.4 6.7 4.1 11.1 4.1 11.1s5.3-2.5 6-7.1c1.2 3.9 4.8 7 4.8 7s2.8-3.4 1.8-8.6c2.4.7 4.4 4.1 4.4 4.1s1.8-2.9-.1-5.7c.3.9.6 3-.1 4.3"/><path d="m25.9 22.6c-.8 2.7-.7 5.1-.7 5.1s5.4.3 7.5-2.9c-2.3 1.9-6.5 1.9-6.5 1.9.6-3.6 2.2-7.3 2.2-7.3s-2.9 2.3-6.6 1.8c3.2-1.7 5-4.6 5-4.6s-3.1.6-4.9.1c.8.6 1.8.9 2.8 1-2.6 2.4-5.9 3.9-5.9 3.9s2.1 1.8 7.1 1"/><path d="m14.2 31c.1-1.2 1.2-2.6 1.9-3.1-3.2 1-3.1 4.8-3.1 4.8s2.2-1.5 4.3-2.1c-.3.6-.5 1.3-.5 2 .2-.9 1.8-2.9 1.8-2.9s-2.4-.1-4.4 1.3"/><path d="m25.7 11c-1.8-2-3.7-2.6-6.1-1.4 0 0 3-.2 6.1 1.4"/><path d="m27.5 11.3c-1-2.8-2.3-3.9-5.2-3.7.1 0 2.9.9 5.2 3.7"/><path d="m28.2 10.2c.1-1.8-.6-3.2-2.5-3.5-.1 0 1.6 1.4 2.5 3.5"/><path d="m49.4 13.5c.9 2.4.3 3.5.3 3.5s-.1-4.4-4.6-5.9c2.5 2.4 4.2 5.9 4.4 8.5 1.2-.7 2.2-3.8-.1-6.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f986.svg b/build/js/jsxc/lib/emojione/assets/svg/1f986.svg
new file mode 100644
index 0000000..ee80f71
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f986.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m25.5 13.4c0-4.4-3.3-8-7.3-8-4 0-7.3 3.6-7.3 8 0 2.4 1.7 5 2.6 7.1.8 1.8.6 8 .6 8h8.1c0 0 0-6.2.7-8 .9-2.1 2.6-4.7 2.6-7.1" fill="#83bf4f"/><path d="m55.8 40.3c-2 1.7-3.9 2.3-3.9 2.3 5-5.6 7-12.2 7-12.2-4.1 4.5-6.6 5-6.6 5 2.6-2.7 6.1-11.9 6.1-11.9s-6.3 5.4-11.6 7.9c-26 12.3-24.6-2.9-24.6-2.9h-8.1c0 6.9-7.1 13.6-2.3 24 5.9 12.6 28.9 7.3 37.3 0 10.9-9.4 11-16.9 11-16.9s-2.1 2.8-4.3 4.7" fill="#d3976e"/><path d="m16.5 17.9c0 0 0 1-1.8 2.6-1.4 1.2-2.7 2.4-4.1 2.4-2.1 0-3.4-2.3-.4-3.4 2.9-1.1 4.7-.3 6.3-1.6" fill="#f29a2e"/><path d="m11.9 15.9c-1.4 0-3.9 2.2-6.2.6-.4-.3-1.1-1.4-1.7-.7-.7.8 3.1 8.7 12.5 2 0 .1-.6-1.9-4.6-1.9" fill="#ffd93b"/><path fill="#e8e8e8" d="m14.1 26.5h8.1v2h-8.1z"/><path d="m54.6 20.6c0 0-9 7.6-22.4 9.1-15.3 1.7-11.9 20 1.9 18.5 9.8-1.1 18-11.9 18-11.9l-6.2 1.7c0 0 5.9-4.6 8.2-9.3l-8.8 3.6c0 0 4.7-2.4 9.3-11.7" fill="#89664c"/><g fill="#d3976e"><path d="m31.9 38.8c-.2-1-.8-1.7-1.6-2.2.1-.3.2-.7.1-1.1-.2-1.1-1.2-1.9-2.4-1.7-.2 0-.4.1-.5.2.9.1 1.7.8 1.8 1.7.1.4 0 .8-.1 1.2.7.4 1.2 1.1 1.3 1.9.2.9-.1 1.8-.7 2.4.5.3.9.8 1.1 1.5.2 1-.4 2-1.3 2.3.2 0 .3 0 .4 0 1.1-.2 1.9-1.3 1.7-2.4-.1-.5-.3-.9-.6-1.2.7-.6 1-1.6.8-2.6"/><path d="m37.3 37.1c-.2-1-.8-1.8-1.6-2.2.1-.3.2-.7.1-1.1-.2-1.1-1.2-1.9-2.4-1.7-.2 0-.4.1-.5.2.9.1 1.7.8 1.8 1.7.1.4 0 .9-.2 1.2.7.4 1.2 1.1 1.3 1.9.2.9-.2 1.8-.7 2.4.5.3.9.8 1 1.5.2 1-.4 2-1.3 2.3.2 0 .3 0 .4 0 1.1-.2 1.9-1.3 1.7-2.4-.1-.5-.3-.9-.6-1.1.8-.7 1.2-1.7 1-2.7"/><path d="m42.9 35.2c-.2-1-.9-1.7-1.8-2 .1-.4.1-.7 0-1.1-.3-1.1-1.4-1.7-2.5-1.4-.2 0-.4.1-.5.2.9 0 1.7.6 2 1.5.1.4.1.8 0 1.2.7.3 1.3.9 1.5 1.8.2.9 0 1.8-.5 2.4.6.2 1 .7 1.2 1.4.2 1-.2 2-1.1 2.4.2 0 .3 0 .4-.1 1.1-.3 1.7-1.4 1.5-2.5-.1-.5-.4-.8-.7-1.1.5-.7.8-1.7.5-2.7"/></g><path d="m16.1 32.2c-1.3 0-2.2.4-2.9 1-1.7 5.4-5.1 11.2-1.4 19.2 1.8 3.8 5.1 6 9.1 6.9-8.7-2.7 2.1-27.1-4.8-27.1" fill="#fed0ac"/><g fill="#83bf4f"><path d="m24 8.6c0 0 1.5 2.5 4 .8 0 0-1.3 3.2-4.9 2.1l.9-2.9"/><path d="m25.3 11.6c0 0 1.8.5 3.7-.9 0 0-1.1 2.9-3.7 3.4 0 .1-2.7-2.8 0-2.5"/><path d="m25.3 14.2c0 0 1.6.9 3.2-.5 0 0-1.2 3.1-4.4 2.5 0 0-.6-2.5 1.2-2"/><path d="m16.5 6.1c0 0-.1-1.2-1.5-2.2 0 0 1.8-.1 3.2 2.2 0 0-.5.7-1.7 0"/><path d="m19.5 6.1c0 0 .1-1.2 1.5-2.2 0 0-1.8-.1-3.2 2.2-.1 0 .5.7 1.7 0"/><path d="m17.4 6.7c0 0-.5-1.8 1.2-4.7 0 0-.4 3.6.3 5.3 0 0-.8-.1-1.5-.6"/></g><path d="m22.4 40.8c.9 4.4 5.2 8.2 11.7 7.4 9.8-1.1 18-11.9 18-11.9s-8.9 9.9-19.2 9.9c-7.7.1-9.9-3.2-10.5-5.4" fill="#594640"/><path d="m13.7 13.4c0-1.3 1-2.6 2.3-2.6 1.3 0 2.3 1.4 2.3 2.6s-1 1.8-2.3 1.8c-1.3 0-2.3-.5-2.3-1.8" fill="#3e4347"/><path d="m57.7 53.4c-2.4 0-2.7-1.4-4.3-1.4s-1.9 1.4-4.3 1.4c-2.4 0-2.7-1.4-4.3-1.4s-1.9 1.4-4.3 1.4c-2.4 0-2.7-1.4-4.3-1.4s-1.9 1.4-4.3 1.4-2.6-1.4-4.2-1.4c-1.6 0-1.9 1.4-4.3 1.4-2.4 0-2.7-1.4-4.3-1.4s-1.9 1.4-4.3 1.4-2.7-1.4-4.2-1.4-1.9 1.4-4.3 1.4c-2.4 0-4.3-1.4-4.3-1.4v10h60v-10c0 0-1.9 1.4-4.3 1.4" fill="#75d6ff"/><g fill="#42ade2"><path d="m29.6 57.9c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/><path d="m52.9 57.9c-6.8.9-11.5-4.6-18.5-1.5 5.5-.4 13.6 3.9 18.5 1.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f987.svg b/build/js/jsxc/lib/emojione/assets/svg/1f987.svg
new file mode 100644
index 0000000..77c26c9
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f987.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a8e91"><path d="m28.2 18.3c-5.6 2.5-8.3-6.3-8.3-6.3l-1.7.2c-4.3 3.4-6.5-2.5-6.5-2.5l-1.6.3c-2.8 5.2-6.3.2-6.3.2 1.7 10.2 11.4 20.3 11.4 20.3 1.7-3.9 7.3 0 11.8-2.6l1.2-9.6"/><path d="m35.8 18.3c5.6 2.5 8.3-6.3 8.3-6.3l1.7.2c4.3 3.4 6.5-2.5 6.5-2.5l1.7.4c2.8 5.2 6.3.2 6.3.2-1.7 10.2-11.4 20.3-11.4 20.3-1.7-3.9-7.3 0-11.8-2.6l-1.3-9.7"/></g><path d="m60.3 10.2c-2.4 7.2-5.9 13.1-10.9 18.1-.5-.5-1.2-.6-2.2-.6 2.4-3.8 5.3-9.8 6.7-17.6.4-1.9-1.3-2.6-1.7-.4-1.2 6.9-3.5 12.8-7 18.1-.9.1-2 .1-3 .1 1.6-4 3.2-9.3 3.6-15.7.1-1.9-1.5-2.4-1.7-.2-.4 5.7-1.5 10.9-3.5 15.8-.7-.1-1.3-.2-2-.5 1-1.9 1.8-4.2 1.9-5.3 0 0-.2.4-.8.8.2-.7.3-2 .2-3.8 0 0-.2.4-.6.8.1-.7.1-1.7-.1-3l-.7 1.2c-.4-1.4-.9-2.8-1.4-4v2.9c0 0-1.4-6.8-.5-12.4.9.4 2.2-.2 2.2-1.6 0-1.4-2.9-.6-2.9-.6s-.9 2.7-1.3 7.4c-2.2-4.9-3-4.9-5.1 0-.3-4.7-1.3-7.4-1.3-7.4s-2.9-.8-2.9.6c0 1.5 1.3 2 2.2 1.6.9 5.6-.5 12.4-.5 12.4v-2.9c-.5 1.2-1 2.6-1.4 4l-.6-1.1c-.2 1.3-.2 2.3-.1 3-.4-.5-.6-.8-.6-.8-.1 1.8 0 3 .2 3.8-.6-.4-.8-.8-.8-.8 0 1 .8 3.4 1.9 5.3-.6.2-1.3.4-2 .5-2-4.9-3.1-10.1-3.5-15.8-.2-2.2-1.8-1.8-1.7.2.4 6.4 2 11.7 3.6 15.7-1.1 0-2.1 0-3-.1-3.5-5.3-5.8-11.2-7-18.1-.4-2.2-2-1.5-1.7.4 1.4 7.8 4.4 13.8 6.7 17.6-1 0-1.7.2-2.2.6-5-4.9-8.4-10.8-10.9-18.1-.9-2.2-2.4-1.2-1.8.6 3.4 10.3 9.4 16.7 11.9 19.1 0 .9.7 1.6 1.6 2.2 0 0-2.7-3.7 6.7-2.8 1.6.1 2.9-.1 4-.6 0 .1.1.1.1.2-1.1 1.8-.8 4.6.7 7.1-6.2 3.7-4.6 11.9-4.6 11.9 5.1-1 7.2-5.4 8.1-8.9 1 .3 1.6.3 2.7 0 .9 3.5 3 7.9 8.1 8.9 0 0 1.7-8.2-4.6-11.9 1.6-2.5 1.9-5.4.7-7.1 0-.1.1-.1.1-.2 1.1.5 2.4.8 4 .6 9.4-.9 6.7 2.8 6.7 2.8.9-.5 1.6-1.3 1.6-2.2 2.6-2.4 8.5-8.8 11.9-19.1.7-1.8-.8-2.8-1.5-.7" fill="#3e4347"/><g fill="#fff"><path d="m34.9 32.6c0 0 .8-1.1-.2-2.7 0 0 .3 1.6-.4 2.4l.6.3"/><path d="m29.1 32.6c0 0-.7-1.1.2-2.7 0 0-.3 1.6.4 2.4l-.6.3"/></g><g fill="#b2c1c0"><path d="m29.5 32.6c.5-.4 1.5-1.1 2.5-1.1 1 0 2 .7 2.5 1.1.9.7 2.3.1 1.3.1-1.7 0-1.7-2.3-3.9-2.3s-2.2 2.3-3.9 2.3c-.9 0 .6.6 1.5-.1"/><path d="m33 33.5c.2-.2-.1-.9-.3-1-.1 0-.2 0-.3 0-.2.2-.2.9 0 1 .1.1.5.1.6 0"/><path d="m31 33.5c.1.1.5.1.6 0 .2-.2.2-.9 0-1-.1 0-.2 0-.3 0-.2.1-.5.8-.3 1"/></g><g fill="#fff"><path d="m34.6 34.5c-.1 1.1-1.2 1.1-1.3 0-.3-.1-.5 0-.5.4 0 .7.5 1.2 1.1 1.2s1.1-.5 1.1-1.2c0-.5-.1-.5-.4-.4"/><path d="m30.8 34.5c-.1 1.1-1.2 1.1-1.3 0-.3-.1-.5 0-.5.4 0 .7.5 1.2 1.1 1.2.6 0 1.1-.5 1.1-1.2 0-.5-.2-.5-.4-.4"/></g><g fill="#ffc7ce"><path d="m27.7 36.9c-4 3.6-3.6 8.3-3.6 8.3 3.4-1.8 4.7-5.1 5.1-6.8-.5-.4-1-.9-1.5-1.5"/><path d="m36.3 36.9c-.5.6-1 1.1-1.5 1.5.5 1.7 1.7 5 5.1 6.8 0 0 .4-4.7-3.6-8.3"/></g><path d="m28.2 23c0 .7.3.9.3.9.3-1.1 1.6-2 1.6-2-.3.6 0 1.2 0 1.2.5-.7 1.8-1.6 1.8-1.6s1.3.9 1.8 1.6c0 0 .3-.6 0-1.2 0 0 1.3.9 1.6 2 0 0 .3-.3.3-.9l1.3 1.6c-.4-1.8-1.3-2.8-2.3-3.3 0 0 .3.8.4 1.2 0 0-1.1-1.3-2.4-1.8 0 0 .3.6.4 1.3l-1-1.3-1.2 1.3c.1-.6.4-1.3.4-1.3-1.3.5-2.4 1.8-2.4 1.8.1-.4.4-1.2.4-1.2-1 .5-1.9 1.5-2.3 3.3l1.3-1.6" fill="#8a8e91"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f988.svg b/build/js/jsxc/lib/emojione/assets/svg/1f988.svg
new file mode 100644
index 0000000..c1fffcd
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f988.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M44.8,7c-16.1,4.3-20.2,18.5-20.2,18.5L41,28.9C39.6,22.3,44.8,7,44.8,7z" fill="#b2c1c0"/><path d="m28.5 21.3l13.1-1.8c0 0 .2-1.1.4-1.9-8.8.1-13.5 3.7-13.5 3.7" fill="#879191"/><path d="m53.1 9.4c0 0 3 3 3.8 5.9 4.7 3.2 5.1 7.9 5.1 11 0 10.9-17.2 21.4-17.2 21.4l-42.8-9.2c0-4.3 19.2-19 39-19 6.9 0 16 4.9 18.1 2.6 1.2-1.3-1.3-5.3-2.5-5.3 0 0 .1 2.6-1.2 4.2.5-5.9-2.3-11.6-2.3-11.6" fill="#b2c1c0"/><path d="m19.7 55.2c0 0 0-17 16.6-23.8 0 0 9.5 19.2-16.6 23.8" fill="#ff717f"/><path d="m25.5 38.3c0 0-3.5 10.1-3.6 14.5 0 0 16.5-5.1 12.5-20.6l-8.9 6.1" fill="#ed4c5c"/><path d="m29.6 35.5c0 0-3.5 6-4.1 11.5-.6 5.5 8.5-2.8 9.3-13.6l-5.2 2.1" opacity=".5" fill="#3e4347"/><path d="m15.9 48.2l3.3 2.1-.6-3.9 3 2.2-.6-4 3.5 2.6-1.2-4.9 3.8 3.2-1-5.3 3.9 3.2-1.3-5.2 3.7 2.6-1.2-4.8 3.4 3.3-1.1-5.4c0 0-8.4 5.3-17.6 14.3" fill="#fff"/><g fill="#b2c1c0"><path d="m19.2 50.3l-3.3-2.1 1.2-1.1z"/><path d="m18.5 46.4l3 2.2-2-3.8z"/><path d="m20.9 44.6l3.5 2.6-2.5-4.5z"/><path d="m23.3 42.3l3.8 3.2-2.5-4.6z"/><path d="m26 40.2l3.9 3.2-2.8-5z"/><path d="m28.6 38.2l3.7 2.6-2.7-4.2z"/><path d="m31.2 36l3.4 3.3-2.3-4.6z"/></g><g fill="#fff"><path d="m35.4 40.9l-2.2-1 1.3 3.8c.5-1.1.8-2.1.9-2.8"/><path d="m34.3 44.1l-3.2-1.3 1.4 4c.8-1 1.3-1.9 1.8-2.7"/><path d="m32.1 47.2l-3.2-1.8.9 3.9c.8-.7 1.6-1.4 2.3-2.1"/><path d="m29.4 49.6l-3.3-2.3.8 3.9c1-.5 1.8-1 2.5-1.6"/><path d="m26.6 51.5l-3.4-2.6c0 0 .5 3.2.6 4 1.1-.4 2-.9 2.8-1.4"/><path d="m24 52.9l-3.5-2.8c.2 1.6.7 4 .7 4 1-.4 1.9-.8 2.8-1.2"/></g><g fill="#b2c1c0"><path d="m35 42.4l-1.9-2.6 1.3 3.8c.3-.3.5-.8.6-1.2"/><path d="m33.3 45.6l-2.2-2.9 1.4 4c.3-.3.6-.7.8-1.1"/><path d="m30.8 48.5l-2-3.1.9 3.9c.4-.2.8-.5 1.1-.8"/><path d="m28.1 50.5l-2-3.2.8 3.9c.5-.2.9-.4 1.2-.7"/><path d="m25.1 52.4l-1.8-3.4.6 4.1c.4-.3.8-.5 1.2-.7"/><path d="m22.3 53.7l-1.7-3.6.7 4c.3-.1.6-.3 1-.4"/><path d="m15.7 48.6c0 0 23.6-15.7 21.8-18.3l-13.5 5.4-8.3 12.9"/></g><circle cx="24.7" cy="29.6" r="3.3" fill="#3e4347"/><path d="m15.9 32.1c0 0 4 .8 6-2.5 2-3.3 4.8-3.5 8.6-3.7 0 0-6.1-1.5-9.1.8-3 2.3-2.8 4.7-5.5 5.4" fill="#76807f"/><g fill="#3e4347"><path d="m44 28.6c0 0 1.4-.9 1.6-1.9.3-1.1 1.2-3.2-.1-4.4 0 0 1.8 1 1.1 3.6-.6 2.5-1.5 2.5-2.6 2.7" opacity=".5"/><path d="m45.7 29.4c0 0 1.4-.7 1.8-1.8.4-1 1.4-3.1.3-4.4 0 0 1.7 1.1.8 3.6-.9 2.6-1.8 2.5-2.9 2.6" opacity=".5"/><path d="m47.9 30.2c0 0 1.4-.8 1.7-1.8.3-1 1.4-3.1.1-4.4 0 0 1.7 1.1.9 3.6-.7 2.5-1.6 2.5-2.7 2.6" opacity=".5"/></g><path d="m51.3 38.3c0 0 3.9-.8 4.8 0l-1.5 1.5-3.3-1.5" fill="#879191"/><path d="M51.3,38.3C59.8,38.3,62,57,62,57s-8.1-11-18.4-11L51.3,38.3z" fill="#b2c1c0"/><path d="M2,38.5c0-1.1,11.9-3,20.3-0.2s10.6-12.4,14.8-11.2c4.6,1.3,1,15.6,10.4,19.4c-8.7,7.8-21.6,12.6-27.7,8.7
+ c23.9-7.9,16.9-22.4,16.9-22.4S26.6,45,15.9,48.7C12,50.1,2,42,2,38.5z" fill="#e8e8e8"/><path d="m14.9 39.5c0 0 1.6-1 3 0 .6.4-.1 1.3-1.3 1.3-1.1-.1-.7-1-1.7-1.3" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f989.svg b/build/js/jsxc/lib/emojione/assets/svg/1f989.svg
new file mode 100644
index 0000000..bde42fe
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f989.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c7e755"><ellipse cx="32" cy="33.5" rx="22.3" ry="25.9"/><path d="m52 43.5h-40l20-27.4z"/></g><g fill="#a3bf2c"><path d="m47.1 51l-3.8 4.2-3.8-4.2 3.8-4.3z"/><path d="m32 51l-3.8 4.2-3.7-4.2 3.7-4.3z"/><path d="m24.5 51l-3.8 4.2-3.8-4.2 3.8-4.3z"/><path d="m39.5 51l-3.7 4.2-3.8-4.2 3.8-4.3z"/></g><g fill="#c7e755"><path d="m43.3 46.7l-3.8 4.3-3.7-4.3 3.7-4.3z"/><path d="m50.8 46.7l-3.7 4.3-3.8-4.3 3.8-4.3z"/><path d="m28.2 46.7l-3.7 4.3-3.8-4.3 3.8-4.3z"/><path d="m20.7 46.7l-3.8 4.3-3.7-4.3 3.7-4.3z"/><path d="M35.8 46.7 32 51 28.2 46.7 32 42.4z"/></g><g fill="#a3bf2c"><path d="m47.1 42.4l-3.8 4.3-3.8-4.3 3.8-4.2z"/><path d="m32 42.4l-3.8 4.3-3.7-4.3 3.7-4.2z"/><path d="m24.5 42.4l-3.8 4.3-3.8-4.3 3.8-4.2z"/><path d="m39.5 42.4l-3.7 4.3-3.8-4.3 3.8-4.2z"/></g><g fill="#c28fef"><path d="M7,30c0,0-1.5,17,11.1,24.5c4.1,2.4-2.5-3.6-0.8-18.4L7,30z"/><path d="m57 30c0 0 1.5 17-11.1 24.5-4.1 2.4 2.5-3.6.8-18.4l10.3-6.1"/></g><g fill="#9450e0"><path d="m32 2c-7.1 7-15 .9-15 .9 4.9 8.8 15 10.4 15 10.4s10.1-1.6 15-10.4c0 0-7.9 6.1-15-.9"/><path d="M18.8,39.4C9.5,39.4,2,31.9,2,22.6S9.5,5.9,18.8,5.9s16.8,7.5,16.8,16.8S28,39.4,18.8,39.4z"/><path d="M45.2,39.4c-9.2,0-16.8-7.5-16.8-16.8S36,5.9,45.2,5.9S62,13.4,62,22.6S54.5,39.4,45.2,39.4z"/></g><circle cx="45.1" cy="22.6" r="13.1" fill="#c7e755"/><circle cx="45.1" cy="22.6" r="9.4" fill="#fff"/><circle cx="45.1" cy="22.6" r="5.6" fill="#3e4347"/><g fill="#c7e755"><path d="m32.5 9.5c0 3.1-.5 5.6-.5 5.6s-.5-2.5-.5-5.6.5-5.6.5-5.6.5 2.5.5 5.6"/><path d="m29.7 10.3c1 2.1 1.3 3.9 1.3 3.9s-1.4-1.5-2.4-3.6c-1-2.1-1.3-3.9-1.3-3.9s1.4 1.5 2.4 3.6"/><path d="m34.3 10.3c-1 2.1-1.3 3.9-1.3 3.9s1.4-1.5 2.4-3.6c1-2.1 1.3-3.9 1.3-3.9s-1.4 1.5-2.4 3.6"/><circle cx="18.9" cy="22.6" r="13.1"/></g><circle cx="18.9" cy="22.6" r="9.4" fill="#fff"/><circle cx="18.9" cy="22.6" r="5.6" fill="#3e4347"/><path d="m28.2 31.1c0 3.2 1.5 6.1 3.8 8 2.3-1.9 3.8-4.8 3.8-8s-1.5-6.1-3.8-8c-2.3 1.9-3.8 4.7-3.8 8" fill="#ffce31"/><g fill="#f2b200"><path d="m32 23.1v16c2.3-1.9 3.8-4.8 3.8-8s-1.5-6.1-3.8-8"/><path d="m18.8 54.9c0 2.5-2 6.1-2 6.1s-2-3.7-2-6.1c0-2.5 4-2.5 4 0"/><path d="m25.4 54.9c0 2.5-2 6.1-2 6.1s-2-3.7-2-6.1c0-2.5 4-2.5 4 0"/><path d="m22.1 54.3c0 3.1-2 7.7-2 7.7s-2-4.6-2-7.7 4-3.1 4 0"/><path d="m42.6 54.9c0 2.5-2 6.1-2 6.1s-2-3.7-2-6.1c0-2.5 4-2.5 4 0"/><path d="m49.2 54.9c0 2.5-2 6.1-2 6.1s-2-3.7-2-6.1c0-2.5 4-2.5 4 0"/><path d="m45.9 54.3c0 3.1-2 7.7-2 7.7s-2-4.6-2-7.7 4-3.1 4 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f98a.svg b/build/js/jsxc/lib/emojione/assets/svg/1f98a.svg
new file mode 100644
index 0000000..28f9072
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f98a.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55.9 32.1l-22.7-14.9c0 0 12.9-17.4 19.4-14.9 3.1 1.1 5.4 25.1 3.3 29.8" fill="#3e4347"/><path d="m54.9 33.9l-9-4.1c0 0-5.3-14 6.1-24.1 2.4 2 5.1 25 2.9 28.2" fill="#fff"/><path d="m8.1 32.1l22.6-14.9c0 0-12.9-17.4-19.4-14.9-3 1.1-5.3 25.1-3.2 29.8" fill="#3e4347"/><path d="m9.1 33.9l9-4.1c0 0 5.3-14-6.1-24.1-2.4 2-5.1 25-2.9 28.2" fill="#fff"/><path d="M32,13C18.9,13,2,33.6,2,45.4C20.5,45.4,19.7,62,32,62s11.5-16.6,30-16.6C62,33.6,45.1,13,32,13z" fill="#ff8736"/><g fill="#fff"><path d="M32,56.2c0,5.1,9.6,4.2,9.5-2.9c6.7-9.4,19.9-8.7,19.9-8.7C39.6,32.4,32,56.2,32,56.2z"/><path d="M32,56.2c0,5.1-9.6,4.2-9.5-2.9C15.8,44,2.6,44.7,2.6,44.7C24.4,32.4,32,56.2,32,56.2z"/></g><g fill="#ff8736"><path d="m53.4 18.5c-4 .7-4.9 6.3-4.9 6.3l6 5.3c-2.3-5.9-1.1-11.6-1.1-11.6"/><path d="m51.1 13.5c-4.4 3.9-5.1 8.7-5.1 8.7l6 5.3c-2.4-5.8-.9-14-.9-14"/><path d="m10.6 18.5c4 .7 4.9 6.3 4.9 6.3l-6 5.3c2.3-5.9 1.1-11.6 1.1-11.6"/><path d="m12.9 13.5c4.4 3.9 5.1 8.7 5.1 8.7l-6 5.3c2.4-5.8.9-14 .9-14"/></g><path d="m52.8 31.1c-5.7-1.8-10.9-3.4-13.8.9-2.4 3.7.7 9.4.7 9.4 11.2 1.2 13.1-10.3 13.1-10.3" fill="#3e4347"/><ellipse cx="43" cy="36.3" rx="4.2" ry="4.1" fill="#d5ff83"/><g fill="#3e4347"><ellipse cx="43" cy="36.3" rx="2.7" ry="2.7"/><path d="m11.2 31.1c5.7-1.8 10.9-3.4 13.7.9 2.4 3.7-.7 9.4-.7 9.4-11.1 1.2-13-10.3-13-10.3"/></g><ellipse cx="21" cy="36.3" rx="4.2" ry="4.1" fill="#d5ff83"/><g fill="#3e4347"><ellipse cx="21" cy="36.3" rx="2.7" ry="2.7"/><path d="m41.2 47.9c-.7-2.3-1.8-4.4-3-6.5 1.1 2.1 2 4.3 2.5 6.6.5 2.3.7 4.7 0 6.8-.4 1-1 2-1.8 2.6-.8.6-1.8 1-2.7 1-.9 0-1.9-.3-2.5-1-.6-.7-.9-1.6-.8-2.6l-.9.2h-.9c0 1-.2 1.9-.8 2.6-.6.7-1.5 1-2.5 1-.9 0-1.9-.4-2.7-1-.8-.6-1.4-1.6-1.8-2.6-.8-2.1-.6-4.6 0-6.8.5-2.3 1.5-4.5 2.5-6.6-1.2 2-2.3 4.1-3 6.5-.7 2.3-1.1 4.8-.4 7.3.3 1.2 1 2.4 1.9 3.3.9.9 2.1 1.4 3.4 1.5 1.2.1 2.6-.2 3.7-1.2.3-.2.5-.5.7-.8.2.3.4.6.7.8 1 1 2.4 1.3 3.7 1.2 1.3-.1 2.4-.7 3.4-1.5.9-.9 1.6-2 1.9-3.3.5-2.6.1-5.2-.6-7.5"/><path d="m37.6 50.3c-1.1-1.1-4.5-1.2-5.6-1.2-1 0-4.5.1-5.6 1.2-.8.8-.2 2.8 1.9 4.5 1.3 1.1 2.6 1.4 3.6 1.4 1 0 2.3-.3 3.6-1.4 2.3-1.7 2.9-3.7 2.1-4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f98b.svg b/build/js/jsxc/lib/emojione/assets/svg/1f98b.svg
new file mode 100644
index 0000000..794e94d
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f98b.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m33.6 40.8c0 0 1.5-4.2 14.2 3.1 12.7 7.3 4 9.2.9 14-3.2 5-16.7 9.2-16.7-11.7v-5.5h1.6z" fill="#e84d88"/><g fill="#9450e0"><path d="m56.6 10.3c9.5 0 4.3 10.8 1 18-3.4 7.2 1.6 12.8-1.5 15.5-4.4 3.9-15-6.2-22.2-3.6v-16.3c0 0 9.8-13.6 22.7-13.6"/><path d="m7.4 10.3c-9.5 0-4.3 10.8-1 18 3.4 7.2-1.6 12.8 1.5 15.5 4.4 3.9 15-6.2 22.2-3.6v-16.3c0 0-9.8-13.6-22.7-13.6"/></g><path d="m30.4 40.8c0 0-1.5-4.2-14.2 3.1-12.7 7.3-4 9.2-.9 14 3.2 5 16.7 9.2 16.7-11.7v-5.5h-1.6z" fill="#e84d88"/><g fill="#ffce31"><path d="m32 27.5c0 0-10.6-13.8-18.2-13.8-7.4 0 5.2 6 1.7 9.4-3.9 3.8-.5 5.5 1.7 7.7 2.8 2.7-10.3 12.7 8.5 7 4.3-1.3 3.7.6 6.3.6v-10.9"/><path d="m32 27.5c0 0 10.6-13.8 18.2-13.8 7.4 0-5.2 6-1.7 9.4 3.9 3.8.5 5.5-1.7 7.7-2.8 2.7 10.3 12.7-8.5 7-4.3-1.3-3.7.6-6.3.6v-10.9"/></g><path d="m8.9 15.9c0 .7-.7 1.2-1.4 1.2-.8 0-1.3-.6-1.3-1.3 0-.7.7-1.2 1.4-1.2.8 0 1.4.6 1.3 1.3" fill="#6adbc6"/><path d="m13 20.7c-.1 1-1 1.8-2.1 1.7-1.1-.1-1.9-.9-1.9-1.9.1-1 1-1.8 2.1-1.7 1.1.1 2 .9 1.9 1.9" fill="#ffce31"/><path d="m11.6 26.1c0 .6-.6 1.1-1.3 1.1-.7 0-1.2-.6-1.2-1.2 0-.6.6-1.1 1.3-1.1.7 0 1.3.6 1.2 1.2" fill="#6adbc6"/><path d="m14.7 31.3c0 1.2-.9 2.1-2.2 2.2-1.3 0-2.3-.9-2.4-2 0-1.2.9-2.1 2.2-2.2 1.3 0 2.3.9 2.4 2" fill="#ffce31"/><g fill="#6adbc6"><path d="m13.4 37.4c0 .7-.6 1.3-1.3 1.3-.8 0-1.4-.5-1.4-1.2 0-.7.6-1.3 1.3-1.3.7 0 1.4.5 1.4 1.2"/><path d="m55.1 15.9c0 .7.7 1.2 1.4 1.2.8 0 1.3-.6 1.3-1.3 0-.7-.7-1.2-1.4-1.2-.8 0-1.4.6-1.3 1.3"/></g><path d="m51 20.7c.1 1 1 1.8 2.1 1.7 1.1-.1 1.9-.9 1.9-1.9-.1-1-1-1.8-2.1-1.7-1.1.1-2 .9-1.9 1.9" fill="#ffce31"/><path d="m52.4 26.1c0 .6.6 1.1 1.3 1.1.7 0 1.2-.6 1.2-1.2 0-.6-.6-1.1-1.3-1.1-.7 0-1.3.6-1.2 1.2" fill="#6adbc6"/><path d="m49.3 31.3c0 1.2.9 2.1 2.2 2.2 1.3 0 2.3-.9 2.4-2 0-1.2-.9-2.1-2.2-2.2-1.3 0-2.3.9-2.4 2" fill="#ffce31"/><path d="m50.6 37.4c0 .7.6 1.3 1.3 1.3.8 0 1.4-.5 1.4-1.2 0-.7-.6-1.3-1.3-1.3-.7 0-1.4.5-1.4 1.2" fill="#6adbc6"/><g fill="#e84d88"><path d="m32.6 29.1c0 0-7.4-7.4-14.9-7.4 0 0 8 .7 14.9 9.1v-1.7"/><path d="m33 32.2c0 0-9.8-.7-15.7 4.5 0 0 6.8-5.1 16.6-3.2l-.9-1.3"/><path d="m33.1 30.6c0 0-9.1-4.3-16.1-1.7 0 0 7.8-2.2 16.6 3.2l-.5-1.5"/><path d="m31.4 29.1c0 0 7.4-7.4 14.9-7.4 0 0-8 .7-14.9 9.1v-1.7"/><path d="m31 32.2c0 0 9.8-.7 15.7 4.5 0 0-6.8-5.1-16.6-3.2l.9-1.3"/><path d="m30.9 30.6c0 0 9.1-4.3 16.1-1.7 0 0-7.8-2.2-16.6 3.2l.5-1.5"/></g><g fill="#ffce31"><path d="m30.4 39.6c0 0-14.5 3.7-14.5 8.6 0 4.6 4 3.2 5 6.3.9 3.1 11.1 7.4 11.1-13.7l-1.6-1.2"/><ellipse cx="13.4" cy="50.8" rx="1.1" ry=".9"/></g><ellipse cx="17.3" cy="55.1" rx="2.2" ry="1.9" fill="#6adbc6"/><g fill="#ffce31"><ellipse cx="21.7" cy="59.1" rx="1.4" ry="1.2"/><path d="m33.6 39.6c0 0 14.5 3.7 14.5 8.6 0 4.6-4 3.2-5 6.3-.9 3.1-11.1 7.4-11.1-13.7l1.6-1.2"/><ellipse cx="50.6" cy="50.8" rx="1.1" ry=".9"/></g><ellipse cx="46.7" cy="55.1" rx="2.2" ry="1.9" fill="#6adbc6"/><ellipse cx="42.3" cy="59.1" rx="1.4" ry="1.2" fill="#ffce31"/><g fill="#e84d88"><path d="m33.4 41.3c-4.1 1.1-10.9 3.5-15 7.6 0 0 5.3-4.7 15-6.8v-.8"/><path d="m33.4 43.8c-3.4 2.2-7.5 5.6-9.4 9.6 0 0 2.7-4.6 9.4-8.8v-.8"/><path d="m30.6 41.3c4.1 1.1 10.9 3.5 15 7.6 0 0-5.3-4.7-15-6.8 0 0 0-.8 0-.8"/><path d="m30.6 43.8c3.4 2.2 7.5 5.6 9.4 9.6 0 0-2.7-4.6-9.4-8.8 0 0 0-.8 0-.8"/></g><g fill="#594640"><path d="m35.8 36.1c0 7.1-1.7 12.9-3.8 12.9s-3.8-5.8-3.8-12.9c0-7.1 0-12.9 3.8-12.9s3.8 5.8 3.8 12.9"/><path d="m35.8 23.7c0 2.3-1.7.6-3.8.6s-3.8 1.7-3.8-.6c0-2.3 1.7-4 3.8-4s3.8 1.7 3.8 4"/><path d="m31.9 21c-.5-1-1-2.3-1.5-3.8-.1-.4-.2-.7-.3-1.1-.1-.4-.1-.8-.2-1.2 0-.4-.1-.8 0-1.2 0-.4.1-.9.1-1.3.3-1.9.7-3.9.6-6-.1-1.1-.3-2.3-1.2-3.1-.4-.4-.9-.7-1.5-.9-.5-.3-1.1-.4-1.6-.4-1.1 0-2.1.1-3 .5-.9.4-1.8 1.1-2.1 1.9-.9 1.8-.3 3.6.6 4.6.5.5 1.1.8 1.7.8.6 0 1-.1 1.4-.3.4-.2.6-.4.7-.5s.2-.2.2-.2-.1.1-.3.2-.4.3-.8.4c-.3.2-.8.3-1.3.2-.4 0-1-.2-1.4-.7-.8-1-1.2-2.7-.4-4.2.4-.7 1.1-1.2 1.9-1.6.8-.3 1.8-.4 2.7-.3.9.1 1.9.4 2.4 1.1.6.6.8 1.5.8 2.5 0 1.9-.5 3.9-.9 5.7-.1.5-.2 1-.2 1.5-.1.5 0 1 0 1.5 0 .5.1.9.2 1.4.1.4.2.9.3 1.3.4 1.6 1 3 1.4 4 .3.7.9 1 1.4.8.4-.2.5-.9.3-1.6"/><path d="m32.1 21c.5-1 1-2.3 1.5-3.8.1-.4.2-.7.3-1.1.1-.4.1-.8.2-1.2 0-.4.1-.8 0-1.2 0-.4-.1-.9-.1-1.3-.3-1.9-.7-3.9-.6-6 .1-1.1.3-2.3 1.2-3.1.4-.4.9-.7 1.5-.9.5-.3 1.1-.4 1.6-.4 1.1 0 2.1.1 3 .5.9.4 1.8 1.1 2.1 1.9.9 1.8.3 3.6-.6 4.6-.5.5-1.1.8-1.7.8-.6 0-1-.1-1.4-.3-.4-.2-.6-.4-.7-.5s-.2-.2-.2-.2.1.1.3.2.4.3.8.4c.3.2.8.3 1.3.2.4 0 1-.2 1.4-.7.8-1 1.2-2.7.4-4.2-.4-.7-1.1-1.2-1.9-1.6-.8-.3-1.8-.4-2.7-.3-.9.1-1.9.4-2.4 1.1-.6.6-.8 1.5-.8 2.5 0 1.9.5 3.9.8 5.7.1.5.2 1 .2 1.5.1.5 0 1 0 1.5 0 .5-.1.9-.2 1.4-.1.4-.2.9-.3 1.3-.4 1.6-1 3-1.4 4-.3.7-.9 1-1.4.8-.3-.2-.4-.9-.2-1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f98c.svg b/build/js/jsxc/lib/emojione/assets/svg/1f98c.svg
new file mode 100644
index 0000000..a70a641
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f98c.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#594640"><path d="m21.9 21.9c-.6-1.6-1.1-3-1.4-4.2 10.1-5.4 6.9-10.4 4.5-6.7-1.6 2.6-4 3.8-5 4.2-.4-3.3.3-5.5.6-7.9.6-3.9-3.1-5.8-3.6-4.3-.8 2.3 2.5.9 1.5 6.4-.8 4.2-.1 7.8.6 10-1.5-1.2-3.1-2.4-4.9-3.6-1.2-2.3-2.7-7 .7-12.2 1-1.6-.3-1.7-.8-1.6-1.7.5-4.2 6.6-2.8 11.9-7-5-4.5-11.9-6.2-11.9-2.1 0-1 7.7 2 11.5 1 1.2 2.9 2.6 5.1 4-1.8.8-5.1 1.4-8.4-1.5-.4-.2-1.8-.9-1.8.9 0 1.8 5.9 6.6 12.5 2.3 2.8 1.9 5.6 4 6.8 6.2l5.8 5.2c-.6-3.2-2.5-6-5.2-8.7"/><path d="m42.1 21.9c.7-1.6 1.1-3 1.4-4.2-10.1-5.4-6.9-10.4-4.5-6.7 1.6 2.6 4 3.8 5 4.2.4-3.3-.3-5.5-.6-7.9-.6-3.9 3.1-5.8 3.6-4.3.8 2.3-2.5.9-1.5 6.4.8 4.2.1 7.8-.6 10 1.5-1.2 3.1-2.4 4.9-3.6 1.2-2.3 2.7-7-.7-12.2-1-1.6.3-1.7.8-1.6 1.7.5 4.2 6.6 2.8 11.9 7-5 4.5-11.9 6.2-11.9 2.1 0 1 7.7-2 11.5-1 1.2-2.9 2.6-5.1 4 1.8.8 5.1 1.4 8.4-1.5.4-.3 1.8-1.1 1.8.7 0 1.8-5.9 6.6-12.5 2.3-2.8 1.9-5.6 4-6.8 6.2l-5.8 5.2c.6-3 2.5-5.8 5.2-8.5"/></g><path d="m42.7 39.4c-2.5-4.5.5-7.3-1.4-8.6-3.2-2.2-6.4-2.3-9.3-2.3-2.9 0-6.1.1-9.3 2.3-1.9 1.2 1.1 4.1-1.4 8.6s-.2 8.4 2.8 11.1c3 2.6.2 8.4 4.4 10.6 1 .5 2.2 1 3.5 1 1.3 0 2.5-.5 3.5-1 4.2-2.2 1.4-7.9 4.4-10.6 3.1-2.7 5.4-6.6 2.8-11.1" fill="#d3976e"/><g opacity=".5"><path d="m41.7 35.9c.1 1 .3 2.2 1.1 3.5 2.5 4.5.2 8.4-2.8 11.1-1.3 1.1-1.5 2.7-1.7 4.4 0-2.4.2-6.7 1.9-11.1 1.4-3.9 1.5-5.8 1.5-7.9" fill="#89664c"/></g><g opacity=".5"><path d="m22.3 35.9c-.1 1-.3 2.2-1.1 3.5-2.5 4.5-.2 8.4 2.8 11.1 1.3 1.1 1.5 2.7 1.7 4.4 0-2.4-.2-6.7-1.9-11.1-1.4-3.9-1.5-5.8-1.5-7.9" fill="#89664c"/></g><path d="m27.5 35.7c0 0 0-15.3-14.5-15.3-.1 0 0 15.3 14.5 15.3" fill="#d3976e"/><path d="m15.4 22.6c0 0 5.5 0 9.6 7.6 0 0-3.3-1.8-2.8-1 .5.8 2.9 2.6.4 1.7-2.4-.9-.8.7 0 1.5.8.7-7.2-1.5-7.2-9.8" fill="#89664c"/><path d="m36.5 35.7c0 0 0-15.3 14.5-15.3.1 0 0 15.3-14.5 15.3" fill="#d3976e"/><g fill="#89664c"><path d="m48.6 22.6c0 0-5.5 0-9.6 7.6 0 0 3.3-1.8 2.8-1-.5.8-2.9 2.6-.4 1.7 2.4-.9.8.7 0 1.5-.8.7 7.2-1.5 7.2-9.8"/><path d="m35.7 59.2c.1.3-1.5 1.8-3.7 1.8-2.3 0-3.9-1.6-3.7-1.8.1-.3 1.7.6 3.7.6 2 .1 3.6-.9 3.7-.6"/><path d="m31.5 58.2h.9v1.9h-.9z"/></g><path d="m32 53.9c-2 0-4.5.3-4.5 1.4s1.8 3.6 4.5 3.6c2.7 0 4.5-2.5 4.5-3.6s-2.5-1.4-4.5-1.4" fill="#594640"/><ellipse cx="32" cy="55.4" rx="3.3" ry=".9" fill="#fff"/><g fill="#3e4347"><ellipse transform="matrix(.9848-.1737.1737.9848-6.9915 4.7359)" cx="23.6" cy="42.3" rx="1.7" ry="2.4"/><ellipse transform="matrix(.1737-.9848.9848.1737-8.2527 74.7834)" cx="40.4" cy="42.3" rx="2.4" ry="1.7"/></g><g fill="#89664c"><path d="m23.6 37c-.1.2 1.8 1.5 2.5 4 .8 2.4-.1 4.6.1 4.7.2.2 1.5-2.1.7-4.9-.8-2.8-3.2-4-3.3-3.8"/><path d="m40.4 37c.1.2-1.8 1.5-2.5 4-.8 2.4.1 4.6-.1 4.7-.2.2-1.5-2.1-.7-4.9.8-2.8 3.2-4 3.3-3.8"/><path d="m28.3 28.7c-1.8 1.8-2.9 3.7-.6 8.3 2.6 5.2 1.7 14.7 4.3 14.7 2.7 0 1.8-9.5 4.3-14.7 2.3-4.6 1.2-6.5-.6-8.3-1.3-.2-2.5-.2-3.7-.2-1.2 0-2.4.1-3.7.2" opacity=".5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f98d.svg b/build/js/jsxc/lib/emojione/assets/svg/1f98d.svg
new file mode 100644
index 0000000..2c27214
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f98d.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M51.8,16.1C49.5,6.2,39.6,2,32,2S14.5,6.2,12.2,16.1S-3,30.8,4.1,40.5C9.2,47.5,24.5,62,32,62
+ s22.8-14.5,27.9-21.5C67,30.8,54.1,26,51.8,16.1z" fill="#3e4347"/><g fill="#94989b"><path d="m51.5 25c-7-4.7-14.6 1-19.5 1s-12.5-5.7-19.5-1c-7 4.7 1.1 14.8 9 12 10.5-3.8 2.2 4.3.9 7.5-1.2 3.2-2.4 12.5 9.6 12.5s10.8-9.3 9.6-12.5c-1.3-3.2-9.6-10.5.9-7.5 8.3 2.4 16-7.3 9-12"/><path d="m47.8 18.5c-4.7-1.8-9.6 1.6-15.8 1.6-6.2 0-11.2-3.4-15.8-1.6-5.2 2 0 0 5.4 1.6 5.4 1.7 7.7 1.9 10.4 1.9s5-.2 10.4-1.8c5.4-1.7 10.7.3 5.4-1.7" opacity=".5"/><path d="m42.6 15.9c-3.1-1.3-6.4 1.2-10.6 1.2-4.1 0-7.4-2.5-10.6-1.2-3.5 1.5 0 0 3.6 1.2s5.1 1.4 7 1.4c1.8 0 3.3-.1 7-1.4 3.6-1.2 7 .3 3.6-1.2" opacity=".5"/><path d="m29 34.2c-2.4-1.1-1.5 2.6-6.2 4.2-4.6 1.7-2.8 5.6.5 5.6 2.9 0 5.2.1 6.9-2.4 1.8-2.4 1.3-6.3-1.2-7.4"/><path d="m41.2 38.4c-4.6-1.6-3.7-5.4-6.2-4.2-2.4 1.1-3 5-1.2 7.4 1.8 2.4 4 2.4 6.9 2.4 3.3 0 5.1-3.9.5-5.6"/></g><g fill="#3e4347"><path d="m28.5 37.4c.1 1.6.7 5-2.6 5.1-2.9.1-3.7-2.9-.2-3 2.3 0 2.8-2.1 2.8-2.1"/><path d="m35.5 37.4c-.1 1.6-.7 5 2.6 5.1 2.9.1 3.7-2.9.2-3-2.3 0-2.8-2.1-2.8-2.1"/><ellipse cx="32" cy="49" rx="8.6" ry=".5"/></g><path d="m23 34.2c3.3 0 6-2.6 6-5.8h-12c0 3.2 2.7 5.8 6 5.8" fill="#c7e755"/><path d="m23 31.7c1.7 0 3-1.3 3-2.9h-6c0 1.6 1.3 2.9 3 2.9" fill="#89664c"/><path d="m47 28.4c0 3.2-2.7 5.8-6 5.8-3.3 0-6-2.6-6-5.8h12" fill="#c7e755"/><path d="m44 28.8c0 1.6-1.3 2.9-3 2.9s-3-1.3-3-2.9h6" fill="#89664c"/><g fill="#3e4347"><path d="m51.5 28.6c0 .4-8.7.8-19.5.8s-19.5-.4-19.5-.8c0-.4 8.7-.7 19.5-.7s19.5.3 19.5.7"/><path d="m2 35c0 0 0 6.2 4.3 11.7l.9-2c0 0 .1 3 2.7 6.5l.8-3c0 0 .1 4.6 4.1 8.9 0 0 .3-3 .8-4.1 0 0 2.2 4.8 7.5 8 0 0-1.4-2.6 1.7-4.6-.1 0-14.7-21.4-22.8-21.4"/><path d="m62 35c0 0 0 6.2-4.2 11.7l-.9-2c0 0-.1 3-2.7 6.5l-.8-3c0 0-.1 4.6-4.1 8.9 0 0-.3-3-.8-4.1 0 0-2.2 4.8-7.5 8 0 0 1.4-2.6-1.7-4.6 0 0 14.6-21.4 22.7-21.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f98e.svg b/build/js/jsxc/lib/emojione/assets/svg/1f98e.svg
new file mode 100644
index 0000000..4f15955
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f98e.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58.8 25.5c-.6 0-2.7 1-3.5 1.1-1.6.1-2.4-.6-1.8-1.8.3-.5 2-2 2.2-2.5.7-1.3-1.5-2.2-2.1-1-.3.5-.4 2.7-.6 3.2-.5 1-1.8 1.1-2.3.4-.4-.6-1-2.8-1.4-3.3-.9-1.2-2.8.1-1.9 1.2.3.5 2.5 1.8 2.7 3-2.6-.5-4.1-3-4.9-4.8.5-.7.9-1.4 1.4-2.1 1.8 1 4 .7 5.5-.9 1.7-2.1 12.3-11.6 9.6-15.1-2.8-3.5-14.6 4.8-17 6.1-2 1.1-2.7 3.3-1.9 5.3-1.6.9-3.8 1.8-6.7 2.6-1.8-.1-6.2-.8-3.4-5.1.8.8 1.1 3.1 1.4 3.6.7 1.4 2.7.2 2-1.2-.3-.5-2-2-2.4-2.6-.4-.7.3-1.9 1.4-1.9.6 0 2.6.8 3.2.8 1.4 0 1.5-2.3.1-2.3-.6 0-2.7.9-3.3.9-1.3.1-1.6-1-.8-2.3.4-.6 2.3-2.1 2.6-2.6.9-1.4-1-2.5-1.9-1.1-.3.5-.8 2.8-1.2 3.5-.8 1.3-1.9 1.6-2.5.4-.3-.5-.5-2.7-.7-3.2-.7-1.3-2.7-.1-2 1.1.3.5 1.9 1.9 2.2 2.4.5.9-.2 2.1-1.1 2.1-.7 0-2.9-.8-3.5-.8-1.4 0-1.5 2.3-.1 2.3.5 0 2.7-.8 3.8-.5-.9 1.2-4.3 6.1.2 8.8-4.9 2.3-11.3 6.2-16.6 11.8-1.6.4-4.1.4-3.8-3.9 1.1.2 2.6 2.1 3.1 2.4 1.3.8 2.5-1.2 1.1-2-.5-.3-2.7-.7-3.4-1.1-.7-.4-.7-1.8.3-2.4.5-.3 2.7-.6 3.2-.9 1.2-.7.2-2.8-1.1-2-.5.3-1.9 2.1-2.4 2.4-1.1.7-1.9 0-1.9-1.6 0-.8.9-3 .9-3.6 0-1.7-2.2-1.7-2.2 0 0 .6.8 2.8.8 3.6 0 1.6-.9 2.3-2 1.6-.5-.3-1.8-2.1-2.3-2.4-1.2-.8-2.4 1.2-1.2 2 .5.3 2.6.7 3.2 1 .9.6.9 1.9.2 2.4-.6.4-2.9.7-3.4 1-1.2.7-.2 2.8 1.1 2 .4-.3 1.8-2 2.9-2.4-.2 1.5-.5 6.7 3.9 7.4-4.1 5.3-8.8 19.7 7.8 25.8 16.2 6 37.3-4.2 41.4-23.5 0 0-9 24-31.1 19.3-6.7-1.4-15.4-5.8-7.2-12.2 1.1-.8 2.2-1.6 3.5-2.4 1 4.4 5.7 4.9 8.1 4.9-.1 1.2-2.1 2.6-2.4 3.1-.8 1.3 1.2 2.5 2 1.1.3-.5.7-2.7 1.1-3.4.4-.7 1.8-.7 2.4.3.3.5.6 2.7.9 3.2.7 1.2 2.8.2 2-1.1-.3-.5-2.1-1.9-2.4-2.4-.7-1.1 0-1.9 1.6-1.9.8 0 3 .9 3.6.9 1.7 0 1.7-2.2 0-2.2-.6 0-2.8.8-3.6.8-1.6 0-2.3-.9-1.6-2 .3-.5 2.1-1.8 2.4-2.3.8-1.2-1.2-2.4-2-1.2-.3.5-.7 2.6-.9 3.2-.6.9-1.9.9-2.4.2-.4-.6-.7-2.9-1-3.4-.7-1.2-2.8-.2-2 1.1.3.5 2.2 2 2.4 3.2-2.2-.3-3.3-1.5-3.8-3-.1-.5-.1-1.2.5-2.1 1.4-.8 2.6-1.6 3.6-2.4 4.9-3.9 7.5-7.6 9.5-10.9 1.3 3.7 5.4 3.6 7.7 3.2.1 1.2-1.9 2.9-2.1 3.4-.7 1.4 1.4 2.4 2.1.9.3-.5.4-2.8.7-3.4.4-.7 1.7-.8 2.4 0 .3.5.9 2.6 1.2 3.1.8 1.2 2.8-.1 1.9-1.2-.3-.5-2.3-1.7-2.6-2.1-.8-1-.2-1.9 1.4-2 .8 0 3 .6 3.7.6 1.3-.2 1.1-2.3-.5-2.2" fill="#83bf4f"/><path d="m50.4 9.5c-1.2 1-3.1.8-4.1-.4-1-1.2-.8-3 .4-4 1.2-1 3.1-.8 4.1.4 1.1 1.2.9 3-.4 4" fill="#e8e8e8"/><path d="m49.5 7.2c-.6.5-1.5.4-2-.2-.5-.6-.4-1.5.2-2 .6-.5 1.5-.4 2 .2.5.6.4 1.5-.2 2" fill="#3e4347"/><path d="m56.3 16.6c-1.2 1-3.1.8-4.1-.4-1-1.2-.8-3 .4-4 1.2-1 3.1-.8 4.1.4 1 1.2.8 3-.4 4" fill="#e8e8e8"/><path d="m53.4 14.5c.6-.5 1.5-.4 2 .2.5.6.4 1.5-.2 2-.6.5-1.5.4-2-.2s-.4-1.4.2-2" fill="#3e4347"/><path d="m39.2 56c-1.2.3-2.4.4-3.7.5-2 2-1.8 2.6 1.8 4 1.3-.4 2.5-.9 3.8-1.4-2.3-1-2.5-.9-1.9-3.1" fill="#c7e755"/><path d="m29.2 56.1c-.3 0-2.5-.6-3.4-.9-3.3 2.5.4 4.1 1.1 6.7 0 0 1.6.3 4.9-.2-.9-3.1-4.7-3-2.6-5.6" fill="#6adbc6"/><path d="m21.4 53.3c-1.3-.8-2.4-1.7-3-2.7-2.9 4.1-5.6-.8-4.2 7.8 1.7 1.3 4.5 2 4.5 2-1.7-6-2.4-4.3 2.7-7.1" fill="#c7e755"/><path d="m18.1 49.9c-.4-1.2-.2-2.5.9-4-6.7-10.3-9.4-.2-12.5-1.5-.1 1.5-.1 3 .3 4.5 6.7-.7 2.6-6.8 11.3 1" fill="#6adbc6"/><path d="m22 43.3c1.2-.9 2.6-1.7 3.9-2.6-10.2-6.8 5.5-8-12.4-9.9-1 1.1-2 2.2-3 3.5 13 3.2 1.5 2.7 11.5 9" fill="#c7e755"/><path d="m20.6 24.6c13.4 1.5-.2 4.5 9.9 13.3 2.3-1.2 3.9-2.8 3.9-2.8-7.3-6.5 9.5-9.4-10-13-1.8.9-3.8 2.5-3.8 2.5" fill="#6adbc6"/><path d="m31.7 18.3c11.5 4.4 4.2 5.9 7.7 11.7 2-2.2 3.2-4.7 3.2-4.7.8-8.7-2.1-4.6-6.7-8.5-.1.1-2.7.9-4.2 1.5" fill="#c7e755"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f98f.svg b/build/js/jsxc/lib/emojione/assets/svg/1f98f.svg
new file mode 100644
index 0000000..7329b38
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f98f.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m27.1 9.6c-7.8 1.9-9.5-3.3-9.5-3.3-.7 9.7 7.4 13.9 13 13.9l6.8-5.8c.1.1-2.4-6.6-10.3-4.8" fill="#8a8e91"/><path d="m51.4 4.5c-9 2.4-18.1-.9-19.7 5.5-1.8 7.4-4.1 9.6-5.5 12.7-3.2 7.1-10.2 9.5-14.1 13.7-2.3 8.6-5.5 6.7-3.5 10.5 4.5 8.2-4 7.3 7.2 8.8 7.6 1 9.1 4.4 15.6.2 5.7-3.6 18.6-3.4 18.6-3.4l.5 9.6h11.5v-51l-2.9-7.4-3.8 2.3c0 0-1-2.3-3.9-1.5" fill="#b2c1c0"/><path d="m58.2 39.5c-7.8 15.2-16.1 10.8-24.7 15.3 0 0 13.3-3.6 13.3 7.2h5.2c-.1-11 6.2-22.5 6.2-22.5" fill="#8a8e91"/><path d="m31.8 51.6c-4.4-4.6-5.6 3.8-5.6 3.8s1.1-2.1 2.5-1.8c1.5.3 4.3-.7 3.1-2" fill="#3e4347"/><g fill="#e8e8e8"><path d="m17.8 21.5c-.8 1.3 1.4 8.8 3.5 9.8 2.1 1 7.9-3 7.4-5.7-.4-2.8-10.1-5.4-10.9-4.1"/><path d="m3.4 17.7c-3.7 2.2.5 20.7 7.3 25.8 1.8 1.4 7.1-.4 8.6-2.1 1.6-1.8 3-6 .4-9.4-2.4-3.1-6-1.9-7.3-3-4.6-3.8-8.2-11.8-9-11.3"/></g><path d="m45.3 30.2c0 1.7-1.6 3.1-3.6 3.1-2 0-3.6-1.4-3.6-3.1s1.2-1.2 3.6-3.1c1.5-1.2 3.6 1.3 3.6 3.1" fill="#3e4347"/><g fill="#8a8e91"><path d="m35.2 26.1c0 0 2.8.2 5-1.7 3.1-2.7 4.6-4.2 8.2-2.7 0 0-4.2-5-7.4-1.3-2.1 2.6-1.4 3.6-5.8 5.7"/><path d="m48.9 30.9c0 0-6.8-1.4-9.4 5.6 0-.1 3.5-4.2 9.4-5.6"/></g><path d="m49.7 26.1c0 0-2.8-4-6.5-.6-6.2 5.4-8.2 4.5-8.2 4.5s3.7 2.9 7.4-.2c3.5-3.2 4.5-4.6 7.3-3.7" fill="#3e4347"/><path d="m30.4 25.3c0 0 1 7-7.8 7.5 0 0 2.1 6.4-2.3 9.6 0 0 6.5-2.9 5-8.2 0 .1 9-1 5.1-8.9" fill="#8a8e91"/><path d="m57.7 7.5c0 0-1.9 6.4-7.4 7.7-3.7.8-4.4 2.1-4.4 2.1s.4-4.6 5.7-5.8c3.9-.9 6.1-4 6.1-4" fill="#3e4347"/><g fill="#8a8e91"><path d="m59.6 2c0 0-3.5 3.2-7.7 4.5-4.2 1.3-8.3 3.5-9 8.9 0 0 1.8-5.1 7.7-6.9 5.9-1.8 7.7-2.6 8.6-4.1 0 0 1.2 3.4-.1 7-1 2.1-2.3 4-4.6 4.7-5.1 1.5-5.5 3.5-5.5 3.5 3.4-1.7 4.7-.8 8.2-1.8 9.2-2.8 2.4-15.8 2.4-15.8"/><path d="m10.2 48c0 0 3.1-1.2 4.1-1.1 2.7.3 9.5 5 9.5 5s-6.6-2.7-8.9-3.2c-1.1-.3-4.7-.7-4.7-.7"/><path d="m26.9 49.8c0 0 3.4-.9 4.4-.5.6.2 1.8 1.8 1.8 1.8s-.7-3.1-1.6-3.5c-1.2-.5-4.6 2.2-4.6 2.2"/></g><path d="m49.3 41.8c-6.2 7-15.8 13-15.8 13s15.5-6.1 18.6-13.4c2.3-5.2.5-3.4-2.8.4" fill="#3e4347"/><path d="m56 38.9c0 0-1.3-2.3-2.1-2.6-.9-.3-3.7.9-3.7.9s2.8-2.7 3.9-2.3c1.2.3 1.9 4 1.9 4" fill="#8a8e91"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f990.svg b/build/js/jsxc/lib/emojione/assets/svg/1f990.svg
new file mode 100644
index 0000000..7cf07ad
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f990.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.7 13c-7.3-7.1-17 1.5-29.9-11 8 12.9 22.4 6.5 28.5 12.3l1.4-1.3" fill="#ed4c5c"/><g fill="#ff717f"><path d="m54.6 17.9c0 0 0 0 0 0"/><path d="m48.6 16.5l10.4-5.4c-15.9 3.7-22.7-.5-25.6 4.4-7.4-1.2-9.8 3.5-9.8 3.5s-7.6.8-8 6.5c-2.8.3-6.3 2.9-4.9 5.7-3.4 2-5.9 4.7-3.3 7.3-3.7 4.3-2.3 6.2-1.4 6.6-.9 6.6 1.5 7.2 2.3 7.4.1 2.6.9 6.1 4 9.6 0 0 2.4-2.3.8-5.3 0 0 1.7 2.1 4.2 1.8 0 0 .2-2.3-1.3-5.1 0 0 1.9 1.7 4.2.4 0 0-2.4-3.7-6.6-5.1.1-1.1-.2-2.5-1-4.2.8-1.1 1.3-2.7 1.4-5.1 1.3-.9 2.5-2.6 3.3-5.5 1.1-.5 2.4-1.5 3.6-3.2 2.2.3 5.1-.5 8.5-3.5 2.2 0 5-1.1 8.3-4.2 3.5.4 9-.8 17-5.3-.2.1-1.2.4-6.1-1.3"/></g><path d="m43.9 15.7c-.8 2.2-3.2 3.4-5.4 2.6-2.2-.8-3.4-3.2-2.6-5.4.8-2.2 3.2-3.4 5.4-2.6 2.2.8 3.4 3.2 2.6 5.4" fill="#fff"/><path d="m41.8 15c-.4 1.1-1.5 1.6-2.6 1.3-1.1-.4-1.6-1.5-1.3-2.6.4-1.1 1.5-1.6 2.6-1.3 1.1.4 1.7 1.5 1.3 2.6" fill="#3e4347"/><g fill="#ed4c5c"><path d="m12.3 54.7c.5 2.6.1 7.3.1 7.3 1.9-1.3 1.6-4.2 1.6-4.2 1.4.9 3.4.8 3.4.8-3.8-1.5-5.1-3.9-5.1-3.9"/><path d="m37.1 30c.2-.4.6-.4.1-.9-1-.9-4.8.6-8.4-1.4.2-.1.3-.3.5-.4 2.1.1 4.9-.9 8.3-4.3 3.5.4 9-.8 16.9-5.3-1.1.5-17.6 7.4-21.9-1-.6 1.8-.2 3.9 1.8 5.2-6.4 0-17.3-10.7-29.4-5.5 12.5-2.6 19.3 5.5 27 7.4-2.3 1.1-5.5 1.8-8.5-.5 0 0 1.1 2.3 3.4 3.4-5.2 3.7-11.5-1.4-11.5-1.4 1 2.5 2.2 4 3.5 4.8-3.7 4.3-8.4.9-8.4.9 1.7 2 3.2 3 4.6 3.2-.8 2.2-3.1 6.2-7.9 4.2 0 0 2.3 1.6 4.8 1.5-.1 1.6-.8 5.5-6.2 5.1 0 0 2.8 1.5 5.1.8.7 1.6 1.3 4.8-2.8 6.6 0 0 5.1.3 5.6-3.2 1.8 1.2 2.9 2.7 2.9 2.7-1 .2-3.4-.2-3.4-.2 2.7 2.6 4 6.8 4 6.8.2-2.7-1.3-5.1-1.3-5.1 2.1 1.8 4.2.4 4.2.4-2.2-3.2-4.8-4.5-6.4-5 0-1-.3-2.3-1.1-4 .9-1 1.5-2.7 1.4-5.6 1.1-.6 2.1-1.9 2.7-4 .9 1.7 2.8 4.3 6.1 5.7.3.1.6.3 1-.2 3.2 2.9 2.4 6 3.1 6 .4.4 1 1.3 1.1 3.2 0 0 1.2-2 1-4.2 1 0-1.2-4.4-4.4-6.6.4-.3.7-.2.5-.8-.6-1.3-5-1.1-7.5-4.7 1.3-.6 2.3-1.8 3-2.8.8 1.2 3.5 4.5 8 5.4.3.1.7.1.9-.4 3.4 2.1 3.7 5.4 4.3 5.3.4.3 1.2 1.1 1.8 2.9 0 0 .6-2.1.1-4.3.9-.3-2.2-4-5.7-5.6.3-.3.7-.3.3-.8-.8-1.1-4.6-.3-7.8-2.6 1.8-.3 3.5-1.2 4.8-2.2 1.3 1.2 4.4 3.5 8.5 3.5.3 0 .7 0 .8-.5 4.1 1.7 4.6 4.7 5.3 4.5.5.2 1.4.8 2.3 2.5 0 0 .3-2.5-.7-4.2 1.1-.3-2.7-3.4-6.4-4.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f991.svg b/build/js/jsxc/lib/emojione/assets/svg/1f991.svg
new file mode 100644
index 0000000..c7e8764
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f991.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m41.4 42.7c-1.3 1.9 5.5 2.3 2 5.8-9.9 10-18.5-8.5-5.6-10.9 1.8-5.2 6.1-6 6.1-6 1.3-3.4 5.6-6.4 5.6-6.4l-10.6-10.7c0 0-3 4.4-6.3 5.7 0 5.5-6 6.2-6 6.2-2.4 12.8-20.7 4.2-10.8-5.7 3.5-3.5 3.9 3.3 5.8 2 .9-.6 2.5-3.8-.1-6.4-3.3-3.3-15.8 2.9-13.2 14.5.7 3.1 2.3 5.1 4.3 6.2-6.9 2.1-14.6 8.7-8.3 15 1.4 1.5 4.8 4.8 12.2.3 7.4-4.5 1.7-9.1-1.5-8.3-3.2.8 5.5 4.7-3.8 6.1-4.6.7-6-6.6 3.7-9 3.7-.9 6.4-.8 8.7-1-.8 2.1-1.3 4.4-1.6 6.9-.9 9.5-11.9 13-15.4 14-3.6 1 8.6 3.2 15.8-5.8 1.8-2.2 2.9-4.2 3.8-6.1.7 3.3 2.9 6 7.2 7 11.6 2.6 17.7-9.9 14.4-13.2-2.7-2.7-5.8-1.1-6.4-.2" fill="#ed4c5c"/><path d="m32.6 20.2c-.4.1-.7.3-1.1.3-3.8.6-4.3 2.5-4.9 5.9 0 0 0 0 0 .1 1.4.5 3.3 0 4.7-1.3 1.5-1.6 1.9-3.5 1.3-5" fill="#e8e8e8"/><circle cx="29.3" cy="23.1" r="1.5" fill="#3e4347"/><path d="m37.7 37.6c0 0 .1 0 0 0 3.4-.6 5.3-1.1 5.9-4.9.1-.4.2-.7.3-1.1-1.5-.6-3.4-.2-4.9 1.3-1.3 1.4-1.8 3.3-1.3 4.7" fill="#e8e8e8"/><circle cx="41.1" cy="34.9" r="1.5" fill="#3e4347"/><g fill="#9c323c"><path d="m55.8 2.9c0 0-5.5.3-10.3-.8-5-1.2-5.5 13-8.7 18.1-.1-.1 13.9-11.3 19-17.3"/><path d="m33.2 54.3c-6.9-4.2-4.9-10.5-4.9-10.5-.7 1.7-1.3 3.5-2.1 5.3.7 3.3 2.8 6 7.2 7 3.1.7 5.7.3 8-.7-2 .6-5.5.5-8.2-1.1"/><path d="m23.7 40.1c-.8 2.1-1.4 4.4-1.6 6.9-1 9.5-12 13-15.5 14-.4.1-.6.2-.6.3 13.9-1.7 17-9.7 18.4-15.4.7-2.9 1.8-5 2.6-6.3-1.1.3-2.2.5-3.3.5"/><path d="m12.6 37c.6-.2 1.3-.3 1.9-.4.6-.1 1.1-.2 1.7-.3-2.6 0-5.5-.9-7.5-4.2.8 2.4 2.2 4 3.9 4.9"/><path d="m44.5 30.5c.3-.5.7-1 1.1-1.5-.5-.5-1.3-.8-2.7-.6-2.5.3-4.5-.1-5.7-1.3-1.2-1.2-1.6-3.2-1.3-5.7.2-1.4-.1-2.2-.6-2.8-.5.4-1 .8-1.5 1.1.6.5 1 1.3.8 3-.3 2.5.1 4.5 1.3 5.7 1.2 1.2 3.2 1.6 5.7 1.3 1.5-.2 2.4.2 2.9.8"/><path d="m61.1 8.3c0 0-.3 5.5.8 10.4 1.2 5-13 5.6-17.9 8.8 0 0 11.1-14.1 17.1-19.2"/></g><path d="m56.7 17.8c5.4-6.7 5.8-11.9 3.6-14.1-2.2-2.2-7.4-1.8-14 3.7-7.4 6.1-13.4 5.2-14.1 8.3-.7 3.1 4.2.8 3.6 5.7-.3 2.5.1 4.5 1.3 5.7 1.2 1.2 3.2 1.6 5.7 1.3 4.9-.6 2.6 4.3 5.7 3.6 3.1-.7 2.2-6.8 8.2-14.2" fill="#ed4c5c"/><g fill="#9c323c"><ellipse transform="matrix(.7091-.7052.7052.7091-12.7393 30.2502)" cx="30.3" cy="30.6" rx="3.9" ry=".4"/><ellipse transform="matrix(.7106-.7036.7036.7106-13.4602 31.8638)" cx="32" cy="32.3" rx="4.6" ry=".3"/><path d="m33.9 34.2c-1.5 1.5-2.8 2.6-2.9 2.4-.1-.1.9-1.5 2.4-3 1.5-1.5 2.8-2.6 2.9-2.4.2.2-.9 1.5-2.4 3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/1f9c0.svg b/build/js/jsxc/lib/emojione/assets/svg/1f9c0.svg
index 9dfb4d7..3cbd809 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/1f9c0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/1f9c0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m2.051 31.382c0 0 .059-3.226 0-4.559-.057-1.335.685-.891 1.597-1.612.914-.724 1.941-2.168 2.454-1.613.513.557 1.767 1.335 2.452-1 .685-2.337 1.254-1.559 1.769-2 .513-.444 1.824.443 2.395-.557s.113-1.334 1.54-2.224c1.427-.89 2.395-2 3.593-2 1.197 0 3.708-1 4.277-2.779.571-1.779 1.426-1.668 2.111-2.058.685-.389 1.197-1.278 3.307-1.278 2.111 0 15.686-1.946 31.31 6.395 0 0 1.941 1 2.454 1.389.513.391.626.168.683 4.339.057 4.17-.283 18.17-.283 21.685 0 2.381-.399 2.057-1.369 2.225 0 0-14.03 2.112-16.08 2.446-2.055.332-2.339.223-2.967-.279-.629-.499-2.511-.507-3.422.47-.914.977-.344.977-1.996 1.144-1.654.167-9.981 1.446-11.748 1.724-1.77.278-2.454-1.224-4.449-1.167-1.997.056-3.081 2.168-3.822 2.335-.741.167-11.235 1.668-12.09 1.778-.855.112-1.714.779-1.714-.222 0-1-.225-3.225.288-3.447.515-.222.97-.834.97-1.668 0-1.557-1.027-1.445-1.027-4.615 0-3.169-.114-6.395.17-6.728 0 0 1.298-.756 1.298-2.672-.002-2.335-1.7-2.057-1.7-3.447"/><path fill="#ffec40" d="m2.069 27.475c-.271-2.069.618-1.542 1.53-2.264.914-.724 1.941-2.168 2.454-1.613.513.557 1.767 1.335 2.451-1 .686-2.337 1.255-1.559 1.77-2 .513-.444 1.823.443 2.395-.557s.113-1.334 1.54-2.224 2.395-2 3.593-2c1.197 0 3.708-1 4.277-2.779.571-1.779 1.426-1.668 2.111-2.058.685-.389 1.197-1.278 3.307-1.278 2.111 0 15.685-1.946 31.31 6.395 0 0 1.941 1 2.454 1.389.061.046.883 1.046-.525 1.347-3.764.804-12.284 2.283-21.696 3.799-.339.055-1.39-1.041-1.73-.986-.45.072-.191 1.295-.644 1.367-16.409 2.613-34.504 5.183-34.598 4.467"/><g fill="#d68f00"><path d="m3.558 27.528c.875-.142 6.491-.952 6.921-1.013.981-.141.549-.732 1.386-1.181.837-.45 2.364.505 2.97.448.607-.053 15.577-2.303 17.16-2.502 1.586-.195 2.537-.364 2.221-.758s-1.038-1.575 1.615-1.575 2.626.759 2.827 1.041c.202.28.376.252 1.124.141.751-.113 5.02-.619 5.05-.873.029-.253.375-.759 1.703-.59 1.325.168.979.478.605 1.013-.375.534-.605.934-.203 1.493.404.559-1.846-.257-2.047-1.043-.201-.787-4.818.618-5.799.646-.98.027-1.154-.366-1.529-.731s-.663 1.152.318 1.546c.98.394-.865 1.379-1.789 1.126-.922-.253-.922-1.406-1.904-1.237-.98.168-18.07 3.136-18.903 3.119-.837-.018-1.778-.208-2.354.354-.579.563-3.469.476-5.229.645-1.76.168-6.977.387-4.147-.069"/><path d="m61.31 17.48c-.513-.389-2.454-1.389-2.454-1.389-6.629-3.539-12.889-5.223-18.06-5.992.534.146 11.393 3.141 15.736 5.718 2.969 1.761 3.125 2.01 2.74 2.558-.385.55-1.329.479-8.656 2.038-1.365.29-2.383.374-2.346.712.038.338 2.116-.186 4.27-.355s8.423-1.481 8.885-.92c.232.284.543 2.547.572 4.084.006-.844.004-1.566-.004-2.114-.056-4.172-.17-3.949-.682-4.34"/><path d="m19.676 50.06c1.995-.057 2.68 1.445 4.449 1.167.014-.003.04-.006.057-.009-.352-.132-.812-.404-1.412-.923-2-1.725-4.231-1.725-5-.302-.77 1.425-1.133 1.826-1.916 2.402.741-.167 1.825-2.279 3.822-2.335"/><path d="m39.652 46.551c-2.332.446-2.632 2.732-2.635 2.766.285-.129.3-.361.852-.951.911-.977 2.793-.969 3.422-.47.314.251.542.403.95.452-1.098-.22-.452-2.207-2.589-1.797"/></g><g fill="#f2b200"><path d="m42.658 48.36c.09-.003.188-.007.291-.017-.091.001-.189.007-.291.017"/><path d="m42.572 48.36c.01 0 .019 0 .027 0-.01.001-.017 0-.027 0"/></g><g fill="#d68f00"><path d="m3.922 49.32c.077-2.035-1.536-3.56-1.536-3.56.262 1.656.921 1.836.921 3.085 0 .834-.456 1.446-.97 1.668-.086.037-.145.146-.194.28.432-.259 1.715.219 1.779-1.473"/><path d="m3.926 32.594c-.839-.074-1.302-.224-1.569-.367.489.586 1.392.896 1.392 2.601 0 1.916-1.298 2.672-1.298 2.672-.047.057-.084.2-.111.41.368-.788 1.205-.794 2.122-1.633 1.231-1.127 1.306-3.526-.536-3.683"/><path d="m22.801 11.779c-.246.262-.477.641-.674 1.254-.569 1.779-3.08 2.779-4.277 2.779-.194 0-.383.038-.568.092 1.194.332 2.541.955 5.164-1.604 1.265-1.234-.76-1.054.355-2.521"/></g><path fill="#ffec40" d="m9.04 45.999c.075.231.163.477.27.739.924 2.249 5.885 3.262 6.116 0 .029-.395.007-.756-.048-1.09-1.578 1.756-4.655 1.824-6.338.351"/><path fill="#d68f00" d="m15.372 45.648c-.414-2.43-2.873-3.283-4.566-2.849-1.938.497-2.34 1.437-1.771 3.199 1.683 1.474 4.76 1.406 6.337-.35"/><path fill="#ffec40" d="m22.849 30.726c.07.297.109.6.109.917 0 2.481-2.271 4.49-5.077 4.49-2.135 0-3.955-1.17-4.704-2.823-.286.808-.425 1.744-.35 2.823.383 5.404 8.602 3.729 10.13 0 1.078-2.622 1.176-4.306-.108-5.407"/><path fill="#d68f00" d="m17.881 36.13c2.806 0 5.077-2.01 5.077-4.49 0-.317-.039-.62-.109-.917-.54-.467-1.298-.837-2.374-1.113-2.554-.655-6.155.461-7.297 3.697.748 1.653 2.568 2.823 4.703 2.823"/><path fill="#ffec40" d="m28.694 45.724c-1.591 0-2.994-.788-3.933-2-.643 1.921-.305 4.27 3.377 4.615 4.444.421 6.345-4.247 5.457-6.58-.609 2.282-2.562 3.966-4.901 3.966"/><path fill="#d68f00" d="m28.694 45.724c2.339 0 4.292-1.684 4.901-3.966-.063-.168-.139-.325-.234-.467-1.383-2.098-5.814-2-7.838.9-.301.43-.572.962-.762 1.531.939 1.214 2.343 2 3.933 2"/><path fill="#ffec40" d="m58.941 39.02c-.086 1.717-1.733 3.093-3.765 3.093-1.697 0-3.118-.966-3.595-2.281-.146.538-.206 1.108-.178 1.687.117 2.352 3.747 3.947 6.79 1.436 1.497-1.235 1.461-2.731.748-3.935"/><path fill="#d68f00" d="m55.18 42.12c2.031 0 3.679-1.376 3.765-3.093-.736-1.237-2.193-2.168-3.441-2.168-2.176 0-3.467 1.321-3.918 2.979.476 1.316 1.896 2.282 3.594 2.282"/><path fill="#ffec40" d="m48.42 32.648c.008.084.029.164.029.252 0 2.829-2.626 5.123-5.865 5.123-2.324 0-4.316-1.191-5.265-2.905.233.987.729 2.063 1.488 3.272 1.758 2.793 5.265 2.667 7.207.773 2.031-1.975 3.328-4.356 2.406-6.515"/><path fill="#d68f00" d="m42.588 38.02c3.239 0 5.865-2.294 5.865-5.123 0-.088-.021-.168-.029-.252-.242-.569-.626-1.119-1.203-1.644-2.771-2.521-8.04-1.261-9.322.616-.727 1.064-.883 2.205-.575 3.497.947 1.715 2.94 2.906 5.264 2.906"/><path fill="#ffec40" d="m57.995 25.26c.005.058.02.112.02.172 0 1.925-1.786 3.485-3.99 3.485-1.581 0-2.937-.811-3.581-1.977.158.672.496 1.403 1.012 2.227 1.196 1.899 3.582 1.814 4.903.525 1.38-1.343 2.263-2.964 1.636-4.432"/><path fill="#d68f00" d="m54.02 28.918c2.204 0 3.99-1.561 3.99-3.485 0-.06-.015-.114-.02-.172-.165-.387-.427-.761-.818-1.117-1.886-1.716-5.468-.858-6.342.419-.495.725-.602 1.5-.392 2.379.646 1.165 2 1.976 3.582 1.976"/><path fill="#ffc543" d="m23.08 18.505c1.188 0 2.271.226 3.15.593-.268-.59-.953-1.144-2.218-1.658-2.335-.949-6.211-.231-5.973 3.03.002.056.02.104.025.157.573-1.218 2.592-2.121 5.02-2.121"/><path fill="#d68f00" d="m25.326 21.517c.888-.866 1.243-1.671.904-2.419-.879-.367-1.963-.593-3.15-.593-2.424 0-4.443.903-5.02 2.121.382 3.101 4.867 3.227 7.261.891"/><path fill="#ffc543" d="m34.31 13.13c.863 0 1.673.204 2.343.552-.211-.451-.63-.919-1.322-1.473-2.42-1.932-5.479-.12-5.289 3.071.014.184.063.318.095.476.413-1.501 2.123-2.626 4.173-2.626"/><path fill="#d68f00" d="m35.34 16.63c1.26-1.226 1.746-2.049 1.322-2.947-.67-.348-1.479-.552-2.343-.552-2.051 0-3.761 1.125-4.174 2.626.486 2.68 3.414 2.612 5.195.873"/><path fill="#ffc543" d="m47.742 15.574c.578 0 1.127.094 1.643.239-.076-.261-.219-.53-.521-.803-2.092-1.921-6.962-.694-6.962 2.423 0 .749.378 1.3.964 1.637.258-1.961 2.329-3.496 4.876-3.496"/><path fill="#d68f00" d="m47.828 18.298c.695-.542 1.859-1.45 1.557-2.484-.516-.146-1.064-.239-1.643-.239-2.547 0-4.618 1.535-4.877 3.496 1.219.703 3.352.492 4.963-.773"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m2.1 31.4c0 0 .1-3.2 0-4.6-.1-1.3.7-.9 1.6-1.6.9-.7 1.9-2.2 2.5-1.6.5.6 1.8 1.3 2.5-1 .7-2.3 1.3-1.6 1.8-2 .5-.4 1.8.4 2.4-.6s.1-1.3 1.5-2.2c1.4-.9 2.4-2 3.6-2 1.2 0 3.7-1 4.3-2.8.6-1.8 1.4-1.7 2.1-2.1.7-.4 1.2-1.3 3.3-1.3 2.1 0 15.7-1.9 31.3 6.4 0 0 1.9 1 2.5 1.4.5.4.6.2.7 4.3.1 4.2-.3 18.2-.3 21.7 0 2.4-.4 2.1-1.4 2.2 0 0-14 2.1-16.1 2.4-2.1.3-2.3.2-3-.3-.6-.5-2.5-.5-3.4.5-.9 1-.3 1-2 1.1-1.7.2-10 1.4-11.7 1.7-1.8.3-2.5-1.2-4.4-1.2-2 .1-3.1 2.2-3.8 2.3-.7.2-11.2 1.7-12.1 1.8-1.1.4-1.9 1.1-1.9.1 0-1-.2-3.2.3-3.4.5-.2 1-.8 1-1.7 0-1.6-1-1.4-1-4.6 0-3.2-.1-6.4.2-6.7 0 0 1.3-.8 1.3-2.7-.2-2.4-1.8-2.1-1.8-3.5" fill="#ffce31"/><path d="m2.1 27.5c-.3-2.1.6-1.5 1.5-2.3.9-.7 1.9-2.2 2.5-1.6.5.6 1.8 1.3 2.5-1 .7-2.3 1.3-1.6 1.8-2 .5-.4 1.8.4 2.4-.6s.1-1.3 1.5-2.2 2.4-2 3.6-2c1.2 0 3.7-1 4.3-2.8.6-1.8 1.4-1.7 2.1-2.1.7-.4 1.2-1.3 3.3-1.3 2.1 0 15.7-1.9 31.3 6.4 0 0 1.9 1 2.5 1.4.1 0 .9 1-.5 1.3-3.9.9-12.4 2.4-21.9 3.9-.3.1-1.4-1-1.7-1-.5.1-.2 1.3-.6 1.4-16.4 2.6-34.5 5.2-34.6 4.5" fill="#ffec40"/><g fill="#d68f00"><path d="m3.6 27.5c.9-.1 6.5-1 6.9-1 1-.1.5-.7 1.4-1.2.8-.5 2.4.5 3 .4.6-.1 15.6-2.3 17.2-2.5 1.6-.2 2.5-.4 2.2-.8s-1-1.6 1.6-1.6 2.6.8 2.8 1c.2.3.4.3 1.1.1.8-.1 5-.6 5-.9 0-.3.4-.8 1.7-.6 1.3.2 1 .5.6 1-.4.5-.6.9-.2 1.5.4.6-1.8-.3-2-1-.2-.8-4.8.6-5.8.6-1 0-1.2-.4-1.5-.7s-.7 1.2.3 1.5c1 .4-.9 1.4-1.8 1.1-.9-.3-.9-1.4-1.9-1.2-1 .2-18.1 3.1-18.9 3.1-.8 0-1.8-.2-2.4.4-.6.6-3.5.5-5.2.6-1.8.5-7 .7-4.1.2"/><path d="m61.3 17.5c-.5-.4-2.5-1.4-2.5-1.4-6.6-3.5-12.9-5.2-18.1-6 .5.1 11.4 3.1 15.7 5.7 3 1.8 3.1 2 2.7 2.6-.4.5-1.3.5-8.7 2-1.4.3-2.4.4-2.3.7 0 .3 2.1-.2 4.3-.4s8.4-1.5 8.9-.9c.2.3.5 2.5.6 4.1 0-.8 0-1.6 0-2.1 0-4.2-.1-3.9-.6-4.3"/><path d="m19.7 50.1c2-.1 2.7 1.4 4.4 1.2 0 0 0 0 .1 0-.4-.1-.8-.4-1.4-.9-2-1.7-4.2-1.7-5-.3-.8 1.4-1.1 1.8-1.9 2.4.7-.3 1.8-2.4 3.8-2.4"/><path d="m39.7 46.6c-2.4.4-2.7 2.7-2.7 2.7.3-.1.3-.4.9-1 .9-1 2.8-1 3.4-.5.3.3.5.4 1 .5-1.2-.2-.5-2.2-2.6-1.7"/></g><g fill="#f2b200"><path d="m42.7 48.4c.1 0 .2 0 .3 0-.1-.1-.2 0-.3 0"/><path d="m42.6 48.4c0 0 0 0 0 0"/></g><g fill="#d68f00"><path d="m3.9 49.3c.1-2-1.5-3.6-1.5-3.6.3 1.7.9 1.8.9 3.1 0 .8-.5 1.4-1 1.7-.1 0-.1.1-.2.3.5-.3 1.8.2 1.8-1.5"/><path d="m3.9 32.6c-.8-.1-1.3-.2-1.6-.4.5.6 1.4.9 1.4 2.6 0 1.9-1.3 2.7-1.3 2.7 0 .1-.1.2-.1.4.4-.8 1.2-.8 2.1-1.6 1.3-1.1 1.4-3.5-.5-3.7"/><path d="m22.8 11.8c-.2.3-.5.6-.7 1.3-.6 1.8-3.1 2.8-4.3 2.8-.2 0-.4 0-.6.1 1.2.3 2.5 1 5.2-1.6 1.3-1.3-.7-1.2.4-2.6"/></g><path d="m9 46c.1.2.2.5.3.7.9 2.2 5.9 3.3 6.1 0 0-.4 0-.8 0-1.1-1.6 1.8-4.7 1.9-6.4.4" fill="#ffec40"/><path d="m15.4 45.6c-.4-2.4-2.9-3.3-4.6-2.8-1.9.5-2.3 1.4-1.8 3.2 1.7 1.5 4.8 1.4 6.4-.4" fill="#d68f00"/><path d="m22.8 30.7c.1.3.1.6.1.9 0 2.5-2.3 4.5-5.1 4.5-2.1 0-4-1.2-4.7-2.8-.3.8-.4 1.7-.4 2.8.4 5.4 8.6 3.7 10.1 0 1.2-2.6 1.3-4.3 0-5.4" fill="#ffec40"/><path d="m17.9 36.1c2.8 0 5.1-2 5.1-4.5 0-.3 0-.6-.1-.9-.5-.5-1.3-.8-2.4-1.1-2.6-.7-6.2.5-7.3 3.7.7 1.7 2.5 2.8 4.7 2.8" fill="#d68f00"/><path d="m28.7 45.7c-1.6 0-3-.8-3.9-2-.6 1.9-.3 4.3 3.4 4.6 4.4.4 6.3-4.2 5.5-6.6-.7 2.3-2.7 4-5 4" fill="#ffec40"/><path d="m28.7 45.7c2.3 0 4.3-1.7 4.9-4-.1-.2-.1-.3-.2-.5-1.4-2.1-5.8-2-7.8.9-.3.4-.6 1-.8 1.5.9 1.3 2.3 2.1 3.9 2.1" fill="#d68f00"/><path d="m58.9 39c-.1 1.7-1.7 3.1-3.8 3.1-1.7 0-3.1-1-3.6-2.3-.1.5-.2 1.1-.2 1.7.1 2.4 3.7 3.9 6.8 1.4 1.6-1.2 1.6-2.7.8-3.9" fill="#ffec40"/><path d="m55.2 42.1c2 0 3.7-1.4 3.8-3.1-.7-1.2-2.2-2.2-3.4-2.2-2.2 0-3.5 1.3-3.9 3 .4 1.4 1.8 2.3 3.5 2.3" fill="#d68f00"/><path d="m48.4 32.6c0 .1 0 .2 0 .3 0 2.8-2.6 5.1-5.9 5.1-2.3 0-4.3-1.2-5.3-2.9.2 1 .7 2.1 1.5 3.3 1.8 2.8 5.3 2.7 7.2.8 2.1-2 3.4-4.4 2.5-6.6" fill="#ffec40"/><path d="m42.6 38c3.2 0 5.9-2.3 5.9-5.1 0-.1 0-.2 0-.3-.2-.6-.6-1.1-1.2-1.6-2.8-2.5-8-1.3-9.3.6-.7 1.1-.9 2.2-.6 3.5.9 1.7 2.9 2.9 5.2 2.9" fill="#d68f00"/><path d="m58 25.3c0 .1 0 .1 0 .2 0 1.9-1.8 3.5-4 3.5-1.6 0-2.9-.8-3.6-2 .2.7.5 1.4 1 2.2 1.2 1.9 3.6 1.8 4.9.5 1.4-1.3 2.3-3 1.7-4.4" fill="#ffec40"/><path d="m54 28.9c2.2 0 4-1.6 4-3.5 0-.1 0-.1 0-.2-.2-.4-.4-.8-.8-1.1-1.9-1.7-5.5-.9-6.3.4-.5.7-.6 1.5-.4 2.4.6 1.2 1.9 2 3.5 2" fill="#d68f00"/><path d="m23.1 18.5c1.2 0 2.3.2 3.1.6-.3-.6-1-1.1-2.2-1.7-2.3-.9-6.2-.2-6 3 0 .1 0 .1 0 .2.6-1.2 2.7-2.1 5.1-2.1" fill="#ffc543"/><path d="m25.3 21.5c.9-.9 1.2-1.7.9-2.4-.9-.4-2-.6-3.1-.6-2.4 0-4.4.9-5 2.1.3 3.1 4.8 3.3 7.2.9" fill="#d68f00"/><path d="m34.3 13.1c.9 0 1.7.2 2.3.6-.2-.5-.6-.9-1.3-1.5-2.4-1.9-5.5-.1-5.3 3.1 0 .2.1.3.1.5.5-1.5 2.2-2.7 4.2-2.7" fill="#ffc543"/><path d="m35.3 16.6c1.3-1.2 1.7-2 1.3-2.9-.7-.3-1.5-.6-2.3-.6-2.1 0-3.8 1.1-4.2 2.6.5 2.7 3.5 2.7 5.2.9" fill="#d68f00"/><path d="m47.7 15.6c.6 0 1.1.1 1.6.2-.1-.3-.2-.5-.5-.8-2.1-1.9-7-.7-7 2.4 0 .7.4 1.3 1 1.6.3-1.9 2.4-3.4 4.9-3.4" fill="#ffc543"/><path d="m47.8 18.3c.7-.5 1.9-1.5 1.6-2.5-.5-.1-1.1-.2-1.6-.2-2.5 0-4.6 1.5-4.9 3.5 1.2.7 3.3.5 4.9-.8" fill="#d68f00"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/203c.svg b/build/js/jsxc/lib/emojione/assets/svg/203c.svg
index 1e6a57b..7d2d0df 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/203c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/203c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m12.04 9.702l4.89 33.17c.489 3.308 4.66 3.308 5.149 0l4.89-33.17c.897-12.935-15.828-12.935-14.929 0"/><ellipse cx="19.5" cy="56.44" rx="7.5" ry="7.558"/><path d="m37.03 9.702l4.889 33.17c.49 3.308 4.66 3.308 5.15 0l4.889-33.17c.898-12.935-15.826-12.935-14.928 0"/><ellipse cx="44.5" cy="56.44" rx="7.5" ry="7.558"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m23 42.4h-10l-4-40.4h18z"/><ellipse cx="18" cy="54.4" rx="7.7" ry="7.6"/><path d="m51 42.4h-10l-4-40.4h18z"/><ellipse cx="46" cy="54.4" rx="7.7" ry="7.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2049.svg b/build/js/jsxc/lib/emojione/assets/svg/2049.svg
index 77b9ecd..b39038b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2049.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2049.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m.035 9.702l4.89 33.17c.489 3.308 4.66 3.308 5.149 0l4.89-33.17c.897-12.935-15.827-12.935-14.929 0"/><ellipse cx="7.5" cy="56.44" rx="7.5" ry="7.558"/><ellipse cx="38.527" cy="55.809" rx="8.127" ry="8.191"/><path d="m57.661 6.436c-4.216-4.271-9.375-6.436-15.334-6.436-6.01 0-11.17 2.14-15.324 6.35-4.213 4.213-6.35 9.369-6.35 15.324 0 1.196.971 2.167 2.168 2.167h9.753c1.197 0 2.167-.971 2.167-2.167 0-2.072.722-3.822 2.185-5.326 1.521-1.521 3.288-2.26 5.401-2.26 2.062 0 3.804.739 5.324 2.26 1.521 1.522 2.262 3.264 2.262 5.326 0 2.113-.74 3.879-2.239 5.38-1.525 1.483-3.274 2.205-5.347 2.205h-9.753c-1.197 0-2.168.971-2.168 2.168v9.753c0 1.196.971 2.167 2.168 2.167h9.753c5.955 0 11.09-2.11 15.238-6.263 4.27-4.216 6.435-9.4 6.435-15.41 0-5.96-2.14-11.09-6.339-15.238"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m6 42.4h10l4-40.4h-18z"/><ellipse cx="11" cy="54.4" rx="7.7" ry="7.6"/><path d="m40.2 2.1c-11.6.7-17.7 7.3-18.2 19.2h11.7c.1-4.1 2.5-7.2 6.7-7.7 4.2-.4 8.2.6 9.4 3.4 1.3 3.1-1.6 6.7-3 8.2-2.6 2.8-6.8 4.9-8.9 7.9-2.1 3-2.5 6.9-2.7 11.7h10.3c.1-3.1.3-6 1.7-7.9 2.3-3.1 5.7-4.5 8.5-7 2.7-2.3 5.6-5.1 6-9.5 1.6-12.9-9-19.1-21.5-18.3"/><ellipse cx="40.5" cy="55.6" rx="6.5" ry="6.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2122.svg b/build/js/jsxc/lib/emojione/assets/svg/2122.svg
index 1883b65..321c202 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2122.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2122.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m0 0v8h11v26h8v-26h11v-8z"/><path d="m56 0l-7 14-7-14h-8v34h8v-14l7 14 7-14v14h8v-34z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m2 2v7.5h10.3v24.5h7.5v-24.5h10.3v-7.5z"/><path d="m54.5 2l-6.6 13.2-6.5-13.2h-7.5v32h7.5v-13.2l6.5 13.2 6.6-13.2v13.2h7.5v-32z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2139.svg b/build/js/jsxc/lib/emojione/assets/svg/2139.svg
index 09cd5bb..93e13a8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2139.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2139.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m36.51 25h-6.992c-2.633 0-5.145 1.05-5.584 2.333-.436 1.284.447 2.334 1.965 2.334s2.072 2.02 1.23 4.492l-4.889 14.349c-.844 2.471.619 4.492 3.252 4.492h6.992c2.633 0 5.143-1.051 5.582-2.333.436-1.283-.447-2.335-1.963-2.335-1.518 0-2.072-2.02-1.23-4.491l4.889-14.349c.843-2.47-.619-4.492-3.252-4.492"/><path d="m36.29 11c-2.666 0-5.406 2.238-6.121 5-.717 2.761.869 4.999 3.533 4.999 2.668 0 5.408-2.238 6.123-4.999.717-2.763-.867-5-3.535-5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m27 27.8h10v24h-10z"/><circle cx="32" cy="17.2" r="5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2194.svg b/build/js/jsxc/lib/emojione/assets/svg/2194.svg
index 3dc9a64..8ffc7d1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2194.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2194.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m52 32l-15.513-16v11.372h-8.974v-11.372l-15.513 16 15.513 16v-11.372h8.974v11.372z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m12 32l15.5 16v-11.4h9v11.4l15.5-16-15.5-16v11.4h-9v-11.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2195.svg b/build/js/jsxc/lib/emojione/assets/svg/2195.svg
index 225fd27..803b79d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2195.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2195.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m32 52l16-15.513h-11.372v-8.974h11.372l-16-15.513-16 15.513h11.372v8.974h-11.372z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m32 52l16-15.5h-11.4v-9h11.4l-16-15.5-16 15.5h11.4v9h-11.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2196.svg b/build/js/jsxc/lib/emojione/assets/svg/2196.svg
index 9a64d05..7049c48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2196.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2196.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m19.489 42.12l.49-22.14 22.14-.49-7.479 7.476 13.217 13.215-7.272 7.27-13.218-13.21z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m19.5 42.1l.5-22.1 22.1-.5-7.5 7.5 13.3 13.2-7.3 7.3-13.2-13.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2197.svg b/build/js/jsxc/lib/emojione/assets/svg/2197.svg
index 91b96df..73cc6a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2197.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2197.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m21.884 19.489l22.14.49.491 22.14-7.481-7.479-13.213 13.217-7.273-7.272 13.219-13.218z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m44.5 42.1l-.5-22.1-22.1-.5 7.5 7.5-13.3 13.2 7.3 7.3 13.2-13.3z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2198.svg b/build/js/jsxc/lib/emojione/assets/svg/2198.svg
index b10e751..7a5e967 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2198.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2198.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m44.511 21.884l-.491 22.14-22.14.491 7.475-7.481-13.219-13.213 7.274-7.273 13.218 13.219z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m21.9 44.5l22.1-.5.5-22.1-7.5 7.5-13.2-13.3-7.3 7.3 13.3 13.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2199.svg b/build/js/jsxc/lib/emojione/assets/svg/2199.svg
index d370c7b..29c9464 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2199.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2199.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m42.12 44.511l-22.14-.491-.49-22.14 7.476 7.475 13.215-13.219 7.27 7.274-13.21 13.218z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m42.1 44.5l-22.1-.5-.5-22.1 7.5 7.5 13.2-13.3 7.3 7.3-13.3 13.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/21a9.svg b/build/js/jsxc/lib/emojione/assets/svg/21a9.svg
index 72f8043..03a61de 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/21a9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/21a9.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m17 46.26l9.215-9.736v6.131h7.082c5.314 0 9.806-5.139 9.806-11.223 0-6.209-4.882-11.26-10.881-11.26h-8.969v-8.176h8.969c10.354 0 18.778 8.719 18.778 19.436 0 10.516-8.107 19.4-17.703 19.4h-7.082v5.164l-9.215-9.736"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M17,46.3l9.1-9.7v6.1h7.3c5.3,0,9.7-5.1,9.7-11.2c0-6.2-4.8-11.3-10.8-11.3h-9.2V12h9.2
+ C42.7,12,51,20.7,51,31.4c0,10.5-8,19.4-17.5,19.4h-7.3V56L17,46.3z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/21aa.svg b/build/js/jsxc/lib/emojione/assets/svg/21aa.svg
index 8b5b7ae..fd4773f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/21aa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/21aa.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="M47,46.264l-9.127-9.736v6.131h-7.34c-5.264,0-9.711-5.14-9.711-11.223c0-6.208,4.834-11.26,10.777-11.26
- h9.207V12H31.6C21.344,12,13,20.719,13,31.436c0,10.515,8.029,19.398,17.533,19.398h7.34V56L47,46.264z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="M47,46.3l-9.1-9.7v6.1h-7.3c-5.3,0-9.7-5.1-9.7-11.2c0-6.2,4.8-11.3,10.8-11.3h9.2V12h-9.2
+ C21.3,12,13,20.7,13,31.4c0,10.5,8,19.4,17.5,19.4h7.3V56L47,46.3z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/231a.svg b/build/js/jsxc/lib/emojione/assets/svg/231a.svg
index d91f664..31cbd09 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/231a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/231a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="m23.13 62h-4.667c-.514 0-.934-.421-.934-.938v-1.875c0-.515.42-.938.934-.938h4.667c.513 0 .934.423.934.938v1.875c0 .517-.421.938-.934.938"/><path fill="#62727a" d="m23.13 61.53c.257 0 .467-.21.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.209.469.467.469h4.667"/><g fill="#e8e8e8"><path d="m23.13 58.25h-4.667c-.514 0-.934-.421-.934-.938v-1.875c0-.515.42-.938.934-.938h4.667c.513 0 .934.423.934.938v1.875c0 .517-.421.938-.934.938"/><path d="m23.13 54.5h-4.667c-.514 0-.934-.421-.934-.938v-1.875c0-.515.42-.938.934-.938h4.667c.513 0 .934.423.934.938v1.875c0 .517-.421.938-.934.938"/><path d="m23.13 50.75h-4.667c-.514 0-.934-.421-.934-.938v-1.875c0-.515.42-.938.934-.938h4.667c.513 0 .934.423.934.938v1.875c0 .517-.421.938-.934.938"/><path d="m42.733 62h-4.667c-.513 0-.933-.421-.933-.938v-1.875c0-.515.42-.938.933-.938h4.667c.514 0 .934.423.934.938v1.875c0 .517-.42.938-.934.938"/><path d="m42.733 58.25h-4.667c-.513 0-.933-.421-.933-.938v-1.875c0-.515.42-.938.933-.938h4.667c.514 0 .934.423.934.938v1.875c0 .517-.42.938-.934.938"/><path d="m42.733 54.5h-4.667c-.513 0-.933-.421-.933-.938v-1.875c0-.515.42-.938.933-.938h4.667c.514 0 .934.423.934.938v1.875c0 .517-.42.938-.934.938"/><path d="m42.733 50.75h-4.667c-.513 0-.933-.421-.933-.938v-1.875c0-.515.42-.938.933-.938h4.667c.514 0 .934.423.934.938v1.875c0 .517-.42.938-.934.938"/><path d="m37.13 57.31c0-.515-.421-.938-.934-.938h-11.199c-.513 0-.933.423-.933.938v3.75c0 .517.42.938.933.938h11.199c.513 0 .934-.421.934-.938v-3.75"/></g><path fill="#62727a" d="m36.2 61.53c.257 0 .467-.21.467-.469v-3.75c0-.258-.21-.469-.467-.469h-11.199c-.258 0-.467.211-.467.469v3.75c0 .259.208.469.467.469h11.199"/><path fill="#e8e8e8" d="m37.13 51.688c0-.515-.421-.938-.934-.938h-11.199c-.513 0-.933.423-.933.938v3.75c0 .517.42.938.933.938h11.199c.513 0 .934-.421.934-.938v-3.75"/><path fill="#fff" d="m18 60.13v-.938c0-.258.209-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m23.13 57.781c.257 0 .467-.21.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.209.469.467.469h4.667"/><path fill="#fff" d="m18 56.38v-.938c0-.258.209-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m23.13 54.03c.257 0 .467-.21.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.209.469.467.469h4.667"/><path fill="#fff" d="m18 52.625v-.938c0-.258.209-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m23.13 50.28c.257 0 .467-.21.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.209.469.467.469h4.667"/><path fill="#fff" d="m18 48.875v-.938c0-.258.209-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m42.733 61.53c.257 0 .467-.21.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.21.469.467.469h4.667"/><path fill="#fff" d="m37.6 60.13v-.938c0-.258.21-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m42.733 57.781c.257 0 .467-.21.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.21.469.467.469h4.667"/><path fill="#fff" d="m37.6 56.38v-.938c0-.258.21-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m42.733 54.03c.257 0 .467-.21.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.21.469.467.469h4.667"/><path fill="#fff" d="m37.6 52.625v-.938c0-.258.21-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path fill="#62727a" d="m42.733 50.28c.257 0 .467-.21.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667c-.257 0-.467.211-.467.469v1.875c0 .259.21.469.467.469h4.667"/><g fill="#fff"><path d="m37.6 48.875v-.938c0-.258.21-.469.467-.469h4.667c.257 0 .467.211.467.469v.938h-5.601"/><path d="m24.534 59.11v-1.797c0-.258.208-.469.467-.469h11.199c.257 0 .467.211.467.469v1.797h-12.133"/></g><path fill="#62727a" d="m36.2 55.906c.257 0 .467-.21.467-.469v-3.75c0-.258-.21-.469-.467-.469h-11.199c-.258 0-.467.211-.467.469v3.75c0 .259.208.469.467.469h11.199"/><path fill="#fff" d="m24.534 53.48v-1.797c0-.258.208-.469.467-.469h11.199c.257 0 .467.211.467.469v1.797h-12.133"/><path fill="#e8e8e8" d="m23.13 2h-4.667c-.514 0-.934.422-.934.938v1.875c0 .516.42.938.934.938h4.667c.513 0 .934-.422.934-.938v-1.875c0-.516-.421-.938-.934-.938"/><path fill="#fff" d="m18.467 2.469c-.258 0-.467.21-.467.469v1.875c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667"/><g fill="#e8e8e8"><path d="m23.13 5.75h-4.667c-.514 0-.934.422-.934.938v1.875c0 .516.42.938.934.938h4.667c.513 0 .934-.422.934-.938v-1.875c0-.516-.421-.938-.934-.938"/><path d="m23.13 9.5h-4.667c-.514 0-.934.422-.934.938v1.875c0 .516.42.938.934.938h4.667c.513 0 .934-.422.934-.938v-1.875c0-.516-.421-.938-.934-.938"/><path d="m23.13 13.25h-4.667c-.514 0-.934.422-.934.938v1.875c0 .516.42.938.934.938h4.667c.513 0 .934-.422.934-.938v-1.875c0-.516-.421-.938-.934-.938"/><path d="m42.733 2h-4.667c-.513 0-.933.422-.933.938v1.875c0 .516.42.938.933.938h4.667c.514 0 .934-.422.934-.938v-1.875c0-.516-.42-.938-.934-.938"/><path d="m42.733 5.75h-4.667c-.513 0-.933.422-.933.938v1.875c0 .516.42.938.933.938h4.667c.514 0 .934-.422.934-.938v-1.875c0-.516-.42-.938-.934-.938"/><path d="m42.733 9.5h-4.667c-.513 0-.933.422-.933.938v1.875c0 .516.42.938.933.938h4.667c.514 0 .934-.422.934-.938v-1.875c0-.516-.42-.938-.934-.938"/><path d="m42.733 13.25h-4.667c-.513 0-.933.422-.933.938v1.875c0 .516.42.938.933.938h4.667c.514 0 .934-.422.934-.938v-1.875c0-.516-.42-.938-.934-.938"/><path d="m37.13 6.688c0 .516-.421.938-.934.938h-11.199c-.513 0-.933-.422-.933-.938v-3.75c0-.516.42-.938.933-.938h11.199c.513 0 .934.422.934.938v3.75"/></g><path fill="#fff" d="m25 2.469c-.258 0-.467.21-.467.469v3.75c0 .259.208.469.467.469h11.199c.257 0 .467-.209.467-.469v-3.75c0-.258-.21-.469-.467-.469h-11.199"/><path fill="#e8e8e8" d="m37.13 12.313c0 .516-.421.938-.934.938h-11.199c-.513 0-.933-.422-.933-.938v-3.75c0-.516.42-.938.933-.938h11.199c.513 0 .934.422.934.938v3.75"/><path fill="#62727a" d="m18 3.875v.938c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m18.467 6.219c-.258 0-.467.21-.467.469v1.875c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667"/><path fill="#62727a" d="m18 7.625v.938c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m18.467 9.969c-.257 0-.467.21-.467.469v1.875c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667"/><path fill="#62727a" d="m18 11.375v.938c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m18.467 13.719c-.257 0-.467.21-.467.469v1.875c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.209-.469-.467-.469h-4.667"/><path fill="#62727a" d="m18 15.13v.938c0 .259.209.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m38.07 2.469c-.257 0-.467.21-.467.469v1.875c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667"/><path fill="#62727a" d="m37.6 3.875v.938c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m38.07 6.219c-.257 0-.467.21-.467.469v1.875c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667"/><path fill="#62727a" d="m37.6 7.625v.938c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m38.07 9.969c-.257 0-.467.21-.467.469v1.875c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667"/><path fill="#62727a" d="m37.6 11.375v.938c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path fill="#fff" d="m38.07 13.719c-.257 0-.467.21-.467.469v1.875c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-1.875c0-.258-.21-.469-.467-.469h-4.667"/><g fill="#62727a"><path d="m37.6 15.13v.938c0 .259.21.469.467.469h4.667c.257 0 .467-.209.467-.469v-.938h-5.601"/><path d="m24.534 4.891v1.796c0 .259.208.469.467.469h11.199c.257 0 .467-.209.467-.469v-1.796h-12.133"/></g><path fill="#fff" d="m25 8.094c-.258 0-.467.21-.467.469v3.75c0 .259.208.469.467.469h11.199c.257 0 .467-.209.467-.469v-3.75c0-.258-.21-.469-.467-.469h-11.199"/><path fill="#62727a" d="m24.534 10.516v1.796c0 .259.208.469.467.469h11.199c.257 0 .467-.209.467-.469v-1.796h-12.133"/><path fill="#e8e8e8" d="m52.07 28.25h-2.8v7.5h2.8c.514 0 .934-.421.934-.938v-5.625c0-.515-.42-.937-.934-.937"/><ellipse fill="#62727a" cx="30.6" cy="32" rx="19.6" ry="19.688"/><ellipse fill="#3e4347" cx="30.6" cy="32" rx="16.8" ry="16.875"/><g fill="#62727a"><path d="m49.27 29.656h3.733v.938h-3.733z"/><path d="m49.27 31.531h3.733v.938h-3.733z"/><path d="m49.27 33.406h3.733v.938h-3.733z"/></g><g fill="#e8e8e8"><ellipse cx="30.6" cy="32" rx="1.867" ry="1.875"/><path d="m31.484 24.401c-.13-.499-.417-1.261-.417-1.776v-2.813c0-.516-.21-2.813-.467-2.813-.257 0-.467 2.297-.467 2.813v2.813c0 .516-.287 1.277-.417 1.776-.183.704-.049 1.036-.049 2.911 0 2.813 0 2.813 0 2.813 0 .516.42.938.934.938.513 0 .933-.422.933-.938 0 0 0 0 0-2.813-.001-1.874.133-2.207-.05-2.911"/><path d="m29.325 32.34l.935-1.621 8.08 4.688-.932 1.623z"/></g><circle fill="#62727a" cx="30.6" cy="32" r=".933"/><g fill="#fff"><circle cx="30.6" cy="15.13" r=".933"/><circle cx="22.2" cy="17.386" r=".934"/><circle cx="16.05" cy="23.563" r=".937"/><circle cx="13.8" cy="32" r=".938"/><path d="m15.585 39.626c.447-.258 1.016-.105 1.273.343.258.448.106 1.021-.34 1.281-.447.259-1.016.106-1.274-.342-.259-.45-.107-1.023.341-1.282"/><path d="m21.394 46.15c.258-.448.826-.603 1.273-.344.447.26.6.833.343 1.281-.259.449-.828.603-1.274.343-.449-.258-.603-.83-.342-1.28"/><path d="m29.668 48.875c0-.519.416-.938.932-.938s.933.421.935.939c-.002.517-.417.936-.933.936-.518.002-.935-.417-.934-.937"/><circle cx="39" cy="46.614" r=".934"/><circle cx="45.15" cy="40.44" r=".936"/><circle cx="47.4" cy="31.999" r=".938"/><path d="m45.616 24.374c-.446.259-1.018.106-1.274-.342-.259-.449-.104-1.021.342-1.282.447-.257 1.017-.105 1.274.343.259.45.107 1.022-.342 1.281"/><path d="m39.809 17.854c-.259.449-.829.603-1.275.343-.446-.259-.598-.831-.341-1.281.26-.447.828-.602 1.274-.343.448.26.601.832.342 1.281"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e8e8e8" d="m18 46h26v16h-26z"/><g fill="#62727a"><path d="m24 50h14v3h-14z"/><path d="m24 58h14v3h-14z"/></g><path fill="#fff" d="m24 55h14v3h-14z"/><path fill="#62727a" d="m39 54h4v2h-4z"/><path fill="#fff" d="m39 52h4v2h-4z"/><path fill="#62727a" d="m39 49h4v2h-4z"/><path fill="#fff" d="m39 47h4v2h-4z"/><path fill="#62727a" d="m39 59h4v2h-4z"/><path fill="#fff" d="m39 57h4v2h-4z"/><path fill="#62727a" d="m19 54h4v2h-4z"/><path fill="#fff" d="m19 52h4v2h-4z"/><path fill="#62727a" d="m19 49h4v2h-4z"/><path fill="#fff" d="m19 47h4v2h-4z"/><path fill="#62727a" d="m19 59h4v2h-4z"/><path fill="#fff" d="m19 57h4v2h-4z"/><path fill="#e8e8e8" d="m18 2h26v16h-26z"/><path fill="#62727a" d="m24 6h14v3h-14z"/><g fill="#fff"><path d="m24 3h14v3h-14z"/><path d="m24 11h14v3h-14z"/></g><path fill="#62727a" d="m39 10h4v2h-4z"/><path fill="#fff" d="m39 8h4v2h-4z"/><path fill="#62727a" d="m39 5h4v2h-4z"/><path fill="#fff" d="m39 3h4v2h-4z"/><path fill="#62727a" d="m39 15h4v2h-4z"/><path fill="#fff" d="m39 13h4v2h-4z"/><path fill="#62727a" d="m19 10h4v2h-4z"/><path fill="#fff" d="m19 8h4v2h-4z"/><path fill="#62727a" d="m19 5h4v2h-4z"/><path fill="#fff" d="m19 3h4v2h-4z"/><path fill="#62727a" d="m19 15h4v2h-4z"/><path fill="#fff" d="m19 13h4v2h-4z"/><path d="m52 28h-3v8h3c.6 0 1-.4 1-1v-6c0-.5-.5-1-1-1" fill="#e8e8e8"/><g fill="#62727a"><path d="m49 29.5h4v1h-4z"/><path d="m49 31.5h4v1h-4z"/><path d="m49 33.5h4v1h-4z"/><circle cx="31" cy="32" r="20"/></g><circle cx="31" cy="32" r="17.1" fill="#3e4347"/><g fill="#e8e8e8"><circle cx="31" cy="32" r="1.9"/><path d="m32 24.3l-.5-1.8v-2.9c0-3.6-1-3.6-1 0v2.9l-.5 1.8v5.8c0 1.5 1.9 1.5 1.9 0l.1-5.8"/><path transform="matrix(.5002-.8659.8659.5002-12.2166 46.6457)" d="m33.3 29.1h1.9v9.5h-1.9z"/></g><circle cx="31" cy="32" r="1" fill="#62727a"/><g fill="#fff"><circle cx="31" cy="14.9" r="1"/><circle cx="22.4" cy="17.2" r="1"/><circle cx="16.2" cy="23.4" r="1"/><circle cx="13.9" cy="32" r="1"/><circle cx="16.2" cy="40.6" r="1"/><path d="m21.6 46.4c.3-.5.8-.6 1.3-.3.5.3.6.8.4 1.3-.3.5-.8.6-1.3.3-.5-.3-.7-.9-.4-1.3"/><path d="m30 49.1c0-.5.4-1 1-1s1 .4 1 1c0 .5-.4 1-1 1-.5 0-1-.4-1-1"/><circle cx="39.6" cy="46.8" r="1"/><path d="m45.4 41.4c-.5-.3-.6-.8-.3-1.3.3-.5.8-.6 1.3-.3.5.3.6.8.3 1.3-.3.4-.9.6-1.3.3"/><path d="m48.1 33c-.5 0-1-.4-1-1s.4-1 1-1c.5 0 1 .4 1 1 0 .5-.4 1-1 1"/><circle cx="45.8" cy="23.4" r="1"/><circle cx="39.6" cy="17.2" r="1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/231b.svg b/build/js/jsxc/lib/emojione/assets/svg/231b.svg
index 33f81bb..18acf0a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/231b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/231b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e5e5e5" d="m36.897 33.558c-1.619-.512-2.6-.707-2.6-1.558 0-.849.98-1.046 2.6-1.556 8.747-2.473 11.227-8.788 11.227-19.444h-32.25c0 10.656 2.48 16.97 11.227 19.442 1.619.512 2.6.709 2.6 1.558 0 .851-.98 1.046-2.598 1.558-8.749 2.473-11.229 8.787-11.229 19.442h32.25c0-10.655-2.48-16.97-11.227-19.442"/><path fill="#f5f5f5" d="m35.513 33.558c-1.16-.512-1.863-.707-1.863-1.558 0-.849.703-1.046 1.863-1.556 6.275-2.474 6.924-8.788 6.924-19.444h-20.875c0 10.656.648 16.97 6.924 19.442 1.16.512 1.865.709 1.865 1.558 0 .851-.705 1.046-1.865 1.558-6.276 2.473-6.924 8.787-6.924 19.442h20.875c0-10.655-.649-16.97-6.924-19.442"/><path fill="#428bc1" d="M18.792,53h26.416c0-8.828-13.207-14.241-13.207-14.241S18.792,44.172,18.792,53z"/><g fill="#212528"><path d="m55.999 62.04c0 1.08-.828 1.956-1.852 1.956h-44.3c-1.023 0-1.852-.876-1.852-1.956v-3.088c0-1.08.828-1.956 1.852-1.956h44.3c1.023 0 1.852.876 1.852 1.956v3.088"/><path d="m49.999 10.2c0 .442-.395.8-.879.8h-34.24c-.486 0-.881-.357-.881-.8v-2.4c0-.441.395-.8.881-.8h34.24c.484 0 .879.358.879.8v2.4"/></g><path fill="#51575b" d="m44.999 10.2c0 .442-.305.8-.68.8h-24.64c-.375 0-.68-.357-.68-.8v-2.4c0-.441.305-.8.68-.8h24.641c.375 0 .68.358.68.8v2.4"/><g fill="#212528"><path d="m49.999 56.2c0 .441-.395.8-.879.8h-34.24c-.486 0-.881-.358-.881-.8v-2.4c0-.441.395-.8.881-.8h34.24c.484 0 .879.358.879.8v2.4"/><path d="m55.999 5.04c0 1.08-.828 1.956-1.852 1.956h-44.3c-1.024 0-1.852-.876-1.852-1.956v-3.088c0-1.081.828-1.956 1.852-1.956h44.3c1.023 0 1.852.875 1.852 1.956v3.088"/></g><g fill="#51575b"><path d="m49.999 5.04c0 1.08-.65 1.956-1.453 1.956h-33.09c-.803 0-1.455-.876-1.455-1.956v-3.088c0-1.08.652-1.956 1.455-1.956h33.09c.803 0 1.453.875 1.453 1.956v3.088"/><path d="m49.999 62.04c0 1.08-.65 1.956-1.453 1.956h-33.09c-.803 0-1.455-.876-1.455-1.956v-3.088c0-1.08.652-1.956 1.455-1.956h33.09c.803 0 1.453.876 1.453 1.956v3.088"/></g><path fill="#919191" d="m11.999 7h1v50h-1z"/><path fill="#cecece" d="m10.999 7h1v50h-1z"/><path fill="#919191" d="m51.999 7h1v50h-1z"/><path fill="#cecece" d="m50.999 7h1v50h-1z"/><path fill="#51575b" d="m44.999 56.2c0 .441-.305.8-.68.8h-24.64c-.375 0-.68-.358-.68-.8v-2.4c0-.441.305-.8.68-.8h24.641c.375 0 .68.358.68.8v2.4"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m36.9 33.6c-1.6-.5-2.6-.7-2.6-1.6 0-.8 1-1 2.6-1.6 8.7-2.4 11.2-8.7 11.2-19.4h-32.2c0 10.7 2.5 17 11.2 19.4 1.6.5 2.6.7 2.6 1.6 0 .9-1 1-2.6 1.6-8.7 2.4-11.2 8.7-11.2 19.4h32.2c0-10.7-2.5-17-11.2-19.4" fill="#e5e5e5"/><path d="m35.5 33.6c-1.2-.5-1.9-.7-1.9-1.6 0-.8.7-1 1.9-1.6 6.3-2.5 6.9-8.8 6.9-19.4h-20.8c0 10.7.6 17 6.9 19.4 1.2.5 1.9.7 1.9 1.6 0 .9-.7 1-1.9 1.6-6.3 2.5-6.9 8.8-6.9 19.4h20.9c-.1-10.7-.7-17-7-19.4" fill="#f5f5f5"/><path d="M18.8,53h26.4c0-8.8-13.2-14.2-13.2-14.2S18.8,44.2,18.8,53z" fill="#428bc1"/><g fill="#212528"><path d="m56 62c0 1.1-.8 2-1.9 2h-44.2c-1 0-1.9-.9-1.9-2v-3c0-1.1.8-2 1.9-2h44.3c1 0 1.9.9 1.9 2l-.1 3"/><path d="m50 10.2c0 .4-.4.8-.9.8h-34.2c-.5 0-.9-.4-.9-.8v-2.4c0-.4.4-.8.9-.8h34.2c.5 0 .9.4.9.8 0 0 0 2.4 0 2.4"/></g><path d="m45 10.2c0 .4-.3.8-.7.8h-24.6c-.4 0-.7-.4-.7-.8v-2.4c0-.4.3-.8.7-.8h24.6c.4 0 .7.4.7.8v2.4" fill="#51575b"/><g fill="#212528"><path d="m50 56.2c0 .4-.4.8-.9.8h-34.2c-.5 0-.9-.4-.9-.8v-2.4c0-.4.4-.8.9-.8h34.2c.5 0 .9.4.9.8 0 0 0 2.4 0 2.4"/><path d="m56 5c0 1.1-.8 2-1.9 2h-44.2c-1.1 0-1.9-.9-1.9-2v-3c0-1.1.8-2 1.9-2h44.3c1 0 1.9.9 1.9 2l-.1 3"/></g><g fill="#51575b"><path d="m50 5c0 1.1-.7 2-1.5 2h-33c-.8 0-1.5-.9-1.5-2v-3c0-1.1.7-2 1.5-2h33.1c.7 0 1.4.9 1.4 2 0 0 0 3 0 3"/><path d="m50 62c0 1.1-.7 2-1.5 2h-33c-.8 0-1.5-.9-1.5-2v-3c0-1.1.7-2 1.5-2h33.1c.8 0 1.5.9 1.5 2-.1 0-.1 3-.1 3"/></g><path fill="#919191" d="m12 7h1v50h-1z"/><path fill="#cecece" d="m11 7h1v50h-1z"/><path fill="#919191" d="m52 7h1v50h-1z"/><path fill="#cecece" d="m51 7h1v50h-1z"/><path d="m45 56.2c0 .4-.3.8-.7.8h-24.6c-.4 0-.7-.4-.7-.8v-2.4c0-.4.3-.8.7-.8h24.6c.4 0 .7.4.7.8v2.4" fill="#51575b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2328.svg b/build/js/jsxc/lib/emojione/assets/svg/2328.svg
index 969faf9..c282cf7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2328.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2328.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m52.895 30.641c.017-.299.325-7.366-3.922-11.835-2.202-2.315-5.223-3.491-8.978-3.492-4.928 0-8.428-2.388-10.402-7.1-1.495-3.57-1.512-8.214-1.512-8.214h-.986c0 0 .146 16.301 12.9 16.301 3.475 0 6.254 1.072 8.262 3.185 3.958 4.164 3.657 11.04 3.651 11.1l.987.052"/><path fill="#d0d0d0" d="M64,53c0,1.656-1.344,3-3,3H3c-1.656,0-3-1.344-3-3V32c0-1.656,1.344-3,3-3h58c1.656,0,3,1.344,3,3V53z"/><g fill="#94989b"><path d="m6.5 38.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m11.5 38.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m16.5 38.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m21.5 38.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m26.5 38.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m31.5 38.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m36.5 38.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m41.5 38.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m46.5 38.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m51.5 38.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m61.5 38.801c0 .553-.447 1-1 1h-7c-.553 0-1-.447-1-1h9"/><path d="m11.5 48.801c0 .553-.447 1-1 1h-7c-.552 0-1-.447-1-1h9"/><path d="m16.5 48.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m21.5 48.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m26.5 48.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m31.5 48.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m36.5 48.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m41.5 48.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m46.5 48.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m51.5 48.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m61.5 48.801c0 .553-.447 1-1 1h-7c-.553 0-1-.447-1-1h9"/><path d="m9 43.801c0 .553-.447 1-1 1h-4.5c-.552 0-1-.447-1-1h6.5"/><path d="m14 43.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m19 43.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m24 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m29 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m34 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m39 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m44 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m49 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m54 43.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m61.5 43.801c0 .553-.447 1-1 1h-4.5c-.553 0-1-.447-1-1h6.5"/><path d="m9 53.801c0 .553-.447 1-1 1h-4.5c-.552 0-1-.447-1-1h6.5"/><path d="m14 53.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m19 53.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m44 53.801c0 .553-.447 1-1 1h-22c-.553 0-1-.447-1-1h24"/><path d="m49 53.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m57.9 51.34c0 .553-.426 1-.95 1h-1.9c-.524 0-.95-.447-.95-1h3.8"/><path d="m57.9 53.756c0 .553-.426 1-.951 1h-1.899c-.524 0-.95-.447-.95-1h3.8"/><path d="m53.588 53.756c0 .553-.426 1-.95 1h-1.9c-.524 0-.95-.447-.95-1h3.8"/><path d="m62.15 53.756c0 .553-.426 1-.95 1h-1.9c-.524 0-.95-.447-.95-1h3.8"/><path d="m6.5 33.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m11.5 33.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m16.5 33.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m21.5 33.801c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1h4"/><path d="m26.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m31.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m36.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m41.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m46.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m51.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m56.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/><path d="m61.5 33.801c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1h4"/></g><g fill="#fff"><path d="m6.5 38.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m11.5 38.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m16.5 38.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m21.5 38.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m26.5 38.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m31.5 38.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m36.5 38.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m41.5 38.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m46.5 38.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m51.5 38.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m61.5 38.539c0 .553-.447 1-1 1h-7c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h7c.553 0 1 .447 1 1v2"/><path d="m11.5 48.539c0 .553-.447 1-1 1h-7c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h7c.553 0 1 .447 1 1v2"/><path d="m16.5 48.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m21.5 48.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m26.5 48.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m31.5 48.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m36.5 48.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m41.5 48.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m46.5 48.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m51.5 48.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m61.5 48.539c0 .553-.447 1-1 1h-7c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h7c.553 0 1 .447 1 1v2"/><path d="m9 43.539c0 .553-.447 1-1 1h-4.5c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h4.5c.553 0 1 .447 1 1v2"/><path d="m14 43.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m19 43.539c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m24 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m29 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m34 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m39 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m44 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m49 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m54 43.539c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m61.5 43.539c0 .553-.447 1-1 1h-4.5c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h4.5c.553 0 1 .447 1 1v2"/><path d="m9 53.54c0 .553-.447 1-1 1h-4.5c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h4.5c.553 0 1 .447 1 1v2"/><path d="m14 53.54c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m19 53.54c0 .553-.447 1-1 1h-2c-.552 0-1-.447-1-1v-2c0-.553.448-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m44 53.54c0 .553-.447 1-1 1h-22c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h22c.553 0 1 .447 1 1v2"/><path d="m49 53.54c0 .553-.447 1-1 1h-2c-.553 0-1-.447-1-1v-2c0-.553.447-1 1-1h2c.553 0 1 .447 1 1v2"/><path d="m56.924 52.08h-1.848c-1.436 0-1.436-2.205 0-2.205h1.848c1.434 0 1.434 2.205 0 2.205"/><path d="m56.924 54.49h-1.848c-1.436 0-1.436-2.205 0-2.205h1.848c1.434 0 1.434 2.205 0 2.205"/><path d="m52.611 54.49h-1.848c-1.436 0-1.436-2.205 0-2.205h1.848c1.435 0 1.435 2.205 0 2.205"/><path d="m61.17 54.49h-1.848c-1.435 0-1.435-2.205 0-2.205h1.848c1.435 0 1.435 2.205 0 2.205"/><path d="m5.5 34.539h-2c-1.552 0-1.552-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m10.5 34.539h-2c-1.552 0-1.552-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m15.5 34.539h-2c-1.552 0-1.552-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m20.5 34.539h-2c-1.552 0-1.552-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m25.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m30.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m35.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m40.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m45.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m50.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m55.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/><path d="m60.5 34.539h-2c-1.553 0-1.553-2.266 0-2.266h2c1.553 0 1.553 2.266 0 2.266"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m33 32h-1c0-14.5-5.8-14.5-12-14.5-6.4 0-13 0-13-15.5h1c0 14.5 5.8 14.5 12 14.5 6.4 0 13 0 13 15.5" fill="#94989b"/><path d="M62,59c0,1.7-1.3,3-2.8,3H4.8C3.3,62,2,60.7,2,59V35c0-1.7,1.3-3,2.8-3h54.4c1.6,0,2.8,1.3,2.8,3V59z" fill="#d0d0d0"/><g fill="#fff"><path d="m8 41c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m14 41c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m20 41c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m26 41c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m32 41c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m38 41c0 .5-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m44 41c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m50 41c0 .5-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.5 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m52 47c0 .6-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.5 0 1 .4 1 1v2"/><path d="m46 47c0 .6-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.6 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m40 47c0 .6-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.5 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m34 47c0 .6-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m28 47c0 .6-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m22 47c0 .6-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m16 47c0 .6-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.5.4-1 1-1h2c.6 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m18 53c0 .5-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m16 59c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m22 59c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m24 53c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m30 53c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.5 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m36 53c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m42 53c0 .5-.4 1-1 1h-2c-.6 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v2"/><path d="m48 53c0 .5-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.5 0 1 .4 1 1v2"/><path d="m50 59c0 .5-.4 1-1 1h-2c-.5 0-1-.4-1-1v-2c0-.6.4-1 1-1h2c.5 0 1 .4 1 1 0 0 0 2 0 2"/><path d="m60 41c0 .5-.4 1-.9 1h-6.2c-.5 0-.9-.4-.9-1v-2c0-.6.4-1 .9-1h6.2c.5 0 .9.4.9 1v2"/><path d="m60 59c0 .5-.4 1-.9 1h-6.2c-.5 0-.9-.4-.9-1v-2c0-.6.4-1 .9-1h6.2c.5 0 .9.4.9 1v2"/><path d="m60 53c0 .5-.4 1-.8 1h-8.4c-.4 0-.8-.4-.8-1v-2c0-.6.4-1 .8-1h8.4c.5 0 .8.4.8 1v2"/><path d="m12 53c0 .5-.4 1-.9 1h-6.2c-.5 0-.9-.4-.9-1v-2c0-.6.4-1 .9-1h6.2c.5 0 .9.4.9 1v2"/><path d="m60 47c0 .6-.4 1-.9 1h-4.2c-.5 0-.9-.4-.9-1v-2c0-.5.4-1 .9-1h4.2c.5 0 .9.4.9 1v2"/><path d="m10 47c0 .6-.4 1-.9 1h-4.2c-.5 0-.9-.4-.9-1v-2c0-.5.4-1 .9-1h4.2c.5 0 .9.4.9 1v2"/><path d="m10 59c0 .5-.4 1-.9 1h-4.2c-.5 0-.9-.5-.9-1v-2c0-.5.4-1 .9-1h4.2c.5 0 .9.4.9 1v2"/><path d="m44 59c0 .5-.4 1-.8 1h-18.4c-.5 0-.8-.4-.8-1v-2c0-.5.4-1 .8-1h18.3c.5 0 .8.4.8 1v2z"/><path d="m8.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/><path d="m14.9 36h-1.9c-1.4 0-1.4-2 0-2h1.9c1.5 0 1.5 2 0 2"/><path d="m20.9 36h-1.9c-1.4 0-1.4-2 0-2h1.9c1.5 0 1.5 2 0 2"/><path d="m26.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/><path d="m32.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/><path d="m38.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/><path d="m44.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/><path d="m50.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/><path d="m56.9 36h-1.8c-1.4 0-1.4-2 0-2h1.8c1.5 0 1.5 2 0 2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23cf.svg b/build/js/jsxc/lib/emojione/assets/svg/23cf.svg
new file mode 100644
index 0000000..2229e44
--- /dev/null
+++ b/build/js/jsxc/lib/emojione/assets/svg/23cf.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m16 33.6l16-19 16 19z"/><path d="m16 37.6h32v5.7h-32z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23e9.svg b/build/js/jsxc/lib/emojione/assets/svg/23e9.svg
index 67270d4..60d4f82 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23e9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m19.918 14l12.788 11.879v-11.879l19.374 18-19.374 18v-11.88l-12.788 11.88z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m19.9 14l12.8 11.9v-11.9l19.4 18-19.4 18v-11.9l-12.8 11.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23ea.svg b/build/js/jsxc/lib/emojione/assets/svg/23ea.svg
index e04909f..2530af1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m45 13.999l-12.72 11.879v-11.879l-19.28 18 19.28 18v-11.879l12.72 11.879z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m44.1 14l-12.8 11.9v-11.9l-19.4 18 19.4 18v-11.9l12.8 11.9z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23eb.svg b/build/js/jsxc/lib/emojione/assets/svg/23eb.svg
index b129447..fcc82a9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23eb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23eb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m50 45.999l-11.88-12.719h11.88l-18-19.281-18 19.281h11.879l-11.879 12.719z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="M50 46 38.1 33.3 50 33.3 32 14 14 33.3 25.9 33.3 14 46z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23ec.svg b/build/js/jsxc/lib/emojione/assets/svg/23ec.svg
index 402cf18..17d697d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23ec.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23ec.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="M14 18 25.879 30.722 14 30.722 32 50 50 30.722 38.12 30.722 50 18z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m14 18l11.9 12.7h-11.9l18 19.3 18-19.3h-11.9l11.9-12.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23ed.svg b/build/js/jsxc/lib/emojione/assets/svg/23ed.svg
index dfb9af7..4202a01 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23ed.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23ed.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m52 52c0 2.2 1.8 3.999 4 3.999h4c2.2 0 4-1.799 4-3.999v-40c0-2.2-1.8-3.999-4-3.999h-4c-2.2 0-4 1.799-4 3.999v40"/><path d="M3.04,8.972C1.369,7.281,0,7.854,0,10.247v43.506c0,2.394,1.368,2.966,3.039,1.274l19.708-19.951
- c1.671-1.692,1.671-4.46,0-6.152L3.04,8.972z"/><path d="M27.04,8.972C25.369,7.28,24,7.854,24,10.247v43.505c0,2.394,1.368,2.967,3.039,1.275l19.708-19.951
- c1.671-1.692,1.671-4.46,0-6.152L27.04,8.972z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="M12 18 29.4 32 12 46z"/><path d="m29.4 18l17.4 14-17.4 14z"/><path d="m46.8 18h5.2v28h-5.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23ee.svg b/build/js/jsxc/lib/emojione/assets/svg/23ee.svg
index 7c4271e..e8d3c4f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23ee.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23ee.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m12 52c0 2.2-1.8 3.999-4 3.999h-4c-2.2 0-4-1.799-4-3.999v-40c0-2.2 1.8-3.999 4-3.999h4c2.2 0 4 1.799 4 3.999v40"/><path d="m60.96 8.972c1.671-1.691 3.039-1.119 3.039 1.274v43.506c0 2.394-1.368 2.966-3.039 1.274l-19.708-19.95c-1.671-1.692-1.671-4.46 0-6.152l19.708-19.952"/><path d="m36.96 8.972c1.671-1.692 3.039-1.118 3.039 1.275v43.505c0 2.394-1.368 2.967-3.039 1.275l-19.707-19.951c-1.671-1.692-1.671-4.46 0-6.152l19.707-19.952"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="M52 46 34.6 32 52 18z"/><path d="M34.6 46 17.2 32 34.6 18z"/><path d="m12 18h5.2v28h-5.2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23ef.svg b/build/js/jsxc/lib/emojione/assets/svg/23ef.svg
index 028525c..2fc2c46 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23ef.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23ef.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m28 52c0 2.2 1.8 3.999 4 3.999h4c2.199 0 4-1.799 4-3.999v-40c0-2.199-1.801-3.998-4-3.998h-4c-2.2 0-4 1.799-4 3.998v40"/><path d="m52 52c0 2.2 1.799 3.999 4 3.999h4c2.199 0 4-1.799 4-3.999v-40c0-2.199-1.801-3.998-4-3.998h-4c-2.201 0-4 1.799-4 3.998v40"/><path d="M3.039,8.972C1.368,7.28,0,7.854,0,10.247v43.505c0,2.394,1.368,2.967,3.039,1.275l19.707-19.951
- c1.672-1.692,1.672-4.461,0-6.152L3.039,8.972z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m13 16l19 16-19 16z"/><path d="m35.8 16h5.7v32h-5.7z"/><path d="m45.3 16h5.7v32h-5.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23f0.svg b/build/js/jsxc/lib/emojione/assets/svg/23f0.svg
index 60c095c..fe98612 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#428bc1" cx="32.08" cy="36.02" rx="27" ry="26.985"/><ellipse fill="#fff" cx="32.08" cy="36.02" rx="21" ry="20.988"/><g fill="#428bc1"><path d="m9.539 49.38l-2.457 14.617h2c1.25 0 1.711-1.459 2.524-3.277 1.035-2.314 3.686-8.455 3.686-8.455l-5.753-2.885"/><path d="m54.626 49.38l2.455 14.617h-2c-1.25 0-1.709-1.459-2.523-3.277-1.037-2.314-3.686-8.455-3.686-8.455l5.754-2.885"/><path d="m11.94 8.753l6.289 6.327-3.316 3.341-6.29-6.331z"/><path d="m52.22 8.753l-6.285 6.327 3.315 3.341 6.29-6.331z"/></g><path fill="#94989b" d="m3.791 23.02l18.933-19.05c-2.424-2.452-5.782-3.971-9.489-3.971-7.395 0-13.389 6.03-13.389 13.474 0 3.732 1.508 7.111 3.945 9.55"/><path fill="#d0d0d0" d="m11.396 1.84c-6.386-1.01-10.738 3.382-9.723 9.806.51 3.223 2.272 6.347 4.711 8.785l13.747-13.868c-2.428-2.448-5.533-4.217-8.735-4.723"/><path fill="#94989b" d="m41.13 4.02l19.05 18.933c2.451-2.423 3.97-5.78 3.97-9.488 0-7.396-6.03-13.39-13.473-13.389-3.733-.002-7.112 1.506-9.551 3.944"/><path fill="#d0d0d0" d="m62.31 11.624c1.01-6.386-3.382-10.738-9.807-9.724-3.224.51-6.347 2.273-8.786 4.711l13.869 13.747c2.449-2.427 4.219-5.533 4.724-8.734"/><path fill="#ed4c5c" d="m19.772 47.527l11.07-11.127 1.243 1.246-11.06 11.135z"/><g fill="#428bc1"><circle cx="32.08" cy="36.02" r="4"/><path d="m30.08 21.02h4v15.991h-4z"/><path d="m34.08 34.02h8v3.997h-8z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32.1" cy="35.8" rx="25.2" ry="25.3" fill="#428bc1"/><ellipse cx="32.1" cy="35.8" rx="19.6" ry="19.7" fill="#fff"/><g fill="#428bc1"><path d="M11,48.3L8.8,62h1.9c1.2,0,1.6-1.4,2.4-3.1c1-2.2,3.4-7.9,3.4-7.9L11,48.3z"/><path d="m53.1 48.3l2.3 13.7h-1.9c-1.2 0-1.6-1.4-2.4-3.1-1-2.2-3.4-7.9-3.4-7.9l5.4-2.7"/><path d="m13.3 10.2l5.9 5.9-3.1 3.2-5.9-6z"/><path d="m50.9 10.2l-5.9 5.9 3.1 3.2 5.9-6z"/></g><g fill="#b0b8b8"><path d="M5.7,23.6L23.3,5.7C21.1,3.4,18,2,14.5,2C7.6,2,2,7.7,2,14.6C2,18.1,3.4,21.3,5.7,23.6z"/><path d="m40.5 5.8l17.8 17.7c2.3-2.3 3.7-5.4 3.7-8.9 0-6.9-5.6-12.6-12.6-12.6-3.5.1-6.6 1.5-8.9 3.8"/></g><path fill="#ed4c5c" d="m20.6 46.6l10.3-10.5 1.2 1.2-10.3 10.4z"/><g fill="#428bc1"><ellipse cx="32.1" cy="35.8" rx="3.7" ry="3.7"/><path d="m30.2 21.7h3.7v15h-3.7z"/><path d="m33.9 33.9h7.5v3.7h-7.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23f1.svg b/build/js/jsxc/lib/emojione/assets/svg/23f1.svg
index 3b1b15c..051d3d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m32 0c-3.313 0-6 2.686-6 6 0 3.313 2.687 6 6 6s6-2.687 6-6c0-3.314-2.687-6-6-6m0 10.285c-2.366 0-4.286-1.918-4.286-4.285s1.92-4.286 4.286-4.286 4.286 1.919 4.286 4.286-1.92 4.285-4.286 4.285"/><path fill="#4e5c66" d="m30.513 8.604h2.975v6.543h-2.975z"/><path fill="#647a87" d="m34.514 11.644h-5.03v-5.698c.002-1.528 5.03-1.528 5.03 0v5.697"/><path transform="matrix(.7069-.7073.7073.7069-10.62 15.742)" fill="#4e5c66" d="m11.585 18.585h4.202v4.202h-4.202z"/><path fill="#647a87" d="m15.581 17.563l-5.02 5.02-3.1-3.101c-.616-.616-.615-1.615 0-2.23l2.789-2.79c.616-.615 1.615-.615 2.231 0l3.099 3.1"/><path transform="matrix(.7071.7071-.7071.7071 29.363-29.518)" fill="#4e5c66" d="m48.21 18.585h4.201v4.201h-4.201z"/><g fill="#647a87"><path d="m53.44 22.581l-5.02-5.02 3.101-3.101c.616-.616 1.615-.615 2.23 0l2.79 2.789c.615.616.615 1.615 0 2.231l-3.1 3.1"/><circle cx="32" cy="39" r="25"/></g><circle fill="#d2d3d5" cx="32" cy="39" r="21.667"/><circle fill="#fff" cx="32" cy="39" r="20"/><path fill="#ed4c5c" d="M52,39c0,5.488-2.211,10.46-5.79,14.073L32,39V19C43.045,19,52,27.955,52,39z"/><g fill="#3e4347"><path d="M43.482 50.37 33.29 38.3 31.3 40.29z"/><path d="m31.3 20.667h1.408v5.642h-1.408z"/><path d="m31.3 51.692h1.408v5.642h-1.408z"/><path d="m13.667 38.3h5.641v1.409h-5.641z"/><path d="m44.692 38.3h5.641v1.409h-5.641z"/><path transform="matrix(.8661-.4999.4999.8661-9.02 15.03)" d="m22.833 22.934h1.411v2.821h-1.411z"/><path transform="matrix(.5001-.866.866.5001-17.775 30.28)" d="m16.638 29.13h1.411v2.821h-1.411z"/><path transform="matrix(-.5007-.8656.8656-.5007-15.06 86.24)" d="m16.639 46.05h1.409v2.822h-1.409z"/><path transform="matrix(-.8659-.5002.5002-.8659 17.08 111.89)" d="m22.834 52.25h1.41v2.82h-1.41z"/><path transform="matrix(-.8659.5002-.5002-.8659 102.34 79.881)" d="m39.757 52.24h1.41v2.822h-1.41z"/><path transform="matrix(-.5005.8658-.8658-.5005 111.09 30.821)" d="m45.951 46.05h1.409v2.821h-1.409z"/><path transform="matrix(.5002.8659-.8659.5002 49.764-25.14)" d="m45.95 29.13h1.41v2.821h-1.41z"/><path transform="matrix(.8658.5005-.5005.8658 17.615-16.981)" d="m39.756 22.934h1.409v2.82h-1.409z"/><circle cx="32" cy="39" r="2.821"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 0c-3.3 0-6 2.7-6 6 0 3.3 2.7 6 6 6s6-2.7 6-6c0-3.3-2.7-6-6-6m0 10.3c-2.4 0-4.3-1.9-4.3-4.3s1.9-4.3 4.3-4.3 4.3 1.9 4.3 4.3-1.9 4.3-4.3 4.3" fill="#d0d0d0"/><path fill="#4e5c66" d="m30.5 8.6h3v6.5h-3z"/><path d="m34.5 11.6h-5v-5.7c0-1.5 5-1.5 5 0v5.7" fill="#647a87"/><path transform="matrix(.7069-.7073.7073.7069-10.6189 15.7427)" fill="#4e5c66" d="m11.6 18.6h4.2v4.2h-4.2z"/><path d="m15.6 17.6l-5 5-3.1-3.1c-.6-.6-.6-1.6 0-2.2l2.8-2.8c.6-.6 1.6-.6 2.2 0l3.1 3.1" fill="#647a87"/><path transform="matrix(.7071-.7071.7071.7071.1099 41.6354)" fill="#4e5c66" d="m48.2 18.6h4.2v4.2h-4.2z"/><g fill="#647a87"><path d="m53.4 22.6l-5-5 3.1-3.1c.6-.6 1.6-.6 2.2 0l2.8 2.8c.6.6.6 1.6 0 2.2l-3.1 3.1"/><circle cx="32" cy="39" r="25"/></g><circle cx="32" cy="39" r="21.7" fill="#d2d3d5"/><circle cx="32" cy="39" r="20" fill="#fff"/><path d="M52,39c0,5.5-2.2,10.5-5.8,14.1L32,39V19C43,19,52,28,52,39z" fill="#ed4c5c"/><g fill="#3e4347"><path d="m43.5 50.4l-10.2-12.1-2 2z"/><path d="m31.3 20.7h1.4v5.6h-1.4z"/><path d="m31.3 51.7h1.4v5.6h-1.4z"/><path d="m13.7 38.3h5.6v1.4h-5.6z"/><path d="m44.7 38.3h5.6v1.4h-5.6z"/><path transform="matrix(.8661-.4999.4999.8661-9.0168 15.0271)" d="m22.8 22.9h1.4v2.8h-1.4z"/><path transform="matrix(.5001-.866.866.5001-17.7738 30.286)" d="m16.6 29.1h1.4v2.8h-1.4z"/><path transform="matrix(.8656-.5007.5007.8656-21.4346 15.0628)" d="m15.9 46.8h2.8v1.4h-2.8z"/><path transform="matrix(.5002-.8659.8659.5002-34.6955 47.2015)" d="m22.1 53h2.8v1.4h-2.8z"/><path transform="matrix(.8659-.5002.5002.8659-21.4153 27.4343)" d="m39.8 52.2h1.4v2.8h-1.4z"/><path transform="matrix(.5005-.8658.8658.5005-17.7861 64.0963)" d="m45.9 46.1h1.4v2.8h-1.4z"/><path transform="matrix(.8659-.5002.5002.8659-9.0187 27.4332)" d="m45.2 29.8h2.8v1.4h-2.8z"/><path transform="matrix(.5005-.8658.8658.5005-.8665 47.1914)" d="m39.1 23.6h2.8v1.4h-2.8z"/><circle cx="32" cy="39" r="2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23f2.svg b/build/js/jsxc/lib/emojione/assets/svg/23f2.svg
index da6ce6e..c8f4446 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23f2.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#13618d" d="M62,38.095C62,57.476,48.567,61,31.999,61S2,57.476,2,38.095C2,18.712,15.431,3,31.999,3
- S62,18.712,62,38.095z"/><path fill="#055672" d="m59.05 46.06c0 4.563-5.216 13.495-27.05 13.495-21.833 0-27.05-8.932-27.05-13.495 0-2.109 7.88 7.669 27.05 7.669s27.05-9.779 27.05-7.669"/><ellipse fill="#428bc1" cx="32" cy="27.337" rx="22.479" ry="22.815"/><g fill="#f5f5f5"><ellipse transform="matrix(-.8659-.5003.5003-.8659 19.814 93.23)" cx="22.405" cy="43.958" rx="1.289" ry="1.309"/><ellipse transform="matrix(-.8659-.5002.5002-.8659 72.25 40.8)" cx="41.596" cy="10.716" rx="1.289" ry="1.307"/><ellipse transform="matrix(-.5-.866.866-.5-8.914 68.72)" cx="15.379" cy="36.932" rx="1.289" ry="1.309"/><ellipse transform="matrix(-.5003-.8658.8658-.5003 57.59 68.71)" cx="48.621" cy="17.741" rx="1.289" ry="1.308"/><ellipse cx="12.808" cy="27.337" rx="1.309" ry="1.289"/><ellipse cx="51.19" cy="27.337" rx="1.308" ry="1.289"/><ellipse transform="matrix(.5002-.8659.8659.5002-7.675 22.18)" cx="15.379" cy="17.741" rx="1.289" ry="1.309"/><ellipse transform="matrix(.5003-.8658.8658.5003-7.683 60.55)" cx="48.621" cy="36.932" rx="1.289" ry="1.308"/><ellipse transform="matrix(.866-.5001.5001.866-2.356 12.641)" cx="22.405" cy="10.716" rx="1.289" ry="1.309"/><path d="m42.712 43.31c.362.626.154 1.422-.461 1.776-.617.357-1.41.139-1.771-.486-.361-.628-.155-1.422.462-1.779.615-.356 1.409-.137 1.77.489"/><ellipse cx="32" cy="8.145" rx="1.289" ry="1.309"/><ellipse cx="32" cy="46.528" rx="1.289" ry="1.309"/></g><circle fill="#b0bcc1" cx="32" cy="27.337" r="16"/><circle fill="#f5f5f5" cx="32" cy="25.854" r="14.518"/><path fill="#b0bcc1" d="m37.667 33.26c0 7.261-11.334 7.261-11.334 0 0-7.262 2.537-21.239 5.668-21.239 3.129-.001 5.666 13.977 5.666 21.239"/><path fill="#e4e7ea" d="m36.925 31.796c0 6.994-9.85 6.994-9.85 0 0-6.996 2.205-20.459 4.926-20.459 2.719-.001 4.924 13.463 4.924 20.459"/><path fill="#fff" d="m36.15 29.1c0 6.06-8.291 6.06-8.291 0s1.855-17.719 4.146-17.719c2.289 0 4.145 11.662 4.145 17.719"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,38.1C62,57.5,48.6,61,32,61S2,57.5,2,38.1C2,18.7,15.4,3,32,3S62,18.7,62,38.1z" fill="#13618d"/><path d="m59 46.1c0 4.6-5.2 13.5-27 13.5s-27-9-27-13.5c0-2.1 7.9 7.7 27 7.7s27-9.9 27-7.7" fill="#055672"/><ellipse cx="32" cy="27.3" rx="22.5" ry="22.8" fill="#428bc1"/><g fill="#f5f5f5"><ellipse transform="matrix(.5003-.8659.8659.5003-26.8623 41.3657)" cx="22.4" cy="44" rx="1.3" ry="1.3"/><ellipse transform="matrix(.5002-.8659.8659.5002 11.5116 41.3739)" cx="41.6" cy="10.7" rx="1.3" ry="1.3"/><ellipse transform="matrix(.866-.5.5.866-16.4066 12.6382)" cx="15.4" cy="36.9" rx="1.3" ry="1.3"/><ellipse transform="matrix(.8658-.5003.5003.8658-2.3538 26.7069)" cx="48.6" cy="17.7" rx="1.3" ry="1.3"/><ellipse cx="12.8" cy="27.3" rx="1.3" ry="1.3"/><ellipse cx="51.2" cy="27.3" rx="1.3" ry="1.3"/><ellipse transform="matrix(.5002-.8659.8659.5002-7.6759 22.184)" cx="15.4" cy="17.7" rx="1.3" ry="1.3"/><ellipse transform="matrix(.5003-.8658.8658.5003-7.6836 60.5495)" cx="48.6" cy="36.9" rx="1.3" ry="1.3"/><ellipse transform="matrix(.866-.5001.5001.866-2.3561 12.6411)" cx="22.4" cy="10.7" rx="1.3" ry="1.3"/><path d="m42.7 43.3c.4.6.2 1.4-.5 1.8-.6.4-1.4.1-1.8-.5-.4-.6-.2-1.4.5-1.8.7-.3 1.5-.1 1.8.5"/><ellipse cx="32" cy="8.1" rx="1.3" ry="1.3"/><ellipse cx="32" cy="46.5" rx="1.3" ry="1.3"/></g><circle cx="32" cy="27.3" r="16" fill="#b0bcc1"/><circle cx="32" cy="25.9" r="14.5" fill="#f5f5f5"/><path d="m37.7 33.3c0 7.3-11.3 7.3-11.3 0-.1-7.3 2.5-21.3 5.6-21.3 3.1 0 5.7 14 5.7 21.3" fill="#b0bcc1"/><path d="m36.9 31.8c0 7-9.9 7-9.9 0 0-7 2.2-20.5 4.9-20.5 2.8 0 5 13.5 5 20.5" fill="#e4e7ea"/><path d="m36.1 29.1c0 6.1-8.3 6.1-8.3 0s1.9-17.7 4.1-17.7c2.4 0 4.2 11.6 4.2 17.7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23f3.svg b/build/js/jsxc/lib/emojione/assets/svg/23f3.svg
index 9513aaf..803f932 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e5e5e5" d="m36.897 33.558c-1.619-.512-2.6-.707-2.6-1.558 0-.849.98-1.046 2.6-1.556 8.747-2.473 11.227-8.788 11.227-19.444h-32.25c0 10.656 2.48 16.97 11.227 19.442 1.619.512 2.6.709 2.6 1.558 0 .851-.98 1.046-2.598 1.558-8.749 2.473-11.229 8.787-11.229 19.442h32.25c0-10.655-2.48-16.97-11.227-19.442"/><path fill="#f5f5f5" d="m35.513 33.558c-1.16-.512-1.863-.707-1.863-1.558 0-.849.703-1.046 1.863-1.556 6.275-2.474 6.924-8.788 6.924-19.444h-20.875c0 10.656.648 16.97 6.924 19.442 1.16.512 1.865.709 1.865 1.558 0 .851-.705 1.046-1.865 1.558-6.276 2.473-6.924 8.787-6.924 19.442h20.875c0-10.655-.649-16.97-6.924-19.442"/><path fill="#428bc1" d="m32.948 52.998c0 0-.559-17.909-.559-20.998 0-.838 1.584-2.01 2.313-2.432 3.076-1.775 7.03-5.288 7.03-8.944h-19.468c0 3.656 3.955 7.169 7.03 8.944.727.42 2.313 1.594 2.313 2.432 0 3.17-.559 20.998-.559 20.998h1.898"/><g fill="#212528"><path d="m55.999 62.04c0 1.08-.828 1.956-1.852 1.956h-44.3c-1.023 0-1.852-.876-1.852-1.956v-3.088c0-1.08.828-1.956 1.852-1.956h44.3c1.023 0 1.852.876 1.852 1.956v3.088"/><path d="m49.999 10.2c0 .442-.395.8-.879.8h-34.24c-.486 0-.881-.357-.881-.8v-2.4c0-.441.395-.8.881-.8h34.24c.484 0 .879.358.879.8v2.4"/></g><path fill="#51575b" d="m44.999 10.2c0 .442-.305.8-.68.8h-24.64c-.375 0-.68-.357-.68-.8v-2.4c0-.441.305-.8.68-.8h24.641c.375 0 .68.358.68.8v2.4"/><g fill="#212528"><path d="m49.999 56.2c0 .441-.395.8-.879.8h-34.24c-.486 0-.881-.358-.881-.8v-2.4c0-.441.395-.8.881-.8h34.24c.484 0 .879.358.879.8v2.4"/><path d="m55.999 5.04c0 1.08-.828 1.956-1.852 1.956h-44.3c-1.024 0-1.852-.876-1.852-1.956v-3.088c0-1.081.828-1.956 1.852-1.956h44.3c1.023 0 1.852.875 1.852 1.956v3.088"/></g><g fill="#51575b"><path d="m49.999 5.04c0 1.08-.65 1.956-1.453 1.956h-33.09c-.803 0-1.455-.876-1.455-1.956v-3.088c0-1.08.652-1.956 1.455-1.956h33.09c.803 0 1.453.875 1.453 1.956v3.088"/><path d="m49.999 62.04c0 1.08-.65 1.956-1.453 1.956h-33.09c-.803 0-1.455-.876-1.455-1.956v-3.088c0-1.08.652-1.956 1.455-1.956h33.09c.803 0 1.453.876 1.453 1.956v3.088"/></g><path fill="#919191" d="m11.999 7h1v50h-1z"/><path fill="#cecece" d="m10.999 7h1v50h-1z"/><path fill="#919191" d="m51.999 7h1v50h-1z"/><path fill="#cecece" d="m50.999 7h1v50h-1z"/><path fill="#51575b" d="m44.999 56.2c0 .441-.305.8-.68.8h-24.64c-.375 0-.68-.358-.68-.8v-2.4c0-.441.305-.8.68-.8h24.641c.375 0 .68.358.68.8v2.4"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m36.9 33.6c-1.6-.5-2.6-.7-2.6-1.6 0-.8 1-1 2.6-1.6 8.7-2.4 11.2-8.7 11.2-19.4h-32.2c0 10.7 2.5 17 11.2 19.4 1.6.5 2.6.7 2.6 1.6 0 .9-1 1-2.6 1.6-8.7 2.4-11.2 8.7-11.2 19.4h32.2c0-10.7-2.5-17-11.2-19.4" fill="#e5e5e5"/><path d="m35.5 33.6c-1.2-.5-1.9-.7-1.9-1.6 0-.8.7-1 1.9-1.6 6.3-2.5 6.9-8.8 6.9-19.4h-20.8c0 10.7.6 17 6.9 19.4 1.2.5 1.9.7 1.9 1.6 0 .9-.7 1-1.9 1.6-6.3 2.5-6.9 8.8-6.9 19.4h20.9c-.1-10.7-.7-17-7-19.4" fill="#f5f5f5"/><path d="m32.9 53c0 0-.6-17.9-.6-21 0-.8 1.6-2 2.3-2.4 3.1-1.8 7-5.3 7-8.9h-19.3c0 3.7 4 7.2 7 8.9.7.4 2.3 1.6 2.3 2.4 0 3.2-.6 21-.6 21h1.9" fill="#428bc1"/><g fill="#212528"><path d="m56 62c0 1.1-.8 2-1.9 2h-44.2c-1 0-1.9-.9-1.9-2v-3c0-1.1.8-2 1.9-2h44.3c1 0 1.9.9 1.9 2l-.1 3"/><path d="m50 10.2c0 .4-.4.8-.9.8h-34.2c-.5 0-.9-.4-.9-.8v-2.4c0-.4.4-.8.9-.8h34.2c.5 0 .9.4.9.8 0 0 0 2.4 0 2.4"/></g><path d="m45 10.2c0 .4-.3.8-.7.8h-24.6c-.4 0-.7-.4-.7-.8v-2.4c0-.4.3-.8.7-.8h24.6c.4 0 .7.4.7.8v2.4" fill="#51575b"/><g fill="#212528"><path d="m50 56.2c0 .4-.4.8-.9.8h-34.2c-.5 0-.9-.4-.9-.8v-2.4c0-.4.4-.8.9-.8h34.2c.5 0 .9.4.9.8 0 0 0 2.4 0 2.4"/><path d="m56 5c0 1.1-.8 2-1.9 2h-44.2c-1.1 0-1.9-.9-1.9-2v-3c0-1.1.8-2 1.9-2h44.3c1 0 1.9.9 1.9 2l-.1 3"/></g><g fill="#51575b"><path d="m50 5c0 1.1-.7 2-1.5 2h-33c-.8 0-1.5-.9-1.5-2v-3c0-1.1.7-2 1.5-2h33.1c.7 0 1.4.9 1.4 2 0 0 0 3 0 3"/><path d="m50 62c0 1.1-.7 2-1.5 2h-33c-.8 0-1.5-.9-1.5-2v-3c0-1.1.7-2 1.5-2h33.1c.8 0 1.5.9 1.5 2-.1 0-.1 3-.1 3"/></g><path fill="#919191" d="m12 7h1v50h-1z"/><path fill="#cecece" d="m11 7h1v50h-1z"/><path fill="#919191" d="m52 7h1v50h-1z"/><path fill="#cecece" d="m51 7h1v50h-1z"/><path d="m45 56.2c0 .4-.3.8-.7.8h-24.6c-.4 0-.7-.4-.7-.8v-2.4c0-.4.3-.8.7-.8h24.6c.4 0 .7.4.7.8v2.4" fill="#51575b"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23f8.svg b/build/js/jsxc/lib/emojione/assets/svg/23f8.svg
index 8029c98..3247d55 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#428bc1"><path d="M26,60c0,2.2-1.8,4-4,4h-4c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h4c2.2,0,4,1.8,4,4V60z"/><path d="M50,60c0,2.2-1.8,4-4,4h-4c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h4c2.2,0,4,1.8,4,4V60z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m20 14h8v36h-8z"/><path d="m36 14h8v36h-8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23f9.svg b/build/js/jsxc/lib/emojione/assets/svg/23f9.svg
index a426d3a..874ad6d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23f9.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="M62,58.25c0,2.063-1.687,3.75-3.75,3.75H5.75C3.688,62,2,60.313,2,58.25V5.75C2,3.688,3.688,2,5.75,2h52.5
- C60.313,2,62,3.688,62,5.75V58.25z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m17 17h30v30h-30z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/23fa.svg b/build/js/jsxc/lib/emojione/assets/svg/23fa.svg
index 520cb9a..668d682 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/23fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/23fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3e4347" cx="32" cy="32" r="30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><circle cx="32" cy="32" r="15" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/24c2.svg b/build/js/jsxc/lib/emojione/assets/svg/24c2.svg
index cb47910..fbbf6f8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/24c2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/24c2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m41 15l-9 9-9-9h-6v34h6v-25l9 9 9-9v25h6v-34z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m41 15l-9 9-9-9h-6v34h6v-25l9 9 9-9v25h6v-34z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25aa.svg b/build/js/jsxc/lib/emojione/assets/svg/25aa.svg
index 5f5dcbb..2d0fa0a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25aa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25aa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m48 44c0 2.198-1.803 4-3.998 4h-24c-2.195 0-3.998-1.802-3.998-4v-24c0-2.198 1.803-3.999 3.998-3.999h24c2.195 0 3.998 1.801 3.998 3.999v24"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m16 16h32v32h-32z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25ab.svg b/build/js/jsxc/lib/emojione/assets/svg/25ab.svg
index f871502..ab1ec4d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25ab.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25ab.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m48 44c0 2.198-1.803 4-3.998 4h-24c-2.195 0-3.998-1.802-3.998-4v-24c0-2.198 1.803-3.999 3.998-3.999h24c2.195 0 3.998 1.801 3.998 3.999v24"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m16 16h32v32h-32z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25b6.svg b/build/js/jsxc/lib/emojione/assets/svg/25b6.svg
index 019b9d1..f7ac183 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25b6.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25b6.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="29.999"/><path fill="#fff" d="M25 11.989 45 32 25 52.01z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m25 12l20 20-20 20z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25c0.svg b/build/js/jsxc/lib/emojione/assets/svg/25c0.svg
index d195947..d67bffc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25c0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25c0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="M38 12 18 32 38 52z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="M38 12 18 32 38 52z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25fb.svg b/build/js/jsxc/lib/emojione/assets/svg/25fb.svg
index d763e6e..c3dd9d3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m56 50c0 3.299-2.702 6-5.998 6h-36c-3.296 0-5.998-2.701-5.998-6v-36c0-3.298 2.702-5.999 5.998-5.999h36c3.296 0 5.998 2.701 5.998 5.999v36"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m8 8h48v48h-48z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25fc.svg b/build/js/jsxc/lib/emojione/assets/svg/25fc.svg
index 0da4e42..bf2f030 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m56 50c0 3.299-2.702 6-5.998 6h-36c-3.296 0-5.998-2.701-5.998-6v-36c0-3.298 2.702-5.999 5.998-5.999h36c3.296 0 5.998 2.701 5.998 5.999v36"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m8 8h48v48h-48z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25fd.svg b/build/js/jsxc/lib/emojione/assets/svg/25fd.svg
index b1ce85e..5f5ab3f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M52,47c0,2.75-2.25,5-5,5H17c-2.75,0-5-2.25-5-5V17c0-2.75,2.25-5,5-5h30c2.75,0,5,2.25,5,5V47z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m12 12h40v40h-40z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/25fe.svg b/build/js/jsxc/lib/emojione/assets/svg/25fe.svg
index a8c4c4b..b2a4c81 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/25fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/25fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="M52,47c0,2.75-2.25,5-5,5H17c-2.75,0-5-2.25-5-5V17c0-2.75,2.25-5,5-5h30c2.75,0,5,2.25,5,5V47z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m12 12h40v40h-40z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2600.svg b/build/js/jsxc/lib/emojione/assets/svg/2600.svg
index 7543557..aec6212 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2600.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2600.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe62e"><path d="m19.753 61.56l7.496-7.68c-2.665-.576-5.146-1.632-7.365-3.062l-.131 10.742"/><path d="m44.25 2.437l-7.496 7.679c2.665.577 5.146 1.631 7.364 3.063l.132-10.742"/><path d="m2.436 44.24l10.742-.131c-1.432-2.219-2.485-4.699-3.062-7.363l-7.68 7.494"/><path d="m61.56 19.754l-10.741.131c1.431 2.219 2.485 4.701 3.063 7.365l7.678-7.496"/><path d="m2.436 19.753l7.68 7.496c.576-2.665 1.631-5.146 3.062-7.365l-10.742-.131"/><path d="m61.56 44.25l-7.68-7.495c-.576 2.664-1.631 5.146-3.062 7.364l10.742.131"/><path d="m19.754 2.436l.13 10.742c2.219-1.432 4.701-2.485 7.365-3.062l-7.495-7.68"/><path d="m44.25 61.56l-.131-10.74c-2.219 1.43-4.7 2.485-7.364 3.062l7.495 7.678"/></g><g fill="#ffce31"><path d="m13.601 44.76l-4.229 9.867 9.869-4.229c-2.2-1.528-4.111-3.44-5.64-5.638"/><path d="m50.4 19.242l4.229-9.869-9.868 4.229c2.199 1.529 4.11 3.44 5.639 5.64"/><path d="m9.975 28.01l-9.975 3.99 9.975 3.989c-.233-1.296-.375-2.625-.375-3.988 0-1.364.142-2.693.375-3.991"/><path d="m54.02 35.99l9.976-3.99-9.976-3.991c.232 1.298.375 2.627.375 3.991 0 1.364-.142 2.693-.375 3.99"/><path d="m19.241 13.601l-9.868-4.229 4.229 9.869c1.528-2.2 3.44-4.111 5.639-5.64"/><path d="m44.76 50.4l9.867 4.229-4.229-9.867c-1.528 2.2-3.439 4.111-5.638 5.638"/><path d="m35.99 9.975l-3.99-9.975-3.991 9.975c1.298-.233 2.626-.375 3.99-.375 1.364 0 2.693.142 3.991.375"/><path d="m28.01 54.02l3.991 9.975 3.99-9.975c-1.298.233-2.627.375-3.991.375-1.364 0-2.692-.141-3.99-.375"/><circle cx="32" cy="32" r="20.266"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe62e"><path d="m20.5 59.7l7-7.2c-2.5-.5-4.8-1.5-6.9-2.9l-.1 10.1"/><path d="m43.5 4.3l-7 7.2c2.5.5 4.8 1.5 6.9 2.9l.1-10.1"/><path d="m4.3 43.5l10.1-.1c-1.4-2.1-2.4-4.4-2.9-6.9l-7.2 7"/><path d="m59.7 20.5l-10.1.1c1.3 2.1 2.3 4.4 2.9 6.9l7.2-7"/><path d="m4.3 20.5l7.2 7c.5-2.5 1.5-4.8 2.9-6.9l-10.1-.1"/><path d="m59.7 43.5l-7.2-7c-.5 2.5-1.5 4.8-2.9 6.9l10.1.1"/><path d="m20.5 4.3l.1 10.1c2.1-1.3 4.4-2.3 6.9-2.9l-7-7.2"/><path d="m43.5 59.7l-.1-10.1c-2.1 1.4-4.4 2.4-6.9 2.9l7 7.2"/></g><g fill="#ffce31"><path d="m14.8 44l-4 9.3 9.3-4c-2.1-1.5-3.9-3.3-5.3-5.3"/><path d="m49.2 20l4-9.3-9.2 4c2 1.5 3.8 3.3 5.2 5.3"/><path d="m11.4 28.3l-9.4 3.7 9.4 3.7c-.3-1.2-.4-2.4-.4-3.7s.1-2.5.4-3.7"/><path d="m52.6 35.7l9.4-3.7-9.4-3.7c.2 1.2.4 2.5.4 3.7 0 1.3-.1 2.5-.4 3.7"/><path d="m20 14.8l-9.3-4 4 9.3c1.5-2.1 3.3-3.9 5.3-5.3"/><path d="m44 49.2l9.3 4-4-9.3c-1.5 2.1-3.3 3.9-5.3 5.3"/><path d="m35.7 11.4l-3.7-9.4-3.7 9.4c1.2-.2 2.5-.4 3.7-.4s2.5.1 3.7.4"/><path d="m28.3 52.6l3.7 9.4 3.7-9.4c-1.2.3-2.4.4-3.7.4s-2.5-.1-3.7-.4"/><circle cx="32" cy="32" r="19"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2601.svg b/build/js/jsxc/lib/emojione/assets/svg/2601.svg
index 326afb0..3df7fa6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2601.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2601.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fff" d="m13.995 51c-1.067 0-2.123-.172-3.139-.51-4.099-1.354-6.856-5.169-6.856-9.49 0-2.885 1.25-5.63 3.429-7.531.562-.493 1.173-.917 1.826-1.269l-.033-.003.664-2.314c1.655-5.773 7-9.806 13-9.806.597 0 1.21.048 1.931.151.552.08 1.094.191 1.624.334l.265-.478c2.424-4.37 7.02-7.084 12.01-7.084 7.567 0 13.725 6.162 13.725 13.736 0 .371-.023.732-.054 1.094l-.021.265c.584.223 1.154.495 1.704.813 3.658 2.11 5.932 6.04 5.932 10.252 0 5.548-3.772 10.289-9.174 11.53-.884.206-1.778.31-2.655.31h-34.18"/><path fill="#75d6ff" d="m38.714 15c6.476 0 11.725 5.255 11.725 11.736 0 .315-.021.622-.047.93-2.71.207-5.172 1.288-7.107 2.969 1.439-.828 3.104-1.31 4.885-1.31.66 0 1.303.067 1.926.192 1.063.21 2.063.597 2.971 1.122 2.946 1.7 4.933 4.874 4.933 8.521 0 4.67-3.257 8.578-7.622 9.581-.711.165-1.447.259-2.207.259 0 0-.001 0-.002 0h-34.17c-.877 0-1.718-.145-2.507-.407-3.186-1.053-5.488-4.054-5.488-7.593 0-2.407 1.065-4.56 2.744-6.02.76-.666 1.646-1.186 2.618-1.525.825-.288 1.708-.453 2.633-.453 2.577 0 4.863 1.227 6.325 3.122h.071c-1.696-3.126-4.869-5.331-8.583-5.685 1.382-4.82 5.814-8.357 11.08-8.357.561 0 1.108.054 1.648.131 1.068.154 2.088.447 3.041.872 3.545 1.584 6.137 4.902 6.713 8.877 0-.022.002-.047.002-.068 0-4.527-2.32-8.512-5.835-10.834 2-3.609 5.844-6.05 10.26-6.05m0-4c-5.394 0-10.396 2.774-13.273 7.3-.111-.019-.223-.036-.335-.052-.823-.118-1.526-.172-2.22-.172-6.886 0-13.02 4.628-14.922 11.255l-.452 1.577c-.491.317-.96.67-1.404 1.06-2.608 2.275-4.108 5.569-4.108 9.03 0 5.187 3.309 9.764 8.233 11.391 1.212.403 2.48.609 3.761.609h34.17c1.03 0 2.077-.122 3.113-.362 6.307-1.45 10.718-6.992 10.718-13.478 0-4.927-2.658-9.519-6.937-11.986-.206-.119-.414-.233-.625-.341 0-.032 0-.064 0-.097 0-8.677-7.05-15.736-15.724-15.736z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m14 51c-1.1 0-2.1-.2-3.1-.5-4.1-1.4-6.9-5.2-6.9-9.5 0-2.9 1.2-5.6 3.4-7.5.6-.5 1.2-.9 1.9-1.3l.7-2.3c1.7-5.8 7-9.8 13-9.8.6 0 1.2 0 1.9.2.6.1 1.1.2 1.6.3l.3-.5c2.4-4.4 7-7.1 12-7.1 7.6 0 13.7 6.2 13.7 13.7 0 .4 0 .7-.1 1.1v.3c.6.2 1.2.5 1.7.8 3.7 2.1 5.9 6 5.9 10.3 0 5.5-3.8 10.3-9.2 11.5-.9.2-1.8.3-2.6.3h-34.2" fill="#fff"/><path d="m38.7 15c6.5 0 11.7 5.3 11.7 11.7 0 .3 0 .6 0 .9-2.7.2-5.2 1.3-7.1 3 1.4-.8 3.1-1.3 4.9-1.3.7 0 1.3.1 1.9.2 1.1.2 2.1.6 3 1.1 2.9 1.7 4.9 4.9 4.9 8.5 0 4.7-3.3 8.6-7.6 9.6-.7.2-1.4.3-2.2.3h-34.2c-.9 0-1.7-.1-2.5-.4-3.2-1.1-5.5-4.1-5.5-7.6 0-2.4 1.1-4.6 2.7-6 .8-.7 1.6-1.2 2.6-1.5.8-.3 1.7-.5 2.6-.5 2.6 0 4.9 1.2 6.3 3.1h.1c-1.7-3.1-4.9-5.3-8.6-5.7 1.4-4.8 5.8-8.4 11.1-8.4.6 0 1.1.1 1.6.1 1.1.2 2.1.4 3 .9 3.5 1.6 6.1 4.9 6.7 8.9 0 0 0 0 0-.1 0-4.5-2.3-8.5-5.8-10.8 2.2-3.6 6-6 10.4-6m0-4c-5.4 0-10.4 2.8-13.3 7.3-.1 0-.2 0-.3-.1-.8-.1-1.5-.2-2.2-.2-6.9 0-13 4.6-14.9 11.3l-.5 1.6c-.5.3-1 .7-1.4 1.1-2.6 2.2-4.1 5.5-4.1 9 0 5.2 3.3 9.8 8.2 11.4 1.2.4 2.5.6 3.8.6h34.2c1 0 2.1-.1 3.1-.4 6.3-1.5 10.7-7 10.7-13.5 0-4.9-2.7-9.5-6.9-12-.2-.1-.4-.2-.6-.3 0 0 0-.1 0-.1-.1-8.6-7.1-15.7-15.8-15.7z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2602.svg b/build/js/jsxc/lib/emojione/assets/svg/2602.svg
index f2e1623..2105cf1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2602.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2602.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m32 0c-.553 0-1 .447-1 1v5h2v-5c0-.553-.447-1-1-1"/><path fill="#d0dfe2" d="m31 24h2v26h-2z"/><path fill="#ffbe5c" d="m32 5v26c1.867-2.434 4.836-4.01 8.191-4.01 3.356 0 6.323 1.58 8.191 4.01-1.56-14.642-8.145-26-16.382-26"/><path fill="#ed77a8" d="m32 5v26c-1.867-2.434-4.836-4.01-8.191-4.01-3.356 0-6.323 1.58-8.191 4.01 1.56-14.642 8.145-26 16.382-26"/><path fill="#c7e86f" d="m32 5c8.237 0 14.822 11.358 16.383 26 1.867-2.434 4.836-4.01 8.191-4.01 2.928 0 5.56 1.203 7.426 3.124-3.222-14.36-16.32-25.11-32-25.11"/><path fill="#60d4e0" d="m32 5c-8.237 0-14.822 11.358-16.383 26-1.867-2.434-4.836-4.01-8.191-4.01-2.928 0-5.56 1.203-7.426 3.124 3.222-14.36 16.32-25.11 32-25.11"/><path fill="#3e4347" d="m30 50v6c0 2.205-1.795 4-4 4s-4-1.795-4-4c0-1.104-.896-2-2-2s-2 .896-2 2c0 4.411 3.589 8 8 8s8-3.589 8-8v-6h-4"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-.5 0-.9.4-.9.9v4.7h1.9v-4.7c-.1-.5-.5-.9-1-.9" fill="#3e4347"/><path fill="#b8c2c4" d="m31.1 24.5h1.9v24.4h-1.9z"/><path d="M32,6.7v24.4c1.8-2.3,4.5-3.8,7.7-3.8c3.1,0,5.9,1.5,7.7,3.8C45.9,17.3,39.7,6.7,32,6.7z" fill="#ffbe5c"/><path d="M32,6.7v24.4c-1.8-2.3-4.5-3.8-7.7-3.8s-5.9,1.5-7.7,3.8C18.1,17.3,24.3,6.7,32,6.7z" fill="#ed77a8"/><path d="M32,6.7c7.7,0,13.9,10.6,15.4,24.4c1.8-2.3,4.5-3.8,7.7-3.8c2.7,0,5.2,1.1,7,2.9C59,16.8,46.7,6.7,32,6.7z" fill="#c7e86f"/><path d="m32 6.7c-7.7 0-13.9 10.6-15.4 24.4-1.8-2.3-4.5-3.8-7.7-3.8-2.7 0-5.2 1.1-7 2.9 3.1-13.4 15.4-23.5 30.1-23.5" fill="#60d4e0"/><path d="m30.1 48.9v5.6c0 2.1-1.7 3.8-3.8 3.8s-3.8-1.7-3.8-3.8c0-1-.8-1.9-1.9-1.9s-1.9.8-1.9 1.9c0 4.1 3.4 7.5 7.5 7.5s7.5-3.4 7.5-7.5v-5.6h-3.6" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2603.svg b/build/js/jsxc/lib/emojione/assets/svg/2603.svg
index b8624af..8bfcae8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2603.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2603.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#d0dfe2" cx="31.64" cy="26.946" r="12.444"/><circle fill="#fff" cx="31.64" cy="26.946" r="10.313"/><path fill="#89664c" d="m51.32 32.15l-2.05 4.413-4.391 2.433.441 1.601 4.96-2.759 2.365-5.069z"/><path fill="#13618d" d="m54.25 34.07c-1.248.41-4.561-1.036-4.913-2.291-.142-.501.383-1.629.858-1.844 1.19-.535 4.426 1.071 4.914 2.292.196.488-.36 1.68-.859 1.843"/><path fill="#428bc1" d="m56.49 23.21c-4.991-1.657-4.087 5.89-5.334 3.341-.814-1.665-2.285-1.681-1.94 1.163.338 2.791 3.324 5.184 5.978 4.182 2.6-.982 5.432-7.312 1.296-8.686"/><path fill="#89664c" d="m12.675 32.15l2.056 4.413 4.389 2.433-.437 1.601-4.964-2.758-2.363-5.07z"/><path fill="#13618d" d="m9.749 34.07c1.249.41 4.56-1.036 4.913-2.291.143-.503-.382-1.629-.859-1.844-1.189-.537-4.424 1.071-4.914 2.292-.195.487.362 1.68.86 1.843"/><path fill="#428bc1" d="m7.508 23.21c4.992-1.658 4.086 5.89 5.334 3.341.815-1.665 2.285-1.682 1.94 1.163-.337 2.791-3.323 5.184-5.977 4.182-2.601-.982-5.432-7.312-1.297-8.686"/><path fill="#d0dfe2" d="m51.39 49.834c0 8.925-8.681 11.229-19.389 11.229-10.709 0-19.39-2.304-19.39-11.229 0-8.924 8.681-16.16 19.39-16.16 10.708 0 19.389 7.232 19.389 16.16"/><path fill="#fff" d="m49.34 48.926c0 7.44-7.764 11.779-17.338 11.779-9.575 0-17.336-4.339-17.336-11.779 0-7.442 7.762-13.475 17.336-13.475 9.574 0 17.338 6.03 17.338 13.475"/><g fill="#3e4347"><ellipse cx="32" cy="40.26" rx="1.595" ry="1.74"/><ellipse cx="32" cy="46.724" rx="1.595" ry="1.737"/></g><path fill="#d0dfe2" d="M62,62h-4.453l-32.83-2.232L6.746,62H2c0-4.164,9.806-11.078,25.822-7.213
- C43.911,58.671,55.244,55.197,62,62z"/><path fill="#fff" d="m57.55 62h-50.801c0-3.545 6.833-9.52 20.08-5.396 13.385 4.167 22.573.782 30.721 5.396"/><g fill="#a2cbdb"><path d="m11.428 8.68l2.049-3.157-3.157 2.048-.82-5.571-.822 5.572-3.157-2.049 2.047 3.155-5.568.823 5.572.823-2.051 3.155 3.155-2.05.824 5.571.822-5.571 3.155 2.05-2.051-3.157 5.574-.821z"/><path d="m55.08 11.826l1.22-1.875-1.88 1.217-.482-3.308-.488 3.308-1.875-1.217 1.216 1.874-3.311.488 3.313.489-1.218 1.873 1.875-1.216.488 3.309.492-3.309 1.87 1.216-1.22-1.874 3.31-.488z"/><path d="m19.932 51.01l1.781-2.75-2.745 1.78-.714-4.84-.714 4.84-2.746-1.78 1.78 2.74-4.842.719 4.846.721-1.784 2.74 2.744-1.78.716 4.84.715-4.84 2.744 1.78-1.783-2.75 4.847-.711z"/><path transform="matrix(.7071-.7071.7071.7071-11.252 16.455)" d="m12.896 20.469h2.681v2.682h-2.681z"/><path transform="matrix(.7072-.707.707.7072-26.25 15.56)" d="m4.322 38.13h2.681v2.682h-2.681z"/><path transform="matrix(.7073-.7069.7069.7073-20.06 57.21)" d="m57.719 51.49h2.681v2.682h-2.681z"/><path transform="matrix(.707-.7072.7072.707 9.446 35.477)" d="m46.2 4.998h2.681v2.682h-2.681z"/><path transform="matrix(.7067-.7075.7075.7067 13.303 42.893)" d="m57.727 4.738h1.325v1.325h-1.325z"/><path transform="matrix(.7071-.7071.7071.7071-10.81 49.05)" d="m53.14 36.911h1.326v1.326h-1.326z"/><path transform="matrix(.7071-.7071.7071.7071-13.486 54.51)" d="m58.4 42.871h1.324v1.326h-1.324z"/><path transform="matrix(.7067-.7075.7075.7067-34.785 19.52)" d="m5.49 51.06h1.325v1.325h-1.325z"/><path transform="matrix(.7069-.7073.7073.7069 1.985 16.781)" d="m20.579 5.332h1.325v1.325h-1.325z"/></g><path fill="#3e4347" d="m31.641 31.02c-2.373 0-4.659-1.087-6.272-2.979-.276-.328-.237-.818.09-1.098.325-.277.817-.239 1.096.089 1.335 1.568 3.143 2.433 5.086 2.433s3.75-.864 5.084-2.433c.279-.328.771-.366 1.097-.089.326.279.365.77.088 1.098-1.611 1.893-3.897 2.979-6.269 2.979"/><circle fill="#ff8736" cx="31.649" cy="24.654" r="2.343"/><g fill="#3e4347"><circle cx="25.538" cy="22.11" r="1.875"/><circle cx="37.743" cy="22.11" r="1.875"/></g><path fill="#ed4c5c" d="m19.975 16.529c0 0 0-5.472 4.732-6.416 0 0-.326-4.796 12.457-7.554 5.618-1.211 6.729-1.341 8.06 9.08.513 4.02 5.407 7.193 1.656 8.434-1.235.408-1.173 2.357-1.173 2.357l-13.1-5.05-12.626-.843"/><g fill="#cc2e45"><path d="m24.707 10.114c.974-.245 1.979-.355 2.984-.403 1.01-.049 2.02.001 3.02.136 1.985.285 4.03.965 5.496 2.368-1.695-1.081-3.618-1.607-5.565-1.88-1.951-.274-3.936-.303-5.937-.221"/><path d="m47.41 18.476c-1.082-.42-2.125-.975-3.051-1.714-.934-.725-1.691-1.701-2.195-2.777-.507-1.077-.808-2.197-1.283-3.229-.468-1.035-1.167-1.956-2-2.765.965.649 1.781 1.548 2.342 2.595.578 1.038.896 2.171 1.389 3.188.472 1.028 1.156 1.935 1.995 2.702.84.768 1.814 1.398 2.806 2"/></g><circle fill="#c4ccce" cx="48.2" cy="19.655" r="3.64"/><g fill="#f5f5f5"><circle cx="48.2" cy="18.961" r="2.948"/><path d="m33.786 14.87c-8.155-1.473-15.296.261-15.95 3.877-.255 1.413.443 2.966 1.97 4.347-.579-3.438 6.656-5.331 13.293-4.132 6.639 1.201 12.209 4.503 10.985 8.422 1.913-.761 3.03-1.88 3.284-3.295.653-3.617-5.427-7.744-13.582-9.219"/></g><path fill="#c4ccce" d="m33.1 17.892c-8.156-1.474-16.11 2.228-13.293 5.201 1.091-3.144 6.504-4.778 13.14-3.58 6.638 1.203 10.871 4.641 11.138 7.87 4.116-2.459-2.832-8.02-10.986-9.491"/><path fill="#cc2e45" d="m20.14 32.531c-.763-.095 0 1.635 0 2.177 0 .546-.649 1.796 0 2.181 4.071 2.421 18.567-.229 23.03 0 .733.039 0-1.635 0-2.181 0-.543.576-1.753 0-2.177-3.619-2.664-16.689.783-23.03 0"/><path fill="#ed4c5c" d="m41.19 47.844c-2.523-1.016-6.91 1.322-6.266 0 1.64-3.378 2.776-13.561.103-16.218-1.066-1.061 4.853-.936 5.959.091 3.094 2.861 1.881 16.805.204 16.13"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m52.2 32.2l-2.1 4.4-4.5 2.4.5 1.6 5-2.8 2.4-5z"/><path d="m55.2 34.1c-1.3.4-4.6-1-5-2.3-1.4-4.9 9.5.8 5 2.3" fill="#13618d"/><path d="m57.5 23.2c-5.1-1.7-4.2 5.9-5.4 3.3-.8-1.7-2.3-1.7-2 1.2.3 2.8 3.4 5.2 6.1 4.2 2.6-1 5.5-7.3 1.3-8.7" fill="#428bc1"/><path fill="#89664c" d="m12.9 32.2l2.1 4.4 4.4 2.4-.4 1.6-5.1-2.8-2.4-5z"/><path d="m9.9 34.1c1.3.4 4.6-1 5-2.3 1.4-4.8-9.9.7-5 2.3" fill="#13618d"/><path d="m7.6 23.2c5.1-1.7 4.2 5.9 5.4 3.3.8-1.7 2.3-1.7 2 1.2-.3 2.8-3.4 5.2-6.1 4.2-2.6-1-5.5-7.3-1.3-8.7" fill="#428bc1"/><circle cx="32.5" cy="45" r="17" fill="#d0d0d0"/><path d="m32.5 30c-8.3 0-15 6.7-15 15s6.7 15 15 15c8.3 0 15-6.7 15-15s-6.7-15-15-15" fill="#fff"/><circle cx="32.5" cy="25.5" r="13" fill="#d0d0d0"/><path d="m32.5 14.5c-6.1 0-11 4.9-11 11 0 6.1 4.9 11 11 11 6.1 0 11-4.9 11-11 0-6-4.9-11-11-11" fill="#fff"/><circle cx="32.5" cy="26.4" r="2.5" fill="#ff8736"/><g fill="#3e4347"><circle cx="27.1" cy="21.8" r="2"/><circle cx="37.9" cy="21.8" r="2"/><path d="m30.9 46.3l-1.1-3.2 2.8-2 2.7 2-1 3.2z"/><path d="m30.9 56.1l-1.1-3.2 2.8-2 2.7 2-1 3.2z"/><path d="m32.5 34c-3.1 0-6-1.3-8.1-3.6-1.2-1.3.3-2.6 1.5-1.4 1.7 1.9 4.2 2.9 6.7 2.9 2.5 0 4.9-1.1 6.7-2.9 1.2-1.3 2.7 0 1.5 1.4-2.2 2.2-5.2 3.6-8.3 3.6"/></g><g fill="#a2cbdb"><path d="m12.1 9.1l2.1-3.3-3.3 2.1-.9-5.9-.9 5.9-3.3-2.1 2.1 3.3-5.9.9 5.9.9-2.1 3.3 3.3-2.1.9 5.9.9-5.9 3.3 2.1-2.1-3.3 5.9-.9z"/><path d="m56.1 48.1l2.1-3.3-3.3 2.1-.9-5.9-.9 5.9-3.3-2.1 2.1 3.3-5.9.9 5.9.9-2.1 3.3 3.3-2.1.9 5.9.9-5.9 3.3 2.1-2.1-3.3 5.9-.9z"/><path d="m57.5 7.3l1.7-2.5-2.5 1.7-.7-4.5-.7 4.5-2.5-1.7 1.7 2.5-4.5.7 4.5.7-1.7 2.5 2.5-1.7.7 4.5.7-4.5 2.5 1.7-1.7-2.5 4.5-.7z"/><path d="m10.8 54.2l1.9-2.9-2.9 1.9-.8-5.2-.8 5.2-2.9-1.9 1.9 2.9-5.2.8 5.2.8-1.9 2.9 2.9-1.9.8 5.2.8-5.2 2.9 1.9-1.9-2.9 5.2-.8z"/></g><path d="m20.3 16.5c0 0 0-5.5 4.8-6.4 0 0-.3-4.8 12.7-7.6 5.7-1.2 6.8-1.3 8.2 9.1.5 4 5.5 7.2 1.7 8.4-1.3.5-27.4-3.5-27.4-3.5" fill="#ed4c5c"/><ellipse cx="49" cy="19.7" rx="3.7" ry="3.6" fill="#c4ccce"/><g fill="#f5f5f5"><ellipse cx="49" cy="19" rx="3" ry="2.9"/><path d="m34.3 14.9c-8.3-1.5-15.6.3-16.2 3.9-.3 1.4.1 3.2 1.6 4.5-.6-3.4 7.2-5.5 13.9-4.3 6.8 1.2 12.9 4.7 11.7 8.6 1.9-.8 2.6-2 2.9-3.5.6-3.6-5.6-7.8-13.9-9.2"/></g><path d="m33.7 17.9c-8.3-1.5-16.8 2.4-13.9 5.4 1.1-3.1 7-5 13.8-3.8 6.8 1.2 11.5 4.8 11.8 8 4.1-2.4-3.4-8.1-11.7-9.6" fill="#c4ccce"/><path d="m21.2 31.9c-1.5-1.1-3.6 3.3-2.8 3.7 11.4 6 21 1.5 28.4.1.9 0-1.4-4.2-2.9-3.7-13.1 4.2-17.6 3.4-22.7-.1" fill="#cc2e45"/><path d="m43.8 48.9c-2.6-1-7 1.3-6.4 0 1.7-3.4 3.5-12.6.8-15.3-1.1-1.1 4.2-2.6 5.4-1.6 3.1 2.9 1.9 17.5.2 16.9" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2604.svg b/build/js/jsxc/lib/emojione/assets/svg/2604.svg
index 23f2c05..7ad1c66 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2604.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2604.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#62bbc7"><path d="m25.453 8.314l-20.602 40.12v10.72h10.715z"/><path d="m55.686 38.547l-50.835 9.883v10.72h10.715z"/></g><g fill="#6dd1de"><path d="m39.74 8.314l-34.889 40.12v10.72h10.715z"/><path d="m55.686 24.26l-40.12 34.89h-10.715v-10.72z"/></g><path fill="#7df0ff" d="m62 2l-57.15 46.43v10.72h10.715z"/><path fill="#c2f8ff" d="m33.426 30.574l-28.575 17.856v10.72h10.715z"/><circle fill="#7df0ff" cx="9.578" cy="54.42" r="7.577"/><circle fill="#5995c1" cx="9.577" cy="54.42" r="6.695"/><circle fill="#4b7ea3" cx="9.405" cy="49.943" r="1.477"/><circle fill="#5995c1" cx="9.326" cy="49.591" r="1.223"/><circle fill="#4b7ea3" cx="14.15" cy="52.705" r=".972"/><circle fill="#5995c1" cx="14.1" cy="52.47" r=".805"/><circle fill="#4b7ea3" cx="11.736" cy="58.846" r="1.454"/><circle fill="#5995c1" cx="11.658" cy="58.5" r="1.202"/><circle fill="#4b7ea3" cx="4.68" cy="52.903" r=".971"/><circle fill="#5995c1" cx="4.627" cy="52.672" r=".805"/><circle fill="#4b7ea3" cx="7.858" cy="56.25" r="2.461"/><circle fill="#5995c1" cx="7.726" cy="55.661" r="2.036"/><g fill="#c2f8ff"><path transform="matrix(.7071-.7071.7071.7071-19.283 18.64)" d="m11.428 31.17h2.86v2.86h-2.86z"/><path transform="matrix(.7068-.7074.7074.7068-7.954 29.329)" d="m29.972 22.83h2.86v2.86h-2.86z"/><path transform="matrix(.7069-.7073.7073.7069-.356 24.989)" d="m28.546 11.495h2.86v2.86h-2.86z"/><path transform="matrix(.7072-.707.707.7072 1.09 42.876)" d="m50.88 18.691h2.86v2.861h-2.86z"/><path transform="matrix(.7071-.7071.7071.7071-12.61 43.45)" d="m44.712 35.515h2.86v2.861h-2.86z"/><path transform="matrix(.7071-.7071.7071.7071-14.988 23.739)" d="m20.455 29.25h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-11.549 20.638)" d="m18.431 23.553h1.414v1.414h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-16.745 36.641)" d="m35.18 37.84h1.414v1.414h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-24.12 36.474)" d="m31.29 46.662h1.414v1.414h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-18.513 41.881)" d="m40.626 42.595h1.414v1.414h-1.414z"/><path transform="matrix(.7075-.7068.7068.7075-3.796 40.599)" d="m46.44 24.18h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-5.272 47.19)" d="m53.626 29.25h1.414v1.414h-1.414z"/><path transform="matrix(.7073-.7069.7069.7073 4.907 33.854)" d="m42.626 10.294h1.414v1.414h-1.414z"/><path transform="matrix(.7073-.7069.7069.7073 10.943 33.682)" d="m45.44 2.92h1.414v1.414h-1.414z"/><path transform="matrix(.7073-.7069.7069.7073 4.335 27.1)" d="m34.18 7.607h1.414v1.414h-1.414z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#62bbc7"><path d="m25.5 8.3l-20.6 40.1v10.7h10.7z"/><path d="m55.7 38.5l-50.8 9.9v10.7h10.7z"/></g><g fill="#6dd1de"><path d="m39.7 8.3l-34.8 40.1v10.7h10.7z"/><path d="m55.7 24.3l-40.1 34.8h-10.7v-10.7z"/></g><path fill="#7df0ff" d="m62 2l-57.1 46.4v10.7h10.7z"/><path fill="#c2f8ff" d="m33.4 30.6l-28.5 17.8v10.7h10.7z"/><circle cx="9.6" cy="54.4" r="7.6" fill="#7df0ff"/><circle cx="9.6" cy="54.4" r="6.7" fill="#5995c1"/><circle cx="9.4" cy="49.9" r="1.5" fill="#4b7ea3"/><circle cx="9.3" cy="49.6" r="1.2" fill="#5995c1"/><circle cx="14.2" cy="52.7" r="1" fill="#4b7ea3"/><circle cx="14.1" cy="52.5" r=".8" fill="#5995c1"/><circle cx="11.7" cy="58.8" r="1.5" fill="#4b7ea3"/><circle cx="11.7" cy="58.5" r="1.2" fill="#5995c1"/><circle cx="4.7" cy="52.9" r="1" fill="#4b7ea3"/><circle cx="4.6" cy="52.7" r=".8" fill="#5995c1"/><circle cx="7.9" cy="56.2" r="2.5" fill="#4b7ea3"/><circle cx="7.7" cy="55.7" r="2" fill="#5995c1"/><g fill="#c2f8ff"><path transform="matrix(.7071-.7071.7071.7071-19.2836 18.6395)" d="m11.4 31.2h2.9v2.9h-2.9z"/><path transform="matrix(.7068-.7074.7074.7068-7.9561 29.3277)" d="m30 22.8h2.9v2.9h-2.9z"/><path transform="matrix(.7069-.7073.7073.7069-.3554 24.9898)" d="m28.5 11.5h2.9v2.9h-2.9z"/><path transform="matrix(.7072-.707.707.7072 1.0891 42.875)" d="m50.9 18.7h2.9v2.9h-2.9z"/><path transform="matrix(.7071-.7071.7071.7071-12.6103 43.4481)" d="m44.7 35.5h2.9v2.9h-2.9z"/><path transform="matrix(.7071-.7071.7071.7071-14.9873 23.7388)" d="m20.5 29.3h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-11.5491 20.6382)" d="m18.4 23.6h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-16.744 36.6429)" d="m35.2 37.8h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-24.1163 36.4763)" d="m31.3 46.7h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-18.5117 41.8827)" d="m40.6 42.6h1.4v1.4h-1.4z"/><path transform="matrix(.7075-.7068.7068.7075-3.7945 40.6011)" d="m46.4 24.2h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-5.2721 47.1943)" d="m53.6 29.3h1.4v1.4h-1.4z"/><path transform="matrix(.7073-.7069.7069.7073 4.9054 33.8531)" d="m42.6 10.3h1.4v1.4h-1.4z"/><path transform="matrix(.7073-.7069.7069.7073 10.9414 33.6821)" d="m45.4 2.9h1.4v1.4h-1.4z"/><path transform="matrix(.7073-.7069.7069.7073 4.3338 27.0972)" d="m34.2 7.6h1.4v1.4h-1.4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/260e.svg b/build/js/jsxc/lib/emojione/assets/svg/260e.svg
index 6c67058..2be32eb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/260e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/260e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#333"><path d="m24.23 55.962c0 2.229-1.802 4.04-4.02 4.04h-5.556c-2.223 0-4.02-1.809-4.02-4.04v-2.581h13.604v2.581"/><path d="m53.37 55.962c0 2.229-1.802 4.04-4.02 4.04h-5.556c-2.222 0-4.02-1.809-4.02-4.04v-2.581h13.604v2.581z"/></g><path fill="#676e72" d="m56.13 9.09c-4.596-3.03-13.688-5.094-24.16-5.093-12.05-.001-22.269 2.733-25.914 6.526-2.473 2.43-4.062 6.163-4.062 10.358 0 3.672 21.563 3.672 21.563 0 0-2.818-.721-5.426-1.941-7.575 3.194-.459 6.686-.716 10.354-.717 3.684 0 7.191.261 10.397.723-1.218 2.147-1.936 4.753-1.936 7.569 0 3.672 21.563 3.672 21.563-.001 0-5.142-2.387-9.591-5.867-11.79"/><g fill="#333"><path d="m17.916 10.897c1.357 2.382 5.246 8.501 2.814 10.926 5.255-.258.298-9.957-2.814-10.926"/><path d="m56.35 10.896c1.354 2.381 5.244 8.504 2.813 10.927 5.253-.258.296-9.956-2.813-10.927"/></g><path fill="#676e72" d="m57.55 51.711c0 2.23-1.802 4.04-4.02 4.04h-43.06c-2.223 0-4.02-1.809-4.02-4.04v-7.285h51.1v7.285"/><path fill="#333" d="m57.55 44.43h-51.1c0 0 4.754-11.326 11.267-11.326h28.57c6.513 0 11.268 11.326 11.268 11.326"/><path fill="#676e72" d="m52.15 39.911h-40.31c0 .002 3.749-18.04 8.888-18.04h22.533c5.138 0 8.887 18.04 8.887 18.04"/><path fill="#333" d="m40.761 8.08c-1.093.962-1.92 4.141-3.164 4.894-2.397 1.449-8.796 1.449-11.194 0-1.243-.752-2.071-3.932-3.164-4.894-.755-.665-3.473-.847-4.02 0-1.53 2.372 3.043 8.686 5.636 9.787 3.29 1.397 10.999 1.397 14.289 0 2.593-1.101 7.166-7.415 5.637-9.787-.548-.847-3.266-.664-4.02 0"/><path fill="#a59a7c" d="m46.811 25.13c1.807 6.513-4.68 13.159-14.954 13.159-10.276 0-16.585-6.646-14.605-13.159 1.576-5.184 8.123-8.669 14.894-8.669 6.77 0 13.225 3.485 14.665 8.669"/><path fill="#f9eeb6" d="m46.13 24.488c1.62 6.06-4.585 12.162-14.251 12.162s-15.708-6.103-13.928-12.162c1.435-4.88 7.686-8.192 14.198-8.192 6.511 0 12.675 3.312 13.981 8.192"/><path fill="#a59a7c" d="m38.01 24.632c.26 2.464-2.43 4.648-6.03 4.648-3.602 0-6.234-2.184-5.908-4.648.296-2.247 2.98-3.925 6.02-3.925 3.039 0 5.681 1.678 5.917 3.925"/><path fill="#d1c5b5" d="m37.751 24.375c.231 2.288-2.343 4.3-5.768 4.3-3.424 0-5.944-2.01-5.654-4.3.267-2.094 2.836-3.668 5.761-3.668 2.922 0 5.451 1.573 5.661 3.668"/><g fill="#a8a08d"><path d="m30.455 17.401c-.97.561-1.039 1.5-.11 2.1.954.618 2.55.618 3.521 0 .944-.601.898-1.54-.056-2.1-.929-.546-2.412-.546-3.355 0"/><path d="m35.866 20.02c.063.898 1.279 1.652 2.724 1.652 1.439 0 2.474-.753 2.313-1.652-.153-.864-1.366-1.54-2.709-1.54-1.347 0-2.387.677-2.328 1.54"/><path d="m36.532 29.652c.092 1.323 1.591 2.44 3.354 2.44 1.754 0 2.98-1.117 2.744-2.44-.227-1.262-1.714-2.242-3.327-2.242-1.619 0-2.858.98-2.771 2.242"/><path d="m29.585 34.04c1.253 1.083 3.374 1.083 4.653 0 1.237-1.046 1.16-2.663-.092-3.615-1.213-.922-3.137-.922-4.371 0-1.278.953-1.398 2.569-.19 3.615"/><path d="m21.311 29.652c-.271 1.32.923 2.44 2.681 2.44 1.759 0 3.292-1.12 3.417-2.44.12-1.262-1.094-2.242-2.711-2.242s-3.128.98-3.387 2.242"/><path d="m20.01 25.765c.928.801 2.749.801 4.01 0 1.223-.777 1.4-1.987.457-2.706-.917-.698-2.591-.698-3.797 0-1.242.718-1.567 1.928-.668 2.706"/><path d="m28.329 20.02c.084-.865-.941-1.541-2.285-1.541-1.346 0-2.573.676-2.75 1.541-.184.896.828 1.651 2.27 1.651 1.439-.001 2.681-.755 2.765-1.651"/></g><g fill="#fff"><path d="m30.469 17.568c-.959.565-1.029 1.513-.11 2.117.945.624 2.525.624 3.486 0 .934-.604.89-1.552-.053-2.117-.919-.549-2.389-.549-3.323 0"/><path d="m35.827 20.2c.061.907 1.268 1.667 2.698 1.667 1.424 0 2.448-.76 2.287-1.667-.152-.869-1.353-1.552-2.682-1.552-1.333 0-2.361.683-2.303 1.552"/><path d="m36.488 29.929c.09 1.336 1.577 2.464 3.323 2.464 1.741 0 2.955-1.128 2.72-2.464-.226-1.273-1.7-2.263-3.298-2.263-1.604 0-2.831.989-2.745 2.263"/><path d="m29.602 34.36c1.24 1.096 3.343 1.096 4.613 0 1.226-1.057 1.148-2.689-.093-3.653-1.2-.932-3.107-.932-4.332 0-1.267.964-1.386 2.597-.188 3.653"/><path d="m21.402 29.929c-.271 1.333.913 2.464 2.657 2.464 1.742 0 3.261-1.131 3.388-2.464.12-1.275-1.084-2.263-2.685-2.263-1.601 0-3.1.988-3.36 2.263"/><path d="m20.12 26c.918.809 2.722.809 3.972 0 1.211-.784 1.389-2 .455-2.73-.908-.704-2.566-.704-3.761 0-1.232.725-1.555 1.946-.666 2.73"/><path d="m28.363 20.21c.083-.872-.931-1.554-2.26-1.554-1.333 0-2.549.682-2.726 1.554-.183.904.819 1.665 2.247 1.665 1.427 0 2.655-.762 2.739-1.665"/></g><path fill="#a59a7c" d="m47.02 32.07l-2.353 1.07-3.397-7.853.13-.361 5.71 6.74z"/><path fill="#d1c5b5" d="m47.11 31.666l-2.335 1.043-3.375-7.783 1.31-.443z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#333"><path d="m24.2 56c0 2.2-1.8 4-4 4h-5.6c-2.2 0-4-1.8-4-4v-2.6h13.6v2.6"/><path d="m53.4 56c0 2.2-1.8 4-4 4h-5.6c-2.2 0-4-1.8-4-4v-2.6h13.6v2.6"/></g><path d="m56.1 9.1c-4.6-3-13.7-5.1-24.1-5.1-12 0-22.3 2.7-25.9 6.5-2.5 2.5-4.1 6.2-4.1 10.4 0 3.7 21.6 3.7 21.6 0 0-2.8-.7-5.4-1.9-7.6 3.2-.5 6.7-.7 10.4-.7 3.7 0 7.2.3 10.4.7-1.2 2.1-1.9 4.8-1.9 7.6 0 3.7 21.6 3.7 21.6 0-.2-5.2-2.6-9.6-6.1-11.8" fill="#676e72"/><g fill="#333"><path d="m17.9 10.9c1.4 2.4 5.2 8.5 2.8 10.9 5.3-.2.3-9.9-2.8-10.9"/><path d="m56.4 10.9c1.4 2.4 5.2 8.5 2.8 10.9 5.2-.2.3-9.9-2.8-10.9"/></g><path d="m57.6 51.7c0 2.2-1.8 4-4 4h-43.1c-2.2 0-4-1.8-4-4v-7.3h51.1v7.3" fill="#676e72"/><path d="m57.6 44.4h-51.2c0 0 4.8-11.3 11.3-11.3h28.6c6.5 0 11.3 11.3 11.3 11.3" fill="#333"/><path d="m52.2 39.9h-40.4c0 0 3.7-18 8.9-18h22.5c5.2 0 9 18 9 18" fill="#676e72"/><path d="m40.8 8.1c-1.1 1-1.9 4.1-3.2 4.9-2.4 1.4-8.8 1.4-11.2 0-1.2-.8-2.1-3.9-3.2-4.9-.8-.7-3.5-.8-4 0-1.5 2.4 3 8.7 5.6 9.8 3.3 1.4 11 1.4 14.3 0 2.6-1.1 7.2-7.4 5.6-9.8-.5-.9-3.2-.7-3.9 0" fill="#333"/><path d="m46.8 25.1c1.8 6.5-4.7 13.2-15 13.2-10.3 0-16.6-6.6-14.6-13.2 1.6-5.2 8.1-8.7 14.9-8.7 6.8.1 13.3 3.5 14.7 8.7" fill="#a59a7c"/><path d="m46.1 24.5c1.6 6.1-4.6 12.2-14.3 12.2s-15.6-6.2-13.8-12.2c1.4-4.9 7.7-8.2 14.2-8.2 6.5 0 12.6 3.3 13.9 8.2" fill="#f9eeb6"/><path d="m38 24.6c.3 2.5-2.4 4.6-6 4.6-3.6 0-6.2-2.2-5.9-4.6.3-2.2 3-3.9 6-3.9 3 0 5.7 1.7 5.9 3.9" fill="#a59a7c"/><path d="m37.8 24.4c.2 2.3-2.3 4.3-5.8 4.3-3.4 0-5.9-2-5.7-4.3.3-2.1 2.8-3.7 5.8-3.7 2.9 0 5.4 1.6 5.7 3.7" fill="#d1c5b5"/><g fill="#a8a08d"><path d="m30.5 17.4c-1 .6-1 1.5-.1 2.1 1 .6 2.6.6 3.5 0 .9-.6.9-1.5-.1-2.1-.9-.5-2.4-.5-3.3 0"/><path d="m35.9 20c.1.9 1.3 1.7 2.7 1.7 1.4 0 2.5-.8 2.3-1.7-.2-.9-1.4-1.5-2.7-1.5-1.4 0-2.4.7-2.3 1.5"/><path d="m36.5 29.7c.1 1.3 1.6 2.4 3.4 2.4 1.8 0 3-1.1 2.7-2.4-.2-1.3-1.7-2.2-3.3-2.2-1.6-.1-2.9.9-2.8 2.2"/><path d="m29.6 34c1.3 1.1 3.4 1.1 4.7 0 1.2-1 1.2-2.7-.1-3.6-1.2-.9-3.1-.9-4.4 0-1.3 1-1.4 2.6-.2 3.6"/><path d="m21.3 29.7c-.3 1.3.9 2.4 2.7 2.4 1.8 0 3.3-1.1 3.4-2.4.1-1.3-1.1-2.2-2.7-2.2s-3.1.9-3.4 2.2"/><path d="m20 25.8c.9.8 2.7.8 4 0 1.2-.8 1.4-2 .5-2.7-.9-.7-2.6-.7-3.8 0-1.3.7-1.6 1.9-.7 2.7"/><path d="m28.3 20c.1-.9-.9-1.5-2.3-1.5-1.3 0-2.6.7-2.8 1.5-.2.9.8 1.7 2.3 1.7 1.5 0 2.7-.8 2.8-1.7"/></g><g fill="#fff"><path d="m30.5 17.6c-1 .6-1 1.5-.1 2.1.9.6 2.5.6 3.5 0 .9-.6.9-1.6-.1-2.1-.9-.6-2.4-.6-3.3 0"/><path d="m35.8 20.2c.1.9 1.3 1.7 2.7 1.7 1.4 0 2.4-.8 2.3-1.7-.2-.9-1.4-1.6-2.7-1.6-1.3.1-2.3.7-2.3 1.6"/><path d="m36.5 29.9c.1 1.3 1.6 2.5 3.3 2.5 1.7 0 3-1.1 2.7-2.5-.2-1.3-1.7-2.3-3.3-2.3-1.6.1-2.8 1.1-2.7 2.3"/><path d="m29.6 34.4c1.2 1.1 3.3 1.1 4.6 0 1.2-1.1 1.1-2.7-.1-3.7-1.2-.9-3.1-.9-4.3 0-1.3 1-1.4 2.6-.2 3.7"/><path d="m21.4 29.9c-.3 1.3.9 2.5 2.7 2.5 1.7 0 3.3-1.1 3.4-2.5.1-1.3-1.1-2.3-2.7-2.3-1.6.1-3.1 1.1-3.4 2.3"/><path d="m20.1 26c.9.8 2.7.8 4 0 1.2-.8 1.4-2 .5-2.7-.9-.7-2.6-.7-3.8 0-1.2.7-1.6 1.9-.7 2.7"/><path d="m28.4 20.2c.1-.9-.9-1.6-2.3-1.6-1.3 0-2.5.7-2.7 1.6-.2.9.8 1.7 2.2 1.7 1.5 0 2.7-.8 2.8-1.7"/></g><path fill="#a59a7c" d="m47 32.1l-2.3 1-3.4-7.8.1-.4 5.7 6.8z"/><path fill="#d1c5b5" d="m47.1 31.7l-2.3 1-3.4-7.8 1.3-.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2611.svg b/build/js/jsxc/lib/emojione/assets/svg/2611.svg
index f2728b6..42ff8d4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2611.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2611.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M58.39 0 23.579 38.28 13.474 30.621 7.86 30.621 23.579 56.14 64 0z"/><path fill="#3e4347" d="m53.895 56.14c0 .62-.502 1.122-1.123 1.122h-44.912c-.621 0-1.123-.502-1.123-1.122v-44.913c0-.621.502-1.123 1.123-1.123h30.712l6.127-6.737h-42.45c-1.24.001-2.246 1.01-2.246 2.246v56.14c0 1.242 1.01 2.246 2.246 2.246h56.14c1.241 0 2.246-1 2.246-2.246v-43.625l-6.737 9.357v28.655"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M58.4 0 23.6 38.3 13.5 30.6 7.9 30.6 23.6 56.1 64 0z"/><path d="m53.9 56.1c0 .6-.5 1.1-1.1 1.1h-44.9c-.6 0-1.1-.5-1.1-1.1v-44.9c0-.6.5-1.1 1.1-1.1h30.7l6.1-6.7h-42.5c-1.2 0-2.2 1-2.2 2.2v56.1c0 1.3 1 2.3 2.2 2.3h56.1c1.2 0 2.2-1 2.2-2.2v-43.7l-6.7 9.4c.1 0 .1 28.6.1 28.6" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2614.svg b/build/js/jsxc/lib/emojione/assets/svg/2614.svg
index be9b3fe..01ad0ed 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2614.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2614.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#5a6568" d="m38.19 62c-3.961 0-7.968-3.229-7.968-9.402v-40.847c-.001-.967.796-1.751 1.78-1.751.982 0 1.781.784 1.781 1.751v40.847c0 4.076 2.213 5.902 4.406 5.902 2.078 0 4.316-1.746 4.316-5.581 0-.967.797-1.751 1.781-1.751.982 0 1.779.784 1.779 1.751.001 5.962-3.961 9.08-7.875 9.08"/><path fill="#fc97b2" d="m32 14.08c-18 3.889-18 30-18 30 0-3.314 2.686-6 6-6 3.313 0 6 2.686 6 6 0 0-.722-22.944 6-30"/><g fill="#e84d88"><path d="m32 14.08c-16.568 0-30 13.432-30 30 0-3.314 2.686-6 6-6 3.313 0 6 2.686 6 6 0 0 0-26.11 18-30"/><path d="m32 14.08c-6.723 7.06-6 30-6 30 0-3.314 2.686-6 6-6 3.314 0 6 2.686 6 6 0 0 .723-22.944-6-30"/></g><path fill="#fc97b2" d="m32 14.08c6.722 7.06 6 30 6 30 0-3.314 2.686-6 6-6s6 2.686 6 6c0 0 0-26.11-18-30"/><path fill="#e84d88" d="m32 14.08c18 3.889 18 30 18 30 0-3.314 2.686-6 6-6s6 2.686 6 6c0-16.568-13.432-30-30-30"/><g fill="#42ade2"><path d="m57.09 2c3.119 4.267 4.912 8.194 4.912 11.422 0 2.74-2.201 4.963-4.916 4.963s-4.914-2.223-4.914-4.963c0-3.228 1.846-7.221 4.918-11.422"/><path d="m40.36 12.07c3.121 4.267 4.912 8.194 4.912 11.422 0 2.74-2.201 4.963-4.914 4.963-2.715 0-4.914-2.223-4.914-4.963 0-3.227 1.844-7.22 4.916-11.422"/><path d="m23.641 2c3.119 4.267 4.912 8.194 4.912 11.422 0 2.74-2.201 4.963-4.916 4.963s-4.914-2.223-4.914-4.963c0-3.228 1.846-7.221 4.918-11.422"/><path d="m6.917 12.07c3.121 4.267 4.912 8.194 4.912 11.422 0 2.74-2.201 4.963-4.914 4.963-2.715 0-4.915-2.223-4.915-4.963 0-3.227 1.844-7.22 4.917-11.422"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 12c-.5 0-.9.4-.9.9v4.7h1.9v-4.7c-.1-.5-.5-.9-1-.9" fill="#3e4347"/><path fill="#b8c2c4" d="m31.1 34.5h1.9v14.4h-1.9z"/><path d="m32 16.7v24.4c1.8-2.3 4.5-3.8 7.7-3.8s5.9 1.5 7.7 3.8c-1.5-13.8-7.7-24.4-15.4-24.4" fill="#ffbe5c"/><path d="m32 16.7v24.4c-1.8-2.3-4.5-3.8-7.7-3.8-3.1 0-5.9 1.5-7.7 3.8 1.5-13.8 7.7-24.4 15.4-24.4" fill="#ed77a8"/><path d="m32 16.7c7.7 0 13.9 10.6 15.4 24.4 1.8-2.3 4.5-3.8 7.7-3.8 2.7 0 5.2 1.1 7 2.9-3.1-13.4-15.4-23.5-30.1-23.5" fill="#c7e86f"/><path d="m32 16.7c-7.7 0-13.9 10.6-15.4 24.4-1.8-2.3-4.5-3.8-7.7-3.8-2.7 0-5.2 1.1-7 2.9 3.1-13.4 15.4-23.5 30.1-23.5" fill="#60d4e0"/><path d="m30.1 48.9v5.6c0 2.1-1.7 3.8-3.8 3.8-2.1 0-3.8-1.7-3.8-3.8 0-1-.8-1.9-1.9-1.9-1 0-1.9.8-1.9 1.9 0 4.1 3.4 7.5 7.5 7.5 4.1 0 7.5-3.4 7.5-7.5v-5.6h-3.6" fill="#3e4347"/><g fill="#75d6ff"><path d="m57.1 2c3.1 4.3 4.9 8.2 4.9 11.4 0 2.7-2.2 5-4.9 5-2.7 0-4.9-2.2-4.9-5 0-3.2 1.8-7.2 4.9-11.4"/><path d="m40.4 12.1c3.1 4.3 4.9 8.2 4.9 11.4 0 2.7-2.2 5-4.9 5-2.7 0-4.9-2.2-4.9-5-.1-3.2 1.8-7.2 4.9-11.4"/><path d="m23.6 2c3.1 4.3 4.9 8.2 4.9 11.4 0 2.7-2.2 5-4.9 5-2.7 0-4.9-2.2-4.9-5 0-3.2 1.9-7.2 4.9-11.4"/><path d="m6.9 12.1c3.1 4.3 4.9 8.2 4.9 11.4 0 2.7-2.2 5-4.9 5-2.7 0-4.9-2.2-4.9-5 0-3.2 1.8-7.2 4.9-11.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2615.svg b/build/js/jsxc/lib/emojione/assets/svg/2615.svg
index 1a68fa5..cd98ff4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2615.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2615.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#e0dac6"><path d="m56.55 31.3h-54.55c0 0 1.609 15.13 4.453 19.301 3.188 4.682 10.772 11.404 22.818 11.404 12.05 0 19.635-6.72 22.822-11.404 2.845-4.176 4.452-19.301 4.452-19.301"/><path d="m50.19 33.896c-3.602 0-4.732 2.994-2.443 2.994 3.643 0 9.867-.383 9.867 5.969 0 6.349-6.225 5.968-9.867 5.968-2.289 0-1.105 3.86 2.496 3.86 4.715 0 11.76-1.825 11.76-9.828-.001-8-7.097-8.963-11.813-8.963"/></g><path fill="#f9f3d9" d="m56.55 31.3c0 5.2-12.207 9.416-27.27 9.416-15.06 0-27.27-4.216-27.27-9.416 0-5.201 12.211-9.416 27.27-9.416 15.07 0 27.27 4.215 27.27 9.416"/><path fill="#e0dac6" d="m53.627 31.704c0 4.084-10.902 7.389-24.355 7.389-13.451 0-24.352-3.305-24.352-7.389 0-4.079 10.9-7.384 24.352-7.384 13.453 0 24.355 3.305 24.355 7.384"/><path fill="#50261a" d="m50.98 35.04c-4.02-2.401-12.219-4.05-21.709-4.05-9.486 0-17.686 1.648-21.703 4.05 4.02 2.401 12.217 4.05 21.703 4.05 9.491 0 17.69-1.649 21.709-4.05"/><g fill="#f9f3d9"><path d="m55.846 32.858c-1.074-.404-5.686 2.685-3.404 2.916 8.538.86 9.558 6.477 9.558 6.477-.1-4.921-3.383-8.355-6.154-9.393"/><path d="m50.744 47.991c-1.037-.498-5.688 2.729-3.404 2.917 8.03.648 9.613-5.02 9.613-5.02s-3.109 3.58-6.209 2.105"/></g><g fill="#e8e8e8"><path d="m14.587 2c2.308 1.126 4.275 3.432 4.761 6.348.502 2.908-.567 5.928-2.392 8.104-1.308 1.544-1.96 3.521-1.993 5.745-.014 1.101.078 2.257.367 3.384.122.573.312 1.128.54 1.677.237.544.508 1.081 1 1.499-.666-.062-1.275-.483-1.776-.926-.513-.453-.933-.992-1.32-1.555-.728-1.147-1.269-2.434-1.528-3.811-.269-1.373-.273-2.84.064-4.278.168-.716.424-1.42.753-2.093.178-.331.348-.647.585-.99.261-.397.372-.52.637-.866 1.35-1.633 2.264-3.586 2.352-5.681.13-2.108-.71-4.345-2.054-6.557"/><path d="m28.825 2c2.307 1.126 4.275 3.432 4.761 6.348.501 2.91-.568 5.93-2.393 8.104-1.308 1.544-1.96 3.521-1.993 5.745-.014 1.101.078 2.257.367 3.384.122.573.313 1.128.539 1.677.238.544.511 1.081 1 1.499-.665-.062-1.272-.483-1.776-.926-.513-.453-.93-.992-1.32-1.553-.727-1.149-1.27-2.436-1.527-3.813-.27-1.373-.274-2.84.064-4.278.168-.716.422-1.42.752-2.093.178-.331.348-.646.584-.99.262-.397.373-.52.637-.866 1.351-1.633 2.264-3.586 2.353-5.681.133-2.108-.708-4.345-2.053-6.557"/><path d="m43.06 2c2.308 1.126 4.273 3.432 4.759 6.348.502 2.91-.567 5.93-2.393 8.104-1.308 1.544-1.957 3.521-1.994 5.745-.014 1.101.08 2.257.371 3.384.121.573.312 1.128.537 1.677.239.544.51 1.081 1.01 1.499-.666-.062-1.276-.483-1.776-.926-.513-.453-.933-.992-1.32-1.553-.729-1.149-1.271-2.436-1.531-3.813-.266-1.373-.272-2.84.065-4.275.167-.719.422-1.423.752-2.096.179-.331.348-.646.587-.99.26-.396.371-.52.637-.866 1.347-1.633 2.262-3.586 2.35-5.681.132-2.108-.707-4.345-2.051-6.557"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eff6f7"><path d="m49.2 38.3l2.8-2.3 5.8-.3 4.2 4.2c0-5-3.3-8-10-6.1-.4.1-1.7.2-1.7.2l-1.1 4.3"/><path d="m59.6 39.6c0 4.6-10.9 5.9-14.3 8.2-1.4 1-3.8 5.4-3.8 5.4l19.5-11.3c0 0-1.4-5.9-1.4-2.3"/></g><g fill="#d2d8d9"><path d="m49.2 40l1.6-.4c0 0 .3-1.5 1.6-2.7 1.7-1.5 7.3-1.2 7.3 2.5 0 6-11.2 7.8-14.6 10.1-1.4 1-3 4-3 4s1.2.2 1.5 0c5.1-4.2 18.4-6 18.4-13.8 0-2.8-4.1-6.4-10-4.3-.4.1-1.7.2-1.7.2l-1.1 4.4"/><path d="m39.9 55h-26.7c0 0 .3 2.8 3.9 5 1.3.8 4.5 2 9.4 2 5 0 8.1-1.2 9.4-2 3.7-2.2 4-5 4-5"/></g><g fill="#eff6f7"><path d="m51.1 30.2h-49.1c0 0 .6 11.7 7.2 21.2 2.4 3.5 8.2 8.5 17.3 8.5 9.2 0 14.9-5 17.3-8.5 6.6-9.5 7.3-21.2 7.3-21.2"/><ellipse cx="26.5" cy="30.2" rx="24.5" ry="10.2"/></g><path d="m26.5 24.2c11.3 0 20.7 3.2 22.9 7.5.3-.6.5-1.3.5-1.9 0-5.2-10.5-9.4-23.4-9.4-12.9 0-23.4 4.2-23.4 9.4 0 .7.2 1.3.5 1.9 2.2-4.3 11.6-7.5 22.9-7.5" fill="#d2d8d9"/><path d="m26.5 39.2c11.3 0 20.7-3.2 22.9-7.5-2.2-4.3-11.6-7.5-22.9-7.5-11.3 0-20.7 3.2-22.9 7.5 2.2 4.3 11.6 7.5 22.9 7.5" fill="#724e41"/><path d="m42.3 29.2c-3.5-4-14.7-2.2-15.7-.2-1.4-2.1-12.4-3.7-15.7.2-2.1 2.5 2.7 4.8 7.6 6.5 3.1 1.2 0 2.5 0 2.5 12.2 0 20.7-4.3 20.7-4.3 2.7-1.5 4.5-3.1 3.1-4.7" fill="#8f6a54"/><path d="m36.5 30.6c-2-3.2-9.5-1.9-10.3-.3-.8-1.7-7.9-3.1-10.4 0-1.5 1.9 1.5 3.8 4.6 5.2 1.9 1-.2 2-.2 2 8 .1 13.9-3.2 13.9-3.2 2-1.2 3.3-2.4 2.4-3.7" fill="#b59267"/><path d="m33.1 31.7c-1.4-2.1-6.4-1.3-6.9-.2-.5-1.1-5.3-2.1-6.9 0-1 1.3 1 2.6 3.1 3.5 1.3.6-.1 1.3-.1 1.3 5.4.1 9.3-2.2 9.3-2.2 1.2-.7 2-1.5 1.5-2.4" fill="#f9f3d9"/><g opacity=".6" fill="#a6aeb0"><path d="m27.9 11.4c-3.7-3.8-1.3-9.4-1.3-9.4s-7.8 7.4-2.9 12.5c5.7 5.9 2.9 9.5 2.9 9.5s7.1-6.6 1.3-12.6"/><path d="m16.8 14.8c-2.7-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.3-4.8.9-9.2"/><path d="m38.8 14.8c-2.7-2.7-.9-6.8-.9-6.8s-5.8 5.4-2.1 9.1c4.2 4.3 2.1 6.9 2.1 6.9s5.3-4.8.9-9.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2618.svg b/build/js/jsxc/lib/emojione/assets/svg/2618.svg
index 4774391..d9a9acd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2618.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2618.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m57.778 21.958c-4.905-3.304-11.01-1.404-16.07 1.542 4.281-4.208 7.953-9.663 6.076-15.271-3.472-10.372-14.744-5.719-15.786-.539-1.435-5.52-12.429-9.638-15.784.547-1.919 5.826 1.951 11.299 6.345 15.475-5.115-3.049-11.361-5.107-16.34-1.754-8.727 5.88-2.083 15.443 3.466 15.401-4.607 2.349-6.139 14.451 4.486 15.12 8.222.521 13.357-9.853 15.934-16.313l3.421-.875c2.457 6.348 7.695 17.733 16.299 17.188 10.626-.671 9.09-12.773 4.488-15.12 5.549.042 12.192-9.521 3.464-15.401"/><path fill="#699635" d="m31.08 62h-7.01c0 0 6.317-15.611 6.317-32.09 0-.826 3.217-.826 3.217 0 0 17.18-2.527 32.09-2.527 32.09"/><path fill="#83bf4f" d="m49.826 52.48c10.626-.671 9.09-12.773 4.488-15.12l-22.328-6.09c.918 1.602 6.41 21.936 17.84 21.21"/><g fill="#7bb246"><path d="m57.778 21.958c-9.72-6.547-24.17 7.337-25.792 9.312l22.328 6.09c5.549.041 12.192-9.522 3.464-15.402"/><path d="m16.215 8.237c-3.736 11.343 14.469 21.364 15.771 23.03l.013-23.58c-1.435-5.52-12.429-9.638-15.784.547"/></g><path fill="#83bf4f" d="m47.785 8.229c-3.472-10.372-14.744-5.719-15.786-.539l-.013 23.58c1.303-1.327 19.534-11.882 15.799-23.04"/><path fill="#7bb246" d="m9.686 37.36c-4.607 2.349-6.139 14.451 4.486 15.12 11.431.724 16.896-19.61 17.814-21.21l-22.3 6.09"/><path fill="#83bf4f" d="m6.22 21.958c-8.727 5.88-2.083 15.443 3.466 15.401l22.3-6.09c-1.679-1.974-16.11-15.814-25.766-9.311"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.8 22c-4.9-3.3-11-1.4-16.1 1.5 4.3-4.2 8-9.7 6.1-15.3-3.5-10.3-14.8-5.7-15.8-.5-1.4-5.5-12.4-9.6-15.8.5-1.9 5.8 2 11.3 6.3 15.5-5.1-3-11.4-5.1-16.3-1.8-8.7 5.9-2.1 15.4 3.5 15.4-4.6 2.3-6.1 14.5 4.5 15.1 8.2.5 13.4-9.9 15.9-16.3l3.4-.9c2.5 6.4 7.7 17.8 16.3 17.3 10.6-.7 9.1-12.8 4.5-15.1 5.6 0 12.2-9.6 3.5-15.4" fill="#83bf4f"/><path d="m31.1 62h-7c0 0 6.3-15.6 6.3-32.1 0-.8 3.2-.8 3.2 0 0 17.2-2.5 32.1-2.5 32.1" fill="#699635"/><path d="m49.8 52.5c10.6-.7 9.1-12.8 4.5-15.1l-22.3-6.1c.9 1.6 6.4 21.9 17.8 21.2" fill="#83bf4f"/><g fill="#7bb246"><path d="m57.8 22c-9.7-6.5-24.2 7.3-25.8 9.3l22.3 6.1c5.6 0 12.2-9.6 3.5-15.4"/><path d="m16.2 8.2c-3.7 11.3 14.5 21.4 15.8 23v-23.6c-1.4-5.4-12.4-9.5-15.8.6"/></g><path d="m47.8 8.2c-3.5-10.3-14.8-5.7-15.8-.5v23.6c1.3-1.4 19.5-11.9 15.8-23.1" fill="#83bf4f"/><path d="m9.7 37.4c-4.6 2.3-6.1 14.5 4.5 15.1 11.4.7 16.9-19.6 17.8-21.2l-22.3 6.1" fill="#7bb246"/><path d="m6.2 22c-8.7 5.9-2.1 15.4 3.5 15.4l22.3-6.1c-1.7-2-16.1-15.8-25.8-9.3" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fb.svg
index 410c9d8..6a8b95a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m45.76 35.932v-4.212c0 0-7.834-5.871-23.424-3.191 0 0-8.877 1.254-8.877 5.886 0 0-1.51 11.361 1.625 18.504 4.666 10.639 26.833 14.709 34.395-3.396 1.501-3.603 1.705-13.664-3.719-13.591"/><path d="m38.691 39.11c0 2.303 1.896 4.172 4.236 4.172h.037c2.34 0 4.238-1.869 4.238-4.172v-32.935c.001-2.302-1.897-4.172-4.237-4.172h-.037c-2.34 0-4.236 1.869-4.236 4.172v32.935z"/></g><path fill="#e6b796" d="m41.02 42.34h.043c2.338 0 4.219-1.898 4.219-4.205v-32.935c0-1.25-.561-2.373-1.445-3.137 1.92.395 3.365 2.072 3.365 4.084v32.935c0 2.305-1.885 4.201-4.225 4.201h-.039c-1.068 0-2.045-.389-2.787-1.033.278.059.571.09.869.09"/><g fill="#ffe1bd"><path d="m13.466 30.05c0-2.357 1.889-4.266 4.219-4.266h.07c2.33 0 4.217 1.908 4.217 4.266v6.593c0 2.355-1.887 4.266-4.217 4.266h-.07c-2.33 0-4.219-1.91-4.219-4.266v-6.593"/><path d="m21.875 26.23c0-2.354 1.889-4.264 4.221-4.264h.066c2.332 0 4.223 1.91 4.223 4.264v6.594c0 2.355-1.891 4.267-4.223 4.267h-.066c-2.332 0-4.221-1.912-4.221-4.267v-6.594"/><path d="m30.384 25.749c0-2.354 1.887-4.264 4.219-4.264h.07c2.328 0 4.219 1.91 4.219 4.264v6.594c0 2.355-1.891 4.267-4.219 4.267h-.07c-2.333 0-4.219-1.912-4.219-4.267v-6.594"/></g><g fill="#e6b796"><path d="m16.488 39.33h.057c2.328 0 4.158-1.883 4.158-4.238v-6.597c0-.637-.141-1.24-.387-1.781 1.01.779 1.656 2.01 1.656 3.391v6.597c0 2.355-1.824 4.211-4.156 4.211h-.051c-1.703 0-3.168-1.01-3.836-2.473.713.548 1.596.89 2.559.89"/><path d="m24.876 35.502h.053c2.332 0 4.182-1.852 4.182-4.208v-6.598c0-.635-.137-1.238-.385-1.781 1.01.779 1.658 2.01 1.658 3.391v6.598c0 2.355-1.852 4.183-4.18 4.183h-.054c-1.701 0-3.166-1.01-3.834-2.473.709.548 1.598.888 2.56.888"/><path d="m33.369 35.02h.051c2.332 0 4.199-1.852 4.199-4.208v-6.598c0-.635-.141-1.238-.383-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.867 4.183-4.195 4.183h-.055c-1.702 0-3.168-1.01-3.836-2.473.713.549 1.6.888 2.563.888"/><path d="m40.641 31.354c-3.164-2.41-4.184.748-9.956.305-2.527-.193-4.217 4.992-.605 7.322 5.02 3.238 5.842-.5 6.979 1.113 1.207 1.715 2.469 2.16 3.434 4.1.703 1.408 7.504.08 8.49-2.551 1.89-5.05-3.321-6.461-8.342-10.289"/></g><path fill="#ffe1bd" d="m40.98 32.3c-3.287-2.508-4.35.779-10.358.318-2.627-.203-4.385 5.191-.627 7.615 5.223 3.371 6.077-.52 7.256 1.16 1.258 1.781 2.57 2.246 3.574 4.264.73 1.467-2.158 6.404-2.158 6.404s6.25 5.574 7.928 2.957c3.113-4.861 2.818-8.984 3.063-12.02.557-6.98-3.453-6.72-8.678-10.702"/><g fill="#e6b796"><path d="m47.41 36.482c3.568 2.156 2.33 12.05-.982 16.52-8.238 11.125-23.465 9.299-30.02 2.17 5.926 8.01 22.09 10.465 30.979-1.027 3.556-4.604 5.713-15.791.025-17.663"/><path d="m40.04 45.717c.225.453.105 1.24-.17 2.109.551-1.311.967-2.689.637-3.355-1-2.02-1.645-2.48-2.9-4.264-1.184-1.682-2.035 2.211-7.26-1.16-1.932-1.246-2.398-3.275-2.045-4.928-.969 1.727-.883 4.586 1.58 6.176 5.223 3.369 6.077-.521 7.258 1.158 1.255 1.783 1.898 2.246 2.9 4.264"/><path d="m27.375 53.682c0-6.541 4.762-11.9 10.819-12.443-.738-.205-1.508-.33-2.309-.33-5.188 0-9.393 4.443-9.393 9.922 0 1.58.359 3.066.982 4.391-.058-.507-.099-1.019-.099-1.54"/><path d="m25.519 41.43c-1.018-.289-2.043-.18-2.943.225.387.025.775.082 1.164.193 2.973.848 4.771 3.99 4.162 7.137.361-.486.645-1.051.805-1.688.652-2.553-.774-5.178-3.188-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m44.8 34.5c0 0-31.9-2.5-31.4 2.1 0 0-1.6 11.2 2.3 18 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m38.7 39.1c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-32.9c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v32.9"/></g><path d="m41 42.3c2.4 0 4.3-1.9 4.3-4.2v-32.9c0-1.2-.6-2.4-1.4-3.1 1.9.4 3.4 2.1 3.4 4.1v32.9c0 2.3-1.9 4.2-4.2 4.2-1.1 0-2-.4-2.8-1 .1 0 .4 0 .7 0" fill="#e6b796"/><g fill="#ffe1bd"><path d="m13.4 30c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/><path d="m21.9 26.2c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m30.4 25.7c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/></g><g fill="#e6b796"><path d="m16.5 39.3c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.8 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m24.9 35.5c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m33.4 35c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m41 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.2 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.1-6.1-9.6-9.4"/></g><path d="m39.6 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#ffe1bd"/><g fill="#e6b796"><path d="m46.6 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3-4.9 4-16.3-1.9-17.5"/><path d="m40.1 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fc.svg
index 7e670a4..d43f1a7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m45.76 35.932v-4.212c0 0-7.834-5.872-23.424-3.192 0 0-8.877 1.254-8.877 5.887 0 0-1.51 11.361 1.625 18.504 4.666 10.639 26.832 14.709 34.395-3.396 1.501-3.603 1.705-13.664-3.719-13.591"/><path d="m38.691 39.11c0 2.303 1.896 4.172 4.236 4.172h.037c2.34 0 4.238-1.869 4.238-4.172v-32.935c.001-2.303-1.897-4.172-4.237-4.172h-.037c-2.34 0-4.236 1.869-4.236 4.172v32.935z"/></g><path fill="#e0a372" d="m41.02 42.34h.043c2.338 0 4.219-1.898 4.219-4.205v-32.936c0-1.25-.561-2.373-1.445-3.137 1.92.395 3.365 2.072 3.365 4.084v32.936c0 2.305-1.885 4.201-4.225 4.201h-.039c-1.068 0-2.045-.389-2.787-1.033.278.059.571.09.869.09"/><g fill="#fed0ac"><path d="m13.467 30.05c0-2.357 1.889-4.266 4.219-4.266h.07c2.33 0 4.217 1.908 4.217 4.266v6.594c0 2.355-1.887 4.266-4.217 4.266h-.07c-2.33 0-4.219-1.91-4.219-4.266v-6.594"/><path d="m21.875 26.23c0-2.354 1.889-4.264 4.221-4.264h.066c2.332 0 4.223 1.91 4.223 4.264v6.594c0 2.355-1.891 4.267-4.223 4.267h-.066c-2.332 0-4.221-1.912-4.221-4.267v-6.594"/><path d="m30.385 25.748c0-2.354 1.887-4.264 4.219-4.264h.07c2.328 0 4.219 1.91 4.219 4.264v6.594c0 2.355-1.891 4.267-4.219 4.267h-.07c-2.332 0-4.219-1.912-4.219-4.267v-6.594"/></g><g fill="#e0a372"><path d="m16.488 39.33h.057c2.328 0 4.158-1.883 4.158-4.238v-6.598c0-.637-.141-1.24-.387-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.824 4.211-4.156 4.211h-.051c-1.703 0-3.168-1.01-3.836-2.473.714.548 1.596.89 2.559.89"/><path d="m24.877 35.502h.053c2.332 0 4.182-1.852 4.182-4.208v-6.598c0-.635-.137-1.238-.385-1.781 1.01.779 1.658 2.01 1.658 3.391v6.598c0 2.355-1.852 4.183-4.18 4.183h-.055c-1.701 0-3.166-1.01-3.834-2.473.709.548 1.598.888 2.561.888"/><path d="m33.369 35.02h.051c2.332 0 4.199-1.852 4.199-4.208v-6.598c0-.635-.141-1.238-.383-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.867 4.183-4.195 4.183h-.055c-1.701 0-3.168-1.01-3.836-2.473.714.549 1.6.888 2.563.888"/><path d="m40.641 31.354c-3.164-2.411-4.184.748-9.955.305-2.527-.193-4.217 4.992-.605 7.322 5.02 3.238 5.842-.5 6.979 1.113 1.207 1.715 2.469 2.16 3.434 4.1.703 1.408 7.504.08 8.49-2.551 1.889-5.05-3.322-6.461-8.343-10.289"/></g><path fill="#fed0ac" d="m40.98 32.3c-3.287-2.508-4.35.779-10.357.318-2.627-.203-4.385 5.191-.627 7.615 5.223 3.371 6.076-.52 7.256 1.16 1.258 1.781 2.57 2.246 3.574 4.264.73 1.467-2.158 6.404-2.158 6.404s6.25 5.574 7.928 2.957c3.113-4.861 2.818-8.984 3.063-12.02.556-6.98-3.454-6.72-8.679-10.702"/><g fill="#e0a372"><path d="m47.41 36.482c3.568 2.156 2.33 12.05-.982 16.52-8.238 11.125-23.465 9.299-30.02 2.17 5.926 8.01 22.09 10.465 30.979-1.027 3.555-4.604 5.712-15.791.024-17.663"/><path d="m40.04 45.717c.225.453.105 1.24-.17 2.109.551-1.311.967-2.689.637-3.355-1-2.02-1.645-2.48-2.9-4.264-1.184-1.682-2.035 2.211-7.26-1.16-1.932-1.246-2.398-3.275-2.045-4.928-.969 1.727-.883 4.586 1.58 6.176 5.223 3.369 6.076-.521 7.258 1.158 1.255 1.783 1.898 2.246 2.9 4.264"/><path d="m27.375 53.682c0-6.541 4.762-11.9 10.818-12.443-.738-.205-1.508-.33-2.309-.33-5.188 0-9.393 4.443-9.393 9.922 0 1.58.359 3.066.982 4.391-.057-.507-.098-1.019-.098-1.54"/><path d="m25.52 41.43c-1.018-.289-2.043-.18-2.943.225.387.025.775.082 1.164.193 2.973.848 4.771 3.99 4.162 7.137.361-.486.645-1.051.805-1.688.651-2.553-.774-5.178-3.188-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m44.8 34.5c0 0-31.9-2.5-31.4 2.1 0 0-1.6 11.2 2.3 18 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m38.7 39.1c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-32.9c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v32.9"/></g><path d="m41 42.3c2.4 0 4.3-1.9 4.3-4.2v-32.9c0-1.2-.6-2.4-1.4-3.1 1.9.4 3.4 2.1 3.4 4.1v32.9c0 2.3-1.9 4.2-4.2 4.2-1.1 0-2-.4-2.8-1 .1 0 .4 0 .7 0" fill="#e0a372"/><g fill="#fed0ac"><path d="m13.4 30c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/><path d="m21.9 26.2c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m30.4 25.7c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/></g><g fill="#e0a372"><path d="m16.5 39.3c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.8 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m24.9 35.5c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m33.4 35c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m41 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.2 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.1-6.1-9.6-9.4"/></g><path d="m39.6 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#fed0ac"/><g fill="#e0a372"><path d="m46.6 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3-4.9 4-16.3-1.9-17.5"/><path d="m40.1 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fd.svg
index fa44782..c548d5d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m45.76 35.932v-4.213c0 0-7.834-5.871-23.424-3.191 0 0-8.877 1.254-8.877 5.887 0 0-1.51 11.361 1.625 18.504 4.666 10.639 26.832 14.709 34.395-3.396 1.501-3.603 1.705-13.664-3.719-13.591"/><path d="m38.691 39.11c0 2.303 1.896 4.172 4.236 4.172h.037c2.34 0 4.238-1.869 4.238-4.172v-32.935c.001-2.303-1.897-4.172-4.237-4.172h-.037c-2.34 0-4.236 1.869-4.236 4.172v32.935z"/></g><path fill="#b58360" d="m41.02 42.34h.043c2.338 0 4.219-1.898 4.219-4.205v-32.936c0-1.25-.561-2.373-1.445-3.137 1.92.395 3.365 2.072 3.365 4.084v32.936c0 2.305-1.885 4.201-4.225 4.201h-.039c-1.068 0-2.045-.389-2.787-1.033.278.059.571.09.869.09"/><g fill="#d6a57c"><path d="m13.467 30.05c0-2.357 1.889-4.266 4.219-4.266h.07c2.33 0 4.217 1.908 4.217 4.266v6.594c0 2.355-1.887 4.266-4.217 4.266h-.07c-2.33 0-4.219-1.91-4.219-4.266v-6.594"/><path d="m21.875 26.23c0-2.354 1.889-4.264 4.221-4.264h.066c2.332 0 4.223 1.91 4.223 4.264v6.594c0 2.355-1.891 4.268-4.223 4.268h-.066c-2.332 0-4.221-1.912-4.221-4.268v-6.594"/><path d="m30.385 25.748c0-2.354 1.887-4.264 4.219-4.264h.07c2.328 0 4.219 1.91 4.219 4.264v6.594c0 2.355-1.891 4.268-4.219 4.268h-.07c-2.332 0-4.219-1.912-4.219-4.268v-6.594"/></g><g fill="#b58360"><path d="m16.488 39.33h.057c2.328 0 4.158-1.883 4.158-4.238v-6.598c0-.637-.141-1.24-.387-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.824 4.211-4.156 4.211h-.051c-1.703 0-3.168-1.01-3.836-2.473.714.548 1.596.89 2.559.89"/><path d="m24.877 35.502h.053c2.332 0 4.182-1.852 4.182-4.209v-6.598c0-.635-.137-1.238-.385-1.781 1.01.779 1.658 2.01 1.658 3.391v6.598c0 2.355-1.852 4.184-4.18 4.184h-.055c-1.701 0-3.166-1.01-3.834-2.473.709.548 1.598.888 2.561.888"/><path d="m33.369 35.02h.051c2.332 0 4.199-1.852 4.199-4.209v-6.598c0-.635-.141-1.238-.383-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.867 4.184-4.195 4.184h-.055c-1.701 0-3.168-1.01-3.836-2.473.714.549 1.6.888 2.563.888"/><path d="m40.641 31.354c-3.164-2.41-4.184.748-9.955.305-2.527-.193-4.217 4.992-.605 7.322 5.02 3.238 5.842-.5 6.979 1.113 1.207 1.715 2.469 2.16 3.434 4.1.703 1.408 7.504.08 8.49-2.551 1.889-5.05-3.322-6.461-8.343-10.289"/></g><path fill="#d6a57c" d="m40.98 32.3c-3.287-2.508-4.35.779-10.357.318-2.627-.203-4.385 5.191-.627 7.615 5.223 3.371 6.076-.52 7.256 1.16 1.258 1.781 2.57 2.246 3.574 4.264.73 1.467-2.158 6.404-2.158 6.404s6.25 5.574 7.928 2.957c3.113-4.861 2.818-8.984 3.063-12.02.556-6.98-3.454-6.72-8.679-10.702"/><g fill="#b58360"><path d="m47.41 36.482c3.568 2.156 2.33 12.05-.982 16.52-8.238 11.125-23.465 9.299-30.02 2.17 5.926 8.01 22.09 10.465 30.979-1.027 3.555-4.604 5.712-15.791.024-17.663"/><path d="m40.04 45.717c.225.453.105 1.24-.17 2.109.551-1.311.967-2.689.637-3.355-1-2.02-1.645-2.48-2.9-4.264-1.184-1.682-2.035 2.211-7.26-1.16-1.932-1.246-2.398-3.275-2.045-4.928-.969 1.727-.883 4.586 1.58 6.176 5.223 3.369 6.076-.521 7.258 1.158 1.255 1.783 1.898 2.246 2.9 4.264"/><path d="m27.375 53.682c0-6.541 4.762-11.9 10.818-12.443-.738-.205-1.508-.33-2.309-.33-5.188 0-9.393 4.443-9.393 9.922 0 1.58.359 3.066.982 4.391-.057-.507-.098-1.019-.098-1.54"/><path d="m25.52 41.43c-1.018-.289-2.043-.18-2.943.225.387.025.775.082 1.164.193 2.973.848 4.771 3.99 4.162 7.137.361-.486.645-1.051.805-1.688.651-2.553-.774-5.178-3.188-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m44.8 34.5c0 0-31.9-2.5-31.4 2.1 0 0-1.6 11.2 2.3 18 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m38.7 39.1c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-32.9c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v32.9"/></g><path d="m41 42.3c2.4 0 4.3-1.9 4.3-4.2v-32.9c0-1.2-.6-2.4-1.4-3.1 1.9.4 3.4 2.1 3.4 4.1v32.9c0 2.3-1.9 4.2-4.2 4.2-1.1 0-2-.4-2.8-1 .1 0 .4 0 .7 0" fill="#b58360"/><g fill="#d6a57c"><path d="m13.4 30c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/><path d="m21.9 26.2c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m30.4 25.7c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/></g><g fill="#b58360"><path d="m16.5 39.3c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.8 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m24.9 35.5c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m33.4 35c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m41 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.2 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.1-6.1-9.6-9.4"/></g><path d="m39.6 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#d6a57c"/><g fill="#b58360"><path d="m46.6 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3-4.9 4-16.3-1.9-17.5"/><path d="m40.1 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fe.svg
index f82ce5c..4b63a6b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m45.76 35.932v-4.213c0 0-7.834-5.871-23.424-3.191 0 0-8.877 1.254-8.877 5.887 0 0-1.51 11.361 1.625 18.504 4.666 10.639 26.832 14.709 34.395-3.396 1.501-3.603 1.705-13.664-3.719-13.591"/><path d="m38.691 39.11c0 2.303 1.896 4.172 4.236 4.172h.037c2.34 0 4.238-1.869 4.238-4.172v-32.935c.001-2.303-1.897-4.172-4.237-4.172h-.037c-2.34 0-4.236 1.869-4.236 4.172v32.935z"/></g><path fill="#935e3e" d="m41.02 42.34h.043c2.338 0 4.219-1.898 4.219-4.205v-32.936c0-1.25-.561-2.373-1.445-3.137 1.92.395 3.365 2.072 3.365 4.084v32.936c0 2.305-1.885 4.201-4.225 4.201h-.039c-1.068 0-2.045-.389-2.787-1.033.278.059.571.09.869.09"/><g fill="#b47d56"><path d="m13.467 30.05c0-2.357 1.889-4.266 4.219-4.266h.07c2.33 0 4.217 1.908 4.217 4.266v6.594c0 2.355-1.887 4.266-4.217 4.266h-.07c-2.33 0-4.219-1.91-4.219-4.266v-6.594"/><path d="m21.875 26.23c0-2.354 1.889-4.264 4.221-4.264h.066c2.332 0 4.223 1.91 4.223 4.264v6.594c0 2.355-1.891 4.268-4.223 4.268h-.066c-2.332 0-4.221-1.912-4.221-4.268v-6.594"/><path d="m30.385 25.748c0-2.354 1.887-4.264 4.219-4.264h.07c2.328 0 4.219 1.91 4.219 4.264v6.594c0 2.355-1.891 4.268-4.219 4.268h-.07c-2.332 0-4.219-1.912-4.219-4.268v-6.594"/></g><g fill="#935e3e"><path d="m16.488 39.33h.057c2.328 0 4.158-1.883 4.158-4.238v-6.598c0-.637-.141-1.24-.387-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.824 4.211-4.156 4.211h-.051c-1.703 0-3.168-1.01-3.836-2.473.714.548 1.596.89 2.559.89"/><path d="m24.877 35.502h.053c2.332 0 4.182-1.852 4.182-4.209v-6.598c0-.635-.137-1.238-.385-1.781 1.01.779 1.658 2.01 1.658 3.391v6.598c0 2.355-1.852 4.184-4.18 4.184h-.055c-1.701 0-3.166-1.01-3.834-2.473.709.548 1.598.888 2.561.888"/><path d="m33.369 35.02h.051c2.332 0 4.199-1.852 4.199-4.209v-6.598c0-.635-.141-1.238-.383-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.867 4.184-4.195 4.184h-.055c-1.701 0-3.168-1.01-3.836-2.473.714.549 1.6.888 2.563.888"/><path d="m40.641 31.354c-3.164-2.41-4.184.748-9.955.305-2.527-.193-4.217 4.992-.605 7.322 5.02 3.238 5.842-.5 6.979 1.113 1.207 1.715 2.469 2.16 3.434 4.1.703 1.408 7.504.08 8.49-2.551 1.889-5.05-3.322-6.461-8.343-10.289"/></g><path fill="#b47d56" d="m40.98 32.3c-3.287-2.508-4.35.779-10.357.318-2.627-.203-4.385 5.191-.627 7.615 5.223 3.371 6.076-.52 7.256 1.16 1.258 1.781 2.57 2.246 3.574 4.264.73 1.467-2.158 6.404-2.158 6.404s6.25 5.574 7.928 2.957c3.113-4.861 2.818-8.984 3.063-12.02.556-6.98-3.454-6.72-8.679-10.702"/><g fill="#935e3e"><path d="m47.41 36.482c3.568 2.156 2.33 12.05-.982 16.52-8.238 11.125-23.465 9.299-30.02 2.17 5.926 8.01 22.09 10.465 30.979-1.027 3.555-4.604 5.712-15.791.024-17.663"/><path d="m40.04 45.717c.225.453.105 1.24-.17 2.109.551-1.311.967-2.689.637-3.355-1-2.02-1.645-2.48-2.9-4.264-1.184-1.682-2.035 2.211-7.26-1.16-1.932-1.246-2.398-3.275-2.045-4.928-.969 1.727-.883 4.586 1.58 6.176 5.223 3.369 6.076-.521 7.258 1.158 1.255 1.783 1.898 2.246 2.9 4.264"/><path d="m27.375 53.682c0-6.541 4.762-11.9 10.818-12.443-.738-.205-1.508-.33-2.309-.33-5.188 0-9.393 4.443-9.393 9.922 0 1.58.359 3.066.982 4.391-.057-.507-.098-1.019-.098-1.54"/><path d="m25.52 41.43c-1.018-.289-2.043-.18-2.943.225.387.025.775.082 1.164.193 2.973.848 4.771 3.99 4.162 7.137.361-.486.645-1.051.805-1.688.651-2.553-.774-5.178-3.188-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m44.8 34.5c0 0-31.9-2.5-31.4 2.1 0 0-1.6 11.2 2.3 18 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m38.7 39.1c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-32.9c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v32.9"/></g><path d="m41 42.3c2.4 0 4.3-1.9 4.3-4.2v-32.9c0-1.2-.6-2.4-1.4-3.1 1.9.4 3.4 2.1 3.4 4.1v32.9c0 2.3-1.9 4.2-4.2 4.2-1.1 0-2-.4-2.8-1 .1 0 .4 0 .7 0" fill="#935e3e"/><g fill="#b47d56"><path d="m13.4 30c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/><path d="m21.9 26.2c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m30.4 25.7c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/></g><g fill="#935e3e"><path d="m16.5 39.3c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.8 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m24.9 35.5c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m33.4 35c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m41 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.2 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.1-6.1-9.6-9.4"/></g><path d="m39.6 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#b47d56"/><g fill="#935e3e"><path d="m46.6 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3-4.9 4-16.3-1.9-17.5"/><path d="m40.1 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3ff.svg
index 9660747..e422854 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/261d-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/261d-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m45.76 35.932v-4.213c0 0-7.834-5.871-23.424-3.191 0 0-8.877 1.254-8.877 5.887 0 0-1.51 11.361 1.625 18.504 4.666 10.639 26.832 14.709 34.395-3.396 1.501-3.603 1.705-13.664-3.719-13.591"/><path d="m38.691 39.11c0 2.303 1.896 4.172 4.236 4.172h.037c2.34 0 4.238-1.869 4.238-4.172v-32.935c.001-2.303-1.897-4.172-4.237-4.172h-.037c-2.34 0-4.236 1.869-4.236 4.172v32.935z"/></g><path fill="#705041" d="m41.02 42.34h.043c2.338 0 4.219-1.898 4.219-4.205v-32.936c0-1.25-.561-2.373-1.445-3.137 1.92.395 3.365 2.072 3.365 4.084v32.936c0 2.305-1.885 4.201-4.225 4.201h-.039c-1.068 0-2.045-.389-2.787-1.033.278.059.571.09.869.09"/><g fill="#8a6859"><path d="m13.467 30.05c0-2.357 1.889-4.266 4.219-4.266h.07c2.33 0 4.217 1.908 4.217 4.266v6.594c0 2.355-1.887 4.266-4.217 4.266h-.07c-2.33 0-4.219-1.91-4.219-4.266v-6.594"/><path d="m21.875 26.23c0-2.354 1.889-4.264 4.221-4.264h.066c2.332 0 4.223 1.91 4.223 4.264v6.594c0 2.355-1.891 4.268-4.223 4.268h-.066c-2.332 0-4.221-1.912-4.221-4.268v-6.594"/><path d="m30.385 25.748c0-2.354 1.887-4.264 4.219-4.264h.07c2.328 0 4.219 1.91 4.219 4.264v6.594c0 2.355-1.891 4.268-4.219 4.268h-.07c-2.332 0-4.219-1.912-4.219-4.268v-6.594"/></g><g fill="#705041"><path d="m16.488 39.33h.057c2.328 0 4.158-1.883 4.158-4.238v-6.598c0-.637-.141-1.24-.387-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.824 4.211-4.156 4.211h-.051c-1.703 0-3.168-1.01-3.836-2.473.714.548 1.596.89 2.559.89"/><path d="m24.877 35.502h.053c2.332 0 4.182-1.852 4.182-4.209v-6.598c0-.635-.137-1.238-.385-1.781 1.01.779 1.658 2.01 1.658 3.391v6.598c0 2.355-1.852 4.184-4.18 4.184h-.055c-1.701 0-3.166-1.01-3.834-2.473.709.548 1.598.888 2.561.888"/><path d="m33.369 35.02h.051c2.332 0 4.199-1.852 4.199-4.209v-6.598c0-.635-.141-1.238-.383-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.355-1.867 4.184-4.195 4.184h-.055c-1.701 0-3.168-1.01-3.836-2.473.714.549 1.6.888 2.563.888"/><path d="m40.641 31.354c-3.164-2.41-4.184.748-9.955.305-2.527-.193-4.217 4.992-.605 7.322 5.02 3.238 5.842-.5 6.979 1.113 1.207 1.715 2.469 2.16 3.434 4.1.703 1.408 7.504.08 8.49-2.551 1.889-5.05-3.322-6.461-8.343-10.289"/></g><path fill="#8a6859" d="m40.98 32.3c-3.287-2.508-4.35.779-10.357.318-2.627-.203-4.385 5.191-.627 7.615 5.223 3.371 6.076-.52 7.256 1.16 1.258 1.781 2.57 2.246 3.574 4.264.73 1.467-2.158 6.404-2.158 6.404s6.25 5.574 7.928 2.957c3.113-4.861 2.818-8.984 3.063-12.02.556-6.98-3.454-6.72-8.679-10.702"/><g fill="#705041"><path d="m47.41 36.482c3.568 2.156 2.33 12.05-.982 16.52-8.238 11.125-23.465 9.299-30.02 2.17 5.926 8.01 22.09 10.465 30.979-1.027 3.555-4.604 5.712-15.791.024-17.663"/><path d="m40.04 45.717c.225.453.105 1.24-.17 2.109.551-1.311.967-2.689.637-3.355-1-2.02-1.645-2.48-2.9-4.264-1.184-1.682-2.035 2.211-7.26-1.16-1.932-1.246-2.398-3.275-2.045-4.928-.969 1.727-.883 4.586 1.58 6.176 5.223 3.369 6.076-.521 7.258 1.158 1.255 1.783 1.898 2.246 2.9 4.264"/><path d="m27.375 53.682c0-6.541 4.762-11.9 10.818-12.443-.738-.205-1.508-.33-2.309-.33-5.188 0-9.393 4.443-9.393 9.922 0 1.58.359 3.066.982 4.391-.057-.507-.098-1.019-.098-1.54"/><path d="m25.52 41.43c-1.018-.289-2.043-.18-2.943.225.387.025.775.082 1.164.193 2.973.848 4.771 3.99 4.162 7.137.361-.486.645-1.051.805-1.688.651-2.553-.774-5.178-3.188-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m44.8 34.5c0 0-31.9-2.5-31.4 2.1 0 0-1.6 11.2 2.3 18 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m38.7 39.1c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-32.9c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v32.9"/></g><path d="m41 42.3c2.4 0 4.3-1.9 4.3-4.2v-32.9c0-1.2-.6-2.4-1.4-3.1 1.9.4 3.4 2.1 3.4 4.1v32.9c0 2.3-1.9 4.2-4.2 4.2-1.1 0-2-.4-2.8-1 .1 0 .4 0 .7 0" fill="#705041"/><g fill="#8a6859"><path d="m13.4 30c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/><path d="m21.9 26.2c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m30.4 25.7c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3 0 0 0-6.6 0-6.6"/></g><g fill="#705041"><path d="m16.5 39.3c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.8 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m24.9 35.5c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m33.4 35c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m41 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.2 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.1-6.1-9.6-9.4"/></g><path d="m39.6 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#8a6859"/><g fill="#705041"><path d="m46.6 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3-4.9 4-16.3-1.9-17.5"/><path d="m40.1 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/261d.svg b/build/js/jsxc/lib/emojione/assets/svg/261d.svg
index 54f33c2..2d47296 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/261d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/261d.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m45.757 35.932v-4.213c0 0-7.834-5.871-23.424-3.191 0 0-8.877 1.254-8.877 5.887 0 0-1.51 11.36 1.625 18.503 4.666 10.639 26.833 14.709 34.395-3.396 1.502-3.603 1.705-13.663-3.719-13.59"/><path d="M38.688,39.106c0,2.303,1.896,4.172,4.236,4.172h0.037c2.34,0,4.238-1.869,4.238-4.172V6.171
- C47.2,3.869,45.302,2,42.962,2h-0.037c-2.34,0-4.236,1.869-4.236,4.172V39.106z"/></g><path fill="#eba352" d="m41.02 42.34h.043c2.338 0 4.219-1.898 4.219-4.205v-32.935c0-1.25-.561-2.373-1.445-3.137 1.919.395 3.364 2.072 3.364 4.084v32.935c0 2.305-1.885 4.201-4.225 4.201h-.039c-1.068 0-2.045-.389-2.787-1.033.278.059.571.09.87.09"/><g fill="#ffdd67"><path d="m13.463 30.05c0-2.357 1.889-4.266 4.219-4.266h.07c2.33 0 4.217 1.908 4.217 4.266v6.593c0 2.355-1.887 4.266-4.217 4.266h-.07c-2.33 0-4.219-1.91-4.219-4.266v-6.593"/><path d="m21.872 26.22c0-2.354 1.889-4.264 4.221-4.264h.066c2.332 0 4.223 1.91 4.223 4.264v6.594c0 2.356-1.891 4.267-4.223 4.267h-.066c-2.332 0-4.221-1.911-4.221-4.267v-6.594"/><path d="m30.381 25.748c0-2.354 1.887-4.264 4.219-4.264h.07c2.328 0 4.219 1.91 4.219 4.264v6.594c0 2.356-1.891 4.267-4.219 4.267h-.07c-2.333 0-4.219-1.911-4.219-4.267v-6.594"/></g><g fill="#eba352"><path d="m16.485 39.33h.057c2.328 0 4.158-1.883 4.158-4.237v-6.598c0-.637-.141-1.24-.387-1.781 1.01.779 1.656 2.01 1.656 3.391v6.597c0 2.355-1.824 4.211-4.156 4.211h-.051c-1.703 0-3.168-1.01-3.836-2.473.713.548 1.596.89 2.559.89"/><path d="m24.874 35.502h.053c2.332 0 4.182-1.852 4.182-4.209v-6.598c0-.635-.137-1.238-.385-1.781 1.01.779 1.658 2.01 1.658 3.391v6.598c0 2.356-1.852 4.183-4.18 4.183h-.055c-1.701 0-3.166-1.01-3.834-2.472.709.548 1.598.888 2.561.888"/><path d="m33.366 35.02h.051c2.332 0 4.199-1.852 4.199-4.209v-6.598c0-.635-.141-1.238-.383-1.781 1.01.779 1.656 2.01 1.656 3.391v6.598c0 2.356-1.867 4.183-4.195 4.183h-.054c-1.702 0-3.168-1.01-3.836-2.472.712.549 1.599.888 2.562.888"/><path d="m40.638 31.353c-3.164-2.41-4.184.748-9.956.305-2.527-.193-4.217 4.992-.605 7.322 5.02 3.238 5.842-.5 6.979 1.113 1.207 1.715 2.469 2.16 3.434 4.1.703 1.408 7.504.08 8.49-2.551 1.89-5.05-3.321-6.46-8.342-10.289"/></g><path fill="#ffdd67" d="m40.978 32.3c-3.287-2.508-4.35.78-10.358.318-2.627-.203-4.385 5.191-.627 7.615 5.223 3.371 6.077-.52 7.256 1.16 1.258 1.781 2.57 2.246 3.574 4.264.73 1.467-2.158 6.404-2.158 6.404s6.25 5.574 7.928 2.957c3.113-4.861 2.818-8.984 3.063-12.02.556-6.979-3.454-6.72-8.678-10.702"/><g fill="#eba352"><path d="m47.41 36.481c3.568 2.156 2.33 12.05-.982 16.52-8.238 11.125-23.465 9.299-30.02 2.17 5.926 8.01 22.09 10.465 30.979-1.027 3.556-4.604 5.713-15.791.025-17.663"/><path d="m40.04 45.716c.225.453.105 1.24-.17 2.109.551-1.311.967-2.689.637-3.355-1-2.02-1.645-2.48-2.9-4.264-1.184-1.682-2.035 2.211-7.26-1.16-1.932-1.246-2.398-3.274-2.045-4.927-.969 1.727-.883 4.585 1.58 6.175 5.223 3.369 6.077-.521 7.258 1.158 1.256 1.783 1.898 2.246 2.9 4.264"/><path d="m27.372 53.681c0-6.541 4.762-11.9 10.819-12.443-.738-.205-1.508-.33-2.309-.33-5.188 0-9.393 4.443-9.393 9.922 0 1.58.359 3.066.982 4.391-.058-.507-.099-1.019-.099-1.54"/><path d="m25.516 41.42c-1.018-.289-2.043-.18-2.943.225.387.025.775.082 1.164.193 2.973.848 4.771 3.99 4.162 7.137.361-.486.645-1.051.805-1.688.652-2.553-.774-5.178-3.188-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m44.8 34.5c0 0-31.9-2.5-31.4 2.1 0 0-1.6 11.2 2.3 18 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m38.7 39.1c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-32.9c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v32.9"/></g><path d="m41 42.3c2.4 0 4.3-1.9 4.3-4.2v-32.9c0-1.2-.6-2.4-1.4-3.1 1.9.4 3.4 2.1 3.4 4.1v32.9c0 2.3-1.9 4.2-4.2 4.2-1.1 0-2-.4-2.8-1 .1 0 .4 0 .7 0" fill="#eba352"/><g fill="#ffdd67"><path d="m13.4 30c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m21.9 26.2c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/><path d="m30.4 25.7c0-2.4 1.9-4.3 4.2-4.3h.1c2.3 0 4.2 1.9 4.2 4.3v6.6c0 2.4-1.9 4.3-4.2 4.3h-.1c-2.3 0-4.2-1.9-4.2-4.3v-6.6"/></g><g fill="#eba352"><path d="m16.5 39.3c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.8 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m24.9 35.5c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.7.6 1.6.9 2.6.9"/><path d="m33.3 35c2.4 0 4.2-1.9 4.2-4.2v-6.6c0-.6-.1-1.2-.4-1.8 1 .8 1.7 2 1.7 3.4v6.6c0 2.4-1.9 4.2-4.2 4.2h-.1c-1.7 0-3.2-1-3.8-2.5.8.6 1.7.9 2.6.9"/><path d="m41 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.2 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.1-6.1-9.6-9.4"/></g><path d="m39.6 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#ffdd67"/><g fill="#eba352"><path d="m46.6 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3-4.9 4-16.3-1.9-17.5"/><path d="m40.1 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2620.svg b/build/js/jsxc/lib/emojione/assets/svg/2620.svg
index 4c44aca..c8858de 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2620.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2620.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m46.48 22.04c1.207-2.094 1.891-4.48 1.891-7.02-.001-8.299-7.327-15.03-16.366-15.03s-16.365 6.728-16.365 15.03c0 2.534.684 4.921 1.891 7.01-1.15.819-1.891 2.099-1.891 3.538 0 2.472 2.182 4.475 4.873 4.475.254 0 .504-.019.748-.054-.307.699-.664 1.566-.748 2-.359 1.836 1.646 3.377 3.678 3.377 0 0 .982.081 1.193-.112.76-.697 0-3.832 0-3.832 0-.528.467-.956 1.043-.956.574 0 1.039.428 1.039.956 0 0-.758 3.247 0 3.944.619.567 2.881.567 3.498 0 .76-.697 0-3.944 0-3.944 0-.528.467-.956 1.041-.956s1.041.428 1.041.956c0 0-.76 3.247 0 3.944.617.567 2.879.567 3.496 0 .76-.697 0-3.944 0-3.944 0-.528.467-.956 1.041-.956.576 0 1.041.428 1.041.956 0 0-.76 3.135 0 3.832.211.193 1.195.112 1.195.112 2.031 0 4.03-1.541 3.678-3.377-.084-.437-.441-1.304-.75-2 .244.035.496.054.75.054 2.691 0 4.873-2 4.873-4.475 0-1.439-.74-2.719-1.89-3.538m-23.303.844c-1.84-1.238-6.609-6.425-2.664-6.642 2.428-.134 8.287 1.866 8.664 4.073.256 1.502-4.162 3.807-6 2.569m11.584 4.692c-.938.861-4.369.861-5.307 0-.879-.808.566-1.428 1.068-2.297.58-1.01.873-1.924 1.586-1.924s1 .914 1.586 1.923c.5.869 1.926 1.51 1.067 2.298m6.281-4.692c-1.838 1.238-6.256-1.066-6-2.568.377-2.207 6.234-4.207 8.664-4.073 3.944.216-.824 5.402-2.664 6.641"/><path d="m59.52 51.55c-2.248-1.192-3.742-.313-3.742-.313-1.545.906-4.104.96-5.691.118l-12.256-6.497 12.256-6.499c1.588-.84 4.148-.787 5.691.12 0 0 1.494.877 3.742-.314 2.373-1.259 3.188-4.046 1.816-6.227-.453-.719-.453-.719-.453-.719-.75-.522-1.459-1.651-1.576-2.51 0 0 0 0-.453-.72-1.371-2.179-4.406-2.926-6.781-1.667-2.248 1.19-2.166 2.818-2.166 2.818.082 1.681-1.146 3.743-2.732 4.583l-15.173 8.05-15.172-8.04c-1.586-.84-2.816-2.902-2.732-4.583 0 0 .082-1.628-2.166-2.818-2.375-1.259-5.412-.512-6.781 1.667-.453.72-.453.72-.453.72-.117.858-.826 1.987-1.578 2.51 0 0 0 0-.451.719-1.371 2.181-.557 4.968 1.816 6.227 2.248 1.191 3.742.314 3.742.314 1.543-.907 4.104-.96 5.689-.12l12.258 6.499-12.258 6.497c-1.586.842-4.146.788-5.689-.118 0 0-1.494-.879-3.742.313-2.373 1.259-3.188 4.047-1.816 6.227.451.72.451.72.451.72.752.521 1.461 1.65 1.578 2.509 0 0 0 0 .453.719 1.369 2.18 4.406 2.928 6.781 1.669 2.248-1.192 2.166-2.819 2.166-2.819-.084-1.68 1.146-3.743 2.732-4.584l15.172-8.05 15.172 8.04c1.586.841 2.814 2.904 2.732 4.584 0 0-.082 1.627 2.166 2.819 2.375 1.259 5.41.511 6.781-1.669.453-.719.453-.719.453-.719.117-.858.826-1.987 1.576-2.509 0 0 0 0 .453-.72 1.372-2.178.558-4.966-1.815-6.225"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m46.5 22c1.2-2.1 1.9-4.5 1.9-7 0-8.3-7.4-15-16.4-15s-16.4 6.7-16.4 15c0 2.5.7 4.9 1.9 7-1.1.8-1.9 2.1-1.9 3.5 0 2.5 2.2 4.5 4.9 4.5.3 0 .5 0 .7-.1-.3.7-.7 1.6-.7 2-.4 1.8 1.6 3.4 3.7 3.4 0 0 1 .1 1.2-.1.8-.7 0-3.8 0-3.8 0-.5.5-1 1-1 .6 0 1 .4 1 1 0 0-.8 3.2 0 3.9.6.6 2.9.6 3.5 0 .8-.7 0-3.9 0-3.9 0-.5.5-1 1-1s1 .4 1 1c0 0-.8 3.2 0 3.9.6.6 2.9.6 3.5 0 .8-.7 0-3.9 0-3.9 0-.5.5-1 1-1 .6 0 1 .4 1 1 0 0-.8 3.1 0 3.8.2.2 1.2.1 1.2.1 2 0 4-1.5 3.7-3.4-.1-.4-.4-1.3-.8-2 .2 0 .5.1.8.1 2.7 0 4.9-2 4.9-4.5.2-1.4-.6-2.6-1.7-3.5m-23.3.9c-1.8-1.2-6.6-6.4-2.7-6.6 2.4-.1 8.3 1.9 8.7 4.1.2 1.4-4.2 3.7-6 2.5m11.6 4.7c-.9.9-4.4.9-5.3 0-.9-.8.6-1.4 1.1-2.3.6-1 .9-1.9 1.6-1.9.7 0 1 .9 1.6 1.9.4.8 1.8 1.5 1 2.3m6.2-4.7c-1.8 1.2-6.3-1.1-6-2.6.4-2.2 6.2-4.2 8.7-4.1 3.9.3-.8 5.4-2.7 6.7"/><path d="m59.5 51.5c-2.2-1.2-3.7-.3-3.7-.3-1.5.9-4.1 1-5.7.1l-12.3-6.5 12.3-6.5c1.6-.8 4.1-.8 5.7.1 0 0 1.5.9 3.7-.3 2.4-1.3 3.2-4 1.8-6.2-.5-.7-.5-.7-.5-.7-.8-.5-1.5-1.7-1.6-2.5 0 0 0 0-.5-.7-1.4-2.2-4.4-2.9-6.8-1.7-2.2 1.2-2.2 2.8-2.2 2.8.1 1.7-1.1 3.7-2.7 4.6l-15.2 8-15.2-8c-1.6-.8-2.8-2.9-2.7-4.6 0 0 .1-1.6-2.2-2.8-2.4-1.3-5.4-.5-6.8 1.7-.5.7-.5.7-.5.7-.1.9-.8 2-1.6 2.5 0 0 0 0-.5.7-1.4 2.2-.6 5 1.8 6.2 2.2 1.2 3.7.3 3.7.3 1.5-.9 4.1-1 5.7-.1l12.3 6.5-12.3 6.5c-1.6.8-4.1.8-5.7-.1 0 0-1.5-.9-3.7.3-2.4 1.3-3.2 4-1.8 6.2.5.7.5.7.5.7 1.1.6 1.8 1.7 1.9 2.6 0 0 0 0 .5.7 1.4 2.2 4.4 2.9 6.8 1.7 2.2-1.2 2.2-2.8 2.2-2.8-.1-1.7 1.1-3.7 2.7-4.6l15.2-8 15.2 8c1.6.8 2.8 2.9 2.7 4.6 0 0-.1 1.6 2.2 2.8 2.4 1.3 5.4.5 6.8-1.7.5-.7.5-.7.5-.7.1-.9.8-2 1.6-2.5 0 0 0 0 .5-.7 1.1-2.2.3-5-2.1-6.3"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2622.svg b/build/js/jsxc/lib/emojione/assets/svg/2622.svg
index 15be11a..b206833 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2622.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2622.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3e4347" cx="32" cy="32" r="30"/><circle fill="#ffe62e" cx="32" cy="32" r="27"/><g fill="#3e4347"><circle cx="32" cy="32" r="5"/><path d="m8 28.759l17.12 2.221c.241-1.88 1.233-3.521 2.668-4.619l-10.485-13.717c-5 3.828-8.46 9.561-9.303 16.12"/><path d="m32 38.816c-.946 0-1.848-.189-2.669-.533l-6.639 15.939c2.865 1.194 6.01 1.856 9.308 1.856 3.299 0 6.441-.662 9.308-1.856l-6.639-15.939c-.821.344-1.723.533-2.669.533"/><path d="m38.88 30.98l17.12-2.221c-.843-6.555-4.303-12.287-9.304-16.12l-10.484 13.718c1.434 1.097 2.428 2.739 2.668 4.619"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#3e4347"/><circle cx="32" cy="32" r="27" fill="#ffe62e"/><g fill="#3e4347"><circle cx="32" cy="32" r="5"/><path d="m8 28.8l17.1 2.2c.2-1.9 1.2-3.5 2.7-4.6l-10.5-13.8c-5 3.9-8.5 9.6-9.3 16.2"/><path d="m32 38.8c-.9 0-1.8-.2-2.7-.5l-6.6 15.9c2.9 1.2 6 1.9 9.3 1.9 3.3 0 6.4-.7 9.3-1.9l-6.6-15.9c-.9.3-1.8.5-2.7.5"/><path d="m38.9 31l17.1-2.2c-.8-6.6-4.3-12.3-9.3-16.1l-10.5 13.7c1.4 1.1 2.4 2.7 2.7 4.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2623.svg b/build/js/jsxc/lib/emojione/assets/svg/2623.svg
index 25046ce..60a22e5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2623.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2623.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eda454"><path d="m38.431 25.25c1.253-.941 2.299-2.149 3.057-3.543-2.688-1.888-5.959-2.997-9.487-2.997s-6.8 1.108-9.488 2.997c.758 1.394 1.805 2.602 3.057 3.543 1.857-1.194 4.063-1.889 6.432-1.889s4.572.695 6.429 1.889"/><path d="m48.535 34.11c-1.587-.01-3.154.326-4.587.979.002.096.007.191.007.289 0 4.568-2.535 8.539-6.269 10.572.15 1.572.639 3.105 1.436 4.482 5.594-2.678 9.461-8.412 9.461-15.05 0-.425-.017-.849-.048-1.267"/><path d="m20.05 35.38c0-.111.005-.221.008-.332-1.437-.637-3-.959-4.589-.936-.031.418-.047.842-.047 1.268 0 6.672 3.9 12.426 9.534 15.09.801-1.373 1.294-2.902 1.451-4.473-3.781-2.02-6.357-6.01-6.357-10.617"/><path d="m8.815 34.03c5.918-3.435 13.38-1.702 17.13 3.82l2.31-1.342c-.107-.357-.166-.738-.166-1.133 0-1.871 1.303-3.438 3.046-3.834v-2.645c-6.675-.453-11.951-6.1-11.953-13 .001-5.297 3.11-9.855 7.574-11.894-.012.004-.022.008-.034.012.011-.004.022-.01.034-.015-6.701 2.214-11.54 8.554-11.54 16.03 0 0 0 .001 0 .002 0 0 0 .001 0 .001 0 2.256.441 4.409 1.241 6.376-2.076.292-4.132.981-6.06 2.099-6.442 3.741-9.485 11.12-8.04 18.06-.476-4.906 1.898-9.89 6.462-12.539"/><path d="m61.999 43.3c.058-5.889-2.959-11.636-8.395-14.792-1.927-1.117-3.982-1.807-6.06-2.099.8-1.967 1.241-4.12 1.241-6.376 0 0 0-.001 0-.001 0-.001 0-.002 0-.002 0-7.477-4.839-13.816-11.54-16.03.011.005.022.011.034.016-.012-.003-.023-.008-.034-.012 4.464 2.038 7.573 6.597 7.573 11.894-.001 6.9-5.277 12.547-11.953 13v2.645c1.744.396 3.046 1.963 3.046 3.834 0 .416-.064.816-.183 1.191l2.296 1.332c3.737-5.555 11.224-7.309 17.16-3.865 4.137 2.4 6.474 6.719 6.521 11.158.005.459-.015.918-.059 1.377 0-.002 0-.002 0-.004 0 .002 0 .006 0 .008.228-1.087.343-2.182.354-3.274"/><path d="m42.36 56.35c-4.167-2.418-6.509-6.783-6.523-11.256-.006-1.924.419-3.867 1.313-5.684l-2.304-1.336c-.714.762-1.726 1.238-2.85 1.238-1.146 0-2.176-.494-2.892-1.283l-2.287 1.328c3.01 6.05.791 13.525-5.186 16.992-4.564 2.65-10.05 2.223-14.04-.645 5.259 4.727 13.14 5.768 19.583 2.029 1.915-1.111 3.529-2.545 4.815-4.193 1.287 1.65 2.902 3.086 4.819 4.199 6.441 3.736 14.324 2.695 19.583-2.031-.009.008-.018.012-.025.018.008-.006.017-.014.025-.021-3.987 2.867-9.469 3.295-14.04.645"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eda454"><path d="m38.4 25.3c1.3-.9 2.3-2.1 3.1-3.5-2.7-1.9-6-3-9.5-3s-6.8 1.1-9.5 3c.8 1.4 1.8 2.6 3.1 3.5 1.9-1.2 4.1-1.9 6.4-1.9s4.6.7 6.4 1.9"/><path d="m48.5 34.1c-1.6 0-3.2.3-4.6 1 0 .1 0 .2 0 .3 0 4.6-2.5 8.5-6.3 10.6.2 1.6.6 3.1 1.4 4.5 5.6-2.7 9.5-8.4 9.5-15.1.1-.4.1-.9 0-1.3"/><path d="m20 35.4c0-.1 0-.2 0-.3-1.4-.6-3-1-4.6-.9 0 .4 0 .8 0 1.3 0 6.7 3.9 12.4 9.5 15.1.8-1.4 1.3-2.9 1.5-4.5-3.8-2.1-6.4-6.1-6.4-10.7"/><path d="m8.8 34c5.9-3.4 13.4-1.7 17.1 3.8l2.3-1.3c-.1-.4-.2-.7-.2-1.1 0-1.9 1.3-3.4 3-3.8v-2.6c-6.7-.5-12-6.1-12-13 0-5.3 3.1-9.9 7.6-11.9-6.7 2.2-11.5 8.6-11.5 16 0 2.3.4 4.4 1.2 6.4-2.1.3-4.1 1-6.1 2.1-6.4 3.7-9.5 11.1-8 18.1-.3-5 2.1-10 6.6-12.7"/><path d="m62 43.3c.1-5.9-3-11.6-8.4-14.8-1.9-1.1-4-1.8-6.1-2.1.8-2 1.2-4.1 1.2-6.4 0 0 0 0 0 0 0-7.5-4.8-13.8-11.5-16 4.5 2 7.6 6.6 7.6 11.9 0 6.9-5.3 12.5-12 13v2.6c1.7.4 3 2 3 3.8 0 .4-.1.8-.2 1.2l2.3 1.3c3.7-5.6 11.2-7.3 17.2-3.9 4.1 2.4 6.5 6.7 6.5 11.2 0 .5 0 .9-.1 1.4.4-1 .5-2.1.5-3.2"/><path d="m42.4 56.3c-4.2-2.4-6.5-6.8-6.5-11.3 0-1.9.4-3.9 1.3-5.7l-2.3-1.3c-.7.8-1.7 1.2-2.9 1.2-1.1 0-2.2-.5-2.9-1.3l-2.3 1.3c3 6.1.8 13.5-5.2 17-4.6 2.7-10 2.2-14-.6 5.3 4.7 13.1 5.8 19.6 2 1.9-1.1 3.5-2.5 4.8-4.2 1.3 1.7 2.9 3.1 4.8 4.2 6.4 3.7 14.3 2.7 19.6-2-4 3-9.5 3.4-14 .7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2626.svg b/build/js/jsxc/lib/emojione/assets/svg/2626.svg
index 6726a02..cc62ecd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2626.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2626.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m28 0h8v64h-8z"/><path d="m22 8h20v8h-20z"/><path d="m44 61l-24-10v-8l24 10z"/><path d="m7 24h50v8h-50z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c28fef" d="m55 32v-8h-19v-7h6v-8h-6v-7h-8v7h-6v8h6v7h-19v8h19v13l-7-3v8l7 3v9h8v-6l7 3v-8l-7-3v-16z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/262a.svg b/build/js/jsxc/lib/emojione/assets/svg/262a.svg
index 049ee10..87fd9c7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/262a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/262a.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75a843"><path d="M41.166,60c-15.154,0-27.443-12.536-27.443-27.999c0-15.463,12.289-28,27.443-28
- C43.525,4,45.814,4.305,48,4.876C43.178,1.791,37.477,0,31.365,0C14.043,0,0,14.327,0,32.001C0,49.674,14.043,64,31.365,64
- c6.111,0,11.813-1.789,16.635-4.875C45.814,59.696,43.525,60,41.166,60z"/><path d="m51 38.37l8.03 5.63-3.03-9.155 8-5.675-9.91-.03-3.09-9.14-3.09 9.14-9.91.03 8 5.675-3.035 9.155z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m40.6 58.2c-14.2 0-25.7-11.8-25.7-26.2s11.5-26.2 25.7-26.2c2.2 0 4.4.2 6.4.8-4.5-2.9-9.9-4.6-15.6-4.6-16.2 0-29.4 13.4-29.4 30 0 16.6 13.2 30 29.4 30 5.7 0 11.1-1.7 15.6-4.6-2 .6-4.2.8-6.4.8"/><path d="m49.8 38l7.5 5.2-2.8-8.5 7.5-5.4h-9.3l-2.9-8.5-2.9 8.5h-9.3l7.5 5.4-2.8 8.5z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/262e.svg b/build/js/jsxc/lib/emojione/assets/svg/262e.svg
index 01751f9..01a035a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/262e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/262e.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#66b0dd" d="M9.664,12h8.465c3.215-2.235,6.979-3.736,11.059-4.207V12h5.625V7.793C38.893,8.264,42.655,9.765,45.87,12
- h8.466C48.839,5.867,40.863,2,32,2C23.136,2,15.16,5.867,9.664,12z"/><g fill="#c7e755"><path d="m54.2 22h6.079c-1.321-3.725-3.356-7.113-5.943-10h-8.466c3.609 2.508 6.501 5.958 8.33 10"/><path d="m18.13 12h-8.465c-2.588 2.887-4.623 6.275-5.943 10h6.079c1.829-4.04 4.721-7.492 8.329-10"/><path d="m29.19 12h5.625v10h-5.625z"/></g><g fill="#ffe75a"><path d="m29.19 30.598l-1.405 1.402h8.435l-1.407-1.402v-8.598h-5.623z"/><path d="m56.38 32h5.625c0-3.506-.61-6.87-1.721-10h-6.079c1.383 3.056 2.175 6.434 2.175 10"/><path d="M3.721,22C2.61,25.13,2,28.494,2,32h5.625c0-3.566,0.792-6.944,2.175-10H3.721z"/></g><g fill="#eda454"><path d="m56.38 32c0 3.564-.774 6.947-2.156 10h6.06c1.109-3.129 1.719-6.494 1.719-9.999h-5.625"/><path d="m17.784 42h7.954l3.452-3.448v3.448h5.623v-3.448l3.447 3.448h7.96l-10-10h-8.435z"/><path d="m9.78 42c-1.382-3.053-2.155-6.436-2.155-9.999h-5.625c0 3.506.609 6.871 1.72 10h6.06"/></g><g fill="#ed5181"><path d="m29.19 42h5.625v10h-5.625z"/><path d="m46.22 42h-7.955l8.993 8.993c-.436.351-.883.687-1.343 1.01h8.426c2.587-2.887 4.622-6.275 5.943-10h-6.06c-.808 1.785-1.822 3.46-3.02 4.987l-4.986-4.987"/><path d="m25.738 42h-7.954l-4.987 4.987c-1.194-1.527-2.209-3.202-3.02-4.987h-6.06c1.321 3.725 3.355 7.113 5.942 10h8.425c-.46-.32-.907-.656-1.343-1.01l8.994-8.993"/></g><path fill="#a374b8" d="m54.34 52h-8.426c-3.221 2.248-7.01 3.735-11.1 4.209v-4.209h-5.625v4.209c-4.094-.474-7.88-1.961-11.1-4.209h-8.424c5.497 6.133 13.473 10 22.338 10 8.864 0 16.84-3.867 22.337-10"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m9.7 12h8.5c3.2-2.2 7-3.7 11.1-4.2v4.2h5.6v-4.2c4.1.5 7.8 2 11.1 4.2h8.5c-5.7-6.1-13.6-10-22.5-10-8.9 0-16.8 3.9-22.3 10" fill="#66b0dd"/><g fill="#c7e755"><path d="m54.2 22h6.1c-1.3-3.7-3.4-7.1-5.9-10h-8.5c3.6 2.5 6.5 6 8.3 10"/><path d="m18.1 12h-8.4c-2.6 2.9-4.7 6.3-6 10h6.1c1.8-4 4.7-7.5 8.3-10"/><path d="m29.2 12h5.6v10h-5.6z"/></g><g fill="#ffe75a"><path d="m29.2 30.6l-1.4 1.4h8.4l-1.4-1.4v-8.6h-5.6z"/><path d="m56.4 32h5.6c0-3.5-.6-6.9-1.7-10h-6.1c1.4 3.1 2.2 6.4 2.2 10"/><path d="M3.7,22C2.6,25.1,2,28.5,2,32h5.6c0-3.6,0.8-6.9,2.2-10H3.7z"/></g><g fill="#eda454"><path d="m56.4 32c0 3.6-.8 6.9-2.2 10h6.1c1.1-3.1 1.7-6.5 1.7-10h-5.6"/><path d="m17.8 42h7.9l3.5-3.4v3.4h5.6v-3.4l3.5 3.4h7.9l-10-10h-8.4z"/><path d="m9.8 42c-1.4-3.1-2.2-6.4-2.2-10h-5.6c0 3.5.6 6.9 1.7 10h6.1"/></g><g fill="#ed5181"><path d="m29.2 42h5.6v10h-5.6z"/><path d="m46.2 42h-8l9 9c-.4.4-.9.7-1.3 1h8.4c2.6-2.9 4.6-6.3 5.9-10h-6.1c-.8 1.8-1.8 3.5-3 5l-4.9-5"/><path d="m25.7 42h-8l-5 5c-1.2-1.5-2.2-3.2-3-5h-6c1.3 3.7 3.4 7.1 5.9 10h8.4c-.5-.3-.9-.7-1.3-1l9-9"/></g><path d="m54.3 52h-8.4c-3.2 2.2-7 3.7-11.1 4.2v-4.2h-5.6v4.2c-4.1-.5-7.9-2-11.1-4.2h-8.4c5.5 6.1 13.5 10 22.3 10 8.9 0 16.8-3.9 22.3-10" fill="#a374b8"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/262f.svg b/build/js/jsxc/lib/emojione/assets/svg/262f.svg
index 03a0e70..e232b66 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/262f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/262f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f5f5f5" d="m53.21 10.788c11.717 11.716 11.717 30.708 0 42.42-5.857 5.857-15.355 5.857-21.21 0s-5.857-15.355 0-21.21c5.857-5.857 5.857-15.354 0-21.21-5.857-5.858-15.354-5.858-21.21 0 11.715-11.716 30.71-11.716 42.42 0"/><g fill="#3e4347"><path d="m10.787 53.21c-11.716-11.717-11.716-30.709 0-42.42 5.858-5.858 15.355-5.858 21.21 0 5.857 5.857 5.857 15.354 0 21.21-5.857 5.858-5.857 15.356 0 21.21s15.355 5.857 21.21 0c-11.715 11.715-30.71 11.715-42.43 0"/><circle cx="42.606" cy="42.605" r="5.625"/></g><circle fill="#f5f5f5" cx="21.393" cy="21.394" r="5.625"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m53.2 10.8c11.7 11.7 11.7 30.7 0 42.4-5.9 5.9-15.4 5.9-21.2 0s-5.9-15.3 0-21.2c5.9-5.9 5.9-15.4 0-21.2s-15.4-5.9-21.2 0c11.7-11.7 30.7-11.7 42.4 0" fill="#f5f5f5"/><g fill="#3e4347"><path d="m10.8 53.2c-11.7-11.7-11.7-30.7 0-42.4 5.9-5.9 15.4-5.9 21.2 0 5.9 5.9 5.9 15.4 0 21.2s-5.9 15.4 0 21.2 15.4 5.9 21.2 0c-11.7 11.7-30.7 11.7-42.4 0"/><circle cx="42.6" cy="42.6" r="5.6"/></g><circle cx="21.4" cy="21.4" r="5.6" fill="#f5f5f5"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2638.svg b/build/js/jsxc/lib/emojione/assets/svg/2638.svg
index 920b6f0..8c09aa2 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2638.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2638.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f7c94b"><circle cx="15.11" cy="51.23" r="1.655"/><circle cx="12.768" cy="48.892" r="1.655"/><circle cx="48.892" cy="12.768" r="1.655"/><circle cx="51.23" cy="15.11" r="1.655"/><circle cx="6.457" cy="33.655" r="1.656"/><circle cx="6.457" cy="30.344" r="1.655"/><circle cx="3.655" cy="32" r="1.656"/></g><path fill="#8896df" d="M3.313 32 5.51 33.31 7.707 32 5.51 30.687z"/><g fill="#f7c94b"><circle cx="57.54" cy="30.345" r="1.656"/><circle cx="57.54" cy="33.656" r="1.655"/><circle cx="60.34" cy="32" r="1.656"/></g><path fill="#8896df" d="m60.687 32l-2.197-1.313-2.2 1.313 2.2 1.31z"/><g fill="#f7c94b"><circle cx="12.768" cy="15.11" r="1.655"/><circle cx="15.11" cy="12.768" r="1.655"/><circle cx="51.23" cy="48.893" r="1.655"/><circle cx="48.892" cy="51.23" r="1.655"/><circle cx="30.345" cy="6.457" r="1.655"/><circle cx="33.655" cy="6.457" r="1.655"/><circle cx="32" cy="3.656" r="1.656"/></g><path fill="#8896df" d="M31.999 3.313 30.685 5.51 31.999 7.708 33.31 5.51z"/><g fill="#f7c94b"><circle cx="33.655" cy="57.54" r="1.655"/><circle cx="30.345" cy="57.54" r="1.655"/><circle cx="32" cy="60.35" r="1.656"/></g><path fill="#8896df" d="m32 60.688l1.31-2.198-1.31-2.2-1.315 2.2z"/><path fill="#f7c94b" d="m32 6.757c-13.941 0-25.24 11.301-25.24 25.24 0 13.94 11.303 25.24 25.24 25.24 13.943 0 25.24-11.304 25.24-25.25-.001-13.941-11.302-25.24-25.24-25.24m0 49.776c-13.548 0-24.533-10.984-24.533-24.533s10.985-24.533 24.533-24.533c13.55 0 24.534 10.983 24.534 24.533s-10.984 24.533-24.534 24.533"/><path fill="#fbefb4" d="m32 7.467c-13.548 0-24.533 10.983-24.533 24.533s10.985 24.533 24.533 24.533c13.549 0 24.534-10.984 24.534-24.534s-10.984-24.532-24.534-24.532m0 45.701c-11.69 0-21.17-9.479-21.17-21.17 0-11.69 9.477-21.17 21.17-21.17 11.691 0 21.17 9.477 21.17 21.17 0 11.689-9.477 21.17-21.17 21.17"/><path fill="#f7c94b" d="m32 10.833c-11.69 0-21.17 9.477-21.17 21.17 0 11.69 9.477 21.17 21.17 21.17 11.691 0 21.17-9.479 21.17-21.17 0-11.691-9.477-21.17-21.17-21.17m0 41.618c-11.294 0-20.451-9.156-20.451-20.452 0-11.296 9.157-20.452 20.451-20.452 11.296 0 20.453 9.156 20.453 20.452-.001 11.296-9.157 20.452-20.453 20.452"/><g fill="#ed4c5c"><circle cx="48.1" cy="15.902" r="1.191"/><circle cx="15.902" cy="48.1" r="1.19"/><circle cx="54.766" cy="32" r="1.191"/><circle cx="9.234" cy="32" r="1.191"/><circle cx="48.1" cy="48.1" r="1.191"/><circle cx="15.902" cy="15.902" r="1.19"/><circle cx="32" cy="54.766" r="1.191"/><circle cx="32" cy="9.234" r="1.191"/></g><path fill="#f7c94b" d="m33.3 17.216c-.047-4.446 1.207-5.748 1.207-5.748l-2.509-.286-2.508.286c0 0 1.253 1.302 1.207 5.748h-.604c0 0 .615 1.817.604 2.508-.011.629-.604 2.508-.604 2.508h1.905 1.906c0 0-.594-1.878-.604-2.508-.01-.69.604-2.508.604-2.508h-.604"/><path fill="#79cb92" d="m32 16.01l-1.044 1.701 1.044 1.702 1.04-1.702z"/><path fill="#f7c94b" d="m30.699 46.785c.046 4.445-1.207 5.748-1.207 5.748l2.508.285 2.509-.285c0 0-1.254-1.303-1.207-5.748h.604c0 0-.613-1.818-.604-2.508.01-.631.604-2.509.604-2.509h-1.906-1.905c0 0 .594 1.878.604 2.509.011.689-.604 2.508-.604 2.508h.604"/><path fill="#79cb92" d="m32 47.992l1.04-1.702-1.04-1.702-1.044 1.702z"/><path fill="#f7c94b" d="m46.786 33.3c4.443-.048 5.746 1.207 5.746 1.207l.285-2.51-.285-2.508c0 0-1.303 1.254-5.746 1.207v-.604c0 0-1.819.614-2.508.604-.632-.01-2.51-.604-2.51-.604v1.905 1.906c0 0 1.878-.594 2.51-.603.688-.01 2.508.603 2.508.603v-.603"/><path fill="#79cb92" d="M47.991 32 46.29 30.957 44.587 32 46.29 33.04z"/><path fill="#f7c94b" d="m17.215 30.699c-4.444.047-5.747-1.207-5.747-1.207l-.285 2.508.286 2.51c0 0 1.302-1.255 5.747-1.207v.603c0 0 1.819-.612 2.508-.603.631.009 2.51.603 2.51.603v-1.906-1.904c0 0-1.879.594-2.51.604-.689.011-2.508-.604-2.508-.604v.603z"/><path fill="#79cb92" d="m16.01 32l1.701 1.04 1.703-1.04-1.703-1.043z"/><path fill="#f7c94b" d="m43.37 22.465c3.111-3.176 4.918-3.21 4.918-3.21l-1.572-1.975-1.975-1.572c0 0-.034 1.807-3.211 4.917l-.427-.427c0 0-.851 1.719-1.347 2.2-.453.439-2.2 1.347-2.2 1.347l1.347 1.347 1.348 1.347c0 0 .908-1.748 1.347-2.2.481-.496 2.2-1.347 2.2-1.347l-.428-.427"/><path fill="#8896df" d="m43.31 20.692l-1.94.468-.47 1.94 1.941-.467z"/><path fill="#f7c94b" d="m20.625 41.533c-3.109 3.176-4.918 3.211-4.918 3.211l1.572 1.977 1.977 1.572c0 0 .034-1.808 3.21-4.918l.426.427c0 0 .853-1.721 1.347-2.2.453-.438 2.201-1.347 2.201-1.347l-1.347-1.347-1.347-1.349c0 0-.91 1.749-1.349 2.201-.479.495-2.2 1.347-2.2 1.347l.428.426"/><path fill="#8896df" d="m20.692 43.31l1.943-.468.465-1.942-1.94.47z"/><path fill="#f7c94b" d="m41.534 43.38c3.177 3.108 3.209 4.917 3.209 4.917l1.977-1.572 1.572-1.977c0 0-1.807-.035-4.918-3.209l.429-.428c0 0-1.722-.852-2.201-1.347-.438-.452-1.347-2.201-1.347-2.201l-1.348 1.347-1.347 1.348c0 0 1.747.908 2.2 1.348.496.479 1.347 2.2 1.347 2.2l.427-.426"/><path fill="#8896df" d="m43.31 43.31l-.467-1.94-1.943-.471.47 1.943z"/><path fill="#f7c94b" d="m22.465 20.625c-3.175-3.111-3.209-4.917-3.209-4.917l-1.977 1.572-1.572 1.977c0 0 1.809.033 4.918 3.209l-.428.427c0 0 1.721.853 2.2 1.347.44.453 1.349 2.2 1.349 2.2l1.347-1.347 1.347-1.347c0 0-1.747-.908-2.201-1.347-.494-.479-1.347-2.2-1.347-2.2l-.427.426"/><path fill="#8896df" d="m20.694 20.692l.466 1.941 1.94.467-.465-1.94z"/><circle fill="#f7c94b" cx="32" cy="32" r="10.61"/><circle fill="#fbefb4" cx="32" cy="32" r="9.769"/><circle fill="#f7c94b" cx="32" cy="32" r="6.927"/><g fill="#8896df"><path d="m27.29 40.16l1.093-.609-.019-1.251-1.094.608z"/><path d="m35.638 25.701l1.091-.611-.019-1.248-1.092.607z"/></g><g fill="#ed4c5c"><path d="m23.842 36.712l1.248.018.611-1.091-1.251-.02z"/><path d="m38.3 28.364l1.25.018.61-1.092-1.252-.02z"/></g><g fill="#8896df"><path d="m22.579 32l1.073.643 1.073-.643-1.073-.641z"/><path d="m39.27 32l1.08.642 1.07-.642-1.07-.643z"/></g><g fill="#ed4c5c"><path d="m23.84 27.29l.609 1.093 1.251-.018-.61-1.095z"/><path d="m38.3 35.639l.608 1.091 1.252-.018-.609-1.095z"/></g><g fill="#8896df"><path d="m27.29 23.842l-.02 1.248 1.092.612.019-1.252z"/><path d="m35.636 38.3l-.018 1.251 1.092.609.019-1.252z"/></g><g fill="#ed4c5c"><path d="m31.999 22.579l-.641 1.074.641 1.074.642-1.074z"/><path d="m31.999 39.27l-.641 1.08.641 1.07.642-1.07z"/></g><path fill="#8896df" d="m31.493 31.673c-.137-.044-.271-.099-.404-.163-.07-.033-.139-.066-.206-.105s-.13-.082-.193-.125c-.327-.223-.599-.497-.812-.808-.655-.955-.75-2.239-.132-3.31.245-.424.576-.766.957-1.021-2.691.594-4.703 2.99-4.703 5.859 0 .268.02.53.054.788.154 1.182.653 2.255 1.393 3.117.453.275.984.438 1.554.438.748 0 1.431-.275 1.956-.729-.035-.107-.064-.218-.088-.329-.051-.235-.08-.479-.08-.73 0-.899.348-1.715.911-2.33.02-.021.038-.044.059-.064.124-.128.259-.246.401-.354-.225-.021-.449-.063-.667-.134"/><path fill="#79cb92" d="m34.464 31.12c-.021-.001-.041-.002-.061-.003-.514.421-1.145.664-1.798.7-.148.008-.298.004-.446-.009-.143.107-.277.226-.401.354-.021.021-.039.043-.059.064-.563.614-.911 1.43-.911 2.33 0 .251.029.495.08.73.023.111.053.222.088.329-.525.453-1.208.729-1.956.729-.569 0-1.101-.162-1.554-.438 1.1 1.283 2.731 2.096 4.554 2.096.438 0 .866-.049 1.278-.138 2.024-.439 3.667-1.898 4.363-3.813-.234-1.591-1.55-2.824-3.177-2.931"/><path fill="#ed4c5c" d="m34.78 26.683c-.831-.436-1.776-.683-2.78-.683-.445 0-.879.05-1.297.142-.381.256-.712.598-.957 1.021-.618 1.07-.523 2.354.132 3.31.213.311.484.585.812.808.063.043.126.086.193.125s.136.072.206.105c.133.064.268.119.404.163.219.07.442.112.666.133.148.013.298.017.446.009.654-.036 1.285-.279 1.798-.7.02.001.041.001.061.003 1.627.107 2.943 1.341 3.177 2.931.232-.641.359-1.331.359-2.05 0-2.311-1.306-4.314-3.22-5.317"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.3 30.3c-.5 0-1 .2-1.3.6.1-.2.1-.4.1-.6 0-.9-.7-1.7-1.7-1.7-.2 0-.3 0-.5.1-.6-4.6-2.4-8.7-5.1-12.2.2-.1.3-.2.4-.3.6-.6.6-1.7 0-2.3-.6-.6-1.7-.6-2.3 0-.1.1-.1.2-.2.2.1-.1.2-.1.2-.2.6-.6.6-1.7 0-2.3-.6-.6-1.7-.6-2.3 0-.1.1-.2.3-.3.4-3.3-2.7-7.5-4.4-12.1-5 .1-.2.1-.3.1-.5 0-.9-.7-1.7-1.7-1.7-.2 0-.4 0-.6.1.4-.3.6-.8.6-1.3.1-.9-.7-1.6-1.6-1.6s-1.7.7-1.7 1.7c0 .5.2 1 .6 1.3-.2-.1-.4-.1-.6-.1-.9 0-1.7.7-1.7 1.7 0 .2 0 .3.1.5-4.5.5-8.7 2.2-12.1 4.9-.1-.2-.2-.3-.3-.4-.6-.6-1.7-.6-2.3 0-.6.6-.6 1.7 0 2.3.1.1.2.1.2.2-.1-.1-.1-.2-.2-.2-.6-.6-1.7-.6-2.3 0-.6.6-.6 1.7 0 2.3.1.1.3.2.4.3-2.8 3.5-4.5 7.7-5.1 12.3-.2-.1-.3-.1-.5-.1-.9 0-1.7.7-1.7 1.7 0 .2 0 .4.1.6-.3-.4-.8-.6-1.3-.6-.9-.1-1.6.7-1.6 1.6 0 .9.7 1.7 1.7 1.7.5 0 1-.2 1.3-.6-.1.2-.1.4-.1.6 0 .9.7 1.7 1.7 1.7.2 0 .3 0 .5-.1.4 4.5 2.2 8.7 4.9 12.1-.2.1-.3.2-.4.3-.6.6-.6 1.7 0 2.3s1.7.6 2.3 0c.1-.1.1-.2.2-.2-.1.1-.2.1-.2.2-.6.6-.6 1.7 0 2.3.6.6 1.7.6 2.3 0 .1-.1.2-.3.3-.4 3.5 2.7 7.6 4.5 12.2 5.1-.1.2-.1.3-.1.5 0 .9.7 1.7 1.7 1.7.2 0 .4 0 .6-.1-.4.3-.6.8-.6 1.3 0 .9.7 1.7 1.7 1.7.9 0 1.7-.7 1.7-1.7 0-.5-.2-1-.6-1.3.2.1.4.1.6.1.9 0 1.7-.7 1.7-1.7 0-.2 0-.3-.1-.5 4.6-.6 8.7-2.4 12.2-5.1.1.2.2.3.3.4.6.6 1.7.6 2.3 0 .6-.6.6-1.7 0-2.3-.1-.1-.2-.1-.2-.2.1.1.1.2.2.2.6.6 1.7.6 2.3 0s.6-1.7 0-2.3c-.1-.1-.3-.2-.4-.3 2.7-3.5 4.5-7.6 5.1-12.2.2.1.3.1.5.1.9 0 1.7-.7 1.7-1.7 0-.2 0-.4-.1-.6.3.4.8.6 1.3.6.9 0 1.7-.7 1.7-1.7-.2-.8-.9-1.6-1.9-1.6m-26-18.6c3.9.4 7.4 2 10.4 4.3-.1.6-6 7.1-6.5 7.4-1.3-.9-2.8-1.6-4.5-1.9-.2-.6.3-9.3.6-9.8m-4.6 0c.3.5.8 9.2.6 9.8-1.7.3-3.2.9-4.5 1.9-.5-.3-6.4-6.8-6.5-7.4 2.9-2.3 6.5-3.9 10.4-4.3m-13.7 7.6c.6.1 7.1 6 7.4 6.5-.9 1.3-1.6 2.8-1.9 4.5-.6.2-9.3-.3-9.8-.6.4-3.9 2-7.5 4.3-10.4m0 25.4c-2.3-2.9-3.8-6.5-4.3-10.4.5-.3 9.2-.8 9.8-.6.3 1.7.9 3.2 1.9 4.5-.3.5-6.8 6.4-7.4 6.5m13.7 7.6c-3.9-.4-7.4-2-10.4-4.3.1-.6 6-7.1 6.5-7.4 1.3.9 2.8 1.6 4.5 1.9.2.6-.3 9.3-.6 9.8m2.3-15.3c-2.8 0-5-2.2-5-5 0-2.8 2.2-5 5-5 2.8 0 5 2.2 5 5 0 2.8-2.2 5-5 5m2.3 15.3c-.3-.5-.8-9.2-.6-9.8 1.7-.3 3.2-.9 4.5-1.9.5.3 6.4 6.8 6.5 7.4-2.9 2.3-6.5 3.9-10.4 4.3m13.7-7.6c-.6-.1-7.1-6-7.4-6.5.9-1.3 1.6-2.8 1.9-4.5.6-.2 9.3.3 9.8.6-.4 3.9-2 7.5-4.3 10.4m-5.5-14.4c-.3-1.7-.9-3.2-1.9-4.5.3-.5 6.8-6.4 7.4-6.5 2.3 2.9 3.8 6.5 4.3 10.4-.5.3-9.2.8-9.8.6" fill="#c28fef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2639.svg b/build/js/jsxc/lib/emojione/assets/svg/2639.svg
index c98bcb0..ead0eb5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2639.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2639.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="20.5" cy="22.592" r="4.5"/><circle cx="43.5" cy="22.592" r="4.5"/><path d="m17 46.5c2.285-15.783 27.741-15.818 30 0-5.766-10.509-24.24-10.515-30 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="24.6" r="5"/><circle cx="43.5" cy="24.6" r="5"/><path d="m19.4 45.8c8.1-5.7 17.1-5.6 25.2 0 1 .7 1.8-.5 1.2-1.6-2.5-4-7.4-7.7-13.8-7.7s-11.3 3.6-13.8 7.7c-.6 1.1.2 2.3 1.2 1.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/263a.svg b/build/js/jsxc/lib/emojione/assets/svg/263a.svg
index eaecf30..f8a5cb7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/263a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/263a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffdd67" cx="32" cy="32" r="30"/><g fill="#664e27"><circle cx="20.5" cy="25.592" r="4.5"/><circle cx="43.5" cy="25.592" r="4.5"/><path d="m52.891 34.5c-.686 4.537-3.387 8.824-7.248 11.754-1.934 1.463-4.166 2.555-6.498 3.244-2.344.701-4.73.99-7.172 1-4.705.027-9.746-1.283-13.621-4.24-3.863-2.928-6.564-7.221-7.242-11.76 2.256 3.938 5.359 7.107 8.975 9.135 3.627 2.049 7.705 2.865 11.941 2.867 4.131.004 8.287-.814 11.891-2.863 3.616-2.028 6.72-5.201 8.974-9.139"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffdd67"/><g fill="#664e27"><circle cx="20.5" cy="24.6" r="5"/><circle cx="43.5" cy="24.6" r="5"/><path d="m48.1 37c-4.3 6.1-9.5 7.6-16.1 7.6s-11.8-1.5-16.1-7.6c-.6-.8-2.2-.3-1.8.9 2.3 8 10 12.7 18 12.7s15.7-4.7 18-12.7c.2-1.2-1.4-1.7-2-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2648.svg b/build/js/jsxc/lib/emojione/assets/svg/2648.svg
index 9d8b075..f85279e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2648.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2648.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#d8544a" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m44.3 17.01c-4.318-.24-6.808 3.219-7.925 7.146-1.459 5.273-2.917 10.547-4.376 15.821-1.459-5.274-2.917-10.549-4.376-15.822-1.116-3.927-3.605-7.386-7.923-7.146-3.885.215-6.501 3.767-6.698 7.549-.102 1.96 2.839 1.949 2.94 0 .135-2.579 1.902-4.407 4.396-4.546 2.573-.144 3.855 2.863 4.449 4.949 1.932 6.982 3.863 13.965 5.794 20.947.401 1.451 2.434 1.451 2.835 0 1.932-6.982 3.862-13.965 5.793-20.947.66-2.317 1.828-4.772 4.45-4.949 2.487-.167 4.274 2.196 4.396 4.546.102 1.949 3.042 1.96 2.94 0-.195-3.782-2.811-7.331-6.695-7.548z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#d8544a"/><path d="m44.3 17c-4.3-.2-6.8 3.2-7.9 7.1-1.5 5.3-2.9 10.6-4.4 15.9-1.5-5.3-2.9-10.5-4.4-15.8-1.1-3.9-3.6-7.4-7.9-7.1-3.9.2-6.5 3.8-6.7 7.5-.1 2 2.8 1.9 2.9 0 .1-2.6 1.9-4.4 4.4-4.5 2.6-.1 3.9 2.9 4.4 4.9 1.9 7 3.9 14 5.8 20.9.4 1.5 2.4 1.5 2.8 0 1.9-7 3.9-14 5.8-20.9.7-2.3 1.8-4.8 4.5-4.9 2.5-.2 4.3 2.2 4.4 4.5.1 1.9 3 2 2.9 0-.1-3.8-2.7-7.4-6.6-7.6z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2649.svg b/build/js/jsxc/lib/emojione/assets/svg/2649.svg
index 689c7ce..a569cb3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2649.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2649.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#e26a3b" cx="32" cy="32" r="29.999"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m46.585 17c-2.268.026-4.963.365-6.778 1.872-2.622 2.175-4.138 6.857-7.805 7.116-3.669-.259-5.184-4.94-7.805-7.116-1.815-1.507-4.513-1.846-6.78-1.872-1.889-.022-1.887 2.976 0 2.998 3.766.046 5.861 1.673 7.975 4.75.618.898 1.251 1.667 1.945 2.299-3.285 1.787-5.436 5.584-5.639 9.444-.313 5.927 4.918 10.202 10.248 10.495 5.629.311 9.72-4.748 10.203-10.05.032-.136.053-.281.044-.446.009-.162-.011-.305-.042-.44-.346-4.02-2.466-7.207-5.669-8.849.762-.659 1.448-1.483 2.128-2.454 2.146-3.061 4.188-4.704 7.975-4.75 1.887-.022 1.889-3.02 0-2.998zm-7.319 19.491c-.509 9.661-14.13 9.661-14.64 0-.508-9.668 14.13-9.616 14.64 0z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#e26a3b"/><path d="m46.6 17c-2.3 0-5 .4-6.8 1.9-2.6 2.1-4.1 6.8-7.8 7.1-3.7-.3-5.2-4.9-7.8-7.1-1.8-1.5-4.5-1.8-6.8-1.9-1.9 0-1.9 3 0 3 3.8 0 5.9 1.7 8 4.8.6.9 1.3 1.7 1.9 2.3-3.3 1.8-5.4 5.6-5.6 9.4-.3 5.9 4.9 10.2 10.2 10.5 5.6.3 9.7-4.7 10.2-10 0-.1.1-.3 0-.4 0-.2 0-.3 0-.4-.3-4-2.5-7.2-5.7-8.8.8-.7 1.4-1.5 2.1-2.5 2.1-3.1 4.2-4.7 8-4.8 2-.1 2-3.1.1-3.1zm-7.3 19.5c-.5 9.7-14.1 9.7-14.6 0-.6-9.7 14.1-9.6 14.6 0z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/264a.svg b/build/js/jsxc/lib/emojione/assets/svg/264a.svg
index ba0df1a..f87603f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/264a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/264a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ff8736" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m49.956 46.01c-4.079-1.147-8.251-1.884-12.452-2.231 0-7.854 0-15.708 0-23.563 4.201-.348 8.373-1.084 12.452-2.23 1.831-.515 1.052-3.443-.784-2.928-11.211 3.15-23.12 3.143-34.34.033-1.837-.51-2.615 2.419-.783 2.927 4.04 1.119 8.166 1.845 12.322 2.192 0 7.858 0 15.716 0 23.573-4.156.349-8.285 1.073-12.322 2.192-1.832.509-1.054 3.438.783 2.928 11.221-3.11 23.13-3.119 34.34.033 1.836.516 2.614-2.412.784-2.926zm-20.643-2.411c0-7.734 0-15.469 0-23.2 1.747.069 3.497.072 5.243.004 0 7.732 0 15.463 0 23.19-1.745-.068-3.495-.065-5.243.005z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff8736"/><path d="m50 46c-4.1-1.1-8.3-1.9-12.5-2.2 0-7.9 0-15.7 0-23.6 4.2-.3 8.4-1.1 12.5-2.2 1.8-.5 1.1-3.4-.8-2.9-11.2 3.1-23.1 3.1-34.3 0-1.9-.5-2.7 2.4-.9 2.9 4 1.1 8.2 1.8 12.3 2.2 0 7.9 0 15.7 0 23.6-4.2.3-8.3 1.1-12.3 2.2-1.8.5-1.1 3.4.8 2.9 11.2-3.1 23.1-3.1 34.3 0 1.9.6 2.7-2.4.9-2.9zm-20.7-2.4c0-7.7 0-15.5 0-23.2 1.7.1 3.5.1 5.2 0 0 7.7 0 15.5 0 23.2-1.7-.1-3.4-.1-5.2 0z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/264b.svg b/build/js/jsxc/lib/emojione/assets/svg/264b.svg
index e3bdd8a..703fda7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/264b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/264b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#f2b200" cx="32" cy="32" r="30"/><g fill="#fff" stroke="#fff" stroke-miterlimit="10"><path d="m28.316 32.13c2.145-3.539.619-8.07-2.617-10.28-.289-.198-.588-.354-.891-.493 5.08-2.133 10.873-1.942 16.04.592 1.688.828 3.172-1.691 1.479-2.523-8.186-4.02-17.438-3.02-24.453 2.833-.164.138-.277.286-.357.439-.531.459-1 .984-1.395 1.562-.082.096-.158.202-.223.334-.074.123-.123.242-.158.363-1.586 3.643-.586 7.627 2.773 9.919 3.417 2.329 7.848.488 9.807-2.746zm-9.894-6.06c3.109-5.137 9.803-.425 7.367 4.588-1.084 2.232-3.732 2.828-5.803 1.695-2.203-1.205-2.57-4.212-1.564-6.283z"/><path d="m48.26 39.05c1.588-3.645.586-7.629-2.773-9.921-3.414-2.328-7.848-.491-9.805 2.743-2.145 3.542-.623 8.07 2.615 10.282.289.197.586.354.889.493-5.08 2.132-10.875 1.939-16.03-.594-1.688-.829-3.172 1.691-1.479 2.523 8.182 4.02 17.439 3.02 24.453-2.832.164-.137.277-.287.357-.44.531-.459 1-.985 1.395-1.563.082-.095.158-.2.223-.332.074-.121.121-.24.158-.359zm-10.05-5.702c1.084-2.231 3.73-2.827 5.801-1.694 2.203 1.206 2.57 4.211 1.564 6.281-3.109 5.138-9.805.425-7.365-4.587z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#f2b200"/><g fill="#fff" stroke="#fff" stroke-miterlimit="10"><path d="m28.3 32.1c2.1-3.5.6-8.1-2.6-10.3-.3-.2-.6-.4-.9-.5 5.1-2.1 10.9-1.9 16 .6 1.7.8 3.2-1.7 1.5-2.5-8.2-4-17.4-3-24.5 2.8-.2.1-.3.3-.4.4-.5.5-1 1-1.4 1.6-.1.1-.2.2-.2.3-.1.1-.1.2-.2.4-1.6 3.6-.6 7.6 2.8 9.9 3.5 2.4 8 .6 9.9-2.7zm-9.9-6c3.1-5.1 9.8-.4 7.4 4.6-1.1 2.2-3.7 2.8-5.8 1.7-2.2-1.3-2.6-4.3-1.6-6.3z"/><path d="m48.3 39c1.6-3.6.6-7.6-2.8-9.9-3.4-2.3-7.8-.5-9.8 2.7-2.1 3.5-.6 8.1 2.6 10.3.3.2.6.4.9.5-5.1 2.1-10.9 1.9-16-.6-1.7-.8-3.2 1.7-1.5 2.5 8.2 4 17.4 3 24.5-2.8.2-.1.3-.3.4-.4.5-.5 1-1 1.4-1.6.1-.1.2-.2.2-.3 0-.1 0-.2.1-.4zm-10.1-5.7c1.1-2.2 3.7-2.8 5.8-1.7 2.2 1.2 2.6 4.2 1.6 6.3-3.1 5.2-9.8.5-7.4-4.6z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/264c.svg b/build/js/jsxc/lib/emojione/assets/svg/264c.svg
index 1231e24..e5a2ad1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/264c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/264c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ffce31" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m42.962 40.16c-.168.766-.412 1.508-.668 2.252-.252.707-.574 1.387-.967 2.033-1.16 2.105-4.607 1.336-4.555-1 .074-3.266 2.73-6.648 4.078-9.533 2.578-5.527 5.186-14.617-1.281-18.883-4.85-3.197-11.211-1.642-13.957 3.238-2.271 4.04-.367 9.431 1.514 14.199-3.057-.782-6.418.713-8.123 3.221-2.191 3.228-.561 7.387 2.635 9.326 3.291 2 7.5.625 9.633-2.152.094-.096.18-.201.252-.334.084-.123.139-.248.18-.367.795-1.656.922-3.388.436-4.958-.012-.091-.025-.181-.055-.278-1.725-5.645-9.75-20.566 1.916-20.566 7.162 0 7 5.761 6.15 10.297-.779 4.145-3.02 7.982-4.984 11.713-2.074 3.952-2.631 9.609 2.924 10.867 4.697 1.063 7.152-5.05 7.873-8.295.405-1.836-2.591-2.618-3-.776zm-21.274-3c2.455-4.494 9.568-.547 7.148 3.891-2.888 4.248-9.581.565-7.148-3.891z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ffce31"/><path d="m43 40.2c-.2.8-.4 1.5-.7 2.3-.3.7-.6 1.4-1 2-1.2 2.1-4.6 1.3-4.6-1 .1-3.3 2.7-6.6 4.1-9.5 2.6-5.5 5.2-14.6-1.3-18.9-4.8-3.2-11.2-1.6-14 3.2-2.3 4-.4 9.4 1.5 14.2-3.1-.8-6.4.7-8.1 3.2-2.2 3.2-.6 7.4 2.6 9.3 3.3 2 7.5.6 9.6-2.2.1-.1.2-.2.3-.3.1-.1.1-.2.2-.4.8-1.7.9-3.4.4-5 0-.1 0-.2-.1-.3-1.7-5.6-9.8-20.6 1.9-20.6 7.2 0 7 5.8 6.2 10.3-.8 4.1-3 8-5 11.7-2.1 4-2.6 9.6 2.9 10.9 4.7 1.1 7.2-5 7.9-8.3.6-1.7-2.4-2.5-2.8-.6zm-21.3-3c2.5-4.5 9.6-.5 7.1 3.9-2.9 4.2-9.5.5-7.1-3.9z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/264d.svg b/build/js/jsxc/lib/emojione/assets/svg/264d.svg
index 39fa3ce..24f569c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/264d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/264d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#83bf4f" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m44.13 45.05c-1.4-1.076-2.914-3.112-3.215-5.04 3.275-4.105 5.716-9.195 4.947-14.506-.09-.629-.814-1.188-1.396-1.134-1.356.124-2.588.538-3.617 1.214 0-1.31 0-2.619 0-3.93 0-.162-.025-.306-.06-.441-.349-3-2.514-5.04-5.39-5.198-1.627-.089-3.037.69-4.02 1.898-.978-1.114-2.363-1.809-3.982-1.898-1.621-.089-3.02.685-4 1.884-.995-1.127-2.404-1.838-3.989-1.884-1.869-.053-1.865 3.036 0 3.089 1.35.038 2.494 1.045 2.549 2.524 0 .009-.004.018-.004.026.002 7.316.004 14.632.006 21.948.002 1.991 2.9 1.991 2.898 0-.001-7.288-.003-14.575-.005-21.862.001-.029.007-.055.005-.086 0-.007-.001-.014-.001-.014.194-3.301 4.923-3.295 5.097.014 0 7.316 0 14.632 0 21.948 0 1.991 2.898 1.991 2.898 0 0-7.316 0-14.632 0-21.948.174-3.316 4.928-3.316 5.102 0 0 2.966 0 5.933 0 8.898-.014.132-.012.254 0 .368 0 2.682 0 5.363 0 8.05-1.119 1.276-2.336 2.459-3.576 3.543-1.444 1.267.618 3.438 2.05 2.185.748-.655 1.503-1.376 2.245-2.141.855 2.069 2.368 3.913 3.998 5.165 1.52 1.17 2.963-1.512 1.463-2.665zm-1.08-17.262c.84 3.449-1.473 5.797-2.201 7.104 0-1.446 0-2.895 0-4.343.154-1.454 1.074-2.322 2.201-2.761z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#83bf4f"/><path d="m44.1 45c-1.4-1.1-2.9-3.1-3.2-5 3.3-4.1 5.7-9.2 4.9-14.5-.1-.6-.8-1.2-1.4-1.1-1.4.1-2.6.5-3.6 1.2 0-1.3 0-2.6 0-3.9 0-.2 0-.3-.1-.4-.3-3-2.5-5-5.4-5.2-1.6-.1-3 .7-4 1.9-1-1.1-2.4-1.8-4-1.9-1.6-.1-3 .7-4 1.9-1-1.1-2.4-1.8-4-1.9-1.9-.1-1.9 3 0 3.1 1.4 0 2.5 1 2.5 2.5 0 7.3 0 14.6 0 21.9 0 2 2.9 2 2.9 0 0-7.3 0-14.6 0-21.9 0 0 0-.1 0-.1.2-3.3 4.9-3.3 5.1 0 0 7.3 0 14.6 0 21.9 0 2 2.9 2 2.9 0 0-7.3 0-14.6 0-21.9.2-3.3 4.9-3.3 5.1 0 0 3 0 5.9 0 8.9 0 .1 0 .3 0 .4 0 2.7 0 5.4 0 8-1.1 1.3-2.3 2.5-3.6 3.5-1.4 1.3.6 3.4 2 2.2.7-.7 1.5-1.4 2.2-2.1.9 2.1 2.4 3.9 4 5.2 1.8 1.2 3.2-1.5 1.7-2.7zm-1.1-17.2c.8 3.4-1.5 5.8-2.2 7.1 0-1.4 0-2.9 0-4.3.2-1.5 1.1-2.4 2.2-2.8z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/264e.svg b/build/js/jsxc/lib/emojione/assets/svg/264e.svg
index f638efc..a7c8e0a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/264e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/264e.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#699635" cx="32" cy="32" r="30"/><g fill="#fff" stroke="#fff" stroke-miterlimit="10"><path d="m47.566 43.46c-10.377 0-20.756 0-31.13 0-1.912 0-1.912 3.03 0 3.03 10.377 0 20.756 0 31.13 0 1.913 0 1.913-3.03 0-3.03z"/><path d="m16.414 39.1c3.996 0 7.992 0 11.988 0 .797 0 1.461-.677 1.461-1.493 0-.018 0-.037 0-.053 0-.485-.27-1.075-.723-1.29-8.542-4.03-6.738-18.753 2.86-18.753 4.273 0 7.01 3.526 8.08 7.246 1.328 4.606-1.355 9.259-5.273 11.329-.449.239-.723.785-.723 1.29 0 .06 0 .118 0 .178 0 .813.664 1.49 1.461 1.49 4.01 0 8.03 0 12.04 0 1.885 0 1.885-2.983 0-2.983-2.738 0-5.475 0-8.213 0 1.156-1.229 2.344-2.704 2.539-3.061 1.189-2.186 1.631-5.24 1.213-7.695-1.039-6.109-5.01-10.824-11.125-10.824-5.551 0-9.949 4.563-11.367 9.482-.715 2.475-.453 5.634.547 7.982.561 1.318 1.176 2.655 2.164 3.71.049.05.215.227.445.46-2.459 0-4.918 0-7.375 0-1.885.001-1.885 2.985 0 2.985z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#699635"/><g fill="#fff" stroke="#fff" stroke-miterlimit="10"><path d="m47.6 43.5c-10.4 0-20.8 0-31.1 0-1.9 0-1.9 3 0 3 10.4 0 20.8 0 31.1 0 1.9 0 1.9-3 0-3z"/><path d="m16.4 39.1c4 0 8 0 12 0 .8 0 1.5-.7 1.5-1.5 0 0 0 0 0-.1 0-.5-.3-1.1-.7-1.3-8.5-4-6.7-18.8 2.9-18.8 4.3 0 7 3.5 8.1 7.2 1.3 4.6-1.4 9.3-5.3 11.3-.4.2-.7.8-.7 1.3 0 .1 0 .1 0 .2 0 .8.7 1.5 1.5 1.5 4 0 8 0 12 0 1.9 0 1.9-3 0-3-2.7 0-5.5 0-8.2 0 1.2-1.2 2.3-2.7 2.5-3.1 1.2-2.2 1.6-5.2 1.2-7.7-1-6.1-5-10.8-11.1-10.8-5.6 0-9.9 4.6-11.4 9.5-.7 2.5-.5 5.6.5 8 .6 1.3 1.2 2.7 2.2 3.7 0 0 .2.2.4.5-2.5 0-4.9 0-7.4 0-1.9.1-1.9 3.1 0 3.1z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/264f.svg b/build/js/jsxc/lib/emojione/assets/svg/264f.svg
index dbbd1d2..78de283 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/264f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/264f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#24bac5" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m48.675 44.676c.267-.49.269-1.066.001-1.553-.064-.135-.144-.262-.244-.375-.003 0-.003-.004-.004-.006-1.599-1.607-3.198-3.217-4.797-4.83-1.488-1.496-3.803.816-2.314 2.314.702.707 1.404 1.414 2.105 2.121-1.846-.113-3.486-.693-3.606-2.816 0-6.342 0-12.682 0-19.02 0-.165-.026-.31-.062-.446-.36-3.129-2.641-5.389-5.873-5.567-1.77-.093-3.262.716-4.311 1.951-1.047-1.135-2.52-1.854-4.278-1.951-1.762-.093-3.251.71-4.3 1.937-1.064-1.152-2.56-1.886-4.285-1.937-2.111-.055-2.106 3.214 0 3.275 1.51.04 2.601 1.23 2.654 2.707 0 .01-.002.019-.004.031.003 7.82.005 15.638.008 23.458 0 2.109 3.274 2.109 3.274 0-.001-7.791-.005-15.58-.006-23.373 0-.03.006-.054.006-.086-.001-.011-.003-.018-.003-.025.209-3.495 5.128-3.485 5.314.025 0 7.82 0 15.638 0 23.458 0 2.109 3.273 2.109 3.273 0 0-7.82 0-15.639 0-23.458.187-3.521 5.131-3.521 5.316 0 0 6.343 0 12.683 0 19.02 0 .166.025.311.063.453.371 3.129 2.632 5.369 5.869 5.561.296.018.595.02.892.027-.684.701-1.366 1.404-2.048 2.107-1.473 1.514.842 3.826 2.314 2.313 1.599-1.645 3.198-3.289 4.797-4.938.004-.004.006-.008.009-.012.099-.109.177-.236.24-.365z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#24bac5" cx="32" cy="32" r="30"/><path fill="#fff" d="m49.128 42.91c-.076-.162-.163-.303-.266-.43l-1.283-1.302c-1.197-1.205-2.396-2.41-3.594-3.621-.411-.413-.911-.632-1.446-.632-.854 0-1.693.582-2.041 1.416-.325.78-.151 1.617.464 2.237l1.027 1.034c-1.096-.33-1.612-.997-1.674-2.082v-19.024c0-.243-.044-.442-.064-.505-.393-3.406-2.941-5.821-6.344-6.008-1.623-.091-3.157.529-4.353 1.729-1.133-1.042-2.586-1.637-4.236-1.729-1.625-.096-3.146.524-4.341 1.715-1.156-1.063-2.655-1.668-4.322-1.717-1.313 0-2.015 1.035-2.03 2.058-.016 1.071.689 2.178 2.069 2.219 1.21.031 2.121.967 2.163 2.238l.008 23.459c0 2.735 4.274 2.733 4.274 0l-.004-23.454c.089-1.482 1.147-2.146 2.157-2.146 1.018 0 2.079.67 2.158 2.141v23.459c0 2.734 4.273 2.734 4.273 0l-.001-23.433c.079-1.497 1.142-2.167 2.159-2.167s2.08.67 2.158 2.141v19.025c0 .188.025.373.066.512.399 3.368 2.79 5.695 6.117 5.983l-1.267 1.305c-.609.626-.776 1.466-.446 2.248.349.828 1.183 1.405 2.026 1.405.539 0 1.041-.224 1.451-.646l4.797-4.936.021-.03.002.001c.12-.134.226-.296.305-.46.351-.642.351-1.401.017-2.003"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2650.svg b/build/js/jsxc/lib/emojione/assets/svg/2650.svg
index db00278..0e7fcde 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2650.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2650.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m47.998 17.439c-.001-.025-.004-.051-.007-.072-.045-.726-.636-1.313-1.359-1.359-.024-.002-.048-.004-.072-.006-.005 0-.009-.002-.015-.002-4.848 0-9.695 0-14.543 0-1.877 0-1.877 2.907 0 2.907 3.677 0 7.355 0 11.03 0-6.103 6.103-12.204 12.204-18.306 18.307-2.081-2.081-4.163-4.163-6.243-6.244-1.328-1.327-3.385.729-2.057 2.057 2.081 2.083 4.162 4.162 6.243 6.244-2.081 2.08-4.162 4.162-6.243 6.242-.006.008-.008.01-.012.016-.013.014-.023.027-.036.043-.449.49-.464 1.07-.229 1.539.177.473.585.848 1.223.879.022.002.044.006.066.006.006 0 .01 0 .015 0 .011 0 .019 0 .029 0 .096 0 .193-.01.291-.031.012-.002.021-.006.033-.006.068-.02.138-.039.205-.066.068-.027.131-.061.189-.098.011-.008.022-.014.033-.021.081-.053.156-.111.221-.18.009-.01.019-.012.027-.023 2.08-2.08 4.162-4.162 6.243-6.244 2.081 2.082 4.163 4.164 6.243 6.244 1.328 1.328 3.385-.729 2.057-2.057-2.081-2.08-4.162-4.162-6.243-6.242 6.102-6.103 12.204-12.204 18.305-18.306 0 3.676 0 7.355 0 11.03 0 1.877 2.909 1.877 2.909 0 0-4.85 0-9.698 0-14.547v-.013z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#428bc1"/><path d="m48 17.4c0 0 0 0 0 0-.1-.8-.6-1.4-1.4-1.4 0 0 0 0-.1 0-4.8 0-9.7 0-14.5 0-1.9 0-1.9 2.9 0 2.9 3.7 0 7.4 0 11 0-6.1 6.1-12.2 12.2-18.3 18.3-2.1-2.1-4.2-4.2-6.2-6.2-1.3-1.3-3.4.7-2.1 2.1 2.1 2.1 4.2 4.2 6.2 6.2-2.1 2.1-4.2 4.2-6.2 6.2-.4.5-.5 1.1-.2 1.5.2.5.6.8 1.2.9 0 0 0 0 .1 0 .1 0 .2 0 .3 0 .1 0 .1 0 .2-.1.1 0 .1-.1.2-.1.1-.1.2-.1.2-.2 2.1-2.1 4.2-4.2 6.2-6.2 2.1 2.1 4.2 4.2 6.2 6.2 1.3 1.3 3.4-.7 2.1-2.1-2.1-2.1-4.2-4.2-6.2-6.2 6.2-6 12.3-12.1 18.4-18.2 0 3.7 0 7.4 0 11 0 1.9 2.9 1.9 2.9 0 0-4.9 0-9.7 0-14.6z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2651.svg b/build/js/jsxc/lib/emojione/assets/svg/2651.svg
index ceed87c..d632096 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2651.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2651.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#44618b" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m47.998 37.4c.01-.164-.012-.309-.045-.443-.41-3.678-3.248-6.143-6.977-6.336-2.199-.113-4.098.922-5.367 2.502-1.33-4.356-2.611-8.729-4.04-13.05-1.514-4.574-7.172-5.098-9.938-2.158-1.029-1.152-2.54-1.867-4.223-1.912-1.879-.051-1.875 2.857 0 2.908 1.422.037 2.637 1.027 2.694 2.494 0 .006-.002.014-.002.023.002 7.097.002 14.195.004 21.295.002 1.875 2.916 1.875 2.914 0-.002-7.05-.004-14.11-.006-21.16.641-3.311 4.145-3.346 5.523-1.191.504.791.727 2.072.998 2.99.643 2.178 1.316 4.347 1.988 6.515.789 2.543 1.587 5.083 2.396 7.618-.051.275-.121.672-.146.789-.197.881-.479 1.738-.81 2.576-.895 2.254-2.629 4.158-5.176 4.232-1.873.057-1.879 2.967 0 2.91 3.934-.119 6.503-2.84 7.906-6.166 1.365 1.391 3.346 2.242 5.285 2.342 3.709.189 6.563-2.881 6.975-6.326.036-.138.058-.285.048-.451zm-11.11.1c.002-.07.002-.141-.01-.215-.143-4.899 7.932-4.85 8.209.115-.279 4.989-7.816 5.02-8.199.1z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#44618b"/><path d="m48 37.4c0-.2 0-.3 0-.4-.4-3.7-3.2-6.1-7-6.3-2.2-.1-4.1.9-5.4 2.5-1.3-4.4-2.6-8.7-4-13-1.5-4.6-7.2-5.1-9.9-2.2-1-1.2-2.5-1.9-4.2-1.9-1.9-.1-1.9 2.9 0 2.9 1.4 0 2.6 1 2.7 2.5 0 7.1 0 14.2 0 21.3 0 1.9 2.9 1.9 2.9 0 0-7.1 0-14.1 0-21.2.6-3.3 4.1-3.3 5.5-1.2.5.8.7 2.1 1 3 .6 2.2 1.3 4.3 2 6.5.8 2.5 1.6 5.1 2.4 7.6-.1.3-.1.7-.1.8-.2.9-.5 1.7-.8 2.6-.9 2.3-2.6 4.2-5.2 4.2-1.9.1-1.9 3 0 2.9 3.9-.1 6.5-2.8 7.9-6.2 1.4 1.4 3.3 2.2 5.3 2.3 3.7.2 6.6-2.9 7-6.3-.1-.1-.1-.2-.1-.4zm-11.1.1c0-.1 0-.1 0-.2-.1-4.9 7.9-4.8 8.2.1-.3 5-7.8 5-8.2.1z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2652.svg b/build/js/jsxc/lib/emojione/assets/svg/2652.svg
index 8ca2bff..7b262f8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2652.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2652.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#785aa0" cx="32" cy="32" r="30"/><g fill="#fff" stroke="#fff" stroke-miterlimit="10"><path d="m48.797 18.24c-3.172 2.391-6.344 4.783-9.518 7.174 0-1.951 0-3.902 0-5.855 0-1.072-1.275-2.02-2.203-1.318-3.172 2.391-6.344 4.783-9.516 7.174 0-1.951 0-3.902 0-5.855 0-1.072-1.275-2.02-2.203-1.318-3.906 2.945-7.813 5.891-11.719 8.836-1.516 1.142-.057 3.794 1.479 2.638 3.172-2.39 6.342-4.783 9.514-7.173 0 1.951 0 3.902 0 5.855 0 1.07 1.279 2.02 2.205 1.318 3.172-2.39 6.342-4.783 9.514-7.173 0 1.951 0 3.902 0 5.855 0 1.07 1.279 2.02 2.205 1.318 3.172-2.39 6.342-4.783 9.516-7.173 0 1.951 0 3.902 0 5.855 0 1.969 2.93 1.969 2.93 0 0-2.945 0-5.892 0-8.837-.001-1.075-1.278-2.02-2.204-1.321z"/><path d="m48.797 34.24c-3.172 2.391-6.344 4.783-9.518 7.174 0-1.951 0-3.902 0-5.855 0-1.072-1.275-2.02-2.203-1.318-3.172 2.391-6.344 4.783-9.516 7.174 0-1.951 0-3.902 0-5.855 0-1.072-1.275-2.02-2.203-1.318-3.906 2.945-7.813 5.891-11.719 8.836-1.516 1.143-.057 3.795 1.479 2.639 3.172-2.391 6.342-4.783 9.514-7.174 0 1.951 0 3.902 0 5.855 0 1.07 1.279 2.02 2.205 1.318 3.172-2.391 6.342-4.783 9.514-7.174 0 1.951 0 3.902 0 5.855 0 1.07 1.279 2.02 2.205 1.318 3.172-2.391 6.342-4.783 9.516-7.174 0 1.951 0 3.902 0 5.855 0 1.969 2.93 1.969 2.93 0 0-2.945 0-5.893 0-8.838-.001-1.072-1.278-2.02-2.204-1.318z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#785aa0"/><g fill="#fff" stroke="#fff" stroke-miterlimit="10"><path d="m48.8 18.2c-3.2 2.4-6.3 4.8-9.5 7.2 0-2 0-3.9 0-5.9 0-1.1-1.3-2-2.2-1.3-3.2 2.4-6.3 4.8-9.5 7.2 0-2 0-3.9 0-5.9 0-1.1-1.3-2-2.2-1.3-3.9 2.9-7.8 5.9-11.7 8.8-1.5 1.1-.1 3.8 1.5 2.6 3.2-2.4 6.3-4.8 9.5-7.2 0 2 0 3.9 0 5.9 0 1.1 1.3 2 2.2 1.3 3.2-2.4 6.3-4.8 9.5-7.2 0 2 0 3.9 0 5.9 0 1.1 1.3 2 2.2 1.3 3.2-2.4 6.3-4.8 9.5-7.2 0 2 0 3.9 0 5.9 0 2 2.9 2 2.9 0 0-2.9 0-5.9 0-8.8 0-1-1.3-2-2.2-1.3z"/><path d="m48.8 34.2c-3.2 2.4-6.3 4.8-9.5 7.2 0-2 0-3.9 0-5.9 0-1.1-1.3-2-2.2-1.3-3.2 2.4-6.3 4.8-9.5 7.2 0-2 0-3.9 0-5.9 0-1.1-1.3-2-2.2-1.3-3.9 2.9-7.8 5.9-11.7 8.8-1.5 1.1-.1 3.8 1.5 2.6 3.2-2.4 6.3-4.8 9.5-7.2 0 2 0 3.9 0 5.9 0 1.1 1.3 2 2.2 1.3 3.2-2.4 6.3-4.8 9.5-7.2 0 2 0 3.9 0 5.9 0 1.1 1.3 2 2.2 1.3 3.2-2.4 6.3-4.8 9.5-7.2 0 2 0 3.9 0 5.9 0 2 2.9 2 2.9 0 0-2.9 0-5.9 0-8.8 0-1-1.3-2-2.2-1.3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2653.svg b/build/js/jsxc/lib/emojione/assets/svg/2653.svg
index 4163dd4..d50acfc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2653.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2653.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#c28fef" cx="32" cy="32" r="30"/><path fill="#fff" stroke="#fff" stroke-miterlimit="10" d="m45.28 45.854c-4.226-3.199-6.53-7.688-6.954-12.305 2.057 0 4.111 0 6.166 0 2.02 0 2.02-3.076 0-3.076-2.055 0-4.109 0-6.166 0 .424-4.617 2.729-9.105 6.954-12.304 1.574-1.191.021-3.865-1.576-2.656-5.2 3.938-8.01 9.387-8.449 14.96-2.073 0-4.146 0-6.218 0-.446-5.693-3.362-11.251-8.764-15.177-1.624-1.18-3.18 1.49-1.576 2.656 4.419 3.211 6.827 7.801 7.26 12.521-2.148 0-4.294 0-6.441 0-2.02 0-2.02 3.076 0 3.076 2.148 0 4.295 0 6.443 0-.432 4.711-2.828 9.289-7.231 12.502-1.601 1.166-.045 3.838 1.576 2.654 5.383-3.924 8.287-9.475 8.731-15.16 2.072 0 4.146 0 6.219 0 .438 5.576 3.25 11.02 8.45 14.959 1.597 1.209 3.151-1.465 1.576-2.654z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#c28fef"/><path d="m45.3 45.9c-4.2-3.2-6.5-7.7-7-12.3 2.1 0 4.1 0 6.2 0 2 0 2-3.1 0-3.1-2.1 0-4.1 0-6.2 0 .4-4.6 2.7-9.1 7-12.3 1.6-1.2 0-3.9-1.6-2.7-5.2 3.9-8 9.4-8.4 15-2.1 0-4.1 0-6.2 0-.4-5.7-3.4-11.3-8.8-15.2-1.6-1.2-3.2 1.5-1.6 2.7 4.4 3.2 6.8 7.8 7.3 12.5-2.1 0-4.3 0-6.4 0-2 0-2 3.1 0 3.1 2.1 0 4.3 0 6.4 0-.4 4.7-2.8 9.3-7.2 12.5-1.6 1.2 0 3.8 1.6 2.7 5.4-3.9 8.3-9.5 8.7-15.2 2.1 0 4.1 0 6.2 0 .4 5.6 3.2 11 8.5 15 1.5 1.1 3.1-1.6 1.5-2.7z" fill="#fff" stroke="#fff" stroke-miterlimit="10"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2660.svg b/build/js/jsxc/lib/emojione/assets/svg/2660.svg
index eb5a7ad..0d9699b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2660.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2660.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="M64,33C64,17.568,32,0,32,0S0,17.568,0,33c0,9.148,7.707,17,17,17c4.473,0,8.453-1.725,11.415-4.525L28,49
- c-0.538,3.828-3.192,7.33-7,8l-5,1v6h32v-6l-5-1c-3.808-0.67-6.462-4.17-7-8l-0.415-3.525C38.547,48.277,42.527,50,47,50
- C56.293,50,64,42.148,64,33z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 32.9c0-14.4-30-30.9-30-30.9s-30 16.5-30 30.9c0 8.6 7.2 15.9 15.9 15.9 4.2 0 7.9-1.6 10.7-4.2l-.4 3.3c-.5 3.6-3 6.9-6.6 7.5l-4.6 1v5.6h30v-5.6l-4.7-.9c-3.6-.6-6.1-3.9-6.6-7.5l-.4-3.3c2.8 2.6 6.5 4.2 10.7 4.2 8.8 0 16-7.4 16-16" fill="#4d5357"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2663.svg b/build/js/jsxc/lib/emojione/assets/svg/2663.svg
index 6c13751..2ee52dd 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2663.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2663.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m48 18c-.047 0-.092.008-.139.008.082-.66.139-1.326.139-2.01 0-8.836-7.162-16-16-16-8.836 0-16 7.164-16 16 0 .682.057 1.348.139 2.01-.047 0-.092-.008-.139-.008-8.837 0-16 7.164-16 16s7.163 16 16 16c5.128 0 9.681-2.422 12.609-6.174l-.609 5.174c-.537 3.828-3.191 7.33-7 8l-5 1v6h32v-6l-5-1c-3.807-.67-6.461-4.17-7-8l-.607-5.174c2.927 3.752 7.48 6.174 12.607 6.174 8.838 0 16-7.164 16-16s-7.162-16-16-16"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47 18.9c0 0-.1 0-.1 0 .1-.6.1-1.2.1-1.9 0-8.3-6.7-15-15-15s-15 6.7-15 15c0 .6.1 1.3.1 1.9 0 0-.1 0-.1 0-8.3 0-15 6.7-15 15s6.7 15 15 15c4.8 0 9.1-2.3 11.8-5.8l-.6 4.9c-.5 3.6-3 6.9-6.6 7.5l-4.6.9v5.6h30v-5.6l-4.7-.9c-3.6-.6-6.1-3.9-6.6-7.5l-.6-4.9c2.7 3.5 7 5.8 11.8 5.8 8.3 0 15-6.7 15-15s-6.6-15-14.9-15" fill="#4d5357"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2665.svg b/build/js/jsxc/lib/emojione/assets/svg/2665.svg
index 3e1c98e..6659eb1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2665.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2665.svg
@@ -1,2 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M47,0c-6.686,0-12.283,3.838-15,9.396C29.282,3.838,23.686,0,17,0C7.707,0,0,7.852,0,17
- c0,15.434,32,47,32,47s32-31.566,32-47C64,7.852,56.293,0,47,0z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M46.1,2C39.8,2,34.5,5.6,32,10.8C29.5,5.6,24.2,2,17.9,2C9.2,2,2,9.4,2,17.9C2,32.4,32,62,32,62
+ s30-29.6,30-44.1C62,9.4,54.8,2,46.1,2z" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2666.svg b/build/js/jsxc/lib/emojione/assets/svg/2666.svg
index 57538f8..654b2f4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2666.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2666.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-13.255 32)" fill="#ed4c5c" d="m9.373 9.373h45.26v45.26h-45.26z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7071-.7071.7071.7071-13.2551 32.0001)" fill="#ff5a79" d="m10.8 10.8h42.4v42.4h-42.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2668.svg b/build/js/jsxc/lib/emojione/assets/svg/2668.svg
index 9c6098d..e65cbcb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2668.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2668.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m51.38 33.33c3.331 2.31 5.335 5.22 5.335 8.392 0 7.48-11.07 13.544-24.716 13.544s-24.715-6.06-24.715-13.544c0-3.172 2-6.082 5.334-8.39-6.488 2.982-10.619 7.429-10.619 12.402 0 8.983 13.431 16.264 30 16.264s30-7.281 30-16.264c0-4.973-4.131-9.42-10.619-12.404"/><path d="m20.317 2c0 0-1.813 6.07-1.813 13.333 0 5.953 4.582 8.929 4.582 13.899 0 9.851-6.34 16.25-6.34 16.25s2.321-5.09 2.321-13.75c0-3.01-4.285-9.732-4.285-14.02 0-9.403 5.535-15.713 5.535-15.713"/><path d="m33.384 2c0 0-1.816 6.07-1.816 13.333 0 5.953 4.585 8.929 4.585 13.899 0 9.851-6.34 16.25-6.34 16.25s2.321-5.09 2.321-13.75c0-3.01-4.285-9.732-4.285-14.02 0-9.403 5.535-15.713 5.535-15.713"/><path d="m46.45 2c0 0-1.816 6.07-1.816 13.333 0 5.953 4.585 8.929 4.585 13.899 0 9.851-6.34 16.25-6.34 16.25s2.321-5.09 2.321-13.75c0-3.01-4.285-9.732-4.285-14.02 0-9.403 5.535-15.713 5.535-15.713"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m51.4 33.3c3.3 2.3 5.3 5.2 5.3 8.4 0 7.5-11.1 13.5-24.7 13.5s-24.7-6-24.7-13.5c0-3.2 2-6.1 5.3-8.4-6.5 3-10.6 7.5-10.6 12.4 0 9 13.4 16.3 30 16.3s30-7.3 30-16.3c0-4.9-4.1-9.4-10.6-12.4"/><path d="m20.3 2c0 0-1.8 6.1-1.8 13.3 0 6 4.6 8.9 4.6 13.9 0 9.9-6.3 16.2-6.3 16.2s2.3-5.1 2.3-13.8c0-3-4.3-9.7-4.3-14 0-9.3 5.5-15.6 5.5-15.6"/><path d="m33.4 2c0 0-1.8 6.1-1.8 13.3 0 6 4.6 8.9 4.6 13.9 0 9.9-6.3 16.2-6.3 16.2s2.3-5.1 2.3-13.8c0-3-4.3-9.7-4.3-14-.1-9.3 5.5-15.6 5.5-15.6"/><path d="m46.5 2c0 0-1.8 6.1-1.8 13.3 0 6 4.6 8.9 4.6 13.9 0 9.9-6.3 16.2-6.3 16.2s2.3-5.1 2.3-13.8c0-3-4.3-9.7-4.3-14-.1-9.3 5.5-15.6 5.5-15.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/267b.svg b/build/js/jsxc/lib/emojione/assets/svg/267b.svg
index e8ed728..7d80b6f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/267b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/267b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#68963b" d="m16.187 58.1h14.163v-16.447h-20.08c0 0-.683 5.748-.729 7.674-.212 8.662 6.649 8.773 6.649 8.773"/><path fill="#83bf4f" d="m19.504 34.754l6.501 3.754-8.567-15.188-17.438.176 6.504 3.752-5.22 9.04c-.528.916-1.086 2.398-.313 3.738l8.861 15.346c1.588 2.75 4.352 2.734 6.354 2.734 0 0-9.09-1.867-3.278-11.93l6.596-11.421"/><path fill="#68963b" d="m62.47 32.678l-7.083-12.266-14.242 8.223 10.04 17.393c0 0 5.319-2.281 7.01-3.203 7.607-4.149 4.274-10.147 4.274-10.147"/><path fill="#83bf4f" d="m40.592 41.479v-7.504l-8.869 15.01 8.871 15.01v-7.508h10.435c1.059 0 2.622-.26 3.395-1.598l8.859-15.346c1.588-2.752.192-5.137-.809-6.871 0 0 2.926 8.803-8.691 8.803l-13.19-.001"/><path fill="#68963b" d="m18.02 4.137l-7.083 12.266 14.243 8.223 10.04-17.394c0 0-4.637-3.465-6.279-4.467-7.398-4.513-10.925 1.372-10.925 1.372"/><path fill="#83bf4f" d="m36.585 18.686l-6.5 3.754 17.438.172 8.566-15.189-6.501 3.756-5.217-9.04c-.53-.917-1.537-2.142-3.081-2.142h-17.721c-3.177 0-4.545 2.402-5.545 4.137 0 0 6.159-6.936 11.97 3.125l6.591 11.424"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m16.2 58.1h14.2v-16.4h-20.1c0 0-.7 5.7-.7 7.7-.3 8.6 6.6 8.7 6.6 8.7" fill="#68963b"/><path d="m19.5 34.8l6.5 3.8-8.6-15.2-17.4.1 6.5 3.8-5.2 9c-.5.9-1.1 2.4-.3 3.7l8.9 15.3c1.6 2.8 4.4 2.7 6.4 2.7 0 0-9.1-1.9-3.3-11.9l6.5-11.3" fill="#83bf4f"/><path d="m62.5 32.7l-7.1-12.3-14.2 8.2 10 17.4c0 0 5.3-2.3 7-3.2 7.6-4.1 4.3-10.1 4.3-10.1" fill="#68963b"/><path d="m40.6 41.5v-7.5l-8.9 15 8.9 15v-7.5h10.4c1.1 0 2.6-.3 3.4-1.6l8.9-15.3c1.6-2.8.2-5.1-.8-6.9 0 0 2.9 8.8-8.7 8.8h-13.2" fill="#83bf4f"/><path d="M18,4.1l-7.1,12.3l14.2,8.2l10-17.4c0,0-4.6-3.5-6.3-4.5C21.6-1.7,18,4.1,18,4.1z" fill="#68963b"/><path d="m36.6 18.7l-6.5 3.8 17.4.2 8.6-15.2-6.5 3.8-5.2-9c-.6-1.1-1.6-2.3-3.1-2.3h-17.7c-3.2 0-4.6 2.4-5.6 4.1 0 0 6.2-6.9 12 3.1l6.6 11.5" fill="#83bf4f"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/267f.svg b/build/js/jsxc/lib/emojione/assets/svg/267f.svg
index 5d40f67..3ee86eb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/267f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/267f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#428bc1" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m48.657 42.998l-2.477 2.656-5.94-9.181h-7.249v-4.119h7.983v-4.114h-7.983v-8.24h-3.991v20.591h9.11l7.37 11.409 5.52-5.6z"/><circle cx="31" cy="13" r="4"/><path d="m29.375 48.882c-4.549 0-8.248-3.695-8.248-8.235 0-3.043 1.66-5.703 4.123-7.129v-4.518c-4.8 1.699-8.25 6.277-8.25 11.646 0 6.813 5.552 12.354 12.375 12.354 3.885 0 7.355-1.8 9.625-4.604l-2.459-3.682c-1.422 2.487-4.1 4.168-7.166 4.168"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><g fill="#fff"><path d="m48.7 43l-2.5 2.7-6-9.2h-7.2v-4.1h8v-4.2h-8v-8.2h-4v20.6h9.1l7.4 11.4 5.5-5.6z"/><circle cx="31" cy="13" r="4"/><path d="m29.4 48.9c-4.5 0-8.2-3.7-8.2-8.2 0-3 1.7-5.7 4.1-7.1v-4.6c-4.8 1.7-8.2 6.3-8.2 11.6-.1 6.9 5.5 12.4 12.3 12.4 3.9 0 7.4-1.8 9.6-4.6l-2.5-3.7c-1.4 2.5-4.1 4.2-7.1 4.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2692.svg b/build/js/jsxc/lib/emojione/assets/svg/2692.svg
index 4cd1e12..10516b7 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2692.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2692.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#89664c" d="m5.28 10.408c-.861.86-.86 2.268 0 3.128l42.976 42.964c.864.859 2.272.857 3.13 0l3.132-3.13c.863-.862.862-2.271 0-3.13l-42.978-42.962c-.859-.86-2.268-.86-3.13-.002l-3.13 3.132"/><g fill="#3e4347"><path d="m27.387 11.397c.875.872.874 2.299-.001 3.169l-14.818 14.813c-.872.869-2.296.871-3.167 0l-6.748-6.743c-.87-.873-.87-2.299 0-3.17l14.817-14.813c.875-.871 2.301-.871 3.172.002l6.745 6.742"/><path d="m41.44 30.982l-5.39-5.231 5.36-5.199 5.396 5.229z"/></g><g fill="#94989b"><path d="m57.25 19.666l-9.526-9.233c-.35-.339-.914-.339-1.264 0l-3.543 3.433-.044.041-3.543 3.434c-.35.339-.349.888 0 1.224l9.528 9.237c.349.336.914.336 1.262-.002l7.13-6.912c.35-.338.35-.883 0-1.222"/><path d="m41.35 4.254c-.35-.338-.914-.338-1.264 0l-7.13 6.912c-.35.335-.35.884 0 1.223 0 0 1.989 1.905 2.041 1.946l8.362-8.104c-.044-.05-2.01-1.977-2.01-1.977"/></g><g fill="#3e4347"><path d="m42.915 13.865l3.543-3.433c0 0-1.978 1.129-2.335-1.836-.143-1.193-.413-1.94-.767-2.365l-8.362 8.104c.439.344 1.208.606 2.44.743 3.062.348 1.894 2.262 1.894 2.262l3.543-3.434.044-.041"/><path d="m57.98 41.09c9.651-9.427-1.109-19.833-1.109-19.833l-6.324 6.134c0 0 7.936 5.894 5.74 13.348-.255.865-.694 1.636-.469 1.855.306.296 1.48-.837 2.162-1.504"/></g><path fill="#f2b200" d="m38.744 28.364l-3.492-3.38c0 0-2.813 1.748-5.904 4.746-3.415 3.307-5.328 7.679-9.833 12.04-6.774 6.565-10.07 8.05-12.802 10.03-1.03.745-.933.863.01 1.778l2.936 2.848 29.09-28.07"/><path fill="#ffce31" d="m38.744 28.364l3.489 3.386c0 0-1.804 2.726-4.896 5.723-3.41 3.308-7.923 5.164-12.427 9.527-6.775 6.568-8.434 9.643-10.477 12.289-.771.996-.894.902-1.837-.01l-2.937-2.846 29.09-28.07"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m5.3 10.4c-.9.9-.9 2.3 0 3.1l43 43c.9.9 2.3.9 3.1 0l3.1-3.1c.9-.9.9-2.3 0-3.1l-43-43c-.9-.9-2.3-.9-3.1 0l-3.1 3.1" fill="#89664c"/><g fill="#3e4347"><path d="m27.4 11.4c.9.9.9 2.3 0 3.2l-14.8 14.8c-.9.9-2.3.9-3.2 0l-6.7-6.7c-.9-.9-.9-2.3 0-3.2l14.8-14.8c.9-.9 2.3-.9 3.2 0l6.7 6.7"/><path d="m41.4 31l-5.4-5.2 5.4-5.2 5.4 5.2z"/></g><g fill="#94989b"><path d="m57.2 19.7l-9.5-9.2c-.3-.3-.9-.3-1.3 0l-3.5 3.4-3.5 3.4c-.3.3-.3.9 0 1.2l9.5 9.2c.3.3.9.3 1.3 0l7.1-6.9c.3-.3.3-.8-.1-1.1"/><path d="m41.3 4.3c-.3-.3-.9-.3-1.3 0l-7 6.9c-.3.3-.3.9 0 1.2 0 0 2 1.9 2 1.9l8.4-8.1c-.1 0-2.1-1.9-2.1-1.9"/></g><g fill="#3e4347"><path d="m42.9 13.9l3.5-3.4c0 0-2 1.1-2.3-1.8-.1-1.2-.4-1.9-.8-2.4l-8.3 8c.4.3 1.2.6 2.4.7 3.1.3 1.9 2.3 1.9 2.3l3.6-3.4"/><path d="m58 41.1c9.7-9.4-1.1-19.8-1.1-19.8l-6.3 6.1c0 0 7.9 5.9 5.7 13.3-.3.9-.7 1.6-.5 1.9.3.3 1.5-.8 2.2-1.5"/></g><path d="m38.7 28.4l-3.4-3.4c0 0-2.8 1.7-5.9 4.7-3.4 3.3-5.3 7.7-9.8 12-6.8 6.6-10.1 8.1-12.8 10-1 .7-.9.9 0 1.8l2.9 2.8 29-27.9" fill="#f2b200"/><path d="m38.7 28.4l3.5 3.4c0 0-1.8 2.7-4.9 5.7-3.4 3.3-7.9 5.2-12.4 9.5-6.8 6.6-8.4 9.6-10.5 12.3-.8 1-.9.9-1.8 0l-2.9-2.8 29-28.1" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2693.svg b/build/js/jsxc/lib/emojione/assets/svg/2693.svg
index 52fbbdf..b5f5418 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2693.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2693.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m3.753 27c0 0-3.723 15.193-.317 17.774 2.177 1.649 3.413-6.275 3.413-6.275s4.19 2.131 5.061-.133c.869-2.263-3.285-2.366-8.157-11.366"/><path d="m60.25 27c0 0 3.723 15.193.317 17.774-2.178 1.649-3.413-6.275-3.413-6.275s-4.19 2.131-5.062-.133c-.868-2.263 3.286-2.366 8.158-11.366"/><path d="M59,35c-23.087,28.109-24.08,6.19-24.142,0.37C34.802,30.026,34.403,14,34.403,14h-4.805
- c0,0-0.4,16.026-0.457,21.37C29.079,41.19,28.087,63.109,5,35c0,0-0.723,9.142,15.989,20.26C26.647,59.026,32,62,32,62
- s5.354-2.974,11.012-6.74C59.724,44.142,59,35,59,35z"/></g><path opacity=".5" fill="#62727a" d="m34.548 20c-.08-3.425-.145-6-.145-6h-4.805c0 0-.064 2.575-.145 6h5.095"/><path fill="#b2c1c0" d="m32 2c-3.866 0-7 3.134-7 7s3.134 7 7 7 7-3.134 7-7-3.134-7-7-7m0 11c-2.209 0-4-1.791-4-4s1.791-4 4-4 4 1.791 4 4-1.791 4-4 4"/><g fill="#62727a"><path opacity=".5" d="m27.04 12.508c.189-.157 2.02 2.06 4.959 1.995 2.938.065 4.77-2.151 4.959-1.995.336.07-1.403 3.01-4.959 2.992-3.555.019-5.295-2.922-4.959-2.992"/><path opacity=".5" d="m41.3 50.01c-3.323 0-7.31-2.537-7.438-14.624-.031-2.984-.171-9.364-.288-14.381h-1.57v39.853c1.44-.817 5.873-3.373 10.458-6.425 9.713-6.463 13.361-12.222 14.729-15.744-6.684 7.609-11.9 11.32-15.891 11.321"/></g><path fill="#b2c1c0" d="m41 21.958c-5.916 1.39-12.08 1.39-18 0 0-1.305 0-2.61 0-3.915 5.916-1.39 12.08-1.39 18 0 0 1.305 0 2.609 0 3.915"/><path opacity=".5" fill="#62727a" d="m40 21.06c-.034-.282-3.607-.049-8-.057-4.392.008-7.966-.225-7.999.057-.038.266 3.535.95 7.999.943 4.465.007 8.04-.677 8-.943"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b2c1c0"><path d="m3.8 27c0 0-3.7 15.2-.3 17.8 2.2 1.6 3.4-6.3 3.4-6.3s4.2 2.1 5.1-.1c.8-2.3-3.4-2.4-8.2-11.4"/><path d="m60.2 27c0 0 3.7 15.2.3 17.8-2.2 1.6-3.4-6.3-3.4-6.3s-4.2 2.1-5.1-.1c-.8-2.3 3.4-2.4 8.2-11.4"/><path d="m59 35c-23.1 28.1-24.1 6.2-24.1.4-.1-5.4-.5-21.4-.5-21.4h-4.8c0 0-.4 16-.5 21.4 0 5.8-1 27.7-24.1-.4 0 0-.7 9.1 16 20.3 5.6 3.7 11 6.7 11 6.7s5.4-3 11-6.7c16.7-11.2 16-20.3 16-20.3"/></g><path d="m34.5 20c-.1-3.4-.1-6-.1-6h-4.8c0 0-.1 2.6-.1 6h5" opacity=".5" fill="#62727a"/><path d="m32 2c-3.9 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7m0 11c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4" fill="#b2c1c0"/><g fill="#62727a"><path d="m27 12.5c.2-.2 2 2.1 5 2 2.9.1 4.8-2.2 5-2 .3.1-1.4 3-5 3-3.6 0-5.3-2.9-5-3" opacity=".5"/><path d="m41.3 50c-3.3 0-7.3-2.5-7.4-14.6 0-3-.2-9.4-.3-14.4h-1.6v39.9c1.4-.8 5.9-3.4 10.5-6.4 9.7-6.5 13.4-12.2 14.7-15.7-6.7 7.5-11.9 11.2-15.9 11.2" opacity=".5"/></g><path d="m41 22c-5.9 1.4-12.1 1.4-18 0 0-1.3 0-2.6 0-3.9 5.9-1.4 12.1-1.4 18 0 0 1.2 0 2.6 0 3.9" fill="#b2c1c0"/><path d="m40 21.1c0-.3-3.6 0-8-.1-4.4 0-8-.2-8 .1 0 .3 3.5 1 8 .9 4.5 0 8-.7 8-.9" opacity=".5" fill="#62727a"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2694.svg b/build/js/jsxc/lib/emojione/assets/svg/2694.svg
index 1dcdf5c..368fdc0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2694.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2694.svg
@@ -1 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#96a7a8" d="m48.01 23.961c7.484-6.249 9.669-12.946 10.272-16.977 2.328-1.619 3.682-3 3.682-3s1.277 10.903-10.45 20.696c-15.328 12.798-30.553 20.836-30.553 20.836l-1.311-1.933c4.748-2.691 16.52-9.734 28.36-19.621"/><path fill="#b8c2c4" d="m19.646 43.582l-1.227-1.805c24.395-20.37 24.908-29.735 24.908-29.735 6.252.083 11.607-2.733 14.95-5.058-.604 4.03-2.788 10.729-10.272 16.977-11.84 9.887-23.612 16.93-28.359 19.621"/><path fill="#c19a61" d="m12.431 45.945c-.921.833-.787 2.301.293 3.281 1.081.981 2.7 1.102 3.621.27.918-.833.785-2.303-.295-3.283-1.082-.978-2.703-1.1-3.619-.268"/><path fill="#dbb471" d="m12.901 45.973c-.797.721-.682 1.992.255 2.842.938.853 2.343.957 3.14.235.796-.723.681-1.995-.255-2.846-.939-.849-2.345-.954-3.14-.231"/><path fill="#c19a61" d="m10.2 47.809c-.92.832-.787 2.299.293 3.279 1.081.983 2.701 1.102 3.621.271.917-.833.785-2.302-.295-3.282-1.083-.978-2.703-1.1-3.619-.268"/><path fill="#dbb471" d="m10.671 47.834c-.798.721-.683 1.994.254 2.844.938.851 2.343.955 3.141.234.796-.722.681-1.994-.256-2.845-.938-.85-2.343-.954-3.139-.233"/><path fill="#c19a61" d="m7.969 49.672c-.92.831-.787 2.299.293 3.279 1.082.981 2.701 1.102 3.621.271.918-.833.785-2.302-.295-3.282-1.082-.979-2.702-1.1-3.619-.268"/><path fill="#dbb471" d="m8.439 49.697c-.797.721-.682 1.994.254 2.844.938.851 2.344.955 3.141.233.796-.722.682-1.993-.256-2.846-.937-.848-2.343-.952-3.139-.231"/><path fill="#c19a61" d="m5.738 51.53c-.921.833-.787 2.301.293 3.281 1.081.98 2.701 1.102 3.622.269.917-.833.785-2.3-.295-3.28-1.083-.98-2.704-1.1-3.62-.27"/><path fill="#dbb471" d="m6.21 51.56c-.798.721-.683 1.992.254 2.844.938.851 2.342.955 3.14.233.796-.722.682-1.995-.255-2.846-.94-.849-2.344-.953-3.139-.231"/><path fill="#89664c" d="m2.984 53.782c3.164-2.642 1.73-.81 3.674 1.206 5.753 5.964 15.623-2.924 8.99-8.141-3.755-2.952-1.125-6.917.838-8.558 1.248-1.041.276.806 3.767 4.946 3.538 4.196 1.929 10.818-2.682 14.666-4.779 3.992-10.605 1.473-12.837-1.174-1.513-1.792-4.188-.909-1.75-2.945"/><path fill="#dbb471" d="m11.01 58.13c1.576-.047 3.819-.465 5.578-2.199 2.115-2.09 2.882-4.743 2.339-7.283 1.355 2.86.963 5.961-1.301 8.218-1.572 1.568-3.683 1.865-5.175 1.839-1.284-.025-2.59-.303-3.823-.774.784.147 1.585.221 2.382.199"/><path fill="#b0bfc1" d="m15.995 23.961c-7.484-6.248-9.669-12.946-10.272-16.977-2.328-1.618-3.682-3-3.682-3s-1.277 10.903 10.45 20.696c15.328 12.797 30.553 20.835 30.553 20.835l1.311-1.933c-4.748-2.69-16.52-9.733-28.36-19.62"/><path fill="#c9d1d3" d="m44.35 43.582l1.227-1.805c-24.395-20.37-24.908-29.735-24.908-29.735-6.252.083-11.607-2.733-14.95-5.058.604 4.03 2.788 10.729 10.272 16.977 11.84 9.887 23.612 16.93 28.359 19.621"/><path fill="#c19a61" d="m51.569 45.945c.921.833.787 2.301-.293 3.281-1.081.981-2.7 1.102-3.621.27-.918-.833-.785-2.303.295-3.283 1.082-.978 2.703-1.1 3.619-.268"/><path fill="#dbb471" d="m51.1 45.973c.797.721.682 1.992-.255 2.842-.938.853-2.343.957-3.141.235-.795-.723-.68-1.995.256-2.846.939-.849 2.345-.954 3.14-.231"/><path fill="#c19a61" d="m53.8 47.809c.92.832.787 2.299-.293 3.279-1.081.983-2.701 1.102-3.621.271-.917-.833-.785-2.302.295-3.282 1.083-.978 2.703-1.1 3.619-.268"/><path fill="#dbb471" d="m53.33 47.834c.798.721.683 1.994-.254 2.844-.938.851-2.343.955-3.141.234-.796-.722-.681-1.994.256-2.845.938-.85 2.343-.954 3.139-.233"/><path fill="#c19a61" d="m56.03 49.672c.92.831.787 2.299-.293 3.279-1.082.981-2.701 1.102-3.621.271-.918-.833-.785-2.302.295-3.282 1.082-.979 2.702-1.1 3.619-.268"/><path fill="#dbb471" d="m55.56 49.697c.797.721.682 1.994-.254 2.844-.938.851-2.344.955-3.141.233-.796-.722-.682-1.993.256-2.846.937-.848 2.343-.952 3.139-.231"/><path fill="#c19a61" d="m58.26 51.53c.921.833.787 2.301-.293 3.281-1.081.98-2.701 1.102-3.622.269-.917-.833-.785-2.3.295-3.28 1.083-.98 2.704-1.1 3.62-.27"/><path fill="#dbb471" d="m57.79 51.56c.798.721.683 1.992-.254 2.844-.938.851-2.342.955-3.14.233-.796-.722-.682-1.995.255-2.846.94-.849 2.344-.953 3.139-.231"/><path fill="#89664c" d="m61.02 53.782c-3.164-2.642-1.73-.81-3.674 1.206-5.753 5.964-15.623-2.924-8.99-8.141 3.755-2.952 1.125-6.917-.838-8.558-1.248-1.041-.276.806-3.767 4.946-3.538 4.196-1.929 10.818 2.682 14.666 4.779 3.992 10.605 1.473 12.837-1.174 1.513-1.792 4.188-.909 1.75-2.945"/><path fill="#dbb471" d="m52.992 58.13c-1.576-.047-3.819-.465-5.578-2.199-2.115-2.09-2.882-4.743-2.339-7.283-1.355 2.86-.963 5.961 1.301 8.218 1.572 1.568 3.683 1.865 5.175 1.839 1.284-.025 2.59-.303 3.823-.774-.784.147-1.585.221-2.382.199"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M48,24c7.5-6.2,9.7-12.9,10.3-17C60.6,5.4,62,4,62,4s1.3,10.9-10.5,20.7C36.2,37.5,21,45.5,21,45.5l-1.3-1.9
+ C24.4,40.9,36.2,33.8,48,24z" fill="#96a7a8"/><path d="m19.6 43.6l-1.2-1.8c24.4-20.4 24.9-29.8 24.9-29.8 6.3.1 11.6-2.7 15-5.1-.6 4-2.8 10.7-10.3 17-11.8 9.9-23.6 17-28.4 19.7" fill="#b8c2c4"/><path d="m12.4 45.9c-.9.8-.8 2.3.3 3.3 1.1 1 2.7 1.1 3.6.3.9-.8.8-2.3-.3-3.3-1-1-2.7-1.1-3.6-.3" fill="#c19a61"/><path d="m12.9 46c-.8.7-.7 2 .3 2.8.9.9 2.3 1 3.1.2.8-.7.7-2-.3-2.8-.9-.8-2.3-1-3.1-.2" fill="#dbb471"/><path d="m10.2 47.8c-.9.8-.8 2.3.3 3.3 1.1 1 2.7 1.1 3.6.3.9-.8.8-2.3-.3-3.3-1.1-1-2.7-1.1-3.6-.3" fill="#c19a61"/><path d="m10.7 47.8c-.8.7-.7 2 .3 2.8.9.9 2.3 1 3.1.2.8-.7.7-2-.3-2.8-.9-.8-2.3-.9-3.1-.2" fill="#dbb471"/><path d="m8 49.7c-1 .8-.8 2.3.3 3.3 1.1 1 2.7 1.1 3.6.3.9-.8.8-2.3-.3-3.3-1.1-1-2.7-1.2-3.6-.3" fill="#c19a61"/><path d="m8.4 49.7c-.8.7-.7 2 .3 2.8.9.9 2.3 1 3.1.2.8-.7.7-2-.3-2.8-.9-.8-2.3-.9-3.1-.2" fill="#dbb471"/><path d="m5.7 51.5c-.9.9-.7 2.3.3 3.3 1.1 1 2.7 1.1 3.6.3.9-.8.8-2.3-.3-3.3-1-1-2.6-1.1-3.6-.3" fill="#c19a61"/><path d="m6.2 51.6c-.8.7-.7 2 .3 2.8.9.9 2.3 1 3.1.2.8-.7.7-2-.3-2.8-.9-.9-2.3-1-3.1-.2" fill="#dbb471"/><path d="m3 53.8c3.1-2.7 1.7-.8 3.7 1.2 5.8 6 15.6-2.9 9-8.1-3.8-3-1.1-6.9.8-8.6 1.2-1 .3.8 3.8 4.9 3.5 4.2 1.9 10.8-2.7 14.7-4.8 4-10.6 1.5-12.8-1.2-1.6-1.8-4.3-.9-1.8-2.9" fill="#89664c"/><path d="m11 58.1c1.6 0 3.8-.5 5.6-2.2 2.1-2.1 2.9-4.7 2.3-7.3 1.4 2.9 1 6-1.3 8.2-1.6 1.6-3.7 1.9-5.2 1.8-1.3 0-2.6-.3-3.8-.8.8.3 1.6.4 2.4.3" fill="#dbb471"/><path d="M16,24C8.5,17.7,6.3,11,5.7,7C3.4,5.4,2,4,2,4S0.8,14.9,12.5,24.7C27.8,37.5,43,45.5,43,45.5l1.3-1.9
+ C39.6,40.9,27.8,33.8,16,24z" fill="#b0bfc1"/><path d="m44.4 43.6l1.2-1.8c-24.4-20.4-24.9-29.8-24.9-29.8-6.3.1-11.6-2.7-15-5 .6 4 2.8 10.7 10.3 17 11.8 9.8 23.6 16.9 28.4 19.6" fill="#c9d1d3"/><path d="m51.6 45.9c.9.8.8 2.3-.3 3.3-1.1 1-2.7 1.1-3.6.3-.9-.8-.8-2.3.3-3.3 1-1 2.7-1.1 3.6-.3" fill="#c19a61"/><path d="m51.1 46c.8.7.7 2-.3 2.8-.9.9-2.3 1-3.1.2-.8-.7-.7-2 .3-2.8.9-.8 2.3-1 3.1-.2" fill="#dbb471"/><path d="m53.8 47.8c.9.8.8 2.3-.3 3.3-1.1 1-2.7 1.1-3.6.3-.9-.8-.8-2.3.3-3.3 1.1-1 2.7-1.1 3.6-.3" fill="#c19a61"/><path d="m53.3 47.8c.8.7.7 2-.3 2.8-.9.9-2.3 1-3.1.2-.8-.7-.7-2 .3-2.8.9-.8 2.3-.9 3.1-.2" fill="#dbb471"/><path d="m56 49.7c.9.8.8 2.3-.3 3.3-1.1 1-2.7 1.1-3.6.3-.9-.8-.8-2.3.3-3.3 1.1-1 2.7-1.2 3.6-.3" fill="#c19a61"/><path d="m55.6 49.7c.8.7.7 2-.3 2.8-.9.9-2.3 1-3.1.2-.8-.7-.7-2 .3-2.8.9-.8 2.3-.9 3.1-.2" fill="#dbb471"/><path d="m58.3 51.5c.9.8.8 2.3-.3 3.3-1.1 1-2.7 1.1-3.6.3-.9-.8-.8-2.3.3-3.3 1-1 2.6-1.1 3.6-.3" fill="#c19a61"/><path d="m57.8 51.6c.8.7.7 2-.3 2.8-.9.9-2.3 1-3.1.2-.8-.7-.7-2 .3-2.8.9-.9 2.3-1 3.1-.2" fill="#dbb471"/><path d="m61 53.8c-3.2-2.6-1.7-.8-3.7 1.2-5.8 6-15.6-2.9-9-8.1 3.8-3 1.1-6.9-.8-8.6-1.2-1-.3.8-3.8 4.9-3.5 4.2-1.9 10.8 2.7 14.7 4.8 4 10.6 1.5 12.8-1.2 1.6-1.8 4.3-.9 1.8-2.9" fill="#89664c"/><path d="m53 58.1c-1.6 0-3.8-.5-5.6-2.2-2.1-2.1-2.9-4.7-2.3-7.3-1.4 2.9-1 6 1.3 8.2 1.6 1.6 3.7 1.9 5.2 1.8 1.3 0 2.6-.3 3.8-.8-.8.3-1.6.4-2.4.3" fill="#dbb471"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2696.svg b/build/js/jsxc/lib/emojione/assets/svg/2696.svg
index b8c44b5..c8042bb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2696.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2696.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m23.563 36.671h-20.625l10.313-26.25 10.312 26.25m-17.972-1.829h15.316l-7.657-19.495-7.659 19.495"/><path d="m61.06 36.671h-20.625l10.313-26.25 10.312 26.25m-17.972-1.829h15.316l-7.657-19.495-7.659 19.495"/></g><path fill="#b8c2c4" d="m50.29 10.238c0 0-2.155-.834-3.365-1.331-4.296-1.762-9.635-3.953-14.929-3.953-5.294 0-10.633 2.191-14.929 3.953-1.21.497-3.365 1.331-3.365 1.331l-3.3 2.545c0 0 2.659 1.683 4.04 1.182 1.063-.382 2.229-.86 3.463-1.367 4.11-1.686 9.225-3.786 14.09-3.786 4.867 0 9.982 2.1 14.09 3.787 1.232.507 2.398.985 3.463 1.367 1.38.501 4.04-1.182 4.04-1.182l-3.299-2.546"/><g fill="#428bc1"><path d="M2,34.796c0,6.213,5.037,11.25,11.25,11.25s11.25-5.037,11.25-11.25H2z"/><path d="M39.5,34.796c0,6.213,5.037,11.25,11.25,11.25S62,41.009,62,34.796H39.5z"/></g><path fill="#b8c2c4" d="m30.13 12.296h3.75v41.25h-3.75z"/><path fill="#d0d0d0" d="m28.975 18.639h6.05v34.907h-6.05z"/><path fill="#545b60" d="m27.725 36.671h8.55v19.682h-8.55z"/><circle fill="#dbb471" cx="13.25" cy="13.233" r="3.75"/><g fill="#545b60"><circle cx="50.75" cy="13.233" r="3.75"/><circle cx="13.25" cy="13.233" r="3.75"/></g><g fill="#fff"><circle cx="13.25" cy="13.233" r="1.875"/><circle cx="50.75" cy="13.233" r="1.875"/></g><g fill="#d0d0d0"><circle cx="32" cy="7.608" r="5.625"/><path d="m32 45.11c-8.285 0-15 4.197-15 9.375h30c0-5.177-6.717-9.375-15-9.375"/></g><path fill="#545b60" d="m15.13 54.48h33.75v3.75h-33.75z"/><path fill="#6b767c" d="m11.375 58.23h41.25v3.75h-41.25z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m23.6 36.7h-20.7l10.3-26.2 10.4 26.2m-18-1.9h15.3l-7.7-19.5-7.6 19.5"/><path d="m61.1 36.7h-20.7l10.3-26.2 10.4 26.2m-18-1.9h15.3l-7.7-19.5-7.6 19.5"/></g><path d="m50.3 10.2c0 0-2.2-.8-3.4-1.3-4.3-1.8-9.6-3.9-14.9-3.9s-10.6 2.2-14.9 4c-1.2.5-3.4 1.3-3.4 1.3l-3.3 2.5c0 0 2.7 1.7 4 1.2 1.1-.4 2.2-.9 3.5-1.4 4.1-1.7 9.2-3.8 14.1-3.8s10 2.1 14.1 3.8c1.2.5 2.4 1 3.5 1.4 1.4.5 4-1.2 4-1.2l-3.3-2.6" fill="#b8c2c4"/><g fill="#428bc1"><path d="M2,34.8C2,41,7,46,13.2,46s11.2-5,11.2-11.2H2z"/><path d="M39.5,34.8c0,6.2,5,11.2,11.2,11.2S62,41,62,34.8H39.5z"/></g><path fill="#b8c2c4" d="m30.1 12.3h3.8v41.2h-3.8z"/><path fill="#d0d0d0" d="m29 18.6h6.1v34.9h-6.1z"/><path fill="#545b60" d="m27.7 36.7h8.6v19.7h-8.6z"/><circle cx="13.2" cy="13.2" r="3.8" fill="#dbb471"/><g fill="#545b60"><circle cx="50.8" cy="13.2" r="3.8"/><circle cx="13.2" cy="13.2" r="3.8"/></g><g fill="#fff"><circle cx="13.2" cy="13.2" r="1.9"/><circle cx="50.8" cy="13.2" r="1.9"/></g><g fill="#d0d0d0"><circle cx="32" cy="7.6" r="5.6"/><path d="m32 45.1c-8.3 0-15 4.2-15 9.4h30c0-5.2-6.7-9.4-15-9.4"/></g><path fill="#545b60" d="m15.1 54.5h33.8v3.8h-33.8z"/><path fill="#6b767c" d="m11.4 58.2h41.2v3.8h-41.2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2697.svg b/build/js/jsxc/lib/emojione/assets/svg/2697.svg
index e5aee70..6e63dac 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2697.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2697.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#b3e0ff" cx="32" cy="28.25" r="19.688"/><path fill="#bd80ff" d="m15.13 28.25c0 9.318 7.556 16.875 16.875 16.875 9.318 0 16.875-7.557 16.875-16.875h-33.75"/><g fill="#94989b"><path d="m16.06 33.875h-3.747l-10.313 28.13h1.875z"/><path d="m47.938 33.875h3.75l10.312 28.13h-1.87z"/><path d="m32.938 62h-1.878l-.93-28.12h3.745z"/></g><g fill="#b3e0ff"><path d="m51.688 3.172c0 0-39.37-2.344-39.37 25.08h19.687c0 0-4.727-18.05 19.688-18.05v-7.03"/><path d="m53.56 10.203c0 .646-.42 1.172-.938 1.172-.519 0-.938-.525-.938-1.172v-7.03c.001-.647.419-1.172.938-1.172.518 0 .938.525.938 1.172v7.03"/></g><path fill="#c5ccd6" d="m9.5 35.75c0 1.031.843 1.875 1.875 1.875h41.25c1.031 0 1.875-.844 1.875-1.875 0-1.031-.844-1.875-1.875-1.875h-41.25c-1.032 0-1.875.844-1.875 1.875"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.5 26.9l1.5-2.7c0 0-19.8-12.1-26.8-13.7-1.5-.4-3-.6-4.6-.6-10.4 0-18.8 8.6-18.8 19.2 0 10.6 8.4 19.2 18.8 19.2s18.8-8.6 18.8-19.2c0-2.1-.3-4.1-1-6l12.1 3.8" opacity=".5" fill="#a1d8f2"/><path d="M14.6,29c0,9.1,7.2,16.6,16.2,16.6S46.9,38.1,46.9,29H14.6z" fill="#bd80ff"/><g fill="#94989b"><path d="m15.5 34.6h-3.6l-9.9 27.4h1.8z"/><path d="m46 34.6h3.6l9.8 27.4h-1.8z"/><path d="m31.6 62h-1.8l-.9-27.4h3.6z"/></g><path d="m9.2 36.5c0 1 .8 1.8 1.8 1.8h39.5c1 0 1.8-.8 1.8-1.8 0-1-.8-1.8-1.8-1.8h-39.5c-1-.1-1.8.8-1.8 1.8" fill="#c5ccd6"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2699.svg b/build/js/jsxc/lib/emojione/assets/svg/2699.svg
index 8374539..9230ed0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2699.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2699.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m13.268 17.795c1.127.25 1.669 1.373 1.205 2.494l-3.377 8.15c-.464 1.121-1.641 1.533-2.614.912l-7.228-4.596c-.973-.619-1.391-2.043-.926-3.164l1.688-4.076c.465-1.119 1.767-1.832 2.892-1.58l8.36 1.86"/><path d="m8.481 35.41c.974-.621 2.15-.209 2.615.91l3.376 8.152c.463 1.121-.078 2.244-1.205 2.494l-8.36 1.859c-1.126.252-2.427-.461-2.892-1.58l-1.688-4.075c-.464-1.121-.047-2.545.926-3.164l7.228-4.596"/><path d="m17.551 51.25c.25-1.127 1.373-1.668 2.494-1.205l8.152 3.377c1.12.465 1.531 1.641.912 2.615l-4.598 7.227c-.619.975-2.041 1.391-3.164.928l-4.075-1.689c-1.12-.463-1.833-1.766-1.581-2.891l1.86-8.362"/><path d="m35.17 56.04c-.62-.973-.209-2.15.911-2.615l8.153-3.377c1.12-.463 2.242.08 2.493 1.205l1.858 8.361c.252 1.125-.459 2.428-1.581 2.893l-4.075 1.688c-1.121.463-2.545.047-3.164-.928l-4.595-7.227"/><path d="m51.01 46.967c-1.126-.25-1.668-1.373-1.204-2.494l3.376-8.152c.465-1.119 1.642-1.529 2.615-.91l7.228 4.598c.974.617 1.392 2.041.927 3.162l-1.688 4.076c-.464 1.119-1.767 1.832-2.892 1.58l-8.362-1.86"/><path d="m55.793 29.354c-.973.619-2.15.209-2.615-.912l-3.376-8.152c-.464-1.121.078-2.242 1.204-2.494l8.361-1.859c1.125-.25 2.428.461 2.893 1.582l1.688 4.076c.465 1.119.047 2.543-.926 3.162l-7.229 4.597"/><path d="m46.724 13.512c-.251 1.127-1.373 1.668-2.494 1.205l-8.151-3.377c-1.121-.465-1.531-1.641-.912-2.615l4.598-7.227c.618-.975 2.042-1.393 3.162-.926l4.076 1.688c1.121.463 1.832 1.766 1.581 2.891l-1.86 8.361"/><path d="m29.11 8.725c.62.975.209 2.15-.911 2.615l-8.152 3.377c-1.121.463-2.242-.08-2.494-1.205l-1.859-8.359c-.251-1.127.461-2.43 1.582-2.893l4.075-1.689c1.122-.465 2.544-.047 3.163.928l4.596 7.226"/><path d="m32.14 5.381c-14.911 0-27 12.09-27 27s12.09 27 27 27 27-12.09 27-27-12.09-27-27-27m0 44c-9.388 0-17-7.611-17-17s7.612-17 17-17 17 7.611 17 17-7.613 17-17 17"/></g><circle fill="#94989b" cx="32.14" cy="32.381" r="21"/><circle fill="#3e4347" cx="32.14" cy="32.381" r="16"/><circle fill="#fff" cx="32.14" cy="32.381" r="8"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#3e4347"><path d="m14.3 18.3c1.1.2 1.6 1.3 1.1 2.3l-3.2 7.6c-.4 1.1-1.5 1.4-2.4.9l-6.8-4.2c-.9-.6-1.3-1.9-.9-3l1.6-3.8c.4-1 1.7-1.7 2.7-1.5l7.9 1.7"/><path d="m9.8 34.8c.9-.6 2-.2 2.5.9l3.2 7.6c.4 1.1-.1 2.1-1.1 2.3l-7.8 1.7c-1.1.2-2.3-.4-2.7-1.5l-1.6-3.8c-.4-1.1 0-2.4.9-3l6.6-4.2"/><path d="m18.3 49.7c.2-1.1 1.3-1.6 2.3-1.1l7.6 3.2c1.1.4 1.4 1.5.9 2.5l-4.3 6.7c-.6.9-1.9 1.3-3 .9l-3.8-1.6c-1-.4-1.7-1.7-1.5-2.7l1.8-7.9"/><path d="m34.8 54.2c-.6-.9-.2-2 .9-2.5l7.6-3.2c1.1-.4 2.1.1 2.3 1.1l1.7 7.8c.2 1.1-.4 2.3-1.5 2.7l-3.8 1.6c-1.1.4-2.4 0-3-.9l-4.2-6.6"/><path d="m49.7 45.7c-1.1-.2-1.6-1.3-1.1-2.3l3.2-7.6c.4-1 1.5-1.4 2.5-.9l6.8 4.3c.9.6 1.3 1.9.9 3l-1.6 3.8c-.4 1-1.7 1.7-2.7 1.5l-8-1.8"/><path d="m54.2 29.2c-.9.6-2 .2-2.5-.9l-3.2-7.6c-.4-1.1.1-2.1 1.1-2.3l7.8-1.7c1.1-.2 2.3.4 2.7 1.5l1.6 3.8c.4 1 0 2.4-.9 3l-6.6 4.2"/><path d="m45.7 14.3c-.2 1.1-1.3 1.6-2.3 1.1l-7.6-3.2c-1.1-.4-1.4-1.5-.9-2.5l4.2-6.7c.6-.9 1.9-1.3 3-.9l3.8 1.6c1 .4 1.7 1.7 1.5 2.7l-1.7 7.9"/><path d="m29.2 9.8c.6.9.2 2-.9 2.5l-7.6 3.2c-1 .4-2.1-.1-2.3-1.1l-1.7-7.8c-.2-1.1.4-2.3 1.5-2.7l3.8-1.6c1.1-.4 2.4 0 3 .9l4.2 6.6"/><path d="M32,6.7C18,6.7,6.7,18,6.7,32S18,57.3,32,57.3C46,57.3,57.3,46,57.3,32C57.3,18,46,6.7,32,6.7z M32,47.9
+ c-8.8,0-15.9-7.1-15.9-15.9c0-8.8,7.1-15.9,15.9-15.9c8.8,0,15.9,7.1,15.9,15.9C47.9,40.8,40.8,47.9,32,47.9z"/></g><path d="m32 12.3c-10.9 0-19.7 8.8-19.7 19.7 0 10.9 8.8 19.7 19.7 19.7s19.7-8.8 19.7-19.7-8.8-19.7-19.7-19.7m0 27.2c-4.1 0-7.5-3.4-7.5-7.5s3.4-7.5 7.5-7.5 7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5" fill="#94989b"/><path d="m32 17c-8.3 0-15 6.7-15 15s6.7 15 15 15c8.3 0 15-6.7 15-15s-6.7-15-15-15m0 22.5c-4.1 0-7.5-3.4-7.5-7.5s3.4-7.5 7.5-7.5 7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/269b.svg b/build/js/jsxc/lib/emojione/assets/svg/269b.svg
index c631940..0b02d3c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/269b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/269b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m32 62c-8.937 0-15.937-13.178-15.937-30 0-16.822 7-30 15.937-30 8.938 0 15.938 13.178 15.938 30 0 16.822-7 30-15.938 30m0-58.12c-7.753 0-14.06 12.616-14.06 28.13 0 15.507 6.309 28.13 14.06 28.13 7.755 0 14.06-12.618 14.06-28.12 0-15.509-6.308-28.12-14.06-28.12"/><path d="m47.23 52.625c-7.199 0-15.946-2.444-23.999-6.707-7.563-4-13.805-9.174-17.576-14.559-3.89-5.555-4.711-10.713-2.31-14.524 2.217-3.521 6.981-5.46 13.416-5.46 7.198 0 15.945 2.444 23.998 6.707 7.563 4 13.806 9.174 17.576 14.557 3.891 5.555 4.711 10.715 2.312 14.526-2.217 3.521-6.982 5.46-13.417 5.46m-30.469-39.531c-5.736 0-9.925 1.633-11.792 4.6-2.034 3.226-1.229 7.749 2.264 12.737 3.613 5.16 9.627 10.13 16.936 13.999 7.776 4.117 16.182 6.476 23.06 6.476 5.737 0 9.925-1.633 11.793-4.6 2.031-3.226 1.227-7.749-2.266-12.736-3.612-5.16-9.627-10.131-16.937-13.999-7.776-4.118-16.181-6.477-23.06-6.477"/><path d="m16.768 52.625c-.001 0-.001 0-.002 0-6.435 0-11.199-1.941-13.417-5.46-2.4-3.811-1.579-8.971 2.312-14.526 3.771-5.383 10.01-10.554 17.576-14.557 8.05-4.263 16.8-6.707 23.999-6.707 6.435 0 11.199 1.939 13.416 5.46 2.399 3.811 1.579 8.969-2.312 14.524-3.771 5.385-10.01 10.556-17.576 14.559-8.05 4.259-16.799 6.707-23.996 6.707m30.467-39.531c-6.88 0-15.285 2.358-23.06 6.477-7.309 3.867-13.324 8.838-16.936 13.999-3.493 4.987-4.296 9.511-2.265 12.736 1.868 2.967 6.06 4.6 11.792 4.6h.002c6.879 0 15.282-2.358 23.06-6.476 7.31-3.869 13.324-8.839 16.936-13.999 3.493-4.988 4.297-9.51 2.266-12.737-1.868-2.966-6.05-4.6-11.792-4.6"/></g><circle fill="#ed4c5c" cx="32" cy="32" r="5.625"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57.9 32c.2-.2.3-.4.5-.6 3.9-5.6 4.7-10.7 2.3-14.5-2.2-3.5-7-5.5-13.4-5.5-1.1 0-2.3.1-3.5.2-2.9-5.9-7.1-9.6-11.8-9.6s-8.9 3.7-11.8 9.6c-1.2-.1-2.4-.2-3.5-.2-6.4 0-11.2 1.9-13.4 5.5-2.4 3.8-1.6 9 2.3 14.5.2.2.4.4.5.6-.2.2-.3.4-.5.6-3.8 5.6-4.6 10.8-2.2 14.6 2.2 3.5 7 5.5 13.4 5.5 1.1 0 2.3-.1 3.5-.2 2.8 5.8 7 9.5 11.7 9.5 4.7 0 8.9-3.7 11.8-9.6 1.2.1 2.4.2 3.5.2 6.4 0 11.2-1.9 13.4-5.5 2.4-3.8 1.6-9-2.3-14.5-.2-.2-.4-.4-.5-.6m-10.7-18.9c5.7 0 9.9 1.6 11.8 4.6 2 3.2 1.2 7.7-2.3 12.7 0 0 0 0-.1.1-2.5-3-5.8-6-9.7-8.6-.6-3.2-1.4-6.1-2.5-8.7 1-.1 2-.1 2.8-.1m-7.4 31.3c-2.6 1.4-5.2 2.5-7.8 3.5-2.6-1-5.3-2.1-7.8-3.5-1.9-1-3.7-2.1-5.5-3.3-.5-2.9-.8-6-.8-9.2s.3-6.3.8-9.2c1.7-1.2 3.5-2.2 5.5-3.3 2.6-1.4 5.2-2.5 7.8-3.5 2.6 1 5.3 2.1 7.8 3.5 1.9 1 3.7 2.1 5.5 3.3.5 2.9.8 6 .8 9.2s-.3 6.3-.8 9.2c-1.7 1.2-3.6 2.3-5.5 3.3m5-.8c-.6 2.5-1.3 4.9-2.3 7-2.6-.3-5.2-.9-7.9-1.8 2.1-.8 4.1-1.8 6.1-2.8 1.5-.8 2.8-1.6 4.1-2.4m-15.4 5.2c-2.7.8-5.4 1.4-7.9 1.8-.9-2.1-1.7-4.4-2.3-7 1.3.8 2.6 1.6 4 2.3 2.1 1.1 4.1 2 6.2 2.9m-12.8-9.1c-3.2-2.4-6-5-8.1-7.7 2.1-2.7 4.9-5.3 8.1-7.7-.3 2.4-.5 5-.5 7.7 0 2.7.1 5.2.5 7.7m2.6-19.3c.6-2.5 1.3-4.9 2.3-7 2.6.3 5.2.9 7.9 1.8-2.1.8-4.1 1.8-6.1 2.9-1.5.7-2.8 1.5-4.1 2.3m15.4-5.2c2.7-.8 5.4-1.4 7.9-1.8.9 2.1 1.7 4.4 2.3 7-1.3-.8-2.6-1.6-4-2.3-2.1-1.1-4.1-2-6.2-2.9m12.8 9.1c3.2 2.4 6 5 8.1 7.7-2.1 2.7-4.9 5.3-8.1 7.7.3-2.4.5-5 .5-7.7 0-2.7-.1-5.2-.5-7.7m-15.4-20.4c3.8 0 7.2 3 9.8 7.9-3.1.5-6.4 1.3-9.8 2.5-3.3-1.2-6.6-2-9.8-2.5 2.6-4.9 6-7.9 9.8-7.9m-24.8 26.5c-3.5-5-4.3-9.5-2.3-12.7 1.9-3 6.1-4.6 11.8-4.6.9 0 1.8 0 2.7.1-1.1 2.6-1.9 5.5-2.5 8.7-3.8 2.6-7.1 5.6-9.7 8.5m9.6 20.5c-5.7 0-9.9-1.6-11.8-4.6-2-3.2-1.2-7.7 2.3-12.7 0 0 0-.1.1-.1 2.5 3 5.8 6 9.7 8.6.6 3.2 1.4 6.1 2.5 8.7-1 .1-1.9.1-2.8.1m15.2 9.2c-3.8 0-7.2-3-9.8-7.9 3.1-.5 6.4-1.3 9.8-2.5 3.3 1.2 6.6 2 9.8 2.5-2.6 4.9-6 7.9-9.8 7.9m27-13.8c-1.9 3-6.1 4.6-11.8 4.6-.9 0-1.8 0-2.7-.1 1.1-2.6 1.9-5.5 2.5-8.7 3.8-2.6 7.1-5.6 9.7-8.6 0 0 0 .1.1.1 3.5 5 4.3 9.5 2.2 12.7" fill="#0071bc"/><circle cx="32" cy="32" r="5.6" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/269c.svg b/build/js/jsxc/lib/emojione/assets/svg/269c.svg
index 62ddfa2..ce5bad9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/269c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/269c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m32 47.31c.783-1.393 2.655-1.409 2.655-1.409v-4.578h-2.655-2.652v4.578c0 0 1.87.017 2.652 1.409"/><path d="m32 2c-2.201 9.686-16.205 14.993-8.07 24.281 6.05 6.913 6.401 14.595 6.401 14.595h1.667 1.667c0 0 .346-7.682 6.401-14.595 8.135-9.288-5.867-14.595-8.07-24.281"/><path d="m28.765 46.521c-2.729.668-1.334 3.42-1.604 4.504-.683 2.757-3.166 2.757-3.166 2.757s1.193 1.808 3.151 1.808c1.419 0 1.808-.776 1.808-.776-.304 3.01 3.047 7.186 3.047 7.186v-14.01c0 0-1.072-1.997-3.236-1.468"/><path d="m36.844 51.02c-.269-1.084 1.125-3.836-1.605-4.504-2.162-.528-3.235 1.469-3.235 1.469v14.01c0 0 3.351-4.179 3.048-7.188 0 0 .389.776 1.809.776 1.956 0 3.151-1.808 3.151-1.808s-2.487.001-3.168-2.756"/><path d="m17.394 39.34c0 0-.49 3.547 3.111 3.547 5.245 0 3.467-8.67-3.341-8.67-7.507 0-5.06 7.529-5.06 7.529-6.225-1.597-10.448-10.462-3.558-16.08 7.751-6.316 18.82 1.32 20.18 12.876 1.067 9.03-6.477 16.256-12.735 11.715-5.093-3.694-1.803-10.449 1.399-10.92"/></g><path fill="#cfa7f9" d="m16.505 41.04c0 0-2.268 6.247 3.912 6.585 4.674.258 7.177-5.991 4-12.12-3.568-6.878-8.783-6.911-11.349-5.881-7.279 2.927-2.625 10.347-2.625 10.347-3.134-1.775-6.387-8.265-.724-13.174 6.697-5.807 17.741 1.065 18.954 11.327.947 8.02-4.967 13.804-10.26 12.41-5-1.316-5.243-7.514-1.909-9.498"/><path fill="#c28fef" d="m46.606 39.34c0 0 .49 3.547-3.111 3.547-5.245 0-3.467-8.67 3.341-8.67 7.507 0 5.06 7.529 5.06 7.529 6.226-1.597 10.448-10.462 3.559-16.08-7.751-6.316-18.82 1.32-20.18 12.876-1.067 9.03 6.478 16.256 12.735 11.715 5.092-3.694 1.802-10.449-1.4-10.92"/><g fill="#cfa7f9"><path d="m47.49 41.04c0 0 2.268 6.247-3.912 6.585-4.674.258-7.177-5.991-4-12.12 3.568-6.878 8.785-6.911 11.347-5.881 7.281 2.927 2.627 10.347 2.627 10.347 3.134-1.775 6.389-8.265.724-13.174-6.697-5.807-17.741 1.065-18.954 11.327-.947 8.02 4.967 13.804 10.259 12.41 5-1.316 5.244-7.514 1.91-9.498"/><path d="m21.415 36.567h21.17v.932h-21.17z"/></g><path fill="#c28fef" d="m22.788 37.499h18.426v.933h-18.426z"/><path fill="#cfa7f9" d="m21.415 41.01h21.17v.933h-21.17z"/><path fill="#c28fef" d="m22.788 40.08h18.426v.933h-18.426z"/><g fill="#cfa7f9"><path d="m21.415 38.432h21.17v1.645h-21.17z"/><path d="m30.1 41.33v3.812c0 0 1.342.014 1.904 1.104.561-1.09 1.902-1.104 1.902-1.104v-3.812h-1.902-1.904"/><path d="m30.67 36.953h1.331 1.33c0 0 .276-6.132 5.11-11.649 6.493-7.414-4.685-11.649-6.44-19.38-1.758 7.73-12.934 11.966-6.44 19.38 4.834 5.517 5.109 11.649 5.109 11.649"/><path d="m35.901 51.17c-.149-1.36.732-3.215-.967-3.61-1.681-.392-2.922 1.864-2.933 1.883-.011-.019-1.251-2.274-2.934-1.883-1.699.396-.815 2.25-.966 3.61-.256 2.312-2.616 2.901-2.616 2.901 2.434 1.891 3.999-.745 3.999-.745.217 4.274 2.494 5.767 2.516 5.781h.002c.021-.016 2.3-1.508 2.516-5.782 0 0 1.565 2.636 4 .745.001 0-2.364-.59-2.619-2.901"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#eda454"><path d="m36.8 51c-.3-1.1 1.1-3.8-1.6-4.5-2.1-.5-3.2 1.5-3.2 1.5s-1.1-2-3.2-1.5c-2.7.7-1.3 3.4-1.6 4.5-.7 2.8-3.2 2.8-3.2 2.8s1.2 1.8 3.2 1.8c1.4 0 1.8-.8 1.8-.8-.3 3 3 7.2 3 7.2s3.4-4.2 3-7.2c0 0 .4.8 1.8.8 2 0 3.2-1.8 3.2-1.8s-2.5 0-3.2-2.8"/><path d="m55.5 25.7c-7.3-5.9-17.5.5-19.8 10.9h-1.1c.8-2.8 2.4-6.7 5.6-10.3 8-9.3-6-14.6-8.2-24.3-2.2 9.7-16.2 15-8.1 24.3 3.2 3.6 4.8 7.5 5.6 10.3h-1.1c-2.3-10.5-12.6-16.9-19.9-10.9-6.9 5.6-2.7 14.5 3.6 16.1 0 0-2.4-7.5 5.1-7.5 2.3 0 4 1 5.1 2.3h-.9v.9h1.4v.9h-1.4v1.6h1.4v1h-1.4v.9h1.4c-.5.6-1.3.9-2.3.9-3.6 0-3.1-3.5-3.1-3.5-3.2.5-6.5 7.2-1.4 10.9 5.4 4 11.9-1 12.7-8.3h.6v4c0 0 1.9 0 2.7 1.4.8-1.4 2.7-1.4 2.7-1.4v-4h.6c.9 7.3 7.3 12.3 12.7 8.3 5.1-3.7 1.8-10.4-1.4-10.9 0 0 .5 3.5-3.1 3.5-1.1 0-1.8-.4-2.3-.9h1.4v-.9h-1.4v-.9h1.4v-1.6h-1.4v-.9h1.4v-.9h-.9c1.1-1.3 2.8-2.3 5.1-2.3 7.5 0 5.1 7.5 5.1 7.5 6.2-1.7 10.4-10.6 3.6-16.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26a0.svg b/build/js/jsxc/lib/emojione/assets/svg/26a0.svg
index 58f306c..e6b1420 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26a0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26a0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m4.161 64c-3.533 0-5.132-2.54-3.551-5.644l28.518-56.03c1.579-3.104 4.167-3.104 5.746 0l28.516 56.03c1.581 3.104-.018 5.644-3.551 5.644h-55.678"/><path fill="#fff" d="m8.891 57.25l23.11-45.4 23.11 45.4z"/><g fill="#333"><path d="m28.358 29.12l2.386 15.895c.238 1.585 2.273 1.585 2.512 0l2.385-15.895c.438-6.198-7.721-6.198-7.283 0"/><ellipse cx="32" cy="51.52" rx="3.658" ry="3.622"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M5.9,62c-3.3,0-4.8-2.4-3.3-5.3L29.3,4.2c1.5-2.9,3.9-2.9,5.4,0l26.7,52.5c1.5,2.9,0,5.3-3.3,5.3H5.9z" fill="#ffce31"/><g fill="#231f20"><path d="m27.8 23.6l2.8 18.5c.3 1.8 2.6 1.8 2.9 0l2.7-18.5c.5-7.2-8.9-7.2-8.4 0"/><ellipse cx="32" cy="49.6" rx="4.2" ry="4.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26a1.svg b/build/js/jsxc/lib/emojione/assets/svg/26a1.svg
index d3525d2..ac811c5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26a1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26a1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m44.525 2l-9.05 2.48-6.077-2.48-9.921 34.35h10.467l-9.166 25.65 22.444-34.35h-13.508z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="m44.5 2l-9 2.5-6.1-2.5-9.9 34.4h10.4l-9.1 25.6 22.4-34.4h-13.5z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26aa.svg b/build/js/jsxc/lib/emojione/assets/svg/26aa.svg
index 3dcdda8..fb39d3e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26aa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26aa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#d0d0d0" cx="32" cy="32" r="30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#d0d0d0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26ab.svg b/build/js/jsxc/lib/emojione/assets/svg/26ab.svg
index 520cb9a..137a56b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26ab.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26ab.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#3e4347" cx="32" cy="32" r="30"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26b0.svg b/build/js/jsxc/lib/emojione/assets/svg/26b0.svg
index 33b26b0..8fb8eb1 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26b0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26b0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m5.443 39.576l43.41 19.424v-11.206l-43.41-19.422z"/><path fill="#3f2e29" d="M48.858 59 64 45.73 64 34.526 48.858 47.794z"/><path fill="#6d5650" d="m.013 24.922l5.43 14.654v-11.204l-5.43-14.654z"/><path fill="#89664c" d="M0 13.718 5.443 28.372 48.858 47.794 64 34.526 31.993 9.771 13.12 5z"/><path fill="#dbb471" d="M2.118 13.205 7.194 26.684 48.686 45.551 62.18 34.17 31.61 10.285 13.147 5.695z"/><path fill="#89664c" d="m14.687 12.816l-3.043 1.955 5.366 3.249-5.04 3.421 3.049 1.789 5.315-3.476 22.618 12 2.749-2.299-22.305-11.943 5.04-3.462-2.983-1.786-5.482 3.482z"/><path fill="#75a843" d="m53.1 22.782c-2.958 2.035-6.246 3.644-9.77 4.518-1.758.437-3.571.691-5.399.718-.915.015-1.836-.027-2.752-.135-.459-.053-.918-.125-1.373-.212-.231-.047-.462-.097-.69-.154-.232-.061-.447-.116-.713-.21l.55-1.438c.147.065.365.144.56.208.198.063.401.126.607.182.409.11.83.21 1.253.29.847.161 1.712.262 2.578.311 1.737.102 3.494-.017 5.228-.316 3.471-.601 6.832-1.943 9.921-3.762"/><path fill="#83bf4f" d="m44.629 24.439c-.226 2.386-2.2 2.719-2.2 2.719s-2.06-1.01-1.832-3.397c.155-1.641 2.424-3.969 2.424-3.969s1.762 3.01 1.608 4.647"/><path fill="#871212" d="m50.9 21.281c-2.226 2.187-3.417 3.204-2.668 5.05.749 1.843 6.515 2.68 6.92-.641.396-3.254 2.488-4.049 2.488-4.049s-3.123-3.918-6.74-.358"/><g fill="#991d1d"><path d="m52.604 27.09c-3.101-.282-4.632.216-5.383-1.624-.748-1.843 3.949-7.807 6.089-5.208 2.649 3.215 4.358 3.597 4.358 3.597s-.438 3.659-5.064 3.235"/><path d="m54.972 26.361c1.092-.454.025-5.707 1.373-7.268 0 0-2.599-1.649-3.916-.027-.73.905-1.132 8.827 2.543 7.295"/></g><path fill="#ad2727" d="m52.959 24.16c-2.403 4.499-5.22 3.831-6.205 1.408-.984-2.425.226-6.05 3.166-6.493 2.96-.452 4.832-2.395 4.832-2.395s.043 4.04-1.793 7.48"/><path fill="#cc3636" d="m52.13 21.324c-4.682-1.96-6.29 1.99-5.306 4.416.983 2.424 3.998 3.446 6.73 2.281 2.733-1.164 4.712-1.124 4.712-1.124s-2.799-4.175-6.136-5.573"/><path fill="#75a843" d="m48.01 25.324c1.57 3.724-.526 2.692-1.51.269-2.424-5.962 2.768-7.862 2.768-7.862s-2.654 4.286-1.258 7.593"/><path fill="#83bf4f" d="m48.01 25.324c-.81-.838-2.44-3.214-1.937-.651.991 5.067 7.647 4.532 7.647 4.532s-3.305-1.399-5.71-3.881"/><path fill="#75a843" d="m53.19 32.509c-3.459-.89-6.824-2.312-9.815-4.409-1.496-1.046-2.893-2.255-4.138-3.626-.621-.687-1.206-1.415-1.743-2.182-.268-.385-.523-.78-.764-1.188-.121-.208-.238-.418-.35-.629-.113-.219-.214-.417-.326-.683l1.41-.543c.052.157.144.374.225.565.088.193.177.39.277.583.192.387.403.773.625 1.146.451.753.955 1.479 1.498 2.174 1.093 1.386 2.354 2.646 3.729 3.761 2.759 2.241 5.985 3.897 9.372 5.03"/><path fill="#871212" d="m52.81 29.826c-3.079-.228-4.615-.453-5.452 1.349-.837 1.803 2.413 6.75 5.097 4.836 2.626-1.876 4.603-.816 4.603-.816s.754-5-4.248-5.369"/><path fill="#991d1d" d="m49.729 35.01c-1.871-2.545-3.257-3.376-2.423-5.177.837-1.803 8.307-2.22 7.854 1.143-.562 4.171.308 5.725.308 5.725s-2.95 2.111-5.739-1.691"/><path fill="#ad2727" d="m51.844 36.33c1.062.527 4.16-3.801 6.196-3.821 0 0-.543-3.077-2.6-2.994-1.147.048-7.169 5.05-3.596 6.815"/><path fill="#e24b4b" d="m52.1 33.32c-4.873 1.182-6.274-1.408-5.173-3.778 1.102-2.37 4.543-3.876 6.831-1.938 2.31 1.949 4.975 2.076 4.975 2.076s-2.905 2.737-6.633 3.64"/><path fill="#f25151" d="m53.599 30.792c-1.707-4.872-5.652-3.452-6.754-1.081-1.102 2.372.173 5.347 2.847 6.648 2.674 1.302 3.969 2.829 3.969 2.829s1.156-4.921-.062-8.396"/><path fill="#75a843" d="m47.939 30.334c-1.653 3.689-2.309 1.403-1.208-.968 2.706-5.832 7.562-3.153 7.562-3.153s-4.886.846-6.354 4.121"/><path fill="#83bf4f" d="m47.939 30.334c.066-1.177.7-4-.825-1.909-3.01 4.144 1.825 8.848 1.825 8.848s-1.193-3.449-1-6.939"/><path fill="#b7925e" d="m6.02 36.516l41.725 18.614v-1.99l-41.725-18.614z"/><path fill="#dbb471" d="m8.354 40.06l2.566 1.18v-7.62l-2.566-1.184z"/><path fill="#3f2e29" d="m10.92 41.24l1.273-.739v-1.028l-.638-.293v-1.375l.638-.352v-4.576l-1.273.74z"/><path fill="#89664c" d="m8.354 32.436l2.566 1.181 1.273-.74-2.555-1.074z"/><path fill="#dbb471" d="m42.36 55.01l2.572 1.18v-7.626l-2.572-1.184z"/><path fill="#3f2e29" d="m44.932 56.19l1.268-.74v-1.03l-.634-.3v-1.371l.634-.349v-4.579l-1.268.742z"/><path fill="#89664c" d="m42.36 47.38l2.572 1.183 1.268-.742-2.553-1.075z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#594640" d="m5.4 39.6l43.5 19.4v-11.2l-43.5-19.4z"/><path fill="#3f2e29" d="M48.9 59 64 45.7 64 34.5 48.9 47.8z"/><path fill="#6d5650" d="m0 24.9l5.4 14.7v-11.2l-5.4-14.7z"/><path fill="#89664c" d="M0 13.7 5.4 28.4 48.9 47.8 64 34.5 32 9.8 13.1 5z"/><path fill="#dbb471" d="m2.1 13.2l5.1 13.5 41.5 18.9 13.5-11.4-30.6-23.9-18.5-4.6z"/><path fill="#89664c" d="m14.7 12.8l-3.1 2 5.4 3.2-5 3.4 3 1.8 5.3-3.4 22.7 12 2.7-2.3-22.3-12 5-3.4-2.9-1.8-5.5 3.4z"/><path d="m53.1 22.8c-3 2-6.2 3.6-9.8 4.5-1.8.4-3.6.7-5.4.7-.9 0-1.8 0-2.8-.1-.5-.1-.9-.1-1.4-.2-.2 0-.5-.1-.7-.2-.2-.1-.4-.1-.7-.2l.5-1.4c.1.1.4.1.6.2.2.1.4.1.6.2.4.1.8.2 1.3.3.8.2 1.7.3 2.6.3 1.7.1 3.5 0 5.2-.3 3.6-.7 6.9-2 10-3.8" fill="#75a843"/><path d="m44.6 24.4c-.2 2.4-2.2 2.7-2.2 2.7s-2.1-1-1.8-3.4c.2-1.6 2.4-4 2.4-4s1.8 3.1 1.6 4.7" fill="#83bf4f"/><path d="m50.9 21.3c-2.2 2.2-3.4 3.2-2.7 5 .7 1.8 6.5 2.7 6.9-.6.4-3.3 2.5-4 2.5-4s-3.1-4-6.7-.4" fill="#871212"/><g fill="#991d1d"><path d="m52.6 27.1c-3.1-.3-4.6.2-5.4-1.6-.7-1.8 3.9-7.8 6.1-5.2 2.6 3.2 4.4 3.6 4.4 3.6s-.5 3.6-5.1 3.2"/><path d="m55 26.4c1.1-.5 0-5.7 1.4-7.3 0 0-2.6-1.6-3.9 0-.8.9-1.2 8.8 2.5 7.3"/></g><path d="m53 24.2c-2.4 4.5-5.2 3.8-6.2 1.4-1-2.4.2-6 3.2-6.5 3-.5 4.8-2.4 4.8-2.4s0 4-1.8 7.5" fill="#ad2727"/><path d="m52.1 21.3c-4.7-2-6.3 2-5.3 4.4 1 2.4 4 3.4 6.7 2.3 2.7-1.2 4.7-1.1 4.7-1.1s-2.7-4.2-6.1-5.6" fill="#cc3636"/><path d="m48 25.3c1.6 3.7-.5 2.7-1.5.3-2.4-6 2.8-7.9 2.8-7.9s-2.7 4.3-1.3 7.6" fill="#75a843"/><path d="m48 25.3c-.8-.8-2.4-3.2-1.9-.7 1 5.1 7.6 4.5 7.6 4.5s-3.3-1.3-5.7-3.8" fill="#83bf4f"/><path d="m53.2 32.5c-3.5-.9-6.8-2.3-9.8-4.4-1.5-1-2.9-2.3-4.1-3.6-.6-.7-1.2-1.4-1.7-2.2-.3-.4-.5-.8-.8-1.2-.1-.2-.2-.4-.3-.6-.1-.2-.2-.4-.3-.7l1.4-.5c.1.2.1.4.2.6.1.2.2.4.3.6.2.4.4.8.6 1.1.5.8 1 1.5 1.5 2.2 1.1 1.4 2.4 2.6 3.7 3.8 2.7 2.1 5.9 3.8 9.3 4.9" fill="#75a843"/><path d="m52.8 29.8c-3.1-.2-4.6-.5-5.5 1.3-.8 1.8 2.4 6.8 5.1 4.8 2.6-1.9 4.6-.8 4.6-.8s.8-4.9-4.2-5.3" fill="#871212"/><path d="m49.7 35c-1.9-2.5-3.3-3.4-2.4-5.2.8-1.8 8.3-2.2 7.9 1.1-.6 4.2.3 5.7.3 5.7s-3 2.2-5.8-1.6" fill="#991d1d"/><path d="m51.8 36.3c1.1.5 4.2-3.8 6.2-3.8 0 0-.5-3.1-2.6-3-1.1.1-7.1 5.1-3.6 6.8" fill="#ad2727"/><path d="m52.1 33.3c-4.9 1.2-6.3-1.4-5.2-3.8 1.1-2.4 4.5-3.9 6.8-1.9 2.3 1.9 5 2.1 5 2.1s-2.9 2.7-6.6 3.6" fill="#e24b4b"/><path d="m53.6 30.8c-1.7-4.9-5.7-3.5-6.8-1.1-1.1 2.4.2 5.3 2.8 6.6 2.7 1.3 4 2.8 4 2.8s1.2-4.8 0-8.3" fill="#f25151"/><path d="m47.9 30.3c-1.7 3.7-2.3 1.4-1.2-1 2.7-5.8 7.6-3.2 7.6-3.2s-4.9 1-6.4 4.2" fill="#75a843"/><path d="m47.9 30.3c.1-1.2.7-4-.8-1.9-3 4.1 1.8 8.8 1.8 8.8s-1.2-3.4-1-6.9" fill="#83bf4f"/><path fill="#b7925e" d="m6 36.5l41.7 18.6v-2l-41.7-18.6z"/><path fill="#dbb471" d="m8.4 40.1l2.5 1.1v-7.6l-2.5-1.2z"/><path fill="#3f2e29" d="m10.9 41.2l1.3-.7v-1l-.6-.3v-1.4l.6-.3v-4.6l-1.3.7z"/><path fill="#89664c" d="m8.4 32.4l2.5 1.2 1.3-.7-2.6-1.1z"/><path fill="#dbb471" d="m42.4 55l2.5 1.2v-7.6l-2.5-1.2z"/><path fill="#3f2e29" d="m44.9 56.2l1.3-.8v-1l-.6-.3v-1.4l.6-.3v-4.6l-1.3.8z"/><path fill="#89664c" d="m42.4 47.4l2.5 1.2 1.3-.8-2.6-1.1z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26b1.svg b/build/js/jsxc/lib/emojione/assets/svg/26b1.svg
index 58a5dbe..a752a31 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26b1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26b1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffd85c" d="m45.39 55.06c-.02.073-26.764.073-26.784 0-.9 1.028-1.178 1.973-.969 2.331.478.816 1.153 1.489 1.959 2.041 3.445 2.369 9.293 2.569 12.402 2.569 3.109 0 8.957-.2 12.402-2.569.806-.552 1.481-1.225 1.959-2.041.208-.359-.069-1.303-.969-2.331"/><path fill="#cf4d4d" d="m42.38 52.9h-20.76c-1.393.637-2.361 1.418-3.01 2.158.02.073.291 1.077 1.762 2.138 1.721 1.241 5.086 2.563 11.63 2.563 6.544 0 9.91-1.321 11.63-2.563 1.471-1.061 1.742-2.064 1.762-2.138-.651-.74-1.62-1.521-3.01-2.158"/><path fill="#ffd85c" d="m23.1 54.1c1.396.736 4.02 1.537 8.896 1.537 4.421 0 6.996-.661 8.48-1.332 1.537-.697 1.9-1.405 1.9-1.405v-.919h-20.76v.918c0 0 .3.577 1.484 1.201"/><path fill="#cf4d4d" d="m51.815 23.07c-.495-4.351-7.02-5.939-7.02-5.939h-25.597c0 0-6.521 1.589-7.02 5.939-1.743 15.318 9.436 28.907 9.436 28.907s.479.365 1.483.809h.001c1.574.694 4.451 1.584 8.896 1.584 4.074 0 6.834-.748 8.48-1.407 1.297-.52 1.9-.985 1.9-.985s11.178-13.59 9.435-28.908"/><path fill="#ffd85c" d="m19.2 16.16v.977c0 0 .444.235 1.665.51 1.748.393 5.1.87 11.134.87 6.03 0 9.386-.478 11.134-.87 1.221-.274 1.665-.51 1.665-.51v-.977h-25.598"/><path fill="#cf4d4d" d="m41.21 13.411c0-.888 0-2.506 0-3.37 0-.74.338-1.641 1.925-2.305h-22.268c1.587.664 1.925 1.564 1.925 2.305 0 .864 0 2.482 0 3.37 0 1.462-3.59 2.748-3.59 2.748s.444.244 1.665.529c1.748.409 5.1.907 11.134.907 6.03 0 9.386-.498 11.134-.907 1.221-.285 1.665-.529 1.665-.529s-3.59-1.286-3.59-2.748"/><g fill="#ffd85c"><path d="m20.866 4.521v3.215c0 0 .512.086 1.462.197 1.776.211 5.111.511 9.672.511 4.561 0 7.896-.3 9.672-.511.95-.111 1.462-.197 1.462-.197v-3.215h-22.268"/><path d="m37 2.101c-2.214-.135-5-.096-5-.096s-2.786-.039-5 .096c-.622.038-1.202.089-1.659.158v.532h13.319v-.532c-.458-.069-1.038-.12-1.66-.158"/></g><path fill="#cf4d4d" d="m38.659 2.792h-13.319c-2.784.309-4.475 1.729-4.475 1.729s.496.1 1.462.226c1.722.225 4.957.539 9.673.539 4.716 0 7.951-.313 9.672-.539.966-.126 1.462-.226 1.462-.226s-1.691-1.421-4.475-1.729"/><g fill="#ffd85c"><path d="m33.516 48.845c-1.01.028-2.02.028-3.03 0-.064-8.02-.129-16.05-.193-24.07 1.14.032 2.278.032 3.418 0-.064 8.02-.129 16.05-.193 24.07"/><path d="m23.862 33.848c-.043-1.073-.086-2.145-.129-3.218 5.483.781 11.05.781 16.534 0-.043 1.073-.086 2.146-.129 3.218-5.399.768-10.878.768-16.276 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m45.4 55.1c0 .1-26.8.1-26.8 0-.9 1-1.2 2-1 2.3.5.8 1.2 1.5 2 2 3.4 2.4 9.3 2.6 12.4 2.6s9-.2 12.4-2.6c.8-.6 1.5-1.2 2-2 .2-.4-.1-1.3-1-2.3" fill="#ffd85c"/><path d="m42.4 52.9h-20.8c-1.4.6-2.4 1.4-3 2.2 0 .1.3 1.1 1.8 2.1 1.7 1.2 5.1 2.6 11.6 2.6s9.9-1.3 11.6-2.6c1.5-1.1 1.7-2.1 1.8-2.1-.7-.8-1.6-1.6-3-2.2" fill="#cf4d4d"/><path d="m23.1 54.1c1.4.7 4 1.5 8.9 1.5 4.4 0 7-.7 8.5-1.3 1.5-.7 1.9-1.4 1.9-1.4v-.9h-20.8v.9c0 0 .3.6 1.5 1.2" fill="#ffd85c"/><path d="m51.8 23.1c-.5-4.4-7-5.9-7-5.9h-25.6c0 0-6.5 1.6-7 5.9-1.8 15.3 9.4 28.9 9.4 28.9s.5.4 1.5.8c1.6.7 4.5 1.6 8.9 1.6 4.1 0 6.8-.7 8.5-1.4 1.3-.5 1.9-1 1.9-1s11.2-13.6 9.4-28.9" fill="#cf4d4d"/><path d="m19.2 16.2v1c0 0 .4.2 1.7.5 1.7.3 5.1.8 11.1.8 6 0 9.4-.5 11.1-.9 1.2-.3 1.7-.5 1.7-.5v-1h-25.6z" fill="#ffd85c"/><path d="m41.2 13.4c0-.9 0-2.5 0-3.4 0-.7.3-1.6 1.9-2.3h-22.2c1.6.7 1.9 1.6 1.9 2.3 0 .9 0 2.5 0 3.4 0 1.5-3.6 2.7-3.6 2.7s.4.2 1.7.5c1.7.4 5.1.9 11.1.9 6 0 9.4-.5 11.1-.9 1.2-.3 1.7-.5 1.7-.5s-3.6-1.2-3.6-2.7" fill="#cf4d4d"/><g fill="#ffd85c"><path d="m20.9 4.5v3.2c0 0 .5.1 1.5.2 1.8.2 5.1.5 9.7.5s7.9-.3 9.7-.5c1-.1 1.5-.2 1.5-.2v-3.2h-22.4"/><path d="m37 2.1c-2.2-.1-5-.1-5-.1s-2.8 0-5 .1c-.6 0-1.2.1-1.7.2v.5h13.3v-.5c-.4-.1-1-.2-1.6-.2"/></g><path d="m38.7 2.8h-13.4c-2.8.3-4.5 1.7-4.5 1.7s.5.1 1.5.2c1.7.3 5 .6 9.7.6s8-.3 9.7-.5c1-.1 1.5-.2 1.5-.2s-1.8-1.5-4.5-1.8" fill="#cf4d4d"/><g fill="#ffd85c"><path d="m33.5 48.8c-1 0-2 0-3 0-.1-8-.1-16-.2-24.1 1.1 0 2.3 0 3.4 0-.1 8.1-.1 16.1-.2 24.1"/><path d="m23.9 33.8c0-1.1-.1-2.1-.1-3.2 5.5.8 11.1.8 16.5 0 0 1.1-.1 2.1-.1 3.2-5.5.8-10.9.8-16.3 0"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26bd.svg b/build/js/jsxc/lib/emojione/assets/svg/26bd.svg
index 137d1f2..dc2380e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26bd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26bd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#fff" cx="32.01" cy="32" rx="29.25" ry="29.27"/><path fill="#4a4e51" d="m61.932 31.993c.021-.714.209-10.904-5.822-17.538-.268-.593-1.539-2.983-5.64-5.904-2.712-2.135-5.544-3.642-5.775-3.763 0 0 0 0-.001 0 0-.001-.006-.003-.006-.004-.256-.138-5.258-2.784-11.33-2.784-.459 0-.915.027-1.366.058v-.008c-4.628-.101-8.804 1.147-11.909 2.476l.007-.006-.025.014c-3.206 1.374-5.258 2.828-5.456 2.972-3.402 1.905-9.858 9.545-10.369 13.595-2.063 2.638-3.787 14.481.003 21.696 2.658 10.03 12.663 15.05 13.459 15.431.484.308 5.937 3.679 12.636 3.679.281 0 .566-.007.852-.02.553.076 1.13.113 1.736.113 7.24 0 17.97-5.104 20.21-9.102 6.171-4.513 9.37-16.14 8.792-20.905m-44.17 15.06c-2.869-4.64-4.503-10.705-4.854-12.1.908-1.36 5.387-7.964 7.94-9.951 1.445.266 7.478 1.373 13.168 2.404.715 1.852 3.851 10.03 4.75 13.185-.992 1.173-4.879 5.702-8.707 9.247-4.065.02-10.979-2.325-12.297-2.787m36.06-32.475c-.012.45-.119 2.05-.885 3.887-1.52-.777-5.344-2.441-10.582-2.722-.793-1.171-3.777-5.254-8.49-8.09.645-1.262 1.543-2.801 2.067-3.27.171-.048.435-.092.836-.092 2.526 0 6.892 1.655 7.274 1.802.401.214 8.249 4.44 9.78 8.481m-42.05 19.433c-3.424-.585-5.46-1.648-6.067-2.01-1.273-4.617-.249-9.607-.089-10.321 1.254-2.246 4.832-7.971 7.19-9.06 2.446-.499 5.494.121 6.736.424-.118 1.615-.342 6.127.326 10.862-2.707 2.178-6.989 8.446-8.096 10.1m19.91-30.482c.768.057 1.894.225 2.666.454-.77 1.024-1.558 2.542-1.931 3.292-1.57.257-7.533 1.397-12.211 4.43-.943-.25-3.79-.917-6.486-.687.667-1.293 1.666-2.249 1.772-2.347.372-.266 7.514-5.263 16.191-5.155v.013m19.09 38.09c-1.17-.047-5.677-.305-10.619-1.465-.947-3.302-4.074-11.445-4.789-13.296 3.065-4.382 6.086-8.511 6.927-9.655 5.688.312 9.681 2.387 10.455 2.82 3.294 5.298 4.02 10.711 4.116 11.616-1.75 5.446-5.21 9.113-6.09 9.98m-47.12-13.1c.084 1.266.286 2.598.653 3.916-.338.863-.555 1.76-.68 2.652-.226-2.262-.185-4.545.027-6.568m14.8 28.453l-.379.587.303-.63c-2.43-1.185-4.373-3.947-5.08-5.05 1.506-1.453 3.366-2.867 4.087-3.402 1.63.574 8.324 2.838 12.591 2.838.726.975 3.102 4.03 6.02 6.361-1.814 1.775-4.432 2.614-4.896 2.752-6.752.279-12.583-3.418-12.642-3.455m16.305 3.443c.922-.537 1.882-1.244 2.678-2.139 1.297-.178 6.863-1.137 11.893-4.832.33.037.877.08 1.488.063-3.02 2.958-10.38 6.26-16.06 6.908m15.423-8.375c1.806-4.709 1.729-8.258 1.641-9.392.991-.972 4.396-4.599 6.284-10.113 1.019.169 1.68.429 1.994.574.109.399.291 1.324.187 2.725-.769 5.04-3.427 12.599-8.08 15.94-.467.239-1.29.292-2.023.266"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="32" rx="29.3" ry="29.3" fill="#fff"/><path d="m61.9 32c0-.7.2-10.9-5.8-17.5-.3-.6-1.5-3-5.6-5.9-2.7-2.1-5.5-3.6-5.8-3.8 0 0 0 0 0 0-.3-.2-5.3-2.8-11.3-2.8-.5 0-.9 0-1.4.1-4.6-.1-8.8 1.1-11.9 2.5-3.2 1.4-5.3 2.8-5.5 3-3.4 1.9-9.9 9.5-10.4 13.6-2.1 2.6-3.8 14.5 0 21.7 2.7 10 12.7 15 13.5 15.4.5.3 5.9 3.7 12.6 3.7.3 0 .6 0 .9 0 .6.1 1.1.1 1.7.1 7.2 0 18-5.1 20.2-9.1 6.2-4.6 9.4-16.2 8.8-21m-44.1 15.1c-2.9-4.6-4.5-10.7-4.9-12.1.9-1.4 5.4-8 7.9-10 1.4.3 7.5 1.4 13.2 2.4.7 1.9 3.9 10 4.8 13.2-1 1.2-4.9 5.7-8.7 9.2-4.1.1-11-2.3-12.3-2.7m36-32.5c0 .4-.1 2-.9 3.9-1.5-.8-5.3-2.4-10.6-2.7-.8-1.2-3.8-5.3-8.5-8.1.6-1.3 1.5-2.8 2.1-3.3.2 0 .4-.1.8-.1 2.5 0 6.9 1.7 7.3 1.8.4.2 8.3 4.4 9.8 8.5m-42 19.4c-3.4-.6-5.5-1.6-6.1-2-1.3-4.6-.2-9.6-.1-10.3 1.3-2.2 4.8-8 7.2-9.1 2.4-.5 5.5.1 6.7.4-.1 1.6-.3 6.1.3 10.9-2.6 2.2-6.9 8.5-8 10.1m19.9-30.5c.8.1 1.9.2 2.7.5-.8 1-1.6 2.5-1.9 3.3-1.6.3-7.5 1.4-12.2 4.4-.9-.2-3.8-.9-6.5-.7.7-1.3 1.7-2.2 1.8-2.3.3-.3 7.4-5.3 16.1-5.2m19.1 38.1c-1.2 0-5.7-.3-10.6-1.5-.9-3.3-4.1-11.4-4.8-13.3 3.1-4.4 6.1-8.5 6.9-9.7 5.7.4 9.7 2.5 10.5 2.9 3.3 5.3 4 10.7 4.1 11.6-1.8 5.5-5.2 9.2-6.1 10m-47.1-13.1c.1 1.3.3 2.6.7 3.9-.3.9-.6 1.8-.7 2.7-.3-2.3-.3-4.6 0-6.6m14.8 28.5l-.4.6.4-.6c-2.5-1.2-4.4-4-5.2-5.1 1.5-1.5 3.4-2.9 4.1-3.4 1.6.6 8.3 2.8 12.6 2.8.7 1 3.1 4 6 6.4-1.8 1.8-4.4 2.6-4.9 2.8-6.8.2-12.6-3.5-12.6-3.5m16.3 3.4c.9-.5 1.9-1.2 2.7-2.1 1.3-.2 6.9-1.1 11.9-4.8.3 0 .9.1 1.5.1-3.1 2.9-10.5 6.2-16.1 6.8m15.4-8.4c1.8-4.7 1.7-8.3 1.6-9.4 1-1 4.4-4.6 6.3-10.1 1 .2 1.7.4 2 .6.1.4.3 1.3.2 2.7-.8 5-3.4 12.6-8.1 15.9-.5.3-1.3.4-2 .3" fill="#4a4e51"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26be.svg b/build/js/jsxc/lib/emojione/assets/svg/26be.svg
index d9b8584..efe314b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26be.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26be.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#efefef" cx="32" cy="32" r="30"/><g fill="#cc4c5e"><path d="m28.508 2.201c.429 4.269 1.889 8.265 3.899 11.918 2.034 3.645 4.597 6.984 7.553 9.921 2.938 2.954 6.278 5.517 9.923 7.55 3.652 2.01 7.647 3.47 11.916 3.902-4.291.412-8.688-.672-12.623-2.51-3.963-1.838-7.53-4.462-10.63-7.528-3.064-3.101-5.688-6.668-7.525-10.631-1.837-3.935-2.922-8.331-2.513-12.622"/><path d="m2.33 28.379c4.291-.409 8.687.676 12.621 2.513 3.963 1.838 7.53 4.461 10.631 7.526 3.066 3.1 5.69 6.666 7.528 10.631 1.838 3.934 2.922 8.332 2.51 12.621-.431-4.268-1.893-8.262-3.901-11.916-2.033-3.645-4.596-6.982-7.55-9.922-2.938-2.957-6.276-5.52-9.921-7.553-3.653-2.01-7.649-3.471-11.918-3.9"/></g><g fill="#ed4c5c"><path d="m7.547 25.23c-3.02-.931-.373 1.415-.903 3.144-.535 1.73-4.04 2.186-1.022 3.111 3.02.932 5.896.283 6.428-1.447.53-1.729-1.484-3.883-4.503-4.808"/><path d="m59.08 35.57c.599-1.707-1.331-3.941-4.311-4.984-2.976-1.05-.429 1.401-1.025 3.109-.603 1.707-4.124 2.023-1.143 3.068 2.979 1.05 5.88.512 6.479-1.193"/><path d="m30.16 11.921c1.729-.533 2.378-3.412 1.446-6.428-.926-3.02-1.381.487-3.111 1.022-1.729.53-4.075-2.114-3.145.904.926 3.02 3.08 5.03 4.81 4.502"/><path d="m49.1 32.3c1.448-1.854.518-4.834-2.078-6.648-2.59-1.819-1.121 1.536-2.566 3.392-1.448 1.854-5.266 1.504-2.668 3.322 2.591 1.821 5.864 1.789 7.312-.066"/><path d="m41.67 26.998c1.727-1.6 1.285-4.688-.987-6.897-2.265-2.211-1.354 1.336-3.077 2.937-1.726 1.598-5.436.64-3.164 2.85 2.267 2.213 5.505 2.707 7.228 1.11"/><path d="m34.551 19.766c2.107-1.048 2.553-4.137.995-6.895-1.549-2.761-1.676.901-3.779 1.951-2.105 1.047-5.396-.917-3.84 1.844 1.553 2.76 4.519 4.147 6.624 3.1"/><path d="m36.892 52.47c-1.045-2.982-1.36.539-3.068 1.143-1.707.596-4.157-1.951-3.108 1.025 1.043 2.979 3.275 4.91 4.984 4.311 1.703-.6 2.24-3.501 1.192-6.479"/><path d="m32.494 41.66c-1.817-2.598-1.468 1.219-3.321 2.668-1.855 1.445-5.211-.023-3.392 2.566 1.814 2.596 4.794 3.527 6.648 2.078 1.854-1.447 1.886-4.72.065-7.312"/><path d="m26.02 34.31c-2.21-2.27-1.253 1.439-2.851 3.164-1.6 1.725-5.147.813-2.937 3.078 2.209 2.273 5.297 2.713 6.896.988 1.599-1.725 1.104-4.963-1.108-7.23"/><path d="m16.794 27.798c-2.761-1.556-.797 1.734-1.844 3.84-1.05 2.104-4.712 2.231-1.95 3.78 2.758 1.557 5.847 1.111 6.895-.996 1.046-2.104-.34-5.07-3.101-6.624"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#eff6f7"/><g fill="#cc4c5e"><path d="m50 32.1c-3.8-1.7-7.3-4.3-10.6-7.5-3.2-3.3-5.8-6.9-7.5-10.6-1.9-4.1-2.8-8.2-2.5-11.9-.7.1-1.4.1-2 .2-.2 3.9.7 8.2 2.7 12.5 1.8 4 4.5 7.7 7.9 11.2 3.4 3.4 7.2 6.1 11.2 7.9 3.9 1.8 7.8 2.8 11.5 2.8.3 0 .6 0 1 0 .1-.7.2-1.3.2-2-3.7.2-7.8-.7-11.9-2.6"/><path d="m26.1 37.9c-3.5-3.4-7.2-6.1-11.2-7.9-4.3-2-8.6-2.9-12.6-2.7-.1.7-.2 1.3-.2 2 3.7-.3 7.9.6 12 2.5 3.8 1.7 7.3 4.3 10.6 7.5 3.2 3.3 5.8 6.9 7.5 10.6 1.9 4.1 2.8 8.2 2.5 12 .7-.1 1.4-.1 2-.2.2-4-.7-8.3-2.7-12.6-1.8-4-4.5-7.8-7.9-11.2"/></g><g fill="#ed4c5c"><path d="m7.5 25.2c-3-.9-.4 1.4-.9 3.1-.5 1.7-4 2.2-1 3.1 3 .9 5.9.3 6.4-1.4.6-1.7-1.4-3.9-4.5-4.8"/><path d="m59.1 35.6c.6-1.7-1.3-3.9-4.3-5-3-1-.4 1.4-1 3.1-.6 1.7-4.1 2-1.1 3.1 2.9 1 5.8.5 6.4-1.2"/><path d="m30.2 11.9c1.7-.5 2.4-3.4 1.4-6.4-.9-3-1.4.5-3.1 1-1.7.5-4.1-2.1-3.1.9.9 3 3 5.1 4.8 4.5"/><path d="m49.1 32.3c1.4-1.9.5-4.8-2.1-6.6-2.6-1.8-1.1 1.5-2.6 3.4-1.4 1.9-5.3 1.5-2.7 3.3 2.7 1.8 6 1.8 7.4-.1"/><path d="m41.7 27c1.7-1.6 1.3-4.7-1-6.9-2.3-2.2-1.4 1.3-3.1 2.9-1.7 1.6-5.4.6-3.2 2.9 2.3 2.2 5.5 2.7 7.3 1.1"/><path d="m34.6 19.8c2.1-1 2.6-4.1 1-6.9-1.5-2.8-1.7.9-3.8 2-2.1 1-5.4-.9-3.8 1.8 1.5 2.7 4.4 4.1 6.6 3.1"/><path d="m36.9 52.5c-1-3-1.4.5-3.1 1.1-1.7.6-4.2-2-3.1 1 1 3 3.3 4.9 5 4.3 1.7-.6 2.2-3.5 1.2-6.4"/><path d="m32.5 41.7c-1.8-2.6-1.5 1.2-3.3 2.7-1.9 1.4-5.2 0-3.4 2.6 1.8 2.6 4.8 3.5 6.6 2.1 1.9-1.6 1.9-4.8.1-7.4"/><path d="m26 34.3c-2.2-2.3-1.3 1.4-2.9 3.2-1.6 1.7-5.1.8-2.9 3.1 2.2 2.3 5.3 2.7 6.9 1 1.6-1.8 1.1-5-1.1-7.3"/><path d="m16.8 27.8c-2.8-1.6-.8 1.7-1.8 3.8-1.1 2.1-4.7 2.2-2 3.8 2.8 1.6 5.8 1.1 6.9-1 1-2.1-.3-5-3.1-6.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26c4.svg b/build/js/jsxc/lib/emojione/assets/svg/26c4.svg
index d052e31..3d083f6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26c4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26c4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#d0d0d0" cx="31.91" cy="45" r="17"/><path fill="#fff" d="m31.91 30c-8.272 0-15 6.73-15 15 0 8.271 6.728 15 15 15s15-6.729 15-15c0-8.27-6.727-15-15-15"/><circle fill="#d0d0d0" cx="31.91" cy="25.531" r="13"/><path fill="#fff" d="m31.91 14.531c-6.07 0-11 4.936-11 11 0 6.07 4.936 11 11 11s10.999-4.935 10.999-11c0-6.06-4.933-11-10.999-11"/><circle fill="#ff8736" cx="31.91" cy="26.439" r="2.5"/><g fill="#3e4347"><circle cx="26.494" cy="21.814" r="2"/><circle cx="37.32" cy="21.814" r="2"/></g><g fill="#94989b"><ellipse transform="matrix(.9063.4226-.4226.9063 9.528-13.918)" cx="36.15" cy="14.528" rx="10.07" ry="2.551"/><ellipse transform="matrix(.9063.4226-.4226.9063 6.157-16.503)" cx="40.3" cy="5.635" rx="7.557" ry="1.914"/></g><path fill="#3e4347" d="m39.491 7.369c-3.549-1.654-6.147-3.698-6.088-4.736l-2.263 9.232c-.335.719 1.693 2.373 4.53 3.696s5.408 1.813 5.743 1.095l5.617-7.668c-.755.713-3.991.035-7.539-1.619"/><g fill="#89664c"><path d="m62 33.369l-5.806-1.689c1.012-1.072 2.02-2.143 3.034-3.215.345-.364.362-.938 0-1.299-.346-.346-.954-.365-1.298 0-1.373 1.455-2.747 2.91-4.12 4.365l.011-8.438-1.837-.003-.013 10.389c-1.687 1.787-3.372 3.574-5.059 5.36-.342.363-.362.937 0 1.3.347.346.956.363 1.3 0 1.878-1.992 3.756-3.981 5.635-5.971.31-.33.62-.658.93-.986l6.71 1.949.513-1.762"/><path d="m12.03 33.479l-.012-10.389-1.837.003.011 8.438c-1.373-1.455-2.747-2.91-4.12-4.365-.344-.365-.952-.346-1.298 0-.362.361-.345.935 0 1.299 1.012 1.072 2.02 2.143 3.034 3.215l-5.806 1.689.513 1.762 6.71-1.949c.395.416.787.834 1.182 1.253 1.795 1.901 3.589 3.802 5.383 5.704.344.363.953.346 1.3 0 .359-.363.343-.937 0-1.3-1.689-1.786-3.373-3.573-5.06-5.36"/></g><g fill="#3e4347"><path d="m30.25 46.31l-1.05-3.23 2.752-1.99 2.748 1.99-1.05 3.23z"/><path d="m30.25 56.11l-1.05-3.233 2.752-1.996 2.748 1.996-1.05 3.233z"/><path d="m31.91 33.951c-3.076 0-6.04-1.309-8.145-3.592-.374-.406-.347-1.039.06-1.413.406-.372 1.039-.347 1.413.06 1.722 1.872 4.153 2.945 6.672 2.945 2.518 0 4.949-1.073 6.671-2.945.374-.406 1.01-.432 1.413-.06.406.374.434 1.01.06 1.413-2.1 2.284-5.068 3.592-8.144 3.592"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="31.9" cy="45" r="17" fill="#d0d0d0"/><path d="m31.9 30c-8.3 0-15 6.7-15 15 0 8.3 6.7 15 15 15s15-6.7 15-15c0-8.3-6.7-15-15-15" fill="#fff"/><circle cx="31.9" cy="25.5" r="13" fill="#d0d0d0"/><path d="m31.9 14.5c-6.1 0-11 4.9-11 11 0 6.1 4.9 11 11 11s11-4.9 11-11c0-6-4.9-11-11-11" fill="#fff"/><circle cx="31.9" cy="26.4" r="2.5" fill="#ff8736"/><g fill="#3e4347"><circle cx="26.5" cy="21.8" r="2"/><circle cx="37.3" cy="21.8" r="2"/></g><g fill="#94989b"><ellipse transform="matrix(.4226-.9063.9063.4226 7.7092 41.1541)" cx="36.2" cy="14.5" rx="2.6" ry="10.1"/><ellipse transform="matrix(.4226-.9063.9063.4226 18.1612 39.7774)" cx="40.3" cy="5.6" rx="1.9" ry="7.6"/></g><path d="m39.5 7.4c-3.5-1.7-6.1-3.7-6.1-4.7l-2.3 9.2c-.3.7 1.7 2.4 4.5 3.7s5.4 1.8 5.7 1.1l5.7-7.7c-.7.7-4 0-7.5-1.6" fill="#3e4347"/><g fill="#89664c"><path d="m62 33.4l-5.8-1.7c1-1.1 2-2.1 3-3.2.3-.4.4-.9 0-1.3-.3-.3-1-.4-1.3 0-1.4 1.5-2.7 2.9-4.1 4.4v-8.4h-1.8v10.4c-1.7 1.8-3.4 3.6-5.1 5.4-.3.4-.4.9 0 1.3.3.3 1 .4 1.3 0 1.9-2 3.8-4 5.6-6 .3-.3.6-.7.9-1l6.7 1.9.6-1.8"/><path d="m12 33.5v-10.4h-1.8v8.4c-1.4-1.5-2.7-2.9-4.1-4.4-.3-.4-1-.3-1.3 0-.4.4-.3.9 0 1.3 1 1.1 2 2.1 3 3.2l-5.8 1.8.5 1.8 6.7-1.9c.4.4.8.8 1.2 1.3 1.8 1.9 3.6 3.8 5.4 5.7.3.4 1 .3 1.3 0 .4-.4.3-.9 0-1.3-1.7-1.9-3.4-3.7-5.1-5.5"/></g><g fill="#3e4347"><path d="m30.3 46.3l-1.1-3.2 2.8-2 2.7 2-1 3.2z"/><path d="m30.3 56.1l-1.1-3.2 2.8-2 2.7 2-1 3.2z"/><path d="m31.9 34c-3.1 0-6-1.3-8.1-3.6-.4-.4-.3-1 .1-1.4.4-.4 1-.3 1.4.1 1.7 1.9 4.2 2.9 6.7 2.9 2.5 0 4.9-1.1 6.7-2.9.4-.4 1-.4 1.4-.1.4.4.4 1 .1 1.4-2.2 2.2-5.2 3.6-8.3 3.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26c5.svg b/build/js/jsxc/lib/emojione/assets/svg/26c5.svg
index 816d13f..ea9730c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26c5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26c5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m14.655 44.44l4.802-4.92c-1.707-.369-3.297-1.045-4.717-1.961l-.085 6.881"/><path d="m30.346 6.562l-4.801 4.919c1.707.37 3.297 1.045 4.717 1.962l.084-6.881"/><path d="m3.561 33.34l6.882-.084c-.918-1.421-1.593-3.01-1.962-4.717l-4.92 4.801"/><path d="m41.44 17.655l-6.881.084c.916 1.421 1.592 3.01 1.961 4.718l4.92-4.802"/><path d="m3.561 17.654l4.921 4.802c.369-1.707 1.044-3.296 1.961-4.718l-6.882-.084"/><path d="m41.44 33.34l-4.92-4.801c-.369 1.706-1.045 3.296-1.961 4.718l6.881.083"/><path d="m14.656 6.561l.084 6.881c1.421-.917 3.01-1.592 4.717-1.961l-4.801-4.92"/><path d="m30.346 44.44l-.084-6.881c-1.422.916-3.01 1.592-4.717 1.961l4.801 4.92"/><path d="m10.715 33.674l-2.711 6.321 6.322-2.709c-1.408-.978-2.633-2.203-3.611-3.612"/><path d="m34.29 17.327l2.709-6.322-6.32 2.709c1.408.979 2.633 2.203 3.611 3.613"/><path d="m8.391 22.943l-6.391 2.556 6.391 2.557c-.148-.831-.24-1.682-.24-2.556-.001-.873.091-1.725.24-2.557"/><path d="m36.609 28.06l6.391-2.557-6.391-2.557c.15.832.24 1.684.24 2.557.001.874-.089 1.726-.24 2.557"/><path d="m14.327 13.713l-6.321-2.709 2.709 6.322c.978-1.409 2.203-2.634 3.612-3.613"/><path d="m30.674 37.29l6.322 2.709-2.709-6.321c-.98 1.409-2.203 2.634-3.613 3.612"/><path d="m25.06 11.391l-2.557-6.391-2.555 6.391c.83-.149 1.682-.24 2.555-.24.875-.001 1.727.09 2.557.24"/><path d="m19.945 39.609l2.555 6.391 2.557-6.391c-.83.149-1.682.24-2.557.24-.873.001-1.725-.09-2.555-.24"/><circle cx="22.501" cy="25.5" r="12.983"/></g><path fill="#fff" d="m17.195 57.1c-.996 0-1.981-.163-2.93-.485-3.826-1.29-6.398-4.923-6.398-9.04 0-2.748 1.166-5.361 3.199-7.173.525-.47 1.096-.874 1.705-1.21l-.03-.002.619-2.203c1.545-5.5 6.534-9.341 12.133-9.341.558 0 1.13.046 1.803.145.515.075 1.021.183 1.516.318l.247-.456c2.263-4.161 6.557-6.746 11.208-6.746 7.06 0 12.81 5.868 12.81 13.08 0 .353-.022.695-.049 1.04l-.021.256c.545.212 1.076.47 1.59.773 3.415 2.01 5.537 5.752 5.537 9.764 0 5.284-3.521 9.8-8.563 10.981-.823.195-1.658.295-2.478.295h-31.898"/><path fill="#75d6ff" d="m40.27 22.81c6.04 0 10.942 5 10.942 11.177 0 .301-.02.593-.043.886-2.529.197-4.828 1.228-6.635 2.827 1.345-.788 2.898-1.246 4.561-1.246.615 0 1.215.063 1.796.182.993.201 1.925.569 2.774 1.069 2.749 1.619 4.604 4.642 4.604 8.115 0 4.447-3.04 8.17-7.114 9.125-.662.157-1.35.247-2.06.247h-31.897-.001c-.817 0-1.603-.139-2.339-.389-2.974-1-5.122-3.86-5.122-7.23 0-2.293.994-4.343 2.561-5.738.71-.635 1.536-1.129 2.444-1.453.77-.273 1.594-.432 2.457-.432 2.405 0 4.539 1.168 5.904 2.974h.066c-1.584-2.978-4.545-5.077-8.01-5.414 1.289-4.591 5.427-7.96 10.338-7.96.524 0 1.034.052 1.538.126.997.146 1.949.426 2.838.83 3.311 1.509 5.729 4.669 6.266 8.454 0-.021.002-.045.002-.064 0-4.313-2.166-8.106-5.445-10.319 1.868-3.436 5.454-5.766 9.576-5.766m0-3.81c-5.03 0-9.703 2.642-12.389 6.951-.104-.017-.208-.032-.312-.049-.77-.111-1.426-.163-2.073-.163-6.427 0-12.154 4.407-13.927 10.719l-.423 1.503c-.458.301-.896.638-1.31 1.01-2.434 2.17-3.833 5.306-3.833 8.604 0 4.939 3.088 9.298 7.685 10.848 1.13.385 2.313.58 3.51.58h31.897c.962 0 1.939-.115 2.906-.345 5.885-1.38 10-6.659 10-12.836 0-4.691-2.48-9.06-6.473-11.415-.193-.113-.388-.222-.585-.324.001-.031.001-.062.001-.094 0-8.262-6.584-14.986-14.676-14.986z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffce31"><path d="m14.7 44.4l4.8-4.9c-1.7-.4-3.3-1-4.7-2l-.1 6.9"/><path d="m30.3 6.6l-4.8 4.9c1.7.4 3.3 1 4.7 2l.1-6.9"/><path d="m3.6 33.3l6.9-.1c-.9-1.4-1.6-3-2-4.7l-4.9 4.8"/><path d="m41.4 17.7l-6.9.1c.9 1.4 1.6 3 2 4.7l4.9-4.8"/><path d="m3.6 17.7l4.9 4.8c.4-1.7 1-3.3 2-4.7l-6.9-.1"/><path d="m41.4 33.3l-4.9-4.8c-.4 1.7-1 3.3-2 4.7l6.9.1"/><path d="m14.7 6.6l.1 6.9c1.4-.9 3-1.6 4.7-2l-4.8-4.9"/><path d="m30.3 44.4l-.1-6.9c-1.4.9-3 1.6-4.7 2l4.8 4.9"/><path d="m10.7 33.7l-2.7 6.3 6.3-2.7c-1.4-1-2.6-2.2-3.6-3.6"/><path d="m34.3 17.3l2.7-6.3-6.3 2.7c1.4 1 2.6 2.2 3.6 3.6"/><path d="m8.4 22.9l-6.4 2.6 6.4 2.6c-.1-.8-.2-1.7-.2-2.6-.1-.9 0-1.7.2-2.6"/><path d="m36.6 28.1l6.4-2.6-6.4-2.6c.2.8.2 1.7.2 2.6 0 .9 0 1.7-.2 2.6"/><path d="m14.3 13.7l-6.3-2.7 2.7 6.3c1-1.4 2.2-2.6 3.6-3.6"/><path d="m30.7 37.3l6.3 2.7-2.7-6.3c-1 1.4-2.2 2.6-3.6 3.6"/><path d="m25.1 11.4l-2.6-6.4-2.6 6.4c.8-.1 1.7-.2 2.6-.2.9-.1 1.7 0 2.6.2"/><path d="m19.9 39.6l2.6 6.4 2.6-6.4c-.8.1-1.7.2-2.6.2-.9 0-1.7 0-2.6-.2"/><circle cx="22.5" cy="25.5" r="13"/></g><path d="m17.2 57.1c-1 0-2-.2-2.9-.5-3.8-1.3-6.4-4.9-6.4-9 0-2.7 1.2-5.4 3.2-7.2.5-.5 1.1-.9 1.7-1.2l.6-2.2c1.5-5.5 6.5-9.3 12.1-9.3.6 0 1.1 0 1.8.1.5.1 1 .2 1.5.3l.2-.5c2.3-4.2 6.6-6.7 11.2-6.7 7.1 0 12.8 5.9 12.8 13.1 0 .4 0 .7 0 1v.3c.5.2 1.1.5 1.6.8 3.4 2 5.5 5.8 5.5 9.8 0 5.3-3.5 9.8-8.6 11-.8.2-1.7.3-2.5.3h-31.8z" fill="#fff"/><path d="m40.3 22.8c6 0 10.9 5 10.9 11.2 0 .3 0 .6 0 .9-2.5.2-4.8 1.2-6.6 2.8 1.3-.8 2.9-1.2 4.6-1.2.6 0 1.2.1 1.8.2 1 .2 1.9.6 2.8 1.1 2.7 1.6 4.6 4.6 4.6 8.1 0 4.4-3 8.2-7.1 9.1-.7.2-1.3.2-2.1.2h-32c-.8 0-1.6-.1-2.3-.4-3-1-5.1-3.9-5.1-7.2 0-2.3 1-4.3 2.6-5.7.7-.6 1.5-1.1 2.4-1.5.8-.3 1.6-.4 2.5-.4 2.4 0 4.5 1.2 5.9 3h.1c-1.6-3-4.5-5.1-8-5.4 1.3-4.6 5.4-8 10.3-8 .5 0 1 .1 1.5.1 1 .1 1.9.4 2.8.8 3.3 1.5 5.7 4.7 6.3 8.5 0 0 0 0 0-.1 0-4.3-2.2-8.1-5.4-10.3 1.8-3.5 5.3-5.8 9.5-5.8m0-3.8c-5 0-9.7 2.6-12.4 7-.1 0-.2 0-.3 0-.8-.1-1.4-.2-2.1-.2-6.4 0-12.2 4.4-13.9 10.7l-.5 1.5c-.5.3-.9.6-1.3 1-2.4 2.1-3.8 5.3-3.8 8.6 0 4.9 3.1 9.3 7.7 10.8 1.1.4 2.3.6 3.5.6h31.9c1 0 1.9-.1 2.9-.3 5.9-1.4 10-6.7 10-12.8 0-4.7-2.5-9.1-6.5-11.4-.2-.1-.4-.2-.6-.3 0 0 0-.1 0-.1 0-8.4-6.5-15.1-14.6-15.1z" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26c8.svg b/build/js/jsxc/lib/emojione/assets/svg/26c8.svg
index 9385775..03409bb 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26c8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26c8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#42ade2"><path d="m10.752 42.903c-.535 1.486-.081 3.02 1.018 3.422 1.099.404 2.425-.475 2.96-1.959.631-1.75.675-4.146.246-6.924-2.064 1.823-3.593 3.711-4.224 5.461"/><path d="m13.204 57.41c.631-1.75.674-4.146.245-6.921-2.064 1.819-3.593 3.711-4.224 5.461-.536 1.484-.08 3.02 1.019 3.421 1.098.405 2.424-.474 2.96-1.961"/><path d="m51.45 37.442c-2.065 1.821-3.594 3.711-4.225 5.461-.536 1.485-.08 3.02 1.018 3.422 1.1.404 2.426-.475 2.961-1.959.631-1.75.675-4.146.246-6.924"/><path d="m38.24 55.944c-.536 1.484-.082 3.02 1.018 3.422s2.425-.475 2.961-1.961c.631-1.75.674-4.146.245-6.922-2.065 1.82-3.593 3.711-4.224 5.461"/><path d="m46.862 55.944c-.536 1.484-.082 3.02 1.018 3.422s2.425-.475 2.961-1.961c.631-1.75.674-4.146.245-6.922-2.065 1.82-3.593 3.711-4.224 5.461"/><path d="m18.573 55.944c-.535 1.485-.08 3.02 1.019 3.422s2.425-.475 2.961-1.959c.631-1.752.673-4.148.245-6.924-2.065 1.82-3.594 3.711-4.225 5.461"/></g><path fill="#ffce31" d="m24.527 31.937l-4.93 16.11h12.543l-4.254 13.95 16.514-20.242h-11.874l2.912-9.821z"/><path fill="#fff" d="m18.2 32.477c-.818 0-1.628-.131-2.406-.389-3.144-1.031-5.257-3.938-5.257-7.23 0-2.198.958-4.288 2.629-5.738.431-.375.899-.699 1.4-.968l-.024-.001.508-1.763c1.269-4.4 5.367-7.473 9.967-7.473.457 0 .928.036 1.48.115.423.06.839.146 1.245.255l.203-.365c1.858-3.329 5.386-5.396 9.206-5.396 5.803 0 10.522 4.694 10.522 10.466 0 .281-.019.557-.04.832l-.018.205c.448.169.885.375 1.306.618 2.806 1.608 4.549 4.602 4.549 7.811 0 4.228-2.893 7.84-7.03 8.785-.676.156-1.362.236-2.035.236h-26.2"/><path fill="#b6c1d1" d="m37.15 5.05c4.965 0 8.989 4 8.989 8.941 0 .24-.017.474-.036.709-2.078.157-3.965.981-5.449 2.262 1.104-.631 2.38-.997 3.745-.997.506 0 .998.051 1.476.145.816.162 1.582.455 2.279.855 2.258 1.296 3.782 3.714 3.782 6.492 0 3.559-2.497 6.536-5.844 7.3-.544.127-1.109.198-1.692.198h-26.2-.001c-.672 0-1.316-.11-1.921-.312-2.442-.802-4.207-3.088-4.207-5.784 0-1.834.816-3.474 2.103-4.59.583-.508 1.262-.903 2.01-1.162.633-.219 1.31-.347 2.02-.347 1.976 0 3.729.936 4.85 2.38l.055-.001c-1.301-2.383-3.733-4.063-6.58-4.331 1.059-3.673 4.457-6.369 8.492-6.369.431 0 .85.042 1.264.102.818.117 1.602.341 2.331.664 2.719 1.207 4.705 3.735 5.146 6.764 0-.018.002-.036.002-.053 0-3.449-1.779-6.484-4.474-8.255 1.533-2.748 4.48-4.611 7.864-4.611m0-3.048c-4.135 0-7.97 2.113-10.176 5.561-.085-.013-.171-.025-.257-.039-.631-.089-1.171-.13-1.702-.13-5.279 0-9.984 3.525-11.44 8.575l-.347 1.202c-.377.24-.736.51-1.076.806-2 1.735-3.149 4.245-3.149 6.882 0 3.951 2.537 7.438 6.313 8.679.927.308 1.9.464 2.882.464h26.2c.791 0 1.594-.092 2.388-.275 4.834-1.105 8.216-5.328 8.216-10.27 0-3.753-2.037-7.252-5.317-9.132-.157-.091-.317-.177-.479-.259 0-.025 0-.05 0-.075-.001-6.61-5.409-11.989-12.06-11.989z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#75d6ff"><path d="m10.8 42.9c-.5 1.5-.1 3 1 3.4 1.1.4 2.4-.5 3-2 .6-1.8.7-4.1.2-6.9-2.1 1.9-3.6 3.8-4.2 5.5"/><path d="m13.2 57.4c.6-1.8.7-4.1.2-6.9-2.1 1.8-3.6 3.7-4.2 5.5-.5 1.5-.1 3 1 3.4 1.1.4 2.5-.5 3-2"/><path d="m51.5 37.4c-2.1 1.8-3.6 3.7-4.2 5.5-.5 1.5-.1 3 1 3.4 1.1.4 2.4-.5 3-2 .5-1.7.6-4.1.2-6.9"/><path d="m38.2 55.9c-.5 1.5-.1 3 1 3.4s2.4-.5 3-2c.6-1.8.7-4.1.2-6.9-2 1.9-3.5 3.8-4.2 5.5"/><path d="m46.9 55.9c-.5 1.5-.1 3 1 3.4s2.4-.5 3-2c.6-1.8.7-4.1.2-6.9-2.1 1.9-3.6 3.8-4.2 5.5"/><path d="m18.6 55.9c-.5 1.5-.1 3 1 3.4s2.4-.5 3-2c.6-1.8.7-4.1.2-6.9-2.1 1.9-3.6 3.8-4.2 5.5"/></g><path fill="#ffce31" d="m24.5 31.9l-4.9 16.2h12.5l-4.2 13.9 16.5-20.2h-11.9l2.9-9.9z"/><path d="m18.2 32.5c-.8 0-1.6-.1-2.4-.4-3.1-1-5.3-3.9-5.3-7.2 0-2.2 1-4.3 2.6-5.7.4-.4.9-.7 1.4-1l.5-1.8c1.3-4.4 5.4-7.5 10-7.5.5 0 .9 0 1.5.1.4.1.8.1 1.2.3l.2-.4c1.9-3.3 5.4-5.4 9.2-5.4 5.9 0 10.6 4.7 10.6 10.5 0 .3 0 .6 0 .8v.2c.4.2.9.4 1.3.6 2.8 1.6 4.5 4.6 4.5 7.8 0 4.2-2.9 7.8-7 8.8-.7.2-1.4.2-2 .2h-26.3z" fill="#fff"/><path d="m37.1 5c5 0 9 4 9 8.9 0 .2 0 .5 0 .7-2.1.2-4 1-5.4 2.3 1.1-.6 2.4-1 3.7-1 .5 0 1 .1 1.5.1.8.2 1.6.5 2.3.9 2.3 1.3 3.8 3.7 3.8 6.5 0 3.6-2.5 6.5-5.8 7.3-.7.2-1.2.3-1.8.3h-26.2c-.7 0-1.3-.1-1.9-.3-2.4-.8-4.2-3.1-4.2-5.8 0-1.8.8-3.5 2.1-4.6.6-.5 1.3-.9 2-1.2.6-.2 1.3-.3 2-.3 2 0 3.7.9 4.9 2.4h.1c-1.3-2.4-3.7-4.1-6.6-4.3 1.1-3.7 4.5-6.4 8.5-6.4.4 0 .9 0 1.3.1.8.1 1.6.3 2.3.7 2.7 1.2 4.7 3.7 5.1 6.8 0 0 0 0 0-.1 0-3.4-1.8-6.5-4.5-8.3 1.5-2.8 4.5-4.7 7.8-4.7m0-3c-4.1 0-7.9 2.1-10.1 5.6-.1 0-.2 0-.3 0-.6-.1-1.2-.1-1.7-.1-5.3 0-10 3.5-11.4 8.6l-.3 1.2c-.4.2-.7.5-1.1.8-2 1.7-3.1 4.2-3.1 6.9 0 4 2.5 7.4 6.3 8.7.9.3 1.9.5 2.9.5h26.2c.8 0 1.6-.1 2.4-.3 4.8-1.1 8.2-5.3 8.2-10.3 0-3.8-2-7.3-5.3-9.1-.2-.1-.3-.2-.5-.3 0 0 0-.1 0-.1-.1-6.7-5.5-12.1-12.2-12.1z" fill="#b6c1d1"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26ce.svg b/build/js/jsxc/lib/emojione/assets/svg/26ce.svg
index b4005c7..bacb7e3 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26ce.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26ce.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#c28fef" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m32 54c-9.374 0-17-7.625-17-17v-23h6v23c0 6.06 4.935 11 11 11s11-4.935 11-11v-23h6v23c0 9.375-7.626 17-17 17"/><path d="m56 22c-2.643 4.134-6.084 5.956-8.371 7.249-3.492 1.963-7.873-.194-11.742-2.105-1.168-.572-2.271-1.117-3.309-1.521-10.859-4.233-19.09-.547-24.578 4.892v7.485c3.612-4.834 12.137-10.252 22.55-6.195.803.313 1.796.802 2.848 1.32 3.979 1.965 9.228 4.553 14.503 3.02.847-.244 1.694-.595 2.537-1.071 2.04-1.151 4.01-2.097 5.563-4.546v-8.533z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#c28fef"/><g fill="#fff"><path d="m32 54c-9.4 0-17-7.6-17-17v-23h6v23c0 6.1 4.9 11 11 11s11-4.9 11-11v-23h6v23c0 9.4-7.6 17-17 17"/><path d="m56 22c-2.6 4.1-6.1 6-8.4 7.2-3.5 2-7.9-.2-11.7-2.1-1.2-.6-2.3-1.1-3.3-1.5-10.9-4.2-19.1-.5-24.6 4.9v7.5c3.6-4.8 12.1-10.3 22.5-6.2.8.3 1.8.8 2.8 1.3 4 2 9.2 4.6 14.5 3 .8-.2 1.7-.6 2.5-1.1 2-1.2 4-2.1 5.6-4.5l.1-8.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26cf.svg b/build/js/jsxc/lib/emojione/assets/svg/26cf.svg
index 4fec0e9..3c30f7f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26cf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26cf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill-rule="evenodd"><path fill="#89664c" d="m55.18 61.49c2.308 2.328 8.629-4.01 6.319-6.341l-36.17-36.16-6.331 6.33 36.18 36.17"/><path fill="#ad8366" d="m56.04 60.64c1.646 1.654 6.302-3.02 4.653-4.682l-36.16-36.15-4.669 4.667 36.18 36.17"/><path fill="#89664c" d="m8.31 14.636c-2.329-2.308 4.01-8.626 6.343-6.317l6.184 6.182-6.331 6.329-6.196-6.194"/><path fill="#ad8366" d="m9.166 13.777c-1.655-1.647 3.03-6.302 4.684-4.653l6.183 6.18-4.669 4.668-6.198-6.195"/></g><path fill="#94989b" d="m20.888 20.883c11.197-11.19 24.341-17.356 33.876-16.809-9.03-5.314-25.16-.177-38.01 12.668-12.853 12.846-17.993 28.981-12.676 38-.545-9.533 5.621-22.676 16.813-33.864"/><path fill="#a6aeb2" d="m21.876 21.87c11.197-11.189 23.937-17.76 32.888-17.796-8.195-4.484-23.697 1.289-36.546 14.13-12.853 12.846-18.63 28.346-14.14 36.538.039-8.95 6.609-21.688 17.801-32.877"/><path fill="#5c6368" d="m27.723 14.973c.88.876.878 2.312 0 3.185l-9.563 9.561c-.877.875-2.309.876-3.184.001l-4.784-4.78c-.874-.877-.874-2.311 0-3.187l9.562-9.559c.88-.878 2.313-.878 3.188 0l4.781 4.779"/><path fill="#474d51" d="m26.337 15.867c.789.786.842 2.02.121 2.736l-7.853 7.851c-.72.718-1.95.662-2.735-.121l-4.292-4.289c-.784-.787-.839-2.02-.121-2.738l7.852-7.848c.722-.721 1.953-.667 2.738.121l4.29 4.288"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M55.2,61.5c2.3,2.3,8.6-4,6.3-6.3L25.3,19L19,25.3L55.2,61.5z" fill="#89664c"/><path d="M56,60.6c1.6,1.7,6.3-3,4.7-4.7L24.5,19.8l-4.7,4.7L56,60.6z" fill="#ad8366"/><path d="m8.3 14.6c-2.3-2.3 4-8.6 6.3-6.3l6.2 6.2-6.3 6.3-6.2-6.2" fill="#89664c"/><path d="m9.2 13.8c-1.7-1.6 3-6.3 4.7-4.7l6.2 6.2-4.7 4.7-6.2-6.2" fill="#ad8366"/><path d="m20.9 20.9c11.2-11.2 24.3-17.4 33.9-16.8-9-5.3-25.2-.2-38 12.7-12.9 12.8-18 29-12.7 38-.6-9.6 5.6-22.7 16.8-33.9" fill="#94989b"/><path d="m21.9 21.9c11.2-11.2 23.9-17.8 32.9-17.8-8.2-4.5-23.7 1.3-36.5 14.1-12.9 12.9-18.7 28.4-14.2 36.5 0-8.9 6.6-21.6 17.8-32.8" fill="#a6aeb2"/><path d="m27.7 15c.9.9.9 2.3 0 3.2l-9.6 9.6c-.9.9-2.3.9-3.2 0l-4.8-4.8c-.9-.9-.9-2.3 0-3.2l9.6-9.6c.9-.9 2.3-.9 3.2 0l4.8 4.8" fill="#5c6368"/><path d="m26.3 15.9c.8.8.8 2 .1 2.7l-7.9 7.9c-.7.7-2 .7-2.7-.1l-4.2-4.4c-.8-.8-.8-2-.1-2.7l7.9-7.8c.7-.7 2-.7 2.7.1l4.2 4.3" fill="#474d51"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26d1.svg b/build/js/jsxc/lib/emojione/assets/svg/26d1.svg
index 5b7dd0e..bcdd92d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26d1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26d1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m32 64c-15.439 0-28-12.561-28-28v-4h4v4c0 13.234 10.768 24 24 24 13.234 0 24-10.766 24-24v-4h4v4c0 15.439-12.561 28-28 28"/><path fill="#ed4c5c" d="M32,4C16.537,4,4,16.537,4,32h56C60,16.537,47.465,4,32,4z"/><g fill="#c94747"><path d="m50.05 28h6.955c-1.205-9.633-8.461-17.494-18-20 5.758 3.307 10.05 10.865 11.05 20"/><path d="m25 8c-9.537 2.506-16.795 10.367-18 20h6.955c.994-9.135 5.289-16.693 11.04-20"/></g><g fill="#594640"><path d="m14.727 28c.941-8.994 4.914-16.475 10.273-20-7.309 3.596-12.695 11.05-14 20h3.727"/><path d="m49.27 28c-.941-8.994-4.912-16.475-10.273-20 7.311 3.596 12.695 11.05 14 20h-3.727"/></g><g fill="#ed4c5c"><path d="m58 26h-52l-6 6h64z"/><circle cx="32" cy="5" r="5"/></g><g fill="#fff"><path d="m30 9h4v16h-4z"/><path d="m24 15h16v4h-16z"/></g><g fill="#3e4347"><path d="m4 32h4v4h-4z"/><path d="m56 32h4v4h-4z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 64c-15.4 0-28-12.6-28-28v-4h4v4c0 13.2 10.8 24 24 24 13.2 0 24-10.8 24-24v-4h4v4c0 15.4-12.6 28-28 28" fill="#94989b"/><path d="M32,4C16.5,4,4,16.5,4,32h56C60,16.5,47.5,4,32,4z" fill="#ed4c5c"/><g fill="#c94747"><path d="m50 28h7c-1.2-9.6-8.5-17.5-18-20 5.8 3.3 10.1 10.9 11 20"/><path d="m25 8c-9.5 2.5-16.8 10.4-18 20h7c.9-9.1 5.2-16.7 11-20"/></g><g fill="#594640"><path d="m14.7 28c.9-9 4.9-16.5 10.3-20-7.3 3.6-12.7 11.1-14 20h3.7"/><path d="m49.3 28c-1-9-4.9-16.5-10.3-20 7.3 3.6 12.7 11.1 14 20h-3.7"/></g><g fill="#ed4c5c"><path d="m58 26h-52l-6 6h64z"/><circle cx="32" cy="5" r="5"/></g><g fill="#fff"><path d="m30 9h4v16h-4z"/><path d="m24 15h16v4h-16z"/></g><g fill="#3e4347"><path d="m4 32h4v4h-4z"/><path d="m56 32h4v4h-4z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26d3.svg b/build/js/jsxc/lib/emojione/assets/svg/26d3.svg
index 3bbaf06..a34973b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26d3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26d3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m19.2 64v-5.285c0-2.677-2.123-4.856-4.73-4.856-2.61.004-4.734 2.183-4.735 4.86l-.002 5.279-4.729.002.001-5.281c-.001-5.358 4.245-9.717 9.466-9.715 5.215-.002 9.46 4.356 9.462 9.713v5.281l-4.733.002"/><path d="m23.934 27.14v9.717c0 5.355-4.246 9.714-9.464 9.716-5.221 0-9.467-4.358-9.467-9.718l-.003-9.717c.002-5.355 4.249-9.713 9.466-9.716 5.222 0 9.468 4.358 9.468 9.718m-14.199 9.714c-.001 2.678 2.125 4.859 4.734 4.859 2.607 0 4.729-2.182 4.732-4.859l-.002-9.715c.003-2.678-2.123-4.858-4.732-4.856-2.607 0-4.729 2.178-4.731 4.856v9.715z"/><path d="m23.933 0l-.002 5.281c0 5.358-4.245 9.714-9.465 9.714-5.216.003-9.462-4.355-9.464-9.712v-5.283h4.733l.002 5.283c-.002 2.678 2.122 4.858 4.731 4.856 2.608-.002 4.73-2.18 4.732-4.856l.001-5.281 4.732-.002"/></g><g fill="#94989b"><path d="m16.833 53.86c.003-4.049 0-8.1.001-12.144 0-3.134-4.734-3.134-4.736-.003.003 4.051.003 8.098.002 12.145 0 3.133 4.734 3.136 4.733.002"/><path d="m16.836 22.287c-.003-4.051-.002-8.098 0-12.145 0-3.133-4.735-3.135-4.735-.004 0 4.049 0 8.1 0 12.144.002 3.135 4.735 3.135 4.735.005"/></g><g fill="#d0d0d0"><path d="m59 43.01v9.786c0 5.392-4.246 9.781-9.465 9.783-5.221 0-9.467-4.39-9.467-9.785l-.002-9.787c.002-5.393 4.248-9.782 9.465-9.784 5.223 0 9.469 4.389 9.469 9.787m-14.198 9.784c-.002 2.696 2.124 4.893 4.733 4.893 2.607 0 4.729-2.196 4.73-4.893l-.002-9.784c.005-2.697-2.121-4.894-4.73-4.891-2.607 0-4.729 2.193-4.731 4.891v9.784"/><path d="m58.998 11.208l-.003 9.784c0 5.397-4.243 9.784-9.464 9.784-5.217.002-9.461-4.387-9.463-9.782v-9.786c0-5.396 4.246-9.786 9.465-9.784 5.221.002 9.469 4.391 9.465 9.784m-14.194 9.786c-.002 2.697 2.122 4.893 4.731 4.891 2.607-.002 4.729-2.196 4.73-4.891l.003-9.783c-.005-2.702-2.124-4.894-4.733-4.894-2.613-.002-4.735 2.191-4.733 4.891l.002 9.786"/></g><g fill="#94989b"><path d="m51.902 38.12c-.005-4.081-.002-8.156 0-12.232 0-3.155-4.735-3.157-4.735-.004 0 4.078 0 8.158 0 12.231.002 3.158 4.735 3.158 4.735.005"/><path d="m51.9 64c0 0 0-2.575 0-6.647 0-3.155-4.733-3.155-4.735-.004.004 4.08.002 6.649.002 6.649l4.733.002"/><path d="m47.17 0c0 0 0 2.575-.002 6.648 0 3.155 4.732 3.155 4.735.003-.003-4.08-.003-6.649-.003-6.649l-4.73-.002"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d0d0d0"><path d="m19.2 64v-5.3c0-2.7-2.1-4.9-4.7-4.9-2.6 0-4.7 2.2-4.7 4.9v5.3h-4.8v-5.3c0-5.4 4.2-9.7 9.5-9.7 5.2 0 9.5 4.4 9.5 9.7v5.3h-4.8"/><path d="m23.9 27.1v9.7c0 5.4-4.2 9.7-9.5 9.7-5.2 0-9.5-4.4-9.5-9.7v-9.7c0-5.4 4.2-9.7 9.5-9.7 5.3 0 9.5 4.4 9.5 9.7m-14.2 9.8c0 2.7 2.1 4.9 4.7 4.9 2.6 0 4.7-2.2 4.7-4.9v-9.7c0-2.7-2.1-4.9-4.7-4.9-2.6 0-4.7 2.2-4.7 4.9v9.7"/><path d="m23.9 0v5.3c0 5.4-4.2 9.7-9.5 9.7-5.2 0-9.4-4.4-9.4-9.7v-5.3h4.7v5.3c0 2.7 2.1 4.9 4.7 4.9 2.6 0 4.7-2.2 4.7-4.9v-5.3h4.8"/></g><g fill="#94989b"><path d="m16.8 53.9c0-4 0-8.1 0-12.1 0-3.1-4.7-3.1-4.7 0 0 4.1 0 8.1 0 12.1 0 3.1 4.7 3.1 4.7 0"/><path d="m16.8 22.3c0-4.1 0-8.1 0-12.1 0-3.1-4.7-3.1-4.7 0 0 4 0 8.1 0 12.1 0 3.1 4.7 3.1 4.7 0"/></g><g fill="#d0d0d0"><path d="m59 43v9.8c0 5.4-4.2 9.8-9.5 9.8-5.2 0-9.5-4.4-9.5-9.8v-9.8c0-5.4 4.2-9.8 9.5-9.8 5.3 0 9.5 4.4 9.5 9.8m-14.2 9.8c0 2.7 2.1 4.9 4.7 4.9 2.6 0 4.7-2.2 4.7-4.9v-9.8c0-2.7-2.1-4.9-4.7-4.9-2.6 0-4.7 2.2-4.7 4.9v9.8"/><path d="m59 11.2v9.8c0 5.4-4.2 9.8-9.5 9.8-5.2 0-9.5-4.4-9.5-9.8v-9.8c0-5.4 4.2-9.8 9.5-9.8 5.3 0 9.5 4.4 9.5 9.8m-14.2 9.8c0 2.7 2.1 4.9 4.7 4.9 2.6 0 4.7-2.2 4.7-4.9v-9.8c0-2.7-2.1-4.9-4.7-4.9-2.6 0-4.7 2.2-4.7 4.9v9.8"/></g><g fill="#94989b"><path d="m51.9 38.1c0-4.1 0-8.2 0-12.2 0-3.2-4.7-3.2-4.7 0 0 4.1 0 8.2 0 12.2 0 3.2 4.7 3.2 4.7 0"/><path d="m51.9 64c0 0 0-2.6 0-6.6 0-3.2-4.7-3.2-4.7 0 0 4.1 0 6.6 0 6.6h4.7"/><path d="m47.2 0c0 0 0 2.6 0 6.6 0 3.2 4.7 3.2 4.7 0 0-4.1 0-6.6 0-6.6h-4.7"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26d4.svg b/build/js/jsxc/lib/emojione/assets/svg/26d4.svg
index 7828b86..6154529 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26d4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26d4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><path fill="#fff" d="m9 26h46v12h-46z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><path fill="#fff" d="m9 26h46v12h-46z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26e9.svg b/build/js/jsxc/lib/emojione/assets/svg/26e9.svg
index 3333f94..570b46d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26e9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26e9.svg
@@ -1,4 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b71c3a" d="m29 9h6v12h-6z"/><path fill="#ed4c5c" d="m9 9h8v44h-8z"/><g fill="#ff6473"><path d="m10 14h5v4h-5z"/><path d="m10.03 22h5v28h-5z"/></g><path fill="#b71c3a" d="m6.906 9h12v4h-12z"/><path fill="#d82b45" d="m7.531 8h10v4h-10z"/><path fill="#b71c3a" d="M21,16c0,0-2.831,2.01-8,2.01S5,16,5,16l0.245,4.091c0,0,2.231,1.457,6.489,1.909h2.533
- c4.258-0.452,6.489-1.909,6.489-1.909L21,16z"/><path fill="#474d51" d="m8 51h10v3h-10z"/><path fill="#5c6368" d="m9.03 52h7v2h-7z"/><path fill="#474d51" d="m7 54h12v10h-12z"/><path fill="#5c6368" d="m8 55h9v9h-9z"/><path fill="#ed4c5c" d="m47 9h8v44h-8z"/><g fill="#ff6473"><path d="m48 14h5v4h-5z"/><path d="m48.03 22h5v28h-5z"/></g><path fill="#b71c3a" d="m44.906 9h12v4h-12z"/><path fill="#d82b45" d="m45.531 8h10v4h-10z"/><path fill="#b71c3a" d="M59,16c0,0-2.831,2.01-8,2.01S43,16,43,16l0.244,4.091c0,0,2.231,1.457,6.489,1.909h2.533
- c4.258-0.452,6.489-1.909,6.489-1.909L59,16z"/><path fill="#474d51" d="m46 51h10v3h-10z"/><path fill="#5c6368" d="m47.03 52h7v2h-7z"/><path fill="#474d51" d="m45 54h12v10h-12z"/><path fill="#5c6368" d="m46 55h9v9h-9z"/><g fill="#d82b45"><path d="m4 20h56v4h-56z"/><path d="m32 7c-19.331 0-30-2-30-2l.789 4c0 0 10.08 2 29.21 2 19.13 0 29.21-2 29.21-2l.789-4c0 0-10.669 2-30 2"/></g><path fill="#474d51" d="M32,2.667C11.38,2.667,0,0,0,0l0.841,5.333C0.841,5.333,11.589,8,32,8c20.41,0,31.159-2.667,31.159-2.667
- L64,0C64,0,52.62,2.667,32,2.667z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b71c3a" d="m29 9h6v12h-6z"/><path fill="#ed4c5c" d="m9 9h8v44h-8z"/><g fill="#ff6473"><path d="m10 14h5v4h-5z"/><path d="m10 22h5v28h-5z"/></g><path fill="#b71c3a" d="m6.9 9h12v4h-12z"/><path fill="#d82b45" d="m7.5 8h10v4h-10z"/><path d="m21 16c0 0-2.8 2-8 2s-8-2-8-2l.2 4.1c0 0 2.2 1.5 6.5 1.9h2.5c4.3-.5 6.5-1.9 6.5-1.9l.3-4.1" fill="#b71c3a"/><path fill="#474d51" d="m8 51h10v3h-10z"/><path fill="#5c6368" d="m9 52h7v2h-7z"/><path fill="#474d51" d="m7 54h12v10h-12z"/><path fill="#5c6368" d="m8 55h9v9h-9z"/><path fill="#ed4c5c" d="m47 9h8v44h-8z"/><g fill="#ff6473"><path d="m48 14h5v4h-5z"/><path d="m48 22h5v28h-5z"/></g><path fill="#b71c3a" d="m44.9 9h12v4h-12z"/><path fill="#d82b45" d="m45.5 8h10v4h-10z"/><path d="m59 16c0 0-2.8 2-8 2s-8-2-8-2l.2 4.1c0 0 2.2 1.5 6.5 1.9h2.5c4.3-.5 6.5-1.9 6.5-1.9l.3-4.1" fill="#b71c3a"/><path fill="#474d51" d="m46 51h10v3h-10z"/><path fill="#5c6368" d="m47 52h7v2h-7z"/><path fill="#474d51" d="m45 54h12v10h-12z"/><path fill="#5c6368" d="m46 55h9v9h-9z"/><g fill="#d82b45"><path d="m4 20h56v4h-56z"/><path d="m32 7c-19.3 0-30-2-30-2l.8 4c0 0 10.1 2 29.2 2s29.2-2 29.2-2l.8-4c0 0-10.7 2-30 2"/></g><path d="M32,2.7C11.4,2.7,0,0,0,0l0.8,5.3C0.8,5.3,11.6,8,32,8c20.4,0,31.2-2.7,31.2-2.7L64,0C64,0,52.6,2.7,32,2.7z" fill="#474d51"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26ea.svg b/build/js/jsxc/lib/emojione/assets/svg/26ea.svg
index f81d141..6d8236c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26ea.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26ea.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#62727a" d="m63 62h-62c-.549 0-1 .45-1 1 0 .55.451 1 1 1h62c.551 0 1-.45 1-1 0-.55-.449-1-1-1"/><path fill="#d0d0d0" d="m60 62h-56v-18l28-12 28 12z"/><g fill="#89664c"><path d="m21.373 34.14l-20.2 8.251c-.967.395-1.43 1.497-1.029 2.45.4.952 1.518 1.408 2.484 1.014l20.2-8.251c.965-.395 1.428-1.497 1.027-2.45-.398-.953-1.517-1.41-2.482-1.014"/><path d="m42.629 34.14l20.2 8.251c.965.395 1.428 1.497 1.027 2.45-.398.952-1.518 1.408-2.482 1.014l-20.2-8.251c-.967-.395-1.43-1.497-1.029-2.45.4-.953 1.517-1.41 2.484-1.014"/></g><path fill="#e8e8e8" d="m44 62h-24v-36l12-5 12 5z"/><path fill="#ffce31" d="m38.666 5h-5v-5h-3.332v5h-5v3.333h5v11.667h3.332v-11.667h5z"/><path fill="#e8e8e8" d="m20 63h24v1h-24z"/><path fill="#d0d0d0" d="m20 62h24v1h-24z"/><path fill="#89664c" d="m47.828 25.42l-15.828-6.42-15.828 6.42c-.965.391-1.428 1.486-1.027 2.432.398.946 1.518 1.399 2.484 1.01l14.371-5.831 14.373 5.83c.965.392 2.084-.062 2.482-1.01.401-.945-.062-2.04-1.027-2.431"/><path fill="#42ade2" d="m30.676 29.822c-.084-.567-.609-.926-1.168-.796 0 0-.137.032-.701.265-.563.234-.682.309-.682.309-.486.303-.605.928-.264 1.389l3.119 4.21c.342.461.553.374.467-.193l-.771-5.184"/><path fill="#c28fef" d="m25.992 32.862c-.461-.341-1.063-.208-1.336.296l-.566 1.365c-.162.55.168 1.068.736 1.153l5.18.771c.566.085.654-.125.193-.467l-4.207-3.118"/><path fill="#ed4c5c" d="m24.822 38.32c-.566.084-.926.609-.795 1.168 0 0 .031.137.264.701.234.563.309.682.309.682.303.486.928.605 1.389.264l4.211-3.119c.461-.341.373-.552-.193-.467l-5.185.771"/><path fill="#ff8736" d="m27.863 43.01c-.342.462-.209 1.063.295 1.337l1.365.565c.551.162 1.068-.168 1.154-.736l.77-5.18c.086-.566-.125-.654-.467-.193l-3.117 4.207"/><path fill="#42ade2" d="m33.32 44.18c.084.566.609.925 1.17.795 0 0 .135-.031.699-.264.564-.234.682-.309.682-.309.488-.303.605-.928.264-1.389l-3.119-4.211c-.34-.461-.551-.373-.467.194l.771 5.184"/><path fill="#c28fef" d="m38.01 41.14c.463.342 1.063.209 1.338-.295l.564-1.365c.164-.551-.168-1.068-.736-1.153l-5.178-.771c-.568-.085-.656.125-.193.467l4.205 3.117"/><path fill="#ed4c5c" d="m39.18 35.676c.566-.084.926-.609.797-1.169 0 0-.033-.136-.266-.7-.234-.563-.309-.682-.309-.682-.303-.487-.928-.605-1.389-.264l-4.209 3.119c-.463.341-.375.552.193.467l5.183-.771"/><path fill="#ff8736" d="m36.14 30.992c.34-.462.207-1.063-.297-1.337l-1.365-.565c-.549-.163-1.068.168-1.152.736l-.771 5.179c-.084.567.125.655.467.193l3.118-4.206"/><path fill="#d3976e" d="m32 47c-3.314 0-6 2.687-6 6v9h12v-9c0-3.313-2.686-6-6-6"/><path fill="#d6eef0" d="m28 56h8v-3c0-2.205-1.795-4-4-4s-4 1.795-4 4v3"/><g fill="#62727a"><path d="m11.174 49.51c-.055-.354-.381-.578-.731-.497 0 0-.085.02-.437.165-.354.146-.428.192-.428.192-.305.19-.378.58-.164.868l1.949 2.632c.213.288.346.234.293-.122l-.482-3.238"/><path d="m8.245 51.41c-.288-.215-.664-.131-.835.186l-.354.852c-.102.345.105.668.459.721l3.238.482c.355.054.41-.078.121-.292l-2.629-1.949"/><path d="m7.516 54.827c-.355.054-.58.381-.498.731 0 0 .02.084.165.436.146.354.192.428.192.428.189.305.58.379.869.164l2.631-1.949c.289-.213.234-.345-.121-.292l-3.238.482"/><path d="m9.415 57.756c-.214.288-.132.664.185.835l.853.353c.345.102.668-.105.722-.459l.482-3.237c.053-.356-.079-.41-.293-.122l-1.949 2.63"/><path d="m12.828 58.48c.054.354.381.579.73.497 0 0 .085-.02.438-.165.352-.146.426-.192.426-.192.305-.189.379-.58.164-.868l-1.947-2.632c-.215-.288-.346-.233-.293.122l.482 3.238"/><path d="m15.756 56.59c.289.214.664.131.836-.186l.354-.852c.102-.346-.107-.668-.461-.722l-3.236-.482c-.355-.053-.41.079-.121.292l2.628 1.95"/><path d="m16.486 53.17c.355-.053.578-.381.498-.73 0 0-.02-.085-.166-.437-.146-.353-.191-.427-.191-.427-.189-.305-.58-.379-.869-.164l-2.631 1.948c-.289.214-.234.346.121.293l3.238-.483"/><path d="m14.586 50.24c.215-.288.131-.664-.186-.835l-.852-.354c-.345-.102-.668.106-.721.46l-.482 3.236c-.053.356.078.41.293.122l1.948-2.629"/><path d="m51.17 49.51c-.055-.354-.381-.578-.732-.497 0 0-.084.02-.436.165-.354.146-.428.192-.428.192-.305.19-.379.58-.164.868l1.949 2.632c.213.288.346.234.293-.122l-.482-3.238"/><path d="m48.24 51.41c-.287-.215-.664-.131-.834.186l-.354.852c-.102.345.105.668.459.721l3.238.482c.355.054.41-.078.121-.292l-2.63-1.949"/><path d="m47.52 54.827c-.355.054-.58.381-.498.731 0 0 .02.084.164.436.146.354.193.428.193.428.189.305.58.379.869.164l2.631-1.949c.289-.213.234-.345-.121-.292l-3.238.482"/><path d="m49.41 57.756c-.213.288-.131.664.186.835l.852.353c.346.102.668-.105.723-.459l.482-3.237c.053-.356-.08-.41-.293-.122l-1.95 2.63"/><path d="m52.828 58.48c.053.354.381.579.73.497 0 0 .084-.02.438-.165.352-.146.426-.192.426-.192.305-.189.379-.58.164-.868l-1.947-2.632c-.215-.288-.346-.233-.293.122l.482 3.238"/><path d="m55.756 56.59c.289.214.664.131.836-.186l.354-.852c.102-.346-.107-.668-.461-.722l-3.236-.482c-.355-.053-.41.079-.121.292l2.628 1.95"/><path d="m56.49 53.17c.355-.053.578-.381.498-.73 0 0-.02-.085-.166-.437-.146-.353-.191-.427-.191-.427-.189-.305-.58-.379-.869-.164l-2.631 1.948c-.289.214-.234.346.121.293l3.238-.483"/><path d="m54.59 50.24c.215-.288.131-.664-.186-.835l-.852-.354c-.346-.102-.668.106-.721.46l-.482 3.236c-.053.356.078.41.293.122l1.948-2.629"/></g><g fill="#d3976e"><path d="m31 48h2v14h-2z"/><path d="m26 55h12v7h-12z"/></g><g fill="#89664c"><path d="m28 57.33h3v3h-3z"/><path d="m33 57.33h3v3h-3z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m63 62h-62c-.5 0-1 .5-1 1 0 .5.5 1 1 1h62c.6 0 1-.5 1-1 0-.5-.4-1-1-1" fill="#62727a"/><path fill="#d0d0d0" d="m60 62h-56v-18l28-12 28 12z"/><g fill="#89664c"><path d="m21.4 34.1l-20.2 8.3c-1 .4-1.4 1.5-1 2.5.4 1 1.5 1.4 2.5 1l20.2-8.3c1-.4 1.4-1.5 1-2.5-.4-.9-1.6-1.4-2.5-1"/><path d="m42.6 34.1l20.2 8.3c1 .4 1.4 1.5 1 2.5-.4 1-1.5 1.4-2.5 1l-20.2-8.3c-1-.4-1.4-1.5-1-2.5.4-.9 1.6-1.4 2.5-1"/></g><path fill="#e8e8e8" d="m44 62h-24v-36l12-5 12 5z"/><path fill="#ffce31" d="m38.7 5h-5v-5h-3.4v5h-5v3.3h5v11.7h3.4v-11.7h5z"/><path fill="#e8e8e8" d="m20 63h24v1h-24z"/><path fill="#d0d0d0" d="m20 62h24v1h-24z"/><path d="m47.8 25.4l-15.8-6.4-15.8 6.4c-1 .4-1.4 1.5-1 2.4.4.9 1.5 1.4 2.5 1l14.3-5.8 14.4 5.8c1 .4 2.1-.1 2.5-1 .4-.9-.1-2-1.1-2.4" fill="#89664c"/><path d="m30.7 29.8c-.1-.6-.6-.9-1.2-.8 0 0-.1 0-.7.3-.6.2-.7.3-.7.3-.5.3-.6.9-.3 1.4l3.1 4.2c.3.5.6.4.5-.2l-.7-5.2" fill="#42ade2"/><path d="m26 32.9c-.5-.3-1.1-.2-1.3.3l-.6 1.4c-.2.5.2 1.1.7 1.2l5.2.8c.6.1.7-.1.2-.5l-4.2-3.2" fill="#c28fef"/><path d="m24.8 38.3c-.6.1-.9.6-.8 1.2 0 0 0 .1.3.7.2.6.3.7.3.7.3.5.9.6 1.4.3l4.2-3.1c.5-.3.4-.6-.2-.5l-5.2.7" fill="#ed4c5c"/><path d="m27.9 43c-.3.5-.2 1.1.3 1.3l1.4.6c.6.2 1.1-.2 1.2-.7l.8-5.2c.1-.6-.1-.7-.5-.2l-3.2 4.2" fill="#ff8736"/><path d="m33.3 44.2c.1.6.6.9 1.2.8 0 0 .1 0 .7-.3.6-.2.7-.3.7-.3.5-.3.6-.9.3-1.4l-3.2-4.2c-.3-.5-.6-.4-.5.2l.8 5.2" fill="#42ade2"/><path d="m38 41.1c.5.3 1.1.2 1.3-.3l.6-1.4c.2-.6-.2-1.1-.7-1.2l-5.2-.6c-.6-.1-.7.1-.2.5l4.2 3" fill="#c28fef"/><path d="m39.2 35.7c.6-.1.9-.6.8-1.2 0 0 0-.1-.3-.7-.2-.6-.3-.7-.3-.7-.3-.5-.9-.6-1.4-.3l-4.2 3.2c-.5.3-.4.6.2.5l5.2-.8" fill="#ed4c5c"/><path d="m36.1 31c.3-.5.2-1.1-.3-1.3l-1.4-.6c-.5-.2-1.1.2-1.2.7l-.6 5.2c-.1.6.1.7.5.2l3-4.2" fill="#ff8736"/><path d="m32 47c-3.3 0-6 2.7-6 6v9h12v-9c0-3.3-2.7-6-6-6" fill="#d3976e"/><path d="m28 56h8v-3c0-2.2-1.8-4-4-4s-4 1.8-4 4v3" fill="#d6eef0"/><g fill="#62727a"><path d="m11.2 49.5c-.1-.4-.4-.6-.7-.5 0 0-.1 0-.4.2-.4.1-.4.2-.4.2-.3.2-.4.6-.2.9l1.9 2.6c.2.3.3.2.3-.1l-.5-3.3"/><path d="m8.2 51.4c-.3-.2-.7-.1-.8.2l-.4.9c-.1.3.1.7.5.7l3.2.5c.4.1.4-.1.1-.3l-2.6-2"/><path d="m7.5 54.8c-.4.1-.6.4-.5.7 0 0 0 .1.2.4.1.4.2.4.2.4.2.3.6.4.9.2l2.6-1.9c.3-.2.2-.3-.1-.3l-3.3.5"/><path d="m9.4 57.8c-.2.3-.1.7.2.8l.9.4c.3.1.7-.1.7-.5l.5-3.2c.1-.4-.1-.4-.3-.1l-2 2.6"/><path d="m12.8 58.5c.1.4.4.6.7.5 0 0 .1 0 .4-.2.4-.1.4-.2.4-.2.3-.2.4-.6.2-.9l-1.9-2.6c-.2-.3-.3-.2-.3.1l.5 3.3"/><path d="m15.8 56.6c.3.2.7.1.8-.2l.4-.9c.1-.3-.1-.7-.5-.7l-3.2-.5c-.4-.1-.4.1-.1.3l2.6 2"/><path d="m16.5 53.2c.4-.1.6-.4.5-.7 0 0 0-.1-.2-.4-.1-.4-.2-.4-.2-.4-.2-.3-.6-.4-.9-.2l-2.6 1.9c-.3.2-.2.3.1.3l3.3-.5"/><path d="m14.6 50.2c.2-.3.1-.7-.2-.8l-.9-.4c-.3-.1-.7.1-.7.5l-.5 3.2c-.1.4.1.4.3.1l2-2.6"/><path d="m51.2 49.5c-.1-.4-.4-.6-.7-.5 0 0-.1 0-.4.2-.4.1-.4.2-.4.2-.3.2-.4.6-.2.9l1.9 2.6c.2.3.3.2.3-.1l-.5-3.3"/><path d="m48.2 51.4c-.3-.2-.7-.1-.8.2l-.4.9c-.1.3.1.7.5.7l3.2.5c.4.1.4-.1.1-.3l-2.6-2"/><path d="m47.5 54.8c-.4.1-.6.4-.5.7 0 0 0 .1.2.4.1.4.2.4.2.4.2.3.6.4.9.2l2.6-1.9c.3-.2.2-.3-.1-.3l-3.3.5"/><path d="m49.4 57.8c-.2.3-.1.7.2.8l.9.4c.3.1.7-.1.7-.5l.5-3.2c.1-.4-.1-.4-.3-.1l-2 2.6"/><path d="m52.8 58.5c.1.4.4.6.7.5 0 0 .1 0 .4-.2.4-.1.4-.2.4-.2.3-.2.4-.6.2-.9l-1.9-2.6c-.2-.3-.3-.2-.3.1l.5 3.3"/><path d="m55.8 56.6c.3.2.7.1.8-.2l.4-.9c.1-.3-.1-.7-.5-.7l-3.2-.5c-.4-.1-.4.1-.1.3l2.6 2"/><path d="m56.5 53.2c.4-.1.6-.4.5-.7 0 0 0-.1-.2-.4-.1-.4-.2-.4-.2-.4-.2-.3-.6-.4-.9-.2l-2.6 1.9c-.3.2-.2.3.1.3l3.3-.5"/><path d="m54.6 50.2c.2-.3.1-.7-.2-.8l-.9-.4c-.3-.1-.7.1-.7.5l-.5 3.2c-.1.4.1.4.3.1l2-2.6"/></g><g fill="#d3976e"><path d="m31 48h2v14h-2z"/><path d="m26 55h12v7h-12z"/></g><g fill="#89664c"><path d="m28 57.3h3v3h-3z"/><path d="m33 57.3h3v3h-3z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f0.svg b/build/js/jsxc/lib/emojione/assets/svg/26f0.svg
index 74dc969..ae954cf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 46.972h64v17.03h-64z"/><path fill="#2b95bf" d="m0 52.43c0 0 3.642.09 7.51 1.577 3.52 1.355 9.509 3.61 12.466 3.644.678.008 2.367-.545 2.367-.545s9.147 2.596 12.592 2.415c.883-.047 2.745-.937 2.745-.937s1.09.054 1.42 0c1.065-.172 2.329-1.07 3.349-1.285.873-.184 3.01-.1 3.847-.312.89-.227 2.557-1.364 2.557-1.364s2.438-.03 3.219-.116c.757-.084 2.841-.546 2.841-.546s2.611.287 3.502.273c1.445-.023 5.585-.622 5.585-.622v-7.638h-64v5.456"/><path fill="#77994f" d="m0 28.3c0 0 3.642-.31 7.51-5.401 3.52-4.635 9.509-12.356 12.466-12.47.678-.025 2.367 1.868 2.367 1.868s9.147-8.892 12.592-8.268c.883.158 2.745 3.198 2.745 3.198s1.09-.182 1.42 0c1.065.593 2.329 3.666 3.349 4.402.873.627 3.01.342 3.847 1.067.89.774 2.557 4.668 2.557 4.668s2.438.103 3.219.398c.757.286 2.841 1.867 2.841 1.867s2.611-.982 3.502-.932c1.445.079 5.585 2.133 5.585 2.133v26.14h-64v-18.67"/><g fill="#8bce4a"><path d="m56.28 32.419l-7.433-15.05c2.177 5.245 1.089 13.848 7.433 15.05"/><path d="m54.912 19.633c0 0 .898 5.852 5.573 7.468l-5.573-7.468"/><path d="m18.935 46.972l-2.885-10.602 3.69 1.533-2.983-7.603h4.639l-2.414-7.933 2.982-1.135 2.036-3.865-1.657-5.068 5.917 11.731 9.09 11.806 7.289 6.934 7.431 1.933 4.21 2.269z"/><path d="m37.681 7.229l.946 7.739 2.463 4.998h-1.71l5.64 7.867-3.67-1.603 2.82 8.341 5.629 4.2-2.13 1.599 6.341 3.301 3.931 3.301h6.06v-2.732l-6.74-3.403-1.543-1.667-1.237 1.2-5.627-9.677-5.543-12.86-2.27-3.536z"/></g><path fill="#dbf763" d="m42.23 46.972h-42.23v-6.602z"/><path fill="#1d8299" d="m42.23 46.972h-42.23v3.178z"/><g fill="#b4d7ee"><path d="m4.958 48.923c1.659-.316 3.126.869 4.819.035 1.878-.876 3.217.36 5.01.702-1.659.32-3.126-.868-4.82-.035-1.879.87-3.213-.359-5.01-.702"/><path d="m52.57 52.845c1.66-.316 3.127.868 4.82.034 1.877-.875 3.217.361 5.01.702-1.659.321-3.127-.867-4.82-.034-1.88.869-3.214-.36-5.01-.702"/><path d="m15.263 52.809c1.616-.333 2.914.446 4.476.637 1.801.22 3.236-.358 4.934-.944 3.106-1.068 5.372 1.027 8.296 1.633-1.616.34-2.914-.444-4.477-.633-1.801-.218-3.235.352-4.933.938-3.108 1.072-5.37-1.03-8.296-1.631"/><path d="m34.863 57.3c1.615-.333 2.913.447 4.476.637 1.802.22 3.235-.358 4.934-.943 3.106-1.069 5.372 1.026 8.296 1.633-1.616.339-2.914-.445-4.477-.634-1.801-.218-3.235.353-4.933.938-3.108 1.072-5.37-1.029-8.296-1.631"/><path d="m38.64 48.765c2.443-.327 4.458 1.406 6.943.193 2.65-1.242 4.577.52 7.136.858-2.443.332-4.459-1.399-6.943-.191-2.655 1.236-4.575-.522-7.136-.86"/><path d="m48.13 61.09c2.443-.327 4.459 1.406 6.943.193 2.65-1.242 4.577.52 7.136.858-2.442.332-4.458-1.399-6.943-.191-2.655 1.236-4.574-.521-7.136-.86"/><path d="m3.6 60.32c2.443-.326 4.458 1.406 6.943.193 2.65-1.242 4.577.521 7.135.858-2.443.332-4.458-1.398-6.943-.191-2.654 1.237-4.573-.521-7.135-.86"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 47h64v17h-64z"/><path d="m0 52.4c0 0 3.6.1 7.5 1.6 3.5 1.4 9.5 3.6 12.5 3.6.7 0 2.4-.5 2.4-.5s9.1 2.6 12.6 2.4c.9 0 2.7-.9 2.7-.9s1.1.1 1.4 0c1.1-.2 2.3-1.1 3.3-1.3.9-.2 3-.1 3.8-.3.9-.2 2.6-1.4 2.6-1.4s2.4 0 3.2-.1c.8-.1 2.8-.5 2.8-.5s2.6.3 3.5.3c1.4 0 5.6-.6 5.6-.6v-7.7h-63.9v5.4" fill="#2b95bf"/><path d="m0 28.3c0 0 3.6-.3 7.5-5.4 3.5-4.6 9.5-12.4 12.5-12.5.7 0 2.4 1.9 2.4 1.9s9.1-8.9 12.5-8.3c.9.2 2.7 3.2 2.7 3.2s1.1-.2 1.4 0c1.1.6 2.3 3.7 3.3 4.4.9.6 3 .3 3.8 1.1.9.8 2.6 4.7 2.6 4.7s2.4.1 3.2.4c.8.3 2.8 1.9 2.8 1.9s2.6-1 3.5-.9c1.4.1 5.6 2.1 5.6 2.1v26.1h-63.8v-18.7" fill="#77994f"/><g fill="#8bce4a"><path d="m56.3 32.4l-7.4-15.1c2.1 5.3 1 13.9 7.4 15.1"/><path d="m54.9 19.6c0 0 .9 5.9 5.6 7.5l-5.6-7.5"/><path d="m18.9 47l-2.9-10.6 3.7 1.5-2.9-7.6h4.6l-2.4-7.9 3-1.2 2-3.8-1.7-5.1 6 11.7 9 11.8 7.3 7 7.5 1.9 4.2 2.3z"/><path d="m37.7 7.2l.9 7.8 2.5 5h-1.7l5.6 7.8-3.7-1.6 2.9 8.4 5.6 4.2-2.1 1.6 6.3 3.3 3.9 3.3h6.1v-2.8l-6.7-3.4-1.6-1.6-1.2 1.2-5.6-9.7-5.6-12.9-2.3-3.5z"/></g><path fill="#dbf763" d="m42.2 47h-42.2v-6.6z"/><path fill="#1d8299" d="m42.2 47h-42.2v3.1z"/><g fill="#b4d7ee"><path d="m5 48.9c1.7-.3 3.1.9 4.8 0 1.9-.9 3.2.4 5 .7-1.7.3-3.1-.9-4.8 0-1.9.9-3.2-.3-5-.7"/><path d="m52.6 52.8c1.7-.3 3.1.9 4.8 0 1.9-.9 3.2.4 5 .7-1.7.3-3.1-.9-4.8 0-1.9.9-3.2-.3-5-.7"/><path d="m15.3 52.8c1.6-.3 2.9.4 4.5.6 1.8.2 3.2-.4 4.9-.9 3.1-1.1 5.4 1 8.3 1.6-1.6.3-2.9-.4-4.5-.6-1.8-.2-3.2.4-4.9.9-3.1 1.1-5.4-1-8.3-1.6"/><path d="m34.9 57.3c1.6-.3 2.9.4 4.5.6 1.8.2 3.2-.4 4.9-.9 3.1-1.1 5.4 1 8.3 1.6-1.6.4-2.9-.4-4.5-.6-1.8-.2-3.2.4-4.9.9-3.1 1.1-5.4-1-8.3-1.6"/><path d="m38.6 48.8c2.4-.3 4.5 1.4 6.9.2 2.7-1.2 4.6.5 7.1.9-2.4.3-4.5-1.4-6.9-.2-2.6 1.2-4.5-.6-7.1-.9"/><path d="m48.1 61.1c2.4-.3 4.5 1.4 6.9.2 2.7-1.2 4.6.5 7.1.9-2.4.3-4.5-1.4-6.9-.2-2.6 1.2-4.5-.6-7.1-.9"/><path d="m3.6 60.3c2.4-.3 4.5 1.4 6.9.2 2.6-1.2 4.6.5 7.1.9-2.4.3-4.5-1.4-6.9-.2-2.6 1.2-4.5-.5-7.1-.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f1.svg b/build/js/jsxc/lib/emojione/assets/svg/26f1.svg
index 0c8a9fa..641b455 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f4d4a5" d="m54.04 49.756c-8.06-.043-16.724 2.23-22.5 2.906-8.549 1-10.188-2.406-18.5-1.406-4.85.583-13.04 4.744-13.04 4.744v8h64v-13c0 0-4.945-1.218-9.956-1.244"/><g fill="#ffebd2"><path transform="matrix(.7071-.7071.7071.7071-39.929 20.718)" d="m4.337 57.851h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-40.556 23.2)" d="m7.02 59.851h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-38.435 22.325)" d="m7.378 57.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-38.897 25.21)" d="m10.628 59.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-42.2 21.243)" d="m4.19 61.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-41.552 18.801)" d="m1.565 59.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-36.14 23.861)" d="m10.02 54.851h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-28.2 46.04)" d="m41.13 56.704h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-28.16 50.12)" d="m46.06 58.704h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-26.329 50.551)" d="m47.5 56.704h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-26.359 52.48)" d="m49.815 57.704h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-24.01 53.15)" d="m51.797 55.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-21.846 61.01)" d="m62.38 56.52h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-23.849 59.54)" d="m59.59 58.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-22.352 59.15)" d="m59.875 56.2h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-27.562 48.575)" d="m44.15 56.851h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-20.998 59.42)" d="m60.52 54.35h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-26.19 54.881)" d="m52.44 58.35h1.414v1.414h-1.414z"/></g><path fill="#a38982" d="m59.12 54.693c-.046.558-1.337.54-2.776.345-.844 1.185-1.832 1.688-2.393 1.667-.32-.011-.572-1.192-.531-2.309-1.498-.447-2.565-.986-2.52-1.416.265-2.474 8.321.484 8.22 1.713"/><path fill="#f27a52" d="m54.14 47.677c.35-.103 1.266.823 2.235 2.146 1.552-.39 2.776-.586 2.85-.329.118.415-.28 1.536-1.2 2.854.761 1.312 1.293 2.327 1.043 2.546-.44.38-1.436.074-2.896-.281-1.039 1.087-1.711 1.882-2.287 1.798-.329-.047-.428-1.19-.496-2.704-1.484-.613-2.426-1.342-2.55-1.756-.077-.254 1.06-.751 2.577-1.259.102-1.64.372-2.913.724-3.02"/><path fill="#a38982" d="m15.197 58l-1.734-1 8.431-5.114 1.992.455z"/><path fill="#3e4347" d="m46.35 4.156c-.479-.277-1.091-.113-1.367.366l-2.502 4.333 1.733 1 2.502-4.333c.277-.479.113-1.09-.366-1.367"/><path fill="#94989b" d="m15.197 58l-1.734-1 20.02-32.542 1.731 1z"/><path fill="#ffbe5c" d="m43.854 8.489l-13.01 22.534c2.837-1.175 6.2-1.059 9.108.621 2.908 1.679 4.689 4.533 5.091 7.577 5.974-13.47 5.95-26.61-1.188-30.732"/><path fill="#ed77a8" d="m43.854 8.489l-13.01 22.534c-.4-3.043-2.183-5.898-5.091-7.577-2.909-1.68-6.271-1.794-9.108-.62 8.679-11.909 20.07-18.458 27.21-14.337"/><path fill="#c7e86f" d="m43.854 8.489c7.139 4.122 7.162 17.262 1.188 30.732 2.836-1.175 6.2-1.059 9.108.62 2.537 1.465 4.216 3.824 4.872 6.423 4.394-14.06-1.579-29.929-15.168-37.775"/><path fill="#60d4e0" d="m43.854 8.489c-7.139-4.121-18.531 2.428-27.21 14.337-.4-3.044-2.183-5.898-5.091-7.578-2.537-1.465-5.42-1.739-7.999-1.01 9.977-10.834 26.709-13.596 40.3-5.751"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m54 49.8c-8.1 0-16.7 2.2-22.5 2.9-8.5 1-10.2-2.4-18.5-1.4-4.8.5-13 4.7-13 4.7v8h64v-13c0 0-4.9-1.2-10-1.2" fill="#f4d4a5"/><g fill="#ffebd2"><path transform="matrix(.7071-.7071.7071.7071-39.9291 20.7176)" d="m4.3 57.9h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-40.5565 23.2036)" d="m7 59.9h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-38.4347 22.3247)" d="m7.4 57.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-38.8971 25.2086)" d="m10.6 59.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-42.1971 21.2422)" d="m4.2 61.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-41.5516 18.8003)" d="m1.6 59.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-36.1423 23.8605)" d="m10 54.9h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-28.1962 46.043)" d="m41.1 56.7h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-28.1646 50.12)" d="m46.1 58.7h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-26.3291 50.5508)" d="m47.5 56.7h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-26.3593 52.4787)" d="m49.8 57.7h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-24.0107 53.1477)" d="m51.8 55.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-21.8461 61.014)" d="m62.4 56.5h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-23.8487 59.539)" d="m59.6 58.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-22.352 59.1526)" d="m59.9 56.2h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-27.5627 48.5741)" d="m44.1 56.9h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-20.9989 59.4207)" d="m60.5 54.4h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-26.1932 54.8802)" d="m52.4 58.4h1.4v1.4h-1.4z"/></g><path d="m59.1 54.7c0 .6-1.3.5-2.8.3-.8 1.2-1.8 1.7-2.4 1.7-.3 0-.6-1.2-.5-2.3-1.5-.4-2.6-1-2.5-1.4.3-2.5 8.3.5 8.2 1.7" fill="#a38982"/><path d="m54.1 47.7c.3-.1 1.3.8 2.2 2.1 1.6-.4 2.8-.6 2.8-.3.1.4-.3 1.5-1.2 2.9.8 1.3 1.3 2.3 1 2.5-.4.4-1.4.1-2.9-.3-1 1.1-1.7 1.9-2.3 1.8-.3 0-.4-1.2-.5-2.7-1.5-.6-2.4-1.3-2.5-1.8-.1-.3 1.1-.8 2.6-1.3.2-1.5.5-2.8.8-2.9" fill="#f27a52"/><path fill="#a38982" d="m15.2 58l-1.7-1 8.4-5.1 2 .4z"/><path d="m46.4 4.2c-.5-.3-1.1-.2-1.4.3l-2.5 4.3 1.7 1 2.5-4.3c.3-.5.1-1.1-.3-1.3" fill="#3e4347"/><path fill="#94989b" d="m15.2 58l-1.7-1 20-32.5 1.7 1z"/><path d="m43.9 8.5l-13.1 22.5c2.8-1.2 6.2-1.1 9.1.6 2.9 1.7 4.7 4.5 5.1 7.6 6-13.4 6-26.6-1.1-30.7" fill="#ffbe5c"/><path d="m43.9 8.5l-13.1 22.5c-.4-3-2.2-5.9-5.1-7.6-2.9-1.7-6.3-1.8-9.1-.6 8.7-11.9 20.1-18.4 27.3-14.3" fill="#ed77a8"/><path d="m43.9 8.5c7.1 4.1 7.1 17.3 1.1 30.7 2.8-1.2 6.2-1.1 9.1.6 2.5 1.5 4.2 3.8 4.9 6.4 4.4-14-1.6-29.9-15.1-37.7" fill="#c7e86f"/><path d="m43.9 8.5c-7.1-4.1-18.5 2.4-27.2 14.3-.4-3-2.2-5.9-5.1-7.6-2.5-1.5-5.4-1.7-8-1 9.9-10.8 26.7-13.6 40.3-5.7" fill="#60d4e0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f2.svg b/build/js/jsxc/lib/emojione/assets/svg/26f2.svg
index 421f261..377ecf8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f2.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f2.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M 0,48.609 H64 V64 H0 z"/><path fill="#d0d0d0" d="m32 55.801c-14.739 0-26.688-1.938-26.688-4.332v5.199c.001 2.395 11.949 4.332 26.688 4.332s26.688-1.938 26.688-4.332v-5.199c0 2.394-11.949 4.332-26.688 4.332"/><ellipse fill="#e8e8e8" cx="32" cy="45.75" rx="30.5" ry="4.766"/><ellipse fill="#42ade2" cx="32" cy="45.75" rx="25.734" ry="2.859"/><path fill="#e8e8e8" d="m35.813 42.891c-1.569-1.461-1.668-6.314-1.668-6.314h-2.145-2.145c0 0-.099 4.854-1.668 6.314-.872.812-3.261 1.804-3.813 2.859-.244.467 3.414.953 7.625.953s7.868-.486 7.625-.953c-.551-1.056-2.939-2.048-3.811-2.859"/><path fill="#d0d0d0" d="m32 36.576h-2.145c0 0-.036 1.658-.378 3.328.798.082 1.645.127 2.522.127s1.725-.045 2.522-.127c-.342-1.67-.378-3.328-.378-3.328h-2.143"/><path fill="#e8e8e8" d="m36.766 37.17c-1.497 1.854-7.847 1.685-9.531 0-1.01-1.01-.953-5.719-.953-5.719h11.438c-.001 0-.056 4.608-.954 5.719"/><path fill="#d0d0d0" d="m44.709 31.27c-3.995 2.507-20.924 2.278-25.417 0-2.695-1.368-2.541-7.735-2.541-7.735h30.498c0 0-.144 6.232-2.54 7.735"/><ellipse fill="#e8e8e8" cx="32" cy="23.828" rx="15.25" ry="1.906"/><ellipse fill="#42ade2" cx="32" cy="23.828" rx="13.344" ry=".953"/><path fill="#94989b" d="m58.688 53.33c-4.748 1.462-14.912 2.471-26.688 2.471s-21.94-1.01-26.687-2.471v2.34c4.747 1.462 14.911 2.471 26.687 2.471s21.94-1.01 26.688-2.471v-2.34"/><path fill="#d0d0d0" d="m32 50.52c-16.845 0-30.5-2.133-30.5-4.766v5.719c0 2.633 13.655 4.766 30.5 4.766s30.5-2.133 30.5-4.766v-5.719c0 2.633-13.655 4.766-30.5 4.766"/><path fill="#b4d7ee" d="m32 23.828c0 0-2.522-13.712-5.719-13.691-3.523.024 4.607 7.14 5.719 13.691"/><path fill="#d6eef0" d="m31.384 22.774c0 0-10.273-17.854-13.427-13.429-1.207 1.695 8.68 5.882 13.427 13.429"/><path fill="#b4d7ee" d="m33.569 23.508c0 0 3.619-10.981 8.915-9.925 1.986.396-7.03 5.744-8.915 9.925"/><g fill="#d6eef0"><path d="m34.859 23.508c0 0 5.512-8.413 11.438-8.413 5.878 0 3.336 3.261 0 3.261-3.339-.001-7.784.971-11.438 5.152"/><path d="m31.837 17.277c0 0-.384-12.378-4.457-13.256-3.741-.807 4.527 6.962 4.457 13.256"/></g><g fill="#b4d7ee"><path d="m32 24.305c0 0-.001-24.305 3.634-24.305 2.583 0-2.998 15.01-3.634 24.305"/><path d="m21.516 24.389c0 0-7.625-6.04-7.625 21.507 0 0 .518.808 3.384.808 0-.001-.121-21.456 4.241-22.315"/><path d="m42.484 24.389c0 0 7.625-6.04 7.625 21.507 0 0-.519.808-3.384.808.001-.001.122-21.456-4.241-22.315"/><path d="m30.753 23.508c0 0-5.512-8.413-11.438-8.413-5.877 0-3.336 3.261 0 3.261 3.338-.001 7.784.971 11.438 5.152"/></g><path fill="#d6eef0" d="m32.07 24.15c0 0 5.854-19.75 9.947-16.18 1.567 1.37-7.079 7.734-9.947 16.18"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="m0 48.6h64v15.4h-64z"/><path d="m32 55.8c-14.7 0-26.7-1.9-26.7-4.3v5.2c0 2.4 12 4.3 26.7 4.3s26.7-1.9 26.7-4.3v-5.2c0 2.4-12 4.3-26.7 4.3" fill="#d0d0d0"/><ellipse cx="32" cy="45.8" rx="30.5" ry="4.8" fill="#e8e8e8"/><ellipse cx="32" cy="45.8" rx="25.7" ry="2.9" fill="#42ade2"/><path d="m35.8 42.9c-1.6-1.5-1.7-6.3-1.7-6.3h-2.1-2.1c0 0-.1 4.9-1.7 6.3-.9.8-3.3 1.8-3.8 2.9-.2.5 3.4 1 7.6 1s7.9-.5 7.6-1c-.5-1.1-2.9-2.1-3.8-2.9" fill="#e8e8e8"/><path d="m32 36.6h-2.1c0 0 0 1.7-.4 3.3.8.1 1.6.1 2.5.1.9 0 1.7 0 2.5-.1-.3-1.7-.4-3.3-.4-3.3h-2.1" fill="#d0d0d0"/><path d="m36.8 37.2c-1.5 1.9-7.8 1.7-9.5 0-1-1-1-5.7-1-5.7h11.4c0 0 0 4.6-.9 5.7" fill="#e8e8e8"/><path d="m44.7 31.3c-4 2.5-20.9 2.3-25.4 0-2.7-1.4-2.5-7.7-2.5-7.7h30.5c-.1-.1-.2 6.2-2.6 7.7" fill="#d0d0d0"/><ellipse cx="32" cy="23.8" rx="15.2" ry="1.9" fill="#e8e8e8"/><ellipse cx="32" cy="23.8" rx="13.3" ry="1" fill="#42ade2"/><path d="m58.7 53.3c-4.7 1.5-14.9 2.5-26.7 2.5s-21.9-1-26.7-2.5v2.3c4.7 1.5 14.9 2.5 26.7 2.5s21.9-1 26.7-2.5v-2.3" fill="#94989b"/><path d="m32 50.5c-16.8 0-30.5-2.1-30.5-4.8v5.7c0 2.6 13.7 4.8 30.5 4.8s30.5-2.1 30.5-4.8v-5.7c0 2.7-13.7 4.8-30.5 4.8" fill="#d0d0d0"/><path d="m32 23.8c0 0-2.5-13.7-5.7-13.7-3.5.1 4.6 7.2 5.7 13.7" fill="#b4d7ee"/><path d="m31.4 22.8c0 0-10.3-17.9-13.4-13.4-1.2 1.6 8.6 5.8 13.4 13.4" fill="#d6eef0"/><path d="m33.6 23.5c0 0 3.6-11 8.9-9.9 2 .4-7 5.7-8.9 9.9" fill="#b4d7ee"/><g fill="#d6eef0"><path d="m34.9 23.5c0 0 5.5-8.4 11.4-8.4 5.9 0 3.3 3.3 0 3.3-3.3 0-7.8.9-11.4 5.1"/><path d="m31.8 17.3c0 0-.4-12.4-4.5-13.3-3.7-.8 4.6 7 4.5 13.3"/></g><g fill="#b4d7ee"><path d="m32 24.3c0 0 0-24.3 3.6-24.3 2.6 0-3 15-3.6 24.3"/><path d="m21.5 24.4c0 0-7.6-6-7.6 21.5 0 0 .5.8 3.4.8 0 0-.1-21.5 4.2-22.3"/><path d="m42.5 24.4c0 0 7.6-6 7.6 21.5 0 0-.5.8-3.4.8 0 0 .1-21.5-4.2-22.3"/><path d="m30.8 23.5c0 0-5.5-8.4-11.4-8.4-5.9 0-3.3 3.3 0 3.3 3.3 0 7.7.9 11.4 5.1"/></g><path d="m32.1 24.1c0 0 5.9-19.8 9.9-16.2 1.6 1.4-7.1 7.8-9.9 16.2" fill="#d6eef0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f3.svg b/build/js/jsxc/lib/emojione/assets/svg/26f3.svg
index 97f8c27..cd35a12 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f3.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f3.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse fill="#97b113" cx="32" cy="49.721" rx="30" ry="12.279"/><path opacity=".3" fill="#1e1e1e" d="m28 47c0 0 3-6.553 5.644-9.559l-.909.004c0 0-4.725 5.709-6.709 9.318l1.974.237"/><ellipse fill="#c7c7c7" cx="26.625" cy="50.34" rx="8.729" ry="3.665"/><path fill="#3d2905" d="m26.625 48.24c4.176 0 7.662 1.232 8.521 2.879.133-.254.207-.517.207-.787 0-2.024-3.908-3.666-8.729-3.666s-8.729 1.642-8.729 3.666c0 .271.074.533.206.787.86-1.646 4.346-2.879 8.524-2.879"/><path fill="#ed4c5c" d="m44.982 9.292c-.902-.467-15.808-8.169-17.982-9.292v20.729c2.172-1.122 17.07-8.82 17.982-9.292.741-.381.741-1.764 0-2.145"/><path opacity=".5" fill="#1e1e1e" d="m28 53.923c0 0-.898.077-2.439.077v-7.237h2.439v7.16"/><path fill="#d3976e" d="m25 0h2v54h-2z"/><path fill="#89664c" d="m25 52.17h2v1.832h-2z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><ellipse cx="32" cy="49.7" rx="30" ry="12.3" fill="#97b113"/><path d="m28 47c0 0 3-6.6 5.6-9.6h-.9c0 0-4.7 5.7-6.7 9.3l2 .3" opacity=".3" fill="#1e1e1e"/><ellipse cx="26.6" cy="50.3" rx="8.7" ry="3.7" fill="#c7c7c7"/><path d="m26.6 48.2c4.2 0 7.7 1.2 8.5 2.9.1-.3.2-.5.2-.8 0-2-3.9-3.7-8.7-3.7s-8.7 1.6-8.7 3.7c0 .3.1.5.2.8.9-1.6 4.3-2.9 8.5-2.9" fill="#3d2905"/><path d="m45 9.3c-.9-.5-15.8-8.2-18-9.3v20.7c2.2-1.1 17.1-8.8 18-9.3.7-.3.7-1.7 0-2.1" fill="#ed4c5c"/><path d="m28 53.9c0 0-.9.1-2.4.1v-7.2h2.4v7.1" opacity=".5" fill="#1e1e1e"/><path fill="#d3976e" d="m25 0h2v54h-2z"/><path fill="#89664c" d="m25 52.2h2v1.8h-2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f4.svg b/build/js/jsxc/lib/emojione/assets/svg/26f4.svg
index 3ddb5df..306970e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f4.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f4.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3dd0e0" d="m0 50h64v14h-64z"/><g fill="#b4e7ed"><path d="m4.279 54.35c1.658-.281 3.125.771 4.818.031 1.879-.777 3.217.319 5.01.623-1.659.284-3.126-.771-4.819-.031-1.881.771-3.215-.32-5.01-.623"/><path d="m49.889 57.831c1.66-.281 3.127.771 4.82.03 1.877-.776 3.217.32 5.01.623-1.659.285-3.127-.77-4.82-.03-1.88.772-3.214-.319-5.01-.623"/><path d="m14.584 58.29c1.615-.295 2.913.396 4.476.565 1.802.195 3.235-.318 4.934-.838 3.106-.948 5.372.911 8.296 1.449-1.616.301-2.914-.395-4.477-.563-1.801-.193-3.235.313-4.933.833-3.109.953-5.37-.912-8.296-1.446"/><path d="m37.96 54.21c2.443-.29 4.458 1.248 6.943.172 2.65-1.103 4.577.461 7.136.762-2.443.294-4.459-1.242-6.943-.17-2.655 1.097-4.575-.464-7.136-.764"/></g><path fill="#428bc1" d="m61.895 52h-56.65l-5.245-10h64z"/><path fill="#b9c1c6" d="m61 32h-47.89l-6.11 10h54z"/><g fill="#3e4347"><path d="m52.978 34h6v6h-6z"/><path d="m44.977 34h6v6h-6z"/><path d="m36.976 34h6v6h-6z"/><path d="m28.975 34h6v6h-6z"/><path d="m20.974 34h6v6h-6z"/><path d="m18.973 40h-7l3-6h4z"/></g><g fill="#dce1e5"><path d="m10 26h54v6h-54z"/><path d="m12 12h38v4h-38z"/></g><path fill="#b9c1c6" d="m14 16h34v10h-34z"/><g fill="#778389"><path d="m2 38h1v4h-1z"/><path d="m5 38h1v4h-1z"/><path d="m8 38h1v4h-1z"/><path d="m11 38h1v4h-1z"/><path d="m14 38h1v4h-1z"/><path d="m17 38h1v4h-1z"/></g><path fill="#8f989e" d="m0 37h18v1h-18z"/><g fill="#778389"><path d="m61 21.999h1v4h-1z"/><path d="m58 21.999h1v4h-1z"/><path d="m55 21.999h1v4h-1z"/><path d="m52 21.999h1v4h-1z"/><path d="m49 21.999h1v4h-1z"/><path d="m46 21.999h1v4h-1z"/></g><path fill="#8f989e" d="m45.998 21h18v1h-18z"/><g fill="#778389"><path d="m52.998 38h1v4h-1z"/><path d="m55.998 38h1v4h-1z"/><path d="m58.998 38h1v4h-1z"/><path d="m61.998 38h1v4h-1z"/></g><path fill="#8f989e" d="m52.998 37h11v1h-11z"/><g fill="#3e4347"><path d="m16 18h6v6h-6z"/><path d="m24 18h6v6h-6z"/><path d="m32 18h6v6h-6z"/><path d="m40 18h6v6h-6z"/></g><g fill="#8f989e"><path d="m40 4h2v8h-2z"/><path d="m44 6h2v6h-2z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3dd0e0" d="m0 50h64v14h-64z"/><g fill="#b4e7ed"><path d="m4.3 54.4c1.7-.3 3.1.8 4.8 0 1.9-.8 3.2.3 5 .6-1.7.3-3.1-.8-4.8 0-1.9.7-3.2-.3-5-.6"/><path d="m49.9 57.8c1.7-.3 3.1.8 4.8 0 1.9-.8 3.2.3 5 .6-1.7.3-3.1-.8-4.8 0-1.9.8-3.2-.3-5-.6"/><path d="m14.6 58.3c1.6-.3 2.9.4 4.5.6 1.8.2 3.2-.3 4.9-.8 3.1-.9 5.4.9 8.3 1.4-1.6.3-2.9-.4-4.5-.6-1.8-.2-3.2.3-4.9.8-3.1 1-5.4-.9-8.3-1.4"/><path d="m38 54.2c2.4-.3 4.5 1.2 6.9.2 2.7-1.1 4.6.5 7.1.8-2.4.3-4.5-1.2-6.9-.2-2.7 1.1-4.6-.5-7.1-.8"/></g><path fill="#428bc1" d="m61.9 52h-56.7l-5.2-10h64z"/><path fill="#b9c1c6" d="m61 32h-47.9l-6.1 10h54z"/><g fill="#3e4347"><path d="m53 34h6v6h-6z"/><path d="m45 34h6v6h-6z"/><path d="m37 34h6v6h-6z"/><path d="m29 34h6v6h-6z"/><path d="m21 34h6v6h-6z"/><path d="m19 40h-7l3-6h4z"/></g><g fill="#dce1e5"><path d="m10 26h54v6h-54z"/><path d="m12 12h38v4h-38z"/></g><path fill="#b9c1c6" d="m14 16h34v10h-34z"/><g fill="#778389"><path d="m2 38h1v4h-1z"/><path d="m5 38h1v4h-1z"/><path d="m8 38h1v4h-1z"/><path d="m11 38h1v4h-1z"/><path d="m14 38h1v4h-1z"/><path d="m17 38h1v4h-1z"/></g><path fill="#8f989e" d="m0 37h18v1h-18z"/><g fill="#778389"><path d="m61 22h1v4h-1z"/><path d="m58 22h1v4h-1z"/><path d="m55 22h1v4h-1z"/><path d="m52 22h1v4h-1z"/><path d="m49 22h1v4h-1z"/><path d="m46 22h1v4h-1z"/></g><path fill="#8f989e" d="m46 21h18v1h-18z"/><g fill="#778389"><path d="m53 38h1v4h-1z"/><path d="m56 38h1v4h-1z"/><path d="m59 38h1v4h-1z"/><path d="m62 38h1v4h-1z"/></g><path fill="#8f989e" d="m53 37h11v1h-11z"/><g fill="#3e4347"><path d="m16 18h6v6h-6z"/><path d="m24 18h6v6h-6z"/><path d="m32 18h6v6h-6z"/><path d="m40 18h6v6h-6z"/></g><g fill="#8f989e"><path d="m40 4h2v8h-2z"/><path d="m44 6h2v6h-2z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f5.svg b/build/js/jsxc/lib/emojione/assets/svg/26f5.svg
index f665f7e..e69f924 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f5.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f5.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 48h64v16h-64z"/><g fill="#3e4347"><path d="m31.5 2h1v10h-1z"/><path d="m57 59h-40.998l-2-2c0 0 16.666-3.166 43 2"/></g><path fill="#89664c" d="m33 47c0 .551-.449 1-1 1-.549 0-1-.449-1-1v-38c0-.55.451-1 1-1 .551 0 1 .45 1 1v38"/><path fill="#dae3ea" d="m54 52c0 0-4.6-1.557-10-3-3.404-.91-7.682-1.727-9.572-2.236-.529-.145-1.307-.555-1.725-.912l-1.408-1.203c-.42-.356-1.211-.649-1.762-.649h-8.094c-.549 0-1.318.318-1.709.705l-1.188 1.184c-.389.389-1.158.705-1.709.705h-4.833c-.549 0-.893.438-.76.971l1.959 7.965c.131.533.689.971 1.238.971h39.563l1-2.5-1-2"/><path fill="#c5d0d8" d="m7 46.5c0 0 1.834 4.5 7 10.5 0 0 29.578 2 43 2l-2-5c0 0-23-7.5-48-7.5"/><g fill="#3e4347"><path d="m29.5 46.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-1c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v1"/><path d="m25.5 46.5c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-1c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v1"/></g><path fill="#89664c" d="m11.963 41.34c-.604.521-1.391 1.234-2.139 1.986-.752.748-1.465 1.535-1.986 2.139-.52.605-.838 1.037-.838 1.037s.432-.318 1.037-.838 1.393-1.232 2.141-1.984c.752-.748 1.463-1.537 1.984-2.141.52-.605.838-1.037.838-1.037s-.432.318-1.037.838"/><path fill="#f9f3d9" d="M31,9c0,0-14,21.75-21,34.5c0,0,9.539-2.496,21-2.496V9z"/><path fill="#ff9d27" d="m33 9v32l14 3z"/><g fill="#f15744"><path d="m42.777 54h-1.777c0-2.205 1.795-4 4-4v1.777c-1.225 0-2.223.998-2.223 2.223"/><path d="m45 58v-1.777c1.227 0 2.223-.998 2.223-2.223h1.777c0 2.205-1.793 4-4 4"/></g><g fill="#fff"><path d="m45 58c-2.205 0-4-1.795-4-4h1.777c0 1.225.998 2.223 2.223 2.223v1.777"/><path d="m49 54h-1.777c0-1.225-.996-2.223-2.223-2.223v-1.777c2.207 0 4 1.795 4 4"/></g><g fill="#f15744"><path d="m32.5 3c0 1.313 0 2.625 0 3.938 2.668.525 5.334-2.494 8-1.969-2.666-1.838-5.332-.131-8-1.969"/><path d="m21.14 24.672c-.527.857-1.064 1.73-1.602 2.608 3.555.442 7.885 1.454 11.461 3.72v-3c0 0-3.107-2.189-9.859-3.328"/></g><path fill="#ffce31" d="m16.674 32c11.185 0 14.326 3 14.326 3v-4c-3.576-2.266-7.906-3.278-11.461-3.72-1.076 1.759-1.803 2.947-2.865 4.72"/><g fill="#fff"><path d="m44.5 49h1v1h-1z"/><path d="m44.5 58h1v1h-1z"/><path d="m49 53.5h1v1h-1z"/><path d="m40 53.5h1v1h-1z"/></g><g fill="#89664c"><path d="m40.75 53.51l-.5-.02c.004-.082.088-2.039 1.195-3.148 1.158-1.158 2.99-1.09 3.066-1.092l-.021.5c-.012-.004-1.688-.057-2.691.945-.967.969-1.047 2.795-1.049 2.815"/><path d="m49.25 53.51c0-.02-.08-1.846-1.049-2.814-1-1-2.68-.949-2.689-.945l-.021-.5c.074.002 1.906-.066 3.064 1.092 1.109 1.109 1.193 3.066 1.195 3.148l-.5.019"/><path d="m44.42 58.75c-.398 0-1.947-.068-2.971-1.092-1.107-1.109-1.191-3.066-1.195-3.15l.5-.018c.002.018.082 1.846 1.049 2.814 1 1 2.68.951 2.691.945l.021.5c-.009.001-.042.001-.095.001"/><path d="m45.584 58.75c-.053 0-.086 0-.094 0l.021-.5c.01.006 1.688.057 2.689-.945.969-.969 1.049-2.797 1.049-2.814l.5.018c-.002.084-.086 2.041-1.195 3.15-1.023 1.023-2.57 1.091-2.97 1.091"/></g><circle fill="#3e4347" cx="13" cy="50" r="1.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m0 48h64v16h-64z"/><g fill="#3e4347"><path d="m31.5 2h1v10h-1z"/><path d="m57 59h-41l-2-2c0 0 16.7-3.2 43 2"/></g><path d="m33 47c0 .6-.4 1-1 1-.5 0-1-.4-1-1v-38c0-.6.5-1 1-1 .6 0 1 .4 1 1v38" fill="#89664c"/><path d="m54 52c0 0-4.6-1.6-10-3-3.4-.9-7.7-1.7-9.6-2.2-.5-.1-1.3-.6-1.7-.9l-1.4-1.2c-.4-.4-1.2-.6-1.8-.6h-8.1c-.5 0-1.3.3-1.7.7l-1.2 1.2c-.4.4-1.2.7-1.7.7h-4.8c-.5 0-.9.4-.8 1l2 8c.1.5.7 1 1.2 1h39.6l1-2.5-1-2.2" fill="#dae3ea"/><path d="m7 46.5c0 0 1.8 4.5 7 10.5 0 0 29.6 2 43 2l-2-5c0 0-23-7.5-48-7.5" fill="#c5d0d8"/><g fill="#3e4347"><path d="m29.5 46.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-1c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v1"/><path d="m25.5 46.5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-1c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v1"/></g><path d="m12 41.3c-.6.5-1.4 1.2-2.1 2-.8.7-1.5 1.5-2 2.1-.5.6-.8 1-.8 1s.4-.3 1-.8 1.4-1.2 2.1-2c.8-.7 1.5-1.5 2-2.1.5-.6.8-1 .8-1s-.4.3-1 .8" fill="#89664c"/><path d="M31,9c0,0-14,21.8-21,34.5c0,0,9.5-2.5,21-2.5V9z" fill="#f9f3d9"/><path fill="#ff9d27" d="m33 9v32l14 3z"/><g fill="#f15744"><path d="m42.8 54h-1.8c0-2.2 1.8-4 4-4v1.8c-1.2 0-2.2 1-2.2 2.2"/><path d="m45 58v-1.8c1.2 0 2.2-1 2.2-2.2h1.8c0 2.2-1.8 4-4 4"/></g><g fill="#fff"><path d="m45 58c-2.2 0-4-1.8-4-4h1.8c0 1.2 1 2.2 2.2 2.2v1.8"/><path d="m49 54h-1.8c0-1.2-1-2.2-2.2-2.2v-1.8c2.2 0 4 1.8 4 4"/></g><g fill="#f15744"><path d="m32.5 3c0 1.3 0 2.6 0 3.9 2.7.5 5.3-2.5 8-2-2.7-1.8-5.3-.1-8-1.9"/><path d="m21.1 24.7c-.5.9-1.1 1.7-1.6 2.6 3.6.4 7.9 1.5 11.5 3.7v-3c0 0-3.1-2.2-9.9-3.3"/></g><path d="m16.7 32c11.2 0 14.3 3 14.3 3v-4c-3.6-2.3-7.9-3.3-11.5-3.7-1 1.7-1.8 2.9-2.8 4.7" fill="#ffce31"/><g fill="#fff"><path d="m44.5 49h1v1h-1z"/><path d="m44.5 58h1v1h-1z"/><path d="m49 53.5h1v1h-1z"/><path d="m40 53.5h1v1h-1z"/></g><g fill="#89664c"><path d="m40.8 53.5h-.5c0-.1.1-2 1.2-3.1 1.2-1.2 3-1.1 3.1-1.1v.5c0 0-1.7-.1-2.7.9-1.1 1-1.1 2.8-1.1 2.8"/><path d="m49.2 53.5c0 0-.1-1.8-1-2.8-1-1-2.7-.9-2.7-.9v-.5c.1 0 1.9-.1 3.1 1.1 1.1 1.1 1.2 3.1 1.2 3.1h-.6"/><path d="m44.4 58.8c-.4 0-1.9-.1-3-1.1-1.1-1.1-1.2-3.1-1.2-3.2h.5c0 0 .1 1.8 1 2.8 1 1 2.7 1 2.7.9v.6c.1 0 .1 0 0 0"/><path d="m45.6 58.8c-.1 0-.1 0 0 0l-.1-.5c0 0 1.7.1 2.7-.9 1-1 1-2.8 1-2.8h.5c0 .1-.1 2-1.2 3.2-1 .9-2.5 1-2.9 1"/></g><circle cx="13" cy="50" r="1.5" fill="#3e4347"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f7.svg b/build/js/jsxc/lib/emojione/assets/svg/26f7.svg
index 9ada669..a9fb9b8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f7.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f7.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m35.08 28.654l-1.357 3.061-4.689 6.85c-1.373 1.373-1.373 3.602 0 4.975l6.623-2.447c2.273-1.02 1.574-3.164 2.176-3.826 2.051-2.26 4.889-1.553 6.443-4.725.824-1.684.602-3.986-.287-5.523l-8.909 1.635"/><path fill="#44618b" d="m46.28 28.11c-2.311-3.928-6.504-3.494-9.346-6.162-5.934-5.57-9.504-2.992-9.359-1.836.404 3.273-.061 5.771.863 6.641l5.281 4.957c0 0 1.768-1.721 4.832-2.238 5.04-.852 7.729-1.362 7.729-1.362"/><g fill="#cc2e45"><path d="m31.02 16.959c0 0 5.434-1.676 7.295-1.555 1.941.127 5.402 2.395 7.338 2.596 1.061.109 3.35-1.17 4.23-.568.959.658 1.787 3.59 1.092 4.521-.811 1.086-4.09.574-5.408.27-2.172-.5-5.609-3.963-7.814-4.289-1.875-.277-7.424 1.57-7.424 1.57l.691-2.545"/><path d="m29.05 18.461c0 0 3.496-4.484 5.092-5.451 1.664-1.01 5.799-1.129 7.502-2.072.934-.518 2.076-2.877 3.143-2.889 1.162-.01 3.521 1.92 3.484 3.084-.043 1.352-3.02 2.811-4.279 3.316-2.066.834-6.869-.039-8.863.955-1.697.848-5.188 5.539-5.188 5.539l-.891-2.482"/></g><path fill="#ffdd67" d="m25.962 17.283l1.697-1.233 4.561 6.294-4.367 3.172z"/><path fill="#f9c19b" d="m25.845 17.16c2.051 2.826 2.484 4.695.453 6.17l1.555 2.188c2.4-1.74 1.211-5.449-1.182-8.75l-.826.392"/><path fill="#ffdd67" d="m20.296 6.396l-7.375 9.943c.357 2.813 1.883 3.336 2.473 4.23.264.398-.008 1.676-.154 2.346-.332 1.5 1.707 1.039 2.199.494.994.6.572 1.27 1.904.109.732-.641 1.268-2.131 1.268-2.131-1.879 4.682-.336 4.926.816 3.518 1.33 1.832 2.469 1.01 4.961-.803 2.031-1.475 2.334-4.512.283-7.338l2.381-2.451-8.756-7.917"/><g fill="#574137"><path d="m14.796 6.439c7.05-5.115 12.32.203 14.354 5.066 1.082 2.59.934 4.844.006 6.439l-1.012.056-1.473-1.234c0 0 1.146-1.322.412-3.189-.336-.857-2.057-1.707-3.158-.998-.77.498-1.438 1.82-1.539 2.152-1.328-1.83-2.33-3.99-3.971-3.631-1.352.293-4.307 5.48-5.494 5.24-3.184-.637-2.371-6.819 1.875-9.901"/><path d="m24.845 14.641c-.146.076-.264.188-.342.322-.035-.174-.051-.352-.061-.539-.012-.232.01-.465.006-.725-.322.393-.469.939-.352 1.475.121.539.533.957.998 1.143-.113-.23-.252-.428-.352-.631-.061-.129-.113-.258-.154-.387.055-.037.104-.07.158-.102.109-.063.199-.125.299-.174.096-.057.201-.094.314-.152.111-.055.238-.094.385-.176-.249-.193-.612-.205-.899-.054"/><path d="m17.483 18.578c.424.584.43 1.309.012 1.609-.42.307-1.105.076-1.529-.508-.424-.588-.428-1.307-.012-1.611.42-.304 1.104-.076 1.529.51"/><path d="m20.61 21.389c0 0 .053 2.441-.068 2.877-.258.93-.697.76-.695.135.004-.643.763-3.01.763-3.01"/></g><path fill="#86d0bf" d="m23.595 3.873c.299 2.426-1.402 4.641-3.799 4.949-2.393.309-4.578-1.41-4.877-3.84-.297-2.424 1.404-4.639 3.799-4.947 2.394-.306 4.58 1.414 4.877 3.838"/><g fill="#44618b"><path d="m30.28 10.229c-2.043-3.936-6.371-6.383-11.03-5.799s-8.244 4.02-9.254 8.342c2.727-1.732 6.105-2.98 9.869-3.451 3.758-.471 7.342-.1 10.412.908"/><path d="m31.427 13.838c-3.223-1.195-7.07-1.674-11.135-1.164-4.063.51-7.68 1.926-10.504 3.879.002.02.002.037.004.057.75 5.98 4.953.26 10.932-.488 5.979-.75 11.463 3.75 10.713-2.227-.002-.02-.006-.038-.01-.057"/></g><g fill="#86d0bf"><path d="m31.427 13.838c-.168-1.299-.57-2.51-1.143-3.609-3.07-1.01-6.654-1.379-10.412-.909-3.764.471-7.143 1.719-9.869 3.451-.283 1.209-.371 2.48-.215 3.781 2.824-1.953 6.441-3.369 10.504-3.879 4.061-.509 7.912-.03 11.135 1.165"/><path d="m30.399 52.37c-1.369.496-2.074 2.01-1.578 3.381l.902 2.479 10.744-3.91-1.807-4.959-8.261 3.01"/></g><path fill="#44618b" d="m29.12 56.57c-.457.162-.691.666-.527 1.125.166.457.672.693 1.127.525l10.744-3.91-.604-1.652-10.74 3.912"/><path transform="matrix(.9397-.3421.3421.9397-13.84 14.382)" fill="#86d0bf" d="m30.336 42.03h7.03v8.792h-7.03z"/><g fill="#44618b"><path d="m34.16 47.26l-3.307 1.199c-.457.17-.693.672-.525 1.131.166.457.67.691 1.127.525l3.305-1.205c.457-.164.693-.67.525-1.127-.166-.455-.67-.691-1.125-.523"/><path d="m32.95 43.949l-3.305 1.205c-.457.164-.691.67-.525 1.125.164.459.672.691 1.127.525l3.305-1.201c.457-.166.691-.67.525-1.129-.166-.456-.67-.691-1.127-.525"/></g><g fill="#ed4c5c"><path d="m18.981 62.13c-.912.334-1.922-.137-2.254-1.051l-1.654.604c.668 1.826 2.686 2.766 4.51 2.102l34.705-12.633-.604-1.652-34.703 12.63"/><path d="m52.29 27.895l-38.41 15.25.65 1.635 38.41-15.248c.453-.182.672-.691.492-1.143s-.689-.672-1.14-.494"/></g><path fill="#3e4347" d="m51.13 32.14c.182.451.693.672 1.143.494.451-.18.674-.691.494-1.143l-1.945-4.902c-.18-.449-.695-.672-1.143-.492-.449.178-.674.691-.494 1.141l1.945 4.902"/><path fill="#86d0bf" d="m29.542 18.57c-1.459.045-2.889 1.303-2.555 2.719 1.93 8.23-4.664 16.201-4.664 16.201l3.848 3.613c0 0 8.615-12.43 6.09-19.979-.463-1.382-1.264-2.601-2.719-2.554"/><path fill="#44618b" d="m21.493 38.38c-1.758-.186-2.225.996-3.555 1.725-.682.371-.971 1.262-.498 1.629l.916-.363c-.154 1.094-.621 3.238.553 3.057 2.137-.332 2.51.922 4.791.047.83-.316 1.611-1.66 1.639-2.48l.832-.885-3.848-3.613-.83.883"/><path fill="#ed4c5c" d="m21.478 25.322c.285.492 2.139.648 2.83.896.732.264 1.545 1.752 2.34 1.594 2.234-.441.088-4.85 1.102-6.271.754-1.057 5.396-1.289 5.938-2.404.186-.385-1.104-.979-1.295-1.361-.188-.379.316-1.398-.197-1.59-1.756-.652-5.354 1.918-6.807 2.852-1.829 1.171-4.831 4.696-3.911 6.284"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m31.8 22.3l-3.4-8.1-15 3.7c.6 2.6 2 3 2.7 3.8.3.4.1 1.6 0 2.2-.2 1.4 1.7.9 2.1.3 1 .5.4 1.8 2.3-.7 0 0-1.5 3 .6 2 1.3 3.2 10.7-3.2 10.7-3.2" fill="#ffdd67"/><g fill="#937237"><path d="m18 20c.4.5.5 1.1.1 1.4-.3.3-.8 0-1.2-.5-.4-.5-.7-1-.3-1.3.4-.3 1-.1 1.4.4"/><path d="m21.2 22.6c0 0-.3 1.5-.5 2-.4.9-.7.8-.6.2.1-.5.5-1.3.5-1.3l.6-.9"/></g><path d="m34.9 28.9l-1.3 2.9-4.4 6.4c-1.3 1.3-1.3 3.4 0 4.7l6.2-2.3c2.1-1 1.5-3 2-3.6 1.9-2.1 4.6-1.5 6.1-4.4.8-1.6.6-3.7-.3-5.2l-8.3 1.5" fill="#3e4347"/><path d="m45.5 28.4c-2.2-3.7-6.1-3.3-8.8-5.8-5.6-5.2-9-2.8-8.8-1.7.4 3.1-.1 5.4.8 6.2l5 4.6c0 0 1.7-1.6 4.6-2.1 4.6-.8 7.2-1.2 7.2-1.2" fill="#44618b"/><g fill="#cc2e45"><path d="m31.1 17.9c0 0 5.1-1.6 6.9-1.5 1.8.1 5.1 2.2 6.9 2.4 1 .1 3.2-1.1 4-.5.9.6 1.7 3.4 1 4.2-.8 1-3.9.5-5.1.3-2-.5-5.3-3.7-7.4-4-1.8-.3-7 1.5-7 1.5l.7-2.4"/><path d="m29.2 19.3c0 0 3.3-4.2 4.8-5.1 1.6-.9 5.5-1.1 7.1-1.9.9-.5 2-2.7 3-2.7 1.1 0 3.3 1.8 3.3 2.9 0 1.3-2.8 2.6-4 3.1-1.9.8-6.5 0-8.4.9-1.6.8-4.9 5.2-4.9 5.2l-.9-2.4"/></g><path d="m24.1 5.6c.3 2.3-1.3 4.4-3.6 4.6-2.3.3-4.3-1.3-4.6-3.6-.3-2.3 1.3-4.3 3.6-4.6 2.2-.3 4.3 1.4 4.6 3.6" fill="#86d0bf"/><g fill="#44618b"><path d="m30.4 11.6c-1.9-3.7-6-6-10.4-5.4-4.4.5-7.8 3.8-8.7 7.8 2.6-1.6 5.8-2.8 9.3-3.2 3.5-.5 6.9-.2 9.8.8"/><path d="m31.5 15c-3-1.1-6.7-1.6-10.5-1.1-3.8.5-7.2 1.8-9.9 3.6 0 0 0 0 0 .1.7 5.6 4.7.2 10.3-.5 5.6-.7 10.8 3.5 10.1-2.1"/></g><g fill="#86d0bf"><path d="m31.5 15c-.2-1.2-.5-2.4-1.1-3.4-2.9-.9-6.3-1.3-9.8-.9-3.5.4-6.7 1.6-9.3 3.2-.3 1.1-.4 2.3-.2 3.5 2.7-1.8 6.1-3.2 9.9-3.6 3.8-.4 7.4.1 10.5 1.2"/><path d="m30.5 51.1c-1.3.5-2 1.9-1.5 3.2l.9 2.3 10.1-3.7-1.7-4.6-7.8 2.8"/></g><path d="m29.3 55c-.4.2-.7.6-.5 1.1.2.4.6.7 1.1.5l10.1-3.7-.6-1.5-10.1 3.6" fill="#44618b"/><path fill="#86d0bf" d="m38.3 48.3l-6.3 2.2-2.8-7.7 6.2-2.3z"/><g fill="#44618b"><path d="m34 46.3l-3.1 1.1c-.4.2-.7.6-.5 1.1.2.4.6.6 1.1.5l3.1-1.1c.4-.2.7-.6.5-1.1-.2-.4-.6-.7-1.1-.5"/><path d="m32.9 43.2l-3.1 1.1c-.4.2-.7.6-.5 1.1.2.4.6.6 1.1.5l3.1-1.1c.4-.2.7-.6.5-1.1-.2-.4-.7-.7-1.1-.5"/></g><g fill="#ed4c5c"><path d="m19.7 60.2c-.9.3-1.8-.1-2.1-1l-1.6.6c.6 1.7 2.5 2.6 4.2 2l32.8-11.8-.6-1.5-32.7 11.7"/><path d="m51.1 28.2l-36.2 14.2.6 1.5 36.2-14.3c.4-.2.6-.6.5-1.1-.2-.3-.7-.5-1.1-.3"/></g><path d="m50 32.1c.2.4.7.6 1.1.5.4-.2.6-.6.5-1.1l-1.8-4.6c-.2-.4-.7-.6-1.1-.5-.4.2-.6.6-.5 1.1l1.8 4.6" fill="#3e4347"/><path d="m29.7 19.4c-1.4 0-2.7 1.2-2.4 2.5 1.8 7.7-4.4 15.2-4.4 15.2l3.6 3.4c0 0 8.1-11.7 5.7-18.7-.4-1.3-1.1-2.4-2.5-2.4" fill="#86d0bf"/><path d="m22.1 38c-1.7-.2-2.1.9-3.4 1.6-.6.3-.9 1.2-.5 1.5l.9-.3c-.1 1-.6 3 .5 2.9 2-.3 2.4.9 4.5 0 .8-.3 1.5-1.6 1.5-2.3l.8-.8-3.6-3.4-.7.8" fill="#44618b"/><path d="m21.6 26.6c.6 1.2 2.5-.2 3.1 0 .7.2 1.5 1.6 2.2 1.5 2.1-.4.1-4.5 1-5.9.7-1 5.1-1.2 5.6-2.3.2-.4-1-.9-1.2-1.3-.2-.4.3-1.3-.2-1.5-1.7-.6-5 1.8-6.4 2.7-1.7 1.1-4.8 5.2-4.1 6.8" fill="#ed4c5c"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f8.svg b/build/js/jsxc/lib/emojione/assets/svg/26f8.svg
index 33660c7..60adcaf 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f8.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f8.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m13.11 50.735c0 0-5.13 4.147-6.693 5.685-2.367 2.328-3.963 5.58 14.08 5.58 11.5 0 38.499 0 38.499 0v-2.896h-3.854c0 0-2.196-6.632-2.679-8.369-.195-.708-3.171.239-2.838.895.696 1.368-.428 7.475-.428 7.475h-22.586c-2.35 0-.915-1.783-.332-3.786l-3.855-.214c0 0 .588 4-6.425 4-4.445 0-7.965-.692-6.516-2.116 1.301-1.279 5.605-4.727 5.605-4.727l-1.981-1.527"/><path fill="#ce344a" d="m20.2 42.597c0 0 9.104-4 12.759-13.12 4.045-10.09-.585-23.52-.585-23.52s1.136-3.228 4.569-3.228c2.302-.002 3.373 2.446 3.373 2.446s1.969 21.96-1.23 28.645c-6.283 13.13-18.886 8.778-18.886 8.778"/><path fill="#f46767" d="m54.43 5.465c0 0-8.567-4.141-13.708-3.369-3.434.516-4.494 4.02-4.598 5.685-.344 5.54 2.209 16.07.707 21.425-1.326 4.728-8.995 13.845-14.1 13.88-.809.006-2.206-1.354-2.927-.997-2.445 1.211-10.228 2.12-9.479 7.226.677 4.613 8.05 7.388 16.403 7.668 4.122.139 12.563-1.495 14.409-7.904.688-2.392 3.796-2.063 3.796-2.063l1.57 6.247h9.995c0 0 2.07-7.573 2.07-15.441 0-8.344-4.32-9.616-5.711-14.81-1.216-4.548 1.573-17.547 1.573-17.547"/><path fill="#ed4c5c" d="m50.48 7.285c0 0-4.203-5.083-9.344-4.312-3.434.516-4.494 4.02-4.597 5.684-.344 5.542 2.208 16.07.706 21.426-1.326 4.728-8.995 13.845-14.1 13.88-.809.006-2.206-1.354-2.927-.997-2.445 1.211-9.732 2.584-7.444 7.226 2.51 5.09 22.426 5.239 28.55-6.03 2.216-4.076 5.32 1.973 8.371.391 4.897-2.539-2.352-10.813-2.86-18.282-.319-4.693 3.645-18.99 3.645-18.99"/><g fill="#a8203b"><ellipse cx="25.653" cy="44.948" rx="1.327" ry="1.305"/><ellipse cx="30.05" cy="42.34" rx="1.327" ry="1.305"/><ellipse cx="34.09" cy="39.722" rx="1.327" ry="1.305"/><ellipse cx="37.31" cy="35.403" rx="1.327" ry="1.305"/><ellipse cx="38.639" cy="30.32" rx="1.327" ry="1.305"/><ellipse cx="40.16" cy="25.02" rx="1.327" ry="1.305"/><ellipse cx="40.4" cy="20.551" rx="1.327" ry="1.305"/><ellipse cx="39.966" cy="15.543" rx="1.327" ry="1.305"/><ellipse cx="39.966" cy="9.49" rx="1.327" ry="1.305"/></g><g fill="#d0d0d0"><path d="m25.427 45.26c-.293 0-.578-.147-.738-.414-.102-.172-2.484-4.22-.025-6.233.363-.298.904-.25 1.207.107s.253.889-.11 1.187c-1.11.91-.052 3.315.406 4.086.238.4.103.917-.306 1.151-.137.079-.287.116-.434.116"/><path d="m29.614 42.597c-.25 0-.497-.106-.667-.312-.136-.166-3.334-4.098-1.282-6.572.299-.36.838-.414 1.205-.121.367.294.422.825.123 1.186-.975 1.177.643 3.667 1.285 4.447.298.36.242.892-.126 1.185-.158.125-.349.187-.538.187"/><path d="m33.619 40.1c-.189 0-.382-.062-.539-.188-.385-.307-3.754-3.07-3.834-5.656-.025-.854.306-1.616.959-2.205.349-.315.89-.292 1.21.051s.297.875-.052 1.189c-.291.263-.415.545-.403.914.047 1.542 2.385 3.748 3.199 4.399.368.293.424.824.124 1.186-.168.203-.416.31-.664.31"/><path d="m36.941 35.857c-.104 0-.21-.019-.313-.058-.461-.178-4.525-1.802-5.401-4.24-.29-.807-.211-1.632.229-2.389.234-.403.758-.543 1.168-.313.411.23.554.745.319 1.148-.195.337-.228.643-.102.991.464 1.294 2.952 2.671 4.411 3.234.44.17.657.658.484 1.091-.131.333-.454.536-.795.536"/><path d="m38.3 31.01c-.039 0-.077-.003-.116-.008-.465-.062-4.583-.663-5.818-2.73-.426-.714-.478-1.523-.149-2.343.173-.433.669-.646 1.11-.477.44.171.656.659.483 1.092-.174.435-.074.695.033.873.615 1.032 3.13 1.723 4.571 1.916.468.063.797.487.733.947-.058.423-.426.73-.847.73"/><path d="m37.13 26.03c-1.279 0-2.701-.203-3.604-.951-.643-.533-.965-1.28-.935-2.16.018-.465.409-.84.887-.813.474.017.843.407.826.872-.017.466.166.679.326.813.93.771 3.535.6 4.959.31.46-.095.916.198 1.013.654.097.455-.2.9-.665.995-.237.049-1.442.28-2.807.28"/><path d="m37.3 21.647c-1.279 0-2.701-.203-3.604-.951-.644-.532-.966-1.28-.935-2.16.017-.465.414-.821.887-.812.474.016.843.406.826.871-.017.466.165.68.325.813.93.771 3.536.6 4.959.311.461-.095.917.197 1.014.653.096.455-.202.9-.665.995-.238.049-1.442.28-2.807.28"/><path d="m36.914 16.848c-1.279 0-2.702-.203-3.604-.95-.645-.533-.967-1.28-.936-2.161.018-.464.413-.828.887-.812.473.016.843.406.826.871-.017.467.165.68.326.813.93.771 3.535.6 4.959.311.461-.095.916.197 1.013.653.096.455-.201.901-.664.995-.237.048-1.441.28-2.807.28"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m13.1 50.7c0 0-5.1 4.1-6.7 5.7-2.4 2.3-4 5.6 14.1 5.6 11.5 0 38.5 0 38.5 0v-2.9h-3.9c0 0-2.2-6.6-2.7-8.4-.2-.7-3.2.2-2.8.9.7 1.4-.4 7.5-.4 7.5h-22.6c-2.4 0-.9-1.8-.3-3.8l-3.9-.2c0 0 .6 4-6.4 4-4.4 0-8-.7-6.5-2.1 1.3-1.3 5.6-4.7 5.6-4.7l-2-1.6" fill="#d0d0d0"/><path d="m20.2 42.6c0 0 9.1-4 12.8-13.1 4-10.1-.6-23.5-.6-23.5s1.1-3.2 4.6-3.2c2.3 0 3.4 2.4 3.4 2.4s2 22-1.2 28.6c-6.4 13.1-19 8.8-19 8.8" fill="#ce344a"/><path d="m54.4 5.5c0 0-8.6-4.1-13.7-3.4-3.4.5-4.5 4-4.6 5.7-.3 5.5 2.2 16.1.7 21.4-1.3 4.7-9 13.8-14.1 13.9-.8 0-2.2-1.4-2.9-1-2.4 1.2-10.2 2.1-9.5 7.2.7 4.6 8 7.4 16.4 7.7 4.1.1 12.6-1.5 14.4-7.9.7-2.4 3.8-2.1 3.8-2.1l1.6 6.2h10c0 0 2.1-7.6 2.1-15.4 0-8.3-4.3-9.6-5.7-14.8-1.3-4.5 1.5-17.5 1.5-17.5" fill="#f46767"/><path d="m50.5 7.3c0 0-4.2-5.1-9.3-4.3-3.4.5-4.5 4-4.6 5.7-.3 5.5 2.2 16.1.7 21.4-1.3 4.7-9 13.8-14.1 13.9-.8 0-2.2-1.4-2.9-1-2.4 1.2-9.7 2.6-7.4 7.2 2.5 5.1 22.4 5.2 28.5-6 2.2-4.1 5.3 2 8.4.4 4.9-2.5-2.4-10.8-2.9-18.3-.4-4.7 3.6-19 3.6-19" fill="#ed4c5c"/><g fill="#a8203b"><ellipse cx="25.7" cy="44.9" rx="1.3" ry="1.3"/><ellipse cx="30.1" cy="42.3" rx="1.3" ry="1.3"/><ellipse cx="34.1" cy="39.7" rx="1.3" ry="1.3"/><ellipse cx="37.3" cy="35.4" rx="1.3" ry="1.3"/><ellipse cx="38.6" cy="30.3" rx="1.3" ry="1.3"/><ellipse cx="40.2" cy="25" rx="1.3" ry="1.3"/><ellipse cx="40.4" cy="20.6" rx="1.3" ry="1.3"/><ellipse cx="40" cy="15.5" rx="1.3" ry="1.3"/><ellipse cx="40" cy="9.5" rx="1.3" ry="1.3"/></g><g fill="#d0d0d0"><path d="m25.4 45.3c-.3 0-.6-.1-.7-.4-.1-.2-2.5-4.2 0-6.2.4-.3.9-.2 1.2.1s.3.9-.1 1.2c-1.1.9-.1 3.3.4 4.1.2.4.1.9-.3 1.2-.2-.1-.3 0-.5 0"/><path d="m29.6 42.6c-.2 0-.5-.1-.7-.3-.1-.2-3.3-4.1-1.3-6.6.3-.4.8-.4 1.2-.1.4.3.4.8.1 1.2-1 1.2.6 3.7 1.3 4.4.3.4.2.9-.1 1.2-.1.1-.3.2-.5.2"/><path d="m33.6 40.1c-.2 0-.4-.1-.5-.2-.4-.3-3.8-3.1-3.8-5.7 0-.9.3-1.6 1-2.2.3-.3.9-.3 1.2.1s.3.9-.1 1.2c-.3.3-.4.5-.4.9 0 1.5 2.4 3.7 3.2 4.4.4.3.4.8.1 1.2-.2.2-.4.3-.7.3"/><path d="m36.9 35.9c-.1 0-.2 0-.3-.1-.5-.2-4.5-1.8-5.4-4.2-.3-.8-.2-1.6.2-2.4.2-.4.8-.5 1.2-.3.4.2.6.7.3 1.1-.2.3-.2.6-.1 1 .5 1.3 3 2.7 4.4 3.2.4.2.7.7.5 1.1-.1.4-.4.6-.8.6"/><path d="m38.3 31c0 0-.1 0-.1 0-.5-.1-4.6-.7-5.8-2.7-.4-.7-.5-1.5-.1-2.3.2-.4.7-.6 1.1-.5.4.2.7.7.5 1.1-.2.4-.1.7 0 .9.6 1 3.1 1.7 4.6 1.9.5.1.8.5.7.9-.1.4-.5.7-.9.7"/><path d="m37.1 26c-1.3 0-2.7-.2-3.6-1-.6-.5-1-1.3-.9-2.2 0-.5.4-.8.9-.8.5 0 .8.4.8.9 0 .5.2.7.3.8.9.8 3.5.6 5 .3.5-.1.9.2 1 .7.1.5-.2.9-.7 1-.2.1-1.4.3-2.8.3"/><path d="m37.3 21.6c-1.3 0-2.7-.2-3.6-1-.6-.5-1-1.3-.9-2.2 0-.5.4-.8.9-.8.5 0 .8.4.8.9 0 .5.2.7.3.8.9.8 3.5.6 5 .3.5-.1.9.2 1 .7.1.5-.2.9-.7 1-.2.1-1.4.3-2.8.3"/><path d="m36.9 16.8c-1.3 0-2.7-.2-3.6-.9-.6-.5-1-1.3-.9-2.2 0-.5.4-.8.9-.8.5 0 .8.4.8.9 0 .5.2.7.3.8.9.8 3.5.6 5 .3.5-.1.9.2 1 .7.1.5-.2.9-.7 1-.2 0-1.4.2-2.8.2"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fb.svg
index 2a24f18..480994c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe1bd" d="m29.948 28.07l-5.566-2.291-2.49-5.998-3.447 1.523 2.807 6.764c.154.364.412.651.725.845l-.002.002.02.008c.154.093.32.157.494.203l6.02 2.479c.947.398 2.039-.071 2.438-1.049.398-.974-.051-2.09-.999-2.486"/><circle fill="#ff8736" cx="16.701" cy="13.46" r="8.683"/><g fill="#231f20"><path d="m10.521 7.363c.184.726.492 1.401.846 2.051.346.655.732 1.286 1.135 1.906.813 1.235 1.691 2.428 2.639 3.562.941 1.139 1.949 2.224 3.041 3.211.549.49 1.119.958 1.732 1.364.607.417 1.268.759 1.99.954-.754-.05-1.475-.344-2.152-.679-.674-.353-1.305-.781-1.898-1.25-1.191-.938-2.244-2.03-3.213-3.185-.957-1.166-1.832-2.399-2.572-3.715-.371-.656-.707-1.335-.99-2.035-.264-.704-.519-1.43-.558-2.184"/><path d="m8.02 13.227c.521 1.085 1.152 2.096 1.969 2.923.814.828 1.795 1.46 2.859 1.938 1.059.498 2.199.838 3.32 1.318.559.239 1.117.525 1.596.934.477.407.824.977.906 1.578-.227-.564-.615-1.017-1.1-1.324-.48-.315-1.029-.521-1.586-.714-1.117-.369-2.289-.688-3.408-1.2-1.113-.514-2.172-1.231-2.963-2.19-.798-.95-1.327-2.091-1.593-3.263"/><path d="m23.685 18.621c-.693.29-1.531.44-2.299.091-.76-.369-1.205-1.124-1.506-1.835-.596-1.462-.818-2.985-1.148-4.461-.311-1.478-.662-2.946-1.318-4.273-.646-1.321-1.717-2.456-3.156-3.02.75.154 1.465.503 2.088.98.615.488 1.121 1.113 1.514 1.791.793 1.365 1.184 2.891 1.51 4.382l.439 2.24c.143.742.309 1.475.545 2.173.244.685.578 1.367 1.184 1.737.602.392 1.41.348 2.147.19"/><path d="m21.729 6.383c.4.266.691.67.926 1.086.238.42.424.867.576 1.324.293.919.451 1.882.482 2.85.066 1.929-.377 3.929-1.477 5.581-.553.818-1.264 1.532-2.08 2.083-.822.544-1.73.942-2.672 1.18-1.887.495-3.844.437-5.709.124 1.893.062 3.799-.061 5.568-.611 1.762-.544 3.354-1.612 4.352-3.138 1.021-1.511 1.473-3.369 1.512-5.216.012-.925-.07-1.859-.281-2.768-.214-.898-.513-1.828-1.197-2.495"/></g><g fill="#3e4347"><path d="m49.987 60.6l-.865-4.121c.873-.781 1.168-.795 1.184-.803.623-.308 1.379-.041 1.695.598l3.717 7.52c-1.391.686-4.217-.296-5.731-3.194"/><path d="m36.618 56.873l-1.447-3.854c.945-.69 2.514-1.459 2.531-1.466.648-.243 1.375.097 1.625.764l2.947 7.854c-1.453.545-4.257-.399-5.656-3.298"/></g><path fill="#ffe1bd" d="m37.683 19.14l.994 3.844-1.417 6.498-3.23-2.472z"/><path fill="#47b892" d="m39.08 42.559h-13.193c0 0 .299-7.885 3.404-13.468 2.428-4.367 8.697-3.02 8.697-3.02l1.092 16.483"/><g fill="#ffe1bd"><path d="m54.956 29.802c-2.123-1.688-2.611-2.067-3.479-1.158l-5.677-3.704c-.332-.215-.707-.306-1.074-.289v-.002l-.02.004c-.178.01-.354.051-.521.111l-6.371 1.349c-1.01.206-1.643 1.211-1.42 2.242.219 1.029 1.221 1.696 2.225 1.49l5.887-1.249 4.73 3.084c-.119.453.031.957.42 1.266l.695.552c.371.295.857.332 1.248.136.98.672 2.461 1.298 3.789-.459.22-.289 1.439-1.892-.432-3.373"/><path d="m37.466 25.95c-2.947.099-4.092 5.331-5.404 5.683-2.148.573-2.523-2.114-.82-4.276 2.132-2.708 6.224-1.407 6.224-1.407"/><path d="m49.12 56.48l.865 4.121c0 0-5.451-1.983-8.516-2.263-.965-.088-1.146-1.172-1.582-1.414-2.725-1.519-3.912-5.917-3.912-5.917l5.598-1.202c0 0 .166 1.675 1.02 4.071.109.309.252.654 1.188.634 1.808-.04 3.806 2.309 5.339 1.97"/><path d="m36.618 56.873l-1.447-3.854c-1.373.389-1.967-.285-3.375.363-.639.294-.865-.07-.785-.312.432-1.322.35-1.988.35-1.988l-5.941-.812c0 0-.344 4.298 2.174 7.793.594.824 2.854.965 3.434.661 2.973-1.554 5.59-1.851 5.59-1.851"/></g><path fill="#3e4347" d="m25.886 42.559h13.193l3.516 7.02-6.869 1.477c-.352-.735-.697-1.443-1.021-2.093-.219-.438-.598-.794-1.123-.794-.643 0-.984.532-1.18 1.121-.213.639-.41 1.253-.598 1.852l-6.639-.907.721-7.678"/><path fill="#e6b796" d="m36.606 19.308c-.846 4.245-5.748 2.53-4.83 5.507.518 1.683-.686 3.257-.686 3.257 3.609.719 5.578-3.385 6.566-8.342l-1.05-.422"/><path fill="#ffe1bd" d="m41.729 5.192l-15.261 1.659c-2.262 2.695-1.451 4.524-1.77 5.817-.143.575-1.533 1.401-2.27 1.833-1.641.96.496 2.426 1.404 2.418.293 1.413-.674 1.589 1.506 1.826 1.199.129 3.01-.643 3.01-.643-5.846 2.233-4.768 3.845-2.516 3.707-.549 2.754 1.16 3.095 4.908 3.842 3.055.608 6.072-1.676 6.918-5.922l4.236.101-.163-14.638"/><g fill="#594640"><path d="m37.06.222c10.598 2.111 10.191 11.388 7.477 17.334-1.445 3.165-3.625 4.93-5.859 5.429l-.902-.876-.117-2.379c0 0 2.168-.072 3.252-2.315.496-1.024-.176-3.306-1.752-3.711-1.102-.285-2.865.226-3.256.409.547-2.748 1.674-5.482-.037-6.672-1.406-.98-8.617.693-9.396-.59-2.104-3.432 4.209-7.902 10.59-6.629"/><path d="m38.05 16.272c-.191-.065-.393-.076-.58-.038.129-.175.279-.343.441-.507.201-.202.43-.384.66-.606-.627.04-1.248.368-1.637.923-.387.565-.422 1.292-.197 1.875.115-.304.176-.595.277-.854.066-.164.139-.319.221-.468.078.02.154.034.225.057.15.047.283.076.41.127.133.041.258.104.406.157.145.057.287.139.484.204-.036-.389-.329-.73-.71-.87"/><ellipse transform="matrix(.9807.1954-.1954.9807 2.997-5.057)" cx="27.13" cy="12.662" rx="1.162" ry="1.625"/><path d="m28.347 18.1c0 0-2.18 2.106-2.678 2.362-1.063.549-1.279.006-.709-.519.588-.541 3.387-1.843 3.387-1.843"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.9 25.6l-5.6-2.3-2.5-6.1-3.5 1.5 2.8 6.9c.2.4.4.7.7.9.2.1.3.2.5.2l6 2.5c.9.4 2-.1 2.4-1.1.6-1 .2-2.1-.8-2.5" fill="#ffe1bd"/><ellipse cx="16.7" cy="10.8" rx="8.7" ry="8.8" fill="#ff8736"/><g fill="#231f20"><path d="m10.5 4.6c.2.8.5 1.4.8 2.1.3.7.7 1.3 1.1 1.9.8 1.3 1.7 2.5 2.6 3.6.9 1.2 1.9 2.3 3 3.3.5.5 1.1 1 1.7 1.4.6.4 1.3.8 2 1-.8-.1-1.5-.4-2.2-.7-.7-.4-1.3-.8-1.9-1.3-1.2-1-2.2-2.1-3.2-3.2-1-1.2-1.8-2.4-2.6-3.8-.4-.7-.7-1.4-1-2.1 0-.7-.3-1.4-.3-2.2"/><path d="m8 10.6c.5 1.1 1.2 2.1 2 3 .8.8 1.8 1.5 2.9 2 1.1.5 2.2.9 3.3 1.3.6.2 1.1.5 1.6.9.5.4.8 1 .9 1.6-.2-.6-.6-1-1.1-1.3-.5-.3-1-.5-1.6-.7-1.1-.4-2.3-.7-3.4-1.2-1.1-.5-2.2-1.2-3-2.2-.8-1.1-1.3-2.3-1.6-3.4"/><path d="m23.7 16c-.7.3-1.5.4-2.3.1-.8-.4-1.2-1.1-1.5-1.9-.6-1.5-.8-3-1.1-4.5-.3-1.5-.7-3-1.3-4.3-.6-1.3-1.7-2.5-3.2-3.1.8.2 1.5.5 2.1 1 .6.5 1.1 1.1 1.5 1.8.8 1.4 1.2 2.9 1.5 4.4l.4 2.3c.1.8.3 1.5.5 2.2.2.7.6 1.4 1.2 1.8.6.4 1.4.4 2.2.2"/><path d="m21.7 3.6c.4.3.7.7.9 1.1.2.4.4.9.6 1.3.3 1 .5 2 .5 3 .1 2-.4 4-1.5 5.7-.6.8-1.3 1.6-2.1 2.1-.8.6-1.7 1-2.7 1.2-1.9.5-3.8.4-5.7.1 1.9.1 3.8-.1 5.6-.6 1.8-.6 3.4-1.6 4.4-3.2 1-1.5 1.5-3.4 1.5-5.3 0-.9-.1-1.9-.3-2.8-.2-1-.5-1.9-1.2-2.6"/></g><g fill="#3e4347"><path d="m50 58.6l-.9-4.2c.9-.8 1.2-.8 1.2-.8.6-.3 1.4 0 1.7.6l3.7 7.6c-1.4.7-4.2-.3-5.7-3.2"/><path d="m36.6 54.8l-1.4-3.9c.9-.7 2.5-1.5 2.5-1.5.6-.2 1.4.1 1.6.8l2.9 8c-1.4.5-4.2-.5-5.6-3.4"/></g><path fill="#ffe1bd" d="m37.7 16.5l1.8.4-2.2 10.1-3.3-2.5z"/><path d="m39.1 40.3h-13.2c0 0 .3-8 3.4-13.6 2.4-4.4 8.7-3.1 8.7-3.1l1.1 16.7" fill="#47b892"/><g fill="#ffe1bd"><path d="m55 27.4c-2.1-1.7-2.6-2.1-3.5-1.2l-5.7-3.8c-.3-.2-.7-.3-1.1-.3-.2 0-.4.1-.5.1l-6.4 1.4c-1 .2-1.6 1.2-1.4 2.3.2 1 1.2 1.7 2.2 1.5l5.9-1.3 4.7 3.1c-.1.5 0 1 .4 1.3l.7.6c.4.3.9.3 1.2.1 1 .7 2.5 1.3 3.8-.5.3-.2 1.5-1.8-.3-3.3"/><path d="m37.5 23.4c-2.9.1-4.1 5.4-5.4 5.8-2.1.6-2.5-2.1-.8-4.3 2.1-2.8 6.2-1.5 6.2-1.5"/><path d="m49.1 54.4l.9 4.2c0 0-5.5-2-8.5-2.3-1-.1-1.1-1.2-1.6-1.4-2.7-1.5-3.9-6-3.9-6l5.6-1.2c0 0 .2 1.7 1 4.1.1.3.3.7 1.2.6 1.8-.1 3.8 2.3 5.3 2"/><path d="m36.6 54.8l-1.4-3.9c-1.4.4-2-.3-3.4.4-.6.3-.9-.1-.8-.3.4-1.3.4-2 .4-2l-5.9-.8c0 0-.3 4.4 2.2 7.9.6.8 2.9 1 3.4.7 2.9-1.7 5.5-2 5.5-2"/></g><path d="m25.9 40.3h13.2l3.5 7.1-6.9 1.5c-.4-.7-.7-1.5-1-2.1-.2-.4-.6-.8-1.1-.8-.6 0-1 .5-1.2 1.1-.2.6-.4 1.3-.6 1.9l-6.6-.9.7-7.8" fill="#3e4347"/><path d="m32.2 21.9c.5 1.7-.9 3.5-.9 3.5 3.6.7 4.9-2.7 5.9-7.7 0 0-5.9 1.2-5 4.2" fill="#e6b796"/><path d="m39.9 5.5l-11.4 2.3c-1.7 2.3-1 3.8-1.2 4.9-.1.5-1.2 1.2-1.8 1.6-1.3.9.5 2 1.3 1.9.3 1.1-1.1 1.6 2.2 1.4 0 0-3.5.9-1.3 1.9-.4 1.3-1 3.7 6.1 2.1 2.1-.5 3.4-3.9 3.4-3.9l3.5-.1-.8-12.1" fill="#ffe1bd"/><path d="m32.3 3.5c7.5-1.4 10.9 2.9 11.3 4.7 1.2 4.6-1.1 9.3-5 12.5 0 0-1.5-.9-1.5-2.9 0 0 1.7 1.1 3-2.6 1.1-3.1-2-5.2-4.3-1.1l-.4-.1c-.6-2.3 1.5-4.8-.9-6-2.1-1.1-6.4.3-6.4.3-.5-1.5 1.2-4.2 4.2-4.8" fill="#594640"/><path d="m30 13c-.1.7-.6 1.2-1 1.1-.5-.1-.5-.6-.4-1.3.1-.7.3-1.2.8-1.1.4.1.7.7.6 1.3" fill="#664e27"/><path d="m36.7 14.9c.2-1.3 1.5-2.3 2.6-2.2 0 0-2.1 1.3-2 3.5 0 0-.7-.4-.6-1.3" fill="#e6b796"/><path d="m30.1 17.5c0 0-1.5.8-2 1-1 .3-1.2 0-.5-.3.5-.3 1.4-.5 1.4-.5l1.1-.2" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fc.svg
index 6bc07ec..dd18a65 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#fed0ac" d="m29.948 28.07l-5.566-2.291-2.49-5.998-3.447 1.523 2.807 6.764c.154.364.412.651.725.845l-.002.002.02.008c.154.093.32.157.494.203l6.02 2.479c.947.398 2.039-.071 2.438-1.049.398-.974-.051-2.09-.999-2.486"/><circle fill="#ff8736" cx="16.701" cy="13.46" r="8.683"/><g fill="#231f20"><path d="m10.521 7.363c.184.726.492 1.401.846 2.051.346.655.732 1.286 1.135 1.906.813 1.235 1.691 2.428 2.639 3.562.941 1.139 1.949 2.224 3.041 3.211.549.49 1.119.958 1.732 1.364.607.417 1.268.759 1.99.954-.754-.05-1.475-.344-2.152-.679-.674-.353-1.305-.781-1.898-1.25-1.191-.938-2.244-2.03-3.213-3.185-.957-1.166-1.832-2.399-2.572-3.715-.371-.656-.707-1.335-.99-2.035-.264-.704-.519-1.43-.558-2.184"/><path d="m8.02 13.227c.521 1.085 1.152 2.096 1.969 2.923.814.828 1.795 1.46 2.859 1.938 1.059.498 2.199.838 3.32 1.318.559.239 1.117.525 1.596.934.477.407.824.977.906 1.578-.227-.564-.615-1.017-1.1-1.324-.48-.315-1.029-.521-1.586-.714-1.117-.369-2.289-.688-3.408-1.2-1.113-.514-2.172-1.231-2.963-2.19-.798-.95-1.327-2.091-1.593-3.263"/><path d="m23.685 18.621c-.693.29-1.531.44-2.299.091-.76-.369-1.205-1.124-1.506-1.835-.596-1.462-.818-2.985-1.148-4.461-.311-1.478-.662-2.946-1.318-4.273-.646-1.321-1.717-2.456-3.156-3.02.75.154 1.465.503 2.088.98.615.488 1.121 1.113 1.514 1.791.793 1.365 1.184 2.891 1.51 4.382l.439 2.24c.143.742.309 1.475.545 2.173.244.685.578 1.367 1.184 1.737.602.392 1.41.348 2.147.19"/><path d="m21.729 6.383c.4.266.691.67.926 1.086.238.42.424.867.576 1.324.293.919.451 1.882.482 2.85.066 1.929-.377 3.929-1.477 5.581-.553.818-1.264 1.532-2.08 2.083-.822.544-1.73.942-2.672 1.18-1.887.495-3.844.437-5.709.124 1.893.062 3.799-.061 5.568-.611 1.762-.544 3.354-1.612 4.352-3.138 1.021-1.511 1.473-3.369 1.512-5.216.012-.925-.07-1.859-.281-2.768-.214-.898-.513-1.828-1.197-2.495"/></g><g fill="#3e4347"><path d="m49.987 60.6l-.865-4.121c.873-.781 1.168-.795 1.184-.803.623-.308 1.379-.041 1.695.598l3.717 7.52c-1.391.686-4.217-.296-5.731-3.194"/><path d="m36.618 56.873l-1.447-3.854c.945-.69 2.514-1.459 2.531-1.466.648-.243 1.375.097 1.625.764l2.947 7.854c-1.453.545-4.257-.399-5.656-3.298"/></g><path fill="#fed0ac" d="m37.683 19.14l.994 3.844-1.417 6.498-3.23-2.472z"/><path fill="#47b892" d="m39.08 42.559h-13.193c0 0 .299-7.885 3.404-13.468 2.428-4.367 8.697-3.02 8.697-3.02l1.092 16.483"/><g fill="#fed0ac"><path d="m54.956 29.802c-2.123-1.688-2.611-2.067-3.479-1.158l-5.677-3.704c-.332-.215-.707-.306-1.074-.289v-.002l-.02.004c-.178.01-.354.051-.521.111l-6.371 1.349c-1.01.206-1.643 1.211-1.42 2.242.219 1.029 1.221 1.696 2.225 1.49l5.887-1.249 4.73 3.084c-.119.453.031.957.42 1.266l.695.552c.371.295.857.332 1.248.136.98.672 2.461 1.298 3.789-.459.22-.289 1.439-1.892-.432-3.373"/><path d="m37.466 25.95c-2.947.099-4.092 5.331-5.404 5.683-2.148.573-2.523-2.114-.82-4.276 2.132-2.708 6.224-1.407 6.224-1.407"/><path d="m49.12 56.48l.865 4.121c0 0-5.451-1.983-8.516-2.263-.965-.088-1.146-1.172-1.582-1.414-2.725-1.519-3.912-5.917-3.912-5.917l5.598-1.202c0 0 .166 1.675 1.02 4.071.109.309.252.654 1.188.634 1.808-.04 3.806 2.309 5.339 1.97"/><path d="m36.618 56.873l-1.447-3.854c-1.373.389-1.967-.285-3.375.363-.639.294-.865-.07-.785-.312.432-1.322.35-1.988.35-1.988l-5.941-.812c0 0-.344 4.298 2.174 7.793.594.824 2.854.965 3.434.661 2.973-1.554 5.59-1.851 5.59-1.851"/></g><path fill="#3e4347" d="m25.886 42.559h13.193l3.516 7.02-6.869 1.477c-.352-.735-.697-1.443-1.021-2.093-.219-.438-.598-.794-1.123-.794-.643 0-.984.532-1.18 1.121-.213.639-.41 1.253-.598 1.852l-6.639-.907.721-7.678"/><path fill="#e0a372" d="m36.606 19.308c-.846 4.245-5.748 2.53-4.83 5.507.518 1.683-.686 3.257-.686 3.257 3.609.719 5.578-3.385 6.566-8.342l-1.05-.422"/><path fill="#fed0ac" d="m41.729 5.192l-15.261 1.659c-2.262 2.695-1.451 4.524-1.77 5.817-.143.575-1.533 1.401-2.27 1.833-1.641.96.496 2.426 1.404 2.418.293 1.413-.674 1.589 1.506 1.826 1.199.129 3.01-.643 3.01-.643-5.846 2.233-4.768 3.845-2.516 3.707-.549 2.754 1.16 3.095 4.908 3.842 3.055.608 6.072-1.676 6.918-5.922l4.236.101-.163-14.638"/><path fill="#dbb471" d="m37.06.222c10.598 2.111 10.191 11.388 7.477 17.334-1.445 3.165-3.625 4.93-5.859 5.429l-.902-.876-.117-2.379c0 0 2.168-.072 3.252-2.315.496-1.024-.176-3.306-1.752-3.711-1.102-.285-2.865.226-3.256.409.547-2.748 1.674-5.482-.037-6.672-1.406-.98-8.617.693-9.396-.59-2.104-3.432 4.209-7.902 10.59-6.629"/><g fill="#594640"><path d="m38.05 16.272c-.191-.065-.393-.076-.58-.038.129-.175.279-.343.441-.507.201-.202.43-.384.66-.606-.627.04-1.248.368-1.637.923-.387.565-.422 1.292-.197 1.875.115-.304.176-.595.277-.854.066-.164.139-.319.221-.468.078.02.154.034.225.057.15.047.283.076.41.127.133.041.258.104.406.157.145.057.287.139.484.204-.036-.389-.329-.73-.71-.87"/><ellipse transform="matrix(.9807.1954-.1954.9807 2.997-5.057)" cx="27.13" cy="12.662" rx="1.162" ry="1.625"/><path d="m28.347 18.1c0 0-2.18 2.106-2.678 2.362-1.063.549-1.279.006-.709-.519.588-.541 3.387-1.843 3.387-1.843"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.9 25.6l-5.6-2.3-2.5-6.1-3.5 1.5 2.8 6.9c.2.4.4.7.7.9.2.1.3.2.5.2l6 2.5c.9.4 2-.1 2.4-1.1.6-1 .2-2.1-.8-2.5" fill="#fed0ac"/><ellipse cx="16.7" cy="10.8" rx="8.7" ry="8.8" fill="#ff8736"/><g fill="#231f20"><path d="m10.5 4.6c.2.8.5 1.4.8 2.1.3.7.7 1.3 1.1 1.9.8 1.3 1.7 2.5 2.6 3.6.9 1.2 1.9 2.3 3 3.3.5.5 1.1 1 1.7 1.4.6.4 1.3.8 2 1-.8-.1-1.5-.4-2.2-.7-.7-.4-1.3-.8-1.9-1.3-1.2-1-2.2-2.1-3.2-3.2-1-1.2-1.8-2.4-2.6-3.8-.4-.7-.7-1.4-1-2.1 0-.7-.3-1.4-.3-2.2"/><path d="m8 10.6c.5 1.1 1.2 2.1 2 3 .8.8 1.8 1.5 2.9 2 1.1.5 2.2.9 3.3 1.3.6.2 1.1.5 1.6.9.5.4.8 1 .9 1.6-.2-.6-.6-1-1.1-1.3-.5-.3-1-.5-1.6-.7-1.1-.4-2.3-.7-3.4-1.2-1.1-.5-2.2-1.2-3-2.2-.8-1.1-1.3-2.3-1.6-3.4"/><path d="m23.7 16c-.7.3-1.5.4-2.3.1-.8-.4-1.2-1.1-1.5-1.9-.6-1.5-.8-3-1.1-4.5-.3-1.5-.7-3-1.3-4.3-.6-1.3-1.7-2.5-3.2-3.1.8.2 1.5.5 2.1 1 .6.5 1.1 1.1 1.5 1.8.8 1.4 1.2 2.9 1.5 4.4l.4 2.3c.1.8.3 1.5.5 2.2.2.7.6 1.4 1.2 1.8.6.4 1.4.4 2.2.2"/><path d="m21.7 3.6c.4.3.7.7.9 1.1.2.4.4.9.6 1.3.3 1 .5 2 .5 3 .1 2-.4 4-1.5 5.7-.6.8-1.3 1.6-2.1 2.1-.8.6-1.7 1-2.7 1.2-1.9.5-3.8.4-5.7.1 1.9.1 3.8-.1 5.6-.6 1.8-.6 3.4-1.6 4.4-3.2 1-1.5 1.5-3.4 1.5-5.3 0-.9-.1-1.9-.3-2.8-.2-1-.5-1.9-1.2-2.6"/></g><g fill="#3e4347"><path d="m50 58.6l-.9-4.2c.9-.8 1.2-.8 1.2-.8.6-.3 1.4 0 1.7.6l3.7 7.6c-1.4.7-4.2-.3-5.7-3.2"/><path d="m36.6 54.8l-1.4-3.9c.9-.7 2.5-1.5 2.5-1.5.6-.2 1.4.1 1.6.8l2.9 8c-1.4.5-4.2-.5-5.6-3.4"/></g><path fill="#fed0ac" d="m37.7 16.5l1.8.4-2.2 10.1-3.3-2.5z"/><path d="m39.1 40.3h-13.2c0 0 .3-8 3.4-13.6 2.4-4.4 8.7-3.1 8.7-3.1l1.1 16.7" fill="#47b892"/><g fill="#fed0ac"><path d="m55 27.4c-2.1-1.7-2.6-2.1-3.5-1.2l-5.7-3.8c-.3-.2-.7-.3-1.1-.3-.2 0-.4.1-.5.1l-6.4 1.4c-1 .2-1.6 1.2-1.4 2.3.2 1 1.2 1.7 2.2 1.5l5.9-1.3 4.7 3.1c-.1.5 0 1 .4 1.3l.7.6c.4.3.9.3 1.2.1 1 .7 2.5 1.3 3.8-.5.3-.2 1.5-1.8-.3-3.3"/><path d="m37.5 23.4c-2.9.1-4.1 5.4-5.4 5.8-2.1.6-2.5-2.1-.8-4.3 2.1-2.8 6.2-1.5 6.2-1.5"/><path d="m49.1 54.4l.9 4.2c0 0-5.5-2-8.5-2.3-1-.1-1.1-1.2-1.6-1.4-2.7-1.5-3.9-6-3.9-6l5.6-1.2c0 0 .2 1.7 1 4.1.1.3.3.7 1.2.6 1.8-.1 3.8 2.3 5.3 2"/><path d="m36.6 54.8l-1.4-3.9c-1.4.4-2-.3-3.4.4-.6.3-.9-.1-.8-.3.4-1.3.4-2 .4-2l-5.9-.8c0 0-.3 4.4 2.2 7.9.6.8 2.9 1 3.4.7 2.9-1.7 5.5-2 5.5-2"/></g><path d="m25.9 40.3h13.2l3.5 7.1-6.9 1.5c-.4-.7-.7-1.5-1-2.1-.2-.4-.6-.8-1.1-.8-.6 0-1 .5-1.2 1.1-.2.6-.4 1.3-.6 1.9l-6.6-.9.7-7.8" fill="#3e4347"/><path d="m32.2 21.9c.5 1.7-.9 3.5-.9 3.5 3.6.7 4.9-2.7 5.9-7.7 0 0-5.9 1.2-5 4.2" fill="#e0a372"/><path d="m39.9 5.5l-11.4 2.3c-1.7 2.3-1 3.8-1.2 4.9-.1.5-1.2 1.2-1.8 1.6-1.3.9.5 2 1.3 1.9.3 1.1-1.1 1.6 2.2 1.4 0 0-3.5.9-1.3 1.9-.4 1.3-1 3.7 6.1 2.1 2.1-.5 3.4-3.9 3.4-3.9l3.5-.1-.8-12.1" fill="#fed0ac"/><path d="m32.3 3.5c7.5-1.4 10.9 2.9 11.3 4.7 1.2 4.6-1.1 9.3-5 12.5 0 0-1.5-.9-1.5-2.9 0 0 1.7 1.1 3-2.6 1.1-3.1-2-5.2-4.3-1.1l-.4-.1c-.6-2.3 1.5-4.8-.9-6-2.1-1.1-6.4.3-6.4.3-.5-1.5 1.2-4.2 4.2-4.8" fill="#dbb471"/><path d="m30 13c-.1.7-.6 1.2-1 1.1-.5-.1-.5-.6-.4-1.3.1-.7.3-1.2.8-1.1.4.1.7.7.6 1.3" fill="#664e27"/><path d="m36.7 14.9c.2-1.3 1.5-2.3 2.6-2.2 0 0-2.1 1.3-2 3.5 0 0-.7-.4-.6-1.3" fill="#e0a372"/><path d="m30.1 17.5c0 0-1.5.8-2 1-1 .3-1.2 0-.5-.3.5-.3 1.4-.5 1.4-.5l1.1-.2" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fd.svg
index 110b58b..0af2608 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d6a57c" d="m29.948 28.07l-5.566-2.291-2.49-5.998-3.447 1.523 2.807 6.764c.154.364.412.651.725.845l-.002.002.02.008c.154.093.32.157.494.203l6.02 2.479c.947.398 2.039-.071 2.438-1.049.398-.974-.051-2.09-.999-2.486"/><circle fill="#ff8736" cx="16.701" cy="13.46" r="8.683"/><g fill="#231f20"><path d="m10.521 7.363c.184.726.492 1.401.846 2.051.346.655.732 1.286 1.135 1.906.813 1.235 1.691 2.428 2.639 3.562.941 1.139 1.949 2.224 3.041 3.211.549.49 1.119.958 1.732 1.364.607.417 1.268.759 1.99.954-.754-.05-1.475-.344-2.152-.679-.674-.353-1.305-.781-1.898-1.25-1.191-.938-2.244-2.03-3.213-3.185-.957-1.166-1.832-2.399-2.572-3.715-.371-.656-.707-1.335-.99-2.035-.264-.704-.519-1.43-.558-2.184"/><path d="m8.02 13.227c.521 1.085 1.152 2.096 1.969 2.923.814.828 1.795 1.46 2.859 1.938 1.059.498 2.199.838 3.32 1.318.559.239 1.117.525 1.596.934.477.407.824.977.906 1.578-.227-.564-.615-1.017-1.1-1.324-.48-.315-1.029-.521-1.586-.714-1.117-.369-2.289-.688-3.408-1.2-1.113-.514-2.172-1.231-2.963-2.19-.798-.95-1.327-2.091-1.593-3.263"/><path d="m23.685 18.621c-.693.29-1.531.44-2.299.091-.76-.369-1.205-1.124-1.506-1.835-.596-1.462-.818-2.985-1.148-4.461-.311-1.478-.662-2.946-1.318-4.273-.646-1.321-1.717-2.456-3.156-3.02.75.154 1.465.503 2.088.98.615.488 1.121 1.113 1.514 1.791.793 1.365 1.184 2.891 1.51 4.382l.439 2.24c.143.742.309 1.475.545 2.173.244.685.578 1.367 1.184 1.737.602.392 1.41.348 2.147.19"/><path d="m21.729 6.383c.4.266.691.67.926 1.086.238.42.424.867.576 1.324.293.919.451 1.882.482 2.85.066 1.929-.377 3.929-1.477 5.581-.553.818-1.264 1.532-2.08 2.083-.822.544-1.73.942-2.672 1.18-1.887.495-3.844.437-5.709.124 1.893.062 3.799-.061 5.568-.611 1.762-.544 3.354-1.612 4.352-3.138 1.021-1.511 1.473-3.369 1.512-5.216.012-.925-.07-1.859-.281-2.768-.214-.898-.513-1.828-1.197-2.495"/></g><g fill="#3e4347"><path d="m49.987 60.6l-.865-4.121c.873-.781 1.168-.795 1.184-.803.623-.308 1.379-.041 1.695.598l3.717 7.52c-1.391.686-4.217-.296-5.731-3.194"/><path d="m36.618 56.873l-1.447-3.854c.945-.69 2.514-1.459 2.531-1.466.648-.243 1.375.097 1.625.764l2.947 7.854c-1.453.545-4.257-.399-5.656-3.298"/></g><path fill="#d6a57c" d="m37.683 19.14l.994 3.844-1.417 6.498-3.23-2.472z"/><path fill="#47b892" d="m39.08 42.559h-13.193c0 0 .299-7.885 3.404-13.468 2.428-4.367 8.697-3.02 8.697-3.02l1.092 16.483"/><g fill="#d6a57c"><path d="m54.956 29.802c-2.123-1.688-2.611-2.067-3.479-1.158l-5.677-3.704c-.332-.215-.707-.306-1.074-.289v-.002l-.02.004c-.178.01-.354.051-.521.111l-6.371 1.349c-1.01.206-1.643 1.211-1.42 2.242.219 1.029 1.221 1.696 2.225 1.49l5.887-1.249 4.73 3.084c-.119.453.031.957.42 1.266l.695.552c.371.295.857.332 1.248.136.98.672 2.461 1.298 3.789-.459.22-.289 1.439-1.892-.432-3.373"/><path d="m37.466 25.95c-2.947.099-4.092 5.331-5.404 5.683-2.148.573-2.523-2.114-.82-4.276 2.132-2.708 6.224-1.407 6.224-1.407"/><path d="m49.12 56.48l.865 4.121c0 0-5.451-1.983-8.516-2.263-.965-.088-1.146-1.172-1.582-1.414-2.725-1.519-3.912-5.917-3.912-5.917l5.598-1.202c0 0 .166 1.675 1.02 4.071.109.309.252.654 1.188.634 1.808-.04 3.806 2.309 5.339 1.97"/><path d="m36.618 56.873l-1.447-3.854c-1.373.389-1.967-.285-3.375.363-.639.294-.865-.07-.785-.312.432-1.322.35-1.988.35-1.988l-5.941-.812c0 0-.344 4.298 2.174 7.793.594.824 2.854.965 3.434.661 2.973-1.554 5.59-1.851 5.59-1.851"/></g><path fill="#3e4347" d="m25.886 42.559h13.193l3.516 7.02-6.869 1.477c-.352-.735-.697-1.443-1.021-2.093-.219-.438-.598-.794-1.123-.794-.643 0-.984.532-1.18 1.121-.213.639-.41 1.253-.598 1.852l-6.639-.907.721-7.678"/><path fill="#b58360" d="m36.606 19.308c-.846 4.245-5.748 2.53-4.83 5.507.518 1.683-.686 3.257-.686 3.257 3.609.719 5.578-3.385 6.566-8.342l-1.05-.422"/><path fill="#d6a57c" d="m41.729 5.192l-15.261 1.659c-2.262 2.695-1.451 4.524-1.77 5.817-.143.575-1.533 1.401-2.27 1.833-1.641.96.496 2.426 1.404 2.418.293 1.413-.674 1.589 1.506 1.826 1.199.129 3.01-.643 3.01-.643-5.846 2.233-4.768 3.845-2.516 3.707-.549 2.754 1.16 3.095 4.908 3.842 3.055.608 6.072-1.676 6.918-5.922l4.236.101-.163-14.638"/><g fill="#594640"><path d="m37.06.222c10.598 2.111 10.191 11.388 7.477 17.334-1.445 3.165-3.625 4.93-5.859 5.429l-.902-.876-.117-2.379c0 0 2.168-.072 3.252-2.315.496-1.024-.176-3.306-1.752-3.711-1.102-.285-2.865.226-3.256.409.547-2.748 1.674-5.482-.037-6.672-1.406-.98-8.617.693-9.396-.59-2.104-3.432 4.209-7.902 10.59-6.629"/><path d="m38.05 16.272c-.191-.065-.393-.076-.58-.038.129-.175.279-.343.441-.507.201-.202.43-.384.66-.606-.627.04-1.248.368-1.637.923-.387.565-.422 1.292-.197 1.875.115-.304.176-.595.277-.854.066-.164.139-.319.221-.468.078.02.154.034.225.057.15.047.283.076.41.127.133.041.258.104.406.157.145.057.287.139.484.204-.036-.389-.329-.73-.71-.87"/><ellipse transform="matrix(.9807.1954-.1954.9807 2.997-5.057)" cx="27.13" cy="12.662" rx="1.162" ry="1.625"/><path d="m28.347 18.1c0 0-2.18 2.106-2.678 2.362-1.063.549-1.279.006-.709-.519.588-.541 3.387-1.843 3.387-1.843"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.9 25.6l-5.6-2.3-2.5-6.1-3.5 1.5 2.8 6.9c.2.4.4.7.7.9.2.1.3.2.5.2l6 2.5c.9.4 2-.1 2.4-1.1.6-1 .2-2.1-.8-2.5" fill="#d6a57c"/><ellipse cx="16.7" cy="10.8" rx="8.7" ry="8.8" fill="#ff8736"/><g fill="#231f20"><path d="m10.5 4.6c.2.8.5 1.4.8 2.1.3.7.7 1.3 1.1 1.9.8 1.3 1.7 2.5 2.6 3.6.9 1.2 1.9 2.3 3 3.3.5.5 1.1 1 1.7 1.4.6.4 1.3.8 2 1-.8-.1-1.5-.4-2.2-.7-.7-.4-1.3-.8-1.9-1.3-1.2-1-2.2-2.1-3.2-3.2-1-1.2-1.8-2.4-2.6-3.8-.4-.7-.7-1.4-1-2.1 0-.7-.3-1.4-.3-2.2"/><path d="m8 10.6c.5 1.1 1.2 2.1 2 3 .8.8 1.8 1.5 2.9 2 1.1.5 2.2.9 3.3 1.3.6.2 1.1.5 1.6.9.5.4.8 1 .9 1.6-.2-.6-.6-1-1.1-1.3-.5-.3-1-.5-1.6-.7-1.1-.4-2.3-.7-3.4-1.2-1.1-.5-2.2-1.2-3-2.2-.8-1.1-1.3-2.3-1.6-3.4"/><path d="m23.7 16c-.7.3-1.5.4-2.3.1-.8-.4-1.2-1.1-1.5-1.9-.6-1.5-.8-3-1.1-4.5-.3-1.5-.7-3-1.3-4.3-.6-1.3-1.7-2.5-3.2-3.1.8.2 1.5.5 2.1 1 .6.5 1.1 1.1 1.5 1.8.8 1.4 1.2 2.9 1.5 4.4l.4 2.3c.1.8.3 1.5.5 2.2.2.7.6 1.4 1.2 1.8.6.4 1.4.4 2.2.2"/><path d="m21.7 3.6c.4.3.7.7.9 1.1.2.4.4.9.6 1.3.3 1 .5 2 .5 3 .1 2-.4 4-1.5 5.7-.6.8-1.3 1.6-2.1 2.1-.8.6-1.7 1-2.7 1.2-1.9.5-3.8.4-5.7.1 1.9.1 3.8-.1 5.6-.6 1.8-.6 3.4-1.6 4.4-3.2 1-1.5 1.5-3.4 1.5-5.3 0-.9-.1-1.9-.3-2.8-.2-1-.5-1.9-1.2-2.6"/></g><g fill="#3e4347"><path d="m50 58.6l-.9-4.2c.9-.8 1.2-.8 1.2-.8.6-.3 1.4 0 1.7.6l3.7 7.6c-1.4.7-4.2-.3-5.7-3.2"/><path d="m36.6 54.8l-1.4-3.9c.9-.7 2.5-1.5 2.5-1.5.6-.2 1.4.1 1.6.8l2.9 8c-1.4.5-4.2-.5-5.6-3.4"/></g><path fill="#d6a57c" d="m37.7 16.5l1.8.4-2.2 10.1-3.3-2.5z"/><path d="m39.1 40.3h-13.2c0 0 .3-8 3.4-13.6 2.4-4.4 8.7-3.1 8.7-3.1l1.1 16.7" fill="#47b892"/><g fill="#d6a57c"><path d="m55 27.4c-2.1-1.7-2.6-2.1-3.5-1.2l-5.7-3.8c-.3-.2-.7-.3-1.1-.3-.2 0-.4.1-.5.1l-6.4 1.4c-1 .2-1.6 1.2-1.4 2.3.2 1 1.2 1.7 2.2 1.5l5.9-1.3 4.7 3.1c-.1.5 0 1 .4 1.3l.7.6c.4.3.9.3 1.2.1 1 .7 2.5 1.3 3.8-.5.3-.2 1.5-1.8-.3-3.3"/><path d="m37.5 23.4c-2.9.1-4.1 5.4-5.4 5.8-2.1.6-2.5-2.1-.8-4.3 2.1-2.8 6.2-1.5 6.2-1.5"/><path d="m49.1 54.4l.9 4.2c0 0-5.5-2-8.5-2.3-1-.1-1.1-1.2-1.6-1.4-2.7-1.5-3.9-6-3.9-6l5.6-1.2c0 0 .2 1.7 1 4.1.1.3.3.7 1.2.6 1.8-.1 3.8 2.3 5.3 2"/><path d="m36.6 54.8l-1.4-3.9c-1.4.4-2-.3-3.4.4-.6.3-.9-.1-.8-.3.4-1.3.4-2 .4-2l-5.9-.8c0 0-.3 4.4 2.2 7.9.6.8 2.9 1 3.4.7 2.9-1.7 5.5-2 5.5-2"/></g><path d="m25.9 40.3h13.2l3.5 7.1-6.9 1.5c-.4-.7-.7-1.5-1-2.1-.2-.4-.6-.8-1.1-.8-.6 0-1 .5-1.2 1.1-.2.6-.4 1.3-.6 1.9l-6.6-.9.7-7.8" fill="#3e4347"/><path d="m32.2 21.9c.5 1.7-.9 3.5-.9 3.5 3.6.7 4.9-2.7 5.9-7.7 0 0-5.9 1.2-5 4.2" fill="#b58360"/><path d="m39.9 5.5l-11.4 2.3c-1.7 2.3-1 3.8-1.2 4.9-.1.5-1.2 1.2-1.8 1.6-1.3.9.5 2 1.3 1.9.3 1.1-1.1 1.6 2.2 1.4 0 0-3.5.9-1.3 1.9-.4 1.3-1 3.7 6.1 2.1 2.1-.5 3.4-3.9 3.4-3.9l3.5-.1-.8-12.1" fill="#d6a57c"/><path d="m32.3 3.5c7.5-1.4 10.9 2.9 11.3 4.7 1.2 4.6-1.1 9.3-5 12.5 0 0-1.5-.9-1.5-2.9 0 0 1.7 1.1 3-2.6 1.1-3.1-2-5.2-4.3-1.1l-.4-.1c-.6-2.3 1.5-4.8-.9-6-2.1-1.1-6.4.3-6.4.3-.5-1.5 1.2-4.2 4.2-4.8" fill="#594640"/><path d="m30 13c-.1.7-.6 1.2-1 1.1-.5-.1-.5-.6-.4-1.3.1-.7.3-1.2.8-1.1.4.1.7.7.6 1.3" fill="#664e27"/><path d="m36.7 14.9c.2-1.3 1.5-2.3 2.6-2.2 0 0-2.1 1.3-2 3.5 0 0-.7-.4-.6-1.3" fill="#b58360"/><path d="m30.1 17.5c0 0-1.5.8-2 1-1 .3-1.2 0-.5-.3.5-.3 1.4-.5 1.4-.5l1.1-.2" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fe.svg
index 0cde759..b0b9d36 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b47d56" d="m29.948 28.07l-5.566-2.291-2.49-5.998-3.447 1.523 2.807 6.764c.154.364.412.651.725.845l-.002.002.02.008c.154.093.32.157.494.203l6.02 2.479c.947.398 2.039-.071 2.438-1.049.398-.974-.051-2.09-.999-2.486"/><circle fill="#ff8736" cx="16.701" cy="13.46" r="8.683"/><g fill="#231f20"><path d="m10.521 7.363c.184.726.492 1.401.846 2.051.346.655.732 1.286 1.135 1.906.813 1.235 1.691 2.428 2.639 3.562.941 1.139 1.949 2.224 3.041 3.211.549.49 1.119.958 1.732 1.364.607.417 1.268.759 1.99.954-.754-.05-1.475-.344-2.152-.679-.674-.353-1.305-.781-1.898-1.25-1.191-.938-2.244-2.03-3.213-3.185-.957-1.166-1.832-2.399-2.572-3.715-.371-.656-.707-1.335-.99-2.035-.264-.704-.519-1.43-.558-2.184"/><path d="m8.02 13.227c.521 1.085 1.152 2.096 1.969 2.923.814.828 1.795 1.46 2.859 1.938 1.059.498 2.199.838 3.32 1.318.559.239 1.117.525 1.596.934.477.407.824.977.906 1.578-.227-.564-.615-1.017-1.1-1.324-.48-.315-1.029-.521-1.586-.714-1.117-.369-2.289-.688-3.408-1.2-1.113-.514-2.172-1.231-2.963-2.19-.798-.95-1.327-2.091-1.593-3.263"/><path d="m23.685 18.621c-.693.29-1.531.44-2.299.091-.76-.369-1.205-1.124-1.506-1.835-.596-1.462-.818-2.985-1.148-4.461-.311-1.478-.662-2.946-1.318-4.273-.646-1.321-1.717-2.456-3.156-3.02.75.154 1.465.503 2.088.98.615.488 1.121 1.113 1.514 1.791.793 1.365 1.184 2.891 1.51 4.382l.439 2.24c.143.742.309 1.475.545 2.173.244.685.578 1.367 1.184 1.737.602.392 1.41.348 2.147.19"/><path d="m21.729 6.383c.4.266.691.67.926 1.086.238.42.424.867.576 1.324.293.919.451 1.882.482 2.85.066 1.929-.377 3.929-1.477 5.581-.553.818-1.264 1.532-2.08 2.083-.822.544-1.73.942-2.672 1.18-1.887.495-3.844.437-5.709.124 1.893.062 3.799-.061 5.568-.611 1.762-.544 3.354-1.612 4.352-3.138 1.021-1.511 1.473-3.369 1.512-5.216.012-.925-.07-1.859-.281-2.768-.214-.898-.513-1.828-1.197-2.495"/></g><g fill="#3e4347"><path d="m49.987 60.6l-.865-4.121c.873-.781 1.168-.795 1.184-.803.623-.308 1.379-.041 1.695.598l3.717 7.52c-1.391.686-4.217-.296-5.731-3.194"/><path d="m36.618 56.873l-1.447-3.854c.945-.69 2.514-1.459 2.531-1.466.648-.243 1.375.097 1.625.764l2.947 7.854c-1.453.545-4.257-.399-5.656-3.298"/></g><path fill="#b47d56" d="m37.683 19.14l.994 3.844-1.417 6.498-3.23-2.472z"/><path fill="#47b892" d="m39.08 42.559h-13.193c0 0 .299-7.885 3.404-13.468 2.428-4.367 8.697-3.02 8.697-3.02l1.092 16.483"/><g fill="#b47d56"><path d="m54.956 29.802c-2.123-1.688-2.611-2.067-3.479-1.158l-5.677-3.704c-.332-.215-.707-.306-1.074-.289v-.002l-.02.004c-.178.01-.354.051-.521.111l-6.371 1.349c-1.01.206-1.643 1.211-1.42 2.242.219 1.029 1.221 1.696 2.225 1.49l5.887-1.249 4.73 3.084c-.119.453.031.957.42 1.266l.695.552c.371.295.857.332 1.248.136.98.672 2.461 1.298 3.789-.459.22-.289 1.439-1.892-.432-3.373"/><path d="m37.466 25.95c-2.947.099-4.092 5.331-5.404 5.683-2.148.573-2.523-2.114-.82-4.276 2.132-2.708 6.224-1.407 6.224-1.407"/><path d="m49.12 56.48l.865 4.121c0 0-5.451-1.983-8.516-2.263-.965-.088-1.146-1.172-1.582-1.414-2.725-1.519-3.912-5.917-3.912-5.917l5.598-1.202c0 0 .166 1.675 1.02 4.071.109.309.252.654 1.188.634 1.808-.04 3.806 2.309 5.339 1.97"/><path d="m36.618 56.873l-1.447-3.854c-1.373.389-1.967-.285-3.375.363-.639.294-.865-.07-.785-.312.432-1.322.35-1.988.35-1.988l-5.941-.812c0 0-.344 4.298 2.174 7.793.594.824 2.854.965 3.434.661 2.973-1.554 5.59-1.851 5.59-1.851"/></g><path fill="#3e4347" d="m25.886 42.559h13.193l3.516 7.02-6.869 1.477c-.352-.735-.697-1.443-1.021-2.093-.219-.438-.598-.794-1.123-.794-.643 0-.984.532-1.18 1.121-.213.639-.41 1.253-.598 1.852l-6.639-.907.721-7.678"/><path fill="#935e3e" d="m36.606 19.308c-.846 4.245-5.748 2.53-4.83 5.507.518 1.683-.686 3.257-.686 3.257 3.609.719 5.578-3.385 6.566-8.342l-1.05-.422"/><path fill="#b47d56" d="m41.729 5.192l-15.261 1.659c-2.262 2.695-1.451 4.524-1.77 5.817-.143.575-1.533 1.401-2.27 1.833-1.641.96.496 2.426 1.404 2.418.293 1.413-.674 1.589 1.506 1.826 1.199.129 3.01-.643 3.01-.643-5.846 2.233-4.768 3.845-2.516 3.707-.549 2.754 1.16 3.095 4.908 3.842 3.055.608 6.072-1.676 6.918-5.922l4.236.101-.163-14.638"/><path fill="#231f20" d="m37.06.222c10.598 2.111 10.191 11.388 7.477 17.334-1.445 3.165-3.625 4.93-5.859 5.429l-.902-.876-.117-2.379c0 0 2.168-.072 3.252-2.315.496-1.024-.176-3.306-1.752-3.711-1.102-.285-2.865.226-3.256.409.547-2.748 1.674-5.482-.037-6.672-1.406-.98-8.617.693-9.396-.59-2.104-3.432 4.209-7.902 10.59-6.629"/><g fill="#47352d"><path d="m38.05 16.272c-.191-.065-.393-.076-.58-.038.129-.175.279-.343.441-.507.201-.202.43-.384.66-.606-.627.04-1.248.368-1.637.923-.387.565-.422 1.292-.197 1.875.115-.304.176-.595.277-.854.066-.164.139-.319.221-.468.078.02.154.034.225.057.15.047.283.076.41.127.133.041.258.104.406.157.145.057.287.139.484.204-.036-.389-.329-.73-.71-.87"/><ellipse transform="matrix(.9807.1954-.1954.9807 2.997-5.057)" cx="27.13" cy="12.662" rx="1.162" ry="1.625"/><path d="m28.347 18.1c0 0-2.18 2.106-2.678 2.362-1.063.549-1.279.006-.709-.519.588-.541 3.387-1.843 3.387-1.843"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.9 25.6l-5.6-2.3-2.5-6.1-3.5 1.5 2.8 6.9c.2.4.4.7.7.9.2.1.3.2.5.2l6 2.5c.9.4 2-.1 2.4-1.1.6-1 .2-2.1-.8-2.5" fill="#b47d56"/><ellipse cx="16.7" cy="10.8" rx="8.7" ry="8.8" fill="#ff8736"/><g fill="#231f20"><path d="m10.5 4.6c.2.8.5 1.4.8 2.1.3.7.7 1.3 1.1 1.9.8 1.3 1.7 2.5 2.6 3.6.9 1.2 1.9 2.3 3 3.3.5.5 1.1 1 1.7 1.4.6.4 1.3.8 2 1-.8-.1-1.5-.4-2.2-.7-.7-.4-1.3-.8-1.9-1.3-1.2-1-2.2-2.1-3.2-3.2-1-1.2-1.8-2.4-2.6-3.8-.4-.7-.7-1.4-1-2.1 0-.7-.3-1.4-.3-2.2"/><path d="m8 10.6c.5 1.1 1.2 2.1 2 3 .8.8 1.8 1.5 2.9 2 1.1.5 2.2.9 3.3 1.3.6.2 1.1.5 1.6.9.5.4.8 1 .9 1.6-.2-.6-.6-1-1.1-1.3-.5-.3-1-.5-1.6-.7-1.1-.4-2.3-.7-3.4-1.2-1.1-.5-2.2-1.2-3-2.2-.8-1.1-1.3-2.3-1.6-3.4"/><path d="m23.7 16c-.7.3-1.5.4-2.3.1-.8-.4-1.2-1.1-1.5-1.9-.6-1.5-.8-3-1.1-4.5-.3-1.5-.7-3-1.3-4.3-.6-1.3-1.7-2.5-3.2-3.1.8.2 1.5.5 2.1 1 .6.5 1.1 1.1 1.5 1.8.8 1.4 1.2 2.9 1.5 4.4l.4 2.3c.1.8.3 1.5.5 2.2.2.7.6 1.4 1.2 1.8.6.4 1.4.4 2.2.2"/><path d="m21.7 3.6c.4.3.7.7.9 1.1.2.4.4.9.6 1.3.3 1 .5 2 .5 3 .1 2-.4 4-1.5 5.7-.6.8-1.3 1.6-2.1 2.1-.8.6-1.7 1-2.7 1.2-1.9.5-3.8.4-5.7.1 1.9.1 3.8-.1 5.6-.6 1.8-.6 3.4-1.6 4.4-3.2 1-1.5 1.5-3.4 1.5-5.3 0-.9-.1-1.9-.3-2.8-.2-1-.5-1.9-1.2-2.6"/></g><g fill="#3e4347"><path d="m50 58.6l-.9-4.2c.9-.8 1.2-.8 1.2-.8.6-.3 1.4 0 1.7.6l3.7 7.6c-1.4.7-4.2-.3-5.7-3.2"/><path d="m36.6 54.8l-1.4-3.9c.9-.7 2.5-1.5 2.5-1.5.6-.2 1.4.1 1.6.8l2.9 8c-1.4.5-4.2-.5-5.6-3.4"/></g><path fill="#b47d56" d="m37.7 16.5l1.8.4-2.2 10.1-3.3-2.5z"/><path d="m39.1 40.3h-13.2c0 0 .3-8 3.4-13.6 2.4-4.4 8.7-3.1 8.7-3.1l1.1 16.7" fill="#47b892"/><g fill="#b47d56"><path d="m55 27.4c-2.1-1.7-2.6-2.1-3.5-1.2l-5.7-3.8c-.3-.2-.7-.3-1.1-.3-.2 0-.4.1-.5.1l-6.4 1.4c-1 .2-1.6 1.2-1.4 2.3.2 1 1.2 1.7 2.2 1.5l5.9-1.3 4.7 3.1c-.1.5 0 1 .4 1.3l.7.6c.4.3.9.3 1.2.1 1 .7 2.5 1.3 3.8-.5.3-.2 1.5-1.8-.3-3.3"/><path d="m37.5 23.4c-2.9.1-4.1 5.4-5.4 5.8-2.1.6-2.5-2.1-.8-4.3 2.1-2.8 6.2-1.5 6.2-1.5"/><path d="m49.1 54.4l.9 4.2c0 0-5.5-2-8.5-2.3-1-.1-1.1-1.2-1.6-1.4-2.7-1.5-3.9-6-3.9-6l5.6-1.2c0 0 .2 1.7 1 4.1.1.3.3.7 1.2.6 1.8-.1 3.8 2.3 5.3 2"/><path d="m36.6 54.8l-1.4-3.9c-1.4.4-2-.3-3.4.4-.6.3-.9-.1-.8-.3.4-1.3.4-2 .4-2l-5.9-.8c0 0-.3 4.4 2.2 7.9.6.8 2.9 1 3.4.7 2.9-1.7 5.5-2 5.5-2"/></g><path d="m25.9 40.3h13.2l3.5 7.1-6.9 1.5c-.4-.7-.7-1.5-1-2.1-.2-.4-.6-.8-1.1-.8-.6 0-1 .5-1.2 1.1-.2.6-.4 1.3-.6 1.9l-6.6-.9.7-7.8" fill="#3e4347"/><path d="m32.2 21.9c.5 1.7-.9 3.5-.9 3.5 3.6.7 4.9-2.7 5.9-7.7 0 0-5.9 1.2-5 4.2" fill="#935e3e"/><path d="m39.9 5.5l-11.4 2.3c-1.7 2.3-1 3.8-1.2 4.9-.1.5-1.2 1.2-1.8 1.6-1.3.9.5 2 1.3 1.9.3 1.1-1.1 1.6 2.2 1.4 0 0-3.5.9-1.3 1.9-.4 1.3-1 3.7 6.1 2.1 2.1-.5 3.4-3.9 3.4-3.9l3.5-.1-.8-12.1" fill="#b47d56"/><path d="m32.3 3.5c7.5-1.4 10.9 2.9 11.3 4.7 1.2 4.6-1.1 9.3-5 12.5 0 0-1.5-.9-1.5-2.9 0 0 1.7 1.1 3-2.6 1.1-3.1-2-5.2-4.3-1.1l-.4-.1c-.6-2.3 1.5-4.8-.9-6-2.1-1.1-6.4.3-6.4.3-.5-1.5 1.2-4.2 4.2-4.8" fill="#231f20"/><path d="m30 13c-.1.7-.6 1.2-1 1.1-.5-.1-.5-.6-.4-1.3.1-.7.3-1.2.8-1.1.4.1.7.7.6 1.3" fill="#664e27"/><path d="m36.7 14.9c.2-1.3 1.5-2.3 2.6-2.2 0 0-2.1 1.3-2 3.5 0 0-.7-.4-.6-1.3" fill="#935e3e"/><path d="m30.1 17.5c0 0-1.5.8-2 1-1 .3-1.2 0-.5-.3.5-.3 1.4-.5 1.4-.5l1.1-.2" fill="#664e27"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3ff.svg
index 7eedd10..f7ee930 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f9-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#8a6859" d="m29.948 28.07l-5.566-2.291-2.49-5.998-3.447 1.523 2.807 6.764c.154.364.412.651.725.845l-.002.002.02.008c.154.093.32.157.494.203l6.02 2.479c.947.398 2.039-.071 2.438-1.049.398-.974-.051-2.09-.999-2.486"/><circle fill="#ff8736" cx="16.701" cy="13.46" r="8.683"/><g fill="#231f20"><path d="m10.521 7.363c.184.726.492 1.401.846 2.051.346.655.732 1.286 1.135 1.906.813 1.235 1.691 2.428 2.639 3.562.941 1.139 1.949 2.224 3.041 3.211.549.49 1.119.958 1.732 1.364.607.417 1.268.759 1.99.954-.754-.05-1.475-.344-2.152-.679-.674-.353-1.305-.781-1.898-1.25-1.191-.938-2.244-2.03-3.213-3.185-.957-1.166-1.832-2.399-2.572-3.715-.371-.656-.707-1.335-.99-2.035-.264-.704-.519-1.43-.558-2.184"/><path d="m8.02 13.227c.521 1.085 1.152 2.096 1.969 2.923.814.828 1.795 1.46 2.859 1.938 1.059.498 2.199.838 3.32 1.318.559.239 1.117.525 1.596.934.477.407.824.977.906 1.578-.227-.564-.615-1.017-1.1-1.324-.48-.315-1.029-.521-1.586-.714-1.117-.369-2.289-.688-3.408-1.2-1.113-.514-2.172-1.231-2.963-2.19-.798-.95-1.327-2.091-1.593-3.263"/><path d="m23.685 18.621c-.693.29-1.531.44-2.299.091-.76-.369-1.205-1.124-1.506-1.835-.596-1.462-.818-2.985-1.148-4.461-.311-1.478-.662-2.946-1.318-4.273-.646-1.321-1.717-2.456-3.156-3.02.75.154 1.465.503 2.088.98.615.488 1.121 1.113 1.514 1.791.793 1.365 1.184 2.891 1.51 4.382l.439 2.24c.143.742.309 1.475.545 2.173.244.685.578 1.367 1.184 1.737.602.392 1.41.348 2.147.19"/><path d="m21.729 6.383c.4.266.691.67.926 1.086.238.42.424.867.576 1.324.293.919.451 1.882.482 2.85.066 1.929-.377 3.929-1.477 5.581-.553.818-1.264 1.532-2.08 2.083-.822.544-1.73.942-2.672 1.18-1.887.495-3.844.437-5.709.124 1.893.062 3.799-.061 5.568-.611 1.762-.544 3.354-1.612 4.352-3.138 1.021-1.511 1.473-3.369 1.512-5.216.012-.925-.07-1.859-.281-2.768-.214-.898-.513-1.828-1.197-2.495"/></g><g fill="#3e4347"><path d="m49.987 60.6l-.865-4.121c.873-.781 1.168-.795 1.184-.803.623-.308 1.379-.041 1.695.598l3.717 7.52c-1.391.686-4.217-.296-5.731-3.194"/><path d="m36.618 56.873l-1.447-3.854c.945-.69 2.514-1.459 2.531-1.466.648-.243 1.375.097 1.625.764l2.947 7.854c-1.453.545-4.257-.399-5.656-3.298"/></g><path fill="#8a6859" d="m37.683 19.14l.994 3.844-1.417 6.498-3.23-2.472z"/><path fill="#47b892" d="m39.08 42.559h-13.193c0 0 .299-7.885 3.404-13.468 2.428-4.367 8.697-3.02 8.697-3.02l1.092 16.483"/><g fill="#8a6859"><path d="m54.956 29.802c-2.123-1.688-2.611-2.067-3.479-1.158l-5.677-3.704c-.332-.215-.707-.306-1.074-.289v-.002l-.02.004c-.178.01-.354.051-.521.111l-6.371 1.349c-1.01.206-1.643 1.211-1.42 2.242.219 1.029 1.221 1.696 2.225 1.49l5.887-1.249 4.73 3.084c-.119.453.031.957.42 1.266l.695.552c.371.295.857.332 1.248.136.98.672 2.461 1.298 3.789-.459.22-.289 1.439-1.892-.432-3.373"/><path d="m37.466 25.95c-2.947.099-4.092 5.331-5.404 5.683-2.148.573-2.523-2.114-.82-4.276 2.132-2.708 6.224-1.407 6.224-1.407"/><path d="m49.12 56.48l.865 4.121c0 0-5.451-1.983-8.516-2.263-.965-.088-1.146-1.172-1.582-1.414-2.725-1.519-3.912-5.917-3.912-5.917l5.598-1.202c0 0 .166 1.675 1.02 4.071.109.309.252.654 1.188.634 1.808-.04 3.806 2.309 5.339 1.97"/><path d="m36.618 56.873l-1.447-3.854c-1.373.389-1.967-.285-3.375.363-.639.294-.865-.07-.785-.312.432-1.322.35-1.988.35-1.988l-5.941-.812c0 0-.344 4.298 2.174 7.793.594.824 2.854.965 3.434.661 2.973-1.554 5.59-1.851 5.59-1.851"/></g><path fill="#3e4347" d="m25.886 42.559h13.193l3.516 7.02-6.869 1.477c-.352-.735-.697-1.443-1.021-2.093-.219-.438-.598-.794-1.123-.794-.643 0-.984.532-1.18 1.121-.213.639-.41 1.253-.598 1.852l-6.639-.907.721-7.678"/><path fill="#705041" d="m36.606 19.308c-.846 4.245-5.748 2.53-4.83 5.507.518 1.683-.686 3.257-.686 3.257 3.609.719 5.578-3.385 6.566-8.342l-1.05-.422"/><path fill="#8a6859" d="m41.729 5.192l-15.261 1.659c-2.262 2.695-1.451 4.524-1.77 5.817-.143.575-1.533 1.401-2.27 1.833-1.641.96.496 2.426 1.404 2.418.293 1.413-.674 1.589 1.506 1.826 1.199.129 3.01-.643 3.01-.643-5.846 2.233-4.768 3.845-2.516 3.707-.549 2.754 1.16 3.095 4.908 3.842 3.055.608 6.072-1.676 6.918-5.922l4.236.101-.163-14.638"/><path fill="#231f20" d="m37.06.222c10.598 2.111 10.191 11.388 7.477 17.334-1.445 3.165-3.625 4.93-5.859 5.429l-.902-.876-.117-2.379c0 0 2.168-.072 3.252-2.315.496-1.024-.176-3.306-1.752-3.711-1.102-.285-2.865.226-3.256.409.547-2.748 1.674-5.482-.037-6.672-1.406-.98-8.617.693-9.396-.59-2.104-3.432 4.209-7.902 10.59-6.629"/><g fill="#47352d"><path d="m38.05 16.272c-.191-.065-.393-.076-.58-.038.129-.175.279-.343.441-.507.201-.202.43-.384.66-.606-.627.04-1.248.368-1.637.923-.387.565-.422 1.292-.197 1.875.115-.304.176-.595.277-.854.066-.164.139-.319.221-.468.078.02.154.034.225.057.15.047.283.076.41.127.133.041.258.104.406.157.145.057.287.139.484.204-.036-.389-.329-.73-.71-.87"/><ellipse transform="matrix(.9807.1954-.1954.9807 2.997-5.057)" cx="27.13" cy="12.662" rx="1.162" ry="1.625"/><path d="m28.347 18.1c0 0-2.18 2.106-2.678 2.362-1.063.549-1.279.006-.709-.519.588-.541 3.387-1.843 3.387-1.843"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.9 25.6l-5.6-2.3-2.5-6.1-3.5 1.5 2.8 6.9c.2.4.4.7.7.9.2.1.3.2.5.2l6 2.5c.9.4 2-.1 2.4-1.1.6-1 .2-2.1-.8-2.5" fill="#8a6859"/><ellipse cx="16.7" cy="10.8" rx="8.7" ry="8.8" fill="#ff8736"/><g fill="#231f20"><path d="m10.5 4.6c.2.8.5 1.4.8 2.1.3.7.7 1.3 1.1 1.9.8 1.3 1.7 2.5 2.6 3.6.9 1.2 1.9 2.3 3 3.3.5.5 1.1 1 1.7 1.4.6.4 1.3.8 2 1-.8-.1-1.5-.4-2.2-.7-.7-.4-1.3-.8-1.9-1.3-1.2-1-2.2-2.1-3.2-3.2-1-1.2-1.8-2.4-2.6-3.8-.4-.7-.7-1.4-1-2.1 0-.7-.3-1.4-.3-2.2"/><path d="m8 10.6c.5 1.1 1.2 2.1 2 3 .8.8 1.8 1.5 2.9 2 1.1.5 2.2.9 3.3 1.3.6.2 1.1.5 1.6.9.5.4.8 1 .9 1.6-.2-.6-.6-1-1.1-1.3-.5-.3-1-.5-1.6-.7-1.1-.4-2.3-.7-3.4-1.2-1.1-.5-2.2-1.2-3-2.2-.8-1.1-1.3-2.3-1.6-3.4"/><path d="m23.7 16c-.7.3-1.5.4-2.3.1-.8-.4-1.2-1.1-1.5-1.9-.6-1.5-.8-3-1.1-4.5-.3-1.5-.7-3-1.3-4.3-.6-1.3-1.7-2.5-3.2-3.1.8.2 1.5.5 2.1 1 .6.5 1.1 1.1 1.5 1.8.8 1.4 1.2 2.9 1.5 4.4l.4 2.3c.1.8.3 1.5.5 2.2.2.7.6 1.4 1.2 1.8.6.4 1.4.4 2.2.2"/><path d="m21.7 3.6c.4.3.7.7.9 1.1.2.4.4.9.6 1.3.3 1 .5 2 .5 3 .1 2-.4 4-1.5 5.7-.6.8-1.3 1.6-2.1 2.1-.8.6-1.7 1-2.7 1.2-1.9.5-3.8.4-5.7.1 1.9.1 3.8-.1 5.6-.6 1.8-.6 3.4-1.6 4.4-3.2 1-1.5 1.5-3.4 1.5-5.3 0-.9-.1-1.9-.3-2.8-.2-1-.5-1.9-1.2-2.6"/></g><g fill="#3e4347"><path d="m50 58.6l-.9-4.2c.9-.8 1.2-.8 1.2-.8.6-.3 1.4 0 1.7.6l3.7 7.6c-1.4.7-4.2-.3-5.7-3.2"/><path d="m36.6 54.8l-1.4-3.9c.9-.7 2.5-1.5 2.5-1.5.6-.2 1.4.1 1.6.8l2.9 8c-1.4.5-4.2-.5-5.6-3.4"/></g><path fill="#8a6859" d="m37.7 16.5l1.8.4-2.2 10.1-3.3-2.5z"/><path d="m39.1 40.3h-13.2c0 0 .3-8 3.4-13.6 2.4-4.4 8.7-3.1 8.7-3.1l1.1 16.7" fill="#47b892"/><g fill="#8a6859"><path d="m55 27.4c-2.1-1.7-2.6-2.1-3.5-1.2l-5.7-3.8c-.3-.2-.7-.3-1.1-.3-.2 0-.4.1-.5.1l-6.4 1.4c-1 .2-1.6 1.2-1.4 2.3.2 1 1.2 1.7 2.2 1.5l5.9-1.3 4.7 3.1c-.1.5 0 1 .4 1.3l.7.6c.4.3.9.3 1.2.1 1 .7 2.5 1.3 3.8-.5.3-.2 1.5-1.8-.3-3.3"/><path d="m37.5 23.4c-2.9.1-4.1 5.4-5.4 5.8-2.1.6-2.5-2.1-.8-4.3 2.1-2.8 6.2-1.5 6.2-1.5"/><path d="m49.1 54.4l.9 4.2c0 0-5.5-2-8.5-2.3-1-.1-1.1-1.2-1.6-1.4-2.7-1.5-3.9-6-3.9-6l5.6-1.2c0 0 .2 1.7 1 4.1.1.3.3.7 1.2.6 1.8-.1 3.8 2.3 5.3 2"/><path d="m36.6 54.8l-1.4-3.9c-1.4.4-2-.3-3.4.4-.6.3-.9-.1-.8-.3.4-1.3.4-2 .4-2l-5.9-.8c0 0-.3 4.4 2.2 7.9.6.8 2.9 1 3.4.7 2.9-1.7 5.5-2 5.5-2"/></g><path d="m25.9 40.3h13.2l3.5 7.1-6.9 1.5c-.4-.7-.7-1.5-1-2.1-.2-.4-.6-.8-1.1-.8-.6 0-1 .5-1.2 1.1-.2.6-.4 1.3-.6 1.9l-6.6-.9.7-7.8" fill="#3e4347"/><path d="m32.2 21.9c.5 1.7-.9 3.5-.9 3.5 3.6.7 4.9-2.7 5.9-7.7 0 0-5.9 1.2-5 4.2" fill="#705041"/><path d="m39.9 5.5l-11.4 2.3c-1.7 2.3-1 3.8-1.2 4.9-.1.5-1.2 1.2-1.8 1.6-1.3.9.5 2 1.3 1.9.3 1.1-1.1 1.6 2.2 1.4 0 0-3.5.9-1.3 1.9-.4 1.3-1 3.7 6.1 2.1 2.1-.5 3.4-3.9 3.4-3.9l3.5-.1-.8-12.1" fill="#8a6859"/><path d="m32.3 3.5c7.5-1.4 10.9 2.9 11.3 4.7 1.2 4.6-1.1 9.3-5 12.5 0 0-1.5-.9-1.5-2.9 0 0 1.7 1.1 3-2.6 1.1-3.1-2-5.2-4.3-1.1l-.4-.1c-.6-2.3 1.5-4.8-.9-6-2.1-1.1-6.4.3-6.4.3-.5-1.5 1.2-4.2 4.2-4.8" fill="#231f20"/><path d="m30 13c-.1.7-.6 1.2-1 1.1-.5-.1-.5-.6-.4-1.3.1-.7.3-1.2.8-1.1.4.1.7.7.6 1.3" fill="#574137"/><path d="m36.7 14.9c.2-1.3 1.5-2.3 2.6-2.2 0 0-2.1 1.3-2 3.5 0 0-.7-.4-.6-1.3" fill="#705041"/><path d="m30.1 17.5c0 0-1.5.8-2 1-1 .3-1.2 0-.5-.3.5-.3 1.4-.5 1.4-.5l1.1-.2" fill="#574137"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26f9.svg b/build/js/jsxc/lib/emojione/assets/svg/26f9.svg
index 89ee8f0..ad4502b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26f9.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26f9.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffdd67" d="m29.948 28.07l-5.566-2.291-2.49-5.998-3.447 1.523 2.807 6.764c.154.364.412.651.725.845l-.002.002.02.008c.154.093.32.157.494.203l6.02 2.479c.947.398 2.039-.071 2.438-1.049.398-.974-.051-2.091-.999-2.486"/><circle fill="#ff8736" cx="16.701" cy="13.46" r="8.683"/><g fill="#231f20"><path d="m10.521 7.364c.184.726.492 1.401.846 2.051.346.655.732 1.286 1.135 1.906.813 1.235 1.691 2.428 2.639 3.562.941 1.139 1.949 2.224 3.041 3.211.549.49 1.119.958 1.732 1.364.607.417 1.268.759 1.99.954-.754-.05-1.475-.344-2.152-.679-.674-.353-1.305-.781-1.898-1.25-1.191-.938-2.244-2.03-3.213-3.185-.957-1.166-1.832-2.399-2.572-3.715-.371-.656-.707-1.335-.99-2.035-.264-.705-.519-1.43-.558-2.184"/><path d="m8.02 13.227c.521 1.085 1.152 2.096 1.969 2.923.814.828 1.795 1.46 2.859 1.938 1.059.498 2.199.838 3.32 1.318.559.239 1.117.525 1.596.934.477.407.824.977.906 1.578-.227-.564-.615-1.017-1.1-1.324-.48-.315-1.029-.521-1.586-.714-1.117-.369-2.289-.688-3.408-1.2-1.113-.514-2.172-1.231-2.963-2.19-.798-.949-1.327-2.09-1.593-3.263"/><path d="m23.685 18.622c-.693.29-1.531.44-2.299.091-.76-.369-1.205-1.124-1.506-1.835-.596-1.462-.818-2.985-1.148-4.461-.311-1.478-.662-2.946-1.318-4.273-.646-1.321-1.717-2.456-3.156-3.02.75.154 1.465.503 2.088.98.615.488 1.121 1.113 1.514 1.791.793 1.365 1.184 2.891 1.51 4.382l.439 2.24c.143.742.309 1.475.545 2.173.244.685.578 1.367 1.184 1.737.602.392 1.41.348 2.147.19"/><path d="m21.729 6.383c.4.266.691.67.926 1.086.238.42.424.867.576 1.324.293.919.451 1.882.482 2.85.066 1.929-.377 3.929-1.477 5.581-.553.818-1.264 1.532-2.08 2.083-.822.544-1.73.942-2.672 1.18-1.887.495-3.844.437-5.709.124 1.893.062 3.799-.061 5.568-.611 1.762-.544 3.354-1.612 4.352-3.138 1.021-1.511 1.473-3.369 1.512-5.216.012-.925-.07-1.859-.281-2.768-.214-.897-.513-1.828-1.197-2.495"/></g><g fill="#3e4347"><path d="m49.987 60.6l-.865-4.121c.873-.781 1.168-.795 1.184-.803.623-.308 1.379-.041 1.695.598l3.717 7.52c-1.391.686-4.217-.296-5.731-3.194"/><path d="m36.618 56.873l-1.447-3.854c.945-.69 2.514-1.459 2.531-1.466.648-.243 1.375.097 1.625.764l2.947 7.854c-1.453.545-4.257-.399-5.656-3.298"/></g><path fill="#ffdd67" d="m37.683 19.14l.994 3.845-1.417 6.498-3.23-2.473z"/><path fill="#47b892" d="m39.08 42.559h-13.193c0 0 .299-7.885 3.404-13.467 2.428-4.367 8.697-3.02 8.697-3.02l1.092 16.482"/><g fill="#ffdd67"><path d="m54.956 29.802c-2.123-1.688-2.611-2.067-3.479-1.158l-5.677-3.703c-.332-.215-.707-.306-1.074-.289v-.002l-.02.004c-.178.01-.354.051-.521.111l-6.371 1.349c-1.01.206-1.643 1.211-1.42 2.242.219 1.029 1.221 1.696 2.225 1.49l5.887-1.249 4.73 3.084c-.119.453.031.957.42 1.266l.695.551c.371.295.857.332 1.248.136.98.672 2.461 1.298 3.789-.459.22-.289 1.439-1.891-.432-3.373"/><path d="m37.466 25.951c-2.947.099-4.092 5.331-5.404 5.683-2.148.573-2.523-2.114-.82-4.276 2.132-2.708 6.224-1.407 6.224-1.407"/><path d="m49.12 56.48l.865 4.121c0 0-5.451-1.983-8.516-2.263-.965-.088-1.146-1.172-1.582-1.414-2.725-1.519-3.912-5.917-3.912-5.917l5.598-1.202c0 0 .166 1.675 1.02 4.071.109.309.252.654 1.188.634 1.808-.04 3.806 2.309 5.339 1.97"/><path d="m36.618 56.873l-1.447-3.854c-1.373.389-1.967-.285-3.375.363-.639.294-.865-.07-.785-.312.432-1.322.35-1.988.35-1.988l-5.941-.812c0 0-.344 4.298 2.174 7.793.594.824 2.854.965 3.434.661 2.973-1.554 5.59-1.851 5.59-1.851"/></g><path fill="#3e4347" d="m25.886 42.559h13.193l3.516 7.02-6.869 1.477c-.352-.735-.697-1.443-1.021-2.093-.219-.438-.598-.794-1.123-.794-.643 0-.984.532-1.18 1.121-.213.639-.41 1.253-.598 1.852l-6.639-.907.721-7.678"/><path fill="#eba352" d="m36.606 19.308c-.846 4.245-5.748 2.53-4.83 5.507.518 1.683-.686 3.257-.686 3.257 3.609.719 5.578-3.385 6.566-8.342l-1.05-.422"/><path fill="#ffdd67" d="m41.729 5.193l-15.261 1.658c-2.262 2.695-1.451 4.524-1.77 5.817-.143.575-1.533 1.401-2.27 1.833-1.641.96.496 2.426 1.404 2.418.293 1.413-.674 1.589 1.506 1.826 1.199.129 3.01-.643 3.01-.643-5.846 2.233-4.768 3.845-2.516 3.707-.549 2.754 1.16 3.095 4.908 3.842 3.055.608 6.072-1.676 6.918-5.922l4.236.101-.163-14.637"/><path fill="#231f20" d="m37.06.222c10.598 2.111 10.191 11.388 7.477 17.334-1.445 3.165-3.625 4.93-5.859 5.429l-.902-.876-.117-2.379c0 0 2.168-.072 3.252-2.315.496-1.024-.176-3.306-1.752-3.711-1.102-.285-2.865.226-3.256.409.547-2.748 1.674-5.482-.037-6.672-1.406-.98-8.617.693-9.396-.59-2.104-3.432 4.209-7.901 10.59-6.629"/><g fill="#594640"><path d="m38.05 16.273c-.191-.065-.393-.076-.58-.038.129-.175.279-.343.441-.507.201-.202.43-.384.66-.606-.627.04-1.248.368-1.637.923-.387.565-.422 1.292-.197 1.875.115-.304.176-.595.277-.854.066-.164.139-.319.221-.468.078.02.154.034.225.057.15.047.283.076.41.127.133.041.258.104.406.157.145.057.287.139.484.204-.036-.39-.329-.73-.71-.87"/><ellipse transform="matrix(.9807.1954-.1954.9807 2.997-5.057)" cx="27.13" cy="12.662" rx="1.162" ry="1.625"/><path d="m28.347 18.1c0 0-2.18 2.106-2.678 2.362-1.063.549-1.279.006-.709-.519.588-.54 3.387-1.843 3.387-1.843"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m29.9 25.6l-5.6-2.3-2.5-6.1-3.5 1.5 2.8 6.9c.2.4.4.7.7.9.2.1.3.2.5.2l6 2.5c.9.4 2-.1 2.4-1.1.6-1 .2-2.1-.8-2.5" fill="#ffdd67"/><ellipse cx="16.7" cy="10.8" rx="8.7" ry="8.8" fill="#ff8736"/><g fill="#231f20"><path d="m10.5 4.6c.2.8.5 1.4.8 2.1.3.7.7 1.3 1.1 1.9.8 1.3 1.7 2.5 2.6 3.6.9 1.2 1.9 2.3 3 3.3.5.5 1.1 1 1.7 1.4.6.4 1.3.8 2 1-.8-.1-1.5-.4-2.2-.7-.7-.4-1.3-.8-1.9-1.3-1.2-1-2.2-2.1-3.2-3.2-1-1.2-1.8-2.4-2.6-3.8-.4-.7-.7-1.4-1-2.1 0-.7-.3-1.4-.3-2.2"/><path d="m8 10.6c.5 1.1 1.2 2.1 2 3 .8.8 1.8 1.5 2.9 2 1.1.5 2.2.9 3.3 1.3.6.2 1.1.5 1.6.9.5.4.8 1 .9 1.6-.2-.6-.6-1-1.1-1.3-.5-.3-1-.5-1.6-.7-1.1-.4-2.3-.7-3.4-1.2-1.1-.5-2.2-1.2-3-2.2-.8-1.1-1.3-2.3-1.6-3.4"/><path d="m23.7 16c-.7.3-1.5.4-2.3.1-.8-.4-1.2-1.1-1.5-1.9-.6-1.5-.8-3-1.1-4.5-.3-1.5-.7-3-1.3-4.3-.6-1.3-1.7-2.5-3.2-3.1.8.2 1.5.5 2.1 1 .6.5 1.1 1.1 1.5 1.8.8 1.4 1.2 2.9 1.5 4.4l.4 2.3c.1.8.3 1.5.5 2.2.2.7.6 1.4 1.2 1.8.6.4 1.4.4 2.2.2"/><path d="m21.7 3.6c.4.3.7.7.9 1.1.2.4.4.9.6 1.3.3 1 .5 2 .5 3 .1 2-.4 4-1.5 5.7-.6.8-1.3 1.6-2.1 2.1-.8.6-1.7 1-2.7 1.2-1.9.5-3.8.4-5.7.1 1.9.1 3.8-.1 5.6-.6 1.8-.6 3.4-1.6 4.4-3.2 1-1.5 1.5-3.4 1.5-5.3 0-.9-.1-1.9-.3-2.8-.2-1-.5-1.9-1.2-2.6"/></g><g fill="#3e4347"><path d="m50 58.6l-.9-4.2c.9-.8 1.2-.8 1.2-.8.6-.3 1.4 0 1.7.6l3.7 7.6c-1.4.7-4.2-.3-5.7-3.2"/><path d="m36.6 54.8l-1.4-3.9c.9-.7 2.5-1.5 2.5-1.5.6-.2 1.4.1 1.6.8l2.9 8c-1.4.5-4.2-.5-5.6-3.4"/></g><path fill="#ffdd67" d="m37.7 16.5l1.8.4-2.2 10.1-3.3-2.5z"/><path d="m39.1 40.3h-13.2c0 0 .3-8 3.4-13.6 2.4-4.4 8.7-3.1 8.7-3.1l1.1 16.7" fill="#47b892"/><g fill="#ffdd67"><path d="m55 27.4c-2.1-1.7-2.6-2.1-3.5-1.2l-5.7-3.8c-.3-.2-.7-.3-1.1-.3-.2 0-.4.1-.5.1l-6.4 1.4c-1 .2-1.6 1.2-1.4 2.3.2 1 1.2 1.7 2.2 1.5l5.9-1.3 4.7 3.1c-.1.5 0 1 .4 1.3l.7.6c.4.3.9.3 1.2.1 1 .7 2.5 1.3 3.8-.5.3-.2 1.5-1.8-.3-3.3"/><path d="m37.5 23.4c-2.9.1-4.1 5.4-5.4 5.8-2.1.6-2.5-2.1-.8-4.3 2.1-2.8 6.2-1.5 6.2-1.5"/><path d="m49.1 54.4l.9 4.2c0 0-5.5-2-8.5-2.3-1-.1-1.1-1.2-1.6-1.4-2.7-1.5-3.9-6-3.9-6l5.6-1.2c0 0 .2 1.7 1 4.1.1.3.3.7 1.2.6 1.8-.1 3.8 2.3 5.3 2"/><path d="m36.6 54.8l-1.4-3.9c-1.4.4-2-.3-3.4.4-.6.3-.9-.1-.8-.3.4-1.3.4-2 .4-2l-5.9-.8c0 0-.3 4.4 2.2 7.9.6.8 2.9 1 3.4.7 2.9-1.7 5.5-2 5.5-2"/></g><path d="m25.9 40.3h13.2l3.5 7.1-6.9 1.5c-.4-.7-.7-1.5-1-2.1-.2-.4-.6-.8-1.1-.8-.6 0-1 .5-1.2 1.1-.2.6-.4 1.3-.6 1.9l-6.6-.9.7-7.8" fill="#3e4347"/><path d="m32.2 21.9c.5 1.7-.9 3.5-.9 3.5 3.6.7 4.9-2.7 5.9-7.7 0 0-5.9 1.2-5 4.2" fill="#eba352"/><path d="m39.9 5.5l-11.4 2.3c-1.7 2.3-1 3.8-1.2 4.9-.1.5-1.2 1.2-1.8 1.6-1.3.9.5 2 1.3 1.9.3 1.1-1.1 1.6 2.2 1.4 0 0-3.5.9-1.3 1.9-.4 1.3-1 3.7 6.1 2.1 2.1-.5 3.4-3.9 3.4-3.9l3.5-.1-.8-12.1" fill="#ffdd67"/><path d="m32.3 3.5c7.5-1.4 10.9 2.9 11.3 4.7 1.2 4.6-1.1 9.3-5 12.5 0 0-1.5-.9-1.5-2.9 0 0 1.7 1.1 3-2.6 1.1-3.1-2-5.2-4.3-1.1l-.4-.1c-.6-2.3 1.5-4.8-.9-6-2.1-1.1-6.4.3-6.4.3-.5-1.5 1.2-4.2 4.2-4.8" fill="#ffb300"/><path d="m30 13c-.1.7-.6 1.2-1 1.1-.5-.1-.5-.6-.4-1.3.1-.7.3-1.2.8-1.1.4.1.7.7.6 1.3" fill="#937237"/><path d="m36.7 14.9c.2-1.3 1.5-2.3 2.6-2.2 0 0-2.1 1.3-2 3.5 0 0-.7-.4-.6-1.3" fill="#eba352"/><path d="m30.1 17.5c0 0-1.5.8-2 1-1 .3-1.2 0-.5-.3.5-.3 1.4-.5 1.4-.5l1.1-.2" fill="#937237"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26fa.svg b/build/js/jsxc/lib/emojione/assets/svg/26fa.svg
index c7a85d4..73bb513 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26fa.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26fa.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#1778bd" d="m0 0h64v57h-64z"/><path fill="#75a843" d="m0 57h64v7h-64z"/><circle fill="#42ade2" cx="52.24" cy="11.763" r="10.761"/><circle fill="#6adbc6" cx="52.24" cy="11.763" r="8.891"/><circle fill="#dae3ea" cx="52.24" cy="11.763" r="6.739"/><g fill="#fff"><circle cx="52.24" cy="11.763" r="4.728"/><path d="m60.926 54.44c-5.953-25.499-27.687-28.982-28.928-29.16-1.237.179-22.978 3.683-28.926 29.16l-1-.316c6.283-26.911 29.643-30.03 29.876-30.06l.054-.005.054.005c.235.029 23.595 3.146 29.878 30.06l-1 .316"/></g><path fill="#fbb287" d="M59.546,46.629C50.718,21.855,31.998,19,31.998,19s-18.72,2.855-27.546,27.629H59.546z"/><path fill="#e17c5b" d="m58.28 46.629c-8.424-16.08-26.29-17.932-26.29-17.932s-17.859 1.853-26.28 17.932h52.57"/><path fill="#5f606c" d="m57.31 46.629h-50.632c-1.066 3.262-1.985 6.885-2.677 10.949h55.986c-.691-4.064-1.61-7.687-2.677-10.949"/><path fill="#b6acaa" d="M57.315,46.629C49.2,31.097,31.998,29.308,31.998,29.308S14.796,31.097,6.683,46.629H57.315z"/><g fill="#333"><path d="m60.972 53.44l-.872 6.244 2.62-5.821z"/><path d="m1.278 53.863l2.614 5.821-.872-6.244z"/></g><path fill="#fbb287" d="m44.44 52.42c-.321 2.041-24.559 2.041-24.88 0-.791-4.982 2.387-14.992 4.062-19.795.847-2.422 15.911-2.422 16.758 0 1.677 4.803 4.851 14.812 4.06 19.795"/><path fill="#5f606c" d="m43.41 51.596c-.298 1.875-22.534 1.875-22.832 0-.727-4.57 2.192-13.756 3.729-18.16.776-2.221 14.601-2.221 15.375 0 1.538 4.408 4.455 13.593 3.728 18.16"/><g fill="#333"><path d="m20.583 51.596c.298 1.875 22.534 1.875 22.832 0 .214-1.338.107-3.074-.177-4.967h-22.476c-.284 1.892-.39 3.629-.179 4.967"/><path d="m31.509 31.765h.929v15.348h-.929z"/></g><g fill="#fff"><path transform="matrix(.7071-.7071.7071.7071-1.182 5.197)" d="m4.976 3.318h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-.916 14.464)" d="m16.294 7.631h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 6.097 20.463)" d="m27.04 2.165h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071 6.436 28.21)" d="m36.569 5.631h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-1.378 22.974)" d="m26.689 12.797h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-7.717 11.672)" d="m9.877 14.797h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071-14.568 9.332)" d="m3.273 21.543h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-9.559 19.424)" d="m17.961 20.543h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-.774 32.362)" d="m37.971 16.408h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-3.842 46.11)" d="m53.38 27.339h.707v.707h-.707z"/><path transform="matrix(.7071-.7071.7071.7071 2.101 50.12)" d="m60.844 21.817h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-8.354 53.622)" d="m59.844 36.19h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-26.744 13.938)" d="m2.745 38.545h1.414v1.414h-1.414z"/><path transform="matrix(.7071-.7071.7071.7071-17.1 15.557)" d="m9.877 28.06h.707v.707h-.707z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#1778bd" d="m0 0h64v57h-64z"/><path fill="#75a843" d="m0 57h64v7h-64z"/><circle cx="52.2" cy="11.8" r="10.8" fill="#42ade2"/><circle cx="52.2" cy="11.8" r="8.9" fill="#6adbc6"/><circle cx="52.2" cy="11.8" r="6.7" fill="#dae3ea"/><g fill="#fff"><circle cx="52.2" cy="11.8" r="4.7"/><path d="m60.9 54.4c-6-25.5-27.7-29-28.9-29.2-1.2.3-23 3.8-28.9 29.2l-1-.3c6.3-26.9 29.6-30 29.9-30.1h.1.1c.2 0 23.6 3.1 29.9 30.1l-1.2.3"/></g><path d="m59.5 46.6c-8.8-24.7-27.5-27.6-27.5-27.6s-18.7 2.9-27.5 27.6c0 0 55 0 55 0" fill="#fbb287"/><path d="M58.3,46.6C49.9,30.5,32,28.7,32,28.7S14.1,30.5,5.7,46.6H58.3z" fill="#e17c5b"/><path d="m57.3 46.6h-50.6c-1.1 3.3-2 6.9-2.7 10.9h56c-.7-4-1.6-7.6-2.7-10.9" fill="#5f606c"/><path d="M57.3,46.6C49.2,31.1,32,29.3,32,29.3S14.8,31.1,6.7,46.6H57.3z" fill="#b6acaa"/><g fill="#333"><path d="m61 53.4l-.9 6.3 2.6-5.8z"/><path d="m1.3 53.9l2.6 5.8-.9-6.3z"/></g><path d="m44.4 52.4c-.3 2-24.6 2-24.9 0-.8-5 2.4-15 4.1-19.8.8-2.4 15.9-2.4 16.8 0 1.7 4.8 4.8 14.8 4 19.8" fill="#fbb287"/><path d="m43.4 51.6c-.3 1.9-22.5 1.9-22.8 0-.7-4.6 2.2-13.8 3.7-18.2.8-2.2 14.6-2.2 15.4 0 1.5 4.4 4.4 13.6 3.7 18.2" fill="#5f606c"/><g fill="#333"><path d="m20.6 51.6c.3 1.9 22.5 1.9 22.8 0 .2-1.3.1-3.1-.2-5h-22.4c-.3 1.9-.4 3.7-.2 5"/><path d="m31.5 31.8h.9v15.3h-.9z"/></g><g fill="#fff"><path transform="matrix(.7071-.7071.7071.7071-1.1816 5.197)" d="m5 3.3h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-.9164 14.4636)" d="m16.3 7.6h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 6.0968 20.4632)" d="m27 2.2h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071 6.4359 28.2145)" d="m36.6 5.6h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-1.3785 22.9737)" d="m26.7 12.8h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-7.7166 11.6714)" d="m9.9 14.8h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071-14.5677 9.331)" d="m3.3 21.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-9.5586 19.4239)" d="m18 20.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-.7738 32.3619)" d="m38 16.4h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-3.8423 46.1093)" d="m53.4 27.3h.7v.7h-.7z"/><path transform="matrix(.7071-.7071.7071.7071 2.1006 50.1196)" d="m60.8 21.8h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-8.3535 53.6213)" d="m59.8 36.2h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-26.7443 13.9374)" d="m2.7 38.5h1.4v1.4h-1.4z"/><path transform="matrix(.7071-.7071.7071.7071-17.0977 15.5571)" d="m9.9 28.1h.7v.7h-.7z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/26fd.svg b/build/js/jsxc/lib/emojione/assets/svg/26fd.svg
index 6f5db4c..cfc136b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/26fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/26fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#e8e8e8" cx="26.778" cy="9" r="9"/><path fill="#b2c1c0" d="m41.778 25h-30c-.55 0-1 .45-1 1v3h32v-3c0-.55-.45-1-1-1"/><path fill="#d33b23" d="m12.778 29h28v31h-28z"/><g fill="#62727a"><path d="m41.778 60h-30c-.55 0-1 .45-1 1v1h32v-1c0-.55-.45-1-1-1"/><path d="m42.778 62h-32c-.55 0-1 .45-1 1v1h34v-1c0-.55-.45-1-1-1"/></g><g fill="#fff"><path d="m30.778 30.5h-8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2"/><path d="m30.778 44h-8c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1"/></g><path fill="#e8e8e8" d="m24.778 17h4v4h-4z"/><g fill="#d33b23"><path d="m40.778 25c-3.561-2.467-8.514-4-14-4s-10.439 1.533-14 4h28"/><path d="m26.778 15.5c-3.584 0-6.5-2.916-6.5-6.5s2.916-6.5 6.5-6.5 6.5 2.916 6.5 6.5-2.916 6.5-6.5 6.5m0-12c-3.03 0-5.5 2.468-5.5 5.5s2.468 5.5 5.5 5.5 5.5-2.468 5.5-5.5-2.467-5.5-5.5-5.5"/></g><g fill="#fff"><path d="m30.378 59h-7.199c-.772 0-1.4-.598-1.4-1.333v-7.334c0-.735.628-1.333 1.4-1.333h7.199c.772 0 1.4.598 1.4 1.333v7.334c0 .735-.628 1.333-1.4 1.333m-7.199-9c-.217 0-.4.152-.4.333v7.334c0 .181.184.333.4.333h7.199c.217 0 .4-.152.4-.333v-7.334c0-.181-.184-.333-.4-.333h-7.199"/><path d="m31.778 42c0 .55-.45 1-1 1h-8c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h8c.55 0 1 .45 1 1v4"/></g><g fill="#62727a"><path d="m24.778 41.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v3"/><path d="m27.778 41.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v3"/><path d="m30.778 41.5c0 .275-.225.5-.5.5h-1c-.275 0-.5-.225-.5-.5v-3c0-.275.225-.5.5-.5h1c.275 0 .5.225.5.5v3"/></g><g fill="#3e4347"><path d="m45.38 53.47h-2.947c0-1.625-1.321-2.946-2.946-2.946h-2.948v-2.947h2.947c3.25-.001 5.894 2.643 5.894 5.893"/><path d="m48.33 59.37c-3.25 0-5.895-2.645-5.895-5.895h2.947c0 1.626 1.321 2.947 2.947 2.947 1.625 0 2.946-1.321 2.946-2.947v-22.1h2.947v22.1c.002 3.25-2.642 5.894-5.892 5.894"/></g><path fill="#d0d0d0" d="m54.22 31.369h-2.947v-.052c-2.496-.359-4.42-2.512-4.42-5.105v-.788l4.42-2.947c-.027-1.602-1.338-2.896-2.946-2.896v-2.947c3.25 0 5.894 2.645 5.894 5.895v8.84m-4.304-4.447c.217.64.721 1.147 1.355 1.374v-2.278l-1.355.904"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="26.8" cy="9" r="9" fill="#e8e8e8"/><path d="m41.8 25h-30c-.6 0-1 .5-1 1v3h32v-3c0-.5-.5-1-1-1" fill="#b2c1c0"/><path fill="#d33b23" d="m12.8 29h28v31h-28z"/><g fill="#62727a"><path d="m41.8 60h-30c-.6 0-1 .5-1 1v1h32v-1c0-.5-.5-1-1-1"/><path d="m42.8 62h-32c-.6 0-1 .5-1 1v1h34v-1c0-.5-.5-1-1-1"/></g><g fill="#fff"><path d="m30.8 30.5h-8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2"/><path d="m30.8 44h-8c-.5 0-1 .5-1 1v2c0 .5.5 1 1 1h8c.5 0 1-.5 1-1v-2c0-.5-.5-1-1-1"/></g><path fill="#e8e8e8" d="m24.8 17h4v4h-4z"/><g fill="#d33b23"><path d="m40.8 25c-3.6-2.5-8.5-4-14-4s-10.4 1.5-14 4h28"/><path d="m26.8 15.5c-3.6 0-6.5-2.9-6.5-6.5s2.9-6.5 6.5-6.5 6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5m0-12c-3 0-5.5 2.5-5.5 5.5s2.5 5.5 5.5 5.5 5.5-2.5 5.5-5.5-2.5-5.5-5.5-5.5"/></g><g fill="#fff"><path d="m30.4 59h-7.2c-.8 0-1.4-.6-1.4-1.3v-7.3c0-.7.6-1.3 1.4-1.3h7.2c.8 0 1.4.6 1.4 1.3v7.3c0 .7-.7 1.3-1.4 1.3m-7.2-9c-.2 0-.4.2-.4.3v7.3c0 .2.2.3.4.3h7.2c.2 0 .4-.2.4-.3v-7.3c0-.2-.2-.3-.4-.3h-7.2"/><path d="m31.8 42c0 .5-.5 1-1 1h-8c-.5 0-1-.5-1-1v-4c0-.5.5-1 1-1h8c.5 0 1 .5 1 1v4"/></g><g fill="#62727a"><path d="m24.8 41.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v3"/><path d="m27.8 41.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v3"/><path d="m30.8 41.5c0 .3-.2.5-.5.5h-1c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h1c.3 0 .5.2.5.5v3"/></g><g fill="#3e4347"><path d="m45.4 53.5h-2.9c0-1.6-1.3-2.9-2.9-2.9h-2.9v-2.9h2.9c3.1-.1 5.8 2.5 5.8 5.8"/><path d="m48.3 59.4c-3.2 0-5.9-2.6-5.9-5.9h2.9c0 1.6 1.3 2.9 2.9 2.9 1.6 0 2.9-1.3 2.9-2.9v-22.1h2.9v22.1c.2 3.2-2.4 5.9-5.7 5.9"/></g><path d="m54.2 31.4h-2.9v-.1c-2.5-.4-4.4-2.5-4.4-5.1v-.8l4.4-2.9c0-1.6-1.3-2.9-2.9-2.9v-2.9c3.2 0 5.9 2.6 5.9 5.9l-.1 8.8m-4.3-4.5c.2.6.7 1.1 1.4 1.4v-2.3l-1.4.9" fill="#d0d0d0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2702.svg b/build/js/jsxc/lib/emojione/assets/svg/2702.svg
index 35f8625..a5e934d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2702.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2702.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#a9b5ae" d="m57.03 48.612c-4.523 8.166-15.741-3.055-30.778-12.578-2.793-1.77-3.932-4.436-1.263-7.168 0 0-.096-.256-.468-.744l5.654-2.54 26.855 23.03"/><path fill="#454749" d="m24.13 2.507c-4.36-3.739-10.922-3.238-14.661 1.123-3.738 4.359-3.234 10.922 1.126 14.66.474.408 1.81 1.24 1.901 1.291 8.223 4.427 11.07 7.283 12.03 8.541l5.654-2.54-1.86-1.594c0 0-6.167-2.815-6.778-4.08 1.385-.608 2.663-1.519 3.713-2.742 3.739-4.36 3.235-10.922-1.124-14.659m-3.265 3.809c2.253 1.932 2.513 5.328.579 7.582-1.933 2.254-5.328 2.516-7.582.583-2.256-1.935-2.516-5.329-.581-7.585 1.932-2.252 5.327-2.515 7.584-.58"/><path fill="#cedbd5" d="m57.03 15.389c-4.522-8.166-15.74 3.055-30.777 12.579-2.793 1.77-3.932 4.434-1.263 7.168 0 0-.096.256-.468.744l5.654 2.539 26.854-23.03"/><g fill="#454749"><path d="m25.25 46.833c-1.05-1.223-2.328-2.133-3.714-2.74.612-1.266 6.779-4.08 6.779-4.08l1.86-1.594-5.654-2.539c-.957 1.256-3.807 4.113-12.03 8.539-.092.051-1.428.883-1.901 1.291-4.36 3.738-4.864 10.301-1.126 14.66 3.738 4.361 10.301 4.863 14.661 1.123 4.359-3.736 4.863-10.299 1.124-14.66m-11.973 10.271c-1.935-2.256-1.675-5.65.581-7.586 2.254-1.932 5.648-1.672 7.582.584 1.934 2.254 1.674 5.65-.58 7.582-2.256 1.936-5.651 1.672-7.583-.58"/><path d="m31.07 33.749c-.967 1.18-2.704 1.348-3.881.381-1.176-.965-1.348-2.702-.381-3.879.966-1.176 2.703-1.348 3.88-.381 1.175.964 1.347 2.703.382 3.879"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m57 48.6c-4.5 8.2-15.7-3.1-30.8-12.6-2.8-1.8-3.9-4.4-1.3-7.2 0 0-.1-.3-.5-.7l5.7-2.5 26.9 23" fill="#a9b5ae"/><path d="m24.1 2.5c-4.3-3.7-10.9-3.2-14.6 1.1-3.8 4.4-3.3 11 1.1 14.7.5.4 1.8 1.2 1.9 1.3 8.2 4.4 11.1 7.3 12 8.5l5.7-2.5-1.9-1.6c0 0-6.2-2.8-6.8-4.1 1.4-.6 2.7-1.5 3.7-2.7 3.8-4.4 3.3-11-1.1-14.7m-3.2 3.8c2.3 1.9 2.5 5.3.6 7.6-1.9 2.3-5.3 2.5-7.6.6-2.3-1.9-2.5-5.3-.6-7.6 1.9-2.3 5.3-2.5 7.6-.6" fill="#454749"/><path d="m57 15.4c-4.5-8.2-15.7 3-30.7 12.6-2.8 1.8-3.9 4.4-1.3 7.2 0 0-.1.3-.5.7l5.7 2.5 26.8-23" fill="#cedbd5"/><g fill="#454749"><path d="m25.3 46.8c-1-1.2-2.3-2.1-3.7-2.7.6-1.3 6.8-4.1 6.8-4.1l1.9-1.6-5.7-2.5c-1 1.3-3.8 4.1-12 8.5-.1.1-1.4.9-1.9 1.3-4.5 3.7-5 10.3-1.2 14.7 3.7 4.4 10.3 4.9 14.7 1.1 4.3-3.7 4.8-10.3 1.1-14.7m-12 10.3c-1.9-2.3-1.7-5.7.6-7.6 2.3-1.9 5.6-1.7 7.6.6 1.9 2.3 1.7 5.7-.6 7.6-2.3 1.9-5.7 1.7-7.6-.6"/><path d="m31.1 33.7c-1 1.2-2.7 1.3-3.9.4-1.2-1-1.3-2.7-.4-3.9 1-1.2 2.7-1.3 3.9-.4 1.2 1 1.3 2.8.4 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2705.svg b/build/js/jsxc/lib/emojione/assets/svg/2705.svg
index 3aa8623..4f0474a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2705.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2705.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#75a843" cx="32" cy="32" r="30"/><path fill="#fff" d="m46.01 14l-21 21.619-6.98-7.183-7.03 7.164 13.988 14.4.022-.019.01.019 27.98-28.8z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4bd37b"/><path fill="#fff" d="m46 14l-21 21.6-7-7.2-7 7.2 14 14.4 28-28.8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2708.svg b/build/js/jsxc/lib/emojione/assets/svg/2708.svg
index a1a8e7b..92d5f73 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2708.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2708.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#c5d0d8" d="m8.938 35.83c0 0-5.486.572-7.982 4.26-1.287 1.902.08 3.803 1.607 3.803 2.952 0 6.092-2.16 7.66-7.707l-1.285-.356"/><ellipse transform="matrix(.9056-.4241.4241.9056-17.413 4.992)" fill="#dae3ea" cx="2.507" cy="41.613" rx="2.13" ry="2.336"/><ellipse transform="matrix(.9056-.4241.4241.9056-17.481 4.918)" fill="#3e4347" cx="2.31" cy="41.737" rx="1.588" ry="1.785"/><g fill="#ed4c5c"><circle cx="7.102" cy="32.893" r=".962"/><circle opacity=".5" cx="7.102" cy="32.893" r="1.504"/></g><path fill="#42ade2" d="m7.529 42.748c2.474-3.83 3.73-5.484 7.126-7.531.963-.58 2.095-1.178 3.345-1.783-5.554-.436-10.272-.689-13.04-.686-1.777.008-5.912 2.025-4.767 3.617.942 1.303 4.243 3.996 7.332 6.383"/><path fill="#dae3ea" d="m53.3 22.538c-10.06 1.434-28.02 5.482-36.912 10.285-5.318 2.871-5.625 4.902-12.662 14.172-7.471 9.842 1.428 16.324 14.61 12.285 13.209-4.05 30.03-20.01 37.887-31.07 1.831-2.577.271-6.123-2.923-5.668"/><path fill="#c5d0d8" d="m30 47.748c-4.909 3.525-15.167 8.098-15.167 8.098l3.5 3.434c13.209-4.05 30.03-20.01 37.887-31.07.909-1.279.982-2.798.435-3.947-.139 2.927-2.874 6.411-26.655 23.489"/><path fill="#42ade2" d="m62.781 24.926c.64-.599-6.807-1.608-6.807-1.608s-6.879 2.961-5.693 4.102c7.858-.435 11.529-1.584 12.5-2.494"/><g fill="#3e4347"><path d="m45.39 29.97c-.491.226-.894.823-.894 1.329v1.255c0 .504.382.7.848.43l2.305-1.32c.466-.27.848-.901.848-1.406v-.802c0-.504-.402-.732-.894-.506l-2.213 1.02"/><path d="m32.394 35.955c-.491.225-.894.824-.894 1.33v2.723c0 .506.382.699.848.434l3.305-1.896c.466-.268.848-.898.848-1.404v-2.158c0-.506-.402-.732-.894-.508l-3.213 1.479"/><path d="m39.39 32.73c-.491.227-.894.824-.894 1.33v1.934c0 .504.382.699.848.432l2.305-1.322c.466-.266.848-.898.848-1.402v-1.483c0-.504-.402-.732-.894-.507l-2.213 1.018"/><path d="m22.65 39.555c-7.091-.186-10.319-.674-12.08-1.885-.946 1.195-2.08 2.803-3.469 4.746.604.756 4.587 4.984 14.688 2.248 1.506-.408 2.322-1.561 2.93-2.926.605-1.365.368-2.121-2.069-2.183"/></g><path fill="#e6e6e6" d="m15.02 37.498c0 0-3.193 2.029-6.02 9.268 0 0 2.586 1.277 2.819.455 1.867-6.557 5.181-9.332 5.181-9.332l-1.977-.391"/><path fill="#3e4347" d="m19.17 59.01c-5.135 1.855-13.332 3-16.853-1.268-1.791-2.172-2.313-6.311 1.486-10.847 2.035-.961 12.66 2.097 15.367 12.11"/><g fill="#83bf4f"><circle cx="61" cy="40.498" r="1.534"/><circle opacity=".5" cx="61" cy="40.498" r="2.43"/></g><path fill="#c5d0d8" d="m53.01 40.66c0 0-8.07 2.545-11.779 8.576-1.188 1.934 5.063 6.213 5.063 6.213 2.655-1.295 6.452-5.389 9.233-12.795l-2.517-1.994"/><path fill="#42ade2" d="m64 42.24c0-1.457-6.999-3.582-20.502-4.49-2.998.041-7.498 3-13.498 10 10.703 0 25.13-.404 29.953-2.107 3.044-1.077 4.047-2.17 4.047-3.403"/><path fill="#acb8bf" d="m55.28 20.958c0-.997-.626-1.804-1.397-1.804-.046 0-.091.012-.137.018l-.002-.018-6.951 1.183 1.053 5.249 6.734-3.01c.428-.346.7-.761.7-1.621"/><path fill="#42ade2" d="m48.17 20.715c0 0 3.742-12.625 6.452-15.972.398-.493 2.101-1.417 2.101-1.417l-2.539 15.872-6.01 1.517"/><ellipse transform="matrix(.9199-.3921.3921.9199-16.719 21.587)" fill="#dae3ea" cx="44.494" cy="51.728" rx="4.01" ry="4.136"/><ellipse transform="matrix(.9199-.392.392.9199-16.794 21.524)" fill="#3e4347" cx="44.31" cy="51.884" rx="2.987" ry="3.16"/><path fill="#dae3ea" d="m55.929 3.326c0 0-1.686.938-2.101 1.417-2.865 3.305-7.631 15.742-7.631 15.742l1.976.229c0 0 3.742-12.625 6.452-15.972.398-.493 2.101-1.417 2.101-1.417h-.797z"/><ellipse transform="matrix(.9568-.2909.2909.9568-4.645 14.719)" fill="#c5d0d8" cx="47.18" cy="22.983" rx="2.257" ry="2.688"/><ellipse transform="matrix(.9567-.291.291.9567-4.653 14.709)" fill="#3e4347" cx="47.13" cy="22.999" rx="1.604" ry="1.946"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#acb8bf"><path transform="matrix(.7071-.7071.7071.7071-3.2532 11.4792)" d="m6.5 8.3h11.5v2.8h-11.5z"/><path transform="matrix(.7072-.707.707.7072-.5001 22.148)" d="m20.7 10.3h11.5v2.8h-11.5z"/><path transform="matrix(.7073-.7069.7069.7073-20.6921 53.5613)" d="m48.6 50.4h11.5v2.8h-11.5z"/><path transform="matrix(.7073-.7069.7069.7073-11.2004 47.9651)" d="m46.6 36.1h11.5v2.8h-11.5z"/></g><path d="m56.4 60.7c-4.7-42.1-4.7-42.1-4.7-42.1l-6.3-6.3c0 0 0 0-42.1-4.7-2-.2-1.6 4.8.7 5.9 31.7 14.8 31.7 14.8 31.7 14.8s0 0 14.8 31.7c1.1 2.3 6.1 2.7 5.9.7" fill="#42ade2"/><path d="m61.3 8.1c2.2-4.3-1.1-7.6-5.4-5.4-5.5 2.8-13.6 9.1-21.8 17.2-12.8 12.8-21 25.5-18.3 28.3 2.7 2.7 15.5-5.5 28.3-18.3 8.1-8.1 14.4-16.3 17.2-21.8" fill="#dae3ea"/><path d="m22.4 60.2c-1.6-14.8-1.6-14.8-1.6-14.8l-2.2-2.2c0 0 0 0-14.8-1.6-.7-.1-.6 1.7.2 2.1 11.1 5.2 11.1 5.2 11.1 5.2s0 0 5.2 11.1c.4.8 2.2.9 2.1.2" fill="#42ade2"/><path d="m20.2 46.2c-4.5 4.5-8.6 7.6-9.2 6.9-.6-.6 2.5-4.8 6.9-9.3 4.5-4.5 8.6-7.6 9.3-6.9.5.6-2.6 4.8-7 9.3" fill="#acb8bf"/><path d="m59.8 9.7c.5-1.8.3-3.5-.8-4.7-1.1-1.1-2.9-1.4-4.6-.8l-3.4 2.1c1.7-.6 4.2.3 5.3 1.4 1.2 1.2 2 3.6 1.4 5.3l2.1-3.3" fill="#3e4347"/><path transform="matrix(.7068-.7074.7074.7068 11.6051 42.3106)" fill="#dae3ea" d="m52.8 6.7h8v.9h-8z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2709.svg b/build/js/jsxc/lib/emojione/assets/svg/2709.svg
index 42beb1c..4337c48 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2709.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2709.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m.602 48.697l18.517-19.292-14.256-20.467c-.683.894-1.186 2.126-1.329 3.482l-3.493 32.709c-.143 1.345.084 2.61.561 3.568"/><path d="m62.692 5.457l-26.774 24.899 21.1 28.518c1.155-.971 1.989-2.492 2.186-4.326l4.755-44.538c.196-1.847-.316-3.461-1.266-4.553"/></g><path fill="#cad5dd" d="m25.732 39.38l-6.613-9.977-18.517 19.292c.44.883 1.093 1.51 1.88 1.659l50.813 9.569c1.357.257 2.669-.167 3.722-1.052l-21.1-28.517-10.186 9.03"/><path fill="#dfe9ef" d="m59.27 4.01l-52.21 3.531c-.802.055-1.57.59-2.189 1.398l14.256 20.467 6.613 9.977 10.186-9.03 26.774-24.899c-.851-.977-2.045-1.539-3.426-1.448"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b0bdc6"><path d="m.6 48.7l18.5-19.3-14.2-20.5c-.7.9-1.2 2.1-1.3 3.5l-3.6 32.7c-.1 1.4.1 2.6.6 3.6"/><path d="m62.7 5.5l-26.8 24.9 21.1 28.5c1.2-1 2-2.5 2.2-4.3l4.8-44.6c.2-1.8-.4-3.5-1.3-4.5"/></g><path d="m25.7 39.4l-6.6-10-18.5 19.3c.4.9 1.1 1.5 1.9 1.7l50.8 9.6c1.4.3 2.7-.2 3.7-1.1l-21.1-28.5-10.2 9" fill="#cad5dd"/><path d="m59.3 4l-52.2 3.5c-.9.1-1.6.6-2.2 1.4l14.3 20.5 6.6 10 10.2-9 26.7-24.9c-.9-1-2.1-1.6-3.4-1.5" fill="#dfe9ef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fb.svg
index 70adae2..425a770 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m52.38 23.396v-6.24c0 0-11.604-8.693-34.689-4.727 0 0-13.145 1.857-13.145 8.719 0 0-2.236 16.826 2.406 27.402 6.908 15.754 39.734 21.783 50.932-5.03 2.226-5.332 2.527-20.231-5.504-20.12"/><path d="m4.552 14.685c0-3.492 2.797-6.316 6.25-6.316h.104c3.449 0 6.244 2.824 6.244 6.316v9.764c0 3.486-2.795 6.316-6.244 6.316h-.104c-3.453 0-6.25-2.83-6.25-6.316v-9.764"/><path d="m17 9.02c0-3.486 2.799-6.314 6.252-6.314h.098c3.453 0 6.254 2.828 6.254 6.314v9.764c0 3.49-2.801 6.32-6.254 6.32h-.098c-3.453 0-6.252-2.83-6.252-6.32v-9.764"/><path d="m29.606 8.315c0-3.488 2.795-6.316 6.248-6.316h.102c3.449 0 6.248 2.828 6.248 6.316v9.764c0 3.488-2.799 6.32-6.248 6.32h-.102c-3.453 0-6.248-2.832-6.248-6.32v-9.764"/><path d="m41.915 11.536c0-3.49 2.797-6.314 6.248-6.314h.102c3.451 0 6.248 2.824 6.248 6.314v9.766c0 3.486-2.797 6.316-6.248 6.316h-.102c-3.451 0-6.248-2.83-6.248-6.316v-9.766"/></g><g fill="#e6b796"><path d="m9.03 28.423h.082c3.449 0 6.158-2.789 6.158-6.277v-9.771c0-.943-.209-1.834-.572-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.701 6.234-6.154 6.234h-.076c-2.523 0-4.691-1.49-5.682-3.662 1.057.812 2.366 1.32 3.791 1.32"/><path d="m21.45 22.759h.076c3.453 0 6.193-2.744 6.193-6.232v-9.774c0-.939-.203-1.832-.57-2.635 1.492 1.152 2.457 2.973 2.457 5.02v9.771c0 3.488-2.742 6.195-6.191 6.195h-.08c-2.52 0-4.688-1.49-5.678-3.662 1.051.813 2.367 1.317 3.793 1.317"/><path d="m34.03 22.05h.076c3.453 0 6.219-2.744 6.219-6.232v-9.774c0-.939-.209-1.832-.57-2.635 1.492 1.152 2.453 2.973 2.453 5.02v9.771c0 3.488-2.764 6.195-6.213 6.195h-.08c-2.52 0-4.691-1.49-5.68-3.662 1.055.813 2.368 1.317 3.795 1.317"/><path d="m46.44 25.276h.08c3.451 0 6.105-2.789 6.105-6.277v-9.771c0-.943-.205-1.834-.568-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.654 6.234-6.105 6.234h-.08c-2.516 0-4.688-1.49-5.678-3.662 1.053.813 2.366 1.32 3.793 1.32"/><path d="m44.796 16.616c-4.686-3.57-6.195 1.107-14.746.451-3.74-.287-6.242 7.393-.895 10.842 7.436 4.797 8.652-.74 10.334 1.65 1.787 2.537 3.656 3.197 5.086 6.07 1.039 2.086 11.11.117 12.57-3.779 2.801-7.48-4.916-9.568-12.349-15.234"/></g><path fill="#ffe1bd" d="m45.3 18.02c-4.869-3.713-6.443 1.154-15.34.471-3.891-.299-6.492 7.689-.928 11.277 7.734 4.992 8.998-.77 10.746 1.717 1.863 2.641 3.807 3.326 5.293 6.316 1.08 2.17-3.197 9.482-3.197 9.482s9.256 8.256 11.74 4.381c4.611-7.201 4.174-13.307 4.533-17.795.827-10.337-5.111-9.952-12.847-15.849"/><g fill="#e6b796"><path d="m54.817 24.21c5.283 3.191 3.451 17.836-1.455 24.461-12.197 16.476-34.748 13.771-44.45 3.213 8.773 11.863 32.715 15.5 45.873-1.521 5.268-6.817 8.461-23.386.037-26.15"/><path d="m43.909 37.886c.334.672.154 1.836-.25 3.123.814-1.939 1.43-3.984.941-4.969-1.486-2.988-2.438-3.674-4.297-6.314-1.75-2.488-3.01 3.275-10.748-1.717-2.861-1.846-3.553-4.852-3.03-7.299-1.436 2.559-1.309 6.791 2.338 9.146 7.734 4.99 9-.771 10.748 1.715 1.862 2.641 2.813 3.326 4.297 6.315"/><path d="m27.638 45.601c0-7.764 5.652-14.13 12.844-14.771-.877-.244-1.791-.391-2.742-.391-6.156 0-11.148 5.273-11.148 11.777 0 1.877.426 3.641 1.166 5.211-.071-.598-.12-1.205-.12-1.826"/><path d="m25.437 31.05c-1.207-.344-2.426-.215-3.494.266.459.029.92.098 1.381.229 3.529 1.01 5.664 4.738 4.941 8.473.43-.578.766-1.248.957-2 .773-3.03-.92-6.148-3.785-6.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m53.1 24l-23.5-10.9-26 8.6c0 0-1.5 11.2 0 22.7 2.3 17.9 21.5 14.8 21.5 14.8 13.7 6.2 27.4.4 33.7-14.5 2.3-5.5 2.6-20.8-5.7-20.7"/><path d="m3.7 16.4c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1"/></g><path d="m8.5 32c3.8 0 6.8-3.2 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.1 1.9 1.3 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.7 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2.9 2.7 1.5 4.2 1.5" fill="#e6b796"/><path d="m17.2 10c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1" fill="#ffe1bd"/><path d="m22 25.6c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.2 2 1.6 2.7 3.5 2.7 5.9v11.1c0 4-3 7-6.7 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.7 1.6 4.2 1.6" fill="#e6b796"/><path d="m30.9 9.2c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1" fill="#ffe1bd"/><path d="m35.7 24.8c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2 1.5 2.7 3.5 2.7 5.8v11.1c0 4-3 7-6.8 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.6 1.6 4.2 1.6" fill="#e6b796"/><path d="m44.3 12.8c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.2c-3.8 0-6.8-3.2-6.8-7.2v-11.1z" fill="#ffe1bd"/><g fill="#e6b796"><path d="m49.2 28.4c3.8 0 6.7-3.2 6.7-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2.1 1.5 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.6 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.1.9 2.5 1.5 4.1 1.5"/><path d="m41.6 32.3c-5.7-2.8-18.5 2-16 14 0-12.5 11.1-14.6 16-14"/><path d="m44.1 17c-5.3-3.7-7 1.1-16.6.5-4.2-.3-7 7.6-1 11.2 8.3 4.9 9.7-.8 11.6 1.7 2 2.6 4.1 3.3 5.7 6.2 1.2 2.1 12.5.1 14.1-3.9 3.2-7.7-5.5-9.8-13.8-15.7"/></g><path d="m44.7 18.5c-5.5-3.8-7.2 1.2-17.2.5-4.4-.3-7.3 7.9-1 11.6 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.7 4.3 3.4 5.9 6.5 1.2 2.2-3.6 9.8-3.6 9.8s10.4 8.5 13.2 4.5c5.2-7.4 4.7-13.7 5.1-18.3.8-10.7-5.9-10.3-14.5-16.4" fill="#ffe1bd"/><g fill="#e6b796"><path d="m43.1 38.9c.4.7.2 1.9-.3 3.2.9-2 1.6-4.1 1.1-5.1-1.7-3.1-2.7-3.8-4.8-6.5-2-2.6-3.4 3.4-12.1-1.8-3.2-1.9-4-5-3.4-7.5-1.6 2.6-1.5 7 2.6 9.4 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.8 3.1 3.5 4.8 6.5"/><path d="m55.6 24.9c5.5 3.3 3.6 18.4-1.5 25.2-8 10.7-18.5 10.6-29 8.5 0 0-12.7 3.5-20.1-8.5 4.6 12.7 20.1 10.1 20.1 10.1 11.1 3.4 21.9 2.6 30.4-8.4 5.5-7 8.8-24.1.1-26.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fc.svg
index 40dc91f..64c091b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m52.38 23.396v-6.24c0 0-11.604-8.693-34.689-4.727 0 0-13.145 1.857-13.145 8.719 0 0-2.236 16.826 2.406 27.402 6.908 15.754 39.734 21.783 50.932-5.03 2.226-5.332 2.527-20.231-5.504-20.12"/><path d="m4.552 14.685c0-3.492 2.797-6.316 6.25-6.316h.104c3.449 0 6.244 2.824 6.244 6.316v9.764c0 3.486-2.795 6.316-6.244 6.316h-.104c-3.453 0-6.25-2.83-6.25-6.316v-9.764"/><path d="m17 9.02c0-3.486 2.799-6.314 6.252-6.314h.098c3.453 0 6.254 2.828 6.254 6.314v9.764c0 3.49-2.801 6.32-6.254 6.32h-.098c-3.453 0-6.252-2.83-6.252-6.32v-9.764"/><path d="m29.606 8.315c0-3.488 2.795-6.316 6.248-6.316h.102c3.449 0 6.248 2.828 6.248 6.316v9.764c0 3.488-2.799 6.32-6.248 6.32h-.102c-3.453 0-6.248-2.832-6.248-6.32v-9.764"/><path d="m41.915 11.536c0-3.49 2.797-6.314 6.248-6.314h.102c3.451 0 6.248 2.824 6.248 6.314v9.766c0 3.486-2.797 6.316-6.248 6.316h-.102c-3.451 0-6.248-2.83-6.248-6.316v-9.766"/></g><g fill="#e0a372"><path d="m9.03 28.423h.082c3.449 0 6.158-2.789 6.158-6.277v-9.771c0-.943-.209-1.834-.572-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.701 6.234-6.154 6.234h-.076c-2.523 0-4.691-1.49-5.682-3.662 1.057.812 2.366 1.32 3.791 1.32"/><path d="m21.45 22.759h.076c3.453 0 6.193-2.744 6.193-6.232v-9.774c0-.939-.203-1.832-.57-2.635 1.492 1.152 2.457 2.973 2.457 5.02v9.771c0 3.488-2.742 6.195-6.191 6.195h-.08c-2.52 0-4.688-1.49-5.678-3.662 1.051.813 2.367 1.317 3.793 1.317"/><path d="m34.03 22.05h.076c3.453 0 6.219-2.744 6.219-6.232v-9.774c0-.939-.209-1.832-.57-2.635 1.492 1.152 2.453 2.973 2.453 5.02v9.771c0 3.488-2.764 6.195-6.213 6.195h-.08c-2.52 0-4.691-1.49-5.68-3.662 1.055.813 2.368 1.317 3.795 1.317"/><path d="m46.44 25.276h.08c3.451 0 6.105-2.789 6.105-6.277v-9.771c0-.943-.205-1.834-.568-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.654 6.234-6.105 6.234h-.08c-2.516 0-4.688-1.49-5.678-3.662 1.053.813 2.366 1.32 3.793 1.32"/><path d="m44.796 16.616c-4.686-3.57-6.195 1.107-14.746.451-3.74-.287-6.242 7.393-.895 10.842 7.436 4.797 8.652-.74 10.334 1.65 1.787 2.537 3.656 3.197 5.086 6.07 1.039 2.086 11.11.117 12.57-3.779 2.801-7.48-4.916-9.568-12.349-15.234"/></g><path fill="#fed0ac" d="m45.3 18.02c-4.869-3.713-6.443 1.154-15.34.471-3.891-.299-6.492 7.689-.928 11.277 7.734 4.992 8.998-.77 10.746 1.717 1.863 2.641 3.807 3.326 5.293 6.316 1.08 2.17-3.197 9.482-3.197 9.482s9.256 8.256 11.74 4.381c4.611-7.201 4.174-13.307 4.533-17.795.827-10.337-5.111-9.952-12.847-15.849"/><g fill="#e0a372"><path d="m54.817 24.21c5.283 3.191 3.451 17.836-1.455 24.461-12.197 16.476-34.748 13.771-44.45 3.213 8.773 11.863 32.715 15.5 45.873-1.521 5.268-6.817 8.461-23.386.037-26.15"/><path d="m43.909 37.886c.334.672.154 1.836-.25 3.123.814-1.939 1.43-3.984.941-4.969-1.486-2.988-2.438-3.674-4.297-6.314-1.75-2.488-3.01 3.275-10.748-1.717-2.861-1.846-3.553-4.852-3.03-7.299-1.436 2.559-1.309 6.791 2.338 9.146 7.734 4.99 9-.771 10.748 1.715 1.862 2.641 2.813 3.326 4.297 6.315"/><path d="m27.638 45.601c0-7.764 5.652-14.13 12.844-14.771-.877-.244-1.791-.391-2.742-.391-6.156 0-11.148 5.273-11.148 11.777 0 1.877.426 3.641 1.166 5.211-.071-.598-.12-1.205-.12-1.826"/><path d="m25.437 31.05c-1.207-.344-2.426-.215-3.494.266.459.029.92.098 1.381.229 3.529 1.01 5.664 4.738 4.941 8.473.43-.578.766-1.248.957-2 .773-3.03-.92-6.148-3.785-6.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m53.1 24l-23.5-10.9-26 8.6c0 0-1.5 11.2 0 22.7 2.3 17.9 21.5 14.8 21.5 14.8 13.7 6.2 27.4.4 33.7-14.5 2.3-5.5 2.6-20.8-5.7-20.7"/><path d="m3.7 16.4c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1"/></g><path d="m8.5 32c3.8 0 6.8-3.2 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.1 1.9 1.3 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.7 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2.9 2.7 1.5 4.2 1.5" fill="#e0a372"/><path d="m17.2 10c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1" fill="#fed0ac"/><path d="m22 25.6c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.2 2 1.6 2.7 3.5 2.7 5.9v11.1c0 4-3 7-6.7 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.7 1.6 4.2 1.6" fill="#e0a372"/><path d="m30.9 9.2c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1" fill="#fed0ac"/><path d="m35.7 24.8c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2 1.5 2.7 3.5 2.7 5.8v11.1c0 4-3 7-6.8 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.6 1.6 4.2 1.6" fill="#e0a372"/><path d="m44.3 12.8c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.2c-3.8 0-6.8-3.2-6.8-7.2v-11.1z" fill="#fed0ac"/><g fill="#e0a372"><path d="m49.2 28.4c3.8 0 6.7-3.2 6.7-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2.1 1.5 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.6 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.1.9 2.5 1.5 4.1 1.5"/><path d="m41.6 32.3c-5.7-2.8-18.5 2-16 14 0-12.5 11.1-14.6 16-14"/><path d="m44.1 17c-5.3-3.7-7 1.1-16.6.5-4.2-.3-7 7.6-1 11.2 8.3 4.9 9.7-.8 11.6 1.7 2 2.6 4.1 3.3 5.7 6.2 1.2 2.1 12.5.1 14.1-3.9 3.2-7.7-5.5-9.8-13.8-15.7"/></g><path d="m44.7 18.5c-5.5-3.8-7.2 1.2-17.2.5-4.4-.3-7.3 7.9-1 11.6 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.7 4.3 3.4 5.9 6.5 1.2 2.2-3.6 9.8-3.6 9.8s10.4 8.5 13.2 4.5c5.2-7.4 4.7-13.7 5.1-18.3.8-10.7-5.9-10.3-14.5-16.4" fill="#fed0ac"/><g fill="#e0a372"><path d="m43.1 38.9c.4.7.2 1.9-.3 3.2.9-2 1.6-4.1 1.1-5.1-1.7-3.1-2.7-3.8-4.8-6.5-2-2.6-3.4 3.4-12.1-1.8-3.2-1.9-4-5-3.4-7.5-1.6 2.6-1.5 7 2.6 9.4 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.8 3.1 3.5 4.8 6.5"/><path d="m55.6 24.9c5.5 3.3 3.6 18.4-1.5 25.2-8 10.7-18.5 10.6-29 8.5 0 0-12.7 3.5-20.1-8.5 4.6 12.7 20.1 10.1 20.1 10.1 11.1 3.4 21.9 2.6 30.4-8.4 5.5-7 8.8-24.1.1-26.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fd.svg
index 1c43614..ac29bb9 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m52.38 23.396v-6.24c0 0-11.604-8.693-34.689-4.727 0 0-13.145 1.857-13.145 8.719 0 0-2.236 16.826 2.406 27.402 6.908 15.754 39.734 21.783 50.932-5.03 2.226-5.332 2.527-20.231-5.504-20.12"/><path d="m4.552 14.685c0-3.492 2.797-6.316 6.25-6.316h.104c3.449 0 6.244 2.824 6.244 6.316v9.764c0 3.486-2.795 6.316-6.244 6.316h-.104c-3.453 0-6.25-2.83-6.25-6.316v-9.764"/><path d="m17 9.02c0-3.486 2.799-6.314 6.252-6.314h.098c3.453 0 6.254 2.828 6.254 6.314v9.764c0 3.49-2.801 6.32-6.254 6.32h-.098c-3.453 0-6.252-2.83-6.252-6.32v-9.764"/><path d="m29.606 8.315c0-3.488 2.795-6.316 6.248-6.316h.102c3.449 0 6.248 2.828 6.248 6.316v9.764c0 3.488-2.799 6.32-6.248 6.32h-.102c-3.453 0-6.248-2.832-6.248-6.32v-9.764"/><path d="m41.915 11.536c0-3.49 2.797-6.314 6.248-6.314h.102c3.451 0 6.248 2.824 6.248 6.314v9.766c0 3.486-2.797 6.316-6.248 6.316h-.102c-3.451 0-6.248-2.83-6.248-6.316v-9.766"/></g><g fill="#b58360"><path d="m9.03 28.423h.082c3.449 0 6.158-2.789 6.158-6.277v-9.771c0-.943-.209-1.834-.572-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.701 6.234-6.154 6.234h-.076c-2.523 0-4.691-1.49-5.682-3.662 1.057.812 2.366 1.32 3.791 1.32"/><path d="m21.45 22.759h.076c3.453 0 6.193-2.744 6.193-6.232v-9.774c0-.939-.203-1.832-.57-2.635 1.492 1.152 2.457 2.973 2.457 5.02v9.771c0 3.488-2.742 6.195-6.191 6.195h-.08c-2.52 0-4.688-1.49-5.678-3.662 1.051.813 2.367 1.317 3.793 1.317"/><path d="m34.03 22.05h.076c3.453 0 6.219-2.744 6.219-6.232v-9.774c0-.939-.209-1.832-.57-2.635 1.492 1.152 2.453 2.973 2.453 5.02v9.771c0 3.488-2.764 6.195-6.213 6.195h-.08c-2.52 0-4.691-1.49-5.68-3.662 1.055.813 2.368 1.317 3.795 1.317"/><path d="m46.44 25.276h.08c3.451 0 6.105-2.789 6.105-6.277v-9.771c0-.943-.205-1.834-.568-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.654 6.234-6.105 6.234h-.08c-2.516 0-4.688-1.49-5.678-3.662 1.053.813 2.366 1.32 3.793 1.32"/><path d="m44.796 16.616c-4.686-3.57-6.195 1.107-14.746.451-3.74-.287-6.242 7.393-.895 10.842 7.436 4.797 8.652-.74 10.334 1.65 1.787 2.537 3.656 3.197 5.086 6.07 1.039 2.086 11.11.117 12.57-3.779 2.801-7.48-4.916-9.568-12.349-15.234"/></g><path fill="#d6a57c" d="m45.3 18.02c-4.869-3.713-6.443 1.154-15.34.471-3.891-.299-6.492 7.689-.928 11.277 7.734 4.992 8.998-.77 10.746 1.717 1.863 2.641 3.807 3.326 5.293 6.316 1.08 2.17-3.197 9.482-3.197 9.482s9.256 8.256 11.74 4.381c4.611-7.201 4.174-13.307 4.533-17.795.827-10.337-5.111-9.952-12.847-15.849"/><g fill="#b58360"><path d="m54.817 24.21c5.283 3.191 3.451 17.836-1.455 24.461-12.197 16.476-34.748 13.771-44.45 3.213 8.773 11.863 32.715 15.5 45.873-1.521 5.268-6.817 8.461-23.386.037-26.15"/><path d="m43.909 37.886c.334.672.154 1.836-.25 3.123.814-1.939 1.43-3.984.941-4.969-1.486-2.988-2.438-3.674-4.297-6.314-1.75-2.488-3.01 3.275-10.748-1.717-2.861-1.846-3.553-4.852-3.03-7.299-1.436 2.559-1.309 6.791 2.338 9.146 7.734 4.99 9-.771 10.748 1.715 1.862 2.641 2.813 3.326 4.297 6.315"/><path d="m27.638 45.601c0-7.764 5.652-14.13 12.844-14.771-.877-.244-1.791-.391-2.742-.391-6.156 0-11.148 5.273-11.148 11.777 0 1.877.426 3.641 1.166 5.211-.071-.598-.12-1.205-.12-1.826"/><path d="m25.437 31.05c-1.207-.344-2.426-.215-3.494.266.459.029.92.098 1.381.229 3.529 1.01 5.664 4.738 4.941 8.473.43-.578.766-1.248.957-2 .773-3.03-.92-6.148-3.785-6.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m53.1 24l-23.5-10.9-26 8.6c0 0-1.5 11.2 0 22.7 2.3 17.9 21.5 14.8 21.5 14.8 13.7 6.2 27.4.4 33.7-14.5 2.3-5.5 2.6-20.8-5.7-20.7"/><path d="m3.7 16.4c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1"/></g><path d="m8.5 32c3.8 0 6.8-3.2 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.1 1.9 1.3 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.7 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2.9 2.7 1.5 4.2 1.5" fill="#b58360"/><path d="m17.2 10c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1" fill="#d6a57c"/><path d="m22 25.6c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.2 2 1.6 2.7 3.5 2.7 5.9v11.1c0 4-3 7-6.7 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.7 1.6 4.2 1.6" fill="#b58360"/><path d="m30.9 9.2c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1" fill="#d6a57c"/><path d="m35.7 24.8c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2 1.5 2.7 3.5 2.7 5.8v11.1c0 4-3 7-6.8 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.6 1.6 4.2 1.6" fill="#b58360"/><path d="m44.3 12.8c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.2c-3.8 0-6.8-3.2-6.8-7.2v-11.1z" fill="#d6a57c"/><g fill="#b58360"><path d="m49.2 28.4c3.8 0 6.7-3.2 6.7-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2.1 1.5 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.6 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.1.9 2.5 1.5 4.1 1.5"/><path d="m41.6 32.3c-5.7-2.8-18.5 2-16 14 0-12.5 11.1-14.6 16-14"/><path d="m44.1 17c-5.3-3.7-7 1.1-16.6.5-4.2-.3-7 7.6-1 11.2 8.3 4.9 9.7-.8 11.6 1.7 2 2.6 4.1 3.3 5.7 6.2 1.2 2.1 12.5.1 14.1-3.9 3.2-7.7-5.5-9.8-13.8-15.7"/></g><path d="m44.7 18.5c-5.5-3.8-7.2 1.2-17.2.5-4.4-.3-7.3 7.9-1 11.6 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.7 4.3 3.4 5.9 6.5 1.2 2.2-3.6 9.8-3.6 9.8s10.4 8.5 13.2 4.5c5.2-7.4 4.7-13.7 5.1-18.3.8-10.7-5.9-10.3-14.5-16.4" fill="#d6a57c"/><g fill="#b58360"><path d="m43.1 38.9c.4.7.2 1.9-.3 3.2.9-2 1.6-4.1 1.1-5.1-1.7-3.1-2.7-3.8-4.8-6.5-2-2.6-3.4 3.4-12.1-1.8-3.2-1.9-4-5-3.4-7.5-1.6 2.6-1.5 7 2.6 9.4 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.8 3.1 3.5 4.8 6.5"/><path d="m55.6 24.9c5.5 3.3 3.6 18.4-1.5 25.2-8 10.7-18.5 10.6-29 8.5 0 0-12.7 3.5-20.1-8.5 4.6 12.7 20.1 10.1 20.1 10.1 11.1 3.4 21.9 2.6 30.4-8.4 5.5-7 8.8-24.1.1-26.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fe.svg
index a011768..6b2ae91 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m52.38 23.396v-6.24c0 0-11.604-8.693-34.689-4.727 0 0-13.145 1.857-13.145 8.719 0 0-2.236 16.826 2.406 27.402 6.908 15.754 39.734 21.783 50.932-5.03 2.226-5.332 2.527-20.231-5.504-20.12"/><path d="m4.552 14.685c0-3.492 2.797-6.316 6.25-6.316h.104c3.449 0 6.244 2.824 6.244 6.316v9.764c0 3.486-2.795 6.316-6.244 6.316h-.104c-3.453 0-6.25-2.83-6.25-6.316v-9.764"/><path d="m17 9.02c0-3.486 2.799-6.314 6.252-6.314h.098c3.453 0 6.254 2.828 6.254 6.314v9.764c0 3.49-2.801 6.32-6.254 6.32h-.098c-3.453 0-6.252-2.83-6.252-6.32v-9.764"/><path d="m29.606 8.315c0-3.488 2.795-6.316 6.248-6.316h.102c3.449 0 6.248 2.828 6.248 6.316v9.764c0 3.488-2.799 6.32-6.248 6.32h-.102c-3.453 0-6.248-2.832-6.248-6.32v-9.764"/><path d="m41.915 11.536c0-3.49 2.797-6.314 6.248-6.314h.102c3.451 0 6.248 2.824 6.248 6.314v9.766c0 3.486-2.797 6.316-6.248 6.316h-.102c-3.451 0-6.248-2.83-6.248-6.316v-9.766"/></g><g fill="#935e3e"><path d="m9.03 28.423h.082c3.449 0 6.158-2.789 6.158-6.277v-9.771c0-.943-.209-1.834-.572-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.701 6.234-6.154 6.234h-.076c-2.523 0-4.691-1.49-5.682-3.662 1.057.812 2.366 1.32 3.791 1.32"/><path d="m21.45 22.759h.076c3.453 0 6.193-2.744 6.193-6.232v-9.774c0-.939-.203-1.832-.57-2.635 1.492 1.152 2.457 2.973 2.457 5.02v9.771c0 3.488-2.742 6.195-6.191 6.195h-.08c-2.52 0-4.688-1.49-5.678-3.662 1.051.813 2.367 1.317 3.793 1.317"/><path d="m34.03 22.05h.076c3.453 0 6.219-2.744 6.219-6.232v-9.774c0-.939-.209-1.832-.57-2.635 1.492 1.152 2.453 2.973 2.453 5.02v9.771c0 3.488-2.764 6.195-6.213 6.195h-.08c-2.52 0-4.691-1.49-5.68-3.662 1.055.813 2.368 1.317 3.795 1.317"/><path d="m46.44 25.276h.08c3.451 0 6.105-2.789 6.105-6.277v-9.771c0-.943-.205-1.834-.568-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.654 6.234-6.105 6.234h-.08c-2.516 0-4.688-1.49-5.678-3.662 1.053.813 2.366 1.32 3.793 1.32"/><path d="m44.796 16.616c-4.686-3.57-6.195 1.107-14.746.451-3.74-.287-6.242 7.393-.895 10.842 7.436 4.797 8.652-.74 10.334 1.65 1.787 2.537 3.656 3.197 5.086 6.07 1.039 2.086 11.11.117 12.57-3.779 2.801-7.48-4.916-9.568-12.349-15.234"/></g><path fill="#b47d56" d="m45.3 18.02c-4.869-3.713-6.443 1.154-15.34.471-3.891-.299-6.492 7.689-.928 11.277 7.734 4.992 8.998-.77 10.746 1.717 1.863 2.641 3.807 3.326 5.293 6.316 1.08 2.17-3.197 9.482-3.197 9.482s9.256 8.256 11.74 4.381c4.611-7.201 4.174-13.307 4.533-17.795.827-10.337-5.111-9.952-12.847-15.849"/><g fill="#935e3e"><path d="m54.817 24.21c5.283 3.191 3.451 17.836-1.455 24.461-12.197 16.476-34.748 13.771-44.45 3.213 8.773 11.863 32.715 15.5 45.873-1.521 5.268-6.817 8.461-23.386.037-26.15"/><path d="m43.909 37.886c.334.672.154 1.836-.25 3.123.814-1.939 1.43-3.984.941-4.969-1.486-2.988-2.438-3.674-4.297-6.314-1.75-2.488-3.01 3.275-10.748-1.717-2.861-1.846-3.553-4.852-3.03-7.299-1.436 2.559-1.309 6.791 2.338 9.146 7.734 4.99 9-.771 10.748 1.715 1.862 2.641 2.813 3.326 4.297 6.315"/><path d="m27.638 45.601c0-7.764 5.652-14.13 12.844-14.771-.877-.244-1.791-.391-2.742-.391-6.156 0-11.148 5.273-11.148 11.777 0 1.877.426 3.641 1.166 5.211-.071-.598-.12-1.205-.12-1.826"/><path d="m25.437 31.05c-1.207-.344-2.426-.215-3.494.266.459.029.92.098 1.381.229 3.529 1.01 5.664 4.738 4.941 8.473.43-.578.766-1.248.957-2 .773-3.03-.92-6.148-3.785-6.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m53.1 24l-23.5-10.9-26 8.6c0 0-1.5 11.2 0 22.7 2.3 17.9 21.5 14.8 21.5 14.8 13.7 6.2 27.4.4 33.7-14.5 2.3-5.5 2.6-20.8-5.7-20.7"/><path d="m3.7 16.4c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1"/></g><path d="m8.5 32c3.8 0 6.8-3.2 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.1 1.9 1.3 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.7 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2.9 2.7 1.5 4.2 1.5" fill="#935e3e"/><path d="m17.2 10c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1" fill="#b47d56"/><path d="m22 25.6c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.2 2 1.6 2.7 3.5 2.7 5.9v11.1c0 4-3 7-6.7 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.7 1.6 4.2 1.6" fill="#935e3e"/><path d="m30.9 9.2c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1" fill="#b47d56"/><path d="m35.7 24.8c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2 1.5 2.7 3.5 2.7 5.8v11.1c0 4-3 7-6.8 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.6 1.6 4.2 1.6" fill="#935e3e"/><path d="m44.3 12.8c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.2c-3.8 0-6.8-3.2-6.8-7.2v-11.1z" fill="#b47d56"/><g fill="#935e3e"><path d="m49.2 28.4c3.8 0 6.7-3.2 6.7-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2.1 1.5 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.6 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.1.9 2.5 1.5 4.1 1.5"/><path d="m41.6 32.3c-5.7-2.8-18.5 2-16 14 0-12.5 11.1-14.6 16-14"/><path d="m44.1 17c-5.3-3.7-7 1.1-16.6.5-4.2-.3-7 7.6-1 11.2 8.3 4.9 9.7-.8 11.6 1.7 2 2.6 4.1 3.3 5.7 6.2 1.2 2.1 12.5.1 14.1-3.9 3.2-7.7-5.5-9.8-13.8-15.7"/></g><path d="m44.7 18.5c-5.5-3.8-7.2 1.2-17.2.5-4.4-.3-7.3 7.9-1 11.6 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.7 4.3 3.4 5.9 6.5 1.2 2.2-3.6 9.8-3.6 9.8s10.4 8.5 13.2 4.5c5.2-7.4 4.7-13.7 5.1-18.3.8-10.7-5.9-10.3-14.5-16.4" fill="#b47d56"/><g fill="#935e3e"><path d="m43.1 38.9c.4.7.2 1.9-.3 3.2.9-2 1.6-4.1 1.1-5.1-1.7-3.1-2.7-3.8-4.8-6.5-2-2.6-3.4 3.4-12.1-1.8-3.2-1.9-4-5-3.4-7.5-1.6 2.6-1.5 7 2.6 9.4 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.8 3.1 3.5 4.8 6.5"/><path d="m55.6 24.9c5.5 3.3 3.6 18.4-1.5 25.2-8 10.7-18.5 10.6-29 8.5 0 0-12.7 3.5-20.1-8.5 4.6 12.7 20.1 10.1 20.1 10.1 11.1 3.4 21.9 2.6 30.4-8.4 5.5-7 8.8-24.1.1-26.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3ff.svg
index e2ab040..ab9f995 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270a-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270a-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m52.38 23.396v-6.24c0 0-11.604-8.693-34.689-4.727 0 0-13.145 1.857-13.145 8.719 0 0-2.236 16.826 2.406 27.402 6.908 15.754 39.734 21.783 50.932-5.03 2.226-5.332 2.527-20.231-5.504-20.12"/><path d="m4.552 14.685c0-3.492 2.797-6.316 6.25-6.316h.104c3.449 0 6.244 2.824 6.244 6.316v9.764c0 3.486-2.795 6.316-6.244 6.316h-.104c-3.453 0-6.25-2.83-6.25-6.316v-9.764"/><path d="m17 9.02c0-3.486 2.799-6.314 6.252-6.314h.098c3.453 0 6.254 2.828 6.254 6.314v9.764c0 3.49-2.801 6.32-6.254 6.32h-.098c-3.453 0-6.252-2.83-6.252-6.32v-9.764"/><path d="m29.606 8.315c0-3.488 2.795-6.316 6.248-6.316h.102c3.449 0 6.248 2.828 6.248 6.316v9.764c0 3.488-2.799 6.32-6.248 6.32h-.102c-3.453 0-6.248-2.832-6.248-6.32v-9.764"/><path d="m41.915 11.536c0-3.49 2.797-6.314 6.248-6.314h.102c3.451 0 6.248 2.824 6.248 6.314v9.766c0 3.486-2.797 6.316-6.248 6.316h-.102c-3.451 0-6.248-2.83-6.248-6.316v-9.766"/></g><g fill="#705041"><path d="m9.03 28.423h.082c3.449 0 6.158-2.789 6.158-6.277v-9.771c0-.943-.209-1.834-.572-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.701 6.234-6.154 6.234h-.076c-2.523 0-4.691-1.49-5.682-3.662 1.057.812 2.366 1.32 3.791 1.32"/><path d="m21.45 22.759h.076c3.453 0 6.193-2.744 6.193-6.232v-9.774c0-.939-.203-1.832-.57-2.635 1.492 1.152 2.457 2.973 2.457 5.02v9.771c0 3.488-2.742 6.195-6.191 6.195h-.08c-2.52 0-4.688-1.49-5.678-3.662 1.051.813 2.367 1.317 3.793 1.317"/><path d="m34.03 22.05h.076c3.453 0 6.219-2.744 6.219-6.232v-9.774c0-.939-.209-1.832-.57-2.635 1.492 1.152 2.453 2.973 2.453 5.02v9.771c0 3.488-2.764 6.195-6.213 6.195h-.08c-2.52 0-4.691-1.49-5.68-3.662 1.055.813 2.368 1.317 3.795 1.317"/><path d="m46.44 25.276h.08c3.451 0 6.105-2.789 6.105-6.277v-9.771c0-.943-.205-1.834-.568-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.654 6.234-6.105 6.234h-.08c-2.516 0-4.688-1.49-5.678-3.662 1.053.813 2.366 1.32 3.793 1.32"/><path d="m44.796 16.616c-4.686-3.57-6.195 1.107-14.746.451-3.74-.287-6.242 7.393-.895 10.842 7.436 4.797 8.652-.74 10.334 1.65 1.787 2.537 3.656 3.197 5.086 6.07 1.039 2.086 11.11.117 12.57-3.779 2.801-7.48-4.916-9.568-12.349-15.234"/></g><path fill="#8a6859" d="m45.3 18.02c-4.869-3.713-6.443 1.154-15.34.471-3.891-.299-6.492 7.689-.928 11.277 7.734 4.992 8.998-.77 10.746 1.717 1.863 2.641 3.807 3.326 5.293 6.316 1.08 2.17-3.197 9.482-3.197 9.482s9.256 8.256 11.74 4.381c4.611-7.201 4.174-13.307 4.533-17.795.827-10.337-5.111-9.952-12.847-15.849"/><g fill="#705041"><path d="m54.817 24.21c5.283 3.191 3.451 17.836-1.455 24.461-12.197 16.476-34.748 13.771-44.45 3.213 8.773 11.863 32.715 15.5 45.873-1.521 5.268-6.817 8.461-23.386.037-26.15"/><path d="m43.909 37.886c.334.672.154 1.836-.25 3.123.814-1.939 1.43-3.984.941-4.969-1.486-2.988-2.438-3.674-4.297-6.314-1.75-2.488-3.01 3.275-10.748-1.717-2.861-1.846-3.553-4.852-3.03-7.299-1.436 2.559-1.309 6.791 2.338 9.146 7.734 4.99 9-.771 10.748 1.715 1.862 2.641 2.813 3.326 4.297 6.315"/><path d="m27.638 45.601c0-7.764 5.652-14.13 12.844-14.771-.877-.244-1.791-.391-2.742-.391-6.156 0-11.148 5.273-11.148 11.777 0 1.877.426 3.641 1.166 5.211-.071-.598-.12-1.205-.12-1.826"/><path d="m25.437 31.05c-1.207-.344-2.426-.215-3.494.266.459.029.92.098 1.381.229 3.529 1.01 5.664 4.738 4.941 8.473.43-.578.766-1.248.957-2 .773-3.03-.92-6.148-3.785-6.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m53.1 24l-23.5-10.9-26 8.6c0 0-1.5 11.2 0 22.7 2.3 17.9 21.5 14.8 21.5 14.8 13.7 6.2 27.4.4 33.7-14.5 2.3-5.5 2.6-20.8-5.7-20.7"/><path d="m3.7 16.4c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1"/></g><path d="m8.5 32c3.8 0 6.8-3.2 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.1 1.9 1.3 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.7 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2.9 2.7 1.5 4.2 1.5" fill="#705041"/><path d="m17.2 10c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1" fill="#8a6859"/><path d="m22 25.6c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.2 2 1.6 2.7 3.5 2.7 5.9v11.1c0 4-3 7-6.7 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.7 1.6 4.2 1.6" fill="#705041"/><path d="m30.9 9.2c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1" fill="#8a6859"/><path d="m35.7 24.8c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2 1.5 2.7 3.5 2.7 5.8v11.1c0 4-3 7-6.8 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.6 1.6 4.2 1.6" fill="#705041"/><path d="m44.3 12.8c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.2c-3.8 0-6.8-3.2-6.8-7.2v-11.1z" fill="#8a6859"/><g fill="#705041"><path d="m49.2 28.4c3.8 0 6.7-3.2 6.7-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2.1 1.5 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.6 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.1.9 2.5 1.5 4.1 1.5"/><path d="m41.6 32.3c-5.7-2.8-18.5 2-16 14 0-12.5 11.1-14.6 16-14"/><path d="m44.1 17c-5.3-3.7-7 1.1-16.6.5-4.2-.3-7 7.6-1 11.2 8.3 4.9 9.7-.8 11.6 1.7 2 2.6 4.1 3.3 5.7 6.2 1.2 2.1 12.5.1 14.1-3.9 3.2-7.7-5.5-9.8-13.8-15.7"/></g><path d="m44.7 18.5c-5.5-3.8-7.2 1.2-17.2.5-4.4-.3-7.3 7.9-1 11.6 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.7 4.3 3.4 5.9 6.5 1.2 2.2-3.6 9.8-3.6 9.8s10.4 8.5 13.2 4.5c5.2-7.4 4.7-13.7 5.1-18.3.8-10.7-5.9-10.3-14.5-16.4" fill="#8a6859"/><g fill="#705041"><path d="m43.1 38.9c.4.7.2 1.9-.3 3.2.9-2 1.6-4.1 1.1-5.1-1.7-3.1-2.7-3.8-4.8-6.5-2-2.6-3.4 3.4-12.1-1.8-3.2-1.9-4-5-3.4-7.5-1.6 2.6-1.5 7 2.6 9.4 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.8 3.1 3.5 4.8 6.5"/><path d="m55.6 24.9c5.5 3.3 3.6 18.4-1.5 25.2-8 10.7-18.5 10.6-29 8.5 0 0-12.7 3.5-20.1-8.5 4.6 12.7 20.1 10.1 20.1 10.1 11.1 3.4 21.9 2.6 30.4-8.4 5.5-7 8.8-24.1.1-26.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270a.svg b/build/js/jsxc/lib/emojione/assets/svg/270a.svg
index 3167d74..7f6e6ce 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270a.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270a.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m52.37 23.396v-6.24c0 0-11.604-8.693-34.689-4.727 0 0-13.145 1.857-13.145 8.719 0 0-2.236 16.827 2.406 27.403 6.908 15.754 39.734 21.783 50.932-5.03 2.227-5.332 2.527-20.231-5.504-20.12"/><path d="m4.549 14.685c0-3.492 2.797-6.316 6.25-6.316h.104c3.449 0 6.244 2.824 6.244 6.316v9.764c0 3.486-2.795 6.316-6.244 6.316h-.104c-3.453 0-6.25-2.83-6.25-6.316v-9.764"/><path d="m17 9.02c0-3.486 2.799-6.314 6.252-6.314h.098c3.453 0 6.254 2.828 6.254 6.314v9.764c0 3.49-2.801 6.32-6.254 6.32h-.098c-3.453 0-6.252-2.83-6.252-6.32v-9.764"/><path d="m29.604 8.316c0-3.488 2.794-6.316 6.248-6.316h.102c3.449 0 6.248 2.828 6.248 6.316v9.764c0 3.488-2.799 6.32-6.248 6.32h-.102c-3.453 0-6.248-2.832-6.248-6.32v-9.764"/><path d="m41.912 11.537c0-3.49 2.797-6.314 6.248-6.314h.102c3.451 0 6.248 2.824 6.248 6.314v9.766c0 3.486-2.797 6.316-6.248 6.316h-.102c-3.451 0-6.248-2.83-6.248-6.316v-9.766"/></g><g fill="#eba352"><path d="m9.03 28.423h.082c3.449 0 6.158-2.789 6.158-6.277v-9.771c0-.943-.209-1.834-.572-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.701 6.234-6.154 6.234h-.076c-2.523 0-4.691-1.49-5.682-3.662 1.057.813 2.366 1.32 3.791 1.32"/><path d="m21.447 22.759h.076c3.453 0 6.193-2.744 6.193-6.232v-9.774c0-.939-.203-1.832-.57-2.635 1.492 1.152 2.457 2.973 2.457 5.02v9.771c0 3.488-2.742 6.195-6.191 6.195h-.08c-2.52 0-4.688-1.49-5.678-3.662 1.051.813 2.367 1.317 3.793 1.317"/><path d="m34.02 22.05h.077c3.453 0 6.219-2.744 6.219-6.232v-9.774c0-.939-.209-1.832-.57-2.635 1.492 1.152 2.453 2.973 2.453 5.02v9.771c0 3.488-2.764 6.195-6.213 6.195h-.08c-2.52 0-4.691-1.49-5.68-3.662 1.054.813 2.367 1.317 3.794 1.317"/><path d="m46.44 25.277h.08c3.451 0 6.105-2.789 6.105-6.277v-9.772c0-.943-.205-1.834-.568-2.637 1.492 1.154 2.453 2.971 2.453 5.02v9.773c0 3.486-2.654 6.234-6.105 6.234h-.08c-2.516 0-4.688-1.49-5.678-3.662 1.053.813 2.366 1.321 3.793 1.321"/><path d="m44.793 16.617c-4.686-3.57-6.195 1.107-14.746.451-3.74-.287-6.242 7.393-.895 10.842 7.436 4.797 8.652-.74 10.334 1.65 1.787 2.537 3.656 3.197 5.086 6.071 1.039 2.086 11.11.117 12.57-3.78 2.801-7.48-4.915-9.568-12.349-15.234"/></g><path fill="#ffdd67" d="m45.3 18.02c-4.869-3.713-6.443 1.154-15.34.471-3.891-.299-6.492 7.689-.928 11.277 7.734 4.993 8.998-.77 10.746 1.717 1.863 2.641 3.807 3.327 5.293 6.317 1.08 2.17-3.197 9.482-3.197 9.482s9.256 8.256 11.74 4.381c4.611-7.201 4.174-13.307 4.533-17.795.827-10.338-5.111-9.954-12.847-15.85"/><g fill="#eba352"><path d="m54.814 24.21c5.283 3.191 3.451 17.836-1.455 24.461-12.197 16.477-34.748 13.772-44.45 3.214 8.773 11.863 32.715 15.5 45.873-1.521 5.268-6.817 8.461-23.386.037-26.15"/><path d="m43.906 37.887c.334.672.154 1.836-.25 3.123.814-1.939 1.43-3.984.941-4.969-1.486-2.988-2.438-3.674-4.297-6.315-1.75-2.488-3.01 3.276-10.748-1.717-2.861-1.846-3.553-4.852-3.03-7.299-1.436 2.559-1.309 6.791 2.338 9.146 7.734 4.991 9-.771 10.748 1.715 1.862 2.642 2.813 3.327 4.297 6.316"/><path d="m27.635 45.602c0-7.764 5.652-14.13 12.844-14.772-.877-.244-1.791-.391-2.742-.391-6.156 0-11.148 5.274-11.148 11.778 0 1.877.426 3.641 1.166 5.211-.071-.598-.12-1.205-.12-1.826"/><path d="m25.434 31.05c-1.207-.344-2.426-.215-3.494.266.459.029.92.098 1.381.229 3.529 1.01 5.664 4.739 4.941 8.473.43-.578.766-1.248.957-2 .773-3.03-.92-6.147-3.785-6.964"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m53.1 24l-23.5-10.9-26 8.6c0 0-1.5 11.2 0 22.7 2.3 17.9 21.5 14.8 21.5 14.8 13.7 6.2 27.4.4 33.7-14.5 2.3-5.5 2.6-20.8-5.7-20.7"/><path d="m3.7 16.4c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1"/></g><path d="m8.5 32c3.8 0 6.8-3.2 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.1 1.9 1.3 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.7 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2.9 2.7 1.5 4.2 1.5" fill="#eba352"/><path d="m17.2 10c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2 0 0 0-11.1 0-11.1" fill="#ffdd67"/><path d="m22 25.6c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.3-2.2-.7-3.2 2 1.6 2.7 3.5 2.7 5.9v11.1c0 4-3 7-6.7 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.7 1.6 4.2 1.6" fill="#eba352"/><path d="m30.9 9.2c0-4 3-7.2 6.8-7.2h.1c3.7 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.1c-3.8 0-6.8-3.2-6.8-7.2v-11.1" fill="#ffdd67"/><path d="m35.7 24.8c3.8 0 6.8-3.1 6.8-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2 1.5 2.7 3.5 2.7 5.8v11.1c0 4-3 7-6.8 7h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.2 1 2.6 1.6 4.2 1.6" fill="#eba352"/><path d="m44.3 12.8c0-4 3-7.2 6.8-7.2h.1c3.8 0 6.8 3.2 6.8 7.2v11.1c0 4-3 7.2-6.8 7.2h-.2c-3.8 0-6.8-3.2-6.8-7.2v-11.1z" fill="#ffdd67"/><g fill="#eba352"><path d="m49.2 28.4c3.8 0 6.7-3.2 6.7-7.1v-11.1c0-1.1-.2-2.2-.6-3.1 2.1 1.5 2.7 3.5 2.7 5.8v11.1c0 4-2.9 7.1-6.6 7.1h-.1c-2.7 0-5.1-1.7-6.2-4.2 1.1.9 2.5 1.5 4.1 1.5"/><path d="m41.6 32.3c-5.7-2.8-18.5 2-16 14 0-12.5 11.1-14.6 16-14"/><path d="m44.1 17c-5.3-3.7-7 1.1-16.6.5-4.2-.3-7 7.6-1 11.2 8.3 4.9 9.7-.8 11.6 1.7 2 2.6 4.1 3.3 5.7 6.2 1.2 2.1 12.5.1 14.1-3.9 3.2-7.7-5.5-9.8-13.8-15.7"/></g><path d="m44.7 18.5c-5.5-3.8-7.2 1.2-17.2.5-4.4-.3-7.3 7.9-1 11.6 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.7 4.3 3.4 5.9 6.5 1.2 2.2-3.6 9.8-3.6 9.8s10.4 8.5 13.2 4.5c5.2-7.4 4.7-13.7 5.1-18.3.8-10.7-5.9-10.3-14.5-16.4" fill="#ffdd67"/><g fill="#eba352"><path d="m43.1 38.9c.4.7.2 1.9-.3 3.2.9-2 1.6-4.1 1.1-5.1-1.7-3.1-2.7-3.8-4.8-6.5-2-2.6-3.4 3.4-12.1-1.8-3.2-1.9-4-5-3.4-7.5-1.6 2.6-1.5 7 2.6 9.4 8.7 5.1 10.1-.8 12.1 1.8 2.1 2.8 3.1 3.5 4.8 6.5"/><path d="m55.6 24.9c5.5 3.3 3.6 18.4-1.5 25.2-8 10.7-18.5 10.6-29 8.5 0 0-12.7 3.5-20.1-8.5 4.6 12.7 20.1 10.1 20.1 10.1 11.1 3.4 21.9 2.6 30.4-8.4 5.5-7 8.8-24.1.1-26.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fb.svg
index 5a1b6c4..5345aea 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m31.524 43.34h7.963v-33.543c0-2.248-1.78-4.121-3.972-4.121h-.021c-2.193 0-3.97 1.873-3.97 4.188v33.476"/><path d="m22.12 43.34h9.407v-36.36c0-2.744-2.103-4.973-4.7-4.973-2.598 0-4.707 2.229-4.707 4.973v36.36"/><path d="m13.916 43.34h8.201v-34.23c0-2.391-1.834-4.328-4.094-4.328h-.014c-2.262 0-4.094 1.938-4.094 4.328v34.23z"/><path d="m10.175 9.907c-2.105 0-3.738 1.799-3.738 4.02v29.408h7.479v-29.408c0-2.221-1.633-4.02-3.741-4.02"/></g><g fill="#e6b796"><path d="m35.516 5.671h-.021c-.238 0-.471.031-.697.074 1.857.348 3.272 2.045 3.272 4.047v33.543h1.418v-33.543c-.001-2.248-1.781-4.121-3.972-4.121"/><path d="m26.824 1.999c-.242 0-.477.037-.709.076 2.258.363 3.993 2.408 3.993 4.896v36.36h1.416v-36.36c0-2.744-2.103-4.973-4.7-4.973"/><path d="m18.02 4.778h-.014c-.24 0-.473.031-.701.074 1.924.354 3.393 2.117 3.393 4.254v34.23h1.416v-34.23c0-2.39-1.834-4.328-4.094-4.328"/><path d="m10.175 9.907c-.244 0-.479.029-.707.074 1.752.354 3.03 1.982 3.03 3.945v29.408h1.418v-29.407c.001-2.221-1.632-4.02-3.74-4.02"/></g><path fill="#ffe1bd" d="m57.682 29.27c-1.557-3.066-6.576-2.914-11.693 2.711-3.573 3.93-4.333 5.154-7.919 5.15v-4.117c0 0-7.688-5.738-22.994-3.119 0 0-8.715 1.225-8.715 5.754 0 0-1.48 11.1 1.596 18.08 4.582 10.398 28.11 13.14 35.536-4.559 1.476-3.518 4.468-6.135 7.147-9.428 3.229-3.969 8.747-7.113 7.04-10.476"/><g fill="#e6b796"><path d="m57.682 29.27c-.295-.582-.717-1.045-1.238-1.381.084.125.168.248.238.387 1.705 3.363-3.813 6.508-7.04 10.475-2.68 3.295-5.671 5.912-7.147 9.43-6.437 15.342-24.97 15.318-32.777 8.266 7.094 8.02 27.05 8.766 33.777-7.271 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.971 8.746-7.115 7.04-10.478"/><path d="m20.642 50.15c0-6.092 4.609-11.04 10.341-11.18-1.012-.441-2.11-.701-3.272-.701-4.768 0-8.635 4.084-8.635 9.121 0 2.203.746 4.213 1.975 5.789-.259-.964-.409-1.976-.409-3.03"/><path d="m20.398 46.87c.367-2.893-1.346-5.703-4.092-6.484-.436-.125-.873-.188-1.303-.201 1-.854 2.361-1.207 3.695-.826 2.219.633 3.531 3.047 2.932 5.393-.214.849-.654 1.571-1.232 2.118"/><path d="m38.35 33.2c-6.542-4.219-23.583-4.387-30.777 0 6.402-7.553 26.485-5.844 30.777 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m10.3 9.9c-2.2 0-3.9 1.8-3.9 4v29.4h7.8v-29.4c0-2.2-1.7-4-3.9-4"/><path d="m31.3 43.3h8.3v-33.5c0-2.2-1.9-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.2-.1 0-.1 33.4-.1 33.4"/></g><path d="m35.5 5.7c-.3 0-.5 0-.7.1 1.9.3 3.4 2 3.4 4v33.5h1.5v-33.5c-.1-2.3-2-4.1-4.2-4.1" fill="#e6b796"/><path d="m14.2 43.3h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#ffe1bd"/><path d="m18.5 4.8c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v21.3l1.5 2.1v-23.5c0-2.4-1.9-4.3-4.3-4.3" fill="#e6b796"/><path d="m22.8 40.5h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#ffe1bd"/><g fill="#e6b796"><path d="m27 2c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v24.1l1.5 2.1v-26.3c0-2.4-1.9-4.3-4.3-4.3"/><path d="m10.3 9.9c-.3 0-.5 0-.7.1 1.8.4 3.2 2 3.2 3.9v17.5l1.5 2.1v-19.6c-.1-2.2-1.8-4-4-4"/></g><path d="m57.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-31.7.1-31.7 2.6 0 0-1.5 11.1 1.6 18.1 4.6 10.4 26.2 12 35.3-4.9 5.3-10 16.1-16.2 14.4-19.5" fill="#ffe1bd"/><g fill="#e6b796"><path d="m57.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.4 6.9-7 10.5-2.9 2.9-5.7 5.9-7.1 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27 8.7 33.8-7.3 1.5-3.5 4.1-6.4 7.1-9.4 3.6-3.7 8.7-7.2 7-10.5"/><path d="m39.1 37.1c-5.9-2.1-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.7-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fc.svg
index 27c2912..99d1359 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m31.523 43.34h7.964v-33.543c0-2.248-1.78-4.121-3.972-4.121h-.021c-2.193 0-3.971 1.873-3.971 4.188v33.476"/><path d="m22.12 43.34h9.407v-36.36c0-2.744-2.103-4.973-4.7-4.973-2.598 0-4.707 2.229-4.707 4.973v36.36"/><path d="m13.915 43.34h8.201v-34.23c0-2.391-1.834-4.328-4.094-4.328h-.014c-2.262 0-4.094 1.938-4.094 4.328v34.23z"/><path d="m10.175 9.907c-2.105 0-3.738 1.799-3.738 4.02v29.408h7.479v-29.408c-.001-2.221-1.634-4.02-3.741-4.02"/></g><g fill="#e0a372"><path d="m35.516 5.671h-.021c-.238 0-.471.031-.697.074 1.857.348 3.272 2.045 3.272 4.047v33.543h1.418v-33.543c-.001-2.248-1.781-4.121-3.972-4.121"/><path d="m26.823 1.999c-.242 0-.477.037-.709.076 2.258.363 3.993 2.408 3.993 4.896v36.36h1.416v-36.36c0-2.744-2.102-4.973-4.7-4.973"/><path d="m18.02 4.778h-.014c-.24 0-.473.031-.701.074 1.924.354 3.393 2.118 3.393 4.254v34.23h1.416v-34.23c0-2.39-1.834-4.328-4.094-4.328"/><path d="m10.175 9.907c-.244 0-.479.029-.707.074 1.752.354 3.03 1.982 3.03 3.945v29.408h1.418v-29.407c0-2.221-1.633-4.02-3.74-4.02"/></g><path fill="#fed0ac" d="m57.682 29.27c-1.557-3.066-6.576-2.914-11.693 2.711-3.573 3.93-4.333 5.154-7.919 5.15v-4.117c0 0-7.688-5.738-22.994-3.119 0 0-8.715 1.225-8.715 5.754 0 0-1.48 11.1 1.596 18.08 4.581 10.398 28.11 13.14 35.536-4.559 1.476-3.518 4.468-6.135 7.147-9.428 3.229-3.969 8.747-7.113 7.04-10.476"/><g fill="#e0a372"><path d="m57.682 29.27c-.295-.582-.717-1.045-1.238-1.381.084.125.168.248.238.387 1.705 3.363-3.813 6.508-7.04 10.475-2.68 3.295-5.671 5.912-7.147 9.43-6.437 15.342-24.971 15.318-32.777 8.266 7.094 8.02 27.05 8.766 33.777-7.271 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.971 8.746-7.115 7.04-10.478"/><path d="m20.642 50.15c0-6.092 4.609-11.04 10.341-11.18-1.012-.441-2.11-.701-3.272-.701-4.768 0-8.635 4.084-8.635 9.121 0 2.203.746 4.213 1.975 5.789-.259-.964-.409-1.976-.409-3.03"/><path d="m20.397 46.87c.367-2.893-1.346-5.703-4.092-6.484-.436-.125-.873-.188-1.303-.201 1-.854 2.361-1.207 3.695-.826 2.219.633 3.531 3.047 2.932 5.393-.214.849-.653 1.571-1.232 2.118"/><path d="m38.35 33.2c-6.542-4.219-23.584-4.387-30.777 0 6.402-7.553 26.485-5.844 30.777 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m10.3 9.9c-2.2 0-3.9 1.8-3.9 4v29.4h7.8v-29.4c0-2.2-1.7-4-3.9-4"/><path d="m31.3 43.3h8.3v-33.5c0-2.2-1.9-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.2-.1 0-.1 33.4-.1 33.4"/></g><path d="m35.5 5.7c-.3 0-.5 0-.7.1 1.9.3 3.4 2 3.4 4v33.5h1.5v-33.5c-.1-2.3-2-4.1-4.2-4.1" fill="#e0a372"/><path d="m14.2 43.3h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#fed0ac"/><path d="m18.5 4.8c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v21.3l1.5 2.1v-23.5c0-2.4-1.9-4.3-4.3-4.3" fill="#e0a372"/><path d="m22.8 40.5h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#fed0ac"/><g fill="#e0a372"><path d="m27 2c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v24.1l1.5 2.1v-26.3c0-2.4-1.9-4.3-4.3-4.3"/><path d="m10.3 9.9c-.3 0-.5 0-.7.1 1.8.4 3.2 2 3.2 3.9v17.5l1.5 2.1v-19.6c-.1-2.2-1.8-4-4-4"/></g><path d="m57.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-31.7.1-31.7 2.6 0 0-1.5 11.1 1.6 18.1 4.6 10.4 26.2 12 35.3-4.9 5.3-10 16.1-16.2 14.4-19.5" fill="#fed0ac"/><g fill="#e0a372"><path d="m57.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.4 6.9-7 10.5-2.9 2.9-5.7 5.9-7.1 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27 8.7 33.8-7.3 1.5-3.5 4.1-6.4 7.1-9.4 3.6-3.7 8.7-7.2 7-10.5"/><path d="m39.1 37.1c-5.9-2.1-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.7-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fd.svg
index 28c36ce..258c678 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m31.523 43.34h7.964v-33.543c0-2.248-1.78-4.121-3.972-4.121h-.021c-2.193 0-3.971 1.873-3.971 4.188v33.476"/><path d="m22.12 43.34h9.407v-36.36c0-2.744-2.103-4.973-4.7-4.973-2.598 0-4.707 2.229-4.707 4.973v36.36"/><path d="m13.915 43.34h8.201v-34.23c0-2.391-1.834-4.328-4.094-4.328h-.014c-2.262 0-4.094 1.938-4.094 4.328v34.23z"/><path d="m10.175 9.907c-2.105 0-3.738 1.799-3.738 4.02v29.408h7.479v-29.408c-.001-2.221-1.634-4.02-3.741-4.02"/></g><g fill="#b58360"><path d="m35.516 5.671h-.021c-.238 0-.471.031-.697.074 1.857.348 3.272 2.045 3.272 4.047v33.543h1.418v-33.543c-.001-2.248-1.781-4.121-3.972-4.121"/><path d="m26.823 1.999c-.242 0-.477.037-.709.076 2.258.363 3.993 2.408 3.993 4.896v36.36h1.416v-36.36c0-2.744-2.102-4.973-4.7-4.973"/><path d="m18.02 4.778h-.014c-.24 0-.473.031-.701.074 1.924.354 3.393 2.118 3.393 4.254v34.23h1.416v-34.23c0-2.39-1.834-4.328-4.094-4.328"/><path d="m10.175 9.907c-.244 0-.479.029-.707.074 1.752.354 3.03 1.982 3.03 3.945v29.408h1.418v-29.407c0-2.221-1.633-4.02-3.74-4.02"/></g><path fill="#d6a57c" d="m57.682 29.27c-1.557-3.066-6.576-2.914-11.693 2.711-3.573 3.93-4.333 5.154-7.919 5.15v-4.117c0 0-7.688-5.738-22.994-3.119 0 0-8.715 1.225-8.715 5.754 0 0-1.48 11.1 1.596 18.08 4.581 10.398 28.11 13.14 35.536-4.559 1.476-3.518 4.468-6.135 7.147-9.428 3.229-3.969 8.747-7.113 7.04-10.476"/><g fill="#b58360"><path d="m57.682 29.27c-.295-.582-.717-1.045-1.238-1.381.084.125.168.248.238.387 1.705 3.363-3.813 6.508-7.04 10.475-2.68 3.295-5.671 5.912-7.147 9.43-6.437 15.342-24.971 15.318-32.777 8.266 7.094 8.02 27.05 8.766 33.777-7.271 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.971 8.746-7.115 7.04-10.478"/><path d="m20.642 50.15c0-6.092 4.609-11.04 10.341-11.18-1.012-.441-2.11-.701-3.272-.701-4.768 0-8.635 4.084-8.635 9.121 0 2.203.746 4.213 1.975 5.789-.259-.964-.409-1.976-.409-3.03"/><path d="m20.397 46.87c.367-2.893-1.346-5.703-4.092-6.484-.436-.125-.873-.188-1.303-.201 1-.854 2.361-1.207 3.695-.826 2.219.633 3.531 3.047 2.932 5.393-.214.849-.653 1.571-1.232 2.118"/><path d="m38.35 33.2c-6.542-4.219-23.584-4.387-30.777 0 6.402-7.553 26.485-5.844 30.777 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m10.3 9.9c-2.2 0-3.9 1.8-3.9 4v29.4h7.8v-29.4c0-2.2-1.7-4-3.9-4"/><path d="m31.3 43.3h8.3v-33.5c0-2.2-1.9-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.2-.1 0-.1 33.4-.1 33.4"/></g><path d="m35.5 5.7c-.3 0-.5 0-.7.1 1.9.3 3.4 2 3.4 4v33.5h1.5v-33.5c-.1-2.3-2-4.1-4.2-4.1" fill="#b58360"/><path d="m14.2 43.3h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#d6a57c"/><path d="m18.5 4.8c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v21.3l1.5 2.1v-23.5c0-2.4-1.9-4.3-4.3-4.3" fill="#b58360"/><path d="m22.8 40.5h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#d6a57c"/><g fill="#b58360"><path d="m27 2c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v24.1l1.5 2.1v-26.3c0-2.4-1.9-4.3-4.3-4.3"/><path d="m10.3 9.9c-.3 0-.5 0-.7.1 1.8.4 3.2 2 3.2 3.9v17.5l1.5 2.1v-19.6c-.1-2.2-1.8-4-4-4"/></g><path d="m57.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-31.7.1-31.7 2.6 0 0-1.5 11.1 1.6 18.1 4.6 10.4 26.2 12 35.3-4.9 5.3-10 16.1-16.2 14.4-19.5" fill="#d6a57c"/><g fill="#b58360"><path d="m57.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.4 6.9-7 10.5-2.9 2.9-5.7 5.9-7.1 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27 8.7 33.8-7.3 1.5-3.5 4.1-6.4 7.1-9.4 3.6-3.7 8.7-7.2 7-10.5"/><path d="m39.1 37.1c-5.9-2.1-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.7-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fe.svg
index a85288d..3b7b55f 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m31.523 43.34h7.964v-33.543c0-2.248-1.78-4.121-3.972-4.121h-.021c-2.193 0-3.971 1.873-3.971 4.188v33.476"/><path d="m22.12 43.34h9.407v-36.36c0-2.744-2.103-4.973-4.7-4.973-2.598 0-4.707 2.229-4.707 4.973v36.36"/><path d="m13.915 43.34h8.201v-34.23c0-2.391-1.834-4.328-4.094-4.328h-.014c-2.262 0-4.094 1.938-4.094 4.328v34.23z"/><path d="m10.175 9.907c-2.105 0-3.738 1.799-3.738 4.02v29.408h7.479v-29.408c-.001-2.221-1.634-4.02-3.741-4.02"/></g><g fill="#935e3e"><path d="m35.516 5.671h-.021c-.238 0-.471.031-.697.074 1.857.348 3.272 2.045 3.272 4.047v33.543h1.418v-33.543c-.001-2.248-1.781-4.121-3.972-4.121"/><path d="m26.823 1.999c-.242 0-.477.037-.709.076 2.258.363 3.993 2.408 3.993 4.896v36.36h1.416v-36.36c0-2.744-2.102-4.973-4.7-4.973"/><path d="m18.02 4.778h-.014c-.24 0-.473.031-.701.074 1.924.354 3.393 2.118 3.393 4.254v34.23h1.416v-34.23c0-2.39-1.834-4.328-4.094-4.328"/><path d="m10.175 9.907c-.244 0-.479.029-.707.074 1.752.354 3.03 1.982 3.03 3.945v29.408h1.418v-29.407c0-2.221-1.633-4.02-3.74-4.02"/></g><path fill="#b47d56" d="m57.682 29.27c-1.557-3.066-6.576-2.914-11.693 2.711-3.573 3.93-4.333 5.154-7.919 5.15v-4.117c0 0-7.688-5.738-22.994-3.119 0 0-8.715 1.225-8.715 5.754 0 0-1.48 11.1 1.596 18.08 4.581 10.398 28.11 13.14 35.536-4.559 1.476-3.518 4.468-6.135 7.147-9.428 3.229-3.969 8.747-7.113 7.04-10.476"/><g fill="#935e3e"><path d="m57.682 29.27c-.295-.582-.717-1.045-1.238-1.381.084.125.168.248.238.387 1.705 3.363-3.813 6.508-7.04 10.475-2.68 3.295-5.671 5.912-7.147 9.43-6.437 15.342-24.971 15.318-32.777 8.266 7.094 8.02 27.05 8.766 33.777-7.271 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.971 8.746-7.115 7.04-10.478"/><path d="m20.642 50.15c0-6.092 4.609-11.04 10.341-11.18-1.012-.441-2.11-.701-3.272-.701-4.768 0-8.635 4.084-8.635 9.121 0 2.203.746 4.213 1.975 5.789-.259-.964-.409-1.976-.409-3.03"/><path d="m20.397 46.87c.367-2.893-1.346-5.703-4.092-6.484-.436-.125-.873-.188-1.303-.201 1-.854 2.361-1.207 3.695-.826 2.219.633 3.531 3.047 2.932 5.393-.214.849-.653 1.571-1.232 2.118"/><path d="m38.35 33.2c-6.542-4.219-23.584-4.387-30.777 0 6.402-7.553 26.485-5.844 30.777 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m10.3 9.9c-2.2 0-3.9 1.8-3.9 4v29.4h7.8v-29.4c0-2.2-1.7-4-3.9-4"/><path d="m31.3 43.3h8.3v-33.5c0-2.2-1.9-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.2-.1 0-.1 33.4-.1 33.4"/></g><path d="m35.5 5.7c-.3 0-.5 0-.7.1 1.9.3 3.4 2 3.4 4v33.5h1.5v-33.5c-.1-2.3-2-4.1-4.2-4.1" fill="#935e3e"/><path d="m14.2 43.3h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#b47d56"/><path d="m18.5 4.8c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v21.3l1.5 2.1v-23.5c0-2.4-1.9-4.3-4.3-4.3" fill="#935e3e"/><path d="m22.8 40.5h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#b47d56"/><g fill="#935e3e"><path d="m27 2c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v24.1l1.5 2.1v-26.3c0-2.4-1.9-4.3-4.3-4.3"/><path d="m10.3 9.9c-.3 0-.5 0-.7.1 1.8.4 3.2 2 3.2 3.9v17.5l1.5 2.1v-19.6c-.1-2.2-1.8-4-4-4"/></g><path d="m57.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-31.7.1-31.7 2.6 0 0-1.5 11.1 1.6 18.1 4.6 10.4 26.2 12 35.3-4.9 5.3-10 16.1-16.2 14.4-19.5" fill="#b47d56"/><g fill="#935e3e"><path d="m57.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.4 6.9-7 10.5-2.9 2.9-5.7 5.9-7.1 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27 8.7 33.8-7.3 1.5-3.5 4.1-6.4 7.1-9.4 3.6-3.7 8.7-7.2 7-10.5"/><path d="m39.1 37.1c-5.9-2.1-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.7-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3ff.svg
index 1373a31..b1e8512 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270b-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270b-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m31.523 43.34h7.964v-33.543c0-2.248-1.78-4.121-3.972-4.121h-.021c-2.193 0-3.971 1.873-3.971 4.188v33.476"/><path d="m22.12 43.34h9.407v-36.36c0-2.744-2.103-4.973-4.7-4.973-2.598 0-4.707 2.229-4.707 4.973v36.36"/><path d="m13.915 43.34h8.201v-34.23c0-2.391-1.834-4.328-4.094-4.328h-.014c-2.262 0-4.094 1.938-4.094 4.328v34.23z"/><path d="m10.175 9.907c-2.105 0-3.738 1.799-3.738 4.02v29.408h7.479v-29.408c-.001-2.221-1.634-4.02-3.741-4.02"/></g><g fill="#705041"><path d="m35.516 5.671h-.021c-.238 0-.471.031-.697.074 1.857.348 3.272 2.045 3.272 4.047v33.543h1.418v-33.543c-.001-2.248-1.781-4.121-3.972-4.121"/><path d="m26.823 1.999c-.242 0-.477.037-.709.076 2.258.363 3.993 2.408 3.993 4.896v36.36h1.416v-36.36c0-2.744-2.102-4.973-4.7-4.973"/><path d="m18.02 4.778h-.014c-.24 0-.473.031-.701.074 1.924.354 3.393 2.118 3.393 4.254v34.23h1.416v-34.23c0-2.39-1.834-4.328-4.094-4.328"/><path d="m10.175 9.907c-.244 0-.479.029-.707.074 1.752.354 3.03 1.982 3.03 3.945v29.408h1.418v-29.407c0-2.221-1.633-4.02-3.74-4.02"/></g><path fill="#8a6859" d="m57.682 29.27c-1.557-3.066-6.576-2.914-11.693 2.711-3.573 3.93-4.333 5.154-7.919 5.15v-4.117c0 0-7.688-5.738-22.994-3.119 0 0-8.715 1.225-8.715 5.754 0 0-1.48 11.1 1.596 18.08 4.581 10.398 28.11 13.14 35.536-4.559 1.476-3.518 4.468-6.135 7.147-9.428 3.229-3.969 8.747-7.113 7.04-10.476"/><g fill="#705041"><path d="m57.682 29.27c-.295-.582-.717-1.045-1.238-1.381.084.125.168.248.238.387 1.705 3.363-3.813 6.508-7.04 10.475-2.68 3.295-5.671 5.912-7.147 9.43-6.437 15.342-24.971 15.318-32.777 8.266 7.094 8.02 27.05 8.766 33.777-7.271 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.971 8.746-7.115 7.04-10.478"/><path d="m20.642 50.15c0-6.092 4.609-11.04 10.341-11.18-1.012-.441-2.11-.701-3.272-.701-4.768 0-8.635 4.084-8.635 9.121 0 2.203.746 4.213 1.975 5.789-.259-.964-.409-1.976-.409-3.03"/><path d="m20.397 46.87c.367-2.893-1.346-5.703-4.092-6.484-.436-.125-.873-.188-1.303-.201 1-.854 2.361-1.207 3.695-.826 2.219.633 3.531 3.047 2.932 5.393-.214.849-.653 1.571-1.232 2.118"/><path d="m38.35 33.2c-6.542-4.219-23.584-4.387-30.777 0 6.402-7.553 26.485-5.844 30.777 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m10.3 9.9c-2.2 0-3.9 1.8-3.9 4v29.4h7.8v-29.4c0-2.2-1.7-4-3.9-4"/><path d="m31.3 43.3h8.3v-33.5c0-2.2-1.9-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.2-.1 0-.1 33.4-.1 33.4"/></g><path d="m35.5 5.7c-.3 0-.5 0-.7.1 1.9.3 3.4 2 3.4 4v33.5h1.5v-33.5c-.1-2.3-2-4.1-4.2-4.1" fill="#705041"/><path d="m14.2 43.3h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#8a6859"/><path d="m18.5 4.8c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v21.3l1.5 2.1v-23.5c0-2.4-1.9-4.3-4.3-4.3" fill="#705041"/><path d="m22.8 40.5h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#8a6859"/><g fill="#705041"><path d="m27 2c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v24.1l1.5 2.1v-26.3c0-2.4-1.9-4.3-4.3-4.3"/><path d="m10.3 9.9c-.3 0-.5 0-.7.1 1.8.4 3.2 2 3.2 3.9v17.5l1.5 2.1v-19.6c-.1-2.2-1.8-4-4-4"/></g><path d="m57.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-31.7.1-31.7 2.6 0 0-1.5 11.1 1.6 18.1 4.6 10.4 26.2 12 35.3-4.9 5.3-10 16.1-16.2 14.4-19.5" fill="#8a6859"/><g fill="#705041"><path d="m57.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.4 6.9-7 10.5-2.9 2.9-5.7 5.9-7.1 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27 8.7 33.8-7.3 1.5-3.5 4.1-6.4 7.1-9.4 3.6-3.7 8.7-7.2 7-10.5"/><path d="m39.1 37.1c-5.9-2.1-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.7-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270b.svg b/build/js/jsxc/lib/emojione/assets/svg/270b.svg
index 6cf36da..8aca81b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m31.521 43.34h7.963v-33.543c0-2.248-1.78-4.121-3.972-4.121h-.021c-2.193 0-3.97 1.873-3.97 4.188v33.476"/><path d="m22.11 43.34h9.407v-36.36c0-2.744-2.103-4.973-4.7-4.973-2.598 0-4.707 2.229-4.707 4.973v36.36"/><path d="m13.913 43.34h8.201v-34.23c0-2.391-1.834-4.328-4.094-4.328h-.014c-2.262 0-4.094 1.938-4.094 4.328v34.23z"/><path d="m10.172 9.908c-2.105 0-3.738 1.799-3.738 4.02v29.408h7.479v-29.408c0-2.221-1.633-4.02-3.741-4.02"/></g><g fill="#eba352"><path d="m35.513 5.672h-.021c-.238 0-.471.031-.697.074 1.857.348 3.272 2.045 3.272 4.047v33.543h1.418v-33.543c-.001-2.248-1.781-4.121-3.972-4.121"/><path d="m26.821 2c-.242 0-.477.037-.709.076 2.258.363 3.993 2.408 3.993 4.896v36.36h1.416v-36.36c0-2.744-2.103-4.973-4.7-4.973"/><path d="m18.02 4.779h-.014c-.24 0-.473.031-.701.074 1.924.354 3.393 2.117 3.393 4.254v34.23h1.416v-34.23c0-2.39-1.834-4.328-4.094-4.328"/><path d="m10.172 9.908c-.244 0-.479.029-.707.074 1.752.354 3.03 1.982 3.03 3.945v29.408h1.418v-29.407c.001-2.221-1.632-4.02-3.74-4.02"/></g><path fill="#ffdd67" d="m57.679 29.27c-1.557-3.066-6.576-2.914-11.693 2.711-3.573 3.93-4.333 5.154-7.919 5.15v-4.117c0 0-7.688-5.738-22.994-3.119 0 0-8.715 1.225-8.715 5.754 0 0-1.48 11.1 1.596 18.08 4.582 10.398 28.11 13.14 35.537-4.559 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.969 8.746-7.113 7.04-10.476"/><g fill="#eba352"><path d="m57.679 29.27c-.295-.582-.717-1.045-1.238-1.381.084.125.168.248.238.387 1.705 3.363-3.813 6.508-7.04 10.475-2.68 3.295-5.671 5.912-7.147 9.43-6.437 15.342-24.97 15.318-32.777 8.266 7.094 8.02 27.05 8.766 33.777-7.271 1.476-3.518 4.468-6.135 7.147-9.428 3.228-3.971 8.746-7.115 7.04-10.478"/><path d="m20.639 50.15c0-6.092 4.609-11.03 10.341-11.18-1.012-.441-2.11-.701-3.272-.701-4.768 0-8.635 4.084-8.635 9.121 0 2.203.746 4.213 1.975 5.789-.258-.964-.409-1.976-.409-3.03"/><path d="m20.395 46.871c.367-2.893-1.346-5.703-4.092-6.484-.436-.125-.873-.188-1.303-.201 1-.854 2.361-1.207 3.695-.826 2.219.633 3.531 3.047 2.932 5.393-.214.849-.654 1.571-1.232 2.118"/><path d="m38.35 33.2c-6.542-4.219-23.583-4.387-30.777 0 6.402-7.553 26.485-5.844 30.777 0"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m10.3 9.9c-2.2 0-3.9 1.8-3.9 4v29.4h7.8v-29.4c0-2.2-1.7-4-3.9-4"/><path d="m31.3 43.3h8.3v-33.5c0-2.2-1.9-4.1-4.1-4.1-2.3 0-4.1 1.9-4.1 4.2-.1 0-.1 33.4-.1 33.4"/></g><path d="m35.5 5.7c-.3 0-.5 0-.7.1 1.9.3 3.4 2 3.4 4v33.5h1.5v-33.5c-.1-2.3-2-4.1-4.2-4.1" fill="#eba352"/><path d="m14.2 43.3h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#ffdd67"/><path d="m18.5 4.8c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v21.3l1.5 2.1v-23.5c0-2.4-1.9-4.3-4.3-4.3" fill="#eba352"/><path d="m22.8 40.5h8.5v-34.2c0-2.4-1.9-4.3-4.3-4.3-2.4 0-4.3 1.9-4.3 4.3l.1 34.2" fill="#ffdd67"/><g fill="#eba352"><path d="m27 2c-.3 0-.5 0-.7.1 2 .4 3.5 2.1 3.5 4.3v24.1l1.5 2.1v-26.3c0-2.4-1.9-4.3-4.3-4.3"/><path d="m10.3 9.9c-.3 0-.5 0-.7.1 1.8.4 3.2 2 3.2 3.9v17.5l1.5 2.1v-19.6c-.1-2.2-1.8-4-4-4"/></g><path d="m57.7 29.3c-1.6-3.1-6.6-2.9-11.7 2.7-3.6 3.9-4.3 5.2-7.9 5.1v-4.1c0 0-31.7.1-31.7 2.6 0 0-1.5 11.1 1.6 18.1 4.6 10.4 26.2 12 35.3-4.9 5.3-10 16.1-16.2 14.4-19.5" fill="#ffdd67"/><g fill="#eba352"><path d="m57.7 29.3c-.3-.6-.7-1-1.2-1.4.1.1.2.2.2.4 1.7 3.4-3.4 6.9-7 10.5-2.9 2.9-5.7 5.9-7.1 9.4-6.4 15.3-25 15.3-32.8 8.3 7.1 8 27 8.7 33.8-7.3 1.5-3.5 4.1-6.4 7.1-9.4 3.6-3.7 8.7-7.2 7-10.5"/><path d="m39.1 37.1c-5.9-2.1-18.1 2-16.5 13.7 0-10.9 9.9-13.6 15.3-13.6.7-.1 1.2-.1 1.2-.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fb.svg
index 2b9f65a..2053e46 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffe1bd"><path d="m45.14 34.783l-.439-4.136c0 0-8.254-4.942-23.18-.674 0 0-8.525 2.164-8.04 6.712 0 0-.287 11.314 3.518 17.998 5.66 9.955 27.707 11.623 33.2-6.949 1.09-3.691.239-13.591-5.05-12.951"/><path d="m29.753 33.02c.24 2.262 2.285 3.896 4.566 3.65l.035-.004c2.283-.246 3.941-2.279 3.701-4.539l-2.81-26.446c-.24-2.262-2.287-3.896-4.57-3.652l-.035.005c-2.281.244-3.938 2.277-3.697 4.539l2.81 26.447"/></g><path fill="#e6b796" d="m32.363 35.949l.041-.004c2.281-.246 3.917-2.307 3.677-4.57l-2.81-26.447c-.131-1.229-.793-2.272-1.736-2.928 1.914.186 3.498 1.68 3.707 3.654l2.811 26.448c.24 2.263-1.4 4.324-3.684 4.568l-.035.004c-1.043.113-2.037-.166-2.828-.721.277.029.566.027.857-.004"/><path fill="#ffe1bd" d="m37.47 32.358c-.283 2.255 1.336 4.32 3.611 4.607l.037.006c2.277.287 4.354-1.309 4.635-3.564l3.301-26.391c.283-2.256-1.338-4.32-3.615-4.607l-.035-.006c-2.277-.287-4.352 1.309-4.633 3.564l-3.301 26.391"/><path fill="#e6b796" d="m39.34 35.807l.043.006c2.275.287 4.338-1.34 4.623-3.599l3.297-26.389c.152-1.225-.254-2.395-1.022-3.253 1.822.623 3.02 2.443 2.775 4.416l-3.299 26.389c-.283 2.258-2.35 3.883-4.627 3.596l-.037-.006c-1.041-.131-1.941-.633-2.588-1.355.265.091.546.158.835.195"/><g fill="#ffe1bd"><path d="m13.03 32.399c-.246-2.314 1.396-4.387 3.672-4.631l.068-.008c2.271-.244 4.313 1.432 4.559 3.747l.688 6.472c.246 2.313-1.395 4.387-3.668 4.631l-.068.008c-2.275.246-4.316-1.434-4.563-3.744l-.688-6.475"/><path d="m20.832 27.76c-.244-2.311 1.398-4.385 3.672-4.629l.066-.008c2.273-.244 4.318 1.432 4.564 3.744l.686 6.475c.246 2.313-1.398 4.389-3.672 4.633l-.066.006c-2.273.246-4.316-1.432-4.563-3.746l-.687-6.475"/></g><g fill="#e6b796"><path d="m16.945 41.19l.055-.005c2.271-.244 3.861-2.285 3.615-4.598l-.688-6.478c-.068-.625-.27-1.201-.564-1.708 1.064.659 1.824 1.795 1.969 3.155l.689 6.478c.244 2.311-1.34 4.326-3.615 4.57l-.049.006c-1.664.18-3.195-.656-4-2.025.752.463 1.65.707 2.59.605"/><path d="m24.73 36.555l.051-.006c2.273-.244 3.885-2.258 3.639-4.572l-.689-6.479c-.064-.623-.262-1.201-.559-1.707 1.063.658 1.826 1.797 1.971 3.154l.688 6.479c.246 2.313-1.369 4.301-3.641 4.545l-.053.006c-1.66.18-3.193-.654-3.998-2.025.747.464 1.65.706 2.591.605"/><path d="m39.673 30.827c-3.338-2.035-4 1.174-9.679 1.346-2.484.074-3.592 5.341.172 7.25 5.238 2.654 5.648-1.104 6.923.361 1.357 1.557 2.635 1.861 3.779 3.666.832 1.309 7.328-.711 8.01-3.398 1.32-5.159-3.912-5.995-9.209-9.225"/></g><path fill="#ffe1bd" d="m40.1 31.725c-3.469-2.117-4.162 1.221-10.07 1.4-2.584.076-3.734 5.557.184 7.541 5.447 2.762 5.873-1.148 7.199.377 1.414 1.619 2.742 1.936 3.932 3.813.865 1.363-1.438 6.514-1.438 6.514s6.678 4.818 8.04 2.072c2.531-5.1 1.813-9.119 1.734-12.12-.186-6.915-4.069-6.239-9.582-9.598"/><g fill="#e6b796"><path d="m46.81 35.15c3.707 1.742 3.529 11.582.768 16.322-6.875 11.789-21.921 11.596-29.06 5.283 6.615 7.242 22.64 7.957 30.11-4.262 2.991-4.891 3.925-16.1-1.819-17.343"/><path d="m40.587 44.992c.268.42.234 1.205.057 2.088.398-1.344.662-2.742.27-3.361-1.189-1.877-1.863-2.264-3.273-3.883-1.33-1.525-1.756 2.385-7.203-.375-2.01-1.021-2.682-2.965-2.51-4.625-.764 1.797-.383 4.596 2.186 5.898 5.447 2.76 5.873-1.15 7.201.375 1.411 1.62 2.084 2.01 3.272 3.883"/><path d="m27.687 53.44c0-6.541 4.762-11.9 10.82-12.445-.738-.205-1.51-.328-2.311-.328-5.185 0-9.392 4.441-9.392 9.92 0 1.582.359 3.068.984 4.391-.06-.504-.101-1.016-.101-1.538"/><path d="m25.832 41.19c-1.016-.289-2.043-.182-2.943.225.387.025.777.08 1.164.191 2.975.848 4.771 3.992 4.164 7.139.361-.488.643-1.053.805-1.688.651-2.553-.776-5.178-3.19-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.3 31.9c-.5 2.2.9 4.5 3.2 5 2.3.5 4.6-.9 5.1-3.1l6.1-26.2c.5-2.2-.9-4.5-3.2-5-2.3-.5-4.6.9-5.1 3.1l-6.1 26.2" fill="#ffe1bd"/><path d="m38.9 35.6c2.4.5 4.6-.9 5.2-3.1l6.1-26.2c.3-1.2 0-2.4-.7-3.3 2.1.9 2.8 2.7 2.4 4.7l-6.1 26.2c-.5 2.2-2.8 3.7-5.1 3.1-1.1-.2-1.9-.8-2.5-1.6.1 0 .4.1.7.2" fill="#e6b796"/><g fill="#ffe1bd"><path d="m45.2 34.5c0 0-8.7-8.6-24.1-4.3 0 0-9.1 1.6-8.6 6.2 0 0-.3 11.4 3.6 18.2 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m29.7 33.4c.4 2.3 2.7 3.7 5 3.3 2.3-.4 3.9-2.6 3.5-4.9l-5-26.4c-.4-2.3-2.7-3.7-5-3.3-2.3.4-3.9 2.6-3.4 4.9l4.9 26.4"/></g><path d="m32.6 36.1c2.4-.4 3.9-2.6 3.5-4.9l-5-26.4c-.3-1.2-1.1-2.2-2.1-2.8 2.2 0 3.8 1.4 4.2 3.4l5 26.4c.4 2.3-1.1 4.5-3.4 4.9-1.1.2-2.1 0-3-.5.2 0 .5 0 .8-.1" fill="#e6b796"/><g fill="#ffe1bd"><path d="m12 32.1c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.3-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/><path d="m20.1 27.4c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.4-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/></g><g fill="#e6b796"><path d="m16.1 41c2.4-.3 4-2.3 3.8-4.7l-.7-6.5c-.1-.6-.4-1.3-.7-1.9 1.5.7 2 1.9 2.2 3.3l.7 6.5c.3 2.3-1.4 4.4-3.7 4.6-1.7.2-3.3-.7-4.1-2 .6.5 1.5.8 2.5.7"/><path d="m24.1 36.3c2.4-.3 4.1-2.3 3.8-4.6l-.7-6.5c-.1-.6-.4-1.4-.7-1.9 1.4.8 2 2 2.2 3.4l.7 6.5c.3 2.3-1.4 4.3-3.8 4.6h-.1c-1.7.2-3.3-.7-4.1-2 .8.4 1.7.6 2.7.5"/><path d="m41.4 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.6 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.2-6.1-9.6-9.4"/></g><path d="m40 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#ffe1bd"/><g fill="#e6b796"><path d="m46.9 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3.1-4.9 4.1-16.3-1.9-17.5"/><path d="m40.5 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fc.svg
index 94069bc..7be6171 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#fed0ac"><path d="m45.14 34.783l-.439-4.137c0 0-8.254-4.941-23.18-.674 0 0-8.525 2.164-8.04 6.713 0 0-.287 11.314 3.518 17.998 5.66 9.955 27.707 11.623 33.19-6.949 1.091-3.691.24-13.591-5.04-12.951"/><path d="m29.753 33.02c.24 2.262 2.285 3.896 4.566 3.65l.035-.004c2.283-.246 3.941-2.279 3.701-4.539l-2.81-26.446c-.24-2.262-2.287-3.896-4.57-3.652l-.035.005c-2.281.244-3.938 2.277-3.697 4.539l2.81 26.447"/></g><path fill="#e0a372" d="m32.362 35.949l.041-.004c2.281-.246 3.918-2.307 3.678-4.57l-2.81-26.447c-.131-1.229-.793-2.272-1.737-2.928 1.914.186 3.498 1.68 3.707 3.654l2.811 26.447c.24 2.264-1.4 4.324-3.684 4.568l-.035.004c-1.043.113-2.037-.166-2.828-.721.277.03.566.028.857-.003"/><path fill="#fed0ac" d="m37.47 32.357c-.283 2.256 1.336 4.32 3.611 4.607l.037.006c2.277.287 4.354-1.309 4.635-3.564l3.301-26.391c.283-2.256-1.338-4.32-3.615-4.607l-.035-.006c-2.277-.287-4.352 1.309-4.633 3.564l-3.301 26.391"/><path fill="#e0a372" d="m39.34 35.807l.043.006c2.275.287 4.338-1.34 4.623-3.6l3.297-26.389c.152-1.224-.254-2.394-1.022-3.252 1.822.623 3.02 2.443 2.775 4.416l-3.299 26.389c-.283 2.258-2.35 3.883-4.627 3.596l-.037-.006c-1.041-.131-1.941-.633-2.588-1.355.265.091.546.158.835.195"/><g fill="#fed0ac"><path d="m13.03 32.398c-.246-2.314 1.396-4.387 3.672-4.631l.068-.008c2.271-.244 4.313 1.432 4.559 3.746l.688 6.473c.246 2.313-1.395 4.387-3.668 4.631l-.068.008c-2.275.246-4.316-1.434-4.563-3.744l-.688-6.475"/><path d="m20.831 27.76c-.244-2.311 1.398-4.385 3.672-4.629l.066-.008c2.273-.244 4.318 1.432 4.564 3.744l.686 6.475c.246 2.313-1.398 4.389-3.672 4.633l-.066.006c-2.273.246-4.316-1.432-4.563-3.746l-.687-6.475"/></g><g fill="#e0a372"><path d="m16.944 41.19l.055-.006c2.271-.244 3.861-2.285 3.615-4.598l-.688-6.479c-.068-.625-.27-1.201-.564-1.707 1.064.658 1.824 1.795 1.969 3.154l.689 6.479c.244 2.311-1.34 4.326-3.615 4.57l-.049.006c-1.664.18-3.195-.656-4-2.025.752.464 1.651.708 2.59.606"/><path d="m24.729 36.555l.051-.006c2.273-.244 3.885-2.258 3.639-4.572l-.689-6.479c-.064-.623-.262-1.201-.559-1.707 1.063.658 1.826 1.797 1.971 3.154l.688 6.479c.246 2.313-1.369 4.301-3.641 4.545l-.053.006c-1.66.18-3.193-.654-3.998-2.025.748.464 1.65.706 2.591.605"/><path d="m39.673 30.826c-3.338-2.035-4 1.174-9.68 1.346-2.484.074-3.592 5.342.172 7.25 5.238 2.654 5.648-1.104 6.924.361 1.357 1.557 2.635 1.861 3.779 3.666.832 1.309 7.328-.711 8.01-3.398 1.32-5.158-3.912-5.994-9.209-9.225"/></g><path fill="#fed0ac" d="m40.1 31.725c-3.469-2.117-4.162 1.221-10.07 1.4-2.584.076-3.734 5.557.184 7.541 5.447 2.762 5.873-1.148 7.199.377 1.414 1.619 2.742 1.936 3.932 3.813.865 1.363-1.438 6.514-1.438 6.514s6.678 4.818 8.04 2.072c2.531-5.1 1.813-9.119 1.734-12.12-.186-6.915-4.069-6.239-9.582-9.598"/><g fill="#e0a372"><path d="m46.81 35.15c3.707 1.742 3.529 11.582.768 16.322-6.875 11.789-21.922 11.596-29.06 5.283 6.615 7.242 22.641 7.957 30.11-4.262 2.992-4.891 3.926-16.1-1.818-17.343"/><path d="m40.587 44.992c.268.42.234 1.205.057 2.088.398-1.344.662-2.742.27-3.361-1.189-1.877-1.863-2.264-3.273-3.883-1.33-1.525-1.756 2.385-7.203-.375-2.01-1.021-2.682-2.965-2.51-4.625-.764 1.797-.383 4.596 2.186 5.898 5.447 2.76 5.873-1.15 7.201.375 1.411 1.62 2.084 2.01 3.272 3.883"/><path d="m27.687 53.44c0-6.541 4.762-11.9 10.82-12.445-.738-.205-1.51-.328-2.311-.328-5.186 0-9.393 4.441-9.393 9.92 0 1.582.359 3.068.984 4.391-.059-.504-.1-1.016-.1-1.538"/><path d="m25.831 41.19c-1.016-.289-2.043-.182-2.943.225.387.025.777.08 1.164.191 2.975.848 4.771 3.992 4.164 7.139.361-.488.643-1.053.805-1.688.652-2.553-.776-5.178-3.19-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.3 31.9c-.5 2.2.9 4.5 3.2 5 2.3.5 4.6-.9 5.1-3.1l6.1-26.2c.5-2.2-.9-4.5-3.2-5-2.3-.5-4.6.9-5.1 3.1l-6.1 26.2" fill="#fed0ac"/><path d="m38.9 35.6c2.4.5 4.6-.9 5.2-3.1l6.1-26.2c.3-1.2 0-2.4-.7-3.3 2.1.9 2.8 2.7 2.4 4.7l-6.1 26.2c-.5 2.2-2.8 3.7-5.1 3.1-1.1-.2-1.9-.8-2.5-1.6.1 0 .4.1.7.2" fill="#e0a372"/><g fill="#fed0ac"><path d="m45.2 34.5c0 0-8.7-8.6-24.1-4.3 0 0-9.1 1.6-8.6 6.2 0 0-.3 11.4 3.6 18.2 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m29.7 33.4c.4 2.3 2.7 3.7 5 3.3 2.3-.4 3.9-2.6 3.5-4.9l-5-26.4c-.4-2.3-2.7-3.7-5-3.3-2.3.4-3.9 2.6-3.4 4.9l4.9 26.4"/></g><path d="m32.6 36.1c2.4-.4 3.9-2.6 3.5-4.9l-5-26.4c-.3-1.2-1.1-2.2-2.1-2.8 2.2 0 3.8 1.4 4.2 3.4l5 26.4c.4 2.3-1.1 4.5-3.4 4.9-1.1.2-2.1 0-3-.5.2 0 .5 0 .8-.1" fill="#e0a372"/><g fill="#fed0ac"><path d="m12 32.1c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.3-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/><path d="m20.1 27.4c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.4-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/></g><g fill="#e0a372"><path d="m16.1 41c2.4-.3 4-2.3 3.8-4.7l-.7-6.5c-.1-.6-.4-1.3-.7-1.9 1.5.7 2 1.9 2.2 3.3l.7 6.5c.3 2.3-1.4 4.4-3.7 4.6-1.7.2-3.3-.7-4.1-2 .6.5 1.5.8 2.5.7"/><path d="m24.1 36.3c2.4-.3 4.1-2.3 3.8-4.6l-.7-6.5c-.1-.6-.4-1.4-.7-1.9 1.4.8 2 2 2.2 3.4l.7 6.5c.3 2.3-1.4 4.3-3.8 4.6h-.1c-1.7.2-3.3-.7-4.1-2 .8.4 1.7.6 2.7.5"/><path d="m41.4 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.6 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.2-6.1-9.6-9.4"/></g><path d="m40 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#fed0ac"/><g fill="#e0a372"><path d="m46.9 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3.1-4.9 4.1-16.3-1.9-17.5"/><path d="m40.5 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fd.svg
index fb5a1b9..fb5387e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#d6a57c"><path d="m45.14 34.783l-.439-4.137c0 0-8.254-4.941-23.18-.674 0 0-8.525 2.164-8.04 6.713 0 0-.287 11.314 3.518 17.998 5.66 9.955 27.707 11.623 33.19-6.949 1.091-3.691.24-13.591-5.04-12.951"/><path d="m29.753 33.02c.24 2.262 2.285 3.896 4.566 3.65l.035-.004c2.283-.246 3.941-2.279 3.701-4.539l-2.81-26.446c-.24-2.262-2.287-3.896-4.57-3.652l-.035.005c-2.281.244-3.938 2.277-3.697 4.539l2.81 26.447"/></g><path fill="#b58360" d="m32.362 35.949l.041-.004c2.281-.246 3.918-2.307 3.678-4.57l-2.81-26.447c-.131-1.229-.793-2.272-1.737-2.928 1.914.186 3.498 1.68 3.707 3.654l2.811 26.447c.24 2.264-1.4 4.324-3.684 4.568l-.035.004c-1.043.113-2.037-.166-2.828-.721.277.03.566.028.857-.003"/><path fill="#d6a57c" d="m37.47 32.357c-.283 2.256 1.336 4.32 3.611 4.607l.037.006c2.277.287 4.354-1.309 4.635-3.564l3.301-26.391c.283-2.256-1.338-4.32-3.615-4.607l-.035-.006c-2.277-.287-4.352 1.309-4.633 3.564l-3.301 26.391"/><path fill="#b58360" d="m39.34 35.807l.043.006c2.275.287 4.338-1.34 4.623-3.6l3.297-26.389c.152-1.224-.254-2.394-1.022-3.252 1.822.623 3.02 2.443 2.775 4.416l-3.299 26.389c-.283 2.258-2.35 3.883-4.627 3.596l-.037-.006c-1.041-.131-1.941-.633-2.588-1.355.265.091.546.158.835.195"/><g fill="#d6a57c"><path d="m13.03 32.398c-.246-2.314 1.396-4.387 3.672-4.631l.068-.008c2.271-.244 4.313 1.432 4.559 3.746l.688 6.473c.246 2.313-1.395 4.387-3.668 4.631l-.068.008c-2.275.246-4.316-1.434-4.563-3.744l-.688-6.475"/><path d="m20.831 27.76c-.244-2.311 1.398-4.385 3.672-4.629l.066-.008c2.273-.244 4.318 1.432 4.564 3.744l.686 6.475c.246 2.313-1.398 4.389-3.672 4.633l-.066.006c-2.273.246-4.316-1.432-4.563-3.746l-.687-6.475"/></g><g fill="#b58360"><path d="m16.944 41.19l.055-.006c2.271-.244 3.861-2.285 3.615-4.598l-.688-6.479c-.068-.625-.27-1.201-.564-1.707 1.064.658 1.824 1.795 1.969 3.154l.689 6.479c.244 2.311-1.34 4.326-3.615 4.57l-.049.006c-1.664.18-3.195-.656-4-2.025.752.464 1.651.708 2.59.606"/><path d="m24.729 36.555l.051-.006c2.273-.244 3.885-2.258 3.639-4.572l-.689-6.479c-.064-.623-.262-1.201-.559-1.707 1.063.658 1.826 1.797 1.971 3.154l.688 6.479c.246 2.313-1.369 4.301-3.641 4.545l-.053.006c-1.66.18-3.193-.654-3.998-2.025.748.464 1.65.706 2.591.605"/><path d="m39.673 30.826c-3.338-2.035-4 1.174-9.68 1.346-2.484.074-3.592 5.342.172 7.25 5.238 2.654 5.648-1.104 6.924.361 1.357 1.557 2.635 1.861 3.779 3.666.832 1.309 7.328-.711 8.01-3.398 1.32-5.158-3.912-5.994-9.209-9.225"/></g><path fill="#d6a57c" d="m40.1 31.725c-3.469-2.117-4.162 1.221-10.07 1.4-2.584.076-3.734 5.557.184 7.541 5.447 2.762 5.873-1.148 7.199.377 1.414 1.619 2.742 1.936 3.932 3.813.865 1.363-1.438 6.514-1.438 6.514s6.678 4.818 8.04 2.072c2.531-5.1 1.813-9.119 1.734-12.12-.186-6.915-4.069-6.239-9.582-9.598"/><g fill="#b58360"><path d="m46.81 35.15c3.707 1.742 3.529 11.582.768 16.322-6.875 11.789-21.922 11.596-29.06 5.283 6.615 7.242 22.641 7.957 30.11-4.262 2.992-4.891 3.926-16.1-1.818-17.343"/><path d="m40.587 44.992c.268.42.234 1.205.057 2.088.398-1.344.662-2.742.27-3.361-1.189-1.877-1.863-2.264-3.273-3.883-1.33-1.525-1.756 2.385-7.203-.375-2.01-1.021-2.682-2.965-2.51-4.625-.764 1.797-.383 4.596 2.186 5.898 5.447 2.76 5.873-1.15 7.201.375 1.411 1.62 2.084 2.01 3.272 3.883"/><path d="m27.687 53.44c0-6.541 4.762-11.9 10.82-12.445-.738-.205-1.51-.328-2.311-.328-5.186 0-9.393 4.441-9.393 9.92 0 1.582.359 3.068.984 4.391-.059-.504-.1-1.016-.1-1.538"/><path d="m25.831 41.19c-1.016-.289-2.043-.182-2.943.225.387.025.777.08 1.164.191 2.975.848 4.771 3.992 4.164 7.139.361-.488.643-1.053.805-1.688.652-2.553-.776-5.178-3.19-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.3 31.9c-.5 2.2.9 4.5 3.2 5 2.3.5 4.6-.9 5.1-3.1l6.1-26.2c.5-2.2-.9-4.5-3.2-5-2.3-.5-4.6.9-5.1 3.1l-6.1 26.2" fill="#d6a57c"/><path d="m38.9 35.6c2.4.5 4.6-.9 5.2-3.1l6.1-26.2c.3-1.2 0-2.4-.7-3.3 2.1.9 2.8 2.7 2.4 4.7l-6.1 26.2c-.5 2.2-2.8 3.7-5.1 3.1-1.1-.2-1.9-.8-2.5-1.6.1 0 .4.1.7.2" fill="#b58360"/><g fill="#d6a57c"><path d="m45.2 34.5c0 0-8.7-8.6-24.1-4.3 0 0-9.1 1.6-8.6 6.2 0 0-.3 11.4 3.6 18.2 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m29.7 33.4c.4 2.3 2.7 3.7 5 3.3 2.3-.4 3.9-2.6 3.5-4.9l-5-26.4c-.4-2.3-2.7-3.7-5-3.3-2.3.4-3.9 2.6-3.4 4.9l4.9 26.4"/></g><path d="m32.6 36.1c2.4-.4 3.9-2.6 3.5-4.9l-5-26.4c-.3-1.2-1.1-2.2-2.1-2.8 2.2 0 3.8 1.4 4.2 3.4l5 26.4c.4 2.3-1.1 4.5-3.4 4.9-1.1.2-2.1 0-3-.5.2 0 .5 0 .8-.1" fill="#b58360"/><g fill="#d6a57c"><path d="m12 32.1c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.3-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/><path d="m20.1 27.4c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.4-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/></g><g fill="#b58360"><path d="m16.1 41c2.4-.3 4-2.3 3.8-4.7l-.7-6.5c-.1-.6-.4-1.3-.7-1.9 1.5.7 2 1.9 2.2 3.3l.7 6.5c.3 2.3-1.4 4.4-3.7 4.6-1.7.2-3.3-.7-4.1-2 .6.5 1.5.8 2.5.7"/><path d="m24.1 36.3c2.4-.3 4.1-2.3 3.8-4.6l-.7-6.5c-.1-.6-.4-1.4-.7-1.9 1.4.8 2 2 2.2 3.4l.7 6.5c.3 2.3-1.4 4.3-3.8 4.6h-.1c-1.7.2-3.3-.7-4.1-2 .8.4 1.7.6 2.7.5"/><path d="m41.4 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.6 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.2-6.1-9.6-9.4"/></g><path d="m40 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#d6a57c"/><g fill="#b58360"><path d="m46.9 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3.1-4.9 4.1-16.3-1.9-17.5"/><path d="m40.5 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fe.svg
index e6afa7c..2b8a95d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#b47d56"><path d="m45.14 34.783l-.439-4.137c0 0-8.254-4.941-23.18-.674 0 0-8.525 2.164-8.04 6.713 0 0-.287 11.314 3.518 17.998 5.66 9.955 27.707 11.623 33.19-6.949 1.091-3.691.24-13.591-5.04-12.951"/><path d="m29.753 33.02c.24 2.262 2.285 3.896 4.566 3.65l.035-.004c2.283-.246 3.941-2.279 3.701-4.539l-2.81-26.446c-.24-2.262-2.287-3.896-4.57-3.652l-.035.005c-2.281.244-3.938 2.277-3.697 4.539l2.81 26.447"/></g><path fill="#935e3e" d="m32.362 35.949l.041-.004c2.281-.246 3.918-2.307 3.678-4.57l-2.81-26.447c-.131-1.229-.793-2.272-1.737-2.928 1.914.186 3.498 1.68 3.707 3.654l2.811 26.447c.24 2.264-1.4 4.324-3.684 4.568l-.035.004c-1.043.113-2.037-.166-2.828-.721.277.03.566.028.857-.003"/><path fill="#b47d56" d="m37.47 32.357c-.283 2.256 1.336 4.32 3.611 4.607l.037.006c2.277.287 4.354-1.309 4.635-3.564l3.301-26.391c.283-2.256-1.338-4.32-3.615-4.607l-.035-.006c-2.277-.287-4.352 1.309-4.633 3.564l-3.301 26.391"/><path fill="#935e3e" d="m39.34 35.807l.043.006c2.275.287 4.338-1.34 4.623-3.6l3.297-26.389c.152-1.224-.254-2.394-1.022-3.252 1.822.623 3.02 2.443 2.775 4.416l-3.299 26.389c-.283 2.258-2.35 3.883-4.627 3.596l-.037-.006c-1.041-.131-1.941-.633-2.588-1.355.265.091.546.158.835.195"/><g fill="#b47d56"><path d="m13.03 32.398c-.246-2.314 1.396-4.387 3.672-4.631l.068-.008c2.271-.244 4.313 1.432 4.559 3.746l.688 6.473c.246 2.313-1.395 4.387-3.668 4.631l-.068.008c-2.275.246-4.316-1.434-4.563-3.744l-.688-6.475"/><path d="m20.831 27.76c-.244-2.311 1.398-4.385 3.672-4.629l.066-.008c2.273-.244 4.318 1.432 4.564 3.744l.686 6.475c.246 2.313-1.398 4.389-3.672 4.633l-.066.006c-2.273.246-4.316-1.432-4.563-3.746l-.687-6.475"/></g><g fill="#935e3e"><path d="m16.944 41.19l.055-.006c2.271-.244 3.861-2.285 3.615-4.598l-.688-6.479c-.068-.625-.27-1.201-.564-1.707 1.064.658 1.824 1.795 1.969 3.154l.689 6.479c.244 2.311-1.34 4.326-3.615 4.57l-.049.006c-1.664.18-3.195-.656-4-2.025.752.464 1.651.708 2.59.606"/><path d="m24.729 36.555l.051-.006c2.273-.244 3.885-2.258 3.639-4.572l-.689-6.479c-.064-.623-.262-1.201-.559-1.707 1.063.658 1.826 1.797 1.971 3.154l.688 6.479c.246 2.313-1.369 4.301-3.641 4.545l-.053.006c-1.66.18-3.193-.654-3.998-2.025.748.464 1.65.706 2.591.605"/><path d="m39.673 30.826c-3.338-2.035-4 1.174-9.68 1.346-2.484.074-3.592 5.342.172 7.25 5.238 2.654 5.648-1.104 6.924.361 1.357 1.557 2.635 1.861 3.779 3.666.832 1.309 7.328-.711 8.01-3.398 1.32-5.158-3.912-5.994-9.209-9.225"/></g><path fill="#b47d56" d="m40.1 31.725c-3.469-2.117-4.162 1.221-10.07 1.4-2.584.076-3.734 5.557.184 7.541 5.447 2.762 5.873-1.148 7.199.377 1.414 1.619 2.742 1.936 3.932 3.813.865 1.363-1.438 6.514-1.438 6.514s6.678 4.818 8.04 2.072c2.531-5.1 1.813-9.119 1.734-12.12-.186-6.915-4.069-6.239-9.582-9.598"/><g fill="#935e3e"><path d="m46.81 35.15c3.707 1.742 3.529 11.582.768 16.322-6.875 11.789-21.922 11.596-29.06 5.283 6.615 7.242 22.641 7.957 30.11-4.262 2.992-4.891 3.926-16.1-1.818-17.343"/><path d="m40.587 44.992c.268.42.234 1.205.057 2.088.398-1.344.662-2.742.27-3.361-1.189-1.877-1.863-2.264-3.273-3.883-1.33-1.525-1.756 2.385-7.203-.375-2.01-1.021-2.682-2.965-2.51-4.625-.764 1.797-.383 4.596 2.186 5.898 5.447 2.76 5.873-1.15 7.201.375 1.411 1.62 2.084 2.01 3.272 3.883"/><path d="m27.687 53.44c0-6.541 4.762-11.9 10.82-12.445-.738-.205-1.51-.328-2.311-.328-5.186 0-9.393 4.441-9.393 9.92 0 1.582.359 3.068.984 4.391-.059-.504-.1-1.016-.1-1.538"/><path d="m25.831 41.19c-1.016-.289-2.043-.182-2.943.225.387.025.777.08 1.164.191 2.975.848 4.771 3.992 4.164 7.139.361-.488.643-1.053.805-1.688.652-2.553-.776-5.178-3.19-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.3 31.9c-.5 2.2.9 4.5 3.2 5 2.3.5 4.6-.9 5.1-3.1l6.1-26.2c.5-2.2-.9-4.5-3.2-5-2.3-.5-4.6.9-5.1 3.1l-6.1 26.2" fill="#b47d56"/><path d="m38.9 35.6c2.4.5 4.6-.9 5.2-3.1l6.1-26.2c.3-1.2 0-2.4-.7-3.3 2.1.9 2.8 2.7 2.4 4.7l-6.1 26.2c-.5 2.2-2.8 3.7-5.1 3.1-1.1-.2-1.9-.8-2.5-1.6.1 0 .4.1.7.2" fill="#935e3e"/><g fill="#b47d56"><path d="m45.2 34.5c0 0-8.7-8.6-24.1-4.3 0 0-9.1 1.6-8.6 6.2 0 0-.3 11.4 3.6 18.2 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m29.7 33.4c.4 2.3 2.7 3.7 5 3.3 2.3-.4 3.9-2.6 3.5-4.9l-5-26.4c-.4-2.3-2.7-3.7-5-3.3-2.3.4-3.9 2.6-3.4 4.9l4.9 26.4"/></g><path d="m32.6 36.1c2.4-.4 3.9-2.6 3.5-4.9l-5-26.4c-.3-1.2-1.1-2.2-2.1-2.8 2.2 0 3.8 1.4 4.2 3.4l5 26.4c.4 2.3-1.1 4.5-3.4 4.9-1.1.2-2.1 0-3-.5.2 0 .5 0 .8-.1" fill="#935e3e"/><g fill="#b47d56"><path d="m12 32.1c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.3-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/><path d="m20.1 27.4c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.4-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/></g><g fill="#935e3e"><path d="m16.1 41c2.4-.3 4-2.3 3.8-4.7l-.7-6.5c-.1-.6-.4-1.3-.7-1.9 1.5.7 2 1.9 2.2 3.3l.7 6.5c.3 2.3-1.4 4.4-3.7 4.6-1.7.2-3.3-.7-4.1-2 .6.5 1.5.8 2.5.7"/><path d="m24.1 36.3c2.4-.3 4.1-2.3 3.8-4.6l-.7-6.5c-.1-.6-.4-1.4-.7-1.9 1.4.8 2 2 2.2 3.4l.7 6.5c.3 2.3-1.4 4.3-3.8 4.6h-.1c-1.7.2-3.3-.7-4.1-2 .8.4 1.7.6 2.7.5"/><path d="m41.4 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.6 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.2-6.1-9.6-9.4"/></g><path d="m40 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#b47d56"/><g fill="#935e3e"><path d="m46.9 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3.1-4.9 4.1-16.3-1.9-17.5"/><path d="m40.5 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3ff.svg
index 9f0b78a..8d41bbc 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270c-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270c-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#8a6859"><path d="m45.14 34.783l-.439-4.137c0 0-8.254-4.941-23.18-.674 0 0-8.525 2.164-8.04 6.713 0 0-.287 11.314 3.518 17.998 5.66 9.955 27.707 11.623 33.19-6.949 1.091-3.691.24-13.591-5.04-12.951"/><path d="m29.753 33.02c.24 2.262 2.285 3.896 4.566 3.65l.035-.004c2.283-.246 3.941-2.279 3.701-4.539l-2.81-26.446c-.24-2.262-2.287-3.896-4.57-3.652l-.035.005c-2.281.244-3.938 2.277-3.697 4.539l2.81 26.447"/></g><path fill="#705041" d="m32.362 35.949l.041-.004c2.281-.246 3.918-2.307 3.678-4.57l-2.81-26.447c-.131-1.229-.793-2.272-1.737-2.928 1.914.186 3.498 1.68 3.707 3.654l2.811 26.447c.24 2.264-1.4 4.324-3.684 4.568l-.035.004c-1.043.113-2.037-.166-2.828-.721.277.03.566.028.857-.003"/><path fill="#8a6859" d="m37.47 32.357c-.283 2.256 1.336 4.32 3.611 4.607l.037.006c2.277.287 4.354-1.309 4.635-3.564l3.301-26.391c.283-2.256-1.338-4.32-3.615-4.607l-.035-.006c-2.277-.287-4.352 1.309-4.633 3.564l-3.301 26.391"/><path fill="#705041" d="m39.34 35.807l.043.006c2.275.287 4.338-1.34 4.623-3.6l3.297-26.389c.152-1.224-.254-2.394-1.022-3.252 1.822.623 3.02 2.443 2.775 4.416l-3.299 26.389c-.283 2.258-2.35 3.883-4.627 3.596l-.037-.006c-1.041-.131-1.941-.633-2.588-1.355.265.091.546.158.835.195"/><g fill="#8a6859"><path d="m13.03 32.398c-.246-2.314 1.396-4.387 3.672-4.631l.068-.008c2.271-.244 4.313 1.432 4.559 3.746l.688 6.473c.246 2.313-1.395 4.387-3.668 4.631l-.068.008c-2.275.246-4.316-1.434-4.563-3.744l-.688-6.475"/><path d="m20.831 27.76c-.244-2.311 1.398-4.385 3.672-4.629l.066-.008c2.273-.244 4.318 1.432 4.564 3.744l.686 6.475c.246 2.313-1.398 4.389-3.672 4.633l-.066.006c-2.273.246-4.316-1.432-4.563-3.746l-.687-6.475"/></g><g fill="#705041"><path d="m16.944 41.19l.055-.006c2.271-.244 3.861-2.285 3.615-4.598l-.688-6.479c-.068-.625-.27-1.201-.564-1.707 1.064.658 1.824 1.795 1.969 3.154l.689 6.479c.244 2.311-1.34 4.326-3.615 4.57l-.049.006c-1.664.18-3.195-.656-4-2.025.752.464 1.651.708 2.59.606"/><path d="m24.729 36.555l.051-.006c2.273-.244 3.885-2.258 3.639-4.572l-.689-6.479c-.064-.623-.262-1.201-.559-1.707 1.063.658 1.826 1.797 1.971 3.154l.688 6.479c.246 2.313-1.369 4.301-3.641 4.545l-.053.006c-1.66.18-3.193-.654-3.998-2.025.748.464 1.65.706 2.591.605"/><path d="m39.673 30.826c-3.338-2.035-4 1.174-9.68 1.346-2.484.074-3.592 5.342.172 7.25 5.238 2.654 5.648-1.104 6.924.361 1.357 1.557 2.635 1.861 3.779 3.666.832 1.309 7.328-.711 8.01-3.398 1.32-5.158-3.912-5.994-9.209-9.225"/></g><path fill="#8a6859" d="m40.1 31.725c-3.469-2.117-4.162 1.221-10.07 1.4-2.584.076-3.734 5.557.184 7.541 5.447 2.762 5.873-1.148 7.199.377 1.414 1.619 2.742 1.936 3.932 3.813.865 1.363-1.438 6.514-1.438 6.514s6.678 4.818 8.04 2.072c2.531-5.1 1.813-9.119 1.734-12.12-.186-6.915-4.069-6.239-9.582-9.598"/><g fill="#705041"><path d="m46.81 35.15c3.707 1.742 3.529 11.582.768 16.322-6.875 11.789-21.922 11.596-29.06 5.283 6.615 7.242 22.641 7.957 30.11-4.262 2.992-4.891 3.926-16.1-1.818-17.343"/><path d="m40.587 44.992c.268.42.234 1.205.057 2.088.398-1.344.662-2.742.27-3.361-1.189-1.877-1.863-2.264-3.273-3.883-1.33-1.525-1.756 2.385-7.203-.375-2.01-1.021-2.682-2.965-2.51-4.625-.764 1.797-.383 4.596 2.186 5.898 5.447 2.76 5.873-1.15 7.201.375 1.411 1.62 2.084 2.01 3.272 3.883"/><path d="m27.687 53.44c0-6.541 4.762-11.9 10.82-12.445-.738-.205-1.51-.328-2.311-.328-5.186 0-9.393 4.441-9.393 9.92 0 1.582.359 3.068.984 4.391-.059-.504-.1-1.016-.1-1.538"/><path d="m25.831 41.19c-1.016-.289-2.043-.182-2.943.225.387.025.777.08 1.164.191 2.975.848 4.771 3.992 4.164 7.139.361-.488.643-1.053.805-1.688.652-2.553-.776-5.178-3.19-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.3 31.9c-.5 2.2.9 4.5 3.2 5 2.3.5 4.6-.9 5.1-3.1l6.1-26.2c.5-2.2-.9-4.5-3.2-5-2.3-.5-4.6.9-5.1 3.1l-6.1 26.2" fill="#8a6859"/><path d="m38.9 35.6c2.4.5 4.6-.9 5.2-3.1l6.1-26.2c.3-1.2 0-2.4-.7-3.3 2.1.9 2.8 2.7 2.4 4.7l-6.1 26.2c-.5 2.2-2.8 3.7-5.1 3.1-1.1-.2-1.9-.8-2.5-1.6.1 0 .4.1.7.2" fill="#705041"/><g fill="#8a6859"><path d="m45.2 34.5c0 0-8.7-8.6-24.1-4.3 0 0-9.1 1.6-8.6 6.2 0 0-.3 11.4 3.6 18.2 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m29.7 33.4c.4 2.3 2.7 3.7 5 3.3 2.3-.4 3.9-2.6 3.5-4.9l-5-26.4c-.4-2.3-2.7-3.7-5-3.3-2.3.4-3.9 2.6-3.4 4.9l4.9 26.4"/></g><path d="m32.6 36.1c2.4-.4 3.9-2.6 3.5-4.9l-5-26.4c-.3-1.2-1.1-2.2-2.1-2.8 2.2 0 3.8 1.4 4.2 3.4l5 26.4c.4 2.3-1.1 4.5-3.4 4.9-1.1.2-2.1 0-3-.5.2 0 .5 0 .8-.1" fill="#705041"/><g fill="#8a6859"><path d="m12 32.1c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.3-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/><path d="m20.1 27.4c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.4-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/></g><g fill="#705041"><path d="m16.1 41c2.4-.3 4-2.3 3.8-4.7l-.7-6.5c-.1-.6-.4-1.3-.7-1.9 1.5.7 2 1.9 2.2 3.3l.7 6.5c.3 2.3-1.4 4.4-3.7 4.6-1.7.2-3.3-.7-4.1-2 .6.5 1.5.8 2.5.7"/><path d="m24.1 36.3c2.4-.3 4.1-2.3 3.8-4.6l-.7-6.5c-.1-.6-.4-1.4-.7-1.9 1.4.8 2 2 2.2 3.4l.7 6.5c.3 2.3-1.4 4.3-3.8 4.6h-.1c-1.7.2-3.3-.7-4.1-2 .8.4 1.7.6 2.7.5"/><path d="m41.4 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.6 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.2-6.1-9.6-9.4"/></g><path d="m40 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#8a6859"/><g fill="#705041"><path d="m46.9 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3.1-4.9 4.1-16.3-1.9-17.5"/><path d="m40.5 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270c.svg b/build/js/jsxc/lib/emojione/assets/svg/270c.svg
index edccc50..78682b5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ffdd67"><path d="m45.14 34.783l-.439-4.137c0 0-8.254-4.941-23.18-.674 0 0-8.525 2.164-8.04 6.713 0 0-.287 11.314 3.518 17.998 5.66 9.955 27.708 11.623 33.2-6.949 1.09-3.691.239-13.591-5.05-12.951"/><path d="m29.75 33.02c.24 2.262 2.285 3.896 4.567 3.65l.035-.004c2.283-.246 3.941-2.279 3.701-4.54l-2.811-26.446c-.24-2.262-2.288-3.896-4.571-3.652l-.035.006c-2.281.244-3.938 2.277-3.697 4.539l2.811 26.447"/></g><path fill="#eba352" d="m32.359 35.949l.041-.004c2.282-.246 3.918-2.307 3.678-4.571l-2.81-26.447c-.131-1.228-.794-2.271-1.737-2.927 1.915.186 3.499 1.68 3.708 3.654l2.811 26.447c.24 2.264-1.4 4.325-3.684 4.569l-.035.004c-1.043.113-2.038-.166-2.829-.721.277.029.566.027.857-.004"/><path fill="#ffdd67" d="m37.467 32.357c-.283 2.256 1.336 4.321 3.611 4.608l.037.006c2.277.287 4.354-1.309 4.635-3.564l3.301-26.391c.283-2.256-1.338-4.32-3.615-4.607l-.036-.007c-2.277-.287-4.352 1.309-4.633 3.564l-3.3 26.391"/><path fill="#eba352" d="m39.34 35.807l.043.006c2.275.287 4.338-1.34 4.623-3.6l3.297-26.389c.152-1.225-.254-2.395-1.021-3.252 1.822.623 3.02 2.443 2.775 4.416l-3.299 26.389c-.283 2.258-2.35 3.883-4.627 3.596l-.037-.006c-1.041-.131-1.941-.633-2.588-1.355.264.091.545.158.834.195"/><g fill="#ffdd67"><path d="m13.03 32.398c-.246-2.314 1.396-4.387 3.672-4.631l.068-.008c2.271-.244 4.313 1.432 4.559 3.746l.688 6.473c.246 2.313-1.395 4.387-3.668 4.631l-.068.008c-2.275.246-4.316-1.434-4.563-3.744l-.688-6.475"/><path d="m20.828 27.759c-.244-2.311 1.398-4.385 3.672-4.629l.066-.008c2.273-.244 4.318 1.432 4.564 3.744l.686 6.475c.246 2.313-1.398 4.389-3.672 4.633l-.066.006c-2.273.246-4.316-1.432-4.563-3.746l-.687-6.475"/></g><g fill="#eba352"><path d="m16.941 41.19l.055-.006c2.271-.244 3.861-2.285 3.615-4.598l-.688-6.479c-.068-.625-.27-1.201-.564-1.707 1.064.658 1.824 1.795 1.969 3.154l.689 6.479c.244 2.311-1.34 4.326-3.615 4.57l-.049.006c-1.664.18-3.195-.656-4-2.025.752.464 1.65.708 2.59.606"/><path d="m24.726 36.555l.051-.006c2.273-.244 3.885-2.258 3.639-4.573l-.689-6.479c-.064-.623-.262-1.201-.559-1.707 1.063.658 1.826 1.797 1.971 3.154l.688 6.479c.246 2.313-1.369 4.301-3.641 4.545l-.053.006c-1.66.18-3.193-.654-3.998-2.025.747.465 1.65.707 2.591.606"/><path d="m39.67 30.826c-3.338-2.035-4 1.174-9.68 1.346-2.484.074-3.592 5.342.172 7.25 5.239 2.654 5.649-1.104 6.924.361 1.357 1.557 2.635 1.861 3.779 3.666.832 1.309 7.328-.711 8.01-3.398 1.32-5.158-3.912-5.994-9.209-9.225"/></g><path fill="#ffdd67" d="m40.1 31.724c-3.469-2.117-4.162 1.221-10.07 1.401-2.584.076-3.734 5.557.184 7.541 5.448 2.762 5.874-1.148 7.2.377 1.414 1.619 2.742 1.936 3.932 3.813.865 1.363-1.438 6.514-1.438 6.514s6.678 4.818 8.04 2.072c2.531-5.1 1.813-9.119 1.734-12.12-.186-6.915-4.069-6.239-9.582-9.599"/><g fill="#eba352"><path d="m46.807 35.15c3.707 1.742 3.529 11.582.768 16.322-6.875 11.789-21.922 11.596-29.06 5.283 6.615 7.242 22.641 7.957 30.11-4.262 2.991-4.891 3.925-16.1-1.819-17.343"/><path d="m40.584 44.992c.268.42.234 1.205.057 2.088.398-1.344.662-2.742.27-3.361-1.189-1.877-1.863-2.264-3.273-3.883-1.33-1.525-1.756 2.385-7.204-.375-2.01-1.021-2.682-2.965-2.51-4.625-.764 1.797-.383 4.596 2.186 5.898 5.448 2.76 5.874-1.15 7.202.375 1.411 1.62 2.084 2.01 3.272 3.883"/><path d="m27.683 53.44c0-6.541 4.762-11.9 10.821-12.445-.738-.205-1.51-.328-2.311-.328-5.186 0-9.393 4.441-9.393 9.92 0 1.582.359 3.068.984 4.391-.06-.504-.101-1.016-.101-1.538"/><path d="m25.828 41.19c-1.016-.289-2.043-.182-2.943.225.387.025.777.08 1.164.191 2.975.848 4.771 3.992 4.164 7.139.361-.488.643-1.053.805-1.688.651-2.553-.776-5.178-3.19-5.867"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m37.3 31.9c-.5 2.2.9 4.5 3.2 5 2.3.5 4.6-.9 5.1-3.1l6.1-26.2c.5-2.2-.9-4.5-3.2-5-2.3-.5-4.6.9-5.1 3.1l-6.1 26.2" fill="#ffdd67"/><path d="m38.9 35.6c2.4.5 4.6-.9 5.2-3.1l6.1-26.2c.3-1.2 0-2.4-.7-3.3 2.1.9 2.8 2.7 2.4 4.7l-6.1 26.2c-.5 2.2-2.8 3.7-5.1 3.1-1.1-.2-1.9-.8-2.5-1.6.1 0 .4.1.7.2" fill="#eba352"/><g fill="#ffdd67"><path d="m45.2 34.5c0 0-8.7-8.6-24.1-4.3 0 0-9.1 1.6-8.6 6.2 0 0-.3 11.4 3.6 18.2 5.9 10.1 28.6 11.7 34.3-7 1.2-3.7.3-13.7-5.2-13.1"/><path d="m29.7 33.4c.4 2.3 2.7 3.7 5 3.3 2.3-.4 3.9-2.6 3.5-4.9l-5-26.4c-.4-2.3-2.7-3.7-5-3.3-2.3.4-3.9 2.6-3.4 4.9l4.9 26.4"/></g><path d="m32.6 36.1c2.4-.4 3.9-2.6 3.5-4.9l-5-26.4c-.3-1.2-1.1-2.2-2.1-2.8 2.2 0 3.8 1.4 4.2 3.4l5 26.4c.4 2.3-1.1 4.5-3.4 4.9-1.1.2-2.1 0-3-.5.2 0 .5 0 .8-.1" fill="#eba352"/><g fill="#ffdd67"><path d="m12 32.1c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.3-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/><path d="m20.1 27.4c-.3-2.3 1.4-4.4 3.8-4.7h.1c2.4-.2 4.5 1.4 4.7 3.8l.7 6.5c.3 2.3-1.4 4.4-3.8 4.7h-.1c-2.4.2-4.5-1.4-4.7-3.8l-.7-6.5"/></g><g fill="#eba352"><path d="m16.1 41c2.4-.3 4-2.3 3.8-4.7l-.7-6.5c-.1-.6-.4-1.3-.7-1.9 1.5.7 2 1.9 2.2 3.3l.7 6.5c.3 2.3-1.4 4.4-3.7 4.6-1.7.2-3.3-.7-4.1-2 .6.5 1.5.8 2.5.7"/><path d="m24.1 36.3c2.4-.3 4.1-2.3 3.8-4.6l-.7-6.5c-.1-.6-.4-1.4-.7-1.9 1.4.8 2 2 2.2 3.4l.7 6.5c.3 2.3-1.4 4.3-3.8 4.6h-.1c-1.7.2-3.3-.7-4.1-2 .8.4 1.7.6 2.7.5"/><path d="m41.4 40.8c-4.8-2.3-15.7 1.7-13.5 11.7 0-10.4 9.4-12.2 13.5-11.7"/><path d="m39.6 30.5c-3.5-2.1-4.1 1.2-10 1.4-2.6.1-3.7 5.4.2 7.3 5.4 2.7 5.8-1.1 7.2.4 1.4 1.6 2.7 1.9 3.9 3.7.9 1.3 7.6-.7 8.3-3.4 1.3-5.3-4.2-6.1-9.6-9.4"/></g><path d="m40 31.4c-3.6-2.1-4.3 1.2-10.4 1.4-2.7.1-3.9 5.6.2 7.6 5.6 2.8 6.1-1.2 7.4.4 1.5 1.6 2.8 2 4.1 3.9.9 1.4-1.5 6.6-1.5 6.6s6.9 4.9 8.3 2.1c2.6-5.2 1.9-9.2 1.8-12.2-.2-7.1-4.2-6.4-9.9-9.8" fill="#ffdd67"/><g fill="#eba352"><path d="m46.9 34.9c3.8 1.8 3.6 11.7.8 16.5-7.1 11.9-22.7 11.7-30 5.3 6.8 7.3 23.4 8 31.1-4.3 3.1-4.9 4.1-16.3-1.9-17.5"/><path d="m40.5 44.8c.3.4.2 1.2.1 2.1.4-1.4.7-2.8.3-3.4-1.2-1.9-1.9-2.3-3.4-3.9-1.4-1.5-1.8 2.4-7.4-.4-2.1-1-2.8-3-2.6-4.7-.8 1.8-.4 4.6 2.3 6 5.6 2.8 6.1-1.2 7.4.4 1.4 1.6 2.1 2 3.3 3.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fb.svg b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fb.svg
index 256301d..438ab1a 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fb.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fb.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e6b796" d="m20.647 54.983c1.041 1.092 7.857 1.012 9.146.236 2.461-1.48 19.938-22.352 4.764-28.516-11.482-4.666-14.03 5.908-15.232 6.814-2.289 1.734-.664 19.382 1.322 21.466"/><g fill="#ffe1bd"><path d="m57.647 54.3c-17.361.102-8.898 2.594-22.834 2.594-5.527 0-10.16-3.621-10.238-8.627l.002-.086c8.588-5.736-5.842-3.213-3.615-16.725.742-4.5 5.484-4.848 11.758-5.373 5.326-.451 23.2 6.322 23.2 6.322 6.441 2.262 8.885 21.856 1.724 21.895"/><path d="m20.1 23.19c2.813-1.949 15.955 3.168 15.955 3.168l-8.119 20.432c0 0-28.557-.814-19.275-8.588 7.806-6.537 7.571-12.334 11.439-15.01"/></g><g fill="#e6b796"><path d="m7.759 39.06c-2.227 5.471 17.859 6.424 20.637 6.529l-.477 1.197c0 .001-26.391-.755-20.16-7.726"/><path d="m27.554 35.08c3.408 5.193 4.912 6.256 4.912 6.256s-3.436-.777-5.691-4.201l.779-2.055"/><path d="m27.354 33.972c1.488-.002.037 7.344 1.701 9.318-.412 1.287-3.01.547-3.01.547s.832-8.959.674-9.471l.633-.394"/><path d="m19.63 40.509l1.531 1.521c0 0 13.678-12.613 17.461-15.14l-4.453-1.045-14.539 14.663"/></g><path fill="#428bc1" d="m8.538 44.487l4.332 4.303 34.682-34.443-4.332-4.307z"/><g fill="#574137"><path d="m43.948 10.767l2.875 2.857 3.793-3.768-2.875-2.857z"/><path d="m37.802 14.09l5.608 5.559.94-.941-5.599-5.568z"/><path d="m28.837 21.507l.744.742 9.17-9.109-.751-.739z"/></g><path fill="#a9b5ae" d="m12.87 48.79l-9.744 5.37 5.412-9.673z"/><path fill="#574137" d="m2 54.58l.708.7 2-1.99-.702-.701z"/><path fill="#ffe1bd" d="m39.437 51.43c.199-.574.318-1.135.371-1.68.131-.313.232-.639.309-.977.959-4.26-15.334-7.096-15.334-7.096l-1.236-.303c-2.627-.609-8.289-1.344-12.49 3.51-2.908 3.357.082 6.779 2.789 7.03 7.309.701 12.699 2.496 16.773 4.223 3.644 1.542 7.282-.355 8.818-4.71"/><g fill="#e6b796"><path d="m23.548 42.946c-2.613-.852-6.814-3.189-12.16 1.566 5.04-6.121 13.08-2.992 13.398-2.947 7.563 1 12.602-2.02 12.602-2.02-1.578 3.843-10.135 4.604-13.84 3.399"/><path d="m35.35 55.638c13.934 0 5.473-2.492 22.832-2.592 1.547-.01 2.734-1.465 3.439-2.926-.516 2.68-1.963 4.174-3.914 4.184-17.359.102-8.959 2.695-22.893 2.695-5.529 0-10.699-2.779-15.12-4.232-.22-.073 10.426 2.871 15.653 2.871"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 55c1 1.1 7.9 1 9.1.2 2.5-1.5 19.9-22.4 4.8-28.5-11.5-4.7-14 5.9-15.2 6.8-2.3 1.8-.6 19.4 1.3 21.5" fill="#e6b796"/><g fill="#ffe1bd"><path d="m57.6 54.3c-17.4.1-8.9 2.6-22.8 2.6-5.5 0-10.2-3.6-10.2-8.6v-.1c8.6-5.7-5.8-3.2-3.6-16.7.7-4.5 5.5-4.8 11.8-5.4 5.3-.5 23.2 6.3 23.2 6.3 6.4 2.3 8.8 21.9 1.6 21.9"/><path d="m20.1 23.2c2.8-1.9 16 3.2 16 3.2l-8.1 20.4c0 0-28.6-.8-19.3-8.6 7.8-6.5 7.5-12.3 11.4-15"/></g><g fill="#e6b796"><path d="m7.8 39.1c-2.2 5.5 17.9 6.4 20.6 6.5l-.5 1.2c0 0-26.4-.8-20.1-7.7"/><path d="m27.6 35.1c3.4 5.2 4.9 6.3 4.9 6.3s-3.4-.8-5.7-4.2l.8-2.1"/><path d="m27.4 34c1.5 0 0 7.3 1.7 9.3-.4 1.3-3 .5-3 .5s.8-9 .7-9.5l.6-.3"/><path d="m19.6 40.5l1.5 1.5c0 0 13.7-12.6 17.5-15.1l-4.5-1-14.5 14.6"/></g><path fill="#428bc1" d="m8.5 44.5l4.4 4.3 34.7-34.5-4.4-4.3z"/><g fill="#574137"><path d="m43.9 10.8l2.9 2.8 3.8-3.7-2.9-2.9z"/><path d="m37.8 14.1l5.6 5.5 1-.9-5.6-5.6z"/><path d="m28.8 21.5l.8.7 9.2-9.1-.8-.7z"/></g><path fill="#a9b5ae" d="m12.9 48.8l-9.8 5.4 5.4-9.7z"/><path fill="#574137" d="m2 54.6l.7.7 2-2-.7-.7z"/><path d="m39.4 51.4c.2-.6.3-1.1.4-1.7.1-.3.2-.6.3-1 1-4.3-15.3-7.1-15.3-7.1l-1.2-.3c-2.6-.6-8.3-1.3-12.5 3.5-2.9 3.4.1 6.8 2.8 7 7.3.7 12.7 2.5 16.8 4.2 3.6 1.7 7.2-.2 8.7-4.6" fill="#ffe1bd"/><g fill="#e6b796"><path d="m23.5 42.9c-2.6-.9-6.8-3.2-12.2 1.6 5-6.1 13.1-3 13.4-2.9 7.6 1 12.6-2 12.6-2-1.5 3.8-10 4.6-13.8 3.3"/><path d="m35.3 55.6c13.9 0 5.5-2.5 22.8-2.6 1.5 0 2.7-1.5 3.4-2.9-.5 2.7-2 4.2-3.9 4.2-17.4.1-9 2.7-22.9 2.7-5.5 0-10.7-2.8-15.1-4.2-.1-.1 10.5 2.8 15.7 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fc.svg b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fc.svg
index a91959e..3ff16a8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fc.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fc.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#e0a372" d="m20.647 54.983c1.041 1.092 7.857 1.012 9.146.236 2.461-1.48 19.938-22.352 4.764-28.516-11.482-4.666-14.03 5.908-15.232 6.814-2.289 1.734-.664 19.382 1.322 21.466"/><g fill="#fed0ac"><path d="m57.647 54.3c-17.361.102-8.898 2.594-22.834 2.594-5.527 0-10.16-3.621-10.238-8.627l.002-.086c8.588-5.736-5.842-3.213-3.615-16.725.742-4.5 5.484-4.848 11.758-5.373 5.326-.451 23.2 6.322 23.2 6.322 6.441 2.262 8.885 21.856 1.724 21.895"/><path d="m20.1 23.19c2.813-1.949 15.955 3.168 15.955 3.168l-8.119 20.432c0 0-28.557-.814-19.275-8.588 7.806-6.537 7.571-12.334 11.439-15.01"/></g><g fill="#e0a372"><path d="m7.759 39.06c-2.227 5.471 17.859 6.424 20.637 6.529l-.477 1.197c0 .001-26.391-.755-20.16-7.726"/><path d="m27.554 35.08c3.408 5.193 4.912 6.256 4.912 6.256s-3.436-.777-5.691-4.201l.779-2.055"/><path d="m27.354 33.972c1.488-.002.037 7.344 1.701 9.318-.412 1.287-3.01.547-3.01.547s.832-8.959.674-9.471l.633-.394"/><path d="m19.63 40.509l1.531 1.521c0 0 13.678-12.613 17.461-15.14l-4.453-1.045-14.539 14.663"/></g><path fill="#428bc1" d="m8.538 44.487l4.332 4.303 34.682-34.443-4.332-4.307z"/><g fill="#574137"><path d="m43.948 10.767l2.875 2.857 3.793-3.768-2.875-2.857z"/><path d="m37.802 14.09l5.608 5.559.94-.941-5.599-5.568z"/><path d="m28.837 21.507l.744.742 9.17-9.109-.751-.739z"/></g><path fill="#a9b5ae" d="m12.87 48.79l-9.744 5.37 5.412-9.673z"/><path fill="#574137" d="m2 54.58l.708.7 2-1.99-.702-.701z"/><path fill="#fed0ac" d="m39.437 51.43c.199-.574.318-1.135.371-1.68.131-.313.232-.639.309-.977.959-4.26-15.334-7.096-15.334-7.096l-1.236-.303c-2.627-.609-8.289-1.344-12.49 3.51-2.908 3.357.082 6.779 2.789 7.03 7.309.701 12.699 2.496 16.773 4.223 3.644 1.542 7.282-.355 8.818-4.71"/><g fill="#e0a372"><path d="m23.548 42.946c-2.613-.852-6.814-3.189-12.16 1.566 5.04-6.121 13.08-2.992 13.398-2.947 7.563 1 12.602-2.02 12.602-2.02-1.578 3.843-10.135 4.604-13.84 3.399"/><path d="m35.35 55.638c13.934 0 5.473-2.492 22.832-2.592 1.547-.01 2.734-1.465 3.439-2.926-.516 2.68-1.963 4.174-3.914 4.184-17.359.102-8.959 2.695-22.893 2.695-5.529 0-10.699-2.779-15.12-4.232-.22-.073 10.426 2.871 15.653 2.871"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 55c1 1.1 7.9 1 9.1.2 2.5-1.5 19.9-22.4 4.8-28.5-11.5-4.7-14 5.9-15.2 6.8-2.3 1.8-.6 19.4 1.3 21.5" fill="#e0a372"/><g fill="#fed0ac"><path d="m57.6 54.3c-17.4.1-8.9 2.6-22.8 2.6-5.5 0-10.2-3.6-10.2-8.6v-.1c8.6-5.7-5.8-3.2-3.6-16.7.7-4.5 5.5-4.8 11.8-5.4 5.3-.5 23.2 6.3 23.2 6.3 6.4 2.3 8.8 21.9 1.6 21.9"/><path d="m20.1 23.2c2.8-1.9 16 3.2 16 3.2l-8.1 20.4c0 0-28.6-.8-19.3-8.6 7.8-6.5 7.5-12.3 11.4-15"/></g><g fill="#e0a372"><path d="m7.8 39.1c-2.2 5.5 17.9 6.4 20.6 6.5l-.5 1.2c0 0-26.4-.8-20.1-7.7"/><path d="m27.6 35.1c3.4 5.2 4.9 6.3 4.9 6.3s-3.4-.8-5.7-4.2l.8-2.1"/><path d="m27.4 34c1.5 0 0 7.3 1.7 9.3-.4 1.3-3 .5-3 .5s.8-9 .7-9.5l.6-.3"/><path d="m19.6 40.5l1.5 1.5c0 0 13.7-12.6 17.5-15.1l-4.5-1-14.5 14.6"/></g><path fill="#428bc1" d="m8.5 44.5l4.4 4.3 34.7-34.5-4.4-4.3z"/><g fill="#574137"><path d="m43.9 10.8l2.9 2.8 3.8-3.7-2.9-2.9z"/><path d="m37.8 14.1l5.6 5.5 1-.9-5.6-5.6z"/><path d="m28.8 21.5l.8.7 9.2-9.1-.8-.7z"/></g><path fill="#a9b5ae" d="m12.9 48.8l-9.8 5.4 5.4-9.7z"/><path fill="#574137" d="m2 54.6l.7.7 2-2-.7-.7z"/><path d="m39.4 51.4c.2-.6.3-1.1.4-1.7.1-.3.2-.6.3-1 1-4.3-15.3-7.1-15.3-7.1l-1.2-.3c-2.6-.6-8.3-1.3-12.5 3.5-2.9 3.4.1 6.8 2.8 7 7.3.7 12.7 2.5 16.8 4.2 3.6 1.7 7.2-.2 8.7-4.6" fill="#fed0ac"/><g fill="#e0a372"><path d="m23.5 42.9c-2.6-.9-6.8-3.2-12.2 1.6 5-6.1 13.1-3 13.4-2.9 7.6 1 12.6-2 12.6-2-1.5 3.8-10 4.6-13.8 3.3"/><path d="m35.3 55.6c13.9 0 5.5-2.5 22.8-2.6 1.5 0 2.7-1.5 3.4-2.9-.5 2.7-2 4.2-3.9 4.2-17.4.1-9 2.7-22.9 2.7-5.5 0-10.7-2.8-15.1-4.2-.1-.1 10.5 2.8 15.7 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fd.svg b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fd.svg
index 4e6b0f4..57884c0 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fd.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fd.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#b58360" d="m20.647 54.983c1.041 1.092 7.857 1.012 9.146.236 2.461-1.48 19.938-22.352 4.764-28.516-11.482-4.666-14.03 5.908-15.232 6.814-2.289 1.734-.664 19.382 1.322 21.466"/><g fill="#d6a57c"><path d="m57.647 54.3c-17.361.102-8.898 2.594-22.834 2.594-5.527 0-10.16-3.621-10.238-8.627l.002-.086c8.588-5.736-5.842-3.213-3.615-16.725.742-4.5 5.484-4.848 11.758-5.373 5.326-.451 23.2 6.322 23.2 6.322 6.441 2.262 8.885 21.856 1.724 21.895"/><path d="m20.1 23.19c2.813-1.949 15.955 3.168 15.955 3.168l-8.119 20.432c0 0-28.557-.814-19.275-8.588 7.806-6.537 7.571-12.334 11.439-15.01"/></g><g fill="#b58360"><path d="m7.759 39.06c-2.227 5.471 17.859 6.424 20.637 6.529l-.477 1.197c0 .001-26.391-.755-20.16-7.726"/><path d="m27.554 35.08c3.408 5.193 4.912 6.256 4.912 6.256s-3.436-.777-5.691-4.201l.779-2.055"/><path d="m27.354 33.972c1.488-.002.037 7.344 1.701 9.318-.412 1.287-3.01.547-3.01.547s.832-8.959.674-9.471l.633-.394"/><path d="m19.63 40.509l1.531 1.521c0 0 13.678-12.613 17.461-15.14l-4.453-1.045-14.539 14.663"/></g><path fill="#428bc1" d="m8.538 44.487l4.332 4.303 34.682-34.443-4.332-4.307z"/><g fill="#574137"><path d="m43.948 10.767l2.875 2.857 3.793-3.768-2.875-2.857z"/><path d="m37.802 14.09l5.608 5.559.94-.941-5.599-5.568z"/><path d="m28.837 21.507l.744.742 9.17-9.109-.751-.739z"/></g><path fill="#a9b5ae" d="m12.87 48.79l-9.744 5.37 5.412-9.673z"/><path fill="#574137" d="m2 54.58l.708.7 2-1.99-.702-.701z"/><path fill="#d6a57c" d="m39.437 51.43c.199-.574.318-1.135.371-1.68.131-.313.232-.639.309-.977.959-4.26-15.334-7.096-15.334-7.096l-1.236-.303c-2.627-.609-8.289-1.344-12.49 3.51-2.908 3.357.082 6.779 2.789 7.03 7.309.701 12.699 2.496 16.773 4.223 3.644 1.542 7.282-.355 8.818-4.71"/><g fill="#b58360"><path d="m23.548 42.946c-2.613-.852-6.814-3.189-12.16 1.566 5.04-6.121 13.08-2.992 13.398-2.947 7.563 1 12.602-2.02 12.602-2.02-1.578 3.843-10.135 4.604-13.84 3.399"/><path d="m35.35 55.638c13.934 0 5.473-2.492 22.832-2.592 1.547-.01 2.734-1.465 3.439-2.926-.516 2.68-1.963 4.174-3.914 4.184-17.359.102-8.959 2.695-22.893 2.695-5.529 0-10.699-2.779-15.12-4.232-.22-.073 10.426 2.871 15.653 2.871"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 55c1 1.1 7.9 1 9.1.2 2.5-1.5 19.9-22.4 4.8-28.5-11.5-4.7-14 5.9-15.2 6.8-2.3 1.8-.6 19.4 1.3 21.5" fill="#b58360"/><g fill="#d6a57c"><path d="m57.6 54.3c-17.4.1-8.9 2.6-22.8 2.6-5.5 0-10.2-3.6-10.2-8.6v-.1c8.6-5.7-5.8-3.2-3.6-16.7.7-4.5 5.5-4.8 11.8-5.4 5.3-.5 23.2 6.3 23.2 6.3 6.4 2.3 8.8 21.9 1.6 21.9"/><path d="m20.1 23.2c2.8-1.9 16 3.2 16 3.2l-8.1 20.4c0 0-28.6-.8-19.3-8.6 7.8-6.5 7.5-12.3 11.4-15"/></g><g fill="#b58360"><path d="m7.8 39.1c-2.2 5.5 17.9 6.4 20.6 6.5l-.5 1.2c0 0-26.4-.8-20.1-7.7"/><path d="m27.6 35.1c3.4 5.2 4.9 6.3 4.9 6.3s-3.4-.8-5.7-4.2l.8-2.1"/><path d="m27.4 34c1.5 0 0 7.3 1.7 9.3-.4 1.3-3 .5-3 .5s.8-9 .7-9.5l.6-.3"/><path d="m19.6 40.5l1.5 1.5c0 0 13.7-12.6 17.5-15.1l-4.5-1-14.5 14.6"/></g><path fill="#428bc1" d="m8.5 44.5l4.4 4.3 34.7-34.5-4.4-4.3z"/><g fill="#574137"><path d="m43.9 10.8l2.9 2.8 3.8-3.7-2.9-2.9z"/><path d="m37.8 14.1l5.6 5.5 1-.9-5.6-5.6z"/><path d="m28.8 21.5l.8.7 9.2-9.1-.8-.7z"/></g><path fill="#a9b5ae" d="m12.9 48.8l-9.8 5.4 5.4-9.7z"/><path fill="#574137" d="m2 54.6l.7.7 2-2-.7-.7z"/><path d="m39.4 51.4c.2-.6.3-1.1.4-1.7.1-.3.2-.6.3-1 1-4.3-15.3-7.1-15.3-7.1l-1.2-.3c-2.6-.6-8.3-1.3-12.5 3.5-2.9 3.4.1 6.8 2.8 7 7.3.7 12.7 2.5 16.8 4.2 3.6 1.7 7.2-.2 8.7-4.6" fill="#d6a57c"/><g fill="#b58360"><path d="m23.5 42.9c-2.6-.9-6.8-3.2-12.2 1.6 5-6.1 13.1-3 13.4-2.9 7.6 1 12.6-2 12.6-2-1.5 3.8-10 4.6-13.8 3.3"/><path d="m35.3 55.6c13.9 0 5.5-2.5 22.8-2.6 1.5 0 2.7-1.5 3.4-2.9-.5 2.7-2 4.2-3.9 4.2-17.4.1-9 2.7-22.9 2.7-5.5 0-10.7-2.8-15.1-4.2-.1-.1 10.5 2.8 15.7 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fe.svg b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fe.svg
index 878f52c..089e890 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fe.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3fe.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#935e3e" d="m20.647 54.983c1.041 1.092 7.857 1.012 9.146.236 2.461-1.48 19.938-22.352 4.764-28.516-11.482-4.666-14.03 5.908-15.232 6.814-2.289 1.734-.664 19.382 1.322 21.466"/><g fill="#b47d56"><path d="m57.647 54.3c-17.361.102-8.898 2.594-22.834 2.594-5.527 0-10.16-3.621-10.238-8.627l.002-.086c8.588-5.736-5.842-3.213-3.615-16.725.742-4.5 5.484-4.848 11.758-5.373 5.326-.451 23.2 6.322 23.2 6.322 6.441 2.262 8.885 21.856 1.724 21.895"/><path d="m20.1 23.19c2.813-1.949 15.955 3.168 15.955 3.168l-8.119 20.432c0 0-28.557-.814-19.275-8.588 7.806-6.537 7.571-12.334 11.439-15.01"/></g><g fill="#935e3e"><path d="m7.759 39.06c-2.227 5.471 17.859 6.424 20.637 6.529l-.477 1.197c0 .001-26.391-.755-20.16-7.726"/><path d="m27.554 35.08c3.408 5.193 4.912 6.256 4.912 6.256s-3.436-.777-5.691-4.201l.779-2.055"/><path d="m27.354 33.972c1.488-.002.037 7.344 1.701 9.318-.412 1.287-3.01.547-3.01.547s.832-8.959.674-9.471l.633-.394"/><path d="m19.63 40.509l1.531 1.521c0 0 13.678-12.613 17.461-15.14l-4.453-1.045-14.539 14.663"/></g><path fill="#428bc1" d="m8.538 44.487l4.332 4.303 34.682-34.443-4.332-4.307z"/><g fill="#574137"><path d="m43.948 10.767l2.875 2.857 3.793-3.768-2.875-2.857z"/><path d="m37.802 14.09l5.608 5.559.94-.941-5.599-5.568z"/><path d="m28.837 21.507l.744.742 9.17-9.109-.751-.739z"/></g><path fill="#a9b5ae" d="m12.87 48.79l-9.744 5.37 5.412-9.673z"/><path fill="#574137" d="m2 54.58l.708.7 2-1.99-.702-.701z"/><path fill="#b47d56" d="m39.437 51.43c.199-.574.318-1.135.371-1.68.131-.313.232-.639.309-.977.959-4.26-15.334-7.096-15.334-7.096l-1.236-.303c-2.627-.609-8.289-1.344-12.49 3.51-2.908 3.357.082 6.779 2.789 7.03 7.309.701 12.699 2.496 16.773 4.223 3.644 1.542 7.282-.355 8.818-4.71"/><g fill="#935e3e"><path d="m23.548 42.946c-2.613-.852-6.814-3.189-12.16 1.566 5.04-6.121 13.08-2.992 13.398-2.947 7.563 1 12.602-2.02 12.602-2.02-1.578 3.843-10.135 4.604-13.84 3.399"/><path d="m35.35 55.638c13.934 0 5.473-2.492 22.832-2.592 1.547-.01 2.734-1.465 3.439-2.926-.516 2.68-1.963 4.174-3.914 4.184-17.359.102-8.959 2.695-22.893 2.695-5.529 0-10.699-2.779-15.12-4.232-.22-.073 10.426 2.871 15.653 2.871"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 55c1 1.1 7.9 1 9.1.2 2.5-1.5 19.9-22.4 4.8-28.5-11.5-4.7-14 5.9-15.2 6.8-2.3 1.8-.6 19.4 1.3 21.5" fill="#935e3e"/><g fill="#b47d56"><path d="m57.6 54.3c-17.4.1-8.9 2.6-22.8 2.6-5.5 0-10.2-3.6-10.2-8.6v-.1c8.6-5.7-5.8-3.2-3.6-16.7.7-4.5 5.5-4.8 11.8-5.4 5.3-.5 23.2 6.3 23.2 6.3 6.4 2.3 8.8 21.9 1.6 21.9"/><path d="m20.1 23.2c2.8-1.9 16 3.2 16 3.2l-8.1 20.4c0 0-28.6-.8-19.3-8.6 7.8-6.5 7.5-12.3 11.4-15"/></g><g fill="#935e3e"><path d="m7.8 39.1c-2.2 5.5 17.9 6.4 20.6 6.5l-.5 1.2c0 0-26.4-.8-20.1-7.7"/><path d="m27.6 35.1c3.4 5.2 4.9 6.3 4.9 6.3s-3.4-.8-5.7-4.2l.8-2.1"/><path d="m27.4 34c1.5 0 0 7.3 1.7 9.3-.4 1.3-3 .5-3 .5s.8-9 .7-9.5l.6-.3"/><path d="m19.6 40.5l1.5 1.5c0 0 13.7-12.6 17.5-15.1l-4.5-1-14.5 14.6"/></g><path fill="#428bc1" d="m8.5 44.5l4.4 4.3 34.7-34.5-4.4-4.3z"/><g fill="#574137"><path d="m43.9 10.8l2.9 2.8 3.8-3.7-2.9-2.9z"/><path d="m37.8 14.1l5.6 5.5 1-.9-5.6-5.6z"/><path d="m28.8 21.5l.8.7 9.2-9.1-.8-.7z"/></g><path fill="#a9b5ae" d="m12.9 48.8l-9.8 5.4 5.4-9.7z"/><path fill="#574137" d="m2 54.6l.7.7 2-2-.7-.7z"/><path d="m39.4 51.4c.2-.6.3-1.1.4-1.7.1-.3.2-.6.3-1 1-4.3-15.3-7.1-15.3-7.1l-1.2-.3c-2.6-.6-8.3-1.3-12.5 3.5-2.9 3.4.1 6.8 2.8 7 7.3.7 12.7 2.5 16.8 4.2 3.6 1.7 7.2-.2 8.7-4.6" fill="#b47d56"/><g fill="#935e3e"><path d="m23.5 42.9c-2.6-.9-6.8-3.2-12.2 1.6 5-6.1 13.1-3 13.4-2.9 7.6 1 12.6-2 12.6-2-1.5 3.8-10 4.6-13.8 3.3"/><path d="m35.3 55.6c13.9 0 5.5-2.5 22.8-2.6 1.5 0 2.7-1.5 3.4-2.9-.5 2.7-2 4.2-3.9 4.2-17.4.1-9 2.7-22.9 2.7-5.5 0-10.7-2.8-15.1-4.2-.1-.1 10.5 2.8 15.7 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3ff.svg b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3ff.svg
index 25f13d4..863dbaa 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270d-1f3ff.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270d-1f3ff.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#705041" d="m20.647 54.983c1.041 1.092 7.857 1.012 9.146.236 2.461-1.48 19.938-22.352 4.764-28.516-11.482-4.666-14.03 5.908-15.232 6.814-2.289 1.734-.664 19.382 1.322 21.466"/><g fill="#8a6859"><path d="m57.647 54.3c-17.361.102-8.898 2.594-22.834 2.594-5.527 0-10.16-3.621-10.238-8.627l.002-.086c8.588-5.736-5.842-3.213-3.615-16.725.742-4.5 5.484-4.848 11.758-5.373 5.326-.451 23.2 6.322 23.2 6.322 6.441 2.262 8.885 21.856 1.724 21.895"/><path d="m20.1 23.19c2.813-1.949 15.955 3.168 15.955 3.168l-8.119 20.432c0 0-28.557-.814-19.275-8.588 7.806-6.537 7.571-12.334 11.439-15.01"/></g><g fill="#705041"><path d="m7.759 39.06c-2.227 5.471 17.859 6.424 20.637 6.529l-.477 1.197c0 .001-26.391-.755-20.16-7.726"/><path d="m27.554 35.08c3.408 5.193 4.912 6.256 4.912 6.256s-3.436-.777-5.691-4.201l.779-2.055"/><path d="m27.354 33.972c1.488-.002.037 7.344 1.701 9.318-.412 1.287-3.01.547-3.01.547s.832-8.959.674-9.471l.633-.394"/><path d="m19.63 40.509l1.531 1.521c0 0 13.678-12.613 17.461-15.14l-4.453-1.045-14.539 14.663"/></g><path fill="#428bc1" d="m8.538 44.487l4.332 4.303 34.682-34.443-4.332-4.307z"/><g fill="#574137"><path d="m43.948 10.767l2.875 2.857 3.793-3.768-2.875-2.857z"/><path d="m37.802 14.09l5.608 5.559.94-.941-5.599-5.568z"/><path d="m28.837 21.507l.744.742 9.17-9.109-.751-.739z"/></g><path fill="#a9b5ae" d="m12.87 48.79l-9.744 5.37 5.412-9.673z"/><path fill="#574137" d="m2 54.58l.708.7 2-1.99-.702-.701z"/><path fill="#8a6859" d="m39.437 51.43c.199-.574.318-1.135.371-1.68.131-.313.232-.639.309-.977.959-4.26-15.334-7.096-15.334-7.096l-1.236-.303c-2.627-.609-8.289-1.344-12.49 3.51-2.908 3.357.082 6.779 2.789 7.03 7.309.701 12.699 2.496 16.773 4.223 3.644 1.542 7.282-.355 8.818-4.71"/><g fill="#705041"><path d="m23.548 42.946c-2.613-.852-6.814-3.189-12.16 1.566 5.04-6.121 13.08-2.992 13.398-2.947 7.563 1 12.602-2.02 12.602-2.02-1.578 3.843-10.135 4.604-13.84 3.399"/><path d="m35.35 55.638c13.934 0 5.473-2.492 22.832-2.592 1.547-.01 2.734-1.465 3.439-2.926-.516 2.68-1.963 4.174-3.914 4.184-17.359.102-8.959 2.695-22.893 2.695-5.529 0-10.699-2.779-15.12-4.232-.22-.073 10.426 2.871 15.653 2.871"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 55c1 1.1 7.9 1 9.1.2 2.5-1.5 19.9-22.4 4.8-28.5-11.5-4.7-14 5.9-15.2 6.8-2.3 1.8-.6 19.4 1.3 21.5" fill="#705041"/><g fill="#8a6859"><path d="m57.6 54.3c-17.4.1-8.9 2.6-22.8 2.6-5.5 0-10.2-3.6-10.2-8.6v-.1c8.6-5.7-5.8-3.2-3.6-16.7.7-4.5 5.5-4.8 11.8-5.4 5.3-.5 23.2 6.3 23.2 6.3 6.4 2.3 8.8 21.9 1.6 21.9"/><path d="m20.1 23.2c2.8-1.9 16 3.2 16 3.2l-8.1 20.4c0 0-28.6-.8-19.3-8.6 7.8-6.5 7.5-12.3 11.4-15"/></g><g fill="#705041"><path d="m7.8 39.1c-2.2 5.5 17.9 6.4 20.6 6.5l-.5 1.2c0 0-26.4-.8-20.1-7.7"/><path d="m27.6 35.1c3.4 5.2 4.9 6.3 4.9 6.3s-3.4-.8-5.7-4.2l.8-2.1"/><path d="m27.4 34c1.5 0 0 7.3 1.7 9.3-.4 1.3-3 .5-3 .5s.8-9 .7-9.5l.6-.3"/><path d="m19.6 40.5l1.5 1.5c0 0 13.7-12.6 17.5-15.1l-4.5-1-14.5 14.6"/></g><path fill="#428bc1" d="m8.5 44.5l4.4 4.3 34.7-34.5-4.4-4.3z"/><g fill="#574137"><path d="m43.9 10.8l2.9 2.8 3.8-3.7-2.9-2.9z"/><path d="m37.8 14.1l5.6 5.5 1-.9-5.6-5.6z"/><path d="m28.8 21.5l.8.7 9.2-9.1-.8-.7z"/></g><path fill="#a9b5ae" d="m12.9 48.8l-9.8 5.4 5.4-9.7z"/><path fill="#574137" d="m2 54.6l.7.7 2-2-.7-.7z"/><path d="m39.4 51.4c.2-.6.3-1.1.4-1.7.1-.3.2-.6.3-1 1-4.3-15.3-7.1-15.3-7.1l-1.2-.3c-2.6-.6-8.3-1.3-12.5 3.5-2.9 3.4.1 6.8 2.8 7 7.3.7 12.7 2.5 16.8 4.2 3.6 1.7 7.2-.2 8.7-4.6" fill="#8a6859"/><g fill="#705041"><path d="m23.5 42.9c-2.6-.9-6.8-3.2-12.2 1.6 5-6.1 13.1-3 13.4-2.9 7.6 1 12.6-2 12.6-2-1.5 3.8-10 4.6-13.8 3.3"/><path d="m35.3 55.6c13.9 0 5.5-2.5 22.8-2.6 1.5 0 2.7-1.5 3.4-2.9-.5 2.7-2 4.2-3.9 4.2-17.4.1-9 2.7-22.9 2.7-5.5 0-10.7-2.8-15.1-4.2-.1-.1 10.5 2.8 15.7 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270d.svg b/build/js/jsxc/lib/emojione/assets/svg/270d.svg
index 89d3022..9370c8c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#eba352" d="m20.645 54.984c1.041 1.092 7.857 1.012 9.146.236 2.461-1.48 19.938-22.352 4.764-28.516-11.482-4.666-14.03 5.908-15.232 6.815-2.29 1.733-.665 19.381 1.322 21.465"/><g fill="#ffdd67"><path d="m57.645 54.3c-17.361.102-8.898 2.594-22.834 2.594-5.527 0-10.16-3.621-10.238-8.627l.002-.086c8.588-5.736-5.842-3.213-3.615-16.725.742-4.5 5.484-4.848 11.758-5.373 5.326-.451 23.2 6.322 23.2 6.322 6.44 2.262 8.884 21.856 1.724 21.895"/><path d="m20.1 23.19c2.813-1.949 15.955 3.168 15.955 3.168l-8.119 20.432c0 0-28.557-.814-19.275-8.588 7.806-6.537 7.571-12.334 11.439-15.01"/></g><g fill="#eba352"><path d="m7.756 39.06c-2.227 5.471 17.859 6.424 20.637 6.529l-.477 1.197c0 .001-26.391-.755-20.16-7.726"/><path d="m27.551 35.08c3.408 5.193 4.912 6.256 4.912 6.256s-3.436-.777-5.691-4.201l.779-2.055"/><path d="m27.352 33.973c1.488-.002.037 7.344 1.701 9.318-.412 1.287-3.01.547-3.01.547s.832-8.959.674-9.471l.633-.394"/><path d="m19.627 40.51l1.531 1.521c0 0 13.678-12.614 17.461-15.14l-4.453-1.045-14.539 14.663"/></g><path fill="#428bc1" d="m8.535 44.488l4.332 4.303 34.682-34.444-4.329-4.307z"/><g fill="#574137"><path d="M43.945 10.767 46.82 13.625 50.613 9.857 47.738 7z"/><path d="m37.799 14.09l5.601 5.56.95-.942-5.602-5.568z"/><path d="m28.834 21.507l.744.743 9.17-9.11-.748-.738z"/></g><path fill="#a9b5ae" d="m12.867 48.791l-9.744 5.379 5.412-9.682z"/><path fill="#574137" d="m2 54.58l.705.7 2-1.99-.709-.7z"/><path fill="#ffdd67" d="m39.434 51.43c.199-.574.318-1.135.371-1.68.131-.313.232-.639.309-.977.959-4.26-15.334-7.096-15.334-7.096l-1.236-.303c-2.627-.609-8.289-1.344-12.49 3.51-2.908 3.357.082 6.779 2.789 7.03 7.309.701 12.699 2.496 16.773 4.223 3.644 1.542 7.282-.355 8.818-4.71"/><g fill="#eba352"><path d="m23.545 42.947c-2.613-.852-6.814-3.189-12.16 1.566 5.04-6.121 13.08-2.992 13.398-2.947 7.563 1 12.602-2.02 12.602-2.02-1.578 3.843-10.135 4.604-13.84 3.399"/><path d="m35.34 55.639c13.934 0 5.473-2.492 22.832-2.592 1.547-.01 2.734-1.465 3.439-2.926-.516 2.68-1.963 4.174-3.914 4.184-17.359.101-8.959 2.695-22.892 2.695-5.529 0-10.699-2.779-15.12-4.232-.221-.073 10.425 2.871 15.652 2.871"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m20.6 55c1 1.1 7.9 1 9.1.2 2.5-1.5 19.9-22.4 4.8-28.5-11.5-4.7-14 5.9-15.2 6.8-2.3 1.8-.6 19.4 1.3 21.5" fill="#eba352"/><g fill="#ffdd67"><path d="m57.6 54.3c-17.4.1-8.9 2.6-22.8 2.6-5.5 0-10.2-3.6-10.2-8.6v-.1c8.6-5.7-5.8-3.2-3.6-16.7.7-4.5 5.5-4.8 11.8-5.4 5.3-.5 23.2 6.3 23.2 6.3 6.4 2.3 8.8 21.9 1.6 21.9"/><path d="m20.1 23.2c2.8-1.9 16 3.2 16 3.2l-8.1 20.4c0 0-28.6-.8-19.3-8.6 7.8-6.5 7.5-12.3 11.4-15"/></g><g fill="#eba352"><path d="m7.8 39.1c-2.2 5.5 17.9 6.4 20.6 6.5l-.5 1.2c0 0-26.4-.8-20.1-7.7"/><path d="m27.6 35.1c3.4 5.2 4.9 6.3 4.9 6.3s-3.4-.8-5.7-4.2l.8-2.1"/><path d="m27.4 34c1.5 0 0 7.3 1.7 9.3-.4 1.3-3 .5-3 .5s.8-9 .7-9.5l.6-.3"/><path d="m19.6 40.5l1.5 1.5c0 0 13.7-12.6 17.5-15.1l-4.5-1-14.5 14.6"/></g><path fill="#428bc1" d="m8.5 44.5l4.4 4.3 34.6-34.5-4.3-4.3z"/><g fill="#574137"><path d="m43.9 10.8l2.9 2.8 3.8-3.7-2.9-2.9z"/><path d="m37.8 14.1l5.6 5.5 1-.9-5.7-5.6z"/><path d="m28.8 21.5l.8.7 9.1-9.1-.7-.7z"/></g><path fill="#a9b5ae" d="m12.9 48.8l-9.8 5.4 5.4-9.7z"/><path fill="#574137" d="m2 54.6l.7.7 2-2-.7-.7z"/><path d="m39.4 51.4c.2-.6.3-1.1.4-1.7.1-.3.2-.6.3-1 1-4.3-15.3-7.1-15.3-7.1l-1.2-.3c-2.6-.6-8.3-1.3-12.5 3.5-2.9 3.4.1 6.8 2.8 7 7.3.7 12.7 2.5 16.8 4.2 3.6 1.7 7.2-.2 8.7-4.6" fill="#ffdd67"/><g fill="#eba352"><path d="m23.5 42.9c-2.6-.9-6.8-3.2-12.2 1.6 5-6.1 13.1-3 13.4-2.9 7.6 1 12.6-2 12.6-2-1.5 3.8-10.1 4.6-13.8 3.3"/><path d="m35.3 55.6c13.9 0 5.5-2.5 22.8-2.6 1.5 0 2.7-1.5 3.4-2.9-.5 2.7-2 4.2-3.9 4.2-17.4.1-9 2.7-22.9 2.7-5.5 0-10.7-2.8-15.1-4.2-.1-.1 10.5 2.8 15.7 2.8"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/270f.svg b/build/js/jsxc/lib/emojione/assets/svg/270f.svg
index f8464c5..55eec77 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/270f.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/270f.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7072-.707.707.7072-13.913 31.725)" fill="#ffce31" d="m8.783 22.09h45.12v21.15h-45.12z"/><path fill="#ed4c5c" d="m61.3 4.607l-1.901-1.903c-3.606-3.603-9.444-3.602-13.05 0l-6.52 6.526 14.95 14.951 6.522-6.523c3.606-3.603 3.603-9.445.001-13.05"/><path transform="matrix(.7071-.7071.7071.7071 0 37.491)" fill="#93a2aa" d="m42.38 8.174h5.77v21.14h-5.77z"/><path transform="matrix(.7071-.7071.7071.7071 0 37.492)" fill="#c7d3d8" d="m42.38 10.435h5.771v16.621h-5.771z"/><path fill="#fed0ac" d="m7.913 41.13l-6.476 16.96 4.458 4.48 16.971-6.48z"/><path fill="#333" d="m.297 61.05c-.895 2.355.299 3.546 2.651 2.646l8.229-3.141-7.729-7.733-3.151 8.228"/><path transform="matrix(.7071.7071-.7071.7071 28.14-8.495)" fill="#ffdf85" d="m20.798 10.04h7.05v39.36h-7.05z"/><path transform="matrix(.7071.7071-.7071.7071 38.1-12.623)" fill="#ff8736" d="m30.765 20h7.05v39.36h-7.05z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path transform="matrix(.7072-.707.707.7072-13.9145 31.7241)" fill="#ffce31" d="m8.8 22.1h45.1v21.1h-45.1z"/><path d="m61.3 4.6l-1.9-1.9c-3.6-3.6-9.4-3.6-13.1 0l-6.5 6.5 15 15 6.5-6.5c3.6-3.6 3.6-9.5 0-13.1" fill="#ed4c5c"/><path transform="matrix(.7071-.7071.7071.7071.0023 37.4923)" fill="#93a2aa" d="m42.4 8.2h5.8v21.1h-5.8z"/><path transform="matrix(.7071-.7071.7071.7071.00263 37.4922)" fill="#c7d3d8" d="m42.4 10.4h5.8v16.6h-5.8z"/><path fill="#fed0ac" d="m7.9 41.1l-6.5 17 4.5 4.5 17-6.5z"/><path d="m.3 61.1c-.9 2.4.3 3.5 2.7 2.6l8.2-3.1-7.7-7.7-3.2 8.2" fill="#333"/><path transform="matrix(.7071-.7071.7071.7071-13.8881 25.9017)" fill="#ffdf85" d="m4.6 26.2h39.4v7h-39.4z"/><path transform="matrix(.7071-.7071.7071.7071-18.0167 35.8688)" fill="#ff8736" d="m14.6 36.2h39.4v7h-39.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2712.svg b/build/js/jsxc/lib/emojione/assets/svg/2712.svg
index 5bc1ead..28a3968 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2712.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2712.svg
@@ -1 +1,2 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m43.786 51.7l7.912-7.913 10.06 6.101c0 0-.695 6.359 2.244 12.53l-9.976-9.977c.022-.46-.139-.929-.486-1.279-.658-.655-1.719-.655-2.377 0-.653.655-.653 1.718.002 2.375.351.351.819.51 1.28.485l9.978 9.978c-6.174-2.939-12.532-2.245-12.532-2.245l-6.102-10.05"/><path fill="#3e4347" d="m2.457 2.457c3.278-3.276 8.592-3.276 11.867 0l4.675 4.674c0 0 4.996 1.828 14.09 10.926 9.101 9.101 10.927 14.09 10.927 14.09l9.663 9.659-11.871 11.871-9.66-9.661c0 0-4.992-1.828-14.09-10.928-9.1-9.1-10.93-14.09-10.93-14.09l-4.672-4.671c-3.274-3.28-3.274-8.593.001-11.871"/><g fill="#94989b"><path transform="matrix(.7072.707-.707.7072 12.271-5.084)" d="m11.156 3.883h2.237v16.782h-2.237z"/><path transform="matrix(.708.7062-.7062.708 38.808-16.1)" d="m37.757 30.484h2.239v16.783h-2.239z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m43.8 51.7l7.9-7.9 10.1 6.1c0 0-.7 6.4 2.2 12.5l-10-10c0-.5-.1-.9-.5-1.3-.7-.7-1.7-.7-2.4 0-.7.7-.7 1.7 0 2.4.4.4.8.5 1.3.5l10 10c-6.2-2.9-12.5-2.2-12.5-2.2l-6.1-10.1" fill="#94989b"/><path d="M2.5,2.5c3.3-3.3,8.6-3.3,11.9,0L19,7.1c0,0,5,1.8,14.1,10.9C42.2,27.2,44,32.2,44,32.2l9.7,9.7L41.8,53.7
+ L32.2,44c0,0-5-1.8-14.1-10.9S7.1,19,7.1,19l-4.7-4.7C-0.8,11-0.8,5.7,2.5,2.5z" fill="#3e4347"/><g fill="#94989b"><path transform="matrix(.707-.7072.7072.707-5.0839 12.2766)" d="m3.9 11.2h16.8v2.2h-16.8z"/><path transform="matrix(.7062-.708.708.7062-16.1014 38.9478)" d="m30.5 37.8h16.8v2.2h-16.8z"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2714.svg b/build/js/jsxc/lib/emojione/assets/svg/2714.svg
index b36b2dd..20a0826 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2714.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2714.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#83bf4f" d="M57.6 0 17.92 43.637 6.4 34.91 0 34.91 17.92 64 64 0z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4d5357" d="M56 2 18.8 42.9 8 34.7 2 34.7 18.8 62 62 2z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2716.svg b/build/js/jsxc/lib/emojione/assets/svg/2716.svg
index c20b338..1117a75 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2716.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2716.svg
@@ -1,4 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="M42.434,32l18.652-18.653c1.219-1.218,1.219-3.209,0-4.427L55.08,2.913c-1.217-1.218-3.209-1.218-4.427,0
- L32,21.566L13.347,2.913c-1.218-1.218-3.209-1.218-4.427,0L2.913,8.92c-1.217,1.218-1.217,3.209,0,4.427L21.566,32L2.913,50.654
- c-1.217,1.217-1.217,3.208,0,4.426l6.006,6.007c1.218,1.218,3.209,1.218,4.427,0L32,42.434l18.653,18.653
- c1.218,1.218,3.21,1.218,4.427,0l6.006-6.007c1.219-1.218,1.219-3.209,0-4.426L42.434,32z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4d5357" d="M62 10.6 53.4 2 32 23.4 10.6 2 2 10.6 23.4 32 2 53.4 10.6 62 32 40.6 53.4 62 62 53.4 40.6 32z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/271d.svg b/build/js/jsxc/lib/emojione/assets/svg/271d.svg
index b8e3377..850e144 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/271d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/271d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#3e4347" d="m57 22.776c0 0-1.88-1.567-4.599-2.438-.754-2.49-2.626-4.253-4.816-4.253-.94 0-1.823.326-2.584.896.872.651 1.58 1.622 2.035 2.788h-11.735v-10.691c1.279.414 2.347 1.061 3.061 1.854.626-.693.983-1.497.983-2.355 0-1.995-1.936-3.7-4.668-4.387-.957-2.477-2.678-4.19-2.678-4.19s-1.72 1.712-2.678 4.189c-2.732.687-4.667 2.392-4.667 4.387 0 .858.356 1.662.983 2.355.714-.793 1.781-1.44 3.061-1.854v10.691h-11.735c.454-1.167 1.164-2.137 2.034-2.788-.76-.57-1.642-.896-2.584-.896-2.19 0-4.062 1.763-4.816 4.253-2.718.872-4.597 2.439-4.597 2.439s1.879 1.568 4.597 2.44c.755 2.489 2.626 4.252 4.816 4.252.942 0 1.824-.326 2.584-.896-.87-.651-1.58-1.622-2.034-2.79h11.735v12.433 16.707c-1.279-.414-2.347-1.061-3.061-1.854-.627.693-.983 1.496-.983 2.354 0 1.996 1.935 3.701 4.667 4.387.958 2.479 2.678 4.191 2.678 4.191s1.721-1.712 2.678-4.189c2.732-.686 4.668-2.391 4.668-4.387 0-.857-.357-1.66-.983-2.354-.714.793-1.781 1.439-3.061 1.854v-16.707-12.433h11.735c-.455 1.167-1.163 2.138-2.035 2.79.761.569 1.644.896 2.584.896 2.19 0 4.063-1.764 4.816-4.252 2.719-.874 4.599-2.442 4.599-2.442"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m55 23.4c0 0-1.7-1.5-4.2-2.3-.7-2.3-2.4-4-4.4-4-.9 0-1.7.3-2.4.8.8.6 1.5 1.5 1.9 2.6h-10.9v-10c1.2.4 2.2 1 2.8 1.7.6-.6.9-1.4.9-2.2 0-1.9-1.8-3.5-4.3-4.1-.8-2.3-2.4-3.9-2.4-3.9s-1.6 1.6-2.5 3.9c-2.5.7-4.3 2.3-4.3 4.1 0 .8.3 1.6.9 2.2.7-.7 1.6-1.4 2.8-1.7v10h-10.7c.4-1.1 1.1-2 1.9-2.6-.7-.5-1.5-.8-2.4-.8-2 0-3.7 1.7-4.4 4-2.6.8-4.3 2.3-4.3 2.3s1.7 1.5 4.2 2.3c.7 2.3 2.4 4 4.4 4 .9 0 1.7-.3 2.4-.8-.8-.6-1.5-1.5-1.9-2.6h10.9v11.7 15.7c-1.2-.4-2.2-1-2.8-1.7-.6.6-.9 1.4-.9 2.2 0 1.9 1.8 3.5 4.3 4.1.8 2.1 2.4 3.7 2.4 3.7s1.6-1.6 2.5-3.9c2.5-.6 4.3-2.2 4.3-4.1 0-.8-.3-1.6-.9-2.2-.7.7-1.6 1.3-2.8 1.7v-15.7-11.6h10.8c-.4 1.1-1.1 2-1.9 2.6.7.5 1.5.8 2.4.8 2 0 3.7-1.7 4.4-4 2.5-.8 4.2-2.2 4.2-2.2" fill="#c28fef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2721.svg b/build/js/jsxc/lib/emojione/assets/svg/2721.svg
index 00bd01f..073f604 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2721.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2721.svg
@@ -1,4 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="M50.182,32L59,17.447H41.361L32,2l-9.361,15.447H5L13.819,32L5,46.552h17.639L32,62l9.361-15.448H59
- L50.182,32z M52.616,20.98L48.06,28.5l-4.558-7.52H52.616z M45.938,32L39.26,43.02H24.739L18.063,32l6.677-11.02H39.26L45.938,32z
- M32,9.001l5.119,8.446H26.881L32,9.001z M11.383,20.98h9.115L15.94,28.5L11.383,20.98z M11.383,43.02l4.557-7.519l4.558,7.519
- H11.383z M32,54.999l-5.119-8.447h10.238L32,54.999z M48.06,35.501l4.557,7.519h-9.114L48.06,35.501z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m58 17.4h-17l-9-15.4-9 15.4h-17l8.5 14.6-8.5 14.6h17l9 15.4 9-15.4h17l-8.5-14.6 8.5-14.6m-6.1 3.6l-4.4 7.5-4.4-7.5h8.8m-19.9-12l4.9 8.4h-9.9l5-8.4m-19.9 12h8.8l-4.4 7.5-4.4-7.5m0 22l4.4-7.5 4.4 7.5h-8.8m19.9 12l-4.9-8.4h9.9l-5 8.4m7-12h-14l-6.4-11 6.4-11h14l6.4 11-6.4 11m12.9 0h-8.8l4.4-7.5 4.4 7.5" fill="#c28fef"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2728.svg b/build/js/jsxc/lib/emojione/assets/svg/2728.svg
index 7ee9e26..37c0880 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2728.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2728.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffe54d" d="m22 0c0 16.889-9.127 32-22 32 12.873 0 22 15.11 22 32 0-16.889 9.127-32 22-32-12.873 0-22-15.11-22-32"/><path fill="#6adbc6" d="m53 0c0 8.445-4.563 16-11 16 6.437 0 11 7.556 11 16 0-8.444 4.563-16 11-16-6.437 0-11-7.555-11-16"/><path fill="#ff73c0" d="m48 32c0 8.445-4.563 16-11 16 6.437 0 11 7.556 11 16 0-8.444 4.563-16 11-16-6.437 0-11-7.555-11-16"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m22 0c0 16.9-9.1 32-22 32 12.9 0 22 15.1 22 32 0-16.9 9.1-32 22-32-12.9 0-22-15.1-22-32" fill="#ffe54d"/><path d="m53 0c0 8.4-4.6 16-11 16 6.4 0 11 7.6 11 16 0-8.4 4.6-16 11-16-6.4 0-11-7.6-11-16" fill="#6adbc6"/><path d="m48 32c0 8.4-4.6 16-11 16 6.4 0 11 7.6 11 16 0-8.4 4.6-16 11-16-6.4 0-11-7.6-11-16" fill="#ff73c0"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2733.svg b/build/js/jsxc/lib/emojione/assets/svg/2733.svg
index 5f4849e..fc0a0d5 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2733.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2733.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#24bac5" d="M38.22 34.576 64 32 38.22 29.421 54.628 9.372 34.577 25.777 32 0 29.422 25.777 9.372 9.372 25.777 29.421 0 32 25.777 34.576 9.372 54.628 29.422 38.22 32 64 34.577 38.22 54.628 54.628z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#24bac5" d="m38.2 34.6l25.8-2.6-25.8-2.6 16.4-20-20 16.4-2.6-25.8-2.6 25.8-20-16.4 16.4 20-25.8 2.6 25.8 2.6-16.4 20 20-16.4 2.6 25.8 2.6-25.8 20 16.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2734.svg b/build/js/jsxc/lib/emojione/assets/svg/2734.svg
index bd7ac59..c8f50ed 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2734.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2734.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42464c" d="M38.22 34.576 64 32 38.22 29.422 54.628 9.372 34.577 25.777 32 0 29.422 25.777 9.372 9.372 25.777 29.422 0 32 25.777 34.576 9.372 54.628 29.422 38.22 32 64 34.577 38.22 54.628 54.628z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42464c" d="m38.2 34.6l25.8-2.6-25.8-2.6 16.4-20-20 16.4-2.6-25.8-2.6 25.8-20-16.4 16.4 20-25.8 2.6 25.8 2.6-16.4 20 20-16.4 2.6 25.8 2.6-25.8 20 16.4z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2744.svg b/build/js/jsxc/lib/emojione/assets/svg/2744.svg
index 55c7798..1458183 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2744.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2744.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#42ade2" d="m60.825 30.826c-.934 0-1.867 0-2.801 0-1.75 0-3.5 0-5.25 0 .604-.605 1.209-1.211 1.814-1.816.998-.998 1.996-1.996 2.994-2.992.453-.453.453-1.209 0-1.662s-1.209-.453-1.662 0c-1.273 1.273-2.547 2.547-3.82 3.82-.883.883-1.767 1.766-2.65 2.65-2.973 0-5.945 0-8.918 0-1.898 0-3.797 0-5.695 0 .658-.66 1.317-1.318 1.977-1.977 1.818-1.818 3.636-3.637 5.453-5.455.97-.969 1.939-1.939 2.909-2.908 1.638 0 3.274 0 4.911 0 1.411 0 2.822 0 4.234 0 .641 0 1.175-.535 1.175-1.176s-.534-1.174-1.175-1.174c-1.802 0-3.603 0-5.404 0-.463 0-.928 0-1.391 0 1.051-1.053 2.104-2.105 3.156-3.156.713-.715 1.428-1.43 2.142-2.143.13-.131.259-.26.389-.389.453-.453.453-1.209 0-1.662-.452-.453-1.208-.453-1.661 0-.34.34-.679.68-1.019 1.018-.927.928-1.854 1.855-2.781 2.781-.629.631-1.259 1.26-1.888 1.889 0-.854 0-1.707 0-2.561 0-1.412 0-2.824 0-4.234 0-.641-.535-1.176-1.175-1.176-.641 0-1.175.535-1.175 1.176 0 1.801 0 3.602 0 5.402 0 1.248 0 2.496 0 3.742-1.659 1.658-3.317 3.318-4.977 4.977-1.787 1.787-3.575 3.576-5.363 5.363 0-.014 0-.027 0-.041 0-3.668 0-7.334 0-11 0-1.189 0-2.381 0-3.572 1.159-1.158 2.318-2.316 3.477-3.477.998-.998 1.996-1.994 2.994-2.992.453-.453.453-1.209 0-1.662s-1.209-.453-1.662 0c-1.273 1.273-2.547 2.547-3.82 3.82-.33.33-.658.658-.988.988 0-.686 0-1.371 0-2.055 0-1.754 0-3.508 0-5.262 0-.244 0-.49 0-.734 0-.639-.534-1.174-1.175-1.174s-1.175.535-1.175 1.176c0 .934 0 1.867 0 2.801 0 1.75 0 3.5 0 5.25-.605-.605-1.21-1.211-1.815-1.814-.997-.998-1.995-1.996-2.993-2.994-.453-.453-1.209-.453-1.662 0s-.453 1.209 0 1.662c1.273 1.273 2.547 2.547 3.82 3.82.884.883 1.768 1.766 2.65 2.648 0 2.975 0 5.947 0 8.92 0 1.898 0 3.797 0 5.695-.659-.658-1.318-1.318-1.977-1.977-1.818-1.818-3.637-3.637-5.454-5.453-.97-.971-1.939-1.939-2.909-2.91 0-1.637 0-3.273 0-4.91 0-1.412 0-2.824 0-4.234 0-.641-.534-1.176-1.175-1.176-.64 0-1.175.535-1.175 1.176 0 1.801 0 3.602 0 5.402 0 .465 0 .928 0 1.393-1.052-1.053-2.104-2.104-3.156-3.156-.714-.715-1.428-1.428-2.143-2.143-.129-.129-.259-.26-.389-.389-.453-.453-1.209-.453-1.662 0s-.453 1.209 0 1.662c.339.34.679.678 1.018 1.018.927.928 1.854 1.854 2.781 2.781.629.629 1.259 1.26 1.888 1.889-.854 0-1.708 0-2.561 0-1.412 0-2.823 0-4.234 0-.641 0-1.175.533-1.175 1.174s.535 1.176 1.175 1.176c1.801 0 3.602 0 5.403 0 1.247 0 2.494 0 3.742 0 1.658 1.658 3.317 3.316 4.976 4.977 1.788 1.787 3.576 3.574 5.363 5.363-.014 0-.027 0-.041 0-3.667 0-7.334 0-11 0-1.19 0-2.381 0-3.572 0-1.159-1.16-2.318-2.318-3.477-3.477-.998-.998-1.996-1.996-2.994-2.994-.453-.453-1.209-.453-1.662 0s-.453 1.209 0 1.662c1.273 1.273 2.547 2.547 3.821 3.82.329.328.659.658.988.988-.685 0-1.37 0-2.056 0-1.753 0-3.507 0-5.261 0-.245 0-.489 0-.734 0-.637 0-1.172.533-1.172 1.174s.535 1.176 1.175 1.176c.934 0 1.868 0 2.802 0 1.75 0 3.5 0 5.25 0-.605.605-1.21 1.209-1.815 1.814-.998.998-1.996 1.996-2.994 2.994-.453.453-.453 1.209 0 1.662.453.451 1.208.451 1.662 0 1.273-1.273 2.547-2.547 3.821-3.822.883-.883 1.766-1.766 2.649-2.648 2.973 0 5.946 0 8.918 0 1.898 0 3.797 0 5.695 0-.658.658-1.317 1.318-1.977 1.977-1.818 1.818-3.636 3.635-5.453 5.453-.971.971-1.939 1.939-2.909 2.91-1.637 0-3.274 0-4.911 0-1.412 0-2.823 0-4.234 0-.641 0-1.175.533-1.175 1.174s.535 1.176 1.175 1.176c1.801 0 3.602 0 5.403 0 .464 0 .928 0 1.392 0-1.052 1.051-2.104 2.104-3.156 3.156-.714.713-1.428 1.428-2.142 2.143-.13.129-.259.258-.389.389-.453.451-.453 1.209 0 1.66.453.453 1.209.453 1.662 0 .339-.338.679-.678 1.018-1.018.927-.928 1.854-1.854 2.781-2.781.629-.629 1.259-1.258 1.888-1.889 0 .855 0 1.709 0 2.563 0 1.41 0 2.822 0 4.234 0 .639.535 1.174 1.175 1.174.641 0 1.175-.535 1.175-1.174 0-1.803 0-3.604 0-5.404 0-1.248 0-2.494 0-3.742 1.659-1.658 3.317-3.316 4.977-4.975 1.787-1.789 3.575-3.576 5.363-5.363 0 .014 0 .027 0 .041 0 3.666 0 7.334 0 11 0 1.191 0 2.381 0 3.572-1.159 1.158-2.318 2.318-3.477 3.477-.998.998-1.996 1.996-2.994 2.994-.453.453-.453 1.209 0 1.662.453.451 1.209.451 1.662 0 1.273-1.273 2.547-2.549 3.82-3.822.33-.328.658-.658.988-.988 0 .686 0 1.371 0 2.057 0 1.754 0 3.508 0 5.262 0 .244 0 .488 0 .734 0 .639.534 1.172 1.175 1.172s1.175-.533 1.175-1.174c0-.934 0-1.869 0-2.803 0-1.75 0-3.5 0-5.25.605.605 1.21 1.211 1.815 1.816.997.998 1.995 1.996 2.993 2.994.453.451 1.209.451 1.662 0 .453-.453.453-1.209 0-1.662-1.273-1.273-2.547-2.547-3.82-3.82-.884-.885-1.768-1.768-2.65-2.65 0-2.973 0-5.945 0-8.918 0-1.898 0-3.797 0-5.695.659.658 1.318 1.316 1.977 1.977 1.818 1.816 3.637 3.635 5.454 5.453.97.969 1.939 1.939 2.909 2.908 0 1.639 0 3.275 0 4.912 0 1.41 0 2.822 0 4.234 0 .639.534 1.174 1.175 1.174.64 0 1.175-.535 1.175-1.174 0-1.803 0-3.604 0-5.404 0-.465 0-.928 0-1.393 1.053 1.053 2.104 2.105 3.156 3.156.714.715 1.428 1.43 2.143 2.143.129.131.259.26.389.389.453.453 1.209.453 1.661 0 .453-.451.453-1.209 0-1.66-.339-.34-.679-.68-1.018-1.02-.927-.926-1.854-1.854-2.782-2.781-.629-.629-1.258-1.258-1.887-1.887.854 0 1.707 0 2.561 0 1.411 0 2.822 0 4.234 0 .641 0 1.175-.535 1.175-1.176s-.534-1.174-1.175-1.174c-1.802 0-3.603 0-5.404 0-1.246 0-2.494 0-3.741 0-1.659-1.66-3.317-3.318-4.976-4.977-1.788-1.787-3.576-3.576-5.363-5.363.014 0 .027 0 .041 0 3.667 0 7.334 0 11 0 1.19 0 2.382 0 3.571 0 1.159 1.158 2.318 2.318 3.477 3.477.998.998 1.996 1.996 2.994 2.994.453.451 1.209.451 1.662 0 .453-.453.453-1.209 0-1.662-1.273-1.273-2.547-2.547-3.821-3.82-.329-.33-.658-.66-.987-.988.685 0 1.37 0 2.055 0 1.754 0 3.508 0 5.262 0 .244 0 .489 0 .734 0 .639 0 1.173-.535 1.173-1.176s-.534-1.174-1.175-1.174"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.5 30.5h-6.9l4.2-4.2c.6-.6.6-1.5 0-2.1s-1.5-.6-2.1 0l-6.3 6.3h-4.7l2.5-2.5c.6-.6.6-1.5 0-2.1s-1.5-.6-2.1 0l-4.6 4.6h-4.8l9-9h8.9c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5h-5.9l5.5-5.5c.6-.6.6-1.5 0-2.1s-1.5-.6-2.1 0l-5.5 5.5v-5.9c-.1-.9-.7-1.5-1.6-1.5s-1.5.7-1.5 1.5v8.9l-9 9v-4.8l4.6-4.6c.6-.6.6-1.5 0-2.1s-1.5-.6-2.1 0l-2.5 2.5v-4.7l6.3-6.3c.6-.6.6-1.5 0-2.1s-1.5-.6-2.1 0l-4.2 4.2v-7c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5v6.9l-4.2-4.2c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l6.3 6.3v4.7l-2.5-2.5c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l4.6 4.6v4.8l-9-9v-8.9c0-.8-.7-1.4-1.5-1.4s-1.5.7-1.5 1.5v5.9l-5.5-5.5c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l5.5 5.5h-5.9c-.9 0-1.5.6-1.5 1.5s.7 1.5 1.5 1.5h8.9l9 9h-4.8l-4.6-4.6c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l2.5 2.5h-4.7l-6.3-6.3c-.6-.6-1.5-.6-2.1 0s-.6 1.5 0 2.1l4.2 4.2h-7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h6.9l-4.2 4.2c-.6.6-.6 1.5 0 2.1.3.3.7.4 1.1.4s.8-.1 1.1-.4l6.3-6.3h4.7l-2.6 2.5c-.6.6-.6 1.5 0 2.1.3.3.7.4 1.1.4s.8-.1 1.1-.4l4.6-4.6h4.8l-9 9h-8.9c-.9 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5h5.9l-5.5 5.5c-.6.6-.6 1.5 0 2.1.3.3.7.4 1.1.4s.8-.1 1.1-.4l5.5-5.5v5.9c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5v-8.9l9-9v4.8l-4.7 4.6c-.6.6-.6 1.5 0 2.1.3.3.7.4 1.1.4s.8-.1 1.1-.4l2.5-2.5v4.7l-6.3 6.3c-.6.6-.6 1.5 0 2.1.3.3.7.4 1.1.4s.8-.1 1.1-.4l4.2-4.2v6.9c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5v-6.9l4.2 4.2c.3.3.7.4 1.1.4s.8-.1 1.1-.4c.6-.6.6-1.5 0-2.1l-6.3-6.3v-4.7l2.5 2.5c.3.3.7.4 1.1.4s.8-.1 1.1-.4c.6-.6.6-1.5 0-2.1l-4.6-4.6v-4.8l9 9v8.9c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5v-5.9l5.5 5.5c.3.3.7.4 1.1.4s.8-.1 1.1-.4c.6-.6.6-1.5 0-2.1l-5.5-5.5h5.9c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5h-8.9l-9-9h4.8l4.6 4.6c.3.3.7.4 1.1.4s.8-.1 1.1-.4c.6-.6.6-1.5 0-2.1l-2.5-2.5h4.7l6.3 6.3c.3.3.7.4 1.1.4s.8-.1 1.1-.4c.6-.6.6-1.5 0-2.1l-4.2-4.2h6.9c.8 0 1.5-.7 1.5-1.5s-1.3-1.5-2.1-1.5" fill="#75d6ff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2747.svg b/build/js/jsxc/lib/emojione/assets/svg/2747.svg
index d3d540d..9c179d6 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2747.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2747.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m28.671 25.599c1.01-.393 2.135-.614 3.329-.614 1.193 0 2.319.222 3.329.615.512-6.581 1.312-17.15 1.469-21.696.076-2.157-2.149-3.904-4.799-3.904-2.648 0-4.873 1.746-4.797 3.903.161 4.544.957 15.12 1.469 21.696"/><path d="m24.979 32c.001-1.192.225-2.32.621-3.328-6.58-.519-17.15-1.313-21.698-1.471-2.155-.074-3.902 2.149-3.902 4.799-.001 2.65 1.747 4.873 3.902 4.799 4.548-.161 15.12-.958 21.699-1.471-.399-1.01-.621-2.136-.622-3.328"/><path d="m10.231 7.407l-2.826 2.825 16.856 16.854c.83-1.035 1.785-1.992 2.825-2.825l-16.855-16.854"/><path d="m39.742 36.912c-.833 1.033-1.79 1.999-2.83 2.827l16.856 16.855 2.825-2.825-16.851-16.857"/><path d="m60.1 27.2c-4.543.158-15.12.952-21.697 1.471.398 1.01.619 2.136.619 3.328 0 1.191-.223 2.32-.619 3.328 6.582.513 17.15 1.31 21.697 1.471 2.156.074 3.903-2.149 3.903-4.799.001-2.65-1.747-4.873-3.903-4.799"/><path d="m35.33 38.4c-1.01.396-2.135.618-3.327.618s-2.32-.222-3.328-.618c-.513 6.581-1.309 17.15-1.47 21.696-.076 2.154 2.149 3.904 4.799 3.904 2.648 0 4.873-1.75 4.797-3.903-.157-4.547-.957-15.12-1.471-21.697"/><path d="m39.741 27.09l16.854-16.856-2.826-2.826-16.856 16.854c1.041.834 1.994 1.792 2.828 2.828"/><path d="m24.26 36.912l-16.856 16.856 2.826 2.826 16.856-16.855c-1.035-.828-2-1.796-2.826-2.827"/><circle cx="31.999" cy="32" r="4.8"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#c28fef"><path d="m32 25.4c1.1 0 4.4-15.5 4.5-19.8.1-2-2-3.7-4.5-3.7-2.5 0-4.6 1.6-4.5 3.7.2 4.3 3.4 19.8 4.5 19.8"/><path d="m25.4 32c0-1.1-15.5-4.4-19.8-4.5-2-.1-3.7 2-3.7 4.5 0 2.5 1.6 4.6 3.7 4.5 4.3-.2 19.8-3.4 19.8-4.5"/><path d="m27.4 24.7l-17.1-14.4 14.5 17.1c.7-1 1.6-1.9 2.6-2.7"/><path d="m36.6 39.3l17.1 14.5-14.4-17.2c-.8 1-1.7 1.9-2.7 2.7"/><path d="m58.3 27.5c-4.3.1-19.8 3.4-19.8 4.5 0 1.1 15.5 4.3 19.8 4.5 2 .1 3.7-2 3.7-4.5 0-2.5-1.6-4.6-3.7-4.5"/><path d="m32 38.6c-1.1 0-4.3 15.5-4.5 19.8-.1 2 2 3.7 4.5 3.7s4.6-1.6 4.5-3.7c-.1-4.3-3.4-19.8-4.5-19.8"/><path d="m39.3 27.4l14.5-17.1-17.2 14.4c1 .8 1.9 1.7 2.7 2.7"/><path d="m24.7 36.6l-14.4 17.1 17.1-14.5c-1-.7-1.9-1.6-2.7-2.6"/><circle cx="32" cy="32" r="4.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/274c.svg b/build/js/jsxc/lib/emojione/assets/svg/274c.svg
index 3c194e1..5f60701 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/274c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/274c.svg
@@ -1,4 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M42.434,32l18.653-18.653c1.217-1.218,1.217-3.209,0-4.427L55.08,2.913c-1.218-1.218-3.209-1.218-4.427,0
- L32,21.566L13.347,2.913c-1.218-1.218-3.21-1.218-4.428,0L2.913,8.92c-1.218,1.218-1.218,3.209,0,4.427L21.566,32L2.913,50.654
- c-1.218,1.217-1.218,3.208,0,4.426l6.006,6.007c1.218,1.218,3.21,1.218,4.428,0L32,42.434l18.653,18.653
- c1.218,1.218,3.209,1.218,4.427,0l6.007-6.007c1.217-1.218,1.217-3.209,0-4.426L42.434,32z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ff5a79" d="M62 10.6 53.4 2 32 23.4 10.6 2 2 10.6 23.4 32 2 53.4 10.6 62 32 40.6 53.4 62 62 53.4 40.6 32z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/274e.svg b/build/js/jsxc/lib/emojione/assets/svg/274e.svg
index d00473a..b65d3ec 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/274e.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/274e.svg
@@ -1,2 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="M62,52c0,5.523-4.477,10-10,10H12C6.477,62,2,57.523,2,52V12C2,6.477,6.477,2,12,2h40
- c5.523,0,10,4.477,10,10V52z"/><path fill="#fff" d="M49.999 21.2 42.8 14 31.999 24.8 21.2 14 13.999 21.2 24.8 32 13.999 42.8 21.2 50 31.999 39.2 42.8 50 49.999 42.8 39.2 32z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,52c0,5.5-4.5,10-10,10H12C6.5,62,2,57.5,2,52V12C2,6.5,6.5,2,12,2h40c5.5,0,10,4.5,10,10V52z" fill="#ff5a79"/><path fill="#fff" d="M50 21.2 42.8 14 32 24.8 21.2 14 14 21.2 24.8 32 14 42.8 21.2 50 32 39.2 42.8 50 50 42.8 39.2 32z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2753.svg b/build/js/jsxc/lib/emojione/assets/svg/2753.svg
index 8f85fae..d4b28c8 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2753.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2753.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><ellipse cx="28.2" cy="55.809" rx="8.128" ry="8.191"/><path d="m47.33 6.436c-4.215-4.271-9.375-6.436-15.334-6.436-6.01 0-11.17 2.14-15.324 6.35-4.213 4.213-6.35 9.369-6.35 15.324 0 1.196.971 2.167 2.168 2.167h9.753c1.197 0 2.167-.971 2.167-2.167 0-2.072.722-3.822 2.185-5.326 1.521-1.521 3.288-2.26 5.401-2.26 2.062 0 3.804.739 5.324 2.26 1.521 1.522 2.262 3.264 2.262 5.326 0 2.113-.74 3.879-2.238 5.38-1.525 1.483-3.275 2.205-5.347 2.205h-9.753c-1.197 0-2.168.971-2.168 2.168v9.753c0 1.196.971 2.167 2.168 2.167h9.752c5.955 0 11.09-2.11 15.238-6.263 4.27-4.216 6.436-9.4 6.436-15.41 0-5.96-2.141-11.09-6.34-15.238"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m30.2 2.1c-11.6.7-17.7 7.3-18.2 19.2h11.7c.1-4.1 2.5-7.2 6.7-7.7 4.2-.4 8.2.6 9.4 3.4 1.3 3.1-1.6 6.7-3 8.2-2.6 2.8-6.8 4.9-9 7.9-2.1 3-2.5 6.9-2.7 11.7h10.3c.1-3.1.3-6 1.7-7.9 2.3-3.1 5.7-4.5 8.5-7 2.7-2.3 5.6-5.1 6-9.5 1.7-12.9-8.9-19.1-21.4-18.3"/><ellipse cx="30.5" cy="55.6" rx="6.5" ry="6.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2754.svg b/build/js/jsxc/lib/emojione/assets/svg/2754.svg
index 71f00a4..d04a83c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2754.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2754.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><ellipse cx="28.2" cy="55.862" rx="8.093" ry="8.154"/><path d="m47.33 6.487c-4.215-4.269-9.375-6.435-15.334-6.435-6.01 0-11.17 2.141-15.324 6.35-4.213 4.213-6.35 9.369-6.35 15.324 0 1.197.971 2.168 2.168 2.168h9.753c1.197 0 2.167-.971 2.167-2.168 0-2.072.722-3.822 2.185-5.326 1.521-1.52 3.288-2.26 5.401-2.26 2.062 0 3.804.74 5.324 2.26 1.521 1.523 2.262 3.264 2.262 5.326 0 2.113-.74 3.879-2.238 5.381-1.525 1.482-3.275 2.205-5.347 2.205h-9.753c-1.197 0-2.168.971-2.168 2.168v9.752c0 1.197.971 2.168 2.168 2.168h9.752c5.955 0 11.09-2.111 15.238-6.264 4.27-4.215 6.436-9.4 6.436-15.41 0-5.959-2.141-11.09-6.34-15.239"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#a6aeb0"><path d="m30.2 2.1c-11.6.7-17.7 7.3-18.2 19.2h11.7c.1-4.1 2.5-7.2 6.7-7.7 4.2-.4 8.2.6 9.4 3.4 1.3 3.1-1.6 6.7-3 8.2-2.6 2.8-6.8 4.9-9 7.9-2.1 3-2.5 6.9-2.7 11.7h10.3c.1-3.1.3-6 1.7-7.9 2.3-3.1 5.7-4.5 8.5-7 2.7-2.3 5.6-5.1 6-9.5 1.7-12.9-8.9-19.1-21.4-18.3"/><ellipse cx="30.5" cy="55.6" rx="6.5" ry="6.4"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2755.svg b/build/js/jsxc/lib/emojione/assets/svg/2755.svg
index a7e2c74..714e210 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2755.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2755.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m24.535 9.736l4.89 33.17c.489 3.307 4.66 3.307 5.149 0l4.89-33.17c.897-12.935-15.827-12.935-14.929 0"/><ellipse cx="32" cy="56.48" rx="7.5" ry="7.557"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#a6aeb0"><path d="m37 42.4h-10l-4-40.4h18z"/><ellipse cx="32" cy="54.4" rx="7.7" ry="7.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2757.svg b/build/js/jsxc/lib/emojione/assets/svg/2757.svg
index 6b40435..d064e7e 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2757.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2757.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ed4c5c"><path d="m24.535 9.702l4.89 33.17c.489 3.309 4.66 3.309 5.149 0l4.89-33.17c.897-12.936-15.827-12.936-14.929 0"/><ellipse cx="32" cy="56.44" rx="7.5" ry="7.559"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><path d="m37 42.4h-10l-4-40.4h18z"/><ellipse cx="32" cy="54.4" rx="7.7" ry="7.6"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2763.svg b/build/js/jsxc/lib/emojione/assets/svg/2763.svg
index 80cbc78..df6ebed 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2763.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2763.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#f46767"><circle cx="32" cy="52" r="10"/><path d="M57.411,11.809C52.925-2.703,34.297,1.155,32,8.862c-2.295-7.707-20.924-11.565-25.41,2.946
- C4.638,18.123,7.722,24,13.038,27.715C20.152,32.687,28.542,32.707,32,42c3.458-9.293,11.849-9.313,18.963-14.285
- C56.279,24,59.362,18.123,57.411,11.809z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#ff5a79"><circle cx="32" cy="52" r="10"/><path d="m57.4 11.8c-4.5-14.5-23.1-10.6-25.4-2.9-2.3-7.7-20.9-11.6-25.4 2.9-2 6.3 1.1 12.2 6.4 15.9 7.1 5 15.5 5 19 14.3 3.5-9.3 11.8-9.3 19-14.3 5.3-3.7 8.4-9.6 6.4-15.9"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2764.svg b/build/js/jsxc/lib/emojione/assets/svg/2764.svg
index 8682fcc..12c6742 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2764.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2764.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#f46767" d="m61.07 18.16c-6.395-16.918-27.15-9.328-29.07-.879-2.64-9-22.89-15.721-29.07.891-6.881 18.502 26.67 35.11 29.07 37.828 2.397-2.162 35.952-19.639 29.07-37.84"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2795.svg b/build/js/jsxc/lib/emojione/assets/svg/2795.svg
index 48f3229..c572fec 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2795.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2795.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m54.5 24.5h-15v-15c0-4.125-3.375-7.5-7.5-7.5-4.125 0-7.5 3.375-7.5 7.5v15h-15c-4.125 0-7.5 3.375-7.5 7.5s3.375 7.5 7.5 7.5h15v15c0 4.125 3.375 7.5 7.5 7.5 4.125 0 7.5-3.375 7.5-7.5v-15h15c4.126 0 7.5-3.375 7.5-7.5s-3.374-7.5-7.5-7.5"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4d5357" d="m38 26v-24h-12v24h-24v12h24v24h12v-24h24v-12z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2796.svg b/build/js/jsxc/lib/emojione/assets/svg/2796.svg
index 672d312..844614d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2796.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2796.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="M54.5,24h-45C5.374,24,2,27.375,2,31.5S5.374,39,9.5,39h45c4.125,0,7.5-3.375,7.5-7.5S58.625,24,54.5,24z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#4d5357" d="m2 26h60v12h-60z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2797.svg b/build/js/jsxc/lib/emojione/assets/svg/2797.svg
index ee63fa8..8b3945c 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2797.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2797.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#94989b"><path d="m54.5 24.5h-45c-4.125 0-7.5 3.375-7.5 7.5s3.375 7.5 7.5 7.5h45c4.126 0 7.5-3.375 7.5-7.5s-3.374-7.5-7.5-7.5"/><circle cx="32" cy="9.5" r="7.5"/><circle cx="32" cy="54.5" r="7.5"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><g fill="#4d5357"><path d="m2 26h60v12h-60z"/><circle cx="32" cy="9.5" r="7.5"/><circle cx="32" cy="54.5" r="7.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/27a1.svg b/build/js/jsxc/lib/emojione/assets/svg/27a1.svg
index 913fa84..125d7d4 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/27a1.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/27a1.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m33.693 16l15.307 16-15.307 16v-10.572h-18.693v-10.288h18.693z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m33.7 16l15.3 16-15.3 16v-10.6h-18.7v-10.3h18.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/27b0.svg b/build/js/jsxc/lib/emojione/assets/svg/27b0.svg
index 733ef1a..5bf1eac 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/27b0.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/27b0.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="none" stroke="#94989b" stroke-width="10" stroke-miterlimit="10" d="m0 7.228c32 0 54.19 17.927 51.17 36.13-3.063 18.492-35.28 18.492-38.34 0-3.02-18.204 19.17-36.13 51.17-36.13"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m62 4c-11 0-21.4 2.2-30 6.1-8.6-3.9-19-6.1-30-6.1v9.3c7 0 13.8 1 19.8 2.9-2.1 1.7-4.1 3.5-5.8 5.5-5.5 6.5-7.9 14.1-6.6 21.4 1.9 11.7 12.7 16.9 22.6 16.9s20.7-5.2 22.6-16.8c1.2-7.3-1.1-15-6.6-21.4-1.7-2-3.6-3.8-5.8-5.5 6-1.9 12.8-2.9 19.8-2.9v-9.4m-16.7 37.6c-1 6.2-7.5 9-13.3 9s-12.3-2.8-13.4-9c-1-5.9 1.9-10.8 4.6-13.9 2.3-2.7 5.3-5.1 8.8-7.1 3.5 2 6.5 4.4 8.8 7.1 2.6 3.1 5.5 8 4.5 13.9" fill="#4d5357"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/27bf.svg b/build/js/jsxc/lib/emojione/assets/svg/27bf.svg
index bea7873..83d211d 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/27bf.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/27bf.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m58.04 21.69c1.741-.19 3.729-.322 5.958-.334v-5.21c-6.476.036-11.188.977-13.836 1.689-5.812-1.88-11.89-2.835-18.12-2.835-6.363 0-12.557.989-18.471 2.942-2.931-.662-8.01-1.605-13.568-1.721v5.084c2.093.052 4.125.23 5.982.467-3.563 2.795-5.854 7.124-5.854 11.975 0 8.41 6.878 15.253 15.327 15.253 8.456 0 15.334-6.843 15.334-15.254 0-5.417-2.857-10.18-7.149-12.888 2.756-.43 5.557-.648 8.399-.648 2.854 0 5.669.222 8.438.657-4.283 2.706-7.134 7.468-7.134 12.879 0 8.411 6.875 15.254 15.33 15.254 8.449 0 15.327-6.843 15.327-15.254 0-4.9-2.336-9.264-5.958-12.06m-32.366 12.06c0 5.607-4.583 10.169-10.221 10.169-5.631 0-10.217-4.562-10.217-10.169 0-5.606 4.586-10.166 10.217-10.166 5.638 0 10.221 4.56 10.221 10.166m22.997 10.169c-5.637 0-10.221-4.562-10.221-10.169 0-5.606 4.584-10.166 10.221-10.166 5.631 0 10.217 4.56 10.217 10.166 0 5.608-4.586 10.169-10.217 10.169"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m56.4 22.3c1.6-.2 3.5-.3 5.6-.3v-4.9c-6.1 0-10.5.9-13 1.6-5.4-1.8-11.1-2.7-17-2.7-6 0-11.8.9-17.3 2.8-2.7-.7-7.5-1.5-12.7-1.7v4.8c2 0 3.9.2 5.6.4-3.3 2.7-5.5 6.8-5.5 11.3 0 8 6.5 14.4 14.4 14.4s14.4-6.4 14.4-14.4c0-5.1-2.7-9.6-6.7-12.1 2.6-.4 5.2-.6 7.9-.6s5.3.2 7.9.6c-4 2.5-6.7 7-6.7 12.1 0 7.9 6.4 14.4 14.4 14.4 7.9 0 14.3-6.4 14.3-14.4 0-4.6-2.2-8.7-5.6-11.3m-30.3 11.3c0 5.3-4.3 9.6-9.6 9.6s-9.6-4.3-9.6-9.6 4.3-9.6 9.6-9.6c5.3.1 9.6 4.4 9.6 9.6m21.5 9.6c-5.3 0-9.6-4.3-9.6-9.6s4.3-9.6 9.6-9.6 9.6 4.3 9.6 9.6c0 5.3-4.3 9.6-9.6 9.6" fill="#4fd1d9"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2934.svg b/build/js/jsxc/lib/emojione/assets/svg/2934.svg
index a47935d..2d7a211 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2934.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2934.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m40.4 19.507v21.19c0 6.782-5.623 12.3-12.537 12.3-3.349 0-6.497-1.279-8.865-3.601l5.065-4.971c1.015.995 2.366 1.542 3.8 1.542 2.963 0 5.373-2.364 5.373-5.271v-21.19h-4.596l8.179-8.507 8.179 8.507h-4.598"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m40.4 19.5v21.2c0 6.8-5.6 12.3-12.5 12.3-3.3 0-6.5-1.3-8.9-3.6l5.1-5c1 1 2.4 1.5 3.8 1.5 3 0 5.4-2.4 5.4-5.3v-21.1h-4.6l8.2-8.5 8.2 8.5h-4.7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2935.svg b/build/js/jsxc/lib/emojione/assets/svg/2935.svg
index 2f2332d..00a8a92 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2935.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2935.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m40.4 45.09v-22.2c0-7.106-5.623-12.885-12.537-12.885-3.349 0-6.497 1.34-8.865 3.771l5.065 5.208c1.015-1.043 2.366-1.617 3.8-1.617 2.963 0 5.373 2.478 5.373 5.522v22.2h-4.596l8.179 8.913 8.179-8.912h-4.598"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path d="m40.4 45.1v-22.2c0-7.1-5.6-12.9-12.5-12.9-3.3 0-6.5 1.3-8.9 3.8l5.1 5.2c1-1 2.4-1.6 3.8-1.6 3 0 5.4 2.5 5.4 5.5v22.2h-4.6l8.2 8.9 8.2-8.9h-4.7" fill="#fff"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b05.svg b/build/js/jsxc/lib/emojione/assets/svg/2b05.svg
index 4faa9b8..9583aec 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b05.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b05.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m30.31 48l-15.31-16 15.31-16v10.572h18.69v10.285h-18.69z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m30.3 16l-15.3 16 15.3 16v-10.6h18.7v-10.3h-18.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b06.svg b/build/js/jsxc/lib/emojione/assets/svg/2b06.svg
index 7cee005..efa3322 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b06.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b06.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m16 30.31l16-15.31 16 15.31h-10.572v18.69h-10.288v-18.69z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m48 30.3l-16-15.3-16 15.3h10.6v18.7h10.3v-18.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b07.svg b/build/js/jsxc/lib/emojione/assets/svg/2b07.svg
index aaec62d..bbd2213 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b07.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b07.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#42ade2" cx="32" cy="32" r="30"/><path fill="#fff" d="m48 33.693l-16 15.307-16-15.307h10.572v-18.693h10.285v18.693z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#4fd1d9"/><path fill="#fff" d="m16 33.7l16 15.3 16-15.3h-10.6v-18.7h-10.3v18.7z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b1b.svg b/build/js/jsxc/lib/emojione/assets/svg/2b1b.svg
index 6345353..b908105 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b1b.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b1b.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="M64,56c0,4.4-3.6,8-8,8H8c-4.4,0-8-3.6-8-8V8c0-4.4,3.6-8,8-8h48c4.4,0,8,3.6,8,8V56z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#333" d="m2 2h60v60h-60z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b1c.svg b/build/js/jsxc/lib/emojione/assets/svg/2b1c.svg
index 552e6c8..a58c77b 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b1c.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b1c.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="M64,56c0,4.4-3.6,8-8,8H8c-4.4,0-8-3.6-8-8V8c0-4.4,3.6-8,8-8h48c4.4,0,8,3.6,8,8V56z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#d0d0d0" d="m2 2h60v60h-60z"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b50.svg b/build/js/jsxc/lib/emojione/assets/svg/2b50.svg
index b4030dd..487bf32 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b50.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b50.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffce31" d="M32 3 39.08 25.15 62 25.15 43.46 38.848 50.54 61 32 47.31 13.459 61 20.541 38.848 2 25.15 24.918 25.15z"/><path fill="#fff" d="m32 13.957l4.722 14.515h15.278l-12.36 8.971 4.72 14.514-12.36-8.971-12.36 8.971 4.721-14.514-12.361-8.971h15.28z"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M62,25.2H39.1L32,3l-7.1,22.2H2l18.5,13.7l-7,22.1L32,47.3L50.5,61l-7.1-22.2L62,25.2z" fill="#ffce31"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/2b55.svg b/build/js/jsxc/lib/emojione/assets/svg/2b55.svg
index 215401b..4626506 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/2b55.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/2b55.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ed4c5c" d="m32 2c-16.568 0-30 13.432-30 30s13.432 30 30 30c16.568 0 30-13.432 30-30s-13.432-30-30-30m0 51c-11.599 0-21-9.401-21-21 0-11.597 9.402-21 21-21 11.597 0 21 9.403 21 21 0 11.599-9.402 21-21 21"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m32 2c-16.6 0-30 13.4-30 30s13.4 30 30 30 30-13.4 30-30-13.4-30-30-30m0 51c-11.6 0-21-9.4-21-21s9.4-21 21-21 21 9.4 21 21-9.4 21-21 21" fill="#ff5a79"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/3030.svg b/build/js/jsxc/lib/emojione/assets/svg/3030.svg
index 3318c2e..ce6c005 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/3030.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/3030.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#94989b" d="m48 42c-5.967 0-10.821-4.669-10.821-10.404 0-2.747-2.321-4.98-5.179-4.98s-5.179 2.233-5.179 4.98c0 5.735-4.854 10.404-10.821 10.404s-10.821-4.669-10.821-10.404c0-1.412-.629-2.766-1.724-3.709-.949-.823-2.178-1.272-3.455-1.272v-4.615c2.463 0 4.828.871 6.661 2.449 2.106 1.819 3.319 4.423 3.319 7.146 0 3.191 2.699 5.787 6.02 5.787s6.02-2.596 6.02-5.787c0-5.29 4.478-9.595 9.98-9.595s9.98 4.305 9.98 9.596c0 3.191 2.699 5.787 6.02 5.787s6.02-2.596 6.02-5.787c0-2.724 1.213-5.327 3.32-7.146 1.832-1.579 4.197-2.45 6.66-2.45v4.615c-1.277 0-2.506.449-3.453 1.271-1.096.943-1.725 2.297-1.725 3.709 0 5.736-4.855 10.405-10.822 10.405"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m47 41c-5.6 0-10.1-4.2-10.1-9.4 0-2.5-2.2-4.5-4.9-4.5s-4.9 2-4.9 4.5c0 5.2-4.6 9.4-10.1 9.4s-10.1-4.2-10.1-9.4c0-1.3-.6-2.5-1.6-3.3-.9-.7-2-1.1-3.2-1.1v-4.2c2.3 0 4.5.8 6.2 2.2 2 1.6 3.1 4 3.1 6.4 0 2.9 2.5 5.2 5.6 5.2s5.6-2.3 5.6-5.2c0-4.8 4.2-8.6 9.4-8.6s9.4 3.9 9.4 8.6c0 2.9 2.5 5.2 5.6 5.2s5.6-2.3 5.6-5.2c0-2.5 1.1-4.8 3.1-6.4 1.7-1.4 3.9-2.2 6.2-2.2v4.2c-1.2 0-2.3.4-3.2 1.1-1 .9-1.6 2.1-1.6 3.3 0 5.2-4.5 9.4-10.1 9.4" fill="#4d5357"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/303d.svg b/build/js/jsxc/lib/emojione/assets/svg/303d.svg
index a4a3a28..3b7e150 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/303d.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/303d.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path fill="#ffb031" d="m60.15 54.634c-14.06-8.682-16.969-24.09-18.702-39.23-.38-3.311-2.344-10.359-7.362-7.02-2.037 1.355-3.083 3.558-4.265 5.621-1.354 2.367-2.869 4.558-4.625 6.536-.313-5.075-.831-10.212-2.314-14.856-1.144-3.582-5.334-5.153-7.992-1.972-2.086 2.496-3.907 10.282-8.03 9.08-4.873-1.419-6.938 6.131-2.088 7.544 4.295 1.251 8.08-.104 11.04-3.358.41-.452.785-.935 1.142-1.432.522 4.406.579 8.974.851 13.188.178 2.742 3.275 5.158 5.909 3.378 4.475-3.03 7.69-6.679 10.557-10.787.101.868.196 1.736.316 2.602 2.081 15.1 8.167 29.16 21.605 37.456 4.317 2.666 8.258-4.105 3.964-6.756"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="m60.1 54.6c-14.1-8.7-17-24.1-18.7-39.2-.4-3.3-2.3-10.4-7.4-7-2 1.4-3.1 3.6-4.3 5.6-1.4 2.4-2.9 4.6-4.6 6.5-.3-5.1-.8-10.2-2.3-14.9-1.1-3.6-5.3-5.2-8-2-2.1 2.5-3.9 10.3-8 9.1-4.9-1.4-6.9 6.1-2.1 7.5 4.3 1.3 8.1-.1 11-3.4.4-.5.8-.9 1.1-1.4.5 4.4.6 9 .9 13.2.2 2.7 3.3 5.2 5.9 3.4 4.5-3 7.7-6.7 10.6-10.8.1.9.2 1.7.3 2.6 2.1 15.1 8.2 29.2 21.6 37.5 4.4 2.8 8.3-4 4-6.7" fill="#eda454"/></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/3297.svg b/build/js/jsxc/lib/emojione/assets/svg/3297.svg
index 9b064fc..c57b1ab 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/3297.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/3297.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m27.36 39.19c-.714-.967-1.918-2.469-3.18-3.865v14.172h-4.822v-12.293c-1.37 1.236-2.741 2.309-4.112 3.223-.383-1.344-1.534-3.76-2.246-4.617 3.782-2.148 7.454-5.799 9.812-9.932h-8.222v-4.564h4.823v-6.817h4.877v6.816h1.261l.876-.16 2.687 1.718c-.988 2.685-2.302 5.208-3.892 7.569 1.81 1.449 4.493 3.918 5.316 4.725l-3.178 4.02"/><path d="m47.32 39.2c-.102 4.65-.255 5.371-.868 5.371h-1.225c-.561 0-.612-.111-.612-1.439v-11.795h4.085v-16.336h-17.564v16.336h2.962c-.357 6.811-1.38 11.131-6.485 13.787.972.887 2.248 2.713 2.758 3.877 6.28-3.377 7.709-9.137 8.17-17.664h1.787v11.85c0 4.098.765 5.371 4.135 5.371h2.502c2.653 0 3.676-1.551 4.03-7.697-1.124-.278-2.859-.942-3.678-1.661m-3.266-12.459h-8.477v-7.145h8.477v7.145"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><g fill="#fff"><path d="m27.4 39.2c-.7-1-1.9-2.5-3.2-3.9v14.2h-4.8v-12.3c-1.4 1.2-2.7 2.3-4.1 3.2-.4-1.3-1.5-3.8-2.2-4.6 3.8-2.1 7.5-5.8 9.8-9.9h-8.2v-4.6h4.8v-6.8h4.9v6.8h1.3l.9-.2 2.7 1.7c-1 2.7-2.3 5.2-3.9 7.6 1.8 1.4 4.5 3.9 5.3 4.7l-3.3 4.1"/><path d="m47.3 39.2c-.1 4.7-.3 5.4-.9 5.4h-1.2c-.6 0-.6-.1-.6-1.4v-11.9h4.1v-16.3h-17.6v16.3h3c-.4 6.8-1.4 11.1-6.5 13.8 1 .9 2.2 2.7 2.8 3.9 6.3-3.4 7.7-9.1 8.2-17.7h1.8v11.9c0 4.1.8 5.4 4.1 5.4h2.5c2.7 0 3.7-1.6 4-7.7-1.1-.3-2.9-1-3.7-1.7m-3.2-12.5h-8.5v-7.1h8.5v7.1"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/assets/svg/3299.svg b/build/js/jsxc/lib/emojione/assets/svg/3299.svg
index 2edd3bc..3e75032 100644
--- a/build/js/jsxc/lib/emojione/assets/svg/3299.svg
+++ b/build/js/jsxc/lib/emojione/assets/svg/3299.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle fill="#ed4c5c" cx="32" cy="32" r="30"/><g fill="#fff"><path d="m25.842 37.545c-.318-.656-.794-1.639-1.375-2.623v15.08h-4.389v-13.492c-1.162 3-2.483 5.68-3.963 7.592-.371-1.42-1.375-3.551-2.115-4.861 1.956-2.35 3.858-6.337 5.128-10.11h-4.547v-4.589h5.497v-4.097c-1.531.272-3.01.491-4.439.655-.212-1.093-.793-2.732-1.375-3.823 4.071-.602 8.723-1.64 11.419-3l3.226 3.715c-1.323.601-2.854 1.092-4.441 1.529v5.03h3.699v4.589h-3.699v.327c.898.875 3.01 3.168 3.912 4.261.422-2.02.688-4.261.845-6.336l3.543.874c-.317 4.425-.952 9.451-2.749 12.51l-3.383-1.803c.633-1.201 1.162-2.678 1.531-4.315l-2.325 2.895"/><path d="m45.612 39.566c-.105-2.404-.846-5.736-1.85-8.797-1.745 3.88-3.807 7.322-6.239 10.326v2.459c0 1.529.159 1.748 1.217 1.748h3.172c1 0 1.216-.766 1.375-5.682.95.766 2.695 1.529 3.963 1.803-.422 6.445-1.585 8.193-4.861 8.193h-4.283c-3.331 0-4.599-.928-4.916-3.934-1.321 1.148-2.696 2.24-4.123 3.225-.688-.93-2.539-2.732-3.543-3.553 2.855-1.746 5.393-3.822 7.561-6.281v-16.769h4.439v10.598c2.802-4.808 4.76-10.489 6.081-16.936l4.651.874c-.847 3.771-1.851 7.267-3.066 10.489l1.639-.437c1.639 3.551 2.908 8.248 3.172 11.363l-4.389 1.311"/><path d="m39.11 23.18c-1.482-1.802-4.652-4.369-7.402-6.01l3.01-3.168c2.696 1.475 5.974 3.823 7.561 5.682l-3.173 3.495"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><circle cx="32" cy="32" r="30" fill="#ff5a79"/><g fill="#fff"><path d="m25.8 37.5c-.3-.7-.8-1.6-1.4-2.6v15.1h-4.4v-13.5c-1.2 3-2.5 5.7-4 7.6-.4-1.4-1.4-3.6-2.1-4.9 2-2.3 3.9-6.3 5.1-10.1h-4.5v-4.6h5.5v-4.1c-1.5.3-3 .5-4.4.7-.2-1.1-.8-2.7-1.4-3.8 4.1-.6 8.7-1.6 11.4-3l3.2 3.7c-1.3.6-2.9 1.1-4.4 1.5v5h3.7v4.6h-3.7v.3c.9.9 3 3.2 3.9 4.3.4-2 .7-4.3.8-6.3l3.5.9c-.3 4.4-1 9.5-2.7 12.5l-3.3-1.8c.6-1.2 1.2-2.7 1.5-4.3l-2.3 2.8"/><path d="m45.6 39.6c-.1-2.4-.8-5.7-1.8-8.8-1.7 3.9-3.8 7.3-6.2 10.3v2.5c0 1.5.2 1.7 1.2 1.7h3.2c1 0 1.2-.8 1.4-5.7 1 .8 2.7 1.5 4 1.8-.4 6.4-1.6 8.2-4.9 8.2h-4.3c-3.3 0-4.6-.9-4.9-3.9-1.3 1.1-2.7 2.2-4.1 3.2-.7-.9-2.5-2.7-3.5-3.6 2.9-1.7 5.4-3.8 7.6-6.3v-16.7h4.4v10.6c2.8-4.8 4.8-10.5 6.1-16.9l4.7.9c-.8 3.8-1.9 7.3-3.1 10.5l1.6-.4c1.6 3.5 2.9 8.2 3.2 11.4l-4.6 1.2"/><path d="m39.1 23.2c-1.5-1.8-4.7-4.4-7.4-6l3-3.2c2.7 1.5 6 3.8 7.6 5.7l-3.2 3.5"/></g></svg> \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/lib/js/emojione.js b/build/js/jsxc/lib/emojione/lib/js/emojione.js
index b8601e7..051bc9c 100644
--- a/build/js/jsxc/lib/emojione/lib/js/emojione.js
+++ b/build/js/jsxc/lib/emojione/lib/js/emojione.js
@@ -4,7 +4,7 @@
/* jshint -W075 */
(function(ns){
// this list must be ordered from largest length of the value array, index 0, to the shortest
- ns.emojioneList = {':kiss_ww:':["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],':couplekiss_ww:':["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],':kiss_mm:':["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],':couplekiss_mm:':["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],':family_mmbb:':["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],':family_mmgb:':["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],':family_mmgg:':["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],':family_mwbb:':["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],':family_mwgb:':["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],':family_mwgg:':["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],':family_wwbb:':["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],':family_wwgb:':["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],':family_wwgg:':["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],':couple_ww:':["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],':couple_with_heart_ww:':["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],':couple_mm:':["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],':couple_with_heart_mm:':["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],':family_mmb:':["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],':family_mmg:':["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],':family_mwg:':["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],':family_wwb:':["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],':family_wwg:':["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],':eye_in_speech_bubble:':["1f441-200d-1f5e8","1f441-1f5e8"],':hash:':["0023-fe0f-20e3","0023-20e3"],':zero:':["0030-fe0f-20e3","0030-20e3"],':one:':["0031-fe0f-20e3","0031-20e3"],':two:':["0032-fe0f-20e3","0032-20e3"],':three:':["0033-fe0f-20e3","0033-20e3"],':four:':["0034-fe0f-20e3","0034-20e3"],':five:':["0035-fe0f-20e3","0035-20e3"],':six:':["0036-fe0f-20e3","0036-20e3"],':seven:':["0037-fe0f-20e3","0037-20e3"],':eight:':["0038-fe0f-20e3","0038-20e3"],':nine:':["0039-fe0f-20e3","0039-20e3"],':asterisk:':["002a-fe0f-20e3","002a-20e3"],':keycap_asterisk:':["002a-fe0f-20e3","002a-20e3"],':metal_tone5:':["1f918-1f3ff"],':sign_of_the_horns_tone5:':["1f918-1f3ff"],':metal_tone4:':["1f918-1f3fe"],':sign_of_the_horns_tone4:':["1f918-1f3fe"],':metal_tone3:':["1f918-1f3fd"],':sign_of_the_horns_tone3:':["1f918-1f3fd"],':metal_tone2:':["1f918-1f3fc"],':sign_of_the_horns_tone2:':["1f918-1f3fc"],':metal_tone1:':["1f918-1f3fb"],':sign_of_the_horns_tone1:':["1f918-1f3fb"],':bath_tone5:':["1f6c0-1f3ff"],':bath_tone4:':["1f6c0-1f3fe"],':bath_tone3:':["1f6c0-1f3fd"],':bath_tone2:':["1f6c0-1f3fc"],':bath_tone1:':["1f6c0-1f3fb"],':walking_tone5:':["1f6b6-1f3ff"],':walking_tone4:':["1f6b6-1f3fe"],':walking_tone3:':["1f6b6-1f3fd"],':walking_tone2:':["1f6b6-1f3fc"],':walking_tone1:':["1f6b6-1f3fb"],':mountain_bicyclist_tone5:':["1f6b5-1f3ff"],':mountain_bicyclist_tone4:':["1f6b5-1f3fe"],':mountain_bicyclist_tone3:':["1f6b5-1f3fd"],':mountain_bicyclist_tone2:':["1f6b5-1f3fc"],':mountain_bicyclist_tone1:':["1f6b5-1f3fb"],':bicyclist_tone5:':["1f6b4-1f3ff"],':bicyclist_tone4:':["1f6b4-1f3fe"],':bicyclist_tone3:':["1f6b4-1f3fd"],':bicyclist_tone2:':["1f6b4-1f3fc"],':bicyclist_tone1:':["1f6b4-1f3fb"],':rowboat_tone5:':["1f6a3-1f3ff"],':rowboat_tone4:':["1f6a3-1f3fe"],':rowboat_tone3:':["1f6a3-1f3fd"],':rowboat_tone2:':["1f6a3-1f3fc"],':rowboat_tone1:':["1f6a3-1f3fb"],':pray_tone5:':["1f64f-1f3ff"],':pray_tone4:':["1f64f-1f3fe"],':pray_tone3:':["1f64f-1f3fd"],':pray_tone2:':["1f64f-1f3fc"],':pray_tone1:':["1f64f-1f3fb"],':person_with_pouting_face_tone5:':["1f64e-1f3ff"],':person_with_pouting_face_tone4:':["1f64e-1f3fe"],':person_with_pouting_face_tone3:':["1f64e-1f3fd"],':person_with_pouting_face_tone2:':["1f64e-1f3fc"],':person_with_pouting_face_tone1:':["1f64e-1f3fb"],':person_frowning_tone5:':["1f64d-1f3ff"],':person_frowning_tone4:':["1f64d-1f3fe"],':person_frowning_tone3:':["1f64d-1f3fd"],':person_frowning_tone2:':["1f64d-1f3fc"],':person_frowning_tone1:':["1f64d-1f3fb"],':raised_hands_tone5:':["1f64c-1f3ff"],':raised_hands_tone4:':["1f64c-1f3fe"],':raised_hands_tone3:':["1f64c-1f3fd"],':raised_hands_tone2:':["1f64c-1f3fc"],':raised_hands_tone1:':["1f64c-1f3fb"],':raising_hand_tone5:':["1f64b-1f3ff"],':raising_hand_tone4:':["1f64b-1f3fe"],':raising_hand_tone3:':["1f64b-1f3fd"],':raising_hand_tone2:':["1f64b-1f3fc"],':raising_hand_tone1:':["1f64b-1f3fb"],':bow_tone5:':["1f647-1f3ff"],':bow_tone4:':["1f647-1f3fe"],':bow_tone3:':["1f647-1f3fd"],':bow_tone2:':["1f647-1f3fc"],':bow_tone1:':["1f647-1f3fb"],':ok_woman_tone5:':["1f646-1f3ff"],':ok_woman_tone4:':["1f646-1f3fe"],':ok_woman_tone3:':["1f646-1f3fd"],':ok_woman_tone2:':["1f646-1f3fc"],':ok_woman_tone1:':["1f646-1f3fb"],':no_good_tone5:':["1f645-1f3ff"],':no_good_tone4:':["1f645-1f3fe"],':no_good_tone3:':["1f645-1f3fd"],':no_good_tone2:':["1f645-1f3fc"],':no_good_tone1:':["1f645-1f3fb"],':vulcan_tone5:':["1f596-1f3ff"],':raised_hand_with_part_between_middle_and_ring_fingers_tone5:':["1f596-1f3ff"],':vulcan_tone4:':["1f596-1f3fe"],':raised_hand_with_part_between_middle_and_ring_fingers_tone4:':["1f596-1f3fe"],':vulcan_tone3:':["1f596-1f3fd"],':raised_hand_with_part_between_middle_and_ring_fingers_tone3:':["1f596-1f3fd"],':vulcan_tone2:':["1f596-1f3fc"],':raised_hand_with_part_between_middle_and_ring_fingers_tone2:':["1f596-1f3fc"],':vulcan_tone1:':["1f596-1f3fb"],':raised_hand_with_part_between_middle_and_ring_fingers_tone1:':["1f596-1f3fb"],':middle_finger_tone5:':["1f595-1f3ff"],':reversed_hand_with_middle_finger_extended_tone5:':["1f595-1f3ff"],':middle_finger_tone4:':["1f595-1f3fe"],':reversed_hand_with_middle_finger_extended_tone4:':["1f595-1f3fe"],':middle_finger_tone3:':["1f595-1f3fd"],':reversed_hand_with_middle_finger_extended_tone3:':["1f595-1f3fd"],':middle_finger_tone2:':["1f595-1f3fc"],':reversed_hand_with_middle_finger_extended_tone2:':["1f595-1f3fc"],':middle_finger_tone1:':["1f595-1f3fb"],':reversed_hand_with_middle_finger_extended_tone1:':["1f595-1f3fb"],':hand_splayed_tone5:':["1f590-1f3ff"],':raised_hand_with_fingers_splayed_tone5:':["1f590-1f3ff"],':hand_splayed_tone4:':["1f590-1f3fe"],':raised_hand_with_fingers_splayed_tone4:':["1f590-1f3fe"],':hand_splayed_tone3:':["1f590-1f3fd"],':raised_hand_with_fingers_splayed_tone3:':["1f590-1f3fd"],':hand_splayed_tone2:':["1f590-1f3fc"],':raised_hand_with_fingers_splayed_tone2:':["1f590-1f3fc"],':hand_splayed_tone1:':["1f590-1f3fb"],':raised_hand_with_fingers_splayed_tone1:':["1f590-1f3fb"],':spy_tone5:':["1f575-1f3ff"],':sleuth_or_spy_tone5:':["1f575-1f3ff"],':spy_tone4:':["1f575-1f3fe"],':sleuth_or_spy_tone4:':["1f575-1f3fe"],':spy_tone3:':["1f575-1f3fd"],':sleuth_or_spy_tone3:':["1f575-1f3fd"],':spy_tone2:':["1f575-1f3fc"],':sleuth_or_spy_tone2:':["1f575-1f3fc"],':spy_tone1:':["1f575-1f3fb"],':sleuth_or_spy_tone1:':["1f575-1f3fb"],':muscle_tone5:':["1f4aa-1f3ff"],':muscle_tone4:':["1f4aa-1f3fe"],':muscle_tone3:':["1f4aa-1f3fd"],':muscle_tone2:':["1f4aa-1f3fc"],':muscle_tone1:':["1f4aa-1f3fb"],':haircut_tone5:':["1f487-1f3ff"],':haircut_tone4:':["1f487-1f3fe"],':haircut_tone3:':["1f487-1f3fd"],':haircut_tone2:':["1f487-1f3fc"],':haircut_tone1:':["1f487-1f3fb"],':massage_tone5:':["1f486-1f3ff"],':massage_tone4:':["1f486-1f3fe"],':massage_tone3:':["1f486-1f3fd"],':massage_tone2:':["1f486-1f3fc"],':massage_tone1:':["1f486-1f3fb"],':nail_care_tone5:':["1f485-1f3ff"],':nail_care_tone4:':["1f485-1f3fe"],':nail_care_tone3:':["1f485-1f3fd"],':nail_care_tone2:':["1f485-1f3fc"],':nail_care_tone1:':["1f485-1f3fb"],':dancer_tone5:':["1f483-1f3ff"],':dancer_tone4:':["1f483-1f3fe"],':dancer_tone3:':["1f483-1f3fd"],':dancer_tone2:':["1f483-1f3fc"],':dancer_tone1:':["1f483-1f3fb"],':guardsman_tone5:':["1f482-1f3ff"],':guardsman_tone4:':["1f482-1f3fe"],':guardsman_tone3:':["1f482-1f3fd"],':guardsman_tone2:':["1f482-1f3fc"],':guardsman_tone1:':["1f482-1f3fb"],':information_desk_person_tone5:':["1f481-1f3ff"],':information_desk_person_tone4:':["1f481-1f3fe"],':information_desk_person_tone3:':["1f481-1f3fd"],':information_desk_person_tone2:':["1f481-1f3fc"],':information_desk_person_tone1:':["1f481-1f3fb"],':angel_tone5:':["1f47c-1f3ff"],':angel_tone4:':["1f47c-1f3fe"],':angel_tone3:':["1f47c-1f3fd"],':angel_tone2:':["1f47c-1f3fc"],':angel_tone1:':["1f47c-1f3fb"],':princess_tone5:':["1f478-1f3ff"],':princess_tone4:':["1f478-1f3fe"],':princess_tone3:':["1f478-1f3fd"],':princess_tone2:':["1f478-1f3fc"],':princess_tone1:':["1f478-1f3fb"],':construction_worker_tone5:':["1f477-1f3ff"],':construction_worker_tone4:':["1f477-1f3fe"],':construction_worker_tone3:':["1f477-1f3fd"],':construction_worker_tone2:':["1f477-1f3fc"],':construction_worker_tone1:':["1f477-1f3fb"],':baby_tone5:':["1f476-1f3ff"],':baby_tone4:':["1f476-1f3fe"],':baby_tone3:':["1f476-1f3fd"],':baby_tone2:':["1f476-1f3fc"],':baby_tone1:':["1f476-1f3fb"],':older_woman_tone5:':["1f475-1f3ff"],':grandma_tone5:':["1f475-1f3ff"],':older_woman_tone4:':["1f475-1f3fe"],':grandma_tone4:':["1f475-1f3fe"],':older_woman_tone3:':["1f475-1f3fd"],':grandma_tone3:':["1f475-1f3fd"],':older_woman_tone2:':["1f475-1f3fc"],':grandma_tone2:':["1f475-1f3fc"],':older_woman_tone1:':["1f475-1f3fb"],':grandma_tone1:':["1f475-1f3fb"],':older_man_tone5:':["1f474-1f3ff"],':older_man_tone4:':["1f474-1f3fe"],':older_man_tone3:':["1f474-1f3fd"],':older_man_tone2:':["1f474-1f3fc"],':older_man_tone1:':["1f474-1f3fb"],':man_with_turban_tone5:':["1f473-1f3ff"],':man_with_turban_tone4:':["1f473-1f3fe"],':man_with_turban_tone3:':["1f473-1f3fd"],':man_with_turban_tone2:':["1f473-1f3fc"],':man_with_turban_tone1:':["1f473-1f3fb"],':man_with_gua_pi_mao_tone5:':["1f472-1f3ff"],':man_with_gua_pi_mao_tone4:':["1f472-1f3fe"],':man_with_gua_pi_mao_tone3:':["1f472-1f3fd"],':man_with_gua_pi_mao_tone2:':["1f472-1f3fc"],':man_with_gua_pi_mao_tone1:':["1f472-1f3fb"],':person_with_blond_hair_tone5:':["1f471-1f3ff"],':person_with_blond_hair_tone4:':["1f471-1f3fe"],':person_with_blond_hair_tone3:':["1f471-1f3fd"],':person_with_blond_hair_tone2:':["1f471-1f3fc"],':person_with_blond_hair_tone1:':["1f471-1f3fb"],':bride_with_veil_tone5:':["1f470-1f3ff"],':bride_with_veil_tone4:':["1f470-1f3fe"],':bride_with_veil_tone3:':["1f470-1f3fd"],':bride_with_veil_tone2:':["1f470-1f3fc"],':bride_with_veil_tone1:':["1f470-1f3fb"],':cop_tone5:':["1f46e-1f3ff"],':cop_tone4:':["1f46e-1f3fe"],':cop_tone3:':["1f46e-1f3fd"],':cop_tone2:':["1f46e-1f3fc"],':cop_tone1:':["1f46e-1f3fb"],':woman_tone5:':["1f469-1f3ff"],':woman_tone4:':["1f469-1f3fe"],':woman_tone3:':["1f469-1f3fd"],':woman_tone2:':["1f469-1f3fc"],':woman_tone1:':["1f469-1f3fb"],':man_tone5:':["1f468-1f3ff"],':man_tone4:':["1f468-1f3fe"],':man_tone3:':["1f468-1f3fd"],':man_tone2:':["1f468-1f3fc"],':man_tone1:':["1f468-1f3fb"],':girl_tone5:':["1f467-1f3ff"],':girl_tone4:':["1f467-1f3fe"],':girl_tone3:':["1f467-1f3fd"],':girl_tone2:':["1f467-1f3fc"],':girl_tone1:':["1f467-1f3fb"],':boy_tone5:':["1f466-1f3ff"],':boy_tone4:':["1f466-1f3fe"],':boy_tone3:':["1f466-1f3fd"],':boy_tone2:':["1f466-1f3fc"],':boy_tone1:':["1f466-1f3fb"],':open_hands_tone5:':["1f450-1f3ff"],':open_hands_tone4:':["1f450-1f3fe"],':open_hands_tone3:':["1f450-1f3fd"],':open_hands_tone2:':["1f450-1f3fc"],':open_hands_tone1:':["1f450-1f3fb"],':clap_tone5:':["1f44f-1f3ff"],':clap_tone4:':["1f44f-1f3fe"],':clap_tone3:':["1f44f-1f3fd"],':clap_tone2:':["1f44f-1f3fc"],':clap_tone1:':["1f44f-1f3fb"],':thumbsdown_tone5:':["1f44e-1f3ff"],':-1_tone5:':["1f44e-1f3ff"],':thumbsdown_tone4:':["1f44e-1f3fe"],':-1_tone4:':["1f44e-1f3fe"],':thumbsdown_tone3:':["1f44e-1f3fd"],':-1_tone3:':["1f44e-1f3fd"],':thumbsdown_tone2:':["1f44e-1f3fc"],':-1_tone2:':["1f44e-1f3fc"],':thumbsdown_tone1:':["1f44e-1f3fb"],':-1_tone1:':["1f44e-1f3fb"],':thumbsup_tone5:':["1f44d-1f3ff"],':+1_tone5:':["1f44d-1f3ff"],':thumbsup_tone4:':["1f44d-1f3fe"],':+1_tone4:':["1f44d-1f3fe"],':thumbsup_tone3:':["1f44d-1f3fd"],':+1_tone3:':["1f44d-1f3fd"],':thumbsup_tone2:':["1f44d-1f3fc"],':+1_tone2:':["1f44d-1f3fc"],':thumbsup_tone1:':["1f44d-1f3fb"],':+1_tone1:':["1f44d-1f3fb"],':ok_hand_tone5:':["1f44c-1f3ff"],':ok_hand_tone4:':["1f44c-1f3fe"],':ok_hand_tone3:':["1f44c-1f3fd"],':ok_hand_tone2:':["1f44c-1f3fc"],':ok_hand_tone1:':["1f44c-1f3fb"],':wave_tone5:':["1f44b-1f3ff"],':wave_tone4:':["1f44b-1f3fe"],':wave_tone3:':["1f44b-1f3fd"],':wave_tone2:':["1f44b-1f3fc"],':wave_tone1:':["1f44b-1f3fb"],':punch_tone5:':["1f44a-1f3ff"],':punch_tone4:':["1f44a-1f3fe"],':punch_tone3:':["1f44a-1f3fd"],':punch_tone2:':["1f44a-1f3fc"],':punch_tone1:':["1f44a-1f3fb"],':point_right_tone5:':["1f449-1f3ff"],':point_right_tone4:':["1f449-1f3fe"],':point_right_tone3:':["1f449-1f3fd"],':point_right_tone2:':["1f449-1f3fc"],':point_right_tone1:':["1f449-1f3fb"],':point_left_tone5:':["1f448-1f3ff"],':point_left_tone4:':["1f448-1f3fe"],':point_left_tone3:':["1f448-1f3fd"],':point_left_tone2:':["1f448-1f3fc"],':point_left_tone1:':["1f448-1f3fb"],':point_down_tone5:':["1f447-1f3ff"],':point_down_tone4:':["1f447-1f3fe"],':point_down_tone3:':["1f447-1f3fd"],':point_down_tone2:':["1f447-1f3fc"],':point_down_tone1:':["1f447-1f3fb"],':point_up_2_tone5:':["1f446-1f3ff"],':point_up_2_tone4:':["1f446-1f3fe"],':point_up_2_tone3:':["1f446-1f3fd"],':point_up_2_tone2:':["1f446-1f3fc"],':point_up_2_tone1:':["1f446-1f3fb"],':nose_tone5:':["1f443-1f3ff"],':nose_tone4:':["1f443-1f3fe"],':nose_tone3:':["1f443-1f3fd"],':nose_tone2:':["1f443-1f3fc"],':nose_tone1:':["1f443-1f3fb"],':ear_tone5:':["1f442-1f3ff"],':ear_tone4:':["1f442-1f3fe"],':ear_tone3:':["1f442-1f3fd"],':ear_tone2:':["1f442-1f3fc"],':ear_tone1:':["1f442-1f3fb"],':lifter_tone5:':["1f3cb-1f3ff"],':weight_lifter_tone5:':["1f3cb-1f3ff"],':lifter_tone4:':["1f3cb-1f3fe"],':weight_lifter_tone4:':["1f3cb-1f3fe"],':lifter_tone3:':["1f3cb-1f3fd"],':weight_lifter_tone3:':["1f3cb-1f3fd"],':lifter_tone2:':["1f3cb-1f3fc"],':weight_lifter_tone2:':["1f3cb-1f3fc"],':lifter_tone1:':["1f3cb-1f3fb"],':weight_lifter_tone1:':["1f3cb-1f3fb"],':swimmer_tone5:':["1f3ca-1f3ff"],':swimmer_tone4:':["1f3ca-1f3fe"],':swimmer_tone3:':["1f3ca-1f3fd"],':swimmer_tone2:':["1f3ca-1f3fc"],':swimmer_tone1:':["1f3ca-1f3fb"],':horse_racing_tone5:':["1f3c7-1f3ff"],':horse_racing_tone4:':["1f3c7-1f3fe"],':horse_racing_tone3:':["1f3c7-1f3fd"],':horse_racing_tone2:':["1f3c7-1f3fc"],':horse_racing_tone1:':["1f3c7-1f3fb"],':surfer_tone5:':["1f3c4-1f3ff"],':surfer_tone4:':["1f3c4-1f3fe"],':surfer_tone3:':["1f3c4-1f3fd"],':surfer_tone2:':["1f3c4-1f3fc"],':surfer_tone1:':["1f3c4-1f3fb"],':runner_tone5:':["1f3c3-1f3ff"],':runner_tone4:':["1f3c3-1f3fe"],':runner_tone3:':["1f3c3-1f3fd"],':runner_tone2:':["1f3c3-1f3fc"],':runner_tone1:':["1f3c3-1f3fb"],':santa_tone5:':["1f385-1f3ff"],':santa_tone4:':["1f385-1f3fe"],':santa_tone3:':["1f385-1f3fd"],':santa_tone2:':["1f385-1f3fc"],':santa_tone1:':["1f385-1f3fb"],':flag_zw:':["1f1ff-1f1fc"],':zw:':["1f1ff-1f1fc"],':flag_zm:':["1f1ff-1f1f2"],':zm:':["1f1ff-1f1f2"],':flag_za:':["1f1ff-1f1e6"],':za:':["1f1ff-1f1e6"],':flag_yt:':["1f1fe-1f1f9"],':yt:':["1f1fe-1f1f9"],':flag_ye:':["1f1fe-1f1ea"],':ye:':["1f1fe-1f1ea"],':flag_xk:':["1f1fd-1f1f0"],':xk:':["1f1fd-1f1f0"],':flag_ws:':["1f1fc-1f1f8"],':ws:':["1f1fc-1f1f8"],':flag_wf:':["1f1fc-1f1eb"],':wf:':["1f1fc-1f1eb"],':flag_vu:':["1f1fb-1f1fa"],':vu:':["1f1fb-1f1fa"],':flag_vn:':["1f1fb-1f1f3"],':vn:':["1f1fb-1f1f3"],':flag_vi:':["1f1fb-1f1ee"],':vi:':["1f1fb-1f1ee"],':flag_vg:':["1f1fb-1f1ec"],':vg:':["1f1fb-1f1ec"],':flag_ve:':["1f1fb-1f1ea"],':ve:':["1f1fb-1f1ea"],':flag_vc:':["1f1fb-1f1e8"],':vc:':["1f1fb-1f1e8"],':flag_va:':["1f1fb-1f1e6"],':va:':["1f1fb-1f1e6"],':flag_uz:':["1f1fa-1f1ff"],':uz:':["1f1fa-1f1ff"],':flag_uy:':["1f1fa-1f1fe"],':uy:':["1f1fa-1f1fe"],':flag_us:':["1f1fa-1f1f8"],':us:':["1f1fa-1f1f8"],':flag_um:':["1f1fa-1f1f2"],':um:':["1f1fa-1f1f2"],':flag_ug:':["1f1fa-1f1ec"],':ug:':["1f1fa-1f1ec"],':flag_ua:':["1f1fa-1f1e6"],':ua:':["1f1fa-1f1e6"],':flag_tz:':["1f1f9-1f1ff"],':tz:':["1f1f9-1f1ff"],':flag_tw:':["1f1f9-1f1fc"],':tw:':["1f1f9-1f1fc"],':flag_tv:':["1f1f9-1f1fb"],':tuvalu:':["1f1f9-1f1fb"],':flag_tt:':["1f1f9-1f1f9"],':tt:':["1f1f9-1f1f9"],':flag_tr:':["1f1f9-1f1f7"],':tr:':["1f1f9-1f1f7"],':flag_to:':["1f1f9-1f1f4"],':to:':["1f1f9-1f1f4"],':flag_tn:':["1f1f9-1f1f3"],':tn:':["1f1f9-1f1f3"],':flag_tm:':["1f1f9-1f1f2"],':turkmenistan:':["1f1f9-1f1f2"],':flag_tl:':["1f1f9-1f1f1"],':tl:':["1f1f9-1f1f1"],':flag_tk:':["1f1f9-1f1f0"],':tk:':["1f1f9-1f1f0"],':flag_tj:':["1f1f9-1f1ef"],':tj:':["1f1f9-1f1ef"],':flag_th:':["1f1f9-1f1ed"],':th:':["1f1f9-1f1ed"],':flag_tg:':["1f1f9-1f1ec"],':tg:':["1f1f9-1f1ec"],':flag_tf:':["1f1f9-1f1eb"],':tf:':["1f1f9-1f1eb"],':flag_td:':["1f1f9-1f1e9"],':td:':["1f1f9-1f1e9"],':flag_tc:':["1f1f9-1f1e8"],':tc:':["1f1f9-1f1e8"],':flag_ta:':["1f1f9-1f1e6"],':ta:':["1f1f9-1f1e6"],':flag_sz:':["1f1f8-1f1ff"],':sz:':["1f1f8-1f1ff"],':flag_sy:':["1f1f8-1f1fe"],':sy:':["1f1f8-1f1fe"],':flag_sx:':["1f1f8-1f1fd"],':sx:':["1f1f8-1f1fd"],':flag_sv:':["1f1f8-1f1fb"],':sv:':["1f1f8-1f1fb"],':flag_st:':["1f1f8-1f1f9"],':st:':["1f1f8-1f1f9"],':flag_ss:':["1f1f8-1f1f8"],':ss:':["1f1f8-1f1f8"],':flag_sr:':["1f1f8-1f1f7"],':sr:':["1f1f8-1f1f7"],':flag_so:':["1f1f8-1f1f4"],':so:':["1f1f8-1f1f4"],':flag_sn:':["1f1f8-1f1f3"],':sn:':["1f1f8-1f1f3"],':flag_sm:':["1f1f8-1f1f2"],':sm:':["1f1f8-1f1f2"],':flag_sl:':["1f1f8-1f1f1"],':sl:':["1f1f8-1f1f1"],':flag_sk:':["1f1f8-1f1f0"],':sk:':["1f1f8-1f1f0"],':flag_sj:':["1f1f8-1f1ef"],':sj:':["1f1f8-1f1ef"],':flag_si:':["1f1f8-1f1ee"],':si:':["1f1f8-1f1ee"],':flag_sh:':["1f1f8-1f1ed"],':sh:':["1f1f8-1f1ed"],':flag_sg:':["1f1f8-1f1ec"],':sg:':["1f1f8-1f1ec"],':flag_se:':["1f1f8-1f1ea"],':se:':["1f1f8-1f1ea"],':flag_sd:':["1f1f8-1f1e9"],':sd:':["1f1f8-1f1e9"],':flag_sc:':["1f1f8-1f1e8"],':sc:':["1f1f8-1f1e8"],':flag_sb:':["1f1f8-1f1e7"],':sb:':["1f1f8-1f1e7"],':flag_sa:':["1f1f8-1f1e6"],':saudiarabia:':["1f1f8-1f1e6"],':saudi:':["1f1f8-1f1e6"],':flag_rw:':["1f1f7-1f1fc"],':rw:':["1f1f7-1f1fc"],':flag_ru:':["1f1f7-1f1fa"],':ru:':["1f1f7-1f1fa"],':flag_rs:':["1f1f7-1f1f8"],':rs:':["1f1f7-1f1f8"],':flag_ro:':["1f1f7-1f1f4"],':ro:':["1f1f7-1f1f4"],':flag_re:':["1f1f7-1f1ea"],':re:':["1f1f7-1f1ea"],':flag_qa:':["1f1f6-1f1e6"],':qa:':["1f1f6-1f1e6"],':flag_py:':["1f1f5-1f1fe"],':py:':["1f1f5-1f1fe"],':flag_pw:':["1f1f5-1f1fc"],':pw:':["1f1f5-1f1fc"],':flag_pt:':["1f1f5-1f1f9"],':pt:':["1f1f5-1f1f9"],':flag_ps:':["1f1f5-1f1f8"],':ps:':["1f1f5-1f1f8"],':flag_pr:':["1f1f5-1f1f7"],':pr:':["1f1f5-1f1f7"],':flag_pn:':["1f1f5-1f1f3"],':pn:':["1f1f5-1f1f3"],':flag_pm:':["1f1f5-1f1f2"],':pm:':["1f1f5-1f1f2"],':flag_pl:':["1f1f5-1f1f1"],':pl:':["1f1f5-1f1f1"],':flag_pk:':["1f1f5-1f1f0"],':pk:':["1f1f5-1f1f0"],':flag_ph:':["1f1f5-1f1ed"],':ph:':["1f1f5-1f1ed"],':flag_pg:':["1f1f5-1f1ec"],':pg:':["1f1f5-1f1ec"],':flag_pf:':["1f1f5-1f1eb"],':pf:':["1f1f5-1f1eb"],':flag_pe:':["1f1f5-1f1ea"],':pe:':["1f1f5-1f1ea"],':flag_pa:':["1f1f5-1f1e6"],':pa:':["1f1f5-1f1e6"],':flag_om:':["1f1f4-1f1f2"],':om:':["1f1f4-1f1f2"],':flag_nz:':["1f1f3-1f1ff"],':nz:':["1f1f3-1f1ff"],':flag_nu:':["1f1f3-1f1fa"],':nu:':["1f1f3-1f1fa"],':flag_nr:':["1f1f3-1f1f7"],':nr:':["1f1f3-1f1f7"],':flag_np:':["1f1f3-1f1f5"],':np:':["1f1f3-1f1f5"],':flag_no:':["1f1f3-1f1f4"],':no:':["1f1f3-1f1f4"],':flag_nl:':["1f1f3-1f1f1"],':nl:':["1f1f3-1f1f1"],':flag_ni:':["1f1f3-1f1ee"],':ni:':["1f1f3-1f1ee"],':flag_ng:':["1f1f3-1f1ec"],':nigeria:':["1f1f3-1f1ec"],':flag_nf:':["1f1f3-1f1eb"],':nf:':["1f1f3-1f1eb"],':flag_ne:':["1f1f3-1f1ea"],':ne:':["1f1f3-1f1ea"],':flag_nc:':["1f1f3-1f1e8"],':nc:':["1f1f3-1f1e8"],':flag_na:':["1f1f3-1f1e6"],':na:':["1f1f3-1f1e6"],':flag_mz:':["1f1f2-1f1ff"],':mz:':["1f1f2-1f1ff"],':flag_my:':["1f1f2-1f1fe"],':my:':["1f1f2-1f1fe"],':flag_mx:':["1f1f2-1f1fd"],':mx:':["1f1f2-1f1fd"],':flag_mw:':["1f1f2-1f1fc"],':mw:':["1f1f2-1f1fc"],':flag_mv:':["1f1f2-1f1fb"],':mv:':["1f1f2-1f1fb"],':flag_mu:':["1f1f2-1f1fa"],':mu:':["1f1f2-1f1fa"],':flag_mt:':["1f1f2-1f1f9"],':mt:':["1f1f2-1f1f9"],':flag_ms:':["1f1f2-1f1f8"],':ms:':["1f1f2-1f1f8"],':flag_mr:':["1f1f2-1f1f7"],':mr:':["1f1f2-1f1f7"],':flag_mq:':["1f1f2-1f1f6"],':mq:':["1f1f2-1f1f6"],':flag_mp:':["1f1f2-1f1f5"],':mp:':["1f1f2-1f1f5"],':flag_mo:':["1f1f2-1f1f4"],':mo:':["1f1f2-1f1f4"],':flag_mn:':["1f1f2-1f1f3"],':mn:':["1f1f2-1f1f3"],':flag_mm:':["1f1f2-1f1f2"],':mm:':["1f1f2-1f1f2"],':flag_ml:':["1f1f2-1f1f1"],':ml:':["1f1f2-1f1f1"],':flag_mk:':["1f1f2-1f1f0"],':mk:':["1f1f2-1f1f0"],':flag_mh:':["1f1f2-1f1ed"],':mh:':["1f1f2-1f1ed"],':flag_mg:':["1f1f2-1f1ec"],':mg:':["1f1f2-1f1ec"],':flag_mf:':["1f1f2-1f1eb"],':mf:':["1f1f2-1f1eb"],':flag_me:':["1f1f2-1f1ea"],':me:':["1f1f2-1f1ea"],':flag_md:':["1f1f2-1f1e9"],':md:':["1f1f2-1f1e9"],':flag_mc:':["1f1f2-1f1e8"],':mc:':["1f1f2-1f1e8"],':flag_ma:':["1f1f2-1f1e6"],':ma:':["1f1f2-1f1e6"],':flag_ly:':["1f1f1-1f1fe"],':ly:':["1f1f1-1f1fe"],':flag_lv:':["1f1f1-1f1fb"],':lv:':["1f1f1-1f1fb"],':flag_lu:':["1f1f1-1f1fa"],':lu:':["1f1f1-1f1fa"],':flag_lt:':["1f1f1-1f1f9"],':lt:':["1f1f1-1f1f9"],':flag_ls:':["1f1f1-1f1f8"],':ls:':["1f1f1-1f1f8"],':flag_lr:':["1f1f1-1f1f7"],':lr:':["1f1f1-1f1f7"],':flag_lk:':["1f1f1-1f1f0"],':lk:':["1f1f1-1f1f0"],':flag_li:':["1f1f1-1f1ee"],':li:':["1f1f1-1f1ee"],':flag_lc:':["1f1f1-1f1e8"],':lc:':["1f1f1-1f1e8"],':flag_lb:':["1f1f1-1f1e7"],':lb:':["1f1f1-1f1e7"],':flag_la:':["1f1f1-1f1e6"],':la:':["1f1f1-1f1e6"],':flag_kz:':["1f1f0-1f1ff"],':kz:':["1f1f0-1f1ff"],':flag_ky:':["1f1f0-1f1fe"],':ky:':["1f1f0-1f1fe"],':flag_kw:':["1f1f0-1f1fc"],':kw:':["1f1f0-1f1fc"],':flag_kr:':["1f1f0-1f1f7"],':kr:':["1f1f0-1f1f7"],':flag_kp:':["1f1f0-1f1f5"],':kp:':["1f1f0-1f1f5"],':flag_kn:':["1f1f0-1f1f3"],':kn:':["1f1f0-1f1f3"],':flag_km:':["1f1f0-1f1f2"],':km:':["1f1f0-1f1f2"],':flag_ki:':["1f1f0-1f1ee"],':ki:':["1f1f0-1f1ee"],':flag_kh:':["1f1f0-1f1ed"],':kh:':["1f1f0-1f1ed"],':flag_kg:':["1f1f0-1f1ec"],':kg:':["1f1f0-1f1ec"],':flag_ke:':["1f1f0-1f1ea"],':ke:':["1f1f0-1f1ea"],':flag_jp:':["1f1ef-1f1f5"],':jp:':["1f1ef-1f1f5"],':flag_jo:':["1f1ef-1f1f4"],':jo:':["1f1ef-1f1f4"],':flag_jm:':["1f1ef-1f1f2"],':jm:':["1f1ef-1f1f2"],':flag_je:':["1f1ef-1f1ea"],':je:':["1f1ef-1f1ea"],':flag_it:':["1f1ee-1f1f9"],':it:':["1f1ee-1f1f9"],':flag_is:':["1f1ee-1f1f8"],':is:':["1f1ee-1f1f8"],':flag_ir:':["1f1ee-1f1f7"],':ir:':["1f1ee-1f1f7"],':flag_iq:':["1f1ee-1f1f6"],':iq:':["1f1ee-1f1f6"],':flag_io:':["1f1ee-1f1f4"],':io:':["1f1ee-1f1f4"],':flag_in:':["1f1ee-1f1f3"],':in:':["1f1ee-1f1f3"],':flag_im:':["1f1ee-1f1f2"],':im:':["1f1ee-1f1f2"],':flag_il:':["1f1ee-1f1f1"],':il:':["1f1ee-1f1f1"],':flag_ie:':["1f1ee-1f1ea"],':ie:':["1f1ee-1f1ea"],':flag_id:':["1f1ee-1f1e9"],':indonesia:':["1f1ee-1f1e9"],':flag_ic:':["1f1ee-1f1e8"],':ic:':["1f1ee-1f1e8"],':flag_hu:':["1f1ed-1f1fa"],':hu:':["1f1ed-1f1fa"],':flag_ht:':["1f1ed-1f1f9"],':ht:':["1f1ed-1f1f9"],':flag_hr:':["1f1ed-1f1f7"],':hr:':["1f1ed-1f1f7"],':flag_hn:':["1f1ed-1f1f3"],':hn:':["1f1ed-1f1f3"],':flag_hm:':["1f1ed-1f1f2"],':hm:':["1f1ed-1f1f2"],':flag_hk:':["1f1ed-1f1f0"],':hk:':["1f1ed-1f1f0"],':flag_gy:':["1f1ec-1f1fe"],':gy:':["1f1ec-1f1fe"],':flag_gw:':["1f1ec-1f1fc"],':gw:':["1f1ec-1f1fc"],':flag_gu:':["1f1ec-1f1fa"],':gu:':["1f1ec-1f1fa"],':flag_gt:':["1f1ec-1f1f9"],':gt:':["1f1ec-1f1f9"],':flag_gs:':["1f1ec-1f1f8"],':gs:':["1f1ec-1f1f8"],':flag_gr:':["1f1ec-1f1f7"],':gr:':["1f1ec-1f1f7"],':flag_gq:':["1f1ec-1f1f6"],':gq:':["1f1ec-1f1f6"],':flag_gp:':["1f1ec-1f1f5"],':gp:':["1f1ec-1f1f5"],':flag_gn:':["1f1ec-1f1f3"],':gn:':["1f1ec-1f1f3"],':flag_gm:':["1f1ec-1f1f2"],':gm:':["1f1ec-1f1f2"],':flag_gl:':["1f1ec-1f1f1"],':gl:':["1f1ec-1f1f1"],':flag_gi:':["1f1ec-1f1ee"],':gi:':["1f1ec-1f1ee"],':flag_gh:':["1f1ec-1f1ed"],':gh:':["1f1ec-1f1ed"],':flag_gg:':["1f1ec-1f1ec"],':gg:':["1f1ec-1f1ec"],':flag_gf:':["1f1ec-1f1eb"],':gf:':["1f1ec-1f1eb"],':flag_ge:':["1f1ec-1f1ea"],':ge:':["1f1ec-1f1ea"],':flag_gd:':["1f1ec-1f1e9"],':gd:':["1f1ec-1f1e9"],':flag_gb:':["1f1ec-1f1e7"],':gb:':["1f1ec-1f1e7"],':flag_ga:':["1f1ec-1f1e6"],':ga:':["1f1ec-1f1e6"],':flag_fr:':["1f1eb-1f1f7"],':fr:':["1f1eb-1f1f7"],':flag_fo:':["1f1eb-1f1f4"],':fo:':["1f1eb-1f1f4"],':flag_fm:':["1f1eb-1f1f2"],':fm:':["1f1eb-1f1f2"],':flag_fk:':["1f1eb-1f1f0"],':fk:':["1f1eb-1f1f0"],':flag_fj:':["1f1eb-1f1ef"],':fj:':["1f1eb-1f1ef"],':flag_fi:':["1f1eb-1f1ee"],':fi:':["1f1eb-1f1ee"],':flag_eu:':["1f1ea-1f1fa"],':eu:':["1f1ea-1f1fa"],':flag_et:':["1f1ea-1f1f9"],':et:':["1f1ea-1f1f9"],':flag_es:':["1f1ea-1f1f8"],':es:':["1f1ea-1f1f8"],':flag_er:':["1f1ea-1f1f7"],':er:':["1f1ea-1f1f7"],':flag_eh:':["1f1ea-1f1ed"],':eh:':["1f1ea-1f1ed"],':flag_eg:':["1f1ea-1f1ec"],':eg:':["1f1ea-1f1ec"],':flag_ee:':["1f1ea-1f1ea"],':ee:':["1f1ea-1f1ea"],':flag_ec:':["1f1ea-1f1e8"],':ec:':["1f1ea-1f1e8"],':flag_ea:':["1f1ea-1f1e6"],':ea:':["1f1ea-1f1e6"],':flag_dz:':["1f1e9-1f1ff"],':dz:':["1f1e9-1f1ff"],':flag_do:':["1f1e9-1f1f4"],':do:':["1f1e9-1f1f4"],':flag_dm:':["1f1e9-1f1f2"],':dm:':["1f1e9-1f1f2"],':flag_dk:':["1f1e9-1f1f0"],':dk:':["1f1e9-1f1f0"],':flag_dj:':["1f1e9-1f1ef"],':dj:':["1f1e9-1f1ef"],':flag_dg:':["1f1e9-1f1ec"],':dg:':["1f1e9-1f1ec"],':flag_de:':["1f1e9-1f1ea"],':de:':["1f1e9-1f1ea"],':flag_cz:':["1f1e8-1f1ff"],':cz:':["1f1e8-1f1ff"],':flag_cy:':["1f1e8-1f1fe"],':cy:':["1f1e8-1f1fe"],':flag_cx:':["1f1e8-1f1fd"],':cx:':["1f1e8-1f1fd"],':flag_cw:':["1f1e8-1f1fc"],':cw:':["1f1e8-1f1fc"],':flag_cv:':["1f1e8-1f1fb"],':cv:':["1f1e8-1f1fb"],':flag_cu:':["1f1e8-1f1fa"],':cu:':["1f1e8-1f1fa"],':flag_cr:':["1f1e8-1f1f7"],':cr:':["1f1e8-1f1f7"],':flag_cp:':["1f1e8-1f1f5"],':cp:':["1f1e8-1f1f5"],':flag_co:':["1f1e8-1f1f4"],':co:':["1f1e8-1f1f4"],':flag_cn:':["1f1e8-1f1f3"],':cn:':["1f1e8-1f1f3"],':flag_cm:':["1f1e8-1f1f2"],':cm:':["1f1e8-1f1f2"],':flag_cl:':["1f1e8-1f1f1"],':chile:':["1f1e8-1f1f1"],':flag_ck:':["1f1e8-1f1f0"],':ck:':["1f1e8-1f1f0"],':flag_ci:':["1f1e8-1f1ee"],':ci:':["1f1e8-1f1ee"],':flag_ch:':["1f1e8-1f1ed"],':ch:':["1f1e8-1f1ed"],':flag_cg:':["1f1e8-1f1ec"],':cg:':["1f1e8-1f1ec"],':flag_cf:':["1f1e8-1f1eb"],':cf:':["1f1e8-1f1eb"],':flag_cd:':["1f1e8-1f1e9"],':congo:':["1f1e8-1f1e9"],':flag_cc:':["1f1e8-1f1e8"],':cc:':["1f1e8-1f1e8"],':flag_ca:':["1f1e8-1f1e6"],':ca:':["1f1e8-1f1e6"],':flag_bz:':["1f1e7-1f1ff"],':bz:':["1f1e7-1f1ff"],':flag_by:':["1f1e7-1f1fe"],':by:':["1f1e7-1f1fe"],':flag_bw:':["1f1e7-1f1fc"],':bw:':["1f1e7-1f1fc"],':flag_bv:':["1f1e7-1f1fb"],':bv:':["1f1e7-1f1fb"],':flag_bt:':["1f1e7-1f1f9"],':bt:':["1f1e7-1f1f9"],':flag_bs:':["1f1e7-1f1f8"],':bs:':["1f1e7-1f1f8"],':flag_br:':["1f1e7-1f1f7"],':br:':["1f1e7-1f1f7"],':flag_bq:':["1f1e7-1f1f6"],':bq:':["1f1e7-1f1f6"],':flag_bo:':["1f1e7-1f1f4"],':bo:':["1f1e7-1f1f4"],':flag_bn:':["1f1e7-1f1f3"],':bn:':["1f1e7-1f1f3"],':flag_bm:':["1f1e7-1f1f2"],':bm:':["1f1e7-1f1f2"],':flag_bl:':["1f1e7-1f1f1"],':bl:':["1f1e7-1f1f1"],':flag_bj:':["1f1e7-1f1ef"],':bj:':["1f1e7-1f1ef"],':flag_bi:':["1f1e7-1f1ee"],':bi:':["1f1e7-1f1ee"],':flag_bh:':["1f1e7-1f1ed"],':bh:':["1f1e7-1f1ed"],':flag_bg:':["1f1e7-1f1ec"],':bg:':["1f1e7-1f1ec"],':flag_bf:':["1f1e7-1f1eb"],':bf:':["1f1e7-1f1eb"],':flag_be:':["1f1e7-1f1ea"],':be:':["1f1e7-1f1ea"],':flag_bd:':["1f1e7-1f1e9"],':bd:':["1f1e7-1f1e9"],':flag_bb:':["1f1e7-1f1e7"],':bb:':["1f1e7-1f1e7"],':flag_ba:':["1f1e7-1f1e6"],':ba:':["1f1e7-1f1e6"],':flag_az:':["1f1e6-1f1ff"],':az:':["1f1e6-1f1ff"],':flag_ax:':["1f1e6-1f1fd"],':ax:':["1f1e6-1f1fd"],':flag_aw:':["1f1e6-1f1fc"],':aw:':["1f1e6-1f1fc"],':flag_au:':["1f1e6-1f1fa"],':au:':["1f1e6-1f1fa"],':flag_at:':["1f1e6-1f1f9"],':at:':["1f1e6-1f1f9"],':flag_as:':["1f1e6-1f1f8"],':as:':["1f1e6-1f1f8"],':flag_ar:':["1f1e6-1f1f7"],':ar:':["1f1e6-1f1f7"],':flag_aq:':["1f1e6-1f1f6"],':aq:':["1f1e6-1f1f6"],':flag_ao:':["1f1e6-1f1f4"],':ao:':["1f1e6-1f1f4"],':flag_am:':["1f1e6-1f1f2"],':am:':["1f1e6-1f1f2"],':flag_al:':["1f1e6-1f1f1"],':al:':["1f1e6-1f1f1"],':flag_ai:':["1f1e6-1f1ee"],':ai:':["1f1e6-1f1ee"],':flag_ag:':["1f1e6-1f1ec"],':ag:':["1f1e6-1f1ec"],':flag_af:':["1f1e6-1f1eb"],':af:':["1f1e6-1f1eb"],':flag_ae:':["1f1e6-1f1ea"],':ae:':["1f1e6-1f1ea"],':flag_ad:':["1f1e6-1f1e9"],':ad:':["1f1e6-1f1e9"],':flag_ac:':["1f1e6-1f1e8"],':ac:':["1f1e6-1f1e8"],':mahjong:':["1f004-fe0f","1f004"],':parking:':["1f17f-fe0f","1f17f"],':u7121:':["1f21a-fe0f","1f21a"],':u6307:':["1f22f-fe0f","1f22f"],':u6708:':["1f237-fe0f","1f237"],':point_up_tone1:':["261d-1f3fb"],':point_up_tone2:':["261d-1f3fc"],':point_up_tone3:':["261d-1f3fd"],':point_up_tone4:':["261d-1f3fe"],':point_up_tone5:':["261d-1f3ff"],':v_tone1:':["270c-1f3fb"],':v_tone2:':["270c-1f3fc"],':v_tone3:':["270c-1f3fd"],':v_tone4:':["270c-1f3fe"],':v_tone5:':["270c-1f3ff"],':fist_tone1:':["270a-1f3fb"],':fist_tone2:':["270a-1f3fc"],':fist_tone3:':["270a-1f3fd"],':fist_tone4:':["270a-1f3fe"],':fist_tone5:':["270a-1f3ff"],':raised_hand_tone1:':["270b-1f3fb"],':raised_hand_tone2:':["270b-1f3fc"],':raised_hand_tone3:':["270b-1f3fd"],':raised_hand_tone4:':["270b-1f3fe"],':raised_hand_tone5:':["270b-1f3ff"],':writing_hand_tone1:':["270d-1f3fb"],':writing_hand_tone2:':["270d-1f3fc"],':writing_hand_tone3:':["270d-1f3fd"],':writing_hand_tone4:':["270d-1f3fe"],':writing_hand_tone5:':["270d-1f3ff"],':basketball_player_tone1:':["26f9-1f3fb"],':person_with_ball_tone1:':["26f9-1f3fb"],':basketball_player_tone2:':["26f9-1f3fc"],':person_with_ball_tone2:':["26f9-1f3fc"],':basketball_player_tone3:':["26f9-1f3fd"],':person_with_ball_tone3:':["26f9-1f3fd"],':basketball_player_tone4:':["26f9-1f3fe"],':person_with_ball_tone4:':["26f9-1f3fe"],':basketball_player_tone5:':["26f9-1f3ff"],':person_with_ball_tone5:':["26f9-1f3ff"],':copyright:':["00a9-fe0f","00a9"],':registered:':["00ae-fe0f","00ae"],':bangbang:':["203c-fe0f","203c"],':interrobang:':["2049-fe0f","2049"],':tm:':["2122-fe0f","2122"],':information_source:':["2139-fe0f","2139"],':left_right_arrow:':["2194-fe0f","2194"],':arrow_up_down:':["2195-fe0f","2195"],':arrow_upper_left:':["2196-fe0f","2196"],':arrow_upper_right:':["2197-fe0f","2197"],':arrow_lower_right:':["2198-fe0f","2198"],':arrow_lower_left:':["2199-fe0f","2199"],':leftwards_arrow_with_hook:':["21a9-fe0f","21a9"],':arrow_right_hook:':["21aa-fe0f","21aa"],':watch:':["231a-fe0f","231a"],':hourglass:':["231b-fe0f","231b"],':m:':["24c2-fe0f","24c2"],':black_small_square:':["25aa-fe0f","25aa"],':white_small_square:':["25ab-fe0f","25ab"],':arrow_forward:':["25b6-fe0f","25b6"],':arrow_backward:':["25c0-fe0f","25c0"],':white_medium_square:':["25fb-fe0f","25fb"],':black_medium_square:':["25fc-fe0f","25fc"],':white_medium_small_square:':["25fd-fe0f","25fd"],':black_medium_small_square:':["25fe-fe0f","25fe"],':sunny:':["2600-fe0f","2600"],':cloud:':["2601-fe0f","2601"],':telephone:':["260e-fe0f","260e"],':ballot_box_with_check:':["2611-fe0f","2611"],':umbrella:':["2614-fe0f","2614"],':coffee:':["2615-fe0f","2615"],':point_up:':["261d-fe0f","261d"],':relaxed:':["263a-fe0f","263a"],':aries:':["2648-fe0f","2648"],':taurus:':["2649-fe0f","2649"],':gemini:':["264a-fe0f","264a"],':cancer:':["264b-fe0f","264b"],':leo:':["264c-fe0f","264c"],':virgo:':["264d-fe0f","264d"],':libra:':["264e-fe0f","264e"],':scorpius:':["264f-fe0f","264f"],':sagittarius:':["2650-fe0f","2650"],':capricorn:':["2651-fe0f","2651"],':aquarius:':["2652-fe0f","2652"],':pisces:':["2653-fe0f","2653"],':spades:':["2660-fe0f","2660"],':clubs:':["2663-fe0f","2663"],':hearts:':["2665-fe0f","2665"],':diamonds:':["2666-fe0f","2666"],':hotsprings:':["2668-fe0f","2668"],':recycle:':["267b-fe0f","267b"],':wheelchair:':["267f-fe0f","267f"],':anchor:':["2693-fe0f","2693"],':warning:':["26a0-fe0f","26a0"],':zap:':["26a1-fe0f","26a1"],':white_circle:':["26aa-fe0f","26aa"],':black_circle:':["26ab-fe0f","26ab"],':soccer:':["26bd-fe0f","26bd"],':baseball:':["26be-fe0f","26be"],':snowman:':["26c4-fe0f","26c4"],':partly_sunny:':["26c5-fe0f","26c5"],':no_entry:':["26d4-fe0f","26d4"],':church:':["26ea-fe0f","26ea"],':fountain:':["26f2-fe0f","26f2"],':golf:':["26f3-fe0f","26f3"],':sailboat:':["26f5-fe0f","26f5"],':tent:':["26fa-fe0f","26fa"],':fuelpump:':["26fd-fe0f","26fd"],':scissors:':["2702-fe0f","2702"],':airplane:':["2708-fe0f","2708"],':envelope:':["2709-fe0f","2709"],':v:':["270c-fe0f","270c"],':pencil2:':["270f-fe0f","270f"],':black_nib:':["2712-fe0f","2712"],':heavy_check_mark:':["2714-fe0f","2714"],':heavy_multiplication_x:':["2716-fe0f","2716"],':eight_spoked_asterisk:':["2733-fe0f","2733"],':eight_pointed_black_star:':["2734-fe0f","2734"],':snowflake:':["2744-fe0f","2744"],':sparkle:':["2747-fe0f","2747"],':exclamation:':["2757-fe0f","2757"],':heart:':["2764-fe0f","2764"],':arrow_right:':["27a1-fe0f","27a1"],':arrow_heading_up:':["2934-fe0f","2934"],':arrow_heading_down:':["2935-fe0f","2935"],':arrow_left:':["2b05-fe0f","2b05"],':arrow_up:':["2b06-fe0f","2b06"],':arrow_down:':["2b07-fe0f","2b07"],':black_large_square:':["2b1b-fe0f","2b1b"],':white_large_square:':["2b1c-fe0f","2b1c"],':star:':["2b50-fe0f","2b50"],':o:':["2b55-fe0f","2b55"],':part_alternation_mark:':["303d-fe0f","303d"],':congratulations:':["3297-fe0f","3297"],':secret:':["3299-fe0f","3299"],':black_joker:':["1f0cf"],':a:':["1f170"],':b:':["1f171"],':o2:':["1f17e"],':ab:':["1f18e"],':cl:':["1f191"],':cool:':["1f192"],':free:':["1f193"],':id:':["1f194"],':new:':["1f195"],':ng:':["1f196"],':ok:':["1f197"],':sos:':["1f198"],':up:':["1f199"],':vs:':["1f19a"],':koko:':["1f201"],':sa:':["1f202"],':u7981:':["1f232"],':u7a7a:':["1f233"],':u5408:':["1f234"],':u6e80:':["1f235"],':u6709:':["1f236"],':u7533:':["1f238"],':u5272:':["1f239"],':u55b6:':["1f23a"],':ideograph_advantage:':["1f250"],':accept:':["1f251"],':cyclone:':["1f300"],':foggy:':["1f301"],':closed_umbrella:':["1f302"],':night_with_stars:':["1f303"],':sunrise_over_mountains:':["1f304"],':sunrise:':["1f305"],':city_dusk:':["1f306"],':city_sunset:':["1f307"],':city_sunrise:':["1f307"],':rainbow:':["1f308"],':bridge_at_night:':["1f309"],':ocean:':["1f30a"],':volcano:':["1f30b"],':milky_way:':["1f30c"],':earth_asia:':["1f30f"],':new_moon:':["1f311"],':first_quarter_moon:':["1f313"],':waxing_gibbous_moon:':["1f314"],':full_moon:':["1f315"],':crescent_moon:':["1f319"],':first_quarter_moon_with_face:':["1f31b"],':star2:':["1f31f"],':stars:':["1f320"],':chestnut:':["1f330"],':seedling:':["1f331"],':palm_tree:':["1f334"],':cactus:':["1f335"],':tulip:':["1f337"],':cherry_blossom:':["1f338"],':rose:':["1f339"],':hibiscus:':["1f33a"],':sunflower:':["1f33b"],':blossom:':["1f33c"],':corn:':["1f33d"],':ear_of_rice:':["1f33e"],':herb:':["1f33f"],':four_leaf_clover:':["1f340"],':maple_leaf:':["1f341"],':fallen_leaf:':["1f342"],':leaves:':["1f343"],':mushroom:':["1f344"],':tomato:':["1f345"],':eggplant:':["1f346"],':grapes:':["1f347"],':melon:':["1f348"],':watermelon:':["1f349"],':tangerine:':["1f34a"],':banana:':["1f34c"],':pineapple:':["1f34d"],':apple:':["1f34e"],':green_apple:':["1f34f"],':peach:':["1f351"],':cherries:':["1f352"],':strawberry:':["1f353"],':hamburger:':["1f354"],':pizza:':["1f355"],':meat_on_bone:':["1f356"],':poultry_leg:':["1f357"],':rice_cracker:':["1f358"],':rice_ball:':["1f359"],':rice:':["1f35a"],':curry:':["1f35b"],':ramen:':["1f35c"],':spaghetti:':["1f35d"],':bread:':["1f35e"],':fries:':["1f35f"],':sweet_potato:':["1f360"],':dango:':["1f361"],':oden:':["1f362"],':sushi:':["1f363"],':fried_shrimp:':["1f364"],':fish_cake:':["1f365"],':icecream:':["1f366"],':shaved_ice:':["1f367"],':ice_cream:':["1f368"],':doughnut:':["1f369"],':cookie:':["1f36a"],':chocolate_bar:':["1f36b"],':candy:':["1f36c"],':lollipop:':["1f36d"],':custard:':["1f36e"],':honey_pot:':["1f36f"],':cake:':["1f370"],':bento:':["1f371"],':stew:':["1f372"],':egg:':["1f373"],':fork_and_knife:':["1f374"],':tea:':["1f375"],':sake:':["1f376"],':wine_glass:':["1f377"],':cocktail:':["1f378"],':tropical_drink:':["1f379"],':beer:':["1f37a"],':beers:':["1f37b"],':ribbon:':["1f380"],':gift:':["1f381"],':birthday:':["1f382"],':jack_o_lantern:':["1f383"],':christmas_tree:':["1f384"],':santa:':["1f385"],':fireworks:':["1f386"],':sparkler:':["1f387"],':balloon:':["1f388"],':tada:':["1f389"],':confetti_ball:':["1f38a"],':tanabata_tree:':["1f38b"],':crossed_flags:':["1f38c"],':bamboo:':["1f38d"],':dolls:':["1f38e"],':flags:':["1f38f"],':wind_chime:':["1f390"],':rice_scene:':["1f391"],':school_satchel:':["1f392"],':mortar_board:':["1f393"],':carousel_horse:':["1f3a0"],':ferris_wheel:':["1f3a1"],':roller_coaster:':["1f3a2"],':fishing_pole_and_fish:':["1f3a3"],':microphone:':["1f3a4"],':movie_camera:':["1f3a5"],':cinema:':["1f3a6"],':headphones:':["1f3a7"],':art:':["1f3a8"],':tophat:':["1f3a9"],':circus_tent:':["1f3aa"],':ticket:':["1f3ab"],':clapper:':["1f3ac"],':performing_arts:':["1f3ad"],':video_game:':["1f3ae"],':dart:':["1f3af"],':slot_machine:':["1f3b0"],':8ball:':["1f3b1"],':game_die:':["1f3b2"],':bowling:':["1f3b3"],':flower_playing_cards:':["1f3b4"],':musical_note:':["1f3b5"],':notes:':["1f3b6"],':saxophone:':["1f3b7"],':guitar:':["1f3b8"],':musical_keyboard:':["1f3b9"],':trumpet:':["1f3ba"],':violin:':["1f3bb"],':musical_score:':["1f3bc"],':running_shirt_with_sash:':["1f3bd"],':tennis:':["1f3be"],':ski:':["1f3bf"],':basketball:':["1f3c0"],':checkered_flag:':["1f3c1"],':snowboarder:':["1f3c2"],':runner:':["1f3c3"],':surfer:':["1f3c4"],':trophy:':["1f3c6"],':football:':["1f3c8"],':swimmer:':["1f3ca"],':house:':["1f3e0"],':house_with_garden:':["1f3e1"],':office:':["1f3e2"],':post_office:':["1f3e3"],':hospital:':["1f3e5"],':bank:':["1f3e6"],':atm:':["1f3e7"],':hotel:':["1f3e8"],':love_hotel:':["1f3e9"],':convenience_store:':["1f3ea"],':school:':["1f3eb"],':department_store:':["1f3ec"],':factory:':["1f3ed"],':izakaya_lantern:':["1f3ee"],':japanese_castle:':["1f3ef"],':european_castle:':["1f3f0"],':snail:':["1f40c"],':snake:':["1f40d"],':racehorse:':["1f40e"],':sheep:':["1f411"],':monkey:':["1f412"],':chicken:':["1f414"],':boar:':["1f417"],':elephant:':["1f418"],':octopus:':["1f419"],':shell:':["1f41a"],':bug:':["1f41b"],':ant:':["1f41c"],':bee:':["1f41d"],':beetle:':["1f41e"],':fish:':["1f41f"],':tropical_fish:':["1f420"],':blowfish:':["1f421"],':turtle:':["1f422"],':hatching_chick:':["1f423"],':baby_chick:':["1f424"],':hatched_chick:':["1f425"],':bird:':["1f426"],':penguin:':["1f427"],':koala:':["1f428"],':poodle:':["1f429"],':camel:':["1f42b"],':dolphin:':["1f42c"],':mouse:':["1f42d"],':cow:':["1f42e"],':tiger:':["1f42f"],':rabbit:':["1f430"],':cat:':["1f431"],':dragon_face:':["1f432"],':whale:':["1f433"],':horse:':["1f434"],':monkey_face:':["1f435"],':dog:':["1f436"],':pig:':["1f437"],':frog:':["1f438"],':hamster:':["1f439"],':wolf:':["1f43a"],':bear:':["1f43b"],':panda_face:':["1f43c"],':pig_nose:':["1f43d"],':feet:':["1f43e"],':paw_prints:':["1f43e"],':eyes:':["1f440"],':ear:':["1f442"],':nose:':["1f443"],':lips:':["1f444"],':tongue:':["1f445"],':point_up_2:':["1f446"],':point_down:':["1f447"],':point_left:':["1f448"],':point_right:':["1f449"],':punch:':["1f44a"],':wave:':["1f44b"],':ok_hand:':["1f44c"],':thumbsup:':["1f44d"],':+1:':["1f44d"],':thumbsdown:':["1f44e"],':-1:':["1f44e"],':clap:':["1f44f"],':open_hands:':["1f450"],':crown:':["1f451"],':womans_hat:':["1f452"],':eyeglasses:':["1f453"],':necktie:':["1f454"],':shirt:':["1f455"],':jeans:':["1f456"],':dress:':["1f457"],':kimono:':["1f458"],':bikini:':["1f459"],':womans_clothes:':["1f45a"],':purse:':["1f45b"],':handbag:':["1f45c"],':pouch:':["1f45d"],':mans_shoe:':["1f45e"],':athletic_shoe:':["1f45f"],':high_heel:':["1f460"],':sandal:':["1f461"],':boot:':["1f462"],':footprints:':["1f463"],':bust_in_silhouette:':["1f464"],':boy:':["1f466"],':girl:':["1f467"],':man:':["1f468"],':woman:':["1f469"],':family:':["1f46a"],':couple:':["1f46b"],':cop:':["1f46e"],':dancers:':["1f46f"],':bride_with_veil:':["1f470"],':person_with_blond_hair:':["1f471"],':man_with_gua_pi_mao:':["1f472"],':man_with_turban:':["1f473"],':older_man:':["1f474"],':older_woman:':["1f475"],':grandma:':["1f475"],':baby:':["1f476"],':construction_worker:':["1f477"],':princess:':["1f478"],':japanese_ogre:':["1f479"],':japanese_goblin:':["1f47a"],':ghost:':["1f47b"],':angel:':["1f47c"],':alien:':["1f47d"],':space_invader:':["1f47e"],':imp:':["1f47f"],':skull:':["1f480"],':skeleton:':["1f480"],':card_index:':["1f4c7"],':information_desk_person:':["1f481"],':guardsman:':["1f482"],':dancer:':["1f483"],':lipstick:':["1f484"],':nail_care:':["1f485"],':ledger:':["1f4d2"],':massage:':["1f486"],':notebook:':["1f4d3"],':haircut:':["1f487"],':notebook_with_decorative_cover:':["1f4d4"],':barber:':["1f488"],':closed_book:':["1f4d5"],':syringe:':["1f489"],':book:':["1f4d6"],':pill:':["1f48a"],':green_book:':["1f4d7"],':kiss:':["1f48b"],':blue_book:':["1f4d8"],':love_letter:':["1f48c"],':orange_book:':["1f4d9"],':ring:':["1f48d"],':books:':["1f4da"],':gem:':["1f48e"],':name_badge:':["1f4db"],':couplekiss:':["1f48f"],':scroll:':["1f4dc"],':bouquet:':["1f490"],':pencil:':["1f4dd"],':couple_with_heart:':["1f491"],':telephone_receiver:':["1f4de"],':wedding:':["1f492"],':pager:':["1f4df"],':fax:':["1f4e0"],':heartbeat:':["1f493"],':satellite:':["1f4e1"],':loudspeaker:':["1f4e2"],':broken_heart:':["1f494"],':mega:':["1f4e3"],':outbox_tray:':["1f4e4"],':two_hearts:':["1f495"],':inbox_tray:':["1f4e5"],':package:':["1f4e6"],':sparkling_heart:':["1f496"],':e-mail:':["1f4e7"],':email:':["1f4e7"],':incoming_envelope:':["1f4e8"],':heartpulse:':["1f497"],':envelope_with_arrow:':["1f4e9"],':mailbox_closed:':["1f4ea"],':cupid:':["1f498"],':mailbox:':["1f4eb"],':postbox:':["1f4ee"],':blue_heart:':["1f499"],':newspaper:':["1f4f0"],':iphone:':["1f4f1"],':green_heart:':["1f49a"],':calling:':["1f4f2"],':vibration_mode:':["1f4f3"],':yellow_heart:':["1f49b"],':mobile_phone_off:':["1f4f4"],':signal_strength:':["1f4f6"],':purple_heart:':["1f49c"],':camera:':["1f4f7"],':video_camera:':["1f4f9"],':gift_heart:':["1f49d"],':tv:':["1f4fa"],':radio:':["1f4fb"],':revolving_hearts:':["1f49e"],':vhs:':["1f4fc"],':arrows_clockwise:':["1f503"],':heart_decoration:':["1f49f"],':loud_sound:':["1f50a"],':battery:':["1f50b"],':diamond_shape_with_a_dot_inside:':["1f4a0"],':electric_plug:':["1f50c"],':mag:':["1f50d"],':bulb:':["1f4a1"],':mag_right:':["1f50e"],':lock_with_ink_pen:':["1f50f"],':anger:':["1f4a2"],':closed_lock_with_key:':["1f510"],':key:':["1f511"],':bomb:':["1f4a3"],':lock:':["1f512"],':unlock:':["1f513"],':zzz:':["1f4a4"],':bell:':["1f514"],':bookmark:':["1f516"],':boom:':["1f4a5"],':link:':["1f517"],':radio_button:':["1f518"],':sweat_drops:':["1f4a6"],':back:':["1f519"],':end:':["1f51a"],':droplet:':["1f4a7"],':on:':["1f51b"],':soon:':["1f51c"],':dash:':["1f4a8"],':top:':["1f51d"],':underage:':["1f51e"],':poop:':["1f4a9"],':shit:':["1f4a9"],':hankey:':["1f4a9"],':poo:':["1f4a9"],':ten:':["1f51f"],':muscle:':["1f4aa"],':capital_abcd:':["1f520"],':abcd:':["1f521"],':dizzy:':["1f4ab"],':1234:':["1f522"],':symbols:':["1f523"],':speech_balloon:':["1f4ac"],':abc:':["1f524"],':fire:':["1f525"],':flame:':["1f525"],':white_flower:':["1f4ae"],':flashlight:':["1f526"],':wrench:':["1f527"],':100:':["1f4af"],':hammer:':["1f528"],':nut_and_bolt:':["1f529"],':moneybag:':["1f4b0"],':knife:':["1f52a"],':gun:':["1f52b"],':currency_exchange:':["1f4b1"],':crystal_ball:':["1f52e"],':heavy_dollar_sign:':["1f4b2"],':six_pointed_star:':["1f52f"],':credit_card:':["1f4b3"],':beginner:':["1f530"],':trident:':["1f531"],':yen:':["1f4b4"],':black_square_button:':["1f532"],':white_square_button:':["1f533"],':dollar:':["1f4b5"],':red_circle:':["1f534"],':large_blue_circle:':["1f535"],':money_with_wings:':["1f4b8"],':large_orange_diamond:':["1f536"],':large_blue_diamond:':["1f537"],':chart:':["1f4b9"],':small_orange_diamond:':["1f538"],':small_blue_diamond:':["1f539"],':seat:':["1f4ba"],':small_red_triangle:':["1f53a"],':small_red_triangle_down:':["1f53b"],':computer:':["1f4bb"],':arrow_up_small:':["1f53c"],':briefcase:':["1f4bc"],':arrow_down_small:':["1f53d"],':clock1:':["1f550"],':minidisc:':["1f4bd"],':clock2:':["1f551"],':floppy_disk:':["1f4be"],':clock3:':["1f552"],':cd:':["1f4bf"],':clock4:':["1f553"],':dvd:':["1f4c0"],':clock5:':["1f554"],':clock6:':["1f555"],':file_folder:':["1f4c1"],':clock7:':["1f556"],':clock8:':["1f557"],':open_file_folder:':["1f4c2"],':clock9:':["1f558"],':clock10:':["1f559"],':page_with_curl:':["1f4c3"],':clock11:':["1f55a"],':clock12:':["1f55b"],':page_facing_up:':["1f4c4"],':mount_fuji:':["1f5fb"],':tokyo_tower:':["1f5fc"],':date:':["1f4c5"],':statue_of_liberty:':["1f5fd"],':japan:':["1f5fe"],':calendar:':["1f4c6"],':moyai:':["1f5ff"],':grin:':["1f601"],':joy:':["1f602"],':smiley:':["1f603"],':chart_with_upwards_trend:':["1f4c8"],':smile:':["1f604"],':sweat_smile:':["1f605"],':chart_with_downwards_trend:':["1f4c9"],':laughing:':["1f606"],':satisfied:':["1f606"],':wink:':["1f609"],':bar_chart:':["1f4ca"],':blush:':["1f60a"],':yum:':["1f60b"],':clipboard:':["1f4cb"],':relieved:':["1f60c"],':heart_eyes:':["1f60d"],':pushpin:':["1f4cc"],':smirk:':["1f60f"],':unamused:':["1f612"],':round_pushpin:':["1f4cd"],':sweat:':["1f613"],':pensive:':["1f614"],':paperclip:':["1f4ce"],':confounded:':["1f616"],':kissing_heart:':["1f618"],':straight_ruler:':["1f4cf"],':kissing_closed_eyes:':["1f61a"],':stuck_out_tongue_winking_eye:':["1f61c"],':triangular_ruler:':["1f4d0"],':stuck_out_tongue_closed_eyes:':["1f61d"],':disappointed:':["1f61e"],':bookmark_tabs:':["1f4d1"],':angry:':["1f620"],':rage:':["1f621"],':cry:':["1f622"],':persevere:':["1f623"],':triumph:':["1f624"],':disappointed_relieved:':["1f625"],':fearful:':["1f628"],':weary:':["1f629"],':sleepy:':["1f62a"],':tired_face:':["1f62b"],':sob:':["1f62d"],':cold_sweat:':["1f630"],':scream:':["1f631"],':astonished:':["1f632"],':flushed:':["1f633"],':dizzy_face:':["1f635"],':mask:':["1f637"],':smile_cat:':["1f638"],':joy_cat:':["1f639"],':smiley_cat:':["1f63a"],':heart_eyes_cat:':["1f63b"],':smirk_cat:':["1f63c"],':kissing_cat:':["1f63d"],':pouting_cat:':["1f63e"],':crying_cat_face:':["1f63f"],':scream_cat:':["1f640"],':no_good:':["1f645"],':ok_woman:':["1f646"],':bow:':["1f647"],':see_no_evil:':["1f648"],':hear_no_evil:':["1f649"],':speak_no_evil:':["1f64a"],':raising_hand:':["1f64b"],':raised_hands:':["1f64c"],':person_frowning:':["1f64d"],':person_with_pouting_face:':["1f64e"],':pray:':["1f64f"],':rocket:':["1f680"],':railway_car:':["1f683"],':bullettrain_side:':["1f684"],':bullettrain_front:':["1f685"],':metro:':["1f687"],':station:':["1f689"],':bus:':["1f68c"],':busstop:':["1f68f"],':ambulance:':["1f691"],':fire_engine:':["1f692"],':police_car:':["1f693"],':taxi:':["1f695"],':red_car:':["1f697"],':blue_car:':["1f699"],':truck:':["1f69a"],':ship:':["1f6a2"],':speedboat:':["1f6a4"],':traffic_light:':["1f6a5"],':construction:':["1f6a7"],':rotating_light:':["1f6a8"],':triangular_flag_on_post:':["1f6a9"],':door:':["1f6aa"],':no_entry_sign:':["1f6ab"],':smoking:':["1f6ac"],':no_smoking:':["1f6ad"],':bike:':["1f6b2"],':walking:':["1f6b6"],':mens:':["1f6b9"],':womens:':["1f6ba"],':restroom:':["1f6bb"],':baby_symbol:':["1f6bc"],':toilet:':["1f6bd"],':wc:':["1f6be"],':bath:':["1f6c0"],':metal:':["1f918"],':sign_of_the_horns:':["1f918"],':grinning:':["1f600"],':innocent:':["1f607"],':smiling_imp:':["1f608"],':sunglasses:':["1f60e"],':neutral_face:':["1f610"],':expressionless:':["1f611"],':confused:':["1f615"],':kissing:':["1f617"],':kissing_smiling_eyes:':["1f619"],':stuck_out_tongue:':["1f61b"],':worried:':["1f61f"],':frowning:':["1f626"],':anguished:':["1f627"],':grimacing:':["1f62c"],':open_mouth:':["1f62e"],':hushed:':["1f62f"],':sleeping:':["1f634"],':no_mouth:':["1f636"],':helicopter:':["1f681"],':steam_locomotive:':["1f682"],':train2:':["1f686"],':light_rail:':["1f688"],':tram:':["1f68a"],':oncoming_bus:':["1f68d"],':trolleybus:':["1f68e"],':minibus:':["1f690"],':oncoming_police_car:':["1f694"],':oncoming_taxi:':["1f696"],':oncoming_automobile:':["1f698"],':articulated_lorry:':["1f69b"],':tractor:':["1f69c"],':monorail:':["1f69d"],':mountain_railway:':["1f69e"],':suspension_railway:':["1f69f"],':mountain_cableway:':["1f6a0"],':aerial_tramway:':["1f6a1"],':rowboat:':["1f6a3"],':vertical_traffic_light:':["1f6a6"],':put_litter_in_its_place:':["1f6ae"],':do_not_litter:':["1f6af"],':potable_water:':["1f6b0"],':non-potable_water:':["1f6b1"],':no_bicycles:':["1f6b3"],':bicyclist:':["1f6b4"],':mountain_bicyclist:':["1f6b5"],':no_pedestrians:':["1f6b7"],':children_crossing:':["1f6b8"],':shower:':["1f6bf"],':bathtub:':["1f6c1"],':passport_control:':["1f6c2"],':customs:':["1f6c3"],':baggage_claim:':["1f6c4"],':left_luggage:':["1f6c5"],':earth_africa:':["1f30d"],':earth_americas:':["1f30e"],':globe_with_meridians:':["1f310"],':waxing_crescent_moon:':["1f312"],':waning_gibbous_moon:':["1f316"],':last_quarter_moon:':["1f317"],':waning_crescent_moon:':["1f318"],':new_moon_with_face:':["1f31a"],':last_quarter_moon_with_face:':["1f31c"],':full_moon_with_face:':["1f31d"],':sun_with_face:':["1f31e"],':evergreen_tree:':["1f332"],':deciduous_tree:':["1f333"],':lemon:':["1f34b"],':pear:':["1f350"],':baby_bottle:':["1f37c"],':horse_racing:':["1f3c7"],':rugby_football:':["1f3c9"],':european_post_office:':["1f3e4"],':rat:':["1f400"],':mouse2:':["1f401"],':ox:':["1f402"],':water_buffalo:':["1f403"],':cow2:':["1f404"],':tiger2:':["1f405"],':leopard:':["1f406"],':rabbit2:':["1f407"],':cat2:':["1f408"],':dragon:':["1f409"],':crocodile:':["1f40a"],':whale2:':["1f40b"],':ram:':["1f40f"],':goat:':["1f410"],':rooster:':["1f413"],':dog2:':["1f415"],':pig2:':["1f416"],':dromedary_camel:':["1f42a"],':busts_in_silhouette:':["1f465"],':two_men_holding_hands:':["1f46c"],':two_women_holding_hands:':["1f46d"],':thought_balloon:':["1f4ad"],':euro:':["1f4b6"],':pound:':["1f4b7"],':mailbox_with_mail:':["1f4ec"],':mailbox_with_no_mail:':["1f4ed"],':postal_horn:':["1f4ef"],':no_mobile_phones:':["1f4f5"],':twisted_rightwards_arrows:':["1f500"],':repeat:':["1f501"],':repeat_one:':["1f502"],':arrows_counterclockwise:':["1f504"],':low_brightness:':["1f505"],':high_brightness:':["1f506"],':mute:':["1f507"],':sound:':["1f509"],':no_bell:':["1f515"],':microscope:':["1f52c"],':telescope:':["1f52d"],':clock130:':["1f55c"],':clock230:':["1f55d"],':clock330:':["1f55e"],':clock430:':["1f55f"],':clock530:':["1f560"],':clock630:':["1f561"],':clock730:':["1f562"],':clock830:':["1f563"],':clock930:':["1f564"],':clock1030:':["1f565"],':clock1130:':["1f566"],':clock1230:':["1f567"],':speaker:':["1f508"],':train:':["1f68b"],':film_frames:':["1f39e"],':tickets:':["1f39f"],':admission_tickets:':["1f39f"],':medal:':["1f3c5"],':sports_medal:':["1f3c5"],':lifter:':["1f3cb"],':weight_lifter:':["1f3cb"],':golfer:':["1f3cc"],':motorcycle:':["1f3cd"],':racing_motorcycle:':["1f3cd"],':race_car:':["1f3ce"],':racing_car:':["1f3ce"],':military_medal:':["1f396"],':reminder_ribbon:':["1f397"],':hot_pepper:':["1f336"],':cloud_rain:':["1f327"],':cloud_with_rain:':["1f327"],':cloud_snow:':["1f328"],':cloud_with_snow:':["1f328"],':cloud_lightning:':["1f329"],':cloud_with_lightning:':["1f329"],':cloud_tornado:':["1f32a"],':cloud_with_tornado:':["1f32a"],':fog:':["1f32b"],':wind_blowing_face:':["1f32c"],':chipmunk:':["1f43f"],':spider:':["1f577"],':spider_web:':["1f578"],':thermometer:':["1f321"],':microphone2:':["1f399"],':studio_microphone:':["1f399"],':level_slider:':["1f39a"],':control_knobs:':["1f39b"],':flag_white:':["1f3f3"],':waving_white_flag:':["1f3f3"],':flag_black:':["1f3f4"],':waving_black_flag:':["1f3f4"],':rosette:':["1f3f5"],':label:':["1f3f7"],':camera_with_flash:':["1f4f8"],':projector:':["1f4fd"],':film_projector:':["1f4fd"],':om_symbol:':["1f549"],':dove:':["1f54a"],':dove_of_peace:':["1f54a"],':candle:':["1f56f"],':clock:':["1f570"],':mantlepiece_clock:':["1f570"],':hole:':["1f573"],':dark_sunglasses:':["1f576"],':joystick:':["1f579"],':paperclips:':["1f587"],':linked_paperclips:':["1f587"],':pen_ballpoint:':["1f58a"],':lower_left_ballpoint_pen:':["1f58a"],':pen_fountain:':["1f58b"],':lower_left_fountain_pen:':["1f58b"],':paintbrush:':["1f58c"],':lower_left_paintbrush:':["1f58c"],':crayon:':["1f58d"],':lower_left_crayon:':["1f58d"],':desktop:':["1f5a5"],':desktop_computer:':["1f5a5"],':printer:':["1f5a8"],':trackball:':["1f5b2"],':frame_photo:':["1f5bc"],':frame_with_picture:':["1f5bc"],':dividers:':["1f5c2"],':card_index_dividers:':["1f5c2"],':card_box:':["1f5c3"],':card_file_box:':["1f5c3"],':file_cabinet:':["1f5c4"],':wastebasket:':["1f5d1"],':notepad_spiral:':["1f5d2"],':spiral_note_pad:':["1f5d2"],':calendar_spiral:':["1f5d3"],':spiral_calendar_pad:':["1f5d3"],':compression:':["1f5dc"],':key2:':["1f5dd"],':old_key:':["1f5dd"],':newspaper2:':["1f5de"],':rolled_up_newspaper:':["1f5de"],':dagger:':["1f5e1"],':dagger_knife:':["1f5e1"],':speaking_head:':["1f5e3"],':speaking_head_in_silhouette:':["1f5e3"],':anger_right:':["1f5ef"],':right_anger_bubble:':["1f5ef"],':ballot_box:':["1f5f3"],':ballot_box_with_ballot:':["1f5f3"],':map:':["1f5fa"],':world_map:':["1f5fa"],':sleeping_accommodation:':["1f6cc"],':tools:':["1f6e0"],':hammer_and_wrench:':["1f6e0"],':shield:':["1f6e1"],':oil:':["1f6e2"],':oil_drum:':["1f6e2"],':satellite_orbital:':["1f6f0"],':fork_knife_plate:':["1f37d"],':fork_and_knife_with_plate:':["1f37d"],':eye:':["1f441"],':levitate:':["1f574"],':man_in_business_suit_levitating:':["1f574"],':spy:':["1f575"],':sleuth_or_spy:':["1f575"],':hand_splayed:':["1f590"],':raised_hand_with_fingers_splayed:':["1f590"],':middle_finger:':["1f595"],':reversed_hand_with_middle_finger_extended:':["1f595"],':vulcan:':["1f596"],':raised_hand_with_part_between_middle_and_ring_fingers:':["1f596"],':slight_frown:':["1f641"],':slightly_frowning_face:':["1f641"],':slight_smile:':["1f642"],':slightly_smiling_face:':["1f642"],':mountain_snow:':["1f3d4"],':snow_capped_mountain:':["1f3d4"],':camping:':["1f3d5"],':beach:':["1f3d6"],':beach_with_umbrella:':["1f3d6"],':construction_site:':["1f3d7"],':building_construction:':["1f3d7"],':homes:':["1f3d8"],':house_buildings:':["1f3d8"],':cityscape:':["1f3d9"],':house_abandoned:':["1f3da"],':derelict_house_building:':["1f3da"],':classical_building:':["1f3db"],':desert:':["1f3dc"],':island:':["1f3dd"],':desert_island:':["1f3dd"],':park:':["1f3de"],':national_park:':["1f3de"],':stadium:':["1f3df"],':couch:':["1f6cb"],':couch_and_lamp:':["1f6cb"],':shopping_bags:':["1f6cd"],':bellhop:':["1f6ce"],':bellhop_bell:':["1f6ce"],':bed:':["1f6cf"],':motorway:':["1f6e3"],':railway_track:':["1f6e4"],':railroad_track:':["1f6e4"],':motorboat:':["1f6e5"],':airplane_small:':["1f6e9"],':small_airplane:':["1f6e9"],':airplane_departure:':["1f6eb"],':airplane_arriving:':["1f6ec"],':cruise_ship:':["1f6f3"],':passenger_ship:':["1f6f3"],':tone1:':["1f3fb"],':tone2:':["1f3fc"],':tone3:':["1f3fd"],':tone4:':["1f3fe"],':tone5:':["1f3ff"],':white_sun_small_cloud:':["1f324"],':white_sun_with_small_cloud:':["1f324"],':white_sun_cloud:':["1f325"],':white_sun_behind_cloud:':["1f325"],':white_sun_rain_cloud:':["1f326"],':white_sun_behind_cloud_with_rain:':["1f326"],':mouse_three_button:':["1f5b1"],':three_button_mouse:':["1f5b1"],':upside_down:':["1f643"],':upside_down_face:':["1f643"],':money_mouth:':["1f911"],':money_mouth_face:':["1f911"],':nerd:':["1f913"],':nerd_face:':["1f913"],':hugging:':["1f917"],':hugging_face:':["1f917"],':rolling_eyes:':["1f644"],':face_with_rolling_eyes:':["1f644"],':thinking:':["1f914"],':thinking_face:':["1f914"],':zipper_mouth:':["1f910"],':zipper_mouth_face:':["1f910"],':thermometer_face:':["1f912"],':face_with_thermometer:':["1f912"],':head_bandage:':["1f915"],':face_with_head_bandage:':["1f915"],':robot:':["1f916"],':robot_face:':["1f916"],':lion_face:':["1f981"],':lion:':["1f981"],':unicorn:':["1f984"],':unicorn_face:':["1f984"],':scorpion:':["1f982"],':crab:':["1f980"],':turkey:':["1f983"],':cheese:':["1f9c0"],':cheese_wedge:':["1f9c0"],':hotdog:':["1f32d"],':hot_dog:':["1f32d"],':taco:':["1f32e"],':burrito:':["1f32f"],':popcorn:':["1f37f"],':champagne:':["1f37e"],':bottle_with_popping_cork:':["1f37e"],':bow_and_arrow:':["1f3f9"],':archery:':["1f3f9"],':amphora:':["1f3fa"],':place_of_worship:':["1f6d0"],':worship_symbol:':["1f6d0"],':kaaba:':["1f54b"],':mosque:':["1f54c"],':synagogue:':["1f54d"],':menorah:':["1f54e"],':prayer_beads:':["1f4ff"],':cricket:':["1f3cf"],':cricket_bat_ball:':["1f3cf"],':volleyball:':["1f3d0"],':field_hockey:':["1f3d1"],':hockey:':["1f3d2"],':ping_pong:':["1f3d3"],':table_tennis:':["1f3d3"],':badminton:':["1f3f8"],':fast_forward:':["23e9"],':rewind:':["23ea"],':arrow_double_up:':["23eb"],':arrow_double_down:':["23ec"],':alarm_clock:':["23f0"],':hourglass_flowing_sand:':["23f3"],':ophiuchus:':["26ce"],':white_check_mark:':["2705"],':fist:':["270a"],':raised_hand:':["270b"],':sparkles:':["2728"],':x:':["274c"],':negative_squared_cross_mark:':["274e"],':question:':["2753"],':grey_question:':["2754"],':grey_exclamation:':["2755"],':heavy_plus_sign:':["2795"],':heavy_minus_sign:':["2796"],':heavy_division_sign:':["2797"],':curly_loop:':["27b0"],':wavy_dash:':["3030"],':loop:':["27bf"],':cross:':["271d"],':latin_cross:':["271d"],':keyboard:':["2328"],':writing_hand:':["270d"],':track_next:':["23ed"],':next_track:':["23ed"],':track_previous:':["23ee"],':previous_track:':["23ee"],':play_pause:':["23ef"],':stopwatch:':["23f1"],':timer:':["23f2"],':timer_clock:':["23f2"],':pause_button:':["23f8"],':double_vertical_bar:':["23f8"],':stop_button:':["23f9"],':record_button:':["23fa"],':umbrella2:':["2602"],':snowman2:':["2603"],':comet:':["2604"],':shamrock:':["2618"],':skull_crossbones:':["2620"],':skull_and_crossbones:':["2620"],':radioactive:':["2622"],':radioactive_sign:':["2622"],':biohazard:':["2623"],':biohazard_sign:':["2623"],':orthodox_cross:':["2626"],':star_and_crescent:':["262a"],':peace:':["262e"],':peace_symbol:':["262e"],':yin_yang:':["262f"],':wheel_of_dharma:':["2638"],':frowning2:':["2639"],':white_frowning_face:':["2639"],':hammer_pick:':["2692"],':hammer_and_pick:':["2692"],':crossed_swords:':["2694"],':scales:':["2696"],':alembic:':["2697"],':gear:':["2699"],':atom:':["269b"],':atom_symbol:':["269b"],':fleur-de-lis:':["269c"],':coffin:':["26b0"],':urn:':["26b1"],':funeral_urn:':["26b1"],':thunder_cloud_rain:':["26c8"],':thunder_cloud_and_rain:':["26c8"],':pick:':["26cf"],':helmet_with_cross:':["26d1"],':helmet_with_white_cross:':["26d1"],':chains:':["26d3"],':shinto_shrine:':["26e9"],':mountain:':["26f0"],':beach_umbrella:':["26f1"],':umbrella_on_ground:':["26f1"],':ferry:':["26f4"],':skier:':["26f7"],':ice_skate:':["26f8"],':basketball_player:':["26f9"],':person_with_ball:':["26f9"],':star_of_david:':["2721"],':heart_exclamation:':["2763"],':heavy_heart_exclamation_mark_ornament:':["2763"]};
+ ns.emojioneList = {":kiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"fname":"1f469-2764-1f48b-1f469","uc":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","isCanonical": true},":couplekiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"fname":"1f469-2764-1f48b-1f469","uc":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","isCanonical": false},":kiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"fname":"1f468-2764-1f48b-1f468","uc":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","isCanonical": true},":couplekiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"fname":"1f468-2764-1f48b-1f468","uc":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","isCanonical": false},":family_mmbb:":{"unicode":["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],"fname":"1f468-1f468-1f466-1f466","uc":"1f468-200d-1f468-200d-1f466-200d-1f466","isCanonical": true},":family_mmgb:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],"fname":"1f468-1f468-1f467-1f466","uc":"1f468-200d-1f468-200d-1f467-200d-1f466","isCanonical": true},":family_mmgg:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],"fname":"1f468-1f468-1f467-1f467","uc":"1f468-200d-1f468-200d-1f467-200d-1f467","isCanonical": true},":family_mwbb:":{"unicode":["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],"fname":"1f468-1f469-1f466-1f466","uc":"1f468-200d-1f469-200d-1f466-200d-1f466","isCanonical": true},":family_mwgb:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],"fname":"1f468-1f469-1f467-1f466","uc":"1f468-200d-1f469-200d-1f467-200d-1f466","isCanonical": true},":family_mwgg:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],"fname":"1f468-1f469-1f467-1f467","uc":"1f468-200d-1f469-200d-1f467-200d-1f467","isCanonical": true},":family_wwbb:":{"unicode":["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],"fname":"1f469-1f469-1f466-1f466","uc":"1f469-200d-1f469-200d-1f466-200d-1f466","isCanonical": true},":family_wwgb:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],"fname":"1f469-1f469-1f467-1f466","uc":"1f469-200d-1f469-200d-1f467-200d-1f466","isCanonical": true},":family_wwgg:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],"fname":"1f469-1f469-1f467-1f467","uc":"1f469-200d-1f469-200d-1f467-200d-1f467","isCanonical": true},":couple_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"fname":"1f469-2764-1f469","uc":"1f469-200d-2764-fe0f-200d-1f469","isCanonical": true},":couple_with_heart_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"fname":"1f469-2764-1f469","uc":"1f469-200d-2764-fe0f-200d-1f469","isCanonical": false},":couple_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"fname":"1f468-2764-1f468","uc":"1f468-200d-2764-fe0f-200d-1f468","isCanonical": true},":couple_with_heart_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"fname":"1f468-2764-1f468","uc":"1f468-200d-2764-fe0f-200d-1f468","isCanonical": false},":family_mmb:":{"unicode":["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],"fname":"1f468-1f468-1f466","uc":"1f468-200d-1f468-200d-1f466","isCanonical": true},":family_mmg:":{"unicode":["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],"fname":"1f468-1f468-1f467","uc":"1f468-200d-1f468-200d-1f467","isCanonical": true},":family_mwg:":{"unicode":["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],"fname":"1f468-1f469-1f467","uc":"1f468-200d-1f469-200d-1f467","isCanonical": true},":family_wwb:":{"unicode":["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],"fname":"1f469-1f469-1f466","uc":"1f469-200d-1f469-200d-1f466","isCanonical": true},":family_wwg:":{"unicode":["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],"fname":"1f469-1f469-1f467","uc":"1f469-200d-1f469-200d-1f467","isCanonical": true},":rainbow_flag:":{"unicode":["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],"fname":"1f3f3-1f308","uc":"1f3f3-fe0f-200d-1f308","isCanonical": true},":gay_pride_flag:":{"unicode":["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],"fname":"1f3f3-1f308","uc":"1f3f3-fe0f-200d-1f308","isCanonical": false},":eye_in_speech_bubble:":{"unicode":["1f441-200d-1f5e8","1f441-1f5e8"],"fname":"1f441-1f5e8","uc":"1f441-200d-1f5e8","isCanonical": true},":hash:":{"unicode":["0023-fe0f-20e3","0023-20e3"],"fname":"0023-20e3","uc":"0023-20e3","isCanonical": true},":zero:":{"unicode":["0030-fe0f-20e3","0030-20e3"],"fname":"0030-20e3","uc":"0030-20e3","isCanonical": true},":one:":{"unicode":["0031-fe0f-20e3","0031-20e3"],"fname":"0031-20e3","uc":"0031-20e3","isCanonical": true},":two:":{"unicode":["0032-fe0f-20e3","0032-20e3"],"fname":"0032-20e3","uc":"0032-20e3","isCanonical": true},":three:":{"unicode":["0033-fe0f-20e3","0033-20e3"],"fname":"0033-20e3","uc":"0033-20e3","isCanonical": true},":four:":{"unicode":["0034-fe0f-20e3","0034-20e3"],"fname":"0034-20e3","uc":"0034-20e3","isCanonical": true},":five:":{"unicode":["0035-fe0f-20e3","0035-20e3"],"fname":"0035-20e3","uc":"0035-20e3","isCanonical": true},":six:":{"unicode":["0036-fe0f-20e3","0036-20e3"],"fname":"0036-20e3","uc":"0036-20e3","isCanonical": true},":seven:":{"unicode":["0037-fe0f-20e3","0037-20e3"],"fname":"0037-20e3","uc":"0037-20e3","isCanonical": true},":eight:":{"unicode":["0038-fe0f-20e3","0038-20e3"],"fname":"0038-20e3","uc":"0038-20e3","isCanonical": true},":nine:":{"unicode":["0039-fe0f-20e3","0039-20e3"],"fname":"0039-20e3","uc":"0039-20e3","isCanonical": true},":asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"fname":"002a-20e3","uc":"002a-20e3","isCanonical": true},":keycap_asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"fname":"002a-20e3","uc":"002a-20e3","isCanonical": false},":handball_tone5:":{"unicode":["1f93e-1f3ff"],"fname":"1f93e-1f3ff","uc":"1f93e-1f3ff","isCanonical": true},":handball_tone4:":{"unicode":["1f93e-1f3fe"],"fname":"1f93e-1f3fe","uc":"1f93e-1f3fe","isCanonical": true},":handball_tone3:":{"unicode":["1f93e-1f3fd"],"fname":"1f93e-1f3fd","uc":"1f93e-1f3fd","isCanonical": true},":handball_tone2:":{"unicode":["1f93e-1f3fc"],"fname":"1f93e-1f3fc","uc":"1f93e-1f3fc","isCanonical": true},":handball_tone1:":{"unicode":["1f93e-1f3fb"],"fname":"1f93e-1f3fb","uc":"1f93e-1f3fb","isCanonical": true},":water_polo_tone5:":{"unicode":["1f93d-1f3ff"],"fname":"1f93d-1f3ff","uc":"1f93d-1f3ff","isCanonical": true},":water_polo_tone4:":{"unicode":["1f93d-1f3fe"],"fname":"1f93d-1f3fe","uc":"1f93d-1f3fe","isCanonical": true},":water_polo_tone3:":{"unicode":["1f93d-1f3fd"],"fname":"1f93d-1f3fd","uc":"1f93d-1f3fd","isCanonical": true},":water_polo_tone2:":{"unicode":["1f93d-1f3fc"],"fname":"1f93d-1f3fc","uc":"1f93d-1f3fc","isCanonical": true},":water_polo_tone1:":{"unicode":["1f93d-1f3fb"],"fname":"1f93d-1f3fb","uc":"1f93d-1f3fb","isCanonical": true},":wrestlers_tone5:":{"unicode":["1f93c-1f3ff"],"fname":"1f93c-1f3ff","uc":"1f93c-1f3ff","isCanonical": true},":wrestling_tone5:":{"unicode":["1f93c-1f3ff"],"fname":"1f93c-1f3ff","uc":"1f93c-1f3ff","isCanonical": false},":wrestlers_tone4:":{"unicode":["1f93c-1f3fe"],"fname":"1f93c-1f3fe","uc":"1f93c-1f3fe","isCanonical": true},":wrestling_tone4:":{"unicode":["1f93c-1f3fe"],"fname":"1f93c-1f3fe","uc":"1f93c-1f3fe","isCanonical": false},":wrestlers_tone3:":{"unicode":["1f93c-1f3fd"],"fname":"1f93c-1f3fd","uc":"1f93c-1f3fd","isCanonical": true},":wrestling_tone3:":{"unicode":["1f93c-1f3fd"],"fname":"1f93c-1f3fd","uc":"1f93c-1f3fd","isCanonical": false},":wrestlers_tone2:":{"unicode":["1f93c-1f3fc"],"fname":"1f93c-1f3fc","uc":"1f93c-1f3fc","isCanonical": true},":wrestling_tone2:":{"unicode":["1f93c-1f3fc"],"fname":"1f93c-1f3fc","uc":"1f93c-1f3fc","isCanonical": false},":wrestlers_tone1:":{"unicode":["1f93c-1f3fb"],"fname":"1f93c-1f3fb","uc":"1f93c-1f3fb","isCanonical": true},":wrestling_tone1:":{"unicode":["1f93c-1f3fb"],"fname":"1f93c-1f3fb","uc":"1f93c-1f3fb","isCanonical": false},":juggling_tone5:":{"unicode":["1f939-1f3ff"],"fname":"1f939-1f3ff","uc":"1f939-1f3ff","isCanonical": true},":juggler_tone5:":{"unicode":["1f939-1f3ff"],"fname":"1f939-1f3ff","uc":"1f939-1f3ff","isCanonical": false},":juggling_tone4:":{"unicode":["1f939-1f3fe"],"fname":"1f939-1f3fe","uc":"1f939-1f3fe","isCanonical": true},":juggler_tone4:":{"unicode":["1f939-1f3fe"],"fname":"1f939-1f3fe","uc":"1f939-1f3fe","isCanonical": false},":juggling_tone3:":{"unicode":["1f939-1f3fd"],"fname":"1f939-1f3fd","uc":"1f939-1f3fd","isCanonical": true},":juggler_tone3:":{"unicode":["1f939-1f3fd"],"fname":"1f939-1f3fd","uc":"1f939-1f3fd","isCanonical": false},":juggling_tone2:":{"unicode":["1f939-1f3fc"],"fname":"1f939-1f3fc","uc":"1f939-1f3fc","isCanonical": true},":juggler_tone2:":{"unicode":["1f939-1f3fc"],"fname":"1f939-1f3fc","uc":"1f939-1f3fc","isCanonical": false},":juggling_tone1:":{"unicode":["1f939-1f3fb"],"fname":"1f939-1f3fb","uc":"1f939-1f3fb","isCanonical": true},":juggler_tone1:":{"unicode":["1f939-1f3fb"],"fname":"1f939-1f3fb","uc":"1f939-1f3fb","isCanonical": false},":cartwheel_tone5:":{"unicode":["1f938-1f3ff"],"fname":"1f938-1f3ff","uc":"1f938-1f3ff","isCanonical": true},":person_doing_cartwheel_tone5:":{"unicode":["1f938-1f3ff"],"fname":"1f938-1f3ff","uc":"1f938-1f3ff","isCanonical": false},":cartwheel_tone4:":{"unicode":["1f938-1f3fe"],"fname":"1f938-1f3fe","uc":"1f938-1f3fe","isCanonical": true},":person_doing_cartwheel_tone4:":{"unicode":["1f938-1f3fe"],"fname":"1f938-1f3fe","uc":"1f938-1f3fe","isCanonical": false},":cartwheel_tone3:":{"unicode":["1f938-1f3fd"],"fname":"1f938-1f3fd","uc":"1f938-1f3fd","isCanonical": true},":person_doing_cartwheel_tone3:":{"unicode":["1f938-1f3fd"],"fname":"1f938-1f3fd","uc":"1f938-1f3fd","isCanonical": false},":cartwheel_tone2:":{"unicode":["1f938-1f3fc"],"fname":"1f938-1f3fc","uc":"1f938-1f3fc","isCanonical": true},":person_doing_cartwheel_tone2:":{"unicode":["1f938-1f3fc"],"fname":"1f938-1f3fc","uc":"1f938-1f3fc","isCanonical": false},":cartwheel_tone1:":{"unicode":["1f938-1f3fb"],"fname":"1f938-1f3fb","uc":"1f938-1f3fb","isCanonical": true},":person_doing_cartwheel_tone1:":{"unicode":["1f938-1f3fb"],"fname":"1f938-1f3fb","uc":"1f938-1f3fb","isCanonical": false},":shrug_tone5:":{"unicode":["1f937-1f3ff"],"fname":"1f937-1f3ff","uc":"1f937-1f3ff","isCanonical": true},":shrug_tone4:":{"unicode":["1f937-1f3fe"],"fname":"1f937-1f3fe","uc":"1f937-1f3fe","isCanonical": true},":shrug_tone3:":{"unicode":["1f937-1f3fd"],"fname":"1f937-1f3fd","uc":"1f937-1f3fd","isCanonical": true},":shrug_tone2:":{"unicode":["1f937-1f3fc"],"fname":"1f937-1f3fc","uc":"1f937-1f3fc","isCanonical": true},":shrug_tone1:":{"unicode":["1f937-1f3fb"],"fname":"1f937-1f3fb","uc":"1f937-1f3fb","isCanonical": true},":mrs_claus_tone5:":{"unicode":["1f936-1f3ff"],"fname":"1f936-1f3ff","uc":"1f936-1f3ff","isCanonical": true},":mother_christmas_tone5:":{"unicode":["1f936-1f3ff"],"fname":"1f936-1f3ff","uc":"1f936-1f3ff","isCanonical": false},":mrs_claus_tone4:":{"unicode":["1f936-1f3fe"],"fname":"1f936-1f3fe","uc":"1f936-1f3fe","isCanonical": true},":mother_christmas_tone4:":{"unicode":["1f936-1f3fe"],"fname":"1f936-1f3fe","uc":"1f936-1f3fe","isCanonical": false},":mrs_claus_tone3:":{"unicode":["1f936-1f3fd"],"fname":"1f936-1f3fd","uc":"1f936-1f3fd","isCanonical": true},":mother_christmas_tone3:":{"unicode":["1f936-1f3fd"],"fname":"1f936-1f3fd","uc":"1f936-1f3fd","isCanonical": false},":mrs_claus_tone2:":{"unicode":["1f936-1f3fc"],"fname":"1f936-1f3fc","uc":"1f936-1f3fc","isCanonical": true},":mother_christmas_tone2:":{"unicode":["1f936-1f3fc"],"fname":"1f936-1f3fc","uc":"1f936-1f3fc","isCanonical": false},":mrs_claus_tone1:":{"unicode":["1f936-1f3fb"],"fname":"1f936-1f3fb","uc":"1f936-1f3fb","isCanonical": true},":mother_christmas_tone1:":{"unicode":["1f936-1f3fb"],"fname":"1f936-1f3fb","uc":"1f936-1f3fb","isCanonical": false},":man_in_tuxedo_tone5:":{"unicode":["1f935-1f3ff"],"fname":"1f935-1f3ff","uc":"1f935-1f3ff","isCanonical": true},":tuxedo_tone5:":{"unicode":["1f935-1f3ff"],"fname":"1f935-1f3ff","uc":"1f935-1f3ff","isCanonical": false},":man_in_tuxedo_tone4:":{"unicode":["1f935-1f3fe"],"fname":"1f935-1f3fe","uc":"1f935-1f3fe","isCanonical": true},":tuxedo_tone4:":{"unicode":["1f935-1f3fe"],"fname":"1f935-1f3fe","uc":"1f935-1f3fe","isCanonical": false},":man_in_tuxedo_tone3:":{"unicode":["1f935-1f3fd"],"fname":"1f935-1f3fd","uc":"1f935-1f3fd","isCanonical": true},":tuxedo_tone3:":{"unicode":["1f935-1f3fd"],"fname":"1f935-1f3fd","uc":"1f935-1f3fd","isCanonical": false},":man_in_tuxedo_tone2:":{"unicode":["1f935-1f3fc"],"fname":"1f935-1f3fc","uc":"1f935-1f3fc","isCanonical": true},":tuxedo_tone2:":{"unicode":["1f935-1f3fc"],"fname":"1f935-1f3fc","uc":"1f935-1f3fc","isCanonical": false},":man_in_tuxedo_tone1:":{"unicode":["1f935-1f3fb"],"fname":"1f935-1f3fb","uc":"1f935-1f3fb","isCanonical": true},":tuxedo_tone1:":{"unicode":["1f935-1f3fb"],"fname":"1f935-1f3fb","uc":"1f935-1f3fb","isCanonical": false},":prince_tone5:":{"unicode":["1f934-1f3ff"],"fname":"1f934-1f3ff","uc":"1f934-1f3ff","isCanonical": true},":prince_tone4:":{"unicode":["1f934-1f3fe"],"fname":"1f934-1f3fe","uc":"1f934-1f3fe","isCanonical": true},":prince_tone3:":{"unicode":["1f934-1f3fd"],"fname":"1f934-1f3fd","uc":"1f934-1f3fd","isCanonical": true},":prince_tone2:":{"unicode":["1f934-1f3fc"],"fname":"1f934-1f3fc","uc":"1f934-1f3fc","isCanonical": true},":prince_tone1:":{"unicode":["1f934-1f3fb"],"fname":"1f934-1f3fb","uc":"1f934-1f3fb","isCanonical": true},":selfie_tone5:":{"unicode":["1f933-1f3ff"],"fname":"1f933-1f3ff","uc":"1f933-1f3ff","isCanonical": true},":selfie_tone4:":{"unicode":["1f933-1f3fe"],"fname":"1f933-1f3fe","uc":"1f933-1f3fe","isCanonical": true},":selfie_tone3:":{"unicode":["1f933-1f3fd"],"fname":"1f933-1f3fd","uc":"1f933-1f3fd","isCanonical": true},":selfie_tone2:":{"unicode":["1f933-1f3fc"],"fname":"1f933-1f3fc","uc":"1f933-1f3fc","isCanonical": true},":selfie_tone1:":{"unicode":["1f933-1f3fb"],"fname":"1f933-1f3fb","uc":"1f933-1f3fb","isCanonical": true},":pregnant_woman_tone5:":{"unicode":["1f930-1f3ff"],"fname":"1f930-1f3ff","uc":"1f930-1f3ff","isCanonical": true},":expecting_woman_tone5:":{"unicode":["1f930-1f3ff"],"fname":"1f930-1f3ff","uc":"1f930-1f3ff","isCanonical": false},":pregnant_woman_tone4:":{"unicode":["1f930-1f3fe"],"fname":"1f930-1f3fe","uc":"1f930-1f3fe","isCanonical": true},":expecting_woman_tone4:":{"unicode":["1f930-1f3fe"],"fname":"1f930-1f3fe","uc":"1f930-1f3fe","isCanonical": false},":pregnant_woman_tone3:":{"unicode":["1f930-1f3fd"],"fname":"1f930-1f3fd","uc":"1f930-1f3fd","isCanonical": true},":expecting_woman_tone3:":{"unicode":["1f930-1f3fd"],"fname":"1f930-1f3fd","uc":"1f930-1f3fd","isCanonical": false},":pregnant_woman_tone2:":{"unicode":["1f930-1f3fc"],"fname":"1f930-1f3fc","uc":"1f930-1f3fc","isCanonical": true},":expecting_woman_tone2:":{"unicode":["1f930-1f3fc"],"fname":"1f930-1f3fc","uc":"1f930-1f3fc","isCanonical": false},":pregnant_woman_tone1:":{"unicode":["1f930-1f3fb"],"fname":"1f930-1f3fb","uc":"1f930-1f3fb","isCanonical": true},":expecting_woman_tone1:":{"unicode":["1f930-1f3fb"],"fname":"1f930-1f3fb","uc":"1f930-1f3fb","isCanonical": false},":face_palm_tone5:":{"unicode":["1f926-1f3ff"],"fname":"1f926-1f3ff","uc":"1f926-1f3ff","isCanonical": true},":facepalm_tone5:":{"unicode":["1f926-1f3ff"],"fname":"1f926-1f3ff","uc":"1f926-1f3ff","isCanonical": false},":face_palm_tone4:":{"unicode":["1f926-1f3fe"],"fname":"1f926-1f3fe","uc":"1f926-1f3fe","isCanonical": true},":facepalm_tone4:":{"unicode":["1f926-1f3fe"],"fname":"1f926-1f3fe","uc":"1f926-1f3fe","isCanonical": false},":face_palm_tone3:":{"unicode":["1f926-1f3fd"],"fname":"1f926-1f3fd","uc":"1f926-1f3fd","isCanonical": true},":facepalm_tone3:":{"unicode":["1f926-1f3fd"],"fname":"1f926-1f3fd","uc":"1f926-1f3fd","isCanonical": false},":face_palm_tone2:":{"unicode":["1f926-1f3fc"],"fname":"1f926-1f3fc","uc":"1f926-1f3fc","isCanonical": true},":facepalm_tone2:":{"unicode":["1f926-1f3fc"],"fname":"1f926-1f3fc","uc":"1f926-1f3fc","isCanonical": false},":face_palm_tone1:":{"unicode":["1f926-1f3fb"],"fname":"1f926-1f3fb","uc":"1f926-1f3fb","isCanonical": true},":facepalm_tone1:":{"unicode":["1f926-1f3fb"],"fname":"1f926-1f3fb","uc":"1f926-1f3fb","isCanonical": false},":fingers_crossed_tone5:":{"unicode":["1f91e-1f3ff"],"fname":"1f91e-1f3ff","uc":"1f91e-1f3ff","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone5:":{"unicode":["1f91e-1f3ff"],"fname":"1f91e-1f3ff","uc":"1f91e-1f3ff","isCanonical": false},":fingers_crossed_tone4:":{"unicode":["1f91e-1f3fe"],"fname":"1f91e-1f3fe","uc":"1f91e-1f3fe","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone4:":{"unicode":["1f91e-1f3fe"],"fname":"1f91e-1f3fe","uc":"1f91e-1f3fe","isCanonical": false},":fingers_crossed_tone3:":{"unicode":["1f91e-1f3fd"],"fname":"1f91e-1f3fd","uc":"1f91e-1f3fd","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone3:":{"unicode":["1f91e-1f3fd"],"fname":"1f91e-1f3fd","uc":"1f91e-1f3fd","isCanonical": false},":fingers_crossed_tone2:":{"unicode":["1f91e-1f3fc"],"fname":"1f91e-1f3fc","uc":"1f91e-1f3fc","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone2:":{"unicode":["1f91e-1f3fc"],"fname":"1f91e-1f3fc","uc":"1f91e-1f3fc","isCanonical": false},":fingers_crossed_tone1:":{"unicode":["1f91e-1f3fb"],"fname":"1f91e-1f3fb","uc":"1f91e-1f3fb","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone1:":{"unicode":["1f91e-1f3fb"],"fname":"1f91e-1f3fb","uc":"1f91e-1f3fb","isCanonical": false},":handshake_tone5:":{"unicode":["1f91d-1f3ff"],"fname":"1f91d-1f3ff","uc":"1f91d-1f3ff","isCanonical": true},":shaking_hands_tone5:":{"unicode":["1f91d-1f3ff"],"fname":"1f91d-1f3ff","uc":"1f91d-1f3ff","isCanonical": false},":handshake_tone4:":{"unicode":["1f91d-1f3fe"],"fname":"1f91d-1f3fe","uc":"1f91d-1f3fe","isCanonical": true},":shaking_hands_tone4:":{"unicode":["1f91d-1f3fe"],"fname":"1f91d-1f3fe","uc":"1f91d-1f3fe","isCanonical": false},":handshake_tone3:":{"unicode":["1f91d-1f3fd"],"fname":"1f91d-1f3fd","uc":"1f91d-1f3fd","isCanonical": true},":shaking_hands_tone3:":{"unicode":["1f91d-1f3fd"],"fname":"1f91d-1f3fd","uc":"1f91d-1f3fd","isCanonical": false},":handshake_tone2:":{"unicode":["1f91d-1f3fc"],"fname":"1f91d-1f3fc","uc":"1f91d-1f3fc","isCanonical": true},":shaking_hands_tone2:":{"unicode":["1f91d-1f3fc"],"fname":"1f91d-1f3fc","uc":"1f91d-1f3fc","isCanonical": false},":handshake_tone1:":{"unicode":["1f91d-1f3fb"],"fname":"1f91d-1f3fb","uc":"1f91d-1f3fb","isCanonical": true},":shaking_hands_tone1:":{"unicode":["1f91d-1f3fb"],"fname":"1f91d-1f3fb","uc":"1f91d-1f3fb","isCanonical": false},":right_facing_fist_tone5:":{"unicode":["1f91c-1f3ff"],"fname":"1f91c-1f3ff","uc":"1f91c-1f3ff","isCanonical": true},":right_fist_tone5:":{"unicode":["1f91c-1f3ff"],"fname":"1f91c-1f3ff","uc":"1f91c-1f3ff","isCanonical": false},":right_facing_fist_tone4:":{"unicode":["1f91c-1f3fe"],"fname":"1f91c-1f3fe","uc":"1f91c-1f3fe","isCanonical": true},":right_fist_tone4:":{"unicode":["1f91c-1f3fe"],"fname":"1f91c-1f3fe","uc":"1f91c-1f3fe","isCanonical": false},":right_facing_fist_tone3:":{"unicode":["1f91c-1f3fd"],"fname":"1f91c-1f3fd","uc":"1f91c-1f3fd","isCanonical": true},":right_fist_tone3:":{"unicode":["1f91c-1f3fd"],"fname":"1f91c-1f3fd","uc":"1f91c-1f3fd","isCanonical": false},":right_facing_fist_tone2:":{"unicode":["1f91c-1f3fc"],"fname":"1f91c-1f3fc","uc":"1f91c-1f3fc","isCanonical": true},":right_fist_tone2:":{"unicode":["1f91c-1f3fc"],"fname":"1f91c-1f3fc","uc":"1f91c-1f3fc","isCanonical": false},":right_facing_fist_tone1:":{"unicode":["1f91c-1f3fb"],"fname":"1f91c-1f3fb","uc":"1f91c-1f3fb","isCanonical": true},":right_fist_tone1:":{"unicode":["1f91c-1f3fb"],"fname":"1f91c-1f3fb","uc":"1f91c-1f3fb","isCanonical": false},":left_facing_fist_tone5:":{"unicode":["1f91b-1f3ff"],"fname":"1f91b-1f3ff","uc":"1f91b-1f3ff","isCanonical": true},":left_fist_tone5:":{"unicode":["1f91b-1f3ff"],"fname":"1f91b-1f3ff","uc":"1f91b-1f3ff","isCanonical": false},":left_facing_fist_tone4:":{"unicode":["1f91b-1f3fe"],"fname":"1f91b-1f3fe","uc":"1f91b-1f3fe","isCanonical": true},":left_fist_tone4:":{"unicode":["1f91b-1f3fe"],"fname":"1f91b-1f3fe","uc":"1f91b-1f3fe","isCanonical": false},":left_facing_fist_tone3:":{"unicode":["1f91b-1f3fd"],"fname":"1f91b-1f3fd","uc":"1f91b-1f3fd","isCanonical": true},":left_fist_tone3:":{"unicode":["1f91b-1f3fd"],"fname":"1f91b-1f3fd","uc":"1f91b-1f3fd","isCanonical": false},":left_facing_fist_tone2:":{"unicode":["1f91b-1f3fc"],"fname":"1f91b-1f3fc","uc":"1f91b-1f3fc","isCanonical": true},":left_fist_tone2:":{"unicode":["1f91b-1f3fc"],"fname":"1f91b-1f3fc","uc":"1f91b-1f3fc","isCanonical": false},":left_facing_fist_tone1:":{"unicode":["1f91b-1f3fb"],"fname":"1f91b-1f3fb","uc":"1f91b-1f3fb","isCanonical": true},":left_fist_tone1:":{"unicode":["1f91b-1f3fb"],"fname":"1f91b-1f3fb","uc":"1f91b-1f3fb","isCanonical": false},":raised_back_of_hand_tone5:":{"unicode":["1f91a-1f3ff"],"fname":"1f91a-1f3ff","uc":"1f91a-1f3ff","isCanonical": true},":back_of_hand_tone5:":{"unicode":["1f91a-1f3ff"],"fname":"1f91a-1f3ff","uc":"1f91a-1f3ff","isCanonical": false},":raised_back_of_hand_tone4:":{"unicode":["1f91a-1f3fe"],"fname":"1f91a-1f3fe","uc":"1f91a-1f3fe","isCanonical": true},":back_of_hand_tone4:":{"unicode":["1f91a-1f3fe"],"fname":"1f91a-1f3fe","uc":"1f91a-1f3fe","isCanonical": false},":raised_back_of_hand_tone3:":{"unicode":["1f91a-1f3fd"],"fname":"1f91a-1f3fd","uc":"1f91a-1f3fd","isCanonical": true},":back_of_hand_tone3:":{"unicode":["1f91a-1f3fd"],"fname":"1f91a-1f3fd","uc":"1f91a-1f3fd","isCanonical": false},":raised_back_of_hand_tone2:":{"unicode":["1f91a-1f3fc"],"fname":"1f91a-1f3fc","uc":"1f91a-1f3fc","isCanonical": true},":back_of_hand_tone2:":{"unicode":["1f91a-1f3fc"],"fname":"1f91a-1f3fc","uc":"1f91a-1f3fc","isCanonical": false},":raised_back_of_hand_tone1:":{"unicode":["1f91a-1f3fb"],"fname":"1f91a-1f3fb","uc":"1f91a-1f3fb","isCanonical": true},":back_of_hand_tone1:":{"unicode":["1f91a-1f3fb"],"fname":"1f91a-1f3fb","uc":"1f91a-1f3fb","isCanonical": false},":call_me_tone5:":{"unicode":["1f919-1f3ff"],"fname":"1f919-1f3ff","uc":"1f919-1f3ff","isCanonical": true},":call_me_hand_tone5:":{"unicode":["1f919-1f3ff"],"fname":"1f919-1f3ff","uc":"1f919-1f3ff","isCanonical": false},":call_me_tone4:":{"unicode":["1f919-1f3fe"],"fname":"1f919-1f3fe","uc":"1f919-1f3fe","isCanonical": true},":call_me_hand_tone4:":{"unicode":["1f919-1f3fe"],"fname":"1f919-1f3fe","uc":"1f919-1f3fe","isCanonical": false},":call_me_tone3:":{"unicode":["1f919-1f3fd"],"fname":"1f919-1f3fd","uc":"1f919-1f3fd","isCanonical": true},":call_me_hand_tone3:":{"unicode":["1f919-1f3fd"],"fname":"1f919-1f3fd","uc":"1f919-1f3fd","isCanonical": false},":call_me_tone2:":{"unicode":["1f919-1f3fc"],"fname":"1f919-1f3fc","uc":"1f919-1f3fc","isCanonical": true},":call_me_hand_tone2:":{"unicode":["1f919-1f3fc"],"fname":"1f919-1f3fc","uc":"1f919-1f3fc","isCanonical": false},":call_me_tone1:":{"unicode":["1f919-1f3fb"],"fname":"1f919-1f3fb","uc":"1f919-1f3fb","isCanonical": true},":call_me_hand_tone1:":{"unicode":["1f919-1f3fb"],"fname":"1f919-1f3fb","uc":"1f919-1f3fb","isCanonical": false},":metal_tone5:":{"unicode":["1f918-1f3ff"],"fname":"1f918-1f3ff","uc":"1f918-1f3ff","isCanonical": true},":sign_of_the_horns_tone5:":{"unicode":["1f918-1f3ff"],"fname":"1f918-1f3ff","uc":"1f918-1f3ff","isCanonical": false},":metal_tone4:":{"unicode":["1f918-1f3fe"],"fname":"1f918-1f3fe","uc":"1f918-1f3fe","isCanonical": true},":sign_of_the_horns_tone4:":{"unicode":["1f918-1f3fe"],"fname":"1f918-1f3fe","uc":"1f918-1f3fe","isCanonical": false},":metal_tone3:":{"unicode":["1f918-1f3fd"],"fname":"1f918-1f3fd","uc":"1f918-1f3fd","isCanonical": true},":sign_of_the_horns_tone3:":{"unicode":["1f918-1f3fd"],"fname":"1f918-1f3fd","uc":"1f918-1f3fd","isCanonical": false},":metal_tone2:":{"unicode":["1f918-1f3fc"],"fname":"1f918-1f3fc","uc":"1f918-1f3fc","isCanonical": true},":sign_of_the_horns_tone2:":{"unicode":["1f918-1f3fc"],"fname":"1f918-1f3fc","uc":"1f918-1f3fc","isCanonical": false},":metal_tone1:":{"unicode":["1f918-1f3fb"],"fname":"1f918-1f3fb","uc":"1f918-1f3fb","isCanonical": true},":sign_of_the_horns_tone1:":{"unicode":["1f918-1f3fb"],"fname":"1f918-1f3fb","uc":"1f918-1f3fb","isCanonical": false},":bath_tone5:":{"unicode":["1f6c0-1f3ff"],"fname":"1f6c0-1f3ff","uc":"1f6c0-1f3ff","isCanonical": true},":bath_tone4:":{"unicode":["1f6c0-1f3fe"],"fname":"1f6c0-1f3fe","uc":"1f6c0-1f3fe","isCanonical": true},":bath_tone3:":{"unicode":["1f6c0-1f3fd"],"fname":"1f6c0-1f3fd","uc":"1f6c0-1f3fd","isCanonical": true},":bath_tone2:":{"unicode":["1f6c0-1f3fc"],"fname":"1f6c0-1f3fc","uc":"1f6c0-1f3fc","isCanonical": true},":bath_tone1:":{"unicode":["1f6c0-1f3fb"],"fname":"1f6c0-1f3fb","uc":"1f6c0-1f3fb","isCanonical": true},":walking_tone5:":{"unicode":["1f6b6-1f3ff"],"fname":"1f6b6-1f3ff","uc":"1f6b6-1f3ff","isCanonical": true},":walking_tone4:":{"unicode":["1f6b6-1f3fe"],"fname":"1f6b6-1f3fe","uc":"1f6b6-1f3fe","isCanonical": true},":walking_tone3:":{"unicode":["1f6b6-1f3fd"],"fname":"1f6b6-1f3fd","uc":"1f6b6-1f3fd","isCanonical": true},":walking_tone2:":{"unicode":["1f6b6-1f3fc"],"fname":"1f6b6-1f3fc","uc":"1f6b6-1f3fc","isCanonical": true},":walking_tone1:":{"unicode":["1f6b6-1f3fb"],"fname":"1f6b6-1f3fb","uc":"1f6b6-1f3fb","isCanonical": true},":mountain_bicyclist_tone5:":{"unicode":["1f6b5-1f3ff"],"fname":"1f6b5-1f3ff","uc":"1f6b5-1f3ff","isCanonical": true},":mountain_bicyclist_tone4:":{"unicode":["1f6b5-1f3fe"],"fname":"1f6b5-1f3fe","uc":"1f6b5-1f3fe","isCanonical": true},":mountain_bicyclist_tone3:":{"unicode":["1f6b5-1f3fd"],"fname":"1f6b5-1f3fd","uc":"1f6b5-1f3fd","isCanonical": true},":mountain_bicyclist_tone2:":{"unicode":["1f6b5-1f3fc"],"fname":"1f6b5-1f3fc","uc":"1f6b5-1f3fc","isCanonical": true},":mountain_bicyclist_tone1:":{"unicode":["1f6b5-1f3fb"],"fname":"1f6b5-1f3fb","uc":"1f6b5-1f3fb","isCanonical": true},":bicyclist_tone5:":{"unicode":["1f6b4-1f3ff"],"fname":"1f6b4-1f3ff","uc":"1f6b4-1f3ff","isCanonical": true},":bicyclist_tone4:":{"unicode":["1f6b4-1f3fe"],"fname":"1f6b4-1f3fe","uc":"1f6b4-1f3fe","isCanonical": true},":bicyclist_tone3:":{"unicode":["1f6b4-1f3fd"],"fname":"1f6b4-1f3fd","uc":"1f6b4-1f3fd","isCanonical": true},":bicyclist_tone2:":{"unicode":["1f6b4-1f3fc"],"fname":"1f6b4-1f3fc","uc":"1f6b4-1f3fc","isCanonical": true},":bicyclist_tone1:":{"unicode":["1f6b4-1f3fb"],"fname":"1f6b4-1f3fb","uc":"1f6b4-1f3fb","isCanonical": true},":rowboat_tone5:":{"unicode":["1f6a3-1f3ff"],"fname":"1f6a3-1f3ff","uc":"1f6a3-1f3ff","isCanonical": true},":rowboat_tone4:":{"unicode":["1f6a3-1f3fe"],"fname":"1f6a3-1f3fe","uc":"1f6a3-1f3fe","isCanonical": true},":rowboat_tone3:":{"unicode":["1f6a3-1f3fd"],"fname":"1f6a3-1f3fd","uc":"1f6a3-1f3fd","isCanonical": true},":rowboat_tone2:":{"unicode":["1f6a3-1f3fc"],"fname":"1f6a3-1f3fc","uc":"1f6a3-1f3fc","isCanonical": true},":rowboat_tone1:":{"unicode":["1f6a3-1f3fb"],"fname":"1f6a3-1f3fb","uc":"1f6a3-1f3fb","isCanonical": true},":pray_tone5:":{"unicode":["1f64f-1f3ff"],"fname":"1f64f-1f3ff","uc":"1f64f-1f3ff","isCanonical": true},":pray_tone4:":{"unicode":["1f64f-1f3fe"],"fname":"1f64f-1f3fe","uc":"1f64f-1f3fe","isCanonical": true},":pray_tone3:":{"unicode":["1f64f-1f3fd"],"fname":"1f64f-1f3fd","uc":"1f64f-1f3fd","isCanonical": true},":pray_tone2:":{"unicode":["1f64f-1f3fc"],"fname":"1f64f-1f3fc","uc":"1f64f-1f3fc","isCanonical": true},":pray_tone1:":{"unicode":["1f64f-1f3fb"],"fname":"1f64f-1f3fb","uc":"1f64f-1f3fb","isCanonical": true},":person_with_pouting_face_tone5:":{"unicode":["1f64e-1f3ff"],"fname":"1f64e-1f3ff","uc":"1f64e-1f3ff","isCanonical": true},":person_with_pouting_face_tone4:":{"unicode":["1f64e-1f3fe"],"fname":"1f64e-1f3fe","uc":"1f64e-1f3fe","isCanonical": true},":person_with_pouting_face_tone3:":{"unicode":["1f64e-1f3fd"],"fname":"1f64e-1f3fd","uc":"1f64e-1f3fd","isCanonical": true},":person_with_pouting_face_tone2:":{"unicode":["1f64e-1f3fc"],"fname":"1f64e-1f3fc","uc":"1f64e-1f3fc","isCanonical": true},":person_with_pouting_face_tone1:":{"unicode":["1f64e-1f3fb"],"fname":"1f64e-1f3fb","uc":"1f64e-1f3fb","isCanonical": true},":person_frowning_tone5:":{"unicode":["1f64d-1f3ff"],"fname":"1f64d-1f3ff","uc":"1f64d-1f3ff","isCanonical": true},":person_frowning_tone4:":{"unicode":["1f64d-1f3fe"],"fname":"1f64d-1f3fe","uc":"1f64d-1f3fe","isCanonical": true},":person_frowning_tone3:":{"unicode":["1f64d-1f3fd"],"fname":"1f64d-1f3fd","uc":"1f64d-1f3fd","isCanonical": true},":person_frowning_tone2:":{"unicode":["1f64d-1f3fc"],"fname":"1f64d-1f3fc","uc":"1f64d-1f3fc","isCanonical": true},":person_frowning_tone1:":{"unicode":["1f64d-1f3fb"],"fname":"1f64d-1f3fb","uc":"1f64d-1f3fb","isCanonical": true},":raised_hands_tone5:":{"unicode":["1f64c-1f3ff"],"fname":"1f64c-1f3ff","uc":"1f64c-1f3ff","isCanonical": true},":raised_hands_tone4:":{"unicode":["1f64c-1f3fe"],"fname":"1f64c-1f3fe","uc":"1f64c-1f3fe","isCanonical": true},":raised_hands_tone3:":{"unicode":["1f64c-1f3fd"],"fname":"1f64c-1f3fd","uc":"1f64c-1f3fd","isCanonical": true},":raised_hands_tone2:":{"unicode":["1f64c-1f3fc"],"fname":"1f64c-1f3fc","uc":"1f64c-1f3fc","isCanonical": true},":raised_hands_tone1:":{"unicode":["1f64c-1f3fb"],"fname":"1f64c-1f3fb","uc":"1f64c-1f3fb","isCanonical": true},":raising_hand_tone5:":{"unicode":["1f64b-1f3ff"],"fname":"1f64b-1f3ff","uc":"1f64b-1f3ff","isCanonical": true},":raising_hand_tone4:":{"unicode":["1f64b-1f3fe"],"fname":"1f64b-1f3fe","uc":"1f64b-1f3fe","isCanonical": true},":raising_hand_tone3:":{"unicode":["1f64b-1f3fd"],"fname":"1f64b-1f3fd","uc":"1f64b-1f3fd","isCanonical": true},":raising_hand_tone2:":{"unicode":["1f64b-1f3fc"],"fname":"1f64b-1f3fc","uc":"1f64b-1f3fc","isCanonical": true},":raising_hand_tone1:":{"unicode":["1f64b-1f3fb"],"fname":"1f64b-1f3fb","uc":"1f64b-1f3fb","isCanonical": true},":bow_tone5:":{"unicode":["1f647-1f3ff"],"fname":"1f647-1f3ff","uc":"1f647-1f3ff","isCanonical": true},":bow_tone4:":{"unicode":["1f647-1f3fe"],"fname":"1f647-1f3fe","uc":"1f647-1f3fe","isCanonical": true},":bow_tone3:":{"unicode":["1f647-1f3fd"],"fname":"1f647-1f3fd","uc":"1f647-1f3fd","isCanonical": true},":bow_tone2:":{"unicode":["1f647-1f3fc"],"fname":"1f647-1f3fc","uc":"1f647-1f3fc","isCanonical": true},":bow_tone1:":{"unicode":["1f647-1f3fb"],"fname":"1f647-1f3fb","uc":"1f647-1f3fb","isCanonical": true},":ok_woman_tone5:":{"unicode":["1f646-1f3ff"],"fname":"1f646-1f3ff","uc":"1f646-1f3ff","isCanonical": true},":ok_woman_tone4:":{"unicode":["1f646-1f3fe"],"fname":"1f646-1f3fe","uc":"1f646-1f3fe","isCanonical": true},":ok_woman_tone3:":{"unicode":["1f646-1f3fd"],"fname":"1f646-1f3fd","uc":"1f646-1f3fd","isCanonical": true},":ok_woman_tone2:":{"unicode":["1f646-1f3fc"],"fname":"1f646-1f3fc","uc":"1f646-1f3fc","isCanonical": true},":ok_woman_tone1:":{"unicode":["1f646-1f3fb"],"fname":"1f646-1f3fb","uc":"1f646-1f3fb","isCanonical": true},":no_good_tone5:":{"unicode":["1f645-1f3ff"],"fname":"1f645-1f3ff","uc":"1f645-1f3ff","isCanonical": true},":no_good_tone4:":{"unicode":["1f645-1f3fe"],"fname":"1f645-1f3fe","uc":"1f645-1f3fe","isCanonical": true},":no_good_tone3:":{"unicode":["1f645-1f3fd"],"fname":"1f645-1f3fd","uc":"1f645-1f3fd","isCanonical": true},":no_good_tone2:":{"unicode":["1f645-1f3fc"],"fname":"1f645-1f3fc","uc":"1f645-1f3fc","isCanonical": true},":no_good_tone1:":{"unicode":["1f645-1f3fb"],"fname":"1f645-1f3fb","uc":"1f645-1f3fb","isCanonical": true},":vulcan_tone5:":{"unicode":["1f596-1f3ff"],"fname":"1f596-1f3ff","uc":"1f596-1f3ff","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{"unicode":["1f596-1f3ff"],"fname":"1f596-1f3ff","uc":"1f596-1f3ff","isCanonical": false},":vulcan_tone4:":{"unicode":["1f596-1f3fe"],"fname":"1f596-1f3fe","uc":"1f596-1f3fe","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{"unicode":["1f596-1f3fe"],"fname":"1f596-1f3fe","uc":"1f596-1f3fe","isCanonical": false},":vulcan_tone3:":{"unicode":["1f596-1f3fd"],"fname":"1f596-1f3fd","uc":"1f596-1f3fd","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{"unicode":["1f596-1f3fd"],"fname":"1f596-1f3fd","uc":"1f596-1f3fd","isCanonical": false},":vulcan_tone2:":{"unicode":["1f596-1f3fc"],"fname":"1f596-1f3fc","uc":"1f596-1f3fc","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{"unicode":["1f596-1f3fc"],"fname":"1f596-1f3fc","uc":"1f596-1f3fc","isCanonical": false},":vulcan_tone1:":{"unicode":["1f596-1f3fb"],"fname":"1f596-1f3fb","uc":"1f596-1f3fb","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{"unicode":["1f596-1f3fb"],"fname":"1f596-1f3fb","uc":"1f596-1f3fb","isCanonical": false},":middle_finger_tone5:":{"unicode":["1f595-1f3ff"],"fname":"1f595-1f3ff","uc":"1f595-1f3ff","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone5:":{"unicode":["1f595-1f3ff"],"fname":"1f595-1f3ff","uc":"1f595-1f3ff","isCanonical": false},":middle_finger_tone4:":{"unicode":["1f595-1f3fe"],"fname":"1f595-1f3fe","uc":"1f595-1f3fe","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone4:":{"unicode":["1f595-1f3fe"],"fname":"1f595-1f3fe","uc":"1f595-1f3fe","isCanonical": false},":middle_finger_tone3:":{"unicode":["1f595-1f3fd"],"fname":"1f595-1f3fd","uc":"1f595-1f3fd","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone3:":{"unicode":["1f595-1f3fd"],"fname":"1f595-1f3fd","uc":"1f595-1f3fd","isCanonical": false},":middle_finger_tone2:":{"unicode":["1f595-1f3fc"],"fname":"1f595-1f3fc","uc":"1f595-1f3fc","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone2:":{"unicode":["1f595-1f3fc"],"fname":"1f595-1f3fc","uc":"1f595-1f3fc","isCanonical": false},":middle_finger_tone1:":{"unicode":["1f595-1f3fb"],"fname":"1f595-1f3fb","uc":"1f595-1f3fb","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone1:":{"unicode":["1f595-1f3fb"],"fname":"1f595-1f3fb","uc":"1f595-1f3fb","isCanonical": false},":hand_splayed_tone5:":{"unicode":["1f590-1f3ff"],"fname":"1f590-1f3ff","uc":"1f590-1f3ff","isCanonical": true},":raised_hand_with_fingers_splayed_tone5:":{"unicode":["1f590-1f3ff"],"fname":"1f590-1f3ff","uc":"1f590-1f3ff","isCanonical": false},":hand_splayed_tone4:":{"unicode":["1f590-1f3fe"],"fname":"1f590-1f3fe","uc":"1f590-1f3fe","isCanonical": true},":raised_hand_with_fingers_splayed_tone4:":{"unicode":["1f590-1f3fe"],"fname":"1f590-1f3fe","uc":"1f590-1f3fe","isCanonical": false},":hand_splayed_tone3:":{"unicode":["1f590-1f3fd"],"fname":"1f590-1f3fd","uc":"1f590-1f3fd","isCanonical": true},":raised_hand_with_fingers_splayed_tone3:":{"unicode":["1f590-1f3fd"],"fname":"1f590-1f3fd","uc":"1f590-1f3fd","isCanonical": false},":hand_splayed_tone2:":{"unicode":["1f590-1f3fc"],"fname":"1f590-1f3fc","uc":"1f590-1f3fc","isCanonical": true},":raised_hand_with_fingers_splayed_tone2:":{"unicode":["1f590-1f3fc"],"fname":"1f590-1f3fc","uc":"1f590-1f3fc","isCanonical": false},":hand_splayed_tone1:":{"unicode":["1f590-1f3fb"],"fname":"1f590-1f3fb","uc":"1f590-1f3fb","isCanonical": true},":raised_hand_with_fingers_splayed_tone1:":{"unicode":["1f590-1f3fb"],"fname":"1f590-1f3fb","uc":"1f590-1f3fb","isCanonical": false},":man_dancing_tone5:":{"unicode":["1f57a-1f3ff"],"fname":"1f57a-1f3ff","uc":"1f57a-1f3ff","isCanonical": true},":male_dancer_tone5:":{"unicode":["1f57a-1f3ff"],"fname":"1f57a-1f3ff","uc":"1f57a-1f3ff","isCanonical": false},":man_dancing_tone4:":{"unicode":["1f57a-1f3fe"],"fname":"1f57a-1f3fe","uc":"1f57a-1f3fe","isCanonical": true},":male_dancer_tone4:":{"unicode":["1f57a-1f3fe"],"fname":"1f57a-1f3fe","uc":"1f57a-1f3fe","isCanonical": false},":man_dancing_tone3:":{"unicode":["1f57a-1f3fd"],"fname":"1f57a-1f3fd","uc":"1f57a-1f3fd","isCanonical": true},":male_dancer_tone3:":{"unicode":["1f57a-1f3fd"],"fname":"1f57a-1f3fd","uc":"1f57a-1f3fd","isCanonical": false},":man_dancing_tone2:":{"unicode":["1f57a-1f3fc"],"fname":"1f57a-1f3fc","uc":"1f57a-1f3fc","isCanonical": true},":male_dancer_tone2:":{"unicode":["1f57a-1f3fc"],"fname":"1f57a-1f3fc","uc":"1f57a-1f3fc","isCanonical": false},":man_dancing_tone1:":{"unicode":["1f57a-1f3fb"],"fname":"1f57a-1f3fb","uc":"1f57a-1f3fb","isCanonical": true},":male_dancer_tone1:":{"unicode":["1f57a-1f3fb"],"fname":"1f57a-1f3fb","uc":"1f57a-1f3fb","isCanonical": false},":spy_tone5:":{"unicode":["1f575-1f3ff"],"fname":"1f575-1f3ff","uc":"1f575-1f3ff","isCanonical": true},":sleuth_or_spy_tone5:":{"unicode":["1f575-1f3ff"],"fname":"1f575-1f3ff","uc":"1f575-1f3ff","isCanonical": false},":spy_tone4:":{"unicode":["1f575-1f3fe"],"fname":"1f575-1f3fe","uc":"1f575-1f3fe","isCanonical": true},":sleuth_or_spy_tone4:":{"unicode":["1f575-1f3fe"],"fname":"1f575-1f3fe","uc":"1f575-1f3fe","isCanonical": false},":spy_tone3:":{"unicode":["1f575-1f3fd"],"fname":"1f575-1f3fd","uc":"1f575-1f3fd","isCanonical": true},":sleuth_or_spy_tone3:":{"unicode":["1f575-1f3fd"],"fname":"1f575-1f3fd","uc":"1f575-1f3fd","isCanonical": false},":spy_tone2:":{"unicode":["1f575-1f3fc"],"fname":"1f575-1f3fc","uc":"1f575-1f3fc","isCanonical": true},":sleuth_or_spy_tone2:":{"unicode":["1f575-1f3fc"],"fname":"1f575-1f3fc","uc":"1f575-1f3fc","isCanonical": false},":spy_tone1:":{"unicode":["1f575-1f3fb"],"fname":"1f575-1f3fb","uc":"1f575-1f3fb","isCanonical": true},":sleuth_or_spy_tone1:":{"unicode":["1f575-1f3fb"],"fname":"1f575-1f3fb","uc":"1f575-1f3fb","isCanonical": false},":muscle_tone5:":{"unicode":["1f4aa-1f3ff"],"fname":"1f4aa-1f3ff","uc":"1f4aa-1f3ff","isCanonical": true},":muscle_tone4:":{"unicode":["1f4aa-1f3fe"],"fname":"1f4aa-1f3fe","uc":"1f4aa-1f3fe","isCanonical": true},":muscle_tone3:":{"unicode":["1f4aa-1f3fd"],"fname":"1f4aa-1f3fd","uc":"1f4aa-1f3fd","isCanonical": true},":muscle_tone2:":{"unicode":["1f4aa-1f3fc"],"fname":"1f4aa-1f3fc","uc":"1f4aa-1f3fc","isCanonical": true},":muscle_tone1:":{"unicode":["1f4aa-1f3fb"],"fname":"1f4aa-1f3fb","uc":"1f4aa-1f3fb","isCanonical": true},":haircut_tone5:":{"unicode":["1f487-1f3ff"],"fname":"1f487-1f3ff","uc":"1f487-1f3ff","isCanonical": true},":haircut_tone4:":{"unicode":["1f487-1f3fe"],"fname":"1f487-1f3fe","uc":"1f487-1f3fe","isCanonical": true},":haircut_tone3:":{"unicode":["1f487-1f3fd"],"fname":"1f487-1f3fd","uc":"1f487-1f3fd","isCanonical": true},":haircut_tone2:":{"unicode":["1f487-1f3fc"],"fname":"1f487-1f3fc","uc":"1f487-1f3fc","isCanonical": true},":haircut_tone1:":{"unicode":["1f487-1f3fb"],"fname":"1f487-1f3fb","uc":"1f487-1f3fb","isCanonical": true},":massage_tone5:":{"unicode":["1f486-1f3ff"],"fname":"1f486-1f3ff","uc":"1f486-1f3ff","isCanonical": true},":massage_tone4:":{"unicode":["1f486-1f3fe"],"fname":"1f486-1f3fe","uc":"1f486-1f3fe","isCanonical": true},":massage_tone3:":{"unicode":["1f486-1f3fd"],"fname":"1f486-1f3fd","uc":"1f486-1f3fd","isCanonical": true},":massage_tone2:":{"unicode":["1f486-1f3fc"],"fname":"1f486-1f3fc","uc":"1f486-1f3fc","isCanonical": true},":massage_tone1:":{"unicode":["1f486-1f3fb"],"fname":"1f486-1f3fb","uc":"1f486-1f3fb","isCanonical": true},":nail_care_tone5:":{"unicode":["1f485-1f3ff"],"fname":"1f485-1f3ff","uc":"1f485-1f3ff","isCanonical": true},":nail_care_tone4:":{"unicode":["1f485-1f3fe"],"fname":"1f485-1f3fe","uc":"1f485-1f3fe","isCanonical": true},":nail_care_tone3:":{"unicode":["1f485-1f3fd"],"fname":"1f485-1f3fd","uc":"1f485-1f3fd","isCanonical": true},":nail_care_tone2:":{"unicode":["1f485-1f3fc"],"fname":"1f485-1f3fc","uc":"1f485-1f3fc","isCanonical": true},":nail_care_tone1:":{"unicode":["1f485-1f3fb"],"fname":"1f485-1f3fb","uc":"1f485-1f3fb","isCanonical": true},":dancer_tone5:":{"unicode":["1f483-1f3ff"],"fname":"1f483-1f3ff","uc":"1f483-1f3ff","isCanonical": true},":dancer_tone4:":{"unicode":["1f483-1f3fe"],"fname":"1f483-1f3fe","uc":"1f483-1f3fe","isCanonical": true},":dancer_tone3:":{"unicode":["1f483-1f3fd"],"fname":"1f483-1f3fd","uc":"1f483-1f3fd","isCanonical": true},":dancer_tone2:":{"unicode":["1f483-1f3fc"],"fname":"1f483-1f3fc","uc":"1f483-1f3fc","isCanonical": true},":dancer_tone1:":{"unicode":["1f483-1f3fb"],"fname":"1f483-1f3fb","uc":"1f483-1f3fb","isCanonical": true},":guardsman_tone5:":{"unicode":["1f482-1f3ff"],"fname":"1f482-1f3ff","uc":"1f482-1f3ff","isCanonical": true},":guardsman_tone4:":{"unicode":["1f482-1f3fe"],"fname":"1f482-1f3fe","uc":"1f482-1f3fe","isCanonical": true},":guardsman_tone3:":{"unicode":["1f482-1f3fd"],"fname":"1f482-1f3fd","uc":"1f482-1f3fd","isCanonical": true},":guardsman_tone2:":{"unicode":["1f482-1f3fc"],"fname":"1f482-1f3fc","uc":"1f482-1f3fc","isCanonical": true},":guardsman_tone1:":{"unicode":["1f482-1f3fb"],"fname":"1f482-1f3fb","uc":"1f482-1f3fb","isCanonical": true},":information_desk_person_tone5:":{"unicode":["1f481-1f3ff"],"fname":"1f481-1f3ff","uc":"1f481-1f3ff","isCanonical": true},":information_desk_person_tone4:":{"unicode":["1f481-1f3fe"],"fname":"1f481-1f3fe","uc":"1f481-1f3fe","isCanonical": true},":information_desk_person_tone3:":{"unicode":["1f481-1f3fd"],"fname":"1f481-1f3fd","uc":"1f481-1f3fd","isCanonical": true},":information_desk_person_tone2:":{"unicode":["1f481-1f3fc"],"fname":"1f481-1f3fc","uc":"1f481-1f3fc","isCanonical": true},":information_desk_person_tone1:":{"unicode":["1f481-1f3fb"],"fname":"1f481-1f3fb","uc":"1f481-1f3fb","isCanonical": true},":angel_tone5:":{"unicode":["1f47c-1f3ff"],"fname":"1f47c-1f3ff","uc":"1f47c-1f3ff","isCanonical": true},":angel_tone4:":{"unicode":["1f47c-1f3fe"],"fname":"1f47c-1f3fe","uc":"1f47c-1f3fe","isCanonical": true},":angel_tone3:":{"unicode":["1f47c-1f3fd"],"fname":"1f47c-1f3fd","uc":"1f47c-1f3fd","isCanonical": true},":angel_tone2:":{"unicode":["1f47c-1f3fc"],"fname":"1f47c-1f3fc","uc":"1f47c-1f3fc","isCanonical": true},":angel_tone1:":{"unicode":["1f47c-1f3fb"],"fname":"1f47c-1f3fb","uc":"1f47c-1f3fb","isCanonical": true},":princess_tone5:":{"unicode":["1f478-1f3ff"],"fname":"1f478-1f3ff","uc":"1f478-1f3ff","isCanonical": true},":princess_tone4:":{"unicode":["1f478-1f3fe"],"fname":"1f478-1f3fe","uc":"1f478-1f3fe","isCanonical": true},":princess_tone3:":{"unicode":["1f478-1f3fd"],"fname":"1f478-1f3fd","uc":"1f478-1f3fd","isCanonical": true},":princess_tone2:":{"unicode":["1f478-1f3fc"],"fname":"1f478-1f3fc","uc":"1f478-1f3fc","isCanonical": true},":princess_tone1:":{"unicode":["1f478-1f3fb"],"fname":"1f478-1f3fb","uc":"1f478-1f3fb","isCanonical": true},":construction_worker_tone5:":{"unicode":["1f477-1f3ff"],"fname":"1f477-1f3ff","uc":"1f477-1f3ff","isCanonical": true},":construction_worker_tone4:":{"unicode":["1f477-1f3fe"],"fname":"1f477-1f3fe","uc":"1f477-1f3fe","isCanonical": true},":construction_worker_tone3:":{"unicode":["1f477-1f3fd"],"fname":"1f477-1f3fd","uc":"1f477-1f3fd","isCanonical": true},":construction_worker_tone2:":{"unicode":["1f477-1f3fc"],"fname":"1f477-1f3fc","uc":"1f477-1f3fc","isCanonical": true},":construction_worker_tone1:":{"unicode":["1f477-1f3fb"],"fname":"1f477-1f3fb","uc":"1f477-1f3fb","isCanonical": true},":baby_tone5:":{"unicode":["1f476-1f3ff"],"fname":"1f476-1f3ff","uc":"1f476-1f3ff","isCanonical": true},":baby_tone4:":{"unicode":["1f476-1f3fe"],"fname":"1f476-1f3fe","uc":"1f476-1f3fe","isCanonical": true},":baby_tone3:":{"unicode":["1f476-1f3fd"],"fname":"1f476-1f3fd","uc":"1f476-1f3fd","isCanonical": true},":baby_tone2:":{"unicode":["1f476-1f3fc"],"fname":"1f476-1f3fc","uc":"1f476-1f3fc","isCanonical": true},":baby_tone1:":{"unicode":["1f476-1f3fb"],"fname":"1f476-1f3fb","uc":"1f476-1f3fb","isCanonical": true},":older_woman_tone5:":{"unicode":["1f475-1f3ff"],"fname":"1f475-1f3ff","uc":"1f475-1f3ff","isCanonical": true},":grandma_tone5:":{"unicode":["1f475-1f3ff"],"fname":"1f475-1f3ff","uc":"1f475-1f3ff","isCanonical": false},":older_woman_tone4:":{"unicode":["1f475-1f3fe"],"fname":"1f475-1f3fe","uc":"1f475-1f3fe","isCanonical": true},":grandma_tone4:":{"unicode":["1f475-1f3fe"],"fname":"1f475-1f3fe","uc":"1f475-1f3fe","isCanonical": false},":older_woman_tone3:":{"unicode":["1f475-1f3fd"],"fname":"1f475-1f3fd","uc":"1f475-1f3fd","isCanonical": true},":grandma_tone3:":{"unicode":["1f475-1f3fd"],"fname":"1f475-1f3fd","uc":"1f475-1f3fd","isCanonical": false},":older_woman_tone2:":{"unicode":["1f475-1f3fc"],"fname":"1f475-1f3fc","uc":"1f475-1f3fc","isCanonical": true},":grandma_tone2:":{"unicode":["1f475-1f3fc"],"fname":"1f475-1f3fc","uc":"1f475-1f3fc","isCanonical": false},":older_woman_tone1:":{"unicode":["1f475-1f3fb"],"fname":"1f475-1f3fb","uc":"1f475-1f3fb","isCanonical": true},":grandma_tone1:":{"unicode":["1f475-1f3fb"],"fname":"1f475-1f3fb","uc":"1f475-1f3fb","isCanonical": false},":older_man_tone5:":{"unicode":["1f474-1f3ff"],"fname":"1f474-1f3ff","uc":"1f474-1f3ff","isCanonical": true},":older_man_tone4:":{"unicode":["1f474-1f3fe"],"fname":"1f474-1f3fe","uc":"1f474-1f3fe","isCanonical": true},":older_man_tone3:":{"unicode":["1f474-1f3fd"],"fname":"1f474-1f3fd","uc":"1f474-1f3fd","isCanonical": true},":older_man_tone2:":{"unicode":["1f474-1f3fc"],"fname":"1f474-1f3fc","uc":"1f474-1f3fc","isCanonical": true},":older_man_tone1:":{"unicode":["1f474-1f3fb"],"fname":"1f474-1f3fb","uc":"1f474-1f3fb","isCanonical": true},":man_with_turban_tone5:":{"unicode":["1f473-1f3ff"],"fname":"1f473-1f3ff","uc":"1f473-1f3ff","isCanonical": true},":man_with_turban_tone4:":{"unicode":["1f473-1f3fe"],"fname":"1f473-1f3fe","uc":"1f473-1f3fe","isCanonical": true},":man_with_turban_tone3:":{"unicode":["1f473-1f3fd"],"fname":"1f473-1f3fd","uc":"1f473-1f3fd","isCanonical": true},":man_with_turban_tone2:":{"unicode":["1f473-1f3fc"],"fname":"1f473-1f3fc","uc":"1f473-1f3fc","isCanonical": true},":man_with_turban_tone1:":{"unicode":["1f473-1f3fb"],"fname":"1f473-1f3fb","uc":"1f473-1f3fb","isCanonical": true},":man_with_gua_pi_mao_tone5:":{"unicode":["1f472-1f3ff"],"fname":"1f472-1f3ff","uc":"1f472-1f3ff","isCanonical": true},":man_with_gua_pi_mao_tone4:":{"unicode":["1f472-1f3fe"],"fname":"1f472-1f3fe","uc":"1f472-1f3fe","isCanonical": true},":man_with_gua_pi_mao_tone3:":{"unicode":["1f472-1f3fd"],"fname":"1f472-1f3fd","uc":"1f472-1f3fd","isCanonical": true},":man_with_gua_pi_mao_tone2:":{"unicode":["1f472-1f3fc"],"fname":"1f472-1f3fc","uc":"1f472-1f3fc","isCanonical": true},":man_with_gua_pi_mao_tone1:":{"unicode":["1f472-1f3fb"],"fname":"1f472-1f3fb","uc":"1f472-1f3fb","isCanonical": true},":person_with_blond_hair_tone5:":{"unicode":["1f471-1f3ff"],"fname":"1f471-1f3ff","uc":"1f471-1f3ff","isCanonical": true},":person_with_blond_hair_tone4:":{"unicode":["1f471-1f3fe"],"fname":"1f471-1f3fe","uc":"1f471-1f3fe","isCanonical": true},":person_with_blond_hair_tone3:":{"unicode":["1f471-1f3fd"],"fname":"1f471-1f3fd","uc":"1f471-1f3fd","isCanonical": true},":person_with_blond_hair_tone2:":{"unicode":["1f471-1f3fc"],"fname":"1f471-1f3fc","uc":"1f471-1f3fc","isCanonical": true},":person_with_blond_hair_tone1:":{"unicode":["1f471-1f3fb"],"fname":"1f471-1f3fb","uc":"1f471-1f3fb","isCanonical": true},":bride_with_veil_tone5:":{"unicode":["1f470-1f3ff"],"fname":"1f470-1f3ff","uc":"1f470-1f3ff","isCanonical": true},":bride_with_veil_tone4:":{"unicode":["1f470-1f3fe"],"fname":"1f470-1f3fe","uc":"1f470-1f3fe","isCanonical": true},":bride_with_veil_tone3:":{"unicode":["1f470-1f3fd"],"fname":"1f470-1f3fd","uc":"1f470-1f3fd","isCanonical": true},":bride_with_veil_tone2:":{"unicode":["1f470-1f3fc"],"fname":"1f470-1f3fc","uc":"1f470-1f3fc","isCanonical": true},":bride_with_veil_tone1:":{"unicode":["1f470-1f3fb"],"fname":"1f470-1f3fb","uc":"1f470-1f3fb","isCanonical": true},":cop_tone5:":{"unicode":["1f46e-1f3ff"],"fname":"1f46e-1f3ff","uc":"1f46e-1f3ff","isCanonical": true},":cop_tone4:":{"unicode":["1f46e-1f3fe"],"fname":"1f46e-1f3fe","uc":"1f46e-1f3fe","isCanonical": true},":cop_tone3:":{"unicode":["1f46e-1f3fd"],"fname":"1f46e-1f3fd","uc":"1f46e-1f3fd","isCanonical": true},":cop_tone2:":{"unicode":["1f46e-1f3fc"],"fname":"1f46e-1f3fc","uc":"1f46e-1f3fc","isCanonical": true},":cop_tone1:":{"unicode":["1f46e-1f3fb"],"fname":"1f46e-1f3fb","uc":"1f46e-1f3fb","isCanonical": true},":woman_tone5:":{"unicode":["1f469-1f3ff"],"fname":"1f469-1f3ff","uc":"1f469-1f3ff","isCanonical": true},":woman_tone4:":{"unicode":["1f469-1f3fe"],"fname":"1f469-1f3fe","uc":"1f469-1f3fe","isCanonical": true},":woman_tone3:":{"unicode":["1f469-1f3fd"],"fname":"1f469-1f3fd","uc":"1f469-1f3fd","isCanonical": true},":woman_tone2:":{"unicode":["1f469-1f3fc"],"fname":"1f469-1f3fc","uc":"1f469-1f3fc","isCanonical": true},":woman_tone1:":{"unicode":["1f469-1f3fb"],"fname":"1f469-1f3fb","uc":"1f469-1f3fb","isCanonical": true},":man_tone5:":{"unicode":["1f468-1f3ff"],"fname":"1f468-1f3ff","uc":"1f468-1f3ff","isCanonical": true},":man_tone4:":{"unicode":["1f468-1f3fe"],"fname":"1f468-1f3fe","uc":"1f468-1f3fe","isCanonical": true},":man_tone3:":{"unicode":["1f468-1f3fd"],"fname":"1f468-1f3fd","uc":"1f468-1f3fd","isCanonical": true},":man_tone2:":{"unicode":["1f468-1f3fc"],"fname":"1f468-1f3fc","uc":"1f468-1f3fc","isCanonical": true},":man_tone1:":{"unicode":["1f468-1f3fb"],"fname":"1f468-1f3fb","uc":"1f468-1f3fb","isCanonical": true},":girl_tone5:":{"unicode":["1f467-1f3ff"],"fname":"1f467-1f3ff","uc":"1f467-1f3ff","isCanonical": true},":girl_tone4:":{"unicode":["1f467-1f3fe"],"fname":"1f467-1f3fe","uc":"1f467-1f3fe","isCanonical": true},":girl_tone3:":{"unicode":["1f467-1f3fd"],"fname":"1f467-1f3fd","uc":"1f467-1f3fd","isCanonical": true},":girl_tone2:":{"unicode":["1f467-1f3fc"],"fname":"1f467-1f3fc","uc":"1f467-1f3fc","isCanonical": true},":girl_tone1:":{"unicode":["1f467-1f3fb"],"fname":"1f467-1f3fb","uc":"1f467-1f3fb","isCanonical": true},":boy_tone5:":{"unicode":["1f466-1f3ff"],"fname":"1f466-1f3ff","uc":"1f466-1f3ff","isCanonical": true},":boy_tone4:":{"unicode":["1f466-1f3fe"],"fname":"1f466-1f3fe","uc":"1f466-1f3fe","isCanonical": true},":boy_tone3:":{"unicode":["1f466-1f3fd"],"fname":"1f466-1f3fd","uc":"1f466-1f3fd","isCanonical": true},":boy_tone2:":{"unicode":["1f466-1f3fc"],"fname":"1f466-1f3fc","uc":"1f466-1f3fc","isCanonical": true},":boy_tone1:":{"unicode":["1f466-1f3fb"],"fname":"1f466-1f3fb","uc":"1f466-1f3fb","isCanonical": true},":open_hands_tone5:":{"unicode":["1f450-1f3ff"],"fname":"1f450-1f3ff","uc":"1f450-1f3ff","isCanonical": true},":open_hands_tone4:":{"unicode":["1f450-1f3fe"],"fname":"1f450-1f3fe","uc":"1f450-1f3fe","isCanonical": true},":open_hands_tone3:":{"unicode":["1f450-1f3fd"],"fname":"1f450-1f3fd","uc":"1f450-1f3fd","isCanonical": true},":open_hands_tone2:":{"unicode":["1f450-1f3fc"],"fname":"1f450-1f3fc","uc":"1f450-1f3fc","isCanonical": true},":open_hands_tone1:":{"unicode":["1f450-1f3fb"],"fname":"1f450-1f3fb","uc":"1f450-1f3fb","isCanonical": true},":clap_tone5:":{"unicode":["1f44f-1f3ff"],"fname":"1f44f-1f3ff","uc":"1f44f-1f3ff","isCanonical": true},":clap_tone4:":{"unicode":["1f44f-1f3fe"],"fname":"1f44f-1f3fe","uc":"1f44f-1f3fe","isCanonical": true},":clap_tone3:":{"unicode":["1f44f-1f3fd"],"fname":"1f44f-1f3fd","uc":"1f44f-1f3fd","isCanonical": true},":clap_tone2:":{"unicode":["1f44f-1f3fc"],"fname":"1f44f-1f3fc","uc":"1f44f-1f3fc","isCanonical": true},":clap_tone1:":{"unicode":["1f44f-1f3fb"],"fname":"1f44f-1f3fb","uc":"1f44f-1f3fb","isCanonical": true},":thumbsdown_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": true},":-1_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": false},":thumbdown_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": false},":thumbsdown_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": true},":-1_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": false},":thumbdown_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": false},":thumbsdown_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": true},":-1_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": false},":thumbdown_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": false},":thumbsdown_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": true},":-1_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": false},":thumbdown_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": false},":thumbsdown_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": true},":-1_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": false},":thumbdown_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": false},":thumbsup_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": true},":+1_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": false},":thumbup_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": false},":thumbsup_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": true},":+1_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": false},":thumbup_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": false},":thumbsup_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": true},":+1_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": false},":thumbup_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": false},":thumbsup_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": true},":+1_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": false},":thumbup_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": false},":thumbsup_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": true},":+1_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": false},":thumbup_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": false},":ok_hand_tone5:":{"unicode":["1f44c-1f3ff"],"fname":"1f44c-1f3ff","uc":"1f44c-1f3ff","isCanonical": true},":ok_hand_tone4:":{"unicode":["1f44c-1f3fe"],"fname":"1f44c-1f3fe","uc":"1f44c-1f3fe","isCanonical": true},":ok_hand_tone3:":{"unicode":["1f44c-1f3fd"],"fname":"1f44c-1f3fd","uc":"1f44c-1f3fd","isCanonical": true},":ok_hand_tone2:":{"unicode":["1f44c-1f3fc"],"fname":"1f44c-1f3fc","uc":"1f44c-1f3fc","isCanonical": true},":ok_hand_tone1:":{"unicode":["1f44c-1f3fb"],"fname":"1f44c-1f3fb","uc":"1f44c-1f3fb","isCanonical": true},":wave_tone5:":{"unicode":["1f44b-1f3ff"],"fname":"1f44b-1f3ff","uc":"1f44b-1f3ff","isCanonical": true},":wave_tone4:":{"unicode":["1f44b-1f3fe"],"fname":"1f44b-1f3fe","uc":"1f44b-1f3fe","isCanonical": true},":wave_tone3:":{"unicode":["1f44b-1f3fd"],"fname":"1f44b-1f3fd","uc":"1f44b-1f3fd","isCanonical": true},":wave_tone2:":{"unicode":["1f44b-1f3fc"],"fname":"1f44b-1f3fc","uc":"1f44b-1f3fc","isCanonical": true},":wave_tone1:":{"unicode":["1f44b-1f3fb"],"fname":"1f44b-1f3fb","uc":"1f44b-1f3fb","isCanonical": true},":punch_tone5:":{"unicode":["1f44a-1f3ff"],"fname":"1f44a-1f3ff","uc":"1f44a-1f3ff","isCanonical": true},":punch_tone4:":{"unicode":["1f44a-1f3fe"],"fname":"1f44a-1f3fe","uc":"1f44a-1f3fe","isCanonical": true},":punch_tone3:":{"unicode":["1f44a-1f3fd"],"fname":"1f44a-1f3fd","uc":"1f44a-1f3fd","isCanonical": true},":punch_tone2:":{"unicode":["1f44a-1f3fc"],"fname":"1f44a-1f3fc","uc":"1f44a-1f3fc","isCanonical": true},":punch_tone1:":{"unicode":["1f44a-1f3fb"],"fname":"1f44a-1f3fb","uc":"1f44a-1f3fb","isCanonical": true},":point_right_tone5:":{"unicode":["1f449-1f3ff"],"fname":"1f449-1f3ff","uc":"1f449-1f3ff","isCanonical": true},":point_right_tone4:":{"unicode":["1f449-1f3fe"],"fname":"1f449-1f3fe","uc":"1f449-1f3fe","isCanonical": true},":point_right_tone3:":{"unicode":["1f449-1f3fd"],"fname":"1f449-1f3fd","uc":"1f449-1f3fd","isCanonical": true},":point_right_tone2:":{"unicode":["1f449-1f3fc"],"fname":"1f449-1f3fc","uc":"1f449-1f3fc","isCanonical": true},":point_right_tone1:":{"unicode":["1f449-1f3fb"],"fname":"1f449-1f3fb","uc":"1f449-1f3fb","isCanonical": true},":point_left_tone5:":{"unicode":["1f448-1f3ff"],"fname":"1f448-1f3ff","uc":"1f448-1f3ff","isCanonical": true},":point_left_tone4:":{"unicode":["1f448-1f3fe"],"fname":"1f448-1f3fe","uc":"1f448-1f3fe","isCanonical": true},":point_left_tone3:":{"unicode":["1f448-1f3fd"],"fname":"1f448-1f3fd","uc":"1f448-1f3fd","isCanonical": true},":point_left_tone2:":{"unicode":["1f448-1f3fc"],"fname":"1f448-1f3fc","uc":"1f448-1f3fc","isCanonical": true},":point_left_tone1:":{"unicode":["1f448-1f3fb"],"fname":"1f448-1f3fb","uc":"1f448-1f3fb","isCanonical": true},":point_down_tone5:":{"unicode":["1f447-1f3ff"],"fname":"1f447-1f3ff","uc":"1f447-1f3ff","isCanonical": true},":point_down_tone4:":{"unicode":["1f447-1f3fe"],"fname":"1f447-1f3fe","uc":"1f447-1f3fe","isCanonical": true},":point_down_tone3:":{"unicode":["1f447-1f3fd"],"fname":"1f447-1f3fd","uc":"1f447-1f3fd","isCanonical": true},":point_down_tone2:":{"unicode":["1f447-1f3fc"],"fname":"1f447-1f3fc","uc":"1f447-1f3fc","isCanonical": true},":point_down_tone1:":{"unicode":["1f447-1f3fb"],"fname":"1f447-1f3fb","uc":"1f447-1f3fb","isCanonical": true},":point_up_2_tone5:":{"unicode":["1f446-1f3ff"],"fname":"1f446-1f3ff","uc":"1f446-1f3ff","isCanonical": true},":point_up_2_tone4:":{"unicode":["1f446-1f3fe"],"fname":"1f446-1f3fe","uc":"1f446-1f3fe","isCanonical": true},":point_up_2_tone3:":{"unicode":["1f446-1f3fd"],"fname":"1f446-1f3fd","uc":"1f446-1f3fd","isCanonical": true},":point_up_2_tone2:":{"unicode":["1f446-1f3fc"],"fname":"1f446-1f3fc","uc":"1f446-1f3fc","isCanonical": true},":point_up_2_tone1:":{"unicode":["1f446-1f3fb"],"fname":"1f446-1f3fb","uc":"1f446-1f3fb","isCanonical": true},":nose_tone5:":{"unicode":["1f443-1f3ff"],"fname":"1f443-1f3ff","uc":"1f443-1f3ff","isCanonical": true},":nose_tone4:":{"unicode":["1f443-1f3fe"],"fname":"1f443-1f3fe","uc":"1f443-1f3fe","isCanonical": true},":nose_tone3:":{"unicode":["1f443-1f3fd"],"fname":"1f443-1f3fd","uc":"1f443-1f3fd","isCanonical": true},":nose_tone2:":{"unicode":["1f443-1f3fc"],"fname":"1f443-1f3fc","uc":"1f443-1f3fc","isCanonical": true},":nose_tone1:":{"unicode":["1f443-1f3fb"],"fname":"1f443-1f3fb","uc":"1f443-1f3fb","isCanonical": true},":ear_tone5:":{"unicode":["1f442-1f3ff"],"fname":"1f442-1f3ff","uc":"1f442-1f3ff","isCanonical": true},":ear_tone4:":{"unicode":["1f442-1f3fe"],"fname":"1f442-1f3fe","uc":"1f442-1f3fe","isCanonical": true},":ear_tone3:":{"unicode":["1f442-1f3fd"],"fname":"1f442-1f3fd","uc":"1f442-1f3fd","isCanonical": true},":ear_tone2:":{"unicode":["1f442-1f3fc"],"fname":"1f442-1f3fc","uc":"1f442-1f3fc","isCanonical": true},":ear_tone1:":{"unicode":["1f442-1f3fb"],"fname":"1f442-1f3fb","uc":"1f442-1f3fb","isCanonical": true},":lifter_tone5:":{"unicode":["1f3cb-1f3ff"],"fname":"1f3cb-1f3ff","uc":"1f3cb-1f3ff","isCanonical": true},":weight_lifter_tone5:":{"unicode":["1f3cb-1f3ff"],"fname":"1f3cb-1f3ff","uc":"1f3cb-1f3ff","isCanonical": false},":lifter_tone4:":{"unicode":["1f3cb-1f3fe"],"fname":"1f3cb-1f3fe","uc":"1f3cb-1f3fe","isCanonical": true},":weight_lifter_tone4:":{"unicode":["1f3cb-1f3fe"],"fname":"1f3cb-1f3fe","uc":"1f3cb-1f3fe","isCanonical": false},":lifter_tone3:":{"unicode":["1f3cb-1f3fd"],"fname":"1f3cb-1f3fd","uc":"1f3cb-1f3fd","isCanonical": true},":weight_lifter_tone3:":{"unicode":["1f3cb-1f3fd"],"fname":"1f3cb-1f3fd","uc":"1f3cb-1f3fd","isCanonical": false},":lifter_tone2:":{"unicode":["1f3cb-1f3fc"],"fname":"1f3cb-1f3fc","uc":"1f3cb-1f3fc","isCanonical": true},":weight_lifter_tone2:":{"unicode":["1f3cb-1f3fc"],"fname":"1f3cb-1f3fc","uc":"1f3cb-1f3fc","isCanonical": false},":lifter_tone1:":{"unicode":["1f3cb-1f3fb"],"fname":"1f3cb-1f3fb","uc":"1f3cb-1f3fb","isCanonical": true},":weight_lifter_tone1:":{"unicode":["1f3cb-1f3fb"],"fname":"1f3cb-1f3fb","uc":"1f3cb-1f3fb","isCanonical": false},":swimmer_tone5:":{"unicode":["1f3ca-1f3ff"],"fname":"1f3ca-1f3ff","uc":"1f3ca-1f3ff","isCanonical": true},":swimmer_tone4:":{"unicode":["1f3ca-1f3fe"],"fname":"1f3ca-1f3fe","uc":"1f3ca-1f3fe","isCanonical": true},":swimmer_tone3:":{"unicode":["1f3ca-1f3fd"],"fname":"1f3ca-1f3fd","uc":"1f3ca-1f3fd","isCanonical": true},":swimmer_tone2:":{"unicode":["1f3ca-1f3fc"],"fname":"1f3ca-1f3fc","uc":"1f3ca-1f3fc","isCanonical": true},":swimmer_tone1:":{"unicode":["1f3ca-1f3fb"],"fname":"1f3ca-1f3fb","uc":"1f3ca-1f3fb","isCanonical": true},":horse_racing_tone5:":{"unicode":["1f3c7-1f3ff"],"fname":"1f3c7-1f3ff","uc":"1f3c7-1f3ff","isCanonical": true},":horse_racing_tone4:":{"unicode":["1f3c7-1f3fe"],"fname":"1f3c7-1f3fe","uc":"1f3c7-1f3fe","isCanonical": true},":horse_racing_tone3:":{"unicode":["1f3c7-1f3fd"],"fname":"1f3c7-1f3fd","uc":"1f3c7-1f3fd","isCanonical": true},":horse_racing_tone2:":{"unicode":["1f3c7-1f3fc"],"fname":"1f3c7-1f3fc","uc":"1f3c7-1f3fc","isCanonical": true},":horse_racing_tone1:":{"unicode":["1f3c7-1f3fb"],"fname":"1f3c7-1f3fb","uc":"1f3c7-1f3fb","isCanonical": true},":surfer_tone5:":{"unicode":["1f3c4-1f3ff"],"fname":"1f3c4-1f3ff","uc":"1f3c4-1f3ff","isCanonical": true},":surfer_tone4:":{"unicode":["1f3c4-1f3fe"],"fname":"1f3c4-1f3fe","uc":"1f3c4-1f3fe","isCanonical": true},":surfer_tone3:":{"unicode":["1f3c4-1f3fd"],"fname":"1f3c4-1f3fd","uc":"1f3c4-1f3fd","isCanonical": true},":surfer_tone2:":{"unicode":["1f3c4-1f3fc"],"fname":"1f3c4-1f3fc","uc":"1f3c4-1f3fc","isCanonical": true},":surfer_tone1:":{"unicode":["1f3c4-1f3fb"],"fname":"1f3c4-1f3fb","uc":"1f3c4-1f3fb","isCanonical": true},":runner_tone5:":{"unicode":["1f3c3-1f3ff"],"fname":"1f3c3-1f3ff","uc":"1f3c3-1f3ff","isCanonical": true},":runner_tone4:":{"unicode":["1f3c3-1f3fe"],"fname":"1f3c3-1f3fe","uc":"1f3c3-1f3fe","isCanonical": true},":runner_tone3:":{"unicode":["1f3c3-1f3fd"],"fname":"1f3c3-1f3fd","uc":"1f3c3-1f3fd","isCanonical": true},":runner_tone2:":{"unicode":["1f3c3-1f3fc"],"fname":"1f3c3-1f3fc","uc":"1f3c3-1f3fc","isCanonical": true},":runner_tone1:":{"unicode":["1f3c3-1f3fb"],"fname":"1f3c3-1f3fb","uc":"1f3c3-1f3fb","isCanonical": true},":santa_tone5:":{"unicode":["1f385-1f3ff"],"fname":"1f385-1f3ff","uc":"1f385-1f3ff","isCanonical": true},":santa_tone4:":{"unicode":["1f385-1f3fe"],"fname":"1f385-1f3fe","uc":"1f385-1f3fe","isCanonical": true},":santa_tone3:":{"unicode":["1f385-1f3fd"],"fname":"1f385-1f3fd","uc":"1f385-1f3fd","isCanonical": true},":santa_tone2:":{"unicode":["1f385-1f3fc"],"fname":"1f385-1f3fc","uc":"1f385-1f3fc","isCanonical": true},":santa_tone1:":{"unicode":["1f385-1f3fb"],"fname":"1f385-1f3fb","uc":"1f385-1f3fb","isCanonical": true},":flag_zw:":{"unicode":["1f1ff-1f1fc"],"fname":"1f1ff-1f1fc","uc":"1f1ff-1f1fc","isCanonical": true},":zw:":{"unicode":["1f1ff-1f1fc"],"fname":"1f1ff-1f1fc","uc":"1f1ff-1f1fc","isCanonical": false},":flag_zm:":{"unicode":["1f1ff-1f1f2"],"fname":"1f1ff-1f1f2","uc":"1f1ff-1f1f2","isCanonical": true},":zm:":{"unicode":["1f1ff-1f1f2"],"fname":"1f1ff-1f1f2","uc":"1f1ff-1f1f2","isCanonical": false},":flag_za:":{"unicode":["1f1ff-1f1e6"],"fname":"1f1ff-1f1e6","uc":"1f1ff-1f1e6","isCanonical": true},":za:":{"unicode":["1f1ff-1f1e6"],"fname":"1f1ff-1f1e6","uc":"1f1ff-1f1e6","isCanonical": false},":flag_yt:":{"unicode":["1f1fe-1f1f9"],"fname":"1f1fe-1f1f9","uc":"1f1fe-1f1f9","isCanonical": true},":yt:":{"unicode":["1f1fe-1f1f9"],"fname":"1f1fe-1f1f9","uc":"1f1fe-1f1f9","isCanonical": false},":flag_ye:":{"unicode":["1f1fe-1f1ea"],"fname":"1f1fe-1f1ea","uc":"1f1fe-1f1ea","isCanonical": true},":ye:":{"unicode":["1f1fe-1f1ea"],"fname":"1f1fe-1f1ea","uc":"1f1fe-1f1ea","isCanonical": false},":flag_xk:":{"unicode":["1f1fd-1f1f0"],"fname":"1f1fd-1f1f0","uc":"1f1fd-1f1f0","isCanonical": true},":xk:":{"unicode":["1f1fd-1f1f0"],"fname":"1f1fd-1f1f0","uc":"1f1fd-1f1f0","isCanonical": false},":flag_ws:":{"unicode":["1f1fc-1f1f8"],"fname":"1f1fc-1f1f8","uc":"1f1fc-1f1f8","isCanonical": true},":ws:":{"unicode":["1f1fc-1f1f8"],"fname":"1f1fc-1f1f8","uc":"1f1fc-1f1f8","isCanonical": false},":flag_wf:":{"unicode":["1f1fc-1f1eb"],"fname":"1f1fc-1f1eb","uc":"1f1fc-1f1eb","isCanonical": true},":wf:":{"unicode":["1f1fc-1f1eb"],"fname":"1f1fc-1f1eb","uc":"1f1fc-1f1eb","isCanonical": false},":flag_vu:":{"unicode":["1f1fb-1f1fa"],"fname":"1f1fb-1f1fa","uc":"1f1fb-1f1fa","isCanonical": true},":vu:":{"unicode":["1f1fb-1f1fa"],"fname":"1f1fb-1f1fa","uc":"1f1fb-1f1fa","isCanonical": false},":flag_vn:":{"unicode":["1f1fb-1f1f3"],"fname":"1f1fb-1f1f3","uc":"1f1fb-1f1f3","isCanonical": true},":vn:":{"unicode":["1f1fb-1f1f3"],"fname":"1f1fb-1f1f3","uc":"1f1fb-1f1f3","isCanonical": false},":flag_vi:":{"unicode":["1f1fb-1f1ee"],"fname":"1f1fb-1f1ee","uc":"1f1fb-1f1ee","isCanonical": true},":vi:":{"unicode":["1f1fb-1f1ee"],"fname":"1f1fb-1f1ee","uc":"1f1fb-1f1ee","isCanonical": false},":flag_vg:":{"unicode":["1f1fb-1f1ec"],"fname":"1f1fb-1f1ec","uc":"1f1fb-1f1ec","isCanonical": true},":vg:":{"unicode":["1f1fb-1f1ec"],"fname":"1f1fb-1f1ec","uc":"1f1fb-1f1ec","isCanonical": false},":flag_ve:":{"unicode":["1f1fb-1f1ea"],"fname":"1f1fb-1f1ea","uc":"1f1fb-1f1ea","isCanonical": true},":ve:":{"unicode":["1f1fb-1f1ea"],"fname":"1f1fb-1f1ea","uc":"1f1fb-1f1ea","isCanonical": false},":flag_vc:":{"unicode":["1f1fb-1f1e8"],"fname":"1f1fb-1f1e8","uc":"1f1fb-1f1e8","isCanonical": true},":vc:":{"unicode":["1f1fb-1f1e8"],"fname":"1f1fb-1f1e8","uc":"1f1fb-1f1e8","isCanonical": false},":flag_va:":{"unicode":["1f1fb-1f1e6"],"fname":"1f1fb-1f1e6","uc":"1f1fb-1f1e6","isCanonical": true},":va:":{"unicode":["1f1fb-1f1e6"],"fname":"1f1fb-1f1e6","uc":"1f1fb-1f1e6","isCanonical": false},":flag_uz:":{"unicode":["1f1fa-1f1ff"],"fname":"1f1fa-1f1ff","uc":"1f1fa-1f1ff","isCanonical": true},":uz:":{"unicode":["1f1fa-1f1ff"],"fname":"1f1fa-1f1ff","uc":"1f1fa-1f1ff","isCanonical": false},":flag_uy:":{"unicode":["1f1fa-1f1fe"],"fname":"1f1fa-1f1fe","uc":"1f1fa-1f1fe","isCanonical": true},":uy:":{"unicode":["1f1fa-1f1fe"],"fname":"1f1fa-1f1fe","uc":"1f1fa-1f1fe","isCanonical": false},":flag_us:":{"unicode":["1f1fa-1f1f8"],"fname":"1f1fa-1f1f8","uc":"1f1fa-1f1f8","isCanonical": true},":us:":{"unicode":["1f1fa-1f1f8"],"fname":"1f1fa-1f1f8","uc":"1f1fa-1f1f8","isCanonical": false},":flag_um:":{"unicode":["1f1fa-1f1f2"],"fname":"1f1fa-1f1f2","uc":"1f1fa-1f1f2","isCanonical": true},":um:":{"unicode":["1f1fa-1f1f2"],"fname":"1f1fa-1f1f2","uc":"1f1fa-1f1f2","isCanonical": false},":flag_ug:":{"unicode":["1f1fa-1f1ec"],"fname":"1f1fa-1f1ec","uc":"1f1fa-1f1ec","isCanonical": true},":ug:":{"unicode":["1f1fa-1f1ec"],"fname":"1f1fa-1f1ec","uc":"1f1fa-1f1ec","isCanonical": false},":flag_ua:":{"unicode":["1f1fa-1f1e6"],"fname":"1f1fa-1f1e6","uc":"1f1fa-1f1e6","isCanonical": true},":ua:":{"unicode":["1f1fa-1f1e6"],"fname":"1f1fa-1f1e6","uc":"1f1fa-1f1e6","isCanonical": false},":flag_tz:":{"unicode":["1f1f9-1f1ff"],"fname":"1f1f9-1f1ff","uc":"1f1f9-1f1ff","isCanonical": true},":tz:":{"unicode":["1f1f9-1f1ff"],"fname":"1f1f9-1f1ff","uc":"1f1f9-1f1ff","isCanonical": false},":flag_tw:":{"unicode":["1f1f9-1f1fc"],"fname":"1f1f9-1f1fc","uc":"1f1f9-1f1fc","isCanonical": true},":tw:":{"unicode":["1f1f9-1f1fc"],"fname":"1f1f9-1f1fc","uc":"1f1f9-1f1fc","isCanonical": false},":flag_tv:":{"unicode":["1f1f9-1f1fb"],"fname":"1f1f9-1f1fb","uc":"1f1f9-1f1fb","isCanonical": true},":tuvalu:":{"unicode":["1f1f9-1f1fb"],"fname":"1f1f9-1f1fb","uc":"1f1f9-1f1fb","isCanonical": false},":flag_tt:":{"unicode":["1f1f9-1f1f9"],"fname":"1f1f9-1f1f9","uc":"1f1f9-1f1f9","isCanonical": true},":tt:":{"unicode":["1f1f9-1f1f9"],"fname":"1f1f9-1f1f9","uc":"1f1f9-1f1f9","isCanonical": false},":flag_tr:":{"unicode":["1f1f9-1f1f7"],"fname":"1f1f9-1f1f7","uc":"1f1f9-1f1f7","isCanonical": true},":tr:":{"unicode":["1f1f9-1f1f7"],"fname":"1f1f9-1f1f7","uc":"1f1f9-1f1f7","isCanonical": false},":flag_to:":{"unicode":["1f1f9-1f1f4"],"fname":"1f1f9-1f1f4","uc":"1f1f9-1f1f4","isCanonical": true},":to:":{"unicode":["1f1f9-1f1f4"],"fname":"1f1f9-1f1f4","uc":"1f1f9-1f1f4","isCanonical": false},":flag_tn:":{"unicode":["1f1f9-1f1f3"],"fname":"1f1f9-1f1f3","uc":"1f1f9-1f1f3","isCanonical": true},":tn:":{"unicode":["1f1f9-1f1f3"],"fname":"1f1f9-1f1f3","uc":"1f1f9-1f1f3","isCanonical": false},":flag_tm:":{"unicode":["1f1f9-1f1f2"],"fname":"1f1f9-1f1f2","uc":"1f1f9-1f1f2","isCanonical": true},":turkmenistan:":{"unicode":["1f1f9-1f1f2"],"fname":"1f1f9-1f1f2","uc":"1f1f9-1f1f2","isCanonical": false},":flag_tl:":{"unicode":["1f1f9-1f1f1"],"fname":"1f1f9-1f1f1","uc":"1f1f9-1f1f1","isCanonical": true},":tl:":{"unicode":["1f1f9-1f1f1"],"fname":"1f1f9-1f1f1","uc":"1f1f9-1f1f1","isCanonical": false},":flag_tk:":{"unicode":["1f1f9-1f1f0"],"fname":"1f1f9-1f1f0","uc":"1f1f9-1f1f0","isCanonical": true},":tk:":{"unicode":["1f1f9-1f1f0"],"fname":"1f1f9-1f1f0","uc":"1f1f9-1f1f0","isCanonical": false},":flag_tj:":{"unicode":["1f1f9-1f1ef"],"fname":"1f1f9-1f1ef","uc":"1f1f9-1f1ef","isCanonical": true},":tj:":{"unicode":["1f1f9-1f1ef"],"fname":"1f1f9-1f1ef","uc":"1f1f9-1f1ef","isCanonical": false},":flag_th:":{"unicode":["1f1f9-1f1ed"],"fname":"1f1f9-1f1ed","uc":"1f1f9-1f1ed","isCanonical": true},":th:":{"unicode":["1f1f9-1f1ed"],"fname":"1f1f9-1f1ed","uc":"1f1f9-1f1ed","isCanonical": false},":flag_tg:":{"unicode":["1f1f9-1f1ec"],"fname":"1f1f9-1f1ec","uc":"1f1f9-1f1ec","isCanonical": true},":tg:":{"unicode":["1f1f9-1f1ec"],"fname":"1f1f9-1f1ec","uc":"1f1f9-1f1ec","isCanonical": false},":flag_tf:":{"unicode":["1f1f9-1f1eb"],"fname":"1f1f9-1f1eb","uc":"1f1f9-1f1eb","isCanonical": true},":tf:":{"unicode":["1f1f9-1f1eb"],"fname":"1f1f9-1f1eb","uc":"1f1f9-1f1eb","isCanonical": false},":flag_td:":{"unicode":["1f1f9-1f1e9"],"fname":"1f1f9-1f1e9","uc":"1f1f9-1f1e9","isCanonical": true},":td:":{"unicode":["1f1f9-1f1e9"],"fname":"1f1f9-1f1e9","uc":"1f1f9-1f1e9","isCanonical": false},":flag_tc:":{"unicode":["1f1f9-1f1e8"],"fname":"1f1f9-1f1e8","uc":"1f1f9-1f1e8","isCanonical": true},":tc:":{"unicode":["1f1f9-1f1e8"],"fname":"1f1f9-1f1e8","uc":"1f1f9-1f1e8","isCanonical": false},":flag_ta:":{"unicode":["1f1f9-1f1e6"],"fname":"1f1f9-1f1e6","uc":"1f1f9-1f1e6","isCanonical": true},":ta:":{"unicode":["1f1f9-1f1e6"],"fname":"1f1f9-1f1e6","uc":"1f1f9-1f1e6","isCanonical": false},":flag_sz:":{"unicode":["1f1f8-1f1ff"],"fname":"1f1f8-1f1ff","uc":"1f1f8-1f1ff","isCanonical": true},":sz:":{"unicode":["1f1f8-1f1ff"],"fname":"1f1f8-1f1ff","uc":"1f1f8-1f1ff","isCanonical": false},":flag_sy:":{"unicode":["1f1f8-1f1fe"],"fname":"1f1f8-1f1fe","uc":"1f1f8-1f1fe","isCanonical": true},":sy:":{"unicode":["1f1f8-1f1fe"],"fname":"1f1f8-1f1fe","uc":"1f1f8-1f1fe","isCanonical": false},":flag_sx:":{"unicode":["1f1f8-1f1fd"],"fname":"1f1f8-1f1fd","uc":"1f1f8-1f1fd","isCanonical": true},":sx:":{"unicode":["1f1f8-1f1fd"],"fname":"1f1f8-1f1fd","uc":"1f1f8-1f1fd","isCanonical": false},":flag_sv:":{"unicode":["1f1f8-1f1fb"],"fname":"1f1f8-1f1fb","uc":"1f1f8-1f1fb","isCanonical": true},":sv:":{"unicode":["1f1f8-1f1fb"],"fname":"1f1f8-1f1fb","uc":"1f1f8-1f1fb","isCanonical": false},":flag_st:":{"unicode":["1f1f8-1f1f9"],"fname":"1f1f8-1f1f9","uc":"1f1f8-1f1f9","isCanonical": true},":st:":{"unicode":["1f1f8-1f1f9"],"fname":"1f1f8-1f1f9","uc":"1f1f8-1f1f9","isCanonical": false},":flag_ss:":{"unicode":["1f1f8-1f1f8"],"fname":"1f1f8-1f1f8","uc":"1f1f8-1f1f8","isCanonical": true},":ss:":{"unicode":["1f1f8-1f1f8"],"fname":"1f1f8-1f1f8","uc":"1f1f8-1f1f8","isCanonical": false},":flag_sr:":{"unicode":["1f1f8-1f1f7"],"fname":"1f1f8-1f1f7","uc":"1f1f8-1f1f7","isCanonical": true},":sr:":{"unicode":["1f1f8-1f1f7"],"fname":"1f1f8-1f1f7","uc":"1f1f8-1f1f7","isCanonical": false},":flag_so:":{"unicode":["1f1f8-1f1f4"],"fname":"1f1f8-1f1f4","uc":"1f1f8-1f1f4","isCanonical": true},":so:":{"unicode":["1f1f8-1f1f4"],"fname":"1f1f8-1f1f4","uc":"1f1f8-1f1f4","isCanonical": false},":flag_sn:":{"unicode":["1f1f8-1f1f3"],"fname":"1f1f8-1f1f3","uc":"1f1f8-1f1f3","isCanonical": true},":sn:":{"unicode":["1f1f8-1f1f3"],"fname":"1f1f8-1f1f3","uc":"1f1f8-1f1f3","isCanonical": false},":flag_sm:":{"unicode":["1f1f8-1f1f2"],"fname":"1f1f8-1f1f2","uc":"1f1f8-1f1f2","isCanonical": true},":sm:":{"unicode":["1f1f8-1f1f2"],"fname":"1f1f8-1f1f2","uc":"1f1f8-1f1f2","isCanonical": false},":flag_sl:":{"unicode":["1f1f8-1f1f1"],"fname":"1f1f8-1f1f1","uc":"1f1f8-1f1f1","isCanonical": true},":sl:":{"unicode":["1f1f8-1f1f1"],"fname":"1f1f8-1f1f1","uc":"1f1f8-1f1f1","isCanonical": false},":flag_sk:":{"unicode":["1f1f8-1f1f0"],"fname":"1f1f8-1f1f0","uc":"1f1f8-1f1f0","isCanonical": true},":sk:":{"unicode":["1f1f8-1f1f0"],"fname":"1f1f8-1f1f0","uc":"1f1f8-1f1f0","isCanonical": false},":flag_sj:":{"unicode":["1f1f8-1f1ef"],"fname":"1f1f8-1f1ef","uc":"1f1f8-1f1ef","isCanonical": true},":sj:":{"unicode":["1f1f8-1f1ef"],"fname":"1f1f8-1f1ef","uc":"1f1f8-1f1ef","isCanonical": false},":flag_si:":{"unicode":["1f1f8-1f1ee"],"fname":"1f1f8-1f1ee","uc":"1f1f8-1f1ee","isCanonical": true},":si:":{"unicode":["1f1f8-1f1ee"],"fname":"1f1f8-1f1ee","uc":"1f1f8-1f1ee","isCanonical": false},":flag_sh:":{"unicode":["1f1f8-1f1ed"],"fname":"1f1f8-1f1ed","uc":"1f1f8-1f1ed","isCanonical": true},":sh:":{"unicode":["1f1f8-1f1ed"],"fname":"1f1f8-1f1ed","uc":"1f1f8-1f1ed","isCanonical": false},":flag_sg:":{"unicode":["1f1f8-1f1ec"],"fname":"1f1f8-1f1ec","uc":"1f1f8-1f1ec","isCanonical": true},":sg:":{"unicode":["1f1f8-1f1ec"],"fname":"1f1f8-1f1ec","uc":"1f1f8-1f1ec","isCanonical": false},":flag_se:":{"unicode":["1f1f8-1f1ea"],"fname":"1f1f8-1f1ea","uc":"1f1f8-1f1ea","isCanonical": true},":se:":{"unicode":["1f1f8-1f1ea"],"fname":"1f1f8-1f1ea","uc":"1f1f8-1f1ea","isCanonical": false},":flag_sd:":{"unicode":["1f1f8-1f1e9"],"fname":"1f1f8-1f1e9","uc":"1f1f8-1f1e9","isCanonical": true},":sd:":{"unicode":["1f1f8-1f1e9"],"fname":"1f1f8-1f1e9","uc":"1f1f8-1f1e9","isCanonical": false},":flag_sc:":{"unicode":["1f1f8-1f1e8"],"fname":"1f1f8-1f1e8","uc":"1f1f8-1f1e8","isCanonical": true},":sc:":{"unicode":["1f1f8-1f1e8"],"fname":"1f1f8-1f1e8","uc":"1f1f8-1f1e8","isCanonical": false},":flag_sb:":{"unicode":["1f1f8-1f1e7"],"fname":"1f1f8-1f1e7","uc":"1f1f8-1f1e7","isCanonical": true},":sb:":{"unicode":["1f1f8-1f1e7"],"fname":"1f1f8-1f1e7","uc":"1f1f8-1f1e7","isCanonical": false},":flag_sa:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": true},":saudiarabia:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": false},":saudi:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": false},":flag_rw:":{"unicode":["1f1f7-1f1fc"],"fname":"1f1f7-1f1fc","uc":"1f1f7-1f1fc","isCanonical": true},":rw:":{"unicode":["1f1f7-1f1fc"],"fname":"1f1f7-1f1fc","uc":"1f1f7-1f1fc","isCanonical": false},":flag_ru:":{"unicode":["1f1f7-1f1fa"],"fname":"1f1f7-1f1fa","uc":"1f1f7-1f1fa","isCanonical": true},":ru:":{"unicode":["1f1f7-1f1fa"],"fname":"1f1f7-1f1fa","uc":"1f1f7-1f1fa","isCanonical": false},":flag_rs:":{"unicode":["1f1f7-1f1f8"],"fname":"1f1f7-1f1f8","uc":"1f1f7-1f1f8","isCanonical": true},":rs:":{"unicode":["1f1f7-1f1f8"],"fname":"1f1f7-1f1f8","uc":"1f1f7-1f1f8","isCanonical": false},":flag_ro:":{"unicode":["1f1f7-1f1f4"],"fname":"1f1f7-1f1f4","uc":"1f1f7-1f1f4","isCanonical": true},":ro:":{"unicode":["1f1f7-1f1f4"],"fname":"1f1f7-1f1f4","uc":"1f1f7-1f1f4","isCanonical": false},":flag_re:":{"unicode":["1f1f7-1f1ea"],"fname":"1f1f7-1f1ea","uc":"1f1f7-1f1ea","isCanonical": true},":re:":{"unicode":["1f1f7-1f1ea"],"fname":"1f1f7-1f1ea","uc":"1f1f7-1f1ea","isCanonical": false},":flag_qa:":{"unicode":["1f1f6-1f1e6"],"fname":"1f1f6-1f1e6","uc":"1f1f6-1f1e6","isCanonical": true},":qa:":{"unicode":["1f1f6-1f1e6"],"fname":"1f1f6-1f1e6","uc":"1f1f6-1f1e6","isCanonical": false},":flag_py:":{"unicode":["1f1f5-1f1fe"],"fname":"1f1f5-1f1fe","uc":"1f1f5-1f1fe","isCanonical": true},":py:":{"unicode":["1f1f5-1f1fe"],"fname":"1f1f5-1f1fe","uc":"1f1f5-1f1fe","isCanonical": false},":flag_pw:":{"unicode":["1f1f5-1f1fc"],"fname":"1f1f5-1f1fc","uc":"1f1f5-1f1fc","isCanonical": true},":pw:":{"unicode":["1f1f5-1f1fc"],"fname":"1f1f5-1f1fc","uc":"1f1f5-1f1fc","isCanonical": false},":flag_pt:":{"unicode":["1f1f5-1f1f9"],"fname":"1f1f5-1f1f9","uc":"1f1f5-1f1f9","isCanonical": true},":pt:":{"unicode":["1f1f5-1f1f9"],"fname":"1f1f5-1f1f9","uc":"1f1f5-1f1f9","isCanonical": false},":flag_ps:":{"unicode":["1f1f5-1f1f8"],"fname":"1f1f5-1f1f8","uc":"1f1f5-1f1f8","isCanonical": true},":ps:":{"unicode":["1f1f5-1f1f8"],"fname":"1f1f5-1f1f8","uc":"1f1f5-1f1f8","isCanonical": false},":flag_pr:":{"unicode":["1f1f5-1f1f7"],"fname":"1f1f5-1f1f7","uc":"1f1f5-1f1f7","isCanonical": true},":pr:":{"unicode":["1f1f5-1f1f7"],"fname":"1f1f5-1f1f7","uc":"1f1f5-1f1f7","isCanonical": false},":flag_pn:":{"unicode":["1f1f5-1f1f3"],"fname":"1f1f5-1f1f3","uc":"1f1f5-1f1f3","isCanonical": true},":pn:":{"unicode":["1f1f5-1f1f3"],"fname":"1f1f5-1f1f3","uc":"1f1f5-1f1f3","isCanonical": false},":flag_pm:":{"unicode":["1f1f5-1f1f2"],"fname":"1f1f5-1f1f2","uc":"1f1f5-1f1f2","isCanonical": true},":pm:":{"unicode":["1f1f5-1f1f2"],"fname":"1f1f5-1f1f2","uc":"1f1f5-1f1f2","isCanonical": false},":flag_pl:":{"unicode":["1f1f5-1f1f1"],"fname":"1f1f5-1f1f1","uc":"1f1f5-1f1f1","isCanonical": true},":pl:":{"unicode":["1f1f5-1f1f1"],"fname":"1f1f5-1f1f1","uc":"1f1f5-1f1f1","isCanonical": false},":flag_pk:":{"unicode":["1f1f5-1f1f0"],"fname":"1f1f5-1f1f0","uc":"1f1f5-1f1f0","isCanonical": true},":pk:":{"unicode":["1f1f5-1f1f0"],"fname":"1f1f5-1f1f0","uc":"1f1f5-1f1f0","isCanonical": false},":flag_ph:":{"unicode":["1f1f5-1f1ed"],"fname":"1f1f5-1f1ed","uc":"1f1f5-1f1ed","isCanonical": true},":ph:":{"unicode":["1f1f5-1f1ed"],"fname":"1f1f5-1f1ed","uc":"1f1f5-1f1ed","isCanonical": false},":flag_pg:":{"unicode":["1f1f5-1f1ec"],"fname":"1f1f5-1f1ec","uc":"1f1f5-1f1ec","isCanonical": true},":pg:":{"unicode":["1f1f5-1f1ec"],"fname":"1f1f5-1f1ec","uc":"1f1f5-1f1ec","isCanonical": false},":flag_pf:":{"unicode":["1f1f5-1f1eb"],"fname":"1f1f5-1f1eb","uc":"1f1f5-1f1eb","isCanonical": true},":pf:":{"unicode":["1f1f5-1f1eb"],"fname":"1f1f5-1f1eb","uc":"1f1f5-1f1eb","isCanonical": false},":flag_pe:":{"unicode":["1f1f5-1f1ea"],"fname":"1f1f5-1f1ea","uc":"1f1f5-1f1ea","isCanonical": true},":pe:":{"unicode":["1f1f5-1f1ea"],"fname":"1f1f5-1f1ea","uc":"1f1f5-1f1ea","isCanonical": false},":flag_pa:":{"unicode":["1f1f5-1f1e6"],"fname":"1f1f5-1f1e6","uc":"1f1f5-1f1e6","isCanonical": true},":pa:":{"unicode":["1f1f5-1f1e6"],"fname":"1f1f5-1f1e6","uc":"1f1f5-1f1e6","isCanonical": false},":flag_om:":{"unicode":["1f1f4-1f1f2"],"fname":"1f1f4-1f1f2","uc":"1f1f4-1f1f2","isCanonical": true},":om:":{"unicode":["1f1f4-1f1f2"],"fname":"1f1f4-1f1f2","uc":"1f1f4-1f1f2","isCanonical": false},":flag_nz:":{"unicode":["1f1f3-1f1ff"],"fname":"1f1f3-1f1ff","uc":"1f1f3-1f1ff","isCanonical": true},":nz:":{"unicode":["1f1f3-1f1ff"],"fname":"1f1f3-1f1ff","uc":"1f1f3-1f1ff","isCanonical": false},":flag_nu:":{"unicode":["1f1f3-1f1fa"],"fname":"1f1f3-1f1fa","uc":"1f1f3-1f1fa","isCanonical": true},":nu:":{"unicode":["1f1f3-1f1fa"],"fname":"1f1f3-1f1fa","uc":"1f1f3-1f1fa","isCanonical": false},":flag_nr:":{"unicode":["1f1f3-1f1f7"],"fname":"1f1f3-1f1f7","uc":"1f1f3-1f1f7","isCanonical": true},":nr:":{"unicode":["1f1f3-1f1f7"],"fname":"1f1f3-1f1f7","uc":"1f1f3-1f1f7","isCanonical": false},":flag_np:":{"unicode":["1f1f3-1f1f5"],"fname":"1f1f3-1f1f5","uc":"1f1f3-1f1f5","isCanonical": true},":np:":{"unicode":["1f1f3-1f1f5"],"fname":"1f1f3-1f1f5","uc":"1f1f3-1f1f5","isCanonical": false},":flag_no:":{"unicode":["1f1f3-1f1f4"],"fname":"1f1f3-1f1f4","uc":"1f1f3-1f1f4","isCanonical": true},":no:":{"unicode":["1f1f3-1f1f4"],"fname":"1f1f3-1f1f4","uc":"1f1f3-1f1f4","isCanonical": false},":flag_nl:":{"unicode":["1f1f3-1f1f1"],"fname":"1f1f3-1f1f1","uc":"1f1f3-1f1f1","isCanonical": true},":nl:":{"unicode":["1f1f3-1f1f1"],"fname":"1f1f3-1f1f1","uc":"1f1f3-1f1f1","isCanonical": false},":flag_ni:":{"unicode":["1f1f3-1f1ee"],"fname":"1f1f3-1f1ee","uc":"1f1f3-1f1ee","isCanonical": true},":ni:":{"unicode":["1f1f3-1f1ee"],"fname":"1f1f3-1f1ee","uc":"1f1f3-1f1ee","isCanonical": false},":flag_ng:":{"unicode":["1f1f3-1f1ec"],"fname":"1f1f3-1f1ec","uc":"1f1f3-1f1ec","isCanonical": true},":nigeria:":{"unicode":["1f1f3-1f1ec"],"fname":"1f1f3-1f1ec","uc":"1f1f3-1f1ec","isCanonical": false},":flag_nf:":{"unicode":["1f1f3-1f1eb"],"fname":"1f1f3-1f1eb","uc":"1f1f3-1f1eb","isCanonical": true},":nf:":{"unicode":["1f1f3-1f1eb"],"fname":"1f1f3-1f1eb","uc":"1f1f3-1f1eb","isCanonical": false},":flag_ne:":{"unicode":["1f1f3-1f1ea"],"fname":"1f1f3-1f1ea","uc":"1f1f3-1f1ea","isCanonical": true},":ne:":{"unicode":["1f1f3-1f1ea"],"fname":"1f1f3-1f1ea","uc":"1f1f3-1f1ea","isCanonical": false},":flag_nc:":{"unicode":["1f1f3-1f1e8"],"fname":"1f1f3-1f1e8","uc":"1f1f3-1f1e8","isCanonical": true},":nc:":{"unicode":["1f1f3-1f1e8"],"fname":"1f1f3-1f1e8","uc":"1f1f3-1f1e8","isCanonical": false},":flag_na:":{"unicode":["1f1f3-1f1e6"],"fname":"1f1f3-1f1e6","uc":"1f1f3-1f1e6","isCanonical": true},":na:":{"unicode":["1f1f3-1f1e6"],"fname":"1f1f3-1f1e6","uc":"1f1f3-1f1e6","isCanonical": false},":flag_mz:":{"unicode":["1f1f2-1f1ff"],"fname":"1f1f2-1f1ff","uc":"1f1f2-1f1ff","isCanonical": true},":mz:":{"unicode":["1f1f2-1f1ff"],"fname":"1f1f2-1f1ff","uc":"1f1f2-1f1ff","isCanonical": false},":flag_my:":{"unicode":["1f1f2-1f1fe"],"fname":"1f1f2-1f1fe","uc":"1f1f2-1f1fe","isCanonical": true},":my:":{"unicode":["1f1f2-1f1fe"],"fname":"1f1f2-1f1fe","uc":"1f1f2-1f1fe","isCanonical": false},":flag_mx:":{"unicode":["1f1f2-1f1fd"],"fname":"1f1f2-1f1fd","uc":"1f1f2-1f1fd","isCanonical": true},":mx:":{"unicode":["1f1f2-1f1fd"],"fname":"1f1f2-1f1fd","uc":"1f1f2-1f1fd","isCanonical": false},":flag_mw:":{"unicode":["1f1f2-1f1fc"],"fname":"1f1f2-1f1fc","uc":"1f1f2-1f1fc","isCanonical": true},":mw:":{"unicode":["1f1f2-1f1fc"],"fname":"1f1f2-1f1fc","uc":"1f1f2-1f1fc","isCanonical": false},":flag_mv:":{"unicode":["1f1f2-1f1fb"],"fname":"1f1f2-1f1fb","uc":"1f1f2-1f1fb","isCanonical": true},":mv:":{"unicode":["1f1f2-1f1fb"],"fname":"1f1f2-1f1fb","uc":"1f1f2-1f1fb","isCanonical": false},":flag_mu:":{"unicode":["1f1f2-1f1fa"],"fname":"1f1f2-1f1fa","uc":"1f1f2-1f1fa","isCanonical": true},":mu:":{"unicode":["1f1f2-1f1fa"],"fname":"1f1f2-1f1fa","uc":"1f1f2-1f1fa","isCanonical": false},":flag_mt:":{"unicode":["1f1f2-1f1f9"],"fname":"1f1f2-1f1f9","uc":"1f1f2-1f1f9","isCanonical": true},":mt:":{"unicode":["1f1f2-1f1f9"],"fname":"1f1f2-1f1f9","uc":"1f1f2-1f1f9","isCanonical": false},":flag_ms:":{"unicode":["1f1f2-1f1f8"],"fname":"1f1f2-1f1f8","uc":"1f1f2-1f1f8","isCanonical": true},":ms:":{"unicode":["1f1f2-1f1f8"],"fname":"1f1f2-1f1f8","uc":"1f1f2-1f1f8","isCanonical": false},":flag_mr:":{"unicode":["1f1f2-1f1f7"],"fname":"1f1f2-1f1f7","uc":"1f1f2-1f1f7","isCanonical": true},":mr:":{"unicode":["1f1f2-1f1f7"],"fname":"1f1f2-1f1f7","uc":"1f1f2-1f1f7","isCanonical": false},":flag_mq:":{"unicode":["1f1f2-1f1f6"],"fname":"1f1f2-1f1f6","uc":"1f1f2-1f1f6","isCanonical": true},":mq:":{"unicode":["1f1f2-1f1f6"],"fname":"1f1f2-1f1f6","uc":"1f1f2-1f1f6","isCanonical": false},":flag_mp:":{"unicode":["1f1f2-1f1f5"],"fname":"1f1f2-1f1f5","uc":"1f1f2-1f1f5","isCanonical": true},":mp:":{"unicode":["1f1f2-1f1f5"],"fname":"1f1f2-1f1f5","uc":"1f1f2-1f1f5","isCanonical": false},":flag_mo:":{"unicode":["1f1f2-1f1f4"],"fname":"1f1f2-1f1f4","uc":"1f1f2-1f1f4","isCanonical": true},":mo:":{"unicode":["1f1f2-1f1f4"],"fname":"1f1f2-1f1f4","uc":"1f1f2-1f1f4","isCanonical": false},":flag_mn:":{"unicode":["1f1f2-1f1f3"],"fname":"1f1f2-1f1f3","uc":"1f1f2-1f1f3","isCanonical": true},":mn:":{"unicode":["1f1f2-1f1f3"],"fname":"1f1f2-1f1f3","uc":"1f1f2-1f1f3","isCanonical": false},":flag_mm:":{"unicode":["1f1f2-1f1f2"],"fname":"1f1f2-1f1f2","uc":"1f1f2-1f1f2","isCanonical": true},":mm:":{"unicode":["1f1f2-1f1f2"],"fname":"1f1f2-1f1f2","uc":"1f1f2-1f1f2","isCanonical": false},":flag_ml:":{"unicode":["1f1f2-1f1f1"],"fname":"1f1f2-1f1f1","uc":"1f1f2-1f1f1","isCanonical": true},":ml:":{"unicode":["1f1f2-1f1f1"],"fname":"1f1f2-1f1f1","uc":"1f1f2-1f1f1","isCanonical": false},":flag_mk:":{"unicode":["1f1f2-1f1f0"],"fname":"1f1f2-1f1f0","uc":"1f1f2-1f1f0","isCanonical": true},":mk:":{"unicode":["1f1f2-1f1f0"],"fname":"1f1f2-1f1f0","uc":"1f1f2-1f1f0","isCanonical": false},":flag_mh:":{"unicode":["1f1f2-1f1ed"],"fname":"1f1f2-1f1ed","uc":"1f1f2-1f1ed","isCanonical": true},":mh:":{"unicode":["1f1f2-1f1ed"],"fname":"1f1f2-1f1ed","uc":"1f1f2-1f1ed","isCanonical": false},":flag_mg:":{"unicode":["1f1f2-1f1ec"],"fname":"1f1f2-1f1ec","uc":"1f1f2-1f1ec","isCanonical": true},":mg:":{"unicode":["1f1f2-1f1ec"],"fname":"1f1f2-1f1ec","uc":"1f1f2-1f1ec","isCanonical": false},":flag_mf:":{"unicode":["1f1f2-1f1eb"],"fname":"1f1f2-1f1eb","uc":"1f1f2-1f1eb","isCanonical": true},":mf:":{"unicode":["1f1f2-1f1eb"],"fname":"1f1f2-1f1eb","uc":"1f1f2-1f1eb","isCanonical": false},":flag_me:":{"unicode":["1f1f2-1f1ea"],"fname":"1f1f2-1f1ea","uc":"1f1f2-1f1ea","isCanonical": true},":me:":{"unicode":["1f1f2-1f1ea"],"fname":"1f1f2-1f1ea","uc":"1f1f2-1f1ea","isCanonical": false},":flag_md:":{"unicode":["1f1f2-1f1e9"],"fname":"1f1f2-1f1e9","uc":"1f1f2-1f1e9","isCanonical": true},":md:":{"unicode":["1f1f2-1f1e9"],"fname":"1f1f2-1f1e9","uc":"1f1f2-1f1e9","isCanonical": false},":flag_mc:":{"unicode":["1f1f2-1f1e8"],"fname":"1f1f2-1f1e8","uc":"1f1f2-1f1e8","isCanonical": true},":mc:":{"unicode":["1f1f2-1f1e8"],"fname":"1f1f2-1f1e8","uc":"1f1f2-1f1e8","isCanonical": false},":flag_ma:":{"unicode":["1f1f2-1f1e6"],"fname":"1f1f2-1f1e6","uc":"1f1f2-1f1e6","isCanonical": true},":ma:":{"unicode":["1f1f2-1f1e6"],"fname":"1f1f2-1f1e6","uc":"1f1f2-1f1e6","isCanonical": false},":flag_ly:":{"unicode":["1f1f1-1f1fe"],"fname":"1f1f1-1f1fe","uc":"1f1f1-1f1fe","isCanonical": true},":ly:":{"unicode":["1f1f1-1f1fe"],"fname":"1f1f1-1f1fe","uc":"1f1f1-1f1fe","isCanonical": false},":flag_lv:":{"unicode":["1f1f1-1f1fb"],"fname":"1f1f1-1f1fb","uc":"1f1f1-1f1fb","isCanonical": true},":lv:":{"unicode":["1f1f1-1f1fb"],"fname":"1f1f1-1f1fb","uc":"1f1f1-1f1fb","isCanonical": false},":flag_lu:":{"unicode":["1f1f1-1f1fa"],"fname":"1f1f1-1f1fa","uc":"1f1f1-1f1fa","isCanonical": true},":lu:":{"unicode":["1f1f1-1f1fa"],"fname":"1f1f1-1f1fa","uc":"1f1f1-1f1fa","isCanonical": false},":flag_lt:":{"unicode":["1f1f1-1f1f9"],"fname":"1f1f1-1f1f9","uc":"1f1f1-1f1f9","isCanonical": true},":lt:":{"unicode":["1f1f1-1f1f9"],"fname":"1f1f1-1f1f9","uc":"1f1f1-1f1f9","isCanonical": false},":flag_ls:":{"unicode":["1f1f1-1f1f8"],"fname":"1f1f1-1f1f8","uc":"1f1f1-1f1f8","isCanonical": true},":ls:":{"unicode":["1f1f1-1f1f8"],"fname":"1f1f1-1f1f8","uc":"1f1f1-1f1f8","isCanonical": false},":flag_lr:":{"unicode":["1f1f1-1f1f7"],"fname":"1f1f1-1f1f7","uc":"1f1f1-1f1f7","isCanonical": true},":lr:":{"unicode":["1f1f1-1f1f7"],"fname":"1f1f1-1f1f7","uc":"1f1f1-1f1f7","isCanonical": false},":flag_lk:":{"unicode":["1f1f1-1f1f0"],"fname":"1f1f1-1f1f0","uc":"1f1f1-1f1f0","isCanonical": true},":lk:":{"unicode":["1f1f1-1f1f0"],"fname":"1f1f1-1f1f0","uc":"1f1f1-1f1f0","isCanonical": false},":flag_li:":{"unicode":["1f1f1-1f1ee"],"fname":"1f1f1-1f1ee","uc":"1f1f1-1f1ee","isCanonical": true},":li:":{"unicode":["1f1f1-1f1ee"],"fname":"1f1f1-1f1ee","uc":"1f1f1-1f1ee","isCanonical": false},":flag_lc:":{"unicode":["1f1f1-1f1e8"],"fname":"1f1f1-1f1e8","uc":"1f1f1-1f1e8","isCanonical": true},":lc:":{"unicode":["1f1f1-1f1e8"],"fname":"1f1f1-1f1e8","uc":"1f1f1-1f1e8","isCanonical": false},":flag_lb:":{"unicode":["1f1f1-1f1e7"],"fname":"1f1f1-1f1e7","uc":"1f1f1-1f1e7","isCanonical": true},":lb:":{"unicode":["1f1f1-1f1e7"],"fname":"1f1f1-1f1e7","uc":"1f1f1-1f1e7","isCanonical": false},":flag_la:":{"unicode":["1f1f1-1f1e6"],"fname":"1f1f1-1f1e6","uc":"1f1f1-1f1e6","isCanonical": true},":la:":{"unicode":["1f1f1-1f1e6"],"fname":"1f1f1-1f1e6","uc":"1f1f1-1f1e6","isCanonical": false},":flag_kz:":{"unicode":["1f1f0-1f1ff"],"fname":"1f1f0-1f1ff","uc":"1f1f0-1f1ff","isCanonical": true},":kz:":{"unicode":["1f1f0-1f1ff"],"fname":"1f1f0-1f1ff","uc":"1f1f0-1f1ff","isCanonical": false},":flag_ky:":{"unicode":["1f1f0-1f1fe"],"fname":"1f1f0-1f1fe","uc":"1f1f0-1f1fe","isCanonical": true},":ky:":{"unicode":["1f1f0-1f1fe"],"fname":"1f1f0-1f1fe","uc":"1f1f0-1f1fe","isCanonical": false},":flag_kw:":{"unicode":["1f1f0-1f1fc"],"fname":"1f1f0-1f1fc","uc":"1f1f0-1f1fc","isCanonical": true},":kw:":{"unicode":["1f1f0-1f1fc"],"fname":"1f1f0-1f1fc","uc":"1f1f0-1f1fc","isCanonical": false},":flag_kr:":{"unicode":["1f1f0-1f1f7"],"fname":"1f1f0-1f1f7","uc":"1f1f0-1f1f7","isCanonical": true},":kr:":{"unicode":["1f1f0-1f1f7"],"fname":"1f1f0-1f1f7","uc":"1f1f0-1f1f7","isCanonical": false},":flag_kp:":{"unicode":["1f1f0-1f1f5"],"fname":"1f1f0-1f1f5","uc":"1f1f0-1f1f5","isCanonical": true},":kp:":{"unicode":["1f1f0-1f1f5"],"fname":"1f1f0-1f1f5","uc":"1f1f0-1f1f5","isCanonical": false},":flag_kn:":{"unicode":["1f1f0-1f1f3"],"fname":"1f1f0-1f1f3","uc":"1f1f0-1f1f3","isCanonical": true},":kn:":{"unicode":["1f1f0-1f1f3"],"fname":"1f1f0-1f1f3","uc":"1f1f0-1f1f3","isCanonical": false},":flag_km:":{"unicode":["1f1f0-1f1f2"],"fname":"1f1f0-1f1f2","uc":"1f1f0-1f1f2","isCanonical": true},":km:":{"unicode":["1f1f0-1f1f2"],"fname":"1f1f0-1f1f2","uc":"1f1f0-1f1f2","isCanonical": false},":flag_ki:":{"unicode":["1f1f0-1f1ee"],"fname":"1f1f0-1f1ee","uc":"1f1f0-1f1ee","isCanonical": true},":ki:":{"unicode":["1f1f0-1f1ee"],"fname":"1f1f0-1f1ee","uc":"1f1f0-1f1ee","isCanonical": false},":flag_kh:":{"unicode":["1f1f0-1f1ed"],"fname":"1f1f0-1f1ed","uc":"1f1f0-1f1ed","isCanonical": true},":kh:":{"unicode":["1f1f0-1f1ed"],"fname":"1f1f0-1f1ed","uc":"1f1f0-1f1ed","isCanonical": false},":flag_kg:":{"unicode":["1f1f0-1f1ec"],"fname":"1f1f0-1f1ec","uc":"1f1f0-1f1ec","isCanonical": true},":kg:":{"unicode":["1f1f0-1f1ec"],"fname":"1f1f0-1f1ec","uc":"1f1f0-1f1ec","isCanonical": false},":flag_ke:":{"unicode":["1f1f0-1f1ea"],"fname":"1f1f0-1f1ea","uc":"1f1f0-1f1ea","isCanonical": true},":ke:":{"unicode":["1f1f0-1f1ea"],"fname":"1f1f0-1f1ea","uc":"1f1f0-1f1ea","isCanonical": false},":flag_jp:":{"unicode":["1f1ef-1f1f5"],"fname":"1f1ef-1f1f5","uc":"1f1ef-1f1f5","isCanonical": true},":jp:":{"unicode":["1f1ef-1f1f5"],"fname":"1f1ef-1f1f5","uc":"1f1ef-1f1f5","isCanonical": false},":flag_jo:":{"unicode":["1f1ef-1f1f4"],"fname":"1f1ef-1f1f4","uc":"1f1ef-1f1f4","isCanonical": true},":jo:":{"unicode":["1f1ef-1f1f4"],"fname":"1f1ef-1f1f4","uc":"1f1ef-1f1f4","isCanonical": false},":flag_jm:":{"unicode":["1f1ef-1f1f2"],"fname":"1f1ef-1f1f2","uc":"1f1ef-1f1f2","isCanonical": true},":jm:":{"unicode":["1f1ef-1f1f2"],"fname":"1f1ef-1f1f2","uc":"1f1ef-1f1f2","isCanonical": false},":flag_je:":{"unicode":["1f1ef-1f1ea"],"fname":"1f1ef-1f1ea","uc":"1f1ef-1f1ea","isCanonical": true},":je:":{"unicode":["1f1ef-1f1ea"],"fname":"1f1ef-1f1ea","uc":"1f1ef-1f1ea","isCanonical": false},":flag_it:":{"unicode":["1f1ee-1f1f9"],"fname":"1f1ee-1f1f9","uc":"1f1ee-1f1f9","isCanonical": true},":it:":{"unicode":["1f1ee-1f1f9"],"fname":"1f1ee-1f1f9","uc":"1f1ee-1f1f9","isCanonical": false},":flag_is:":{"unicode":["1f1ee-1f1f8"],"fname":"1f1ee-1f1f8","uc":"1f1ee-1f1f8","isCanonical": true},":is:":{"unicode":["1f1ee-1f1f8"],"fname":"1f1ee-1f1f8","uc":"1f1ee-1f1f8","isCanonical": false},":flag_ir:":{"unicode":["1f1ee-1f1f7"],"fname":"1f1ee-1f1f7","uc":"1f1ee-1f1f7","isCanonical": true},":ir:":{"unicode":["1f1ee-1f1f7"],"fname":"1f1ee-1f1f7","uc":"1f1ee-1f1f7","isCanonical": false},":flag_iq:":{"unicode":["1f1ee-1f1f6"],"fname":"1f1ee-1f1f6","uc":"1f1ee-1f1f6","isCanonical": true},":iq:":{"unicode":["1f1ee-1f1f6"],"fname":"1f1ee-1f1f6","uc":"1f1ee-1f1f6","isCanonical": false},":flag_io:":{"unicode":["1f1ee-1f1f4"],"fname":"1f1ee-1f1f4","uc":"1f1ee-1f1f4","isCanonical": true},":io:":{"unicode":["1f1ee-1f1f4"],"fname":"1f1ee-1f1f4","uc":"1f1ee-1f1f4","isCanonical": false},":flag_in:":{"unicode":["1f1ee-1f1f3"],"fname":"1f1ee-1f1f3","uc":"1f1ee-1f1f3","isCanonical": true},":in:":{"unicode":["1f1ee-1f1f3"],"fname":"1f1ee-1f1f3","uc":"1f1ee-1f1f3","isCanonical": false},":flag_im:":{"unicode":["1f1ee-1f1f2"],"fname":"1f1ee-1f1f2","uc":"1f1ee-1f1f2","isCanonical": true},":im:":{"unicode":["1f1ee-1f1f2"],"fname":"1f1ee-1f1f2","uc":"1f1ee-1f1f2","isCanonical": false},":flag_il:":{"unicode":["1f1ee-1f1f1"],"fname":"1f1ee-1f1f1","uc":"1f1ee-1f1f1","isCanonical": true},":il:":{"unicode":["1f1ee-1f1f1"],"fname":"1f1ee-1f1f1","uc":"1f1ee-1f1f1","isCanonical": false},":flag_ie:":{"unicode":["1f1ee-1f1ea"],"fname":"1f1ee-1f1ea","uc":"1f1ee-1f1ea","isCanonical": true},":ie:":{"unicode":["1f1ee-1f1ea"],"fname":"1f1ee-1f1ea","uc":"1f1ee-1f1ea","isCanonical": false},":flag_id:":{"unicode":["1f1ee-1f1e9"],"fname":"1f1ee-1f1e9","uc":"1f1ee-1f1e9","isCanonical": true},":indonesia:":{"unicode":["1f1ee-1f1e9"],"fname":"1f1ee-1f1e9","uc":"1f1ee-1f1e9","isCanonical": false},":flag_ic:":{"unicode":["1f1ee-1f1e8"],"fname":"1f1ee-1f1e8","uc":"1f1ee-1f1e8","isCanonical": true},":ic:":{"unicode":["1f1ee-1f1e8"],"fname":"1f1ee-1f1e8","uc":"1f1ee-1f1e8","isCanonical": false},":flag_hu:":{"unicode":["1f1ed-1f1fa"],"fname":"1f1ed-1f1fa","uc":"1f1ed-1f1fa","isCanonical": true},":hu:":{"unicode":["1f1ed-1f1fa"],"fname":"1f1ed-1f1fa","uc":"1f1ed-1f1fa","isCanonical": false},":flag_ht:":{"unicode":["1f1ed-1f1f9"],"fname":"1f1ed-1f1f9","uc":"1f1ed-1f1f9","isCanonical": true},":ht:":{"unicode":["1f1ed-1f1f9"],"fname":"1f1ed-1f1f9","uc":"1f1ed-1f1f9","isCanonical": false},":flag_hr:":{"unicode":["1f1ed-1f1f7"],"fname":"1f1ed-1f1f7","uc":"1f1ed-1f1f7","isCanonical": true},":hr:":{"unicode":["1f1ed-1f1f7"],"fname":"1f1ed-1f1f7","uc":"1f1ed-1f1f7","isCanonical": false},":flag_hn:":{"unicode":["1f1ed-1f1f3"],"fname":"1f1ed-1f1f3","uc":"1f1ed-1f1f3","isCanonical": true},":hn:":{"unicode":["1f1ed-1f1f3"],"fname":"1f1ed-1f1f3","uc":"1f1ed-1f1f3","isCanonical": false},":flag_hm:":{"unicode":["1f1ed-1f1f2"],"fname":"1f1ed-1f1f2","uc":"1f1ed-1f1f2","isCanonical": true},":hm:":{"unicode":["1f1ed-1f1f2"],"fname":"1f1ed-1f1f2","uc":"1f1ed-1f1f2","isCanonical": false},":flag_hk:":{"unicode":["1f1ed-1f1f0"],"fname":"1f1ed-1f1f0","uc":"1f1ed-1f1f0","isCanonical": true},":hk:":{"unicode":["1f1ed-1f1f0"],"fname":"1f1ed-1f1f0","uc":"1f1ed-1f1f0","isCanonical": false},":flag_gy:":{"unicode":["1f1ec-1f1fe"],"fname":"1f1ec-1f1fe","uc":"1f1ec-1f1fe","isCanonical": true},":gy:":{"unicode":["1f1ec-1f1fe"],"fname":"1f1ec-1f1fe","uc":"1f1ec-1f1fe","isCanonical": false},":flag_gw:":{"unicode":["1f1ec-1f1fc"],"fname":"1f1ec-1f1fc","uc":"1f1ec-1f1fc","isCanonical": true},":gw:":{"unicode":["1f1ec-1f1fc"],"fname":"1f1ec-1f1fc","uc":"1f1ec-1f1fc","isCanonical": false},":flag_gu:":{"unicode":["1f1ec-1f1fa"],"fname":"1f1ec-1f1fa","uc":"1f1ec-1f1fa","isCanonical": true},":gu:":{"unicode":["1f1ec-1f1fa"],"fname":"1f1ec-1f1fa","uc":"1f1ec-1f1fa","isCanonical": false},":flag_gt:":{"unicode":["1f1ec-1f1f9"],"fname":"1f1ec-1f1f9","uc":"1f1ec-1f1f9","isCanonical": true},":gt:":{"unicode":["1f1ec-1f1f9"],"fname":"1f1ec-1f1f9","uc":"1f1ec-1f1f9","isCanonical": false},":flag_gs:":{"unicode":["1f1ec-1f1f8"],"fname":"1f1ec-1f1f8","uc":"1f1ec-1f1f8","isCanonical": true},":gs:":{"unicode":["1f1ec-1f1f8"],"fname":"1f1ec-1f1f8","uc":"1f1ec-1f1f8","isCanonical": false},":flag_gr:":{"unicode":["1f1ec-1f1f7"],"fname":"1f1ec-1f1f7","uc":"1f1ec-1f1f7","isCanonical": true},":gr:":{"unicode":["1f1ec-1f1f7"],"fname":"1f1ec-1f1f7","uc":"1f1ec-1f1f7","isCanonical": false},":flag_gq:":{"unicode":["1f1ec-1f1f6"],"fname":"1f1ec-1f1f6","uc":"1f1ec-1f1f6","isCanonical": true},":gq:":{"unicode":["1f1ec-1f1f6"],"fname":"1f1ec-1f1f6","uc":"1f1ec-1f1f6","isCanonical": false},":flag_gp:":{"unicode":["1f1ec-1f1f5"],"fname":"1f1ec-1f1f5","uc":"1f1ec-1f1f5","isCanonical": true},":gp:":{"unicode":["1f1ec-1f1f5"],"fname":"1f1ec-1f1f5","uc":"1f1ec-1f1f5","isCanonical": false},":flag_gn:":{"unicode":["1f1ec-1f1f3"],"fname":"1f1ec-1f1f3","uc":"1f1ec-1f1f3","isCanonical": true},":gn:":{"unicode":["1f1ec-1f1f3"],"fname":"1f1ec-1f1f3","uc":"1f1ec-1f1f3","isCanonical": false},":flag_gm:":{"unicode":["1f1ec-1f1f2"],"fname":"1f1ec-1f1f2","uc":"1f1ec-1f1f2","isCanonical": true},":gm:":{"unicode":["1f1ec-1f1f2"],"fname":"1f1ec-1f1f2","uc":"1f1ec-1f1f2","isCanonical": false},":flag_gl:":{"unicode":["1f1ec-1f1f1"],"fname":"1f1ec-1f1f1","uc":"1f1ec-1f1f1","isCanonical": true},":gl:":{"unicode":["1f1ec-1f1f1"],"fname":"1f1ec-1f1f1","uc":"1f1ec-1f1f1","isCanonical": false},":flag_gi:":{"unicode":["1f1ec-1f1ee"],"fname":"1f1ec-1f1ee","uc":"1f1ec-1f1ee","isCanonical": true},":gi:":{"unicode":["1f1ec-1f1ee"],"fname":"1f1ec-1f1ee","uc":"1f1ec-1f1ee","isCanonical": false},":flag_gh:":{"unicode":["1f1ec-1f1ed"],"fname":"1f1ec-1f1ed","uc":"1f1ec-1f1ed","isCanonical": true},":gh:":{"unicode":["1f1ec-1f1ed"],"fname":"1f1ec-1f1ed","uc":"1f1ec-1f1ed","isCanonical": false},":flag_gg:":{"unicode":["1f1ec-1f1ec"],"fname":"1f1ec-1f1ec","uc":"1f1ec-1f1ec","isCanonical": true},":gg:":{"unicode":["1f1ec-1f1ec"],"fname":"1f1ec-1f1ec","uc":"1f1ec-1f1ec","isCanonical": false},":flag_gf:":{"unicode":["1f1ec-1f1eb"],"fname":"1f1ec-1f1eb","uc":"1f1ec-1f1eb","isCanonical": true},":gf:":{"unicode":["1f1ec-1f1eb"],"fname":"1f1ec-1f1eb","uc":"1f1ec-1f1eb","isCanonical": false},":flag_ge:":{"unicode":["1f1ec-1f1ea"],"fname":"1f1ec-1f1ea","uc":"1f1ec-1f1ea","isCanonical": true},":ge:":{"unicode":["1f1ec-1f1ea"],"fname":"1f1ec-1f1ea","uc":"1f1ec-1f1ea","isCanonical": false},":flag_gd:":{"unicode":["1f1ec-1f1e9"],"fname":"1f1ec-1f1e9","uc":"1f1ec-1f1e9","isCanonical": true},":gd:":{"unicode":["1f1ec-1f1e9"],"fname":"1f1ec-1f1e9","uc":"1f1ec-1f1e9","isCanonical": false},":flag_gb:":{"unicode":["1f1ec-1f1e7"],"fname":"1f1ec-1f1e7","uc":"1f1ec-1f1e7","isCanonical": true},":gb:":{"unicode":["1f1ec-1f1e7"],"fname":"1f1ec-1f1e7","uc":"1f1ec-1f1e7","isCanonical": false},":flag_ga:":{"unicode":["1f1ec-1f1e6"],"fname":"1f1ec-1f1e6","uc":"1f1ec-1f1e6","isCanonical": true},":ga:":{"unicode":["1f1ec-1f1e6"],"fname":"1f1ec-1f1e6","uc":"1f1ec-1f1e6","isCanonical": false},":flag_fr:":{"unicode":["1f1eb-1f1f7"],"fname":"1f1eb-1f1f7","uc":"1f1eb-1f1f7","isCanonical": true},":fr:":{"unicode":["1f1eb-1f1f7"],"fname":"1f1eb-1f1f7","uc":"1f1eb-1f1f7","isCanonical": false},":flag_fo:":{"unicode":["1f1eb-1f1f4"],"fname":"1f1eb-1f1f4","uc":"1f1eb-1f1f4","isCanonical": true},":fo:":{"unicode":["1f1eb-1f1f4"],"fname":"1f1eb-1f1f4","uc":"1f1eb-1f1f4","isCanonical": false},":flag_fm:":{"unicode":["1f1eb-1f1f2"],"fname":"1f1eb-1f1f2","uc":"1f1eb-1f1f2","isCanonical": true},":fm:":{"unicode":["1f1eb-1f1f2"],"fname":"1f1eb-1f1f2","uc":"1f1eb-1f1f2","isCanonical": false},":flag_fk:":{"unicode":["1f1eb-1f1f0"],"fname":"1f1eb-1f1f0","uc":"1f1eb-1f1f0","isCanonical": true},":fk:":{"unicode":["1f1eb-1f1f0"],"fname":"1f1eb-1f1f0","uc":"1f1eb-1f1f0","isCanonical": false},":flag_fj:":{"unicode":["1f1eb-1f1ef"],"fname":"1f1eb-1f1ef","uc":"1f1eb-1f1ef","isCanonical": true},":fj:":{"unicode":["1f1eb-1f1ef"],"fname":"1f1eb-1f1ef","uc":"1f1eb-1f1ef","isCanonical": false},":flag_fi:":{"unicode":["1f1eb-1f1ee"],"fname":"1f1eb-1f1ee","uc":"1f1eb-1f1ee","isCanonical": true},":fi:":{"unicode":["1f1eb-1f1ee"],"fname":"1f1eb-1f1ee","uc":"1f1eb-1f1ee","isCanonical": false},":flag_eu:":{"unicode":["1f1ea-1f1fa"],"fname":"1f1ea-1f1fa","uc":"1f1ea-1f1fa","isCanonical": true},":eu:":{"unicode":["1f1ea-1f1fa"],"fname":"1f1ea-1f1fa","uc":"1f1ea-1f1fa","isCanonical": false},":flag_et:":{"unicode":["1f1ea-1f1f9"],"fname":"1f1ea-1f1f9","uc":"1f1ea-1f1f9","isCanonical": true},":et:":{"unicode":["1f1ea-1f1f9"],"fname":"1f1ea-1f1f9","uc":"1f1ea-1f1f9","isCanonical": false},":flag_es:":{"unicode":["1f1ea-1f1f8"],"fname":"1f1ea-1f1f8","uc":"1f1ea-1f1f8","isCanonical": true},":es:":{"unicode":["1f1ea-1f1f8"],"fname":"1f1ea-1f1f8","uc":"1f1ea-1f1f8","isCanonical": false},":flag_er:":{"unicode":["1f1ea-1f1f7"],"fname":"1f1ea-1f1f7","uc":"1f1ea-1f1f7","isCanonical": true},":er:":{"unicode":["1f1ea-1f1f7"],"fname":"1f1ea-1f1f7","uc":"1f1ea-1f1f7","isCanonical": false},":flag_eh:":{"unicode":["1f1ea-1f1ed"],"fname":"1f1ea-1f1ed","uc":"1f1ea-1f1ed","isCanonical": true},":eh:":{"unicode":["1f1ea-1f1ed"],"fname":"1f1ea-1f1ed","uc":"1f1ea-1f1ed","isCanonical": false},":flag_eg:":{"unicode":["1f1ea-1f1ec"],"fname":"1f1ea-1f1ec","uc":"1f1ea-1f1ec","isCanonical": true},":eg:":{"unicode":["1f1ea-1f1ec"],"fname":"1f1ea-1f1ec","uc":"1f1ea-1f1ec","isCanonical": false},":flag_ee:":{"unicode":["1f1ea-1f1ea"],"fname":"1f1ea-1f1ea","uc":"1f1ea-1f1ea","isCanonical": true},":ee:":{"unicode":["1f1ea-1f1ea"],"fname":"1f1ea-1f1ea","uc":"1f1ea-1f1ea","isCanonical": false},":flag_ec:":{"unicode":["1f1ea-1f1e8"],"fname":"1f1ea-1f1e8","uc":"1f1ea-1f1e8","isCanonical": true},":ec:":{"unicode":["1f1ea-1f1e8"],"fname":"1f1ea-1f1e8","uc":"1f1ea-1f1e8","isCanonical": false},":flag_ea:":{"unicode":["1f1ea-1f1e6"],"fname":"1f1ea-1f1e6","uc":"1f1ea-1f1e6","isCanonical": true},":ea:":{"unicode":["1f1ea-1f1e6"],"fname":"1f1ea-1f1e6","uc":"1f1ea-1f1e6","isCanonical": false},":flag_dz:":{"unicode":["1f1e9-1f1ff"],"fname":"1f1e9-1f1ff","uc":"1f1e9-1f1ff","isCanonical": true},":dz:":{"unicode":["1f1e9-1f1ff"],"fname":"1f1e9-1f1ff","uc":"1f1e9-1f1ff","isCanonical": false},":flag_do:":{"unicode":["1f1e9-1f1f4"],"fname":"1f1e9-1f1f4","uc":"1f1e9-1f1f4","isCanonical": true},":do:":{"unicode":["1f1e9-1f1f4"],"fname":"1f1e9-1f1f4","uc":"1f1e9-1f1f4","isCanonical": false},":flag_dm:":{"unicode":["1f1e9-1f1f2"],"fname":"1f1e9-1f1f2","uc":"1f1e9-1f1f2","isCanonical": true},":dm:":{"unicode":["1f1e9-1f1f2"],"fname":"1f1e9-1f1f2","uc":"1f1e9-1f1f2","isCanonical": false},":flag_dk:":{"unicode":["1f1e9-1f1f0"],"fname":"1f1e9-1f1f0","uc":"1f1e9-1f1f0","isCanonical": true},":dk:":{"unicode":["1f1e9-1f1f0"],"fname":"1f1e9-1f1f0","uc":"1f1e9-1f1f0","isCanonical": false},":flag_dj:":{"unicode":["1f1e9-1f1ef"],"fname":"1f1e9-1f1ef","uc":"1f1e9-1f1ef","isCanonical": true},":dj:":{"unicode":["1f1e9-1f1ef"],"fname":"1f1e9-1f1ef","uc":"1f1e9-1f1ef","isCanonical": false},":flag_dg:":{"unicode":["1f1e9-1f1ec"],"fname":"1f1e9-1f1ec","uc":"1f1e9-1f1ec","isCanonical": true},":dg:":{"unicode":["1f1e9-1f1ec"],"fname":"1f1e9-1f1ec","uc":"1f1e9-1f1ec","isCanonical": false},":flag_de:":{"unicode":["1f1e9-1f1ea"],"fname":"1f1e9-1f1ea","uc":"1f1e9-1f1ea","isCanonical": true},":de:":{"unicode":["1f1e9-1f1ea"],"fname":"1f1e9-1f1ea","uc":"1f1e9-1f1ea","isCanonical": false},":flag_cz:":{"unicode":["1f1e8-1f1ff"],"fname":"1f1e8-1f1ff","uc":"1f1e8-1f1ff","isCanonical": true},":cz:":{"unicode":["1f1e8-1f1ff"],"fname":"1f1e8-1f1ff","uc":"1f1e8-1f1ff","isCanonical": false},":flag_cy:":{"unicode":["1f1e8-1f1fe"],"fname":"1f1e8-1f1fe","uc":"1f1e8-1f1fe","isCanonical": true},":cy:":{"unicode":["1f1e8-1f1fe"],"fname":"1f1e8-1f1fe","uc":"1f1e8-1f1fe","isCanonical": false},":flag_cx:":{"unicode":["1f1e8-1f1fd"],"fname":"1f1e8-1f1fd","uc":"1f1e8-1f1fd","isCanonical": true},":cx:":{"unicode":["1f1e8-1f1fd"],"fname":"1f1e8-1f1fd","uc":"1f1e8-1f1fd","isCanonical": false},":flag_cw:":{"unicode":["1f1e8-1f1fc"],"fname":"1f1e8-1f1fc","uc":"1f1e8-1f1fc","isCanonical": true},":cw:":{"unicode":["1f1e8-1f1fc"],"fname":"1f1e8-1f1fc","uc":"1f1e8-1f1fc","isCanonical": false},":flag_cv:":{"unicode":["1f1e8-1f1fb"],"fname":"1f1e8-1f1fb","uc":"1f1e8-1f1fb","isCanonical": true},":cv:":{"unicode":["1f1e8-1f1fb"],"fname":"1f1e8-1f1fb","uc":"1f1e8-1f1fb","isCanonical": false},":flag_cu:":{"unicode":["1f1e8-1f1fa"],"fname":"1f1e8-1f1fa","uc":"1f1e8-1f1fa","isCanonical": true},":cu:":{"unicode":["1f1e8-1f1fa"],"fname":"1f1e8-1f1fa","uc":"1f1e8-1f1fa","isCanonical": false},":flag_cr:":{"unicode":["1f1e8-1f1f7"],"fname":"1f1e8-1f1f7","uc":"1f1e8-1f1f7","isCanonical": true},":cr:":{"unicode":["1f1e8-1f1f7"],"fname":"1f1e8-1f1f7","uc":"1f1e8-1f1f7","isCanonical": false},":flag_cp:":{"unicode":["1f1e8-1f1f5"],"fname":"1f1e8-1f1f5","uc":"1f1e8-1f1f5","isCanonical": true},":cp:":{"unicode":["1f1e8-1f1f5"],"fname":"1f1e8-1f1f5","uc":"1f1e8-1f1f5","isCanonical": false},":flag_co:":{"unicode":["1f1e8-1f1f4"],"fname":"1f1e8-1f1f4","uc":"1f1e8-1f1f4","isCanonical": true},":co:":{"unicode":["1f1e8-1f1f4"],"fname":"1f1e8-1f1f4","uc":"1f1e8-1f1f4","isCanonical": false},":flag_cn:":{"unicode":["1f1e8-1f1f3"],"fname":"1f1e8-1f1f3","uc":"1f1e8-1f1f3","isCanonical": true},":cn:":{"unicode":["1f1e8-1f1f3"],"fname":"1f1e8-1f1f3","uc":"1f1e8-1f1f3","isCanonical": false},":flag_cm:":{"unicode":["1f1e8-1f1f2"],"fname":"1f1e8-1f1f2","uc":"1f1e8-1f1f2","isCanonical": true},":cm:":{"unicode":["1f1e8-1f1f2"],"fname":"1f1e8-1f1f2","uc":"1f1e8-1f1f2","isCanonical": false},":flag_cl:":{"unicode":["1f1e8-1f1f1"],"fname":"1f1e8-1f1f1","uc":"1f1e8-1f1f1","isCanonical": true},":chile:":{"unicode":["1f1e8-1f1f1"],"fname":"1f1e8-1f1f1","uc":"1f1e8-1f1f1","isCanonical": false},":flag_ck:":{"unicode":["1f1e8-1f1f0"],"fname":"1f1e8-1f1f0","uc":"1f1e8-1f1f0","isCanonical": true},":ck:":{"unicode":["1f1e8-1f1f0"],"fname":"1f1e8-1f1f0","uc":"1f1e8-1f1f0","isCanonical": false},":flag_ci:":{"unicode":["1f1e8-1f1ee"],"fname":"1f1e8-1f1ee","uc":"1f1e8-1f1ee","isCanonical": true},":ci:":{"unicode":["1f1e8-1f1ee"],"fname":"1f1e8-1f1ee","uc":"1f1e8-1f1ee","isCanonical": false},":flag_ch:":{"unicode":["1f1e8-1f1ed"],"fname":"1f1e8-1f1ed","uc":"1f1e8-1f1ed","isCanonical": true},":ch:":{"unicode":["1f1e8-1f1ed"],"fname":"1f1e8-1f1ed","uc":"1f1e8-1f1ed","isCanonical": false},":flag_cg:":{"unicode":["1f1e8-1f1ec"],"fname":"1f1e8-1f1ec","uc":"1f1e8-1f1ec","isCanonical": true},":cg:":{"unicode":["1f1e8-1f1ec"],"fname":"1f1e8-1f1ec","uc":"1f1e8-1f1ec","isCanonical": false},":flag_cf:":{"unicode":["1f1e8-1f1eb"],"fname":"1f1e8-1f1eb","uc":"1f1e8-1f1eb","isCanonical": true},":cf:":{"unicode":["1f1e8-1f1eb"],"fname":"1f1e8-1f1eb","uc":"1f1e8-1f1eb","isCanonical": false},":flag_cd:":{"unicode":["1f1e8-1f1e9"],"fname":"1f1e8-1f1e9","uc":"1f1e8-1f1e9","isCanonical": true},":congo:":{"unicode":["1f1e8-1f1e9"],"fname":"1f1e8-1f1e9","uc":"1f1e8-1f1e9","isCanonical": false},":flag_cc:":{"unicode":["1f1e8-1f1e8"],"fname":"1f1e8-1f1e8","uc":"1f1e8-1f1e8","isCanonical": true},":cc:":{"unicode":["1f1e8-1f1e8"],"fname":"1f1e8-1f1e8","uc":"1f1e8-1f1e8","isCanonical": false},":flag_ca:":{"unicode":["1f1e8-1f1e6"],"fname":"1f1e8-1f1e6","uc":"1f1e8-1f1e6","isCanonical": true},":ca:":{"unicode":["1f1e8-1f1e6"],"fname":"1f1e8-1f1e6","uc":"1f1e8-1f1e6","isCanonical": false},":flag_bz:":{"unicode":["1f1e7-1f1ff"],"fname":"1f1e7-1f1ff","uc":"1f1e7-1f1ff","isCanonical": true},":bz:":{"unicode":["1f1e7-1f1ff"],"fname":"1f1e7-1f1ff","uc":"1f1e7-1f1ff","isCanonical": false},":flag_by:":{"unicode":["1f1e7-1f1fe"],"fname":"1f1e7-1f1fe","uc":"1f1e7-1f1fe","isCanonical": true},":by:":{"unicode":["1f1e7-1f1fe"],"fname":"1f1e7-1f1fe","uc":"1f1e7-1f1fe","isCanonical": false},":flag_bw:":{"unicode":["1f1e7-1f1fc"],"fname":"1f1e7-1f1fc","uc":"1f1e7-1f1fc","isCanonical": true},":bw:":{"unicode":["1f1e7-1f1fc"],"fname":"1f1e7-1f1fc","uc":"1f1e7-1f1fc","isCanonical": false},":flag_bv:":{"unicode":["1f1e7-1f1fb"],"fname":"1f1e7-1f1fb","uc":"1f1e7-1f1fb","isCanonical": true},":bv:":{"unicode":["1f1e7-1f1fb"],"fname":"1f1e7-1f1fb","uc":"1f1e7-1f1fb","isCanonical": false},":flag_bt:":{"unicode":["1f1e7-1f1f9"],"fname":"1f1e7-1f1f9","uc":"1f1e7-1f1f9","isCanonical": true},":bt:":{"unicode":["1f1e7-1f1f9"],"fname":"1f1e7-1f1f9","uc":"1f1e7-1f1f9","isCanonical": false},":flag_bs:":{"unicode":["1f1e7-1f1f8"],"fname":"1f1e7-1f1f8","uc":"1f1e7-1f1f8","isCanonical": true},":bs:":{"unicode":["1f1e7-1f1f8"],"fname":"1f1e7-1f1f8","uc":"1f1e7-1f1f8","isCanonical": false},":flag_br:":{"unicode":["1f1e7-1f1f7"],"fname":"1f1e7-1f1f7","uc":"1f1e7-1f1f7","isCanonical": true},":br:":{"unicode":["1f1e7-1f1f7"],"fname":"1f1e7-1f1f7","uc":"1f1e7-1f1f7","isCanonical": false},":flag_bq:":{"unicode":["1f1e7-1f1f6"],"fname":"1f1e7-1f1f6","uc":"1f1e7-1f1f6","isCanonical": true},":bq:":{"unicode":["1f1e7-1f1f6"],"fname":"1f1e7-1f1f6","uc":"1f1e7-1f1f6","isCanonical": false},":flag_bo:":{"unicode":["1f1e7-1f1f4"],"fname":"1f1e7-1f1f4","uc":"1f1e7-1f1f4","isCanonical": true},":bo:":{"unicode":["1f1e7-1f1f4"],"fname":"1f1e7-1f1f4","uc":"1f1e7-1f1f4","isCanonical": false},":flag_bn:":{"unicode":["1f1e7-1f1f3"],"fname":"1f1e7-1f1f3","uc":"1f1e7-1f1f3","isCanonical": true},":bn:":{"unicode":["1f1e7-1f1f3"],"fname":"1f1e7-1f1f3","uc":"1f1e7-1f1f3","isCanonical": false},":flag_bm:":{"unicode":["1f1e7-1f1f2"],"fname":"1f1e7-1f1f2","uc":"1f1e7-1f1f2","isCanonical": true},":bm:":{"unicode":["1f1e7-1f1f2"],"fname":"1f1e7-1f1f2","uc":"1f1e7-1f1f2","isCanonical": false},":flag_bl:":{"unicode":["1f1e7-1f1f1"],"fname":"1f1e7-1f1f1","uc":"1f1e7-1f1f1","isCanonical": true},":bl:":{"unicode":["1f1e7-1f1f1"],"fname":"1f1e7-1f1f1","uc":"1f1e7-1f1f1","isCanonical": false},":flag_bj:":{"unicode":["1f1e7-1f1ef"],"fname":"1f1e7-1f1ef","uc":"1f1e7-1f1ef","isCanonical": true},":bj:":{"unicode":["1f1e7-1f1ef"],"fname":"1f1e7-1f1ef","uc":"1f1e7-1f1ef","isCanonical": false},":flag_bi:":{"unicode":["1f1e7-1f1ee"],"fname":"1f1e7-1f1ee","uc":"1f1e7-1f1ee","isCanonical": true},":bi:":{"unicode":["1f1e7-1f1ee"],"fname":"1f1e7-1f1ee","uc":"1f1e7-1f1ee","isCanonical": false},":flag_bh:":{"unicode":["1f1e7-1f1ed"],"fname":"1f1e7-1f1ed","uc":"1f1e7-1f1ed","isCanonical": true},":bh:":{"unicode":["1f1e7-1f1ed"],"fname":"1f1e7-1f1ed","uc":"1f1e7-1f1ed","isCanonical": false},":flag_bg:":{"unicode":["1f1e7-1f1ec"],"fname":"1f1e7-1f1ec","uc":"1f1e7-1f1ec","isCanonical": true},":bg:":{"unicode":["1f1e7-1f1ec"],"fname":"1f1e7-1f1ec","uc":"1f1e7-1f1ec","isCanonical": false},":flag_bf:":{"unicode":["1f1e7-1f1eb"],"fname":"1f1e7-1f1eb","uc":"1f1e7-1f1eb","isCanonical": true},":bf:":{"unicode":["1f1e7-1f1eb"],"fname":"1f1e7-1f1eb","uc":"1f1e7-1f1eb","isCanonical": false},":flag_be:":{"unicode":["1f1e7-1f1ea"],"fname":"1f1e7-1f1ea","uc":"1f1e7-1f1ea","isCanonical": true},":be:":{"unicode":["1f1e7-1f1ea"],"fname":"1f1e7-1f1ea","uc":"1f1e7-1f1ea","isCanonical": false},":flag_bd:":{"unicode":["1f1e7-1f1e9"],"fname":"1f1e7-1f1e9","uc":"1f1e7-1f1e9","isCanonical": true},":bd:":{"unicode":["1f1e7-1f1e9"],"fname":"1f1e7-1f1e9","uc":"1f1e7-1f1e9","isCanonical": false},":flag_bb:":{"unicode":["1f1e7-1f1e7"],"fname":"1f1e7-1f1e7","uc":"1f1e7-1f1e7","isCanonical": true},":bb:":{"unicode":["1f1e7-1f1e7"],"fname":"1f1e7-1f1e7","uc":"1f1e7-1f1e7","isCanonical": false},":flag_ba:":{"unicode":["1f1e7-1f1e6"],"fname":"1f1e7-1f1e6","uc":"1f1e7-1f1e6","isCanonical": true},":ba:":{"unicode":["1f1e7-1f1e6"],"fname":"1f1e7-1f1e6","uc":"1f1e7-1f1e6","isCanonical": false},":flag_az:":{"unicode":["1f1e6-1f1ff"],"fname":"1f1e6-1f1ff","uc":"1f1e6-1f1ff","isCanonical": true},":az:":{"unicode":["1f1e6-1f1ff"],"fname":"1f1e6-1f1ff","uc":"1f1e6-1f1ff","isCanonical": false},":flag_ax:":{"unicode":["1f1e6-1f1fd"],"fname":"1f1e6-1f1fd","uc":"1f1e6-1f1fd","isCanonical": true},":ax:":{"unicode":["1f1e6-1f1fd"],"fname":"1f1e6-1f1fd","uc":"1f1e6-1f1fd","isCanonical": false},":flag_aw:":{"unicode":["1f1e6-1f1fc"],"fname":"1f1e6-1f1fc","uc":"1f1e6-1f1fc","isCanonical": true},":aw:":{"unicode":["1f1e6-1f1fc"],"fname":"1f1e6-1f1fc","uc":"1f1e6-1f1fc","isCanonical": false},":flag_au:":{"unicode":["1f1e6-1f1fa"],"fname":"1f1e6-1f1fa","uc":"1f1e6-1f1fa","isCanonical": true},":au:":{"unicode":["1f1e6-1f1fa"],"fname":"1f1e6-1f1fa","uc":"1f1e6-1f1fa","isCanonical": false},":flag_at:":{"unicode":["1f1e6-1f1f9"],"fname":"1f1e6-1f1f9","uc":"1f1e6-1f1f9","isCanonical": true},":at:":{"unicode":["1f1e6-1f1f9"],"fname":"1f1e6-1f1f9","uc":"1f1e6-1f1f9","isCanonical": false},":flag_as:":{"unicode":["1f1e6-1f1f8"],"fname":"1f1e6-1f1f8","uc":"1f1e6-1f1f8","isCanonical": true},":as:":{"unicode":["1f1e6-1f1f8"],"fname":"1f1e6-1f1f8","uc":"1f1e6-1f1f8","isCanonical": false},":flag_ar:":{"unicode":["1f1e6-1f1f7"],"fname":"1f1e6-1f1f7","uc":"1f1e6-1f1f7","isCanonical": true},":ar:":{"unicode":["1f1e6-1f1f7"],"fname":"1f1e6-1f1f7","uc":"1f1e6-1f1f7","isCanonical": false},":flag_aq:":{"unicode":["1f1e6-1f1f6"],"fname":"1f1e6-1f1f6","uc":"1f1e6-1f1f6","isCanonical": true},":aq:":{"unicode":["1f1e6-1f1f6"],"fname":"1f1e6-1f1f6","uc":"1f1e6-1f1f6","isCanonical": false},":flag_ao:":{"unicode":["1f1e6-1f1f4"],"fname":"1f1e6-1f1f4","uc":"1f1e6-1f1f4","isCanonical": true},":ao:":{"unicode":["1f1e6-1f1f4"],"fname":"1f1e6-1f1f4","uc":"1f1e6-1f1f4","isCanonical": false},":flag_am:":{"unicode":["1f1e6-1f1f2"],"fname":"1f1e6-1f1f2","uc":"1f1e6-1f1f2","isCanonical": true},":am:":{"unicode":["1f1e6-1f1f2"],"fname":"1f1e6-1f1f2","uc":"1f1e6-1f1f2","isCanonical": false},":flag_al:":{"unicode":["1f1e6-1f1f1"],"fname":"1f1e6-1f1f1","uc":"1f1e6-1f1f1","isCanonical": true},":al:":{"unicode":["1f1e6-1f1f1"],"fname":"1f1e6-1f1f1","uc":"1f1e6-1f1f1","isCanonical": false},":flag_ai:":{"unicode":["1f1e6-1f1ee"],"fname":"1f1e6-1f1ee","uc":"1f1e6-1f1ee","isCanonical": true},":ai:":{"unicode":["1f1e6-1f1ee"],"fname":"1f1e6-1f1ee","uc":"1f1e6-1f1ee","isCanonical": false},":flag_ag:":{"unicode":["1f1e6-1f1ec"],"fname":"1f1e6-1f1ec","uc":"1f1e6-1f1ec","isCanonical": true},":ag:":{"unicode":["1f1e6-1f1ec"],"fname":"1f1e6-1f1ec","uc":"1f1e6-1f1ec","isCanonical": false},":flag_af:":{"unicode":["1f1e6-1f1eb"],"fname":"1f1e6-1f1eb","uc":"1f1e6-1f1eb","isCanonical": true},":af:":{"unicode":["1f1e6-1f1eb"],"fname":"1f1e6-1f1eb","uc":"1f1e6-1f1eb","isCanonical": false},":flag_ae:":{"unicode":["1f1e6-1f1ea"],"fname":"1f1e6-1f1ea","uc":"1f1e6-1f1ea","isCanonical": true},":ae:":{"unicode":["1f1e6-1f1ea"],"fname":"1f1e6-1f1ea","uc":"1f1e6-1f1ea","isCanonical": false},":flag_ad:":{"unicode":["1f1e6-1f1e9"],"fname":"1f1e6-1f1e9","uc":"1f1e6-1f1e9","isCanonical": true},":ad:":{"unicode":["1f1e6-1f1e9"],"fname":"1f1e6-1f1e9","uc":"1f1e6-1f1e9","isCanonical": false},":flag_ac:":{"unicode":["1f1e6-1f1e8"],"fname":"1f1e6-1f1e8","uc":"1f1e6-1f1e8","isCanonical": true},":ac:":{"unicode":["1f1e6-1f1e8"],"fname":"1f1e6-1f1e8","uc":"1f1e6-1f1e8","isCanonical": false},":mahjong:":{"unicode":["1f004-fe0f","1f004"],"fname":"1f004","uc":"1f004","isCanonical": true},":parking:":{"unicode":["1f17f-fe0f","1f17f"],"fname":"1f17f","uc":"1f17f","isCanonical": true},":sa:":{"unicode":["1f202-fe0f","1f202"],"fname":"1f202","uc":"1f202","isCanonical": true},":u7121:":{"unicode":["1f21a-fe0f","1f21a"],"fname":"1f21a","uc":"1f21a","isCanonical": true},":u6307:":{"unicode":["1f22f-fe0f","1f22f"],"fname":"1f22f","uc":"1f22f","isCanonical": true},":u6708:":{"unicode":["1f237-fe0f","1f237"],"fname":"1f237","uc":"1f237","isCanonical": true},":film_frames:":{"unicode":["1f39e-fe0f","1f39e"],"fname":"1f39e","uc":"1f39e","isCanonical": true},":tickets:":{"unicode":["1f39f-fe0f","1f39f"],"fname":"1f39f","uc":"1f39f","isCanonical": true},":admission_tickets:":{"unicode":["1f39f-fe0f","1f39f"],"fname":"1f39f","uc":"1f39f","isCanonical": false},":lifter:":{"unicode":["1f3cb-fe0f","1f3cb"],"fname":"1f3cb","uc":"1f3cb","isCanonical": true},":weight_lifter:":{"unicode":["1f3cb-fe0f","1f3cb"],"fname":"1f3cb","uc":"1f3cb","isCanonical": false},":golfer:":{"unicode":["1f3cc-fe0f","1f3cc"],"fname":"1f3cc","uc":"1f3cc","isCanonical": true},":motorcycle:":{"unicode":["1f3cd-fe0f","1f3cd"],"fname":"1f3cd","uc":"1f3cd","isCanonical": true},":racing_motorcycle:":{"unicode":["1f3cd-fe0f","1f3cd"],"fname":"1f3cd","uc":"1f3cd","isCanonical": false},":race_car:":{"unicode":["1f3ce-fe0f","1f3ce"],"fname":"1f3ce","uc":"1f3ce","isCanonical": true},":racing_car:":{"unicode":["1f3ce-fe0f","1f3ce"],"fname":"1f3ce","uc":"1f3ce","isCanonical": false},":military_medal:":{"unicode":["1f396-fe0f","1f396"],"fname":"1f396","uc":"1f396","isCanonical": true},":reminder_ribbon:":{"unicode":["1f397-fe0f","1f397"],"fname":"1f397","uc":"1f397","isCanonical": true},":hot_pepper:":{"unicode":["1f336-fe0f","1f336"],"fname":"1f336","uc":"1f336","isCanonical": true},":cloud_rain:":{"unicode":["1f327-fe0f","1f327"],"fname":"1f327","uc":"1f327","isCanonical": true},":cloud_with_rain:":{"unicode":["1f327-fe0f","1f327"],"fname":"1f327","uc":"1f327","isCanonical": false},":cloud_snow:":{"unicode":["1f328-fe0f","1f328"],"fname":"1f328","uc":"1f328","isCanonical": true},":cloud_with_snow:":{"unicode":["1f328-fe0f","1f328"],"fname":"1f328","uc":"1f328","isCanonical": false},":cloud_lightning:":{"unicode":["1f329-fe0f","1f329"],"fname":"1f329","uc":"1f329","isCanonical": true},":cloud_with_lightning:":{"unicode":["1f329-fe0f","1f329"],"fname":"1f329","uc":"1f329","isCanonical": false},":cloud_tornado:":{"unicode":["1f32a-fe0f","1f32a"],"fname":"1f32a","uc":"1f32a","isCanonical": true},":cloud_with_tornado:":{"unicode":["1f32a-fe0f","1f32a"],"fname":"1f32a","uc":"1f32a","isCanonical": false},":fog:":{"unicode":["1f32b-fe0f","1f32b"],"fname":"1f32b","uc":"1f32b","isCanonical": true},":wind_blowing_face:":{"unicode":["1f32c-fe0f","1f32c"],"fname":"1f32c","uc":"1f32c","isCanonical": true},":chipmunk:":{"unicode":["1f43f-fe0f","1f43f"],"fname":"1f43f","uc":"1f43f","isCanonical": true},":spider:":{"unicode":["1f577-fe0f","1f577"],"fname":"1f577","uc":"1f577","isCanonical": true},":spider_web:":{"unicode":["1f578-fe0f","1f578"],"fname":"1f578","uc":"1f578","isCanonical": true},":thermometer:":{"unicode":["1f321-fe0f","1f321"],"fname":"1f321","uc":"1f321","isCanonical": true},":microphone2:":{"unicode":["1f399-fe0f","1f399"],"fname":"1f399","uc":"1f399","isCanonical": true},":studio_microphone:":{"unicode":["1f399-fe0f","1f399"],"fname":"1f399","uc":"1f399","isCanonical": false},":level_slider:":{"unicode":["1f39a-fe0f","1f39a"],"fname":"1f39a","uc":"1f39a","isCanonical": true},":control_knobs:":{"unicode":["1f39b-fe0f","1f39b"],"fname":"1f39b","uc":"1f39b","isCanonical": true},":flag_white:":{"unicode":["1f3f3-fe0f","1f3f3"],"fname":"1f3f3","uc":"1f3f3","isCanonical": true},":waving_white_flag:":{"unicode":["1f3f3-fe0f","1f3f3"],"fname":"1f3f3","uc":"1f3f3","isCanonical": false},":rosette:":{"unicode":["1f3f5-fe0f","1f3f5"],"fname":"1f3f5","uc":"1f3f5","isCanonical": true},":label:":{"unicode":["1f3f7-fe0f","1f3f7"],"fname":"1f3f7","uc":"1f3f7","isCanonical": true},":projector:":{"unicode":["1f4fd-fe0f","1f4fd"],"fname":"1f4fd","uc":"1f4fd","isCanonical": true},":film_projector:":{"unicode":["1f4fd-fe0f","1f4fd"],"fname":"1f4fd","uc":"1f4fd","isCanonical": false},":om_symbol:":{"unicode":["1f549-fe0f","1f549"],"fname":"1f549","uc":"1f549","isCanonical": true},":dove:":{"unicode":["1f54a-fe0f","1f54a"],"fname":"1f54a","uc":"1f54a","isCanonical": true},":dove_of_peace:":{"unicode":["1f54a-fe0f","1f54a"],"fname":"1f54a","uc":"1f54a","isCanonical": false},":candle:":{"unicode":["1f56f-fe0f","1f56f"],"fname":"1f56f","uc":"1f56f","isCanonical": true},":clock:":{"unicode":["1f570-fe0f","1f570"],"fname":"1f570","uc":"1f570","isCanonical": true},":mantlepiece_clock:":{"unicode":["1f570-fe0f","1f570"],"fname":"1f570","uc":"1f570","isCanonical": false},":hole:":{"unicode":["1f573-fe0f","1f573"],"fname":"1f573","uc":"1f573","isCanonical": true},":dark_sunglasses:":{"unicode":["1f576-fe0f","1f576"],"fname":"1f576","uc":"1f576","isCanonical": true},":joystick:":{"unicode":["1f579-fe0f","1f579"],"fname":"1f579","uc":"1f579","isCanonical": true},":paperclips:":{"unicode":["1f587-fe0f","1f587"],"fname":"1f587","uc":"1f587","isCanonical": true},":linked_paperclips:":{"unicode":["1f587-fe0f","1f587"],"fname":"1f587","uc":"1f587","isCanonical": false},":pen_ballpoint:":{"unicode":["1f58a-fe0f","1f58a"],"fname":"1f58a","uc":"1f58a","isCanonical": true},":lower_left_ballpoint_pen:":{"unicode":["1f58a-fe0f","1f58a"],"fname":"1f58a","uc":"1f58a","isCanonical": false},":pen_fountain:":{"unicode":["1f58b-fe0f","1f58b"],"fname":"1f58b","uc":"1f58b","isCanonical": true},":lower_left_fountain_pen:":{"unicode":["1f58b-fe0f","1f58b"],"fname":"1f58b","uc":"1f58b","isCanonical": false},":paintbrush:":{"unicode":["1f58c-fe0f","1f58c"],"fname":"1f58c","uc":"1f58c","isCanonical": true},":lower_left_paintbrush:":{"unicode":["1f58c-fe0f","1f58c"],"fname":"1f58c","uc":"1f58c","isCanonical": false},":crayon:":{"unicode":["1f58d-fe0f","1f58d"],"fname":"1f58d","uc":"1f58d","isCanonical": true},":lower_left_crayon:":{"unicode":["1f58d-fe0f","1f58d"],"fname":"1f58d","uc":"1f58d","isCanonical": false},":desktop:":{"unicode":["1f5a5-fe0f","1f5a5"],"fname":"1f5a5","uc":"1f5a5","isCanonical": true},":desktop_computer:":{"unicode":["1f5a5-fe0f","1f5a5"],"fname":"1f5a5","uc":"1f5a5","isCanonical": false},":printer:":{"unicode":["1f5a8-fe0f","1f5a8"],"fname":"1f5a8","uc":"1f5a8","isCanonical": true},":trackball:":{"unicode":["1f5b2-fe0f","1f5b2"],"fname":"1f5b2","uc":"1f5b2","isCanonical": true},":frame_photo:":{"unicode":["1f5bc-fe0f","1f5bc"],"fname":"1f5bc","uc":"1f5bc","isCanonical": true},":frame_with_picture:":{"unicode":["1f5bc-fe0f","1f5bc"],"fname":"1f5bc","uc":"1f5bc","isCanonical": false},":dividers:":{"unicode":["1f5c2-fe0f","1f5c2"],"fname":"1f5c2","uc":"1f5c2","isCanonical": true},":card_index_dividers:":{"unicode":["1f5c2-fe0f","1f5c2"],"fname":"1f5c2","uc":"1f5c2","isCanonical": false},":card_box:":{"unicode":["1f5c3-fe0f","1f5c3"],"fname":"1f5c3","uc":"1f5c3","isCanonical": true},":card_file_box:":{"unicode":["1f5c3-fe0f","1f5c3"],"fname":"1f5c3","uc":"1f5c3","isCanonical": false},":file_cabinet:":{"unicode":["1f5c4-fe0f","1f5c4"],"fname":"1f5c4","uc":"1f5c4","isCanonical": true},":wastebasket:":{"unicode":["1f5d1-fe0f","1f5d1"],"fname":"1f5d1","uc":"1f5d1","isCanonical": true},":notepad_spiral:":{"unicode":["1f5d2-fe0f","1f5d2"],"fname":"1f5d2","uc":"1f5d2","isCanonical": true},":spiral_note_pad:":{"unicode":["1f5d2-fe0f","1f5d2"],"fname":"1f5d2","uc":"1f5d2","isCanonical": false},":calendar_spiral:":{"unicode":["1f5d3-fe0f","1f5d3"],"fname":"1f5d3","uc":"1f5d3","isCanonical": true},":spiral_calendar_pad:":{"unicode":["1f5d3-fe0f","1f5d3"],"fname":"1f5d3","uc":"1f5d3","isCanonical": false},":compression:":{"unicode":["1f5dc-fe0f","1f5dc"],"fname":"1f5dc","uc":"1f5dc","isCanonical": true},":key2:":{"unicode":["1f5dd-fe0f","1f5dd"],"fname":"1f5dd","uc":"1f5dd","isCanonical": true},":old_key:":{"unicode":["1f5dd-fe0f","1f5dd"],"fname":"1f5dd","uc":"1f5dd","isCanonical": false},":newspaper2:":{"unicode":["1f5de-fe0f","1f5de"],"fname":"1f5de","uc":"1f5de","isCanonical": true},":rolled_up_newspaper:":{"unicode":["1f5de-fe0f","1f5de"],"fname":"1f5de","uc":"1f5de","isCanonical": false},":dagger:":{"unicode":["1f5e1-fe0f","1f5e1"],"fname":"1f5e1","uc":"1f5e1","isCanonical": true},":dagger_knife:":{"unicode":["1f5e1-fe0f","1f5e1"],"fname":"1f5e1","uc":"1f5e1","isCanonical": false},":speaking_head:":{"unicode":["1f5e3-fe0f","1f5e3"],"fname":"1f5e3","uc":"1f5e3","isCanonical": true},":speaking_head_in_silhouette:":{"unicode":["1f5e3-fe0f","1f5e3"],"fname":"1f5e3","uc":"1f5e3","isCanonical": false},":speech_left:":{"unicode":["1f5e8-fe0f","1f5e8"],"fname":"1f5e8","uc":"1f5e8","isCanonical": true},":left_speech_bubble:":{"unicode":["1f5e8-fe0f","1f5e8"],"fname":"1f5e8","uc":"1f5e8","isCanonical": false},":anger_right:":{"unicode":["1f5ef-fe0f","1f5ef"],"fname":"1f5ef","uc":"1f5ef","isCanonical": true},":right_anger_bubble:":{"unicode":["1f5ef-fe0f","1f5ef"],"fname":"1f5ef","uc":"1f5ef","isCanonical": false},":ballot_box:":{"unicode":["1f5f3-fe0f","1f5f3"],"fname":"1f5f3","uc":"1f5f3","isCanonical": true},":ballot_box_with_ballot:":{"unicode":["1f5f3-fe0f","1f5f3"],"fname":"1f5f3","uc":"1f5f3","isCanonical": false},":map:":{"unicode":["1f5fa-fe0f","1f5fa"],"fname":"1f5fa","uc":"1f5fa","isCanonical": true},":world_map:":{"unicode":["1f5fa-fe0f","1f5fa"],"fname":"1f5fa","uc":"1f5fa","isCanonical": false},":tools:":{"unicode":["1f6e0-fe0f","1f6e0"],"fname":"1f6e0","uc":"1f6e0","isCanonical": true},":hammer_and_wrench:":{"unicode":["1f6e0-fe0f","1f6e0"],"fname":"1f6e0","uc":"1f6e0","isCanonical": false},":shield:":{"unicode":["1f6e1-fe0f","1f6e1"],"fname":"1f6e1","uc":"1f6e1","isCanonical": true},":oil:":{"unicode":["1f6e2-fe0f","1f6e2"],"fname":"1f6e2","uc":"1f6e2","isCanonical": true},":oil_drum:":{"unicode":["1f6e2-fe0f","1f6e2"],"fname":"1f6e2","uc":"1f6e2","isCanonical": false},":satellite_orbital:":{"unicode":["1f6f0-fe0f","1f6f0"],"fname":"1f6f0","uc":"1f6f0","isCanonical": true},":fork_knife_plate:":{"unicode":["1f37d-fe0f","1f37d"],"fname":"1f37d","uc":"1f37d","isCanonical": true},":fork_and_knife_with_plate:":{"unicode":["1f37d-fe0f","1f37d"],"fname":"1f37d","uc":"1f37d","isCanonical": false},":eye:":{"unicode":["1f441-fe0f","1f441"],"fname":"1f441","uc":"1f441","isCanonical": true},":levitate:":{"unicode":["1f574-fe0f","1f574"],"fname":"1f574","uc":"1f574","isCanonical": true},":man_in_business_suit_levitating:":{"unicode":["1f574-fe0f","1f574"],"fname":"1f574","uc":"1f574","isCanonical": false},":spy:":{"unicode":["1f575-fe0f","1f575"],"fname":"1f575","uc":"1f575","isCanonical": true},":sleuth_or_spy:":{"unicode":["1f575-fe0f","1f575"],"fname":"1f575","uc":"1f575","isCanonical": false},":hand_splayed:":{"unicode":["1f590-fe0f","1f590"],"fname":"1f590","uc":"1f590","isCanonical": true},":raised_hand_with_fingers_splayed:":{"unicode":["1f590-fe0f","1f590"],"fname":"1f590","uc":"1f590","isCanonical": false},":mountain_snow:":{"unicode":["1f3d4-fe0f","1f3d4"],"fname":"1f3d4","uc":"1f3d4","isCanonical": true},":snow_capped_mountain:":{"unicode":["1f3d4-fe0f","1f3d4"],"fname":"1f3d4","uc":"1f3d4","isCanonical": false},":camping:":{"unicode":["1f3d5-fe0f","1f3d5"],"fname":"1f3d5","uc":"1f3d5","isCanonical": true},":beach:":{"unicode":["1f3d6-fe0f","1f3d6"],"fname":"1f3d6","uc":"1f3d6","isCanonical": true},":beach_with_umbrella:":{"unicode":["1f3d6-fe0f","1f3d6"],"fname":"1f3d6","uc":"1f3d6","isCanonical": false},":construction_site:":{"unicode":["1f3d7-fe0f","1f3d7"],"fname":"1f3d7","uc":"1f3d7","isCanonical": true},":building_construction:":{"unicode":["1f3d7-fe0f","1f3d7"],"fname":"1f3d7","uc":"1f3d7","isCanonical": false},":homes:":{"unicode":["1f3d8-fe0f","1f3d8"],"fname":"1f3d8","uc":"1f3d8","isCanonical": true},":house_buildings:":{"unicode":["1f3d8-fe0f","1f3d8"],"fname":"1f3d8","uc":"1f3d8","isCanonical": false},":cityscape:":{"unicode":["1f3d9-fe0f","1f3d9"],"fname":"1f3d9","uc":"1f3d9","isCanonical": true},":house_abandoned:":{"unicode":["1f3da-fe0f","1f3da"],"fname":"1f3da","uc":"1f3da","isCanonical": true},":derelict_house_building:":{"unicode":["1f3da-fe0f","1f3da"],"fname":"1f3da","uc":"1f3da","isCanonical": false},":classical_building:":{"unicode":["1f3db-fe0f","1f3db"],"fname":"1f3db","uc":"1f3db","isCanonical": true},":desert:":{"unicode":["1f3dc-fe0f","1f3dc"],"fname":"1f3dc","uc":"1f3dc","isCanonical": true},":island:":{"unicode":["1f3dd-fe0f","1f3dd"],"fname":"1f3dd","uc":"1f3dd","isCanonical": true},":desert_island:":{"unicode":["1f3dd-fe0f","1f3dd"],"fname":"1f3dd","uc":"1f3dd","isCanonical": false},":park:":{"unicode":["1f3de-fe0f","1f3de"],"fname":"1f3de","uc":"1f3de","isCanonical": true},":national_park:":{"unicode":["1f3de-fe0f","1f3de"],"fname":"1f3de","uc":"1f3de","isCanonical": false},":stadium:":{"unicode":["1f3df-fe0f","1f3df"],"fname":"1f3df","uc":"1f3df","isCanonical": true},":couch:":{"unicode":["1f6cb-fe0f","1f6cb"],"fname":"1f6cb","uc":"1f6cb","isCanonical": true},":couch_and_lamp:":{"unicode":["1f6cb-fe0f","1f6cb"],"fname":"1f6cb","uc":"1f6cb","isCanonical": false},":shopping_bags:":{"unicode":["1f6cd-fe0f","1f6cd"],"fname":"1f6cd","uc":"1f6cd","isCanonical": true},":bellhop:":{"unicode":["1f6ce-fe0f","1f6ce"],"fname":"1f6ce","uc":"1f6ce","isCanonical": true},":bellhop_bell:":{"unicode":["1f6ce-fe0f","1f6ce"],"fname":"1f6ce","uc":"1f6ce","isCanonical": false},":bed:":{"unicode":["1f6cf-fe0f","1f6cf"],"fname":"1f6cf","uc":"1f6cf","isCanonical": true},":motorway:":{"unicode":["1f6e3-fe0f","1f6e3"],"fname":"1f6e3","uc":"1f6e3","isCanonical": true},":railway_track:":{"unicode":["1f6e4-fe0f","1f6e4"],"fname":"1f6e4","uc":"1f6e4","isCanonical": true},":railroad_track:":{"unicode":["1f6e4-fe0f","1f6e4"],"fname":"1f6e4","uc":"1f6e4","isCanonical": false},":motorboat:":{"unicode":["1f6e5-fe0f","1f6e5"],"fname":"1f6e5","uc":"1f6e5","isCanonical": true},":airplane_small:":{"unicode":["1f6e9-fe0f","1f6e9"],"fname":"1f6e9","uc":"1f6e9","isCanonical": true},":small_airplane:":{"unicode":["1f6e9-fe0f","1f6e9"],"fname":"1f6e9","uc":"1f6e9","isCanonical": false},":cruise_ship:":{"unicode":["1f6f3-fe0f","1f6f3"],"fname":"1f6f3","uc":"1f6f3","isCanonical": true},":passenger_ship:":{"unicode":["1f6f3-fe0f","1f6f3"],"fname":"1f6f3","uc":"1f6f3","isCanonical": false},":white_sun_small_cloud:":{"unicode":["1f324-fe0f","1f324"],"fname":"1f324","uc":"1f324","isCanonical": true},":white_sun_with_small_cloud:":{"unicode":["1f324-fe0f","1f324"],"fname":"1f324","uc":"1f324","isCanonical": false},":white_sun_cloud:":{"unicode":["1f325-fe0f","1f325"],"fname":"1f325","uc":"1f325","isCanonical": true},":white_sun_behind_cloud:":{"unicode":["1f325-fe0f","1f325"],"fname":"1f325","uc":"1f325","isCanonical": false},":white_sun_rain_cloud:":{"unicode":["1f326-fe0f","1f326"],"fname":"1f326","uc":"1f326","isCanonical": true},":white_sun_behind_cloud_with_rain:":{"unicode":["1f326-fe0f","1f326"],"fname":"1f326","uc":"1f326","isCanonical": false},":mouse_three_button:":{"unicode":["1f5b1-fe0f","1f5b1"],"fname":"1f5b1","uc":"1f5b1","isCanonical": true},":three_button_mouse:":{"unicode":["1f5b1-fe0f","1f5b1"],"fname":"1f5b1","uc":"1f5b1","isCanonical": false},":point_up_tone1:":{"unicode":["261d-1f3fb"],"fname":"261d-1f3fb","uc":"261d-1f3fb","isCanonical": true},":point_up_tone2:":{"unicode":["261d-1f3fc"],"fname":"261d-1f3fc","uc":"261d-1f3fc","isCanonical": true},":point_up_tone3:":{"unicode":["261d-1f3fd"],"fname":"261d-1f3fd","uc":"261d-1f3fd","isCanonical": true},":point_up_tone4:":{"unicode":["261d-1f3fe"],"fname":"261d-1f3fe","uc":"261d-1f3fe","isCanonical": true},":point_up_tone5:":{"unicode":["261d-1f3ff"],"fname":"261d-1f3ff","uc":"261d-1f3ff","isCanonical": true},":v_tone1:":{"unicode":["270c-1f3fb"],"fname":"270c-1f3fb","uc":"270c-1f3fb","isCanonical": true},":v_tone2:":{"unicode":["270c-1f3fc"],"fname":"270c-1f3fc","uc":"270c-1f3fc","isCanonical": true},":v_tone3:":{"unicode":["270c-1f3fd"],"fname":"270c-1f3fd","uc":"270c-1f3fd","isCanonical": true},":v_tone4:":{"unicode":["270c-1f3fe"],"fname":"270c-1f3fe","uc":"270c-1f3fe","isCanonical": true},":v_tone5:":{"unicode":["270c-1f3ff"],"fname":"270c-1f3ff","uc":"270c-1f3ff","isCanonical": true},":fist_tone1:":{"unicode":["270a-1f3fb"],"fname":"270a-1f3fb","uc":"270a-1f3fb","isCanonical": true},":fist_tone2:":{"unicode":["270a-1f3fc"],"fname":"270a-1f3fc","uc":"270a-1f3fc","isCanonical": true},":fist_tone3:":{"unicode":["270a-1f3fd"],"fname":"270a-1f3fd","uc":"270a-1f3fd","isCanonical": true},":fist_tone4:":{"unicode":["270a-1f3fe"],"fname":"270a-1f3fe","uc":"270a-1f3fe","isCanonical": true},":fist_tone5:":{"unicode":["270a-1f3ff"],"fname":"270a-1f3ff","uc":"270a-1f3ff","isCanonical": true},":raised_hand_tone1:":{"unicode":["270b-1f3fb"],"fname":"270b-1f3fb","uc":"270b-1f3fb","isCanonical": true},":raised_hand_tone2:":{"unicode":["270b-1f3fc"],"fname":"270b-1f3fc","uc":"270b-1f3fc","isCanonical": true},":raised_hand_tone3:":{"unicode":["270b-1f3fd"],"fname":"270b-1f3fd","uc":"270b-1f3fd","isCanonical": true},":raised_hand_tone4:":{"unicode":["270b-1f3fe"],"fname":"270b-1f3fe","uc":"270b-1f3fe","isCanonical": true},":raised_hand_tone5:":{"unicode":["270b-1f3ff"],"fname":"270b-1f3ff","uc":"270b-1f3ff","isCanonical": true},":writing_hand_tone1:":{"unicode":["270d-1f3fb"],"fname":"270d-1f3fb","uc":"270d-1f3fb","isCanonical": true},":writing_hand_tone2:":{"unicode":["270d-1f3fc"],"fname":"270d-1f3fc","uc":"270d-1f3fc","isCanonical": true},":writing_hand_tone3:":{"unicode":["270d-1f3fd"],"fname":"270d-1f3fd","uc":"270d-1f3fd","isCanonical": true},":writing_hand_tone4:":{"unicode":["270d-1f3fe"],"fname":"270d-1f3fe","uc":"270d-1f3fe","isCanonical": true},":writing_hand_tone5:":{"unicode":["270d-1f3ff"],"fname":"270d-1f3ff","uc":"270d-1f3ff","isCanonical": true},":basketball_player_tone1:":{"unicode":["26f9-1f3fb"],"fname":"26f9-1f3fb","uc":"26f9-1f3fb","isCanonical": true},":person_with_ball_tone1:":{"unicode":["26f9-1f3fb"],"fname":"26f9-1f3fb","uc":"26f9-1f3fb","isCanonical": false},":basketball_player_tone2:":{"unicode":["26f9-1f3fc"],"fname":"26f9-1f3fc","uc":"26f9-1f3fc","isCanonical": true},":person_with_ball_tone2:":{"unicode":["26f9-1f3fc"],"fname":"26f9-1f3fc","uc":"26f9-1f3fc","isCanonical": false},":basketball_player_tone3:":{"unicode":["26f9-1f3fd"],"fname":"26f9-1f3fd","uc":"26f9-1f3fd","isCanonical": true},":person_with_ball_tone3:":{"unicode":["26f9-1f3fd"],"fname":"26f9-1f3fd","uc":"26f9-1f3fd","isCanonical": false},":basketball_player_tone4:":{"unicode":["26f9-1f3fe"],"fname":"26f9-1f3fe","uc":"26f9-1f3fe","isCanonical": true},":person_with_ball_tone4:":{"unicode":["26f9-1f3fe"],"fname":"26f9-1f3fe","uc":"26f9-1f3fe","isCanonical": false},":basketball_player_tone5:":{"unicode":["26f9-1f3ff"],"fname":"26f9-1f3ff","uc":"26f9-1f3ff","isCanonical": true},":person_with_ball_tone5:":{"unicode":["26f9-1f3ff"],"fname":"26f9-1f3ff","uc":"26f9-1f3ff","isCanonical": false},":copyright:":{"unicode":["00a9-fe0f","00a9"],"fname":"00a9","uc":"00a9","isCanonical": true},":registered:":{"unicode":["00ae-fe0f","00ae"],"fname":"00ae","uc":"00ae","isCanonical": true},":bangbang:":{"unicode":["203c-fe0f","203c"],"fname":"203c","uc":"203c","isCanonical": true},":interrobang:":{"unicode":["2049-fe0f","2049"],"fname":"2049","uc":"2049","isCanonical": true},":tm:":{"unicode":["2122-fe0f","2122"],"fname":"2122","uc":"2122","isCanonical": true},":information_source:":{"unicode":["2139-fe0f","2139"],"fname":"2139","uc":"2139","isCanonical": true},":left_right_arrow:":{"unicode":["2194-fe0f","2194"],"fname":"2194","uc":"2194","isCanonical": true},":arrow_up_down:":{"unicode":["2195-fe0f","2195"],"fname":"2195","uc":"2195","isCanonical": true},":arrow_upper_left:":{"unicode":["2196-fe0f","2196"],"fname":"2196","uc":"2196","isCanonical": true},":arrow_upper_right:":{"unicode":["2197-fe0f","2197"],"fname":"2197","uc":"2197","isCanonical": true},":arrow_lower_right:":{"unicode":["2198-fe0f","2198"],"fname":"2198","uc":"2198","isCanonical": true},":arrow_lower_left:":{"unicode":["2199-fe0f","2199"],"fname":"2199","uc":"2199","isCanonical": true},":leftwards_arrow_with_hook:":{"unicode":["21a9-fe0f","21a9"],"fname":"21a9","uc":"21a9","isCanonical": true},":arrow_right_hook:":{"unicode":["21aa-fe0f","21aa"],"fname":"21aa","uc":"21aa","isCanonical": true},":watch:":{"unicode":["231a-fe0f","231a"],"fname":"231a","uc":"231a","isCanonical": true},":hourglass:":{"unicode":["231b-fe0f","231b"],"fname":"231b","uc":"231b","isCanonical": true},":m:":{"unicode":["24c2-fe0f","24c2"],"fname":"24c2","uc":"24c2","isCanonical": true},":black_small_square:":{"unicode":["25aa-fe0f","25aa"],"fname":"25aa","uc":"25aa","isCanonical": true},":white_small_square:":{"unicode":["25ab-fe0f","25ab"],"fname":"25ab","uc":"25ab","isCanonical": true},":arrow_forward:":{"unicode":["25b6-fe0f","25b6"],"fname":"25b6","uc":"25b6","isCanonical": true},":arrow_backward:":{"unicode":["25c0-fe0f","25c0"],"fname":"25c0","uc":"25c0","isCanonical": true},":white_medium_square:":{"unicode":["25fb-fe0f","25fb"],"fname":"25fb","uc":"25fb","isCanonical": true},":black_medium_square:":{"unicode":["25fc-fe0f","25fc"],"fname":"25fc","uc":"25fc","isCanonical": true},":white_medium_small_square:":{"unicode":["25fd-fe0f","25fd"],"fname":"25fd","uc":"25fd","isCanonical": true},":black_medium_small_square:":{"unicode":["25fe-fe0f","25fe"],"fname":"25fe","uc":"25fe","isCanonical": true},":sunny:":{"unicode":["2600-fe0f","2600"],"fname":"2600","uc":"2600","isCanonical": true},":cloud:":{"unicode":["2601-fe0f","2601"],"fname":"2601","uc":"2601","isCanonical": true},":telephone:":{"unicode":["260e-fe0f","260e"],"fname":"260e","uc":"260e","isCanonical": true},":ballot_box_with_check:":{"unicode":["2611-fe0f","2611"],"fname":"2611","uc":"2611","isCanonical": true},":umbrella:":{"unicode":["2614-fe0f","2614"],"fname":"2614","uc":"2614","isCanonical": true},":coffee:":{"unicode":["2615-fe0f","2615"],"fname":"2615","uc":"2615","isCanonical": true},":point_up:":{"unicode":["261d-fe0f","261d"],"fname":"261d","uc":"261d","isCanonical": true},":relaxed:":{"unicode":["263a-fe0f","263a"],"fname":"263a","uc":"263a","isCanonical": true},":aries:":{"unicode":["2648-fe0f","2648"],"fname":"2648","uc":"2648","isCanonical": true},":taurus:":{"unicode":["2649-fe0f","2649"],"fname":"2649","uc":"2649","isCanonical": true},":gemini:":{"unicode":["264a-fe0f","264a"],"fname":"264a","uc":"264a","isCanonical": true},":cancer:":{"unicode":["264b-fe0f","264b"],"fname":"264b","uc":"264b","isCanonical": true},":leo:":{"unicode":["264c-fe0f","264c"],"fname":"264c","uc":"264c","isCanonical": true},":virgo:":{"unicode":["264d-fe0f","264d"],"fname":"264d","uc":"264d","isCanonical": true},":libra:":{"unicode":["264e-fe0f","264e"],"fname":"264e","uc":"264e","isCanonical": true},":scorpius:":{"unicode":["264f-fe0f","264f"],"fname":"264f","uc":"264f","isCanonical": true},":sagittarius:":{"unicode":["2650-fe0f","2650"],"fname":"2650","uc":"2650","isCanonical": true},":capricorn:":{"unicode":["2651-fe0f","2651"],"fname":"2651","uc":"2651","isCanonical": true},":aquarius:":{"unicode":["2652-fe0f","2652"],"fname":"2652","uc":"2652","isCanonical": true},":pisces:":{"unicode":["2653-fe0f","2653"],"fname":"2653","uc":"2653","isCanonical": true},":spades:":{"unicode":["2660-fe0f","2660"],"fname":"2660","uc":"2660","isCanonical": true},":clubs:":{"unicode":["2663-fe0f","2663"],"fname":"2663","uc":"2663","isCanonical": true},":hearts:":{"unicode":["2665-fe0f","2665"],"fname":"2665","uc":"2665","isCanonical": true},":diamonds:":{"unicode":["2666-fe0f","2666"],"fname":"2666","uc":"2666","isCanonical": true},":hotsprings:":{"unicode":["2668-fe0f","2668"],"fname":"2668","uc":"2668","isCanonical": true},":recycle:":{"unicode":["267b-fe0f","267b"],"fname":"267b","uc":"267b","isCanonical": true},":wheelchair:":{"unicode":["267f-fe0f","267f"],"fname":"267f","uc":"267f","isCanonical": true},":anchor:":{"unicode":["2693-fe0f","2693"],"fname":"2693","uc":"2693","isCanonical": true},":warning:":{"unicode":["26a0-fe0f","26a0"],"fname":"26a0","uc":"26a0","isCanonical": true},":zap:":{"unicode":["26a1-fe0f","26a1"],"fname":"26a1","uc":"26a1","isCanonical": true},":white_circle:":{"unicode":["26aa-fe0f","26aa"],"fname":"26aa","uc":"26aa","isCanonical": true},":black_circle:":{"unicode":["26ab-fe0f","26ab"],"fname":"26ab","uc":"26ab","isCanonical": true},":soccer:":{"unicode":["26bd-fe0f","26bd"],"fname":"26bd","uc":"26bd","isCanonical": true},":baseball:":{"unicode":["26be-fe0f","26be"],"fname":"26be","uc":"26be","isCanonical": true},":snowman:":{"unicode":["26c4-fe0f","26c4"],"fname":"26c4","uc":"26c4","isCanonical": true},":partly_sunny:":{"unicode":["26c5-fe0f","26c5"],"fname":"26c5","uc":"26c5","isCanonical": true},":no_entry:":{"unicode":["26d4-fe0f","26d4"],"fname":"26d4","uc":"26d4","isCanonical": true},":church:":{"unicode":["26ea-fe0f","26ea"],"fname":"26ea","uc":"26ea","isCanonical": true},":fountain:":{"unicode":["26f2-fe0f","26f2"],"fname":"26f2","uc":"26f2","isCanonical": true},":golf:":{"unicode":["26f3-fe0f","26f3"],"fname":"26f3","uc":"26f3","isCanonical": true},":sailboat:":{"unicode":["26f5-fe0f","26f5"],"fname":"26f5","uc":"26f5","isCanonical": true},":tent:":{"unicode":["26fa-fe0f","26fa"],"fname":"26fa","uc":"26fa","isCanonical": true},":fuelpump:":{"unicode":["26fd-fe0f","26fd"],"fname":"26fd","uc":"26fd","isCanonical": true},":scissors:":{"unicode":["2702-fe0f","2702"],"fname":"2702","uc":"2702","isCanonical": true},":airplane:":{"unicode":["2708-fe0f","2708"],"fname":"2708","uc":"2708","isCanonical": true},":envelope:":{"unicode":["2709-fe0f","2709"],"fname":"2709","uc":"2709","isCanonical": true},":v:":{"unicode":["270c-fe0f","270c"],"fname":"270c","uc":"270c","isCanonical": true},":pencil2:":{"unicode":["270f-fe0f","270f"],"fname":"270f","uc":"270f","isCanonical": true},":black_nib:":{"unicode":["2712-fe0f","2712"],"fname":"2712","uc":"2712","isCanonical": true},":heavy_check_mark:":{"unicode":["2714-fe0f","2714"],"fname":"2714","uc":"2714","isCanonical": true},":heavy_multiplication_x:":{"unicode":["2716-fe0f","2716"],"fname":"2716","uc":"2716","isCanonical": true},":eight_spoked_asterisk:":{"unicode":["2733-fe0f","2733"],"fname":"2733","uc":"2733","isCanonical": true},":eight_pointed_black_star:":{"unicode":["2734-fe0f","2734"],"fname":"2734","uc":"2734","isCanonical": true},":snowflake:":{"unicode":["2744-fe0f","2744"],"fname":"2744","uc":"2744","isCanonical": true},":sparkle:":{"unicode":["2747-fe0f","2747"],"fname":"2747","uc":"2747","isCanonical": true},":exclamation:":{"unicode":["2757-fe0f","2757"],"fname":"2757","uc":"2757","isCanonical": true},":heart:":{"unicode":["2764-fe0f","2764"],"fname":"2764","uc":"2764","isCanonical": true},":arrow_right:":{"unicode":["27a1-fe0f","27a1"],"fname":"27a1","uc":"27a1","isCanonical": true},":arrow_heading_up:":{"unicode":["2934-fe0f","2934"],"fname":"2934","uc":"2934","isCanonical": true},":arrow_heading_down:":{"unicode":["2935-fe0f","2935"],"fname":"2935","uc":"2935","isCanonical": true},":arrow_left:":{"unicode":["2b05-fe0f","2b05"],"fname":"2b05","uc":"2b05","isCanonical": true},":arrow_up:":{"unicode":["2b06-fe0f","2b06"],"fname":"2b06","uc":"2b06","isCanonical": true},":arrow_down:":{"unicode":["2b07-fe0f","2b07"],"fname":"2b07","uc":"2b07","isCanonical": true},":black_large_square:":{"unicode":["2b1b-fe0f","2b1b"],"fname":"2b1b","uc":"2b1b","isCanonical": true},":white_large_square:":{"unicode":["2b1c-fe0f","2b1c"],"fname":"2b1c","uc":"2b1c","isCanonical": true},":star:":{"unicode":["2b50-fe0f","2b50"],"fname":"2b50","uc":"2b50","isCanonical": true},":o:":{"unicode":["2b55-fe0f","2b55"],"fname":"2b55","uc":"2b55","isCanonical": true},":wavy_dash:":{"unicode":["3030-fe0f","3030"],"fname":"3030","uc":"3030","isCanonical": true},":part_alternation_mark:":{"unicode":["303d-fe0f","303d"],"fname":"303d","uc":"303d","isCanonical": true},":congratulations:":{"unicode":["3297-fe0f","3297"],"fname":"3297","uc":"3297","isCanonical": true},":secret:":{"unicode":["3299-fe0f","3299"],"fname":"3299","uc":"3299","isCanonical": true},":cross:":{"unicode":["271d-fe0f","271d"],"fname":"271d","uc":"271d","isCanonical": true},":latin_cross:":{"unicode":["271d-fe0f","271d"],"fname":"271d","uc":"271d","isCanonical": false},":keyboard:":{"unicode":["2328-fe0f","2328"],"fname":"2328","uc":"2328","isCanonical": true},":writing_hand:":{"unicode":["270d-fe0f","270d"],"fname":"270d","uc":"270d","isCanonical": true},":eject:":{"unicode":["23cf-fe0f","23cf"],"fname":"23cf","uc":"23cf","isCanonical": true},":eject_symbol:":{"unicode":["23cf-fe0f","23cf"],"fname":"23cf","uc":"23cf","isCanonical": false},":track_next:":{"unicode":["23ed-fe0f","23ed"],"fname":"23ed","uc":"23ed","isCanonical": true},":next_track:":{"unicode":["23ed-fe0f","23ed"],"fname":"23ed","uc":"23ed","isCanonical": false},":track_previous:":{"unicode":["23ee-fe0f","23ee"],"fname":"23ee","uc":"23ee","isCanonical": true},":previous_track:":{"unicode":["23ee-fe0f","23ee"],"fname":"23ee","uc":"23ee","isCanonical": false},":play_pause:":{"unicode":["23ef-fe0f","23ef"],"fname":"23ef","uc":"23ef","isCanonical": true},":stopwatch:":{"unicode":["23f1-fe0f","23f1"],"fname":"23f1","uc":"23f1","isCanonical": true},":timer:":{"unicode":["23f2-fe0f","23f2"],"fname":"23f2","uc":"23f2","isCanonical": true},":timer_clock:":{"unicode":["23f2-fe0f","23f2"],"fname":"23f2","uc":"23f2","isCanonical": false},":pause_button:":{"unicode":["23f8-fe0f","23f8"],"fname":"23f8","uc":"23f8","isCanonical": true},":double_vertical_bar:":{"unicode":["23f8-fe0f","23f8"],"fname":"23f8","uc":"23f8","isCanonical": false},":stop_button:":{"unicode":["23f9-fe0f","23f9"],"fname":"23f9","uc":"23f9","isCanonical": true},":record_button:":{"unicode":["23fa-fe0f","23fa"],"fname":"23fa","uc":"23fa","isCanonical": true},":umbrella2:":{"unicode":["2602-fe0f","2602"],"fname":"2602","uc":"2602","isCanonical": true},":snowman2:":{"unicode":["2603-fe0f","2603"],"fname":"2603","uc":"2603","isCanonical": true},":comet:":{"unicode":["2604-fe0f","2604"],"fname":"2604","uc":"2604","isCanonical": true},":shamrock:":{"unicode":["2618-fe0f","2618"],"fname":"2618","uc":"2618","isCanonical": true},":skull_crossbones:":{"unicode":["2620-fe0f","2620"],"fname":"2620","uc":"2620","isCanonical": true},":skull_and_crossbones:":{"unicode":["2620-fe0f","2620"],"fname":"2620","uc":"2620","isCanonical": false},":radioactive:":{"unicode":["2622-fe0f","2622"],"fname":"2622","uc":"2622","isCanonical": true},":radioactive_sign:":{"unicode":["2622-fe0f","2622"],"fname":"2622","uc":"2622","isCanonical": false},":biohazard:":{"unicode":["2623-fe0f","2623"],"fname":"2623","uc":"2623","isCanonical": true},":biohazard_sign:":{"unicode":["2623-fe0f","2623"],"fname":"2623","uc":"2623","isCanonical": false},":orthodox_cross:":{"unicode":["2626-fe0f","2626"],"fname":"2626","uc":"2626","isCanonical": true},":star_and_crescent:":{"unicode":["262a-fe0f","262a"],"fname":"262a","uc":"262a","isCanonical": true},":peace:":{"unicode":["262e-fe0f","262e"],"fname":"262e","uc":"262e","isCanonical": true},":peace_symbol:":{"unicode":["262e-fe0f","262e"],"fname":"262e","uc":"262e","isCanonical": false},":yin_yang:":{"unicode":["262f-fe0f","262f"],"fname":"262f","uc":"262f","isCanonical": true},":wheel_of_dharma:":{"unicode":["2638-fe0f","2638"],"fname":"2638","uc":"2638","isCanonical": true},":frowning2:":{"unicode":["2639-fe0f","2639"],"fname":"2639","uc":"2639","isCanonical": true},":white_frowning_face:":{"unicode":["2639-fe0f","2639"],"fname":"2639","uc":"2639","isCanonical": false},":hammer_pick:":{"unicode":["2692-fe0f","2692"],"fname":"2692","uc":"2692","isCanonical": true},":hammer_and_pick:":{"unicode":["2692-fe0f","2692"],"fname":"2692","uc":"2692","isCanonical": false},":crossed_swords:":{"unicode":["2694-fe0f","2694"],"fname":"2694","uc":"2694","isCanonical": true},":scales:":{"unicode":["2696-fe0f","2696"],"fname":"2696","uc":"2696","isCanonical": true},":alembic:":{"unicode":["2697-fe0f","2697"],"fname":"2697","uc":"2697","isCanonical": true},":gear:":{"unicode":["2699-fe0f","2699"],"fname":"2699","uc":"2699","isCanonical": true},":atom:":{"unicode":["269b-fe0f","269b"],"fname":"269b","uc":"269b","isCanonical": true},":atom_symbol:":{"unicode":["269b-fe0f","269b"],"fname":"269b","uc":"269b","isCanonical": false},":fleur-de-lis:":{"unicode":["269c-fe0f","269c"],"fname":"269c","uc":"269c","isCanonical": true},":coffin:":{"unicode":["26b0-fe0f","26b0"],"fname":"26b0","uc":"26b0","isCanonical": true},":urn:":{"unicode":["26b1-fe0f","26b1"],"fname":"26b1","uc":"26b1","isCanonical": true},":funeral_urn:":{"unicode":["26b1-fe0f","26b1"],"fname":"26b1","uc":"26b1","isCanonical": false},":thunder_cloud_rain:":{"unicode":["26c8-fe0f","26c8"],"fname":"26c8","uc":"26c8","isCanonical": true},":thunder_cloud_and_rain:":{"unicode":["26c8-fe0f","26c8"],"fname":"26c8","uc":"26c8","isCanonical": false},":pick:":{"unicode":["26cf-fe0f","26cf"],"fname":"26cf","uc":"26cf","isCanonical": true},":helmet_with_cross:":{"unicode":["26d1-fe0f","26d1"],"fname":"26d1","uc":"26d1","isCanonical": true},":helmet_with_white_cross:":{"unicode":["26d1-fe0f","26d1"],"fname":"26d1","uc":"26d1","isCanonical": false},":chains:":{"unicode":["26d3-fe0f","26d3"],"fname":"26d3","uc":"26d3","isCanonical": true},":shinto_shrine:":{"unicode":["26e9-fe0f","26e9"],"fname":"26e9","uc":"26e9","isCanonical": true},":mountain:":{"unicode":["26f0-fe0f","26f0"],"fname":"26f0","uc":"26f0","isCanonical": true},":beach_umbrella:":{"unicode":["26f1-fe0f","26f1"],"fname":"26f1","uc":"26f1","isCanonical": true},":umbrella_on_ground:":{"unicode":["26f1-fe0f","26f1"],"fname":"26f1","uc":"26f1","isCanonical": false},":ferry:":{"unicode":["26f4-fe0f","26f4"],"fname":"26f4","uc":"26f4","isCanonical": true},":skier:":{"unicode":["26f7-fe0f","26f7"],"fname":"26f7","uc":"26f7","isCanonical": true},":ice_skate:":{"unicode":["26f8-fe0f","26f8"],"fname":"26f8","uc":"26f8","isCanonical": true},":basketball_player:":{"unicode":["26f9-fe0f","26f9"],"fname":"26f9","uc":"26f9","isCanonical": true},":person_with_ball:":{"unicode":["26f9-fe0f","26f9"],"fname":"26f9","uc":"26f9","isCanonical": false},":star_of_david:":{"unicode":["2721-fe0f","2721"],"fname":"2721","uc":"2721","isCanonical": true},":heart_exclamation:":{"unicode":["2763-fe0f","2763"],"fname":"2763","uc":"2763","isCanonical": true},":heavy_heart_exclamation_mark_ornament:":{"unicode":["2763-fe0f","2763"],"fname":"2763","uc":"2763","isCanonical": false},":third_place:":{"unicode":["1f949"],"fname":"1f949","uc":"1f949","isCanonical": true},":third_place_medal:":{"unicode":["1f949"],"fname":"1f949","uc":"1f949","isCanonical": false},":second_place:":{"unicode":["1f948"],"fname":"1f948","uc":"1f948","isCanonical": true},":second_place_medal:":{"unicode":["1f948"],"fname":"1f948","uc":"1f948","isCanonical": false},":first_place:":{"unicode":["1f947"],"fname":"1f947","uc":"1f947","isCanonical": true},":first_place_medal:":{"unicode":["1f947"],"fname":"1f947","uc":"1f947","isCanonical": false},":fencer:":{"unicode":["1f93a"],"fname":"1f93a","uc":"1f93a","isCanonical": true},":fencing:":{"unicode":["1f93a"],"fname":"1f93a","uc":"1f93a","isCanonical": false},":goal:":{"unicode":["1f945"],"fname":"1f945","uc":"1f945","isCanonical": true},":goal_net:":{"unicode":["1f945"],"fname":"1f945","uc":"1f945","isCanonical": false},":handball:":{"unicode":["1f93e"],"fname":"1f93e","uc":"1f93e","isCanonical": true},":regional_indicator_z:":{"unicode":["1f1ff"],"fname":"1f1ff","uc":"1f1ff","isCanonical": true},":water_polo:":{"unicode":["1f93d"],"fname":"1f93d","uc":"1f93d","isCanonical": true},":martial_arts_uniform:":{"unicode":["1f94b"],"fname":"1f94b","uc":"1f94b","isCanonical": true},":karate_uniform:":{"unicode":["1f94b"],"fname":"1f94b","uc":"1f94b","isCanonical": false},":boxing_glove:":{"unicode":["1f94a"],"fname":"1f94a","uc":"1f94a","isCanonical": true},":boxing_gloves:":{"unicode":["1f94a"],"fname":"1f94a","uc":"1f94a","isCanonical": false},":wrestlers:":{"unicode":["1f93c"],"fname":"1f93c","uc":"1f93c","isCanonical": true},":wrestling:":{"unicode":["1f93c"],"fname":"1f93c","uc":"1f93c","isCanonical": false},":juggling:":{"unicode":["1f939"],"fname":"1f939","uc":"1f939","isCanonical": true},":juggler:":{"unicode":["1f939"],"fname":"1f939","uc":"1f939","isCanonical": false},":cartwheel:":{"unicode":["1f938"],"fname":"1f938","uc":"1f938","isCanonical": true},":person_doing_cartwheel:":{"unicode":["1f938"],"fname":"1f938","uc":"1f938","isCanonical": false},":canoe:":{"unicode":["1f6f6"],"fname":"1f6f6","uc":"1f6f6","isCanonical": true},":kayak:":{"unicode":["1f6f6"],"fname":"1f6f6","uc":"1f6f6","isCanonical": false},":motor_scooter:":{"unicode":["1f6f5"],"fname":"1f6f5","uc":"1f6f5","isCanonical": true},":motorbike:":{"unicode":["1f6f5"],"fname":"1f6f5","uc":"1f6f5","isCanonical": false},":scooter:":{"unicode":["1f6f4"],"fname":"1f6f4","uc":"1f6f4","isCanonical": true},":shopping_cart:":{"unicode":["1f6d2"],"fname":"1f6d2","uc":"1f6d2","isCanonical": true},":shopping_trolley:":{"unicode":["1f6d2"],"fname":"1f6d2","uc":"1f6d2","isCanonical": false},":black_joker:":{"unicode":["1f0cf"],"fname":"1f0cf","uc":"1f0cf","isCanonical": true},":a:":{"unicode":["1f170"],"fname":"1f170","uc":"1f170","isCanonical": true},":b:":{"unicode":["1f171"],"fname":"1f171","uc":"1f171","isCanonical": true},":o2:":{"unicode":["1f17e"],"fname":"1f17e","uc":"1f17e","isCanonical": true},":octagonal_sign:":{"unicode":["1f6d1"],"fname":"1f6d1","uc":"1f6d1","isCanonical": true},":stop_sign:":{"unicode":["1f6d1"],"fname":"1f6d1","uc":"1f6d1","isCanonical": false},":ab:":{"unicode":["1f18e"],"fname":"1f18e","uc":"1f18e","isCanonical": true},":cl:":{"unicode":["1f191"],"fname":"1f191","uc":"1f191","isCanonical": true},":regional_indicator_y:":{"unicode":["1f1fe"],"fname":"1f1fe","uc":"1f1fe","isCanonical": true},":cool:":{"unicode":["1f192"],"fname":"1f192","uc":"1f192","isCanonical": true},":free:":{"unicode":["1f193"],"fname":"1f193","uc":"1f193","isCanonical": true},":id:":{"unicode":["1f194"],"fname":"1f194","uc":"1f194","isCanonical": true},":new:":{"unicode":["1f195"],"fname":"1f195","uc":"1f195","isCanonical": true},":ng:":{"unicode":["1f196"],"fname":"1f196","uc":"1f196","isCanonical": true},":ok:":{"unicode":["1f197"],"fname":"1f197","uc":"1f197","isCanonical": true},":sos:":{"unicode":["1f198"],"fname":"1f198","uc":"1f198","isCanonical": true},":spoon:":{"unicode":["1f944"],"fname":"1f944","uc":"1f944","isCanonical": true},":up:":{"unicode":["1f199"],"fname":"1f199","uc":"1f199","isCanonical": true},":vs:":{"unicode":["1f19a"],"fname":"1f19a","uc":"1f19a","isCanonical": true},":champagne_glass:":{"unicode":["1f942"],"fname":"1f942","uc":"1f942","isCanonical": true},":clinking_glass:":{"unicode":["1f942"],"fname":"1f942","uc":"1f942","isCanonical": false},":tumbler_glass:":{"unicode":["1f943"],"fname":"1f943","uc":"1f943","isCanonical": true},":whisky:":{"unicode":["1f943"],"fname":"1f943","uc":"1f943","isCanonical": false},":koko:":{"unicode":["1f201"],"fname":"1f201","uc":"1f201","isCanonical": true},":stuffed_flatbread:":{"unicode":["1f959"],"fname":"1f959","uc":"1f959","isCanonical": true},":stuffed_pita:":{"unicode":["1f959"],"fname":"1f959","uc":"1f959","isCanonical": false},":u7981:":{"unicode":["1f232"],"fname":"1f232","uc":"1f232","isCanonical": true},":u7a7a:":{"unicode":["1f233"],"fname":"1f233","uc":"1f233","isCanonical": true},":u5408:":{"unicode":["1f234"],"fname":"1f234","uc":"1f234","isCanonical": true},":u6e80:":{"unicode":["1f235"],"fname":"1f235","uc":"1f235","isCanonical": true},":u6709:":{"unicode":["1f236"],"fname":"1f236","uc":"1f236","isCanonical": true},":shallow_pan_of_food:":{"unicode":["1f958"],"fname":"1f958","uc":"1f958","isCanonical": true},":paella:":{"unicode":["1f958"],"fname":"1f958","uc":"1f958","isCanonical": false},":u7533:":{"unicode":["1f238"],"fname":"1f238","uc":"1f238","isCanonical": true},":u5272:":{"unicode":["1f239"],"fname":"1f239","uc":"1f239","isCanonical": true},":salad:":{"unicode":["1f957"],"fname":"1f957","uc":"1f957","isCanonical": true},":green_salad:":{"unicode":["1f957"],"fname":"1f957","uc":"1f957","isCanonical": false},":u55b6:":{"unicode":["1f23a"],"fname":"1f23a","uc":"1f23a","isCanonical": true},":ideograph_advantage:":{"unicode":["1f250"],"fname":"1f250","uc":"1f250","isCanonical": true},":accept:":{"unicode":["1f251"],"fname":"1f251","uc":"1f251","isCanonical": true},":cyclone:":{"unicode":["1f300"],"fname":"1f300","uc":"1f300","isCanonical": true},":french_bread:":{"unicode":["1f956"],"fname":"1f956","uc":"1f956","isCanonical": true},":baguette_bread:":{"unicode":["1f956"],"fname":"1f956","uc":"1f956","isCanonical": false},":foggy:":{"unicode":["1f301"],"fname":"1f301","uc":"1f301","isCanonical": true},":closed_umbrella:":{"unicode":["1f302"],"fname":"1f302","uc":"1f302","isCanonical": true},":night_with_stars:":{"unicode":["1f303"],"fname":"1f303","uc":"1f303","isCanonical": true},":sunrise_over_mountains:":{"unicode":["1f304"],"fname":"1f304","uc":"1f304","isCanonical": true},":sunrise:":{"unicode":["1f305"],"fname":"1f305","uc":"1f305","isCanonical": true},":city_dusk:":{"unicode":["1f306"],"fname":"1f306","uc":"1f306","isCanonical": true},":carrot:":{"unicode":["1f955"],"fname":"1f955","uc":"1f955","isCanonical": true},":city_sunset:":{"unicode":["1f307"],"fname":"1f307","uc":"1f307","isCanonical": true},":city_sunrise:":{"unicode":["1f307"],"fname":"1f307","uc":"1f307","isCanonical": false},":rainbow:":{"unicode":["1f308"],"fname":"1f308","uc":"1f308","isCanonical": true},":potato:":{"unicode":["1f954"],"fname":"1f954","uc":"1f954","isCanonical": true},":bridge_at_night:":{"unicode":["1f309"],"fname":"1f309","uc":"1f309","isCanonical": true},":ocean:":{"unicode":["1f30a"],"fname":"1f30a","uc":"1f30a","isCanonical": true},":volcano:":{"unicode":["1f30b"],"fname":"1f30b","uc":"1f30b","isCanonical": true},":milky_way:":{"unicode":["1f30c"],"fname":"1f30c","uc":"1f30c","isCanonical": true},":earth_asia:":{"unicode":["1f30f"],"fname":"1f30f","uc":"1f30f","isCanonical": true},":new_moon:":{"unicode":["1f311"],"fname":"1f311","uc":"1f311","isCanonical": true},":bacon:":{"unicode":["1f953"],"fname":"1f953","uc":"1f953","isCanonical": true},":first_quarter_moon:":{"unicode":["1f313"],"fname":"1f313","uc":"1f313","isCanonical": true},":waxing_gibbous_moon:":{"unicode":["1f314"],"fname":"1f314","uc":"1f314","isCanonical": true},":full_moon:":{"unicode":["1f315"],"fname":"1f315","uc":"1f315","isCanonical": true},":crescent_moon:":{"unicode":["1f319"],"fname":"1f319","uc":"1f319","isCanonical": true},":first_quarter_moon_with_face:":{"unicode":["1f31b"],"fname":"1f31b","uc":"1f31b","isCanonical": true},":star2:":{"unicode":["1f31f"],"fname":"1f31f","uc":"1f31f","isCanonical": true},":cucumber:":{"unicode":["1f952"],"fname":"1f952","uc":"1f952","isCanonical": true},":stars:":{"unicode":["1f320"],"fname":"1f320","uc":"1f320","isCanonical": true},":chestnut:":{"unicode":["1f330"],"fname":"1f330","uc":"1f330","isCanonical": true},":avocado:":{"unicode":["1f951"],"fname":"1f951","uc":"1f951","isCanonical": true},":seedling:":{"unicode":["1f331"],"fname":"1f331","uc":"1f331","isCanonical": true},":palm_tree:":{"unicode":["1f334"],"fname":"1f334","uc":"1f334","isCanonical": true},":cactus:":{"unicode":["1f335"],"fname":"1f335","uc":"1f335","isCanonical": true},":tulip:":{"unicode":["1f337"],"fname":"1f337","uc":"1f337","isCanonical": true},":cherry_blossom:":{"unicode":["1f338"],"fname":"1f338","uc":"1f338","isCanonical": true},":rose:":{"unicode":["1f339"],"fname":"1f339","uc":"1f339","isCanonical": true},":hibiscus:":{"unicode":["1f33a"],"fname":"1f33a","uc":"1f33a","isCanonical": true},":sunflower:":{"unicode":["1f33b"],"fname":"1f33b","uc":"1f33b","isCanonical": true},":blossom:":{"unicode":["1f33c"],"fname":"1f33c","uc":"1f33c","isCanonical": true},":corn:":{"unicode":["1f33d"],"fname":"1f33d","uc":"1f33d","isCanonical": true},":croissant:":{"unicode":["1f950"],"fname":"1f950","uc":"1f950","isCanonical": true},":ear_of_rice:":{"unicode":["1f33e"],"fname":"1f33e","uc":"1f33e","isCanonical": true},":herb:":{"unicode":["1f33f"],"fname":"1f33f","uc":"1f33f","isCanonical": true},":four_leaf_clover:":{"unicode":["1f340"],"fname":"1f340","uc":"1f340","isCanonical": true},":maple_leaf:":{"unicode":["1f341"],"fname":"1f341","uc":"1f341","isCanonical": true},":fallen_leaf:":{"unicode":["1f342"],"fname":"1f342","uc":"1f342","isCanonical": true},":leaves:":{"unicode":["1f343"],"fname":"1f343","uc":"1f343","isCanonical": true},":mushroom:":{"unicode":["1f344"],"fname":"1f344","uc":"1f344","isCanonical": true},":tomato:":{"unicode":["1f345"],"fname":"1f345","uc":"1f345","isCanonical": true},":eggplant:":{"unicode":["1f346"],"fname":"1f346","uc":"1f346","isCanonical": true},":grapes:":{"unicode":["1f347"],"fname":"1f347","uc":"1f347","isCanonical": true},":melon:":{"unicode":["1f348"],"fname":"1f348","uc":"1f348","isCanonical": true},":watermelon:":{"unicode":["1f349"],"fname":"1f349","uc":"1f349","isCanonical": true},":tangerine:":{"unicode":["1f34a"],"fname":"1f34a","uc":"1f34a","isCanonical": true},":wilted_rose:":{"unicode":["1f940"],"fname":"1f940","uc":"1f940","isCanonical": true},":wilted_flower:":{"unicode":["1f940"],"fname":"1f940","uc":"1f940","isCanonical": false},":banana:":{"unicode":["1f34c"],"fname":"1f34c","uc":"1f34c","isCanonical": true},":pineapple:":{"unicode":["1f34d"],"fname":"1f34d","uc":"1f34d","isCanonical": true},":apple:":{"unicode":["1f34e"],"fname":"1f34e","uc":"1f34e","isCanonical": true},":green_apple:":{"unicode":["1f34f"],"fname":"1f34f","uc":"1f34f","isCanonical": true},":peach:":{"unicode":["1f351"],"fname":"1f351","uc":"1f351","isCanonical": true},":cherries:":{"unicode":["1f352"],"fname":"1f352","uc":"1f352","isCanonical": true},":strawberry:":{"unicode":["1f353"],"fname":"1f353","uc":"1f353","isCanonical": true},":rhino:":{"unicode":["1f98f"],"fname":"1f98f","uc":"1f98f","isCanonical": true},":rhinoceros:":{"unicode":["1f98f"],"fname":"1f98f","uc":"1f98f","isCanonical": false},":hamburger:":{"unicode":["1f354"],"fname":"1f354","uc":"1f354","isCanonical": true},":pizza:":{"unicode":["1f355"],"fname":"1f355","uc":"1f355","isCanonical": true},":meat_on_bone:":{"unicode":["1f356"],"fname":"1f356","uc":"1f356","isCanonical": true},":lizard:":{"unicode":["1f98e"],"fname":"1f98e","uc":"1f98e","isCanonical": true},":poultry_leg:":{"unicode":["1f357"],"fname":"1f357","uc":"1f357","isCanonical": true},":rice_cracker:":{"unicode":["1f358"],"fname":"1f358","uc":"1f358","isCanonical": true},":rice_ball:":{"unicode":["1f359"],"fname":"1f359","uc":"1f359","isCanonical": true},":gorilla:":{"unicode":["1f98d"],"fname":"1f98d","uc":"1f98d","isCanonical": true},":rice:":{"unicode":["1f35a"],"fname":"1f35a","uc":"1f35a","isCanonical": true},":curry:":{"unicode":["1f35b"],"fname":"1f35b","uc":"1f35b","isCanonical": true},":deer:":{"unicode":["1f98c"],"fname":"1f98c","uc":"1f98c","isCanonical": true},":ramen:":{"unicode":["1f35c"],"fname":"1f35c","uc":"1f35c","isCanonical": true},":spaghetti:":{"unicode":["1f35d"],"fname":"1f35d","uc":"1f35d","isCanonical": true},":bread:":{"unicode":["1f35e"],"fname":"1f35e","uc":"1f35e","isCanonical": true},":fries:":{"unicode":["1f35f"],"fname":"1f35f","uc":"1f35f","isCanonical": true},":butterfly:":{"unicode":["1f98b"],"fname":"1f98b","uc":"1f98b","isCanonical": true},":sweet_potato:":{"unicode":["1f360"],"fname":"1f360","uc":"1f360","isCanonical": true},":dango:":{"unicode":["1f361"],"fname":"1f361","uc":"1f361","isCanonical": true},":fox:":{"unicode":["1f98a"],"fname":"1f98a","uc":"1f98a","isCanonical": true},":fox_face:":{"unicode":["1f98a"],"fname":"1f98a","uc":"1f98a","isCanonical": false},":oden:":{"unicode":["1f362"],"fname":"1f362","uc":"1f362","isCanonical": true},":sushi:":{"unicode":["1f363"],"fname":"1f363","uc":"1f363","isCanonical": true},":owl:":{"unicode":["1f989"],"fname":"1f989","uc":"1f989","isCanonical": true},":fried_shrimp:":{"unicode":["1f364"],"fname":"1f364","uc":"1f364","isCanonical": true},":fish_cake:":{"unicode":["1f365"],"fname":"1f365","uc":"1f365","isCanonical": true},":shark:":{"unicode":["1f988"],"fname":"1f988","uc":"1f988","isCanonical": true},":icecream:":{"unicode":["1f366"],"fname":"1f366","uc":"1f366","isCanonical": true},":bat:":{"unicode":["1f987"],"fname":"1f987","uc":"1f987","isCanonical": true},":shaved_ice:":{"unicode":["1f367"],"fname":"1f367","uc":"1f367","isCanonical": true},":regional_indicator_x:":{"unicode":["1f1fd"],"fname":"1f1fd","uc":"1f1fd","isCanonical": true},":ice_cream:":{"unicode":["1f368"],"fname":"1f368","uc":"1f368","isCanonical": true},":duck:":{"unicode":["1f986"],"fname":"1f986","uc":"1f986","isCanonical": true},":doughnut:":{"unicode":["1f369"],"fname":"1f369","uc":"1f369","isCanonical": true},":eagle:":{"unicode":["1f985"],"fname":"1f985","uc":"1f985","isCanonical": true},":cookie:":{"unicode":["1f36a"],"fname":"1f36a","uc":"1f36a","isCanonical": true},":black_heart:":{"unicode":["1f5a4"],"fname":"1f5a4","uc":"1f5a4","isCanonical": true},":chocolate_bar:":{"unicode":["1f36b"],"fname":"1f36b","uc":"1f36b","isCanonical": true},":candy:":{"unicode":["1f36c"],"fname":"1f36c","uc":"1f36c","isCanonical": true},":lollipop:":{"unicode":["1f36d"],"fname":"1f36d","uc":"1f36d","isCanonical": true},":custard:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": true},":pudding:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": false},":flan:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": false},":honey_pot:":{"unicode":["1f36f"],"fname":"1f36f","uc":"1f36f","isCanonical": true},":fingers_crossed:":{"unicode":["1f91e"],"fname":"1f91e","uc":"1f91e","isCanonical": true},":hand_with_index_and_middle_finger_crossed:":{"unicode":["1f91e"],"fname":"1f91e","uc":"1f91e","isCanonical": false},":cake:":{"unicode":["1f370"],"fname":"1f370","uc":"1f370","isCanonical": true},":bento:":{"unicode":["1f371"],"fname":"1f371","uc":"1f371","isCanonical": true},":stew:":{"unicode":["1f372"],"fname":"1f372","uc":"1f372","isCanonical": true},":handshake:":{"unicode":["1f91d"],"fname":"1f91d","uc":"1f91d","isCanonical": true},":shaking_hands:":{"unicode":["1f91d"],"fname":"1f91d","uc":"1f91d","isCanonical": false},":cooking:":{"unicode":["1f373"],"fname":"1f373","uc":"1f373","isCanonical": true},":fork_and_knife:":{"unicode":["1f374"],"fname":"1f374","uc":"1f374","isCanonical": true},":tea:":{"unicode":["1f375"],"fname":"1f375","uc":"1f375","isCanonical": true},":sake:":{"unicode":["1f376"],"fname":"1f376","uc":"1f376","isCanonical": true},":wine_glass:":{"unicode":["1f377"],"fname":"1f377","uc":"1f377","isCanonical": true},":cocktail:":{"unicode":["1f378"],"fname":"1f378","uc":"1f378","isCanonical": true},":tropical_drink:":{"unicode":["1f379"],"fname":"1f379","uc":"1f379","isCanonical": true},":beer:":{"unicode":["1f37a"],"fname":"1f37a","uc":"1f37a","isCanonical": true},":beers:":{"unicode":["1f37b"],"fname":"1f37b","uc":"1f37b","isCanonical": true},":ribbon:":{"unicode":["1f380"],"fname":"1f380","uc":"1f380","isCanonical": true},":gift:":{"unicode":["1f381"],"fname":"1f381","uc":"1f381","isCanonical": true},":birthday:":{"unicode":["1f382"],"fname":"1f382","uc":"1f382","isCanonical": true},":jack_o_lantern:":{"unicode":["1f383"],"fname":"1f383","uc":"1f383","isCanonical": true},":left_facing_fist:":{"unicode":["1f91b"],"fname":"1f91b","uc":"1f91b","isCanonical": true},":left_fist:":{"unicode":["1f91b"],"fname":"1f91b","uc":"1f91b","isCanonical": false},":right_facing_fist:":{"unicode":["1f91c"],"fname":"1f91c","uc":"1f91c","isCanonical": true},":right_fist:":{"unicode":["1f91c"],"fname":"1f91c","uc":"1f91c","isCanonical": false},":christmas_tree:":{"unicode":["1f384"],"fname":"1f384","uc":"1f384","isCanonical": true},":santa:":{"unicode":["1f385"],"fname":"1f385","uc":"1f385","isCanonical": true},":fireworks:":{"unicode":["1f386"],"fname":"1f386","uc":"1f386","isCanonical": true},":raised_back_of_hand:":{"unicode":["1f91a"],"fname":"1f91a","uc":"1f91a","isCanonical": true},":back_of_hand:":{"unicode":["1f91a"],"fname":"1f91a","uc":"1f91a","isCanonical": false},":sparkler:":{"unicode":["1f387"],"fname":"1f387","uc":"1f387","isCanonical": true},":balloon:":{"unicode":["1f388"],"fname":"1f388","uc":"1f388","isCanonical": true},":tada:":{"unicode":["1f389"],"fname":"1f389","uc":"1f389","isCanonical": true},":confetti_ball:":{"unicode":["1f38a"],"fname":"1f38a","uc":"1f38a","isCanonical": true},":tanabata_tree:":{"unicode":["1f38b"],"fname":"1f38b","uc":"1f38b","isCanonical": true},":crossed_flags:":{"unicode":["1f38c"],"fname":"1f38c","uc":"1f38c","isCanonical": true},":call_me:":{"unicode":["1f919"],"fname":"1f919","uc":"1f919","isCanonical": true},":call_me_hand:":{"unicode":["1f919"],"fname":"1f919","uc":"1f919","isCanonical": false},":bamboo:":{"unicode":["1f38d"],"fname":"1f38d","uc":"1f38d","isCanonical": true},":man_dancing:":{"unicode":["1f57a"],"fname":"1f57a","uc":"1f57a","isCanonical": true},":male_dancer:":{"unicode":["1f57a"],"fname":"1f57a","uc":"1f57a","isCanonical": false},":dolls:":{"unicode":["1f38e"],"fname":"1f38e","uc":"1f38e","isCanonical": true},":selfie:":{"unicode":["1f933"],"fname":"1f933","uc":"1f933","isCanonical": true},":flags:":{"unicode":["1f38f"],"fname":"1f38f","uc":"1f38f","isCanonical": true},":pregnant_woman:":{"unicode":["1f930"],"fname":"1f930","uc":"1f930","isCanonical": true},":expecting_woman:":{"unicode":["1f930"],"fname":"1f930","uc":"1f930","isCanonical": false},":wind_chime:":{"unicode":["1f390"],"fname":"1f390","uc":"1f390","isCanonical": true},":face_palm:":{"unicode":["1f926"],"fname":"1f926","uc":"1f926","isCanonical": true},":facepalm:":{"unicode":["1f926"],"fname":"1f926","uc":"1f926","isCanonical": false},":shrug:":{"unicode":["1f937"],"fname":"1f937","uc":"1f937","isCanonical": true},":rice_scene:":{"unicode":["1f391"],"fname":"1f391","uc":"1f391","isCanonical": true},":school_satchel:":{"unicode":["1f392"],"fname":"1f392","uc":"1f392","isCanonical": true},":mortar_board:":{"unicode":["1f393"],"fname":"1f393","uc":"1f393","isCanonical": true},":carousel_horse:":{"unicode":["1f3a0"],"fname":"1f3a0","uc":"1f3a0","isCanonical": true},":ferris_wheel:":{"unicode":["1f3a1"],"fname":"1f3a1","uc":"1f3a1","isCanonical": true},":roller_coaster:":{"unicode":["1f3a2"],"fname":"1f3a2","uc":"1f3a2","isCanonical": true},":fishing_pole_and_fish:":{"unicode":["1f3a3"],"fname":"1f3a3","uc":"1f3a3","isCanonical": true},":microphone:":{"unicode":["1f3a4"],"fname":"1f3a4","uc":"1f3a4","isCanonical": true},":movie_camera:":{"unicode":["1f3a5"],"fname":"1f3a5","uc":"1f3a5","isCanonical": true},":cinema:":{"unicode":["1f3a6"],"fname":"1f3a6","uc":"1f3a6","isCanonical": true},":headphones:":{"unicode":["1f3a7"],"fname":"1f3a7","uc":"1f3a7","isCanonical": true},":mrs_claus:":{"unicode":["1f936"],"fname":"1f936","uc":"1f936","isCanonical": true},":mother_christmas:":{"unicode":["1f936"],"fname":"1f936","uc":"1f936","isCanonical": false},":art:":{"unicode":["1f3a8"],"fname":"1f3a8","uc":"1f3a8","isCanonical": true},":man_in_tuxedo:":{"unicode":["1f935"],"fname":"1f935","uc":"1f935","isCanonical": true},":tophat:":{"unicode":["1f3a9"],"fname":"1f3a9","uc":"1f3a9","isCanonical": true},":circus_tent:":{"unicode":["1f3aa"],"fname":"1f3aa","uc":"1f3aa","isCanonical": true},":prince:":{"unicode":["1f934"],"fname":"1f934","uc":"1f934","isCanonical": true},":ticket:":{"unicode":["1f3ab"],"fname":"1f3ab","uc":"1f3ab","isCanonical": true},":clapper:":{"unicode":["1f3ac"],"fname":"1f3ac","uc":"1f3ac","isCanonical": true},":performing_arts:":{"unicode":["1f3ad"],"fname":"1f3ad","uc":"1f3ad","isCanonical": true},":sneezing_face:":{"unicode":["1f927"],"fname":"1f927","uc":"1f927","isCanonical": true},":sneeze:":{"unicode":["1f927"],"fname":"1f927","uc":"1f927","isCanonical": false},":video_game:":{"unicode":["1f3ae"],"fname":"1f3ae","uc":"1f3ae","isCanonical": true},":dart:":{"unicode":["1f3af"],"fname":"1f3af","uc":"1f3af","isCanonical": true},":slot_machine:":{"unicode":["1f3b0"],"fname":"1f3b0","uc":"1f3b0","isCanonical": true},":8ball:":{"unicode":["1f3b1"],"fname":"1f3b1","uc":"1f3b1","isCanonical": true},":game_die:":{"unicode":["1f3b2"],"fname":"1f3b2","uc":"1f3b2","isCanonical": true},":bowling:":{"unicode":["1f3b3"],"fname":"1f3b3","uc":"1f3b3","isCanonical": true},":flower_playing_cards:":{"unicode":["1f3b4"],"fname":"1f3b4","uc":"1f3b4","isCanonical": true},":lying_face:":{"unicode":["1f925"],"fname":"1f925","uc":"1f925","isCanonical": true},":liar:":{"unicode":["1f925"],"fname":"1f925","uc":"1f925","isCanonical": false},":musical_note:":{"unicode":["1f3b5"],"fname":"1f3b5","uc":"1f3b5","isCanonical": true},":notes:":{"unicode":["1f3b6"],"fname":"1f3b6","uc":"1f3b6","isCanonical": true},":saxophone:":{"unicode":["1f3b7"],"fname":"1f3b7","uc":"1f3b7","isCanonical": true},":drooling_face:":{"unicode":["1f924"],"fname":"1f924","uc":"1f924","isCanonical": true},":drool:":{"unicode":["1f924"],"fname":"1f924","uc":"1f924","isCanonical": false},":guitar:":{"unicode":["1f3b8"],"fname":"1f3b8","uc":"1f3b8","isCanonical": true},":musical_keyboard:":{"unicode":["1f3b9"],"fname":"1f3b9","uc":"1f3b9","isCanonical": true},":trumpet:":{"unicode":["1f3ba"],"fname":"1f3ba","uc":"1f3ba","isCanonical": true},":rofl:":{"unicode":["1f923"],"fname":"1f923","uc":"1f923","isCanonical": true},":rolling_on_the_floor_laughing:":{"unicode":["1f923"],"fname":"1f923","uc":"1f923","isCanonical": false},":violin:":{"unicode":["1f3bb"],"fname":"1f3bb","uc":"1f3bb","isCanonical": true},":musical_score:":{"unicode":["1f3bc"],"fname":"1f3bc","uc":"1f3bc","isCanonical": true},":running_shirt_with_sash:":{"unicode":["1f3bd"],"fname":"1f3bd","uc":"1f3bd","isCanonical": true},":nauseated_face:":{"unicode":["1f922"],"fname":"1f922","uc":"1f922","isCanonical": true},":sick:":{"unicode":["1f922"],"fname":"1f922","uc":"1f922","isCanonical": false},":tennis:":{"unicode":["1f3be"],"fname":"1f3be","uc":"1f3be","isCanonical": true},":ski:":{"unicode":["1f3bf"],"fname":"1f3bf","uc":"1f3bf","isCanonical": true},":basketball:":{"unicode":["1f3c0"],"fname":"1f3c0","uc":"1f3c0","isCanonical": true},":checkered_flag:":{"unicode":["1f3c1"],"fname":"1f3c1","uc":"1f3c1","isCanonical": true},":clown:":{"unicode":["1f921"],"fname":"1f921","uc":"1f921","isCanonical": true},":clown_face:":{"unicode":["1f921"],"fname":"1f921","uc":"1f921","isCanonical": false},":snowboarder:":{"unicode":["1f3c2"],"fname":"1f3c2","uc":"1f3c2","isCanonical": true},":runner:":{"unicode":["1f3c3"],"fname":"1f3c3","uc":"1f3c3","isCanonical": true},":surfer:":{"unicode":["1f3c4"],"fname":"1f3c4","uc":"1f3c4","isCanonical": true},":trophy:":{"unicode":["1f3c6"],"fname":"1f3c6","uc":"1f3c6","isCanonical": true},":football:":{"unicode":["1f3c8"],"fname":"1f3c8","uc":"1f3c8","isCanonical": true},":swimmer:":{"unicode":["1f3ca"],"fname":"1f3ca","uc":"1f3ca","isCanonical": true},":house:":{"unicode":["1f3e0"],"fname":"1f3e0","uc":"1f3e0","isCanonical": true},":house_with_garden:":{"unicode":["1f3e1"],"fname":"1f3e1","uc":"1f3e1","isCanonical": true},":office:":{"unicode":["1f3e2"],"fname":"1f3e2","uc":"1f3e2","isCanonical": true},":post_office:":{"unicode":["1f3e3"],"fname":"1f3e3","uc":"1f3e3","isCanonical": true},":hospital:":{"unicode":["1f3e5"],"fname":"1f3e5","uc":"1f3e5","isCanonical": true},":bank:":{"unicode":["1f3e6"],"fname":"1f3e6","uc":"1f3e6","isCanonical": true},":atm:":{"unicode":["1f3e7"],"fname":"1f3e7","uc":"1f3e7","isCanonical": true},":hotel:":{"unicode":["1f3e8"],"fname":"1f3e8","uc":"1f3e8","isCanonical": true},":love_hotel:":{"unicode":["1f3e9"],"fname":"1f3e9","uc":"1f3e9","isCanonical": true},":convenience_store:":{"unicode":["1f3ea"],"fname":"1f3ea","uc":"1f3ea","isCanonical": true},":school:":{"unicode":["1f3eb"],"fname":"1f3eb","uc":"1f3eb","isCanonical": true},":department_store:":{"unicode":["1f3ec"],"fname":"1f3ec","uc":"1f3ec","isCanonical": true},":cowboy:":{"unicode":["1f920"],"fname":"1f920","uc":"1f920","isCanonical": true},":face_with_cowboy_hat:":{"unicode":["1f920"],"fname":"1f920","uc":"1f920","isCanonical": false},":factory:":{"unicode":["1f3ed"],"fname":"1f3ed","uc":"1f3ed","isCanonical": true},":izakaya_lantern:":{"unicode":["1f3ee"],"fname":"1f3ee","uc":"1f3ee","isCanonical": true},":japanese_castle:":{"unicode":["1f3ef"],"fname":"1f3ef","uc":"1f3ef","isCanonical": true},":european_castle:":{"unicode":["1f3f0"],"fname":"1f3f0","uc":"1f3f0","isCanonical": true},":snail:":{"unicode":["1f40c"],"fname":"1f40c","uc":"1f40c","isCanonical": true},":snake:":{"unicode":["1f40d"],"fname":"1f40d","uc":"1f40d","isCanonical": true},":racehorse:":{"unicode":["1f40e"],"fname":"1f40e","uc":"1f40e","isCanonical": true},":sheep:":{"unicode":["1f411"],"fname":"1f411","uc":"1f411","isCanonical": true},":monkey:":{"unicode":["1f412"],"fname":"1f412","uc":"1f412","isCanonical": true},":chicken:":{"unicode":["1f414"],"fname":"1f414","uc":"1f414","isCanonical": true},":boar:":{"unicode":["1f417"],"fname":"1f417","uc":"1f417","isCanonical": true},":elephant:":{"unicode":["1f418"],"fname":"1f418","uc":"1f418","isCanonical": true},":octopus:":{"unicode":["1f419"],"fname":"1f419","uc":"1f419","isCanonical": true},":shell:":{"unicode":["1f41a"],"fname":"1f41a","uc":"1f41a","isCanonical": true},":bug:":{"unicode":["1f41b"],"fname":"1f41b","uc":"1f41b","isCanonical": true},":ant:":{"unicode":["1f41c"],"fname":"1f41c","uc":"1f41c","isCanonical": true},":bee:":{"unicode":["1f41d"],"fname":"1f41d","uc":"1f41d","isCanonical": true},":beetle:":{"unicode":["1f41e"],"fname":"1f41e","uc":"1f41e","isCanonical": true},":fish:":{"unicode":["1f41f"],"fname":"1f41f","uc":"1f41f","isCanonical": true},":tropical_fish:":{"unicode":["1f420"],"fname":"1f420","uc":"1f420","isCanonical": true},":blowfish:":{"unicode":["1f421"],"fname":"1f421","uc":"1f421","isCanonical": true},":turtle:":{"unicode":["1f422"],"fname":"1f422","uc":"1f422","isCanonical": true},":hatching_chick:":{"unicode":["1f423"],"fname":"1f423","uc":"1f423","isCanonical": true},":baby_chick:":{"unicode":["1f424"],"fname":"1f424","uc":"1f424","isCanonical": true},":hatched_chick:":{"unicode":["1f425"],"fname":"1f425","uc":"1f425","isCanonical": true},":bird:":{"unicode":["1f426"],"fname":"1f426","uc":"1f426","isCanonical": true},":penguin:":{"unicode":["1f427"],"fname":"1f427","uc":"1f427","isCanonical": true},":koala:":{"unicode":["1f428"],"fname":"1f428","uc":"1f428","isCanonical": true},":poodle:":{"unicode":["1f429"],"fname":"1f429","uc":"1f429","isCanonical": true},":camel:":{"unicode":["1f42b"],"fname":"1f42b","uc":"1f42b","isCanonical": true},":dolphin:":{"unicode":["1f42c"],"fname":"1f42c","uc":"1f42c","isCanonical": true},":mouse:":{"unicode":["1f42d"],"fname":"1f42d","uc":"1f42d","isCanonical": true},":cow:":{"unicode":["1f42e"],"fname":"1f42e","uc":"1f42e","isCanonical": true},":tiger:":{"unicode":["1f42f"],"fname":"1f42f","uc":"1f42f","isCanonical": true},":rabbit:":{"unicode":["1f430"],"fname":"1f430","uc":"1f430","isCanonical": true},":cat:":{"unicode":["1f431"],"fname":"1f431","uc":"1f431","isCanonical": true},":dragon_face:":{"unicode":["1f432"],"fname":"1f432","uc":"1f432","isCanonical": true},":whale:":{"unicode":["1f433"],"fname":"1f433","uc":"1f433","isCanonical": true},":horse:":{"unicode":["1f434"],"fname":"1f434","uc":"1f434","isCanonical": true},":monkey_face:":{"unicode":["1f435"],"fname":"1f435","uc":"1f435","isCanonical": true},":dog:":{"unicode":["1f436"],"fname":"1f436","uc":"1f436","isCanonical": true},":pig:":{"unicode":["1f437"],"fname":"1f437","uc":"1f437","isCanonical": true},":frog:":{"unicode":["1f438"],"fname":"1f438","uc":"1f438","isCanonical": true},":hamster:":{"unicode":["1f439"],"fname":"1f439","uc":"1f439","isCanonical": true},":wolf:":{"unicode":["1f43a"],"fname":"1f43a","uc":"1f43a","isCanonical": true},":bear:":{"unicode":["1f43b"],"fname":"1f43b","uc":"1f43b","isCanonical": true},":panda_face:":{"unicode":["1f43c"],"fname":"1f43c","uc":"1f43c","isCanonical": true},":pig_nose:":{"unicode":["1f43d"],"fname":"1f43d","uc":"1f43d","isCanonical": true},":feet:":{"unicode":["1f43e"],"fname":"1f43e","uc":"1f43e","isCanonical": true},":paw_prints:":{"unicode":["1f43e"],"fname":"1f43e","uc":"1f43e","isCanonical": false},":eyes:":{"unicode":["1f440"],"fname":"1f440","uc":"1f440","isCanonical": true},":ear:":{"unicode":["1f442"],"fname":"1f442","uc":"1f442","isCanonical": true},":nose:":{"unicode":["1f443"],"fname":"1f443","uc":"1f443","isCanonical": true},":lips:":{"unicode":["1f444"],"fname":"1f444","uc":"1f444","isCanonical": true},":tongue:":{"unicode":["1f445"],"fname":"1f445","uc":"1f445","isCanonical": true},":point_up_2:":{"unicode":["1f446"],"fname":"1f446","uc":"1f446","isCanonical": true},":point_down:":{"unicode":["1f447"],"fname":"1f447","uc":"1f447","isCanonical": true},":point_left:":{"unicode":["1f448"],"fname":"1f448","uc":"1f448","isCanonical": true},":point_right:":{"unicode":["1f449"],"fname":"1f449","uc":"1f449","isCanonical": true},":punch:":{"unicode":["1f44a"],"fname":"1f44a","uc":"1f44a","isCanonical": true},":wave:":{"unicode":["1f44b"],"fname":"1f44b","uc":"1f44b","isCanonical": true},":ok_hand:":{"unicode":["1f44c"],"fname":"1f44c","uc":"1f44c","isCanonical": true},":thumbsup:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": true},":+1:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": false},":thumbup:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": false},":thumbsdown:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": true},":-1:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": false},":thumbdown:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": false},":clap:":{"unicode":["1f44f"],"fname":"1f44f","uc":"1f44f","isCanonical": true},":open_hands:":{"unicode":["1f450"],"fname":"1f450","uc":"1f450","isCanonical": true},":crown:":{"unicode":["1f451"],"fname":"1f451","uc":"1f451","isCanonical": true},":womans_hat:":{"unicode":["1f452"],"fname":"1f452","uc":"1f452","isCanonical": true},":eyeglasses:":{"unicode":["1f453"],"fname":"1f453","uc":"1f453","isCanonical": true},":necktie:":{"unicode":["1f454"],"fname":"1f454","uc":"1f454","isCanonical": true},":shirt:":{"unicode":["1f455"],"fname":"1f455","uc":"1f455","isCanonical": true},":jeans:":{"unicode":["1f456"],"fname":"1f456","uc":"1f456","isCanonical": true},":dress:":{"unicode":["1f457"],"fname":"1f457","uc":"1f457","isCanonical": true},":kimono:":{"unicode":["1f458"],"fname":"1f458","uc":"1f458","isCanonical": true},":bikini:":{"unicode":["1f459"],"fname":"1f459","uc":"1f459","isCanonical": true},":womans_clothes:":{"unicode":["1f45a"],"fname":"1f45a","uc":"1f45a","isCanonical": true},":purse:":{"unicode":["1f45b"],"fname":"1f45b","uc":"1f45b","isCanonical": true},":handbag:":{"unicode":["1f45c"],"fname":"1f45c","uc":"1f45c","isCanonical": true},":pouch:":{"unicode":["1f45d"],"fname":"1f45d","uc":"1f45d","isCanonical": true},":mans_shoe:":{"unicode":["1f45e"],"fname":"1f45e","uc":"1f45e","isCanonical": true},":athletic_shoe:":{"unicode":["1f45f"],"fname":"1f45f","uc":"1f45f","isCanonical": true},":high_heel:":{"unicode":["1f460"],"fname":"1f460","uc":"1f460","isCanonical": true},":sandal:":{"unicode":["1f461"],"fname":"1f461","uc":"1f461","isCanonical": true},":boot:":{"unicode":["1f462"],"fname":"1f462","uc":"1f462","isCanonical": true},":footprints:":{"unicode":["1f463"],"fname":"1f463","uc":"1f463","isCanonical": true},":bust_in_silhouette:":{"unicode":["1f464"],"fname":"1f464","uc":"1f464","isCanonical": true},":boy:":{"unicode":["1f466"],"fname":"1f466","uc":"1f466","isCanonical": true},":girl:":{"unicode":["1f467"],"fname":"1f467","uc":"1f467","isCanonical": true},":man:":{"unicode":["1f468"],"fname":"1f468","uc":"1f468","isCanonical": true},":woman:":{"unicode":["1f469"],"fname":"1f469","uc":"1f469","isCanonical": true},":family:":{"unicode":["1f46a"],"fname":"1f46a","uc":"1f46a","isCanonical": true},":couple:":{"unicode":["1f46b"],"fname":"1f46b","uc":"1f46b","isCanonical": true},":cop:":{"unicode":["1f46e"],"fname":"1f46e","uc":"1f46e","isCanonical": true},":dancers:":{"unicode":["1f46f"],"fname":"1f46f","uc":"1f46f","isCanonical": true},":bride_with_veil:":{"unicode":["1f470"],"fname":"1f470","uc":"1f470","isCanonical": true},":person_with_blond_hair:":{"unicode":["1f471"],"fname":"1f471","uc":"1f471","isCanonical": true},":man_with_gua_pi_mao:":{"unicode":["1f472"],"fname":"1f472","uc":"1f472","isCanonical": true},":man_with_turban:":{"unicode":["1f473"],"fname":"1f473","uc":"1f473","isCanonical": true},":older_man:":{"unicode":["1f474"],"fname":"1f474","uc":"1f474","isCanonical": true},":older_woman:":{"unicode":["1f475"],"fname":"1f475","uc":"1f475","isCanonical": true},":grandma:":{"unicode":["1f475"],"fname":"1f475","uc":"1f475","isCanonical": false},":baby:":{"unicode":["1f476"],"fname":"1f476","uc":"1f476","isCanonical": true},":construction_worker:":{"unicode":["1f477"],"fname":"1f477","uc":"1f477","isCanonical": true},":princess:":{"unicode":["1f478"],"fname":"1f478","uc":"1f478","isCanonical": true},":japanese_ogre:":{"unicode":["1f479"],"fname":"1f479","uc":"1f479","isCanonical": true},":japanese_goblin:":{"unicode":["1f47a"],"fname":"1f47a","uc":"1f47a","isCanonical": true},":ghost:":{"unicode":["1f47b"],"fname":"1f47b","uc":"1f47b","isCanonical": true},":angel:":{"unicode":["1f47c"],"fname":"1f47c","uc":"1f47c","isCanonical": true},":alien:":{"unicode":["1f47d"],"fname":"1f47d","uc":"1f47d","isCanonical": true},":space_invader:":{"unicode":["1f47e"],"fname":"1f47e","uc":"1f47e","isCanonical": true},":imp:":{"unicode":["1f47f"],"fname":"1f47f","uc":"1f47f","isCanonical": true},":skull:":{"unicode":["1f480"],"fname":"1f480","uc":"1f480","isCanonical": true},":skeleton:":{"unicode":["1f480"],"fname":"1f480","uc":"1f480","isCanonical": false},":card_index:":{"unicode":["1f4c7"],"fname":"1f4c7","uc":"1f4c7","isCanonical": true},":information_desk_person:":{"unicode":["1f481"],"fname":"1f481","uc":"1f481","isCanonical": true},":guardsman:":{"unicode":["1f482"],"fname":"1f482","uc":"1f482","isCanonical": true},":dancer:":{"unicode":["1f483"],"fname":"1f483","uc":"1f483","isCanonical": true},":lipstick:":{"unicode":["1f484"],"fname":"1f484","uc":"1f484","isCanonical": true},":nail_care:":{"unicode":["1f485"],"fname":"1f485","uc":"1f485","isCanonical": true},":ledger:":{"unicode":["1f4d2"],"fname":"1f4d2","uc":"1f4d2","isCanonical": true},":massage:":{"unicode":["1f486"],"fname":"1f486","uc":"1f486","isCanonical": true},":notebook:":{"unicode":["1f4d3"],"fname":"1f4d3","uc":"1f4d3","isCanonical": true},":haircut:":{"unicode":["1f487"],"fname":"1f487","uc":"1f487","isCanonical": true},":notebook_with_decorative_cover:":{"unicode":["1f4d4"],"fname":"1f4d4","uc":"1f4d4","isCanonical": true},":barber:":{"unicode":["1f488"],"fname":"1f488","uc":"1f488","isCanonical": true},":closed_book:":{"unicode":["1f4d5"],"fname":"1f4d5","uc":"1f4d5","isCanonical": true},":syringe:":{"unicode":["1f489"],"fname":"1f489","uc":"1f489","isCanonical": true},":book:":{"unicode":["1f4d6"],"fname":"1f4d6","uc":"1f4d6","isCanonical": true},":pill:":{"unicode":["1f48a"],"fname":"1f48a","uc":"1f48a","isCanonical": true},":green_book:":{"unicode":["1f4d7"],"fname":"1f4d7","uc":"1f4d7","isCanonical": true},":kiss:":{"unicode":["1f48b"],"fname":"1f48b","uc":"1f48b","isCanonical": true},":blue_book:":{"unicode":["1f4d8"],"fname":"1f4d8","uc":"1f4d8","isCanonical": true},":love_letter:":{"unicode":["1f48c"],"fname":"1f48c","uc":"1f48c","isCanonical": true},":orange_book:":{"unicode":["1f4d9"],"fname":"1f4d9","uc":"1f4d9","isCanonical": true},":ring:":{"unicode":["1f48d"],"fname":"1f48d","uc":"1f48d","isCanonical": true},":books:":{"unicode":["1f4da"],"fname":"1f4da","uc":"1f4da","isCanonical": true},":gem:":{"unicode":["1f48e"],"fname":"1f48e","uc":"1f48e","isCanonical": true},":name_badge:":{"unicode":["1f4db"],"fname":"1f4db","uc":"1f4db","isCanonical": true},":couplekiss:":{"unicode":["1f48f"],"fname":"1f48f","uc":"1f48f","isCanonical": true},":scroll:":{"unicode":["1f4dc"],"fname":"1f4dc","uc":"1f4dc","isCanonical": true},":bouquet:":{"unicode":["1f490"],"fname":"1f490","uc":"1f490","isCanonical": true},":pencil:":{"unicode":["1f4dd"],"fname":"1f4dd","uc":"1f4dd","isCanonical": true},":couple_with_heart:":{"unicode":["1f491"],"fname":"1f491","uc":"1f491","isCanonical": true},":telephone_receiver:":{"unicode":["1f4de"],"fname":"1f4de","uc":"1f4de","isCanonical": true},":wedding:":{"unicode":["1f492"],"fname":"1f492","uc":"1f492","isCanonical": true},":pager:":{"unicode":["1f4df"],"fname":"1f4df","uc":"1f4df","isCanonical": true},":fax:":{"unicode":["1f4e0"],"fname":"1f4e0","uc":"1f4e0","isCanonical": true},":heartbeat:":{"unicode":["1f493"],"fname":"1f493","uc":"1f493","isCanonical": true},":satellite:":{"unicode":["1f4e1"],"fname":"1f4e1","uc":"1f4e1","isCanonical": true},":loudspeaker:":{"unicode":["1f4e2"],"fname":"1f4e2","uc":"1f4e2","isCanonical": true},":broken_heart:":{"unicode":["1f494"],"fname":"1f494","uc":"1f494","isCanonical": true},":mega:":{"unicode":["1f4e3"],"fname":"1f4e3","uc":"1f4e3","isCanonical": true},":outbox_tray:":{"unicode":["1f4e4"],"fname":"1f4e4","uc":"1f4e4","isCanonical": true},":two_hearts:":{"unicode":["1f495"],"fname":"1f495","uc":"1f495","isCanonical": true},":inbox_tray:":{"unicode":["1f4e5"],"fname":"1f4e5","uc":"1f4e5","isCanonical": true},":package:":{"unicode":["1f4e6"],"fname":"1f4e6","uc":"1f4e6","isCanonical": true},":sparkling_heart:":{"unicode":["1f496"],"fname":"1f496","uc":"1f496","isCanonical": true},":e-mail:":{"unicode":["1f4e7"],"fname":"1f4e7","uc":"1f4e7","isCanonical": true},":email:":{"unicode":["1f4e7"],"fname":"1f4e7","uc":"1f4e7","isCanonical": false},":incoming_envelope:":{"unicode":["1f4e8"],"fname":"1f4e8","uc":"1f4e8","isCanonical": true},":heartpulse:":{"unicode":["1f497"],"fname":"1f497","uc":"1f497","isCanonical": true},":envelope_with_arrow:":{"unicode":["1f4e9"],"fname":"1f4e9","uc":"1f4e9","isCanonical": true},":mailbox_closed:":{"unicode":["1f4ea"],"fname":"1f4ea","uc":"1f4ea","isCanonical": true},":cupid:":{"unicode":["1f498"],"fname":"1f498","uc":"1f498","isCanonical": true},":mailbox:":{"unicode":["1f4eb"],"fname":"1f4eb","uc":"1f4eb","isCanonical": true},":postbox:":{"unicode":["1f4ee"],"fname":"1f4ee","uc":"1f4ee","isCanonical": true},":blue_heart:":{"unicode":["1f499"],"fname":"1f499","uc":"1f499","isCanonical": true},":newspaper:":{"unicode":["1f4f0"],"fname":"1f4f0","uc":"1f4f0","isCanonical": true},":iphone:":{"unicode":["1f4f1"],"fname":"1f4f1","uc":"1f4f1","isCanonical": true},":green_heart:":{"unicode":["1f49a"],"fname":"1f49a","uc":"1f49a","isCanonical": true},":calling:":{"unicode":["1f4f2"],"fname":"1f4f2","uc":"1f4f2","isCanonical": true},":vibration_mode:":{"unicode":["1f4f3"],"fname":"1f4f3","uc":"1f4f3","isCanonical": true},":yellow_heart:":{"unicode":["1f49b"],"fname":"1f49b","uc":"1f49b","isCanonical": true},":mobile_phone_off:":{"unicode":["1f4f4"],"fname":"1f4f4","uc":"1f4f4","isCanonical": true},":signal_strength:":{"unicode":["1f4f6"],"fname":"1f4f6","uc":"1f4f6","isCanonical": true},":purple_heart:":{"unicode":["1f49c"],"fname":"1f49c","uc":"1f49c","isCanonical": true},":camera:":{"unicode":["1f4f7"],"fname":"1f4f7","uc":"1f4f7","isCanonical": true},":video_camera:":{"unicode":["1f4f9"],"fname":"1f4f9","uc":"1f4f9","isCanonical": true},":gift_heart:":{"unicode":["1f49d"],"fname":"1f49d","uc":"1f49d","isCanonical": true},":tv:":{"unicode":["1f4fa"],"fname":"1f4fa","uc":"1f4fa","isCanonical": true},":radio:":{"unicode":["1f4fb"],"fname":"1f4fb","uc":"1f4fb","isCanonical": true},":revolving_hearts:":{"unicode":["1f49e"],"fname":"1f49e","uc":"1f49e","isCanonical": true},":vhs:":{"unicode":["1f4fc"],"fname":"1f4fc","uc":"1f4fc","isCanonical": true},":arrows_clockwise:":{"unicode":["1f503"],"fname":"1f503","uc":"1f503","isCanonical": true},":heart_decoration:":{"unicode":["1f49f"],"fname":"1f49f","uc":"1f49f","isCanonical": true},":loud_sound:":{"unicode":["1f50a"],"fname":"1f50a","uc":"1f50a","isCanonical": true},":battery:":{"unicode":["1f50b"],"fname":"1f50b","uc":"1f50b","isCanonical": true},":diamond_shape_with_a_dot_inside:":{"unicode":["1f4a0"],"fname":"1f4a0","uc":"1f4a0","isCanonical": true},":electric_plug:":{"unicode":["1f50c"],"fname":"1f50c","uc":"1f50c","isCanonical": true},":mag:":{"unicode":["1f50d"],"fname":"1f50d","uc":"1f50d","isCanonical": true},":bulb:":{"unicode":["1f4a1"],"fname":"1f4a1","uc":"1f4a1","isCanonical": true},":mag_right:":{"unicode":["1f50e"],"fname":"1f50e","uc":"1f50e","isCanonical": true},":lock_with_ink_pen:":{"unicode":["1f50f"],"fname":"1f50f","uc":"1f50f","isCanonical": true},":anger:":{"unicode":["1f4a2"],"fname":"1f4a2","uc":"1f4a2","isCanonical": true},":closed_lock_with_key:":{"unicode":["1f510"],"fname":"1f510","uc":"1f510","isCanonical": true},":key:":{"unicode":["1f511"],"fname":"1f511","uc":"1f511","isCanonical": true},":bomb:":{"unicode":["1f4a3"],"fname":"1f4a3","uc":"1f4a3","isCanonical": true},":lock:":{"unicode":["1f512"],"fname":"1f512","uc":"1f512","isCanonical": true},":unlock:":{"unicode":["1f513"],"fname":"1f513","uc":"1f513","isCanonical": true},":zzz:":{"unicode":["1f4a4"],"fname":"1f4a4","uc":"1f4a4","isCanonical": true},":bell:":{"unicode":["1f514"],"fname":"1f514","uc":"1f514","isCanonical": true},":bookmark:":{"unicode":["1f516"],"fname":"1f516","uc":"1f516","isCanonical": true},":boom:":{"unicode":["1f4a5"],"fname":"1f4a5","uc":"1f4a5","isCanonical": true},":link:":{"unicode":["1f517"],"fname":"1f517","uc":"1f517","isCanonical": true},":radio_button:":{"unicode":["1f518"],"fname":"1f518","uc":"1f518","isCanonical": true},":sweat_drops:":{"unicode":["1f4a6"],"fname":"1f4a6","uc":"1f4a6","isCanonical": true},":back:":{"unicode":["1f519"],"fname":"1f519","uc":"1f519","isCanonical": true},":end:":{"unicode":["1f51a"],"fname":"1f51a","uc":"1f51a","isCanonical": true},":droplet:":{"unicode":["1f4a7"],"fname":"1f4a7","uc":"1f4a7","isCanonical": true},":on:":{"unicode":["1f51b"],"fname":"1f51b","uc":"1f51b","isCanonical": true},":soon:":{"unicode":["1f51c"],"fname":"1f51c","uc":"1f51c","isCanonical": true},":dash:":{"unicode":["1f4a8"],"fname":"1f4a8","uc":"1f4a8","isCanonical": true},":top:":{"unicode":["1f51d"],"fname":"1f51d","uc":"1f51d","isCanonical": true},":underage:":{"unicode":["1f51e"],"fname":"1f51e","uc":"1f51e","isCanonical": true},":poop:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": true},":shit:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":hankey:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":poo:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":keycap_ten:":{"unicode":["1f51f"],"fname":"1f51f","uc":"1f51f","isCanonical": true},":muscle:":{"unicode":["1f4aa"],"fname":"1f4aa","uc":"1f4aa","isCanonical": true},":capital_abcd:":{"unicode":["1f520"],"fname":"1f520","uc":"1f520","isCanonical": true},":abcd:":{"unicode":["1f521"],"fname":"1f521","uc":"1f521","isCanonical": true},":dizzy:":{"unicode":["1f4ab"],"fname":"1f4ab","uc":"1f4ab","isCanonical": true},":1234:":{"unicode":["1f522"],"fname":"1f522","uc":"1f522","isCanonical": true},":symbols:":{"unicode":["1f523"],"fname":"1f523","uc":"1f523","isCanonical": true},":speech_balloon:":{"unicode":["1f4ac"],"fname":"1f4ac","uc":"1f4ac","isCanonical": true},":abc:":{"unicode":["1f524"],"fname":"1f524","uc":"1f524","isCanonical": true},":fire:":{"unicode":["1f525"],"fname":"1f525","uc":"1f525","isCanonical": true},":flame:":{"unicode":["1f525"],"fname":"1f525","uc":"1f525","isCanonical": false},":white_flower:":{"unicode":["1f4ae"],"fname":"1f4ae","uc":"1f4ae","isCanonical": true},":flashlight:":{"unicode":["1f526"],"fname":"1f526","uc":"1f526","isCanonical": true},":wrench:":{"unicode":["1f527"],"fname":"1f527","uc":"1f527","isCanonical": true},":100:":{"unicode":["1f4af"],"fname":"1f4af","uc":"1f4af","isCanonical": true},":hammer:":{"unicode":["1f528"],"fname":"1f528","uc":"1f528","isCanonical": true},":nut_and_bolt:":{"unicode":["1f529"],"fname":"1f529","uc":"1f529","isCanonical": true},":moneybag:":{"unicode":["1f4b0"],"fname":"1f4b0","uc":"1f4b0","isCanonical": true},":knife:":{"unicode":["1f52a"],"fname":"1f52a","uc":"1f52a","isCanonical": true},":gun:":{"unicode":["1f52b"],"fname":"1f52b","uc":"1f52b","isCanonical": true},":currency_exchange:":{"unicode":["1f4b1"],"fname":"1f4b1","uc":"1f4b1","isCanonical": true},":crystal_ball:":{"unicode":["1f52e"],"fname":"1f52e","uc":"1f52e","isCanonical": true},":heavy_dollar_sign:":{"unicode":["1f4b2"],"fname":"1f4b2","uc":"1f4b2","isCanonical": true},":six_pointed_star:":{"unicode":["1f52f"],"fname":"1f52f","uc":"1f52f","isCanonical": true},":credit_card:":{"unicode":["1f4b3"],"fname":"1f4b3","uc":"1f4b3","isCanonical": true},":beginner:":{"unicode":["1f530"],"fname":"1f530","uc":"1f530","isCanonical": true},":trident:":{"unicode":["1f531"],"fname":"1f531","uc":"1f531","isCanonical": true},":yen:":{"unicode":["1f4b4"],"fname":"1f4b4","uc":"1f4b4","isCanonical": true},":black_square_button:":{"unicode":["1f532"],"fname":"1f532","uc":"1f532","isCanonical": true},":white_square_button:":{"unicode":["1f533"],"fname":"1f533","uc":"1f533","isCanonical": true},":dollar:":{"unicode":["1f4b5"],"fname":"1f4b5","uc":"1f4b5","isCanonical": true},":red_circle:":{"unicode":["1f534"],"fname":"1f534","uc":"1f534","isCanonical": true},":blue_circle:":{"unicode":["1f535"],"fname":"1f535","uc":"1f535","isCanonical": true},":money_with_wings:":{"unicode":["1f4b8"],"fname":"1f4b8","uc":"1f4b8","isCanonical": true},":large_orange_diamond:":{"unicode":["1f536"],"fname":"1f536","uc":"1f536","isCanonical": true},":large_blue_diamond:":{"unicode":["1f537"],"fname":"1f537","uc":"1f537","isCanonical": true},":chart:":{"unicode":["1f4b9"],"fname":"1f4b9","uc":"1f4b9","isCanonical": true},":small_orange_diamond:":{"unicode":["1f538"],"fname":"1f538","uc":"1f538","isCanonical": true},":small_blue_diamond:":{"unicode":["1f539"],"fname":"1f539","uc":"1f539","isCanonical": true},":seat:":{"unicode":["1f4ba"],"fname":"1f4ba","uc":"1f4ba","isCanonical": true},":small_red_triangle:":{"unicode":["1f53a"],"fname":"1f53a","uc":"1f53a","isCanonical": true},":small_red_triangle_down:":{"unicode":["1f53b"],"fname":"1f53b","uc":"1f53b","isCanonical": true},":computer:":{"unicode":["1f4bb"],"fname":"1f4bb","uc":"1f4bb","isCanonical": true},":arrow_up_small:":{"unicode":["1f53c"],"fname":"1f53c","uc":"1f53c","isCanonical": true},":briefcase:":{"unicode":["1f4bc"],"fname":"1f4bc","uc":"1f4bc","isCanonical": true},":arrow_down_small:":{"unicode":["1f53d"],"fname":"1f53d","uc":"1f53d","isCanonical": true},":clock1:":{"unicode":["1f550"],"fname":"1f550","uc":"1f550","isCanonical": true},":minidisc:":{"unicode":["1f4bd"],"fname":"1f4bd","uc":"1f4bd","isCanonical": true},":clock2:":{"unicode":["1f551"],"fname":"1f551","uc":"1f551","isCanonical": true},":floppy_disk:":{"unicode":["1f4be"],"fname":"1f4be","uc":"1f4be","isCanonical": true},":clock3:":{"unicode":["1f552"],"fname":"1f552","uc":"1f552","isCanonical": true},":cd:":{"unicode":["1f4bf"],"fname":"1f4bf","uc":"1f4bf","isCanonical": true},":clock4:":{"unicode":["1f553"],"fname":"1f553","uc":"1f553","isCanonical": true},":dvd:":{"unicode":["1f4c0"],"fname":"1f4c0","uc":"1f4c0","isCanonical": true},":clock5:":{"unicode":["1f554"],"fname":"1f554","uc":"1f554","isCanonical": true},":clock6:":{"unicode":["1f555"],"fname":"1f555","uc":"1f555","isCanonical": true},":file_folder:":{"unicode":["1f4c1"],"fname":"1f4c1","uc":"1f4c1","isCanonical": true},":clock7:":{"unicode":["1f556"],"fname":"1f556","uc":"1f556","isCanonical": true},":clock8:":{"unicode":["1f557"],"fname":"1f557","uc":"1f557","isCanonical": true},":open_file_folder:":{"unicode":["1f4c2"],"fname":"1f4c2","uc":"1f4c2","isCanonical": true},":clock9:":{"unicode":["1f558"],"fname":"1f558","uc":"1f558","isCanonical": true},":clock10:":{"unicode":["1f559"],"fname":"1f559","uc":"1f559","isCanonical": true},":page_with_curl:":{"unicode":["1f4c3"],"fname":"1f4c3","uc":"1f4c3","isCanonical": true},":clock11:":{"unicode":["1f55a"],"fname":"1f55a","uc":"1f55a","isCanonical": true},":clock12:":{"unicode":["1f55b"],"fname":"1f55b","uc":"1f55b","isCanonical": true},":page_facing_up:":{"unicode":["1f4c4"],"fname":"1f4c4","uc":"1f4c4","isCanonical": true},":mount_fuji:":{"unicode":["1f5fb"],"fname":"1f5fb","uc":"1f5fb","isCanonical": true},":tokyo_tower:":{"unicode":["1f5fc"],"fname":"1f5fc","uc":"1f5fc","isCanonical": true},":date:":{"unicode":["1f4c5"],"fname":"1f4c5","uc":"1f4c5","isCanonical": true},":statue_of_liberty:":{"unicode":["1f5fd"],"fname":"1f5fd","uc":"1f5fd","isCanonical": true},":japan:":{"unicode":["1f5fe"],"fname":"1f5fe","uc":"1f5fe","isCanonical": true},":calendar:":{"unicode":["1f4c6"],"fname":"1f4c6","uc":"1f4c6","isCanonical": true},":moyai:":{"unicode":["1f5ff"],"fname":"1f5ff","uc":"1f5ff","isCanonical": true},":grin:":{"unicode":["1f601"],"fname":"1f601","uc":"1f601","isCanonical": true},":joy:":{"unicode":["1f602"],"fname":"1f602","uc":"1f602","isCanonical": true},":smiley:":{"unicode":["1f603"],"fname":"1f603","uc":"1f603","isCanonical": true},":chart_with_upwards_trend:":{"unicode":["1f4c8"],"fname":"1f4c8","uc":"1f4c8","isCanonical": true},":smile:":{"unicode":["1f604"],"fname":"1f604","uc":"1f604","isCanonical": true},":sweat_smile:":{"unicode":["1f605"],"fname":"1f605","uc":"1f605","isCanonical": true},":chart_with_downwards_trend:":{"unicode":["1f4c9"],"fname":"1f4c9","uc":"1f4c9","isCanonical": true},":laughing:":{"unicode":["1f606"],"fname":"1f606","uc":"1f606","isCanonical": true},":satisfied:":{"unicode":["1f606"],"fname":"1f606","uc":"1f606","isCanonical": false},":wink:":{"unicode":["1f609"],"fname":"1f609","uc":"1f609","isCanonical": true},":bar_chart:":{"unicode":["1f4ca"],"fname":"1f4ca","uc":"1f4ca","isCanonical": true},":blush:":{"unicode":["1f60a"],"fname":"1f60a","uc":"1f60a","isCanonical": true},":yum:":{"unicode":["1f60b"],"fname":"1f60b","uc":"1f60b","isCanonical": true},":clipboard:":{"unicode":["1f4cb"],"fname":"1f4cb","uc":"1f4cb","isCanonical": true},":relieved:":{"unicode":["1f60c"],"fname":"1f60c","uc":"1f60c","isCanonical": true},":heart_eyes:":{"unicode":["1f60d"],"fname":"1f60d","uc":"1f60d","isCanonical": true},":pushpin:":{"unicode":["1f4cc"],"fname":"1f4cc","uc":"1f4cc","isCanonical": true},":smirk:":{"unicode":["1f60f"],"fname":"1f60f","uc":"1f60f","isCanonical": true},":unamused:":{"unicode":["1f612"],"fname":"1f612","uc":"1f612","isCanonical": true},":round_pushpin:":{"unicode":["1f4cd"],"fname":"1f4cd","uc":"1f4cd","isCanonical": true},":sweat:":{"unicode":["1f613"],"fname":"1f613","uc":"1f613","isCanonical": true},":pensive:":{"unicode":["1f614"],"fname":"1f614","uc":"1f614","isCanonical": true},":paperclip:":{"unicode":["1f4ce"],"fname":"1f4ce","uc":"1f4ce","isCanonical": true},":confounded:":{"unicode":["1f616"],"fname":"1f616","uc":"1f616","isCanonical": true},":kissing_heart:":{"unicode":["1f618"],"fname":"1f618","uc":"1f618","isCanonical": true},":straight_ruler:":{"unicode":["1f4cf"],"fname":"1f4cf","uc":"1f4cf","isCanonical": true},":kissing_closed_eyes:":{"unicode":["1f61a"],"fname":"1f61a","uc":"1f61a","isCanonical": true},":stuck_out_tongue_winking_eye:":{"unicode":["1f61c"],"fname":"1f61c","uc":"1f61c","isCanonical": true},":triangular_ruler:":{"unicode":["1f4d0"],"fname":"1f4d0","uc":"1f4d0","isCanonical": true},":stuck_out_tongue_closed_eyes:":{"unicode":["1f61d"],"fname":"1f61d","uc":"1f61d","isCanonical": true},":disappointed:":{"unicode":["1f61e"],"fname":"1f61e","uc":"1f61e","isCanonical": true},":bookmark_tabs:":{"unicode":["1f4d1"],"fname":"1f4d1","uc":"1f4d1","isCanonical": true},":angry:":{"unicode":["1f620"],"fname":"1f620","uc":"1f620","isCanonical": true},":rage:":{"unicode":["1f621"],"fname":"1f621","uc":"1f621","isCanonical": true},":cry:":{"unicode":["1f622"],"fname":"1f622","uc":"1f622","isCanonical": true},":persevere:":{"unicode":["1f623"],"fname":"1f623","uc":"1f623","isCanonical": true},":triumph:":{"unicode":["1f624"],"fname":"1f624","uc":"1f624","isCanonical": true},":disappointed_relieved:":{"unicode":["1f625"],"fname":"1f625","uc":"1f625","isCanonical": true},":fearful:":{"unicode":["1f628"],"fname":"1f628","uc":"1f628","isCanonical": true},":weary:":{"unicode":["1f629"],"fname":"1f629","uc":"1f629","isCanonical": true},":sleepy:":{"unicode":["1f62a"],"fname":"1f62a","uc":"1f62a","isCanonical": true},":tired_face:":{"unicode":["1f62b"],"fname":"1f62b","uc":"1f62b","isCanonical": true},":sob:":{"unicode":["1f62d"],"fname":"1f62d","uc":"1f62d","isCanonical": true},":cold_sweat:":{"unicode":["1f630"],"fname":"1f630","uc":"1f630","isCanonical": true},":scream:":{"unicode":["1f631"],"fname":"1f631","uc":"1f631","isCanonical": true},":astonished:":{"unicode":["1f632"],"fname":"1f632","uc":"1f632","isCanonical": true},":flushed:":{"unicode":["1f633"],"fname":"1f633","uc":"1f633","isCanonical": true},":dizzy_face:":{"unicode":["1f635"],"fname":"1f635","uc":"1f635","isCanonical": true},":mask:":{"unicode":["1f637"],"fname":"1f637","uc":"1f637","isCanonical": true},":smile_cat:":{"unicode":["1f638"],"fname":"1f638","uc":"1f638","isCanonical": true},":joy_cat:":{"unicode":["1f639"],"fname":"1f639","uc":"1f639","isCanonical": true},":smiley_cat:":{"unicode":["1f63a"],"fname":"1f63a","uc":"1f63a","isCanonical": true},":heart_eyes_cat:":{"unicode":["1f63b"],"fname":"1f63b","uc":"1f63b","isCanonical": true},":smirk_cat:":{"unicode":["1f63c"],"fname":"1f63c","uc":"1f63c","isCanonical": true},":kissing_cat:":{"unicode":["1f63d"],"fname":"1f63d","uc":"1f63d","isCanonical": true},":pouting_cat:":{"unicode":["1f63e"],"fname":"1f63e","uc":"1f63e","isCanonical": true},":crying_cat_face:":{"unicode":["1f63f"],"fname":"1f63f","uc":"1f63f","isCanonical": true},":scream_cat:":{"unicode":["1f640"],"fname":"1f640","uc":"1f640","isCanonical": true},":no_good:":{"unicode":["1f645"],"fname":"1f645","uc":"1f645","isCanonical": true},":ok_woman:":{"unicode":["1f646"],"fname":"1f646","uc":"1f646","isCanonical": true},":bow:":{"unicode":["1f647"],"fname":"1f647","uc":"1f647","isCanonical": true},":see_no_evil:":{"unicode":["1f648"],"fname":"1f648","uc":"1f648","isCanonical": true},":hear_no_evil:":{"unicode":["1f649"],"fname":"1f649","uc":"1f649","isCanonical": true},":speak_no_evil:":{"unicode":["1f64a"],"fname":"1f64a","uc":"1f64a","isCanonical": true},":raising_hand:":{"unicode":["1f64b"],"fname":"1f64b","uc":"1f64b","isCanonical": true},":raised_hands:":{"unicode":["1f64c"],"fname":"1f64c","uc":"1f64c","isCanonical": true},":person_frowning:":{"unicode":["1f64d"],"fname":"1f64d","uc":"1f64d","isCanonical": true},":person_with_pouting_face:":{"unicode":["1f64e"],"fname":"1f64e","uc":"1f64e","isCanonical": true},":pray:":{"unicode":["1f64f"],"fname":"1f64f","uc":"1f64f","isCanonical": true},":rocket:":{"unicode":["1f680"],"fname":"1f680","uc":"1f680","isCanonical": true},":railway_car:":{"unicode":["1f683"],"fname":"1f683","uc":"1f683","isCanonical": true},":bullettrain_side:":{"unicode":["1f684"],"fname":"1f684","uc":"1f684","isCanonical": true},":bullettrain_front:":{"unicode":["1f685"],"fname":"1f685","uc":"1f685","isCanonical": true},":metro:":{"unicode":["1f687"],"fname":"1f687","uc":"1f687","isCanonical": true},":station:":{"unicode":["1f689"],"fname":"1f689","uc":"1f689","isCanonical": true},":bus:":{"unicode":["1f68c"],"fname":"1f68c","uc":"1f68c","isCanonical": true},":busstop:":{"unicode":["1f68f"],"fname":"1f68f","uc":"1f68f","isCanonical": true},":ambulance:":{"unicode":["1f691"],"fname":"1f691","uc":"1f691","isCanonical": true},":fire_engine:":{"unicode":["1f692"],"fname":"1f692","uc":"1f692","isCanonical": true},":police_car:":{"unicode":["1f693"],"fname":"1f693","uc":"1f693","isCanonical": true},":taxi:":{"unicode":["1f695"],"fname":"1f695","uc":"1f695","isCanonical": true},":red_car:":{"unicode":["1f697"],"fname":"1f697","uc":"1f697","isCanonical": true},":blue_car:":{"unicode":["1f699"],"fname":"1f699","uc":"1f699","isCanonical": true},":truck:":{"unicode":["1f69a"],"fname":"1f69a","uc":"1f69a","isCanonical": true},":ship:":{"unicode":["1f6a2"],"fname":"1f6a2","uc":"1f6a2","isCanonical": true},":speedboat:":{"unicode":["1f6a4"],"fname":"1f6a4","uc":"1f6a4","isCanonical": true},":traffic_light:":{"unicode":["1f6a5"],"fname":"1f6a5","uc":"1f6a5","isCanonical": true},":construction:":{"unicode":["1f6a7"],"fname":"1f6a7","uc":"1f6a7","isCanonical": true},":rotating_light:":{"unicode":["1f6a8"],"fname":"1f6a8","uc":"1f6a8","isCanonical": true},":triangular_flag_on_post:":{"unicode":["1f6a9"],"fname":"1f6a9","uc":"1f6a9","isCanonical": true},":door:":{"unicode":["1f6aa"],"fname":"1f6aa","uc":"1f6aa","isCanonical": true},":no_entry_sign:":{"unicode":["1f6ab"],"fname":"1f6ab","uc":"1f6ab","isCanonical": true},":smoking:":{"unicode":["1f6ac"],"fname":"1f6ac","uc":"1f6ac","isCanonical": true},":no_smoking:":{"unicode":["1f6ad"],"fname":"1f6ad","uc":"1f6ad","isCanonical": true},":bike:":{"unicode":["1f6b2"],"fname":"1f6b2","uc":"1f6b2","isCanonical": true},":walking:":{"unicode":["1f6b6"],"fname":"1f6b6","uc":"1f6b6","isCanonical": true},":mens:":{"unicode":["1f6b9"],"fname":"1f6b9","uc":"1f6b9","isCanonical": true},":womens:":{"unicode":["1f6ba"],"fname":"1f6ba","uc":"1f6ba","isCanonical": true},":restroom:":{"unicode":["1f6bb"],"fname":"1f6bb","uc":"1f6bb","isCanonical": true},":baby_symbol:":{"unicode":["1f6bc"],"fname":"1f6bc","uc":"1f6bc","isCanonical": true},":toilet:":{"unicode":["1f6bd"],"fname":"1f6bd","uc":"1f6bd","isCanonical": true},":wc:":{"unicode":["1f6be"],"fname":"1f6be","uc":"1f6be","isCanonical": true},":bath:":{"unicode":["1f6c0"],"fname":"1f6c0","uc":"1f6c0","isCanonical": true},":metal:":{"unicode":["1f918"],"fname":"1f918","uc":"1f918","isCanonical": true},":sign_of_the_horns:":{"unicode":["1f918"],"fname":"1f918","uc":"1f918","isCanonical": false},":grinning:":{"unicode":["1f600"],"fname":"1f600","uc":"1f600","isCanonical": true},":innocent:":{"unicode":["1f607"],"fname":"1f607","uc":"1f607","isCanonical": true},":smiling_imp:":{"unicode":["1f608"],"fname":"1f608","uc":"1f608","isCanonical": true},":sunglasses:":{"unicode":["1f60e"],"fname":"1f60e","uc":"1f60e","isCanonical": true},":neutral_face:":{"unicode":["1f610"],"fname":"1f610","uc":"1f610","isCanonical": true},":expressionless:":{"unicode":["1f611"],"fname":"1f611","uc":"1f611","isCanonical": true},":confused:":{"unicode":["1f615"],"fname":"1f615","uc":"1f615","isCanonical": true},":kissing:":{"unicode":["1f617"],"fname":"1f617","uc":"1f617","isCanonical": true},":kissing_smiling_eyes:":{"unicode":["1f619"],"fname":"1f619","uc":"1f619","isCanonical": true},":stuck_out_tongue:":{"unicode":["1f61b"],"fname":"1f61b","uc":"1f61b","isCanonical": true},":worried:":{"unicode":["1f61f"],"fname":"1f61f","uc":"1f61f","isCanonical": true},":frowning:":{"unicode":["1f626"],"fname":"1f626","uc":"1f626","isCanonical": true},":anguished:":{"unicode":["1f627"],"fname":"1f627","uc":"1f627","isCanonical": true},":grimacing:":{"unicode":["1f62c"],"fname":"1f62c","uc":"1f62c","isCanonical": true},":open_mouth:":{"unicode":["1f62e"],"fname":"1f62e","uc":"1f62e","isCanonical": true},":hushed:":{"unicode":["1f62f"],"fname":"1f62f","uc":"1f62f","isCanonical": true},":sleeping:":{"unicode":["1f634"],"fname":"1f634","uc":"1f634","isCanonical": true},":no_mouth:":{"unicode":["1f636"],"fname":"1f636","uc":"1f636","isCanonical": true},":helicopter:":{"unicode":["1f681"],"fname":"1f681","uc":"1f681","isCanonical": true},":steam_locomotive:":{"unicode":["1f682"],"fname":"1f682","uc":"1f682","isCanonical": true},":train2:":{"unicode":["1f686"],"fname":"1f686","uc":"1f686","isCanonical": true},":light_rail:":{"unicode":["1f688"],"fname":"1f688","uc":"1f688","isCanonical": true},":tram:":{"unicode":["1f68a"],"fname":"1f68a","uc":"1f68a","isCanonical": true},":oncoming_bus:":{"unicode":["1f68d"],"fname":"1f68d","uc":"1f68d","isCanonical": true},":trolleybus:":{"unicode":["1f68e"],"fname":"1f68e","uc":"1f68e","isCanonical": true},":minibus:":{"unicode":["1f690"],"fname":"1f690","uc":"1f690","isCanonical": true},":oncoming_police_car:":{"unicode":["1f694"],"fname":"1f694","uc":"1f694","isCanonical": true},":oncoming_taxi:":{"unicode":["1f696"],"fname":"1f696","uc":"1f696","isCanonical": true},":oncoming_automobile:":{"unicode":["1f698"],"fname":"1f698","uc":"1f698","isCanonical": true},":articulated_lorry:":{"unicode":["1f69b"],"fname":"1f69b","uc":"1f69b","isCanonical": true},":tractor:":{"unicode":["1f69c"],"fname":"1f69c","uc":"1f69c","isCanonical": true},":monorail:":{"unicode":["1f69d"],"fname":"1f69d","uc":"1f69d","isCanonical": true},":mountain_railway:":{"unicode":["1f69e"],"fname":"1f69e","uc":"1f69e","isCanonical": true},":suspension_railway:":{"unicode":["1f69f"],"fname":"1f69f","uc":"1f69f","isCanonical": true},":mountain_cableway:":{"unicode":["1f6a0"],"fname":"1f6a0","uc":"1f6a0","isCanonical": true},":aerial_tramway:":{"unicode":["1f6a1"],"fname":"1f6a1","uc":"1f6a1","isCanonical": true},":rowboat:":{"unicode":["1f6a3"],"fname":"1f6a3","uc":"1f6a3","isCanonical": true},":vertical_traffic_light:":{"unicode":["1f6a6"],"fname":"1f6a6","uc":"1f6a6","isCanonical": true},":put_litter_in_its_place:":{"unicode":["1f6ae"],"fname":"1f6ae","uc":"1f6ae","isCanonical": true},":do_not_litter:":{"unicode":["1f6af"],"fname":"1f6af","uc":"1f6af","isCanonical": true},":potable_water:":{"unicode":["1f6b0"],"fname":"1f6b0","uc":"1f6b0","isCanonical": true},":non-potable_water:":{"unicode":["1f6b1"],"fname":"1f6b1","uc":"1f6b1","isCanonical": true},":no_bicycles:":{"unicode":["1f6b3"],"fname":"1f6b3","uc":"1f6b3","isCanonical": true},":bicyclist:":{"unicode":["1f6b4"],"fname":"1f6b4","uc":"1f6b4","isCanonical": true},":mountain_bicyclist:":{"unicode":["1f6b5"],"fname":"1f6b5","uc":"1f6b5","isCanonical": true},":no_pedestrians:":{"unicode":["1f6b7"],"fname":"1f6b7","uc":"1f6b7","isCanonical": true},":children_crossing:":{"unicode":["1f6b8"],"fname":"1f6b8","uc":"1f6b8","isCanonical": true},":shower:":{"unicode":["1f6bf"],"fname":"1f6bf","uc":"1f6bf","isCanonical": true},":bathtub:":{"unicode":["1f6c1"],"fname":"1f6c1","uc":"1f6c1","isCanonical": true},":passport_control:":{"unicode":["1f6c2"],"fname":"1f6c2","uc":"1f6c2","isCanonical": true},":customs:":{"unicode":["1f6c3"],"fname":"1f6c3","uc":"1f6c3","isCanonical": true},":baggage_claim:":{"unicode":["1f6c4"],"fname":"1f6c4","uc":"1f6c4","isCanonical": true},":left_luggage:":{"unicode":["1f6c5"],"fname":"1f6c5","uc":"1f6c5","isCanonical": true},":earth_africa:":{"unicode":["1f30d"],"fname":"1f30d","uc":"1f30d","isCanonical": true},":earth_americas:":{"unicode":["1f30e"],"fname":"1f30e","uc":"1f30e","isCanonical": true},":globe_with_meridians:":{"unicode":["1f310"],"fname":"1f310","uc":"1f310","isCanonical": true},":waxing_crescent_moon:":{"unicode":["1f312"],"fname":"1f312","uc":"1f312","isCanonical": true},":waning_gibbous_moon:":{"unicode":["1f316"],"fname":"1f316","uc":"1f316","isCanonical": true},":last_quarter_moon:":{"unicode":["1f317"],"fname":"1f317","uc":"1f317","isCanonical": true},":waning_crescent_moon:":{"unicode":["1f318"],"fname":"1f318","uc":"1f318","isCanonical": true},":new_moon_with_face:":{"unicode":["1f31a"],"fname":"1f31a","uc":"1f31a","isCanonical": true},":last_quarter_moon_with_face:":{"unicode":["1f31c"],"fname":"1f31c","uc":"1f31c","isCanonical": true},":full_moon_with_face:":{"unicode":["1f31d"],"fname":"1f31d","uc":"1f31d","isCanonical": true},":sun_with_face:":{"unicode":["1f31e"],"fname":"1f31e","uc":"1f31e","isCanonical": true},":evergreen_tree:":{"unicode":["1f332"],"fname":"1f332","uc":"1f332","isCanonical": true},":deciduous_tree:":{"unicode":["1f333"],"fname":"1f333","uc":"1f333","isCanonical": true},":lemon:":{"unicode":["1f34b"],"fname":"1f34b","uc":"1f34b","isCanonical": true},":pear:":{"unicode":["1f350"],"fname":"1f350","uc":"1f350","isCanonical": true},":baby_bottle:":{"unicode":["1f37c"],"fname":"1f37c","uc":"1f37c","isCanonical": true},":horse_racing:":{"unicode":["1f3c7"],"fname":"1f3c7","uc":"1f3c7","isCanonical": true},":rugby_football:":{"unicode":["1f3c9"],"fname":"1f3c9","uc":"1f3c9","isCanonical": true},":european_post_office:":{"unicode":["1f3e4"],"fname":"1f3e4","uc":"1f3e4","isCanonical": true},":rat:":{"unicode":["1f400"],"fname":"1f400","uc":"1f400","isCanonical": true},":mouse2:":{"unicode":["1f401"],"fname":"1f401","uc":"1f401","isCanonical": true},":ox:":{"unicode":["1f402"],"fname":"1f402","uc":"1f402","isCanonical": true},":water_buffalo:":{"unicode":["1f403"],"fname":"1f403","uc":"1f403","isCanonical": true},":cow2:":{"unicode":["1f404"],"fname":"1f404","uc":"1f404","isCanonical": true},":tiger2:":{"unicode":["1f405"],"fname":"1f405","uc":"1f405","isCanonical": true},":leopard:":{"unicode":["1f406"],"fname":"1f406","uc":"1f406","isCanonical": true},":rabbit2:":{"unicode":["1f407"],"fname":"1f407","uc":"1f407","isCanonical": true},":cat2:":{"unicode":["1f408"],"fname":"1f408","uc":"1f408","isCanonical": true},":dragon:":{"unicode":["1f409"],"fname":"1f409","uc":"1f409","isCanonical": true},":crocodile:":{"unicode":["1f40a"],"fname":"1f40a","uc":"1f40a","isCanonical": true},":whale2:":{"unicode":["1f40b"],"fname":"1f40b","uc":"1f40b","isCanonical": true},":ram:":{"unicode":["1f40f"],"fname":"1f40f","uc":"1f40f","isCanonical": true},":goat:":{"unicode":["1f410"],"fname":"1f410","uc":"1f410","isCanonical": true},":rooster:":{"unicode":["1f413"],"fname":"1f413","uc":"1f413","isCanonical": true},":dog2:":{"unicode":["1f415"],"fname":"1f415","uc":"1f415","isCanonical": true},":pig2:":{"unicode":["1f416"],"fname":"1f416","uc":"1f416","isCanonical": true},":dromedary_camel:":{"unicode":["1f42a"],"fname":"1f42a","uc":"1f42a","isCanonical": true},":busts_in_silhouette:":{"unicode":["1f465"],"fname":"1f465","uc":"1f465","isCanonical": true},":two_men_holding_hands:":{"unicode":["1f46c"],"fname":"1f46c","uc":"1f46c","isCanonical": true},":two_women_holding_hands:":{"unicode":["1f46d"],"fname":"1f46d","uc":"1f46d","isCanonical": true},":thought_balloon:":{"unicode":["1f4ad"],"fname":"1f4ad","uc":"1f4ad","isCanonical": true},":euro:":{"unicode":["1f4b6"],"fname":"1f4b6","uc":"1f4b6","isCanonical": true},":pound:":{"unicode":["1f4b7"],"fname":"1f4b7","uc":"1f4b7","isCanonical": true},":mailbox_with_mail:":{"unicode":["1f4ec"],"fname":"1f4ec","uc":"1f4ec","isCanonical": true},":mailbox_with_no_mail:":{"unicode":["1f4ed"],"fname":"1f4ed","uc":"1f4ed","isCanonical": true},":postal_horn:":{"unicode":["1f4ef"],"fname":"1f4ef","uc":"1f4ef","isCanonical": true},":no_mobile_phones:":{"unicode":["1f4f5"],"fname":"1f4f5","uc":"1f4f5","isCanonical": true},":twisted_rightwards_arrows:":{"unicode":["1f500"],"fname":"1f500","uc":"1f500","isCanonical": true},":repeat:":{"unicode":["1f501"],"fname":"1f501","uc":"1f501","isCanonical": true},":repeat_one:":{"unicode":["1f502"],"fname":"1f502","uc":"1f502","isCanonical": true},":arrows_counterclockwise:":{"unicode":["1f504"],"fname":"1f504","uc":"1f504","isCanonical": true},":low_brightness:":{"unicode":["1f505"],"fname":"1f505","uc":"1f505","isCanonical": true},":high_brightness:":{"unicode":["1f506"],"fname":"1f506","uc":"1f506","isCanonical": true},":mute:":{"unicode":["1f507"],"fname":"1f507","uc":"1f507","isCanonical": true},":sound:":{"unicode":["1f509"],"fname":"1f509","uc":"1f509","isCanonical": true},":no_bell:":{"unicode":["1f515"],"fname":"1f515","uc":"1f515","isCanonical": true},":microscope:":{"unicode":["1f52c"],"fname":"1f52c","uc":"1f52c","isCanonical": true},":telescope:":{"unicode":["1f52d"],"fname":"1f52d","uc":"1f52d","isCanonical": true},":clock130:":{"unicode":["1f55c"],"fname":"1f55c","uc":"1f55c","isCanonical": true},":clock230:":{"unicode":["1f55d"],"fname":"1f55d","uc":"1f55d","isCanonical": true},":clock330:":{"unicode":["1f55e"],"fname":"1f55e","uc":"1f55e","isCanonical": true},":clock430:":{"unicode":["1f55f"],"fname":"1f55f","uc":"1f55f","isCanonical": true},":clock530:":{"unicode":["1f560"],"fname":"1f560","uc":"1f560","isCanonical": true},":clock630:":{"unicode":["1f561"],"fname":"1f561","uc":"1f561","isCanonical": true},":clock730:":{"unicode":["1f562"],"fname":"1f562","uc":"1f562","isCanonical": true},":clock830:":{"unicode":["1f563"],"fname":"1f563","uc":"1f563","isCanonical": true},":clock930:":{"unicode":["1f564"],"fname":"1f564","uc":"1f564","isCanonical": true},":clock1030:":{"unicode":["1f565"],"fname":"1f565","uc":"1f565","isCanonical": true},":clock1130:":{"unicode":["1f566"],"fname":"1f566","uc":"1f566","isCanonical": true},":clock1230:":{"unicode":["1f567"],"fname":"1f567","uc":"1f567","isCanonical": true},":speaker:":{"unicode":["1f508"],"fname":"1f508","uc":"1f508","isCanonical": true},":train:":{"unicode":["1f68b"],"fname":"1f68b","uc":"1f68b","isCanonical": true},":medal:":{"unicode":["1f3c5"],"fname":"1f3c5","uc":"1f3c5","isCanonical": true},":sports_medal:":{"unicode":["1f3c5"],"fname":"1f3c5","uc":"1f3c5","isCanonical": false},":flag_black:":{"unicode":["1f3f4"],"fname":"1f3f4","uc":"1f3f4","isCanonical": true},":waving_black_flag:":{"unicode":["1f3f4"],"fname":"1f3f4","uc":"1f3f4","isCanonical": false},":camera_with_flash:":{"unicode":["1f4f8"],"fname":"1f4f8","uc":"1f4f8","isCanonical": true},":sleeping_accommodation:":{"unicode":["1f6cc"],"fname":"1f6cc","uc":"1f6cc","isCanonical": true},":middle_finger:":{"unicode":["1f595"],"fname":"1f595","uc":"1f595","isCanonical": true},":reversed_hand_with_middle_finger_extended:":{"unicode":["1f595"],"fname":"1f595","uc":"1f595","isCanonical": false},":vulcan:":{"unicode":["1f596"],"fname":"1f596","uc":"1f596","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers:":{"unicode":["1f596"],"fname":"1f596","uc":"1f596","isCanonical": false},":slight_frown:":{"unicode":["1f641"],"fname":"1f641","uc":"1f641","isCanonical": true},":slightly_frowning_face:":{"unicode":["1f641"],"fname":"1f641","uc":"1f641","isCanonical": false},":slight_smile:":{"unicode":["1f642"],"fname":"1f642","uc":"1f642","isCanonical": true},":slightly_smiling_face:":{"unicode":["1f642"],"fname":"1f642","uc":"1f642","isCanonical": false},":airplane_departure:":{"unicode":["1f6eb"],"fname":"1f6eb","uc":"1f6eb","isCanonical": true},":airplane_arriving:":{"unicode":["1f6ec"],"fname":"1f6ec","uc":"1f6ec","isCanonical": true},":tone1:":{"unicode":["1f3fb"],"fname":"1f3fb","uc":"1f3fb","isCanonical": true},":tone2:":{"unicode":["1f3fc"],"fname":"1f3fc","uc":"1f3fc","isCanonical": true},":tone3:":{"unicode":["1f3fd"],"fname":"1f3fd","uc":"1f3fd","isCanonical": true},":tone4:":{"unicode":["1f3fe"],"fname":"1f3fe","uc":"1f3fe","isCanonical": true},":tone5:":{"unicode":["1f3ff"],"fname":"1f3ff","uc":"1f3ff","isCanonical": true},":upside_down:":{"unicode":["1f643"],"fname":"1f643","uc":"1f643","isCanonical": true},":upside_down_face:":{"unicode":["1f643"],"fname":"1f643","uc":"1f643","isCanonical": false},":money_mouth:":{"unicode":["1f911"],"fname":"1f911","uc":"1f911","isCanonical": true},":money_mouth_face:":{"unicode":["1f911"],"fname":"1f911","uc":"1f911","isCanonical": false},":nerd:":{"unicode":["1f913"],"fname":"1f913","uc":"1f913","isCanonical": true},":nerd_face:":{"unicode":["1f913"],"fname":"1f913","uc":"1f913","isCanonical": false},":hugging:":{"unicode":["1f917"],"fname":"1f917","uc":"1f917","isCanonical": true},":hugging_face:":{"unicode":["1f917"],"fname":"1f917","uc":"1f917","isCanonical": false},":rolling_eyes:":{"unicode":["1f644"],"fname":"1f644","uc":"1f644","isCanonical": true},":face_with_rolling_eyes:":{"unicode":["1f644"],"fname":"1f644","uc":"1f644","isCanonical": false},":thinking:":{"unicode":["1f914"],"fname":"1f914","uc":"1f914","isCanonical": true},":thinking_face:":{"unicode":["1f914"],"fname":"1f914","uc":"1f914","isCanonical": false},":zipper_mouth:":{"unicode":["1f910"],"fname":"1f910","uc":"1f910","isCanonical": true},":zipper_mouth_face:":{"unicode":["1f910"],"fname":"1f910","uc":"1f910","isCanonical": false},":thermometer_face:":{"unicode":["1f912"],"fname":"1f912","uc":"1f912","isCanonical": true},":face_with_thermometer:":{"unicode":["1f912"],"fname":"1f912","uc":"1f912","isCanonical": false},":head_bandage:":{"unicode":["1f915"],"fname":"1f915","uc":"1f915","isCanonical": true},":face_with_head_bandage:":{"unicode":["1f915"],"fname":"1f915","uc":"1f915","isCanonical": false},":robot:":{"unicode":["1f916"],"fname":"1f916","uc":"1f916","isCanonical": true},":robot_face:":{"unicode":["1f916"],"fname":"1f916","uc":"1f916","isCanonical": false},":lion_face:":{"unicode":["1f981"],"fname":"1f981","uc":"1f981","isCanonical": true},":lion:":{"unicode":["1f981"],"fname":"1f981","uc":"1f981","isCanonical": false},":unicorn:":{"unicode":["1f984"],"fname":"1f984","uc":"1f984","isCanonical": true},":unicorn_face:":{"unicode":["1f984"],"fname":"1f984","uc":"1f984","isCanonical": false},":scorpion:":{"unicode":["1f982"],"fname":"1f982","uc":"1f982","isCanonical": true},":crab:":{"unicode":["1f980"],"fname":"1f980","uc":"1f980","isCanonical": true},":turkey:":{"unicode":["1f983"],"fname":"1f983","uc":"1f983","isCanonical": true},":cheese:":{"unicode":["1f9c0"],"fname":"1f9c0","uc":"1f9c0","isCanonical": true},":cheese_wedge:":{"unicode":["1f9c0"],"fname":"1f9c0","uc":"1f9c0","isCanonical": false},":hotdog:":{"unicode":["1f32d"],"fname":"1f32d","uc":"1f32d","isCanonical": true},":hot_dog:":{"unicode":["1f32d"],"fname":"1f32d","uc":"1f32d","isCanonical": false},":taco:":{"unicode":["1f32e"],"fname":"1f32e","uc":"1f32e","isCanonical": true},":burrito:":{"unicode":["1f32f"],"fname":"1f32f","uc":"1f32f","isCanonical": true},":popcorn:":{"unicode":["1f37f"],"fname":"1f37f","uc":"1f37f","isCanonical": true},":champagne:":{"unicode":["1f37e"],"fname":"1f37e","uc":"1f37e","isCanonical": true},":bottle_with_popping_cork:":{"unicode":["1f37e"],"fname":"1f37e","uc":"1f37e","isCanonical": false},":bow_and_arrow:":{"unicode":["1f3f9"],"fname":"1f3f9","uc":"1f3f9","isCanonical": true},":archery:":{"unicode":["1f3f9"],"fname":"1f3f9","uc":"1f3f9","isCanonical": false},":amphora:":{"unicode":["1f3fa"],"fname":"1f3fa","uc":"1f3fa","isCanonical": true},":place_of_worship:":{"unicode":["1f6d0"],"fname":"1f6d0","uc":"1f6d0","isCanonical": true},":worship_symbol:":{"unicode":["1f6d0"],"fname":"1f6d0","uc":"1f6d0","isCanonical": false},":kaaba:":{"unicode":["1f54b"],"fname":"1f54b","uc":"1f54b","isCanonical": true},":mosque:":{"unicode":["1f54c"],"fname":"1f54c","uc":"1f54c","isCanonical": true},":synagogue:":{"unicode":["1f54d"],"fname":"1f54d","uc":"1f54d","isCanonical": true},":menorah:":{"unicode":["1f54e"],"fname":"1f54e","uc":"1f54e","isCanonical": true},":prayer_beads:":{"unicode":["1f4ff"],"fname":"1f4ff","uc":"1f4ff","isCanonical": true},":cricket:":{"unicode":["1f3cf"],"fname":"1f3cf","uc":"1f3cf","isCanonical": true},":cricket_bat_ball:":{"unicode":["1f3cf"],"fname":"1f3cf","uc":"1f3cf","isCanonical": false},":volleyball:":{"unicode":["1f3d0"],"fname":"1f3d0","uc":"1f3d0","isCanonical": true},":field_hockey:":{"unicode":["1f3d1"],"fname":"1f3d1","uc":"1f3d1","isCanonical": true},":hockey:":{"unicode":["1f3d2"],"fname":"1f3d2","uc":"1f3d2","isCanonical": true},":ping_pong:":{"unicode":["1f3d3"],"fname":"1f3d3","uc":"1f3d3","isCanonical": true},":table_tennis:":{"unicode":["1f3d3"],"fname":"1f3d3","uc":"1f3d3","isCanonical": false},":badminton:":{"unicode":["1f3f8"],"fname":"1f3f8","uc":"1f3f8","isCanonical": true},":drum:":{"unicode":["1f941"],"fname":"1f941","uc":"1f941","isCanonical": true},":drum_with_drumsticks:":{"unicode":["1f941"],"fname":"1f941","uc":"1f941","isCanonical": false},":shrimp:":{"unicode":["1f990"],"fname":"1f990","uc":"1f990","isCanonical": true},":squid:":{"unicode":["1f991"],"fname":"1f991","uc":"1f991","isCanonical": true},":egg:":{"unicode":["1f95a"],"fname":"1f95a","uc":"1f95a","isCanonical": true},":milk:":{"unicode":["1f95b"],"fname":"1f95b","uc":"1f95b","isCanonical": true},":glass_of_milk:":{"unicode":["1f95b"],"fname":"1f95b","uc":"1f95b","isCanonical": false},":peanuts:":{"unicode":["1f95c"],"fname":"1f95c","uc":"1f95c","isCanonical": true},":shelled_peanut:":{"unicode":["1f95c"],"fname":"1f95c","uc":"1f95c","isCanonical": false},":kiwi:":{"unicode":["1f95d"],"fname":"1f95d","uc":"1f95d","isCanonical": true},":kiwifruit:":{"unicode":["1f95d"],"fname":"1f95d","uc":"1f95d","isCanonical": false},":pancakes:":{"unicode":["1f95e"],"fname":"1f95e","uc":"1f95e","isCanonical": true},":regional_indicator_w:":{"unicode":["1f1fc"],"fname":"1f1fc","uc":"1f1fc","isCanonical": true},":regional_indicator_v:":{"unicode":["1f1fb"],"fname":"1f1fb","uc":"1f1fb","isCanonical": true},":regional_indicator_u:":{"unicode":["1f1fa"],"fname":"1f1fa","uc":"1f1fa","isCanonical": true},":regional_indicator_t:":{"unicode":["1f1f9"],"fname":"1f1f9","uc":"1f1f9","isCanonical": true},":regional_indicator_s:":{"unicode":["1f1f8"],"fname":"1f1f8","uc":"1f1f8","isCanonical": true},":regional_indicator_r:":{"unicode":["1f1f7"],"fname":"1f1f7","uc":"1f1f7","isCanonical": true},":regional_indicator_q:":{"unicode":["1f1f6"],"fname":"1f1f6","uc":"1f1f6","isCanonical": true},":regional_indicator_p:":{"unicode":["1f1f5"],"fname":"1f1f5","uc":"1f1f5","isCanonical": true},":regional_indicator_o:":{"unicode":["1f1f4"],"fname":"1f1f4","uc":"1f1f4","isCanonical": true},":regional_indicator_n:":{"unicode":["1f1f3"],"fname":"1f1f3","uc":"1f1f3","isCanonical": true},":regional_indicator_m:":{"unicode":["1f1f2"],"fname":"1f1f2","uc":"1f1f2","isCanonical": true},":regional_indicator_l:":{"unicode":["1f1f1"],"fname":"1f1f1","uc":"1f1f1","isCanonical": true},":regional_indicator_k:":{"unicode":["1f1f0"],"fname":"1f1f0","uc":"1f1f0","isCanonical": true},":regional_indicator_j:":{"unicode":["1f1ef"],"fname":"1f1ef","uc":"1f1ef","isCanonical": true},":regional_indicator_i:":{"unicode":["1f1ee"],"fname":"1f1ee","uc":"1f1ee","isCanonical": true},":regional_indicator_h:":{"unicode":["1f1ed"],"fname":"1f1ed","uc":"1f1ed","isCanonical": true},":regional_indicator_g:":{"unicode":["1f1ec"],"fname":"1f1ec","uc":"1f1ec","isCanonical": true},":regional_indicator_f:":{"unicode":["1f1eb"],"fname":"1f1eb","uc":"1f1eb","isCanonical": true},":regional_indicator_e:":{"unicode":["1f1ea"],"fname":"1f1ea","uc":"1f1ea","isCanonical": true},":regional_indicator_d:":{"unicode":["1f1e9"],"fname":"1f1e9","uc":"1f1e9","isCanonical": true},":regional_indicator_c:":{"unicode":["1f1e8"],"fname":"1f1e8","uc":"1f1e8","isCanonical": true},":regional_indicator_b:":{"unicode":["1f1e7"],"fname":"1f1e7","uc":"1f1e7","isCanonical": true},":regional_indicator_a:":{"unicode":["1f1e6"],"fname":"1f1e6","uc":"1f1e6","isCanonical": true},":fast_forward:":{"unicode":["23e9"],"fname":"23e9","uc":"23e9","isCanonical": true},":rewind:":{"unicode":["23ea"],"fname":"23ea","uc":"23ea","isCanonical": true},":arrow_double_up:":{"unicode":["23eb"],"fname":"23eb","uc":"23eb","isCanonical": true},":arrow_double_down:":{"unicode":["23ec"],"fname":"23ec","uc":"23ec","isCanonical": true},":alarm_clock:":{"unicode":["23f0"],"fname":"23f0","uc":"23f0","isCanonical": true},":hourglass_flowing_sand:":{"unicode":["23f3"],"fname":"23f3","uc":"23f3","isCanonical": true},":ophiuchus:":{"unicode":["26ce"],"fname":"26ce","uc":"26ce","isCanonical": true},":white_check_mark:":{"unicode":["2705"],"fname":"2705","uc":"2705","isCanonical": true},":fist:":{"unicode":["270a"],"fname":"270a","uc":"270a","isCanonical": true},":raised_hand:":{"unicode":["270b"],"fname":"270b","uc":"270b","isCanonical": true},":sparkles:":{"unicode":["2728"],"fname":"2728","uc":"2728","isCanonical": true},":x:":{"unicode":["274c"],"fname":"274c","uc":"274c","isCanonical": true},":negative_squared_cross_mark:":{"unicode":["274e"],"fname":"274e","uc":"274e","isCanonical": true},":question:":{"unicode":["2753"],"fname":"2753","uc":"2753","isCanonical": true},":grey_question:":{"unicode":["2754"],"fname":"2754","uc":"2754","isCanonical": true},":grey_exclamation:":{"unicode":["2755"],"fname":"2755","uc":"2755","isCanonical": true},":heavy_plus_sign:":{"unicode":["2795"],"fname":"2795","uc":"2795","isCanonical": true},":heavy_minus_sign:":{"unicode":["2796"],"fname":"2796","uc":"2796","isCanonical": true},":heavy_division_sign:":{"unicode":["2797"],"fname":"2797","uc":"2797","isCanonical": true},":curly_loop:":{"unicode":["27b0"],"fname":"27b0","uc":"27b0","isCanonical": true},":loop:":{"unicode":["27bf"],"fname":"27bf","uc":"27bf","isCanonical": true}};
// ns.shortnames = Object.keys(ns.emojioneList).map(function(emoji) {
// return emoji.replace(/[+]/g, "\\$&");
// }).join('|');
@@ -23,11 +23,11 @@
':D':'1f603',
':-D':'1f603',
'=D':'1f603',
- ':)':'1f604',
- ':-)':'1f604',
- '=]':'1f604',
- '=)':'1f604',
- ':]':'1f604',
+ ':)':'1f642',
+ ':-)':'1f642',
+ '=]':'1f642',
+ '=)':'1f642',
+ ':]':'1f642',
'\':)':'1f605',
'\':-)':'1f605',
'\'=)':'1f605',
@@ -145,21 +145,22 @@
};
ns.asciiRegexp = '(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
// javascript escapes here must be ordered from largest length to shortest
- ns.unicodeRegexp = '(\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFE|\\u270B\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|4\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|8\\uFE0F\\u20E3|7\\uFE0F\\u20E3|6\\uFE0F\\u20E3|5\\uFE0F\\u20E3|9\\uFE0F\\u20E3|3\\uFE0F\\u20E3|2\\uFE0F\\u20E3|1\\uFE0F\\u20E3|0\\uFE0F\\u20E3|#\\uFE0F\\u20E3|\\uD83C\\uDF61|\\u2198\\uFE0F|\\u2199\\uFE0F|\\uD83C\\uDFF8|\\u2600\\uFE0F|\\u2601\\uFE0F|\\uD83C\\uDFD3|\\uD83C\\uDFD2|\\uD83C\\uDFD1|\\u2611\\uFE0F|\\u2614\\uFE0F|\\u2615\\uFE0F|\\uD83C\\uDFD0|\\uD83C\\uDFCF|\\uD83D\\uDCFF|\\uD83D\\uDD4E|\\uD83D\\uDD4D|\\uD83D\\uDD4C|\\uD83D\\uDD4B|\\u2648\\uFE0F|\\u2649\\uFE0F|\\u2650\\uFE0F|\\u2651\\uFE0F|\\u2652\\uFE0F|\\u2653\\uFE0F|\\u2660\\uFE0F|\\u2663\\uFE0F|\\u2665\\uFE0F|\\u2666\\uFE0F|\\u2668\\uFE0F|\\uD83D\\uDED0|\\u2693\\uFE0F|\\uD83C\\uDFFA|\\uD83C\\uDFF9|\\uD83C\\uDF7E|\\uD83C\\uDF7F|\\u2702\\uFE0F|\\uD83C\\uDF2F|\\u2708\\uFE0F|\\u2709\\uFE0F|\\u2712\\uFE0F|\\u2714\\uFE0F|\\u2716\\uFE0F|\\uD83C\\uDF2E|\\uD83C\\uDF2D|\\u2733\\uFE0F|\\u2734\\uFE0F|\\u2744\\uFE0F|\\u2747\\uFE0F|\\uD83E\\uDDC0|\\uD83E\\uDD83|\\uD83E\\uDD80|\\u2757\\uFE0F|\\uD83E\\uDD82|\\u2764\\uFE0F|\\uD83E\\uDD84|\\uD83E\\uDD81|\\uD83E\\uDD16|\\u2934\\uFE0F|\\u2935\\uFE0F|\\uD83E\\uDD15|\\u3297\\uFE0F|\\u3299\\uFE0F|\\u2049\\uFE0F|\\u2139\\uFE0F|\\u2194\\uFE0F|\\u2195\\uFE0F|\\u2196\\uFE0F|\\u2197\\uFE0F|\\u00A9\\uFE0F|\\u00AE\\uFE0F|\\u203C\\uFE0F|\\u21A9\\uFE0F|\\u21AA\\uFE0F|\\u231A\\uFE0F|\\u231B\\uFE0F|\\u24C2\\uFE0F|\\u25AA\\uFE0F|\\u25AB\\uFE0F|\\u25B6\\uFE0F|\\u25C0\\uFE0F|\\u25FB\\uFE0F|\\u25FC\\uFE0F|\\u25FD\\uFE0F|\\u25FE\\uFE0F|\\u260E\\uFE0F|\\u261D\\uFE0F|\\u263A\\uFE0F|\\u264A\\uFE0F|\\u264B\\uFE0F|\\u264C\\uFE0F|\\u264D\\uFE0F|\\u264E\\uFE0F|\\u264F\\uFE0F|\\u267B\\uFE0F|\\u267F\\uFE0F|\\u26A0\\uFE0F|\\u26A1\\uFE0F|\\u26AA\\uFE0F|\\u26AB\\uFE0F|\\u26BD\\uFE0F|\\u26BE\\uFE0F|\\u26C4\\uFE0F|\\u26C5\\uFE0F|\\u26D4\\uFE0F|\\u26EA\\uFE0F|\\u26F2\\uFE0F|\\u26F3\\uFE0F|\\u26F5\\uFE0F|\\u26FA\\uFE0F|\\u26FD\\uFE0F|\\u270C\\uFE0F|\\u270F\\uFE0F|\\u27A1\\uFE0F|\\u2B05\\uFE0F|\\u2B06\\uFE0F|\\u2B07\\uFE0F|\\u2B1B\\uFE0F|\\u2B1C\\uFE0F|\\u2B50\\uFE0F|\\u2B55\\uFE0F|\\u303D\\uFE0F|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\u2122\\uFE0F|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDF9E|\\uD83C\\uDF9F|\\uD83C\\uDFC5|\\uD83C\\uDFCB|\\uD83C\\uDFCC|\\uD83C\\uDFCD|\\uD83C\\uDFCE|\\uD83C\\uDF96|\\uD83C\\uDF97|\\uD83C\\uDF36|\\uD83C\\uDF27|\\uD83C\\uDF28|\\uD83C\\uDF29|\\uD83C\\uDF2A|\\uD83C\\uDF2B|\\uD83C\\uDF2C|\\uD83D\\uDC3F|\\uD83D\\uDD77|\\uD83D\\uDD78|\\uD83C\\uDF21|\\uD83C\\uDF99|\\uD83C\\uDF9A|\\uD83C\\uDF9B|\\uD83C\\uDFF3|\\uD83C\\uDFF4|\\uD83C\\uDFF5|\\uD83C\\uDFF7|\\uD83D\\uDCF8|\\uD83D\\uDCFD|\\uD83D\\uDD49|\\uD83D\\uDD4A|\\uD83D\\uDD6F|\\uD83D\\uDD70|\\uD83D\\uDD73|\\uD83D\\uDD76|\\uD83D\\uDD79|\\uD83D\\uDD87|\\uD83D\\uDD8A|\\uD83D\\uDD8B|\\uD83D\\uDD8C|\\uD83D\\uDD8D|\\uD83D\\uDDA5|\\uD83D\\uDDA8|\\uD83D\\uDDB2|\\uD83D\\uDDBC|\\uD83D\\uDDC2|\\uD83D\\uDDC3|\\uD83D\\uDDC4|\\uD83D\\uDDD1|\\uD83D\\uDDD2|\\uD83D\\uDDD3|\\uD83D\\uDDDC|\\uD83D\\uDDDD|\\uD83D\\uDDDE|\\uD83D\\uDDE1|\\uD83D\\uDDE3|\\uD83D\\uDDEF|\\uD83D\\uDDF3|\\uD83D\\uDDFA|\\uD83D\\uDECC|\\uD83D\\uDEE0|\\uD83D\\uDEE1|\\uD83D\\uDEE2|\\uD83D\\uDEF0|\\uD83C\\uDF7D|\\uD83D\\uDC41|\\uD83D\\uDD74|\\uD83D\\uDD75|\\uD83D\\uDD90|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83C\\uDFD4|\\uD83C\\uDFD5|\\uD83C\\uDFD6|\\uD83C\\uDFD7|\\uD83C\\uDFD8|\\uD83C\\uDFD9|\\uD83C\\uDFDA|\\uD83C\\uDFDB|\\uD83C\\uDFDC|\\uD83C\\uDFDD|\\uD83C\\uDFDE|\\uD83C\\uDFDF|\\uD83D\\uDECB|\\uD83D\\uDECD|\\uD83D\\uDECE|\\uD83D\\uDECF|\\uD83D\\uDEE3|\\uD83D\\uDEE4|\\uD83D\\uDEE5|\\uD83D\\uDEE9|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83D\\uDEF3|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83C\\uDF24|\\uD83C\\uDF25|\\uD83C\\uDF26|\\uD83D\\uDDB1|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\uD83E\\uDD12|\\u270A|\\u3030|\\u2796|\\u2795|\\u2763|\\u2755|\\u2754|\\u2753|\\u2728|\\u2721|\\u2705|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u2328|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2797|\\u270B|\\u274C|\\u274E|\\u27B0|\\u27BF|\\u271D|\\u270D|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u262A|\\u262E|\\u262F|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9)';
- ns.jsEscapeMap = {"\u2049\uFE0F":"2049","\u2122\uFE0F":"2122","\u2139\uFE0F":"2139","\u2194\uFE0F":"2194","\u2195\uFE0F":"2195","\u2196\uFE0F":"2196","\u2197\uFE0F":"2197","\u2198\uFE0F":"2198","\u2199\uFE0F":"2199","\u2328":"2328","\u2600\uFE0F":"2600","\u2601\uFE0F":"2601","\u2602":"2602","\u2603":"2603","\u2604":"2604","\u2611\uFE0F":"2611","\u2614\uFE0F":"2614","\u2615\uFE0F":"2615","\u2618":"2618","\u2620":"2620","\u2622":"2622","\u2623":"2623","\u2626":"2626","\u2638":"2638","\u2639":"2639","\u2648\uFE0F":"2648","\u2649\uFE0F":"2649","\u2650\uFE0F":"2650","\u2651\uFE0F":"2651","\u2652\uFE0F":"2652","\u2653\uFE0F":"2653","\u2660\uFE0F":"2660","\u2663\uFE0F":"2663","\u2665\uFE0F":"2665","\u2666\uFE0F":"2666","\u2668\uFE0F":"2668","\u2692":"2692","\u2693\uFE0F":"2693","\u2694":"2694","\u2696":"2696","\u2697":"2697","\u2699":"2699","\u2702\uFE0F":"2702","\u2705":"2705","\u2708\uFE0F":"2708","\u2709\uFE0F":"2709","\u2712\uFE0F":"2712","\u2714\uFE0F":"2714","\u2716\uFE0F":"2716","\u2721":"2721","\u2728":"2728","\u2733\uFE0F":"2733","\u2734\uFE0F":"2734","\u2744\uFE0F":"2744","\u2747\uFE0F":"2747","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2757\uFE0F":"2757","\u2763":"2763","\u2764\uFE0F":"2764","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u2934\uFE0F":"2934","\u2935\uFE0F":"2935","\u3030":"3030","\u3297\uFE0F":"3297","\u3299\uFE0F":"3299","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC69":"1f469-2764-1f48b-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68":"1f468-2764-1f48b-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-1f468-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-1f468-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-1f468-1f467-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-1f469-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-1f469-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-1f469-1f467-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f469-1f469-1f466-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f469-1f469-1f467-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f469-1f469-1f467-1f467","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC69":"1f469-2764-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC68":"1f468-2764-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66":"1f468-1f468-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67":"1f468-1f468-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f468-1f469-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66":"1f469-1f469-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f469-1f469-1f467","\uD83D\uDC41\u200D\uD83D\uDDE8":"1f441-1f5e8","#\uFE0F\u20E3":"0023-20e3","0\uFE0F\u20E3":"0030-20e3","1\uFE0F\u20E3":"0031-20e3","2\uFE0F\u20E3":"0032-20e3","3\uFE0F\u20E3":"0033-20e3","4\uFE0F\u20E3":"0034-20e3","5\uFE0F\u20E3":"0035-20e3","6\uFE0F\u20E3":"0036-20e3","7\uFE0F\u20E3":"0037-20e3","8\uFE0F\u20E3":"0038-20e3","9\uFE0F\u20E3":"0039-20e3","*\uFE0F\u20E3":"002a-20e3","\uD83E\uDD18\uD83C\uDFFF":"1f918-1f3ff","\uD83E\uDD18\uD83C\uDFFE":"1f918-1f3fe","\uD83E\uDD18\uD83C\uDFFD":"1f918-1f3fd","\uD83E\uDD18\uD83C\uDFFC":"1f918-1f3fc","\uD83E\uDD18\uD83C\uDFFB":"1f918-1f3fb","\uD83D\uDEC0\uD83C\uDFFF":"1f6c0-1f3ff","\uD83D\uDEC0\uD83C\uDFFE":"1f6c0-1f3fe","\uD83D\uDEC0\uD83C\uDFFD":"1f6c0-1f3fd","\uD83D\uDEC0\uD83C\uDFFC":"1f6c0-1f3fc","\uD83D\uDEC0\uD83C\uDFFB":"1f6c0-1f3fb","\uD83D\uDEB6\uD83C\uDFFF":"1f6b6-1f3ff","\uD83D\uDEB6\uD83C\uDFFE":"1f6b6-1f3fe","\uD83D\uDEB6\uD83C\uDFFD":"1f6b6-1f3fd","\uD83D\uDEB6\uD83C\uDFFC":"1f6b6-1f3fc","\uD83D\uDEB6\uD83C\uDFFB":"1f6b6-1f3fb","\uD83D\uDEB5\uD83C\uDFFF":"1f6b5-1f3ff","\uD83D\uDEB5\uD83C\uDFFE":"1f6b5-1f3fe","\uD83D\uDEB5\uD83C\uDFFD":"1f6b5-1f3fd","\uD83D\uDEB5\uD83C\uDFFC":"1f6b5-1f3fc","\uD83D\uDEB5\uD83C\uDFFB":"1f6b5-1f3fb","\uD83D\uDEB4\uD83C\uDFFF":"1f6b4-1f3ff","\uD83D\uDEB4\uD83C\uDFFE":"1f6b4-1f3fe","\uD83D\uDEB4\uD83C\uDFFD":"1f6b4-1f3fd","\uD83D\uDEB4\uD83C\uDFFC":"1f6b4-1f3fc","\uD83D\uDEB4\uD83C\uDFFB":"1f6b4-1f3fb","\uD83D\uDEA3\uD83C\uDFFF":"1f6a3-1f3ff","\uD83D\uDEA3\uD83C\uDFFE":"1f6a3-1f3fe","\uD83D\uDEA3\uD83C\uDFFD":"1f6a3-1f3fd","\uD83D\uDEA3\uD83C\uDFFC":"1f6a3-1f3fc","\uD83D\uDEA3\uD83C\uDFFB":"1f6a3-1f3fb","\uD83D\uDE4F\uD83C\uDFFF":"1f64f-1f3ff","\uD83D\uDE4F\uD83C\uDFFE":"1f64f-1f3fe","\uD83D\uDE4F\uD83C\uDFFD":"1f64f-1f3fd","\uD83D\uDE4F\uD83C\uDFFC":"1f64f-1f3fc","\uD83D\uDE4F\uD83C\uDFFB":"1f64f-1f3fb","\uD83D\uDE4E\uD83C\uDFFF":"1f64e-1f3ff","\uD83D\uDE4E\uD83C\uDFFE":"1f64e-1f3fe","\uD83D\uDE4E\uD83C\uDFFD":"1f64e-1f3fd","\uD83D\uDE4E\uD83C\uDFFC":"1f64e-1f3fc","\uD83D\uDE4E\uD83C\uDFFB":"1f64e-1f3fb","\uD83D\uDE4D\uD83C\uDFFF":"1f64d-1f3ff","\uD83D\uDE4D\uD83C\uDFFE":"1f64d-1f3fe","\uD83D\uDE4D\uD83C\uDFFD":"1f64d-1f3fd","\uD83D\uDE4D\uD83C\uDFFC":"1f64d-1f3fc","\uD83D\uDE4D\uD83C\uDFFB":"1f64d-1f3fb","\uD83D\uDE4C\uD83C\uDFFF":"1f64c-1f3ff","\uD83D\uDE4C\uD83C\uDFFE":"1f64c-1f3fe","\uD83D\uDE4C\uD83C\uDFFD":"1f64c-1f3fd","\uD83D\uDE4C\uD83C\uDFFC":"1f64c-1f3fc","\uD83D\uDE4C\uD83C\uDFFB":"1f64c-1f3fb","\uD83D\uDE4B\uD83C\uDFFF":"1f64b-1f3ff","\uD83D\uDE4B\uD83C\uDFFE":"1f64b-1f3fe","\uD83D\uDE4B\uD83C\uDFFD":"1f64b-1f3fd","\uD83D\uDE4B\uD83C\uDFFC":"1f64b-1f3fc","\uD83D\uDE4B\uD83C\uDFFB":"1f64b-1f3fb","\uD83D\uDE47\uD83C\uDFFF":"1f647-1f3ff","\uD83D\uDE47\uD83C\uDFFE":"1f647-1f3fe","\uD83D\uDE47\uD83C\uDFFD":"1f647-1f3fd","\uD83D\uDE47\uD83C\uDFFC":"1f647-1f3fc","\uD83D\uDE47\uD83C\uDFFB":"1f647-1f3fb","\uD83D\uDE46\uD83C\uDFFF":"1f646-1f3ff","\uD83D\uDE46\uD83C\uDFFE":"1f646-1f3fe","\uD83D\uDE46\uD83C\uDFFD":"1f646-1f3fd","\uD83D\uDE46\uD83C\uDFFC":"1f646-1f3fc","\uD83D\uDE46\uD83C\uDFFB":"1f646-1f3fb","\uD83D\uDE45\uD83C\uDFFF":"1f645-1f3ff","\uD83D\uDE45\uD83C\uDFFE":"1f645-1f3fe","\uD83D\uDE45\uD83C\uDFFD":"1f645-1f3fd","\uD83D\uDE45\uD83C\uDFFC":"1f645-1f3fc","\uD83D\uDE45\uD83C\uDFFB":"1f645-1f3fb","\uD83D\uDD96\uD83C\uDFFF":"1f596-1f3ff","\uD83D\uDD96\uD83C\uDFFE":"1f596-1f3fe","\uD83D\uDD96\uD83C\uDFFD":"1f596-1f3fd","\uD83D\uDD96\uD83C\uDFFC":"1f596-1f3fc","\uD83D\uDD96\uD83C\uDFFB":"1f596-1f3fb","\uD83D\uDD95\uD83C\uDFFF":"1f595-1f3ff","\uD83D\uDD95\uD83C\uDFFE":"1f595-1f3fe","\uD83D\uDD95\uD83C\uDFFD":"1f595-1f3fd","\uD83D\uDD95\uD83C\uDFFC":"1f595-1f3fc","\uD83D\uDD95\uD83C\uDFFB":"1f595-1f3fb","\uD83D\uDD90\uD83C\uDFFF":"1f590-1f3ff","\uD83D\uDD90\uD83C\uDFFE":"1f590-1f3fe","\uD83D\uDD90\uD83C\uDFFD":"1f590-1f3fd","\uD83D\uDD90\uD83C\uDFFC":"1f590-1f3fc","\uD83D\uDD90\uD83C\uDFFB":"1f590-1f3fb","\uD83D\uDD75\uD83C\uDFFF":"1f575-1f3ff","\uD83D\uDD75\uD83C\uDFFE":"1f575-1f3fe","\uD83D\uDD75\uD83C\uDFFD":"1f575-1f3fd","\uD83D\uDD75\uD83C\uDFFC":"1f575-1f3fc","\uD83D\uDD75\uD83C\uDFFB":"1f575-1f3fb","\uD83D\uDCAA\uD83C\uDFFF":"1f4aa-1f3ff","\uD83D\uDCAA\uD83C\uDFFE":"1f4aa-1f3fe","\uD83D\uDCAA\uD83C\uDFFD":"1f4aa-1f3fd","\uD83D\uDCAA\uD83C\uDFFC":"1f4aa-1f3fc","\uD83D\uDCAA\uD83C\uDFFB":"1f4aa-1f3fb","\uD83D\uDC87\uD83C\uDFFF":"1f487-1f3ff","\uD83D\uDC87\uD83C\uDFFE":"1f487-1f3fe","\uD83D\uDC87\uD83C\uDFFD":"1f487-1f3fd","\uD83D\uDC87\uD83C\uDFFC":"1f487-1f3fc","\uD83D\uDC87\uD83C\uDFFB":"1f487-1f3fb","\uD83D\uDC86\uD83C\uDFFF":"1f486-1f3ff","\uD83D\uDC86\uD83C\uDFFE":"1f486-1f3fe","\uD83D\uDC86\uD83C\uDFFD":"1f486-1f3fd","\uD83D\uDC86\uD83C\uDFFC":"1f486-1f3fc","\uD83D\uDC86\uD83C\uDFFB":"1f486-1f3fb","\uD83D\uDC85\uD83C\uDFFF":"1f485-1f3ff","\uD83D\uDC85\uD83C\uDFFE":"1f485-1f3fe","\uD83D\uDC85\uD83C\uDFFD":"1f485-1f3fd","\uD83D\uDC85\uD83C\uDFFC":"1f485-1f3fc","\uD83D\uDC85\uD83C\uDFFB":"1f485-1f3fb","\uD83D\uDC83\uD83C\uDFFF":"1f483-1f3ff","\uD83D\uDC83\uD83C\uDFFE":"1f483-1f3fe","\uD83D\uDC83\uD83C\uDFFD":"1f483-1f3fd","\uD83D\uDC83\uD83C\uDFFC":"1f483-1f3fc","\uD83D\uDC83\uD83C\uDFFB":"1f483-1f3fb","\uD83D\uDC82\uD83C\uDFFF":"1f482-1f3ff","\uD83D\uDC82\uD83C\uDFFE":"1f482-1f3fe","\uD83D\uDC82\uD83C\uDFFD":"1f482-1f3fd","\uD83D\uDC82\uD83C\uDFFC":"1f482-1f3fc","\uD83D\uDC82\uD83C\uDFFB":"1f482-1f3fb","\uD83D\uDC81\uD83C\uDFFF":"1f481-1f3ff","\uD83D\uDC81\uD83C\uDFFE":"1f481-1f3fe","\uD83D\uDC81\uD83C\uDFFD":"1f481-1f3fd","\uD83D\uDC81\uD83C\uDFFC":"1f481-1f3fc","\uD83D\uDC81\uD83C\uDFFB":"1f481-1f3fb","\uD83D\uDC7C\uD83C\uDFFF":"1f47c-1f3ff","\uD83D\uDC7C\uD83C\uDFFE":"1f47c-1f3fe","\uD83D\uDC7C\uD83C\uDFFD":"1f47c-1f3fd","\uD83D\uDC7C\uD83C\uDFFC":"1f47c-1f3fc","\uD83D\uDC7C\uD83C\uDFFB":"1f47c-1f3fb","\uD83D\uDC78\uD83C\uDFFF":"1f478-1f3ff","\uD83D\uDC78\uD83C\uDFFE":"1f478-1f3fe","\uD83D\uDC78\uD83C\uDFFD":"1f478-1f3fd","\uD83D\uDC78\uD83C\uDFFC":"1f478-1f3fc","\uD83D\uDC78\uD83C\uDFFB":"1f478-1f3fb","\uD83D\uDC77\uD83C\uDFFF":"1f477-1f3ff","\uD83D\uDC77\uD83C\uDFFE":"1f477-1f3fe","\uD83D\uDC77\uD83C\uDFFD":"1f477-1f3fd","\uD83D\uDC77\uD83C\uDFFC":"1f477-1f3fc","\uD83D\uDC77\uD83C\uDFFB":"1f477-1f3fb","\uD83D\uDC76\uD83C\uDFFF":"1f476-1f3ff","\uD83D\uDC76\uD83C\uDFFE":"1f476-1f3fe","\uD83D\uDC76\uD83C\uDFFD":"1f476-1f3fd","\uD83D\uDC76\uD83C\uDFFC":"1f476-1f3fc","\uD83D\uDC76\uD83C\uDFFB":"1f476-1f3fb","\uD83D\uDC75\uD83C\uDFFF":"1f475-1f3ff","\uD83D\uDC75\uD83C\uDFFE":"1f475-1f3fe","\uD83D\uDC75\uD83C\uDFFD":"1f475-1f3fd","\uD83D\uDC75\uD83C\uDFFC":"1f475-1f3fc","\uD83D\uDC75\uD83C\uDFFB":"1f475-1f3fb","\uD83D\uDC74\uD83C\uDFFF":"1f474-1f3ff","\uD83D\uDC74\uD83C\uDFFE":"1f474-1f3fe","\uD83D\uDC74\uD83C\uDFFD":"1f474-1f3fd","\uD83D\uDC74\uD83C\uDFFC":"1f474-1f3fc","\uD83D\uDC74\uD83C\uDFFB":"1f474-1f3fb","\uD83D\uDC73\uD83C\uDFFF":"1f473-1f3ff","\uD83D\uDC73\uD83C\uDFFE":"1f473-1f3fe","\uD83D\uDC73\uD83C\uDFFD":"1f473-1f3fd","\uD83D\uDC73\uD83C\uDFFC":"1f473-1f3fc","\uD83D\uDC73\uD83C\uDFFB":"1f473-1f3fb","\uD83D\uDC72\uD83C\uDFFF":"1f472-1f3ff","\uD83D\uDC72\uD83C\uDFFE":"1f472-1f3fe","\uD83D\uDC72\uD83C\uDFFD":"1f472-1f3fd","\uD83D\uDC72\uD83C\uDFFC":"1f472-1f3fc","\uD83D\uDC72\uD83C\uDFFB":"1f472-1f3fb","\uD83D\uDC71\uD83C\uDFFF":"1f471-1f3ff","\uD83D\uDC71\uD83C\uDFFE":"1f471-1f3fe","\uD83D\uDC71\uD83C\uDFFD":"1f471-1f3fd","\uD83D\uDC71\uD83C\uDFFC":"1f471-1f3fc","\uD83D\uDC71\uD83C\uDFFB":"1f471-1f3fb","\uD83D\uDC70\uD83C\uDFFF":"1f470-1f3ff","\uD83D\uDC70\uD83C\uDFFE":"1f470-1f3fe","\uD83D\uDC70\uD83C\uDFFD":"1f470-1f3fd","\uD83D\uDC70\uD83C\uDFFC":"1f470-1f3fc","\uD83D\uDC70\uD83C\uDFFB":"1f470-1f3fb","\uD83D\uDC6E\uD83C\uDFFF":"1f46e-1f3ff","\uD83D\uDC6E\uD83C\uDFFE":"1f46e-1f3fe","\uD83D\uDC6E\uD83C\uDFFD":"1f46e-1f3fd","\uD83D\uDC6E\uD83C\uDFFC":"1f46e-1f3fc","\uD83D\uDC6E\uD83C\uDFFB":"1f46e-1f3fb","\uD83D\uDC69\uD83C\uDFFF":"1f469-1f3ff","\uD83D\uDC69\uD83C\uDFFE":"1f469-1f3fe","\uD83D\uDC69\uD83C\uDFFD":"1f469-1f3fd","\uD83D\uDC69\uD83C\uDFFC":"1f469-1f3fc","\uD83D\uDC69\uD83C\uDFFB":"1f469-1f3fb","\uD83D\uDC68\uD83C\uDFFF":"1f468-1f3ff","\uD83D\uDC68\uD83C\uDFFE":"1f468-1f3fe","\uD83D\uDC68\uD83C\uDFFD":"1f468-1f3fd","\uD83D\uDC68\uD83C\uDFFC":"1f468-1f3fc","\uD83D\uDC68\uD83C\uDFFB":"1f468-1f3fb","\uD83D\uDC67\uD83C\uDFFF":"1f467-1f3ff","\uD83D\uDC67\uD83C\uDFFE":"1f467-1f3fe","\uD83D\uDC67\uD83C\uDFFD":"1f467-1f3fd","\uD83D\uDC67\uD83C\uDFFC":"1f467-1f3fc","\uD83D\uDC67\uD83C\uDFFB":"1f467-1f3fb","\uD83D\uDC66\uD83C\uDFFF":"1f466-1f3ff","\uD83D\uDC66\uD83C\uDFFE":"1f466-1f3fe","\uD83D\uDC66\uD83C\uDFFD":"1f466-1f3fd","\uD83D\uDC66\uD83C\uDFFC":"1f466-1f3fc","\uD83D\uDC66\uD83C\uDFFB":"1f466-1f3fb","\uD83D\uDC50\uD83C\uDFFF":"1f450-1f3ff","\uD83D\uDC50\uD83C\uDFFE":"1f450-1f3fe","\uD83D\uDC50\uD83C\uDFFD":"1f450-1f3fd","\uD83D\uDC50\uD83C\uDFFC":"1f450-1f3fc","\uD83D\uDC50\uD83C\uDFFB":"1f450-1f3fb","\uD83D\uDC4F\uD83C\uDFFF":"1f44f-1f3ff","\uD83D\uDC4F\uD83C\uDFFE":"1f44f-1f3fe","\uD83D\uDC4F\uD83C\uDFFD":"1f44f-1f3fd","\uD83D\uDC4F\uD83C\uDFFC":"1f44f-1f3fc","\uD83D\uDC4F\uD83C\uDFFB":"1f44f-1f3fb","\uD83D\uDC4E\uD83C\uDFFF":"1f44e-1f3ff","\uD83D\uDC4E\uD83C\uDFFE":"1f44e-1f3fe","\uD83D\uDC4E\uD83C\uDFFD":"1f44e-1f3fd","\uD83D\uDC4E\uD83C\uDFFC":"1f44e-1f3fc","\uD83D\uDC4E\uD83C\uDFFB":"1f44e-1f3fb","\uD83D\uDC4D\uD83C\uDFFF":"1f44d-1f3ff","\uD83D\uDC4D\uD83C\uDFFE":"1f44d-1f3fe","\uD83D\uDC4D\uD83C\uDFFD":"1f44d-1f3fd","\uD83D\uDC4D\uD83C\uDFFC":"1f44d-1f3fc","\uD83D\uDC4D\uD83C\uDFFB":"1f44d-1f3fb","\uD83D\uDC4C\uD83C\uDFFF":"1f44c-1f3ff","\uD83D\uDC4C\uD83C\uDFFE":"1f44c-1f3fe","\uD83D\uDC4C\uD83C\uDFFD":"1f44c-1f3fd","\uD83D\uDC4C\uD83C\uDFFC":"1f44c-1f3fc","\uD83D\uDC4C\uD83C\uDFFB":"1f44c-1f3fb","\uD83D\uDC4B\uD83C\uDFFF":"1f44b-1f3ff","\uD83D\uDC4B\uD83C\uDFFE":"1f44b-1f3fe","\uD83D\uDC4B\uD83C\uDFFD":"1f44b-1f3fd","\uD83D\uDC4B\uD83C\uDFFC":"1f44b-1f3fc","\uD83D\uDC4B\uD83C\uDFFB":"1f44b-1f3fb","\uD83D\uDC4A\uD83C\uDFFF":"1f44a-1f3ff","\uD83D\uDC4A\uD83C\uDFFE":"1f44a-1f3fe","\uD83D\uDC4A\uD83C\uDFFD":"1f44a-1f3fd","\uD83D\uDC4A\uD83C\uDFFC":"1f44a-1f3fc","\uD83D\uDC4A\uD83C\uDFFB":"1f44a-1f3fb","\uD83D\uDC49\uD83C\uDFFF":"1f449-1f3ff","\uD83D\uDC49\uD83C\uDFFE":"1f449-1f3fe","\uD83D\uDC49\uD83C\uDFFD":"1f449-1f3fd","\uD83D\uDC49\uD83C\uDFFC":"1f449-1f3fc","\uD83D\uDC49\uD83C\uDFFB":"1f449-1f3fb","\uD83D\uDC48\uD83C\uDFFF":"1f448-1f3ff","\uD83D\uDC48\uD83C\uDFFE":"1f448-1f3fe","\uD83D\uDC48\uD83C\uDFFD":"1f448-1f3fd","\uD83D\uDC48\uD83C\uDFFC":"1f448-1f3fc","\uD83D\uDC48\uD83C\uDFFB":"1f448-1f3fb","\uD83D\uDC47\uD83C\uDFFF":"1f447-1f3ff","\uD83D\uDC47\uD83C\uDFFE":"1f447-1f3fe","\uD83D\uDC47\uD83C\uDFFD":"1f447-1f3fd","\uD83D\uDC47\uD83C\uDFFC":"1f447-1f3fc","\uD83D\uDC47\uD83C\uDFFB":"1f447-1f3fb","\uD83D\uDC46\uD83C\uDFFF":"1f446-1f3ff","\uD83D\uDC46\uD83C\uDFFE":"1f446-1f3fe","\uD83D\uDC46\uD83C\uDFFD":"1f446-1f3fd","\uD83D\uDC46\uD83C\uDFFC":"1f446-1f3fc","\uD83D\uDC46\uD83C\uDFFB":"1f446-1f3fb","\uD83D\uDC43\uD83C\uDFFF":"1f443-1f3ff","\uD83D\uDC43\uD83C\uDFFE":"1f443-1f3fe","\uD83D\uDC43\uD83C\uDFFD":"1f443-1f3fd","\uD83D\uDC43\uD83C\uDFFC":"1f443-1f3fc","\uD83D\uDC43\uD83C\uDFFB":"1f443-1f3fb","\uD83D\uDC42\uD83C\uDFFF":"1f442-1f3ff","\uD83D\uDC42\uD83C\uDFFE":"1f442-1f3fe","\uD83D\uDC42\uD83C\uDFFD":"1f442-1f3fd","\uD83D\uDC42\uD83C\uDFFC":"1f442-1f3fc","\uD83D\uDC42\uD83C\uDFFB":"1f442-1f3fb","\uD83C\uDFCB\uD83C\uDFFF":"1f3cb-1f3ff","\uD83C\uDFCB\uD83C\uDFFE":"1f3cb-1f3fe","\uD83C\uDFCB\uD83C\uDFFD":"1f3cb-1f3fd","\uD83C\uDFCB\uD83C\uDFFC":"1f3cb-1f3fc","\uD83C\uDFCB\uD83C\uDFFB":"1f3cb-1f3fb","\uD83C\uDFCA\uD83C\uDFFF":"1f3ca-1f3ff","\uD83C\uDFCA\uD83C\uDFFE":"1f3ca-1f3fe","\uD83C\uDFCA\uD83C\uDFFD":"1f3ca-1f3fd","\uD83C\uDFCA\uD83C\uDFFC":"1f3ca-1f3fc","\uD83C\uDFCA\uD83C\uDFFB":"1f3ca-1f3fb","\uD83C\uDFC7\uD83C\uDFFF":"1f3c7-1f3ff","\uD83C\uDFC7\uD83C\uDFFE":"1f3c7-1f3fe","\uD83C\uDFC7\uD83C\uDFFD":"1f3c7-1f3fd","\uD83C\uDFC7\uD83C\uDFFC":"1f3c7-1f3fc","\uD83C\uDFC7\uD83C\uDFFB":"1f3c7-1f3fb","\uD83C\uDFC4\uD83C\uDFFF":"1f3c4-1f3ff","\uD83C\uDFC4\uD83C\uDFFE":"1f3c4-1f3fe","\uD83C\uDFC4\uD83C\uDFFD":"1f3c4-1f3fd","\uD83C\uDFC4\uD83C\uDFFC":"1f3c4-1f3fc","\uD83C\uDFC4\uD83C\uDFFB":"1f3c4-1f3fb","\uD83C\uDFC3\uD83C\uDFFF":"1f3c3-1f3ff","\uD83C\uDFC3\uD83C\uDFFE":"1f3c3-1f3fe","\uD83C\uDFC3\uD83C\uDFFD":"1f3c3-1f3fd","\uD83C\uDFC3\uD83C\uDFFC":"1f3c3-1f3fc","\uD83C\uDFC3\uD83C\uDFFB":"1f3c3-1f3fb","\uD83C\uDF85\uD83C\uDFFF":"1f385-1f3ff","\uD83C\uDF85\uD83C\uDFFE":"1f385-1f3fe","\uD83C\uDF85\uD83C\uDFFD":"1f385-1f3fd","\uD83C\uDF85\uD83C\uDFFC":"1f385-1f3fc","\uD83C\uDF85\uD83C\uDFFB":"1f385-1f3fb","\uD83C\uDDFF\uD83C\uDDFC":"1f1ff-1f1fc","\uD83C\uDDFF\uD83C\uDDF2":"1f1ff-1f1f2","\uD83C\uDDFF\uD83C\uDDE6":"1f1ff-1f1e6","\uD83C\uDDFE\uD83C\uDDF9":"1f1fe-1f1f9","\uD83C\uDDFE\uD83C\uDDEA":"1f1fe-1f1ea","\uD83C\uDDFD\uD83C\uDDF0":"1f1fd-1f1f0","\uD83C\uDDFC\uD83C\uDDF8":"1f1fc-1f1f8","\uD83C\uDDFC\uD83C\uDDEB":"1f1fc-1f1eb","\uD83C\uDDFB\uD83C\uDDFA":"1f1fb-1f1fa","\uD83C\uDDFB\uD83C\uDDF3":"1f1fb-1f1f3","\uD83C\uDDFB\uD83C\uDDEE":"1f1fb-1f1ee","\uD83C\uDDFB\uD83C\uDDEC":"1f1fb-1f1ec","\uD83C\uDDFB\uD83C\uDDEA":"1f1fb-1f1ea","\uD83C\uDDFB\uD83C\uDDE8":"1f1fb-1f1e8","\uD83C\uDDFB\uD83C\uDDE6":"1f1fb-1f1e6","\uD83C\uDDFA\uD83C\uDDFF":"1f1fa-1f1ff","\uD83C\uDDFA\uD83C\uDDFE":"1f1fa-1f1fe","\uD83C\uDDFA\uD83C\uDDF8":"1f1fa-1f1f8","\uD83C\uDDFA\uD83C\uDDF2":"1f1fa-1f1f2","\uD83C\uDDFA\uD83C\uDDEC":"1f1fa-1f1ec","\uD83C\uDDFA\uD83C\uDDE6":"1f1fa-1f1e6","\uD83C\uDDF9\uD83C\uDDFF":"1f1f9-1f1ff","\uD83C\uDDF9\uD83C\uDDFC":"1f1f9-1f1fc","\uD83C\uDDF9\uD83C\uDDFB":"1f1f9-1f1fb","\uD83C\uDDF9\uD83C\uDDF9":"1f1f9-1f1f9","\uD83C\uDDF9\uD83C\uDDF7":"1f1f9-1f1f7","\uD83C\uDDF9\uD83C\uDDF4":"1f1f9-1f1f4","\uD83C\uDDF9\uD83C\uDDF3":"1f1f9-1f1f3","\uD83C\uDDF9\uD83C\uDDF2":"1f1f9-1f1f2","\uD83C\uDDF9\uD83C\uDDF1":"1f1f9-1f1f1","\uD83C\uDDF9\uD83C\uDDF0":"1f1f9-1f1f0","\uD83C\uDDF9\uD83C\uDDEF":"1f1f9-1f1ef","\uD83C\uDDF9\uD83C\uDDED":"1f1f9-1f1ed","\uD83C\uDDF9\uD83C\uDDEC":"1f1f9-1f1ec","\uD83C\uDDF9\uD83C\uDDEB":"1f1f9-1f1eb","\uD83C\uDDF9\uD83C\uDDE9":"1f1f9-1f1e9","\uD83C\uDDF9\uD83C\uDDE8":"1f1f9-1f1e8","\uD83C\uDDF9\uD83C\uDDE6":"1f1f9-1f1e6","\uD83C\uDDF8\uD83C\uDDFF":"1f1f8-1f1ff","\uD83C\uDDF8\uD83C\uDDFE":"1f1f8-1f1fe","\uD83C\uDDF8\uD83C\uDDFD":"1f1f8-1f1fd","\uD83C\uDDF8\uD83C\uDDFB":"1f1f8-1f1fb","\uD83C\uDDF8\uD83C\uDDF9":"1f1f8-1f1f9","\uD83C\uDDF8\uD83C\uDDF8":"1f1f8-1f1f8","\uD83C\uDDF8\uD83C\uDDF7":"1f1f8-1f1f7","\uD83C\uDDF8\uD83C\uDDF4":"1f1f8-1f1f4","\uD83C\uDDF8\uD83C\uDDF3":"1f1f8-1f1f3","\uD83C\uDDF8\uD83C\uDDF2":"1f1f8-1f1f2","\uD83C\uDDF8\uD83C\uDDF1":"1f1f8-1f1f1","\uD83C\uDDF8\uD83C\uDDF0":"1f1f8-1f1f0","\uD83C\uDDF8\uD83C\uDDEF":"1f1f8-1f1ef","\uD83C\uDDF8\uD83C\uDDEE":"1f1f8-1f1ee","\uD83C\uDDF8\uD83C\uDDED":"1f1f8-1f1ed","\uD83C\uDDF8\uD83C\uDDEC":"1f1f8-1f1ec","\uD83C\uDDF8\uD83C\uDDEA":"1f1f8-1f1ea","\uD83C\uDDF8\uD83C\uDDE9":"1f1f8-1f1e9","\uD83C\uDDF8\uD83C\uDDE8":"1f1f8-1f1e8","\uD83C\uDDF8\uD83C\uDDE7":"1f1f8-1f1e7","\uD83C\uDDF8\uD83C\uDDE6":"1f1f8-1f1e6","\uD83C\uDDF7\uD83C\uDDFC":"1f1f7-1f1fc","\uD83C\uDDF7\uD83C\uDDFA":"1f1f7-1f1fa","\uD83C\uDDF7\uD83C\uDDF8":"1f1f7-1f1f8","\uD83C\uDDF7\uD83C\uDDF4":"1f1f7-1f1f4","\uD83C\uDDF7\uD83C\uDDEA":"1f1f7-1f1ea","\uD83C\uDDF6\uD83C\uDDE6":"1f1f6-1f1e6","\uD83C\uDDF5\uD83C\uDDFE":"1f1f5-1f1fe","\uD83C\uDDF5\uD83C\uDDFC":"1f1f5-1f1fc","\uD83C\uDDF5\uD83C\uDDF9":"1f1f5-1f1f9","\uD83C\uDDF5\uD83C\uDDF8":"1f1f5-1f1f8","\uD83C\uDDF5\uD83C\uDDF7":"1f1f5-1f1f7","\uD83C\uDDF5\uD83C\uDDF3":"1f1f5-1f1f3","\uD83C\uDDF5\uD83C\uDDF2":"1f1f5-1f1f2","\uD83C\uDDF5\uD83C\uDDF1":"1f1f5-1f1f1","\uD83C\uDDF5\uD83C\uDDF0":"1f1f5-1f1f0","\uD83C\uDDF5\uD83C\uDDED":"1f1f5-1f1ed","\uD83C\uDDF5\uD83C\uDDEC":"1f1f5-1f1ec","\uD83C\uDDF5\uD83C\uDDEB":"1f1f5-1f1eb","\uD83C\uDDF5\uD83C\uDDEA":"1f1f5-1f1ea","\uD83C\uDDF5\uD83C\uDDE6":"1f1f5-1f1e6","\uD83C\uDDF4\uD83C\uDDF2":"1f1f4-1f1f2","\uD83C\uDDF3\uD83C\uDDFF":"1f1f3-1f1ff","\uD83C\uDDF3\uD83C\uDDFA":"1f1f3-1f1fa","\uD83C\uDDF3\uD83C\uDDF7":"1f1f3-1f1f7","\uD83C\uDDF3\uD83C\uDDF5":"1f1f3-1f1f5","\uD83C\uDDF3\uD83C\uDDF4":"1f1f3-1f1f4","\uD83C\uDDF3\uD83C\uDDF1":"1f1f3-1f1f1","\uD83C\uDDF3\uD83C\uDDEE":"1f1f3-1f1ee","\uD83C\uDDF3\uD83C\uDDEC":"1f1f3-1f1ec","\uD83C\uDDF3\uD83C\uDDEB":"1f1f3-1f1eb","\uD83C\uDDF3\uD83C\uDDEA":"1f1f3-1f1ea","\uD83C\uDDF3\uD83C\uDDE8":"1f1f3-1f1e8","\uD83C\uDDF3\uD83C\uDDE6":"1f1f3-1f1e6","\uD83C\uDDF2\uD83C\uDDFF":"1f1f2-1f1ff","\uD83C\uDDF2\uD83C\uDDFE":"1f1f2-1f1fe","\uD83C\uDDF2\uD83C\uDDFD":"1f1f2-1f1fd","\uD83C\uDDF2\uD83C\uDDFC":"1f1f2-1f1fc","\uD83C\uDDF2\uD83C\uDDFB":"1f1f2-1f1fb","\uD83C\uDDF2\uD83C\uDDFA":"1f1f2-1f1fa","\uD83C\uDDF2\uD83C\uDDF9":"1f1f2-1f1f9","\uD83C\uDDF2\uD83C\uDDF8":"1f1f2-1f1f8","\uD83C\uDDF2\uD83C\uDDF7":"1f1f2-1f1f7","\uD83C\uDDF2\uD83C\uDDF6":"1f1f2-1f1f6","\uD83C\uDDF2\uD83C\uDDF5":"1f1f2-1f1f5","\uD83C\uDDF2\uD83C\uDDF4":"1f1f2-1f1f4","\uD83C\uDDF2\uD83C\uDDF3":"1f1f2-1f1f3","\uD83C\uDDF2\uD83C\uDDF2":"1f1f2-1f1f2","\uD83C\uDDF2\uD83C\uDDF1":"1f1f2-1f1f1","\uD83C\uDDF2\uD83C\uDDF0":"1f1f2-1f1f0","\uD83C\uDDF2\uD83C\uDDED":"1f1f2-1f1ed","\uD83C\uDDF2\uD83C\uDDEC":"1f1f2-1f1ec","\uD83C\uDDF2\uD83C\uDDEB":"1f1f2-1f1eb","\uD83C\uDDF2\uD83C\uDDEA":"1f1f2-1f1ea","\uD83C\uDDF2\uD83C\uDDE9":"1f1f2-1f1e9","\uD83C\uDDF2\uD83C\uDDE8":"1f1f2-1f1e8","\uD83C\uDDF2\uD83C\uDDE6":"1f1f2-1f1e6","\uD83C\uDDF1\uD83C\uDDFE":"1f1f1-1f1fe","\uD83C\uDDF1\uD83C\uDDFB":"1f1f1-1f1fb","\uD83C\uDDF1\uD83C\uDDFA":"1f1f1-1f1fa","\uD83C\uDDF1\uD83C\uDDF9":"1f1f1-1f1f9","\uD83C\uDDF1\uD83C\uDDF8":"1f1f1-1f1f8","\uD83C\uDDF1\uD83C\uDDF7":"1f1f1-1f1f7","\uD83C\uDDF1\uD83C\uDDF0":"1f1f1-1f1f0","\uD83C\uDDF1\uD83C\uDDEE":"1f1f1-1f1ee","\uD83C\uDDF1\uD83C\uDDE8":"1f1f1-1f1e8","\uD83C\uDDF1\uD83C\uDDE7":"1f1f1-1f1e7","\uD83C\uDDF1\uD83C\uDDE6":"1f1f1-1f1e6","\uD83C\uDDF0\uD83C\uDDFF":"1f1f0-1f1ff","\uD83C\uDDF0\uD83C\uDDFE":"1f1f0-1f1fe","\uD83C\uDDF0\uD83C\uDDFC":"1f1f0-1f1fc","\uD83C\uDDF0\uD83C\uDDF7":"1f1f0-1f1f7","\uD83C\uDDF0\uD83C\uDDF5":"1f1f0-1f1f5","\uD83C\uDDF0\uD83C\uDDF3":"1f1f0-1f1f3","\uD83C\uDDF0\uD83C\uDDF2":"1f1f0-1f1f2","\uD83C\uDDF0\uD83C\uDDEE":"1f1f0-1f1ee","\uD83C\uDDF0\uD83C\uDDED":"1f1f0-1f1ed","\uD83C\uDDF0\uD83C\uDDEC":"1f1f0-1f1ec","\uD83C\uDDF0\uD83C\uDDEA":"1f1f0-1f1ea","\uD83C\uDDEF\uD83C\uDDF5":"1f1ef-1f1f5","\uD83C\uDDEF\uD83C\uDDF4":"1f1ef-1f1f4","\uD83C\uDDEF\uD83C\uDDF2":"1f1ef-1f1f2","\uD83C\uDDEF\uD83C\uDDEA":"1f1ef-1f1ea","\uD83C\uDDEE\uD83C\uDDF9":"1f1ee-1f1f9","\uD83C\uDDEE\uD83C\uDDF8":"1f1ee-1f1f8","\uD83C\uDDEE\uD83C\uDDF7":"1f1ee-1f1f7","\uD83C\uDDEE\uD83C\uDDF6":"1f1ee-1f1f6","\uD83C\uDDEE\uD83C\uDDF4":"1f1ee-1f1f4","\uD83C\uDDEE\uD83C\uDDF3":"1f1ee-1f1f3","\uD83C\uDDEE\uD83C\uDDF2":"1f1ee-1f1f2","\uD83C\uDDEE\uD83C\uDDF1":"1f1ee-1f1f1","\uD83C\uDDEE\uD83C\uDDEA":"1f1ee-1f1ea","\uD83C\uDDEE\uD83C\uDDE9":"1f1ee-1f1e9","\uD83C\uDDEE\uD83C\uDDE8":"1f1ee-1f1e8","\uD83C\uDDED\uD83C\uDDFA":"1f1ed-1f1fa","\uD83C\uDDED\uD83C\uDDF9":"1f1ed-1f1f9","\uD83C\uDDED\uD83C\uDDF7":"1f1ed-1f1f7","\uD83C\uDDED\uD83C\uDDF3":"1f1ed-1f1f3","\uD83C\uDDED\uD83C\uDDF2":"1f1ed-1f1f2","\uD83C\uDDED\uD83C\uDDF0":"1f1ed-1f1f0","\uD83C\uDDEC\uD83C\uDDFE":"1f1ec-1f1fe","\uD83C\uDDEC\uD83C\uDDFC":"1f1ec-1f1fc","\uD83C\uDDEC\uD83C\uDDFA":"1f1ec-1f1fa","\uD83C\uDDEC\uD83C\uDDF9":"1f1ec-1f1f9","\uD83C\uDDEC\uD83C\uDDF8":"1f1ec-1f1f8","\uD83C\uDDEC\uD83C\uDDF7":"1f1ec-1f1f7","\uD83C\uDDEC\uD83C\uDDF6":"1f1ec-1f1f6","\uD83C\uDDEC\uD83C\uDDF5":"1f1ec-1f1f5","\uD83C\uDDEC\uD83C\uDDF3":"1f1ec-1f1f3","\uD83C\uDDEC\uD83C\uDDF2":"1f1ec-1f1f2","\uD83C\uDDEC\uD83C\uDDF1":"1f1ec-1f1f1","\uD83C\uDDEC\uD83C\uDDEE":"1f1ec-1f1ee","\uD83C\uDDEC\uD83C\uDDED":"1f1ec-1f1ed","\uD83C\uDDEC\uD83C\uDDEC":"1f1ec-1f1ec","\uD83C\uDDEC\uD83C\uDDEB":"1f1ec-1f1eb","\uD83C\uDDEC\uD83C\uDDEA":"1f1ec-1f1ea","\uD83C\uDDEC\uD83C\uDDE9":"1f1ec-1f1e9","\uD83C\uDDEC\uD83C\uDDE7":"1f1ec-1f1e7","\uD83C\uDDEC\uD83C\uDDE6":"1f1ec-1f1e6","\uD83C\uDDEB\uD83C\uDDF7":"1f1eb-1f1f7","\uD83C\uDDEB\uD83C\uDDF4":"1f1eb-1f1f4","\uD83C\uDDEB\uD83C\uDDF2":"1f1eb-1f1f2","\uD83C\uDDEB\uD83C\uDDF0":"1f1eb-1f1f0","\uD83C\uDDEB\uD83C\uDDEF":"1f1eb-1f1ef","\uD83C\uDDEB\uD83C\uDDEE":"1f1eb-1f1ee","\uD83C\uDDEA\uD83C\uDDFA":"1f1ea-1f1fa","\uD83C\uDDEA\uD83C\uDDF9":"1f1ea-1f1f9","\uD83C\uDDEA\uD83C\uDDF8":"1f1ea-1f1f8","\uD83C\uDDEA\uD83C\uDDF7":"1f1ea-1f1f7","\uD83C\uDDEA\uD83C\uDDED":"1f1ea-1f1ed","\uD83C\uDDEA\uD83C\uDDEC":"1f1ea-1f1ec","\uD83C\uDDEA\uD83C\uDDEA":"1f1ea-1f1ea","\uD83C\uDDEA\uD83C\uDDE8":"1f1ea-1f1e8","\uD83C\uDDEA\uD83C\uDDE6":"1f1ea-1f1e6","\uD83C\uDDE9\uD83C\uDDFF":"1f1e9-1f1ff","\uD83C\uDDE9\uD83C\uDDF4":"1f1e9-1f1f4","\uD83C\uDDE9\uD83C\uDDF2":"1f1e9-1f1f2","\uD83C\uDDE9\uD83C\uDDF0":"1f1e9-1f1f0","\uD83C\uDDE9\uD83C\uDDEF":"1f1e9-1f1ef","\uD83C\uDDE9\uD83C\uDDEC":"1f1e9-1f1ec","\uD83C\uDDE9\uD83C\uDDEA":"1f1e9-1f1ea","\uD83C\uDDE8\uD83C\uDDFF":"1f1e8-1f1ff","\uD83C\uDDE8\uD83C\uDDFE":"1f1e8-1f1fe","\uD83C\uDDE8\uD83C\uDDFD":"1f1e8-1f1fd","\uD83C\uDDE8\uD83C\uDDFC":"1f1e8-1f1fc","\uD83C\uDDE8\uD83C\uDDFB":"1f1e8-1f1fb","\uD83C\uDDE8\uD83C\uDDFA":"1f1e8-1f1fa","\uD83C\uDDE8\uD83C\uDDF7":"1f1e8-1f1f7","\uD83C\uDDE8\uD83C\uDDF5":"1f1e8-1f1f5","\uD83C\uDDE8\uD83C\uDDF4":"1f1e8-1f1f4","\uD83C\uDDE8\uD83C\uDDF3":"1f1e8-1f1f3","\uD83C\uDDE8\uD83C\uDDF2":"1f1e8-1f1f2","\uD83C\uDDE8\uD83C\uDDF1":"1f1e8-1f1f1","\uD83C\uDDE8\uD83C\uDDF0":"1f1e8-1f1f0","\uD83C\uDDE8\uD83C\uDDEE":"1f1e8-1f1ee","\uD83C\uDDE8\uD83C\uDDED":"1f1e8-1f1ed","\uD83C\uDDE8\uD83C\uDDEC":"1f1e8-1f1ec","\uD83C\uDDE8\uD83C\uDDEB":"1f1e8-1f1eb","\uD83C\uDDE8\uD83C\uDDE9":"1f1e8-1f1e9","\uD83C\uDDE8\uD83C\uDDE8":"1f1e8-1f1e8","\uD83C\uDDE8\uD83C\uDDE6":"1f1e8-1f1e6","\uD83C\uDDE7\uD83C\uDDFF":"1f1e7-1f1ff","\uD83C\uDDE7\uD83C\uDDFE":"1f1e7-1f1fe","\uD83C\uDDE7\uD83C\uDDFC":"1f1e7-1f1fc","\uD83C\uDDE7\uD83C\uDDFB":"1f1e7-1f1fb","\uD83C\uDDE7\uD83C\uDDF9":"1f1e7-1f1f9","\uD83C\uDDE7\uD83C\uDDF8":"1f1e7-1f1f8","\uD83C\uDDE7\uD83C\uDDF7":"1f1e7-1f1f7","\uD83C\uDDE7\uD83C\uDDF6":"1f1e7-1f1f6","\uD83C\uDDE7\uD83C\uDDF4":"1f1e7-1f1f4","\uD83C\uDDE7\uD83C\uDDF3":"1f1e7-1f1f3","\uD83C\uDDE7\uD83C\uDDF2":"1f1e7-1f1f2","\uD83C\uDDE7\uD83C\uDDF1":"1f1e7-1f1f1","\uD83C\uDDE7\uD83C\uDDEF":"1f1e7-1f1ef","\uD83C\uDDE7\uD83C\uDDEE":"1f1e7-1f1ee","\uD83C\uDDE7\uD83C\uDDED":"1f1e7-1f1ed","\uD83C\uDDE7\uD83C\uDDEC":"1f1e7-1f1ec","\uD83C\uDDE7\uD83C\uDDEB":"1f1e7-1f1eb","\uD83C\uDDE7\uD83C\uDDEA":"1f1e7-1f1ea","\uD83C\uDDE7\uD83C\uDDE9":"1f1e7-1f1e9","\uD83C\uDDE7\uD83C\uDDE7":"1f1e7-1f1e7","\uD83C\uDDE7\uD83C\uDDE6":"1f1e7-1f1e6","\uD83C\uDDE6\uD83C\uDDFF":"1f1e6-1f1ff","\uD83C\uDDE6\uD83C\uDDFD":"1f1e6-1f1fd","\uD83C\uDDE6\uD83C\uDDFC":"1f1e6-1f1fc","\uD83C\uDDE6\uD83C\uDDFA":"1f1e6-1f1fa","\uD83C\uDDE6\uD83C\uDDF9":"1f1e6-1f1f9","\uD83C\uDDE6\uD83C\uDDF8":"1f1e6-1f1f8","\uD83C\uDDE6\uD83C\uDDF7":"1f1e6-1f1f7","\uD83C\uDDE6\uD83C\uDDF6":"1f1e6-1f1f6","\uD83C\uDDE6\uD83C\uDDF4":"1f1e6-1f1f4","\uD83C\uDDE6\uD83C\uDDF2":"1f1e6-1f1f2","\uD83C\uDDE6\uD83C\uDDF1":"1f1e6-1f1f1","\uD83C\uDDE6\uD83C\uDDEE":"1f1e6-1f1ee","\uD83C\uDDE6\uD83C\uDDEC":"1f1e6-1f1ec","\uD83C\uDDE6\uD83C\uDDEB":"1f1e6-1f1eb","\uD83C\uDDE6\uD83C\uDDEA":"1f1e6-1f1ea","\uD83C\uDDE6\uD83C\uDDE9":"1f1e6-1f1e9","\uD83C\uDDE6\uD83C\uDDE8":"1f1e6-1f1e8","\uD83C\uDC04\uFE0F":"1f004","\uD83C\uDD7F\uFE0F":"1f17f","\uD83C\uDE1A\uFE0F":"1f21a","\uD83C\uDE2F\uFE0F":"1f22f","\uD83C\uDE37\uFE0F":"1f237","\u261D\uD83C\uDFFB":"261d-1f3fb","\u261D\uD83C\uDFFC":"261d-1f3fc","\u261D\uD83C\uDFFD":"261d-1f3fd","\u261D\uD83C\uDFFE":"261d-1f3fe","\u261D\uD83C\uDFFF":"261d-1f3ff","\u270C\uD83C\uDFFB":"270c-1f3fb","\u270C\uD83C\uDFFC":"270c-1f3fc","\u270C\uD83C\uDFFD":"270c-1f3fd","\u270C\uD83C\uDFFE":"270c-1f3fe","\u270C\uD83C\uDFFF":"270c-1f3ff","\u270A\uD83C\uDFFB":"270a-1f3fb","\u270A\uD83C\uDFFC":"270a-1f3fc","\u270A\uD83C\uDFFD":"270a-1f3fd","\u270A\uD83C\uDFFE":"270a-1f3fe","\u270A\uD83C\uDFFF":"270a-1f3ff","\u270B\uD83C\uDFFB":"270b-1f3fb","\u270B\uD83C\uDFFC":"270b-1f3fc","\u270B\uD83C\uDFFD":"270b-1f3fd","\u270B\uD83C\uDFFE":"270b-1f3fe","\u270B\uD83C\uDFFF":"270b-1f3ff","\u270D\uD83C\uDFFB":"270d-1f3fb","\u270D\uD83C\uDFFC":"270d-1f3fc","\u270D\uD83C\uDFFD":"270d-1f3fd","\u270D\uD83C\uDFFE":"270d-1f3fe","\u270D\uD83C\uDFFF":"270d-1f3ff","\u26F9\uD83C\uDFFB":"26f9-1f3fb","\u26F9\uD83C\uDFFC":"26f9-1f3fc","\u26F9\uD83C\uDFFD":"26f9-1f3fd","\u26F9\uD83C\uDFFE":"26f9-1f3fe","\u26F9\uD83C\uDFFF":"26f9-1f3ff","\u00A9\uFE0F":"00a9","\u00AE\uFE0F":"00ae","\u203C\uFE0F":"203c","\u21A9\uFE0F":"21a9","\u21AA\uFE0F":"21aa","\u231A\uFE0F":"231a","\u231B\uFE0F":"231b","\u24C2\uFE0F":"24c2","\u25AA\uFE0F":"25aa","\u25AB\uFE0F":"25ab","\u25B6\uFE0F":"25b6","\u25C0\uFE0F":"25c0","\u25FB\uFE0F":"25fb","\u25FC\uFE0F":"25fc","\u25FD\uFE0F":"25fd","\u25FE\uFE0F":"25fe","\u260E\uFE0F":"260e","\u261D\uFE0F":"261d","\u263A\uFE0F":"263a","\u264A\uFE0F":"264a","\u264B\uFE0F":"264b","\u264C\uFE0F":"264c","\u264D\uFE0F":"264d","\u264E\uFE0F":"264e","\u264F\uFE0F":"264f","\u267B\uFE0F":"267b","\u267F\uFE0F":"267f","\u26A0\uFE0F":"26a0","\u26A1\uFE0F":"26a1","\u26AA\uFE0F":"26aa","\u26AB\uFE0F":"26ab","\u26BD\uFE0F":"26bd","\u26BE\uFE0F":"26be","\u26C4\uFE0F":"26c4","\u26C5\uFE0F":"26c5","\u26D4\uFE0F":"26d4","\u26EA\uFE0F":"26ea","\u26F2\uFE0F":"26f2","\u26F3\uFE0F":"26f3","\u26F5\uFE0F":"26f5","\u26FA\uFE0F":"26fa","\u26FD\uFE0F":"26fd","\u270C\uFE0F":"270c","\u270F\uFE0F":"270f","\u27A1\uFE0F":"27a1","\u2B05\uFE0F":"2b05","\u2B06\uFE0F":"2b06","\u2B07\uFE0F":"2b07","\u2B1B\uFE0F":"2b1b","\u2B1C\uFE0F":"2b1c","\u2B50\uFE0F":"2b50","\u2B55\uFE0F":"2b55","\u303D\uFE0F":"303d","\uD83C\uDCCF":"1f0cf","\uD83C\uDD70":"1f170","\uD83C\uDD71":"1f171","\uD83C\uDD7E":"1f17e","\uD83C\uDD8E":"1f18e","\uD83C\uDD91":"1f191","\uD83C\uDD92":"1f192","\uD83C\uDD93":"1f193","\uD83C\uDD94":"1f194","\uD83C\uDD95":"1f195","\uD83C\uDD96":"1f196","\uD83C\uDD97":"1f197","\uD83C\uDD98":"1f198","\uD83C\uDD99":"1f199","\uD83C\uDD9A":"1f19a","\uD83C\uDE01":"1f201","\uD83C\uDE02":"1f202","\uD83C\uDE32":"1f232","\uD83C\uDE33":"1f233","\uD83C\uDE34":"1f234","\uD83C\uDE35":"1f235","\uD83C\uDE36":"1f236","\uD83C\uDE38":"1f238","\uD83C\uDE39":"1f239","\uD83C\uDE3A":"1f23a","\uD83C\uDE50":"1f250","\uD83C\uDE51":"1f251","\uD83C\uDF00":"1f300","\uD83C\uDF01":"1f301","\uD83C\uDF02":"1f302","\uD83C\uDF03":"1f303","\uD83C\uDF04":"1f304","\uD83C\uDF05":"1f305","\uD83C\uDF06":"1f306","\uD83C\uDF07":"1f307","\uD83C\uDF08":"1f308","\uD83C\uDF09":"1f309","\uD83C\uDF0A":"1f30a","\uD83C\uDF0B":"1f30b","\uD83C\uDF0C":"1f30c","\uD83C\uDF0F":"1f30f","\uD83C\uDF11":"1f311","\uD83C\uDF13":"1f313","\uD83C\uDF14":"1f314","\uD83C\uDF15":"1f315","\uD83C\uDF19":"1f319","\uD83C\uDF1B":"1f31b","\uD83C\uDF1F":"1f31f","\uD83C\uDF20":"1f320","\uD83C\uDF30":"1f330","\uD83C\uDF31":"1f331","\uD83C\uDF34":"1f334","\uD83C\uDF35":"1f335","\uD83C\uDF37":"1f337","\uD83C\uDF38":"1f338","\uD83C\uDF39":"1f339","\uD83C\uDF3A":"1f33a","\uD83C\uDF3B":"1f33b","\uD83C\uDF3C":"1f33c","\uD83C\uDF3D":"1f33d","\uD83C\uDF3E":"1f33e","\uD83C\uDF3F":"1f33f","\uD83C\uDF40":"1f340","\uD83C\uDF41":"1f341","\uD83C\uDF42":"1f342","\uD83C\uDF43":"1f343","\uD83C\uDF44":"1f344","\uD83C\uDF45":"1f345","\uD83C\uDF46":"1f346","\uD83C\uDF47":"1f347","\uD83C\uDF48":"1f348","\uD83C\uDF49":"1f349","\uD83C\uDF4A":"1f34a","\uD83C\uDF4C":"1f34c","\uD83C\uDF4D":"1f34d","\uD83C\uDF4E":"1f34e","\uD83C\uDF4F":"1f34f","\uD83C\uDF51":"1f351","\uD83C\uDF52":"1f352","\uD83C\uDF53":"1f353","\uD83C\uDF54":"1f354","\uD83C\uDF55":"1f355","\uD83C\uDF56":"1f356","\uD83C\uDF57":"1f357","\uD83C\uDF58":"1f358","\uD83C\uDF59":"1f359","\uD83C\uDF5A":"1f35a","\uD83C\uDF5B":"1f35b","\uD83C\uDF5C":"1f35c","\uD83C\uDF5D":"1f35d","\uD83C\uDF5E":"1f35e","\uD83C\uDF5F":"1f35f","\uD83C\uDF60":"1f360","\uD83C\uDF61":"1f361","\uD83C\uDF62":"1f362","\uD83C\uDF63":"1f363","\uD83C\uDF64":"1f364","\uD83C\uDF65":"1f365","\uD83C\uDF66":"1f366","\uD83C\uDF67":"1f367","\uD83C\uDF68":"1f368","\uD83C\uDF69":"1f369","\uD83C\uDF6A":"1f36a","\uD83C\uDF6B":"1f36b","\uD83C\uDF6C":"1f36c","\uD83C\uDF6D":"1f36d","\uD83C\uDF6E":"1f36e","\uD83C\uDF6F":"1f36f","\uD83C\uDF70":"1f370","\uD83C\uDF71":"1f371","\uD83C\uDF72":"1f372","\uD83C\uDF73":"1f373","\uD83C\uDF74":"1f374","\uD83C\uDF75":"1f375","\uD83C\uDF76":"1f376","\uD83C\uDF77":"1f377","\uD83C\uDF78":"1f378","\uD83C\uDF79":"1f379","\uD83C\uDF7A":"1f37a","\uD83C\uDF7B":"1f37b","\uD83C\uDF80":"1f380","\uD83C\uDF81":"1f381","\uD83C\uDF82":"1f382","\uD83C\uDF83":"1f383","\uD83C\uDF84":"1f384","\uD83C\uDF85":"1f385","\uD83C\uDF86":"1f386","\uD83C\uDF87":"1f387","\uD83C\uDF88":"1f388","\uD83C\uDF89":"1f389","\uD83C\uDF8A":"1f38a","\uD83C\uDF8B":"1f38b","\uD83C\uDF8C":"1f38c","\uD83C\uDF8D":"1f38d","\uD83C\uDF8E":"1f38e","\uD83C\uDF8F":"1f38f","\uD83C\uDF90":"1f390","\uD83C\uDF91":"1f391","\uD83C\uDF92":"1f392","\uD83C\uDF93":"1f393","\uD83C\uDFA0":"1f3a0","\uD83C\uDFA1":"1f3a1","\uD83C\uDFA2":"1f3a2","\uD83C\uDFA3":"1f3a3","\uD83C\uDFA4":"1f3a4","\uD83C\uDFA5":"1f3a5","\uD83C\uDFA6":"1f3a6","\uD83C\uDFA7":"1f3a7","\uD83C\uDFA8":"1f3a8","\uD83C\uDFA9":"1f3a9","\uD83C\uDFAA":"1f3aa","\uD83C\uDFAB":"1f3ab","\uD83C\uDFAC":"1f3ac","\uD83C\uDFAD":"1f3ad","\uD83C\uDFAE":"1f3ae","\uD83C\uDFAF":"1f3af","\uD83C\uDFB0":"1f3b0","\uD83C\uDFB1":"1f3b1","\uD83C\uDFB2":"1f3b2","\uD83C\uDFB3":"1f3b3","\uD83C\uDFB4":"1f3b4","\uD83C\uDFB5":"1f3b5","\uD83C\uDFB6":"1f3b6","\uD83C\uDFB7":"1f3b7","\uD83C\uDFB8":"1f3b8","\uD83C\uDFB9":"1f3b9","\uD83C\uDFBA":"1f3ba","\uD83C\uDFBB":"1f3bb","\uD83C\uDFBC":"1f3bc","\uD83C\uDFBD":"1f3bd","\uD83C\uDFBE":"1f3be","\uD83C\uDFBF":"1f3bf","\uD83C\uDFC0":"1f3c0","\uD83C\uDFC1":"1f3c1","\uD83C\uDFC2":"1f3c2","\uD83C\uDFC3":"1f3c3","\uD83C\uDFC4":"1f3c4","\uD83C\uDFC6":"1f3c6","\uD83C\uDFC8":"1f3c8","\uD83C\uDFCA":"1f3ca","\uD83C\uDFE0":"1f3e0","\uD83C\uDFE1":"1f3e1","\uD83C\uDFE2":"1f3e2","\uD83C\uDFE3":"1f3e3","\uD83C\uDFE5":"1f3e5","\uD83C\uDFE6":"1f3e6","\uD83C\uDFE7":"1f3e7","\uD83C\uDFE8":"1f3e8","\uD83C\uDFE9":"1f3e9","\uD83C\uDFEA":"1f3ea","\uD83C\uDFEB":"1f3eb","\uD83C\uDFEC":"1f3ec","\uD83C\uDFED":"1f3ed","\uD83C\uDFEE":"1f3ee","\uD83C\uDFEF":"1f3ef","\uD83C\uDFF0":"1f3f0","\uD83D\uDC0C":"1f40c","\uD83D\uDC0D":"1f40d","\uD83D\uDC0E":"1f40e","\uD83D\uDC11":"1f411","\uD83D\uDC12":"1f412","\uD83D\uDC14":"1f414","\uD83D\uDC17":"1f417","\uD83D\uDC18":"1f418","\uD83D\uDC19":"1f419","\uD83D\uDC1A":"1f41a","\uD83D\uDC1B":"1f41b","\uD83D\uDC1C":"1f41c","\uD83D\uDC1D":"1f41d","\uD83D\uDC1E":"1f41e","\uD83D\uDC1F":"1f41f","\uD83D\uDC20":"1f420","\uD83D\uDC21":"1f421","\uD83D\uDC22":"1f422","\uD83D\uDC23":"1f423","\uD83D\uDC24":"1f424","\uD83D\uDC25":"1f425","\uD83D\uDC26":"1f426","\uD83D\uDC27":"1f427","\uD83D\uDC28":"1f428","\uD83D\uDC29":"1f429","\uD83D\uDC2B":"1f42b","\uD83D\uDC2C":"1f42c","\uD83D\uDC2D":"1f42d","\uD83D\uDC2E":"1f42e","\uD83D\uDC2F":"1f42f","\uD83D\uDC30":"1f430","\uD83D\uDC31":"1f431","\uD83D\uDC32":"1f432","\uD83D\uDC33":"1f433","\uD83D\uDC34":"1f434","\uD83D\uDC35":"1f435","\uD83D\uDC36":"1f436","\uD83D\uDC37":"1f437","\uD83D\uDC38":"1f438","\uD83D\uDC39":"1f439","\uD83D\uDC3A":"1f43a","\uD83D\uDC3B":"1f43b","\uD83D\uDC3C":"1f43c","\uD83D\uDC3D":"1f43d","\uD83D\uDC3E":"1f43e","\uD83D\uDC40":"1f440","\uD83D\uDC42":"1f442","\uD83D\uDC43":"1f443","\uD83D\uDC44":"1f444","\uD83D\uDC45":"1f445","\uD83D\uDC46":"1f446","\uD83D\uDC47":"1f447","\uD83D\uDC48":"1f448","\uD83D\uDC49":"1f449","\uD83D\uDC4A":"1f44a","\uD83D\uDC4B":"1f44b","\uD83D\uDC4C":"1f44c","\uD83D\uDC4D":"1f44d","\uD83D\uDC4E":"1f44e","\uD83D\uDC4F":"1f44f","\uD83D\uDC50":"1f450","\uD83D\uDC51":"1f451","\uD83D\uDC52":"1f452","\uD83D\uDC53":"1f453","\uD83D\uDC54":"1f454","\uD83D\uDC55":"1f455","\uD83D\uDC56":"1f456","\uD83D\uDC57":"1f457","\uD83D\uDC58":"1f458","\uD83D\uDC59":"1f459","\uD83D\uDC5A":"1f45a","\uD83D\uDC5B":"1f45b","\uD83D\uDC5C":"1f45c","\uD83D\uDC5D":"1f45d","\uD83D\uDC5E":"1f45e","\uD83D\uDC5F":"1f45f","\uD83D\uDC60":"1f460","\uD83D\uDC61":"1f461","\uD83D\uDC62":"1f462","\uD83D\uDC63":"1f463","\uD83D\uDC64":"1f464","\uD83D\uDC66":"1f466","\uD83D\uDC67":"1f467","\uD83D\uDC68":"1f468","\uD83D\uDC69":"1f469","\uD83D\uDC6A":"1f46a","\uD83D\uDC6B":"1f46b","\uD83D\uDC6E":"1f46e","\uD83D\uDC6F":"1f46f","\uD83D\uDC70":"1f470","\uD83D\uDC71":"1f471","\uD83D\uDC72":"1f472","\uD83D\uDC73":"1f473","\uD83D\uDC74":"1f474","\uD83D\uDC75":"1f475","\uD83D\uDC76":"1f476","\uD83D\uDC77":"1f477","\uD83D\uDC78":"1f478","\uD83D\uDC79":"1f479","\uD83D\uDC7A":"1f47a","\uD83D\uDC7B":"1f47b","\uD83D\uDC7C":"1f47c","\uD83D\uDC7D":"1f47d","\uD83D\uDC7E":"1f47e","\uD83D\uDC7F":"1f47f","\uD83D\uDC80":"1f480","\uD83D\uDCC7":"1f4c7","\uD83D\uDC81":"1f481","\uD83D\uDC82":"1f482","\uD83D\uDC83":"1f483","\uD83D\uDC84":"1f484","\uD83D\uDC85":"1f485","\uD83D\uDCD2":"1f4d2","\uD83D\uDC86":"1f486","\uD83D\uDCD3":"1f4d3","\uD83D\uDC87":"1f487","\uD83D\uDCD4":"1f4d4","\uD83D\uDC88":"1f488","\uD83D\uDCD5":"1f4d5","\uD83D\uDC89":"1f489","\uD83D\uDCD6":"1f4d6","\uD83D\uDC8A":"1f48a","\uD83D\uDCD7":"1f4d7","\uD83D\uDC8B":"1f48b","\uD83D\uDCD8":"1f4d8","\uD83D\uDC8C":"1f48c","\uD83D\uDCD9":"1f4d9","\uD83D\uDC8D":"1f48d","\uD83D\uDCDA":"1f4da","\uD83D\uDC8E":"1f48e","\uD83D\uDCDB":"1f4db","\uD83D\uDC8F":"1f48f","\uD83D\uDCDC":"1f4dc","\uD83D\uDC90":"1f490","\uD83D\uDCDD":"1f4dd","\uD83D\uDC91":"1f491","\uD83D\uDCDE":"1f4de","\uD83D\uDC92":"1f492","\uD83D\uDCDF":"1f4df","\uD83D\uDCE0":"1f4e0","\uD83D\uDC93":"1f493","\uD83D\uDCE1":"1f4e1","\uD83D\uDCE2":"1f4e2","\uD83D\uDC94":"1f494","\uD83D\uDCE3":"1f4e3","\uD83D\uDCE4":"1f4e4","\uD83D\uDC95":"1f495","\uD83D\uDCE5":"1f4e5","\uD83D\uDCE6":"1f4e6","\uD83D\uDC96":"1f496","\uD83D\uDCE7":"1f4e7","\uD83D\uDCE8":"1f4e8","\uD83D\uDC97":"1f497","\uD83D\uDCE9":"1f4e9","\uD83D\uDCEA":"1f4ea","\uD83D\uDC98":"1f498","\uD83D\uDCEB":"1f4eb","\uD83D\uDCEE":"1f4ee","\uD83D\uDC99":"1f499","\uD83D\uDCF0":"1f4f0","\uD83D\uDCF1":"1f4f1","\uD83D\uDC9A":"1f49a","\uD83D\uDCF2":"1f4f2","\uD83D\uDCF3":"1f4f3","\uD83D\uDC9B":"1f49b","\uD83D\uDCF4":"1f4f4","\uD83D\uDCF6":"1f4f6","\uD83D\uDC9C":"1f49c","\uD83D\uDCF7":"1f4f7","\uD83D\uDCF9":"1f4f9","\uD83D\uDC9D":"1f49d","\uD83D\uDCFA":"1f4fa","\uD83D\uDCFB":"1f4fb","\uD83D\uDC9E":"1f49e","\uD83D\uDCFC":"1f4fc","\uD83D\uDD03":"1f503","\uD83D\uDC9F":"1f49f","\uD83D\uDD0A":"1f50a","\uD83D\uDD0B":"1f50b","\uD83D\uDCA0":"1f4a0","\uD83D\uDD0C":"1f50c","\uD83D\uDD0D":"1f50d","\uD83D\uDCA1":"1f4a1","\uD83D\uDD0E":"1f50e","\uD83D\uDD0F":"1f50f","\uD83D\uDCA2":"1f4a2","\uD83D\uDD10":"1f510","\uD83D\uDD11":"1f511","\uD83D\uDCA3":"1f4a3","\uD83D\uDD12":"1f512","\uD83D\uDD13":"1f513","\uD83D\uDCA4":"1f4a4","\uD83D\uDD14":"1f514","\uD83D\uDD16":"1f516","\uD83D\uDCA5":"1f4a5","\uD83D\uDD17":"1f517","\uD83D\uDD18":"1f518","\uD83D\uDCA6":"1f4a6","\uD83D\uDD19":"1f519","\uD83D\uDD1A":"1f51a","\uD83D\uDCA7":"1f4a7","\uD83D\uDD1B":"1f51b","\uD83D\uDD1C":"1f51c","\uD83D\uDCA8":"1f4a8","\uD83D\uDD1D":"1f51d","\uD83D\uDD1E":"1f51e","\uD83D\uDCA9":"1f4a9","\uD83D\uDD1F":"1f51f","\uD83D\uDCAA":"1f4aa","\uD83D\uDD20":"1f520","\uD83D\uDD21":"1f521","\uD83D\uDCAB":"1f4ab","\uD83D\uDD22":"1f522","\uD83D\uDD23":"1f523","\uD83D\uDCAC":"1f4ac","\uD83D\uDD24":"1f524","\uD83D\uDD25":"1f525","\uD83D\uDCAE":"1f4ae","\uD83D\uDD26":"1f526","\uD83D\uDD27":"1f527","\uD83D\uDCAF":"1f4af","\uD83D\uDD28":"1f528","\uD83D\uDD29":"1f529","\uD83D\uDCB0":"1f4b0","\uD83D\uDD2A":"1f52a","\uD83D\uDD2B":"1f52b","\uD83D\uDCB1":"1f4b1","\uD83D\uDD2E":"1f52e","\uD83D\uDCB2":"1f4b2","\uD83D\uDD2F":"1f52f","\uD83D\uDCB3":"1f4b3","\uD83D\uDD30":"1f530","\uD83D\uDD31":"1f531","\uD83D\uDCB4":"1f4b4","\uD83D\uDD32":"1f532","\uD83D\uDD33":"1f533","\uD83D\uDCB5":"1f4b5","\uD83D\uDD34":"1f534","\uD83D\uDD35":"1f535","\uD83D\uDCB8":"1f4b8","\uD83D\uDD36":"1f536","\uD83D\uDD37":"1f537","\uD83D\uDCB9":"1f4b9","\uD83D\uDD38":"1f538","\uD83D\uDD39":"1f539","\uD83D\uDCBA":"1f4ba","\uD83D\uDD3A":"1f53a","\uD83D\uDD3B":"1f53b","\uD83D\uDCBB":"1f4bb","\uD83D\uDD3C":"1f53c","\uD83D\uDCBC":"1f4bc","\uD83D\uDD3D":"1f53d","\uD83D\uDD50":"1f550","\uD83D\uDCBD":"1f4bd","\uD83D\uDD51":"1f551","\uD83D\uDCBE":"1f4be","\uD83D\uDD52":"1f552","\uD83D\uDCBF":"1f4bf","\uD83D\uDD53":"1f553","\uD83D\uDCC0":"1f4c0","\uD83D\uDD54":"1f554","\uD83D\uDD55":"1f555","\uD83D\uDCC1":"1f4c1","\uD83D\uDD56":"1f556","\uD83D\uDD57":"1f557","\uD83D\uDCC2":"1f4c2","\uD83D\uDD58":"1f558","\uD83D\uDD59":"1f559","\uD83D\uDCC3":"1f4c3","\uD83D\uDD5A":"1f55a","\uD83D\uDD5B":"1f55b","\uD83D\uDCC4":"1f4c4","\uD83D\uDDFB":"1f5fb","\uD83D\uDDFC":"1f5fc","\uD83D\uDCC5":"1f4c5","\uD83D\uDDFD":"1f5fd","\uD83D\uDDFE":"1f5fe","\uD83D\uDCC6":"1f4c6","\uD83D\uDDFF":"1f5ff","\uD83D\uDE01":"1f601","\uD83D\uDE02":"1f602","\uD83D\uDE03":"1f603","\uD83D\uDCC8":"1f4c8","\uD83D\uDE04":"1f604","\uD83D\uDE05":"1f605","\uD83D\uDCC9":"1f4c9","\uD83D\uDE06":"1f606","\uD83D\uDE09":"1f609","\uD83D\uDCCA":"1f4ca","\uD83D\uDE0A":"1f60a","\uD83D\uDE0B":"1f60b","\uD83D\uDCCB":"1f4cb","\uD83D\uDE0C":"1f60c","\uD83D\uDE0D":"1f60d","\uD83D\uDCCC":"1f4cc","\uD83D\uDE0F":"1f60f","\uD83D\uDE12":"1f612","\uD83D\uDCCD":"1f4cd","\uD83D\uDE13":"1f613","\uD83D\uDE14":"1f614","\uD83D\uDCCE":"1f4ce","\uD83D\uDE16":"1f616","\uD83D\uDE18":"1f618","\uD83D\uDCCF":"1f4cf","\uD83D\uDE1A":"1f61a","\uD83D\uDE1C":"1f61c","\uD83D\uDCD0":"1f4d0","\uD83D\uDE1D":"1f61d","\uD83D\uDE1E":"1f61e","\uD83D\uDCD1":"1f4d1","\uD83D\uDE20":"1f620","\uD83D\uDE21":"1f621","\uD83D\uDE22":"1f622","\uD83D\uDE23":"1f623","\uD83D\uDE24":"1f624","\uD83D\uDE25":"1f625","\uD83D\uDE28":"1f628","\uD83D\uDE29":"1f629","\uD83D\uDE2A":"1f62a","\uD83D\uDE2B":"1f62b","\uD83D\uDE2D":"1f62d","\uD83D\uDE30":"1f630","\uD83D\uDE31":"1f631","\uD83D\uDE32":"1f632","\uD83D\uDE33":"1f633","\uD83D\uDE35":"1f635","\uD83D\uDE37":"1f637","\uD83D\uDE38":"1f638","\uD83D\uDE39":"1f639","\uD83D\uDE3A":"1f63a","\uD83D\uDE3B":"1f63b","\uD83D\uDE3C":"1f63c","\uD83D\uDE3D":"1f63d","\uD83D\uDE3E":"1f63e","\uD83D\uDE3F":"1f63f","\uD83D\uDE40":"1f640","\uD83D\uDE45":"1f645","\uD83D\uDE46":"1f646","\uD83D\uDE47":"1f647","\uD83D\uDE48":"1f648","\uD83D\uDE49":"1f649","\uD83D\uDE4A":"1f64a","\uD83D\uDE4B":"1f64b","\uD83D\uDE4C":"1f64c","\uD83D\uDE4D":"1f64d","\uD83D\uDE4E":"1f64e","\uD83D\uDE4F":"1f64f","\uD83D\uDE80":"1f680","\uD83D\uDE83":"1f683","\uD83D\uDE84":"1f684","\uD83D\uDE85":"1f685","\uD83D\uDE87":"1f687","\uD83D\uDE89":"1f689","\uD83D\uDE8C":"1f68c","\uD83D\uDE8F":"1f68f","\uD83D\uDE91":"1f691","\uD83D\uDE92":"1f692","\uD83D\uDE93":"1f693","\uD83D\uDE95":"1f695","\uD83D\uDE97":"1f697","\uD83D\uDE99":"1f699","\uD83D\uDE9A":"1f69a","\uD83D\uDEA2":"1f6a2","\uD83D\uDEA4":"1f6a4","\uD83D\uDEA5":"1f6a5","\uD83D\uDEA7":"1f6a7","\uD83D\uDEA8":"1f6a8","\uD83D\uDEA9":"1f6a9","\uD83D\uDEAA":"1f6aa","\uD83D\uDEAB":"1f6ab","\uD83D\uDEAC":"1f6ac","\uD83D\uDEAD":"1f6ad","\uD83D\uDEB2":"1f6b2","\uD83D\uDEB6":"1f6b6","\uD83D\uDEB9":"1f6b9","\uD83D\uDEBA":"1f6ba","\uD83D\uDEBB":"1f6bb","\uD83D\uDEBC":"1f6bc","\uD83D\uDEBD":"1f6bd","\uD83D\uDEBE":"1f6be","\uD83D\uDEC0":"1f6c0","\uD83E\uDD18":"1f918","\uD83D\uDE00":"1f600","\uD83D\uDE07":"1f607","\uD83D\uDE08":"1f608","\uD83D\uDE0E":"1f60e","\uD83D\uDE10":"1f610","\uD83D\uDE11":"1f611","\uD83D\uDE15":"1f615","\uD83D\uDE17":"1f617","\uD83D\uDE19":"1f619","\uD83D\uDE1B":"1f61b","\uD83D\uDE1F":"1f61f","\uD83D\uDE26":"1f626","\uD83D\uDE27":"1f627","\uD83D\uDE2C":"1f62c","\uD83D\uDE2E":"1f62e","\uD83D\uDE2F":"1f62f","\uD83D\uDE34":"1f634","\uD83D\uDE36":"1f636","\uD83D\uDE81":"1f681","\uD83D\uDE82":"1f682","\uD83D\uDE86":"1f686","\uD83D\uDE88":"1f688","\uD83D\uDE8A":"1f68a","\uD83D\uDE8D":"1f68d","\uD83D\uDE8E":"1f68e","\uD83D\uDE90":"1f690","\uD83D\uDE94":"1f694","\uD83D\uDE96":"1f696","\uD83D\uDE98":"1f698","\uD83D\uDE9B":"1f69b","\uD83D\uDE9C":"1f69c","\uD83D\uDE9D":"1f69d","\uD83D\uDE9E":"1f69e","\uD83D\uDE9F":"1f69f","\uD83D\uDEA0":"1f6a0","\uD83D\uDEA1":"1f6a1","\uD83D\uDEA3":"1f6a3","\uD83D\uDEA6":"1f6a6","\uD83D\uDEAE":"1f6ae","\uD83D\uDEAF":"1f6af","\uD83D\uDEB0":"1f6b0","\uD83D\uDEB1":"1f6b1","\uD83D\uDEB3":"1f6b3","\uD83D\uDEB4":"1f6b4","\uD83D\uDEB5":"1f6b5","\uD83D\uDEB7":"1f6b7","\uD83D\uDEB8":"1f6b8","\uD83D\uDEBF":"1f6bf","\uD83D\uDEC1":"1f6c1","\uD83D\uDEC2":"1f6c2","\uD83D\uDEC3":"1f6c3","\uD83D\uDEC4":"1f6c4","\uD83D\uDEC5":"1f6c5","\uD83C\uDF0D":"1f30d","\uD83C\uDF0E":"1f30e","\uD83C\uDF10":"1f310","\uD83C\uDF12":"1f312","\uD83C\uDF16":"1f316","\uD83C\uDF17":"1f317","\uD83C\uDF18":"1f318","\uD83C\uDF1A":"1f31a","\uD83C\uDF1C":"1f31c","\uD83C\uDF1D":"1f31d","\uD83C\uDF1E":"1f31e","\uD83C\uDF32":"1f332","\uD83C\uDF33":"1f333","\uD83C\uDF4B":"1f34b","\uD83C\uDF50":"1f350","\uD83C\uDF7C":"1f37c","\uD83C\uDFC7":"1f3c7","\uD83C\uDFC9":"1f3c9","\uD83C\uDFE4":"1f3e4","\uD83D\uDC00":"1f400","\uD83D\uDC01":"1f401","\uD83D\uDC02":"1f402","\uD83D\uDC03":"1f403","\uD83D\uDC04":"1f404","\uD83D\uDC05":"1f405","\uD83D\uDC06":"1f406","\uD83D\uDC07":"1f407","\uD83D\uDC08":"1f408","\uD83D\uDC09":"1f409","\uD83D\uDC0A":"1f40a","\uD83D\uDC0B":"1f40b","\uD83D\uDC0F":"1f40f","\uD83D\uDC10":"1f410","\uD83D\uDC13":"1f413","\uD83D\uDC15":"1f415","\uD83D\uDC16":"1f416","\uD83D\uDC2A":"1f42a","\uD83D\uDC65":"1f465","\uD83D\uDC6C":"1f46c","\uD83D\uDC6D":"1f46d","\uD83D\uDCAD":"1f4ad","\uD83D\uDCB6":"1f4b6","\uD83D\uDCB7":"1f4b7","\uD83D\uDCEC":"1f4ec","\uD83D\uDCED":"1f4ed","\uD83D\uDCEF":"1f4ef","\uD83D\uDCF5":"1f4f5","\uD83D\uDD00":"1f500","\uD83D\uDD01":"1f501","\uD83D\uDD02":"1f502","\uD83D\uDD04":"1f504","\uD83D\uDD05":"1f505","\uD83D\uDD06":"1f506","\uD83D\uDD07":"1f507","\uD83D\uDD09":"1f509","\uD83D\uDD15":"1f515","\uD83D\uDD2C":"1f52c","\uD83D\uDD2D":"1f52d","\uD83D\uDD5C":"1f55c","\uD83D\uDD5D":"1f55d","\uD83D\uDD5E":"1f55e","\uD83D\uDD5F":"1f55f","\uD83D\uDD60":"1f560","\uD83D\uDD61":"1f561","\uD83D\uDD62":"1f562","\uD83D\uDD63":"1f563","\uD83D\uDD64":"1f564","\uD83D\uDD65":"1f565","\uD83D\uDD66":"1f566","\uD83D\uDD67":"1f567","\uD83D\uDD08":"1f508","\uD83D\uDE8B":"1f68b","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F":"1f39f","\uD83C\uDFC5":"1f3c5","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96":"1f396","\uD83C\uDF97":"1f397","\uD83C\uDF36":"1f336","\uD83C\uDF27":"1f327","\uD83C\uDF28":"1f328","\uD83C\uDF29":"1f329","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F":"1f43f","\uD83D\uDD77":"1f577","\uD83D\uDD78":"1f578","\uD83C\uDF21":"1f321","\uD83C\uDF99":"1f399","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF4":"1f3f4","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7":"1f3f7","\uD83D\uDCF8":"1f4f8","\uD83D\uDCFD":"1f4fd","\uD83D\uDD49":"1f549","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F":"1f56f","\uD83D\uDD70":"1f570","\uD83D\uDD73":"1f573","\uD83D\uDD76":"1f576","\uD83D\uDD79":"1f579","\uD83D\uDD87":"1f587","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8":"1f5a8","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3":"1f5e3","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA":"1f5fa","\uD83D\uDECC":"1f6cc","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D":"1f37d","\uD83D\uDC41":"1f441","\uD83D\uDD74":"1f574","\uD83D\uDD75":"1f575","\uD83D\uDD90":"1f590","\uD83D\uDD95":"1f595","\uD83D\uDD96":"1f596","\uD83D\uDE41":"1f641","\uD83D\uDE42":"1f642","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF":"1f3df","\uD83D\uDECB":"1f6cb","\uD83D\uDECD":"1f6cd","\uD83D\uDECE":"1f6ce","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9":"1f6e9","\uD83D\uDEEB":"1f6eb","\uD83D\uDEEC":"1f6ec","\uD83D\uDEF3":"1f6f3","\uD83C\uDFFB":"1f3fb","\uD83C\uDFFC":"1f3fc","\uD83C\uDFFD":"1f3fd","\uD83C\uDFFE":"1f3fe","\uD83C\uDFFF":"1f3ff","\uD83C\uDF24":"1f324","\uD83C\uDF25":"1f325","\uD83C\uDF26":"1f326","\uD83D\uDDB1":"1f5b1","\uD83D\uDE43":"1f643","\uD83E\uDD11":"1f911","\uD83E\uDD13":"1f913","\uD83E\uDD17":"1f917","\uD83D\uDE44":"1f644","\uD83E\uDD14":"1f914","\uD83E\uDD10":"1f910","\uD83E\uDD12":"1f912","\uD83E\uDD15":"1f915","\uD83E\uDD16":"1f916","\uD83E\uDD81":"1f981","\uD83E\uDD84":"1f984","\uD83E\uDD82":"1f982","\uD83E\uDD80":"1f980","\uD83E\uDD83":"1f983","\uD83E\uDDC0":"1f9c0","\uD83C\uDF2D":"1f32d","\uD83C\uDF2E":"1f32e","\uD83C\uDF2F":"1f32f","\uD83C\uDF7F":"1f37f","\uD83C\uDF7E":"1f37e","\uD83C\uDFF9":"1f3f9","\uD83C\uDFFA":"1f3fa","\uD83D\uDED0":"1f6d0","\uD83D\uDD4B":"1f54b","\uD83D\uDD4C":"1f54c","\uD83D\uDD4D":"1f54d","\uD83D\uDD4E":"1f54e","\uD83D\uDCFF":"1f4ff","\uD83C\uDFCF":"1f3cf","\uD83C\uDFD0":"1f3d0","\uD83C\uDFD1":"1f3d1","\uD83C\uDFD2":"1f3d2","\uD83C\uDFD3":"1f3d3","\uD83C\uDFF8":"1f3f8","\u23E9":"23e9","\u23EA":"23ea","\u23EB":"23eb","\u23EC":"23ec","\u23F0":"23f0","\u23F3":"23f3","\u26CE":"26ce","\u270A":"270a","\u270B":"270b","\u274C":"274c","\u274E":"274e","\u27B0":"27b0","\u27BF":"27bf","\u271D":"271d","\u270D":"270d","\u23ED":"23ed","\u23EE":"23ee","\u23EF":"23ef","\u23F1":"23f1","\u23F2":"23f2","\u23F8":"23f8","\u23F9":"23f9","\u23FA":"23fa","\u262A":"262a","\u262E":"262e","\u262F":"262f","\u269B":"269b","\u269C":"269c","\u26B0":"26b0","\u26B1":"26b1","\u26C8":"26c8","\u26CF":"26cf","\u26D1":"26d1","\u26D3":"26d3","\u26E9":"26e9","\u26F0":"26f0","\u26F1":"26f1","\u26F4":"26f4","\u26F7":"26f7","\u26F8":"26f8","\u26F9":"26f9"};
- ns.imagePathPNG = '//cdn.jsdelivr.net/emojione/assets/png/';
- ns.imagePathSVG = '//cdn.jsdelivr.net/emojione/assets/svg/';
+ ns.unicodeRegexp = '(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)';
+ ns.jsEscapeMap = {"\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC69":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","\uD83D\uDC69\u2764\uD83D\uDC8B\uD83D\uDC69":"1f469-2764-1f48b-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","\uD83D\uDC68\u2764\uD83D\uDC8B\uD83D\uDC68":"1f468-2764-1f48b-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f466-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66\uD83D\uDC66":"1f468-1f468-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f467-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC66":"1f468-1f468-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-200d-1f468-200d-1f467-200d-1f467","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC67":"1f468-1f468-1f467-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-200d-1f469-200d-1f466-200d-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f468-1f469-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-200d-1f469-200d-1f467-200d-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f468-1f469-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-200d-1f469-200d-1f467-200d-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f468-1f469-1f467-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f466-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f469-1f469-1f466-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f467-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f469-1f469-1f467-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f469-200d-1f469-200d-1f467-200d-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f469-1f469-1f467-1f467","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC69":"1f469-200d-2764-fe0f-200d-1f469","\uD83D\uDC69\u2764\uD83D\uDC69":"1f469-2764-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC68":"1f468-200d-2764-fe0f-200d-1f468","\uD83D\uDC68\u2764\uD83D\uDC68":"1f468-2764-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66":"1f468-1f468-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67":"1f468-200d-1f468-200d-1f467","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67":"1f468-1f468-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f468-200d-1f469-200d-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67":"1f468-1f469-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66":"1f469-1f469-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f469-200d-1f469-200d-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67":"1f469-1f469-1f467","\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08":"1f3f3-fe0f-200d-1f308","\uD83C\uDFF3\uD83C\uDF08":"1f3f3-1f308","\uD83D\uDC41\u200D\uD83D\uDDE8":"1f441-200d-1f5e8","\uD83D\uDC41\uD83D\uDDE8":"1f441-1f5e8","#\uFE0F\u20E3":"0023-fe0f-20e3","#\u20E3":"0023-20e3","0\uFE0F\u20E3":"0030-fe0f-20e3","0\u20E3":"0030-20e3","1\uFE0F\u20E3":"0031-fe0f-20e3","1\u20E3":"0031-20e3","2\uFE0F\u20E3":"0032-fe0f-20e3","2\u20E3":"0032-20e3","3\uFE0F\u20E3":"0033-fe0f-20e3","3\u20E3":"0033-20e3","4\uFE0F\u20E3":"0034-fe0f-20e3","4\u20E3":"0034-20e3","5\uFE0F\u20E3":"0035-fe0f-20e3","5\u20E3":"0035-20e3","6\uFE0F\u20E3":"0036-fe0f-20e3","6\u20E3":"0036-20e3","7\uFE0F\u20E3":"0037-fe0f-20e3","7\u20E3":"0037-20e3","8\uFE0F\u20E3":"0038-fe0f-20e3","8\u20E3":"0038-20e3","9\uFE0F\u20E3":"0039-fe0f-20e3","9\u20E3":"0039-20e3","*\uFE0F\u20E3":"002a-fe0f-20e3","*\u20E3":"002a-20e3","\uD83E\uDD3E\uD83C\uDFFF":"1f93e-1f3ff","\uD83E\uDD3E\uD83C\uDFFE":"1f93e-1f3fe","\uD83E\uDD3E\uD83C\uDFFD":"1f93e-1f3fd","\uD83E\uDD3E\uD83C\uDFFC":"1f93e-1f3fc","\uD83E\uDD3E\uD83C\uDFFB":"1f93e-1f3fb","\uD83E\uDD3D\uD83C\uDFFF":"1f93d-1f3ff","\uD83E\uDD3D\uD83C\uDFFE":"1f93d-1f3fe","\uD83E\uDD3D\uD83C\uDFFD":"1f93d-1f3fd","\uD83E\uDD3D\uD83C\uDFFC":"1f93d-1f3fc","\uD83E\uDD3D\uD83C\uDFFB":"1f93d-1f3fb","\uD83E\uDD3C\uD83C\uDFFF":"1f93c-1f3ff","\uD83E\uDD3C\uD83C\uDFFE":"1f93c-1f3fe","\uD83E\uDD3C\uD83C\uDFFD":"1f93c-1f3fd","\uD83E\uDD3C\uD83C\uDFFC":"1f93c-1f3fc","\uD83E\uDD3C\uD83C\uDFFB":"1f93c-1f3fb","\uD83E\uDD39\uD83C\uDFFF":"1f939-1f3ff","\uD83E\uDD39\uD83C\uDFFE":"1f939-1f3fe","\uD83E\uDD39\uD83C\uDFFD":"1f939-1f3fd","\uD83E\uDD39\uD83C\uDFFC":"1f939-1f3fc","\uD83E\uDD39\uD83C\uDFFB":"1f939-1f3fb","\uD83E\uDD38\uD83C\uDFFF":"1f938-1f3ff","\uD83E\uDD38\uD83C\uDFFE":"1f938-1f3fe","\uD83E\uDD38\uD83C\uDFFD":"1f938-1f3fd","\uD83E\uDD38\uD83C\uDFFC":"1f938-1f3fc","\uD83E\uDD38\uD83C\uDFFB":"1f938-1f3fb","\uD83E\uDD37\uD83C\uDFFF":"1f937-1f3ff","\uD83E\uDD37\uD83C\uDFFE":"1f937-1f3fe","\uD83E\uDD37\uD83C\uDFFD":"1f937-1f3fd","\uD83E\uDD37\uD83C\uDFFC":"1f937-1f3fc","\uD83E\uDD37\uD83C\uDFFB":"1f937-1f3fb","\uD83E\uDD36\uD83C\uDFFF":"1f936-1f3ff","\uD83E\uDD36\uD83C\uDFFE":"1f936-1f3fe","\uD83E\uDD36\uD83C\uDFFD":"1f936-1f3fd","\uD83E\uDD36\uD83C\uDFFC":"1f936-1f3fc","\uD83E\uDD36\uD83C\uDFFB":"1f936-1f3fb","\uD83E\uDD35\uD83C\uDFFF":"1f935-1f3ff","\uD83E\uDD35\uD83C\uDFFE":"1f935-1f3fe","\uD83E\uDD35\uD83C\uDFFD":"1f935-1f3fd","\uD83E\uDD35\uD83C\uDFFC":"1f935-1f3fc","\uD83E\uDD35\uD83C\uDFFB":"1f935-1f3fb","\uD83E\uDD34\uD83C\uDFFF":"1f934-1f3ff","\uD83E\uDD34\uD83C\uDFFE":"1f934-1f3fe","\uD83E\uDD34\uD83C\uDFFD":"1f934-1f3fd","\uD83E\uDD34\uD83C\uDFFC":"1f934-1f3fc","\uD83E\uDD34\uD83C\uDFFB":"1f934-1f3fb","\uD83E\uDD33\uD83C\uDFFF":"1f933-1f3ff","\uD83E\uDD33\uD83C\uDFFE":"1f933-1f3fe","\uD83E\uDD33\uD83C\uDFFD":"1f933-1f3fd","\uD83E\uDD33\uD83C\uDFFC":"1f933-1f3fc","\uD83E\uDD33\uD83C\uDFFB":"1f933-1f3fb","\uD83E\uDD30\uD83C\uDFFF":"1f930-1f3ff","\uD83E\uDD30\uD83C\uDFFE":"1f930-1f3fe","\uD83E\uDD30\uD83C\uDFFD":"1f930-1f3fd","\uD83E\uDD30\uD83C\uDFFC":"1f930-1f3fc","\uD83E\uDD30\uD83C\uDFFB":"1f930-1f3fb","\uD83E\uDD26\uD83C\uDFFF":"1f926-1f3ff","\uD83E\uDD26\uD83C\uDFFE":"1f926-1f3fe","\uD83E\uDD26\uD83C\uDFFD":"1f926-1f3fd","\uD83E\uDD26\uD83C\uDFFC":"1f926-1f3fc","\uD83E\uDD26\uD83C\uDFFB":"1f926-1f3fb","\uD83E\uDD1E\uD83C\uDFFF":"1f91e-1f3ff","\uD83E\uDD1E\uD83C\uDFFE":"1f91e-1f3fe","\uD83E\uDD1E\uD83C\uDFFD":"1f91e-1f3fd","\uD83E\uDD1E\uD83C\uDFFC":"1f91e-1f3fc","\uD83E\uDD1E\uD83C\uDFFB":"1f91e-1f3fb","\uD83E\uDD1D\uD83C\uDFFF":"1f91d-1f3ff","\uD83E\uDD1D\uD83C\uDFFE":"1f91d-1f3fe","\uD83E\uDD1D\uD83C\uDFFD":"1f91d-1f3fd","\uD83E\uDD1D\uD83C\uDFFC":"1f91d-1f3fc","\uD83E\uDD1D\uD83C\uDFFB":"1f91d-1f3fb","\uD83E\uDD1C\uD83C\uDFFF":"1f91c-1f3ff","\uD83E\uDD1C\uD83C\uDFFE":"1f91c-1f3fe","\uD83E\uDD1C\uD83C\uDFFD":"1f91c-1f3fd","\uD83E\uDD1C\uD83C\uDFFC":"1f91c-1f3fc","\uD83E\uDD1C\uD83C\uDFFB":"1f91c-1f3fb","\uD83E\uDD1B\uD83C\uDFFF":"1f91b-1f3ff","\uD83E\uDD1B\uD83C\uDFFE":"1f91b-1f3fe","\uD83E\uDD1B\uD83C\uDFFD":"1f91b-1f3fd","\uD83E\uDD1B\uD83C\uDFFC":"1f91b-1f3fc","\uD83E\uDD1B\uD83C\uDFFB":"1f91b-1f3fb","\uD83E\uDD1A\uD83C\uDFFF":"1f91a-1f3ff","\uD83E\uDD1A\uD83C\uDFFE":"1f91a-1f3fe","\uD83E\uDD1A\uD83C\uDFFD":"1f91a-1f3fd","\uD83E\uDD1A\uD83C\uDFFC":"1f91a-1f3fc","\uD83E\uDD1A\uD83C\uDFFB":"1f91a-1f3fb","\uD83E\uDD19\uD83C\uDFFF":"1f919-1f3ff","\uD83E\uDD19\uD83C\uDFFE":"1f919-1f3fe","\uD83E\uDD19\uD83C\uDFFD":"1f919-1f3fd","\uD83E\uDD19\uD83C\uDFFC":"1f919-1f3fc","\uD83E\uDD19\uD83C\uDFFB":"1f919-1f3fb","\uD83E\uDD18\uD83C\uDFFF":"1f918-1f3ff","\uD83E\uDD18\uD83C\uDFFE":"1f918-1f3fe","\uD83E\uDD18\uD83C\uDFFD":"1f918-1f3fd","\uD83E\uDD18\uD83C\uDFFC":"1f918-1f3fc","\uD83E\uDD18\uD83C\uDFFB":"1f918-1f3fb","\uD83D\uDEC0\uD83C\uDFFF":"1f6c0-1f3ff","\uD83D\uDEC0\uD83C\uDFFE":"1f6c0-1f3fe","\uD83D\uDEC0\uD83C\uDFFD":"1f6c0-1f3fd","\uD83D\uDEC0\uD83C\uDFFC":"1f6c0-1f3fc","\uD83D\uDEC0\uD83C\uDFFB":"1f6c0-1f3fb","\uD83D\uDEB6\uD83C\uDFFF":"1f6b6-1f3ff","\uD83D\uDEB6\uD83C\uDFFE":"1f6b6-1f3fe","\uD83D\uDEB6\uD83C\uDFFD":"1f6b6-1f3fd","\uD83D\uDEB6\uD83C\uDFFC":"1f6b6-1f3fc","\uD83D\uDEB6\uD83C\uDFFB":"1f6b6-1f3fb","\uD83D\uDEB5\uD83C\uDFFF":"1f6b5-1f3ff","\uD83D\uDEB5\uD83C\uDFFE":"1f6b5-1f3fe","\uD83D\uDEB5\uD83C\uDFFD":"1f6b5-1f3fd","\uD83D\uDEB5\uD83C\uDFFC":"1f6b5-1f3fc","\uD83D\uDEB5\uD83C\uDFFB":"1f6b5-1f3fb","\uD83D\uDEB4\uD83C\uDFFF":"1f6b4-1f3ff","\uD83D\uDEB4\uD83C\uDFFE":"1f6b4-1f3fe","\uD83D\uDEB4\uD83C\uDFFD":"1f6b4-1f3fd","\uD83D\uDEB4\uD83C\uDFFC":"1f6b4-1f3fc","\uD83D\uDEB4\uD83C\uDFFB":"1f6b4-1f3fb","\uD83D\uDEA3\uD83C\uDFFF":"1f6a3-1f3ff","\uD83D\uDEA3\uD83C\uDFFE":"1f6a3-1f3fe","\uD83D\uDEA3\uD83C\uDFFD":"1f6a3-1f3fd","\uD83D\uDEA3\uD83C\uDFFC":"1f6a3-1f3fc","\uD83D\uDEA3\uD83C\uDFFB":"1f6a3-1f3fb","\uD83D\uDE4F\uD83C\uDFFF":"1f64f-1f3ff","\uD83D\uDE4F\uD83C\uDFFE":"1f64f-1f3fe","\uD83D\uDE4F\uD83C\uDFFD":"1f64f-1f3fd","\uD83D\uDE4F\uD83C\uDFFC":"1f64f-1f3fc","\uD83D\uDE4F\uD83C\uDFFB":"1f64f-1f3fb","\uD83D\uDE4E\uD83C\uDFFF":"1f64e-1f3ff","\uD83D\uDE4E\uD83C\uDFFE":"1f64e-1f3fe","\uD83D\uDE4E\uD83C\uDFFD":"1f64e-1f3fd","\uD83D\uDE4E\uD83C\uDFFC":"1f64e-1f3fc","\uD83D\uDE4E\uD83C\uDFFB":"1f64e-1f3fb","\uD83D\uDE4D\uD83C\uDFFF":"1f64d-1f3ff","\uD83D\uDE4D\uD83C\uDFFE":"1f64d-1f3fe","\uD83D\uDE4D\uD83C\uDFFD":"1f64d-1f3fd","\uD83D\uDE4D\uD83C\uDFFC":"1f64d-1f3fc","\uD83D\uDE4D\uD83C\uDFFB":"1f64d-1f3fb","\uD83D\uDE4C\uD83C\uDFFF":"1f64c-1f3ff","\uD83D\uDE4C\uD83C\uDFFE":"1f64c-1f3fe","\uD83D\uDE4C\uD83C\uDFFD":"1f64c-1f3fd","\uD83D\uDE4C\uD83C\uDFFC":"1f64c-1f3fc","\uD83D\uDE4C\uD83C\uDFFB":"1f64c-1f3fb","\uD83D\uDE4B\uD83C\uDFFF":"1f64b-1f3ff","\uD83D\uDE4B\uD83C\uDFFE":"1f64b-1f3fe","\uD83D\uDE4B\uD83C\uDFFD":"1f64b-1f3fd","\uD83D\uDE4B\uD83C\uDFFC":"1f64b-1f3fc","\uD83D\uDE4B\uD83C\uDFFB":"1f64b-1f3fb","\uD83D\uDE47\uD83C\uDFFF":"1f647-1f3ff","\uD83D\uDE47\uD83C\uDFFE":"1f647-1f3fe","\uD83D\uDE47\uD83C\uDFFD":"1f647-1f3fd","\uD83D\uDE47\uD83C\uDFFC":"1f647-1f3fc","\uD83D\uDE47\uD83C\uDFFB":"1f647-1f3fb","\uD83D\uDE46\uD83C\uDFFF":"1f646-1f3ff","\uD83D\uDE46\uD83C\uDFFE":"1f646-1f3fe","\uD83D\uDE46\uD83C\uDFFD":"1f646-1f3fd","\uD83D\uDE46\uD83C\uDFFC":"1f646-1f3fc","\uD83D\uDE46\uD83C\uDFFB":"1f646-1f3fb","\uD83D\uDE45\uD83C\uDFFF":"1f645-1f3ff","\uD83D\uDE45\uD83C\uDFFE":"1f645-1f3fe","\uD83D\uDE45\uD83C\uDFFD":"1f645-1f3fd","\uD83D\uDE45\uD83C\uDFFC":"1f645-1f3fc","\uD83D\uDE45\uD83C\uDFFB":"1f645-1f3fb","\uD83D\uDD96\uD83C\uDFFF":"1f596-1f3ff","\uD83D\uDD96\uD83C\uDFFE":"1f596-1f3fe","\uD83D\uDD96\uD83C\uDFFD":"1f596-1f3fd","\uD83D\uDD96\uD83C\uDFFC":"1f596-1f3fc","\uD83D\uDD96\uD83C\uDFFB":"1f596-1f3fb","\uD83D\uDD95\uD83C\uDFFF":"1f595-1f3ff","\uD83D\uDD95\uD83C\uDFFE":"1f595-1f3fe","\uD83D\uDD95\uD83C\uDFFD":"1f595-1f3fd","\uD83D\uDD95\uD83C\uDFFC":"1f595-1f3fc","\uD83D\uDD95\uD83C\uDFFB":"1f595-1f3fb","\uD83D\uDD90\uD83C\uDFFF":"1f590-1f3ff","\uD83D\uDD90\uD83C\uDFFE":"1f590-1f3fe","\uD83D\uDD90\uD83C\uDFFD":"1f590-1f3fd","\uD83D\uDD90\uD83C\uDFFC":"1f590-1f3fc","\uD83D\uDD90\uD83C\uDFFB":"1f590-1f3fb","\uD83D\uDD7A\uD83C\uDFFF":"1f57a-1f3ff","\uD83D\uDD7A\uD83C\uDFFE":"1f57a-1f3fe","\uD83D\uDD7A\uD83C\uDFFD":"1f57a-1f3fd","\uD83D\uDD7A\uD83C\uDFFC":"1f57a-1f3fc","\uD83D\uDD7A\uD83C\uDFFB":"1f57a-1f3fb","\uD83D\uDD75\uD83C\uDFFF":"1f575-1f3ff","\uD83D\uDD75\uD83C\uDFFE":"1f575-1f3fe","\uD83D\uDD75\uD83C\uDFFD":"1f575-1f3fd","\uD83D\uDD75\uD83C\uDFFC":"1f575-1f3fc","\uD83D\uDD75\uD83C\uDFFB":"1f575-1f3fb","\uD83D\uDCAA\uD83C\uDFFF":"1f4aa-1f3ff","\uD83D\uDCAA\uD83C\uDFFE":"1f4aa-1f3fe","\uD83D\uDCAA\uD83C\uDFFD":"1f4aa-1f3fd","\uD83D\uDCAA\uD83C\uDFFC":"1f4aa-1f3fc","\uD83D\uDCAA\uD83C\uDFFB":"1f4aa-1f3fb","\uD83D\uDC87\uD83C\uDFFF":"1f487-1f3ff","\uD83D\uDC87\uD83C\uDFFE":"1f487-1f3fe","\uD83D\uDC87\uD83C\uDFFD":"1f487-1f3fd","\uD83D\uDC87\uD83C\uDFFC":"1f487-1f3fc","\uD83D\uDC87\uD83C\uDFFB":"1f487-1f3fb","\uD83D\uDC86\uD83C\uDFFF":"1f486-1f3ff","\uD83D\uDC86\uD83C\uDFFE":"1f486-1f3fe","\uD83D\uDC86\uD83C\uDFFD":"1f486-1f3fd","\uD83D\uDC86\uD83C\uDFFC":"1f486-1f3fc","\uD83D\uDC86\uD83C\uDFFB":"1f486-1f3fb","\uD83D\uDC85\uD83C\uDFFF":"1f485-1f3ff","\uD83D\uDC85\uD83C\uDFFE":"1f485-1f3fe","\uD83D\uDC85\uD83C\uDFFD":"1f485-1f3fd","\uD83D\uDC85\uD83C\uDFFC":"1f485-1f3fc","\uD83D\uDC85\uD83C\uDFFB":"1f485-1f3fb","\uD83D\uDC83\uD83C\uDFFF":"1f483-1f3ff","\uD83D\uDC83\uD83C\uDFFE":"1f483-1f3fe","\uD83D\uDC83\uD83C\uDFFD":"1f483-1f3fd","\uD83D\uDC83\uD83C\uDFFC":"1f483-1f3fc","\uD83D\uDC83\uD83C\uDFFB":"1f483-1f3fb","\uD83D\uDC82\uD83C\uDFFF":"1f482-1f3ff","\uD83D\uDC82\uD83C\uDFFE":"1f482-1f3fe","\uD83D\uDC82\uD83C\uDFFD":"1f482-1f3fd","\uD83D\uDC82\uD83C\uDFFC":"1f482-1f3fc","\uD83D\uDC82\uD83C\uDFFB":"1f482-1f3fb","\uD83D\uDC81\uD83C\uDFFF":"1f481-1f3ff","\uD83D\uDC81\uD83C\uDFFE":"1f481-1f3fe","\uD83D\uDC81\uD83C\uDFFD":"1f481-1f3fd","\uD83D\uDC81\uD83C\uDFFC":"1f481-1f3fc","\uD83D\uDC81\uD83C\uDFFB":"1f481-1f3fb","\uD83D\uDC7C\uD83C\uDFFF":"1f47c-1f3ff","\uD83D\uDC7C\uD83C\uDFFE":"1f47c-1f3fe","\uD83D\uDC7C\uD83C\uDFFD":"1f47c-1f3fd","\uD83D\uDC7C\uD83C\uDFFC":"1f47c-1f3fc","\uD83D\uDC7C\uD83C\uDFFB":"1f47c-1f3fb","\uD83D\uDC78\uD83C\uDFFF":"1f478-1f3ff","\uD83D\uDC78\uD83C\uDFFE":"1f478-1f3fe","\uD83D\uDC78\uD83C\uDFFD":"1f478-1f3fd","\uD83D\uDC78\uD83C\uDFFC":"1f478-1f3fc","\uD83D\uDC78\uD83C\uDFFB":"1f478-1f3fb","\uD83D\uDC77\uD83C\uDFFF":"1f477-1f3ff","\uD83D\uDC77\uD83C\uDFFE":"1f477-1f3fe","\uD83D\uDC77\uD83C\uDFFD":"1f477-1f3fd","\uD83D\uDC77\uD83C\uDFFC":"1f477-1f3fc","\uD83D\uDC77\uD83C\uDFFB":"1f477-1f3fb","\uD83D\uDC76\uD83C\uDFFF":"1f476-1f3ff","\uD83D\uDC76\uD83C\uDFFE":"1f476-1f3fe","\uD83D\uDC76\uD83C\uDFFD":"1f476-1f3fd","\uD83D\uDC76\uD83C\uDFFC":"1f476-1f3fc","\uD83D\uDC76\uD83C\uDFFB":"1f476-1f3fb","\uD83D\uDC75\uD83C\uDFFF":"1f475-1f3ff","\uD83D\uDC75\uD83C\uDFFE":"1f475-1f3fe","\uD83D\uDC75\uD83C\uDFFD":"1f475-1f3fd","\uD83D\uDC75\uD83C\uDFFC":"1f475-1f3fc","\uD83D\uDC75\uD83C\uDFFB":"1f475-1f3fb","\uD83D\uDC74\uD83C\uDFFF":"1f474-1f3ff","\uD83D\uDC74\uD83C\uDFFE":"1f474-1f3fe","\uD83D\uDC74\uD83C\uDFFD":"1f474-1f3fd","\uD83D\uDC74\uD83C\uDFFC":"1f474-1f3fc","\uD83D\uDC74\uD83C\uDFFB":"1f474-1f3fb","\uD83D\uDC73\uD83C\uDFFF":"1f473-1f3ff","\uD83D\uDC73\uD83C\uDFFE":"1f473-1f3fe","\uD83D\uDC73\uD83C\uDFFD":"1f473-1f3fd","\uD83D\uDC73\uD83C\uDFFC":"1f473-1f3fc","\uD83D\uDC73\uD83C\uDFFB":"1f473-1f3fb","\uD83D\uDC72\uD83C\uDFFF":"1f472-1f3ff","\uD83D\uDC72\uD83C\uDFFE":"1f472-1f3fe","\uD83D\uDC72\uD83C\uDFFD":"1f472-1f3fd","\uD83D\uDC72\uD83C\uDFFC":"1f472-1f3fc","\uD83D\uDC72\uD83C\uDFFB":"1f472-1f3fb","\uD83D\uDC71\uD83C\uDFFF":"1f471-1f3ff","\uD83D\uDC71\uD83C\uDFFE":"1f471-1f3fe","\uD83D\uDC71\uD83C\uDFFD":"1f471-1f3fd","\uD83D\uDC71\uD83C\uDFFC":"1f471-1f3fc","\uD83D\uDC71\uD83C\uDFFB":"1f471-1f3fb","\uD83D\uDC70\uD83C\uDFFF":"1f470-1f3ff","\uD83D\uDC70\uD83C\uDFFE":"1f470-1f3fe","\uD83D\uDC70\uD83C\uDFFD":"1f470-1f3fd","\uD83D\uDC70\uD83C\uDFFC":"1f470-1f3fc","\uD83D\uDC70\uD83C\uDFFB":"1f470-1f3fb","\uD83D\uDC6E\uD83C\uDFFF":"1f46e-1f3ff","\uD83D\uDC6E\uD83C\uDFFE":"1f46e-1f3fe","\uD83D\uDC6E\uD83C\uDFFD":"1f46e-1f3fd","\uD83D\uDC6E\uD83C\uDFFC":"1f46e-1f3fc","\uD83D\uDC6E\uD83C\uDFFB":"1f46e-1f3fb","\uD83D\uDC69\uD83C\uDFFF":"1f469-1f3ff","\uD83D\uDC69\uD83C\uDFFE":"1f469-1f3fe","\uD83D\uDC69\uD83C\uDFFD":"1f469-1f3fd","\uD83D\uDC69\uD83C\uDFFC":"1f469-1f3fc","\uD83D\uDC69\uD83C\uDFFB":"1f469-1f3fb","\uD83D\uDC68\uD83C\uDFFF":"1f468-1f3ff","\uD83D\uDC68\uD83C\uDFFE":"1f468-1f3fe","\uD83D\uDC68\uD83C\uDFFD":"1f468-1f3fd","\uD83D\uDC68\uD83C\uDFFC":"1f468-1f3fc","\uD83D\uDC68\uD83C\uDFFB":"1f468-1f3fb","\uD83D\uDC67\uD83C\uDFFF":"1f467-1f3ff","\uD83D\uDC67\uD83C\uDFFE":"1f467-1f3fe","\uD83D\uDC67\uD83C\uDFFD":"1f467-1f3fd","\uD83D\uDC67\uD83C\uDFFC":"1f467-1f3fc","\uD83D\uDC67\uD83C\uDFFB":"1f467-1f3fb","\uD83D\uDC66\uD83C\uDFFF":"1f466-1f3ff","\uD83D\uDC66\uD83C\uDFFE":"1f466-1f3fe","\uD83D\uDC66\uD83C\uDFFD":"1f466-1f3fd","\uD83D\uDC66\uD83C\uDFFC":"1f466-1f3fc","\uD83D\uDC66\uD83C\uDFFB":"1f466-1f3fb","\uD83D\uDC50\uD83C\uDFFF":"1f450-1f3ff","\uD83D\uDC50\uD83C\uDFFE":"1f450-1f3fe","\uD83D\uDC50\uD83C\uDFFD":"1f450-1f3fd","\uD83D\uDC50\uD83C\uDFFC":"1f450-1f3fc","\uD83D\uDC50\uD83C\uDFFB":"1f450-1f3fb","\uD83D\uDC4F\uD83C\uDFFF":"1f44f-1f3ff","\uD83D\uDC4F\uD83C\uDFFE":"1f44f-1f3fe","\uD83D\uDC4F\uD83C\uDFFD":"1f44f-1f3fd","\uD83D\uDC4F\uD83C\uDFFC":"1f44f-1f3fc","\uD83D\uDC4F\uD83C\uDFFB":"1f44f-1f3fb","\uD83D\uDC4E\uD83C\uDFFF":"1f44e-1f3ff","\uD83D\uDC4E\uD83C\uDFFE":"1f44e-1f3fe","\uD83D\uDC4E\uD83C\uDFFD":"1f44e-1f3fd","\uD83D\uDC4E\uD83C\uDFFC":"1f44e-1f3fc","\uD83D\uDC4E\uD83C\uDFFB":"1f44e-1f3fb","\uD83D\uDC4D\uD83C\uDFFF":"1f44d-1f3ff","\uD83D\uDC4D\uD83C\uDFFE":"1f44d-1f3fe","\uD83D\uDC4D\uD83C\uDFFD":"1f44d-1f3fd","\uD83D\uDC4D\uD83C\uDFFC":"1f44d-1f3fc","\uD83D\uDC4D\uD83C\uDFFB":"1f44d-1f3fb","\uD83D\uDC4C\uD83C\uDFFF":"1f44c-1f3ff","\uD83D\uDC4C\uD83C\uDFFE":"1f44c-1f3fe","\uD83D\uDC4C\uD83C\uDFFD":"1f44c-1f3fd","\uD83D\uDC4C\uD83C\uDFFC":"1f44c-1f3fc","\uD83D\uDC4C\uD83C\uDFFB":"1f44c-1f3fb","\uD83D\uDC4B\uD83C\uDFFF":"1f44b-1f3ff","\uD83D\uDC4B\uD83C\uDFFE":"1f44b-1f3fe","\uD83D\uDC4B\uD83C\uDFFD":"1f44b-1f3fd","\uD83D\uDC4B\uD83C\uDFFC":"1f44b-1f3fc","\uD83D\uDC4B\uD83C\uDFFB":"1f44b-1f3fb","\uD83D\uDC4A\uD83C\uDFFF":"1f44a-1f3ff","\uD83D\uDC4A\uD83C\uDFFE":"1f44a-1f3fe","\uD83D\uDC4A\uD83C\uDFFD":"1f44a-1f3fd","\uD83D\uDC4A\uD83C\uDFFC":"1f44a-1f3fc","\uD83D\uDC4A\uD83C\uDFFB":"1f44a-1f3fb","\uD83D\uDC49\uD83C\uDFFF":"1f449-1f3ff","\uD83D\uDC49\uD83C\uDFFE":"1f449-1f3fe","\uD83D\uDC49\uD83C\uDFFD":"1f449-1f3fd","\uD83D\uDC49\uD83C\uDFFC":"1f449-1f3fc","\uD83D\uDC49\uD83C\uDFFB":"1f449-1f3fb","\uD83D\uDC48\uD83C\uDFFF":"1f448-1f3ff","\uD83D\uDC48\uD83C\uDFFE":"1f448-1f3fe","\uD83D\uDC48\uD83C\uDFFD":"1f448-1f3fd","\uD83D\uDC48\uD83C\uDFFC":"1f448-1f3fc","\uD83D\uDC48\uD83C\uDFFB":"1f448-1f3fb","\uD83D\uDC47\uD83C\uDFFF":"1f447-1f3ff","\uD83D\uDC47\uD83C\uDFFE":"1f447-1f3fe","\uD83D\uDC47\uD83C\uDFFD":"1f447-1f3fd","\uD83D\uDC47\uD83C\uDFFC":"1f447-1f3fc","\uD83D\uDC47\uD83C\uDFFB":"1f447-1f3fb","\uD83D\uDC46\uD83C\uDFFF":"1f446-1f3ff","\uD83D\uDC46\uD83C\uDFFE":"1f446-1f3fe","\uD83D\uDC46\uD83C\uDFFD":"1f446-1f3fd","\uD83D\uDC46\uD83C\uDFFC":"1f446-1f3fc","\uD83D\uDC46\uD83C\uDFFB":"1f446-1f3fb","\uD83D\uDC43\uD83C\uDFFF":"1f443-1f3ff","\uD83D\uDC43\uD83C\uDFFE":"1f443-1f3fe","\uD83D\uDC43\uD83C\uDFFD":"1f443-1f3fd","\uD83D\uDC43\uD83C\uDFFC":"1f443-1f3fc","\uD83D\uDC43\uD83C\uDFFB":"1f443-1f3fb","\uD83D\uDC42\uD83C\uDFFF":"1f442-1f3ff","\uD83D\uDC42\uD83C\uDFFE":"1f442-1f3fe","\uD83D\uDC42\uD83C\uDFFD":"1f442-1f3fd","\uD83D\uDC42\uD83C\uDFFC":"1f442-1f3fc","\uD83D\uDC42\uD83C\uDFFB":"1f442-1f3fb","\uD83C\uDFCB\uD83C\uDFFF":"1f3cb-1f3ff","\uD83C\uDFCB\uD83C\uDFFE":"1f3cb-1f3fe","\uD83C\uDFCB\uD83C\uDFFD":"1f3cb-1f3fd","\uD83C\uDFCB\uD83C\uDFFC":"1f3cb-1f3fc","\uD83C\uDFCB\uD83C\uDFFB":"1f3cb-1f3fb","\uD83C\uDFCA\uD83C\uDFFF":"1f3ca-1f3ff","\uD83C\uDFCA\uD83C\uDFFE":"1f3ca-1f3fe","\uD83C\uDFCA\uD83C\uDFFD":"1f3ca-1f3fd","\uD83C\uDFCA\uD83C\uDFFC":"1f3ca-1f3fc","\uD83C\uDFCA\uD83C\uDFFB":"1f3ca-1f3fb","\uD83C\uDFC7\uD83C\uDFFF":"1f3c7-1f3ff","\uD83C\uDFC7\uD83C\uDFFE":"1f3c7-1f3fe","\uD83C\uDFC7\uD83C\uDFFD":"1f3c7-1f3fd","\uD83C\uDFC7\uD83C\uDFFC":"1f3c7-1f3fc","\uD83C\uDFC7\uD83C\uDFFB":"1f3c7-1f3fb","\uD83C\uDFC4\uD83C\uDFFF":"1f3c4-1f3ff","\uD83C\uDFC4\uD83C\uDFFE":"1f3c4-1f3fe","\uD83C\uDFC4\uD83C\uDFFD":"1f3c4-1f3fd","\uD83C\uDFC4\uD83C\uDFFC":"1f3c4-1f3fc","\uD83C\uDFC4\uD83C\uDFFB":"1f3c4-1f3fb","\uD83C\uDFC3\uD83C\uDFFF":"1f3c3-1f3ff","\uD83C\uDFC3\uD83C\uDFFE":"1f3c3-1f3fe","\uD83C\uDFC3\uD83C\uDFFD":"1f3c3-1f3fd","\uD83C\uDFC3\uD83C\uDFFC":"1f3c3-1f3fc","\uD83C\uDFC3\uD83C\uDFFB":"1f3c3-1f3fb","\uD83C\uDF85\uD83C\uDFFF":"1f385-1f3ff","\uD83C\uDF85\uD83C\uDFFE":"1f385-1f3fe","\uD83C\uDF85\uD83C\uDFFD":"1f385-1f3fd","\uD83C\uDF85\uD83C\uDFFC":"1f385-1f3fc","\uD83C\uDF85\uD83C\uDFFB":"1f385-1f3fb","\uD83C\uDDFF\uD83C\uDDFC":"1f1ff-1f1fc","\uD83C\uDDFF\uD83C\uDDF2":"1f1ff-1f1f2","\uD83C\uDDFF\uD83C\uDDE6":"1f1ff-1f1e6","\uD83C\uDDFE\uD83C\uDDF9":"1f1fe-1f1f9","\uD83C\uDDFE\uD83C\uDDEA":"1f1fe-1f1ea","\uD83C\uDDFD\uD83C\uDDF0":"1f1fd-1f1f0","\uD83C\uDDFC\uD83C\uDDF8":"1f1fc-1f1f8","\uD83C\uDDFC\uD83C\uDDEB":"1f1fc-1f1eb","\uD83C\uDDFB\uD83C\uDDFA":"1f1fb-1f1fa","\uD83C\uDDFB\uD83C\uDDF3":"1f1fb-1f1f3","\uD83C\uDDFB\uD83C\uDDEE":"1f1fb-1f1ee","\uD83C\uDDFB\uD83C\uDDEC":"1f1fb-1f1ec","\uD83C\uDDFB\uD83C\uDDEA":"1f1fb-1f1ea","\uD83C\uDDFB\uD83C\uDDE8":"1f1fb-1f1e8","\uD83C\uDDFB\uD83C\uDDE6":"1f1fb-1f1e6","\uD83C\uDDFA\uD83C\uDDFF":"1f1fa-1f1ff","\uD83C\uDDFA\uD83C\uDDFE":"1f1fa-1f1fe","\uD83C\uDDFA\uD83C\uDDF8":"1f1fa-1f1f8","\uD83C\uDDFA\uD83C\uDDF2":"1f1fa-1f1f2","\uD83C\uDDFA\uD83C\uDDEC":"1f1fa-1f1ec","\uD83C\uDDFA\uD83C\uDDE6":"1f1fa-1f1e6","\uD83C\uDDF9\uD83C\uDDFF":"1f1f9-1f1ff","\uD83C\uDDF9\uD83C\uDDFC":"1f1f9-1f1fc","\uD83C\uDDF9\uD83C\uDDFB":"1f1f9-1f1fb","\uD83C\uDDF9\uD83C\uDDF9":"1f1f9-1f1f9","\uD83C\uDDF9\uD83C\uDDF7":"1f1f9-1f1f7","\uD83C\uDDF9\uD83C\uDDF4":"1f1f9-1f1f4","\uD83C\uDDF9\uD83C\uDDF3":"1f1f9-1f1f3","\uD83C\uDDF9\uD83C\uDDF2":"1f1f9-1f1f2","\uD83C\uDDF9\uD83C\uDDF1":"1f1f9-1f1f1","\uD83C\uDDF9\uD83C\uDDF0":"1f1f9-1f1f0","\uD83C\uDDF9\uD83C\uDDEF":"1f1f9-1f1ef","\uD83C\uDDF9\uD83C\uDDED":"1f1f9-1f1ed","\uD83C\uDDF9\uD83C\uDDEC":"1f1f9-1f1ec","\uD83C\uDDF9\uD83C\uDDEB":"1f1f9-1f1eb","\uD83C\uDDF9\uD83C\uDDE9":"1f1f9-1f1e9","\uD83C\uDDF9\uD83C\uDDE8":"1f1f9-1f1e8","\uD83C\uDDF9\uD83C\uDDE6":"1f1f9-1f1e6","\uD83C\uDDF8\uD83C\uDDFF":"1f1f8-1f1ff","\uD83C\uDDF8\uD83C\uDDFE":"1f1f8-1f1fe","\uD83C\uDDF8\uD83C\uDDFD":"1f1f8-1f1fd","\uD83C\uDDF8\uD83C\uDDFB":"1f1f8-1f1fb","\uD83C\uDDF8\uD83C\uDDF9":"1f1f8-1f1f9","\uD83C\uDDF8\uD83C\uDDF8":"1f1f8-1f1f8","\uD83C\uDDF8\uD83C\uDDF7":"1f1f8-1f1f7","\uD83C\uDDF8\uD83C\uDDF4":"1f1f8-1f1f4","\uD83C\uDDF8\uD83C\uDDF3":"1f1f8-1f1f3","\uD83C\uDDF8\uD83C\uDDF2":"1f1f8-1f1f2","\uD83C\uDDF8\uD83C\uDDF1":"1f1f8-1f1f1","\uD83C\uDDF8\uD83C\uDDF0":"1f1f8-1f1f0","\uD83C\uDDF8\uD83C\uDDEF":"1f1f8-1f1ef","\uD83C\uDDF8\uD83C\uDDEE":"1f1f8-1f1ee","\uD83C\uDDF8\uD83C\uDDED":"1f1f8-1f1ed","\uD83C\uDDF8\uD83C\uDDEC":"1f1f8-1f1ec","\uD83C\uDDF8\uD83C\uDDEA":"1f1f8-1f1ea","\uD83C\uDDF8\uD83C\uDDE9":"1f1f8-1f1e9","\uD83C\uDDF8\uD83C\uDDE8":"1f1f8-1f1e8","\uD83C\uDDF8\uD83C\uDDE7":"1f1f8-1f1e7","\uD83C\uDDF8\uD83C\uDDE6":"1f1f8-1f1e6","\uD83C\uDDF7\uD83C\uDDFC":"1f1f7-1f1fc","\uD83C\uDDF7\uD83C\uDDFA":"1f1f7-1f1fa","\uD83C\uDDF7\uD83C\uDDF8":"1f1f7-1f1f8","\uD83C\uDDF7\uD83C\uDDF4":"1f1f7-1f1f4","\uD83C\uDDF7\uD83C\uDDEA":"1f1f7-1f1ea","\uD83C\uDDF6\uD83C\uDDE6":"1f1f6-1f1e6","\uD83C\uDDF5\uD83C\uDDFE":"1f1f5-1f1fe","\uD83C\uDDF5\uD83C\uDDFC":"1f1f5-1f1fc","\uD83C\uDDF5\uD83C\uDDF9":"1f1f5-1f1f9","\uD83C\uDDF5\uD83C\uDDF8":"1f1f5-1f1f8","\uD83C\uDDF5\uD83C\uDDF7":"1f1f5-1f1f7","\uD83C\uDDF5\uD83C\uDDF3":"1f1f5-1f1f3","\uD83C\uDDF5\uD83C\uDDF2":"1f1f5-1f1f2","\uD83C\uDDF5\uD83C\uDDF1":"1f1f5-1f1f1","\uD83C\uDDF5\uD83C\uDDF0":"1f1f5-1f1f0","\uD83C\uDDF5\uD83C\uDDED":"1f1f5-1f1ed","\uD83C\uDDF5\uD83C\uDDEC":"1f1f5-1f1ec","\uD83C\uDDF5\uD83C\uDDEB":"1f1f5-1f1eb","\uD83C\uDDF5\uD83C\uDDEA":"1f1f5-1f1ea","\uD83C\uDDF5\uD83C\uDDE6":"1f1f5-1f1e6","\uD83C\uDDF4\uD83C\uDDF2":"1f1f4-1f1f2","\uD83C\uDDF3\uD83C\uDDFF":"1f1f3-1f1ff","\uD83C\uDDF3\uD83C\uDDFA":"1f1f3-1f1fa","\uD83C\uDDF3\uD83C\uDDF7":"1f1f3-1f1f7","\uD83C\uDDF3\uD83C\uDDF5":"1f1f3-1f1f5","\uD83C\uDDF3\uD83C\uDDF4":"1f1f3-1f1f4","\uD83C\uDDF3\uD83C\uDDF1":"1f1f3-1f1f1","\uD83C\uDDF3\uD83C\uDDEE":"1f1f3-1f1ee","\uD83C\uDDF3\uD83C\uDDEC":"1f1f3-1f1ec","\uD83C\uDDF3\uD83C\uDDEB":"1f1f3-1f1eb","\uD83C\uDDF3\uD83C\uDDEA":"1f1f3-1f1ea","\uD83C\uDDF3\uD83C\uDDE8":"1f1f3-1f1e8","\uD83C\uDDF3\uD83C\uDDE6":"1f1f3-1f1e6","\uD83C\uDDF2\uD83C\uDDFF":"1f1f2-1f1ff","\uD83C\uDDF2\uD83C\uDDFE":"1f1f2-1f1fe","\uD83C\uDDF2\uD83C\uDDFD":"1f1f2-1f1fd","\uD83C\uDDF2\uD83C\uDDFC":"1f1f2-1f1fc","\uD83C\uDDF2\uD83C\uDDFB":"1f1f2-1f1fb","\uD83C\uDDF2\uD83C\uDDFA":"1f1f2-1f1fa","\uD83C\uDDF2\uD83C\uDDF9":"1f1f2-1f1f9","\uD83C\uDDF2\uD83C\uDDF8":"1f1f2-1f1f8","\uD83C\uDDF2\uD83C\uDDF7":"1f1f2-1f1f7","\uD83C\uDDF2\uD83C\uDDF6":"1f1f2-1f1f6","\uD83C\uDDF2\uD83C\uDDF5":"1f1f2-1f1f5","\uD83C\uDDF2\uD83C\uDDF4":"1f1f2-1f1f4","\uD83C\uDDF2\uD83C\uDDF3":"1f1f2-1f1f3","\uD83C\uDDF2\uD83C\uDDF2":"1f1f2-1f1f2","\uD83C\uDDF2\uD83C\uDDF1":"1f1f2-1f1f1","\uD83C\uDDF2\uD83C\uDDF0":"1f1f2-1f1f0","\uD83C\uDDF2\uD83C\uDDED":"1f1f2-1f1ed","\uD83C\uDDF2\uD83C\uDDEC":"1f1f2-1f1ec","\uD83C\uDDF2\uD83C\uDDEB":"1f1f2-1f1eb","\uD83C\uDDF2\uD83C\uDDEA":"1f1f2-1f1ea","\uD83C\uDDF2\uD83C\uDDE9":"1f1f2-1f1e9","\uD83C\uDDF2\uD83C\uDDE8":"1f1f2-1f1e8","\uD83C\uDDF2\uD83C\uDDE6":"1f1f2-1f1e6","\uD83C\uDDF1\uD83C\uDDFE":"1f1f1-1f1fe","\uD83C\uDDF1\uD83C\uDDFB":"1f1f1-1f1fb","\uD83C\uDDF1\uD83C\uDDFA":"1f1f1-1f1fa","\uD83C\uDDF1\uD83C\uDDF9":"1f1f1-1f1f9","\uD83C\uDDF1\uD83C\uDDF8":"1f1f1-1f1f8","\uD83C\uDDF1\uD83C\uDDF7":"1f1f1-1f1f7","\uD83C\uDDF1\uD83C\uDDF0":"1f1f1-1f1f0","\uD83C\uDDF1\uD83C\uDDEE":"1f1f1-1f1ee","\uD83C\uDDF1\uD83C\uDDE8":"1f1f1-1f1e8","\uD83C\uDDF1\uD83C\uDDE7":"1f1f1-1f1e7","\uD83C\uDDF1\uD83C\uDDE6":"1f1f1-1f1e6","\uD83C\uDDF0\uD83C\uDDFF":"1f1f0-1f1ff","\uD83C\uDDF0\uD83C\uDDFE":"1f1f0-1f1fe","\uD83C\uDDF0\uD83C\uDDFC":"1f1f0-1f1fc","\uD83C\uDDF0\uD83C\uDDF7":"1f1f0-1f1f7","\uD83C\uDDF0\uD83C\uDDF5":"1f1f0-1f1f5","\uD83C\uDDF0\uD83C\uDDF3":"1f1f0-1f1f3","\uD83C\uDDF0\uD83C\uDDF2":"1f1f0-1f1f2","\uD83C\uDDF0\uD83C\uDDEE":"1f1f0-1f1ee","\uD83C\uDDF0\uD83C\uDDED":"1f1f0-1f1ed","\uD83C\uDDF0\uD83C\uDDEC":"1f1f0-1f1ec","\uD83C\uDDF0\uD83C\uDDEA":"1f1f0-1f1ea","\uD83C\uDDEF\uD83C\uDDF5":"1f1ef-1f1f5","\uD83C\uDDEF\uD83C\uDDF4":"1f1ef-1f1f4","\uD83C\uDDEF\uD83C\uDDF2":"1f1ef-1f1f2","\uD83C\uDDEF\uD83C\uDDEA":"1f1ef-1f1ea","\uD83C\uDDEE\uD83C\uDDF9":"1f1ee-1f1f9","\uD83C\uDDEE\uD83C\uDDF8":"1f1ee-1f1f8","\uD83C\uDDEE\uD83C\uDDF7":"1f1ee-1f1f7","\uD83C\uDDEE\uD83C\uDDF6":"1f1ee-1f1f6","\uD83C\uDDEE\uD83C\uDDF4":"1f1ee-1f1f4","\uD83C\uDDEE\uD83C\uDDF3":"1f1ee-1f1f3","\uD83C\uDDEE\uD83C\uDDF2":"1f1ee-1f1f2","\uD83C\uDDEE\uD83C\uDDF1":"1f1ee-1f1f1","\uD83C\uDDEE\uD83C\uDDEA":"1f1ee-1f1ea","\uD83C\uDDEE\uD83C\uDDE9":"1f1ee-1f1e9","\uD83C\uDDEE\uD83C\uDDE8":"1f1ee-1f1e8","\uD83C\uDDED\uD83C\uDDFA":"1f1ed-1f1fa","\uD83C\uDDED\uD83C\uDDF9":"1f1ed-1f1f9","\uD83C\uDDED\uD83C\uDDF7":"1f1ed-1f1f7","\uD83C\uDDED\uD83C\uDDF3":"1f1ed-1f1f3","\uD83C\uDDED\uD83C\uDDF2":"1f1ed-1f1f2","\uD83C\uDDED\uD83C\uDDF0":"1f1ed-1f1f0","\uD83C\uDDEC\uD83C\uDDFE":"1f1ec-1f1fe","\uD83C\uDDEC\uD83C\uDDFC":"1f1ec-1f1fc","\uD83C\uDDEC\uD83C\uDDFA":"1f1ec-1f1fa","\uD83C\uDDEC\uD83C\uDDF9":"1f1ec-1f1f9","\uD83C\uDDEC\uD83C\uDDF8":"1f1ec-1f1f8","\uD83C\uDDEC\uD83C\uDDF7":"1f1ec-1f1f7","\uD83C\uDDEC\uD83C\uDDF6":"1f1ec-1f1f6","\uD83C\uDDEC\uD83C\uDDF5":"1f1ec-1f1f5","\uD83C\uDDEC\uD83C\uDDF3":"1f1ec-1f1f3","\uD83C\uDDEC\uD83C\uDDF2":"1f1ec-1f1f2","\uD83C\uDDEC\uD83C\uDDF1":"1f1ec-1f1f1","\uD83C\uDDEC\uD83C\uDDEE":"1f1ec-1f1ee","\uD83C\uDDEC\uD83C\uDDED":"1f1ec-1f1ed","\uD83C\uDDEC\uD83C\uDDEC":"1f1ec-1f1ec","\uD83C\uDDEC\uD83C\uDDEB":"1f1ec-1f1eb","\uD83C\uDDEC\uD83C\uDDEA":"1f1ec-1f1ea","\uD83C\uDDEC\uD83C\uDDE9":"1f1ec-1f1e9","\uD83C\uDDEC\uD83C\uDDE7":"1f1ec-1f1e7","\uD83C\uDDEC\uD83C\uDDE6":"1f1ec-1f1e6","\uD83C\uDDEB\uD83C\uDDF7":"1f1eb-1f1f7","\uD83C\uDDEB\uD83C\uDDF4":"1f1eb-1f1f4","\uD83C\uDDEB\uD83C\uDDF2":"1f1eb-1f1f2","\uD83C\uDDEB\uD83C\uDDF0":"1f1eb-1f1f0","\uD83C\uDDEB\uD83C\uDDEF":"1f1eb-1f1ef","\uD83C\uDDEB\uD83C\uDDEE":"1f1eb-1f1ee","\uD83C\uDDEA\uD83C\uDDFA":"1f1ea-1f1fa","\uD83C\uDDEA\uD83C\uDDF9":"1f1ea-1f1f9","\uD83C\uDDEA\uD83C\uDDF8":"1f1ea-1f1f8","\uD83C\uDDEA\uD83C\uDDF7":"1f1ea-1f1f7","\uD83C\uDDEA\uD83C\uDDED":"1f1ea-1f1ed","\uD83C\uDDEA\uD83C\uDDEC":"1f1ea-1f1ec","\uD83C\uDDEA\uD83C\uDDEA":"1f1ea-1f1ea","\uD83C\uDDEA\uD83C\uDDE8":"1f1ea-1f1e8","\uD83C\uDDEA\uD83C\uDDE6":"1f1ea-1f1e6","\uD83C\uDDE9\uD83C\uDDFF":"1f1e9-1f1ff","\uD83C\uDDE9\uD83C\uDDF4":"1f1e9-1f1f4","\uD83C\uDDE9\uD83C\uDDF2":"1f1e9-1f1f2","\uD83C\uDDE9\uD83C\uDDF0":"1f1e9-1f1f0","\uD83C\uDDE9\uD83C\uDDEF":"1f1e9-1f1ef","\uD83C\uDDE9\uD83C\uDDEC":"1f1e9-1f1ec","\uD83C\uDDE9\uD83C\uDDEA":"1f1e9-1f1ea","\uD83C\uDDE8\uD83C\uDDFF":"1f1e8-1f1ff","\uD83C\uDDE8\uD83C\uDDFE":"1f1e8-1f1fe","\uD83C\uDDE8\uD83C\uDDFD":"1f1e8-1f1fd","\uD83C\uDDE8\uD83C\uDDFC":"1f1e8-1f1fc","\uD83C\uDDE8\uD83C\uDDFB":"1f1e8-1f1fb","\uD83C\uDDE8\uD83C\uDDFA":"1f1e8-1f1fa","\uD83C\uDDE8\uD83C\uDDF7":"1f1e8-1f1f7","\uD83C\uDDE8\uD83C\uDDF5":"1f1e8-1f1f5","\uD83C\uDDE8\uD83C\uDDF4":"1f1e8-1f1f4","\uD83C\uDDE8\uD83C\uDDF3":"1f1e8-1f1f3","\uD83C\uDDE8\uD83C\uDDF2":"1f1e8-1f1f2","\uD83C\uDDE8\uD83C\uDDF1":"1f1e8-1f1f1","\uD83C\uDDE8\uD83C\uDDF0":"1f1e8-1f1f0","\uD83C\uDDE8\uD83C\uDDEE":"1f1e8-1f1ee","\uD83C\uDDE8\uD83C\uDDED":"1f1e8-1f1ed","\uD83C\uDDE8\uD83C\uDDEC":"1f1e8-1f1ec","\uD83C\uDDE8\uD83C\uDDEB":"1f1e8-1f1eb","\uD83C\uDDE8\uD83C\uDDE9":"1f1e8-1f1e9","\uD83C\uDDE8\uD83C\uDDE8":"1f1e8-1f1e8","\uD83C\uDDE8\uD83C\uDDE6":"1f1e8-1f1e6","\uD83C\uDDE7\uD83C\uDDFF":"1f1e7-1f1ff","\uD83C\uDDE7\uD83C\uDDFE":"1f1e7-1f1fe","\uD83C\uDDE7\uD83C\uDDFC":"1f1e7-1f1fc","\uD83C\uDDE7\uD83C\uDDFB":"1f1e7-1f1fb","\uD83C\uDDE7\uD83C\uDDF9":"1f1e7-1f1f9","\uD83C\uDDE7\uD83C\uDDF8":"1f1e7-1f1f8","\uD83C\uDDE7\uD83C\uDDF7":"1f1e7-1f1f7","\uD83C\uDDE7\uD83C\uDDF6":"1f1e7-1f1f6","\uD83C\uDDE7\uD83C\uDDF4":"1f1e7-1f1f4","\uD83C\uDDE7\uD83C\uDDF3":"1f1e7-1f1f3","\uD83C\uDDE7\uD83C\uDDF2":"1f1e7-1f1f2","\uD83C\uDDE7\uD83C\uDDF1":"1f1e7-1f1f1","\uD83C\uDDE7\uD83C\uDDEF":"1f1e7-1f1ef","\uD83C\uDDE7\uD83C\uDDEE":"1f1e7-1f1ee","\uD83C\uDDE7\uD83C\uDDED":"1f1e7-1f1ed","\uD83C\uDDE7\uD83C\uDDEC":"1f1e7-1f1ec","\uD83C\uDDE7\uD83C\uDDEB":"1f1e7-1f1eb","\uD83C\uDDE7\uD83C\uDDEA":"1f1e7-1f1ea","\uD83C\uDDE7\uD83C\uDDE9":"1f1e7-1f1e9","\uD83C\uDDE7\uD83C\uDDE7":"1f1e7-1f1e7","\uD83C\uDDE7\uD83C\uDDE6":"1f1e7-1f1e6","\uD83C\uDDE6\uD83C\uDDFF":"1f1e6-1f1ff","\uD83C\uDDE6\uD83C\uDDFD":"1f1e6-1f1fd","\uD83C\uDDE6\uD83C\uDDFC":"1f1e6-1f1fc","\uD83C\uDDE6\uD83C\uDDFA":"1f1e6-1f1fa","\uD83C\uDDE6\uD83C\uDDF9":"1f1e6-1f1f9","\uD83C\uDDE6\uD83C\uDDF8":"1f1e6-1f1f8","\uD83C\uDDE6\uD83C\uDDF7":"1f1e6-1f1f7","\uD83C\uDDE6\uD83C\uDDF6":"1f1e6-1f1f6","\uD83C\uDDE6\uD83C\uDDF4":"1f1e6-1f1f4","\uD83C\uDDE6\uD83C\uDDF2":"1f1e6-1f1f2","\uD83C\uDDE6\uD83C\uDDF1":"1f1e6-1f1f1","\uD83C\uDDE6\uD83C\uDDEE":"1f1e6-1f1ee","\uD83C\uDDE6\uD83C\uDDEC":"1f1e6-1f1ec","\uD83C\uDDE6\uD83C\uDDEB":"1f1e6-1f1eb","\uD83C\uDDE6\uD83C\uDDEA":"1f1e6-1f1ea","\uD83C\uDDE6\uD83C\uDDE9":"1f1e6-1f1e9","\uD83C\uDDE6\uD83C\uDDE8":"1f1e6-1f1e8","\uD83C\uDC04\uFE0F":"1f004-fe0f","\uD83C\uDC04":"1f004","\uD83C\uDD7F\uFE0F":"1f17f-fe0f","\uD83C\uDD7F":"1f17f","\uD83C\uDE02\uFE0F":"1f202-fe0f","\uD83C\uDE02":"1f202","\uD83C\uDE1A\uFE0F":"1f21a-fe0f","\uD83C\uDE1A":"1f21a","\uD83C\uDE2F\uFE0F":"1f22f-fe0f","\uD83C\uDE2F":"1f22f","\uD83C\uDE37\uFE0F":"1f237-fe0f","\uD83C\uDE37":"1f237","\uD83C\uDF9E\uFE0F":"1f39e-fe0f","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F\uFE0F":"1f39f-fe0f","\uD83C\uDF9F":"1f39f","\uD83C\uDFCB\uFE0F":"1f3cb-fe0f","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC\uFE0F":"1f3cc-fe0f","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD\uFE0F":"1f3cd-fe0f","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE\uFE0F":"1f3ce-fe0f","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96\uFE0F":"1f396-fe0f","\uD83C\uDF96":"1f396","\uD83C\uDF97\uFE0F":"1f397-fe0f","\uD83C\uDF97":"1f397","\uD83C\uDF36\uFE0F":"1f336-fe0f","\uD83C\uDF36":"1f336","\uD83C\uDF27\uFE0F":"1f327-fe0f","\uD83C\uDF27":"1f327","\uD83C\uDF28\uFE0F":"1f328-fe0f","\uD83C\uDF28":"1f328","\uD83C\uDF29\uFE0F":"1f329-fe0f","\uD83C\uDF29":"1f329","\uD83C\uDF2A\uFE0F":"1f32a-fe0f","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B\uFE0F":"1f32b-fe0f","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C\uFE0F":"1f32c-fe0f","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F\uFE0F":"1f43f-fe0f","\uD83D\uDC3F":"1f43f","\uD83D\uDD77\uFE0F":"1f577-fe0f","\uD83D\uDD77":"1f577","\uD83D\uDD78\uFE0F":"1f578-fe0f","\uD83D\uDD78":"1f578","\uD83C\uDF21\uFE0F":"1f321-fe0f","\uD83C\uDF21":"1f321","\uD83C\uDF99\uFE0F":"1f399-fe0f","\uD83C\uDF99":"1f399","\uD83C\uDF9A\uFE0F":"1f39a-fe0f","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B\uFE0F":"1f39b-fe0f","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3\uFE0F":"1f3f3-fe0f","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF5\uFE0F":"1f3f5-fe0f","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7\uFE0F":"1f3f7-fe0f","\uD83C\uDFF7":"1f3f7","\uD83D\uDCFD\uFE0F":"1f4fd-fe0f","\uD83D\uDCFD":"1f4fd","\uD83D\uDD49\uFE0F":"1f549-fe0f","\uD83D\uDD49":"1f549","\uD83D\uDD4A\uFE0F":"1f54a-fe0f","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F\uFE0F":"1f56f-fe0f","\uD83D\uDD6F":"1f56f","\uD83D\uDD70\uFE0F":"1f570-fe0f","\uD83D\uDD70":"1f570","\uD83D\uDD73\uFE0F":"1f573-fe0f","\uD83D\uDD73":"1f573","\uD83D\uDD76\uFE0F":"1f576-fe0f","\uD83D\uDD76":"1f576","\uD83D\uDD79\uFE0F":"1f579-fe0f","\uD83D\uDD79":"1f579","\uD83D\uDD87\uFE0F":"1f587-fe0f","\uD83D\uDD87":"1f587","\uD83D\uDD8A\uFE0F":"1f58a-fe0f","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B\uFE0F":"1f58b-fe0f","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C\uFE0F":"1f58c-fe0f","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D\uFE0F":"1f58d-fe0f","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5\uFE0F":"1f5a5-fe0f","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8\uFE0F":"1f5a8-fe0f","\uD83D\uDDA8":"1f5a8","\uD83D\uDDB2\uFE0F":"1f5b2-fe0f","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC\uFE0F":"1f5bc-fe0f","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2\uFE0F":"1f5c2-fe0f","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3\uFE0F":"1f5c3-fe0f","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4\uFE0F":"1f5c4-fe0f","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1\uFE0F":"1f5d1-fe0f","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2\uFE0F":"1f5d2-fe0f","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3\uFE0F":"1f5d3-fe0f","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC\uFE0F":"1f5dc-fe0f","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD\uFE0F":"1f5dd-fe0f","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE\uFE0F":"1f5de-fe0f","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1\uFE0F":"1f5e1-fe0f","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3\uFE0F":"1f5e3-fe0f","\uD83D\uDDE3":"1f5e3","\uD83D\uDDE8\uFE0F":"1f5e8-fe0f","\uD83D\uDDE8":"1f5e8","\uD83D\uDDEF\uFE0F":"1f5ef-fe0f","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3\uFE0F":"1f5f3-fe0f","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA\uFE0F":"1f5fa-fe0f","\uD83D\uDDFA":"1f5fa","\uD83D\uDEE0\uFE0F":"1f6e0-fe0f","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1\uFE0F":"1f6e1-fe0f","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2\uFE0F":"1f6e2-fe0f","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0\uFE0F":"1f6f0-fe0f","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D\uFE0F":"1f37d-fe0f","\uD83C\uDF7D":"1f37d","\uD83D\uDC41\uFE0F":"1f441-fe0f","\uD83D\uDC41":"1f441","\uD83D\uDD74\uFE0F":"1f574-fe0f","\uD83D\uDD74":"1f574","\uD83D\uDD75\uFE0F":"1f575-fe0f","\uD83D\uDD75":"1f575","\uD83D\uDD90\uFE0F":"1f590-fe0f","\uD83D\uDD90":"1f590","\uD83C\uDFD4\uFE0F":"1f3d4-fe0f","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5\uFE0F":"1f3d5-fe0f","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6\uFE0F":"1f3d6-fe0f","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7\uFE0F":"1f3d7-fe0f","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8\uFE0F":"1f3d8-fe0f","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9\uFE0F":"1f3d9-fe0f","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA\uFE0F":"1f3da-fe0f","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB\uFE0F":"1f3db-fe0f","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC\uFE0F":"1f3dc-fe0f","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD\uFE0F":"1f3dd-fe0f","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE\uFE0F":"1f3de-fe0f","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF\uFE0F":"1f3df-fe0f","\uD83C\uDFDF":"1f3df","\uD83D\uDECB\uFE0F":"1f6cb-fe0f","\uD83D\uDECB":"1f6cb","\uD83D\uDECD\uFE0F":"1f6cd-fe0f","\uD83D\uDECD":"1f6cd","\uD83D\uDECE\uFE0F":"1f6ce-fe0f","\uD83D\uDECE":"1f6ce","\uD83D\uDECF\uFE0F":"1f6cf-fe0f","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3\uFE0F":"1f6e3-fe0f","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4\uFE0F":"1f6e4-fe0f","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5\uFE0F":"1f6e5-fe0f","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9\uFE0F":"1f6e9-fe0f","\uD83D\uDEE9":"1f6e9","\uD83D\uDEF3\uFE0F":"1f6f3-fe0f","\uD83D\uDEF3":"1f6f3","\uD83C\uDF24\uFE0F":"1f324-fe0f","\uD83C\uDF24":"1f324","\uD83C\uDF25\uFE0F":"1f325-fe0f","\uD83C\uDF25":"1f325","\uD83C\uDF26\uFE0F":"1f326-fe0f","\uD83C\uDF26":"1f326","\uD83D\uDDB1\uFE0F":"1f5b1-fe0f","\uD83D\uDDB1":"1f5b1","\u261D\uD83C\uDFFB":"261d-1f3fb","\u261D\uD83C\uDFFC":"261d-1f3fc","\u261D\uD83C\uDFFD":"261d-1f3fd","\u261D\uD83C\uDFFE":"261d-1f3fe","\u261D\uD83C\uDFFF":"261d-1f3ff","\u270C\uD83C\uDFFB":"270c-1f3fb","\u270C\uD83C\uDFFC":"270c-1f3fc","\u270C\uD83C\uDFFD":"270c-1f3fd","\u270C\uD83C\uDFFE":"270c-1f3fe","\u270C\uD83C\uDFFF":"270c-1f3ff","\u270A\uD83C\uDFFB":"270a-1f3fb","\u270A\uD83C\uDFFC":"270a-1f3fc","\u270A\uD83C\uDFFD":"270a-1f3fd","\u270A\uD83C\uDFFE":"270a-1f3fe","\u270A\uD83C\uDFFF":"270a-1f3ff","\u270B\uD83C\uDFFB":"270b-1f3fb","\u270B\uD83C\uDFFC":"270b-1f3fc","\u270B\uD83C\uDFFD":"270b-1f3fd","\u270B\uD83C\uDFFE":"270b-1f3fe","\u270B\uD83C\uDFFF":"270b-1f3ff","\u270D\uD83C\uDFFB":"270d-1f3fb","\u270D\uD83C\uDFFC":"270d-1f3fc","\u270D\uD83C\uDFFD":"270d-1f3fd","\u270D\uD83C\uDFFE":"270d-1f3fe","\u270D\uD83C\uDFFF":"270d-1f3ff","\u26F9\uD83C\uDFFB":"26f9-1f3fb","\u26F9\uD83C\uDFFC":"26f9-1f3fc","\u26F9\uD83C\uDFFD":"26f9-1f3fd","\u26F9\uD83C\uDFFE":"26f9-1f3fe","\u26F9\uD83C\uDFFF":"26f9-1f3ff","\u00A9\uFE0F":"00a9-fe0f","\u00A9":"00a9","\u00AE\uFE0F":"00ae-fe0f","\u00AE":"00ae","\u203C\uFE0F":"203c-fe0f","\u203C":"203c","\u2049\uFE0F":"2049-fe0f","\u2049":"2049","\u2122\uFE0F":"2122-fe0f","\u2122":"2122","\u2139\uFE0F":"2139-fe0f","\u2139":"2139","\u2194\uFE0F":"2194-fe0f","\u2194":"2194","\u2195\uFE0F":"2195-fe0f","\u2195":"2195","\u2196\uFE0F":"2196-fe0f","\u2196":"2196","\u2197\uFE0F":"2197-fe0f","\u2197":"2197","\u2198\uFE0F":"2198-fe0f","\u2198":"2198","\u2199\uFE0F":"2199-fe0f","\u2199":"2199","\u21A9\uFE0F":"21a9-fe0f","\u21A9":"21a9","\u21AA\uFE0F":"21aa-fe0f","\u21AA":"21aa","\u231A\uFE0F":"231a-fe0f","\u231A":"231a","\u231B\uFE0F":"231b-fe0f","\u231B":"231b","\u24C2\uFE0F":"24c2-fe0f","\u24C2":"24c2","\u25AA\uFE0F":"25aa-fe0f","\u25AA":"25aa","\u25AB\uFE0F":"25ab-fe0f","\u25AB":"25ab","\u25B6\uFE0F":"25b6-fe0f","\u25B6":"25b6","\u25C0\uFE0F":"25c0-fe0f","\u25C0":"25c0","\u25FB\uFE0F":"25fb-fe0f","\u25FB":"25fb","\u25FC\uFE0F":"25fc-fe0f","\u25FC":"25fc","\u25FD\uFE0F":"25fd-fe0f","\u25FD":"25fd","\u25FE\uFE0F":"25fe-fe0f","\u25FE":"25fe","\u2600\uFE0F":"2600-fe0f","\u2600":"2600","\u2601\uFE0F":"2601-fe0f","\u2601":"2601","\u260E\uFE0F":"260e-fe0f","\u260E":"260e","\u2611\uFE0F":"2611-fe0f","\u2611":"2611","\u2614\uFE0F":"2614-fe0f","\u2614":"2614","\u2615\uFE0F":"2615-fe0f","\u2615":"2615","\u261D\uFE0F":"261d-fe0f","\u261D":"261d","\u263A\uFE0F":"263a-fe0f","\u263A":"263a","\u2648\uFE0F":"2648-fe0f","\u2648":"2648","\u2649\uFE0F":"2649-fe0f","\u2649":"2649","\u264A\uFE0F":"264a-fe0f","\u264A":"264a","\u264B\uFE0F":"264b-fe0f","\u264B":"264b","\u264C\uFE0F":"264c-fe0f","\u264C":"264c","\u264D\uFE0F":"264d-fe0f","\u264D":"264d","\u264E\uFE0F":"264e-fe0f","\u264E":"264e","\u264F\uFE0F":"264f-fe0f","\u264F":"264f","\u2650\uFE0F":"2650-fe0f","\u2650":"2650","\u2651\uFE0F":"2651-fe0f","\u2651":"2651","\u2652\uFE0F":"2652-fe0f","\u2652":"2652","\u2653\uFE0F":"2653-fe0f","\u2653":"2653","\u2660\uFE0F":"2660-fe0f","\u2660":"2660","\u2663\uFE0F":"2663-fe0f","\u2663":"2663","\u2665\uFE0F":"2665-fe0f","\u2665":"2665","\u2666\uFE0F":"2666-fe0f","\u2666":"2666","\u2668\uFE0F":"2668-fe0f","\u2668":"2668","\u267B\uFE0F":"267b-fe0f","\u267B":"267b","\u267F\uFE0F":"267f-fe0f","\u267F":"267f","\u2693\uFE0F":"2693-fe0f","\u2693":"2693","\u26A0\uFE0F":"26a0-fe0f","\u26A0":"26a0","\u26A1\uFE0F":"26a1-fe0f","\u26A1":"26a1","\u26AA\uFE0F":"26aa-fe0f","\u26AA":"26aa","\u26AB\uFE0F":"26ab-fe0f","\u26AB":"26ab","\u26BD\uFE0F":"26bd-fe0f","\u26BD":"26bd","\u26BE\uFE0F":"26be-fe0f","\u26BE":"26be","\u26C4\uFE0F":"26c4-fe0f","\u26C4":"26c4","\u26C5\uFE0F":"26c5-fe0f","\u26C5":"26c5","\u26D4\uFE0F":"26d4-fe0f","\u26D4":"26d4","\u26EA\uFE0F":"26ea-fe0f","\u26EA":"26ea","\u26F2\uFE0F":"26f2-fe0f","\u26F2":"26f2","\u26F3\uFE0F":"26f3-fe0f","\u26F3":"26f3","\u26F5\uFE0F":"26f5-fe0f","\u26F5":"26f5","\u26FA\uFE0F":"26fa-fe0f","\u26FA":"26fa","\u26FD\uFE0F":"26fd-fe0f","\u26FD":"26fd","\u2702\uFE0F":"2702-fe0f","\u2702":"2702","\u2708\uFE0F":"2708-fe0f","\u2708":"2708","\u2709\uFE0F":"2709-fe0f","\u2709":"2709","\u270C\uFE0F":"270c-fe0f","\u270C":"270c","\u270F\uFE0F":"270f-fe0f","\u270F":"270f","\u2712\uFE0F":"2712-fe0f","\u2712":"2712","\u2714\uFE0F":"2714-fe0f","\u2714":"2714","\u2716\uFE0F":"2716-fe0f","\u2716":"2716","\u2733\uFE0F":"2733-fe0f","\u2733":"2733","\u2734\uFE0F":"2734-fe0f","\u2734":"2734","\u2744\uFE0F":"2744-fe0f","\u2744":"2744","\u2747\uFE0F":"2747-fe0f","\u2747":"2747","\u2757\uFE0F":"2757-fe0f","\u2757":"2757","\u2764\uFE0F":"2764-fe0f","\u2764":"2764","\u27A1\uFE0F":"27a1-fe0f","\u27A1":"27a1","\u2934\uFE0F":"2934-fe0f","\u2934":"2934","\u2935\uFE0F":"2935-fe0f","\u2935":"2935","\u2B05\uFE0F":"2b05-fe0f","\u2B05":"2b05","\u2B06\uFE0F":"2b06-fe0f","\u2B06":"2b06","\u2B07\uFE0F":"2b07-fe0f","\u2B07":"2b07","\u2B1B\uFE0F":"2b1b-fe0f","\u2B1B":"2b1b","\u2B1C\uFE0F":"2b1c-fe0f","\u2B1C":"2b1c","\u2B50\uFE0F":"2b50-fe0f","\u2B50":"2b50","\u2B55\uFE0F":"2b55-fe0f","\u2B55":"2b55","\u3030\uFE0F":"3030-fe0f","\u3030":"3030","\u303D\uFE0F":"303d-fe0f","\u303D":"303d","\u3297\uFE0F":"3297-fe0f","\u3297":"3297","\u3299\uFE0F":"3299-fe0f","\u3299":"3299","\u271D\uFE0F":"271d-fe0f","\u271D":"271d","\u2328\uFE0F":"2328-fe0f","\u2328":"2328","\u270D\uFE0F":"270d-fe0f","\u270D":"270d","\u23CF\uFE0F":"23cf-fe0f","\u23CF":"23cf","\u23ED\uFE0F":"23ed-fe0f","\u23ED":"23ed","\u23EE\uFE0F":"23ee-fe0f","\u23EE":"23ee","\u23EF\uFE0F":"23ef-fe0f","\u23EF":"23ef","\u23F1\uFE0F":"23f1-fe0f","\u23F1":"23f1","\u23F2\uFE0F":"23f2-fe0f","\u23F2":"23f2","\u23F8\uFE0F":"23f8-fe0f","\u23F8":"23f8","\u23F9\uFE0F":"23f9-fe0f","\u23F9":"23f9","\u23FA\uFE0F":"23fa-fe0f","\u23FA":"23fa","\u2602\uFE0F":"2602-fe0f","\u2602":"2602","\u2603\uFE0F":"2603-fe0f","\u2603":"2603","\u2604\uFE0F":"2604-fe0f","\u2604":"2604","\u2618\uFE0F":"2618-fe0f","\u2618":"2618","\u2620\uFE0F":"2620-fe0f","\u2620":"2620","\u2622\uFE0F":"2622-fe0f","\u2622":"2622","\u2623\uFE0F":"2623-fe0f","\u2623":"2623","\u2626\uFE0F":"2626-fe0f","\u2626":"2626","\u262A\uFE0F":"262a-fe0f","\u262A":"262a","\u262E\uFE0F":"262e-fe0f","\u262E":"262e","\u262F\uFE0F":"262f-fe0f","\u262F":"262f","\u2638\uFE0F":"2638-fe0f","\u2638":"2638","\u2639\uFE0F":"2639-fe0f","\u2639":"2639","\u2692\uFE0F":"2692-fe0f","\u2692":"2692","\u2694\uFE0F":"2694-fe0f","\u2694":"2694","\u2696\uFE0F":"2696-fe0f","\u2696":"2696","\u2697\uFE0F":"2697-fe0f","\u2697":"2697","\u2699\uFE0F":"2699-fe0f","\u2699":"2699","\u269B\uFE0F":"269b-fe0f","\u269B":"269b","\u269C\uFE0F":"269c-fe0f","\u269C":"269c","\u26B0\uFE0F":"26b0-fe0f","\u26B0":"26b0","\u26B1\uFE0F":"26b1-fe0f","\u26B1":"26b1","\u26C8\uFE0F":"26c8-fe0f","\u26C8":"26c8","\u26CF\uFE0F":"26cf-fe0f","\u26CF":"26cf","\u26D1\uFE0F":"26d1-fe0f","\u26D1":"26d1","\u26D3\uFE0F":"26d3-fe0f","\u26D3":"26d3","\u26E9\uFE0F":"26e9-fe0f","\u26E9":"26e9","\u26F0\uFE0F":"26f0-fe0f","\u26F0":"26f0","\u26F1\uFE0F":"26f1-fe0f","\u26F1":"26f1","\u26F4\uFE0F":"26f4-fe0f","\u26F4":"26f4","\u26F7\uFE0F":"26f7-fe0f","\u26F7":"26f7","\u26F8\uFE0F":"26f8-fe0f","\u26F8":"26f8","\u26F9\uFE0F":"26f9-fe0f","\u26F9":"26f9","\u2721\uFE0F":"2721-fe0f","\u2721":"2721","\u2763\uFE0F":"2763-fe0f","\u2763":"2763","\uD83E\uDD49":"1f949","\uD83E\uDD48":"1f948","\uD83E\uDD47":"1f947","\uD83E\uDD3A":"1f93a","\uD83E\uDD45":"1f945","\uD83E\uDD3E":"1f93e","\uD83C\uDDFF":"1f1ff","\uD83E\uDD3D":"1f93d","\uD83E\uDD4B":"1f94b","\uD83E\uDD4A":"1f94a","\uD83E\uDD3C":"1f93c","\uD83E\uDD39":"1f939","\uD83E\uDD38":"1f938","\uD83D\uDEF6":"1f6f6","\uD83D\uDEF5":"1f6f5","\uD83D\uDEF4":"1f6f4","\uD83D\uDED2":"1f6d2","\uD83C\uDCCF":"1f0cf","\uD83C\uDD70":"1f170","\uD83C\uDD71":"1f171","\uD83C\uDD7E":"1f17e","\uD83D\uDED1":"1f6d1","\uD83C\uDD8E":"1f18e","\uD83C\uDD91":"1f191","\uD83C\uDDFE":"1f1fe","\uD83C\uDD92":"1f192","\uD83C\uDD93":"1f193","\uD83C\uDD94":"1f194","\uD83C\uDD95":"1f195","\uD83C\uDD96":"1f196","\uD83C\uDD97":"1f197","\uD83C\uDD98":"1f198","\uD83E\uDD44":"1f944","\uD83C\uDD99":"1f199","\uD83C\uDD9A":"1f19a","\uD83E\uDD42":"1f942","\uD83E\uDD43":"1f943","\uD83C\uDE01":"1f201","\uD83E\uDD59":"1f959","\uD83C\uDE32":"1f232","\uD83C\uDE33":"1f233","\uD83C\uDE34":"1f234","\uD83C\uDE35":"1f235","\uD83C\uDE36":"1f236","\uD83E\uDD58":"1f958","\uD83C\uDE38":"1f238","\uD83C\uDE39":"1f239","\uD83E\uDD57":"1f957","\uD83C\uDE3A":"1f23a","\uD83C\uDE50":"1f250","\uD83C\uDE51":"1f251","\uD83C\uDF00":"1f300","\uD83E\uDD56":"1f956","\uD83C\uDF01":"1f301","\uD83C\uDF02":"1f302","\uD83C\uDF03":"1f303","\uD83C\uDF04":"1f304","\uD83C\uDF05":"1f305","\uD83C\uDF06":"1f306","\uD83E\uDD55":"1f955","\uD83C\uDF07":"1f307","\uD83C\uDF08":"1f308","\uD83E\uDD54":"1f954","\uD83C\uDF09":"1f309","\uD83C\uDF0A":"1f30a","\uD83C\uDF0B":"1f30b","\uD83C\uDF0C":"1f30c","\uD83C\uDF0F":"1f30f","\uD83C\uDF11":"1f311","\uD83E\uDD53":"1f953","\uD83C\uDF13":"1f313","\uD83C\uDF14":"1f314","\uD83C\uDF15":"1f315","\uD83C\uDF19":"1f319","\uD83C\uDF1B":"1f31b","\uD83C\uDF1F":"1f31f","\uD83E\uDD52":"1f952","\uD83C\uDF20":"1f320","\uD83C\uDF30":"1f330","\uD83E\uDD51":"1f951","\uD83C\uDF31":"1f331","\uD83C\uDF34":"1f334","\uD83C\uDF35":"1f335","\uD83C\uDF37":"1f337","\uD83C\uDF38":"1f338","\uD83C\uDF39":"1f339","\uD83C\uDF3A":"1f33a","\uD83C\uDF3B":"1f33b","\uD83C\uDF3C":"1f33c","\uD83C\uDF3D":"1f33d","\uD83E\uDD50":"1f950","\uD83C\uDF3E":"1f33e","\uD83C\uDF3F":"1f33f","\uD83C\uDF40":"1f340","\uD83C\uDF41":"1f341","\uD83C\uDF42":"1f342","\uD83C\uDF43":"1f343","\uD83C\uDF44":"1f344","\uD83C\uDF45":"1f345","\uD83C\uDF46":"1f346","\uD83C\uDF47":"1f347","\uD83C\uDF48":"1f348","\uD83C\uDF49":"1f349","\uD83C\uDF4A":"1f34a","\uD83E\uDD40":"1f940","\uD83C\uDF4C":"1f34c","\uD83C\uDF4D":"1f34d","\uD83C\uDF4E":"1f34e","\uD83C\uDF4F":"1f34f","\uD83C\uDF51":"1f351","\uD83C\uDF52":"1f352","\uD83C\uDF53":"1f353","\uD83E\uDD8F":"1f98f","\uD83C\uDF54":"1f354","\uD83C\uDF55":"1f355","\uD83C\uDF56":"1f356","\uD83E\uDD8E":"1f98e","\uD83C\uDF57":"1f357","\uD83C\uDF58":"1f358","\uD83C\uDF59":"1f359","\uD83E\uDD8D":"1f98d","\uD83C\uDF5A":"1f35a","\uD83C\uDF5B":"1f35b","\uD83E\uDD8C":"1f98c","\uD83C\uDF5C":"1f35c","\uD83C\uDF5D":"1f35d","\uD83C\uDF5E":"1f35e","\uD83C\uDF5F":"1f35f","\uD83E\uDD8B":"1f98b","\uD83C\uDF60":"1f360","\uD83C\uDF61":"1f361","\uD83E\uDD8A":"1f98a","\uD83C\uDF62":"1f362","\uD83C\uDF63":"1f363","\uD83E\uDD89":"1f989","\uD83C\uDF64":"1f364","\uD83C\uDF65":"1f365","\uD83E\uDD88":"1f988","\uD83C\uDF66":"1f366","\uD83E\uDD87":"1f987","\uD83C\uDF67":"1f367","\uD83C\uDDFD":"1f1fd","\uD83C\uDF68":"1f368","\uD83E\uDD86":"1f986","\uD83C\uDF69":"1f369","\uD83E\uDD85":"1f985","\uD83C\uDF6A":"1f36a","\uD83D\uDDA4":"1f5a4","\uD83C\uDF6B":"1f36b","\uD83C\uDF6C":"1f36c","\uD83C\uDF6D":"1f36d","\uD83C\uDF6E":"1f36e","\uD83C\uDF6F":"1f36f","\uD83E\uDD1E":"1f91e","\uD83C\uDF70":"1f370","\uD83C\uDF71":"1f371","\uD83C\uDF72":"1f372","\uD83E\uDD1D":"1f91d","\uD83C\uDF73":"1f373","\uD83C\uDF74":"1f374","\uD83C\uDF75":"1f375","\uD83C\uDF76":"1f376","\uD83C\uDF77":"1f377","\uD83C\uDF78":"1f378","\uD83C\uDF79":"1f379","\uD83C\uDF7A":"1f37a","\uD83C\uDF7B":"1f37b","\uD83C\uDF80":"1f380","\uD83C\uDF81":"1f381","\uD83C\uDF82":"1f382","\uD83C\uDF83":"1f383","\uD83E\uDD1B":"1f91b","\uD83E\uDD1C":"1f91c","\uD83C\uDF84":"1f384","\uD83C\uDF85":"1f385","\uD83C\uDF86":"1f386","\uD83E\uDD1A":"1f91a","\uD83C\uDF87":"1f387","\uD83C\uDF88":"1f388","\uD83C\uDF89":"1f389","\uD83C\uDF8A":"1f38a","\uD83C\uDF8B":"1f38b","\uD83C\uDF8C":"1f38c","\uD83E\uDD19":"1f919","\uD83C\uDF8D":"1f38d","\uD83D\uDD7A":"1f57a","\uD83C\uDF8E":"1f38e","\uD83E\uDD33":"1f933","\uD83C\uDF8F":"1f38f","\uD83E\uDD30":"1f930","\uD83C\uDF90":"1f390","\uD83E\uDD26":"1f926","\uD83E\uDD37":"1f937","\uD83C\uDF91":"1f391","\uD83C\uDF92":"1f392","\uD83C\uDF93":"1f393","\uD83C\uDFA0":"1f3a0","\uD83C\uDFA1":"1f3a1","\uD83C\uDFA2":"1f3a2","\uD83C\uDFA3":"1f3a3","\uD83C\uDFA4":"1f3a4","\uD83C\uDFA5":"1f3a5","\uD83C\uDFA6":"1f3a6","\uD83C\uDFA7":"1f3a7","\uD83E\uDD36":"1f936","\uD83C\uDFA8":"1f3a8","\uD83E\uDD35":"1f935","\uD83C\uDFA9":"1f3a9","\uD83C\uDFAA":"1f3aa","\uD83E\uDD34":"1f934","\uD83C\uDFAB":"1f3ab","\uD83C\uDFAC":"1f3ac","\uD83C\uDFAD":"1f3ad","\uD83E\uDD27":"1f927","\uD83C\uDFAE":"1f3ae","\uD83C\uDFAF":"1f3af","\uD83C\uDFB0":"1f3b0","\uD83C\uDFB1":"1f3b1","\uD83C\uDFB2":"1f3b2","\uD83C\uDFB3":"1f3b3","\uD83C\uDFB4":"1f3b4","\uD83E\uDD25":"1f925","\uD83C\uDFB5":"1f3b5","\uD83C\uDFB6":"1f3b6","\uD83C\uDFB7":"1f3b7","\uD83E\uDD24":"1f924","\uD83C\uDFB8":"1f3b8","\uD83C\uDFB9":"1f3b9","\uD83C\uDFBA":"1f3ba","\uD83E\uDD23":"1f923","\uD83C\uDFBB":"1f3bb","\uD83C\uDFBC":"1f3bc","\uD83C\uDFBD":"1f3bd","\uD83E\uDD22":"1f922","\uD83C\uDFBE":"1f3be","\uD83C\uDFBF":"1f3bf","\uD83C\uDFC0":"1f3c0","\uD83C\uDFC1":"1f3c1","\uD83E\uDD21":"1f921","\uD83C\uDFC2":"1f3c2","\uD83C\uDFC3":"1f3c3","\uD83C\uDFC4":"1f3c4","\uD83C\uDFC6":"1f3c6","\uD83C\uDFC8":"1f3c8","\uD83C\uDFCA":"1f3ca","\uD83C\uDFE0":"1f3e0","\uD83C\uDFE1":"1f3e1","\uD83C\uDFE2":"1f3e2","\uD83C\uDFE3":"1f3e3","\uD83C\uDFE5":"1f3e5","\uD83C\uDFE6":"1f3e6","\uD83C\uDFE7":"1f3e7","\uD83C\uDFE8":"1f3e8","\uD83C\uDFE9":"1f3e9","\uD83C\uDFEA":"1f3ea","\uD83C\uDFEB":"1f3eb","\uD83C\uDFEC":"1f3ec","\uD83E\uDD20":"1f920","\uD83C\uDFED":"1f3ed","\uD83C\uDFEE":"1f3ee","\uD83C\uDFEF":"1f3ef","\uD83C\uDFF0":"1f3f0","\uD83D\uDC0C":"1f40c","\uD83D\uDC0D":"1f40d","\uD83D\uDC0E":"1f40e","\uD83D\uDC11":"1f411","\uD83D\uDC12":"1f412","\uD83D\uDC14":"1f414","\uD83D\uDC17":"1f417","\uD83D\uDC18":"1f418","\uD83D\uDC19":"1f419","\uD83D\uDC1A":"1f41a","\uD83D\uDC1B":"1f41b","\uD83D\uDC1C":"1f41c","\uD83D\uDC1D":"1f41d","\uD83D\uDC1E":"1f41e","\uD83D\uDC1F":"1f41f","\uD83D\uDC20":"1f420","\uD83D\uDC21":"1f421","\uD83D\uDC22":"1f422","\uD83D\uDC23":"1f423","\uD83D\uDC24":"1f424","\uD83D\uDC25":"1f425","\uD83D\uDC26":"1f426","\uD83D\uDC27":"1f427","\uD83D\uDC28":"1f428","\uD83D\uDC29":"1f429","\uD83D\uDC2B":"1f42b","\uD83D\uDC2C":"1f42c","\uD83D\uDC2D":"1f42d","\uD83D\uDC2E":"1f42e","\uD83D\uDC2F":"1f42f","\uD83D\uDC30":"1f430","\uD83D\uDC31":"1f431","\uD83D\uDC32":"1f432","\uD83D\uDC33":"1f433","\uD83D\uDC34":"1f434","\uD83D\uDC35":"1f435","\uD83D\uDC36":"1f436","\uD83D\uDC37":"1f437","\uD83D\uDC38":"1f438","\uD83D\uDC39":"1f439","\uD83D\uDC3A":"1f43a","\uD83D\uDC3B":"1f43b","\uD83D\uDC3C":"1f43c","\uD83D\uDC3D":"1f43d","\uD83D\uDC3E":"1f43e","\uD83D\uDC40":"1f440","\uD83D\uDC42":"1f442","\uD83D\uDC43":"1f443","\uD83D\uDC44":"1f444","\uD83D\uDC45":"1f445","\uD83D\uDC46":"1f446","\uD83D\uDC47":"1f447","\uD83D\uDC48":"1f448","\uD83D\uDC49":"1f449","\uD83D\uDC4A":"1f44a","\uD83D\uDC4B":"1f44b","\uD83D\uDC4C":"1f44c","\uD83D\uDC4D":"1f44d","\uD83D\uDC4E":"1f44e","\uD83D\uDC4F":"1f44f","\uD83D\uDC50":"1f450","\uD83D\uDC51":"1f451","\uD83D\uDC52":"1f452","\uD83D\uDC53":"1f453","\uD83D\uDC54":"1f454","\uD83D\uDC55":"1f455","\uD83D\uDC56":"1f456","\uD83D\uDC57":"1f457","\uD83D\uDC58":"1f458","\uD83D\uDC59":"1f459","\uD83D\uDC5A":"1f45a","\uD83D\uDC5B":"1f45b","\uD83D\uDC5C":"1f45c","\uD83D\uDC5D":"1f45d","\uD83D\uDC5E":"1f45e","\uD83D\uDC5F":"1f45f","\uD83D\uDC60":"1f460","\uD83D\uDC61":"1f461","\uD83D\uDC62":"1f462","\uD83D\uDC63":"1f463","\uD83D\uDC64":"1f464","\uD83D\uDC66":"1f466","\uD83D\uDC67":"1f467","\uD83D\uDC68":"1f468","\uD83D\uDC69":"1f469","\uD83D\uDC6A":"1f46a","\uD83D\uDC6B":"1f46b","\uD83D\uDC6E":"1f46e","\uD83D\uDC6F":"1f46f","\uD83D\uDC70":"1f470","\uD83D\uDC71":"1f471","\uD83D\uDC72":"1f472","\uD83D\uDC73":"1f473","\uD83D\uDC74":"1f474","\uD83D\uDC75":"1f475","\uD83D\uDC76":"1f476","\uD83D\uDC77":"1f477","\uD83D\uDC78":"1f478","\uD83D\uDC79":"1f479","\uD83D\uDC7A":"1f47a","\uD83D\uDC7B":"1f47b","\uD83D\uDC7C":"1f47c","\uD83D\uDC7D":"1f47d","\uD83D\uDC7E":"1f47e","\uD83D\uDC7F":"1f47f","\uD83D\uDC80":"1f480","\uD83D\uDCC7":"1f4c7","\uD83D\uDC81":"1f481","\uD83D\uDC82":"1f482","\uD83D\uDC83":"1f483","\uD83D\uDC84":"1f484","\uD83D\uDC85":"1f485","\uD83D\uDCD2":"1f4d2","\uD83D\uDC86":"1f486","\uD83D\uDCD3":"1f4d3","\uD83D\uDC87":"1f487","\uD83D\uDCD4":"1f4d4","\uD83D\uDC88":"1f488","\uD83D\uDCD5":"1f4d5","\uD83D\uDC89":"1f489","\uD83D\uDCD6":"1f4d6","\uD83D\uDC8A":"1f48a","\uD83D\uDCD7":"1f4d7","\uD83D\uDC8B":"1f48b","\uD83D\uDCD8":"1f4d8","\uD83D\uDC8C":"1f48c","\uD83D\uDCD9":"1f4d9","\uD83D\uDC8D":"1f48d","\uD83D\uDCDA":"1f4da","\uD83D\uDC8E":"1f48e","\uD83D\uDCDB":"1f4db","\uD83D\uDC8F":"1f48f","\uD83D\uDCDC":"1f4dc","\uD83D\uDC90":"1f490","\uD83D\uDCDD":"1f4dd","\uD83D\uDC91":"1f491","\uD83D\uDCDE":"1f4de","\uD83D\uDC92":"1f492","\uD83D\uDCDF":"1f4df","\uD83D\uDCE0":"1f4e0","\uD83D\uDC93":"1f493","\uD83D\uDCE1":"1f4e1","\uD83D\uDCE2":"1f4e2","\uD83D\uDC94":"1f494","\uD83D\uDCE3":"1f4e3","\uD83D\uDCE4":"1f4e4","\uD83D\uDC95":"1f495","\uD83D\uDCE5":"1f4e5","\uD83D\uDCE6":"1f4e6","\uD83D\uDC96":"1f496","\uD83D\uDCE7":"1f4e7","\uD83D\uDCE8":"1f4e8","\uD83D\uDC97":"1f497","\uD83D\uDCE9":"1f4e9","\uD83D\uDCEA":"1f4ea","\uD83D\uDC98":"1f498","\uD83D\uDCEB":"1f4eb","\uD83D\uDCEE":"1f4ee","\uD83D\uDC99":"1f499","\uD83D\uDCF0":"1f4f0","\uD83D\uDCF1":"1f4f1","\uD83D\uDC9A":"1f49a","\uD83D\uDCF2":"1f4f2","\uD83D\uDCF3":"1f4f3","\uD83D\uDC9B":"1f49b","\uD83D\uDCF4":"1f4f4","\uD83D\uDCF6":"1f4f6","\uD83D\uDC9C":"1f49c","\uD83D\uDCF7":"1f4f7","\uD83D\uDCF9":"1f4f9","\uD83D\uDC9D":"1f49d","\uD83D\uDCFA":"1f4fa","\uD83D\uDCFB":"1f4fb","\uD83D\uDC9E":"1f49e","\uD83D\uDCFC":"1f4fc","\uD83D\uDD03":"1f503","\uD83D\uDC9F":"1f49f","\uD83D\uDD0A":"1f50a","\uD83D\uDD0B":"1f50b","\uD83D\uDCA0":"1f4a0","\uD83D\uDD0C":"1f50c","\uD83D\uDD0D":"1f50d","\uD83D\uDCA1":"1f4a1","\uD83D\uDD0E":"1f50e","\uD83D\uDD0F":"1f50f","\uD83D\uDCA2":"1f4a2","\uD83D\uDD10":"1f510","\uD83D\uDD11":"1f511","\uD83D\uDCA3":"1f4a3","\uD83D\uDD12":"1f512","\uD83D\uDD13":"1f513","\uD83D\uDCA4":"1f4a4","\uD83D\uDD14":"1f514","\uD83D\uDD16":"1f516","\uD83D\uDCA5":"1f4a5","\uD83D\uDD17":"1f517","\uD83D\uDD18":"1f518","\uD83D\uDCA6":"1f4a6","\uD83D\uDD19":"1f519","\uD83D\uDD1A":"1f51a","\uD83D\uDCA7":"1f4a7","\uD83D\uDD1B":"1f51b","\uD83D\uDD1C":"1f51c","\uD83D\uDCA8":"1f4a8","\uD83D\uDD1D":"1f51d","\uD83D\uDD1E":"1f51e","\uD83D\uDCA9":"1f4a9","\uD83D\uDD1F":"1f51f","\uD83D\uDCAA":"1f4aa","\uD83D\uDD20":"1f520","\uD83D\uDD21":"1f521","\uD83D\uDCAB":"1f4ab","\uD83D\uDD22":"1f522","\uD83D\uDD23":"1f523","\uD83D\uDCAC":"1f4ac","\uD83D\uDD24":"1f524","\uD83D\uDD25":"1f525","\uD83D\uDCAE":"1f4ae","\uD83D\uDD26":"1f526","\uD83D\uDD27":"1f527","\uD83D\uDCAF":"1f4af","\uD83D\uDD28":"1f528","\uD83D\uDD29":"1f529","\uD83D\uDCB0":"1f4b0","\uD83D\uDD2A":"1f52a","\uD83D\uDD2B":"1f52b","\uD83D\uDCB1":"1f4b1","\uD83D\uDD2E":"1f52e","\uD83D\uDCB2":"1f4b2","\uD83D\uDD2F":"1f52f","\uD83D\uDCB3":"1f4b3","\uD83D\uDD30":"1f530","\uD83D\uDD31":"1f531","\uD83D\uDCB4":"1f4b4","\uD83D\uDD32":"1f532","\uD83D\uDD33":"1f533","\uD83D\uDCB5":"1f4b5","\uD83D\uDD34":"1f534","\uD83D\uDD35":"1f535","\uD83D\uDCB8":"1f4b8","\uD83D\uDD36":"1f536","\uD83D\uDD37":"1f537","\uD83D\uDCB9":"1f4b9","\uD83D\uDD38":"1f538","\uD83D\uDD39":"1f539","\uD83D\uDCBA":"1f4ba","\uD83D\uDD3A":"1f53a","\uD83D\uDD3B":"1f53b","\uD83D\uDCBB":"1f4bb","\uD83D\uDD3C":"1f53c","\uD83D\uDCBC":"1f4bc","\uD83D\uDD3D":"1f53d","\uD83D\uDD50":"1f550","\uD83D\uDCBD":"1f4bd","\uD83D\uDD51":"1f551","\uD83D\uDCBE":"1f4be","\uD83D\uDD52":"1f552","\uD83D\uDCBF":"1f4bf","\uD83D\uDD53":"1f553","\uD83D\uDCC0":"1f4c0","\uD83D\uDD54":"1f554","\uD83D\uDD55":"1f555","\uD83D\uDCC1":"1f4c1","\uD83D\uDD56":"1f556","\uD83D\uDD57":"1f557","\uD83D\uDCC2":"1f4c2","\uD83D\uDD58":"1f558","\uD83D\uDD59":"1f559","\uD83D\uDCC3":"1f4c3","\uD83D\uDD5A":"1f55a","\uD83D\uDD5B":"1f55b","\uD83D\uDCC4":"1f4c4","\uD83D\uDDFB":"1f5fb","\uD83D\uDDFC":"1f5fc","\uD83D\uDCC5":"1f4c5","\uD83D\uDDFD":"1f5fd","\uD83D\uDDFE":"1f5fe","\uD83D\uDCC6":"1f4c6","\uD83D\uDDFF":"1f5ff","\uD83D\uDE01":"1f601","\uD83D\uDE02":"1f602","\uD83D\uDE03":"1f603","\uD83D\uDCC8":"1f4c8","\uD83D\uDE04":"1f604","\uD83D\uDE05":"1f605","\uD83D\uDCC9":"1f4c9","\uD83D\uDE06":"1f606","\uD83D\uDE09":"1f609","\uD83D\uDCCA":"1f4ca","\uD83D\uDE0A":"1f60a","\uD83D\uDE0B":"1f60b","\uD83D\uDCCB":"1f4cb","\uD83D\uDE0C":"1f60c","\uD83D\uDE0D":"1f60d","\uD83D\uDCCC":"1f4cc","\uD83D\uDE0F":"1f60f","\uD83D\uDE12":"1f612","\uD83D\uDCCD":"1f4cd","\uD83D\uDE13":"1f613","\uD83D\uDE14":"1f614","\uD83D\uDCCE":"1f4ce","\uD83D\uDE16":"1f616","\uD83D\uDE18":"1f618","\uD83D\uDCCF":"1f4cf","\uD83D\uDE1A":"1f61a","\uD83D\uDE1C":"1f61c","\uD83D\uDCD0":"1f4d0","\uD83D\uDE1D":"1f61d","\uD83D\uDE1E":"1f61e","\uD83D\uDCD1":"1f4d1","\uD83D\uDE20":"1f620","\uD83D\uDE21":"1f621","\uD83D\uDE22":"1f622","\uD83D\uDE23":"1f623","\uD83D\uDE24":"1f624","\uD83D\uDE25":"1f625","\uD83D\uDE28":"1f628","\uD83D\uDE29":"1f629","\uD83D\uDE2A":"1f62a","\uD83D\uDE2B":"1f62b","\uD83D\uDE2D":"1f62d","\uD83D\uDE30":"1f630","\uD83D\uDE31":"1f631","\uD83D\uDE32":"1f632","\uD83D\uDE33":"1f633","\uD83D\uDE35":"1f635","\uD83D\uDE37":"1f637","\uD83D\uDE38":"1f638","\uD83D\uDE39":"1f639","\uD83D\uDE3A":"1f63a","\uD83D\uDE3B":"1f63b","\uD83D\uDE3C":"1f63c","\uD83D\uDE3D":"1f63d","\uD83D\uDE3E":"1f63e","\uD83D\uDE3F":"1f63f","\uD83D\uDE40":"1f640","\uD83D\uDE45":"1f645","\uD83D\uDE46":"1f646","\uD83D\uDE47":"1f647","\uD83D\uDE48":"1f648","\uD83D\uDE49":"1f649","\uD83D\uDE4A":"1f64a","\uD83D\uDE4B":"1f64b","\uD83D\uDE4C":"1f64c","\uD83D\uDE4D":"1f64d","\uD83D\uDE4E":"1f64e","\uD83D\uDE4F":"1f64f","\uD83D\uDE80":"1f680","\uD83D\uDE83":"1f683","\uD83D\uDE84":"1f684","\uD83D\uDE85":"1f685","\uD83D\uDE87":"1f687","\uD83D\uDE89":"1f689","\uD83D\uDE8C":"1f68c","\uD83D\uDE8F":"1f68f","\uD83D\uDE91":"1f691","\uD83D\uDE92":"1f692","\uD83D\uDE93":"1f693","\uD83D\uDE95":"1f695","\uD83D\uDE97":"1f697","\uD83D\uDE99":"1f699","\uD83D\uDE9A":"1f69a","\uD83D\uDEA2":"1f6a2","\uD83D\uDEA4":"1f6a4","\uD83D\uDEA5":"1f6a5","\uD83D\uDEA7":"1f6a7","\uD83D\uDEA8":"1f6a8","\uD83D\uDEA9":"1f6a9","\uD83D\uDEAA":"1f6aa","\uD83D\uDEAB":"1f6ab","\uD83D\uDEAC":"1f6ac","\uD83D\uDEAD":"1f6ad","\uD83D\uDEB2":"1f6b2","\uD83D\uDEB6":"1f6b6","\uD83D\uDEB9":"1f6b9","\uD83D\uDEBA":"1f6ba","\uD83D\uDEBB":"1f6bb","\uD83D\uDEBC":"1f6bc","\uD83D\uDEBD":"1f6bd","\uD83D\uDEBE":"1f6be","\uD83D\uDEC0":"1f6c0","\uD83E\uDD18":"1f918","\uD83D\uDE00":"1f600","\uD83D\uDE07":"1f607","\uD83D\uDE08":"1f608","\uD83D\uDE0E":"1f60e","\uD83D\uDE10":"1f610","\uD83D\uDE11":"1f611","\uD83D\uDE15":"1f615","\uD83D\uDE17":"1f617","\uD83D\uDE19":"1f619","\uD83D\uDE1B":"1f61b","\uD83D\uDE1F":"1f61f","\uD83D\uDE26":"1f626","\uD83D\uDE27":"1f627","\uD83D\uDE2C":"1f62c","\uD83D\uDE2E":"1f62e","\uD83D\uDE2F":"1f62f","\uD83D\uDE34":"1f634","\uD83D\uDE36":"1f636","\uD83D\uDE81":"1f681","\uD83D\uDE82":"1f682","\uD83D\uDE86":"1f686","\uD83D\uDE88":"1f688","\uD83D\uDE8A":"1f68a","\uD83D\uDE8D":"1f68d","\uD83D\uDE8E":"1f68e","\uD83D\uDE90":"1f690","\uD83D\uDE94":"1f694","\uD83D\uDE96":"1f696","\uD83D\uDE98":"1f698","\uD83D\uDE9B":"1f69b","\uD83D\uDE9C":"1f69c","\uD83D\uDE9D":"1f69d","\uD83D\uDE9E":"1f69e","\uD83D\uDE9F":"1f69f","\uD83D\uDEA0":"1f6a0","\uD83D\uDEA1":"1f6a1","\uD83D\uDEA3":"1f6a3","\uD83D\uDEA6":"1f6a6","\uD83D\uDEAE":"1f6ae","\uD83D\uDEAF":"1f6af","\uD83D\uDEB0":"1f6b0","\uD83D\uDEB1":"1f6b1","\uD83D\uDEB3":"1f6b3","\uD83D\uDEB4":"1f6b4","\uD83D\uDEB5":"1f6b5","\uD83D\uDEB7":"1f6b7","\uD83D\uDEB8":"1f6b8","\uD83D\uDEBF":"1f6bf","\uD83D\uDEC1":"1f6c1","\uD83D\uDEC2":"1f6c2","\uD83D\uDEC3":"1f6c3","\uD83D\uDEC4":"1f6c4","\uD83D\uDEC5":"1f6c5","\uD83C\uDF0D":"1f30d","\uD83C\uDF0E":"1f30e","\uD83C\uDF10":"1f310","\uD83C\uDF12":"1f312","\uD83C\uDF16":"1f316","\uD83C\uDF17":"1f317","\uD83C\uDF18":"1f318","\uD83C\uDF1A":"1f31a","\uD83C\uDF1C":"1f31c","\uD83C\uDF1D":"1f31d","\uD83C\uDF1E":"1f31e","\uD83C\uDF32":"1f332","\uD83C\uDF33":"1f333","\uD83C\uDF4B":"1f34b","\uD83C\uDF50":"1f350","\uD83C\uDF7C":"1f37c","\uD83C\uDFC7":"1f3c7","\uD83C\uDFC9":"1f3c9","\uD83C\uDFE4":"1f3e4","\uD83D\uDC00":"1f400","\uD83D\uDC01":"1f401","\uD83D\uDC02":"1f402","\uD83D\uDC03":"1f403","\uD83D\uDC04":"1f404","\uD83D\uDC05":"1f405","\uD83D\uDC06":"1f406","\uD83D\uDC07":"1f407","\uD83D\uDC08":"1f408","\uD83D\uDC09":"1f409","\uD83D\uDC0A":"1f40a","\uD83D\uDC0B":"1f40b","\uD83D\uDC0F":"1f40f","\uD83D\uDC10":"1f410","\uD83D\uDC13":"1f413","\uD83D\uDC15":"1f415","\uD83D\uDC16":"1f416","\uD83D\uDC2A":"1f42a","\uD83D\uDC65":"1f465","\uD83D\uDC6C":"1f46c","\uD83D\uDC6D":"1f46d","\uD83D\uDCAD":"1f4ad","\uD83D\uDCB6":"1f4b6","\uD83D\uDCB7":"1f4b7","\uD83D\uDCEC":"1f4ec","\uD83D\uDCED":"1f4ed","\uD83D\uDCEF":"1f4ef","\uD83D\uDCF5":"1f4f5","\uD83D\uDD00":"1f500","\uD83D\uDD01":"1f501","\uD83D\uDD02":"1f502","\uD83D\uDD04":"1f504","\uD83D\uDD05":"1f505","\uD83D\uDD06":"1f506","\uD83D\uDD07":"1f507","\uD83D\uDD09":"1f509","\uD83D\uDD15":"1f515","\uD83D\uDD2C":"1f52c","\uD83D\uDD2D":"1f52d","\uD83D\uDD5C":"1f55c","\uD83D\uDD5D":"1f55d","\uD83D\uDD5E":"1f55e","\uD83D\uDD5F":"1f55f","\uD83D\uDD60":"1f560","\uD83D\uDD61":"1f561","\uD83D\uDD62":"1f562","\uD83D\uDD63":"1f563","\uD83D\uDD64":"1f564","\uD83D\uDD65":"1f565","\uD83D\uDD66":"1f566","\uD83D\uDD67":"1f567","\uD83D\uDD08":"1f508","\uD83D\uDE8B":"1f68b","\uD83C\uDFC5":"1f3c5","\uD83C\uDFF4":"1f3f4","\uD83D\uDCF8":"1f4f8","\uD83D\uDECC":"1f6cc","\uD83D\uDD95":"1f595","\uD83D\uDD96":"1f596","\uD83D\uDE41":"1f641","\uD83D\uDE42":"1f642","\uD83D\uDEEB":"1f6eb","\uD83D\uDEEC":"1f6ec","\uD83C\uDFFB":"1f3fb","\uD83C\uDFFC":"1f3fc","\uD83C\uDFFD":"1f3fd","\uD83C\uDFFE":"1f3fe","\uD83C\uDFFF":"1f3ff","\uD83D\uDE43":"1f643","\uD83E\uDD11":"1f911","\uD83E\uDD13":"1f913","\uD83E\uDD17":"1f917","\uD83D\uDE44":"1f644","\uD83E\uDD14":"1f914","\uD83E\uDD10":"1f910","\uD83E\uDD12":"1f912","\uD83E\uDD15":"1f915","\uD83E\uDD16":"1f916","\uD83E\uDD81":"1f981","\uD83E\uDD84":"1f984","\uD83E\uDD82":"1f982","\uD83E\uDD80":"1f980","\uD83E\uDD83":"1f983","\uD83E\uDDC0":"1f9c0","\uD83C\uDF2D":"1f32d","\uD83C\uDF2E":"1f32e","\uD83C\uDF2F":"1f32f","\uD83C\uDF7F":"1f37f","\uD83C\uDF7E":"1f37e","\uD83C\uDFF9":"1f3f9","\uD83C\uDFFA":"1f3fa","\uD83D\uDED0":"1f6d0","\uD83D\uDD4B":"1f54b","\uD83D\uDD4C":"1f54c","\uD83D\uDD4D":"1f54d","\uD83D\uDD4E":"1f54e","\uD83D\uDCFF":"1f4ff","\uD83C\uDFCF":"1f3cf","\uD83C\uDFD0":"1f3d0","\uD83C\uDFD1":"1f3d1","\uD83C\uDFD2":"1f3d2","\uD83C\uDFD3":"1f3d3","\uD83C\uDFF8":"1f3f8","\uD83E\uDD41":"1f941","\uD83E\uDD90":"1f990","\uD83E\uDD91":"1f991","\uD83E\uDD5A":"1f95a","\uD83E\uDD5B":"1f95b","\uD83E\uDD5C":"1f95c","\uD83E\uDD5D":"1f95d","\uD83E\uDD5E":"1f95e","\uD83C\uDDFC":"1f1fc","\uD83C\uDDFB":"1f1fb","\uD83C\uDDFA":"1f1fa","\uD83C\uDDF9":"1f1f9","\uD83C\uDDF8":"1f1f8","\uD83C\uDDF7":"1f1f7","\uD83C\uDDF6":"1f1f6","\uD83C\uDDF5":"1f1f5","\uD83C\uDDF4":"1f1f4","\uD83C\uDDF3":"1f1f3","\uD83C\uDDF2":"1f1f2","\uD83C\uDDF1":"1f1f1","\uD83C\uDDF0":"1f1f0","\uD83C\uDDEF":"1f1ef","\uD83C\uDDEE":"1f1ee","\uD83C\uDDED":"1f1ed","\uD83C\uDDEC":"1f1ec","\uD83C\uDDEB":"1f1eb","\uD83C\uDDEA":"1f1ea","\uD83C\uDDE9":"1f1e9","\uD83C\uDDE8":"1f1e8","\uD83C\uDDE7":"1f1e7","\uD83C\uDDE6":"1f1e6","\u23E9":"23e9","\u23EA":"23ea","\u23EB":"23eb","\u23EC":"23ec","\u23F0":"23f0","\u23F3":"23f3","\u26CE":"26ce","\u2705":"2705","\u270A":"270a","\u270B":"270b","\u2728":"2728","\u274C":"274c","\u274E":"274e","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u27B0":"27b0","\u27BF":"27bf","\u00A9":"00a9","\u00AE":"00ae","\u203C":"203c","\u2049":"2049","\u2122":"2122","\u2139":"2139","\u2194":"2194","\u2195":"2195","\u2196":"2196","\u2197":"2197","\u2198":"2198","\u2199":"2199","\u21A9":"21a9","\u21AA":"21aa","\u231A":"231a","\u231B":"231b","\u24C2":"24c2","\u25AA":"25aa","\u25AB":"25ab","\u25B6":"25b6","\u25C0":"25c0","\u25FB":"25fb","\u25FC":"25fc","\u25FD":"25fd","\u25FE":"25fe","\u2600":"2600","\u2601":"2601","\u260E":"260e","\u2611":"2611","\u2614":"2614","\u2615":"2615","\u261D":"261d","\u263A":"263a","\u2648":"2648","\u2649":"2649","\u264A":"264a","\u264B":"264b","\u264C":"264c","\u264D":"264d","\u264E":"264e","\u264F":"264f","\u2650":"2650","\u2651":"2651","\u2652":"2652","\u2653":"2653","\u2660":"2660","\u2663":"2663","\u2665":"2665","\u2666":"2666","\u2668":"2668","\u267B":"267b","\u267F":"267f","\u2693":"2693","\u26A0":"26a0","\u26A1":"26a1","\u26AA":"26aa","\u26AB":"26ab","\u26BD":"26bd","\u26BE":"26be","\u26C4":"26c4","\u26C5":"26c5","\u26D4":"26d4","\u26EA":"26ea","\u26F2":"26f2","\u26F3":"26f3","\u26F5":"26f5","\u26FA":"26fa","\u26FD":"26fd","\u2702":"2702","\u2708":"2708","\u2709":"2709","\u270C":"270c","\u270F":"270f","\u2712":"2712","\u2714":"2714","\u2716":"2716","\u2733":"2733","\u2734":"2734","\u2744":"2744","\u2747":"2747","\u2757":"2757","\u2764":"2764","\u27A1":"27a1","\u2934":"2934","\u2935":"2935","\u2B05":"2b05","\u2B06":"2b06","\u2B07":"2b07","\u2B1B":"2b1b","\u2B1C":"2b1c","\u2B50":"2b50","\u2B55":"2b55","\u3030":"3030","\u303D":"303d","\u3297":"3297","\u3299":"3299","\uD83C\uDC04":"1f004","\uD83C\uDD7F":"1f17f","\uD83C\uDE02":"1f202","\uD83C\uDE1A":"1f21a","\uD83C\uDE2F":"1f22f","\uD83C\uDE37":"1f237","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F":"1f39f","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96":"1f396","\uD83C\uDF97":"1f397","\uD83C\uDF36":"1f336","\uD83C\uDF27":"1f327","\uD83C\uDF28":"1f328","\uD83C\uDF29":"1f329","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F":"1f43f","\uD83D\uDD77":"1f577","\uD83D\uDD78":"1f578","\uD83C\uDF21":"1f321","\uD83C\uDF99":"1f399","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7":"1f3f7","\uD83D\uDCFD":"1f4fd","\u271D":"271d","\uD83D\uDD49":"1f549","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F":"1f56f","\uD83D\uDD70":"1f570","\uD83D\uDD73":"1f573","\uD83D\uDD76":"1f576","\uD83D\uDD79":"1f579","\uD83D\uDD87":"1f587","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8":"1f5a8","\u2328":"2328","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3":"1f5e3","\uD83D\uDDE8":"1f5e8","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA":"1f5fa","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D":"1f37d","\uD83D\uDC41":"1f441","\uD83D\uDD74":"1f574","\uD83D\uDD75":"1f575","\u270D":"270d","\uD83D\uDD90":"1f590","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF":"1f3df","\uD83D\uDECB":"1f6cb","\uD83D\uDECD":"1f6cd","\uD83D\uDECE":"1f6ce","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9":"1f6e9","\uD83D\uDEF3":"1f6f3","\u23CF":"23cf","\u23ED":"23ed","\u23EE":"23ee","\u23EF":"23ef","\u23F1":"23f1","\u23F2":"23f2","\u23F8":"23f8","\u23F9":"23f9","\u23FA":"23fa","\u2602":"2602","\u2603":"2603","\u2604":"2604","\u2618":"2618","\u2620":"2620","\u2622":"2622","\u2623":"2623","\u2626":"2626","\u262A":"262a","\u262E":"262e","\u262F":"262f","\u2638":"2638","\u2639":"2639","\u2692":"2692","\u2694":"2694","\u2696":"2696","\u2697":"2697","\u2699":"2699","\u269B":"269b","\u269C":"269c","\u26B0":"26b0","\u26B1":"26b1","\u26C8":"26c8","\u26CF":"26cf","\u26D1":"26d1","\u26D3":"26d3","\u26E9":"26e9","\u26F0":"26f0","\u26F1":"26f1","\u26F4":"26f4","\u26F7":"26f7","\u26F8":"26f8","\u26F9":"26f9","\u2721":"2721","\u2763":"2763","\uD83C\uDF24":"1f324","\uD83C\uDF25":"1f325","\uD83C\uDF26":"1f326","\uD83D\uDDB1":"1f5b1"};
+ ns.imagePathPNG = 'https://cdn.jsdelivr.net/emojione/assets/png/';
+ ns.imagePathSVG = 'https://cdn.jsdelivr.net/emojione/assets/svg/';
ns.imagePathSVGSprites = './../assets/sprites/emojione.sprites.svg';
ns.imageType = 'png'; // or svg
+ ns.imageTitleTag = true; //set to false to remove title attribute from img tag
ns.sprites = false; // if this is true then sprite markup will be used (if SVG image type is set then you must include the SVG sprite file locally)
ns.unicodeAlt = true; // use the unicode char as the alt attribute (makes copy and pasting the resulting text better)
ns.ascii = false; // change to true to convert ascii smileys
- ns.cacheBustParam = '?v=2.0.1'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
+ ns.cacheBustParam = '?v=2.2.7'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
ns.regShortNames = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")", "gi");
ns.regAscii = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))", "g");
ns.regUnicode = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")", "gi");
-
+
ns.toImage = function(str) {
str = ns.unicodeToImage(str);
str = ns.shortnameToImage(str);
@@ -179,9 +180,9 @@
// Useful for systems that dont support unicode nor images
ns.shortnameToAscii = function(str) {
var unicode,
- // something to keep in mind here is that array flip will destroy
- // half of the ascii text "emojis" because the unicode numbers are duplicated
- // this is ok for what it's being used for
+ // something to keep in mind here is that array flip will destroy
+ // half of the ascii text "emojis" because the unicode numbers are duplicated
+ // this is ok for what it's being used for
unicodeToAscii = ns.objectFlip(ns.asciiList);
str = str.replace(ns.regShortNames, function(shortname) {
@@ -190,7 +191,7 @@
return shortname;
}
else {
- unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1];
+ unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
if(typeof unicodeToAscii[unicode] !== 'undefined') {
return unicodeToAscii[unicode];
} else {
@@ -205,14 +206,17 @@
// useful for sending emojis back to mobile devices
ns.shortnameToUnicode = function(str) {
// replace regular shortnames first
- var unicode;
+ var unicode,fname,uc;
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
- unicode = ns.emojioneList[shortname][0].toUpperCase();
- return ns.convert(unicode);
+ unicode = ns.emojioneList[shortname].unicode[0].toUpperCase();
+ fname = ns.emojioneList[shortname].fname;
+ uc = ns.emojioneList[shortname].uc;
+ //return ns.convert(unicode);
+ return ns.convert(uc);
});
// if ascii smileys are turned on, then we'll replace them!
@@ -230,29 +234,30 @@
});
}
- return str;
+ return str;
};
ns.shortnameToImage = function(str) {
// replace regular shortnames first
- var replaceWith,unicode,alt;
+ var replaceWith,unicode,alt,title;
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
else {
- unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1];
+ unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
+ title = ns.imageTitleTag ? 'title="'+shortname+'"' : '';
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : shortname;
if(ns.imageType === 'png') {
if(ns.sprites) {
- replaceWith = '<span class="emojione-'+unicode+'" title="'+shortname+'">'+alt+'</span>';
+ replaceWith = '<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
}
else {
- replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+ replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
@@ -274,22 +279,23 @@
str = str.replace(ns.regAscii, function(entire, m1, m2, m3) {
if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
- // if the shortname doesnt exist just return the entire match
+ // if the ascii doesnt exist just return the entire match
return entire;
}
m3 = ns.unescapeHTML(m3);
unicode = ns.asciiList[m3];
+ title = ns.imageTitleTag ? 'title="'+ns.escapeHTML(m3)+'"' : '';
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : ns.escapeHTML(m3);
if(ns.imageType === 'png') {
if(ns.sprites) {
- replaceWith = m2+'<span class="emojione-'+unicode+'" title="'+ns.escapeHTML(m3)+'">'+alt+'</span>';
+ replaceWith = m2+'<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
}
else {
- replaceWith = m2+'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+ replaceWith = m2+'<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
@@ -311,13 +317,8 @@
ns.unicodeToImage = function(str) {
- var replaceWith,unicode,alt;
-
- if((!ns.unicodeAlt) || (ns.sprites)) {
- // if we are using the shortname as the alt tag then we need a reversed array to map unicode code point to shortnames
- var mappedUnicode = ns.mapShortToUnicode();
- }
-
+ var replaceWith,unicode,short,fname,alt,title;
+ var mappedUnicode = ns.mapUnicodeToShort();
str = str.replace(ns.regUnicode, function(unicodeChar) {
if( (typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in ns.jsEscapeMap)) ) {
// if the unicodeChar doesnt exist just return the entire match
@@ -327,15 +328,20 @@
// get the unicode codepoint from the actual char
unicode = ns.jsEscapeMap[unicodeChar];
+ //then map to shortname and locate the filename
+ short = mappedUnicode[unicode];
+ fname = ns.emojioneList[short].fname;
+
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
- alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : mappedUnicode[unicode];
+ alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : short;
+ title = ns.imageTitleTag ? 'title="'+short+'"' : '';
if(ns.imageType === 'png') {
if(ns.sprites) {
- replaceWith = '<span class="emojione-'+unicode+'" title="'+mappedUnicode[unicode]+'">'+alt+'</span>';
+ replaceWith = '<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
}
else {
- replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+ replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+fname+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
@@ -344,7 +350,7 @@
replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
}
else {
- replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'"/>';
+ replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathSVG+fname+'.svg'+ns.cacheBustParam+'"/>';
}
}
@@ -355,17 +361,11 @@
return str;
};
- // super simple loop to replace all unicode emoji to shortnames
- // needs to be improved into one big replacement instead, for performance reasons
- ns.toShort = function(str) { // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
- for (var shortcode in ns.emojioneList) {
- if (!ns.emojioneList.hasOwnProperty(shortcode)) { continue; }
- for(var i = 0, len = ns.emojioneList[shortcode].length; i < len; i++){
- var unicode = ns.emojioneList[shortcode][i];
- str = ns.replaceAll(str,ns.convert(unicode.toUpperCase()),shortcode);
- }
- }
- return str;
+ // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
+ ns.toShort = function(str) {
+ var find = ns.getUnicodeReplacementRegEx(),
+ replacementList = ns.mapUnicodeCharactersToShort();
+ return ns.replaceAll(str, find,replacementList);
};
// for converting unicode code points and code pairs to their respective characters
@@ -436,16 +436,52 @@
return unescaped[match];
});
};
- ns.mapShortToUnicode = function() {
- var new_obj = {};
+
+ ns.mapEmojioneList = function (addToMapStorage) {
for (var shortname in ns.emojioneList) {
if (!ns.emojioneList.hasOwnProperty(shortname)) { continue; }
- for(var i = 0, len = ns.emojioneList[shortname].length; i < len; i++){
- new_obj[ns.emojioneList[shortname][i]] = shortname;
+ for (var i = 0, len = ns.emojioneList[shortname].unicode.length; i < len; i++) {
+ var unicode = ns.emojioneList[shortname].unicode[i];
+ addToMapStorage(unicode, shortname);
}
}
- return new_obj;
};
+
+ ns.mapUnicodeToShort = function() {
+ if (!ns.memMapShortToUnicode) {
+ ns.memMapShortToUnicode = {};
+ ns.mapEmojioneList(function (unicode, shortname) {
+ ns.memMapShortToUnicode[unicode] = shortname;
+ });
+ }
+ return ns.memMapShortToUnicode;
+ };
+
+ ns.memoizeReplacement = function() {
+ if (!ns.unicodeReplacementRegEx || !ns.memMapShortToUnicodeCharacters) {
+ var unicodeList = [];
+ ns.memMapShortToUnicodeCharacters = {};
+ ns.mapEmojioneList(function (unicode, shortname) {
+ var emojiCharacter = ns.convert(unicode);
+ if(ns.emojioneList[shortname].isCanonical) {
+ ns.memMapShortToUnicodeCharacters[emojiCharacter] = shortname;
+ }
+ unicodeList.push(emojiCharacter);
+ });
+ ns.unicodeReplacementRegEx = unicodeList.join('|');
+ }
+ };
+
+ ns.mapUnicodeCharactersToShort = function() {
+ ns.memoizeReplacement();
+ return ns.memMapShortToUnicodeCharacters;
+ };
+
+ ns.getUnicodeReplacementRegEx = function() {
+ ns.memoizeReplacement();
+ return ns.unicodeReplacementRegEx;
+ };
+
//reverse an object
ns.objectFlip = function (obj) {
var key, tmp_obj = {};
@@ -460,20 +496,20 @@
};
ns.escapeRegExp = function(string) {
- return string.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g, "\\$&");
+ return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g, "\\$&");
};
- ns.replaceAll = function(string, find, replaceWith) {
+ ns.replaceAll = function(string, find, replacementList) {
var escapedFind = ns.escapeRegExp(find);
var search = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")", "gi");
// callback prevents replacing anything inside of these common html tags as well as between an <object></object> tag
var replace = function(entire, m1) {
- return ((typeof m1 === 'undefined') || (m1 === '')) ? entire : replaceWith;
+ return ((typeof m1 === 'undefined') || (m1 === '')) ? entire : replacementList[m1];
};
return string.replace(search,replace);
};
}(this.emojione = this.emojione || {}));
-if(typeof module === "object") module.exports = this.emojione;
+if(typeof module === "object") module.exports = this.emojione; \ No newline at end of file
diff --git a/build/js/jsxc/lib/emojione/lib/js/emojione.min.js b/build/js/jsxc/lib/emojione/lib/js/emojione.min.js
index b61ea9d..7336666 100644
--- a/build/js/jsxc/lib/emojione/lib/js/emojione.min.js
+++ b/build/js/jsxc/lib/emojione/lib/js/emojione.min.js
@@ -1,4 +1,10 @@
-/*! emojione 07-01-2016 */
-!function(a){a.emojioneList={":kiss_ww:":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],":couplekiss_ww:":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],":kiss_mm:":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],":couplekiss_mm:":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],":family_mmbb:":["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],":family_mmgb:":["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],":family_mmgg:":["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],":family_mwbb:":["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],":family_mwgb:":["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],":family_mwgg:":["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],":family_wwbb:":["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],":family_wwgb:":["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],":family_wwgg:":["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],":couple_ww:":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],":couple_with_heart_ww:":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],":couple_mm:":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],":couple_with_heart_mm:":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],":family_mmb:":["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],":family_mmg:":["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],":family_mwg:":["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],":family_wwb:":["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],":family_wwg:":["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],":eye_in_speech_bubble:":["1f441-200d-1f5e8","1f441-1f5e8"],":hash:":["0023-fe0f-20e3","0023-20e3"],":zero:":["0030-fe0f-20e3","0030-20e3"],":one:":["0031-fe0f-20e3","0031-20e3"],":two:":["0032-fe0f-20e3","0032-20e3"],":three:":["0033-fe0f-20e3","0033-20e3"],":four:":["0034-fe0f-20e3","0034-20e3"],":five:":["0035-fe0f-20e3","0035-20e3"],":six:":["0036-fe0f-20e3","0036-20e3"],":seven:":["0037-fe0f-20e3","0037-20e3"],":eight:":["0038-fe0f-20e3","0038-20e3"],":nine:":["0039-fe0f-20e3","0039-20e3"],":asterisk:":["002a-fe0f-20e3","002a-20e3"],":keycap_asterisk:":["002a-fe0f-20e3","002a-20e3"],":metal_tone5:":["1f918-1f3ff"],":sign_of_the_horns_tone5:":["1f918-1f3ff"],":metal_tone4:":["1f918-1f3fe"],":sign_of_the_horns_tone4:":["1f918-1f3fe"],":metal_tone3:":["1f918-1f3fd"],":sign_of_the_horns_tone3:":["1f918-1f3fd"],":metal_tone2:":["1f918-1f3fc"],":sign_of_the_horns_tone2:":["1f918-1f3fc"],":metal_tone1:":["1f918-1f3fb"],":sign_of_the_horns_tone1:":["1f918-1f3fb"],":bath_tone5:":["1f6c0-1f3ff"],":bath_tone4:":["1f6c0-1f3fe"],":bath_tone3:":["1f6c0-1f3fd"],":bath_tone2:":["1f6c0-1f3fc"],":bath_tone1:":["1f6c0-1f3fb"],":walking_tone5:":["1f6b6-1f3ff"],":walking_tone4:":["1f6b6-1f3fe"],":walking_tone3:":["1f6b6-1f3fd"],":walking_tone2:":["1f6b6-1f3fc"],":walking_tone1:":["1f6b6-1f3fb"],":mountain_bicyclist_tone5:":["1f6b5-1f3ff"],":mountain_bicyclist_tone4:":["1f6b5-1f3fe"],":mountain_bicyclist_tone3:":["1f6b5-1f3fd"],":mountain_bicyclist_tone2:":["1f6b5-1f3fc"],":mountain_bicyclist_tone1:":["1f6b5-1f3fb"],":bicyclist_tone5:":["1f6b4-1f3ff"],":bicyclist_tone4:":["1f6b4-1f3fe"],":bicyclist_tone3:":["1f6b4-1f3fd"],":bicyclist_tone2:":["1f6b4-1f3fc"],":bicyclist_tone1:":["1f6b4-1f3fb"],":rowboat_tone5:":["1f6a3-1f3ff"],":rowboat_tone4:":["1f6a3-1f3fe"],":rowboat_tone3:":["1f6a3-1f3fd"],":rowboat_tone2:":["1f6a3-1f3fc"],":rowboat_tone1:":["1f6a3-1f3fb"],":pray_tone5:":["1f64f-1f3ff"],":pray_tone4:":["1f64f-1f3fe"],":pray_tone3:":["1f64f-1f3fd"],":pray_tone2:":["1f64f-1f3fc"],":pray_tone1:":["1f64f-1f3fb"],":person_with_pouting_face_tone5:":["1f64e-1f3ff"],":person_with_pouting_face_tone4:":["1f64e-1f3fe"],":person_with_pouting_face_tone3:":["1f64e-1f3fd"],":person_with_pouting_face_tone2:":["1f64e-1f3fc"],":person_with_pouting_face_tone1:":["1f64e-1f3fb"],":person_frowning_tone5:":["1f64d-1f3ff"],":person_frowning_tone4:":["1f64d-1f3fe"],":person_frowning_tone3:":["1f64d-1f3fd"],":person_frowning_tone2:":["1f64d-1f3fc"],":person_frowning_tone1:":["1f64d-1f3fb"],":raised_hands_tone5:":["1f64c-1f3ff"],":raised_hands_tone4:":["1f64c-1f3fe"],":raised_hands_tone3:":["1f64c-1f3fd"],":raised_hands_tone2:":["1f64c-1f3fc"],":raised_hands_tone1:":["1f64c-1f3fb"],":raising_hand_tone5:":["1f64b-1f3ff"],":raising_hand_tone4:":["1f64b-1f3fe"],":raising_hand_tone3:":["1f64b-1f3fd"],":raising_hand_tone2:":["1f64b-1f3fc"],":raising_hand_tone1:":["1f64b-1f3fb"],":bow_tone5:":["1f647-1f3ff"],":bow_tone4:":["1f647-1f3fe"],":bow_tone3:":["1f647-1f3fd"],":bow_tone2:":["1f647-1f3fc"],":bow_tone1:":["1f647-1f3fb"],":ok_woman_tone5:":["1f646-1f3ff"],":ok_woman_tone4:":["1f646-1f3fe"],":ok_woman_tone3:":["1f646-1f3fd"],":ok_woman_tone2:":["1f646-1f3fc"],":ok_woman_tone1:":["1f646-1f3fb"],":no_good_tone5:":["1f645-1f3ff"],":no_good_tone4:":["1f645-1f3fe"],":no_good_tone3:":["1f645-1f3fd"],":no_good_tone2:":["1f645-1f3fc"],":no_good_tone1:":["1f645-1f3fb"],":vulcan_tone5:":["1f596-1f3ff"],":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":["1f596-1f3ff"],":vulcan_tone4:":["1f596-1f3fe"],":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":["1f596-1f3fe"],":vulcan_tone3:":["1f596-1f3fd"],":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":["1f596-1f3fd"],":vulcan_tone2:":["1f596-1f3fc"],":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":["1f596-1f3fc"],":vulcan_tone1:":["1f596-1f3fb"],":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":["1f596-1f3fb"],":middle_finger_tone5:":["1f595-1f3ff"],":reversed_hand_with_middle_finger_extended_tone5:":["1f595-1f3ff"],":middle_finger_tone4:":["1f595-1f3fe"],":reversed_hand_with_middle_finger_extended_tone4:":["1f595-1f3fe"],":middle_finger_tone3:":["1f595-1f3fd"],":reversed_hand_with_middle_finger_extended_tone3:":["1f595-1f3fd"],":middle_finger_tone2:":["1f595-1f3fc"],":reversed_hand_with_middle_finger_extended_tone2:":["1f595-1f3fc"],":middle_finger_tone1:":["1f595-1f3fb"],":reversed_hand_with_middle_finger_extended_tone1:":["1f595-1f3fb"],":hand_splayed_tone5:":["1f590-1f3ff"],":raised_hand_with_fingers_splayed_tone5:":["1f590-1f3ff"],":hand_splayed_tone4:":["1f590-1f3fe"],":raised_hand_with_fingers_splayed_tone4:":["1f590-1f3fe"],":hand_splayed_tone3:":["1f590-1f3fd"],":raised_hand_with_fingers_splayed_tone3:":["1f590-1f3fd"],":hand_splayed_tone2:":["1f590-1f3fc"],":raised_hand_with_fingers_splayed_tone2:":["1f590-1f3fc"],":hand_splayed_tone1:":["1f590-1f3fb"],":raised_hand_with_fingers_splayed_tone1:":["1f590-1f3fb"],":spy_tone5:":["1f575-1f3ff"],":sleuth_or_spy_tone5:":["1f575-1f3ff"],":spy_tone4:":["1f575-1f3fe"],":sleuth_or_spy_tone4:":["1f575-1f3fe"],":spy_tone3:":["1f575-1f3fd"],":sleuth_or_spy_tone3:":["1f575-1f3fd"],":spy_tone2:":["1f575-1f3fc"],":sleuth_or_spy_tone2:":["1f575-1f3fc"],":spy_tone1:":["1f575-1f3fb"],":sleuth_or_spy_tone1:":["1f575-1f3fb"],":muscle_tone5:":["1f4aa-1f3ff"],":muscle_tone4:":["1f4aa-1f3fe"],":muscle_tone3:":["1f4aa-1f3fd"],":muscle_tone2:":["1f4aa-1f3fc"],":muscle_tone1:":["1f4aa-1f3fb"],":haircut_tone5:":["1f487-1f3ff"],":haircut_tone4:":["1f487-1f3fe"],":haircut_tone3:":["1f487-1f3fd"],":haircut_tone2:":["1f487-1f3fc"],":haircut_tone1:":["1f487-1f3fb"],":massage_tone5:":["1f486-1f3ff"],":massage_tone4:":["1f486-1f3fe"],":massage_tone3:":["1f486-1f3fd"],":massage_tone2:":["1f486-1f3fc"],":massage_tone1:":["1f486-1f3fb"],":nail_care_tone5:":["1f485-1f3ff"],":nail_care_tone4:":["1f485-1f3fe"],":nail_care_tone3:":["1f485-1f3fd"],":nail_care_tone2:":["1f485-1f3fc"],":nail_care_tone1:":["1f485-1f3fb"],":dancer_tone5:":["1f483-1f3ff"],":dancer_tone4:":["1f483-1f3fe"],":dancer_tone3:":["1f483-1f3fd"],":dancer_tone2:":["1f483-1f3fc"],":dancer_tone1:":["1f483-1f3fb"],":guardsman_tone5:":["1f482-1f3ff"],":guardsman_tone4:":["1f482-1f3fe"],":guardsman_tone3:":["1f482-1f3fd"],":guardsman_tone2:":["1f482-1f3fc"],":guardsman_tone1:":["1f482-1f3fb"],":information_desk_person_tone5:":["1f481-1f3ff"],":information_desk_person_tone4:":["1f481-1f3fe"],":information_desk_person_tone3:":["1f481-1f3fd"],":information_desk_person_tone2:":["1f481-1f3fc"],":information_desk_person_tone1:":["1f481-1f3fb"],":angel_tone5:":["1f47c-1f3ff"],":angel_tone4:":["1f47c-1f3fe"],":angel_tone3:":["1f47c-1f3fd"],":angel_tone2:":["1f47c-1f3fc"],":angel_tone1:":["1f47c-1f3fb"],":princess_tone5:":["1f478-1f3ff"],":princess_tone4:":["1f478-1f3fe"],":princess_tone3:":["1f478-1f3fd"],":princess_tone2:":["1f478-1f3fc"],":princess_tone1:":["1f478-1f3fb"],":construction_worker_tone5:":["1f477-1f3ff"],":construction_worker_tone4:":["1f477-1f3fe"],":construction_worker_tone3:":["1f477-1f3fd"],":construction_worker_tone2:":["1f477-1f3fc"],":construction_worker_tone1:":["1f477-1f3fb"],":baby_tone5:":["1f476-1f3ff"],":baby_tone4:":["1f476-1f3fe"],":baby_tone3:":["1f476-1f3fd"],":baby_tone2:":["1f476-1f3fc"],":baby_tone1:":["1f476-1f3fb"],":older_woman_tone5:":["1f475-1f3ff"],":grandma_tone5:":["1f475-1f3ff"],":older_woman_tone4:":["1f475-1f3fe"],":grandma_tone4:":["1f475-1f3fe"],":older_woman_tone3:":["1f475-1f3fd"],":grandma_tone3:":["1f475-1f3fd"],":older_woman_tone2:":["1f475-1f3fc"],":grandma_tone2:":["1f475-1f3fc"],":older_woman_tone1:":["1f475-1f3fb"],":grandma_tone1:":["1f475-1f3fb"],":older_man_tone5:":["1f474-1f3ff"],":older_man_tone4:":["1f474-1f3fe"],":older_man_tone3:":["1f474-1f3fd"],":older_man_tone2:":["1f474-1f3fc"],":older_man_tone1:":["1f474-1f3fb"],":man_with_turban_tone5:":["1f473-1f3ff"],":man_with_turban_tone4:":["1f473-1f3fe"],":man_with_turban_tone3:":["1f473-1f3fd"],":man_with_turban_tone2:":["1f473-1f3fc"],":man_with_turban_tone1:":["1f473-1f3fb"],":man_with_gua_pi_mao_tone5:":["1f472-1f3ff"],":man_with_gua_pi_mao_tone4:":["1f472-1f3fe"],":man_with_gua_pi_mao_tone3:":["1f472-1f3fd"],":man_with_gua_pi_mao_tone2:":["1f472-1f3fc"],":man_with_gua_pi_mao_tone1:":["1f472-1f3fb"],":person_with_blond_hair_tone5:":["1f471-1f3ff"],":person_with_blond_hair_tone4:":["1f471-1f3fe"],":person_with_blond_hair_tone3:":["1f471-1f3fd"],":person_with_blond_hair_tone2:":["1f471-1f3fc"],":person_with_blond_hair_tone1:":["1f471-1f3fb"],":bride_with_veil_tone5:":["1f470-1f3ff"],":bride_with_veil_tone4:":["1f470-1f3fe"],":bride_with_veil_tone3:":["1f470-1f3fd"],":bride_with_veil_tone2:":["1f470-1f3fc"],":bride_with_veil_tone1:":["1f470-1f3fb"],":cop_tone5:":["1f46e-1f3ff"],":cop_tone4:":["1f46e-1f3fe"],":cop_tone3:":["1f46e-1f3fd"],":cop_tone2:":["1f46e-1f3fc"],":cop_tone1:":["1f46e-1f3fb"],":woman_tone5:":["1f469-1f3ff"],":woman_tone4:":["1f469-1f3fe"],":woman_tone3:":["1f469-1f3fd"],":woman_tone2:":["1f469-1f3fc"],":woman_tone1:":["1f469-1f3fb"],":man_tone5:":["1f468-1f3ff"],":man_tone4:":["1f468-1f3fe"],":man_tone3:":["1f468-1f3fd"],":man_tone2:":["1f468-1f3fc"],":man_tone1:":["1f468-1f3fb"],":girl_tone5:":["1f467-1f3ff"],":girl_tone4:":["1f467-1f3fe"],":girl_tone3:":["1f467-1f3fd"],":girl_tone2:":["1f467-1f3fc"],":girl_tone1:":["1f467-1f3fb"],":boy_tone5:":["1f466-1f3ff"],":boy_tone4:":["1f466-1f3fe"],":boy_tone3:":["1f466-1f3fd"],":boy_tone2:":["1f466-1f3fc"],":boy_tone1:":["1f466-1f3fb"],":open_hands_tone5:":["1f450-1f3ff"],":open_hands_tone4:":["1f450-1f3fe"],":open_hands_tone3:":["1f450-1f3fd"],":open_hands_tone2:":["1f450-1f3fc"],":open_hands_tone1:":["1f450-1f3fb"],":clap_tone5:":["1f44f-1f3ff"],":clap_tone4:":["1f44f-1f3fe"],":clap_tone3:":["1f44f-1f3fd"],":clap_tone2:":["1f44f-1f3fc"],":clap_tone1:":["1f44f-1f3fb"],":thumbsdown_tone5:":["1f44e-1f3ff"],":-1_tone5:":["1f44e-1f3ff"],":thumbsdown_tone4:":["1f44e-1f3fe"],":-1_tone4:":["1f44e-1f3fe"],":thumbsdown_tone3:":["1f44e-1f3fd"],":-1_tone3:":["1f44e-1f3fd"],":thumbsdown_tone2:":["1f44e-1f3fc"],":-1_tone2:":["1f44e-1f3fc"],":thumbsdown_tone1:":["1f44e-1f3fb"],":-1_tone1:":["1f44e-1f3fb"],":thumbsup_tone5:":["1f44d-1f3ff"],":+1_tone5:":["1f44d-1f3ff"],":thumbsup_tone4:":["1f44d-1f3fe"],":+1_tone4:":["1f44d-1f3fe"],":thumbsup_tone3:":["1f44d-1f3fd"],":+1_tone3:":["1f44d-1f3fd"],":thumbsup_tone2:":["1f44d-1f3fc"],":+1_tone2:":["1f44d-1f3fc"],":thumbsup_tone1:":["1f44d-1f3fb"],":+1_tone1:":["1f44d-1f3fb"],":ok_hand_tone5:":["1f44c-1f3ff"],":ok_hand_tone4:":["1f44c-1f3fe"],":ok_hand_tone3:":["1f44c-1f3fd"],":ok_hand_tone2:":["1f44c-1f3fc"],":ok_hand_tone1:":["1f44c-1f3fb"],":wave_tone5:":["1f44b-1f3ff"],":wave_tone4:":["1f44b-1f3fe"],":wave_tone3:":["1f44b-1f3fd"],":wave_tone2:":["1f44b-1f3fc"],":wave_tone1:":["1f44b-1f3fb"],":punch_tone5:":["1f44a-1f3ff"],":punch_tone4:":["1f44a-1f3fe"],":punch_tone3:":["1f44a-1f3fd"],":punch_tone2:":["1f44a-1f3fc"],":punch_tone1:":["1f44a-1f3fb"],":point_right_tone5:":["1f449-1f3ff"],":point_right_tone4:":["1f449-1f3fe"],":point_right_tone3:":["1f449-1f3fd"],":point_right_tone2:":["1f449-1f3fc"],":point_right_tone1:":["1f449-1f3fb"],":point_left_tone5:":["1f448-1f3ff"],":point_left_tone4:":["1f448-1f3fe"],":point_left_tone3:":["1f448-1f3fd"],":point_left_tone2:":["1f448-1f3fc"],":point_left_tone1:":["1f448-1f3fb"],":point_down_tone5:":["1f447-1f3ff"],":point_down_tone4:":["1f447-1f3fe"],":point_down_tone3:":["1f447-1f3fd"],":point_down_tone2:":["1f447-1f3fc"],":point_down_tone1:":["1f447-1f3fb"],":point_up_2_tone5:":["1f446-1f3ff"],":point_up_2_tone4:":["1f446-1f3fe"],":point_up_2_tone3:":["1f446-1f3fd"],":point_up_2_tone2:":["1f446-1f3fc"],":point_up_2_tone1:":["1f446-1f3fb"],":nose_tone5:":["1f443-1f3ff"],":nose_tone4:":["1f443-1f3fe"],":nose_tone3:":["1f443-1f3fd"],":nose_tone2:":["1f443-1f3fc"],":nose_tone1:":["1f443-1f3fb"],":ear_tone5:":["1f442-1f3ff"],":ear_tone4:":["1f442-1f3fe"],":ear_tone3:":["1f442-1f3fd"],":ear_tone2:":["1f442-1f3fc"],":ear_tone1:":["1f442-1f3fb"],":lifter_tone5:":["1f3cb-1f3ff"],":weight_lifter_tone5:":["1f3cb-1f3ff"],":lifter_tone4:":["1f3cb-1f3fe"],":weight_lifter_tone4:":["1f3cb-1f3fe"],":lifter_tone3:":["1f3cb-1f3fd"],":weight_lifter_tone3:":["1f3cb-1f3fd"],":lifter_tone2:":["1f3cb-1f3fc"],":weight_lifter_tone2:":["1f3cb-1f3fc"],":lifter_tone1:":["1f3cb-1f3fb"],":weight_lifter_tone1:":["1f3cb-1f3fb"],":swimmer_tone5:":["1f3ca-1f3ff"],":swimmer_tone4:":["1f3ca-1f3fe"],":swimmer_tone3:":["1f3ca-1f3fd"],":swimmer_tone2:":["1f3ca-1f3fc"],":swimmer_tone1:":["1f3ca-1f3fb"],":horse_racing_tone5:":["1f3c7-1f3ff"],":horse_racing_tone4:":["1f3c7-1f3fe"],":horse_racing_tone3:":["1f3c7-1f3fd"],":horse_racing_tone2:":["1f3c7-1f3fc"],":horse_racing_tone1:":["1f3c7-1f3fb"],":surfer_tone5:":["1f3c4-1f3ff"],":surfer_tone4:":["1f3c4-1f3fe"],":surfer_tone3:":["1f3c4-1f3fd"],":surfer_tone2:":["1f3c4-1f3fc"],":surfer_tone1:":["1f3c4-1f3fb"],":runner_tone5:":["1f3c3-1f3ff"],":runner_tone4:":["1f3c3-1f3fe"],":runner_tone3:":["1f3c3-1f3fd"],":runner_tone2:":["1f3c3-1f3fc"],":runner_tone1:":["1f3c3-1f3fb"],":santa_tone5:":["1f385-1f3ff"],":santa_tone4:":["1f385-1f3fe"],":santa_tone3:":["1f385-1f3fd"],":santa_tone2:":["1f385-1f3fc"],":santa_tone1:":["1f385-1f3fb"],":flag_zw:":["1f1ff-1f1fc"],":zw:":["1f1ff-1f1fc"],":flag_zm:":["1f1ff-1f1f2"],":zm:":["1f1ff-1f1f2"],":flag_za:":["1f1ff-1f1e6"],":za:":["1f1ff-1f1e6"],":flag_yt:":["1f1fe-1f1f9"],":yt:":["1f1fe-1f1f9"],":flag_ye:":["1f1fe-1f1ea"],":ye:":["1f1fe-1f1ea"],":flag_xk:":["1f1fd-1f1f0"],":xk:":["1f1fd-1f1f0"],":flag_ws:":["1f1fc-1f1f8"],":ws:":["1f1fc-1f1f8"],":flag_wf:":["1f1fc-1f1eb"],":wf:":["1f1fc-1f1eb"],":flag_vu:":["1f1fb-1f1fa"],":vu:":["1f1fb-1f1fa"],":flag_vn:":["1f1fb-1f1f3"],":vn:":["1f1fb-1f1f3"],":flag_vi:":["1f1fb-1f1ee"],":vi:":["1f1fb-1f1ee"],":flag_vg:":["1f1fb-1f1ec"],":vg:":["1f1fb-1f1ec"],":flag_ve:":["1f1fb-1f1ea"],":ve:":["1f1fb-1f1ea"],":flag_vc:":["1f1fb-1f1e8"],":vc:":["1f1fb-1f1e8"],":flag_va:":["1f1fb-1f1e6"],":va:":["1f1fb-1f1e6"],":flag_uz:":["1f1fa-1f1ff"],":uz:":["1f1fa-1f1ff"],":flag_uy:":["1f1fa-1f1fe"],":uy:":["1f1fa-1f1fe"],":flag_us:":["1f1fa-1f1f8"],":us:":["1f1fa-1f1f8"],":flag_um:":["1f1fa-1f1f2"],":um:":["1f1fa-1f1f2"],":flag_ug:":["1f1fa-1f1ec"],":ug:":["1f1fa-1f1ec"],":flag_ua:":["1f1fa-1f1e6"],":ua:":["1f1fa-1f1e6"],":flag_tz:":["1f1f9-1f1ff"],":tz:":["1f1f9-1f1ff"],":flag_tw:":["1f1f9-1f1fc"],":tw:":["1f1f9-1f1fc"],":flag_tv:":["1f1f9-1f1fb"],":tuvalu:":["1f1f9-1f1fb"],":flag_tt:":["1f1f9-1f1f9"],":tt:":["1f1f9-1f1f9"],":flag_tr:":["1f1f9-1f1f7"],":tr:":["1f1f9-1f1f7"],":flag_to:":["1f1f9-1f1f4"],":to:":["1f1f9-1f1f4"],":flag_tn:":["1f1f9-1f1f3"],":tn:":["1f1f9-1f1f3"],":flag_tm:":["1f1f9-1f1f2"],":turkmenistan:":["1f1f9-1f1f2"],":flag_tl:":["1f1f9-1f1f1"],":tl:":["1f1f9-1f1f1"],":flag_tk:":["1f1f9-1f1f0"],":tk:":["1f1f9-1f1f0"],":flag_tj:":["1f1f9-1f1ef"],":tj:":["1f1f9-1f1ef"],":flag_th:":["1f1f9-1f1ed"],":th:":["1f1f9-1f1ed"],":flag_tg:":["1f1f9-1f1ec"],":tg:":["1f1f9-1f1ec"],":flag_tf:":["1f1f9-1f1eb"],":tf:":["1f1f9-1f1eb"],":flag_td:":["1f1f9-1f1e9"],":td:":["1f1f9-1f1e9"],":flag_tc:":["1f1f9-1f1e8"],":tc:":["1f1f9-1f1e8"],":flag_ta:":["1f1f9-1f1e6"],":ta:":["1f1f9-1f1e6"],":flag_sz:":["1f1f8-1f1ff"],":sz:":["1f1f8-1f1ff"],":flag_sy:":["1f1f8-1f1fe"],":sy:":["1f1f8-1f1fe"],":flag_sx:":["1f1f8-1f1fd"],":sx:":["1f1f8-1f1fd"],":flag_sv:":["1f1f8-1f1fb"],":sv:":["1f1f8-1f1fb"],":flag_st:":["1f1f8-1f1f9"],":st:":["1f1f8-1f1f9"],":flag_ss:":["1f1f8-1f1f8"],":ss:":["1f1f8-1f1f8"],":flag_sr:":["1f1f8-1f1f7"],":sr:":["1f1f8-1f1f7"],":flag_so:":["1f1f8-1f1f4"],":so:":["1f1f8-1f1f4"],":flag_sn:":["1f1f8-1f1f3"],":sn:":["1f1f8-1f1f3"],":flag_sm:":["1f1f8-1f1f2"],":sm:":["1f1f8-1f1f2"],":flag_sl:":["1f1f8-1f1f1"],":sl:":["1f1f8-1f1f1"],":flag_sk:":["1f1f8-1f1f0"],":sk:":["1f1f8-1f1f0"],":flag_sj:":["1f1f8-1f1ef"],":sj:":["1f1f8-1f1ef"],":flag_si:":["1f1f8-1f1ee"],":si:":["1f1f8-1f1ee"],":flag_sh:":["1f1f8-1f1ed"],":sh:":["1f1f8-1f1ed"],":flag_sg:":["1f1f8-1f1ec"],":sg:":["1f1f8-1f1ec"],":flag_se:":["1f1f8-1f1ea"],":se:":["1f1f8-1f1ea"],":flag_sd:":["1f1f8-1f1e9"],":sd:":["1f1f8-1f1e9"],":flag_sc:":["1f1f8-1f1e8"],":sc:":["1f1f8-1f1e8"],":flag_sb:":["1f1f8-1f1e7"],":sb:":["1f1f8-1f1e7"],":flag_sa:":["1f1f8-1f1e6"],":saudiarabia:":["1f1f8-1f1e6"],":saudi:":["1f1f8-1f1e6"],":flag_rw:":["1f1f7-1f1fc"],":rw:":["1f1f7-1f1fc"],":flag_ru:":["1f1f7-1f1fa"],":ru:":["1f1f7-1f1fa"],":flag_rs:":["1f1f7-1f1f8"],":rs:":["1f1f7-1f1f8"],":flag_ro:":["1f1f7-1f1f4"],":ro:":["1f1f7-1f1f4"],":flag_re:":["1f1f7-1f1ea"],":re:":["1f1f7-1f1ea"],":flag_qa:":["1f1f6-1f1e6"],":qa:":["1f1f6-1f1e6"],":flag_py:":["1f1f5-1f1fe"],":py:":["1f1f5-1f1fe"],":flag_pw:":["1f1f5-1f1fc"],":pw:":["1f1f5-1f1fc"],":flag_pt:":["1f1f5-1f1f9"],":pt:":["1f1f5-1f1f9"],":flag_ps:":["1f1f5-1f1f8"],":ps:":["1f1f5-1f1f8"],":flag_pr:":["1f1f5-1f1f7"],":pr:":["1f1f5-1f1f7"],":flag_pn:":["1f1f5-1f1f3"],":pn:":["1f1f5-1f1f3"],":flag_pm:":["1f1f5-1f1f2"],":pm:":["1f1f5-1f1f2"],":flag_pl:":["1f1f5-1f1f1"],":pl:":["1f1f5-1f1f1"],":flag_pk:":["1f1f5-1f1f0"],":pk:":["1f1f5-1f1f0"],":flag_ph:":["1f1f5-1f1ed"],":ph:":["1f1f5-1f1ed"],":flag_pg:":["1f1f5-1f1ec"],":pg:":["1f1f5-1f1ec"],":flag_pf:":["1f1f5-1f1eb"],":pf:":["1f1f5-1f1eb"],":flag_pe:":["1f1f5-1f1ea"],":pe:":["1f1f5-1f1ea"],":flag_pa:":["1f1f5-1f1e6"],":pa:":["1f1f5-1f1e6"],":flag_om:":["1f1f4-1f1f2"],":om:":["1f1f4-1f1f2"],":flag_nz:":["1f1f3-1f1ff"],":nz:":["1f1f3-1f1ff"],":flag_nu:":["1f1f3-1f1fa"],":nu:":["1f1f3-1f1fa"],":flag_nr:":["1f1f3-1f1f7"],":nr:":["1f1f3-1f1f7"],":flag_np:":["1f1f3-1f1f5"],":np:":["1f1f3-1f1f5"],":flag_no:":["1f1f3-1f1f4"],":no:":["1f1f3-1f1f4"],":flag_nl:":["1f1f3-1f1f1"],":nl:":["1f1f3-1f1f1"],":flag_ni:":["1f1f3-1f1ee"],":ni:":["1f1f3-1f1ee"],":flag_ng:":["1f1f3-1f1ec"],":nigeria:":["1f1f3-1f1ec"],":flag_nf:":["1f1f3-1f1eb"],":nf:":["1f1f3-1f1eb"],":flag_ne:":["1f1f3-1f1ea"],":ne:":["1f1f3-1f1ea"],":flag_nc:":["1f1f3-1f1e8"],":nc:":["1f1f3-1f1e8"],":flag_na:":["1f1f3-1f1e6"],":na:":["1f1f3-1f1e6"],":flag_mz:":["1f1f2-1f1ff"],":mz:":["1f1f2-1f1ff"],":flag_my:":["1f1f2-1f1fe"],":my:":["1f1f2-1f1fe"],":flag_mx:":["1f1f2-1f1fd"],":mx:":["1f1f2-1f1fd"],":flag_mw:":["1f1f2-1f1fc"],":mw:":["1f1f2-1f1fc"],":flag_mv:":["1f1f2-1f1fb"],":mv:":["1f1f2-1f1fb"],":flag_mu:":["1f1f2-1f1fa"],":mu:":["1f1f2-1f1fa"],":flag_mt:":["1f1f2-1f1f9"],":mt:":["1f1f2-1f1f9"],":flag_ms:":["1f1f2-1f1f8"],":ms:":["1f1f2-1f1f8"],":flag_mr:":["1f1f2-1f1f7"],":mr:":["1f1f2-1f1f7"],":flag_mq:":["1f1f2-1f1f6"],":mq:":["1f1f2-1f1f6"],":flag_mp:":["1f1f2-1f1f5"],":mp:":["1f1f2-1f1f5"],":flag_mo:":["1f1f2-1f1f4"],":mo:":["1f1f2-1f1f4"],":flag_mn:":["1f1f2-1f1f3"],":mn:":["1f1f2-1f1f3"],":flag_mm:":["1f1f2-1f1f2"],":mm:":["1f1f2-1f1f2"],":flag_ml:":["1f1f2-1f1f1"],":ml:":["1f1f2-1f1f1"],":flag_mk:":["1f1f2-1f1f0"],":mk:":["1f1f2-1f1f0"],":flag_mh:":["1f1f2-1f1ed"],":mh:":["1f1f2-1f1ed"],":flag_mg:":["1f1f2-1f1ec"],":mg:":["1f1f2-1f1ec"],":flag_mf:":["1f1f2-1f1eb"],":mf:":["1f1f2-1f1eb"],":flag_me:":["1f1f2-1f1ea"],":me:":["1f1f2-1f1ea"],":flag_md:":["1f1f2-1f1e9"],":md:":["1f1f2-1f1e9"],":flag_mc:":["1f1f2-1f1e8"],":mc:":["1f1f2-1f1e8"],":flag_ma:":["1f1f2-1f1e6"],":ma:":["1f1f2-1f1e6"],":flag_ly:":["1f1f1-1f1fe"],":ly:":["1f1f1-1f1fe"],":flag_lv:":["1f1f1-1f1fb"],":lv:":["1f1f1-1f1fb"],":flag_lu:":["1f1f1-1f1fa"],":lu:":["1f1f1-1f1fa"],":flag_lt:":["1f1f1-1f1f9"],":lt:":["1f1f1-1f1f9"],":flag_ls:":["1f1f1-1f1f8"],":ls:":["1f1f1-1f1f8"],":flag_lr:":["1f1f1-1f1f7"],":lr:":["1f1f1-1f1f7"],":flag_lk:":["1f1f1-1f1f0"],":lk:":["1f1f1-1f1f0"],":flag_li:":["1f1f1-1f1ee"],":li:":["1f1f1-1f1ee"],":flag_lc:":["1f1f1-1f1e8"],":lc:":["1f1f1-1f1e8"],":flag_lb:":["1f1f1-1f1e7"],":lb:":["1f1f1-1f1e7"],":flag_la:":["1f1f1-1f1e6"],":la:":["1f1f1-1f1e6"],":flag_kz:":["1f1f0-1f1ff"],":kz:":["1f1f0-1f1ff"],":flag_ky:":["1f1f0-1f1fe"],":ky:":["1f1f0-1f1fe"],":flag_kw:":["1f1f0-1f1fc"],":kw:":["1f1f0-1f1fc"],":flag_kr:":["1f1f0-1f1f7"],":kr:":["1f1f0-1f1f7"],":flag_kp:":["1f1f0-1f1f5"],":kp:":["1f1f0-1f1f5"],":flag_kn:":["1f1f0-1f1f3"],":kn:":["1f1f0-1f1f3"],":flag_km:":["1f1f0-1f1f2"],":km:":["1f1f0-1f1f2"],":flag_ki:":["1f1f0-1f1ee"],":ki:":["1f1f0-1f1ee"],":flag_kh:":["1f1f0-1f1ed"],":kh:":["1f1f0-1f1ed"],":flag_kg:":["1f1f0-1f1ec"],":kg:":["1f1f0-1f1ec"],":flag_ke:":["1f1f0-1f1ea"],":ke:":["1f1f0-1f1ea"],":flag_jp:":["1f1ef-1f1f5"],":jp:":["1f1ef-1f1f5"],":flag_jo:":["1f1ef-1f1f4"],":jo:":["1f1ef-1f1f4"],":flag_jm:":["1f1ef-1f1f2"],":jm:":["1f1ef-1f1f2"],":flag_je:":["1f1ef-1f1ea"],":je:":["1f1ef-1f1ea"],":flag_it:":["1f1ee-1f1f9"],":it:":["1f1ee-1f1f9"],":flag_is:":["1f1ee-1f1f8"],":is:":["1f1ee-1f1f8"],":flag_ir:":["1f1ee-1f1f7"],":ir:":["1f1ee-1f1f7"],":flag_iq:":["1f1ee-1f1f6"],":iq:":["1f1ee-1f1f6"],":flag_io:":["1f1ee-1f1f4"],":io:":["1f1ee-1f1f4"],":flag_in:":["1f1ee-1f1f3"],":in:":["1f1ee-1f1f3"],":flag_im:":["1f1ee-1f1f2"],":im:":["1f1ee-1f1f2"],":flag_il:":["1f1ee-1f1f1"],":il:":["1f1ee-1f1f1"],":flag_ie:":["1f1ee-1f1ea"],":ie:":["1f1ee-1f1ea"],":flag_id:":["1f1ee-1f1e9"],":indonesia:":["1f1ee-1f1e9"],":flag_ic:":["1f1ee-1f1e8"],":ic:":["1f1ee-1f1e8"],":flag_hu:":["1f1ed-1f1fa"],":hu:":["1f1ed-1f1fa"],":flag_ht:":["1f1ed-1f1f9"],":ht:":["1f1ed-1f1f9"],":flag_hr:":["1f1ed-1f1f7"],":hr:":["1f1ed-1f1f7"],":flag_hn:":["1f1ed-1f1f3"],":hn:":["1f1ed-1f1f3"],":flag_hm:":["1f1ed-1f1f2"],":hm:":["1f1ed-1f1f2"],":flag_hk:":["1f1ed-1f1f0"],":hk:":["1f1ed-1f1f0"],":flag_gy:":["1f1ec-1f1fe"],":gy:":["1f1ec-1f1fe"],":flag_gw:":["1f1ec-1f1fc"],":gw:":["1f1ec-1f1fc"],":flag_gu:":["1f1ec-1f1fa"],":gu:":["1f1ec-1f1fa"],":flag_gt:":["1f1ec-1f1f9"],":gt:":["1f1ec-1f1f9"],":flag_gs:":["1f1ec-1f1f8"],":gs:":["1f1ec-1f1f8"],":flag_gr:":["1f1ec-1f1f7"],":gr:":["1f1ec-1f1f7"],":flag_gq:":["1f1ec-1f1f6"],":gq:":["1f1ec-1f1f6"],":flag_gp:":["1f1ec-1f1f5"],":gp:":["1f1ec-1f1f5"],":flag_gn:":["1f1ec-1f1f3"],":gn:":["1f1ec-1f1f3"],":flag_gm:":["1f1ec-1f1f2"],":gm:":["1f1ec-1f1f2"],":flag_gl:":["1f1ec-1f1f1"],":gl:":["1f1ec-1f1f1"],":flag_gi:":["1f1ec-1f1ee"],":gi:":["1f1ec-1f1ee"],":flag_gh:":["1f1ec-1f1ed"],":gh:":["1f1ec-1f1ed"],":flag_gg:":["1f1ec-1f1ec"],":gg:":["1f1ec-1f1ec"],":flag_gf:":["1f1ec-1f1eb"],":gf:":["1f1ec-1f1eb"],":flag_ge:":["1f1ec-1f1ea"],":ge:":["1f1ec-1f1ea"],":flag_gd:":["1f1ec-1f1e9"],":gd:":["1f1ec-1f1e9"],":flag_gb:":["1f1ec-1f1e7"],":gb:":["1f1ec-1f1e7"],":flag_ga:":["1f1ec-1f1e6"],":ga:":["1f1ec-1f1e6"],":flag_fr:":["1f1eb-1f1f7"],":fr:":["1f1eb-1f1f7"],":flag_fo:":["1f1eb-1f1f4"],":fo:":["1f1eb-1f1f4"],":flag_fm:":["1f1eb-1f1f2"],":fm:":["1f1eb-1f1f2"],":flag_fk:":["1f1eb-1f1f0"],":fk:":["1f1eb-1f1f0"],":flag_fj:":["1f1eb-1f1ef"],":fj:":["1f1eb-1f1ef"],":flag_fi:":["1f1eb-1f1ee"],":fi:":["1f1eb-1f1ee"],":flag_eu:":["1f1ea-1f1fa"],":eu:":["1f1ea-1f1fa"],":flag_et:":["1f1ea-1f1f9"],":et:":["1f1ea-1f1f9"],":flag_es:":["1f1ea-1f1f8"],":es:":["1f1ea-1f1f8"],":flag_er:":["1f1ea-1f1f7"],":er:":["1f1ea-1f1f7"],":flag_eh:":["1f1ea-1f1ed"],":eh:":["1f1ea-1f1ed"],":flag_eg:":["1f1ea-1f1ec"],":eg:":["1f1ea-1f1ec"],":flag_ee:":["1f1ea-1f1ea"],":ee:":["1f1ea-1f1ea"],":flag_ec:":["1f1ea-1f1e8"],":ec:":["1f1ea-1f1e8"],":flag_ea:":["1f1ea-1f1e6"],":ea:":["1f1ea-1f1e6"],":flag_dz:":["1f1e9-1f1ff"],":dz:":["1f1e9-1f1ff"],":flag_do:":["1f1e9-1f1f4"],":do:":["1f1e9-1f1f4"],":flag_dm:":["1f1e9-1f1f2"],":dm:":["1f1e9-1f1f2"],":flag_dk:":["1f1e9-1f1f0"],":dk:":["1f1e9-1f1f0"],":flag_dj:":["1f1e9-1f1ef"],":dj:":["1f1e9-1f1ef"],":flag_dg:":["1f1e9-1f1ec"],":dg:":["1f1e9-1f1ec"],":flag_de:":["1f1e9-1f1ea"],":de:":["1f1e9-1f1ea"],":flag_cz:":["1f1e8-1f1ff"],":cz:":["1f1e8-1f1ff"],":flag_cy:":["1f1e8-1f1fe"],":cy:":["1f1e8-1f1fe"],":flag_cx:":["1f1e8-1f1fd"],":cx:":["1f1e8-1f1fd"],":flag_cw:":["1f1e8-1f1fc"],":cw:":["1f1e8-1f1fc"],":flag_cv:":["1f1e8-1f1fb"],":cv:":["1f1e8-1f1fb"],":flag_cu:":["1f1e8-1f1fa"],":cu:":["1f1e8-1f1fa"],":flag_cr:":["1f1e8-1f1f7"],":cr:":["1f1e8-1f1f7"],":flag_cp:":["1f1e8-1f1f5"],":cp:":["1f1e8-1f1f5"],":flag_co:":["1f1e8-1f1f4"],":co:":["1f1e8-1f1f4"],":flag_cn:":["1f1e8-1f1f3"],":cn:":["1f1e8-1f1f3"],":flag_cm:":["1f1e8-1f1f2"],":cm:":["1f1e8-1f1f2"],":flag_cl:":["1f1e8-1f1f1"],":chile:":["1f1e8-1f1f1"],":flag_ck:":["1f1e8-1f1f0"],":ck:":["1f1e8-1f1f0"],":flag_ci:":["1f1e8-1f1ee"],":ci:":["1f1e8-1f1ee"],":flag_ch:":["1f1e8-1f1ed"],":ch:":["1f1e8-1f1ed"],":flag_cg:":["1f1e8-1f1ec"],":cg:":["1f1e8-1f1ec"],":flag_cf:":["1f1e8-1f1eb"],":cf:":["1f1e8-1f1eb"],":flag_cd:":["1f1e8-1f1e9"],":congo:":["1f1e8-1f1e9"],":flag_cc:":["1f1e8-1f1e8"],":cc:":["1f1e8-1f1e8"],":flag_ca:":["1f1e8-1f1e6"],":ca:":["1f1e8-1f1e6"],":flag_bz:":["1f1e7-1f1ff"],":bz:":["1f1e7-1f1ff"],":flag_by:":["1f1e7-1f1fe"],":by:":["1f1e7-1f1fe"],":flag_bw:":["1f1e7-1f1fc"],":bw:":["1f1e7-1f1fc"],":flag_bv:":["1f1e7-1f1fb"],":bv:":["1f1e7-1f1fb"],":flag_bt:":["1f1e7-1f1f9"],":bt:":["1f1e7-1f1f9"],":flag_bs:":["1f1e7-1f1f8"],":bs:":["1f1e7-1f1f8"],":flag_br:":["1f1e7-1f1f7"],":br:":["1f1e7-1f1f7"],":flag_bq:":["1f1e7-1f1f6"],":bq:":["1f1e7-1f1f6"],":flag_bo:":["1f1e7-1f1f4"],":bo:":["1f1e7-1f1f4"],":flag_bn:":["1f1e7-1f1f3"],":bn:":["1f1e7-1f1f3"],":flag_bm:":["1f1e7-1f1f2"],":bm:":["1f1e7-1f1f2"],":flag_bl:":["1f1e7-1f1f1"],":bl:":["1f1e7-1f1f1"],":flag_bj:":["1f1e7-1f1ef"],":bj:":["1f1e7-1f1ef"],":flag_bi:":["1f1e7-1f1ee"],":bi:":["1f1e7-1f1ee"],":flag_bh:":["1f1e7-1f1ed"],":bh:":["1f1e7-1f1ed"],":flag_bg:":["1f1e7-1f1ec"],":bg:":["1f1e7-1f1ec"],":flag_bf:":["1f1e7-1f1eb"],":bf:":["1f1e7-1f1eb"],":flag_be:":["1f1e7-1f1ea"],":be:":["1f1e7-1f1ea"],":flag_bd:":["1f1e7-1f1e9"],":bd:":["1f1e7-1f1e9"],":flag_bb:":["1f1e7-1f1e7"],":bb:":["1f1e7-1f1e7"],":flag_ba:":["1f1e7-1f1e6"],":ba:":["1f1e7-1f1e6"],":flag_az:":["1f1e6-1f1ff"],":az:":["1f1e6-1f1ff"],":flag_ax:":["1f1e6-1f1fd"],":ax:":["1f1e6-1f1fd"],":flag_aw:":["1f1e6-1f1fc"],":aw:":["1f1e6-1f1fc"],":flag_au:":["1f1e6-1f1fa"],":au:":["1f1e6-1f1fa"],":flag_at:":["1f1e6-1f1f9"],":at:":["1f1e6-1f1f9"],":flag_as:":["1f1e6-1f1f8"],":as:":["1f1e6-1f1f8"],":flag_ar:":["1f1e6-1f1f7"],":ar:":["1f1e6-1f1f7"],":flag_aq:":["1f1e6-1f1f6"],":aq:":["1f1e6-1f1f6"],":flag_ao:":["1f1e6-1f1f4"],":ao:":["1f1e6-1f1f4"],":flag_am:":["1f1e6-1f1f2"],":am:":["1f1e6-1f1f2"],":flag_al:":["1f1e6-1f1f1"],":al:":["1f1e6-1f1f1"],":flag_ai:":["1f1e6-1f1ee"],":ai:":["1f1e6-1f1ee"],":flag_ag:":["1f1e6-1f1ec"],":ag:":["1f1e6-1f1ec"],":flag_af:":["1f1e6-1f1eb"],":af:":["1f1e6-1f1eb"],":flag_ae:":["1f1e6-1f1ea"],":ae:":["1f1e6-1f1ea"],":flag_ad:":["1f1e6-1f1e9"],":ad:":["1f1e6-1f1e9"],":flag_ac:":["1f1e6-1f1e8"],":ac:":["1f1e6-1f1e8"],":mahjong:":["1f004-fe0f","1f004"],":parking:":["1f17f-fe0f","1f17f"],":u7121:":["1f21a-fe0f","1f21a"],":u6307:":["1f22f-fe0f","1f22f"],":u6708:":["1f237-fe0f","1f237"],":point_up_tone1:":["261d-1f3fb"],":point_up_tone2:":["261d-1f3fc"],":point_up_tone3:":["261d-1f3fd"],":point_up_tone4:":["261d-1f3fe"],":point_up_tone5:":["261d-1f3ff"],":v_tone1:":["270c-1f3fb"],":v_tone2:":["270c-1f3fc"],":v_tone3:":["270c-1f3fd"],":v_tone4:":["270c-1f3fe"],":v_tone5:":["270c-1f3ff"],":fist_tone1:":["270a-1f3fb"],":fist_tone2:":["270a-1f3fc"],":fist_tone3:":["270a-1f3fd"],":fist_tone4:":["270a-1f3fe"],":fist_tone5:":["270a-1f3ff"],":raised_hand_tone1:":["270b-1f3fb"],":raised_hand_tone2:":["270b-1f3fc"],":raised_hand_tone3:":["270b-1f3fd"],":raised_hand_tone4:":["270b-1f3fe"],":raised_hand_tone5:":["270b-1f3ff"],":writing_hand_tone1:":["270d-1f3fb"],":writing_hand_tone2:":["270d-1f3fc"],":writing_hand_tone3:":["270d-1f3fd"],":writing_hand_tone4:":["270d-1f3fe"],":writing_hand_tone5:":["270d-1f3ff"],":basketball_player_tone1:":["26f9-1f3fb"],":person_with_ball_tone1:":["26f9-1f3fb"],":basketball_player_tone2:":["26f9-1f3fc"],":person_with_ball_tone2:":["26f9-1f3fc"],":basketball_player_tone3:":["26f9-1f3fd"],":person_with_ball_tone3:":["26f9-1f3fd"],":basketball_player_tone4:":["26f9-1f3fe"],":person_with_ball_tone4:":["26f9-1f3fe"],":basketball_player_tone5:":["26f9-1f3ff"],":person_with_ball_tone5:":["26f9-1f3ff"],":copyright:":["00a9-fe0f","00a9"],":registered:":["00ae-fe0f","00ae"],":bangbang:":["203c-fe0f","203c"],":interrobang:":["2049-fe0f","2049"],":tm:":["2122-fe0f","2122"],":information_source:":["2139-fe0f","2139"],":left_right_arrow:":["2194-fe0f","2194"],":arrow_up_down:":["2195-fe0f","2195"],":arrow_upper_left:":["2196-fe0f","2196"],":arrow_upper_right:":["2197-fe0f","2197"],":arrow_lower_right:":["2198-fe0f","2198"],":arrow_lower_left:":["2199-fe0f","2199"],":leftwards_arrow_with_hook:":["21a9-fe0f","21a9"],":arrow_right_hook:":["21aa-fe0f","21aa"],":watch:":["231a-fe0f","231a"],":hourglass:":["231b-fe0f","231b"],":m:":["24c2-fe0f","24c2"],":black_small_square:":["25aa-fe0f","25aa"],":white_small_square:":["25ab-fe0f","25ab"],":arrow_forward:":["25b6-fe0f","25b6"],":arrow_backward:":["25c0-fe0f","25c0"],":white_medium_square:":["25fb-fe0f","25fb"],":black_medium_square:":["25fc-fe0f","25fc"],":white_medium_small_square:":["25fd-fe0f","25fd"],":black_medium_small_square:":["25fe-fe0f","25fe"],":sunny:":["2600-fe0f","2600"],":cloud:":["2601-fe0f","2601"],":telephone:":["260e-fe0f","260e"],":ballot_box_with_check:":["2611-fe0f","2611"],":umbrella:":["2614-fe0f","2614"],":coffee:":["2615-fe0f","2615"],":point_up:":["261d-fe0f","261d"],":relaxed:":["263a-fe0f","263a"],":aries:":["2648-fe0f","2648"],":taurus:":["2649-fe0f","2649"],":gemini:":["264a-fe0f","264a"],":cancer:":["264b-fe0f","264b"],":leo:":["264c-fe0f","264c"],":virgo:":["264d-fe0f","264d"],":libra:":["264e-fe0f","264e"],":scorpius:":["264f-fe0f","264f"],":sagittarius:":["2650-fe0f","2650"],":capricorn:":["2651-fe0f","2651"],":aquarius:":["2652-fe0f","2652"],":pisces:":["2653-fe0f","2653"],":spades:":["2660-fe0f","2660"],":clubs:":["2663-fe0f","2663"],":hearts:":["2665-fe0f","2665"],":diamonds:":["2666-fe0f","2666"],":hotsprings:":["2668-fe0f","2668"],":recycle:":["267b-fe0f","267b"],":wheelchair:":["267f-fe0f","267f"],":anchor:":["2693-fe0f","2693"],":warning:":["26a0-fe0f","26a0"],":zap:":["26a1-fe0f","26a1"],":white_circle:":["26aa-fe0f","26aa"],":black_circle:":["26ab-fe0f","26ab"],":soccer:":["26bd-fe0f","26bd"],":baseball:":["26be-fe0f","26be"],":snowman:":["26c4-fe0f","26c4"],":partly_sunny:":["26c5-fe0f","26c5"],":no_entry:":["26d4-fe0f","26d4"],":church:":["26ea-fe0f","26ea"],":fountain:":["26f2-fe0f","26f2"],":golf:":["26f3-fe0f","26f3"],":sailboat:":["26f5-fe0f","26f5"],
-":tent:":["26fa-fe0f","26fa"],":fuelpump:":["26fd-fe0f","26fd"],":scissors:":["2702-fe0f","2702"],":airplane:":["2708-fe0f","2708"],":envelope:":["2709-fe0f","2709"],":v:":["270c-fe0f","270c"],":pencil2:":["270f-fe0f","270f"],":black_nib:":["2712-fe0f","2712"],":heavy_check_mark:":["2714-fe0f","2714"],":heavy_multiplication_x:":["2716-fe0f","2716"],":eight_spoked_asterisk:":["2733-fe0f","2733"],":eight_pointed_black_star:":["2734-fe0f","2734"],":snowflake:":["2744-fe0f","2744"],":sparkle:":["2747-fe0f","2747"],":exclamation:":["2757-fe0f","2757"],":heart:":["2764-fe0f","2764"],":arrow_right:":["27a1-fe0f","27a1"],":arrow_heading_up:":["2934-fe0f","2934"],":arrow_heading_down:":["2935-fe0f","2935"],":arrow_left:":["2b05-fe0f","2b05"],":arrow_up:":["2b06-fe0f","2b06"],":arrow_down:":["2b07-fe0f","2b07"],":black_large_square:":["2b1b-fe0f","2b1b"],":white_large_square:":["2b1c-fe0f","2b1c"],":star:":["2b50-fe0f","2b50"],":o:":["2b55-fe0f","2b55"],":part_alternation_mark:":["303d-fe0f","303d"],":congratulations:":["3297-fe0f","3297"],":secret:":["3299-fe0f","3299"],":black_joker:":["1f0cf"],":a:":["1f170"],":b:":["1f171"],":o2:":["1f17e"],":ab:":["1f18e"],":cl:":["1f191"],":cool:":["1f192"],":free:":["1f193"],":id:":["1f194"],":new:":["1f195"],":ng:":["1f196"],":ok:":["1f197"],":sos:":["1f198"],":up:":["1f199"],":vs:":["1f19a"],":koko:":["1f201"],":sa:":["1f202"],":u7981:":["1f232"],":u7a7a:":["1f233"],":u5408:":["1f234"],":u6e80:":["1f235"],":u6709:":["1f236"],":u7533:":["1f238"],":u5272:":["1f239"],":u55b6:":["1f23a"],":ideograph_advantage:":["1f250"],":accept:":["1f251"],":cyclone:":["1f300"],":foggy:":["1f301"],":closed_umbrella:":["1f302"],":night_with_stars:":["1f303"],":sunrise_over_mountains:":["1f304"],":sunrise:":["1f305"],":city_dusk:":["1f306"],":city_sunset:":["1f307"],":city_sunrise:":["1f307"],":rainbow:":["1f308"],":bridge_at_night:":["1f309"],":ocean:":["1f30a"],":volcano:":["1f30b"],":milky_way:":["1f30c"],":earth_asia:":["1f30f"],":new_moon:":["1f311"],":first_quarter_moon:":["1f313"],":waxing_gibbous_moon:":["1f314"],":full_moon:":["1f315"],":crescent_moon:":["1f319"],":first_quarter_moon_with_face:":["1f31b"],":star2:":["1f31f"],":stars:":["1f320"],":chestnut:":["1f330"],":seedling:":["1f331"],":palm_tree:":["1f334"],":cactus:":["1f335"],":tulip:":["1f337"],":cherry_blossom:":["1f338"],":rose:":["1f339"],":hibiscus:":["1f33a"],":sunflower:":["1f33b"],":blossom:":["1f33c"],":corn:":["1f33d"],":ear_of_rice:":["1f33e"],":herb:":["1f33f"],":four_leaf_clover:":["1f340"],":maple_leaf:":["1f341"],":fallen_leaf:":["1f342"],":leaves:":["1f343"],":mushroom:":["1f344"],":tomato:":["1f345"],":eggplant:":["1f346"],":grapes:":["1f347"],":melon:":["1f348"],":watermelon:":["1f349"],":tangerine:":["1f34a"],":banana:":["1f34c"],":pineapple:":["1f34d"],":apple:":["1f34e"],":green_apple:":["1f34f"],":peach:":["1f351"],":cherries:":["1f352"],":strawberry:":["1f353"],":hamburger:":["1f354"],":pizza:":["1f355"],":meat_on_bone:":["1f356"],":poultry_leg:":["1f357"],":rice_cracker:":["1f358"],":rice_ball:":["1f359"],":rice:":["1f35a"],":curry:":["1f35b"],":ramen:":["1f35c"],":spaghetti:":["1f35d"],":bread:":["1f35e"],":fries:":["1f35f"],":sweet_potato:":["1f360"],":dango:":["1f361"],":oden:":["1f362"],":sushi:":["1f363"],":fried_shrimp:":["1f364"],":fish_cake:":["1f365"],":icecream:":["1f366"],":shaved_ice:":["1f367"],":ice_cream:":["1f368"],":doughnut:":["1f369"],":cookie:":["1f36a"],":chocolate_bar:":["1f36b"],":candy:":["1f36c"],":lollipop:":["1f36d"],":custard:":["1f36e"],":honey_pot:":["1f36f"],":cake:":["1f370"],":bento:":["1f371"],":stew:":["1f372"],":egg:":["1f373"],":fork_and_knife:":["1f374"],":tea:":["1f375"],":sake:":["1f376"],":wine_glass:":["1f377"],":cocktail:":["1f378"],":tropical_drink:":["1f379"],":beer:":["1f37a"],":beers:":["1f37b"],":ribbon:":["1f380"],":gift:":["1f381"],":birthday:":["1f382"],":jack_o_lantern:":["1f383"],":christmas_tree:":["1f384"],":santa:":["1f385"],":fireworks:":["1f386"],":sparkler:":["1f387"],":balloon:":["1f388"],":tada:":["1f389"],":confetti_ball:":["1f38a"],":tanabata_tree:":["1f38b"],":crossed_flags:":["1f38c"],":bamboo:":["1f38d"],":dolls:":["1f38e"],":flags:":["1f38f"],":wind_chime:":["1f390"],":rice_scene:":["1f391"],":school_satchel:":["1f392"],":mortar_board:":["1f393"],":carousel_horse:":["1f3a0"],":ferris_wheel:":["1f3a1"],":roller_coaster:":["1f3a2"],":fishing_pole_and_fish:":["1f3a3"],":microphone:":["1f3a4"],":movie_camera:":["1f3a5"],":cinema:":["1f3a6"],":headphones:":["1f3a7"],":art:":["1f3a8"],":tophat:":["1f3a9"],":circus_tent:":["1f3aa"],":ticket:":["1f3ab"],":clapper:":["1f3ac"],":performing_arts:":["1f3ad"],":video_game:":["1f3ae"],":dart:":["1f3af"],":slot_machine:":["1f3b0"],":8ball:":["1f3b1"],":game_die:":["1f3b2"],":bowling:":["1f3b3"],":flower_playing_cards:":["1f3b4"],":musical_note:":["1f3b5"],":notes:":["1f3b6"],":saxophone:":["1f3b7"],":guitar:":["1f3b8"],":musical_keyboard:":["1f3b9"],":trumpet:":["1f3ba"],":violin:":["1f3bb"],":musical_score:":["1f3bc"],":running_shirt_with_sash:":["1f3bd"],":tennis:":["1f3be"],":ski:":["1f3bf"],":basketball:":["1f3c0"],":checkered_flag:":["1f3c1"],":snowboarder:":["1f3c2"],":runner:":["1f3c3"],":surfer:":["1f3c4"],":trophy:":["1f3c6"],":football:":["1f3c8"],":swimmer:":["1f3ca"],":house:":["1f3e0"],":house_with_garden:":["1f3e1"],":office:":["1f3e2"],":post_office:":["1f3e3"],":hospital:":["1f3e5"],":bank:":["1f3e6"],":atm:":["1f3e7"],":hotel:":["1f3e8"],":love_hotel:":["1f3e9"],":convenience_store:":["1f3ea"],":school:":["1f3eb"],":department_store:":["1f3ec"],":factory:":["1f3ed"],":izakaya_lantern:":["1f3ee"],":japanese_castle:":["1f3ef"],":european_castle:":["1f3f0"],":snail:":["1f40c"],":snake:":["1f40d"],":racehorse:":["1f40e"],":sheep:":["1f411"],":monkey:":["1f412"],":chicken:":["1f414"],":boar:":["1f417"],":elephant:":["1f418"],":octopus:":["1f419"],":shell:":["1f41a"],":bug:":["1f41b"],":ant:":["1f41c"],":bee:":["1f41d"],":beetle:":["1f41e"],":fish:":["1f41f"],":tropical_fish:":["1f420"],":blowfish:":["1f421"],":turtle:":["1f422"],":hatching_chick:":["1f423"],":baby_chick:":["1f424"],":hatched_chick:":["1f425"],":bird:":["1f426"],":penguin:":["1f427"],":koala:":["1f428"],":poodle:":["1f429"],":camel:":["1f42b"],":dolphin:":["1f42c"],":mouse:":["1f42d"],":cow:":["1f42e"],":tiger:":["1f42f"],":rabbit:":["1f430"],":cat:":["1f431"],":dragon_face:":["1f432"],":whale:":["1f433"],":horse:":["1f434"],":monkey_face:":["1f435"],":dog:":["1f436"],":pig:":["1f437"],":frog:":["1f438"],":hamster:":["1f439"],":wolf:":["1f43a"],":bear:":["1f43b"],":panda_face:":["1f43c"],":pig_nose:":["1f43d"],":feet:":["1f43e"],":paw_prints:":["1f43e"],":eyes:":["1f440"],":ear:":["1f442"],":nose:":["1f443"],":lips:":["1f444"],":tongue:":["1f445"],":point_up_2:":["1f446"],":point_down:":["1f447"],":point_left:":["1f448"],":point_right:":["1f449"],":punch:":["1f44a"],":wave:":["1f44b"],":ok_hand:":["1f44c"],":thumbsup:":["1f44d"],":+1:":["1f44d"],":thumbsdown:":["1f44e"],":-1:":["1f44e"],":clap:":["1f44f"],":open_hands:":["1f450"],":crown:":["1f451"],":womans_hat:":["1f452"],":eyeglasses:":["1f453"],":necktie:":["1f454"],":shirt:":["1f455"],":jeans:":["1f456"],":dress:":["1f457"],":kimono:":["1f458"],":bikini:":["1f459"],":womans_clothes:":["1f45a"],":purse:":["1f45b"],":handbag:":["1f45c"],":pouch:":["1f45d"],":mans_shoe:":["1f45e"],":athletic_shoe:":["1f45f"],":high_heel:":["1f460"],":sandal:":["1f461"],":boot:":["1f462"],":footprints:":["1f463"],":bust_in_silhouette:":["1f464"],":boy:":["1f466"],":girl:":["1f467"],":man:":["1f468"],":woman:":["1f469"],":family:":["1f46a"],":couple:":["1f46b"],":cop:":["1f46e"],":dancers:":["1f46f"],":bride_with_veil:":["1f470"],":person_with_blond_hair:":["1f471"],":man_with_gua_pi_mao:":["1f472"],":man_with_turban:":["1f473"],":older_man:":["1f474"],":older_woman:":["1f475"],":grandma:":["1f475"],":baby:":["1f476"],":construction_worker:":["1f477"],":princess:":["1f478"],":japanese_ogre:":["1f479"],":japanese_goblin:":["1f47a"],":ghost:":["1f47b"],":angel:":["1f47c"],":alien:":["1f47d"],":space_invader:":["1f47e"],":imp:":["1f47f"],":skull:":["1f480"],":skeleton:":["1f480"],":card_index:":["1f4c7"],":information_desk_person:":["1f481"],":guardsman:":["1f482"],":dancer:":["1f483"],":lipstick:":["1f484"],":nail_care:":["1f485"],":ledger:":["1f4d2"],":massage:":["1f486"],":notebook:":["1f4d3"],":haircut:":["1f487"],":notebook_with_decorative_cover:":["1f4d4"],":barber:":["1f488"],":closed_book:":["1f4d5"],":syringe:":["1f489"],":book:":["1f4d6"],":pill:":["1f48a"],":green_book:":["1f4d7"],":kiss:":["1f48b"],":blue_book:":["1f4d8"],":love_letter:":["1f48c"],":orange_book:":["1f4d9"],":ring:":["1f48d"],":books:":["1f4da"],":gem:":["1f48e"],":name_badge:":["1f4db"],":couplekiss:":["1f48f"],":scroll:":["1f4dc"],":bouquet:":["1f490"],":pencil:":["1f4dd"],":couple_with_heart:":["1f491"],":telephone_receiver:":["1f4de"],":wedding:":["1f492"],":pager:":["1f4df"],":fax:":["1f4e0"],":heartbeat:":["1f493"],":satellite:":["1f4e1"],":loudspeaker:":["1f4e2"],":broken_heart:":["1f494"],":mega:":["1f4e3"],":outbox_tray:":["1f4e4"],":two_hearts:":["1f495"],":inbox_tray:":["1f4e5"],":package:":["1f4e6"],":sparkling_heart:":["1f496"],":e-mail:":["1f4e7"],":email:":["1f4e7"],":incoming_envelope:":["1f4e8"],":heartpulse:":["1f497"],":envelope_with_arrow:":["1f4e9"],":mailbox_closed:":["1f4ea"],":cupid:":["1f498"],":mailbox:":["1f4eb"],":postbox:":["1f4ee"],":blue_heart:":["1f499"],":newspaper:":["1f4f0"],":iphone:":["1f4f1"],":green_heart:":["1f49a"],":calling:":["1f4f2"],":vibration_mode:":["1f4f3"],":yellow_heart:":["1f49b"],":mobile_phone_off:":["1f4f4"],":signal_strength:":["1f4f6"],":purple_heart:":["1f49c"],":camera:":["1f4f7"],":video_camera:":["1f4f9"],":gift_heart:":["1f49d"],":tv:":["1f4fa"],":radio:":["1f4fb"],":revolving_hearts:":["1f49e"],":vhs:":["1f4fc"],":arrows_clockwise:":["1f503"],":heart_decoration:":["1f49f"],":loud_sound:":["1f50a"],":battery:":["1f50b"],":diamond_shape_with_a_dot_inside:":["1f4a0"],":electric_plug:":["1f50c"],":mag:":["1f50d"],":bulb:":["1f4a1"],":mag_right:":["1f50e"],":lock_with_ink_pen:":["1f50f"],":anger:":["1f4a2"],":closed_lock_with_key:":["1f510"],":key:":["1f511"],":bomb:":["1f4a3"],":lock:":["1f512"],":unlock:":["1f513"],":zzz:":["1f4a4"],":bell:":["1f514"],":bookmark:":["1f516"],":boom:":["1f4a5"],":link:":["1f517"],":radio_button:":["1f518"],":sweat_drops:":["1f4a6"],":back:":["1f519"],":end:":["1f51a"],":droplet:":["1f4a7"],":on:":["1f51b"],":soon:":["1f51c"],":dash:":["1f4a8"],":top:":["1f51d"],":underage:":["1f51e"],":poop:":["1f4a9"],":shit:":["1f4a9"],":hankey:":["1f4a9"],":poo:":["1f4a9"],":ten:":["1f51f"],":muscle:":["1f4aa"],":capital_abcd:":["1f520"],":abcd:":["1f521"],":dizzy:":["1f4ab"],":1234:":["1f522"],":symbols:":["1f523"],":speech_balloon:":["1f4ac"],":abc:":["1f524"],":fire:":["1f525"],":flame:":["1f525"],":white_flower:":["1f4ae"],":flashlight:":["1f526"],":wrench:":["1f527"],":100:":["1f4af"],":hammer:":["1f528"],":nut_and_bolt:":["1f529"],":moneybag:":["1f4b0"],":knife:":["1f52a"],":gun:":["1f52b"],":currency_exchange:":["1f4b1"],":crystal_ball:":["1f52e"],":heavy_dollar_sign:":["1f4b2"],":six_pointed_star:":["1f52f"],":credit_card:":["1f4b3"],":beginner:":["1f530"],":trident:":["1f531"],":yen:":["1f4b4"],":black_square_button:":["1f532"],":white_square_button:":["1f533"],":dollar:":["1f4b5"],":red_circle:":["1f534"],":large_blue_circle:":["1f535"],":money_with_wings:":["1f4b8"],":large_orange_diamond:":["1f536"],":large_blue_diamond:":["1f537"],":chart:":["1f4b9"],":small_orange_diamond:":["1f538"],":small_blue_diamond:":["1f539"],":seat:":["1f4ba"],":small_red_triangle:":["1f53a"],":small_red_triangle_down:":["1f53b"],":computer:":["1f4bb"],":arrow_up_small:":["1f53c"],":briefcase:":["1f4bc"],":arrow_down_small:":["1f53d"],":clock1:":["1f550"],":minidisc:":["1f4bd"],":clock2:":["1f551"],":floppy_disk:":["1f4be"],":clock3:":["1f552"],":cd:":["1f4bf"],":clock4:":["1f553"],":dvd:":["1f4c0"],":clock5:":["1f554"],":clock6:":["1f555"],":file_folder:":["1f4c1"],":clock7:":["1f556"],":clock8:":["1f557"],":open_file_folder:":["1f4c2"],":clock9:":["1f558"],":clock10:":["1f559"],":page_with_curl:":["1f4c3"],":clock11:":["1f55a"],":clock12:":["1f55b"],":page_facing_up:":["1f4c4"],":mount_fuji:":["1f5fb"],":tokyo_tower:":["1f5fc"],":date:":["1f4c5"],":statue_of_liberty:":["1f5fd"],":japan:":["1f5fe"],":calendar:":["1f4c6"],":moyai:":["1f5ff"],":grin:":["1f601"],":joy:":["1f602"],":smiley:":["1f603"],":chart_with_upwards_trend:":["1f4c8"],":smile:":["1f604"],":sweat_smile:":["1f605"],":chart_with_downwards_trend:":["1f4c9"],":laughing:":["1f606"],":satisfied:":["1f606"],":wink:":["1f609"],":bar_chart:":["1f4ca"],":blush:":["1f60a"],":yum:":["1f60b"],":clipboard:":["1f4cb"],":relieved:":["1f60c"],":heart_eyes:":["1f60d"],":pushpin:":["1f4cc"],":smirk:":["1f60f"],":unamused:":["1f612"],":round_pushpin:":["1f4cd"],":sweat:":["1f613"],":pensive:":["1f614"],":paperclip:":["1f4ce"],":confounded:":["1f616"],":kissing_heart:":["1f618"],":straight_ruler:":["1f4cf"],":kissing_closed_eyes:":["1f61a"],":stuck_out_tongue_winking_eye:":["1f61c"],":triangular_ruler:":["1f4d0"],":stuck_out_tongue_closed_eyes:":["1f61d"],":disappointed:":["1f61e"],":bookmark_tabs:":["1f4d1"],":angry:":["1f620"],":rage:":["1f621"],":cry:":["1f622"],":persevere:":["1f623"],":triumph:":["1f624"],":disappointed_relieved:":["1f625"],":fearful:":["1f628"],":weary:":["1f629"],":sleepy:":["1f62a"],":tired_face:":["1f62b"],":sob:":["1f62d"],":cold_sweat:":["1f630"],":scream:":["1f631"],":astonished:":["1f632"],":flushed:":["1f633"],":dizzy_face:":["1f635"],":mask:":["1f637"],":smile_cat:":["1f638"],":joy_cat:":["1f639"],":smiley_cat:":["1f63a"],":heart_eyes_cat:":["1f63b"],":smirk_cat:":["1f63c"],":kissing_cat:":["1f63d"],":pouting_cat:":["1f63e"],":crying_cat_face:":["1f63f"],":scream_cat:":["1f640"],":no_good:":["1f645"],":ok_woman:":["1f646"],":bow:":["1f647"],":see_no_evil:":["1f648"],":hear_no_evil:":["1f649"],":speak_no_evil:":["1f64a"],":raising_hand:":["1f64b"],":raised_hands:":["1f64c"],":person_frowning:":["1f64d"],":person_with_pouting_face:":["1f64e"],":pray:":["1f64f"],":rocket:":["1f680"],":railway_car:":["1f683"],":bullettrain_side:":["1f684"],":bullettrain_front:":["1f685"],":metro:":["1f687"],":station:":["1f689"],":bus:":["1f68c"],":busstop:":["1f68f"],":ambulance:":["1f691"],":fire_engine:":["1f692"],":police_car:":["1f693"],":taxi:":["1f695"],":red_car:":["1f697"],":blue_car:":["1f699"],":truck:":["1f69a"],":ship:":["1f6a2"],":speedboat:":["1f6a4"],":traffic_light:":["1f6a5"],":construction:":["1f6a7"],":rotating_light:":["1f6a8"],":triangular_flag_on_post:":["1f6a9"],":door:":["1f6aa"],":no_entry_sign:":["1f6ab"],":smoking:":["1f6ac"],":no_smoking:":["1f6ad"],":bike:":["1f6b2"],":walking:":["1f6b6"],":mens:":["1f6b9"],":womens:":["1f6ba"],":restroom:":["1f6bb"],":baby_symbol:":["1f6bc"],":toilet:":["1f6bd"],":wc:":["1f6be"],":bath:":["1f6c0"],":metal:":["1f918"],":sign_of_the_horns:":["1f918"],":grinning:":["1f600"],":innocent:":["1f607"],":smiling_imp:":["1f608"],":sunglasses:":["1f60e"],":neutral_face:":["1f610"],":expressionless:":["1f611"],":confused:":["1f615"],":kissing:":["1f617"],":kissing_smiling_eyes:":["1f619"],":stuck_out_tongue:":["1f61b"],":worried:":["1f61f"],":frowning:":["1f626"],":anguished:":["1f627"],":grimacing:":["1f62c"],":open_mouth:":["1f62e"],":hushed:":["1f62f"],":sleeping:":["1f634"],":no_mouth:":["1f636"],":helicopter:":["1f681"],":steam_locomotive:":["1f682"],":train2:":["1f686"],":light_rail:":["1f688"],":tram:":["1f68a"],":oncoming_bus:":["1f68d"],":trolleybus:":["1f68e"],":minibus:":["1f690"],":oncoming_police_car:":["1f694"],":oncoming_taxi:":["1f696"],":oncoming_automobile:":["1f698"],":articulated_lorry:":["1f69b"],":tractor:":["1f69c"],":monorail:":["1f69d"],":mountain_railway:":["1f69e"],":suspension_railway:":["1f69f"],":mountain_cableway:":["1f6a0"],":aerial_tramway:":["1f6a1"],":rowboat:":["1f6a3"],":vertical_traffic_light:":["1f6a6"],":put_litter_in_its_place:":["1f6ae"],":do_not_litter:":["1f6af"],":potable_water:":["1f6b0"],":non-potable_water:":["1f6b1"],":no_bicycles:":["1f6b3"],":bicyclist:":["1f6b4"],":mountain_bicyclist:":["1f6b5"],":no_pedestrians:":["1f6b7"],":children_crossing:":["1f6b8"],":shower:":["1f6bf"],":bathtub:":["1f6c1"],":passport_control:":["1f6c2"],":customs:":["1f6c3"],":baggage_claim:":["1f6c4"],":left_luggage:":["1f6c5"],":earth_africa:":["1f30d"],":earth_americas:":["1f30e"],":globe_with_meridians:":["1f310"],":waxing_crescent_moon:":["1f312"],":waning_gibbous_moon:":["1f316"],":last_quarter_moon:":["1f317"],":waning_crescent_moon:":["1f318"],":new_moon_with_face:":["1f31a"],":last_quarter_moon_with_face:":["1f31c"],":full_moon_with_face:":["1f31d"],":sun_with_face:":["1f31e"],":evergreen_tree:":["1f332"],":deciduous_tree:":["1f333"],":lemon:":["1f34b"],":pear:":["1f350"],":baby_bottle:":["1f37c"],":horse_racing:":["1f3c7"],":rugby_football:":["1f3c9"],":european_post_office:":["1f3e4"],":rat:":["1f400"],":mouse2:":["1f401"],":ox:":["1f402"],":water_buffalo:":["1f403"],":cow2:":["1f404"],":tiger2:":["1f405"],":leopard:":["1f406"],":rabbit2:":["1f407"],":cat2:":["1f408"],":dragon:":["1f409"],":crocodile:":["1f40a"],":whale2:":["1f40b"],":ram:":["1f40f"],":goat:":["1f410"],":rooster:":["1f413"],":dog2:":["1f415"],":pig2:":["1f416"],":dromedary_camel:":["1f42a"],":busts_in_silhouette:":["1f465"],":two_men_holding_hands:":["1f46c"],":two_women_holding_hands:":["1f46d"],":thought_balloon:":["1f4ad"],":euro:":["1f4b6"],":pound:":["1f4b7"],":mailbox_with_mail:":["1f4ec"],":mailbox_with_no_mail:":["1f4ed"],":postal_horn:":["1f4ef"],":no_mobile_phones:":["1f4f5"],":twisted_rightwards_arrows:":["1f500"],":repeat:":["1f501"],":repeat_one:":["1f502"],":arrows_counterclockwise:":["1f504"],":low_brightness:":["1f505"],":high_brightness:":["1f506"],":mute:":["1f507"],":sound:":["1f509"],":no_bell:":["1f515"],":microscope:":["1f52c"],":telescope:":["1f52d"],":clock130:":["1f55c"],":clock230:":["1f55d"],":clock330:":["1f55e"],":clock430:":["1f55f"],":clock530:":["1f560"],":clock630:":["1f561"],":clock730:":["1f562"],":clock830:":["1f563"],":clock930:":["1f564"],":clock1030:":["1f565"],":clock1130:":["1f566"],":clock1230:":["1f567"],":speaker:":["1f508"],":train:":["1f68b"],":film_frames:":["1f39e"],":tickets:":["1f39f"],":admission_tickets:":["1f39f"],":medal:":["1f3c5"],":sports_medal:":["1f3c5"],":lifter:":["1f3cb"],":weight_lifter:":["1f3cb"],":golfer:":["1f3cc"],":motorcycle:":["1f3cd"],":racing_motorcycle:":["1f3cd"],":race_car:":["1f3ce"],":racing_car:":["1f3ce"],":military_medal:":["1f396"],":reminder_ribbon:":["1f397"],":hot_pepper:":["1f336"],":cloud_rain:":["1f327"],":cloud_with_rain:":["1f327"],":cloud_snow:":["1f328"],":cloud_with_snow:":["1f328"],":cloud_lightning:":["1f329"],":cloud_with_lightning:":["1f329"],":cloud_tornado:":["1f32a"],":cloud_with_tornado:":["1f32a"],":fog:":["1f32b"],":wind_blowing_face:":["1f32c"],":chipmunk:":["1f43f"],":spider:":["1f577"],":spider_web:":["1f578"],":thermometer:":["1f321"],":microphone2:":["1f399"],":studio_microphone:":["1f399"],":level_slider:":["1f39a"],":control_knobs:":["1f39b"],":flag_white:":["1f3f3"],":waving_white_flag:":["1f3f3"],":flag_black:":["1f3f4"],":waving_black_flag:":["1f3f4"],":rosette:":["1f3f5"],":label:":["1f3f7"],":camera_with_flash:":["1f4f8"],":projector:":["1f4fd"],":film_projector:":["1f4fd"],":om_symbol:":["1f549"],":dove:":["1f54a"],":dove_of_peace:":["1f54a"],":candle:":["1f56f"],":clock:":["1f570"],":mantlepiece_clock:":["1f570"],":hole:":["1f573"],":dark_sunglasses:":["1f576"],":joystick:":["1f579"],":paperclips:":["1f587"],":linked_paperclips:":["1f587"],":pen_ballpoint:":["1f58a"],":lower_left_ballpoint_pen:":["1f58a"],":pen_fountain:":["1f58b"],":lower_left_fountain_pen:":["1f58b"],":paintbrush:":["1f58c"],":lower_left_paintbrush:":["1f58c"],":crayon:":["1f58d"],":lower_left_crayon:":["1f58d"],":desktop:":["1f5a5"],":desktop_computer:":["1f5a5"],":printer:":["1f5a8"],":trackball:":["1f5b2"],":frame_photo:":["1f5bc"],":frame_with_picture:":["1f5bc"],":dividers:":["1f5c2"],":card_index_dividers:":["1f5c2"],":card_box:":["1f5c3"],":card_file_box:":["1f5c3"],":file_cabinet:":["1f5c4"],":wastebasket:":["1f5d1"],":notepad_spiral:":["1f5d2"],":spiral_note_pad:":["1f5d2"],":calendar_spiral:":["1f5d3"],":spiral_calendar_pad:":["1f5d3"],":compression:":["1f5dc"],":key2:":["1f5dd"],":old_key:":["1f5dd"],":newspaper2:":["1f5de"],":rolled_up_newspaper:":["1f5de"],":dagger:":["1f5e1"],":dagger_knife:":["1f5e1"],":speaking_head:":["1f5e3"],":speaking_head_in_silhouette:":["1f5e3"],":anger_right:":["1f5ef"],":right_anger_bubble:":["1f5ef"],":ballot_box:":["1f5f3"],":ballot_box_with_ballot:":["1f5f3"],":map:":["1f5fa"],":world_map:":["1f5fa"],":sleeping_accommodation:":["1f6cc"],":tools:":["1f6e0"],":hammer_and_wrench:":["1f6e0"],":shield:":["1f6e1"],":oil:":["1f6e2"],":oil_drum:":["1f6e2"],":satellite_orbital:":["1f6f0"],":fork_knife_plate:":["1f37d"],":fork_and_knife_with_plate:":["1f37d"],":eye:":["1f441"],":levitate:":["1f574"],":man_in_business_suit_levitating:":["1f574"],":spy:":["1f575"],":sleuth_or_spy:":["1f575"],":hand_splayed:":["1f590"],":raised_hand_with_fingers_splayed:":["1f590"],":middle_finger:":["1f595"],":reversed_hand_with_middle_finger_extended:":["1f595"],":vulcan:":["1f596"],":raised_hand_with_part_between_middle_and_ring_fingers:":["1f596"],":slight_frown:":["1f641"],":slightly_frowning_face:":["1f641"],":slight_smile:":["1f642"],":slightly_smiling_face:":["1f642"],":mountain_snow:":["1f3d4"],":snow_capped_mountain:":["1f3d4"],":camping:":["1f3d5"],":beach:":["1f3d6"],":beach_with_umbrella:":["1f3d6"],":construction_site:":["1f3d7"],":building_construction:":["1f3d7"],":homes:":["1f3d8"],":house_buildings:":["1f3d8"],":cityscape:":["1f3d9"],":house_abandoned:":["1f3da"],":derelict_house_building:":["1f3da"],":classical_building:":["1f3db"],":desert:":["1f3dc"],":island:":["1f3dd"],":desert_island:":["1f3dd"],":park:":["1f3de"],":national_park:":["1f3de"],":stadium:":["1f3df"],":couch:":["1f6cb"],":couch_and_lamp:":["1f6cb"],":shopping_bags:":["1f6cd"],":bellhop:":["1f6ce"],":bellhop_bell:":["1f6ce"],":bed:":["1f6cf"],":motorway:":["1f6e3"],":railway_track:":["1f6e4"],":railroad_track:":["1f6e4"],":motorboat:":["1f6e5"],":airplane_small:":["1f6e9"],":small_airplane:":["1f6e9"],":airplane_departure:":["1f6eb"],":airplane_arriving:":["1f6ec"],":cruise_ship:":["1f6f3"],":passenger_ship:":["1f6f3"],":tone1:":["1f3fb"],":tone2:":["1f3fc"],":tone3:":["1f3fd"],":tone4:":["1f3fe"],":tone5:":["1f3ff"],":white_sun_small_cloud:":["1f324"],":white_sun_with_small_cloud:":["1f324"],":white_sun_cloud:":["1f325"],":white_sun_behind_cloud:":["1f325"],":white_sun_rain_cloud:":["1f326"],":white_sun_behind_cloud_with_rain:":["1f326"],":mouse_three_button:":["1f5b1"],":three_button_mouse:":["1f5b1"],":upside_down:":["1f643"],":upside_down_face:":["1f643"],":money_mouth:":["1f911"],":money_mouth_face:":["1f911"],":nerd:":["1f913"],":nerd_face:":["1f913"],":hugging:":["1f917"],":hugging_face:":["1f917"],":rolling_eyes:":["1f644"],":face_with_rolling_eyes:":["1f644"],":thinking:":["1f914"],":thinking_face:":["1f914"],":zipper_mouth:":["1f910"],":zipper_mouth_face:":["1f910"],":thermometer_face:":["1f912"],":face_with_thermometer:":["1f912"],":head_bandage:":["1f915"],":face_with_head_bandage:":["1f915"],":robot:":["1f916"],":robot_face:":["1f916"],":lion_face:":["1f981"],":lion:":["1f981"],":unicorn:":["1f984"],":unicorn_face:":["1f984"],":scorpion:":["1f982"],":crab:":["1f980"],":turkey:":["1f983"],":cheese:":["1f9c0"],":cheese_wedge:":["1f9c0"],":hotdog:":["1f32d"],":hot_dog:":["1f32d"],":taco:":["1f32e"],":burrito:":["1f32f"],":popcorn:":["1f37f"],":champagne:":["1f37e"],":bottle_with_popping_cork:":["1f37e"],":bow_and_arrow:":["1f3f9"],":archery:":["1f3f9"],":amphora:":["1f3fa"],":place_of_worship:":["1f6d0"],":worship_symbol:":["1f6d0"],":kaaba:":["1f54b"],":mosque:":["1f54c"],":synagogue:":["1f54d"],":menorah:":["1f54e"],":prayer_beads:":["1f4ff"],":cricket:":["1f3cf"],":cricket_bat_ball:":["1f3cf"],":volleyball:":["1f3d0"],":field_hockey:":["1f3d1"],":hockey:":["1f3d2"],":ping_pong:":["1f3d3"],":table_tennis:":["1f3d3"],":badminton:":["1f3f8"],":fast_forward:":["23e9"],":rewind:":["23ea"],":arrow_double_up:":["23eb"],":arrow_double_down:":["23ec"],":alarm_clock:":["23f0"],":hourglass_flowing_sand:":["23f3"],":ophiuchus:":["26ce"],":white_check_mark:":["2705"],":fist:":["270a"],":raised_hand:":["270b"],":sparkles:":["2728"],":x:":["274c"],":negative_squared_cross_mark:":["274e"],":question:":["2753"],":grey_question:":["2754"],":grey_exclamation:":["2755"],":heavy_plus_sign:":["2795"],":heavy_minus_sign:":["2796"],":heavy_division_sign:":["2797"],":curly_loop:":["27b0"],":wavy_dash:":["3030"],":loop:":["27bf"],":cross:":["271d"],":latin_cross:":["271d"],":keyboard:":["2328"],":writing_hand:":["270d"],":track_next:":["23ed"],":next_track:":["23ed"],":track_previous:":["23ee"],":previous_track:":["23ee"],":play_pause:":["23ef"],":stopwatch:":["23f1"],":timer:":["23f2"],":timer_clock:":["23f2"],":pause_button:":["23f8"],":double_vertical_bar:":["23f8"],":stop_button:":["23f9"],":record_button:":["23fa"],":umbrella2:":["2602"],":snowman2:":["2603"],":comet:":["2604"],":shamrock:":["2618"],":skull_crossbones:":["2620"],":skull_and_crossbones:":["2620"],":radioactive:":["2622"],":radioactive_sign:":["2622"],":biohazard:":["2623"],":biohazard_sign:":["2623"],":orthodox_cross:":["2626"],":star_and_crescent:":["262a"],":peace:":["262e"],":peace_symbol:":["262e"],":yin_yang:":["262f"],":wheel_of_dharma:":["2638"],":frowning2:":["2639"],":white_frowning_face:":["2639"],":hammer_pick:":["2692"],":hammer_and_pick:":["2692"],":crossed_swords:":["2694"],":scales:":["2696"],":alembic:":["2697"],":gear:":["2699"],":atom:":["269b"],":atom_symbol:":["269b"],":fleur-de-lis:":["269c"],":coffin:":["26b0"],":urn:":["26b1"],":funeral_urn:":["26b1"],":thunder_cloud_rain:":["26c8"],":thunder_cloud_and_rain:":["26c8"],":pick:":["26cf"],":helmet_with_cross:":["26d1"],":helmet_with_white_cross:":["26d1"],":chains:":["26d3"],":shinto_shrine:":["26e9"],":mountain:":["26f0"],":beach_umbrella:":["26f1"],":umbrella_on_ground:":["26f1"],":ferry:":["26f4"],":skier:":["26f7"],":ice_skate:":["26f8"],":basketball_player:":["26f9"],":person_with_ball:":["26f9"],":star_of_david:":["2721"],":heart_exclamation:":["2763"],":heavy_heart_exclamation_mark_ornament:":["2763"]};var b,c=[];for(b in a.emojioneList)a.emojioneList.hasOwnProperty(b)&&c.push(b.replace(/[+]/g,"\\$&"));a.shortnames=c.join("|"),a.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f604",":-)":"1f604","=]":"1f604","=)":"1f604",":]":"1f604","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623","D:":"1f628",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},a.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",a.unicodeRegexp="(\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFE|\\u270B\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|4\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|8\\uFE0F\\u20E3|7\\uFE0F\\u20E3|6\\uFE0F\\u20E3|5\\uFE0F\\u20E3|9\\uFE0F\\u20E3|3\\uFE0F\\u20E3|2\\uFE0F\\u20E3|1\\uFE0F\\u20E3|0\\uFE0F\\u20E3|#\\uFE0F\\u20E3|\\uD83C\\uDF61|\\u2198\\uFE0F|\\u2199\\uFE0F|\\uD83C\\uDFF8|\\u2600\\uFE0F|\\u2601\\uFE0F|\\uD83C\\uDFD3|\\uD83C\\uDFD2|\\uD83C\\uDFD1|\\u2611\\uFE0F|\\u2614\\uFE0F|\\u2615\\uFE0F|\\uD83C\\uDFD0|\\uD83C\\uDFCF|\\uD83D\\uDCFF|\\uD83D\\uDD4E|\\uD83D\\uDD4D|\\uD83D\\uDD4C|\\uD83D\\uDD4B|\\u2648\\uFE0F|\\u2649\\uFE0F|\\u2650\\uFE0F|\\u2651\\uFE0F|\\u2652\\uFE0F|\\u2653\\uFE0F|\\u2660\\uFE0F|\\u2663\\uFE0F|\\u2665\\uFE0F|\\u2666\\uFE0F|\\u2668\\uFE0F|\\uD83D\\uDED0|\\u2693\\uFE0F|\\uD83C\\uDFFA|\\uD83C\\uDFF9|\\uD83C\\uDF7E|\\uD83C\\uDF7F|\\u2702\\uFE0F|\\uD83C\\uDF2F|\\u2708\\uFE0F|\\u2709\\uFE0F|\\u2712\\uFE0F|\\u2714\\uFE0F|\\u2716\\uFE0F|\\uD83C\\uDF2E|\\uD83C\\uDF2D|\\u2733\\uFE0F|\\u2734\\uFE0F|\\u2744\\uFE0F|\\u2747\\uFE0F|\\uD83E\\uDDC0|\\uD83E\\uDD83|\\uD83E\\uDD80|\\u2757\\uFE0F|\\uD83E\\uDD82|\\u2764\\uFE0F|\\uD83E\\uDD84|\\uD83E\\uDD81|\\uD83E\\uDD16|\\u2934\\uFE0F|\\u2935\\uFE0F|\\uD83E\\uDD15|\\u3297\\uFE0F|\\u3299\\uFE0F|\\u2049\\uFE0F|\\u2139\\uFE0F|\\u2194\\uFE0F|\\u2195\\uFE0F|\\u2196\\uFE0F|\\u2197\\uFE0F|\\u00A9\\uFE0F|\\u00AE\\uFE0F|\\u203C\\uFE0F|\\u21A9\\uFE0F|\\u21AA\\uFE0F|\\u231A\\uFE0F|\\u231B\\uFE0F|\\u24C2\\uFE0F|\\u25AA\\uFE0F|\\u25AB\\uFE0F|\\u25B6\\uFE0F|\\u25C0\\uFE0F|\\u25FB\\uFE0F|\\u25FC\\uFE0F|\\u25FD\\uFE0F|\\u25FE\\uFE0F|\\u260E\\uFE0F|\\u261D\\uFE0F|\\u263A\\uFE0F|\\u264A\\uFE0F|\\u264B\\uFE0F|\\u264C\\uFE0F|\\u264D\\uFE0F|\\u264E\\uFE0F|\\u264F\\uFE0F|\\u267B\\uFE0F|\\u267F\\uFE0F|\\u26A0\\uFE0F|\\u26A1\\uFE0F|\\u26AA\\uFE0F|\\u26AB\\uFE0F|\\u26BD\\uFE0F|\\u26BE\\uFE0F|\\u26C4\\uFE0F|\\u26C5\\uFE0F|\\u26D4\\uFE0F|\\u26EA\\uFE0F|\\u26F2\\uFE0F|\\u26F3\\uFE0F|\\u26F5\\uFE0F|\\u26FA\\uFE0F|\\u26FD\\uFE0F|\\u270C\\uFE0F|\\u270F\\uFE0F|\\u27A1\\uFE0F|\\u2B05\\uFE0F|\\u2B06\\uFE0F|\\u2B07\\uFE0F|\\u2B1B\\uFE0F|\\u2B1C\\uFE0F|\\u2B50\\uFE0F|\\u2B55\\uFE0F|\\u303D\\uFE0F|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\u2122\\uFE0F|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDF9E|\\uD83C\\uDF9F|\\uD83C\\uDFC5|\\uD83C\\uDFCB|\\uD83C\\uDFCC|\\uD83C\\uDFCD|\\uD83C\\uDFCE|\\uD83C\\uDF96|\\uD83C\\uDF97|\\uD83C\\uDF36|\\uD83C\\uDF27|\\uD83C\\uDF28|\\uD83C\\uDF29|\\uD83C\\uDF2A|\\uD83C\\uDF2B|\\uD83C\\uDF2C|\\uD83D\\uDC3F|\\uD83D\\uDD77|\\uD83D\\uDD78|\\uD83C\\uDF21|\\uD83C\\uDF99|\\uD83C\\uDF9A|\\uD83C\\uDF9B|\\uD83C\\uDFF3|\\uD83C\\uDFF4|\\uD83C\\uDFF5|\\uD83C\\uDFF7|\\uD83D\\uDCF8|\\uD83D\\uDCFD|\\uD83D\\uDD49|\\uD83D\\uDD4A|\\uD83D\\uDD6F|\\uD83D\\uDD70|\\uD83D\\uDD73|\\uD83D\\uDD76|\\uD83D\\uDD79|\\uD83D\\uDD87|\\uD83D\\uDD8A|\\uD83D\\uDD8B|\\uD83D\\uDD8C|\\uD83D\\uDD8D|\\uD83D\\uDDA5|\\uD83D\\uDDA8|\\uD83D\\uDDB2|\\uD83D\\uDDBC|\\uD83D\\uDDC2|\\uD83D\\uDDC3|\\uD83D\\uDDC4|\\uD83D\\uDDD1|\\uD83D\\uDDD2|\\uD83D\\uDDD3|\\uD83D\\uDDDC|\\uD83D\\uDDDD|\\uD83D\\uDDDE|\\uD83D\\uDDE1|\\uD83D\\uDDE3|\\uD83D\\uDDEF|\\uD83D\\uDDF3|\\uD83D\\uDDFA|\\uD83D\\uDECC|\\uD83D\\uDEE0|\\uD83D\\uDEE1|\\uD83D\\uDEE2|\\uD83D\\uDEF0|\\uD83C\\uDF7D|\\uD83D\\uDC41|\\uD83D\\uDD74|\\uD83D\\uDD75|\\uD83D\\uDD90|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83C\\uDFD4|\\uD83C\\uDFD5|\\uD83C\\uDFD6|\\uD83C\\uDFD7|\\uD83C\\uDFD8|\\uD83C\\uDFD9|\\uD83C\\uDFDA|\\uD83C\\uDFDB|\\uD83C\\uDFDC|\\uD83C\\uDFDD|\\uD83C\\uDFDE|\\uD83C\\uDFDF|\\uD83D\\uDECB|\\uD83D\\uDECD|\\uD83D\\uDECE|\\uD83D\\uDECF|\\uD83D\\uDEE3|\\uD83D\\uDEE4|\\uD83D\\uDEE5|\\uD83D\\uDEE9|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83D\\uDEF3|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83C\\uDF24|\\uD83C\\uDF25|\\uD83C\\uDF26|\\uD83D\\uDDB1|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\uD83E\\uDD12|\\u270A|\\u3030|\\u2796|\\u2795|\\u2763|\\u2755|\\u2754|\\u2753|\\u2728|\\u2721|\\u2705|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u2328|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2797|\\u270B|\\u274C|\\u274E|\\u27B0|\\u27BF|\\u271D|\\u270D|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u262A|\\u262E|\\u262F|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9)",
-a.jsEscapeMap={"⁉️":"2049","™️":"2122","ℹ️":"2139","↔️":"2194","↕️":"2195","↖️":"2196","↗️":"2197","↘️":"2198","↙️":"2199","⌨":"2328","☀️":"2600","☁️":"2601","☂":"2602","☃":"2603","☄":"2604","☑️":"2611","☔️":"2614","☕️":"2615","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☸":"2638","☹":"2639","♈️":"2648","♉️":"2649","♐️":"2650","♑️":"2651","♒️":"2652","♓️":"2653","♠️":"2660","♣️":"2663","♥️":"2665","♦️":"2666","♨️":"2668","⚒":"2692","⚓️":"2693","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","✂️":"2702","✅":"2705","✈️":"2708","✉️":"2709","✒️":"2712","✔️":"2714","✖️":"2716","✡":"2721","✨":"2728","✳️":"2733","✴️":"2734","❄️":"2744","❇️":"2747","❓":"2753","❔":"2754","❕":"2755","❗️":"2757","❣":"2763","❤️":"2764","➕":"2795","➖":"2796","➗":"2797","⤴️":"2934","⤵️":"2935","〰":"3030","㊗️":"3297","㊙️":"3299","👩‍❤️‍💋‍👩":"1f469-2764-1f48b-1f469","👨‍❤️‍💋‍👨":"1f468-2764-1f48b-1f468","👨‍👨‍👦‍👦":"1f468-1f468-1f466-1f466","👨‍👨‍👧‍👦":"1f468-1f468-1f467-1f466","👨‍👨‍👧‍👧":"1f468-1f468-1f467-1f467","👨‍👩‍👦‍👦":"1f468-1f469-1f466-1f466","👨‍👩‍👧‍👦":"1f468-1f469-1f467-1f466","👨‍👩‍👧‍👧":"1f468-1f469-1f467-1f467","👩‍👩‍👦‍👦":"1f469-1f469-1f466-1f466","👩‍👩‍👧‍👦":"1f469-1f469-1f467-1f466","👩‍👩‍👧‍👧":"1f469-1f469-1f467-1f467","👩‍❤️‍👩":"1f469-2764-1f469","👨‍❤️‍👨":"1f468-2764-1f468","👨‍👨‍👦":"1f468-1f468-1f466","👨‍👨‍👧":"1f468-1f468-1f467","👨‍👩‍👧":"1f468-1f469-1f467","👩‍👩‍👦":"1f469-1f469-1f466","👩‍👩‍👧":"1f469-1f469-1f467","👁‍🗨":"1f441-1f5e8","#️⃣":"0023-20e3","0️⃣":"0030-20e3","1️⃣":"0031-20e3","2️⃣":"0032-20e3","3️⃣":"0033-20e3","4️⃣":"0034-20e3","5️⃣":"0035-20e3","6️⃣":"0036-20e3","7️⃣":"0037-20e3","8️⃣":"0038-20e3","9️⃣":"0039-20e3","*️⃣":"002a-20e3","🤘🏿":"1f918-1f3ff","🤘🏾":"1f918-1f3fe","🤘🏽":"1f918-1f3fd","🤘🏼":"1f918-1f3fc","🤘🏻":"1f918-1f3fb","🛀🏿":"1f6c0-1f3ff","🛀🏾":"1f6c0-1f3fe","🛀🏽":"1f6c0-1f3fd","🛀🏼":"1f6c0-1f3fc","🛀🏻":"1f6c0-1f3fb","🚶🏿":"1f6b6-1f3ff","🚶🏾":"1f6b6-1f3fe","🚶🏽":"1f6b6-1f3fd","🚶🏼":"1f6b6-1f3fc","🚶🏻":"1f6b6-1f3fb","🚵🏿":"1f6b5-1f3ff","🚵🏾":"1f6b5-1f3fe","🚵🏽":"1f6b5-1f3fd","🚵🏼":"1f6b5-1f3fc","🚵🏻":"1f6b5-1f3fb","🚴🏿":"1f6b4-1f3ff","🚴🏾":"1f6b4-1f3fe","🚴🏽":"1f6b4-1f3fd","🚴🏼":"1f6b4-1f3fc","🚴🏻":"1f6b4-1f3fb","🚣🏿":"1f6a3-1f3ff","🚣🏾":"1f6a3-1f3fe","🚣🏽":"1f6a3-1f3fd","🚣🏼":"1f6a3-1f3fc","🚣🏻":"1f6a3-1f3fb","🙏🏿":"1f64f-1f3ff","🙏🏾":"1f64f-1f3fe","🙏🏽":"1f64f-1f3fd","🙏🏼":"1f64f-1f3fc","🙏🏻":"1f64f-1f3fb","🙎🏿":"1f64e-1f3ff","🙎🏾":"1f64e-1f3fe","🙎🏽":"1f64e-1f3fd","🙎🏼":"1f64e-1f3fc","🙎🏻":"1f64e-1f3fb","🙍🏿":"1f64d-1f3ff","🙍🏾":"1f64d-1f3fe","🙍🏽":"1f64d-1f3fd","🙍🏼":"1f64d-1f3fc","🙍🏻":"1f64d-1f3fb","🙌🏿":"1f64c-1f3ff","🙌🏾":"1f64c-1f3fe","🙌🏽":"1f64c-1f3fd","🙌🏼":"1f64c-1f3fc","🙌🏻":"1f64c-1f3fb","🙋🏿":"1f64b-1f3ff","🙋🏾":"1f64b-1f3fe","🙋🏽":"1f64b-1f3fd","🙋🏼":"1f64b-1f3fc","🙋🏻":"1f64b-1f3fb","🙇🏿":"1f647-1f3ff","🙇🏾":"1f647-1f3fe","🙇🏽":"1f647-1f3fd","🙇🏼":"1f647-1f3fc","🙇🏻":"1f647-1f3fb","🙆🏿":"1f646-1f3ff","🙆🏾":"1f646-1f3fe","🙆🏽":"1f646-1f3fd","🙆🏼":"1f646-1f3fc","🙆🏻":"1f646-1f3fb","🙅🏿":"1f645-1f3ff","🙅🏾":"1f645-1f3fe","🙅🏽":"1f645-1f3fd","🙅🏼":"1f645-1f3fc","🙅🏻":"1f645-1f3fb","🖖🏿":"1f596-1f3ff","🖖🏾":"1f596-1f3fe","🖖🏽":"1f596-1f3fd","🖖🏼":"1f596-1f3fc","🖖🏻":"1f596-1f3fb","🖕🏿":"1f595-1f3ff","🖕🏾":"1f595-1f3fe","🖕🏽":"1f595-1f3fd","🖕🏼":"1f595-1f3fc","🖕🏻":"1f595-1f3fb","🖐🏿":"1f590-1f3ff","🖐🏾":"1f590-1f3fe","🖐🏽":"1f590-1f3fd","🖐🏼":"1f590-1f3fc","🖐🏻":"1f590-1f3fb","🕵🏿":"1f575-1f3ff","🕵🏾":"1f575-1f3fe","🕵🏽":"1f575-1f3fd","🕵🏼":"1f575-1f3fc","🕵🏻":"1f575-1f3fb","💪🏿":"1f4aa-1f3ff","💪🏾":"1f4aa-1f3fe","💪🏽":"1f4aa-1f3fd","💪🏼":"1f4aa-1f3fc","💪🏻":"1f4aa-1f3fb","💇🏿":"1f487-1f3ff","💇🏾":"1f487-1f3fe","💇🏽":"1f487-1f3fd","💇🏼":"1f487-1f3fc","💇🏻":"1f487-1f3fb","💆🏿":"1f486-1f3ff","💆🏾":"1f486-1f3fe","💆🏽":"1f486-1f3fd","💆🏼":"1f486-1f3fc","💆🏻":"1f486-1f3fb","💅🏿":"1f485-1f3ff","💅🏾":"1f485-1f3fe","💅🏽":"1f485-1f3fd","💅🏼":"1f485-1f3fc","💅🏻":"1f485-1f3fb","💃🏿":"1f483-1f3ff","💃🏾":"1f483-1f3fe","💃🏽":"1f483-1f3fd","💃🏼":"1f483-1f3fc","💃🏻":"1f483-1f3fb","💂🏿":"1f482-1f3ff","💂🏾":"1f482-1f3fe","💂🏽":"1f482-1f3fd","💂🏼":"1f482-1f3fc","💂🏻":"1f482-1f3fb","💁🏿":"1f481-1f3ff","💁🏾":"1f481-1f3fe","💁🏽":"1f481-1f3fd","💁🏼":"1f481-1f3fc","💁🏻":"1f481-1f3fb","👼🏿":"1f47c-1f3ff","👼🏾":"1f47c-1f3fe","👼🏽":"1f47c-1f3fd","👼🏼":"1f47c-1f3fc","👼🏻":"1f47c-1f3fb","👸🏿":"1f478-1f3ff","👸🏾":"1f478-1f3fe","👸🏽":"1f478-1f3fd","👸🏼":"1f478-1f3fc","👸🏻":"1f478-1f3fb","👷🏿":"1f477-1f3ff","👷🏾":"1f477-1f3fe","👷🏽":"1f477-1f3fd","👷🏼":"1f477-1f3fc","👷🏻":"1f477-1f3fb","👶🏿":"1f476-1f3ff","👶🏾":"1f476-1f3fe","👶🏽":"1f476-1f3fd","👶🏼":"1f476-1f3fc","👶🏻":"1f476-1f3fb","👵🏿":"1f475-1f3ff","👵🏾":"1f475-1f3fe","👵🏽":"1f475-1f3fd","👵🏼":"1f475-1f3fc","👵🏻":"1f475-1f3fb","👴🏿":"1f474-1f3ff","👴🏾":"1f474-1f3fe","👴🏽":"1f474-1f3fd","👴🏼":"1f474-1f3fc","👴🏻":"1f474-1f3fb","👳🏿":"1f473-1f3ff","👳🏾":"1f473-1f3fe","👳🏽":"1f473-1f3fd","👳🏼":"1f473-1f3fc","👳🏻":"1f473-1f3fb","👲🏿":"1f472-1f3ff","👲🏾":"1f472-1f3fe","👲🏽":"1f472-1f3fd","👲🏼":"1f472-1f3fc","👲🏻":"1f472-1f3fb","👱🏿":"1f471-1f3ff","👱🏾":"1f471-1f3fe","👱🏽":"1f471-1f3fd","👱🏼":"1f471-1f3fc","👱🏻":"1f471-1f3fb","👰🏿":"1f470-1f3ff","👰🏾":"1f470-1f3fe","👰🏽":"1f470-1f3fd","👰🏼":"1f470-1f3fc","👰🏻":"1f470-1f3fb","👮🏿":"1f46e-1f3ff","👮🏾":"1f46e-1f3fe","👮🏽":"1f46e-1f3fd","👮🏼":"1f46e-1f3fc","👮🏻":"1f46e-1f3fb","👩🏿":"1f469-1f3ff","👩🏾":"1f469-1f3fe","👩🏽":"1f469-1f3fd","👩🏼":"1f469-1f3fc","👩🏻":"1f469-1f3fb","👨🏿":"1f468-1f3ff","👨🏾":"1f468-1f3fe","👨🏽":"1f468-1f3fd","👨🏼":"1f468-1f3fc","👨🏻":"1f468-1f3fb","👧🏿":"1f467-1f3ff","👧🏾":"1f467-1f3fe","👧🏽":"1f467-1f3fd","👧🏼":"1f467-1f3fc","👧🏻":"1f467-1f3fb","👦🏿":"1f466-1f3ff","👦🏾":"1f466-1f3fe","👦🏽":"1f466-1f3fd","👦🏼":"1f466-1f3fc","👦🏻":"1f466-1f3fb","👐🏿":"1f450-1f3ff","👐🏾":"1f450-1f3fe","👐🏽":"1f450-1f3fd","👐🏼":"1f450-1f3fc","👐🏻":"1f450-1f3fb","👏🏿":"1f44f-1f3ff","👏🏾":"1f44f-1f3fe","👏🏽":"1f44f-1f3fd","👏🏼":"1f44f-1f3fc","👏🏻":"1f44f-1f3fb","👎🏿":"1f44e-1f3ff","👎🏾":"1f44e-1f3fe","👎🏽":"1f44e-1f3fd","👎🏼":"1f44e-1f3fc","👎🏻":"1f44e-1f3fb","👍🏿":"1f44d-1f3ff","👍🏾":"1f44d-1f3fe","👍🏽":"1f44d-1f3fd","👍🏼":"1f44d-1f3fc","👍🏻":"1f44d-1f3fb","👌🏿":"1f44c-1f3ff","👌🏾":"1f44c-1f3fe","👌🏽":"1f44c-1f3fd","👌🏼":"1f44c-1f3fc","👌🏻":"1f44c-1f3fb","👋🏿":"1f44b-1f3ff","👋🏾":"1f44b-1f3fe","👋🏽":"1f44b-1f3fd","👋🏼":"1f44b-1f3fc","👋🏻":"1f44b-1f3fb","👊🏿":"1f44a-1f3ff","👊🏾":"1f44a-1f3fe","👊🏽":"1f44a-1f3fd","👊🏼":"1f44a-1f3fc","👊🏻":"1f44a-1f3fb","👉🏿":"1f449-1f3ff","👉🏾":"1f449-1f3fe","👉🏽":"1f449-1f3fd","👉🏼":"1f449-1f3fc","👉🏻":"1f449-1f3fb","👈🏿":"1f448-1f3ff","👈🏾":"1f448-1f3fe","👈🏽":"1f448-1f3fd","👈🏼":"1f448-1f3fc","👈🏻":"1f448-1f3fb","👇🏿":"1f447-1f3ff","👇🏾":"1f447-1f3fe","👇🏽":"1f447-1f3fd","👇🏼":"1f447-1f3fc","👇🏻":"1f447-1f3fb","👆🏿":"1f446-1f3ff","👆🏾":"1f446-1f3fe","👆🏽":"1f446-1f3fd","👆🏼":"1f446-1f3fc","👆🏻":"1f446-1f3fb","👃🏿":"1f443-1f3ff","👃🏾":"1f443-1f3fe","👃🏽":"1f443-1f3fd","👃🏼":"1f443-1f3fc","👃🏻":"1f443-1f3fb","👂🏿":"1f442-1f3ff","👂🏾":"1f442-1f3fe","👂🏽":"1f442-1f3fd","👂🏼":"1f442-1f3fc","👂🏻":"1f442-1f3fb","🏋🏿":"1f3cb-1f3ff","🏋🏾":"1f3cb-1f3fe","🏋🏽":"1f3cb-1f3fd","🏋🏼":"1f3cb-1f3fc","🏋🏻":"1f3cb-1f3fb","🏊🏿":"1f3ca-1f3ff","🏊🏾":"1f3ca-1f3fe","🏊🏽":"1f3ca-1f3fd","🏊🏼":"1f3ca-1f3fc","🏊🏻":"1f3ca-1f3fb","🏇🏿":"1f3c7-1f3ff","🏇🏾":"1f3c7-1f3fe","🏇🏽":"1f3c7-1f3fd","🏇🏼":"1f3c7-1f3fc","🏇🏻":"1f3c7-1f3fb","🏄🏿":"1f3c4-1f3ff","🏄🏾":"1f3c4-1f3fe","🏄🏽":"1f3c4-1f3fd","🏄🏼":"1f3c4-1f3fc","🏄🏻":"1f3c4-1f3fb","🏃🏿":"1f3c3-1f3ff","🏃🏾":"1f3c3-1f3fe","🏃🏽":"1f3c3-1f3fd","🏃🏼":"1f3c3-1f3fc","🏃🏻":"1f3c3-1f3fb","🎅🏿":"1f385-1f3ff","🎅🏾":"1f385-1f3fe","🎅🏽":"1f385-1f3fd","🎅🏼":"1f385-1f3fc","🎅🏻":"1f385-1f3fb","🇿🇼":"1f1ff-1f1fc","🇿🇲":"1f1ff-1f1f2","🇿🇦":"1f1ff-1f1e6","🇾🇹":"1f1fe-1f1f9","🇾🇪":"1f1fe-1f1ea","🇽🇰":"1f1fd-1f1f0","🇼🇸":"1f1fc-1f1f8","🇼🇫":"1f1fc-1f1eb","🇻🇺":"1f1fb-1f1fa","🇻🇳":"1f1fb-1f1f3","🇻🇮":"1f1fb-1f1ee","🇻🇬":"1f1fb-1f1ec","🇻🇪":"1f1fb-1f1ea","🇻🇨":"1f1fb-1f1e8","🇻🇦":"1f1fb-1f1e6","🇺🇿":"1f1fa-1f1ff","🇺🇾":"1f1fa-1f1fe","🇺🇸":"1f1fa-1f1f8","🇺🇲":"1f1fa-1f1f2","🇺🇬":"1f1fa-1f1ec","🇺🇦":"1f1fa-1f1e6","🇹🇿":"1f1f9-1f1ff","🇹🇼":"1f1f9-1f1fc","🇹🇻":"1f1f9-1f1fb","🇹🇹":"1f1f9-1f1f9","🇹🇷":"1f1f9-1f1f7","🇹🇴":"1f1f9-1f1f4","🇹🇳":"1f1f9-1f1f3","🇹🇲":"1f1f9-1f1f2","🇹🇱":"1f1f9-1f1f1","🇹🇰":"1f1f9-1f1f0","🇹🇯":"1f1f9-1f1ef","🇹🇭":"1f1f9-1f1ed","🇹🇬":"1f1f9-1f1ec","🇹🇫":"1f1f9-1f1eb","🇹🇩":"1f1f9-1f1e9","🇹🇨":"1f1f9-1f1e8","🇹🇦":"1f1f9-1f1e6","🇸🇿":"1f1f8-1f1ff","🇸🇾":"1f1f8-1f1fe","🇸🇽":"1f1f8-1f1fd","🇸🇻":"1f1f8-1f1fb","🇸🇹":"1f1f8-1f1f9","🇸🇸":"1f1f8-1f1f8","🇸🇷":"1f1f8-1f1f7","🇸🇴":"1f1f8-1f1f4","🇸🇳":"1f1f8-1f1f3","🇸🇲":"1f1f8-1f1f2","🇸🇱":"1f1f8-1f1f1","🇸🇰":"1f1f8-1f1f0","🇸🇯":"1f1f8-1f1ef","🇸🇮":"1f1f8-1f1ee","🇸🇭":"1f1f8-1f1ed","🇸🇬":"1f1f8-1f1ec","🇸🇪":"1f1f8-1f1ea","🇸🇩":"1f1f8-1f1e9","🇸🇨":"1f1f8-1f1e8","🇸🇧":"1f1f8-1f1e7","🇸🇦":"1f1f8-1f1e6","🇷🇼":"1f1f7-1f1fc","🇷🇺":"1f1f7-1f1fa","🇷🇸":"1f1f7-1f1f8","🇷🇴":"1f1f7-1f1f4","🇷🇪":"1f1f7-1f1ea","🇶🇦":"1f1f6-1f1e6","🇵🇾":"1f1f5-1f1fe","🇵🇼":"1f1f5-1f1fc","🇵🇹":"1f1f5-1f1f9","🇵🇸":"1f1f5-1f1f8","🇵🇷":"1f1f5-1f1f7","🇵🇳":"1f1f5-1f1f3","🇵🇲":"1f1f5-1f1f2","🇵🇱":"1f1f5-1f1f1","🇵🇰":"1f1f5-1f1f0","🇵🇭":"1f1f5-1f1ed","🇵🇬":"1f1f5-1f1ec","🇵🇫":"1f1f5-1f1eb","🇵🇪":"1f1f5-1f1ea","🇵🇦":"1f1f5-1f1e6","🇴🇲":"1f1f4-1f1f2","🇳🇿":"1f1f3-1f1ff","🇳🇺":"1f1f3-1f1fa","🇳🇷":"1f1f3-1f1f7","🇳🇵":"1f1f3-1f1f5","🇳🇴":"1f1f3-1f1f4","🇳🇱":"1f1f3-1f1f1","🇳🇮":"1f1f3-1f1ee","🇳🇬":"1f1f3-1f1ec","🇳🇫":"1f1f3-1f1eb","🇳🇪":"1f1f3-1f1ea","🇳🇨":"1f1f3-1f1e8","🇳🇦":"1f1f3-1f1e6","🇲🇿":"1f1f2-1f1ff","🇲🇾":"1f1f2-1f1fe","🇲🇽":"1f1f2-1f1fd","🇲🇼":"1f1f2-1f1fc","🇲🇻":"1f1f2-1f1fb","🇲🇺":"1f1f2-1f1fa","🇲🇹":"1f1f2-1f1f9","🇲🇸":"1f1f2-1f1f8","🇲🇷":"1f1f2-1f1f7","🇲🇶":"1f1f2-1f1f6","🇲🇵":"1f1f2-1f1f5","🇲🇴":"1f1f2-1f1f4","🇲🇳":"1f1f2-1f1f3","🇲🇲":"1f1f2-1f1f2","🇲🇱":"1f1f2-1f1f1","🇲🇰":"1f1f2-1f1f0","🇲🇭":"1f1f2-1f1ed","🇲🇬":"1f1f2-1f1ec","🇲🇫":"1f1f2-1f1eb","🇲🇪":"1f1f2-1f1ea","🇲🇩":"1f1f2-1f1e9","🇲🇨":"1f1f2-1f1e8","🇲🇦":"1f1f2-1f1e6","🇱🇾":"1f1f1-1f1fe","🇱🇻":"1f1f1-1f1fb","🇱🇺":"1f1f1-1f1fa","🇱🇹":"1f1f1-1f1f9","🇱🇸":"1f1f1-1f1f8","🇱🇷":"1f1f1-1f1f7","🇱🇰":"1f1f1-1f1f0","🇱🇮":"1f1f1-1f1ee","🇱🇨":"1f1f1-1f1e8","🇱🇧":"1f1f1-1f1e7","🇱🇦":"1f1f1-1f1e6","🇰🇿":"1f1f0-1f1ff","🇰🇾":"1f1f0-1f1fe","🇰🇼":"1f1f0-1f1fc","🇰🇷":"1f1f0-1f1f7","🇰🇵":"1f1f0-1f1f5","🇰🇳":"1f1f0-1f1f3","🇰🇲":"1f1f0-1f1f2","🇰🇮":"1f1f0-1f1ee","🇰🇭":"1f1f0-1f1ed","🇰🇬":"1f1f0-1f1ec","🇰🇪":"1f1f0-1f1ea","🇯🇵":"1f1ef-1f1f5","🇯🇴":"1f1ef-1f1f4","🇯🇲":"1f1ef-1f1f2","🇯🇪":"1f1ef-1f1ea","🇮🇹":"1f1ee-1f1f9","🇮🇸":"1f1ee-1f1f8","🇮🇷":"1f1ee-1f1f7","🇮🇶":"1f1ee-1f1f6","🇮🇴":"1f1ee-1f1f4","🇮🇳":"1f1ee-1f1f3","🇮🇲":"1f1ee-1f1f2","🇮🇱":"1f1ee-1f1f1","🇮🇪":"1f1ee-1f1ea","🇮🇩":"1f1ee-1f1e9","🇮🇨":"1f1ee-1f1e8","🇭🇺":"1f1ed-1f1fa","🇭🇹":"1f1ed-1f1f9","🇭🇷":"1f1ed-1f1f7","🇭🇳":"1f1ed-1f1f3","🇭🇲":"1f1ed-1f1f2","🇭🇰":"1f1ed-1f1f0","🇬🇾":"1f1ec-1f1fe","🇬🇼":"1f1ec-1f1fc","🇬🇺":"1f1ec-1f1fa","🇬🇹":"1f1ec-1f1f9","🇬🇸":"1f1ec-1f1f8","🇬🇷":"1f1ec-1f1f7","🇬🇶":"1f1ec-1f1f6","🇬🇵":"1f1ec-1f1f5","🇬🇳":"1f1ec-1f1f3","🇬🇲":"1f1ec-1f1f2","🇬🇱":"1f1ec-1f1f1","🇬🇮":"1f1ec-1f1ee","🇬🇭":"1f1ec-1f1ed","🇬🇬":"1f1ec-1f1ec","🇬🇫":"1f1ec-1f1eb","🇬🇪":"1f1ec-1f1ea","🇬🇩":"1f1ec-1f1e9","🇬🇧":"1f1ec-1f1e7","🇬🇦":"1f1ec-1f1e6","🇫🇷":"1f1eb-1f1f7","🇫🇴":"1f1eb-1f1f4","🇫🇲":"1f1eb-1f1f2","🇫🇰":"1f1eb-1f1f0","🇫🇯":"1f1eb-1f1ef","🇫🇮":"1f1eb-1f1ee","🇪🇺":"1f1ea-1f1fa","🇪🇹":"1f1ea-1f1f9","🇪🇸":"1f1ea-1f1f8","🇪🇷":"1f1ea-1f1f7","🇪🇭":"1f1ea-1f1ed","🇪🇬":"1f1ea-1f1ec","🇪🇪":"1f1ea-1f1ea","🇪🇨":"1f1ea-1f1e8","🇪🇦":"1f1ea-1f1e6","🇩🇿":"1f1e9-1f1ff","🇩🇴":"1f1e9-1f1f4","🇩🇲":"1f1e9-1f1f2","🇩🇰":"1f1e9-1f1f0","🇩🇯":"1f1e9-1f1ef","🇩🇬":"1f1e9-1f1ec","🇩🇪":"1f1e9-1f1ea","🇨🇿":"1f1e8-1f1ff","🇨🇾":"1f1e8-1f1fe","🇨🇽":"1f1e8-1f1fd","🇨🇼":"1f1e8-1f1fc","🇨🇻":"1f1e8-1f1fb","🇨🇺":"1f1e8-1f1fa","🇨🇷":"1f1e8-1f1f7","🇨🇵":"1f1e8-1f1f5","🇨🇴":"1f1e8-1f1f4","🇨🇳":"1f1e8-1f1f3","🇨🇲":"1f1e8-1f1f2","🇨🇱":"1f1e8-1f1f1","🇨🇰":"1f1e8-1f1f0","🇨🇮":"1f1e8-1f1ee","🇨🇭":"1f1e8-1f1ed","🇨🇬":"1f1e8-1f1ec","🇨🇫":"1f1e8-1f1eb","🇨🇩":"1f1e8-1f1e9","🇨🇨":"1f1e8-1f1e8","🇨🇦":"1f1e8-1f1e6","🇧🇿":"1f1e7-1f1ff","🇧🇾":"1f1e7-1f1fe","🇧🇼":"1f1e7-1f1fc","🇧🇻":"1f1e7-1f1fb","🇧🇹":"1f1e7-1f1f9","🇧🇸":"1f1e7-1f1f8","🇧🇷":"1f1e7-1f1f7","🇧🇶":"1f1e7-1f1f6","🇧🇴":"1f1e7-1f1f4","🇧🇳":"1f1e7-1f1f3","🇧🇲":"1f1e7-1f1f2","🇧🇱":"1f1e7-1f1f1","🇧🇯":"1f1e7-1f1ef","🇧🇮":"1f1e7-1f1ee","🇧🇭":"1f1e7-1f1ed","🇧🇬":"1f1e7-1f1ec","🇧🇫":"1f1e7-1f1eb","🇧🇪":"1f1e7-1f1ea","🇧🇩":"1f1e7-1f1e9","🇧🇧":"1f1e7-1f1e7","🇧🇦":"1f1e7-1f1e6","🇦🇿":"1f1e6-1f1ff","🇦🇽":"1f1e6-1f1fd","🇦🇼":"1f1e6-1f1fc","🇦🇺":"1f1e6-1f1fa","🇦🇹":"1f1e6-1f1f9","🇦🇸":"1f1e6-1f1f8","🇦🇷":"1f1e6-1f1f7","🇦🇶":"1f1e6-1f1f6","🇦🇴":"1f1e6-1f1f4","🇦🇲":"1f1e6-1f1f2","🇦🇱":"1f1e6-1f1f1","🇦🇮":"1f1e6-1f1ee","🇦🇬":"1f1e6-1f1ec","🇦🇫":"1f1e6-1f1eb","🇦🇪":"1f1e6-1f1ea","🇦🇩":"1f1e6-1f1e9","🇦🇨":"1f1e6-1f1e8","🀄️":"1f004","🅿️":"1f17f","🈚️":"1f21a","🈯️":"1f22f","🈷️":"1f237","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","©️":"00a9","®️":"00ae","‼️":"203c","↩️":"21a9","↪️":"21aa","⌚️":"231a","⌛️":"231b","Ⓜ️":"24c2","▪️":"25aa","▫️":"25ab","▶️":"25b6","◀️":"25c0","◻️":"25fb","◼️":"25fc","◽️":"25fd","◾️":"25fe","☎️":"260e","☝️":"261d","☺️":"263a","♊️":"264a","♋️":"264b","♌️":"264c","♍️":"264d","♎️":"264e","♏️":"264f","♻️":"267b","♿️":"267f","⚠️":"26a0","⚡️":"26a1","⚪️":"26aa","⚫️":"26ab","⚽️":"26bd","⚾️":"26be","⛄️":"26c4","⛅️":"26c5","⛔️":"26d4","⛪️":"26ea","⛲️":"26f2","⛳️":"26f3","⛵️":"26f5","⛺️":"26fa","⛽️":"26fd","✌️":"270c","✏️":"270f","➡️":"27a1","⬅️":"2b05","⬆️":"2b06","⬇️":"2b07","⬛️":"2b1b","⬜️":"2b1c","⭐️":"2b50","⭕️":"2b55","〽️":"303d","🃏":"1f0cf","🅰":"1f170","🅱":"1f171","🅾":"1f17e","🆎":"1f18e","🆑":"1f191","🆒":"1f192","🆓":"1f193","🆔":"1f194","🆕":"1f195","🆖":"1f196","🆗":"1f197","🆘":"1f198","🆙":"1f199","🆚":"1f19a","🈁":"1f201","🈂":"1f202","🈲":"1f232","🈳":"1f233","🈴":"1f234","🈵":"1f235","🈶":"1f236","🈸":"1f238","🈹":"1f239","🈺":"1f23a","🉐":"1f250","🉑":"1f251","🌀":"1f300","🌁":"1f301","🌂":"1f302","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🌇":"1f307","🌈":"1f308","🌉":"1f309","🌊":"1f30a","🌋":"1f30b","🌌":"1f30c","🌏":"1f30f","🌑":"1f311","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌙":"1f319","🌛":"1f31b","🌟":"1f31f","🌠":"1f320","🌰":"1f330","🌱":"1f331","🌴":"1f334","🌵":"1f335","🌷":"1f337","🌸":"1f338","🌹":"1f339","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌽":"1f33d","🌾":"1f33e","🌿":"1f33f","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍄":"1f344","🍅":"1f345","🍆":"1f346","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍑":"1f351","🍒":"1f352","🍓":"1f353","🍔":"1f354","🍕":"1f355","🍖":"1f356","🍗":"1f357","🍘":"1f358","🍙":"1f359","🍚":"1f35a","🍛":"1f35b","🍜":"1f35c","🍝":"1f35d","🍞":"1f35e","🍟":"1f35f","🍠":"1f360","🍡":"1f361","🍢":"1f362","🍣":"1f363","🍤":"1f364","🍥":"1f365","🍦":"1f366","🍧":"1f367","🍨":"1f368","🍩":"1f369","🍪":"1f36a","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🍰":"1f370","🍱":"1f371","🍲":"1f372","🍳":"1f373","🍴":"1f374","🍵":"1f375","🍶":"1f376","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🎀":"1f380","🎁":"1f381","🎂":"1f382","🎃":"1f383","🎄":"1f384","🎅":"1f385","🎆":"1f386","🎇":"1f387","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎌":"1f38c","🎍":"1f38d","🎎":"1f38e","🎏":"1f38f","🎐":"1f390","🎑":"1f391","🎒":"1f392","🎓":"1f393","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","🎣":"1f3a3","🎤":"1f3a4","🎥":"1f3a5","🎦":"1f3a6","🎧":"1f3a7","🎨":"1f3a8","🎩":"1f3a9","🎪":"1f3aa","🎫":"1f3ab","🎬":"1f3ac","🎭":"1f3ad","🎮":"1f3ae","🎯":"1f3af","🎰":"1f3b0","🎱":"1f3b1","🎲":"1f3b2","🎳":"1f3b3","🎴":"1f3b4","🎵":"1f3b5","🎶":"1f3b6","🎷":"1f3b7","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🎻":"1f3bb","🎼":"1f3bc","🎽":"1f3bd","🎾":"1f3be","🎿":"1f3bf","🏀":"1f3c0","🏁":"1f3c1","🏂":"1f3c2","🏃":"1f3c3","🏄":"1f3c4","🏆":"1f3c6","🏈":"1f3c8","🏊":"1f3ca","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏥":"1f3e5","🏦":"1f3e6","🏧":"1f3e7","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🏭":"1f3ed","🏮":"1f3ee","🏯":"1f3ef","🏰":"1f3f0","🐌":"1f40c","🐍":"1f40d","🐎":"1f40e","🐑":"1f411","🐒":"1f412","🐔":"1f414","🐗":"1f417","🐘":"1f418","🐙":"1f419","🐚":"1f41a","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🐢":"1f422","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🐨":"1f428","🐩":"1f429","🐫":"1f42b","🐬":"1f42c","🐭":"1f42d","🐮":"1f42e","🐯":"1f42f","🐰":"1f430","🐱":"1f431","🐲":"1f432","🐳":"1f433","🐴":"1f434","🐵":"1f435","🐶":"1f436","🐷":"1f437","🐸":"1f438","🐹":"1f439","🐺":"1f43a","🐻":"1f43b","🐼":"1f43c","🐽":"1f43d","🐾":"1f43e","👀":"1f440","👂":"1f442","👃":"1f443","👄":"1f444","👅":"1f445","👆":"1f446","👇":"1f447","👈":"1f448","👉":"1f449","👊":"1f44a","👋":"1f44b","👌":"1f44c","👍":"1f44d","👎":"1f44e","👏":"1f44f","👐":"1f450","👑":"1f451","👒":"1f452","👓":"1f453","👔":"1f454","👕":"1f455","👖":"1f456","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👣":"1f463","👤":"1f464","👦":"1f466","👧":"1f467","👨":"1f468","👩":"1f469","👪":"1f46a","👫":"1f46b","👮":"1f46e","👯":"1f46f","👰":"1f470","👱":"1f471","👲":"1f472","👳":"1f473","👴":"1f474","👵":"1f475","👶":"1f476","👷":"1f477","👸":"1f478","👹":"1f479","👺":"1f47a","👻":"1f47b","👼":"1f47c","👽":"1f47d","👾":"1f47e","👿":"1f47f","💀":"1f480","📇":"1f4c7","💁":"1f481","💂":"1f482","💃":"1f483","💄":"1f484","💅":"1f485","📒":"1f4d2","💆":"1f486","📓":"1f4d3","💇":"1f487","📔":"1f4d4","💈":"1f488","📕":"1f4d5","💉":"1f489","📖":"1f4d6","💊":"1f48a","📗":"1f4d7","💋":"1f48b","📘":"1f4d8","💌":"1f48c","📙":"1f4d9","💍":"1f48d","📚":"1f4da","💎":"1f48e","📛":"1f4db","💏":"1f48f","📜":"1f4dc","💐":"1f490","📝":"1f4dd","💑":"1f491","📞":"1f4de","💒":"1f492","📟":"1f4df","📠":"1f4e0","💓":"1f493","📡":"1f4e1","📢":"1f4e2","💔":"1f494","📣":"1f4e3","📤":"1f4e4","💕":"1f495","📥":"1f4e5","📦":"1f4e6","💖":"1f496","📧":"1f4e7","📨":"1f4e8","💗":"1f497","📩":"1f4e9","📪":"1f4ea","💘":"1f498","📫":"1f4eb","📮":"1f4ee","💙":"1f499","📰":"1f4f0","📱":"1f4f1","💚":"1f49a","📲":"1f4f2","📳":"1f4f3","💛":"1f49b","📴":"1f4f4","📶":"1f4f6","💜":"1f49c","📷":"1f4f7","📹":"1f4f9","💝":"1f49d","📺":"1f4fa","📻":"1f4fb","💞":"1f49e","📼":"1f4fc","🔃":"1f503","💟":"1f49f","🔊":"1f50a","🔋":"1f50b","💠":"1f4a0","🔌":"1f50c","🔍":"1f50d","💡":"1f4a1","🔎":"1f50e","🔏":"1f50f","💢":"1f4a2","🔐":"1f510","🔑":"1f511","💣":"1f4a3","🔒":"1f512","🔓":"1f513","💤":"1f4a4","🔔":"1f514","🔖":"1f516","💥":"1f4a5","🔗":"1f517","🔘":"1f518","💦":"1f4a6","🔙":"1f519","🔚":"1f51a","💧":"1f4a7","🔛":"1f51b","🔜":"1f51c","💨":"1f4a8","🔝":"1f51d","🔞":"1f51e","💩":"1f4a9","🔟":"1f51f","💪":"1f4aa","🔠":"1f520","🔡":"1f521","💫":"1f4ab","🔢":"1f522","🔣":"1f523","💬":"1f4ac","🔤":"1f524","🔥":"1f525","💮":"1f4ae","🔦":"1f526","🔧":"1f527","💯":"1f4af","🔨":"1f528","🔩":"1f529","💰":"1f4b0","🔪":"1f52a","🔫":"1f52b","💱":"1f4b1","🔮":"1f52e","💲":"1f4b2","🔯":"1f52f","💳":"1f4b3","🔰":"1f530","🔱":"1f531","💴":"1f4b4","🔲":"1f532","🔳":"1f533","💵":"1f4b5","🔴":"1f534","🔵":"1f535","💸":"1f4b8","🔶":"1f536","🔷":"1f537","💹":"1f4b9","🔸":"1f538","🔹":"1f539","💺":"1f4ba","🔺":"1f53a","🔻":"1f53b","💻":"1f4bb","🔼":"1f53c","💼":"1f4bc","🔽":"1f53d","🕐":"1f550","💽":"1f4bd","🕑":"1f551","💾":"1f4be","🕒":"1f552","💿":"1f4bf","🕓":"1f553","📀":"1f4c0","🕔":"1f554","🕕":"1f555","📁":"1f4c1","🕖":"1f556","🕗":"1f557","📂":"1f4c2","🕘":"1f558","🕙":"1f559","📃":"1f4c3","🕚":"1f55a","🕛":"1f55b","📄":"1f4c4","🗻":"1f5fb","🗼":"1f5fc","📅":"1f4c5","🗽":"1f5fd","🗾":"1f5fe","📆":"1f4c6","🗿":"1f5ff","😁":"1f601","😂":"1f602","😃":"1f603","📈":"1f4c8","😄":"1f604","😅":"1f605","📉":"1f4c9","😆":"1f606","😉":"1f609","📊":"1f4ca","😊":"1f60a","😋":"1f60b","📋":"1f4cb","😌":"1f60c","😍":"1f60d","📌":"1f4cc","😏":"1f60f","😒":"1f612","📍":"1f4cd","😓":"1f613","😔":"1f614","📎":"1f4ce","😖":"1f616","😘":"1f618","📏":"1f4cf","😚":"1f61a","😜":"1f61c","📐":"1f4d0","😝":"1f61d","😞":"1f61e","📑":"1f4d1","😠":"1f620","😡":"1f621","😢":"1f622","😣":"1f623","😤":"1f624","😥":"1f625","😨":"1f628","😩":"1f629","😪":"1f62a","😫":"1f62b","😭":"1f62d","😰":"1f630","😱":"1f631","😲":"1f632","😳":"1f633","😵":"1f635","😷":"1f637","😸":"1f638","😹":"1f639","😺":"1f63a","😻":"1f63b","😼":"1f63c","😽":"1f63d","😾":"1f63e","😿":"1f63f","🙀":"1f640","🙅":"1f645","🙆":"1f646","🙇":"1f647","🙈":"1f648","🙉":"1f649","🙊":"1f64a","🙋":"1f64b","🙌":"1f64c","🙍":"1f64d","🙎":"1f64e","🙏":"1f64f","🚀":"1f680","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚇":"1f687","🚉":"1f689","🚌":"1f68c","🚏":"1f68f","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚕":"1f695","🚗":"1f697","🚙":"1f699","🚚":"1f69a","🚢":"1f6a2","🚤":"1f6a4","🚥":"1f6a5","🚧":"1f6a7","🚨":"1f6a8","🚩":"1f6a9","🚪":"1f6aa","🚫":"1f6ab","🚬":"1f6ac","🚭":"1f6ad","🚲":"1f6b2","🚶":"1f6b6","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚽":"1f6bd","🚾":"1f6be","🛀":"1f6c0","🤘":"1f918","😀":"1f600","😇":"1f607","😈":"1f608","😎":"1f60e","😐":"1f610","😑":"1f611","😕":"1f615","😗":"1f617","😙":"1f619","😛":"1f61b","😟":"1f61f","😦":"1f626","😧":"1f627","😬":"1f62c","😮":"1f62e","😯":"1f62f","😴":"1f634","😶":"1f636","🚁":"1f681","🚂":"1f682","🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🎞":"1f39e","🎟":"1f39f","🏅":"1f3c5","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏴":"1f3f4","🏵":"1f3f5","🏷":"1f3f7","📸":"1f4f8","📽":"1f4fd","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛌":"1f6cc","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","🖐":"1f590","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛫":"1f6eb","🛬":"1f6ec","🛳":"1f6f3","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✊":"270a","✋":"270b","❌":"274c","❎":"274e","➰":"27b0","➿":"27bf","✝":"271d","✍":"270d","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☪":"262a","☮":"262e","☯":"262f","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9"},a.imagePathPNG="//cdn.jsdelivr.net/emojione/assets/png/",a.imagePathSVG="//cdn.jsdelivr.net/emojione/assets/svg/",a.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",a.imageType="png",a.sprites=!1,a.unicodeAlt=!0,a.ascii=!1,a.cacheBustParam="?v=2.0.1",a.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnames+")","gi"),a.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),a.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.unicodeRegexp+")","gi"),a.toImage=function(b){return b=a.unicodeToImage(b),b=a.shortnameToImage(b)},a.unifyUnicode=function(b){return b=a.toShort(b),b=a.shortnameToUnicode(b)},a.shortnameToAscii=function(b){var c,d=a.objectFlip(a.asciiList);return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b][a.emojioneList[b].length-1],"undefined"!=typeof d[c]?d[c]:b):b})},a.shortnameToUnicode=function(b){var c;return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b][0].toUpperCase(),a.convert(c)):b}),a.ascii&&(b=b.replace(a.regAscii,function(b,d,e,f){return"undefined"!=typeof f&&""!==f&&a.unescapeHTML(f)in a.asciiList?(f=a.unescapeHTML(f),c=a.asciiList[f].toUpperCase(),e+a.convert(c)):b})),b},a.shortnameToImage=function(b){var c,d,e;return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(d=a.emojioneList[b][a.emojioneList[b].length-1],e=a.unicodeAlt?a.convert(d.toUpperCase()):b,c="png"===a.imageType?a.sprites?'<span class="emojione-'+d+'" title="'+b+'">'+e+"</span>":'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b}),a.ascii&&(b=b.replace(a.regAscii,function(b,f,g,h){return"undefined"!=typeof h&&""!==h&&a.unescapeHTML(h)in a.asciiList?(h=a.unescapeHTML(h),d=a.asciiList[h],e=a.unicodeAlt?a.convert(d.toUpperCase()):a.escapeHTML(h),c="png"===a.imageType?a.sprites?g+'<span class="emojione-'+d+'" title="'+a.escapeHTML(h)+'">'+e+"</span>":g+'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':g+'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b})),b},a.unicodeToImage=function(b){var c,d,e;if(!a.unicodeAlt||a.sprites)var f=a.mapShortToUnicode();return b=b.replace(a.regUnicode,function(b){return"undefined"!=typeof b&&""!==b&&b in a.jsEscapeMap?(d=a.jsEscapeMap[b],e=a.unicodeAlt?a.convert(d.toUpperCase()):f[d],c="png"===a.imageType?a.sprites?'<span class="emojione-'+d+'" title="'+f[d]+'">'+e+"</span>":'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<img class="emojione" alt="'+e+'" src="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'"/>'):b})},a.toShort=function(b){for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d=0,e=a.emojioneList[c].length;e>d;d++){var f=a.emojioneList[c][d];b=a.replaceAll(b,a.convert(f.toUpperCase()),c)}return b},a.convert=function(a){if(a.indexOf("-")>-1){for(var b=[],c=a.split("-"),d=0;d<c.length;d++){var e=parseInt(c[d],16);if(e>=65536&&1114111>=e){var f=Math.floor((e-65536)/1024)+55296,g=(e-65536)%1024+56320;e=String.fromCharCode(f)+String.fromCharCode(g)}else e=String.fromCharCode(e);b.push(e)}return b.join("")}var c=parseInt(a,16);if(c>=65536&&1114111>=c){var f=Math.floor((c-65536)/1024)+55296,g=(c-65536)%1024+56320;return String.fromCharCode(f)+String.fromCharCode(g)}return String.fromCharCode(c)},a.escapeHTML=function(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return a.replace(/[&<>"']/g,function(a){return b[a]})},a.unescapeHTML=function(a){var b={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return a.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(a){return b[a]})},a.mapShortToUnicode=function(){var b={};for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d=0,e=a.emojioneList[c].length;e>d;d++)b[a.emojioneList[c][d]]=c;return b},a.objectFlip=function(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);return c},a.escapeRegExp=function(a){return a.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g,"\\$&")},a.replaceAll=function(b,c,d){var e=a.escapeRegExp(c),f=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+e+")","gi"),g=function(a,b){return"undefined"==typeof b||""===b?a:d};return b.replace(f,g)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione); \ No newline at end of file
+/*! emojione 02-12-2016 */
+!function(a){a.emojioneList={":kiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!0},":couplekiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!1},":kiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!0},":couplekiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!1},":family_mmbb:":{unicode:["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],fname:"1f468-1f468-1f466-1f466",uc:"1f468-200d-1f468-200d-1f466-200d-1f466",isCanonical:!0},":family_mmgb:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],fname:"1f468-1f468-1f467-1f466",uc:"1f468-200d-1f468-200d-1f467-200d-1f466",isCanonical:!0},":family_mmgg:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],fname:"1f468-1f468-1f467-1f467",uc:"1f468-200d-1f468-200d-1f467-200d-1f467",isCanonical:!0},":family_mwbb:":{unicode:["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],fname:"1f468-1f469-1f466-1f466",uc:"1f468-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_mwgb:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],fname:"1f468-1f469-1f467-1f466",uc:"1f468-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_mwgg:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],fname:"1f468-1f469-1f467-1f467",uc:"1f468-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":family_wwbb:":{unicode:["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],fname:"1f469-1f469-1f466-1f466",uc:"1f469-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_wwgb:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],fname:"1f469-1f469-1f467-1f466",uc:"1f469-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_wwgg:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],fname:"1f469-1f469-1f467-1f467",uc:"1f469-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":couple_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!0},":couple_with_heart_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!1},":couple_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!0},":couple_with_heart_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!1},":family_mmb:":{unicode:["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],fname:"1f468-1f468-1f466",uc:"1f468-200d-1f468-200d-1f466",isCanonical:!0},":family_mmg:":{unicode:["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],fname:"1f468-1f468-1f467",uc:"1f468-200d-1f468-200d-1f467",isCanonical:!0},":family_mwg:":{unicode:["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],fname:"1f468-1f469-1f467",uc:"1f468-200d-1f469-200d-1f467",isCanonical:!0},":family_wwb:":{unicode:["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],fname:"1f469-1f469-1f466",uc:"1f469-200d-1f469-200d-1f466",isCanonical:!0},":family_wwg:":{unicode:["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],fname:"1f469-1f469-1f467",uc:"1f469-200d-1f469-200d-1f467",isCanonical:!0},":rainbow_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!0},":gay_pride_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!1},":eye_in_speech_bubble:":{unicode:["1f441-200d-1f5e8","1f441-1f5e8"],fname:"1f441-1f5e8",uc:"1f441-200d-1f5e8",isCanonical:!0},":hash:":{unicode:["0023-fe0f-20e3","0023-20e3"],fname:"0023-20e3",uc:"0023-20e3",isCanonical:!0},":zero:":{unicode:["0030-fe0f-20e3","0030-20e3"],fname:"0030-20e3",uc:"0030-20e3",isCanonical:!0},":one:":{unicode:["0031-fe0f-20e3","0031-20e3"],fname:"0031-20e3",uc:"0031-20e3",isCanonical:!0},":two:":{unicode:["0032-fe0f-20e3","0032-20e3"],fname:"0032-20e3",uc:"0032-20e3",isCanonical:!0},":three:":{unicode:["0033-fe0f-20e3","0033-20e3"],fname:"0033-20e3",uc:"0033-20e3",isCanonical:!0},":four:":{unicode:["0034-fe0f-20e3","0034-20e3"],fname:"0034-20e3",uc:"0034-20e3",isCanonical:!0},":five:":{unicode:["0035-fe0f-20e3","0035-20e3"],fname:"0035-20e3",uc:"0035-20e3",isCanonical:!0},":six:":{unicode:["0036-fe0f-20e3","0036-20e3"],fname:"0036-20e3",uc:"0036-20e3",isCanonical:!0},":seven:":{unicode:["0037-fe0f-20e3","0037-20e3"],fname:"0037-20e3",uc:"0037-20e3",isCanonical:!0},":eight:":{unicode:["0038-fe0f-20e3","0038-20e3"],fname:"0038-20e3",uc:"0038-20e3",isCanonical:!0},":nine:":{unicode:["0039-fe0f-20e3","0039-20e3"],fname:"0039-20e3",uc:"0039-20e3",isCanonical:!0},":asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!0},":keycap_asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!1},":handball_tone5:":{unicode:["1f93e-1f3ff"],fname:"1f93e-1f3ff",uc:"1f93e-1f3ff",isCanonical:!0},":handball_tone4:":{unicode:["1f93e-1f3fe"],fname:"1f93e-1f3fe",uc:"1f93e-1f3fe",isCanonical:!0},":handball_tone3:":{unicode:["1f93e-1f3fd"],fname:"1f93e-1f3fd",uc:"1f93e-1f3fd",isCanonical:!0},":handball_tone2:":{unicode:["1f93e-1f3fc"],fname:"1f93e-1f3fc",uc:"1f93e-1f3fc",isCanonical:!0},":handball_tone1:":{unicode:["1f93e-1f3fb"],fname:"1f93e-1f3fb",uc:"1f93e-1f3fb",isCanonical:!0},":water_polo_tone5:":{unicode:["1f93d-1f3ff"],fname:"1f93d-1f3ff",uc:"1f93d-1f3ff",isCanonical:!0},":water_polo_tone4:":{unicode:["1f93d-1f3fe"],fname:"1f93d-1f3fe",uc:"1f93d-1f3fe",isCanonical:!0},":water_polo_tone3:":{unicode:["1f93d-1f3fd"],fname:"1f93d-1f3fd",uc:"1f93d-1f3fd",isCanonical:!0},":water_polo_tone2:":{unicode:["1f93d-1f3fc"],fname:"1f93d-1f3fc",uc:"1f93d-1f3fc",isCanonical:!0},":water_polo_tone1:":{unicode:["1f93d-1f3fb"],fname:"1f93d-1f3fb",uc:"1f93d-1f3fb",isCanonical:!0},":wrestlers_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!0},":wrestling_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!1},":wrestlers_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!0},":wrestling_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!1},":wrestlers_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!0},":wrestling_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!1},":wrestlers_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!0},":wrestling_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!1},":wrestlers_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!0},":wrestling_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!1},":juggling_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!0},":juggler_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!1},":juggling_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!0},":juggler_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!1},":juggling_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!0},":juggler_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!1},":juggling_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!0},":juggler_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!1},":juggling_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!0},":juggler_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!1},":cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!0},":person_doing_cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!1},":cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!0},":person_doing_cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!1},":cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!0},":person_doing_cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!1},":cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!0},":person_doing_cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!1},":cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!0},":person_doing_cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!1},":shrug_tone5:":{unicode:["1f937-1f3ff"],fname:"1f937-1f3ff",uc:"1f937-1f3ff",isCanonical:!0},":shrug_tone4:":{unicode:["1f937-1f3fe"],fname:"1f937-1f3fe",uc:"1f937-1f3fe",isCanonical:!0},":shrug_tone3:":{unicode:["1f937-1f3fd"],fname:"1f937-1f3fd",uc:"1f937-1f3fd",isCanonical:!0},":shrug_tone2:":{unicode:["1f937-1f3fc"],fname:"1f937-1f3fc",uc:"1f937-1f3fc",isCanonical:!0},":shrug_tone1:":{unicode:["1f937-1f3fb"],fname:"1f937-1f3fb",uc:"1f937-1f3fb",isCanonical:!0},":mrs_claus_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!0},":mother_christmas_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!1},":mrs_claus_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!0},":mother_christmas_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!1},":mrs_claus_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!0},":mother_christmas_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!1},":mrs_claus_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!0},":mother_christmas_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!1},":mrs_claus_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!0},":mother_christmas_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!1},":man_in_tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!0},":tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!1},":man_in_tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!0},":tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!1},":man_in_tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!0},":tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!1},":man_in_tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!0},":tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!1},":man_in_tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!0},":tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!1},":prince_tone5:":{unicode:["1f934-1f3ff"],fname:"1f934-1f3ff",uc:"1f934-1f3ff",isCanonical:!0},":prince_tone4:":{unicode:["1f934-1f3fe"],fname:"1f934-1f3fe",uc:"1f934-1f3fe",isCanonical:!0},":prince_tone3:":{unicode:["1f934-1f3fd"],fname:"1f934-1f3fd",uc:"1f934-1f3fd",isCanonical:!0},":prince_tone2:":{unicode:["1f934-1f3fc"],fname:"1f934-1f3fc",uc:"1f934-1f3fc",isCanonical:!0},":prince_tone1:":{unicode:["1f934-1f3fb"],fname:"1f934-1f3fb",uc:"1f934-1f3fb",isCanonical:!0},":selfie_tone5:":{unicode:["1f933-1f3ff"],fname:"1f933-1f3ff",uc:"1f933-1f3ff",isCanonical:!0},":selfie_tone4:":{unicode:["1f933-1f3fe"],fname:"1f933-1f3fe",uc:"1f933-1f3fe",isCanonical:!0},":selfie_tone3:":{unicode:["1f933-1f3fd"],fname:"1f933-1f3fd",uc:"1f933-1f3fd",isCanonical:!0},":selfie_tone2:":{unicode:["1f933-1f3fc"],fname:"1f933-1f3fc",uc:"1f933-1f3fc",isCanonical:!0},":selfie_tone1:":{unicode:["1f933-1f3fb"],fname:"1f933-1f3fb",uc:"1f933-1f3fb",isCanonical:!0},":pregnant_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!0},":expecting_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!1},":pregnant_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!0},":expecting_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!1},":pregnant_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!0},":expecting_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!1},":pregnant_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!0},":expecting_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!1},":pregnant_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!0},":expecting_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!1},":face_palm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!0},":facepalm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!1},":face_palm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!0},":facepalm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!1},":face_palm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!0},":facepalm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!1},":face_palm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!0},":facepalm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!1},":face_palm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!0},":facepalm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!1},":fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!1},":fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!1},":fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!1},":fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!1},":fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!1},":handshake_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!0},":shaking_hands_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!1},":handshake_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!0},":shaking_hands_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!1},":handshake_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!0},":shaking_hands_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!1},":handshake_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!0},":shaking_hands_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!1},":handshake_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!0},":shaking_hands_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!1},":right_facing_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!0},":right_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!1},":right_facing_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!0},":right_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!1},":right_facing_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!0},":right_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!1},":right_facing_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!0},":right_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!1},":right_facing_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!0},":right_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!1},":left_facing_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!0},":left_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!1},":left_facing_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!0},":left_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!1},":left_facing_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!0},":left_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!1},":left_facing_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!0},":left_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!1},":left_facing_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!0},":left_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!1},":raised_back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!0},":back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!1},":raised_back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!0},":back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!1},":raised_back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!0},":back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!1},":raised_back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!0},":back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!1},":raised_back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!0},":back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!1},":call_me_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!0},":call_me_hand_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!1},":call_me_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",uc:"1f919-1f3fe",isCanonical:!0},":call_me_hand_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",uc:"1f919-1f3fe",isCanonical:!1},":call_me_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!0},":call_me_hand_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!1},":call_me_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!0},":call_me_hand_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!1},":call_me_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!0},":call_me_hand_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!1},":metal_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!0},":sign_of_the_horns_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!1},":metal_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!0},":sign_of_the_horns_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!1},":metal_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!0},":sign_of_the_horns_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!1},":metal_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!0},":sign_of_the_horns_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!1},":metal_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!0},":sign_of_the_horns_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!1},":bath_tone5:":{unicode:["1f6c0-1f3ff"],fname:"1f6c0-1f3ff",uc:"1f6c0-1f3ff",isCanonical:!0},":bath_tone4:":{unicode:["1f6c0-1f3fe"],fname:"1f6c0-1f3fe",uc:"1f6c0-1f3fe",isCanonical:!0},":bath_tone3:":{unicode:["1f6c0-1f3fd"],fname:"1f6c0-1f3fd",uc:"1f6c0-1f3fd",isCanonical:!0},":bath_tone2:":{unicode:["1f6c0-1f3fc"],fname:"1f6c0-1f3fc",uc:"1f6c0-1f3fc",isCanonical:!0},":bath_tone1:":{unicode:["1f6c0-1f3fb"],fname:"1f6c0-1f3fb",uc:"1f6c0-1f3fb",isCanonical:!0},":walking_tone5:":{unicode:["1f6b6-1f3ff"],fname:"1f6b6-1f3ff",uc:"1f6b6-1f3ff",isCanonical:!0},":walking_tone4:":{unicode:["1f6b6-1f3fe"],fname:"1f6b6-1f3fe",uc:"1f6b6-1f3fe",isCanonical:!0},":walking_tone3:":{unicode:["1f6b6-1f3fd"],fname:"1f6b6-1f3fd",uc:"1f6b6-1f3fd",isCanonical:!0},":walking_tone2:":{unicode:["1f6b6-1f3fc"],fname:"1f6b6-1f3fc",uc:"1f6b6-1f3fc",isCanonical:!0},":walking_tone1:":{unicode:["1f6b6-1f3fb"],fname:"1f6b6-1f3fb",uc:"1f6b6-1f3fb",isCanonical:!0},":mountain_bicyclist_tone5:":{unicode:["1f6b5-1f3ff"],fname:"1f6b5-1f3ff",uc:"1f6b5-1f3ff",isCanonical:!0},":mountain_bicyclist_tone4:":{unicode:["1f6b5-1f3fe"],fname:"1f6b5-1f3fe",uc:"1f6b5-1f3fe",isCanonical:!0},":mountain_bicyclist_tone3:":{unicode:["1f6b5-1f3fd"],fname:"1f6b5-1f3fd",uc:"1f6b5-1f3fd",isCanonical:!0},":mountain_bicyclist_tone2:":{unicode:["1f6b5-1f3fc"],fname:"1f6b5-1f3fc",uc:"1f6b5-1f3fc",isCanonical:!0},":mountain_bicyclist_tone1:":{unicode:["1f6b5-1f3fb"],fname:"1f6b5-1f3fb",uc:"1f6b5-1f3fb",isCanonical:!0},":bicyclist_tone5:":{unicode:["1f6b4-1f3ff"],fname:"1f6b4-1f3ff",uc:"1f6b4-1f3ff",isCanonical:!0},":bicyclist_tone4:":{unicode:["1f6b4-1f3fe"],fname:"1f6b4-1f3fe",uc:"1f6b4-1f3fe",isCanonical:!0},":bicyclist_tone3:":{unicode:["1f6b4-1f3fd"],fname:"1f6b4-1f3fd",uc:"1f6b4-1f3fd",isCanonical:!0},":bicyclist_tone2:":{unicode:["1f6b4-1f3fc"],fname:"1f6b4-1f3fc",uc:"1f6b4-1f3fc",isCanonical:!0},":bicyclist_tone1:":{unicode:["1f6b4-1f3fb"],fname:"1f6b4-1f3fb",uc:"1f6b4-1f3fb",isCanonical:!0},":rowboat_tone5:":{unicode:["1f6a3-1f3ff"],fname:"1f6a3-1f3ff",uc:"1f6a3-1f3ff",isCanonical:!0},":rowboat_tone4:":{unicode:["1f6a3-1f3fe"],fname:"1f6a3-1f3fe",uc:"1f6a3-1f3fe",isCanonical:!0},":rowboat_tone3:":{unicode:["1f6a3-1f3fd"],fname:"1f6a3-1f3fd",uc:"1f6a3-1f3fd",isCanonical:!0},":rowboat_tone2:":{unicode:["1f6a3-1f3fc"],fname:"1f6a3-1f3fc",uc:"1f6a3-1f3fc",isCanonical:!0},":rowboat_tone1:":{unicode:["1f6a3-1f3fb"],fname:"1f6a3-1f3fb",uc:"1f6a3-1f3fb",isCanonical:!0},":pray_tone5:":{unicode:["1f64f-1f3ff"],fname:"1f64f-1f3ff",uc:"1f64f-1f3ff",isCanonical:!0},":pray_tone4:":{unicode:["1f64f-1f3fe"],fname:"1f64f-1f3fe",uc:"1f64f-1f3fe",isCanonical:!0},":pray_tone3:":{unicode:["1f64f-1f3fd"],fname:"1f64f-1f3fd",uc:"1f64f-1f3fd",isCanonical:!0},":pray_tone2:":{unicode:["1f64f-1f3fc"],fname:"1f64f-1f3fc",uc:"1f64f-1f3fc",isCanonical:!0},":pray_tone1:":{unicode:["1f64f-1f3fb"],fname:"1f64f-1f3fb",uc:"1f64f-1f3fb",isCanonical:!0},":person_with_pouting_face_tone5:":{unicode:["1f64e-1f3ff"],fname:"1f64e-1f3ff",uc:"1f64e-1f3ff",isCanonical:!0},":person_with_pouting_face_tone4:":{unicode:["1f64e-1f3fe"],fname:"1f64e-1f3fe",uc:"1f64e-1f3fe",isCanonical:!0},":person_with_pouting_face_tone3:":{unicode:["1f64e-1f3fd"],fname:"1f64e-1f3fd",uc:"1f64e-1f3fd",isCanonical:!0},":person_with_pouting_face_tone2:":{unicode:["1f64e-1f3fc"],fname:"1f64e-1f3fc",uc:"1f64e-1f3fc",isCanonical:!0},":person_with_pouting_face_tone1:":{unicode:["1f64e-1f3fb"],fname:"1f64e-1f3fb",uc:"1f64e-1f3fb",isCanonical:!0},":person_frowning_tone5:":{unicode:["1f64d-1f3ff"],fname:"1f64d-1f3ff",uc:"1f64d-1f3ff",isCanonical:!0},":person_frowning_tone4:":{unicode:["1f64d-1f3fe"],fname:"1f64d-1f3fe",uc:"1f64d-1f3fe",isCanonical:!0},":person_frowning_tone3:":{unicode:["1f64d-1f3fd"],fname:"1f64d-1f3fd",uc:"1f64d-1f3fd",isCanonical:!0},":person_frowning_tone2:":{unicode:["1f64d-1f3fc"],fname:"1f64d-1f3fc",uc:"1f64d-1f3fc",isCanonical:!0},":person_frowning_tone1:":{unicode:["1f64d-1f3fb"],fname:"1f64d-1f3fb",uc:"1f64d-1f3fb",isCanonical:!0},":raised_hands_tone5:":{unicode:["1f64c-1f3ff"],fname:"1f64c-1f3ff",uc:"1f64c-1f3ff",isCanonical:!0},":raised_hands_tone4:":{unicode:["1f64c-1f3fe"],fname:"1f64c-1f3fe",uc:"1f64c-1f3fe",isCanonical:!0},":raised_hands_tone3:":{unicode:["1f64c-1f3fd"],fname:"1f64c-1f3fd",uc:"1f64c-1f3fd",isCanonical:!0},":raised_hands_tone2:":{unicode:["1f64c-1f3fc"],fname:"1f64c-1f3fc",uc:"1f64c-1f3fc",isCanonical:!0},":raised_hands_tone1:":{unicode:["1f64c-1f3fb"],fname:"1f64c-1f3fb",uc:"1f64c-1f3fb",isCanonical:!0},":raising_hand_tone5:":{unicode:["1f64b-1f3ff"],fname:"1f64b-1f3ff",uc:"1f64b-1f3ff",isCanonical:!0},":raising_hand_tone4:":{unicode:["1f64b-1f3fe"],fname:"1f64b-1f3fe",uc:"1f64b-1f3fe",isCanonical:!0},":raising_hand_tone3:":{unicode:["1f64b-1f3fd"],fname:"1f64b-1f3fd",uc:"1f64b-1f3fd",isCanonical:!0},":raising_hand_tone2:":{unicode:["1f64b-1f3fc"],fname:"1f64b-1f3fc",uc:"1f64b-1f3fc",isCanonical:!0},":raising_hand_tone1:":{unicode:["1f64b-1f3fb"],fname:"1f64b-1f3fb",uc:"1f64b-1f3fb",isCanonical:!0},":bow_tone5:":{unicode:["1f647-1f3ff"],fname:"1f647-1f3ff",uc:"1f647-1f3ff",isCanonical:!0},":bow_tone4:":{unicode:["1f647-1f3fe"],fname:"1f647-1f3fe",uc:"1f647-1f3fe",isCanonical:!0},":bow_tone3:":{unicode:["1f647-1f3fd"],fname:"1f647-1f3fd",uc:"1f647-1f3fd",isCanonical:!0},":bow_tone2:":{unicode:["1f647-1f3fc"],fname:"1f647-1f3fc",uc:"1f647-1f3fc",isCanonical:!0},":bow_tone1:":{unicode:["1f647-1f3fb"],fname:"1f647-1f3fb",uc:"1f647-1f3fb",isCanonical:!0},":ok_woman_tone5:":{unicode:["1f646-1f3ff"],fname:"1f646-1f3ff",uc:"1f646-1f3ff",isCanonical:!0},":ok_woman_tone4:":{unicode:["1f646-1f3fe"],fname:"1f646-1f3fe",uc:"1f646-1f3fe",isCanonical:!0},":ok_woman_tone3:":{unicode:["1f646-1f3fd"],fname:"1f646-1f3fd",uc:"1f646-1f3fd",isCanonical:!0},":ok_woman_tone2:":{unicode:["1f646-1f3fc"],fname:"1f646-1f3fc",uc:"1f646-1f3fc",isCanonical:!0},":ok_woman_tone1:":{unicode:["1f646-1f3fb"],fname:"1f646-1f3fb",uc:"1f646-1f3fb",isCanonical:!0},":no_good_tone5:":{unicode:["1f645-1f3ff"],fname:"1f645-1f3ff",uc:"1f645-1f3ff",isCanonical:!0},":no_good_tone4:":{unicode:["1f645-1f3fe"],fname:"1f645-1f3fe",uc:"1f645-1f3fe",isCanonical:!0},":no_good_tone3:":{unicode:["1f645-1f3fd"],fname:"1f645-1f3fd",uc:"1f645-1f3fd",isCanonical:!0},":no_good_tone2:":{unicode:["1f645-1f3fc"],fname:"1f645-1f3fc",uc:"1f645-1f3fc",isCanonical:!0},":no_good_tone1:":{unicode:["1f645-1f3fb"],fname:"1f645-1f3fb",uc:"1f645-1f3fb",isCanonical:!0},":vulcan_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!1},":vulcan_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!1},":vulcan_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!1},":vulcan_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!1},":vulcan_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!1},":middle_finger_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!1},":middle_finger_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!1},":middle_finger_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!1},":middle_finger_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!1},":middle_finger_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!1},":hand_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!0},":raised_hand_with_fingers_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!1},":hand_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!0},":raised_hand_with_fingers_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!1},":hand_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!0},":raised_hand_with_fingers_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!1},":hand_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!0},":raised_hand_with_fingers_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!1},":hand_splayed_tone1:":{unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!0},":raised_hand_with_fingers_splayed_tone1:":{
+unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!1},":man_dancing_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!0},":male_dancer_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!1},":man_dancing_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!0},":male_dancer_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!1},":man_dancing_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!0},":male_dancer_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!1},":man_dancing_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!0},":male_dancer_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!1},":man_dancing_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!0},":male_dancer_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!1},":spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!0},":sleuth_or_spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!1},":spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!0},":sleuth_or_spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!1},":spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!0},":sleuth_or_spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!1},":spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!0},":sleuth_or_spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!1},":spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!0},":sleuth_or_spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!1},":muscle_tone5:":{unicode:["1f4aa-1f3ff"],fname:"1f4aa-1f3ff",uc:"1f4aa-1f3ff",isCanonical:!0},":muscle_tone4:":{unicode:["1f4aa-1f3fe"],fname:"1f4aa-1f3fe",uc:"1f4aa-1f3fe",isCanonical:!0},":muscle_tone3:":{unicode:["1f4aa-1f3fd"],fname:"1f4aa-1f3fd",uc:"1f4aa-1f3fd",isCanonical:!0},":muscle_tone2:":{unicode:["1f4aa-1f3fc"],fname:"1f4aa-1f3fc",uc:"1f4aa-1f3fc",isCanonical:!0},":muscle_tone1:":{unicode:["1f4aa-1f3fb"],fname:"1f4aa-1f3fb",uc:"1f4aa-1f3fb",isCanonical:!0},":haircut_tone5:":{unicode:["1f487-1f3ff"],fname:"1f487-1f3ff",uc:"1f487-1f3ff",isCanonical:!0},":haircut_tone4:":{unicode:["1f487-1f3fe"],fname:"1f487-1f3fe",uc:"1f487-1f3fe",isCanonical:!0},":haircut_tone3:":{unicode:["1f487-1f3fd"],fname:"1f487-1f3fd",uc:"1f487-1f3fd",isCanonical:!0},":haircut_tone2:":{unicode:["1f487-1f3fc"],fname:"1f487-1f3fc",uc:"1f487-1f3fc",isCanonical:!0},":haircut_tone1:":{unicode:["1f487-1f3fb"],fname:"1f487-1f3fb",uc:"1f487-1f3fb",isCanonical:!0},":massage_tone5:":{unicode:["1f486-1f3ff"],fname:"1f486-1f3ff",uc:"1f486-1f3ff",isCanonical:!0},":massage_tone4:":{unicode:["1f486-1f3fe"],fname:"1f486-1f3fe",uc:"1f486-1f3fe",isCanonical:!0},":massage_tone3:":{unicode:["1f486-1f3fd"],fname:"1f486-1f3fd",uc:"1f486-1f3fd",isCanonical:!0},":massage_tone2:":{unicode:["1f486-1f3fc"],fname:"1f486-1f3fc",uc:"1f486-1f3fc",isCanonical:!0},":massage_tone1:":{unicode:["1f486-1f3fb"],fname:"1f486-1f3fb",uc:"1f486-1f3fb",isCanonical:!0},":nail_care_tone5:":{unicode:["1f485-1f3ff"],fname:"1f485-1f3ff",uc:"1f485-1f3ff",isCanonical:!0},":nail_care_tone4:":{unicode:["1f485-1f3fe"],fname:"1f485-1f3fe",uc:"1f485-1f3fe",isCanonical:!0},":nail_care_tone3:":{unicode:["1f485-1f3fd"],fname:"1f485-1f3fd",uc:"1f485-1f3fd",isCanonical:!0},":nail_care_tone2:":{unicode:["1f485-1f3fc"],fname:"1f485-1f3fc",uc:"1f485-1f3fc",isCanonical:!0},":nail_care_tone1:":{unicode:["1f485-1f3fb"],fname:"1f485-1f3fb",uc:"1f485-1f3fb",isCanonical:!0},":dancer_tone5:":{unicode:["1f483-1f3ff"],fname:"1f483-1f3ff",uc:"1f483-1f3ff",isCanonical:!0},":dancer_tone4:":{unicode:["1f483-1f3fe"],fname:"1f483-1f3fe",uc:"1f483-1f3fe",isCanonical:!0},":dancer_tone3:":{unicode:["1f483-1f3fd"],fname:"1f483-1f3fd",uc:"1f483-1f3fd",isCanonical:!0},":dancer_tone2:":{unicode:["1f483-1f3fc"],fname:"1f483-1f3fc",uc:"1f483-1f3fc",isCanonical:!0},":dancer_tone1:":{unicode:["1f483-1f3fb"],fname:"1f483-1f3fb",uc:"1f483-1f3fb",isCanonical:!0},":guardsman_tone5:":{unicode:["1f482-1f3ff"],fname:"1f482-1f3ff",uc:"1f482-1f3ff",isCanonical:!0},":guardsman_tone4:":{unicode:["1f482-1f3fe"],fname:"1f482-1f3fe",uc:"1f482-1f3fe",isCanonical:!0},":guardsman_tone3:":{unicode:["1f482-1f3fd"],fname:"1f482-1f3fd",uc:"1f482-1f3fd",isCanonical:!0},":guardsman_tone2:":{unicode:["1f482-1f3fc"],fname:"1f482-1f3fc",uc:"1f482-1f3fc",isCanonical:!0},":guardsman_tone1:":{unicode:["1f482-1f3fb"],fname:"1f482-1f3fb",uc:"1f482-1f3fb",isCanonical:!0},":information_desk_person_tone5:":{unicode:["1f481-1f3ff"],fname:"1f481-1f3ff",uc:"1f481-1f3ff",isCanonical:!0},":information_desk_person_tone4:":{unicode:["1f481-1f3fe"],fname:"1f481-1f3fe",uc:"1f481-1f3fe",isCanonical:!0},":information_desk_person_tone3:":{unicode:["1f481-1f3fd"],fname:"1f481-1f3fd",uc:"1f481-1f3fd",isCanonical:!0},":information_desk_person_tone2:":{unicode:["1f481-1f3fc"],fname:"1f481-1f3fc",uc:"1f481-1f3fc",isCanonical:!0},":information_desk_person_tone1:":{unicode:["1f481-1f3fb"],fname:"1f481-1f3fb",uc:"1f481-1f3fb",isCanonical:!0},":angel_tone5:":{unicode:["1f47c-1f3ff"],fname:"1f47c-1f3ff",uc:"1f47c-1f3ff",isCanonical:!0},":angel_tone4:":{unicode:["1f47c-1f3fe"],fname:"1f47c-1f3fe",uc:"1f47c-1f3fe",isCanonical:!0},":angel_tone3:":{unicode:["1f47c-1f3fd"],fname:"1f47c-1f3fd",uc:"1f47c-1f3fd",isCanonical:!0},":angel_tone2:":{unicode:["1f47c-1f3fc"],fname:"1f47c-1f3fc",uc:"1f47c-1f3fc",isCanonical:!0},":angel_tone1:":{unicode:["1f47c-1f3fb"],fname:"1f47c-1f3fb",uc:"1f47c-1f3fb",isCanonical:!0},":princess_tone5:":{unicode:["1f478-1f3ff"],fname:"1f478-1f3ff",uc:"1f478-1f3ff",isCanonical:!0},":princess_tone4:":{unicode:["1f478-1f3fe"],fname:"1f478-1f3fe",uc:"1f478-1f3fe",isCanonical:!0},":princess_tone3:":{unicode:["1f478-1f3fd"],fname:"1f478-1f3fd",uc:"1f478-1f3fd",isCanonical:!0},":princess_tone2:":{unicode:["1f478-1f3fc"],fname:"1f478-1f3fc",uc:"1f478-1f3fc",isCanonical:!0},":princess_tone1:":{unicode:["1f478-1f3fb"],fname:"1f478-1f3fb",uc:"1f478-1f3fb",isCanonical:!0},":construction_worker_tone5:":{unicode:["1f477-1f3ff"],fname:"1f477-1f3ff",uc:"1f477-1f3ff",isCanonical:!0},":construction_worker_tone4:":{unicode:["1f477-1f3fe"],fname:"1f477-1f3fe",uc:"1f477-1f3fe",isCanonical:!0},":construction_worker_tone3:":{unicode:["1f477-1f3fd"],fname:"1f477-1f3fd",uc:"1f477-1f3fd",isCanonical:!0},":construction_worker_tone2:":{unicode:["1f477-1f3fc"],fname:"1f477-1f3fc",uc:"1f477-1f3fc",isCanonical:!0},":construction_worker_tone1:":{unicode:["1f477-1f3fb"],fname:"1f477-1f3fb",uc:"1f477-1f3fb",isCanonical:!0},":baby_tone5:":{unicode:["1f476-1f3ff"],fname:"1f476-1f3ff",uc:"1f476-1f3ff",isCanonical:!0},":baby_tone4:":{unicode:["1f476-1f3fe"],fname:"1f476-1f3fe",uc:"1f476-1f3fe",isCanonical:!0},":baby_tone3:":{unicode:["1f476-1f3fd"],fname:"1f476-1f3fd",uc:"1f476-1f3fd",isCanonical:!0},":baby_tone2:":{unicode:["1f476-1f3fc"],fname:"1f476-1f3fc",uc:"1f476-1f3fc",isCanonical:!0},":baby_tone1:":{unicode:["1f476-1f3fb"],fname:"1f476-1f3fb",uc:"1f476-1f3fb",isCanonical:!0},":older_woman_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!0},":grandma_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!1},":older_woman_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!0},":grandma_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!1},":older_woman_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!0},":grandma_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!1},":older_woman_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!0},":grandma_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!1},":older_woman_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!0},":grandma_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!1},":older_man_tone5:":{unicode:["1f474-1f3ff"],fname:"1f474-1f3ff",uc:"1f474-1f3ff",isCanonical:!0},":older_man_tone4:":{unicode:["1f474-1f3fe"],fname:"1f474-1f3fe",uc:"1f474-1f3fe",isCanonical:!0},":older_man_tone3:":{unicode:["1f474-1f3fd"],fname:"1f474-1f3fd",uc:"1f474-1f3fd",isCanonical:!0},":older_man_tone2:":{unicode:["1f474-1f3fc"],fname:"1f474-1f3fc",uc:"1f474-1f3fc",isCanonical:!0},":older_man_tone1:":{unicode:["1f474-1f3fb"],fname:"1f474-1f3fb",uc:"1f474-1f3fb",isCanonical:!0},":man_with_turban_tone5:":{unicode:["1f473-1f3ff"],fname:"1f473-1f3ff",uc:"1f473-1f3ff",isCanonical:!0},":man_with_turban_tone4:":{unicode:["1f473-1f3fe"],fname:"1f473-1f3fe",uc:"1f473-1f3fe",isCanonical:!0},":man_with_turban_tone3:":{unicode:["1f473-1f3fd"],fname:"1f473-1f3fd",uc:"1f473-1f3fd",isCanonical:!0},":man_with_turban_tone2:":{unicode:["1f473-1f3fc"],fname:"1f473-1f3fc",uc:"1f473-1f3fc",isCanonical:!0},":man_with_turban_tone1:":{unicode:["1f473-1f3fb"],fname:"1f473-1f3fb",uc:"1f473-1f3fb",isCanonical:!0},":man_with_gua_pi_mao_tone5:":{unicode:["1f472-1f3ff"],fname:"1f472-1f3ff",uc:"1f472-1f3ff",isCanonical:!0},":man_with_gua_pi_mao_tone4:":{unicode:["1f472-1f3fe"],fname:"1f472-1f3fe",uc:"1f472-1f3fe",isCanonical:!0},":man_with_gua_pi_mao_tone3:":{unicode:["1f472-1f3fd"],fname:"1f472-1f3fd",uc:"1f472-1f3fd",isCanonical:!0},":man_with_gua_pi_mao_tone2:":{unicode:["1f472-1f3fc"],fname:"1f472-1f3fc",uc:"1f472-1f3fc",isCanonical:!0},":man_with_gua_pi_mao_tone1:":{unicode:["1f472-1f3fb"],fname:"1f472-1f3fb",uc:"1f472-1f3fb",isCanonical:!0},":person_with_blond_hair_tone5:":{unicode:["1f471-1f3ff"],fname:"1f471-1f3ff",uc:"1f471-1f3ff",isCanonical:!0},":person_with_blond_hair_tone4:":{unicode:["1f471-1f3fe"],fname:"1f471-1f3fe",uc:"1f471-1f3fe",isCanonical:!0},":person_with_blond_hair_tone3:":{unicode:["1f471-1f3fd"],fname:"1f471-1f3fd",uc:"1f471-1f3fd",isCanonical:!0},":person_with_blond_hair_tone2:":{unicode:["1f471-1f3fc"],fname:"1f471-1f3fc",uc:"1f471-1f3fc",isCanonical:!0},":person_with_blond_hair_tone1:":{unicode:["1f471-1f3fb"],fname:"1f471-1f3fb",uc:"1f471-1f3fb",isCanonical:!0},":bride_with_veil_tone5:":{unicode:["1f470-1f3ff"],fname:"1f470-1f3ff",uc:"1f470-1f3ff",isCanonical:!0},":bride_with_veil_tone4:":{unicode:["1f470-1f3fe"],fname:"1f470-1f3fe",uc:"1f470-1f3fe",isCanonical:!0},":bride_with_veil_tone3:":{unicode:["1f470-1f3fd"],fname:"1f470-1f3fd",uc:"1f470-1f3fd",isCanonical:!0},":bride_with_veil_tone2:":{unicode:["1f470-1f3fc"],fname:"1f470-1f3fc",uc:"1f470-1f3fc",isCanonical:!0},":bride_with_veil_tone1:":{unicode:["1f470-1f3fb"],fname:"1f470-1f3fb",uc:"1f470-1f3fb",isCanonical:!0},":cop_tone5:":{unicode:["1f46e-1f3ff"],fname:"1f46e-1f3ff",uc:"1f46e-1f3ff",isCanonical:!0},":cop_tone4:":{unicode:["1f46e-1f3fe"],fname:"1f46e-1f3fe",uc:"1f46e-1f3fe",isCanonical:!0},":cop_tone3:":{unicode:["1f46e-1f3fd"],fname:"1f46e-1f3fd",uc:"1f46e-1f3fd",isCanonical:!0},":cop_tone2:":{unicode:["1f46e-1f3fc"],fname:"1f46e-1f3fc",uc:"1f46e-1f3fc",isCanonical:!0},":cop_tone1:":{unicode:["1f46e-1f3fb"],fname:"1f46e-1f3fb",uc:"1f46e-1f3fb",isCanonical:!0},":woman_tone5:":{unicode:["1f469-1f3ff"],fname:"1f469-1f3ff",uc:"1f469-1f3ff",isCanonical:!0},":woman_tone4:":{unicode:["1f469-1f3fe"],fname:"1f469-1f3fe",uc:"1f469-1f3fe",isCanonical:!0},":woman_tone3:":{unicode:["1f469-1f3fd"],fname:"1f469-1f3fd",uc:"1f469-1f3fd",isCanonical:!0},":woman_tone2:":{unicode:["1f469-1f3fc"],fname:"1f469-1f3fc",uc:"1f469-1f3fc",isCanonical:!0},":woman_tone1:":{unicode:["1f469-1f3fb"],fname:"1f469-1f3fb",uc:"1f469-1f3fb",isCanonical:!0},":man_tone5:":{unicode:["1f468-1f3ff"],fname:"1f468-1f3ff",uc:"1f468-1f3ff",isCanonical:!0},":man_tone4:":{unicode:["1f468-1f3fe"],fname:"1f468-1f3fe",uc:"1f468-1f3fe",isCanonical:!0},":man_tone3:":{unicode:["1f468-1f3fd"],fname:"1f468-1f3fd",uc:"1f468-1f3fd",isCanonical:!0},":man_tone2:":{unicode:["1f468-1f3fc"],fname:"1f468-1f3fc",uc:"1f468-1f3fc",isCanonical:!0},":man_tone1:":{unicode:["1f468-1f3fb"],fname:"1f468-1f3fb",uc:"1f468-1f3fb",isCanonical:!0},":girl_tone5:":{unicode:["1f467-1f3ff"],fname:"1f467-1f3ff",uc:"1f467-1f3ff",isCanonical:!0},":girl_tone4:":{unicode:["1f467-1f3fe"],fname:"1f467-1f3fe",uc:"1f467-1f3fe",isCanonical:!0},":girl_tone3:":{unicode:["1f467-1f3fd"],fname:"1f467-1f3fd",uc:"1f467-1f3fd",isCanonical:!0},":girl_tone2:":{unicode:["1f467-1f3fc"],fname:"1f467-1f3fc",uc:"1f467-1f3fc",isCanonical:!0},":girl_tone1:":{unicode:["1f467-1f3fb"],fname:"1f467-1f3fb",uc:"1f467-1f3fb",isCanonical:!0},":boy_tone5:":{unicode:["1f466-1f3ff"],fname:"1f466-1f3ff",uc:"1f466-1f3ff",isCanonical:!0},":boy_tone4:":{unicode:["1f466-1f3fe"],fname:"1f466-1f3fe",uc:"1f466-1f3fe",isCanonical:!0},":boy_tone3:":{unicode:["1f466-1f3fd"],fname:"1f466-1f3fd",uc:"1f466-1f3fd",isCanonical:!0},":boy_tone2:":{unicode:["1f466-1f3fc"],fname:"1f466-1f3fc",uc:"1f466-1f3fc",isCanonical:!0},":boy_tone1:":{unicode:["1f466-1f3fb"],fname:"1f466-1f3fb",uc:"1f466-1f3fb",isCanonical:!0},":open_hands_tone5:":{unicode:["1f450-1f3ff"],fname:"1f450-1f3ff",uc:"1f450-1f3ff",isCanonical:!0},":open_hands_tone4:":{unicode:["1f450-1f3fe"],fname:"1f450-1f3fe",uc:"1f450-1f3fe",isCanonical:!0},":open_hands_tone3:":{unicode:["1f450-1f3fd"],fname:"1f450-1f3fd",uc:"1f450-1f3fd",isCanonical:!0},":open_hands_tone2:":{unicode:["1f450-1f3fc"],fname:"1f450-1f3fc",uc:"1f450-1f3fc",isCanonical:!0},":open_hands_tone1:":{unicode:["1f450-1f3fb"],fname:"1f450-1f3fb",uc:"1f450-1f3fb",isCanonical:!0},":clap_tone5:":{unicode:["1f44f-1f3ff"],fname:"1f44f-1f3ff",uc:"1f44f-1f3ff",isCanonical:!0},":clap_tone4:":{unicode:["1f44f-1f3fe"],fname:"1f44f-1f3fe",uc:"1f44f-1f3fe",isCanonical:!0},":clap_tone3:":{unicode:["1f44f-1f3fd"],fname:"1f44f-1f3fd",uc:"1f44f-1f3fd",isCanonical:!0},":clap_tone2:":{unicode:["1f44f-1f3fc"],fname:"1f44f-1f3fc",uc:"1f44f-1f3fc",isCanonical:!0},":clap_tone1:":{unicode:["1f44f-1f3fb"],fname:"1f44f-1f3fb",uc:"1f44f-1f3fb",isCanonical:!0},":thumbsdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!0},":-1_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbsdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!0},":-1_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbsdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!0},":-1_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbsdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!0},":-1_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbsdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!0},":-1_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbsup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!0},":+1_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbsup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!0},":+1_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbsup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!0},":+1_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbsup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!0},":+1_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbsup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!0},":+1_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":thumbup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":ok_hand_tone5:":{unicode:["1f44c-1f3ff"],fname:"1f44c-1f3ff",uc:"1f44c-1f3ff",isCanonical:!0},":ok_hand_tone4:":{unicode:["1f44c-1f3fe"],fname:"1f44c-1f3fe",uc:"1f44c-1f3fe",isCanonical:!0},":ok_hand_tone3:":{unicode:["1f44c-1f3fd"],fname:"1f44c-1f3fd",uc:"1f44c-1f3fd",isCanonical:!0},":ok_hand_tone2:":{unicode:["1f44c-1f3fc"],fname:"1f44c-1f3fc",uc:"1f44c-1f3fc",isCanonical:!0},":ok_hand_tone1:":{unicode:["1f44c-1f3fb"],fname:"1f44c-1f3fb",uc:"1f44c-1f3fb",isCanonical:!0},":wave_tone5:":{unicode:["1f44b-1f3ff"],fname:"1f44b-1f3ff",uc:"1f44b-1f3ff",isCanonical:!0},":wave_tone4:":{unicode:["1f44b-1f3fe"],fname:"1f44b-1f3fe",uc:"1f44b-1f3fe",isCanonical:!0},":wave_tone3:":{unicode:["1f44b-1f3fd"],fname:"1f44b-1f3fd",uc:"1f44b-1f3fd",isCanonical:!0},":wave_tone2:":{unicode:["1f44b-1f3fc"],fname:"1f44b-1f3fc",uc:"1f44b-1f3fc",isCanonical:!0},":wave_tone1:":{unicode:["1f44b-1f3fb"],fname:"1f44b-1f3fb",uc:"1f44b-1f3fb",isCanonical:!0},":punch_tone5:":{unicode:["1f44a-1f3ff"],fname:"1f44a-1f3ff",uc:"1f44a-1f3ff",isCanonical:!0},":punch_tone4:":{unicode:["1f44a-1f3fe"],fname:"1f44a-1f3fe",uc:"1f44a-1f3fe",isCanonical:!0},":punch_tone3:":{unicode:["1f44a-1f3fd"],fname:"1f44a-1f3fd",uc:"1f44a-1f3fd",isCanonical:!0},":punch_tone2:":{unicode:["1f44a-1f3fc"],fname:"1f44a-1f3fc",uc:"1f44a-1f3fc",isCanonical:!0},":punch_tone1:":{unicode:["1f44a-1f3fb"],fname:"1f44a-1f3fb",uc:"1f44a-1f3fb",isCanonical:!0},":point_right_tone5:":{unicode:["1f449-1f3ff"],fname:"1f449-1f3ff",uc:"1f449-1f3ff",isCanonical:!0},":point_right_tone4:":{unicode:["1f449-1f3fe"],fname:"1f449-1f3fe",uc:"1f449-1f3fe",isCanonical:!0},":point_right_tone3:":{unicode:["1f449-1f3fd"],fname:"1f449-1f3fd",uc:"1f449-1f3fd",isCanonical:!0},":point_right_tone2:":{unicode:["1f449-1f3fc"],fname:"1f449-1f3fc",uc:"1f449-1f3fc",isCanonical:!0},":point_right_tone1:":{unicode:["1f449-1f3fb"],fname:"1f449-1f3fb",uc:"1f449-1f3fb",isCanonical:!0},":point_left_tone5:":{unicode:["1f448-1f3ff"],fname:"1f448-1f3ff",uc:"1f448-1f3ff",isCanonical:!0},":point_left_tone4:":{unicode:["1f448-1f3fe"],fname:"1f448-1f3fe",uc:"1f448-1f3fe",isCanonical:!0},":point_left_tone3:":{unicode:["1f448-1f3fd"],fname:"1f448-1f3fd",uc:"1f448-1f3fd",isCanonical:!0},":point_left_tone2:":{unicode:["1f448-1f3fc"],fname:"1f448-1f3fc",uc:"1f448-1f3fc",isCanonical:!0},":point_left_tone1:":{unicode:["1f448-1f3fb"],fname:"1f448-1f3fb",uc:"1f448-1f3fb",isCanonical:!0},":point_down_tone5:":{unicode:["1f447-1f3ff"],fname:"1f447-1f3ff",uc:"1f447-1f3ff",isCanonical:!0},":point_down_tone4:":{unicode:["1f447-1f3fe"],fname:"1f447-1f3fe",uc:"1f447-1f3fe",isCanonical:!0},":point_down_tone3:":{unicode:["1f447-1f3fd"],fname:"1f447-1f3fd",uc:"1f447-1f3fd",isCanonical:!0},":point_down_tone2:":{unicode:["1f447-1f3fc"],fname:"1f447-1f3fc",uc:"1f447-1f3fc",isCanonical:!0},":point_down_tone1:":{unicode:["1f447-1f3fb"],fname:"1f447-1f3fb",uc:"1f447-1f3fb",isCanonical:!0},":point_up_2_tone5:":{unicode:["1f446-1f3ff"],fname:"1f446-1f3ff",uc:"1f446-1f3ff",isCanonical:!0},":point_up_2_tone4:":{unicode:["1f446-1f3fe"],fname:"1f446-1f3fe",uc:"1f446-1f3fe",isCanonical:!0},":point_up_2_tone3:":{unicode:["1f446-1f3fd"],fname:"1f446-1f3fd",uc:"1f446-1f3fd",isCanonical:!0},":point_up_2_tone2:":{unicode:["1f446-1f3fc"],fname:"1f446-1f3fc",uc:"1f446-1f3fc",isCanonical:!0},":point_up_2_tone1:":{unicode:["1f446-1f3fb"],fname:"1f446-1f3fb",uc:"1f446-1f3fb",isCanonical:!0},":nose_tone5:":{unicode:["1f443-1f3ff"],fname:"1f443-1f3ff",uc:"1f443-1f3ff",isCanonical:!0},":nose_tone4:":{unicode:["1f443-1f3fe"],fname:"1f443-1f3fe",uc:"1f443-1f3fe",isCanonical:!0},":nose_tone3:":{unicode:["1f443-1f3fd"],fname:"1f443-1f3fd",uc:"1f443-1f3fd",isCanonical:!0},":nose_tone2:":{unicode:["1f443-1f3fc"],fname:"1f443-1f3fc",uc:"1f443-1f3fc",isCanonical:!0},":nose_tone1:":{unicode:["1f443-1f3fb"],fname:"1f443-1f3fb",uc:"1f443-1f3fb",isCanonical:!0},":ear_tone5:":{unicode:["1f442-1f3ff"],fname:"1f442-1f3ff",uc:"1f442-1f3ff",isCanonical:!0},":ear_tone4:":{unicode:["1f442-1f3fe"],fname:"1f442-1f3fe",uc:"1f442-1f3fe",isCanonical:!0},":ear_tone3:":{unicode:["1f442-1f3fd"],fname:"1f442-1f3fd",uc:"1f442-1f3fd",isCanonical:!0},":ear_tone2:":{unicode:["1f442-1f3fc"],fname:"1f442-1f3fc",uc:"1f442-1f3fc",isCanonical:!0},":ear_tone1:":{unicode:["1f442-1f3fb"],fname:"1f442-1f3fb",uc:"1f442-1f3fb",isCanonical:!0},":lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!0},":weight_lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!1},":lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!0},":weight_lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!1},":lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!0},":weight_lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!1},":lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!0},":weight_lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!1},":lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!0},":weight_lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!1},":swimmer_tone5:":{unicode:["1f3ca-1f3ff"],fname:"1f3ca-1f3ff",uc:"1f3ca-1f3ff",isCanonical:!0},":swimmer_tone4:":{unicode:["1f3ca-1f3fe"],fname:"1f3ca-1f3fe",uc:"1f3ca-1f3fe",isCanonical:!0},":swimmer_tone3:":{unicode:["1f3ca-1f3fd"],fname:"1f3ca-1f3fd",uc:"1f3ca-1f3fd",isCanonical:!0},":swimmer_tone2:":{unicode:["1f3ca-1f3fc"],fname:"1f3ca-1f3fc",uc:"1f3ca-1f3fc",isCanonical:!0},":swimmer_tone1:":{unicode:["1f3ca-1f3fb"],fname:"1f3ca-1f3fb",uc:"1f3ca-1f3fb",isCanonical:!0},":horse_racing_tone5:":{unicode:["1f3c7-1f3ff"],fname:"1f3c7-1f3ff",uc:"1f3c7-1f3ff",isCanonical:!0},":horse_racing_tone4:":{unicode:["1f3c7-1f3fe"],fname:"1f3c7-1f3fe",uc:"1f3c7-1f3fe",isCanonical:!0},":horse_racing_tone3:":{unicode:["1f3c7-1f3fd"],fname:"1f3c7-1f3fd",uc:"1f3c7-1f3fd",isCanonical:!0},":horse_racing_tone2:":{unicode:["1f3c7-1f3fc"],fname:"1f3c7-1f3fc",uc:"1f3c7-1f3fc",isCanonical:!0},":horse_racing_tone1:":{unicode:["1f3c7-1f3fb"],fname:"1f3c7-1f3fb",uc:"1f3c7-1f3fb",isCanonical:!0},":surfer_tone5:":{unicode:["1f3c4-1f3ff"],fname:"1f3c4-1f3ff",uc:"1f3c4-1f3ff",isCanonical:!0},":surfer_tone4:":{unicode:["1f3c4-1f3fe"],fname:"1f3c4-1f3fe",uc:"1f3c4-1f3fe",isCanonical:!0},":surfer_tone3:":{unicode:["1f3c4-1f3fd"],fname:"1f3c4-1f3fd",uc:"1f3c4-1f3fd",isCanonical:!0},":surfer_tone2:":{unicode:["1f3c4-1f3fc"],fname:"1f3c4-1f3fc",uc:"1f3c4-1f3fc",isCanonical:!0},":surfer_tone1:":{unicode:["1f3c4-1f3fb"],fname:"1f3c4-1f3fb",uc:"1f3c4-1f3fb",isCanonical:!0},":runner_tone5:":{unicode:["1f3c3-1f3ff"],fname:"1f3c3-1f3ff",uc:"1f3c3-1f3ff",isCanonical:!0},":runner_tone4:":{unicode:["1f3c3-1f3fe"],fname:"1f3c3-1f3fe",uc:"1f3c3-1f3fe",isCanonical:!0},":runner_tone3:":{unicode:["1f3c3-1f3fd"],fname:"1f3c3-1f3fd",uc:"1f3c3-1f3fd",isCanonical:!0},":runner_tone2:":{unicode:["1f3c3-1f3fc"],fname:"1f3c3-1f3fc",uc:"1f3c3-1f3fc",isCanonical:!0},":runner_tone1:":{unicode:["1f3c3-1f3fb"],fname:"1f3c3-1f3fb",uc:"1f3c3-1f3fb",isCanonical:!0},":santa_tone5:":{unicode:["1f385-1f3ff"],fname:"1f385-1f3ff",uc:"1f385-1f3ff",isCanonical:!0},":santa_tone4:":{unicode:["1f385-1f3fe"],fname:"1f385-1f3fe",uc:"1f385-1f3fe",isCanonical:!0},":santa_tone3:":{unicode:["1f385-1f3fd"],fname:"1f385-1f3fd",uc:"1f385-1f3fd",isCanonical:!0},":santa_tone2:":{unicode:["1f385-1f3fc"],fname:"1f385-1f3fc",uc:"1f385-1f3fc",isCanonical:!0},":santa_tone1:":{unicode:["1f385-1f3fb"],fname:"1f385-1f3fb",uc:"1f385-1f3fb",isCanonical:!0},":flag_zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!0},":zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!1},":flag_zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!0},":zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!1},":flag_za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!0},":za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!1},":flag_yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!0},":yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!1},":flag_ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!0},":ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!1},":flag_xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!0},":xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!1},":flag_ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!0},":ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!1},":flag_wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!0},":wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!1},":flag_vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!0},":vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!1},":flag_vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!0},":vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!1},":flag_vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!0},":vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!1},":flag_vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!0},":vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!1},":flag_ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!0},":ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!1},":flag_vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!0},":vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!1},":flag_va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!0},":va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!1},":flag_uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!0},":uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!1},":flag_uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!0},":uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!1},":flag_us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!0},":us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!1},":flag_um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!0},":um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!1},":flag_ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!0},":ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!1},":flag_ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!0},":ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!1},":flag_tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!0},":tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!1},":flag_tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!0},":tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!1},":flag_tv:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!0},":tuvalu:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!1},":flag_tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!0},":tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!1},":flag_tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!0},":tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!1},":flag_to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!0},":to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!1},":flag_tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!0},":tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!1},":flag_tm:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!0},":turkmenistan:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!1},":flag_tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!0},":tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!1},":flag_tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!0},":tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!1},":flag_tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!0},":tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!1},":flag_th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!0},":th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!1},":flag_tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!0},":tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!1},":flag_tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!0},":tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!1},":flag_td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!0},":td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!1},":flag_tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!0},":tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!1},":flag_ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!0},":ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!1},":flag_sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!0},":sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!1},":flag_sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!0},":sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!1},":flag_sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!0
+},":sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!1},":flag_sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!0},":sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!1},":flag_st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!0},":st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!1},":flag_ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!0},":ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!1},":flag_sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!0},":sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!1},":flag_so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!0},":so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!1},":flag_sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!0},":sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!1},":flag_sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!0},":sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!1},":flag_sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!0},":sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!1},":flag_sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!0},":sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!1},":flag_sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!0},":sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!1},":flag_si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!0},":si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!1},":flag_sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!0},":sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!1},":flag_sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!0},":sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!1},":flag_se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!0},":se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!1},":flag_sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!0},":sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!1},":flag_sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!0},":sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!1},":flag_sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!0},":sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!1},":flag_sa:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!0},":saudiarabia:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":saudi:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":flag_rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!0},":rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!1},":flag_ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!0},":ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!1},":flag_rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!0},":rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!1},":flag_ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!0},":ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!1},":flag_re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!0},":re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!1},":flag_qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!0},":qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!1},":flag_py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!0},":py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!1},":flag_pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!0},":pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!1},":flag_pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!0},":pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!1},":flag_ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!0},":ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!1},":flag_pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!0},":pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!1},":flag_pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!0},":pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!1},":flag_pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!0},":pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!1},":flag_pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!0},":pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!1},":flag_pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!0},":pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!1},":flag_ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!0},":ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!1},":flag_pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!0},":pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!1},":flag_pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!0},":pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!1},":flag_pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!0},":pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!1},":flag_pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!0},":pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!1},":flag_om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!0},":om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!1},":flag_nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!0},":nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!1},":flag_nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!0},":nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!1},":flag_nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!0},":nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!1},":flag_np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!0},":np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!1},":flag_no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!0},":no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!1},":flag_nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!0},":nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!1},":flag_ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!0},":ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!1},":flag_ng:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!0},":nigeria:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!1},":flag_nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!0},":nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!1},":flag_ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!0},":ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!1},":flag_nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!0},":nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!1},":flag_na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!0},":na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!1},":flag_mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!0},":mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!1},":flag_my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!0},":my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!1},":flag_mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!0},":mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!1},":flag_mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!0},":mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!1},":flag_mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!0},":mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!1},":flag_mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!0},":mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!1},":flag_mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!0},":mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!1},":flag_ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!0},":ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!1},":flag_mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!0},":mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!1},":flag_mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!0},":mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!1},":flag_mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!0},":mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!1},":flag_mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!0},":mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!1},":flag_mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!0},":mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!1},":flag_mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!0},":mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!1},":flag_ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!0},":ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!1},":flag_mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!0},":mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!1},":flag_mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!0},":mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!1},":flag_mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!0},":mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!1},":flag_mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!0},":mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!1},":flag_me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!0},":me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!1},":flag_md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!0},":md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!1},":flag_mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!0},":mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!1},":flag_ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!0},":ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!1},":flag_ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!0},":ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!1},":flag_lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!0},":lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!1},":flag_lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!0},":lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!1},":flag_lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!0},":lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!1},":flag_ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!0},":ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!1},":flag_lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!0},":lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!1},":flag_lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!0},":lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!1},":flag_li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!0},":li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!1},":flag_lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!0},":lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!1},":flag_lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!0},":lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!1},":flag_la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!0},":la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!1},":flag_kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!0},":kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!1},":flag_ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!0},":ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!1},":flag_kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!0},":kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!1},":flag_kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!0},":kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!1},":flag_kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!0},":kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!1},":flag_kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!0},":kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!1},":flag_km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!0},":km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!1},":flag_ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!0},":ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!1},":flag_kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!0},":kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!1},":flag_kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!0},":kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!1},":flag_ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!0},":ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!1},":flag_jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!0},":jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!1},":flag_jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!0},":jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!1},":flag_jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!0},":jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!1},":flag_je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!0},":je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!1},":flag_it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!0},":it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!1},":flag_is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!0},":is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!1},":flag_ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!0},":ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!1},":flag_iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!0},":iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!1},":flag_io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!0},":io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!1},":flag_in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!0},":in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!1},":flag_im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!0},":im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!1},":flag_il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!0},":il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!1},":flag_ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!0},":ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!1},":flag_id:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!0},":indonesia:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!1},":flag_ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!0},":ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!1},":flag_hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!0},":hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!1},":flag_ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!0},":ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!1},":flag_hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!0},":hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!1},":flag_hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!0},":hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!1},":flag_hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",uc:"1f1ed-1f1f2",isCanonical:!0},":hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",uc:"1f1ed-1f1f2",isCanonical:!1},":flag_hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!0},":hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!1},":flag_gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!0},":gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!1},":flag_gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!0},":gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!1},":flag_gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!0},":gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!1},":flag_gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!0},":gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!1},":flag_gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!0},":gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!1},":flag_gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!0},":gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!1},":flag_gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!0},":gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!1},":flag_gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!0},":gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!1},":flag_gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!0},":gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!1},":flag_gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!0},":gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!1},":flag_gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!0},":gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!1},":flag_gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!0},":gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!1},":flag_gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!0},":gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!1},":flag_gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!0},":gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!1},":flag_gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!0},":gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!1},":flag_ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!0},":ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!1},":flag_gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!0},":gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!1},":flag_gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!0},":gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!1},":flag_ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!0},":ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!1},":flag_fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!0},":fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!1},":flag_fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!0},":fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!1},":flag_fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!0},":fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!1},":flag_fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!0},":fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!1},":flag_fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!0},":fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!1},":flag_fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!0},":fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!1},":flag_eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!0},":eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!1},":flag_et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!0},":et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!1},":flag_es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!0},":es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!1},":flag_er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!0},":er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!1},":flag_eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!0},":eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!1},":flag_eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!0},":eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!1},":flag_ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!0},":ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!1},":flag_ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!0},":ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!1},":flag_ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!0},":ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!1},":flag_dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!0},":dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!1},":flag_do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!0},":do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!1},":flag_dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!0},":dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!1},":flag_dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!0},":dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!1},":flag_dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!0},":dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!1},":flag_dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!0},":dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!1},":flag_de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!0},":de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!1},":flag_cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!0},":cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!1},":flag_cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!0},":cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!1},":flag_cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!0},":cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!1},":flag_cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!0},":cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!1},":flag_cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!0},":cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!1},":flag_cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!0},":cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!1},":flag_cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!0},":cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!1},":flag_cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!0},":cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!1},":flag_co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!0},":co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!1},":flag_cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!0},":cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!1},":flag_cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!0},":cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!1},":flag_cl:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!0},":chile:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!1},":flag_ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!0},":ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!1},":flag_ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!0},":ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!1},":flag_ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!0},":ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!1},":flag_cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!0},":cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!1},":flag_cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!0},":cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!1},":flag_cd:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!0},":congo:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!1},":flag_cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!0},":cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!1},":flag_ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!0},":ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!1},":flag_bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!0},":bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!1},":flag_by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!0},":by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!1},":flag_bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!0},":bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!1},":flag_bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",uc:"1f1e7-1f1fb",isCanonical:!0},":bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",
+uc:"1f1e7-1f1fb",isCanonical:!1},":flag_bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!0},":bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!1},":flag_bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!0},":bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!1},":flag_br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!0},":br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!1},":flag_bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!0},":bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!1},":flag_bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!0},":bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!1},":flag_bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!0},":bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!1},":flag_bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!0},":bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!1},":flag_bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!0},":bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!1},":flag_bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!0},":bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!1},":flag_bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!0},":bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!1},":flag_bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!0},":bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!1},":flag_bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!0},":bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!1},":flag_bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!0},":bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!1},":flag_be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!0},":be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!1},":flag_bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!0},":bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!1},":flag_bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!0},":bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!1},":flag_ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!0},":ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!1},":flag_az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!0},":az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!1},":flag_ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!0},":ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!1},":flag_aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!0},":aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!1},":flag_au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!0},":au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!1},":flag_at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!0},":at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!1},":flag_as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!0},":as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!1},":flag_ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!0},":ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!1},":flag_aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!0},":aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!1},":flag_ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!0},":ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!1},":flag_am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!0},":am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!1},":flag_al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!0},":al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!1},":flag_ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!0},":ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!1},":flag_ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!0},":ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!1},":flag_af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!0},":af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!1},":flag_ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!0},":ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!1},":flag_ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!0},":ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!1},":flag_ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!0},":ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!1},":mahjong:":{unicode:["1f004-fe0f","1f004"],fname:"1f004",uc:"1f004",isCanonical:!0},":parking:":{unicode:["1f17f-fe0f","1f17f"],fname:"1f17f",uc:"1f17f",isCanonical:!0},":sa:":{unicode:["1f202-fe0f","1f202"],fname:"1f202",uc:"1f202",isCanonical:!0},":u7121:":{unicode:["1f21a-fe0f","1f21a"],fname:"1f21a",uc:"1f21a",isCanonical:!0},":u6307:":{unicode:["1f22f-fe0f","1f22f"],fname:"1f22f",uc:"1f22f",isCanonical:!0},":u6708:":{unicode:["1f237-fe0f","1f237"],fname:"1f237",uc:"1f237",isCanonical:!0},":film_frames:":{unicode:["1f39e-fe0f","1f39e"],fname:"1f39e",uc:"1f39e",isCanonical:!0},":tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!0},":admission_tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!1},":lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!0},":weight_lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!1},":golfer:":{unicode:["1f3cc-fe0f","1f3cc"],fname:"1f3cc",uc:"1f3cc",isCanonical:!0},":motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!0},":racing_motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!1},":race_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!0},":racing_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!1},":military_medal:":{unicode:["1f396-fe0f","1f396"],fname:"1f396",uc:"1f396",isCanonical:!0},":reminder_ribbon:":{unicode:["1f397-fe0f","1f397"],fname:"1f397",uc:"1f397",isCanonical:!0},":hot_pepper:":{unicode:["1f336-fe0f","1f336"],fname:"1f336",uc:"1f336",isCanonical:!0},":cloud_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!0},":cloud_with_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!1},":cloud_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!0},":cloud_with_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!1},":cloud_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!0},":cloud_with_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!1},":cloud_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!0},":cloud_with_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!1},":fog:":{unicode:["1f32b-fe0f","1f32b"],fname:"1f32b",uc:"1f32b",isCanonical:!0},":wind_blowing_face:":{unicode:["1f32c-fe0f","1f32c"],fname:"1f32c",uc:"1f32c",isCanonical:!0},":chipmunk:":{unicode:["1f43f-fe0f","1f43f"],fname:"1f43f",uc:"1f43f",isCanonical:!0},":spider:":{unicode:["1f577-fe0f","1f577"],fname:"1f577",uc:"1f577",isCanonical:!0},":spider_web:":{unicode:["1f578-fe0f","1f578"],fname:"1f578",uc:"1f578",isCanonical:!0},":thermometer:":{unicode:["1f321-fe0f","1f321"],fname:"1f321",uc:"1f321",isCanonical:!0},":microphone2:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!0},":studio_microphone:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!1},":level_slider:":{unicode:["1f39a-fe0f","1f39a"],fname:"1f39a",uc:"1f39a",isCanonical:!0},":control_knobs:":{unicode:["1f39b-fe0f","1f39b"],fname:"1f39b",uc:"1f39b",isCanonical:!0},":flag_white:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!0},":waving_white_flag:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!1},":rosette:":{unicode:["1f3f5-fe0f","1f3f5"],fname:"1f3f5",uc:"1f3f5",isCanonical:!0},":label:":{unicode:["1f3f7-fe0f","1f3f7"],fname:"1f3f7",uc:"1f3f7",isCanonical:!0},":projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!0},":film_projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!1},":om_symbol:":{unicode:["1f549-fe0f","1f549"],fname:"1f549",uc:"1f549",isCanonical:!0},":dove:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!0},":dove_of_peace:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!1},":candle:":{unicode:["1f56f-fe0f","1f56f"],fname:"1f56f",uc:"1f56f",isCanonical:!0},":clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!0},":mantlepiece_clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!1},":hole:":{unicode:["1f573-fe0f","1f573"],fname:"1f573",uc:"1f573",isCanonical:!0},":dark_sunglasses:":{unicode:["1f576-fe0f","1f576"],fname:"1f576",uc:"1f576",isCanonical:!0},":joystick:":{unicode:["1f579-fe0f","1f579"],fname:"1f579",uc:"1f579",isCanonical:!0},":paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!0},":linked_paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!1},":pen_ballpoint:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!0},":lower_left_ballpoint_pen:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!1},":pen_fountain:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!0},":lower_left_fountain_pen:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!1},":paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!0},":lower_left_paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!1},":crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!0},":lower_left_crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!1},":desktop:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!0},":desktop_computer:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!1},":printer:":{unicode:["1f5a8-fe0f","1f5a8"],fname:"1f5a8",uc:"1f5a8",isCanonical:!0},":trackball:":{unicode:["1f5b2-fe0f","1f5b2"],fname:"1f5b2",uc:"1f5b2",isCanonical:!0},":frame_photo:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!0},":frame_with_picture:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!1},":dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!0},":card_index_dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!1},":card_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!0},":card_file_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!1},":file_cabinet:":{unicode:["1f5c4-fe0f","1f5c4"],fname:"1f5c4",uc:"1f5c4",isCanonical:!0},":wastebasket:":{unicode:["1f5d1-fe0f","1f5d1"],fname:"1f5d1",uc:"1f5d1",isCanonical:!0},":notepad_spiral:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!0},":spiral_note_pad:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!1},":calendar_spiral:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!0},":spiral_calendar_pad:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!1},":compression:":{unicode:["1f5dc-fe0f","1f5dc"],fname:"1f5dc",uc:"1f5dc",isCanonical:!0},":key2:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!0},":old_key:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!1},":newspaper2:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!0},":rolled_up_newspaper:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!1},":dagger:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!0},":dagger_knife:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!1},":speaking_head:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!0},":speaking_head_in_silhouette:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!1},":speech_left:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!0},":left_speech_bubble:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!1},":anger_right:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!0},":right_anger_bubble:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!1},":ballot_box:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!0},":ballot_box_with_ballot:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!1},":map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!0},":world_map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!1},":tools:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!0},":hammer_and_wrench:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!1},":shield:":{unicode:["1f6e1-fe0f","1f6e1"],fname:"1f6e1",uc:"1f6e1",isCanonical:!0},":oil:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!0},":oil_drum:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!1},":satellite_orbital:":{unicode:["1f6f0-fe0f","1f6f0"],fname:"1f6f0",uc:"1f6f0",isCanonical:!0},":fork_knife_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!0},":fork_and_knife_with_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!1},":eye:":{unicode:["1f441-fe0f","1f441"],fname:"1f441",uc:"1f441",isCanonical:!0},":levitate:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!0},":man_in_business_suit_levitating:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!1},":spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!0},":sleuth_or_spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!1},":hand_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!0},":raised_hand_with_fingers_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!1},":mountain_snow:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!0},":snow_capped_mountain:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!1},":camping:":{unicode:["1f3d5-fe0f","1f3d5"],fname:"1f3d5",uc:"1f3d5",isCanonical:!0},":beach:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!0},":beach_with_umbrella:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!1},":construction_site:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!0},":building_construction:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!1},":homes:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!0},":house_buildings:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!1},":cityscape:":{unicode:["1f3d9-fe0f","1f3d9"],fname:"1f3d9",uc:"1f3d9",isCanonical:!0},":house_abandoned:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!0},":derelict_house_building:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!1},":classical_building:":{unicode:["1f3db-fe0f","1f3db"],fname:"1f3db",uc:"1f3db",isCanonical:!0},":desert:":{unicode:["1f3dc-fe0f","1f3dc"],fname:"1f3dc",uc:"1f3dc",isCanonical:!0},":island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!0},":desert_island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!1},":park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!0},":national_park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!1},":stadium:":{unicode:["1f3df-fe0f","1f3df"],fname:"1f3df",uc:"1f3df",isCanonical:!0},":couch:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!0},":couch_and_lamp:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!1},":shopping_bags:":{unicode:["1f6cd-fe0f","1f6cd"],fname:"1f6cd",uc:"1f6cd",isCanonical:!0},":bellhop:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!0},":bellhop_bell:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!1},":bed:":{unicode:["1f6cf-fe0f","1f6cf"],fname:"1f6cf",uc:"1f6cf",isCanonical:!0},":motorway:":{unicode:["1f6e3-fe0f","1f6e3"],fname:"1f6e3",uc:"1f6e3",isCanonical:!0},":railway_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!0},":railroad_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!1},":motorboat:":{unicode:["1f6e5-fe0f","1f6e5"],fname:"1f6e5",uc:"1f6e5",isCanonical:!0},":airplane_small:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!0},":small_airplane:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!1},":cruise_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!0},":passenger_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!1},":white_sun_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!0},":white_sun_with_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!1},":white_sun_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!0},":white_sun_behind_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!1},":white_sun_rain_cloud:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!0},":white_sun_behind_cloud_with_rain:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!1},":mouse_three_button:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!0},":three_button_mouse:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!1},":point_up_tone1:":{unicode:["261d-1f3fb"],fname:"261d-1f3fb",uc:"261d-1f3fb",isCanonical:!0},":point_up_tone2:":{unicode:["261d-1f3fc"],fname:"261d-1f3fc",uc:"261d-1f3fc",isCanonical:!0},":point_up_tone3:":{unicode:["261d-1f3fd"],fname:"261d-1f3fd",uc:"261d-1f3fd",isCanonical:!0},":point_up_tone4:":{unicode:["261d-1f3fe"],fname:"261d-1f3fe",uc:"261d-1f3fe",isCanonical:!0},":point_up_tone5:":{unicode:["261d-1f3ff"],fname:"261d-1f3ff",uc:"261d-1f3ff",isCanonical:!0},":v_tone1:":{unicode:["270c-1f3fb"],fname:"270c-1f3fb",uc:"270c-1f3fb",isCanonical:!0},":v_tone2:":{unicode:["270c-1f3fc"],fname:"270c-1f3fc",uc:"270c-1f3fc",isCanonical:!0},":v_tone3:":{unicode:["270c-1f3fd"],fname:"270c-1f3fd",uc:"270c-1f3fd",isCanonical:!0},":v_tone4:":{unicode:["270c-1f3fe"],fname:"270c-1f3fe",uc:"270c-1f3fe",isCanonical:!0},":v_tone5:":{unicode:["270c-1f3ff"],fname:"270c-1f3ff",uc:"270c-1f3ff",isCanonical:!0},":fist_tone1:":{unicode:["270a-1f3fb"],fname:"270a-1f3fb",uc:"270a-1f3fb",isCanonical:!0},":fist_tone2:":{unicode:["270a-1f3fc"],fname:"270a-1f3fc",uc:"270a-1f3fc",isCanonical:!0},":fist_tone3:":{unicode:["270a-1f3fd"],fname:"270a-1f3fd",uc:"270a-1f3fd",isCanonical:!0},":fist_tone4:":{unicode:["270a-1f3fe"],fname:"270a-1f3fe",uc:"270a-1f3fe",isCanonical:!0},":fist_tone5:":{unicode:["270a-1f3ff"],fname:"270a-1f3ff",uc:"270a-1f3ff",isCanonical:!0},":raised_hand_tone1:":{unicode:["270b-1f3fb"],fname:"270b-1f3fb",uc:"270b-1f3fb",isCanonical:!0},":raised_hand_tone2:":{unicode:["270b-1f3fc"],fname:"270b-1f3fc",uc:"270b-1f3fc",isCanonical:!0},":raised_hand_tone3:":{unicode:["270b-1f3fd"],fname:"270b-1f3fd",uc:"270b-1f3fd",isCanonical:!0},":raised_hand_tone4:":{unicode:["270b-1f3fe"],fname:"270b-1f3fe",uc:"270b-1f3fe",isCanonical:!0},":raised_hand_tone5:":{unicode:["270b-1f3ff"],fname:"270b-1f3ff",uc:"270b-1f3ff",isCanonical:!0},":writing_hand_tone1:":{unicode:["270d-1f3fb"],fname:"270d-1f3fb",uc:"270d-1f3fb",isCanonical:!0},":writing_hand_tone2:":{unicode:["270d-1f3fc"],fname:"270d-1f3fc",uc:"270d-1f3fc",isCanonical:!0},":writing_hand_tone3:":{unicode:["270d-1f3fd"],fname:"270d-1f3fd",uc:"270d-1f3fd",isCanonical:!0},":writing_hand_tone4:":{unicode:["270d-1f3fe"],fname:"270d-1f3fe",uc:"270d-1f3fe",isCanonical:!0},":writing_hand_tone5:":{unicode:["270d-1f3ff"],fname:"270d-1f3ff",uc:"270d-1f3ff",isCanonical:!0},":basketball_player_tone1:":{unicode:["26f9-1f3fb"],fname:"26f9-1f3fb",uc:"26f9-1f3fb",isCanonical:!0},":person_with_ball_tone1:":{unicode:["26f9-1f3fb"],fname:"26f9-1f3fb",uc:"26f9-1f3fb",isCanonical:!1},":basketball_player_tone2:":{unicode:["26f9-1f3fc"],fname:"26f9-1f3fc",uc:"26f9-1f3fc",isCanonical:!0},":person_with_ball_tone2:":{unicode:["26f9-1f3fc"],fname:"26f9-1f3fc",uc:"26f9-1f3fc",isCanonical:!1},":basketball_player_tone3:":{unicode:["26f9-1f3fd"],fname:"26f9-1f3fd",uc:"26f9-1f3fd",isCanonical:!0},":person_with_ball_tone3:":{unicode:["26f9-1f3fd"],fname:"26f9-1f3fd",uc:"26f9-1f3fd",isCanonical:!1},":basketball_player_tone4:":{unicode:["26f9-1f3fe"],fname:"26f9-1f3fe",uc:"26f9-1f3fe",isCanonical:!0},":person_with_ball_tone4:":{unicode:["26f9-1f3fe"],fname:"26f9-1f3fe",uc:"26f9-1f3fe",isCanonical:!1},":basketball_player_tone5:":{unicode:["26f9-1f3ff"],fname:"26f9-1f3ff",uc:"26f9-1f3ff",isCanonical:!0},":person_with_ball_tone5:":{unicode:["26f9-1f3ff"],fname:"26f9-1f3ff",uc:"26f9-1f3ff",isCanonical:!1},":copyright:":{unicode:["00a9-fe0f","00a9"],fname:"00a9",uc:"00a9",isCanonical:!0},":registered:":{unicode:["00ae-fe0f","00ae"],fname:"00ae",uc:"00ae",isCanonical:!0},":bangbang:":{unicode:["203c-fe0f","203c"],fname:"203c",uc:"203c",isCanonical:!0},":interrobang:":{unicode:["2049-fe0f","2049"],fname:"2049",uc:"2049",isCanonical:!0},":tm:":{unicode:["2122-fe0f","2122"],fname:"2122",uc:"2122",isCanonical:!0},":information_source:":{unicode:["2139-fe0f","2139"],fname:"2139",uc:"2139",isCanonical:!0},":left_right_arrow:":{unicode:["2194-fe0f","2194"],fname:"2194",uc:"2194",isCanonical:!0},":arrow_up_down:":{unicode:["2195-fe0f","2195"],fname:"2195",uc:"2195",isCanonical:!0},":arrow_upper_left:":{unicode:["2196-fe0f","2196"],fname:"2196",uc:"2196",isCanonical:!0},":arrow_upper_right:":{unicode:["2197-fe0f","2197"],fname:"2197",uc:"2197",isCanonical:!0},":arrow_lower_right:":{unicode:["2198-fe0f","2198"],fname:"2198",uc:"2198",isCanonical:!0},":arrow_lower_left:":{unicode:["2199-fe0f","2199"],fname:"2199",uc:"2199",isCanonical:!0},":leftwards_arrow_with_hook:":{unicode:["21a9-fe0f","21a9"],fname:"21a9",uc:"21a9",isCanonical:!0},":arrow_right_hook:":{unicode:["21aa-fe0f","21aa"],fname:"21aa",uc:"21aa",isCanonical:!0},":watch:":{unicode:["231a-fe0f","231a"],fname:"231a",uc:"231a",isCanonical:!0},":hourglass:":{unicode:["231b-fe0f","231b"],fname:"231b",uc:"231b",isCanonical:!0},":m:":{unicode:["24c2-fe0f","24c2"],fname:"24c2",uc:"24c2",isCanonical:!0},":black_small_square:":{unicode:["25aa-fe0f","25aa"],fname:"25aa",uc:"25aa",isCanonical:!0},":white_small_square:":{unicode:["25ab-fe0f","25ab"],fname:"25ab",uc:"25ab",isCanonical:!0},":arrow_forward:":{unicode:["25b6-fe0f","25b6"],fname:"25b6",uc:"25b6",isCanonical:!0},":arrow_backward:":{unicode:["25c0-fe0f","25c0"],fname:"25c0",uc:"25c0",isCanonical:!0},":white_medium_square:":{unicode:["25fb-fe0f","25fb"],fname:"25fb",uc:"25fb",isCanonical:!0},":black_medium_square:":{unicode:["25fc-fe0f","25fc"],fname:"25fc",uc:"25fc",isCanonical:!0},":white_medium_small_square:":{unicode:["25fd-fe0f","25fd"],fname:"25fd",uc:"25fd",isCanonical:!0},":black_medium_small_square:":{unicode:["25fe-fe0f","25fe"],fname:"25fe",uc:"25fe",isCanonical:!0},":sunny:":{unicode:["2600-fe0f","2600"],fname:"2600",uc:"2600",isCanonical:!0},":cloud:":{unicode:["2601-fe0f","2601"],fname:"2601",uc:"2601",isCanonical:!0},":telephone:":{unicode:["260e-fe0f","260e"],fname:"260e",uc:"260e",isCanonical:!0},":ballot_box_with_check:":{unicode:["2611-fe0f","2611"],fname:"2611",uc:"2611",isCanonical:!0},":umbrella:":{unicode:["2614-fe0f","2614"],fname:"2614",uc:"2614",isCanonical:!0},":coffee:":{unicode:["2615-fe0f","2615"],fname:"2615",uc:"2615",isCanonical:!0},":point_up:":{unicode:["261d-fe0f","261d"],fname:"261d",uc:"261d",isCanonical:!0},":relaxed:":{unicode:["263a-fe0f","263a"],fname:"263a",uc:"263a",isCanonical:!0},":aries:":{unicode:["2648-fe0f","2648"],fname:"2648",uc:"2648",isCanonical:!0},":taurus:":{unicode:["2649-fe0f","2649"],fname:"2649",uc:"2649",isCanonical:!0},":gemini:":{unicode:["264a-fe0f","264a"],fname:"264a",uc:"264a",isCanonical:!0},":cancer:":{unicode:["264b-fe0f","264b"],fname:"264b",uc:"264b",isCanonical:!0},":leo:":{unicode:["264c-fe0f","264c"],fname:"264c",uc:"264c",isCanonical:!0},":virgo:":{unicode:["264d-fe0f","264d"],fname:"264d",uc:"264d",isCanonical:!0},":libra:":{unicode:["264e-fe0f","264e"],fname:"264e",uc:"264e",isCanonical:!0},":scorpius:":{unicode:["264f-fe0f","264f"],fname:"264f",uc:"264f",isCanonical:!0},":sagittarius:":{unicode:["2650-fe0f","2650"],fname:"2650",uc:"2650",isCanonical:!0},":capricorn:":{unicode:["2651-fe0f","2651"],fname:"2651",uc:"2651",isCanonical:!0},":aquarius:":{unicode:["2652-fe0f","2652"],fname:"2652",uc:"2652",isCanonical:!0},":pisces:":{unicode:["2653-fe0f","2653"],fname:"2653",uc:"2653",isCanonical:!0},":spades:":{unicode:["2660-fe0f","2660"],fname:"2660",uc:"2660",isCanonical:!0},":clubs:":{unicode:["2663-fe0f","2663"],fname:"2663",uc:"2663",isCanonical:!0},":hearts:":{unicode:["2665-fe0f","2665"],fname:"2665",uc:"2665",isCanonical:!0},":diamonds:":{unicode:["2666-fe0f","2666"],fname:"2666",uc:"2666",isCanonical:!0},":hotsprings:":{unicode:["2668-fe0f","2668"],fname:"2668",uc:"2668",isCanonical:!0},":recycle:":{unicode:["267b-fe0f","267b"],fname:"267b",uc:"267b",isCanonical:!0},":wheelchair:":{unicode:["267f-fe0f","267f"],fname:"267f",uc:"267f",isCanonical:!0},":anchor:":{unicode:["2693-fe0f","2693"],fname:"2693",uc:"2693",isCanonical:!0},":warning:":{unicode:["26a0-fe0f","26a0"],fname:"26a0",uc:"26a0",isCanonical:!0},":zap:":{unicode:["26a1-fe0f","26a1"],fname:"26a1",uc:"26a1",isCanonical:!0},":white_circle:":{unicode:["26aa-fe0f","26aa"],fname:"26aa",uc:"26aa",isCanonical:!0},":black_circle:":{unicode:["26ab-fe0f","26ab"],fname:"26ab",uc:"26ab",isCanonical:!0},":soccer:":{unicode:["26bd-fe0f","26bd"],fname:"26bd",uc:"26bd",isCanonical:!0},":baseball:":{unicode:["26be-fe0f","26be"],fname:"26be",uc:"26be",isCanonical:!0},":snowman:":{unicode:["26c4-fe0f","26c4"],fname:"26c4",uc:"26c4",isCanonical:!0},":partly_sunny:":{unicode:["26c5-fe0f","26c5"],fname:"26c5",uc:"26c5",isCanonical:!0},":no_entry:":{unicode:["26d4-fe0f","26d4"],fname:"26d4",uc:"26d4",isCanonical:!0},":church:":{unicode:["26ea-fe0f","26ea"],fname:"26ea",uc:"26ea",isCanonical:!0},":fountain:":{unicode:["26f2-fe0f","26f2"],fname:"26f2",uc:"26f2",isCanonical:!0},":golf:":{unicode:["26f3-fe0f","26f3"],fname:"26f3",uc:"26f3",isCanonical:!0},":sailboat:":{unicode:["26f5-fe0f","26f5"],fname:"26f5",uc:"26f5",isCanonical:!0},":tent:":{unicode:["26fa-fe0f","26fa"],fname:"26fa",uc:"26fa",isCanonical:!0},":fuelpump:":{unicode:["26fd-fe0f","26fd"],fname:"26fd",uc:"26fd",isCanonical:!0},":scissors:":{unicode:["2702-fe0f","2702"],fname:"2702",uc:"2702",isCanonical:!0},":airplane:":{unicode:["2708-fe0f","2708"],fname:"2708",uc:"2708",isCanonical:!0},":envelope:":{unicode:["2709-fe0f","2709"],fname:"2709",uc:"2709",isCanonical:!0},":v:":{unicode:["270c-fe0f","270c"],fname:"270c",uc:"270c",isCanonical:!0},":pencil2:":{unicode:["270f-fe0f","270f"],fname:"270f",uc:"270f",isCanonical:!0},":black_nib:":{unicode:["2712-fe0f","2712"],fname:"2712",uc:"2712",isCanonical:!0},":heavy_check_mark:":{unicode:["2714-fe0f","2714"],fname:"2714",uc:"2714",isCanonical:!0},":heavy_multiplication_x:":{unicode:["2716-fe0f","2716"],fname:"2716",uc:"2716",isCanonical:!0},":eight_spoked_asterisk:":{unicode:["2733-fe0f","2733"],fname:"2733",uc:"2733",isCanonical:!0},":eight_pointed_black_star:":{unicode:["2734-fe0f","2734"],fname:"2734",uc:"2734",isCanonical:!0},":snowflake:":{unicode:["2744-fe0f","2744"],fname:"2744",uc:"2744",isCanonical:!0},":sparkle:":{unicode:["2747-fe0f","2747"],fname:"2747",uc:"2747",isCanonical:!0},":exclamation:":{unicode:["2757-fe0f","2757"],fname:"2757",uc:"2757",isCanonical:!0},":heart:":{unicode:["2764-fe0f","2764"],fname:"2764",uc:"2764",isCanonical:!0},":arrow_right:":{unicode:["27a1-fe0f","27a1"],fname:"27a1",uc:"27a1",isCanonical:!0},":arrow_heading_up:":{unicode:["2934-fe0f","2934"],fname:"2934",uc:"2934",isCanonical:!0},":arrow_heading_down:":{unicode:["2935-fe0f","2935"],fname:"2935",uc:"2935",isCanonical:!0},":arrow_left:":{unicode:["2b05-fe0f","2b05"],fname:"2b05",uc:"2b05",isCanonical:!0},":arrow_up:":{unicode:["2b06-fe0f","2b06"],fname:"2b06",uc:"2b06",isCanonical:!0},":arrow_down:":{unicode:["2b07-fe0f","2b07"],fname:"2b07",uc:"2b07",isCanonical:!0},":black_large_square:":{unicode:["2b1b-fe0f","2b1b"],fname:"2b1b",uc:"2b1b",isCanonical:!0},":white_large_square:":{unicode:["2b1c-fe0f","2b1c"],fname:"2b1c",uc:"2b1c",isCanonical:!0},":star:":{unicode:["2b50-fe0f","2b50"],fname:"2b50",uc:"2b50",isCanonical:!0},":o:":{unicode:["2b55-fe0f","2b55"],fname:"2b55",uc:"2b55",isCanonical:!0},":wavy_dash:":{unicode:["3030-fe0f","3030"],fname:"3030",uc:"3030",isCanonical:!0},":part_alternation_mark:":{unicode:["303d-fe0f","303d"],fname:"303d",uc:"303d",isCanonical:!0},":congratulations:":{unicode:["3297-fe0f","3297"],fname:"3297",uc:"3297",isCanonical:!0},":secret:":{unicode:["3299-fe0f","3299"],fname:"3299",uc:"3299",isCanonical:!0},":cross:":{unicode:["271d-fe0f","271d"],fname:"271d",uc:"271d",isCanonical:!0},":latin_cross:":{unicode:["271d-fe0f","271d"],fname:"271d",uc:"271d",isCanonical:!1},":keyboard:":{unicode:["2328-fe0f","2328"],fname:"2328",uc:"2328",isCanonical:!0},":writing_hand:":{unicode:["270d-fe0f","270d"],fname:"270d",uc:"270d",isCanonical:!0},":eject:":{unicode:["23cf-fe0f","23cf"],fname:"23cf",uc:"23cf",isCanonical:!0},":eject_symbol:":{unicode:["23cf-fe0f","23cf"],fname:"23cf",uc:"23cf",isCanonical:!1},":track_next:":{unicode:["23ed-fe0f","23ed"],fname:"23ed",uc:"23ed",isCanonical:!0},":next_track:":{unicode:["23ed-fe0f","23ed"],fname:"23ed",uc:"23ed",isCanonical:!1},":track_previous:":{unicode:["23ee-fe0f","23ee"],fname:"23ee",uc:"23ee",isCanonical:!0},":previous_track:":{unicode:["23ee-fe0f","23ee"],fname:"23ee",uc:"23ee",isCanonical:!1},":play_pause:":{unicode:["23ef-fe0f","23ef"],fname:"23ef",uc:"23ef",isCanonical:!0
+},":stopwatch:":{unicode:["23f1-fe0f","23f1"],fname:"23f1",uc:"23f1",isCanonical:!0},":timer:":{unicode:["23f2-fe0f","23f2"],fname:"23f2",uc:"23f2",isCanonical:!0},":timer_clock:":{unicode:["23f2-fe0f","23f2"],fname:"23f2",uc:"23f2",isCanonical:!1},":pause_button:":{unicode:["23f8-fe0f","23f8"],fname:"23f8",uc:"23f8",isCanonical:!0},":double_vertical_bar:":{unicode:["23f8-fe0f","23f8"],fname:"23f8",uc:"23f8",isCanonical:!1},":stop_button:":{unicode:["23f9-fe0f","23f9"],fname:"23f9",uc:"23f9",isCanonical:!0},":record_button:":{unicode:["23fa-fe0f","23fa"],fname:"23fa",uc:"23fa",isCanonical:!0},":umbrella2:":{unicode:["2602-fe0f","2602"],fname:"2602",uc:"2602",isCanonical:!0},":snowman2:":{unicode:["2603-fe0f","2603"],fname:"2603",uc:"2603",isCanonical:!0},":comet:":{unicode:["2604-fe0f","2604"],fname:"2604",uc:"2604",isCanonical:!0},":shamrock:":{unicode:["2618-fe0f","2618"],fname:"2618",uc:"2618",isCanonical:!0},":skull_crossbones:":{unicode:["2620-fe0f","2620"],fname:"2620",uc:"2620",isCanonical:!0},":skull_and_crossbones:":{unicode:["2620-fe0f","2620"],fname:"2620",uc:"2620",isCanonical:!1},":radioactive:":{unicode:["2622-fe0f","2622"],fname:"2622",uc:"2622",isCanonical:!0},":radioactive_sign:":{unicode:["2622-fe0f","2622"],fname:"2622",uc:"2622",isCanonical:!1},":biohazard:":{unicode:["2623-fe0f","2623"],fname:"2623",uc:"2623",isCanonical:!0},":biohazard_sign:":{unicode:["2623-fe0f","2623"],fname:"2623",uc:"2623",isCanonical:!1},":orthodox_cross:":{unicode:["2626-fe0f","2626"],fname:"2626",uc:"2626",isCanonical:!0},":star_and_crescent:":{unicode:["262a-fe0f","262a"],fname:"262a",uc:"262a",isCanonical:!0},":peace:":{unicode:["262e-fe0f","262e"],fname:"262e",uc:"262e",isCanonical:!0},":peace_symbol:":{unicode:["262e-fe0f","262e"],fname:"262e",uc:"262e",isCanonical:!1},":yin_yang:":{unicode:["262f-fe0f","262f"],fname:"262f",uc:"262f",isCanonical:!0},":wheel_of_dharma:":{unicode:["2638-fe0f","2638"],fname:"2638",uc:"2638",isCanonical:!0},":frowning2:":{unicode:["2639-fe0f","2639"],fname:"2639",uc:"2639",isCanonical:!0},":white_frowning_face:":{unicode:["2639-fe0f","2639"],fname:"2639",uc:"2639",isCanonical:!1},":hammer_pick:":{unicode:["2692-fe0f","2692"],fname:"2692",uc:"2692",isCanonical:!0},":hammer_and_pick:":{unicode:["2692-fe0f","2692"],fname:"2692",uc:"2692",isCanonical:!1},":crossed_swords:":{unicode:["2694-fe0f","2694"],fname:"2694",uc:"2694",isCanonical:!0},":scales:":{unicode:["2696-fe0f","2696"],fname:"2696",uc:"2696",isCanonical:!0},":alembic:":{unicode:["2697-fe0f","2697"],fname:"2697",uc:"2697",isCanonical:!0},":gear:":{unicode:["2699-fe0f","2699"],fname:"2699",uc:"2699",isCanonical:!0},":atom:":{unicode:["269b-fe0f","269b"],fname:"269b",uc:"269b",isCanonical:!0},":atom_symbol:":{unicode:["269b-fe0f","269b"],fname:"269b",uc:"269b",isCanonical:!1},":fleur-de-lis:":{unicode:["269c-fe0f","269c"],fname:"269c",uc:"269c",isCanonical:!0},":coffin:":{unicode:["26b0-fe0f","26b0"],fname:"26b0",uc:"26b0",isCanonical:!0},":urn:":{unicode:["26b1-fe0f","26b1"],fname:"26b1",uc:"26b1",isCanonical:!0},":funeral_urn:":{unicode:["26b1-fe0f","26b1"],fname:"26b1",uc:"26b1",isCanonical:!1},":thunder_cloud_rain:":{unicode:["26c8-fe0f","26c8"],fname:"26c8",uc:"26c8",isCanonical:!0},":thunder_cloud_and_rain:":{unicode:["26c8-fe0f","26c8"],fname:"26c8",uc:"26c8",isCanonical:!1},":pick:":{unicode:["26cf-fe0f","26cf"],fname:"26cf",uc:"26cf",isCanonical:!0},":helmet_with_cross:":{unicode:["26d1-fe0f","26d1"],fname:"26d1",uc:"26d1",isCanonical:!0},":helmet_with_white_cross:":{unicode:["26d1-fe0f","26d1"],fname:"26d1",uc:"26d1",isCanonical:!1},":chains:":{unicode:["26d3-fe0f","26d3"],fname:"26d3",uc:"26d3",isCanonical:!0},":shinto_shrine:":{unicode:["26e9-fe0f","26e9"],fname:"26e9",uc:"26e9",isCanonical:!0},":mountain:":{unicode:["26f0-fe0f","26f0"],fname:"26f0",uc:"26f0",isCanonical:!0},":beach_umbrella:":{unicode:["26f1-fe0f","26f1"],fname:"26f1",uc:"26f1",isCanonical:!0},":umbrella_on_ground:":{unicode:["26f1-fe0f","26f1"],fname:"26f1",uc:"26f1",isCanonical:!1},":ferry:":{unicode:["26f4-fe0f","26f4"],fname:"26f4",uc:"26f4",isCanonical:!0},":skier:":{unicode:["26f7-fe0f","26f7"],fname:"26f7",uc:"26f7",isCanonical:!0},":ice_skate:":{unicode:["26f8-fe0f","26f8"],fname:"26f8",uc:"26f8",isCanonical:!0},":basketball_player:":{unicode:["26f9-fe0f","26f9"],fname:"26f9",uc:"26f9",isCanonical:!0},":person_with_ball:":{unicode:["26f9-fe0f","26f9"],fname:"26f9",uc:"26f9",isCanonical:!1},":star_of_david:":{unicode:["2721-fe0f","2721"],fname:"2721",uc:"2721",isCanonical:!0},":heart_exclamation:":{unicode:["2763-fe0f","2763"],fname:"2763",uc:"2763",isCanonical:!0},":heavy_heart_exclamation_mark_ornament:":{unicode:["2763-fe0f","2763"],fname:"2763",uc:"2763",isCanonical:!1},":third_place:":{unicode:["1f949"],fname:"1f949",uc:"1f949",isCanonical:!0},":third_place_medal:":{unicode:["1f949"],fname:"1f949",uc:"1f949",isCanonical:!1},":second_place:":{unicode:["1f948"],fname:"1f948",uc:"1f948",isCanonical:!0},":second_place_medal:":{unicode:["1f948"],fname:"1f948",uc:"1f948",isCanonical:!1},":first_place:":{unicode:["1f947"],fname:"1f947",uc:"1f947",isCanonical:!0},":first_place_medal:":{unicode:["1f947"],fname:"1f947",uc:"1f947",isCanonical:!1},":fencer:":{unicode:["1f93a"],fname:"1f93a",uc:"1f93a",isCanonical:!0},":fencing:":{unicode:["1f93a"],fname:"1f93a",uc:"1f93a",isCanonical:!1},":goal:":{unicode:["1f945"],fname:"1f945",uc:"1f945",isCanonical:!0},":goal_net:":{unicode:["1f945"],fname:"1f945",uc:"1f945",isCanonical:!1},":handball:":{unicode:["1f93e"],fname:"1f93e",uc:"1f93e",isCanonical:!0},":regional_indicator_z:":{unicode:["1f1ff"],fname:"1f1ff",uc:"1f1ff",isCanonical:!0},":water_polo:":{unicode:["1f93d"],fname:"1f93d",uc:"1f93d",isCanonical:!0},":martial_arts_uniform:":{unicode:["1f94b"],fname:"1f94b",uc:"1f94b",isCanonical:!0},":karate_uniform:":{unicode:["1f94b"],fname:"1f94b",uc:"1f94b",isCanonical:!1},":boxing_glove:":{unicode:["1f94a"],fname:"1f94a",uc:"1f94a",isCanonical:!0},":boxing_gloves:":{unicode:["1f94a"],fname:"1f94a",uc:"1f94a",isCanonical:!1},":wrestlers:":{unicode:["1f93c"],fname:"1f93c",uc:"1f93c",isCanonical:!0},":wrestling:":{unicode:["1f93c"],fname:"1f93c",uc:"1f93c",isCanonical:!1},":juggling:":{unicode:["1f939"],fname:"1f939",uc:"1f939",isCanonical:!0},":juggler:":{unicode:["1f939"],fname:"1f939",uc:"1f939",isCanonical:!1},":cartwheel:":{unicode:["1f938"],fname:"1f938",uc:"1f938",isCanonical:!0},":person_doing_cartwheel:":{unicode:["1f938"],fname:"1f938",uc:"1f938",isCanonical:!1},":canoe:":{unicode:["1f6f6"],fname:"1f6f6",uc:"1f6f6",isCanonical:!0},":kayak:":{unicode:["1f6f6"],fname:"1f6f6",uc:"1f6f6",isCanonical:!1},":motor_scooter:":{unicode:["1f6f5"],fname:"1f6f5",uc:"1f6f5",isCanonical:!0},":motorbike:":{unicode:["1f6f5"],fname:"1f6f5",uc:"1f6f5",isCanonical:!1},":scooter:":{unicode:["1f6f4"],fname:"1f6f4",uc:"1f6f4",isCanonical:!0},":shopping_cart:":{unicode:["1f6d2"],fname:"1f6d2",uc:"1f6d2",isCanonical:!0},":shopping_trolley:":{unicode:["1f6d2"],fname:"1f6d2",uc:"1f6d2",isCanonical:!1},":black_joker:":{unicode:["1f0cf"],fname:"1f0cf",uc:"1f0cf",isCanonical:!0},":a:":{unicode:["1f170"],fname:"1f170",uc:"1f170",isCanonical:!0},":b:":{unicode:["1f171"],fname:"1f171",uc:"1f171",isCanonical:!0},":o2:":{unicode:["1f17e"],fname:"1f17e",uc:"1f17e",isCanonical:!0},":octagonal_sign:":{unicode:["1f6d1"],fname:"1f6d1",uc:"1f6d1",isCanonical:!0},":stop_sign:":{unicode:["1f6d1"],fname:"1f6d1",uc:"1f6d1",isCanonical:!1},":ab:":{unicode:["1f18e"],fname:"1f18e",uc:"1f18e",isCanonical:!0},":cl:":{unicode:["1f191"],fname:"1f191",uc:"1f191",isCanonical:!0},":regional_indicator_y:":{unicode:["1f1fe"],fname:"1f1fe",uc:"1f1fe",isCanonical:!0},":cool:":{unicode:["1f192"],fname:"1f192",uc:"1f192",isCanonical:!0},":free:":{unicode:["1f193"],fname:"1f193",uc:"1f193",isCanonical:!0},":id:":{unicode:["1f194"],fname:"1f194",uc:"1f194",isCanonical:!0},":new:":{unicode:["1f195"],fname:"1f195",uc:"1f195",isCanonical:!0},":ng:":{unicode:["1f196"],fname:"1f196",uc:"1f196",isCanonical:!0},":ok:":{unicode:["1f197"],fname:"1f197",uc:"1f197",isCanonical:!0},":sos:":{unicode:["1f198"],fname:"1f198",uc:"1f198",isCanonical:!0},":spoon:":{unicode:["1f944"],fname:"1f944",uc:"1f944",isCanonical:!0},":up:":{unicode:["1f199"],fname:"1f199",uc:"1f199",isCanonical:!0},":vs:":{unicode:["1f19a"],fname:"1f19a",uc:"1f19a",isCanonical:!0},":champagne_glass:":{unicode:["1f942"],fname:"1f942",uc:"1f942",isCanonical:!0},":clinking_glass:":{unicode:["1f942"],fname:"1f942",uc:"1f942",isCanonical:!1},":tumbler_glass:":{unicode:["1f943"],fname:"1f943",uc:"1f943",isCanonical:!0},":whisky:":{unicode:["1f943"],fname:"1f943",uc:"1f943",isCanonical:!1},":koko:":{unicode:["1f201"],fname:"1f201",uc:"1f201",isCanonical:!0},":stuffed_flatbread:":{unicode:["1f959"],fname:"1f959",uc:"1f959",isCanonical:!0},":stuffed_pita:":{unicode:["1f959"],fname:"1f959",uc:"1f959",isCanonical:!1},":u7981:":{unicode:["1f232"],fname:"1f232",uc:"1f232",isCanonical:!0},":u7a7a:":{unicode:["1f233"],fname:"1f233",uc:"1f233",isCanonical:!0},":u5408:":{unicode:["1f234"],fname:"1f234",uc:"1f234",isCanonical:!0},":u6e80:":{unicode:["1f235"],fname:"1f235",uc:"1f235",isCanonical:!0},":u6709:":{unicode:["1f236"],fname:"1f236",uc:"1f236",isCanonical:!0},":shallow_pan_of_food:":{unicode:["1f958"],fname:"1f958",uc:"1f958",isCanonical:!0},":paella:":{unicode:["1f958"],fname:"1f958",uc:"1f958",isCanonical:!1},":u7533:":{unicode:["1f238"],fname:"1f238",uc:"1f238",isCanonical:!0},":u5272:":{unicode:["1f239"],fname:"1f239",uc:"1f239",isCanonical:!0},":salad:":{unicode:["1f957"],fname:"1f957",uc:"1f957",isCanonical:!0},":green_salad:":{unicode:["1f957"],fname:"1f957",uc:"1f957",isCanonical:!1},":u55b6:":{unicode:["1f23a"],fname:"1f23a",uc:"1f23a",isCanonical:!0},":ideograph_advantage:":{unicode:["1f250"],fname:"1f250",uc:"1f250",isCanonical:!0},":accept:":{unicode:["1f251"],fname:"1f251",uc:"1f251",isCanonical:!0},":cyclone:":{unicode:["1f300"],fname:"1f300",uc:"1f300",isCanonical:!0},":french_bread:":{unicode:["1f956"],fname:"1f956",uc:"1f956",isCanonical:!0},":baguette_bread:":{unicode:["1f956"],fname:"1f956",uc:"1f956",isCanonical:!1},":foggy:":{unicode:["1f301"],fname:"1f301",uc:"1f301",isCanonical:!0},":closed_umbrella:":{unicode:["1f302"],fname:"1f302",uc:"1f302",isCanonical:!0},":night_with_stars:":{unicode:["1f303"],fname:"1f303",uc:"1f303",isCanonical:!0},":sunrise_over_mountains:":{unicode:["1f304"],fname:"1f304",uc:"1f304",isCanonical:!0},":sunrise:":{unicode:["1f305"],fname:"1f305",uc:"1f305",isCanonical:!0},":city_dusk:":{unicode:["1f306"],fname:"1f306",uc:"1f306",isCanonical:!0},":carrot:":{unicode:["1f955"],fname:"1f955",uc:"1f955",isCanonical:!0},":city_sunset:":{unicode:["1f307"],fname:"1f307",uc:"1f307",isCanonical:!0},":city_sunrise:":{unicode:["1f307"],fname:"1f307",uc:"1f307",isCanonical:!1},":rainbow:":{unicode:["1f308"],fname:"1f308",uc:"1f308",isCanonical:!0},":potato:":{unicode:["1f954"],fname:"1f954",uc:"1f954",isCanonical:!0},":bridge_at_night:":{unicode:["1f309"],fname:"1f309",uc:"1f309",isCanonical:!0},":ocean:":{unicode:["1f30a"],fname:"1f30a",uc:"1f30a",isCanonical:!0},":volcano:":{unicode:["1f30b"],fname:"1f30b",uc:"1f30b",isCanonical:!0},":milky_way:":{unicode:["1f30c"],fname:"1f30c",uc:"1f30c",isCanonical:!0},":earth_asia:":{unicode:["1f30f"],fname:"1f30f",uc:"1f30f",isCanonical:!0},":new_moon:":{unicode:["1f311"],fname:"1f311",uc:"1f311",isCanonical:!0},":bacon:":{unicode:["1f953"],fname:"1f953",uc:"1f953",isCanonical:!0},":first_quarter_moon:":{unicode:["1f313"],fname:"1f313",uc:"1f313",isCanonical:!0},":waxing_gibbous_moon:":{unicode:["1f314"],fname:"1f314",uc:"1f314",isCanonical:!0},":full_moon:":{unicode:["1f315"],fname:"1f315",uc:"1f315",isCanonical:!0},":crescent_moon:":{unicode:["1f319"],fname:"1f319",uc:"1f319",isCanonical:!0},":first_quarter_moon_with_face:":{unicode:["1f31b"],fname:"1f31b",uc:"1f31b",isCanonical:!0},":star2:":{unicode:["1f31f"],fname:"1f31f",uc:"1f31f",isCanonical:!0},":cucumber:":{unicode:["1f952"],fname:"1f952",uc:"1f952",isCanonical:!0},":stars:":{unicode:["1f320"],fname:"1f320",uc:"1f320",isCanonical:!0},":chestnut:":{unicode:["1f330"],fname:"1f330",uc:"1f330",isCanonical:!0},":avocado:":{unicode:["1f951"],fname:"1f951",uc:"1f951",isCanonical:!0},":seedling:":{unicode:["1f331"],fname:"1f331",uc:"1f331",isCanonical:!0},":palm_tree:":{unicode:["1f334"],fname:"1f334",uc:"1f334",isCanonical:!0},":cactus:":{unicode:["1f335"],fname:"1f335",uc:"1f335",isCanonical:!0},":tulip:":{unicode:["1f337"],fname:"1f337",uc:"1f337",isCanonical:!0},":cherry_blossom:":{unicode:["1f338"],fname:"1f338",uc:"1f338",isCanonical:!0},":rose:":{unicode:["1f339"],fname:"1f339",uc:"1f339",isCanonical:!0},":hibiscus:":{unicode:["1f33a"],fname:"1f33a",uc:"1f33a",isCanonical:!0},":sunflower:":{unicode:["1f33b"],fname:"1f33b",uc:"1f33b",isCanonical:!0},":blossom:":{unicode:["1f33c"],fname:"1f33c",uc:"1f33c",isCanonical:!0},":corn:":{unicode:["1f33d"],fname:"1f33d",uc:"1f33d",isCanonical:!0},":croissant:":{unicode:["1f950"],fname:"1f950",uc:"1f950",isCanonical:!0},":ear_of_rice:":{unicode:["1f33e"],fname:"1f33e",uc:"1f33e",isCanonical:!0},":herb:":{unicode:["1f33f"],fname:"1f33f",uc:"1f33f",isCanonical:!0},":four_leaf_clover:":{unicode:["1f340"],fname:"1f340",uc:"1f340",isCanonical:!0},":maple_leaf:":{unicode:["1f341"],fname:"1f341",uc:"1f341",isCanonical:!0},":fallen_leaf:":{unicode:["1f342"],fname:"1f342",uc:"1f342",isCanonical:!0},":leaves:":{unicode:["1f343"],fname:"1f343",uc:"1f343",isCanonical:!0},":mushroom:":{unicode:["1f344"],fname:"1f344",uc:"1f344",isCanonical:!0},":tomato:":{unicode:["1f345"],fname:"1f345",uc:"1f345",isCanonical:!0},":eggplant:":{unicode:["1f346"],fname:"1f346",uc:"1f346",isCanonical:!0},":grapes:":{unicode:["1f347"],fname:"1f347",uc:"1f347",isCanonical:!0},":melon:":{unicode:["1f348"],fname:"1f348",uc:"1f348",isCanonical:!0},":watermelon:":{unicode:["1f349"],fname:"1f349",uc:"1f349",isCanonical:!0},":tangerine:":{unicode:["1f34a"],fname:"1f34a",uc:"1f34a",isCanonical:!0},":wilted_rose:":{unicode:["1f940"],fname:"1f940",uc:"1f940",isCanonical:!0},":wilted_flower:":{unicode:["1f940"],fname:"1f940",uc:"1f940",isCanonical:!1},":banana:":{unicode:["1f34c"],fname:"1f34c",uc:"1f34c",isCanonical:!0},":pineapple:":{unicode:["1f34d"],fname:"1f34d",uc:"1f34d",isCanonical:!0},":apple:":{unicode:["1f34e"],fname:"1f34e",uc:"1f34e",isCanonical:!0},":green_apple:":{unicode:["1f34f"],fname:"1f34f",uc:"1f34f",isCanonical:!0},":peach:":{unicode:["1f351"],fname:"1f351",uc:"1f351",isCanonical:!0},":cherries:":{unicode:["1f352"],fname:"1f352",uc:"1f352",isCanonical:!0},":strawberry:":{unicode:["1f353"],fname:"1f353",uc:"1f353",isCanonical:!0},":rhino:":{unicode:["1f98f"],fname:"1f98f",uc:"1f98f",isCanonical:!0},":rhinoceros:":{unicode:["1f98f"],fname:"1f98f",uc:"1f98f",isCanonical:!1},":hamburger:":{unicode:["1f354"],fname:"1f354",uc:"1f354",isCanonical:!0},":pizza:":{unicode:["1f355"],fname:"1f355",uc:"1f355",isCanonical:!0},":meat_on_bone:":{unicode:["1f356"],fname:"1f356",uc:"1f356",isCanonical:!0},":lizard:":{unicode:["1f98e"],fname:"1f98e",uc:"1f98e",isCanonical:!0},":poultry_leg:":{unicode:["1f357"],fname:"1f357",uc:"1f357",isCanonical:!0},":rice_cracker:":{unicode:["1f358"],fname:"1f358",uc:"1f358",isCanonical:!0},":rice_ball:":{unicode:["1f359"],fname:"1f359",uc:"1f359",isCanonical:!0},":gorilla:":{unicode:["1f98d"],fname:"1f98d",uc:"1f98d",isCanonical:!0},":rice:":{unicode:["1f35a"],fname:"1f35a",uc:"1f35a",isCanonical:!0},":curry:":{unicode:["1f35b"],fname:"1f35b",uc:"1f35b",isCanonical:!0},":deer:":{unicode:["1f98c"],fname:"1f98c",uc:"1f98c",isCanonical:!0},":ramen:":{unicode:["1f35c"],fname:"1f35c",uc:"1f35c",isCanonical:!0},":spaghetti:":{unicode:["1f35d"],fname:"1f35d",uc:"1f35d",isCanonical:!0},":bread:":{unicode:["1f35e"],fname:"1f35e",uc:"1f35e",isCanonical:!0},":fries:":{unicode:["1f35f"],fname:"1f35f",uc:"1f35f",isCanonical:!0},":butterfly:":{unicode:["1f98b"],fname:"1f98b",uc:"1f98b",isCanonical:!0},":sweet_potato:":{unicode:["1f360"],fname:"1f360",uc:"1f360",isCanonical:!0},":dango:":{unicode:["1f361"],fname:"1f361",uc:"1f361",isCanonical:!0},":fox:":{unicode:["1f98a"],fname:"1f98a",uc:"1f98a",isCanonical:!0},":fox_face:":{unicode:["1f98a"],fname:"1f98a",uc:"1f98a",isCanonical:!1},":oden:":{unicode:["1f362"],fname:"1f362",uc:"1f362",isCanonical:!0},":sushi:":{unicode:["1f363"],fname:"1f363",uc:"1f363",isCanonical:!0},":owl:":{unicode:["1f989"],fname:"1f989",uc:"1f989",isCanonical:!0},":fried_shrimp:":{unicode:["1f364"],fname:"1f364",uc:"1f364",isCanonical:!0},":fish_cake:":{unicode:["1f365"],fname:"1f365",uc:"1f365",isCanonical:!0},":shark:":{unicode:["1f988"],fname:"1f988",uc:"1f988",isCanonical:!0},":icecream:":{unicode:["1f366"],fname:"1f366",uc:"1f366",isCanonical:!0},":bat:":{unicode:["1f987"],fname:"1f987",uc:"1f987",isCanonical:!0},":shaved_ice:":{unicode:["1f367"],fname:"1f367",uc:"1f367",isCanonical:!0},":regional_indicator_x:":{unicode:["1f1fd"],fname:"1f1fd",uc:"1f1fd",isCanonical:!0},":ice_cream:":{unicode:["1f368"],fname:"1f368",uc:"1f368",isCanonical:!0},":duck:":{unicode:["1f986"],fname:"1f986",uc:"1f986",isCanonical:!0},":doughnut:":{unicode:["1f369"],fname:"1f369",uc:"1f369",isCanonical:!0},":eagle:":{unicode:["1f985"],fname:"1f985",uc:"1f985",isCanonical:!0},":cookie:":{unicode:["1f36a"],fname:"1f36a",uc:"1f36a",isCanonical:!0},":black_heart:":{unicode:["1f5a4"],fname:"1f5a4",uc:"1f5a4",isCanonical:!0},":chocolate_bar:":{unicode:["1f36b"],fname:"1f36b",uc:"1f36b",isCanonical:!0},":candy:":{unicode:["1f36c"],fname:"1f36c",uc:"1f36c",isCanonical:!0},":lollipop:":{unicode:["1f36d"],fname:"1f36d",uc:"1f36d",isCanonical:!0},":custard:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!0},":pudding:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!1},":flan:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!1},":honey_pot:":{unicode:["1f36f"],fname:"1f36f",uc:"1f36f",isCanonical:!0},":fingers_crossed:":{unicode:["1f91e"],fname:"1f91e",uc:"1f91e",isCanonical:!0},":hand_with_index_and_middle_finger_crossed:":{unicode:["1f91e"],fname:"1f91e",uc:"1f91e",isCanonical:!1},":cake:":{unicode:["1f370"],fname:"1f370",uc:"1f370",isCanonical:!0},":bento:":{unicode:["1f371"],fname:"1f371",uc:"1f371",isCanonical:!0},":stew:":{unicode:["1f372"],fname:"1f372",uc:"1f372",isCanonical:!0},":handshake:":{unicode:["1f91d"],fname:"1f91d",uc:"1f91d",isCanonical:!0},":shaking_hands:":{unicode:["1f91d"],fname:"1f91d",uc:"1f91d",isCanonical:!1},":cooking:":{unicode:["1f373"],fname:"1f373",uc:"1f373",isCanonical:!0},":fork_and_knife:":{unicode:["1f374"],fname:"1f374",uc:"1f374",isCanonical:!0},":tea:":{unicode:["1f375"],fname:"1f375",uc:"1f375",isCanonical:!0},":sake:":{unicode:["1f376"],fname:"1f376",uc:"1f376",isCanonical:!0},":wine_glass:":{unicode:["1f377"],fname:"1f377",uc:"1f377",isCanonical:!0},":cocktail:":{unicode:["1f378"],fname:"1f378",uc:"1f378",isCanonical:!0},":tropical_drink:":{unicode:["1f379"],fname:"1f379",uc:"1f379",isCanonical:!0},":beer:":{unicode:["1f37a"],fname:"1f37a",uc:"1f37a",isCanonical:!0},":beers:":{unicode:["1f37b"],fname:"1f37b",uc:"1f37b",isCanonical:!0},":ribbon:":{unicode:["1f380"],fname:"1f380",uc:"1f380",isCanonical:!0},":gift:":{unicode:["1f381"],fname:"1f381",uc:"1f381",isCanonical:!0},":birthday:":{unicode:["1f382"],fname:"1f382",uc:"1f382",isCanonical:!0},":jack_o_lantern:":{unicode:["1f383"],fname:"1f383",uc:"1f383",isCanonical:!0},":left_facing_fist:":{unicode:["1f91b"],fname:"1f91b",uc:"1f91b",isCanonical:!0},":left_fist:":{unicode:["1f91b"],fname:"1f91b",uc:"1f91b",isCanonical:!1},":right_facing_fist:":{unicode:["1f91c"],fname:"1f91c",uc:"1f91c",isCanonical:!0},":right_fist:":{unicode:["1f91c"],fname:"1f91c",uc:"1f91c",isCanonical:!1},":christmas_tree:":{unicode:["1f384"],fname:"1f384",uc:"1f384",isCanonical:!0},":santa:":{unicode:["1f385"],fname:"1f385",uc:"1f385",isCanonical:!0},":fireworks:":{unicode:["1f386"],fname:"1f386",uc:"1f386",isCanonical:!0},":raised_back_of_hand:":{unicode:["1f91a"],fname:"1f91a",uc:"1f91a",isCanonical:!0},":back_of_hand:":{unicode:["1f91a"],fname:"1f91a",uc:"1f91a",isCanonical:!1},":sparkler:":{unicode:["1f387"],fname:"1f387",uc:"1f387",isCanonical:!0},":balloon:":{unicode:["1f388"],fname:"1f388",uc:"1f388",isCanonical:!0},":tada:":{unicode:["1f389"],fname:"1f389",uc:"1f389",isCanonical:!0},":confetti_ball:":{unicode:["1f38a"],fname:"1f38a",uc:"1f38a",isCanonical:!0},":tanabata_tree:":{unicode:["1f38b"],fname:"1f38b",uc:"1f38b",isCanonical:!0},":crossed_flags:":{unicode:["1f38c"],fname:"1f38c",uc:"1f38c",isCanonical:!0},":call_me:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!0},":call_me_hand:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!1},":bamboo:":{unicode:["1f38d"],fname:"1f38d",uc:"1f38d",isCanonical:!0},":man_dancing:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!0},":male_dancer:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!1},":dolls:":{unicode:["1f38e"],fname:"1f38e",uc:"1f38e",isCanonical:!0},":selfie:":{unicode:["1f933"],fname:"1f933",uc:"1f933",isCanonical:!0},":flags:":{unicode:["1f38f"],fname:"1f38f",uc:"1f38f",isCanonical:!0},":pregnant_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!0},":expecting_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!1},":wind_chime:":{unicode:["1f390"],fname:"1f390",uc:"1f390",isCanonical:!0},":face_palm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!0},":facepalm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!1},":shrug:":{unicode:["1f937"],fname:"1f937",uc:"1f937",isCanonical:!0},":rice_scene:":{unicode:["1f391"],fname:"1f391",uc:"1f391",isCanonical:!0},":school_satchel:":{unicode:["1f392"],fname:"1f392",uc:"1f392",isCanonical:!0},":mortar_board:":{unicode:["1f393"],fname:"1f393",uc:"1f393",isCanonical:!0},":carousel_horse:":{unicode:["1f3a0"],fname:"1f3a0",uc:"1f3a0",isCanonical:!0},":ferris_wheel:":{unicode:["1f3a1"],fname:"1f3a1",uc:"1f3a1",isCanonical:!0},":roller_coaster:":{unicode:["1f3a2"],fname:"1f3a2",uc:"1f3a2",isCanonical:!0},":fishing_pole_and_fish:":{unicode:["1f3a3"],fname:"1f3a3",uc:"1f3a3",isCanonical:!0},":microphone:":{unicode:["1f3a4"],fname:"1f3a4",uc:"1f3a4",isCanonical:!0},":movie_camera:":{unicode:["1f3a5"],fname:"1f3a5",uc:"1f3a5",isCanonical:!0},":cinema:":{unicode:["1f3a6"],fname:"1f3a6",uc:"1f3a6",isCanonical:!0},":headphones:":{unicode:["1f3a7"],fname:"1f3a7",uc:"1f3a7",isCanonical:!0},":mrs_claus:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!0},":mother_christmas:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!1},":art:":{unicode:["1f3a8"],fname:"1f3a8",uc:"1f3a8",isCanonical:!0},":man_in_tuxedo:":{unicode:["1f935"],fname:"1f935",uc:"1f935",isCanonical:!0},":tophat:":{unicode:["1f3a9"],fname:"1f3a9",uc:"1f3a9",isCanonical:!0},":circus_tent:":{unicode:["1f3aa"],fname:"1f3aa",uc:"1f3aa",isCanonical:!0},":prince:":{unicode:["1f934"],fname:"1f934",uc:"1f934",isCanonical:!0},":ticket:":{unicode:["1f3ab"],fname:"1f3ab",uc:"1f3ab",isCanonical:!0},":clapper:":{unicode:["1f3ac"],fname:"1f3ac",uc:"1f3ac",isCanonical:!0},":performing_arts:":{unicode:["1f3ad"],fname:"1f3ad",uc:"1f3ad",isCanonical:!0},":sneezing_face:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!0},":sneeze:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!1},":video_game:":{unicode:["1f3ae"],fname:"1f3ae",uc:"1f3ae",isCanonical:!0},":dart:":{unicode:["1f3af"],fname:"1f3af",uc:"1f3af",isCanonical:!0},":slot_machine:":{unicode:["1f3b0"],fname:"1f3b0",uc:"1f3b0",isCanonical:!0},":8ball:":{unicode:["1f3b1"],fname:"1f3b1",uc:"1f3b1",isCanonical:!0},":game_die:":{unicode:["1f3b2"],fname:"1f3b2",uc:"1f3b2",isCanonical:!0},":bowling:":{unicode:["1f3b3"],fname:"1f3b3",uc:"1f3b3",isCanonical:!0},":flower_playing_cards:":{unicode:["1f3b4"],fname:"1f3b4",uc:"1f3b4",isCanonical:!0},":lying_face:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!0},":liar:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!1},":musical_note:":{unicode:["1f3b5"],fname:"1f3b5",uc:"1f3b5",isCanonical:!0},":notes:":{unicode:["1f3b6"],fname:"1f3b6",uc:"1f3b6",isCanonical:!0},":saxophone:":{unicode:["1f3b7"],fname:"1f3b7",uc:"1f3b7",isCanonical:!0},":drooling_face:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!0},":drool:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!1},":guitar:":{unicode:["1f3b8"],fname:"1f3b8",uc:"1f3b8",isCanonical:!0},":musical_keyboard:":{unicode:["1f3b9"],fname:"1f3b9",uc:"1f3b9",isCanonical:!0},":trumpet:":{unicode:["1f3ba"],fname:"1f3ba",uc:"1f3ba",isCanonical:!0},":rofl:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!0},":rolling_on_the_floor_laughing:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!1},":violin:":{unicode:["1f3bb"],fname:"1f3bb",uc:"1f3bb",isCanonical:!0},":musical_score:":{unicode:["1f3bc"],fname:"1f3bc",uc:"1f3bc",isCanonical:!0},":running_shirt_with_sash:":{unicode:["1f3bd"],fname:"1f3bd",uc:"1f3bd",isCanonical:!0},":nauseated_face:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!0},":sick:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!1},":tennis:":{unicode:["1f3be"],fname:"1f3be",uc:"1f3be",isCanonical:!0},":ski:":{unicode:["1f3bf"],fname:"1f3bf",uc:"1f3bf",isCanonical:!0},":basketball:":{unicode:["1f3c0"],fname:"1f3c0",uc:"1f3c0",isCanonical:!0},":checkered_flag:":{unicode:["1f3c1"],fname:"1f3c1",uc:"1f3c1",isCanonical:!0},":clown:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!0},":clown_face:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!1},":snowboarder:":{unicode:["1f3c2"],fname:"1f3c2",uc:"1f3c2",isCanonical:!0},":runner:":{unicode:["1f3c3"],fname:"1f3c3",uc:"1f3c3",isCanonical:!0},":surfer:":{unicode:["1f3c4"],fname:"1f3c4",uc:"1f3c4",isCanonical:!0},":trophy:":{unicode:["1f3c6"],fname:"1f3c6",uc:"1f3c6",isCanonical:!0},":football:":{unicode:["1f3c8"],fname:"1f3c8",uc:"1f3c8",isCanonical:!0},":swimmer:":{unicode:["1f3ca"],fname:"1f3ca",uc:"1f3ca",isCanonical:!0},":house:":{unicode:["1f3e0"],fname:"1f3e0",uc:"1f3e0",isCanonical:!0},":house_with_garden:":{unicode:["1f3e1"],fname:"1f3e1",uc:"1f3e1",isCanonical:!0},":office:":{unicode:["1f3e2"],fname:"1f3e2",uc:"1f3e2",isCanonical:!0},":post_office:":{unicode:["1f3e3"],fname:"1f3e3",uc:"1f3e3",isCanonical:!0},":hospital:":{unicode:["1f3e5"],fname:"1f3e5",uc:"1f3e5",isCanonical:!0},":bank:":{unicode:["1f3e6"],fname:"1f3e6",uc:"1f3e6",isCanonical:!0},":atm:":{unicode:["1f3e7"],fname:"1f3e7",uc:"1f3e7",isCanonical:!0},":hotel:":{unicode:["1f3e8"],fname:"1f3e8",uc:"1f3e8",isCanonical:!0},":love_hotel:":{unicode:["1f3e9"],fname:"1f3e9",uc:"1f3e9",isCanonical:!0},":convenience_store:":{unicode:["1f3ea"],fname:"1f3ea",uc:"1f3ea",isCanonical:!0},":school:":{unicode:["1f3eb"],fname:"1f3eb",uc:"1f3eb",isCanonical:!0},":department_store:":{unicode:["1f3ec"],fname:"1f3ec",uc:"1f3ec",isCanonical:!0},":cowboy:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!0},":face_with_cowboy_hat:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!1},":factory:":{unicode:["1f3ed"],fname:"1f3ed",uc:"1f3ed",isCanonical:!0},":izakaya_lantern:":{unicode:["1f3ee"],fname:"1f3ee",uc:"1f3ee",isCanonical:!0},":japanese_castle:":{unicode:["1f3ef"],fname:"1f3ef",uc:"1f3ef",isCanonical:!0},":european_castle:":{unicode:["1f3f0"],fname:"1f3f0",uc:"1f3f0",isCanonical:!0},":snail:":{unicode:["1f40c"],fname:"1f40c",uc:"1f40c",isCanonical:!0},":snake:":{unicode:["1f40d"],fname:"1f40d",uc:"1f40d",isCanonical:!0},":racehorse:":{unicode:["1f40e"],fname:"1f40e",uc:"1f40e",isCanonical:!0},":sheep:":{unicode:["1f411"],fname:"1f411",uc:"1f411",isCanonical:!0},":monkey:":{unicode:["1f412"],fname:"1f412",uc:"1f412",isCanonical:!0},":chicken:":{unicode:["1f414"],fname:"1f414",uc:"1f414",isCanonical:!0},":boar:":{unicode:["1f417"],fname:"1f417",uc:"1f417",isCanonical:!0},":elephant:":{unicode:["1f418"],fname:"1f418",uc:"1f418",isCanonical:!0},":octopus:":{unicode:["1f419"],fname:"1f419",uc:"1f419",isCanonical:!0},":shell:":{unicode:["1f41a"],fname:"1f41a",uc:"1f41a",isCanonical:!0},":bug:":{unicode:["1f41b"],fname:"1f41b",uc:"1f41b",isCanonical:!0},":ant:":{unicode:["1f41c"],fname:"1f41c",uc:"1f41c",isCanonical:!0},":bee:":{unicode:["1f41d"],fname:"1f41d",uc:"1f41d",isCanonical:!0},":beetle:":{unicode:["1f41e"],fname:"1f41e",uc:"1f41e",isCanonical:!0},":fish:":{unicode:["1f41f"],fname:"1f41f",uc:"1f41f",isCanonical:!0},":tropical_fish:":{unicode:["1f420"],fname:"1f420",uc:"1f420",isCanonical:!0},":blowfish:":{unicode:["1f421"],fname:"1f421",uc:"1f421",isCanonical:!0},":turtle:":{unicode:["1f422"],fname:"1f422",uc:"1f422",isCanonical:!0},":hatching_chick:":{unicode:["1f423"],fname:"1f423",uc:"1f423",isCanonical:!0},":baby_chick:":{unicode:["1f424"],fname:"1f424",uc:"1f424",isCanonical:!0},":hatched_chick:":{unicode:["1f425"],fname:"1f425",uc:"1f425",isCanonical:!0},":bird:":{unicode:["1f426"],fname:"1f426",uc:"1f426",isCanonical:!0},":penguin:":{unicode:["1f427"],fname:"1f427",uc:"1f427",isCanonical:!0},":koala:":{unicode:["1f428"],fname:"1f428",uc:"1f428",isCanonical:!0},":poodle:":{unicode:["1f429"],fname:"1f429",uc:"1f429",isCanonical:!0},":camel:":{unicode:["1f42b"],fname:"1f42b",uc:"1f42b",isCanonical:!0},":dolphin:":{unicode:["1f42c"],fname:"1f42c",uc:"1f42c",isCanonical:!0},":mouse:":{unicode:["1f42d"],fname:"1f42d",uc:"1f42d",isCanonical:!0},":cow:":{unicode:["1f42e"],fname:"1f42e",uc:"1f42e",isCanonical:!0},":tiger:":{unicode:["1f42f"],fname:"1f42f",uc:"1f42f",isCanonical:!0},":rabbit:":{unicode:["1f430"],fname:"1f430",uc:"1f430",isCanonical:!0},":cat:":{unicode:["1f431"],fname:"1f431",uc:"1f431",isCanonical:!0},":dragon_face:":{unicode:["1f432"],fname:"1f432",uc:"1f432",isCanonical:!0},":whale:":{unicode:["1f433"],fname:"1f433",uc:"1f433",isCanonical:!0},":horse:":{unicode:["1f434"],fname:"1f434",uc:"1f434",isCanonical:!0},":monkey_face:":{unicode:["1f435"],fname:"1f435",uc:"1f435",isCanonical:!0},":dog:":{unicode:["1f436"],fname:"1f436",uc:"1f436",isCanonical:!0},":pig:":{unicode:["1f437"],fname:"1f437",uc:"1f437",isCanonical:!0},":frog:":{unicode:["1f438"],fname:"1f438",uc:"1f438",isCanonical:!0},":hamster:":{unicode:["1f439"],fname:"1f439",uc:"1f439",isCanonical:!0},":wolf:":{unicode:["1f43a"],fname:"1f43a",uc:"1f43a",isCanonical:!0},":bear:":{unicode:["1f43b"],fname:"1f43b",uc:"1f43b",isCanonical:!0},":panda_face:":{unicode:["1f43c"],fname:"1f43c",uc:"1f43c",isCanonical:!0},":pig_nose:":{unicode:["1f43d"],fname:"1f43d",uc:"1f43d",isCanonical:!0},":feet:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!0},":paw_prints:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!1},":eyes:":{unicode:["1f440"],fname:"1f440",uc:"1f440",isCanonical:!0},":ear:":{unicode:["1f442"],fname:"1f442",uc:"1f442",isCanonical:!0},":nose:":{unicode:["1f443"],fname:"1f443",uc:"1f443",isCanonical:!0},":lips:":{unicode:["1f444"],fname:"1f444",uc:"1f444",isCanonical:!0},":tongue:":{unicode:["1f445"],fname:"1f445",uc:"1f445",isCanonical:!0},":point_up_2:":{unicode:["1f446"],fname:"1f446",uc:"1f446",isCanonical:!0},":point_down:":{unicode:["1f447"],fname:"1f447",uc:"1f447",isCanonical:!0},":point_left:":{unicode:["1f448"],fname:"1f448",uc:"1f448",isCanonical:!0},":point_right:":{unicode:["1f449"],fname:"1f449",uc:"1f449",isCanonical:!0},":punch:":{unicode:["1f44a"],fname:"1f44a",uc:"1f44a",isCanonical:!0},":wave:":{unicode:["1f44b"],fname:"1f44b",uc:"1f44b",isCanonical:!0},":ok_hand:":{unicode:["1f44c"],fname:"1f44c",uc:"1f44c",isCanonical:!0},":thumbsup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!0},":+1:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbsdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!0},":-1:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":thumbdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":clap:":{unicode:["1f44f"],fname:"1f44f",uc:"1f44f",isCanonical:!0},":open_hands:":{
+unicode:["1f450"],fname:"1f450",uc:"1f450",isCanonical:!0},":crown:":{unicode:["1f451"],fname:"1f451",uc:"1f451",isCanonical:!0},":womans_hat:":{unicode:["1f452"],fname:"1f452",uc:"1f452",isCanonical:!0},":eyeglasses:":{unicode:["1f453"],fname:"1f453",uc:"1f453",isCanonical:!0},":necktie:":{unicode:["1f454"],fname:"1f454",uc:"1f454",isCanonical:!0},":shirt:":{unicode:["1f455"],fname:"1f455",uc:"1f455",isCanonical:!0},":jeans:":{unicode:["1f456"],fname:"1f456",uc:"1f456",isCanonical:!0},":dress:":{unicode:["1f457"],fname:"1f457",uc:"1f457",isCanonical:!0},":kimono:":{unicode:["1f458"],fname:"1f458",uc:"1f458",isCanonical:!0},":bikini:":{unicode:["1f459"],fname:"1f459",uc:"1f459",isCanonical:!0},":womans_clothes:":{unicode:["1f45a"],fname:"1f45a",uc:"1f45a",isCanonical:!0},":purse:":{unicode:["1f45b"],fname:"1f45b",uc:"1f45b",isCanonical:!0},":handbag:":{unicode:["1f45c"],fname:"1f45c",uc:"1f45c",isCanonical:!0},":pouch:":{unicode:["1f45d"],fname:"1f45d",uc:"1f45d",isCanonical:!0},":mans_shoe:":{unicode:["1f45e"],fname:"1f45e",uc:"1f45e",isCanonical:!0},":athletic_shoe:":{unicode:["1f45f"],fname:"1f45f",uc:"1f45f",isCanonical:!0},":high_heel:":{unicode:["1f460"],fname:"1f460",uc:"1f460",isCanonical:!0},":sandal:":{unicode:["1f461"],fname:"1f461",uc:"1f461",isCanonical:!0},":boot:":{unicode:["1f462"],fname:"1f462",uc:"1f462",isCanonical:!0},":footprints:":{unicode:["1f463"],fname:"1f463",uc:"1f463",isCanonical:!0},":bust_in_silhouette:":{unicode:["1f464"],fname:"1f464",uc:"1f464",isCanonical:!0},":boy:":{unicode:["1f466"],fname:"1f466",uc:"1f466",isCanonical:!0},":girl:":{unicode:["1f467"],fname:"1f467",uc:"1f467",isCanonical:!0},":man:":{unicode:["1f468"],fname:"1f468",uc:"1f468",isCanonical:!0},":woman:":{unicode:["1f469"],fname:"1f469",uc:"1f469",isCanonical:!0},":family:":{unicode:["1f46a"],fname:"1f46a",uc:"1f46a",isCanonical:!0},":couple:":{unicode:["1f46b"],fname:"1f46b",uc:"1f46b",isCanonical:!0},":cop:":{unicode:["1f46e"],fname:"1f46e",uc:"1f46e",isCanonical:!0},":dancers:":{unicode:["1f46f"],fname:"1f46f",uc:"1f46f",isCanonical:!0},":bride_with_veil:":{unicode:["1f470"],fname:"1f470",uc:"1f470",isCanonical:!0},":person_with_blond_hair:":{unicode:["1f471"],fname:"1f471",uc:"1f471",isCanonical:!0},":man_with_gua_pi_mao:":{unicode:["1f472"],fname:"1f472",uc:"1f472",isCanonical:!0},":man_with_turban:":{unicode:["1f473"],fname:"1f473",uc:"1f473",isCanonical:!0},":older_man:":{unicode:["1f474"],fname:"1f474",uc:"1f474",isCanonical:!0},":older_woman:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!0},":grandma:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!1},":baby:":{unicode:["1f476"],fname:"1f476",uc:"1f476",isCanonical:!0},":construction_worker:":{unicode:["1f477"],fname:"1f477",uc:"1f477",isCanonical:!0},":princess:":{unicode:["1f478"],fname:"1f478",uc:"1f478",isCanonical:!0},":japanese_ogre:":{unicode:["1f479"],fname:"1f479",uc:"1f479",isCanonical:!0},":japanese_goblin:":{unicode:["1f47a"],fname:"1f47a",uc:"1f47a",isCanonical:!0},":ghost:":{unicode:["1f47b"],fname:"1f47b",uc:"1f47b",isCanonical:!0},":angel:":{unicode:["1f47c"],fname:"1f47c",uc:"1f47c",isCanonical:!0},":alien:":{unicode:["1f47d"],fname:"1f47d",uc:"1f47d",isCanonical:!0},":space_invader:":{unicode:["1f47e"],fname:"1f47e",uc:"1f47e",isCanonical:!0},":imp:":{unicode:["1f47f"],fname:"1f47f",uc:"1f47f",isCanonical:!0},":skull:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!0},":skeleton:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!1},":card_index:":{unicode:["1f4c7"],fname:"1f4c7",uc:"1f4c7",isCanonical:!0},":information_desk_person:":{unicode:["1f481"],fname:"1f481",uc:"1f481",isCanonical:!0},":guardsman:":{unicode:["1f482"],fname:"1f482",uc:"1f482",isCanonical:!0},":dancer:":{unicode:["1f483"],fname:"1f483",uc:"1f483",isCanonical:!0},":lipstick:":{unicode:["1f484"],fname:"1f484",uc:"1f484",isCanonical:!0},":nail_care:":{unicode:["1f485"],fname:"1f485",uc:"1f485",isCanonical:!0},":ledger:":{unicode:["1f4d2"],fname:"1f4d2",uc:"1f4d2",isCanonical:!0},":massage:":{unicode:["1f486"],fname:"1f486",uc:"1f486",isCanonical:!0},":notebook:":{unicode:["1f4d3"],fname:"1f4d3",uc:"1f4d3",isCanonical:!0},":haircut:":{unicode:["1f487"],fname:"1f487",uc:"1f487",isCanonical:!0},":notebook_with_decorative_cover:":{unicode:["1f4d4"],fname:"1f4d4",uc:"1f4d4",isCanonical:!0},":barber:":{unicode:["1f488"],fname:"1f488",uc:"1f488",isCanonical:!0},":closed_book:":{unicode:["1f4d5"],fname:"1f4d5",uc:"1f4d5",isCanonical:!0},":syringe:":{unicode:["1f489"],fname:"1f489",uc:"1f489",isCanonical:!0},":book:":{unicode:["1f4d6"],fname:"1f4d6",uc:"1f4d6",isCanonical:!0},":pill:":{unicode:["1f48a"],fname:"1f48a",uc:"1f48a",isCanonical:!0},":green_book:":{unicode:["1f4d7"],fname:"1f4d7",uc:"1f4d7",isCanonical:!0},":kiss:":{unicode:["1f48b"],fname:"1f48b",uc:"1f48b",isCanonical:!0},":blue_book:":{unicode:["1f4d8"],fname:"1f4d8",uc:"1f4d8",isCanonical:!0},":love_letter:":{unicode:["1f48c"],fname:"1f48c",uc:"1f48c",isCanonical:!0},":orange_book:":{unicode:["1f4d9"],fname:"1f4d9",uc:"1f4d9",isCanonical:!0},":ring:":{unicode:["1f48d"],fname:"1f48d",uc:"1f48d",isCanonical:!0},":books:":{unicode:["1f4da"],fname:"1f4da",uc:"1f4da",isCanonical:!0},":gem:":{unicode:["1f48e"],fname:"1f48e",uc:"1f48e",isCanonical:!0},":name_badge:":{unicode:["1f4db"],fname:"1f4db",uc:"1f4db",isCanonical:!0},":couplekiss:":{unicode:["1f48f"],fname:"1f48f",uc:"1f48f",isCanonical:!0},":scroll:":{unicode:["1f4dc"],fname:"1f4dc",uc:"1f4dc",isCanonical:!0},":bouquet:":{unicode:["1f490"],fname:"1f490",uc:"1f490",isCanonical:!0},":pencil:":{unicode:["1f4dd"],fname:"1f4dd",uc:"1f4dd",isCanonical:!0},":couple_with_heart:":{unicode:["1f491"],fname:"1f491",uc:"1f491",isCanonical:!0},":telephone_receiver:":{unicode:["1f4de"],fname:"1f4de",uc:"1f4de",isCanonical:!0},":wedding:":{unicode:["1f492"],fname:"1f492",uc:"1f492",isCanonical:!0},":pager:":{unicode:["1f4df"],fname:"1f4df",uc:"1f4df",isCanonical:!0},":fax:":{unicode:["1f4e0"],fname:"1f4e0",uc:"1f4e0",isCanonical:!0},":heartbeat:":{unicode:["1f493"],fname:"1f493",uc:"1f493",isCanonical:!0},":satellite:":{unicode:["1f4e1"],fname:"1f4e1",uc:"1f4e1",isCanonical:!0},":loudspeaker:":{unicode:["1f4e2"],fname:"1f4e2",uc:"1f4e2",isCanonical:!0},":broken_heart:":{unicode:["1f494"],fname:"1f494",uc:"1f494",isCanonical:!0},":mega:":{unicode:["1f4e3"],fname:"1f4e3",uc:"1f4e3",isCanonical:!0},":outbox_tray:":{unicode:["1f4e4"],fname:"1f4e4",uc:"1f4e4",isCanonical:!0},":two_hearts:":{unicode:["1f495"],fname:"1f495",uc:"1f495",isCanonical:!0},":inbox_tray:":{unicode:["1f4e5"],fname:"1f4e5",uc:"1f4e5",isCanonical:!0},":package:":{unicode:["1f4e6"],fname:"1f4e6",uc:"1f4e6",isCanonical:!0},":sparkling_heart:":{unicode:["1f496"],fname:"1f496",uc:"1f496",isCanonical:!0},":e-mail:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!0},":email:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!1},":incoming_envelope:":{unicode:["1f4e8"],fname:"1f4e8",uc:"1f4e8",isCanonical:!0},":heartpulse:":{unicode:["1f497"],fname:"1f497",uc:"1f497",isCanonical:!0},":envelope_with_arrow:":{unicode:["1f4e9"],fname:"1f4e9",uc:"1f4e9",isCanonical:!0},":mailbox_closed:":{unicode:["1f4ea"],fname:"1f4ea",uc:"1f4ea",isCanonical:!0},":cupid:":{unicode:["1f498"],fname:"1f498",uc:"1f498",isCanonical:!0},":mailbox:":{unicode:["1f4eb"],fname:"1f4eb",uc:"1f4eb",isCanonical:!0},":postbox:":{unicode:["1f4ee"],fname:"1f4ee",uc:"1f4ee",isCanonical:!0},":blue_heart:":{unicode:["1f499"],fname:"1f499",uc:"1f499",isCanonical:!0},":newspaper:":{unicode:["1f4f0"],fname:"1f4f0",uc:"1f4f0",isCanonical:!0},":iphone:":{unicode:["1f4f1"],fname:"1f4f1",uc:"1f4f1",isCanonical:!0},":green_heart:":{unicode:["1f49a"],fname:"1f49a",uc:"1f49a",isCanonical:!0},":calling:":{unicode:["1f4f2"],fname:"1f4f2",uc:"1f4f2",isCanonical:!0},":vibration_mode:":{unicode:["1f4f3"],fname:"1f4f3",uc:"1f4f3",isCanonical:!0},":yellow_heart:":{unicode:["1f49b"],fname:"1f49b",uc:"1f49b",isCanonical:!0},":mobile_phone_off:":{unicode:["1f4f4"],fname:"1f4f4",uc:"1f4f4",isCanonical:!0},":signal_strength:":{unicode:["1f4f6"],fname:"1f4f6",uc:"1f4f6",isCanonical:!0},":purple_heart:":{unicode:["1f49c"],fname:"1f49c",uc:"1f49c",isCanonical:!0},":camera:":{unicode:["1f4f7"],fname:"1f4f7",uc:"1f4f7",isCanonical:!0},":video_camera:":{unicode:["1f4f9"],fname:"1f4f9",uc:"1f4f9",isCanonical:!0},":gift_heart:":{unicode:["1f49d"],fname:"1f49d",uc:"1f49d",isCanonical:!0},":tv:":{unicode:["1f4fa"],fname:"1f4fa",uc:"1f4fa",isCanonical:!0},":radio:":{unicode:["1f4fb"],fname:"1f4fb",uc:"1f4fb",isCanonical:!0},":revolving_hearts:":{unicode:["1f49e"],fname:"1f49e",uc:"1f49e",isCanonical:!0},":vhs:":{unicode:["1f4fc"],fname:"1f4fc",uc:"1f4fc",isCanonical:!0},":arrows_clockwise:":{unicode:["1f503"],fname:"1f503",uc:"1f503",isCanonical:!0},":heart_decoration:":{unicode:["1f49f"],fname:"1f49f",uc:"1f49f",isCanonical:!0},":loud_sound:":{unicode:["1f50a"],fname:"1f50a",uc:"1f50a",isCanonical:!0},":battery:":{unicode:["1f50b"],fname:"1f50b",uc:"1f50b",isCanonical:!0},":diamond_shape_with_a_dot_inside:":{unicode:["1f4a0"],fname:"1f4a0",uc:"1f4a0",isCanonical:!0},":electric_plug:":{unicode:["1f50c"],fname:"1f50c",uc:"1f50c",isCanonical:!0},":mag:":{unicode:["1f50d"],fname:"1f50d",uc:"1f50d",isCanonical:!0},":bulb:":{unicode:["1f4a1"],fname:"1f4a1",uc:"1f4a1",isCanonical:!0},":mag_right:":{unicode:["1f50e"],fname:"1f50e",uc:"1f50e",isCanonical:!0},":lock_with_ink_pen:":{unicode:["1f50f"],fname:"1f50f",uc:"1f50f",isCanonical:!0},":anger:":{unicode:["1f4a2"],fname:"1f4a2",uc:"1f4a2",isCanonical:!0},":closed_lock_with_key:":{unicode:["1f510"],fname:"1f510",uc:"1f510",isCanonical:!0},":key:":{unicode:["1f511"],fname:"1f511",uc:"1f511",isCanonical:!0},":bomb:":{unicode:["1f4a3"],fname:"1f4a3",uc:"1f4a3",isCanonical:!0},":lock:":{unicode:["1f512"],fname:"1f512",uc:"1f512",isCanonical:!0},":unlock:":{unicode:["1f513"],fname:"1f513",uc:"1f513",isCanonical:!0},":zzz:":{unicode:["1f4a4"],fname:"1f4a4",uc:"1f4a4",isCanonical:!0},":bell:":{unicode:["1f514"],fname:"1f514",uc:"1f514",isCanonical:!0},":bookmark:":{unicode:["1f516"],fname:"1f516",uc:"1f516",isCanonical:!0},":boom:":{unicode:["1f4a5"],fname:"1f4a5",uc:"1f4a5",isCanonical:!0},":link:":{unicode:["1f517"],fname:"1f517",uc:"1f517",isCanonical:!0},":radio_button:":{unicode:["1f518"],fname:"1f518",uc:"1f518",isCanonical:!0},":sweat_drops:":{unicode:["1f4a6"],fname:"1f4a6",uc:"1f4a6",isCanonical:!0},":back:":{unicode:["1f519"],fname:"1f519",uc:"1f519",isCanonical:!0},":end:":{unicode:["1f51a"],fname:"1f51a",uc:"1f51a",isCanonical:!0},":droplet:":{unicode:["1f4a7"],fname:"1f4a7",uc:"1f4a7",isCanonical:!0},":on:":{unicode:["1f51b"],fname:"1f51b",uc:"1f51b",isCanonical:!0},":soon:":{unicode:["1f51c"],fname:"1f51c",uc:"1f51c",isCanonical:!0},":dash:":{unicode:["1f4a8"],fname:"1f4a8",uc:"1f4a8",isCanonical:!0},":top:":{unicode:["1f51d"],fname:"1f51d",uc:"1f51d",isCanonical:!0},":underage:":{unicode:["1f51e"],fname:"1f51e",uc:"1f51e",isCanonical:!0},":poop:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!0},":shit:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":hankey:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":poo:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":keycap_ten:":{unicode:["1f51f"],fname:"1f51f",uc:"1f51f",isCanonical:!0},":muscle:":{unicode:["1f4aa"],fname:"1f4aa",uc:"1f4aa",isCanonical:!0},":capital_abcd:":{unicode:["1f520"],fname:"1f520",uc:"1f520",isCanonical:!0},":abcd:":{unicode:["1f521"],fname:"1f521",uc:"1f521",isCanonical:!0},":dizzy:":{unicode:["1f4ab"],fname:"1f4ab",uc:"1f4ab",isCanonical:!0},":1234:":{unicode:["1f522"],fname:"1f522",uc:"1f522",isCanonical:!0},":symbols:":{unicode:["1f523"],fname:"1f523",uc:"1f523",isCanonical:!0},":speech_balloon:":{unicode:["1f4ac"],fname:"1f4ac",uc:"1f4ac",isCanonical:!0},":abc:":{unicode:["1f524"],fname:"1f524",uc:"1f524",isCanonical:!0},":fire:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!0},":flame:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!1},":white_flower:":{unicode:["1f4ae"],fname:"1f4ae",uc:"1f4ae",isCanonical:!0},":flashlight:":{unicode:["1f526"],fname:"1f526",uc:"1f526",isCanonical:!0},":wrench:":{unicode:["1f527"],fname:"1f527",uc:"1f527",isCanonical:!0},":100:":{unicode:["1f4af"],fname:"1f4af",uc:"1f4af",isCanonical:!0},":hammer:":{unicode:["1f528"],fname:"1f528",uc:"1f528",isCanonical:!0},":nut_and_bolt:":{unicode:["1f529"],fname:"1f529",uc:"1f529",isCanonical:!0},":moneybag:":{unicode:["1f4b0"],fname:"1f4b0",uc:"1f4b0",isCanonical:!0},":knife:":{unicode:["1f52a"],fname:"1f52a",uc:"1f52a",isCanonical:!0},":gun:":{unicode:["1f52b"],fname:"1f52b",uc:"1f52b",isCanonical:!0},":currency_exchange:":{unicode:["1f4b1"],fname:"1f4b1",uc:"1f4b1",isCanonical:!0},":crystal_ball:":{unicode:["1f52e"],fname:"1f52e",uc:"1f52e",isCanonical:!0},":heavy_dollar_sign:":{unicode:["1f4b2"],fname:"1f4b2",uc:"1f4b2",isCanonical:!0},":six_pointed_star:":{unicode:["1f52f"],fname:"1f52f",uc:"1f52f",isCanonical:!0},":credit_card:":{unicode:["1f4b3"],fname:"1f4b3",uc:"1f4b3",isCanonical:!0},":beginner:":{unicode:["1f530"],fname:"1f530",uc:"1f530",isCanonical:!0},":trident:":{unicode:["1f531"],fname:"1f531",uc:"1f531",isCanonical:!0},":yen:":{unicode:["1f4b4"],fname:"1f4b4",uc:"1f4b4",isCanonical:!0},":black_square_button:":{unicode:["1f532"],fname:"1f532",uc:"1f532",isCanonical:!0},":white_square_button:":{unicode:["1f533"],fname:"1f533",uc:"1f533",isCanonical:!0},":dollar:":{unicode:["1f4b5"],fname:"1f4b5",uc:"1f4b5",isCanonical:!0},":red_circle:":{unicode:["1f534"],fname:"1f534",uc:"1f534",isCanonical:!0},":blue_circle:":{unicode:["1f535"],fname:"1f535",uc:"1f535",isCanonical:!0},":money_with_wings:":{unicode:["1f4b8"],fname:"1f4b8",uc:"1f4b8",isCanonical:!0},":large_orange_diamond:":{unicode:["1f536"],fname:"1f536",uc:"1f536",isCanonical:!0},":large_blue_diamond:":{unicode:["1f537"],fname:"1f537",uc:"1f537",isCanonical:!0},":chart:":{unicode:["1f4b9"],fname:"1f4b9",uc:"1f4b9",isCanonical:!0},":small_orange_diamond:":{unicode:["1f538"],fname:"1f538",uc:"1f538",isCanonical:!0},":small_blue_diamond:":{unicode:["1f539"],fname:"1f539",uc:"1f539",isCanonical:!0},":seat:":{unicode:["1f4ba"],fname:"1f4ba",uc:"1f4ba",isCanonical:!0},":small_red_triangle:":{unicode:["1f53a"],fname:"1f53a",uc:"1f53a",isCanonical:!0},":small_red_triangle_down:":{unicode:["1f53b"],fname:"1f53b",uc:"1f53b",isCanonical:!0},":computer:":{unicode:["1f4bb"],fname:"1f4bb",uc:"1f4bb",isCanonical:!0},":arrow_up_small:":{unicode:["1f53c"],fname:"1f53c",uc:"1f53c",isCanonical:!0},":briefcase:":{unicode:["1f4bc"],fname:"1f4bc",uc:"1f4bc",isCanonical:!0},":arrow_down_small:":{unicode:["1f53d"],fname:"1f53d",uc:"1f53d",isCanonical:!0},":clock1:":{unicode:["1f550"],fname:"1f550",uc:"1f550",isCanonical:!0},":minidisc:":{unicode:["1f4bd"],fname:"1f4bd",uc:"1f4bd",isCanonical:!0},":clock2:":{unicode:["1f551"],fname:"1f551",uc:"1f551",isCanonical:!0},":floppy_disk:":{unicode:["1f4be"],fname:"1f4be",uc:"1f4be",isCanonical:!0},":clock3:":{unicode:["1f552"],fname:"1f552",uc:"1f552",isCanonical:!0},":cd:":{unicode:["1f4bf"],fname:"1f4bf",uc:"1f4bf",isCanonical:!0},":clock4:":{unicode:["1f553"],fname:"1f553",uc:"1f553",isCanonical:!0},":dvd:":{unicode:["1f4c0"],fname:"1f4c0",uc:"1f4c0",isCanonical:!0},":clock5:":{unicode:["1f554"],fname:"1f554",uc:"1f554",isCanonical:!0},":clock6:":{unicode:["1f555"],fname:"1f555",uc:"1f555",isCanonical:!0},":file_folder:":{unicode:["1f4c1"],fname:"1f4c1",uc:"1f4c1",isCanonical:!0},":clock7:":{unicode:["1f556"],fname:"1f556",uc:"1f556",isCanonical:!0},":clock8:":{unicode:["1f557"],fname:"1f557",uc:"1f557",isCanonical:!0},":open_file_folder:":{unicode:["1f4c2"],fname:"1f4c2",uc:"1f4c2",isCanonical:!0},":clock9:":{unicode:["1f558"],fname:"1f558",uc:"1f558",isCanonical:!0},":clock10:":{unicode:["1f559"],fname:"1f559",uc:"1f559",isCanonical:!0},":page_with_curl:":{unicode:["1f4c3"],fname:"1f4c3",uc:"1f4c3",isCanonical:!0},":clock11:":{unicode:["1f55a"],fname:"1f55a",uc:"1f55a",isCanonical:!0},":clock12:":{unicode:["1f55b"],fname:"1f55b",uc:"1f55b",isCanonical:!0},":page_facing_up:":{unicode:["1f4c4"],fname:"1f4c4",uc:"1f4c4",isCanonical:!0},":mount_fuji:":{unicode:["1f5fb"],fname:"1f5fb",uc:"1f5fb",isCanonical:!0},":tokyo_tower:":{unicode:["1f5fc"],fname:"1f5fc",uc:"1f5fc",isCanonical:!0},":date:":{unicode:["1f4c5"],fname:"1f4c5",uc:"1f4c5",isCanonical:!0},":statue_of_liberty:":{unicode:["1f5fd"],fname:"1f5fd",uc:"1f5fd",isCanonical:!0},":japan:":{unicode:["1f5fe"],fname:"1f5fe",uc:"1f5fe",isCanonical:!0},":calendar:":{unicode:["1f4c6"],fname:"1f4c6",uc:"1f4c6",isCanonical:!0},":moyai:":{unicode:["1f5ff"],fname:"1f5ff",uc:"1f5ff",isCanonical:!0},":grin:":{unicode:["1f601"],fname:"1f601",uc:"1f601",isCanonical:!0},":joy:":{unicode:["1f602"],fname:"1f602",uc:"1f602",isCanonical:!0},":smiley:":{unicode:["1f603"],fname:"1f603",uc:"1f603",isCanonical:!0},":chart_with_upwards_trend:":{unicode:["1f4c8"],fname:"1f4c8",uc:"1f4c8",isCanonical:!0},":smile:":{unicode:["1f604"],fname:"1f604",uc:"1f604",isCanonical:!0},":sweat_smile:":{unicode:["1f605"],fname:"1f605",uc:"1f605",isCanonical:!0},":chart_with_downwards_trend:":{unicode:["1f4c9"],fname:"1f4c9",uc:"1f4c9",isCanonical:!0},":laughing:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!0},":satisfied:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!1},":wink:":{unicode:["1f609"],fname:"1f609",uc:"1f609",isCanonical:!0},":bar_chart:":{unicode:["1f4ca"],fname:"1f4ca",uc:"1f4ca",isCanonical:!0},":blush:":{unicode:["1f60a"],fname:"1f60a",uc:"1f60a",isCanonical:!0},":yum:":{unicode:["1f60b"],fname:"1f60b",uc:"1f60b",isCanonical:!0},":clipboard:":{unicode:["1f4cb"],fname:"1f4cb",uc:"1f4cb",isCanonical:!0},":relieved:":{unicode:["1f60c"],fname:"1f60c",uc:"1f60c",isCanonical:!0},":heart_eyes:":{unicode:["1f60d"],fname:"1f60d",uc:"1f60d",isCanonical:!0},":pushpin:":{unicode:["1f4cc"],fname:"1f4cc",uc:"1f4cc",isCanonical:!0},":smirk:":{unicode:["1f60f"],fname:"1f60f",uc:"1f60f",isCanonical:!0},":unamused:":{unicode:["1f612"],fname:"1f612",uc:"1f612",isCanonical:!0},":round_pushpin:":{unicode:["1f4cd"],fname:"1f4cd",uc:"1f4cd",isCanonical:!0},":sweat:":{unicode:["1f613"],fname:"1f613",uc:"1f613",isCanonical:!0},":pensive:":{unicode:["1f614"],fname:"1f614",uc:"1f614",isCanonical:!0},":paperclip:":{unicode:["1f4ce"],fname:"1f4ce",uc:"1f4ce",isCanonical:!0},":confounded:":{unicode:["1f616"],fname:"1f616",uc:"1f616",isCanonical:!0},":kissing_heart:":{unicode:["1f618"],fname:"1f618",uc:"1f618",isCanonical:!0},":straight_ruler:":{unicode:["1f4cf"],fname:"1f4cf",uc:"1f4cf",isCanonical:!0},":kissing_closed_eyes:":{unicode:["1f61a"],fname:"1f61a",uc:"1f61a",isCanonical:!0},":stuck_out_tongue_winking_eye:":{unicode:["1f61c"],fname:"1f61c",uc:"1f61c",isCanonical:!0},":triangular_ruler:":{unicode:["1f4d0"],fname:"1f4d0",uc:"1f4d0",isCanonical:!0},":stuck_out_tongue_closed_eyes:":{unicode:["1f61d"],fname:"1f61d",uc:"1f61d",isCanonical:!0},":disappointed:":{unicode:["1f61e"],fname:"1f61e",uc:"1f61e",isCanonical:!0},":bookmark_tabs:":{unicode:["1f4d1"],fname:"1f4d1",uc:"1f4d1",isCanonical:!0},":angry:":{unicode:["1f620"],fname:"1f620",uc:"1f620",isCanonical:!0},":rage:":{unicode:["1f621"],fname:"1f621",uc:"1f621",isCanonical:!0},":cry:":{unicode:["1f622"],fname:"1f622",uc:"1f622",isCanonical:!0},":persevere:":{unicode:["1f623"],fname:"1f623",uc:"1f623",isCanonical:!0},":triumph:":{unicode:["1f624"],fname:"1f624",uc:"1f624",isCanonical:!0},":disappointed_relieved:":{unicode:["1f625"],fname:"1f625",uc:"1f625",isCanonical:!0},":fearful:":{unicode:["1f628"],fname:"1f628",uc:"1f628",isCanonical:!0},":weary:":{unicode:["1f629"],fname:"1f629",uc:"1f629",isCanonical:!0},":sleepy:":{unicode:["1f62a"],fname:"1f62a",uc:"1f62a",isCanonical:!0},":tired_face:":{unicode:["1f62b"],fname:"1f62b",uc:"1f62b",isCanonical:!0},":sob:":{unicode:["1f62d"],fname:"1f62d",uc:"1f62d",isCanonical:!0},":cold_sweat:":{unicode:["1f630"],fname:"1f630",uc:"1f630",isCanonical:!0},":scream:":{unicode:["1f631"],fname:"1f631",uc:"1f631",isCanonical:!0},":astonished:":{unicode:["1f632"],fname:"1f632",uc:"1f632",isCanonical:!0},":flushed:":{unicode:["1f633"],fname:"1f633",uc:"1f633",isCanonical:!0},":dizzy_face:":{unicode:["1f635"],fname:"1f635",uc:"1f635",isCanonical:!0},":mask:":{unicode:["1f637"],fname:"1f637",uc:"1f637",isCanonical:!0},":smile_cat:":{unicode:["1f638"],fname:"1f638",uc:"1f638",isCanonical:!0},":joy_cat:":{unicode:["1f639"],fname:"1f639",uc:"1f639",isCanonical:!0},":smiley_cat:":{unicode:["1f63a"],fname:"1f63a",uc:"1f63a",isCanonical:!0},":heart_eyes_cat:":{unicode:["1f63b"],fname:"1f63b",uc:"1f63b",isCanonical:!0},":smirk_cat:":{unicode:["1f63c"],fname:"1f63c",uc:"1f63c",isCanonical:!0},":kissing_cat:":{unicode:["1f63d"],fname:"1f63d",uc:"1f63d",isCanonical:!0},":pouting_cat:":{unicode:["1f63e"],fname:"1f63e",uc:"1f63e",isCanonical:!0},":crying_cat_face:":{unicode:["1f63f"],fname:"1f63f",uc:"1f63f",isCanonical:!0},":scream_cat:":{unicode:["1f640"],fname:"1f640",uc:"1f640",isCanonical:!0},":no_good:":{unicode:["1f645"],fname:"1f645",uc:"1f645",isCanonical:!0},":ok_woman:":{unicode:["1f646"],fname:"1f646",uc:"1f646",isCanonical:!0},":bow:":{unicode:["1f647"],fname:"1f647",uc:"1f647",isCanonical:!0},":see_no_evil:":{unicode:["1f648"],fname:"1f648",uc:"1f648",isCanonical:!0},":hear_no_evil:":{unicode:["1f649"],fname:"1f649",uc:"1f649",isCanonical:!0},":speak_no_evil:":{unicode:["1f64a"],fname:"1f64a",uc:"1f64a",isCanonical:!0},":raising_hand:":{unicode:["1f64b"],fname:"1f64b",uc:"1f64b",isCanonical:!0},":raised_hands:":{unicode:["1f64c"],fname:"1f64c",uc:"1f64c",isCanonical:!0},":person_frowning:":{unicode:["1f64d"],fname:"1f64d",uc:"1f64d",isCanonical:!0},":person_with_pouting_face:":{unicode:["1f64e"],fname:"1f64e",uc:"1f64e",isCanonical:!0},":pray:":{unicode:["1f64f"],fname:"1f64f",uc:"1f64f",isCanonical:!0},":rocket:":{unicode:["1f680"],fname:"1f680",uc:"1f680",isCanonical:!0},":railway_car:":{unicode:["1f683"],fname:"1f683",uc:"1f683",isCanonical:!0},":bullettrain_side:":{unicode:["1f684"],fname:"1f684",uc:"1f684",isCanonical:!0},":bullettrain_front:":{unicode:["1f685"],fname:"1f685",uc:"1f685",isCanonical:!0},":metro:":{unicode:["1f687"],fname:"1f687",uc:"1f687",isCanonical:!0},":station:":{unicode:["1f689"],fname:"1f689",uc:"1f689",isCanonical:!0},":bus:":{unicode:["1f68c"],fname:"1f68c",uc:"1f68c",isCanonical:!0},":busstop:":{unicode:["1f68f"],fname:"1f68f",uc:"1f68f",isCanonical:!0},":ambulance:":{unicode:["1f691"],fname:"1f691",uc:"1f691",isCanonical:!0},":fire_engine:":{unicode:["1f692"],fname:"1f692",uc:"1f692",isCanonical:!0},":police_car:":{unicode:["1f693"],fname:"1f693",uc:"1f693",isCanonical:!0},":taxi:":{unicode:["1f695"],fname:"1f695",uc:"1f695",isCanonical:!0},":red_car:":{unicode:["1f697"],fname:"1f697",uc:"1f697",isCanonical:!0},":blue_car:":{unicode:["1f699"],fname:"1f699",uc:"1f699",isCanonical:!0},":truck:":{unicode:["1f69a"],fname:"1f69a",uc:"1f69a",isCanonical:!0},":ship:":{unicode:["1f6a2"],fname:"1f6a2",uc:"1f6a2",isCanonical:!0},":speedboat:":{unicode:["1f6a4"],fname:"1f6a4",uc:"1f6a4",isCanonical:!0},":traffic_light:":{unicode:["1f6a5"],fname:"1f6a5",uc:"1f6a5",isCanonical:!0},":construction:":{unicode:["1f6a7"],fname:"1f6a7",uc:"1f6a7",isCanonical:!0},":rotating_light:":{unicode:["1f6a8"],fname:"1f6a8",uc:"1f6a8",isCanonical:!0},":triangular_flag_on_post:":{unicode:["1f6a9"],fname:"1f6a9",uc:"1f6a9",isCanonical:!0},":door:":{unicode:["1f6aa"],fname:"1f6aa",uc:"1f6aa",isCanonical:!0},":no_entry_sign:":{unicode:["1f6ab"],fname:"1f6ab",uc:"1f6ab",isCanonical:!0},":smoking:":{unicode:["1f6ac"],fname:"1f6ac",uc:"1f6ac",isCanonical:!0},":no_smoking:":{unicode:["1f6ad"],fname:"1f6ad",uc:"1f6ad",isCanonical:!0},":bike:":{unicode:["1f6b2"],fname:"1f6b2",uc:"1f6b2",isCanonical:!0},":walking:":{unicode:["1f6b6"],fname:"1f6b6",uc:"1f6b6",isCanonical:!0},":mens:":{unicode:["1f6b9"],fname:"1f6b9",uc:"1f6b9",isCanonical:!0},":womens:":{unicode:["1f6ba"],fname:"1f6ba",uc:"1f6ba",isCanonical:!0},":restroom:":{unicode:["1f6bb"],fname:"1f6bb",uc:"1f6bb",isCanonical:!0},":baby_symbol:":{unicode:["1f6bc"],fname:"1f6bc",uc:"1f6bc",isCanonical:!0},":toilet:":{unicode:["1f6bd"],fname:"1f6bd",uc:"1f6bd",isCanonical:!0},":wc:":{unicode:["1f6be"],fname:"1f6be",uc:"1f6be",isCanonical:!0},":bath:":{unicode:["1f6c0"],fname:"1f6c0",uc:"1f6c0",isCanonical:!0},":metal:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!0},":sign_of_the_horns:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!1},":grinning:":{unicode:["1f600"],fname:"1f600",uc:"1f600",isCanonical:!0},":innocent:":{unicode:["1f607"],fname:"1f607",uc:"1f607",isCanonical:!0},":smiling_imp:":{unicode:["1f608"],fname:"1f608",uc:"1f608",isCanonical:!0},":sunglasses:":{unicode:["1f60e"],fname:"1f60e",uc:"1f60e",isCanonical:!0},":neutral_face:":{unicode:["1f610"],fname:"1f610",uc:"1f610",isCanonical:!0},":expressionless:":{unicode:["1f611"],fname:"1f611",uc:"1f611",isCanonical:!0},":confused:":{unicode:["1f615"],fname:"1f615",uc:"1f615",isCanonical:!0},":kissing:":{unicode:["1f617"],fname:"1f617",uc:"1f617",isCanonical:!0},":kissing_smiling_eyes:":{unicode:["1f619"],fname:"1f619",uc:"1f619",isCanonical:!0},":stuck_out_tongue:":{unicode:["1f61b"],fname:"1f61b",uc:"1f61b",isCanonical:!0},":worried:":{unicode:["1f61f"],fname:"1f61f",uc:"1f61f",isCanonical:!0},":frowning:":{unicode:["1f626"],fname:"1f626",uc:"1f626",isCanonical:!0},":anguished:":{unicode:["1f627"],fname:"1f627",uc:"1f627",isCanonical:!0},":grimacing:":{unicode:["1f62c"],fname:"1f62c",uc:"1f62c",isCanonical:!0},":open_mouth:":{unicode:["1f62e"],fname:"1f62e",uc:"1f62e",isCanonical:!0},":hushed:":{unicode:["1f62f"],fname:"1f62f",uc:"1f62f",isCanonical:!0},":sleeping:":{unicode:["1f634"],fname:"1f634",uc:"1f634",isCanonical:!0},":no_mouth:":{unicode:["1f636"],fname:"1f636",uc:"1f636",isCanonical:!0},":helicopter:":{unicode:["1f681"],fname:"1f681",uc:"1f681",isCanonical:!0},":steam_locomotive:":{unicode:["1f682"],fname:"1f682",uc:"1f682",isCanonical:!0},":train2:":{unicode:["1f686"],fname:"1f686",uc:"1f686",isCanonical:!0},":light_rail:":{unicode:["1f688"],fname:"1f688",uc:"1f688",isCanonical:!0},":tram:":{unicode:["1f68a"],fname:"1f68a",uc:"1f68a",isCanonical:!0},":oncoming_bus:":{unicode:["1f68d"],fname:"1f68d",uc:"1f68d",isCanonical:!0},":trolleybus:":{unicode:["1f68e"],fname:"1f68e",uc:"1f68e",isCanonical:!0},":minibus:":{unicode:["1f690"],fname:"1f690",uc:"1f690",isCanonical:!0},":oncoming_police_car:":{unicode:["1f694"],fname:"1f694",uc:"1f694",isCanonical:!0},":oncoming_taxi:":{unicode:["1f696"],fname:"1f696",uc:"1f696",isCanonical:!0},":oncoming_automobile:":{unicode:["1f698"],fname:"1f698",uc:"1f698",isCanonical:!0},":articulated_lorry:":{unicode:["1f69b"],fname:"1f69b",uc:"1f69b",isCanonical:!0},":tractor:":{unicode:["1f69c"],fname:"1f69c",uc:"1f69c",isCanonical:!0},":monorail:":{unicode:["1f69d"],fname:"1f69d",uc:"1f69d",isCanonical:!0},":mountain_railway:":{unicode:["1f69e"],fname:"1f69e",uc:"1f69e",isCanonical:!0},":suspension_railway:":{unicode:["1f69f"],fname:"1f69f",uc:"1f69f",isCanonical:!0},":mountain_cableway:":{unicode:["1f6a0"],fname:"1f6a0",uc:"1f6a0",isCanonical:!0},":aerial_tramway:":{unicode:["1f6a1"],fname:"1f6a1",uc:"1f6a1",isCanonical:!0},":rowboat:":{unicode:["1f6a3"],fname:"1f6a3",uc:"1f6a3",isCanonical:!0},":vertical_traffic_light:":{unicode:["1f6a6"],fname:"1f6a6",uc:"1f6a6",isCanonical:!0},":put_litter_in_its_place:":{unicode:["1f6ae"],fname:"1f6ae",uc:"1f6ae",isCanonical:!0},":do_not_litter:":{unicode:["1f6af"],fname:"1f6af",uc:"1f6af",isCanonical:!0},":potable_water:":{unicode:["1f6b0"],fname:"1f6b0",uc:"1f6b0",isCanonical:!0},":non-potable_water:":{unicode:["1f6b1"],fname:"1f6b1",uc:"1f6b1",isCanonical:!0},":no_bicycles:":{unicode:["1f6b3"],fname:"1f6b3",uc:"1f6b3",isCanonical:!0},":bicyclist:":{unicode:["1f6b4"],fname:"1f6b4",uc:"1f6b4",isCanonical:!0},":mountain_bicyclist:":{unicode:["1f6b5"],fname:"1f6b5",uc:"1f6b5",isCanonical:!0},":no_pedestrians:":{unicode:["1f6b7"],fname:"1f6b7",uc:"1f6b7",isCanonical:!0},":children_crossing:":{unicode:["1f6b8"],fname:"1f6b8",uc:"1f6b8",isCanonical:!0},":shower:":{unicode:["1f6bf"],fname:"1f6bf",uc:"1f6bf",isCanonical:!0},":bathtub:":{unicode:["1f6c1"],fname:"1f6c1",uc:"1f6c1",isCanonical:!0},":passport_control:":{unicode:["1f6c2"],fname:"1f6c2",uc:"1f6c2",isCanonical:!0},":customs:":{unicode:["1f6c3"],fname:"1f6c3",uc:"1f6c3",isCanonical:!0},":baggage_claim:":{unicode:["1f6c4"],fname:"1f6c4",uc:"1f6c4",isCanonical:!0},":left_luggage:":{unicode:["1f6c5"],fname:"1f6c5",uc:"1f6c5",isCanonical:!0},":earth_africa:":{unicode:["1f30d"],fname:"1f30d",uc:"1f30d",isCanonical:!0},":earth_americas:":{unicode:["1f30e"],fname:"1f30e",uc:"1f30e",isCanonical:!0},":globe_with_meridians:":{unicode:["1f310"],fname:"1f310",uc:"1f310",isCanonical:!0},":waxing_crescent_moon:":{unicode:["1f312"],fname:"1f312",uc:"1f312",isCanonical:!0},":waning_gibbous_moon:":{unicode:["1f316"],fname:"1f316",uc:"1f316",isCanonical:!0},":last_quarter_moon:":{unicode:["1f317"],fname:"1f317",uc:"1f317",isCanonical:!0},":waning_crescent_moon:":{unicode:["1f318"],fname:"1f318",uc:"1f318",isCanonical:!0},":new_moon_with_face:":{unicode:["1f31a"],fname:"1f31a",uc:"1f31a",isCanonical:!0},":last_quarter_moon_with_face:":{unicode:["1f31c"],fname:"1f31c",uc:"1f31c",isCanonical:!0},":full_moon_with_face:":{unicode:["1f31d"],fname:"1f31d",uc:"1f31d",isCanonical:!0},":sun_with_face:":{unicode:["1f31e"],fname:"1f31e",uc:"1f31e",isCanonical:!0},":evergreen_tree:":{unicode:["1f332"],fname:"1f332",uc:"1f332",isCanonical:!0},":deciduous_tree:":{unicode:["1f333"],fname:"1f333",uc:"1f333",isCanonical:!0},":lemon:":{unicode:["1f34b"],fname:"1f34b",uc:"1f34b",isCanonical:!0},":pear:":{unicode:["1f350"],fname:"1f350",uc:"1f350",isCanonical:!0},":baby_bottle:":{unicode:["1f37c"],fname:"1f37c",uc:"1f37c",isCanonical:!0},":horse_racing:":{unicode:["1f3c7"],fname:"1f3c7",uc:"1f3c7",isCanonical:!0},":rugby_football:":{unicode:["1f3c9"],fname:"1f3c9",uc:"1f3c9",isCanonical:!0},":european_post_office:":{unicode:["1f3e4"],fname:"1f3e4",uc:"1f3e4",isCanonical:!0},":rat:":{unicode:["1f400"],fname:"1f400",uc:"1f400",isCanonical:!0},":mouse2:":{unicode:["1f401"],fname:"1f401",uc:"1f401",isCanonical:!0},":ox:":{unicode:["1f402"],fname:"1f402",uc:"1f402",isCanonical:!0},":water_buffalo:":{unicode:["1f403"],fname:"1f403",uc:"1f403",isCanonical:!0},":cow2:":{unicode:["1f404"],fname:"1f404",uc:"1f404",isCanonical:!0},":tiger2:":{unicode:["1f405"],fname:"1f405",uc:"1f405",isCanonical:!0},":leopard:":{unicode:["1f406"],fname:"1f406",uc:"1f406",isCanonical:!0},":rabbit2:":{unicode:["1f407"],fname:"1f407",uc:"1f407",isCanonical:!0},":cat2:":{unicode:["1f408"],fname:"1f408",uc:"1f408",isCanonical:!0},":dragon:":{unicode:["1f409"],fname:"1f409",uc:"1f409",isCanonical:!0},":crocodile:":{unicode:["1f40a"],fname:"1f40a",uc:"1f40a",isCanonical:!0},":whale2:":{unicode:["1f40b"],fname:"1f40b",uc:"1f40b",isCanonical:!0},":ram:":{unicode:["1f40f"],fname:"1f40f",uc:"1f40f",isCanonical:!0},":goat:":{unicode:["1f410"],fname:"1f410",uc:"1f410",isCanonical:!0},":rooster:":{unicode:["1f413"],fname:"1f413",uc:"1f413",isCanonical:!0},":dog2:":{unicode:["1f415"],fname:"1f415",uc:"1f415",isCanonical:!0},":pig2:":{unicode:["1f416"],fname:"1f416",uc:"1f416",isCanonical:!0},":dromedary_camel:":{unicode:["1f42a"],fname:"1f42a",uc:"1f42a",isCanonical:!0},":busts_in_silhouette:":{unicode:["1f465"],fname:"1f465",uc:"1f465",isCanonical:!0},":two_men_holding_hands:":{unicode:["1f46c"],fname:"1f46c",uc:"1f46c",isCanonical:!0},":two_women_holding_hands:":{unicode:["1f46d"],fname:"1f46d",uc:"1f46d",isCanonical:!0},":thought_balloon:":{unicode:["1f4ad"],fname:"1f4ad",uc:"1f4ad",isCanonical:!0},":euro:":{unicode:["1f4b6"],fname:"1f4b6",uc:"1f4b6",isCanonical:!0},":pound:":{unicode:["1f4b7"],fname:"1f4b7",uc:"1f4b7",isCanonical:!0},":mailbox_with_mail:":{unicode:["1f4ec"],fname:"1f4ec",uc:"1f4ec",isCanonical:!0},":mailbox_with_no_mail:":{unicode:["1f4ed"],
+fname:"1f4ed",uc:"1f4ed",isCanonical:!0},":postal_horn:":{unicode:["1f4ef"],fname:"1f4ef",uc:"1f4ef",isCanonical:!0},":no_mobile_phones:":{unicode:["1f4f5"],fname:"1f4f5",uc:"1f4f5",isCanonical:!0},":twisted_rightwards_arrows:":{unicode:["1f500"],fname:"1f500",uc:"1f500",isCanonical:!0},":repeat:":{unicode:["1f501"],fname:"1f501",uc:"1f501",isCanonical:!0},":repeat_one:":{unicode:["1f502"],fname:"1f502",uc:"1f502",isCanonical:!0},":arrows_counterclockwise:":{unicode:["1f504"],fname:"1f504",uc:"1f504",isCanonical:!0},":low_brightness:":{unicode:["1f505"],fname:"1f505",uc:"1f505",isCanonical:!0},":high_brightness:":{unicode:["1f506"],fname:"1f506",uc:"1f506",isCanonical:!0},":mute:":{unicode:["1f507"],fname:"1f507",uc:"1f507",isCanonical:!0},":sound:":{unicode:["1f509"],fname:"1f509",uc:"1f509",isCanonical:!0},":no_bell:":{unicode:["1f515"],fname:"1f515",uc:"1f515",isCanonical:!0},":microscope:":{unicode:["1f52c"],fname:"1f52c",uc:"1f52c",isCanonical:!0},":telescope:":{unicode:["1f52d"],fname:"1f52d",uc:"1f52d",isCanonical:!0},":clock130:":{unicode:["1f55c"],fname:"1f55c",uc:"1f55c",isCanonical:!0},":clock230:":{unicode:["1f55d"],fname:"1f55d",uc:"1f55d",isCanonical:!0},":clock330:":{unicode:["1f55e"],fname:"1f55e",uc:"1f55e",isCanonical:!0},":clock430:":{unicode:["1f55f"],fname:"1f55f",uc:"1f55f",isCanonical:!0},":clock530:":{unicode:["1f560"],fname:"1f560",uc:"1f560",isCanonical:!0},":clock630:":{unicode:["1f561"],fname:"1f561",uc:"1f561",isCanonical:!0},":clock730:":{unicode:["1f562"],fname:"1f562",uc:"1f562",isCanonical:!0},":clock830:":{unicode:["1f563"],fname:"1f563",uc:"1f563",isCanonical:!0},":clock930:":{unicode:["1f564"],fname:"1f564",uc:"1f564",isCanonical:!0},":clock1030:":{unicode:["1f565"],fname:"1f565",uc:"1f565",isCanonical:!0},":clock1130:":{unicode:["1f566"],fname:"1f566",uc:"1f566",isCanonical:!0},":clock1230:":{unicode:["1f567"],fname:"1f567",uc:"1f567",isCanonical:!0},":speaker:":{unicode:["1f508"],fname:"1f508",uc:"1f508",isCanonical:!0},":train:":{unicode:["1f68b"],fname:"1f68b",uc:"1f68b",isCanonical:!0},":medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!0},":sports_medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!1},":flag_black:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!0},":waving_black_flag:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!1},":camera_with_flash:":{unicode:["1f4f8"],fname:"1f4f8",uc:"1f4f8",isCanonical:!0},":sleeping_accommodation:":{unicode:["1f6cc"],fname:"1f6cc",uc:"1f6cc",isCanonical:!0},":middle_finger:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!0},":reversed_hand_with_middle_finger_extended:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!1},":vulcan:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!1},":slight_frown:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!0},":slightly_frowning_face:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!1},":slight_smile:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!0},":slightly_smiling_face:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!1},":airplane_departure:":{unicode:["1f6eb"],fname:"1f6eb",uc:"1f6eb",isCanonical:!0},":airplane_arriving:":{unicode:["1f6ec"],fname:"1f6ec",uc:"1f6ec",isCanonical:!0},":tone1:":{unicode:["1f3fb"],fname:"1f3fb",uc:"1f3fb",isCanonical:!0},":tone2:":{unicode:["1f3fc"],fname:"1f3fc",uc:"1f3fc",isCanonical:!0},":tone3:":{unicode:["1f3fd"],fname:"1f3fd",uc:"1f3fd",isCanonical:!0},":tone4:":{unicode:["1f3fe"],fname:"1f3fe",uc:"1f3fe",isCanonical:!0},":tone5:":{unicode:["1f3ff"],fname:"1f3ff",uc:"1f3ff",isCanonical:!0},":upside_down:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!0},":upside_down_face:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!1},":money_mouth:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!0},":money_mouth_face:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!1},":nerd:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!0},":nerd_face:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!1},":hugging:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!0},":hugging_face:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!1},":rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!0},":face_with_rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!1},":thinking:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!0},":thinking_face:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!1},":zipper_mouth:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!0},":zipper_mouth_face:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!1},":thermometer_face:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!0},":face_with_thermometer:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!1},":head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!0},":face_with_head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!1},":robot:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!0},":robot_face:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!1},":lion_face:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!0},":lion:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!1},":unicorn:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!0},":unicorn_face:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!1},":scorpion:":{unicode:["1f982"],fname:"1f982",uc:"1f982",isCanonical:!0},":crab:":{unicode:["1f980"],fname:"1f980",uc:"1f980",isCanonical:!0},":turkey:":{unicode:["1f983"],fname:"1f983",uc:"1f983",isCanonical:!0},":cheese:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!0},":cheese_wedge:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!1},":hotdog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!0},":hot_dog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!1},":taco:":{unicode:["1f32e"],fname:"1f32e",uc:"1f32e",isCanonical:!0},":burrito:":{unicode:["1f32f"],fname:"1f32f",uc:"1f32f",isCanonical:!0},":popcorn:":{unicode:["1f37f"],fname:"1f37f",uc:"1f37f",isCanonical:!0},":champagne:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!0},":bottle_with_popping_cork:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!1},":bow_and_arrow:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!0},":archery:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!1},":amphora:":{unicode:["1f3fa"],fname:"1f3fa",uc:"1f3fa",isCanonical:!0},":place_of_worship:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!0},":worship_symbol:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!1},":kaaba:":{unicode:["1f54b"],fname:"1f54b",uc:"1f54b",isCanonical:!0},":mosque:":{unicode:["1f54c"],fname:"1f54c",uc:"1f54c",isCanonical:!0},":synagogue:":{unicode:["1f54d"],fname:"1f54d",uc:"1f54d",isCanonical:!0},":menorah:":{unicode:["1f54e"],fname:"1f54e",uc:"1f54e",isCanonical:!0},":prayer_beads:":{unicode:["1f4ff"],fname:"1f4ff",uc:"1f4ff",isCanonical:!0},":cricket:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!0},":cricket_bat_ball:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!1},":volleyball:":{unicode:["1f3d0"],fname:"1f3d0",uc:"1f3d0",isCanonical:!0},":field_hockey:":{unicode:["1f3d1"],fname:"1f3d1",uc:"1f3d1",isCanonical:!0},":hockey:":{unicode:["1f3d2"],fname:"1f3d2",uc:"1f3d2",isCanonical:!0},":ping_pong:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!0},":table_tennis:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!1},":badminton:":{unicode:["1f3f8"],fname:"1f3f8",uc:"1f3f8",isCanonical:!0},":drum:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!0},":drum_with_drumsticks:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!1},":shrimp:":{unicode:["1f990"],fname:"1f990",uc:"1f990",isCanonical:!0},":squid:":{unicode:["1f991"],fname:"1f991",uc:"1f991",isCanonical:!0},":egg:":{unicode:["1f95a"],fname:"1f95a",uc:"1f95a",isCanonical:!0},":milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!0},":glass_of_milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!1},":peanuts:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!0},":shelled_peanut:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!1},":kiwi:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!0},":kiwifruit:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!1},":pancakes:":{unicode:["1f95e"],fname:"1f95e",uc:"1f95e",isCanonical:!0},":regional_indicator_w:":{unicode:["1f1fc"],fname:"1f1fc",uc:"1f1fc",isCanonical:!0},":regional_indicator_v:":{unicode:["1f1fb"],fname:"1f1fb",uc:"1f1fb",isCanonical:!0},":regional_indicator_u:":{unicode:["1f1fa"],fname:"1f1fa",uc:"1f1fa",isCanonical:!0},":regional_indicator_t:":{unicode:["1f1f9"],fname:"1f1f9",uc:"1f1f9",isCanonical:!0},":regional_indicator_s:":{unicode:["1f1f8"],fname:"1f1f8",uc:"1f1f8",isCanonical:!0},":regional_indicator_r:":{unicode:["1f1f7"],fname:"1f1f7",uc:"1f1f7",isCanonical:!0},":regional_indicator_q:":{unicode:["1f1f6"],fname:"1f1f6",uc:"1f1f6",isCanonical:!0},":regional_indicator_p:":{unicode:["1f1f5"],fname:"1f1f5",uc:"1f1f5",isCanonical:!0},":regional_indicator_o:":{unicode:["1f1f4"],fname:"1f1f4",uc:"1f1f4",isCanonical:!0},":regional_indicator_n:":{unicode:["1f1f3"],fname:"1f1f3",uc:"1f1f3",isCanonical:!0},":regional_indicator_m:":{unicode:["1f1f2"],fname:"1f1f2",uc:"1f1f2",isCanonical:!0},":regional_indicator_l:":{unicode:["1f1f1"],fname:"1f1f1",uc:"1f1f1",isCanonical:!0},":regional_indicator_k:":{unicode:["1f1f0"],fname:"1f1f0",uc:"1f1f0",isCanonical:!0},":regional_indicator_j:":{unicode:["1f1ef"],fname:"1f1ef",uc:"1f1ef",isCanonical:!0},":regional_indicator_i:":{unicode:["1f1ee"],fname:"1f1ee",uc:"1f1ee",isCanonical:!0},":regional_indicator_h:":{unicode:["1f1ed"],fname:"1f1ed",uc:"1f1ed",isCanonical:!0},":regional_indicator_g:":{unicode:["1f1ec"],fname:"1f1ec",uc:"1f1ec",isCanonical:!0},":regional_indicator_f:":{unicode:["1f1eb"],fname:"1f1eb",uc:"1f1eb",isCanonical:!0},":regional_indicator_e:":{unicode:["1f1ea"],fname:"1f1ea",uc:"1f1ea",isCanonical:!0},":regional_indicator_d:":{unicode:["1f1e9"],fname:"1f1e9",uc:"1f1e9",isCanonical:!0},":regional_indicator_c:":{unicode:["1f1e8"],fname:"1f1e8",uc:"1f1e8",isCanonical:!0},":regional_indicator_b:":{unicode:["1f1e7"],fname:"1f1e7",uc:"1f1e7",isCanonical:!0},":regional_indicator_a:":{unicode:["1f1e6"],fname:"1f1e6",uc:"1f1e6",isCanonical:!0},":fast_forward:":{unicode:["23e9"],fname:"23e9",uc:"23e9",isCanonical:!0},":rewind:":{unicode:["23ea"],fname:"23ea",uc:"23ea",isCanonical:!0},":arrow_double_up:":{unicode:["23eb"],fname:"23eb",uc:"23eb",isCanonical:!0},":arrow_double_down:":{unicode:["23ec"],fname:"23ec",uc:"23ec",isCanonical:!0},":alarm_clock:":{unicode:["23f0"],fname:"23f0",uc:"23f0",isCanonical:!0},":hourglass_flowing_sand:":{unicode:["23f3"],fname:"23f3",uc:"23f3",isCanonical:!0},":ophiuchus:":{unicode:["26ce"],fname:"26ce",uc:"26ce",isCanonical:!0},":white_check_mark:":{unicode:["2705"],fname:"2705",uc:"2705",isCanonical:!0},":fist:":{unicode:["270a"],fname:"270a",uc:"270a",isCanonical:!0},":raised_hand:":{unicode:["270b"],fname:"270b",uc:"270b",isCanonical:!0},":sparkles:":{unicode:["2728"],fname:"2728",uc:"2728",isCanonical:!0},":x:":{unicode:["274c"],fname:"274c",uc:"274c",isCanonical:!0},":negative_squared_cross_mark:":{unicode:["274e"],fname:"274e",uc:"274e",isCanonical:!0},":question:":{unicode:["2753"],fname:"2753",uc:"2753",isCanonical:!0},":grey_question:":{unicode:["2754"],fname:"2754",uc:"2754",isCanonical:!0},":grey_exclamation:":{unicode:["2755"],fname:"2755",uc:"2755",isCanonical:!0},":heavy_plus_sign:":{unicode:["2795"],fname:"2795",uc:"2795",isCanonical:!0},":heavy_minus_sign:":{unicode:["2796"],fname:"2796",uc:"2796",isCanonical:!0},":heavy_division_sign:":{unicode:["2797"],fname:"2797",uc:"2797",isCanonical:!0},":curly_loop:":{unicode:["27b0"],fname:"27b0",uc:"27b0",isCanonical:!0},":loop:":{unicode:["27bf"],fname:"27bf",uc:"27bf",isCanonical:!0}};var b,c=[];for(b in a.emojioneList)a.emojioneList.hasOwnProperty(b)&&c.push(b.replace(/[+]/g,"\\$&"));a.shortnames=c.join("|"),a.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f642",":-)":"1f642","=]":"1f642","=)":"1f642",":]":"1f642","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623","D:":"1f628",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},a.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",a.unicodeRegexp="(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)",
+a.jsEscapeMap={"👩‍❤️‍💋‍👩":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","👩❤💋👩":"1f469-2764-1f48b-1f469","👨‍❤️‍💋‍👨":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","👨❤💋👨":"1f468-2764-1f48b-1f468","👨‍👨‍👦‍👦":"1f468-200d-1f468-200d-1f466-200d-1f466","👨👨👦👦":"1f468-1f468-1f466-1f466","👨‍👨‍👧‍👦":"1f468-200d-1f468-200d-1f467-200d-1f466","👨👨👧👦":"1f468-1f468-1f467-1f466","👨‍👨‍👧‍👧":"1f468-200d-1f468-200d-1f467-200d-1f467","👨👨👧👧":"1f468-1f468-1f467-1f467","👨‍👩‍👦‍👦":"1f468-200d-1f469-200d-1f466-200d-1f466","👨👩👦👦":"1f468-1f469-1f466-1f466","👨‍👩‍👧‍👦":"1f468-200d-1f469-200d-1f467-200d-1f466","👨👩👧👦":"1f468-1f469-1f467-1f466","👨‍👩‍👧‍👧":"1f468-200d-1f469-200d-1f467-200d-1f467","👨👩👧👧":"1f468-1f469-1f467-1f467","👩‍👩‍👦‍👦":"1f469-200d-1f469-200d-1f466-200d-1f466","👩👩👦👦":"1f469-1f469-1f466-1f466","👩‍👩‍👧‍👦":"1f469-200d-1f469-200d-1f467-200d-1f466","👩👩👧👦":"1f469-1f469-1f467-1f466","👩‍👩‍👧‍👧":"1f469-200d-1f469-200d-1f467-200d-1f467","👩👩👧👧":"1f469-1f469-1f467-1f467","👩‍❤️‍👩":"1f469-200d-2764-fe0f-200d-1f469","👩❤👩":"1f469-2764-1f469","👨‍❤️‍👨":"1f468-200d-2764-fe0f-200d-1f468","👨❤👨":"1f468-2764-1f468","👨‍👨‍👦":"1f468-200d-1f468-200d-1f466","👨👨👦":"1f468-1f468-1f466","👨‍👨‍👧":"1f468-200d-1f468-200d-1f467","👨👨👧":"1f468-1f468-1f467","👨‍👩‍👧":"1f468-200d-1f469-200d-1f467","👨👩👧":"1f468-1f469-1f467","👩‍👩‍👦":"1f469-200d-1f469-200d-1f466","👩👩👦":"1f469-1f469-1f466","👩‍👩‍👧":"1f469-200d-1f469-200d-1f467","👩👩👧":"1f469-1f469-1f467","🏳️‍🌈":"1f3f3-fe0f-200d-1f308","🏳🌈":"1f3f3-1f308","👁‍🗨":"1f441-200d-1f5e8","👁🗨":"1f441-1f5e8","#️⃣":"0023-fe0f-20e3","#⃣":"0023-20e3","0️⃣":"0030-fe0f-20e3","0⃣":"0030-20e3","1️⃣":"0031-fe0f-20e3","1⃣":"0031-20e3","2️⃣":"0032-fe0f-20e3","2⃣":"0032-20e3","3️⃣":"0033-fe0f-20e3","3⃣":"0033-20e3","4️⃣":"0034-fe0f-20e3","4⃣":"0034-20e3","5️⃣":"0035-fe0f-20e3","5⃣":"0035-20e3","6️⃣":"0036-fe0f-20e3","6⃣":"0036-20e3","7️⃣":"0037-fe0f-20e3","7⃣":"0037-20e3","8️⃣":"0038-fe0f-20e3","8⃣":"0038-20e3","9️⃣":"0039-fe0f-20e3","9⃣":"0039-20e3","*️⃣":"002a-fe0f-20e3","*⃣":"002a-20e3","🤾🏿":"1f93e-1f3ff","🤾🏾":"1f93e-1f3fe","🤾🏽":"1f93e-1f3fd","🤾🏼":"1f93e-1f3fc","🤾🏻":"1f93e-1f3fb","🤽🏿":"1f93d-1f3ff","🤽🏾":"1f93d-1f3fe","🤽🏽":"1f93d-1f3fd","🤽🏼":"1f93d-1f3fc","🤽🏻":"1f93d-1f3fb","🤼🏿":"1f93c-1f3ff","🤼🏾":"1f93c-1f3fe","🤼🏽":"1f93c-1f3fd","🤼🏼":"1f93c-1f3fc","🤼🏻":"1f93c-1f3fb","🤹🏿":"1f939-1f3ff","🤹🏾":"1f939-1f3fe","🤹🏽":"1f939-1f3fd","🤹🏼":"1f939-1f3fc","🤹🏻":"1f939-1f3fb","🤸🏿":"1f938-1f3ff","🤸🏾":"1f938-1f3fe","🤸🏽":"1f938-1f3fd","🤸🏼":"1f938-1f3fc","🤸🏻":"1f938-1f3fb","🤷🏿":"1f937-1f3ff","🤷🏾":"1f937-1f3fe","🤷🏽":"1f937-1f3fd","🤷🏼":"1f937-1f3fc","🤷🏻":"1f937-1f3fb","🤶🏿":"1f936-1f3ff","🤶🏾":"1f936-1f3fe","🤶🏽":"1f936-1f3fd","🤶🏼":"1f936-1f3fc","🤶🏻":"1f936-1f3fb","🤵🏿":"1f935-1f3ff","🤵🏾":"1f935-1f3fe","🤵🏽":"1f935-1f3fd","🤵🏼":"1f935-1f3fc","🤵🏻":"1f935-1f3fb","🤴🏿":"1f934-1f3ff","🤴🏾":"1f934-1f3fe","🤴🏽":"1f934-1f3fd","🤴🏼":"1f934-1f3fc","🤴🏻":"1f934-1f3fb","🤳🏿":"1f933-1f3ff","🤳🏾":"1f933-1f3fe","🤳🏽":"1f933-1f3fd","🤳🏼":"1f933-1f3fc","🤳🏻":"1f933-1f3fb","🤰🏿":"1f930-1f3ff","🤰🏾":"1f930-1f3fe","🤰🏽":"1f930-1f3fd","🤰🏼":"1f930-1f3fc","🤰🏻":"1f930-1f3fb","🤦🏿":"1f926-1f3ff","🤦🏾":"1f926-1f3fe","🤦🏽":"1f926-1f3fd","🤦🏼":"1f926-1f3fc","🤦🏻":"1f926-1f3fb","🤞🏿":"1f91e-1f3ff","🤞🏾":"1f91e-1f3fe","🤞🏽":"1f91e-1f3fd","🤞🏼":"1f91e-1f3fc","🤞🏻":"1f91e-1f3fb","🤝🏿":"1f91d-1f3ff","🤝🏾":"1f91d-1f3fe","🤝🏽":"1f91d-1f3fd","🤝🏼":"1f91d-1f3fc","🤝🏻":"1f91d-1f3fb","🤜🏿":"1f91c-1f3ff","🤜🏾":"1f91c-1f3fe","🤜🏽":"1f91c-1f3fd","🤜🏼":"1f91c-1f3fc","🤜🏻":"1f91c-1f3fb","🤛🏿":"1f91b-1f3ff","🤛🏾":"1f91b-1f3fe","🤛🏽":"1f91b-1f3fd","🤛🏼":"1f91b-1f3fc","🤛🏻":"1f91b-1f3fb","🤚🏿":"1f91a-1f3ff","🤚🏾":"1f91a-1f3fe","🤚🏽":"1f91a-1f3fd","🤚🏼":"1f91a-1f3fc","🤚🏻":"1f91a-1f3fb","🤙🏿":"1f919-1f3ff","🤙🏾":"1f919-1f3fe","🤙🏽":"1f919-1f3fd","🤙🏼":"1f919-1f3fc","🤙🏻":"1f919-1f3fb","🤘🏿":"1f918-1f3ff","🤘🏾":"1f918-1f3fe","🤘🏽":"1f918-1f3fd","🤘🏼":"1f918-1f3fc","🤘🏻":"1f918-1f3fb","🛀🏿":"1f6c0-1f3ff","🛀🏾":"1f6c0-1f3fe","🛀🏽":"1f6c0-1f3fd","🛀🏼":"1f6c0-1f3fc","🛀🏻":"1f6c0-1f3fb","🚶🏿":"1f6b6-1f3ff","🚶🏾":"1f6b6-1f3fe","🚶🏽":"1f6b6-1f3fd","🚶🏼":"1f6b6-1f3fc","🚶🏻":"1f6b6-1f3fb","🚵🏿":"1f6b5-1f3ff","🚵🏾":"1f6b5-1f3fe","🚵🏽":"1f6b5-1f3fd","🚵🏼":"1f6b5-1f3fc","🚵🏻":"1f6b5-1f3fb","🚴🏿":"1f6b4-1f3ff","🚴🏾":"1f6b4-1f3fe","🚴🏽":"1f6b4-1f3fd","🚴🏼":"1f6b4-1f3fc","🚴🏻":"1f6b4-1f3fb","🚣🏿":"1f6a3-1f3ff","🚣🏾":"1f6a3-1f3fe","🚣🏽":"1f6a3-1f3fd","🚣🏼":"1f6a3-1f3fc","🚣🏻":"1f6a3-1f3fb","🙏🏿":"1f64f-1f3ff","🙏🏾":"1f64f-1f3fe","🙏🏽":"1f64f-1f3fd","🙏🏼":"1f64f-1f3fc","🙏🏻":"1f64f-1f3fb","🙎🏿":"1f64e-1f3ff","🙎🏾":"1f64e-1f3fe","🙎🏽":"1f64e-1f3fd","🙎🏼":"1f64e-1f3fc","🙎🏻":"1f64e-1f3fb","🙍🏿":"1f64d-1f3ff","🙍🏾":"1f64d-1f3fe","🙍🏽":"1f64d-1f3fd","🙍🏼":"1f64d-1f3fc","🙍🏻":"1f64d-1f3fb","🙌🏿":"1f64c-1f3ff","🙌🏾":"1f64c-1f3fe","🙌🏽":"1f64c-1f3fd","🙌🏼":"1f64c-1f3fc","🙌🏻":"1f64c-1f3fb","🙋🏿":"1f64b-1f3ff","🙋🏾":"1f64b-1f3fe","🙋🏽":"1f64b-1f3fd","🙋🏼":"1f64b-1f3fc","🙋🏻":"1f64b-1f3fb","🙇🏿":"1f647-1f3ff","🙇🏾":"1f647-1f3fe","🙇🏽":"1f647-1f3fd","🙇🏼":"1f647-1f3fc","🙇🏻":"1f647-1f3fb","🙆🏿":"1f646-1f3ff","🙆🏾":"1f646-1f3fe","🙆🏽":"1f646-1f3fd","🙆🏼":"1f646-1f3fc","🙆🏻":"1f646-1f3fb","🙅🏿":"1f645-1f3ff","🙅🏾":"1f645-1f3fe","🙅🏽":"1f645-1f3fd","🙅🏼":"1f645-1f3fc","🙅🏻":"1f645-1f3fb","🖖🏿":"1f596-1f3ff","🖖🏾":"1f596-1f3fe","🖖🏽":"1f596-1f3fd","🖖🏼":"1f596-1f3fc","🖖🏻":"1f596-1f3fb","🖕🏿":"1f595-1f3ff","🖕🏾":"1f595-1f3fe","🖕🏽":"1f595-1f3fd","🖕🏼":"1f595-1f3fc","🖕🏻":"1f595-1f3fb","🖐🏿":"1f590-1f3ff","🖐🏾":"1f590-1f3fe","🖐🏽":"1f590-1f3fd","🖐🏼":"1f590-1f3fc","🖐🏻":"1f590-1f3fb","🕺🏿":"1f57a-1f3ff","🕺🏾":"1f57a-1f3fe","🕺🏽":"1f57a-1f3fd","🕺🏼":"1f57a-1f3fc","🕺🏻":"1f57a-1f3fb","🕵🏿":"1f575-1f3ff","🕵🏾":"1f575-1f3fe","🕵🏽":"1f575-1f3fd","🕵🏼":"1f575-1f3fc","🕵🏻":"1f575-1f3fb","💪🏿":"1f4aa-1f3ff","💪🏾":"1f4aa-1f3fe","💪🏽":"1f4aa-1f3fd","💪🏼":"1f4aa-1f3fc","💪🏻":"1f4aa-1f3fb","💇🏿":"1f487-1f3ff","💇🏾":"1f487-1f3fe","💇🏽":"1f487-1f3fd","💇🏼":"1f487-1f3fc","💇🏻":"1f487-1f3fb","💆🏿":"1f486-1f3ff","💆🏾":"1f486-1f3fe","💆🏽":"1f486-1f3fd","💆🏼":"1f486-1f3fc","💆🏻":"1f486-1f3fb","💅🏿":"1f485-1f3ff","💅🏾":"1f485-1f3fe","💅🏽":"1f485-1f3fd","💅🏼":"1f485-1f3fc","💅🏻":"1f485-1f3fb","💃🏿":"1f483-1f3ff","💃🏾":"1f483-1f3fe","💃🏽":"1f483-1f3fd","💃🏼":"1f483-1f3fc","💃🏻":"1f483-1f3fb","💂🏿":"1f482-1f3ff","💂🏾":"1f482-1f3fe","💂🏽":"1f482-1f3fd","💂🏼":"1f482-1f3fc","💂🏻":"1f482-1f3fb","💁🏿":"1f481-1f3ff","💁🏾":"1f481-1f3fe","💁🏽":"1f481-1f3fd","💁🏼":"1f481-1f3fc","💁🏻":"1f481-1f3fb","👼🏿":"1f47c-1f3ff","👼🏾":"1f47c-1f3fe","👼🏽":"1f47c-1f3fd","👼🏼":"1f47c-1f3fc","👼🏻":"1f47c-1f3fb","👸🏿":"1f478-1f3ff","👸🏾":"1f478-1f3fe","👸🏽":"1f478-1f3fd","👸🏼":"1f478-1f3fc","👸🏻":"1f478-1f3fb","👷🏿":"1f477-1f3ff","👷🏾":"1f477-1f3fe","👷🏽":"1f477-1f3fd","👷🏼":"1f477-1f3fc","👷🏻":"1f477-1f3fb","👶🏿":"1f476-1f3ff","👶🏾":"1f476-1f3fe","👶🏽":"1f476-1f3fd","👶🏼":"1f476-1f3fc","👶🏻":"1f476-1f3fb","👵🏿":"1f475-1f3ff","👵🏾":"1f475-1f3fe","👵🏽":"1f475-1f3fd","👵🏼":"1f475-1f3fc","👵🏻":"1f475-1f3fb","👴🏿":"1f474-1f3ff","👴🏾":"1f474-1f3fe","👴🏽":"1f474-1f3fd","👴🏼":"1f474-1f3fc","👴🏻":"1f474-1f3fb","👳🏿":"1f473-1f3ff","👳🏾":"1f473-1f3fe","👳🏽":"1f473-1f3fd","👳🏼":"1f473-1f3fc","👳🏻":"1f473-1f3fb","👲🏿":"1f472-1f3ff","👲🏾":"1f472-1f3fe","👲🏽":"1f472-1f3fd","👲🏼":"1f472-1f3fc","👲🏻":"1f472-1f3fb","👱🏿":"1f471-1f3ff","👱🏾":"1f471-1f3fe","👱🏽":"1f471-1f3fd","👱🏼":"1f471-1f3fc","👱🏻":"1f471-1f3fb","👰🏿":"1f470-1f3ff","👰🏾":"1f470-1f3fe","👰🏽":"1f470-1f3fd","👰🏼":"1f470-1f3fc","👰🏻":"1f470-1f3fb","👮🏿":"1f46e-1f3ff","👮🏾":"1f46e-1f3fe","👮🏽":"1f46e-1f3fd","👮🏼":"1f46e-1f3fc","👮🏻":"1f46e-1f3fb","👩🏿":"1f469-1f3ff","👩🏾":"1f469-1f3fe","👩🏽":"1f469-1f3fd","👩🏼":"1f469-1f3fc","👩🏻":"1f469-1f3fb","👨🏿":"1f468-1f3ff","👨🏾":"1f468-1f3fe","👨🏽":"1f468-1f3fd","👨🏼":"1f468-1f3fc","👨🏻":"1f468-1f3fb","👧🏿":"1f467-1f3ff","👧🏾":"1f467-1f3fe","👧🏽":"1f467-1f3fd","👧🏼":"1f467-1f3fc","👧🏻":"1f467-1f3fb","👦🏿":"1f466-1f3ff","👦🏾":"1f466-1f3fe","👦🏽":"1f466-1f3fd","👦🏼":"1f466-1f3fc","👦🏻":"1f466-1f3fb","👐🏿":"1f450-1f3ff","👐🏾":"1f450-1f3fe","👐🏽":"1f450-1f3fd","👐🏼":"1f450-1f3fc","👐🏻":"1f450-1f3fb","👏🏿":"1f44f-1f3ff","👏🏾":"1f44f-1f3fe","👏🏽":"1f44f-1f3fd","👏🏼":"1f44f-1f3fc","👏🏻":"1f44f-1f3fb","👎🏿":"1f44e-1f3ff","👎🏾":"1f44e-1f3fe","👎🏽":"1f44e-1f3fd","👎🏼":"1f44e-1f3fc","👎🏻":"1f44e-1f3fb","👍🏿":"1f44d-1f3ff","👍🏾":"1f44d-1f3fe","👍🏽":"1f44d-1f3fd","👍🏼":"1f44d-1f3fc","👍🏻":"1f44d-1f3fb","👌🏿":"1f44c-1f3ff","👌🏾":"1f44c-1f3fe","👌🏽":"1f44c-1f3fd","👌🏼":"1f44c-1f3fc","👌🏻":"1f44c-1f3fb","👋🏿":"1f44b-1f3ff","👋🏾":"1f44b-1f3fe","👋🏽":"1f44b-1f3fd","👋🏼":"1f44b-1f3fc","👋🏻":"1f44b-1f3fb","👊🏿":"1f44a-1f3ff","👊🏾":"1f44a-1f3fe","👊🏽":"1f44a-1f3fd","👊🏼":"1f44a-1f3fc","👊🏻":"1f44a-1f3fb","👉🏿":"1f449-1f3ff","👉🏾":"1f449-1f3fe","👉🏽":"1f449-1f3fd","👉🏼":"1f449-1f3fc","👉🏻":"1f449-1f3fb","👈🏿":"1f448-1f3ff","👈🏾":"1f448-1f3fe","👈🏽":"1f448-1f3fd","👈🏼":"1f448-1f3fc","👈🏻":"1f448-1f3fb","👇🏿":"1f447-1f3ff","👇🏾":"1f447-1f3fe","👇🏽":"1f447-1f3fd","👇🏼":"1f447-1f3fc","👇🏻":"1f447-1f3fb","👆🏿":"1f446-1f3ff","👆🏾":"1f446-1f3fe","👆🏽":"1f446-1f3fd","👆🏼":"1f446-1f3fc","👆🏻":"1f446-1f3fb","👃🏿":"1f443-1f3ff","👃🏾":"1f443-1f3fe","👃🏽":"1f443-1f3fd","👃🏼":"1f443-1f3fc","👃🏻":"1f443-1f3fb","👂🏿":"1f442-1f3ff","👂🏾":"1f442-1f3fe","👂🏽":"1f442-1f3fd","👂🏼":"1f442-1f3fc","👂🏻":"1f442-1f3fb","🏋🏿":"1f3cb-1f3ff","🏋🏾":"1f3cb-1f3fe","🏋🏽":"1f3cb-1f3fd","🏋🏼":"1f3cb-1f3fc","🏋🏻":"1f3cb-1f3fb","🏊🏿":"1f3ca-1f3ff","🏊🏾":"1f3ca-1f3fe","🏊🏽":"1f3ca-1f3fd","🏊🏼":"1f3ca-1f3fc","🏊🏻":"1f3ca-1f3fb","🏇🏿":"1f3c7-1f3ff","🏇🏾":"1f3c7-1f3fe","🏇🏽":"1f3c7-1f3fd","🏇🏼":"1f3c7-1f3fc","🏇🏻":"1f3c7-1f3fb","🏄🏿":"1f3c4-1f3ff","🏄🏾":"1f3c4-1f3fe","🏄🏽":"1f3c4-1f3fd","🏄🏼":"1f3c4-1f3fc","🏄🏻":"1f3c4-1f3fb","🏃🏿":"1f3c3-1f3ff","🏃🏾":"1f3c3-1f3fe","🏃🏽":"1f3c3-1f3fd","🏃🏼":"1f3c3-1f3fc","🏃🏻":"1f3c3-1f3fb","🎅🏿":"1f385-1f3ff","🎅🏾":"1f385-1f3fe","🎅🏽":"1f385-1f3fd","🎅🏼":"1f385-1f3fc","🎅🏻":"1f385-1f3fb","🇿🇼":"1f1ff-1f1fc","🇿🇲":"1f1ff-1f1f2","🇿🇦":"1f1ff-1f1e6","🇾🇹":"1f1fe-1f1f9","🇾🇪":"1f1fe-1f1ea","🇽🇰":"1f1fd-1f1f0","🇼🇸":"1f1fc-1f1f8","🇼🇫":"1f1fc-1f1eb","🇻🇺":"1f1fb-1f1fa","🇻🇳":"1f1fb-1f1f3","🇻🇮":"1f1fb-1f1ee","🇻🇬":"1f1fb-1f1ec","🇻🇪":"1f1fb-1f1ea","🇻🇨":"1f1fb-1f1e8","🇻🇦":"1f1fb-1f1e6","🇺🇿":"1f1fa-1f1ff","🇺🇾":"1f1fa-1f1fe","🇺🇸":"1f1fa-1f1f8","🇺🇲":"1f1fa-1f1f2","🇺🇬":"1f1fa-1f1ec","🇺🇦":"1f1fa-1f1e6","🇹🇿":"1f1f9-1f1ff","🇹🇼":"1f1f9-1f1fc","🇹🇻":"1f1f9-1f1fb","🇹🇹":"1f1f9-1f1f9","🇹🇷":"1f1f9-1f1f7","🇹🇴":"1f1f9-1f1f4","🇹🇳":"1f1f9-1f1f3","🇹🇲":"1f1f9-1f1f2","🇹🇱":"1f1f9-1f1f1","🇹🇰":"1f1f9-1f1f0","🇹🇯":"1f1f9-1f1ef","🇹🇭":"1f1f9-1f1ed","🇹🇬":"1f1f9-1f1ec","🇹🇫":"1f1f9-1f1eb","🇹🇩":"1f1f9-1f1e9","🇹🇨":"1f1f9-1f1e8","🇹🇦":"1f1f9-1f1e6","🇸🇿":"1f1f8-1f1ff","🇸🇾":"1f1f8-1f1fe","🇸🇽":"1f1f8-1f1fd","🇸🇻":"1f1f8-1f1fb","🇸🇹":"1f1f8-1f1f9","🇸🇸":"1f1f8-1f1f8","🇸🇷":"1f1f8-1f1f7","🇸🇴":"1f1f8-1f1f4","🇸🇳":"1f1f8-1f1f3","🇸🇲":"1f1f8-1f1f2","🇸🇱":"1f1f8-1f1f1","🇸🇰":"1f1f8-1f1f0","🇸🇯":"1f1f8-1f1ef","🇸🇮":"1f1f8-1f1ee","🇸🇭":"1f1f8-1f1ed","🇸🇬":"1f1f8-1f1ec","🇸🇪":"1f1f8-1f1ea","🇸🇩":"1f1f8-1f1e9","🇸🇨":"1f1f8-1f1e8","🇸🇧":"1f1f8-1f1e7","🇸🇦":"1f1f8-1f1e6","🇷🇼":"1f1f7-1f1fc","🇷🇺":"1f1f7-1f1fa","🇷🇸":"1f1f7-1f1f8","🇷🇴":"1f1f7-1f1f4","🇷🇪":"1f1f7-1f1ea","🇶🇦":"1f1f6-1f1e6","🇵🇾":"1f1f5-1f1fe","🇵🇼":"1f1f5-1f1fc","🇵🇹":"1f1f5-1f1f9","🇵🇸":"1f1f5-1f1f8","🇵🇷":"1f1f5-1f1f7","🇵🇳":"1f1f5-1f1f3","🇵🇲":"1f1f5-1f1f2","🇵🇱":"1f1f5-1f1f1","🇵🇰":"1f1f5-1f1f0","🇵🇭":"1f1f5-1f1ed","🇵🇬":"1f1f5-1f1ec","🇵🇫":"1f1f5-1f1eb","🇵🇪":"1f1f5-1f1ea","🇵🇦":"1f1f5-1f1e6","🇴🇲":"1f1f4-1f1f2","🇳🇿":"1f1f3-1f1ff","🇳🇺":"1f1f3-1f1fa","🇳🇷":"1f1f3-1f1f7","🇳🇵":"1f1f3-1f1f5","🇳🇴":"1f1f3-1f1f4","🇳🇱":"1f1f3-1f1f1","🇳🇮":"1f1f3-1f1ee","🇳🇬":"1f1f3-1f1ec","🇳🇫":"1f1f3-1f1eb","🇳🇪":"1f1f3-1f1ea","🇳🇨":"1f1f3-1f1e8","🇳🇦":"1f1f3-1f1e6","🇲🇿":"1f1f2-1f1ff","🇲🇾":"1f1f2-1f1fe","🇲🇽":"1f1f2-1f1fd","🇲🇼":"1f1f2-1f1fc","🇲🇻":"1f1f2-1f1fb","🇲🇺":"1f1f2-1f1fa","🇲🇹":"1f1f2-1f1f9","🇲🇸":"1f1f2-1f1f8","🇲🇷":"1f1f2-1f1f7","🇲🇶":"1f1f2-1f1f6","🇲🇵":"1f1f2-1f1f5","🇲🇴":"1f1f2-1f1f4","🇲🇳":"1f1f2-1f1f3","🇲🇲":"1f1f2-1f1f2","🇲🇱":"1f1f2-1f1f1","🇲🇰":"1f1f2-1f1f0","🇲🇭":"1f1f2-1f1ed","🇲🇬":"1f1f2-1f1ec","🇲🇫":"1f1f2-1f1eb","🇲🇪":"1f1f2-1f1ea","🇲🇩":"1f1f2-1f1e9","🇲🇨":"1f1f2-1f1e8","🇲🇦":"1f1f2-1f1e6","🇱🇾":"1f1f1-1f1fe","🇱🇻":"1f1f1-1f1fb","🇱🇺":"1f1f1-1f1fa","🇱🇹":"1f1f1-1f1f9","🇱🇸":"1f1f1-1f1f8","🇱🇷":"1f1f1-1f1f7","🇱🇰":"1f1f1-1f1f0","🇱🇮":"1f1f1-1f1ee","🇱🇨":"1f1f1-1f1e8","🇱🇧":"1f1f1-1f1e7","🇱🇦":"1f1f1-1f1e6","🇰🇿":"1f1f0-1f1ff","🇰🇾":"1f1f0-1f1fe","🇰🇼":"1f1f0-1f1fc","🇰🇷":"1f1f0-1f1f7","🇰🇵":"1f1f0-1f1f5","🇰🇳":"1f1f0-1f1f3","🇰🇲":"1f1f0-1f1f2","🇰🇮":"1f1f0-1f1ee","🇰🇭":"1f1f0-1f1ed","🇰🇬":"1f1f0-1f1ec","🇰🇪":"1f1f0-1f1ea","🇯🇵":"1f1ef-1f1f5","🇯🇴":"1f1ef-1f1f4","🇯🇲":"1f1ef-1f1f2","🇯🇪":"1f1ef-1f1ea","🇮🇹":"1f1ee-1f1f9","🇮🇸":"1f1ee-1f1f8","🇮🇷":"1f1ee-1f1f7","🇮🇶":"1f1ee-1f1f6","🇮🇴":"1f1ee-1f1f4","🇮🇳":"1f1ee-1f1f3","🇮🇲":"1f1ee-1f1f2","🇮🇱":"1f1ee-1f1f1","🇮🇪":"1f1ee-1f1ea","🇮🇩":"1f1ee-1f1e9","🇮🇨":"1f1ee-1f1e8","🇭🇺":"1f1ed-1f1fa","🇭🇹":"1f1ed-1f1f9","🇭🇷":"1f1ed-1f1f7","🇭🇳":"1f1ed-1f1f3","🇭🇲":"1f1ed-1f1f2","🇭🇰":"1f1ed-1f1f0","🇬🇾":"1f1ec-1f1fe","🇬🇼":"1f1ec-1f1fc","🇬🇺":"1f1ec-1f1fa","🇬🇹":"1f1ec-1f1f9","🇬🇸":"1f1ec-1f1f8","🇬🇷":"1f1ec-1f1f7","🇬🇶":"1f1ec-1f1f6","🇬🇵":"1f1ec-1f1f5","🇬🇳":"1f1ec-1f1f3","🇬🇲":"1f1ec-1f1f2","🇬🇱":"1f1ec-1f1f1","🇬🇮":"1f1ec-1f1ee","🇬🇭":"1f1ec-1f1ed","🇬🇬":"1f1ec-1f1ec","🇬🇫":"1f1ec-1f1eb","🇬🇪":"1f1ec-1f1ea","🇬🇩":"1f1ec-1f1e9","🇬🇧":"1f1ec-1f1e7","🇬🇦":"1f1ec-1f1e6","🇫🇷":"1f1eb-1f1f7","🇫🇴":"1f1eb-1f1f4","🇫🇲":"1f1eb-1f1f2","🇫🇰":"1f1eb-1f1f0","🇫🇯":"1f1eb-1f1ef","🇫🇮":"1f1eb-1f1ee","🇪🇺":"1f1ea-1f1fa","🇪🇹":"1f1ea-1f1f9","🇪🇸":"1f1ea-1f1f8","🇪🇷":"1f1ea-1f1f7","🇪🇭":"1f1ea-1f1ed","🇪🇬":"1f1ea-1f1ec","🇪🇪":"1f1ea-1f1ea","🇪🇨":"1f1ea-1f1e8","🇪🇦":"1f1ea-1f1e6","🇩🇿":"1f1e9-1f1ff","🇩🇴":"1f1e9-1f1f4","🇩🇲":"1f1e9-1f1f2","🇩🇰":"1f1e9-1f1f0","🇩🇯":"1f1e9-1f1ef","🇩🇬":"1f1e9-1f1ec","🇩🇪":"1f1e9-1f1ea","🇨🇿":"1f1e8-1f1ff","🇨🇾":"1f1e8-1f1fe","🇨🇽":"1f1e8-1f1fd","🇨🇼":"1f1e8-1f1fc","🇨🇻":"1f1e8-1f1fb","🇨🇺":"1f1e8-1f1fa","🇨🇷":"1f1e8-1f1f7","🇨🇵":"1f1e8-1f1f5","🇨🇴":"1f1e8-1f1f4","🇨🇳":"1f1e8-1f1f3","🇨🇲":"1f1e8-1f1f2","🇨🇱":"1f1e8-1f1f1","🇨🇰":"1f1e8-1f1f0","🇨🇮":"1f1e8-1f1ee","🇨🇭":"1f1e8-1f1ed","🇨🇬":"1f1e8-1f1ec","🇨🇫":"1f1e8-1f1eb","🇨🇩":"1f1e8-1f1e9","🇨🇨":"1f1e8-1f1e8","🇨🇦":"1f1e8-1f1e6","🇧🇿":"1f1e7-1f1ff","🇧🇾":"1f1e7-1f1fe","🇧🇼":"1f1e7-1f1fc","🇧🇻":"1f1e7-1f1fb","🇧🇹":"1f1e7-1f1f9","🇧🇸":"1f1e7-1f1f8","🇧🇷":"1f1e7-1f1f7","🇧🇶":"1f1e7-1f1f6","🇧🇴":"1f1e7-1f1f4","🇧🇳":"1f1e7-1f1f3","🇧🇲":"1f1e7-1f1f2","🇧🇱":"1f1e7-1f1f1","🇧🇯":"1f1e7-1f1ef","🇧🇮":"1f1e7-1f1ee","🇧🇭":"1f1e7-1f1ed","🇧🇬":"1f1e7-1f1ec","🇧🇫":"1f1e7-1f1eb","🇧🇪":"1f1e7-1f1ea","🇧🇩":"1f1e7-1f1e9","🇧🇧":"1f1e7-1f1e7","🇧🇦":"1f1e7-1f1e6","🇦🇿":"1f1e6-1f1ff","🇦🇽":"1f1e6-1f1fd","🇦🇼":"1f1e6-1f1fc","🇦🇺":"1f1e6-1f1fa","🇦🇹":"1f1e6-1f1f9","🇦🇸":"1f1e6-1f1f8","🇦🇷":"1f1e6-1f1f7","🇦🇶":"1f1e6-1f1f6","🇦🇴":"1f1e6-1f1f4","🇦🇲":"1f1e6-1f1f2","🇦🇱":"1f1e6-1f1f1","🇦🇮":"1f1e6-1f1ee","🇦🇬":"1f1e6-1f1ec","🇦🇫":"1f1e6-1f1eb","🇦🇪":"1f1e6-1f1ea","🇦🇩":"1f1e6-1f1e9","🇦🇨":"1f1e6-1f1e8","🀄️":"1f004-fe0f","🀄":"1f004","🅿️":"1f17f-fe0f","🅿":"1f17f","🈂️":"1f202-fe0f","🈂":"1f202","🈚️":"1f21a-fe0f","🈚":"1f21a","🈯️":"1f22f-fe0f","🈯":"1f22f","🈷️":"1f237-fe0f","🈷":"1f237","🎞️":"1f39e-fe0f","🎞":"1f39e","🎟️":"1f39f-fe0f","🎟":"1f39f","🏋️":"1f3cb-fe0f","🏋":"1f3cb","🏌️":"1f3cc-fe0f","🏌":"1f3cc","🏍️":"1f3cd-fe0f","🏍":"1f3cd","🏎️":"1f3ce-fe0f","🏎":"1f3ce","🎖️":"1f396-fe0f","🎖":"1f396","🎗️":"1f397-fe0f","🎗":"1f397","🌶️":"1f336-fe0f","🌶":"1f336","🌧️":"1f327-fe0f","🌧":"1f327","🌨️":"1f328-fe0f","🌨":"1f328","🌩️":"1f329-fe0f","🌩":"1f329","🌪️":"1f32a-fe0f","🌪":"1f32a","🌫️":"1f32b-fe0f","🌫":"1f32b","🌬️":"1f32c-fe0f","🌬":"1f32c","🐿️":"1f43f-fe0f","🐿":"1f43f","🕷️":"1f577-fe0f","🕷":"1f577","🕸️":"1f578-fe0f","🕸":"1f578","🌡️":"1f321-fe0f","🌡":"1f321","🎙️":"1f399-fe0f","🎙":"1f399","🎚️":"1f39a-fe0f","🎚":"1f39a","🎛️":"1f39b-fe0f","🎛":"1f39b","🏳️":"1f3f3-fe0f","🏳":"1f3f3","🏵️":"1f3f5-fe0f","🏵":"1f3f5","🏷️":"1f3f7-fe0f","🏷":"1f3f7","📽️":"1f4fd-fe0f","📽":"1f4fd","🕉️":"1f549-fe0f","🕉":"1f549","🕊️":"1f54a-fe0f","🕊":"1f54a","🕯️":"1f56f-fe0f","🕯":"1f56f","🕰️":"1f570-fe0f","🕰":"1f570","🕳️":"1f573-fe0f","🕳":"1f573","🕶️":"1f576-fe0f","🕶":"1f576","🕹️":"1f579-fe0f","🕹":"1f579","🖇️":"1f587-fe0f","🖇":"1f587","🖊️":"1f58a-fe0f","🖊":"1f58a","🖋️":"1f58b-fe0f","🖋":"1f58b","🖌️":"1f58c-fe0f","🖌":"1f58c","🖍️":"1f58d-fe0f","🖍":"1f58d","🖥️":"1f5a5-fe0f","🖥":"1f5a5","🖨️":"1f5a8-fe0f","🖨":"1f5a8","🖲️":"1f5b2-fe0f","🖲":"1f5b2","🖼️":"1f5bc-fe0f","🖼":"1f5bc","🗂️":"1f5c2-fe0f","🗂":"1f5c2","🗃️":"1f5c3-fe0f","🗃":"1f5c3","🗄️":"1f5c4-fe0f","🗄":"1f5c4","🗑️":"1f5d1-fe0f","🗑":"1f5d1","🗒️":"1f5d2-fe0f","🗒":"1f5d2","🗓️":"1f5d3-fe0f","🗓":"1f5d3","🗜️":"1f5dc-fe0f","🗜":"1f5dc","🗝️":"1f5dd-fe0f","🗝":"1f5dd","🗞️":"1f5de-fe0f","🗞":"1f5de","🗡️":"1f5e1-fe0f","🗡":"1f5e1","🗣️":"1f5e3-fe0f","🗣":"1f5e3","🗨️":"1f5e8-fe0f","🗨":"1f5e8","🗯️":"1f5ef-fe0f","🗯":"1f5ef","🗳️":"1f5f3-fe0f","🗳":"1f5f3","🗺️":"1f5fa-fe0f","🗺":"1f5fa","🛠️":"1f6e0-fe0f","🛠":"1f6e0","🛡️":"1f6e1-fe0f","🛡":"1f6e1","🛢️":"1f6e2-fe0f","🛢":"1f6e2","🛰️":"1f6f0-fe0f","🛰":"1f6f0","🍽️":"1f37d-fe0f","🍽":"1f37d","👁️":"1f441-fe0f","👁":"1f441","🕴️":"1f574-fe0f","🕴":"1f574","🕵️":"1f575-fe0f","🕵":"1f575","🖐️":"1f590-fe0f","🖐":"1f590","🏔️":"1f3d4-fe0f","🏔":"1f3d4","🏕️":"1f3d5-fe0f","🏕":"1f3d5","🏖️":"1f3d6-fe0f","🏖":"1f3d6","🏗️":"1f3d7-fe0f","🏗":"1f3d7","🏘️":"1f3d8-fe0f","🏘":"1f3d8","🏙️":"1f3d9-fe0f","🏙":"1f3d9","🏚️":"1f3da-fe0f","🏚":"1f3da","🏛️":"1f3db-fe0f","🏛":"1f3db","🏜️":"1f3dc-fe0f","🏜":"1f3dc","🏝️":"1f3dd-fe0f","🏝":"1f3dd","🏞️":"1f3de-fe0f","🏞":"1f3de","🏟️":"1f3df-fe0f","🏟":"1f3df","🛋️":"1f6cb-fe0f","🛋":"1f6cb","🛍️":"1f6cd-fe0f","🛍":"1f6cd","🛎️":"1f6ce-fe0f","🛎":"1f6ce","🛏️":"1f6cf-fe0f","🛏":"1f6cf","🛣️":"1f6e3-fe0f","🛣":"1f6e3","🛤️":"1f6e4-fe0f","🛤":"1f6e4","🛥️":"1f6e5-fe0f","🛥":"1f6e5","🛩️":"1f6e9-fe0f","🛩":"1f6e9","🛳️":"1f6f3-fe0f","🛳":"1f6f3","🌤️":"1f324-fe0f","🌤":"1f324","🌥️":"1f325-fe0f","🌥":"1f325","🌦️":"1f326-fe0f","🌦":"1f326","🖱️":"1f5b1-fe0f","🖱":"1f5b1","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","©️":"00a9-fe0f","©":"00a9","®️":"00ae-fe0f","®":"00ae","‼️":"203c-fe0f","‼":"203c","⁉️":"2049-fe0f","⁉":"2049","™️":"2122-fe0f","™":"2122","ℹ️":"2139-fe0f","ℹ":"2139","↔️":"2194-fe0f","↔":"2194","↕️":"2195-fe0f","↕":"2195","↖️":"2196-fe0f","↖":"2196","↗️":"2197-fe0f","↗":"2197","↘️":"2198-fe0f","↘":"2198","↙️":"2199-fe0f","↙":"2199","↩️":"21a9-fe0f","↩":"21a9","↪️":"21aa-fe0f","↪":"21aa","⌚️":"231a-fe0f","⌚":"231a","⌛️":"231b-fe0f","⌛":"231b","Ⓜ️":"24c2-fe0f","Ⓜ":"24c2","▪️":"25aa-fe0f","▪":"25aa","▫️":"25ab-fe0f","▫":"25ab","▶️":"25b6-fe0f","▶":"25b6","◀️":"25c0-fe0f","◀":"25c0","◻️":"25fb-fe0f","◻":"25fb","◼️":"25fc-fe0f","◼":"25fc","◽️":"25fd-fe0f","◽":"25fd","◾️":"25fe-fe0f","◾":"25fe","☀️":"2600-fe0f","☀":"2600","☁️":"2601-fe0f","☁":"2601","☎️":"260e-fe0f","☎":"260e","☑️":"2611-fe0f","☑":"2611","☔️":"2614-fe0f","☔":"2614","☕️":"2615-fe0f","☕":"2615","☝️":"261d-fe0f","☝":"261d","☺️":"263a-fe0f","☺":"263a","♈️":"2648-fe0f","♈":"2648","♉️":"2649-fe0f","♉":"2649","♊️":"264a-fe0f","♊":"264a","♋️":"264b-fe0f","♋":"264b","♌️":"264c-fe0f","♌":"264c","♍️":"264d-fe0f","♍":"264d","♎️":"264e-fe0f","♎":"264e","♏️":"264f-fe0f","♏":"264f","♐️":"2650-fe0f","♐":"2650","♑️":"2651-fe0f","♑":"2651","♒️":"2652-fe0f","♒":"2652","♓️":"2653-fe0f","♓":"2653","♠️":"2660-fe0f","♠":"2660","♣️":"2663-fe0f","♣":"2663","♥️":"2665-fe0f","♥":"2665","♦️":"2666-fe0f","♦":"2666","♨️":"2668-fe0f","♨":"2668","♻️":"267b-fe0f","♻":"267b","♿️":"267f-fe0f","♿":"267f","⚓️":"2693-fe0f","⚓":"2693","⚠️":"26a0-fe0f","⚠":"26a0","⚡️":"26a1-fe0f","⚡":"26a1","⚪️":"26aa-fe0f","⚪":"26aa","⚫️":"26ab-fe0f","⚫":"26ab","⚽️":"26bd-fe0f","⚽":"26bd","⚾️":"26be-fe0f","⚾":"26be","⛄️":"26c4-fe0f","⛄":"26c4","⛅️":"26c5-fe0f","⛅":"26c5","⛔️":"26d4-fe0f","⛔":"26d4","⛪️":"26ea-fe0f","⛪":"26ea","⛲️":"26f2-fe0f","⛲":"26f2","⛳️":"26f3-fe0f","⛳":"26f3","⛵️":"26f5-fe0f","⛵":"26f5","⛺️":"26fa-fe0f","⛺":"26fa","⛽️":"26fd-fe0f","⛽":"26fd","✂️":"2702-fe0f","✂":"2702","✈️":"2708-fe0f","✈":"2708","✉️":"2709-fe0f","✉":"2709","✌️":"270c-fe0f","✌":"270c","✏️":"270f-fe0f","✏":"270f","✒️":"2712-fe0f","✒":"2712","✔️":"2714-fe0f","✔":"2714","✖️":"2716-fe0f","✖":"2716","✳️":"2733-fe0f","✳":"2733","✴️":"2734-fe0f","✴":"2734","❄️":"2744-fe0f","❄":"2744","❇️":"2747-fe0f","❇":"2747","❗️":"2757-fe0f","❗":"2757","❤️":"2764-fe0f","❤":"2764","➡️":"27a1-fe0f","➡":"27a1","⤴️":"2934-fe0f","⤴":"2934","⤵️":"2935-fe0f","⤵":"2935","⬅️":"2b05-fe0f","⬅":"2b05","⬆️":"2b06-fe0f","⬆":"2b06","⬇️":"2b07-fe0f","⬇":"2b07","⬛️":"2b1b-fe0f","⬛":"2b1b","⬜️":"2b1c-fe0f","⬜":"2b1c","⭐️":"2b50-fe0f","⭐":"2b50","⭕️":"2b55-fe0f","⭕":"2b55","〰️":"3030-fe0f","〰":"3030","〽️":"303d-fe0f","〽":"303d","㊗️":"3297-fe0f","㊗":"3297","㊙️":"3299-fe0f","㊙":"3299","✝️":"271d-fe0f","✝":"271d","⌨️":"2328-fe0f","⌨":"2328","✍️":"270d-fe0f","✍":"270d","⏏️":"23cf-fe0f","⏏":"23cf","⏭️":"23ed-fe0f","⏭":"23ed","⏮️":"23ee-fe0f","⏮":"23ee","⏯️":"23ef-fe0f","⏯":"23ef","⏱️":"23f1-fe0f","⏱":"23f1","⏲️":"23f2-fe0f","⏲":"23f2","⏸️":"23f8-fe0f","⏸":"23f8","⏹️":"23f9-fe0f","⏹":"23f9","⏺️":"23fa-fe0f","⏺":"23fa","☂️":"2602-fe0f","☂":"2602","☃️":"2603-fe0f","☃":"2603","☄️":"2604-fe0f","☄":"2604","☘️":"2618-fe0f","☘":"2618","☠️":"2620-fe0f","☠":"2620","☢️":"2622-fe0f","☢":"2622","☣️":"2623-fe0f","☣":"2623","☦️":"2626-fe0f","☦":"2626","☪️":"262a-fe0f","☪":"262a","☮️":"262e-fe0f","☮":"262e","☯️":"262f-fe0f","☯":"262f","☸️":"2638-fe0f","☸":"2638","☹️":"2639-fe0f","☹":"2639","⚒️":"2692-fe0f","⚒":"2692","⚔️":"2694-fe0f","⚔":"2694","⚖️":"2696-fe0f","⚖":"2696","⚗️":"2697-fe0f","⚗":"2697","⚙️":"2699-fe0f","⚙":"2699","⚛️":"269b-fe0f","⚛":"269b","⚜️":"269c-fe0f","⚜":"269c","⚰️":"26b0-fe0f","⚰":"26b0","⚱️":"26b1-fe0f","⚱":"26b1","⛈️":"26c8-fe0f","⛈":"26c8","⛏️":"26cf-fe0f","⛏":"26cf","⛑️":"26d1-fe0f","⛑":"26d1","⛓️":"26d3-fe0f","⛓":"26d3","⛩️":"26e9-fe0f","⛩":"26e9","⛰️":"26f0-fe0f","⛰":"26f0","⛱️":"26f1-fe0f","⛱":"26f1","⛴️":"26f4-fe0f","⛴":"26f4","⛷️":"26f7-fe0f","⛷":"26f7","⛸️":"26f8-fe0f","⛸":"26f8","⛹️":"26f9-fe0f","⛹":"26f9","✡️":"2721-fe0f","✡":"2721","❣️":"2763-fe0f","❣":"2763","🥉":"1f949","🥈":"1f948","🥇":"1f947","🤺":"1f93a","🥅":"1f945","🤾":"1f93e","🇿":"1f1ff","🤽":"1f93d","🥋":"1f94b","🥊":"1f94a","🤼":"1f93c","🤹":"1f939","🤸":"1f938","🛶":"1f6f6","🛵":"1f6f5","🛴":"1f6f4","🛒":"1f6d2","🃏":"1f0cf","🅰":"1f170","🅱":"1f171","🅾":"1f17e","🛑":"1f6d1","🆎":"1f18e","🆑":"1f191","🇾":"1f1fe","🆒":"1f192","🆓":"1f193","🆔":"1f194","🆕":"1f195","🆖":"1f196","🆗":"1f197","🆘":"1f198","🥄":"1f944","🆙":"1f199","🆚":"1f19a","🥂":"1f942","🥃":"1f943","🈁":"1f201","🥙":"1f959","🈲":"1f232","🈳":"1f233","🈴":"1f234","🈵":"1f235","🈶":"1f236","🥘":"1f958","🈸":"1f238","🈹":"1f239","🥗":"1f957","🈺":"1f23a","🉐":"1f250","🉑":"1f251","🌀":"1f300","🥖":"1f956","🌁":"1f301","🌂":"1f302","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🥕":"1f955","🌇":"1f307","🌈":"1f308","🥔":"1f954","🌉":"1f309","🌊":"1f30a","🌋":"1f30b","🌌":"1f30c","🌏":"1f30f","🌑":"1f311","🥓":"1f953","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌙":"1f319","🌛":"1f31b","🌟":"1f31f","🥒":"1f952","🌠":"1f320","🌰":"1f330","🥑":"1f951","🌱":"1f331","🌴":"1f334","🌵":"1f335","🌷":"1f337","🌸":"1f338","🌹":"1f339","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌽":"1f33d","🥐":"1f950","🌾":"1f33e","🌿":"1f33f","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍄":"1f344","🍅":"1f345","🍆":"1f346","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🥀":"1f940","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍑":"1f351","🍒":"1f352","🍓":"1f353","🦏":"1f98f","🍔":"1f354","🍕":"1f355","🍖":"1f356","🦎":"1f98e","🍗":"1f357","🍘":"1f358","🍙":"1f359","🦍":"1f98d","🍚":"1f35a","🍛":"1f35b","🦌":"1f98c","🍜":"1f35c","🍝":"1f35d","🍞":"1f35e","🍟":"1f35f","🦋":"1f98b","🍠":"1f360","🍡":"1f361","🦊":"1f98a","🍢":"1f362","🍣":"1f363","🦉":"1f989","🍤":"1f364","🍥":"1f365","🦈":"1f988","🍦":"1f366","🦇":"1f987","🍧":"1f367","🇽":"1f1fd","🍨":"1f368","🦆":"1f986","🍩":"1f369","🦅":"1f985","🍪":"1f36a","🖤":"1f5a4","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🤞":"1f91e","🍰":"1f370","🍱":"1f371","🍲":"1f372","🤝":"1f91d","🍳":"1f373","🍴":"1f374","🍵":"1f375","🍶":"1f376","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🎀":"1f380","🎁":"1f381","🎂":"1f382","🎃":"1f383","🤛":"1f91b","🤜":"1f91c","🎄":"1f384","🎅":"1f385","🎆":"1f386","🤚":"1f91a","🎇":"1f387","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎌":"1f38c","🤙":"1f919","🎍":"1f38d","🕺":"1f57a","🎎":"1f38e","🤳":"1f933","🎏":"1f38f","🤰":"1f930","🎐":"1f390","🤦":"1f926","🤷":"1f937","🎑":"1f391","🎒":"1f392","🎓":"1f393","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","🎣":"1f3a3","🎤":"1f3a4","🎥":"1f3a5","🎦":"1f3a6","🎧":"1f3a7","🤶":"1f936","🎨":"1f3a8","🤵":"1f935","🎩":"1f3a9","🎪":"1f3aa","🤴":"1f934","🎫":"1f3ab","🎬":"1f3ac","🎭":"1f3ad","🤧":"1f927","🎮":"1f3ae","🎯":"1f3af","🎰":"1f3b0","🎱":"1f3b1","🎲":"1f3b2","🎳":"1f3b3","🎴":"1f3b4","🤥":"1f925","🎵":"1f3b5","🎶":"1f3b6","🎷":"1f3b7","🤤":"1f924","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🤣":"1f923","🎻":"1f3bb","🎼":"1f3bc","🎽":"1f3bd","🤢":"1f922","🎾":"1f3be","🎿":"1f3bf","🏀":"1f3c0","🏁":"1f3c1","🤡":"1f921","🏂":"1f3c2","🏃":"1f3c3","🏄":"1f3c4","🏆":"1f3c6","🏈":"1f3c8","🏊":"1f3ca","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏥":"1f3e5","🏦":"1f3e6","🏧":"1f3e7","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🤠":"1f920","🏭":"1f3ed","🏮":"1f3ee","🏯":"1f3ef","🏰":"1f3f0","🐌":"1f40c","🐍":"1f40d","🐎":"1f40e","🐑":"1f411","🐒":"1f412","🐔":"1f414","🐗":"1f417","🐘":"1f418","🐙":"1f419","🐚":"1f41a","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🐢":"1f422","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🐨":"1f428","🐩":"1f429","🐫":"1f42b","🐬":"1f42c","🐭":"1f42d","🐮":"1f42e","🐯":"1f42f","🐰":"1f430","🐱":"1f431","🐲":"1f432","🐳":"1f433","🐴":"1f434","🐵":"1f435","🐶":"1f436","🐷":"1f437","🐸":"1f438","🐹":"1f439","🐺":"1f43a","🐻":"1f43b","🐼":"1f43c","🐽":"1f43d","🐾":"1f43e","👀":"1f440","👂":"1f442","👃":"1f443","👄":"1f444","👅":"1f445","👆":"1f446","👇":"1f447","👈":"1f448","👉":"1f449","👊":"1f44a","👋":"1f44b","👌":"1f44c","👍":"1f44d","👎":"1f44e","👏":"1f44f","👐":"1f450","👑":"1f451","👒":"1f452","👓":"1f453","👔":"1f454","👕":"1f455","👖":"1f456","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👣":"1f463","👤":"1f464","👦":"1f466","👧":"1f467","👨":"1f468","👩":"1f469","👪":"1f46a","👫":"1f46b","👮":"1f46e","👯":"1f46f","👰":"1f470","👱":"1f471","👲":"1f472","👳":"1f473","👴":"1f474","👵":"1f475","👶":"1f476","👷":"1f477","👸":"1f478","👹":"1f479","👺":"1f47a","👻":"1f47b","👼":"1f47c","👽":"1f47d","👾":"1f47e","👿":"1f47f","💀":"1f480","📇":"1f4c7","💁":"1f481","💂":"1f482","💃":"1f483","💄":"1f484","💅":"1f485","📒":"1f4d2","💆":"1f486","📓":"1f4d3","💇":"1f487","📔":"1f4d4","💈":"1f488","📕":"1f4d5","💉":"1f489","📖":"1f4d6","💊":"1f48a","📗":"1f4d7","💋":"1f48b","📘":"1f4d8","💌":"1f48c","📙":"1f4d9","💍":"1f48d","📚":"1f4da","💎":"1f48e","📛":"1f4db","💏":"1f48f","📜":"1f4dc","💐":"1f490","📝":"1f4dd","💑":"1f491","📞":"1f4de","💒":"1f492","📟":"1f4df","📠":"1f4e0","💓":"1f493","📡":"1f4e1","📢":"1f4e2","💔":"1f494","📣":"1f4e3","📤":"1f4e4","💕":"1f495","📥":"1f4e5","📦":"1f4e6","💖":"1f496","📧":"1f4e7","📨":"1f4e8","💗":"1f497","📩":"1f4e9","📪":"1f4ea","💘":"1f498","📫":"1f4eb","📮":"1f4ee","💙":"1f499","📰":"1f4f0","📱":"1f4f1","💚":"1f49a","📲":"1f4f2","📳":"1f4f3","💛":"1f49b","📴":"1f4f4","📶":"1f4f6","💜":"1f49c","📷":"1f4f7","📹":"1f4f9","💝":"1f49d","📺":"1f4fa","📻":"1f4fb","💞":"1f49e","📼":"1f4fc","🔃":"1f503","💟":"1f49f","🔊":"1f50a","🔋":"1f50b","💠":"1f4a0","🔌":"1f50c","🔍":"1f50d","💡":"1f4a1","🔎":"1f50e","🔏":"1f50f","💢":"1f4a2","🔐":"1f510","🔑":"1f511","💣":"1f4a3","🔒":"1f512","🔓":"1f513","💤":"1f4a4","🔔":"1f514","🔖":"1f516","💥":"1f4a5","🔗":"1f517","🔘":"1f518","💦":"1f4a6","🔙":"1f519","🔚":"1f51a","💧":"1f4a7","🔛":"1f51b","🔜":"1f51c","💨":"1f4a8","🔝":"1f51d","🔞":"1f51e","💩":"1f4a9","🔟":"1f51f","💪":"1f4aa","🔠":"1f520","🔡":"1f521","💫":"1f4ab","🔢":"1f522","🔣":"1f523","💬":"1f4ac","🔤":"1f524","🔥":"1f525","💮":"1f4ae","🔦":"1f526","🔧":"1f527","💯":"1f4af","🔨":"1f528","🔩":"1f529","💰":"1f4b0","🔪":"1f52a","🔫":"1f52b","💱":"1f4b1","🔮":"1f52e","💲":"1f4b2","🔯":"1f52f","💳":"1f4b3","🔰":"1f530","🔱":"1f531","💴":"1f4b4","🔲":"1f532","🔳":"1f533","💵":"1f4b5","🔴":"1f534","🔵":"1f535","💸":"1f4b8","🔶":"1f536","🔷":"1f537","💹":"1f4b9","🔸":"1f538","🔹":"1f539","💺":"1f4ba","🔺":"1f53a","🔻":"1f53b","💻":"1f4bb","🔼":"1f53c","💼":"1f4bc","🔽":"1f53d","🕐":"1f550","💽":"1f4bd","🕑":"1f551","💾":"1f4be","🕒":"1f552","💿":"1f4bf","🕓":"1f553","📀":"1f4c0","🕔":"1f554","🕕":"1f555","📁":"1f4c1","🕖":"1f556","🕗":"1f557","📂":"1f4c2","🕘":"1f558","🕙":"1f559","📃":"1f4c3","🕚":"1f55a","🕛":"1f55b","📄":"1f4c4","🗻":"1f5fb","🗼":"1f5fc","📅":"1f4c5","🗽":"1f5fd","🗾":"1f5fe","📆":"1f4c6","🗿":"1f5ff","😁":"1f601","😂":"1f602","😃":"1f603","📈":"1f4c8","😄":"1f604","😅":"1f605","📉":"1f4c9","😆":"1f606","😉":"1f609","📊":"1f4ca","😊":"1f60a","😋":"1f60b","📋":"1f4cb","😌":"1f60c","😍":"1f60d","📌":"1f4cc","😏":"1f60f","😒":"1f612","📍":"1f4cd","😓":"1f613","😔":"1f614","📎":"1f4ce","😖":"1f616","😘":"1f618","📏":"1f4cf","😚":"1f61a","😜":"1f61c","📐":"1f4d0","😝":"1f61d","😞":"1f61e","📑":"1f4d1","😠":"1f620","😡":"1f621","😢":"1f622","😣":"1f623","😤":"1f624","😥":"1f625","😨":"1f628","😩":"1f629","😪":"1f62a","😫":"1f62b","😭":"1f62d","😰":"1f630","😱":"1f631","😲":"1f632","😳":"1f633","😵":"1f635","😷":"1f637","😸":"1f638","😹":"1f639","😺":"1f63a","😻":"1f63b","😼":"1f63c","😽":"1f63d","😾":"1f63e","😿":"1f63f","🙀":"1f640","🙅":"1f645","🙆":"1f646","🙇":"1f647","🙈":"1f648","🙉":"1f649","🙊":"1f64a","🙋":"1f64b","🙌":"1f64c","🙍":"1f64d","🙎":"1f64e","🙏":"1f64f","🚀":"1f680","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚇":"1f687","🚉":"1f689","🚌":"1f68c","🚏":"1f68f","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚕":"1f695","🚗":"1f697","🚙":"1f699","🚚":"1f69a","🚢":"1f6a2","🚤":"1f6a4","🚥":"1f6a5","🚧":"1f6a7","🚨":"1f6a8","🚩":"1f6a9","🚪":"1f6aa","🚫":"1f6ab","🚬":"1f6ac","🚭":"1f6ad","🚲":"1f6b2","🚶":"1f6b6","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚽":"1f6bd","🚾":"1f6be","🛀":"1f6c0","🤘":"1f918","😀":"1f600","😇":"1f607","😈":"1f608","😎":"1f60e","😐":"1f610","😑":"1f611","😕":"1f615","😗":"1f617","😙":"1f619","😛":"1f61b","😟":"1f61f","😦":"1f626","😧":"1f627","😬":"1f62c","😮":"1f62e","😯":"1f62f","😴":"1f634","😶":"1f636","🚁":"1f681","🚂":"1f682",
+"🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🏅":"1f3c5","🏴":"1f3f4","📸":"1f4f8","🛌":"1f6cc","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🛫":"1f6eb","🛬":"1f6ec","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","🥁":"1f941","🦐":"1f990","🦑":"1f991","🥚":"1f95a","🥛":"1f95b","🥜":"1f95c","🥝":"1f95d","🥞":"1f95e","🇼":"1f1fc","🇻":"1f1fb","🇺":"1f1fa","🇹":"1f1f9","🇸":"1f1f8","🇷":"1f1f7","🇶":"1f1f6","🇵":"1f1f5","🇴":"1f1f4","🇳":"1f1f3","🇲":"1f1f2","🇱":"1f1f1","🇰":"1f1f0","🇯":"1f1ef","🇮":"1f1ee","🇭":"1f1ed","🇬":"1f1ec","🇫":"1f1eb","🇪":"1f1ea","🇩":"1f1e9","🇨":"1f1e8","🇧":"1f1e7","🇦":"1f1e6","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✅":"2705","✊":"270a","✋":"270b","✨":"2728","❌":"274c","❎":"274e","❓":"2753","❔":"2754","❕":"2755","➕":"2795","➖":"2796","➗":"2797","➰":"27b0","➿":"27bf","©":"00a9","®":"00ae","‼":"203c","⁉":"2049","™":"2122","ℹ":"2139","↔":"2194","↕":"2195","↖":"2196","↗":"2197","↘":"2198","↙":"2199","↩":"21a9","↪":"21aa","⌚":"231a","⌛":"231b","Ⓜ":"24c2","▪":"25aa","▫":"25ab","▶":"25b6","◀":"25c0","◻":"25fb","◼":"25fc","◽":"25fd","◾":"25fe","☀":"2600","☁":"2601","☎":"260e","☑":"2611","☔":"2614","☕":"2615","☝":"261d","☺":"263a","♈":"2648","♉":"2649","♊":"264a","♋":"264b","♌":"264c","♍":"264d","♎":"264e","♏":"264f","♐":"2650","♑":"2651","♒":"2652","♓":"2653","♠":"2660","♣":"2663","♥":"2665","♦":"2666","♨":"2668","♻":"267b","♿":"267f","⚓":"2693","⚠":"26a0","⚡":"26a1","⚪":"26aa","⚫":"26ab","⚽":"26bd","⚾":"26be","⛄":"26c4","⛅":"26c5","⛔":"26d4","⛪":"26ea","⛲":"26f2","⛳":"26f3","⛵":"26f5","⛺":"26fa","⛽":"26fd","✂":"2702","✈":"2708","✉":"2709","✌":"270c","✏":"270f","✒":"2712","✔":"2714","✖":"2716","✳":"2733","✴":"2734","❄":"2744","❇":"2747","❗":"2757","❤":"2764","➡":"27a1","⤴":"2934","⤵":"2935","⬅":"2b05","⬆":"2b06","⬇":"2b07","⬛":"2b1b","⬜":"2b1c","⭐":"2b50","⭕":"2b55","〰":"3030","〽":"303d","㊗":"3297","㊙":"3299","🀄":"1f004","🅿":"1f17f","🈂":"1f202","🈚":"1f21a","🈯":"1f22f","🈷":"1f237","🎞":"1f39e","🎟":"1f39f","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏵":"1f3f5","🏷":"1f3f7","📽":"1f4fd","✝":"271d","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","⌨":"2328","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗨":"1f5e8","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","✍":"270d","🖐":"1f590","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛳":"1f6f3","⏏":"23cf","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☂":"2602","☃":"2603","☄":"2604","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☪":"262a","☮":"262e","☯":"262f","☸":"2638","☹":"2639","⚒":"2692","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9","✡":"2721","❣":"2763","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1"},a.imagePathPNG="https://cdn.jsdelivr.net/emojione/assets/png/",a.imagePathSVG="https://cdn.jsdelivr.net/emojione/assets/svg/",a.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",a.imageType="png",a.imageTitleTag=!0,a.sprites=!1,a.unicodeAlt=!0,a.ascii=!1,a.cacheBustParam="?v=2.2.7",a.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnames+")","gi"),a.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),a.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.unicodeRegexp+")","gi"),a.toImage=function(b){return b=a.unicodeToImage(b),b=a.shortnameToImage(b)},a.unifyUnicode=function(b){return b=a.toShort(b),b=a.shortnameToUnicode(b)},a.shortnameToAscii=function(b){var c,d=a.objectFlip(a.asciiList);return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b].unicode[a.emojioneList[b].unicode.length-1],"undefined"!=typeof d[c]?d[c]:b):b})},a.shortnameToUnicode=function(b){var c,d,e;return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b].unicode[0].toUpperCase(),d=a.emojioneList[b].fname,e=a.emojioneList[b].uc,a.convert(e)):b}),a.ascii&&(b=b.replace(a.regAscii,function(b,d,e,f){return"undefined"!=typeof f&&""!==f&&a.unescapeHTML(f)in a.asciiList?(f=a.unescapeHTML(f),c=a.asciiList[f].toUpperCase(),e+a.convert(c)):b})),b},a.shortnameToImage=function(b){var c,d,e,f;return b=b.replace(a.regShortNames,function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(d=a.emojioneList[b].unicode[a.emojioneList[b].unicode.length-1],f=a.imageTitleTag?'title="'+b+'"':"",e=a.unicodeAlt?a.convert(d.toUpperCase()):b,c="png"===a.imageType?a.sprites?'<span class="emojione emojione-'+d+'" '+f+">"+e+"</span>":'<img class="emojione" alt="'+e+'" '+f+' src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b}),a.ascii&&(b=b.replace(a.regAscii,function(b,g,h,i){return"undefined"!=typeof i&&""!==i&&a.unescapeHTML(i)in a.asciiList?(i=a.unescapeHTML(i),d=a.asciiList[i],f=a.imageTitleTag?'title="'+a.escapeHTML(i)+'"':"",e=a.unicodeAlt?a.convert(d.toUpperCase()):a.escapeHTML(i),c="png"===a.imageType?a.sprites?h+'<span class="emojione emojione-'+d+'" '+f+">"+e+"</span>":h+'<img class="emojione" alt="'+e+'" '+f+' src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':h+'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b})),b},a.unicodeToImage=function(b){var c,d,e,f,g,h,i=a.mapUnicodeToShort();return b=b.replace(a.regUnicode,function(b){return"undefined"!=typeof b&&""!==b&&b in a.jsEscapeMap?(d=a.jsEscapeMap[b],e=i[d],f=a.emojioneList[e].fname,g=a.unicodeAlt?a.convert(d.toUpperCase()):e,h=a.imageTitleTag?'title="'+e+'"':"",c="png"===a.imageType?a.sprites?'<span class="emojione emojione-'+d+'" '+h+">"+g+"</span>":'<img class="emojione" alt="'+g+'" '+h+' src="'+a.imagePathPNG+f+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+g+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<img class="emojione" alt="'+g+'" '+h+' src="'+a.imagePathSVG+f+".svg"+a.cacheBustParam+'"/>'):b})},a.toShort=function(b){var c=a.getUnicodeReplacementRegEx(),d=a.mapUnicodeCharactersToShort();return a.replaceAll(b,c,d)},a.convert=function(a){if(a.indexOf("-")>-1){for(var b=[],c=a.split("-"),d=0;d<c.length;d++){var e=parseInt(c[d],16);if(e>=65536&&1114111>=e){var f=Math.floor((e-65536)/1024)+55296,g=(e-65536)%1024+56320;e=String.fromCharCode(f)+String.fromCharCode(g)}else e=String.fromCharCode(e);b.push(e)}return b.join("")}var c=parseInt(a,16);if(c>=65536&&1114111>=c){var f=Math.floor((c-65536)/1024)+55296,g=(c-65536)%1024+56320;return String.fromCharCode(f)+String.fromCharCode(g)}return String.fromCharCode(c)},a.escapeHTML=function(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return a.replace(/[&<>"']/g,function(a){return b[a]})},a.unescapeHTML=function(a){var b={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return a.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(a){return b[a]})},a.mapEmojioneList=function(b){for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d=0,e=a.emojioneList[c].unicode.length;e>d;d++){var f=a.emojioneList[c].unicode[d];b(f,c)}},a.mapUnicodeToShort=function(){return a.memMapShortToUnicode||(a.memMapShortToUnicode={},a.mapEmojioneList(function(b,c){a.memMapShortToUnicode[b]=c})),a.memMapShortToUnicode},a.memoizeReplacement=function(){if(!a.unicodeReplacementRegEx||!a.memMapShortToUnicodeCharacters){var b=[];a.memMapShortToUnicodeCharacters={},a.mapEmojioneList(function(c,d){var e=a.convert(c);a.emojioneList[d].isCanonical&&(a.memMapShortToUnicodeCharacters[e]=d),b.push(e)}),a.unicodeReplacementRegEx=b.join("|")}},a.mapUnicodeCharactersToShort=function(){return a.memoizeReplacement(),a.memMapShortToUnicodeCharacters},a.getUnicodeReplacementRegEx=function(){return a.memoizeReplacement(),a.unicodeReplacementRegEx},a.objectFlip=function(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);return c},a.escapeRegExp=function(a){return a.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g,"\\$&")},a.replaceAll=function(b,c,d){var e=a.escapeRegExp(c),f=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+e+")","gi"),g=function(a,b){return"undefined"==typeof b||""===b?a:d[b]};return b.replace(f,g)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione); \ No newline at end of file
diff --git a/build/js/jsxc/lib/i18next/i18next.min.js b/build/js/jsxc/lib/i18next/i18next.min.js
new file mode 100644
index 0000000..5d5a298
--- /dev/null
+++ b/build/js/jsxc/lib/i18next/i18next.min.js
@@ -0,0 +1,2 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,a=r.k;i[a]=o}function r(t,e,o,r){var i=n(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(o)),r||a[s].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function a(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):a(t[o],e[o],n):t[o]=e[o];return t}function s(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return R[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n<t.length;n++)e.push(t[n]);return{postProcess:"sprintf",sprintf:e}}),t.whitelist=t.lngWhitelist,t.preload=t.preload,"current"===t.load&&(t.load="currentOnly"),"unspecific"===t.load&&(t.load="languageOnly"),t.backend=t.backend||{},t.backend.loadPath=t.resGetPath||"locales/__lng__/__ns__.json",t.backend.addPath=t.resPostPath||"locales/add/__lng__/__ns__",t.backend.allowMultiLoading=t.dynamicLoad,t.cache=t.cache||{},t.cache.prefix="res_",t.cache.expirationTime=6048e5,t.cache.enabled=!!t.useLocalStorage,t=l(t),t.defaultVariables&&(t.interpolation.defaultVariables=t.defaultVariables),t}function p(t){return t=l(t),t.joinArrays="\n",t}function f(t){return(t.interpolationPrefix||t.interpolationSuffix||t.escapeInterpolation)&&(t=l(t)),t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,t.returnObjects=t.returnObjectTrees,t}function g(t){t.lng=function(){return C.deprecate("i18next.lng() can be replaced by i18next.language for detected language or i18next.languages for languages ordered by translation lookup."),t.services.languageUtils.toResolveHierarchy(t.language)[0]},t.preload=function(e,n){C.deprecate("i18next.preload() can be replaced with i18next.loadLanguages()"),t.loadLanguages(e,n)},t.setLng=function(e,n,o){return C.deprecate("i18next.setLng() can be replaced with i18next.changeLanguage() or i18next.getFixedT() to get a translation function with fixed language or namespace."),"function"==typeof n&&(o=n,n={}),n||(n={}),n.fixLng===!0&&o?o(null,t.getFixedT(e)):void t.changeLanguage(e,o)},t.addPostProcessor=function(e,n){C.deprecate("i18next.addPostProcessor() can be replaced by i18next.use({ type: 'postProcessor', name: 'name', process: fc })"),t.use({type:"postProcessor",name:e,process:n})}}function h(t){return t.charAt(0).toUpperCase()+t.slice(1)}function d(){var t={};return T.forEach(function(e){e.lngs.forEach(function(n){return t[n]={numbers:e.nr,plurals:H[e.fc]}})}),t}function v(t,e){for(var n=t.indexOf(e);n!==-1;)t.splice(n,1),n=t.indexOf(e)}function y(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",saveMissing:!1,saveMissingTo:"fallback",missingKeyHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,overloadTranslationOptionHandler:function(t){return{defaultValue:t[1]}},interpolation:{escapeValue:!0,format:function(t,e,n){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",defaultVariables:void 0}}}function b(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.whitelist&&t.whitelist.indexOf("cimode")<0&&t.whitelist.push("cimode"),t}function m(){}var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=(function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};a?a=a.next=s:(i=a=s,o(t,e))})}function o(n,i){try{var a=e[n](i),s=a.value;s instanceof t?Promise.resolve(s.value).then(function(t){o("next",t)},function(t){o("throw",t)}):r(a.done?"return":"normal",a.value)}catch(t){r("throw",t)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?o(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof e.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},w=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},O=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},N=function(){function t(t,e){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);o=!0);}catch(t){r=!0,i=t}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),L={type:"logger",log:function(t){this._output("log",t)},warn:function(t){this._output("warn",t)},error:function(t){this._output("error",t)},_output:function(t,e){console&&console[t]&&console[t].apply(console,Array.prototype.slice.call(e))}},j=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.init(e,n)}return t.prototype.init=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||L,this.options=e,this.debug=e.debug!==!1},t.prototype.setDebug=function(t){this.debug=t},t.prototype.log=function(){this.forward(arguments,"log","",!0)},t.prototype.warn=function(){this.forward(arguments,"warn","",!0)},t.prototype.error=function(){this.forward(arguments,"error","")},t.prototype.deprecate=function(){this.forward(arguments,"warn","WARNING DEPRECATED: ",!0)},t.prototype.forward=function(t,e,n,o){o&&!this.debug||("string"==typeof t[0]&&(t[0]=n+this.prefix+" "+t[0]),this.logger[e](t))},t.prototype.create=function(e){var n=new t(this.logger,S({prefix:this.prefix+":"+e+":"},this.options));return n},t}(),C=new j,P=function(){function t(){k(this,t),this.observers={}}return t.prototype.on=function(t,e){var n=this;t.split(" ").forEach(function(t){n.observers[t]=n.observers[t]||[],n.observers[t].push(e)})},t.prototype.off=function(t,e){var n=this;this.observers[t]&&this.observers[t].forEach(function(){if(e){var o=n.observers[t].indexOf(e);o>-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];this.observers[t]&&this.observers[t].forEach(function(t){t.apply(void 0,n)}),this.observers["*"]&&this.observers["*"].forEach(function(e){var o;e.apply(e,(o=[t]).concat.apply(o,n))})},t}(),R={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},E=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};k(this,e);var r=O(this,t.call(this));return r.data=n,r.options=o,r}return w(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var a=[t,e];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split(".")),i(this.data,a)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,e];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(s=t.split("."),r=e,e=s[1]),this.addNamespaces(e),o(this.data,s,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,s){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?a(l,n,s):l=S({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?S({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(P),_={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},A=function(t){function n(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,n);var i=O(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=C.create("translator"),i}return w(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!==("undefined"==typeof e?"undefined":x(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,a=r.namespaces,s=a[a.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,S({joinArrays:!1,ns:a},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,s,i,u);var y=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(var m=0;m<b.length;m++)y.push(b[m]);else"all"===this.options.saveMissingTo?y=this.languageUtils.toResolveHierarchy(e.lng||this.language):y.push(e.lng||this.language);this.options.saveMissing&&(this.options.missingKeyHandler?this.options.missingKeyHandler(y,s,i,u):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(y,s,i,u)),this.emit("missingKey",y,s,i,u)}u=this.extendTranslation(u,i,e),v&&u===i&&this.options.appendNamespaceToMissingKey&&(u=s+":"+i),v&&this.options.parseMissingKeyHandler&&(u=this.options.parseMissingKeyHandler(u))}return u},n.prototype.extendTranslation=function(t,e,n){var o=this;n.interpolation&&this.interpolator.init(S({},n,{interpolation:S({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=S({},this.options.interpolation.defaultVariables,r)),t=this.interpolator.interpolate(t,r,this.language),t=this.interpolator.nest(t,function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return o.translate.apply(o,e)},n),n.interpolation&&this.interpolator.reset();var i=n.postProcess||this.options.postProcess,a="string"==typeof i?[i]:i;return void 0!==t&&a&&a.length&&n.applyPostProcessor!==!1&&(t=_.handle(a,t,e,n,this)),t},n.prototype.resolve=function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=void 0;return"string"==typeof t&&(t=[t]),t.forEach(function(t){if(!e.isValidLookup(o)){var r=e.extractFromKey(t,n),i=r.key,a=r.namespaces;e.options.fallbackNS&&(a=a.concat(e.options.fallbackNS));var s=void 0!==n.count&&"string"!=typeof n.count,u=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,l=n.lngs?n.lngs:e.languageUtils.toResolveHierarchy(n.lng||e.language);a.forEach(function(t){e.isValidLookup(o)||l.forEach(function(r){if(!e.isValidLookup(o)){var a=i,l=[a],c=void 0;s&&(c=e.pluralResolver.getSuffix(r,n.count)),s&&u&&l.push(a+c),u&&l.push(a+=""+e.options.contextSeparator+n.context),s&&l.push(a+=c);for(var p=void 0;p=l.pop();)e.isValidLookup(o)||(o=e.getResource(r,t,p,n))}})})}}),o},n.prototype.isValidLookup=function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)},n.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resourceStore.getResource(t,e,n,o)},n}(P),M=function(){function t(e){k(this,t),this.options=e,this.whitelist=this.options.whitelist||!1,this.logger=C.create("languageUtils")}return t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.getScriptPartFromCode=function(t){if(t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),this.formatLanguageCode(e.join("-")))},t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.getFallbackCodes=function(t,e){if(!t)return[];if("string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t.default),n||[]},t.prototype.toResolveHierarchy=function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(n.isWhitelisted(t,e)?r.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t),!0),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t),!0),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach(function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))}),r},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],H={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},U=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.languageUtils=e,this.options=n,this.logger=C.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":x(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};k(this,e),this.logger=C.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t},this.escape=t.interpolation&&t.interpolation.escape||u),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.prefix=n.prefix?s(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?s(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?s(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?s(n.nestingPrefix):n.nestingPrefixEscaped||s("$t("),this.nestingSuffix=n.nestingSuffix?s(n.nestingSuffix):n.nestingSuffixEscaped||s(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var a=this,s=void 0,u=void 0,l=function(t){if(t.indexOf(a.formatSeparator)<0)return i(n,t);var e=t.split(a.formatSeparator),r=e.shift().trim(),s=e.join(a.formatSeparator).trim();return a.format(i(n,r),s,o)};for(this.resetRegExp();s=this.regexpUnescape.exec(e);){var c=l(s[1].trim());e=e.replace(s[0],c),this.regexpUnescape.lastIndex=0}for(;s=this.regexp.exec(e);)u=l(s[1].trim()),"string"!=typeof u&&(u=t(u)),u||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),u=""),u=r(this.escapeValue?this.escape(u):u),e=e.replace(s[0],u),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,s),n=n.replace(/'/g,'"');try{s=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=void 0,a=void 0,s=JSON.parse(JSON.stringify(r));for(s.applyPostProcessor=!1;i=this.nestingRegexp.exec(e);)a=n(o.call(this,i[1].trim()),s),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+i[1]+" for interpolating "+e),a=""),e=e.replace(i[0],a),this.regexp.lastIndex=0;return e},e}(),F=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.backend=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return w(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],a=[],s=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var a=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[a]=2:o.state[a]<0||(1===o.state[a]?i.indexOf(a)<0&&i.push(a):(o.state[a]=1,n=!1,i.indexOf(a)<0&&i.push(a),r.indexOf(a)<0&&r.push(a),s.indexOf(e)<0&&s.push(e)))}),n||a.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:a,toLoadNamespaces:s}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),a=N(i,2),s=a[0],u=a[1];e&&this.emit("failedLoading",s,u,e),n&&this.store.addResourceBundle(s,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[s],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(o.emit("loaded",n.loaded),n.errors.length?n.callback(n.errors):n.callback(),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var a=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(s,u){return s&&u&&o<5?void setTimeout(function(){a.read.call(a,t,e,n,++o,2*r,i)},r):void i(s,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var a=this.queueLoad(t,e,n);return a.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(a.toLoadLanguages,a.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading",e),a.toLoad.forEach(function(n){var r=n.split("|"),a=N(r,2),s=a[0],u=a[1],l=i(e,[s,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+s+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};a.toLoad.forEach(function(e){t.call(o,e)})}()):void(a.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var a=i(r,[t,e]);if(a)n.loaded(t+"|"+e,o,a);else{var s="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,s),n.logger.error(s)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(P),I=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.cache=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("cacheConnector"),a.cache&&a.cache.init&&a.cache.init(r,i.cache,i),a}return w(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=S({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var a in r[i])if("i18nStamp"!==a){var s=r[i][a];s&&o.store.addResourceBundle(i,a,s)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(P),K=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments[1];k(this,e);var r=O(this,t.call(this));return r.options=b(n),r.services={},r.logger=C,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return w(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=S({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=S({},y(),b(p(t)),{}):this.options=S({},y(),this.options,b(t)),e||(e=m),!this.options.isClone){this.modules.logger?C.init(n(this.modules.logger),this.options):C.init(null,this.options);var r=new M(this.options);this.store=new E(this.options.resources,this.options);var i=this.services;i.logger=C,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new U(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new F(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n));
+}),i.backendConnector.on("loaded",function(t){i.cacheConnector.save()}),i.cacheConnector=new I(n(this.modules.cache),i.resourceStore,i,this.options),i.cacheConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),this.modules.languageDetector&&(i.languageDetector=n(this.modules.languageDetector),i.languageDetector.init(i,this.options.detection,this.options)),this.translator=new A(this.services,this.options),this.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))})}var a=["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle"];a.forEach(function(t){o[t]=function(){return this.store[t].apply(this.store,arguments)}}),"v1"===this.options.compatibilityAPI&&g(this);var s=function(){o.changeLanguage(o.options.lng,function(t,n){o.isInitialized=!0,o.emit("initialized",o.options),o.logger.log("initialized",o.options),e(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),this},e.prototype.loadResources=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;if(this.options.resources)e(null);else{var n=function(){if(t.language&&"cimode"===t.language.toLowerCase())return{v:e()};var n=[],o=function(e){var o=t.services.languageUtils.toResolveHierarchy(e);o.forEach(function(t){n.indexOf(t)<0&&n.push(t)})};o(t.language),t.options.preload&&t.options.preload.forEach(function(t){o(t)}),t.services.cacheConnector.load(n,t.options.ns,function(){t.services.backendConnector.load(n,t.options.ns,e)})}();if("object"===("undefined"==typeof n?"undefined":x(n)))return n.v}},e.prototype.reloadResources=function(t,e){t||(t=this.languages),e||(e=this.options.ns),this.services.backendConnector.reload(t,e)},e.prototype.use=function(t){return"backend"===t.type&&(this.modules.backend=t),"cache"===t.type&&(this.modules.cache=t),("logger"===t.type||t.log&&t.warn&&t.warn)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"postProcessor"===t.type&&_.addPostProcessor(t),this},e.prototype.changeLanguage=function(t,e){var n=this,o=function(o){t&&(n.emit("languageChanged",t),n.logger.log("languageChanged",t)),e&&e(o,function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.t.apply(n,e)})};!t&&this.services.languageDetector&&(t=this.services.languageDetector.detect()),t&&(this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(function(t){o(t)})},e.prototype.getFixedT=function(t,e){var n=this,o=function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=S({},o);return r.lng=r.lng||t.lng,r.ns=r.ns||t.ns,n.t(e,r)};return o.lng=t,o.ns=e,o},e.prototype.t=function(){return this.translator&&this.translator.translate.apply(this.translator,arguments)},e.prototype.exists=function(){return this.translator&&this.translator.exists.apply(this.translator,arguments)},e.prototype.setDefaultNamespace=function(t){this.options.defaultNS=t},e.prototype.loadNamespaces=function(t,e){var n=this;return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach(function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)}),void this.loadResources(e)):e&&e()},e.prototype.loadLanguages=function(t,e){"string"==typeof t&&(t=[t]);var n=this.options.preload||[],o=t.filter(function(t){return n.indexOf(t)<0});return o.length?(this.options.preload=n.concat(o),void this.loadResources(e)):e()},e.prototype.dir=function(t){if(t||(t=this.language),!t)return"rtl";var e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"];return e.indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=new e(S({},n,this.options,{isClone:!0}),o),i=["store","services","language"];return i.forEach(function(e){r[e]=t[e]}),r.translator=new A(r.services,r.options),r.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];r.emit.apply(r,[t].concat(n))}),r},e}(P),D=new K;return D});
diff --git a/build/js/jsxc/lib/i18next/release/i18next-latest.min.js b/build/js/jsxc/lib/i18next/release/i18next-latest.min.js
deleted file mode 100644
index 56b93e1..0000000
--- a/build/js/jsxc/lib/i18next/release/i18next-latest.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// i18next, v1.7.7
-// Copyright (c)2014 Jan Mühlemann (jamuhl).
-// Distributed under MIT license
-// http://i18next.com
-!function(){function a(a,b){if(!b||"function"==typeof b)return a;for(var c in b)a[c]=b[c];return a}function b(a,c){for(var d in c)d in a?b(a[d],c[d]):a[d]=c[d];return a}function c(a,b,c){var d,e=0,f=a.length,g=void 0===f||"[object Array]"!==Object.prototype.toString.apply(a)||"function"==typeof a;if(c)if(g){for(d in a)if(b.apply(a[d],c)===!1)break}else for(;f>e&&b.apply(a[e++],c)!==!1;);else if(g){for(d in a)if(b.call(a[d],d,a[d])===!1)break}else for(;f>e&&b.call(a[e],e,a[e++])!==!1;);return a}function d(a){return"string"==typeof a?a.replace(/[&<>"'\/]/g,function(a){return Q[a]}):a}function e(a){var b=function(a){if(window.XMLHttpRequest)return a(null,new XMLHttpRequest);if(window.ActiveXObject)try{return a(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(b){return a(null,new ActiveXObject("Microsoft.XMLHTTP"))}return a(new Error)},c=function(a){if("string"==typeof a)return a;var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.join("&")},d=function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(192|d>>6),b+=String.fromCharCode(128|63&d)):(b+=String.fromCharCode(224|d>>12),b+=String.fromCharCode(128|63&d>>6),b+=String.fromCharCode(128|63&d))}return b},e=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a=d(a);var c,e,f,g,h,i,j,k="",l=0;do c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k+=b.charAt(g)+b.charAt(h)+b.charAt(i)+b.charAt(j),c=e=f="",g=h=i=j="";while(l<a.length);return k},f=function(){for(var a=arguments[0],b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}return a},g=function(a,d,e,h){"function"==typeof e&&(h=e,e={}),e.cache=e.cache||!1,e.data=e.data||{},e.headers=e.headers||{},e.jsonp=e.jsonp||!1,e.async=void 0===e.async?!0:e.async;var i,j=f({accept:"*/*","content-type":"application/x-www-form-urlencoded;charset=UTF-8"},g.headers,e.headers);if(i="application/json"===j["content-type"]?JSON.stringify(e.data):c(e.data),"GET"===a){var k=[];if(i&&(k.push(i),i=null),e.cache||k.push("_="+(new Date).getTime()),e.jsonp&&(k.push("callback="+e.jsonp),k.push("jsonp="+e.jsonp)),k=k.join("&"),k.length>1&&(d+=d.indexOf("?")>-1?"&"+k:"?"+k),e.jsonp){var l=document.getElementsByTagName("head")[0],m=document.createElement("script");return m.type="text/javascript",m.src=d,l.appendChild(m),void 0}}b(function(b,c){if(b)return h(b);c.open(a,d,e.async);for(var f in j)j.hasOwnProperty(f)&&c.setRequestHeader(f,j[f]);c.onreadystatechange=function(){if(4===c.readyState){var a=c.responseText||"";if(!h)return;h(c.status,{text:function(){return a},json:function(){try{return JSON.parse(a)}catch(b){return T.error("Can not parse JSON. URL: "+d),{}}}})}},c.send(i)})},h={authBasic:function(a,b){g.headers.Authorization="Basic "+e(a+":"+b)},connect:function(a,b,c){return g("CONNECT",a,b,c)},del:function(a,b,c){return g("DELETE",a,b,c)},get:function(a,b,c){return g("GET",a,b,c)},head:function(a,b,c){return g("HEAD",a,b,c)},headers:function(a){g.headers=a||{}},isAllowed:function(a,b,c){this.options(a,function(a,d){c(-1!==d.text().indexOf(b))})},options:function(a,b,c){return g("OPTIONS",a,b,c)},patch:function(a,b,c){return g("PATCH",a,b,c)},post:function(a,b,c){return g("POST",a,b,c)},put:function(a,b,c){return g("PUT",a,b,c)},trace:function(a,b,c){return g("TRACE",a,b,c)}},i=a.type?a.type.toLowerCase():"get";h[i](a.url,a,function(b,c){200===b||0===b&&c.text()?a.success(c.json(),b,null):a.error(c.text(),b,null)})}function f(a,b){"function"==typeof a&&(b=a,a={}),a=a||{},T.extend(P,a),delete P.fixLng,P.functions&&(delete P.functions,T.extend(T,a.functions)),"string"==typeof P.ns&&(P.ns={namespaces:[P.ns],defaultNs:P.ns}),"string"==typeof P.fallbackNS&&(P.fallbackNS=[P.fallbackNS]),("string"==typeof P.fallbackLng||"boolean"==typeof P.fallbackLng)&&(P.fallbackLng=[P.fallbackLng]),P.interpolationPrefixEscaped=T.regexEscape(P.interpolationPrefix),P.interpolationSuffixEscaped=T.regexEscape(P.interpolationSuffix),P.lng||(P.lng=T.detectLanguage()),L=T.toLanguages(P.lng),F=L[0],T.log("currentLng set to: "+F),P.useCookie&&T.cookie.read(P.cookieName)!==F&&T.cookie.create(P.cookieName,F,P.cookieExpirationTime,P.cookieDomain),P.detectLngFromLocalStorage&&"undefined"!=typeof document&&window.localStorage&&T.localStorage.setItem("i18next_lng",F);var c=z;a.fixLng&&(c=function(a,b){return b=b||{},b.lng=b.lng||c.lng,z(a,b)},c.lng=F),W.setCurrentLng(F),H&&P.setJqueryExt&&s();var d;if(H&&H.Deferred&&(d=H.Deferred()),!P.resStore){var e=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var f=0,g=P.preload.length;g>f;f++)for(var h=T.toLanguages(P.preload[f]),i=0,j=h.length;j>i;i++)e.indexOf(h[i])<0&&e.push(h[i]);return I.sync.load(e,P,function(a,e){J=e,M=!0,b&&b(c),d&&d.resolve(c)}),d?d.promise():void 0}return J=P.resStore,M=!0,b&&b(c),d&&d.resolve(c),d?d.promise():void 0}function g(a,b){"string"==typeof a&&(a=[a]);for(var c=0,d=a.length;d>c;c++)P.preload.indexOf(a[c])<0&&P.preload.push(a[c]);return f(b)}function h(a,b,c,d){"string"!=typeof b?(c=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{},d?T.deepExtend(J[a][b],c):T.extend(J[a][b],c)}function i(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{};var c=J[a][b]||{},d=!1;for(var e in c)c.hasOwnProperty(e)&&(d=!0);return d}function j(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{},J[a][b]={}}function k(a,b,c,d){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{};for(var e=c.split(P.keyseparator),f=0,g=J[a][b];e[f];)f==e.length-1?g[e[f]]=d:(null==g[e[f]]&&(g[e[f]]={}),g=g[e[f]]),f++}function l(a,b,c){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b);for(var d in c)"string"==typeof c[d]&&k(a,b,d,c[d])}function m(a){P.ns.defaultNs=a}function n(a,b){o([a],b)}function o(a,b){var c={dynamicLoad:P.dynamicLoad,resGetPath:P.resGetPath,getAsync:P.getAsync,customLoad:P.customLoad,ns:{namespaces:a,defaultNs:""}},d=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var e=0,f=P.preload.length;f>e;e++)for(var g=T.toLanguages(P.preload[e]),h=0,i=g.length;i>h;h++)d.indexOf(g[h])<0&&d.push(g[h]);for(var j=[],k=0,l=d.length;l>k;k++){var m=!1,n=J[d[k]];if(n)for(var o=0,p=a.length;p>o;o++)n[a[o]]||(m=!0);else m=!0;m&&j.push(d[k])}j.length?I.sync._fetch(j,c,function(c,d){var e=a.length*j.length;T.each(a,function(a,c){P.ns.namespaces.indexOf(c)<0&&P.ns.namespaces.push(c),T.each(j,function(a,f){J[f]=J[f]||{},J[f][c]=d[f][c],e--,0===e&&b&&(P.useLocalStorage&&I.sync._storeLocal(J),b())})})}):b&&b()}function p(a,b,c){return"function"==typeof b?(c=b,b={}):b||(b={}),b.lng=a,f(b,c)}function q(){return F}function r(a){J={},p(F,a)}function s(){function a(a,b,c){if(0!==b.length){var d="text";if(0===b.indexOf("[")){var e=b.split("]");b=e[1],d=e[0].substr(1,e[0].length-1)}b.indexOf(";")===b.length-1&&(b=b.substr(0,b.length-2));var f;if("html"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.html(H.t(b,f));else if("text"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.text()},c):c,a.text(H.t(b,f));else if("prepend"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.prepend(H.t(b,f));else if("append"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.append(H.t(b,f));else if(0===d.indexOf("data-")){var g=d.substr("data-".length);f=P.defaultValueFromContent?H.extend({defaultValue:a.data(g)},c):c;var h=H.t(b,f);a.data(g,h),a.attr(d,h)}else f=P.defaultValueFromContent?H.extend({defaultValue:a.attr(d)},c):c,a.attr(d,H.t(b,f))}}function b(b,c){var d=b.attr(P.selectorAttr);if(d||"undefined"==typeof d||d===!1||(d=b.text()||b.val()),d){var e=b,f=b.data("i18n-target");if(f&&(e=b.find(f)||b),c||P.useDataAttrOptions!==!0||(c=b.data("i18n-options")),c=c||{},d.indexOf(";")>=0){var g=d.split(";");H.each(g,function(b,d){""!==d&&a(e,d,c)})}else a(e,d,c);P.useDataAttrOptions===!0&&b.data("i18n-options",c)}}H.t=H.t||z,H.fn.i18n=function(a){return this.each(function(){b(H(this),a);var c=H(this).find("["+P.selectorAttr+"]");c.each(function(){b(H(this),a)})})}}function t(a,b,c,d){if(!a)return a;if(d=d||b,a.indexOf(d.interpolationPrefix||P.interpolationPrefix)<0)return a;var e=d.interpolationPrefix?T.regexEscape(d.interpolationPrefix):P.interpolationPrefixEscaped,f=d.interpolationSuffix?T.regexEscape(d.interpolationSuffix):P.interpolationSuffixEscaped,g="HTML"+f,h=b.replace&&"object"==typeof b.replace?b.replace:b;return T.each(h,function(b,h){var i=c?c+P.keyseparator+b:b;"object"==typeof h&&null!==h?a=t(a,h,i,d):d.escapeInterpolation||P.escapeInterpolation?(a=a.replace(new RegExp([e,i,g].join(""),"g"),T.regexReplacementEscape(h)),a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(T.escape(h)))):a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(h))}),a}function u(a,b){var c=",",d="{",e="}",f=T.extend({},b);for(delete f.postProcess;-1!=a.indexOf(P.reusePrefix)&&(K++,!(K>P.maxRecursion));){var g=a.lastIndexOf(P.reusePrefix),h=a.indexOf(P.reuseSuffix,g)+P.reuseSuffix.length,i=a.substring(g,h),j=i.replace(P.reusePrefix,"").replace(P.reuseSuffix,"");if(g>=h)return T.error("there is an missing closing in following translation value",a),"";if(-1!=j.indexOf(c)){var k=j.indexOf(c);if(-1!=j.indexOf(d,k)&&-1!=j.indexOf(e,k)){var l=j.indexOf(d,k),m=j.indexOf(e,l)+e.length;try{f=T.extend(f,JSON.parse(j.substring(l,m))),j=j.substring(0,k)}catch(n){}}}var o=C(j,f);a=a.replace(i,T.regexReplacementEscape(o))}return a}function v(a){return a.context&&("string"==typeof a.context||"number"==typeof a.context)}function w(a){return void 0!==a.count&&"string"!=typeof a.count}function x(a){return void 0!==a.indefinite_article&&"string"!=typeof a.indefinite_article&&a.indefinite_article}function y(a,b){b=b||{};var c=A(a,b),d=D(a,b);return void 0!==d||d===c}function z(a,b){return b=b||{},M?(K=0,C.apply(null,arguments)):(T.log("i18next not finished initialization. you might have called t function before loading resources finished."),b.defaultValue||"")}function A(a,b){return void 0!==b.defaultValue?b.defaultValue:a}function B(){for(var a=[],b=1;b<arguments.length;b++)a.push(arguments[b]);return{postProcess:"sprintf",sprintf:a}}function C(a,b){if(b&&"object"!=typeof b?"sprintf"===P.shortcutFunction?b=B.apply(null,arguments):"defaultValue"===P.shortcutFunction&&(b={defaultValue:b}):b=b||{},"object"==typeof P.defaultVariables&&(b=T.extend({},P.defaultVariables,b)),void 0===a||null===a||""===a)return"";"string"==typeof a&&(a=[a]);var c=a[0];if(a.length>1)for(var d=0;d<a.length&&(c=a[d],!y(c,b));d++);var e,f=A(c,b),g=D(c,b),h=b.lng?T.toLanguages(b.lng,b.fallbackLng):L,i=b.ns||P.ns.defaultNs;c.indexOf(P.nsseparator)>-1&&(e=c.split(P.nsseparator),i=e[0],c=e[1]),void 0===g&&P.sendMissing&&"function"==typeof P.missingKeyHandler&&(b.lng?P.missingKeyHandler(h[0],i,c,f,h):P.missingKeyHandler(P.lng,i,c,f,h));var j=b.postProcess||P.postProcess;void 0!==g&&j&&X[j]&&(g=X[j](g,c,b));var k=f;if(f.indexOf(P.nsseparator)>-1&&(e=f.split(P.nsseparator),k=e[1]),k===c&&P.parseMissingKey&&(f=P.parseMissingKey(f)),void 0===g&&(f=t(f,b),f=u(f,b),j&&X[j])){var l=A(c,b);g=X[j](l,c,b)}return void 0!==g?g:f}function D(a,b){b=b||{};var c,d,e=A(a,b),f=L;if(!J)return e;if("cimode"===f[0].toLowerCase())return e;if(b.lngs&&(f=b.lngs),b.lng&&(f=T.toLanguages(b.lng,b.fallbackLng),!J[f[0]])){var g=P.getAsync;P.getAsync=!1,I.sync.load(f,P,function(a,b){T.extend(J,b),P.getAsync=g})}var h=b.ns||P.ns.defaultNs;if(a.indexOf(P.nsseparator)>-1){var i=a.split(P.nsseparator);h=i[0],a=i[1]}if(v(b)){c=T.extend({},b),delete c.context,c.defaultValue=P.contextNotFound;var j=h+P.nsseparator+a+"_"+b.context;if(d=z(j,c),d!=P.contextNotFound)return t(d,{context:b.context})}if(w(b,f[0])){c=T.extend({lngs:[f[0]]},b),delete c.count,delete c.lng,c.defaultValue=P.pluralNotFound;var k;if(W.needsPlural(f[0],b.count)){k=h+P.nsseparator+a+P.pluralSuffix;var l=W.get(f[0],b.count);l>=0?k=k+"_"+l:1===l&&(k=h+P.nsseparator+a)}else k=h+P.nsseparator+a;if(d=z(k,c),d!=P.pluralNotFound)return t(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});if(!(f.length>1))return d;var m=f.slice();if(m.shift(),b=T.extend(b,{lngs:m}),delete b.lng,d=z(h+P.nsseparator+a,b),d!=P.pluralNotFound)return d}if(x(b)){var n=T.extend({},b);delete n.indefinite_article,n.defaultValue=P.indefiniteNotFound;var o=h+P.nsseparator+a+(b.count&&!w(b,f[0])||!b.count?P.indefiniteSuffix:"");if(d=z(o,n),d!=P.indefiniteNotFound)return d}for(var p,q=a.split(P.keyseparator),r=0,s=f.length;s>r&&void 0===p;r++){for(var y=f[r],B=0,E=J[y]&&J[y][h];q[B];)E=E&&E[q[B]],B++;if(void 0!==E){var F=Object.prototype.toString.apply(E);if("string"==typeof E)E=t(E,b),E=u(E,b);else if("[object Array]"!==F||P.returnObjectTrees||b.returnObjectTrees){if(null===E&&P.fallbackOnNull===!0)E=void 0;else if(null!==E)if(P.returnObjectTrees||b.returnObjectTrees){if("[object Number]"!==F&&"[object Function]"!==F&&"[object RegExp]"!==F){var G="[object Array]"===F?[]:{};T.each(E,function(c){G[c]=C(h+P.nsseparator+a+P.keyseparator+c,b)}),E=G}}else P.objectTreeKeyHandler&&"function"==typeof P.objectTreeKeyHandler?E=P.objectTreeKeyHandler(a,E,y,h,b):(E="key '"+h+":"+a+" ("+y+")' "+"returned an object instead of string.",T.log(E))}else E=E.join("\n"),E=t(E,b),E=u(E,b);"string"==typeof E&&""===E.trim()&&P.fallbackOnEmpty===!0&&(E=void 0),p=E}}if(void 0===p&&!b.isFallbackLookup&&(P.fallbackToDefaultNS===!0||P.fallbackNS&&P.fallbackNS.length>0)){if(b.isFallbackLookup=!0,P.fallbackNS.length){for(var H=0,K=P.fallbackNS.length;K>H;H++)if(p=D(P.fallbackNS[H]+P.nsseparator+a,b),p||""===p&&P.fallbackOnEmpty===!1){var M=p.indexOf(P.nsseparator)>-1?p.split(P.nsseparator)[1]:p,N=e.indexOf(P.nsseparator)>-1?e.split(P.nsseparator)[1]:e;if(M!==N)break}}else p=D(a,b);b.isFallbackLookup=!1}return p}function E(){var a,b=P.lngWhitelist||[],c=[];if("undefined"!=typeof window&&!function(){for(var a=window.location.search.substring(1),b=a.split("&"),d=0;d<b.length;d++){var e=b[d].indexOf("=");if(e>0){var f=b[d].substring(0,e);f==P.detectLngQS&&c.push(b[d].substring(e+1))}}}(),P.useCookie&&"undefined"!=typeof document){var d=T.cookie.read(P.cookieName);d&&c.push(d)}if(P.detectLngFromLocalStorage&&"undefined"!=typeof window&&window.localStorage&&c.push(window.localStorage.getItem("i18next_lng")),"undefined"!=typeof navigator){if(navigator.languages)for(var e=0;e<navigator.languages.length;e++)c.push(navigator.languages[e]);navigator.userLanguage&&c.push(navigator.userLanguage),navigator.language&&c.push(navigator.language)}return function(){for(var d=0;d<c.length;d++){var e=c[d];if(e.indexOf("-")>-1){var f=e.split("-");e=P.lowerCaseLng?f[0].toLowerCase()+"-"+f[1].toLowerCase():f[0].toLowerCase()+"-"+f[1].toUpperCase()}if(0===b.length||b.indexOf(e)>-1){a=e;break}}}(),a||(a=P.fallbackLng[0]),a}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var F,G=this,H=G.jQuery||G.Zepto,I={},J={},K=0,L=[],M=!1,N={};if("undefined"!=typeof module&&module.exports){if(!H)try{H=require("jquery")}catch(O){}H&&(H.i18n=H.i18n||I),module.exports=I}else H&&(H.i18n=H.i18n||I),G.i18n=G.i18n||I;N={load:function(a,b,c){b.useLocalStorage?N._loadLocal(a,b,function(d,e){for(var f=[],g=0,h=a.length;h>g;g++)e[a[g]]||f.push(a[g]);f.length>0?N._fetch(f,b,function(a,b){T.extend(e,b),N._storeLocal(b),c(null,e)}):c(null,e)}):N._fetch(a,b,function(a,b){c(null,b)})},_loadLocal:function(a,b,c){var d={},e=(new Date).getTime();if(window.localStorage){var f=a.length;T.each(a,function(a,g){var h=window.localStorage.getItem("res_"+g);h&&(h=JSON.parse(h),h.i18nStamp&&h.i18nStamp+b.localStorageExpirationTime>e&&(d[g]=h)),f--,0===f&&c(null,d)})}},_storeLocal:function(a){if(window.localStorage)for(var b in a)a[b].i18nStamp=(new Date).getTime(),T.localStorage.setItem("res_"+b,JSON.stringify(a[b]))},_fetch:function(a,b,c){var d=b.ns,e={};if(b.dynamicLoad){var f=function(a,b){c(null,b)};if("function"==typeof b.customLoad)b.customLoad(a,d.namespaces,b,f);else{var g=t(b.resGetPath,{lng:a.join("+"),ns:d.namespaces.join("+")});T.ajax({url:g,success:function(a){T.log("loaded: "+g),f(null,a)},error:function(a,b,c){T.log("failed loading: "+g),f("failed loading resource.json error: "+c)},dataType:"json",async:b.getAsync})}}else{var h,i=d.namespaces.length*a.length;T.each(d.namespaces,function(d,f){T.each(a,function(a,d){var g=function(a,b){a&&(h=h||[],h.push(a)),e[d]=e[d]||{},e[d][f]=b,i--,0===i&&c(h,e)};"function"==typeof b.customLoad?b.customLoad(d,f,b,g):N._fetchOne(d,f,b,g)})})}},_fetchOne:function(a,b,c,d){var e=t(c.resGetPath,{lng:a,ns:b});T.ajax({url:e,success:function(a){T.log("loaded: "+e),d(null,a)},error:function(a,b,c){if(b&&200==b||a&&a.status&&200==a.status)T.error("There is a typo in: "+e);else if(b&&404==b||a&&a.status&&404==a.status)T.log("Does not exist: "+e);else{var f=b?b:a&&a.status?a.status:null;T.log(f+" when loading "+e)}d(c,{})},dataType:"json",async:c.getAsync})},postMissing:function(a,b,c,d,e){var f={};f[c]=d;var g=[];if("fallback"===P.sendMissingTo&&P.fallbackLng[0]!==!1)for(var h=0;h<P.fallbackLng.length;h++)g.push({lng:P.fallbackLng[h],url:t(P.resPostPath,{lng:P.fallbackLng[h],ns:b})});else if("current"===P.sendMissingTo||"fallback"===P.sendMissingTo&&P.fallbackLng[0]===!1)g.push({lng:a,url:t(P.resPostPath,{lng:a,ns:b})});else if("all"===P.sendMissingTo)for(var h=0,i=e.length;i>h;h++)g.push({lng:e[h],url:t(P.resPostPath,{lng:e[h],ns:b})});for(var j=0,k=g.length;k>j;j++){var l=g[j];T.ajax({url:l.url,type:P.sendType,data:f,success:function(){T.log("posted missing key '"+c+"' to: "+l.url);for(var a=c.split("."),e=0,f=J[l.lng][b];a[e];)f=f[a[e]]=e===a.length-1?d:f[a[e]]||{},e++},error:function(){T.log("failed posting missing key '"+c+"' to: "+l.url)},dataType:"json",async:P.postAsync})}},reload:r};var P={lng:void 0,load:"all",preload:[],lowerCaseLng:!1,returnObjectTrees:!1,fallbackLng:["dev"],fallbackNS:[],detectLngQS:"setLng",detectLngFromLocalStorage:!1,ns:"translation",fallbackOnNull:!0,fallbackOnEmpty:!1,fallbackToDefaultNS:!1,nsseparator:":",keyseparator:".",selectorAttr:"data-i18n",debug:!1,resGetPath:"locales/__lng__/__ns__.json",resPostPath:"locales/add/__lng__/__ns__",getAsync:!0,postAsync:!0,resStore:void 0,useLocalStorage:!1,localStorageExpirationTime:6048e5,dynamicLoad:!1,sendMissing:!1,sendMissingTo:"fallback",sendType:"POST",interpolationPrefix:"__",interpolationSuffix:"__",defaultVariables:!1,reusePrefix:"$t(",reuseSuffix:")",pluralSuffix:"_plural",pluralNotFound:["plural_not_found",Math.random()].join(""),contextNotFound:["context_not_found",Math.random()].join(""),escapeInterpolation:!1,indefiniteSuffix:"_indefinite",indefiniteNotFound:["indefinite_not_found",Math.random()].join(""),setJqueryExt:!0,defaultValueFromContent:!0,useDataAttrOptions:!1,cookieExpirationTime:void 0,useCookie:!0,cookieName:"i18next",cookieDomain:void 0,objectTreeKeyHandler:void 0,postProcess:void 0,parseMissingKey:void 0,missingKeyHandler:N.postMissing,shortcutFunction:"sprintf"},Q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},R={create:function(a,b,c,d){var e;if(c){var f=new Date;f.setTime(f.getTime()+1e3*60*c),e="; expires="+f.toGMTString()}else e="";d=d?"domain="+d+";":"",document.cookie=a+"="+b+e+";"+d+"path=/"},read:function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(b))return e.substring(b.length,e.length)}return null},remove:function(a){this.create(a,"",-1)}},S={create:function(){},read:function(){return null},remove:function(){}},T={extend:H?H.extend:a,deepExtend:b,each:H?H.each:c,ajax:H?H.ajax:"undefined"!=typeof document?e:function(){},cookie:"undefined"!=typeof document?R:S,detectLanguage:E,escape:d,log:function(a){P.debug&&"undefined"!=typeof console&&console.log(a)},error:function(a){"undefined"!=typeof console&&console.error(a)},getCountyIndexOfLng:function(a){var b=0;return("nb-NO"===a||"nn-NO"===a||"nb-no"===a||"nn-no"===a)&&(b=1),b},toLanguages:function(a){function b(a){var b=a;if("string"==typeof a&&a.indexOf("-")>-1){var c=a.split("-");b=P.lowerCaseLng?c[0].toLowerCase()+"-"+c[1].toLowerCase():c[0].toLowerCase()+"-"+c[1].toUpperCase()}else b=P.lowerCaseLng?a.toLowerCase():a;return b}var c=this.log,d=[],e=P.lngWhitelist||!1,f=function(a){!e||e.indexOf(a)>-1?d.push(a):c("rejecting non-whitelisted language: "+a)};if("string"==typeof a&&a.indexOf("-")>-1){var g=a.split("-");"unspecific"!==P.load&&f(b(a)),"current"!==P.load&&f(b(g[this.getCountyIndexOfLng(a)]))}else f(b(a));for(var h=0;h<P.fallbackLng.length;h++)-1===d.indexOf(P.fallbackLng[h])&&P.fallbackLng[h]&&d.push(b(P.fallbackLng[h]));return d},regexEscape:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},regexReplacementEscape:function(a){return"string"==typeof a?a.replace(/\$/g,"$$$$"):a},localStorage:{setItem:function(a,b){if(window.localStorage)try{window.localStorage.setItem(a,b)}catch(c){T.log('failed to set value for key "'+a+'" to localStorage.')}}}};T.applyReplacement=t;var U=[["ach","Acholi",[1,2],1],["af","Afrikaans",[1,2],2],["ak","Akan",[1,2],1],["am","Amharic",[1,2],1],["an","Aragonese",[1,2],2],["ar","Arabic",[0,1,2,3,11,100],5],["arn","Mapudungun",[1,2],1],["ast","Asturian",[1,2],2],["ay","Aymará",[1],3],["az","Azerbaijani",[1,2],2],["be","Belarusian",[1,2,5],4],["bg","Bulgarian",[1,2],2],["bn","Bengali",[1,2],2],["bo","Tibetan",[1],3],["br","Breton",[1,2],1],["bs","Bosnian",[1,2,5],4],["ca","Catalan",[1,2],2],["cgg","Chiga",[1],3],["cs","Czech",[1,2,5],6],["csb","Kashubian",[1,2,5],7],["cy","Welsh",[1,2,3,8],8],["da","Danish",[1,2],2],["de","German",[1,2],2],["dev","Development Fallback",[1,2],2],["dz","Dzongkha",[1],3],["el","Greek",[1,2],2],["en","English",[1,2],2],["eo","Esperanto",[1,2],2],["es","Spanish",[1,2],2],["es_ar","Argentinean Spanish",[1,2],2],["et","Estonian",[1,2],2],["eu","Basque",[1,2],2],["fa","Persian",[1],3],["fi","Finnish",[1,2],2],["fil","Filipino",[1,2],1],["fo","Faroese",[1,2],2],["fr","French",[1,2],9],["fur","Friulian",[1,2],2],["fy","Frisian",[1,2],2],["ga","Irish",[1,2,3,7,11],10],["gd","Scottish Gaelic",[1,2,3,20],11],["gl","Galician",[1,2],2],["gu","Gujarati",[1,2],2],["gun","Gun",[1,2],1],["ha","Hausa",[1,2],2],["he","Hebrew",[1,2],2],["hi","Hindi",[1,2],2],["hr","Croatian",[1,2,5],4],["hu","Hungarian",[1,2],2],["hy","Armenian",[1,2],2],["ia","Interlingua",[1,2],2],["id","Indonesian",[1],3],["is","Icelandic",[1,2],12],["it","Italian",[1,2],2],["ja","Japanese",[1],3],["jbo","Lojban",[1],3],["jv","Javanese",[0,1],13],["ka","Georgian",[1],3],["kk","Kazakh",[1],3],["km","Khmer",[1],3],["kn","Kannada",[1,2],2],["ko","Korean",[1],3],["ku","Kurdish",[1,2],2],["kw","Cornish",[1,2,3,4],14],["ky","Kyrgyz",[1],3],["lb","Letzeburgesch",[1,2],2],["ln","Lingala",[1,2],1],["lo","Lao",[1],3],["lt","Lithuanian",[1,2,10],15],["lv","Latvian",[1,2,0],16],["mai","Maithili",[1,2],2],["mfe","Mauritian Creole",[1,2],1],["mg","Malagasy",[1,2],1],["mi","Maori",[1,2],1],["mk","Macedonian",[1,2],17],["ml","Malayalam",[1,2],2],["mn","Mongolian",[1,2],2],["mnk","Mandinka",[0,1,2],18],["mr","Marathi",[1,2],2],["ms","Malay",[1],3],["mt","Maltese",[1,2,11,20],19],["nah","Nahuatl",[1,2],2],["nap","Neapolitan",[1,2],2],["nb","Norwegian Bokmal",[1,2],2],["ne","Nepali",[1,2],2],["nl","Dutch",[1,2],2],["nn","Norwegian Nynorsk",[1,2],2],["no","Norwegian",[1,2],2],["nso","Northern Sotho",[1,2],2],["oc","Occitan",[1,2],1],["or","Oriya",[2,1],2],["pa","Punjabi",[1,2],2],["pap","Papiamento",[1,2],2],["pl","Polish",[1,2,5],7],["pms","Piemontese",[1,2],2],["ps","Pashto",[1,2],2],["pt","Portuguese",[1,2],2],["pt_br","Brazilian Portuguese",[1,2],2],["rm","Romansh",[1,2],2],["ro","Romanian",[1,2,20],20],["ru","Russian",[1,2,5],4],["sah","Yakut",[1],3],["sco","Scots",[1,2],2],["se","Northern Sami",[1,2],2],["si","Sinhala",[1,2],2],["sk","Slovak",[1,2,5],6],["sl","Slovenian",[5,1,2,3],21],["so","Somali",[1,2],2],["son","Songhay",[1,2],2],["sq","Albanian",[1,2],2],["sr","Serbian",[1,2,5],4],["su","Sundanese",[1],3],["sv","Swedish",[1,2],2],["sw","Swahili",[1,2],2],["ta","Tamil",[1,2],2],["te","Telugu",[1,2],2],["tg","Tajik",[1,2],1],["th","Thai",[1],3],["ti","Tigrinya",[1,2],1],["tk","Turkmen",[1,2],2],["tr","Turkish",[1,2],1],["tt","Tatar",[1],3],["ug","Uyghur",[1],3],["uk","Ukrainian",[1,2,5],4],["ur","Urdu",[1,2],2],["uz","Uzbek",[1,2],1],["vi","Vietnamese",[1],3],["wa","Walloon",[1,2],1],["wo","Wolof",[1],3],["yo","Yoruba",[1,2],2],["zh","Chinese",[1],3]],V={1:function(a){return Number(a>1)},2:function(a){return Number(1!=a)},3:function(){return 0},4:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},5:function(a){return Number(0===a?0:1==a?1:2==a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5)},6:function(a){return Number(1==a?0:a>=2&&4>=a?1:2)},7:function(a){return Number(1==a?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},8:function(a){return Number(1==a?0:2==a?1:8!=a&&11!=a?2:3)},9:function(a){return Number(a>=2)},10:function(a){return Number(1==a?0:2==a?1:7>a?2:11>a?3:4)},11:function(a){return Number(1==a||11==a?0:2==a||12==a?1:a>2&&20>a?2:3)},12:function(a){return Number(1!=a%10||11==a%100)},13:function(a){return Number(0!==a)},14:function(a){return Number(1==a?0:2==a?1:3==a?2:3)},15:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&(10>a%100||a%100>=20)?1:2)},16:function(a){return Number(1==a%10&&11!=a%100?0:0!==a?1:2)},17:function(a){return Number(1==a||1==a%10?0:1)},18:function(a){return Number(1==a?1:2)},19:function(a){return Number(1==a?0:0===a||a%100>1&&11>a%100?1:a%100>10&&20>a%100?2:3)},20:function(a){return Number(1==a?0:0===a||a%100>0&&20>a%100?1:2)},21:function(a){return Number(1==a%100?1:2==a%100?2:3==a%100||4==a%100?3:0)}},W={rules:function(){var a,b={};for(a=U.length;a--;)b[U[a][0]]={name:U[a][1],numbers:U[a][2],plurals:V[U[a][3]]};return b}(),addRule:function(a,b){W.rules[a]=b},setCurrentLng:function(a){if(!W.currentRule||W.currentRule.lng!==a){var b=a.split("-");W.currentRule={lng:a,rule:W.rules[b[0]]}}},needsPlural:function(a,b){var c,d=a.split("-");return c=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[d[T.getCountyIndexOfLng(a)]],c&&c.numbers.length<=1?!1:1!==this.get(a,b)},get:function(a,b){function c(b,c){var d;if(d=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[b]){var e;e=d.noAbs?d.plurals(c):d.plurals(Math.abs(c));var f=d.numbers[e];return 2===d.numbers.length&&1===d.numbers[0]&&(2===f?f=-1:1===f&&(f=1)),f}return 1===c?"1":"-1"}var d=a.split("-");return c(d[T.getCountyIndexOfLng(a)],b)}},X={},Y=function(a,b){X[a]=b},Z=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function b(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e,f,g,h,i,j,k,l=1,m=c.length,n="",o=[];for(f=0;m>f;f++)if(n=a(c[f]),"string"===n)o.push(c[f]);else if("array"===n){if(h=c[f],h[2])for(e=d[l],g=0;g<h[2].length;g++){if(!e.hasOwnProperty(h[2][g]))throw Z('[sprintf] property "%s" does not exist',h[2][g]);e=e[h[2][g]]}else e=h[1]?d[h[1]]:d[l++];if(/[^s]/.test(h[8])&&"number"!=a(e))throw Z("[sprintf] expecting number but found %s",a(e));switch(h[8]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e,10);break;case"e":e=h[7]?e.toExponential(h[7]):e.toExponential();break;case"f":e=h[7]?parseFloat(e).toFixed(h[7]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=(e=String(e))&&h[7]?e.substring(0,h[7]):e;break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase()}e=/[def]/.test(h[8])&&h[3]&&e>=0?"+"+e:e,j=h[4]?"0"==h[4]?"0":h[4].charAt(1):" ",k=h[6]-String(e).length,i=h[6]?b(j,k):"",o.push(h[5]?e+i:i+e)}return o.join("")},c.cache={},c.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),$=function(a,b){return b.unshift(a),Z.apply(null,b)};Y("sprintf",function(a,b,c){return c.sprintf?"[object Array]"===Object.prototype.toString.apply(c.sprintf)?$(a,c.sprintf):"object"==typeof c.sprintf?Z(a,c.sprintf):a:a}),I.init=f,I.setLng=p,I.preload=g,I.addResourceBundle=h,I.hasResourceBundle=i,I.addResource=k,I.addResources=l,I.removeResourceBundle=j,I.loadNamespace=n,I.loadNamespaces=o,I.setDefaultNamespace=m,I.t=z,I.translate=z,I.exists=y,I.detectLanguage=T.detectLanguage,I.pluralExtensions=W,I.sync=N,I.functions=T,I.lng=q,I.addPostProcessor=Y,I.options=P}(); \ No newline at end of file
diff --git a/build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js b/build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js
new file mode 100644
index 0000000..79e6ed1
--- /dev/null
+++ b/build/js/jsxc/lib/jquery-i18next/jquery-i18next.min.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.jqueryI18next=e()}(this,function(){"use strict";function t(t,a){function i(n,a,i){function r(t,n){return f.parseDefaultValueFromContent?e({},t,{defaultValue:n}):t}if(0!==a.length){var o="text";if(0===a.indexOf("[")){var l=a.split("]");a=l[1],o=l[0].substr(1,l[0].length-1)}if(a.indexOf(";")===a.length-1&&(a=a.substr(0,a.length-2)),"html"===o)n.html(t.t(a,r(i,n.html())));else if("text"===o)n.text(t.t(a,r(i,n.text())));else if("prepend"===o)n.prepend(t.t(a,r(i,n.html())));else if("append"===o)n.append(t.t(a,r(i,n.html())));else if(0===o.indexOf("data-")){var s=o.substr("data-".length),d=t.t(a,r(i,n.data(s)));n.data(s,d),n.attr(o,d)}else n.attr(o,t.t(a,r(i,n.attr(o))))}}function r(t,n){var r=t.attr(f.selectorAttr);if(r||"undefined"==typeof r||r===!1||(r=t.text()||t.val()),r){var o=t,l=t.data(f.targetAttr);if(l&&(o=t.find(l)||t),n||f.useOptionsAttr!==!0||(n=t.data(f.optionsAttr)),n=n||{},r.indexOf(";")>=0){var s=r.split(";");a.each(s,function(t,e){""!==e&&i(o,e,n)})}else i(o,r,n);if(f.useOptionsAttr===!0){var d={};d=e({clone:d},n),delete d.lng,t.data(f.optionsAttr,d)}}}function o(t){return this.each(function(){r(a(this),t);var e=a(this).find("["+f.selectorAttr+"]");e.each(function(){r(a(this),t)})})}var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f=e({},n,f),a[f.tName]=t.t.bind(t),a[f.i18nName]=t,a.fn[f.handleName]=o}var e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n={tName:"t",i18nName:"i18n",handleName:"localize",selectorAttr:"data-i18n",targetAttr:"i18n-target",optionsAttr:"i18n-options",useOptionsAttr:!1,parseDefaultValueFromContent:!0},a={init:t};return a}); \ No newline at end of file
diff --git a/build/js/jsxc/lib/jsxc.dep.js b/build/js/jsxc/lib/jsxc.dep.js
index 7e11153..5c1cd81 100644
--- a/build/js/jsxc/lib/jsxc.dep.js
+++ b/build/js/jsxc/lib/jsxc.dep.js
@@ -1,5 +1,5 @@
/*!
- * jsxc v3.0.1 - 2016-10-28
+ * jsxc v3.1.0-beta - 2017-01-23
*
* This file concatenates all dependencies of jsxc.
*
@@ -10,15 +10,13 @@
* Source: lib/strophe.js/strophe.js, license: multiple, url: http://strophe.im/strophejs/
*/
/** File: strophe.js
- * A JavaScript library for XMPP BOSH/XMPP over Websocket.
+ * A JavaScript library for writing XMPP clients.
*
- * This is the JavaScript version of the Strophe library. Since JavaScript
- * had no facilities for persistent TCP connections, this library uses
- * Bidirectional-streams Over Synchronous HTTP (BOSH) to emulate
- * a persistent, stateful, two-way connection to an XMPP server. More
- * information on BOSH can be found in XEP 124.
+ * This library uses either Bidirectional-streams Over Synchronous HTTP (BOSH)
+ * to emulate a persistent, stateful, two-way connection to an XMPP server or
+ * alternatively WebSockets.
*
- * This version of Strophe also works with WebSockets.
+ * More information on BOSH can be found in XEP 124.
* For more information on XMPP-over WebSocket see this RFC:
* http://tools.ietf.org/html/rfc7395
*/
@@ -132,7 +130,7 @@
* See http://pajhome.org.uk/crypt/md5 for details.
*/
-/* jshint undef: true, unused: true:, noarg: true, latedef: true */
+/* jshint undef: true, unused: true:, noarg: true, latedef: false */
/* global define */
/* Some functions and variables have been stripped for use with Strophe */
@@ -534,6 +532,80 @@ return {
return obj;
}));
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('strophe-utils', function () {
+ return factory();
+ });
+ } else {
+ // Browser globals
+ root.stropheUtils = factory();
+ }
+}(this, function () {
+
+ var utils = {
+
+ utf16to8: function (str) {
+ var i, c;
+ var out = "";
+ var len = str.length;
+ for (i = 0; i < len; i++) {
+ c = str.charCodeAt(i);
+ if ((c >= 0x0000) && (c <= 0x007F)) {
+ out += str.charAt(i);
+ } else if (c > 0x07FF) {
+ out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
+ out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
+ out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
+ } else {
+ out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
+ out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
+ }
+ }
+ return out;
+ },
+
+ addCookies: function (cookies) {
+ /* Parameters:
+ * (Object) cookies - either a map of cookie names
+ * to string values or to maps of cookie values.
+ *
+ * For example:
+ * { "myCookie": "1234" }
+ *
+ * or:
+ * { "myCookie": {
+ * "value": "1234",
+ * "domain": ".example.org",
+ * "path": "/",
+ * "expires": expirationDate
+ * }
+ * }
+ *
+ * These values get passed to Strophe.Connection via
+ * options.cookies
+ */
+ var cookieName, cookieObj, isObj, cookieValue, expires, domain, path;
+ for (cookieName in (cookies || {})) {
+ expires = '';
+ domain = '';
+ path = '';
+ cookieObj = cookies[cookieName];
+ isObj = typeof cookieObj == "object";
+ cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj));
+ if (isObj) {
+ expires = cookieObj.expires ? ";expires="+cookieObj.expires : '';
+ domain = cookieObj.domain ? ";domain="+cookieObj.domain : '';
+ path = cookieObj.path ? ";path="+cookieObj.path : '';
+ }
+ document.cookie =
+ cookieName+'='+cookieValue + expires + domain + path;
+ }
+ }
+ };
+ return utils;
+}));
+
/*
This program is distributed under the terms of the MIT license.
Please see the LICENSE file for details.
@@ -542,8 +614,20 @@ return {
*/
/* jshint undef: true, unused: true:, noarg: true, latedef: true */
+/* global define */
-/** PrivateFunction: Function.prototype.bind
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('strophe-polyfill', [], function () {
+ return factory();
+ });
+ } else {
+ // Browser globals
+ return factory();
+ }
+}(this, function () {
+
+/** Function: Function.prototype.bind
* Bind a function to an instance.
*
* This Function object extension method creates a bound method similar
@@ -565,22 +649,18 @@ return {
* The bound function.
*/
if (!Function.prototype.bind) {
- Function.prototype.bind = function (obj /*, arg1, arg2, ... */)
- {
+ Function.prototype.bind = function (obj /*, arg1, arg2, ... */) {
var func = this;
var _slice = Array.prototype.slice;
var _concat = Array.prototype.concat;
var _args = _slice.call(arguments, 1);
-
return function () {
- return func.apply(obj ? obj : this,
- _concat.call(_args,
- _slice.call(arguments, 0)));
+ return func.apply(obj ? obj : this, _concat.call(_args, _slice.call(arguments, 0)));
};
};
}
-/** PrivateFunction: Array.isArray
+/** Function: Array.isArray
* This is a polyfill for the ES5 Array.isArray method.
*/
if (!Array.isArray) {
@@ -589,7 +669,7 @@ if (!Array.isArray) {
};
}
-/** PrivateFunction: Array.prototype.indexOf
+/** Function: Array.prototype.indexOf
* Return the index of an object in an array.
*
* This function is not supplied by some JavaScript implementations, so
@@ -603,12 +683,9 @@ if (!Array.isArray) {
* Returns:
* The index of elt in the array or -1 if not found.
*/
-if (!Array.prototype.indexOf)
- {
- Array.prototype.indexOf = function(elt /*, from*/)
- {
+if (!Array.prototype.indexOf) {
+ Array.prototype.indexOf = function(elt /*, from*/) {
var len = this.length;
-
var from = Number(arguments[1]) || 0;
from = (from < 0) ? Math.ceil(from) : Math.floor(from);
if (from < 0) {
@@ -620,10 +697,66 @@ if (!Array.prototype.indexOf)
return from;
}
}
-
return -1;
};
}
+}));
+
+
+/** Function: Array.prototype.forEach
+ *
+ * This function is not available in IE < 9
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
+ */
+if (!Array.prototype.forEach) {
+ Array.prototype.forEach = function(callback, thisArg) {
+ var T, k;
+ if (this === null) {
+ throw new TypeError(' this is null or not defined');
+ }
+
+ // 1. Let O be the result of calling toObject() passing the
+ // |this| value as the argument.
+ var O = Object(this);
+ // 2. Let lenValue be the result of calling the Get() internal
+ // method of O with the argument "length".
+ // 3. Let len be toUint32(lenValue).
+ var len = O.length >>> 0;
+ // 4. If isCallable(callback) is false, throw a TypeError exception.
+ // See: http://es5.github.com/#x9.11
+ if (typeof callback !== "function") {
+ throw new TypeError(callback + ' is not a function');
+ }
+ // 5. If thisArg was supplied, let T be thisArg; else let
+ // T be undefined.
+ if (arguments.length > 1) {
+ T = thisArg;
+ }
+ // 6. Let k be 0
+ k = 0;
+ // 7. Repeat, while k < len
+ while (k < len) {
+ var kValue;
+ // a. Let Pk be ToString(k).
+ // This is implicit for LHS operands of the in operator
+ // b. Let kPresent be the result of calling the HasProperty
+ // internal method of O with argument Pk.
+ // This step can be combined with c
+ // c. If kPresent is true, then
+ if (k in O) {
+ // i. Let kValue be the result of calling the Get internal
+ // method of O with argument Pk.
+ kValue = O[k];
+ // ii. Call the Call internal method of callback with T as
+ // the this value and argument list containing kValue, k, and O.
+ callback.call(T, kValue, k, O);
+ }
+ // d. Increase k by 1.
+ k++;
+ }
+ // 8. return undefined
+ };
+}
/*
This program is distributed under the terms of the MIT license.
@@ -633,7 +766,7 @@ if (!Array.prototype.indexOf)
*/
/* jshint undef: true, unused: true:, noarg: true, latedef: true */
-/*global define, document, window, setTimeout, clearTimeout, console, ActiveXObject, DOMParser */
+/*global define, document, window, setTimeout, clearTimeout, ActiveXObject, DOMParser */
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
@@ -641,13 +774,14 @@ if (!Array.prototype.indexOf)
'strophe-sha1',
'strophe-base64',
'strophe-md5',
+ 'strophe-utils',
"strophe-polyfill"
], function () {
return factory.apply(this, arguments);
});
} else {
// Browser globals
- var o = factory(root.SHA1, root.Base64, root.MD5);
+ var o = factory(root.SHA1, root.Base64, root.MD5, root.stropheUtils);
window.Strophe = o.Strophe;
window.$build = o.$build;
window.$iq = o.$iq;
@@ -661,7 +795,7 @@ if (!Array.prototype.indexOf)
window.str_hmac_sha1 = o.SHA1.str_hmac_sha1;
window.str_sha1 = o.SHA1.str_sha1;
}
-}(this, function (SHA1, Base64, MD5) {
+}(this, function (SHA1, Base64, MD5, utils) {
var Strophe;
@@ -723,7 +857,7 @@ Strophe = {
* The version of the Strophe library. Unreleased builds will have
* a version of head-HASH where HASH is a partial revision.
*/
- VERSION: "1.2.3",
+ VERSION: "1.2.9",
/** Constants: XMPP Namespace Constants
* Common namespace constants from the XMPP RFCs and XEPs.
@@ -765,7 +899,6 @@ Strophe = {
XHTML: "http://www.w3.org/1999/xhtml"
},
-
/** Constants: XHTML_IM Namespace
* contains allowed tags, tag attributes, and css properties.
* Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset.
@@ -773,64 +906,63 @@ Strophe = {
* allowed tags and their attributes.
*/
XHTML: {
- tags: ['a','blockquote','br','cite','em','img','li','ol','p','span','strong','ul','body'],
- attributes: {
- 'a': ['href'],
- 'blockquote': ['style'],
- 'br': [],
- 'cite': ['style'],
- 'em': [],
- 'img': ['src', 'alt', 'style', 'height', 'width'],
- 'li': ['style'],
- 'ol': ['style'],
- 'p': ['style'],
- 'span': ['style'],
- 'strong': [],
- 'ul': ['style'],
- 'body': []
- },
- css: ['background-color','color','font-family','font-size','font-style','font-weight','margin-left','margin-right','text-align','text-decoration'],
- /** Function: XHTML.validTag
- *
- * Utility method to determine whether a tag is allowed
- * in the XHTML_IM namespace.
- *
- * XHTML tag names are case sensitive and must be lower case.
- */
- validTag: function(tag) {
- for (var i = 0; i < Strophe.XHTML.tags.length; i++) {
- if (tag == Strophe.XHTML.tags[i]) {
- return true;
- }
- }
- return false;
- },
- /** Function: XHTML.validAttribute
- *
- * Utility method to determine whether an attribute is allowed
- * as recommended per XEP-0071
- *
- * XHTML attribute names are case sensitive and must be lower case.
- */
- validAttribute: function(tag, attribute) {
- if(typeof Strophe.XHTML.attributes[tag] !== 'undefined' && Strophe.XHTML.attributes[tag].length > 0) {
- for(var i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {
- if(attribute == Strophe.XHTML.attributes[tag][i]) {
- return true;
- }
- }
- }
- return false;
- },
- validCSS: function(style)
- {
- for(var i = 0; i < Strophe.XHTML.css.length; i++) {
- if(style == Strophe.XHTML.css[i]) {
- return true;
- }
- }
- return false;
+ tags: ['a','blockquote','br','cite','em','img','li','ol','p','span','strong','ul','body'],
+ attributes: {
+ 'a': ['href'],
+ 'blockquote': ['style'],
+ 'br': [],
+ 'cite': ['style'],
+ 'em': [],
+ 'img': ['src', 'alt', 'style', 'height', 'width'],
+ 'li': ['style'],
+ 'ol': ['style'],
+ 'p': ['style'],
+ 'span': ['style'],
+ 'strong': [],
+ 'ul': ['style'],
+ 'body': []
+ },
+ css: ['background-color','color','font-family','font-size','font-style','font-weight','margin-left','margin-right','text-align','text-decoration'],
+ /** Function: XHTML.validTag
+ *
+ * Utility method to determine whether a tag is allowed
+ * in the XHTML_IM namespace.
+ *
+ * XHTML tag names are case sensitive and must be lower case.
+ */
+ validTag: function(tag) {
+ for (var i = 0; i < Strophe.XHTML.tags.length; i++) {
+ if (tag == Strophe.XHTML.tags[i]) {
+ return true;
+ }
+ }
+ return false;
+ },
+ /** Function: XHTML.validAttribute
+ *
+ * Utility method to determine whether an attribute is allowed
+ * as recommended per XEP-0071
+ *
+ * XHTML attribute names are case sensitive and must be lower case.
+ */
+ validAttribute: function(tag, attribute) {
+ if (typeof Strophe.XHTML.attributes[tag] !== 'undefined' && Strophe.XHTML.attributes[tag].length > 0) {
+ for (var i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {
+ if (attribute == Strophe.XHTML.attributes[tag][i]) {
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+ validCSS: function(style) {
+ for (var i = 0; i < Strophe.XHTML.css.length; i++) {
+ if (style == Strophe.XHTML.css[i]) {
+ return true;
}
+ }
+ return false;
+ }
},
/** Constants: Connection Status Constants
@@ -846,6 +978,7 @@ Strophe = {
* Status.DISCONNECTED - The connection has been terminated
* Status.DISCONNECTING - The connection is currently being terminated
* Status.ATTACHED - The connection has been attached
+ * Status.CONNTIMEOUT - The connection has timed out
*/
Status: {
ERROR: 0,
@@ -857,7 +990,8 @@ Strophe = {
DISCONNECTED: 6,
DISCONNECTING: 7,
ATTACHED: 8,
- REDIRECT: 9
+ REDIRECT: 9,
+ CONNTIMEOUT: 10
},
/** Constants: Log Level Constants
@@ -920,9 +1054,8 @@ Strophe = {
* referenced under Strophe.NS
* (String) value - The actual namespace.
*/
- addNamespace: function (name, value)
- {
- Strophe.NS[name] = value;
+ addNamespace: function (name, value) {
+ Strophe.NS[name] = value;
},
/** Function: forEachChild
@@ -939,10 +1072,8 @@ Strophe = {
* (Function) func - The function to apply to each child. This
* function should take a single argument, a DOM element.
*/
- forEachChild: function (elem, elemName, func)
- {
+ forEachChild: function (elem, elemName, func) {
var i, childNode;
-
for (i = 0; i < elem.childNodes.length; i++) {
childNode = elem.childNodes[i];
if (childNode.nodeType == Strophe.ElementType.NORMAL &&
@@ -965,8 +1096,7 @@ Strophe = {
* true if the element's tag name matches _el_, and false
* otherwise.
*/
- isTagEqual: function (el, name)
- {
+ isTagEqual: function (el, name) {
return el.tagName == name;
},
@@ -982,7 +1112,6 @@ Strophe = {
*/
_makeGenerator: function () {
var doc;
-
// IE9 does implement createDocument(); however, using it will cause the browser to leak memory on page unload.
// Here, we test for presence of createDocument() plus IE's proprietary documentMode attribute, which would be
// less than 10 in the case of IE9 and below.
@@ -994,7 +1123,6 @@ Strophe = {
doc = document.implementation
.createDocument('jabber:client', 'strophe', null);
}
-
return doc;
},
@@ -1042,7 +1170,6 @@ Strophe = {
break;
}
}
-
return doc;
},
@@ -1064,12 +1191,10 @@ Strophe = {
* Returns:
* A new XML DOM element.
*/
- xmlElement: function (name)
- {
+ xmlElement: function (name) {
if (!name) { return null; }
var node = Strophe.xmlGenerator().createElement(name);
-
// FIXME: this should throw errors if args are the wrong type or
// there are more than two optional args
var a, i, k;
@@ -1114,8 +1239,7 @@ Strophe = {
* Returns:
* Escaped text.
*/
- xmlescape: function(text)
- {
+ xmlescape: function(text) {
text = text.replace(/\&/g, "&amp;");
text = text.replace(/</g, "&lt;");
text = text.replace(/>/g, "&gt;");
@@ -1133,8 +1257,7 @@ Strophe = {
* Returns:
* Unescaped text.
*/
- xmlunescape: function(text)
- {
+ xmlunescape: function(text) {
text = text.replace(/\&amp;/g, "&");
text = text.replace(/&lt;/g, "<");
text = text.replace(/&gt;/g, ">");
@@ -1154,8 +1277,7 @@ Strophe = {
* Returns:
* A new XML DOM text node.
*/
- xmlTextNode: function (text)
- {
+ xmlTextNode: function (text) {
return Strophe.xmlGenerator().createTextNode(text);
},
@@ -1168,8 +1290,7 @@ Strophe = {
* Returns:
* A new XML DOM text node.
*/
- xmlHtmlNode: function (html)
- {
+ xmlHtmlNode: function (html) {
var node;
//ensure text is escaped
if (window.DOMParser) {
@@ -1192,8 +1313,7 @@ Strophe = {
* Returns:
* A String with the concatenated text of all text element children.
*/
- getText: function (elem)
- {
+ getText: function (elem) {
if (!elem) { return null; }
var str = "";
@@ -1223,8 +1343,7 @@ Strophe = {
* Returns:
* A new, copied DOM element tree.
*/
- copyElement: function (elem)
- {
+ copyElement: function (elem) {
var i, el;
if (elem.nodeType == Strophe.ElementType.NORMAL) {
el = Strophe.xmlElement(elem.tagName);
@@ -1240,7 +1359,6 @@ Strophe = {
} else if (elem.nodeType == Strophe.ElementType.TEXT) {
el = Strophe.xmlGenerator().createTextNode(elem.nodeValue);
}
-
return el;
},
@@ -1257,8 +1375,7 @@ Strophe = {
* Returns:
* A new, copied DOM element tree.
*/
- createHtml: function (elem)
- {
+ createHtml: function (elem) {
var i, el, j, tag, attribute, value, css, cssAttrs, attr, cssName, cssValue;
if (elem.nodeType == Strophe.ElementType.NORMAL) {
tag = elem.nodeName.toLowerCase(); // XHTML tags must be lower case.
@@ -1317,7 +1434,6 @@ Strophe = {
} else if (elem.nodeType == Strophe.ElementType.TEXT) {
el = Strophe.xmlTextNode(elem.nodeValue);
}
-
return el;
},
@@ -1330,8 +1446,7 @@ Strophe = {
* Returns:
* An escaped node (or local part).
*/
- escapeNode: function (node)
- {
+ escapeNode: function (node) {
if (typeof node !== "string") { return node; }
return node.replace(/^\s+|\s+$/g, '')
.replace(/\\/g, "\\5c")
@@ -1355,8 +1470,7 @@ Strophe = {
* Returns:
* An unescaped node (or local part).
*/
- unescapeNode: function (node)
- {
+ unescapeNode: function (node) {
if (typeof node !== "string") { return node; }
return node.replace(/\\20/g, " ")
.replace(/\\22/g, '"')
@@ -1379,8 +1493,7 @@ Strophe = {
* Returns:
* A String containing the node.
*/
- getNodeFromJid: function (jid)
- {
+ getNodeFromJid: function (jid) {
if (jid.indexOf("@") < 0) { return null; }
return jid.split("@")[0];
},
@@ -1394,8 +1507,7 @@ Strophe = {
* Returns:
* A String containing the domain.
*/
- getDomainFromJid: function (jid)
- {
+ getDomainFromJid: function (jid) {
var bare = Strophe.getBareJidFromJid(jid);
if (bare.indexOf("@") < 0) {
return bare;
@@ -1415,8 +1527,7 @@ Strophe = {
* Returns:
* A String containing the resource.
*/
- getResourceFromJid: function (jid)
- {
+ getResourceFromJid: function (jid) {
var s = jid.split("/");
if (s.length < 2) { return null; }
s.splice(0, 1);
@@ -1432,11 +1543,29 @@ Strophe = {
* Returns:
* A String containing the bare JID.
*/
- getBareJidFromJid: function (jid)
- {
+ getBareJidFromJid: function (jid) {
return jid ? jid.split("/")[0] : null;
},
+ /** PrivateFunction: _handleError
+ * _Private_ function that properly logs an error to the console
+ */
+ _handleError: function (e) {
+ if (typeof e.stack !== "undefined") {
+ Strophe.fatal(e.stack);
+ }
+ if (e.sourceURL) {
+ Strophe.fatal("error: " + this.handler + " " + e.sourceURL + ":" +
+ e.line + " - " + e.name + ": " + e.message);
+ } else if (e.fileName) {
+ Strophe.fatal("error: " + this.handler + " " +
+ e.fileName + ":" + e.lineNumber + " - " +
+ e.name + ": " + e.message);
+ } else {
+ Strophe.fatal("error: " + e.message);
+ }
+ },
+
/** Function: log
* User overrideable logging function.
*
@@ -1467,8 +1596,7 @@ Strophe = {
* (String) msg - The log message.
*/
/* jshint ignore:start */
- log: function (level, msg)
- {
+ log: function (level, msg) {
return;
},
/* jshint ignore:end */
@@ -1479,8 +1607,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- debug: function(msg)
- {
+ debug: function(msg) {
this.log(this.LogLevel.DEBUG, msg);
},
@@ -1490,8 +1617,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- info: function (msg)
- {
+ info: function (msg) {
this.log(this.LogLevel.INFO, msg);
},
@@ -1501,8 +1627,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- warn: function (msg)
- {
+ warn: function (msg) {
this.log(this.LogLevel.WARN, msg);
},
@@ -1512,8 +1637,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- error: function (msg)
- {
+ error: function (msg) {
this.log(this.LogLevel.ERROR, msg);
},
@@ -1523,8 +1647,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- fatal: function (msg)
- {
+ fatal: function (msg) {
this.log(this.LogLevel.FATAL, msg);
},
@@ -1537,8 +1660,7 @@ Strophe = {
* Returns:
* The serialized element tree as a String.
*/
- serialize: function (elem)
- {
+ serialize: function (elem) {
var result;
if (!elem) { return null; }
@@ -1556,14 +1678,10 @@ Strophe = {
result = "<" + nodeName;
for (i = 0; i < elem.attributes.length; i++) {
- if(elem.attributes[i].nodeName != "_realname") {
- result += " " + elem.attributes[i].nodeName +
- "='" + elem.attributes[i].value
- .replace(/&/g, "&amp;")
- .replace(/\'/g, "&apos;")
- .replace(/>/g, "&gt;")
- .replace(/</g, "&lt;") + "'";
- }
+ if(elem.attributes[i].nodeName != "_realname") {
+ result += " " + elem.attributes[i].nodeName +
+ "='" + Strophe.xmlescape(elem.attributes[i].value) + "'";
+ }
}
if (elem.childNodes.length > 0) {
@@ -1611,8 +1729,7 @@ Strophe = {
* (String) name - The name of the extension.
* (Object) ptype - The plugin's prototype.
*/
- addConnectionPlugin: function (name, ptype)
- {
+ addConnectionPlugin: function (name, ptype) {
Strophe._connectionPlugins[name] = ptype;
}
};
@@ -1628,6 +1745,7 @@ Strophe = {
* > .c('query', {xmlns: 'strophe:example'})
* > .c('example')
* > .toString()
+ *
* The above generates this XML fragment
* > <iq to='you' from='me' type='get' id='1'>
* > <query xmlns='strophe:example'>
@@ -1658,8 +1776,7 @@ Strophe = {
* Returns:
* A new Strophe.Builder.
*/
-Strophe.Builder = function (name, attrs)
-{
+Strophe.Builder = function (name, attrs) {
// Set correct namespace for jabber:client elements
if (name == "presence" || name == "message" || name == "iq") {
if (attrs && !attrs.xmlns) {
@@ -1686,8 +1803,7 @@ Strophe.Builder.prototype = {
* Returns:
* The DOM tree as a element object.
*/
- tree: function ()
- {
+ tree: function () {
return this.nodeTree;
},
@@ -1701,8 +1817,7 @@ Strophe.Builder.prototype = {
* Returns:
* The serialized DOM tree in a String.
*/
- toString: function ()
- {
+ toString: function () {
return Strophe.serialize(this.nodeTree);
},
@@ -1716,12 +1831,26 @@ Strophe.Builder.prototype = {
* Returns:
* The Stophe.Builder object.
*/
- up: function ()
- {
+ up: function () {
this.node = this.node.parentNode;
return this;
},
+ /** Function: root
+ * Make the root element the new current element.
+ *
+ * When at a deeply nested element in the tree, this function can be used
+ * to jump back to the root of the tree, instead of having to repeatedly
+ * call up().
+ *
+ * Returns:
+ * The Stophe.Builder object.
+ */
+ root: function () {
+ this.node = this.nodeTree;
+ return this;
+ },
+
/** Function: attrs
* Add or modify attributes of the current element.
*
@@ -1734,8 +1863,7 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- attrs: function (moreattrs)
- {
+ attrs: function (moreattrs) {
for (var k in moreattrs) {
if (moreattrs.hasOwnProperty(k)) {
if (moreattrs[k] === undefined) {
@@ -1764,11 +1892,10 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- c: function (name, attrs, text)
- {
+ c: function (name, attrs, text) {
var child = Strophe.xmlElement(name, attrs, text);
this.node.appendChild(child);
- if (typeof text !== "string") {
+ if (typeof text !== "string" && typeof text !=="number") {
this.node = child;
}
return this;
@@ -1788,14 +1915,12 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- cnode: function (elem)
- {
+ cnode: function (elem) {
var impNode;
var xmlGen = Strophe.xmlGenerator();
try {
impNode = (xmlGen.importNode !== undefined);
- }
- catch (e) {
+ } catch (e) {
impNode = false;
}
var newElem = impNode ?
@@ -1818,8 +1943,7 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- t: function (text)
- {
+ t: function (text) {
var child = Strophe.xmlTextNode(text);
this.node.appendChild(child);
return this;
@@ -1836,8 +1960,7 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- h: function (html)
- {
+ h: function (html) {
var fragment = document.createElement('body');
// force the browser to try and fix any invalid HTML tags
@@ -1882,74 +2005,96 @@ Strophe.Builder.prototype = {
* Returns:
* A new Strophe.Handler object.
*/
-Strophe.Handler = function (handler, ns, name, type, id, from, options)
-{
+Strophe.Handler = function (handler, ns, name, type, id, from, options) {
this.handler = handler;
this.ns = ns;
this.name = name;
this.type = type;
this.id = id;
- this.options = options || {matchBare: false};
-
- // default matchBare to false if undefined
- if (!this.options.matchBare) {
- this.options.matchBare = false;
+ this.options = options || {'matchBareFromJid': false, 'ignoreNamespaceFragment': false};
+ // BBB: Maintain backward compatibility with old `matchBare` option
+ if (this.options.matchBare) {
+ Strophe.warn('The "matchBare" option is deprecated, use "matchBareFromJid" instead.');
+ this.options.matchBareFromJid = this.options.matchBare;
+ delete this.options.matchBare;
}
- if (this.options.matchBare) {
+ if (this.options.matchBareFromJid) {
this.from = from ? Strophe.getBareJidFromJid(from) : null;
} else {
this.from = from;
}
-
// whether the handler is a user handler or a system handler
this.user = true;
};
Strophe.Handler.prototype = {
- /** PrivateFunction: isMatch
- * Tests if a stanza matches the Strophe.Handler.
+ /** PrivateFunction: getNamespace
+ * Returns the XML namespace attribute on an element.
+ * If `ignoreNamespaceFragment` was passed in for this handler, then the
+ * URL fragment will be stripped.
*
* Parameters:
- * (XMLElement) elem - The XML element to test.
+ * (XMLElement) elem - The XML element with the namespace.
*
* Returns:
- * true if the stanza matches and false otherwise.
+ * The namespace, with optionally the fragment stripped.
*/
- isMatch: function (elem)
- {
- var nsMatch;
- var from = null;
-
- if (this.options.matchBare) {
- from = Strophe.getBareJidFromJid(elem.getAttribute('from'));
- } else {
- from = elem.getAttribute('from');
+ getNamespace: function (elem) {
+ var elNamespace = elem.getAttribute("xmlns");
+ if (elNamespace && this.options.ignoreNamespaceFragment) {
+ elNamespace = elNamespace.split('#')[0];
}
+ return elNamespace;
+ },
- nsMatch = false;
+ /** PrivateFunction: namespaceMatch
+ * Tests if a stanza matches the namespace set for this Strophe.Handler.
+ *
+ * Parameters:
+ * (XMLElement) elem - The XML element to test.
+ *
+ * Returns:
+ * true if the stanza matches and false otherwise.
+ */
+ namespaceMatch: function (elem) {
+ var nsMatch = false;
if (!this.ns) {
- nsMatch = true;
+ return true;
} else {
var that = this;
Strophe.forEachChild(elem, null, function (elem) {
- if (elem.getAttribute("xmlns") == that.ns) {
+ if (that.getNamespace(elem) === that.ns) {
nsMatch = true;
}
});
-
- nsMatch = nsMatch || elem.getAttribute("xmlns") == this.ns;
+ nsMatch = nsMatch || this.getNamespace(elem) === this.ns;
}
+ return nsMatch;
+ },
+ /** PrivateFunction: isMatch
+ * Tests if a stanza matches the Strophe.Handler.
+ *
+ * Parameters:
+ * (XMLElement) elem - The XML element to test.
+ *
+ * Returns:
+ * true if the stanza matches and false otherwise.
+ */
+ isMatch: function (elem) {
+ var from = elem.getAttribute('from');
+ if (this.options.matchBareFromJid) {
+ from = Strophe.getBareJidFromJid(from);
+ }
var elem_type = elem.getAttribute("type");
- if (nsMatch &&
+ if (this.namespaceMatch(elem) &&
(!this.name || Strophe.isTagEqual(elem, this.name)) &&
(!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) != -1 : elem_type == this.type)) &&
(!this.id || elem.getAttribute("id") == this.id) &&
(!this.from || from == this.from)) {
return true;
}
-
return false;
},
@@ -1963,31 +2108,14 @@ Strophe.Handler.prototype = {
* Returns:
* A boolean indicating if the handler should remain active.
*/
- run: function (elem)
- {
+ run: function (elem) {
var result = null;
try {
result = this.handler(elem);
} catch (e) {
- if (e.sourceURL) {
- Strophe.fatal("error: " + this.handler +
- " " + e.sourceURL + ":" +
- e.line + " - " + e.name + ": " + e.message);
- } else if (e.fileName) {
- if (typeof(console) != "undefined") {
- console.trace();
- console.error(this.handler, " - error - ", e, e.message);
- }
- Strophe.fatal("error: " + this.handler + " " +
- e.fileName + ":" + e.lineNumber + " - " +
- e.name + ": " + e.message);
- } else {
- Strophe.fatal("error: " + e.message + "\n" + e.stack);
- }
-
+ Strophe._handleError(e);
throw e;
}
-
return result;
},
@@ -1997,8 +2125,7 @@ Strophe.Handler.prototype = {
* Returns:
* A String.
*/
- toString: function ()
- {
+ toString: function () {
return "{Handler: " + this.handler + "(" + this.name + "," +
this.id + "," + this.ns + ")}";
}
@@ -2029,11 +2156,9 @@ Strophe.Handler.prototype = {
* Returns:
* A new Strophe.TimedHandler object.
*/
-Strophe.TimedHandler = function (period, handler)
-{
+Strophe.TimedHandler = function (period, handler) {
this.period = period;
this.handler = handler;
-
this.lastCalled = new Date().getTime();
this.user = true;
};
@@ -2046,8 +2171,7 @@ Strophe.TimedHandler.prototype = {
* true if the Strophe.TimedHandler should be called again, and false
* otherwise.
*/
- run: function ()
- {
+ run: function () {
this.lastCalled = new Date().getTime();
return this.handler();
},
@@ -2055,8 +2179,7 @@ Strophe.TimedHandler.prototype = {
/** PrivateFunction: reset
* Reset the last called time for the Strophe.TimedHandler.
*/
- reset: function ()
- {
+ reset: function () {
this.lastCalled = new Date().getTime();
},
@@ -2066,8 +2189,7 @@ Strophe.TimedHandler.prototype = {
* Returns:
* The string representation.
*/
- toString: function ()
- {
+ toString: function () {
return "{TimedHandler: " + this.handler + "(" + this.period +")}";
}
};
@@ -2107,7 +2229,53 @@ Strophe.TimedHandler.prototype = {
*
* > var conn = new Strophe.Connection("/http-bind/");
*
+ * Options common to both Websocket and BOSH:
+ * ------------------------------------------
+ *
+ * cookies
+ * ~~~~~~~
+ *
+ * The "cookies" option allows you to pass in cookies to be added to the
+ * document. These cookies will then be included in the BOSH XMLHttpRequest
+ * or in the websocket connection.
+ *
+ * The passed in value must be a map of cookie names and string values:
+ *
+ * > { "myCookie": {
+ * > "value": "1234",
+ * > "domain": ".example.org",
+ * > "path": "/",
+ * > "expires": expirationDate
+ * > }
+ * > }
+ *
+ * Note that cookies can't be set in this way for other domains (i.e. cross-domain).
+ * Those cookies need to be set under those domains, for example they can be
+ * set server-side by making a XHR call to that domain to ask it to set any
+ * necessary cookies.
+ *
+ * mechanisms
+ * ~~~~~~~~~~
+ *
+ * The "mechanisms" option allows you to specify the SASL mechanisms that this
+ * instance of Strophe.Connection (and therefore your XMPP client) will
+ * support.
+ *
+ * The value must be an array of objects with Strophe.SASLMechanism
+ * prototypes.
+ *
+ * If nothing is specified, then the following mechanisms (and their
+ * priorities) are registered:
+ *
+ * EXTERNAL - 60
+ * OAUTHBEARER - 50
+ * SCRAM-SHA1 - 40
+ * DIGEST-MD5 - 30
+ * PLAIN - 20
+ * ANONYMOUS - 10
+ *
* WebSocket options:
+ * ------------------
*
* If you want to connect to the current host with a WebSocket connection you
* can tell Strophe to use WebSockets through a "protocol" attribute in the
@@ -2125,6 +2293,7 @@ Strophe.TimedHandler.prototype = {
* variants if the current connection to the site is also secure (https).
*
* BOSH options:
+ * -------------
*
* By adding "sync" to the options, you can control if requests will
* be made synchronously or not. The default behaviour is asynchronous.
@@ -2144,6 +2313,23 @@ Strophe.TimedHandler.prototype = {
* "restore" is called it will check whether there are cached tokens with
* which it can resume an existing session.
*
+ * The "withCredentials" option should receive a Boolean value and is used to
+ * indicate wether cookies should be included in ajax requests (by default
+ * they're not).
+ * Set this value to true if you are connecting to a BOSH service
+ * and for some reason need to send cookies to it.
+ * In order for this to work cross-domain, the server must also enable
+ * credentials by setting the Access-Control-Allow-Credentials response header
+ * to "true". For most usecases however this setting should be false (which
+ * is the default).
+ * Additionally, when using Access-Control-Allow-Credentials, the
+ * Access-Control-Allow-Origin header can't be set to the wildcard "*", but
+ * instead must be restricted to actual domains.
+ *
+ * The "contentType" option can be set to change the default Content-Type
+ * of "text/xml; charset=utf-8", which can be useful to reduce the amount of
+ * CORS preflight requests that are sent to the server.
+ *
* Parameters:
* (String) service - The BOSH or WebSocket service URL.
* (Object) options - A hash of configuration options
@@ -2151,11 +2337,9 @@ Strophe.TimedHandler.prototype = {
* Returns:
* A new Strophe.Connection object.
*/
-Strophe.Connection = function (service, options)
-{
+Strophe.Connection = function (service, options) {
// The service URL
this.service = service;
-
// Configuration options
this.options = options || {};
var proto = this.options.protocol || "";
@@ -2187,8 +2371,11 @@ Strophe.Connection = function (service, options)
this.removeHandlers = [];
this.addTimeds = [];
this.addHandlers = [];
+ this.protocolErrorHandlers = {
+ 'HTTP': {},
+ 'websocket': {}
+ };
- this._authentication = {};
this._idleTimeout = null;
this._disconnectTimeout = null;
@@ -2209,8 +2396,14 @@ Strophe.Connection = function (service, options)
// Max retries before disconnecting
this.maxRetries = 5;
- // setup onIdle callback every 1/10th of a second
- this._idleTimeout = setTimeout(this._onIdle.bind(this), 100);
+ // Call onIdle callback every 1/10th of a second
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this), 100);
+
+ utils.addCookies(this.options.cookies);
+ this.registerSASLMechanisms(this.options.mechanisms);
// initialize plugins
for (var k in Strophe._connectionPlugins) {
@@ -2232,8 +2425,7 @@ Strophe.Connection.prototype = {
* This function should be called after a connection is disconnected
* before that connection is reused.
*/
- reset: function ()
- {
+ reset: function () {
this._proto._reset();
// SASL
@@ -2247,7 +2439,6 @@ Strophe.Connection.prototype = {
this.removeHandlers = [];
this.addTimeds = [];
this.addHandlers = [];
- this._authentication = {};
this.authenticated = false;
this.connected = false;
@@ -2268,8 +2459,7 @@ Strophe.Connection.prototype = {
* This causes Strophe to send the data in a single request, saving
* many request trips.
*/
- pause: function ()
- {
+ pause: function () {
this.paused = true;
},
@@ -2278,8 +2468,7 @@ Strophe.Connection.prototype = {
*
* This resumes after pause() has been called.
*/
- resume: function ()
- {
+ resume: function () {
this.paused = false;
},
@@ -2318,6 +2507,33 @@ Strophe.Connection.prototype = {
}
},
+ /** Function: addProtocolErrorHandler
+ * Register a handler function for when a protocol (websocker or HTTP)
+ * error occurs.
+ *
+ * NOTE: Currently only HTTP errors for BOSH requests are handled.
+ * Patches that handle websocket errors would be very welcome.
+ *
+ * Parameters:
+ * (String) protocol - 'HTTP' or 'websocket'
+ * (Integer) status_code - Error status code (e.g 500, 400 or 404)
+ * (Function) callback - Function that will fire on Http error
+ *
+ * Example:
+ * function onError(err_code){
+ * //do stuff
+ * }
+ *
+ * var conn = Strophe.connect('http://example.com/http-bind');
+ * conn.addProtocolErrorHandler('HTTP', 500, onError);
+ * // Triggers HTTP 500 error and onError handler will be called
+ * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect);
+ */
+ addProtocolErrorHandler: function(protocol, status_code, callback){
+ this.protocolErrorHandlers[protocol][status_code] = callback;
+ },
+
+
/** Function: connect
* Starts the connection process.
*
@@ -2348,26 +2564,37 @@ Strophe.Connection.prototype = {
* (String) route - The optional route value.
* (String) authcid - The optional alternative authentication identity
* (username) if intending to impersonate another user.
+ * When using the SASL-EXTERNAL authentication mechanism, for example
+ * with client certificates, then the authcid value is used to
+ * determine whether an authorization JID (authzid) should be sent to
+ * the server. The authzid should not be sent to the server if the
+ * authzid and authcid are the same. So to prevent it from being sent
+ * (for example when the JID is already contained in the client
+ * certificate), set authcid to that same JID. See XEP-178 for more
+ * details.
*/
- connect: function (jid, pass, callback, wait, hold, route, authcid)
- {
+ connect: function (jid, pass, callback, wait, hold, route, authcid) {
this.jid = jid;
/** Variable: authzid
* Authorization identity.
*/
this.authzid = Strophe.getBareJidFromJid(this.jid);
+
/** Variable: authcid
* Authentication identity (User name).
*/
this.authcid = authcid || Strophe.getNodeFromJid(this.jid);
+
/** Variable: pass
* Authentication identity (User password).
*/
this.pass = pass;
+
/** Variable: servtype
* Digest MD5 compatibility.
*/
this.servtype = "xmpp";
+
this.connect_callback = callback;
this.disconnecting = false;
this.connected = false;
@@ -2406,8 +2633,7 @@ Strophe.Connection.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- attach: function (jid, sid, rid, callback, wait, hold, wind)
- {
+ attach: function (jid, sid, rid, callback, wait, hold, wind) {
if (this._proto instanceof Strophe.Bosh) {
this._proto._attach(jid, sid, rid, callback, wait, hold, wind);
} else {
@@ -2445,8 +2671,7 @@ Strophe.Connection.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- restore: function (jid, callback, wait, hold, wind)
- {
+ restore: function (jid, callback, wait, hold, wind) {
if (this._sessionCachingSupported()) {
this._proto._restore(jid, callback, wait, hold, wind);
} else {
@@ -2461,8 +2686,7 @@ Strophe.Connection.prototype = {
* Checks whether sessionStorage and JSON are supported and whether we're
* using BOSH.
*/
- _sessionCachingSupported: function ()
- {
+ _sessionCachingSupported: function () {
if (this._proto instanceof Strophe.Bosh) {
if (!JSON) { return false; }
try {
@@ -2495,8 +2719,7 @@ Strophe.Connection.prototype = {
* (XMLElement) elem - The XML data received by the connection.
*/
/* jshint unused:false */
- xmlInput: function (elem)
- {
+ xmlInput: function (elem) {
return;
},
/* jshint unused:true */
@@ -2520,8 +2743,7 @@ Strophe.Connection.prototype = {
* (XMLElement) elem - The XMLdata sent by the connection.
*/
/* jshint unused:false */
- xmlOutput: function (elem)
- {
+ xmlOutput: function (elem) {
return;
},
/* jshint unused:true */
@@ -2539,8 +2761,7 @@ Strophe.Connection.prototype = {
* (String) data - The data received by the connection.
*/
/* jshint unused:false */
- rawInput: function (data)
- {
+ rawInput: function (data) {
return;
},
/* jshint unused:true */
@@ -2558,8 +2779,7 @@ Strophe.Connection.prototype = {
* (String) data - The data sent by the connection.
*/
/* jshint unused:false */
- rawOutput: function (data)
- {
+ rawOutput: function (data) {
return;
},
/* jshint unused:true */
@@ -2576,8 +2796,7 @@ Strophe.Connection.prototype = {
* (Number) rid - The next valid rid
*/
/* jshint unused:false */
- nextValidRid: function (rid)
- {
+ nextValidRid: function (rid) {
return;
},
/* jshint unused:true */
@@ -2594,8 +2813,7 @@ Strophe.Connection.prototype = {
* [XMLElement] |
* Strophe.Builder) elem - The stanza to send.
*/
- send: function (elem)
- {
+ send: function (elem) {
if (elem === null) { return ; }
if (typeof(elem.sort) === "function") {
for (var i = 0; i < elem.length; i++) {
@@ -2618,8 +2836,7 @@ Strophe.Connection.prototype = {
* several send()s are called in succession. flush() can be used to
* immediately send all pending data.
*/
- flush: function ()
- {
+ flush: function () {
// cancel the pending idle period and run the idle function
// immediately
clearTimeout(this._idleTimeout);
@@ -2648,40 +2865,16 @@ Strophe.Connection.prototype = {
elem = elem.tree();
}
var id = elem.getAttribute('id');
-
- // inject id if not found
- if (!id) {
+ if (!id) { // inject id if not found
id = this.getUniqueId("sendIQ");
elem.setAttribute("id", id);
}
- var expectedFrom = elem.getAttribute("to");
- var fulljid = this.jid;
-
var handler = this.addHandler(function (stanza) {
// remove timeout handler if there is one
if (timeoutHandler) {
that.deleteTimedHandler(timeoutHandler);
}
-
- var acceptable = false;
- var from = stanza.getAttribute("from");
- if (from === expectedFrom ||
- (expectedFrom === null &&
- (from === Strophe.getBareJidFromJid(fulljid) ||
- from === Strophe.getDomainFromJid(fulljid) ||
- from === fulljid))) {
- acceptable = true;
- }
-
- if (!acceptable) {
- throw {
- name: "StropheError",
- message: "Got answer to IQ from wrong jid:" + from +
- "\nExpected jid: " + expectedFrom
- };
- }
-
var iqtype = stanza.getAttribute('type');
if (iqtype == 'result') {
if (callback) {
@@ -2699,7 +2892,7 @@ Strophe.Connection.prototype = {
}
}, null, 'iq', ['error', 'result'], id);
- // if timeout specified, setup timeout handler.
+ // if timeout specified, set up a timeout handler.
if (timeout) {
timeoutHandler = this.addTimedHandler(timeout, function () {
// get rid of normal handler
@@ -2728,20 +2921,19 @@ Strophe.Connection.prototype = {
message: "Cannot queue non-DOMElement."
};
}
-
this._data.push(element);
},
/** PrivateFunction: _sendRestart
* Send an xmpp:restart stanza.
*/
- _sendRestart: function ()
- {
+ _sendRestart: function () {
this._data.push("restart");
-
this._proto._sendRestart();
-
- this._idleTimeout = setTimeout(this._onIdle.bind(this), 100);
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this), 100);
},
/** Function: addTimedHandler
@@ -2766,8 +2958,7 @@ Strophe.Connection.prototype = {
* Returns:
* A reference to the handler that can be used to remove it.
*/
- addTimedHandler: function (period, handler)
- {
+ addTimedHandler: function (period, handler) {
var thand = new Strophe.TimedHandler(period, handler);
this.addTimeds.push(thand);
return thand;
@@ -2783,8 +2974,7 @@ Strophe.Connection.prototype = {
* Parameters:
* (Strophe.TimedHandler) handRef - The handler reference.
*/
- deleteTimedHandler: function (handRef)
- {
+ deleteTimedHandler: function (handRef) {
// this must be done in the Idle loop so that we don't change
// the handlers during iteration
this.removeTimeds.push(handRef);
@@ -2806,13 +2996,39 @@ Strophe.Connection.prototype = {
* and also any of its immediate children. This is primarily to make
* matching /iq/query elements easy.
*
- * The options argument contains handler matching flags that affect how
- * matches are determined. Currently the only flag is matchBare (a
- * boolean). When matchBare is true, the from parameter and the from
- * attribute on the stanza will be matched as bare JIDs instead of
- * full JIDs. To use this, pass {matchBare: true} as the value of
- * options. The default value for matchBare is false.
+ * Options
+ * ~~~~~~~
+ * With the options argument, you can specify boolean flags that affect how
+ * matches are being done.
+ *
+ * Currently two flags exist:
+ *
+ * - matchBareFromJid:
+ * When set to true, the from parameter and the
+ * from attribute on the stanza will be matched as bare JIDs instead
+ * of full JIDs. To use this, pass {matchBareFromJid: true} as the
+ * value of options. The default value for matchBareFromJid is false.
+ *
+ * - ignoreNamespaceFragment:
+ * When set to true, a fragment specified on the stanza's namespace
+ * URL will be ignored when it's matched with the one configured for
+ * the handler.
+ *
+ * This means that if you register like this:
+ * > connection.addHandler(
+ * > handler,
+ * > 'http://jabber.org/protocol/muc',
+ * > null, null, null, null,
+ * > {'ignoreNamespaceFragment': true}
+ * > );
+ *
+ * Then a stanza with XML namespace of
+ * 'http://jabber.org/protocol/muc#user' will also be matched. If
+ * 'ignoreNamespaceFragment' is false, then only stanzas with
+ * 'http://jabber.org/protocol/muc' will be matched.
*
+ * Deleting the handler
+ * ~~~~~~~~~~~~~~~~~~~~
* The return value should be saved if you wish to remove the handler
* with deleteHandler().
*
@@ -2820,7 +3036,7 @@ Strophe.Connection.prototype = {
* (Function) handler - The user callback.
* (String) ns - The namespace to match.
* (String) name - The stanza name to match.
- * (String) type - The stanza type attribute to match.
+ * (String|Array) type - The stanza type (or types if an array) to match.
* (String) id - The stanza id attribute to match.
* (String) from - The stanza from attribute to match.
* (String) options - The handler options
@@ -2828,8 +3044,7 @@ Strophe.Connection.prototype = {
* Returns:
* A reference to the handler that can be used to remove it.
*/
- addHandler: function (handler, ns, name, type, id, from, options)
- {
+ addHandler: function (handler, ns, name, type, id, from, options) {
var hand = new Strophe.Handler(handler, ns, name, type, id, from, options);
this.addHandlers.push(hand);
return hand;
@@ -2845,8 +3060,7 @@ Strophe.Connection.prototype = {
* Parameters:
* (Strophe.Handler) handRef - The handler reference.
*/
- deleteHandler: function (handRef)
- {
+ deleteHandler: function (handRef) {
// this must be done in the Idle loop so that we don't change
// the handlers during iteration
this.removeHandlers.push(handRef);
@@ -2858,6 +3072,40 @@ Strophe.Connection.prototype = {
}
},
+ /** Function: registerSASLMechanisms
+ *
+ * Register the SASL mechanisms which will be supported by this instance of
+ * Strophe.Connection (i.e. which this XMPP client will support).
+ *
+ * Parameters:
+ * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes
+ *
+ */
+ registerSASLMechanisms: function (mechanisms) {
+ this.mechanisms = {};
+ mechanisms = mechanisms || [
+ Strophe.SASLAnonymous,
+ Strophe.SASLExternal,
+ Strophe.SASLMD5,
+ Strophe.SASLOAuthBearer,
+ Strophe.SASLPlain,
+ Strophe.SASLSHA1
+ ];
+ mechanisms.forEach(this.registerSASLMechanism.bind(this));
+ },
+
+ /** Function: registerSASLMechanism
+ *
+ * Register a single SASL mechanism, to be supported by this client.
+ *
+ * Parameters:
+ * (Object) mechanism - Object with a Strophe.SASLMechanism prototype
+ *
+ */
+ registerSASLMechanism: function (mechanism) {
+ this.mechanisms[mechanism.prototype.name] = mechanism;
+ },
+
/** Function: disconnect
* Start the graceful disconnection process.
*
@@ -2874,8 +3122,7 @@ Strophe.Connection.prototype = {
* Parameters:
* (String) reason - The reason the disconnect is occuring.
*/
- disconnect: function (reason)
- {
+ disconnect: function (reason) {
this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason);
Strophe.info("Disconnect was called because: " + reason);
@@ -2907,8 +3154,7 @@ Strophe.Connection.prototype = {
* in Strophe.Status
* (String) condition - the error condition or null
*/
- _changeConnectStatus: function (status, condition)
- {
+ _changeConnectStatus: function (status, condition) {
// notify all plugins listening for status changes
for (var k in Strophe._connectionPlugins) {
if (Strophe._connectionPlugins.hasOwnProperty(k)) {
@@ -2929,8 +3175,9 @@ Strophe.Connection.prototype = {
try {
this.connect_callback(status, condition);
} catch (e) {
- Strophe.error("User connection callback caused an " +
- "exception: " + e);
+ Strophe._handleError(e);
+ Strophe.error(
+ "User connection callback caused an "+"exception: "+e);
}
}
},
@@ -2941,8 +3188,7 @@ Strophe.Connection.prototype = {
* This is the last piece of the disconnection logic. This resets the
* connection and alerts the user's connection callback.
*/
- _doDisconnect: function (condition)
- {
+ _doDisconnect: function (condition) {
if (typeof this._idleTimeout == "number") {
clearTimeout(this._idleTimeout);
}
@@ -2985,8 +3231,7 @@ Strophe.Connection.prototype = {
* (Strophe.Request) req - The request that has data ready.
* (string) req - The stanza a raw string (optiona).
*/
- _dataRecv: function (req, raw)
- {
+ _dataRecv: function (req, raw) {
Strophe.info("_dataRecv called");
var elem = this._proto._reqToData(req);
if (elem === null) { return; }
@@ -3072,7 +3317,7 @@ Strophe.Connection.prototype = {
}
} catch(e) {
// if the handler throws an exception, we consider it as false
- Strophe.warn('Removing Strophe handlers due to uncaught exception: ' + e.message);
+ Strophe.warn('Removing Strophe handlers due to uncaught exception: '+e.message);
}
}
});
@@ -3080,7 +3325,7 @@ Strophe.Connection.prototype = {
/** Attribute: mechanisms
- * SASL Mechanisms available for Conncection.
+ * SASL Mechanisms available for Connection.
*/
mechanisms: {},
@@ -3100,13 +3345,18 @@ Strophe.Connection.prototype = {
* Useful for plugins with their own xmpp connect callback (when their)
* want to do something special).
*/
- _connect_cb: function (req, _callback, raw)
- {
+ _connect_cb: function (req, _callback, raw) {
Strophe.info("_connect_cb was called");
-
this.connected = true;
- var bodyWrap = this._proto._reqToData(req);
+ var bodyWrap;
+ try {
+ bodyWrap = this._proto._reqToData(req);
+ } catch (e) {
+ if (e != "badformat") { throw e; }
+ this._changeConnectStatus(Strophe.Status.CONNFAIL, 'bad-format');
+ this._doDisconnect('bad-format');
+ }
if (!bodyWrap) { return; }
if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {
@@ -3129,145 +3379,180 @@ Strophe.Connection.prototype = {
return;
}
- this._authentication.sasl_scram_sha1 = false;
- this._authentication.sasl_plain = false;
- this._authentication.sasl_digest_md5 = false;
- this._authentication.sasl_anonymous = false;
-
- this._authentication.legacy_auth = false;
-
// Check for the stream:features tag
var hasFeatures;
if (bodyWrap.getElementsByTagNameNS) {
hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, "features").length > 0;
} else {
- hasFeatures = bodyWrap.getElementsByTagName("stream:features").length > 0 || bodyWrap.getElementsByTagName("features").length > 0;
+ hasFeatures = bodyWrap.getElementsByTagName("stream:features").length > 0 ||
+ bodyWrap.getElementsByTagName("features").length > 0;
}
- var mechanisms = bodyWrap.getElementsByTagName("mechanism");
- var matched = [];
- var i, mech, found_authentication = false;
if (!hasFeatures) {
this._proto._no_auth_received(_callback);
return;
}
+
+ var matched = [], i, mech;
+ var mechanisms = bodyWrap.getElementsByTagName("mechanism");
if (mechanisms.length > 0) {
for (i = 0; i < mechanisms.length; i++) {
mech = Strophe.getText(mechanisms[i]);
if (this.mechanisms[mech]) matched.push(this.mechanisms[mech]);
}
}
- this._authentication.legacy_auth =
- bodyWrap.getElementsByTagName("auth").length > 0;
- found_authentication = this._authentication.legacy_auth ||
- matched.length > 0;
- if (!found_authentication) {
- this._proto._no_auth_received(_callback);
- return;
+ if (matched.length === 0) {
+ if (bodyWrap.getElementsByTagName("auth").length === 0) {
+ // There are no matching SASL mechanisms and also no legacy
+ // auth available.
+ this._proto._no_auth_received(_callback);
+ return;
+ }
}
- if (this.do_authentication !== false)
+ if (this.do_authentication !== false) {
this.authenticate(matched);
+ }
},
- /** Function: authenticate
- * Set up authentication
+ /** Function: sortMechanismsByPriority
*
- * Contiunues the initial connection request by setting up authentication
- * handlers and start the authentication process.
+ * Sorts an array of objects with prototype SASLMechanism according to
+ * their priorities.
*
- * SASL authentication will be attempted if available, otherwise
- * the code will fall back to legacy authentication.
+ * Parameters:
+ * (Array) mechanisms - Array of SASL mechanisms.
*
*/
- authenticate: function (matched)
- {
- var i;
- // Sorting matched mechanisms according to priority.
- for (i = 0; i < matched.length - 1; ++i) {
- var higher = i;
- for (var j = i + 1; j < matched.length; ++j) {
- if (matched[j].prototype.priority > matched[higher].prototype.priority) {
- higher = j;
- }
- }
- if (higher != i) {
- var swap = matched[i];
- matched[i] = matched[higher];
- matched[higher] = swap;
+ sortMechanismsByPriority: function (mechanisms) {
+ // Sorting mechanisms according to priority.
+ var i, j, higher, swap;
+ for (i = 0; i < mechanisms.length - 1; ++i) {
+ higher = i;
+ for (j = i + 1; j < mechanisms.length; ++j) {
+ if (mechanisms[j].prototype.priority > mechanisms[higher].prototype.priority) {
+ higher = j;
+ }
+ }
+ if (higher != i) {
+ swap = mechanisms[i];
+ mechanisms[i] = mechanisms[higher];
+ mechanisms[higher] = swap;
+ }
}
- }
-
- // run each mechanism
- var mechanism_found = false;
- for (i = 0; i < matched.length; ++i) {
- if (!matched[i].test(this)) continue;
-
- this._sasl_success_handler = this._addSysHandler(
- this._sasl_success_cb.bind(this), null,
- "success", null, null);
- this._sasl_failure_handler = this._addSysHandler(
- this._sasl_failure_cb.bind(this), null,
- "failure", null, null);
- this._sasl_challenge_handler = this._addSysHandler(
- this._sasl_challenge_cb.bind(this), null,
- "challenge", null, null);
-
- this._sasl_mechanism = new matched[i]();
- this._sasl_mechanism.onStart(this);
-
- var request_auth_exchange = $build("auth", {
- xmlns: Strophe.NS.SASL,
- mechanism: this._sasl_mechanism.name
- });
+ return mechanisms;
+ },
- if (this._sasl_mechanism.isClientFirst) {
- var response = this._sasl_mechanism.onChallenge(this, null);
- request_auth_exchange.t(Base64.encode(response));
+ /** PrivateFunction: _attemptSASLAuth
+ *
+ * Iterate through an array of SASL mechanisms and attempt authentication
+ * with the highest priority (enabled) mechanism.
+ *
+ * Parameters:
+ * (Array) mechanisms - Array of SASL mechanisms.
+ *
+ * Returns:
+ * (Boolean) mechanism_found - true or false, depending on whether a
+ * valid SASL mechanism was found with which authentication could be
+ * started.
+ */
+ _attemptSASLAuth: function (mechanisms) {
+ mechanisms = this.sortMechanismsByPriority(mechanisms || []);
+ var i = 0, mechanism_found = false;
+ for (i = 0; i < mechanisms.length; ++i) {
+ if (!mechanisms[i].prototype.test(this)) {
+ continue;
+ }
+ this._sasl_success_handler = this._addSysHandler(
+ this._sasl_success_cb.bind(this), null,
+ "success", null, null);
+ this._sasl_failure_handler = this._addSysHandler(
+ this._sasl_failure_cb.bind(this), null,
+ "failure", null, null);
+ this._sasl_challenge_handler = this._addSysHandler(
+ this._sasl_challenge_cb.bind(this), null,
+ "challenge", null, null);
+
+ this._sasl_mechanism = new mechanisms[i]();
+ this._sasl_mechanism.onStart(this);
+
+ var request_auth_exchange = $build("auth", {
+ xmlns: Strophe.NS.SASL,
+ mechanism: this._sasl_mechanism.name
+ });
+ if (this._sasl_mechanism.isClientFirst) {
+ var response = this._sasl_mechanism.onChallenge(this, null);
+ request_auth_exchange.t(Base64.encode(response));
+ }
+ this.send(request_auth_exchange.tree());
+ mechanism_found = true;
+ break;
}
+ return mechanism_found;
+ },
- this.send(request_auth_exchange.tree());
-
- mechanism_found = true;
- break;
- }
-
- if (!mechanism_found) {
- // if none of the mechanism worked
+ /** PrivateFunction: _attemptLegacyAuth
+ *
+ * Attempt legacy (i.e. non-SASL) authentication.
+ *
+ */
+ _attemptLegacyAuth: function () {
if (Strophe.getNodeFromJid(this.jid) === null) {
// we don't have a node, which is required for non-anonymous
// client connections
- this._changeConnectStatus(Strophe.Status.CONNFAIL,
- 'x-strophe-bad-non-anon-jid');
+ this._changeConnectStatus(
+ Strophe.Status.CONNFAIL,
+ 'x-strophe-bad-non-anon-jid'
+ );
this.disconnect('x-strophe-bad-non-anon-jid');
} else {
- // fall back to legacy authentication
- this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);
- this._addSysHandler(this._auth1_cb.bind(this), null, null,
- null, "_auth_1");
-
- this.send($iq({
- type: "get",
- to: this.domain,
- id: "_auth_1"
- }).c("query", {
- xmlns: Strophe.NS.AUTH
- }).c("username", {}).t(Strophe.getNodeFromJid(this.jid)).tree());
+ // Fall back to legacy authentication
+ this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);
+ this._addSysHandler(
+ this._auth1_cb.bind(this),
+ null, null, null, "_auth_1"
+ );
+ this.send($iq({
+ 'type': "get",
+ 'to': this.domain,
+ 'id': "_auth_1"
+ }).c("query", {xmlns: Strophe.NS.AUTH})
+ .c("username", {}).t(Strophe.getNodeFromJid(this.jid))
+ .tree());
}
- }
+ },
+ /** Function: authenticate
+ * Set up authentication
+ *
+ * Continues the initial connection request by setting up authentication
+ * handlers and starting the authentication process.
+ *
+ * SASL authentication will be attempted if available, otherwise
+ * the code will fall back to legacy authentication.
+ *
+ * Parameters:
+ * (Array) matched - Array of SASL mechanisms supported.
+ *
+ */
+ authenticate: function (matched) {
+ if (!this._attemptSASLAuth(matched)) {
+ this._attemptLegacyAuth();
+ }
},
+ /** PrivateFunction: _sasl_challenge_cb
+ * _Private_ handler for the SASL challenge
+ *
+ */
_sasl_challenge_cb: function(elem) {
var challenge = Base64.decode(Strophe.getText(elem));
var response = this._sasl_mechanism.onChallenge(this, challenge);
-
var stanza = $build('response', {
- xmlns: Strophe.NS.SASL
+ 'xmlns': Strophe.NS.SASL
});
if (response !== "") {
stanza.t(Base64.encode(response));
}
this.send(stanza.tree());
-
return true;
},
@@ -3286,8 +3571,7 @@ Strophe.Connection.prototype = {
* false to remove the handler.
*/
/* jshint unused:false */
- _auth1_cb: function (elem)
- {
+ _auth1_cb: function (elem) {
// build plaintext auth iq
var iq = $iq({type: "set", id: "_auth_2"})
.c('query', {xmlns: Strophe.NS.AUTH})
@@ -3305,9 +3589,7 @@ Strophe.Connection.prototype = {
this._addSysHandler(this._auth2_cb.bind(this), null,
null, null, "_auth_2");
-
this.send(iq.tree());
-
return false;
},
/* jshint unused:true */
@@ -3321,8 +3603,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_success_cb: function (elem)
- {
+ _sasl_success_cb: function (elem) {
if (this._sasl_data["server-signature"]) {
var serverSignature;
var success = Base64.decode(Strophe.getText(elem));
@@ -3345,11 +3626,11 @@ Strophe.Connection.prototype = {
return this._sasl_failure_cb(null);
}
}
-
Strophe.info("SASL authentication succeeded.");
- if(this._sasl_mechanism)
+ if (this._sasl_mechanism) {
this._sasl_mechanism.onSuccess();
+ }
// remove old handlers
this.deleteHandler(this._sasl_failure_handler);
@@ -3389,13 +3670,10 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_auth1_cb: function (elem)
- {
+ _sasl_auth1_cb: function (elem) {
// save stream:features for future usage
this.features = elem;
-
var i, child;
-
for (i = 0; i < elem.childNodes.length; i++) {
child = elem.childNodes[i];
if (child.nodeName == 'bind') {
@@ -3425,7 +3703,6 @@ Strophe.Connection.prototype = {
.tree());
}
}
-
return false;
},
@@ -3438,8 +3715,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_bind_cb: function (elem)
- {
+ _sasl_bind_cb: function (elem) {
if (elem.getAttribute("type") == "error") {
Strophe.info("SASL binding failed.");
var conflict = elem.getElementsByTagName("conflict"), condition;
@@ -3490,8 +3766,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_session_cb: function (elem)
- {
+ _sasl_session_cb: function (elem) {
if (elem.getAttribute("type") == "result") {
this.authenticated = true;
this._changeConnectStatus(Strophe.Status.CONNECTED, null);
@@ -3500,7 +3775,6 @@ Strophe.Connection.prototype = {
this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
return false;
}
-
return false;
},
@@ -3514,8 +3788,7 @@ Strophe.Connection.prototype = {
* false to remove the handler.
*/
/* jshint unused:false */
- _sasl_failure_cb: function (elem)
- {
+ _sasl_failure_cb: function (elem) {
// delete unneeded handlers
if (this._sasl_success_handler) {
this.deleteHandler(this._sasl_success_handler);
@@ -3545,8 +3818,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _auth2_cb: function (elem)
- {
+ _auth2_cb: function (elem) {
if (elem.getAttribute("type") == "result") {
this.authenticated = true;
this._changeConnectStatus(Strophe.Status.CONNECTED, null);
@@ -3554,7 +3826,6 @@ Strophe.Connection.prototype = {
this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
this.disconnect('authentication failed');
}
-
return false;
},
@@ -3569,8 +3840,7 @@ Strophe.Connection.prototype = {
* (Integer) period - The period of the handler.
* (Function) handler - The callback function.
*/
- _addSysTimedHandler: function (period, handler)
- {
+ _addSysTimedHandler: function (period, handler) {
var thand = new Strophe.TimedHandler(period, handler);
thand.user = false;
this.addTimeds.push(thand);
@@ -3591,8 +3861,7 @@ Strophe.Connection.prototype = {
* (String) type - The stanza type attribute to match.
* (String) id - The stanza id attribute to match.
*/
- _addSysHandler: function (handler, ns, name, type, id)
- {
+ _addSysHandler: function (handler, ns, name, type, id) {
var hand = new Strophe.Handler(handler, ns, name, type, id);
hand.user = false;
this.addHandlers.push(hand);
@@ -3608,15 +3877,12 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _onDisconnectTimeout: function ()
- {
+ _onDisconnectTimeout: function () {
Strophe.info("_onDisconnectTimeout was called");
-
+ this._changeConnectStatus(Strophe.Status.CONNTIMEOUT, null);
this._proto._onDisconnectTimeout();
-
// actually disconnect
this._doDisconnect();
-
return false;
},
@@ -3626,8 +3892,7 @@ Strophe.Connection.prototype = {
* This handler is called every 100ms to fire timed handlers that
* are ready and keep poll requests going.
*/
- _onIdle: function ()
- {
+ _onIdle: function () {
var i, thand, since, newList;
// add timed handlers scheduled for addition
@@ -3670,7 +3935,10 @@ Strophe.Connection.prototype = {
// reactivate the timer only if connected
if (this.connected) {
- this._idleTimeout = setTimeout(this._onIdle.bind(this), 100);
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this), 100);
}
}
};
@@ -3685,9 +3953,14 @@ Strophe.Connection.prototype = {
*
* By default, all mechanisms are enabled and the priorities are
*
+ * EXTERNAL - 60
+ * OAUTHBEARER - 50
* SCRAM-SHA1 - 40
* DIGEST-MD5 - 30
- * Plain - 20
+ * PLAIN - 20
+ * ANONYMOUS - 10
+ *
+ * See: Strophe.Connection.addSupportedSASLMechanisms
*/
/**
@@ -3762,8 +4035,7 @@ Strophe.SASLMechanism.prototype = {
* Parameters:
* (Strophe.Connection) connection - Target Connection.
*/
- onStart: function(connection)
- {
+ onStart: function(connection) {
this._connection = connection;
},
@@ -3802,89 +4074,69 @@ Strophe.SASLMechanism.prototype = {
/** Constants: SASL mechanisms
* Available authentication mechanisms
*
- * Strophe.SASLAnonymous - SASL Anonymous authentication.
- * Strophe.SASLPlain - SASL Plain authentication.
- * Strophe.SASLMD5 - SASL Digest-MD5 authentication
+ * Strophe.SASLAnonymous - SASL ANONYMOUS authentication.
+ * Strophe.SASLPlain - SASL PLAIN authentication.
+ * Strophe.SASLMD5 - SASL DIGEST-MD5 authentication
* Strophe.SASLSHA1 - SASL SCRAM-SHA1 authentication
+ * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication
+ * Strophe.SASLExternal - SASL EXTERNAL authentication
*/
// Building SASL callbacks
/** PrivateConstructor: SASLAnonymous
- * SASL Anonymous authentication.
+ * SASL ANONYMOUS authentication.
*/
Strophe.SASLAnonymous = function() {};
-
Strophe.SASLAnonymous.prototype = new Strophe.SASLMechanism("ANONYMOUS", false, 10);
-Strophe.SASLAnonymous.test = function(connection) {
- return connection.authcid === null;
+Strophe.SASLAnonymous.prototype.test = function(connection) {
+ return connection.authcid === null;
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLAnonymous.prototype.name] = Strophe.SASLAnonymous;
/** PrivateConstructor: SASLPlain
- * SASL Plain authentication.
+ * SASL PLAIN authentication.
*/
Strophe.SASLPlain = function() {};
-
Strophe.SASLPlain.prototype = new Strophe.SASLMechanism("PLAIN", true, 20);
-Strophe.SASLPlain.test = function(connection) {
- return connection.authcid !== null;
+Strophe.SASLPlain.prototype.test = function(connection) {
+ return connection.authcid !== null;
};
Strophe.SASLPlain.prototype.onChallenge = function(connection) {
- var auth_str = connection.authzid;
- auth_str = auth_str + "\u0000";
- auth_str = auth_str + connection.authcid;
- auth_str = auth_str + "\u0000";
- auth_str = auth_str + connection.pass;
- return auth_str;
+ var auth_str = connection.authzid;
+ auth_str = auth_str + "\u0000";
+ auth_str = auth_str + connection.authcid;
+ auth_str = auth_str + "\u0000";
+ auth_str = auth_str + connection.pass;
+ return utils.utf16to8(auth_str);
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLPlain.prototype.name] = Strophe.SASLPlain;
/** PrivateConstructor: SASLSHA1
* SASL SCRAM SHA 1 authentication.
*/
Strophe.SASLSHA1 = function() {};
-
-/* TEST:
- * This is a simple example of a SCRAM-SHA-1 authentication exchange
- * when the client doesn't support channel bindings (username 'user' and
- * password 'pencil' are used):
- *
- * C: n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL
- * S: r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,
- * i=4096
- * C: c=biws,r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,
- * p=v0X8v3Bz2T0CJGbJQyF0X+HI4Ts=
- * S: v=rmF9pqV8S7suAoZWja4dJRkFsKQ=
- *
- */
-
Strophe.SASLSHA1.prototype = new Strophe.SASLMechanism("SCRAM-SHA-1", true, 40);
-Strophe.SASLSHA1.test = function(connection) {
- return connection.authcid !== null;
+Strophe.SASLSHA1.prototype.test = function(connection) {
+ return connection.authcid !== null;
};
Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cnonce) {
var cnonce = test_cnonce || MD5.hexdigest(Math.random() * 1234567890);
-
- var auth_str = "n=" + connection.authcid;
+ var auth_str = "n=" + utils.utf16to8(connection.authcid);
auth_str += ",r=";
auth_str += cnonce;
-
connection._sasl_data.cnonce = cnonce;
connection._sasl_data["client-first-message-bare"] = auth_str;
auth_str = "n,," + auth_str;
- this.onChallenge = function (connection, challenge)
- {
- var nonce, salt, iter, Hi, U, U_old, i, k;
+ this.onChallenge = function (connection, challenge) {
+ var nonce, salt, iter, Hi, U, U_old, i, k, pass;
var clientKey, serverKey, clientSignature;
var responseText = "c=biws,";
var authMessage = connection._sasl_data["client-first-message-bare"] + "," +
@@ -3919,9 +4171,10 @@ Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cn
salt = Base64.decode(salt);
salt += "\x00\x00\x00\x01";
- Hi = U_old = SHA1.core_hmac_sha1(connection.pass, salt);
+ pass = utils.utf16to8(connection.pass);
+ Hi = U_old = SHA1.core_hmac_sha1(pass, salt);
for (i = 1; i < iter; i++) {
- U = SHA1.core_hmac_sha1(connection.pass, SHA1.binb2str(U_old));
+ U = SHA1.core_hmac_sha1(pass, SHA1.binb2str(U_old));
for (k = 0; k < 5; k++) {
Hi[k] ^= U[k];
}
@@ -3939,24 +4192,21 @@ Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cn
}
responseText += ",p=" + Base64.encode(SHA1.binb2str(clientKey));
-
return responseText;
}.bind(this);
return auth_str;
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLSHA1.prototype.name] = Strophe.SASLSHA1;
/** PrivateConstructor: SASLMD5
* SASL DIGEST MD5 authentication.
*/
Strophe.SASLMD5 = function() {};
-
Strophe.SASLMD5.prototype = new Strophe.SASLMechanism("DIGEST-MD5", false, 30);
-Strophe.SASLMD5.test = function(connection) {
- return connection.authcid !== null;
+Strophe.SASLMD5.prototype.test = function(connection) {
+ return connection.authcid !== null;
};
/** PrivateFunction: _quote
@@ -3968,12 +4218,10 @@ Strophe.SASLMD5.test = function(connection) {
* Returns:
* quoted string
*/
-Strophe.SASLMD5.prototype._quote = function (str)
- {
+Strophe.SASLMD5.prototype._quote = function (str) {
return '"' + str.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"';
//" end string workaround for emacs
- };
-
+};
Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cnonce) {
var attribMatch = /([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/;
@@ -4009,15 +4257,13 @@ Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cno
digest_uri = digest_uri + "/" + host;
}
- var A1 = MD5.hash(connection.authcid +
- ":" + realm + ":" + this._connection.pass) +
- ":" + nonce + ":" + cnonce;
+ var cred = utils.utf16to8(connection.authcid + ":" + realm + ":" + this._connection.pass);
+ var A1 = MD5.hash(cred) + ":" + nonce + ":" + cnonce;
var A2 = 'AUTHENTICATE:' + digest_uri;
var responseText = "";
responseText += 'charset=utf-8,';
- responseText += 'username=' +
- this._quote(connection.authcid) + ',';
+ responseText += 'username=' + this._quote(utils.utf16to8(connection.authcid)) + ',';
responseText += 'realm=' + this._quote(realm) + ',';
responseText += 'nonce=' + this._quote(nonce) + ',';
responseText += 'nc=00000001,';
@@ -4029,15 +4275,57 @@ Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cno
MD5.hexdigest(A2)) + ",";
responseText += 'qop=auth';
- this.onChallenge = function ()
- {
+ this.onChallenge = function () {
return "";
- }.bind(this);
-
+ };
return responseText;
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLMD5.prototype.name] = Strophe.SASLMD5;
+
+/** PrivateConstructor: SASLOAuthBearer
+ * SASL OAuth Bearer authentication.
+ */
+Strophe.SASLOAuthBearer = function() {};
+Strophe.SASLOAuthBearer.prototype = new Strophe.SASLMechanism("OAUTHBEARER", true, 50);
+
+Strophe.SASLOAuthBearer.prototype.test = function(connection) {
+ return connection.authcid !== null;
+};
+
+Strophe.SASLOAuthBearer.prototype.onChallenge = function(connection) {
+ var auth_str = 'n,a=';
+ auth_str = auth_str + connection.authzid;
+ auth_str = auth_str + ',';
+ auth_str = auth_str + "\u0001";
+ auth_str = auth_str + 'auth=Bearer ';
+ auth_str = auth_str + connection.pass;
+ auth_str = auth_str + "\u0001";
+ auth_str = auth_str + "\u0001";
+ return utils.utf16to8(auth_str);
+};
+
+
+/** PrivateConstructor: SASLExternal
+ * SASL EXTERNAL authentication.
+ *
+ * The EXTERNAL mechanism allows a client to request the server to use
+ * credentials established by means external to the mechanism to
+ * authenticate the client. The external means may be, for instance,
+ * TLS services.
+ */
+Strophe.SASLExternal = function() {};
+Strophe.SASLExternal.prototype = new Strophe.SASLMechanism("EXTERNAL", true, 60);
+
+Strophe.SASLExternal.prototype.onChallenge = function(connection) {
+ /** According to XEP-178, an authzid SHOULD NOT be presented when the
+ * authcid contained or implied in the client certificate is the JID (i.e.
+ * authzid) with which the user wants to log in as.
+ *
+ * To NOT send the authzid, the user should therefore set the authcid equal
+ * to the JID when instantiating a new Strophe.Connection object.
+ */
+ return connection.authcid === connection.authzid ? '' : connection.authzid;
+};
return {
Strophe: Strophe,
@@ -4091,11 +4379,9 @@ return {
* (Function) func - The function that will be called when the
* XMLHttpRequest readyState changes.
* (Integer) rid - The BOSH rid attribute associated with this request.
- * (Integer) sends - The number of times this same request has been
- * sent.
+ * (Integer) sends - The number of times this same request has been sent.
*/
-Strophe.Request = function (elem, func, rid, sends)
-{
+Strophe.Request = function (elem, func, rid, sends) {
this.id = ++Strophe._requestId;
this.xmlData = elem;
this.data = Strophe.serialize(elem);
@@ -4131,12 +4417,12 @@ Strophe.Request.prototype = {
*
* Throws:
* "parsererror" - A parser error occured.
+ * "badformat" - The entity has sent XML that cannot be processed.
*
* Returns:
* The DOM element tree of the response.
*/
- getResponse: function ()
- {
+ getResponse: function () {
var node = null;
if (this.xhr.responseXML && this.xhr.responseXML.documentElement) {
node = this.xhr.responseXML.documentElement;
@@ -4150,8 +4436,7 @@ Strophe.Request.prototype = {
} else if (this.xhr.responseText) {
Strophe.error("invalid response received");
Strophe.error("responseText: " + this.xhr.responseText);
- Strophe.error("responseXML: " +
- Strophe.serialize(this.xhr.responseXML));
+ throw "badformat";
}
return node;
@@ -4165,8 +4450,7 @@ Strophe.Request.prototype = {
* Returns:
* A new XMLHttpRequest.
*/
- _newXHR: function ()
- {
+ _newXHR: function () {
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
@@ -4176,10 +4460,8 @@ Strophe.Request.prototype = {
} else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
-
// use Function.bind() to prepend ourselves as an argument
xhr.onreadystatechange = this.func.bind(null, this);
-
return xhr;
}
};
@@ -4220,6 +4502,7 @@ Strophe.Bosh = function(connection) {
this.wait = 60;
this.window = 5;
this.errors = 0;
+ this.inactivity = null;
this._requests = [];
};
@@ -4244,8 +4527,7 @@ Strophe.Bosh.prototype = {
* Returns:
* A Strophe.Builder with a <body/> element.
*/
- _buildBody: function ()
- {
+ _buildBody: function () {
var bodyWrap = $build('body', {
rid: this.rid++,
xmlns: Strophe.NS.HTTPBIND
@@ -4253,7 +4535,7 @@ Strophe.Bosh.prototype = {
if (this.sid !== null) {
bodyWrap.attrs({sid: this.sid});
}
- if (this._conn.options.keepalive) {
+ if (this._conn.options.keepalive && this._conn._sessionCachingSupported()) {
this._cacheSession();
}
return bodyWrap;
@@ -4264,12 +4546,13 @@ Strophe.Bosh.prototype = {
*
* This function is called by the reset function of the Strophe Connection
*/
- _reset: function ()
- {
+ _reset: function () {
this.rid = Math.floor(Math.random() * 4294967295);
this.sid = null;
this.errors = 0;
- window.sessionStorage.removeItem('strophe-bosh-session');
+ if (this._conn._sessionCachingSupported()) {
+ window.sessionStorage.removeItem('strophe-bosh-session');
+ }
this._conn.nextValidRid(this.rid);
},
@@ -4279,8 +4562,7 @@ Strophe.Bosh.prototype = {
*
* Creates and sends the Request that initializes the BOSH connection.
*/
- _connect: function (wait, hold, route)
- {
+ _connect: function (wait, hold, route) {
this.wait = wait || this.wait;
this.hold = hold || this.hold;
this.errors = 0;
@@ -4337,8 +4619,7 @@ Strophe.Bosh.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- _attach: function (jid, sid, rid, callback, wait, hold, wind)
- {
+ _attach: function (jid, sid, rid, callback, wait, hold, wind) {
this._conn.jid = jid;
this.sid = sid;
this.rid = rid;
@@ -4376,15 +4657,14 @@ Strophe.Bosh.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- _restore: function (jid, callback, wait, hold, wind)
- {
+ _restore: function (jid, callback, wait, hold, wind) {
var session = JSON.parse(window.sessionStorage.getItem('strophe-bosh-session'));
if (typeof session !== "undefined" &&
session !== null &&
session.rid &&
session.sid &&
session.jid &&
- (typeof jid === "undefined" || jid === "null" || Strophe.getBareJidFromJid(session.jid) == Strophe.getBareJidFromJid(jid)))
+ (typeof jid === "undefined" || jid === null || Strophe.getBareJidFromJid(session.jid) == Strophe.getBareJidFromJid(jid)))
{
this._conn.restored = true;
this._attach(session.jid, session.sid, session.rid, callback, wait, hold, wind);
@@ -4400,8 +4680,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Strophe.Request) bodyWrap - The received stanza.
*/
- _cacheSession: function ()
- {
+ _cacheSession: function () {
if (this._conn.authenticated) {
if (this._conn.jid && this.rid && this.sid) {
window.sessionStorage.setItem('strophe-bosh-session', JSON.stringify({
@@ -4422,8 +4701,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Strophe.Request) bodyWrap - The received stanza.
*/
- _connect_cb: function (bodyWrap)
- {
+ _connect_cb: function (bodyWrap) {
var typ = bodyWrap.getAttribute("type");
var cond, conflict;
if (typ !== null && typ == "terminate") {
@@ -4454,6 +4732,8 @@ Strophe.Bosh.prototype = {
if (hold) { this.hold = parseInt(hold, 10); }
var wait = bodyWrap.getAttribute('wait');
if (wait) { this.wait = parseInt(wait, 10); }
+ var inactivity = bodyWrap.getAttribute('inactivity');
+ if (inactivity) { this.inactivity = parseInt(inactivity, 10); }
},
/** PrivateFunction: _disconnect
@@ -4462,8 +4742,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Request) pres - This stanza will be sent before disconnecting.
*/
- _disconnect: function (pres)
- {
+ _disconnect: function (pres) {
this._sendTerminate(pres);
},
@@ -4472,11 +4751,12 @@ Strophe.Bosh.prototype = {
*
* Resets the SID and RID.
*/
- _doDisconnect: function ()
- {
+ _doDisconnect: function () {
this.sid = null;
this.rid = Math.floor(Math.random() * 4294967295);
- window.sessionStorage.removeItem('strophe-bosh-session');
+ if (this._conn._sessionCachingSupported()) {
+ window.sessionStorage.removeItem('strophe-bosh-session');
+ }
this._conn.nextValidRid(this.rid);
},
@@ -4487,11 +4767,25 @@ Strophe.Bosh.prototype = {
* Returns:
* True, if there are no Requests queued, False otherwise.
*/
- _emptyQueue: function ()
- {
+ _emptyQueue: function () {
return this._requests.length === 0;
},
+ /** PrivateFunction: _callProtocolErrorHandlers
+ * _Private_ function to call error handlers registered for HTTP errors.
+ *
+ * Parameters:
+ * (Strophe.Request) req - The request that is changing readyState.
+ */
+ _callProtocolErrorHandlers: function (req) {
+ var reqStatus = this._getRequestStatus(req),
+ err_callback;
+ err_callback = this._conn.protocolErrorHandlers.HTTP[reqStatus];
+ if (err_callback) {
+ err_callback.call(this, reqStatus);
+ }
+ },
+
/** PrivateFunction: _hitError
* _Private_ function to handle the error count.
*
@@ -4502,8 +4796,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Integer) reqStatus - The request status.
*/
- _hitError: function (reqStatus)
- {
+ _hitError: function (reqStatus) {
this.errors++;
Strophe.warn("request errored, status: " + reqStatus +
", number of errors: " + this.errors);
@@ -4517,8 +4810,7 @@ Strophe.Bosh.prototype = {
* Called on stream start/restart when no stream:features
* has been received and sends a blank poll request.
*/
- _no_auth_received: function (_callback)
- {
+ _no_auth_received: function (_callback) {
if (_callback) {
_callback = _callback.bind(this._conn);
} else {
@@ -4564,7 +4856,6 @@ Strophe.Bosh.prototype = {
*/
_onIdle: function () {
var data = this._conn._data;
-
// if no requests are in progress, poll
if (this._conn.authenticated && this._requests.length === 0 &&
data.length === 0 && !this._conn.disconnecting) {
@@ -4622,6 +4913,34 @@ Strophe.Bosh.prototype = {
}
},
+ /** PrivateFunction: _getRequestStatus
+ *
+ * Returns the HTTP status code from a Strophe.Request
+ *
+ * Parameters:
+ * (Strophe.Request) req - The Strophe.Request instance.
+ * (Integer) def - The default value that should be returned if no
+ * status value was found.
+ */
+ _getRequestStatus: function (req, def) {
+ var reqStatus;
+ if (req.xhr.readyState == 4) {
+ try {
+ reqStatus = req.xhr.status;
+ } catch (e) {
+ // ignore errors from undefined status attribute. Works
+ // around a browser bug
+ Strophe.error(
+ "Caught an error while retrieving a request's status, " +
+ "reqStatus: " + reqStatus);
+ }
+ }
+ if (typeof(reqStatus) == "undefined") {
+ reqStatus = typeof def === 'number' ? def : 0;
+ }
+ return reqStatus;
+ },
+
/** PrivateFunction: _onRequestStateChange
* _Private_ handler for Strophe.Request state changes.
*
@@ -4634,90 +4953,63 @@ Strophe.Bosh.prototype = {
* (Function) func - The handler for the request.
* (Strophe.Request) req - The request that is changing readyState.
*/
- _onRequestStateChange: function (func, req)
- {
- Strophe.debug("request id " + req.id +
- "." + req.sends + " state changed to " +
- req.xhr.readyState);
-
+ _onRequestStateChange: function (func, req) {
+ Strophe.debug("request id "+req.id+"."+req.sends+
+ " state changed to "+req.xhr.readyState);
if (req.abort) {
req.abort = false;
return;
}
+ if (req.xhr.readyState !== 4) {
+ // The request is not yet complete
+ return;
+ }
+ var reqStatus = this._getRequestStatus(req);
+ if (this.disconnecting && reqStatus >= 400) {
+ this._hitError(reqStatus);
+ this._callProtocolErrorHandlers(req);
+ return;
+ }
- // request complete
- var reqStatus;
- if (req.xhr.readyState == 4) {
- reqStatus = 0;
- try {
- reqStatus = req.xhr.status;
- } catch (e) {
- // ignore errors from undefined status attribute. works
- // around a browser bug
- }
-
- if (typeof(reqStatus) == "undefined") {
- reqStatus = 0;
- }
-
- if (this.disconnecting) {
- if (reqStatus >= 400) {
- this._hitError(reqStatus);
- return;
- }
- }
+ if ((reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
+ // remove from internal queue
+ this._removeRequest(req);
+ Strophe.debug("request id "+req.id+" should now be removed");
+ }
+ if (reqStatus == 200) {
+ // request succeeded
var reqIs0 = (this._requests[0] == req);
var reqIs1 = (this._requests[1] == req);
-
- if ((reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
- // remove from internal queue
- this._removeRequest(req);
- Strophe.debug("request id " +
- req.id +
- " should now be removed");
- }
-
- // request succeeded
- if (reqStatus == 200) {
- // if request 1 finished, or request 0 finished and request
- // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to
- // restart the other - both will be in the first spot, as the
- // completed request has been removed from the queue already
- if (reqIs1 ||
- (reqIs0 && this._requests.length > 0 &&
- this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait))) {
- this._restartRequest(0);
- }
-
- this._conn.nextValidRid(Number(req.rid) + 1);
-
- // call handler
- Strophe.debug("request id " +
- req.id + "." +
- req.sends + " got 200");
- func(req);
- this.errors = 0;
- } else {
- Strophe.error("request id " +
- req.id + "." +
- req.sends + " error " + reqStatus +
- " happened");
- if (reqStatus === 0 ||
- (reqStatus >= 400 && reqStatus < 600) ||
- reqStatus >= 12000) {
- this._hitError(reqStatus);
- if (reqStatus >= 400 && reqStatus < 500) {
- this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING, null);
- this._conn._doDisconnect();
- }
- }
- }
-
- if (!((reqStatus > 0 && reqStatus < 500) ||
- req.sends > 5)) {
- this._throttledRequestHandler();
+ // if request 1 finished, or request 0 finished and request
+ // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to
+ // restart the other - both will be in the first spot, as the
+ // completed request has been removed from the queue already
+ if (reqIs1 ||
+ (reqIs0 && this._requests.length > 0 &&
+ this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait))) {
+ this._restartRequest(0);
+ }
+ this._conn.nextValidRid(Number(req.rid) + 1);
+ Strophe.debug("request id "+req.id+"."+req.sends+" got 200");
+ func(req); // call handler
+ this.errors = 0;
+ } else if (reqStatus === 0 ||
+ (reqStatus >= 400 && reqStatus < 600) ||
+ reqStatus >= 12000) {
+ // request failed
+ Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");
+ this._hitError(reqStatus);
+ this._callProtocolErrorHandlers(req);
+ if (reqStatus >= 400 && reqStatus < 500) {
+ this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING, null);
+ this._conn._doDisconnect();
}
+ } else {
+ Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");
+ }
+ if (!(reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
+ this._throttledRequestHandler();
}
},
@@ -4730,24 +5022,10 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Integer) i - The index of the request in the queue.
*/
- _processRequest: function (i)
- {
+ _processRequest: function (i) {
var self = this;
var req = this._requests[i];
- var reqStatus = -1;
-
- try {
- if (req.xhr.readyState == 4) {
- reqStatus = req.xhr.status;
- }
- } catch (e) {
- Strophe.error("caught an error in _requests[" + i +
- "], reqStatus: " + reqStatus);
- }
-
- if (typeof(reqStatus) == "undefined") {
- reqStatus = -1;
- }
+ var reqStatus = this._getRequestStatus(req, -1);
// make sure we limit the number of retries
if (req.sends > this._conn.maxRetries) {
@@ -4761,13 +5039,11 @@ Strophe.Bosh.prototype = {
var secondaryTimeout = (req.dead !== null &&
req.timeDead() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait));
var requestCompletedWithServerError = (req.xhr.readyState == 4 &&
- (reqStatus < 1 ||
- reqStatus >= 500));
+ (reqStatus < 1 || reqStatus >= 500));
if (primaryTimeout || secondaryTimeout ||
requestCompletedWithServerError) {
if (secondaryTimeout) {
- Strophe.error("Request " +
- this._requests[i].id +
+ Strophe.error("Request " + this._requests[i].id +
" timed out (secondary), restarting");
}
req.abort = true;
@@ -4782,17 +5058,23 @@ Strophe.Bosh.prototype = {
}
if (req.xhr.readyState === 0) {
- Strophe.debug("request id " + req.id +
- "." + req.sends + " posting");
+ Strophe.debug("request id "+req.id+"."+req.sends+" posting");
try {
+ var contentType = this._conn.options.contentType || "text/xml; charset=utf-8";
req.xhr.open("POST", this._conn.service, this._conn.options.sync ? false : true);
- req.xhr.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
+ if (typeof req.xhr.setRequestHeader !== 'undefined') {
+ // IE9 doesn't have setRequestHeader
+ req.xhr.setRequestHeader("Content-Type", contentType);
+ }
+ if (this._conn.options.withCredentials) {
+ req.xhr.withCredentials = true;
+ }
} catch (e2) {
Strophe.error("XHR open failed.");
if (!this._conn.connected) {
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,
- "bad-service");
+ this._conn._changeConnectStatus(
+ Strophe.Status.CONNFAIL, "bad-service");
}
this._conn.disconnect();
return;
@@ -4820,7 +5102,10 @@ Strophe.Bosh.prototype = {
// expanding retry window
var backoff = Math.min(Math.floor(Strophe.TIMEOUT * this.wait),
Math.pow(req.sends, 3)) * 1000;
- setTimeout(sendFunc, backoff);
+ setTimeout(function() {
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ sendFunc();
+ }, backoff);
} else {
sendFunc();
}
@@ -4851,20 +5136,16 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Strophe.Request) req - The request to remove.
*/
- _removeRequest: function (req)
- {
+ _removeRequest: function (req) {
Strophe.debug("removing request");
-
var i;
for (i = this._requests.length - 1; i >= 0; i--) {
if (req == this._requests[i]) {
this._requests.splice(i, 1);
}
}
-
// IE6 fails on setting to null, so set to empty function
req.xhr.onreadystatechange = function () {};
-
this._throttledRequestHandler();
},
@@ -4874,8 +5155,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Integer) i - The index of the request in the queue.
*/
- _restartRequest: function (i)
- {
+ _restartRequest: function (i) {
var req = this._requests[i];
if (req.dead === null) {
req.dead = new Date();
@@ -4896,8 +5176,7 @@ Strophe.Bosh.prototype = {
* Returns:
* The stanza that was passed.
*/
- _reqToData: function (req)
- {
+ _reqToData: function (req) {
try {
return req.getResponse();
} catch (e) {
@@ -4913,20 +5192,18 @@ Strophe.Bosh.prototype = {
* the BOSH server a terminate body and includes an unavailable
* presence if authentication has completed.
*/
- _sendTerminate: function (pres)
- {
+ _sendTerminate: function (pres) {
Strophe.info("_sendTerminate was called");
var body = this._buildBody().attrs({type: "terminate"});
-
if (pres) {
body.cnode(pres.tree());
}
-
- var req = new Strophe.Request(body.tree(),
- this._onRequestStateChange.bind(
- this, this._conn._dataRecv.bind(this._conn)),
- body.tree().getAttribute("rid"));
-
+ var req = new Strophe.Request(
+ body.tree(),
+ this._onRequestStateChange.bind(
+ this, this._conn._dataRecv.bind(this._conn)),
+ body.tree().getAttribute("rid")
+ );
this._requests.push(req);
this._throttledRequestHandler();
},
@@ -4939,15 +5216,18 @@ Strophe.Bosh.prototype = {
_send: function () {
clearTimeout(this._conn._idleTimeout);
this._throttledRequestHandler();
- this._conn._idleTimeout = setTimeout(this._conn._onIdle.bind(this._conn), 100);
+
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._conn._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this._conn), 100);
},
/** PrivateFunction: _sendRestart
*
* Send an xmpp:restart stanza.
*/
- _sendRestart: function ()
- {
+ _sendRestart: function () {
this._throttledRequestHandler();
clearTimeout(this._conn._idleTimeout);
},
@@ -4959,8 +5239,7 @@ Strophe.Bosh.prototype = {
* request ids overflow the connection window in the case that one
* request died.
*/
- _throttledRequestHandler: function ()
- {
+ _throttledRequestHandler: function () {
if (!this._requests) {
Strophe.debug("_throttledRequestHandler called with " +
"undefined requests");
@@ -5075,8 +5354,7 @@ Strophe.Websocket.prototype = {
* Returns:
* A Strophe.Builder with a <stream> element.
*/
- _buildStream: function ()
- {
+ _buildStream: function () {
return $build("open", {
"xmlns": Strophe.NS.FRAMING,
"to": this._conn.domain,
@@ -5146,8 +5424,7 @@ Strophe.Websocket.prototype = {
* This function is called by the reset function of the Strophe Connection.
* Is not needed by WebSockets.
*/
- _reset: function ()
- {
+ _reset: function () {
return;
},
@@ -5269,8 +5546,7 @@ Strophe.Websocket.prototype = {
* Parameters:
* (Request) pres - This stanza will be sent before disconnecting.
*/
- _disconnect: function (pres)
- {
+ _disconnect: function (pres) {
if (this.socket && this.socket.readyState !== WebSocket.CLOSED) {
if (pres) {
this._conn.send(pres);
@@ -5293,8 +5569,7 @@ Strophe.Websocket.prototype = {
*
* Just closes the Socket for WebSockets
*/
- _doDisconnect: function ()
- {
+ _doDisconnect: function () {
Strophe.info("WebSockets _doDisconnect was called");
this._closeSocket();
},
@@ -5303,8 +5578,7 @@ Strophe.Websocket.prototype = {
* _Private_ helper function to wrap a stanza in a <stream> tag.
* This is used so Strophe can process stanzas from WebSockets like BOSH
*/
- _streamWrap: function (stanza)
- {
+ _streamWrap: function (stanza) {
return "<wrapper>" + stanza + '</wrapper>';
},
@@ -5314,8 +5588,7 @@ Strophe.Websocket.prototype = {
*
* Closes the socket if it is still open and deletes it
*/
- _closeSocket: function ()
- {
+ _closeSocket: function () {
if (this.socket) { try {
this.socket.close();
} catch (e) {} }
@@ -5328,8 +5601,7 @@ Strophe.Websocket.prototype = {
* Returns:
* True, because WebSocket messages are send immediately after queueing.
*/
- _emptyQueue: function ()
- {
+ _emptyQueue: function () {
return true;
},
@@ -5340,7 +5612,7 @@ Strophe.Websocket.prototype = {
*/
_onClose: function() {
if(this._conn.connected && !this._conn.disconnecting) {
- Strophe.error("Websocket closed unexcectedly");
+ Strophe.error("Websocket closed unexpectedly");
this._conn._doDisconnect();
} else {
Strophe.info("Websocket closed");
@@ -5352,8 +5624,7 @@ Strophe.Websocket.prototype = {
* Called on stream start/restart when no stream:features
* has been received.
*/
- _no_auth_received: function (_callback)
- {
+ _no_auth_received: function (_callback) {
Strophe.error("Server did not send any auth methods");
this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "Server did not send any auth methods");
if (_callback) {
@@ -5383,7 +5654,7 @@ Strophe.Websocket.prototype = {
*/
_onError: function(error) {
Strophe.error("Websocket error " + error);
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "The WebSocket connection could not be established was disconnected.");
+ this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "The WebSocket connection could not be established or was disconnected.");
this._disconnect();
},
@@ -5416,11 +5687,22 @@ Strophe.Websocket.prototype = {
/** PrivateFunction: _onMessage
* _Private_ function to handle websockets messages.
*
- * This function parses each of the messages as if they are full documents. [TODO : We may actually want to use a SAX Push parser].
+ * This function parses each of the messages as if they are full documents.
+ * [TODO : We may actually want to use a SAX Push parser].
+ *
+ * Since all XMPP traffic starts with
+ * <stream:stream version='1.0'
+ * xml:lang='en'
+ * xmlns='jabber:client'
+ * xmlns:stream='http://etherx.jabber.org/streams'
+ * id='3697395463'
+ * from='SERVER'>
+ *
+ * The first stanza will always fail to be parsed.
*
- * Since all XMPP traffic starts with "<stream:stream version='1.0' xml:lang='en' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='3697395463' from='SERVER'>"
- * The first stanza will always fail to be parsed...
- * Addtionnaly, the seconds stanza will always be a <stream:features> with the stream NS defined in the previous stanza... so we need to 'force' the inclusion of the NS in this stanza!
+ * Additionally, the seconds stanza will always be <stream:features> with
+ * the stream NS defined in the previous stanza, so we need to 'force'
+ * the inclusion of the NS in this stanza.
*
* Parameters:
* (string) message - The websocket message.
@@ -5439,7 +5721,6 @@ Strophe.Websocket.prototype = {
} else if (message.data.search("<open ") === 0) {
// This handles stream restarts
elem = new DOMParser().parseFromString(message.data, "text/xml").documentElement;
-
if (!this._handleStreamStart(elem)) {
return;
}
@@ -5491,8 +5772,7 @@ Strophe.Websocket.prototype = {
* Returns:
* The stanza that was passed.
*/
- _reqToData: function (stanza)
- {
+ _reqToData: function (stanza) {
return stanza;
},
@@ -5509,8 +5789,7 @@ Strophe.Websocket.prototype = {
*
* Send an xmpp:restart stanza.
*/
- _sendRestart: function ()
- {
+ _sendRestart: function () {
clearTimeout(this._conn._idleTimeout);
this._conn._onIdle.bind(this._conn)();
}
@@ -5518,9 +5797,35 @@ Strophe.Websocket.prototype = {
return Strophe;
}));
+(function(root){
+ if(typeof define === 'function' && define.amd){
+ define("strophe", [
+ "strophe-core",
+ "strophe-bosh",
+ "strophe-websocket"
+ ], function (wrapper) {
+ return wrapper;
+ });
+ }
+})(this);
+
/* jshint ignore:start */
if (callback) {
- return callback(Strophe, $build, $msg, $iq, $pres);
+ if(typeof define === 'function' && define.amd){
+ //For backwards compatability
+ var n_callback = callback;
+ if (typeof requirejs === 'function') {
+ requirejs(["strophe"], function(o){
+ n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres);
+ });
+ } else {
+ require(["strophe"], function(o){
+ n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres);
+ });
+ }
+ }else{
+ return callback(Strophe, $build, $msg, $iq, $pres);
+ }
}
@@ -8129,24 +8434,349 @@ Strophe.addConnectionPlugin('bookmarks', {
/*!
+ * Source: lib/strophe.chatstates/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/chatstates
+ */
+/**
+ * Chat state notifications (XEP 0085) plugin
+ * @see http://xmpp.org/extensions/xep-0085.html
+ */
+Strophe.addConnectionPlugin('chatstates',
+{
+ init: function (connection)
+ {
+ this._connection = connection;
+
+ Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates');
+ },
+
+ statusChanged: function (status)
+ {
+ if (status === Strophe.Status.CONNECTED
+ || status === Strophe.Status.ATTACHED)
+ {
+ this._connection.addHandler(this._notificationReceived.bind(this),
+ Strophe.NS.CHATSTATES, "message");
+ }
+ },
+
+ addActive: function(message)
+ {
+ return message.c('active', {xmlns: Strophe.NS.CHATSTATES}).up();
+ },
+
+ _notificationReceived: function(message)
+ {
+ var composing = $(message).find('composing'),
+ paused = $(message).find('paused'),
+ active = $(message).find('active'),
+ jid = $(message).attr('from');
+
+ if (composing.length > 0)
+ {
+ $(document).trigger('composing.chatstates', jid);
+ }
+
+ if (paused.length > 0)
+ {
+ $(document).trigger('paused.chatstates', jid);
+ }
+
+ if (active.length > 0)
+ {
+ $(document).trigger('active.chatstates', jid);
+ }
+
+ return true;
+ },
+
+ sendActive: function(jid, type)
+ {
+ this._sendNotification(jid, type, 'active');
+ },
+
+ sendComposing: function(jid, type)
+ {
+ this._sendNotification(jid, type, 'composing');
+ },
+
+ sendPaused: function(jid, type)
+ {
+ this._sendNotification(jid, type, 'paused');
+ },
+
+ _sendNotification: function(jid, type, notification)
+ {
+ if (!type) type = 'chat';
+
+ this._connection.send($msg(
+ {
+ to: jid,
+ type: type
+ })
+ .c(notification, {xmlns: Strophe.NS.CHATSTATES}));
+ }
+});
+
+
+/*!
* Source: lib/strophe.jinglejs/strophe.jinglejs-bundle.js, license: MIT, url: https://github.com/sualko/strophe.jinglejs
*/
/*!
- * strophe.jinglejs v0.1.1 - 2015-11-27
+ * strophe.jinglejs v0.1.2 - 2017-01-12
*
- * Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see https://github.com/sualko/strophe.jinglejs/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 0.1.1
+ * @version 0.1.2
* @license MIT
*/
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true };
+},{"core-js/library/fn/object/assign":8}],2:[function(require,module,exports){
+"use strict";
+
+exports["default"] = function (obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+};
-},{}],2:[function(require,module,exports){
+exports.__esModule = true;
+},{}],3:[function(require,module,exports){
+'use strict'
+
+exports.byteLength = byteLength
+exports.toByteArray = toByteArray
+exports.fromByteArray = fromByteArray
+
+var lookup = []
+var revLookup = []
+var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
+
+var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
+for (var i = 0, len = code.length; i < len; ++i) {
+ lookup[i] = code[i]
+ revLookup[code.charCodeAt(i)] = i
+}
+
+revLookup['-'.charCodeAt(0)] = 62
+revLookup['_'.charCodeAt(0)] = 63
+
+function placeHoldersCount (b64) {
+ var len = b64.length
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+
+ // the number of equal signs (place holders)
+ // if there are two placeholders, than the two characters before it
+ // represent one byte
+ // if there is only one, then the three characters before it represent 2 bytes
+ // this is just a cheap hack to not do indexOf twice
+ return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
+}
+
+function byteLength (b64) {
+ // base64 is 4/3 + up to two characters of the original data
+ return b64.length * 3 / 4 - placeHoldersCount(b64)
+}
+
+function toByteArray (b64) {
+ var i, j, l, tmp, placeHolders, arr
+ var len = b64.length
+ placeHolders = placeHoldersCount(b64)
+
+ arr = new Arr(len * 3 / 4 - placeHolders)
+
+ // if there are placeholders, only get up to the last complete 4 chars
+ l = placeHolders > 0 ? len - 4 : len
+
+ var L = 0
+
+ for (i = 0, j = 0; i < l; i += 4, j += 3) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
+ arr[L++] = (tmp >> 16) & 0xFF
+ arr[L++] = (tmp >> 8) & 0xFF
+ arr[L++] = tmp & 0xFF
+ }
+
+ if (placeHolders === 2) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
+ arr[L++] = tmp & 0xFF
+ } else if (placeHolders === 1) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
+ arr[L++] = (tmp >> 8) & 0xFF
+ arr[L++] = tmp & 0xFF
+ }
+
+ return arr
+}
+
+function tripletToBase64 (num) {
+ return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
+}
+
+function encodeChunk (uint8, start, end) {
+ var tmp
+ var output = []
+ for (var i = start; i < end; i += 3) {
+ tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
+ output.push(tripletToBase64(tmp))
+ }
+ return output.join('')
+}
+
+function fromByteArray (uint8) {
+ var tmp
+ var len = uint8.length
+ var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
+ var output = ''
+ var parts = []
+ var maxChunkLength = 16383 // must be multiple of 3
+
+ // go through the array every three bytes, we'll deal with trailing stuff later
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
+ parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
+ }
+
+ // pad the end with zeros, but make sure to not forget the extra bytes
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1]
+ output += lookup[tmp >> 2]
+ output += lookup[(tmp << 4) & 0x3F]
+ output += '=='
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
+ output += lookup[tmp >> 10]
+ output += lookup[(tmp >> 4) & 0x3F]
+ output += lookup[(tmp << 2) & 0x3F]
+ output += '='
+ }
+
+ parts.push(output)
+
+ return parts.join('')
+}
+
+},{}],4:[function(require,module,exports){
+
+},{}],5:[function(require,module,exports){
+(function (global){
+'use strict';
+
+var buffer = require('buffer');
+var Buffer = buffer.Buffer;
+var SlowBuffer = buffer.SlowBuffer;
+var MAX_LEN = buffer.kMaxLength || 2147483647;
+exports.alloc = function alloc(size, fill, encoding) {
+ if (typeof Buffer.alloc === 'function') {
+ return Buffer.alloc(size, fill, encoding);
+ }
+ if (typeof encoding === 'number') {
+ throw new TypeError('encoding must not be number');
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ var enc = encoding;
+ var _fill = fill;
+ if (_fill === undefined) {
+ enc = undefined;
+ _fill = 0;
+ }
+ var buf = new Buffer(size);
+ if (typeof _fill === 'string') {
+ var fillBuf = new Buffer(_fill, enc);
+ var flen = fillBuf.length;
+ var i = -1;
+ while (++i < size) {
+ buf[i] = fillBuf[i % flen];
+ }
+ } else {
+ buf.fill(_fill);
+ }
+ return buf;
+}
+exports.allocUnsafe = function allocUnsafe(size) {
+ if (typeof Buffer.allocUnsafe === 'function') {
+ return Buffer.allocUnsafe(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new Buffer(size);
+}
+exports.from = function from(value, encodingOrOffset, length) {
+ if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
+ return Buffer.from(value, encodingOrOffset, length);
+ }
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number');
+ }
+ if (typeof value === 'string') {
+ return new Buffer(value, encodingOrOffset);
+ }
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ var offset = encodingOrOffset;
+ if (arguments.length === 1) {
+ return new Buffer(value);
+ }
+ if (typeof offset === 'undefined') {
+ offset = 0;
+ }
+ var len = length;
+ if (typeof len === 'undefined') {
+ len = value.byteLength - offset;
+ }
+ if (offset >= value.byteLength) {
+ throw new RangeError('\'offset\' is out of bounds');
+ }
+ if (len > value.byteLength - offset) {
+ throw new RangeError('\'length\' is out of bounds');
+ }
+ return new Buffer(value.slice(offset, offset + len));
+ }
+ if (Buffer.isBuffer(value)) {
+ var out = new Buffer(value.length);
+ value.copy(out, 0, 0, value.length);
+ return out;
+ }
+ if (value) {
+ if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
+ return new Buffer(value);
+ }
+ if (value.type === 'Buffer' && Array.isArray(value.data)) {
+ return new Buffer(value.data);
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
+}
+exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
+ if (typeof Buffer.allocUnsafeSlow === 'function') {
+ return Buffer.allocUnsafeSlow(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size >= MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new SlowBuffer(size);
+}
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"buffer":6}],6:[function(require,module,exports){
(function (global){
/*!
* The buffer module from node.js, for the browser.
@@ -8156,16 +8786,15 @@ Strophe.addConnectionPlugin('bookmarks', {
*/
/* eslint-disable no-proto */
+'use strict'
+
var base64 = require('base64-js')
var ieee754 = require('ieee754')
-var isArray = require('is-array')
+var isArray = require('isarray')
exports.Buffer = Buffer
exports.SlowBuffer = SlowBuffer
exports.INSPECT_MAX_BYTES = 50
-Buffer.poolSize = 8192 // not used by this implementation
-
-var rootParent = {}
/**
* If `Buffer.TYPED_ARRAY_SUPPORT`:
@@ -8183,9 +8812,6 @@ var rootParent = {}
* - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
* See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
*
- * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property
- * on objects.
- *
* - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
*
* - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
@@ -8198,14 +8824,16 @@ Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
? global.TYPED_ARRAY_SUPPORT
: typedArraySupport()
+/*
+ * Export kMaxLength after typed array support is determined.
+ */
+exports.kMaxLength = kMaxLength()
+
function typedArraySupport () {
- function Bar () {}
try {
var arr = new Uint8Array(1)
- arr.foo = function () { return 42 }
- arr.constructor = Bar
+ arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
return arr.foo() === 42 && // typed array instances can be augmented
- arr.constructor === Bar && // constructor can be set
typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
} catch (e) {
@@ -8219,178 +8847,252 @@ function kMaxLength () {
: 0x3fffffff
}
+function createBuffer (that, length) {
+ if (kMaxLength() < length) {
+ throw new RangeError('Invalid typed array length')
+ }
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = new Uint8Array(length)
+ that.__proto__ = Buffer.prototype
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ if (that === null) {
+ that = new Buffer(length)
+ }
+ that.length = length
+ }
+
+ return that
+}
+
/**
- * Class: Buffer
- * =============
- *
- * The Buffer constructor returns instances of `Uint8Array` that are augmented
- * with function properties for all the node `Buffer` API functions. We use
- * `Uint8Array` so that square bracket notation works as expected -- it returns
- * a single octet.
+ * The Buffer constructor returns instances of `Uint8Array` that have their
+ * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
+ * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
+ * and the `Uint8Array` methods. Square bracket notation works as expected -- it
+ * returns a single octet.
*
- * By augmenting the instances, we can avoid modifying the `Uint8Array`
- * prototype.
+ * The `Uint8Array` prototype remains unmodified.
*/
-function Buffer (arg) {
- if (!(this instanceof Buffer)) {
- // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
- if (arguments.length > 1) return new Buffer(arg, arguments[1])
- return new Buffer(arg)
- }
- this.length = 0
- this.parent = undefined
+function Buffer (arg, encodingOrOffset, length) {
+ if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
+ return new Buffer(arg, encodingOrOffset, length)
+ }
// Common case.
if (typeof arg === 'number') {
- return fromNumber(this, arg)
+ if (typeof encodingOrOffset === 'string') {
+ throw new Error(
+ 'If encoding is specified then the first argument must be a string'
+ )
+ }
+ return allocUnsafe(this, arg)
}
+ return from(this, arg, encodingOrOffset, length)
+}
- // Slightly less common case.
- if (typeof arg === 'string') {
- return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')
- }
+Buffer.poolSize = 8192 // not used by this implementation
- // Unusual.
- return fromObject(this, arg)
+// TODO: Legacy, not needed anymore. Remove in next major version.
+Buffer._augment = function (arr) {
+ arr.__proto__ = Buffer.prototype
+ return arr
}
-function fromNumber (that, length) {
- that = allocate(that, length < 0 ? 0 : checked(length) | 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) {
- for (var i = 0; i < length; i++) {
- that[i] = 0
- }
+function from (that, value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number')
}
- return that
-}
-function fromString (that, string, encoding) {
- if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ return fromArrayBuffer(that, value, encodingOrOffset, length)
+ }
- // Assumption: byteLength() return value is always < kMaxLength.
- var length = byteLength(string, encoding) | 0
- that = allocate(that, length)
+ if (typeof value === 'string') {
+ return fromString(that, value, encodingOrOffset)
+ }
- that.write(string, encoding)
- return that
+ return fromObject(that, value)
}
-function fromObject (that, object) {
- if (Buffer.isBuffer(object)) return fromBuffer(that, object)
-
- if (isArray(object)) return fromArray(that, object)
+/**
+ * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
+ * if value is a number.
+ * Buffer.from(str[, encoding])
+ * Buffer.from(array)
+ * Buffer.from(buffer)
+ * Buffer.from(arrayBuffer[, byteOffset[, length]])
+ **/
+Buffer.from = function (value, encodingOrOffset, length) {
+ return from(null, value, encodingOrOffset, length)
+}
- if (object == null) {
- throw new TypeError('must start with number, buffer, array or string')
+if (Buffer.TYPED_ARRAY_SUPPORT) {
+ Buffer.prototype.__proto__ = Uint8Array.prototype
+ Buffer.__proto__ = Uint8Array
+ if (typeof Symbol !== 'undefined' && Symbol.species &&
+ Buffer[Symbol.species] === Buffer) {
+ // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
+ Object.defineProperty(Buffer, Symbol.species, {
+ value: null,
+ configurable: true
+ })
}
+}
- if (typeof ArrayBuffer !== 'undefined') {
- if (object.buffer instanceof ArrayBuffer) {
- return fromTypedArray(that, object)
- }
- if (object instanceof ArrayBuffer) {
- return fromArrayBuffer(that, object)
- }
+function assertSize (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('"size" argument must be a number')
+ } else if (size < 0) {
+ throw new RangeError('"size" argument must not be negative')
}
+}
- if (object.length) return fromArrayLike(that, object)
-
- return fromJsonObject(that, object)
+function alloc (that, size, fill, encoding) {
+ assertSize(size)
+ if (size <= 0) {
+ return createBuffer(that, size)
+ }
+ if (fill !== undefined) {
+ // Only pay attention to encoding if it's a string. This
+ // prevents accidentally sending in a number that would
+ // be interpretted as a start offset.
+ return typeof encoding === 'string'
+ ? createBuffer(that, size).fill(fill, encoding)
+ : createBuffer(that, size).fill(fill)
+ }
+ return createBuffer(that, size)
}
-function fromBuffer (that, buffer) {
- var length = checked(buffer.length) | 0
- that = allocate(that, length)
- buffer.copy(that, 0, 0, length)
- return that
+/**
+ * Creates a new filled Buffer instance.
+ * alloc(size[, fill[, encoding]])
+ **/
+Buffer.alloc = function (size, fill, encoding) {
+ return alloc(null, size, fill, encoding)
}
-function fromArray (that, array) {
- var length = checked(array.length) | 0
- that = allocate(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
+function allocUnsafe (that, size) {
+ assertSize(size)
+ that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
+ if (!Buffer.TYPED_ARRAY_SUPPORT) {
+ for (var i = 0; i < size; ++i) {
+ that[i] = 0
+ }
}
return that
}
-// Duplicate of fromArray() to keep fromArray() monomorphic.
-function fromTypedArray (that, array) {
- var length = checked(array.length) | 0
- that = allocate(that, length)
- // Truncating the elements is probably not what people expect from typed
- // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior
- // of the old Buffer constructor.
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
- }
- return that
+/**
+ * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
+ * */
+Buffer.allocUnsafe = function (size) {
+ return allocUnsafe(null, size)
+}
+/**
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
+ */
+Buffer.allocUnsafeSlow = function (size) {
+ return allocUnsafe(null, size)
}
-function fromArrayBuffer (that, array) {
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- array.byteLength
- that = Buffer._augment(new Uint8Array(array))
- } else {
- // Fallback: Return an object instance of the Buffer class
- that = fromTypedArray(that, new Uint8Array(array))
+function fromString (that, string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8'
}
+
+ if (!Buffer.isEncoding(encoding)) {
+ throw new TypeError('"encoding" must be a valid string encoding')
+ }
+
+ var length = byteLength(string, encoding) | 0
+ that = createBuffer(that, length)
+
+ var actual = that.write(string, encoding)
+
+ if (actual !== length) {
+ // Writing a hex string, for example, that contains invalid characters will
+ // cause everything after the first invalid character to be ignored. (e.g.
+ // 'abxxcd' will be treated as 'ab')
+ that = that.slice(0, actual)
+ }
+
return that
}
function fromArrayLike (that, array) {
- var length = checked(array.length) | 0
- that = allocate(that, length)
+ var length = array.length < 0 ? 0 : checked(array.length) | 0
+ that = createBuffer(that, length)
for (var i = 0; i < length; i += 1) {
that[i] = array[i] & 255
}
return that
}
-// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.
-// Returns a zero-length buffer for inputs that don't conform to the spec.
-function fromJsonObject (that, object) {
- var array
- var length = 0
+function fromArrayBuffer (that, array, byteOffset, length) {
+ array.byteLength // this throws if `array` is not a valid ArrayBuffer
- if (object.type === 'Buffer' && isArray(object.data)) {
- array = object.data
- length = checked(array.length) | 0
+ if (byteOffset < 0 || array.byteLength < byteOffset) {
+ throw new RangeError('\'offset\' is out of bounds')
}
- that = allocate(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
+ if (array.byteLength < byteOffset + (length || 0)) {
+ throw new RangeError('\'length\' is out of bounds')
}
- return that
-}
-if (Buffer.TYPED_ARRAY_SUPPORT) {
- Buffer.prototype.__proto__ = Uint8Array.prototype
- Buffer.__proto__ = Uint8Array
-}
+ if (byteOffset === undefined && length === undefined) {
+ array = new Uint8Array(array)
+ } else if (length === undefined) {
+ array = new Uint8Array(array, byteOffset)
+ } else {
+ array = new Uint8Array(array, byteOffset, length)
+ }
-function allocate (that, length) {
if (Buffer.TYPED_ARRAY_SUPPORT) {
// Return an augmented `Uint8Array` instance, for best performance
- that = Buffer._augment(new Uint8Array(length))
+ that = array
that.__proto__ = Buffer.prototype
} else {
// Fallback: Return an object instance of the Buffer class
- that.length = length
- that._isBuffer = true
+ that = fromArrayLike(that, array)
}
+ return that
+}
- var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1
- if (fromPool) that.parent = rootParent
+function fromObject (that, obj) {
+ if (Buffer.isBuffer(obj)) {
+ var len = checked(obj.length) | 0
+ that = createBuffer(that, len)
- return that
+ if (that.length === 0) {
+ return that
+ }
+
+ obj.copy(that, 0, 0, len)
+ return that
+ }
+
+ if (obj) {
+ if ((typeof ArrayBuffer !== 'undefined' &&
+ obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
+ if (typeof obj.length !== 'number' || isnan(obj.length)) {
+ return createBuffer(that, 0)
+ }
+ return fromArrayLike(that, obj)
+ }
+
+ if (obj.type === 'Buffer' && isArray(obj.data)) {
+ return fromArrayLike(that, obj.data)
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
}
function checked (length) {
- // Note: cannot use `length < kMaxLength` here because that fails when
+ // Note: cannot use `length < kMaxLength()` here because that fails when
// length is NaN (which is otherwise coerced to zero.)
if (length >= kMaxLength()) {
throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
@@ -8399,12 +9101,11 @@ function checked (length) {
return length | 0
}
-function SlowBuffer (subject, encoding) {
- if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
-
- var buf = new Buffer(subject, encoding)
- delete buf.parent
- return buf
+function SlowBuffer (length) {
+ if (+length != length) { // eslint-disable-line eqeqeq
+ length = 0
+ }
+ return Buffer.alloc(+length)
}
Buffer.isBuffer = function isBuffer (b) {
@@ -8421,17 +9122,12 @@ Buffer.compare = function compare (a, b) {
var x = a.length
var y = b.length
- var i = 0
- var len = Math.min(x, y)
- while (i < len) {
- if (a[i] !== b[i]) break
-
- ++i
- }
-
- if (i !== len) {
- x = a[i]
- y = b[i]
+ for (var i = 0, len = Math.min(x, y); i < len; ++i) {
+ if (a[i] !== b[i]) {
+ x = a[i]
+ y = b[i]
+ break
+ }
}
if (x < y) return -1
@@ -8445,9 +9141,9 @@ Buffer.isEncoding = function isEncoding (encoding) {
case 'utf8':
case 'utf-8':
case 'ascii':
+ case 'latin1':
case 'binary':
case 'base64':
- case 'raw':
case 'ucs2':
case 'ucs-2':
case 'utf16le':
@@ -8459,32 +9155,46 @@ Buffer.isEncoding = function isEncoding (encoding) {
}
Buffer.concat = function concat (list, length) {
- if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
+ if (!isArray(list)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
if (list.length === 0) {
- return new Buffer(0)
+ return Buffer.alloc(0)
}
var i
if (length === undefined) {
length = 0
- for (i = 0; i < list.length; i++) {
+ for (i = 0; i < list.length; ++i) {
length += list[i].length
}
}
- var buf = new Buffer(length)
+ var buffer = Buffer.allocUnsafe(length)
var pos = 0
- for (i = 0; i < list.length; i++) {
- var item = list[i]
- item.copy(buf, pos)
- pos += item.length
+ for (i = 0; i < list.length; ++i) {
+ var buf = list[i]
+ if (!Buffer.isBuffer(buf)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+ buf.copy(buffer, pos)
+ pos += buf.length
}
- return buf
+ return buffer
}
function byteLength (string, encoding) {
- if (typeof string !== 'string') string = '' + string
+ if (Buffer.isBuffer(string)) {
+ return string.length
+ }
+ if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
+ (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
+ return string.byteLength
+ }
+ if (typeof string !== 'string') {
+ string = '' + string
+ }
var len = string.length
if (len === 0) return 0
@@ -8494,13 +9204,12 @@ function byteLength (string, encoding) {
for (;;) {
switch (encoding) {
case 'ascii':
+ case 'latin1':
case 'binary':
- // Deprecated
- case 'raw':
- case 'raws':
return len
case 'utf8':
case 'utf-8':
+ case undefined:
return utf8ToBytes(string).length
case 'ucs2':
case 'ucs-2':
@@ -8520,20 +9229,42 @@ function byteLength (string, encoding) {
}
Buffer.byteLength = byteLength
-// pre-set for values that may exist in the future
-Buffer.prototype.length = undefined
-Buffer.prototype.parent = undefined
-
function slowToString (encoding, start, end) {
var loweredCase = false
- start = start | 0
- end = end === undefined || end === Infinity ? this.length : end | 0
+ // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
+ // property of a typed array.
+
+ // This behaves neither like String nor Uint8Array in that we set start/end
+ // to their upper/lower bounds if the value passed is out of range.
+ // undefined is handled specially as per ECMA-262 6th Edition,
+ // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
+ if (start === undefined || start < 0) {
+ start = 0
+ }
+ // Return early if start > this.length. Done here to prevent potential uint32
+ // coercion fail below.
+ if (start > this.length) {
+ return ''
+ }
+
+ if (end === undefined || end > this.length) {
+ end = this.length
+ }
+
+ if (end <= 0) {
+ return ''
+ }
+
+ // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
+ end >>>= 0
+ start >>>= 0
+
+ if (end <= start) {
+ return ''
+ }
if (!encoding) encoding = 'utf8'
- if (start < 0) start = 0
- if (end > this.length) end = this.length
- if (end <= start) return ''
while (true) {
switch (encoding) {
@@ -8547,8 +9278,9 @@ function slowToString (encoding, start, end) {
case 'ascii':
return asciiSlice(this, start, end)
+ case 'latin1':
case 'binary':
- return binarySlice(this, start, end)
+ return latin1Slice(this, start, end)
case 'base64':
return base64Slice(this, start, end)
@@ -8567,6 +9299,53 @@ function slowToString (encoding, start, end) {
}
}
+// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
+// Buffer instances.
+Buffer.prototype._isBuffer = true
+
+function swap (b, n, m) {
+ var i = b[n]
+ b[n] = b[m]
+ b[m] = i
+}
+
+Buffer.prototype.swap16 = function swap16 () {
+ var len = this.length
+ if (len % 2 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 16-bits')
+ }
+ for (var i = 0; i < len; i += 2) {
+ swap(this, i, i + 1)
+ }
+ return this
+}
+
+Buffer.prototype.swap32 = function swap32 () {
+ var len = this.length
+ if (len % 4 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 32-bits')
+ }
+ for (var i = 0; i < len; i += 4) {
+ swap(this, i, i + 3)
+ swap(this, i + 1, i + 2)
+ }
+ return this
+}
+
+Buffer.prototype.swap64 = function swap64 () {
+ var len = this.length
+ if (len % 8 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 64-bits')
+ }
+ for (var i = 0; i < len; i += 8) {
+ swap(this, i, i + 7)
+ swap(this, i + 1, i + 6)
+ swap(this, i + 2, i + 5)
+ swap(this, i + 3, i + 4)
+ }
+ return this
+}
+
Buffer.prototype.toString = function toString () {
var length = this.length | 0
if (length === 0) return ''
@@ -8590,63 +9369,197 @@ Buffer.prototype.inspect = function inspect () {
return '<Buffer ' + str + '>'
}
-Buffer.prototype.compare = function compare (b) {
- if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
- if (this === b) return 0
- return Buffer.compare(this, b)
-}
+Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
+ if (!Buffer.isBuffer(target)) {
+ throw new TypeError('Argument must be a Buffer')
+ }
-Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
- if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff
- else if (byteOffset < -0x80000000) byteOffset = -0x80000000
- byteOffset >>= 0
+ if (start === undefined) {
+ start = 0
+ }
+ if (end === undefined) {
+ end = target ? target.length : 0
+ }
+ if (thisStart === undefined) {
+ thisStart = 0
+ }
+ if (thisEnd === undefined) {
+ thisEnd = this.length
+ }
+
+ if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
+ throw new RangeError('out of range index')
+ }
+
+ if (thisStart >= thisEnd && start >= end) {
+ return 0
+ }
+ if (thisStart >= thisEnd) {
+ return -1
+ }
+ if (start >= end) {
+ return 1
+ }
+
+ start >>>= 0
+ end >>>= 0
+ thisStart >>>= 0
+ thisEnd >>>= 0
+
+ if (this === target) return 0
- if (this.length === 0) return -1
- if (byteOffset >= this.length) return -1
+ var x = thisEnd - thisStart
+ var y = end - start
+ var len = Math.min(x, y)
+
+ var thisCopy = this.slice(thisStart, thisEnd)
+ var targetCopy = target.slice(start, end)
+
+ for (var i = 0; i < len; ++i) {
+ if (thisCopy[i] !== targetCopy[i]) {
+ x = thisCopy[i]
+ y = targetCopy[i]
+ break
+ }
+ }
- // Negative offsets start from the end of the buffer
- if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+}
+// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
+// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
+//
+// Arguments:
+// - buffer - a Buffer to search
+// - val - a string, Buffer, or number
+// - byteOffset - an index into `buffer`; will be clamped to an int32
+// - encoding - an optional encoding, relevant is val is a string
+// - dir - true for indexOf, false for lastIndexOf
+function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
+ // Empty buffer means no match
+ if (buffer.length === 0) return -1
+
+ // Normalize byteOffset
+ if (typeof byteOffset === 'string') {
+ encoding = byteOffset
+ byteOffset = 0
+ } else if (byteOffset > 0x7fffffff) {
+ byteOffset = 0x7fffffff
+ } else if (byteOffset < -0x80000000) {
+ byteOffset = -0x80000000
+ }
+ byteOffset = +byteOffset // Coerce to Number.
+ if (isNaN(byteOffset)) {
+ // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
+ byteOffset = dir ? 0 : (buffer.length - 1)
+ }
+
+ // Normalize byteOffset: negative offsets start from the end of the buffer
+ if (byteOffset < 0) byteOffset = buffer.length + byteOffset
+ if (byteOffset >= buffer.length) {
+ if (dir) return -1
+ else byteOffset = buffer.length - 1
+ } else if (byteOffset < 0) {
+ if (dir) byteOffset = 0
+ else return -1
+ }
+
+ // Normalize val
if (typeof val === 'string') {
- if (val.length === 0) return -1 // special case: looking for empty string always fails
- return String.prototype.indexOf.call(this, val, byteOffset)
+ val = Buffer.from(val, encoding)
}
+
+ // Finally, search either indexOf (if dir is true) or lastIndexOf
if (Buffer.isBuffer(val)) {
- return arrayIndexOf(this, val, byteOffset)
+ // Special case: looking for empty string/buffer always fails
+ if (val.length === 0) {
+ return -1
+ }
+ return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
+ } else if (typeof val === 'number') {
+ val = val & 0xFF // Search for a byte value [0-255]
+ if (Buffer.TYPED_ARRAY_SUPPORT &&
+ typeof Uint8Array.prototype.indexOf === 'function') {
+ if (dir) {
+ return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
+ } else {
+ return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
+ }
+ }
+ return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
}
- if (typeof val === 'number') {
- if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
- return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
+
+ throw new TypeError('val must be string, number or Buffer')
+}
+
+function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
+ var indexSize = 1
+ var arrLength = arr.length
+ var valLength = val.length
+
+ if (encoding !== undefined) {
+ encoding = String(encoding).toLowerCase()
+ if (encoding === 'ucs2' || encoding === 'ucs-2' ||
+ encoding === 'utf16le' || encoding === 'utf-16le') {
+ if (arr.length < 2 || val.length < 2) {
+ return -1
+ }
+ indexSize = 2
+ arrLength /= 2
+ valLength /= 2
+ byteOffset /= 2
+ }
+ }
+
+ function read (buf, i) {
+ if (indexSize === 1) {
+ return buf[i]
+ } else {
+ return buf.readUInt16BE(i * indexSize)
}
- return arrayIndexOf(this, [ val ], byteOffset)
}
- function arrayIndexOf (arr, val, byteOffset) {
+ var i
+ if (dir) {
var foundIndex = -1
- for (var i = 0; byteOffset + i < arr.length; i++) {
- if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {
+ for (i = byteOffset; i < arrLength; i++) {
+ if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
if (foundIndex === -1) foundIndex = i
- if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex
+ if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
} else {
+ if (foundIndex !== -1) i -= i - foundIndex
foundIndex = -1
}
}
- return -1
+ } else {
+ if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
+ for (i = byteOffset; i >= 0; i--) {
+ var found = true
+ for (var j = 0; j < valLength; j++) {
+ if (read(arr, i + j) !== read(val, j)) {
+ found = false
+ break
+ }
+ }
+ if (found) return i
+ }
}
- throw new TypeError('val must be string, number or Buffer')
+ return -1
}
-// `get` is deprecated
-Buffer.prototype.get = function get (offset) {
- console.log('.get() is deprecated. Access using array indexes instead.')
- return this.readUInt8(offset)
+Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
+ return this.indexOf(val, byteOffset, encoding) !== -1
}
-// `set` is deprecated
-Buffer.prototype.set = function set (v, offset) {
- console.log('.set() is deprecated. Access using array indexes instead.')
- return this.writeUInt8(v, offset)
+Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
+}
+
+Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
}
function hexWrite (buf, string, offset, length) {
@@ -8663,14 +9576,14 @@ function hexWrite (buf, string, offset, length) {
// must be an even number of digits
var strLen = string.length
- if (strLen % 2 !== 0) throw new Error('Invalid hex string')
+ if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
if (length > strLen / 2) {
length = strLen / 2
}
- for (var i = 0; i < length; i++) {
+ for (var i = 0; i < length; ++i) {
var parsed = parseInt(string.substr(i * 2, 2), 16)
- if (isNaN(parsed)) throw new Error('Invalid hex string')
+ if (isNaN(parsed)) return i
buf[offset + i] = parsed
}
return i
@@ -8684,7 +9597,7 @@ function asciiWrite (buf, string, offset, length) {
return blitBuffer(asciiToBytes(string), buf, offset, length)
}
-function binaryWrite (buf, string, offset, length) {
+function latin1Write (buf, string, offset, length) {
return asciiWrite(buf, string, offset, length)
}
@@ -8719,17 +9632,16 @@ Buffer.prototype.write = function write (string, offset, length, encoding) {
}
// legacy write(string, encoding, offset, length) - remove in v0.13
} else {
- var swap = encoding
- encoding = offset
- offset = length | 0
- length = swap
+ throw new Error(
+ 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
+ )
}
var remaining = this.length - offset
if (length === undefined || length > remaining) length = remaining
if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
- throw new RangeError('attempt to write outside buffer bounds')
+ throw new RangeError('Attempt to write outside buffer bounds')
}
if (!encoding) encoding = 'utf8'
@@ -8747,8 +9659,9 @@ Buffer.prototype.write = function write (string, offset, length, encoding) {
case 'ascii':
return asciiWrite(this, string, offset, length)
+ case 'latin1':
case 'binary':
- return binaryWrite(this, string, offset, length)
+ return latin1Write(this, string, offset, length)
case 'base64':
// Warning: maxLength not taken into account in base64Write
@@ -8883,17 +9796,17 @@ function asciiSlice (buf, start, end) {
var ret = ''
end = Math.min(buf.length, end)
- for (var i = start; i < end; i++) {
+ for (var i = start; i < end; ++i) {
ret += String.fromCharCode(buf[i] & 0x7F)
}
return ret
}
-function binarySlice (buf, start, end) {
+function latin1Slice (buf, start, end) {
var ret = ''
end = Math.min(buf.length, end)
- for (var i = start; i < end; i++) {
+ for (var i = start; i < end; ++i) {
ret += String.fromCharCode(buf[i])
}
return ret
@@ -8906,7 +9819,7 @@ function hexSlice (buf, start, end) {
if (!end || end < 0 || end > len) end = len
var out = ''
- for (var i = start; i < end; i++) {
+ for (var i = start; i < end; ++i) {
out += toHex(buf[i])
}
return out
@@ -8944,17 +9857,16 @@ Buffer.prototype.slice = function slice (start, end) {
var newBuf
if (Buffer.TYPED_ARRAY_SUPPORT) {
- newBuf = Buffer._augment(this.subarray(start, end))
+ newBuf = this.subarray(start, end)
+ newBuf.__proto__ = Buffer.prototype
} else {
var sliceLen = end - start
newBuf = new Buffer(sliceLen, undefined)
- for (var i = 0; i < sliceLen; i++) {
+ for (var i = 0; i < sliceLen; ++i) {
newBuf[i] = this[i + start]
}
}
- if (newBuf.length) newBuf.parent = this.parent || this
-
return newBuf
}
@@ -9123,16 +10035,19 @@ Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
}
function checkInt (buf, value, offset, ext, max, min) {
- if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
- if (value > max || value < min) throw new RangeError('value is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('index out of range')
+ if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
+ if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
}
Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
value = +value
offset = offset | 0
byteLength = byteLength | 0
- if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
var mul = 1
var i = 0
@@ -9148,7 +10063,10 @@ Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength,
value = +value
offset = offset | 0
byteLength = byteLength | 0
- if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
var i = byteLength - 1
var mul = 1
@@ -9171,7 +10089,7 @@ Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
function objectWriteUInt16 (buf, value, offset, littleEndian) {
if (value < 0) value = 0xffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {
+ for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
(littleEndian ? i : 1 - i) * 8
}
@@ -9205,7 +10123,7 @@ Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert
function objectWriteUInt32 (buf, value, offset, littleEndian) {
if (value < 0) value = 0xffffffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {
+ for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
}
}
@@ -9251,9 +10169,12 @@ Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, no
var i = 0
var mul = 1
- var sub = value < 0 ? 1 : 0
+ var sub = 0
this[offset] = value & 0xFF
while (++i < byteLength && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
+ sub = 1
+ }
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
}
@@ -9271,9 +10192,12 @@ Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, no
var i = byteLength - 1
var mul = 1
- var sub = value < 0 ? 1 : 0
+ var sub = 0
this[offset + i] = value & 0xFF
while (--i >= 0 && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
+ sub = 1
+ }
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
}
@@ -9348,9 +10272,8 @@ Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert)
}
function checkIEEE754 (buf, value, offset, ext, max, min) {
- if (value > max || value < min) throw new RangeError('value is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('index out of range')
- if (offset < 0) throw new RangeError('index out of range')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ if (offset < 0) throw new RangeError('Index out of range')
}
function writeFloat (buf, value, offset, littleEndian, noAssert) {
@@ -9415,143 +10338,91 @@ Buffer.prototype.copy = function copy (target, targetStart, start, end) {
if (this === target && start < targetStart && targetStart < end) {
// descending copy from end
- for (i = len - 1; i >= 0; i--) {
+ for (i = len - 1; i >= 0; --i) {
target[i + targetStart] = this[i + start]
}
} else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
// ascending copy from start
- for (i = 0; i < len; i++) {
+ for (i = 0; i < len; ++i) {
target[i + targetStart] = this[i + start]
}
} else {
- target._set(this.subarray(start, start + len), targetStart)
+ Uint8Array.prototype.set.call(
+ target,
+ this.subarray(start, start + len),
+ targetStart
+ )
}
return len
}
-// fill(value, start=0, end=buffer.length)
-Buffer.prototype.fill = function fill (value, start, end) {
- if (!value) value = 0
- if (!start) start = 0
- if (!end) end = this.length
+// Usage:
+// buffer.fill(number[, offset[, end]])
+// buffer.fill(buffer[, offset[, end]])
+// buffer.fill(string[, offset[, end]][, encoding])
+Buffer.prototype.fill = function fill (val, start, end, encoding) {
+ // Handle string cases:
+ if (typeof val === 'string') {
+ if (typeof start === 'string') {
+ encoding = start
+ start = 0
+ end = this.length
+ } else if (typeof end === 'string') {
+ encoding = end
+ end = this.length
+ }
+ if (val.length === 1) {
+ var code = val.charCodeAt(0)
+ if (code < 256) {
+ val = code
+ }
+ }
+ if (encoding !== undefined && typeof encoding !== 'string') {
+ throw new TypeError('encoding must be a string')
+ }
+ if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+ } else if (typeof val === 'number') {
+ val = val & 255
+ }
- if (end < start) throw new RangeError('end < start')
+ // Invalid ranges are not set to a default, so can range check early.
+ if (start < 0 || this.length < start || this.length < end) {
+ throw new RangeError('Out of range index')
+ }
+
+ if (end <= start) {
+ return this
+ }
- // Fill 0 bytes; we're done
- if (end === start) return
- if (this.length === 0) return
+ start = start >>> 0
+ end = end === undefined ? this.length : end >>> 0
- if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')
- if (end < 0 || end > this.length) throw new RangeError('end out of bounds')
+ if (!val) val = 0
var i
- if (typeof value === 'number') {
- for (i = start; i < end; i++) {
- this[i] = value
+ if (typeof val === 'number') {
+ for (i = start; i < end; ++i) {
+ this[i] = val
}
} else {
- var bytes = utf8ToBytes(value.toString())
+ var bytes = Buffer.isBuffer(val)
+ ? val
+ : utf8ToBytes(new Buffer(val, encoding).toString())
var len = bytes.length
- for (i = start; i < end; i++) {
- this[i] = bytes[i % len]
+ for (i = 0; i < end - start; ++i) {
+ this[i + start] = bytes[i % len]
}
}
return this
}
-/**
- * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
- * Added in Node 0.12. Only available in browsers that support ArrayBuffer.
- */
-Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
- if (typeof Uint8Array !== 'undefined') {
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- return (new Buffer(this)).buffer
- } else {
- var buf = new Uint8Array(this.length)
- for (var i = 0, len = buf.length; i < len; i += 1) {
- buf[i] = this[i]
- }
- return buf.buffer
- }
- } else {
- throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
- }
-}
-
// HELPER FUNCTIONS
// ================
-var BP = Buffer.prototype
-
-/**
- * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
- */
-Buffer._augment = function _augment (arr) {
- arr.constructor = Buffer
- arr._isBuffer = true
-
- // save reference to original Uint8Array set method before overwriting
- arr._set = arr.set
-
- // deprecated
- arr.get = BP.get
- arr.set = BP.set
-
- arr.write = BP.write
- arr.toString = BP.toString
- arr.toLocaleString = BP.toString
- arr.toJSON = BP.toJSON
- arr.equals = BP.equals
- arr.compare = BP.compare
- arr.indexOf = BP.indexOf
- arr.copy = BP.copy
- arr.slice = BP.slice
- arr.readUIntLE = BP.readUIntLE
- arr.readUIntBE = BP.readUIntBE
- arr.readUInt8 = BP.readUInt8
- arr.readUInt16LE = BP.readUInt16LE
- arr.readUInt16BE = BP.readUInt16BE
- arr.readUInt32LE = BP.readUInt32LE
- arr.readUInt32BE = BP.readUInt32BE
- arr.readIntLE = BP.readIntLE
- arr.readIntBE = BP.readIntBE
- arr.readInt8 = BP.readInt8
- arr.readInt16LE = BP.readInt16LE
- arr.readInt16BE = BP.readInt16BE
- arr.readInt32LE = BP.readInt32LE
- arr.readInt32BE = BP.readInt32BE
- arr.readFloatLE = BP.readFloatLE
- arr.readFloatBE = BP.readFloatBE
- arr.readDoubleLE = BP.readDoubleLE
- arr.readDoubleBE = BP.readDoubleBE
- arr.writeUInt8 = BP.writeUInt8
- arr.writeUIntLE = BP.writeUIntLE
- arr.writeUIntBE = BP.writeUIntBE
- arr.writeUInt16LE = BP.writeUInt16LE
- arr.writeUInt16BE = BP.writeUInt16BE
- arr.writeUInt32LE = BP.writeUInt32LE
- arr.writeUInt32BE = BP.writeUInt32BE
- arr.writeIntLE = BP.writeIntLE
- arr.writeIntBE = BP.writeIntBE
- arr.writeInt8 = BP.writeInt8
- arr.writeInt16LE = BP.writeInt16LE
- arr.writeInt16BE = BP.writeInt16BE
- arr.writeInt32LE = BP.writeInt32LE
- arr.writeInt32BE = BP.writeInt32BE
- arr.writeFloatLE = BP.writeFloatLE
- arr.writeFloatBE = BP.writeFloatBE
- arr.writeDoubleLE = BP.writeDoubleLE
- arr.writeDoubleBE = BP.writeDoubleBE
- arr.fill = BP.fill
- arr.inspect = BP.inspect
- arr.toArrayBuffer = BP.toArrayBuffer
-
- return arr
-}
-
var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
function base64clean (str) {
@@ -9583,7 +10454,7 @@ function utf8ToBytes (string, units) {
var leadSurrogate = null
var bytes = []
- for (var i = 0; i < length; i++) {
+ for (var i = 0; i < length; ++i) {
codePoint = string.charCodeAt(i)
// is surrogate component
@@ -9615,7 +10486,7 @@ function utf8ToBytes (string, units) {
}
// valid surrogate pair
- codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000
+ codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
} else if (leadSurrogate) {
// valid bmp char, but last char was a lead
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
@@ -9658,7 +10529,7 @@ function utf8ToBytes (string, units) {
function asciiToBytes (str) {
var byteArray = []
- for (var i = 0; i < str.length; i++) {
+ for (var i = 0; i < str.length; ++i) {
// Node's code seems to be doing this and not & 0x7F..
byteArray.push(str.charCodeAt(i) & 0xFF)
}
@@ -9668,7 +10539,7 @@ function asciiToBytes (str) {
function utf16leToBytes (str, units) {
var c, hi, lo
var byteArray = []
- for (var i = 0; i < str.length; i++) {
+ for (var i = 0; i < str.length; ++i) {
if ((units -= 2) < 0) break
c = str.charCodeAt(i)
@@ -9686,3062 +10557,282 @@ function base64ToBytes (str) {
}
function blitBuffer (src, dst, offset, length) {
- for (var i = 0; i < length; i++) {
+ for (var i = 0; i < length; ++i) {
if ((i + offset >= dst.length) || (i >= src.length)) break
dst[i + offset] = src[i]
}
return i
}
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"base64-js":3,"ieee754":4,"is-array":5}],3:[function(require,module,exports){
-var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
-
-;(function (exports) {
- 'use strict';
-
- var Arr = (typeof Uint8Array !== 'undefined')
- ? Uint8Array
- : Array
-
- var PLUS = '+'.charCodeAt(0)
- var SLASH = '/'.charCodeAt(0)
- var NUMBER = '0'.charCodeAt(0)
- var LOWER = 'a'.charCodeAt(0)
- var UPPER = 'A'.charCodeAt(0)
- var PLUS_URL_SAFE = '-'.charCodeAt(0)
- var SLASH_URL_SAFE = '_'.charCodeAt(0)
-
- function decode (elt) {
- var code = elt.charCodeAt(0)
- if (code === PLUS ||
- code === PLUS_URL_SAFE)
- return 62 // '+'
- if (code === SLASH ||
- code === SLASH_URL_SAFE)
- return 63 // '/'
- if (code < NUMBER)
- return -1 //no match
- if (code < NUMBER + 10)
- return code - NUMBER + 26 + 26
- if (code < UPPER + 26)
- return code - UPPER
- if (code < LOWER + 26)
- return code - LOWER + 26
- }
-
- function b64ToByteArray (b64) {
- var i, j, l, tmp, placeHolders, arr
-
- if (b64.length % 4 > 0) {
- throw new Error('Invalid string. Length must be a multiple of 4')
- }
-
- // the number of equal signs (place holders)
- // if there are two placeholders, than the two characters before it
- // represent one byte
- // if there is only one, then the three characters before it represent 2 bytes
- // this is just a cheap hack to not do indexOf twice
- var len = b64.length
- placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0
-
- // base64 is 4/3 + up to two characters of the original data
- arr = new Arr(b64.length * 3 / 4 - placeHolders)
-
- // if there are placeholders, only get up to the last complete 4 chars
- l = placeHolders > 0 ? b64.length - 4 : b64.length
-
- var L = 0
-
- function push (v) {
- arr[L++] = v
- }
-
- for (i = 0, j = 0; i < l; i += 4, j += 3) {
- tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))
- push((tmp & 0xFF0000) >> 16)
- push((tmp & 0xFF00) >> 8)
- push(tmp & 0xFF)
- }
-
- if (placeHolders === 2) {
- tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)
- push(tmp & 0xFF)
- } else if (placeHolders === 1) {
- tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)
- push((tmp >> 8) & 0xFF)
- push(tmp & 0xFF)
- }
-
- return arr
- }
-
- function uint8ToBase64 (uint8) {
- var i,
- extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
- output = "",
- temp, length
-
- function encode (num) {
- return lookup.charAt(num)
- }
-
- function tripletToBase64 (num) {
- return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)
- }
-
- // go through the array every three bytes, we'll deal with trailing stuff later
- for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
- temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
- output += tripletToBase64(temp)
- }
-
- // pad the end with zeros, but make sure to not forget the extra bytes
- switch (extraBytes) {
- case 1:
- temp = uint8[uint8.length - 1]
- output += encode(temp >> 2)
- output += encode((temp << 4) & 0x3F)
- output += '=='
- break
- case 2:
- temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])
- output += encode(temp >> 10)
- output += encode((temp >> 4) & 0x3F)
- output += encode((temp << 2) & 0x3F)
- output += '='
- break
- }
-
- return output
- }
-
- exports.toByteArray = b64ToByteArray
- exports.fromByteArray = uint8ToBase64
-}(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
-
-},{}],4:[function(require,module,exports){
-exports.read = function (buffer, offset, isLE, mLen, nBytes) {
- var e, m
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var nBits = -7
- var i = isLE ? (nBytes - 1) : 0
- var d = isLE ? -1 : 1
- var s = buffer[offset + i]
-
- i += d
-
- e = s & ((1 << (-nBits)) - 1)
- s >>= (-nBits)
- nBits += eLen
- for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- m = e & ((1 << (-nBits)) - 1)
- e >>= (-nBits)
- nBits += mLen
- for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- if (e === 0) {
- e = 1 - eBias
- } else if (e === eMax) {
- return m ? NaN : ((s ? -1 : 1) * Infinity)
- } else {
- m = m + Math.pow(2, mLen)
- e = e - eBias
- }
- return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+function isnan (val) {
+ return val !== val // eslint-disable-line no-self-compare
}
-exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
- var e, m, c
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
- var i = isLE ? 0 : (nBytes - 1)
- var d = isLE ? 1 : -1
- var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
-
- value = Math.abs(value)
-
- if (isNaN(value) || value === Infinity) {
- m = isNaN(value) ? 1 : 0
- e = eMax
- } else {
- e = Math.floor(Math.log(value) / Math.LN2)
- if (value * (c = Math.pow(2, -e)) < 1) {
- e--
- c *= 2
- }
- if (e + eBias >= 1) {
- value += rt / c
- } else {
- value += rt * Math.pow(2, 1 - eBias)
- }
- if (value * c >= 2) {
- e++
- c /= 2
- }
-
- if (e + eBias >= eMax) {
- m = 0
- e = eMax
- } else if (e + eBias >= 1) {
- m = (value * c - 1) * Math.pow(2, mLen)
- e = e + eBias
- } else {
- m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
- e = 0
- }
- }
-
- for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
-
- e = (e << mLen) | m
- eLen += mLen
- for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
-
- buffer[offset + i - d] |= s * 128
-}
-
-},{}],5:[function(require,module,exports){
-
-/**
- * isArray
- */
-
-var isArray = Array.isArray;
-
-/**
- * toString
- */
-
-var str = Object.prototype.toString;
-
-/**
- * Whether or not the given `val`
- * is an array.
- *
- * example:
- *
- * isArray([]);
- * // > true
- * isArray(arguments);
- * // > false
- * isArray('');
- * // > false
- *
- * @param {mixed} val
- * @return {bool}
- */
-
-module.exports = isArray || function (val) {
- return !! val && '[object Array]' == str.call(val);
-};
-
-},{}],6:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-function EventEmitter() {
- this._events = this._events || {};
- this._maxListeners = this._maxListeners || undefined;
-}
-module.exports = EventEmitter;
-
-// Backwards-compat with node 0.10.x
-EventEmitter.EventEmitter = EventEmitter;
-
-EventEmitter.prototype._events = undefined;
-EventEmitter.prototype._maxListeners = undefined;
-
-// By default EventEmitters will print a warning if more than 10 listeners are
-// added to it. This is a useful default which helps finding memory leaks.
-EventEmitter.defaultMaxListeners = 10;
-
-// Obviously not all Emitters should be limited to 10. This function allows
-// that to be increased. Set to zero for unlimited.
-EventEmitter.prototype.setMaxListeners = function(n) {
- if (!isNumber(n) || n < 0 || isNaN(n))
- throw TypeError('n must be a positive number');
- this._maxListeners = n;
- return this;
-};
-
-EventEmitter.prototype.emit = function(type) {
- var er, handler, len, args, i, listeners;
-
- if (!this._events)
- this._events = {};
-
- // If there is no 'error' event listener then throw.
- if (type === 'error') {
- if (!this._events.error ||
- (isObject(this._events.error) && !this._events.error.length)) {
- er = arguments[1];
- if (er instanceof Error) {
- throw er; // Unhandled 'error' event
- }
- throw TypeError('Uncaught, unspecified "error" event.');
- }
- }
-
- handler = this._events[type];
-
- if (isUndefined(handler))
- return false;
-
- if (isFunction(handler)) {
- switch (arguments.length) {
- // fast cases
- case 1:
- handler.call(this);
- break;
- case 2:
- handler.call(this, arguments[1]);
- break;
- case 3:
- handler.call(this, arguments[1], arguments[2]);
- break;
- // slower
- default:
- len = arguments.length;
- args = new Array(len - 1);
- for (i = 1; i < len; i++)
- args[i - 1] = arguments[i];
- handler.apply(this, args);
- }
- } else if (isObject(handler)) {
- len = arguments.length;
- args = new Array(len - 1);
- for (i = 1; i < len; i++)
- args[i - 1] = arguments[i];
-
- listeners = handler.slice();
- len = listeners.length;
- for (i = 0; i < len; i++)
- listeners[i].apply(this, args);
- }
-
- return true;
-};
-
-EventEmitter.prototype.addListener = function(type, listener) {
- var m;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events)
- this._events = {};
-
- // To avoid recursion in the case that type === "newListener"! Before
- // adding it to the listeners, first emit "newListener".
- if (this._events.newListener)
- this.emit('newListener', type,
- isFunction(listener.listener) ?
- listener.listener : listener);
-
- if (!this._events[type])
- // Optimize the case of one listener. Don't need the extra array object.
- this._events[type] = listener;
- else if (isObject(this._events[type]))
- // If we've already got an array, just append.
- this._events[type].push(listener);
- else
- // Adding the second element, need to change to array.
- this._events[type] = [this._events[type], listener];
-
- // Check for listener leak
- if (isObject(this._events[type]) && !this._events[type].warned) {
- var m;
- if (!isUndefined(this._maxListeners)) {
- m = this._maxListeners;
- } else {
- m = EventEmitter.defaultMaxListeners;
- }
-
- if (m && m > 0 && this._events[type].length > m) {
- this._events[type].warned = true;
- console.error('(node) warning: possible EventEmitter memory ' +
- 'leak detected. %d listeners added. ' +
- 'Use emitter.setMaxListeners() to increase limit.',
- this._events[type].length);
- if (typeof console.trace === 'function') {
- // not supported in IE 10
- console.trace();
- }
- }
- }
-
- return this;
-};
-
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-
-EventEmitter.prototype.once = function(type, listener) {
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- var fired = false;
-
- function g() {
- this.removeListener(type, g);
-
- if (!fired) {
- fired = true;
- listener.apply(this, arguments);
- }
- }
-
- g.listener = listener;
- this.on(type, g);
-
- return this;
-};
-
-// emits a 'removeListener' event iff the listener was removed
-EventEmitter.prototype.removeListener = function(type, listener) {
- var list, position, length, i;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events || !this._events[type])
- return this;
-
- list = this._events[type];
- length = list.length;
- position = -1;
-
- if (list === listener ||
- (isFunction(list.listener) && list.listener === listener)) {
- delete this._events[type];
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
-
- } else if (isObject(list)) {
- for (i = length; i-- > 0;) {
- if (list[i] === listener ||
- (list[i].listener && list[i].listener === listener)) {
- position = i;
- break;
- }
- }
-
- if (position < 0)
- return this;
-
- if (list.length === 1) {
- list.length = 0;
- delete this._events[type];
- } else {
- list.splice(position, 1);
- }
-
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
- }
-
- return this;
-};
-
-EventEmitter.prototype.removeAllListeners = function(type) {
- var key, listeners;
-
- if (!this._events)
- return this;
-
- // not listening for removeListener, no need to emit
- if (!this._events.removeListener) {
- if (arguments.length === 0)
- this._events = {};
- else if (this._events[type])
- delete this._events[type];
- return this;
- }
-
- // emit removeListener for all listeners on all events
- if (arguments.length === 0) {
- for (key in this._events) {
- if (key === 'removeListener') continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners('removeListener');
- this._events = {};
- return this;
- }
-
- listeners = this._events[type];
-
- if (isFunction(listeners)) {
- this.removeListener(type, listeners);
- } else {
- // LIFO order
- while (listeners.length)
- this.removeListener(type, listeners[listeners.length - 1]);
- }
- delete this._events[type];
-
- return this;
-};
-
-EventEmitter.prototype.listeners = function(type) {
- var ret;
- if (!this._events || !this._events[type])
- ret = [];
- else if (isFunction(this._events[type]))
- ret = [this._events[type]];
- else
- ret = this._events[type].slice();
- return ret;
-};
-
-EventEmitter.listenerCount = function(emitter, type) {
- var ret;
- if (!emitter._events || !emitter._events[type])
- ret = 0;
- else if (isFunction(emitter._events[type]))
- ret = 1;
- else
- ret = emitter._events[type].length;
- return ret;
-};
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-
-},{}],7:[function(require,module,exports){
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
-}
-
-},{}],8:[function(require,module,exports){
-/**
- * Determine if an object is Buffer
- *
- * Author: Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * License: MIT
- *
- * `npm install is-buffer`
- */
-
-module.exports = function (obj) {
- return !!(obj != null &&
- (obj._isBuffer || // For Safari 5-7 (missing Object.prototype.constructor)
- (obj.constructor &&
- typeof obj.constructor.isBuffer === 'function' &&
- obj.constructor.isBuffer(obj))
- ))
-}
-
-},{}],9:[function(require,module,exports){
-module.exports = Array.isArray || function (arr) {
- return Object.prototype.toString.call(arr) == '[object Array]';
-};
-
-},{}],10:[function(require,module,exports){
-// shim for using process in browser
-
-var process = module.exports = {};
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
-}
-
-function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = setTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- clearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- setTimeout(drainQueue, 0);
- }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
- this.fun = fun;
- this.array = array;
-}
-Item.prototype.run = function () {
- this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-
-process.binding = function (name) {
- throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
-
-},{}],11:[function(require,module,exports){
-(function (global){
-/*! https://mths.be/punycode v1.3.2 by @mathias */
-;(function(root) {
-
- /** Detect free variables */
- var freeExports = typeof exports == 'object' && exports &&
- !exports.nodeType && exports;
- var freeModule = typeof module == 'object' && module &&
- !module.nodeType && module;
- var freeGlobal = typeof global == 'object' && global;
- if (
- freeGlobal.global === freeGlobal ||
- freeGlobal.window === freeGlobal ||
- freeGlobal.self === freeGlobal
- ) {
- root = freeGlobal;
- }
-
- /**
- * The `punycode` object.
- * @name punycode
- * @type Object
- */
- var punycode,
-
- /** Highest positive signed 32-bit float value */
- maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
-
- /** Bootstring parameters */
- base = 36,
- tMin = 1,
- tMax = 26,
- skew = 38,
- damp = 700,
- initialBias = 72,
- initialN = 128, // 0x80
- delimiter = '-', // '\x2D'
-
- /** Regular expressions */
- regexPunycode = /^xn--/,
- regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
- regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
-
- /** Error messages */
- errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
- },
-
- /** Convenience shortcuts */
- baseMinusTMin = base - tMin,
- floor = Math.floor,
- stringFromCharCode = String.fromCharCode,
-
- /** Temporary variable */
- key;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
- function error(type) {
- throw RangeError(errors[type]);
- }
-
- /**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
- function map(array, fn) {
- var length = array.length;
- var result = [];
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
- }
-
- /**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
- function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
- }
-
- /**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
- function ucs2decode(string) {
- var output = [],
- counter = 0,
- length = string.length,
- value,
- extra;
- while (counter < length) {
- value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // high surrogate, and there is a next character
- extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // low surrogate
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // unmatched surrogate; only append this code unit, in case the next
- // code unit is the high surrogate of a surrogate pair
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
- }
-
- /**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
- function ucs2encode(array) {
- return map(array, function(value) {
- var output = '';
- if (value > 0xFFFF) {
- value -= 0x10000;
- output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
- value = 0xDC00 | value & 0x3FF;
- }
- output += stringFromCharCode(value);
- return output;
- }).join('');
- }
-
- /**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
- function basicToDigit(codePoint) {
- if (codePoint - 48 < 10) {
- return codePoint - 22;
- }
- if (codePoint - 65 < 26) {
- return codePoint - 65;
- }
- if (codePoint - 97 < 26) {
- return codePoint - 97;
- }
- return base;
- }
-
- /**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
- function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
- }
-
- /**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * http://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
- function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
- }
-
- /**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
- function decode(input) {
- // Don't use UCS-2
- var output = [],
- inputLength = input.length,
- out,
- i = 0,
- n = initialN,
- bias = initialBias,
- basic,
- j,
- index,
- oldi,
- w,
- k,
- digit,
- t,
- /** Cached calculation results */
- baseMinusT;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output
- output.splice(i++, 0, n);
-
- }
-
- return ucs2encode(output);
- }
-
- /**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
- function encode(input) {
- var n,
- delta,
- handledCPCount,
- basicLength,
- bias,
- j,
- m,
- q,
- k,
- t,
- currentValue,
- output = [],
- /** `inputLength` will hold the number of code points in `input`. */
- inputLength,
- /** Cached calculation results */
- handledCPCountPlusOne,
- baseMinusT,
- qMinusT;
-
- // Convert the input in UCS-2 to Unicode
- input = ucs2decode(input);
-
- // Cache the length
- inputLength = input.length;
-
- // Initialize the state
- n = initialN;
- delta = 0;
- bias = initialBias;
-
- // Handle the basic code points
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- handledCPCount = basicLength = output.length;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string - if it is not empty - with a delimiter
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- for (m = maxInt, j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow
- handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
-
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
-
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer
- for (q = delta, k = base; /* no condition */; k += base) {
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- qMinusT = q - t;
- baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
- }
-
- /**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
- function toUnicode(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
- }
-
- /**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
- function toASCII(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Define the public API */
- punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '1.3.2',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
- };
-
- /** Expose `punycode` */
- // Some AMD build optimizers, like r.js, check for specific condition patterns
- // like the following:
- if (
- typeof define == 'function' &&
- typeof define.amd == 'object' &&
- define.amd
- ) {
- define('punycode', function() {
- return punycode;
- });
- } else if (freeExports && freeModule) {
- if (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+
- freeModule.exports = punycode;
- } else { // in Narwhal or RingoJS v0.7.0-
- for (key in punycode) {
- punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
- }
- }
- } else { // in Rhino or a web browser
- root.punycode = punycode;
- }
-
-}(this));
-
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],12:[function(require,module,exports){
-module.exports = require("./lib/_stream_duplex.js")
-
-},{"./lib/_stream_duplex.js":13}],13:[function(require,module,exports){
-// a duplex stream is just a stream that is both readable and writable.
-// Since JS doesn't have multiple prototypal inheritance, this class
-// prototypally inherits from Readable, and then parasitically from
-// Writable.
-
-'use strict';
-
-/*<replacement>*/
-var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
-}
-/*</replacement>*/
-
-
-module.exports = Duplex;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-var Readable = require('./_stream_readable');
-var Writable = require('./_stream_writable');
-
-util.inherits(Duplex, Readable);
-
-var keys = objectKeys(Writable.prototype);
-for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method])
- Duplex.prototype[method] = Writable.prototype[method];
-}
-
-function Duplex(options) {
- if (!(this instanceof Duplex))
- return new Duplex(options);
-
- Readable.call(this, options);
- Writable.call(this, options);
-
- if (options && options.readable === false)
- this.readable = false;
-
- if (options && options.writable === false)
- this.writable = false;
-
- this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false)
- this.allowHalfOpen = false;
-
- this.once('end', onend);
-}
-
-// the no-half-open enforcer
-function onend() {
- // if we allow half-open state, or if the writable side ended,
- // then we're ok.
- if (this.allowHalfOpen || this._writableState.ended)
- return;
-
- // no more data can be written.
- // But allow more writes to happen in this tick.
- processNextTick(onEndNT, this);
-}
-
-function onEndNT(self) {
- self.end();
-}
-
-function forEach (xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-
-},{"./_stream_readable":15,"./_stream_writable":17,"core-util-is":18,"inherits":7,"process-nextick-args":19}],14:[function(require,module,exports){
-// a passthrough stream.
-// basically just the most minimal sort of Transform stream.
-// Every written chunk gets output as-is.
-
-'use strict';
-
-module.exports = PassThrough;
-
-var Transform = require('./_stream_transform');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(PassThrough, Transform);
-
-function PassThrough(options) {
- if (!(this instanceof PassThrough))
- return new PassThrough(options);
-
- Transform.call(this, options);
-}
-
-PassThrough.prototype._transform = function(chunk, encoding, cb) {
- cb(null, chunk);
-};
-
-},{"./_stream_transform":16,"core-util-is":18,"inherits":7}],15:[function(require,module,exports){
-(function (process){
-'use strict';
-
-module.exports = Readable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var isArray = require('isarray');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
-
-Readable.ReadableState = ReadableState;
-
-var EE = require('events');
-
-/*<replacement>*/
-var EElistenerCount = function(emitter, type) {
- return emitter.listeners(type).length;
-};
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var debugUtil = require('util');
-var debug;
-if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
-} else {
- debug = function () {};
-}
-/*</replacement>*/
-
-var StringDecoder;
-
-util.inherits(Readable, Stream);
-
-function ReadableState(options, stream) {
- var Duplex = require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.readableObjectMode;
-
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
-
- this.buffer = [];
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // when piping, we only care about 'readable' events that happen
- // after read()ing all the bytes and not getting any pushback.
- this.ranOut = false;
-
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
-
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
-
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
-}
-
-function Readable(options) {
- var Duplex = require('./_stream_duplex');
-
- if (!(this instanceof Readable))
- return new Readable(options);
-
- this._readableState = new ReadableState(options, this);
-
- // legacy
- this.readable = true;
-
- if (options && typeof options.read === 'function')
- this._read = options.read;
-
- Stream.call(this);
-}
-
-// Manually shove something into the read() buffer.
-// This returns true if the highWaterMark has not been hit yet,
-// similar to how Writable.write() returns true if you should
-// write() some more.
-Readable.prototype.push = function(chunk, encoding) {
- var state = this._readableState;
-
- if (!state.objectMode && typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = new Buffer(chunk, encoding);
- encoding = '';
- }
- }
-
- return readableAddChunk(this, state, chunk, encoding, false);
-};
-
-// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function(chunk) {
- var state = this._readableState;
- return readableAddChunk(this, state, chunk, '', true);
-};
-
-Readable.prototype.isPaused = function() {
- return this._readableState.flowing === false;
-};
-
-function readableAddChunk(stream, state, chunk, encoding, addToFront) {
- var er = chunkInvalid(state, chunk);
- if (er) {
- stream.emit('error', er);
- } else if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (state.ended && !addToFront) {
- var e = new Error('stream.push() after EOF');
- stream.emit('error', e);
- } else if (state.endEmitted && addToFront) {
- var e = new Error('stream.unshift() after end event');
- stream.emit('error', e);
- } else {
- if (state.decoder && !addToFront && !encoding)
- chunk = state.decoder.write(chunk);
-
- if (!addToFront)
- state.reading = false;
-
- // if we want the data now, just emit it.
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront)
- state.buffer.unshift(chunk);
- else
- state.buffer.push(chunk);
-
- if (state.needReadable)
- emitReadable(stream);
- }
-
- maybeReadMore(stream, state);
- }
- } else if (!addToFront) {
- state.reading = false;
- }
-
- return needMoreData(state);
-}
-
-
-// if it's past the high water mark, we can push in some more.
-// Also, if we have no data yet, we can stand some
-// more bytes. This is to work around cases where hwm=0,
-// such as the repl. Also, if the push() triggered a
-// readable event, and the user called read(largeNumber) such that
-// needReadable was set, then we ought to push more, so that another
-// 'readable' event will be triggered.
-function needMoreData(state) {
- return !state.ended &&
- (state.needReadable ||
- state.length < state.highWaterMark ||
- state.length === 0);
-}
-
-// backwards compatibility.
-Readable.prototype.setEncoding = function(enc) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
- this._readableState.decoder = new StringDecoder(enc);
- this._readableState.encoding = enc;
- return this;
-};
-
-// Don't raise the hwm > 8MB
-var MAX_HWM = 0x800000;
-function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- n = MAX_HWM;
+},{"base64-js":3,"ieee754":44,"isarray":48}],7:[function(require,module,exports){
+(function (Buffer){
+var Transform = require('stream').Transform
+var inherits = require('inherits')
+var StringDecoder = require('string_decoder').StringDecoder
+module.exports = CipherBase
+inherits(CipherBase, Transform)
+function CipherBase (hashMode) {
+ Transform.call(this)
+ this.hashMode = typeof hashMode === 'string'
+ if (this.hashMode) {
+ this[hashMode] = this._finalOrDigest
} else {
- // Get the next highest power of 2
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
-}
-
-function howMuchToRead(n, state) {
- if (state.length === 0 && state.ended)
- return 0;
-
- if (state.objectMode)
- return n === 0 ? 0 : 1;
-
- if (n === null || isNaN(n)) {
- // only flow one buffer at a time
- if (state.flowing && state.buffer.length)
- return state.buffer[0].length;
- else
- return state.length;
- }
-
- if (n <= 0)
- return 0;
-
- // If we're asking for more than the target buffer level,
- // then raise the water mark. Bump up to the next highest
- // power of 2, to prevent increasing it excessively in tiny
- // amounts.
- if (n > state.highWaterMark)
- state.highWaterMark = computeNewHighWaterMark(n);
-
- // don't have that much. return null, unless we've ended.
- if (n > state.length) {
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- } else {
- return state.length;
- }
- }
-
- return n;
-}
-
-// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function(n) {
- debug('read', n);
- var state = this._readableState;
- var nOrig = n;
-
- if (typeof n !== 'number' || n > 0)
- state.emittedReadable = false;
-
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 &&
- state.needReadable &&
- (state.length >= state.highWaterMark || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended)
- endReadable(this);
- else
- emitReadable(this);
- return null;
- }
-
- n = howMuchToRead(n, state);
-
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0)
- endReadable(this);
- return null;
- }
-
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
-
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
-
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
-
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- }
-
- if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0)
- state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- }
-
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (doRead && !state.reading)
- n = howMuchToRead(nOrig, state);
-
- var ret;
- if (n > 0)
- ret = fromList(n, state);
- else
- ret = null;
-
- if (ret === null) {
- state.needReadable = true;
- n = 0;
- }
-
- state.length -= n;
-
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (state.length === 0 && !state.ended)
- state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended && state.length === 0)
- endReadable(this);
-
- if (ret !== null)
- this.emit('data', ret);
-
- return ret;
-};
-
-function chunkInvalid(state, chunk) {
- var er = null;
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- return er;
-}
-
-
-function onEofChunk(stream, state) {
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
-
- // emit 'readable' now to make sure it gets picked up.
- emitReadable(stream);
-}
-
-// Don't emit readable right away in sync mode, because this can trigger
-// another read() call => stack overflow. This way, it might trigger
-// a nextTick recursion warning, but that's not so bad.
-function emitReadable(stream) {
- var state = stream._readableState;
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- if (state.sync)
- processNextTick(emitReadable_, stream);
- else
- emitReadable_(stream);
- }
-}
-
-function emitReadable_(stream) {
- debug('emit readable');
- stream.emit('readable');
- flow(stream);
-}
-
-
-// at this point, the user has presumably seen the 'readable' event,
-// and called read() to consume some data. that may have triggered
-// in turn another _read(n) call, in which case reading = true if
-// it's in progress.
-// However, if we're not ended, or reading, and the length < hwm,
-// then go ahead and try to read some more preemptively.
-function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- processNextTick(maybeReadMore_, stream, state);
- }
-}
-
-function maybeReadMore_(stream, state) {
- var len = state.length;
- while (!state.reading && !state.flowing && !state.ended &&
- state.length < state.highWaterMark) {
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;
- else
- len = state.length;
- }
- state.readingMore = false;
-}
-
-// abstract method. to be overridden in specific implementation classes.
-// call cb(er, data) where data is <= n in length.
-// for virtual (non-string, non-buffer) streams, "length" is somewhat
-// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function(n) {
- this.emit('error', new Error('not implemented'));
-};
-
-Readable.prototype.pipe = function(dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
-
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
-
- var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
- dest !== process.stdout &&
- dest !== process.stderr;
-
- var endFn = doEnd ? onend : cleanup;
- if (state.endEmitted)
- processNextTick(endFn);
- else
- src.once('end', endFn);
-
- dest.on('unpipe', onunpipe);
- function onunpipe(readable) {
- debug('onunpipe');
- if (readable === src) {
- cleanup();
- }
- }
-
- function onend() {
- debug('onend');
- dest.end();
- }
-
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
-
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', cleanup);
- src.removeListener('data', ondata);
-
- cleanedUp = true;
-
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain &&
- (!dest._writableState || dest._writableState.needDrain))
- ondrain();
- }
-
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- var ret = dest.write(chunk);
- if (false === ret) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- if (state.pipesCount === 1 &&
- state.pipes[0] === dest &&
- src.listenerCount('data') === 1 &&
- !cleanedUp) {
- debug('false write response, pause', src._readableState.awaitDrain);
- src._readableState.awaitDrain++;
- }
- src.pause();
- }
- }
-
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0)
- dest.emit('error', er);
- }
- // This is a brutally ugly hack to make sure that our error handler
- // is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error)
- dest.on('error', onerror);
- else if (isArray(dest._events.error))
- dest._events.error.unshift(onerror);
- else
- dest._events.error = [onerror, dest._events.error];
-
-
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
-
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
-
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
-
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
+ this.final = this._finalOrDigest
}
-
- return dest;
-};
-
-function pipeOnDrain(src) {
- return function() {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain)
- state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
+ this._decoder = null
+ this._encoding = null
}
-
-
-Readable.prototype.unpipe = function(dest) {
- var state = this._readableState;
-
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0)
- return this;
-
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes)
- return this;
-
- if (!dest)
- dest = state.pipes;
-
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest)
- dest.emit('unpipe', this);
- return this;
- }
-
- // slow case. multiple pipe destinations.
-
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
-
- for (var i = 0; i < len; i++)
- dests[i].emit('unpipe', this);
- return this;
+CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
+ if (typeof data === 'string') {
+ data = new Buffer(data, inputEnc)
}
-
- // try to find the right one.
- var i = indexOf(state.pipes, dest);
- if (i === -1)
- return this;
-
- state.pipes.splice(i, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1)
- state.pipes = state.pipes[0];
-
- dest.emit('unpipe', this);
-
- return this;
-};
-
-// set up data events if they are asked for
-// Ensure readable listeners eventually get something
-Readable.prototype.on = function(ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
-
- // If listening to data, and it has not explicitly been paused,
- // then call resume to start the flow of data on the next tick.
- if (ev === 'data' && false !== this._readableState.flowing) {
- this.resume();
+ var outData = this._update(data)
+ if (this.hashMode) {
+ return this
}
-
- if (ev === 'readable' && this.readable) {
- var state = this._readableState;
- if (!state.readableListening) {
- state.readableListening = true;
- state.emittedReadable = false;
- state.needReadable = true;
- if (!state.reading) {
- processNextTick(nReadingNextTick, this);
- } else if (state.length) {
- emitReadable(this, state);
- }
- }
+ if (outputEnc) {
+ outData = this._toString(outData, outputEnc)
}
-
- return res;
-};
-Readable.prototype.addListener = Readable.prototype.on;
-
-function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
+ return outData
}
-// pause() and resume() are remnants of the legacy readable stream API
-// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function() {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- state.flowing = true;
- resume(this, state);
- }
- return this;
-};
+CipherBase.prototype.setAutoPadding = function () {}
-function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- processNextTick(resume_, stream, state);
- }
+CipherBase.prototype.getAuthTag = function () {
+ throw new Error('trying to get auth tag in unsupported state')
}
-function resume_(stream, state) {
- if (!state.reading) {
- debug('resume read 0');
- stream.read(0);
- }
-
- state.resumeScheduled = false;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading)
- stream.read(0);
+CipherBase.prototype.setAuthTag = function () {
+ throw new Error('trying to set auth tag in unsupported state')
}
-Readable.prototype.pause = function() {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (false !== this._readableState.flowing) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- return this;
-};
-
-function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- if (state.flowing) {
- do {
- var chunk = stream.read();
- } while (null !== chunk && state.flowing);
- }
+CipherBase.prototype.setAAD = function () {
+ throw new Error('trying to set aad in unsupported state')
}
-// wrap an old-style stream as the async data source.
-// This is *not* part of the readable stream interface.
-// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function(stream) {
- var state = this._readableState;
- var paused = false;
-
- var self = this;
- stream.on('end', function() {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length)
- self.push(chunk);
- }
-
- self.push(null);
- });
-
- stream.on('data', function(chunk) {
- debug('wrapped data');
- if (state.decoder)
- chunk = state.decoder.write(chunk);
-
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined))
- return;
- else if (!state.objectMode && (!chunk || !chunk.length))
- return;
-
- var ret = self.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
-
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function(method) { return function() {
- return stream[method].apply(stream, arguments);
- }; }(i);
- }
- }
-
- // proxy certain important events.
- var events = ['error', 'close', 'destroy', 'pause', 'resume'];
- forEach(events, function(ev) {
- stream.on(ev, self.emit.bind(self, ev));
- });
-
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- self._read = function(n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
-
- return self;
-};
-
-
-// exposed for testing purposes only.
-Readable._fromList = fromList;
-
-// Pluck off n bytes from an array of buffers.
-// Length is the combined lengths of all the buffers in the list.
-function fromList(n, state) {
- var list = state.buffer;
- var length = state.length;
- var stringMode = !!state.decoder;
- var objectMode = !!state.objectMode;
- var ret;
-
- // nothing in the list, definitely empty.
- if (list.length === 0)
- return null;
-
- if (length === 0)
- ret = null;
- else if (objectMode)
- ret = list.shift();
- else if (!n || n >= length) {
- // read it all, truncate the array.
- if (stringMode)
- ret = list.join('');
- else if (list.length === 1)
- ret = list[0];
- else
- ret = Buffer.concat(list, length);
- list.length = 0;
- } else {
- // read just some of it.
- if (n < list[0].length) {
- // just take a part of the first list item.
- // slice is the same for buffers and strings.
- var buf = list[0];
- ret = buf.slice(0, n);
- list[0] = buf.slice(n);
- } else if (n === list[0].length) {
- // first list is a perfect match
- ret = list.shift();
+CipherBase.prototype._transform = function (data, _, next) {
+ var err
+ try {
+ if (this.hashMode) {
+ this._update(data)
} else {
- // complex case.
- // we have enough to cover it, but it spans past the first buffer.
- if (stringMode)
- ret = '';
- else
- ret = new Buffer(n);
-
- var c = 0;
- for (var i = 0, l = list.length; i < l && c < n; i++) {
- var buf = list[0];
- var cpy = Math.min(n - c, buf.length);
-
- if (stringMode)
- ret += buf.slice(0, cpy);
- else
- buf.copy(ret, c, 0, cpy);
-
- if (cpy < buf.length)
- list[0] = buf.slice(cpy);
- else
- list.shift();
-
- c += cpy;
- }
+ this.push(this._update(data))
}
- }
-
- return ret;
-}
-
-function endReadable(stream) {
- var state = stream._readableState;
-
- // If we get here before consuming all the bytes, then that is a
- // bug in node. Should never happen.
- if (state.length > 0)
- throw new Error('endReadable called on non-empty stream');
-
- if (!state.endEmitted) {
- state.ended = true;
- processNextTick(endReadableNT, state, stream);
+ } catch (e) {
+ err = e
+ } finally {
+ next(err)
}
}
-
-function endReadableNT(state, stream) {
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
+CipherBase.prototype._flush = function (done) {
+ var err
+ try {
+ this.push(this._final())
+ } catch (e) {
+ err = e
+ } finally {
+ done(err)
}
}
-
-function forEach (xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
+CipherBase.prototype._finalOrDigest = function (outputEnc) {
+ var outData = this._final() || new Buffer('')
+ if (outputEnc) {
+ outData = this._toString(outData, outputEnc, true)
}
+ return outData
}
-function indexOf (xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
+CipherBase.prototype._toString = function (value, enc, fin) {
+ if (!this._decoder) {
+ this._decoder = new StringDecoder(enc)
+ this._encoding = enc
}
- return -1;
-}
-
-}).call(this,require('_process'))
-},{"./_stream_duplex":13,"_process":10,"buffer":2,"core-util-is":18,"events":6,"inherits":7,"isarray":9,"process-nextick-args":19,"string_decoder/":26,"util":1}],16:[function(require,module,exports){
-// a transform stream is a readable/writable stream where you do
-// something with the data. Sometimes it's called a "filter",
-// but that's not a great name for it, since that implies a thing where
-// some bits pass through, and others are simply ignored. (That would
-// be a valid example of a transform, of course.)
-//
-// While the output is causally related to the input, it's not a
-// necessarily symmetric or synchronous transformation. For example,
-// a zlib stream might take multiple plain-text writes(), and then
-// emit a single compressed chunk some time in the future.
-//
-// Here's how this works:
-//
-// The Transform stream has all the aspects of the readable and writable
-// stream classes. When you write(chunk), that calls _write(chunk,cb)
-// internally, and returns false if there's a lot of pending writes
-// buffered up. When you call read(), that calls _read(n) until
-// there's enough pending readable data buffered up.
-//
-// In a transform stream, the written data is placed in a buffer. When
-// _read(n) is called, it transforms the queued up data, calling the
-// buffered _write cb's as it consumes chunks. If consuming a single
-// written chunk would result in multiple output chunks, then the first
-// outputted bit calls the readcb, and subsequent chunks just go into
-// the read buffer, and will cause it to emit 'readable' if necessary.
-//
-// This way, back-pressure is actually determined by the reading side,
-// since _read has to be called to start processing a new chunk. However,
-// a pathological inflate type of transform can cause excessive buffering
-// here. For example, imagine a stream where every byte of input is
-// interpreted as an integer from 0-255, and then results in that many
-// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
-// 1kb of data being output. In this case, you could write a very small
-// amount of input, and end up with a very large amount of output. In
-// such a pathological inflating mechanism, there'd be no way to tell
-// the system to stop doing the transform. A single 4MB write could
-// cause the system to run out of memory.
-//
-// However, even in such a pathological case, only a single written chunk
-// would be consumed, and then the rest would wait (un-transformed) until
-// the results of the previous transformed chunk were consumed.
-
-'use strict';
-
-module.exports = Transform;
-
-var Duplex = require('./_stream_duplex');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(Transform, Duplex);
-
-
-function TransformState(stream) {
- this.afterTransform = function(er, data) {
- return afterTransform(stream, er, data);
- };
-
- this.needTransform = false;
- this.transforming = false;
- this.writecb = null;
- this.writechunk = null;
-}
-
-function afterTransform(stream, er, data) {
- var ts = stream._transformState;
- ts.transforming = false;
-
- var cb = ts.writecb;
-
- if (!cb)
- return stream.emit('error', new Error('no writecb in Transform class'));
-
- ts.writechunk = null;
- ts.writecb = null;
-
- if (data !== null && data !== undefined)
- stream.push(data);
-
- if (cb)
- cb(er);
-
- var rs = stream._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- stream._read(rs.highWaterMark);
+ if (this._encoding !== enc) {
+ throw new Error('can\'t switch encodings')
}
-}
-
-
-function Transform(options) {
- if (!(this instanceof Transform))
- return new Transform(options);
-
- Duplex.call(this, options);
-
- this._transformState = new TransformState(this);
-
- // when the writable side finishes, then flush out anything remaining.
- var stream = this;
-
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
-
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
-
- if (options) {
- if (typeof options.transform === 'function')
- this._transform = options.transform;
-
- if (typeof options.flush === 'function')
- this._flush = options.flush;
+ var out = this._decoder.write(value)
+ if (fin) {
+ out += this._decoder.end()
}
-
- this.once('prefinish', function() {
- if (typeof this._flush === 'function')
- this._flush(function(er) {
- done(stream, er);
- });
- else
- done(stream);
- });
+ return out
}
-Transform.prototype.push = function(chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
-};
-
-// This is the part where you do stuff!
-// override this function in implementation classes.
-// 'chunk' is an input chunk.
-//
-// Call `push(newChunk)` to pass along transformed output
-// to the readable side. You may call 'push' zero or more times.
-//
-// Call `cb(err)` when you are done with this chunk. If you pass
-// an error, then that'll put the hurt on the whole operation. If you
-// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function(chunk, encoding, cb) {
- throw new Error('not implemented');
+}).call(this,require("buffer").Buffer)
+},{"buffer":6,"inherits":45,"stream":182,"string_decoder":183}],8:[function(require,module,exports){
+require('../../modules/es6.object.assign');
+module.exports = require('../../modules/$.core').Object.assign;
+},{"../../modules/$.core":11,"../../modules/es6.object.assign":21}],9:[function(require,module,exports){
+module.exports = function(it){
+ if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+ return it;
};
+},{}],10:[function(require,module,exports){
+var toString = {}.toString;
-Transform.prototype._write = function(chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform ||
- rs.needReadable ||
- rs.length < rs.highWaterMark)
- this._read(rs.highWaterMark);
- }
+module.exports = function(it){
+ return toString.call(it).slice(8, -1);
};
-
-// Doesn't matter what the args are here.
-// _transform does all the work.
-// That we got here means that the readable side wants more data.
-Transform.prototype._read = function(n) {
- var ts = this._transformState;
-
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
+},{}],11:[function(require,module,exports){
+var core = module.exports = {version: '1.2.6'};
+if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+},{}],12:[function(require,module,exports){
+// optional / simple context binding
+var aFunction = require('./$.a-function');
+module.exports = function(fn, that, length){
+ aFunction(fn);
+ if(that === undefined)return fn;
+ switch(length){
+ case 1: return function(a){
+ return fn.call(that, a);
+ };
+ case 2: return function(a, b){
+ return fn.call(that, a, b);
+ };
+ case 3: return function(a, b, c){
+ return fn.call(that, a, b, c);
+ };
}
-};
-
-
-function done(stream, er) {
- if (er)
- return stream.emit('error', er);
-
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- var ws = stream._writableState;
- var ts = stream._transformState;
-
- if (ws.length)
- throw new Error('calling transform done when ws.length != 0');
-
- if (ts.transforming)
- throw new Error('calling transform done when still transforming');
-
- return stream.push(null);
-}
-
-},{"./_stream_duplex":13,"core-util-is":18,"inherits":7}],17:[function(require,module,exports){
-// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-'use strict';
-
-module.exports = Writable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
-
-Writable.WritableState = WritableState;
-
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var internalUtil = {
- deprecate: require('util-deprecate')
-};
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-
-util.inherits(Writable, Stream);
-
-function nop() {}
-
-function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
-}
-
-function WritableState(options, stream) {
- var Duplex = require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.writableObjectMode;
-
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
-
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
-
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
-
- // a flag to see when we're in the middle of a write.
- this.writing = false;
-
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
-
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function(er) {
- onwrite(stream, er);
+ return function(/* ...args */){
+ return fn.apply(that, arguments);
};
-
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
-
- // the amount that is being written when _write is called.
- this.writelen = 0;
-
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
-
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
-
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
-
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
-}
-
-WritableState.prototype.getBuffer = function writableStateGetBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
};
-
-(function (){try {
-Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function() {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' +
- 'instead.')
-});
-}catch(_){}}());
-
-
-function Writable(options) {
- var Duplex = require('./_stream_duplex');
-
- // Writable ctor is applied to Duplexes, though they're not
- // instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex))
- return new Writable(options);
-
- this._writableState = new WritableState(options, this);
-
- // legacy.
- this.writable = true;
-
- if (options) {
- if (typeof options.write === 'function')
- this._write = options.write;
-
- if (typeof options.writev === 'function')
- this._writev = options.writev;
- }
-
- Stream.call(this);
-}
-
-// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function() {
- this.emit('error', new Error('Cannot pipe. Not readable.'));
+},{"./$.a-function":9}],13:[function(require,module,exports){
+// 7.2.1 RequireObjectCoercible(argument)
+module.exports = function(it){
+ if(it == undefined)throw TypeError("Can't call method on " + it);
+ return it;
};
+},{}],14:[function(require,module,exports){
+var global = require('./$.global')
+ , core = require('./$.core')
+ , ctx = require('./$.ctx')
+ , PROTOTYPE = 'prototype';
-
-function writeAfterEnd(stream, cb) {
- var er = new Error('write after end');
- // TODO: defer error events consistently everywhere, not just the cb
- stream.emit('error', er);
- processNextTick(cb, er);
-}
-
-// If we get something that is not a buffer, string, null, or undefined,
-// and we're not in objectMode, then that's an error.
-// Otherwise stream chunks are all considered to be of length=1, and the
-// watermarks determine how many objects to keep in the buffer, rather than
-// how many bytes or characters.
-function validChunk(stream, state, chunk, cb) {
- var valid = true;
-
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
- var er = new TypeError('Invalid non-string/buffer chunk');
- stream.emit('error', er);
- processNextTick(cb, er);
- valid = false;
- }
- return valid;
-}
-
-Writable.prototype.write = function(chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
-
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
- else if (!encoding)
- encoding = state.defaultEncoding;
-
- if (typeof cb !== 'function')
- cb = nop;
-
- if (state.ended)
- writeAfterEnd(this, cb);
- else if (validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, chunk, encoding, cb);
+var $export = function(type, name, source){
+ var IS_FORCED = type & $export.F
+ , IS_GLOBAL = type & $export.G
+ , IS_STATIC = type & $export.S
+ , IS_PROTO = type & $export.P
+ , IS_BIND = type & $export.B
+ , IS_WRAP = type & $export.W
+ , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
+ , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+ , key, own, out;
+ if(IS_GLOBAL)source = name;
+ for(key in source){
+ // contains in native
+ own = !IS_FORCED && target && key in target;
+ if(own && key in exports)continue;
+ // export native or passed
+ out = own ? target[key] : source[key];
+ // prevent global pollution for namespaces
+ exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+ // bind timers to global for call from export context
+ : IS_BIND && own ? ctx(out, global)
+ // wrap global constructors for prevent change them in library
+ : IS_WRAP && target[key] == out ? (function(C){
+ var F = function(param){
+ return this instanceof C ? new C(param) : C(param);
+ };
+ F[PROTOTYPE] = C[PROTOTYPE];
+ return F;
+ // make static versions for prototype methods
+ })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+ if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
}
-
- return ret;
-};
-
-Writable.prototype.cork = function() {
- var state = this._writableState;
-
- state.corked++;
};
-
-Writable.prototype.uncork = function() {
- var state = this._writableState;
-
- if (state.corked) {
- state.corked--;
-
- if (!state.writing &&
- !state.corked &&
- !state.finished &&
- !state.bufferProcessing &&
- state.bufferedRequest)
- clearBuffer(this, state);
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+module.exports = $export;
+},{"./$.core":11,"./$.ctx":12,"./$.global":16}],15:[function(require,module,exports){
+module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
}
};
-
-Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string')
- encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64',
-'ucs2', 'ucs-2','utf16le', 'utf-16le', 'raw']
-.indexOf((encoding + '').toLowerCase()) > -1))
- throw new TypeError('Unknown encoding: ' + encoding);
- this._writableState.defaultEncoding = encoding;
+},{}],16:[function(require,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+},{}],17:[function(require,module,exports){
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+var cof = require('./$.cof');
+module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
};
-
-function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode &&
- state.decodeStrings !== false &&
- typeof chunk === 'string') {
- chunk = new Buffer(chunk, encoding);
- }
- return chunk;
-}
-
-// if we're already writing something, then just put this
-// in the queue, and wait our turn. Otherwise, call _write
-// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, chunk, encoding, cb) {
- chunk = decodeChunk(state, chunk, encoding);
-
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
- var len = state.objectMode ? 1 : chunk.length;
-
- state.length += len;
-
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret)
- state.needDrain = true;
-
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
-
- return ret;
-}
-
-function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (writev)
- stream._writev(chunk, state.onwrite);
- else
- stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
-}
-
-function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync)
- processNextTick(cb, er);
- else
- cb(er);
-
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
-}
-
-function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
-}
-
-function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
-
- onwriteStateUpdate(state);
-
- if (er)
- onwriteError(stream, state, sync, er, cb);
- else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state);
-
- if (!finished &&
- !state.corked &&
- !state.bufferProcessing &&
- state.bufferedRequest) {
- clearBuffer(stream, state);
- }
-
- if (sync) {
- processNextTick(afterWrite, stream, state, finished, cb);
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
-}
-
-function afterWrite(stream, state, finished, cb) {
- if (!finished)
- onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
-}
-
-// Must force callback to be called on nextTick, so that we don't
-// emit 'drain' before the write() consumer gets the 'false' return
-// value, and has a chance to attach a 'drain' listener.
-function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
-}
-
-
-// if there's something in the buffer waiting, then process it
-function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
-
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var buffer = [];
- var cbs = [];
- while (entry) {
- cbs.push(entry.callback);
- buffer.push(entry);
- entry = entry.next;
- }
-
- // count the one we are adding, as well.
- // TODO(isaacs) clean this up
- state.pendingcb++;
- state.lastBufferedRequest = null;
- doWrite(stream, state, true, state.length, buffer, '', function(err) {
- for (var i = 0; i < cbs.length; i++) {
- state.pendingcb--;
- cbs[i](err);
- }
- });
-
- // Clear buffer
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
-
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
-
- if (entry === null)
- state.lastBufferedRequest = null;
- }
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
-}
-
-Writable.prototype._write = function(chunk, encoding, cb) {
- cb(new Error('not implemented'));
+},{"./$.cof":10}],18:[function(require,module,exports){
+var $Object = Object;
+module.exports = {
+ create: $Object.create,
+ getProto: $Object.getPrototypeOf,
+ isEnum: {}.propertyIsEnumerable,
+ getDesc: $Object.getOwnPropertyDescriptor,
+ setDesc: $Object.defineProperty,
+ setDescs: $Object.defineProperties,
+ getKeys: $Object.keys,
+ getNames: $Object.getOwnPropertyNames,
+ getSymbols: $Object.getOwnPropertySymbols,
+ each: [].forEach
};
+},{}],19:[function(require,module,exports){
+// 19.1.2.1 Object.assign(target, source, ...)
+var $ = require('./$')
+ , toObject = require('./$.to-object')
+ , IObject = require('./$.iobject');
-Writable.prototype._writev = null;
-
-Writable.prototype.end = function(chunk, encoding, cb) {
- var state = this._writableState;
-
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (chunk !== null && chunk !== undefined)
- this.write(chunk, encoding);
-
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
+// should work with symbols and should have deterministic property order (V8 bug)
+module.exports = require('./$.fails')(function(){
+ var a = Object.assign
+ , A = {}
+ , B = {}
+ , S = Symbol()
+ , K = 'abcdefghijklmnopqrst';
+ A[S] = 7;
+ K.split('').forEach(function(k){ B[k] = k; });
+ return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
+}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
+ var T = toObject(target)
+ , $$ = arguments
+ , $$len = $$.length
+ , index = 1
+ , getKeys = $.getKeys
+ , getSymbols = $.getSymbols
+ , isEnum = $.isEnum;
+ while($$len > index){
+ var S = IObject($$[index++])
+ , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
+ , length = keys.length
+ , j = 0
+ , key;
+ while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
}
-
- // ignore unnecessary end() calls.
- if (!state.ending && !state.finished)
- endWritable(this, state, cb);
+ return T;
+} : Object.assign;
+},{"./$":18,"./$.fails":15,"./$.iobject":17,"./$.to-object":20}],20:[function(require,module,exports){
+// 7.1.13 ToObject(argument)
+var defined = require('./$.defined');
+module.exports = function(it){
+ return Object(defined(it));
};
+},{"./$.defined":13}],21:[function(require,module,exports){
+// 19.1.3.1 Object.assign(target, source)
+var $export = require('./$.export');
-
-function needFinish(state) {
- return (state.ending &&
- state.length === 0 &&
- state.bufferedRequest === null &&
- !state.finished &&
- !state.writing);
-}
-
-function prefinish(stream, state) {
- if (!state.prefinished) {
- state.prefinished = true;
- stream.emit('prefinish');
- }
-}
-
-function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- if (state.pendingcb === 0) {
- prefinish(stream, state);
- state.finished = true;
- stream.emit('finish');
- } else {
- prefinish(stream, state);
- }
- }
- return need;
-}
-
-function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished)
- processNextTick(cb);
- else
- stream.once('finish', cb);
- }
- state.ended = true;
-}
-
-},{"./_stream_duplex":13,"buffer":2,"core-util-is":18,"events":6,"inherits":7,"process-nextick-args":19,"util-deprecate":20}],18:[function(require,module,exports){
+$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});
+},{"./$.export":14,"./$.object-assign":19}],22:[function(require,module,exports){
(function (Buffer){
// Copyright Joyent, Inc. and other Node contributors.
//
@@ -12766,1014 +10857,12 @@ function endWritable(stream, state, cb) {
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
-function isArray(ar) {
- return Array.isArray(ar);
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return isObject(re) && objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return isObject(d) && objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return isObject(e) &&
- (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-function isBuffer(arg) {
- return Buffer.isBuffer(arg);
-}
-exports.isBuffer = isBuffer;
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
-}).call(this,{"isBuffer":require("../../../../insert-module-globals/node_modules/is-buffer/index.js")})
-},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":8}],19:[function(require,module,exports){
-(function (process){
-'use strict';
-module.exports = nextTick;
-
-function nextTick(fn) {
- var args = new Array(arguments.length - 1);
- var i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
+function isArray(arg) {
+ if (Array.isArray) {
+ return Array.isArray(arg);
}
- process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
-}
-
-}).call(this,require('_process'))
-},{"_process":10}],20:[function(require,module,exports){
-(function (global){
-
-/**
- * Module exports.
- */
-
-module.exports = deprecate;
-
-/**
- * Mark that a method should not be used.
- * Returns a modified function which warns once by default.
- *
- * If `localStorage.noDeprecation = true` is set, then it is a no-op.
- *
- * If `localStorage.throwDeprecation = true` is set, then deprecated functions
- * will throw an Error when invoked.
- *
- * If `localStorage.traceDeprecation = true` is set, then deprecated functions
- * will invoke `console.trace()` instead of `console.error()`.
- *
- * @param {Function} fn - the function to deprecate
- * @param {String} msg - the string to print to the console when `fn` is invoked
- * @returns {Function} a new "deprecated" version of `fn`
- * @api public
- */
-
-function deprecate (fn, msg) {
- if (config('noDeprecation')) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (config('throwDeprecation')) {
- throw new Error(msg);
- } else if (config('traceDeprecation')) {
- console.trace(msg);
- } else {
- console.warn(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-}
-
-/**
- * Checks `localStorage` for boolean values for the given `name`.
- *
- * @param {String} name
- * @returns {Boolean}
- * @api private
- */
-
-function config (name) {
- // accessing global.localStorage can trigger a DOMException in sandboxed iframes
- try {
- if (!global.localStorage) return false;
- } catch (_) {
- return false;
- }
- var val = global.localStorage[name];
- if (null == val) return false;
- return String(val).toLowerCase() === 'true';
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],21:[function(require,module,exports){
-module.exports = require("./lib/_stream_passthrough.js")
-
-},{"./lib/_stream_passthrough.js":14}],22:[function(require,module,exports){
-var Stream = (function (){
- try {
- return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
- } catch(_){}
-}());
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = Stream || exports;
-exports.Readable = exports;
-exports.Writable = require('./lib/_stream_writable.js');
-exports.Duplex = require('./lib/_stream_duplex.js');
-exports.Transform = require('./lib/_stream_transform.js');
-exports.PassThrough = require('./lib/_stream_passthrough.js');
-
-},{"./lib/_stream_duplex.js":13,"./lib/_stream_passthrough.js":14,"./lib/_stream_readable.js":15,"./lib/_stream_transform.js":16,"./lib/_stream_writable.js":17}],23:[function(require,module,exports){
-module.exports = require("./lib/_stream_transform.js")
-
-},{"./lib/_stream_transform.js":16}],24:[function(require,module,exports){
-module.exports = require("./lib/_stream_writable.js")
-
-},{"./lib/_stream_writable.js":17}],25:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-module.exports = Stream;
-
-var EE = require('events').EventEmitter;
-var inherits = require('inherits');
-
-inherits(Stream, EE);
-Stream.Readable = require('readable-stream/readable.js');
-Stream.Writable = require('readable-stream/writable.js');
-Stream.Duplex = require('readable-stream/duplex.js');
-Stream.Transform = require('readable-stream/transform.js');
-Stream.PassThrough = require('readable-stream/passthrough.js');
-
-// Backwards-compat with node 0.4.x
-Stream.Stream = Stream;
-
-
-
-// old-style streams. Note that the pipe method (the only relevant
-// part of this class) is overridden in the Readable class.
-
-function Stream() {
- EE.call(this);
-}
-
-Stream.prototype.pipe = function(dest, options) {
- var source = this;
-
- function ondata(chunk) {
- if (dest.writable) {
- if (false === dest.write(chunk) && source.pause) {
- source.pause();
- }
- }
- }
-
- source.on('data', ondata);
-
- function ondrain() {
- if (source.readable && source.resume) {
- source.resume();
- }
- }
-
- dest.on('drain', ondrain);
-
- // If the 'end' option is not supplied, dest.end() will be called when
- // source gets the 'end' or 'close' events. Only dest.end() once.
- if (!dest._isStdio && (!options || options.end !== false)) {
- source.on('end', onend);
- source.on('close', onclose);
- }
-
- var didOnEnd = false;
- function onend() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- dest.end();
- }
-
-
- function onclose() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- if (typeof dest.destroy === 'function') dest.destroy();
- }
-
- // don't leave dangling pipes when there are errors.
- function onerror(er) {
- cleanup();
- if (EE.listenerCount(this, 'error') === 0) {
- throw er; // Unhandled stream error in pipe.
- }
- }
-
- source.on('error', onerror);
- dest.on('error', onerror);
-
- // remove all the event listeners that were added.
- function cleanup() {
- source.removeListener('data', ondata);
- dest.removeListener('drain', ondrain);
-
- source.removeListener('end', onend);
- source.removeListener('close', onclose);
-
- source.removeListener('error', onerror);
- dest.removeListener('error', onerror);
-
- source.removeListener('end', cleanup);
- source.removeListener('close', cleanup);
-
- dest.removeListener('close', cleanup);
- }
-
- source.on('end', cleanup);
- source.on('close', cleanup);
-
- dest.on('close', cleanup);
-
- dest.emit('pipe', source);
-
- // Allow for unix-like usage: A.pipe(B).pipe(C)
- return dest;
-};
-
-},{"events":6,"inherits":7,"readable-stream/duplex.js":12,"readable-stream/passthrough.js":21,"readable-stream/readable.js":22,"readable-stream/transform.js":23,"readable-stream/writable.js":24}],26:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var Buffer = require('buffer').Buffer;
-
-var isBufferEncoding = Buffer.isEncoding
- || function(encoding) {
- switch (encoding && encoding.toLowerCase()) {
- case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
- default: return false;
- }
- }
-
-
-function assertEncoding(encoding) {
- if (encoding && !isBufferEncoding(encoding)) {
- throw new Error('Unknown encoding: ' + encoding);
- }
-}
-
-// StringDecoder provides an interface for efficiently splitting a series of
-// buffers into a series of JS strings without breaking apart multi-byte
-// characters. CESU-8 is handled as part of the UTF-8 encoding.
-//
-// @TODO Handling all encodings inside a single object makes it very difficult
-// to reason about this code, so it should be split up in the future.
-// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
-// points as used by CESU-8.
-var StringDecoder = exports.StringDecoder = function(encoding) {
- this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
- assertEncoding(encoding);
- switch (this.encoding) {
- case 'utf8':
- // CESU-8 represents each of Surrogate Pair by 3-bytes
- this.surrogateSize = 3;
- break;
- case 'ucs2':
- case 'utf16le':
- // UTF-16 represents each of Surrogate Pair by 2-bytes
- this.surrogateSize = 2;
- this.detectIncompleteChar = utf16DetectIncompleteChar;
- break;
- case 'base64':
- // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
- this.surrogateSize = 3;
- this.detectIncompleteChar = base64DetectIncompleteChar;
- break;
- default:
- this.write = passThroughWrite;
- return;
- }
-
- // Enough space to store all bytes of a single character. UTF-8 needs 4
- // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
- this.charBuffer = new Buffer(6);
- // Number of bytes received for the current incomplete multi-byte character.
- this.charReceived = 0;
- // Number of bytes expected for the current incomplete multi-byte character.
- this.charLength = 0;
-};
-
-
-// write decodes the given buffer and returns it as JS string that is
-// guaranteed to not contain any partial multi-byte characters. Any partial
-// character found at the end of the buffer is buffered up, and will be
-// returned when calling write again with the remaining bytes.
-//
-// Note: Converting a Buffer containing an orphan surrogate to a String
-// currently works, but converting a String to a Buffer (via `new Buffer`, or
-// Buffer#write) will replace incomplete surrogates with the unicode
-// replacement character. See https://codereview.chromium.org/121173009/ .
-StringDecoder.prototype.write = function(buffer) {
- var charStr = '';
- // if our last write ended with an incomplete multibyte character
- while (this.charLength) {
- // determine how many remaining bytes this buffer has to offer for this char
- var available = (buffer.length >= this.charLength - this.charReceived) ?
- this.charLength - this.charReceived :
- buffer.length;
-
- // add the new bytes to the char buffer
- buffer.copy(this.charBuffer, this.charReceived, 0, available);
- this.charReceived += available;
-
- if (this.charReceived < this.charLength) {
- // still not enough chars in this buffer? wait for more ...
- return '';
- }
-
- // remove bytes belonging to the current character from the buffer
- buffer = buffer.slice(available, buffer.length);
-
- // get the character that was split
- charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
-
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- var charCode = charStr.charCodeAt(charStr.length - 1);
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- this.charLength += this.surrogateSize;
- charStr = '';
- continue;
- }
- this.charReceived = this.charLength = 0;
-
- // if there are no more bytes in this buffer, just emit our char
- if (buffer.length === 0) {
- return charStr;
- }
- break;
- }
-
- // determine and set charLength / charReceived
- this.detectIncompleteChar(buffer);
-
- var end = buffer.length;
- if (this.charLength) {
- // buffer the incomplete character bytes we got
- buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
- end -= this.charReceived;
- }
-
- charStr += buffer.toString(this.encoding, 0, end);
-
- var end = charStr.length - 1;
- var charCode = charStr.charCodeAt(end);
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- var size = this.surrogateSize;
- this.charLength += size;
- this.charReceived += size;
- this.charBuffer.copy(this.charBuffer, size, 0, size);
- buffer.copy(this.charBuffer, 0, 0, size);
- return charStr.substring(0, end);
- }
-
- // or just emit the charStr
- return charStr;
-};
-
-// detectIncompleteChar determines if there is an incomplete UTF-8 character at
-// the end of the given buffer. If so, it sets this.charLength to the byte
-// length that character, and sets this.charReceived to the number of bytes
-// that are available for this character.
-StringDecoder.prototype.detectIncompleteChar = function(buffer) {
- // determine how many bytes we have to check at the end of this buffer
- var i = (buffer.length >= 3) ? 3 : buffer.length;
-
- // Figure out if one of the last i bytes of our buffer announces an
- // incomplete char.
- for (; i > 0; i--) {
- var c = buffer[buffer.length - i];
-
- // See http://en.wikipedia.org/wiki/UTF-8#Description
-
- // 110XXXXX
- if (i == 1 && c >> 5 == 0x06) {
- this.charLength = 2;
- break;
- }
-
- // 1110XXXX
- if (i <= 2 && c >> 4 == 0x0E) {
- this.charLength = 3;
- break;
- }
-
- // 11110XXX
- if (i <= 3 && c >> 3 == 0x1E) {
- this.charLength = 4;
- break;
- }
- }
- this.charReceived = i;
-};
-
-StringDecoder.prototype.end = function(buffer) {
- var res = '';
- if (buffer && buffer.length)
- res = this.write(buffer);
-
- if (this.charReceived) {
- var cr = this.charReceived;
- var buf = this.charBuffer;
- var enc = this.encoding;
- res += buf.slice(0, cr).toString(enc);
- }
-
- return res;
-};
-
-function passThroughWrite(buffer) {
- return buffer.toString(this.encoding);
-}
-
-function utf16DetectIncompleteChar(buffer) {
- this.charReceived = buffer.length % 2;
- this.charLength = this.charReceived ? 2 : 0;
-}
-
-function base64DetectIncompleteChar(buffer) {
- this.charReceived = buffer.length % 3;
- this.charLength = this.charReceived ? 3 : 0;
-}
-
-},{"buffer":2}],27:[function(require,module,exports){
-module.exports = function isBuffer(arg) {
- return arg && typeof arg === 'object'
- && typeof arg.copy === 'function'
- && typeof arg.fill === 'function'
- && typeof arg.readUInt8 === 'function';
-}
-},{}],28:[function(require,module,exports){
-(function (process,global){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var formatRegExp = /%[sdj%]/g;
-exports.format = function(f) {
- if (!isString(f)) {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(inspect(arguments[i]));
- }
- return objects.join(' ');
- }
-
- var i = 1;
- var args = arguments;
- var len = args.length;
- var str = String(f).replace(formatRegExp, function(x) {
- if (x === '%%') return '%';
- if (i >= len) return x;
- switch (x) {
- case '%s': return String(args[i++]);
- case '%d': return Number(args[i++]);
- case '%j':
- try {
- return JSON.stringify(args[i++]);
- } catch (_) {
- return '[Circular]';
- }
- default:
- return x;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- if (isNull(x) || !isObject(x)) {
- str += ' ' + x;
- } else {
- str += ' ' + inspect(x);
- }
- }
- return str;
-};
-
-
-// Mark that a method should not be used.
-// Returns a modified function which warns once by default.
-// If --no-deprecation is set, then it is a no-op.
-exports.deprecate = function(fn, msg) {
- // Allow for deprecating things in the process of starting up.
- if (isUndefined(global.process)) {
- return function() {
- return exports.deprecate(fn, msg).apply(this, arguments);
- };
- }
-
- if (process.noDeprecation === true) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (process.throwDeprecation) {
- throw new Error(msg);
- } else if (process.traceDeprecation) {
- console.trace(msg);
- } else {
- console.error(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-};
-
-
-var debugs = {};
-var debugEnviron;
-exports.debuglog = function(set) {
- if (isUndefined(debugEnviron))
- debugEnviron = process.env.NODE_DEBUG || '';
- set = set.toUpperCase();
- if (!debugs[set]) {
- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
- var pid = process.pid;
- debugs[set] = function() {
- var msg = exports.format.apply(exports, arguments);
- console.error('%s %d: %s', set, pid, msg);
- };
- } else {
- debugs[set] = function() {};
- }
- }
- return debugs[set];
-};
-
-
-/**
- * Echos the value of a value. Trys to print the value out
- * in the best way possible given the different types.
- *
- * @param {Object} obj The object to print out.
- * @param {Object} opts Optional options object that alters the output.
- */
-/* legacy: obj, showHidden, depth, colors*/
-function inspect(obj, opts) {
- // default options
- var ctx = {
- seen: [],
- stylize: stylizeNoColor
- };
- // legacy...
- if (arguments.length >= 3) ctx.depth = arguments[2];
- if (arguments.length >= 4) ctx.colors = arguments[3];
- if (isBoolean(opts)) {
- // legacy...
- ctx.showHidden = opts;
- } else if (opts) {
- // got an "options" object
- exports._extend(ctx, opts);
- }
- // set default options
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
- if (isUndefined(ctx.depth)) ctx.depth = 2;
- if (isUndefined(ctx.colors)) ctx.colors = false;
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
- if (ctx.colors) ctx.stylize = stylizeWithColor;
- return formatValue(ctx, obj, ctx.depth);
-}
-exports.inspect = inspect;
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-inspect.colors = {
- 'bold' : [1, 22],
- 'italic' : [3, 23],
- 'underline' : [4, 24],
- 'inverse' : [7, 27],
- 'white' : [37, 39],
- 'grey' : [90, 39],
- 'black' : [30, 39],
- 'blue' : [34, 39],
- 'cyan' : [36, 39],
- 'green' : [32, 39],
- 'magenta' : [35, 39],
- 'red' : [31, 39],
- 'yellow' : [33, 39]
-};
-
-// Don't use 'blue' not visible on cmd.exe
-inspect.styles = {
- 'special': 'cyan',
- 'number': 'yellow',
- 'boolean': 'yellow',
- 'undefined': 'grey',
- 'null': 'bold',
- 'string': 'green',
- 'date': 'magenta',
- // "name": intentionally not styling
- 'regexp': 'red'
-};
-
-
-function stylizeWithColor(str, styleType) {
- var style = inspect.styles[styleType];
-
- if (style) {
- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
- '\u001b[' + inspect.colors[style][1] + 'm';
- } else {
- return str;
- }
-}
-
-
-function stylizeNoColor(str, styleType) {
- return str;
-}
-
-
-function arrayToHash(array) {
- var hash = {};
-
- array.forEach(function(val, idx) {
- hash[val] = true;
- });
-
- return hash;
-}
-
-
-function formatValue(ctx, value, recurseTimes) {
- // Provide a hook for user-specified inspect functions.
- // Check that value is an object with an inspect function on it
- if (ctx.customInspect &&
- value &&
- isFunction(value.inspect) &&
- // Filter out the util module, it's inspect function is special
- value.inspect !== exports.inspect &&
- // Also filter out any prototype objects using the circular check.
- !(value.constructor && value.constructor.prototype === value)) {
- var ret = value.inspect(recurseTimes, ctx);
- if (!isString(ret)) {
- ret = formatValue(ctx, ret, recurseTimes);
- }
- return ret;
- }
-
- // Primitive types cannot have properties
- var primitive = formatPrimitive(ctx, value);
- if (primitive) {
- return primitive;
- }
-
- // Look up the keys of the object.
- var keys = Object.keys(value);
- var visibleKeys = arrayToHash(keys);
-
- if (ctx.showHidden) {
- keys = Object.getOwnPropertyNames(value);
- }
-
- // IE doesn't make error fields non-enumerable
- // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
- if (isError(value)
- && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
- return formatError(value);
- }
-
- // Some type of object without properties can be shortcutted.
- if (keys.length === 0) {
- if (isFunction(value)) {
- var name = value.name ? ': ' + value.name : '';
- return ctx.stylize('[Function' + name + ']', 'special');
- }
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- }
- if (isDate(value)) {
- return ctx.stylize(Date.prototype.toString.call(value), 'date');
- }
- if (isError(value)) {
- return formatError(value);
- }
- }
-
- var base = '', array = false, braces = ['{', '}'];
-
- // Make Array say that they are Array
- if (isArray(value)) {
- array = true;
- braces = ['[', ']'];
- }
-
- // Make functions say that they are functions
- if (isFunction(value)) {
- var n = value.name ? ': ' + value.name : '';
- base = ' [Function' + n + ']';
- }
-
- // Make RegExps say that they are RegExps
- if (isRegExp(value)) {
- base = ' ' + RegExp.prototype.toString.call(value);
- }
-
- // Make dates with properties first say the date
- if (isDate(value)) {
- base = ' ' + Date.prototype.toUTCString.call(value);
- }
-
- // Make error with message first say the error
- if (isError(value)) {
- base = ' ' + formatError(value);
- }
-
- if (keys.length === 0 && (!array || value.length == 0)) {
- return braces[0] + base + braces[1];
- }
-
- if (recurseTimes < 0) {
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- } else {
- return ctx.stylize('[Object]', 'special');
- }
- }
-
- ctx.seen.push(value);
-
- var output;
- if (array) {
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
- } else {
- output = keys.map(function(key) {
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
- });
- }
-
- ctx.seen.pop();
-
- return reduceToSingleString(output, base, braces);
-}
-
-
-function formatPrimitive(ctx, value) {
- if (isUndefined(value))
- return ctx.stylize('undefined', 'undefined');
- if (isString(value)) {
- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"') + '\'';
- return ctx.stylize(simple, 'string');
- }
- if (isNumber(value))
- return ctx.stylize('' + value, 'number');
- if (isBoolean(value))
- return ctx.stylize('' + value, 'boolean');
- // For some reason typeof null is "object", so special case here.
- if (isNull(value))
- return ctx.stylize('null', 'null');
-}
-
-
-function formatError(value) {
- return '[' + Error.prototype.toString.call(value) + ']';
-}
-
-
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
- var output = [];
- for (var i = 0, l = value.length; i < l; ++i) {
- if (hasOwnProperty(value, String(i))) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- String(i), true));
- } else {
- output.push('');
- }
- }
- keys.forEach(function(key) {
- if (!key.match(/^\d+$/)) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- key, true));
- }
- });
- return output;
-}
-
-
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
- var name, str, desc;
- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
- if (desc.get) {
- if (desc.set) {
- str = ctx.stylize('[Getter/Setter]', 'special');
- } else {
- str = ctx.stylize('[Getter]', 'special');
- }
- } else {
- if (desc.set) {
- str = ctx.stylize('[Setter]', 'special');
- }
- }
- if (!hasOwnProperty(visibleKeys, key)) {
- name = '[' + key + ']';
- }
- if (!str) {
- if (ctx.seen.indexOf(desc.value) < 0) {
- if (isNull(recurseTimes)) {
- str = formatValue(ctx, desc.value, null);
- } else {
- str = formatValue(ctx, desc.value, recurseTimes - 1);
- }
- if (str.indexOf('\n') > -1) {
- if (array) {
- str = str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n').substr(2);
- } else {
- str = '\n' + str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n');
- }
- }
- } else {
- str = ctx.stylize('[Circular]', 'special');
- }
- }
- if (isUndefined(name)) {
- if (array && key.match(/^\d+$/)) {
- return str;
- }
- name = JSON.stringify('' + key);
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
- name = name.substr(1, name.length - 2);
- name = ctx.stylize(name, 'name');
- } else {
- name = name.replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- .replace(/(^"|"$)/g, "'");
- name = ctx.stylize(name, 'string');
- }
- }
-
- return name + ': ' + str;
-}
-
-
-function reduceToSingleString(output, base, braces) {
- var numLinesEst = 0;
- var length = output.reduce(function(prev, cur) {
- numLinesEst++;
- if (cur.indexOf('\n') >= 0) numLinesEst++;
- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
- }, 0);
-
- if (length > 60) {
- return braces[0] +
- (base === '' ? '' : base + '\n ') +
- ' ' +
- output.join(',\n ') +
- ' ' +
- braces[1];
- }
-
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
-}
-
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-function isArray(ar) {
- return Array.isArray(ar);
+ return objectToString(arg) === '[object Array]';
}
exports.isArray = isArray;
@@ -13813,7 +10902,7 @@ function isUndefined(arg) {
exports.isUndefined = isUndefined;
function isRegExp(re) {
- return isObject(re) && objectToString(re) === '[object RegExp]';
+ return objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;
@@ -13823,13 +10912,12 @@ function isObject(arg) {
exports.isObject = isObject;
function isDate(d) {
- return isObject(d) && objectToString(d) === '[object Date]';
+ return objectToString(d) === '[object Date]';
}
exports.isDate = isDate;
function isError(e) {
- return isObject(e) &&
- (objectToString(e) === '[object Error]' || e instanceof Error);
+ return (objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;
@@ -13848,1008 +10936,14 @@ function isPrimitive(arg) {
}
exports.isPrimitive = isPrimitive;
-exports.isBuffer = require('./support/isBuffer');
+exports.isBuffer = Buffer.isBuffer;
function objectToString(o) {
return Object.prototype.toString.call(o);
}
-
-function pad(n) {
- return n < 10 ? '0' + n.toString(10) : n.toString(10);
-}
-
-
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
- 'Oct', 'Nov', 'Dec'];
-
-// 26 Feb 16:19:34
-function timestamp() {
- var d = new Date();
- var time = [pad(d.getHours()),
- pad(d.getMinutes()),
- pad(d.getSeconds())].join(':');
- return [d.getDate(), months[d.getMonth()], time].join(' ');
-}
-
-
-// log is just a thin wrapper to console.log that prepends a timestamp
-exports.log = function() {
- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
-};
-
-
-/**
- * Inherit the prototype methods from one constructor into another.
- *
- * The Function.prototype.inherits from lang.js rewritten as a standalone
- * function (not on Function.prototype). NOTE: If this file is to be loaded
- * during bootstrapping this function needs to be rewritten using some native
- * functions as prototype setup using normal JavaScript does not work as
- * expected during bootstrapping (see mirror.js in r114903).
- *
- * @param {function} ctor Constructor function which needs to inherit the
- * prototype.
- * @param {function} superCtor Constructor function to inherit prototype from.
- */
-exports.inherits = require('inherits');
-
-exports._extend = function(origin, add) {
- // Don't do anything if add isn't an object
- if (!add || !isObject(add)) return origin;
-
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
-};
-
-function hasOwnProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":27,"_process":10,"inherits":7}],29:[function(require,module,exports){
-var util = require('util');
-var intersect = require('intersect');
-var WildEmitter = require('wildemitter');
-var webrtc = require('webrtcsupport');
-
-var BaseSession = require('jingle-session');
-var MediaSession = require('jingle-media-session');
-var FileSession = require('jingle-filetransfer-session');
-
-
-function SessionManager(conf) {
- WildEmitter.call(this);
-
- conf = conf || {};
-
- this.jid = conf.jid;
- this.selfID = conf.selfID || (this.jid && this.jid.full) || this.jid || '';
-
- this.sessions = {};
- this.peers = {};
-
- this.prepareSession = conf.prepareSession || function (opts) {
- if (opts.descriptionTypes.indexOf('rtp') >= 0) {
- return new MediaSession(opts);
- }
- if (opts.descriptionTypes.indexOf('filetransfer') >= 0) {
- return new FileSession(opts);
- }
- };
-
- this.performTieBreak = conf.performTieBreak || function (sess, req) {
- var descriptionTypes = req.jingle.contents.map(function (content) {
- if (content.description) {
- return content.description.descType;
- }
- });
-
- var matching = intersect(sess.pendingDescriptionTypes, descriptionTypes);
-
- return matching.length > 0;
- };
-
- this.screenSharingSupport = webrtc.screenSharing;
-
- this.capabilities = [
- 'urn:xmpp:jingle:1'
- ];
- if (webrtc.support) {
- this.capabilities = [
- 'urn:xmpp:jingle:1',
- 'urn:xmpp:jingle:apps:rtp:1',
- 'urn:xmpp:jingle:apps:rtp:audio',
- 'urn:xmpp:jingle:apps:rtp:video',
- 'urn:xmpp:jingle:apps:rtp:rtcb-fb:0',
- 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
- 'urn:xmpp:jingle:apps:rtp:ssma:0',
- 'urn:xmpp:jingle:apps:dtls:0',
- 'urn:xmpp:jingle:apps:grouping:0',
- 'urn:xmpp:jingle:apps:file-transfer:3',
- 'urn:xmpp:jingle:transports:ice-udp:1',
- 'urn:xmpp:jingle:transports.dtls-sctp:1',
- 'urn:ietf:rfc:3264',
- 'urn:ietf:rfc:5576',
- 'urn:ietf:rfc:5888'
- ];
- }
-
- this.config = {
- debug: false,
- peerConnectionConfig: {
- iceServers: conf.iceServers || [{'url': 'stun:stun.l.google.com:19302'}]
- },
- peerConnectionConstraints: {
- optional: [
- {DtlsSrtpKeyAgreement: true},
- {RtpDataChannels: false}
- ]
- },
- media: {
- audio: true,
- video: true
- }
- };
-
- for (var item in conf) {
- this.config[item] = conf[item];
- }
-
- this.iceServers = this.config.peerConnectionConfig.iceServers;
-}
-
-
-util.inherits(SessionManager, WildEmitter);
-
-
-SessionManager.prototype.addICEServer = function (server) {
- // server == {
- // url: '',
- // [username: '',]
- // [credential: '']
- // }
- if (typeof server === 'string') {
- server = {url: server};
- }
- this.iceServers.push(server);
-};
-
-SessionManager.prototype.addSession = function (session) {
- var self = this;
-
- var sid = session.sid;
- var peer = session.peerID;
-
- this.sessions[sid] = session;
- if (!this.peers[peer]) {
- this.peers[peer] = [];
- }
-
- this.peers[peer].push(session);
-
- // Automatically clean up tracked sessions
- session.on('terminated', function () {
- var peers = self.peers[peer] || [];
- if (peers.length) {
- peers.splice(peers.indexOf(session), 1);
- }
- delete self.sessions[sid];
- });
-
- // Proxy session events
- session.on('*', function (name, data, extraData, extraData2) {
- // Listen for when we actually try to start a session to
- // trigger the outgoing event.
- if (name === 'send') {
- var action = data.jingle && data.jingle.action;
- if (session.isInitiator && action === 'session-initiate') {
- self.emit('outgoing', session);
- }
- }
-
- if (self.config.debug && (name === 'log:debug' || name === 'log:error')) {
- console.log('Jingle:', data, extraData, extraData2);
- }
-
- // Don't proxy change:* events, since those don't apply to
- // the session manager itself.
- if (name.indexOf('change') === 0) {
- return;
- }
-
- self.emit(name, data, extraData, extraData2);
- });
-
- this.emit('createdSession', session);
-
- return session;
-};
-
-SessionManager.prototype.createMediaSession = function (peer, sid, stream) {
- var session = new MediaSession({
- sid: sid,
- peer: peer,
- initiator: true,
- stream: stream,
- parent: this,
- iceServers: this.iceServers,
- constraints: this.config.peerConnectionConstraints
- });
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype.createFileTransferSession = function (peer, sid) {
- var session = new FileSession({
- sid: sid,
- peer: peer,
- initiator: true,
- parent: this
- });
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype.endPeerSessions = function (peer, reason, silent) {
- peer = peer.full || peer;
-
- var sessions = this.peers[peer] || [];
- delete this.peers[peer];
-
- sessions.forEach(function (session) {
- session.end(reason || 'gone', silent);
- });
-};
-
-SessionManager.prototype.endAllSessions = function (reason, silent) {
- var self = this;
- Object.keys(this.peers).forEach(function (peer) {
- self.endPeerSessions(peer, reason, silent);
- });
-};
-
-SessionManager.prototype._createIncomingSession = function (meta, req) {
- var session;
-
- if (this.prepareSession) {
- session = this.prepareSession(meta, req);
- }
-
- // Fallback to a generic session type, which can
- // only be used to end the session.
-
- if (!session) {
- session = new BaseSession(meta);
- }
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype._sendError = function (to, id, data) {
- if (!data.type) {
- data.type = 'cancel';
- }
- this.emit('send', {
- to: to,
- id: id,
- type: 'error',
- error: data
- });
-};
-
-SessionManager.prototype._log = function (level, message) {
- this.emit('log:' + level, message);
-};
-
-SessionManager.prototype.process = function (req) {
- var self = this;
-
- // Extract the request metadata that we need to verify
- var sid = !!req.jingle ? req.jingle.sid : null;
- var session = this.sessions[sid] || null;
- var rid = req.id;
- var sender = req.from.full || req.from;
-
-
- if (req.type === 'error') {
- var isTieBreak = req.error && req.error.jingleCondition === 'tie-break';
- if (session && session.pending && isTieBreak) {
- return session.end('alternative-session', true);
- } else {
- if (session) {
- session.pendingAction = false;
- }
- return this.emit('error', req);
- }
- }
-
- if (req.type === 'result') {
- if (session) {
- session.pendingAction = false;
- }
- return;
- }
-
- var action = req.jingle.action;
- var contents = req.jingle.contents || [];
-
- var descriptionTypes = contents.map(function (content) {
- if (content.description) {
- return content.description.descType;
- }
- });
- var transportTypes = contents.map(function (content) {
- if (content.transport) {
- return content.transport.transType;
- }
- });
-
-
- // Now verify that we are allowed to actually process the
- // requested action
-
- if (action !== 'session-initiate') {
- // Can't modify a session that we don't have.
- if (!session) {
- this._log('error', 'Unknown session', sid);
- return this._sendError(sender, rid, {
- condition: 'item-not-found',
- jingleCondition: 'unknown-session'
- });
- }
-
- // Check if someone is trying to hijack a session.
- if (session.peerID !== sender || session.ended) {
- this._log('error', 'Session has ended, or action has wrong sender');
- return this._sendError(sender, rid, {
- condition: 'item-not-found',
- jingleCondition: 'unknown-session'
- });
- }
-
- // Can't accept a session twice
- if (action === 'session-accept' && !session.pending) {
- this._log('error', 'Tried to accept session twice', sid);
- return this._sendError(sender, rid, {
- condition: 'unexpected-request',
- jingleCondition: 'out-of-order'
- });
- }
-
- // Can't process two requests at once, need to tie break
- if (action !== 'session-terminate' && action === session.pendingAction) {
- this._log('error', 'Tie break during pending request');
- if (session.isInitiator) {
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- }
- } else if (session) {
- // Don't accept a new session if we already have one.
- if (session.peerID !== sender) {
- this._log('error', 'Duplicate sid from new sender');
- return this._sendError(sender, rid, {
- condition: 'service-unavailable'
- });
- }
-
- // Check if we need to have a tie breaker because both parties
- // happened to pick the same random sid.
- if (session.pending) {
- if (this.selfID > session.peerID && this.performTieBreak(session, req)) {
- this._log('error', 'Tie break new session because of duplicate sids');
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- } else {
- // The other side is just doing it wrong.
- this._log('error', 'Someone is doing this wrong');
- return this._sendError(sender, rid, {
- condition: 'unexpected-request',
- jingleCondition: 'out-of-order'
- });
- }
- } else if (this.peers[sender] && this.peers[sender].length) {
- // Check if we need to have a tie breaker because we already have
- // a different session with this peer that is using the requested
- // content description types.
- for (var i = 0, len = this.peers[sender].length; i < len; i++) {
- var sess = this.peers[sender][i];
- if (sess && sess.pending && sess.sid > sid && this.performTieBreak(sess, req)) {
- this._log('info', 'Tie break session-initiate');
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- }
- }
-
- // We've now weeded out invalid requests, so we can process the action now.
-
- if (action === 'session-initiate') {
- if (!contents.length) {
- return self._sendError(sender, rid, {
- condition: 'bad-request'
- });
- }
-
- session = this._createIncomingSession({
- sid: sid,
- peer: req.from,
- peerID: sender,
- initiator: false,
- parent: this,
- descriptionTypes: descriptionTypes,
- transportTypes: transportTypes,
- iceServers: this.iceServers,
- constraints: this.config.peerConnectionConstraints
- }, req);
- }
-
- session.process(action, req.jingle, function (err) {
- if (err) {
- self._log('error', 'Could not process request', req, err);
- self._sendError(sender, rid, err);
- } else {
- self.emit('send', {
- to: sender,
- id: rid,
- type: 'result',
- });
-
- // Wait for the initial action to be processed before emitting
- // the session for the user to accept/reject.
- if (action === 'session-initiate') {
- self.emit('incoming', session);
- }
- }
- });
-};
-
-
-module.exports = SessionManager;
-
-},{"intersect":31,"jingle-filetransfer-session":32,"jingle-media-session":86,"jingle-session":118,"util":28,"webrtcsupport":123,"wildemitter":124}],30:[function(require,module,exports){
-var arr = [];
-var each = arr.forEach;
-var slice = arr.slice;
-
-
-module.exports = function(obj) {
- each.call(slice.call(arguments, 1), function(source) {
- if (source) {
- for (var prop in source) {
- obj[prop] = source[prop];
- }
- }
- });
- return obj;
-};
-
-},{}],31:[function(require,module,exports){
-module.exports = intersect;
-
-function intersect (a, b) {
- var res = [];
- for (var i = 0; i < a.length; i++) {
- if (indexOf(b, a[i]) > -1) res.push(a[i]);
- }
- return res;
-}
-
-intersect.big = function(a, b) {
- var ret = [];
- var temp = {};
-
- for (var i = 0; i < b.length; i++) {
- temp[b[i]] = true;
- }
- for (var i = 0; i < a.length; i++) {
- if (temp[a[i]]) ret.push(a[i]);
- }
-
- return ret;
-}
-
-function indexOf(arr, el) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === el) return i;
- }
- return -1;
-}
-
-},{}],32:[function(require,module,exports){
-var util = require('util');
-var extend = require('extend-object');
-var BaseSession = require('jingle-session');
-var RTCPeerConnection = require('rtcpeerconnection');
-var FileTransfer = require('filetransfer/hashed');
-
-
-function FileTransferSession(opts) {
- BaseSession.call(this, opts);
-
- this.pc = new RTCPeerConnection({
- iceServers: opts.iceServers || [],
- useJingle: true
- }, opts.constraints || {});
-
- this.pc.on('ice', this.onIceCandidate.bind(this));
- this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
- this.pc.on('addChannel', this.onChannelAdded.bind(this));
-
- this.sender = null;
- this.receiver = null;
-}
-
-
-util.inherits(FileTransferSession, BaseSession);
-
-
-FileTransferSession.prototype = extend(FileTransferSession.prototype, {
-
- // ----------------------------------------------------------------
- // Session control methods
- // ----------------------------------------------------------------
-
- start: function (file) {
- var self = this;
- this.state = 'pending';
-
- this.pc.isInitiator = true;
-
- this.sender = new FileTransfer.Sender();
- this.sender.on('progress', function (sent, size) {
- self._log('info', 'Send progress ' + sent + '/' + size);
- });
- this.sender.on('sentFile', function (meta) {
- self._log('info', 'Sent file', meta.name);
-
- var content = self.pc.localDescription.contents[0];
- delete content.transport;
-
- content.description = {
- descType: 'filetransfer',
- offer: {
- hash: {
- algo: meta.algo,
- value: meta.hash
- }
- }
- };
-
- self.send('description-info', {
- contents: [content]
- });
- self.emit('sentFile', self, meta);
- });
-
- var sendChannel = this.pc.createDataChannel('filetransfer');
- sendChannel.onopen = function () {
- self.sender.send(file, sendChannel);
- };
-
- var constraints = {
- mandatory: {
- OfferToReceiveAudio: false,
- OfferToReceiveVideo: false
- }
- };
-
- this.pc.offer(constraints, function (err, offer) {
- if (err) {
- self._log('error', 'Could not create WebRTC offer', err);
- return self.end('failed-application', true);
- }
-
- offer.jingle.contents[0].description = {
- descType: 'filetransfer',
- offer: {
- date: file.lastModifiedDate,
- name: file.name,
- size: file.size,
- hash: {
- algo: 'sha-1',
- value: ''
- }
- }
- };
-
- self.send('session-initiate', offer.jingle);
- });
- },
-
- accept: function () {
- var self = this;
-
- this._log('info', 'Accepted incoming session');
-
- this.state = 'active';
-
- this.pc.answer(function (err, answer) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer', err);
- return self.end('failed-application');
- }
- self.send('session-accept', answer.jingle);
- });
- },
-
- end: function (reason, silent) {
- this.pc.close();
- BaseSession.prototype.end.call(this, reason, silent);
- },
-
- maybeReceivedFile: function () {
- if (!this.receiver.metadata.hash.value) {
- // unknown hash, file transfer not completed
- } else if (this.receiver.metadata.hash.value === this.receiver.metadata.actualhash) {
- this._log('info', 'File hash matches');
- this.emit('receivedFile', this, this.receivedFile, this.receiver.metadata);
- this.end('success');
- } else {
- this._log('error', 'File hash does not match');
- this.end('media-error');
- }
- },
-
- // ----------------------------------------------------------------
- // ICE action handers
- // ----------------------------------------------------------------
-
- onIceCandidate: function (candidate) {
- this._log('info', 'Discovered new ICE candidate', candidate.jingle);
- this.send('transport-info', candidate.jingle);
- },
-
- onIceStateChange: function () {
- switch (this.pc.iceConnectionState) {
- case 'checking':
- this.connectionState = 'connecting';
- break;
- case 'completed':
- case 'connected':
- this.connectionState = 'connected';
- break;
- case 'disconnected':
- if (this.pc.signalingState === 'stable') {
- this.connectionState = 'interrupted';
- } else {
- this.connectionState = 'disconnected';
- }
- break;
- case 'failed':
- this.connectionState = 'failed';
- this.end('failed-transport');
- break;
- case 'closed':
- this.connectionState = 'disconnected';
- break;
- }
- },
-
- onChannelAdded: function (channel) {
- this.receiver.receive(null, channel);
- },
-
- // ----------------------------------------------------------------
- // Jingle action handers
- // ----------------------------------------------------------------
-
- onSessionInitiate: function (changes, cb) {
- var self = this;
-
- this._log('info', 'Initiating incoming session');
-
- this.state = 'pending';
-
- this.pc.isInitiator = false;
-
- var desc = changes.contents[0].description;
-
-
- this.receiver = new FileTransfer.Receiver({hash: desc.offer.hash.algo});
- this.receiver.on('progress', function (received, size) {
- self._log('info', 'Receive progress ' + received + '/' + size);
- });
- this.receiver.on('receivedFile', function (file) {
- self.receivedFile = file;
- self.maybeReceivedFile();
- });
- this.receiver.metadata = desc.offer;
-
- changes.contents[0].description = {
- descType: 'datachannel'
- };
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer');
- return cb({condition: 'general-error'});
- }
- cb();
- });
- },
-
- onSessionAccept: function (changes, cb) {
- var self = this;
-
- this.state = 'active';
-
- changes.contents[0].description = {
- descType: 'datachannel'
- };
-
- this.pc.handleAnswer({
- type: 'answer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not process WebRTC answer');
- return cb({condition: 'general-error'});
- }
- self.emit('accepted', self);
- cb();
- });
- },
-
- onSessionTerminate: function (changes, cb) {
- this._log('info', 'Terminating session');
- this.pc.close();
- BaseSession.prototype.end.call(this, changes.reason, true);
- cb();
- },
-
- onDescriptionInfo: function (info, cb) {
- var hash = info.contents[0].description.offer.hash;
- this.receiver.metadata.hash = hash;
- if (this.receiver.metadata.actualhash) {
- this.maybeReceivedFile();
- }
- cb();
- },
-
- onTransportInfo: function (changes, cb) {
- this.pc.processIce(changes, function () {
- cb();
- });
- }
-});
-
-
-module.exports = FileTransferSession;
-
-},{"extend-object":30,"filetransfer/hashed":34,"jingle-session":118,"rtcpeerconnection":85,"util":28}],33:[function(require,module,exports){
-var WildEmitter = require('wildemitter');
-var util = require('util');
-
-function Sender(opts) {
- WildEmitter.call(this);
- var options = opts || {};
- this.config = {
- chunksize: 16384,
- pacing: 0
- };
- // set our config from options
- var item;
- for (item in options) {
- this.config[item] = options[item];
- }
-
- this.file = null;
- this.channel = null;
-}
-util.inherits(Sender, WildEmitter);
-
-Sender.prototype.send = function (file, channel) {
- var self = this;
- this.file = file;
- this.channel = channel;
- var sliceFile = function(offset) {
- var reader = new window.FileReader();
- reader.onload = (function() {
- return function(e) {
- self.channel.send(e.target.result);
- self.emit('progress', offset, file.size, e.target.result);
- if (file.size > offset + e.target.result.byteLength) {
- window.setTimeout(sliceFile, self.config.pacing, offset + self.config.chunksize);
- } else {
- self.emit('progress', file.size, file.size, null);
- self.emit('sentFile');
- }
- };
- })(file);
- var slice = file.slice(offset, offset + self.config.chunksize);
- reader.readAsArrayBuffer(slice);
- };
- window.setTimeout(sliceFile, 0, 0);
-};
-
-function Receiver() {
- WildEmitter.call(this);
-
- this.receiveBuffer = [];
- this.received = 0;
- this.metadata = {};
- this.channel = null;
-}
-util.inherits(Receiver, WildEmitter);
-
-Receiver.prototype.receive = function (metadata, channel) {
- var self = this;
-
- if (metadata) {
- this.metadata = metadata;
- }
- this.channel = channel;
- // chrome only supports arraybuffers and those make it easier to calc the hash
- channel.binaryType = 'arraybuffer';
- this.channel.onmessage = function (event) {
- var len = event.data.byteLength;
- self.received += len;
- self.receiveBuffer.push(event.data);
-
- self.emit('progress', self.received, self.metadata.size, event.data);
- if (self.received === self.metadata.size) {
- self.emit('receivedFile', new window.Blob(self.receiveBuffer), self.metadata);
- self.receiveBuffer = []; // discard receivebuffer
- } else if (self.received > self.metadata.size) {
- // FIXME
- console.error('received more than expected, discarding...');
- self.receiveBuffer = []; // just discard...
-
- }
- };
-};
-
-module.exports = {};
-module.exports.support = typeof window !== 'undefined' && window && window.File && window.FileReader && window.Blob;
-module.exports.Sender = Sender;
-module.exports.Receiver = Receiver;
-
-},{"util":28,"wildemitter":53}],34:[function(require,module,exports){
-var WildEmitter = require('wildemitter');
-var util = require('util');
-var hashes = require('iana-hashes');
-var base = require('./filetransfer');
-
-// drop-in replacement for filetransfer which also calculates hashes
-function Sender(opts) {
- WildEmitter.call(this);
- var self = this;
- this.base = new base.Sender(opts);
-
- var options = opts || {};
- if (!options.hash) {
- options.hash = 'sha-1';
- }
- this.hash = hashes.createHash(options.hash);
-
- this.base.on('progress', function (start, size, data) {
- self.emit('progress', start, size, data);
- if (data) {
- self.hash.update(new Uint8Array(data));
- }
- });
- this.base.on('sentFile', function () {
- self.emit('sentFile', {hash: self.hash.digest('hex'), algo: options.hash });
- });
-}
-util.inherits(Sender, WildEmitter);
-Sender.prototype.send = function () {
- this.base.send.apply(this.base, arguments);
-};
-
-function Receiver(opts) {
- WildEmitter.call(this);
- var self = this;
- this.base = new base.Receiver(opts);
-
- var options = opts || {};
- if (!options.hash) {
- options.hash = 'sha-1';
- }
- this.hash = hashes.createHash(options.hash);
-
- this.base.on('progress', function (start, size, data) {
- self.emit('progress', start, size, data);
- if (data) {
- self.hash.update(new Uint8Array(data));
- }
- });
- this.base.on('receivedFile', function (file, metadata) {
- metadata.actualhash = self.hash.digest('hex');
- self.emit('receivedFile', file, metadata);
- });
-}
-util.inherits(Receiver, WildEmitter);
-Receiver.prototype.receive = function () {
- this.base.receive.apply(this.base, arguments);
-};
-Object.defineProperty(Receiver.prototype, 'metadata', {
- get: function () {
- return this.base.metadata;
- },
- set: function (value) {
- this.base.metadata = value;
- }
-});
-
-module.exports = {};
-module.exports.support = base.support;
-module.exports.Sender = Sender;
-module.exports.Receiver = Receiver;
-
-},{"./filetransfer":33,"iana-hashes":35,"util":28,"wildemitter":53}],35:[function(require,module,exports){
-var createHash = require('create-hash');
-var createHmac = require('create-hmac');
-var getHashes = require('./lib/get-hashes');
-
-var mapping = {
- md2: 'md2',
- md5: 'md5',
- 'sha-1': 'sha1',
- 'sha-224': 'sha224',
- 'sha-256': 'sha256',
- 'sha-384': 'sha384',
- 'sha-512': 'sha512'
-};
-
-var names = Object.keys(mapping);
-
-
-exports.getHashes = function () {
- var result = [];
- var available = getHashes();
- for (var i = 0, len = names.length; i < len; i++) {
- if (available.indexOf(mapping[names[i]]) >= 0) {
- result.push(names[i]);
- }
- }
- return result;
-};
-
-exports.createHash = function (algorithm) {
- algorithm = algorithm.toLowerCase();
- if (mapping[algorithm]) {
- algorithm = mapping[algorithm];
- }
- return createHash(algorithm);
-};
-
-exports.createHmac = function (algorithm, key) {
- algorithm = algorithm.toLowerCase();
- if (mapping[algorithm]) {
- algorithm = mapping[algorithm];
- }
- return createHmac(algorithm, key);
-};
-
-},{"./lib/get-hashes":36,"create-hash":37,"create-hmac":51}],36:[function(require,module,exports){
-module.exports = function () {
- return ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'];
-};
-
-},{}],37:[function(require,module,exports){
+}).call(this,{"isBuffer":require("../../is-buffer/index.js")})
+},{"../../is-buffer/index.js":47}],23:[function(require,module,exports){
(function (Buffer){
'use strict';
var inherits = require('inherits')
@@ -14905,7 +10999,7 @@ module.exports = function createHash (alg) {
}
}).call(this,require("buffer").Buffer)
-},{"./md5":39,"buffer":2,"cipher-base":40,"inherits":41,"ripemd160":42,"sha.js":44}],38:[function(require,module,exports){
+},{"./md5":25,"buffer":6,"cipher-base":7,"inherits":45,"ripemd160":166,"sha.js":175}],24:[function(require,module,exports){
(function (Buffer){
'use strict';
var intSize = 4;
@@ -14942,7 +11036,7 @@ function hash(buf, fn, hashSize, bigEndian) {
}
exports.hash = hash;
}).call(this,require("buffer").Buffer)
-},{"buffer":2}],39:[function(require,module,exports){
+},{"buffer":6}],25:[function(require,module,exports){
'use strict';
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
@@ -15099,1142 +11193,7 @@ function bit_rol(num, cnt)
module.exports = function md5(buf) {
return helpers.hash(buf, core_md5, 16);
};
-},{"./helpers":38}],40:[function(require,module,exports){
-(function (Buffer){
-var Transform = require('stream').Transform
-var inherits = require('inherits')
-var StringDecoder = require('string_decoder').StringDecoder
-module.exports = CipherBase
-inherits(CipherBase, Transform)
-function CipherBase (hashMode) {
- Transform.call(this)
- this.hashMode = typeof hashMode === 'string'
- if (this.hashMode) {
- this[hashMode] = this._finalOrDigest
- } else {
- this.final = this._finalOrDigest
- }
- this._decoder = null
- this._encoding = null
-}
-CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
- if (typeof data === 'string') {
- data = new Buffer(data, inputEnc)
- }
- var outData = this._update(data)
- if (this.hashMode) {
- return this
- }
- if (outputEnc) {
- outData = this._toString(outData, outputEnc)
- }
- return outData
-}
-
-CipherBase.prototype.setAutoPadding = function () {}
-
-CipherBase.prototype.getAuthTag = function () {
- throw new Error('trying to get auth tag in unsupported state')
-}
-
-CipherBase.prototype.setAuthTag = function () {
- throw new Error('trying to set auth tag in unsupported state')
-}
-
-CipherBase.prototype.setAAD = function () {
- throw new Error('trying to set aad in unsupported state')
-}
-
-CipherBase.prototype._transform = function (data, _, next) {
- var err
- try {
- if (this.hashMode) {
- this._update(data)
- } else {
- this.push(this._update(data))
- }
- } catch (e) {
- err = e
- } finally {
- next(err)
- }
-}
-CipherBase.prototype._flush = function (done) {
- var err
- try {
- this.push(this._final())
- } catch (e) {
- err = e
- } finally {
- done(err)
- }
-}
-CipherBase.prototype._finalOrDigest = function (outputEnc) {
- var outData = this._final() || new Buffer('')
- if (outputEnc) {
- outData = this._toString(outData, outputEnc, true)
- }
- return outData
-}
-
-CipherBase.prototype._toString = function (value, enc, final) {
- if (!this._decoder) {
- this._decoder = new StringDecoder(enc)
- this._encoding = enc
- }
- if (this._encoding !== enc) {
- throw new Error('can\'t switch encodings')
- }
- var out = this._decoder.write(value)
- if (final) {
- out += this._decoder.end()
- }
- return out
-}
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":2,"inherits":41,"stream":25,"string_decoder":26}],41:[function(require,module,exports){
-arguments[4][7][0].apply(exports,arguments)
-},{"dup":7}],42:[function(require,module,exports){
-(function (Buffer){
-/*
-CryptoJS v3.1.2
-code.google.com/p/crypto-js
-(c) 2009-2013 by Jeff Mott. All rights reserved.
-code.google.com/p/crypto-js/wiki/License
-*/
-/** @preserve
-(c) 2012 by Cédric Mesnil. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// constants table
-var zl = [
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
- 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
- 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
- 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
-]
-
-var zr = [
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
- 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
- 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
- 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
- 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
-]
-
-var sl = [
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
- 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
- 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
-]
-
-var sr = [
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
- 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
- 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
-]
-
-var hl = [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]
-var hr = [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]
-
-function bytesToWords (bytes) {
- var words = []
- for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
- words[b >>> 5] |= bytes[i] << (24 - b % 32)
- }
- return words
-}
-
-function wordsToBytes (words) {
- var bytes = []
- for (var b = 0; b < words.length * 32; b += 8) {
- bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)
- }
- return bytes
-}
-
-function processBlock (H, M, offset) {
- // swap endian
- for (var i = 0; i < 16; i++) {
- var offset_i = offset + i
- var M_offset_i = M[offset_i]
-
- // Swap
- M[offset_i] = (
- (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
- (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
- )
- }
-
- // Working variables
- var al, bl, cl, dl, el
- var ar, br, cr, dr, er
-
- ar = al = H[0]
- br = bl = H[1]
- cr = cl = H[2]
- dr = dl = H[3]
- er = el = H[4]
-
- // computation
- var t
- for (i = 0; i < 80; i += 1) {
- t = (al + M[offset + zl[i]]) | 0
- if (i < 16) {
- t += f1(bl, cl, dl) + hl[0]
- } else if (i < 32) {
- t += f2(bl, cl, dl) + hl[1]
- } else if (i < 48) {
- t += f3(bl, cl, dl) + hl[2]
- } else if (i < 64) {
- t += f4(bl, cl, dl) + hl[3]
- } else {// if (i<80) {
- t += f5(bl, cl, dl) + hl[4]
- }
- t = t | 0
- t = rotl(t, sl[i])
- t = (t + el) | 0
- al = el
- el = dl
- dl = rotl(cl, 10)
- cl = bl
- bl = t
-
- t = (ar + M[offset + zr[i]]) | 0
- if (i < 16) {
- t += f5(br, cr, dr) + hr[0]
- } else if (i < 32) {
- t += f4(br, cr, dr) + hr[1]
- } else if (i < 48) {
- t += f3(br, cr, dr) + hr[2]
- } else if (i < 64) {
- t += f2(br, cr, dr) + hr[3]
- } else {// if (i<80) {
- t += f1(br, cr, dr) + hr[4]
- }
-
- t = t | 0
- t = rotl(t, sr[i])
- t = (t + er) | 0
- ar = er
- er = dr
- dr = rotl(cr, 10)
- cr = br
- br = t
- }
-
- // intermediate hash value
- t = (H[1] + cl + dr) | 0
- H[1] = (H[2] + dl + er) | 0
- H[2] = (H[3] + el + ar) | 0
- H[3] = (H[4] + al + br) | 0
- H[4] = (H[0] + bl + cr) | 0
- H[0] = t
-}
-
-function f1 (x, y, z) {
- return ((x) ^ (y) ^ (z))
-}
-
-function f2 (x, y, z) {
- return (((x) & (y)) | ((~x) & (z)))
-}
-
-function f3 (x, y, z) {
- return (((x) | (~(y))) ^ (z))
-}
-
-function f4 (x, y, z) {
- return (((x) & (z)) | ((y) & (~(z))))
-}
-
-function f5 (x, y, z) {
- return ((x) ^ ((y) | (~(z))))
-}
-
-function rotl (x, n) {
- return (x << n) | (x >>> (32 - n))
-}
-
-function ripemd160 (message) {
- var H = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]
-
- if (typeof message === 'string') {
- message = new Buffer(message, 'utf8')
- }
-
- var m = bytesToWords(message)
-
- var nBitsLeft = message.length * 8
- var nBitsTotal = message.length * 8
-
- // Add padding
- m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32)
- m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
- (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
- (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
- )
-
- for (var i = 0; i < m.length; i += 16) {
- processBlock(H, m, i)
- }
-
- // swap endian
- for (i = 0; i < 5; i++) {
- // shortcut
- var H_i = H[i]
-
- // Swap
- H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
- (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00)
- }
-
- var digestbytes = wordsToBytes(H)
- return new Buffer(digestbytes)
-}
-
-module.exports = ripemd160
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":2}],43:[function(require,module,exports){
-(function (Buffer){
-// prototype class for hash functions
-function Hash (blockSize, finalSize) {
- this._block = new Buffer(blockSize)
- this._finalSize = finalSize
- this._blockSize = blockSize
- this._len = 0
- this._s = 0
-}
-
-Hash.prototype.update = function (data, enc) {
- if (typeof data === 'string') {
- enc = enc || 'utf8'
- data = new Buffer(data, enc)
- }
-
- var l = this._len += data.length
- var s = this._s || 0
- var f = 0
- var buffer = this._block
-
- while (s < l) {
- var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
- var ch = (t - f)
-
- for (var i = 0; i < ch; i++) {
- buffer[(s % this._blockSize) + i] = data[i + f]
- }
-
- s += ch
- f += ch
-
- if ((s % this._blockSize) === 0) {
- this._update(buffer)
- }
- }
- this._s = s
-
- return this
-}
-
-Hash.prototype.digest = function (enc) {
- // Suppose the length of the message M, in bits, is l
- var l = this._len * 8
-
- // Append the bit 1 to the end of the message
- this._block[this._len % this._blockSize] = 0x80
-
- // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
- this._block.fill(0, this._len % this._blockSize + 1)
-
- if (l % (this._blockSize * 8) >= this._finalSize * 8) {
- this._update(this._block)
- this._block.fill(0)
- }
-
- // to this append the block which is equal to the number l written in binary
- // TODO: handle case where l is > Math.pow(2, 29)
- this._block.writeInt32BE(l, this._blockSize - 4)
-
- var hash = this._update(this._block) || this._hash()
-
- return enc ? hash.toString(enc) : hash
-}
-
-Hash.prototype._update = function () {
- throw new Error('_update must be implemented by subclass')
-}
-
-module.exports = Hash
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":2}],44:[function(require,module,exports){
-var exports = module.exports = function SHA (algorithm) {
- algorithm = algorithm.toLowerCase()
-
- var Algorithm = exports[algorithm]
- if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
-
- return new Algorithm()
-}
-
-exports.sha = require('./sha')
-exports.sha1 = require('./sha1')
-exports.sha224 = require('./sha224')
-exports.sha256 = require('./sha256')
-exports.sha384 = require('./sha384')
-exports.sha512 = require('./sha512')
-
-},{"./sha":45,"./sha1":46,"./sha224":47,"./sha256":48,"./sha384":49,"./sha512":50}],45:[function(require,module,exports){
-(function (Buffer){
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
- * in FIPS PUB 180-1
- * This source code is derived from sha1.js of the same repository.
- * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
- * operation was added.
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var W = new Array(80)
-
-function Sha () {
- this.init()
- this._w = W
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha, Hash)
-
-Sha.prototype.init = function () {
- this._a = 0x67452301 | 0
- this._b = 0xefcdab89 | 0
- this._c = 0x98badcfe | 0
- this._d = 0x10325476 | 0
- this._e = 0xc3d2e1f0 | 0
-
- return this
-}
-
-/*
- * Bitwise rotate a 32-bit number to the left.
- */
-function rol (num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt))
-}
-
-Sha.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a
- var b = this._b
- var c = this._c
- var d = this._d
- var e = this._e
-
- var j = 0
- var k
-
- /*
- * SHA-1 has a bitwise rotate left operation. But, SHA is not
- * function calcW() { return rol(W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16], 1) }
- */
- function calcW () { return W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16] }
- function loop (w, f) {
- W[j] = w
-
- var t = rol(a, 5) + f + e + w + k
-
- e = d
- d = c
- c = rol(b, 30)
- b = a
- a = t
- j++
- }
-
- k = 1518500249
- while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
- while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
- k = 1859775393
- while (j < 40) loop(calcW(), b ^ c ^ d)
- k = -1894007588
- while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
- k = -899497514
- while (j < 80) loop(calcW(), b ^ c ^ d)
-
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
-}
-
-Sha.prototype._hash = function () {
- var H = new Buffer(20)
-
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
-
- return H
-}
-
-module.exports = Sha
-
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],46:[function(require,module,exports){
-(function (Buffer){
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- * in FIPS PUB 180-1
- * Version 2.1a Copyright Paul Johnston 2000 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for details.
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var W = new Array(80)
-
-function Sha1 () {
- this.init()
- this._w = W
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha1, Hash)
-
-Sha1.prototype.init = function () {
- this._a = 0x67452301 | 0
- this._b = 0xefcdab89 | 0
- this._c = 0x98badcfe | 0
- this._d = 0x10325476 | 0
- this._e = 0xc3d2e1f0 | 0
-
- return this
-}
-
-/*
- * Bitwise rotate a 32-bit number to the left.
- */
-function rol (num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt))
-}
-
-Sha1.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a
- var b = this._b
- var c = this._c
- var d = this._d
- var e = this._e
-
- var j = 0
- var k
-
- function calcW () { return rol(W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16], 1) }
- function loop (w, f) {
- W[j] = w
-
- var t = rol(a, 5) + f + e + w + k
-
- e = d
- d = c
- c = rol(b, 30)
- b = a
- a = t
- j++
- }
-
- k = 1518500249
- while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
- while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
- k = 1859775393
- while (j < 40) loop(calcW(), b ^ c ^ d)
- k = -1894007588
- while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
- k = -899497514
- while (j < 80) loop(calcW(), b ^ c ^ d)
-
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
-}
-
-Sha1.prototype._hash = function () {
- var H = new Buffer(20)
-
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
-
- return H
-}
-
-module.exports = Sha1
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],47:[function(require,module,exports){
-(function (Buffer){
-/**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
-
-var inherits = require('inherits')
-var Sha256 = require('./sha256')
-var Hash = require('./hash')
-
-var W = new Array(64)
-
-function Sha224 () {
- this.init()
-
- this._w = W // new Array(64)
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha224, Sha256)
-
-Sha224.prototype.init = function () {
- this._a = 0xc1059ed8 | 0
- this._b = 0x367cd507 | 0
- this._c = 0x3070dd17 | 0
- this._d = 0xf70e5939 | 0
- this._e = 0xffc00b31 | 0
- this._f = 0x68581511 | 0
- this._g = 0x64f98fa7 | 0
- this._h = 0xbefa4fa4 | 0
-
- return this
-}
-
-Sha224.prototype._hash = function () {
- var H = new Buffer(28)
-
- H.writeInt32BE(this._a, 0)
- H.writeInt32BE(this._b, 4)
- H.writeInt32BE(this._c, 8)
- H.writeInt32BE(this._d, 12)
- H.writeInt32BE(this._e, 16)
- H.writeInt32BE(this._f, 20)
- H.writeInt32BE(this._g, 24)
-
- return H
-}
-
-module.exports = Sha224
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"./sha256":48,"buffer":2,"inherits":41}],48:[function(require,module,exports){
-(function (Buffer){
-/**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
- 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
- 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
- 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
- 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
- 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
- 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
- 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
- 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
- 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
- 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
- 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
- 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
- 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
- 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
- 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
-]
-
-var W = new Array(64)
-
-function Sha256 () {
- this.init()
-
- this._w = W // new Array(64)
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha256, Hash)
-
-Sha256.prototype.init = function () {
- this._a = 0x6a09e667 | 0
- this._b = 0xbb67ae85 | 0
- this._c = 0x3c6ef372 | 0
- this._d = 0xa54ff53a | 0
- this._e = 0x510e527f | 0
- this._f = 0x9b05688c | 0
- this._g = 0x1f83d9ab | 0
- this._h = 0x5be0cd19 | 0
-
- return this
-}
-
-function Ch (x, y, z) {
- return z ^ (x & (y ^ z))
-}
-
-function Maj (x, y, z) {
- return (x & y) | (z & (x | y))
-}
-
-function Sigma0 (x) {
- return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
-}
-
-function Sigma1 (x) {
- return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
-}
-
-function Gamma0 (x) {
- return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
-}
-
-function Gamma1 (x) {
- return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
-}
-
-Sha256.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- var f = this._f | 0
- var g = this._g | 0
- var h = this._h | 0
-
- var j = 0
-
- function calcW () { return Gamma1(W[j - 2]) + W[j - 7] + Gamma0(W[j - 15]) + W[j - 16] }
- function loop (w) {
- W[j] = w
-
- var T1 = h + Sigma1(e) + Ch(e, f, g) + K[j] + w
- var T2 = Sigma0(a) + Maj(a, b, c)
-
- h = g
- g = f
- f = e
- e = d + T1
- d = c
- c = b
- b = a
- a = T1 + T2
-
- j++
- }
-
- while (j < 16) loop(M.readInt32BE(j * 4))
- while (j < 64) loop(calcW())
-
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
- this._f = (f + this._f) | 0
- this._g = (g + this._g) | 0
- this._h = (h + this._h) | 0
-}
-
-Sha256.prototype._hash = function () {
- var H = new Buffer(32)
-
- H.writeInt32BE(this._a, 0)
- H.writeInt32BE(this._b, 4)
- H.writeInt32BE(this._c, 8)
- H.writeInt32BE(this._d, 12)
- H.writeInt32BE(this._e, 16)
- H.writeInt32BE(this._f, 20)
- H.writeInt32BE(this._g, 24)
- H.writeInt32BE(this._h, 28)
-
- return H
-}
-
-module.exports = Sha256
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],49:[function(require,module,exports){
-(function (Buffer){
-var inherits = require('inherits')
-var SHA512 = require('./sha512')
-var Hash = require('./hash')
-
-var W = new Array(160)
-
-function Sha384 () {
- this.init()
- this._w = W
-
- Hash.call(this, 128, 112)
-}
-
-inherits(Sha384, SHA512)
-
-Sha384.prototype.init = function () {
- this._a = 0xcbbb9d5d | 0
- this._b = 0x629a292a | 0
- this._c = 0x9159015a | 0
- this._d = 0x152fecd8 | 0
- this._e = 0x67332667 | 0
- this._f = 0x8eb44a87 | 0
- this._g = 0xdb0c2e0d | 0
- this._h = 0x47b5481d | 0
-
- this._al = 0xc1059ed8 | 0
- this._bl = 0x367cd507 | 0
- this._cl = 0x3070dd17 | 0
- this._dl = 0xf70e5939 | 0
- this._el = 0xffc00b31 | 0
- this._fl = 0x68581511 | 0
- this._gl = 0x64f98fa7 | 0
- this._hl = 0xbefa4fa4 | 0
-
- return this
-}
-
-Sha384.prototype._hash = function () {
- var H = new Buffer(48)
-
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
-
- writeInt64BE(this._a, this._al, 0)
- writeInt64BE(this._b, this._bl, 8)
- writeInt64BE(this._c, this._cl, 16)
- writeInt64BE(this._d, this._dl, 24)
- writeInt64BE(this._e, this._el, 32)
- writeInt64BE(this._f, this._fl, 40)
-
- return H
-}
-
-module.exports = Sha384
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"./sha512":50,"buffer":2,"inherits":41}],50:[function(require,module,exports){
-(function (Buffer){
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
-]
-
-var W = new Array(160)
-
-function Sha512 () {
- this.init()
- this._w = W
-
- Hash.call(this, 128, 112)
-}
-
-inherits(Sha512, Hash)
-
-Sha512.prototype.init = function () {
- this._a = 0x6a09e667 | 0
- this._b = 0xbb67ae85 | 0
- this._c = 0x3c6ef372 | 0
- this._d = 0xa54ff53a | 0
- this._e = 0x510e527f | 0
- this._f = 0x9b05688c | 0
- this._g = 0x1f83d9ab | 0
- this._h = 0x5be0cd19 | 0
-
- this._al = 0xf3bcc908 | 0
- this._bl = 0x84caa73b | 0
- this._cl = 0xfe94f82b | 0
- this._dl = 0x5f1d36f1 | 0
- this._el = 0xade682d1 | 0
- this._fl = 0x2b3e6c1f | 0
- this._gl = 0xfb41bd6b | 0
- this._hl = 0x137e2179 | 0
-
- return this
-}
-
-function Ch (x, y, z) {
- return z ^ (x & (y ^ z))
-}
-
-function Maj (x, y, z) {
- return (x & y) | (z & (x | y))
-}
-
-function Sigma0 (x, xl) {
- return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
-}
-
-function Sigma1 (x, xl) {
- return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
-}
-
-function Gamma0 (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
-}
-
-function Gamma0l (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
-}
-
-function Gamma1 (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
-}
-
-function Gamma1l (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
-}
-
-Sha512.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- var f = this._f | 0
- var g = this._g | 0
- var h = this._h | 0
-
- var al = this._al | 0
- var bl = this._bl | 0
- var cl = this._cl | 0
- var dl = this._dl | 0
- var el = this._el | 0
- var fl = this._fl | 0
- var gl = this._gl | 0
- var hl = this._hl | 0
-
- var i = 0
- var j = 0
- var Wi, Wil
- function calcW () {
- var x = W[j - 15 * 2]
- var xl = W[j - 15 * 2 + 1]
- var gamma0 = Gamma0(x, xl)
- var gamma0l = Gamma0l(xl, x)
-
- x = W[j - 2 * 2]
- xl = W[j - 2 * 2 + 1]
- var gamma1 = Gamma1(x, xl)
- var gamma1l = Gamma1l(xl, x)
-
- // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
- var Wi7 = W[j - 7 * 2]
- var Wi7l = W[j - 7 * 2 + 1]
-
- var Wi16 = W[j - 16 * 2]
- var Wi16l = W[j - 16 * 2 + 1]
-
- Wil = gamma0l + Wi7l
- Wi = gamma0 + Wi7 + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0)
- Wil = Wil + gamma1l
- Wi = Wi + gamma1 + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0)
- Wil = Wil + Wi16l
- Wi = Wi + Wi16 + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0)
- }
-
- function loop () {
- W[j] = Wi
- W[j + 1] = Wil
-
- var maj = Maj(a, b, c)
- var majl = Maj(al, bl, cl)
-
- var sigma0h = Sigma0(a, al)
- var sigma0l = Sigma0(al, a)
- var sigma1h = Sigma1(e, el)
- var sigma1l = Sigma1(el, e)
-
- // t1 = h + sigma1 + ch + K[i] + W[i]
- var Ki = K[j]
- var Kil = K[j + 1]
-
- var ch = Ch(e, f, g)
- var chl = Ch(el, fl, gl)
-
- var t1l = hl + sigma1l
- var t1 = h + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0)
- t1l = t1l + chl
- t1 = t1 + ch + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0)
- t1l = t1l + Kil
- t1 = t1 + Ki + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0)
- t1l = t1l + Wil
- t1 = t1 + Wi + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0)
-
- // t2 = sigma0 + maj
- var t2l = sigma0l + majl
- var t2 = sigma0h + maj + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0)
-
- h = g
- hl = gl
- g = f
- gl = fl
- f = e
- fl = el
- el = (dl + t1l) | 0
- e = (d + t1 + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
- d = c
- dl = cl
- c = b
- cl = bl
- b = a
- bl = al
- al = (t1l + t2l) | 0
- a = (t1 + t2 + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0
-
- i++
- j += 2
- }
-
- while (i < 16) {
- Wi = M.readInt32BE(j * 4)
- Wil = M.readInt32BE(j * 4 + 4)
-
- loop()
- }
-
- while (i < 80) {
- calcW()
- loop()
- }
-
- this._al = (this._al + al) | 0
- this._bl = (this._bl + bl) | 0
- this._cl = (this._cl + cl) | 0
- this._dl = (this._dl + dl) | 0
- this._el = (this._el + el) | 0
- this._fl = (this._fl + fl) | 0
- this._gl = (this._gl + gl) | 0
- this._hl = (this._hl + hl) | 0
-
- this._a = (this._a + a + ((this._al >>> 0) < (al >>> 0) ? 1 : 0)) | 0
- this._b = (this._b + b + ((this._bl >>> 0) < (bl >>> 0) ? 1 : 0)) | 0
- this._c = (this._c + c + ((this._cl >>> 0) < (cl >>> 0) ? 1 : 0)) | 0
- this._d = (this._d + d + ((this._dl >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
- this._e = (this._e + e + ((this._el >>> 0) < (el >>> 0) ? 1 : 0)) | 0
- this._f = (this._f + f + ((this._fl >>> 0) < (fl >>> 0) ? 1 : 0)) | 0
- this._g = (this._g + g + ((this._gl >>> 0) < (gl >>> 0) ? 1 : 0)) | 0
- this._h = (this._h + h + ((this._hl >>> 0) < (hl >>> 0) ? 1 : 0)) | 0
-}
-
-Sha512.prototype._hash = function () {
- var H = new Buffer(64)
-
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
-
- writeInt64BE(this._a, this._al, 0)
- writeInt64BE(this._b, this._bl, 8)
- writeInt64BE(this._c, this._cl, 16)
- writeInt64BE(this._d, this._dl, 24)
- writeInt64BE(this._e, this._el, 32)
- writeInt64BE(this._f, this._fl, 40)
- writeInt64BE(this._g, this._gl, 48)
- writeInt64BE(this._h, this._hl, 56)
-
- return H
-}
-
-module.exports = Sha512
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],51:[function(require,module,exports){
+},{"./helpers":24}],26:[function(require,module,exports){
(function (Buffer){
'use strict';
var createHash = require('create-hash/browser');
@@ -16306,3866 +11265,2595 @@ module.exports = function createHmac(alg, key) {
}
}).call(this,require("buffer").Buffer)
-},{"buffer":2,"create-hash/browser":37,"inherits":52,"stream":25}],52:[function(require,module,exports){
-arguments[4][7][0].apply(exports,arguments)
-},{"dup":7}],53:[function(require,module,exports){
-/*
-WildEmitter.js is a slim little event emitter by @henrikjoreteg largely based
-on @visionmedia's Emitter from UI Kit.
-
-Why? I wanted it standalone.
-
-I also wanted support for wildcard emitters like this:
-
-emitter.on('*', function (eventName, other, event, payloads) {
-
-});
-
-emitter.on('somenamespace*', function (eventName, payloads) {
-
-});
-
-Please note that callbacks triggered by wildcard registered events also get
-the event name as the first argument.
-*/
-
-module.exports = WildEmitter;
-
-function WildEmitter() { }
-
-WildEmitter.mixin = function (constructor) {
- var prototype = constructor.prototype || constructor;
-
- prototype.isWildEmitter= true;
-
- // Listen on the given `event` with `fn`. Store a group name if present.
- prototype.on = function (event, groupName, fn) {
- this.callbacks = this.callbacks || {};
- var hasGroup = (arguments.length === 3),
- group = hasGroup ? arguments[1] : undefined,
- func = hasGroup ? arguments[2] : arguments[1];
- func._groupName = group;
- (this.callbacks[event] = this.callbacks[event] || []).push(func);
- return this;
- };
-
- // Adds an `event` listener that will be invoked a single
- // time then automatically removed.
- prototype.once = function (event, groupName, fn) {
- var self = this,
- hasGroup = (arguments.length === 3),
- group = hasGroup ? arguments[1] : undefined,
- func = hasGroup ? arguments[2] : arguments[1];
- function on() {
- self.off(event, on);
- func.apply(this, arguments);
- }
- this.on(event, group, on);
- return this;
- };
-
- // Unbinds an entire group
- prototype.releaseGroup = function (groupName) {
- this.callbacks = this.callbacks || {};
- var item, i, len, handlers;
- for (item in this.callbacks) {
- handlers = this.callbacks[item];
- for (i = 0, len = handlers.length; i < len; i++) {
- if (handlers[i]._groupName === groupName) {
- //console.log('removing');
- // remove it and shorten the array we're looping through
- handlers.splice(i, 1);
- i--;
- len--;
- }
- }
- }
- return this;
- };
-
- // Remove the given callback for `event` or all
- // registered callbacks.
- prototype.off = function (event, fn) {
- this.callbacks = this.callbacks || {};
- var callbacks = this.callbacks[event],
- i;
-
- if (!callbacks) return this;
-
- // remove all handlers
- if (arguments.length === 1) {
- delete this.callbacks[event];
- return this;
- }
-
- // remove specific handler
- i = callbacks.indexOf(fn);
- callbacks.splice(i, 1);
- if (callbacks.length === 0) {
- delete this.callbacks[event];
- }
- return this;
- };
-
- /// Emit `event` with the given args.
- // also calls any `*` handlers
- prototype.emit = function (event) {
- this.callbacks = this.callbacks || {};
- var args = [].slice.call(arguments, 1),
- callbacks = this.callbacks[event],
- specialCallbacks = this.getWildcardCallbacks(event),
- i,
- len,
- item,
- listeners;
-
- if (callbacks) {
- listeners = callbacks.slice();
- for (i = 0, len = listeners.length; i < len; ++i) {
- if (!listeners[i]) {
- break;
- }
- listeners[i].apply(this, args);
- }
- }
-
- if (specialCallbacks) {
- len = specialCallbacks.length;
- listeners = specialCallbacks.slice();
- for (i = 0, len = listeners.length; i < len; ++i) {
- if (!listeners[i]) {
- break;
- }
- listeners[i].apply(this, [event].concat(args));
- }
- }
-
- return this;
- };
-
- // Helper for for finding special wildcard event handlers that match the event
- prototype.getWildcardCallbacks = function (eventName) {
- this.callbacks = this.callbacks || {};
- var item,
- split,
- result = [];
-
- for (item in this.callbacks) {
- split = item.split('*');
- if (item === '*' || (split.length === 2 && eventName.slice(0, split[0].length) === split[0])) {
- result = result.concat(this.callbacks[item]);
- }
- }
- return result;
- };
-
-};
-
-WildEmitter.mixin(WildEmitter);
-
-},{}],54:[function(require,module,exports){
-/**
- * lodash 3.0.3 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var arrayEach = require('lodash._arrayeach'),
- baseEach = require('lodash._baseeach'),
- bindCallback = require('lodash._bindcallback'),
- isArray = require('lodash.isarray');
+},{"buffer":6,"create-hash/browser":23,"inherits":45,"stream":182}],27:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
-/**
- * Creates a function for `_.forEach` or `_.forEachRight`.
- *
- * @private
- * @param {Function} arrayFunc The function to iterate over an array.
- * @param {Function} eachFunc The function to iterate over a collection.
- * @returns {Function} Returns the new each function.
- */
-function createForEach(arrayFunc, eachFunc) {
- return function(collection, iteratee, thisArg) {
- return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))
- ? arrayFunc(collection, iteratee)
- : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
- };
+function EventEmitter() {
+ this._events = this._events || {};
+ this._maxListeners = this._maxListeners || undefined;
}
+module.exports = EventEmitter;
-/**
- * Iterates over elements of `collection` invoking `iteratee` for each element.
- * The `iteratee` is bound to `thisArg` and invoked with three arguments:
- * (value, index|key, collection). Iteratee functions may exit iteration early
- * by explicitly returning `false`.
- *
- * **Note:** As with other "Collections" methods, objects with a "length" property
- * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
- * may be used for object iteration.
- *
- * @static
- * @memberOf _
- * @alias each
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
- * @param {*} [thisArg] The `this` binding of `iteratee`.
- * @returns {Array|Object|string} Returns `collection`.
- * @example
- *
- * _([1, 2]).forEach(function(n) {
- * console.log(n);
- * }).value();
- * // => logs each value from left to right and returns the array
- *
- * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
- * console.log(n, key);
- * });
- * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
- */
-var forEach = createForEach(arrayEach, baseEach);
+// Backwards-compat with node 0.10.x
+EventEmitter.EventEmitter = EventEmitter;
-module.exports = forEach;
+EventEmitter.prototype._events = undefined;
+EventEmitter.prototype._maxListeners = undefined;
-},{"lodash._arrayeach":55,"lodash._baseeach":56,"lodash._bindcallback":60,"lodash.isarray":61}],55:[function(require,module,exports){
-/**
- * lodash 3.0.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+// By default EventEmitters will print a warning if more than 10 listeners are
+// added to it. This is a useful default which helps finding memory leaks.
+EventEmitter.defaultMaxListeners = 10;
-/**
- * A specialized version of `_.forEach` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns `array`.
- */
-function arrayEach(array, iteratee) {
- var index = -1,
- length = array.length;
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+EventEmitter.prototype.setMaxListeners = function(n) {
+ if (!isNumber(n) || n < 0 || isNaN(n))
+ throw TypeError('n must be a positive number');
+ this._maxListeners = n;
+ return this;
+};
- while (++index < length) {
- if (iteratee(array[index], index, array) === false) {
- break;
+EventEmitter.prototype.emit = function(type) {
+ var er, handler, len, args, i, listeners;
+
+ if (!this._events)
+ this._events = {};
+
+ // If there is no 'error' event listener then throw.
+ if (type === 'error') {
+ if (!this._events.error ||
+ (isObject(this._events.error) && !this._events.error.length)) {
+ er = arguments[1];
+ if (er instanceof Error) {
+ throw er; // Unhandled 'error' event
+ } else {
+ // At least give some kind of context to the user
+ var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
+ err.context = er;
+ throw err;
+ }
}
}
- return array;
-}
-module.exports = arrayEach;
+ handler = this._events[type];
-},{}],56:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var keys = require('lodash.keys');
+ if (isUndefined(handler))
+ return false;
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+ if (isFunction(handler)) {
+ switch (arguments.length) {
+ // fast cases
+ case 1:
+ handler.call(this);
+ break;
+ case 2:
+ handler.call(this, arguments[1]);
+ break;
+ case 3:
+ handler.call(this, arguments[1], arguments[2]);
+ break;
+ // slower
+ default:
+ args = Array.prototype.slice.call(arguments, 1);
+ handler.apply(this, args);
+ }
+ } else if (isObject(handler)) {
+ args = Array.prototype.slice.call(arguments, 1);
+ listeners = handler.slice();
+ len = listeners.length;
+ for (i = 0; i < len; i++)
+ listeners[i].apply(this, args);
+ }
-/**
- * The base implementation of `_.forEach` without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array|Object|string} Returns `collection`.
- */
-var baseEach = createBaseEach(baseForOwn);
+ return true;
+};
-/**
- * The base implementation of `baseForIn` and `baseForOwn` which iterates
- * over `object` properties returned by `keysFunc` invoking `iteratee` for
- * each property. Iteratee functions may exit iteration early by explicitly
- * returning `false`.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @returns {Object} Returns `object`.
- */
-var baseFor = createBaseFor();
+EventEmitter.prototype.addListener = function(type, listener) {
+ var m;
-/**
- * The base implementation of `_.forOwn` without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Object} Returns `object`.
- */
-function baseForOwn(object, iteratee) {
- return baseFor(object, iteratee, keys);
-}
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+ if (!this._events)
+ this._events = {};
-/**
- * Creates a `baseEach` or `baseEachRight` function.
- *
- * @private
- * @param {Function} eachFunc The function to iterate over a collection.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseEach(eachFunc, fromRight) {
- return function(collection, iteratee) {
- var length = collection ? getLength(collection) : 0;
- if (!isLength(length)) {
- return eachFunc(collection, iteratee);
- }
- var index = fromRight ? length : -1,
- iterable = toObject(collection);
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (this._events.newListener)
+ this.emit('newListener', type,
+ isFunction(listener.listener) ?
+ listener.listener : listener);
- while ((fromRight ? index-- : ++index < length)) {
- if (iteratee(iterable[index], index, iterable) === false) {
- break;
- }
- }
- return collection;
- };
-}
+ if (!this._events[type])
+ // Optimize the case of one listener. Don't need the extra array object.
+ this._events[type] = listener;
+ else if (isObject(this._events[type]))
+ // If we've already got an array, just append.
+ this._events[type].push(listener);
+ else
+ // Adding the second element, need to change to array.
+ this._events[type] = [this._events[type], listener];
-/**
- * Creates a base function for `_.forIn` or `_.forInRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var iterable = toObject(object),
- props = keysFunc(object),
- length = props.length,
- index = fromRight ? length : -1;
+ // Check for listener leak
+ if (isObject(this._events[type]) && !this._events[type].warned) {
+ if (!isUndefined(this._maxListeners)) {
+ m = this._maxListeners;
+ } else {
+ m = EventEmitter.defaultMaxListeners;
+ }
- while ((fromRight ? index-- : ++index < length)) {
- var key = props[index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
+ if (m && m > 0 && this._events[type].length > m) {
+ this._events[type].warned = true;
+ console.error('(node) warning: possible EventEmitter memory ' +
+ 'leak detected. %d listeners added. ' +
+ 'Use emitter.setMaxListeners() to increase limit.',
+ this._events[type].length);
+ if (typeof console.trace === 'function') {
+ // not supported in IE 10
+ console.trace();
}
}
- return object;
- };
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ }
-module.exports = baseEach;
+ return this;
+};
-},{"lodash.keys":57}],57:[function(require,module,exports){
-/**
- * lodash 3.1.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var getNative = require('lodash._getnative'),
- isArguments = require('lodash.isarguments'),
- isArray = require('lodash.isarray');
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-/** Used to detect unsigned integer values. */
-var reIsUint = /^\d+$/;
+EventEmitter.prototype.once = function(type, listener) {
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
-/** Used for native method references. */
-var objectProto = Object.prototype;
+ var fired = false;
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
+ function g() {
+ this.removeListener(type, g);
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeKeys = getNative(Object, 'keys');
+ if (!fired) {
+ fired = true;
+ listener.apply(this, arguments);
+ }
+ }
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+ g.listener = listener;
+ this.on(type, g);
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+ return this;
+};
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
+// emits a 'removeListener' event iff the listener was removed
+EventEmitter.prototype.removeListener = function(type, listener) {
+ var list, position, length, i;
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
-}
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
- length = length == null ? MAX_SAFE_INTEGER : length;
- return value > -1 && value % 1 == 0 && value < length;
-}
+ if (!this._events || !this._events[type])
+ return this;
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
+ list = this._events[type];
+ length = list.length;
+ position = -1;
-/**
- * A fallback implementation of `Object.keys` which creates an array of the
- * own enumerable property names of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
-function shimKeys(object) {
- var props = keysIn(object),
- propsLength = props.length,
- length = propsLength && object.length;
+ if (list === listener ||
+ (isFunction(list.listener) && list.listener === listener)) {
+ delete this._events[type];
+ if (this._events.removeListener)
+ this.emit('removeListener', type, listener);
- var allowIndexes = !!length && isLength(length) &&
- (isArray(object) || isArguments(object));
+ } else if (isObject(list)) {
+ for (i = length; i-- > 0;) {
+ if (list[i] === listener ||
+ (list[i].listener && list[i].listener === listener)) {
+ position = i;
+ break;
+ }
+ }
- var index = -1,
- result = [];
+ if (position < 0)
+ return this;
- while (++index < propsLength) {
- var key = props[index];
- if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
- result.push(key);
+ if (list.length === 1) {
+ list.length = 0;
+ delete this._events[type];
+ } else {
+ list.splice(position, 1);
}
- }
- return result;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
- * for more details.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keys(new Foo);
- * // => ['a', 'b'] (iteration order is not guaranteed)
- *
- * _.keys('hi');
- * // => ['0', '1']
- */
-var keys = !nativeKeys ? shimKeys : function(object) {
- var Ctor = object == null ? undefined : object.constructor;
- if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
- (typeof object != 'function' && isArrayLike(object))) {
- return shimKeys(object);
+ if (this._events.removeListener)
+ this.emit('removeListener', type, listener);
}
- return isObject(object) ? nativeKeys(object) : [];
+
+ return this;
};
-/**
- * Creates an array of the own and inherited enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keysIn(new Foo);
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
- */
-function keysIn(object) {
- if (object == null) {
- return [];
- }
- if (!isObject(object)) {
- object = Object(object);
- }
- var length = object.length;
- length = (length && isLength(length) &&
- (isArray(object) || isArguments(object)) && length) || 0;
+EventEmitter.prototype.removeAllListeners = function(type) {
+ var key, listeners;
- var Ctor = object.constructor,
- index = -1,
- isProto = typeof Ctor == 'function' && Ctor.prototype === object,
- result = Array(length),
- skipIndexes = length > 0;
+ if (!this._events)
+ return this;
- while (++index < length) {
- result[index] = (index + '');
+ // not listening for removeListener, no need to emit
+ if (!this._events.removeListener) {
+ if (arguments.length === 0)
+ this._events = {};
+ else if (this._events[type])
+ delete this._events[type];
+ return this;
}
- for (var key in object) {
- if (!(skipIndexes && isIndex(key, length)) &&
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ for (key in this._events) {
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
}
+ this.removeAllListeners('removeListener');
+ this._events = {};
+ return this;
}
- return result;
-}
-
-module.exports = keys;
-},{"lodash._getnative":58,"lodash.isarguments":59,"lodash.isarray":61}],58:[function(require,module,exports){
-/**
- * lodash 3.9.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]';
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
+ listeners = this._events[type];
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
+ if (isFunction(listeners)) {
+ this.removeListener(type, listeners);
+ } else if (listeners) {
+ // LIFO order
+ while (listeners.length)
+ this.removeListener(type, listeners[listeners.length - 1]);
+ }
+ delete this._events[type];
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
+ return this;
+};
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
+EventEmitter.prototype.listeners = function(type) {
+ var ret;
+ if (!this._events || !this._events[type])
+ ret = [];
+ else if (isFunction(this._events[type]))
+ ret = [this._events[type]];
+ else
+ ret = this._events[type].slice();
+ return ret;
+};
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return isObject(value) && objToString.call(value) == funcTag;
-}
+EventEmitter.prototype.listenerCount = function(type) {
+ if (this._events) {
+ var evlistener = this._events[type];
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
+ if (isFunction(evlistener))
+ return 1;
+ else if (evlistener)
+ return evlistener.length;
}
- if (isFunction(value)) {
- return reIsNative.test(fnToString.call(value));
- }
- return isObjectLike(value) && reIsHostCtor.test(value);
-}
-
-module.exports = getNative;
+ return 0;
+};
-},{}],59:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+EventEmitter.listenerCount = function(emitter, type) {
+ return emitter.listenerCount(type);
+};
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
+function isFunction(arg) {
+ return typeof arg === 'function';
}
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/** Native method references. */
-var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
+function isNumber(arg) {
+ return typeof arg === 'number';
}
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
+function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
}
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+function isUndefined(arg) {
+ return arg === void 0;
}
-/**
- * Checks if `value` is classified as an `arguments` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
-function isArguments(value) {
- return isObjectLike(value) && isArrayLike(value) &&
- hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
-}
+},{}],28:[function(require,module,exports){
+var arr = [];
+var each = arr.forEach;
+var slice = arr.slice;
-module.exports = isArguments;
-},{}],60:[function(require,module,exports){
-/**
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+module.exports = function(obj) {
+ each.call(slice.call(arguments, 1), function(source) {
+ if (source) {
+ for (var prop in source) {
+ obj[prop] = source[prop];
+ }
+ }
+ });
+ return obj;
+};
-/**
- * A specialized version of `baseCallback` which only supports `this` binding
- * and specifying the number of arguments to provide to `func`.
- *
- * @private
- * @param {Function} func The function to bind.
- * @param {*} thisArg The `this` binding of `func`.
- * @param {number} [argCount] The number of arguments to provide to `func`.
- * @returns {Function} Returns the callback.
- */
-function bindCallback(func, thisArg, argCount) {
- if (typeof func != 'function') {
- return identity;
- }
- if (thisArg === undefined) {
- return func;
- }
- switch (argCount) {
- case 1: return function(value) {
- return func.call(thisArg, value);
- };
- case 3: return function(value, index, collection) {
- return func.call(thisArg, value, index, collection);
- };
- case 4: return function(accumulator, value, index, collection) {
- return func.call(thisArg, accumulator, value, index, collection);
- };
- case 5: return function(value, other, key, object, source) {
- return func.call(thisArg, value, other, key, object, source);
+},{}],29:[function(require,module,exports){
+var WildEmitter = require('wildemitter');
+var util = require('util');
+
+function Sender(opts) {
+ WildEmitter.call(this);
+ var options = opts || {};
+ this.config = {
+ chunksize: 16384,
+ pacing: 0
};
- }
- return function() {
- return func.apply(thisArg, arguments);
- };
-}
+ // set our config from options
+ var item;
+ for (item in options) {
+ this.config[item] = options[item];
+ }
-/**
- * This method returns the first argument provided to it.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.identity(object) === object;
- * // => true
- */
-function identity(value) {
- return value;
+ this.file = null;
+ this.channel = null;
}
+util.inherits(Sender, WildEmitter);
-module.exports = bindCallback;
-
-},{}],61:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var arrayTag = '[object Array]',
- funcTag = '[object Function]';
+Sender.prototype.send = function (file, channel) {
+ var self = this;
+ this.file = file;
+ this.channel = channel;
+ var sliceFile = function(offset) {
+ var reader = new window.FileReader();
+ reader.onload = (function() {
+ return function(e) {
+ self.channel.send(e.target.result);
+ self.emit('progress', offset, file.size, e.target.result);
+ if (file.size > offset + e.target.result.byteLength) {
+ window.setTimeout(sliceFile, self.config.pacing, offset + self.config.chunksize);
+ } else {
+ self.emit('progress', file.size, file.size, null);
+ self.emit('sentFile');
+ }
+ };
+ })(file);
+ var slice = file.slice(offset, offset + self.config.chunksize);
+ reader.readAsArrayBuffer(slice);
+ };
+ window.setTimeout(sliceFile, 0, 0);
+};
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
+function Receiver() {
+ WildEmitter.call(this);
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
+ this.receiveBuffer = [];
+ this.received = 0;
+ this.metadata = {};
+ this.channel = null;
}
+util.inherits(Receiver, WildEmitter);
-/** Used for native method references. */
-var objectProto = Object.prototype;
+Receiver.prototype.receive = function (metadata, channel) {
+ var self = this;
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
+ if (metadata) {
+ this.metadata = metadata;
+ }
+ this.channel = channel;
+ // chrome only supports arraybuffers and those make it easier to calc the hash
+ channel.binaryType = 'arraybuffer';
+ this.channel.onmessage = function (event) {
+ var len = event.data.byteLength;
+ self.received += len;
+ self.receiveBuffer.push(event.data);
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
+ self.emit('progress', self.received, self.metadata.size, event.data);
+ if (self.received === self.metadata.size) {
+ self.emit('receivedFile', new window.Blob(self.receiveBuffer), self.metadata);
+ self.receiveBuffer = []; // discard receivebuffer
+ } else if (self.received > self.metadata.size) {
+ // FIXME
+ console.error('received more than expected, discarding...');
+ self.receiveBuffer = []; // just discard...
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
+ }
+ };
+};
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
+module.exports = {};
+module.exports.support = typeof window !== 'undefined' && window && window.File && window.FileReader && window.Blob;
+module.exports.Sender = Sender;
+module.exports.Receiver = Receiver;
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeIsArray = getNative(Array, 'isArray');
+},{"util":197,"wildemitter":211}],30:[function(require,module,exports){
+var WildEmitter = require('wildemitter');
+var util = require('util');
+var hashes = require('iana-hashes');
+var base = require('./filetransfer');
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+// drop-in replacement for filetransfer which also calculates hashes
+function Sender(opts) {
+ WildEmitter.call(this);
+ var self = this;
+ this.base = new base.Sender(opts);
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
+ var options = opts || {};
+ if (!options.hash) {
+ options.hash = 'sha-1';
+ }
+ this.hash = hashes.createHash(options.hash);
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ this.base.on('progress', function (start, size, data) {
+ self.emit('progress', start, size, data);
+ if (data) {
+ self.hash.update(new Uint8Array(data));
+ }
+ });
+ this.base.on('sentFile', function () {
+ self.emit('sentFile', {hash: self.hash.digest('hex'), algo: options.hash });
+ });
}
-
-/**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(function() { return arguments; }());
- * // => false
- */
-var isArray = nativeIsArray || function(value) {
- return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
+util.inherits(Sender, WildEmitter);
+Sender.prototype.send = function () {
+ this.base.send.apply(this.base, arguments);
};
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return isObject(value) && objToString.call(value) == funcTag;
-}
+function Receiver(opts) {
+ WildEmitter.call(this);
+ var self = this;
+ this.base = new base.Receiver(opts);
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ var options = opts || {};
+ if (!options.hash) {
+ options.hash = 'sha-1';
+ }
+ this.hash = hashes.createHash(options.hash);
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(fnToString.call(value));
- }
- return isObjectLike(value) && reIsHostCtor.test(value);
+ this.base.on('progress', function (start, size, data) {
+ self.emit('progress', start, size, data);
+ if (data) {
+ self.hash.update(new Uint8Array(data));
+ }
+ });
+ this.base.on('receivedFile', function (file, metadata) {
+ metadata.actualhash = self.hash.digest('hex');
+ self.emit('receivedFile', file, metadata);
+ });
}
+util.inherits(Receiver, WildEmitter);
+Receiver.prototype.receive = function () {
+ this.base.receive.apply(this.base, arguments);
+};
+Object.defineProperty(Receiver.prototype, 'metadata', {
+ get: function () {
+ return this.base.metadata;
+ },
+ set: function (value) {
+ this.base.metadata = value;
+ }
+});
-module.exports = isArray;
-
-},{}],62:[function(require,module,exports){
-/**
- * lodash 3.1.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var baseGet = require('lodash._baseget'),
- toPath = require('lodash._topath'),
- isArray = require('lodash.isarray'),
- map = require('lodash.map');
+module.exports = {};
+module.exports.support = base.support;
+module.exports.Sender = Sender;
+module.exports.Receiver = Receiver;
-/** Used to match property names within property paths. */
-var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/;
+},{"./filetransfer":29,"iana-hashes":42,"util":197,"wildemitter":211}],31:[function(require,module,exports){
+// getScreenMedia helper by @HenrikJoreteg
+var getUserMedia = require('getusermedia');
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+// cache for constraints and callback
+var cache = {};
-/**
- * A specialized version of `baseProperty` which supports deep paths.
- *
- * @private
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- */
-function basePropertyDeep(path) {
- var pathKey = (path + '');
- path = toPath(path);
- return function(object) {
- return baseGet(object, path, pathKey);
- };
-}
+module.exports = function (constraints, cb) {
+ var hasConstraints = arguments.length === 2;
+ var callback = hasConstraints ? cb : constraints;
+ var error;
+
+ if (typeof window === 'undefined' || window.location.protocol === 'http:') {
+ error = new Error('NavigatorUserMediaError');
+ error.name = 'HTTPS_REQUIRED';
+ return callback(error);
+ }
+
+ if (window.navigator.userAgent.match('Chrome')) {
+ var chromever = parseInt(window.navigator.userAgent.match(/Chrome\/(.*) /)[1], 10);
+ var maxver = 33;
+ var isCef = !window.chrome.webstore;
+ // "known" crash in chrome 34 and 35 on linux
+ if (window.navigator.userAgent.match('Linux')) maxver = 35;
+
+ // check that the extension is installed by looking for a
+ // sessionStorage variable that contains the extension id
+ // this has to be set after installation unless the contest
+ // script does that
+ if (sessionStorage.getScreenMediaJSExtensionId) {
+ chrome.runtime.sendMessage(sessionStorage.getScreenMediaJSExtensionId,
+ {type:'getScreen', id: 1}, null,
+ function (data) {
+ if (!data || data.sourceId === '') { // user canceled
+ var error = new Error('NavigatorUserMediaError');
+ error.name = 'PERMISSION_DENIED';
+ callback(error);
+ } else {
+ constraints = (hasConstraints && constraints) || {audio: false, video: {
+ mandatory: {
+ chromeMediaSource: 'desktop',
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3
+ }
+ }};
+ constraints.video.mandatory.chromeMediaSourceId = data.sourceId;
+ getUserMedia(constraints, callback);
+ }
+ }
+ );
+ } else if (window.cefGetScreenMedia) {
+ //window.cefGetScreenMedia is experimental - may be removed without notice
+ window.cefGetScreenMedia(function(sourceId) {
+ if (!sourceId) {
+ var error = new Error('cefGetScreenMediaError');
+ error.name = 'CEF_GETSCREENMEDIA_CANCELED';
+ callback(error);
+ } else {
+ constraints = (hasConstraints && constraints) || {audio: false, video: {
+ mandatory: {
+ chromeMediaSource: 'desktop',
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3
+ },
+ optional: [
+ {googLeakyBucket: true},
+ {googTemporalLayeredScreencast: true}
+ ]
+ }};
+ constraints.video.mandatory.chromeMediaSourceId = sourceId;
+ getUserMedia(constraints, callback);
+ }
+ });
+ } else if (isCef || (chromever >= 26 && chromever <= maxver)) {
+ // chrome 26 - chrome 33 way to do it -- requires bad chrome://flags
+ // note: this is basically in maintenance mode and will go away soon
+ constraints = (hasConstraints && constraints) || {
+ video: {
+ mandatory: {
+ googLeakyBucket: true,
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3,
+ chromeMediaSource: 'screen'
+ }
+ }
+ };
+ getUserMedia(constraints, callback);
+ } else {
+ // chrome 34+ way requiring an extension
+ var pending = window.setTimeout(function () {
+ error = new Error('NavigatorUserMediaError');
+ error.name = 'EXTENSION_UNAVAILABLE';
+ return callback(error);
+ }, 1000);
+ cache[pending] = [callback, hasConstraints ? constraints : null];
+ window.postMessage({ type: 'getScreen', id: pending }, '*');
+ }
+ } else if (window.navigator.userAgent.match('Firefox')) {
+ var ffver = parseInt(window.navigator.userAgent.match(/Firefox\/(.*)/)[1], 10);
+ if (ffver >= 33) {
+ constraints = (hasConstraints && constraints) || {
+ video: {
+ mozMediaSource: 'window',
+ mediaSource: 'window'
+ }
+ };
+ getUserMedia(constraints, function (err, stream) {
+ callback(err, stream);
+ // workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1045810
+ if (!err) {
+ var lastTime = stream.currentTime;
+ var polly = window.setInterval(function () {
+ if (!stream) window.clearInterval(polly);
+ if (stream.currentTime == lastTime) {
+ window.clearInterval(polly);
+ if (stream.onended) {
+ stream.onended();
+ }
+ }
+ lastTime = stream.currentTime;
+ }, 500);
+ }
+ });
+ } else {
+ error = new Error('NavigatorUserMediaError');
+ error.name = 'EXTENSION_UNAVAILABLE'; // does not make much sense but...
+ }
+ }
+};
-/**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
-function isKey(value, object) {
- var type = typeof value;
- if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {
- return true;
- }
- if (isArray(value)) {
- return false;
- }
- var result = !reIsDeepProp.test(value);
- return result || (object != null && value in toObject(object));
-}
+window.addEventListener('message', function (event) {
+ if (event.origin != window.location.origin) {
+ return;
+ }
+ if (event.data.type == 'gotScreen' && cache[event.data.id]) {
+ var data = cache[event.data.id];
+ var constraints = data[1];
+ var callback = data[0];
+ delete cache[event.data.id];
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
+ if (event.data.sourceId === '') { // user canceled
+ var error = new Error('NavigatorUserMediaError');
+ error.name = 'PERMISSION_DENIED';
+ callback(error);
+ } else {
+ constraints = constraints || {audio: false, video: {
+ mandatory: {
+ chromeMediaSource: 'desktop',
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3
+ },
+ optional: [
+ {googLeakyBucket: true},
+ {googTemporalLayeredScreencast: true}
+ ]
+ }};
+ constraints.video.mandatory.chromeMediaSourceId = event.data.sourceId;
+ getUserMedia(constraints, callback);
+ }
+ } else if (event.data.type == 'getScreenPending') {
+ window.clearTimeout(event.data.id);
+ }
+});
-/**
- * Gets the property value of `path` from all elements in `collection`.
- *
- * @static
- * @memberOf _
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Array|string} path The path of the property to pluck.
- * @returns {Array} Returns the property values.
- * @example
- *
- * var users = [
- * { 'user': 'barney', 'age': 36 },
- * { 'user': 'fred', 'age': 40 }
- * ];
- *
- * _.pluck(users, 'user');
- * // => ['barney', 'fred']
- *
- * var userIndex = _.indexBy(users, 'user');
- * _.pluck(userIndex, 'age');
- * // => [36, 40] (iteration order is not guaranteed)
- */
-function pluck(collection, path) {
- return map(collection, property(path));
-}
+},{"getusermedia":32}],32:[function(require,module,exports){
+// getUserMedia helper by @HenrikJoreteg used for navigator.getUserMedia shim
+var adapter = require('webrtc-adapter');
+
+module.exports = function (constraints, cb) {
+ var error;
+ var haveOpts = arguments.length === 2;
+ var defaultOpts = {video: true, audio: true};
+
+ var denied = 'PermissionDeniedError';
+ var altDenied = 'PERMISSION_DENIED';
+ var notSatisfied = 'ConstraintNotSatisfiedError';
+
+ // make constraints optional
+ if (!haveOpts) {
+ cb = constraints;
+ constraints = defaultOpts;
+ }
+
+ // treat lack of browser support like an error
+ if (typeof navigator === 'undefined' || !navigator.getUserMedia) {
+ // throw proper error per spec
+ error = new Error('MediaStreamError');
+ error.name = 'NotSupportedError';
+
+ // keep all callbacks async
+ return setTimeout(function () {
+ cb(error);
+ }, 0);
+ }
+
+ // normalize error handling when no media types are requested
+ if (!constraints.audio && !constraints.video) {
+ error = new Error('MediaStreamError');
+ error.name = 'NoMediaRequestedError';
+
+ // keep all callbacks async
+ return setTimeout(function () {
+ cb(error);
+ }, 0);
+ }
+
+ navigator.mediaDevices.getUserMedia(constraints)
+ .then(function (stream) {
+ cb(null, stream);
+ }).catch(function (err) {
+ var error;
+ // coerce into an error object since FF gives us a string
+ // there are only two valid names according to the spec
+ // we coerce all non-denied to "constraint not satisfied".
+ if (typeof err === 'string') {
+ error = new Error('MediaStreamError');
+ if (err === denied || err === altDenied) {
+ error.name = denied;
+ } else {
+ error.name = notSatisfied;
+ }
+ } else {
+ // if we get an error object make sure '.name' property is set
+ // according to spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermediaerror-and-navigatorusermediaerrorcallback
+ error = err;
+ if (!error.name) {
+ // this is likely chrome which
+ // sets a property called "ERROR_DENIED" on the error object
+ // if so we make sure to set a name
+ if (error[denied]) {
+ err.name = denied;
+ } else {
+ err.name = notSatisfied;
+ }
+ }
+ }
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ cb(error);
+ });
+};
-/**
- * Creates a function which returns the property value at `path` on a
- * given object.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var objects = [
- * { 'a': { 'b': { 'c': 2 } } },
- * { 'a': { 'b': { 'c': 1 } } }
- * ];
- *
- * _.map(objects, _.property('a.b.c'));
- * // => [2, 1]
+},{"webrtc-adapter":33}],33:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
- * // => [1, 2]
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function property(path) {
- return isKey(path) ? baseProperty(path) : basePropertyDeep(path);
-}
+ /* eslint-env node */
-module.exports = pluck;
+'use strict';
-},{"lodash._baseget":63,"lodash._topath":64,"lodash.isarray":65,"lodash.map":66}],63:[function(require,module,exports){
-/**
- * lodash 3.7.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+// Shimming starts here.
+(function() {
+ // Utils.
+ var logging = require('./utils').log;
+ var browserDetails = require('./utils').browserDetails;
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserDetails = browserDetails;
+ module.exports.extractVersion = require('./utils').extractVersion;
+ module.exports.disableLog = require('./utils').disableLog;
+
+ // Uncomment the line below if you want logging to occur, including logging
+ // for the switch statement below. Can also be turned on in the browser via
+ // adapter.disableLog(false), but then logging from the switch statement below
+ // will not appear.
+ // require('./utils').disableLog(false);
+
+ // Browser shims.
+ var chromeShim = require('./chrome/chrome_shim') || null;
+ var edgeShim = require('./edge/edge_shim') || null;
+ var firefoxShim = require('./firefox/firefox_shim') || null;
+ var safariShim = require('./safari/safari_shim') || null;
+
+ // Shim browser if found.
+ switch (browserDetails.browser) {
+ case 'opera': // fallthrough as it uses chrome shims
+ case 'chrome':
+ if (!chromeShim || !chromeShim.shimPeerConnection) {
+ logging('Chrome shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming chrome.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = chromeShim;
+
+ chromeShim.shimGetUserMedia();
+ chromeShim.shimMediaStream();
+ chromeShim.shimSourceObject();
+ chromeShim.shimPeerConnection();
+ chromeShim.shimOnTrack();
+ break;
+ case 'firefox':
+ if (!firefoxShim || !firefoxShim.shimPeerConnection) {
+ logging('Firefox shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming firefox.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = firefoxShim;
+
+ firefoxShim.shimGetUserMedia();
+ firefoxShim.shimSourceObject();
+ firefoxShim.shimPeerConnection();
+ firefoxShim.shimOnTrack();
+ break;
+ case 'edge':
+ if (!edgeShim || !edgeShim.shimPeerConnection) {
+ logging('MS edge shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming edge.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = edgeShim;
-/**
- * The base implementation of `get` without support for string paths
- * and default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array} path The path of the property to get.
- * @param {string} [pathKey] The key representation of path.
- * @returns {*} Returns the resolved value.
- */
-function baseGet(object, path, pathKey) {
- if (object == null) {
- return;
- }
- if (pathKey !== undefined && pathKey in toObject(object)) {
- path = [pathKey];
- }
- var index = 0,
- length = path.length;
+ edgeShim.shimGetUserMedia();
+ edgeShim.shimPeerConnection();
+ break;
+ case 'safari':
+ if (!safariShim) {
+ logging('Safari shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming safari.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = safariShim;
- while (object != null && index < length) {
- object = object[path[index++]];
+ safariShim.shimGetUserMedia();
+ break;
+ default:
+ logging('Unsupported browser!');
}
- return (index && index == length) ? object : undefined;
-}
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-module.exports = baseGet;
-
-},{}],64:[function(require,module,exports){
-/**
- * lodash 3.8.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var isArray = require('lodash.isarray');
-
-/** Used to match property names within property paths. */
-var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
-
-/** Used to match backslashes in property paths. */
-var reEscapeChar = /\\(\\)?/g;
+})();
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
+},{"./chrome/chrome_shim":34,"./edge/edge_shim":36,"./firefox/firefox_shim":38,"./safari/safari_shim":40,"./utils":41}],34:[function(require,module,exports){
-/**
- * Converts `value` to property path array if it's not one.
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * @private
- * @param {*} value The value to process.
- * @returns {Array} Returns the property path array.
- */
-function toPath(value) {
- if (isArray(value)) {
- return value;
- }
- var result = [];
- baseToString(value).replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
-}
-
-module.exports = toPath;
-
-},{"lodash.isarray":65}],65:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],66:[function(require,module,exports){
-/**
- * lodash 3.1.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-var arrayMap = require('lodash._arraymap'),
- baseCallback = require('lodash._basecallback'),
- baseEach = require('lodash._baseeach'),
- isArray = require('lodash.isarray');
+ /* eslint-env node */
+'use strict';
+var logging = require('../utils.js').log;
+var browserDetails = require('../utils.js').browserDetails;
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+var chromeShim = {
+ shimMediaStream: function() {
+ window.MediaStream = window.MediaStream || window.webkitMediaStream;
+ },
-/**
- * The base implementation of `_.map` without support for callback shorthands
- * and `this` binding.
- *
- * @private
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function baseMap(collection, iteratee) {
- var index = -1,
- result = isArrayLike(collection) ? Array(collection.length) : [];
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ var self = this;
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ // onaddstream does not fire when a track is added to an existing
+ // stream. But stream.onaddtrack is implemented so we use that.
+ e.stream.addEventListener('addtrack', function(te) {
+ var event = new Event('track');
+ event.track = te.track;
+ event.receiver = {track: te.track};
+ event.streams = [e.stream];
+ self.dispatchEvent(event);
+ });
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+ }
+ },
- baseEach(collection, function(value, key, collection) {
- result[++index] = iteratee(value, key, collection);
- });
- return result;
-}
+ shimSourceObject: function() {
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this._srcObject;
+ },
+ set: function(stream) {
+ var self = this;
+ // Use _srcObject as a private property for this shim
+ this._srcObject = stream;
+ if (this.src) {
+ URL.revokeObjectURL(this.src);
+ }
+
+ if (!stream) {
+ this.src = '';
+ return;
+ }
+ this.src = URL.createObjectURL(stream);
+ // We need to recreate the blob url when a track is added or
+ // removed. Doing it manually since we want to avoid a recursion.
+ stream.addEventListener('addtrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ stream.addEventListener('removetrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ }
+ });
+ }
+ }
+ },
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+ shimPeerConnection: function() {
+ // The RTCPeerConnection object.
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ // Translate iceTransportPolicy to iceTransports,
+ // see https://code.google.com/p/webrtc/issues/detail?id=4869
+ logging('PeerConnection');
+ if (pcConfig && pcConfig.iceTransportPolicy) {
+ pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ }
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
+ var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
+ var origGetStats = pc.getStats.bind(pc);
+ pc.getStats = function(selector, successCallback, errorCallback) {
+ var self = this;
+ var args = arguments;
+
+ // If selector is a function then we are in the old style stats so just
+ // pass back the original getStats format to avoid breaking old users.
+ if (arguments.length > 0 && typeof selector === 'function') {
+ return origGetStats(selector, successCallback);
+ }
+
+ var fixChromeStats_ = function(response) {
+ var standardReport = {};
+ var reports = response.result();
+ reports.forEach(function(report) {
+ var standardStats = {
+ id: report.id,
+ timestamp: report.timestamp,
+ type: report.type
+ };
+ report.names().forEach(function(name) {
+ standardStats[name] = report.stat(name);
+ });
+ standardReport[standardStats.id] = standardStats;
+ });
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
-}
+ return standardReport;
+ };
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
+ // shim getStats with maplike support
+ var makeMapStats = function(stats, legacyStats) {
+ var map = new Map(Object.keys(stats).map(function(key) {
+ return[key, stats[key]];
+ }));
+ legacyStats = legacyStats || stats;
+ Object.keys(legacyStats).forEach(function(key) {
+ map[key] = legacyStats[key];
+ });
+ return map;
+ };
-/**
- * Creates an array of values by running each element in `collection` through
- * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three
- * arguments: (value, index|key, collection).
- *
- * If a property name is provided for `iteratee` the created `_.property`
- * style callback returns the property value of the given element.
- *
- * If a value is also provided for `thisArg` the created `_.matchesProperty`
- * style callback returns `true` for elements that have a matching property
- * value, else `false`.
- *
- * If an object is provided for `iteratee` the created `_.matches` style
- * callback returns `true` for elements that have the properties of the given
- * object, else `false`.
- *
- * Many lodash methods are guarded to work as iteratees for methods like
- * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
- *
- * The guarded methods are:
- * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`,
- * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`,
- * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`,
- * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`,
- * `sum`, `uniq`, and `words`
- *
- * @static
- * @memberOf _
- * @alias collect
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The function invoked
- * per iteration.
- * @param {*} [thisArg] The `this` binding of `iteratee`.
- * @returns {Array} Returns the new mapped array.
- * @example
- *
- * function timesThree(n) {
- * return n * 3;
- * }
- *
- * _.map([1, 2], timesThree);
- * // => [3, 6]
- *
- * _.map({ 'a': 1, 'b': 2 }, timesThree);
- * // => [3, 6] (iteration order is not guaranteed)
- *
- * var users = [
- * { 'user': 'barney' },
- * { 'user': 'fred' }
- * ];
- *
- * // using the `_.property` callback shorthand
- * _.map(users, 'user');
- * // => ['barney', 'fred']
- */
-function map(collection, iteratee, thisArg) {
- var func = isArray(collection) ? arrayMap : baseMap;
- iteratee = baseCallback(iteratee, thisArg, 3);
- return func(collection, iteratee);
-}
+ if (arguments.length >= 2) {
+ var successCallbackWrapper_ = function(response) {
+ args[1](makeMapStats(fixChromeStats_(response)));
+ };
-module.exports = map;
+ return origGetStats.apply(this, [successCallbackWrapper_,
+ arguments[0]]);
+ }
-},{"lodash._arraymap":67,"lodash._basecallback":68,"lodash._baseeach":73,"lodash.isarray":65}],67:[function(require,module,exports){
-/**
- * lodash 3.0.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+ // promise-support
+ return new Promise(function(resolve, reject) {
+ if (args.length === 1 && typeof selector === 'object') {
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response)));
+ }, reject]);
+ } else {
+ // Preserve legacy chrome stats only on legacy access of stats obj
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response),
+ response.result()));
+ }, reject]);
+ }
+ }).then(successCallback, errorCallback);
+ };
-/**
- * A specialized version of `_.map` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function arrayMap(array, iteratee) {
- var index = -1,
- length = array.length,
- result = Array(length);
+ return pc;
+ };
+ window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
-}
+ // wrap static methods. Currently just generateCertificate.
+ if (webkitRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return webkitRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
-module.exports = arrayMap;
+ ['createOffer', 'createAnswer'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var self = this;
+ if (arguments.length < 1 || (arguments.length === 1 &&
+ typeof arguments[0] === 'object')) {
+ var opts = arguments.length === 1 ? arguments[0] : undefined;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [resolve, reject, opts]);
+ });
+ }
+ return nativeMethod.apply(this, arguments);
+ };
+ });
-},{}],68:[function(require,module,exports){
-/**
- * lodash 3.3.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var baseIsEqual = require('lodash._baseisequal'),
- bindCallback = require('lodash._bindcallback'),
- isArray = require('lodash.isarray'),
- pairs = require('lodash.pairs');
+ // add promise support -- natively available in Chrome 51
+ if (browserDetails.version < 51) {
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var args = arguments;
+ var self = this;
+ var promise = new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [args[0], resolve, reject]);
+ });
+ if (args.length < 2) {
+ return promise;
+ }
+ return promise.then(function() {
+ args[1].apply(null, []);
+ },
+ function(err) {
+ if (args.length >= 3) {
+ args[2].apply(null, [err]);
+ }
+ });
+ };
+ });
+ }
-/** Used to match property names within property paths. */
-var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ return arguments[0] === null ? Promise.resolve()
+ : nativeAddIceCandidate.apply(this, arguments);
+ };
-/** Used to match backslashes in property paths. */
-var reEscapeChar = /\\(\\)?/g;
+ // shim implicit creation of RTCSessionDescription/RTCIceCandidate
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+ },
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
+ // Attach a media stream to an element.
+ attachMediaStream: function(element, stream) {
+ logging('DEPRECATED, attachMediaStream will soon be removed.');
+ if (browserDetails.version >= 43) {
+ element.srcObject = stream;
+ } else if (typeof element.src !== 'undefined') {
+ element.src = URL.createObjectURL(stream);
+ } else {
+ logging('Error attaching stream to element.');
+ }
+ },
-/**
- * The base implementation of `_.callback` which supports specifying the
- * number of arguments to provide to `func`.
- *
- * @private
- * @param {*} [func=_.identity] The value to convert to a callback.
- * @param {*} [thisArg] The `this` binding of `func`.
- * @param {number} [argCount] The number of arguments to provide to `func`.
- * @returns {Function} Returns the callback.
- */
-function baseCallback(func, thisArg, argCount) {
- var type = typeof func;
- if (type == 'function') {
- return thisArg === undefined
- ? func
- : bindCallback(func, thisArg, argCount);
- }
- if (func == null) {
- return identity;
- }
- if (type == 'object') {
- return baseMatches(func);
+ reattachMediaStream: function(to, from) {
+ logging('DEPRECATED, reattachMediaStream will soon be removed.');
+ if (browserDetails.version >= 43) {
+ to.srcObject = from.srcObject;
+ } else {
+ to.src = from.src;
+ }
}
- return thisArg === undefined
- ? property(func)
- : baseMatchesProperty(func, thisArg);
-}
+};
-/**
- * The base implementation of `get` without support for string paths
- * and default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array} path The path of the property to get.
- * @param {string} [pathKey] The key representation of path.
- * @returns {*} Returns the resolved value.
- */
-function baseGet(object, path, pathKey) {
- if (object == null) {
- return;
- }
- if (pathKey !== undefined && pathKey in toObject(object)) {
- path = [pathKey];
- }
- var index = 0,
- length = path.length;
- while (object != null && index < length) {
- object = object[path[index++]];
- }
- return (index && index == length) ? object : undefined;
-}
+// Expose public methods.
+module.exports = {
+ shimMediaStream: chromeShim.shimMediaStream,
+ shimOnTrack: chromeShim.shimOnTrack,
+ shimSourceObject: chromeShim.shimSourceObject,
+ shimPeerConnection: chromeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia'),
+ attachMediaStream: chromeShim.attachMediaStream,
+ reattachMediaStream: chromeShim.reattachMediaStream
+};
-/**
- * The base implementation of `_.isMatch` without support for callback
- * shorthands and `this` binding.
+},{"../utils.js":41,"./getusermedia":35}],35:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * @private
- * @param {Object} object The object to inspect.
- * @param {Array} matchData The propery names, values, and compare flags to match.
- * @param {Function} [customizer] The function to customize comparing objects.
- * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function baseIsMatch(object, matchData, customizer) {
- var index = matchData.length,
- length = index,
- noCustomizer = !customizer;
+ /* eslint-env node */
+'use strict';
+var logging = require('../utils.js').log;
- if (object == null) {
- return !length;
- }
- object = toObject(object);
- while (index--) {
- var data = matchData[index];
- if ((noCustomizer && data[2])
- ? data[1] !== object[data[0]]
- : !(data[0] in object)
- ) {
- return false;
+// Expose public methods.
+module.exports = function() {
+ var constraintsToChrome_ = function(c) {
+ if (typeof c !== 'object' || c.mandatory || c.optional) {
+ return c;
}
- }
- while (++index < length) {
- data = matchData[index];
- var key = data[0],
- objValue = object[key],
- srcValue = data[1];
-
- if (noCustomizer && data[2]) {
- if (objValue === undefined && !(key in object)) {
- return false;
+ var cc = {};
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
}
- } else {
- var result = customizer ? customizer(objValue, srcValue, key) : undefined;
- if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {
- return false;
+ var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
+ if (r.exact !== undefined && typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
}
- }
- }
- return true;
-}
-
-/**
- * The base implementation of `_.matches` which does not clone `source`.
- *
- * @private
- * @param {Object} source The object of property values to match.
- * @returns {Function} Returns the new function.
- */
-function baseMatches(source) {
- var matchData = getMatchData(source);
- if (matchData.length == 1 && matchData[0][2]) {
- var key = matchData[0][0],
- value = matchData[0][1];
-
- return function(object) {
- if (object == null) {
- return false;
+ var oldname_ = function(prefix, name) {
+ if (prefix) {
+ return prefix + name.charAt(0).toUpperCase() + name.slice(1);
+ }
+ return (name === 'deviceId') ? 'sourceId' : name;
+ };
+ if (r.ideal !== undefined) {
+ cc.optional = cc.optional || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[oldname_('min', key)] = r.ideal;
+ cc.optional.push(oc);
+ oc = {};
+ oc[oldname_('max', key)] = r.ideal;
+ cc.optional.push(oc);
+ } else {
+ oc[oldname_('', key)] = r.ideal;
+ cc.optional.push(oc);
+ }
}
- return object[key] === value && (value !== undefined || (key in toObject(object)));
- };
- }
- return function(object) {
- return baseIsMatch(object, matchData);
+ if (r.exact !== undefined && typeof r.exact !== 'number') {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_('', key)] = r.exact;
+ } else {
+ ['min', 'max'].forEach(function(mix) {
+ if (r[mix] !== undefined) {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_(mix, key)] = r[mix];
+ }
+ });
+ }
+ });
+ if (c.advanced) {
+ cc.optional = (cc.optional || []).concat(c.advanced);
+ }
+ return cc;
};
-}
-
-/**
- * The base implementation of `_.matchesProperty` which does not clone `srcValue`.
- *
- * @private
- * @param {string} path The path of the property to get.
- * @param {*} srcValue The value to compare.
- * @returns {Function} Returns the new function.
- */
-function baseMatchesProperty(path, srcValue) {
- var isArr = isArray(path),
- isCommon = isKey(path) && isStrictComparable(srcValue),
- pathKey = (path + '');
- path = toPath(path);
- return function(object) {
- if (object == null) {
- return false;
- }
- var key = pathKey;
- object = toObject(object);
- if ((isArr || !isCommon) && !(key in object)) {
- object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
- if (object == null) {
- return false;
+ var shimConstraints_ = function(constraints, func) {
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (constraints && constraints.audio) {
+ constraints.audio = constraintsToChrome_(constraints.audio);
+ }
+ if (constraints && typeof constraints.video === 'object') {
+ // Shim facingMode for mobile, where it defaults to "user".
+ var face = constraints.video.facingMode;
+ face = face && ((typeof face === 'object') ? face : {ideal: face});
+
+ if ((face && (face.exact === 'user' || face.exact === 'environment' ||
+ face.ideal === 'user' || face.ideal === 'environment')) &&
+ !(navigator.mediaDevices.getSupportedConstraints &&
+ navigator.mediaDevices.getSupportedConstraints().facingMode)) {
+ delete constraints.video.facingMode;
+ if (face.exact === 'environment' || face.ideal === 'environment') {
+ // Look for "back" in label, or use last cam (typically back cam).
+ return navigator.mediaDevices.enumerateDevices()
+ .then(function(devices) {
+ devices = devices.filter(function(d) {
+ return d.kind === 'videoinput';
+ });
+ var back = devices.find(function(d) {
+ return d.label.toLowerCase().indexOf('back') !== -1;
+ }) || (devices.length && devices[devices.length - 1]);
+ if (back) {
+ constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
+ {ideal: back.deviceId};
+ }
+ constraints.video = constraintsToChrome_(constraints.video);
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
+ });
+ }
}
- key = last(path);
- object = toObject(object);
+ constraints.video = constraintsToChrome_(constraints.video);
}
- return object[key] === srcValue
- ? (srcValue !== undefined || (key in object))
- : baseIsEqual(srcValue, object[key], undefined, true);
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
};
-}
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
+ var shimError_ = function(e) {
+ return {
+ name: {
+ PermissionDeniedError: 'NotAllowedError',
+ ConstraintNotSatisfiedError: 'OverconstrainedError'
+ }[e.name] || e.name,
+ message: e.message,
+ constraint: e.constraintName,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
+ }
+ };
};
-}
-/**
- * A specialized version of `baseProperty` which supports deep paths.
- *
- * @private
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- */
-function basePropertyDeep(path) {
- var pathKey = (path + '');
- path = toPath(path);
- return function(object) {
- return baseGet(object, path, pathKey);
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ shimConstraints_(constraints, function(c) {
+ navigator.webkitGetUserMedia(c, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
+ });
};
-}
-
-/**
- * The base implementation of `_.slice` without an iteratee call guard.
- *
- * @private
- * @param {Array} array The array to slice.
- * @param {number} [start=0] The start position.
- * @param {number} [end=array.length] The end position.
- * @returns {Array} Returns the slice of `array`.
- */
-function baseSlice(array, start, end) {
- var index = -1,
- length = array.length;
-
- start = start == null ? 0 : (+start || 0);
- if (start < 0) {
- start = -start > length ? 0 : (length + start);
- }
- end = (end === undefined || end > length) ? length : (+end || 0);
- if (end < 0) {
- end += length;
- }
- length = start > end ? 0 : ((end - start) >>> 0);
- start >>>= 0;
-
- var result = Array(length);
- while (++index < length) {
- result[index] = array[index + start];
- }
- return result;
-}
-
-/**
- * Gets the propery names, values, and compare flags of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the match data of `object`.
- */
-function getMatchData(object) {
- var result = pairs(object),
- length = result.length;
-
- while (length--) {
- result[length][2] = isStrictComparable(result[length][1]);
- }
- return result;
-}
-
-/**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
-function isKey(value, object) {
- var type = typeof value;
- if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {
- return true;
- }
- if (isArray(value)) {
- return false;
- }
- var result = !reIsDeepProp.test(value);
- return result || (object != null && value in toObject(object));
-}
-/**
- * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` if suitable for strict
- * equality comparisons, else `false`.
- */
-function isStrictComparable(value) {
- return value === value && !isObject(value);
-}
+ navigator.getUserMedia = getUserMedia_;
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ navigator.getUserMedia(constraints, resolve, reject);
+ });
+ };
-/**
- * Converts `value` to property path array if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Array} Returns the property path array.
- */
-function toPath(value) {
- if (isArray(value)) {
- return value;
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {
+ getUserMedia: getUserMediaPromise_,
+ enumerateDevices: function() {
+ return new Promise(function(resolve) {
+ var kinds = {audio: 'audioinput', video: 'videoinput'};
+ return MediaStreamTrack.getSources(function(devices) {
+ resolve(devices.map(function(device) {
+ return {label: device.label,
+ kind: kinds[device.kind],
+ deviceId: device.id,
+ groupId: ''};
+ }));
+ });
+ });
+ }
+ };
}
- var result = [];
- baseToString(value).replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
-}
-
-/**
- * Gets the last element of `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to query.
- * @returns {*} Returns the last element of `array`.
- * @example
- *
- * _.last([1, 2, 3]);
- * // => 3
- */
-function last(array) {
- var length = array ? array.length : 0;
- return length ? array[length - 1] : undefined;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * This method returns the first argument provided to it.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.identity(object) === object;
- * // => true
- */
-function identity(value) {
- return value;
-}
-
-/**
- * Creates a function that returns the property value at `path` on a
- * given object.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var objects = [
- * { 'a': { 'b': { 'c': 2 } } },
- * { 'a': { 'b': { 'c': 1 } } }
- * ];
- *
- * _.map(objects, _.property('a.b.c'));
- * // => [2, 1]
- *
- * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
- * // => [1, 2]
- */
-function property(path) {
- return isKey(path) ? baseProperty(path) : basePropertyDeep(path);
-}
-
-module.exports = baseCallback;
-
-},{"lodash._baseisequal":69,"lodash._bindcallback":71,"lodash.isarray":65,"lodash.pairs":72}],69:[function(require,module,exports){
-/**
- * lodash 3.0.7 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var isArray = require('lodash.isarray'),
- isTypedArray = require('lodash.istypedarray'),
- keys = require('lodash.keys');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- stringTag = '[object String]';
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/**
- * A specialized version of `_.some` for arrays without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} predicate The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check,
- * else `false`.
- */
-function arraySome(array, predicate) {
- var index = -1,
- length = array.length;
-
- while (++index < length) {
- if (predicate(array[index], index, array)) {
- return true;
- }
+ // A shim for getUserMedia method on the mediaDevices object.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (!navigator.mediaDevices.getUserMedia) {
+ navigator.mediaDevices.getUserMedia = function(constraints) {
+ return getUserMediaPromise_(constraints);
+ };
+ } else {
+ // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
+ // function which returns a Promise, it does not accept spec-style
+ // constraints.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(cs) {
+ return shimConstraints_(cs, function(c) {
+ return origGetUserMedia(c).catch(function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ });
+ };
}
- return false;
-}
-/**
- * The base implementation of `_.isEqual` without support for `this` binding
- * `customizer` functions.
- *
- * @private
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @param {Function} [customizer] The function to customize comparing values.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA] Tracks traversed `value` objects.
- * @param {Array} [stackB] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- */
-function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
- if (value === other) {
- return true;
+ // Dummy devicechange event methods.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
+ navigator.mediaDevices.addEventListener = function() {
+ logging('Dummy mediaDevices.addEventListener called.');
+ };
}
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
- return value !== value && other !== other;
+ if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
+ navigator.mediaDevices.removeEventListener = function() {
+ logging('Dummy mediaDevices.removeEventListener called.');
+ };
}
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
-}
+};
-/**
- * A specialized version of `baseIsEqual` for arrays and objects which performs
- * deep comparisons and tracks traversed objects enabling objects with circular
- * references to be compared.
+},{"../utils.js":41}],36:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparing objects.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA=[]] Tracks traversed `value` objects.
- * @param {Array} [stackB=[]] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
- var objIsArr = isArray(object),
- othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
-
- if (!objIsArr) {
- objTag = objToString.call(object);
- if (objTag == argsTag) {
- objTag = objectTag;
- } else if (objTag != objectTag) {
- objIsArr = isTypedArray(object);
- }
- }
- if (!othIsArr) {
- othTag = objToString.call(other);
- if (othTag == argsTag) {
- othTag = objectTag;
- } else if (othTag != objectTag) {
- othIsArr = isTypedArray(other);
- }
- }
- var objIsObj = objTag == objectTag,
- othIsObj = othTag == objectTag,
- isSameTag = objTag == othTag;
-
- if (isSameTag && !(objIsArr || objIsObj)) {
- return equalByTag(object, other, objTag);
- }
- if (!isLoose) {
- var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
- othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
-
- if (objIsWrapped || othIsWrapped) {
- return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
- }
- }
- if (!isSameTag) {
- return false;
- }
- // Assume cyclic values are equal.
- // For more information on detecting circular references see https://es5.github.io/#JO.
- stackA || (stackA = []);
- stackB || (stackB = []);
-
- var length = stackA.length;
- while (length--) {
- if (stackA[length] == object) {
- return stackB[length] == other;
- }
- }
- // Add `object` and `other` to the stack of traversed objects.
- stackA.push(object);
- stackB.push(other);
-
- var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);
-
- stackA.pop();
- stackB.pop();
-
- return result;
-}
-
-/**
- * A specialized version of `baseIsEqualDeep` for arrays with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Array} array The array to compare.
- * @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparing arrays.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA] Tracks traversed `value` objects.
- * @param {Array} [stackB] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
- */
-function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
- var index = -1,
- arrLength = array.length,
- othLength = other.length;
-
- if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
- return false;
- }
- // Ignore non-index properties.
- while (++index < arrLength) {
- var arrValue = array[index],
- othValue = other[index],
- result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;
+ /* eslint-env node */
+'use strict';
- if (result !== undefined) {
- if (result) {
- continue;
+var SDPUtils = require('sdp');
+var logging = require('../utils').log;
+
+var edgeShim = {
+ shimPeerConnection: function() {
+ if (window.RTCIceGatherer) {
+ // ORTC defines an RTCIceCandidate object but no constructor.
+ // Not implemented in Edge.
+ if (!window.RTCIceCandidate) {
+ window.RTCIceCandidate = function(args) {
+ return args;
+ };
}
- return false;
- }
- // Recursively compare arrays (susceptible to call stack limits).
- if (isLoose) {
- if (!arraySome(other, function(othValue) {
- return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
- })) {
- return false;
+ // ORTC does not have a session description object but
+ // other browsers (i.e. Chrome) that will support both PC and ORTC
+ // in the future might have this defined already.
+ if (!window.RTCSessionDescription) {
+ window.RTCSessionDescription = function(args) {
+ return args;
+ };
}
- } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {
- return false;
}
- }
- return true;
-}
-
-/**
- * A specialized version of `baseIsEqualDeep` for comparing objects of
- * the same `toStringTag`.
- *
- * **Note:** This function only supports comparing values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} value The object to compare.
- * @param {Object} other The other object to compare.
- * @param {string} tag The `toStringTag` of the objects to compare.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function equalByTag(object, other, tag) {
- switch (tag) {
- case boolTag:
- case dateTag:
- // Coerce dates and booleans to numbers, dates to milliseconds and booleans
- // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.
- return +object == +other;
-
- case errorTag:
- return object.name == other.name && object.message == other.message;
-
- case numberTag:
- // Treat `NaN` vs. `NaN` as equal.
- return (object != +object)
- ? other != +other
- : object == +other;
-
- case regexpTag:
- case stringTag:
- // Coerce regexes to strings and treat strings primitives and string
- // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.
- return object == (other + '');
- }
- return false;
-}
-
-/**
- * A specialized version of `baseIsEqualDeep` for objects with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparing values.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA] Tracks traversed `value` objects.
- * @param {Array} [stackB] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
- var objProps = keys(object),
- objLength = objProps.length,
- othProps = keys(other),
- othLength = othProps.length;
-
- if (objLength != othLength && !isLoose) {
- return false;
- }
- var index = objLength;
- while (index--) {
- var key = objProps[index];
- if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {
- return false;
- }
- }
- var skipCtor = isLoose;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object[key],
- othValue = other[key],
- result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;
-
- // Recursively compare objects (susceptible to call stack limits).
- if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {
- return false;
- }
- skipCtor || (skipCtor = key == 'constructor');
- }
- if (!skipCtor) {
- var objCtor = object.constructor,
- othCtor = other.constructor;
-
- // Non `Object` object instances with different constructors are not equal.
- if (objCtor != othCtor &&
- ('constructor' in object && 'constructor' in other) &&
- !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
- typeof othCtor == 'function' && othCtor instanceof othCtor)) {
- return false;
- }
- }
- return true;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-module.exports = baseIsEqual;
-
-},{"lodash.isarray":65,"lodash.istypedarray":70,"lodash.keys":74}],70:[function(require,module,exports){
-/**
- * lodash 3.0.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- weakMapTag = '[object WeakMap]';
-
-var arrayBufferTag = '[object ArrayBuffer]',
- float32Tag = '[object Float32Array]',
- float64Tag = '[object Float64Array]',
- int8Tag = '[object Int8Array]',
- int16Tag = '[object Int16Array]',
- int32Tag = '[object Int32Array]',
- uint8Tag = '[object Uint8Array]',
- uint8ClampedTag = '[object Uint8ClampedArray]',
- uint16Tag = '[object Uint16Array]',
- uint32Tag = '[object Uint32Array]';
-
-/** Used to identify `toStringTag` values of typed arrays. */
-var typedArrayTags = {};
-typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
-typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
-typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
-typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
-typedArrayTags[uint32Tag] = true;
-typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
-typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
-typedArrayTags[dateTag] = typedArrayTags[errorTag] =
-typedArrayTags[funcTag] = typedArrayTags[mapTag] =
-typedArrayTags[numberTag] = typedArrayTags[objectTag] =
-typedArrayTags[regexpTag] = typedArrayTags[setTag] =
-typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Checks if `value` is classified as a typed array.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isTypedArray(new Uint8Array);
- * // => true
- *
- * _.isTypedArray([]);
- * // => false
- */
-function isTypedArray(value) {
- return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];
-}
-
-module.exports = isTypedArray;
-
-},{}],71:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],72:[function(require,module,exports){
-/**
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var keys = require('lodash.keys');
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * Creates a two dimensional array of the key-value pairs for `object`,
- * e.g. `[[key1, value1], [key2, value2]]`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the new array of key-value pairs.
- * @example
- *
- * _.pairs({ 'barney': 36, 'fred': 40 });
- * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed)
- */
-function pairs(object) {
- object = toObject(object);
-
- var index = -1,
- props = keys(object),
- length = props.length,
- result = Array(length);
-
- while (++index < length) {
- var key = props[index];
- result[index] = [key, object[key]];
- }
- return result;
-}
-
-module.exports = pairs;
-
-},{"lodash.keys":74}],73:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":74}],74:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":75,"lodash.isarguments":76,"lodash.isarray":65}],75:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],76:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],77:[function(require,module,exports){
-var toSDP = require('./lib/tosdp');
-var toJSON = require('./lib/tojson');
-
-
-// Converstion from JSON to SDP
-
-exports.toIncomingSDPOffer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'responder',
- direction: 'incoming'
- });
-};
-exports.toOutgoingSDPOffer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'initiator',
- direction: 'outgoing'
- });
-};
-exports.toIncomingSDPAnswer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'initiator',
- direction: 'incoming'
- });
-};
-exports.toOutgoingSDPAnswer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'responder',
- direction: 'outgoing'
- });
-};
-exports.toIncomingMediaSDPOffer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'responder',
- direction: 'incoming'
- });
-};
-exports.toOutgoingMediaSDPOffer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'initiator',
- direction: 'outgoing'
- });
-};
-exports.toIncomingMediaSDPAnswer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'initiator',
- direction: 'incoming'
- });
-};
-exports.toOutgoingMediaSDPAnswer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'responder',
- direction: 'outgoing'
- });
-};
-exports.toCandidateSDP = toSDP.toCandidateSDP;
-exports.toMediaSDP = toSDP.toMediaSDP;
-exports.toSessionSDP = toSDP.toSessionSDP;
+ window.RTCPeerConnection = function(config) {
+ var self = this;
-// Conversion from SDP to JSON
+ var _eventTarget = document.createDocumentFragment();
+ ['addEventListener', 'removeEventListener', 'dispatchEvent']
+ .forEach(function(method) {
+ self[method] = _eventTarget[method].bind(_eventTarget);
+ });
-exports.toIncomingJSONOffer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'responder',
- direction: 'incoming',
- creators: creators
- });
-};
-exports.toOutgoingJSONOffer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'initiator',
- direction: 'outgoing',
- creators: creators
- });
-};
-exports.toIncomingJSONAnswer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'initiator',
- direction: 'incoming',
- creators: creators
- });
-};
-exports.toOutgoingJSONAnswer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'responder',
- direction: 'outgoing',
- creators: creators
- });
-};
-exports.toIncomingMediaJSONOffer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'responder',
- direction: 'incoming',
- creator: creator
- });
-};
-exports.toOutgoingMediaJSONOffer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'initiator',
- direction: 'outgoing',
- creator: creator
- });
-};
-exports.toIncomingMediaJSONAnswer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'initiator',
- direction: 'incoming',
- creator: creator
- });
-};
-exports.toOutgoingMediaJSONAnswer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'responder',
- direction: 'outgoing',
- creator: creator
- });
-};
-exports.toCandidateJSON = toJSON.toCandidateJSON;
-exports.toMediaJSON = toJSON.toMediaJSON;
-exports.toSessionJSON = toJSON.toSessionJSON;
+ this.onicecandidate = null;
+ this.onaddstream = null;
+ this.ontrack = null;
+ this.onremovestream = null;
+ this.onsignalingstatechange = null;
+ this.oniceconnectionstatechange = null;
+ this.onnegotiationneeded = null;
+ this.ondatachannel = null;
+
+ this.localStreams = [];
+ this.remoteStreams = [];
+ this.getLocalStreams = function() {
+ return self.localStreams;
+ };
+ this.getRemoteStreams = function() {
+ return self.remoteStreams;
+ };
-},{"./lib/tojson":80,"./lib/tosdp":81}],78:[function(require,module,exports){
-exports.lines = function (sdp) {
- return sdp.split('\r\n').filter(function (line) {
- return line.length > 0;
- });
-};
+ this.localDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.remoteDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.signalingState = 'stable';
+ this.iceConnectionState = 'new';
+ this.iceGatheringState = 'new';
-exports.findLine = function (prefix, mediaLines, sessionLines) {
- var prefixLength = prefix.length;
- for (var i = 0; i < mediaLines.length; i++) {
- if (mediaLines[i].substr(0, prefixLength) === prefix) {
- return mediaLines[i];
+ this.iceOptions = {
+ gatherPolicy: 'all',
+ iceServers: []
+ };
+ if (config && config.iceTransportPolicy) {
+ switch (config.iceTransportPolicy) {
+ case 'all':
+ case 'relay':
+ this.iceOptions.gatherPolicy = config.iceTransportPolicy;
+ break;
+ case 'none':
+ // FIXME: remove once implementation and spec have added this.
+ throw new TypeError('iceTransportPolicy "none" not supported');
+ default:
+ // don't set iceTransportPolicy.
+ break;
}
- }
- // Continue searching in parent session section
- if (!sessionLines) {
- return false;
- }
+ }
+ this.usingBundle = config && config.bundlePolicy === 'max-bundle';
+
+ if (config && config.iceServers) {
+ // Edge does not like
+ // 1) stun:
+ // 2) turn: that does not have all of turn:host:port?transport=udp
+ var iceServers = JSON.parse(JSON.stringify(config.iceServers));
+ this.iceOptions.iceServers = iceServers.filter(function(server) {
+ if (server && server.urls) {
+ var urls = server.urls;
+ if (typeof urls === 'string') {
+ urls = [urls];
+ }
+ urls = urls.filter(function(url) {
+ return url.indexOf('turn:') === 0 &&
+ url.indexOf('transport=udp') !== -1;
+ })[0];
+ return !!urls;
+ }
+ return false;
+ });
+ }
- for (var j = 0; j < sessionLines.length; j++) {
- if (sessionLines[j].substr(0, prefixLength) === prefix) {
- return sessionLines[j];
- }
- }
+ // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
+ // everything that is needed to describe a SDP m-line.
+ this.transceivers = [];
- return false;
-};
+ // since the iceGatherer is currently created in createOffer but we
+ // must not emit candidates until after setLocalDescription we buffer
+ // them in this array.
+ this._localIceCandidatesBuffer = [];
+ };
-exports.findLines = function (prefix, mediaLines, sessionLines) {
- var results = [];
- var prefixLength = prefix.length;
- for (var i = 0; i < mediaLines.length; i++) {
- if (mediaLines[i].substr(0, prefixLength) === prefix) {
- results.push(mediaLines[i]);
+ window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
+ var self = this;
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ // FIXME: need to apply ice candidates in a way which is async but
+ // in-order
+ this._localIceCandidatesBuffer.forEach(function(event) {
+ var end = !event.candidate || Object.keys(event.candidate).length === 0;
+ if (end) {
+ for (var j = 1; j < sections.length; j++) {
+ if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
+ sections[j] += 'a=end-of-candidates\r\n';
+ }
+ }
+ } else if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
}
- }
- if (results.length || !sessionLines) {
- return results;
- }
- for (var j = 0; j < sessionLines.length; j++) {
- if (sessionLines[j].substr(0, prefixLength) === prefix) {
- results.push(sessionLines[j]);
+ self.localDescription.sdp = sections.join('');
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
}
- }
- return results;
-};
-
-exports.mline = function (line) {
- var parts = line.substr(2).split(' ');
- var parsed = {
- media: parts[0],
- port: parts[1],
- proto: parts[2],
- formats: []
- };
- for (var i = 3; i < parts.length; i++) {
- if (parts[i]) {
- parsed.formats.push(parts[i]);
+ if (!event.candidate && self.iceGatheringState !== 'complete') {
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+ if (complete) {
+ self.iceGatheringState = 'complete';
+ }
}
- }
- return parsed;
-};
+ });
+ this._localIceCandidatesBuffer = [];
+ };
-exports.rtpmap = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- id: parts.shift()
+ window.RTCPeerConnection.prototype.addStream = function(stream) {
+ // Clone is necessary for local demos mostly, attaching directly
+ // to two different senders does not work (build 10547).
+ this.localStreams.push(stream.clone());
+ this._maybeFireNegotiationNeeded();
};
- parts = parts[0].split('/');
+ window.RTCPeerConnection.prototype.removeStream = function(stream) {
+ var idx = this.localStreams.indexOf(stream);
+ if (idx > -1) {
+ this.localStreams.splice(idx, 1);
+ this._maybeFireNegotiationNeeded();
+ }
+ };
- parsed.name = parts[0];
- parsed.clockrate = parts[1];
- parsed.channels = parts.length == 3 ? parts[2] : '1';
- return parsed;
-};
+ window.RTCPeerConnection.prototype.getSenders = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpSender;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpSender;
+ });
+ };
-exports.sctpmap = function (line) {
- // based on -05 draft
- var parts = line.substr(10).split(' ');
- var parsed = {
- number: parts.shift(),
- protocol: parts.shift(),
- streams: parts.shift()
+ window.RTCPeerConnection.prototype.getReceivers = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpReceiver;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpReceiver;
+ });
};
- return parsed;
-};
+ // Determines the intersection of local and remote capabilities.
+ window.RTCPeerConnection.prototype._getCommonCapabilities =
+ function(localCapabilities, remoteCapabilities) {
+ var commonCapabilities = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: []
+ };
+ localCapabilities.codecs.forEach(function(lCodec) {
+ for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
+ var rCodec = remoteCapabilities.codecs[i];
+ if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
+ lCodec.clockRate === rCodec.clockRate &&
+ lCodec.numChannels === rCodec.numChannels) {
+ // push rCodec so we reply with offerer payload type
+ commonCapabilities.codecs.push(rCodec);
+
+ // FIXME: also need to determine intersection between
+ // .rtcpFeedback and .parameters
+ break;
+ }
+ }
+ });
-exports.fmtp = function (line) {
- var kv, key, value;
- var parts = line.substr(line.indexOf(' ') + 1).split(';');
- var parsed = [];
- for (var i = 0; i < parts.length; i++) {
- kv = parts[i].split('=');
- key = kv[0].trim();
- value = kv[1];
- if (key && value) {
- parsed.push({key: key, value: value});
- } else if (key) {
- parsed.push({key: '', value: key});
- }
- }
- return parsed;
-};
+ localCapabilities.headerExtensions
+ .forEach(function(lHeaderExtension) {
+ for (var i = 0; i < remoteCapabilities.headerExtensions.length;
+ i++) {
+ var rHeaderExtension = remoteCapabilities.headerExtensions[i];
+ if (lHeaderExtension.uri === rHeaderExtension.uri) {
+ commonCapabilities.headerExtensions.push(rHeaderExtension);
+ break;
+ }
+ }
+ });
-exports.crypto = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- tag: parts[0],
- cipherSuite: parts[1],
- keyParams: parts[2],
- sessionParams: parts.slice(3).join(' ')
- };
- return parsed;
-};
+ // FIXME: fecMechanisms
+ return commonCapabilities;
+ };
-exports.fingerprint = function (line) {
- var parts = line.substr(14).split(' ');
- return {
- hash: parts[0],
- value: parts[1]
- };
-};
+ // Create ICE gatherer, ICE transport and DTLS transport.
+ window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
+ function(mid, sdpMLineIndex) {
+ var self = this;
+ var iceGatherer = new RTCIceGatherer(self.iceOptions);
+ var iceTransport = new RTCIceTransport(iceGatherer);
+ iceGatherer.onlocalcandidate = function(evt) {
+ var event = new Event('icecandidate');
+ event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
+
+ var cand = evt.candidate;
+ var end = !cand || Object.keys(cand).length === 0;
+ // Edge emits an empty object for RTCIceCandidateComplete‥
+ if (end) {
+ // polyfill since RTCIceGatherer.state is not implemented in
+ // Edge 10547 yet.
+ if (iceGatherer.state === undefined) {
+ iceGatherer.state = 'completed';
+ }
-exports.extmap = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {};
+ // Emit a candidate with type endOfCandidates to make the samples
+ // work. Edge requires addIceCandidate with this empty candidate
+ // to start checking. The real solution is to signal
+ // end-of-candidates to the other side when getting the null
+ // candidate but some apps (like the samples) don't do that.
+ event.candidate.candidate =
+ 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
+ } else {
+ // RTCIceCandidate doesn't have a component, needs to be added
+ cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
+ event.candidate.candidate = SDPUtils.writeCandidate(cand);
+ }
- var idpart = parts.shift();
- var sp = idpart.indexOf('/');
- if (sp >= 0) {
- parsed.id = idpart.substr(0, sp);
- parsed.senders = idpart.substr(sp + 1);
- } else {
- parsed.id = idpart;
- parsed.senders = 'sendrecv';
- }
+ // update local description.
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ } else {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=end-of-candidates\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
- parsed.uri = parts.shift() || '';
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
- return parsed;
-};
+ // Emit candidate if localDescription is set.
+ // Also emits null candidate when all gatherers are complete.
+ switch (self.iceGatheringState) {
+ case 'new':
+ self._localIceCandidatesBuffer.push(event);
+ if (end && complete) {
+ self._localIceCandidatesBuffer.push(
+ new Event('icecandidate'));
+ }
+ break;
+ case 'gathering':
+ self._emitBufferedCandidates();
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ if (complete) {
+ self.dispatchEvent(new Event('icecandidate'));
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(new Event('icecandidate'));
+ }
+ self.iceGatheringState = 'complete';
+ }
+ break;
+ case 'complete':
+ // should not happen... currently!
+ break;
+ default: // no-op.
+ break;
+ }
+ };
+ iceTransport.onicestatechange = function() {
+ self._updateConnectionState();
+ };
-exports.rtcpfb = function (line) {
- var parts = line.substr(10).split(' ');
- var parsed = {};
- parsed.id = parts.shift();
- parsed.type = parts.shift();
- if (parsed.type === 'trr-int') {
- parsed.value = parts.shift();
- } else {
- parsed.subtype = parts.shift() || '';
- }
- parsed.parameters = parts;
- return parsed;
-};
+ var dtlsTransport = new RTCDtlsTransport(iceTransport);
+ dtlsTransport.ondtlsstatechange = function() {
+ self._updateConnectionState();
+ };
+ dtlsTransport.onerror = function() {
+ // onerror does not set state to failed by itself.
+ dtlsTransport.state = 'failed';
+ self._updateConnectionState();
+ };
-exports.candidate = function (line) {
- var parts;
- if (line.indexOf('a=candidate:') === 0) {
- parts = line.substring(12).split(' ');
- } else { // no a=candidate
- parts = line.substring(10).split(' ');
- }
+ return {
+ iceGatherer: iceGatherer,
+ iceTransport: iceTransport,
+ dtlsTransport: dtlsTransport
+ };
+ };
- var candidate = {
- foundation: parts[0],
- component: parts[1],
- protocol: parts[2].toLowerCase(),
- priority: parts[3],
- ip: parts[4],
- port: parts[5],
- // skip parts[6] == 'typ'
- type: parts[7],
- generation: '0'
+ // Start the RTP Sender and Receiver for a transceiver.
+ window.RTCPeerConnection.prototype._transceive = function(transceiver,
+ send, recv) {
+ var params = this._getCommonCapabilities(transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+ if (send && transceiver.rtpSender) {
+ params.encodings = transceiver.sendEncodingParameters;
+ params.rtcp = {
+ cname: SDPUtils.localCName
+ };
+ if (transceiver.recvEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpSender.send(params);
+ }
+ if (recv && transceiver.rtpReceiver) {
+ params.encodings = transceiver.recvEncodingParameters;
+ params.rtcp = {
+ cname: transceiver.cname
+ };
+ if (transceiver.sendEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpReceiver.receive(params);
+ }
};
- for (var i = 8; i < parts.length; i += 2) {
- if (parts[i] === 'raddr') {
- candidate.relAddr = parts[i + 1];
- } else if (parts[i] === 'rport') {
- candidate.relPort = parts[i + 1];
- } else if (parts[i] === 'generation') {
- candidate.generation = parts[i + 1];
- } else if (parts[i] === 'tcptype') {
- candidate.tcpType = parts[i + 1];
- }
- }
+ window.RTCPeerConnection.prototype.setLocalDescription =
+ function(description) {
+ var self = this;
+ var sections;
+ var sessionpart;
+ if (description.type === 'offer') {
+ // FIXME: What was the purpose of this empty if statement?
+ // if (!this._pendingOffer) {
+ // } else {
+ if (this._pendingOffer) {
+ // VERY limited support for SDP munging. Limited to:
+ // * changing the order of codecs
+ sections = SDPUtils.splitSections(description.sdp);
+ sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var caps = SDPUtils.parseRtpParameters(mediaSection);
+ self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
+ });
+ this.transceivers = this._pendingOffer;
+ delete this._pendingOffer;
+ }
+ } else if (description.type === 'answer') {
+ sections = SDPUtils.splitSections(self.remoteDescription.sdp);
+ sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var transceiver = self.transceivers[sdpMLineIndex];
+ var iceGatherer = transceiver.iceGatherer;
+ var iceTransport = transceiver.iceTransport;
+ var dtlsTransport = transceiver.dtlsTransport;
+ var localCapabilities = transceiver.localCapabilities;
+ var remoteCapabilities = transceiver.remoteCapabilities;
+ var rejected = mediaSection.split('\n', 1)[0]
+ .split(' ', 2)[1] === '0';
+
+ if (!rejected) {
+ var remoteIceParameters = SDPUtils.getIceParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ // ice-lite only includes host candidates in the SDP so we can
+ // use setRemoteCandidates (which implies an
+ // RTCIceCandidateComplete)
+ if (cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
+ }
+ var remoteDtlsParameters = SDPUtils.getDtlsParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ remoteDtlsParameters.role = 'server';
+ }
- candidate.network = '1';
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ isIceLite ? 'controlling' : 'controlled');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
- return candidate;
-};
+ // Calculate intersection of capabilities.
+ var params = self._getCommonCapabilities(localCapabilities,
+ remoteCapabilities);
-exports.sourceGroups = function (lines) {
- var parsed = [];
- for (var i = 0; i < lines.length; i++) {
- var parts = lines[i].substr(13).split(' ');
- parsed.push({
- semantics: parts.shift(),
- sources: parts
- });
- }
- return parsed;
-};
+ // Start the RTCRtpSender. The RTCRtpReceiver for this
+ // transceiver has already been started in setRemoteDescription.
+ self._transceive(transceiver,
+ params.codecs.length > 0,
+ false);
+ }
+ });
+ }
-exports.sources = function (lines) {
- // http://tools.ietf.org/html/rfc5576
- var parsed = [];
- var sources = {};
- for (var i = 0; i < lines.length; i++) {
- var parts = lines[i].substr(7).split(' ');
- var ssrc = parts.shift();
+ this.localDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-local-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
- if (!sources[ssrc]) {
- var source = {
- ssrc: ssrc,
- parameters: []
- };
- parsed.push(source);
+ // If a success callback was provided, emit ICE candidates after it
+ // has been executed. Otherwise, emit callback after the Promise is
+ // resolved.
+ var hasCallback = arguments.length > 1 &&
+ typeof arguments[1] === 'function';
+ if (hasCallback) {
+ var cb = arguments[1];
+ window.setTimeout(function() {
+ cb();
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ self._emitBufferedCandidates();
+ }, 0);
+ }
+ var p = Promise.resolve();
+ p.then(function() {
+ if (!hasCallback) {
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ // Usually candidates will be emitted earlier.
+ window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
+ }
+ });
+ return p;
+ };
- // Keep an index
- sources[ssrc] = source;
- }
+ window.RTCPeerConnection.prototype.setRemoteDescription =
+ function(description) {
+ var self = this;
+ var stream = new MediaStream();
+ var receiverList = [];
+ var sections = SDPUtils.splitSections(description.sdp);
+ var sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ this.usingBundle = SDPUtils.matchPrefix(sessionpart,
+ 'a=group:BUNDLE ').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].substr(2).split(' ');
+ var kind = mline[0];
+ var rejected = mline[1] === '0';
+ var direction = SDPUtils.getDirection(mediaSection, sessionpart);
+
+ var transceiver;
+ var iceGatherer;
+ var iceTransport;
+ var dtlsTransport;
+ var rtpSender;
+ var rtpReceiver;
+ var sendEncodingParameters;
+ var recvEncodingParameters;
+ var localCapabilities;
+
+ var track;
+ // FIXME: ensure the mediaSection has rtcp-mux set.
+ var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
+ var remoteIceParameters;
+ var remoteDtlsParameters;
+ if (!rejected) {
+ remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters.role = 'client';
+ }
+ recvEncodingParameters =
+ SDPUtils.parseRtpEncodingParameters(mediaSection);
+
+ var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
+ if (mid.length) {
+ mid = mid[0].substr(6);
+ } else {
+ mid = SDPUtils.generateIdentifier();
+ }
+
+ var cname;
+ // Gets the first SSRC. Note that with RTX there might be multiple
+ // SSRCs.
+ var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(obj) {
+ return obj.attribute === 'cname';
+ })[0];
+ if (remoteSsrc) {
+ cname = remoteSsrc.value;
+ }
+
+ var isComplete = SDPUtils.matchPrefix(mediaSection,
+ 'a=end-of-candidates').length > 0;
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ if (description.type === 'offer' && !rejected) {
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: self.transceivers[0].iceGatherer,
+ iceTransport: self.transceivers[0].iceTransport,
+ dtlsTransport: self.transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ if (isComplete) {
+ transports.iceTransport.setRemoteCandidates(cands);
+ }
- parts = parts.join(' ').split(':');
- var attribute = parts.shift();
- var value = parts.join(':') || null;
+ localCapabilities = RTCRtpReceiver.getCapabilities(kind);
+ sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 2) * 1001
+ }];
+
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ // FIXME: not correct when there are multiple streams but that is
+ // not currently supported in this shim.
+ stream.addTrack(track);
+
+ // FIXME: look at direction.
+ if (self.localStreams.length > 0 &&
+ self.localStreams[0].getTracks().length >= sdpMLineIndex) {
+ // FIXME: actually more complicated, needs to match types etc
+ var localtrack = self.localStreams[0]
+ .getTracks()[sdpMLineIndex];
+ rtpSender = new RTCRtpSender(localtrack,
+ transports.dtlsTransport);
+ }
- sources[ssrc].parameters.push({
- key: attribute,
- value: value
- });
- }
+ self.transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: remoteCapabilities,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ cname: cname,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: recvEncodingParameters
+ };
+ // Start the RTCRtpReceiver now. The RTPSender is started in
+ // setLocalDescription.
+ self._transceive(self.transceivers[sdpMLineIndex],
+ false,
+ direction === 'sendrecv' || direction === 'sendonly');
+ } else if (description.type === 'answer' && !rejected) {
+ transceiver = self.transceivers[sdpMLineIndex];
+ iceGatherer = transceiver.iceGatherer;
+ iceTransport = transceiver.iceTransport;
+ dtlsTransport = transceiver.dtlsTransport;
+ rtpSender = transceiver.rtpSender;
+ rtpReceiver = transceiver.rtpReceiver;
+ sendEncodingParameters = transceiver.sendEncodingParameters;
+ localCapabilities = transceiver.localCapabilities;
+
+ self.transceivers[sdpMLineIndex].recvEncodingParameters =
+ recvEncodingParameters;
+ self.transceivers[sdpMLineIndex].remoteCapabilities =
+ remoteCapabilities;
+ self.transceivers[sdpMLineIndex].cname = cname;
+
+ if ((isIceLite || isComplete) && cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ 'controlling');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
- return parsed;
-};
+ self._transceive(transceiver,
+ direction === 'sendrecv' || direction === 'recvonly',
+ direction === 'sendrecv' || direction === 'sendonly');
-exports.groups = function (lines) {
- // http://tools.ietf.org/html/rfc5888
- var parsed = [];
- var parts;
- for (var i = 0; i < lines.length; i++) {
- parts = lines[i].substr(8).split(' ');
- parsed.push({
- semantics: parts.shift(),
- contents: parts
- });
- }
- return parsed;
-};
+ if (rtpReceiver &&
+ (direction === 'sendrecv' || direction === 'sendonly')) {
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ stream.addTrack(track);
+ } else {
+ // FIXME: actually the receiver should be created later.
+ delete transceiver.rtpReceiver;
+ }
+ }
+ });
-exports.bandwidth = function (line) {
- var parts = line.substr(2).split(':');
- var parsed = {};
- parsed.type = parts.shift();
- parsed.bandwidth = parts.shift();
- return parsed;
-};
+ this.remoteDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-remote-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
+ if (stream.getTracks().length) {
+ self.remoteStreams.push(stream);
+ window.setTimeout(function() {
+ var event = new Event('addstream');
+ event.stream = stream;
+ self.dispatchEvent(event);
+ if (self.onaddstream !== null) {
+ window.setTimeout(function() {
+ self.onaddstream(event);
+ }, 0);
+ }
-exports.msid = function (line) {
- var data = line.substr(7);
- var parts = data.split(' ');
- return {
- msid: data,
- mslabel: parts[0],
- label: parts[1]
- };
-};
+ receiverList.forEach(function(item) {
+ var track = item[0];
+ var receiver = item[1];
+ var trackEvent = new Event('track');
+ trackEvent.track = track;
+ trackEvent.receiver = receiver;
+ trackEvent.streams = [stream];
+ self.dispatchEvent(event);
+ if (self.ontrack !== null) {
+ window.setTimeout(function() {
+ self.ontrack(trackEvent);
+ }, 0);
+ }
+ });
+ }, 0);
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
-},{}],79:[function(require,module,exports){
-module.exports = {
- initiator: {
- incoming: {
- initiator: 'recvonly',
- responder: 'sendonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'initiator',
- sendonly: 'responder',
- sendrecv: 'both',
- inactive: 'none'
- },
- outgoing: {
- initiator: 'sendonly',
- responder: 'recvonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'responder',
- sendonly: 'initiator',
- sendrecv: 'both',
- inactive: 'none'
+ window.RTCPeerConnection.prototype.close = function() {
+ this.transceivers.forEach(function(transceiver) {
+ /* not yet
+ if (transceiver.iceGatherer) {
+ transceiver.iceGatherer.close();
}
- },
- responder: {
- incoming: {
- initiator: 'sendonly',
- responder: 'recvonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'responder',
- sendonly: 'initiator',
- sendrecv: 'both',
- inactive: 'none'
- },
- outgoing: {
- initiator: 'recvonly',
- responder: 'sendonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'initiator',
- sendonly: 'responder',
- sendrecv: 'both',
- inactive: 'none'
+ */
+ if (transceiver.iceTransport) {
+ transceiver.iceTransport.stop();
}
- }
-};
-
-},{}],80:[function(require,module,exports){
-var SENDERS = require('./senders');
-var parsers = require('./parsers');
-var idCounter = Math.random();
-
-
-exports._setIdCounter = function (counter) {
- idCounter = counter;
-};
-
-exports.toSessionJSON = function (sdp, opts) {
- var i;
- var creators = opts.creators || [];
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
-
- // Divide the SDP into session and media sections.
- var media = sdp.split('\r\nm=');
- for (i = 1; i < media.length; i++) {
- media[i] = 'm=' + media[i];
- if (i !== media.length - 1) {
- media[i] += '\r\n';
+ if (transceiver.dtlsTransport) {
+ transceiver.dtlsTransport.stop();
}
- }
- var session = media.shift() + '\r\n';
- var sessionLines = parsers.lines(session);
- var parsed = {};
-
- var contents = [];
- for (i = 0; i < media.length; i++) {
- contents.push(exports.toMediaJSON(media[i], session, {
- role: role,
- direction: direction,
- creator: creators[i] || 'initiator'
- }));
- }
- parsed.contents = contents;
-
- var groupLines = parsers.findLines('a=group:', sessionLines);
- if (groupLines.length) {
- parsed.groups = parsers.groups(groupLines);
- }
+ if (transceiver.rtpSender) {
+ transceiver.rtpSender.stop();
+ }
+ if (transceiver.rtpReceiver) {
+ transceiver.rtpReceiver.stop();
+ }
+ });
+ // FIXME: clean up tracks, local streams, remote streams, etc
+ this._updateSignalingState('closed');
+ };
- return parsed;
-};
+ // Update the signaling state.
+ window.RTCPeerConnection.prototype._updateSignalingState =
+ function(newState) {
+ this.signalingState = newState;
+ var event = new Event('signalingstatechange');
+ this.dispatchEvent(event);
+ if (this.onsignalingstatechange !== null) {
+ this.onsignalingstatechange(event);
+ }
+ };
-exports.toMediaJSON = function (media, session, opts) {
- var creator = opts.creator || 'initiator';
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
+ // Determine whether to fire the negotiationneeded event.
+ window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
+ function() {
+ // Fire away (for now).
+ var event = new Event('negotiationneeded');
+ this.dispatchEvent(event);
+ if (this.onnegotiationneeded !== null) {
+ this.onnegotiationneeded(event);
+ }
+ };
- var lines = parsers.lines(media);
- var sessionLines = parsers.lines(session);
- var mline = parsers.mline(lines[0]);
+ // Update the connection state.
+ window.RTCPeerConnection.prototype._updateConnectionState = function() {
+ var self = this;
+ var newState;
+ var states = {
+ 'new': 0,
+ closed: 0,
+ connecting: 0,
+ checking: 0,
+ connected: 0,
+ completed: 0,
+ failed: 0
+ };
+ this.transceivers.forEach(function(transceiver) {
+ states[transceiver.iceTransport.state]++;
+ states[transceiver.dtlsTransport.state]++;
+ });
+ // ICETransport.completed and connected are the same for this purpose.
+ states.connected += states.completed;
+
+ newState = 'new';
+ if (states.failed > 0) {
+ newState = 'failed';
+ } else if (states.connecting > 0 || states.checking > 0) {
+ newState = 'connecting';
+ } else if (states.disconnected > 0) {
+ newState = 'disconnected';
+ } else if (states.new > 0) {
+ newState = 'new';
+ } else if (states.connected > 0 || states.completed > 0) {
+ newState = 'connected';
+ }
- var content = {
- creator: creator,
- name: mline.media,
- description: {
- descType: 'rtp',
- media: mline.media,
- payloads: [],
- encryption: [],
- feedback: [],
- headerExtensions: []
- },
- transport: {
- transType: 'iceUdp',
- candidates: [],
- fingerprints: []
+ if (newState !== self.iceConnectionState) {
+ self.iceConnectionState = newState;
+ var event = new Event('iceconnectionstatechange');
+ this.dispatchEvent(event);
+ if (this.oniceconnectionstatechange !== null) {
+ this.oniceconnectionstatechange(event);
}
+ }
};
- if (mline.media == 'application') {
- // FIXME: the description is most likely to be independent
- // of the SDP and should be processed by other parts of the library
- content.description = {
- descType: 'datachannel'
- };
- content.transport.sctp = [];
- }
- var desc = content.description;
- var trans = content.transport;
-
- // If we have a mid, use that for the content name instead.
- var mid = parsers.findLine('a=mid:', lines);
- if (mid) {
- content.name = mid.substr(6);
- }
- if (parsers.findLine('a=sendrecv', lines, sessionLines)) {
- content.senders = 'both';
- } else if (parsers.findLine('a=sendonly', lines, sessionLines)) {
- content.senders = SENDERS[role][direction].sendonly;
- } else if (parsers.findLine('a=recvonly', lines, sessionLines)) {
- content.senders = SENDERS[role][direction].recvonly;
- } else if (parsers.findLine('a=inactive', lines, sessionLines)) {
- content.senders = 'none';
- }
+ window.RTCPeerConnection.prototype.createOffer = function() {
+ var self = this;
+ if (this._pendingOffer) {
+ throw new Error('createOffer called while there is a pending offer.');
+ }
+ var offerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ offerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ offerOptions = arguments[2];
+ }
- if (desc.descType == 'rtp') {
- var bandwidth = parsers.findLine('b=', lines);
- if (bandwidth) {
- desc.bandwidth = parsers.bandwidth(bandwidth);
+ var tracks = [];
+ var numAudioTracks = 0;
+ var numVideoTracks = 0;
+ // Default to sendrecv.
+ if (this.localStreams.length) {
+ numAudioTracks = this.localStreams[0].getAudioTracks().length;
+ numVideoTracks = this.localStreams[0].getVideoTracks().length;
+ }
+ // Determine number of audio and video tracks we need to send/recv.
+ if (offerOptions) {
+ // Reject Chrome legacy constraints.
+ if (offerOptions.mandatory || offerOptions.optional) {
+ throw new TypeError(
+ 'Legacy mandatory/optional constraints not supported.');
}
-
- var ssrc = parsers.findLine('a=ssrc:', lines);
- if (ssrc) {
- desc.ssrc = ssrc.substr(7).split(' ')[0];
+ if (offerOptions.offerToReceiveAudio !== undefined) {
+ numAudioTracks = offerOptions.offerToReceiveAudio;
}
-
- var rtpmapLines = parsers.findLines('a=rtpmap:', lines);
- rtpmapLines.forEach(function (line) {
- var payload = parsers.rtpmap(line);
- payload.parameters = [];
- payload.feedback = [];
-
- var fmtpLines = parsers.findLines('a=fmtp:' + payload.id, lines);
- // There should only be one fmtp line per payload
- fmtpLines.forEach(function (line) {
- payload.parameters = parsers.fmtp(line);
- });
-
- var fbLines = parsers.findLines('a=rtcp-fb:' + payload.id, lines);
- fbLines.forEach(function (line) {
- payload.feedback.push(parsers.rtcpfb(line));
- });
-
- desc.payloads.push(payload);
- });
-
- var cryptoLines = parsers.findLines('a=crypto:', lines, sessionLines);
- cryptoLines.forEach(function (line) {
- desc.encryption.push(parsers.crypto(line));
- });
-
- if (parsers.findLine('a=rtcp-mux', lines)) {
- desc.mux = true;
+ if (offerOptions.offerToReceiveVideo !== undefined) {
+ numVideoTracks = offerOptions.offerToReceiveVideo;
}
-
- var fbLines = parsers.findLines('a=rtcp-fb:*', lines);
- fbLines.forEach(function (line) {
- desc.feedback.push(parsers.rtcpfb(line));
+ }
+ if (this.localStreams.length) {
+ // Push local streams.
+ this.localStreams[0].getTracks().forEach(function(track) {
+ tracks.push({
+ kind: track.kind,
+ track: track,
+ wantReceive: track.kind === 'audio' ?
+ numAudioTracks > 0 : numVideoTracks > 0
+ });
+ if (track.kind === 'audio') {
+ numAudioTracks--;
+ } else if (track.kind === 'video') {
+ numVideoTracks--;
+ }
});
+ }
+ // Create M-lines for recvonly streams.
+ while (numAudioTracks > 0 || numVideoTracks > 0) {
+ if (numAudioTracks > 0) {
+ tracks.push({
+ kind: 'audio',
+ wantReceive: true
+ });
+ numAudioTracks--;
+ }
+ if (numVideoTracks > 0) {
+ tracks.push({
+ kind: 'video',
+ wantReceive: true
+ });
+ numVideoTracks--;
+ }
+ }
- var extLines = parsers.findLines('a=extmap:', lines);
- extLines.forEach(function (line) {
- var ext = parsers.extmap(line);
-
- ext.senders = SENDERS[role][direction][ext.senders];
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ var transceivers = [];
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ // For each track, create an ice gatherer, ice transport,
+ // dtls transport, potentially rtpsender and rtpreceiver.
+ var track = mline.track;
+ var kind = mline.kind;
+ var mid = SDPUtils.generateIdentifier();
+
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: transceivers[0].iceGatherer,
+ iceTransport: transceivers[0].iceTransport,
+ dtlsTransport: transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ var localCapabilities = RTCRtpSender.getCapabilities(kind);
+ var rtpSender;
+ var rtpReceiver;
+
+ // generate an ssrc now, to be used later in rtpSender.send
+ var sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 1) * 1001
+ }];
+ if (track) {
+ rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
+ }
+
+ if (mline.wantReceive) {
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+ }
+
+ transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: null,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: null
+ };
+ });
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ var transceiver = transceivers[sdpMLineIndex];
+ sdp += SDPUtils.writeMediaSection(transceiver,
+ transceiver.localCapabilities, 'offer', self.localStreams[0]);
+ });
- desc.headerExtensions.push(ext);
- });
+ this._pendingOffer = transceivers;
+ var desc = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
- var ssrcGroupLines = parsers.findLines('a=ssrc-group:', lines);
- desc.sourceGroups = parsers.sourceGroups(ssrcGroupLines || []);
+ window.RTCPeerConnection.prototype.createAnswer = function() {
+ var self = this;
- var ssrcLines = parsers.findLines('a=ssrc:', lines);
- var sources = desc.sources = parsers.sources(ssrcLines || []);
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ this.transceivers.forEach(function(transceiver) {
+ // Calculate intersection of capabilities.
+ var commonCapabilities = self._getCommonCapabilities(
+ transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+
+ sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
+ 'answer', self.localStreams[0]);
+ });
- var msidLine = parsers.findLine('a=msid:', lines);
- if (msidLine) {
- var msid = parsers.msid(msidLine);
- ['msid', 'mslabel', 'label'].forEach(function (key) {
- for (var i = 0; i < sources.length; i++) {
- var found = false;
- for (var j = 0; j < sources[i].parameters.length; j++) {
- if (sources[i].parameters[j].key === key) {
- found = true;
- }
- }
- if (!found) {
- sources[i].parameters.push({ key: key, value: msid[key] });
- }
- }
- });
- }
+ var desc = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
- if (parsers.findLine('a=x-google-flag:conference', lines, sessionLines)) {
- desc.googConferenceFlag = true;
+ window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
+ if (candidate === null) {
+ this.transceivers.forEach(function(transceiver) {
+ transceiver.iceTransport.addRemoteCandidate({});
+ });
+ } else {
+ var mLineIndex = candidate.sdpMLineIndex;
+ if (candidate.sdpMid) {
+ for (var i = 0; i < this.transceivers.length; i++) {
+ if (this.transceivers[i].mid === candidate.sdpMid) {
+ mLineIndex = i;
+ break;
+ }
+ }
}
- }
+ var transceiver = this.transceivers[mLineIndex];
+ if (transceiver) {
+ var cand = Object.keys(candidate.candidate).length > 0 ?
+ SDPUtils.parseCandidate(candidate.candidate) : {};
+ // Ignore Chrome's invalid candidates since Edge does not like them.
+ if (cand.protocol === 'tcp' && cand.port === 0) {
+ return;
+ }
+ // Ignore RTCP candidates, we assume RTCP-MUX.
+ if (cand.component !== '1') {
+ return;
+ }
+ // A dirty hack to make samples work.
+ if (cand.type === 'endOfCandidates') {
+ cand = {};
+ }
+ transceiver.iceTransport.addRemoteCandidate(cand);
- // transport specific attributes
- var fingerprintLines = parsers.findLines('a=fingerprint:', lines, sessionLines);
- var setup = parsers.findLine('a=setup:', lines, sessionLines);
- fingerprintLines.forEach(function (line) {
- var fp = parsers.fingerprint(line);
- if (setup) {
- fp.setup = setup.substr(8);
+ // update the remoteDescription.
+ var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
+ sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
+ : 'a=end-of-candidates') + '\r\n';
+ this.remoteDescription.sdp = sections.join('');
}
- trans.fingerprints.push(fp);
- });
-
- var ufragLine = parsers.findLine('a=ice-ufrag:', lines, sessionLines);
- var pwdLine = parsers.findLine('a=ice-pwd:', lines, sessionLines);
- if (ufragLine && pwdLine) {
- trans.ufrag = ufragLine.substr(12);
- trans.pwd = pwdLine.substr(10);
- trans.candidates = [];
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
- var candidateLines = parsers.findLines('a=candidate:', lines, sessionLines);
- candidateLines.forEach(function (line) {
- trans.candidates.push(exports.toCandidateJSON(line));
+ window.RTCPeerConnection.prototype.getStats = function() {
+ var promises = [];
+ this.transceivers.forEach(function(transceiver) {
+ ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
+ 'dtlsTransport'].forEach(function(method) {
+ if (transceiver[method]) {
+ promises.push(transceiver[method].getStats());
+ }
+ });
+ });
+ var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
+ arguments[1];
+ return new Promise(function(resolve) {
+ // shim getStats with maplike support
+ var results = new Map();
+ Promise.all(promises).then(function(res) {
+ res.forEach(function(result) {
+ Object.keys(result).forEach(function(id) {
+ results.set(id, result[id]);
+ results[id] = result[id];
+ });
+ });
+ if (cb) {
+ window.setTimeout(cb, 0, results);
+ }
+ resolve(results);
});
- }
+ });
+ };
+ },
- if (desc.descType == 'datachannel') {
- var sctpmapLines = parsers.findLines('a=sctpmap:', lines);
- sctpmapLines.forEach(function (line) {
- var sctp = parsers.sctpmap(line);
- trans.sctp.push(sctp);
- });
- }
+ // Attach a media stream to an element.
+ attachMediaStream: function(element, stream) {
+ logging('DEPRECATED, attachMediaStream will soon be removed.');
+ element.srcObject = stream;
+ },
- return content;
+ reattachMediaStream: function(to, from) {
+ logging('DEPRECATED, reattachMediaStream will soon be removed.');
+ to.srcObject = from.srcObject;
+ }
};
-exports.toCandidateJSON = function (line) {
- var candidate = parsers.candidate(line.split('\r\n')[0]);
- candidate.id = (idCounter++).toString(36).substr(0, 12);
- return candidate;
+// Expose public methods.
+module.exports = {
+ shimPeerConnection: edgeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia'),
+ attachMediaStream: edgeShim.attachMediaStream,
+ reattachMediaStream: edgeShim.reattachMediaStream
};
-},{"./parsers":78,"./senders":79}],81:[function(require,module,exports){
-var SENDERS = require('./senders');
-
-
-exports.toSessionSDP = function (session, opts) {
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
- var sid = opts.sid || session.sid || Date.now();
- var time = opts.time || Date.now();
-
- var sdp = [
- 'v=0',
- 'o=- ' + sid + ' ' + time + ' IN IP4 0.0.0.0',
- 's=-',
- 't=0 0',
- 'a=msid-semantic: WMS *'
- ];
+},{"../utils":41,"./getusermedia":37,"sdp":173}],37:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
- var groups = session.groups || [];
- groups.forEach(function (group) {
- sdp.push('a=group:' + group.semantics + ' ' + group.contents.join(' '));
- });
+// Expose public methods.
+module.exports = function() {
+ var shimError_ = function(e) {
+ return {
+ name: {PermissionDeniedError: 'NotAllowedError'}[e.name] || e.name,
+ message: e.message,
+ constraint: e.constraint,
+ toString: function() {
+ return this.name;
+ }
+ };
+ };
- var contents = session.contents || [];
- contents.forEach(function (content) {
- sdp.push(exports.toMediaSDP(content, opts));
+ // getUserMedia error shim.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ return origGetUserMedia(c).catch(function(e) {
+ return Promise.reject(shimError_(e));
});
-
- return sdp.join('\r\n') + '\r\n';
+ };
};
-exports.toMediaSDP = function (content, opts) {
- var sdp = [];
-
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
- var desc = content.description;
- var transport = content.transport;
- var payloads = desc.payloads || [];
- var fingerprints = (transport && transport.fingerprints) || [];
-
- var mline = [];
- if (desc.descType == 'datachannel') {
- mline.push('application');
- mline.push('1');
- mline.push('DTLS/SCTP');
- if (transport.sctp) {
- transport.sctp.forEach(function (map) {
- mline.push(map.number);
- });
- }
- } else {
- mline.push(desc.media);
- mline.push('1');
- if ((desc.encryption && desc.encryption.length > 0) || (fingerprints.length > 0)) {
- mline.push('RTP/SAVPF');
- } else {
- mline.push('RTP/AVPF');
- }
- payloads.forEach(function (payload) {
- mline.push(payload.id);
- });
- }
-
-
- sdp.push('m=' + mline.join(' '));
-
- sdp.push('c=IN IP4 0.0.0.0');
- if (desc.bandwidth && desc.bandwidth.type && desc.bandwidth.bandwidth) {
- sdp.push('b=' + desc.bandwidth.type + ':' + desc.bandwidth.bandwidth);
- }
- if (desc.descType == 'rtp') {
- sdp.push('a=rtcp:1 IN IP4 0.0.0.0');
- }
-
- if (transport) {
- if (transport.ufrag) {
- sdp.push('a=ice-ufrag:' + transport.ufrag);
- }
- if (transport.pwd) {
- sdp.push('a=ice-pwd:' + transport.pwd);
- }
+},{}],38:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
- var pushedSetup = false;
- fingerprints.forEach(function (fingerprint) {
- sdp.push('a=fingerprint:' + fingerprint.hash + ' ' + fingerprint.value);
- if (fingerprint.setup && !pushedSetup) {
- sdp.push('a=setup:' + fingerprint.setup);
- }
- });
+var logging = require('../utils').log;
+var browserDetails = require('../utils').browserDetails;
- if (transport.sctp) {
- transport.sctp.forEach(function (map) {
- sdp.push('a=sctpmap:' + map.number + ' ' + map.protocol + ' ' + map.streams);
- });
+var firefoxShim = {
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
}
+ });
}
+ },
- if (desc.descType == 'rtp') {
- sdp.push('a=' + (SENDERS[role][direction][content.senders] || 'sendrecv'));
- }
- sdp.push('a=mid:' + content.name);
-
- if (desc.sources && desc.sources.length) {
- (desc.sources[0].parameters || []).forEach(function (param) {
- if (param.key === 'msid') {
- sdp.push('a=msid:' + param.value);
- }
+ shimSourceObject: function() {
+ // Firefox has supported mozSrcObject since FF22, unprefixed in 42.
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this.mozSrcObject;
+ },
+ set: function(stream) {
+ this.mozSrcObject = stream;
+ }
});
+ }
}
+ },
- if (desc.mux) {
- sdp.push('a=rtcp-mux');
- }
-
- var encryption = desc.encryption || [];
- encryption.forEach(function (crypto) {
- sdp.push('a=crypto:' + crypto.tag + ' ' + crypto.cipherSuite + ' ' + crypto.keyParams + (crypto.sessionParams ? ' ' + crypto.sessionParams : ''));
- });
- if (desc.googConferenceFlag) {
- sdp.push('a=x-google-flag:conference');
- }
-
- payloads.forEach(function (payload) {
- var rtpmap = 'a=rtpmap:' + payload.id + ' ' + payload.name + '/' + payload.clockrate;
- if (payload.channels && payload.channels != '1') {
- rtpmap += '/' + payload.channels;
- }
- sdp.push(rtpmap);
-
- if (payload.parameters && payload.parameters.length) {
- var fmtp = ['a=fmtp:' + payload.id];
- var parameters = [];
- payload.parameters.forEach(function (param) {
- parameters.push((param.key ? param.key + '=' : '') + param.value);
- });
- fmtp.push(parameters.join(';'));
- sdp.push(fmtp.join(' '));
- }
-
- if (payload.feedback) {
- payload.feedback.forEach(function (fb) {
- if (fb.type === 'trr-int') {
- sdp.push('a=rtcp-fb:' + payload.id + ' trr-int ' + (fb.value ? fb.value : '0'));
- } else {
- sdp.push('a=rtcp-fb:' + payload.id + ' ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ shimPeerConnection: function() {
+ if (typeof window !== 'object' || !(window.RTCPeerConnection ||
+ window.mozRTCPeerConnection)) {
+ return; // probably media.peerconnection.enabled=false in about:config
+ }
+ // The RTCPeerConnection object.
+ if (!window.RTCPeerConnection) {
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ if (browserDetails.version < 38) {
+ // .urls is not supported in FF < 38.
+ // create RTCIceServers with a single url.
+ if (pcConfig && pcConfig.iceServers) {
+ var newIceServers = [];
+ for (var i = 0; i < pcConfig.iceServers.length; i++) {
+ var server = pcConfig.iceServers[i];
+ if (server.hasOwnProperty('urls')) {
+ for (var j = 0; j < server.urls.length; j++) {
+ var newServer = {
+ url: server.urls[j]
+ };
+ if (server.urls[j].indexOf('turn') === 0) {
+ newServer.username = server.username;
+ newServer.credential = server.credential;
+ }
+ newIceServers.push(newServer);
}
- });
- }
- });
-
- if (desc.feedback) {
- desc.feedback.forEach(function (fb) {
- if (fb.type === 'trr-int') {
- sdp.push('a=rtcp-fb:* trr-int ' + (fb.value ? fb.value : '0'));
- } else {
- sdp.push('a=rtcp-fb:* ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ } else {
+ newIceServers.push(pcConfig.iceServers[i]);
+ }
}
- });
- }
-
- var hdrExts = desc.headerExtensions || [];
- hdrExts.forEach(function (hdr) {
- sdp.push('a=extmap:' + hdr.id + (hdr.senders ? '/' + SENDERS[role][direction][hdr.senders] : '') + ' ' + hdr.uri);
- });
-
- var ssrcGroups = desc.sourceGroups || [];
- ssrcGroups.forEach(function (ssrcGroup) {
- sdp.push('a=ssrc-group:' + ssrcGroup.semantics + ' ' + ssrcGroup.sources.join(' '));
- });
-
- var ssrcs = desc.sources || [];
- ssrcs.forEach(function (ssrc) {
- for (var i = 0; i < ssrc.parameters.length; i++) {
- var param = ssrc.parameters[i];
- sdp.push('a=ssrc:' + (ssrc.ssrc || desc.ssrc) + ' ' + param.key + (param.value ? (':' + param.value) : ''));
+ pcConfig.iceServers = newIceServers;
+ }
}
- });
-
- var candidates = transport.candidates || [];
- candidates.forEach(function (candidate) {
- sdp.push(exports.toCandidateSDP(candidate));
- });
-
- return sdp.join('\r\n');
-};
-
-exports.toCandidateSDP = function (candidate) {
- var sdp = [];
+ return new mozRTCPeerConnection(pcConfig, pcConstraints);
+ };
+ window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
- sdp.push(candidate.foundation);
- sdp.push(candidate.component);
- sdp.push(candidate.protocol.toUpperCase());
- sdp.push(candidate.priority);
- sdp.push(candidate.ip);
- sdp.push(candidate.port);
+ // wrap static methods. Currently just generateCertificate.
+ if (mozRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return mozRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
- var type = candidate.type;
- sdp.push('typ');
- sdp.push(type);
- if (type === 'srflx' || type === 'prflx' || type === 'relay') {
- if (candidate.relAddr && candidate.relPort) {
- sdp.push('raddr');
- sdp.push(candidate.relAddr);
- sdp.push('rport');
- sdp.push(candidate.relPort);
- }
- }
- if (candidate.tcpType && candidate.protocol.toUpperCase() == 'TCP') {
- sdp.push('tcptype');
- sdp.push(candidate.tcpType);
+ window.RTCSessionDescription = mozRTCSessionDescription;
+ window.RTCIceCandidate = mozRTCIceCandidate;
}
- sdp.push('generation');
- sdp.push(candidate.generation || '0');
-
- // FIXME: apparently this is wrong per spec
- // but then, we need this when actually putting this into
- // SDP so it's going to stay.
- // decision needs to be revisited when browsers dont
- // accept this any longer
- return 'a=candidate:' + sdp.join(' ');
-};
-
-},{"./senders":79}],82:[function(require,module,exports){
-// based on https://github.com/ESTOS/strophe.jingle/
-// adds wildemitter support
-var util = require('util');
-var adapter = require('webrtc-adapter-test');
-var WildEmitter = require('wildemitter');
-
-function dumpSDP(description) {
- return {
- type: description.type,
- sdp: description.sdp
- };
-}
-
-function dumpStream(stream) {
- var info = {
- label: stream.id,
- };
- if (stream.getAudioTracks().length) {
- info.audio = stream.getAudioTracks().map(function (track) {
- return track.id;
- });
- }
- if (stream.getVideoTracks().length) {
- info.video = stream.getVideoTracks().map(function (track) {
- return track.id;
+ // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = RTCPeerConnection.prototype[method];
+ RTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
});
- }
- return info;
-}
-
-function TraceablePeerConnection(config, constraints) {
- var self = this;
- WildEmitter.call(this);
-
- this.peerconnection = new window.RTCPeerConnection(config, constraints);
- this.trace = function (what, info) {
- self.emit('PeerConnectionTrace', {
- time: new Date(),
- type: what,
- value: info || ""
- });
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ return arguments[0] === null ? Promise.resolve()
+ : nativeAddIceCandidate.apply(this, arguments);
};
- this.onicecandidate = null;
- this.peerconnection.onicecandidate = function (event) {
- self.trace('onicecandidate', event.candidate);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- };
- this.onaddstream = null;
- this.peerconnection.onaddstream = function (event) {
- self.trace('onaddstream', dumpStream(event.stream));
- if (self.onaddstream !== null) {
- self.onaddstream(event);
- }
- };
- this.onremovestream = null;
- this.peerconnection.onremovestream = function (event) {
- self.trace('onremovestream', dumpStream(event.stream));
- if (self.onremovestream !== null) {
- self.onremovestream(event);
- }
- };
- this.onsignalingstatechange = null;
- this.peerconnection.onsignalingstatechange = function (event) {
- self.trace('onsignalingstatechange', self.signalingState);
- if (self.onsignalingstatechange !== null) {
- self.onsignalingstatechange(event);
- }
- };
- this.oniceconnectionstatechange = null;
- this.peerconnection.oniceconnectionstatechange = function (event) {
- self.trace('oniceconnectionstatechange', self.iceConnectionState);
- if (self.oniceconnectionstatechange !== null) {
- self.oniceconnectionstatechange(event);
- }
- };
- this.onnegotiationneeded = null;
- this.peerconnection.onnegotiationneeded = function (event) {
- self.trace('onnegotiationneeded');
- if (self.onnegotiationneeded !== null) {
- self.onnegotiationneeded(event);
- }
- };
- self.ondatachannel = null;
- this.peerconnection.ondatachannel = function (event) {
- self.trace('ondatachannel', event);
- if (self.ondatachannel !== null) {
- self.ondatachannel(event);
- }
+ // shim getStats with maplike support
+ var makeMapStats = function(stats) {
+ var map = new Map();
+ Object.keys(stats).forEach(function(key) {
+ map.set(key, stats[key]);
+ map[key] = stats[key];
+ });
+ return map;
};
- this.getLocalStreams = this.peerconnection.getLocalStreams.bind(this.peerconnection);
- this.getRemoteStreams = this.peerconnection.getRemoteStreams.bind(this.peerconnection);
-}
-
-util.inherits(TraceablePeerConnection, WildEmitter);
-['signalingState', 'iceConnectionState', 'localDescription', 'remoteDescription'].forEach(function (prop) {
- Object.defineProperty(TraceablePeerConnection.prototype, prop, {
- get: function () {
- return this.peerconnection[prop];
- }
- });
-});
-
-TraceablePeerConnection.prototype.addStream = function (stream) {
- this.trace('addStream', dumpStream(stream));
- this.peerconnection.addStream(stream);
-};
-
-TraceablePeerConnection.prototype.removeStream = function (stream) {
- this.trace('removeStream', dumpStream(stream));
- this.peerconnection.removeStream(stream);
-};
-
-TraceablePeerConnection.prototype.createDataChannel = function (label, opts) {
- this.trace('createDataChannel', label, opts);
- return this.peerconnection.createDataChannel(label, opts);
-};
-
-TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
- var self = this;
- this.trace('setLocalDescription', dumpSDP(description));
- this.peerconnection.setLocalDescription(description,
- function () {
- self.trace('setLocalDescriptionOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('setLocalDescriptionOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.setRemoteDescription = function (description, successCallback, failureCallback) {
- var self = this;
- this.trace('setRemoteDescription', dumpSDP(description));
- this.peerconnection.setRemoteDescription(description,
- function () {
- self.trace('setRemoteDescriptionOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('setRemoteDescriptionOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.close = function () {
- this.trace('stop');
- if (this.peerconnection.signalingState != 'closed') {
- this.peerconnection.close();
- }
-};
-
-TraceablePeerConnection.prototype.createOffer = function (successCallback, failureCallback, constraints) {
- var self = this;
- this.trace('createOffer', constraints);
- this.peerconnection.createOffer(
- function (offer) {
- self.trace('createOfferOnSuccess', dumpSDP(offer));
- if (successCallback) successCallback(offer);
- },
- function (err) {
- self.trace('createOfferOnFailure', err);
- if (failureCallback) failureCallback(err);
- },
- constraints
- );
-};
+ var nativeGetStats = RTCPeerConnection.prototype.getStats;
+ RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
+ return nativeGetStats.apply(this, [selector || null])
+ .then(function(stats) {
+ return makeMapStats(stats);
+ })
+ .then(onSucc, onErr);
+ };
+ },
-TraceablePeerConnection.prototype.createAnswer = function (successCallback, failureCallback, constraints) {
- var self = this;
- this.trace('createAnswer', constraints);
- this.peerconnection.createAnswer(
- function (answer) {
- self.trace('createAnswerOnSuccess', dumpSDP(answer));
- if (successCallback) successCallback(answer);
- },
- function (err) {
- self.trace('createAnswerOnFailure', err);
- if (failureCallback) failureCallback(err);
- },
- constraints
- );
-};
+ // Attach a media stream to an element.
+ attachMediaStream: function(element, stream) {
+ logging('DEPRECATED, attachMediaStream will soon be removed.');
+ element.srcObject = stream;
+ },
-TraceablePeerConnection.prototype.addIceCandidate = function (candidate, successCallback, failureCallback) {
- var self = this;
- this.trace('addIceCandidate', candidate);
- this.peerconnection.addIceCandidate(candidate,
- function () {
- //self.trace('addIceCandidateOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('addIceCandidateOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
+ reattachMediaStream: function(to, from) {
+ logging('DEPRECATED, reattachMediaStream will soon be removed.');
+ to.srcObject = from.srcObject;
+ }
};
-TraceablePeerConnection.prototype.getStats = function () {
- this.peerconnection.getStats.apply(this.peerconnection, arguments);
+// Expose public methods.
+module.exports = {
+ shimOnTrack: firefoxShim.shimOnTrack,
+ shimSourceObject: firefoxShim.shimSourceObject,
+ shimPeerConnection: firefoxShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia'),
+ attachMediaStream: firefoxShim.attachMediaStream,
+ reattachMediaStream: firefoxShim.reattachMediaStream
};
-module.exports = TraceablePeerConnection;
-
-},{"util":28,"webrtc-adapter-test":83,"wildemitter":84}],83:[function(require,module,exports){
+},{"../utils":41,"./getusermedia":39}],39:[function(require,module,exports){
/*
- * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
-
-/* More information about these options at jshint.com/docs/options */
-/* jshint browser: true, camelcase: true, curly: true, devel: true,
- eqeqeq: true, forin: false, globalstrict: true, node: true,
- quotmark: single, undef: true, unused: strict */
-/* global mozRTCIceCandidate, mozRTCPeerConnection, Promise,
-mozRTCSessionDescription, webkitRTCPeerConnection, MediaStreamTrack */
-/* exported trace,requestUserMedia */
-
+ /* eslint-env node */
'use strict';
-var getUserMedia = null;
-var attachMediaStream = null;
-var reattachMediaStream = null;
-var webrtcDetectedBrowser = null;
-var webrtcDetectedVersion = null;
-var webrtcMinimumVersion = null;
-var webrtcUtils = {
- log: function() {
- // suppress console.log output when being included as a module.
- if (typeof module !== 'undefined' ||
- typeof require === 'function' && typeof define === 'function') {
- return;
- }
- console.log.apply(console, arguments);
- },
- extractVersion: function(uastring, expr, pos) {
- var match = uastring.match(expr);
- return match && match.length >= pos && parseInt(match[pos]);
- }
-};
-
-function trace(text) {
- // This function is used for logging.
- if (text[text.length - 1] === '\n') {
- text = text.substring(0, text.length - 1);
- }
- if (window.performance) {
- var now = (window.performance.now() / 1000).toFixed(3);
- webrtcUtils.log(now + ': ' + text);
- } else {
- webrtcUtils.log(text);
- }
-}
-
-if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- // If prefixed srcObject property exists, return it.
- // Otherwise use the shimmed property, _srcObject
- return 'mozSrcObject' in this ? this.mozSrcObject : this._srcObject;
- },
- set: function(stream) {
- if ('mozSrcObject' in this) {
- this.mozSrcObject = stream;
- } else {
- // Use _srcObject as a private property for this shim
- this._srcObject = stream;
- // TODO: revokeObjectUrl(this.src) when !stream to release resources?
- this.src = URL.createObjectURL(stream);
- }
- }
- });
- }
- // Proxy existing globals
- getUserMedia = window.navigator && window.navigator.getUserMedia;
-}
-
-// Attach a media stream to an element.
-attachMediaStream = function(element, stream) {
- element.srcObject = stream;
-};
-
-reattachMediaStream = function(to, from) {
- to.srcObject = from.srcObject;
-};
-
-if (typeof window === 'undefined' || !window.navigator) {
- webrtcUtils.log('This does not appear to be a browser');
- webrtcDetectedBrowser = 'not a browser';
-} else if (navigator.mozGetUserMedia && window.mozRTCPeerConnection) {
- webrtcUtils.log('This appears to be Firefox');
-
- webrtcDetectedBrowser = 'firefox';
+var logging = require('../utils').log;
+var browserDetails = require('../utils').browserDetails;
- // the detected firefox version.
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Firefox\/([0-9]+)\./, 1);
-
- // the minimum firefox version still supported by adapter.
- webrtcMinimumVersion = 31;
-
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- if (webrtcDetectedVersion < 38) {
- // .urls is not supported in FF < 38.
- // create RTCIceServers with a single url.
- if (pcConfig && pcConfig.iceServers) {
- var newIceServers = [];
- for (var i = 0; i < pcConfig.iceServers.length; i++) {
- var server = pcConfig.iceServers[i];
- if (server.hasOwnProperty('urls')) {
- for (var j = 0; j < server.urls.length; j++) {
- var newServer = {
- url: server.urls[j]
- };
- if (server.urls[j].indexOf('turn') === 0) {
- newServer.username = server.username;
- newServer.credential = server.credential;
- }
- newIceServers.push(newServer);
- }
- } else {
- newIceServers.push(pcConfig.iceServers[i]);
- }
- }
- pcConfig.iceServers = newIceServers;
+// Expose public methods.
+module.exports = function() {
+ var shimError_ = function(e) {
+ return {
+ name: {
+ SecurityError: 'NotAllowedError',
+ PermissionDeniedError: 'NotAllowedError'
+ }[e.name] || e.name,
+ message: {
+ 'The operation is insecure.': 'The request is not allowed by the ' +
+ 'user agent or the platform in the current context.'
+ }[e.message] || e.message,
+ constraint: e.constraint,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
}
- }
- return new mozRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
+ };
};
- // The RTCSessionDescription object.
- if (!window.RTCSessionDescription) {
- window.RTCSessionDescription = mozRTCSessionDescription;
- }
-
- // The RTCIceCandidate object.
- if (!window.RTCIceCandidate) {
- window.RTCIceCandidate = mozRTCIceCandidate;
- }
-
// getUserMedia constraints shim.
- getUserMedia = function(constraints, onSuccess, onError) {
- var constraintsToFF37 = function(c) {
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ var constraintsToFF37_ = function(c) {
if (typeof c !== 'object' || c.require) {
return c;
}
@@ -20182,7 +13870,7 @@ if (typeof window === 'undefined' || !window.navigator) {
}
if (r.exact !== undefined) {
if (typeof r.exact === 'number') {
- r.min = r.max = r.exact;
+ r. min = r.max = r.exact;
} else {
c[key] = r.exact;
}
@@ -20208,40 +13896,48 @@ if (typeof window === 'undefined' || !window.navigator) {
}
return c;
};
- if (webrtcDetectedVersion < 38) {
- webrtcUtils.log('spec: ' + JSON.stringify(constraints));
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (browserDetails.version < 38) {
+ logging('spec: ' + JSON.stringify(constraints));
if (constraints.audio) {
- constraints.audio = constraintsToFF37(constraints.audio);
+ constraints.audio = constraintsToFF37_(constraints.audio);
}
if (constraints.video) {
- constraints.video = constraintsToFF37(constraints.video);
+ constraints.video = constraintsToFF37_(constraints.video);
}
- webrtcUtils.log('ff37: ' + JSON.stringify(constraints));
+ logging('ff37: ' + JSON.stringify(constraints));
}
- return navigator.mozGetUserMedia(constraints, onSuccess, onError);
+ return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
};
- navigator.getUserMedia = getUserMedia;
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ getUserMedia_(constraints, resolve, reject);
+ });
+ };
// Shim for mediaDevices on older versions.
if (!navigator.mediaDevices) {
- navigator.mediaDevices = {getUserMedia: requestUserMedia,
+ navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
addEventListener: function() { },
removeEventListener: function() { }
};
}
navigator.mediaDevices.enumerateDevices =
navigator.mediaDevices.enumerateDevices || function() {
- return new Promise(function(resolve) {
- var infos = [
- {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
- {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
- ];
- resolve(infos);
- });
- };
+ return new Promise(function(resolve) {
+ var infos = [
+ {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
+ {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
+ ];
+ resolve(infos);
+ });
+ };
- if (webrtcDetectedVersion < 41) {
+ if (browserDetails.version < 41) {
// Work around http://bugzil.la/1169665
var orgEnumerateDevices =
navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
@@ -20254,1177 +13950,695 @@ if (typeof window === 'undefined' || !window.navigator) {
});
};
}
-} else if (navigator.webkitGetUserMedia && window.webkitRTCPeerConnection) {
- webrtcUtils.log('This appears to be Chrome');
-
- webrtcDetectedBrowser = 'chrome';
-
- // the detected chrome version.
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Chrom(e|ium)\/([0-9]+)\./, 2);
-
- // the minimum chrome version still supported by adapter.
- webrtcMinimumVersion = 38;
-
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- // Translate iceTransportPolicy to iceTransports,
- // see https://code.google.com/p/webrtc/issues/detail?id=4869
- if (pcConfig && pcConfig.iceTransportPolicy) {
- pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ if (browserDetails.version < 49) {
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ return origGetUserMedia(c).catch(function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ };
+ }
+ navigator.getUserMedia = function(constraints, onSuccess, onError) {
+ if (browserDetails.version < 44) {
+ return getUserMedia_(constraints, onSuccess, onError);
}
+ // Replace Firefox 44+'s deprecation warning with unprefixed version.
+ console.warn('navigator.getUserMedia has been replaced by ' +
+ 'navigator.mediaDevices.getUserMedia');
+ navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
+ };
+};
- var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
- var origGetStats = pc.getStats.bind(pc);
- pc.getStats = function(selector, successCallback, errorCallback) { // jshint ignore: line
- var self = this;
- var args = arguments;
-
- // If selector is a function then we are in the old style stats so just
- // pass back the original getStats format to avoid breaking old users.
- if (arguments.length > 0 && typeof selector === 'function') {
- return origGetStats(selector, successCallback);
- }
-
- var fixChromeStats = function(response) {
- var standardReport = {};
- var reports = response.result();
- reports.forEach(function(report) {
- var standardStats = {
- id: report.id,
- timestamp: report.timestamp,
- type: report.type
- };
- report.names().forEach(function(name) {
- standardStats[name] = report.stat(name);
- });
- standardReport[standardStats.id] = standardStats;
- });
-
- return standardReport;
- };
+},{"../utils":41}],40:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+'use strict';
+var safariShim = {
+ // TODO: DrAlex, should be here, double check against LayoutTests
+ // shimOnTrack: function() { },
- if (arguments.length >= 2) {
- var successCallbackWrapper = function(response) {
- args[1](fixChromeStats(response));
- };
+ // TODO: DrAlex
+ // attachMediaStream: function(element, stream) { },
+ // reattachMediaStream: function(to, from) { },
- return origGetStats.apply(this, [successCallbackWrapper, arguments[0]]);
- }
+ // TODO: once the back-end for the mac port is done, add.
+ // TODO: check for webkitGTK+
+ // shimPeerConnection: function() { },
- // promise-support
- return new Promise(function(resolve, reject) {
- if (args.length === 1 && selector === null) {
- origGetStats.apply(self, [
- function(response) {
- resolve.apply(null, [fixChromeStats(response)]);
- }, reject]);
- } else {
- origGetStats.apply(self, [resolve, reject]);
- }
- });
- };
+ shimGetUserMedia: function() {
+ navigator.getUserMedia = navigator.webkitGetUserMedia;
+ }
+};
- return pc;
- };
+// Expose public methods.
+module.exports = {
+ shimGetUserMedia: safariShim.shimGetUserMedia
+ // TODO
+ // shimOnTrack: safariShim.shimOnTrack,
+ // shimPeerConnection: safariShim.shimPeerConnection,
+ // attachMediaStream: safariShim.attachMediaStream,
+ // reattachMediaStream: safariShim.reattachMediaStream
+};
- // add promise support
- ['createOffer', 'createAnswer'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var self = this;
- if (arguments.length < 1 || (arguments.length === 1 &&
- typeof(arguments[0]) === 'object')) {
- var opts = arguments.length === 1 ? arguments[0] : undefined;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [resolve, reject, opts]);
- });
- } else {
- return nativeMethod.apply(this, arguments);
- }
- };
- });
+},{}],41:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
- ['setLocalDescription', 'setRemoteDescription',
- 'addIceCandidate'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var args = arguments;
- var self = this;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [args[0],
- function() {
- resolve();
- if (args.length >= 2) {
- args[1].apply(null, []);
- }
- },
- function(err) {
- reject(err);
- if (args.length >= 3) {
- args[2].apply(null, [err]);
- }
- }]
- );
- });
- };
- });
+var logDisabled_ = true;
- // getUserMedia constraints shim.
- var constraintsToChrome = function(c) {
- if (typeof c !== 'object' || c.mandatory || c.optional) {
- return c;
+// Utility methods.
+var utils = {
+ disableLog: function(bool) {
+ if (typeof bool !== 'boolean') {
+ return new Error('Argument type: ' + typeof bool +
+ '. Please use a boolean.');
}
- var cc = {};
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ logDisabled_ = bool;
+ return (bool) ? 'adapter.js logging disabled' :
+ 'adapter.js logging enabled';
+ },
+
+ log: function() {
+ if (typeof window === 'object') {
+ if (logDisabled_) {
return;
}
- var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
- if (r.exact !== undefined && typeof r.exact === 'number') {
- r.min = r.max = r.exact;
+ if (typeof console !== 'undefined' && typeof console.log === 'function') {
+ console.log.apply(console, arguments);
}
- var oldname = function(prefix, name) {
- if (prefix) {
- return prefix + name.charAt(0).toUpperCase() + name.slice(1);
- }
- return (name === 'deviceId') ? 'sourceId' : name;
- };
- if (r.ideal !== undefined) {
- cc.optional = cc.optional || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[oldname('min', key)] = r.ideal;
- cc.optional.push(oc);
- oc = {};
- oc[oldname('max', key)] = r.ideal;
- cc.optional.push(oc);
+ }
+ },
+
+ /**
+ * Extract browser version out of the provided user agent string.
+ *
+ * @param {!string} uastring userAgent string.
+ * @param {!string} expr Regular expression used as match criteria.
+ * @param {!number} pos position in the version string to be returned.
+ * @return {!number} browser version.
+ */
+ extractVersion: function(uastring, expr, pos) {
+ var match = uastring.match(expr);
+ return match && match.length >= pos && parseInt(match[pos], 10);
+ },
+
+ /**
+ * Browser detector.
+ *
+ * @return {object} result containing browser, version and minVersion
+ * properties.
+ */
+ detectBrowser: function() {
+ // Returned result object.
+ var result = {};
+ result.browser = null;
+ result.version = null;
+ result.minVersion = null;
+
+ // Fail early if it's not a browser
+ if (typeof window === 'undefined' || !window.navigator) {
+ result.browser = 'Not a browser.';
+ return result;
+ }
+
+ // Firefox.
+ if (navigator.mozGetUserMedia) {
+ result.browser = 'firefox';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Firefox\/([0-9]+)\./, 1);
+ result.minVersion = 31;
+
+ // all webkit-based browsers
+ } else if (navigator.webkitGetUserMedia) {
+ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now
+ if (window.webkitRTCPeerConnection) {
+ result.browser = 'chrome';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Chrom(e|ium)\/([0-9]+)\./, 2);
+ result.minVersion = 38;
+
+ // Safari or unknown webkit-based
+ // for the time being Safari has support for MediaStreams but not webRTC
+ } else {
+ // Safari UA substrings of interest for reference:
+ // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
+ // - safari UI version: Version/9.0.3 (unique to Safari)
+ // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
+ //
+ // if the webkit version and safari UI webkit versions are equals,
+ // ... this is a stable version.
+ //
+ // only the internal webkit version is important today to know if
+ // media streams are supported
+ //
+ if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
+ result.browser = 'safari';
+ result.version = this.extractVersion(navigator.userAgent,
+ /AppleWebKit\/([0-9]+)\./, 1);
+ result.minVersion = 602;
+
+ // unknown webkit-based browser
} else {
- oc[oldname('', key)] = r.ideal;
- cc.optional.push(oc);
+ result.browser = 'Unsupported webkit-based browser ' +
+ 'with GUM support but no WebRTC support.';
+ return result;
}
}
- if (r.exact !== undefined && typeof r.exact !== 'number') {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname('', key)] = r.exact;
- } else {
- ['min', 'max'].forEach(function(mix) {
- if (r[mix] !== undefined) {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname(mix, key)] = r[mix];
- }
- });
- }
- });
- if (c.advanced) {
- cc.optional = (cc.optional || []).concat(c.advanced);
- }
- return cc;
- };
- getUserMedia = function(constraints, onSuccess, onError) {
- if (constraints.audio) {
- constraints.audio = constraintsToChrome(constraints.audio);
+ // Edge.
+ } else if (navigator.mediaDevices &&
+ navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
+ result.browser = 'edge';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Edge\/(\d+).(\d+)$/, 2);
+ result.minVersion = 10547;
+
+ // Default fallthrough: not supported.
+ } else {
+ result.browser = 'Not a supported browser.';
+ return result;
}
- if (constraints.video) {
- constraints.video = constraintsToChrome(constraints.video);
+
+ // Warn if version is less than minVersion.
+ if (result.version < result.minVersion) {
+ utils.log('Browser: ' + result.browser + ' Version: ' + result.version +
+ ' < minimum supported version: ' + result.minVersion +
+ '\n some things might not work!');
}
- webrtcUtils.log('chrome: ' + JSON.stringify(constraints));
- return navigator.webkitGetUserMedia(constraints, onSuccess, onError);
- };
- navigator.getUserMedia = getUserMedia;
- if (!navigator.mediaDevices) {
- navigator.mediaDevices = {getUserMedia: requestUserMedia,
- enumerateDevices: function() {
- return new Promise(function(resolve) {
- var kinds = {audio: 'audioinput', video: 'videoinput'};
- return MediaStreamTrack.getSources(function(devices) {
- resolve(devices.map(function(device) {
- return {label: device.label,
- kind: kinds[device.kind],
- deviceId: device.id,
- groupId: ''};
- }));
- });
- });
- }};
+ return result;
}
+};
- // A shim for getUserMedia method on the mediaDevices object.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (!navigator.mediaDevices.getUserMedia) {
- navigator.mediaDevices.getUserMedia = function(constraints) {
- return requestUserMedia(constraints);
- };
- } else {
- // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
- // function which returns a Promise, it does not accept spec-style
- // constraints.
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(c) {
- webrtcUtils.log('spec: ' + JSON.stringify(c)); // whitespace for alignment
- c.audio = constraintsToChrome(c.audio);
- c.video = constraintsToChrome(c.video);
- webrtcUtils.log('chrome: ' + JSON.stringify(c));
- return origGetUserMedia(c);
- };
- }
+// Export.
+module.exports = {
+ log: utils.log,
+ disableLog: utils.disableLog,
+ browserDetails: utils.detectBrowser(),
+ extractVersion: utils.extractVersion
+};
- // Dummy devicechange event methods.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
- navigator.mediaDevices.addEventListener = function() {
- webrtcUtils.log('Dummy mediaDevices.addEventListener called.');
- };
- }
- if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
- navigator.mediaDevices.removeEventListener = function() {
- webrtcUtils.log('Dummy mediaDevices.removeEventListener called.');
- };
- }
+},{}],42:[function(require,module,exports){
+var createHash = require('create-hash');
+var createHmac = require('create-hmac');
+var getHashes = require('./lib/get-hashes');
- // Attach a media stream to an element.
- attachMediaStream = function(element, stream) {
- if (webrtcDetectedVersion >= 43) {
- element.srcObject = stream;
- } else if (typeof element.src !== 'undefined') {
- element.src = URL.createObjectURL(stream);
- } else {
- webrtcUtils.log('Error attaching stream to element.');
- }
- };
- reattachMediaStream = function(to, from) {
- if (webrtcDetectedVersion >= 43) {
- to.srcObject = from.srcObject;
- } else {
- to.src = from.src;
- }
- };
+var mapping = {
+ md2: 'md2',
+ md5: 'md5',
+ 'sha-1': 'sha1',
+ 'sha-224': 'sha224',
+ 'sha-256': 'sha256',
+ 'sha-384': 'sha384',
+ 'sha-512': 'sha512'
+};
-} else if (navigator.mediaDevices && navigator.userAgent.match(
- /Edge\/(\d+).(\d+)$/)) {
- webrtcUtils.log('This appears to be Edge');
- webrtcDetectedBrowser = 'edge';
+var names = Object.keys(mapping);
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Edge\/(\d+).(\d+)$/, 2);
- // the minimum version still supported by adapter.
- webrtcMinimumVersion = 12;
-} else {
- webrtcUtils.log('Browser does not appear to be WebRTC-capable');
-}
+exports.getHashes = function () {
+ var result = [];
+ var available = getHashes();
+ for (var i = 0, len = names.length; i < len; i++) {
+ if (available.indexOf(mapping[names[i]]) >= 0) {
+ result.push(names[i]);
+ }
+ }
+ return result;
+};
-// Returns the result of getUserMedia as a Promise.
-function requestUserMedia(constraints) {
- return new Promise(function(resolve, reject) {
- getUserMedia(constraints, resolve, reject);
- });
-}
+exports.createHash = function (algorithm) {
+ algorithm = algorithm.toLowerCase();
+ if (mapping[algorithm]) {
+ algorithm = mapping[algorithm];
+ }
+ return createHash(algorithm);
+};
-var webrtcTesting = {};
-try {
- Object.defineProperty(webrtcTesting, 'version', {
- set: function(version) {
- webrtcDetectedVersion = version;
+exports.createHmac = function (algorithm, key) {
+ algorithm = algorithm.toLowerCase();
+ if (mapping[algorithm]) {
+ algorithm = mapping[algorithm];
}
- });
-} catch (e) {}
+ return createHmac(algorithm, key);
+};
-if (typeof module !== 'undefined') {
- var RTCPeerConnection;
- if (typeof window !== 'undefined') {
- RTCPeerConnection = window.RTCPeerConnection;
- }
- module.exports = {
- RTCPeerConnection: RTCPeerConnection,
- getUserMedia: getUserMedia,
- attachMediaStream: attachMediaStream,
- reattachMediaStream: reattachMediaStream,
- webrtcDetectedBrowser: webrtcDetectedBrowser,
- webrtcDetectedVersion: webrtcDetectedVersion,
- webrtcMinimumVersion: webrtcMinimumVersion,
- webrtcTesting: webrtcTesting,
- webrtcUtils: webrtcUtils
- //requestUserMedia: not exposed on purpose.
- //trace: not exposed on purpose.
- };
-} else if ((typeof require === 'function') && (typeof define === 'function')) {
- // Expose objects and functions when RequireJS is doing the loading.
- define([], function() {
- return {
- RTCPeerConnection: window.RTCPeerConnection,
- getUserMedia: getUserMedia,
- attachMediaStream: attachMediaStream,
- reattachMediaStream: reattachMediaStream,
- webrtcDetectedBrowser: webrtcDetectedBrowser,
- webrtcDetectedVersion: webrtcDetectedVersion,
- webrtcMinimumVersion: webrtcMinimumVersion,
- webrtcTesting: webrtcTesting,
- webrtcUtils: webrtcUtils
- //requestUserMedia: not exposed on purpose.
- //trace: not exposed on purpose.
- };
- });
-}
+},{"./lib/get-hashes":43,"create-hash":23,"create-hmac":26}],43:[function(require,module,exports){
+module.exports = function () {
+ return ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'];
+};
-},{}],84:[function(require,module,exports){
-arguments[4][53][0].apply(exports,arguments)
-},{"dup":53}],85:[function(require,module,exports){
-var util = require('util');
-var each = require('lodash.foreach');
-var pluck = require('lodash.pluck');
-var SJJ = require('sdp-jingle-json');
-var WildEmitter = require('wildemitter');
-var peerconn = require('traceablepeerconnection');
-var adapter = require('webrtc-adapter-test');
+},{}],44:[function(require,module,exports){
+exports.read = function (buffer, offset, isLE, mLen, nBytes) {
+ var e, m
+ var eLen = nBytes * 8 - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var nBits = -7
+ var i = isLE ? (nBytes - 1) : 0
+ var d = isLE ? -1 : 1
+ var s = buffer[offset + i]
-function PeerConnection(config, constraints) {
- var self = this;
- var item;
- WildEmitter.call(this);
+ i += d
- config = config || {};
- config.iceServers = config.iceServers || [];
+ e = s & ((1 << (-nBits)) - 1)
+ s >>= (-nBits)
+ nBits += eLen
+ for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
- // make sure this only gets enabled in Google Chrome
- // EXPERIMENTAL FLAG, might get removed without notice
- this.enableChromeNativeSimulcast = false;
- if (constraints && constraints.optional &&
- adapter.webrtcDetectedBrowser === 'chrome' &&
- navigator.appVersion.match(/Chromium\//) === null) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.enableChromeNativeSimulcast) {
- self.enableChromeNativeSimulcast = true;
- }
- });
- }
+ m = e & ((1 << (-nBits)) - 1)
+ e >>= (-nBits)
+ nBits += mLen
+ for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
- // EXPERIMENTAL FLAG, might get removed without notice
- this.enableMultiStreamHacks = false;
- if (constraints && constraints.optional &&
- adapter.webrtcDetectedBrowser === 'chrome') {
- constraints.optional.forEach(function (constraint) {
- if (constraint.enableMultiStreamHacks) {
- self.enableMultiStreamHacks = true;
- }
- });
- }
- // EXPERIMENTAL FLAG, might get removed without notice
- this.restrictBandwidth = 0;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetRestrictBandwidth) {
- self.restrictBandwidth = constraint.andyetRestrictBandwidth;
- }
- });
- }
+ if (e === 0) {
+ e = 1 - eBias
+ } else if (e === eMax) {
+ return m ? NaN : ((s ? -1 : 1) * Infinity)
+ } else {
+ m = m + Math.pow(2, mLen)
+ e = e - eBias
+ }
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+}
- // EXPERIMENTAL FLAG, might get removed without notice
- // bundle up ice candidates, only works for jingle mode
- // number > 0 is the delay to wait for additional candidates
- // ~20ms seems good
- this.batchIceCandidates = 0;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetBatchIce) {
- self.batchIceCandidates = constraint.andyetBatchIce;
- }
- });
- }
- this.batchedIceCandidates = [];
+exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
+ var e, m, c
+ var eLen = nBytes * 8 - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
+ var i = isLE ? 0 : (nBytes - 1)
+ var d = isLE ? 1 : -1
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
- // EXPERIMENTAL FLAG, might get removed without notice
- // this attemps to strip out candidates with an already known foundation
- // and type -- i.e. those which are gathered via the same TURN server
- // but different transports (TURN udp, tcp and tls respectively)
- if (constraints && constraints.optional && adapter.webrtcDetectedBrowser === 'chrome') {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetFasterICE) {
- self.eliminateDuplicateCandidates = constraint.andyetFasterICE;
- }
- });
+ value = Math.abs(value)
+
+ if (isNaN(value) || value === Infinity) {
+ m = isNaN(value) ? 1 : 0
+ e = eMax
+ } else {
+ e = Math.floor(Math.log(value) / Math.LN2)
+ if (value * (c = Math.pow(2, -e)) < 1) {
+ e--
+ c *= 2
}
- // EXPERIMENTAL FLAG, might get removed without notice
- // when using a server such as the jitsi videobridge we don't need to signal
- // our candidates
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetDontSignalCandidates) {
- self.dontSignalCandidates = constraint.andyetDontSignalCandidates;
- }
- });
+ if (e + eBias >= 1) {
+ value += rt / c
+ } else {
+ value += rt * Math.pow(2, 1 - eBias)
}
-
-
- // EXPERIMENTAL FLAG, might get removed without notice
- this.assumeSetLocalSuccess = false;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetAssumeSetLocalSuccess) {
- self.assumeSetLocalSuccess = constraint.andyetAssumeSetLocalSuccess;
- }
- });
+ if (value * c >= 2) {
+ e++
+ c /= 2
}
- // EXPERIMENTAL FLAG, might get removed without notice
- // working around https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
- // pass in a timeout for this
- if (adapter.webrtcDetectedBrowser === 'firefox') {
- if (constraints && constraints.optional) {
- this.wtFirefox = 0;
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetFirefoxMakesMeSad) {
- self.wtFirefox = constraint.andyetFirefoxMakesMeSad;
- if (self.wtFirefox > 0) {
- self.firefoxcandidatebuffer = [];
- }
- }
- });
- }
+ if (e + eBias >= eMax) {
+ m = 0
+ e = eMax
+ } else if (e + eBias >= 1) {
+ m = (value * c - 1) * Math.pow(2, mLen)
+ e = e + eBias
+ } else {
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
+ e = 0
}
+ }
+ for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
- this.pc = new peerconn(config, constraints);
+ e = (e << mLen) | m
+ eLen += mLen
+ for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
- this.getLocalStreams = this.pc.getLocalStreams.bind(this.pc);
- this.getRemoteStreams = this.pc.getRemoteStreams.bind(this.pc);
- this.addStream = this.pc.addStream.bind(this.pc);
- this.removeStream = this.pc.removeStream.bind(this.pc);
+ buffer[offset + i - d] |= s * 128
+}
- // proxy events
- this.pc.on('*', function () {
- self.emit.apply(self, arguments);
+},{}],45:[function(require,module,exports){
+if (typeof Object.create === 'function') {
+ // implementation from standard node.js 'util' module
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
});
+ };
+} else {
+ // old school shim for old browsers
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ var TempCtor = function () {}
+ TempCtor.prototype = superCtor.prototype
+ ctor.prototype = new TempCtor()
+ ctor.prototype.constructor = ctor
+ }
+}
- // proxy some events directly
- this.pc.onremovestream = this.emit.bind(this, 'removeStream');
- this.pc.onaddstream = this.emit.bind(this, 'addStream');
- this.pc.onnegotiationneeded = this.emit.bind(this, 'negotiationNeeded');
- this.pc.oniceconnectionstatechange = this.emit.bind(this, 'iceConnectionStateChange');
- this.pc.onsignalingstatechange = this.emit.bind(this, 'signalingStateChange');
-
- // handle ice candidate and data channel events
- this.pc.onicecandidate = this._onIce.bind(this);
- this.pc.ondatachannel = this._onDataChannel.bind(this);
-
- this.localDescription = {
- contents: []
- };
- this.remoteDescription = {
- contents: []
- };
-
- this.config = {
- debug: false,
- ice: {},
- sid: '',
- isInitiator: true,
- sdpSessionID: Date.now(),
- useJingle: false
- };
+},{}],46:[function(require,module,exports){
+module.exports = intersect;
- // apply our config
- for (item in config) {
- this.config[item] = config[item];
- }
+function intersect (a, b) {
+ var res = [];
+ for (var i = 0; i < a.length; i++) {
+ if (indexOf(b, a[i]) > -1) res.push(a[i]);
+ }
+ return res;
+}
- if (this.config.debug) {
- this.on('*', function () {
- var logger = config.logger || console;
- logger.log('PeerConnection event:', arguments);
- });
- }
- this.hadLocalStunCandidate = false;
- this.hadRemoteStunCandidate = false;
- this.hadLocalRelayCandidate = false;
- this.hadRemoteRelayCandidate = false;
+intersect.big = function(a, b) {
+ var ret = [];
+ var temp = {};
+
+ for (var i = 0; i < b.length; i++) {
+ temp[b[i]] = true;
+ }
+ for (var i = 0; i < a.length; i++) {
+ if (temp[a[i]]) ret.push(a[i]);
+ }
+
+ return ret;
+}
- this.hadLocalIPv6Candidate = false;
- this.hadRemoteIPv6Candidate = false;
+function indexOf(arr, el) {
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i] === el) return i;
+ }
+ return -1;
+}
- // keeping references for all our data channels
- // so they dont get garbage collected
- // can be removed once the following bugs have been fixed
- // https://crbug.com/405545
- // https://bugzilla.mozilla.org/show_bug.cgi?id=964092
- // to be filed for opera
- this._remoteDataChannels = [];
- this._localDataChannels = [];
+},{}],47:[function(require,module,exports){
+/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
- this._candidateBuffer = [];
+// The _isBuffer check is for Safari 5-7 support, because it's missing
+// Object.prototype.constructor. Remove this eventually
+module.exports = function (obj) {
+ return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
}
-util.inherits(PeerConnection, WildEmitter);
+function isBuffer (obj) {
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
+}
-Object.defineProperty(PeerConnection.prototype, 'signalingState', {
- get: function () {
- return this.pc.signalingState;
- }
-});
-Object.defineProperty(PeerConnection.prototype, 'iceConnectionState', {
- get: function () {
- return this.pc.iceConnectionState;
- }
-});
+// For Node v0.10 support. Remove this eventually.
+function isSlowBuffer (obj) {
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
+}
-PeerConnection.prototype._role = function () {
- return this.isInitiator ? 'initiator' : 'responder';
-};
+},{}],48:[function(require,module,exports){
+var toString = {}.toString;
-// Add a stream to the peer connection object
-PeerConnection.prototype.addStream = function (stream) {
- this.localStream = stream;
- this.pc.addStream(stream);
+module.exports = Array.isArray || function (arr) {
+ return toString.call(arr) == '[object Array]';
};
-// helper function to check if a remote candidate is a stun/relay
-// candidate or an ipv6 candidate
-PeerConnection.prototype._checkLocalCandidate = function (candidate) {
- var cand = SJJ.toCandidateJSON(candidate);
- if (cand.type == 'srflx') {
- this.hadLocalStunCandidate = true;
- } else if (cand.type == 'relay') {
- this.hadLocalRelayCandidate = true;
- }
- if (cand.ip.indexOf(':') != -1) {
- this.hadLocalIPv6Candidate = true;
- }
-};
+},{}],49:[function(require,module,exports){
+var util = require('util');
+var extend = require('extend-object');
+var BaseSession = require('jingle-session');
+var RTCPeerConnection = require('rtcpeerconnection');
+var FileTransfer = require('filetransfer/hashed');
-// helper function to check if a remote candidate is a stun/relay
-// candidate or an ipv6 candidate
-PeerConnection.prototype._checkRemoteCandidate = function (candidate) {
- var cand = SJJ.toCandidateJSON(candidate);
- if (cand.type == 'srflx') {
- this.hadRemoteStunCandidate = true;
- } else if (cand.type == 'relay') {
- this.hadRemoteRelayCandidate = true;
- }
- if (cand.ip.indexOf(':') != -1) {
- this.hadRemoteIPv6Candidate = true;
- }
-};
+function FileTransferSession(opts) {
+ BaseSession.call(this, opts);
-// Init and add ice candidate object with correct constructor
-PeerConnection.prototype.processIce = function (update, cb) {
- cb = cb || function () {};
- var self = this;
+ this.pc = new RTCPeerConnection({
+ iceServers: opts.iceServers || [],
+ useJingle: true
+ }, opts.constraints || {});
- // ignore any added ice candidates to avoid errors. why does the
- // spec not do this?
- if (this.pc.signalingState === 'closed') return cb();
+ this.pc.on('ice', this.onIceCandidate.bind(this));
+ this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
+ this.pc.on('addChannel', this.onChannelAdded.bind(this));
- if (update.contents || (update.jingle && update.jingle.contents)) {
- var contentNames = pluck(this.remoteDescription.contents, 'name');
- var contents = update.contents || update.jingle.contents;
+ this.sender = null;
+ this.receiver = null;
+}
- contents.forEach(function (content) {
- var transport = content.transport || {};
- var candidates = transport.candidates || [];
- var mline = contentNames.indexOf(content.name);
- var mid = content.name;
- candidates.forEach(
- function (candidate) {
- var iceCandidate = SJJ.toCandidateSDP(candidate) + '\r\n';
- self.pc.addIceCandidate(
- new RTCIceCandidate({
- candidate: iceCandidate,
- sdpMLineIndex: mline,
- sdpMid: mid
- }), function () {
- // well, this success callback is pretty meaningless
- },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(iceCandidate);
- });
- });
- } else {
- // working around https://code.google.com/p/webrtc/issues/detail?id=3669
- if (update.candidate && update.candidate.candidate.indexOf('a=') !== 0) {
- update.candidate.candidate = 'a=' + update.candidate.candidate;
- }
+util.inherits(FileTransferSession, BaseSession);
- if (this.wtFirefox && this.firefoxcandidatebuffer !== null) {
- // we cant add this yet due to https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
- if (this.pc.localDescription && this.pc.localDescription.type === 'offer') {
- this.firefoxcandidatebuffer.push(update.candidate);
- return cb();
- }
- }
- self.pc.addIceCandidate(
- new RTCIceCandidate(update.candidate),
- function () { },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(update.candidate.candidate);
- }
- cb();
-};
+FileTransferSession.prototype = extend(FileTransferSession.prototype, {
-// Generate and emit an offer with the given constraints
-PeerConnection.prototype.offer = function (constraints, cb) {
- var self = this;
- var hasConstraints = arguments.length === 2;
- var mediaConstraints = hasConstraints && constraints ? constraints : {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: true
- }
- };
- cb = hasConstraints ? cb : constraints;
- cb = cb || function () {};
+ // ----------------------------------------------------------------
+ // Session control methods
+ // ----------------------------------------------------------------
- if (this.pc.signalingState === 'closed') return cb('Already closed');
+ start: function (file) {
+ var self = this;
+ this.state = 'pending';
- // Actually generate the offer
- this.pc.createOffer(
- function (offer) {
- // does not work for jingle, but jingle.js doesn't need
- // this hack...
- var expandedOffer = {
- type: 'offer',
- sdp: offer.sdp
- };
- if (self.assumeSetLocalSuccess) {
- self.emit('offer', expandedOffer);
- cb(null, expandedOffer);
- }
- self._candidateBuffer = [];
- self.pc.setLocalDescription(offer,
- function () {
- var jingle;
- if (self.config.useJingle) {
- jingle = SJJ.toSessionJSON(offer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- jingle.sid = self.config.sid;
- self.localDescription = jingle;
+ this.pc.isInitiator = true;
- // Save ICE credentials
- each(jingle.contents, function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.config.ice[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
+ this.sender = new FileTransfer.Sender();
+ this.sender.on('progress', function (sent, size) {
+ self._log('info', 'Send progress ' + sent + '/' + size);
+ });
+ this.sender.on('sentFile', function (meta) {
+ self._log('info', 'Sent file', meta.name);
- expandedOffer.jingle = jingle;
- }
- expandedOffer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkLocalCandidate(line);
- }
- });
+ var content = self.pc.localDescription.contents[0];
+ delete content.transport;
- if (!self.assumeSetLocalSuccess) {
- self.emit('offer', expandedOffer);
- cb(null, expandedOffer);
+ content.application = {
+ applicationType: 'filetransfer',
+ offer: {
+ hash: {
+ algo: meta.algo,
+ value: meta.hash
}
- },
- function (err) {
- self.emit('error', err);
- cb(err);
}
- );
- },
- function (err) {
- self.emit('error', err);
- cb(err);
- },
- mediaConstraints
- );
-};
-
+ };
-// Process an incoming offer so that ICE may proceed before deciding
-// to answer the request.
-PeerConnection.prototype.handleOffer = function (offer, cb) {
- cb = cb || function () {};
- var self = this;
- offer.type = 'offer';
- if (offer.jingle) {
- if (this.enableChromeNativeSimulcast) {
- offer.jingle.contents.forEach(function (content) {
- if (content.name === 'video') {
- content.description.googConferenceFlag = true;
- }
- });
- }
- if (this.enableMultiStreamHacks) {
- // add a mixed video stream as first stream
- offer.jingle.contents.forEach(function (content) {
- if (content.name === 'video') {
- var sources = content.description.sources || [];
- if (sources.length === 0 || sources[0].ssrc !== "3735928559") {
- sources.unshift({
- ssrc: "3735928559", // 0xdeadbeef
- parameters: [
- {
- key: "cname",
- value: "deadbeef"
- },
- {
- key: "msid",
- value: "mixyourfecintothis please"
- }
- ]
- });
- content.description.sources = sources;
- }
- }
+ self.send('description-info', {
+ contents: [content]
});
- }
- if (self.restrictBandwidth > 0) {
- if (offer.jingle.contents.length >= 2 && offer.jingle.contents[1].name === 'video') {
- var content = offer.jingle.contents[1];
- var hasBw = content.description && content.description.bandwidth;
- if (!hasBw) {
- offer.jingle.contents[1].description.bandwidth = { type: 'AS', bandwidth: self.restrictBandwidth.toString() };
- offer.sdp = SJJ.toSessionSDP(offer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- }
- }
- offer.sdp = SJJ.toSessionSDP(offer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'incoming'
+ self.emit('sentFile', self, meta);
});
- self.remoteDescription = offer.jingle;
- }
- offer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkRemoteCandidate(line);
- }
- });
- self.pc.setRemoteDescription(new RTCSessionDescription(offer),
- function () {
- cb();
- },
- cb
- );
-};
-// Answer an offer with audio only
-PeerConnection.prototype.answerAudioOnly = function (cb) {
- var mediaConstraints = {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: false
- }
+ var sendChannel = this.pc.createDataChannel('filetransfer');
+ sendChannel.onopen = function () {
+ self.sender.send(file, sendChannel);
};
- this._answer(mediaConstraints, cb);
-};
-// Answer an offer without offering to recieve
-PeerConnection.prototype.answerBroadcastOnly = function (cb) {
- var mediaConstraints = {
+ var constraints = {
mandatory: {
OfferToReceiveAudio: false,
OfferToReceiveVideo: false
}
};
- this._answer(mediaConstraints, cb);
-};
-// Answer an offer with given constraints default is audio/video
-PeerConnection.prototype.answer = function (constraints, cb) {
- var hasConstraints = arguments.length === 2;
- var callback = hasConstraints ? cb : constraints;
- var mediaConstraints = hasConstraints && constraints ? constraints : {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: true
+ this.pc.offer(constraints, function (err, offer) {
+ if (err) {
+ self._log('error', 'Could not create WebRTC offer', err);
+ return self.end('failed-application', true);
}
- };
- this._answer(mediaConstraints, callback);
-};
+ offer.jingle.contents[0].application = {
+ applicationType: 'filetransfer',
+ offer: {
+ date: file.lastModifiedDate,
+ name: file.name,
+ size: file.size,
+ hash: {
+ algo: 'sha-1',
+ value: ''
+ }
+ }
+ };
-// Process an answer
-PeerConnection.prototype.handleAnswer = function (answer, cb) {
- cb = cb || function () {};
- var self = this;
- if (answer.jingle) {
- answer.sdp = SJJ.toSessionSDP(answer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'incoming'
+ self.send('session-initiate', offer.jingle);
});
- self.remoteDescription = answer.jingle;
- }
- answer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkRemoteCandidate(line);
- }
- });
- self.pc.setRemoteDescription(
- new RTCSessionDescription(answer),
- function () {
- if (self.wtFirefox) {
- window.setTimeout(function () {
- self.firefoxcandidatebuffer.forEach(function (candidate) {
- // add candidates later
- self.pc.addIceCandidate(
- new RTCIceCandidate(candidate),
- function () { },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(candidate.candidate);
- });
- self.firefoxcandidatebuffer = null;
- }, self.wtFirefox);
- }
- cb(null);
- },
- cb
- );
-};
+ },
-// Close the peer connection
-PeerConnection.prototype.close = function () {
- this.pc.close();
+ accept: function () {
+ var self = this;
- this._localDataChannels = [];
- this._remoteDataChannels = [];
+ this._log('info', 'Accepted incoming session');
- this.emit('close');
-};
+ this.state = 'active';
-// Internal code sharing for various types of answer methods
-PeerConnection.prototype._answer = function (constraints, cb) {
- cb = cb || function () {};
- var self = this;
- if (!this.pc.remoteDescription) {
- // the old API is used, call handleOffer
- throw new Error('remoteDescription not set');
- }
+ this.pc.answer(function (err, answer) {
+ if (err) {
+ self._log('error', 'Could not create WebRTC answer', err);
+ return self.end('failed-application');
+ }
+ self.send('session-accept', answer.jingle);
+ });
+ },
- if (this.pc.signalingState === 'closed') return cb('Already closed');
+ end: function (reason, silent) {
+ this.pc.close();
+ BaseSession.prototype.end.call(this, reason, silent);
+ },
- self.pc.createAnswer(
- function (answer) {
- var sim = [];
- if (self.enableChromeNativeSimulcast) {
- // native simulcast part 1: add another SSRC
- answer.jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- if (answer.jingle.contents.length >= 2 && answer.jingle.contents[1].name === 'video') {
- var groups = answer.jingle.contents[1].description.sourceGroups || [];
- var hasSim = false;
- groups.forEach(function (group) {
- if (group.semantics == 'SIM') hasSim = true;
- });
- if (!hasSim &&
- answer.jingle.contents[1].description.sources.length) {
- var newssrc = JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));
- newssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
- answer.jingle.contents[1].description.sources.push(newssrc);
+ maybeReceivedFile: function () {
+ if (!this.receiver.metadata.hash.value) {
+ // unknown hash, file transfer not completed
+ } else if (this.receiver.metadata.hash.value === this.receiver.metadata.actualhash) {
+ this._log('info', 'File hash matches');
+ this.emit('receivedFile', this, this.receivedFile, this.receiver.metadata);
+ this.end('success');
+ } else {
+ this._log('error', 'File hash does not match');
+ this.end('media-error');
+ }
+ },
- sim.push(answer.jingle.contents[1].description.sources[0].ssrc);
- sim.push(newssrc.ssrc);
- groups.push({
- semantics: 'SIM',
- sources: sim
- });
+ // ----------------------------------------------------------------
+ // ICE action handers
+ // ----------------------------------------------------------------
- // also create an RTX one for the SIM one
- var rtxssrc = JSON.parse(JSON.stringify(newssrc));
- rtxssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
- answer.jingle.contents[1].description.sources.push(rtxssrc);
- groups.push({
- semantics: 'FID',
- sources: [newssrc.ssrc, rtxssrc.ssrc]
- });
+ onIceCandidate: function (candidate) {
+ this._log('info', 'Discovered new ICE candidate', candidate.jingle);
+ this.send('transport-info', candidate.jingle);
+ },
- answer.jingle.contents[1].description.sourceGroups = groups;
- answer.sdp = SJJ.toSessionSDP(answer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- }
- }
- var expandedAnswer = {
- type: 'answer',
- sdp: answer.sdp
- };
- if (self.assumeSetLocalSuccess) {
- // not safe to do when doing simulcast mangling
- self.emit('answer', expandedAnswer);
- cb(null, expandedAnswer);
- }
- self._candidateBuffer = [];
- self.pc.setLocalDescription(answer,
- function () {
- if (self.config.useJingle) {
- var jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- jingle.sid = self.config.sid;
- self.localDescription = jingle;
- expandedAnswer.jingle = jingle;
- }
- if (self.enableChromeNativeSimulcast) {
- // native simulcast part 2:
- // signal multiple tracks to the receiver
- // for anything in the SIM group
- if (!expandedAnswer.jingle) {
- expandedAnswer.jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- }
- expandedAnswer.jingle.contents[1].description.sources.forEach(function (source, idx) {
- // the floor idx/2 is a hack that relies on a particular order
- // of groups, alternating between sim and rtx
- source.parameters = source.parameters.map(function (parameter) {
- if (parameter.key === 'msid') {
- parameter.value += '-' + Math.floor(idx / 2);
- }
- return parameter;
- });
- });
- expandedAnswer.sdp = SJJ.toSessionSDP(expandedAnswer.jingle, {
- sid: self.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- expandedAnswer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkLocalCandidate(line);
- }
- });
- if (!self.assumeSetLocalSuccess) {
- self.emit('answer', expandedAnswer);
- cb(null, expandedAnswer);
- }
- },
- function (err) {
- self.emit('error', err);
- cb(err);
+ onIceStateChange: function () {
+ switch (this.pc.iceConnectionState) {
+ case 'checking':
+ this.connectionState = 'connecting';
+ break;
+ case 'completed':
+ case 'connected':
+ this.connectionState = 'connected';
+ break;
+ case 'disconnected':
+ if (this.pc.signalingState === 'stable') {
+ this.connectionState = 'interrupted';
+ } else {
+ this.connectionState = 'disconnected';
}
- );
- },
- function (err) {
- self.emit('error', err);
- cb(err);
- },
- constraints
- );
-};
+ break;
+ case 'failed':
+ this.connectionState = 'failed';
+ this.end('failed-transport');
+ break;
+ case 'closed':
+ this.connectionState = 'disconnected';
+ break;
+ }
+ },
-// Internal method for emitting ice candidates on our peer object
-PeerConnection.prototype._onIce = function (event) {
- var self = this;
- if (event.candidate) {
- if (this.dontSignalCandidates) return;
- var ice = event.candidate;
+ onChannelAdded: function (channel) {
+ this.receiver.receive(null, channel);
+ },
- var expandedCandidate = {
- candidate: {
- candidate: ice.candidate,
- sdpMid: ice.sdpMid,
- sdpMLineIndex: ice.sdpMLineIndex
- }
- };
- this._checkLocalCandidate(ice.candidate);
+ // ----------------------------------------------------------------
+ // Jingle action handers
+ // ----------------------------------------------------------------
- var cand = SJJ.toCandidateJSON(ice.candidate);
+ onSessionInitiate: function (changes, cb) {
+ var self = this;
- var already;
- var idx;
- if (this.eliminateDuplicateCandidates && cand.type === 'relay') {
- // drop candidates with same foundation, component
- // take local type pref into account so we don't ignore udp
- // ones when we know about a TCP one. unlikely but...
- already = this._candidateBuffer.filter(
- function (c) {
- return c.type === 'relay';
- }).map(function (c) {
- return c.foundation + ':' + c.component;
- }
- );
- idx = already.indexOf(cand.foundation + ':' + cand.component);
- // remember: local type pref of udp is 0, tcp 1, tls 2
- if (idx > -1 && ((cand.priority >> 24) >= (already[idx].priority >> 24))) {
- // drop it, same foundation with higher (worse) type pref
- return;
- }
- }
- if (this.config.bundlePolicy === 'max-bundle') {
- // drop candidates which are duplicate for audio/video/data
- // duplicate means same host/port but different sdpMid
- already = this._candidateBuffer.filter(
- function (c) {
- return cand.type === c.type;
- }).map(function (cand) {
- return cand.address + ':' + cand.port;
- }
- );
- idx = already.indexOf(cand.address + ':' + cand.port);
- if (idx > -1) return;
- }
- // also drop rtcp candidates since we know the peer supports RTCP-MUX
- // this is a workaround until browsers implement this natively
- if (this.config.rtcpMuxPolicy === 'require' && cand.component === '2') {
- return;
- }
- this._candidateBuffer.push(cand);
+ this._log('info', 'Initiating incoming session');
- if (self.config.useJingle) {
- if (!ice.sdpMid) { // firefox doesn't set this
- if (self.pc.remoteDescription && self.pc.remoteDescription.type === 'offer') {
- // preserve name from remote
- ice.sdpMid = self.remoteDescription.contents[ice.sdpMLineIndex].name;
- } else {
- ice.sdpMid = self.localDescription.contents[ice.sdpMLineIndex].name;
- }
- }
- if (!self.config.ice[ice.sdpMid]) {
- var jingle = SJJ.toSessionJSON(self.pc.localDescription.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- each(jingle.contents, function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.config.ice[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
- }
- expandedCandidate.jingle = {
- contents: [{
- name: ice.sdpMid,
- creator: self._role(),
- transport: {
- transType: 'iceUdp',
- ufrag: self.config.ice[ice.sdpMid].ufrag,
- pwd: self.config.ice[ice.sdpMid].pwd,
- candidates: [
- cand
- ]
- }
- }]
- };
- if (self.batchIceCandidates > 0) {
- if (self.batchedIceCandidates.length === 0) {
- window.setTimeout(function () {
- var contents = {};
- self.batchedIceCandidates.forEach(function (content) {
- content = content.contents[0];
- if (!contents[content.name]) contents[content.name] = content;
- contents[content.name].transport.candidates.push(content.transport.candidates[0]);
- });
- var newCand = {
- jingle: {
- contents: []
- }
- };
- Object.keys(contents).forEach(function (name) {
- newCand.jingle.contents.push(contents[name]);
- });
- self.batchedIceCandidates = [];
- self.emit('ice', newCand);
- }, self.batchIceCandidates);
- }
- self.batchedIceCandidates.push(expandedCandidate.jingle);
- return;
- }
+ this.state = 'pending';
- }
- this.emit('ice', expandedCandidate);
- } else {
- this.emit('endOfCandidates');
- }
-};
+ this.pc.isInitiator = false;
-// Internal method for processing a new data channel being added by the
-// other peer.
-PeerConnection.prototype._onDataChannel = function (event) {
- // make sure we keep a reference so this doesn't get garbage collected
- var channel = event.channel;
- this._remoteDataChannels.push(channel);
+ var desc = changes.contents[0].application;
- this.emit('addChannel', channel);
-};
-// Create a data channel spec reference:
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannelInit
-PeerConnection.prototype.createDataChannel = function (name, opts) {
- var channel = this.pc.createDataChannel(name, opts);
+ this.receiver = new FileTransfer.Receiver({hash: desc.offer.hash.algo});
+ this.receiver.on('progress', function (received, size) {
+ self._log('info', 'Receive progress ' + received + '/' + size);
+ });
+ this.receiver.on('receivedFile', function (file) {
+ self.receivedFile = file;
+ self.maybeReceivedFile();
+ });
+ this.receiver.metadata = desc.offer;
- // make sure we keep a reference so this doesn't get garbage collected
- this._localDataChannels.push(channel);
+ changes.contents[0].application = {
+ applicationType: 'datachannel'
+ };
- return channel;
-};
+ this.pc.handleOffer({
+ type: 'offer',
+ jingle: changes
+ }, function (err) {
+ if (err) {
+ self._log('error', 'Could not create WebRTC answer');
+ return cb({condition: 'general-error'});
+ }
+ cb();
+ });
+ },
-// a wrapper around getStats which hides the differences (where possible)
-// TODO: remove in favor of adapter.js shim
-PeerConnection.prototype.getStats = function (cb) {
- if (adapter.webrtcDetectedBrowser === 'firefox') {
- this.pc.getStats(
- function (res) {
- var items = [];
- for (var result in res) {
- if (typeof res[result] === 'object') {
- items.push(res[result]);
- }
- }
- cb(null, items);
- },
- cb
- );
- } else {
- this.pc.getStats(function (res) {
- var items = [];
- res.result().forEach(function (result) {
- var item = {};
- result.names().forEach(function (name) {
- item[name] = result.stat(name);
- });
- item.id = result.id;
- item.type = result.type;
- item.timestamp = result.timestamp;
- items.push(item);
- });
- cb(null, items);
+ onSessionAccept: function (changes, cb) {
+ var self = this;
+
+ this.state = 'active';
+
+ changes.contents[0].application = {
+ applicationType: 'datachannel'
+ };
+
+ this.pc.handleAnswer({
+ type: 'answer',
+ jingle: changes
+ }, function (err) {
+ if (err) {
+ self._log('error', 'Could not process WebRTC answer');
+ return cb({condition: 'general-error'});
+ }
+ self.emit('accepted', self);
+ cb();
+ });
+ },
+
+ onSessionTerminate: function (changes, cb) {
+ this._log('info', 'Terminating session');
+ this.pc.close();
+ BaseSession.prototype.end.call(this, changes.reason, true);
+ cb();
+ },
+
+ onDescriptionInfo: function (info, cb) {
+ var hash = info.contents[0].application.offer.hash;
+ this.receiver.metadata.hash = hash;
+ if (this.receiver.metadata.actualhash) {
+ this.maybeReceivedFile();
+ }
+ cb();
+ },
+
+ onTransportInfo: function (changes, cb) {
+ this.pc.processIce(changes, function () {
+ cb();
});
}
-};
+});
-module.exports = PeerConnection;
-},{"lodash.foreach":54,"lodash.pluck":62,"sdp-jingle-json":77,"traceablepeerconnection":82,"util":28,"webrtc-adapter-test":83,"wildemitter":84}],86:[function(require,module,exports){
+module.exports = FileTransferSession;
+
+},{"extend-object":28,"filetransfer/hashed":30,"jingle-session":51,"rtcpeerconnection":167,"util":197}],50:[function(require,module,exports){
var util = require('util');
var extend = require('extend-object');
var BaseSession = require('jingle-session');
@@ -21432,25 +14646,25 @@ var RTCPeerConnection = require('rtcpeerconnection');
function filterContentSources(content, stream) {
- if (content.description.descType !== 'rtp') {
+ if (content.application.applicationType !== 'rtp') {
return;
}
delete content.transport;
- delete content.description.payloads;
- delete content.description.headerExtensions;
- content.description.mux = false;
+ delete content.application.payloads;
+ delete content.application.headerExtensions;
+ content.application.mux = false;
- if (content.description.sources) {
- content.description.sources = content.description.sources.filter(function (source) {
+ if (content.application.sources) {
+ content.application.sources = content.application.sources.filter(function (source) {
return stream.id === source.parameters[1].value.split(' ')[0];
});
}
// remove source groups not related to this stream
- if (content.description.sourceGroups) {
- content.description.sourceGroups = content.description.sourceGroups.filter(function (group) {
+ if (content.application.sourceGroups) {
+ content.application.sourceGroups = content.application.sourceGroups.filter(function (group) {
var found = false;
- for (var i = 0; i < content.description.sources.length; i++) {
- if (content.description.sources[i].ssrc === group.sources[0]) {
+ for (var i = 0; i < content.application.sources.length; i++) {
+ if (content.application.sources[i].ssrc === group.sources[0]) {
found = true;
break;
}
@@ -21462,7 +14676,7 @@ function filterContentSources(content, stream) {
function filterUnusedLabels(content) {
// Remove mslabel and label ssrc-specific attributes
- var sources = content.description.sources || [];
+ var sources = content.application.sources || [];
sources.forEach(function (source) {
source.parameters = source.parameters.filter(function (parameter) {
return !(parameter.key === 'mslabel' || parameter.key === 'label');
@@ -21479,11 +14693,12 @@ function MediaSession(opts) {
useJingle: true
}, opts.constraints || {});
- this.pc.on('ice', this.onIceCandidate.bind(this));
- this.pc.on('endOfCandidates', this.onIceEndOfCandidates.bind(this));
+ this.pc.on('ice', this.onIceCandidate.bind(this, opts));
+ this.pc.on('endOfCandidates', this.onIceEndOfCandidates.bind(this, opts));
this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
this.pc.on('addStream', this.onAddStream.bind(this));
this.pc.on('removeStream', this.onRemoveStream.bind(this));
+ this.pc.on('addChannel', this.onAddChannel.bind(this));
if (opts.stream) {
this.addStream(opts.stream);
@@ -21542,9 +14757,9 @@ MediaSession.prototype = extend(MediaSession.prototype, {
// https://code.google.com/p/webrtc/issues/detail?id=1553
if (offerOptions && offerOptions.mandatory) {
offer.jingle.contents.forEach(function (content) {
- var mediaType = content.description.media;
+ var mediaType = content.application.media;
- if (!content.description || content.description.descType !== 'rtp') {
+ if (!content.description || content.application.applicationType !== 'rtp') {
return;
}
@@ -21566,16 +14781,29 @@ MediaSession.prototype = extend(MediaSession.prototype, {
});
},
- accept: function (next) {
+ accept: function (opts, next) {
var self = this;
+ // support calling with accept(next) or accept(opts, next)
+ if (arguments.length === 1 && typeof opts === 'function') {
+ next = opts;
+ opts = {};
+ }
next = next || function () {};
+ opts = opts || {};
+
+ var constraints = opts.constraints || {
+ mandatory: {
+ OfferToReceiveAudio: true,
+ OfferToReceiveVideo: true
+ }
+ };
this._log('info', 'Accepted incoming session');
this.state = 'active';
- this.pc.answer(function (err, answer) {
+ this.pc.answer(constraints, function (err, answer) {
if (err) {
self._log('error', 'Could not create WebRTC answer', err);
return self.end('failed-application');
@@ -21667,7 +14895,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
filterContentSources(content, stream);
});
answer.jingle.contents = answer.jingle.contents.filter(function (content) {
- return content.description.descType === 'rtp' && content.description.sources && content.description.sources.length;
+ return content.application.applicationType === 'rtp' && content.application.sources && content.application.sources.length;
});
delete answer.jingle.groups;
@@ -21696,7 +14924,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
filterContentSources(content, stream);
});
desc.contents = desc.contents.filter(function (content) {
- return content.description.descType === 'rtp' && content.description.sources && content.description.sources.length;
+ return content.application.applicationType === 'rtp' && content.application.sources && content.application.sources.length;
});
delete desc.groups;
@@ -21733,17 +14961,12 @@ MediaSession.prototype = extend(MediaSession.prototype, {
var desc = this.pc.localDescription;
desc.contents.forEach(function (content) {
delete content.transport;
- delete content.description.payloads;
+ delete content.application.payloads;
});
this.pc.removeStream(oldStream);
this.send('source-remove', desc);
- var audioTracks = oldStream.getAudioTracks();
- if (audioTracks.length) {
- newStream.addTrack(audioTracks[0]);
- }
-
this.pc.addStream(newStream);
this.pc.handleOffer({
type: 'offer',
@@ -21760,7 +14983,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
}
answer.jingle.contents.forEach(function (content) {
delete content.transport;
- delete content.description.payloads;
+ delete content.application.payloads;
});
self.send('source-add', answer.jingle);
cb();
@@ -21772,13 +14995,25 @@ MediaSession.prototype = extend(MediaSession.prototype, {
// ICE action handers
// ----------------------------------------------------------------
- onIceCandidate: function (candidate) {
+ onIceCandidate: function (opts, candidate) {
this._log('info', 'Discovered new ICE candidate', candidate.jingle);
this.send('transport-info', candidate.jingle);
+ if (opts.signalEndOfCandidates) {
+ this.lastCandidate = candidate;
+ }
},
- onIceEndOfCandidates: function () {
+ onIceEndOfCandidates: function (opts) {
this._log('info', 'ICE end of candidates');
+ if (opts.signalEndOfCandidates) {
+ var endOfCandidates = this.lastCandidate.jingle;
+ endOfCandidates.contents[0].transport = {
+ transportType: endOfCandidates.contents[0].transport.transportType,
+ gatheringComplete: true
+ };
+ this.lastCandidate = null;
+ this.send('transport-info', endOfCandidates);
+ }
},
onIceStateChange: function () {
@@ -21922,7 +15157,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
var newDesc = this.pc.remoteDescription;
this.pc.remoteDescription.contents.forEach(function (content, idx) {
- var desc = content.description;
+ var desc = content.application;
var ssrcs = desc.sources || [];
var groups = desc.sourceGroups || [];
@@ -21931,15 +15166,15 @@ MediaSession.prototype = extend(MediaSession.prototype, {
return;
}
- var newContentDesc = newContent.description;
+ var newContentDesc = newContent.application;
var newSSRCs = newContentDesc.sources || [];
ssrcs = ssrcs.concat(newSSRCs);
- newDesc.contents[idx].description.sources = JSON.parse(JSON.stringify(ssrcs));
+ newDesc.contents[idx].application.sources = JSON.parse(JSON.stringify(ssrcs));
var newGroups = newContentDesc.sourceGroups || [];
groups = groups.concat(newGroups);
- newDesc.contents[idx].description.sourceGroups = JSON.parse(JSON.stringify(groups));
+ newDesc.contents[idx].application.sourceGroups = JSON.parse(JSON.stringify(groups));
});
});
@@ -21972,7 +15207,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
var newDesc = this.pc.remoteDescription;
this.pc.remoteDescription.contents.forEach(function (content, idx) {
- var desc = content.description;
+ var desc = content.application;
var ssrcs = desc.sources || [];
var groups = desc.sourceGroups || [];
@@ -21981,7 +15216,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
return;
}
- var newContentDesc = newContent.description;
+ var newContentDesc = newContent.application;
var newSSRCs = newContentDesc.sources || [];
var newGroups = newContentDesc.sourceGroups || [];
@@ -21998,7 +15233,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
}
if (found > -1) {
ssrcs.splice(found, 1);
- newDesc.contents[idx].description.sources = JSON.parse(JSON.stringify(ssrcs));
+ newDesc.contents[idx].application.sources = JSON.parse(JSON.stringify(ssrcs));
}
}
@@ -22023,7 +15258,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
}
if (found > -1) {
groups.splice(found, 1);
- newDesc.contents[idx].description.sourceGroups = JSON.parse(JSON.stringify(groups));
+ newDesc.contents[idx].application.sourceGroups = JSON.parse(JSON.stringify(groups));
}
}
});
@@ -22049,75 +15284,20 @@ MediaSession.prototype = extend(MediaSession.prototype, {
cb();
});
});
+ },
+
+ // ----------------------------------------------------------------
+ // DataChannels
+ // ----------------------------------------------------------------
+ onAddChannel: function (channel) {
+ this.emit('addChannel', channel);
}
});
module.exports = MediaSession;
-},{"extend-object":30,"jingle-session":118,"rtcpeerconnection":117,"util":28}],87:[function(require,module,exports){
-arguments[4][54][0].apply(exports,arguments)
-},{"dup":54,"lodash._arrayeach":88,"lodash._baseeach":89,"lodash._bindcallback":93,"lodash.isarray":94}],88:[function(require,module,exports){
-arguments[4][55][0].apply(exports,arguments)
-},{"dup":55}],89:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":90}],90:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":91,"lodash.isarguments":92,"lodash.isarray":94}],91:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],92:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],93:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],94:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],95:[function(require,module,exports){
-arguments[4][62][0].apply(exports,arguments)
-},{"dup":62,"lodash._baseget":96,"lodash._topath":97,"lodash.isarray":98,"lodash.map":99}],96:[function(require,module,exports){
-arguments[4][63][0].apply(exports,arguments)
-},{"dup":63}],97:[function(require,module,exports){
-arguments[4][64][0].apply(exports,arguments)
-},{"dup":64,"lodash.isarray":98}],98:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],99:[function(require,module,exports){
-arguments[4][66][0].apply(exports,arguments)
-},{"dup":66,"lodash._arraymap":100,"lodash._basecallback":101,"lodash._baseeach":106,"lodash.isarray":98}],100:[function(require,module,exports){
-arguments[4][67][0].apply(exports,arguments)
-},{"dup":67}],101:[function(require,module,exports){
-arguments[4][68][0].apply(exports,arguments)
-},{"dup":68,"lodash._baseisequal":102,"lodash._bindcallback":104,"lodash.isarray":98,"lodash.pairs":105}],102:[function(require,module,exports){
-arguments[4][69][0].apply(exports,arguments)
-},{"dup":69,"lodash.isarray":98,"lodash.istypedarray":103,"lodash.keys":107}],103:[function(require,module,exports){
-arguments[4][70][0].apply(exports,arguments)
-},{"dup":70}],104:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],105:[function(require,module,exports){
-arguments[4][72][0].apply(exports,arguments)
-},{"dup":72,"lodash.keys":107}],106:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":107}],107:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":108,"lodash.isarguments":109,"lodash.isarray":98}],108:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],109:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],110:[function(require,module,exports){
-arguments[4][77][0].apply(exports,arguments)
-},{"./lib/tojson":113,"./lib/tosdp":114,"dup":77}],111:[function(require,module,exports){
-arguments[4][78][0].apply(exports,arguments)
-},{"dup":78}],112:[function(require,module,exports){
-arguments[4][79][0].apply(exports,arguments)
-},{"dup":79}],113:[function(require,module,exports){
-arguments[4][80][0].apply(exports,arguments)
-},{"./parsers":111,"./senders":112,"dup":80}],114:[function(require,module,exports){
-arguments[4][81][0].apply(exports,arguments)
-},{"./senders":112,"dup":81}],115:[function(require,module,exports){
-arguments[4][82][0].apply(exports,arguments)
-},{"dup":82,"util":28,"webrtc-adapter-test":116,"wildemitter":124}],116:[function(require,module,exports){
-arguments[4][83][0].apply(exports,arguments)
-},{"dup":83}],117:[function(require,module,exports){
-arguments[4][85][0].apply(exports,arguments)
-},{"dup":85,"lodash.foreach":87,"lodash.pluck":95,"sdp-jingle-json":110,"traceablepeerconnection":115,"util":28,"webrtc-adapter-test":116,"wildemitter":124}],118:[function(require,module,exports){
+},{"extend-object":28,"jingle-session":51,"rtcpeerconnection":167,"util":197}],51:[function(require,module,exports){
var util = require('util');
var uuid = require('uuid');
var async = require('async');
@@ -22163,7 +15343,7 @@ function JingleSession(opts) {
// We track the intial pending description types in case
// of the need for a tie-breaker.
- this.pendingDescriptionTypes = opts.descriptionTypes || [];
+ this.pendingApplicationTypes = opts.applicationTypes || [];
this.pendingAction = false;
@@ -22463,8 +15643,8 @@ JingleSession.prototype = extend(JingleSession.prototype, {
module.exports = JingleSession;
-},{"async":119,"extend-object":30,"util":28,"uuid":121,"wildemitter":122}],119:[function(require,module,exports){
-(function (process){
+},{"async":52,"extend-object":28,"util":197,"uuid":199,"wildemitter":211}],52:[function(require,module,exports){
+(function (process,global){
/*!
* async
* https://github.com/caolan/async
@@ -22472,18 +15652,32 @@ module.exports = JingleSession;
* Copyright 2010-2014 Caolan McMahon
* Released under the MIT license
*/
-/*jshint onevar: false, indent:4 */
-/*global setImmediate: false, setTimeout: false, console: false */
(function () {
var async = {};
+ function noop() {}
+ function identity(v) {
+ return v;
+ }
+ function toBool(v) {
+ return !!v;
+ }
+ function notId(v) {
+ return !v;
+ }
// global on the server, window in the browser
- var root, previous_async;
+ var previous_async;
+
+ // Establish the root object, `window` (`self`) in the browser, `global`
+ // on the server, or `this` in some virtual machines. We use `self`
+ // instead of `window` for `WebWorker` support.
+ var root = typeof self === 'object' && self.self === self && self ||
+ typeof global === 'object' && global.global === global && global ||
+ this;
- root = this;
if (root != null) {
- previous_async = root.async;
+ previous_async = root.async;
}
async.noConflict = function () {
@@ -22492,12 +15686,19 @@ module.exports = JingleSession;
};
function only_once(fn) {
- var called = false;
return function() {
- if (called) throw new Error("Callback was already called.");
- called = true;
- fn.apply(root, arguments);
- }
+ if (fn === null) throw new Error("Callback was already called.");
+ fn.apply(this, arguments);
+ fn = null;
+ };
+ }
+
+ function _once(fn) {
+ return function() {
+ if (fn === null) return;
+ fn.apply(this, arguments);
+ fn = null;
+ };
}
//// cross-browser compatiblity functions ////
@@ -22508,37 +15709,66 @@ module.exports = JingleSession;
return _toString.call(obj) === '[object Array]';
};
- var _each = function (arr, iterator) {
- for (var i = 0; i < arr.length; i += 1) {
- iterator(arr[i], i, arr);
- }
+ // Ported from underscore.js isObject
+ var _isObject = function(obj) {
+ var type = typeof obj;
+ return type === 'function' || type === 'object' && !!obj;
};
- var _map = function (arr, iterator) {
- if (arr.map) {
- return arr.map(iterator);
+ function _isArrayLike(arr) {
+ return _isArray(arr) || (
+ // has a positive integer length property
+ typeof arr.length === "number" &&
+ arr.length >= 0 &&
+ arr.length % 1 === 0
+ );
+ }
+
+ function _arrayEach(arr, iterator) {
+ var index = -1,
+ length = arr.length;
+
+ while (++index < length) {
+ iterator(arr[index], index, arr);
}
- var results = [];
- _each(arr, function (x, i, a) {
- results.push(iterator(x, i, a));
- });
- return results;
- };
+ }
+
+ function _map(arr, iterator) {
+ var index = -1,
+ length = arr.length,
+ result = Array(length);
- var _reduce = function (arr, iterator, memo) {
- if (arr.reduce) {
- return arr.reduce(iterator, memo);
+ while (++index < length) {
+ result[index] = iterator(arr[index], index, arr);
}
- _each(arr, function (x, i, a) {
+ return result;
+ }
+
+ function _range(count) {
+ return _map(Array(count), function (v, i) { return i; });
+ }
+
+ function _reduce(arr, iterator, memo) {
+ _arrayEach(arr, function (x, i, a) {
memo = iterator(memo, x, i, a);
});
return memo;
- };
+ }
+
+ function _forEachOf(object, iterator) {
+ _arrayEach(_keys(object), function (key) {
+ iterator(object[key], key);
+ });
+ }
- var _keys = function (obj) {
- if (Object.keys) {
- return Object.keys(obj);
+ function _indexOf(arr, item) {
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i] === item) return i;
}
+ return -1;
+ }
+
+ var _keys = Object.keys || function (obj) {
var keys = [];
for (var k in obj) {
if (obj.hasOwnProperty(k)) {
@@ -22548,191 +15778,247 @@ module.exports = JingleSession;
return keys;
};
- //// exported async module functions ////
-
- //// nextTick implementation with browser-compatible fallback ////
- if (typeof process === 'undefined' || !(process.nextTick)) {
- if (typeof setImmediate === 'function') {
- async.nextTick = function (fn) {
- // not a direct alias for IE10 compatibility
- setImmediate(fn);
+ function _keyIterator(coll) {
+ var i = -1;
+ var len;
+ var keys;
+ if (_isArrayLike(coll)) {
+ len = coll.length;
+ return function next() {
+ i++;
+ return i < len ? i : null;
};
- async.setImmediate = async.nextTick;
- }
- else {
- async.nextTick = function (fn) {
- setTimeout(fn, 0);
+ } else {
+ keys = _keys(coll);
+ len = keys.length;
+ return function next() {
+ i++;
+ return i < len ? keys[i] : null;
};
- async.setImmediate = async.nextTick;
}
}
- else {
+
+ // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
+ // This accumulates the arguments passed into an array, after a given index.
+ // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
+ function _restParam(func, startIndex) {
+ startIndex = startIndex == null ? func.length - 1 : +startIndex;
+ return function() {
+ var length = Math.max(arguments.length - startIndex, 0);
+ var rest = Array(length);
+ for (var index = 0; index < length; index++) {
+ rest[index] = arguments[index + startIndex];
+ }
+ switch (startIndex) {
+ case 0: return func.call(this, rest);
+ case 1: return func.call(this, arguments[0], rest);
+ }
+ // Currently unused but handle cases outside of the switch statement:
+ // var args = Array(startIndex + 1);
+ // for (index = 0; index < startIndex; index++) {
+ // args[index] = arguments[index];
+ // }
+ // args[startIndex] = rest;
+ // return func.apply(this, args);
+ };
+ }
+
+ function _withoutIndex(iterator) {
+ return function (value, index, callback) {
+ return iterator(value, callback);
+ };
+ }
+
+ //// exported async module functions ////
+
+ //// nextTick implementation with browser-compatible fallback ////
+
+ // capture the global reference to guard against fakeTimer mocks
+ var _setImmediate = typeof setImmediate === 'function' && setImmediate;
+
+ var _delay = _setImmediate ? function(fn) {
+ // not a direct alias for IE10 compatibility
+ _setImmediate(fn);
+ } : function(fn) {
+ setTimeout(fn, 0);
+ };
+
+ if (typeof process === 'object' && typeof process.nextTick === 'function') {
async.nextTick = process.nextTick;
- if (typeof setImmediate !== 'undefined') {
- async.setImmediate = function (fn) {
- // not a direct alias for IE10 compatibility
- setImmediate(fn);
- };
- }
- else {
- async.setImmediate = async.nextTick;
- }
+ } else {
+ async.nextTick = _delay;
}
+ async.setImmediate = _setImmediate ? _delay : async.nextTick;
+
+ async.forEach =
async.each = function (arr, iterator, callback) {
- callback = callback || function () {};
- if (!arr.length) {
- return callback();
+ return async.eachOf(arr, _withoutIndex(iterator), callback);
+ };
+
+ async.forEachSeries =
+ async.eachSeries = function (arr, iterator, callback) {
+ return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
+ };
+
+
+ async.forEachLimit =
+ async.eachLimit = function (arr, limit, iterator, callback) {
+ return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
+ };
+
+ async.forEachOf =
+ async.eachOf = function (object, iterator, callback) {
+ callback = _once(callback || noop);
+ object = object || [];
+
+ var iter = _keyIterator(object);
+ var key, completed = 0;
+
+ while ((key = iter()) != null) {
+ completed += 1;
+ iterator(object[key], key, only_once(done));
}
- var completed = 0;
- _each(arr, function (x) {
- iterator(x, only_once(done) );
- });
+
+ if (completed === 0) callback(null);
+
function done(err) {
- if (err) {
- callback(err);
- callback = function () {};
- }
- else {
- completed += 1;
- if (completed >= arr.length) {
- callback();
- }
- }
+ completed--;
+ if (err) {
+ callback(err);
+ }
+ // Check key is null in case iterator isn't exhausted
+ // and done resolved synchronously.
+ else if (key === null && completed <= 0) {
+ callback(null);
+ }
}
};
- async.forEach = async.each;
- async.eachSeries = function (arr, iterator, callback) {
- callback = callback || function () {};
- if (!arr.length) {
- return callback();
- }
- var completed = 0;
- var iterate = function () {
- iterator(arr[completed], function (err) {
+ async.forEachOfSeries =
+ async.eachOfSeries = function (obj, iterator, callback) {
+ callback = _once(callback || noop);
+ obj = obj || [];
+ var nextKey = _keyIterator(obj);
+ var key = nextKey();
+ function iterate() {
+ var sync = true;
+ if (key === null) {
+ return callback(null);
+ }
+ iterator(obj[key], key, only_once(function (err) {
if (err) {
callback(err);
- callback = function () {};
}
else {
- completed += 1;
- if (completed >= arr.length) {
- callback();
- }
- else {
- iterate();
+ key = nextKey();
+ if (key === null) {
+ return callback(null);
+ } else {
+ if (sync) {
+ async.setImmediate(iterate);
+ } else {
+ iterate();
+ }
}
}
- });
- };
+ }));
+ sync = false;
+ }
iterate();
};
- async.forEachSeries = async.eachSeries;
- async.eachLimit = function (arr, limit, iterator, callback) {
- var fn = _eachLimit(limit);
- fn.apply(null, [arr, iterator, callback]);
+
+
+ async.forEachOfLimit =
+ async.eachOfLimit = function (obj, limit, iterator, callback) {
+ _eachOfLimit(limit)(obj, iterator, callback);
};
- async.forEachLimit = async.eachLimit;
- var _eachLimit = function (limit) {
+ function _eachOfLimit(limit) {
- return function (arr, iterator, callback) {
- callback = callback || function () {};
- if (!arr.length || limit <= 0) {
- return callback();
+ return function (obj, iterator, callback) {
+ callback = _once(callback || noop);
+ obj = obj || [];
+ var nextKey = _keyIterator(obj);
+ if (limit <= 0) {
+ return callback(null);
}
- var completed = 0;
- var started = 0;
+ var done = false;
var running = 0;
+ var errored = false;
(function replenish () {
- if (completed >= arr.length) {
- return callback();
+ if (done && running <= 0) {
+ return callback(null);
}
- while (running < limit && started < arr.length) {
- started += 1;
+ while (running < limit && !errored) {
+ var key = nextKey();
+ if (key === null) {
+ done = true;
+ if (running <= 0) {
+ callback(null);
+ }
+ return;
+ }
running += 1;
- iterator(arr[started - 1], function (err) {
+ iterator(obj[key], key, only_once(function (err) {
+ running -= 1;
if (err) {
callback(err);
- callback = function () {};
+ errored = true;
}
else {
- completed += 1;
- running -= 1;
- if (completed >= arr.length) {
- callback();
- }
- else {
- replenish();
- }
+ replenish();
}
- });
+ }));
}
})();
};
- };
+ }
- var doParallel = function (fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments);
- return fn.apply(null, [async.each].concat(args));
+ function doParallel(fn) {
+ return function (obj, iterator, callback) {
+ return fn(async.eachOf, obj, iterator, callback);
};
- };
- var doParallelLimit = function(limit, fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments);
- return fn.apply(null, [_eachLimit(limit)].concat(args));
+ }
+ function doParallelLimit(fn) {
+ return function (obj, limit, iterator, callback) {
+ return fn(_eachOfLimit(limit), obj, iterator, callback);
};
- };
- var doSeries = function (fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments);
- return fn.apply(null, [async.eachSeries].concat(args));
+ }
+ function doSeries(fn) {
+ return function (obj, iterator, callback) {
+ return fn(async.eachOfSeries, obj, iterator, callback);
};
- };
-
+ }
- var _asyncMap = function (eachfn, arr, iterator, callback) {
- arr = _map(arr, function (x, i) {
- return {index: i, value: x};
- });
- if (!callback) {
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (err) {
- callback(err);
- });
- });
- } else {
- var results = [];
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (err, v) {
- results[x.index] = v;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
+ function _asyncMap(eachfn, arr, iterator, callback) {
+ callback = _once(callback || noop);
+ arr = arr || [];
+ var results = _isArrayLike(arr) ? [] : {};
+ eachfn(arr, function (value, index, callback) {
+ iterator(value, function (err, v) {
+ results[index] = v;
+ callback(err);
});
- }
- };
+ }, function (err) {
+ callback(err, results);
+ });
+ }
+
async.map = doParallel(_asyncMap);
async.mapSeries = doSeries(_asyncMap);
- async.mapLimit = function (arr, limit, iterator, callback) {
- return _mapLimit(limit)(arr, iterator, callback);
- };
-
- var _mapLimit = function(limit) {
- return doParallelLimit(limit, _asyncMap);
- };
+ async.mapLimit = doParallelLimit(_asyncMap);
// reduce only has a series version, as doing reduce in parallel won't
// work in many situations.
+ async.inject =
+ async.foldl =
async.reduce = function (arr, memo, iterator, callback) {
- async.eachSeries(arr, function (x, callback) {
+ async.eachOfSeries(arr, function (x, i, callback) {
iterator(memo, x, function (err, v) {
memo = v;
callback(err);
@@ -22741,118 +16027,106 @@ module.exports = JingleSession;
callback(err, memo);
});
};
- // inject alias
- async.inject = async.reduce;
- // foldl alias
- async.foldl = async.reduce;
+ async.foldr =
async.reduceRight = function (arr, memo, iterator, callback) {
- var reversed = _map(arr, function (x) {
- return x;
- }).reverse();
+ var reversed = _map(arr, identity).reverse();
async.reduce(reversed, memo, iterator, callback);
};
- // foldr alias
- async.foldr = async.reduceRight;
- var _filter = function (eachfn, arr, iterator, callback) {
- var results = [];
- arr = _map(arr, function (x, i) {
- return {index: i, value: x};
+ async.transform = function (arr, memo, iterator, callback) {
+ if (arguments.length === 3) {
+ callback = iterator;
+ iterator = memo;
+ memo = _isArray(arr) ? [] : {};
+ }
+
+ async.eachOf(arr, function(v, k, cb) {
+ iterator(memo, v, k, cb);
+ }, function(err) {
+ callback(err, memo);
});
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (v) {
+ };
+
+ function _filter(eachfn, arr, iterator, callback) {
+ var results = [];
+ eachfn(arr, function (x, index, callback) {
+ iterator(x, function (v) {
if (v) {
- results.push(x);
+ results.push({index: index, value: x});
}
callback();
});
- }, function (err) {
+ }, function () {
callback(_map(results.sort(function (a, b) {
return a.index - b.index;
}), function (x) {
return x.value;
}));
});
- };
+ }
+
+ async.select =
async.filter = doParallel(_filter);
+
+ async.selectLimit =
+ async.filterLimit = doParallelLimit(_filter);
+
+ async.selectSeries =
async.filterSeries = doSeries(_filter);
- // select alias
- async.select = async.filter;
- async.selectSeries = async.filterSeries;
- var _reject = function (eachfn, arr, iterator, callback) {
- var results = [];
- arr = _map(arr, function (x, i) {
- return {index: i, value: x};
- });
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (v) {
- if (!v) {
- results.push(x);
- }
- callback();
+ function _reject(eachfn, arr, iterator, callback) {
+ _filter(eachfn, arr, function(value, cb) {
+ iterator(value, function(v) {
+ cb(!v);
});
- }, function (err) {
- callback(_map(results.sort(function (a, b) {
- return a.index - b.index;
- }), function (x) {
- return x.value;
- }));
- });
- };
+ }, callback);
+ }
async.reject = doParallel(_reject);
+ async.rejectLimit = doParallelLimit(_reject);
async.rejectSeries = doSeries(_reject);
- var _detect = function (eachfn, arr, iterator, main_callback) {
- eachfn(arr, function (x, callback) {
- iterator(x, function (result) {
- if (result) {
- main_callback(x);
- main_callback = function () {};
- }
- else {
+ function _createTester(eachfn, check, getResult) {
+ return function(arr, limit, iterator, cb) {
+ function done() {
+ if (cb) cb(getResult(false, void 0));
+ }
+ function iteratee(x, _, callback) {
+ if (!cb) return callback();
+ iterator(x, function (v) {
+ if (cb && check(v)) {
+ cb(getResult(true, x));
+ cb = iterator = false;
+ }
callback();
- }
- });
- }, function (err) {
- main_callback();
- });
- };
- async.detect = doParallel(_detect);
- async.detectSeries = doSeries(_detect);
+ });
+ }
+ if (arguments.length > 3) {
+ eachfn(arr, limit, iteratee, done);
+ } else {
+ cb = iterator;
+ iterator = limit;
+ eachfn(arr, iteratee, done);
+ }
+ };
+ }
- async.some = function (arr, iterator, main_callback) {
- async.each(arr, function (x, callback) {
- iterator(x, function (v) {
- if (v) {
- main_callback(true);
- main_callback = function () {};
- }
- callback();
- });
- }, function (err) {
- main_callback(false);
- });
- };
- // any alias
- async.any = async.some;
+ async.any =
+ async.some = _createTester(async.eachOf, toBool, identity);
- async.every = function (arr, iterator, main_callback) {
- async.each(arr, function (x, callback) {
- iterator(x, function (v) {
- if (!v) {
- main_callback(false);
- main_callback = function () {};
- }
- callback();
- });
- }, function (err) {
- main_callback(true);
- });
- };
- // all alias
- async.all = async.every;
+ async.someLimit = _createTester(async.eachOfLimit, toBool, identity);
+
+ async.all =
+ async.every = _createTester(async.eachOf, notId, notId);
+
+ async.everyLimit = _createTester(async.eachOfLimit, notId, notId);
+
+ function _findGetResult(v, x) {
+ return x;
+ }
+ async.detect = _createTester(async.eachOf, identity, _findGetResult);
+ async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
+ async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);
async.sortBy = function (arr, iterator, callback) {
async.map(arr, function (x, callback) {
@@ -22869,147 +16143,206 @@ module.exports = JingleSession;
return callback(err);
}
else {
- var fn = function (left, right) {
- var a = left.criteria, b = right.criteria;
- return a < b ? -1 : a > b ? 1 : 0;
- };
- callback(null, _map(results.sort(fn), function (x) {
+ callback(null, _map(results.sort(comparator), function (x) {
return x.value;
}));
}
+
});
+
+ function comparator(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }
};
- async.auto = function (tasks, callback) {
- callback = callback || function () {};
+ async.auto = function (tasks, concurrency, callback) {
+ if (typeof arguments[1] === 'function') {
+ // concurrency is optional, shift the args.
+ callback = concurrency;
+ concurrency = null;
+ }
+ callback = _once(callback || noop);
var keys = _keys(tasks);
- var remainingTasks = keys.length
+ var remainingTasks = keys.length;
if (!remainingTasks) {
- return callback();
+ return callback(null);
+ }
+ if (!concurrency) {
+ concurrency = remainingTasks;
}
var results = {};
+ var runningTasks = 0;
+
+ var hasError = false;
var listeners = [];
- var addListener = function (fn) {
+ function addListener(fn) {
listeners.unshift(fn);
- };
- var removeListener = function (fn) {
- for (var i = 0; i < listeners.length; i += 1) {
- if (listeners[i] === fn) {
- listeners.splice(i, 1);
- return;
- }
- }
- };
- var taskComplete = function () {
- remainingTasks--
- _each(listeners.slice(0), function (fn) {
+ }
+ function removeListener(fn) {
+ var idx = _indexOf(listeners, fn);
+ if (idx >= 0) listeners.splice(idx, 1);
+ }
+ function taskComplete() {
+ remainingTasks--;
+ _arrayEach(listeners.slice(0), function (fn) {
fn();
});
- };
+ }
addListener(function () {
if (!remainingTasks) {
- var theCallback = callback;
- // prevent final callback from calling itself if it errors
- callback = function () {};
-
- theCallback(null, results);
+ callback(null, results);
}
});
- _each(keys, function (k) {
+ _arrayEach(keys, function (k) {
+ if (hasError) return;
var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
- var taskCallback = function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
+ var taskCallback = _restParam(function(err, args) {
+ runningTasks--;
if (args.length <= 1) {
args = args[0];
}
if (err) {
var safeResults = {};
- _each(_keys(results), function(rkey) {
- safeResults[rkey] = results[rkey];
+ _forEachOf(results, function(val, rkey) {
+ safeResults[rkey] = val;
});
safeResults[k] = args;
+ hasError = true;
+
callback(err, safeResults);
- // stop subsequent errors hitting callback multiple times
- callback = function () {};
}
else {
results[k] = args;
async.setImmediate(taskComplete);
}
- };
- var requires = task.slice(0, Math.abs(task.length - 1)) || [];
- var ready = function () {
- return _reduce(requires, function (a, x) {
+ });
+ var requires = task.slice(0, task.length - 1);
+ // prevent dead-locks
+ var len = requires.length;
+ var dep;
+ while (len--) {
+ if (!(dep = tasks[requires[len]])) {
+ throw new Error('Has nonexistent dependency in ' + requires.join(', '));
+ }
+ if (_isArray(dep) && _indexOf(dep, k) >= 0) {
+ throw new Error('Has cyclic dependencies');
+ }
+ }
+ function ready() {
+ return runningTasks < concurrency && _reduce(requires, function (a, x) {
return (a && results.hasOwnProperty(x));
}, true) && !results.hasOwnProperty(k);
- };
+ }
if (ready()) {
+ runningTasks++;
task[task.length - 1](taskCallback, results);
}
else {
- var listener = function () {
- if (ready()) {
- removeListener(listener);
- task[task.length - 1](taskCallback, results);
- }
- };
addListener(listener);
}
+ function listener() {
+ if (ready()) {
+ runningTasks++;
+ removeListener(listener);
+ task[task.length - 1](taskCallback, results);
+ }
+ }
});
};
+
+
async.retry = function(times, task, callback) {
var DEFAULT_TIMES = 5;
+ var DEFAULT_INTERVAL = 0;
+
var attempts = [];
- // Use defaults if times not passed
- if (typeof times === 'function') {
+
+ var opts = {
+ times: DEFAULT_TIMES,
+ interval: DEFAULT_INTERVAL
+ };
+
+ function parseTimes(acc, t){
+ if(typeof t === 'number'){
+ acc.times = parseInt(t, 10) || DEFAULT_TIMES;
+ } else if(typeof t === 'object'){
+ acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
+ acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
+ } else {
+ throw new Error('Unsupported argument type for \'times\': ' + typeof t);
+ }
+ }
+
+ var length = arguments.length;
+ if (length < 1 || length > 3) {
+ throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
+ } else if (length <= 2 && typeof times === 'function') {
callback = task;
task = times;
- times = DEFAULT_TIMES;
}
- // Make sure times is a number
- times = parseInt(times, 10) || DEFAULT_TIMES;
- var wrappedTask = function(wrappedCallback, wrappedResults) {
- var retryAttempt = function(task, finalAttempt) {
+ if (typeof times !== 'function') {
+ parseTimes(opts, times);
+ }
+ opts.callback = callback;
+ opts.task = task;
+
+ function wrappedTask(wrappedCallback, wrappedResults) {
+ function retryAttempt(task, finalAttempt) {
return function(seriesCallback) {
task(function(err, result){
seriesCallback(!err || finalAttempt, {err: err, result: result});
}, wrappedResults);
};
- };
- while (times) {
- attempts.push(retryAttempt(task, !(times-=1)));
}
+
+ function retryInterval(interval){
+ return function(seriesCallback){
+ setTimeout(function(){
+ seriesCallback(null);
+ }, interval);
+ };
+ }
+
+ while (opts.times) {
+
+ var finalAttempt = !(opts.times-=1);
+ attempts.push(retryAttempt(opts.task, finalAttempt));
+ if(!finalAttempt && opts.interval > 0){
+ attempts.push(retryInterval(opts.interval));
+ }
+ }
+
async.series(attempts, function(done, data){
data = data[data.length - 1];
- (wrappedCallback || callback)(data.err, data.result);
+ (wrappedCallback || opts.callback)(data.err, data.result);
});
}
+
// If a callback is passed, run this as a controll flow
- return callback ? wrappedTask() : wrappedTask
+ return opts.callback ? wrappedTask() : wrappedTask;
};
async.waterfall = function (tasks, callback) {
- callback = callback || function () {};
+ callback = _once(callback || noop);
if (!_isArray(tasks)) {
- var err = new Error('First argument to waterfall must be an array of functions');
- return callback(err);
+ var err = new Error('First argument to waterfall must be an array of functions');
+ return callback(err);
}
if (!tasks.length) {
return callback();
}
- var wrapIterator = function (iterator) {
- return function (err) {
+ function wrapIterator(iterator) {
+ return _restParam(function (err, args) {
if (err) {
- callback.apply(null, arguments);
- callback = function () {};
+ callback.apply(null, [err].concat(args));
}
else {
- var args = Array.prototype.slice.call(arguments, 1);
var next = iterator.next();
if (next) {
args.push(wrapIterator(next));
@@ -23017,260 +16350,254 @@ module.exports = JingleSession;
else {
args.push(callback);
}
- async.setImmediate(function () {
- iterator.apply(null, args);
- });
+ ensureAsync(iterator).apply(null, args);
}
- };
- };
+ });
+ }
wrapIterator(async.iterator(tasks))();
};
- var _parallel = function(eachfn, tasks, callback) {
- callback = callback || function () {};
- if (_isArray(tasks)) {
- eachfn.map(tasks, function (fn, callback) {
- if (fn) {
- fn(function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- callback.call(null, err, args);
- });
+ function _parallel(eachfn, tasks, callback) {
+ callback = callback || noop;
+ var results = _isArrayLike(tasks) ? [] : {};
+
+ eachfn(tasks, function (task, key, callback) {
+ task(_restParam(function (err, args) {
+ if (args.length <= 1) {
+ args = args[0];
}
- }, callback);
- }
- else {
- var results = {};
- eachfn.each(_keys(tasks), function (k, callback) {
- tasks[k](function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- results[k] = args;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
- };
+ results[key] = args;
+ callback(err);
+ }));
+ }, function (err) {
+ callback(err, results);
+ });
+ }
async.parallel = function (tasks, callback) {
- _parallel({ map: async.map, each: async.each }, tasks, callback);
+ _parallel(async.eachOf, tasks, callback);
};
async.parallelLimit = function(tasks, limit, callback) {
- _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback);
- };
-
- async.series = function (tasks, callback) {
- callback = callback || function () {};
- if (_isArray(tasks)) {
- async.mapSeries(tasks, function (fn, callback) {
- if (fn) {
- fn(function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- callback.call(null, err, args);
- });
- }
- }, callback);
- }
- else {
- var results = {};
- async.eachSeries(_keys(tasks), function (k, callback) {
- tasks[k](function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- results[k] = args;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
+ _parallel(_eachOfLimit(limit), tasks, callback);
+ };
+
+ async.series = function(tasks, callback) {
+ _parallel(async.eachOfSeries, tasks, callback);
};
async.iterator = function (tasks) {
- var makeCallback = function (index) {
- var fn = function () {
+ function makeCallback(index) {
+ function fn() {
if (tasks.length) {
tasks[index].apply(null, arguments);
}
return fn.next();
- };
+ }
fn.next = function () {
return (index < tasks.length - 1) ? makeCallback(index + 1): null;
};
return fn;
- };
+ }
return makeCallback(0);
};
- async.apply = function (fn) {
- var args = Array.prototype.slice.call(arguments, 1);
- return function () {
+ async.apply = _restParam(function (fn, args) {
+ return _restParam(function (callArgs) {
return fn.apply(
- null, args.concat(Array.prototype.slice.call(arguments))
+ null, args.concat(callArgs)
);
- };
- };
+ });
+ });
- var _concat = function (eachfn, arr, fn, callback) {
- var r = [];
- eachfn(arr, function (x, cb) {
+ function _concat(eachfn, arr, fn, callback) {
+ var result = [];
+ eachfn(arr, function (x, index, cb) {
fn(x, function (err, y) {
- r = r.concat(y || []);
+ result = result.concat(y || []);
cb(err);
});
}, function (err) {
- callback(err, r);
+ callback(err, result);
});
- };
+ }
async.concat = doParallel(_concat);
async.concatSeries = doSeries(_concat);
async.whilst = function (test, iterator, callback) {
+ callback = callback || noop;
if (test()) {
- iterator(function (err) {
+ var next = _restParam(function(err, args) {
if (err) {
- return callback(err);
+ callback(err);
+ } else if (test.apply(this, args)) {
+ iterator(next);
+ } else {
+ callback.apply(null, [null].concat(args));
}
- async.whilst(test, iterator, callback);
});
- }
- else {
- callback();
+ iterator(next);
+ } else {
+ callback(null);
}
};
async.doWhilst = function (iterator, test, callback) {
- iterator(function (err) {
- if (err) {
- return callback(err);
- }
- var args = Array.prototype.slice.call(arguments, 1);
- if (test.apply(null, args)) {
- async.doWhilst(iterator, test, callback);
- }
- else {
- callback();
- }
- });
+ var calls = 0;
+ return async.whilst(function() {
+ return ++calls <= 1 || test.apply(this, arguments);
+ }, iterator, callback);
};
async.until = function (test, iterator, callback) {
- if (!test()) {
- iterator(function (err) {
- if (err) {
- return callback(err);
- }
- async.until(test, iterator, callback);
- });
- }
- else {
- callback();
- }
+ return async.whilst(function() {
+ return !test.apply(this, arguments);
+ }, iterator, callback);
};
async.doUntil = function (iterator, test, callback) {
- iterator(function (err) {
+ return async.doWhilst(iterator, function() {
+ return !test.apply(this, arguments);
+ }, callback);
+ };
+
+ async.during = function (test, iterator, callback) {
+ callback = callback || noop;
+
+ var next = _restParam(function(err, args) {
if (err) {
- return callback(err);
+ callback(err);
+ } else {
+ args.push(check);
+ test.apply(this, args);
}
- var args = Array.prototype.slice.call(arguments, 1);
- if (!test.apply(null, args)) {
- async.doUntil(iterator, test, callback);
+ });
+
+ var check = function(err, truth) {
+ if (err) {
+ callback(err);
+ } else if (truth) {
+ iterator(next);
+ } else {
+ callback(null);
}
- else {
- callback();
+ };
+
+ test(check);
+ };
+
+ async.doDuring = function (iterator, test, callback) {
+ var calls = 0;
+ async.during(function(next) {
+ if (calls++ < 1) {
+ next(null, true);
+ } else {
+ test.apply(this, arguments);
}
- });
+ }, iterator, callback);
};
- async.queue = function (worker, concurrency) {
- if (concurrency === undefined) {
+ function _queue(worker, concurrency, payload) {
+ if (concurrency == null) {
concurrency = 1;
}
+ else if(concurrency === 0) {
+ throw new Error('Concurrency must not be zero');
+ }
function _insert(q, data, pos, callback) {
- if (!q.started){
+ if (callback != null && typeof callback !== "function") {
+ throw new Error("task callback must be a function");
+ }
q.started = true;
- }
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length == 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- if (q.drain) {
- q.drain();
- }
- });
- }
- _each(data, function(task) {
- var item = {
- data: task,
- callback: typeof callback === 'function' ? callback : null
- };
+ if (!_isArray(data)) {
+ data = [data];
+ }
+ if(data.length === 0 && q.idle()) {
+ // call drain immediately if there are no tasks
+ return async.setImmediate(function() {
+ q.drain();
+ });
+ }
+ _arrayEach(data, function(task) {
+ var item = {
+ data: task,
+ callback: callback || noop
+ };
- if (pos) {
- q.tasks.unshift(item);
- } else {
- q.tasks.push(item);
- }
+ if (pos) {
+ q.tasks.unshift(item);
+ } else {
+ q.tasks.push(item);
+ }
- if (q.saturated && q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
+ if (q.tasks.length === q.concurrency) {
+ q.saturated();
+ }
+ });
+ async.setImmediate(q.process);
+ }
+ function _next(q, tasks) {
+ return function(){
+ workers -= 1;
+
+ var removed = false;
+ var args = arguments;
+ _arrayEach(tasks, function (task) {
+ _arrayEach(workersList, function (worker, index) {
+ if (worker === task && !removed) {
+ workersList.splice(index, 1);
+ removed = true;
+ }
+ });
+
+ task.callback.apply(task, args);
+ });
+ if (q.tasks.length + workers === 0) {
+ q.drain();
+ }
+ q.process();
+ };
}
var workers = 0;
+ var workersList = [];
var q = {
tasks: [],
concurrency: concurrency,
- saturated: null,
- empty: null,
- drain: null,
+ payload: payload,
+ saturated: noop,
+ empty: noop,
+ drain: noop,
started: false,
paused: false,
push: function (data, callback) {
- _insert(q, data, false, callback);
+ _insert(q, data, false, callback);
},
kill: function () {
- q.drain = null;
- q.tasks = [];
+ q.drain = noop;
+ q.tasks = [];
},
unshift: function (data, callback) {
- _insert(q, data, true, callback);
+ _insert(q, data, true, callback);
},
process: function () {
- if (!q.paused && workers < q.concurrency && q.tasks.length) {
- var task = q.tasks.shift();
- if (q.empty && q.tasks.length === 0) {
+ while(!q.paused && workers < q.concurrency && q.tasks.length){
+
+ var tasks = q.payload ?
+ q.tasks.splice(0, q.payload) :
+ q.tasks.splice(0, q.tasks.length);
+
+ var data = _map(tasks, function (task) {
+ return task.data;
+ });
+
+ if (q.tasks.length === 0) {
q.empty();
}
workers += 1;
- var next = function () {
- workers -= 1;
- if (task.callback) {
- task.callback.apply(task, arguments);
- }
- if (q.drain && q.tasks.length + workers === 0) {
- q.drain();
- }
- q.process();
- };
- var cb = only_once(next);
- worker(task.data, cb);
+ workersList.push(tasks[0]);
+ var cb = only_once(_next(q, tasks));
+ worker(data, cb);
}
},
length: function () {
@@ -23279,75 +16606,85 @@ module.exports = JingleSession;
running: function () {
return workers;
},
+ workersList: function () {
+ return workersList;
+ },
idle: function() {
return q.tasks.length + workers === 0;
},
pause: function () {
- if (q.paused === true) { return; }
q.paused = true;
},
resume: function () {
if (q.paused === false) { return; }
q.paused = false;
+ var resumeCount = Math.min(q.concurrency, q.tasks.length);
// Need to call q.process once per concurrent
// worker to preserve full concurrency after pause
- for (var w = 1; w <= q.concurrency; w++) {
+ for (var w = 1; w <= resumeCount; w++) {
async.setImmediate(q.process);
}
}
};
return q;
+ }
+
+ async.queue = function (worker, concurrency) {
+ var q = _queue(function (items, cb) {
+ worker(items[0], cb);
+ }, concurrency, 1);
+
+ return q;
};
async.priorityQueue = function (worker, concurrency) {
function _compareTasks(a, b){
- return a.priority - b.priority;
- };
+ return a.priority - b.priority;
+ }
function _binarySearch(sequence, item, compare) {
- var beg = -1,
- end = sequence.length - 1;
- while (beg < end) {
- var mid = beg + ((end - beg + 1) >>> 1);
- if (compare(item, sequence[mid]) >= 0) {
- beg = mid;
- } else {
- end = mid - 1;
+ var beg = -1,
+ end = sequence.length - 1;
+ while (beg < end) {
+ var mid = beg + ((end - beg + 1) >>> 1);
+ if (compare(item, sequence[mid]) >= 0) {
+ beg = mid;
+ } else {
+ end = mid - 1;
+ }
}
- }
- return beg;
+ return beg;
}
function _insert(q, data, priority, callback) {
- if (!q.started){
+ if (callback != null && typeof callback !== "function") {
+ throw new Error("task callback must be a function");
+ }
q.started = true;
- }
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length == 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- if (q.drain) {
- q.drain();
- }
- });
- }
- _each(data, function(task) {
- var item = {
- data: task,
- priority: priority,
- callback: typeof callback === 'function' ? callback : null
- };
+ if (!_isArray(data)) {
+ data = [data];
+ }
+ if(data.length === 0) {
+ // call drain immediately if there are no tasks
+ return async.setImmediate(function() {
+ q.drain();
+ });
+ }
+ _arrayEach(data, function(task) {
+ var item = {
+ data: task,
+ priority: priority,
+ callback: typeof callback === 'function' ? callback : noop
+ };
- q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
+ q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
- if (q.saturated && q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
+ if (q.tasks.length === q.concurrency) {
+ q.saturated();
+ }
+ async.setImmediate(q.process);
+ });
}
// Start with a normal queue
@@ -23355,7 +16692,7 @@ module.exports = JingleSession;
// Override push to accept second parameter representing priority
q.push = function (data, priority, callback) {
- _insert(q, data, priority, callback);
+ _insert(q, data, priority, callback);
};
// Remove unshift function
@@ -23365,93 +16702,27 @@ module.exports = JingleSession;
};
async.cargo = function (worker, payload) {
- var working = false,
- tasks = [];
-
- var cargo = {
- tasks: tasks,
- payload: payload,
- saturated: null,
- empty: null,
- drain: null,
- drained: true,
- push: function (data, callback) {
- if (!_isArray(data)) {
- data = [data];
- }
- _each(data, function(task) {
- tasks.push({
- data: task,
- callback: typeof callback === 'function' ? callback : null
- });
- cargo.drained = false;
- if (cargo.saturated && tasks.length === payload) {
- cargo.saturated();
- }
- });
- async.setImmediate(cargo.process);
- },
- process: function process() {
- if (working) return;
- if (tasks.length === 0) {
- if(cargo.drain && !cargo.drained) cargo.drain();
- cargo.drained = true;
- return;
- }
-
- var ts = typeof payload === 'number'
- ? tasks.splice(0, payload)
- : tasks.splice(0, tasks.length);
-
- var ds = _map(ts, function (task) {
- return task.data;
- });
-
- if(cargo.empty) cargo.empty();
- working = true;
- worker(ds, function () {
- working = false;
-
- var args = arguments;
- _each(ts, function (data) {
- if (data.callback) {
- data.callback.apply(null, args);
- }
- });
-
- process();
- });
- },
- length: function () {
- return tasks.length;
- },
- running: function () {
- return working;
- }
- };
- return cargo;
+ return _queue(worker, 1, payload);
};
- var _console_fn = function (name) {
- return function (fn) {
- var args = Array.prototype.slice.call(arguments, 1);
- fn.apply(null, args.concat([function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (typeof console !== 'undefined') {
+ function _console_fn(name) {
+ return _restParam(function (fn, args) {
+ fn.apply(null, args.concat([_restParam(function (err, args) {
+ if (typeof console === 'object') {
if (err) {
if (console.error) {
console.error(err);
}
}
else if (console[name]) {
- _each(args, function (x) {
+ _arrayEach(args, function (x) {
console[name](x);
});
}
}
- }]));
- };
- };
+ })]));
+ });
+ }
async.log = _console_fn('log');
async.dir = _console_fn('dir');
/*async.info = _console_fn('info');
@@ -23461,123 +16732,174 @@ module.exports = JingleSession;
async.memoize = function (fn, hasher) {
var memo = {};
var queues = {};
- hasher = hasher || function (x) {
- return x;
- };
- var memoized = function () {
- var args = Array.prototype.slice.call(arguments);
+ var has = Object.prototype.hasOwnProperty;
+ hasher = hasher || identity;
+ var memoized = _restParam(function memoized(args) {
var callback = args.pop();
var key = hasher.apply(null, args);
- if (key in memo) {
- async.nextTick(function () {
+ if (has.call(memo, key)) {
+ async.setImmediate(function () {
callback.apply(null, memo[key]);
});
}
- else if (key in queues) {
+ else if (has.call(queues, key)) {
queues[key].push(callback);
}
else {
queues[key] = [callback];
- fn.apply(null, args.concat([function () {
- memo[key] = arguments;
+ fn.apply(null, args.concat([_restParam(function (args) {
+ memo[key] = args;
var q = queues[key];
delete queues[key];
for (var i = 0, l = q.length; i < l; i++) {
- q[i].apply(null, arguments);
+ q[i].apply(null, args);
}
- }]));
+ })]));
}
- };
+ });
memoized.memo = memo;
memoized.unmemoized = fn;
return memoized;
};
async.unmemoize = function (fn) {
- return function () {
- return (fn.unmemoized || fn).apply(null, arguments);
- };
+ return function () {
+ return (fn.unmemoized || fn).apply(null, arguments);
+ };
};
- async.times = function (count, iterator, callback) {
- var counter = [];
- for (var i = 0; i < count; i++) {
- counter.push(i);
- }
- return async.map(counter, iterator, callback);
- };
+ function _times(mapper) {
+ return function (count, iterator, callback) {
+ mapper(_range(count), iterator, callback);
+ };
+ }
- async.timesSeries = function (count, iterator, callback) {
- var counter = [];
- for (var i = 0; i < count; i++) {
- counter.push(i);
- }
- return async.mapSeries(counter, iterator, callback);
+ async.times = _times(async.map);
+ async.timesSeries = _times(async.mapSeries);
+ async.timesLimit = function (count, limit, iterator, callback) {
+ return async.mapLimit(_range(count), limit, iterator, callback);
};
async.seq = function (/* functions... */) {
var fns = arguments;
- return function () {
+ return _restParam(function (args) {
var that = this;
- var args = Array.prototype.slice.call(arguments);
- var callback = args.pop();
+
+ var callback = args[args.length - 1];
+ if (typeof callback == 'function') {
+ args.pop();
+ } else {
+ callback = noop;
+ }
+
async.reduce(fns, args, function (newargs, fn, cb) {
- fn.apply(that, newargs.concat([function () {
- var err = arguments[0];
- var nextargs = Array.prototype.slice.call(arguments, 1);
+ fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
cb(err, nextargs);
- }]))
+ })]));
},
function (err, results) {
callback.apply(that, [err].concat(results));
});
- };
+ });
};
async.compose = function (/* functions... */) {
- return async.seq.apply(null, Array.prototype.reverse.call(arguments));
+ return async.seq.apply(null, Array.prototype.reverse.call(arguments));
};
- var _applyEach = function (eachfn, fns /*args...*/) {
- var go = function () {
- var that = this;
- var args = Array.prototype.slice.call(arguments);
- var callback = args.pop();
- return eachfn(fns, function (fn, cb) {
- fn.apply(that, args.concat([cb]));
- },
- callback);
- };
- if (arguments.length > 2) {
- var args = Array.prototype.slice.call(arguments, 2);
- return go.apply(this, args);
- }
- else {
- return go;
- }
- };
- async.applyEach = doParallel(_applyEach);
- async.applyEachSeries = doSeries(_applyEach);
+
+ function _applyEach(eachfn) {
+ return _restParam(function(fns, args) {
+ var go = _restParam(function(args) {
+ var that = this;
+ var callback = args.pop();
+ return eachfn(fns, function (fn, _, cb) {
+ fn.apply(that, args.concat([cb]));
+ },
+ callback);
+ });
+ if (args.length) {
+ return go.apply(this, args);
+ }
+ else {
+ return go;
+ }
+ });
+ }
+
+ async.applyEach = _applyEach(async.eachOf);
+ async.applyEachSeries = _applyEach(async.eachOfSeries);
+
async.forever = function (fn, callback) {
+ var done = only_once(callback || noop);
+ var task = ensureAsync(fn);
function next(err) {
if (err) {
- if (callback) {
- return callback(err);
- }
- throw err;
+ return done(err);
}
- fn(next);
+ task(next);
}
next();
};
+ function ensureAsync(fn) {
+ return _restParam(function (args) {
+ var callback = args.pop();
+ args.push(function () {
+ var innerArgs = arguments;
+ if (sync) {
+ async.setImmediate(function () {
+ callback.apply(null, innerArgs);
+ });
+ } else {
+ callback.apply(null, innerArgs);
+ }
+ });
+ var sync = true;
+ fn.apply(this, args);
+ sync = false;
+ });
+ }
+
+ async.ensureAsync = ensureAsync;
+
+ async.constant = _restParam(function(values) {
+ var args = [null].concat(values);
+ return function (callback) {
+ return callback.apply(this, args);
+ };
+ });
+
+ async.wrapSync =
+ async.asyncify = function asyncify(func) {
+ return _restParam(function (args) {
+ var callback = args.pop();
+ var result;
+ try {
+ result = func.apply(this, args);
+ } catch (e) {
+ return callback(e);
+ }
+ // if result is Promise object
+ if (_isObject(result) && typeof result.then === "function") {
+ result.then(function(value) {
+ callback(null, value);
+ })["catch"](function(err) {
+ callback(err.message ? err : new Error(err));
+ });
+ } else {
+ callback(null, result);
+ }
+ });
+ };
+
// Node.js
- if (typeof module !== 'undefined' && module.exports) {
+ if (typeof module === 'object' && module.exports) {
module.exports = async;
}
// AMD / RequireJS
- else if (typeof define !== 'undefined' && define.amd) {
+ else if (typeof define === 'function' && define.amd) {
define([], function () {
return async;
});
@@ -23589,284 +16911,422 @@ module.exports = JingleSession;
}());
-}).call(this,require('_process'))
-},{"_process":10}],120:[function(require,module,exports){
-(function (global){
+}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"_process":153}],53:[function(require,module,exports){
+var util = require('util');
+var intersect = require('intersect');
+var WildEmitter = require('wildemitter');
+var webrtc = require('webrtcsupport');
-var rng;
+var BaseSession = require('jingle-session');
+var MediaSession = require('jingle-media-session');
+var FileSession = require('jingle-filetransfer-session');
-if (global.crypto && crypto.getRandomValues) {
- // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
- // Moderately fast, high quality
- var _rnds8 = new Uint8Array(16);
- rng = function whatwgRNG() {
- crypto.getRandomValues(_rnds8);
- return _rnds8;
- };
-}
-if (!rng) {
- // Math.random()-based (RNG)
- //
- // If all else fails, use Math.random(). It's fast, but is of unspecified
- // quality.
- var _rnds = new Array(16);
- rng = function() {
- for (var i = 0, r; i < 16; i++) {
- if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
- _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
- }
+function SessionManager(conf) {
+ WildEmitter.call(this);
- return _rnds;
- };
-}
+ conf = conf || {};
-module.exports = rng;
+ this.jid = conf.jid;
+ this.selfID = conf.selfID || (this.jid && this.jid.full) || this.jid || '';
+ this.sessions = {};
+ this.peers = {};
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],121:[function(require,module,exports){
-// uuid.js
-//
-// Copyright (c) 2010-2012 Robert Kieffer
-// MIT License - http://opensource.org/licenses/mit-license.php
+ this.prepareSession = conf.prepareSession || function (opts) {
+ if (opts.applicationTypes.indexOf('rtp') >= 0) {
+ return new MediaSession(opts);
+ }
+ if (opts.applicationTypes.indexOf('filetransfer') >= 0) {
+ return new FileSession(opts);
+ }
+ };
-// Unique ID creation requires a high quality random # generator. We feature
-// detect to determine the best RNG source, normalizing to a function that
-// returns 128-bits of randomness, since that's what's usually required
-var _rng = require('./rng');
+ this.performTieBreak = conf.performTieBreak || function (sess, req) {
+ var applicationTypes= req.jingle.contents.map(function (content) {
+ if (content.application) {
+ return content.application.applicationType;
+ }
+ });
-// Maps for number <-> hex string conversion
-var _byteToHex = [];
-var _hexToByte = {};
-for (var i = 0; i < 256; i++) {
- _byteToHex[i] = (i + 0x100).toString(16).substr(1);
- _hexToByte[_byteToHex[i]] = i;
-}
+ var matching = intersect(sess.pendingApplicationTypes, applicationTypes);
-// **`parse()` - Parse a UUID into it's component bytes**
-function parse(s, buf, offset) {
- var i = (buf && offset) || 0, ii = 0;
+ return matching.length > 0;
+ };
- buf = buf || [];
- s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
- if (ii < 16) { // Don't overflow!
- buf[i + ii++] = _hexToByte[oct];
+ this.screenSharingSupport = webrtc.screenSharing;
+
+ this.capabilities = [
+ 'urn:xmpp:jingle:1'
+ ];
+ if (webrtc.support) {
+ this.capabilities = [
+ 'urn:xmpp:jingle:1',
+ 'urn:xmpp:jingle:apps:rtp:1',
+ 'urn:xmpp:jingle:apps:rtp:audio',
+ 'urn:xmpp:jingle:apps:rtp:video',
+ 'urn:xmpp:jingle:apps:rtp:rtcb-fb:0',
+ 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
+ 'urn:xmpp:jingle:apps:rtp:ssma:0',
+ 'urn:xmpp:jingle:apps:dtls:0',
+ 'urn:xmpp:jingle:apps:grouping:0',
+ 'urn:xmpp:jingle:apps:file-transfer:3',
+ 'urn:xmpp:jingle:transports:ice-udp:1',
+ 'urn:xmpp:jingle:transports.dtls-sctp:1',
+ 'urn:ietf:rfc:3264',
+ 'urn:ietf:rfc:5576',
+ 'urn:ietf:rfc:5888'
+ ];
}
- });
- // Zero out remaining bytes if string was short
- while (ii < 16) {
- buf[i + ii++] = 0;
- }
+ this.config = {
+ debug: false,
+ peerConnectionConfig: {
+ iceServers: conf.iceServers || [{'url': 'stun:stun.l.google.com:19302'}]
+ },
+ peerConnectionConstraints: {
+ optional: [
+ {DtlsSrtpKeyAgreement: true},
+ {RtpDataChannels: false}
+ ]
+ },
+ media: {
+ audio: true,
+ video: true
+ }
+ };
- return buf;
-}
+ for (var item in conf) {
+ this.config[item] = conf[item];
+ }
-// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
-function unparse(buf, offset) {
- var i = offset || 0, bth = _byteToHex;
- return bth[buf[i++]] + bth[buf[i++]] +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] +
- bth[buf[i++]] + bth[buf[i++]] +
- bth[buf[i++]] + bth[buf[i++]];
+ this.iceServers = this.config.peerConnectionConfig.iceServers;
}
-// **`v1()` - Generate time-based UUID**
-//
-// Inspired by https://github.com/LiosK/UUID.js
-// and http://docs.python.org/library/uuid.html
-// random #'s we need to init node and clockseq
-var _seedBytes = _rng();
+util.inherits(SessionManager, WildEmitter);
-// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
-var _nodeId = [
- _seedBytes[0] | 0x01,
- _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
-];
-// Per 4.2.2, randomize (14 bit) clockseq
-var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
+SessionManager.prototype.addICEServer = function (server) {
+ // server == {
+ // url: '',
+ // [username: '',]
+ // [credential: '']
+ // }
+ if (typeof server === 'string') {
+ server = {url: server};
+ }
+ this.iceServers.push(server);
+};
-// Previous uuid creation time
-var _lastMSecs = 0, _lastNSecs = 0;
+SessionManager.prototype.addSession = function (session) {
+ var self = this;
-// See https://github.com/broofa/node-uuid for API details
-function v1(options, buf, offset) {
- var i = buf && offset || 0;
- var b = buf || [];
+ var sid = session.sid;
+ var peer = session.peerID;
- options = options || {};
+ this.sessions[sid] = session;
+ if (!this.peers[peer]) {
+ this.peers[peer] = [];
+ }
- var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+ this.peers[peer].push(session);
- // UUID timestamps are 100 nano-second units since the Gregorian epoch,
- // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
- // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
- // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
- var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
+ // Automatically clean up tracked sessions
+ session.on('terminated', function () {
+ var peers = self.peers[peer] || [];
+ if (peers.length) {
+ peers.splice(peers.indexOf(session), 1);
+ }
+ delete self.sessions[sid];
+ });
- // Per 4.2.1.2, use count of uuid's generated during the current clock
- // cycle to simulate higher resolution clock
- var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
+ // Proxy session events
+ session.on('*', function (name, data, extraData, extraData2) {
+ // Listen for when we actually try to start a session to
+ // trigger the outgoing event.
+ if (name === 'send') {
+ var action = data.jingle && data.jingle.action;
+ if (session.isInitiator && action === 'session-initiate') {
+ self.emit('outgoing', session);
+ }
+ }
- // Time since last uuid creation (in msecs)
- var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
+ if (self.config.debug && (name === 'log:debug' || name === 'log:error')) {
+ console.log('Jingle:', data, extraData, extraData2);
+ }
- // Per 4.2.1.2, Bump clockseq on clock regression
- if (dt < 0 && options.clockseq === undefined) {
- clockseq = clockseq + 1 & 0x3fff;
- }
+ // Don't proxy change:* events, since those don't apply to
+ // the session manager itself.
+ if (name.indexOf('change') === 0) {
+ return;
+ }
- // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
- // time interval
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
- nsecs = 0;
- }
+ self.emit(name, data, extraData, extraData2);
+ });
- // Per 4.2.1.2 Throw error if too many uuids are requested
- if (nsecs >= 10000) {
- throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
- }
+ this.emit('createdSession', session);
- _lastMSecs = msecs;
- _lastNSecs = nsecs;
- _clockseq = clockseq;
+ return session;
+};
- // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
- msecs += 12219292800000;
+SessionManager.prototype.createMediaSession = function (peer, sid, stream) {
+ var session = new MediaSession({
+ sid: sid,
+ peer: peer,
+ initiator: true,
+ stream: stream,
+ parent: this,
+ iceServers: this.iceServers,
+ constraints: this.config.peerConnectionConstraints
+ });
- // `time_low`
- var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
- b[i++] = tl >>> 24 & 0xff;
- b[i++] = tl >>> 16 & 0xff;
- b[i++] = tl >>> 8 & 0xff;
- b[i++] = tl & 0xff;
+ this.addSession(session);
- // `time_mid`
- var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
- b[i++] = tmh >>> 8 & 0xff;
- b[i++] = tmh & 0xff;
+ return session;
+};
- // `time_high_and_version`
- b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
- b[i++] = tmh >>> 16 & 0xff;
+SessionManager.prototype.createFileTransferSession = function (peer, sid) {
+ var session = new FileSession({
+ sid: sid,
+ peer: peer,
+ initiator: true,
+ parent: this
+ });
- // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
- b[i++] = clockseq >>> 8 | 0x80;
+ this.addSession(session);
- // `clock_seq_low`
- b[i++] = clockseq & 0xff;
+ return session;
+};
- // `node`
- var node = options.node || _nodeId;
- for (var n = 0; n < 6; n++) {
- b[i + n] = node[n];
- }
+SessionManager.prototype.endPeerSessions = function (peer, reason, silent) {
+ peer = peer.full || peer;
- return buf ? buf : unparse(b);
-}
+ var sessions = this.peers[peer] || [];
+ delete this.peers[peer];
-// **`v4()` - Generate random UUID**
+ sessions.forEach(function (session) {
+ session.end(reason || 'gone', silent);
+ });
+};
-// See https://github.com/broofa/node-uuid for API details
-function v4(options, buf, offset) {
- // Deprecated - 'format' argument, as supported in v1.2
- var i = buf && offset || 0;
+SessionManager.prototype.endAllSessions = function (reason, silent) {
+ var self = this;
+ Object.keys(this.peers).forEach(function (peer) {
+ self.endPeerSessions(peer, reason, silent);
+ });
+};
- if (typeof(options) == 'string') {
- buf = options == 'binary' ? new Array(16) : null;
- options = null;
- }
- options = options || {};
+SessionManager.prototype._createIncomingSession = function (meta, req) {
+ var session;
- var rnds = options.random || (options.rng || _rng)();
+ if (this.prepareSession) {
+ session = this.prepareSession(meta, req);
+ }
- // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
+ // Fallback to a generic session type, which can
+ // only be used to end the session.
- // Copy bytes to buffer, if provided
- if (buf) {
- for (var ii = 0; ii < 16; ii++) {
- buf[i + ii] = rnds[ii];
+ if (!session) {
+ session = new BaseSession(meta);
}
- }
- return buf || unparse(rnds);
-}
+ this.addSession(session);
-// Export public API
-var uuid = v4;
-uuid.v1 = v1;
-uuid.v4 = v4;
-uuid.parse = parse;
-uuid.unparse = unparse;
+ return session;
+};
-module.exports = uuid;
+SessionManager.prototype._sendError = function (to, id, data) {
+ if (!data.type) {
+ data.type = 'cancel';
+ }
+ this.emit('send', {
+ to: to,
+ id: id,
+ type: 'error',
+ error: data
+ });
+};
-},{"./rng":120}],122:[function(require,module,exports){
-arguments[4][53][0].apply(exports,arguments)
-},{"dup":53}],123:[function(require,module,exports){
-// created by @HenrikJoreteg
-var prefix;
-var version;
+SessionManager.prototype._log = function (level, message) {
+ this.emit('log:' + level, message);
+};
-if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) {
- prefix = 'moz';
- version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
-} else if (window.webkitRTCPeerConnection || navigator.webkitGetUserMedia) {
- prefix = 'webkit';
- version = navigator.userAgent.match(/Chrom(e|ium)/) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10);
-}
+SessionManager.prototype.process = function (req) {
+ var self = this;
-var PC = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
-var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
-var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
-var MediaStream = window.webkitMediaStream || window.MediaStream;
-var screenSharing = window.location.protocol === 'https:' &&
- ((prefix === 'webkit' && version >= 26) ||
- (prefix === 'moz' && version >= 33))
-var AudioContext = window.AudioContext || window.webkitAudioContext;
-var videoEl = document.createElement('video');
-var supportVp8 = videoEl && videoEl.canPlayType && videoEl.canPlayType('video/webm; codecs="vp8", vorbis') === "probably";
-var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia || navigator.mozGetUserMedia;
+ // Extract the request metadata that we need to verify
+ var sid = !!req.jingle ? req.jingle.sid : null;
+ var session = this.sessions[sid] || null;
+ var rid = req.id;
+ var sender = req.from.full || req.from;
-// export support flags and constructors.prototype && PC
-module.exports = {
- prefix: prefix,
- browserVersion: version,
- support: !!PC && supportVp8 && !!getUserMedia,
- // new support style
- supportRTCPeerConnection: !!PC,
- supportVp8: supportVp8,
- supportGetUserMedia: !!getUserMedia,
- supportDataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
- supportWebAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
- supportMediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
- supportScreenSharing: !!screenSharing,
- // old deprecated style. Dont use this anymore
- dataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
- webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
- mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
- screenSharing: !!screenSharing,
- // constructors
- AudioContext: AudioContext,
- PeerConnection: PC,
- SessionDescription: SessionDescription,
- IceCandidate: IceCandidate,
- MediaStream: MediaStream,
- getUserMedia: getUserMedia
+
+ if (req.type === 'error') {
+ var isTieBreak = req.error && req.error.jingleCondition === 'tie-break';
+ if (session && session.pending && isTieBreak) {
+ return session.end('alternative-session', true);
+ } else {
+ if (session) {
+ session.pendingAction = false;
+ }
+ return this.emit('error', req);
+ }
+ }
+
+ if (req.type === 'result') {
+ if (session) {
+ session.pendingAction = false;
+ }
+ return;
+ }
+
+ var action = req.jingle.action;
+ var contents = req.jingle.contents || [];
+
+ var applicationTypes = contents.map(function (content) {
+ if (content.application) {
+ return content.application.applicationType;
+ }
+ });
+ var transportTypes = contents.map(function (content) {
+ if (content.transport) {
+ return content.transport.transportType;
+ }
+ });
+
+
+ // Now verify that we are allowed to actually process the
+ // requested action
+
+ if (action !== 'session-initiate') {
+ // Can't modify a session that we don't have.
+ if (!session) {
+ this._log('error', 'Unknown session', sid);
+ return this._sendError(sender, rid, {
+ condition: 'item-not-found',
+ jingleCondition: 'unknown-session'
+ });
+ }
+
+ // Check if someone is trying to hijack a session.
+ if (session.peerID !== sender || session.ended) {
+ this._log('error', 'Session has ended, or action has wrong sender');
+ return this._sendError(sender, rid, {
+ condition: 'item-not-found',
+ jingleCondition: 'unknown-session'
+ });
+ }
+
+ // Can't accept a session twice
+ if (action === 'session-accept' && !session.pending) {
+ this._log('error', 'Tried to accept session twice', sid);
+ return this._sendError(sender, rid, {
+ condition: 'unexpected-request',
+ jingleCondition: 'out-of-order'
+ });
+ }
+
+ // Can't process two requests at once, need to tie break
+ if (action !== 'session-terminate' && action === session.pendingAction) {
+ this._log('error', 'Tie break during pending request');
+ if (session.isInitiator) {
+ return this._sendError(sender, rid, {
+ condition: 'conflict',
+ jingleCondition: 'tie-break'
+ });
+ }
+ }
+ } else if (session) {
+ // Don't accept a new session if we already have one.
+ if (session.peerID !== sender) {
+ this._log('error', 'Duplicate sid from new sender');
+ return this._sendError(sender, rid, {
+ condition: 'service-unavailable'
+ });
+ }
+
+ // Check if we need to have a tie breaker because both parties
+ // happened to pick the same random sid.
+ if (session.pending) {
+ if (this.selfID > session.peerID && this.performTieBreak(session, req)) {
+ this._log('error', 'Tie break new session because of duplicate sids');
+ return this._sendError(sender, rid, {
+ condition: 'conflict',
+ jingleCondition: 'tie-break'
+ });
+ }
+ } else {
+ // The other side is just doing it wrong.
+ this._log('error', 'Someone is doing this wrong');
+ return this._sendError(sender, rid, {
+ condition: 'unexpected-request',
+ jingleCondition: 'out-of-order'
+ });
+ }
+ } else if (this.peers[sender] && this.peers[sender].length) {
+ // Check if we need to have a tie breaker because we already have
+ // a different session with this peer that is using the requested
+ // content application types.
+ for (var i = 0, len = this.peers[sender].length; i < len; i++) {
+ var sess = this.peers[sender][i];
+ if (sess && sess.pending && sess.sid > sid && this.performTieBreak(sess, req)) {
+ this._log('info', 'Tie break session-initiate');
+ return this._sendError(sender, rid, {
+ condition: 'conflict',
+ jingleCondition: 'tie-break'
+ });
+ }
+ }
+ }
+
+ // We've now weeded out invalid requests, so we can process the action now.
+
+ if (action === 'session-initiate') {
+ if (!contents.length) {
+ return self._sendError(sender, rid, {
+ condition: 'bad-request'
+ });
+ }
+
+ session = this._createIncomingSession({
+ sid: sid,
+ peer: req.from,
+ peerID: sender,
+ initiator: false,
+ parent: this,
+ applicationTypes: applicationTypes,
+ transportTypes: transportTypes,
+ iceServers: this.iceServers,
+ constraints: this.config.peerConnectionConstraints
+ }, req);
+ }
+
+ session.process(action, req.jingle, function (err) {
+ if (err) {
+ self._log('error', 'Could not process request', req, err);
+ self._sendError(sender, rid, err);
+ } else {
+ self.emit('send', {
+ to: sender,
+ id: rid,
+ type: 'result',
+ });
+
+ // Wait for the initial action to be processed before emitting
+ // the session for the user to accept/reject.
+ if (action === 'session-initiate') {
+ self.emit('incoming', session);
+ }
+ }
+ });
};
-},{}],124:[function(require,module,exports){
-arguments[4][53][0].apply(exports,arguments)
-},{"dup":53}],125:[function(require,module,exports){
+
+module.exports = SessionManager;
+
+},{"intersect":46,"jingle-filetransfer-session":49,"jingle-media-session":50,"jingle-session":51,"util":197,"webrtcsupport":210,"wildemitter":211}],54:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -23891,7 +17351,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"./shortcuts":126,"./types":127}],126:[function(require,module,exports){
+},{"./shortcuts":55,"./types":56}],55:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -24035,7 +17495,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":128}],127:[function(require,module,exports){
+},{"xmpp-constants":212}],56:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -24127,712 +17587,47 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-jid":134}],128:[function(require,module,exports){
-module.exports = {
- Namespace: require('./lib/namespaces'),
- MUC: require('./lib/muc'),
- PubSub: require('./lib/pubsub'),
- Jingle: require('./lib/jingle'),
- Presence: require('./lib/presence')
-};
-
-},{"./lib/jingle":129,"./lib/muc":130,"./lib/namespaces":131,"./lib/presence":132,"./lib/pubsub":133}],129:[function(require,module,exports){
-module.exports = {
- Action: {
- CONTENT_ACCEPT: 'content-accept',
- CONTENT_ADD: 'content-add',
- CONTENT_MODIFY: 'content-modify',
- CONTENT_REJECT: 'content-reject',
- CONTENT_REMOVE: 'content-remove',
- DESCRIPTION_INFO: 'description-info',
- SECURITY_INFO: 'security-info',
- SESSION_ACCEPT: 'session-accept',
- SESSION_INFO: 'session-info',
- SESSION_INITIATE: 'session-initiate',
- SESSION_TERMINATE: 'session-terminate',
- TRANSPORT_ACCEPT: 'transport-accept',
- TRANSPORT_INFO: 'transport-info',
- TRANSPORT_REJECT: 'transport-reject',
- TRANSPORT_REPLACE: 'transport-replace'
- },
- Reason: {
- ALTERNATIVE_SESSION: 'alernative-session',
- BUSY: 'busy',
- CANCEL: 'cancel',
- CONNECTIVITY_ERROR: 'connectivity-error',
- DECLINE: 'decline',
- EXPIRED: 'expired',
- FAILED_APPLICATION: 'failed-application',
- FAILED_TRANSPORT: 'failed-transport',
- GENERAL_ERROR: 'general-error',
- GONE: 'gone',
- INCOMPATIBLE_PARAMETERS: 'incompatible-parameters',
- MEDIA_ERROR: 'media-error',
- SECURITY_ERROR: 'security-error',
- SUCCESS: 'success',
- TIMEOUT: 'timeout',
- UNSUPPORTED_APPLICATIONS: 'unsupported-applications',
- UNSUPPORTED_TRANSPORTS: 'unsupported-transports'
- },
- Condition: {
- OUT_OF_ORDER: 'out-of-order',
- TIE_BREAK: 'tie-break',
- UNKNOWN_SESSION: 'unknown-session',
- UNSUPPORTED_INFO: 'unsupported-info'
- }
-};
-
-},{}],130:[function(require,module,exports){
-module.exports = {
- Status: {
- REALJID_PUBLIC: '100',
- AFFILIATION_CHANGED: '101',
- UNAVAILABLE_SHOWN: '102',
- UNAVAILABLE_NOT_SHOWN: '103',
- CONFIGURATION_CHANGED: '104',
- SELF_PRESENCE: '110',
- LOGGING_ENABLED: '170',
- LOGGING_DISABLED: '171',
- NON_ANONYMOUS: '172',
- SEMI_ANONYMOUS: '173',
- FULLY_ANONYMOUS: '174',
- ROOM_CREATED: '201',
- NICK_ASSIGNED: '210',
- BANNED: '301',
- NEW_NICK: '303',
- KICKED: '307',
- REMOVED_AFFILIATION: '321',
- REMOVED_MEMBERSHIP: '322',
- REMOVED_SHUTDOWN: '332'
- },
- Affiliation: {
- ADMIN: 'admin',
- MEMBER: 'member',
- NONE: 'none',
- OUTCAST: 'outcast',
- OWNER: 'owner'
- },
- Role: {
- MODERATOR: 'moderator',
- NONE: 'none',
- PARTICIPANT: 'participant',
- VISITOR: 'visitor'
- }
-};
-
-},{}],131:[function(require,module,exports){
-module.exports = {
-// ================================================================
-// RFCS
-// ================================================================
-
-// RFC 6120
- BIND: 'urn:ietf:params:xml:ns:xmpp-bind',
- CLIENT: 'jabber:client',
- SASL: 'urn:ietf:params:xml:ns:xmpp-sasl',
- SERVER: 'jabber:server',
- SESSION: 'urn:ietf:params:xml:ns:xmpp-session',
- STANZA_ERROR: 'urn:ietf:params:xml:ns:xmpp-stanzas',
- STREAM: 'http://etherx.jabber.org/streams',
- STREAM_ERROR: 'urn:ietf:params:xml:ns:xmpp-streams',
-
-// RFC 6121
- ROSTER: 'jabber:iq:roster',
- ROSTER_VERSIONING: 'urn:xmpp:features:rosterver',
- SUBSCRIPTION_PREAPPROVAL: 'urn:xmpp:features:pre-approval',
-
-// RFC 7395
- FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing',
-
-// ================================================================
-// XEPS
-// ================================================================
-
-// XEP-0004
- DATAFORM: 'jabber:x:data',
-
-// XEP-0009
- RPC: 'jabber:iq:rpc',
-
-// XEP-0012
- LAST_ACTIVITY: 'jabber:iq:last',
-
-// XEP-0016
- PRIVACY: 'jabber:iq:privacy',
-
-// XEP-0030
- DISCO_INFO: 'http://jabber.org/protocol/disco#info',
- DISCO_ITEMS: 'http://jabber.org/protocol/disco#items',
-
-// XEP-0033
- ADDRESS: 'http://jabber.org/protocol/address',
-
-// XEP-0045
- MUC: 'http://jabber.org/protocol/muc',
- MUC_ADMIN: 'http://jabber.org/protocol/muc#admin',
- MUC_OWNER: 'http://jabber.org/protocol/muc#owner',
- MUC_USER: 'http://jabber.org/protocol/muc#user',
-
-// XEP-0047
- IBB: 'http://jabber.org/protocol/ibb',
-
-// XEP-0048
- BOOKMARKS: 'storage:bookmarks',
-
-// XEP-0049
- PRIVATE: 'jabber:iq:private',
-
-// XEP-0050
- ADHOC_COMMANDS: 'http://jabber.org/protocol/commands',
-
-// XEP-0054
- VCARD_TEMP: 'vcard-temp',
-
-// XEP-0055
- SEARCH: 'jabber:iq:search',
-
-// XEP-0059
- RSM: 'http://jabber.org/protocol/rsm',
-
-// XEP-0060
- PUBSUB: 'http://jabber.org/protocol/pubsub',
- PUBSUB_ERRORS: 'http://jabber.org/protocol/pubsub#errors',
- PUBSUB_EVENT: 'http://jabber.org/protocol/pubsub#event',
- PUBSUB_OWNER: 'http://jabber.org/protocol/pubsub#owner',
-
-// XEP-0065
- SOCKS5: 'http://jabber.org/protocol/bytestreams',
-
-// XEP-0066
- OOB: 'jabber:x:oob',
-
-// XEP-0070
- HTTP_AUTH: 'http://jabber.org/protocol/http-auth',
-
-// XEP-0071
- XHTML_IM: 'http://jabber.org/protocol/xhtml-im',
-
-// XEP-0077
- REGISTER: 'jabber:iq:register',
-
-// XEP-0079
- AMP: 'http://jabber.org/protocol/amp',
-
-// XEP-0080
- GEOLOC: 'http://jabber.org/protocol/geoloc',
-
-// XEP-0083
- ROSTER_DELIMITER: 'roster:delimiter',
-
-// XEP-0084
- AVATAR_DATA: 'urn:xmpp:avatar:data',
- AVATAR_METADATA: 'urn:xmpp:avatar:metadata',
-
-// XEP-0085
- CHAT_STATES: 'http://jabber.org/protocol/chatstates',
-
-// XEP-0092
- VERSION: 'jabber:iq:version',
-
-// XEP-0107
- MOOD: 'http://jabber.org/protocol/mood',
-
-// XEP-0108
- ACTIVITY: 'http://jabber.org/protocol/activity',
-
-// XEP-0114
- COMPONENT: 'jabber:component:accept',
-
-// XEP-0115
- CAPS: 'http://jabber.org/protocol/caps',
-
-// XEP-0118
- TUNE: 'http://jabber.org/protocol/tune',
-
-// XEP-0122
- DATAFORM_VALIDATION: 'http://jabber.org/protocol/xdata-validate',
-
-// XEP-0124
- BOSH: 'http://jabber.org/protocol/httpbind',
-
-// XEP-0131
- SHIM: 'http://jabber.org/protocol/shim',
-
-// XEP-0138
- COMPRESSION: 'http://jabber.org/features/compress',
-
-// XEP-0141
- DATAFORM_LAYOUT: 'http://jabber.org/protocol/xdata-layout',
-
-// XEP-0144
- ROSTER_EXCHANGE: 'http://jabber.org/protocol/rosterx',
-
-// XEP-0145
- ROSTER_NOTES: 'storage:rosternotes',
-
-// XEP-0152
- REACH_0: 'urn:xmpp:reach:0',
-
-// XEP-0153
- VCARD_TEMP_UPDATE: 'vcard-temp:x:update',
-
-// XEP-0158
- CAPTCHA: 'urn:xmpp:captcha',
-
-// XEP-0166
- JINGLE_1: 'urn:xmpp:jingle:1',
- JINGLE_ERRORS_1: 'urn:xmpp:jingle:errors:1',
-
-// XEP-0167
- JINGLE_RTP_1: 'urn:xmpp:jingle:apps:rtp:1',
- JINGLE_RTP_ERRORS_1: 'urn:xmpp:jingle:apps:rtp:errors:1',
- JINGLE_RTP_INFO_1: 'urn:xmpp:jingle:apps:rtp:info:1',
-
-// XEP-0171
- LANG_TRANS: 'urn:xmpp:langtrans',
- LANG_TRANS_ITEMS: 'urn:xmpp:langtrans:items',
-
-// XEP-0172
- NICK: 'http://jabber.org/protocol/nick',
-
-// XEP-0176
- JINGLE_ICE_UDP_1: 'urn:xmpp:jingle:transports:ice-udp:1',
-
-// XEP-0177
- JINGLE_RAW_UDP_1: 'urn:xmpp:jingle:transports:raw-udp:1',
-
-// XEP-0184
- RECEIPTS: 'urn:xmpp:receipts',
-
-// XEP-0186
- INVISIBLE_0: 'urn:xmpp:invisible:0',
-
-// XEP-0191
- BLOCKING: 'urn:xmpp:blocking',
-
-// XEP-0198
- SMACKS_3: 'urn:xmpp:sm:3',
-
-// XEP-0199
- PING: 'urn:xmpp:ping',
-
-// XEP-0202
- TIME: 'urn:xmpp:time',
-
-// XEP-0203
- DELAY: 'urn:xmpp:delay',
-
-// XEP-0206
- BOSH_XMPP: 'urn:xmpp:xbosh',
-
-// XEP-0215
- DISCO_EXTERNAL_1: 'urn:xmpp:extdisco:1',
-
-// XEP-0221
- DATAFORM_MEDIA: 'urn:xmpp:media-element',
-
-// XEP-0224
- ATTENTION_0: 'urn:xmpp:attention:0',
-
-// XEP-0231
- BOB: 'urn:xmpp:bob',
-
-// XEP-0234
- FILE_TRANSFER_3: 'urn:xmpp:jingle:apps:file-transfer:3',
- FILE_TRANSFER_4: 'urn:xmpp:jingle:apps:file-transfer:4',
-
-// XEP-0249
- MUC_DIRECT_INVITE: 'jabber:x:conference',
-
-// XEP-0258
- SEC_LABEL_0: 'urn:xmpp:sec-label:0',
- SEC_LABEL_CATALOG_2: 'urn:xmpp:sec-label:catalog:2',
- SEC_LABEL_ESS_0: 'urn:xmpp:sec-label:ess:0',
-
-// XEP-0260
- JINGLE_SOCKS5_1: 'urn:xmpp:jingle:transports:s5b:1',
-
-// XEP-0261
- JINGLE_IBB_1: 'urn:xmpp:jingle:transports:ibb:1',
-
-// XEP-0262
- JINGLE_RTP_ZRTP_1: 'urn:xmpp:jingle:apps:rtp:zrtp:1',
-
-// XEP-0264
- THUMBS_0: 'urn:xmpp:thumbs:0',
- THUMBS_1: 'urn:xmpp:thumbs:1',
-
-// XEP-0276
- DECLOAKING_0: 'urn:xmpp:decloaking:0',
-
-// XEP-0280
- CARBONS_2: 'urn:xmpp:carbons:2',
-
-// XEP-0293
- JINGLE_RTP_RTCP_FB_0: 'urn:xmpp:jingle:apps:rtp:rtcp-fb:0',
-
-// XEP-0294
- JINGLE_RTP_HDREXT_0: 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
-
-// XEP-0297
- FORWARD_0: 'urn:xmpp:forward:0',
-
-// XEP-0300
- HASHES_1: 'urn:xmpp:hashes:1',
-
-// XEP-0301
- RTT_0: 'urn:xmpp:rtt:0',
-
-// XEP-0307
- MUC_UNIQUE: 'http://jabber.org/protocol/muc#unique',
-
-// XEP-308
- CORRECTION_0: 'urn:xmpp:message-correct:0',
-
-// XEP-0310
- PSA: 'urn:xmpp:psa',
-
-// XEP-0313
- MAM_TMP: 'urn:xmpp:mam:tmp',
- MAM_0: 'urn:xmpp:mam:0',
-
-// XEP-0317
- HATS_0: 'urn:xmpp:hats:0',
-
-// XEP-0319
- IDLE_1: 'urn:xmpp:idle:1',
-
-// XEP-0320
- JINGLE_DTLS_0: 'urn:xmpp:jingle:apps:dtls:0',
-
-// XEP-0328
- JID_PREP_0: 'urn:xmpp:jidprep:0',
-
-// XEP-0334
- HINTS: 'urn:xmpp:hints',
-
-// XEP-0335
- JSON_0: 'urn:xmpp:json:0',
-
-// XEP-0337
- EVENTLOG: 'urn:xmpp:eventlog',
-
-// XEP-0338
- JINGLE_GROUPING_0: 'urn:xmpp:jingle:apps:grouping:0',
-
-// XEP-0339
- JINGLE_RTP_SSMA_0: 'urn:xmpp:jingle:apps:rtp:ssma:0',
-
-// XEP-0340
- COLIBRI: 'http://jitsi.org/protocol/colibri',
-
-// XEP-0343
- DTLS_SCTP_1: 'urn:xmpp:jingle:transports:dtls-sctp:1',
-
-// XEP-0352
- CSI: 'urn:xmpp:csi',
-
-// XEP-0353
- JINGLE_MSG_INITIATE_0: 'urn:xmpp:jingle:jingle-message:0',
-
-// XEP-0357
- PUSH_0: 'urn:xmpp:push:0',
-
-// XEP-0358
- JINGLE_PUB_1: 'urn:xmpp:jinglepub:1'
-};
-
-},{}],132:[function(require,module,exports){
-module.exports = {
- Type: {
- SUBSCRIBE: 'subscribe',
- SUBSCRIBED: 'subscribed',
- UNSUBSCRIBE: 'unsubscribe',
- UNSUBSCRIBED: 'unsubscribed',
- PROBE: 'probe',
- UNAVAILABLE: 'unavailable'
- },
- Show: {
- CHAT: 'chat',
- AWAY: 'away',
- DO_NOT_DISTURB: 'dnd',
- EXTENDED_AWAY: 'xa'
- }
-};
-
-},{}],133:[function(require,module,exports){
-module.exports = {
- Affiliation: {
- MEMBER: 'member',
- NONE: 'none',
- OUTCAST: 'outcast',
- OWNER: 'owner',
- PUBLISHER: 'publisher',
- PUBLISH_ONLY: 'publish-only'
- },
- Subscription: {
- NONE: 'none',
- PENDING: 'pending',
- UNCONFIGURED: 'unconfigured',
- SUBSCRIBED: 'subscribed'
- },
- AccessModel: {
- OPEN: 'open',
- PRESENCE: 'presence',
- ROSTER: 'roster',
- AUTHORIZE: 'authorize',
- WHITELIST: 'whitelist'
- },
- Condition: {
- CONFLICT: 'conflict'
- }
-};
-
-},{}],134:[function(require,module,exports){
+},{"xmpp-jid":218}],57:[function(require,module,exports){
'use strict';
-var StringPrep = require('./lib/stringprep');
-
-// All of our StringPrep fallbacks work correctly
-// in the ASCII range, so we can reliably mark
-// ASCII-only JIDs as prepped.
-var ASCII = /^[\x00-\x7F]*$/;
-
-
-
-function bareJID(local, domain) {
- if (local) {
- return local + '@' + domain;
- }
- return domain;
-}
-
-function fullJID(local, domain, resource) {
- if (resource) {
- return bareJID(local, domain) + '/' + resource;
- }
- return bareJID(local, domain);
-}
-
-
-exports.prep = function (data) {
- var local = data.local;
- var domain = data.domain;
- var resource = data.resource;
- var unescapedLocal = local;
-
- if (local) {
- local = StringPrep.nodeprep(local);
- unescapedLocal = exports.unescape(local);
- }
-
- if (resource) {
- resource = StringPrep.resourceprep(resource);
- }
-
- if (domain[domain.length - 1] === '.') {
- domain = domain.slice(0, domain.length - 1);
- }
-
- domain = StringPrep.nameprep(domain.split('.').map(StringPrep.toUnicode).join('.'));
-
- return {
- prepped: data.prepped || StringPrep.available,
- local: local,
- domain: domain,
- resource: resource,
- bare: bareJID(local, domain),
- full: fullJID(local, domain, resource),
- unescapedLocal: unescapedLocal,
- unescapedBare: bareJID(unescapedLocal, domain),
- unescapedFull: fullJID(unescapedLocal, domain, resource)
- };
-};
-
-exports.parse = function (jid, trusted) {
- var local = '';
- var domain = '';
- var resource = '';
-
- trusted = trusted || ASCII.test(jid);
-
- var resourceStart = jid.indexOf('/');
- if (resourceStart > 0) {
- resource = jid.slice(resourceStart + 1);
- jid = jid.slice(0, resourceStart);
- }
-
- var localEnd = jid.indexOf('@');
- if (localEnd > 0) {
- local = jid.slice(0, localEnd);
- jid = jid.slice(localEnd + 1);
- }
-
- domain = jid;
-
- var preppedJID = exports.prep({
- local: local,
- domain: domain,
- resource: resource,
- });
-
- preppedJID.prepped = preppedJID.prepped || trusted;
-
- return preppedJID;
-};
-
-exports.equal = function (jid1, jid2, requirePrep) {
- jid1 = new exports.JID(jid1);
- jid2 = new exports.JID(jid2);
- if (arguments.length === 2) {
- requirePrep = true;
- }
- return jid1.local === jid2.local &&
- jid1.domain === jid2.domain &&
- jid1.resource === jid2.resource &&
- (requirePrep ? jid1.prepped && jid2.prepped : true);
-};
-
-exports.equalBare = function (jid1, jid2, requirePrep) {
- jid1 = new exports.JID(jid1);
- jid2 = new exports.JID(jid2);
- if (arguments.length === 2) {
- requirePrep = true;
- }
- return jid1.local === jid2.local &&
- jid1.domain === jid2.domain &&
- (requirePrep ? jid1.prepped && jid2.prepped : true);
-};
-
-exports.isBare = function (jid) {
- jid = new exports.JID(jid);
-
- var hasResource = !!jid.resource;
-
- return !hasResource;
-};
-
-exports.isFull = function (jid) {
- jid = new exports.JID(jid);
-
- var hasResource = !!jid.resource;
-
- return hasResource;
-};
-
-exports.escape = function (val) {
- return val.replace(/^\s+|\s+$/g, '')
- .replace(/\\5c/g, '\\5c5c')
- .replace(/\\20/g, '\\5c20')
- .replace(/\\22/g, '\\5c22')
- .replace(/\\26/g, '\\5c26')
- .replace(/\\27/g, '\\5c27')
- .replace(/\\2f/g, '\\5c2f')
- .replace(/\\3a/g, '\\5c3a')
- .replace(/\\3c/g, '\\5c3c')
- .replace(/\\3e/g, '\\5c3e')
- .replace(/\\40/g, '\\5c40')
- .replace(/ /g, '\\20')
- .replace(/\"/g, '\\22')
- .replace(/\&/g, '\\26')
- .replace(/\'/g, '\\27')
- .replace(/\//g, '\\2f')
- .replace(/:/g, '\\3a')
- .replace(/</g, '\\3c')
- .replace(/>/g, '\\3e')
- .replace(/@/g, '\\40');
-};
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
-exports.unescape = function (val) {
- return val.replace(/\\20/g, ' ')
- .replace(/\\22/g, '"')
- .replace(/\\26/g, '&')
- .replace(/\\27/g, '\'')
- .replace(/\\2f/g, '/')
- .replace(/\\3a/g, ':')
- .replace(/\\3c/g, '<')
- .replace(/\\3e/g, '>')
- .replace(/\\40/g, '@')
- .replace(/\\5c/g, '\\');
-};
+var _xmppConstants = require('xmpp-constants');
+exports['default'] = function (JXT) {
-exports.create = function (local, domain, resource) {
- return new exports.JID(local, domain, resource);
-};
+ var Utils = JXT.utils;
-exports.JID = function JID(localOrJID, domain, resource) {
- var parsed = {};
- if (localOrJID && !domain && !resource) {
- if (typeof localOrJID === 'string') {
- parsed = exports.parse(localOrJID);
- } else if (localOrJID._isJID || localOrJID instanceof exports.JID) {
- parsed = localOrJID;
- } else {
- throw new Error('Invalid argument type');
- }
- } else if (domain) {
- var trusted = ASCII.test(localOrJID) && ASCII.test(domain);
- if (resource) {
- trusted = trusted && ASCII.test(resource);
+ var Address = JXT.define({
+ name: '_address',
+ namespace: _xmppConstants.Namespace.ADDRESS,
+ element: 'address',
+ fields: {
+ jid: Utils.jidAttribute('jid'),
+ uri: Utils.attribute('uri'),
+ node: Utils.attribute('node'),
+ description: Utils.attribute('desc'),
+ delivered: Utils.boolAttribute('delivered'),
+ type: Utils.attribute('type')
}
+ });
- parsed = exports.prep({
- local: exports.escape(localOrJID),
- domain: domain,
- resource: resource,
- prepped: trusted
- });
- } else {
- parsed = {};
- }
-
- this._isJID = true;
-
- this.local = parsed.local || '';
- this.domain = parsed.domain || '';
- this.resource = parsed.resource || '';
- this.bare = parsed.bare || '';
- this.full = parsed.full || '';
-
- this.unescapedLocal = parsed.unescapedLocal || '';
- this.unescapedBare = parsed.unescapedBare || '';
- this.unescapedFull = parsed.unescapedFull || '';
-
- this.prepped = parsed.prepped;
-};
-
-exports.JID.prototype.toString = function () {
- return this.full;
-};
-
-exports.JID.prototype.toJSON = function () {
- return this.full;
-};
-
-},{"./lib/stringprep":135}],135:[function(require,module,exports){
-'use strict';
-
-var punycode = require('punycode');
-
-
-exports.available = false;
-
-exports.toUnicode = punycode.toUnicode;
+ var Addresses = Utils.subMultiExtension(_xmppConstants.Namespace.ADDRESS, 'addresses', Address);
-exports.nameprep = function (str) {
- return str.toLowerCase();
-};
+ JXT.withMessage(function (Message) {
+ JXT.add(Message, 'addresses', Addresses);
+ });
-exports.nodeprep = function (str) {
- return str.toLowerCase();
+ JXT.withPresence(function (Presence) {
+ JXT.add(Presence, 'addresses', Addresses);
+ });
};
-exports.resourceprep = function (str) {
- return str;
-};
+module.exports = exports['default'];
-},{"punycode":11}],136:[function(require,module,exports){
+},{"xmpp-constants":212}],58:[function(require,module,exports){
'use strict';
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
@@ -24900,7 +17695,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"babel-runtime/helpers/interop-require-default":197,"lodash.foreach":212,"xmpp-constants":220}],137:[function(require,module,exports){
+},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],59:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -24929,7 +17724,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],138:[function(require,module,exports){
+},{"xmpp-constants":212}],60:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -24948,14 +17743,14 @@ exports['default'] = function (JXT) {
get: function get() {
var result = [];
- var items = types.find(this.xml, _xmppConstants.Namespace.BLOCKING, 'item');
+ var items = Utils.find(this.xml, _xmppConstants.Namespace.BLOCKING, 'item');
if (!items.length) {
return result;
}
items.forEach(function (item) {
- result.push(new _xmppJid.JID(types.getAttribute(item, 'jid', '')));
+ result.push(new _xmppJid.JID(Utils.getAttribute(item, 'jid', '')));
});
return result;
@@ -24965,8 +17760,8 @@ exports['default'] = function (JXT) {
var self = this;
values.forEach(function (value) {
- var item = types.createElement(_xmppConstants.Namespace.BLOCKING, 'item', _xmppConstants.Namespace.BLOCKING);
- types.setAttribute(item, 'jid', value.toString());
+ var item = Utils.createElement(_xmppConstants.Namespace.BLOCKING, 'item', _xmppConstants.Namespace.BLOCKING);
+ Utils.setAttribute(item, 'jid', value.toString());
self.xml.appendChild(item);
});
}
@@ -25006,7 +17801,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],139:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],61:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25038,7 +17833,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],140:[function(require,module,exports){
+},{"xmpp-constants":212}],62:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25079,7 +17874,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],141:[function(require,module,exports){
+},{"xmpp-constants":212}],63:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25158,7 +17953,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],142:[function(require,module,exports){
+},{"xmpp-constants":212}],64:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25217,7 +18012,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],143:[function(require,module,exports){
+},{"xmpp-constants":212}],65:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25303,7 +18098,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],144:[function(require,module,exports){
+},{"xmpp-constants":212}],66:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25341,7 +18136,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],145:[function(require,module,exports){
+},{"xmpp-constants":212}],67:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25640,7 +18435,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],146:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],68:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25670,7 +18465,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],147:[function(require,module,exports){
+},{"xmpp-constants":212}],69:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25758,7 +18553,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],148:[function(require,module,exports){
+},{"xmpp-constants":212}],70:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25837,7 +18632,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],149:[function(require,module,exports){
+},{"xmpp-constants":212}],71:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25893,7 +18688,103 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],150:[function(require,module,exports){
+},{"xmpp-constants":212}],72:[function(require,module,exports){
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+
+var _xmppConstants = require('xmpp-constants');
+
+var FT_NS = _xmppConstants.Namespace.FILE_TRANSFER_4;
+
+exports['default'] = function (JXT) {
+
+ var Utils = JXT.utils;
+
+ var File = JXT.define({
+ name: 'file',
+ namespace: FT_NS,
+ element: 'file',
+ fields: {
+ name: Utils.textSub(FT_NS, 'name'),
+ description: Utils.textSub(FT_NS, 'desc'),
+ mediaType: Utils.textSub(FT_NS, 'media-type'),
+ size: Utils.numberSub(FT_NS, 'size'),
+ date: Utils.dateSub(FT_NS, 'date')
+ }
+ });
+
+ var Range = JXT.define({
+ name: 'range',
+ namespace: FT_NS,
+ element: 'range',
+ fields: {
+ offset: Utils.numberAttribute('offset'),
+ length: Utils.numberAttribute('length')
+ }
+ });
+
+ var FileTransfer = JXT.define({
+ name: '_' + FT_NS,
+ namespace: FT_NS,
+ element: 'description',
+ tags: ['jingle-application'],
+ fields: {
+ applicationType: { value: FT_NS }
+ }
+ });
+
+ var Received = JXT.define({
+ name: '_{' + FT_NS + '}received',
+ namespace: FT_NS,
+ element: 'received',
+ tags: ['jingle-info'],
+ fields: {
+ infoType: { value: '{' + FT_NS + '}received' },
+ creator: Utils.attribute('creator'),
+ name: Utils.attribute('name')
+ }
+ });
+
+ var Checksum = JXT.define({
+ name: '_{' + FT_NS + '}checksum',
+ namespace: FT_NS,
+ element: 'checksum',
+ tags: ['jingle-info'],
+ fields: {
+ infoType: { value: '{' + FT_NS + '}checksum' },
+ creator: Utils.attribute('creator'),
+ name: Utils.attribute('name')
+ }
+ });
+
+ JXT.extend(File, Range);
+ JXT.extend(Checksum, File);
+ JXT.extend(FileTransfer, File);
+
+ JXT.withDefinition('hash', _xmppConstants.Namespace.HASHES_1, function (Hash) {
+
+ JXT.extend(File, Hash, 'hashes');
+ JXT.extend(Range, Hash, 'hashes');
+ });
+
+ JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
+
+ JXT.extend(Content, FileTransfer);
+ });
+
+ JXT.withDefinition('jingle', _xmppConstants.Namespace.JINGLE_1, function (Jingle) {
+
+ JXT.extend(Jingle, Received);
+ JXT.extend(Jingle, Checksum);
+ });
+};
+
+module.exports = exports['default'];
+
+},{"xmpp-constants":212}],73:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25945,9 +18836,9 @@ exports['default'] = function (JXT) {
name: '_filetransfer',
namespace: FT_NS,
element: 'description',
- tags: ['jingle-description'],
+ tags: ['jingle-application'],
fields: {
- descType: { value: 'filetransfer' },
+ applicationType: { value: 'filetransfer' },
offer: Utils.subExtension('offer', FT_NS, 'offer', File),
request: Utils.subExtension('request', FT_NS, 'request', File)
}
@@ -25969,7 +18860,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],151:[function(require,module,exports){
+},{"xmpp-constants":212}],74:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -25986,15 +18877,24 @@ exports['default'] = function (JXT) {
element: 'forwarded'
});
- JXT.extendIQ(Forwarded);
- JXT.extendPresence(Forwarded);
-
JXT.withMessage(function (Message) {
JXT.extend(Message, Forwarded);
JXT.extend(Forwarded, Message);
});
+ JXT.withPresence(function (Presence) {
+
+ JXT.extend(Presence, Forwarded);
+ JXT.extend(Forwarded, Presence);
+ });
+
+ JXT.withIQ(function (IQ) {
+
+ JXT.extend(IQ, Forwarded);
+ JXT.extend(Forwarded, IQ);
+ });
+
JXT.withDefinition('delay', _xmppConstants.Namespace.DELAY, function (Delayed) {
JXT.extend(Forwarded, Delayed);
@@ -26003,7 +18903,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],152:[function(require,module,exports){
+},{"xmpp-constants":212}],75:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26043,7 +18943,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],153:[function(require,module,exports){
+},{"xmpp-constants":212}],76:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26093,7 +18993,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],154:[function(require,module,exports){
+},{"xmpp-constants":212}],77:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26117,7 +19017,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],155:[function(require,module,exports){
+},{"xmpp-constants":212}],78:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26147,7 +19047,143 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],156:[function(require,module,exports){
+},{"xmpp-constants":212}],79:[function(require,module,exports){
+(function (Buffer){
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+
+var _xmppConstants = require('xmpp-constants');
+
+var NS_IBB = 'http://jabber.org/protocol/ibb';
+var NS_JIBB = 'urn:xmpp:jingle:transports:ibb:1';
+
+exports['default'] = function (JXT) {
+
+ var Utils = JXT.utils;
+
+ var IBB = {
+ get: function get() {
+
+ var data = Utils.find(this.xml, NS_IBB, 'data');
+ if (data.length) {
+ data = data[0];
+ return {
+ action: 'data',
+ sid: Utils.getAttribute(data, 'sid'),
+ seq: parseInt(Utils.getAttribute(data, 'seq') || '0', 10),
+ data: new Buffer(Utils.getText(data), 'base64')
+ };
+ }
+
+ var open = Utils.find(this.xml, NS_IBB, 'open');
+ if (open.length) {
+ open = open[0];
+ var ack = Utils.getAttribute(open, 'stanza');
+ if (ack === 'message') {
+ ack = false;
+ } else {
+ ack = true;
+ }
+
+ return {
+ action: 'open',
+ sid: Utils.getAttribute(open, 'sid'),
+ blockSize: Utils.getAttribute(open, 'block-size'),
+ ack: ack
+ };
+ }
+
+ var close = Utils.find(this.xml, NS_IBB, 'close');
+ if (close.length) {
+ return {
+ action: 'close',
+ sid: Utils.getAttribute(close[0], 'sid')
+ };
+ }
+ },
+ set: function set(value) {
+
+ if (value.action === 'data') {
+ var data = Utils.createElement(NS_IBB, 'data');
+ Utils.setAttribute(data, 'sid', value.sid);
+ Utils.setAttribute(data, 'seq', value.seq.toString());
+ Utils.setText(data, value.data.toString('base64'));
+ this.xml.appendChild(data);
+ }
+
+ if (value.action === 'open') {
+ var _open = Utils.createElement(NS_IBB, 'open');
+ Utils.setAttribute(_open, 'sid', value.sid);
+ Utils.setAttribute(_open, 'block-size', (value.blockSize || '4096').toString());
+ if (value.ack === false) {
+ Utils.setAttribute(_open, 'stanza', 'message');
+ } else {
+ Utils.setAttribute(_open, 'stanza', 'iq');
+ }
+ this.xml.appendChild(_open);
+ }
+
+ if (value.action === 'close') {
+ var _close = Utils.createElement(NS_IBB, 'close');
+ Utils.setAttribute(_close, 'sid', value.sid);
+ this.xml.appendChild(_close);
+ }
+ }
+ };
+
+ var JingleIBB = JXT.define({
+ name: '_' + NS_JIBB,
+ namespace: NS_JIBB,
+ element: 'transport',
+ tags: ['jingle-transport'],
+ fields: {
+ transportType: {
+ value: NS_JIBB
+ },
+ sid: Utils.attribute('sid'),
+ blockSize: Utils.numberAttribute('block-size'),
+ ack: {
+ get: function get() {
+ var value = Utils.getAttribute(this.xml, 'stanza');
+ if (value === 'message') {
+ return false;
+ }
+ return true;
+ },
+ set: function set(value) {
+ if (value.ack === false) {
+ Utils.setAttribute(this.xml, 'stanza', 'message');
+ } else {
+ Utils.setAttribute(this.xml, 'stanza', 'iq');
+ }
+ }
+ }
+ }
+ });
+
+ JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
+
+ JXT.extend(Content, JingleIBB);
+ });
+
+ JXT.withIQ(function (IQ) {
+
+ JXT.add(IQ, 'ibb', IBB);
+ });
+
+ JXT.withMessage(function (Message) {
+
+ JXT.add(Message, 'ibb', IBB);
+ });
+};
+
+module.exports = exports['default'];
+
+}).call(this,require("buffer").Buffer)
+},{"buffer":6,"xmpp-constants":212}],80:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26166,7 +19202,7 @@ exports['default'] = function (JXT) {
element: 'transport',
tags: ['jingle-transport'],
fields: {
- transType: { value: 'iceUdp' },
+ transportType: { value: 'iceUdp' },
pwd: Utils.attribute('pwd'),
ufrag: Utils.attribute('ufrag')
}
@@ -26240,7 +19276,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],157:[function(require,module,exports){
+},{"xmpp-constants":212}],81:[function(require,module,exports){
'use strict';
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
@@ -26249,6 +19285,10 @@ Object.defineProperty(exports, '__esModule', {
value: true
});
+var _addresses = require('./addresses');
+
+var _addresses2 = _interopRequireDefault(_addresses);
+
var _avatar = require('./avatar');
var _avatar2 = _interopRequireDefault(_avatar);
@@ -26309,6 +19349,10 @@ var _file = require('./file');
var _file2 = _interopRequireDefault(_file);
+var _file3 = require('./file3');
+
+var _file32 = _interopRequireDefault(_file3);
+
var _forwarded = require('./forwarded');
var _forwarded2 = _interopRequireDefault(_forwarded);
@@ -26333,6 +19377,10 @@ var _iceUdp = require('./iceUdp');
var _iceUdp2 = _interopRequireDefault(_iceUdp);
+var _ibb = require('./ibb');
+
+var _ibb2 = _interopRequireDefault(_ibb);
+
var _iq = require('./iq');
var _iq2 = _interopRequireDefault(_iq);
@@ -26487,6 +19535,7 @@ var _visibility2 = _interopRequireDefault(_visibility);
exports['default'] = function (JXT) {
+ JXT.use(_addresses2['default']);
JXT.use(_avatar2['default']);
JXT.use(_bind2['default']);
JXT.use(_blocking2['default']);
@@ -26502,12 +19551,14 @@ exports['default'] = function (JXT) {
JXT.use(_error2['default']);
JXT.use(_extdisco2['default']);
JXT.use(_file2['default']);
+ JXT.use(_file32['default']);
JXT.use(_forwarded2['default']);
JXT.use(_framing2['default']);
JXT.use(_geoloc2['default']);
JXT.use(_hash2['default']);
JXT.use(_hats2['default']);
JXT.use(_iceUdp2['default']);
+ JXT.use(_ibb2['default']);
JXT.use(_iq2['default']);
JXT.use(_jidprep2['default']);
JXT.use(_jingle2['default']);
@@ -26550,7 +19601,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"./avatar":136,"./bind":137,"./blocking":138,"./bob":139,"./bookmarks":140,"./bosh":141,"./carbons":142,"./command":143,"./csi":144,"./dataforms":145,"./delayed":146,"./disco":147,"./error":148,"./extdisco":149,"./file":150,"./forwarded":151,"./framing":152,"./geoloc":153,"./hash":154,"./hats":155,"./iceUdp":156,"./iq":158,"./jidprep":159,"./jingle":160,"./json":161,"./logging":162,"./mam":163,"./message":164,"./mood":165,"./muc":166,"./nick":167,"./oob":168,"./ping":169,"./presence":170,"./private":171,"./psa":172,"./pubsub":173,"./pubsubError":174,"./pubsubEvents":175,"./pubsubOwner":176,"./push":177,"./reach":178,"./register":179,"./roster":180,"./rsm":181,"./rtp":182,"./rtt":183,"./sasl":184,"./session":185,"./shim":186,"./sm":187,"./stream":188,"./streamError":189,"./streamFeatures":190,"./time":191,"./tune":192,"./vcard":193,"./version":194,"./visibility":195,"babel-runtime/helpers/interop-require-default":197}],158:[function(require,module,exports){
+},{"./addresses":57,"./avatar":58,"./bind":59,"./blocking":60,"./bob":61,"./bookmarks":62,"./bosh":63,"./carbons":64,"./command":65,"./csi":66,"./dataforms":67,"./delayed":68,"./disco":69,"./error":70,"./extdisco":71,"./file":72,"./file3":73,"./forwarded":74,"./framing":75,"./geoloc":76,"./hash":77,"./hats":78,"./ibb":79,"./iceUdp":80,"./iq":82,"./jidprep":83,"./jingle":84,"./json":85,"./logging":86,"./mam":87,"./message":88,"./mood":89,"./muc":90,"./nick":91,"./oob":92,"./ping":93,"./presence":94,"./private":95,"./psa":96,"./pubsub":97,"./pubsubError":98,"./pubsubEvents":99,"./pubsubOwner":100,"./push":101,"./reach":102,"./register":103,"./roster":104,"./rsm":105,"./rtp":106,"./rtt":107,"./sasl":108,"./session":109,"./shim":110,"./sm":111,"./stream":112,"./streamError":113,"./streamFeatures":114,"./time":115,"./tune":116,"./vcard":117,"./version":118,"./visibility":119,"babel-runtime/helpers/interop-require-default":2}],82:[function(require,module,exports){
'use strict';
var _Object$assign = require('babel-runtime/core-js/object/assign')['default'];
@@ -26621,7 +19672,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"babel-runtime/core-js/object/assign":196,"xmpp-constants":220}],159:[function(require,module,exports){
+},{"babel-runtime/core-js/object/assign":1,"xmpp-constants":212}],83:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26656,7 +19707,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],160:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],84:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26680,7 +19731,40 @@ exports['default'] = function (JXT) {
action: Utils.attribute('action'),
initiator: Utils.attribute('initiator'),
responder: Utils.attribute('responder'),
- sid: Utils.attribute('sid')
+ sid: Utils.attribute('sid'),
+ info: {
+ get: function get() {
+
+ var opts = JXT.tagged('jingle-info').map(function (Info) {
+
+ return Info.prototype._name;
+ });
+ for (var i = 0, len = opts.length; i < len; i++) {
+ if (this._extensions[opts[i]]) {
+ return this._extensions[opts[i]];
+ }
+ }
+ if (Utils.getAttribute(this.xml, 'action') === 'session-info') {
+ if (this.xml.children.length === 0) {
+ return {
+ infoType: 'ping'
+ };
+ }
+ return {
+ infoType: 'unknown'
+ };
+ }
+ },
+ set: function set(value) {
+
+ if (value.infoType === 'ping') {
+ return;
+ }
+
+ var ext = '_' + value.infoType;
+ this[ext] = value;
+ }
+ }
}
});
@@ -26693,10 +19777,10 @@ exports['default'] = function (JXT) {
disposition: Utils.attribute('disposition', 'session'),
name: Utils.attribute('name'),
senders: Utils.attribute('senders', 'both'),
- description: {
+ application: {
get: function get() {
- var opts = JXT.tagged('jingle-description').map(function (Description) {
+ var opts = JXT.tagged('jingle-application').map(function (Description) {
return Description.prototype._name;
});
@@ -26708,7 +19792,7 @@ exports['default'] = function (JXT) {
},
set: function set(value) {
- var ext = '_' + value.descType;
+ var ext = '_' + value.applicationType;
this[ext] = value;
}
},
@@ -26727,7 +19811,26 @@ exports['default'] = function (JXT) {
},
set: function set(value) {
- var ext = '_' + value.transType;
+ var ext = '_' + value.transportType;
+ this[ext] = value;
+ }
+ },
+ security: {
+ get: function get() {
+
+ var opts = JXT.tagged('jingle-security').map(function (Info) {
+
+ return Security.prototype._name;
+ });
+ for (var i = 0, len = opts.length; i < len; i++) {
+ if (this._extensions[opts[i]]) {
+ return this._extensions[opts[i]];
+ }
+ }
+ },
+ set: function set(value) {
+
+ var ext = '_' + value.securityType;
this[ext] = value;
}
}
@@ -26768,7 +19871,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],161:[function(require,module,exports){
+},{"xmpp-constants":212}],85:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26809,7 +19912,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],162:[function(require,module,exports){
+},{"xmpp-constants":212}],86:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26859,7 +19962,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],163:[function(require,module,exports){
+},{"xmpp-constants":212}],87:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -26986,7 +20089,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],164:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],88:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27050,7 +20153,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],165:[function(require,module,exports){
+},{"xmpp-constants":212}],89:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27079,7 +20182,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],166:[function(require,module,exports){
+},{"xmpp-constants":212}],90:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27360,7 +20463,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],167:[function(require,module,exports){
+},{"xmpp-constants":212}],91:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27391,7 +20494,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],168:[function(require,module,exports){
+},{"xmpp-constants":212}],92:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27417,7 +20520,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],169:[function(require,module,exports){
+},{"xmpp-constants":212}],93:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27439,7 +20542,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],170:[function(require,module,exports){
+},{"xmpp-constants":212}],94:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27535,7 +20638,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],171:[function(require,module,exports){
+},{"xmpp-constants":212}],95:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27557,7 +20660,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],172:[function(require,module,exports){
+},{"xmpp-constants":212}],96:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27586,7 +20689,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],173:[function(require,module,exports){
+},{"xmpp-constants":212}],97:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27727,6 +20830,7 @@ exports['default'] = function (JXT) {
element: 'unsubscribe',
fields: {
node: Utils.attribute('node'),
+ subid: Utils.attribute('subid'),
jid: Utils.jidAttribute('jid')
}
});
@@ -27804,7 +20908,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],174:[function(require,module,exports){
+},{"xmpp-constants":212}],98:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27836,7 +20940,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],175:[function(require,module,exports){
+},{"xmpp-constants":212}],99:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -27979,7 +21083,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],176:[function(require,module,exports){
+},{"xmpp-constants":212}],100:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28094,7 +21198,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],177:[function(require,module,exports){
+},{"xmpp-constants":212}],101:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28144,7 +21248,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],178:[function(require,module,exports){
+},{"xmpp-constants":212}],102:[function(require,module,exports){
'use strict';
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
@@ -28228,7 +21332,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"babel-runtime/helpers/interop-require-default":197,"lodash.foreach":212,"xmpp-constants":220}],179:[function(require,module,exports){
+},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],103:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28284,7 +21388,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],180:[function(require,module,exports){
+},{"xmpp-constants":212}],104:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28343,7 +21447,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],181:[function(require,module,exports){
+},{"xmpp-constants":212}],105:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28388,7 +21492,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],182:[function(require,module,exports){
+},{"xmpp-constants":212}],106:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28468,9 +21572,9 @@ exports['default'] = function (JXT) {
name: '_rtp',
namespace: _xmppConstants.Namespace.JINGLE_RTP_1,
element: 'description',
- tags: ['jingle-description'],
+ tags: ['jingle-application'],
fields: {
- descType: { value: 'rtp' },
+ applicationType: { value: 'rtp' },
media: Utils.attribute('media'),
ssrc: Utils.attribute('ssrc'),
mux: Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_1, 'rtcp-mux'),
@@ -28704,7 +21808,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],183:[function(require,module,exports){
+},{"xmpp-constants":212}],107:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28816,7 +21920,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],184:[function(require,module,exports){
+},{"xmpp-constants":212}],108:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28936,7 +22040,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],185:[function(require,module,exports){
+},{"xmpp-constants":212}],109:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -28963,7 +22067,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],186:[function(require,module,exports){
+},{"xmpp-constants":212}],110:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29020,7 +22124,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],187:[function(require,module,exports){
+},{"xmpp-constants":212}],111:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29118,7 +22222,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],188:[function(require,module,exports){
+},{"xmpp-constants":212}],112:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29147,7 +22251,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],189:[function(require,module,exports){
+},{"xmpp-constants":212}],113:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29213,7 +22317,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],190:[function(require,module,exports){
+},{"xmpp-constants":212}],114:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29249,7 +22353,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],191:[function(require,module,exports){
+},{"xmpp-constants":212}],115:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29275,7 +22379,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],192:[function(require,module,exports){
+},{"xmpp-constants":212}],116:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29309,7 +22413,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],193:[function(require,module,exports){
+},{"xmpp-constants":212}],117:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29427,7 +22531,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],194:[function(require,module,exports){
+},{"xmpp-constants":212}],118:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29454,7 +22558,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],195:[function(require,module,exports){
+},{"xmpp-constants":212}],119:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -29474,225 +22578,11 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],196:[function(require,module,exports){
-module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true };
-},{"core-js/library/fn/object/assign":198}],197:[function(require,module,exports){
-"use strict";
-
-exports["default"] = function (obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-};
-
-exports.__esModule = true;
-},{}],198:[function(require,module,exports){
-require('../../modules/es6.object.assign');
-module.exports = require('../../modules/$.core').Object.assign;
-},{"../../modules/$.core":201,"../../modules/es6.object.assign":211}],199:[function(require,module,exports){
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-};
-},{}],200:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-};
-},{}],201:[function(require,module,exports){
-var core = module.exports = {version: '1.2.6'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-},{}],202:[function(require,module,exports){
-// optional / simple context binding
-var aFunction = require('./$.a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-};
-},{"./$.a-function":199}],203:[function(require,module,exports){
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-};
-},{}],204:[function(require,module,exports){
-var global = require('./$.global')
- , core = require('./$.core')
- , ctx = require('./$.ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && key in target;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(param){
- return this instanceof C ? new C(param) : C(param);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-module.exports = $export;
-},{"./$.core":201,"./$.ctx":202,"./$.global":206}],205:[function(require,module,exports){
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-};
-},{}],206:[function(require,module,exports){
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-},{}],207:[function(require,module,exports){
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./$.cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-};
-},{"./$.cof":200}],208:[function(require,module,exports){
-var $Object = Object;
-module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
-};
-},{}],209:[function(require,module,exports){
-// 19.1.2.1 Object.assign(target, source, ...)
-var $ = require('./$')
- , toObject = require('./$.to-object')
- , IObject = require('./$.iobject');
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = require('./$.fails')(function(){
- var a = Object.assign
- , A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
- , index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
-} : Object.assign;
-},{"./$":208,"./$.fails":205,"./$.iobject":207,"./$.to-object":210}],210:[function(require,module,exports){
-// 7.1.13 ToObject(argument)
-var defined = require('./$.defined');
-module.exports = function(it){
- return Object(defined(it));
-};
-},{"./$.defined":203}],211:[function(require,module,exports){
-// 19.1.3.1 Object.assign(target, source)
-var $export = require('./$.export');
-
-$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});
-},{"./$.export":204,"./$.object-assign":209}],212:[function(require,module,exports){
-arguments[4][54][0].apply(exports,arguments)
-},{"dup":54,"lodash._arrayeach":213,"lodash._baseeach":214,"lodash._bindcallback":218,"lodash.isarray":219}],213:[function(require,module,exports){
-arguments[4][55][0].apply(exports,arguments)
-},{"dup":55}],214:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":215}],215:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":216,"lodash.isarguments":217,"lodash.isarray":219}],216:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],217:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],218:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],219:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],220:[function(require,module,exports){
-arguments[4][128][0].apply(exports,arguments)
-},{"./lib/jingle":221,"./lib/muc":222,"./lib/namespaces":223,"./lib/presence":224,"./lib/pubsub":225,"dup":128}],221:[function(require,module,exports){
-arguments[4][129][0].apply(exports,arguments)
-},{"dup":129}],222:[function(require,module,exports){
-arguments[4][130][0].apply(exports,arguments)
-},{"dup":130}],223:[function(require,module,exports){
-arguments[4][131][0].apply(exports,arguments)
-},{"dup":131}],224:[function(require,module,exports){
-arguments[4][132][0].apply(exports,arguments)
-},{"dup":132}],225:[function(require,module,exports){
-arguments[4][133][0].apply(exports,arguments)
-},{"dup":133}],226:[function(require,module,exports){
-arguments[4][134][0].apply(exports,arguments)
-},{"./lib/stringprep":227,"dup":134}],227:[function(require,module,exports){
-arguments[4][135][0].apply(exports,arguments)
-},{"dup":135,"punycode":11}],228:[function(require,module,exports){
+},{"xmpp-constants":212}],120:[function(require,module,exports){
'use strict';
var extend = require('lodash.assign');
var uuid = require('uuid');
-var ltx = require('ltx');
var types = require('./lib/types');
var helpers = require('./lib/helpers');
@@ -29764,11 +22654,10 @@ JXT.prototype.build = function (xml) {
};
JXT.prototype.parse = function (str) {
- var xml = ltx.parse(str);
- if (xml.nodeType !== 1) {
+ var xml = helpers.parse(str);
+ if (!xml) {
return;
}
-
return this.build(xml);
};
@@ -29872,16 +22761,27 @@ JXT.getGlobalJXT = function () {
module.exports = JXT;
-},{"./lib/helpers":229,"./lib/stanza":230,"./lib/types":231,"lodash.assign":232,"ltx":245,"uuid":250}],229:[function(require,module,exports){
+},{"./lib/helpers":121,"./lib/stanza":122,"./lib/types":123,"lodash.assign":132,"uuid":199}],121:[function(require,module,exports){
'use strict';
var ltx = require('ltx');
+var DOMElement = require('ltx/lib/DOMElement');
var XML_NS = exports.XML_NS = 'http://www.w3.org/XML/1998/namespace';
+exports.parse = function (str) {
+ var xml = ltx.parse(str, {
+ Element: DOMElement
+ });
+ if (xml.nodeType !== 1) {
+ return;
+ }
+ return xml;
+};
+
exports.createElement = function (NS, name, parentNS) {
- var el = new ltx.Element(name);
+ var el = new DOMElement(name);
if (!parentNS || parentNS !== NS) {
exports.setAttribute(el, 'xmlns', NS);
}
@@ -30153,7 +23053,7 @@ exports.setBoolSub = function (xml, NS, element, value) {
}
};
-},{"ltx":245}],230:[function(require,module,exports){
+},{"ltx":139,"ltx/lib/DOMElement":140}],122:[function(require,module,exports){
'use strict';
var helpers = require('./helpers');
@@ -30205,7 +23105,7 @@ module.exports = function (JXT, opts) {
return self;
}
-
+ Stanza.prototype._isJXT = true;
Stanza.prototype._name = opts.name;
Stanza.prototype._eventname = opts.eventName;
Stanza.prototype._NS = opts.namespace;
@@ -30239,7 +23139,11 @@ module.exports = function (JXT, opts) {
var type = Object.prototype.toString.call(val);
if (type.indexOf('Object') >= 0) {
if (Object.keys(val).length > 0) {
- result[prop] = val;
+ if (val._isJXT) {
+ result[prop] = val.toJSON();
+ } else {
+ result[prop] = val;
+ }
}
} else if (type.indexOf('Array') >= 0) {
if (val.length > 0) {
@@ -30248,7 +23152,7 @@ module.exports = function (JXT, opts) {
for (var n = 0; n < len; n++) {
var nval = val[n];
if (typeof nval !== 'undefined') {
- if (nval.toJSON !== undefined) {
+ if (nval._isJXT) {
vals.push(nval.toJSON());
} else {
vals.push(nval);
@@ -30269,7 +23173,7 @@ module.exports = function (JXT, opts) {
return Stanza;
};
-},{"./helpers":229,"lodash.assign":232}],231:[function(require,module,exports){
+},{"./helpers":121,"lodash.assign":132}],123:[function(require,module,exports){
(function (Buffer){
'use strict';
@@ -30658,7 +23562,9 @@ exports.subMultiExtension = function (NS, sub, ChildJXT) {
existing = createElement(NS, sub, this._NS);
values.forEach(function (value) {
- var content = new ChildJXT(value, null, self);
+ var content = new ChildJXT(value, null, {
+ xml: { namespaceURI: NS }
+ });
existing.appendChild(content.xml);
});
@@ -30668,89 +23574,40 @@ exports.subMultiExtension = function (NS, sub, ChildJXT) {
};
}).call(this,require("buffer").Buffer)
-},{"./helpers":229,"buffer":2,"lodash.assign":232}],232:[function(require,module,exports){
+},{"./helpers":121,"buffer":6,"lodash.assign":132}],124:[function(require,module,exports){
/**
- * lodash 3.2.0 (Custom Build) <https://lodash.com/>
+ * lodash 3.0.0 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license <https://lodash.com/license>
*/
-var baseAssign = require('lodash._baseassign'),
- createAssigner = require('lodash._createassigner'),
- keys = require('lodash.keys');
/**
- * A specialized version of `_.assign` for customizing assigned values without
- * support for argument juggling, multiple sources, and `this` binding `customizer`
- * functions.
+ * A specialized version of `_.forEach` for arrays without support for callback
+ * shorthands or `this` binding.
*
* @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @param {Function} customizer The function to customize assigned values.
- * @returns {Object} Returns `object`.
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
*/
-function assignWith(object, source, customizer) {
+function arrayEach(array, iteratee) {
var index = -1,
- props = keys(source),
- length = props.length;
+ length = array.length;
while (++index < length) {
- var key = props[index],
- value = object[key],
- result = customizer(value, source[key], key, object, source);
-
- if ((result === result ? (result !== value) : (value === value)) ||
- (value === undefined && !(key in object))) {
- object[key] = result;
+ if (iteratee(array[index], index, array) === false) {
+ break;
}
}
- return object;
+ return array;
}
-/**
- * Assigns own enumerable properties of source object(s) to the destination
- * object. Subsequent sources overwrite property assignments of previous sources.
- * If `customizer` is provided it is invoked to produce the assigned values.
- * The `customizer` is bound to `thisArg` and invoked with five arguments:
- * (objectValue, sourceValue, key, object, source).
- *
- * **Note:** This method mutates `object` and is based on
- * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
- *
- * @static
- * @memberOf _
- * @alias extend
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @param {Function} [customizer] The function to customize assigned values.
- * @param {*} [thisArg] The `this` binding of `customizer`.
- * @returns {Object} Returns `object`.
- * @example
- *
- * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
- * // => { 'user': 'fred', 'age': 40 }
- *
- * // using a customizer callback
- * var defaults = _.partialRight(_.assign, function(value, other) {
- * return _.isUndefined(value) ? other : value;
- * });
- *
- * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
- * // => { 'user': 'barney', 'age': 36 }
- */
-var assign = createAssigner(function(object, source, customizer) {
- return customizer
- ? assignWith(object, source, customizer)
- : baseAssign(object, source);
-});
-
-module.exports = assign;
+module.exports = arrayEach;
-},{"lodash._baseassign":233,"lodash._createassigner":235,"lodash.keys":239}],233:[function(require,module,exports){
+},{}],125:[function(require,module,exports){
/**
* lodash 3.2.0 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -30779,7 +23636,7 @@ function baseAssign(object, source) {
module.exports = baseAssign;
-},{"lodash._basecopy":234,"lodash.keys":239}],234:[function(require,module,exports){
+},{"lodash._basecopy":126,"lodash.keys":137}],126:[function(require,module,exports){
/**
* lodash 3.0.1 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -30813,7 +23670,257 @@ function baseCopy(source, props, object) {
module.exports = baseCopy;
-},{}],235:[function(require,module,exports){
+},{}],127:[function(require,module,exports){
+/**
+ * lodash 3.0.4 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var keys = require('lodash.keys');
+
+/**
+ * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * The base implementation of `_.forEach` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object|string} Returns `collection`.
+ */
+var baseEach = createBaseEach(baseForOwn);
+
+/**
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
+ * each property. Iteratee functions may exit iteration early by explicitly
+ * returning `false`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+var baseFor = createBaseFor();
+
+/**
+ * The base implementation of `_.forOwn` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+function baseForOwn(object, iteratee) {
+ return baseFor(object, iteratee, keys);
+}
+
+/**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Creates a `baseEach` or `baseEachRight` function.
+ *
+ * @private
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+function createBaseEach(eachFunc, fromRight) {
+ return function(collection, iteratee) {
+ var length = collection ? getLength(collection) : 0;
+ if (!isLength(length)) {
+ return eachFunc(collection, iteratee);
+ }
+ var index = fromRight ? length : -1,
+ iterable = toObject(collection);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ if (iteratee(iterable[index], index, iterable) === false) {
+ break;
+ }
+ }
+ return collection;
+ };
+}
+
+/**
+ * Creates a base function for `_.forIn` or `_.forInRight`.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+function createBaseFor(fromRight) {
+ return function(object, iteratee, keysFunc) {
+ var iterable = toObject(object),
+ props = keysFunc(object),
+ length = props.length,
+ index = fromRight ? length : -1;
+
+ while ((fromRight ? index-- : ++index < length)) {
+ var key = props[index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
+ }
+ }
+ return object;
+ };
+}
+
+/**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * that affects Safari on at least iOS 8.1-8.3 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+var getLength = baseProperty('length');
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Converts `value` to an object if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Object} Returns the object.
+ */
+function toObject(value) {
+ return isObject(value) ? value : Object(value);
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+module.exports = baseEach;
+
+},{"lodash.keys":137}],128:[function(require,module,exports){
+/**
+ * lodash 3.0.1 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/**
+ * A specialized version of `baseCallback` which only supports `this` binding
+ * and specifying the number of arguments to provide to `func`.
+ *
+ * @private
+ * @param {Function} func The function to bind.
+ * @param {*} thisArg The `this` binding of `func`.
+ * @param {number} [argCount] The number of arguments to provide to `func`.
+ * @returns {Function} Returns the callback.
+ */
+function bindCallback(func, thisArg, argCount) {
+ if (typeof func != 'function') {
+ return identity;
+ }
+ if (thisArg === undefined) {
+ return func;
+ }
+ switch (argCount) {
+ case 1: return function(value) {
+ return func.call(thisArg, value);
+ };
+ case 3: return function(value, index, collection) {
+ return func.call(thisArg, value, index, collection);
+ };
+ case 4: return function(accumulator, value, index, collection) {
+ return func.call(thisArg, accumulator, value, index, collection);
+ };
+ case 5: return function(value, other, key, object, source) {
+ return func.call(thisArg, value, other, key, object, source);
+ };
+ }
+ return function() {
+ return func.apply(thisArg, arguments);
+ };
+}
+
+/**
+ * This method returns the first argument provided to it.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {*} value Any value.
+ * @returns {*} Returns `value`.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * _.identity(object) === object;
+ * // => true
+ */
+function identity(value) {
+ return value;
+}
+
+module.exports = bindCallback;
+
+},{}],129:[function(require,module,exports){
/**
* lodash 3.1.1 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -30867,9 +23974,146 @@ function createAssigner(assigner) {
module.exports = createAssigner;
-},{"lodash._bindcallback":236,"lodash._isiterateecall":237,"lodash.restparam":238}],236:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],237:[function(require,module,exports){
+},{"lodash._bindcallback":128,"lodash._isiterateecall":131,"lodash.restparam":138}],130:[function(require,module,exports){
+/**
+ * lodash 3.9.1 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]';
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/**
+ * Checks if `value` is object-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var fnToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = object == null ? undefined : object[key];
+ return isNative(value) ? value : undefined;
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in older versions of Chrome and Safari which return 'function' for regexes
+ // and Safari 8 equivalents which return 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(fnToString.call(value));
+ }
+ return isObjectLike(value) && reIsHostCtor.test(value);
+}
+
+module.exports = getNative;
+
+},{}],131:[function(require,module,exports){
/**
* lodash 3.0.9 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -31003,7 +24247,2556 @@ function isObject(value) {
module.exports = isIterateeCall;
-},{}],238:[function(require,module,exports){
+},{}],132:[function(require,module,exports){
+/**
+ * lodash 3.2.0 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var baseAssign = require('lodash._baseassign'),
+ createAssigner = require('lodash._createassigner'),
+ keys = require('lodash.keys');
+
+/**
+ * A specialized version of `_.assign` for customizing assigned values without
+ * support for argument juggling, multiple sources, and `this` binding `customizer`
+ * functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {Function} customizer The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ */
+function assignWith(object, source, customizer) {
+ var index = -1,
+ props = keys(source),
+ length = props.length;
+
+ while (++index < length) {
+ var key = props[index],
+ value = object[key],
+ result = customizer(value, source[key], key, object, source);
+
+ if ((result === result ? (result !== value) : (value === value)) ||
+ (value === undefined && !(key in object))) {
+ object[key] = result;
+ }
+ }
+ return object;
+}
+
+/**
+ * Assigns own enumerable properties of source object(s) to the destination
+ * object. Subsequent sources overwrite property assignments of previous sources.
+ * If `customizer` is provided it is invoked to produce the assigned values.
+ * The `customizer` is bound to `thisArg` and invoked with five arguments:
+ * (objectValue, sourceValue, key, object, source).
+ *
+ * **Note:** This method mutates `object` and is based on
+ * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
+ *
+ * @static
+ * @memberOf _
+ * @alias extend
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @param {*} [thisArg] The `this` binding of `customizer`.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
+ * // => { 'user': 'fred', 'age': 40 }
+ *
+ * // using a customizer callback
+ * var defaults = _.partialRight(_.assign, function(value, other) {
+ * return _.isUndefined(value) ? other : value;
+ * });
+ *
+ * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
+ * // => { 'user': 'barney', 'age': 36 }
+ */
+var assign = createAssigner(function(object, source, customizer) {
+ return customizer
+ ? assignWith(object, source, customizer)
+ : baseAssign(object, source);
+});
+
+module.exports = assign;
+
+},{"lodash._baseassign":125,"lodash._createassigner":129,"lodash.keys":137}],133:[function(require,module,exports){
+(function (global){
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as the size to enable large array optimizations. */
+var LARGE_ARRAY_SIZE = 200;
+
+/** Used to stand-in for `undefined` hash values. */
+var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+/** Used as references for various `Number` constants. */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+ arrayTag = '[object Array]',
+ boolTag = '[object Boolean]',
+ dateTag = '[object Date]',
+ errorTag = '[object Error]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ mapTag = '[object Map]',
+ numberTag = '[object Number]',
+ objectTag = '[object Object]',
+ promiseTag = '[object Promise]',
+ regexpTag = '[object RegExp]',
+ setTag = '[object Set]',
+ stringTag = '[object String]',
+ symbolTag = '[object Symbol]',
+ weakMapTag = '[object WeakMap]';
+
+var arrayBufferTag = '[object ArrayBuffer]',
+ dataViewTag = '[object DataView]',
+ float32Tag = '[object Float32Array]',
+ float64Tag = '[object Float64Array]',
+ int8Tag = '[object Int8Array]',
+ int16Tag = '[object Int16Array]',
+ int32Tag = '[object Int32Array]',
+ uint8Tag = '[object Uint8Array]',
+ uint8ClampedTag = '[object Uint8ClampedArray]',
+ uint16Tag = '[object Uint16Array]',
+ uint32Tag = '[object Uint32Array]';
+
+/**
+ * Used to match `RegExp`
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
+ */
+var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+
+/** Used to match `RegExp` flags from their coerced string values. */
+var reFlags = /\w*$/;
+
+/** Used to detect host constructors (Safari). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/** Used to detect unsigned integer values. */
+var reIsUint = /^(?:0|[1-9]\d*)$/;
+
+/** Used to identify `toStringTag` values supported by `_.clone`. */
+var cloneableTags = {};
+cloneableTags[argsTag] = cloneableTags[arrayTag] =
+cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
+cloneableTags[boolTag] = cloneableTags[dateTag] =
+cloneableTags[float32Tag] = cloneableTags[float64Tag] =
+cloneableTags[int8Tag] = cloneableTags[int16Tag] =
+cloneableTags[int32Tag] = cloneableTags[mapTag] =
+cloneableTags[numberTag] = cloneableTags[objectTag] =
+cloneableTags[regexpTag] = cloneableTags[setTag] =
+cloneableTags[stringTag] = cloneableTags[symbolTag] =
+cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
+cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
+cloneableTags[errorTag] = cloneableTags[funcTag] =
+cloneableTags[weakMapTag] = false;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
+
+/** Detect free variable `self`. */
+var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+/** Used as a reference to the global object. */
+var root = freeGlobal || freeSelf || Function('return this')();
+
+/** Detect free variable `exports`. */
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
+
+/** Detect free variable `module`. */
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
+
+/** Detect the popular CommonJS extension `module.exports`. */
+var moduleExports = freeModule && freeModule.exports === freeExports;
+
+/**
+ * Adds the key-value `pair` to `map`.
+ *
+ * @private
+ * @param {Object} map The map to modify.
+ * @param {Array} pair The key-value pair to add.
+ * @returns {Object} Returns `map`.
+ */
+function addMapEntry(map, pair) {
+ // Don't return `map.set` because it's not chainable in IE 11.
+ map.set(pair[0], pair[1]);
+ return map;
+}
+
+/**
+ * Adds `value` to `set`.
+ *
+ * @private
+ * @param {Object} set The set to modify.
+ * @param {*} value The value to add.
+ * @returns {Object} Returns `set`.
+ */
+function addSetEntry(set, value) {
+ // Don't return `set.add` because it's not chainable in IE 11.
+ set.add(value);
+ return set;
+}
+
+/**
+ * A specialized version of `_.forEach` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+function arrayEach(array, iteratee) {
+ var index = -1,
+ length = array ? array.length : 0;
+
+ while (++index < length) {
+ if (iteratee(array[index], index, array) === false) {
+ break;
+ }
+ }
+ return array;
+}
+
+/**
+ * Appends the elements of `values` to `array`.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to append.
+ * @returns {Array} Returns `array`.
+ */
+function arrayPush(array, values) {
+ var index = -1,
+ length = values.length,
+ offset = array.length;
+
+ while (++index < length) {
+ array[offset + index] = values[index];
+ }
+ return array;
+}
+
+/**
+ * A specialized version of `_.reduce` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initAccum] Specify using the first element of `array` as
+ * the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+function arrayReduce(array, iteratee, accumulator, initAccum) {
+ var index = -1,
+ length = array ? array.length : 0;
+
+ if (initAccum && length) {
+ accumulator = array[++index];
+ }
+ while (++index < length) {
+ accumulator = iteratee(accumulator, array[index], index, array);
+ }
+ return accumulator;
+}
+
+/**
+ * The base implementation of `_.times` without support for iteratee shorthands
+ * or max array length checks.
+ *
+ * @private
+ * @param {number} n The number of times to invoke `iteratee`.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the array of results.
+ */
+function baseTimes(n, iteratee) {
+ var index = -1,
+ result = Array(n);
+
+ while (++index < n) {
+ result[index] = iteratee(index);
+ }
+ return result;
+}
+
+/**
+ * Gets the value at `key` of `object`.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {string} key The key of the property to get.
+ * @returns {*} Returns the property value.
+ */
+function getValue(object, key) {
+ return object == null ? undefined : object[key];
+}
+
+/**
+ * Checks if `value` is a host object in IE < 9.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
+ */
+function isHostObject(value) {
+ // Many host objects are `Object` objects that can coerce to strings
+ // despite having improperly defined `toString` methods.
+ var result = false;
+ if (value != null && typeof value.toString != 'function') {
+ try {
+ result = !!(value + '');
+ } catch (e) {}
+ }
+ return result;
+}
+
+/**
+ * Converts `map` to its key-value pairs.
+ *
+ * @private
+ * @param {Object} map The map to convert.
+ * @returns {Array} Returns the key-value pairs.
+ */
+function mapToArray(map) {
+ var index = -1,
+ result = Array(map.size);
+
+ map.forEach(function(value, key) {
+ result[++index] = [key, value];
+ });
+ return result;
+}
+
+/**
+ * Creates a unary function that invokes `func` with its argument transformed.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {Function} transform The argument transform.
+ * @returns {Function} Returns the new function.
+ */
+function overArg(func, transform) {
+ return function(arg) {
+ return func(transform(arg));
+ };
+}
+
+/**
+ * Converts `set` to an array of its values.
+ *
+ * @private
+ * @param {Object} set The set to convert.
+ * @returns {Array} Returns the values.
+ */
+function setToArray(set) {
+ var index = -1,
+ result = Array(set.size);
+
+ set.forEach(function(value) {
+ result[++index] = value;
+ });
+ return result;
+}
+
+/** Used for built-in method references. */
+var arrayProto = Array.prototype,
+ funcProto = Function.prototype,
+ objectProto = Object.prototype;
+
+/** Used to detect overreaching core-js shims. */
+var coreJsData = root['__core-js_shared__'];
+
+/** Used to detect methods masquerading as native. */
+var maskSrcKey = (function() {
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
+ return uid ? ('Symbol(src)_1.' + uid) : '';
+}());
+
+/** Used to resolve the decompiled source of functions. */
+var funcToString = funcProto.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/** Built-in value references. */
+var Buffer = moduleExports ? root.Buffer : undefined,
+ Symbol = root.Symbol,
+ Uint8Array = root.Uint8Array,
+ getPrototype = overArg(Object.getPrototypeOf, Object),
+ objectCreate = Object.create,
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
+ splice = arrayProto.splice;
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeGetSymbols = Object.getOwnPropertySymbols,
+ nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
+ nativeKeys = overArg(Object.keys, Object);
+
+/* Built-in method references that are verified to be native. */
+var DataView = getNative(root, 'DataView'),
+ Map = getNative(root, 'Map'),
+ Promise = getNative(root, 'Promise'),
+ Set = getNative(root, 'Set'),
+ WeakMap = getNative(root, 'WeakMap'),
+ nativeCreate = getNative(Object, 'create');
+
+/** Used to detect maps, sets, and weakmaps. */
+var dataViewCtorString = toSource(DataView),
+ mapCtorString = toSource(Map),
+ promiseCtorString = toSource(Promise),
+ setCtorString = toSource(Set),
+ weakMapCtorString = toSource(WeakMap);
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
+
+/**
+ * Creates a hash object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function Hash(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the hash.
+ *
+ * @private
+ * @name clear
+ * @memberOf Hash
+ */
+function hashClear() {
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
+}
+
+/**
+ * Removes `key` and its value from the hash.
+ *
+ * @private
+ * @name delete
+ * @memberOf Hash
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function hashDelete(key) {
+ return this.has(key) && delete this.__data__[key];
+}
+
+/**
+ * Gets the hash value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Hash
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function hashGet(key) {
+ var data = this.__data__;
+ if (nativeCreate) {
+ var result = data[key];
+ return result === HASH_UNDEFINED ? undefined : result;
+ }
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
+}
+
+/**
+ * Checks if a hash value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Hash
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function hashHas(key) {
+ var data = this.__data__;
+ return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
+}
+
+/**
+ * Sets the hash `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Hash
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the hash instance.
+ */
+function hashSet(key, value) {
+ var data = this.__data__;
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
+ return this;
+}
+
+// Add methods to `Hash`.
+Hash.prototype.clear = hashClear;
+Hash.prototype['delete'] = hashDelete;
+Hash.prototype.get = hashGet;
+Hash.prototype.has = hashHas;
+Hash.prototype.set = hashSet;
+
+/**
+ * Creates an list cache object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function ListCache(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the list cache.
+ *
+ * @private
+ * @name clear
+ * @memberOf ListCache
+ */
+function listCacheClear() {
+ this.__data__ = [];
+}
+
+/**
+ * Removes `key` and its value from the list cache.
+ *
+ * @private
+ * @name delete
+ * @memberOf ListCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function listCacheDelete(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data.length - 1;
+ if (index == lastIndex) {
+ data.pop();
+ } else {
+ splice.call(data, index, 1);
+ }
+ return true;
+}
+
+/**
+ * Gets the list cache value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf ListCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function listCacheGet(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ return index < 0 ? undefined : data[index][1];
+}
+
+/**
+ * Checks if a list cache value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf ListCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function listCacheHas(key) {
+ return assocIndexOf(this.__data__, key) > -1;
+}
+
+/**
+ * Sets the list cache `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf ListCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the list cache instance.
+ */
+function listCacheSet(key, value) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ data.push([key, value]);
+ } else {
+ data[index][1] = value;
+ }
+ return this;
+}
+
+// Add methods to `ListCache`.
+ListCache.prototype.clear = listCacheClear;
+ListCache.prototype['delete'] = listCacheDelete;
+ListCache.prototype.get = listCacheGet;
+ListCache.prototype.has = listCacheHas;
+ListCache.prototype.set = listCacheSet;
+
+/**
+ * Creates a map cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function MapCache(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the map.
+ *
+ * @private
+ * @name clear
+ * @memberOf MapCache
+ */
+function mapCacheClear() {
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': new (Map || ListCache),
+ 'string': new Hash
+ };
+}
+
+/**
+ * Removes `key` and its value from the map.
+ *
+ * @private
+ * @name delete
+ * @memberOf MapCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function mapCacheDelete(key) {
+ return getMapData(this, key)['delete'](key);
+}
+
+/**
+ * Gets the map value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf MapCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function mapCacheGet(key) {
+ return getMapData(this, key).get(key);
+}
+
+/**
+ * Checks if a map value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf MapCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function mapCacheHas(key) {
+ return getMapData(this, key).has(key);
+}
+
+/**
+ * Sets the map `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf MapCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the map cache instance.
+ */
+function mapCacheSet(key, value) {
+ getMapData(this, key).set(key, value);
+ return this;
+}
+
+// Add methods to `MapCache`.
+MapCache.prototype.clear = mapCacheClear;
+MapCache.prototype['delete'] = mapCacheDelete;
+MapCache.prototype.get = mapCacheGet;
+MapCache.prototype.has = mapCacheHas;
+MapCache.prototype.set = mapCacheSet;
+
+/**
+ * Creates a stack cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function Stack(entries) {
+ this.__data__ = new ListCache(entries);
+}
+
+/**
+ * Removes all key-value entries from the stack.
+ *
+ * @private
+ * @name clear
+ * @memberOf Stack
+ */
+function stackClear() {
+ this.__data__ = new ListCache;
+}
+
+/**
+ * Removes `key` and its value from the stack.
+ *
+ * @private
+ * @name delete
+ * @memberOf Stack
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function stackDelete(key) {
+ return this.__data__['delete'](key);
+}
+
+/**
+ * Gets the stack value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Stack
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function stackGet(key) {
+ return this.__data__.get(key);
+}
+
+/**
+ * Checks if a stack value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Stack
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function stackHas(key) {
+ return this.__data__.has(key);
+}
+
+/**
+ * Sets the stack `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Stack
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the stack cache instance.
+ */
+function stackSet(key, value) {
+ var cache = this.__data__;
+ if (cache instanceof ListCache) {
+ var pairs = cache.__data__;
+ if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
+ pairs.push([key, value]);
+ return this;
+ }
+ cache = this.__data__ = new MapCache(pairs);
+ }
+ cache.set(key, value);
+ return this;
+}
+
+// Add methods to `Stack`.
+Stack.prototype.clear = stackClear;
+Stack.prototype['delete'] = stackDelete;
+Stack.prototype.get = stackGet;
+Stack.prototype.has = stackHas;
+Stack.prototype.set = stackSet;
+
+/**
+ * Creates an array of the enumerable property names of the array-like `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @param {boolean} inherited Specify returning inherited property names.
+ * @returns {Array} Returns the array of property names.
+ */
+function arrayLikeKeys(value, inherited) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ // Safari 9 makes `arguments.length` enumerable in strict mode.
+ var result = (isArray(value) || isArguments(value))
+ ? baseTimes(value.length, String)
+ : [];
+
+ var length = result.length,
+ skipIndexes = !!length;
+
+ for (var key in value) {
+ if ((inherited || hasOwnProperty.call(value, key)) &&
+ !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+function assignValue(object, key, value) {
+ var objValue = object[key];
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
+ (value === undefined && !(key in object))) {
+ object[key] = value;
+ }
+}
+
+/**
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} key The key to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+}
+
+/**
+ * The base implementation of `_.assign` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+function baseAssign(object, source) {
+ return object && copyObject(source, keys(source), object);
+}
+
+/**
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
+ * traversed objects.
+ *
+ * @private
+ * @param {*} value The value to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @param {boolean} [isFull] Specify a clone including symbols.
+ * @param {Function} [customizer] The function to customize cloning.
+ * @param {string} [key] The key of `value`.
+ * @param {Object} [object] The parent object of `value`.
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
+ * @returns {*} Returns the cloned value.
+ */
+function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
+ var result;
+ if (customizer) {
+ result = object ? customizer(value, key, object, stack) : customizer(value);
+ }
+ if (result !== undefined) {
+ return result;
+ }
+ if (!isObject(value)) {
+ return value;
+ }
+ var isArr = isArray(value);
+ if (isArr) {
+ result = initCloneArray(value);
+ if (!isDeep) {
+ return copyArray(value, result);
+ }
+ } else {
+ var tag = getTag(value),
+ isFunc = tag == funcTag || tag == genTag;
+
+ if (isBuffer(value)) {
+ return cloneBuffer(value, isDeep);
+ }
+ if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
+ if (isHostObject(value)) {
+ return object ? value : {};
+ }
+ result = initCloneObject(isFunc ? {} : value);
+ if (!isDeep) {
+ return copySymbols(value, baseAssign(result, value));
+ }
+ } else {
+ if (!cloneableTags[tag]) {
+ return object ? value : {};
+ }
+ result = initCloneByTag(value, tag, baseClone, isDeep);
+ }
+ }
+ // Check for circular references and return its corresponding clone.
+ stack || (stack = new Stack);
+ var stacked = stack.get(value);
+ if (stacked) {
+ return stacked;
+ }
+ stack.set(value, result);
+
+ if (!isArr) {
+ var props = isFull ? getAllKeys(value) : keys(value);
+ }
+ arrayEach(props || value, function(subValue, key) {
+ if (props) {
+ key = subValue;
+ subValue = value[key];
+ }
+ // Recursively populate clone (susceptible to call stack limits).
+ assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
+ });
+ return result;
+}
+
+/**
+ * The base implementation of `_.create` without support for assigning
+ * properties to the created object.
+ *
+ * @private
+ * @param {Object} prototype The object to inherit from.
+ * @returns {Object} Returns the new object.
+ */
+function baseCreate(proto) {
+ return isObject(proto) ? objectCreate(proto) : {};
+}
+
+/**
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
+ * symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+function baseGetAllKeys(object, keysFunc, symbolsFunc) {
+ var result = keysFunc(object);
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
+}
+
+/**
+ * The base implementation of `getTag`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+function baseGetTag(value) {
+ return objectToString.call(value);
+}
+
+/**
+ * The base implementation of `_.isNative` without bad shim checks.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
+ */
+function baseIsNative(value) {
+ if (!isObject(value) || isMasked(value)) {
+ return false;
+ }
+ var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource(value));
+}
+
+/**
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+function baseKeys(object) {
+ if (!isPrototype(object)) {
+ return nativeKeys(object);
+ }
+ var result = [];
+ for (var key in Object(object)) {
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Creates a clone of `buffer`.
+ *
+ * @private
+ * @param {Buffer} buffer The buffer to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Buffer} Returns the cloned buffer.
+ */
+function cloneBuffer(buffer, isDeep) {
+ if (isDeep) {
+ return buffer.slice();
+ }
+ var result = new buffer.constructor(buffer.length);
+ buffer.copy(result);
+ return result;
+}
+
+/**
+ * Creates a clone of `arrayBuffer`.
+ *
+ * @private
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
+ */
+function cloneArrayBuffer(arrayBuffer) {
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+ new Uint8Array(result).set(new Uint8Array(arrayBuffer));
+ return result;
+}
+
+/**
+ * Creates a clone of `dataView`.
+ *
+ * @private
+ * @param {Object} dataView The data view to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned data view.
+ */
+function cloneDataView(dataView, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
+}
+
+/**
+ * Creates a clone of `map`.
+ *
+ * @private
+ * @param {Object} map The map to clone.
+ * @param {Function} cloneFunc The function to clone values.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned map.
+ */
+function cloneMap(map, isDeep, cloneFunc) {
+ var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
+ return arrayReduce(array, addMapEntry, new map.constructor);
+}
+
+/**
+ * Creates a clone of `regexp`.
+ *
+ * @private
+ * @param {Object} regexp The regexp to clone.
+ * @returns {Object} Returns the cloned regexp.
+ */
+function cloneRegExp(regexp) {
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
+ result.lastIndex = regexp.lastIndex;
+ return result;
+}
+
+/**
+ * Creates a clone of `set`.
+ *
+ * @private
+ * @param {Object} set The set to clone.
+ * @param {Function} cloneFunc The function to clone values.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned set.
+ */
+function cloneSet(set, isDeep, cloneFunc) {
+ var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
+ return arrayReduce(array, addSetEntry, new set.constructor);
+}
+
+/**
+ * Creates a clone of the `symbol` object.
+ *
+ * @private
+ * @param {Object} symbol The symbol object to clone.
+ * @returns {Object} Returns the cloned symbol object.
+ */
+function cloneSymbol(symbol) {
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
+}
+
+/**
+ * Creates a clone of `typedArray`.
+ *
+ * @private
+ * @param {Object} typedArray The typed array to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned typed array.
+ */
+function cloneTypedArray(typedArray, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
+}
+
+/**
+ * Copies the values of `source` to `array`.
+ *
+ * @private
+ * @param {Array} source The array to copy values from.
+ * @param {Array} [array=[]] The array to copy values to.
+ * @returns {Array} Returns `array`.
+ */
+function copyArray(source, array) {
+ var index = -1,
+ length = source.length;
+
+ array || (array = Array(length));
+ while (++index < length) {
+ array[index] = source[index];
+ }
+ return array;
+}
+
+/**
+ * Copies properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy properties from.
+ * @param {Array} props The property identifiers to copy.
+ * @param {Object} [object={}] The object to copy properties to.
+ * @param {Function} [customizer] The function to customize copied values.
+ * @returns {Object} Returns `object`.
+ */
+function copyObject(source, props, object, customizer) {
+ object || (object = {});
+
+ var index = -1,
+ length = props.length;
+
+ while (++index < length) {
+ var key = props[index];
+
+ var newValue = customizer
+ ? customizer(object[key], source[key], key, object, source)
+ : undefined;
+
+ assignValue(object, key, newValue === undefined ? source[key] : newValue);
+ }
+ return object;
+}
+
+/**
+ * Copies own symbol properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+function copySymbols(source, object) {
+ return copyObject(source, getSymbols(source), object);
+}
+
+/**
+ * Creates an array of own enumerable property names and symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+function getAllKeys(object) {
+ return baseGetAllKeys(object, keys, getSymbols);
+}
+
+/**
+ * Gets the data for `map`.
+ *
+ * @private
+ * @param {Object} map The map to query.
+ * @param {string} key The reference key.
+ * @returns {*} Returns the map data.
+ */
+function getMapData(map, key) {
+ var data = map.__data__;
+ return isKeyable(key)
+ ? data[typeof key == 'string' ? 'string' : 'hash']
+ : data.map;
+}
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = getValue(object, key);
+ return baseIsNative(value) ? value : undefined;
+}
+
+/**
+ * Creates an array of the own enumerable symbol properties of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of symbols.
+ */
+var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
+
+/**
+ * Gets the `toStringTag` of `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+var getTag = baseGetTag;
+
+// Fallback for data views, maps, sets, and weak maps in IE 11,
+// for data views in Edge < 14, and promises in Node.js.
+if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
+ (Map && getTag(new Map) != mapTag) ||
+ (Promise && getTag(Promise.resolve()) != promiseTag) ||
+ (Set && getTag(new Set) != setTag) ||
+ (WeakMap && getTag(new WeakMap) != weakMapTag)) {
+ getTag = function(value) {
+ var result = objectToString.call(value),
+ Ctor = result == objectTag ? value.constructor : undefined,
+ ctorString = Ctor ? toSource(Ctor) : undefined;
+
+ if (ctorString) {
+ switch (ctorString) {
+ case dataViewCtorString: return dataViewTag;
+ case mapCtorString: return mapTag;
+ case promiseCtorString: return promiseTag;
+ case setCtorString: return setTag;
+ case weakMapCtorString: return weakMapTag;
+ }
+ }
+ return result;
+ };
+}
+
+/**
+ * Initializes an array clone.
+ *
+ * @private
+ * @param {Array} array The array to clone.
+ * @returns {Array} Returns the initialized clone.
+ */
+function initCloneArray(array) {
+ var length = array.length,
+ result = array.constructor(length);
+
+ // Add properties assigned by `RegExp#exec`.
+ if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
+ result.index = array.index;
+ result.input = array.input;
+ }
+ return result;
+}
+
+/**
+ * Initializes an object clone.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+function initCloneObject(object) {
+ return (typeof object.constructor == 'function' && !isPrototype(object))
+ ? baseCreate(getPrototype(object))
+ : {};
+}
+
+/**
+ * Initializes an object clone based on its `toStringTag`.
+ *
+ * **Note:** This function only supports cloning values with tags of
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @param {string} tag The `toStringTag` of the object to clone.
+ * @param {Function} cloneFunc The function to clone values.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+function initCloneByTag(object, tag, cloneFunc, isDeep) {
+ var Ctor = object.constructor;
+ switch (tag) {
+ case arrayBufferTag:
+ return cloneArrayBuffer(object);
+
+ case boolTag:
+ case dateTag:
+ return new Ctor(+object);
+
+ case dataViewTag:
+ return cloneDataView(object, isDeep);
+
+ case float32Tag: case float64Tag:
+ case int8Tag: case int16Tag: case int32Tag:
+ case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
+ return cloneTypedArray(object, isDeep);
+
+ case mapTag:
+ return cloneMap(object, isDeep, cloneFunc);
+
+ case numberTag:
+ case stringTag:
+ return new Ctor(object);
+
+ case regexpTag:
+ return cloneRegExp(object);
+
+ case setTag:
+ return cloneSet(object, isDeep, cloneFunc);
+
+ case symbolTag:
+ return cloneSymbol(object);
+ }
+}
+
+/**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+function isIndex(value, length) {
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return !!length &&
+ (typeof value == 'number' || reIsUint.test(value)) &&
+ (value > -1 && value % 1 == 0 && value < length);
+}
+
+/**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+function isKeyable(value) {
+ var type = typeof value;
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
+ ? (value !== '__proto__')
+ : (value === null);
+}
+
+/**
+ * Checks if `func` has its source masked.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
+ */
+function isMasked(func) {
+ return !!maskSrcKey && (maskSrcKey in func);
+}
+
+/**
+ * Checks if `value` is likely a prototype object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
+ */
+function isPrototype(value) {
+ var Ctor = value && value.constructor,
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
+
+ return value === proto;
+}
+
+/**
+ * Converts `func` to its source code.
+ *
+ * @private
+ * @param {Function} func The function to process.
+ * @returns {string} Returns the source code.
+ */
+function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString.call(func);
+ } catch (e) {}
+ try {
+ return (func + '');
+ } catch (e) {}
+ }
+ return '';
+}
+
+/**
+ * This method is like `_.clone` except that it recursively clones `value`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.0.0
+ * @category Lang
+ * @param {*} value The value to recursively clone.
+ * @returns {*} Returns the deep cloned value.
+ * @see _.clone
+ * @example
+ *
+ * var objects = [{ 'a': 1 }, { 'b': 2 }];
+ *
+ * var deep = _.cloneDeep(objects);
+ * console.log(deep[0] === objects[0]);
+ * // => false
+ */
+function cloneDeep(value) {
+ return baseClone(value, true, true);
+}
+
+/**
+ * Performs a
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * comparison between two values to determine if they are equivalent.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1 };
+ * var other = { 'a': 1 };
+ *
+ * _.eq(object, object);
+ * // => true
+ *
+ * _.eq(object, other);
+ * // => false
+ *
+ * _.eq('a', 'a');
+ * // => true
+ *
+ * _.eq('a', Object('a'));
+ * // => false
+ *
+ * _.eq(NaN, NaN);
+ * // => true
+ */
+function eq(value, other) {
+ return value === other || (value !== value && other !== other);
+}
+
+/**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ * else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
+ (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+var isArray = Array.isArray;
+
+/**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+}
+
+/**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
+ * else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+
+/**
+ * Checks if `value` is a buffer.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
+ * @example
+ *
+ * _.isBuffer(new Buffer(2));
+ * // => true
+ *
+ * _.isBuffer(new Uint8Array(2));
+ * // => false
+ */
+var isBuffer = nativeIsBuffer || stubFalse;
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+function keys(object) {
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
+}
+
+/**
+ * This method returns a new empty array.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.13.0
+ * @category Util
+ * @returns {Array} Returns the new empty array.
+ * @example
+ *
+ * var arrays = _.times(2, _.stubArray);
+ *
+ * console.log(arrays);
+ * // => [[], []]
+ *
+ * console.log(arrays[0] === arrays[1]);
+ * // => false
+ */
+function stubArray() {
+ return [];
+}
+
+/**
+ * This method returns `false`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.13.0
+ * @category Util
+ * @returns {boolean} Returns `false`.
+ * @example
+ *
+ * _.times(2, _.stubFalse);
+ * // => [false, false]
+ */
+function stubFalse() {
+ return false;
+}
+
+module.exports = cloneDeep;
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],134:[function(require,module,exports){
+/**
+ * lodash 3.0.3 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var arrayEach = require('lodash._arrayeach'),
+ baseEach = require('lodash._baseeach'),
+ bindCallback = require('lodash._bindcallback'),
+ isArray = require('lodash.isarray');
+
+/**
+ * Creates a function for `_.forEach` or `_.forEachRight`.
+ *
+ * @private
+ * @param {Function} arrayFunc The function to iterate over an array.
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @returns {Function} Returns the new each function.
+ */
+function createForEach(arrayFunc, eachFunc) {
+ return function(collection, iteratee, thisArg) {
+ return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))
+ ? arrayFunc(collection, iteratee)
+ : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
+ };
+}
+
+/**
+ * Iterates over elements of `collection` invoking `iteratee` for each element.
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments:
+ * (value, index|key, collection). Iteratee functions may exit iteration early
+ * by explicitly returning `false`.
+ *
+ * **Note:** As with other "Collections" methods, objects with a "length" property
+ * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
+ * may be used for object iteration.
+ *
+ * @static
+ * @memberOf _
+ * @alias each
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array|Object|string} Returns `collection`.
+ * @example
+ *
+ * _([1, 2]).forEach(function(n) {
+ * console.log(n);
+ * }).value();
+ * // => logs each value from left to right and returns the array
+ *
+ * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
+ * console.log(n, key);
+ * });
+ * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
+ */
+var forEach = createForEach(arrayEach, baseEach);
+
+module.exports = forEach;
+
+},{"lodash._arrayeach":124,"lodash._baseeach":127,"lodash._bindcallback":128,"lodash.isarray":136}],135:[function(require,module,exports){
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]';
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var propertyIsEnumerable = objectProto.propertyIsEnumerable;
+
+/**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ * else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
+ (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
+}
+
+/**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+}
+
+/**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
+ * else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+module.exports = isArguments;
+
+},{}],136:[function(require,module,exports){
+/**
+ * lodash 3.0.4 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/** `Object#toString` result references. */
+var arrayTag = '[object Array]',
+ funcTag = '[object Function]';
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/**
+ * Checks if `value` is object-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var fnToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeIsArray = getNative(Array, 'isArray');
+
+/**
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = object == null ? undefined : object[key];
+ return isNative(value) ? value : undefined;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(function() { return arguments; }());
+ * // => false
+ */
+var isArray = nativeIsArray || function(value) {
+ return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
+};
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in older versions of Chrome and Safari which return 'function' for regexes
+ // and Safari 8 equivalents which return 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(fnToString.call(value));
+ }
+ return isObjectLike(value) && reIsHostCtor.test(value);
+}
+
+module.exports = isArray;
+
+},{}],137:[function(require,module,exports){
+/**
+ * lodash 3.1.2 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var getNative = require('lodash._getnative'),
+ isArguments = require('lodash.isarguments'),
+ isArray = require('lodash.isarray');
+
+/** Used to detect unsigned integer values. */
+var reIsUint = /^\d+$/;
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeKeys = getNative(Object, 'keys');
+
+/**
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * that affects Safari on at least iOS 8.1-8.3 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+var getLength = baseProperty('length');
+
+/**
+ * Checks if `value` is array-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ */
+function isArrayLike(value) {
+ return value != null && isLength(getLength(value));
+}
+
+/**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+function isIndex(value, length) {
+ value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return value > -1 && value % 1 == 0 && value < length;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * A fallback implementation of `Object.keys` which creates an array of the
+ * own enumerable property names of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+function shimKeys(object) {
+ var props = keysIn(object),
+ propsLength = props.length,
+ length = propsLength && object.length;
+
+ var allowIndexes = !!length && isLength(length) &&
+ (isArray(object) || isArguments(object));
+
+ var index = -1,
+ result = [];
+
+ while (++index < propsLength) {
+ var key = props[index];
+ if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+var keys = !nativeKeys ? shimKeys : function(object) {
+ var Ctor = object == null ? undefined : object.constructor;
+ if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
+ (typeof object != 'function' && isArrayLike(object))) {
+ return shimKeys(object);
+ }
+ return isObject(object) ? nativeKeys(object) : [];
+};
+
+/**
+ * Creates an array of the own and inherited enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keysIn(new Foo);
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
+ */
+function keysIn(object) {
+ if (object == null) {
+ return [];
+ }
+ if (!isObject(object)) {
+ object = Object(object);
+ }
+ var length = object.length;
+ length = (length && isLength(length) &&
+ (isArray(object) || isArguments(object)) && length) || 0;
+
+ var Ctor = object.constructor,
+ index = -1,
+ isProto = typeof Ctor == 'function' && Ctor.prototype === object,
+ result = Array(length),
+ skipIndexes = length > 0;
+
+ while (++index < length) {
+ result[index] = (index + '');
+ }
+ for (var key in object) {
+ if (!(skipIndexes && isIndex(key, length)) &&
+ !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+module.exports = keys;
+
+},{"lodash._getnative":130,"lodash.isarguments":135,"lodash.isarray":136}],138:[function(require,module,exports){
/**
* lodash 3.6.1 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -31072,322 +26865,378 @@ function restParam(func, start) {
module.exports = restParam;
-},{}],239:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":240,"lodash.isarguments":241,"lodash.isarray":242}],240:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],241:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],242:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],243:[function(require,module,exports){
-'use strict';
+},{}],139:[function(require,module,exports){
+'use strict'
+
+var parse = require('./lib/parse')
+var Parser = require('./lib/Parser')
+var escape = require('./lib/escape')
+var Element = require('./lib/Element')
+var equal = require('./lib/equal')
+var createElement = require('./lib/createElement')
+var tag = require('./lib/tag')
+var tagString = require('./lib/tagString')
+var is = require('./lib/is')
+
+exports = module.exports = tag
+
+exports.Element = Element
+
+exports.equal = equal.equal
+exports.nameEqual = equal.name
+exports.attrsEqual = equal.attrs
+exports.childrenEqual = equal.children
+
+exports.isNode = is.isNode
+exports.isElement = is.isElement
+exports.isText = is.isText
+
+exports.createElement = createElement
-var util = require('util')
- , Element = require('./element').Element
+exports.escapeXML = escape.escapeXML
+exports.unescapeXML = escape.unescapeXML
+exports.escapeXMLText = escape.escapeXMLText
+exports.unescapeXMLText = escape.unescapeXMLText
-function DOMElement(name, attrs) {
- Element.call(this, name, attrs)
+exports.Parser = Parser
+exports.parse = parse
- this.nodeType = 1
- this.nodeName = this.localName
+exports.tag = tag
+exports.tagString = tagString
+
+},{"./lib/Element":141,"./lib/Parser":142,"./lib/createElement":144,"./lib/equal":145,"./lib/escape":146,"./lib/is":147,"./lib/parse":148,"./lib/tag":150,"./lib/tagString":151}],140:[function(require,module,exports){
+'use strict'
+
+var inherits = require('inherits')
+var Element = require('./Element')
+
+function DOMElement (name, attrs) {
+ Element.call(this, name, attrs)
+
+ this.nodeType = 1
+ this.nodeName = this.localName
}
-util.inherits(DOMElement, Element)
+inherits(DOMElement, Element)
-DOMElement.prototype._getElement = function(name, attrs) {
- var element = new DOMElement(name, attrs)
- return element
+DOMElement.prototype._getElement = function (name, attrs) {
+ var element = new DOMElement(name, attrs)
+ return element
}
Object.defineProperty(DOMElement.prototype, 'localName', {
- get: function () {
- return this.getName()
- }
+ get: function () {
+ return this.getName()
+ }
})
Object.defineProperty(DOMElement.prototype, 'namespaceURI', {
- get: function () {
- return this.getNS()
- }
+ get: function () {
+ return this.getNS()
+ }
})
Object.defineProperty(DOMElement.prototype, 'parentNode', {
- get: function () {
- return this.parent
- }
+ get: function () {
+ return this.parent
+ }
})
Object.defineProperty(DOMElement.prototype, 'childNodes', {
- get: function () {
- return this.children
- }
+ get: function () {
+ return this.children
+ }
})
Object.defineProperty(DOMElement.prototype, 'textContent', {
- get: function () {
- return this.getText()
- },
- set: function (value) {
- this.children.push(value)
- }
+ get: function () {
+ return this.getText()
+ },
+ set: function (value) {
+ this.children.push(value)
+ }
})
DOMElement.prototype.getElementsByTagName = function (name) {
- return this.getChildren(name)
+ return this.getChildren(name)
}
DOMElement.prototype.getAttribute = function (name) {
- return this.getAttr(name)
+ return this.getAttr(name)
}
DOMElement.prototype.setAttribute = function (name, value) {
- this.attr(name, value)
+ this.attr(name, value)
}
DOMElement.prototype.getAttributeNS = function (ns, name) {
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- return this.getAttr(['xml', name].join(':'))
- }
- return this.getAttr(name, ns)
+ if (ns === 'http://www.w3.org/XML/1998/namespace') {
+ return this.getAttr(['xml', name].join(':'))
+ }
+ return this.getAttr(name, ns)
}
DOMElement.prototype.setAttributeNS = function (ns, name, value) {
- var prefix
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- prefix = 'xml'
- } else {
- var nss = this.getXmlns()
- prefix = nss[ns] || ''
- }
- if (prefix) {
- this.attr([prefix, name].join(':'), value)
- }
+ var prefix
+ if (ns === 'http://www.w3.org/XML/1998/namespace') {
+ prefix = 'xml'
+ } else {
+ var nss = this.getXmlns()
+ prefix = nss[ns] || ''
+ }
+ if (prefix) {
+ this.attr([prefix, name].join(':'), value)
+ }
}
DOMElement.prototype.removeAttribute = function (name) {
- this.attr(name, null)
+ this.attr(name, null)
}
DOMElement.prototype.removeAttributeNS = function (ns, name) {
- var prefix
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- prefix = 'xml'
- } else {
- var nss = this.getXmlns()
- prefix = nss[ns] || ''
- }
- if (prefix) {
- this.attr([prefix, name].join(':'), null)
- }
+ var prefix
+ if (ns === 'http://www.w3.org/XML/1998/namespace') {
+ prefix = 'xml'
+ } else {
+ var nss = this.getXmlns()
+ prefix = nss[ns] || ''
+ }
+ if (prefix) {
+ this.attr([prefix, name].join(':'), null)
+ }
}
DOMElement.prototype.appendChild = function (el) {
- this.cnode(el)
+ this.cnode(el)
}
DOMElement.prototype.removeChild = function (el) {
- this.remove(el)
+ this.remove(el)
+}
+
+DOMElement.createElement = function (name, attrs /*, child1, child2, ...*/) {
+ var el = new DOMElement(name, attrs)
+
+ var children = Array.prototype.slice.call(arguments, 2)
+
+ children.forEach(function (child) {
+ el.appendChild(child)
+ })
+ return el
}
module.exports = DOMElement
-},{"./element":244,"util":28}],244:[function(require,module,exports){
-'use strict';
+},{"./Element":141,"inherits":45}],141:[function(require,module,exports){
+'use strict'
+
+var escape = require('./escape')
+var escapeXML = escape.escapeXML
+var escapeXMLText = escape.escapeXMLText
+
+var equality = require('./equal')
+var equal = equality.equal
+var nameEqual = equality.name
+var attrsEqual = equality.attrs
+var childrenEqual = equality.children
+
+var clone = require('./clone')
/**
- * This cheap replica of DOM/Builder puts me to shame :-)
+ * Element
*
* Attributes are in the element.attrs object. Children is a list of
* either other Elements or Strings for text content.
**/
-function Element(name, attrs) {
- this.name = name
- this.parent = null
- this.children = []
- this.setAttrs(attrs)
+function Element (name, attrs) {
+ this.name = name
+ this.parent = null
+ this.children = []
+ this.attrs = {}
+ this.setAttrs(attrs)
}
-/*** Accessors ***/
+/* Accessors */
/**
* if (element.is('message', 'jabber:client')) ...
**/
-Element.prototype.is = function(name, xmlns) {
- return (this.getName() === name) &&
- (!xmlns || (this.getNS() === xmlns))
+Element.prototype.is = function (name, xmlns) {
+ return (this.getName() === name) &&
+ (!xmlns || (this.getNS() === xmlns))
}
/* without prefix */
-Element.prototype.getName = function() {
- if (this.name.indexOf(':') >= 0) {
- return this.name.substr(this.name.indexOf(':') + 1)
- } else {
- return this.name
- }
+Element.prototype.getName = function () {
+ if (this.name.indexOf(':') >= 0) {
+ return this.name.substr(this.name.indexOf(':') + 1)
+ } else {
+ return this.name
+ }
}
/**
* retrieves the namespace of the current element, upwards recursively
**/
-Element.prototype.getNS = function() {
- if (this.name.indexOf(':') >= 0) {
- var prefix = this.name.substr(0, this.name.indexOf(':'))
- return this.findNS(prefix)
- }
- return this.findNS()
+Element.prototype.getNS = function () {
+ if (this.name.indexOf(':') >= 0) {
+ var prefix = this.name.substr(0, this.name.indexOf(':'))
+ return this.findNS(prefix)
+ }
+ return this.findNS()
}
/**
* find the namespace to the given prefix, upwards recursively
**/
-Element.prototype.findNS = function(prefix) {
- if (!prefix) {
- /* default namespace */
- if (this.attrs.xmlns) {
- return this.attrs.xmlns
- } else if (this.parent) {
- return this.parent.findNS()
- }
- } else {
- /* prefixed namespace */
- var attr = 'xmlns:' + prefix
- if (this.attrs[attr]) {
- return this.attrs[attr]
- } else if (this.parent) {
- return this.parent.findNS(prefix)
- }
+Element.prototype.findNS = function (prefix) {
+ if (!prefix) {
+ /* default namespace */
+ if (this.attrs.xmlns) {
+ return this.attrs.xmlns
+ } else if (this.parent) {
+ return this.parent.findNS()
+ }
+ } else {
+ /* prefixed namespace */
+ var attr = 'xmlns:' + prefix
+ if (this.attrs[attr]) {
+ return this.attrs[attr]
+ } else if (this.parent) {
+ return this.parent.findNS(prefix)
}
+ }
}
/**
* Recursiverly gets all xmlns defined, in the form of {url:prefix}
**/
-Element.prototype.getXmlns = function() {
- var namespaces = {}
+Element.prototype.getXmlns = function () {
+ var namespaces = {}
- if (this.parent) {
- namespaces = this.parent.getXmlns()
- }
+ if (this.parent) {
+ namespaces = this.parent.getXmlns()
+ }
- for (var attr in this.attrs) {
- var m = attr.match('xmlns:?(.*)')
- if (this.attrs.hasOwnProperty(attr) && m) {
- namespaces[this.attrs[attr]] = m[1]
- }
+ for (var attr in this.attrs) {
+ var m = attr.match('xmlns:?(.*)')
+ if (this.attrs.hasOwnProperty(attr) && m) {
+ namespaces[this.attrs[attr]] = m[1]
}
- return namespaces
+ }
+ return namespaces
}
-Element.prototype.setAttrs = function(attrs) {
- this.attrs = {}
-
- if (typeof attrs === 'string')
- this.attrs.xmlns = attrs
- else if (attrs) {
- Object.keys(attrs).forEach(function(key) {
- this.attrs[key] = attrs[key]
- }, this)
- }
+Element.prototype.setAttrs = function (attrs) {
+ if (typeof attrs === 'string') {
+ this.attrs.xmlns = attrs
+ } else if (attrs) {
+ Object.keys(attrs).forEach(function (key) {
+ this.attrs[key] = attrs[key]
+ }, this)
+ }
}
/**
* xmlns can be null, returns the matching attribute.
**/
-Element.prototype.getAttr = function(name, xmlns) {
- if (!xmlns) {
- return this.attrs[name]
- }
+Element.prototype.getAttr = function (name, xmlns) {
+ if (!xmlns) {
+ return this.attrs[name]
+ }
- var namespaces = this.getXmlns()
+ var namespaces = this.getXmlns()
- if (!namespaces[xmlns]) {
- return null
- }
+ if (!namespaces[xmlns]) {
+ return null
+ }
- return this.attrs[[namespaces[xmlns], name].join(':')]
+ return this.attrs[[namespaces[xmlns], name].join(':')]
}
/**
* xmlns can be null
**/
-Element.prototype.getChild = function(name, xmlns) {
- return this.getChildren(name, xmlns)[0]
+Element.prototype.getChild = function (name, xmlns) {
+ return this.getChildren(name, xmlns)[0]
}
/**
* xmlns can be null
**/
-Element.prototype.getChildren = function(name, xmlns) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (child.getName &&
- (child.getName() === name) &&
- (!xmlns || (child.getNS() === xmlns)))
- result.push(child)
+Element.prototype.getChildren = function (name, xmlns) {
+ var result = []
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if (child.getName &&
+ (child.getName() === name) &&
+ (!xmlns || (child.getNS() === xmlns))) {
+ result.push(child)
}
- return result
+ }
+ return result
}
/**
* xmlns and recursive can be null
**/
-Element.prototype.getChildByAttr = function(attr, val, xmlns, recursive) {
- return this.getChildrenByAttr(attr, val, xmlns, recursive)[0]
+Element.prototype.getChildByAttr = function (attr, val, xmlns, recursive) {
+ return this.getChildrenByAttr(attr, val, xmlns, recursive)[0]
}
/**
* xmlns and recursive can be null
**/
-Element.prototype.getChildrenByAttr = function(attr, val, xmlns, recursive) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (child.attrs &&
- (child.attrs[attr] === val) &&
- (!xmlns || (child.getNS() === xmlns)))
- result.push(child)
- if (recursive && child.getChildrenByAttr) {
- result.push(child.getChildrenByAttr(attr, val, xmlns, true))
- }
+Element.prototype.getChildrenByAttr = function (attr, val, xmlns, recursive) {
+ var result = []
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if (child.attrs &&
+ (child.attrs[attr] === val) &&
+ (!xmlns || (child.getNS() === xmlns))) {
+ result.push(child)
}
- if (recursive) {
- result = [].concat.apply([], result)
+ if (recursive && child.getChildrenByAttr) {
+ result.push(child.getChildrenByAttr(attr, val, xmlns, true))
}
- return result
+ }
+ if (recursive) {
+ result = [].concat.apply([], result)
+ }
+ return result
}
-Element.prototype.getChildrenByFilter = function(filter, recursive) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (filter(child))
- result.push(child)
- if (recursive && child.getChildrenByFilter){
- result.push(child.getChildrenByFilter(filter, true))
- }
+Element.prototype.getChildrenByFilter = function (filter, recursive) {
+ var result = []
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if (filter(child)) {
+ result.push(child)
}
- if (recursive) {
- result = [].concat.apply([], result)
+ if (recursive && child.getChildrenByFilter) {
+ result.push(child.getChildrenByFilter(filter, true))
}
- return result
+ }
+ if (recursive) {
+ result = [].concat.apply([], result)
+ }
+ return result
}
-Element.prototype.getText = function() {
- var text = ''
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if ((typeof child === 'string') || (typeof child === 'number')) {
- text += child
- }
+Element.prototype.getText = function () {
+ var text = ''
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if ((typeof child === 'string') || (typeof child === 'number')) {
+ text += child
}
- return text
+ }
+ return text
}
-Element.prototype.getChildText = function(name, xmlns) {
- var child = this.getChild(name, xmlns)
- return child ? child.getText() : null
+Element.prototype.getChildText = function (name, xmlns) {
+ var child = this.getChild(name, xmlns)
+ return child ? child.getText() : null
}
/**
@@ -31395,537 +27244,12807 @@ Element.prototype.getChildText = function(name, xmlns) {
* This differs from `getChildren` in that it will exclude text nodes,
* processing instructions, etc.
*/
-Element.prototype.getChildElements = function() {
- return this.getChildrenByFilter(function(child) {
- return child instanceof Element
- })
+Element.prototype.getChildElements = function () {
+ return this.getChildrenByFilter(function (child) {
+ return child instanceof Element
+ })
}
-/*** Builder ***/
+/* Builder */
/** returns uppermost parent */
-Element.prototype.root = function() {
- if (this.parent) {
- return this.parent.root()
- }
- return this
+Element.prototype.root = function () {
+ if (this.parent) {
+ return this.parent.root()
+ }
+ return this
}
Element.prototype.tree = Element.prototype.root
/** just parent or itself */
-Element.prototype.up = function() {
- if (this.parent) {
- return this.parent
- }
- return this
-}
-
-Element.prototype._getElement = function(name, attrs) {
- var element = new Element(name, attrs)
- return element
+Element.prototype.up = function () {
+ if (this.parent) {
+ return this.parent
+ }
+ return this
}
/** create child node and return it */
-Element.prototype.c = function(name, attrs) {
- return this.cnode(this._getElement(name, attrs))
+Element.prototype.c = function (name, attrs) {
+ return this.cnode(new Element(name, attrs))
}
-Element.prototype.cnode = function(child) {
- this.children.push(child)
- if (typeof child === 'object') {
- child.parent = this
- }
- return child
+Element.prototype.cnode = function (child) {
+ this.children.push(child)
+ if (typeof child === 'object') {
+ child.parent = this
+ }
+ return child
}
/** add text node and return element */
-Element.prototype.t = function(text) {
- this.children.push(text)
- return this
+Element.prototype.t = function (text) {
+ this.children.push(text)
+ return this
}
-/*** Manipulation ***/
+/* Manipulation */
/**
* Either:
* el.remove(childEl)
* el.remove('author', 'urn:...')
*/
-Element.prototype.remove = function(el, xmlns) {
- var filter
- if (typeof el === 'string') {
- /* 1st parameter is tag name */
- filter = function(child) {
- return !(child.is &&
- child.is(el, xmlns))
- }
- } else {
- /* 1st parameter is element */
- filter = function(child) {
- return child !== el
- }
+Element.prototype.remove = function (el, xmlns) {
+ var filter
+ if (typeof el === 'string') {
+ /* 1st parameter is tag name */
+ filter = function (child) {
+ return !(child.is &&
+ child.is(el, xmlns))
+ }
+ } else {
+ /* 1st parameter is element */
+ filter = function (child) {
+ return child !== el
}
+ }
+
+ this.children = this.children.filter(filter)
+
+ return this
+}
+
+Element.prototype.clone = function () {
+ return clone(this)
+}
- this.children = this.children.filter(filter)
+Element.prototype.text = function (val) {
+ if (val && this.children.length === 1) {
+ this.children[0] = val
+ return this
+ }
+ return this.getText()
+}
+Element.prototype.attr = function (attr, val) {
+ if (typeof val !== 'undefined' || val === null) {
+ if (!this.attrs) {
+ this.attrs = {}
+ }
+ this.attrs[attr] = val
return this
+ }
+ return this.attrs[attr]
+}
+
+/* Serialization */
+
+Element.prototype.toString = function () {
+ var s = ''
+ this.write(function (c) {
+ s += c
+ })
+ return s
+}
+
+Element.prototype.toJSON = function () {
+ return {
+ name: this.name,
+ attrs: this.attrs,
+ children: this.children.map(function (child) {
+ return child && child.toJSON ? child.toJSON() : child
+ })
+ }
+}
+
+Element.prototype._addChildren = function (writer) {
+ writer('>')
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ /* Skip null/undefined */
+ if (child || (child === 0)) {
+ if (child.write) {
+ child.write(writer)
+ } else if (typeof child === 'string') {
+ writer(escapeXMLText(child))
+ } else if (child.toString) {
+ writer(escapeXMLText(child.toString(10)))
+ }
+ }
+ }
+ writer('</')
+ writer(this.name)
+ writer('>')
}
+Element.prototype.write = function (writer) {
+ writer('<')
+ writer(this.name)
+ for (var k in this.attrs) {
+ var v = this.attrs[k]
+ if (v != null) { // === null || undefined
+ writer(' ')
+ writer(k)
+ writer('="')
+ if (typeof v !== 'string') {
+ v = v.toString()
+ }
+ writer(escapeXML(v))
+ writer('"')
+ }
+ }
+ if (this.children.length === 0) {
+ writer('/>')
+ } else {
+ this._addChildren(writer)
+ }
+}
+
+Element.prototype.nameEquals = function (el) {
+ return nameEqual(this, el)
+}
+
+Element.prototype.attrsEquals = function (el) {
+ return attrsEqual(this, el)
+}
+
+Element.prototype.childrenEquals = function (el) {
+ return childrenEqual(this, el)
+}
+
+Element.prototype.equals = function (el) {
+ return equal(this, el)
+}
+
+module.exports = Element
+
+},{"./clone":143,"./equal":145,"./escape":146}],142:[function(require,module,exports){
+'use strict'
+
+var EventEmitter = require('events').EventEmitter
+var inherits = require('inherits')
+var Element = require('./Element')
+var LtxParser = require('./parsers/ltx')
+
+var Parser = function (options) {
+ EventEmitter.call(this)
+
+ var ParserInterface = this.Parser = (options && options.Parser) || this.DefaultParser
+ var ElementInterface = this.Element = (options && options.Element) || this.DefaultElement
+
+ this.parser = new ParserInterface()
+
+ var el
+ var self = this
+ this.parser.on('startElement', function (name, attrs) {
+ var child = new ElementInterface(name, attrs)
+ if (!el) {
+ el = child
+ } else {
+ el = el.cnode(child)
+ }
+ })
+ this.parser.on('endElement', function (name) {
+ if (!el) {
+ /* Err */
+ } else if (name === el.name) {
+ if (el.parent) {
+ el = el.parent
+ } else if (!self.tree) {
+ self.tree = el
+ el = undefined
+ }
+ }
+ })
+ this.parser.on('text', function (str) {
+ if (el) {
+ el.t(str)
+ }
+ })
+ this.parser.on('error', function (e) {
+ self.error = e
+ self.emit('error', e)
+ })
+}
+
+inherits(Parser, EventEmitter)
+
+Parser.prototype.DefaultParser = LtxParser
+
+Parser.prototype.DefaultElement = Element
+
+Parser.prototype.write = function (data) {
+ this.parser.write(data)
+}
+
+Parser.prototype.end = function (data) {
+ this.parser.end(data)
+
+ if (!this.error) {
+ if (this.tree) {
+ this.emit('tree', this.tree)
+ } else {
+ this.emit('error', new Error('Incomplete document'))
+ }
+ }
+}
+
+module.exports = Parser
+
+},{"./Element":141,"./parsers/ltx":149,"events":27,"inherits":45}],143:[function(require,module,exports){
+'use strict'
+
+module.exports = function clone (el) {
+ var clone = new el.constructor(el.name, el.attrs)
+ for (var i = 0; i < el.children.length; i++) {
+ var child = el.children[i]
+ clone.cnode(child.clone ? child.clone() : child)
+ }
+ return clone
+}
+
+},{}],144:[function(require,module,exports){
+'use strict'
+
+var Element = require('./Element')
+
/**
- * To use in case you want the same XML data for separate uses.
- * Please refrain from this practise unless you know what you are
- * doing. Building XML with ltx is easy!
+ * JSX compatible API, use this function as pragma
+ * https://facebook.github.io/jsx/
+ *
+ * @param {string} name name of the element
+ * @param {object} attrs object of attribute key/value pairs
+ * @return {Element} Element
*/
-Element.prototype.clone = function() {
- var clone = this._getElement(this.name, this.attrs)
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- clone.cnode(child.clone ? child.clone() : child)
+module.exports = function createElement (name, attrs /*, child1, child2, ...*/) {
+ var el = new Element(name, attrs)
+
+ for (var i = 2; i < arguments.length; i++) {
+ var child = arguments[i]
+ if (child) el.cnode(child)
+ }
+
+ return el
+}
+
+},{"./Element":141}],145:[function(require,module,exports){
+'use strict'
+
+function nameEqual (a, b) {
+ return a.name === b.name
+}
+
+function attrsEqual (a, b) {
+ var attrs = a.attrs
+ var keys = Object.keys(attrs)
+ var length = keys.length
+ if (length !== Object.keys(b.attrs).length) return false
+ for (var i = 0, l = length; i < l; i++) {
+ var key = keys[i]
+ var value = attrs[key]
+ if (value == null || b.attrs[key] == null) { // === null || undefined
+ if (value !== b.attrs[key]) return false
+ } else if (value.toString() !== b.attrs[key].toString()) {
+ return false
}
- return clone
+ }
+ return true
}
-Element.prototype.text = function(val) {
- if (val && this.children.length === 1) {
- this.children[0] = val
- return this
+function childrenEqual (a, b) {
+ var children = a.children
+ var length = children.length
+ if (length !== b.children.length) return false
+ for (var i = 0, l = length; i < l; i++) {
+ var child = children[i]
+ if (typeof child === 'string') {
+ if (child !== b.children[i]) return false
+ } else {
+ if (!child.equals(b.children[i])) return false
}
- return this.getText()
+ }
+ return true
+}
+
+function equal (a, b) {
+ if (!nameEqual(a, b)) return false
+ if (!attrsEqual(a, b)) return false
+ if (!childrenEqual(a, b)) return false
+ return true
+}
+
+module.exports.name = nameEqual
+module.exports.attrs = attrsEqual
+module.exports.children = childrenEqual
+module.exports.equal = equal
+
+},{}],146:[function(require,module,exports){
+'use strict'
+
+var escapeXMLTable = {
+ '&': '&amp;',
+ '<': '&lt;',
+ '>': '&gt;',
+ '"': '&quot;',
+ '\'': '&apos;'
+}
+
+function escapeXMLReplace (match) {
+ return escapeXMLTable[match]
+}
+
+var unescapeXMLTable = {
+ '&amp;': '&',
+ '&#38;': '&',
+ '&lt;': '<',
+ '&#60;': '<',
+ '&gt;': '>',
+ '&#62;': '>',
+ '&quot;': '"',
+ '&#34;': '"',
+ '&apos;': "'",
+ '&#39;': "'"
+}
+
+function unescapeXMLReplace (match) {
+ return unescapeXMLTable[match]
}
-Element.prototype.attr = function(attr, val) {
- if (((typeof val !== 'undefined') || (val === null))) {
- if (!this.attrs) {
- this.attrs = {}
+exports.escapeXML = function escapeXML (s) {
+ return s.replace(/&|<|>|"|'/g, escapeXMLReplace)
+}
+
+exports.unescapeXML = function unescapeXML (s) {
+ return s.replace(/&(amp|#38|lt|#60|gt|#62|quot|#34|apos|#39);/g, unescapeXMLReplace)
+}
+
+exports.escapeXMLText = function escapeXMLText (s) {
+ return s.replace(/&|<|>/g, escapeXMLReplace)
+}
+
+exports.unescapeXMLText = function unescapeXMLText (s) {
+ return s.replace(/&(amp|#38|lt|#60|gt|#62);/g, unescapeXMLReplace)
+}
+
+},{}],147:[function(require,module,exports){
+'use strict'
+
+var Element = require('./Element')
+
+module.exports.isNode = function is (el) {
+ return el instanceof Element || typeof el === 'string'
+}
+
+module.exports.isElement = function isElement (el) {
+ return el instanceof Element
+}
+
+module.exports.isText = function isText (el) {
+ return typeof el === 'string'
+}
+
+},{"./Element":141}],148:[function(require,module,exports){
+'use strict'
+
+var Parser = require('./Parser')
+
+module.exports = function parse (data, options) {
+ var p
+ if (typeof options === 'function') {
+ p = new options() // eslint-disable-line
+ } else {
+ p = new Parser(options)
+ }
+
+ var result = null
+ var error = null
+
+ p.on('tree', function (tree) {
+ result = tree
+ })
+ p.on('error', function (e) {
+ error = e
+ })
+
+ p.write(data)
+ p.end()
+
+ if (error) {
+ throw error
+ } else {
+ return result
+ }
+}
+
+},{"./Parser":142}],149:[function(require,module,exports){
+'use strict'
+
+var inherits = require('inherits')
+var EventEmitter = require('events').EventEmitter
+var unescapeXML = require('../escape').unescapeXML
+
+var STATE_TEXT = 0
+var STATE_IGNORE_TAG = 1
+var STATE_TAG_NAME = 2
+var STATE_TAG = 3
+var STATE_ATTR_NAME = 4
+var STATE_ATTR_EQ = 5
+var STATE_ATTR_QUOT = 6
+var STATE_ATTR_VALUE = 7
+
+var SaxLtx = module.exports = function SaxLtx () {
+ EventEmitter.call(this)
+
+ var state = STATE_TEXT
+ var remainder
+ var tagName
+ var attrs
+ var endTag
+ var selfClosing
+ var attrQuote
+ var recordStart = 0
+ var attrName
+
+ this._handleTagOpening = function (endTag, tagName, attrs) {
+ if (!endTag) {
+ this.emit('startElement', tagName, attrs)
+ if (selfClosing) {
+ this.emit('endElement', tagName)
+ }
+ } else {
+ this.emit('endElement', tagName)
+ }
+ }
+
+ this.write = function (data) {
+ if (typeof data !== 'string') {
+ data = data.toString()
+ }
+ var pos = 0
+
+ /* Anything from previous write()? */
+ if (remainder) {
+ data = remainder + data
+ pos += remainder.length
+ remainder = null
+ }
+
+ function endRecording () {
+ if (typeof recordStart === 'number') {
+ var recorded = data.slice(recordStart, pos)
+ recordStart = undefined
+ return recorded
+ }
+ }
+
+ for (; pos < data.length; pos++) {
+ var c = data.charCodeAt(pos)
+ // console.log("state", state, "c", c, data[pos])
+ switch (state) {
+ case STATE_TEXT:
+ if (c === 60 /* < */) {
+ var text = endRecording()
+ if (text) {
+ this.emit('text', unescapeXML(text))
+ }
+ state = STATE_TAG_NAME
+ recordStart = pos + 1
+ attrs = {}
+ }
+ break
+ case STATE_TAG_NAME:
+ if (c === 47 /* / */ && recordStart === pos) {
+ recordStart = pos + 1
+ endTag = true
+ } else if (c === 33 /* ! */ || c === 63 /* ? */) {
+ recordStart = undefined
+ state = STATE_IGNORE_TAG
+ } else if (c <= 32 || c === 47 /* / */ || c === 62 /* > */) {
+ tagName = endRecording()
+ pos--
+ state = STATE_TAG
+ }
+ break
+ case STATE_IGNORE_TAG:
+ if (c === 62 /* > */) {
+ state = STATE_TEXT
+ }
+ break
+ case STATE_TAG:
+ if (c === 62 /* > */) {
+ this._handleTagOpening(endTag, tagName, attrs)
+ tagName = undefined
+ attrs = undefined
+ endTag = undefined
+ selfClosing = undefined
+ state = STATE_TEXT
+ recordStart = pos + 1
+ } else if (c === 47 /* / */) {
+ selfClosing = true
+ } else if (c > 32) {
+ recordStart = pos
+ state = STATE_ATTR_NAME
+ }
+ break
+ case STATE_ATTR_NAME:
+ if (c <= 32 || c === 61 /* = */) {
+ attrName = endRecording()
+ pos--
+ state = STATE_ATTR_EQ
+ }
+ break
+ case STATE_ATTR_EQ:
+ if (c === 61 /* = */) {
+ state = STATE_ATTR_QUOT
+ }
+ break
+ case STATE_ATTR_QUOT:
+ if (c === 34 /* " */ || c === 39 /* ' */) {
+ attrQuote = c
+ state = STATE_ATTR_VALUE
+ recordStart = pos + 1
+ }
+ break
+ case STATE_ATTR_VALUE:
+ if (c === attrQuote) {
+ var value = unescapeXML(endRecording())
+ attrs[attrName] = value
+ attrName = undefined
+ state = STATE_TAG
+ }
+ break
+ }
+ }
+
+ if (typeof recordStart === 'number' &&
+ recordStart <= data.length) {
+ remainder = data.slice(recordStart)
+ recordStart = 0
+ }
+ }
+ /*
+ var origEmit = this.emit
+ this.emit = function() {
+ console.log('ltx', arguments)
+ origEmit.apply(this, arguments)
+ }
+ */
+}
+inherits(SaxLtx, EventEmitter)
+
+SaxLtx.prototype.end = function (data) {
+ if (data) {
+ this.write(data)
+ }
+
+ /* Uh, yeah */
+ this.write = function () {}
+}
+
+},{"../escape":146,"events":27,"inherits":45}],150:[function(require,module,exports){
+'use strict'
+
+var tagString = require('./tagString')
+var parse = require('./parse')
+
+module.exports = function tag (/* [literals], ...substitutions */) {
+ return parse(tagString.apply(null, arguments))
+}
+
+},{"./parse":148,"./tagString":151}],151:[function(require,module,exports){
+'use strict'
+
+var escape = require('./escape').escapeXML
+
+module.exports = function tagString (/* [literals], ...substitutions */) {
+ var literals = arguments[0]
+
+ var str = ''
+
+ for (var i = 1; i < arguments.length; i++) {
+ str += literals[i - 1]
+ str += escape(arguments[i])
+ }
+ str += literals[literals.length - 1]
+
+ return str
+}
+
+},{"./escape":146}],152:[function(require,module,exports){
+(function (process){
+'use strict';
+
+if (!process.version ||
+ process.version.indexOf('v0.') === 0 ||
+ process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
+ module.exports = nextTick;
+} else {
+ module.exports = process.nextTick;
+}
+
+function nextTick(fn, arg1, arg2, arg3) {
+ if (typeof fn !== 'function') {
+ throw new TypeError('"callback" argument must be a function');
+ }
+ var len = arguments.length;
+ var args, i;
+ switch (len) {
+ case 0:
+ case 1:
+ return process.nextTick(fn);
+ case 2:
+ return process.nextTick(function afterTickOne() {
+ fn.call(null, arg1);
+ });
+ case 3:
+ return process.nextTick(function afterTickTwo() {
+ fn.call(null, arg1, arg2);
+ });
+ case 4:
+ return process.nextTick(function afterTickThree() {
+ fn.call(null, arg1, arg2, arg3);
+ });
+ default:
+ args = new Array(len - 1);
+ i = 0;
+ while (i < args.length) {
+ args[i++] = arguments[i];
+ }
+ return process.nextTick(function afterTick() {
+ fn.apply(null, args);
+ });
+ }
+}
+
+}).call(this,require('_process'))
+},{"_process":153}],153:[function(require,module,exports){
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
}
- this.attrs[attr] = val
- return this
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
}
- return this.attrs[attr]
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
-/*** Serialization ***/
-Element.prototype.toString = function() {
- var s = ''
- this.write(function(c) {
- s += c
- })
- return s
}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
-Element.prototype.toJSON = function() {
- return {
- name: this.name,
- attrs: this.attrs,
- children: this.children.map(function(child) {
- return child && child.toJSON ? child.toJSON() : child
- })
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
}
}
-Element.prototype._addChildren = function(writer) {
- writer('>')
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- /* Skip null/undefined */
- if (child || (child === 0)) {
- if (child.write) {
- child.write(writer)
- } else if (typeof child === 'string') {
- writer(escapeXmlText(child))
- } else if (child.toString) {
- writer(escapeXmlText(child.toString(10)))
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
}
}
+ queueIndex = -1;
+ len = queue.length;
}
- writer('</')
- writer(this.name)
- writer('>')
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
}
-Element.prototype.write = function(writer) {
- writer('<')
- writer(this.name)
- for (var k in this.attrs) {
- var v = this.attrs[k]
- if (v || (v === '') || (v === 0)) {
- writer(' ')
- writer(k)
- writer('="')
- if (typeof v !== 'string') {
- v = v.toString(10)
- }
- writer(escapeXml(v))
- writer('"')
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
}
}
- if (this.children.length === 0) {
- writer('/>')
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+},{}],154:[function(require,module,exports){
+(function (global){
+/*! https://mths.be/punycode v1.4.1 by @mathias */
+;(function(root) {
+
+ /** Detect free variables */
+ var freeExports = typeof exports == 'object' && exports &&
+ !exports.nodeType && exports;
+ var freeModule = typeof module == 'object' && module &&
+ !module.nodeType && module;
+ var freeGlobal = typeof global == 'object' && global;
+ if (
+ freeGlobal.global === freeGlobal ||
+ freeGlobal.window === freeGlobal ||
+ freeGlobal.self === freeGlobal
+ ) {
+ root = freeGlobal;
+ }
+
+ /**
+ * The `punycode` object.
+ * @name punycode
+ * @type Object
+ */
+ var punycode,
+
+ /** Highest positive signed 32-bit float value */
+ maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
+
+ /** Bootstring parameters */
+ base = 36,
+ tMin = 1,
+ tMax = 26,
+ skew = 38,
+ damp = 700,
+ initialBias = 72,
+ initialN = 128, // 0x80
+ delimiter = '-', // '\x2D'
+
+ /** Regular expressions */
+ regexPunycode = /^xn--/,
+ regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
+ regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
+
+ /** Error messages */
+ errors = {
+ 'overflow': 'Overflow: input needs wider integers to process',
+ 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
+ 'invalid-input': 'Invalid input'
+ },
+
+ /** Convenience shortcuts */
+ baseMinusTMin = base - tMin,
+ floor = Math.floor,
+ stringFromCharCode = String.fromCharCode,
+
+ /** Temporary variable */
+ key;
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * A generic error utility function.
+ * @private
+ * @param {String} type The error type.
+ * @returns {Error} Throws a `RangeError` with the applicable error message.
+ */
+ function error(type) {
+ throw new RangeError(errors[type]);
+ }
+
+ /**
+ * A generic `Array#map` utility function.
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} callback The function that gets called for every array
+ * item.
+ * @returns {Array} A new array of values returned by the callback function.
+ */
+ function map(array, fn) {
+ var length = array.length;
+ var result = [];
+ while (length--) {
+ result[length] = fn(array[length]);
+ }
+ return result;
+ }
+
+ /**
+ * A simple `Array#map`-like wrapper to work with domain name strings or email
+ * addresses.
+ * @private
+ * @param {String} domain The domain name or email address.
+ * @param {Function} callback The function that gets called for every
+ * character.
+ * @returns {Array} A new string of characters returned by the callback
+ * function.
+ */
+ function mapDomain(string, fn) {
+ var parts = string.split('@');
+ var result = '';
+ if (parts.length > 1) {
+ // In email addresses, only the domain name should be punycoded. Leave
+ // the local part (i.e. everything up to `@`) intact.
+ result = parts[0] + '@';
+ string = parts[1];
+ }
+ // Avoid `split(regex)` for IE8 compatibility. See #17.
+ string = string.replace(regexSeparators, '\x2E');
+ var labels = string.split('.');
+ var encoded = map(labels, fn).join('.');
+ return result + encoded;
+ }
+
+ /**
+ * Creates an array containing the numeric code points of each Unicode
+ * character in the string. While JavaScript uses UCS-2 internally,
+ * this function will convert a pair of surrogate halves (each of which
+ * UCS-2 exposes as separate characters) into a single code point,
+ * matching UTF-16.
+ * @see `punycode.ucs2.encode`
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
+ * @memberOf punycode.ucs2
+ * @name decode
+ * @param {String} string The Unicode input string (UCS-2).
+ * @returns {Array} The new array of code points.
+ */
+ function ucs2decode(string) {
+ var output = [],
+ counter = 0,
+ length = string.length,
+ value,
+ extra;
+ while (counter < length) {
+ value = string.charCodeAt(counter++);
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
+ // high surrogate, and there is a next character
+ extra = string.charCodeAt(counter++);
+ if ((extra & 0xFC00) == 0xDC00) { // low surrogate
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
+ } else {
+ // unmatched surrogate; only append this code unit, in case the next
+ // code unit is the high surrogate of a surrogate pair
+ output.push(value);
+ counter--;
+ }
+ } else {
+ output.push(value);
+ }
+ }
+ return output;
+ }
+
+ /**
+ * Creates a string based on an array of numeric code points.
+ * @see `punycode.ucs2.decode`
+ * @memberOf punycode.ucs2
+ * @name encode
+ * @param {Array} codePoints The array of numeric code points.
+ * @returns {String} The new Unicode string (UCS-2).
+ */
+ function ucs2encode(array) {
+ return map(array, function(value) {
+ var output = '';
+ if (value > 0xFFFF) {
+ value -= 0x10000;
+ output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
+ value = 0xDC00 | value & 0x3FF;
+ }
+ output += stringFromCharCode(value);
+ return output;
+ }).join('');
+ }
+
+ /**
+ * Converts a basic code point into a digit/integer.
+ * @see `digitToBasic()`
+ * @private
+ * @param {Number} codePoint The basic numeric code point value.
+ * @returns {Number} The numeric value of a basic code point (for use in
+ * representing integers) in the range `0` to `base - 1`, or `base` if
+ * the code point does not represent a value.
+ */
+ function basicToDigit(codePoint) {
+ if (codePoint - 48 < 10) {
+ return codePoint - 22;
+ }
+ if (codePoint - 65 < 26) {
+ return codePoint - 65;
+ }
+ if (codePoint - 97 < 26) {
+ return codePoint - 97;
+ }
+ return base;
+ }
+
+ /**
+ * Converts a digit/integer into a basic code point.
+ * @see `basicToDigit()`
+ * @private
+ * @param {Number} digit The numeric value of a basic code point.
+ * @returns {Number} The basic code point whose value (when used for
+ * representing integers) is `digit`, which needs to be in the range
+ * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
+ * used; else, the lowercase form is used. The behavior is undefined
+ * if `flag` is non-zero and `digit` has no uppercase form.
+ */
+ function digitToBasic(digit, flag) {
+ // 0..25 map to ASCII a..z or A..Z
+ // 26..35 map to ASCII 0..9
+ return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
+ }
+
+ /**
+ * Bias adaptation function as per section 3.4 of RFC 3492.
+ * https://tools.ietf.org/html/rfc3492#section-3.4
+ * @private
+ */
+ function adapt(delta, numPoints, firstTime) {
+ var k = 0;
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
+ delta += floor(delta / numPoints);
+ for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
+ delta = floor(delta / baseMinusTMin);
+ }
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
+ }
+
+ /**
+ * Converts a Punycode string of ASCII-only symbols to a string of Unicode
+ * symbols.
+ * @memberOf punycode
+ * @param {String} input The Punycode string of ASCII-only symbols.
+ * @returns {String} The resulting string of Unicode symbols.
+ */
+ function decode(input) {
+ // Don't use UCS-2
+ var output = [],
+ inputLength = input.length,
+ out,
+ i = 0,
+ n = initialN,
+ bias = initialBias,
+ basic,
+ j,
+ index,
+ oldi,
+ w,
+ k,
+ digit,
+ t,
+ /** Cached calculation results */
+ baseMinusT;
+
+ // Handle the basic code points: let `basic` be the number of input code
+ // points before the last delimiter, or `0` if there is none, then copy
+ // the first basic code points to the output.
+
+ basic = input.lastIndexOf(delimiter);
+ if (basic < 0) {
+ basic = 0;
+ }
+
+ for (j = 0; j < basic; ++j) {
+ // if it's not a basic code point
+ if (input.charCodeAt(j) >= 0x80) {
+ error('not-basic');
+ }
+ output.push(input.charCodeAt(j));
+ }
+
+ // Main decoding loop: start just after the last delimiter if any basic code
+ // points were copied; start at the beginning otherwise.
+
+ for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
+
+ // `index` is the index of the next character to be consumed.
+ // Decode a generalized variable-length integer into `delta`,
+ // which gets added to `i`. The overflow checking is easier
+ // if we increase `i` as we go, then subtract off its starting
+ // value at the end to obtain `delta`.
+ for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
+
+ if (index >= inputLength) {
+ error('invalid-input');
+ }
+
+ digit = basicToDigit(input.charCodeAt(index++));
+
+ if (digit >= base || digit > floor((maxInt - i) / w)) {
+ error('overflow');
+ }
+
+ i += digit * w;
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+
+ if (digit < t) {
+ break;
+ }
+
+ baseMinusT = base - t;
+ if (w > floor(maxInt / baseMinusT)) {
+ error('overflow');
+ }
+
+ w *= baseMinusT;
+
+ }
+
+ out = output.length + 1;
+ bias = adapt(i - oldi, out, oldi == 0);
+
+ // `i` was supposed to wrap around from `out` to `0`,
+ // incrementing `n` each time, so we'll fix that now:
+ if (floor(i / out) > maxInt - n) {
+ error('overflow');
+ }
+
+ n += floor(i / out);
+ i %= out;
+
+ // Insert `n` at position `i` of the output
+ output.splice(i++, 0, n);
+
+ }
+
+ return ucs2encode(output);
+ }
+
+ /**
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
+ * Punycode string of ASCII-only symbols.
+ * @memberOf punycode
+ * @param {String} input The string of Unicode symbols.
+ * @returns {String} The resulting Punycode string of ASCII-only symbols.
+ */
+ function encode(input) {
+ var n,
+ delta,
+ handledCPCount,
+ basicLength,
+ bias,
+ j,
+ m,
+ q,
+ k,
+ t,
+ currentValue,
+ output = [],
+ /** `inputLength` will hold the number of code points in `input`. */
+ inputLength,
+ /** Cached calculation results */
+ handledCPCountPlusOne,
+ baseMinusT,
+ qMinusT;
+
+ // Convert the input in UCS-2 to Unicode
+ input = ucs2decode(input);
+
+ // Cache the length
+ inputLength = input.length;
+
+ // Initialize the state
+ n = initialN;
+ delta = 0;
+ bias = initialBias;
+
+ // Handle the basic code points
+ for (j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+ if (currentValue < 0x80) {
+ output.push(stringFromCharCode(currentValue));
+ }
+ }
+
+ handledCPCount = basicLength = output.length;
+
+ // `handledCPCount` is the number of code points that have been handled;
+ // `basicLength` is the number of basic code points.
+
+ // Finish the basic string - if it is not empty - with a delimiter
+ if (basicLength) {
+ output.push(delimiter);
+ }
+
+ // Main encoding loop:
+ while (handledCPCount < inputLength) {
+
+ // All non-basic code points < n have been handled already. Find the next
+ // larger one:
+ for (m = maxInt, j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+ if (currentValue >= n && currentValue < m) {
+ m = currentValue;
+ }
+ }
+
+ // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
+ // but guard against overflow
+ handledCPCountPlusOne = handledCPCount + 1;
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
+ error('overflow');
+ }
+
+ delta += (m - n) * handledCPCountPlusOne;
+ n = m;
+
+ for (j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+
+ if (currentValue < n && ++delta > maxInt) {
+ error('overflow');
+ }
+
+ if (currentValue == n) {
+ // Represent delta as a generalized variable-length integer
+ for (q = delta, k = base; /* no condition */; k += base) {
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+ if (q < t) {
+ break;
+ }
+ qMinusT = q - t;
+ baseMinusT = base - t;
+ output.push(
+ stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
+ );
+ q = floor(qMinusT / baseMinusT);
+ }
+
+ output.push(stringFromCharCode(digitToBasic(q, 0)));
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
+ delta = 0;
+ ++handledCPCount;
+ }
+ }
+
+ ++delta;
+ ++n;
+
+ }
+ return output.join('');
+ }
+
+ /**
+ * Converts a Punycode string representing a domain name or an email address
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
+ * it doesn't matter if you call it on a string that has already been
+ * converted to Unicode.
+ * @memberOf punycode
+ * @param {String} input The Punycoded domain name or email address to
+ * convert to Unicode.
+ * @returns {String} The Unicode representation of the given Punycode
+ * string.
+ */
+ function toUnicode(input) {
+ return mapDomain(input, function(string) {
+ return regexPunycode.test(string)
+ ? decode(string.slice(4).toLowerCase())
+ : string;
+ });
+ }
+
+ /**
+ * Converts a Unicode string representing a domain name or an email address to
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
+ * i.e. it doesn't matter if you call it with a domain that's already in
+ * ASCII.
+ * @memberOf punycode
+ * @param {String} input The domain name or email address to convert, as a
+ * Unicode string.
+ * @returns {String} The Punycode representation of the given domain name or
+ * email address.
+ */
+ function toASCII(input) {
+ return mapDomain(input, function(string) {
+ return regexNonASCII.test(string)
+ ? 'xn--' + encode(string)
+ : string;
+ });
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ /** Define the public API */
+ punycode = {
+ /**
+ * A string representing the current Punycode.js version number.
+ * @memberOf punycode
+ * @type String
+ */
+ 'version': '1.4.1',
+ /**
+ * An object of methods to convert from JavaScript's internal character
+ * representation (UCS-2) to Unicode code points, and back.
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
+ * @memberOf punycode
+ * @type Object
+ */
+ 'ucs2': {
+ 'decode': ucs2decode,
+ 'encode': ucs2encode
+ },
+ 'decode': decode,
+ 'encode': encode,
+ 'toASCII': toASCII,
+ 'toUnicode': toUnicode
+ };
+
+ /** Expose `punycode` */
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
+ // like the following:
+ if (
+ typeof define == 'function' &&
+ typeof define.amd == 'object' &&
+ define.amd
+ ) {
+ define('punycode', function() {
+ return punycode;
+ });
+ } else if (freeExports && freeModule) {
+ if (module.exports == freeExports) {
+ // in Node.js, io.js, or RingoJS v0.8.0+
+ freeModule.exports = punycode;
+ } else {
+ // in Narwhal or RingoJS v0.7.0-
+ for (key in punycode) {
+ punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
+ }
+ }
+ } else {
+ // in Rhino or a web browser
+ root.punycode = punycode;
+ }
+
+}(this));
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],155:[function(require,module,exports){
+module.exports = require("./lib/_stream_duplex.js")
+
+},{"./lib/_stream_duplex.js":156}],156:[function(require,module,exports){
+// a duplex stream is just a stream that is both readable and writable.
+// Since JS doesn't have multiple prototypal inheritance, this class
+// prototypally inherits from Readable, and then parasitically from
+// Writable.
+
+'use strict';
+
+/*<replacement>*/
+
+var objectKeys = Object.keys || function (obj) {
+ var keys = [];
+ for (var key in obj) {
+ keys.push(key);
+ }return keys;
+};
+/*</replacement>*/
+
+module.exports = Duplex;
+
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+var Readable = require('./_stream_readable');
+var Writable = require('./_stream_writable');
+
+util.inherits(Duplex, Readable);
+
+var keys = objectKeys(Writable.prototype);
+for (var v = 0; v < keys.length; v++) {
+ var method = keys[v];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+}
+
+function Duplex(options) {
+ if (!(this instanceof Duplex)) return new Duplex(options);
+
+ Readable.call(this, options);
+ Writable.call(this, options);
+
+ if (options && options.readable === false) this.readable = false;
+
+ if (options && options.writable === false) this.writable = false;
+
+ this.allowHalfOpen = true;
+ if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
+
+ this.once('end', onend);
+}
+
+// the no-half-open enforcer
+function onend() {
+ // if we allow half-open state, or if the writable side ended,
+ // then we're ok.
+ if (this.allowHalfOpen || this._writableState.ended) return;
+
+ // no more data can be written.
+ // But allow more writes to happen in this tick.
+ processNextTick(onEndNT, this);
+}
+
+function onEndNT(self) {
+ self.end();
+}
+
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+}
+},{"./_stream_readable":158,"./_stream_writable":160,"core-util-is":22,"inherits":45,"process-nextick-args":152}],157:[function(require,module,exports){
+// a passthrough stream.
+// basically just the most minimal sort of Transform stream.
+// Every written chunk gets output as-is.
+
+'use strict';
+
+module.exports = PassThrough;
+
+var Transform = require('./_stream_transform');
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+util.inherits(PassThrough, Transform);
+
+function PassThrough(options) {
+ if (!(this instanceof PassThrough)) return new PassThrough(options);
+
+ Transform.call(this, options);
+}
+
+PassThrough.prototype._transform = function (chunk, encoding, cb) {
+ cb(null, chunk);
+};
+},{"./_stream_transform":159,"core-util-is":22,"inherits":45}],158:[function(require,module,exports){
+(function (process){
+'use strict';
+
+module.exports = Readable;
+
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
+
+/*<replacement>*/
+var isArray = require('isarray');
+/*</replacement>*/
+
+Readable.ReadableState = ReadableState;
+
+/*<replacement>*/
+var EE = require('events').EventEmitter;
+
+var EElistenerCount = function (emitter, type) {
+ return emitter.listeners(type).length;
+};
+/*</replacement>*/
+
+/*<replacement>*/
+var Stream;
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
+/*</replacement>*/
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+/*<replacement>*/
+var debugUtil = require('util');
+var debug = void 0;
+if (debugUtil && debugUtil.debuglog) {
+ debug = debugUtil.debuglog('stream');
+} else {
+ debug = function () {};
+}
+/*</replacement>*/
+
+var BufferList = require('./internal/streams/BufferList');
+var StringDecoder;
+
+util.inherits(Readable, Stream);
+
+function prependListener(emitter, event, fn) {
+ if (typeof emitter.prependListener === 'function') {
+ return emitter.prependListener(event, fn);
+ } else {
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
+ }
+}
+
+var Duplex;
+function ReadableState(options, stream) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ options = options || {};
+
+ // object stream flag. Used to make read(n) ignore n and to
+ // make all the buffer merging and length checks go away
+ this.objectMode = !!options.objectMode;
+
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+
+ // the point at which it stops calling _read() to fill the buffer
+ // Note: 0 is a valid value, means "don't call _read preemptively ever"
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+
+ // A linked list is used to store data chunks instead of an array because the
+ // linked list can remove elements from the beginning faster than
+ // array.shift()
+ this.buffer = new BufferList();
+ this.length = 0;
+ this.pipes = null;
+ this.pipesCount = 0;
+ this.flowing = null;
+ this.ended = false;
+ this.endEmitted = false;
+ this.reading = false;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // whenever we return null, then we set a flag to say
+ // that we're awaiting a 'readable' event emission.
+ this.needReadable = false;
+ this.emittedReadable = false;
+ this.readableListening = false;
+ this.resumeScheduled = false;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // when piping, we only care about 'readable' events that happen
+ // after read()ing all the bytes and not getting any pushback.
+ this.ranOut = false;
+
+ // the number of writers that are awaiting a drain event in .pipe()s
+ this.awaitDrain = 0;
+
+ // if true, a maybeReadMore has been scheduled
+ this.readingMore = false;
+
+ this.decoder = null;
+ this.encoding = null;
+ if (options.encoding) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+ this.decoder = new StringDecoder(options.encoding);
+ this.encoding = options.encoding;
+ }
+}
+
+var Duplex;
+function Readable(options) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ if (!(this instanceof Readable)) return new Readable(options);
+
+ this._readableState = new ReadableState(options, this);
+
+ // legacy
+ this.readable = true;
+
+ if (options && typeof options.read === 'function') this._read = options.read;
+
+ Stream.call(this);
+}
+
+// Manually shove something into the read() buffer.
+// This returns true if the highWaterMark has not been hit yet,
+// similar to how Writable.write() returns true if you should
+// write() some more.
+Readable.prototype.push = function (chunk, encoding) {
+ var state = this._readableState;
+
+ if (!state.objectMode && typeof chunk === 'string') {
+ encoding = encoding || state.defaultEncoding;
+ if (encoding !== state.encoding) {
+ chunk = bufferShim.from(chunk, encoding);
+ encoding = '';
+ }
+ }
+
+ return readableAddChunk(this, state, chunk, encoding, false);
+};
+
+// Unshift should *always* be something directly out of read()
+Readable.prototype.unshift = function (chunk) {
+ var state = this._readableState;
+ return readableAddChunk(this, state, chunk, '', true);
+};
+
+Readable.prototype.isPaused = function () {
+ return this._readableState.flowing === false;
+};
+
+function readableAddChunk(stream, state, chunk, encoding, addToFront) {
+ var er = chunkInvalid(state, chunk);
+ if (er) {
+ stream.emit('error', er);
+ } else if (chunk === null) {
+ state.reading = false;
+ onEofChunk(stream, state);
+ } else if (state.objectMode || chunk && chunk.length > 0) {
+ if (state.ended && !addToFront) {
+ var e = new Error('stream.push() after EOF');
+ stream.emit('error', e);
+ } else if (state.endEmitted && addToFront) {
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
} else {
- this._addChildren(writer)
+ var skipAdd;
+ if (state.decoder && !addToFront && !encoding) {
+ chunk = state.decoder.write(chunk);
+ skipAdd = !state.objectMode && chunk.length === 0;
+ }
+
+ if (!addToFront) state.reading = false;
+
+ // Don't add to the buffer if we've decoded to an empty string chunk and
+ // we're not in object mode
+ if (!skipAdd) {
+ // if we want the data now, just emit it.
+ if (state.flowing && state.length === 0 && !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+
+ if (state.needReadable) emitReadable(stream);
+ }
+ }
+
+ maybeReadMore(stream, state);
}
+ } else if (!addToFront) {
+ state.reading = false;
+ }
+
+ return needMoreData(state);
}
-function escapeXml(s) {
- return s.
- replace(/\&/g, '&amp;').
- replace(/</g, '&lt;').
- replace(/>/g, '&gt;').
- replace(/"/g, '&quot;').
- replace(/"/g, '&apos;')
+// if it's past the high water mark, we can push in some more.
+// Also, if we have no data yet, we can stand some
+// more bytes. This is to work around cases where hwm=0,
+// such as the repl. Also, if the push() triggered a
+// readable event, and the user called read(largeNumber) such that
+// needReadable was set, then we ought to push more, so that another
+// 'readable' event will be triggered.
+function needMoreData(state) {
+ return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
}
-function escapeXmlText(s) {
- return s.
- replace(/\&/g, '&amp;').
- replace(/</g, '&lt;').
- replace(/>/g, '&gt;')
+// backwards compatibility.
+Readable.prototype.setEncoding = function (enc) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+ this._readableState.decoder = new StringDecoder(enc);
+ this._readableState.encoding = enc;
+ return this;
+};
+
+// Don't raise the hwm > 8MB
+var MAX_HWM = 0x800000;
+function computeNewHighWaterMark(n) {
+ if (n >= MAX_HWM) {
+ n = MAX_HWM;
+ } else {
+ // Get the next highest power of 2 to prevent increasing hwm excessively in
+ // tiny amounts
+ n--;
+ n |= n >>> 1;
+ n |= n >>> 2;
+ n |= n >>> 4;
+ n |= n >>> 8;
+ n |= n >>> 16;
+ n++;
+ }
+ return n;
}
-exports.Element = Element
-exports.escapeXml = escapeXml
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function howMuchToRead(n, state) {
+ if (n <= 0 || state.length === 0 && state.ended) return 0;
+ if (state.objectMode) return 1;
+ if (n !== n) {
+ // Only flow one buffer at a time
+ if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
+ }
+ // If we're asking for more than the current hwm, then raise the hwm.
+ if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
+ if (n <= state.length) return n;
+ // Don't have enough
+ if (!state.ended) {
+ state.needReadable = true;
+ return 0;
+ }
+ return state.length;
+}
+
+// you can override either this method, or the async _read(n) below.
+Readable.prototype.read = function (n) {
+ debug('read', n);
+ n = parseInt(n, 10);
+ var state = this._readableState;
+ var nOrig = n;
+
+ if (n !== 0) state.emittedReadable = false;
+
+ // if we're doing read(0) to trigger a readable event, but we
+ // already have a bunch of data in the buffer, then just trigger
+ // the 'readable' event and move on.
+ if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
+ debug('read: emitReadable', state.length, state.ended);
+ if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
+ return null;
+ }
+
+ n = howMuchToRead(n, state);
+
+ // if we've ended, and we're now clear, then finish it up.
+ if (n === 0 && state.ended) {
+ if (state.length === 0) endReadable(this);
+ return null;
+ }
+
+ // All the actual chunk generation logic needs to be
+ // *below* the call to _read. The reason is that in certain
+ // synthetic stream cases, such as passthrough streams, _read
+ // may be a completely synchronous operation which may change
+ // the state of the read buffer, providing enough data when
+ // before there was *not* enough.
+ //
+ // So, the steps are:
+ // 1. Figure out what the state of things will be after we do
+ // a read from the buffer.
+ //
+ // 2. If that resulting state will trigger a _read, then call _read.
+ // Note that this may be asynchronous, or synchronous. Yes, it is
+ // deeply ugly to write APIs this way, but that still doesn't mean
+ // that the Readable class should behave improperly, as streams are
+ // designed to be sync/async agnostic.
+ // Take note if the _read call is sync or async (ie, if the read call
+ // has returned yet), so that we know whether or not it's safe to emit
+ // 'readable' etc.
+ //
+ // 3. Actually pull the requested chunks out of the buffer and return.
+
+ // if we need a readable event, then we need to do some reading.
+ var doRead = state.needReadable;
+ debug('need readable', doRead);
+
+ // if we currently have less than the highWaterMark, then also read some
+ if (state.length === 0 || state.length - n < state.highWaterMark) {
+ doRead = true;
+ debug('length less than watermark', doRead);
+ }
+
+ // however, if we've ended, then there's no point, and if we're already
+ // reading, then it's unnecessary.
+ if (state.ended || state.reading) {
+ doRead = false;
+ debug('reading or ended', doRead);
+ } else if (doRead) {
+ debug('do read');
+ state.reading = true;
+ state.sync = true;
+ // if the length is currently zero, then we *need* a readable event.
+ if (state.length === 0) state.needReadable = true;
+ // call internal read method
+ this._read(state.highWaterMark);
+ state.sync = false;
+ // If _read pushed data synchronously, then `reading` will be false,
+ // and we need to re-evaluate how much data we can return to the user.
+ if (!state.reading) n = howMuchToRead(nOrig, state);
+ }
+
+ var ret;
+ if (n > 0) ret = fromList(n, state);else ret = null;
+
+ if (ret === null) {
+ state.needReadable = true;
+ n = 0;
+ } else {
+ state.length -= n;
+ }
+
+ if (state.length === 0) {
+ // If we have nothing in the buffer, then we want to know
+ // as soon as we *do* get something into the buffer.
+ if (!state.ended) state.needReadable = true;
+
+ // If we tried to read() past the EOF, then emit end on the next tick.
+ if (nOrig !== n && state.ended) endReadable(this);
+ }
+
+ if (ret !== null) this.emit('data', ret);
+
+ return ret;
+};
+
+function chunkInvalid(state, chunk) {
+ var er = null;
+ if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ return er;
+}
+
+function onEofChunk(stream, state) {
+ if (state.ended) return;
+ if (state.decoder) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) {
+ state.buffer.push(chunk);
+ state.length += state.objectMode ? 1 : chunk.length;
+ }
+ }
+ state.ended = true;
+
+ // emit 'readable' now to make sure it gets picked up.
+ emitReadable(stream);
+}
+
+// Don't emit readable right away in sync mode, because this can trigger
+// another read() call => stack overflow. This way, it might trigger
+// a nextTick recursion warning, but that's not so bad.
+function emitReadable(stream) {
+ var state = stream._readableState;
+ state.needReadable = false;
+ if (!state.emittedReadable) {
+ debug('emitReadable', state.flowing);
+ state.emittedReadable = true;
+ if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
+ }
+}
+
+function emitReadable_(stream) {
+ debug('emit readable');
+ stream.emit('readable');
+ flow(stream);
+}
+
+// at this point, the user has presumably seen the 'readable' event,
+// and called read() to consume some data. that may have triggered
+// in turn another _read(n) call, in which case reading = true if
+// it's in progress.
+// However, if we're not ended, or reading, and the length < hwm,
+// then go ahead and try to read some more preemptively.
+function maybeReadMore(stream, state) {
+ if (!state.readingMore) {
+ state.readingMore = true;
+ processNextTick(maybeReadMore_, stream, state);
+ }
+}
+
+function maybeReadMore_(stream, state) {
+ var len = state.length;
+ while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
+ debug('maybeReadMore read 0');
+ stream.read(0);
+ if (len === state.length)
+ // didn't get any data, stop spinning.
+ break;else len = state.length;
+ }
+ state.readingMore = false;
+}
+
+// abstract method. to be overridden in specific implementation classes.
+// call cb(er, data) where data is <= n in length.
+// for virtual (non-string, non-buffer) streams, "length" is somewhat
+// arbitrary, and perhaps not very meaningful.
+Readable.prototype._read = function (n) {
+ this.emit('error', new Error('not implemented'));
+};
+
+Readable.prototype.pipe = function (dest, pipeOpts) {
+ var src = this;
+ var state = this._readableState;
+
+ switch (state.pipesCount) {
+ case 0:
+ state.pipes = dest;
+ break;
+ case 1:
+ state.pipes = [state.pipes, dest];
+ break;
+ default:
+ state.pipes.push(dest);
+ break;
+ }
+ state.pipesCount += 1;
+ debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
+
+ var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
+
+ var endFn = doEnd ? onend : cleanup;
+ if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
+
+ dest.on('unpipe', onunpipe);
+ function onunpipe(readable) {
+ debug('onunpipe');
+ if (readable === src) {
+ cleanup();
+ }
+ }
+
+ function onend() {
+ debug('onend');
+ dest.end();
+ }
+
+ // when the dest drains, it reduces the awaitDrain counter
+ // on the source. This would be more elegant with a .once()
+ // handler in flow(), but adding and removing repeatedly is
+ // too slow.
+ var ondrain = pipeOnDrain(src);
+ dest.on('drain', ondrain);
+
+ var cleanedUp = false;
+ function cleanup() {
+ debug('cleanup');
+ // cleanup event handlers once the pipe is broken
+ dest.removeListener('close', onclose);
+ dest.removeListener('finish', onfinish);
+ dest.removeListener('drain', ondrain);
+ dest.removeListener('error', onerror);
+ dest.removeListener('unpipe', onunpipe);
+ src.removeListener('end', onend);
+ src.removeListener('end', cleanup);
+ src.removeListener('data', ondata);
+
+ cleanedUp = true;
+
+ // if the reader is waiting for a drain event from this
+ // specific writer, then it would cause it to never start
+ // flowing again.
+ // So, if this is awaiting a drain, then we just call it now.
+ // If we don't know, then assume that we are waiting for one.
+ if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
+ }
+
+ // If the user pushes more data while we're writing to dest then we'll end up
+ // in ondata again. However, we only want to increase awaitDrain once because
+ // dest will only emit one 'drain' event for the multiple writes.
+ // => Introduce a guard on increasing awaitDrain.
+ var increasedAwaitDrain = false;
+ src.on('data', ondata);
+ function ondata(chunk) {
+ debug('ondata');
+ increasedAwaitDrain = false;
+ var ret = dest.write(chunk);
+ if (false === ret && !increasedAwaitDrain) {
+ // If the user unpiped during `dest.write()`, it is possible
+ // to get stuck in a permanently paused state if that write
+ // also returned false.
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
+ debug('false write response, pause', src._readableState.awaitDrain);
+ src._readableState.awaitDrain++;
+ increasedAwaitDrain = true;
+ }
+ src.pause();
+ }
+ }
+
+ // if the dest has an error, then stop piping into it.
+ // however, don't suppress the throwing behavior for this.
+ function onerror(er) {
+ debug('onerror', er);
+ unpipe();
+ dest.removeListener('error', onerror);
+ if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
+ }
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
+
+ // Both close and finish should trigger unpipe, but only once.
+ function onclose() {
+ dest.removeListener('finish', onfinish);
+ unpipe();
+ }
+ dest.once('close', onclose);
+ function onfinish() {
+ debug('onfinish');
+ dest.removeListener('close', onclose);
+ unpipe();
+ }
+ dest.once('finish', onfinish);
+
+ function unpipe() {
+ debug('unpipe');
+ src.unpipe(dest);
+ }
+
+ // tell the dest that it's being piped to
+ dest.emit('pipe', src);
+
+ // start the flow if it hasn't been started already.
+ if (!state.flowing) {
+ debug('pipe resume');
+ src.resume();
+ }
+
+ return dest;
+};
+
+function pipeOnDrain(src) {
+ return function () {
+ var state = src._readableState;
+ debug('pipeOnDrain', state.awaitDrain);
+ if (state.awaitDrain) state.awaitDrain--;
+ if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
+ state.flowing = true;
+ flow(src);
+ }
+ };
+}
+
+Readable.prototype.unpipe = function (dest) {
+ var state = this._readableState;
+
+ // if we're not piping anywhere, then do nothing.
+ if (state.pipesCount === 0) return this;
+
+ // just one destination. most common case.
+ if (state.pipesCount === 1) {
+ // passed in one, but it's not the right one.
+ if (dest && dest !== state.pipes) return this;
+
+ if (!dest) dest = state.pipes;
+
+ // got a match.
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+ if (dest) dest.emit('unpipe', this);
+ return this;
+ }
+
+ // slow case. multiple pipe destinations.
+
+ if (!dest) {
+ // remove all.
+ var dests = state.pipes;
+ var len = state.pipesCount;
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+
+ for (var _i = 0; _i < len; _i++) {
+ dests[_i].emit('unpipe', this);
+ }return this;
+ }
+
+ // try to find the right one.
+ var i = indexOf(state.pipes, dest);
+ if (i === -1) return this;
+
+ state.pipes.splice(i, 1);
+ state.pipesCount -= 1;
+ if (state.pipesCount === 1) state.pipes = state.pipes[0];
+
+ dest.emit('unpipe', this);
+
+ return this;
+};
+
+// set up data events if they are asked for
+// Ensure readable listeners eventually get something
+Readable.prototype.on = function (ev, fn) {
+ var res = Stream.prototype.on.call(this, ev, fn);
+
+ if (ev === 'data') {
+ // Start flowing on next tick if stream isn't explicitly paused
+ if (this._readableState.flowing !== false) this.resume();
+ } else if (ev === 'readable') {
+ var state = this._readableState;
+ if (!state.endEmitted && !state.readableListening) {
+ state.readableListening = state.needReadable = true;
+ state.emittedReadable = false;
+ if (!state.reading) {
+ processNextTick(nReadingNextTick, this);
+ } else if (state.length) {
+ emitReadable(this, state);
+ }
+ }
+ }
+
+ return res;
+};
+Readable.prototype.addListener = Readable.prototype.on;
+
+function nReadingNextTick(self) {
+ debug('readable nexttick read 0');
+ self.read(0);
+}
+
+// pause() and resume() are remnants of the legacy readable stream API
+// If the user uses them, then switch into old mode.
+Readable.prototype.resume = function () {
+ var state = this._readableState;
+ if (!state.flowing) {
+ debug('resume');
+ state.flowing = true;
+ resume(this, state);
+ }
+ return this;
+};
+
+function resume(stream, state) {
+ if (!state.resumeScheduled) {
+ state.resumeScheduled = true;
+ processNextTick(resume_, stream, state);
+ }
+}
+
+function resume_(stream, state) {
+ if (!state.reading) {
+ debug('resume read 0');
+ stream.read(0);
+ }
+
+ state.resumeScheduled = false;
+ state.awaitDrain = 0;
+ stream.emit('resume');
+ flow(stream);
+ if (state.flowing && !state.reading) stream.read(0);
+}
+
+Readable.prototype.pause = function () {
+ debug('call pause flowing=%j', this._readableState.flowing);
+ if (false !== this._readableState.flowing) {
+ debug('pause');
+ this._readableState.flowing = false;
+ this.emit('pause');
+ }
+ return this;
+};
+
+function flow(stream) {
+ var state = stream._readableState;
+ debug('flow', state.flowing);
+ while (state.flowing && stream.read() !== null) {}
+}
+
+// wrap an old-style stream as the async data source.
+// This is *not* part of the readable stream interface.
+// It is an ugly unfortunate mess of history.
+Readable.prototype.wrap = function (stream) {
+ var state = this._readableState;
+ var paused = false;
+
+ var self = this;
+ stream.on('end', function () {
+ debug('wrapped end');
+ if (state.decoder && !state.ended) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) self.push(chunk);
+ }
+
+ self.push(null);
+ });
+
+ stream.on('data', function (chunk) {
+ debug('wrapped data');
+ if (state.decoder) chunk = state.decoder.write(chunk);
+
+ // don't skip over falsy values in objectMode
+ if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
+
+ var ret = self.push(chunk);
+ if (!ret) {
+ paused = true;
+ stream.pause();
+ }
+ });
+
+ // proxy all the other methods.
+ // important when wrapping filters and duplexes.
+ for (var i in stream) {
+ if (this[i] === undefined && typeof stream[i] === 'function') {
+ this[i] = function (method) {
+ return function () {
+ return stream[method].apply(stream, arguments);
+ };
+ }(i);
+ }
+ }
+
+ // proxy certain important events.
+ var events = ['error', 'close', 'destroy', 'pause', 'resume'];
+ forEach(events, function (ev) {
+ stream.on(ev, self.emit.bind(self, ev));
+ });
+
+ // when we try to consume some more bytes, simply unpause the
+ // underlying stream.
+ self._read = function (n) {
+ debug('wrapped _read', n);
+ if (paused) {
+ paused = false;
+ stream.resume();
+ }
+ };
+
+ return self;
+};
+
+// exposed for testing purposes only.
+Readable._fromList = fromList;
+
+// Pluck off n bytes from an array of buffers.
+// Length is the combined lengths of all the buffers in the list.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromList(n, state) {
+ // nothing buffered
+ if (state.length === 0) return null;
+
+ var ret;
+ if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
+ // read it all, truncate the list
+ if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
+ state.buffer.clear();
+ } else {
+ // read part of list
+ ret = fromListPartial(n, state.buffer, state.decoder);
+ }
+
+ return ret;
+}
+
+// Extracts only enough buffered data to satisfy the amount requested.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromListPartial(n, list, hasStrings) {
+ var ret;
+ if (n < list.head.data.length) {
+ // slice is the same for buffers and strings
+ ret = list.head.data.slice(0, n);
+ list.head.data = list.head.data.slice(n);
+ } else if (n === list.head.data.length) {
+ // first chunk is a perfect match
+ ret = list.shift();
+ } else {
+ // result spans more than one buffer
+ ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
+ }
+ return ret;
+}
+
+// Copies a specified amount of characters from the list of buffered data
+// chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBufferString(n, list) {
+ var p = list.head;
+ var c = 1;
+ var ret = p.data;
+ n -= ret.length;
+ while (p = p.next) {
+ var str = p.data;
+ var nb = n > str.length ? str.length : n;
+ if (nb === str.length) ret += str;else ret += str.slice(0, n);
+ n -= nb;
+ if (n === 0) {
+ if (nb === str.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = str.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+}
+
+// Copies a specified amount of bytes from the list of buffered data chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBuffer(n, list) {
+ var ret = bufferShim.allocUnsafe(n);
+ var p = list.head;
+ var c = 1;
+ p.data.copy(ret);
+ n -= p.data.length;
+ while (p = p.next) {
+ var buf = p.data;
+ var nb = n > buf.length ? buf.length : n;
+ buf.copy(ret, ret.length - n, 0, nb);
+ n -= nb;
+ if (n === 0) {
+ if (nb === buf.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = buf.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+}
+
+function endReadable(stream) {
+ var state = stream._readableState;
+
+ // If we get here before consuming all the bytes, then that is a
+ // bug in node. Should never happen.
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
+
+ if (!state.endEmitted) {
+ state.ended = true;
+ processNextTick(endReadableNT, state, stream);
+ }
+}
+
+function endReadableNT(state, stream) {
+ // Check that we didn't get one last unshift.
+ if (!state.endEmitted && state.length === 0) {
+ state.endEmitted = true;
+ stream.readable = false;
+ stream.emit('end');
+ }
+}
+
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+}
+
+function indexOf(xs, x) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ if (xs[i] === x) return i;
+ }
+ return -1;
+}
+}).call(this,require('_process'))
+},{"./_stream_duplex":156,"./internal/streams/BufferList":161,"_process":153,"buffer":6,"buffer-shims":5,"core-util-is":22,"events":27,"inherits":45,"isarray":48,"process-nextick-args":152,"string_decoder/":183,"util":4}],159:[function(require,module,exports){
+// a transform stream is a readable/writable stream where you do
+// something with the data. Sometimes it's called a "filter",
+// but that's not a great name for it, since that implies a thing where
+// some bits pass through, and others are simply ignored. (That would
+// be a valid example of a transform, of course.)
+//
+// While the output is causally related to the input, it's not a
+// necessarily symmetric or synchronous transformation. For example,
+// a zlib stream might take multiple plain-text writes(), and then
+// emit a single compressed chunk some time in the future.
+//
+// Here's how this works:
+//
+// The Transform stream has all the aspects of the readable and writable
+// stream classes. When you write(chunk), that calls _write(chunk,cb)
+// internally, and returns false if there's a lot of pending writes
+// buffered up. When you call read(), that calls _read(n) until
+// there's enough pending readable data buffered up.
+//
+// In a transform stream, the written data is placed in a buffer. When
+// _read(n) is called, it transforms the queued up data, calling the
+// buffered _write cb's as it consumes chunks. If consuming a single
+// written chunk would result in multiple output chunks, then the first
+// outputted bit calls the readcb, and subsequent chunks just go into
+// the read buffer, and will cause it to emit 'readable' if necessary.
+//
+// This way, back-pressure is actually determined by the reading side,
+// since _read has to be called to start processing a new chunk. However,
+// a pathological inflate type of transform can cause excessive buffering
+// here. For example, imagine a stream where every byte of input is
+// interpreted as an integer from 0-255, and then results in that many
+// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
+// 1kb of data being output. In this case, you could write a very small
+// amount of input, and end up with a very large amount of output. In
+// such a pathological inflating mechanism, there'd be no way to tell
+// the system to stop doing the transform. A single 4MB write could
+// cause the system to run out of memory.
+//
+// However, even in such a pathological case, only a single written chunk
+// would be consumed, and then the rest would wait (un-transformed) until
+// the results of the previous transformed chunk were consumed.
-},{}],245:[function(require,module,exports){
'use strict';
-/* Cause browserify to bundle SAX parsers: */
-var parse = require('./parse')
+module.exports = Transform;
+
+var Duplex = require('./_stream_duplex');
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+util.inherits(Transform, Duplex);
+
+function TransformState(stream) {
+ this.afterTransform = function (er, data) {
+ return afterTransform(stream, er, data);
+ };
+
+ this.needTransform = false;
+ this.transforming = false;
+ this.writecb = null;
+ this.writechunk = null;
+ this.writeencoding = null;
+}
+
+function afterTransform(stream, er, data) {
+ var ts = stream._transformState;
+ ts.transforming = false;
+
+ var cb = ts.writecb;
+
+ if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
+
+ ts.writechunk = null;
+ ts.writecb = null;
+
+ if (data !== null && data !== undefined) stream.push(data);
+
+ cb(er);
+
+ var rs = stream._readableState;
+ rs.reading = false;
+ if (rs.needReadable || rs.length < rs.highWaterMark) {
+ stream._read(rs.highWaterMark);
+ }
+}
+
+function Transform(options) {
+ if (!(this instanceof Transform)) return new Transform(options);
+
+ Duplex.call(this, options);
+
+ this._transformState = new TransformState(this);
+
+ // when the writable side finishes, then flush out anything remaining.
+ var stream = this;
+
+ // start out asking for a readable event once data is transformed.
+ this._readableState.needReadable = true;
+
+ // we have implemented the _read method, and done the other things
+ // that Readable wants before the first _read call, so unset the
+ // sync guard flag.
+ this._readableState.sync = false;
+
+ if (options) {
+ if (typeof options.transform === 'function') this._transform = options.transform;
+
+ if (typeof options.flush === 'function') this._flush = options.flush;
+ }
+
+ this.once('prefinish', function () {
+ if (typeof this._flush === 'function') this._flush(function (er) {
+ done(stream, er);
+ });else done(stream);
+ });
+}
+
+Transform.prototype.push = function (chunk, encoding) {
+ this._transformState.needTransform = false;
+ return Duplex.prototype.push.call(this, chunk, encoding);
+};
+
+// This is the part where you do stuff!
+// override this function in implementation classes.
+// 'chunk' is an input chunk.
+//
+// Call `push(newChunk)` to pass along transformed output
+// to the readable side. You may call 'push' zero or more times.
+//
+// Call `cb(err)` when you are done with this chunk. If you pass
+// an error, then that'll put the hurt on the whole operation. If you
+// never call cb(), then you'll never get another chunk.
+Transform.prototype._transform = function (chunk, encoding, cb) {
+ throw new Error('Not implemented');
+};
-parse.availableSaxParsers.push(parse.bestSaxParser = require('./sax/sax_ltx'))
+Transform.prototype._write = function (chunk, encoding, cb) {
+ var ts = this._transformState;
+ ts.writecb = cb;
+ ts.writechunk = chunk;
+ ts.writeencoding = encoding;
+ if (!ts.transforming) {
+ var rs = this._readableState;
+ if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
+ }
+};
+
+// Doesn't matter what the args are here.
+// _transform does all the work.
+// That we got here means that the readable side wants more data.
+Transform.prototype._read = function (n) {
+ var ts = this._transformState;
+
+ if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
+ ts.transforming = true;
+ this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
+ } else {
+ // mark that we need a transform, so that any data that comes in
+ // will get processed, now that we've asked for it.
+ ts.needTransform = true;
+ }
+};
+
+function done(stream, er) {
+ if (er) return stream.emit('error', er);
+
+ // if there's nothing in the write buffer, then that means
+ // that nothing more will ever be provided
+ var ws = stream._writableState;
+ var ts = stream._transformState;
+
+ if (ws.length) throw new Error('Calling transform done when ws.length != 0');
+
+ if (ts.transforming) throw new Error('Calling transform done when still transforming');
+
+ return stream.push(null);
+}
+},{"./_stream_duplex":156,"core-util-is":22,"inherits":45}],160:[function(require,module,exports){
+(function (process){
+// A bit simpler than readable streams.
+// Implement an async ._write(chunk, encoding, cb), and it'll handle all
+// the drain event emission and buffering.
-/* SHIM */
-module.exports = require('./index')
-},{"./index":246,"./parse":247,"./sax/sax_ltx":248}],246:[function(require,module,exports){
'use strict';
-var parse = require('./parse')
+module.exports = Writable;
+
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
+
+/*<replacement>*/
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
+/*</replacement>*/
+
+Writable.WritableState = WritableState;
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+/*<replacement>*/
+var internalUtil = {
+ deprecate: require('util-deprecate')
+};
+/*</replacement>*/
+
+/*<replacement>*/
+var Stream;
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
+/*</replacement>*/
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+util.inherits(Writable, Stream);
+
+function nop() {}
+
+function WriteReq(chunk, encoding, cb) {
+ this.chunk = chunk;
+ this.encoding = encoding;
+ this.callback = cb;
+ this.next = null;
+}
+
+var Duplex;
+function WritableState(options, stream) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ options = options || {};
+
+ // object stream flag to indicate whether or not this stream
+ // contains buffers or objects.
+ this.objectMode = !!options.objectMode;
+
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
+
+ // the point at which write() starts returning false
+ // Note: 0 is a valid value, means that we always return false if
+ // the entire buffer is not flushed immediately on write()
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+
+ this.needDrain = false;
+ // at the start of calling end()
+ this.ending = false;
+ // when end() has been called, and returned
+ this.ended = false;
+ // when 'finish' is emitted
+ this.finished = false;
+
+ // should we decode strings into buffers before passing to _write?
+ // this is here so that some node-core streams can optimize string
+ // handling at a lower level.
+ var noDecode = options.decodeStrings === false;
+ this.decodeStrings = !noDecode;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // not an actual buffer we keep track of, but a measurement
+ // of how much we're waiting to get pushed to some underlying
+ // socket or file.
+ this.length = 0;
+
+ // a flag to see when we're in the middle of a write.
+ this.writing = false;
+
+ // when true all writes will be buffered until .uncork() call
+ this.corked = 0;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // a flag to know if we're processing previously buffered items, which
+ // may call the _write() callback in the same tick, so that we don't
+ // end up in an overlapped onwrite situation.
+ this.bufferProcessing = false;
+
+ // the callback that's passed to _write(chunk,cb)
+ this.onwrite = function (er) {
+ onwrite(stream, er);
+ };
+
+ // the callback that the user supplies to write(chunk,encoding,cb)
+ this.writecb = null;
+
+ // the amount that is being written when _write is called.
+ this.writelen = 0;
+
+ this.bufferedRequest = null;
+ this.lastBufferedRequest = null;
+
+ // number of pending user-supplied write callbacks
+ // this must be 0 before 'finish' can be emitted
+ this.pendingcb = 0;
+
+ // emit prefinish if the only thing we're waiting for is _write cbs
+ // This is relevant for synchronous Transform streams
+ this.prefinished = false;
+
+ // True if the error was already emitted and should not be thrown again
+ this.errorEmitted = false;
+
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
+ this.corkedRequestsFree = new CorkedRequest(this);
+}
+
+WritableState.prototype.getBuffer = function writableStateGetBuffer() {
+ var current = this.bufferedRequest;
+ var out = [];
+ while (current) {
+ out.push(current);
+ current = current.next;
+ }
+ return out;
+};
+
+(function () {
+ try {
+ Object.defineProperty(WritableState.prototype, 'buffer', {
+ get: internalUtil.deprecate(function () {
+ return this.getBuffer();
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ });
+ } catch (_) {}
+})();
+var Duplex;
+function Writable(options) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ // Writable ctor is applied to Duplexes, though they're not
+ // instanceof Writable, they're instanceof Readable.
+ if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
+
+ this._writableState = new WritableState(options, this);
+
+ // legacy.
+ this.writable = true;
+
+ if (options) {
+ if (typeof options.write === 'function') this._write = options.write;
+
+ if (typeof options.writev === 'function') this._writev = options.writev;
+ }
+
+ Stream.call(this);
+}
+
+// Otherwise people can pipe Writable streams, which is just wrong.
+Writable.prototype.pipe = function () {
+ this.emit('error', new Error('Cannot pipe, not readable'));
+};
+
+function writeAfterEnd(stream, cb) {
+ var er = new Error('write after end');
+ // TODO: defer error events consistently everywhere, not just the cb
+ stream.emit('error', er);
+ processNextTick(cb, er);
+}
+
+// If we get something that is not a buffer, string, null, or undefined,
+// and we're not in objectMode, then that's an error.
+// Otherwise stream chunks are all considered to be of length=1, and the
+// watermarks determine how many objects to keep in the buffer, rather than
+// how many bytes or characters.
+function validChunk(stream, state, chunk, cb) {
+ var valid = true;
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
+ stream.emit('error', er);
+ processNextTick(cb, er);
+ valid = false;
+ }
+ return valid;
+}
+
+Writable.prototype.write = function (chunk, encoding, cb) {
+ var state = this._writableState;
+ var ret = false;
+
+ if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
+
+ if (typeof cb !== 'function') cb = nop;
+
+ if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
+ state.pendingcb++;
+ ret = writeOrBuffer(this, state, chunk, encoding, cb);
+ }
+
+ return ret;
+};
+
+Writable.prototype.cork = function () {
+ var state = this._writableState;
+
+ state.corked++;
+};
+
+Writable.prototype.uncork = function () {
+ var state = this._writableState;
+
+ if (state.corked) {
+ state.corked--;
+
+ if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
+ }
+};
+
+Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
+ // node::ParseEncoding() requires lower case.
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
+ this._writableState.defaultEncoding = encoding;
+ return this;
+};
+
+function decodeChunk(state, chunk, encoding) {
+ if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
+ chunk = bufferShim.from(chunk, encoding);
+ }
+ return chunk;
+}
+
+// if we're already writing something, then just put this
+// in the queue, and wait our turn. Otherwise, call _write
+// If we return false, then we need a drain event, so set that flag.
+function writeOrBuffer(stream, state, chunk, encoding, cb) {
+ chunk = decodeChunk(state, chunk, encoding);
+
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
+ var len = state.objectMode ? 1 : chunk.length;
+
+ state.length += len;
+
+ var ret = state.length < state.highWaterMark;
+ // we must ensure that previous needDrain will not be reset to false.
+ if (!ret) state.needDrain = true;
+
+ if (state.writing || state.corked) {
+ var last = state.lastBufferedRequest;
+ state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
+ if (last) {
+ last.next = state.lastBufferedRequest;
+ } else {
+ state.bufferedRequest = state.lastBufferedRequest;
+ }
+ state.bufferedRequestCount += 1;
+ } else {
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ }
+
+ return ret;
+}
+
+function doWrite(stream, state, writev, len, chunk, encoding, cb) {
+ state.writelen = len;
+ state.writecb = cb;
+ state.writing = true;
+ state.sync = true;
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
+ state.sync = false;
+}
+
+function onwriteError(stream, state, sync, er, cb) {
+ --state.pendingcb;
+ if (sync) processNextTick(cb, er);else cb(er);
+
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+}
+
+function onwriteStateUpdate(state) {
+ state.writing = false;
+ state.writecb = null;
+ state.length -= state.writelen;
+ state.writelen = 0;
+}
+
+function onwrite(stream, er) {
+ var state = stream._writableState;
+ var sync = state.sync;
+ var cb = state.writecb;
+
+ onwriteStateUpdate(state);
+
+ if (er) onwriteError(stream, state, sync, er, cb);else {
+ // Check if we're actually ready to finish, but don't emit yet
+ var finished = needFinish(state);
+
+ if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
+ clearBuffer(stream, state);
+ }
+
+ if (sync) {
+ /*<replacement>*/
+ asyncWrite(afterWrite, stream, state, finished, cb);
+ /*</replacement>*/
+ } else {
+ afterWrite(stream, state, finished, cb);
+ }
+ }
+}
+
+function afterWrite(stream, state, finished, cb) {
+ if (!finished) onwriteDrain(stream, state);
+ state.pendingcb--;
+ cb();
+ finishMaybe(stream, state);
+}
+
+// Must force callback to be called on nextTick, so that we don't
+// emit 'drain' before the write() consumer gets the 'false' return
+// value, and has a chance to attach a 'drain' listener.
+function onwriteDrain(stream, state) {
+ if (state.length === 0 && state.needDrain) {
+ state.needDrain = false;
+ stream.emit('drain');
+ }
+}
+
+// if there's something in the buffer waiting, then process it
+function clearBuffer(stream, state) {
+ state.bufferProcessing = true;
+ var entry = state.bufferedRequest;
+
+ if (stream._writev && entry && entry.next) {
+ // Fast case, write everything using _writev()
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+
+ var count = 0;
+ while (entry) {
+ buffer[count] = entry;
+ entry = entry.next;
+ count += 1;
+ }
+
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+
+ // doWrite is almost always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
+ state.pendingcb++;
+ state.lastBufferedRequest = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
+ } else {
+ // Slow case, write chunks one-by-one
+ while (entry) {
+ var chunk = entry.chunk;
+ var encoding = entry.encoding;
+ var cb = entry.callback;
+ var len = state.objectMode ? 1 : chunk.length;
+
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ entry = entry.next;
+ // if we didn't call the onwrite immediately, then
+ // it means that we need to wait until it does.
+ // also, that means that the chunk and cb are currently
+ // being processed, so move the buffer counter past them.
+ if (state.writing) {
+ break;
+ }
+ }
+
+ if (entry === null) state.lastBufferedRequest = null;
+ }
+
+ state.bufferedRequestCount = 0;
+ state.bufferedRequest = entry;
+ state.bufferProcessing = false;
+}
+
+Writable.prototype._write = function (chunk, encoding, cb) {
+ cb(new Error('not implemented'));
+};
+
+Writable.prototype._writev = null;
+
+Writable.prototype.end = function (chunk, encoding, cb) {
+ var state = this._writableState;
+
+ if (typeof chunk === 'function') {
+ cb = chunk;
+ chunk = null;
+ encoding = null;
+ } else if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
+
+ // .end() fully uncorks
+ if (state.corked) {
+ state.corked = 1;
+ this.uncork();
+ }
+
+ // ignore unnecessary end() calls.
+ if (!state.ending && !state.finished) endWritable(this, state, cb);
+};
+
+function needFinish(state) {
+ return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
+}
+
+function prefinish(stream, state) {
+ if (!state.prefinished) {
+ state.prefinished = true;
+ stream.emit('prefinish');
+ }
+}
+
+function finishMaybe(stream, state) {
+ var need = needFinish(state);
+ if (need) {
+ if (state.pendingcb === 0) {
+ prefinish(stream, state);
+ state.finished = true;
+ stream.emit('finish');
+ } else {
+ prefinish(stream, state);
+ }
+ }
+ return need;
+}
+
+function endWritable(stream, state, cb) {
+ state.ending = true;
+ finishMaybe(stream, state);
+ if (cb) {
+ if (state.finished) processNextTick(cb);else stream.once('finish', cb);
+ }
+ state.ended = true;
+ stream.writable = false;
+}
+
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
+
+ this.next = null;
+ this.entry = null;
+
+ this.finish = function (err) {
+ var entry = _this.entry;
+ _this.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = _this;
+ } else {
+ state.corkedRequestsFree = _this;
+ }
+ };
+}
+}).call(this,require('_process'))
+},{"./_stream_duplex":156,"_process":153,"buffer":6,"buffer-shims":5,"core-util-is":22,"events":27,"inherits":45,"process-nextick-args":152,"util-deprecate":194}],161:[function(require,module,exports){
+'use strict';
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+module.exports = BufferList;
+
+function BufferList() {
+ this.head = null;
+ this.tail = null;
+ this.length = 0;
+}
+
+BufferList.prototype.push = function (v) {
+ var entry = { data: v, next: null };
+ if (this.length > 0) this.tail.next = entry;else this.head = entry;
+ this.tail = entry;
+ ++this.length;
+};
+
+BufferList.prototype.unshift = function (v) {
+ var entry = { data: v, next: this.head };
+ if (this.length === 0) this.tail = entry;
+ this.head = entry;
+ ++this.length;
+};
+
+BufferList.prototype.shift = function () {
+ if (this.length === 0) return;
+ var ret = this.head.data;
+ if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
+ --this.length;
+ return ret;
+};
+
+BufferList.prototype.clear = function () {
+ this.head = this.tail = null;
+ this.length = 0;
+};
+
+BufferList.prototype.join = function (s) {
+ if (this.length === 0) return '';
+ var p = this.head;
+ var ret = '' + p.data;
+ while (p = p.next) {
+ ret += s + p.data;
+ }return ret;
+};
+
+BufferList.prototype.concat = function (n) {
+ if (this.length === 0) return bufferShim.alloc(0);
+ if (this.length === 1) return this.head.data;
+ var ret = bufferShim.allocUnsafe(n >>> 0);
+ var p = this.head;
+ var i = 0;
+ while (p) {
+ p.data.copy(ret, i);
+ i += p.data.length;
+ p = p.next;
+ }
+ return ret;
+};
+},{"buffer":6,"buffer-shims":5}],162:[function(require,module,exports){
+module.exports = require("./lib/_stream_passthrough.js")
+
+},{"./lib/_stream_passthrough.js":157}],163:[function(require,module,exports){
+(function (process){
+var Stream = (function (){
+ try {
+ return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
+ } catch(_){}
+}());
+exports = module.exports = require('./lib/_stream_readable.js');
+exports.Stream = Stream || exports;
+exports.Readable = exports;
+exports.Writable = require('./lib/_stream_writable.js');
+exports.Duplex = require('./lib/_stream_duplex.js');
+exports.Transform = require('./lib/_stream_transform.js');
+exports.PassThrough = require('./lib/_stream_passthrough.js');
+
+if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
+ module.exports = Stream;
+}
+
+}).call(this,require('_process'))
+},{"./lib/_stream_duplex.js":156,"./lib/_stream_passthrough.js":157,"./lib/_stream_readable.js":158,"./lib/_stream_transform.js":159,"./lib/_stream_writable.js":160,"_process":153}],164:[function(require,module,exports){
+module.exports = require("./lib/_stream_transform.js")
+
+},{"./lib/_stream_transform.js":159}],165:[function(require,module,exports){
+module.exports = require("./lib/_stream_writable.js")
+
+},{"./lib/_stream_writable.js":160}],166:[function(require,module,exports){
+(function (Buffer){
+/*
+CryptoJS v3.1.2
+code.google.com/p/crypto-js
+(c) 2009-2013 by Jeff Mott. All rights reserved.
+code.google.com/p/crypto-js/wiki/License
+*/
+/** @preserve
+(c) 2012 by Cédric Mesnil. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+// constants table
+var zl = [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+ 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+ 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+ 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
+]
+
+var zr = [
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+ 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+ 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+ 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+ 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
+]
+
+var sl = [
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+ 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+ 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+ 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+ 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
+]
+
+var sr = [
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+ 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+ 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+ 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+ 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
+]
+
+var hl = [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]
+var hr = [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]
+
+function bytesToWords (bytes) {
+ var words = []
+ for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
+ words[b >>> 5] |= bytes[i] << (24 - b % 32)
+ }
+ return words
+}
+
+function wordsToBytes (words) {
+ var bytes = []
+ for (var b = 0; b < words.length * 32; b += 8) {
+ bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)
+ }
+ return bytes
+}
+
+function processBlock (H, M, offset) {
+ // swap endian
+ for (var i = 0; i < 16; i++) {
+ var offset_i = offset + i
+ var M_offset_i = M[offset_i]
+
+ // Swap
+ M[offset_i] = (
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
+ )
+ }
+
+ // Working variables
+ var al, bl, cl, dl, el
+ var ar, br, cr, dr, er
+
+ ar = al = H[0]
+ br = bl = H[1]
+ cr = cl = H[2]
+ dr = dl = H[3]
+ er = el = H[4]
+
+ // computation
+ var t
+ for (i = 0; i < 80; i += 1) {
+ t = (al + M[offset + zl[i]]) | 0
+ if (i < 16) {
+ t += f1(bl, cl, dl) + hl[0]
+ } else if (i < 32) {
+ t += f2(bl, cl, dl) + hl[1]
+ } else if (i < 48) {
+ t += f3(bl, cl, dl) + hl[2]
+ } else if (i < 64) {
+ t += f4(bl, cl, dl) + hl[3]
+ } else {// if (i<80) {
+ t += f5(bl, cl, dl) + hl[4]
+ }
+ t = t | 0
+ t = rotl(t, sl[i])
+ t = (t + el) | 0
+ al = el
+ el = dl
+ dl = rotl(cl, 10)
+ cl = bl
+ bl = t
+
+ t = (ar + M[offset + zr[i]]) | 0
+ if (i < 16) {
+ t += f5(br, cr, dr) + hr[0]
+ } else if (i < 32) {
+ t += f4(br, cr, dr) + hr[1]
+ } else if (i < 48) {
+ t += f3(br, cr, dr) + hr[2]
+ } else if (i < 64) {
+ t += f2(br, cr, dr) + hr[3]
+ } else {// if (i<80) {
+ t += f1(br, cr, dr) + hr[4]
+ }
+
+ t = t | 0
+ t = rotl(t, sr[i])
+ t = (t + er) | 0
+ ar = er
+ er = dr
+ dr = rotl(cr, 10)
+ cr = br
+ br = t
+ }
+
+ // intermediate hash value
+ t = (H[1] + cl + dr) | 0
+ H[1] = (H[2] + dl + er) | 0
+ H[2] = (H[3] + el + ar) | 0
+ H[3] = (H[4] + al + br) | 0
+ H[4] = (H[0] + bl + cr) | 0
+ H[0] = t
+}
+
+function f1 (x, y, z) {
+ return ((x) ^ (y) ^ (z))
+}
+
+function f2 (x, y, z) {
+ return (((x) & (y)) | ((~x) & (z)))
+}
+
+function f3 (x, y, z) {
+ return (((x) | (~(y))) ^ (z))
+}
+
+function f4 (x, y, z) {
+ return (((x) & (z)) | ((y) & (~(z))))
+}
+
+function f5 (x, y, z) {
+ return ((x) ^ ((y) | (~(z))))
+}
+
+function rotl (x, n) {
+ return (x << n) | (x >>> (32 - n))
+}
+
+function ripemd160 (message) {
+ var H = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]
+
+ if (typeof message === 'string') {
+ message = new Buffer(message, 'utf8')
+ }
+
+ var m = bytesToWords(message)
+
+ var nBitsLeft = message.length * 8
+ var nBitsTotal = message.length * 8
+
+ // Add padding
+ m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32)
+ m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+ (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
+ )
+
+ for (var i = 0; i < m.length; i += 16) {
+ processBlock(H, m, i)
+ }
+
+ // swap endian
+ for (i = 0; i < 5; i++) {
+ // shortcut
+ var H_i = H[i]
+
+ // Swap
+ H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00)
+ }
+
+ var digestbytes = wordsToBytes(H)
+ return new Buffer(digestbytes)
+}
+
+module.exports = ripemd160
+
+}).call(this,require("buffer").Buffer)
+},{"buffer":6}],167:[function(require,module,exports){
+var util = require('util');
+var SJJ = require('sdp-jingle-json');
+var WildEmitter = require('wildemitter');
+var Peerconn = require('traceablepeerconnection');
+var adapter = require('webrtc-adapter');
+var cloneDeep = require('lodash.clonedeep');
+
+function PeerConnection(config, constraints) {
+ var self = this;
+ var item;
+ WildEmitter.call(this);
+
+ config = config || {};
+ config.iceServers = config.iceServers || [];
+
+ var detectedBrowser = adapter.browserDetails.browser;
+
+ // make sure this only gets enabled in Google Chrome
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.enableChromeNativeSimulcast = false;
+ if (constraints && constraints.optional &&
+ detectedBrowser === 'chrome' &&
+ navigator.appVersion.match(/Chromium\//) === null) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.enableChromeNativeSimulcast) {
+ self.enableChromeNativeSimulcast = true;
+ }
+ });
+ }
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.enableMultiStreamHacks = false;
+ if (constraints && constraints.optional &&
+ detectedBrowser === 'chrome') {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.enableMultiStreamHacks) {
+ self.enableMultiStreamHacks = true;
+ }
+ });
+ }
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.restrictBandwidth = 0;
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetRestrictBandwidth) {
+ self.restrictBandwidth = constraint.andyetRestrictBandwidth;
+ }
+ });
+ }
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // bundle up ice candidates, only works for jingle mode
+ // number > 0 is the delay to wait for additional candidates
+ // ~20ms seems good
+ this.batchIceCandidates = 0;
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetBatchIce) {
+ self.batchIceCandidates = constraint.andyetBatchIce;
+ }
+ });
+ }
+ this.batchedIceCandidates = [];
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // this attemps to strip out candidates with an already known foundation
+ // and type -- i.e. those which are gathered via the same TURN server
+ // but different transports (TURN udp, tcp and tls respectively)
+ if (constraints && constraints.optional && detectedBrowser === 'chrome') {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetFasterICE) {
+ self.eliminateDuplicateCandidates = constraint.andyetFasterICE;
+ }
+ });
+ }
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // when using a server such as the jitsi videobridge we don't need to signal
+ // our candidates
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetDontSignalCandidates) {
+ self.dontSignalCandidates = constraint.andyetDontSignalCandidates;
+ }
+ });
+ }
+
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.assumeSetLocalSuccess = false;
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetAssumeSetLocalSuccess) {
+ self.assumeSetLocalSuccess = constraint.andyetAssumeSetLocalSuccess;
+ }
+ });
+ }
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // working around https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
+ // pass in a timeout for this
+ if (detectedBrowser === 'firefox') {
+ if (constraints && constraints.optional) {
+ this.wtFirefox = 0;
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetFirefoxMakesMeSad) {
+ self.wtFirefox = constraint.andyetFirefoxMakesMeSad;
+ if (self.wtFirefox > 0) {
+ self.firefoxcandidatebuffer = [];
+ }
+ }
+ });
+ }
+ }
+
+
+ this.pc = new Peerconn(config, constraints);
+
+ this.getLocalStreams = this.pc.getLocalStreams.bind(this.pc);
+ this.getRemoteStreams = this.pc.getRemoteStreams.bind(this.pc);
+ this.addStream = this.pc.addStream.bind(this.pc);
+ this.removeStream = this.pc.removeStream.bind(this.pc);
+
+ // proxy events
+ this.pc.on('*', function () {
+ self.emit.apply(self, arguments);
+ });
+
+ // proxy some events directly
+ this.pc.onremovestream = this.emit.bind(this, 'removeStream');
+ this.pc.onaddstream = this.emit.bind(this, 'addStream');
+ this.pc.onnegotiationneeded = this.emit.bind(this, 'negotiationNeeded');
+ this.pc.oniceconnectionstatechange = this.emit.bind(this, 'iceConnectionStateChange');
+ this.pc.onsignalingstatechange = this.emit.bind(this, 'signalingStateChange');
+
+ // handle ice candidate and data channel events
+ this.pc.onicecandidate = this._onIce.bind(this);
+ this.pc.ondatachannel = this._onDataChannel.bind(this);
+
+ this.localDescription = {
+ contents: []
+ };
+ this.remoteDescription = {
+ contents: []
+ };
+
+ this.config = {
+ debug: false,
+ sid: '',
+ isInitiator: true,
+ sdpSessionID: Date.now(),
+ useJingle: false
+ };
+
+ this.iceCredentials = {
+ local: {},
+ remote: {}
+ };
+
+ // apply our config
+ for (item in config) {
+ this.config[item] = config[item];
+ }
+
+ if (this.config.debug) {
+ this.on('*', function () {
+ var logger = config.logger || console;
+ logger.log('PeerConnection event:', arguments);
+ });
+ }
+ this.hadLocalStunCandidate = false;
+ this.hadRemoteStunCandidate = false;
+ this.hadLocalRelayCandidate = false;
+ this.hadRemoteRelayCandidate = false;
+
+ this.hadLocalIPv6Candidate = false;
+ this.hadRemoteIPv6Candidate = false;
+
+ // keeping references for all our data channels
+ // so they dont get garbage collected
+ // can be removed once the following bugs have been fixed
+ // https://crbug.com/405545
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=964092
+ // to be filed for opera
+ this._remoteDataChannels = [];
+ this._localDataChannels = [];
+
+ this._candidateBuffer = [];
+}
+
+util.inherits(PeerConnection, WildEmitter);
+
+Object.defineProperty(PeerConnection.prototype, 'signalingState', {
+ get: function () {
+ return this.pc.signalingState;
+ }
+});
+Object.defineProperty(PeerConnection.prototype, 'iceConnectionState', {
+ get: function () {
+ return this.pc.iceConnectionState;
+ }
+});
+
+PeerConnection.prototype._role = function () {
+ return this.isInitiator ? 'initiator' : 'responder';
+};
+
+// Add a stream to the peer connection object
+PeerConnection.prototype.addStream = function (stream) {
+ this.localStream = stream;
+ this.pc.addStream(stream);
+};
+
+// helper function to check if a remote candidate is a stun/relay
+// candidate or an ipv6 candidate
+PeerConnection.prototype._checkLocalCandidate = function (candidate) {
+ var cand = SJJ.toCandidateJSON(candidate);
+ if (cand.type == 'srflx') {
+ this.hadLocalStunCandidate = true;
+ } else if (cand.type == 'relay') {
+ this.hadLocalRelayCandidate = true;
+ }
+ if (cand.ip.indexOf(':') != -1) {
+ this.hadLocalIPv6Candidate = true;
+ }
+};
+
+// helper function to check if a remote candidate is a stun/relay
+// candidate or an ipv6 candidate
+PeerConnection.prototype._checkRemoteCandidate = function (candidate) {
+ var cand = SJJ.toCandidateJSON(candidate);
+ if (cand.type == 'srflx') {
+ this.hadRemoteStunCandidate = true;
+ } else if (cand.type == 'relay') {
+ this.hadRemoteRelayCandidate = true;
+ }
+ if (cand.ip.indexOf(':') != -1) {
+ this.hadRemoteIPv6Candidate = true;
+ }
+};
+
+
+// Init and add ice candidate object with correct constructor
+PeerConnection.prototype.processIce = function (update, cb) {
+ cb = cb || function () {};
+ var self = this;
+
+ // ignore any added ice candidates to avoid errors. why does the
+ // spec not do this?
+ if (this.pc.signalingState === 'closed') return cb();
+
+ if (update.contents || (update.jingle && update.jingle.contents)) {
+ var contentNames = this.remoteDescription.contents.map(function (c) { return c.name; });
+ var contents = update.contents || update.jingle.contents;
+
+ contents.forEach(function (content) {
+ var transport = content.transport || {};
+ var candidates = transport.candidates || [];
+ var mline = contentNames.indexOf(content.name);
+ var mid = content.name;
+ var remoteContent = self.remoteDescription.contents.find(function (c) {
+ return c.name === content.name;
+ });
+
+ // process candidates as a callback, in case we need to
+ // update ufrag and pwd with offer/answer
+ var processCandidates = function () {
+ candidates.forEach(
+ function (candidate) {
+ var iceCandidate = SJJ.toCandidateSDP(candidate) + '\r\n';
+ self.pc.addIceCandidate(
+ new RTCIceCandidate({
+ candidate: iceCandidate,
+ sdpMLineIndex: mline,
+ sdpMid: mid
+ }), function () {
+ // well, this success callback is pretty meaningless
+ },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ self._checkRemoteCandidate(iceCandidate);
+ });
+ cb();
+ };
+
+ if (self.iceCredentials.remote[content.name] && transport.ufrag &&
+ self.iceCredentials.remote[content.name].ufrag !== transport.ufrag) {
+ if (remoteContent) {
+ remoteContent.transport.ufrag = transport.ufrag;
+ remoteContent.transport.pwd = transport.pwd;
+ var offer = {
+ type: 'offer',
+ jingle: self.remoteDescription
+ };
+ offer.sdp = SJJ.toSessionSDP(offer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'incoming'
+ });
+ self.pc.setRemoteDescription(new RTCSessionDescription(offer),
+ function () {
+ processCandidates();
+ },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ } else {
+ self.emit('error', 'ice restart failed to find matching content');
+ }
+ } else {
+ processCandidates();
+ }
+ });
+ } else {
+ // working around https://code.google.com/p/webrtc/issues/detail?id=3669
+ if (update.candidate && update.candidate.candidate.indexOf('a=') !== 0) {
+ update.candidate.candidate = 'a=' + update.candidate.candidate;
+ }
+
+ if (this.wtFirefox && this.firefoxcandidatebuffer !== null) {
+ // we cant add this yet due to https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
+ if (this.pc.localDescription && this.pc.localDescription.type === 'offer') {
+ this.firefoxcandidatebuffer.push(update.candidate);
+ return cb();
+ }
+ }
+
+ self.pc.addIceCandidate(
+ new RTCIceCandidate(update.candidate),
+ function () { },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ self._checkRemoteCandidate(update.candidate.candidate);
+ cb();
+ }
+};
+
+// Generate and emit an offer with the given constraints
+PeerConnection.prototype.offer = function (constraints, cb) {
+ var self = this;
+ var hasConstraints = arguments.length === 2;
+ var mediaConstraints = hasConstraints && constraints ? constraints : {
+ offerToReceiveAudio: 1,
+ offerToReceiveVideo: 1
+ };
+ cb = hasConstraints ? cb : constraints;
+ cb = cb || function () {};
+
+ if (this.pc.signalingState === 'closed') return cb('Already closed');
+
+ // Actually generate the offer
+ this.pc.createOffer(
+ function (offer) {
+ // does not work for jingle, but jingle.js doesn't need
+ // this hack...
+ var expandedOffer = {
+ type: 'offer',
+ sdp: offer.sdp
+ };
+ if (self.assumeSetLocalSuccess) {
+ self.emit('offer', expandedOffer);
+ cb(null, expandedOffer);
+ }
+ self._candidateBuffer = [];
+ self.pc.setLocalDescription(offer,
+ function () {
+ var jingle;
+ if (self.config.useJingle) {
+ jingle = SJJ.toSessionJSON(offer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ jingle.sid = self.config.sid;
+ self.localDescription = jingle;
+
+ // Save ICE credentials
+ jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.local[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+
+ expandedOffer.jingle = jingle;
+ }
+ expandedOffer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkLocalCandidate(line);
+ }
+ });
+
+ if (!self.assumeSetLocalSuccess) {
+ self.emit('offer', expandedOffer);
+ cb(null, expandedOffer);
+ }
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ }
+ );
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ },
+ mediaConstraints
+ );
+};
+
+
+// Process an incoming offer so that ICE may proceed before deciding
+// to answer the request.
+PeerConnection.prototype.handleOffer = function (offer, cb) {
+ cb = cb || function () {};
+ var self = this;
+ offer.type = 'offer';
+ if (offer.jingle) {
+ if (this.enableChromeNativeSimulcast) {
+ offer.jingle.contents.forEach(function (content) {
+ if (content.name === 'video') {
+ content.application.googConferenceFlag = true;
+ }
+
+ });
+ }
+ if (this.enableMultiStreamHacks) {
+ // add a mixed video stream as first stream
+ offer.jingle.contents.forEach(function (content) {
+ if (content.name === 'video') {
+ var sources = content.application.sources || [];
+ if (sources.length === 0 || sources[0].ssrc !== "3735928559") {
+ sources.unshift({
+ ssrc: "3735928559", // 0xdeadbeef
+ parameters: [
+ {
+ key: "cname",
+ value: "deadbeef"
+ },
+ {
+ key: "msid",
+ value: "mixyourfecintothis please"
+ }
+ ]
+ });
+ content.application.sources = sources;
+ }
+ }
+ });
+ }
+ if (self.restrictBandwidth > 0) {
+ if (offer.jingle.contents.length >= 2 && offer.jingle.contents[1].name === 'video') {
+ var content = offer.jingle.contents[1];
+ var hasBw = content.application && content.application.bandwidth && content.application.bandwidth.bandwidth;
+ if (!hasBw) {
+ offer.jingle.contents[1].application.bandwidth = { type: 'AS', bandwidth: self.restrictBandwidth.toString() };
+ offer.sdp = SJJ.toSessionSDP(offer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ }
+ }
+ // Save ICE credentials
+ offer.jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.remote[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+ offer.sdp = SJJ.toSessionSDP(offer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'incoming'
+ });
+ self.remoteDescription = offer.jingle;
+ }
+ offer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkRemoteCandidate(line);
+ }
+ });
+ self.pc.setRemoteDescription(new RTCSessionDescription(offer),
+ function () {
+ cb();
+ },
+ cb
+ );
+};
+
+// Answer an offer with audio only
+PeerConnection.prototype.answerAudioOnly = function (cb) {
+ var mediaConstraints = {
+ mandatory: {
+ OfferToReceiveAudio: true,
+ OfferToReceiveVideo: false
+ }
+ };
+ this._answer(mediaConstraints, cb);
+};
+
+// Answer an offer without offering to recieve
+PeerConnection.prototype.answerBroadcastOnly = function (cb) {
+ var mediaConstraints = {
+ mandatory: {
+ OfferToReceiveAudio: false,
+ OfferToReceiveVideo: false
+ }
+ };
+ this._answer(mediaConstraints, cb);
+};
+
+// Answer an offer with given constraints default is audio/video
+PeerConnection.prototype.answer = function (constraints, cb) {
+ var hasConstraints = arguments.length === 2;
+ var callback = hasConstraints ? cb : constraints;
+ var mediaConstraints = hasConstraints && constraints ? constraints : {
+ mandatory: {
+ OfferToReceiveAudio: true,
+ OfferToReceiveVideo: true
+ }
+ };
+
+ this._answer(mediaConstraints, callback);
+};
+
+// Process an answer
+PeerConnection.prototype.handleAnswer = function (answer, cb) {
+ cb = cb || function () {};
+ var self = this;
+ if (answer.jingle) {
+ answer.sdp = SJJ.toSessionSDP(answer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'incoming'
+ });
+ self.remoteDescription = answer.jingle;
+
+ // Save ICE credentials
+ answer.jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.remote[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+ }
+ answer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkRemoteCandidate(line);
+ }
+ });
+ self.pc.setRemoteDescription(
+ new RTCSessionDescription(answer),
+ function () {
+ if (self.wtFirefox) {
+ window.setTimeout(function () {
+ self.firefoxcandidatebuffer.forEach(function (candidate) {
+ // add candidates later
+ self.pc.addIceCandidate(
+ new RTCIceCandidate(candidate),
+ function () { },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ self._checkRemoteCandidate(candidate.candidate);
+ });
+ self.firefoxcandidatebuffer = null;
+ }, self.wtFirefox);
+ }
+ cb(null);
+ },
+ cb
+ );
+};
+
+// Close the peer connection
+PeerConnection.prototype.close = function () {
+ this.pc.close();
+
+ this._localDataChannels = [];
+ this._remoteDataChannels = [];
+
+ this.emit('close');
+};
+
+// Internal code sharing for various types of answer methods
+PeerConnection.prototype._answer = function (constraints, cb) {
+ cb = cb || function () {};
+ var self = this;
+ if (!this.pc.remoteDescription) {
+ // the old API is used, call handleOffer
+ throw new Error('remoteDescription not set');
+ }
+
+ if (this.pc.signalingState === 'closed') return cb('Already closed');
+
+ self.pc.createAnswer(
+ function (answer) {
+ var sim = [];
+ if (self.enableChromeNativeSimulcast) {
+ // native simulcast part 1: add another SSRC
+ answer.jingle = SJJ.toSessionJSON(answer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ if (answer.jingle.contents.length >= 2 && answer.jingle.contents[1].name === 'video') {
+ var groups = answer.jingle.contents[1].application.sourceGroups || [];
+ var hasSim = false;
+ groups.forEach(function (group) {
+ if (group.semantics == 'SIM') hasSim = true;
+ });
+ if (!hasSim &&
+ answer.jingle.contents[1].application.sources.length) {
+ var newssrc = JSON.parse(JSON.stringify(answer.jingle.contents[1].application.sources[0]));
+ newssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
+ answer.jingle.contents[1].application.sources.push(newssrc);
+
+ sim.push(answer.jingle.contents[1].application.sources[0].ssrc);
+ sim.push(newssrc.ssrc);
+ groups.push({
+ semantics: 'SIM',
+ sources: sim
+ });
+
+ // also create an RTX one for the SIM one
+ var rtxssrc = JSON.parse(JSON.stringify(newssrc));
+ rtxssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
+ answer.jingle.contents[1].application.sources.push(rtxssrc);
+ groups.push({
+ semantics: 'FID',
+ sources: [newssrc.ssrc, rtxssrc.ssrc]
+ });
+
+ answer.jingle.contents[1].application.sourceGroups = groups;
+ answer.sdp = SJJ.toSessionSDP(answer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ }
+ }
+ var expandedAnswer = {
+ type: 'answer',
+ sdp: answer.sdp
+ };
+ if (self.assumeSetLocalSuccess) {
+ // not safe to do when doing simulcast mangling
+ var copy = cloneDeep(expandedAnswer);
+ self.emit('answer', copy);
+ cb(null, copy);
+ }
+ self._candidateBuffer = [];
+ self.pc.setLocalDescription(answer,
+ function () {
+ if (self.config.useJingle) {
+ var jingle = SJJ.toSessionJSON(answer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ jingle.sid = self.config.sid;
+ self.localDescription = jingle;
+ expandedAnswer.jingle = jingle;
+ }
+ if (self.enableChromeNativeSimulcast) {
+ // native simulcast part 2:
+ // signal multiple tracks to the receiver
+ // for anything in the SIM group
+ if (!expandedAnswer.jingle) {
+ expandedAnswer.jingle = SJJ.toSessionJSON(answer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ expandedAnswer.jingle.contents[1].application.sources.forEach(function (source, idx) {
+ // the floor idx/2 is a hack that relies on a particular order
+ // of groups, alternating between sim and rtx
+ source.parameters = source.parameters.map(function (parameter) {
+ if (parameter.key === 'msid') {
+ parameter.value += '-' + Math.floor(idx / 2);
+ }
+ return parameter;
+ });
+ });
+ expandedAnswer.sdp = SJJ.toSessionSDP(expandedAnswer.jingle, {
+ sid: self.sdpSessionID,
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ expandedAnswer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkLocalCandidate(line);
+ }
+ });
+ if (!self.assumeSetLocalSuccess) {
+ var copy = cloneDeep(expandedAnswer);
+ self.emit('answer', copy);
+ cb(null, copy);
+ }
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ }
+ );
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ },
+ constraints
+ );
+};
+
+// Internal method for emitting ice candidates on our peer object
+PeerConnection.prototype._onIce = function (event) {
+ var self = this;
+ if (event.candidate) {
+ if (this.dontSignalCandidates) return;
+ var ice = event.candidate;
+
+ var expandedCandidate = {
+ candidate: {
+ candidate: ice.candidate,
+ sdpMid: ice.sdpMid,
+ sdpMLineIndex: ice.sdpMLineIndex
+ }
+ };
+ this._checkLocalCandidate(ice.candidate);
+
+ var cand = SJJ.toCandidateJSON(ice.candidate);
+
+ var already;
+ var idx;
+ if (this.eliminateDuplicateCandidates && cand.type === 'relay') {
+ // drop candidates with same foundation, component
+ // take local type pref into account so we don't ignore udp
+ // ones when we know about a TCP one. unlikely but...
+ already = this._candidateBuffer.filter(
+ function (c) {
+ return c.type === 'relay';
+ }).map(function (c) {
+ return c.foundation + ':' + c.component;
+ }
+ );
+ idx = already.indexOf(cand.foundation + ':' + cand.component);
+ // remember: local type pref of udp is 0, tcp 1, tls 2
+ if (idx > -1 && ((cand.priority >> 24) >= (already[idx].priority >> 24))) {
+ // drop it, same foundation with higher (worse) type pref
+ return;
+ }
+ }
+ if (this.config.bundlePolicy === 'max-bundle') {
+ // drop candidates which are duplicate for audio/video/data
+ // duplicate means same host/port but different sdpMid
+ already = this._candidateBuffer.filter(
+ function (c) {
+ return cand.type === c.type;
+ }).map(function (cand) {
+ return cand.address + ':' + cand.port;
+ }
+ );
+ idx = already.indexOf(cand.address + ':' + cand.port);
+ if (idx > -1) return;
+ }
+ // also drop rtcp candidates since we know the peer supports RTCP-MUX
+ // this is a workaround until browsers implement this natively
+ if (this.config.rtcpMuxPolicy === 'require' && cand.component === '2') {
+ return;
+ }
+ this._candidateBuffer.push(cand);
+
+ if (self.config.useJingle) {
+ if (!ice.sdpMid) { // firefox doesn't set this
+ if (self.pc.remoteDescription && self.pc.remoteDescription.type === 'offer') {
+ // preserve name from remote
+ ice.sdpMid = self.remoteDescription.contents[ice.sdpMLineIndex].name;
+ } else {
+ ice.sdpMid = self.localDescription.contents[ice.sdpMLineIndex].name;
+ }
+ }
+ if (!self.iceCredentials.local[ice.sdpMid]) {
+ var jingle = SJJ.toSessionJSON(self.pc.localDescription.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.local[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+ }
+ expandedCandidate.jingle = {
+ contents: [{
+ name: ice.sdpMid,
+ creator: self._role(),
+ transport: {
+ transportType: 'iceUdp',
+ ufrag: self.iceCredentials.local[ice.sdpMid].ufrag,
+ pwd: self.iceCredentials.local[ice.sdpMid].pwd,
+ candidates: [
+ cand
+ ]
+ }
+ }]
+ };
+ if (self.batchIceCandidates > 0) {
+ if (self.batchedIceCandidates.length === 0) {
+ window.setTimeout(function () {
+ var contents = {};
+ self.batchedIceCandidates.forEach(function (content) {
+ content = content.contents[0];
+ if (!contents[content.name]) contents[content.name] = content;
+ contents[content.name].transport.candidates.push(content.transport.candidates[0]);
+ });
+ var newCand = {
+ jingle: {
+ contents: []
+ }
+ };
+ Object.keys(contents).forEach(function (name) {
+ newCand.jingle.contents.push(contents[name]);
+ });
+ self.batchedIceCandidates = [];
+ self.emit('ice', newCand);
+ }, self.batchIceCandidates);
+ }
+ self.batchedIceCandidates.push(expandedCandidate.jingle);
+ return;
+ }
+
+ }
+ this.emit('ice', expandedCandidate);
+ } else {
+ this.emit('endOfCandidates');
+ }
+};
+
+// Internal method for processing a new data channel being added by the
+// other peer.
+PeerConnection.prototype._onDataChannel = function (event) {
+ // make sure we keep a reference so this doesn't get garbage collected
+ var channel = event.channel;
+ this._remoteDataChannels.push(channel);
+
+ this.emit('addChannel', channel);
+};
+
+// Create a data channel spec reference:
+// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannelInit
+PeerConnection.prototype.createDataChannel = function (name, opts) {
+ var channel = this.pc.createDataChannel(name, opts);
+
+ // make sure we keep a reference so this doesn't get garbage collected
+ this._localDataChannels.push(channel);
+
+ return channel;
+};
+
+PeerConnection.prototype.getStats = function (cb) {
+ this.pc.getStats(null,
+ function (res) {
+ cb(null, res);
+ },
+ function (err) {
+ cb(err);
+ }
+ );
+};
+
+module.exports = PeerConnection;
+
+},{"lodash.clonedeep":133,"sdp-jingle-json":168,"traceablepeerconnection":184,"util":197,"webrtc-adapter":201,"wildemitter":211}],168:[function(require,module,exports){
+var toSDP = require('./lib/tosdp');
+var toJSON = require('./lib/tojson');
+
+
+// Converstion from JSON to SDP
+
+exports.toIncomingSDPOffer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'responder',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingSDPOffer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'initiator',
+ direction: 'outgoing'
+ });
+};
+exports.toIncomingSDPAnswer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'initiator',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingSDPAnswer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'responder',
+ direction: 'outgoing'
+ });
+};
+exports.toIncomingMediaSDPOffer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'responder',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingMediaSDPOffer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'initiator',
+ direction: 'outgoing'
+ });
+};
+exports.toIncomingMediaSDPAnswer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'initiator',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingMediaSDPAnswer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'responder',
+ direction: 'outgoing'
+ });
+};
+exports.toCandidateSDP = toSDP.toCandidateSDP;
+exports.toMediaSDP = toSDP.toMediaSDP;
+exports.toSessionSDP = toSDP.toSessionSDP;
+
+
+// Conversion from SDP to JSON
+
+exports.toIncomingJSONOffer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'responder',
+ direction: 'incoming',
+ creators: creators
+ });
+};
+exports.toOutgoingJSONOffer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'initiator',
+ direction: 'outgoing',
+ creators: creators
+ });
+};
+exports.toIncomingJSONAnswer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'initiator',
+ direction: 'incoming',
+ creators: creators
+ });
+};
+exports.toOutgoingJSONAnswer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'responder',
+ direction: 'outgoing',
+ creators: creators
+ });
+};
+exports.toIncomingMediaJSONOffer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'responder',
+ direction: 'incoming',
+ creator: creator
+ });
+};
+exports.toOutgoingMediaJSONOffer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'initiator',
+ direction: 'outgoing',
+ creator: creator
+ });
+};
+exports.toIncomingMediaJSONAnswer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'initiator',
+ direction: 'incoming',
+ creator: creator
+ });
+};
+exports.toOutgoingMediaJSONAnswer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'responder',
+ direction: 'outgoing',
+ creator: creator
+ });
+};
+exports.toCandidateJSON = toJSON.toCandidateJSON;
+exports.toMediaJSON = toJSON.toMediaJSON;
+exports.toSessionJSON = toJSON.toSessionJSON;
+
+},{"./lib/tojson":171,"./lib/tosdp":172}],169:[function(require,module,exports){
+exports.lines = function (sdp) {
+ return sdp.split('\r\n').filter(function (line) {
+ return line.length > 0;
+ });
+};
+
+exports.findLine = function (prefix, mediaLines, sessionLines) {
+ var prefixLength = prefix.length;
+ for (var i = 0; i < mediaLines.length; i++) {
+ if (mediaLines[i].substr(0, prefixLength) === prefix) {
+ return mediaLines[i];
+ }
+ }
+ // Continue searching in parent session section
+ if (!sessionLines) {
+ return false;
+ }
+
+ for (var j = 0; j < sessionLines.length; j++) {
+ if (sessionLines[j].substr(0, prefixLength) === prefix) {
+ return sessionLines[j];
+ }
+ }
+
+ return false;
+};
+
+exports.findLines = function (prefix, mediaLines, sessionLines) {
+ var results = [];
+ var prefixLength = prefix.length;
+ for (var i = 0; i < mediaLines.length; i++) {
+ if (mediaLines[i].substr(0, prefixLength) === prefix) {
+ results.push(mediaLines[i]);
+ }
+ }
+ if (results.length || !sessionLines) {
+ return results;
+ }
+ for (var j = 0; j < sessionLines.length; j++) {
+ if (sessionLines[j].substr(0, prefixLength) === prefix) {
+ results.push(sessionLines[j]);
+ }
+ }
+ return results;
+};
+
+exports.mline = function (line) {
+ var parts = line.substr(2).split(' ');
+ var parsed = {
+ media: parts[0],
+ port: parts[1],
+ proto: parts[2],
+ formats: []
+ };
+ for (var i = 3; i < parts.length; i++) {
+ if (parts[i]) {
+ parsed.formats.push(parts[i]);
+ }
+ }
+ return parsed;
+};
+
+exports.rtpmap = function (line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ id: parts.shift()
+ };
+
+ parts = parts[0].split('/');
+
+ parsed.name = parts[0];
+ parsed.clockrate = parts[1];
+ parsed.channels = parts.length == 3 ? parts[2] : '1';
+ return parsed;
+};
+
+exports.sctpmap = function (line) {
+ // based on -05 draft
+ var parts = line.substr(10).split(' ');
+ var parsed = {
+ number: parts.shift(),
+ protocol: parts.shift(),
+ streams: parts.shift()
+ };
+ return parsed;
+};
+
+
+exports.fmtp = function (line) {
+ var kv, key, value;
+ var parts = line.substr(line.indexOf(' ') + 1).split(';');
+ var parsed = [];
+ for (var i = 0; i < parts.length; i++) {
+ kv = parts[i].split('=');
+ key = kv[0].trim();
+ value = kv[1];
+ if (key && value) {
+ parsed.push({key: key, value: value});
+ } else if (key) {
+ parsed.push({key: '', value: key});
+ }
+ }
+ return parsed;
+};
+
+exports.crypto = function (line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ tag: parts[0],
+ cipherSuite: parts[1],
+ keyParams: parts[2],
+ sessionParams: parts.slice(3).join(' ')
+ };
+ return parsed;
+};
+
+exports.fingerprint = function (line) {
+ var parts = line.substr(14).split(' ');
+ return {
+ hash: parts[0],
+ value: parts[1]
+ };
+};
+
+exports.extmap = function (line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {};
+
+ var idpart = parts.shift();
+ var sp = idpart.indexOf('/');
+ if (sp >= 0) {
+ parsed.id = idpart.substr(0, sp);
+ parsed.senders = idpart.substr(sp + 1);
+ } else {
+ parsed.id = idpart;
+ parsed.senders = 'sendrecv';
+ }
+
+ parsed.uri = parts.shift() || '';
+
+ return parsed;
+};
+
+exports.rtcpfb = function (line) {
+ var parts = line.substr(10).split(' ');
+ var parsed = {};
+ parsed.id = parts.shift();
+ parsed.type = parts.shift();
+ if (parsed.type === 'trr-int') {
+ parsed.value = parts.shift();
+ } else {
+ parsed.subtype = parts.shift() || '';
+ }
+ parsed.parameters = parts;
+ return parsed;
+};
+
+exports.candidate = function (line) {
+ var parts;
+ if (line.indexOf('a=candidate:') === 0) {
+ parts = line.substring(12).split(' ');
+ } else { // no a=candidate
+ parts = line.substring(10).split(' ');
+ }
+
+ var candidate = {
+ foundation: parts[0],
+ component: parts[1],
+ protocol: parts[2].toLowerCase(),
+ priority: parts[3],
+ ip: parts[4],
+ port: parts[5],
+ // skip parts[6] == 'typ'
+ type: parts[7],
+ generation: '0'
+ };
+
+ for (var i = 8; i < parts.length; i += 2) {
+ if (parts[i] === 'raddr') {
+ candidate.relAddr = parts[i + 1];
+ } else if (parts[i] === 'rport') {
+ candidate.relPort = parts[i + 1];
+ } else if (parts[i] === 'generation') {
+ candidate.generation = parts[i + 1];
+ } else if (parts[i] === 'tcptype') {
+ candidate.tcpType = parts[i + 1];
+ }
+ }
+
+ candidate.network = '1';
+
+ return candidate;
+};
+
+exports.sourceGroups = function (lines) {
+ var parsed = [];
+ for (var i = 0; i < lines.length; i++) {
+ var parts = lines[i].substr(13).split(' ');
+ parsed.push({
+ semantics: parts.shift(),
+ sources: parts
+ });
+ }
+ return parsed;
+};
+
+exports.sources = function (lines) {
+ // http://tools.ietf.org/html/rfc5576
+ var parsed = [];
+ var sources = {};
+ for (var i = 0; i < lines.length; i++) {
+ var parts = lines[i].substr(7).split(' ');
+ var ssrc = parts.shift();
+
+ if (!sources[ssrc]) {
+ var source = {
+ ssrc: ssrc,
+ parameters: []
+ };
+ parsed.push(source);
+
+ // Keep an index
+ sources[ssrc] = source;
+ }
+
+ parts = parts.join(' ').split(':');
+ var attribute = parts.shift();
+ var value = parts.join(':') || null;
+
+ sources[ssrc].parameters.push({
+ key: attribute,
+ value: value
+ });
+ }
+
+ return parsed;
+};
+
+exports.groups = function (lines) {
+ // http://tools.ietf.org/html/rfc5888
+ var parsed = [];
+ var parts;
+ for (var i = 0; i < lines.length; i++) {
+ parts = lines[i].substr(8).split(' ');
+ parsed.push({
+ semantics: parts.shift(),
+ contents: parts
+ });
+ }
+ return parsed;
+};
+
+exports.bandwidth = function (line) {
+ var parts = line.substr(2).split(':');
+ var parsed = {};
+ parsed.type = parts.shift();
+ parsed.bandwidth = parts.shift();
+ return parsed;
+};
+
+exports.msid = function (line) {
+ var data = line.substr(7);
+ var parts = data.split(' ');
+ return {
+ msid: data,
+ mslabel: parts[0],
+ label: parts[1]
+ };
+};
+
+},{}],170:[function(require,module,exports){
+module.exports = {
+ initiator: {
+ incoming: {
+ initiator: 'recvonly',
+ responder: 'sendonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'initiator',
+ sendonly: 'responder',
+ sendrecv: 'both',
+ inactive: 'none'
+ },
+ outgoing: {
+ initiator: 'sendonly',
+ responder: 'recvonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'responder',
+ sendonly: 'initiator',
+ sendrecv: 'both',
+ inactive: 'none'
+ }
+ },
+ responder: {
+ incoming: {
+ initiator: 'sendonly',
+ responder: 'recvonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'responder',
+ sendonly: 'initiator',
+ sendrecv: 'both',
+ inactive: 'none'
+ },
+ outgoing: {
+ initiator: 'recvonly',
+ responder: 'sendonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'initiator',
+ sendonly: 'responder',
+ sendrecv: 'both',
+ inactive: 'none'
+ }
+ }
+};
+
+},{}],171:[function(require,module,exports){
+var SENDERS = require('./senders');
+var parsers = require('./parsers');
+var idCounter = Math.random();
+
+
+exports._setIdCounter = function (counter) {
+ idCounter = counter;
+};
+
+exports.toSessionJSON = function (sdp, opts) {
+ var i;
+ var creators = opts.creators || [];
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+
+
+ // Divide the SDP into session and media sections.
+ var media = sdp.split('\r\nm=');
+ for (i = 1; i < media.length; i++) {
+ media[i] = 'm=' + media[i];
+ if (i !== media.length - 1) {
+ media[i] += '\r\n';
+ }
+ }
+ var session = media.shift() + '\r\n';
+ var sessionLines = parsers.lines(session);
+ var parsed = {};
+
+ var contents = [];
+ for (i = 0; i < media.length; i++) {
+ contents.push(exports.toMediaJSON(media[i], session, {
+ role: role,
+ direction: direction,
+ creator: creators[i] || 'initiator'
+ }));
+ }
+ parsed.contents = contents;
+
+ var groupLines = parsers.findLines('a=group:', sessionLines);
+ if (groupLines.length) {
+ parsed.groups = parsers.groups(groupLines);
+ }
+
+ return parsed;
+};
+
+exports.toMediaJSON = function (media, session, opts) {
+ var creator = opts.creator || 'initiator';
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+
+ var lines = parsers.lines(media);
+ var sessionLines = parsers.lines(session);
+ var mline = parsers.mline(lines[0]);
+
+ var content = {
+ creator: creator,
+ name: mline.media,
+ application: {
+ applicationType: 'rtp',
+ media: mline.media,
+ payloads: [],
+ encryption: [],
+ feedback: [],
+ headerExtensions: []
+ },
+ transport: {
+ transportType: 'iceUdp',
+ candidates: [],
+ fingerprints: []
+ }
+ };
+ if (mline.media == 'application') {
+ // FIXME: the description is most likely to be independent
+ // of the SDP and should be processed by other parts of the library
+ content.application = {
+ applicationType: 'datachannel'
+ };
+ content.transport.sctp = [];
+ }
+ var desc = content.application;
+ var trans = content.transport;
+
+ // If we have a mid, use that for the content name instead.
+ var mid = parsers.findLine('a=mid:', lines);
+ if (mid) {
+ content.name = mid.substr(6);
+ }
+
+ if (parsers.findLine('a=sendrecv', lines, sessionLines)) {
+ content.senders = 'both';
+ } else if (parsers.findLine('a=sendonly', lines, sessionLines)) {
+ content.senders = SENDERS[role][direction].sendonly;
+ } else if (parsers.findLine('a=recvonly', lines, sessionLines)) {
+ content.senders = SENDERS[role][direction].recvonly;
+ } else if (parsers.findLine('a=inactive', lines, sessionLines)) {
+ content.senders = 'none';
+ }
+
+ if (desc.applicationType == 'rtp') {
+ var bandwidth = parsers.findLine('b=', lines);
+ if (bandwidth) {
+ desc.bandwidth = parsers.bandwidth(bandwidth);
+ }
+
+ var ssrc = parsers.findLine('a=ssrc:', lines);
+ if (ssrc) {
+ desc.ssrc = ssrc.substr(7).split(' ')[0];
+ }
+
+ var rtpmapLines = parsers.findLines('a=rtpmap:', lines);
+ rtpmapLines.forEach(function (line) {
+ var payload = parsers.rtpmap(line);
+ payload.parameters = [];
+ payload.feedback = [];
+
+ var fmtpLines = parsers.findLines('a=fmtp:' + payload.id, lines);
+ // There should only be one fmtp line per payload
+ fmtpLines.forEach(function (line) {
+ payload.parameters = parsers.fmtp(line);
+ });
+
+ var fbLines = parsers.findLines('a=rtcp-fb:' + payload.id, lines);
+ fbLines.forEach(function (line) {
+ payload.feedback.push(parsers.rtcpfb(line));
+ });
+
+ desc.payloads.push(payload);
+ });
+
+ var cryptoLines = parsers.findLines('a=crypto:', lines, sessionLines);
+ cryptoLines.forEach(function (line) {
+ desc.encryption.push(parsers.crypto(line));
+ });
+
+ if (parsers.findLine('a=rtcp-mux', lines)) {
+ desc.mux = true;
+ }
+
+ var fbLines = parsers.findLines('a=rtcp-fb:*', lines);
+ fbLines.forEach(function (line) {
+ desc.feedback.push(parsers.rtcpfb(line));
+ });
+
+ var extLines = parsers.findLines('a=extmap:', lines);
+ extLines.forEach(function (line) {
+ var ext = parsers.extmap(line);
+
+ ext.senders = SENDERS[role][direction][ext.senders];
+
+ desc.headerExtensions.push(ext);
+ });
+
+ var ssrcGroupLines = parsers.findLines('a=ssrc-group:', lines);
+ desc.sourceGroups = parsers.sourceGroups(ssrcGroupLines || []);
+
+ var ssrcLines = parsers.findLines('a=ssrc:', lines);
+ var sources = desc.sources = parsers.sources(ssrcLines || []);
+
+ var msidLine = parsers.findLine('a=msid:', lines);
+ if (msidLine) {
+ var msid = parsers.msid(msidLine);
+ ['msid', 'mslabel', 'label'].forEach(function (key) {
+ for (var i = 0; i < sources.length; i++) {
+ var found = false;
+ for (var j = 0; j < sources[i].parameters.length; j++) {
+ if (sources[i].parameters[j].key === key) {
+ found = true;
+ }
+ }
+ if (!found) {
+ sources[i].parameters.push({ key: key, value: msid[key] });
+ }
+ }
+ });
+ }
+
+ if (parsers.findLine('a=x-google-flag:conference', lines, sessionLines)) {
+ desc.googConferenceFlag = true;
+ }
+ }
+
+ // transport specific attributes
+ var fingerprintLines = parsers.findLines('a=fingerprint:', lines, sessionLines);
+ var setup = parsers.findLine('a=setup:', lines, sessionLines);
+ fingerprintLines.forEach(function (line) {
+ var fp = parsers.fingerprint(line);
+ if (setup) {
+ fp.setup = setup.substr(8);
+ }
+ trans.fingerprints.push(fp);
+ });
+
+ var ufragLine = parsers.findLine('a=ice-ufrag:', lines, sessionLines);
+ var pwdLine = parsers.findLine('a=ice-pwd:', lines, sessionLines);
+ if (ufragLine && pwdLine) {
+ trans.ufrag = ufragLine.substr(12);
+ trans.pwd = pwdLine.substr(10);
+ trans.candidates = [];
+
+ var candidateLines = parsers.findLines('a=candidate:', lines, sessionLines);
+ candidateLines.forEach(function (line) {
+ trans.candidates.push(exports.toCandidateJSON(line));
+ });
+ }
+
+ if (desc.applicationType == 'datachannel') {
+ var sctpmapLines = parsers.findLines('a=sctpmap:', lines);
+ sctpmapLines.forEach(function (line) {
+ var sctp = parsers.sctpmap(line);
+ trans.sctp.push(sctp);
+ });
+ }
+
+ return content;
+};
+
+exports.toCandidateJSON = function (line) {
+ var candidate = parsers.candidate(line.split('\r\n')[0]);
+ candidate.id = (idCounter++).toString(36).substr(0, 12);
+ return candidate;
+};
+
+},{"./parsers":169,"./senders":170}],172:[function(require,module,exports){
+var SENDERS = require('./senders');
+
+
+exports.toSessionSDP = function (session, opts) {
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+ var sid = opts.sid || session.sid || Date.now();
+ var time = opts.time || Date.now();
+
+ var sdp = [
+ 'v=0',
+ 'o=- ' + sid + ' ' + time + ' IN IP4 0.0.0.0',
+ 's=-',
+ 't=0 0'
+ ];
+
+ var contents = session.contents || [];
+ var hasSources = false;
+ contents.forEach(function (content) {
+ if (content.application.sources &&
+ content.application.sources.length) {
+ hasSources = true;
+ }
+ });
+
+ if (hasSources) {
+ sdp.push('a=msid-semantic: WMS *');
+ }
+
+ var groups = session.groups || [];
+ groups.forEach(function (group) {
+ sdp.push('a=group:' + group.semantics + ' ' + group.contents.join(' '));
+ });
+
+
+ contents.forEach(function (content) {
+ sdp.push(exports.toMediaSDP(content, opts));
+ });
+
+ return sdp.join('\r\n') + '\r\n';
+};
+
+exports.toMediaSDP = function (content, opts) {
+ var sdp = [];
+
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+
+ var desc = content.application;
+ var transport = content.transport;
+ var payloads = desc.payloads || [];
+ var fingerprints = (transport && transport.fingerprints) || [];
+
+ var mline = [];
+ if (desc.applicationType == 'datachannel') {
+ mline.push('application');
+ mline.push('1');
+ mline.push('DTLS/SCTP');
+ if (transport.sctp) {
+ transport.sctp.forEach(function (map) {
+ mline.push(map.number);
+ });
+ }
+ } else {
+ mline.push(desc.media);
+ mline.push('1');
+ if (fingerprints.length > 0) {
+ mline.push('UDP/TLS/RTP/SAVPF');
+ } else if (desc.encryption && desc.encryption.length > 0) {
+ mline.push('RTP/SAVPF');
+ } else {
+ mline.push('RTP/AVPF');
+ }
+ payloads.forEach(function (payload) {
+ mline.push(payload.id);
+ });
+ }
+
+
+ sdp.push('m=' + mline.join(' '));
+
+ sdp.push('c=IN IP4 0.0.0.0');
+ if (desc.bandwidth && desc.bandwidth.type && desc.bandwidth.bandwidth) {
+ sdp.push('b=' + desc.bandwidth.type + ':' + desc.bandwidth.bandwidth);
+ }
+ if (desc.applicationType == 'rtp') {
+ sdp.push('a=rtcp:1 IN IP4 0.0.0.0');
+ }
+
+ if (transport) {
+ if (transport.ufrag) {
+ sdp.push('a=ice-ufrag:' + transport.ufrag);
+ }
+ if (transport.pwd) {
+ sdp.push('a=ice-pwd:' + transport.pwd);
+ }
+
+ var pushedSetup = false;
+ fingerprints.forEach(function (fingerprint) {
+ sdp.push('a=fingerprint:' + fingerprint.hash + ' ' + fingerprint.value);
+ if (fingerprint.setup && !pushedSetup) {
+ sdp.push('a=setup:' + fingerprint.setup);
+ }
+ });
+
+ if (transport.sctp) {
+ transport.sctp.forEach(function (map) {
+ sdp.push('a=sctpmap:' + map.number + ' ' + map.protocol + ' ' + map.streams);
+ });
+ }
+ }
+
+ if (desc.applicationType == 'rtp') {
+ sdp.push('a=' + (SENDERS[role][direction][content.senders] || 'sendrecv'));
+ }
+ sdp.push('a=mid:' + content.name);
+
+ if (desc.sources && desc.sources.length) {
+ (desc.sources[0].parameters || []).forEach(function (param) {
+ if (param.key === 'msid') {
+ sdp.push('a=msid:' + param.value);
+ }
+ });
+ }
+
+ if (desc.mux) {
+ sdp.push('a=rtcp-mux');
+ }
+
+ var encryption = desc.encryption || [];
+ encryption.forEach(function (crypto) {
+ sdp.push('a=crypto:' + crypto.tag + ' ' + crypto.cipherSuite + ' ' + crypto.keyParams + (crypto.sessionParams ? ' ' + crypto.sessionParams : ''));
+ });
+ if (desc.googConferenceFlag) {
+ sdp.push('a=x-google-flag:conference');
+ }
+
+ payloads.forEach(function (payload) {
+ var rtpmap = 'a=rtpmap:' + payload.id + ' ' + payload.name + '/' + payload.clockrate;
+ if (payload.channels && payload.channels != '1') {
+ rtpmap += '/' + payload.channels;
+ }
+ sdp.push(rtpmap);
+
+ if (payload.parameters && payload.parameters.length) {
+ var fmtp = ['a=fmtp:' + payload.id];
+ var parameters = [];
+ payload.parameters.forEach(function (param) {
+ parameters.push((param.key ? param.key + '=' : '') + param.value);
+ });
+ fmtp.push(parameters.join(';'));
+ sdp.push(fmtp.join(' '));
+ }
+
+ if (payload.feedback) {
+ payload.feedback.forEach(function (fb) {
+ if (fb.type === 'trr-int') {
+ sdp.push('a=rtcp-fb:' + payload.id + ' trr-int ' + (fb.value ? fb.value : '0'));
+ } else {
+ sdp.push('a=rtcp-fb:' + payload.id + ' ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ }
+ });
+ }
+ });
+
+ if (desc.feedback) {
+ desc.feedback.forEach(function (fb) {
+ if (fb.type === 'trr-int') {
+ sdp.push('a=rtcp-fb:* trr-int ' + (fb.value ? fb.value : '0'));
+ } else {
+ sdp.push('a=rtcp-fb:* ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ }
+ });
+ }
+
+ var hdrExts = desc.headerExtensions || [];
+ hdrExts.forEach(function (hdr) {
+ sdp.push('a=extmap:' + hdr.id + (hdr.senders ? '/' + SENDERS[role][direction][hdr.senders] : '') + ' ' + hdr.uri);
+ });
+
+ var ssrcGroups = desc.sourceGroups || [];
+ ssrcGroups.forEach(function (ssrcGroup) {
+ sdp.push('a=ssrc-group:' + ssrcGroup.semantics + ' ' + ssrcGroup.sources.join(' '));
+ });
+
+ var ssrcs = desc.sources || [];
+ ssrcs.forEach(function (ssrc) {
+ for (var i = 0; i < ssrc.parameters.length; i++) {
+ var param = ssrc.parameters[i];
+ sdp.push('a=ssrc:' + (ssrc.ssrc || desc.ssrc) + ' ' + param.key + (param.value ? (':' + param.value) : ''));
+ }
+ });
+
+ var candidates = transport.candidates || [];
+ candidates.forEach(function (candidate) {
+ sdp.push(exports.toCandidateSDP(candidate));
+ });
+
+ return sdp.join('\r\n');
+};
+
+exports.toCandidateSDP = function (candidate) {
+ var sdp = [];
+
+ sdp.push(candidate.foundation);
+ sdp.push(candidate.component);
+ sdp.push(candidate.protocol.toUpperCase());
+ sdp.push(candidate.priority);
+ sdp.push(candidate.ip);
+ sdp.push(candidate.port);
+
+ var type = candidate.type;
+ sdp.push('typ');
+ sdp.push(type);
+ if (type === 'srflx' || type === 'prflx' || type === 'relay') {
+ if (candidate.relAddr && candidate.relPort) {
+ sdp.push('raddr');
+ sdp.push(candidate.relAddr);
+ sdp.push('rport');
+ sdp.push(candidate.relPort);
+ }
+ }
+ if (candidate.tcpType && candidate.protocol.toUpperCase() == 'TCP') {
+ sdp.push('tcptype');
+ sdp.push(candidate.tcpType);
+ }
+
+ sdp.push('generation');
+ sdp.push(candidate.generation || '0');
+
+ // FIXME: apparently this is wrong per spec
+ // but then, we need this when actually putting this into
+ // SDP so it's going to stay.
+ // decision needs to be revisited when browsers dont
+ // accept this any longer
+ return 'a=candidate:' + sdp.join(' ');
+};
+
+},{"./senders":170}],173:[function(require,module,exports){
+ /* eslint-env node */
+'use strict';
+
+// SDP helpers.
+var SDPUtils = {};
+
+// Generate an alphanumeric identifier for cname or mids.
+// TODO: use UUIDs instead? https://gist.github.com/jed/982883
+SDPUtils.generateIdentifier = function() {
+ return Math.random().toString(36).substr(2, 10);
+};
+
+// The RTCP CNAME used by all peerconnections from the same JS.
+SDPUtils.localCName = SDPUtils.generateIdentifier();
+
+// Splits SDP into lines, dealing with both CRLF and LF.
+SDPUtils.splitLines = function(blob) {
+ return blob.trim().split('\n').map(function(line) {
+ return line.trim();
+ });
+};
+// Splits SDP into sessionpart and mediasections. Ensures CRLF.
+SDPUtils.splitSections = function(blob) {
+ var parts = blob.split('\nm=');
+ return parts.map(function(part, index) {
+ return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
+ });
+};
+
+// Returns lines that start with a certain prefix.
+SDPUtils.matchPrefix = function(blob, prefix) {
+ return SDPUtils.splitLines(blob).filter(function(line) {
+ return line.indexOf(prefix) === 0;
+ });
+};
+
+// Parses an ICE candidate line. Sample input:
+// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8
+// rport 55996"
+SDPUtils.parseCandidate = function(line) {
+ var parts;
+ // Parse both variants.
+ if (line.indexOf('a=candidate:') === 0) {
+ parts = line.substring(12).split(' ');
+ } else {
+ parts = line.substring(10).split(' ');
+ }
+
+ var candidate = {
+ foundation: parts[0],
+ component: parts[1],
+ protocol: parts[2].toLowerCase(),
+ priority: parseInt(parts[3], 10),
+ ip: parts[4],
+ port: parseInt(parts[5], 10),
+ // skip parts[6] == 'typ'
+ type: parts[7]
+ };
+
+ for (var i = 8; i < parts.length; i += 2) {
+ switch (parts[i]) {
+ case 'raddr':
+ candidate.relatedAddress = parts[i + 1];
+ break;
+ case 'rport':
+ candidate.relatedPort = parseInt(parts[i + 1], 10);
+ break;
+ case 'tcptype':
+ candidate.tcpType = parts[i + 1];
+ break;
+ default: // Unknown extensions are silently ignored.
+ break;
+ }
+ }
+ return candidate;
+};
+
+// Translates a candidate object into SDP candidate attribute.
+SDPUtils.writeCandidate = function(candidate) {
+ var sdp = [];
+ sdp.push(candidate.foundation);
+ sdp.push(candidate.component);
+ sdp.push(candidate.protocol.toUpperCase());
+ sdp.push(candidate.priority);
+ sdp.push(candidate.ip);
+ sdp.push(candidate.port);
+
+ var type = candidate.type;
+ sdp.push('typ');
+ sdp.push(type);
+ if (type !== 'host' && candidate.relatedAddress &&
+ candidate.relatedPort) {
+ sdp.push('raddr');
+ sdp.push(candidate.relatedAddress); // was: relAddr
+ sdp.push('rport');
+ sdp.push(candidate.relatedPort); // was: relPort
+ }
+ if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
+ sdp.push('tcptype');
+ sdp.push(candidate.tcpType);
+ }
+ return 'candidate:' + sdp.join(' ');
+};
+
+// Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
+// a=rtpmap:111 opus/48000/2
+SDPUtils.parseRtpMap = function(line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ payloadType: parseInt(parts.shift(), 10) // was: id
+ };
+
+ parts = parts[0].split('/');
+
+ parsed.name = parts[0];
+ parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
+ // was: channels
+ parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1;
+ return parsed;
+};
+
+// Generate an a=rtpmap line from RTCRtpCodecCapability or
+// RTCRtpCodecParameters.
+SDPUtils.writeRtpMap = function(codec) {
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
+ (codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
+};
+
+// Parses an a=extmap line (headerextension from RFC 5285). Sample input:
+// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
+SDPUtils.parseExtmap = function(line) {
+ var parts = line.substr(9).split(' ');
+ return {
+ id: parseInt(parts[0], 10),
+ uri: parts[1]
+ };
+};
+
+// Generates a=extmap line from RTCRtpHeaderExtensionParameters or
+// RTCRtpHeaderExtension.
+SDPUtils.writeExtmap = function(headerExtension) {
+ return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +
+ ' ' + headerExtension.uri + '\r\n';
+};
+
+// Parses an ftmp line, returns dictionary. Sample input:
+// a=fmtp:96 vbr=on;cng=on
+// Also deals with vbr=on; cng=on
+SDPUtils.parseFmtp = function(line) {
+ var parsed = {};
+ var kv;
+ var parts = line.substr(line.indexOf(' ') + 1).split(';');
+ for (var j = 0; j < parts.length; j++) {
+ kv = parts[j].trim().split('=');
+ parsed[kv[0].trim()] = kv[1];
+ }
+ return parsed;
+};
+
+// Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
+SDPUtils.writeFmtp = function(codec) {
+ var line = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.parameters && Object.keys(codec.parameters).length) {
+ var params = [];
+ Object.keys(codec.parameters).forEach(function(param) {
+ params.push(param + '=' + codec.parameters[param]);
+ });
+ line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
+ }
+ return line;
+};
+
+// Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
+// a=rtcp-fb:98 nack rpsi
+SDPUtils.parseRtcpFb = function(line) {
+ var parts = line.substr(line.indexOf(' ') + 1).split(' ');
+ return {
+ type: parts.shift(),
+ parameter: parts.join(' ')
+ };
+};
+// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
+SDPUtils.writeRtcpFb = function(codec) {
+ var lines = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
+ // FIXME: special handling for trr-int?
+ codec.rtcpFeedback.forEach(function(fb) {
+ lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +
+ (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +
+ '\r\n';
+ });
+ }
+ return lines;
+};
+
+// Parses an RFC 5576 ssrc media attribute. Sample input:
+// a=ssrc:3735928559 cname:something
+SDPUtils.parseSsrcMedia = function(line) {
+ var sp = line.indexOf(' ');
+ var parts = {
+ ssrc: parseInt(line.substr(7, sp - 7), 10)
+ };
+ var colon = line.indexOf(':', sp);
+ if (colon > -1) {
+ parts.attribute = line.substr(sp + 1, colon - sp - 1);
+ parts.value = line.substr(colon + 1);
+ } else {
+ parts.attribute = line.substr(sp + 1);
+ }
+ return parts;
+};
+
+// Extracts DTLS parameters from SDP media section or sessionpart.
+// FIXME: for consistency with other functions this should only
+// get the fingerprint line as input. See also getIceParameters.
+SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ // Search in session part, too.
+ lines = lines.concat(SDPUtils.splitLines(sessionpart));
+ var fpLine = lines.filter(function(line) {
+ return line.indexOf('a=fingerprint:') === 0;
+ })[0].substr(14);
+ // Note: a=setup line is ignored since we use the 'auto' role.
+ var dtlsParameters = {
+ role: 'auto',
+ fingerprints: [{
+ algorithm: fpLine.split(' ')[0],
+ value: fpLine.split(' ')[1]
+ }]
+ };
+ return dtlsParameters;
+};
+
+// Serializes DTLS parameters to SDP.
+SDPUtils.writeDtlsParameters = function(params, setupType) {
+ var sdp = 'a=setup:' + setupType + '\r\n';
+ params.fingerprints.forEach(function(fp) {
+ sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
+ });
+ return sdp;
+};
+// Parses ICE information from SDP media section or sessionpart.
+// FIXME: for consistency with other functions this should only
+// get the ice-ufrag and ice-pwd lines as input.
+SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ // Search in session part, too.
+ lines = lines.concat(SDPUtils.splitLines(sessionpart));
+ var iceParameters = {
+ usernameFragment: lines.filter(function(line) {
+ return line.indexOf('a=ice-ufrag:') === 0;
+ })[0].substr(12),
+ password: lines.filter(function(line) {
+ return line.indexOf('a=ice-pwd:') === 0;
+ })[0].substr(10)
+ };
+ return iceParameters;
+};
+
+// Serializes ICE parameters to SDP.
+SDPUtils.writeIceParameters = function(params) {
+ return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
+ 'a=ice-pwd:' + params.password + '\r\n';
+};
+
+// Parses the SDP media section and returns RTCRtpParameters.
+SDPUtils.parseRtpParameters = function(mediaSection) {
+ var description = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: [],
+ rtcp: []
+ };
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].split(' ');
+ for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
+ var pt = mline[i];
+ var rtpmapline = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtpmap:' + pt + ' ')[0];
+ if (rtpmapline) {
+ var codec = SDPUtils.parseRtpMap(rtpmapline);
+ var fmtps = SDPUtils.matchPrefix(
+ mediaSection, 'a=fmtp:' + pt + ' ');
+ // Only the first a=fmtp:<pt> is considered.
+ codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
+ codec.rtcpFeedback = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtcp-fb:' + pt + ' ')
+ .map(SDPUtils.parseRtcpFb);
+ description.codecs.push(codec);
+ // parse FEC mechanisms from rtpmap lines.
+ switch (codec.name.toUpperCase()) {
+ case 'RED':
+ case 'ULPFEC':
+ description.fecMechanisms.push(codec.name.toUpperCase());
+ break;
+ default: // only RED and ULPFEC are recognized as FEC mechanisms.
+ break;
+ }
+ }
+ }
+ SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {
+ description.headerExtensions.push(SDPUtils.parseExtmap(line));
+ });
+ // FIXME: parse rtcp.
+ return description;
+};
+
+// Generates parts of the SDP media section describing the capabilities /
+// parameters.
+SDPUtils.writeRtpDescription = function(kind, caps) {
+ var sdp = '';
+
+ // Build the mline.
+ sdp += 'm=' + kind + ' ';
+ sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
+ sdp += ' UDP/TLS/RTP/SAVPF ';
+ sdp += caps.codecs.map(function(codec) {
+ if (codec.preferredPayloadType !== undefined) {
+ return codec.preferredPayloadType;
+ }
+ return codec.payloadType;
+ }).join(' ') + '\r\n';
+
+ sdp += 'c=IN IP4 0.0.0.0\r\n';
+ sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
+
+ // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
+ caps.codecs.forEach(function(codec) {
+ sdp += SDPUtils.writeRtpMap(codec);
+ sdp += SDPUtils.writeFmtp(codec);
+ sdp += SDPUtils.writeRtcpFb(codec);
+ });
+ // FIXME: add headerExtensions, fecMechanismş and rtcp.
+ sdp += 'a=rtcp-mux\r\n';
+ return sdp;
+};
+
+// Parses the SDP media section and returns an array of
+// RTCRtpEncodingParameters.
+SDPUtils.parseRtpEncodingParameters = function(mediaSection) {
+ var encodingParameters = [];
+ var description = SDPUtils.parseRtpParameters(mediaSection);
+ var hasRed = description.fecMechanisms.indexOf('RED') !== -1;
+ var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;
+
+ // filter a=ssrc:... cname:, ignore PlanB-msid
+ var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(parts) {
+ return parts.attribute === 'cname';
+ });
+ var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;
+ var secondarySsrc;
+
+ var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')
+ .map(function(line) {
+ var parts = line.split(' ');
+ parts.shift();
+ return parts.map(function(part) {
+ return parseInt(part, 10);
+ });
+ });
+ if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {
+ secondarySsrc = flows[0][1];
+ }
+
+ description.codecs.forEach(function(codec) {
+ if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {
+ var encParam = {
+ ssrc: primarySsrc,
+ codecPayloadType: parseInt(codec.parameters.apt, 10),
+ rtx: {
+ payloadType: codec.payloadType,
+ ssrc: secondarySsrc
+ }
+ };
+ encodingParameters.push(encParam);
+ if (hasRed) {
+ encParam = JSON.parse(JSON.stringify(encParam));
+ encParam.fec = {
+ ssrc: secondarySsrc,
+ mechanism: hasUlpfec ? 'red+ulpfec' : 'red'
+ };
+ encodingParameters.push(encParam);
+ }
+ }
+ });
+ if (encodingParameters.length === 0 && primarySsrc) {
+ encodingParameters.push({
+ ssrc: primarySsrc
+ });
+ }
+
+ // we support both b=AS and b=TIAS but interpret AS as TIAS.
+ var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');
+ if (bandwidth.length) {
+ if (bandwidth[0].indexOf('b=TIAS:') === 0) {
+ bandwidth = parseInt(bandwidth[0].substr(7), 10);
+ } else if (bandwidth[0].indexOf('b=AS:') === 0) {
+ bandwidth = parseInt(bandwidth[0].substr(5), 10);
+ }
+ encodingParameters.forEach(function(params) {
+ params.maxBitrate = bandwidth;
+ });
+ }
+ return encodingParameters;
+};
+
+SDPUtils.writeSessionBoilerplate = function() {
+ // FIXME: sess-id should be an NTP timestamp.
+ return 'v=0\r\n' +
+ 'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
+ 's=-\r\n' +
+ 't=0 0\r\n';
+};
+
+SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
+ var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
+
+ // Map ICE parameters (ufrag, pwd) to SDP.
+ sdp += SDPUtils.writeIceParameters(
+ transceiver.iceGatherer.getLocalParameters());
+
+ // Map DTLS parameters to SDP.
+ sdp += SDPUtils.writeDtlsParameters(
+ transceiver.dtlsTransport.getLocalParameters(),
+ type === 'offer' ? 'actpass' : 'active');
+
+ sdp += 'a=mid:' + transceiver.mid + '\r\n';
+
+ if (transceiver.rtpSender && transceiver.rtpReceiver) {
+ sdp += 'a=sendrecv\r\n';
+ } else if (transceiver.rtpSender) {
+ sdp += 'a=sendonly\r\n';
+ } else if (transceiver.rtpReceiver) {
+ sdp += 'a=recvonly\r\n';
+ } else {
+ sdp += 'a=inactive\r\n';
+ }
+
+ // FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet.
+ if (transceiver.rtpSender) {
+ var msid = 'msid:' + stream.id + ' ' +
+ transceiver.rtpSender.track.id + '\r\n';
+ sdp += 'a=' + msid;
+ sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
+ ' ' + msid;
+ }
+ // FIXME: this should be written by writeRtpDescription.
+ sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
+ ' cname:' + SDPUtils.localCName + '\r\n';
+ return sdp;
+};
+
+// Gets the direction from the mediaSection or the sessionpart.
+SDPUtils.getDirection = function(mediaSection, sessionpart) {
+ // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
+ var lines = SDPUtils.splitLines(mediaSection);
+ for (var i = 0; i < lines.length; i++) {
+ switch (lines[i]) {
+ case 'a=sendrecv':
+ case 'a=sendonly':
+ case 'a=recvonly':
+ case 'a=inactive':
+ return lines[i].substr(2);
+ default:
+ // FIXME: What should happen here?
+ }
+ }
+ if (sessionpart) {
+ return SDPUtils.getDirection(sessionpart);
+ }
+ return 'sendrecv';
+};
+
+// Expose public methods.
+module.exports = SDPUtils;
+
+},{}],174:[function(require,module,exports){
+(function (Buffer){
+// prototype class for hash functions
+function Hash (blockSize, finalSize) {
+ this._block = new Buffer(blockSize)
+ this._finalSize = finalSize
+ this._blockSize = blockSize
+ this._len = 0
+ this._s = 0
+}
+
+Hash.prototype.update = function (data, enc) {
+ if (typeof data === 'string') {
+ enc = enc || 'utf8'
+ data = new Buffer(data, enc)
+ }
+
+ var l = this._len += data.length
+ var s = this._s || 0
+ var f = 0
+ var buffer = this._block
+
+ while (s < l) {
+ var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
+ var ch = (t - f)
+
+ for (var i = 0; i < ch; i++) {
+ buffer[(s % this._blockSize) + i] = data[i + f]
+ }
+
+ s += ch
+ f += ch
+
+ if ((s % this._blockSize) === 0) {
+ this._update(buffer)
+ }
+ }
+ this._s = s
+
+ return this
+}
+
+Hash.prototype.digest = function (enc) {
+ // Suppose the length of the message M, in bits, is l
+ var l = this._len * 8
+
+ // Append the bit 1 to the end of the message
+ this._block[this._len % this._blockSize] = 0x80
+
+ // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
+ this._block.fill(0, this._len % this._blockSize + 1)
+
+ if (l % (this._blockSize * 8) >= this._finalSize * 8) {
+ this._update(this._block)
+ this._block.fill(0)
+ }
+
+ // to this append the block which is equal to the number l written in binary
+ // TODO: handle case where l is > Math.pow(2, 29)
+ this._block.writeInt32BE(l, this._blockSize - 4)
+
+ var hash = this._update(this._block) || this._hash()
+
+ return enc ? hash.toString(enc) : hash
+}
+
+Hash.prototype._update = function () {
+ throw new Error('_update must be implemented by subclass')
+}
+
+module.exports = Hash
+
+}).call(this,require("buffer").Buffer)
+},{"buffer":6}],175:[function(require,module,exports){
+var exports = module.exports = function SHA (algorithm) {
+ algorithm = algorithm.toLowerCase()
+
+ var Algorithm = exports[algorithm]
+ if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
+
+ return new Algorithm()
+}
+
+exports.sha = require('./sha')
+exports.sha1 = require('./sha1')
+exports.sha224 = require('./sha224')
+exports.sha256 = require('./sha256')
+exports.sha384 = require('./sha384')
+exports.sha512 = require('./sha512')
+
+},{"./sha":176,"./sha1":177,"./sha224":178,"./sha256":179,"./sha384":180,"./sha512":181}],176:[function(require,module,exports){
+(function (Buffer){
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
+ * in FIPS PUB 180-1
+ * This source code is derived from sha1.js of the same repository.
+ * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
+ * operation was added.
+ */
+
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
+]
+
+var W = new Array(80)
+
+function Sha () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha, Hash)
+
+Sha.prototype.init = function () {
+ this._a = 0x67452301
+ this._b = 0xefcdab89
+ this._c = 0x98badcfe
+ this._d = 0x10325476
+ this._e = 0xc3d2e1f0
+
+ return this
+}
+
+function rotl5 (num) {
+ return (num << 5) | (num >>> 27)
+}
+
+function rotl30 (num) {
+ return (num << 30) | (num >>> 2)
+}
+
+function ft (s, b, c, d) {
+ if (s === 0) return (b & c) | ((~b) & d)
+ if (s === 2) return (b & c) | (b & d) | (c & d)
+ return b ^ c ^ d
+}
+
+Sha.prototype._update = function (M) {
+ var W = this._w
+
+ var a = this._a | 0
+ var b = this._b | 0
+ var c = this._c | 0
+ var d = this._d | 0
+ var e = this._e | 0
+
+ for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
+ for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]
+
+ for (var j = 0; j < 80; ++j) {
+ var s = ~~(j / 20)
+ var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
+
+ e = d
+ d = c
+ c = rotl30(b)
+ b = a
+ a = t
+ }
+
+ this._a = (a + this._a) | 0
+ this._b = (b + this._b) | 0
+ this._c = (c + this._c) | 0
+ this._d = (d + this._d) | 0
+ this._e = (e + this._e) | 0
+}
+
+Sha.prototype._hash = function () {
+ var H = new Buffer(20)
+
+ H.writeInt32BE(this._a | 0, 0)
+ H.writeInt32BE(this._b | 0, 4)
+ H.writeInt32BE(this._c | 0, 8)
+ H.writeInt32BE(this._d | 0, 12)
+ H.writeInt32BE(this._e | 0, 16)
+
+ return H
+}
+
+module.exports = Sha
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],177:[function(require,module,exports){
+(function (Buffer){
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
+]
+
+var W = new Array(80)
+
+function Sha1 () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha1, Hash)
+
+Sha1.prototype.init = function () {
+ this._a = 0x67452301
+ this._b = 0xefcdab89
+ this._c = 0x98badcfe
+ this._d = 0x10325476
+ this._e = 0xc3d2e1f0
+
+ return this
+}
+
+function rotl1 (num) {
+ return (num << 1) | (num >>> 31)
+}
+
+function rotl5 (num) {
+ return (num << 5) | (num >>> 27)
+}
+
+function rotl30 (num) {
+ return (num << 30) | (num >>> 2)
+}
+
+function ft (s, b, c, d) {
+ if (s === 0) return (b & c) | ((~b) & d)
+ if (s === 2) return (b & c) | (b & d) | (c & d)
+ return b ^ c ^ d
+}
+
+Sha1.prototype._update = function (M) {
+ var W = this._w
+
+ var a = this._a | 0
+ var b = this._b | 0
+ var c = this._c | 0
+ var d = this._d | 0
+ var e = this._e | 0
+
+ for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
+ for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])
+
+ for (var j = 0; j < 80; ++j) {
+ var s = ~~(j / 20)
+ var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
+
+ e = d
+ d = c
+ c = rotl30(b)
+ b = a
+ a = t
+ }
+
+ this._a = (a + this._a) | 0
+ this._b = (b + this._b) | 0
+ this._c = (c + this._c) | 0
+ this._d = (d + this._d) | 0
+ this._e = (e + this._e) | 0
+}
+
+Sha1.prototype._hash = function () {
+ var H = new Buffer(20)
+
+ H.writeInt32BE(this._a | 0, 0)
+ H.writeInt32BE(this._b | 0, 4)
+ H.writeInt32BE(this._c | 0, 8)
+ H.writeInt32BE(this._d | 0, 12)
+ H.writeInt32BE(this._e | 0, 16)
+
+ return H
+}
+
+module.exports = Sha1
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],178:[function(require,module,exports){
+(function (Buffer){
/**
- * The only (relevant) data structure
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
+ * in FIPS 180-2
+ * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ *
*/
-exports.Element = require('./dom-element')
+var inherits = require('inherits')
+var Sha256 = require('./sha256')
+var Hash = require('./hash')
+
+var W = new Array(64)
+
+function Sha224 () {
+ this.init()
+
+ this._w = W // new Array(64)
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha224, Sha256)
+
+Sha224.prototype.init = function () {
+ this._a = 0xc1059ed8
+ this._b = 0x367cd507
+ this._c = 0x3070dd17
+ this._d = 0xf70e5939
+ this._e = 0xffc00b31
+ this._f = 0x68581511
+ this._g = 0x64f98fa7
+ this._h = 0xbefa4fa4
+
+ return this
+}
+
+Sha224.prototype._hash = function () {
+ var H = new Buffer(28)
+
+ H.writeInt32BE(this._a, 0)
+ H.writeInt32BE(this._b, 4)
+ H.writeInt32BE(this._c, 8)
+ H.writeInt32BE(this._d, 12)
+ H.writeInt32BE(this._e, 16)
+ H.writeInt32BE(this._f, 20)
+ H.writeInt32BE(this._g, 24)
+
+ return H
+}
+
+module.exports = Sha224
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"./sha256":179,"buffer":6,"inherits":45}],179:[function(require,module,exports){
+(function (Buffer){
/**
- * Helper
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
+ * in FIPS 180-2
+ * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ *
*/
-exports.escapeXml = require('./element').escapeXml
+
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
+ 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
+ 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
+ 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
+ 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
+ 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
+ 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
+ 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
+ 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
+ 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
+ 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
+ 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
+ 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
+ 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
+ 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
+ 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
+]
+
+var W = new Array(64)
+
+function Sha256 () {
+ this.init()
+
+ this._w = W // new Array(64)
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha256, Hash)
+
+Sha256.prototype.init = function () {
+ this._a = 0x6a09e667
+ this._b = 0xbb67ae85
+ this._c = 0x3c6ef372
+ this._d = 0xa54ff53a
+ this._e = 0x510e527f
+ this._f = 0x9b05688c
+ this._g = 0x1f83d9ab
+ this._h = 0x5be0cd19
+
+ return this
+}
+
+function ch (x, y, z) {
+ return z ^ (x & (y ^ z))
+}
+
+function maj (x, y, z) {
+ return (x & y) | (z & (x | y))
+}
+
+function sigma0 (x) {
+ return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
+}
+
+function sigma1 (x) {
+ return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
+}
+
+function gamma0 (x) {
+ return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
+}
+
+function gamma1 (x) {
+ return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
+}
+
+Sha256.prototype._update = function (M) {
+ var W = this._w
+
+ var a = this._a | 0
+ var b = this._b | 0
+ var c = this._c | 0
+ var d = this._d | 0
+ var e = this._e | 0
+ var f = this._f | 0
+ var g = this._g | 0
+ var h = this._h | 0
+
+ for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
+ for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0
+
+ for (var j = 0; j < 64; ++j) {
+ var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0
+ var T2 = (sigma0(a) + maj(a, b, c)) | 0
+
+ h = g
+ g = f
+ f = e
+ e = (d + T1) | 0
+ d = c
+ c = b
+ b = a
+ a = (T1 + T2) | 0
+ }
+
+ this._a = (a + this._a) | 0
+ this._b = (b + this._b) | 0
+ this._c = (c + this._c) | 0
+ this._d = (d + this._d) | 0
+ this._e = (e + this._e) | 0
+ this._f = (f + this._f) | 0
+ this._g = (g + this._g) | 0
+ this._h = (h + this._h) | 0
+}
+
+Sha256.prototype._hash = function () {
+ var H = new Buffer(32)
+
+ H.writeInt32BE(this._a, 0)
+ H.writeInt32BE(this._b, 4)
+ H.writeInt32BE(this._c, 8)
+ H.writeInt32BE(this._d, 12)
+ H.writeInt32BE(this._e, 16)
+ H.writeInt32BE(this._f, 20)
+ H.writeInt32BE(this._g, 24)
+ H.writeInt32BE(this._h, 28)
+
+ return H
+}
+
+module.exports = Sha256
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],180:[function(require,module,exports){
+(function (Buffer){
+var inherits = require('inherits')
+var SHA512 = require('./sha512')
+var Hash = require('./hash')
+
+var W = new Array(160)
+
+function Sha384 () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 128, 112)
+}
+
+inherits(Sha384, SHA512)
+
+Sha384.prototype.init = function () {
+ this._ah = 0xcbbb9d5d
+ this._bh = 0x629a292a
+ this._ch = 0x9159015a
+ this._dh = 0x152fecd8
+ this._eh = 0x67332667
+ this._fh = 0x8eb44a87
+ this._gh = 0xdb0c2e0d
+ this._hh = 0x47b5481d
+
+ this._al = 0xc1059ed8
+ this._bl = 0x367cd507
+ this._cl = 0x3070dd17
+ this._dl = 0xf70e5939
+ this._el = 0xffc00b31
+ this._fl = 0x68581511
+ this._gl = 0x64f98fa7
+ this._hl = 0xbefa4fa4
+
+ return this
+}
+
+Sha384.prototype._hash = function () {
+ var H = new Buffer(48)
+
+ function writeInt64BE (h, l, offset) {
+ H.writeInt32BE(h, offset)
+ H.writeInt32BE(l, offset + 4)
+ }
+
+ writeInt64BE(this._ah, this._al, 0)
+ writeInt64BE(this._bh, this._bl, 8)
+ writeInt64BE(this._ch, this._cl, 16)
+ writeInt64BE(this._dh, this._dl, 24)
+ writeInt64BE(this._eh, this._el, 32)
+ writeInt64BE(this._fh, this._fl, 40)
+
+ return H
+}
+
+module.exports = Sha384
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"./sha512":181,"buffer":6,"inherits":45}],181:[function(require,module,exports){
+(function (Buffer){
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
+ 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
+ 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
+ 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
+ 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
+ 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
+ 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
+ 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
+ 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
+ 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
+ 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
+ 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
+ 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
+ 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
+ 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
+ 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
+ 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
+ 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
+ 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
+ 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
+ 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
+ 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
+ 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
+ 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
+ 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
+ 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
+ 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
+ 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
+ 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
+ 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
+ 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
+ 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
+ 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
+ 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
+ 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
+ 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
+ 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
+ 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
+ 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
+ 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
+]
+
+var W = new Array(160)
+
+function Sha512 () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 128, 112)
+}
+
+inherits(Sha512, Hash)
+
+Sha512.prototype.init = function () {
+ this._ah = 0x6a09e667
+ this._bh = 0xbb67ae85
+ this._ch = 0x3c6ef372
+ this._dh = 0xa54ff53a
+ this._eh = 0x510e527f
+ this._fh = 0x9b05688c
+ this._gh = 0x1f83d9ab
+ this._hh = 0x5be0cd19
+
+ this._al = 0xf3bcc908
+ this._bl = 0x84caa73b
+ this._cl = 0xfe94f82b
+ this._dl = 0x5f1d36f1
+ this._el = 0xade682d1
+ this._fl = 0x2b3e6c1f
+ this._gl = 0xfb41bd6b
+ this._hl = 0x137e2179
+
+ return this
+}
+
+function Ch (x, y, z) {
+ return z ^ (x & (y ^ z))
+}
+
+function maj (x, y, z) {
+ return (x & y) | (z & (x | y))
+}
+
+function sigma0 (x, xl) {
+ return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
+}
+
+function sigma1 (x, xl) {
+ return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
+}
+
+function Gamma0 (x, xl) {
+ return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
+}
+
+function Gamma0l (x, xl) {
+ return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
+}
+
+function Gamma1 (x, xl) {
+ return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
+}
+
+function Gamma1l (x, xl) {
+ return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
+}
+
+function getCarry (a, b) {
+ return (a >>> 0) < (b >>> 0) ? 1 : 0
+}
+
+Sha512.prototype._update = function (M) {
+ var W = this._w
+
+ var ah = this._ah | 0
+ var bh = this._bh | 0
+ var ch = this._ch | 0
+ var dh = this._dh | 0
+ var eh = this._eh | 0
+ var fh = this._fh | 0
+ var gh = this._gh | 0
+ var hh = this._hh | 0
+
+ var al = this._al | 0
+ var bl = this._bl | 0
+ var cl = this._cl | 0
+ var dl = this._dl | 0
+ var el = this._el | 0
+ var fl = this._fl | 0
+ var gl = this._gl | 0
+ var hl = this._hl | 0
+
+ for (var i = 0; i < 32; i += 2) {
+ W[i] = M.readInt32BE(i * 4)
+ W[i + 1] = M.readInt32BE(i * 4 + 4)
+ }
+ for (; i < 160; i += 2) {
+ var xh = W[i - 15 * 2]
+ var xl = W[i - 15 * 2 + 1]
+ var gamma0 = Gamma0(xh, xl)
+ var gamma0l = Gamma0l(xl, xh)
+
+ xh = W[i - 2 * 2]
+ xl = W[i - 2 * 2 + 1]
+ var gamma1 = Gamma1(xh, xl)
+ var gamma1l = Gamma1l(xl, xh)
+
+ // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+ var Wi7h = W[i - 7 * 2]
+ var Wi7l = W[i - 7 * 2 + 1]
+
+ var Wi16h = W[i - 16 * 2]
+ var Wi16l = W[i - 16 * 2 + 1]
+
+ var Wil = (gamma0l + Wi7l) | 0
+ var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0
+ Wil = (Wil + gamma1l) | 0
+ Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0
+ Wil = (Wil + Wi16l) | 0
+ Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0
+
+ W[i] = Wih
+ W[i + 1] = Wil
+ }
+
+ for (var j = 0; j < 160; j += 2) {
+ Wih = W[j]
+ Wil = W[j + 1]
+
+ var majh = maj(ah, bh, ch)
+ var majl = maj(al, bl, cl)
+
+ var sigma0h = sigma0(ah, al)
+ var sigma0l = sigma0(al, ah)
+ var sigma1h = sigma1(eh, el)
+ var sigma1l = sigma1(el, eh)
+
+ // t1 = h + sigma1 + ch + K[j] + W[j]
+ var Kih = K[j]
+ var Kil = K[j + 1]
+
+ var chh = Ch(eh, fh, gh)
+ var chl = Ch(el, fl, gl)
+
+ var t1l = (hl + sigma1l) | 0
+ var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0
+ t1l = (t1l + chl) | 0
+ t1h = (t1h + chh + getCarry(t1l, chl)) | 0
+ t1l = (t1l + Kil) | 0
+ t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0
+ t1l = (t1l + Wil) | 0
+ t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0
+
+ // t2 = sigma0 + maj
+ var t2l = (sigma0l + majl) | 0
+ var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0
+
+ hh = gh
+ hl = gl
+ gh = fh
+ gl = fl
+ fh = eh
+ fl = el
+ el = (dl + t1l) | 0
+ eh = (dh + t1h + getCarry(el, dl)) | 0
+ dh = ch
+ dl = cl
+ ch = bh
+ cl = bl
+ bh = ah
+ bl = al
+ al = (t1l + t2l) | 0
+ ah = (t1h + t2h + getCarry(al, t1l)) | 0
+ }
+
+ this._al = (this._al + al) | 0
+ this._bl = (this._bl + bl) | 0
+ this._cl = (this._cl + cl) | 0
+ this._dl = (this._dl + dl) | 0
+ this._el = (this._el + el) | 0
+ this._fl = (this._fl + fl) | 0
+ this._gl = (this._gl + gl) | 0
+ this._hl = (this._hl + hl) | 0
+
+ this._ah = (this._ah + ah + getCarry(this._al, al)) | 0
+ this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0
+ this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0
+ this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0
+ this._eh = (this._eh + eh + getCarry(this._el, el)) | 0
+ this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0
+ this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0
+ this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0
+}
+
+Sha512.prototype._hash = function () {
+ var H = new Buffer(64)
+
+ function writeInt64BE (h, l, offset) {
+ H.writeInt32BE(h, offset)
+ H.writeInt32BE(l, offset + 4)
+ }
+
+ writeInt64BE(this._ah, this._al, 0)
+ writeInt64BE(this._bh, this._bl, 8)
+ writeInt64BE(this._ch, this._cl, 16)
+ writeInt64BE(this._dh, this._dl, 24)
+ writeInt64BE(this._eh, this._el, 32)
+ writeInt64BE(this._fh, this._fl, 40)
+ writeInt64BE(this._gh, this._gl, 48)
+ writeInt64BE(this._hh, this._hl, 56)
+
+ return H
+}
+
+module.exports = Sha512
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],182:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+module.exports = Stream;
+
+var EE = require('events').EventEmitter;
+var inherits = require('inherits');
+
+inherits(Stream, EE);
+Stream.Readable = require('readable-stream/readable.js');
+Stream.Writable = require('readable-stream/writable.js');
+Stream.Duplex = require('readable-stream/duplex.js');
+Stream.Transform = require('readable-stream/transform.js');
+Stream.PassThrough = require('readable-stream/passthrough.js');
+
+// Backwards-compat with node 0.4.x
+Stream.Stream = Stream;
+
+
+
+// old-style streams. Note that the pipe method (the only relevant
+// part of this class) is overridden in the Readable class.
+
+function Stream() {
+ EE.call(this);
+}
+
+Stream.prototype.pipe = function(dest, options) {
+ var source = this;
+
+ function ondata(chunk) {
+ if (dest.writable) {
+ if (false === dest.write(chunk) && source.pause) {
+ source.pause();
+ }
+ }
+ }
+
+ source.on('data', ondata);
+
+ function ondrain() {
+ if (source.readable && source.resume) {
+ source.resume();
+ }
+ }
+
+ dest.on('drain', ondrain);
+
+ // If the 'end' option is not supplied, dest.end() will be called when
+ // source gets the 'end' or 'close' events. Only dest.end() once.
+ if (!dest._isStdio && (!options || options.end !== false)) {
+ source.on('end', onend);
+ source.on('close', onclose);
+ }
+
+ var didOnEnd = false;
+ function onend() {
+ if (didOnEnd) return;
+ didOnEnd = true;
+
+ dest.end();
+ }
+
+
+ function onclose() {
+ if (didOnEnd) return;
+ didOnEnd = true;
+
+ if (typeof dest.destroy === 'function') dest.destroy();
+ }
+
+ // don't leave dangling pipes when there are errors.
+ function onerror(er) {
+ cleanup();
+ if (EE.listenerCount(this, 'error') === 0) {
+ throw er; // Unhandled stream error in pipe.
+ }
+ }
+
+ source.on('error', onerror);
+ dest.on('error', onerror);
+
+ // remove all the event listeners that were added.
+ function cleanup() {
+ source.removeListener('data', ondata);
+ dest.removeListener('drain', ondrain);
+
+ source.removeListener('end', onend);
+ source.removeListener('close', onclose);
+
+ source.removeListener('error', onerror);
+ dest.removeListener('error', onerror);
+
+ source.removeListener('end', cleanup);
+ source.removeListener('close', cleanup);
+
+ dest.removeListener('close', cleanup);
+ }
+
+ source.on('end', cleanup);
+ source.on('close', cleanup);
+
+ dest.on('close', cleanup);
+
+ dest.emit('pipe', source);
+
+ // Allow for unix-like usage: A.pipe(B).pipe(C)
+ return dest;
+};
+
+},{"events":27,"inherits":45,"readable-stream/duplex.js":155,"readable-stream/passthrough.js":162,"readable-stream/readable.js":163,"readable-stream/transform.js":164,"readable-stream/writable.js":165}],183:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var Buffer = require('buffer').Buffer;
+
+var isBufferEncoding = Buffer.isEncoding
+ || function(encoding) {
+ switch (encoding && encoding.toLowerCase()) {
+ case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
+ default: return false;
+ }
+ }
+
+
+function assertEncoding(encoding) {
+ if (encoding && !isBufferEncoding(encoding)) {
+ throw new Error('Unknown encoding: ' + encoding);
+ }
+}
+
+// StringDecoder provides an interface for efficiently splitting a series of
+// buffers into a series of JS strings without breaking apart multi-byte
+// characters. CESU-8 is handled as part of the UTF-8 encoding.
+//
+// @TODO Handling all encodings inside a single object makes it very difficult
+// to reason about this code, so it should be split up in the future.
+// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
+// points as used by CESU-8.
+var StringDecoder = exports.StringDecoder = function(encoding) {
+ this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
+ assertEncoding(encoding);
+ switch (this.encoding) {
+ case 'utf8':
+ // CESU-8 represents each of Surrogate Pair by 3-bytes
+ this.surrogateSize = 3;
+ break;
+ case 'ucs2':
+ case 'utf16le':
+ // UTF-16 represents each of Surrogate Pair by 2-bytes
+ this.surrogateSize = 2;
+ this.detectIncompleteChar = utf16DetectIncompleteChar;
+ break;
+ case 'base64':
+ // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
+ this.surrogateSize = 3;
+ this.detectIncompleteChar = base64DetectIncompleteChar;
+ break;
+ default:
+ this.write = passThroughWrite;
+ return;
+ }
+
+ // Enough space to store all bytes of a single character. UTF-8 needs 4
+ // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
+ this.charBuffer = new Buffer(6);
+ // Number of bytes received for the current incomplete multi-byte character.
+ this.charReceived = 0;
+ // Number of bytes expected for the current incomplete multi-byte character.
+ this.charLength = 0;
+};
+
+
+// write decodes the given buffer and returns it as JS string that is
+// guaranteed to not contain any partial multi-byte characters. Any partial
+// character found at the end of the buffer is buffered up, and will be
+// returned when calling write again with the remaining bytes.
+//
+// Note: Converting a Buffer containing an orphan surrogate to a String
+// currently works, but converting a String to a Buffer (via `new Buffer`, or
+// Buffer#write) will replace incomplete surrogates with the unicode
+// replacement character. See https://codereview.chromium.org/121173009/ .
+StringDecoder.prototype.write = function(buffer) {
+ var charStr = '';
+ // if our last write ended with an incomplete multibyte character
+ while (this.charLength) {
+ // determine how many remaining bytes this buffer has to offer for this char
+ var available = (buffer.length >= this.charLength - this.charReceived) ?
+ this.charLength - this.charReceived :
+ buffer.length;
+
+ // add the new bytes to the char buffer
+ buffer.copy(this.charBuffer, this.charReceived, 0, available);
+ this.charReceived += available;
+
+ if (this.charReceived < this.charLength) {
+ // still not enough chars in this buffer? wait for more ...
+ return '';
+ }
+
+ // remove bytes belonging to the current character from the buffer
+ buffer = buffer.slice(available, buffer.length);
+
+ // get the character that was split
+ charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
+
+ // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
+ var charCode = charStr.charCodeAt(charStr.length - 1);
+ if (charCode >= 0xD800 && charCode <= 0xDBFF) {
+ this.charLength += this.surrogateSize;
+ charStr = '';
+ continue;
+ }
+ this.charReceived = this.charLength = 0;
+
+ // if there are no more bytes in this buffer, just emit our char
+ if (buffer.length === 0) {
+ return charStr;
+ }
+ break;
+ }
+
+ // determine and set charLength / charReceived
+ this.detectIncompleteChar(buffer);
+
+ var end = buffer.length;
+ if (this.charLength) {
+ // buffer the incomplete character bytes we got
+ buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
+ end -= this.charReceived;
+ }
+
+ charStr += buffer.toString(this.encoding, 0, end);
+
+ var end = charStr.length - 1;
+ var charCode = charStr.charCodeAt(end);
+ // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
+ if (charCode >= 0xD800 && charCode <= 0xDBFF) {
+ var size = this.surrogateSize;
+ this.charLength += size;
+ this.charReceived += size;
+ this.charBuffer.copy(this.charBuffer, size, 0, size);
+ buffer.copy(this.charBuffer, 0, 0, size);
+ return charStr.substring(0, end);
+ }
+
+ // or just emit the charStr
+ return charStr;
+};
+
+// detectIncompleteChar determines if there is an incomplete UTF-8 character at
+// the end of the given buffer. If so, it sets this.charLength to the byte
+// length that character, and sets this.charReceived to the number of bytes
+// that are available for this character.
+StringDecoder.prototype.detectIncompleteChar = function(buffer) {
+ // determine how many bytes we have to check at the end of this buffer
+ var i = (buffer.length >= 3) ? 3 : buffer.length;
+
+ // Figure out if one of the last i bytes of our buffer announces an
+ // incomplete char.
+ for (; i > 0; i--) {
+ var c = buffer[buffer.length - i];
+
+ // See http://en.wikipedia.org/wiki/UTF-8#Description
+
+ // 110XXXXX
+ if (i == 1 && c >> 5 == 0x06) {
+ this.charLength = 2;
+ break;
+ }
+
+ // 1110XXXX
+ if (i <= 2 && c >> 4 == 0x0E) {
+ this.charLength = 3;
+ break;
+ }
+
+ // 11110XXX
+ if (i <= 3 && c >> 3 == 0x1E) {
+ this.charLength = 4;
+ break;
+ }
+ }
+ this.charReceived = i;
+};
+
+StringDecoder.prototype.end = function(buffer) {
+ var res = '';
+ if (buffer && buffer.length)
+ res = this.write(buffer);
+
+ if (this.charReceived) {
+ var cr = this.charReceived;
+ var buf = this.charBuffer;
+ var enc = this.encoding;
+ res += buf.slice(0, cr).toString(enc);
+ }
+
+ return res;
+};
+
+function passThroughWrite(buffer) {
+ return buffer.toString(this.encoding);
+}
+
+function utf16DetectIncompleteChar(buffer) {
+ this.charReceived = buffer.length % 2;
+ this.charLength = this.charReceived ? 2 : 0;
+}
+
+function base64DetectIncompleteChar(buffer) {
+ this.charReceived = buffer.length % 3;
+ this.charLength = this.charReceived ? 3 : 0;
+}
+
+},{"buffer":6}],184:[function(require,module,exports){
+// based on https://github.com/ESTOS/strophe.jingle/
+// adds wildemitter support
+var util = require('util');
+var adapter = require('webrtc-adapter'); // jshint ignore:line
+var WildEmitter = require('wildemitter');
+
+function dumpSDP(description) {
+ return {
+ type: description.type,
+ sdp: description.sdp
+ };
+}
+
+function dumpStream(stream) {
+ var info = {
+ label: stream.id,
+ };
+ if (stream.getAudioTracks().length) {
+ info.audio = stream.getAudioTracks().map(function (track) {
+ return track.id;
+ });
+ }
+ if (stream.getVideoTracks().length) {
+ info.video = stream.getVideoTracks().map(function (track) {
+ return track.id;
+ });
+ }
+ return info;
+}
+
+function TraceablePeerConnection(config, constraints) {
+ var self = this;
+ WildEmitter.call(this);
+
+ this.peerconnection = new window.RTCPeerConnection(config, constraints);
+
+ this.trace = function (what, info) {
+ self.emit('PeerConnectionTrace', {
+ time: new Date(),
+ type: what,
+ value: info || ""
+ });
+ };
+
+ this.onicecandidate = null;
+ this.peerconnection.onicecandidate = function (event) {
+ self.trace('onicecandidate', event.candidate);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ };
+ this.onaddstream = null;
+ this.peerconnection.onaddstream = function (event) {
+ self.trace('onaddstream', dumpStream(event.stream));
+ if (self.onaddstream !== null) {
+ self.onaddstream(event);
+ }
+ };
+ this.onremovestream = null;
+ this.peerconnection.onremovestream = function (event) {
+ self.trace('onremovestream', dumpStream(event.stream));
+ if (self.onremovestream !== null) {
+ self.onremovestream(event);
+ }
+ };
+ this.onsignalingstatechange = null;
+ this.peerconnection.onsignalingstatechange = function (event) {
+ self.trace('onsignalingstatechange', self.signalingState);
+ if (self.onsignalingstatechange !== null) {
+ self.onsignalingstatechange(event);
+ }
+ };
+ this.oniceconnectionstatechange = null;
+ this.peerconnection.oniceconnectionstatechange = function (event) {
+ self.trace('oniceconnectionstatechange', self.iceConnectionState);
+ if (self.oniceconnectionstatechange !== null) {
+ self.oniceconnectionstatechange(event);
+ }
+ };
+ this.onnegotiationneeded = null;
+ this.peerconnection.onnegotiationneeded = function (event) {
+ self.trace('onnegotiationneeded');
+ if (self.onnegotiationneeded !== null) {
+ self.onnegotiationneeded(event);
+ }
+ };
+ self.ondatachannel = null;
+ this.peerconnection.ondatachannel = function (event) {
+ self.trace('ondatachannel', event);
+ if (self.ondatachannel !== null) {
+ self.ondatachannel(event);
+ }
+ };
+ this.getLocalStreams = this.peerconnection.getLocalStreams.bind(this.peerconnection);
+ this.getRemoteStreams = this.peerconnection.getRemoteStreams.bind(this.peerconnection);
+}
+
+util.inherits(TraceablePeerConnection, WildEmitter);
+
+['signalingState', 'iceConnectionState', 'localDescription', 'remoteDescription'].forEach(function (prop) {
+ Object.defineProperty(TraceablePeerConnection.prototype, prop, {
+ get: function () {
+ return this.peerconnection[prop];
+ }
+ });
+});
+
+TraceablePeerConnection.prototype.addStream = function (stream) {
+ this.trace('addStream', dumpStream(stream));
+ this.peerconnection.addStream(stream);
+};
+
+TraceablePeerConnection.prototype.removeStream = function (stream) {
+ this.trace('removeStream', dumpStream(stream));
+ this.peerconnection.removeStream(stream);
+};
+
+TraceablePeerConnection.prototype.createDataChannel = function (label, opts) {
+ this.trace('createDataChannel', label, opts);
+ return this.peerconnection.createDataChannel(label, opts);
+};
+
+TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
+ var self = this;
+ this.trace('setLocalDescription', dumpSDP(description));
+ return this.peerconnection.setLocalDescription(
+ description
+ ).then(
+ function () {
+ self.trace('setLocalDescriptionOnSuccess');
+ if (successCallback) successCallback();
+ },
+ function (err) {
+ self.trace('setLocalDescriptionOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.setRemoteDescription = function (description, successCallback, failureCallback) {
+ var self = this;
+ this.trace('setRemoteDescription', dumpSDP(description));
+ return this.peerconnection.setRemoteDescription(
+ description
+ ).then(
+ function () {
+ self.trace('setRemoteDescriptionOnSuccess');
+ if (successCallback) successCallback();
+ },
+ function (err) {
+ self.trace('setRemoteDescriptionOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.close = function () {
+ this.trace('stop');
+ if (this.peerconnection.signalingState != 'closed') {
+ this.peerconnection.close();
+ }
+};
+
+TraceablePeerConnection.prototype.createOffer = function (successCallback, failureCallback, constraints) {
+ var self = this;
+ this.trace('createOffer', constraints);
+ return this.peerconnection.createOffer(
+ constraints
+ ).then(
+ function (offer) {
+ self.trace('createOfferOnSuccess', dumpSDP(offer));
+ if (successCallback) successCallback(offer);
+ },
+ function (err) {
+ self.trace('createOfferOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.createAnswer = function (successCallback, failureCallback, constraints) {
+ var self = this;
+ this.trace('createAnswer', constraints);
+ return this.peerconnection.createAnswer(
+ constraints
+ ).then(
+ function (answer) {
+ self.trace('createAnswerOnSuccess', dumpSDP(answer));
+ if (successCallback) successCallback(answer);
+ },
+ function (err) {
+ self.trace('createAnswerOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.addIceCandidate = function (candidate, successCallback, failureCallback) {
+ var self = this;
+ this.trace('addIceCandidate', candidate);
+ return this.peerconnection.addIceCandidate(
+ candidate
+ ).then(
+ function () {
+ //self.trace('addIceCandidateOnSuccess');
+ if (successCallback) successCallback();
+ },
+ function (err) {
+ self.trace('addIceCandidateOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.getStats = function () {
+ this.peerconnection.getStats.apply(this.peerconnection, arguments);
+};
+
+module.exports = TraceablePeerConnection;
+
+},{"util":197,"webrtc-adapter":185,"wildemitter":211}],185:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./chrome/chrome_shim":186,"./edge/edge_shim":188,"./firefox/firefox_shim":190,"./safari/safari_shim":192,"./utils":193,"dup":33}],186:[function(require,module,exports){
+arguments[4][34][0].apply(exports,arguments)
+},{"../utils.js":193,"./getusermedia":187,"dup":34}],187:[function(require,module,exports){
+arguments[4][35][0].apply(exports,arguments)
+},{"../utils.js":193,"dup":35}],188:[function(require,module,exports){
+arguments[4][36][0].apply(exports,arguments)
+},{"../utils":193,"./getusermedia":189,"dup":36,"sdp":173}],189:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"dup":37}],190:[function(require,module,exports){
+arguments[4][38][0].apply(exports,arguments)
+},{"../utils":193,"./getusermedia":191,"dup":38}],191:[function(require,module,exports){
+arguments[4][39][0].apply(exports,arguments)
+},{"../utils":193,"dup":39}],192:[function(require,module,exports){
+arguments[4][40][0].apply(exports,arguments)
+},{"dup":40}],193:[function(require,module,exports){
+arguments[4][41][0].apply(exports,arguments)
+},{"dup":41}],194:[function(require,module,exports){
+(function (global){
/**
- * DOM parser interface
+ * Module exports.
*/
-exports.parse = parse.parse
-exports.Parser = parse.Parser
+
+module.exports = deprecate;
/**
- * SAX parser interface
+ * Mark that a method should not be used.
+ * Returns a modified function which warns once by default.
+ *
+ * If `localStorage.noDeprecation = true` is set, then it is a no-op.
+ *
+ * If `localStorage.throwDeprecation = true` is set, then deprecated functions
+ * will throw an Error when invoked.
+ *
+ * If `localStorage.traceDeprecation = true` is set, then deprecated functions
+ * will invoke `console.trace()` instead of `console.error()`.
+ *
+ * @param {Function} fn - the function to deprecate
+ * @param {String} msg - the string to print to the console when `fn` is invoked
+ * @returns {Function} a new "deprecated" version of `fn`
+ * @api public
*/
-exports.availableSaxParsers = parse.availableSaxParsers
-exports.bestSaxParser = parse.bestSaxParser
-},{"./dom-element":243,"./element":244,"./parse":247}],247:[function(require,module,exports){
-'use strict';
+function deprecate (fn, msg) {
+ if (config('noDeprecation')) {
+ return fn;
+ }
-var events = require('events')
- , util = require('util')
- , DOMElement = require('./dom-element')
+ var warned = false;
+ function deprecated() {
+ if (!warned) {
+ if (config('throwDeprecation')) {
+ throw new Error(msg);
+ } else if (config('traceDeprecation')) {
+ console.trace(msg);
+ } else {
+ console.warn(msg);
+ }
+ warned = true;
+ }
+ return fn.apply(this, arguments);
+ }
+ return deprecated;
+}
-exports.availableSaxParsers = []
-exports.bestSaxParser = null
+/**
+ * Checks `localStorage` for boolean values for the given `name`.
+ *
+ * @param {String} name
+ * @returns {Boolean}
+ * @api private
+ */
-var saxParsers = [
- './sax/sax_expat.js',
- './sax/sax_ltx.js',
- /*'./sax_easysax.js', './sax_node-xml.js',*/
- './sax/sax_saxjs.js'
-]
+function config (name) {
+ // accessing global.localStorage can trigger a DOMException in sandboxed iframes
+ try {
+ if (!global.localStorage) return false;
+ } catch (_) {
+ return false;
+ }
+ var val = global.localStorage[name];
+ if (null == val) return false;
+ return String(val).toLowerCase() === 'true';
+}
-saxParsers.forEach(function(modName) {
- var mod
- try {
- mod = require(modName)
- } catch (e) {
- /* Silently missing libraries drop for debug:
- console.error(e.stack || e)
- */
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],195:[function(require,module,exports){
+arguments[4][45][0].apply(exports,arguments)
+},{"dup":45}],196:[function(require,module,exports){
+module.exports = function isBuffer(arg) {
+ return arg && typeof arg === 'object'
+ && typeof arg.copy === 'function'
+ && typeof arg.fill === 'function'
+ && typeof arg.readUInt8 === 'function';
+}
+},{}],197:[function(require,module,exports){
+(function (process,global){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var formatRegExp = /%[sdj%]/g;
+exports.format = function(f) {
+ if (!isString(f)) {
+ var objects = [];
+ for (var i = 0; i < arguments.length; i++) {
+ objects.push(inspect(arguments[i]));
}
- if (mod) {
- exports.availableSaxParsers.push(mod)
- if (!exports.bestSaxParser) {
- exports.bestSaxParser = mod
+ return objects.join(' ');
+ }
+
+ var i = 1;
+ var args = arguments;
+ var len = args.length;
+ var str = String(f).replace(formatRegExp, function(x) {
+ if (x === '%%') return '%';
+ if (i >= len) return x;
+ switch (x) {
+ case '%s': return String(args[i++]);
+ case '%d': return Number(args[i++]);
+ case '%j':
+ try {
+ return JSON.stringify(args[i++]);
+ } catch (_) {
+ return '[Circular]';
}
+ default:
+ return x;
}
-})
+ });
+ for (var x = args[i]; i < len; x = args[++i]) {
+ if (isNull(x) || !isObject(x)) {
+ str += ' ' + x;
+ } else {
+ str += ' ' + inspect(x);
+ }
+ }
+ return str;
+};
-exports.Parser = function(saxParser) {
- events.EventEmitter.call(this)
- var self = this
- var ParserMod = saxParser || exports.bestSaxParser
- if (!ParserMod) {
- throw new Error('No SAX parser available')
+// Mark that a method should not be used.
+// Returns a modified function which warns once by default.
+// If --no-deprecation is set, then it is a no-op.
+exports.deprecate = function(fn, msg) {
+ // Allow for deprecating things in the process of starting up.
+ if (isUndefined(global.process)) {
+ return function() {
+ return exports.deprecate(fn, msg).apply(this, arguments);
+ };
+ }
+
+ if (process.noDeprecation === true) {
+ return fn;
+ }
+
+ var warned = false;
+ function deprecated() {
+ if (!warned) {
+ if (process.throwDeprecation) {
+ throw new Error(msg);
+ } else if (process.traceDeprecation) {
+ console.trace(msg);
+ } else {
+ console.error(msg);
+ }
+ warned = true;
+ }
+ return fn.apply(this, arguments);
+ }
+
+ return deprecated;
+};
+
+
+var debugs = {};
+var debugEnviron;
+exports.debuglog = function(set) {
+ if (isUndefined(debugEnviron))
+ debugEnviron = process.env.NODE_DEBUG || '';
+ set = set.toUpperCase();
+ if (!debugs[set]) {
+ if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
+ var pid = process.pid;
+ debugs[set] = function() {
+ var msg = exports.format.apply(exports, arguments);
+ console.error('%s %d: %s', set, pid, msg);
+ };
+ } else {
+ debugs[set] = function() {};
+ }
+ }
+ return debugs[set];
+};
+
+
+/**
+ * Echos the value of a value. Trys to print the value out
+ * in the best way possible given the different types.
+ *
+ * @param {Object} obj The object to print out.
+ * @param {Object} opts Optional options object that alters the output.
+ */
+/* legacy: obj, showHidden, depth, colors*/
+function inspect(obj, opts) {
+ // default options
+ var ctx = {
+ seen: [],
+ stylize: stylizeNoColor
+ };
+ // legacy...
+ if (arguments.length >= 3) ctx.depth = arguments[2];
+ if (arguments.length >= 4) ctx.colors = arguments[3];
+ if (isBoolean(opts)) {
+ // legacy...
+ ctx.showHidden = opts;
+ } else if (opts) {
+ // got an "options" object
+ exports._extend(ctx, opts);
+ }
+ // set default options
+ if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
+ if (isUndefined(ctx.depth)) ctx.depth = 2;
+ if (isUndefined(ctx.colors)) ctx.colors = false;
+ if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
+ if (ctx.colors) ctx.stylize = stylizeWithColor;
+ return formatValue(ctx, obj, ctx.depth);
+}
+exports.inspect = inspect;
+
+
+// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
+inspect.colors = {
+ 'bold' : [1, 22],
+ 'italic' : [3, 23],
+ 'underline' : [4, 24],
+ 'inverse' : [7, 27],
+ 'white' : [37, 39],
+ 'grey' : [90, 39],
+ 'black' : [30, 39],
+ 'blue' : [34, 39],
+ 'cyan' : [36, 39],
+ 'green' : [32, 39],
+ 'magenta' : [35, 39],
+ 'red' : [31, 39],
+ 'yellow' : [33, 39]
+};
+
+// Don't use 'blue' not visible on cmd.exe
+inspect.styles = {
+ 'special': 'cyan',
+ 'number': 'yellow',
+ 'boolean': 'yellow',
+ 'undefined': 'grey',
+ 'null': 'bold',
+ 'string': 'green',
+ 'date': 'magenta',
+ // "name": intentionally not styling
+ 'regexp': 'red'
+};
+
+
+function stylizeWithColor(str, styleType) {
+ var style = inspect.styles[styleType];
+
+ if (style) {
+ return '\u001b[' + inspect.colors[style][0] + 'm' + str +
+ '\u001b[' + inspect.colors[style][1] + 'm';
+ } else {
+ return str;
+ }
+}
+
+
+function stylizeNoColor(str, styleType) {
+ return str;
+}
+
+
+function arrayToHash(array) {
+ var hash = {};
+
+ array.forEach(function(val, idx) {
+ hash[val] = true;
+ });
+
+ return hash;
+}
+
+
+function formatValue(ctx, value, recurseTimes) {
+ // Provide a hook for user-specified inspect functions.
+ // Check that value is an object with an inspect function on it
+ if (ctx.customInspect &&
+ value &&
+ isFunction(value.inspect) &&
+ // Filter out the util module, it's inspect function is special
+ value.inspect !== exports.inspect &&
+ // Also filter out any prototype objects using the circular check.
+ !(value.constructor && value.constructor.prototype === value)) {
+ var ret = value.inspect(recurseTimes, ctx);
+ if (!isString(ret)) {
+ ret = formatValue(ctx, ret, recurseTimes);
+ }
+ return ret;
+ }
+
+ // Primitive types cannot have properties
+ var primitive = formatPrimitive(ctx, value);
+ if (primitive) {
+ return primitive;
+ }
+
+ // Look up the keys of the object.
+ var keys = Object.keys(value);
+ var visibleKeys = arrayToHash(keys);
+
+ if (ctx.showHidden) {
+ keys = Object.getOwnPropertyNames(value);
+ }
+
+ // IE doesn't make error fields non-enumerable
+ // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
+ if (isError(value)
+ && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
+ return formatError(value);
+ }
+
+ // Some type of object without properties can be shortcutted.
+ if (keys.length === 0) {
+ if (isFunction(value)) {
+ var name = value.name ? ': ' + value.name : '';
+ return ctx.stylize('[Function' + name + ']', 'special');
+ }
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
+ }
+ if (isDate(value)) {
+ return ctx.stylize(Date.prototype.toString.call(value), 'date');
+ }
+ if (isError(value)) {
+ return formatError(value);
}
- this.parser = new ParserMod()
+ }
- var el
- this.parser.addListener('startElement', function(name, attrs) {
- var child = new DOMElement(name, attrs)
- if (!el) {
- el = child
+ var base = '', array = false, braces = ['{', '}'];
+
+ // Make Array say that they are Array
+ if (isArray(value)) {
+ array = true;
+ braces = ['[', ']'];
+ }
+
+ // Make functions say that they are functions
+ if (isFunction(value)) {
+ var n = value.name ? ': ' + value.name : '';
+ base = ' [Function' + n + ']';
+ }
+
+ // Make RegExps say that they are RegExps
+ if (isRegExp(value)) {
+ base = ' ' + RegExp.prototype.toString.call(value);
+ }
+
+ // Make dates with properties first say the date
+ if (isDate(value)) {
+ base = ' ' + Date.prototype.toUTCString.call(value);
+ }
+
+ // Make error with message first say the error
+ if (isError(value)) {
+ base = ' ' + formatError(value);
+ }
+
+ if (keys.length === 0 && (!array || value.length == 0)) {
+ return braces[0] + base + braces[1];
+ }
+
+ if (recurseTimes < 0) {
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
+ } else {
+ return ctx.stylize('[Object]', 'special');
+ }
+ }
+
+ ctx.seen.push(value);
+
+ var output;
+ if (array) {
+ output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
+ } else {
+ output = keys.map(function(key) {
+ return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
+ });
+ }
+
+ ctx.seen.pop();
+
+ return reduceToSingleString(output, base, braces);
+}
+
+
+function formatPrimitive(ctx, value) {
+ if (isUndefined(value))
+ return ctx.stylize('undefined', 'undefined');
+ if (isString(value)) {
+ var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
+ .replace(/'/g, "\\'")
+ .replace(/\\"/g, '"') + '\'';
+ return ctx.stylize(simple, 'string');
+ }
+ if (isNumber(value))
+ return ctx.stylize('' + value, 'number');
+ if (isBoolean(value))
+ return ctx.stylize('' + value, 'boolean');
+ // For some reason typeof null is "object", so special case here.
+ if (isNull(value))
+ return ctx.stylize('null', 'null');
+}
+
+
+function formatError(value) {
+ return '[' + Error.prototype.toString.call(value) + ']';
+}
+
+
+function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
+ var output = [];
+ for (var i = 0, l = value.length; i < l; ++i) {
+ if (hasOwnProperty(value, String(i))) {
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
+ String(i), true));
+ } else {
+ output.push('');
+ }
+ }
+ keys.forEach(function(key) {
+ if (!key.match(/^\d+$/)) {
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
+ key, true));
+ }
+ });
+ return output;
+}
+
+
+function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
+ var name, str, desc;
+ desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
+ if (desc.get) {
+ if (desc.set) {
+ str = ctx.stylize('[Getter/Setter]', 'special');
+ } else {
+ str = ctx.stylize('[Getter]', 'special');
+ }
+ } else {
+ if (desc.set) {
+ str = ctx.stylize('[Setter]', 'special');
+ }
+ }
+ if (!hasOwnProperty(visibleKeys, key)) {
+ name = '[' + key + ']';
+ }
+ if (!str) {
+ if (ctx.seen.indexOf(desc.value) < 0) {
+ if (isNull(recurseTimes)) {
+ str = formatValue(ctx, desc.value, null);
+ } else {
+ str = formatValue(ctx, desc.value, recurseTimes - 1);
+ }
+ if (str.indexOf('\n') > -1) {
+ if (array) {
+ str = str.split('\n').map(function(line) {
+ return ' ' + line;
+ }).join('\n').substr(2);
} else {
- el = el.cnode(child)
- }
- })
- this.parser.addListener('endElement', function(name) {
- /* jshint -W035 */
- if (!el) {
- /* Err */
- } else if (name === el.name) {
- if (el.parent) {
- el = el.parent
- } else if (!self.tree) {
- self.tree = el
- el = undefined
- }
- }
- /* jshint +W035 */
- })
- this.parser.addListener('text', function(str) {
- if (el) {
- el.t(str)
+ str = '\n' + str.split('\n').map(function(line) {
+ return ' ' + line;
+ }).join('\n');
}
- })
- this.parser.addListener('error', function(e) {
- self.error = e
- self.emit('error', e)
- })
+ }
+ } else {
+ str = ctx.stylize('[Circular]', 'special');
+ }
+ }
+ if (isUndefined(name)) {
+ if (array && key.match(/^\d+$/)) {
+ return str;
+ }
+ name = JSON.stringify('' + key);
+ if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
+ name = name.substr(1, name.length - 2);
+ name = ctx.stylize(name, 'name');
+ } else {
+ name = name.replace(/'/g, "\\'")
+ .replace(/\\"/g, '"')
+ .replace(/(^"|"$)/g, "'");
+ name = ctx.stylize(name, 'string');
+ }
+ }
+
+ return name + ': ' + str;
+}
+
+
+function reduceToSingleString(output, base, braces) {
+ var numLinesEst = 0;
+ var length = output.reduce(function(prev, cur) {
+ numLinesEst++;
+ if (cur.indexOf('\n') >= 0) numLinesEst++;
+ return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
+ }, 0);
+
+ if (length > 60) {
+ return braces[0] +
+ (base === '' ? '' : base + '\n ') +
+ ' ' +
+ output.join(',\n ') +
+ ' ' +
+ braces[1];
+ }
+
+ return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
+}
+
+
+// NOTE: These type checking functions intentionally don't use `instanceof`
+// because it is fragile and can be easily faked with `Object.create()`.
+function isArray(ar) {
+ return Array.isArray(ar);
+}
+exports.isArray = isArray;
+
+function isBoolean(arg) {
+ return typeof arg === 'boolean';
+}
+exports.isBoolean = isBoolean;
+
+function isNull(arg) {
+ return arg === null;
+}
+exports.isNull = isNull;
+
+function isNullOrUndefined(arg) {
+ return arg == null;
+}
+exports.isNullOrUndefined = isNullOrUndefined;
+
+function isNumber(arg) {
+ return typeof arg === 'number';
+}
+exports.isNumber = isNumber;
+
+function isString(arg) {
+ return typeof arg === 'string';
+}
+exports.isString = isString;
+
+function isSymbol(arg) {
+ return typeof arg === 'symbol';
+}
+exports.isSymbol = isSymbol;
+
+function isUndefined(arg) {
+ return arg === void 0;
+}
+exports.isUndefined = isUndefined;
+
+function isRegExp(re) {
+ return isObject(re) && objectToString(re) === '[object RegExp]';
+}
+exports.isRegExp = isRegExp;
+
+function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
+}
+exports.isObject = isObject;
+
+function isDate(d) {
+ return isObject(d) && objectToString(d) === '[object Date]';
+}
+exports.isDate = isDate;
+
+function isError(e) {
+ return isObject(e) &&
+ (objectToString(e) === '[object Error]' || e instanceof Error);
+}
+exports.isError = isError;
+
+function isFunction(arg) {
+ return typeof arg === 'function';
+}
+exports.isFunction = isFunction;
+
+function isPrimitive(arg) {
+ return arg === null ||
+ typeof arg === 'boolean' ||
+ typeof arg === 'number' ||
+ typeof arg === 'string' ||
+ typeof arg === 'symbol' || // ES6 symbol
+ typeof arg === 'undefined';
+}
+exports.isPrimitive = isPrimitive;
+
+exports.isBuffer = require('./support/isBuffer');
+
+function objectToString(o) {
+ return Object.prototype.toString.call(o);
+}
+
+
+function pad(n) {
+ return n < 10 ? '0' + n.toString(10) : n.toString(10);
+}
+
+
+var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
+ 'Oct', 'Nov', 'Dec'];
+
+// 26 Feb 16:19:34
+function timestamp() {
+ var d = new Date();
+ var time = [pad(d.getHours()),
+ pad(d.getMinutes()),
+ pad(d.getSeconds())].join(':');
+ return [d.getDate(), months[d.getMonth()], time].join(' ');
+}
+
+
+// log is just a thin wrapper to console.log that prepends a timestamp
+exports.log = function() {
+ console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
+};
+
+
+/**
+ * Inherit the prototype methods from one constructor into another.
+ *
+ * The Function.prototype.inherits from lang.js rewritten as a standalone
+ * function (not on Function.prototype). NOTE: If this file is to be loaded
+ * during bootstrapping this function needs to be rewritten using some native
+ * functions as prototype setup using normal JavaScript does not work as
+ * expected during bootstrapping (see mirror.js in r114903).
+ *
+ * @param {function} ctor Constructor function which needs to inherit the
+ * prototype.
+ * @param {function} superCtor Constructor function to inherit prototype from.
+ */
+exports.inherits = require('inherits');
+
+exports._extend = function(origin, add) {
+ // Don't do anything if add isn't an object
+ if (!add || !isObject(add)) return origin;
+
+ var keys = Object.keys(add);
+ var i = keys.length;
+ while (i--) {
+ origin[keys[i]] = add[keys[i]];
+ }
+ return origin;
+};
+
+function hasOwnProperty(obj, prop) {
+ return Object.prototype.hasOwnProperty.call(obj, prop);
+}
+
+}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"./support/isBuffer":196,"_process":153,"inherits":195}],198:[function(require,module,exports){
+(function (global){
+
+var rng;
+
+var crypto = global.crypto || global.msCrypto; // for IE 11
+if (crypto && crypto.getRandomValues) {
+ // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
+ // Moderately fast, high quality
+ var _rnds8 = new Uint8Array(16);
+ rng = function whatwgRNG() {
+ crypto.getRandomValues(_rnds8);
+ return _rnds8;
+ };
+}
+
+if (!rng) {
+ // Math.random()-based (RNG)
+ //
+ // If all else fails, use Math.random(). It's fast, but is of unspecified
+ // quality.
+ var _rnds = new Array(16);
+ rng = function() {
+ for (var i = 0, r; i < 16; i++) {
+ if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
+ _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
+ }
+
+ return _rnds;
+ };
}
-util.inherits(exports.Parser, events.EventEmitter)
+module.exports = rng;
+
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],199:[function(require,module,exports){
+// uuid.js
+//
+// Copyright (c) 2010-2012 Robert Kieffer
+// MIT License - http://opensource.org/licenses/mit-license.php
-exports.Parser.prototype.write = function(data) {
- this.parser.write(data)
+// Unique ID creation requires a high quality random # generator. We feature
+// detect to determine the best RNG source, normalizing to a function that
+// returns 128-bits of randomness, since that's what's usually required
+var _rng = require('./rng');
+
+// Maps for number <-> hex string conversion
+var _byteToHex = [];
+var _hexToByte = {};
+for (var i = 0; i < 256; i++) {
+ _byteToHex[i] = (i + 0x100).toString(16).substr(1);
+ _hexToByte[_byteToHex[i]] = i;
}
-exports.Parser.prototype.end = function(data) {
- this.parser.end(data)
+// **`parse()` - Parse a UUID into it's component bytes**
+function parse(s, buf, offset) {
+ var i = (buf && offset) || 0, ii = 0;
+
+ buf = buf || [];
+ s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
+ if (ii < 16) { // Don't overflow!
+ buf[i + ii++] = _hexToByte[oct];
+ }
+ });
- if (!this.error) {
- if (this.tree) {
- this.emit('tree', this.tree)
+ // Zero out remaining bytes if string was short
+ while (ii < 16) {
+ buf[i + ii++] = 0;
+ }
+
+ return buf;
+}
+
+// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
+function unparse(buf, offset) {
+ var i = offset || 0, bth = _byteToHex;
+ return bth[buf[i++]] + bth[buf[i++]] +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] +
+ bth[buf[i++]] + bth[buf[i++]] +
+ bth[buf[i++]] + bth[buf[i++]];
+}
+
+// **`v1()` - Generate time-based UUID**
+//
+// Inspired by https://github.com/LiosK/UUID.js
+// and http://docs.python.org/library/uuid.html
+
+// random #'s we need to init node and clockseq
+var _seedBytes = _rng();
+
+// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
+var _nodeId = [
+ _seedBytes[0] | 0x01,
+ _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
+];
+
+// Per 4.2.2, randomize (14 bit) clockseq
+var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
+
+// Previous uuid creation time
+var _lastMSecs = 0, _lastNSecs = 0;
+
+// See https://github.com/broofa/node-uuid for API details
+function v1(options, buf, offset) {
+ var i = buf && offset || 0;
+ var b = buf || [];
+
+ options = options || {};
+
+ var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+
+ // UUID timestamps are 100 nano-second units since the Gregorian epoch,
+ // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
+ // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
+ // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
+ var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
+
+ // Per 4.2.1.2, use count of uuid's generated during the current clock
+ // cycle to simulate higher resolution clock
+ var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
+
+ // Time since last uuid creation (in msecs)
+ var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
+
+ // Per 4.2.1.2, Bump clockseq on clock regression
+ if (dt < 0 && options.clockseq === undefined) {
+ clockseq = clockseq + 1 & 0x3fff;
+ }
+
+ // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
+ // time interval
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
+ nsecs = 0;
+ }
+
+ // Per 4.2.1.2 Throw error if too many uuids are requested
+ if (nsecs >= 10000) {
+ throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
+ }
+
+ _lastMSecs = msecs;
+ _lastNSecs = nsecs;
+ _clockseq = clockseq;
+
+ // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
+ msecs += 12219292800000;
+
+ // `time_low`
+ var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
+ b[i++] = tl >>> 24 & 0xff;
+ b[i++] = tl >>> 16 & 0xff;
+ b[i++] = tl >>> 8 & 0xff;
+ b[i++] = tl & 0xff;
+
+ // `time_mid`
+ var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
+ b[i++] = tmh >>> 8 & 0xff;
+ b[i++] = tmh & 0xff;
+
+ // `time_high_and_version`
+ b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
+ b[i++] = tmh >>> 16 & 0xff;
+
+ // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
+ b[i++] = clockseq >>> 8 | 0x80;
+
+ // `clock_seq_low`
+ b[i++] = clockseq & 0xff;
+
+ // `node`
+ var node = options.node || _nodeId;
+ for (var n = 0; n < 6; n++) {
+ b[i + n] = node[n];
+ }
+
+ return buf ? buf : unparse(b);
+}
+
+// **`v4()` - Generate random UUID**
+
+// See https://github.com/broofa/node-uuid for API details
+function v4(options, buf, offset) {
+ // Deprecated - 'format' argument, as supported in v1.2
+ var i = buf && offset || 0;
+
+ if (typeof(options) == 'string') {
+ buf = options == 'binary' ? new Array(16) : null;
+ options = null;
+ }
+ options = options || {};
+
+ var rnds = options.random || (options.rng || _rng)();
+
+ // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+ rnds[6] = (rnds[6] & 0x0f) | 0x40;
+ rnds[8] = (rnds[8] & 0x3f) | 0x80;
+
+ // Copy bytes to buffer, if provided
+ if (buf) {
+ for (var ii = 0; ii < 16; ii++) {
+ buf[i + ii] = rnds[ii];
+ }
+ }
+
+ return buf || unparse(rnds);
+}
+
+// Export public API
+var uuid = v4;
+uuid.v1 = v1;
+uuid.v4 = v4;
+uuid.parse = parse;
+uuid.unparse = unparse;
+
+module.exports = uuid;
+
+},{"./rng":198}],200:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+
+/* More information about these options at jshint.com/docs/options */
+/* jshint browser: true, camelcase: true, curly: true, devel: true,
+ eqeqeq: true, forin: false, globalstrict: true, node: true,
+ quotmark: single, undef: true, unused: strict */
+/* global mozRTCIceCandidate, mozRTCPeerConnection, Promise,
+mozRTCSessionDescription, webkitRTCPeerConnection, MediaStreamTrack,
+MediaStream, RTCIceGatherer, RTCIceTransport, RTCDtlsTransport,
+RTCRtpSender, RTCRtpReceiver*/
+/* exported trace,requestUserMedia */
+
+'use strict';
+
+var getUserMedia = null;
+var attachMediaStream = null;
+var reattachMediaStream = null;
+var webrtcDetectedBrowser = null;
+var webrtcDetectedVersion = null;
+var webrtcMinimumVersion = null;
+var webrtcUtils = {
+ log: function() {
+ // suppress console.log output when being included as a module.
+ if (typeof module !== 'undefined' ||
+ typeof require === 'function' && typeof define === 'function') {
+ return;
+ }
+ console.log.apply(console, arguments);
+ },
+ extractVersion: function(uastring, expr, pos) {
+ var match = uastring.match(expr);
+ return match && match.length >= pos && parseInt(match[pos], 10);
+ }
+};
+
+function trace(text) {
+ // This function is used for logging.
+ if (text[text.length - 1] === '\n') {
+ text = text.substring(0, text.length - 1);
+ }
+ if (window.performance) {
+ var now = (window.performance.now() / 1000).toFixed(3);
+ webrtcUtils.log(now + ': ' + text);
+ } else {
+ webrtcUtils.log(text);
+ }
+}
+
+if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ // If prefixed srcObject property exists, return it.
+ // Otherwise use the shimmed property, _srcObject
+ return 'mozSrcObject' in this ? this.mozSrcObject : this._srcObject;
+ },
+ set: function(stream) {
+ if ('mozSrcObject' in this) {
+ this.mozSrcObject = stream;
} else {
- this.emit('error', new Error('Incomplete document'))
+ // Use _srcObject as a private property for this shim
+ this._srcObject = stream;
+ // TODO: revokeObjectUrl(this.src) when !stream to release resources?
+ this.src = URL.createObjectURL(stream);
}
- }
+ }
+ });
+ }
+ // Proxy existing globals
+ getUserMedia = window.navigator && window.navigator.getUserMedia;
}
-exports.parse = function(data, saxParser) {
- var p = new exports.Parser(saxParser)
- var result = null
- , error = null
+// Attach a media stream to an element.
+attachMediaStream = function(element, stream) {
+ element.srcObject = stream;
+};
- p.on('tree', function(tree) {
- result = tree
- })
- p.on('error', function(e) {
- error = e
- })
+reattachMediaStream = function(to, from) {
+ to.srcObject = from.srcObject;
+};
+
+if (typeof window === 'undefined' || !window.navigator) {
+ webrtcUtils.log('This does not appear to be a browser');
+ webrtcDetectedBrowser = 'not a browser';
+} else if (navigator.mozGetUserMedia) {
+ webrtcUtils.log('This appears to be Firefox');
- p.write(data)
- p.end()
+ webrtcDetectedBrowser = 'firefox';
+
+ // the detected firefox version.
+ webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
+ /Firefox\/([0-9]+)\./, 1);
- if (error) {
- throw error
+ // the minimum firefox version still supported by adapter.
+ webrtcMinimumVersion = 31;
+
+ // Shim for RTCPeerConnection on older versions.
+ if (!window.RTCPeerConnection) {
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ if (webrtcDetectedVersion < 38) {
+ // .urls is not supported in FF < 38.
+ // create RTCIceServers with a single url.
+ if (pcConfig && pcConfig.iceServers) {
+ var newIceServers = [];
+ for (var i = 0; i < pcConfig.iceServers.length; i++) {
+ var server = pcConfig.iceServers[i];
+ if (server.hasOwnProperty('urls')) {
+ for (var j = 0; j < server.urls.length; j++) {
+ var newServer = {
+ url: server.urls[j]
+ };
+ if (server.urls[j].indexOf('turn') === 0) {
+ newServer.username = server.username;
+ newServer.credential = server.credential;
+ }
+ newIceServers.push(newServer);
+ }
+ } else {
+ newIceServers.push(pcConfig.iceServers[i]);
+ }
+ }
+ pcConfig.iceServers = newIceServers;
+ }
+ }
+ return new mozRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
+ };
+ window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (mozRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ if (arguments.length) {
+ return mozRTCPeerConnection.generateCertificate.apply(null,
+ arguments);
+ } else {
+ return mozRTCPeerConnection.generateCertificate;
+ }
+ }
+ });
+ }
+
+ window.RTCSessionDescription = mozRTCSessionDescription;
+ window.RTCIceCandidate = mozRTCIceCandidate;
+ }
+
+ // getUserMedia constraints shim.
+ getUserMedia = function(constraints, onSuccess, onError) {
+ var constraintsToFF37 = function(c) {
+ if (typeof c !== 'object' || c.require) {
+ return c;
+ }
+ var require = [];
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = c[key] = (typeof c[key] === 'object') ?
+ c[key] : {ideal: c[key]};
+ if (r.min !== undefined ||
+ r.max !== undefined || r.exact !== undefined) {
+ require.push(key);
+ }
+ if (r.exact !== undefined) {
+ if (typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
+ } else {
+ c[key] = r.exact;
+ }
+ delete r.exact;
+ }
+ if (r.ideal !== undefined) {
+ c.advanced = c.advanced || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[key] = {min: r.ideal, max: r.ideal};
+ } else {
+ oc[key] = r.ideal;
+ }
+ c.advanced.push(oc);
+ delete r.ideal;
+ if (!Object.keys(r).length) {
+ delete c[key];
+ }
+ }
+ });
+ if (require.length) {
+ c.require = require;
+ }
+ return c;
+ };
+ if (webrtcDetectedVersion < 38) {
+ webrtcUtils.log('spec: ' + JSON.stringify(constraints));
+ if (constraints.audio) {
+ constraints.audio = constraintsToFF37(constraints.audio);
+ }
+ if (constraints.video) {
+ constraints.video = constraintsToFF37(constraints.video);
+ }
+ webrtcUtils.log('ff37: ' + JSON.stringify(constraints));
+ }
+ return navigator.mozGetUserMedia(constraints, onSuccess, onError);
+ };
+
+ navigator.getUserMedia = getUserMedia;
+
+ // Shim for mediaDevices on older versions.
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {getUserMedia: requestUserMedia,
+ addEventListener: function() { },
+ removeEventListener: function() { }
+ };
+ }
+ navigator.mediaDevices.enumerateDevices =
+ navigator.mediaDevices.enumerateDevices || function() {
+ return new Promise(function(resolve) {
+ var infos = [
+ {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
+ {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
+ ];
+ resolve(infos);
+ });
+ };
+
+ if (webrtcDetectedVersion < 41) {
+ // Work around http://bugzil.la/1169665
+ var orgEnumerateDevices =
+ navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
+ navigator.mediaDevices.enumerateDevices = function() {
+ return orgEnumerateDevices().then(undefined, function(e) {
+ if (e.name === 'NotFoundError') {
+ return [];
+ }
+ throw e;
+ });
+ };
+ }
+} else if (navigator.webkitGetUserMedia && window.webkitRTCPeerConnection) {
+ webrtcUtils.log('This appears to be Chrome');
+
+ webrtcDetectedBrowser = 'chrome';
+
+ // the detected chrome version.
+ webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
+ /Chrom(e|ium)\/([0-9]+)\./, 2);
+
+ // the minimum chrome version still supported by adapter.
+ webrtcMinimumVersion = 38;
+
+ // The RTCPeerConnection object.
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ // Translate iceTransportPolicy to iceTransports,
+ // see https://code.google.com/p/webrtc/issues/detail?id=4869
+ if (pcConfig && pcConfig.iceTransportPolicy) {
+ pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ }
+
+ var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
+ var origGetStats = pc.getStats.bind(pc);
+ pc.getStats = function(selector, successCallback, errorCallback) { // jshint ignore: line
+ var self = this;
+ var args = arguments;
+
+ // If selector is a function then we are in the old style stats so just
+ // pass back the original getStats format to avoid breaking old users.
+ if (arguments.length > 0 && typeof selector === 'function') {
+ return origGetStats(selector, successCallback);
+ }
+
+ var fixChromeStats = function(response) {
+ var standardReport = {};
+ var reports = response.result();
+ reports.forEach(function(report) {
+ var standardStats = {
+ id: report.id,
+ timestamp: report.timestamp,
+ type: report.type
+ };
+ report.names().forEach(function(name) {
+ standardStats[name] = report.stat(name);
+ });
+ standardReport[standardStats.id] = standardStats;
+ });
+
+ return standardReport;
+ };
+
+ if (arguments.length >= 2) {
+ var successCallbackWrapper = function(response) {
+ args[1](fixChromeStats(response));
+ };
+
+ return origGetStats.apply(this, [successCallbackWrapper, arguments[0]]);
+ }
+
+ // promise-support
+ return new Promise(function(resolve, reject) {
+ if (args.length === 1 && selector === null) {
+ origGetStats.apply(self, [
+ function(response) {
+ resolve.apply(null, [fixChromeStats(response)]);
+ }, reject]);
+ } else {
+ origGetStats.apply(self, [resolve, reject]);
+ }
+ });
+ };
+
+ return pc;
+ };
+ window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (webkitRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ if (arguments.length) {
+ return webkitRTCPeerConnection.generateCertificate.apply(null,
+ arguments);
+ } else {
+ return webkitRTCPeerConnection.generateCertificate;
+ }
+ }
+ });
+ }
+
+ // add promise support
+ ['createOffer', 'createAnswer'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var self = this;
+ if (arguments.length < 1 || (arguments.length === 1 &&
+ typeof(arguments[0]) === 'object')) {
+ var opts = arguments.length === 1 ? arguments[0] : undefined;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [resolve, reject, opts]);
+ });
+ } else {
+ return nativeMethod.apply(this, arguments);
+ }
+ };
+ });
+
+ ['setLocalDescription', 'setRemoteDescription',
+ 'addIceCandidate'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var args = arguments;
+ var self = this;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [args[0],
+ function() {
+ resolve();
+ if (args.length >= 2) {
+ args[1].apply(null, []);
+ }
+ },
+ function(err) {
+ reject(err);
+ if (args.length >= 3) {
+ args[2].apply(null, [err]);
+ }
+ }]
+ );
+ });
+ };
+ });
+
+ // getUserMedia constraints shim.
+ var constraintsToChrome = function(c) {
+ if (typeof c !== 'object' || c.mandatory || c.optional) {
+ return c;
+ }
+ var cc = {};
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
+ if (r.exact !== undefined && typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
+ }
+ var oldname = function(prefix, name) {
+ if (prefix) {
+ return prefix + name.charAt(0).toUpperCase() + name.slice(1);
+ }
+ return (name === 'deviceId') ? 'sourceId' : name;
+ };
+ if (r.ideal !== undefined) {
+ cc.optional = cc.optional || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[oldname('min', key)] = r.ideal;
+ cc.optional.push(oc);
+ oc = {};
+ oc[oldname('max', key)] = r.ideal;
+ cc.optional.push(oc);
+ } else {
+ oc[oldname('', key)] = r.ideal;
+ cc.optional.push(oc);
+ }
+ }
+ if (r.exact !== undefined && typeof r.exact !== 'number') {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname('', key)] = r.exact;
+ } else {
+ ['min', 'max'].forEach(function(mix) {
+ if (r[mix] !== undefined) {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname(mix, key)] = r[mix];
+ }
+ });
+ }
+ });
+ if (c.advanced) {
+ cc.optional = (cc.optional || []).concat(c.advanced);
+ }
+ return cc;
+ };
+
+ getUserMedia = function(constraints, onSuccess, onError) {
+ if (constraints.audio) {
+ constraints.audio = constraintsToChrome(constraints.audio);
+ }
+ if (constraints.video) {
+ constraints.video = constraintsToChrome(constraints.video);
+ }
+ webrtcUtils.log('chrome: ' + JSON.stringify(constraints));
+ return navigator.webkitGetUserMedia(constraints, onSuccess, onError);
+ };
+ navigator.getUserMedia = getUserMedia;
+
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {getUserMedia: requestUserMedia,
+ enumerateDevices: function() {
+ return new Promise(function(resolve) {
+ var kinds = {audio: 'audioinput', video: 'videoinput'};
+ return MediaStreamTrack.getSources(function(devices) {
+ resolve(devices.map(function(device) {
+ return {label: device.label,
+ kind: kinds[device.kind],
+ deviceId: device.id,
+ groupId: ''};
+ }));
+ });
+ });
+ }};
+ }
+
+ // A shim for getUserMedia method on the mediaDevices object.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (!navigator.mediaDevices.getUserMedia) {
+ navigator.mediaDevices.getUserMedia = function(constraints) {
+ return requestUserMedia(constraints);
+ };
+ } else {
+ // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
+ // function which returns a Promise, it does not accept spec-style
+ // constraints.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ webrtcUtils.log('spec: ' + JSON.stringify(c)); // whitespace for alignment
+ c.audio = constraintsToChrome(c.audio);
+ c.video = constraintsToChrome(c.video);
+ webrtcUtils.log('chrome: ' + JSON.stringify(c));
+ return origGetUserMedia(c);
+ };
+ }
+
+ // Dummy devicechange event methods.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
+ navigator.mediaDevices.addEventListener = function() {
+ webrtcUtils.log('Dummy mediaDevices.addEventListener called.');
+ };
+ }
+ if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
+ navigator.mediaDevices.removeEventListener = function() {
+ webrtcUtils.log('Dummy mediaDevices.removeEventListener called.');
+ };
+ }
+
+ // Attach a media stream to an element.
+ attachMediaStream = function(element, stream) {
+ if (webrtcDetectedVersion >= 43) {
+ element.srcObject = stream;
+ } else if (typeof element.src !== 'undefined') {
+ element.src = URL.createObjectURL(stream);
+ } else {
+ webrtcUtils.log('Error attaching stream to element.');
+ }
+ };
+ reattachMediaStream = function(to, from) {
+ if (webrtcDetectedVersion >= 43) {
+ to.srcObject = from.srcObject;
} else {
- return result
+ to.src = from.src;
}
+ };
+
+} else if (navigator.mediaDevices && navigator.userAgent.match(
+ /Edge\/(\d+).(\d+)$/)) {
+ webrtcUtils.log('This appears to be Edge');
+ webrtcDetectedBrowser = 'edge';
+
+ webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
+ /Edge\/(\d+).(\d+)$/, 2);
+
+ // The minimum version still supported by adapter.
+ // This is the build number for Edge.
+ webrtcMinimumVersion = 10547;
+
+ if (window.RTCIceGatherer) {
+ // Generate an alphanumeric identifier for cname or mids.
+ // TODO: use UUIDs instead? https://gist.github.com/jed/982883
+ var generateIdentifier = function() {
+ return Math.random().toString(36).substr(2, 10);
+ };
+
+ // The RTCP CNAME used by all peerconnections from the same JS.
+ var localCName = generateIdentifier();
+
+ // SDP helpers - to be moved into separate module.
+ var SDPUtils = {};
+
+ // Splits SDP into lines, dealing with both CRLF and LF.
+ SDPUtils.splitLines = function(blob) {
+ return blob.trim().split('\n').map(function(line) {
+ return line.trim();
+ });
+ };
+
+ // Splits SDP into sessionpart and mediasections. Ensures CRLF.
+ SDPUtils.splitSections = function(blob) {
+ var parts = blob.split('\r\nm=');
+ return parts.map(function(part, index) {
+ return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
+ });
+ };
+
+ // Returns lines that start with a certain prefix.
+ SDPUtils.matchPrefix = function(blob, prefix) {
+ return SDPUtils.splitLines(blob).filter(function(line) {
+ return line.indexOf(prefix) === 0;
+ });
+ };
+
+ // Parses an ICE candidate line. Sample input:
+ // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8 rport 55996"
+ SDPUtils.parseCandidate = function(line) {
+ var parts;
+ // Parse both variants.
+ if (line.indexOf('a=candidate:') === 0) {
+ parts = line.substring(12).split(' ');
+ } else {
+ parts = line.substring(10).split(' ');
+ }
+
+ var candidate = {
+ foundation: parts[0],
+ component: parts[1],
+ protocol: parts[2].toLowerCase(),
+ priority: parseInt(parts[3], 10),
+ ip: parts[4],
+ port: parseInt(parts[5], 10),
+ // skip parts[6] == 'typ'
+ type: parts[7]
+ };
+
+ for (var i = 8; i < parts.length; i += 2) {
+ switch (parts[i]) {
+ case 'raddr':
+ candidate.relatedAddress = parts[i + 1];
+ break;
+ case 'rport':
+ candidate.relatedPort = parseInt(parts[i + 1], 10);
+ break;
+ case 'tcptype':
+ candidate.tcpType = parts[i + 1];
+ break;
+ default: // Unknown extensions are silently ignored.
+ break;
+ }
+ }
+ return candidate;
+ };
+
+ // Translates a candidate object into SDP candidate attribute.
+ SDPUtils.writeCandidate = function(candidate) {
+ var sdp = [];
+ sdp.push(candidate.foundation);
+ sdp.push(candidate.component);
+ sdp.push(candidate.protocol.toUpperCase());
+ sdp.push(candidate.priority);
+ sdp.push(candidate.ip);
+ sdp.push(candidate.port);
+
+ var type = candidate.type;
+ sdp.push('typ');
+ sdp.push(type);
+ if (type !== 'host' && candidate.relatedAddress &&
+ candidate.relatedPort) {
+ sdp.push('raddr');
+ sdp.push(candidate.relatedAddress); // was: relAddr
+ sdp.push('rport');
+ sdp.push(candidate.relatedPort); // was: relPort
+ }
+ if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
+ sdp.push('tcptype');
+ sdp.push(candidate.tcpType);
+ }
+ return 'candidate:' + sdp.join(' ');
+ };
+
+ // Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
+ // a=rtpmap:111 opus/48000/2
+ SDPUtils.parseRtpMap = function(line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ payloadType: parseInt(parts.shift(), 10) // was: id
+ };
+
+ parts = parts[0].split('/');
+
+ parsed.name = parts[0];
+ parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
+ parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1; // was: channels
+ return parsed;
+ };
+
+ // Generate an a=rtpmap line from RTCRtpCodecCapability or RTCRtpCodecParameters.
+ SDPUtils.writeRtpMap = function(codec) {
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
+ (codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
+ };
+
+ // Parses an ftmp line, returns dictionary. Sample input:
+ // a=fmtp:96 vbr=on;cng=on
+ // Also deals with vbr=on; cng=on
+ SDPUtils.parseFmtp = function(line) {
+ var parsed = {};
+ var kv;
+ var parts = line.substr(line.indexOf(' ') + 1).split(';');
+ for (var j = 0; j < parts.length; j++) {
+ kv = parts[j].trim().split('=');
+ parsed[kv[0].trim()] = kv[1];
+ }
+ return parsed;
+ };
+
+ // Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
+ SDPUtils.writeFtmp = function(codec) {
+ var line = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.parameters && codec.parameters.length) {
+ var params = [];
+ Object.keys(codec.parameters).forEach(function(param) {
+ params.push(param + '=' + codec.parameters[param]);
+ });
+ line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
+ }
+ return line;
+ };
+
+ // Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
+ // a=rtcp-fb:98 nack rpsi
+ SDPUtils.parseRtcpFb = function(line) {
+ var parts = line.substr(line.indexOf(' ') + 1).split(' ');
+ return {
+ type: parts.shift(),
+ parameter: parts.join(' ')
+ };
+ };
+ // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
+ SDPUtils.writeRtcpFb = function(codec) {
+ var lines = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
+ // FIXME: special handling for trr-int?
+ codec.rtcpFeedback.forEach(function(fb) {
+ lines += 'a=rtcp-fb:' + pt + ' ' + fb.type + ' ' + fb.parameter +
+ '\r\n';
+ });
+ }
+ return lines;
+ };
+
+ // Parses an RFC 5576 ssrc media attribute. Sample input:
+ // a=ssrc:3735928559 cname:something
+ SDPUtils.parseSsrcMedia = function(line) {
+ var sp = line.indexOf(' ');
+ var parts = {
+ ssrc: line.substr(7, sp - 7),
+ };
+ var colon = line.indexOf(':', sp);
+ if (colon > -1) {
+ parts.attribute = line.substr(sp + 1, colon - sp - 1);
+ parts.value = line.substr(colon + 1);
+ } else {
+ parts.attribute = line.substr(sp + 1);
+ }
+ return parts;
+ };
+
+ // Extracts DTLS parameters from SDP media section or sessionpart.
+ // FIXME: for consistency with other functions this should only
+ // get the fingerprint line as input. See also getIceParameters.
+ SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ lines = lines.concat(SDPUtils.splitLines(sessionpart)); // Search in session part, too.
+ var fpLine = lines.filter(function(line) {
+ return line.indexOf('a=fingerprint:') === 0;
+ })[0].substr(14);
+ // Note: a=setup line is ignored since we use the 'auto' role.
+ var dtlsParameters = {
+ role: 'auto',
+ fingerprints: [{
+ algorithm: fpLine.split(' ')[0],
+ value: fpLine.split(' ')[1]
+ }]
+ };
+ return dtlsParameters;
+ };
+
+ // Serializes DTLS parameters to SDP.
+ SDPUtils.writeDtlsParameters = function(params, setupType) {
+ var sdp = 'a=setup:' + setupType + '\r\n';
+ params.fingerprints.forEach(function(fp) {
+ sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
+ });
+ return sdp;
+ };
+ // Parses ICE information from SDP media section or sessionpart.
+ // FIXME: for consistency with other functions this should only
+ // get the ice-ufrag and ice-pwd lines as input.
+ SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ lines = lines.concat(SDPUtils.splitLines(sessionpart)); // Search in session part, too.
+ var iceParameters = {
+ usernameFragment: lines.filter(function(line) {
+ return line.indexOf('a=ice-ufrag:') === 0;
+ })[0].substr(12),
+ password: lines.filter(function(line) {
+ return line.indexOf('a=ice-pwd:') === 0;
+ })[0].substr(10)
+ };
+ return iceParameters;
+ };
+
+ // Serializes ICE parameters to SDP.
+ SDPUtils.writeIceParameters = function(params) {
+ return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
+ 'a=ice-pwd:' + params.password + '\r\n';
+ };
+
+ // Parses the SDP media section and returns RTCRtpParameters.
+ SDPUtils.parseRtpParameters = function(mediaSection) {
+ var description = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: [],
+ rtcp: []
+ };
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].split(' ');
+ for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
+ var pt = mline[i];
+ var rtpmapline = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtpmap:' + pt + ' ')[0];
+ if (rtpmapline) {
+ var codec = SDPUtils.parseRtpMap(rtpmapline);
+ var fmtps = SDPUtils.matchPrefix(
+ mediaSection, 'a=fmtp:' + pt + ' ');
+ // Only the first a=fmtp:<pt> is considered.
+ codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
+ codec.rtcpFeedback = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtcp-fb:' + pt + ' ')
+ .map(SDPUtils.parseRtcpFb);
+ description.codecs.push(codec);
+ }
+ }
+ // FIXME: parse headerExtensions, fecMechanisms and rtcp.
+ return description;
+ };
+
+ // Generates parts of the SDP media section describing the capabilities / parameters.
+ SDPUtils.writeRtpDescription = function(kind, caps) {
+ var sdp = '';
+
+ // Build the mline.
+ sdp += 'm=' + kind + ' ';
+ sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
+ sdp += ' UDP/TLS/RTP/SAVPF ';
+ sdp += caps.codecs.map(function(codec) {
+ if (codec.preferredPayloadType !== undefined) {
+ return codec.preferredPayloadType;
+ }
+ return codec.payloadType;
+ }).join(' ') + '\r\n';
+
+ sdp += 'c=IN IP4 0.0.0.0\r\n';
+ sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
+
+ // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
+ caps.codecs.forEach(function(codec) {
+ sdp += SDPUtils.writeRtpMap(codec);
+ sdp += SDPUtils.writeFtmp(codec);
+ sdp += SDPUtils.writeRtcpFb(codec);
+ });
+ // FIXME: add headerExtensions, fecMechanismş and rtcp.
+ sdp += 'a=rtcp-mux\r\n';
+ return sdp;
+ };
+
+ SDPUtils.writeSessionBoilerplate = function() {
+ // FIXME: sess-id should be an NTP timestamp.
+ return 'v=0\r\n' +
+ 'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
+ 's=-\r\n' +
+ 't=0 0\r\n';
+ };
+
+ SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
+ var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
+
+ // Map ICE parameters (ufrag, pwd) to SDP.
+ sdp += SDPUtils.writeIceParameters(
+ transceiver.iceGatherer.getLocalParameters());
+
+ // Map DTLS parameters to SDP.
+ sdp += SDPUtils.writeDtlsParameters(
+ transceiver.dtlsTransport.getLocalParameters(),
+ type === 'offer' ? 'actpass' : 'active');
+
+ sdp += 'a=mid:' + transceiver.mid + '\r\n';
+
+ if (transceiver.rtpSender && transceiver.rtpReceiver) {
+ sdp += 'a=sendrecv\r\n';
+ } else if (transceiver.rtpSender) {
+ sdp += 'a=sendonly\r\n';
+ } else if (transceiver.rtpReceiver) {
+ sdp += 'a=recvonly\r\n';
+ } else {
+ sdp += 'a=inactive\r\n';
+ }
+
+ // FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet.
+ if (transceiver.rtpSender) {
+ var msid = 'msid:' + stream.id + ' ' +
+ transceiver.rtpSender.track.id + '\r\n';
+ sdp += 'a=' + msid;
+ sdp += 'a=ssrc:' + transceiver.sendSsrc + ' ' + msid;
+ }
+ // FIXME: this should be written by writeRtpDescription.
+ sdp += 'a=ssrc:' + transceiver.sendSsrc + ' cname:' +
+ localCName + '\r\n';
+ return sdp;
+ };
+
+ // Gets the direction from the mediaSection or the sessionpart.
+ SDPUtils.getDirection = function(mediaSection, sessionpart) {
+ // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
+ var lines = SDPUtils.splitLines(mediaSection);
+ for (var i = 0; i < lines.length; i++) {
+ switch (lines[i]) {
+ case 'a=sendrecv':
+ case 'a=sendonly':
+ case 'a=recvonly':
+ case 'a=inactive':
+ return lines[i].substr(2);
+ }
+ }
+ if (sessionpart) {
+ return SDPUtils.getDirection(sessionpart);
+ }
+ return 'sendrecv';
+ };
+
+ // ORTC defines an RTCIceCandidate object but no constructor.
+ // Not implemented in Edge.
+ if (!window.RTCIceCandidate) {
+ window.RTCIceCandidate = function(args) {
+ return args;
+ };
+ }
+ // ORTC does not have a session description object but
+ // other browsers (i.e. Chrome) that will support both PC and ORTC
+ // in the future might have this defined already.
+ if (!window.RTCSessionDescription) {
+ window.RTCSessionDescription = function(args) {
+ return args;
+ };
+ }
+
+ window.RTCPeerConnection = function(config) {
+ var self = this;
+
+ this.onicecandidate = null;
+ this.onaddstream = null;
+ this.onremovestream = null;
+ this.onsignalingstatechange = null;
+ this.oniceconnectionstatechange = null;
+ this.onnegotiationneeded = null;
+ this.ondatachannel = null;
+
+ this.localStreams = [];
+ this.remoteStreams = [];
+ this.getLocalStreams = function() { return self.localStreams; };
+ this.getRemoteStreams = function() { return self.remoteStreams; };
+
+ this.localDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.remoteDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.signalingState = 'stable';
+ this.iceConnectionState = 'new';
+
+ this.iceOptions = {
+ gatherPolicy: 'all',
+ iceServers: []
+ };
+ if (config && config.iceTransportPolicy) {
+ switch (config.iceTransportPolicy) {
+ case 'all':
+ case 'relay':
+ this.iceOptions.gatherPolicy = config.iceTransportPolicy;
+ break;
+ case 'none':
+ // FIXME: remove once implementation and spec have added this.
+ throw new TypeError('iceTransportPolicy "none" not supported');
+ }
+ }
+ if (config && config.iceServers) {
+ // Edge does not like
+ // 1) stun:
+ // 2) turn: that does not have all of turn:host:port?transport=udp
+ // 3) an array of urls
+ config.iceServers.forEach(function(server) {
+ if (server.urls) {
+ var url;
+ if (typeof(server.urls) === 'string') {
+ url = server.urls;
+ } else {
+ url = server.urls[0];
+ }
+ if (url.indexOf('transport=udp') !== -1) {
+ self.iceServers.push({
+ username: server.username,
+ credential: server.credential,
+ urls: url
+ });
+ }
+ }
+ });
+ }
+
+ // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
+ // everything that is needed to describe a SDP m-line.
+ this.transceivers = [];
+
+ // since the iceGatherer is currently created in createOffer but we
+ // must not emit candidates until after setLocalDescription we buffer
+ // them in this array.
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
+ var self = this;
+ // FIXME: need to apply ice candidates in a way which is async but in-order
+ this._localIceCandidatesBuffer.forEach(function(event) {
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ });
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype.addStream = function(stream) {
+ // Clone is necessary for local demos mostly, attaching directly
+ // to two different senders does not work (build 10547).
+ this.localStreams.push(stream.clone());
+ this._maybeFireNegotiationNeeded();
+ };
+
+ window.RTCPeerConnection.prototype.removeStream = function(stream) {
+ var idx = this.localStreams.indexOf(stream);
+ if (idx > -1) {
+ this.localStreams.splice(idx, 1);
+ this._maybeFireNegotiationNeeded();
+ }
+ };
+
+ // Determines the intersection of local and remote capabilities.
+ window.RTCPeerConnection.prototype._getCommonCapabilities =
+ function(localCapabilities, remoteCapabilities) {
+ var commonCapabilities = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: []
+ };
+ localCapabilities.codecs.forEach(function(lCodec) {
+ for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
+ var rCodec = remoteCapabilities.codecs[i];
+ if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
+ lCodec.clockRate === rCodec.clockRate &&
+ lCodec.numChannels === rCodec.numChannels) {
+ // push rCodec so we reply with offerer payload type
+ commonCapabilities.codecs.push(rCodec);
+
+ // FIXME: also need to determine intersection between
+ // .rtcpFeedback and .parameters
+ break;
+ }
+ }
+ });
+
+ localCapabilities.headerExtensions.forEach(function(lHeaderExtension) {
+ for (var i = 0; i < remoteCapabilities.headerExtensions.length; i++) {
+ var rHeaderExtension = remoteCapabilities.headerExtensions[i];
+ if (lHeaderExtension.uri === rHeaderExtension.uri) {
+ commonCapabilities.headerExtensions.push(rHeaderExtension);
+ break;
+ }
+ }
+ });
+
+ // FIXME: fecMechanisms
+ return commonCapabilities;
+ };
+
+ // Create ICE gatherer, ICE transport and DTLS transport.
+ window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
+ function(mid, sdpMLineIndex) {
+ var self = this;
+ var iceGatherer = new RTCIceGatherer(self.iceOptions);
+ var iceTransport = new RTCIceTransport(iceGatherer);
+ iceGatherer.onlocalcandidate = function(evt) {
+ var event = {};
+ event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
+
+ var cand = evt.candidate;
+ // Edge emits an empty object for RTCIceCandidateComplete‥
+ if (!cand || Object.keys(cand).length === 0) {
+ // polyfill since RTCIceGatherer.state is not implemented in Edge 10547 yet.
+ if (iceGatherer.state === undefined) {
+ iceGatherer.state = 'completed';
+ }
+
+ // Emit a candidate with type endOfCandidates to make the samples work.
+ // Edge requires addIceCandidate with this empty candidate to start checking.
+ // The real solution is to signal end-of-candidates to the other side when
+ // getting the null candidate but some apps (like the samples) don't do that.
+ event.candidate.candidate =
+ 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
+ } else {
+ // RTCIceCandidate doesn't have a component, needs to be added
+ cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
+ event.candidate.candidate = SDPUtils.writeCandidate(cand);
+ }
+
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+ // FIXME: update .localDescription with candidate and (potentially) end-of-candidates.
+ // To make this harder, the gatherer might emit candidates before localdescription
+ // is set. To make things worse, gather.getLocalCandidates still errors in
+ // Edge 10547 when no candidates have been gathered yet.
+
+ if (self.onicecandidate !== null) {
+ // Emit candidate if localDescription is set.
+ // Also emits null candidate when all gatherers are complete.
+ if (self.localDescription && self.localDescription.type === '') {
+ self._localIceCandidatesBuffer.push(event);
+ if (complete) {
+ self._localIceCandidatesBuffer.push({});
+ }
+ } else {
+ self.onicecandidate(event);
+ if (complete) {
+ self.onicecandidate({});
+ }
+ }
+ }
+ };
+ iceTransport.onicestatechange = function() {
+ self._updateConnectionState();
+ };
+
+ var dtlsTransport = new RTCDtlsTransport(iceTransport);
+ dtlsTransport.ondtlsstatechange = function() {
+ self._updateConnectionState();
+ };
+ dtlsTransport.onerror = function() {
+ // onerror does not set state to failed by itself.
+ dtlsTransport.state = 'failed';
+ self._updateConnectionState();
+ };
+
+ return {
+ iceGatherer: iceGatherer,
+ iceTransport: iceTransport,
+ dtlsTransport: dtlsTransport
+ };
+ };
+
+ // Start the RTP Sender and Receiver for a transceiver.
+ window.RTCPeerConnection.prototype._transceive = function(transceiver,
+ send, recv) {
+ var params = this._getCommonCapabilities(transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+ if (send && transceiver.rtpSender) {
+ params.encodings = [{
+ ssrc: transceiver.sendSsrc
+ }];
+ params.rtcp = {
+ cname: localCName,
+ ssrc: transceiver.recvSsrc
+ };
+ transceiver.rtpSender.send(params);
+ }
+ if (recv && transceiver.rtpReceiver) {
+ params.encodings = [{
+ ssrc: transceiver.recvSsrc
+ }];
+ params.rtcp = {
+ cname: transceiver.cname,
+ ssrc: transceiver.sendSsrc
+ };
+ transceiver.rtpReceiver.receive(params);
+ }
+ };
+
+ window.RTCPeerConnection.prototype.setLocalDescription =
+ function(description) {
+ var self = this;
+ if (description.type === 'offer') {
+ if (!this._pendingOffer) {
+ } else {
+ this.transceivers = this._pendingOffer;
+ delete this._pendingOffer;
+ }
+ } else if (description.type === 'answer') {
+ var sections = SDPUtils.splitSections(self.remoteDescription.sdp);
+ var sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var transceiver = self.transceivers[sdpMLineIndex];
+ var iceGatherer = transceiver.iceGatherer;
+ var iceTransport = transceiver.iceTransport;
+ var dtlsTransport = transceiver.dtlsTransport;
+ var localCapabilities = transceiver.localCapabilities;
+ var remoteCapabilities = transceiver.remoteCapabilities;
+ var rejected = mediaSection.split('\n', 1)[0]
+ .split(' ', 2)[1] === '0';
+
+ if (!rejected) {
+ var remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ iceTransport.start(iceGatherer, remoteIceParameters, 'controlled');
+
+ var remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ dtlsTransport.start(remoteDtlsParameters);
+
+ // Calculate intersection of capabilities.
+ var params = self._getCommonCapabilities(localCapabilities,
+ remoteCapabilities);
+
+ // Start the RTCRtpSender. The RTCRtpReceiver for this transceiver
+ // has already been started in setRemoteDescription.
+ self._transceive(transceiver,
+ params.codecs.length > 0,
+ false);
+ }
+ });
+ }
+
+ this.localDescription = description;
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-local-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type + '"');
+ }
+
+ // If a success callback was provided, emit ICE candidates after it has been
+ // executed. Otherwise, emit callback after the Promise is resolved.
+ var hasCallback = arguments.length > 1 &&
+ typeof arguments[1] === 'function';
+ if (hasCallback) {
+ var cb = arguments[1];
+ window.setTimeout(function() {
+ cb();
+ self._emitBufferedCandidates();
+ }, 0);
+ }
+ var p = Promise.resolve();
+ p.then(function() {
+ if (!hasCallback) {
+ window.setTimeout(self._emitBufferedCandidates.bind(self), 0);
+ }
+ });
+ return p;
+ };
+
+ window.RTCPeerConnection.prototype.setRemoteDescription =
+ function(description) {
+ var self = this;
+ var stream = new MediaStream();
+ var sections = SDPUtils.splitSections(description.sdp);
+ var sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].substr(2).split(' ');
+ var kind = mline[0];
+ var rejected = mline[1] === '0';
+ var direction = SDPUtils.getDirection(mediaSection, sessionpart);
+
+ var transceiver;
+ var iceGatherer;
+ var iceTransport;
+ var dtlsTransport;
+ var rtpSender;
+ var rtpReceiver;
+ var sendSsrc;
+ var recvSsrc;
+ var localCapabilities;
+
+ // FIXME: ensure the mediaSection has rtcp-mux set.
+ var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
+ var remoteIceParameters;
+ var remoteDtlsParameters;
+ if (!rejected) {
+ remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ }
+ var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0].substr(6);
+
+ var cname;
+ // Gets the first SSRC. Note that with RTX there might be multiple SSRCs.
+ var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(obj) {
+ return obj.attribute === 'cname';
+ })[0];
+ if (remoteSsrc) {
+ recvSsrc = parseInt(remoteSsrc.ssrc, 10);
+ cname = remoteSsrc.value;
+ }
+
+ if (description.type === 'offer') {
+ var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ localCapabilities = RTCRtpReceiver.getCapabilities(kind);
+ sendSsrc = (2 * sdpMLineIndex + 2) * 1001;
+
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+
+ // FIXME: not correct when there are multiple streams but that is
+ // not currently supported in this shim.
+ stream.addTrack(rtpReceiver.track);
+
+ // FIXME: look at direction.
+ if (self.localStreams.length > 0 &&
+ self.localStreams[0].getTracks().length >= sdpMLineIndex) {
+ // FIXME: actually more complicated, needs to match types etc
+ var localtrack = self.localStreams[0].getTracks()[sdpMLineIndex];
+ rtpSender = new RTCRtpSender(localtrack, transports.dtlsTransport);
+ }
+
+ self.transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: remoteCapabilities,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ cname: cname,
+ sendSsrc: sendSsrc,
+ recvSsrc: recvSsrc
+ };
+ // Start the RTCRtpReceiver now. The RTPSender is started in setLocalDescription.
+ self._transceive(self.transceivers[sdpMLineIndex],
+ false,
+ direction === 'sendrecv' || direction === 'sendonly');
+ } else if (description.type === 'answer' && !rejected) {
+ transceiver = self.transceivers[sdpMLineIndex];
+ iceGatherer = transceiver.iceGatherer;
+ iceTransport = transceiver.iceTransport;
+ dtlsTransport = transceiver.dtlsTransport;
+ rtpSender = transceiver.rtpSender;
+ rtpReceiver = transceiver.rtpReceiver;
+ sendSsrc = transceiver.sendSsrc;
+ //recvSsrc = transceiver.recvSsrc;
+ localCapabilities = transceiver.localCapabilities;
+
+ self.transceivers[sdpMLineIndex].recvSsrc = recvSsrc;
+ self.transceivers[sdpMLineIndex].remoteCapabilities =
+ remoteCapabilities;
+ self.transceivers[sdpMLineIndex].cname = cname;
+
+ iceTransport.start(iceGatherer, remoteIceParameters, 'controlling');
+ dtlsTransport.start(remoteDtlsParameters);
+
+ self._transceive(transceiver,
+ direction === 'sendrecv' || direction === 'recvonly',
+ direction === 'sendrecv' || direction === 'sendonly');
+
+ if (rtpReceiver &&
+ (direction === 'sendrecv' || direction === 'sendonly')) {
+ stream.addTrack(rtpReceiver.track);
+ } else {
+ // FIXME: actually the receiver should be created later.
+ delete transceiver.rtpReceiver;
+ }
+ }
+ });
+
+ this.remoteDescription = description;
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-remote-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type + '"');
+ }
+ window.setTimeout(function() {
+ if (self.onaddstream !== null && stream.getTracks().length) {
+ self.remoteStreams.push(stream);
+ window.setTimeout(function() {
+ self.onaddstream({stream: stream});
+ }, 0);
+ }
+ }, 0);
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.close = function() {
+ this.transceivers.forEach(function(transceiver) {
+ /* not yet
+ if (transceiver.iceGatherer) {
+ transceiver.iceGatherer.close();
+ }
+ */
+ if (transceiver.iceTransport) {
+ transceiver.iceTransport.stop();
+ }
+ if (transceiver.dtlsTransport) {
+ transceiver.dtlsTransport.stop();
+ }
+ if (transceiver.rtpSender) {
+ transceiver.rtpSender.stop();
+ }
+ if (transceiver.rtpReceiver) {
+ transceiver.rtpReceiver.stop();
+ }
+ });
+ // FIXME: clean up tracks, local streams, remote streams, etc
+ this._updateSignalingState('closed');
+ };
+
+ // Update the signaling state.
+ window.RTCPeerConnection.prototype._updateSignalingState =
+ function(newState) {
+ this.signalingState = newState;
+ if (this.onsignalingstatechange !== null) {
+ this.onsignalingstatechange();
+ }
+ };
+
+ // Determine whether to fire the negotiationneeded event.
+ window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
+ function() {
+ // Fire away (for now).
+ if (this.onnegotiationneeded !== null) {
+ this.onnegotiationneeded();
+ }
+ };
+
+ // Update the connection state.
+ window.RTCPeerConnection.prototype._updateConnectionState =
+ function() {
+ var self = this;
+ var newState;
+ var states = {
+ 'new': 0,
+ closed: 0,
+ connecting: 0,
+ checking: 0,
+ connected: 0,
+ completed: 0,
+ failed: 0
+ };
+ this.transceivers.forEach(function(transceiver) {
+ states[transceiver.iceTransport.state]++;
+ states[transceiver.dtlsTransport.state]++;
+ });
+ // ICETransport.completed and connected are the same for this purpose.
+ states.connected += states.completed;
+
+ newState = 'new';
+ if (states.failed > 0) {
+ newState = 'failed';
+ } else if (states.connecting > 0 || states.checking > 0) {
+ newState = 'connecting';
+ } else if (states.disconnected > 0) {
+ newState = 'disconnected';
+ } else if (states.new > 0) {
+ newState = 'new';
+ } else if (states.connecting > 0 || states.completed > 0) {
+ newState = 'connected';
+ }
+
+ if (newState !== self.iceConnectionState) {
+ self.iceConnectionState = newState;
+ if (this.oniceconnectionstatechange !== null) {
+ this.oniceconnectionstatechange();
+ }
+ }
+ };
+
+ window.RTCPeerConnection.prototype.createOffer = function() {
+ var self = this;
+ if (this._pendingOffer) {
+ throw new Error('createOffer called while there is a pending offer.');
+ }
+ var offerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ offerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ offerOptions = arguments[2];
+ }
+
+ var tracks = [];
+ var numAudioTracks = 0;
+ var numVideoTracks = 0;
+ // Default to sendrecv.
+ if (this.localStreams.length) {
+ numAudioTracks = this.localStreams[0].getAudioTracks().length;
+ numVideoTracks = this.localStreams[0].getVideoTracks().length;
+ }
+ // Determine number of audio and video tracks we need to send/recv.
+ if (offerOptions) {
+ // Reject Chrome legacy constraints.
+ if (offerOptions.mandatory || offerOptions.optional) {
+ throw new TypeError(
+ 'Legacy mandatory/optional constraints not supported.');
+ }
+ if (offerOptions.offerToReceiveAudio !== undefined) {
+ numAudioTracks = offerOptions.offerToReceiveAudio;
+ }
+ if (offerOptions.offerToReceiveVideo !== undefined) {
+ numVideoTracks = offerOptions.offerToReceiveVideo;
+ }
+ }
+ if (this.localStreams.length) {
+ // Push local streams.
+ this.localStreams[0].getTracks().forEach(function(track) {
+ tracks.push({
+ kind: track.kind,
+ track: track,
+ wantReceive: track.kind === 'audio' ?
+ numAudioTracks > 0 : numVideoTracks > 0
+ });
+ if (track.kind === 'audio') {
+ numAudioTracks--;
+ } else if (track.kind === 'video') {
+ numVideoTracks--;
+ }
+ });
+ }
+ // Create M-lines for recvonly streams.
+ while (numAudioTracks > 0 || numVideoTracks > 0) {
+ if (numAudioTracks > 0) {
+ tracks.push({
+ kind: 'audio',
+ wantReceive: true
+ });
+ numAudioTracks--;
+ }
+ if (numVideoTracks > 0) {
+ tracks.push({
+ kind: 'video',
+ wantReceive: true
+ });
+ numVideoTracks--;
+ }
+ }
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ var transceivers = [];
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ // For each track, create an ice gatherer, ice transport, dtls transport,
+ // potentially rtpsender and rtpreceiver.
+ var track = mline.track;
+ var kind = mline.kind;
+ var mid = generateIdentifier();
+
+ var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ var localCapabilities = RTCRtpSender.getCapabilities(kind);
+ var rtpSender;
+ var rtpReceiver;
+
+ // generate an ssrc now, to be used later in rtpSender.send
+ var sendSsrc = (2 * sdpMLineIndex + 1) * 1001;
+ if (track) {
+ rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
+ }
+
+ if (mline.wantReceive) {
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+ }
+
+ transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: null,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ sendSsrc: sendSsrc,
+ recvSsrc: null
+ };
+ var transceiver = transceivers[sdpMLineIndex];
+ sdp += SDPUtils.writeMediaSection(transceiver,
+ transceiver.localCapabilities, 'offer', self.localStreams[0]);
+ });
+
+ this._pendingOffer = transceivers;
+ var desc = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.createAnswer = function() {
+ var self = this;
+ var answerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ answerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ answerOptions = arguments[2];
+ }
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ this.transceivers.forEach(function(transceiver) {
+ // Calculate intersection of capabilities.
+ var commonCapabilities = self._getCommonCapabilities(
+ transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+
+ sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
+ 'answer', self.localStreams[0]);
+ });
+
+ var desc = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
+ var mLineIndex = candidate.sdpMLineIndex;
+ if (candidate.sdpMid) {
+ for (var i = 0; i < this.transceivers.length; i++) {
+ if (this.transceivers[i].mid === candidate.sdpMid) {
+ mLineIndex = i;
+ break;
+ }
+ }
+ }
+ var transceiver = this.transceivers[mLineIndex];
+ if (transceiver) {
+ var cand = Object.keys(candidate.candidate).length > 0 ?
+ SDPUtils.parseCandidate(candidate.candidate) : {};
+ // Ignore Chrome's invalid candidates since Edge does not like them.
+ if (cand.protocol === 'tcp' && cand.port === 0) {
+ return;
+ }
+ // Ignore RTCP candidates, we assume RTCP-MUX.
+ if (cand.component !== '1') {
+ return;
+ }
+ // A dirty hack to make samples work.
+ if (cand.type === 'endOfCandidates') {
+ cand = {};
+ }
+ transceiver.iceTransport.addRemoteCandidate(cand);
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.getStats = function() {
+ var promises = [];
+ this.transceivers.forEach(function(transceiver) {
+ ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
+ 'dtlsTransport'].forEach(function(method) {
+ if (transceiver[method]) {
+ promises.push(transceiver[method].getStats());
+ }
+ });
+ });
+ var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
+ arguments[1];
+ return new Promise(function(resolve) {
+ var results = {};
+ Promise.all(promises).then(function(res) {
+ res.forEach(function(result) {
+ Object.keys(result).forEach(function(id) {
+ results[id] = result[id];
+ });
+ });
+ if (cb) {
+ window.setTimeout(cb, 0, results);
+ }
+ resolve(results);
+ });
+ });
+ };
+ }
+} else {
+ webrtcUtils.log('Browser does not appear to be WebRTC-capable');
}
-},{"./dom-element":243,"events":6,"util":28}],248:[function(require,module,exports){
+// Polyfill ontrack on browsers that don't yet have it
+if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() { return this._ontrack; },
+ set: function(f) {
+ var self = this;
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ if (webrtcDetectedBrowser === 'chrome') {
+ // onaddstream does not fire when a track is added to an existing stream.
+ // but stream.onaddtrack is implemented so we use thたt
+ e.stream.addEventListener('addtrack', function(te) {
+ var event = new Event('track');
+ event.track = te.track;
+ event.receiver = {track: te.track};
+ event.streams = [e.stream];
+ self.dispatchEvent(event);
+ });
+ }
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+}
+
+// Returns the result of getUserMedia as a Promise.
+function requestUserMedia(constraints) {
+ return new Promise(function(resolve, reject) {
+ getUserMedia(constraints, resolve, reject);
+ });
+}
+
+var webrtcTesting = {};
+try {
+ Object.defineProperty(webrtcTesting, 'version', {
+ set: function(version) {
+ webrtcDetectedVersion = version;
+ }
+ });
+} catch (e) {}
+
+if (typeof module !== 'undefined') {
+ var RTCPeerConnection;
+ var RTCIceCandidate;
+ var RTCSessionDescription;
+ if (typeof window !== 'undefined') {
+ RTCPeerConnection = window.RTCPeerConnection;
+ RTCIceCandidate = window.RTCIceCandidate;
+ RTCSessionDescription = window.RTCSessionDescription;
+ }
+ module.exports = {
+ RTCPeerConnection: RTCPeerConnection,
+ RTCIceCandidate: RTCIceCandidate,
+ RTCSessionDescription: RTCSessionDescription,
+ getUserMedia: getUserMedia,
+ attachMediaStream: attachMediaStream,
+ reattachMediaStream: reattachMediaStream,
+ webrtcDetectedBrowser: webrtcDetectedBrowser,
+ webrtcDetectedVersion: webrtcDetectedVersion,
+ webrtcMinimumVersion: webrtcMinimumVersion,
+ webrtcTesting: webrtcTesting,
+ webrtcUtils: webrtcUtils
+ //requestUserMedia: not exposed on purpose.
+ //trace: not exposed on purpose.
+ };
+} else if ((typeof require === 'function') && (typeof define === 'function')) {
+ // Expose objects and functions when RequireJS is doing the loading.
+ define([], function() {
+ return {
+ RTCPeerConnection: window.RTCPeerConnection,
+ RTCIceCandidate: window.RTCIceCandidate,
+ RTCSessionDescription: window.RTCSessionDescription,
+ getUserMedia: getUserMedia,
+ attachMediaStream: attachMediaStream,
+ reattachMediaStream: reattachMediaStream,
+ webrtcDetectedBrowser: webrtcDetectedBrowser,
+ webrtcDetectedVersion: webrtcDetectedVersion,
+ webrtcMinimumVersion: webrtcMinimumVersion,
+ webrtcTesting: webrtcTesting,
+ webrtcUtils: webrtcUtils
+ //requestUserMedia: not exposed on purpose.
+ //trace: not exposed on purpose.
+ };
+ });
+}
+
+},{}],201:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./chrome/chrome_shim":202,"./edge/edge_shim":204,"./firefox/firefox_shim":206,"./safari/safari_shim":208,"./utils":209,"dup":33}],202:[function(require,module,exports){
+
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
'use strict';
+var logging = require('../utils.js').log;
+var browserDetails = require('../utils.js').browserDetails;
+
+var chromeShim = {
+ shimMediaStream: function() {
+ window.MediaStream = window.MediaStream || window.webkitMediaStream;
+ },
+
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ var self = this;
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ // onaddstream does not fire when a track is added to an existing
+ // stream. But stream.onaddtrack is implemented so we use that.
+ e.stream.addEventListener('addtrack', function(te) {
+ var event = new Event('track');
+ event.track = te.track;
+ event.receiver = {track: te.track};
+ event.streams = [e.stream];
+ self.dispatchEvent(event);
+ });
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+ }
+ },
-var util = require('util')
- , events = require('events')
+ shimSourceObject: function() {
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this._srcObject;
+ },
+ set: function(stream) {
+ var self = this;
+ // Use _srcObject as a private property for this shim
+ this._srcObject = stream;
+ if (this.src) {
+ URL.revokeObjectURL(this.src);
+ }
+
+ if (!stream) {
+ this.src = '';
+ return;
+ }
+ this.src = URL.createObjectURL(stream);
+ // We need to recreate the blob url when a track is added or
+ // removed. Doing it manually since we want to avoid a recursion.
+ stream.addEventListener('addtrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ stream.addEventListener('removetrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ }
+ });
+ }
+ }
+ },
-var STATE_TEXT = 0,
- STATE_IGNORE_TAG = 1,
- STATE_TAG_NAME = 2,
- STATE_TAG = 3,
- STATE_ATTR_NAME = 4,
- STATE_ATTR_EQ = 5,
- STATE_ATTR_QUOT = 6,
- STATE_ATTR_VALUE = 7
+ shimPeerConnection: function() {
+ // The RTCPeerConnection object.
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ // Translate iceTransportPolicy to iceTransports,
+ // see https://code.google.com/p/webrtc/issues/detail?id=4869
+ logging('PeerConnection');
+ if (pcConfig && pcConfig.iceTransportPolicy) {
+ pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ }
-var SaxLtx = module.exports = function SaxLtx() {
- events.EventEmitter.call(this)
+ var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
+ var origGetStats = pc.getStats.bind(pc);
+ pc.getStats = function(selector, successCallback, errorCallback) {
+ var self = this;
+ var args = arguments;
+
+ // If selector is a function then we are in the old style stats so just
+ // pass back the original getStats format to avoid breaking old users.
+ if (arguments.length > 0 && typeof selector === 'function') {
+ return origGetStats(selector, successCallback);
+ }
+
+ var fixChromeStats_ = function(response) {
+ var standardReport = {};
+ var reports = response.result();
+ reports.forEach(function(report) {
+ var standardStats = {
+ id: report.id,
+ timestamp: report.timestamp,
+ type: report.type
+ };
+ report.names().forEach(function(name) {
+ standardStats[name] = report.stat(name);
+ });
+ standardReport[standardStats.id] = standardStats;
+ });
- var state = STATE_TEXT, remainder
- var tagName, attrs, endTag, selfClosing, attrQuote
- var recordStart = 0
- var attrName
+ return standardReport;
+ };
- this._handleTagOpening = function(endTag, tagName, attrs) {
- if (!endTag) {
- this.emit('startElement', tagName, attrs)
- if (selfClosing) {
- this.emit('endElement', tagName)
- }
+ // shim getStats with maplike support
+ var makeMapStats = function(stats, legacyStats) {
+ var map = new Map(Object.keys(stats).map(function(key) {
+ return[key, stats[key]];
+ }));
+ legacyStats = legacyStats || stats;
+ Object.keys(legacyStats).forEach(function(key) {
+ map[key] = legacyStats[key];
+ });
+ return map;
+ };
+
+ if (arguments.length >= 2) {
+ var successCallbackWrapper_ = function(response) {
+ args[1](makeMapStats(fixChromeStats_(response)));
+ };
+
+ return origGetStats.apply(this, [successCallbackWrapper_,
+ arguments[0]]);
+ }
+
+ // promise-support
+ return new Promise(function(resolve, reject) {
+ if (args.length === 1 && typeof selector === 'object') {
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response)));
+ }, reject]);
+ } else {
+ // Preserve legacy chrome stats only on legacy access of stats obj
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response),
+ response.result()));
+ }, reject]);
+ }
+ }).then(successCallback, errorCallback);
+ };
+
+ return pc;
+ };
+ window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (webkitRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return webkitRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
+
+ ['createOffer', 'createAnswer'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var self = this;
+ if (arguments.length < 1 || (arguments.length === 1 &&
+ typeof arguments[0] === 'object')) {
+ var opts = arguments.length === 1 ? arguments[0] : undefined;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [resolve, reject, opts]);
+ });
+ }
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+
+ // add promise support -- natively available in Chrome 51
+ if (browserDetails.version < 51) {
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var args = arguments;
+ var self = this;
+ var promise = new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [args[0], resolve, reject]);
+ });
+ if (args.length < 2) {
+ return promise;
+ }
+ return promise.then(function() {
+ args[1].apply(null, []);
+ },
+ function(err) {
+ if (args.length >= 3) {
+ args[2].apply(null, [err]);
+ }
+ });
+ };
+ });
+ }
+
+ // shim implicit creation of RTCSessionDescription/RTCIceCandidate
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ if (arguments[0] === null) {
+ if (arguments[1]) {
+ arguments[1].apply(null);
+ }
+ return Promise.resolve();
+ }
+ return nativeAddIceCandidate.apply(this, arguments);
+ };
+ }
+};
+
+
+// Expose public methods.
+module.exports = {
+ shimMediaStream: chromeShim.shimMediaStream,
+ shimOnTrack: chromeShim.shimOnTrack,
+ shimSourceObject: chromeShim.shimSourceObject,
+ shimPeerConnection: chromeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia')
+};
+
+},{"../utils.js":209,"./getusermedia":203}],203:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+var logging = require('../utils.js').log;
+
+// Expose public methods.
+module.exports = function() {
+ var constraintsToChrome_ = function(c) {
+ if (typeof c !== 'object' || c.mandatory || c.optional) {
+ return c;
+ }
+ var cc = {};
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
+ if (r.exact !== undefined && typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
+ }
+ var oldname_ = function(prefix, name) {
+ if (prefix) {
+ return prefix + name.charAt(0).toUpperCase() + name.slice(1);
+ }
+ return (name === 'deviceId') ? 'sourceId' : name;
+ };
+ if (r.ideal !== undefined) {
+ cc.optional = cc.optional || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[oldname_('min', key)] = r.ideal;
+ cc.optional.push(oc);
+ oc = {};
+ oc[oldname_('max', key)] = r.ideal;
+ cc.optional.push(oc);
} else {
- this.emit('endElement', tagName)
+ oc[oldname_('', key)] = r.ideal;
+ cc.optional.push(oc);
}
+ }
+ if (r.exact !== undefined && typeof r.exact !== 'number') {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_('', key)] = r.exact;
+ } else {
+ ['min', 'max'].forEach(function(mix) {
+ if (r[mix] !== undefined) {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_(mix, key)] = r[mix];
+ }
+ });
+ }
+ });
+ if (c.advanced) {
+ cc.optional = (cc.optional || []).concat(c.advanced);
}
+ return cc;
+ };
- this.write = function(data) {
- /* jshint -W071 */
- /* jshint -W074 */
- if (typeof data !== 'string') {
- data = data.toString()
+ var shimConstraints_ = function(constraints, func) {
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (constraints && constraints.audio) {
+ constraints.audio = constraintsToChrome_(constraints.audio);
+ }
+ if (constraints && typeof constraints.video === 'object') {
+ // Shim facingMode for mobile, where it defaults to "user".
+ var face = constraints.video.facingMode;
+ face = face && ((typeof face === 'object') ? face : {ideal: face});
+
+ if ((face && (face.exact === 'user' || face.exact === 'environment' ||
+ face.ideal === 'user' || face.ideal === 'environment')) &&
+ !(navigator.mediaDevices.getSupportedConstraints &&
+ navigator.mediaDevices.getSupportedConstraints().facingMode)) {
+ delete constraints.video.facingMode;
+ if (face.exact === 'environment' || face.ideal === 'environment') {
+ // Look for "back" in label, or use last cam (typically back cam).
+ return navigator.mediaDevices.enumerateDevices()
+ .then(function(devices) {
+ devices = devices.filter(function(d) {
+ return d.kind === 'videoinput';
+ });
+ var back = devices.find(function(d) {
+ return d.label.toLowerCase().indexOf('back') !== -1;
+ }) || (devices.length && devices[devices.length - 1]);
+ if (back) {
+ constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
+ {ideal: back.deviceId};
+ }
+ constraints.video = constraintsToChrome_(constraints.video);
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
+ });
}
- var pos = 0
+ }
+ constraints.video = constraintsToChrome_(constraints.video);
+ }
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
+ };
- /* Anything from previous write()? */
- if (remainder) {
- data = remainder + data
- pos += remainder.length
- remainder = null
+ var shimError_ = function(e) {
+ return {
+ name: {
+ PermissionDeniedError: 'NotAllowedError',
+ ConstraintNotSatisfiedError: 'OverconstrainedError'
+ }[e.name] || e.name,
+ message: e.message,
+ constraint: e.constraintName,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
+ }
+ };
+ };
+
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ shimConstraints_(constraints, function(c) {
+ navigator.webkitGetUserMedia(c, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
+ });
+ };
+
+ navigator.getUserMedia = getUserMedia_;
+
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ navigator.getUserMedia(constraints, resolve, reject);
+ });
+ };
+
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {
+ getUserMedia: getUserMediaPromise_,
+ enumerateDevices: function() {
+ return new Promise(function(resolve) {
+ var kinds = {audio: 'audioinput', video: 'videoinput'};
+ return MediaStreamTrack.getSources(function(devices) {
+ resolve(devices.map(function(device) {
+ return {label: device.label,
+ kind: kinds[device.kind],
+ deviceId: device.id,
+ groupId: ''};
+ }));
+ });
+ });
+ }
+ };
+ }
+
+ // A shim for getUserMedia method on the mediaDevices object.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (!navigator.mediaDevices.getUserMedia) {
+ navigator.mediaDevices.getUserMedia = function(constraints) {
+ return getUserMediaPromise_(constraints);
+ };
+ } else {
+ // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
+ // function which returns a Promise, it does not accept spec-style
+ // constraints.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(cs) {
+ return shimConstraints_(cs, function(c) {
+ return origGetUserMedia(c).then(function(stream) {
+ if (c.audio && !stream.getAudioTracks().length ||
+ c.video && !stream.getVideoTracks().length) {
+ stream.getTracks().forEach(function(track) {
+ track.stop();
+ });
+ throw new DOMException('', 'NotFoundError');
+ }
+ return stream;
+ }, function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ });
+ };
+ }
+
+ // Dummy devicechange event methods.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
+ navigator.mediaDevices.addEventListener = function() {
+ logging('Dummy mediaDevices.addEventListener called.');
+ };
+ }
+ if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
+ navigator.mediaDevices.removeEventListener = function() {
+ logging('Dummy mediaDevices.removeEventListener called.');
+ };
+ }
+};
+
+},{"../utils.js":209}],204:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var SDPUtils = require('sdp');
+var browserDetails = require('../utils').browserDetails;
+
+var edgeShim = {
+ shimPeerConnection: function() {
+ if (window.RTCIceGatherer) {
+ // ORTC defines an RTCIceCandidate object but no constructor.
+ // Not implemented in Edge.
+ if (!window.RTCIceCandidate) {
+ window.RTCIceCandidate = function(args) {
+ return args;
+ };
+ }
+ // ORTC does not have a session description object but
+ // other browsers (i.e. Chrome) that will support both PC and ORTC
+ // in the future might have this defined already.
+ if (!window.RTCSessionDescription) {
+ window.RTCSessionDescription = function(args) {
+ return args;
+ };
+ }
+ }
+
+ window.RTCPeerConnection = function(config) {
+ var self = this;
+
+ var _eventTarget = document.createDocumentFragment();
+ ['addEventListener', 'removeEventListener', 'dispatchEvent']
+ .forEach(function(method) {
+ self[method] = _eventTarget[method].bind(_eventTarget);
+ });
+
+ this.onicecandidate = null;
+ this.onaddstream = null;
+ this.ontrack = null;
+ this.onremovestream = null;
+ this.onsignalingstatechange = null;
+ this.oniceconnectionstatechange = null;
+ this.onnegotiationneeded = null;
+ this.ondatachannel = null;
+
+ this.localStreams = [];
+ this.remoteStreams = [];
+ this.getLocalStreams = function() {
+ return self.localStreams;
+ };
+ this.getRemoteStreams = function() {
+ return self.remoteStreams;
+ };
+
+ this.localDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.remoteDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.signalingState = 'stable';
+ this.iceConnectionState = 'new';
+ this.iceGatheringState = 'new';
+
+ this.iceOptions = {
+ gatherPolicy: 'all',
+ iceServers: []
+ };
+ if (config && config.iceTransportPolicy) {
+ switch (config.iceTransportPolicy) {
+ case 'all':
+ case 'relay':
+ this.iceOptions.gatherPolicy = config.iceTransportPolicy;
+ break;
+ case 'none':
+ // FIXME: remove once implementation and spec have added this.
+ throw new TypeError('iceTransportPolicy "none" not supported');
+ default:
+ // don't set iceTransportPolicy.
+ break;
}
+ }
+ this.usingBundle = config && config.bundlePolicy === 'max-bundle';
+
+ if (config && config.iceServers) {
+ // Edge does not like
+ // 1) stun:
+ // 2) turn: that does not have all of turn:host:port?transport=udp
+ // 3) turn: with ipv6 addresses
+ var iceServers = JSON.parse(JSON.stringify(config.iceServers));
+ this.iceOptions.iceServers = iceServers.filter(function(server) {
+ if (server && server.urls) {
+ var urls = server.urls;
+ if (typeof urls === 'string') {
+ urls = [urls];
+ }
+ urls = urls.filter(function(url) {
+ return (url.indexOf('turn:') === 0 &&
+ url.indexOf('transport=udp') !== -1 &&
+ url.indexOf('turn:[') === -1) ||
+ (url.indexOf('stun:') === 0 &&
+ browserDetails.version >= 14393);
+ })[0];
+ return !!urls;
+ }
+ return false;
+ });
+ }
+ this._config = config;
+
+ // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
+ // everything that is needed to describe a SDP m-line.
+ this.transceivers = [];
- function endRecording() {
- if (typeof recordStart === 'number') {
- var recorded = data.slice(recordStart, pos)
- recordStart = undefined
- return recorded
+ // since the iceGatherer is currently created in createOffer but we
+ // must not emit candidates until after setLocalDescription we buffer
+ // them in this array.
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
+ var self = this;
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ // FIXME: need to apply ice candidates in a way which is async but
+ // in-order
+ this._localIceCandidatesBuffer.forEach(function(event) {
+ var end = !event.candidate || Object.keys(event.candidate).length === 0;
+ if (end) {
+ for (var j = 1; j < sections.length; j++) {
+ if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
+ sections[j] += 'a=end-of-candidates\r\n';
}
+ }
+ } else if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ if (!event.candidate && self.iceGatheringState !== 'complete') {
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+ if (complete) {
+ self.iceGatheringState = 'complete';
+ }
}
+ });
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype.getConfiguration = function() {
+ return this._config;
+ };
+
+ window.RTCPeerConnection.prototype.addStream = function(stream) {
+ // Clone is necessary for local demos mostly, attaching directly
+ // to two different senders does not work (build 10547).
+ this.localStreams.push(stream.clone());
+ this._maybeFireNegotiationNeeded();
+ };
+
+ window.RTCPeerConnection.prototype.removeStream = function(stream) {
+ var idx = this.localStreams.indexOf(stream);
+ if (idx > -1) {
+ this.localStreams.splice(idx, 1);
+ this._maybeFireNegotiationNeeded();
+ }
+ };
+
+ window.RTCPeerConnection.prototype.getSenders = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpSender;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpSender;
+ });
+ };
- for(; pos < data.length; pos++) {
- var c = data.charCodeAt(pos)
- //console.log("state", state, "c", c, data[pos])
- switch(state) {
- case STATE_TEXT:
- if (c === 60 /* < */) {
- var text = endRecording()
- if (text) {
- this.emit('text', unescapeXml(text))
+ window.RTCPeerConnection.prototype.getReceivers = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpReceiver;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpReceiver;
+ });
+ };
+
+ // Determines the intersection of local and remote capabilities.
+ window.RTCPeerConnection.prototype._getCommonCapabilities =
+ function(localCapabilities, remoteCapabilities) {
+ var commonCapabilities = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: []
+ };
+ localCapabilities.codecs.forEach(function(lCodec) {
+ for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
+ var rCodec = remoteCapabilities.codecs[i];
+ if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
+ lCodec.clockRate === rCodec.clockRate) {
+ // number of channels is the highest common number of channels
+ rCodec.numChannels = Math.min(lCodec.numChannels,
+ rCodec.numChannels);
+ // push rCodec so we reply with offerer payload type
+ commonCapabilities.codecs.push(rCodec);
+
+ // determine common feedback mechanisms
+ rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {
+ for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {
+ if (lCodec.rtcpFeedback[j].type === fb.type &&
+ lCodec.rtcpFeedback[j].parameter === fb.parameter) {
+ return true;
}
- state = STATE_TAG_NAME
- recordStart = pos + 1
- attrs = {}
+ }
+ return false;
+ });
+ // FIXME: also need to determine .parameters
+ // see https://github.com/openpeer/ortc/issues/569
+ break;
+ }
+ }
+ });
+
+ localCapabilities.headerExtensions
+ .forEach(function(lHeaderExtension) {
+ for (var i = 0; i < remoteCapabilities.headerExtensions.length;
+ i++) {
+ var rHeaderExtension = remoteCapabilities.headerExtensions[i];
+ if (lHeaderExtension.uri === rHeaderExtension.uri) {
+ commonCapabilities.headerExtensions.push(rHeaderExtension);
+ break;
+ }
}
- break
- case STATE_TAG_NAME:
- if (c === 47 /* / */ && recordStart === pos) {
- recordStart = pos + 1
- endTag = true
- } else if (c === 33 /* ! */ || c === 63 /* ? */) {
- recordStart = undefined
- state = STATE_IGNORE_TAG
- } else if (c <= 32 || c === 47 /* / */ || c === 62 /* > */) {
- tagName = endRecording()
- pos--
- state = STATE_TAG
+ });
+
+ // FIXME: fecMechanisms
+ return commonCapabilities;
+ };
+
+ // Create ICE gatherer, ICE transport and DTLS transport.
+ window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
+ function(mid, sdpMLineIndex) {
+ var self = this;
+ var iceGatherer = new RTCIceGatherer(self.iceOptions);
+ var iceTransport = new RTCIceTransport(iceGatherer);
+ iceGatherer.onlocalcandidate = function(evt) {
+ var event = new Event('icecandidate');
+ event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
+
+ var cand = evt.candidate;
+ var end = !cand || Object.keys(cand).length === 0;
+ // Edge emits an empty object for RTCIceCandidateComplete‥
+ if (end) {
+ // polyfill since RTCIceGatherer.state is not implemented in
+ // Edge 10547 yet.
+ if (iceGatherer.state === undefined) {
+ iceGatherer.state = 'completed';
+ }
+
+ // Emit a candidate with type endOfCandidates to make the samples
+ // work. Edge requires addIceCandidate with this empty candidate
+ // to start checking. The real solution is to signal
+ // end-of-candidates to the other side when getting the null
+ // candidate but some apps (like the samples) don't do that.
+ event.candidate.candidate =
+ 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
+ } else {
+ // RTCIceCandidate doesn't have a component, needs to be added
+ cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
+ event.candidate.candidate = SDPUtils.writeCandidate(cand);
+ }
+
+ // update local description.
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ } else {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=end-of-candidates\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
+
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+
+ // Emit candidate if localDescription is set.
+ // Also emits null candidate when all gatherers are complete.
+ switch (self.iceGatheringState) {
+ case 'new':
+ self._localIceCandidatesBuffer.push(event);
+ if (end && complete) {
+ self._localIceCandidatesBuffer.push(
+ new Event('icecandidate'));
}
- break
- case STATE_IGNORE_TAG:
- if (c === 62 /* > */) {
- state = STATE_TEXT
+ break;
+ case 'gathering':
+ self._emitBufferedCandidates();
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
}
- break
- case STATE_TAG:
- if (c === 62 /* > */) {
- this._handleTagOpening(endTag, tagName, attrs)
- tagName = undefined
- attrs = undefined
- endTag = undefined
- selfClosing = undefined
- state = STATE_TEXT
- recordStart = pos + 1
- } else if (c === 47 /* / */) {
- selfClosing = true
- } else if (c > 32) {
- recordStart = pos
- state = STATE_ATTR_NAME
+ if (complete) {
+ self.dispatchEvent(new Event('icecandidate'));
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(new Event('icecandidate'));
+ }
+ self.iceGatheringState = 'complete';
}
- break
- case STATE_ATTR_NAME:
- if (c <= 32 || c === 61 /* = */) {
- attrName = endRecording()
- pos--
- state = STATE_ATTR_EQ
+ break;
+ case 'complete':
+ // should not happen... currently!
+ break;
+ default: // no-op.
+ break;
+ }
+ };
+ iceTransport.onicestatechange = function() {
+ self._updateConnectionState();
+ };
+
+ var dtlsTransport = new RTCDtlsTransport(iceTransport);
+ dtlsTransport.ondtlsstatechange = function() {
+ self._updateConnectionState();
+ };
+ dtlsTransport.onerror = function() {
+ // onerror does not set state to failed by itself.
+ dtlsTransport.state = 'failed';
+ self._updateConnectionState();
+ };
+
+ return {
+ iceGatherer: iceGatherer,
+ iceTransport: iceTransport,
+ dtlsTransport: dtlsTransport
+ };
+ };
+
+ // Start the RTP Sender and Receiver for a transceiver.
+ window.RTCPeerConnection.prototype._transceive = function(transceiver,
+ send, recv) {
+ var params = this._getCommonCapabilities(transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+ if (send && transceiver.rtpSender) {
+ params.encodings = transceiver.sendEncodingParameters;
+ params.rtcp = {
+ cname: SDPUtils.localCName
+ };
+ if (transceiver.recvEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpSender.send(params);
+ }
+ if (recv && transceiver.rtpReceiver) {
+ // remove RTX field in Edge 14942
+ if (transceiver.kind === 'video'
+ && transceiver.recvEncodingParameters) {
+ transceiver.recvEncodingParameters.forEach(function(p) {
+ delete p.rtx;
+ });
+ }
+ params.encodings = transceiver.recvEncodingParameters;
+ params.rtcp = {
+ cname: transceiver.cname
+ };
+ if (transceiver.sendEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpReceiver.receive(params);
+ }
+ };
+
+ window.RTCPeerConnection.prototype.setLocalDescription =
+ function(description) {
+ var self = this;
+ var sections;
+ var sessionpart;
+ if (description.type === 'offer') {
+ // FIXME: What was the purpose of this empty if statement?
+ // if (!this._pendingOffer) {
+ // } else {
+ if (this._pendingOffer) {
+ // VERY limited support for SDP munging. Limited to:
+ // * changing the order of codecs
+ sections = SDPUtils.splitSections(description.sdp);
+ sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var caps = SDPUtils.parseRtpParameters(mediaSection);
+ self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
+ });
+ this.transceivers = this._pendingOffer;
+ delete this._pendingOffer;
+ }
+ } else if (description.type === 'answer') {
+ sections = SDPUtils.splitSections(self.remoteDescription.sdp);
+ sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var transceiver = self.transceivers[sdpMLineIndex];
+ var iceGatherer = transceiver.iceGatherer;
+ var iceTransport = transceiver.iceTransport;
+ var dtlsTransport = transceiver.dtlsTransport;
+ var localCapabilities = transceiver.localCapabilities;
+ var remoteCapabilities = transceiver.remoteCapabilities;
+
+ var rejected = mediaSection.split('\n', 1)[0]
+ .split(' ', 2)[1] === '0';
+
+ if (!rejected && !transceiver.isDatachannel) {
+ var remoteIceParameters = SDPUtils.getIceParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ // ice-lite only includes host candidates in the SDP so we can
+ // use setRemoteCandidates (which implies an
+ // RTCIceCandidateComplete)
+ if (cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
}
- break
- case STATE_ATTR_EQ:
- if (c === 61 /* = */) {
- state = STATE_ATTR_QUOT
+ var remoteDtlsParameters = SDPUtils.getDtlsParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ remoteDtlsParameters.role = 'server';
}
- break
- case STATE_ATTR_QUOT:
- if (c === 34 /* " */ || c === 39 /* ' */) {
- attrQuote = c
- state = STATE_ATTR_VALUE
- recordStart = pos + 1
+
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ isIceLite ? 'controlling' : 'controlled');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
+
+ // Calculate intersection of capabilities.
+ var params = self._getCommonCapabilities(localCapabilities,
+ remoteCapabilities);
+
+ // Start the RTCRtpSender. The RTCRtpReceiver for this
+ // transceiver has already been started in setRemoteDescription.
+ self._transceive(transceiver,
+ params.codecs.length > 0,
+ false);
+ }
+ });
+ }
+
+ this.localDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-local-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
+
+ // If a success callback was provided, emit ICE candidates after it
+ // has been executed. Otherwise, emit callback after the Promise is
+ // resolved.
+ var hasCallback = arguments.length > 1 &&
+ typeof arguments[1] === 'function';
+ if (hasCallback) {
+ var cb = arguments[1];
+ window.setTimeout(function() {
+ cb();
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ self._emitBufferedCandidates();
+ }, 0);
+ }
+ var p = Promise.resolve();
+ p.then(function() {
+ if (!hasCallback) {
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ // Usually candidates will be emitted earlier.
+ window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
+ }
+ });
+ return p;
+ };
+
+ window.RTCPeerConnection.prototype.setRemoteDescription =
+ function(description) {
+ var self = this;
+ var stream = new MediaStream();
+ var receiverList = [];
+ var sections = SDPUtils.splitSections(description.sdp);
+ var sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ this.usingBundle = SDPUtils.matchPrefix(sessionpart,
+ 'a=group:BUNDLE ').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].substr(2).split(' ');
+ var kind = mline[0];
+ var rejected = mline[1] === '0';
+ var direction = SDPUtils.getDirection(mediaSection, sessionpart);
+
+ var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
+ if (mid.length) {
+ mid = mid[0].substr(6);
+ } else {
+ mid = SDPUtils.generateIdentifier();
+ }
+
+ // Reject datachannels which are not implemented yet.
+ if (kind === 'application' && mline[2] === 'DTLS/SCTP') {
+ self.transceivers[sdpMLineIndex] = {
+ mid: mid,
+ isDatachannel: true
+ };
+ return;
+ }
+
+ var transceiver;
+ var iceGatherer;
+ var iceTransport;
+ var dtlsTransport;
+ var rtpSender;
+ var rtpReceiver;
+ var sendEncodingParameters;
+ var recvEncodingParameters;
+ var localCapabilities;
+
+ var track;
+ // FIXME: ensure the mediaSection has rtcp-mux set.
+ var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
+ var remoteIceParameters;
+ var remoteDtlsParameters;
+ if (!rejected) {
+ remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters.role = 'client';
+ }
+ recvEncodingParameters =
+ SDPUtils.parseRtpEncodingParameters(mediaSection);
+
+ var cname;
+ // Gets the first SSRC. Note that with RTX there might be multiple
+ // SSRCs.
+ var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(obj) {
+ return obj.attribute === 'cname';
+ })[0];
+ if (remoteSsrc) {
+ cname = remoteSsrc.value;
+ }
+
+ var isComplete = SDPUtils.matchPrefix(mediaSection,
+ 'a=end-of-candidates', sessionpart).length > 0;
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ if (description.type === 'offer' && !rejected) {
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: self.transceivers[0].iceGatherer,
+ iceTransport: self.transceivers[0].iceTransport,
+ dtlsTransport: self.transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ if (isComplete) {
+ transports.iceTransport.setRemoteCandidates(cands);
+ }
+
+ localCapabilities = RTCRtpReceiver.getCapabilities(kind);
+
+ // filter RTX until additional stuff needed for RTX is implemented
+ // in adapter.js
+ localCapabilities.codecs = localCapabilities.codecs.filter(
+ function(codec) {
+ return codec.name !== 'rtx';
+ });
+
+ sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 2) * 1001
+ }];
+
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ // FIXME: not correct when there are multiple streams but that is
+ // not currently supported in this shim.
+ stream.addTrack(track);
+
+ // FIXME: look at direction.
+ if (self.localStreams.length > 0 &&
+ self.localStreams[0].getTracks().length >= sdpMLineIndex) {
+ var localTrack;
+ if (kind === 'audio') {
+ localTrack = self.localStreams[0].getAudioTracks()[0];
+ } else if (kind === 'video') {
+ localTrack = self.localStreams[0].getVideoTracks()[0];
}
- break
- case STATE_ATTR_VALUE:
- if (c === attrQuote) {
- var value = unescapeXml(endRecording())
- attrs[attrName] = value
- attrName = undefined
- state = STATE_TAG
+ if (localTrack) {
+ rtpSender = new RTCRtpSender(localTrack,
+ transports.dtlsTransport);
}
- break
+ }
+
+ self.transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: remoteCapabilities,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ cname: cname,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: recvEncodingParameters
+ };
+ // Start the RTCRtpReceiver now. The RTPSender is started in
+ // setLocalDescription.
+ self._transceive(self.transceivers[sdpMLineIndex],
+ false,
+ direction === 'sendrecv' || direction === 'sendonly');
+ } else if (description.type === 'answer' && !rejected) {
+ transceiver = self.transceivers[sdpMLineIndex];
+ iceGatherer = transceiver.iceGatherer;
+ iceTransport = transceiver.iceTransport;
+ dtlsTransport = transceiver.dtlsTransport;
+ rtpSender = transceiver.rtpSender;
+ rtpReceiver = transceiver.rtpReceiver;
+ sendEncodingParameters = transceiver.sendEncodingParameters;
+ localCapabilities = transceiver.localCapabilities;
+
+ self.transceivers[sdpMLineIndex].recvEncodingParameters =
+ recvEncodingParameters;
+ self.transceivers[sdpMLineIndex].remoteCapabilities =
+ remoteCapabilities;
+ self.transceivers[sdpMLineIndex].cname = cname;
+
+ if ((isIceLite || isComplete) && cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ 'controlling');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
+
+ self._transceive(transceiver,
+ direction === 'sendrecv' || direction === 'recvonly',
+ direction === 'sendrecv' || direction === 'sendonly');
+
+ if (rtpReceiver &&
+ (direction === 'sendrecv' || direction === 'sendonly')) {
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ stream.addTrack(track);
+ } else {
+ // FIXME: actually the receiver should be created later.
+ delete transceiver.rtpReceiver;
+ }
}
+ });
+
+ this.remoteDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-remote-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
+ if (stream.getTracks().length) {
+ self.remoteStreams.push(stream);
+ window.setTimeout(function() {
+ var event = new Event('addstream');
+ event.stream = stream;
+ self.dispatchEvent(event);
+ if (self.onaddstream !== null) {
+ window.setTimeout(function() {
+ self.onaddstream(event);
+ }, 0);
+ }
+
+ receiverList.forEach(function(item) {
+ var track = item[0];
+ var receiver = item[1];
+ var trackEvent = new Event('track');
+ trackEvent.track = track;
+ trackEvent.receiver = receiver;
+ trackEvent.streams = [stream];
+ self.dispatchEvent(event);
+ if (self.ontrack !== null) {
+ window.setTimeout(function() {
+ self.ontrack(trackEvent);
+ }, 0);
+ }
+ });
+ }, 0);
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.close = function() {
+ this.transceivers.forEach(function(transceiver) {
+ /* not yet
+ if (transceiver.iceGatherer) {
+ transceiver.iceGatherer.close();
+ }
+ */
+ if (transceiver.iceTransport) {
+ transceiver.iceTransport.stop();
+ }
+ if (transceiver.dtlsTransport) {
+ transceiver.dtlsTransport.stop();
+ }
+ if (transceiver.rtpSender) {
+ transceiver.rtpSender.stop();
+ }
+ if (transceiver.rtpReceiver) {
+ transceiver.rtpReceiver.stop();
+ }
+ });
+ // FIXME: clean up tracks, local streams, remote streams, etc
+ this._updateSignalingState('closed');
+ };
+
+ // Update the signaling state.
+ window.RTCPeerConnection.prototype._updateSignalingState =
+ function(newState) {
+ this.signalingState = newState;
+ var event = new Event('signalingstatechange');
+ this.dispatchEvent(event);
+ if (this.onsignalingstatechange !== null) {
+ this.onsignalingstatechange(event);
+ }
+ };
+
+ // Determine whether to fire the negotiationneeded event.
+ window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
+ function() {
+ // Fire away (for now).
+ var event = new Event('negotiationneeded');
+ this.dispatchEvent(event);
+ if (this.onnegotiationneeded !== null) {
+ this.onnegotiationneeded(event);
+ }
+ };
+
+ // Update the connection state.
+ window.RTCPeerConnection.prototype._updateConnectionState = function() {
+ var self = this;
+ var newState;
+ var states = {
+ 'new': 0,
+ closed: 0,
+ connecting: 0,
+ checking: 0,
+ connected: 0,
+ completed: 0,
+ failed: 0
+ };
+ this.transceivers.forEach(function(transceiver) {
+ states[transceiver.iceTransport.state]++;
+ states[transceiver.dtlsTransport.state]++;
+ });
+ // ICETransport.completed and connected are the same for this purpose.
+ states.connected += states.completed;
+
+ newState = 'new';
+ if (states.failed > 0) {
+ newState = 'failed';
+ } else if (states.connecting > 0 || states.checking > 0) {
+ newState = 'connecting';
+ } else if (states.disconnected > 0) {
+ newState = 'disconnected';
+ } else if (states.new > 0) {
+ newState = 'new';
+ } else if (states.connected > 0 || states.completed > 0) {
+ newState = 'connected';
+ }
+
+ if (newState !== self.iceConnectionState) {
+ self.iceConnectionState = newState;
+ var event = new Event('iceconnectionstatechange');
+ this.dispatchEvent(event);
+ if (this.oniceconnectionstatechange !== null) {
+ this.oniceconnectionstatechange(event);
+ }
+ }
+ };
+
+ window.RTCPeerConnection.prototype.createOffer = function() {
+ var self = this;
+ if (this._pendingOffer) {
+ throw new Error('createOffer called while there is a pending offer.');
+ }
+ var offerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ offerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ offerOptions = arguments[2];
+ }
+
+ var tracks = [];
+ var numAudioTracks = 0;
+ var numVideoTracks = 0;
+ // Default to sendrecv.
+ if (this.localStreams.length) {
+ numAudioTracks = this.localStreams[0].getAudioTracks().length;
+ numVideoTracks = this.localStreams[0].getVideoTracks().length;
+ }
+ // Determine number of audio and video tracks we need to send/recv.
+ if (offerOptions) {
+ // Reject Chrome legacy constraints.
+ if (offerOptions.mandatory || offerOptions.optional) {
+ throw new TypeError(
+ 'Legacy mandatory/optional constraints not supported.');
+ }
+ if (offerOptions.offerToReceiveAudio !== undefined) {
+ numAudioTracks = offerOptions.offerToReceiveAudio;
}
+ if (offerOptions.offerToReceiveVideo !== undefined) {
+ numVideoTracks = offerOptions.offerToReceiveVideo;
+ }
+ }
+ if (this.localStreams.length) {
+ // Push local streams.
+ this.localStreams[0].getTracks().forEach(function(track) {
+ tracks.push({
+ kind: track.kind,
+ track: track,
+ wantReceive: track.kind === 'audio' ?
+ numAudioTracks > 0 : numVideoTracks > 0
+ });
+ if (track.kind === 'audio') {
+ numAudioTracks--;
+ } else if (track.kind === 'video') {
+ numVideoTracks--;
+ }
+ });
+ }
+ // Create M-lines for recvonly streams.
+ while (numAudioTracks > 0 || numVideoTracks > 0) {
+ if (numAudioTracks > 0) {
+ tracks.push({
+ kind: 'audio',
+ wantReceive: true
+ });
+ numAudioTracks--;
+ }
+ if (numVideoTracks > 0) {
+ tracks.push({
+ kind: 'video',
+ wantReceive: true
+ });
+ numVideoTracks--;
+ }
+ }
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ var transceivers = [];
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ // For each track, create an ice gatherer, ice transport,
+ // dtls transport, potentially rtpsender and rtpreceiver.
+ var track = mline.track;
+ var kind = mline.kind;
+ var mid = SDPUtils.generateIdentifier();
+
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: transceivers[0].iceGatherer,
+ iceTransport: transceivers[0].iceTransport,
+ dtlsTransport: transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ var localCapabilities = RTCRtpSender.getCapabilities(kind);
+ // filter RTX until additional stuff needed for RTX is implemented
+ // in adapter.js
+ localCapabilities.codecs = localCapabilities.codecs.filter(
+ function(codec) {
+ return codec.name !== 'rtx';
+ });
+ localCapabilities.codecs.forEach(function(codec) {
+ // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552
+ // by adding level-asymmetry-allowed=1
+ if (codec.name === 'H264' &&
+ codec.parameters['level-asymmetry-allowed'] === undefined) {
+ codec.parameters['level-asymmetry-allowed'] = '1';
+ }
+ });
+
+ var rtpSender;
+ var rtpReceiver;
+
+ // generate an ssrc now, to be used later in rtpSender.send
+ var sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 1) * 1001
+ }];
+ if (track) {
+ rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
+ }
+
+ if (mline.wantReceive) {
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+ }
+
+ transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: null,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: null
+ };
+ });
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ var transceiver = transceivers[sdpMLineIndex];
+ sdp += SDPUtils.writeMediaSection(transceiver,
+ transceiver.localCapabilities, 'offer', self.localStreams[0]);
+ });
+
+ this._pendingOffer = transceivers;
+ var desc = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
- if (typeof recordStart === 'number' &&
- recordStart <= data.length) {
+ window.RTCPeerConnection.prototype.createAnswer = function() {
+ var self = this;
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ this.transceivers.forEach(function(transceiver) {
+ if (transceiver.isDatachannel) {
+ sdp += 'm=application 0 DTLS/SCTP 5000\r\n' +
+ 'c=IN IP4 0.0.0.0\r\n' +
+ 'a=mid:' + transceiver.mid + '\r\n';
+ return;
+ }
+ // Calculate intersection of capabilities.
+ var commonCapabilities = self._getCommonCapabilities(
+ transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+
+ sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
+ 'answer', self.localStreams[0]);
+ });
+
+ var desc = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
+ if (candidate === null) {
+ this.transceivers.forEach(function(transceiver) {
+ transceiver.iceTransport.addRemoteCandidate({});
+ });
+ } else {
+ var mLineIndex = candidate.sdpMLineIndex;
+ if (candidate.sdpMid) {
+ for (var i = 0; i < this.transceivers.length; i++) {
+ if (this.transceivers[i].mid === candidate.sdpMid) {
+ mLineIndex = i;
+ break;
+ }
+ }
+ }
+ var transceiver = this.transceivers[mLineIndex];
+ if (transceiver) {
+ var cand = Object.keys(candidate.candidate).length > 0 ?
+ SDPUtils.parseCandidate(candidate.candidate) : {};
+ // Ignore Chrome's invalid candidates since Edge does not like them.
+ if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {
+ return;
+ }
+ // Ignore RTCP candidates, we assume RTCP-MUX.
+ if (cand.component !== '1') {
+ return;
+ }
+ // A dirty hack to make samples work.
+ if (cand.type === 'endOfCandidates') {
+ cand = {};
+ }
+ transceiver.iceTransport.addRemoteCandidate(cand);
- remainder = data.slice(recordStart)
- recordStart = 0
+ // update the remoteDescription.
+ var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
+ sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
+ : 'a=end-of-candidates') + '\r\n';
+ this.remoteDescription.sdp = sections.join('');
}
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.getStats = function() {
+ var promises = [];
+ this.transceivers.forEach(function(transceiver) {
+ ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
+ 'dtlsTransport'].forEach(function(method) {
+ if (transceiver[method]) {
+ promises.push(transceiver[method].getStats());
+ }
+ });
+ });
+ var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
+ arguments[1];
+ return new Promise(function(resolve) {
+ // shim getStats with maplike support
+ var results = new Map();
+ Promise.all(promises).then(function(res) {
+ res.forEach(function(result) {
+ Object.keys(result).forEach(function(id) {
+ results.set(id, result[id]);
+ results[id] = result[id];
+ });
+ });
+ if (cb) {
+ window.setTimeout(cb, 0, results);
+ }
+ resolve(results);
+ });
+ });
+ };
+ }
+};
+
+// Expose public methods.
+module.exports = {
+ shimPeerConnection: edgeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia')
+};
+
+},{"../utils":209,"./getusermedia":205,"sdp":173}],205:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"dup":37}],206:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var browserDetails = require('../utils').browserDetails;
+
+var firefoxShim = {
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
}
+ },
- /*var origEmit = this.emit
- this.emit = function() {
- console.log('ltx', arguments)
- origEmit.apply(this, arguments)
- }*/
+ shimSourceObject: function() {
+ // Firefox has supported mozSrcObject since FF22, unprefixed in 42.
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this.mozSrcObject;
+ },
+ set: function(stream) {
+ this.mozSrcObject = stream;
+ }
+ });
+ }
+ }
+ },
+
+ shimPeerConnection: function() {
+ if (typeof window !== 'object' || !(window.RTCPeerConnection ||
+ window.mozRTCPeerConnection)) {
+ return; // probably media.peerconnection.enabled=false in about:config
+ }
+ // The RTCPeerConnection object.
+ if (!window.RTCPeerConnection) {
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ if (browserDetails.version < 38) {
+ // .urls is not supported in FF < 38.
+ // create RTCIceServers with a single url.
+ if (pcConfig && pcConfig.iceServers) {
+ var newIceServers = [];
+ for (var i = 0; i < pcConfig.iceServers.length; i++) {
+ var server = pcConfig.iceServers[i];
+ if (server.hasOwnProperty('urls')) {
+ for (var j = 0; j < server.urls.length; j++) {
+ var newServer = {
+ url: server.urls[j]
+ };
+ if (server.urls[j].indexOf('turn') === 0) {
+ newServer.username = server.username;
+ newServer.credential = server.credential;
+ }
+ newIceServers.push(newServer);
+ }
+ } else {
+ newIceServers.push(pcConfig.iceServers[i]);
+ }
+ }
+ pcConfig.iceServers = newIceServers;
+ }
+ }
+ return new mozRTCPeerConnection(pcConfig, pcConstraints);
+ };
+ window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (mozRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return mozRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
+
+ window.RTCSessionDescription = mozRTCSessionDescription;
+ window.RTCIceCandidate = mozRTCIceCandidate;
+ }
+
+ // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = RTCPeerConnection.prototype[method];
+ RTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ if (arguments[0] === null) {
+ if (arguments[1]) {
+ arguments[1].apply(null);
+ }
+ return Promise.resolve();
+ }
+ return nativeAddIceCandidate.apply(this, arguments);
+ };
+
+ // shim getStats with maplike support
+ var makeMapStats = function(stats) {
+ var map = new Map();
+ Object.keys(stats).forEach(function(key) {
+ map.set(key, stats[key]);
+ map[key] = stats[key];
+ });
+ return map;
+ };
+
+ var nativeGetStats = RTCPeerConnection.prototype.getStats;
+ RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
+ return nativeGetStats.apply(this, [selector || null])
+ .then(function(stats) {
+ return makeMapStats(stats);
+ })
+ .then(onSucc, onErr);
+ };
+ }
+};
+
+// Expose public methods.
+module.exports = {
+ shimOnTrack: firefoxShim.shimOnTrack,
+ shimSourceObject: firefoxShim.shimSourceObject,
+ shimPeerConnection: firefoxShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia')
+};
+
+},{"../utils":209,"./getusermedia":207}],207:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var logging = require('../utils').log;
+var browserDetails = require('../utils').browserDetails;
+
+// Expose public methods.
+module.exports = function() {
+ var shimError_ = function(e) {
+ return {
+ name: {
+ SecurityError: 'NotAllowedError',
+ PermissionDeniedError: 'NotAllowedError'
+ }[e.name] || e.name,
+ message: {
+ 'The operation is insecure.': 'The request is not allowed by the ' +
+ 'user agent or the platform in the current context.'
+ }[e.message] || e.message,
+ constraint: e.constraint,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
+ }
+ };
+ };
+
+ // getUserMedia constraints shim.
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ var constraintsToFF37_ = function(c) {
+ if (typeof c !== 'object' || c.require) {
+ return c;
+ }
+ var require = [];
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = c[key] = (typeof c[key] === 'object') ?
+ c[key] : {ideal: c[key]};
+ if (r.min !== undefined ||
+ r.max !== undefined || r.exact !== undefined) {
+ require.push(key);
+ }
+ if (r.exact !== undefined) {
+ if (typeof r.exact === 'number') {
+ r. min = r.max = r.exact;
+ } else {
+ c[key] = r.exact;
+ }
+ delete r.exact;
+ }
+ if (r.ideal !== undefined) {
+ c.advanced = c.advanced || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[key] = {min: r.ideal, max: r.ideal};
+ } else {
+ oc[key] = r.ideal;
+ }
+ c.advanced.push(oc);
+ delete r.ideal;
+ if (!Object.keys(r).length) {
+ delete c[key];
+ }
+ }
+ });
+ if (require.length) {
+ c.require = require;
+ }
+ return c;
+ };
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (browserDetails.version < 38) {
+ logging('spec: ' + JSON.stringify(constraints));
+ if (constraints.audio) {
+ constraints.audio = constraintsToFF37_(constraints.audio);
+ }
+ if (constraints.video) {
+ constraints.video = constraintsToFF37_(constraints.video);
+ }
+ logging('ff37: ' + JSON.stringify(constraints));
+ }
+ return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
+ };
+
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ getUserMedia_(constraints, resolve, reject);
+ });
+ };
+
+ // Shim for mediaDevices on older versions.
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
+ addEventListener: function() { },
+ removeEventListener: function() { }
+ };
+ }
+ navigator.mediaDevices.enumerateDevices =
+ navigator.mediaDevices.enumerateDevices || function() {
+ return new Promise(function(resolve) {
+ var infos = [
+ {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
+ {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
+ ];
+ resolve(infos);
+ });
+ };
+
+ if (browserDetails.version < 41) {
+ // Work around http://bugzil.la/1169665
+ var orgEnumerateDevices =
+ navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
+ navigator.mediaDevices.enumerateDevices = function() {
+ return orgEnumerateDevices().then(undefined, function(e) {
+ if (e.name === 'NotFoundError') {
+ return [];
+ }
+ throw e;
+ });
+ };
+ }
+ if (browserDetails.version < 49) {
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ return origGetUserMedia(c).then(function(stream) {
+ // Work around https://bugzil.la/802326
+ if (c.audio && !stream.getAudioTracks().length ||
+ c.video && !stream.getVideoTracks().length) {
+ stream.getTracks().forEach(function(track) {
+ track.stop();
+ });
+ throw new DOMException('The object can not be found here.',
+ 'NotFoundError');
+ }
+ return stream;
+ }, function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ };
+ }
+ navigator.getUserMedia = function(constraints, onSuccess, onError) {
+ if (browserDetails.version < 44) {
+ return getUserMedia_(constraints, onSuccess, onError);
+ }
+ // Replace Firefox 44+'s deprecation warning with unprefixed version.
+ console.warn('navigator.getUserMedia has been replaced by ' +
+ 'navigator.mediaDevices.getUserMedia');
+ navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
+ };
+};
+
+},{"../utils":209}],208:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+'use strict';
+var safariShim = {
+ // TODO: DrAlex, should be here, double check against LayoutTests
+ // shimOnTrack: function() { },
+
+ // TODO: once the back-end for the mac port is done, add.
+ // TODO: check for webkitGTK+
+ // shimPeerConnection: function() { },
+
+ shimGetUserMedia: function() {
+ navigator.getUserMedia = navigator.webkitGetUserMedia;
+ }
+};
+
+// Expose public methods.
+module.exports = {
+ shimGetUserMedia: safariShim.shimGetUserMedia
+ // TODO
+ // shimOnTrack: safariShim.shimOnTrack,
+ // shimPeerConnection: safariShim.shimPeerConnection
+};
+
+},{}],209:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var logDisabled_ = true;
+
+// Utility methods.
+var utils = {
+ disableLog: function(bool) {
+ if (typeof bool !== 'boolean') {
+ return new Error('Argument type: ' + typeof bool +
+ '. Please use a boolean.');
+ }
+ logDisabled_ = bool;
+ return (bool) ? 'adapter.js logging disabled' :
+ 'adapter.js logging enabled';
+ },
+
+ log: function() {
+ if (typeof window === 'object') {
+ if (logDisabled_) {
+ return;
+ }
+ if (typeof console !== 'undefined' && typeof console.log === 'function') {
+ console.log.apply(console, arguments);
+ }
+ }
+ },
+
+ /**
+ * Extract browser version out of the provided user agent string.
+ *
+ * @param {!string} uastring userAgent string.
+ * @param {!string} expr Regular expression used as match criteria.
+ * @param {!number} pos position in the version string to be returned.
+ * @return {!number} browser version.
+ */
+ extractVersion: function(uastring, expr, pos) {
+ var match = uastring.match(expr);
+ return match && match.length >= pos && parseInt(match[pos], 10);
+ },
+
+ /**
+ * Browser detector.
+ *
+ * @return {object} result containing browser and version
+ * properties.
+ */
+ detectBrowser: function() {
+ // Returned result object.
+ var result = {};
+ result.browser = null;
+ result.version = null;
+
+ // Fail early if it's not a browser
+ if (typeof window === 'undefined' || !window.navigator) {
+ result.browser = 'Not a browser.';
+ return result;
+ }
+
+ // Firefox.
+ if (navigator.mozGetUserMedia) {
+ result.browser = 'firefox';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Firefox\/([0-9]+)\./, 1);
+
+ // all webkit-based browsers
+ } else if (navigator.webkitGetUserMedia) {
+ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now
+ if (window.webkitRTCPeerConnection) {
+ result.browser = 'chrome';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Chrom(e|ium)\/([0-9]+)\./, 2);
+
+ // Safari or unknown webkit-based
+ // for the time being Safari has support for MediaStreams but not webRTC
+ } else {
+ // Safari UA substrings of interest for reference:
+ // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
+ // - safari UI version: Version/9.0.3 (unique to Safari)
+ // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
+ //
+ // if the webkit version and safari UI webkit versions are equals,
+ // ... this is a stable version.
+ //
+ // only the internal webkit version is important today to know if
+ // media streams are supported
+ //
+ if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
+ result.browser = 'safari';
+ result.version = this.extractVersion(navigator.userAgent,
+ /AppleWebKit\/([0-9]+)\./, 1);
+
+ // unknown webkit-based browser
+ } else {
+ result.browser = 'Unsupported webkit-based browser ' +
+ 'with GUM support but no WebRTC support.';
+ return result;
+ }
+ }
+
+ // Edge.
+ } else if (navigator.mediaDevices &&
+ navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
+ result.browser = 'edge';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Edge\/(\d+).(\d+)$/, 2);
+
+ // Default fallthrough: not supported.
+ } else {
+ result.browser = 'Not a supported browser.';
+ return result;
+ }
+
+ return result;
+ }
+};
+
+// Export.
+module.exports = {
+ log: utils.log,
+ disableLog: utils.disableLog,
+ browserDetails: utils.detectBrowser(),
+ extractVersion: utils.extractVersion
+};
+
+},{}],210:[function(require,module,exports){
+// created by @HenrikJoreteg
+var prefix;
+var version;
+
+if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) {
+ prefix = 'moz';
+ version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
+} else if (window.webkitRTCPeerConnection || navigator.webkitGetUserMedia) {
+ prefix = 'webkit';
+ version = navigator.userAgent.match(/Chrom(e|ium)/) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10);
}
-util.inherits(SaxLtx, events.EventEmitter)
+var PC = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
+var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
+var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
+var MediaStream = window.webkitMediaStream || window.MediaStream;
+var screenSharing = window.location.protocol === 'https:' &&
+ ((prefix === 'webkit' && version >= 26) ||
+ (prefix === 'moz' && version >= 33))
+var AudioContext = window.AudioContext || window.webkitAudioContext;
+var videoEl = document.createElement('video');
+var supportVp8 = videoEl && videoEl.canPlayType && videoEl.canPlayType('video/webm; codecs="vp8", vorbis') === "probably";
+var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia || navigator.mozGetUserMedia;
+
+// export support flags and constructors.prototype && PC
+module.exports = {
+ prefix: prefix,
+ browserVersion: version,
+ support: !!PC && supportVp8 && !!getUserMedia,
+ // new support style
+ supportRTCPeerConnection: !!PC,
+ supportVp8: supportVp8,
+ supportGetUserMedia: !!getUserMedia,
+ supportDataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
+ supportWebAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
+ supportMediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
+ supportScreenSharing: !!screenSharing,
+ // old deprecated style. Dont use this anymore
+ dataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
+ webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
+ mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
+ screenSharing: !!screenSharing,
+ // constructors
+ AudioContext: AudioContext,
+ PeerConnection: PC,
+ SessionDescription: SessionDescription,
+ IceCandidate: IceCandidate,
+ MediaStream: MediaStream,
+ getUserMedia: getUserMedia
+};
+
+},{}],211:[function(require,module,exports){
+/*
+WildEmitter.js is a slim little event emitter by @henrikjoreteg largely based
+on @visionmedia's Emitter from UI Kit.
+
+Why? I wanted it standalone.
+
+I also wanted support for wildcard emitters like this:
+
+emitter.on('*', function (eventName, other, event, payloads) {
+
+});
+
+emitter.on('somenamespace*', function (eventName, payloads) {
+
+});
+
+Please note that callbacks triggered by wildcard registered events also get
+the event name as the first argument.
+*/
+
+module.exports = WildEmitter;
+
+function WildEmitter() { }
+
+WildEmitter.mixin = function (constructor) {
+ var prototype = constructor.prototype || constructor;
+
+ prototype.isWildEmitter= true;
+
+ // Listen on the given `event` with `fn`. Store a group name if present.
+ prototype.on = function (event, groupName, fn) {
+ this.callbacks = this.callbacks || {};
+ var hasGroup = (arguments.length === 3),
+ group = hasGroup ? arguments[1] : undefined,
+ func = hasGroup ? arguments[2] : arguments[1];
+ func._groupName = group;
+ (this.callbacks[event] = this.callbacks[event] || []).push(func);
+ return this;
+ };
+
+ // Adds an `event` listener that will be invoked a single
+ // time then automatically removed.
+ prototype.once = function (event, groupName, fn) {
+ var self = this,
+ hasGroup = (arguments.length === 3),
+ group = hasGroup ? arguments[1] : undefined,
+ func = hasGroup ? arguments[2] : arguments[1];
+ function on() {
+ self.off(event, on);
+ func.apply(this, arguments);
+ }
+ this.on(event, group, on);
+ return this;
+ };
+
+ // Unbinds an entire group
+ prototype.releaseGroup = function (groupName) {
+ this.callbacks = this.callbacks || {};
+ var item, i, len, handlers;
+ for (item in this.callbacks) {
+ handlers = this.callbacks[item];
+ for (i = 0, len = handlers.length; i < len; i++) {
+ if (handlers[i]._groupName === groupName) {
+ //console.log('removing');
+ // remove it and shorten the array we're looping through
+ handlers.splice(i, 1);
+ i--;
+ len--;
+ }
+ }
+ }
+ return this;
+ };
+
+ // Remove the given callback for `event` or all
+ // registered callbacks.
+ prototype.off = function (event, fn) {
+ this.callbacks = this.callbacks || {};
+ var callbacks = this.callbacks[event],
+ i;
+
+ if (!callbacks) return this;
+
+ // remove all handlers
+ if (arguments.length === 1) {
+ delete this.callbacks[event];
+ return this;
+ }
+
+ // remove specific handler
+ i = callbacks.indexOf(fn);
+ callbacks.splice(i, 1);
+ if (callbacks.length === 0) {
+ delete this.callbacks[event];
+ }
+ return this;
+ };
+
+ /// Emit `event` with the given args.
+ // also calls any `*` handlers
+ prototype.emit = function (event) {
+ this.callbacks = this.callbacks || {};
+ var args = [].slice.call(arguments, 1),
+ callbacks = this.callbacks[event],
+ specialCallbacks = this.getWildcardCallbacks(event),
+ i,
+ len,
+ item,
+ listeners;
+
+ if (callbacks) {
+ listeners = callbacks.slice();
+ for (i = 0, len = listeners.length; i < len; ++i) {
+ if (!listeners[i]) {
+ break;
+ }
+ listeners[i].apply(this, args);
+ }
+ }
+
+ if (specialCallbacks) {
+ len = specialCallbacks.length;
+ listeners = specialCallbacks.slice();
+ for (i = 0, len = listeners.length; i < len; ++i) {
+ if (!listeners[i]) {
+ break;
+ }
+ listeners[i].apply(this, [event].concat(args));
+ }
+ }
+
+ return this;
+ };
+
+ // Helper for for finding special wildcard event handlers that match the event
+ prototype.getWildcardCallbacks = function (eventName) {
+ this.callbacks = this.callbacks || {};
+ var item,
+ split,
+ result = [];
+
+ for (item in this.callbacks) {
+ split = item.split('*');
+ if (item === '*' || (split.length === 2 && eventName.slice(0, split[0].length) === split[0])) {
+ result = result.concat(this.callbacks[item]);
+ }
+ }
+ return result;
+ };
+
+};
+
+WildEmitter.mixin(WildEmitter);
+
+},{}],212:[function(require,module,exports){
+module.exports = {
+ Namespace: require('./lib/namespaces'),
+ MUC: require('./lib/muc'),
+ PubSub: require('./lib/pubsub'),
+ Jingle: require('./lib/jingle'),
+ Presence: require('./lib/presence')
+};
+
+},{"./lib/jingle":213,"./lib/muc":214,"./lib/namespaces":215,"./lib/presence":216,"./lib/pubsub":217}],213:[function(require,module,exports){
+module.exports = {
+ Action: {
+ CONTENT_ACCEPT: 'content-accept',
+ CONTENT_ADD: 'content-add',
+ CONTENT_MODIFY: 'content-modify',
+ CONTENT_REJECT: 'content-reject',
+ CONTENT_REMOVE: 'content-remove',
+ DESCRIPTION_INFO: 'description-info',
+ SECURITY_INFO: 'security-info',
+ SESSION_ACCEPT: 'session-accept',
+ SESSION_INFO: 'session-info',
+ SESSION_INITIATE: 'session-initiate',
+ SESSION_TERMINATE: 'session-terminate',
+ TRANSPORT_ACCEPT: 'transport-accept',
+ TRANSPORT_INFO: 'transport-info',
+ TRANSPORT_REJECT: 'transport-reject',
+ TRANSPORT_REPLACE: 'transport-replace'
+ },
+ Reason: {
+ ALTERNATIVE_SESSION: 'alernative-session',
+ BUSY: 'busy',
+ CANCEL: 'cancel',
+ CONNECTIVITY_ERROR: 'connectivity-error',
+ DECLINE: 'decline',
+ EXPIRED: 'expired',
+ FAILED_APPLICATION: 'failed-application',
+ FAILED_TRANSPORT: 'failed-transport',
+ GENERAL_ERROR: 'general-error',
+ GONE: 'gone',
+ INCOMPATIBLE_PARAMETERS: 'incompatible-parameters',
+ MEDIA_ERROR: 'media-error',
+ SECURITY_ERROR: 'security-error',
+ SUCCESS: 'success',
+ TIMEOUT: 'timeout',
+ UNSUPPORTED_APPLICATIONS: 'unsupported-applications',
+ UNSUPPORTED_TRANSPORTS: 'unsupported-transports'
+ },
+ Condition: {
+ OUT_OF_ORDER: 'out-of-order',
+ TIE_BREAK: 'tie-break',
+ UNKNOWN_SESSION: 'unknown-session',
+ UNSUPPORTED_INFO: 'unsupported-info'
+ }
+};
-SaxLtx.prototype.end = function(data) {
- if (data) {
- this.write(data)
+},{}],214:[function(require,module,exports){
+module.exports = {
+ Status: {
+ REALJID_PUBLIC: '100',
+ AFFILIATION_CHANGED: '101',
+ UNAVAILABLE_SHOWN: '102',
+ UNAVAILABLE_NOT_SHOWN: '103',
+ CONFIGURATION_CHANGED: '104',
+ SELF_PRESENCE: '110',
+ LOGGING_ENABLED: '170',
+ LOGGING_DISABLED: '171',
+ NON_ANONYMOUS: '172',
+ SEMI_ANONYMOUS: '173',
+ FULLY_ANONYMOUS: '174',
+ ROOM_CREATED: '201',
+ NICK_ASSIGNED: '210',
+ BANNED: '301',
+ NEW_NICK: '303',
+ KICKED: '307',
+ REMOVED_AFFILIATION: '321',
+ REMOVED_MEMBERSHIP: '322',
+ REMOVED_SHUTDOWN: '332'
+ },
+ Affiliation: {
+ ADMIN: 'admin',
+ MEMBER: 'member',
+ NONE: 'none',
+ OUTCAST: 'outcast',
+ OWNER: 'owner'
+ },
+ Role: {
+ MODERATOR: 'moderator',
+ NONE: 'none',
+ PARTICIPANT: 'participant',
+ VISITOR: 'visitor'
}
+};
+
+},{}],215:[function(require,module,exports){
+module.exports = {
+// ================================================================
+// RFCS
+// ================================================================
- /* Uh, yeah */
- this.write = function() {}
+// RFC 6120
+ BIND: 'urn:ietf:params:xml:ns:xmpp-bind',
+ CLIENT: 'jabber:client',
+ SASL: 'urn:ietf:params:xml:ns:xmpp-sasl',
+ SERVER: 'jabber:server',
+ SESSION: 'urn:ietf:params:xml:ns:xmpp-session',
+ STANZA_ERROR: 'urn:ietf:params:xml:ns:xmpp-stanzas',
+ STREAM: 'http://etherx.jabber.org/streams',
+ STREAM_ERROR: 'urn:ietf:params:xml:ns:xmpp-streams',
+
+// RFC 6121
+ ROSTER: 'jabber:iq:roster',
+ ROSTER_VERSIONING: 'urn:xmpp:features:rosterver',
+ SUBSCRIPTION_PREAPPROVAL: 'urn:xmpp:features:pre-approval',
+
+// RFC 7395
+ FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing',
+
+// ================================================================
+// XEPS
+// ================================================================
+
+// XEP-0004
+ DATAFORM: 'jabber:x:data',
+
+// XEP-0009
+ RPC: 'jabber:iq:rpc',
+
+// XEP-0012
+ LAST_ACTIVITY: 'jabber:iq:last',
+
+// XEP-0016
+ PRIVACY: 'jabber:iq:privacy',
+
+// XEP-0030
+ DISCO_INFO: 'http://jabber.org/protocol/disco#info',
+ DISCO_ITEMS: 'http://jabber.org/protocol/disco#items',
+
+// XEP-0033
+ ADDRESS: 'http://jabber.org/protocol/address',
+
+// XEP-0045
+ MUC: 'http://jabber.org/protocol/muc',
+ MUC_ADMIN: 'http://jabber.org/protocol/muc#admin',
+ MUC_OWNER: 'http://jabber.org/protocol/muc#owner',
+ MUC_USER: 'http://jabber.org/protocol/muc#user',
+
+// XEP-0047
+ IBB: 'http://jabber.org/protocol/ibb',
+
+// XEP-0048
+ BOOKMARKS: 'storage:bookmarks',
+
+// XEP-0049
+ PRIVATE: 'jabber:iq:private',
+
+// XEP-0050
+ ADHOC_COMMANDS: 'http://jabber.org/protocol/commands',
+
+// XEP-0054
+ VCARD_TEMP: 'vcard-temp',
+
+// XEP-0055
+ SEARCH: 'jabber:iq:search',
+
+// XEP-0059
+ RSM: 'http://jabber.org/protocol/rsm',
+
+// XEP-0060
+ PUBSUB: 'http://jabber.org/protocol/pubsub',
+ PUBSUB_ERRORS: 'http://jabber.org/protocol/pubsub#errors',
+ PUBSUB_EVENT: 'http://jabber.org/protocol/pubsub#event',
+ PUBSUB_OWNER: 'http://jabber.org/protocol/pubsub#owner',
+
+// XEP-0065
+ SOCKS5: 'http://jabber.org/protocol/bytestreams',
+
+// XEP-0066
+ OOB: 'jabber:x:oob',
+
+// XEP-0070
+ HTTP_AUTH: 'http://jabber.org/protocol/http-auth',
+
+// XEP-0071
+ XHTML_IM: 'http://jabber.org/protocol/xhtml-im',
+
+// XEP-0077
+ REGISTER: 'jabber:iq:register',
+
+// XEP-0079
+ AMP: 'http://jabber.org/protocol/amp',
+
+// XEP-0080
+ GEOLOC: 'http://jabber.org/protocol/geoloc',
+
+// XEP-0083
+ ROSTER_DELIMITER: 'roster:delimiter',
+
+// XEP-0084
+ AVATAR_DATA: 'urn:xmpp:avatar:data',
+ AVATAR_METADATA: 'urn:xmpp:avatar:metadata',
+
+// XEP-0085
+ CHAT_STATES: 'http://jabber.org/protocol/chatstates',
+
+// XEP-0092
+ VERSION: 'jabber:iq:version',
+
+// XEP-0107
+ MOOD: 'http://jabber.org/protocol/mood',
+
+// XEP-0108
+ ACTIVITY: 'http://jabber.org/protocol/activity',
+
+// XEP-0114
+ COMPONENT: 'jabber:component:accept',
+
+// XEP-0115
+ CAPS: 'http://jabber.org/protocol/caps',
+
+// XEP-0118
+ TUNE: 'http://jabber.org/protocol/tune',
+
+// XEP-0122
+ DATAFORM_VALIDATION: 'http://jabber.org/protocol/xdata-validate',
+
+// XEP-0124
+ BOSH: 'http://jabber.org/protocol/httpbind',
+
+// XEP-0131
+ SHIM: 'http://jabber.org/protocol/shim',
+
+// XEP-0138
+ COMPRESSION: 'http://jabber.org/features/compress',
+
+// XEP-0141
+ DATAFORM_LAYOUT: 'http://jabber.org/protocol/xdata-layout',
+
+// XEP-0144
+ ROSTER_EXCHANGE: 'http://jabber.org/protocol/rosterx',
+
+// XEP-0145
+ ROSTER_NOTES: 'storage:rosternotes',
+
+// XEP-0152
+ REACH_0: 'urn:xmpp:reach:0',
+
+// XEP-0153
+ VCARD_TEMP_UPDATE: 'vcard-temp:x:update',
+
+// XEP-0158
+ CAPTCHA: 'urn:xmpp:captcha',
+
+// XEP-0166
+ JINGLE_1: 'urn:xmpp:jingle:1',
+ JINGLE_ERRORS_1: 'urn:xmpp:jingle:errors:1',
+
+// XEP-0167
+ JINGLE_RTP_1: 'urn:xmpp:jingle:apps:rtp:1',
+ JINGLE_RTP_ERRORS_1: 'urn:xmpp:jingle:apps:rtp:errors:1',
+ JINGLE_RTP_INFO_1: 'urn:xmpp:jingle:apps:rtp:info:1',
+
+// XEP-0171
+ LANG_TRANS: 'urn:xmpp:langtrans',
+ LANG_TRANS_ITEMS: 'urn:xmpp:langtrans:items',
+
+// XEP-0172
+ NICK: 'http://jabber.org/protocol/nick',
+
+// XEP-0176
+ JINGLE_ICE_UDP_1: 'urn:xmpp:jingle:transports:ice-udp:1',
+
+// XEP-0177
+ JINGLE_RAW_UDP_1: 'urn:xmpp:jingle:transports:raw-udp:1',
+
+// XEP-0184
+ RECEIPTS: 'urn:xmpp:receipts',
+
+// XEP-0186
+ INVISIBLE_0: 'urn:xmpp:invisible:0',
+
+// XEP-0191
+ BLOCKING: 'urn:xmpp:blocking',
+
+// XEP-0198
+ SMACKS_3: 'urn:xmpp:sm:3',
+
+// XEP-0199
+ PING: 'urn:xmpp:ping',
+
+// XEP-0202
+ TIME: 'urn:xmpp:time',
+
+// XEP-0203
+ DELAY: 'urn:xmpp:delay',
+
+// XEP-0206
+ BOSH_XMPP: 'urn:xmpp:xbosh',
+
+// XEP-0215
+ DISCO_EXTERNAL_1: 'urn:xmpp:extdisco:1',
+
+// XEP-0221
+ DATAFORM_MEDIA: 'urn:xmpp:media-element',
+
+// XEP-0224
+ ATTENTION_0: 'urn:xmpp:attention:0',
+
+// XEP-0231
+ BOB: 'urn:xmpp:bob',
+
+// XEP-0234
+ FILE_TRANSFER_3: 'urn:xmpp:jingle:apps:file-transfer:3',
+ FILE_TRANSFER_4: 'urn:xmpp:jingle:apps:file-transfer:4',
+
+// XEP-0249
+ MUC_DIRECT_INVITE: 'jabber:x:conference',
+
+// XEP-0258
+ SEC_LABEL_0: 'urn:xmpp:sec-label:0',
+ SEC_LABEL_CATALOG_2: 'urn:xmpp:sec-label:catalog:2',
+ SEC_LABEL_ESS_0: 'urn:xmpp:sec-label:ess:0',
+
+// XEP-0260
+ JINGLE_SOCKS5_1: 'urn:xmpp:jingle:transports:s5b:1',
+
+// XEP-0261
+ JINGLE_IBB_1: 'urn:xmpp:jingle:transports:ibb:1',
+
+// XEP-0262
+ JINGLE_RTP_ZRTP_1: 'urn:xmpp:jingle:apps:rtp:zrtp:1',
+
+// XEP-0264
+ THUMBS_0: 'urn:xmpp:thumbs:0',
+ THUMBS_1: 'urn:xmpp:thumbs:1',
+
+// XEP-0276
+ DECLOAKING_0: 'urn:xmpp:decloaking:0',
+
+// XEP-0280
+ CARBONS_2: 'urn:xmpp:carbons:2',
+
+// XEP-0293
+ JINGLE_RTP_RTCP_FB_0: 'urn:xmpp:jingle:apps:rtp:rtcp-fb:0',
+
+// XEP-0294
+ JINGLE_RTP_HDREXT_0: 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
+
+// XEP-0297
+ FORWARD_0: 'urn:xmpp:forward:0',
+
+// XEP-0300
+ HASHES_1: 'urn:xmpp:hashes:1',
+
+// XEP-0301
+ RTT_0: 'urn:xmpp:rtt:0',
+
+// XEP-0307
+ MUC_UNIQUE: 'http://jabber.org/protocol/muc#unique',
+
+// XEP-308
+ CORRECTION_0: 'urn:xmpp:message-correct:0',
+
+// XEP-0310
+ PSA: 'urn:xmpp:psa',
+
+// XEP-0313
+ MAM_TMP: 'urn:xmpp:mam:tmp',
+ MAM_0: 'urn:xmpp:mam:0',
+
+// XEP-0317
+ HATS_0: 'urn:xmpp:hats:0',
+
+// XEP-0319
+ IDLE_1: 'urn:xmpp:idle:1',
+
+// XEP-0320
+ JINGLE_DTLS_0: 'urn:xmpp:jingle:apps:dtls:0',
+
+// XEP-0328
+ JID_PREP_0: 'urn:xmpp:jidprep:0',
+
+// XEP-0334
+ HINTS: 'urn:xmpp:hints',
+
+// XEP-0335
+ JSON_0: 'urn:xmpp:json:0',
+
+// XEP-0337
+ EVENTLOG: 'urn:xmpp:eventlog',
+
+// XEP-0338
+ JINGLE_GROUPING_0: 'urn:xmpp:jingle:apps:grouping:0',
+
+// XEP-0339
+ JINGLE_RTP_SSMA_0: 'urn:xmpp:jingle:apps:rtp:ssma:0',
+
+// XEP-0340
+ COLIBRI: 'http://jitsi.org/protocol/colibri',
+
+// XEP-0343
+ DTLS_SCTP_1: 'urn:xmpp:jingle:transports:dtls-sctp:1',
+
+// XEP-0352
+ CSI: 'urn:xmpp:csi',
+
+// XEP-0353
+ JINGLE_MSG_INITIATE_0: 'urn:xmpp:jingle:jingle-message:0',
+
+// XEP-0357
+ PUSH_0: 'urn:xmpp:push:0',
+
+// XEP-0358
+ JINGLE_PUB_1: 'urn:xmpp:jinglepub:1'
+};
+
+},{}],216:[function(require,module,exports){
+module.exports = {
+ Type: {
+ SUBSCRIBE: 'subscribe',
+ SUBSCRIBED: 'subscribed',
+ UNSUBSCRIBE: 'unsubscribe',
+ UNSUBSCRIBED: 'unsubscribed',
+ PROBE: 'probe',
+ UNAVAILABLE: 'unavailable'
+ },
+ Show: {
+ CHAT: 'chat',
+ AWAY: 'away',
+ DO_NOT_DISTURB: 'dnd',
+ EXTENDED_AWAY: 'xa'
+ }
+};
+
+},{}],217:[function(require,module,exports){
+module.exports = {
+ Affiliation: {
+ MEMBER: 'member',
+ NONE: 'none',
+ OUTCAST: 'outcast',
+ OWNER: 'owner',
+ PUBLISHER: 'publisher',
+ PUBLISH_ONLY: 'publish-only'
+ },
+ Subscription: {
+ NONE: 'none',
+ PENDING: 'pending',
+ UNCONFIGURED: 'unconfigured',
+ SUBSCRIBED: 'subscribed'
+ },
+ AccessModel: {
+ OPEN: 'open',
+ PRESENCE: 'presence',
+ ROSTER: 'roster',
+ AUTHORIZE: 'authorize',
+ WHITELIST: 'whitelist'
+ },
+ Condition: {
+ CONFLICT: 'conflict'
+ }
+};
+
+},{}],218:[function(require,module,exports){
+'use strict';
+
+var StringPrep = require('./lib/stringprep');
+
+// All of our StringPrep fallbacks work correctly
+// in the ASCII range, so we can reliably mark
+// ASCII-only JIDs as prepped.
+var ASCII = /^[\x00-\x7F]*$/;
+
+
+
+function bareJID(local, domain) {
+ if (local) {
+ return local + '@' + domain;
+ }
+ return domain;
}
-function unescapeXml(s) {
- return s.
- replace(/\&(amp|#38);/g, '&').
- replace(/\&(lt|#60);/g, '<').
- replace(/\&(gt|#62);/g, '>').
- replace(/\&(quot|#34);/g, '"').
- replace(/\&(apos|#39);/g, '\'').
- replace(/\&(nbsp|#160);/g, '\n')
+function fullJID(local, domain, resource) {
+ if (resource) {
+ return bareJID(local, domain) + '/' + resource;
+ }
+ return bareJID(local, domain);
}
-},{"events":6,"util":28}],249:[function(require,module,exports){
-arguments[4][120][0].apply(exports,arguments)
-},{"dup":120}],250:[function(require,module,exports){
-arguments[4][121][0].apply(exports,arguments)
-},{"./rng":249,"dup":121}],251:[function(require,module,exports){
-arguments[4][83][0].apply(exports,arguments)
-},{"dup":83}],252:[function(require,module,exports){
+
+exports.prep = function (data) {
+ var local = data.local;
+ var domain = data.domain;
+ var resource = data.resource;
+ var unescapedLocal = local;
+
+ if (local) {
+ local = StringPrep.nodeprep(local);
+ unescapedLocal = exports.unescape(local);
+ }
+
+ if (resource) {
+ resource = StringPrep.resourceprep(resource);
+ }
+
+ if (domain[domain.length - 1] === '.') {
+ domain = domain.slice(0, domain.length - 1);
+ }
+
+ domain = StringPrep.nameprep(domain.split('.').map(StringPrep.toUnicode).join('.'));
+
+ return {
+ prepped: data.prepped || StringPrep.available,
+ local: local,
+ domain: domain,
+ resource: resource,
+ bare: bareJID(local, domain),
+ full: fullJID(local, domain, resource),
+ unescapedLocal: unescapedLocal,
+ unescapedBare: bareJID(unescapedLocal, domain),
+ unescapedFull: fullJID(unescapedLocal, domain, resource)
+ };
+};
+
+exports.parse = function (jid, trusted) {
+ var local = '';
+ var domain = '';
+ var resource = '';
+
+ trusted = trusted || ASCII.test(jid);
+
+ var resourceStart = jid.indexOf('/');
+ if (resourceStart > 0) {
+ resource = jid.slice(resourceStart + 1);
+ jid = jid.slice(0, resourceStart);
+ }
+
+ var localEnd = jid.indexOf('@');
+ if (localEnd > 0) {
+ local = jid.slice(0, localEnd);
+ jid = jid.slice(localEnd + 1);
+ }
+
+ domain = jid;
+
+ var preppedJID = exports.prep({
+ local: local,
+ domain: domain,
+ resource: resource,
+ });
+
+ preppedJID.prepped = preppedJID.prepped || trusted;
+
+ return preppedJID;
+};
+
+exports.equal = function (jid1, jid2, requirePrep) {
+ jid1 = new exports.JID(jid1);
+ jid2 = new exports.JID(jid2);
+ if (arguments.length === 2) {
+ requirePrep = true;
+ }
+ return jid1.local === jid2.local &&
+ jid1.domain === jid2.domain &&
+ jid1.resource === jid2.resource &&
+ (requirePrep ? jid1.prepped && jid2.prepped : true);
+};
+
+exports.equalBare = function (jid1, jid2, requirePrep) {
+ jid1 = new exports.JID(jid1);
+ jid2 = new exports.JID(jid2);
+ if (arguments.length === 2) {
+ requirePrep = true;
+ }
+ return jid1.local === jid2.local &&
+ jid1.domain === jid2.domain &&
+ (requirePrep ? jid1.prepped && jid2.prepped : true);
+};
+
+exports.isBare = function (jid) {
+ jid = new exports.JID(jid);
+
+ var hasResource = !!jid.resource;
+
+ return !hasResource;
+};
+
+exports.isFull = function (jid) {
+ jid = new exports.JID(jid);
+
+ var hasResource = !!jid.resource;
+
+ return hasResource;
+};
+
+exports.escape = function (val) {
+ return val.replace(/^\s+|\s+$/g, '')
+ .replace(/\\5c/g, '\\5c5c')
+ .replace(/\\20/g, '\\5c20')
+ .replace(/\\22/g, '\\5c22')
+ .replace(/\\26/g, '\\5c26')
+ .replace(/\\27/g, '\\5c27')
+ .replace(/\\2f/g, '\\5c2f')
+ .replace(/\\3a/g, '\\5c3a')
+ .replace(/\\3c/g, '\\5c3c')
+ .replace(/\\3e/g, '\\5c3e')
+ .replace(/\\40/g, '\\5c40')
+ .replace(/ /g, '\\20')
+ .replace(/\"/g, '\\22')
+ .replace(/\&/g, '\\26')
+ .replace(/\'/g, '\\27')
+ .replace(/\//g, '\\2f')
+ .replace(/:/g, '\\3a')
+ .replace(/</g, '\\3c')
+ .replace(/>/g, '\\3e')
+ .replace(/@/g, '\\40');
+};
+
+exports.unescape = function (val) {
+ return val.replace(/\\20/g, ' ')
+ .replace(/\\22/g, '"')
+ .replace(/\\26/g, '&')
+ .replace(/\\27/g, '\'')
+ .replace(/\\2f/g, '/')
+ .replace(/\\3a/g, ':')
+ .replace(/\\3c/g, '<')
+ .replace(/\\3e/g, '>')
+ .replace(/\\40/g, '@')
+ .replace(/\\5c/g, '\\');
+};
+
+
+exports.create = function (local, domain, resource) {
+ return new exports.JID(local, domain, resource);
+};
+
+exports.JID = function JID(localOrJID, domain, resource) {
+ var parsed = {};
+ if (localOrJID && !domain && !resource) {
+ if (typeof localOrJID === 'string') {
+ parsed = exports.parse(localOrJID);
+ } else if (localOrJID._isJID || localOrJID instanceof exports.JID) {
+ parsed = localOrJID;
+ } else {
+ throw new Error('Invalid argument type');
+ }
+ } else if (domain) {
+ var trusted = ASCII.test(localOrJID) && ASCII.test(domain);
+ if (resource) {
+ trusted = trusted && ASCII.test(resource);
+ }
+
+ parsed = exports.prep({
+ local: exports.escape(localOrJID),
+ domain: domain,
+ resource: resource,
+ prepped: trusted
+ });
+ } else {
+ parsed = {};
+ }
+
+ this._isJID = true;
+
+ this.local = parsed.local || '';
+ this.domain = parsed.domain || '';
+ this.resource = parsed.resource || '';
+ this.bare = parsed.bare || '';
+ this.full = parsed.full || '';
+
+ this.unescapedLocal = parsed.unescapedLocal || '';
+ this.unescapedBare = parsed.unescapedBare || '';
+ this.unescapedFull = parsed.unescapedFull || '';
+
+ this.prepped = parsed.prepped;
+};
+
+exports.JID.prototype.toString = function () {
+ return this.full;
+};
+
+exports.JID.prototype.toJSON = function () {
+ return this.full;
+};
+
+},{"./lib/stringprep":219}],219:[function(require,module,exports){
+'use strict';
+
+var punycode = require('punycode');
+
+
+exports.available = false;
+
+exports.toUnicode = punycode.toUnicode;
+
+exports.nameprep = function (str) {
+ return str.toLowerCase();
+};
+
+exports.nodeprep = function (str) {
+ return str.toLowerCase();
+};
+
+exports.resourceprep = function (str) {
+ return str;
+};
+
+},{"punycode":154}],220:[function(require,module,exports){
/* jshint -W117 */
'use strict';
var JSM = require('jingle');
var RTC = require('webrtc-adapter-test');
+var GUM = require('getusermedia');
+var GSM = require('getscreenmedia');
var jxt = require('jxt').createRegistry();
jxt.use(require('jxt-xmpp-types'));
@@ -31941,11 +40060,15 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
localStream: null,
manager: null,
RTC: null,
+ getUserMedia: null,
+ getScreenMedia: null,
init: function(conn) {
var self = this;
self.RTC = RTC;
+ self.getUserMedia = GUM;
+ self.getScreenMedia = GSM;
self.connection = conn;
@@ -32022,7 +40145,7 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
return true;
},
- initiate: function(peerjid, stream) { // initiate a new jinglesession to peerjid
+ initiate: function(peerjid, stream, offerOptions) { // initiate a new jinglesession to peerjid
var session = this.manager.createMediaSession(peerjid);
session.on('change:connectionState', function(session, state) {
@@ -32036,8 +40159,7 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
// configure session
if (this.localStream) {
session.addStream(this.localStream);
- //TODO: add offer options here, instead of above in the init
- session.start();
+ session.start(offerOptions);
return session;
}
@@ -32066,7 +40188,7 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
});
}(jQuery));
-},{"jingle":29,"jxt":228,"jxt-xmpp":157,"jxt-xmpp-types":125,"webrtc-adapter-test":251}]},{},[252]);
+},{"getscreenmedia":31,"getusermedia":32,"jingle":53,"jxt":120,"jxt-xmpp":81,"jxt-xmpp-types":54,"webrtc-adapter-test":200}]},{},[220]);
/*!
@@ -39585,26 +47707,29 @@ CryptoJS.mode.CTR = (function () {
}))
/*!
- * Source: lib/i18next/release/i18next-latest.min.js, license: MIT, url: http://i18next.com/
+ * Source: lib/i18next/i18next.min.js, license: MIT, url: http://i18next.com/
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,a=r.k;i[a]=o}function r(t,e,o,r){var i=n(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(o)),r||a[s].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function a(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):a(t[o],e[o],n):t[o]=e[o];return t}function s(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return R[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n<t.length;n++)e.push(t[n]);return{postProcess:"sprintf",sprintf:e}}),t.whitelist=t.lngWhitelist,t.preload=t.preload,"current"===t.load&&(t.load="currentOnly"),"unspecific"===t.load&&(t.load="languageOnly"),t.backend=t.backend||{},t.backend.loadPath=t.resGetPath||"locales/__lng__/__ns__.json",t.backend.addPath=t.resPostPath||"locales/add/__lng__/__ns__",t.backend.allowMultiLoading=t.dynamicLoad,t.cache=t.cache||{},t.cache.prefix="res_",t.cache.expirationTime=6048e5,t.cache.enabled=!!t.useLocalStorage,t=l(t),t.defaultVariables&&(t.interpolation.defaultVariables=t.defaultVariables),t}function p(t){return t=l(t),t.joinArrays="\n",t}function f(t){return(t.interpolationPrefix||t.interpolationSuffix||t.escapeInterpolation)&&(t=l(t)),t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,t.returnObjects=t.returnObjectTrees,t}function g(t){t.lng=function(){return C.deprecate("i18next.lng() can be replaced by i18next.language for detected language or i18next.languages for languages ordered by translation lookup."),t.services.languageUtils.toResolveHierarchy(t.language)[0]},t.preload=function(e,n){C.deprecate("i18next.preload() can be replaced with i18next.loadLanguages()"),t.loadLanguages(e,n)},t.setLng=function(e,n,o){return C.deprecate("i18next.setLng() can be replaced with i18next.changeLanguage() or i18next.getFixedT() to get a translation function with fixed language or namespace."),"function"==typeof n&&(o=n,n={}),n||(n={}),n.fixLng===!0&&o?o(null,t.getFixedT(e)):void t.changeLanguage(e,o)},t.addPostProcessor=function(e,n){C.deprecate("i18next.addPostProcessor() can be replaced by i18next.use({ type: 'postProcessor', name: 'name', process: fc })"),t.use({type:"postProcessor",name:e,process:n})}}function h(t){return t.charAt(0).toUpperCase()+t.slice(1)}function d(){var t={};return T.forEach(function(e){e.lngs.forEach(function(n){return t[n]={numbers:e.nr,plurals:H[e.fc]}})}),t}function v(t,e){for(var n=t.indexOf(e);n!==-1;)t.splice(n,1),n=t.indexOf(e)}function y(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",saveMissing:!1,saveMissingTo:"fallback",missingKeyHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,overloadTranslationOptionHandler:function(t){return{defaultValue:t[1]}},interpolation:{escapeValue:!0,format:function(t,e,n){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",defaultVariables:void 0}}}function b(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.whitelist&&t.whitelist.indexOf("cimode")<0&&t.whitelist.push("cimode"),t}function m(){}var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=(function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};a?a=a.next=s:(i=a=s,o(t,e))})}function o(n,i){try{var a=e[n](i),s=a.value;s instanceof t?Promise.resolve(s.value).then(function(t){o("next",t)},function(t){o("throw",t)}):r(a.done?"return":"normal",a.value)}catch(t){r("throw",t)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?o(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof e.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},w=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},O=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},N=function(){function t(t,e){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);o=!0);}catch(t){r=!0,i=t}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),L={type:"logger",log:function(t){this._output("log",t)},warn:function(t){this._output("warn",t)},error:function(t){this._output("error",t)},_output:function(t,e){console&&console[t]&&console[t].apply(console,Array.prototype.slice.call(e))}},j=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.init(e,n)}return t.prototype.init=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||L,this.options=e,this.debug=e.debug!==!1},t.prototype.setDebug=function(t){this.debug=t},t.prototype.log=function(){this.forward(arguments,"log","",!0)},t.prototype.warn=function(){this.forward(arguments,"warn","",!0)},t.prototype.error=function(){this.forward(arguments,"error","")},t.prototype.deprecate=function(){this.forward(arguments,"warn","WARNING DEPRECATED: ",!0)},t.prototype.forward=function(t,e,n,o){o&&!this.debug||("string"==typeof t[0]&&(t[0]=n+this.prefix+" "+t[0]),this.logger[e](t))},t.prototype.create=function(e){var n=new t(this.logger,S({prefix:this.prefix+":"+e+":"},this.options));return n},t}(),C=new j,P=function(){function t(){k(this,t),this.observers={}}return t.prototype.on=function(t,e){var n=this;t.split(" ").forEach(function(t){n.observers[t]=n.observers[t]||[],n.observers[t].push(e)})},t.prototype.off=function(t,e){var n=this;this.observers[t]&&this.observers[t].forEach(function(){if(e){var o=n.observers[t].indexOf(e);o>-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];this.observers[t]&&this.observers[t].forEach(function(t){t.apply(void 0,n)}),this.observers["*"]&&this.observers["*"].forEach(function(e){var o;e.apply(e,(o=[t]).concat.apply(o,n))})},t}(),R={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},E=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};k(this,e);var r=O(this,t.call(this));return r.data=n,r.options=o,r}return w(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var a=[t,e];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split(".")),i(this.data,a)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,e];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(s=t.split("."),r=e,e=s[1]),this.addNamespaces(e),o(this.data,s,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,s){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?a(l,n,s):l=S({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?S({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(P),_={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},A=function(t){function n(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,n);var i=O(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=C.create("translator"),i}return w(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!==("undefined"==typeof e?"undefined":x(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,a=r.namespaces,s=a[a.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,S({joinArrays:!1,ns:a},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,s,i,u);var y=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(var m=0;m<b.length;m++)y.push(b[m]);else"all"===this.options.saveMissingTo?y=this.languageUtils.toResolveHierarchy(e.lng||this.language):y.push(e.lng||this.language);this.options.saveMissing&&(this.options.missingKeyHandler?this.options.missingKeyHandler(y,s,i,u):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(y,s,i,u)),this.emit("missingKey",y,s,i,u)}u=this.extendTranslation(u,i,e),v&&u===i&&this.options.appendNamespaceToMissingKey&&(u=s+":"+i),v&&this.options.parseMissingKeyHandler&&(u=this.options.parseMissingKeyHandler(u))}return u},n.prototype.extendTranslation=function(t,e,n){var o=this;n.interpolation&&this.interpolator.init(S({},n,{interpolation:S({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=S({},this.options.interpolation.defaultVariables,r)),t=this.interpolator.interpolate(t,r,this.language),t=this.interpolator.nest(t,function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return o.translate.apply(o,e)},n),n.interpolation&&this.interpolator.reset();var i=n.postProcess||this.options.postProcess,a="string"==typeof i?[i]:i;return void 0!==t&&a&&a.length&&n.applyPostProcessor!==!1&&(t=_.handle(a,t,e,n,this)),t},n.prototype.resolve=function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=void 0;return"string"==typeof t&&(t=[t]),t.forEach(function(t){if(!e.isValidLookup(o)){var r=e.extractFromKey(t,n),i=r.key,a=r.namespaces;e.options.fallbackNS&&(a=a.concat(e.options.fallbackNS));var s=void 0!==n.count&&"string"!=typeof n.count,u=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,l=n.lngs?n.lngs:e.languageUtils.toResolveHierarchy(n.lng||e.language);a.forEach(function(t){e.isValidLookup(o)||l.forEach(function(r){if(!e.isValidLookup(o)){var a=i,l=[a],c=void 0;s&&(c=e.pluralResolver.getSuffix(r,n.count)),s&&u&&l.push(a+c),u&&l.push(a+=""+e.options.contextSeparator+n.context),s&&l.push(a+=c);for(var p=void 0;p=l.pop();)e.isValidLookup(o)||(o=e.getResource(r,t,p,n))}})})}}),o},n.prototype.isValidLookup=function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)},n.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resourceStore.getResource(t,e,n,o)},n}(P),M=function(){function t(e){k(this,t),this.options=e,this.whitelist=this.options.whitelist||!1,this.logger=C.create("languageUtils")}return t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.getScriptPartFromCode=function(t){if(t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),this.formatLanguageCode(e.join("-")))},t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.getFallbackCodes=function(t,e){if(!t)return[];if("string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t.default),n||[]},t.prototype.toResolveHierarchy=function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(n.isWhitelisted(t,e)?r.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t),!0),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t),!0),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach(function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))}),r},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],H={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},U=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.languageUtils=e,this.options=n,this.logger=C.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":x(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};k(this,e),this.logger=C.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t},this.escape=t.interpolation&&t.interpolation.escape||u),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.prefix=n.prefix?s(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?s(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?s(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?s(n.nestingPrefix):n.nestingPrefixEscaped||s("$t("),this.nestingSuffix=n.nestingSuffix?s(n.nestingSuffix):n.nestingSuffixEscaped||s(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var a=this,s=void 0,u=void 0,l=function(t){if(t.indexOf(a.formatSeparator)<0)return i(n,t);var e=t.split(a.formatSeparator),r=e.shift().trim(),s=e.join(a.formatSeparator).trim();return a.format(i(n,r),s,o)};for(this.resetRegExp();s=this.regexpUnescape.exec(e);){var c=l(s[1].trim());e=e.replace(s[0],c),this.regexpUnescape.lastIndex=0}for(;s=this.regexp.exec(e);)u=l(s[1].trim()),"string"!=typeof u&&(u=t(u)),u||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),u=""),u=r(this.escapeValue?this.escape(u):u),e=e.replace(s[0],u),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,s),n=n.replace(/'/g,'"');try{s=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=void 0,a=void 0,s=JSON.parse(JSON.stringify(r));for(s.applyPostProcessor=!1;i=this.nestingRegexp.exec(e);)a=n(o.call(this,i[1].trim()),s),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+i[1]+" for interpolating "+e),a=""),e=e.replace(i[0],a),this.regexp.lastIndex=0;return e},e}(),F=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.backend=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return w(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],a=[],s=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var a=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[a]=2:o.state[a]<0||(1===o.state[a]?i.indexOf(a)<0&&i.push(a):(o.state[a]=1,n=!1,i.indexOf(a)<0&&i.push(a),r.indexOf(a)<0&&r.push(a),s.indexOf(e)<0&&s.push(e)))}),n||a.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:a,toLoadNamespaces:s}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),a=N(i,2),s=a[0],u=a[1];e&&this.emit("failedLoading",s,u,e),n&&this.store.addResourceBundle(s,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[s],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(o.emit("loaded",n.loaded),n.errors.length?n.callback(n.errors):n.callback(),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var a=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(s,u){return s&&u&&o<5?void setTimeout(function(){a.read.call(a,t,e,n,++o,2*r,i)},r):void i(s,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var a=this.queueLoad(t,e,n);return a.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(a.toLoadLanguages,a.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading",e),a.toLoad.forEach(function(n){var r=n.split("|"),a=N(r,2),s=a[0],u=a[1],l=i(e,[s,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+s+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};a.toLoad.forEach(function(e){t.call(o,e)})}()):void(a.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var a=i(r,[t,e]);if(a)n.loaded(t+"|"+e,o,a);else{var s="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,s),n.logger.error(s)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(P),I=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.cache=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("cacheConnector"),a.cache&&a.cache.init&&a.cache.init(r,i.cache,i),a}return w(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=S({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var a in r[i])if("i18nStamp"!==a){var s=r[i][a];s&&o.store.addResourceBundle(i,a,s)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(P),K=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments[1];k(this,e);var r=O(this,t.call(this));return r.options=b(n),r.services={},r.logger=C,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return w(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=S({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=S({},y(),b(p(t)),{}):this.options=S({},y(),this.options,b(t)),e||(e=m),!this.options.isClone){this.modules.logger?C.init(n(this.modules.logger),this.options):C.init(null,this.options);var r=new M(this.options);this.store=new E(this.options.resources,this.options);var i=this.services;i.logger=C,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new U(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new F(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n));
+}),i.backendConnector.on("loaded",function(t){i.cacheConnector.save()}),i.cacheConnector=new I(n(this.modules.cache),i.resourceStore,i,this.options),i.cacheConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),this.modules.languageDetector&&(i.languageDetector=n(this.modules.languageDetector),i.languageDetector.init(i,this.options.detection,this.options)),this.translator=new A(this.services,this.options),this.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))})}var a=["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle"];a.forEach(function(t){o[t]=function(){return this.store[t].apply(this.store,arguments)}}),"v1"===this.options.compatibilityAPI&&g(this);var s=function(){o.changeLanguage(o.options.lng,function(t,n){o.isInitialized=!0,o.emit("initialized",o.options),o.logger.log("initialized",o.options),e(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),this},e.prototype.loadResources=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;if(this.options.resources)e(null);else{var n=function(){if(t.language&&"cimode"===t.language.toLowerCase())return{v:e()};var n=[],o=function(e){var o=t.services.languageUtils.toResolveHierarchy(e);o.forEach(function(t){n.indexOf(t)<0&&n.push(t)})};o(t.language),t.options.preload&&t.options.preload.forEach(function(t){o(t)}),t.services.cacheConnector.load(n,t.options.ns,function(){t.services.backendConnector.load(n,t.options.ns,e)})}();if("object"===("undefined"==typeof n?"undefined":x(n)))return n.v}},e.prototype.reloadResources=function(t,e){t||(t=this.languages),e||(e=this.options.ns),this.services.backendConnector.reload(t,e)},e.prototype.use=function(t){return"backend"===t.type&&(this.modules.backend=t),"cache"===t.type&&(this.modules.cache=t),("logger"===t.type||t.log&&t.warn&&t.warn)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"postProcessor"===t.type&&_.addPostProcessor(t),this},e.prototype.changeLanguage=function(t,e){var n=this,o=function(o){t&&(n.emit("languageChanged",t),n.logger.log("languageChanged",t)),e&&e(o,function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.t.apply(n,e)})};!t&&this.services.languageDetector&&(t=this.services.languageDetector.detect()),t&&(this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(function(t){o(t)})},e.prototype.getFixedT=function(t,e){var n=this,o=function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=S({},o);return r.lng=r.lng||t.lng,r.ns=r.ns||t.ns,n.t(e,r)};return o.lng=t,o.ns=e,o},e.prototype.t=function(){return this.translator&&this.translator.translate.apply(this.translator,arguments)},e.prototype.exists=function(){return this.translator&&this.translator.exists.apply(this.translator,arguments)},e.prototype.setDefaultNamespace=function(t){this.options.defaultNS=t},e.prototype.loadNamespaces=function(t,e){var n=this;return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach(function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)}),void this.loadResources(e)):e&&e()},e.prototype.loadLanguages=function(t,e){"string"==typeof t&&(t=[t]);var n=this.options.preload||[],o=t.filter(function(t){return n.indexOf(t)<0});return o.length?(this.options.preload=n.concat(o),void this.loadResources(e)):e()},e.prototype.dir=function(t){if(t||(t=this.language),!t)return"rtl";var e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"];return e.indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=new e(S({},n,this.options,{isClone:!0}),o),i=["store","services","language"];return i.forEach(function(e){r[e]=t[e]}),r.translator=new A(r.services,r.options),r.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];r.emit.apply(r,[t].concat(n))}),r},e}(P),D=new K;return D});
+
+
+/*!
+ * Source: lib/jquery-i18next/jquery-i18next.min.js, license: MIT, url: http://i18next.com/
*/
-// i18next, v1.7.7
-// Copyright (c)2014 Jan Mühlemann (jamuhl).
-// Distributed under MIT license
-// http://i18next.com
-!function(){function a(a,b){if(!b||"function"==typeof b)return a;for(var c in b)a[c]=b[c];return a}function b(a,c){for(var d in c)d in a?b(a[d],c[d]):a[d]=c[d];return a}function c(a,b,c){var d,e=0,f=a.length,g=void 0===f||"[object Array]"!==Object.prototype.toString.apply(a)||"function"==typeof a;if(c)if(g){for(d in a)if(b.apply(a[d],c)===!1)break}else for(;f>e&&b.apply(a[e++],c)!==!1;);else if(g){for(d in a)if(b.call(a[d],d,a[d])===!1)break}else for(;f>e&&b.call(a[e],e,a[e++])!==!1;);return a}function d(a){return"string"==typeof a?a.replace(/[&<>"'\/]/g,function(a){return Q[a]}):a}function e(a){var b=function(a){if(window.XMLHttpRequest)return a(null,new XMLHttpRequest);if(window.ActiveXObject)try{return a(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(b){return a(null,new ActiveXObject("Microsoft.XMLHTTP"))}return a(new Error)},c=function(a){if("string"==typeof a)return a;var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.join("&")},d=function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(192|d>>6),b+=String.fromCharCode(128|63&d)):(b+=String.fromCharCode(224|d>>12),b+=String.fromCharCode(128|63&d>>6),b+=String.fromCharCode(128|63&d))}return b},e=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a=d(a);var c,e,f,g,h,i,j,k="",l=0;do c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k+=b.charAt(g)+b.charAt(h)+b.charAt(i)+b.charAt(j),c=e=f="",g=h=i=j="";while(l<a.length);return k},f=function(){for(var a=arguments[0],b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}return a},g=function(a,d,e,h){"function"==typeof e&&(h=e,e={}),e.cache=e.cache||!1,e.data=e.data||{},e.headers=e.headers||{},e.jsonp=e.jsonp||!1,e.async=void 0===e.async?!0:e.async;var i,j=f({accept:"*/*","content-type":"application/x-www-form-urlencoded;charset=UTF-8"},g.headers,e.headers);if(i="application/json"===j["content-type"]?JSON.stringify(e.data):c(e.data),"GET"===a){var k=[];if(i&&(k.push(i),i=null),e.cache||k.push("_="+(new Date).getTime()),e.jsonp&&(k.push("callback="+e.jsonp),k.push("jsonp="+e.jsonp)),k=k.join("&"),k.length>1&&(d+=d.indexOf("?")>-1?"&"+k:"?"+k),e.jsonp){var l=document.getElementsByTagName("head")[0],m=document.createElement("script");return m.type="text/javascript",m.src=d,l.appendChild(m),void 0}}b(function(b,c){if(b)return h(b);c.open(a,d,e.async);for(var f in j)j.hasOwnProperty(f)&&c.setRequestHeader(f,j[f]);c.onreadystatechange=function(){if(4===c.readyState){var a=c.responseText||"";if(!h)return;h(c.status,{text:function(){return a},json:function(){try{return JSON.parse(a)}catch(b){return T.error("Can not parse JSON. URL: "+d),{}}}})}},c.send(i)})},h={authBasic:function(a,b){g.headers.Authorization="Basic "+e(a+":"+b)},connect:function(a,b,c){return g("CONNECT",a,b,c)},del:function(a,b,c){return g("DELETE",a,b,c)},get:function(a,b,c){return g("GET",a,b,c)},head:function(a,b,c){return g("HEAD",a,b,c)},headers:function(a){g.headers=a||{}},isAllowed:function(a,b,c){this.options(a,function(a,d){c(-1!==d.text().indexOf(b))})},options:function(a,b,c){return g("OPTIONS",a,b,c)},patch:function(a,b,c){return g("PATCH",a,b,c)},post:function(a,b,c){return g("POST",a,b,c)},put:function(a,b,c){return g("PUT",a,b,c)},trace:function(a,b,c){return g("TRACE",a,b,c)}},i=a.type?a.type.toLowerCase():"get";h[i](a.url,a,function(b,c){200===b||0===b&&c.text()?a.success(c.json(),b,null):a.error(c.text(),b,null)})}function f(a,b){"function"==typeof a&&(b=a,a={}),a=a||{},T.extend(P,a),delete P.fixLng,P.functions&&(delete P.functions,T.extend(T,a.functions)),"string"==typeof P.ns&&(P.ns={namespaces:[P.ns],defaultNs:P.ns}),"string"==typeof P.fallbackNS&&(P.fallbackNS=[P.fallbackNS]),("string"==typeof P.fallbackLng||"boolean"==typeof P.fallbackLng)&&(P.fallbackLng=[P.fallbackLng]),P.interpolationPrefixEscaped=T.regexEscape(P.interpolationPrefix),P.interpolationSuffixEscaped=T.regexEscape(P.interpolationSuffix),P.lng||(P.lng=T.detectLanguage()),L=T.toLanguages(P.lng),F=L[0],T.log("currentLng set to: "+F),P.useCookie&&T.cookie.read(P.cookieName)!==F&&T.cookie.create(P.cookieName,F,P.cookieExpirationTime,P.cookieDomain),P.detectLngFromLocalStorage&&"undefined"!=typeof document&&window.localStorage&&T.localStorage.setItem("i18next_lng",F);var c=z;a.fixLng&&(c=function(a,b){return b=b||{},b.lng=b.lng||c.lng,z(a,b)},c.lng=F),W.setCurrentLng(F),H&&P.setJqueryExt&&s();var d;if(H&&H.Deferred&&(d=H.Deferred()),!P.resStore){var e=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var f=0,g=P.preload.length;g>f;f++)for(var h=T.toLanguages(P.preload[f]),i=0,j=h.length;j>i;i++)e.indexOf(h[i])<0&&e.push(h[i]);return I.sync.load(e,P,function(a,e){J=e,M=!0,b&&b(c),d&&d.resolve(c)}),d?d.promise():void 0}return J=P.resStore,M=!0,b&&b(c),d&&d.resolve(c),d?d.promise():void 0}function g(a,b){"string"==typeof a&&(a=[a]);for(var c=0,d=a.length;d>c;c++)P.preload.indexOf(a[c])<0&&P.preload.push(a[c]);return f(b)}function h(a,b,c,d){"string"!=typeof b?(c=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{},d?T.deepExtend(J[a][b],c):T.extend(J[a][b],c)}function i(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{};var c=J[a][b]||{},d=!1;for(var e in c)c.hasOwnProperty(e)&&(d=!0);return d}function j(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{},J[a][b]={}}function k(a,b,c,d){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{};for(var e=c.split(P.keyseparator),f=0,g=J[a][b];e[f];)f==e.length-1?g[e[f]]=d:(null==g[e[f]]&&(g[e[f]]={}),g=g[e[f]]),f++}function l(a,b,c){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b);for(var d in c)"string"==typeof c[d]&&k(a,b,d,c[d])}function m(a){P.ns.defaultNs=a}function n(a,b){o([a],b)}function o(a,b){var c={dynamicLoad:P.dynamicLoad,resGetPath:P.resGetPath,getAsync:P.getAsync,customLoad:P.customLoad,ns:{namespaces:a,defaultNs:""}},d=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var e=0,f=P.preload.length;f>e;e++)for(var g=T.toLanguages(P.preload[e]),h=0,i=g.length;i>h;h++)d.indexOf(g[h])<0&&d.push(g[h]);for(var j=[],k=0,l=d.length;l>k;k++){var m=!1,n=J[d[k]];if(n)for(var o=0,p=a.length;p>o;o++)n[a[o]]||(m=!0);else m=!0;m&&j.push(d[k])}j.length?I.sync._fetch(j,c,function(c,d){var e=a.length*j.length;T.each(a,function(a,c){P.ns.namespaces.indexOf(c)<0&&P.ns.namespaces.push(c),T.each(j,function(a,f){J[f]=J[f]||{},J[f][c]=d[f][c],e--,0===e&&b&&(P.useLocalStorage&&I.sync._storeLocal(J),b())})})}):b&&b()}function p(a,b,c){return"function"==typeof b?(c=b,b={}):b||(b={}),b.lng=a,f(b,c)}function q(){return F}function r(a){J={},p(F,a)}function s(){function a(a,b,c){if(0!==b.length){var d="text";if(0===b.indexOf("[")){var e=b.split("]");b=e[1],d=e[0].substr(1,e[0].length-1)}b.indexOf(";")===b.length-1&&(b=b.substr(0,b.length-2));var f;if("html"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.html(H.t(b,f));else if("text"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.text()},c):c,a.text(H.t(b,f));else if("prepend"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.prepend(H.t(b,f));else if("append"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.append(H.t(b,f));else if(0===d.indexOf("data-")){var g=d.substr("data-".length);f=P.defaultValueFromContent?H.extend({defaultValue:a.data(g)},c):c;var h=H.t(b,f);a.data(g,h),a.attr(d,h)}else f=P.defaultValueFromContent?H.extend({defaultValue:a.attr(d)},c):c,a.attr(d,H.t(b,f))}}function b(b,c){var d=b.attr(P.selectorAttr);if(d||"undefined"==typeof d||d===!1||(d=b.text()||b.val()),d){var e=b,f=b.data("i18n-target");if(f&&(e=b.find(f)||b),c||P.useDataAttrOptions!==!0||(c=b.data("i18n-options")),c=c||{},d.indexOf(";")>=0){var g=d.split(";");H.each(g,function(b,d){""!==d&&a(e,d,c)})}else a(e,d,c);P.useDataAttrOptions===!0&&b.data("i18n-options",c)}}H.t=H.t||z,H.fn.i18n=function(a){return this.each(function(){b(H(this),a);var c=H(this).find("["+P.selectorAttr+"]");c.each(function(){b(H(this),a)})})}}function t(a,b,c,d){if(!a)return a;if(d=d||b,a.indexOf(d.interpolationPrefix||P.interpolationPrefix)<0)return a;var e=d.interpolationPrefix?T.regexEscape(d.interpolationPrefix):P.interpolationPrefixEscaped,f=d.interpolationSuffix?T.regexEscape(d.interpolationSuffix):P.interpolationSuffixEscaped,g="HTML"+f,h=b.replace&&"object"==typeof b.replace?b.replace:b;return T.each(h,function(b,h){var i=c?c+P.keyseparator+b:b;"object"==typeof h&&null!==h?a=t(a,h,i,d):d.escapeInterpolation||P.escapeInterpolation?(a=a.replace(new RegExp([e,i,g].join(""),"g"),T.regexReplacementEscape(h)),a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(T.escape(h)))):a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(h))}),a}function u(a,b){var c=",",d="{",e="}",f=T.extend({},b);for(delete f.postProcess;-1!=a.indexOf(P.reusePrefix)&&(K++,!(K>P.maxRecursion));){var g=a.lastIndexOf(P.reusePrefix),h=a.indexOf(P.reuseSuffix,g)+P.reuseSuffix.length,i=a.substring(g,h),j=i.replace(P.reusePrefix,"").replace(P.reuseSuffix,"");if(g>=h)return T.error("there is an missing closing in following translation value",a),"";if(-1!=j.indexOf(c)){var k=j.indexOf(c);if(-1!=j.indexOf(d,k)&&-1!=j.indexOf(e,k)){var l=j.indexOf(d,k),m=j.indexOf(e,l)+e.length;try{f=T.extend(f,JSON.parse(j.substring(l,m))),j=j.substring(0,k)}catch(n){}}}var o=C(j,f);a=a.replace(i,T.regexReplacementEscape(o))}return a}function v(a){return a.context&&("string"==typeof a.context||"number"==typeof a.context)}function w(a){return void 0!==a.count&&"string"!=typeof a.count}function x(a){return void 0!==a.indefinite_article&&"string"!=typeof a.indefinite_article&&a.indefinite_article}function y(a,b){b=b||{};var c=A(a,b),d=D(a,b);return void 0!==d||d===c}function z(a,b){return b=b||{},M?(K=0,C.apply(null,arguments)):(T.log("i18next not finished initialization. you might have called t function before loading resources finished."),b.defaultValue||"")}function A(a,b){return void 0!==b.defaultValue?b.defaultValue:a}function B(){for(var a=[],b=1;b<arguments.length;b++)a.push(arguments[b]);return{postProcess:"sprintf",sprintf:a}}function C(a,b){if(b&&"object"!=typeof b?"sprintf"===P.shortcutFunction?b=B.apply(null,arguments):"defaultValue"===P.shortcutFunction&&(b={defaultValue:b}):b=b||{},"object"==typeof P.defaultVariables&&(b=T.extend({},P.defaultVariables,b)),void 0===a||null===a||""===a)return"";"string"==typeof a&&(a=[a]);var c=a[0];if(a.length>1)for(var d=0;d<a.length&&(c=a[d],!y(c,b));d++);var e,f=A(c,b),g=D(c,b),h=b.lng?T.toLanguages(b.lng,b.fallbackLng):L,i=b.ns||P.ns.defaultNs;c.indexOf(P.nsseparator)>-1&&(e=c.split(P.nsseparator),i=e[0],c=e[1]),void 0===g&&P.sendMissing&&"function"==typeof P.missingKeyHandler&&(b.lng?P.missingKeyHandler(h[0],i,c,f,h):P.missingKeyHandler(P.lng,i,c,f,h));var j=b.postProcess||P.postProcess;void 0!==g&&j&&X[j]&&(g=X[j](g,c,b));var k=f;if(f.indexOf(P.nsseparator)>-1&&(e=f.split(P.nsseparator),k=e[1]),k===c&&P.parseMissingKey&&(f=P.parseMissingKey(f)),void 0===g&&(f=t(f,b),f=u(f,b),j&&X[j])){var l=A(c,b);g=X[j](l,c,b)}return void 0!==g?g:f}function D(a,b){b=b||{};var c,d,e=A(a,b),f=L;if(!J)return e;if("cimode"===f[0].toLowerCase())return e;if(b.lngs&&(f=b.lngs),b.lng&&(f=T.toLanguages(b.lng,b.fallbackLng),!J[f[0]])){var g=P.getAsync;P.getAsync=!1,I.sync.load(f,P,function(a,b){T.extend(J,b),P.getAsync=g})}var h=b.ns||P.ns.defaultNs;if(a.indexOf(P.nsseparator)>-1){var i=a.split(P.nsseparator);h=i[0],a=i[1]}if(v(b)){c=T.extend({},b),delete c.context,c.defaultValue=P.contextNotFound;var j=h+P.nsseparator+a+"_"+b.context;if(d=z(j,c),d!=P.contextNotFound)return t(d,{context:b.context})}if(w(b,f[0])){c=T.extend({lngs:[f[0]]},b),delete c.count,delete c.lng,c.defaultValue=P.pluralNotFound;var k;if(W.needsPlural(f[0],b.count)){k=h+P.nsseparator+a+P.pluralSuffix;var l=W.get(f[0],b.count);l>=0?k=k+"_"+l:1===l&&(k=h+P.nsseparator+a)}else k=h+P.nsseparator+a;if(d=z(k,c),d!=P.pluralNotFound)return t(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});if(!(f.length>1))return d;var m=f.slice();if(m.shift(),b=T.extend(b,{lngs:m}),delete b.lng,d=z(h+P.nsseparator+a,b),d!=P.pluralNotFound)return d}if(x(b)){var n=T.extend({},b);delete n.indefinite_article,n.defaultValue=P.indefiniteNotFound;var o=h+P.nsseparator+a+(b.count&&!w(b,f[0])||!b.count?P.indefiniteSuffix:"");if(d=z(o,n),d!=P.indefiniteNotFound)return d}for(var p,q=a.split(P.keyseparator),r=0,s=f.length;s>r&&void 0===p;r++){for(var y=f[r],B=0,E=J[y]&&J[y][h];q[B];)E=E&&E[q[B]],B++;if(void 0!==E){var F=Object.prototype.toString.apply(E);if("string"==typeof E)E=t(E,b),E=u(E,b);else if("[object Array]"!==F||P.returnObjectTrees||b.returnObjectTrees){if(null===E&&P.fallbackOnNull===!0)E=void 0;else if(null!==E)if(P.returnObjectTrees||b.returnObjectTrees){if("[object Number]"!==F&&"[object Function]"!==F&&"[object RegExp]"!==F){var G="[object Array]"===F?[]:{};T.each(E,function(c){G[c]=C(h+P.nsseparator+a+P.keyseparator+c,b)}),E=G}}else P.objectTreeKeyHandler&&"function"==typeof P.objectTreeKeyHandler?E=P.objectTreeKeyHandler(a,E,y,h,b):(E="key '"+h+":"+a+" ("+y+")' "+"returned an object instead of string.",T.log(E))}else E=E.join("\n"),E=t(E,b),E=u(E,b);"string"==typeof E&&""===E.trim()&&P.fallbackOnEmpty===!0&&(E=void 0),p=E}}if(void 0===p&&!b.isFallbackLookup&&(P.fallbackToDefaultNS===!0||P.fallbackNS&&P.fallbackNS.length>0)){if(b.isFallbackLookup=!0,P.fallbackNS.length){for(var H=0,K=P.fallbackNS.length;K>H;H++)if(p=D(P.fallbackNS[H]+P.nsseparator+a,b),p||""===p&&P.fallbackOnEmpty===!1){var M=p.indexOf(P.nsseparator)>-1?p.split(P.nsseparator)[1]:p,N=e.indexOf(P.nsseparator)>-1?e.split(P.nsseparator)[1]:e;if(M!==N)break}}else p=D(a,b);b.isFallbackLookup=!1}return p}function E(){var a,b=P.lngWhitelist||[],c=[];if("undefined"!=typeof window&&!function(){for(var a=window.location.search.substring(1),b=a.split("&"),d=0;d<b.length;d++){var e=b[d].indexOf("=");if(e>0){var f=b[d].substring(0,e);f==P.detectLngQS&&c.push(b[d].substring(e+1))}}}(),P.useCookie&&"undefined"!=typeof document){var d=T.cookie.read(P.cookieName);d&&c.push(d)}if(P.detectLngFromLocalStorage&&"undefined"!=typeof window&&window.localStorage&&c.push(window.localStorage.getItem("i18next_lng")),"undefined"!=typeof navigator){if(navigator.languages)for(var e=0;e<navigator.languages.length;e++)c.push(navigator.languages[e]);navigator.userLanguage&&c.push(navigator.userLanguage),navigator.language&&c.push(navigator.language)}return function(){for(var d=0;d<c.length;d++){var e=c[d];if(e.indexOf("-")>-1){var f=e.split("-");e=P.lowerCaseLng?f[0].toLowerCase()+"-"+f[1].toLowerCase():f[0].toLowerCase()+"-"+f[1].toUpperCase()}if(0===b.length||b.indexOf(e)>-1){a=e;break}}}(),a||(a=P.fallbackLng[0]),a}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var F,G=this,H=G.jQuery||G.Zepto,I={},J={},K=0,L=[],M=!1,N={};if("undefined"!=typeof module&&module.exports){if(!H)try{H=require("jquery")}catch(O){}H&&(H.i18n=H.i18n||I),module.exports=I}else H&&(H.i18n=H.i18n||I),G.i18n=G.i18n||I;N={load:function(a,b,c){b.useLocalStorage?N._loadLocal(a,b,function(d,e){for(var f=[],g=0,h=a.length;h>g;g++)e[a[g]]||f.push(a[g]);f.length>0?N._fetch(f,b,function(a,b){T.extend(e,b),N._storeLocal(b),c(null,e)}):c(null,e)}):N._fetch(a,b,function(a,b){c(null,b)})},_loadLocal:function(a,b,c){var d={},e=(new Date).getTime();if(window.localStorage){var f=a.length;T.each(a,function(a,g){var h=window.localStorage.getItem("res_"+g);h&&(h=JSON.parse(h),h.i18nStamp&&h.i18nStamp+b.localStorageExpirationTime>e&&(d[g]=h)),f--,0===f&&c(null,d)})}},_storeLocal:function(a){if(window.localStorage)for(var b in a)a[b].i18nStamp=(new Date).getTime(),T.localStorage.setItem("res_"+b,JSON.stringify(a[b]))},_fetch:function(a,b,c){var d=b.ns,e={};if(b.dynamicLoad){var f=function(a,b){c(null,b)};if("function"==typeof b.customLoad)b.customLoad(a,d.namespaces,b,f);else{var g=t(b.resGetPath,{lng:a.join("+"),ns:d.namespaces.join("+")});T.ajax({url:g,success:function(a){T.log("loaded: "+g),f(null,a)},error:function(a,b,c){T.log("failed loading: "+g),f("failed loading resource.json error: "+c)},dataType:"json",async:b.getAsync})}}else{var h,i=d.namespaces.length*a.length;T.each(d.namespaces,function(d,f){T.each(a,function(a,d){var g=function(a,b){a&&(h=h||[],h.push(a)),e[d]=e[d]||{},e[d][f]=b,i--,0===i&&c(h,e)};"function"==typeof b.customLoad?b.customLoad(d,f,b,g):N._fetchOne(d,f,b,g)})})}},_fetchOne:function(a,b,c,d){var e=t(c.resGetPath,{lng:a,ns:b});T.ajax({url:e,success:function(a){T.log("loaded: "+e),d(null,a)},error:function(a,b,c){if(b&&200==b||a&&a.status&&200==a.status)T.error("There is a typo in: "+e);else if(b&&404==b||a&&a.status&&404==a.status)T.log("Does not exist: "+e);else{var f=b?b:a&&a.status?a.status:null;T.log(f+" when loading "+e)}d(c,{})},dataType:"json",async:c.getAsync})},postMissing:function(a,b,c,d,e){var f={};f[c]=d;var g=[];if("fallback"===P.sendMissingTo&&P.fallbackLng[0]!==!1)for(var h=0;h<P.fallbackLng.length;h++)g.push({lng:P.fallbackLng[h],url:t(P.resPostPath,{lng:P.fallbackLng[h],ns:b})});else if("current"===P.sendMissingTo||"fallback"===P.sendMissingTo&&P.fallbackLng[0]===!1)g.push({lng:a,url:t(P.resPostPath,{lng:a,ns:b})});else if("all"===P.sendMissingTo)for(var h=0,i=e.length;i>h;h++)g.push({lng:e[h],url:t(P.resPostPath,{lng:e[h],ns:b})});for(var j=0,k=g.length;k>j;j++){var l=g[j];T.ajax({url:l.url,type:P.sendType,data:f,success:function(){T.log("posted missing key '"+c+"' to: "+l.url);for(var a=c.split("."),e=0,f=J[l.lng][b];a[e];)f=f[a[e]]=e===a.length-1?d:f[a[e]]||{},e++},error:function(){T.log("failed posting missing key '"+c+"' to: "+l.url)},dataType:"json",async:P.postAsync})}},reload:r};var P={lng:void 0,load:"all",preload:[],lowerCaseLng:!1,returnObjectTrees:!1,fallbackLng:["dev"],fallbackNS:[],detectLngQS:"setLng",detectLngFromLocalStorage:!1,ns:"translation",fallbackOnNull:!0,fallbackOnEmpty:!1,fallbackToDefaultNS:!1,nsseparator:":",keyseparator:".",selectorAttr:"data-i18n",debug:!1,resGetPath:"locales/__lng__/__ns__.json",resPostPath:"locales/add/__lng__/__ns__",getAsync:!0,postAsync:!0,resStore:void 0,useLocalStorage:!1,localStorageExpirationTime:6048e5,dynamicLoad:!1,sendMissing:!1,sendMissingTo:"fallback",sendType:"POST",interpolationPrefix:"__",interpolationSuffix:"__",defaultVariables:!1,reusePrefix:"$t(",reuseSuffix:")",pluralSuffix:"_plural",pluralNotFound:["plural_not_found",Math.random()].join(""),contextNotFound:["context_not_found",Math.random()].join(""),escapeInterpolation:!1,indefiniteSuffix:"_indefinite",indefiniteNotFound:["indefinite_not_found",Math.random()].join(""),setJqueryExt:!0,defaultValueFromContent:!0,useDataAttrOptions:!1,cookieExpirationTime:void 0,useCookie:!0,cookieName:"i18next",cookieDomain:void 0,objectTreeKeyHandler:void 0,postProcess:void 0,parseMissingKey:void 0,missingKeyHandler:N.postMissing,shortcutFunction:"sprintf"},Q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},R={create:function(a,b,c,d){var e;if(c){var f=new Date;f.setTime(f.getTime()+1e3*60*c),e="; expires="+f.toGMTString()}else e="";d=d?"domain="+d+";":"",document.cookie=a+"="+b+e+";"+d+"path=/"},read:function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(b))return e.substring(b.length,e.length)}return null},remove:function(a){this.create(a,"",-1)}},S={create:function(){},read:function(){return null},remove:function(){}},T={extend:H?H.extend:a,deepExtend:b,each:H?H.each:c,ajax:H?H.ajax:"undefined"!=typeof document?e:function(){},cookie:"undefined"!=typeof document?R:S,detectLanguage:E,escape:d,log:function(a){P.debug&&"undefined"!=typeof console&&console.log(a)},error:function(a){"undefined"!=typeof console&&console.error(a)},getCountyIndexOfLng:function(a){var b=0;return("nb-NO"===a||"nn-NO"===a||"nb-no"===a||"nn-no"===a)&&(b=1),b},toLanguages:function(a){function b(a){var b=a;if("string"==typeof a&&a.indexOf("-")>-1){var c=a.split("-");b=P.lowerCaseLng?c[0].toLowerCase()+"-"+c[1].toLowerCase():c[0].toLowerCase()+"-"+c[1].toUpperCase()}else b=P.lowerCaseLng?a.toLowerCase():a;return b}var c=this.log,d=[],e=P.lngWhitelist||!1,f=function(a){!e||e.indexOf(a)>-1?d.push(a):c("rejecting non-whitelisted language: "+a)};if("string"==typeof a&&a.indexOf("-")>-1){var g=a.split("-");"unspecific"!==P.load&&f(b(a)),"current"!==P.load&&f(b(g[this.getCountyIndexOfLng(a)]))}else f(b(a));for(var h=0;h<P.fallbackLng.length;h++)-1===d.indexOf(P.fallbackLng[h])&&P.fallbackLng[h]&&d.push(b(P.fallbackLng[h]));return d},regexEscape:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},regexReplacementEscape:function(a){return"string"==typeof a?a.replace(/\$/g,"$$$$"):a},localStorage:{setItem:function(a,b){if(window.localStorage)try{window.localStorage.setItem(a,b)}catch(c){T.log('failed to set value for key "'+a+'" to localStorage.')}}}};T.applyReplacement=t;var U=[["ach","Acholi",[1,2],1],["af","Afrikaans",[1,2],2],["ak","Akan",[1,2],1],["am","Amharic",[1,2],1],["an","Aragonese",[1,2],2],["ar","Arabic",[0,1,2,3,11,100],5],["arn","Mapudungun",[1,2],1],["ast","Asturian",[1,2],2],["ay","Aymará",[1],3],["az","Azerbaijani",[1,2],2],["be","Belarusian",[1,2,5],4],["bg","Bulgarian",[1,2],2],["bn","Bengali",[1,2],2],["bo","Tibetan",[1],3],["br","Breton",[1,2],1],["bs","Bosnian",[1,2,5],4],["ca","Catalan",[1,2],2],["cgg","Chiga",[1],3],["cs","Czech",[1,2,5],6],["csb","Kashubian",[1,2,5],7],["cy","Welsh",[1,2,3,8],8],["da","Danish",[1,2],2],["de","German",[1,2],2],["dev","Development Fallback",[1,2],2],["dz","Dzongkha",[1],3],["el","Greek",[1,2],2],["en","English",[1,2],2],["eo","Esperanto",[1,2],2],["es","Spanish",[1,2],2],["es_ar","Argentinean Spanish",[1,2],2],["et","Estonian",[1,2],2],["eu","Basque",[1,2],2],["fa","Persian",[1],3],["fi","Finnish",[1,2],2],["fil","Filipino",[1,2],1],["fo","Faroese",[1,2],2],["fr","French",[1,2],9],["fur","Friulian",[1,2],2],["fy","Frisian",[1,2],2],["ga","Irish",[1,2,3,7,11],10],["gd","Scottish Gaelic",[1,2,3,20],11],["gl","Galician",[1,2],2],["gu","Gujarati",[1,2],2],["gun","Gun",[1,2],1],["ha","Hausa",[1,2],2],["he","Hebrew",[1,2],2],["hi","Hindi",[1,2],2],["hr","Croatian",[1,2,5],4],["hu","Hungarian",[1,2],2],["hy","Armenian",[1,2],2],["ia","Interlingua",[1,2],2],["id","Indonesian",[1],3],["is","Icelandic",[1,2],12],["it","Italian",[1,2],2],["ja","Japanese",[1],3],["jbo","Lojban",[1],3],["jv","Javanese",[0,1],13],["ka","Georgian",[1],3],["kk","Kazakh",[1],3],["km","Khmer",[1],3],["kn","Kannada",[1,2],2],["ko","Korean",[1],3],["ku","Kurdish",[1,2],2],["kw","Cornish",[1,2,3,4],14],["ky","Kyrgyz",[1],3],["lb","Letzeburgesch",[1,2],2],["ln","Lingala",[1,2],1],["lo","Lao",[1],3],["lt","Lithuanian",[1,2,10],15],["lv","Latvian",[1,2,0],16],["mai","Maithili",[1,2],2],["mfe","Mauritian Creole",[1,2],1],["mg","Malagasy",[1,2],1],["mi","Maori",[1,2],1],["mk","Macedonian",[1,2],17],["ml","Malayalam",[1,2],2],["mn","Mongolian",[1,2],2],["mnk","Mandinka",[0,1,2],18],["mr","Marathi",[1,2],2],["ms","Malay",[1],3],["mt","Maltese",[1,2,11,20],19],["nah","Nahuatl",[1,2],2],["nap","Neapolitan",[1,2],2],["nb","Norwegian Bokmal",[1,2],2],["ne","Nepali",[1,2],2],["nl","Dutch",[1,2],2],["nn","Norwegian Nynorsk",[1,2],2],["no","Norwegian",[1,2],2],["nso","Northern Sotho",[1,2],2],["oc","Occitan",[1,2],1],["or","Oriya",[2,1],2],["pa","Punjabi",[1,2],2],["pap","Papiamento",[1,2],2],["pl","Polish",[1,2,5],7],["pms","Piemontese",[1,2],2],["ps","Pashto",[1,2],2],["pt","Portuguese",[1,2],2],["pt_br","Brazilian Portuguese",[1,2],2],["rm","Romansh",[1,2],2],["ro","Romanian",[1,2,20],20],["ru","Russian",[1,2,5],4],["sah","Yakut",[1],3],["sco","Scots",[1,2],2],["se","Northern Sami",[1,2],2],["si","Sinhala",[1,2],2],["sk","Slovak",[1,2,5],6],["sl","Slovenian",[5,1,2,3],21],["so","Somali",[1,2],2],["son","Songhay",[1,2],2],["sq","Albanian",[1,2],2],["sr","Serbian",[1,2,5],4],["su","Sundanese",[1],3],["sv","Swedish",[1,2],2],["sw","Swahili",[1,2],2],["ta","Tamil",[1,2],2],["te","Telugu",[1,2],2],["tg","Tajik",[1,2],1],["th","Thai",[1],3],["ti","Tigrinya",[1,2],1],["tk","Turkmen",[1,2],2],["tr","Turkish",[1,2],1],["tt","Tatar",[1],3],["ug","Uyghur",[1],3],["uk","Ukrainian",[1,2,5],4],["ur","Urdu",[1,2],2],["uz","Uzbek",[1,2],1],["vi","Vietnamese",[1],3],["wa","Walloon",[1,2],1],["wo","Wolof",[1],3],["yo","Yoruba",[1,2],2],["zh","Chinese",[1],3]],V={1:function(a){return Number(a>1)},2:function(a){return Number(1!=a)},3:function(){return 0},4:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},5:function(a){return Number(0===a?0:1==a?1:2==a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5)},6:function(a){return Number(1==a?0:a>=2&&4>=a?1:2)},7:function(a){return Number(1==a?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},8:function(a){return Number(1==a?0:2==a?1:8!=a&&11!=a?2:3)},9:function(a){return Number(a>=2)},10:function(a){return Number(1==a?0:2==a?1:7>a?2:11>a?3:4)},11:function(a){return Number(1==a||11==a?0:2==a||12==a?1:a>2&&20>a?2:3)},12:function(a){return Number(1!=a%10||11==a%100)},13:function(a){return Number(0!==a)},14:function(a){return Number(1==a?0:2==a?1:3==a?2:3)},15:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&(10>a%100||a%100>=20)?1:2)},16:function(a){return Number(1==a%10&&11!=a%100?0:0!==a?1:2)},17:function(a){return Number(1==a||1==a%10?0:1)},18:function(a){return Number(1==a?1:2)},19:function(a){return Number(1==a?0:0===a||a%100>1&&11>a%100?1:a%100>10&&20>a%100?2:3)},20:function(a){return Number(1==a?0:0===a||a%100>0&&20>a%100?1:2)},21:function(a){return Number(1==a%100?1:2==a%100?2:3==a%100||4==a%100?3:0)}},W={rules:function(){var a,b={};for(a=U.length;a--;)b[U[a][0]]={name:U[a][1],numbers:U[a][2],plurals:V[U[a][3]]};return b}(),addRule:function(a,b){W.rules[a]=b},setCurrentLng:function(a){if(!W.currentRule||W.currentRule.lng!==a){var b=a.split("-");W.currentRule={lng:a,rule:W.rules[b[0]]}}},needsPlural:function(a,b){var c,d=a.split("-");return c=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[d[T.getCountyIndexOfLng(a)]],c&&c.numbers.length<=1?!1:1!==this.get(a,b)},get:function(a,b){function c(b,c){var d;if(d=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[b]){var e;e=d.noAbs?d.plurals(c):d.plurals(Math.abs(c));var f=d.numbers[e];return 2===d.numbers.length&&1===d.numbers[0]&&(2===f?f=-1:1===f&&(f=1)),f}return 1===c?"1":"-1"}var d=a.split("-");return c(d[T.getCountyIndexOfLng(a)],b)}},X={},Y=function(a,b){X[a]=b},Z=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function b(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e,f,g,h,i,j,k,l=1,m=c.length,n="",o=[];for(f=0;m>f;f++)if(n=a(c[f]),"string"===n)o.push(c[f]);else if("array"===n){if(h=c[f],h[2])for(e=d[l],g=0;g<h[2].length;g++){if(!e.hasOwnProperty(h[2][g]))throw Z('[sprintf] property "%s" does not exist',h[2][g]);e=e[h[2][g]]}else e=h[1]?d[h[1]]:d[l++];if(/[^s]/.test(h[8])&&"number"!=a(e))throw Z("[sprintf] expecting number but found %s",a(e));switch(h[8]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e,10);break;case"e":e=h[7]?e.toExponential(h[7]):e.toExponential();break;case"f":e=h[7]?parseFloat(e).toFixed(h[7]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=(e=String(e))&&h[7]?e.substring(0,h[7]):e;break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase()}e=/[def]/.test(h[8])&&h[3]&&e>=0?"+"+e:e,j=h[4]?"0"==h[4]?"0":h[4].charAt(1):" ",k=h[6]-String(e).length,i=h[6]?b(j,k):"",o.push(h[5]?e+i:i+e)}return o.join("")},c.cache={},c.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),$=function(a,b){return b.unshift(a),Z.apply(null,b)};Y("sprintf",function(a,b,c){return c.sprintf?"[object Array]"===Object.prototype.toString.apply(c.sprintf)?$(a,c.sprintf):"object"==typeof c.sprintf?Z(a,c.sprintf):a:a}),I.init=f,I.setLng=p,I.preload=g,I.addResourceBundle=h,I.hasResourceBundle=i,I.addResource=k,I.addResources=l,I.removeResourceBundle=j,I.loadNamespace=n,I.loadNamespaces=o,I.setDefaultNamespace=m,I.t=z,I.translate=z,I.exists=y,I.detectLanguage=T.detectLanguage,I.pluralExtensions=W,I.sync=N,I.functions=T,I.lng=q,I.addPostProcessor=Y,I.options=P}();
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.jqueryI18next=e()}(this,function(){"use strict";function t(t,a){function i(n,a,i){function r(t,n){return f.parseDefaultValueFromContent?e({},t,{defaultValue:n}):t}if(0!==a.length){var o="text";if(0===a.indexOf("[")){var l=a.split("]");a=l[1],o=l[0].substr(1,l[0].length-1)}if(a.indexOf(";")===a.length-1&&(a=a.substr(0,a.length-2)),"html"===o)n.html(t.t(a,r(i,n.html())));else if("text"===o)n.text(t.t(a,r(i,n.text())));else if("prepend"===o)n.prepend(t.t(a,r(i,n.html())));else if("append"===o)n.append(t.t(a,r(i,n.html())));else if(0===o.indexOf("data-")){var s=o.substr("data-".length),d=t.t(a,r(i,n.data(s)));n.data(s,d),n.attr(o,d)}else n.attr(o,t.t(a,r(i,n.attr(o))))}}function r(t,n){var r=t.attr(f.selectorAttr);if(r||"undefined"==typeof r||r===!1||(r=t.text()||t.val()),r){var o=t,l=t.data(f.targetAttr);if(l&&(o=t.find(l)||t),n||f.useOptionsAttr!==!0||(n=t.data(f.optionsAttr)),n=n||{},r.indexOf(";")>=0){var s=r.split(";");a.each(s,function(t,e){""!==e&&i(o,e,n)})}else i(o,r,n);if(f.useOptionsAttr===!0){var d={};d=e({clone:d},n),delete d.lng,t.data(f.optionsAttr,d)}}}function o(t){return this.each(function(){r(a(this),t);var e=a(this).find("["+f.selectorAttr+"]");e.each(function(){r(a(this),t)})})}var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f=e({},n,f),a[f.tName]=t.t.bind(t),a[f.i18nName]=t,a.fn[f.handleName]=o}var e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n={tName:"t",i18nName:"i18n",handleName:"localize",selectorAttr:"data-i18n",targetAttr:"i18n-target",optionsAttr:"i18n-options",useOptionsAttr:!1,parseDefaultValueFromContent:!0},a={init:t};return a});
/*!
* Source: lib/magnific-popup/dist/jquery.magnific-popup.min.js, license: MIT, url: http://dimsemenov.com/plugins/magnific-popup/
*/
-/*! Magnific Popup - v1.0.0 - 2015-01-03
+/*! Magnific Popup - v1.1.0 - 2016-02-20
* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2015 Dmitry Semenov; */
-!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",b.ev=c.mainEl&&c.mainEl.length?c.mainEl.eq(0):d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.wrap.css(b.fixedContentPos?{overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}:{top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),b.currTemplate[d]=f?a(f):!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||2!==c.which&&!c.ctrlKey&&!c.metaKey){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()});
+* Copyright (c) 2016 Dmitry Semenov; */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
/*!
* Source: lib/translation.js, license: MIT, url: https://webtranslateit.com/en/projects/10365-JSXC
*/
-var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"de":{"translation":{"Logging_in":"Login läuft…","your_connection_is_unencrypted":"Deine Verbindung ist unverschlüsselt.","your_connection_is_encrypted":"Deine Verbindung ist verschlüsselt.","your_buddy_closed_the_private_connection":"Dein Kontakt hat die private Verbindung getrennt.","start_private":"Privat starten","close_private":"Privat abbrechen","your_buddy_is_verificated":"Dein Kontakt ist verifiziert.","you_have_only_a_subscription_in_one_way":"Der Kontaktstatus ist einseitig.","authentication_query_sent":"Authentifizierungsanfrage gesendet.","your_message_wasnt_send_please_end_your_private_conversation":"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.","unencrypted_message_received":"Unverschlüsselte Nachricht erhalten.","not_available":"Nicht verfügbar.","no_connection":"Keine Verbindung.","relogin":"Neu anmelden.","trying_to_start_private_conversation":"Versuche private Konversation zu starten.","Verified":"Verifiziert","Unverified":"Unverifiziert","private_conversation_aborted":"Private Konversation abgebrochen.","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!","conversation_is_now_verified":"Konversation ist jetzt verifiziert","authentication_failed":"Authentifizierung fehlgeschlagen.","Creating_your_private_key_":"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.","Authenticating_a_buddy_helps_":"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.","How_do_you_want_to_authenticate_your_buddy":"Wie willst du {{bid_name}} (<b>{{bid_jid}}</b>) authentifizieren?","Select_method":"Wähle...","Manual":"Manual","Question":"Frage","Secret":"Geheimnis","To_verify_the_fingerprint_":"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.","Your_fingerprint":"Dein Fingerprint","Buddy_fingerprint":"Sein/Ihr Fingerprint","Close":"Schließen","Compared":"Verglichen","To_authenticate_using_a_question_":"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.","Ask":"Frage","To_authenticate_pick_a_secret_":"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.","Compare":"Vergleiche","Fingerprints":"Fingerprints","Authentication":"Authentifizierung","Message":"Nachricht","Add_buddy":"Kontakt hinzufügen","rename_buddy":"Kontakt umbenennen","delete_buddy":"Kontakt löschen","Login":"Anmeldung","Username":"Benutzername","Password":"Passwort","Cancel":"Abbrechen","Connect":"Verbinden","Type_in_the_full_username_":"Gib bitte den vollen Benutzernamen und optional ein Alias an.","Alias":"Alias","Add":"Hinzufügen","Subscription_request":"Kontaktanfrage","You_have_a_request_from":"Du hast eine Anfrage von","Deny":"Ablehnen","Approve":"Bestätigen","Remove_buddy":"Kontakt entfernen","You_are_about_to_remove_":"Du bist gerade dabei {{bid_name}} (<b>{{bid_jid}}</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.","Continue_without_chat":"Weiter ohne Chat","Please_wait":"Bitte warten","Login_failed":"Chat-Anmeldung fehlgeschlagen","Sorry_we_cant_authentikate_":"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?","Retry":"Zurück","clear_history":"Lösche Verlauf","New_message_from":"Neue Nachricht von __name__","Should_we_notify_you_":"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?","Please_accept_":"Bitte klick auf den \"Zulassen\" Button oben.","Hide_offline":"Offline ausblenden","Show_offline":"Offline einblenden","About":"Über","dnd":"Beschäftigt","Mute":"Ton aus","Unmute":"Ton an","Subscription":"Bezug","both":"beidseitig","Status":"Status","online":"online","chat":"chat","away":"abwesend","xa":"länger abwesend","offline":"offline","none":"keine","Unknown_instance_tag":"Unbekannter instance tag.","Not_one_of_our_latest_keys":"Nicht einer unserer letzten Schlüssel.","Received_an_unreadable_encrypted_message":"Eine unlesbare verschlüsselte Nachricht erhalten.","Online":"Online","Chatty":"Gesprächig","Away":"Abwesend","Extended_away":"Länger abwesend","Offline":"Offline","Friendship_request":"Kontaktanfrage","Confirm":"Bestätigen","Dismiss":"Ablehnen","Remove":"Löschen","Online_help":"Online Hilfe","FN":"Name","N":" ","FAMILY":"Familienname","GIVEN":"Vorname","NICKNAME":"Spitzname","URL":"URL","ADR":"Adresse","STREET":"Straße","EXTADD":"Zusätzliche Adresse","LOCALITY":"Ortschaft","REGION":"Region","PCODE":"Postleitzahl","CTRY":"Land","TEL":"Telefon","NUMBER":"Nummer","EMAIL":"E-Mail","USERID":" ","ORG":"Organisation","ORGNAME":"Name","ORGUNIT":"Abteilung","TITLE":"Titel","ROLE":"Rolle","BDAY":"Geburtstag","DESC":"Beschreibung","PHOTO":" ","send_message":"Sende Nachricht","get_info":"Benutzerinformationen","Settings":"Einstellungen","Priority":"Priorität","Save":"Speichern","User_settings":"Benutzereinstellungen","A_fingerprint_":"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.","is":"ist","Login_options":"Anmeldeoptionen","BOSH_url":"BOSH url","Domain":"Domain","Resource":"Ressource","On_login":"Beim Anmelden","Received_an_unencrypted_message":"Unverschlüsselte Nachricht empfangen","Sorry_your_buddy_doesnt_provide_any_information":"Dein Kontakt stellt leider keine Informationen bereit.","Info_about":"Info über","Authentication_aborted":"Authentifizierung abgebrochen.","Authentication_request_received":"Authentifizierungsanfrage empfangen.","Log_in_without_chat":"Anmelden ohne Chat","has_come_online":"ist online gekommen","Unknown_sender":"Unbekannter Sender","Please_allow_access_to_microphone_and_camera":"Bitte klick auf den \"Zulassen\" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.","Incoming_call":"Eingehender Anruf","from":"von","Do_you_want_to_accept_the_call_from":"Möchtest Du den Anruf annehmen von","Reject":"Ablehnen","Accept":"Annehmen","hang_up":"Auflegen","snapshot":"Schnappschuss","mute_my_audio":"Mein Ton aus","pause_my_video":"Mein Video pausieren","fullscreen":"Vollbild","Info":"Info","Local_IP":"Lokale IP","Remote_IP":"Remote IP","Local_Fingerprint":"Lokaler Fingerprint","Remote_Fingerprint":"Remote Fingerprint","Video_call_not_possible":"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.","Start_video_call":"Starte Videoanruf","Join_chat":"Gruppe beitreten","Join":"Betreten","Room":"Gruppe","Nickname":"Nickname","left_the_building":"__nickname__ hat die Gruppe verlassen","entered_the_room":"__nickname__ ist der Gruppe beigetreten","is_now_known_as":"__oldNickname__ ist nun unter __newNickname__ bekannt","This_room_is":"Diese Gruppe ist","muc_hidden":{"keyword":"versteckt","description":"kann durch die Suche nicht gefunden werden"},"muc_membersonly":{"keyword":"nur für Mitglieder","description":"du musst auf der Mitgliederliste stehen"},"muc_moderated":{"keyword":"moderiert","description":"Nur Personen die \"Mitspracherecht\" haben dürfen Nachrichten senden"},"muc_nonanonymous":{"keyword":"nicht anonym","description":"deine Jabber ID wird für alle Mitglieder sichtbar sein"},"muc_open":{"keyword":"offen","description":"jeder darf dieser Gruppe beitreten"},"muc_passwordprotected":{"keyword":"passwortgeschützt","description":"du benötigst das korrekte Passwort"},"muc_persistent":{"keyword":"permanent","description":"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_public":{"keyword":"öffentlich","description":"kann durch die Suche gefunden werden"},"muc_semianonymous":{"keyword":"teilweise anonym","description":"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},"muc_temporary":{"keyword":"temporär","description":"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_unmoderated":{"keyword":"nicht moderiert","description":"jeder darf Nachrichten senden"},"muc_unsecured":{"keyword":"ungesichert","description":"es wird kein Passwort benötigt"},"Continue":"Weiter","Server":"Server","Rooms_are_loaded":"Gruppen werden geladen","Could_load_only":"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden","muc_explanation":"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten","You_already_joined_this_room":"Du bist dieser Gruppe bereits beigetreten","This_room_will_be_closed":"Diese Gruppe wird geschlossen","Room_not_found_":"Es wird eine neue Gruppe erstellt","Loading_room_information":"Informationen über Gruppe werden geladen","Destroy":"Auflösen","Leave":"Verlassen","changed_subject_to":"__nickname__ hat das Thema auf __subject__ geändert","muc_removed_kicked":"Du wurdest aus der Gruppe entfernt","muc_removed_info_kicked":"__nickname__ wurde aus der Gruppe entfernt","muc_removed_banned":"Du wurdest aus der Gruppe ausgeschlossen","muc_removed_info_banned":"__nickname__ wurde aus der Gruppe ausgeschlossen","muc_removed_affiliation":"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus","muc_removed_info_affiliation":"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus","muc_removed_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt","muc_removed_info_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt","muc_removed_shutdown":"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird","Reason":"Grund","message_not_send":"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert","message_not_send_forbidden":"Deine Nachricht wurde nicht versandt, da du kein \"Mitspracherecht\" hast","message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist","This_room_has_been_closed":"Diese Gruppe wurde geschlossen","Room_logging_is_enabled":"Gesprächsverlauf kann öffentlich einsehbar sein","A_password_is_required":"Es wird ein Passwort benötigt","You_are_not_on_the_member_list":"Du bist kein eingetragenes Mitglied","You_are_banned_from_this_room":"Du wurdest von dieser Gruppe ausgeschlossen","Your_desired_nickname_":"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.","The_maximum_number_":"Die maximale Anzahl der Mitglieder wurde erreicht.","This_room_is_locked_":"Diese Gruppe ist gesperrt","You_are_not_allowed_to_create_":"Du darfst keine neue Gruppe erstellen","Alert":"Alarm","Call_started":"Anruf gestarted","Call_terminated":"Anruf beendet","Carbon_copy":"Kopie","Enable":"Aktivieren","jingle_reason_busy":"beschäftigt","jingle_reason_decline":"abgelehnt","jingle_reason_success":"aufgelegt","Media_failure":"Gerätefehler","No_local_audio_device":"Kein eigenes Audio Gerät","No_local_video_device":"Keine eigene Webcam","Ok":"Ok","PermissionDeniedError":"Du oder dein Browser haben die Audio/Video Berechtigung verweigert","Use_local_audio_device":"Nutze eigenes Audio Gerät","Use_local_video_device":"Benutze eigene Webcam","is_":"ist __status__","You_received_a_message_from_an_unknown_sender_":"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?","Your_roster_is_empty_add_":"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>","onsmp_explanation_question":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.","onsmp_explanation_secret":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.","from_sender":"von __sender__","Verified_private_conversation_started":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt."}},"el":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"en":{"translation":{"Logging_in":"Logging in…","your_connection_is_unencrypted":"Your connection is unencrypted.","your_connection_is_encrypted":"Your connection is encrypted.","your_buddy_closed_the_private_connection":"Your contact closed the private connection.","start_private":"Start private","close_private":"Close private","your_buddy_is_verificated":"Your contact is verified.","you_have_only_a_subscription_in_one_way":"You only have a one-way subscription.","authentication_query_sent":"Authentication query sent.","your_message_wasnt_send_please_end_your_private_conversation":"Your message was not sent. Please end your private conversation.","unencrypted_message_received":"Unencrypted message received","not_available":"Not available","no_connection":"No connection!","relogin":"relogin","trying_to_start_private_conversation":"Trying to start private conversation!","Verified":"Verified","Unverified":"Unverified","private_conversation_aborted":"Private conversation aborted!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Your contact closed the private conversation! You should do the same.","conversation_is_now_verified":"Conversation is now verified.","authentication_failed":"Authentication failed.","Creating_your_private_key_":"Creating your private key; this may take a while.","Authenticating_a_buddy_helps_":"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.","How_do_you_want_to_authenticate_your_buddy":"How do you want to authenticate {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Select method...","Manual":"Manual","Question":"Question","Secret":"Secret","To_verify_the_fingerprint_":"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.","Your_fingerprint":"Your fingerprint","Buddy_fingerprint":"Contact fingerprint","Close":"Close","Compared":"Compared","To_authenticate_using_a_question_":"To authenticate using a question, pick a question whose answer is known only you and your contact.","Ask":"Ask","To_authenticate_pick_a_secret_":"To authenticate, pick a secret known only to you and your contact.","Compare":"Compare","Fingerprints":"Fingerprints","Authentication":"Authentication","Message":"Message","Add_buddy":"Add contact","rename_buddy":"rename contact","delete_buddy":"delete contact","Login":"Login","Username":"Username","Password":"Password","Cancel":"Cancel","Connect":"Connect","Type_in_the_full_username_":"Type in the full username and an optional alias.","Alias":"Alias","Add":"Add","Subscription_request":"Subscription request","You_have_a_request_from":"You have a request from","Deny":"Deny","Approve":"Approve","Remove_buddy":"Remove contact","You_are_about_to_remove_":"You are about to remove {{bid_name}} (<b>{{bid_jid}}</b>) from your contact list. All related chats will be closed.","Continue_without_chat":"Continue without chat","Please_wait":"Please wait","Login_failed":"Chat login failed","Sorry_we_cant_authentikate_":"Authentication failed with the chat server. Maybe the password is wrong?","Retry":"Back","clear_history":"Clear history","New_message_from":"New message from __name__","Should_we_notify_you_":"Should we notify you about new messages in the future?","Please_accept_":"Please click the \"Allow\" button at the top.","Hide_offline":"Hide offline contacts","Show_offline":"Show offline contacts","About":"About","dnd":"Do Not Disturb","Mute":"Mute","Unmute":"Unmute","Subscription":"Subscription","both":"both","Status":"Status","online":"online","chat":"chat","away":"away","xa":"extended away","offline":"offline","none":"none","Unknown_instance_tag":"Unknown instance tag.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Received an unreadable encrypted message.","Online":"Online","Chatty":"Chatty","Away":"Away","Extended_away":"Extended away","Offline":"Offline","Friendship_request":"Contact request","Confirm":"Confirm","Dismiss":"Dismiss","Remove":"Remove","Online_help":"Online help","FN":"Full name","N":" ","FAMILY":"Family name","GIVEN":"Given name","NICKNAME":"Nickname","URL":"URL","ADR":"Address","STREET":"Street Address","EXTADD":"Extended Address","LOCALITY":"Locality","REGION":"Region","PCODE":"Postal Code","CTRY":"Country","TEL":"Telephone","NUMBER":"Number","EMAIL":"Email","USERID":" ","ORG":"Organization","ORGNAME":"Name","ORGUNIT":"Unit","TITLE":"Job title","ROLE":"Role","BDAY":"Birthday","DESC":"Description","PHOTO":" ","send_message":"Send message","get_info":"Show information","Settings":"Settings","Priority":"Priority","Save":"Save","User_settings":"User settings","A_fingerprint_":"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.","is":"is","Login_options":"Login options","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Resource","On_login":"On login","Received_an_unencrypted_message":"Received an unencrypted message","Sorry_your_buddy_doesnt_provide_any_information":"Sorry, your contact does not provide any information.","Info_about":"Info about","Authentication_aborted":"Authentication aborted.","Authentication_request_received":"Authentication request received.","Log_in_without_chat":"Log in without chat","has_come_online":"has come online","Unknown_sender":"Unknown sender","Please_allow_access_to_microphone_and_camera":"Please click the \"Allow\" button at the top, to allow access to microphone and camera.","Incoming_call":"Incoming call","from":"from","Do_you_want_to_accept_the_call_from":"Do you want to accept the call from","Reject":"Reject","Accept":"Accept","hang_up":"hang up","snapshot":"snapshot","mute_my_audio":"mute my audio","pause_my_video":"pause my video","fullscreen":"fullscreen","Info":"Info","Local_IP":"Local IP","Remote_IP":"Remote IP","Local_Fingerprint":"Local fingerprint","Remote_Fingerprint":"Remote fingerprint","Video_call_not_possible":"Video call not possible. Your contact does not support video calls.","Start_video_call":"Start video call","Join_chat":"Join chat","Join":"Join","Room":"Room","Nickname":"Nickname","left_the_building":"__nickname__ left the building","entered_the_room":"__nickname__ entered the room","is_now_known_as":"__oldNickname__ is now known as __newNickname__","This_room_is":"This room is","muc_hidden":{"keyword":"hidden","description":"can not be found through search"},"muc_membersonly":{"keyword":"members-only","description":"you need to be on the member list"},"muc_moderated":{"keyword":"moderated","description":"only persons with \"voice\" are allowed to send messages"},"muc_nonanonymous":{"keyword":"non-anonymous","description":"your jabber id is exposed to all other occupants"},"muc_open":{"keyword":"open","description":"everyone is allowed to join"},"muc_passwordprotected":{"keyword":"password-protected","description":"you need to provide the correct password"},"muc_persistent":{"keyword":"persistent","description":"will not be destroyed if the last occupant left"},"muc_public":{"keyword":"public","description":"can be found through search"},"muc_semianonymous":{"keyword":"semi-anonymous","description":"your jabber id is only exposed to room admins"},"muc_temporary":{"keyword":"temporary","description":"will be destroyed if the last occupant left"},"muc_unmoderated":{"keyword":"unmoderated","description":"everyone is allowed to send messages"},"muc_unsecured":{"keyword":"unsecured","description":"you need no password to enter"},"Continue":"Continue","Server":"Server","Rooms_are_loaded":"Rooms are loaded","Could_load_only":"Could load only __count__ rooms for autocomplete","muc_explanation":"Please enter room name and optional a nickname and password to join a chat","You_already_joined_this_room":"You already joined this room","This_room_will_be_closed":"This room will be closed","Room_not_found_":"A new room will be created","Loading_room_information":"Loading room information","Destroy":"Destroy","Leave":"Leave","changed_subject_to":"__nickname__ changed the room subject to \"__subject__\"","muc_removed_kicked":"You have been kicked from the room","muc_removed_info_kicked":"__nickname__ has been kicked from the room","muc_removed_banned":"You have been banned from the room","muc_removed_info_banned":"__nickname__ has been banned from the room","muc_removed_affiliation":"You have been removed from the room, because of an affiliation change","muc_removed_info_affiliation":"__nickname__ has been removed from the room, because of an affiliation change","muc_removed_membersonly":"You have been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_info_membersonly":"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_shutdown":"You have been removed from the room, because the MUC service is being shut down","Reason":"Reason","message_not_send":"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist","message_not_send_forbidden":"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room","This_room_has_been_closed":"This room has been closed","Room_logging_is_enabled":"Room logging is enabled","A_password_is_required":"A password is required","You_are_not_on_the_member_list":"You are not on the member list","You_are_banned_from_this_room":"You are banned from this room","Your_desired_nickname_":"Your desired nickname is already in use. Please choose another","The_maximum_number_":"The maximum number of user is reached in this room","This_room_is_locked_":"This room is locked","You_are_not_allowed_to_create_":"You are not allowed to create a room","Alert":"Alert","Call_started":"Call started","Call_terminated":"Call terminated","Carbon_copy":"Carbon copy","Enable":"Enable","jingle_reason_busy":"busy","jingle_reason_decline":"decline","jingle_reason_success":"hung up","Media_failure":"Media failure","No_local_audio_device":"No local audio device.","No_local_video_device":"No local video device.","Ok":"Ok","PermissionDeniedError":"You or your browser denied audio/video permission","Use_local_audio_device":"Use local audio device.","Use_local_video_device":"Use local video device.","is_":"is __status__","You_received_a_message_from_an_unknown_sender_":"You received a message from an unknown sender (__sender__) Do you want to display them?","Your_roster_is_empty_add_":"Your roster is empty, add a <a>new contact</a>","onsmp_explanation_question":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.","onsmp_explanation_secret":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.","from_sender":"from __sender__","Verified_private_conversation_started":"Verified Private conversation started.","Unverified_private_conversation_started":"Unverified Private conversation started.","Bookmark":"Bookmark","Auto-join":"Auto-join","Edit_bookmark":"Edit bookmark","Room_logging_is_disabled":"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous","Do_you_want_to_change_the_default_room_configuration":"Do you want to change the default room configuration?","Default":"Default","Change":"Change","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server."}},"es":{"translation":{"Logging_in":"Por favor, espere...","your_connection_is_unencrypted":"Su conexión no está cifrada.","your_connection_is_encrypted":"Su conexión está cifrada.","your_buddy_closed_the_private_connection":"Su amigo ha cerrado la conexión privada.","start_private":"Iniciar privado","close_private":"Cerrar privado","your_buddy_is_verificated":"Tu amigo está verificado.","you_have_only_a_subscription_in_one_way":"Solo tienes una suscripción de un modo.","authentication_query_sent":"Consulta de verificación enviada.","your_message_wasnt_send_please_end_your_private_conversation":"Su mensaje no fue enviado. Por favor, termine su conversación privada.","unencrypted_message_received":"Mensaje no cifrado recibido:","not_available":"No disponible","no_connection":"¡Sin conexión!","relogin":"iniciar sesión nuevamente","trying_to_start_private_conversation":"¡Intentando iniciar una conversación privada!","Verified":"Verificado","Unverified":"No verificado","private_conversation_aborted":"¡Conversación privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"¡Su amigo cerró la conversación privada! Usted debería hacer lo mismo.","conversation_is_now_verified":"La conversación es ahora verificada.","authentication_failed":"Falló la verificación.","Creating_your_private_key_":"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.","Authenticating_a_buddy_helps_":"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.","How_do_you_want_to_authenticate_your_buddy":"¿Cómo desea autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Escoja un método...","Manual":"Manual","Question":"Pregunta","Secret":"Secreto","To_verify_the_fingerprint_":"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.","Your_fingerprint":"Tu firma digital","Buddy_fingerprint":"firma digital de tu amigo","Close":"Cerrar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar mediante una pregunta, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo por usted y su amigo.","Compare":"Comparar","Fingerprints":"Firmas digitales","Authentication":"Autenticación","Message":"Mensaje","Add_buddy":"Añadir amigo","rename_buddy":"renombrar amigo","delete_buddy":"eliminar amigo","Login":"Iniciar Sesión","Username":"Usuario","Password":"Contraseña","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Escriba el usuario completo y un alias opcional.","Alias":"Alias","Add":"Añadir","Subscription_request":"Solicitud de suscripción","You_have_a_request_from":"Tienes una petición de","Deny":"Rechazar","Approve":"Aprobar","Remove_buddy":"Eliminar amigo","You_are_about_to_remove_":"Vas a eliminar a {{bid_name}} (<b>{{bid_jid}}</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.","Continue_without_chat":"Continuar","Please_wait":"Espere por favor","Login_failed":"Fallo el inicio de sesión","Sorry_we_cant_authentikate_":"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?","Retry":"Reintentar","clear_history":"Borrar el historial","New_message_from":"Nuevo mensaje de __name__","Should_we_notify_you_":"¿Debemos notificarle sobre nuevos mensajes en el futuro?","Please_accept_":"Por favor, haga clic en el botón \"Permitir\" en la parte superior.","Hide_offline":"Ocultar contactos desconectados","Show_offline":"Mostrar contactos desconectados","About":"Acerca de","dnd":"No Molestar","Mute":"Desactivar sonido","Unmute":"Activar sonido","Subscription":"Suscripción","both":"ambos","Status":"Estado","online":"en línea","chat":"chat","away":"ausente","xa":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más ausente","Offline":"Desconectado","Friendship_request":"Solicitud de amistad","Confirm":"Confirmar","Dismiss":"Rechazar","Remove":"Eliminar","Online_help":"Ayuda en línea","FN":"Nombre completo ","N":" ","FAMILY":"Apellido","GIVEN":"Nombre","NICKNAME":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","USERID":" ","ORG":"Organización","ORGNAME":"Nombre","ORGUNIT":"Departamento","TITLE":"Título","ROLE":"Rol","BDAY":"Cumpleaños","DESC":"Descripción","PHOTO":" ","send_message":"mandar un texto","get_info":"obtener información","Settings":"Ajustes","Priority":"Prioridad","Save":"Guardar","User_settings":"Configuración de usuario","A_fingerprint_":"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser","is":"es","Login_options":"Opciones de login","BOSH_url":"BOSH url","Domain":"Dominio","Resource":"Recurso","On_login":"Iniciar sesión","Received_an_unencrypted_message":"Recibe un mensaje no cifrado","Sorry_your_buddy_doesnt_provide_any_information":"Lo sentimos, su amigo no provee ninguna información.","Info_about":"Info acerca de","Authentication_aborted":"Autenticación abortada","Authentication_request_received":"Pedido de autenticación recibido.","Log_in_without_chat":"Ingresar sin chat","has_come_online":"se ha conectado","Unknown_sender":"Remitente desconocido","Please_allow_access_to_microphone_and_camera":"Por favor, permitir el acceso al micrófono y la cámara.","Incoming_call":"Llamada entrante","from":"de","Do_you_want_to_accept_the_call_from":"Desea aceptar la llamada de","Reject":"Rechazar","Accept":"Aceptar","hang_up":"colgar","snapshot":"instantánea","mute_my_audio":"silenciar mi audio","pause_my_video":"pausar mi vídeo","fullscreen":"pantalla completa","Info":"Info","Local_IP":"IP local","Remote_IP":"IP remota","Local_Fingerprint":"Firma digital local","Remote_Fingerprint":"Firma digital remota","Video_call_not_possible":"Llamada de vídeo no es posible","Start_video_call":"Iniciar llamada de vídeo","Join_chat":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","is_":"es __status__","You_received_a_message_from_an_unknown_sender_":"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?","Your_roster_is_empty_add_":"Tu lista de amigos esta vacía, añadir un <a>nuevo amigo</a>","onsmp_explanation_question":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.","onsmp_explanation_secret":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado se inició una conversación privada.","Unverified_private_conversation_started":"No verificado se inició una conversación privada.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP"}},"fi":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"fr":{"translation":{"Logging_in":"Connexion...","your_connection_is_unencrypted":"Connexion non chiffrée.","your_connection_is_encrypted":"Connexion chiffrée.","your_buddy_closed_the_private_connection":"Votre contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","close_private":"Clôturer une conversation privée","your_buddy_is_verificated":"Votre contact est vérifié.","you_have_only_a_subscription_in_one_way":"Vous ne pouvez souscrire qu'une fois.","authentication_query_sent":"Requête d’authentification envoyée.","your_message_wasnt_send_please_end_your_private_conversation":"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.","unencrypted_message_received":"Message non chiffré reçu","not_available":"Non disponible","no_connection":"Pas de connexion !","relogin":"Re-connexion","trying_to_start_private_conversation":"Essai de démarrage d'une conversation privée !","Verified":"Vérifié","Unverified":"Non vérifié","private_conversation_aborted":"Conversation privée interrompue !","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Votre contact a fermé la conversation privée ! Vous devriez faire de même.","conversation_is_now_verified":"La conversation est maintenant vérifiée.","authentication_failed":"L'authentification a échoué.","Creating_your_private_key_":"Création de votre clé privée; cela peut prendre un moment.","Authenticating_a_buddy_helps_":"L'authentification d'un contact permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.","How_do_you_want_to_authenticate_your_buddy":"Comment voulez-vous vous authentifier {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Sélection de la méthode...","Manual":"Manuel","Question":"Question","Secret":"Sécurité","To_verify_the_fingerprint_":"Pour vérifier l'empreinte, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","Close":"Fermer","Compared":"Comparé","To_authenticate_using_a_question_":"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","Login":"Connexion","Username":"Nom d'utilisateur","Password":"Mot de passe","Cancel":"Annuler","Connect":"Connecter","Type_in_the_full_username_":"Tapez un nom d'utilisateur complet et un alias(optionnel).","Alias":"Alias","Add":"Ajouter","Subscription_request":"Demande d'abonnement","You_have_a_request_from":"Vous avez une requête de ","Deny":"Refuser","Approve":"Approuver","Remove_buddy":"Supprimer le contact","You_are_about_to_remove_":"Vous allez retirer {{bid_name}} (<b>{{bid_jid}}</b>) de votre liste de contacts. Toutes les fenêtres de discussion en lien avec celui-ci seront fermées.","Continue_without_chat":"Continuer sans tchat","Please_wait":"Merci de patienter","Login_failed":"Authentification échouée","Sorry_we_cant_authentikate_":"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.","Retry":"Retour","clear_history":"Effacer l’historique","New_message_from":"Nouveau message de __name__","Should_we_notify_you_":"Dans le futur, devrons-nous vous notifier les nouveaux messages ?","Please_accept_":"Merci de cliquer sur le bouton \"autoriser\" en haut de page","Hide_offline":"Masquer les contacts non connectés","Show_offline":"Afficher les contacts non connectés","About":"À propos","dnd":"Ne pas déranger","Mute":"Muet","Unmute":"Son actif","Subscription":"Abonnement","both":"Les deux","Status":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","offline":"Hors ligne","none":"Aucun","Unknown_instance_tag":"Tag inconnu","Not_one_of_our_latest_keys":"Ce n'est pas l'une des dernières touches","Received_an_unreadable_encrypted_message":"Message chiffré non lisible","Online":"En ligne","Chatty":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","URL":"URL","ADR":"Adresse","STREET":"Rue","EXTADD":"Adresse (suite)","LOCALITY":"Localité","REGION":"Région","PCODE":"Code Postal","CTRY":"Pays","TEL":"Téléphone","NUMBER":"Numéro","EMAIL":"Courriel","USERID":" USERID ","ORG":"Organisation","ORGNAME":"Nom","ORGUNIT":"Unité","TITLE":"Qualité:","ROLE":"Rôle","BDAY":"Date de naissance","DESC":"Description","PHOTO":"Photo","send_message":"Envoyer un message","get_info":"Montrer les informations","Settings":"Réglages","Priority":"Priorité","Save":"Enregistrer","User_settings":"Paramètres utilisateur","A_fingerprint_":"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez","is":"est","Login_options":"Options d'identification","BOSH_url":"URL BOSH","Domain":"Domaine","Resource":"Ressource","On_login":"Après authentification","Received_an_unencrypted_message":"Reçu un message non chiffré","Sorry_your_buddy_doesnt_provide_any_information":"Désolé, votre contact n'a pas fourni d'informations","Info_about":"À propos de","Authentication_aborted":"Authentification interrompue.","Authentication_request_received":"Requête d'authentification reçue.","Log_in_without_chat":"S'identifier sans tchat","has_come_online":"vient d'arriver","Unknown_sender":"Expéditeur inconnu","Please_allow_access_to_microphone_and_camera":"Veuillez cliquez sur le bouton \"Autoriser\" en haut, pour permettre l'accès au micro et à la caméra.","Incoming_call":"Appel entrant","from":"de","Do_you_want_to_accept_the_call_from":"Voulez-vous accepter l'appel de","Reject":"Rejeté","Accept":"Accepté","hang_up":"raccrocher","snapshot":"Capture d’écran","mute_my_audio":"Couper l'audio","pause_my_video":"Mettre ma vidéo en pause","fullscreen":"Plein écran","Info":"Info","Local_IP":"IP locale","Remote_IP":"IP distante","Local_Fingerprint":"Empreinte locale","Remote_Fingerprint":"Empreinte distante","Video_call_not_possible":"L'appel vidéo n'est possible. Votre contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"muc_membersonly":{"keyword":"pour les membres seulement","description":"Vous devez être sur la liste des membres"},"muc_moderated":{"keyword":"modéré","description":"Seulement les personnes avec la \"voix\" sont autorisés à envoyer des messages"},"muc_nonanonymous":{"keyword":"non anonyme","description":"Votre identifiant Jabber est visible de tous les autres occupants"},"muc_open":{"keyword":"ouvert","description":"Tout le monde est autorisé à se connecter"},"muc_passwordprotected":{"keyword":"protégé par un mot de passe","description":"Vous devez fournir un mot de passe correct"},"muc_persistent":{"keyword":"persistent","description":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"muc_semianonymous":{"keyword":"semi-anonyme","description":"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},"muc_temporary":{"keyword":"temporaire","description":"sera détruit au départ de son dernier occupant"},"muc_unmoderated":{"keyword":"non modéré","description":"Tout le monde est autorisé à envoyer des messages"},"muc_unsecured":{"keyword":"non sécurisé","description":"un mot de passe n'est pas nécessaire pour entrer"},"Continue":"Continuer","Server":"Serveur","Rooms_are_loaded":"Les salons sont chargés","Could_load_only":"Ne peut charger que __count__ salons pour l'autocomplétion","muc_explanation":"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation","You_already_joined_this_room":"Vous avez déjà rejoint ce salon","This_room_will_be_closed":"Ce salon va être fermé","Room_not_found_":"Un nouveau salon va être créé","Loading_room_information":"Chargement des informations du salon","Destroy":"Détruire","Leave":"Quitter","changed_subject_to":"__nickname__ a changé le sujet du salon à \"__subject__\"","muc_removed_kicked":"Vous avez été éjecté de ce salon","muc_removed_info_kicked":"__nickname__ a été éjecté de ce salon","muc_removed_banned":"Vous avez été banni de ce salon","muc_removed_info_banned":"__nickname__ a été banni de ce salon","muc_removed_affiliation":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon","This_room_has_been_closed":"Ce salon a été fermé","Room_logging_is_enabled":"L'historique du salon est conservé","A_password_is_required":"Un mot de passe est requis","You_are_not_on_the_member_list":"Vous n'êtes pas sur la liste des membres","You_are_banned_from_this_room":"Vous avez été banni de ce salon","Your_desired_nickname_":"Votre pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur à refusé de donner les permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","is_":"est __status__","You_received_a_message_from_an_unknown_sender_":"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?","Your_roster_is_empty_add_":"Votre liste est vide, ajouter <a>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP."}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"it":{"translation":{"Logging_in":"login…","your_connection_is_unencrypted":"La sua connessione è non cifrata.","your_connection_is_encrypted":"La sua connessione è cifrata.","your_buddy_closed_the_private_connection":"La sua connessione privata è stato chiuso dal suo compagno.","start_private":"Inizia privata","close_private":"Chiude privata","your_buddy_is_verificated":"Il tuo compagno è stato verificato","you_have_only_a_subscription_in_one_way":"Hai solo una one-way inscrizione.","authentication_query_sent":"Domanda d'autenticità inviata.","your_message_wasnt_send_please_end_your_private_conversation":"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.","unencrypted_message_received":"Messaggio non cifrato ricevuto","not_available":"non disponibile","no_connection":"nessun collegamento!","relogin":"nuovo login","trying_to_start_private_conversation":"Cercando di avviare una conversazione privata!","Verified":"verificato","Unverified":"non verificato","private_conversation_aborted":"Conversazione privata abortito!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.","conversation_is_now_verified":"Conversazione è ora verificato.","authentication_failed":"autenticazione fallita.","Creating_your_private_key_":"Creare la propria chiave privata; questo potrebbe richiedere un po'.","Authenticating_a_buddy_helps_":"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.","How_do_you_want_to_authenticate_your_buddy":"Come si desidera autenticare {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Seleziona metodo ..","Manual":"manuale","Question":"domanda","Secret":"segreto","To_verify_the_fingerprint_":"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.","Your_fingerprint":"il tuo impronta digitale","Buddy_fingerprint":"impronta digitale da compagno","Close":"chiude","Compared":"comparato","To_authenticate_using_a_question_":"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno","Ask":"chiedi","To_authenticate_pick_a_secret_":"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.","Compare":"Comparare","Fingerprints":"Impronta digitale","Authentication":"Autenticazione","Message":"Messagio","Add_buddy":"Aggiungi un compagno","rename_buddy":"rinomina compagno","delete_buddy":"elimina compagno","Login":"Login","Username":"Identificazione dell'utente","Password":"Password","Cancel":"Cancella","Connect":"Collega","Type_in_the_full_username_":"Digita l'identificazione utente completo e un alias opzionale.","Alias":"Alias","Add":"Aggiungi","Subscription_request":"Rrichiesta di sottoscrizione","You_have_a_request_from":"Hai una richiesta da","Deny":"Refiuta","Approve":"Approva","Remove_buddy":"Rimuova il compagno","You_are_about_to_remove_":"Stai rimovendo {{bid_name}} (<b>{{bid_jid}}</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.","Continue_without_chat":"Continua senza chat","Please_wait":"Si prega d'attendere","Login_failed":"Chat login è fallito","Sorry_we_cant_authentikate_":"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?","Retry":"Indietro","clear_history":"Cancella la cronologia","New_message_from":"Nuovo messaggio da __name__","Should_we_notify_you_":"Vuoi ricevere una notifica di nuovi messaggi in futuro?","Please_accept_":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra.","Hide_offline":"Nascondere i contatti non in linea","Show_offline":"Mostra i contatti non in linea","About":"Informazione legale","dnd":"Non disturbare","Mute":"Muto attivo","Unmute":"Muto inattivo","Subscription":"Sottoscrizione","both":"etrambi","Status":"Status","online":"In linea","chat":"chat","away":"via","xa":"via estensivo","offline":"non in linea","none":"nessuno","Unknown_instance_tag":"Instance tag sconosciuta.","Not_one_of_our_latest_keys":"Non è una delle nostre ultime chiavi.","Received_an_unreadable_encrypted_message":"Ricevuto un messaggio crittografato illeggibile.","Online":"In linea","Chatty":"Chiacchierino","Away":"Via","Extended_away":"Via estensivo","Offline":"Non in linea","Friendship_request":"Amicizia richiesto","Confirm":"Conferma","Dismiss":"Rifiuta","Remove":"Rimuovi","Online_help":"Guida in linea","FN":"Nome e cognome","N":null,"FAMILY":"Cognome","GIVEN":"Nome","NICKNAME":"Soprannome","URL":"URL","ADR":"Indirizzo","STREET":"Via","EXTADD":"Esteso Indirizzo","LOCALITY":"Località","REGION":"Regione","PCODE":"Codice Postale","CTRY":"Paese","TEL":"Telefono","NUMBER":"Numero","EMAIL":"E-mail","USERID":null,"ORG":"Organizzazione","ORGNAME":"Nome","ORGUNIT":"Unità","TITLE":"Titolo di lavoro","ROLE":"Funzione","BDAY":"Compleanno","DESC":"Descrizione","PHOTO":null,"send_message":"Messagio inviato","get_info":"Mostra informazioni","Settings":"Impostazione","Priority":"Priorità","Save":"Salva","User_settings":"Impostazione dell'utente","A_fingerprint_":"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.","is":"è","Login_options":"Opzioni di login","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Risorsa","On_login":"Login on","Received_an_unencrypted_message":"Ricevuto un messaggio non crittografato","Sorry_your_buddy_doesnt_provide_any_information":"Spiace, il tuo compagno non fornisce alcuna informazione.","Info_about":"Informazioni","Authentication_aborted":"Autenticazione interrotta","Authentication_request_received":"Richiesta di autenticazione ricevuto.","Log_in_without_chat":"Log in senza chat","has_come_online":"È venuto in linea","Unknown_sender":"Mittente sconosciuto","Please_allow_access_to_microphone_and_camera":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra per autorizzazione del l'accesso al microfono e fotocamera.","Incoming_call":"Chiamata in arrivo","from":"di","Do_you_want_to_accept_the_call_from":"Vuoi accettare la chiamata di","Reject":"Rifiuta","Accept":"Accetta","hang_up":"Riattacca","snapshot":"istantanea","mute_my_audio":"disattiva il mio audio","pause_my_video":"pausa il mio audio","fullscreen":"schermo intero","Info":"Informazione","Local_IP":"IP locale","Remote_IP":"IP remoto","Local_Fingerprint":"Impronta digitale locale","Remote_Fingerprint":"Impronta digitale remoto","Video_call_not_possible":"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.","Start_video_call":"Inizia videochiamata","Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":"è __status__","You_received_a_message_from_an_unknown_sender_":"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?","Your_roster_is_empty_add_":"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>","onsmp_explanation_question":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.","onsmp_explanation_secret":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.","from_sender":"di __sender__","Verified_private_conversation_started":"verificato Conversazione privata iniziato.","Unverified_private_conversation_started":"non verificato Conversazione privata iniziato.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"nds":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"pl":{"translation":{"Logging_in":"Logowanie...","your_connection_is_unencrypted":"Twoje połączenie nie jest szyfrowane.","your_connection_is_encrypted":"Twoje połączenie jest szyfrowane.","your_buddy_closed_the_private_connection":"Twój rozmówca zamknął połączenie.","start_private":"Rozpocznij rozmowę.","close_private":"Zakończ rozmowę.","your_buddy_is_verificated":"Twój rozmówca został zweryfikowany.","you_have_only_a_subscription_in_one_way":"Posiadasz tylko jednostronną subskrypcję.","authentication_query_sent":"Wysłano proźbę o autentykację.","your_message_wasnt_send_please_end_your_private_conversation":"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.","unencrypted_message_received":"Otrzymano niezaszyfrowaną wiadomość.","not_available":"Niedostępny.","no_connection":"Brak połączenia!","relogin":"Połącz ponownie","trying_to_start_private_conversation":"Rozpocznij rozmowę!","Verified":"Zweryfikowano","Unverified":"Niezweryfikowano","private_conversation_aborted":"Anulowano rozmowę!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Rozmówca przerwał połączenie! Powinieneś zrobić to samo.","conversation_is_now_verified":"Zweryfikowano połączenie.","authentication_failed":"Weryfikacja się nie powiodła.","Creating_your_private_key_":"Tworzenie klucza prywatnego; może to chwilę potrwać","Authenticating_a_buddy_helps_":"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).","How_do_you_want_to_authenticate_your_buddy":"Jakiej autoryzacji chcesz użyć {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Wybierz sposób...","Manual":"Ręcznie","Question":"Pytanie","Secret":"Hasło","To_verify_the_fingerprint_":"Aby zweryfikować kod, najpierw skontaktuj się z rozmówcą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i twój rozmówca zna odpowiedź.","Ask":"Zadaj pytanie","To_authenticate_pick_a_secret_":"Aby autoryzować za pomocą hasła, wybierz hasło na które znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","delete_buddy":"Usuń kontakt","Login":"Login","Username":"Nazwa Użytkownika","Password":"Hasło","Cancel":"Anuluj","Connect":"Połączenie","Type_in_the_full_username_":"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).","Alias":"Alias","Add":"Dodaj","Subscription_request":"Potwierdzenie subskrypcji","You_have_a_request_from":"Masz potwierdzenie od","Deny":"Odmów","Approve":"Zatwierdź","Remove_buddy":"Usuń kontakt","You_are_about_to_remove_":"Chcesz usunąć {{bid_name}} (<b>{{bid_jid}}</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","Continue_without_chat":"Kontynuuj bez komunikatora","Please_wait":"Proszę czekać","Login_failed":"Błędne logowanie","Sorry_we_cant_authentikate_":"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?","Retry":"Powrót","clear_history":"Wyczyść historię","New_message_from":"Nowa wiadomość od __name__","Should_we_notify_you_":"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?","Please_accept_":"Kliknij \"Zezwól\" na górze.","Hide_offline":"Schowaj niedostępne kontakty","Show_offline":"Pokaż niedostępne kontakty","About":"Info","dnd":"Nie przeszkadzać","Mute":"Wycisz","Unmute":"Włącz dźwięk","Subscription":"Subskrybcja","both":"obustronna","Status":"Status","online":"Dostępny","chat":"czat","away":"z dala od kompa","xa":"hen hen...","offline":"niedostępny","none":"brak","Unknown_instance_tag":"Nieznany przypadek.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Otrzymano nieczytelną, zaszyfrowaną wiadomość.","Online":"Połączony","Chatty":"Pogawędzimy?","Away":"Daleko","Extended_away":"Hen Hen...","Offline":"Niedostępny","Friendship_request":"Prośba o kontakt","Confirm":"Potwierdzenie","Dismiss":"Odwołaj","Remove":"Usuń","Online_help":"Pomoc Online","FN":"Pełna nazwa","N":" ","FAMILY":"Nazwisko","GIVEN":"Imię","NICKNAME":"Pseudonim","URL":"Strona WWW","ADR":"Adres","STREET":"Ulica","EXTADD":"Pełny adres","LOCALITY":"Lokalizacja","REGION":"Region","PCODE":"Kod pocztowy","CTRY":"Kraj","TEL":"Telefon","NUMBER":"Numer","EMAIL":"Email","USERID":" ","ORG":"Organizacja","ORGNAME":"Nazwa","ORGUNIT":"Jednostka","TITLE":"Stanowisko","ROLE":"Rola","BDAY":"Data urodzin","DESC":"Opis","PHOTO":" ","send_message":"Wyślij wiadomość","get_info":"Pokaż informację","Settings":"Ustawienia","Priority":"Priorytet","Save":"Zapisz","User_settings":"Ustawienia Użytkownika","A_fingerprint_":"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.","is":"jest","Login_options":"opcje logowania","BOSH_url":"Adres BOSH","Domain":"Domena","Resource":"Źródło","On_login":"Na login","Received_an_unencrypted_message":"Zatwierdzono nieszyfrowaną wiadomość.","Sorry_your_buddy_doesnt_provide_any_information":"Wybacz, twój rozmówca nie posiada żadnych informacji.","Info_about":"Informacja o...","Authentication_aborted":"Autoryzacja anulowana.","Authentication_request_received":"Prośba o autoryzację została przyjęta.","Log_in_without_chat":"Zaloguj bez komunikatora","has_come_online":"jest teraz dostępny","Unknown_sender":"Nieznany nadawca","Please_allow_access_to_microphone_and_camera":"Kliknij \"Potwierdź\" na górze, aby móc korzystać z mikrofonu oraz kamery.","Incoming_call":"Przychodzące połączenie","from":"z","Do_you_want_to_accept_the_call_from":"Akceptujesz połączenie od","Reject":"Odrzuć","Accept":"Zaakceptuj","hang_up":"odbierz","snapshot":"zrób zdjęcie","mute_my_audio":"wycisz dźwięk","pause_my_video":"zatrzymaj moje wideo","fullscreen":"Pełny ekran","Info":"Informacja","Local_IP":"Adres IP","Remote_IP":"Zdalny adres IP","Local_Fingerprint":"Kod lokalny","Remote_Fingerprint":"Zdalny kod","Video_call_not_possible":"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.","Start_video_call":"Rozpocznij rozmowę wideo","Join_chat":"Dołącz do czata","Join":"Dołącz","Room":"Pokój","Nickname":"Nazwa użytkownika","left_the_building":"__nickname__ wyszedł","entered_the_room":"__nickname__ wszedł do pokoju","is_now_known_as":"__oldNickname__ zmienił nazwę na __newNickname__","This_room_is":"Ten pokój jest","muc_hidden":{"keyword":"ukryty","description":"nie można odnaleźć elementów wyszukiwania"},"muc_membersonly":{"keyword":"tylko zalogowani","description":"musisz być członkiem listy"},"muc_moderated":{"keyword":"moderowano","description":"tylko osoby z opcją \"głos\" mogą wysyłać wiadomość"},"muc_nonanonymous":{"keyword":"nie-anonimowy","description":"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},"muc_open":{"keyword":"otwarty","description":"wszyscy mają pozwolenie aby dołączyć"},"muc_passwordprotected":{"keyword":"ograniczone hasłem","description":"musisz wpisać prawidłowe hasło"},"muc_persistent":{"keyword":"trwale","description":"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},"muc_public":{"keyword":"publiczny","description":"wyszukawno"},"muc_semianonymous":{"keyword":"pół-anonimowy","description":"Twój identyfikator jabber jest widoczny w pokoju adminów"},"muc_temporary":{"keyword":"tymczasowy","description":"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},"muc_unmoderated":{"keyword":"niemoderowany","description":"wszyscy są uprawnieni do pisania wiadomości"},"muc_unsecured":{"keyword":"niezabezpieczone","description":"nie musisz wpisywać hasła"},"Continue":"Kontynuuj","Server":"Serwer","Rooms_are_loaded":"Pokoje zostały załadowane","Could_load_only":"Nie załadowano __count__ pokoi","muc_explanation":"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło","You_already_joined_this_room":"Już dołączyłeś do tego pokoju","This_room_will_be_closed":"Ten pokój będzie zamknięty","Room_not_found_":"Nowy pokój będzie stworzony","Loading_room_information":"Ładowani informacji o pokoju","Destroy":"Zniszczony","Leave":"Opuść","changed_subject_to":"__nickname__ zmienił temat pokoju na \"__subject__\"","muc_removed_kicked":"Zostałeś wyrzucony z pokoju","muc_removed_info_kicked":"__nickname__ został wyrzucony z pokoju","muc_removed_banned":"Zostałeś zbanowany","muc_removed_info_banned":"__nickname__ został zbanowany","muc_removed_affiliation":"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_info_affiliation":"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_membersonly":"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...","muc_removed_info_membersonly":"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków","muc_removed_shutdown":"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi","Reason":"Powód","message_not_send":"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje","message_not_send_forbidden":"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju","This_room_has_been_closed":"Ten pokój został zamknięty","Room_logging_is_enabled":"Logowanie do pokoju jest włączone","A_password_is_required":"Hasło jest wymagane","You_are_not_on_the_member_list":"Nie jesteś na liście członków","You_are_banned_from_this_room":"Zostałeś zbanowany w tym pokoju","Your_desired_nickname_":"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną","The_maximum_number_":"Została osiągnięta maksymalna liczba użytkowników w tym pokoju","This_room_is_locked_":"Ten pokój jest zablokowany","You_are_not_allowed_to_create_":"Nie masz uprawnień do tworzenia pokoju","Alert":"Alarm","Call_started":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","is_":"jest __status__","You_received_a_message_from_an_unknown_sender_":"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?","Your_roster_is_empty_add_":"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>","onsmp_explanation_question":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.","onsmp_explanation_secret":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.","from_sender":"z __sender__","Verified_private_conversation_started":"Zweryfikowano Rozmowa prywatna rozpoczęta.","Unverified_private_conversation_started":"Niezweryfikowano Rozmowa prywatna rozpoczęta.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP."}},"pt-BR":{"translation":{"Logging_in":"Entrando...","your_connection_is_unencrypted":"Sua conexão não é encriptada","your_connection_is_encrypted":"Sua conexão é encriptada","your_buddy_closed_the_private_connection":"Seu contato fechou a conexão privada","start_private":"Iniciar conversa privada","close_private":"Fechar conversa privada","your_buddy_is_verificated":"Seu contato está verificado","you_have_only_a_subscription_in_one_way":"Você só tem a inscrição one-way","authentication_query_sent":"Pergunta de autenticação enviada","your_message_wasnt_send_please_end_your_private_conversation":"Sua mensagem não foi enviada. Por favor finalize sua conversa privada","unencrypted_message_received":"Mensagem não encriptada recebida","not_available":"Indisponível","no_connection":"Sem conexão!","relogin":"reentrar","trying_to_start_private_conversation":"Tentando iniciar conversa privada","Verified":"Verificado","Unverified":"Não verificado","private_conversation_aborted":"Conversa privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.","conversation_is_now_verified":"Conversa verificada.","authentication_failed":"Autenticação falhou.","Creating_your_private_key_":"Criando sua chave privada: isso pode demorar um pouco.","Authenticating_a_buddy_helps_":"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.","How_do_you_want_to_authenticate_your_buddy":"Como você gostaria de se autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Selecione o método...","Manual":"Manual","Question":"Pergunta","Secret":"Senha","To_verify_the_fingerprint_":"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.","Your_fingerprint":"Sua impressão digital","Buddy_fingerprint":"Impressão digital do contato","Close":"Fechar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.","Ask":"Pergunta","To_authenticate_pick_a_secret_":"Para autenticar, escolha um segredo que somente você e seu contato saibam.","Compare":"Compare","Fingerprints":"Impressões digitais","Authentication":"Autenticação","Message":"Mensagem","Add_buddy":"Adicionar contato","rename_buddy":"renomear contato","delete_buddy":"remover contato","Login":"Entrar","Username":"Usuário","Password":"Senha","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Digite seu nome completo e um apelido opcional.","Alias":"Apelido","Add":"Adicionar","Subscription_request":"Pedido de inscrição","You_have_a_request_from":"Você tem um pedido de","Deny":"Negar","Approve":"Aprovar","Remove_buddy":"Remover contato","You_are_about_to_remove_":"Você está prestes a remover {{bid_name}} (<b>{{bid_jid}}</b>) de sua lista de contatos. Todas as conversas serão fechadas.","Continue_without_chat":"Continue sem converar","Please_wait":"Por favor aguarde","Login_failed":"Autenticação da conversa falhou","Sorry_we_cant_authentikate_":"A autenticação com o servidor falhou. Talvez seja a senha errada?","Retry":"Voltar","clear_history":"Limpar histórico","New_message_from":"Nova mensagem de __name__","Should_we_notify_you_":"Devemos continuar notificando sobre novas mensagens no futuro?","Please_accept_":"Por favor clique no botão \"Permitir\" na parte superior.","Hide_offline":"Esconder contatos desconectados","Show_offline":"Mostrar contatos desconectados","About":"Sobre","dnd":"Não perturbe","Mute":"Mudo","Unmute":"Ligar","Subscription":"Inscrição","both":"ambos","Status":"Status","online":"online","chat":"conversa","away":"ausente","xa":"ausente por mais tempo","offline":"desativado","none":"nenhum","Unknown_instance_tag":"Marcação desconhecida da instância","Not_one_of_our_latest_keys":"Nenhuma de nossas ultimas chaves.","Received_an_unreadable_encrypted_message":"Mensagem encriptada ilegível foi recebida.","Online":"Online","Chatty":"Tagarela","Away":"Ausente","Extended_away":"Ausente por mais tempo","Offline":"Desativado","Friendship_request":"Pedido de amizade","Confirm":"Confirmar","Dismiss":"Ignorar","Remove":"Remover","Online_help":"Ajuda online","FN":"Nome completo","N":" ","FAMILY":"Sobrenome","GIVEN":"Nome","NICKNAME":"Apelido","URL":"URL","ADR":"Endereço","STREET":"Rua, Av, etc","EXTADD":"Complemento","LOCALITY":"Localidade","REGION":"Região","PCODE":"CEP","CTRY":"País","TEL":"Telefone","NUMBER":"Número","EMAIL":"Email","USERID":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","send_message":"Enviar mensagem","get_info":"Exibir informações","Settings":"Configurações","Priority":"Prioridade","Save":"Salvar","User_settings":"Configurações do usuário","A_fingerprint_":"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.","is":"é","Login_options":"Opções de login","BOSH_url":"BOSH URL","Domain":"Domínio","Resource":"Recurso","On_login":"Ao autenticar","Received_an_unencrypted_message":"Mensagem não encriptada recebida","Sorry_your_buddy_doesnt_provide_any_information":"Desculpe, seu contato não forneceu nenhuma informação","Info_about":"Informações sobre","Authentication_aborted":"Autenticação encerrada.","Authentication_request_received":"Pedido de autenticação recebido","Log_in_without_chat":"Entrar sem conversar","has_come_online":"ficou online","Unknown_sender":"Emissor desconhecido","Please_allow_access_to_microphone_and_camera":"Por favor clique no botão \"Permitir\" no topo, para conceder acesso ao seu microfone e câmera.","Incoming_call":"Recebendo chamada","from":"de","Do_you_want_to_accept_the_call_from":"Você aceita a chamada de","Reject":"Negar","Accept":"Aceitar","hang_up":"desligar","snapshot":"registrar imagem","mute_my_audio":"mudo","pause_my_video":"pausar vídeo","fullscreen":"tela cheia","Info":"Informações","Local_IP":"IP local","Remote_IP":"IP remoto","Local_Fingerprint":"Fingerprint local","Remote_Fingerprint":"Fingerprint remoto","Video_call_not_possible":"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.","Start_video_call":"Iniciar chamada de vídeo","Join_chat":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","is_":"é __status__","You_received_a_message_from_an_unknown_sender_":"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?","Your_roster_is_empty_add_":"Sua lista está vazia, adicione um <a>novo contato</a>","onsmp_explanation_question":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.","onsmp_explanation_secret":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado Conversa privada iniciada.","Unverified_private_conversation_started":"Não verificado Conversa privada iniciada.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP"}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici {{bid_name}} (<b>{{bid_jid}}</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi {{bid_name}} (<b>{{bid_jid}}</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"ru":{"translation":{"Logging_in":"Вход в систему...","your_connection_is_unencrypted":"Ваше соединение не зашифровано.","your_connection_is_encrypted":"Ваше соединение зашифровано.","your_buddy_closed_the_private_connection":"Ваш собеседник закончил зашифрованное соединение.","start_private":"Начать зашифрованный чат","close_private":"Закончить зашифрованный чат","your_buddy_is_verificated":"Собеседник подтвержден.","you_have_only_a_subscription_in_one_way":"У вас только односторонняя подписка.","authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.","unencrypted_message_received":"Получено незашифрованное сообщение","not_available":"Не доступен","no_connection":"Нет соединения!","relogin":"переподключиться","trying_to_start_private_conversation":"Попытка начать зашифрованный чат!","Verified":"Подтверждено","Unverified":"Не подтверждено","private_conversation_aborted":"Зашифрованный чат отклонен!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.","conversation_is_now_verified":"Чат теперь утвержден.","authentication_failed":"Ошибка авторизации.","Creating_your_private_key_":"Создается приватный ключ. Это может занять некоторое время","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":"Выберите метод...","Manual":"Вручную","Question":"Вопрос","Secret":"Пароль","To_verify_the_fingerprint_":null,"Your_fingerprint":"Ваш отпечаток","Buddy_fingerprint":"Отпечаток собеседника","Close":"Закрыть","Compared":"Сравнение завершено","To_authenticate_using_a_question_":"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.","Ask":null,"To_authenticate_pick_a_secret_":"Для авторизации выберите пароль, который знаете только Вы и собеседник.","Compare":"Сравнить","Fingerprints":"Отпечатки","Authentication":"Авторизация","Message":"Сообщение","Add_buddy":"Добавить контакт","rename_buddy":"переименовать контакт","delete_buddy":"удалить контакт","Login":"Вход","Username":"Логин","Password":"Пароль","Cancel":"Отмена","Connect":"Подключить","Type_in_the_full_username_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить {{bid_name}} (<b>{{bid_jid}}</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","Hide_offline":"Спрятать отключенных","Show_offline":"Показать отключенных","About":"О проекте","dnd":"Не беспокоить","Mute":"Выкл. уведомления","Unmute":"Вкл. уведомления","Subscription":"Подписка","both":"оба","Status":"Статус","online":"в сети","chat":"готов общаться","away":"отошел","xa":"отсутствую","offline":"не в сети","none":"нет","Unknown_instance_tag":"Неизвестный тег.","Not_one_of_our_latest_keys":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"BOSH URL","Domain":"Домен","Resource":"Ресурс","On_login":"Автоматически подключаться","Received_an_unencrypted_message":"Получено незашифрованное сообщение","Sorry_your_buddy_doesnt_provide_any_information":"К сожалению, контакт не предоставил какой-либо информации.","Info_about":"Информация о","Authentication_aborted":"Аутентификация прервана.","Authentication_request_received":"Получен запрос проверки подлинности.","Log_in_without_chat":"Вход без чата","has_come_online":"появился в сети","Unknown_sender":"Неизвестный отправитель","Please_allow_access_to_microphone_and_camera":"Нажмите кнопку \"Разрешить\" вверху страницы, чтобы предоставить доступ к микрофону и камере.","Incoming_call":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","message_not_send":"Ваше сообщение не было отправлено из-за ошибки","message_not_send_item-not-found":"Ваше сообщение не было отправлено, т.к. этой комнаты не существует","message_not_send_forbidden":"Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате","message_not_send_not-acceptable":"Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты","This_room_has_been_closed":"Эта комната была закрыта","Room_logging_is_enabled":"Журналирование комнаты включено","A_password_is_required":"Необходим пароль","You_are_not_on_the_member_list":"Вы не в списке участников","You_are_banned_from_this_room":"Вас забанили в этой комнате","Your_desired_nickname_":"Данное имя пользователя уже занято, пожалуйста, выберите другое имя пользователя","The_maximum_number_":"Достигнут лимит максимального количества посетителей этой комнаты","This_room_is_locked_":"Эта комната заблокирована","You_are_not_allowed_to_create_":"Вы не можете создавать комнаты","Alert":"Внимание","Call_started":"Вызов начался","Call_terminated":"Вызов завершен","Carbon_copy":"Копировать сообщения","Enable":"Включить","jingle_reason_busy":"занято","jingle_reason_decline":"запрещено","jingle_reason_success":"сбросили","Media_failure":"Ошибка передачи медиа","No_local_audio_device":"Нет локального аудио-устройства.","No_local_video_device":"Нет локального видео-устройства.","Ok":"Ок","PermissionDeniedError":"Вы или Ваш браузер запретили использовать микрофон/камеру","Use_local_audio_device":"Использовать локальное аудио-устройство.","Use_local_video_device":"Использовать локальное видео-устройство.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Вы получили сообщение от неизвестного отправителя (__sender__)","Your_roster_is_empty_add_":"Ваш список контактов пуст, добавить <a>новый контакт</a>","onsmp_explanation_question":"Собеседник пытается определить, что общается действительно с Вами.","onsmp_explanation_secret":"Собеседник пытается определить, что общается действительно с Вами. введите пароль.","from_sender":"от __sender__","Verified_private_conversation_started":"Подтверждено Зашифрованный чат начат.","Unverified_private_conversation_started":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу."}},"tr-TR":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"vi-VN":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"zh-TW":{"translation":{"Logging_in":"正在登入…","your_connection_is_unencrypted":"連線沒加密。","your_connection_is_encrypted":"連線有加密。","your_buddy_closed_the_private_connection":"聯絡人關閉了加密連線。","start_private":"開始加密","close_private":"結束加密","your_buddy_is_verificated":"聯絡人已校驗。","you_have_only_a_subscription_in_one_way":"只有單向訂閱。","authentication_query_sent":"驗證要求送出了。","your_message_wasnt_send_please_end_your_private_conversation":"訊息沒送出去。請結束加密的對話。","unencrypted_message_received":"收到沒加密的訊息","not_available":"不存在","no_connection":"沒有連線!","relogin":"重新登入","trying_to_start_private_conversation":"正在試著開始加密的對話!","Verified":"已校驗","Unverified":"未校驗","private_conversation_aborted":"加密的對話中斷了!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"聯絡人把這場加密的對話關掉了!你也應該同樣關掉。","conversation_is_now_verified":"對話現在校驗過了。","authentication_failed":"驗證失敗。","Creating_your_private_key_":"正在產生你的私人金鑰,會花一段時間。","Authenticating_a_buddy_helps_":"聯絡人驗證可以確保跟你說話的是真的那個人。","How_do_you_want_to_authenticate_your_buddy":"你想要怎樣驗證{{bid_name}} ({{bid_jid}})?","Select_method":"選個方式...","Manual":"手動","Question":"問答","Secret":"祕密","To_verify_the_fingerprint_":"要校驗聯絡人的電子指紋,請透過其他可靠的管道跟她/他聯絡,比如說電話。","Your_fingerprint":"你的電子指紋","Buddy_fingerprint":"聯絡人的電子指紋","Close":"關閉","Compared":"比對正確","To_authenticate_using_a_question_":"要用問答來驗證的話,請找一個只有你和聯絡人才知道答案的問題。","Ask":"問題","To_authenticate_pick_a_secret_":"要驗證的話,請找一個只有你和聯絡人知道的祕密。","Compare":"比對","Fingerprints":"電子指紋","Authentication":"驗證","Message":"訊息","Add_buddy":"加聯絡人","rename_buddy":"重新命名聯絡人","delete_buddy":"刪掉聯絡人","Login":"登入","Username":"使用者名稱","Password":"密碼","Cancel":"取消","Connect":"連線","Type_in_the_full_username_":"請打全名,別名可有可無","Alias":"別名","Add":"加入","Subscription_request":"訂閱請求","You_have_a_request_from":"收到聯絡人的請求:","Deny":"拒絕","Approve":"同意","Remove_buddy":"刪除聯絡人","You_are_about_to_remove_":"你就要把{{bid_name}} ({{bid_jid}})從聯絡簿刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","Domain":"網域","Resource":"資源","On_login":"登入啟動","Received_an_unencrypted_message":"收到了一則沒加密的訊息","Sorry_your_buddy_doesnt_provide_any_information":"抱歉,聯絡人沒有提供任何資訊。","Info_about":"帳號資訊:","Authentication_aborted":"驗證中斷。","Authentication_request_received":"驗證請求收到了。","Log_in_without_chat":"登入但不啟用聊天","has_come_online":"上線了","Unknown_sender":"不明傳訊人","Please_allow_access_to_microphone_and_camera":"請點上方的「接受」按鈕來允許我們使用麥克風和相機。","Incoming_call":"來電","from":"只出","Do_you_want_to_accept_the_call_from":"是否要接聽來電:","Reject":"拒絕","Accept":"接受","hang_up":"掛斷","snapshot":"截圖","mute_my_audio":"關掉我的聲音","pause_my_video":"暫停我的影像","fullscreen":"全螢幕","Info":"資料","Local_IP":"本機網路位址","Remote_IP":"遠端網路位址","Local_Fingerprint":"本機電子指紋","Remote_Fingerprint":"遠端電子指紋","Video_call_not_possible":"無法視訊通話。聯絡人不支援視訊。","Start_video_call":"開始視訊通話","Join_chat":"參加聊天","Join":"參加","Room":"聊天室","Nickname":"綽號","left_the_building":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","message_not_send":"訊息因為發生錯誤沒送出去","message_not_send_item-not-found":"訊息沒送出去,因為聊天室不存在了","message_not_send_forbidden":"訊息沒送出去,因為你被消音了","message_not_send_not-acceptable":"訊息沒送出去,因為你不是聊天室的參與人了","This_room_has_been_closed":"聊天室已經關閉了","Room_logging_is_enabled":"聊天室紀錄打開了","A_password_is_required":"需要密碼","You_are_not_on_the_member_list":"你不是會員","You_are_banned_from_this_room":"你被禁止進入聊天室了","Your_desired_nickname_":"這個綽號被用掉了,請換一個","The_maximum_number_":"這間聊天室已經到達使用者數目的上限","This_room_is_locked_":"聊天室上鎖了","You_are_not_allowed_to_create_":"不允許你開新的聊天室","Alert":"警告","Call_started":"通話開始","Call_terminated":"通話結束","Carbon_copy":"副本","Enable":"打開","jingle_reason_busy":"忙線中","jingle_reason_decline":"被拒絕","jingle_reason_success":"被掛斷","Media_failure":"媒體錯誤","No_local_audio_device":"本機沒有音訊設備。","No_local_video_device":"本機沒有視訊設備。","Ok":"好","PermissionDeniedError":"你或你的瀏覽器拒絕了音視訊的權限","Use_local_audio_device":"使用本機音訊設備。","Use_local_video_device":"使用本機視訊設備。","is_":"狀態: __status__","You_received_a_message_from_an_unknown_sender_":"收到了不明人士(__sender__)傳來的訊息。你要打開來看嗎?","Your_roster_is_empty_add_":"好友清單是空的,請加<a>新的聯絡人</a>","onsmp_explanation_question":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入問題的答案,然後按\"回答\"。","onsmp_explanation_secret":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入你們之間的祕密。","from_sender":"來自:__sender__","Verified_private_conversation_started":"加密且已校驗的對話開始了。","Unverified_private_conversation_started":"加密但未校驗的對話開始了。","Bookmark":"書籤","Auto-join":"自動參加","Edit_bookmark":"編輯書籤","Room_logging_is_disabled":"聊天室紀錄關掉了","Room_is_now_non-anoymous":"現在聊天室禁止匿名了","Room_is_now_semi-anonymous":"現在聊天室變半匿名了","Do_you_want_to_change_the_default_room_configuration":"你想要改變聊天室的預設配置嗎?","Default":"預設值","Change":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。"}},"zh":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}}};
+var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"bn-BD":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"de":{"translation":{"Logging_in":"Login läuft…","your_connection_is_unencrypted":"Deine Verbindung ist unverschlüsselt.","your_connection_is_encrypted":"Deine Verbindung ist verschlüsselt.","your_buddy_closed_the_private_connection":"Dein Kontakt hat die private Verbindung getrennt.","start_private":"Privat starten","close_private":"Privat abbrechen","your_buddy_is_verificated":"Dein Kontakt ist verifiziert.","you_have_only_a_subscription_in_one_way":"Der Kontaktstatus ist einseitig.","authentication_query_sent":"Authentifizierungsanfrage gesendet.","your_message_wasnt_send_please_end_your_private_conversation":"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.","unencrypted_message_received":"Unverschlüsselte Nachricht erhalten.","not_available":"Nicht verfügbar.","no_connection":"Keine Verbindung.","relogin":"Neu anmelden.","trying_to_start_private_conversation":"Versuche private Konversation zu starten.","Verified":"Verifiziert","Unverified":"Unverifiziert","private_conversation_aborted":"Private Konversation abgebrochen.","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!","conversation_is_now_verified":"Konversation ist jetzt verifiziert","authentication_failed":"Authentifizierung fehlgeschlagen.","Creating_your_private_key_":"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.","Authenticating_a_buddy_helps_":"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.","How_do_you_want_to_authenticate_your_buddy":"Wie willst du __bid_name__ (<b>__bid_jid__</b>) authentifizieren?","Select_method":"Wähle...","Manual":"Manual","Question":"Frage","Secret":"Geheimnis","To_verify_the_fingerprint_":"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.","Your_fingerprint":"Dein Fingerprint","Buddy_fingerprint":"Sein/Ihr Fingerprint","Close":"Schließen","Compared":"Verglichen","To_authenticate_using_a_question_":"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.","Ask":"Frage","To_authenticate_pick_a_secret_":"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.","Compare":"Vergleiche","Fingerprints":"Fingerprints","Authentication":"Authentifizierung","Message":"Nachricht","Add_buddy":"Kontakt hinzufügen","rename_buddy":"Kontakt umbenennen","delete_buddy":"Kontakt löschen","Login":"Anmeldung","Username":"Benutzername","Password":"Passwort","Cancel":"Abbrechen","Connect":"Verbinden","Type_in_the_full_username_":"Gib bitte den vollen Benutzernamen und optional ein Alias an.","Alias":"Alias","Add":"Hinzufügen","Subscription_request":"Kontaktanfrage","You_have_a_request_from":"Du hast eine Anfrage von","Deny":"Ablehnen","Approve":"Bestätigen","Remove_buddy":"Kontakt entfernen","You_are_about_to_remove_":"Du bist gerade dabei __bid_name__ (<b>__bid_jid__</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.","Continue_without_chat":"Weiter ohne Chat","Please_wait":"Bitte warten","Login_failed":"Chat-Anmeldung fehlgeschlagen","Sorry_we_cant_authentikate_":"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?","Retry":"Zurück","clear_history":"Lösche Verlauf","New_message_from":"Neue Nachricht von __name__","Should_we_notify_you_":"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?","Please_accept_":"Bitte klick auf den \"Zulassen\" Button oben.","Hide_offline":"Offline ausblenden","Show_offline":"Offline einblenden","About":"Über","dnd":"Beschäftigt","Mute":"Ton aus","Unmute":"Ton an","Subscription":"Bezug","both":"beidseitig","Status":"Status","online":"online","chat":"chat","away":"abwesend","xa":"länger abwesend","offline":"offline","none":"keine","Unknown_instance_tag":"Unbekannter instance tag.","Not_one_of_our_latest_keys":"Nicht einer unserer letzten Schlüssel.","Received_an_unreadable_encrypted_message":"Eine unlesbare verschlüsselte Nachricht erhalten.","Online":"Online","Chatty":"Gesprächig","Away":"Abwesend","Extended_away":"Länger abwesend","Offline":"Offline","Friendship_request":"Kontaktanfrage","Confirm":"Bestätigen","Dismiss":"Ablehnen","Remove":"Löschen","Online_help":"Online Hilfe","FN":"Name","N":" ","FAMILY":"Familienname","GIVEN":"Vorname","NICKNAME":"Spitzname","URL":"URL","ADR":"Adresse","STREET":"Straße","EXTADD":"Zusätzliche Adresse","LOCALITY":"Ortschaft","REGION":"Region","PCODE":"Postleitzahl","CTRY":"Land","TEL":"Telefon","NUMBER":"Nummer","EMAIL":"E-Mail","USERID":" ","ORG":"Organisation","ORGNAME":"Name","ORGUNIT":"Abteilung","TITLE":"Titel","ROLE":"Rolle","BDAY":"Geburtstag","DESC":"Beschreibung","PHOTO":" ","send_message":"Sende Nachricht","get_info":"Benutzerinformationen","Settings":"Einstellungen","Priority":"Priorität","Save":"Speichern","User_settings":"Benutzereinstellungen","A_fingerprint_":"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.","is":"ist","Login_options":"Anmeldeoptionen","BOSH_url":"BOSH url","Domain":"Domain","Resource":"Ressource","On_login":"Beim Anmelden","Received_an_unencrypted_message":"Unverschlüsselte Nachricht empfangen","Sorry_your_buddy_doesnt_provide_any_information":"Dein Kontakt stellt leider keine Informationen bereit.","Info_about":"Info über","Authentication_aborted":"Authentifizierung abgebrochen.","Authentication_request_received":"Authentifizierungsanfrage empfangen.","Log_in_without_chat":"Anmelden ohne Chat","has_come_online":"ist online gekommen","Unknown_sender":"Unbekannter Sender","Please_allow_access_to_microphone_and_camera":"Bitte klick auf den \"Zulassen\" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.","Incoming_call":"Eingehender Anruf","from":"von","Do_you_want_to_accept_the_call_from":"Möchtest Du den Anruf annehmen von","Reject":"Ablehnen","Accept":"Annehmen","hang_up":"Auflegen","snapshot":"Schnappschuss","mute_my_audio":"Mein Ton aus","pause_my_video":"Mein Video pausieren","fullscreen":"Vollbild","Info":"Info","Local_IP":"Lokale IP","Remote_IP":"Remote IP","Local_Fingerprint":"Lokaler Fingerprint","Remote_Fingerprint":"Remote Fingerprint","Video_call_not_possible":"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.","Start_video_call":"Starte Videoanruf","Join_chat":"Gruppe beitreten","Join":"Betreten","Room":"Gruppe","Nickname":"Nickname","left_the_building":"__nickname__ hat die Gruppe verlassen","entered_the_room":"__nickname__ ist der Gruppe beigetreten","is_now_known_as":"__oldNickname__ ist nun unter __newNickname__ bekannt","This_room_is":"Diese Gruppe ist","muc_hidden":{"keyword":"versteckt","description":"kann durch die Suche nicht gefunden werden"},"muc_membersonly":{"keyword":"nur für Mitglieder","description":"du musst auf der Mitgliederliste stehen"},"muc_moderated":{"keyword":"moderiert","description":"Nur Personen die \"Mitspracherecht\" haben dürfen Nachrichten senden"},"muc_nonanonymous":{"keyword":"nicht anonym","description":"deine Jabber ID wird für alle Mitglieder sichtbar sein"},"muc_open":{"keyword":"offen","description":"jeder darf dieser Gruppe beitreten"},"muc_passwordprotected":{"keyword":"passwortgeschützt","description":"du benötigst das korrekte Passwort"},"muc_persistent":{"keyword":"permanent","description":"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_public":{"keyword":"öffentlich","description":"kann durch die Suche gefunden werden"},"muc_semianonymous":{"keyword":"teilweise anonym","description":"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},"muc_temporary":{"keyword":"temporär","description":"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_unmoderated":{"keyword":"nicht moderiert","description":"jeder darf Nachrichten senden"},"muc_unsecured":{"keyword":"ungesichert","description":"es wird kein Passwort benötigt"},"Continue":"Weiter","Server":"Server","Rooms_are_loaded":"Gruppen werden geladen","Could_load_only":"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden","muc_explanation":"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten","You_already_joined_this_room":"Du bist dieser Gruppe bereits beigetreten","This_room_will_be_closed":"Diese Gruppe wird geschlossen","Room_not_found_":"Es wird eine neue Gruppe erstellt","Loading_room_information":"Informationen über Gruppe werden geladen","Destroy":"Auflösen","Leave":"Verlassen","changed_subject_to":"__nickname__ hat das Thema auf __subject__ geändert","muc_removed_kicked":"Du wurdest aus der Gruppe entfernt","muc_removed_info_kicked":"__nickname__ wurde aus der Gruppe entfernt","muc_removed_banned":"Du wurdest aus der Gruppe ausgeschlossen","muc_removed_info_banned":"__nickname__ wurde aus der Gruppe ausgeschlossen","muc_removed_affiliation":"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus","muc_removed_info_affiliation":"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus","muc_removed_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt","muc_removed_info_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt","muc_removed_shutdown":"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird","Reason":"Grund","message_not_send":"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert","message_not_send_forbidden":"Deine Nachricht wurde nicht versandt, da du kein \"Mitspracherecht\" hast","message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist","This_room_has_been_closed":"Diese Gruppe wurde geschlossen","Room_logging_is_enabled":"Gesprächsverlauf kann öffentlich einsehbar sein","A_password_is_required":"Es wird ein Passwort benötigt","You_are_not_on_the_member_list":"Du bist kein eingetragenes Mitglied","You_are_banned_from_this_room":"Du wurdest von dieser Gruppe ausgeschlossen","Your_desired_nickname_":"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.","The_maximum_number_":"Die maximale Anzahl der Mitglieder wurde erreicht.","This_room_is_locked_":"Diese Gruppe ist gesperrt","You_are_not_allowed_to_create_":"Du darfst keine neue Gruppe erstellen","Alert":"Alarm","Call_started":"Anruf gestarted","Call_terminated":"Anruf beendet","Carbon_copy":"Kopie","Enable":"Aktivieren","jingle_reason_busy":"beschäftigt","jingle_reason_decline":"abgelehnt","jingle_reason_success":"aufgelegt","Media_failure":"Gerätefehler","No_local_audio_device":"Kein eigenes Audio Gerät","No_local_video_device":"Keine eigene Webcam","Ok":"Ok","PermissionDeniedError":"Du oder dein Browser haben die Audio/Video Berechtigung verweigert","Use_local_audio_device":"Nutze eigenes Audio Gerät","Use_local_video_device":"Benutze eigene Webcam","is_":"ist __status__","You_received_a_message_from_an_unknown_sender_":"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?","Your_roster_is_empty_add_":"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>","onsmp_explanation_question":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.","onsmp_explanation_secret":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.","from_sender":"von __sender__","Verified_private_conversation_started":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.","_is_composing":" tippt gerade...","_are_composing":" tippen gerade...","Chat_state_notifications":"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?","Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":"Schließe alle"}},"el":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"en":{"translation":{"Logging_in":"Logging in…","your_connection_is_unencrypted":"Your connection is unencrypted.","your_connection_is_encrypted":"Your connection is encrypted.","your_buddy_closed_the_private_connection":"Your contact closed the private connection.","start_private":"Start private","close_private":"Close private","your_buddy_is_verificated":"Your contact is verified.","you_have_only_a_subscription_in_one_way":"You only have a one-way subscription.","authentication_query_sent":"Authentication query sent.","your_message_wasnt_send_please_end_your_private_conversation":"Your message was not sent. Please end your private conversation.","unencrypted_message_received":"Unencrypted message received","not_available":"Not available","no_connection":"No connection!","relogin":"relogin","trying_to_start_private_conversation":"Trying to start private conversation!","Verified":"Verified","Unverified":"Unverified","private_conversation_aborted":"Private conversation aborted!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Your contact closed the private conversation! You should do the same.","conversation_is_now_verified":"Conversation is now verified.","authentication_failed":"Authentication failed.","Creating_your_private_key_":"Creating your private key; this may take a while.","Authenticating_a_buddy_helps_":"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.","How_do_you_want_to_authenticate_your_buddy":"How do you want to authenticate __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Select method...","Manual":"Manual","Question":"Question","Secret":"Secret","To_verify_the_fingerprint_":"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.","Your_fingerprint":"Your fingerprint","Buddy_fingerprint":"Contact fingerprint","Close":"Close","Compared":"Compared","To_authenticate_using_a_question_":"To authenticate using a question, pick a question whose answer is known only you and your contact.","Ask":"Ask","To_authenticate_pick_a_secret_":"To authenticate, pick a secret known only to you and your contact.","Compare":"Compare","Fingerprints":"Fingerprints","Authentication":"Authentication","Message":"Message","Add_buddy":"Add contact","rename_buddy":"rename contact","delete_buddy":"delete contact","Login":"Login","Username":"Username","Password":"Password","Cancel":"Cancel","Connect":"Connect","Type_in_the_full_username_":"Type in the full username and an optional alias.","Alias":"Alias","Add":"Add","Subscription_request":"Subscription request","You_have_a_request_from":"You have a request from","Deny":"Deny","Approve":"Approve","Remove_buddy":"Remove contact","You_are_about_to_remove_":"You are about to remove __bid_name__ (<b>__bid_jid__</b>) from your contact list. All related chats will be closed.","Continue_without_chat":"Continue without chat","Please_wait":"Please wait","Login_failed":"Chat login failed","Sorry_we_cant_authentikate_":"Authentication failed with the chat server. Maybe the password is wrong?","Retry":"Back","clear_history":"Clear history","New_message_from":"New message from __name__","Should_we_notify_you_":"Should we notify you about new messages in the future?","Please_accept_":"Please click the \"Allow\" button at the top.","Hide_offline":"Hide offline contacts","Show_offline":"Show offline contacts","About":"About","dnd":"Do Not Disturb","Mute":"Mute","Unmute":"Unmute","Subscription":"Subscription","both":"both","Status":"Status","online":"online","chat":"chat","away":"away","xa":"extended away","offline":"offline","none":"none","Unknown_instance_tag":"Unknown instance tag.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Received an unreadable encrypted message.","Online":"Online","Chatty":"Chatty","Away":"Away","Extended_away":"Extended away","Offline":"Offline","Friendship_request":"Contact request","Confirm":"Confirm","Dismiss":"Dismiss","Remove":"Remove","Online_help":"Online help","FN":"Full name","N":" ","FAMILY":"Family name","GIVEN":"Given name","NICKNAME":"Nickname","URL":"URL","ADR":"Address","STREET":"Street Address","EXTADD":"Extended Address","LOCALITY":"Locality","REGION":"Region","PCODE":"Postal Code","CTRY":"Country","TEL":"Telephone","NUMBER":"Number","EMAIL":"Email","USERID":" ","ORG":"Organization","ORGNAME":"Name","ORGUNIT":"Unit","TITLE":"Job title","ROLE":"Role","BDAY":"Birthday","DESC":"Description","PHOTO":" ","send_message":"Send message","get_info":"Show information","Settings":"Settings","Priority":"Priority","Save":"Save","User_settings":"User settings","A_fingerprint_":"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.","is":"is","Login_options":"Login options","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Resource","On_login":"On login","Received_an_unencrypted_message":"Received an unencrypted message","Sorry_your_buddy_doesnt_provide_any_information":"Sorry, your contact does not provide any information.","Info_about":"Info about","Authentication_aborted":"Authentication aborted.","Authentication_request_received":"Authentication request received.","Log_in_without_chat":"Log in without chat","has_come_online":"has come online","Unknown_sender":"Unknown sender","Please_allow_access_to_microphone_and_camera":"Please click the \"Allow\" button at the top, to allow access to microphone and camera.","Incoming_call":"Incoming call","from":"from","Do_you_want_to_accept_the_call_from":"Do you want to accept the call from","Reject":"Reject","Accept":"Accept","hang_up":"hang up","snapshot":"snapshot","mute_my_audio":"mute my audio","pause_my_video":"pause my video","fullscreen":"fullscreen","Info":"Info","Local_IP":"Local IP","Remote_IP":"Remote IP","Local_Fingerprint":"Local fingerprint","Remote_Fingerprint":"Remote fingerprint","Video_call_not_possible":"Video call not possible. Your contact does not support video calls.","Start_video_call":"Start video call","Join_chat":"Join chat","Join":"Join","Room":"Room","Nickname":"Nickname","left_the_building":"__nickname__ left the building","entered_the_room":"__nickname__ entered the room","is_now_known_as":"__oldNickname__ is now known as __newNickname__","This_room_is":"This room is","muc_hidden":{"keyword":"hidden","description":"can not be found through search"},"muc_membersonly":{"keyword":"members-only","description":"you need to be on the member list"},"muc_moderated":{"keyword":"moderated","description":"only persons with \"voice\" are allowed to send messages"},"muc_nonanonymous":{"keyword":"non-anonymous","description":"your jabber id is exposed to all other occupants"},"muc_open":{"keyword":"open","description":"everyone is allowed to join"},"muc_passwordprotected":{"keyword":"password-protected","description":"you need to provide the correct password"},"muc_persistent":{"keyword":"persistent","description":"will not be destroyed if the last occupant left"},"muc_public":{"keyword":"public","description":"can be found through search"},"muc_semianonymous":{"keyword":"semi-anonymous","description":"your jabber id is only exposed to room admins"},"muc_temporary":{"keyword":"temporary","description":"will be destroyed if the last occupant left"},"muc_unmoderated":{"keyword":"unmoderated","description":"everyone is allowed to send messages"},"muc_unsecured":{"keyword":"unsecured","description":"you need no password to enter"},"Continue":"Continue","Server":"Server","Rooms_are_loaded":"Rooms are loaded","Could_load_only":"Could load only __count__ rooms for autocomplete","muc_explanation":"Please enter room name and optional a nickname and password to join a chat","You_already_joined_this_room":"You already joined this room","This_room_will_be_closed":"This room will be closed","Room_not_found_":"A new room will be created","Loading_room_information":"Loading room information","Destroy":"Destroy","Leave":"Leave","changed_subject_to":"__nickname__ changed the room subject to \"__subject__\"","muc_removed_kicked":"You have been kicked from the room","muc_removed_info_kicked":"__nickname__ has been kicked from the room","muc_removed_banned":"You have been banned from the room","muc_removed_info_banned":"__nickname__ has been banned from the room","muc_removed_affiliation":"You have been removed from the room, because of an affiliation change","muc_removed_info_affiliation":"__nickname__ has been removed from the room, because of an affiliation change","muc_removed_membersonly":"You have been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_info_membersonly":"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_shutdown":"You have been removed from the room, because the MUC service is being shut down","Reason":"Reason","message_not_send":"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist","message_not_send_forbidden":"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room","This_room_has_been_closed":"This room has been closed","Room_logging_is_enabled":"Room logging is enabled","A_password_is_required":"A password is required","You_are_not_on_the_member_list":"You are not on the member list","You_are_banned_from_this_room":"You are banned from this room","Your_desired_nickname_":"Your desired nickname is already in use. Please choose another","The_maximum_number_":"The maximum number of user is reached in this room","This_room_is_locked_":"This room is locked","You_are_not_allowed_to_create_":"You are not allowed to create a room","Alert":"Alert","Call_started":"Call started","Call_terminated":"Call terminated","Carbon_copy":"Carbon copy","Enable":"Enable","jingle_reason_busy":"busy","jingle_reason_decline":"decline","jingle_reason_success":"hung up","Media_failure":"Media failure","No_local_audio_device":"No local audio device.","No_local_video_device":"No local video device.","Ok":"Ok","PermissionDeniedError":"You or your browser denied media permission","Use_local_audio_device":"Use local audio device.","Use_local_video_device":"Use local video device.","is_":"is __status__","You_received_a_message_from_an_unknown_sender_":"You received a message from an unknown sender (__sender__) Do you want to display them?","Your_roster_is_empty_add_":"Your roster is empty, add a <a>new contact</a>","onsmp_explanation_question":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.","onsmp_explanation_secret":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.","from_sender":"from __sender__","Verified_private_conversation_started":"Verified Private conversation started.","Unverified_private_conversation_started":"Unverified Private conversation started.","Bookmark":"Bookmark","Auto-join":"Auto-join","Edit_bookmark":"Edit bookmark","Room_logging_is_disabled":"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous","Do_you_want_to_change_the_default_room_configuration":"Do you want to change the default room configuration?","Default":"Default","Change":"Change","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.","_is_composing":" is composing...","_are_composing":" are composing...","Chat_state_notifications":"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?","Share_screen":"Share screen","Incoming_stream":"Incoming stream","Stream_started":"Stream started","HTTPS_REQUIRED":"This action requires an encrypted connection.","EXTENSION_UNAVAILABLE":"You need a browser extension/addon.","UNKNOWN_ERROR":"An unknown error occured.","Install_extension":"Please install the extension in order to use screen sharing: ","Connection_accepted":"Connection accepted","Stream_terminated":"Stream terminated","Close_all":"Close all","Notification":"Notification"}},"es":{"translation":{"Logging_in":"Por favor, espere...","your_connection_is_unencrypted":"Su conexión no está cifrada.","your_connection_is_encrypted":"Su conexión está cifrada.","your_buddy_closed_the_private_connection":"Su amigo ha cerrado la conexión privada.","start_private":"Iniciar privado","close_private":"Cerrar privado","your_buddy_is_verificated":"Tu amigo está verificado.","you_have_only_a_subscription_in_one_way":"Solo tienes una suscripción de un modo.","authentication_query_sent":"Consulta de verificación enviada.","your_message_wasnt_send_please_end_your_private_conversation":"Su mensaje no fue enviado. Por favor, termine su conversación privada.","unencrypted_message_received":"Mensaje no cifrado recibido:","not_available":"No disponible","no_connection":"¡Sin conexión!","relogin":"iniciar sesión nuevamente","trying_to_start_private_conversation":"¡Intentando iniciar una conversación privada!","Verified":"Verificado","Unverified":"No verificado","private_conversation_aborted":"¡Conversación privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"¡Su amigo cerró la conversación privada! Usted debería hacer lo mismo.","conversation_is_now_verified":"La conversación es ahora verificada.","authentication_failed":"Falló la verificación.","Creating_your_private_key_":"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.","Authenticating_a_buddy_helps_":"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.","How_do_you_want_to_authenticate_your_buddy":"¿Cómo desea autenticar __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Escoja un método...","Manual":"Manual","Question":"Pregunta","Secret":"Secreto","To_verify_the_fingerprint_":"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.","Your_fingerprint":"Tu firma digital","Buddy_fingerprint":"firma digital de tu amigo","Close":"Cerrar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar mediante una pregunta, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo por usted y su amigo.","Compare":"Comparar","Fingerprints":"Firmas digitales","Authentication":"Autenticación","Message":"Mensaje","Add_buddy":"Añadir amigo","rename_buddy":"renombrar amigo","delete_buddy":"eliminar amigo","Login":"Iniciar Sesión","Username":"Usuario","Password":"Contraseña","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Escriba el usuario completo y un alias opcional.","Alias":"Alias","Add":"Añadir","Subscription_request":"Solicitud de suscripción","You_have_a_request_from":"Tienes una petición de","Deny":"Rechazar","Approve":"Aprobar","Remove_buddy":"Eliminar amigo","You_are_about_to_remove_":"Vas a eliminar a __bid_name__ (<b>__bid_jid__</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.","Continue_without_chat":"Continuar","Please_wait":"Espere por favor","Login_failed":"Fallo el inicio de sesión","Sorry_we_cant_authentikate_":"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?","Retry":"Reintentar","clear_history":"Borrar el historial","New_message_from":"Nuevo mensaje de __name__","Should_we_notify_you_":"¿Debemos notificarle sobre nuevos mensajes en el futuro?","Please_accept_":"Por favor, haga clic en el botón \"Permitir\" en la parte superior.","Hide_offline":"Ocultar contactos desconectados","Show_offline":"Mostrar contactos desconectados","About":"Acerca de","dnd":"No Molestar","Mute":"Desactivar sonido","Unmute":"Activar sonido","Subscription":"Suscripción","both":"ambos","Status":"Estado","online":"en línea","chat":"chat","away":"ausente","xa":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más ausente","Offline":"Desconectado","Friendship_request":"Solicitud de amistad","Confirm":"Confirmar","Dismiss":"Rechazar","Remove":"Eliminar","Online_help":"Ayuda en línea","FN":"Nombre completo ","N":" ","FAMILY":"Apellido","GIVEN":"Nombre","NICKNAME":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","USERID":" ","ORG":"Organización","ORGNAME":"Nombre","ORGUNIT":"Departamento","TITLE":"Título","ROLE":"Rol","BDAY":"Cumpleaños","DESC":"Descripción","PHOTO":" ","send_message":"mandar un texto","get_info":"obtener información","Settings":"Ajustes","Priority":"Prioridad","Save":"Guardar","User_settings":"Configuración de usuario","A_fingerprint_":"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser","is":"es","Login_options":"Opciones de login","BOSH_url":"BOSH url","Domain":"Dominio","Resource":"Recurso","On_login":"Iniciar sesión","Received_an_unencrypted_message":"Recibe un mensaje no cifrado","Sorry_your_buddy_doesnt_provide_any_information":"Lo sentimos, su amigo no provee ninguna información.","Info_about":"Info acerca de","Authentication_aborted":"Autenticación abortada","Authentication_request_received":"Pedido de autenticación recibido.","Log_in_without_chat":"Ingresar sin chat","has_come_online":"se ha conectado","Unknown_sender":"Remitente desconocido","Please_allow_access_to_microphone_and_camera":"Por favor, permitir el acceso al micrófono y la cámara.","Incoming_call":"Llamada entrante","from":"de","Do_you_want_to_accept_the_call_from":"Desea aceptar la llamada de","Reject":"Rechazar","Accept":"Aceptar","hang_up":"colgar","snapshot":"instantánea","mute_my_audio":"silenciar mi audio","pause_my_video":"pausar mi vídeo","fullscreen":"pantalla completa","Info":"Info","Local_IP":"IP local","Remote_IP":"IP remota","Local_Fingerprint":"Firma digital local","Remote_Fingerprint":"Firma digital remota","Video_call_not_possible":"Llamada de vídeo no es posible","Start_video_call":"Iniciar llamada de vídeo","Join_chat":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","is_":"es __status__","You_received_a_message_from_an_unknown_sender_":"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?","Your_roster_is_empty_add_":"Tu lista de amigos esta vacía, añadir un <a>nuevo amigo</a>","onsmp_explanation_question":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.","onsmp_explanation_secret":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado se inició una conversación privada.","Unverified_private_conversation_started":"No verificado se inició una conversación privada.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fi":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fr":{"translation":{"Logging_in":"Connexion...","your_connection_is_unencrypted":"Connexion non chiffrée.","your_connection_is_encrypted":"Connexion chiffrée.","your_buddy_closed_the_private_connection":"Votre contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","close_private":"Clôturer une conversation privée","your_buddy_is_verificated":"Votre contact est vérifié.","you_have_only_a_subscription_in_one_way":"Vous ne pouvez souscrire qu'une fois.","authentication_query_sent":"Requête d’authentification envoyée.","your_message_wasnt_send_please_end_your_private_conversation":"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.","unencrypted_message_received":"Message non chiffré reçu","not_available":"Non disponible","no_connection":"Pas de connexion !","relogin":"Re-connexion","trying_to_start_private_conversation":"Essai de démarrage d'une conversation privée !","Verified":"Vérifié","Unverified":"Non vérifié","private_conversation_aborted":"Conversation privée interrompue !","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Votre contact a fermé la conversation privée ! Vous devriez faire de même.","conversation_is_now_verified":"La conversation est maintenant vérifiée.","authentication_failed":"L'authentification a échoué.","Creating_your_private_key_":"Création de votre clé privée; cela peut prendre un moment.","Authenticating_a_buddy_helps_":"L'authentification d'un contact permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.","How_do_you_want_to_authenticate_your_buddy":"Comment voulez-vous vous authentifier __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Sélection de la méthode...","Manual":"Manuel","Question":"Question","Secret":"Sécurité","To_verify_the_fingerprint_":"Pour vérifier l'empreinte, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","Close":"Fermer","Compared":"Comparé","To_authenticate_using_a_question_":"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","Login":"Connexion","Username":"Nom d'utilisateur","Password":"Mot de passe","Cancel":"Annuler","Connect":"Connecter","Type_in_the_full_username_":"Tapez un nom d'utilisateur complet et un alias(optionnel).","Alias":"Alias","Add":"Ajouter","Subscription_request":"Demande d'abonnement","You_have_a_request_from":"Vous avez une requête de ","Deny":"Refuser","Approve":"Approuver","Remove_buddy":"Supprimer le contact","You_are_about_to_remove_":"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion en lien avec celui-ci seront fermées.","Continue_without_chat":"Continuer sans tchat","Please_wait":"Merci de patienter","Login_failed":"Authentification échouée","Sorry_we_cant_authentikate_":"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.","Retry":"Retour","clear_history":"Effacer l’historique","New_message_from":"Nouveau message de __name__","Should_we_notify_you_":"Dans le futur, devrons-nous vous notifier les nouveaux messages ?","Please_accept_":"Merci de cliquer sur le bouton \"autoriser\" en haut de page","Hide_offline":"Masquer les contacts non connectés","Show_offline":"Afficher les contacts non connectés","About":"À propos","dnd":"Ne pas déranger","Mute":"Muet","Unmute":"Son actif","Subscription":"Abonnement","both":"Les deux","Status":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","offline":"Hors ligne","none":"Aucun","Unknown_instance_tag":"Tag inconnu","Not_one_of_our_latest_keys":"Ce n'est pas l'une des dernières touches","Received_an_unreadable_encrypted_message":"Message chiffré non lisible","Online":"En ligne","Chatty":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","URL":"URL","ADR":"Adresse","STREET":"Rue","EXTADD":"Adresse (suite)","LOCALITY":"Localité","REGION":"Région","PCODE":"Code Postal","CTRY":"Pays","TEL":"Téléphone","NUMBER":"Numéro","EMAIL":"Courriel","USERID":" USERID ","ORG":"Organisation","ORGNAME":"Nom","ORGUNIT":"Unité","TITLE":"Qualité:","ROLE":"Rôle","BDAY":"Date de naissance","DESC":"Description","PHOTO":"Photo","send_message":"Envoyer un message","get_info":"Montrer les informations","Settings":"Réglages","Priority":"Priorité","Save":"Enregistrer","User_settings":"Paramètres utilisateur","A_fingerprint_":"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez","is":"est","Login_options":"Options d'identification","BOSH_url":"URL BOSH","Domain":"Domaine","Resource":"Ressource","On_login":"Après authentification","Received_an_unencrypted_message":"Reçu un message non chiffré","Sorry_your_buddy_doesnt_provide_any_information":"Désolé, votre contact n'a pas fourni d'informations","Info_about":"À propos de","Authentication_aborted":"Authentification interrompue.","Authentication_request_received":"Requête d'authentification reçue.","Log_in_without_chat":"S'identifier sans tchat","has_come_online":"vient d'arriver","Unknown_sender":"Expéditeur inconnu","Please_allow_access_to_microphone_and_camera":"Veuillez cliquez sur le bouton \"Autoriser\" en haut, pour permettre l'accès au micro et à la caméra.","Incoming_call":"Appel entrant","from":"de","Do_you_want_to_accept_the_call_from":"Voulez-vous accepter l'appel de","Reject":"Rejeté","Accept":"Accepté","hang_up":"raccrocher","snapshot":"Capture d’écran","mute_my_audio":"Couper l'audio","pause_my_video":"Mettre ma vidéo en pause","fullscreen":"Plein écran","Info":"Info","Local_IP":"IP locale","Remote_IP":"IP distante","Local_Fingerprint":"Empreinte locale","Remote_Fingerprint":"Empreinte distante","Video_call_not_possible":"L'appel vidéo n'est possible. Votre contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"muc_membersonly":{"keyword":"pour les membres seulement","description":"Vous devez être sur la liste des membres"},"muc_moderated":{"keyword":"modéré","description":"Seulement les personnes avec la \"voix\" sont autorisés à envoyer des messages"},"muc_nonanonymous":{"keyword":"non anonyme","description":"Votre identifiant Jabber est visible de tous les autres occupants"},"muc_open":{"keyword":"ouvert","description":"Tout le monde est autorisé à se connecter"},"muc_passwordprotected":{"keyword":"protégé par un mot de passe","description":"Vous devez fournir un mot de passe correct"},"muc_persistent":{"keyword":"persistent","description":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"muc_semianonymous":{"keyword":"semi-anonyme","description":"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},"muc_temporary":{"keyword":"temporaire","description":"sera détruit au départ de son dernier occupant"},"muc_unmoderated":{"keyword":"non modéré","description":"Tout le monde est autorisé à envoyer des messages"},"muc_unsecured":{"keyword":"non sécurisé","description":"un mot de passe n'est pas nécessaire pour entrer"},"Continue":"Continuer","Server":"Serveur","Rooms_are_loaded":"Les salons sont chargés","Could_load_only":"Ne peut charger que __count__ salons pour l'autocomplétion","muc_explanation":"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation","You_already_joined_this_room":"Vous avez déjà rejoint ce salon","This_room_will_be_closed":"Ce salon va être fermé","Room_not_found_":"Un nouveau salon va être créé","Loading_room_information":"Chargement des informations du salon","Destroy":"Détruire","Leave":"Quitter","changed_subject_to":"__nickname__ a changé le sujet du salon à \"__subject__\"","muc_removed_kicked":"Vous avez été éjecté de ce salon","muc_removed_info_kicked":"__nickname__ a été éjecté de ce salon","muc_removed_banned":"Vous avez été banni de ce salon","muc_removed_info_banned":"__nickname__ a été banni de ce salon","muc_removed_affiliation":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon","This_room_has_been_closed":"Ce salon a été fermé","Room_logging_is_enabled":"L'historique du salon est conservé","A_password_is_required":"Un mot de passe est requis","You_are_not_on_the_member_list":"Vous n'êtes pas sur la liste des membres","You_are_banned_from_this_room":"Vous avez été banni de ce salon","Your_desired_nickname_":"Votre pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","is_":"est __status__","You_received_a_message_from_an_unknown_sender_":"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?","Your_roster_is_empty_add_":"Votre liste est vide, ajouter <a>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.","_is_composing":" est en train d'écrire...","_are_composing":" sont en train d'écrire...","Chat_state_notifications":"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?","Share_screen":"Ecran partagé","Incoming_stream":"Flux entrant","Stream_started":"flux démarré","HTTPS_REQUIRED":"Cette action nécessite une connexion cryptée.","EXTENSION_UNAVAILABLE":"Vous avez besoin d'une extension / d'un addon pour votre navigateur.","UNKNOWN_ERROR":"Une erreur inconnue s'est produite.","Install_extension":"Veuillez installer l'extension afin d'utiliser le partage d'écran: ","Connection_accepted":"Connexion acceptée","Stream_terminated":"Flux terminé","Close_all":null}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"it":{"translation":{"Logging_in":"login…","your_connection_is_unencrypted":"La sua connessione è non cifrata.","your_connection_is_encrypted":"La sua connessione è cifrata.","your_buddy_closed_the_private_connection":"La sua connessione privata è stato chiuso dal suo compagno.","start_private":"Inizia privata","close_private":"Chiude privata","your_buddy_is_verificated":"Il tuo compagno è stato verificato","you_have_only_a_subscription_in_one_way":"Hai solo una one-way inscrizione.","authentication_query_sent":"Domanda d'autenticità inviata.","your_message_wasnt_send_please_end_your_private_conversation":"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.","unencrypted_message_received":"Messaggio non cifrato ricevuto","not_available":"non disponibile","no_connection":"nessun collegamento!","relogin":"nuovo login","trying_to_start_private_conversation":"Cercando di avviare una conversazione privata!","Verified":"verificato","Unverified":"non verificato","private_conversation_aborted":"Conversazione privata abortito!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.","conversation_is_now_verified":"Conversazione è ora verificato.","authentication_failed":"autenticazione fallita.","Creating_your_private_key_":"Creare la propria chiave privata; questo potrebbe richiedere un po'.","Authenticating_a_buddy_helps_":"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.","How_do_you_want_to_authenticate_your_buddy":"Come si desidera autenticare __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Seleziona metodo ..","Manual":"manuale","Question":"domanda","Secret":"segreto","To_verify_the_fingerprint_":"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.","Your_fingerprint":"il tuo impronta digitale","Buddy_fingerprint":"impronta digitale da compagno","Close":"chiude","Compared":"comparato","To_authenticate_using_a_question_":"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno","Ask":"chiedi","To_authenticate_pick_a_secret_":"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.","Compare":"Comparare","Fingerprints":"Impronta digitale","Authentication":"Autenticazione","Message":"Messagio","Add_buddy":"Aggiungi un compagno","rename_buddy":"rinomina compagno","delete_buddy":"elimina compagno","Login":"Login","Username":"Identificazione dell'utente","Password":"Password","Cancel":"Cancella","Connect":"Collega","Type_in_the_full_username_":"Digita l'identificazione utente completo e un alias opzionale.","Alias":"Alias","Add":"Aggiungi","Subscription_request":"Rrichiesta di sottoscrizione","You_have_a_request_from":"Hai una richiesta da","Deny":"Refiuta","Approve":"Approva","Remove_buddy":"Rimuova il compagno","You_are_about_to_remove_":"Stai rimovendo __bid_name__ (<b>__bid_jid__</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.","Continue_without_chat":"Continua senza chat","Please_wait":"Si prega d'attendere","Login_failed":"Chat login è fallito","Sorry_we_cant_authentikate_":"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?","Retry":"Indietro","clear_history":"Cancella la cronologia","New_message_from":"Nuovo messaggio da __name__","Should_we_notify_you_":"Vuoi ricevere una notifica di nuovi messaggi in futuro?","Please_accept_":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra.","Hide_offline":"Nascondere i contatti non in linea","Show_offline":"Mostra i contatti non in linea","About":"Informazione legale","dnd":"Non disturbare","Mute":"Muto attivo","Unmute":"Muto inattivo","Subscription":"Sottoscrizione","both":"etrambi","Status":"Status","online":"In linea","chat":"chat","away":"via","xa":"via estensivo","offline":"non in linea","none":"nessuno","Unknown_instance_tag":"Instance tag sconosciuta.","Not_one_of_our_latest_keys":"Non è una delle nostre ultime chiavi.","Received_an_unreadable_encrypted_message":"Ricevuto un messaggio crittografato illeggibile.","Online":"In linea","Chatty":"Chiacchierino","Away":"Via","Extended_away":"Via estensivo","Offline":"Non in linea","Friendship_request":"Amicizia richiesto","Confirm":"Conferma","Dismiss":"Rifiuta","Remove":"Rimuovi","Online_help":"Guida in linea","FN":"Nome e cognome","N":null,"FAMILY":"Cognome","GIVEN":"Nome","NICKNAME":"Soprannome","URL":"URL","ADR":"Indirizzo","STREET":"Via","EXTADD":"Esteso Indirizzo","LOCALITY":"Località","REGION":"Regione","PCODE":"Codice Postale","CTRY":"Paese","TEL":"Telefono","NUMBER":"Numero","EMAIL":"E-mail","USERID":null,"ORG":"Organizzazione","ORGNAME":"Nome","ORGUNIT":"Unità","TITLE":"Titolo di lavoro","ROLE":"Funzione","BDAY":"Compleanno","DESC":"Descrizione","PHOTO":null,"send_message":"Messagio inviato","get_info":"Mostra informazioni","Settings":"Impostazione","Priority":"Priorità","Save":"Salva","User_settings":"Impostazione dell'utente","A_fingerprint_":"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.","is":"è","Login_options":"Opzioni di login","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Risorsa","On_login":"Login on","Received_an_unencrypted_message":"Ricevuto un messaggio non crittografato","Sorry_your_buddy_doesnt_provide_any_information":"Spiace, il tuo compagno non fornisce alcuna informazione.","Info_about":"Informazioni","Authentication_aborted":"Autenticazione interrotta","Authentication_request_received":"Richiesta di autenticazione ricevuto.","Log_in_without_chat":"Log in senza chat","has_come_online":"È venuto in linea","Unknown_sender":"Mittente sconosciuto","Please_allow_access_to_microphone_and_camera":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra per autorizzazione del l'accesso al microfono e fotocamera.","Incoming_call":"Chiamata in arrivo","from":"di","Do_you_want_to_accept_the_call_from":"Vuoi accettare la chiamata di","Reject":"Rifiuta","Accept":"Accetta","hang_up":"Riattacca","snapshot":"istantanea","mute_my_audio":"disattiva il mio audio","pause_my_video":"pausa il mio audio","fullscreen":"schermo intero","Info":"Informazione","Local_IP":"IP locale","Remote_IP":"IP remoto","Local_Fingerprint":"Impronta digitale locale","Remote_Fingerprint":"Impronta digitale remoto","Video_call_not_possible":"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.","Start_video_call":"Inizia videochiamata","Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":"è __status__","You_received_a_message_from_an_unknown_sender_":"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?","Your_roster_is_empty_add_":"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>","onsmp_explanation_question":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.","onsmp_explanation_secret":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.","from_sender":"di __sender__","Verified_private_conversation_started":"verificato Conversazione privata iniziato.","Unverified_private_conversation_started":"non verificato Conversazione privata iniziato.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"nds":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"pl":{"translation":{"Logging_in":"Logowanie...","your_connection_is_unencrypted":"Twoje połączenie nie jest szyfrowane.","your_connection_is_encrypted":"Twoje połączenie jest szyfrowane.","your_buddy_closed_the_private_connection":"Twój rozmówca zamknął połączenie.","start_private":"Rozpocznij rozmowę.","close_private":"Zakończ rozmowę.","your_buddy_is_verificated":"Twój rozmówca został zweryfikowany.","you_have_only_a_subscription_in_one_way":"Posiadasz tylko jednostronną subskrypcję.","authentication_query_sent":"Wysłano proźbę o autentykację.","your_message_wasnt_send_please_end_your_private_conversation":"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.","unencrypted_message_received":"Otrzymano niezaszyfrowaną wiadomość.","not_available":"Niedostępny.","no_connection":"Brak połączenia!","relogin":"Połącz ponownie","trying_to_start_private_conversation":"Rozpocznij rozmowę!","Verified":"Zweryfikowano","Unverified":"Niezweryfikowano","private_conversation_aborted":"Anulowano rozmowę!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Rozmówca przerwał połączenie! Powinieneś zrobić to samo.","conversation_is_now_verified":"Zweryfikowano połączenie.","authentication_failed":"Weryfikacja się nie powiodła.","Creating_your_private_key_":"Tworzenie klucza prywatnego; może to chwilę potrwać","Authenticating_a_buddy_helps_":"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).","How_do_you_want_to_authenticate_your_buddy":"Jakiej autoryzacji chcesz użyć __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Wybierz sposób...","Manual":"Ręcznie","Question":"Pytanie","Secret":"Hasło","To_verify_the_fingerprint_":"Aby zweryfikować kod, najpierw skontaktuj się z rozmówcą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i twój rozmówca zna odpowiedź.","Ask":"Zadaj pytanie","To_authenticate_pick_a_secret_":"Aby autoryzować za pomocą hasła, wybierz hasło na które znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","delete_buddy":"Usuń kontakt","Login":"Login","Username":"Nazwa Użytkownika","Password":"Hasło","Cancel":"Anuluj","Connect":"Połączenie","Type_in_the_full_username_":"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).","Alias":"Alias","Add":"Dodaj","Subscription_request":"Potwierdzenie subskrypcji","You_have_a_request_from":"Masz potwierdzenie od","Deny":"Odmów","Approve":"Zatwierdź","Remove_buddy":"Usuń kontakt","You_are_about_to_remove_":"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","Continue_without_chat":"Kontynuuj bez komunikatora","Please_wait":"Proszę czekać","Login_failed":"Błędne logowanie","Sorry_we_cant_authentikate_":"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?","Retry":"Powrót","clear_history":"Wyczyść historię","New_message_from":"Nowa wiadomość od __name__","Should_we_notify_you_":"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?","Please_accept_":"Kliknij \"Zezwól\" na górze.","Hide_offline":"Schowaj niedostępne kontakty","Show_offline":"Pokaż niedostępne kontakty","About":"Info","dnd":"Nie przeszkadzać","Mute":"Wycisz","Unmute":"Włącz dźwięk","Subscription":"Subskrybcja","both":"obustronna","Status":"Status","online":"Dostępny","chat":"czat","away":"z dala od kompa","xa":"hen hen...","offline":"niedostępny","none":"brak","Unknown_instance_tag":"Nieznany przypadek.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Otrzymano nieczytelną, zaszyfrowaną wiadomość.","Online":"Połączony","Chatty":"Pogawędzimy?","Away":"Daleko","Extended_away":"Hen Hen...","Offline":"Niedostępny","Friendship_request":"Prośba o kontakt","Confirm":"Potwierdzenie","Dismiss":"Odwołaj","Remove":"Usuń","Online_help":"Pomoc Online","FN":"Pełna nazwa","N":" ","FAMILY":"Nazwisko","GIVEN":"Imię","NICKNAME":"Pseudonim","URL":"Strona WWW","ADR":"Adres","STREET":"Ulica","EXTADD":"Pełny adres","LOCALITY":"Lokalizacja","REGION":"Region","PCODE":"Kod pocztowy","CTRY":"Kraj","TEL":"Telefon","NUMBER":"Numer","EMAIL":"Email","USERID":" ","ORG":"Organizacja","ORGNAME":"Nazwa","ORGUNIT":"Jednostka","TITLE":"Stanowisko","ROLE":"Rola","BDAY":"Data urodzin","DESC":"Opis","PHOTO":" ","send_message":"Wyślij wiadomość","get_info":"Pokaż informację","Settings":"Ustawienia","Priority":"Priorytet","Save":"Zapisz","User_settings":"Ustawienia Użytkownika","A_fingerprint_":"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.","is":"jest","Login_options":"opcje logowania","BOSH_url":"Adres BOSH","Domain":"Domena","Resource":"Źródło","On_login":"Na login","Received_an_unencrypted_message":"Zatwierdzono nieszyfrowaną wiadomość.","Sorry_your_buddy_doesnt_provide_any_information":"Wybacz, twój rozmówca nie posiada żadnych informacji.","Info_about":"Informacja o...","Authentication_aborted":"Autoryzacja anulowana.","Authentication_request_received":"Prośba o autoryzację została przyjęta.","Log_in_without_chat":"Zaloguj bez komunikatora","has_come_online":"jest teraz dostępny","Unknown_sender":"Nieznany nadawca","Please_allow_access_to_microphone_and_camera":"Kliknij \"Potwierdź\" na górze, aby móc korzystać z mikrofonu oraz kamery.","Incoming_call":"Przychodzące połączenie","from":"z","Do_you_want_to_accept_the_call_from":"Akceptujesz połączenie od","Reject":"Odrzuć","Accept":"Zaakceptuj","hang_up":"odbierz","snapshot":"zrób zdjęcie","mute_my_audio":"wycisz dźwięk","pause_my_video":"zatrzymaj moje wideo","fullscreen":"Pełny ekran","Info":"Informacja","Local_IP":"Adres IP","Remote_IP":"Zdalny adres IP","Local_Fingerprint":"Kod lokalny","Remote_Fingerprint":"Zdalny kod","Video_call_not_possible":"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.","Start_video_call":"Rozpocznij rozmowę wideo","Join_chat":"Dołącz do czata","Join":"Dołącz","Room":"Pokój","Nickname":"Nazwa użytkownika","left_the_building":"__nickname__ wyszedł","entered_the_room":"__nickname__ wszedł do pokoju","is_now_known_as":"__oldNickname__ zmienił nazwę na __newNickname__","This_room_is":"Ten pokój jest","muc_hidden":{"keyword":"ukryty","description":"nie można odnaleźć elementów wyszukiwania"},"muc_membersonly":{"keyword":"tylko zalogowani","description":"musisz być członkiem listy"},"muc_moderated":{"keyword":"moderowano","description":"tylko osoby z opcją \"głos\" mogą wysyłać wiadomość"},"muc_nonanonymous":{"keyword":"nie-anonimowy","description":"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},"muc_open":{"keyword":"otwarty","description":"wszyscy mają pozwolenie aby dołączyć"},"muc_passwordprotected":{"keyword":"ograniczone hasłem","description":"musisz wpisać prawidłowe hasło"},"muc_persistent":{"keyword":"trwale","description":"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},"muc_public":{"keyword":"publiczny","description":"wyszukawno"},"muc_semianonymous":{"keyword":"pół-anonimowy","description":"Twój identyfikator jabber jest widoczny w pokoju adminów"},"muc_temporary":{"keyword":"tymczasowy","description":"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},"muc_unmoderated":{"keyword":"niemoderowany","description":"wszyscy są uprawnieni do pisania wiadomości"},"muc_unsecured":{"keyword":"niezabezpieczone","description":"nie musisz wpisywać hasła"},"Continue":"Kontynuuj","Server":"Serwer","Rooms_are_loaded":"Pokoje zostały załadowane","Could_load_only":"Nie załadowano __count__ pokoi","muc_explanation":"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło","You_already_joined_this_room":"Już dołączyłeś do tego pokoju","This_room_will_be_closed":"Ten pokój będzie zamknięty","Room_not_found_":"Nowy pokój będzie stworzony","Loading_room_information":"Ładowani informacji o pokoju","Destroy":"Zniszczony","Leave":"Opuść","changed_subject_to":"__nickname__ zmienił temat pokoju na \"__subject__\"","muc_removed_kicked":"Zostałeś wyrzucony z pokoju","muc_removed_info_kicked":"__nickname__ został wyrzucony z pokoju","muc_removed_banned":"Zostałeś zbanowany","muc_removed_info_banned":"__nickname__ został zbanowany","muc_removed_affiliation":"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_info_affiliation":"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_membersonly":"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...","muc_removed_info_membersonly":"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków","muc_removed_shutdown":"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi","Reason":"Powód","message_not_send":"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje","message_not_send_forbidden":"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju","This_room_has_been_closed":"Ten pokój został zamknięty","Room_logging_is_enabled":"Logowanie do pokoju jest włączone","A_password_is_required":"Hasło jest wymagane","You_are_not_on_the_member_list":"Nie jesteś na liście członków","You_are_banned_from_this_room":"Zostałeś zbanowany w tym pokoju","Your_desired_nickname_":"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną","The_maximum_number_":"Została osiągnięta maksymalna liczba użytkowników w tym pokoju","This_room_is_locked_":"Ten pokój jest zablokowany","You_are_not_allowed_to_create_":"Nie masz uprawnień do tworzenia pokoju","Alert":"Alarm","Call_started":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","is_":"jest __status__","You_received_a_message_from_an_unknown_sender_":"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?","Your_roster_is_empty_add_":"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>","onsmp_explanation_question":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.","onsmp_explanation_secret":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.","from_sender":"z __sender__","Verified_private_conversation_started":"Zweryfikowano Rozmowa prywatna rozpoczęta.","Unverified_private_conversation_started":"Niezweryfikowano Rozmowa prywatna rozpoczęta.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"pt-BR":{"translation":{"Logging_in":"Entrando...","your_connection_is_unencrypted":"Sua conexão não é encriptada","your_connection_is_encrypted":"Sua conexão é encriptada","your_buddy_closed_the_private_connection":"Seu contato fechou a conexão privada","start_private":"Iniciar conversa privada","close_private":"Fechar conversa privada","your_buddy_is_verificated":"Seu contato está verificado","you_have_only_a_subscription_in_one_way":"Você só tem a inscrição one-way","authentication_query_sent":"Pergunta de autenticação enviada","your_message_wasnt_send_please_end_your_private_conversation":"Sua mensagem não foi enviada. Por favor finalize sua conversa privada","unencrypted_message_received":"Mensagem não encriptada recebida","not_available":"Indisponível","no_connection":"Sem conexão!","relogin":"reentrar","trying_to_start_private_conversation":"Tentando iniciar conversa privada","Verified":"Verificado","Unverified":"Não verificado","private_conversation_aborted":"Conversa privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.","conversation_is_now_verified":"Conversa verificada.","authentication_failed":"Autenticação falhou.","Creating_your_private_key_":"Criando sua chave privada: isso pode demorar um pouco.","Authenticating_a_buddy_helps_":"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.","How_do_you_want_to_authenticate_your_buddy":"Como você gostaria de se autenticar __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Selecione o método...","Manual":"Manual","Question":"Pergunta","Secret":"Senha","To_verify_the_fingerprint_":"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.","Your_fingerprint":"Sua impressão digital","Buddy_fingerprint":"Impressão digital do contato","Close":"Fechar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.","Ask":"Pergunta","To_authenticate_pick_a_secret_":"Para autenticar, escolha um segredo que somente você e seu contato saibam.","Compare":"Compare","Fingerprints":"Impressões digitais","Authentication":"Autenticação","Message":"Mensagem","Add_buddy":"Adicionar contato","rename_buddy":"renomear contato","delete_buddy":"remover contato","Login":"Entrar","Username":"Usuário","Password":"Senha","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Digite seu nome completo e um apelido opcional.","Alias":"Apelido","Add":"Adicionar","Subscription_request":"Pedido de inscrição","You_have_a_request_from":"Você tem um pedido de","Deny":"Negar","Approve":"Aprovar","Remove_buddy":"Remover contato","You_are_about_to_remove_":"Você está prestes a remover __bid_name__ (<b>__bid_jid__</b>) de sua lista de contatos. Todas as conversas serão fechadas.","Continue_without_chat":"Continue sem converar","Please_wait":"Por favor aguarde","Login_failed":"Autenticação da conversa falhou","Sorry_we_cant_authentikate_":"A autenticação com o servidor falhou. Talvez seja a senha errada?","Retry":"Voltar","clear_history":"Limpar histórico","New_message_from":"Nova mensagem de __name__","Should_we_notify_you_":"Devemos continuar notificando sobre novas mensagens no futuro?","Please_accept_":"Por favor clique no botão \"Permitir\" na parte superior.","Hide_offline":"Esconder contatos desconectados","Show_offline":"Mostrar contatos desconectados","About":"Sobre","dnd":"Não perturbe","Mute":"Mudo","Unmute":"Ligar","Subscription":"Inscrição","both":"ambos","Status":"Status","online":"online","chat":"conversa","away":"ausente","xa":"ausente por mais tempo","offline":"desativado","none":"nenhum","Unknown_instance_tag":"Marcação desconhecida da instância","Not_one_of_our_latest_keys":"Nenhuma de nossas ultimas chaves.","Received_an_unreadable_encrypted_message":"Mensagem encriptada ilegível foi recebida.","Online":"Online","Chatty":"Tagarela","Away":"Ausente","Extended_away":"Ausente por mais tempo","Offline":"Desativado","Friendship_request":"Pedido de amizade","Confirm":"Confirmar","Dismiss":"Ignorar","Remove":"Remover","Online_help":"Ajuda online","FN":"Nome completo","N":" ","FAMILY":"Sobrenome","GIVEN":"Nome","NICKNAME":"Apelido","URL":"URL","ADR":"Endereço","STREET":"Rua, Av, etc","EXTADD":"Complemento","LOCALITY":"Localidade","REGION":"Região","PCODE":"CEP","CTRY":"País","TEL":"Telefone","NUMBER":"Número","EMAIL":"Email","USERID":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","send_message":"Enviar mensagem","get_info":"Exibir informações","Settings":"Configurações","Priority":"Prioridade","Save":"Salvar","User_settings":"Configurações do usuário","A_fingerprint_":"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.","is":"é","Login_options":"Opções de login","BOSH_url":"BOSH URL","Domain":"Domínio","Resource":"Recurso","On_login":"Ao autenticar","Received_an_unencrypted_message":"Mensagem não encriptada recebida","Sorry_your_buddy_doesnt_provide_any_information":"Desculpe, seu contato não forneceu nenhuma informação","Info_about":"Informações sobre","Authentication_aborted":"Autenticação encerrada.","Authentication_request_received":"Pedido de autenticação recebido","Log_in_without_chat":"Entrar sem conversar","has_come_online":"ficou online","Unknown_sender":"Emissor desconhecido","Please_allow_access_to_microphone_and_camera":"Por favor clique no botão \"Permitir\" no topo, para conceder acesso ao seu microfone e câmera.","Incoming_call":"Recebendo chamada","from":"de","Do_you_want_to_accept_the_call_from":"Você aceita a chamada de","Reject":"Negar","Accept":"Aceitar","hang_up":"desligar","snapshot":"registrar imagem","mute_my_audio":"mudo","pause_my_video":"pausar vídeo","fullscreen":"tela cheia","Info":"Informações","Local_IP":"IP local","Remote_IP":"IP remoto","Local_Fingerprint":"Fingerprint local","Remote_Fingerprint":"Fingerprint remoto","Video_call_not_possible":"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.","Start_video_call":"Iniciar chamada de vídeo","Join_chat":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","is_":"é __status__","You_received_a_message_from_an_unknown_sender_":"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?","Your_roster_is_empty_add_":"Sua lista está vazia, adicione um <a>novo contato</a>","onsmp_explanation_question":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.","onsmp_explanation_secret":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado Conversa privada iniciada.","Unverified_private_conversation_started":"Não verificado Conversa privada iniciada.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ru":{"translation":{"Logging_in":"Вход в систему...","your_connection_is_unencrypted":"Ваше соединение не зашифровано.","your_connection_is_encrypted":"Ваше соединение зашифровано.","your_buddy_closed_the_private_connection":"Ваш собеседник закончил зашифрованное соединение.","start_private":"Начать зашифрованный чат","close_private":"Закончить зашифрованный чат","your_buddy_is_verificated":"Собеседник подтвержден.","you_have_only_a_subscription_in_one_way":"У вас только односторонняя подписка.","authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.","unencrypted_message_received":"Получено незашифрованное сообщение","not_available":"Не доступен","no_connection":"Нет соединения!","relogin":"переподключиться","trying_to_start_private_conversation":"Попытка начать зашифрованный чат!","Verified":"Подтверждено","Unverified":"Не подтверждено","private_conversation_aborted":"Зашифрованный чат отклонен!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.","conversation_is_now_verified":"Чат теперь утвержден.","authentication_failed":"Ошибка авторизации.","Creating_your_private_key_":"Создается приватный ключ. Это может занять некоторое время","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":"Выберите метод...","Manual":"Вручную","Question":"Вопрос","Secret":"Пароль","To_verify_the_fingerprint_":null,"Your_fingerprint":"Ваш отпечаток","Buddy_fingerprint":"Отпечаток собеседника","Close":"Закрыть","Compared":"Сравнение завершено","To_authenticate_using_a_question_":"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.","Ask":null,"To_authenticate_pick_a_secret_":"Для авторизации выберите пароль, который знаете только Вы и собеседник.","Compare":"Сравнить","Fingerprints":"Отпечатки","Authentication":"Авторизация","Message":"Сообщение","Add_buddy":"Добавить контакт","rename_buddy":"переименовать контакт","delete_buddy":"удалить контакт","Login":"Вход","Username":"Логин","Password":"Пароль","Cancel":"Отмена","Connect":"Подключить","Type_in_the_full_username_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","Hide_offline":"Спрятать отключенных","Show_offline":"Показать отключенных","About":"О проекте","dnd":"Не беспокоить","Mute":"Выкл. уведомления","Unmute":"Вкл. уведомления","Subscription":"Подписка","both":"оба","Status":"Статус","online":"в сети","chat":"готов общаться","away":"отошел","xa":"отсутствую","offline":"не в сети","none":"нет","Unknown_instance_tag":"Неизвестный тег.","Not_one_of_our_latest_keys":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"BOSH URL","Domain":"Домен","Resource":"Ресурс","On_login":"Автоматически подключаться","Received_an_unencrypted_message":"Получено незашифрованное сообщение","Sorry_your_buddy_doesnt_provide_any_information":"К сожалению, контакт не предоставил какой-либо информации.","Info_about":"Информация о","Authentication_aborted":"Аутентификация прервана.","Authentication_request_received":"Получен запрос проверки подлинности.","Log_in_without_chat":"Вход без чата","has_come_online":"появился в сети","Unknown_sender":"Неизвестный отправитель","Please_allow_access_to_microphone_and_camera":"Нажмите кнопку \"Разрешить\" вверху страницы, чтобы предоставить доступ к микрофону и камере.","Incoming_call":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","message_not_send":"Ваше сообщение не было отправлено из-за ошибки","message_not_send_item-not-found":"Ваше сообщение не было отправлено, т.к. этой комнаты не существует","message_not_send_forbidden":"Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате","message_not_send_not-acceptable":"Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты","This_room_has_been_closed":"Эта комната была закрыта","Room_logging_is_enabled":"Журналирование комнаты включено","A_password_is_required":"Необходим пароль","You_are_not_on_the_member_list":"Вы не в списке участников","You_are_banned_from_this_room":"Вас забанили в этой комнате","Your_desired_nickname_":"Данное имя пользователя уже занято, пожалуйста, выберите другое имя пользователя","The_maximum_number_":"Достигнут лимит максимального количества посетителей этой комнаты","This_room_is_locked_":"Эта комната заблокирована","You_are_not_allowed_to_create_":"Вы не можете создавать комнаты","Alert":"Внимание","Call_started":"Вызов начался","Call_terminated":"Вызов завершен","Carbon_copy":"Копировать сообщения","Enable":"Включить","jingle_reason_busy":"занято","jingle_reason_decline":"запрещено","jingle_reason_success":"сбросили","Media_failure":"Ошибка передачи медиа","No_local_audio_device":"Нет локального аудио-устройства.","No_local_video_device":"Нет локального видео-устройства.","Ok":"Ок","PermissionDeniedError":"Вы или Ваш браузер запретили использовать микрофон/камеру","Use_local_audio_device":"Использовать локальное аудио-устройство.","Use_local_video_device":"Использовать локальное видео-устройство.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Вы получили сообщение от неизвестного отправителя (__sender__)","Your_roster_is_empty_add_":"Ваш список контактов пуст, добавить <a>новый контакт</a>","onsmp_explanation_question":"Собеседник пытается определить, что общается действительно с Вами.","onsmp_explanation_secret":"Собеседник пытается определить, что общается действительно с Вами. введите пароль.","from_sender":"от __sender__","Verified_private_conversation_started":"Подтверждено Зашифрованный чат начат.","Unverified_private_conversation_started":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"sv-SE":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"tr-TR":{"translation":{"Logging_in":"Giriş yapılıyor…","your_connection_is_unencrypted":"Bağlantınız şifrelenmemiş.","your_connection_is_encrypted":"Bağlantınız şifrelenmiş.","your_buddy_closed_the_private_connection":"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.","start_private":"Özel bağlantı başlat.","close_private":"Özel bağlantıyı kapat.","your_buddy_is_verificated":"Kişi doğrulandı.","you_have_only_a_subscription_in_one_way":"Sadece tek yönlü bir aboneliğiniz var.","authentication_query_sent":"Kimlik doğrulama sorgusu gönderildi.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.","unencrypted_message_received":"Şifrelenmemiş mesaj alındı","not_available":"Müsait değil","no_connection":"Bağlantı yok!","relogin":"Yeniden gir","trying_to_start_private_conversation":"Özel sohbet başlatılmaya çalışılıyor!","Verified":"Doğrulandı","Unverified":"Doğrulanamadı","private_conversation_aborted":"Özel sohbet iptal edildi!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.","conversation_is_now_verified":"Sohbet doğrulandı.","authentication_failed":"Kimlik doğrulama başarısız.","Creating_your_private_key_":"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.","Authenticating_a_buddy_helps_":"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.","How_do_you_want_to_authenticate_your_buddy":"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Yöntemi seçin...","Manual":"Elle","Question":"Soru","Secret":"Gizli anahtar","To_verify_the_fingerprint_":"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.","Your_fingerprint":"Parmakiziniz","Buddy_fingerprint":"Kişinin parmakizi","Close":"Kapat","Compared":"Kıyaslandı","To_authenticate_using_a_question_":"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.","Ask":"Sor","To_authenticate_pick_a_secret_":"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.","Compare":"Karşılaştır","Fingerprints":"Parmakizleri","Authentication":"Kimlik doğrulama","Message":"İleti","Add_buddy":"Kişi ekle","rename_buddy":"Kişiyi yeniden adlandır","delete_buddy":"Kişiyi sil","Login":"Giriş","Username":"Kullanıcı adı","Password":"Şifre","Cancel":"iptal","Connect":"Bağlan","Type_in_the_full_username_":"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.","Alias":"Takma ad","Add":"Ekle","Subscription_request":"Abonelik isteği","You_have_a_request_from":"Size gelen bir istek var","Deny":"Reddet","Approve":"Onayla","Remove_buddy":"Kişiyi çıkar","You_are_about_to_remove_":"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.","Continue_without_chat":"Sohbet etmeden devam et","Please_wait":"Lütfen bekleyin","Login_failed":"Sohbet girişi başarısız oldu","Sorry_we_cant_authentikate_":"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.","Retry":"Geri","clear_history":"Geçmişi sil","New_message_from":"__name__ adlı kişiden yeni bir mesaj aldınız","Should_we_notify_you_":"İleride aldığınız yeni mesajları size bildirelim mi?","Please_accept_":"Lütfen üstteki \"İzin ver\" düğmesini tıklayın.","Hide_offline":"Çevrimdışı kişileri gizle","Show_offline":"Çevrimdışı kişileri göster","About":"hakkında","dnd":"Rahatsız etmeyin","Mute":"Sessiz","Unmute":"Sesli","Subscription":"Üyelik","both":"her ikisi de","Status":"Durum","online":"çevrimiçi","chat":"sohbet","away":"uzakta","xa":"çok uzakta","offline":"çevrimdışı","none":"hiç biri","Unknown_instance_tag":"Bilinmeyen örnek etiketi.","Not_one_of_our_latest_keys":"En son anahtarlarımızdan biri değil.","Received_an_unreadable_encrypted_message":"Okunamayan şifrelenmiş bir mesaj alındı.","Online":"Çevrimiçi","Chatty":"Konuşkan","Away":"Uzakta","Extended_away":"Çok uzakta","Offline":"Çevrimdışı","Friendship_request":"İrtibat isteği","Confirm":"Onayla","Dismiss":"Reddet","Remove":"Çıkar","Online_help":"Çevrimiçi yardım","FN":"Tam adı","N":" ","FAMILY":"Soyadı","GIVEN":"Adı","NICKNAME":"Takma ad","URL":"URL","ADR":"Adres","STREET":"Sokak","EXTADD":"Genişletilmiş Adres","LOCALITY":"Yer","REGION":"Bölge","PCODE":"Posta Kodu","CTRY":"Ülke","TEL":"Telefon","NUMBER":"Numara","EMAIL":"Eposta","USERID":" ","ORG":"Organizasyon","ORGNAME":"İsim","ORGUNIT":"Birim","TITLE":"İş tenımı","ROLE":"Görevi","BDAY":"Doğum günü","DESC":"Tanım","PHOTO":" ","send_message":"İletiyi gönder","get_info":"Bilgileri göster","Settings":"Ayarlar","Priority":"Öncelik","Save":"Kaydet","User_settings":"Kullanıcı tercihleri","A_fingerprint_":"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.","is":"Eşit","Login_options":"Giriş seçenekleri","BOSH_url":"BOSH URL","Domain":"Alan adı","Resource":"Kaynak","On_login":"Girişte","Received_an_unencrypted_message":"Şifrelenmemiş bir mesaj alındı","Sorry_your_buddy_doesnt_provide_any_information":"Maalesef kişi her hangi bir bilgi sunmamış.","Info_about":"Bilinen özellikleri","Authentication_aborted":"Kimlik doğrulama iptal edildi.","Authentication_request_received":"Kimlik doğrulama isteği alındı.","Log_in_without_chat":"Sohbetsiz giriş yap","has_come_online":"Çevrimiçi oldu","Unknown_sender":"Bilinmeyen gönderen","Please_allow_access_to_microphone_and_camera":"Mikrofona ve kameraya erişime izin vermek için lütfen üstteki \"İzin Ver\" düğmesini tıklayın.","Incoming_call":"Gelen çağrı","from":"gönderen","Do_you_want_to_accept_the_call_from":"Gelen aramayı kabul etmek istiyor musunuz","Reject":"Reddet","Accept":"Kabul et","hang_up":"aramayı sonlandır","snapshot":"anlık fotoğraf","mute_my_audio":"Sesi kapat","pause_my_video":"videoyu duraklat","fullscreen":"tam ekran","Info":"bilgi","Local_IP":"Yerel IP","Remote_IP":"Uzak IP","Local_Fingerprint":"Yerel parmakizi","Remote_Fingerprint":"Uzak parmakizi","Video_call_not_possible":"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.","Start_video_call":"Video görüşmesini başlat","Join_chat":"Sohbete katıl","Join":"Katıl","Room":"Oda","Nickname":"Takma ad","left_the_building":"__nickname__ binadan ayrıldı","entered_the_room":"__nickname__ odaya girdi","is_now_known_as":"__oldNickname__ şimdi __newNickname__ olarak biliniyor","This_room_is":"Bu oda","muc_hidden":{"keyword":"gizli","description":"Arama yoluyla bulunamıyor"},"muc_membersonly":{"keyword":"sadece-üye-olanlar","description":"üye listenizde olmanız gerekiyor"},"muc_moderated":{"keyword":"yöneticili","description":"Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"},"muc_nonanonymous":{"keyword":"Anonim-değil","description":"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},"muc_open":{"keyword":"açık","description":"herkes katılabilir"},"muc_passwordprotected":{"keyword":"şifre-korumalı","description":"Doğru şifreyi girmeniz gerekiyor"},"muc_persistent":{"keyword":"kalıcı","description":"Son oturan ayrıldığında kapanmaz"},"muc_public":{"keyword":"herkese açık","description":"Arama yoluyla bulunabilir"},"muc_semianonymous":{"keyword":"yarı-anonim","description":"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},"muc_temporary":{"keyword":"geçici","description":"Son oturan ayrıldığında kapanır"},"muc_unmoderated":{"keyword":"yöneticisiz","description":"herkes ileti gönderebilir"},"muc_unsecured":{"keyword":"güvensiz","description":"şifre girmenize gerek yok"},"Continue":"Devam","Server":"Sunucu","Rooms_are_loaded":"Oda yüklendi","Could_load_only":"Sadece __count__ oda otomatik tamamlamayla yüklenebilir","muc_explanation":"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin","You_already_joined_this_room":"Zaten bu odaya katılmış durumdasınız","This_room_will_be_closed":"Bu oda kapanacak","Room_not_found_":"Yeni oda oluşturulacak","Loading_room_information":"Oda bilgileri yükleniyor","Destroy":"Sil","Leave":"Ayrıl","changed_subject_to":"__nickname__ bu odanın konusunu \"__subject__\" olarak değiştirdi","muc_removed_kicked":"Bu odadan atıldınız","muc_removed_info_kicked":"__nickname__ bu odadan atıldı","muc_removed_banned":"Odadan yasaklandınız","muc_removed_info_banned":"__nickname__ odadan yasaklandınız","muc_removed_affiliation":"Üyelik değişikliği nedeniyle odadan çıkarıldınız","muc_removed_info_affiliation":"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı","muc_removed_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız","muc_removed_info_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı","muc_removed_shutdown":"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı","Reason":"Sebep","message_not_send":"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil","message_not_send_forbidden":"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz","This_room_has_been_closed":"Bu oda kapatıldı","Room_logging_is_enabled":"Oda günlüğü etkinleştirildi","A_password_is_required":"Şifre gerekli","You_are_not_on_the_member_list":"Üye listesinde değilsiniz","You_are_banned_from_this_room":"Bu odadan yasaklandınız","Your_desired_nickname_":"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad","The_maximum_number_":"Bu odada maksimum kullanıcı sayısına ulaşıldı","This_room_is_locked_":"Bu oda kilitli","You_are_not_allowed_to_create_":"Oda açma izniniz yok","Alert":"Uyarı","Call_started":"Arama başlatıldı","Call_terminated":"Arama bitirildi","Carbon_copy":"Karbon kopya","Enable":"Etkinleştir","jingle_reason_busy":"meşgul","jingle_reason_decline":"kabul etme","jingle_reason_success":"kapatıldı","Media_failure":"Medya istek hatası","No_local_audio_device":"Yerel ses cihazı bulunamadı.","No_local_video_device":"Yerel video cihazı bulunamadı.","Ok":"Tamam","PermissionDeniedError":"Siz veya tarayıcınız sesli/görüntülü izni reddetti","Use_local_audio_device":"Yerel video cihazını kullan.","Use_local_video_device":"Yerel video cihazını kullanın.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?","Your_roster_is_empty_add_":"Listeniz boş, yeni bir <a>kişi ekleyin</a>","onsmp_explanation_question":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.","onsmp_explanation_secret":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.","from_sender":"__sender__'den","Verified_private_conversation_started":"Doğrulanmış Özel görüşme başladı.","Unverified_private_conversation_started":"Doğrulanmamış Özel görüşme başladı.","Bookmark":"Yer imi","Auto-join":"Otomatik katıl","Edit_bookmark":"yer imini düzenle","Room_logging_is_disabled":"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim","Do_you_want_to_change_the_default_room_configuration":"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?","Default":"Öntanımlı","Change":"Değiştir","Send_file":"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"vi-VN":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"zh-TW":{"translation":{"Logging_in":"正在登入…","your_connection_is_unencrypted":"連線沒加密。","your_connection_is_encrypted":"連線有加密。","your_buddy_closed_the_private_connection":"聯絡人關閉了加密連線。","start_private":"開始加密","close_private":"結束加密","your_buddy_is_verificated":"聯絡人已校驗。","you_have_only_a_subscription_in_one_way":"只有單向訂閱。","authentication_query_sent":"驗證要求送出了。","your_message_wasnt_send_please_end_your_private_conversation":"訊息沒送出去。請結束加密的對話。","unencrypted_message_received":"收到沒加密的訊息","not_available":"不存在","no_connection":"沒有連線!","relogin":"重新登入","trying_to_start_private_conversation":"正在試著開始加密的對話!","Verified":"已校驗","Unverified":"未校驗","private_conversation_aborted":"加密的對話中斷了!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"聯絡人把這場加密的對話關掉了!你也應該同樣關掉。","conversation_is_now_verified":"對話現在校驗過了。","authentication_failed":"驗證失敗。","Creating_your_private_key_":"正在產生你的私人金鑰,會花一段時間。","Authenticating_a_buddy_helps_":"聯絡人驗證可以確保跟你說話的是真的那個人。","How_do_you_want_to_authenticate_your_buddy":"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?","Select_method":"選個方式...","Manual":"手動","Question":"問答","Secret":"祕密","To_verify_the_fingerprint_":"要校驗聯絡人的電子指紋,請透過其他可靠的管道跟她/他聯絡,比如說電話。","Your_fingerprint":"你的電子指紋","Buddy_fingerprint":"聯絡人的電子指紋","Close":"關閉","Compared":"比對正確","To_authenticate_using_a_question_":"要用問答來驗證的話,請找一個只有你和聯絡人才知道答案的問題。","Ask":"問題","To_authenticate_pick_a_secret_":"要驗證的話,請找一個只有你和聯絡人知道的祕密。","Compare":"比對","Fingerprints":"電子指紋","Authentication":"驗證","Message":"訊息","Add_buddy":"加聯絡人","rename_buddy":"重新命名聯絡人","delete_buddy":"刪掉聯絡人","Login":"登入","Username":"使用者名稱","Password":"密碼","Cancel":"取消","Connect":"連線","Type_in_the_full_username_":"請打全名,別名可有可無","Alias":"別名","Add":"加入","Subscription_request":"訂閱請求","You_have_a_request_from":"收到聯絡人的請求:","Deny":"拒絕","Approve":"同意","Remove_buddy":"刪除聯絡人","You_are_about_to_remove_":"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","Domain":"網域","Resource":"資源","On_login":"登入啟動","Received_an_unencrypted_message":"收到了一則沒加密的訊息","Sorry_your_buddy_doesnt_provide_any_information":"抱歉,聯絡人沒有提供任何資訊。","Info_about":"帳號資訊:","Authentication_aborted":"驗證中斷。","Authentication_request_received":"驗證請求收到了。","Log_in_without_chat":"登入但不啟用聊天","has_come_online":"上線了","Unknown_sender":"不明傳訊人","Please_allow_access_to_microphone_and_camera":"請點上方的「接受」按鈕來允許我們使用麥克風和相機。","Incoming_call":"來電","from":"只出","Do_you_want_to_accept_the_call_from":"是否要接聽來電:","Reject":"拒絕","Accept":"接受","hang_up":"掛斷","snapshot":"截圖","mute_my_audio":"關掉我的聲音","pause_my_video":"暫停我的影像","fullscreen":"全螢幕","Info":"資料","Local_IP":"本機網路位址","Remote_IP":"遠端網路位址","Local_Fingerprint":"本機電子指紋","Remote_Fingerprint":"遠端電子指紋","Video_call_not_possible":"無法視訊通話。聯絡人不支援視訊。","Start_video_call":"開始視訊通話","Join_chat":"參加聊天","Join":"參加","Room":"聊天室","Nickname":"綽號","left_the_building":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","message_not_send":"訊息因為發生錯誤沒送出去","message_not_send_item-not-found":"訊息沒送出去,因為聊天室不存在了","message_not_send_forbidden":"訊息沒送出去,因為你被消音了","message_not_send_not-acceptable":"訊息沒送出去,因為你不是聊天室的參與人了","This_room_has_been_closed":"聊天室已經關閉了","Room_logging_is_enabled":"聊天室紀錄打開了","A_password_is_required":"需要密碼","You_are_not_on_the_member_list":"你不是會員","You_are_banned_from_this_room":"你被禁止進入聊天室了","Your_desired_nickname_":"這個綽號被用掉了,請換一個","The_maximum_number_":"這間聊天室已經到達使用者數目的上限","This_room_is_locked_":"聊天室上鎖了","You_are_not_allowed_to_create_":"不允許你開新的聊天室","Alert":"警告","Call_started":"通話開始","Call_terminated":"通話結束","Carbon_copy":"副本","Enable":"打開","jingle_reason_busy":"忙線中","jingle_reason_decline":"被拒絕","jingle_reason_success":"被掛斷","Media_failure":"媒體錯誤","No_local_audio_device":"本機沒有音訊設備。","No_local_video_device":"本機沒有視訊設備。","Ok":"好","PermissionDeniedError":"你或你的瀏覽器拒絕了媒體使用權限","Use_local_audio_device":"使用本機音訊設備。","Use_local_video_device":"使用本機視訊設備。","is_":"狀態: __status__","You_received_a_message_from_an_unknown_sender_":"收到了不明人士(__sender__)傳來的訊息。你要打開來看嗎?","Your_roster_is_empty_add_":"好友清單是空的,請加<a>新的聯絡人</a>","onsmp_explanation_question":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入問題的答案,然後按\"回答\"。","onsmp_explanation_secret":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入你們之間的祕密。","from_sender":"來自:__sender__","Verified_private_conversation_started":"加密且已校驗的對話開始了。","Unverified_private_conversation_started":"加密但未校驗的對話開始了。","Bookmark":"書籤","Auto-join":"自動參加","Edit_bookmark":"編輯書籤","Room_logging_is_disabled":"聊天室紀錄關掉了","Room_is_now_non-anoymous":"現在聊天室禁止匿名了","Room_is_now_semi-anonymous":"現在聊天室變半匿名了","Do_you_want_to_change_the_default_room_configuration":"你想要改變聊天室的預設配置嗎?","Default":"預設值","Change":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。","_is_composing":"正在打字中...","_are_composing":"正在打字中...","Chat_state_notifications":"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?","Share_screen":"分享螢幕","Incoming_stream":"有串流來","Stream_started":"串流開始了","HTTPS_REQUIRED":"這個動作需要連線有加密。","EXTENSION_UNAVAILABLE":"瀏覽器必須要安裝擴充套件或是附加元件。","UNKNOWN_ERROR":"發生了不明錯誤。","Install_extension":"要使用螢幕分享功能請安裝這個擴充套件: ","Connection_accepted":"連線接受了","Stream_terminated":"串流結束了","Close_all":null}},"zh":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}}};
/*!
* Source: lib/favico.js/favico.js, license: MIT, url: https://github.com/ejci/favico.js
@@ -40477,7 +48602,7 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
/* jshint -W075 */
(function(ns){
// this list must be ordered from largest length of the value array, index 0, to the shortest
- ns.emojioneList = {':kiss_ww:':["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],':couplekiss_ww:':["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],':kiss_mm:':["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],':couplekiss_mm:':["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],':family_mmbb:':["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],':family_mmgb:':["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],':family_mmgg:':["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],':family_mwbb:':["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],':family_mwgb:':["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],':family_mwgg:':["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],':family_wwbb:':["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],':family_wwgb:':["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],':family_wwgg:':["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],':couple_ww:':["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],':couple_with_heart_ww:':["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],':couple_mm:':["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],':couple_with_heart_mm:':["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],':family_mmb:':["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],':family_mmg:':["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],':family_mwg:':["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],':family_wwb:':["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],':family_wwg:':["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],':eye_in_speech_bubble:':["1f441-200d-1f5e8","1f441-1f5e8"],':hash:':["0023-fe0f-20e3","0023-20e3"],':zero:':["0030-fe0f-20e3","0030-20e3"],':one:':["0031-fe0f-20e3","0031-20e3"],':two:':["0032-fe0f-20e3","0032-20e3"],':three:':["0033-fe0f-20e3","0033-20e3"],':four:':["0034-fe0f-20e3","0034-20e3"],':five:':["0035-fe0f-20e3","0035-20e3"],':six:':["0036-fe0f-20e3","0036-20e3"],':seven:':["0037-fe0f-20e3","0037-20e3"],':eight:':["0038-fe0f-20e3","0038-20e3"],':nine:':["0039-fe0f-20e3","0039-20e3"],':asterisk:':["002a-fe0f-20e3","002a-20e3"],':keycap_asterisk:':["002a-fe0f-20e3","002a-20e3"],':metal_tone5:':["1f918-1f3ff"],':sign_of_the_horns_tone5:':["1f918-1f3ff"],':metal_tone4:':["1f918-1f3fe"],':sign_of_the_horns_tone4:':["1f918-1f3fe"],':metal_tone3:':["1f918-1f3fd"],':sign_of_the_horns_tone3:':["1f918-1f3fd"],':metal_tone2:':["1f918-1f3fc"],':sign_of_the_horns_tone2:':["1f918-1f3fc"],':metal_tone1:':["1f918-1f3fb"],':sign_of_the_horns_tone1:':["1f918-1f3fb"],':bath_tone5:':["1f6c0-1f3ff"],':bath_tone4:':["1f6c0-1f3fe"],':bath_tone3:':["1f6c0-1f3fd"],':bath_tone2:':["1f6c0-1f3fc"],':bath_tone1:':["1f6c0-1f3fb"],':walking_tone5:':["1f6b6-1f3ff"],':walking_tone4:':["1f6b6-1f3fe"],':walking_tone3:':["1f6b6-1f3fd"],':walking_tone2:':["1f6b6-1f3fc"],':walking_tone1:':["1f6b6-1f3fb"],':mountain_bicyclist_tone5:':["1f6b5-1f3ff"],':mountain_bicyclist_tone4:':["1f6b5-1f3fe"],':mountain_bicyclist_tone3:':["1f6b5-1f3fd"],':mountain_bicyclist_tone2:':["1f6b5-1f3fc"],':mountain_bicyclist_tone1:':["1f6b5-1f3fb"],':bicyclist_tone5:':["1f6b4-1f3ff"],':bicyclist_tone4:':["1f6b4-1f3fe"],':bicyclist_tone3:':["1f6b4-1f3fd"],':bicyclist_tone2:':["1f6b4-1f3fc"],':bicyclist_tone1:':["1f6b4-1f3fb"],':rowboat_tone5:':["1f6a3-1f3ff"],':rowboat_tone4:':["1f6a3-1f3fe"],':rowboat_tone3:':["1f6a3-1f3fd"],':rowboat_tone2:':["1f6a3-1f3fc"],':rowboat_tone1:':["1f6a3-1f3fb"],':pray_tone5:':["1f64f-1f3ff"],':pray_tone4:':["1f64f-1f3fe"],':pray_tone3:':["1f64f-1f3fd"],':pray_tone2:':["1f64f-1f3fc"],':pray_tone1:':["1f64f-1f3fb"],':person_with_pouting_face_tone5:':["1f64e-1f3ff"],':person_with_pouting_face_tone4:':["1f64e-1f3fe"],':person_with_pouting_face_tone3:':["1f64e-1f3fd"],':person_with_pouting_face_tone2:':["1f64e-1f3fc"],':person_with_pouting_face_tone1:':["1f64e-1f3fb"],':person_frowning_tone5:':["1f64d-1f3ff"],':person_frowning_tone4:':["1f64d-1f3fe"],':person_frowning_tone3:':["1f64d-1f3fd"],':person_frowning_tone2:':["1f64d-1f3fc"],':person_frowning_tone1:':["1f64d-1f3fb"],':raised_hands_tone5:':["1f64c-1f3ff"],':raised_hands_tone4:':["1f64c-1f3fe"],':raised_hands_tone3:':["1f64c-1f3fd"],':raised_hands_tone2:':["1f64c-1f3fc"],':raised_hands_tone1:':["1f64c-1f3fb"],':raising_hand_tone5:':["1f64b-1f3ff"],':raising_hand_tone4:':["1f64b-1f3fe"],':raising_hand_tone3:':["1f64b-1f3fd"],':raising_hand_tone2:':["1f64b-1f3fc"],':raising_hand_tone1:':["1f64b-1f3fb"],':bow_tone5:':["1f647-1f3ff"],':bow_tone4:':["1f647-1f3fe"],':bow_tone3:':["1f647-1f3fd"],':bow_tone2:':["1f647-1f3fc"],':bow_tone1:':["1f647-1f3fb"],':ok_woman_tone5:':["1f646-1f3ff"],':ok_woman_tone4:':["1f646-1f3fe"],':ok_woman_tone3:':["1f646-1f3fd"],':ok_woman_tone2:':["1f646-1f3fc"],':ok_woman_tone1:':["1f646-1f3fb"],':no_good_tone5:':["1f645-1f3ff"],':no_good_tone4:':["1f645-1f3fe"],':no_good_tone3:':["1f645-1f3fd"],':no_good_tone2:':["1f645-1f3fc"],':no_good_tone1:':["1f645-1f3fb"],':vulcan_tone5:':["1f596-1f3ff"],':raised_hand_with_part_between_middle_and_ring_fingers_tone5:':["1f596-1f3ff"],':vulcan_tone4:':["1f596-1f3fe"],':raised_hand_with_part_between_middle_and_ring_fingers_tone4:':["1f596-1f3fe"],':vulcan_tone3:':["1f596-1f3fd"],':raised_hand_with_part_between_middle_and_ring_fingers_tone3:':["1f596-1f3fd"],':vulcan_tone2:':["1f596-1f3fc"],':raised_hand_with_part_between_middle_and_ring_fingers_tone2:':["1f596-1f3fc"],':vulcan_tone1:':["1f596-1f3fb"],':raised_hand_with_part_between_middle_and_ring_fingers_tone1:':["1f596-1f3fb"],':middle_finger_tone5:':["1f595-1f3ff"],':reversed_hand_with_middle_finger_extended_tone5:':["1f595-1f3ff"],':middle_finger_tone4:':["1f595-1f3fe"],':reversed_hand_with_middle_finger_extended_tone4:':["1f595-1f3fe"],':middle_finger_tone3:':["1f595-1f3fd"],':reversed_hand_with_middle_finger_extended_tone3:':["1f595-1f3fd"],':middle_finger_tone2:':["1f595-1f3fc"],':reversed_hand_with_middle_finger_extended_tone2:':["1f595-1f3fc"],':middle_finger_tone1:':["1f595-1f3fb"],':reversed_hand_with_middle_finger_extended_tone1:':["1f595-1f3fb"],':hand_splayed_tone5:':["1f590-1f3ff"],':raised_hand_with_fingers_splayed_tone5:':["1f590-1f3ff"],':hand_splayed_tone4:':["1f590-1f3fe"],':raised_hand_with_fingers_splayed_tone4:':["1f590-1f3fe"],':hand_splayed_tone3:':["1f590-1f3fd"],':raised_hand_with_fingers_splayed_tone3:':["1f590-1f3fd"],':hand_splayed_tone2:':["1f590-1f3fc"],':raised_hand_with_fingers_splayed_tone2:':["1f590-1f3fc"],':hand_splayed_tone1:':["1f590-1f3fb"],':raised_hand_with_fingers_splayed_tone1:':["1f590-1f3fb"],':spy_tone5:':["1f575-1f3ff"],':sleuth_or_spy_tone5:':["1f575-1f3ff"],':spy_tone4:':["1f575-1f3fe"],':sleuth_or_spy_tone4:':["1f575-1f3fe"],':spy_tone3:':["1f575-1f3fd"],':sleuth_or_spy_tone3:':["1f575-1f3fd"],':spy_tone2:':["1f575-1f3fc"],':sleuth_or_spy_tone2:':["1f575-1f3fc"],':spy_tone1:':["1f575-1f3fb"],':sleuth_or_spy_tone1:':["1f575-1f3fb"],':muscle_tone5:':["1f4aa-1f3ff"],':muscle_tone4:':["1f4aa-1f3fe"],':muscle_tone3:':["1f4aa-1f3fd"],':muscle_tone2:':["1f4aa-1f3fc"],':muscle_tone1:':["1f4aa-1f3fb"],':haircut_tone5:':["1f487-1f3ff"],':haircut_tone4:':["1f487-1f3fe"],':haircut_tone3:':["1f487-1f3fd"],':haircut_tone2:':["1f487-1f3fc"],':haircut_tone1:':["1f487-1f3fb"],':massage_tone5:':["1f486-1f3ff"],':massage_tone4:':["1f486-1f3fe"],':massage_tone3:':["1f486-1f3fd"],':massage_tone2:':["1f486-1f3fc"],':massage_tone1:':["1f486-1f3fb"],':nail_care_tone5:':["1f485-1f3ff"],':nail_care_tone4:':["1f485-1f3fe"],':nail_care_tone3:':["1f485-1f3fd"],':nail_care_tone2:':["1f485-1f3fc"],':nail_care_tone1:':["1f485-1f3fb"],':dancer_tone5:':["1f483-1f3ff"],':dancer_tone4:':["1f483-1f3fe"],':dancer_tone3:':["1f483-1f3fd"],':dancer_tone2:':["1f483-1f3fc"],':dancer_tone1:':["1f483-1f3fb"],':guardsman_tone5:':["1f482-1f3ff"],':guardsman_tone4:':["1f482-1f3fe"],':guardsman_tone3:':["1f482-1f3fd"],':guardsman_tone2:':["1f482-1f3fc"],':guardsman_tone1:':["1f482-1f3fb"],':information_desk_person_tone5:':["1f481-1f3ff"],':information_desk_person_tone4:':["1f481-1f3fe"],':information_desk_person_tone3:':["1f481-1f3fd"],':information_desk_person_tone2:':["1f481-1f3fc"],':information_desk_person_tone1:':["1f481-1f3fb"],':angel_tone5:':["1f47c-1f3ff"],':angel_tone4:':["1f47c-1f3fe"],':angel_tone3:':["1f47c-1f3fd"],':angel_tone2:':["1f47c-1f3fc"],':angel_tone1:':["1f47c-1f3fb"],':princess_tone5:':["1f478-1f3ff"],':princess_tone4:':["1f478-1f3fe"],':princess_tone3:':["1f478-1f3fd"],':princess_tone2:':["1f478-1f3fc"],':princess_tone1:':["1f478-1f3fb"],':construction_worker_tone5:':["1f477-1f3ff"],':construction_worker_tone4:':["1f477-1f3fe"],':construction_worker_tone3:':["1f477-1f3fd"],':construction_worker_tone2:':["1f477-1f3fc"],':construction_worker_tone1:':["1f477-1f3fb"],':baby_tone5:':["1f476-1f3ff"],':baby_tone4:':["1f476-1f3fe"],':baby_tone3:':["1f476-1f3fd"],':baby_tone2:':["1f476-1f3fc"],':baby_tone1:':["1f476-1f3fb"],':older_woman_tone5:':["1f475-1f3ff"],':grandma_tone5:':["1f475-1f3ff"],':older_woman_tone4:':["1f475-1f3fe"],':grandma_tone4:':["1f475-1f3fe"],':older_woman_tone3:':["1f475-1f3fd"],':grandma_tone3:':["1f475-1f3fd"],':older_woman_tone2:':["1f475-1f3fc"],':grandma_tone2:':["1f475-1f3fc"],':older_woman_tone1:':["1f475-1f3fb"],':grandma_tone1:':["1f475-1f3fb"],':older_man_tone5:':["1f474-1f3ff"],':older_man_tone4:':["1f474-1f3fe"],':older_man_tone3:':["1f474-1f3fd"],':older_man_tone2:':["1f474-1f3fc"],':older_man_tone1:':["1f474-1f3fb"],':man_with_turban_tone5:':["1f473-1f3ff"],':man_with_turban_tone4:':["1f473-1f3fe"],':man_with_turban_tone3:':["1f473-1f3fd"],':man_with_turban_tone2:':["1f473-1f3fc"],':man_with_turban_tone1:':["1f473-1f3fb"],':man_with_gua_pi_mao_tone5:':["1f472-1f3ff"],':man_with_gua_pi_mao_tone4:':["1f472-1f3fe"],':man_with_gua_pi_mao_tone3:':["1f472-1f3fd"],':man_with_gua_pi_mao_tone2:':["1f472-1f3fc"],':man_with_gua_pi_mao_tone1:':["1f472-1f3fb"],':person_with_blond_hair_tone5:':["1f471-1f3ff"],':person_with_blond_hair_tone4:':["1f471-1f3fe"],':person_with_blond_hair_tone3:':["1f471-1f3fd"],':person_with_blond_hair_tone2:':["1f471-1f3fc"],':person_with_blond_hair_tone1:':["1f471-1f3fb"],':bride_with_veil_tone5:':["1f470-1f3ff"],':bride_with_veil_tone4:':["1f470-1f3fe"],':bride_with_veil_tone3:':["1f470-1f3fd"],':bride_with_veil_tone2:':["1f470-1f3fc"],':bride_with_veil_tone1:':["1f470-1f3fb"],':cop_tone5:':["1f46e-1f3ff"],':cop_tone4:':["1f46e-1f3fe"],':cop_tone3:':["1f46e-1f3fd"],':cop_tone2:':["1f46e-1f3fc"],':cop_tone1:':["1f46e-1f3fb"],':woman_tone5:':["1f469-1f3ff"],':woman_tone4:':["1f469-1f3fe"],':woman_tone3:':["1f469-1f3fd"],':woman_tone2:':["1f469-1f3fc"],':woman_tone1:':["1f469-1f3fb"],':man_tone5:':["1f468-1f3ff"],':man_tone4:':["1f468-1f3fe"],':man_tone3:':["1f468-1f3fd"],':man_tone2:':["1f468-1f3fc"],':man_tone1:':["1f468-1f3fb"],':girl_tone5:':["1f467-1f3ff"],':girl_tone4:':["1f467-1f3fe"],':girl_tone3:':["1f467-1f3fd"],':girl_tone2:':["1f467-1f3fc"],':girl_tone1:':["1f467-1f3fb"],':boy_tone5:':["1f466-1f3ff"],':boy_tone4:':["1f466-1f3fe"],':boy_tone3:':["1f466-1f3fd"],':boy_tone2:':["1f466-1f3fc"],':boy_tone1:':["1f466-1f3fb"],':open_hands_tone5:':["1f450-1f3ff"],':open_hands_tone4:':["1f450-1f3fe"],':open_hands_tone3:':["1f450-1f3fd"],':open_hands_tone2:':["1f450-1f3fc"],':open_hands_tone1:':["1f450-1f3fb"],':clap_tone5:':["1f44f-1f3ff"],':clap_tone4:':["1f44f-1f3fe"],':clap_tone3:':["1f44f-1f3fd"],':clap_tone2:':["1f44f-1f3fc"],':clap_tone1:':["1f44f-1f3fb"],':thumbsdown_tone5:':["1f44e-1f3ff"],':-1_tone5:':["1f44e-1f3ff"],':thumbsdown_tone4:':["1f44e-1f3fe"],':-1_tone4:':["1f44e-1f3fe"],':thumbsdown_tone3:':["1f44e-1f3fd"],':-1_tone3:':["1f44e-1f3fd"],':thumbsdown_tone2:':["1f44e-1f3fc"],':-1_tone2:':["1f44e-1f3fc"],':thumbsdown_tone1:':["1f44e-1f3fb"],':-1_tone1:':["1f44e-1f3fb"],':thumbsup_tone5:':["1f44d-1f3ff"],':+1_tone5:':["1f44d-1f3ff"],':thumbsup_tone4:':["1f44d-1f3fe"],':+1_tone4:':["1f44d-1f3fe"],':thumbsup_tone3:':["1f44d-1f3fd"],':+1_tone3:':["1f44d-1f3fd"],':thumbsup_tone2:':["1f44d-1f3fc"],':+1_tone2:':["1f44d-1f3fc"],':thumbsup_tone1:':["1f44d-1f3fb"],':+1_tone1:':["1f44d-1f3fb"],':ok_hand_tone5:':["1f44c-1f3ff"],':ok_hand_tone4:':["1f44c-1f3fe"],':ok_hand_tone3:':["1f44c-1f3fd"],':ok_hand_tone2:':["1f44c-1f3fc"],':ok_hand_tone1:':["1f44c-1f3fb"],':wave_tone5:':["1f44b-1f3ff"],':wave_tone4:':["1f44b-1f3fe"],':wave_tone3:':["1f44b-1f3fd"],':wave_tone2:':["1f44b-1f3fc"],':wave_tone1:':["1f44b-1f3fb"],':punch_tone5:':["1f44a-1f3ff"],':punch_tone4:':["1f44a-1f3fe"],':punch_tone3:':["1f44a-1f3fd"],':punch_tone2:':["1f44a-1f3fc"],':punch_tone1:':["1f44a-1f3fb"],':point_right_tone5:':["1f449-1f3ff"],':point_right_tone4:':["1f449-1f3fe"],':point_right_tone3:':["1f449-1f3fd"],':point_right_tone2:':["1f449-1f3fc"],':point_right_tone1:':["1f449-1f3fb"],':point_left_tone5:':["1f448-1f3ff"],':point_left_tone4:':["1f448-1f3fe"],':point_left_tone3:':["1f448-1f3fd"],':point_left_tone2:':["1f448-1f3fc"],':point_left_tone1:':["1f448-1f3fb"],':point_down_tone5:':["1f447-1f3ff"],':point_down_tone4:':["1f447-1f3fe"],':point_down_tone3:':["1f447-1f3fd"],':point_down_tone2:':["1f447-1f3fc"],':point_down_tone1:':["1f447-1f3fb"],':point_up_2_tone5:':["1f446-1f3ff"],':point_up_2_tone4:':["1f446-1f3fe"],':point_up_2_tone3:':["1f446-1f3fd"],':point_up_2_tone2:':["1f446-1f3fc"],':point_up_2_tone1:':["1f446-1f3fb"],':nose_tone5:':["1f443-1f3ff"],':nose_tone4:':["1f443-1f3fe"],':nose_tone3:':["1f443-1f3fd"],':nose_tone2:':["1f443-1f3fc"],':nose_tone1:':["1f443-1f3fb"],':ear_tone5:':["1f442-1f3ff"],':ear_tone4:':["1f442-1f3fe"],':ear_tone3:':["1f442-1f3fd"],':ear_tone2:':["1f442-1f3fc"],':ear_tone1:':["1f442-1f3fb"],':lifter_tone5:':["1f3cb-1f3ff"],':weight_lifter_tone5:':["1f3cb-1f3ff"],':lifter_tone4:':["1f3cb-1f3fe"],':weight_lifter_tone4:':["1f3cb-1f3fe"],':lifter_tone3:':["1f3cb-1f3fd"],':weight_lifter_tone3:':["1f3cb-1f3fd"],':lifter_tone2:':["1f3cb-1f3fc"],':weight_lifter_tone2:':["1f3cb-1f3fc"],':lifter_tone1:':["1f3cb-1f3fb"],':weight_lifter_tone1:':["1f3cb-1f3fb"],':swimmer_tone5:':["1f3ca-1f3ff"],':swimmer_tone4:':["1f3ca-1f3fe"],':swimmer_tone3:':["1f3ca-1f3fd"],':swimmer_tone2:':["1f3ca-1f3fc"],':swimmer_tone1:':["1f3ca-1f3fb"],':horse_racing_tone5:':["1f3c7-1f3ff"],':horse_racing_tone4:':["1f3c7-1f3fe"],':horse_racing_tone3:':["1f3c7-1f3fd"],':horse_racing_tone2:':["1f3c7-1f3fc"],':horse_racing_tone1:':["1f3c7-1f3fb"],':surfer_tone5:':["1f3c4-1f3ff"],':surfer_tone4:':["1f3c4-1f3fe"],':surfer_tone3:':["1f3c4-1f3fd"],':surfer_tone2:':["1f3c4-1f3fc"],':surfer_tone1:':["1f3c4-1f3fb"],':runner_tone5:':["1f3c3-1f3ff"],':runner_tone4:':["1f3c3-1f3fe"],':runner_tone3:':["1f3c3-1f3fd"],':runner_tone2:':["1f3c3-1f3fc"],':runner_tone1:':["1f3c3-1f3fb"],':santa_tone5:':["1f385-1f3ff"],':santa_tone4:':["1f385-1f3fe"],':santa_tone3:':["1f385-1f3fd"],':santa_tone2:':["1f385-1f3fc"],':santa_tone1:':["1f385-1f3fb"],':flag_zw:':["1f1ff-1f1fc"],':zw:':["1f1ff-1f1fc"],':flag_zm:':["1f1ff-1f1f2"],':zm:':["1f1ff-1f1f2"],':flag_za:':["1f1ff-1f1e6"],':za:':["1f1ff-1f1e6"],':flag_yt:':["1f1fe-1f1f9"],':yt:':["1f1fe-1f1f9"],':flag_ye:':["1f1fe-1f1ea"],':ye:':["1f1fe-1f1ea"],':flag_xk:':["1f1fd-1f1f0"],':xk:':["1f1fd-1f1f0"],':flag_ws:':["1f1fc-1f1f8"],':ws:':["1f1fc-1f1f8"],':flag_wf:':["1f1fc-1f1eb"],':wf:':["1f1fc-1f1eb"],':flag_vu:':["1f1fb-1f1fa"],':vu:':["1f1fb-1f1fa"],':flag_vn:':["1f1fb-1f1f3"],':vn:':["1f1fb-1f1f3"],':flag_vi:':["1f1fb-1f1ee"],':vi:':["1f1fb-1f1ee"],':flag_vg:':["1f1fb-1f1ec"],':vg:':["1f1fb-1f1ec"],':flag_ve:':["1f1fb-1f1ea"],':ve:':["1f1fb-1f1ea"],':flag_vc:':["1f1fb-1f1e8"],':vc:':["1f1fb-1f1e8"],':flag_va:':["1f1fb-1f1e6"],':va:':["1f1fb-1f1e6"],':flag_uz:':["1f1fa-1f1ff"],':uz:':["1f1fa-1f1ff"],':flag_uy:':["1f1fa-1f1fe"],':uy:':["1f1fa-1f1fe"],':flag_us:':["1f1fa-1f1f8"],':us:':["1f1fa-1f1f8"],':flag_um:':["1f1fa-1f1f2"],':um:':["1f1fa-1f1f2"],':flag_ug:':["1f1fa-1f1ec"],':ug:':["1f1fa-1f1ec"],':flag_ua:':["1f1fa-1f1e6"],':ua:':["1f1fa-1f1e6"],':flag_tz:':["1f1f9-1f1ff"],':tz:':["1f1f9-1f1ff"],':flag_tw:':["1f1f9-1f1fc"],':tw:':["1f1f9-1f1fc"],':flag_tv:':["1f1f9-1f1fb"],':tuvalu:':["1f1f9-1f1fb"],':flag_tt:':["1f1f9-1f1f9"],':tt:':["1f1f9-1f1f9"],':flag_tr:':["1f1f9-1f1f7"],':tr:':["1f1f9-1f1f7"],':flag_to:':["1f1f9-1f1f4"],':to:':["1f1f9-1f1f4"],':flag_tn:':["1f1f9-1f1f3"],':tn:':["1f1f9-1f1f3"],':flag_tm:':["1f1f9-1f1f2"],':turkmenistan:':["1f1f9-1f1f2"],':flag_tl:':["1f1f9-1f1f1"],':tl:':["1f1f9-1f1f1"],':flag_tk:':["1f1f9-1f1f0"],':tk:':["1f1f9-1f1f0"],':flag_tj:':["1f1f9-1f1ef"],':tj:':["1f1f9-1f1ef"],':flag_th:':["1f1f9-1f1ed"],':th:':["1f1f9-1f1ed"],':flag_tg:':["1f1f9-1f1ec"],':tg:':["1f1f9-1f1ec"],':flag_tf:':["1f1f9-1f1eb"],':tf:':["1f1f9-1f1eb"],':flag_td:':["1f1f9-1f1e9"],':td:':["1f1f9-1f1e9"],':flag_tc:':["1f1f9-1f1e8"],':tc:':["1f1f9-1f1e8"],':flag_ta:':["1f1f9-1f1e6"],':ta:':["1f1f9-1f1e6"],':flag_sz:':["1f1f8-1f1ff"],':sz:':["1f1f8-1f1ff"],':flag_sy:':["1f1f8-1f1fe"],':sy:':["1f1f8-1f1fe"],':flag_sx:':["1f1f8-1f1fd"],':sx:':["1f1f8-1f1fd"],':flag_sv:':["1f1f8-1f1fb"],':sv:':["1f1f8-1f1fb"],':flag_st:':["1f1f8-1f1f9"],':st:':["1f1f8-1f1f9"],':flag_ss:':["1f1f8-1f1f8"],':ss:':["1f1f8-1f1f8"],':flag_sr:':["1f1f8-1f1f7"],':sr:':["1f1f8-1f1f7"],':flag_so:':["1f1f8-1f1f4"],':so:':["1f1f8-1f1f4"],':flag_sn:':["1f1f8-1f1f3"],':sn:':["1f1f8-1f1f3"],':flag_sm:':["1f1f8-1f1f2"],':sm:':["1f1f8-1f1f2"],':flag_sl:':["1f1f8-1f1f1"],':sl:':["1f1f8-1f1f1"],':flag_sk:':["1f1f8-1f1f0"],':sk:':["1f1f8-1f1f0"],':flag_sj:':["1f1f8-1f1ef"],':sj:':["1f1f8-1f1ef"],':flag_si:':["1f1f8-1f1ee"],':si:':["1f1f8-1f1ee"],':flag_sh:':["1f1f8-1f1ed"],':sh:':["1f1f8-1f1ed"],':flag_sg:':["1f1f8-1f1ec"],':sg:':["1f1f8-1f1ec"],':flag_se:':["1f1f8-1f1ea"],':se:':["1f1f8-1f1ea"],':flag_sd:':["1f1f8-1f1e9"],':sd:':["1f1f8-1f1e9"],':flag_sc:':["1f1f8-1f1e8"],':sc:':["1f1f8-1f1e8"],':flag_sb:':["1f1f8-1f1e7"],':sb:':["1f1f8-1f1e7"],':flag_sa:':["1f1f8-1f1e6"],':saudiarabia:':["1f1f8-1f1e6"],':saudi:':["1f1f8-1f1e6"],':flag_rw:':["1f1f7-1f1fc"],':rw:':["1f1f7-1f1fc"],':flag_ru:':["1f1f7-1f1fa"],':ru:':["1f1f7-1f1fa"],':flag_rs:':["1f1f7-1f1f8"],':rs:':["1f1f7-1f1f8"],':flag_ro:':["1f1f7-1f1f4"],':ro:':["1f1f7-1f1f4"],':flag_re:':["1f1f7-1f1ea"],':re:':["1f1f7-1f1ea"],':flag_qa:':["1f1f6-1f1e6"],':qa:':["1f1f6-1f1e6"],':flag_py:':["1f1f5-1f1fe"],':py:':["1f1f5-1f1fe"],':flag_pw:':["1f1f5-1f1fc"],':pw:':["1f1f5-1f1fc"],':flag_pt:':["1f1f5-1f1f9"],':pt:':["1f1f5-1f1f9"],':flag_ps:':["1f1f5-1f1f8"],':ps:':["1f1f5-1f1f8"],':flag_pr:':["1f1f5-1f1f7"],':pr:':["1f1f5-1f1f7"],':flag_pn:':["1f1f5-1f1f3"],':pn:':["1f1f5-1f1f3"],':flag_pm:':["1f1f5-1f1f2"],':pm:':["1f1f5-1f1f2"],':flag_pl:':["1f1f5-1f1f1"],':pl:':["1f1f5-1f1f1"],':flag_pk:':["1f1f5-1f1f0"],':pk:':["1f1f5-1f1f0"],':flag_ph:':["1f1f5-1f1ed"],':ph:':["1f1f5-1f1ed"],':flag_pg:':["1f1f5-1f1ec"],':pg:':["1f1f5-1f1ec"],':flag_pf:':["1f1f5-1f1eb"],':pf:':["1f1f5-1f1eb"],':flag_pe:':["1f1f5-1f1ea"],':pe:':["1f1f5-1f1ea"],':flag_pa:':["1f1f5-1f1e6"],':pa:':["1f1f5-1f1e6"],':flag_om:':["1f1f4-1f1f2"],':om:':["1f1f4-1f1f2"],':flag_nz:':["1f1f3-1f1ff"],':nz:':["1f1f3-1f1ff"],':flag_nu:':["1f1f3-1f1fa"],':nu:':["1f1f3-1f1fa"],':flag_nr:':["1f1f3-1f1f7"],':nr:':["1f1f3-1f1f7"],':flag_np:':["1f1f3-1f1f5"],':np:':["1f1f3-1f1f5"],':flag_no:':["1f1f3-1f1f4"],':no:':["1f1f3-1f1f4"],':flag_nl:':["1f1f3-1f1f1"],':nl:':["1f1f3-1f1f1"],':flag_ni:':["1f1f3-1f1ee"],':ni:':["1f1f3-1f1ee"],':flag_ng:':["1f1f3-1f1ec"],':nigeria:':["1f1f3-1f1ec"],':flag_nf:':["1f1f3-1f1eb"],':nf:':["1f1f3-1f1eb"],':flag_ne:':["1f1f3-1f1ea"],':ne:':["1f1f3-1f1ea"],':flag_nc:':["1f1f3-1f1e8"],':nc:':["1f1f3-1f1e8"],':flag_na:':["1f1f3-1f1e6"],':na:':["1f1f3-1f1e6"],':flag_mz:':["1f1f2-1f1ff"],':mz:':["1f1f2-1f1ff"],':flag_my:':["1f1f2-1f1fe"],':my:':["1f1f2-1f1fe"],':flag_mx:':["1f1f2-1f1fd"],':mx:':["1f1f2-1f1fd"],':flag_mw:':["1f1f2-1f1fc"],':mw:':["1f1f2-1f1fc"],':flag_mv:':["1f1f2-1f1fb"],':mv:':["1f1f2-1f1fb"],':flag_mu:':["1f1f2-1f1fa"],':mu:':["1f1f2-1f1fa"],':flag_mt:':["1f1f2-1f1f9"],':mt:':["1f1f2-1f1f9"],':flag_ms:':["1f1f2-1f1f8"],':ms:':["1f1f2-1f1f8"],':flag_mr:':["1f1f2-1f1f7"],':mr:':["1f1f2-1f1f7"],':flag_mq:':["1f1f2-1f1f6"],':mq:':["1f1f2-1f1f6"],':flag_mp:':["1f1f2-1f1f5"],':mp:':["1f1f2-1f1f5"],':flag_mo:':["1f1f2-1f1f4"],':mo:':["1f1f2-1f1f4"],':flag_mn:':["1f1f2-1f1f3"],':mn:':["1f1f2-1f1f3"],':flag_mm:':["1f1f2-1f1f2"],':mm:':["1f1f2-1f1f2"],':flag_ml:':["1f1f2-1f1f1"],':ml:':["1f1f2-1f1f1"],':flag_mk:':["1f1f2-1f1f0"],':mk:':["1f1f2-1f1f0"],':flag_mh:':["1f1f2-1f1ed"],':mh:':["1f1f2-1f1ed"],':flag_mg:':["1f1f2-1f1ec"],':mg:':["1f1f2-1f1ec"],':flag_mf:':["1f1f2-1f1eb"],':mf:':["1f1f2-1f1eb"],':flag_me:':["1f1f2-1f1ea"],':me:':["1f1f2-1f1ea"],':flag_md:':["1f1f2-1f1e9"],':md:':["1f1f2-1f1e9"],':flag_mc:':["1f1f2-1f1e8"],':mc:':["1f1f2-1f1e8"],':flag_ma:':["1f1f2-1f1e6"],':ma:':["1f1f2-1f1e6"],':flag_ly:':["1f1f1-1f1fe"],':ly:':["1f1f1-1f1fe"],':flag_lv:':["1f1f1-1f1fb"],':lv:':["1f1f1-1f1fb"],':flag_lu:':["1f1f1-1f1fa"],':lu:':["1f1f1-1f1fa"],':flag_lt:':["1f1f1-1f1f9"],':lt:':["1f1f1-1f1f9"],':flag_ls:':["1f1f1-1f1f8"],':ls:':["1f1f1-1f1f8"],':flag_lr:':["1f1f1-1f1f7"],':lr:':["1f1f1-1f1f7"],':flag_lk:':["1f1f1-1f1f0"],':lk:':["1f1f1-1f1f0"],':flag_li:':["1f1f1-1f1ee"],':li:':["1f1f1-1f1ee"],':flag_lc:':["1f1f1-1f1e8"],':lc:':["1f1f1-1f1e8"],':flag_lb:':["1f1f1-1f1e7"],':lb:':["1f1f1-1f1e7"],':flag_la:':["1f1f1-1f1e6"],':la:':["1f1f1-1f1e6"],':flag_kz:':["1f1f0-1f1ff"],':kz:':["1f1f0-1f1ff"],':flag_ky:':["1f1f0-1f1fe"],':ky:':["1f1f0-1f1fe"],':flag_kw:':["1f1f0-1f1fc"],':kw:':["1f1f0-1f1fc"],':flag_kr:':["1f1f0-1f1f7"],':kr:':["1f1f0-1f1f7"],':flag_kp:':["1f1f0-1f1f5"],':kp:':["1f1f0-1f1f5"],':flag_kn:':["1f1f0-1f1f3"],':kn:':["1f1f0-1f1f3"],':flag_km:':["1f1f0-1f1f2"],':km:':["1f1f0-1f1f2"],':flag_ki:':["1f1f0-1f1ee"],':ki:':["1f1f0-1f1ee"],':flag_kh:':["1f1f0-1f1ed"],':kh:':["1f1f0-1f1ed"],':flag_kg:':["1f1f0-1f1ec"],':kg:':["1f1f0-1f1ec"],':flag_ke:':["1f1f0-1f1ea"],':ke:':["1f1f0-1f1ea"],':flag_jp:':["1f1ef-1f1f5"],':jp:':["1f1ef-1f1f5"],':flag_jo:':["1f1ef-1f1f4"],':jo:':["1f1ef-1f1f4"],':flag_jm:':["1f1ef-1f1f2"],':jm:':["1f1ef-1f1f2"],':flag_je:':["1f1ef-1f1ea"],':je:':["1f1ef-1f1ea"],':flag_it:':["1f1ee-1f1f9"],':it:':["1f1ee-1f1f9"],':flag_is:':["1f1ee-1f1f8"],':is:':["1f1ee-1f1f8"],':flag_ir:':["1f1ee-1f1f7"],':ir:':["1f1ee-1f1f7"],':flag_iq:':["1f1ee-1f1f6"],':iq:':["1f1ee-1f1f6"],':flag_io:':["1f1ee-1f1f4"],':io:':["1f1ee-1f1f4"],':flag_in:':["1f1ee-1f1f3"],':in:':["1f1ee-1f1f3"],':flag_im:':["1f1ee-1f1f2"],':im:':["1f1ee-1f1f2"],':flag_il:':["1f1ee-1f1f1"],':il:':["1f1ee-1f1f1"],':flag_ie:':["1f1ee-1f1ea"],':ie:':["1f1ee-1f1ea"],':flag_id:':["1f1ee-1f1e9"],':indonesia:':["1f1ee-1f1e9"],':flag_ic:':["1f1ee-1f1e8"],':ic:':["1f1ee-1f1e8"],':flag_hu:':["1f1ed-1f1fa"],':hu:':["1f1ed-1f1fa"],':flag_ht:':["1f1ed-1f1f9"],':ht:':["1f1ed-1f1f9"],':flag_hr:':["1f1ed-1f1f7"],':hr:':["1f1ed-1f1f7"],':flag_hn:':["1f1ed-1f1f3"],':hn:':["1f1ed-1f1f3"],':flag_hm:':["1f1ed-1f1f2"],':hm:':["1f1ed-1f1f2"],':flag_hk:':["1f1ed-1f1f0"],':hk:':["1f1ed-1f1f0"],':flag_gy:':["1f1ec-1f1fe"],':gy:':["1f1ec-1f1fe"],':flag_gw:':["1f1ec-1f1fc"],':gw:':["1f1ec-1f1fc"],':flag_gu:':["1f1ec-1f1fa"],':gu:':["1f1ec-1f1fa"],':flag_gt:':["1f1ec-1f1f9"],':gt:':["1f1ec-1f1f9"],':flag_gs:':["1f1ec-1f1f8"],':gs:':["1f1ec-1f1f8"],':flag_gr:':["1f1ec-1f1f7"],':gr:':["1f1ec-1f1f7"],':flag_gq:':["1f1ec-1f1f6"],':gq:':["1f1ec-1f1f6"],':flag_gp:':["1f1ec-1f1f5"],':gp:':["1f1ec-1f1f5"],':flag_gn:':["1f1ec-1f1f3"],':gn:':["1f1ec-1f1f3"],':flag_gm:':["1f1ec-1f1f2"],':gm:':["1f1ec-1f1f2"],':flag_gl:':["1f1ec-1f1f1"],':gl:':["1f1ec-1f1f1"],':flag_gi:':["1f1ec-1f1ee"],':gi:':["1f1ec-1f1ee"],':flag_gh:':["1f1ec-1f1ed"],':gh:':["1f1ec-1f1ed"],':flag_gg:':["1f1ec-1f1ec"],':gg:':["1f1ec-1f1ec"],':flag_gf:':["1f1ec-1f1eb"],':gf:':["1f1ec-1f1eb"],':flag_ge:':["1f1ec-1f1ea"],':ge:':["1f1ec-1f1ea"],':flag_gd:':["1f1ec-1f1e9"],':gd:':["1f1ec-1f1e9"],':flag_gb:':["1f1ec-1f1e7"],':gb:':["1f1ec-1f1e7"],':flag_ga:':["1f1ec-1f1e6"],':ga:':["1f1ec-1f1e6"],':flag_fr:':["1f1eb-1f1f7"],':fr:':["1f1eb-1f1f7"],':flag_fo:':["1f1eb-1f1f4"],':fo:':["1f1eb-1f1f4"],':flag_fm:':["1f1eb-1f1f2"],':fm:':["1f1eb-1f1f2"],':flag_fk:':["1f1eb-1f1f0"],':fk:':["1f1eb-1f1f0"],':flag_fj:':["1f1eb-1f1ef"],':fj:':["1f1eb-1f1ef"],':flag_fi:':["1f1eb-1f1ee"],':fi:':["1f1eb-1f1ee"],':flag_eu:':["1f1ea-1f1fa"],':eu:':["1f1ea-1f1fa"],':flag_et:':["1f1ea-1f1f9"],':et:':["1f1ea-1f1f9"],':flag_es:':["1f1ea-1f1f8"],':es:':["1f1ea-1f1f8"],':flag_er:':["1f1ea-1f1f7"],':er:':["1f1ea-1f1f7"],':flag_eh:':["1f1ea-1f1ed"],':eh:':["1f1ea-1f1ed"],':flag_eg:':["1f1ea-1f1ec"],':eg:':["1f1ea-1f1ec"],':flag_ee:':["1f1ea-1f1ea"],':ee:':["1f1ea-1f1ea"],':flag_ec:':["1f1ea-1f1e8"],':ec:':["1f1ea-1f1e8"],':flag_ea:':["1f1ea-1f1e6"],':ea:':["1f1ea-1f1e6"],':flag_dz:':["1f1e9-1f1ff"],':dz:':["1f1e9-1f1ff"],':flag_do:':["1f1e9-1f1f4"],':do:':["1f1e9-1f1f4"],':flag_dm:':["1f1e9-1f1f2"],':dm:':["1f1e9-1f1f2"],':flag_dk:':["1f1e9-1f1f0"],':dk:':["1f1e9-1f1f0"],':flag_dj:':["1f1e9-1f1ef"],':dj:':["1f1e9-1f1ef"],':flag_dg:':["1f1e9-1f1ec"],':dg:':["1f1e9-1f1ec"],':flag_de:':["1f1e9-1f1ea"],':de:':["1f1e9-1f1ea"],':flag_cz:':["1f1e8-1f1ff"],':cz:':["1f1e8-1f1ff"],':flag_cy:':["1f1e8-1f1fe"],':cy:':["1f1e8-1f1fe"],':flag_cx:':["1f1e8-1f1fd"],':cx:':["1f1e8-1f1fd"],':flag_cw:':["1f1e8-1f1fc"],':cw:':["1f1e8-1f1fc"],':flag_cv:':["1f1e8-1f1fb"],':cv:':["1f1e8-1f1fb"],':flag_cu:':["1f1e8-1f1fa"],':cu:':["1f1e8-1f1fa"],':flag_cr:':["1f1e8-1f1f7"],':cr:':["1f1e8-1f1f7"],':flag_cp:':["1f1e8-1f1f5"],':cp:':["1f1e8-1f1f5"],':flag_co:':["1f1e8-1f1f4"],':co:':["1f1e8-1f1f4"],':flag_cn:':["1f1e8-1f1f3"],':cn:':["1f1e8-1f1f3"],':flag_cm:':["1f1e8-1f1f2"],':cm:':["1f1e8-1f1f2"],':flag_cl:':["1f1e8-1f1f1"],':chile:':["1f1e8-1f1f1"],':flag_ck:':["1f1e8-1f1f0"],':ck:':["1f1e8-1f1f0"],':flag_ci:':["1f1e8-1f1ee"],':ci:':["1f1e8-1f1ee"],':flag_ch:':["1f1e8-1f1ed"],':ch:':["1f1e8-1f1ed"],':flag_cg:':["1f1e8-1f1ec"],':cg:':["1f1e8-1f1ec"],':flag_cf:':["1f1e8-1f1eb"],':cf:':["1f1e8-1f1eb"],':flag_cd:':["1f1e8-1f1e9"],':congo:':["1f1e8-1f1e9"],':flag_cc:':["1f1e8-1f1e8"],':cc:':["1f1e8-1f1e8"],':flag_ca:':["1f1e8-1f1e6"],':ca:':["1f1e8-1f1e6"],':flag_bz:':["1f1e7-1f1ff"],':bz:':["1f1e7-1f1ff"],':flag_by:':["1f1e7-1f1fe"],':by:':["1f1e7-1f1fe"],':flag_bw:':["1f1e7-1f1fc"],':bw:':["1f1e7-1f1fc"],':flag_bv:':["1f1e7-1f1fb"],':bv:':["1f1e7-1f1fb"],':flag_bt:':["1f1e7-1f1f9"],':bt:':["1f1e7-1f1f9"],':flag_bs:':["1f1e7-1f1f8"],':bs:':["1f1e7-1f1f8"],':flag_br:':["1f1e7-1f1f7"],':br:':["1f1e7-1f1f7"],':flag_bq:':["1f1e7-1f1f6"],':bq:':["1f1e7-1f1f6"],':flag_bo:':["1f1e7-1f1f4"],':bo:':["1f1e7-1f1f4"],':flag_bn:':["1f1e7-1f1f3"],':bn:':["1f1e7-1f1f3"],':flag_bm:':["1f1e7-1f1f2"],':bm:':["1f1e7-1f1f2"],':flag_bl:':["1f1e7-1f1f1"],':bl:':["1f1e7-1f1f1"],':flag_bj:':["1f1e7-1f1ef"],':bj:':["1f1e7-1f1ef"],':flag_bi:':["1f1e7-1f1ee"],':bi:':["1f1e7-1f1ee"],':flag_bh:':["1f1e7-1f1ed"],':bh:':["1f1e7-1f1ed"],':flag_bg:':["1f1e7-1f1ec"],':bg:':["1f1e7-1f1ec"],':flag_bf:':["1f1e7-1f1eb"],':bf:':["1f1e7-1f1eb"],':flag_be:':["1f1e7-1f1ea"],':be:':["1f1e7-1f1ea"],':flag_bd:':["1f1e7-1f1e9"],':bd:':["1f1e7-1f1e9"],':flag_bb:':["1f1e7-1f1e7"],':bb:':["1f1e7-1f1e7"],':flag_ba:':["1f1e7-1f1e6"],':ba:':["1f1e7-1f1e6"],':flag_az:':["1f1e6-1f1ff"],':az:':["1f1e6-1f1ff"],':flag_ax:':["1f1e6-1f1fd"],':ax:':["1f1e6-1f1fd"],':flag_aw:':["1f1e6-1f1fc"],':aw:':["1f1e6-1f1fc"],':flag_au:':["1f1e6-1f1fa"],':au:':["1f1e6-1f1fa"],':flag_at:':["1f1e6-1f1f9"],':at:':["1f1e6-1f1f9"],':flag_as:':["1f1e6-1f1f8"],':as:':["1f1e6-1f1f8"],':flag_ar:':["1f1e6-1f1f7"],':ar:':["1f1e6-1f1f7"],':flag_aq:':["1f1e6-1f1f6"],':aq:':["1f1e6-1f1f6"],':flag_ao:':["1f1e6-1f1f4"],':ao:':["1f1e6-1f1f4"],':flag_am:':["1f1e6-1f1f2"],':am:':["1f1e6-1f1f2"],':flag_al:':["1f1e6-1f1f1"],':al:':["1f1e6-1f1f1"],':flag_ai:':["1f1e6-1f1ee"],':ai:':["1f1e6-1f1ee"],':flag_ag:':["1f1e6-1f1ec"],':ag:':["1f1e6-1f1ec"],':flag_af:':["1f1e6-1f1eb"],':af:':["1f1e6-1f1eb"],':flag_ae:':["1f1e6-1f1ea"],':ae:':["1f1e6-1f1ea"],':flag_ad:':["1f1e6-1f1e9"],':ad:':["1f1e6-1f1e9"],':flag_ac:':["1f1e6-1f1e8"],':ac:':["1f1e6-1f1e8"],':mahjong:':["1f004-fe0f","1f004"],':parking:':["1f17f-fe0f","1f17f"],':u7121:':["1f21a-fe0f","1f21a"],':u6307:':["1f22f-fe0f","1f22f"],':u6708:':["1f237-fe0f","1f237"],':point_up_tone1:':["261d-1f3fb"],':point_up_tone2:':["261d-1f3fc"],':point_up_tone3:':["261d-1f3fd"],':point_up_tone4:':["261d-1f3fe"],':point_up_tone5:':["261d-1f3ff"],':v_tone1:':["270c-1f3fb"],':v_tone2:':["270c-1f3fc"],':v_tone3:':["270c-1f3fd"],':v_tone4:':["270c-1f3fe"],':v_tone5:':["270c-1f3ff"],':fist_tone1:':["270a-1f3fb"],':fist_tone2:':["270a-1f3fc"],':fist_tone3:':["270a-1f3fd"],':fist_tone4:':["270a-1f3fe"],':fist_tone5:':["270a-1f3ff"],':raised_hand_tone1:':["270b-1f3fb"],':raised_hand_tone2:':["270b-1f3fc"],':raised_hand_tone3:':["270b-1f3fd"],':raised_hand_tone4:':["270b-1f3fe"],':raised_hand_tone5:':["270b-1f3ff"],':writing_hand_tone1:':["270d-1f3fb"],':writing_hand_tone2:':["270d-1f3fc"],':writing_hand_tone3:':["270d-1f3fd"],':writing_hand_tone4:':["270d-1f3fe"],':writing_hand_tone5:':["270d-1f3ff"],':basketball_player_tone1:':["26f9-1f3fb"],':person_with_ball_tone1:':["26f9-1f3fb"],':basketball_player_tone2:':["26f9-1f3fc"],':person_with_ball_tone2:':["26f9-1f3fc"],':basketball_player_tone3:':["26f9-1f3fd"],':person_with_ball_tone3:':["26f9-1f3fd"],':basketball_player_tone4:':["26f9-1f3fe"],':person_with_ball_tone4:':["26f9-1f3fe"],':basketball_player_tone5:':["26f9-1f3ff"],':person_with_ball_tone5:':["26f9-1f3ff"],':copyright:':["00a9-fe0f","00a9"],':registered:':["00ae-fe0f","00ae"],':bangbang:':["203c-fe0f","203c"],':interrobang:':["2049-fe0f","2049"],':tm:':["2122-fe0f","2122"],':information_source:':["2139-fe0f","2139"],':left_right_arrow:':["2194-fe0f","2194"],':arrow_up_down:':["2195-fe0f","2195"],':arrow_upper_left:':["2196-fe0f","2196"],':arrow_upper_right:':["2197-fe0f","2197"],':arrow_lower_right:':["2198-fe0f","2198"],':arrow_lower_left:':["2199-fe0f","2199"],':leftwards_arrow_with_hook:':["21a9-fe0f","21a9"],':arrow_right_hook:':["21aa-fe0f","21aa"],':watch:':["231a-fe0f","231a"],':hourglass:':["231b-fe0f","231b"],':m:':["24c2-fe0f","24c2"],':black_small_square:':["25aa-fe0f","25aa"],':white_small_square:':["25ab-fe0f","25ab"],':arrow_forward:':["25b6-fe0f","25b6"],':arrow_backward:':["25c0-fe0f","25c0"],':white_medium_square:':["25fb-fe0f","25fb"],':black_medium_square:':["25fc-fe0f","25fc"],':white_medium_small_square:':["25fd-fe0f","25fd"],':black_medium_small_square:':["25fe-fe0f","25fe"],':sunny:':["2600-fe0f","2600"],':cloud:':["2601-fe0f","2601"],':telephone:':["260e-fe0f","260e"],':ballot_box_with_check:':["2611-fe0f","2611"],':umbrella:':["2614-fe0f","2614"],':coffee:':["2615-fe0f","2615"],':point_up:':["261d-fe0f","261d"],':relaxed:':["263a-fe0f","263a"],':aries:':["2648-fe0f","2648"],':taurus:':["2649-fe0f","2649"],':gemini:':["264a-fe0f","264a"],':cancer:':["264b-fe0f","264b"],':leo:':["264c-fe0f","264c"],':virgo:':["264d-fe0f","264d"],':libra:':["264e-fe0f","264e"],':scorpius:':["264f-fe0f","264f"],':sagittarius:':["2650-fe0f","2650"],':capricorn:':["2651-fe0f","2651"],':aquarius:':["2652-fe0f","2652"],':pisces:':["2653-fe0f","2653"],':spades:':["2660-fe0f","2660"],':clubs:':["2663-fe0f","2663"],':hearts:':["2665-fe0f","2665"],':diamonds:':["2666-fe0f","2666"],':hotsprings:':["2668-fe0f","2668"],':recycle:':["267b-fe0f","267b"],':wheelchair:':["267f-fe0f","267f"],':anchor:':["2693-fe0f","2693"],':warning:':["26a0-fe0f","26a0"],':zap:':["26a1-fe0f","26a1"],':white_circle:':["26aa-fe0f","26aa"],':black_circle:':["26ab-fe0f","26ab"],':soccer:':["26bd-fe0f","26bd"],':baseball:':["26be-fe0f","26be"],':snowman:':["26c4-fe0f","26c4"],':partly_sunny:':["26c5-fe0f","26c5"],':no_entry:':["26d4-fe0f","26d4"],':church:':["26ea-fe0f","26ea"],':fountain:':["26f2-fe0f","26f2"],':golf:':["26f3-fe0f","26f3"],':sailboat:':["26f5-fe0f","26f5"],':tent:':["26fa-fe0f","26fa"],':fuelpump:':["26fd-fe0f","26fd"],':scissors:':["2702-fe0f","2702"],':airplane:':["2708-fe0f","2708"],':envelope:':["2709-fe0f","2709"],':v:':["270c-fe0f","270c"],':pencil2:':["270f-fe0f","270f"],':black_nib:':["2712-fe0f","2712"],':heavy_check_mark:':["2714-fe0f","2714"],':heavy_multiplication_x:':["2716-fe0f","2716"],':eight_spoked_asterisk:':["2733-fe0f","2733"],':eight_pointed_black_star:':["2734-fe0f","2734"],':snowflake:':["2744-fe0f","2744"],':sparkle:':["2747-fe0f","2747"],':exclamation:':["2757-fe0f","2757"],':heart:':["2764-fe0f","2764"],':arrow_right:':["27a1-fe0f","27a1"],':arrow_heading_up:':["2934-fe0f","2934"],':arrow_heading_down:':["2935-fe0f","2935"],':arrow_left:':["2b05-fe0f","2b05"],':arrow_up:':["2b06-fe0f","2b06"],':arrow_down:':["2b07-fe0f","2b07"],':black_large_square:':["2b1b-fe0f","2b1b"],':white_large_square:':["2b1c-fe0f","2b1c"],':star:':["2b50-fe0f","2b50"],':o:':["2b55-fe0f","2b55"],':part_alternation_mark:':["303d-fe0f","303d"],':congratulations:':["3297-fe0f","3297"],':secret:':["3299-fe0f","3299"],':black_joker:':["1f0cf"],':a:':["1f170"],':b:':["1f171"],':o2:':["1f17e"],':ab:':["1f18e"],':cl:':["1f191"],':cool:':["1f192"],':free:':["1f193"],':id:':["1f194"],':new:':["1f195"],':ng:':["1f196"],':ok:':["1f197"],':sos:':["1f198"],':up:':["1f199"],':vs:':["1f19a"],':koko:':["1f201"],':sa:':["1f202"],':u7981:':["1f232"],':u7a7a:':["1f233"],':u5408:':["1f234"],':u6e80:':["1f235"],':u6709:':["1f236"],':u7533:':["1f238"],':u5272:':["1f239"],':u55b6:':["1f23a"],':ideograph_advantage:':["1f250"],':accept:':["1f251"],':cyclone:':["1f300"],':foggy:':["1f301"],':closed_umbrella:':["1f302"],':night_with_stars:':["1f303"],':sunrise_over_mountains:':["1f304"],':sunrise:':["1f305"],':city_dusk:':["1f306"],':city_sunset:':["1f307"],':city_sunrise:':["1f307"],':rainbow:':["1f308"],':bridge_at_night:':["1f309"],':ocean:':["1f30a"],':volcano:':["1f30b"],':milky_way:':["1f30c"],':earth_asia:':["1f30f"],':new_moon:':["1f311"],':first_quarter_moon:':["1f313"],':waxing_gibbous_moon:':["1f314"],':full_moon:':["1f315"],':crescent_moon:':["1f319"],':first_quarter_moon_with_face:':["1f31b"],':star2:':["1f31f"],':stars:':["1f320"],':chestnut:':["1f330"],':seedling:':["1f331"],':palm_tree:':["1f334"],':cactus:':["1f335"],':tulip:':["1f337"],':cherry_blossom:':["1f338"],':rose:':["1f339"],':hibiscus:':["1f33a"],':sunflower:':["1f33b"],':blossom:':["1f33c"],':corn:':["1f33d"],':ear_of_rice:':["1f33e"],':herb:':["1f33f"],':four_leaf_clover:':["1f340"],':maple_leaf:':["1f341"],':fallen_leaf:':["1f342"],':leaves:':["1f343"],':mushroom:':["1f344"],':tomato:':["1f345"],':eggplant:':["1f346"],':grapes:':["1f347"],':melon:':["1f348"],':watermelon:':["1f349"],':tangerine:':["1f34a"],':banana:':["1f34c"],':pineapple:':["1f34d"],':apple:':["1f34e"],':green_apple:':["1f34f"],':peach:':["1f351"],':cherries:':["1f352"],':strawberry:':["1f353"],':hamburger:':["1f354"],':pizza:':["1f355"],':meat_on_bone:':["1f356"],':poultry_leg:':["1f357"],':rice_cracker:':["1f358"],':rice_ball:':["1f359"],':rice:':["1f35a"],':curry:':["1f35b"],':ramen:':["1f35c"],':spaghetti:':["1f35d"],':bread:':["1f35e"],':fries:':["1f35f"],':sweet_potato:':["1f360"],':dango:':["1f361"],':oden:':["1f362"],':sushi:':["1f363"],':fried_shrimp:':["1f364"],':fish_cake:':["1f365"],':icecream:':["1f366"],':shaved_ice:':["1f367"],':ice_cream:':["1f368"],':doughnut:':["1f369"],':cookie:':["1f36a"],':chocolate_bar:':["1f36b"],':candy:':["1f36c"],':lollipop:':["1f36d"],':custard:':["1f36e"],':honey_pot:':["1f36f"],':cake:':["1f370"],':bento:':["1f371"],':stew:':["1f372"],':egg:':["1f373"],':fork_and_knife:':["1f374"],':tea:':["1f375"],':sake:':["1f376"],':wine_glass:':["1f377"],':cocktail:':["1f378"],':tropical_drink:':["1f379"],':beer:':["1f37a"],':beers:':["1f37b"],':ribbon:':["1f380"],':gift:':["1f381"],':birthday:':["1f382"],':jack_o_lantern:':["1f383"],':christmas_tree:':["1f384"],':santa:':["1f385"],':fireworks:':["1f386"],':sparkler:':["1f387"],':balloon:':["1f388"],':tada:':["1f389"],':confetti_ball:':["1f38a"],':tanabata_tree:':["1f38b"],':crossed_flags:':["1f38c"],':bamboo:':["1f38d"],':dolls:':["1f38e"],':flags:':["1f38f"],':wind_chime:':["1f390"],':rice_scene:':["1f391"],':school_satchel:':["1f392"],':mortar_board:':["1f393"],':carousel_horse:':["1f3a0"],':ferris_wheel:':["1f3a1"],':roller_coaster:':["1f3a2"],':fishing_pole_and_fish:':["1f3a3"],':microphone:':["1f3a4"],':movie_camera:':["1f3a5"],':cinema:':["1f3a6"],':headphones:':["1f3a7"],':art:':["1f3a8"],':tophat:':["1f3a9"],':circus_tent:':["1f3aa"],':ticket:':["1f3ab"],':clapper:':["1f3ac"],':performing_arts:':["1f3ad"],':video_game:':["1f3ae"],':dart:':["1f3af"],':slot_machine:':["1f3b0"],':8ball:':["1f3b1"],':game_die:':["1f3b2"],':bowling:':["1f3b3"],':flower_playing_cards:':["1f3b4"],':musical_note:':["1f3b5"],':notes:':["1f3b6"],':saxophone:':["1f3b7"],':guitar:':["1f3b8"],':musical_keyboard:':["1f3b9"],':trumpet:':["1f3ba"],':violin:':["1f3bb"],':musical_score:':["1f3bc"],':running_shirt_with_sash:':["1f3bd"],':tennis:':["1f3be"],':ski:':["1f3bf"],':basketball:':["1f3c0"],':checkered_flag:':["1f3c1"],':snowboarder:':["1f3c2"],':runner:':["1f3c3"],':surfer:':["1f3c4"],':trophy:':["1f3c6"],':football:':["1f3c8"],':swimmer:':["1f3ca"],':house:':["1f3e0"],':house_with_garden:':["1f3e1"],':office:':["1f3e2"],':post_office:':["1f3e3"],':hospital:':["1f3e5"],':bank:':["1f3e6"],':atm:':["1f3e7"],':hotel:':["1f3e8"],':love_hotel:':["1f3e9"],':convenience_store:':["1f3ea"],':school:':["1f3eb"],':department_store:':["1f3ec"],':factory:':["1f3ed"],':izakaya_lantern:':["1f3ee"],':japanese_castle:':["1f3ef"],':european_castle:':["1f3f0"],':snail:':["1f40c"],':snake:':["1f40d"],':racehorse:':["1f40e"],':sheep:':["1f411"],':monkey:':["1f412"],':chicken:':["1f414"],':boar:':["1f417"],':elephant:':["1f418"],':octopus:':["1f419"],':shell:':["1f41a"],':bug:':["1f41b"],':ant:':["1f41c"],':bee:':["1f41d"],':beetle:':["1f41e"],':fish:':["1f41f"],':tropical_fish:':["1f420"],':blowfish:':["1f421"],':turtle:':["1f422"],':hatching_chick:':["1f423"],':baby_chick:':["1f424"],':hatched_chick:':["1f425"],':bird:':["1f426"],':penguin:':["1f427"],':koala:':["1f428"],':poodle:':["1f429"],':camel:':["1f42b"],':dolphin:':["1f42c"],':mouse:':["1f42d"],':cow:':["1f42e"],':tiger:':["1f42f"],':rabbit:':["1f430"],':cat:':["1f431"],':dragon_face:':["1f432"],':whale:':["1f433"],':horse:':["1f434"],':monkey_face:':["1f435"],':dog:':["1f436"],':pig:':["1f437"],':frog:':["1f438"],':hamster:':["1f439"],':wolf:':["1f43a"],':bear:':["1f43b"],':panda_face:':["1f43c"],':pig_nose:':["1f43d"],':feet:':["1f43e"],':paw_prints:':["1f43e"],':eyes:':["1f440"],':ear:':["1f442"],':nose:':["1f443"],':lips:':["1f444"],':tongue:':["1f445"],':point_up_2:':["1f446"],':point_down:':["1f447"],':point_left:':["1f448"],':point_right:':["1f449"],':punch:':["1f44a"],':wave:':["1f44b"],':ok_hand:':["1f44c"],':thumbsup:':["1f44d"],':+1:':["1f44d"],':thumbsdown:':["1f44e"],':-1:':["1f44e"],':clap:':["1f44f"],':open_hands:':["1f450"],':crown:':["1f451"],':womans_hat:':["1f452"],':eyeglasses:':["1f453"],':necktie:':["1f454"],':shirt:':["1f455"],':jeans:':["1f456"],':dress:':["1f457"],':kimono:':["1f458"],':bikini:':["1f459"],':womans_clothes:':["1f45a"],':purse:':["1f45b"],':handbag:':["1f45c"],':pouch:':["1f45d"],':mans_shoe:':["1f45e"],':athletic_shoe:':["1f45f"],':high_heel:':["1f460"],':sandal:':["1f461"],':boot:':["1f462"],':footprints:':["1f463"],':bust_in_silhouette:':["1f464"],':boy:':["1f466"],':girl:':["1f467"],':man:':["1f468"],':woman:':["1f469"],':family:':["1f46a"],':couple:':["1f46b"],':cop:':["1f46e"],':dancers:':["1f46f"],':bride_with_veil:':["1f470"],':person_with_blond_hair:':["1f471"],':man_with_gua_pi_mao:':["1f472"],':man_with_turban:':["1f473"],':older_man:':["1f474"],':older_woman:':["1f475"],':grandma:':["1f475"],':baby:':["1f476"],':construction_worker:':["1f477"],':princess:':["1f478"],':japanese_ogre:':["1f479"],':japanese_goblin:':["1f47a"],':ghost:':["1f47b"],':angel:':["1f47c"],':alien:':["1f47d"],':space_invader:':["1f47e"],':imp:':["1f47f"],':skull:':["1f480"],':skeleton:':["1f480"],':card_index:':["1f4c7"],':information_desk_person:':["1f481"],':guardsman:':["1f482"],':dancer:':["1f483"],':lipstick:':["1f484"],':nail_care:':["1f485"],':ledger:':["1f4d2"],':massage:':["1f486"],':notebook:':["1f4d3"],':haircut:':["1f487"],':notebook_with_decorative_cover:':["1f4d4"],':barber:':["1f488"],':closed_book:':["1f4d5"],':syringe:':["1f489"],':book:':["1f4d6"],':pill:':["1f48a"],':green_book:':["1f4d7"],':kiss:':["1f48b"],':blue_book:':["1f4d8"],':love_letter:':["1f48c"],':orange_book:':["1f4d9"],':ring:':["1f48d"],':books:':["1f4da"],':gem:':["1f48e"],':name_badge:':["1f4db"],':couplekiss:':["1f48f"],':scroll:':["1f4dc"],':bouquet:':["1f490"],':pencil:':["1f4dd"],':couple_with_heart:':["1f491"],':telephone_receiver:':["1f4de"],':wedding:':["1f492"],':pager:':["1f4df"],':fax:':["1f4e0"],':heartbeat:':["1f493"],':satellite:':["1f4e1"],':loudspeaker:':["1f4e2"],':broken_heart:':["1f494"],':mega:':["1f4e3"],':outbox_tray:':["1f4e4"],':two_hearts:':["1f495"],':inbox_tray:':["1f4e5"],':package:':["1f4e6"],':sparkling_heart:':["1f496"],':e-mail:':["1f4e7"],':email:':["1f4e7"],':incoming_envelope:':["1f4e8"],':heartpulse:':["1f497"],':envelope_with_arrow:':["1f4e9"],':mailbox_closed:':["1f4ea"],':cupid:':["1f498"],':mailbox:':["1f4eb"],':postbox:':["1f4ee"],':blue_heart:':["1f499"],':newspaper:':["1f4f0"],':iphone:':["1f4f1"],':green_heart:':["1f49a"],':calling:':["1f4f2"],':vibration_mode:':["1f4f3"],':yellow_heart:':["1f49b"],':mobile_phone_off:':["1f4f4"],':signal_strength:':["1f4f6"],':purple_heart:':["1f49c"],':camera:':["1f4f7"],':video_camera:':["1f4f9"],':gift_heart:':["1f49d"],':tv:':["1f4fa"],':radio:':["1f4fb"],':revolving_hearts:':["1f49e"],':vhs:':["1f4fc"],':arrows_clockwise:':["1f503"],':heart_decoration:':["1f49f"],':loud_sound:':["1f50a"],':battery:':["1f50b"],':diamond_shape_with_a_dot_inside:':["1f4a0"],':electric_plug:':["1f50c"],':mag:':["1f50d"],':bulb:':["1f4a1"],':mag_right:':["1f50e"],':lock_with_ink_pen:':["1f50f"],':anger:':["1f4a2"],':closed_lock_with_key:':["1f510"],':key:':["1f511"],':bomb:':["1f4a3"],':lock:':["1f512"],':unlock:':["1f513"],':zzz:':["1f4a4"],':bell:':["1f514"],':bookmark:':["1f516"],':boom:':["1f4a5"],':link:':["1f517"],':radio_button:':["1f518"],':sweat_drops:':["1f4a6"],':back:':["1f519"],':end:':["1f51a"],':droplet:':["1f4a7"],':on:':["1f51b"],':soon:':["1f51c"],':dash:':["1f4a8"],':top:':["1f51d"],':underage:':["1f51e"],':poop:':["1f4a9"],':shit:':["1f4a9"],':hankey:':["1f4a9"],':poo:':["1f4a9"],':ten:':["1f51f"],':muscle:':["1f4aa"],':capital_abcd:':["1f520"],':abcd:':["1f521"],':dizzy:':["1f4ab"],':1234:':["1f522"],':symbols:':["1f523"],':speech_balloon:':["1f4ac"],':abc:':["1f524"],':fire:':["1f525"],':flame:':["1f525"],':white_flower:':["1f4ae"],':flashlight:':["1f526"],':wrench:':["1f527"],':100:':["1f4af"],':hammer:':["1f528"],':nut_and_bolt:':["1f529"],':moneybag:':["1f4b0"],':knife:':["1f52a"],':gun:':["1f52b"],':currency_exchange:':["1f4b1"],':crystal_ball:':["1f52e"],':heavy_dollar_sign:':["1f4b2"],':six_pointed_star:':["1f52f"],':credit_card:':["1f4b3"],':beginner:':["1f530"],':trident:':["1f531"],':yen:':["1f4b4"],':black_square_button:':["1f532"],':white_square_button:':["1f533"],':dollar:':["1f4b5"],':red_circle:':["1f534"],':large_blue_circle:':["1f535"],':money_with_wings:':["1f4b8"],':large_orange_diamond:':["1f536"],':large_blue_diamond:':["1f537"],':chart:':["1f4b9"],':small_orange_diamond:':["1f538"],':small_blue_diamond:':["1f539"],':seat:':["1f4ba"],':small_red_triangle:':["1f53a"],':small_red_triangle_down:':["1f53b"],':computer:':["1f4bb"],':arrow_up_small:':["1f53c"],':briefcase:':["1f4bc"],':arrow_down_small:':["1f53d"],':clock1:':["1f550"],':minidisc:':["1f4bd"],':clock2:':["1f551"],':floppy_disk:':["1f4be"],':clock3:':["1f552"],':cd:':["1f4bf"],':clock4:':["1f553"],':dvd:':["1f4c0"],':clock5:':["1f554"],':clock6:':["1f555"],':file_folder:':["1f4c1"],':clock7:':["1f556"],':clock8:':["1f557"],':open_file_folder:':["1f4c2"],':clock9:':["1f558"],':clock10:':["1f559"],':page_with_curl:':["1f4c3"],':clock11:':["1f55a"],':clock12:':["1f55b"],':page_facing_up:':["1f4c4"],':mount_fuji:':["1f5fb"],':tokyo_tower:':["1f5fc"],':date:':["1f4c5"],':statue_of_liberty:':["1f5fd"],':japan:':["1f5fe"],':calendar:':["1f4c6"],':moyai:':["1f5ff"],':grin:':["1f601"],':joy:':["1f602"],':smiley:':["1f603"],':chart_with_upwards_trend:':["1f4c8"],':smile:':["1f604"],':sweat_smile:':["1f605"],':chart_with_downwards_trend:':["1f4c9"],':laughing:':["1f606"],':satisfied:':["1f606"],':wink:':["1f609"],':bar_chart:':["1f4ca"],':blush:':["1f60a"],':yum:':["1f60b"],':clipboard:':["1f4cb"],':relieved:':["1f60c"],':heart_eyes:':["1f60d"],':pushpin:':["1f4cc"],':smirk:':["1f60f"],':unamused:':["1f612"],':round_pushpin:':["1f4cd"],':sweat:':["1f613"],':pensive:':["1f614"],':paperclip:':["1f4ce"],':confounded:':["1f616"],':kissing_heart:':["1f618"],':straight_ruler:':["1f4cf"],':kissing_closed_eyes:':["1f61a"],':stuck_out_tongue_winking_eye:':["1f61c"],':triangular_ruler:':["1f4d0"],':stuck_out_tongue_closed_eyes:':["1f61d"],':disappointed:':["1f61e"],':bookmark_tabs:':["1f4d1"],':angry:':["1f620"],':rage:':["1f621"],':cry:':["1f622"],':persevere:':["1f623"],':triumph:':["1f624"],':disappointed_relieved:':["1f625"],':fearful:':["1f628"],':weary:':["1f629"],':sleepy:':["1f62a"],':tired_face:':["1f62b"],':sob:':["1f62d"],':cold_sweat:':["1f630"],':scream:':["1f631"],':astonished:':["1f632"],':flushed:':["1f633"],':dizzy_face:':["1f635"],':mask:':["1f637"],':smile_cat:':["1f638"],':joy_cat:':["1f639"],':smiley_cat:':["1f63a"],':heart_eyes_cat:':["1f63b"],':smirk_cat:':["1f63c"],':kissing_cat:':["1f63d"],':pouting_cat:':["1f63e"],':crying_cat_face:':["1f63f"],':scream_cat:':["1f640"],':no_good:':["1f645"],':ok_woman:':["1f646"],':bow:':["1f647"],':see_no_evil:':["1f648"],':hear_no_evil:':["1f649"],':speak_no_evil:':["1f64a"],':raising_hand:':["1f64b"],':raised_hands:':["1f64c"],':person_frowning:':["1f64d"],':person_with_pouting_face:':["1f64e"],':pray:':["1f64f"],':rocket:':["1f680"],':railway_car:':["1f683"],':bullettrain_side:':["1f684"],':bullettrain_front:':["1f685"],':metro:':["1f687"],':station:':["1f689"],':bus:':["1f68c"],':busstop:':["1f68f"],':ambulance:':["1f691"],':fire_engine:':["1f692"],':police_car:':["1f693"],':taxi:':["1f695"],':red_car:':["1f697"],':blue_car:':["1f699"],':truck:':["1f69a"],':ship:':["1f6a2"],':speedboat:':["1f6a4"],':traffic_light:':["1f6a5"],':construction:':["1f6a7"],':rotating_light:':["1f6a8"],':triangular_flag_on_post:':["1f6a9"],':door:':["1f6aa"],':no_entry_sign:':["1f6ab"],':smoking:':["1f6ac"],':no_smoking:':["1f6ad"],':bike:':["1f6b2"],':walking:':["1f6b6"],':mens:':["1f6b9"],':womens:':["1f6ba"],':restroom:':["1f6bb"],':baby_symbol:':["1f6bc"],':toilet:':["1f6bd"],':wc:':["1f6be"],':bath:':["1f6c0"],':metal:':["1f918"],':sign_of_the_horns:':["1f918"],':grinning:':["1f600"],':innocent:':["1f607"],':smiling_imp:':["1f608"],':sunglasses:':["1f60e"],':neutral_face:':["1f610"],':expressionless:':["1f611"],':confused:':["1f615"],':kissing:':["1f617"],':kissing_smiling_eyes:':["1f619"],':stuck_out_tongue:':["1f61b"],':worried:':["1f61f"],':frowning:':["1f626"],':anguished:':["1f627"],':grimacing:':["1f62c"],':open_mouth:':["1f62e"],':hushed:':["1f62f"],':sleeping:':["1f634"],':no_mouth:':["1f636"],':helicopter:':["1f681"],':steam_locomotive:':["1f682"],':train2:':["1f686"],':light_rail:':["1f688"],':tram:':["1f68a"],':oncoming_bus:':["1f68d"],':trolleybus:':["1f68e"],':minibus:':["1f690"],':oncoming_police_car:':["1f694"],':oncoming_taxi:':["1f696"],':oncoming_automobile:':["1f698"],':articulated_lorry:':["1f69b"],':tractor:':["1f69c"],':monorail:':["1f69d"],':mountain_railway:':["1f69e"],':suspension_railway:':["1f69f"],':mountain_cableway:':["1f6a0"],':aerial_tramway:':["1f6a1"],':rowboat:':["1f6a3"],':vertical_traffic_light:':["1f6a6"],':put_litter_in_its_place:':["1f6ae"],':do_not_litter:':["1f6af"],':potable_water:':["1f6b0"],':non-potable_water:':["1f6b1"],':no_bicycles:':["1f6b3"],':bicyclist:':["1f6b4"],':mountain_bicyclist:':["1f6b5"],':no_pedestrians:':["1f6b7"],':children_crossing:':["1f6b8"],':shower:':["1f6bf"],':bathtub:':["1f6c1"],':passport_control:':["1f6c2"],':customs:':["1f6c3"],':baggage_claim:':["1f6c4"],':left_luggage:':["1f6c5"],':earth_africa:':["1f30d"],':earth_americas:':["1f30e"],':globe_with_meridians:':["1f310"],':waxing_crescent_moon:':["1f312"],':waning_gibbous_moon:':["1f316"],':last_quarter_moon:':["1f317"],':waning_crescent_moon:':["1f318"],':new_moon_with_face:':["1f31a"],':last_quarter_moon_with_face:':["1f31c"],':full_moon_with_face:':["1f31d"],':sun_with_face:':["1f31e"],':evergreen_tree:':["1f332"],':deciduous_tree:':["1f333"],':lemon:':["1f34b"],':pear:':["1f350"],':baby_bottle:':["1f37c"],':horse_racing:':["1f3c7"],':rugby_football:':["1f3c9"],':european_post_office:':["1f3e4"],':rat:':["1f400"],':mouse2:':["1f401"],':ox:':["1f402"],':water_buffalo:':["1f403"],':cow2:':["1f404"],':tiger2:':["1f405"],':leopard:':["1f406"],':rabbit2:':["1f407"],':cat2:':["1f408"],':dragon:':["1f409"],':crocodile:':["1f40a"],':whale2:':["1f40b"],':ram:':["1f40f"],':goat:':["1f410"],':rooster:':["1f413"],':dog2:':["1f415"],':pig2:':["1f416"],':dromedary_camel:':["1f42a"],':busts_in_silhouette:':["1f465"],':two_men_holding_hands:':["1f46c"],':two_women_holding_hands:':["1f46d"],':thought_balloon:':["1f4ad"],':euro:':["1f4b6"],':pound:':["1f4b7"],':mailbox_with_mail:':["1f4ec"],':mailbox_with_no_mail:':["1f4ed"],':postal_horn:':["1f4ef"],':no_mobile_phones:':["1f4f5"],':twisted_rightwards_arrows:':["1f500"],':repeat:':["1f501"],':repeat_one:':["1f502"],':arrows_counterclockwise:':["1f504"],':low_brightness:':["1f505"],':high_brightness:':["1f506"],':mute:':["1f507"],':sound:':["1f509"],':no_bell:':["1f515"],':microscope:':["1f52c"],':telescope:':["1f52d"],':clock130:':["1f55c"],':clock230:':["1f55d"],':clock330:':["1f55e"],':clock430:':["1f55f"],':clock530:':["1f560"],':clock630:':["1f561"],':clock730:':["1f562"],':clock830:':["1f563"],':clock930:':["1f564"],':clock1030:':["1f565"],':clock1130:':["1f566"],':clock1230:':["1f567"],':speaker:':["1f508"],':train:':["1f68b"],':film_frames:':["1f39e"],':tickets:':["1f39f"],':admission_tickets:':["1f39f"],':medal:':["1f3c5"],':sports_medal:':["1f3c5"],':lifter:':["1f3cb"],':weight_lifter:':["1f3cb"],':golfer:':["1f3cc"],':motorcycle:':["1f3cd"],':racing_motorcycle:':["1f3cd"],':race_car:':["1f3ce"],':racing_car:':["1f3ce"],':military_medal:':["1f396"],':reminder_ribbon:':["1f397"],':hot_pepper:':["1f336"],':cloud_rain:':["1f327"],':cloud_with_rain:':["1f327"],':cloud_snow:':["1f328"],':cloud_with_snow:':["1f328"],':cloud_lightning:':["1f329"],':cloud_with_lightning:':["1f329"],':cloud_tornado:':["1f32a"],':cloud_with_tornado:':["1f32a"],':fog:':["1f32b"],':wind_blowing_face:':["1f32c"],':chipmunk:':["1f43f"],':spider:':["1f577"],':spider_web:':["1f578"],':thermometer:':["1f321"],':microphone2:':["1f399"],':studio_microphone:':["1f399"],':level_slider:':["1f39a"],':control_knobs:':["1f39b"],':flag_white:':["1f3f3"],':waving_white_flag:':["1f3f3"],':flag_black:':["1f3f4"],':waving_black_flag:':["1f3f4"],':rosette:':["1f3f5"],':label:':["1f3f7"],':camera_with_flash:':["1f4f8"],':projector:':["1f4fd"],':film_projector:':["1f4fd"],':om_symbol:':["1f549"],':dove:':["1f54a"],':dove_of_peace:':["1f54a"],':candle:':["1f56f"],':clock:':["1f570"],':mantlepiece_clock:':["1f570"],':hole:':["1f573"],':dark_sunglasses:':["1f576"],':joystick:':["1f579"],':paperclips:':["1f587"],':linked_paperclips:':["1f587"],':pen_ballpoint:':["1f58a"],':lower_left_ballpoint_pen:':["1f58a"],':pen_fountain:':["1f58b"],':lower_left_fountain_pen:':["1f58b"],':paintbrush:':["1f58c"],':lower_left_paintbrush:':["1f58c"],':crayon:':["1f58d"],':lower_left_crayon:':["1f58d"],':desktop:':["1f5a5"],':desktop_computer:':["1f5a5"],':printer:':["1f5a8"],':trackball:':["1f5b2"],':frame_photo:':["1f5bc"],':frame_with_picture:':["1f5bc"],':dividers:':["1f5c2"],':card_index_dividers:':["1f5c2"],':card_box:':["1f5c3"],':card_file_box:':["1f5c3"],':file_cabinet:':["1f5c4"],':wastebasket:':["1f5d1"],':notepad_spiral:':["1f5d2"],':spiral_note_pad:':["1f5d2"],':calendar_spiral:':["1f5d3"],':spiral_calendar_pad:':["1f5d3"],':compression:':["1f5dc"],':key2:':["1f5dd"],':old_key:':["1f5dd"],':newspaper2:':["1f5de"],':rolled_up_newspaper:':["1f5de"],':dagger:':["1f5e1"],':dagger_knife:':["1f5e1"],':speaking_head:':["1f5e3"],':speaking_head_in_silhouette:':["1f5e3"],':anger_right:':["1f5ef"],':right_anger_bubble:':["1f5ef"],':ballot_box:':["1f5f3"],':ballot_box_with_ballot:':["1f5f3"],':map:':["1f5fa"],':world_map:':["1f5fa"],':sleeping_accommodation:':["1f6cc"],':tools:':["1f6e0"],':hammer_and_wrench:':["1f6e0"],':shield:':["1f6e1"],':oil:':["1f6e2"],':oil_drum:':["1f6e2"],':satellite_orbital:':["1f6f0"],':fork_knife_plate:':["1f37d"],':fork_and_knife_with_plate:':["1f37d"],':eye:':["1f441"],':levitate:':["1f574"],':man_in_business_suit_levitating:':["1f574"],':spy:':["1f575"],':sleuth_or_spy:':["1f575"],':hand_splayed:':["1f590"],':raised_hand_with_fingers_splayed:':["1f590"],':middle_finger:':["1f595"],':reversed_hand_with_middle_finger_extended:':["1f595"],':vulcan:':["1f596"],':raised_hand_with_part_between_middle_and_ring_fingers:':["1f596"],':slight_frown:':["1f641"],':slightly_frowning_face:':["1f641"],':slight_smile:':["1f642"],':slightly_smiling_face:':["1f642"],':mountain_snow:':["1f3d4"],':snow_capped_mountain:':["1f3d4"],':camping:':["1f3d5"],':beach:':["1f3d6"],':beach_with_umbrella:':["1f3d6"],':construction_site:':["1f3d7"],':building_construction:':["1f3d7"],':homes:':["1f3d8"],':house_buildings:':["1f3d8"],':cityscape:':["1f3d9"],':house_abandoned:':["1f3da"],':derelict_house_building:':["1f3da"],':classical_building:':["1f3db"],':desert:':["1f3dc"],':island:':["1f3dd"],':desert_island:':["1f3dd"],':park:':["1f3de"],':national_park:':["1f3de"],':stadium:':["1f3df"],':couch:':["1f6cb"],':couch_and_lamp:':["1f6cb"],':shopping_bags:':["1f6cd"],':bellhop:':["1f6ce"],':bellhop_bell:':["1f6ce"],':bed:':["1f6cf"],':motorway:':["1f6e3"],':railway_track:':["1f6e4"],':railroad_track:':["1f6e4"],':motorboat:':["1f6e5"],':airplane_small:':["1f6e9"],':small_airplane:':["1f6e9"],':airplane_departure:':["1f6eb"],':airplane_arriving:':["1f6ec"],':cruise_ship:':["1f6f3"],':passenger_ship:':["1f6f3"],':tone1:':["1f3fb"],':tone2:':["1f3fc"],':tone3:':["1f3fd"],':tone4:':["1f3fe"],':tone5:':["1f3ff"],':white_sun_small_cloud:':["1f324"],':white_sun_with_small_cloud:':["1f324"],':white_sun_cloud:':["1f325"],':white_sun_behind_cloud:':["1f325"],':white_sun_rain_cloud:':["1f326"],':white_sun_behind_cloud_with_rain:':["1f326"],':mouse_three_button:':["1f5b1"],':three_button_mouse:':["1f5b1"],':upside_down:':["1f643"],':upside_down_face:':["1f643"],':money_mouth:':["1f911"],':money_mouth_face:':["1f911"],':nerd:':["1f913"],':nerd_face:':["1f913"],':hugging:':["1f917"],':hugging_face:':["1f917"],':rolling_eyes:':["1f644"],':face_with_rolling_eyes:':["1f644"],':thinking:':["1f914"],':thinking_face:':["1f914"],':zipper_mouth:':["1f910"],':zipper_mouth_face:':["1f910"],':thermometer_face:':["1f912"],':face_with_thermometer:':["1f912"],':head_bandage:':["1f915"],':face_with_head_bandage:':["1f915"],':robot:':["1f916"],':robot_face:':["1f916"],':lion_face:':["1f981"],':lion:':["1f981"],':unicorn:':["1f984"],':unicorn_face:':["1f984"],':scorpion:':["1f982"],':crab:':["1f980"],':turkey:':["1f983"],':cheese:':["1f9c0"],':cheese_wedge:':["1f9c0"],':hotdog:':["1f32d"],':hot_dog:':["1f32d"],':taco:':["1f32e"],':burrito:':["1f32f"],':popcorn:':["1f37f"],':champagne:':["1f37e"],':bottle_with_popping_cork:':["1f37e"],':bow_and_arrow:':["1f3f9"],':archery:':["1f3f9"],':amphora:':["1f3fa"],':place_of_worship:':["1f6d0"],':worship_symbol:':["1f6d0"],':kaaba:':["1f54b"],':mosque:':["1f54c"],':synagogue:':["1f54d"],':menorah:':["1f54e"],':prayer_beads:':["1f4ff"],':cricket:':["1f3cf"],':cricket_bat_ball:':["1f3cf"],':volleyball:':["1f3d0"],':field_hockey:':["1f3d1"],':hockey:':["1f3d2"],':ping_pong:':["1f3d3"],':table_tennis:':["1f3d3"],':badminton:':["1f3f8"],':fast_forward:':["23e9"],':rewind:':["23ea"],':arrow_double_up:':["23eb"],':arrow_double_down:':["23ec"],':alarm_clock:':["23f0"],':hourglass_flowing_sand:':["23f3"],':ophiuchus:':["26ce"],':white_check_mark:':["2705"],':fist:':["270a"],':raised_hand:':["270b"],':sparkles:':["2728"],':x:':["274c"],':negative_squared_cross_mark:':["274e"],':question:':["2753"],':grey_question:':["2754"],':grey_exclamation:':["2755"],':heavy_plus_sign:':["2795"],':heavy_minus_sign:':["2796"],':heavy_division_sign:':["2797"],':curly_loop:':["27b0"],':wavy_dash:':["3030"],':loop:':["27bf"],':cross:':["271d"],':latin_cross:':["271d"],':keyboard:':["2328"],':writing_hand:':["270d"],':track_next:':["23ed"],':next_track:':["23ed"],':track_previous:':["23ee"],':previous_track:':["23ee"],':play_pause:':["23ef"],':stopwatch:':["23f1"],':timer:':["23f2"],':timer_clock:':["23f2"],':pause_button:':["23f8"],':double_vertical_bar:':["23f8"],':stop_button:':["23f9"],':record_button:':["23fa"],':umbrella2:':["2602"],':snowman2:':["2603"],':comet:':["2604"],':shamrock:':["2618"],':skull_crossbones:':["2620"],':skull_and_crossbones:':["2620"],':radioactive:':["2622"],':radioactive_sign:':["2622"],':biohazard:':["2623"],':biohazard_sign:':["2623"],':orthodox_cross:':["2626"],':star_and_crescent:':["262a"],':peace:':["262e"],':peace_symbol:':["262e"],':yin_yang:':["262f"],':wheel_of_dharma:':["2638"],':frowning2:':["2639"],':white_frowning_face:':["2639"],':hammer_pick:':["2692"],':hammer_and_pick:':["2692"],':crossed_swords:':["2694"],':scales:':["2696"],':alembic:':["2697"],':gear:':["2699"],':atom:':["269b"],':atom_symbol:':["269b"],':fleur-de-lis:':["269c"],':coffin:':["26b0"],':urn:':["26b1"],':funeral_urn:':["26b1"],':thunder_cloud_rain:':["26c8"],':thunder_cloud_and_rain:':["26c8"],':pick:':["26cf"],':helmet_with_cross:':["26d1"],':helmet_with_white_cross:':["26d1"],':chains:':["26d3"],':shinto_shrine:':["26e9"],':mountain:':["26f0"],':beach_umbrella:':["26f1"],':umbrella_on_ground:':["26f1"],':ferry:':["26f4"],':skier:':["26f7"],':ice_skate:':["26f8"],':basketball_player:':["26f9"],':person_with_ball:':["26f9"],':star_of_david:':["2721"],':heart_exclamation:':["2763"],':heavy_heart_exclamation_mark_ornament:':["2763"]};
+ ns.emojioneList = {":kiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"fname":"1f469-2764-1f48b-1f469","uc":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","isCanonical": true},":couplekiss_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],"fname":"1f469-2764-1f48b-1f469","uc":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","isCanonical": false},":kiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"fname":"1f468-2764-1f48b-1f468","uc":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","isCanonical": true},":couplekiss_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],"fname":"1f468-2764-1f48b-1f468","uc":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","isCanonical": false},":family_mmbb:":{"unicode":["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],"fname":"1f468-1f468-1f466-1f466","uc":"1f468-200d-1f468-200d-1f466-200d-1f466","isCanonical": true},":family_mmgb:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],"fname":"1f468-1f468-1f467-1f466","uc":"1f468-200d-1f468-200d-1f467-200d-1f466","isCanonical": true},":family_mmgg:":{"unicode":["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],"fname":"1f468-1f468-1f467-1f467","uc":"1f468-200d-1f468-200d-1f467-200d-1f467","isCanonical": true},":family_mwbb:":{"unicode":["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],"fname":"1f468-1f469-1f466-1f466","uc":"1f468-200d-1f469-200d-1f466-200d-1f466","isCanonical": true},":family_mwgb:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],"fname":"1f468-1f469-1f467-1f466","uc":"1f468-200d-1f469-200d-1f467-200d-1f466","isCanonical": true},":family_mwgg:":{"unicode":["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],"fname":"1f468-1f469-1f467-1f467","uc":"1f468-200d-1f469-200d-1f467-200d-1f467","isCanonical": true},":family_wwbb:":{"unicode":["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],"fname":"1f469-1f469-1f466-1f466","uc":"1f469-200d-1f469-200d-1f466-200d-1f466","isCanonical": true},":family_wwgb:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],"fname":"1f469-1f469-1f467-1f466","uc":"1f469-200d-1f469-200d-1f467-200d-1f466","isCanonical": true},":family_wwgg:":{"unicode":["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],"fname":"1f469-1f469-1f467-1f467","uc":"1f469-200d-1f469-200d-1f467-200d-1f467","isCanonical": true},":couple_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"fname":"1f469-2764-1f469","uc":"1f469-200d-2764-fe0f-200d-1f469","isCanonical": true},":couple_with_heart_ww:":{"unicode":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],"fname":"1f469-2764-1f469","uc":"1f469-200d-2764-fe0f-200d-1f469","isCanonical": false},":couple_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"fname":"1f468-2764-1f468","uc":"1f468-200d-2764-fe0f-200d-1f468","isCanonical": true},":couple_with_heart_mm:":{"unicode":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],"fname":"1f468-2764-1f468","uc":"1f468-200d-2764-fe0f-200d-1f468","isCanonical": false},":family_mmb:":{"unicode":["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],"fname":"1f468-1f468-1f466","uc":"1f468-200d-1f468-200d-1f466","isCanonical": true},":family_mmg:":{"unicode":["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],"fname":"1f468-1f468-1f467","uc":"1f468-200d-1f468-200d-1f467","isCanonical": true},":family_mwg:":{"unicode":["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],"fname":"1f468-1f469-1f467","uc":"1f468-200d-1f469-200d-1f467","isCanonical": true},":family_wwb:":{"unicode":["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],"fname":"1f469-1f469-1f466","uc":"1f469-200d-1f469-200d-1f466","isCanonical": true},":family_wwg:":{"unicode":["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],"fname":"1f469-1f469-1f467","uc":"1f469-200d-1f469-200d-1f467","isCanonical": true},":rainbow_flag:":{"unicode":["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],"fname":"1f3f3-1f308","uc":"1f3f3-fe0f-200d-1f308","isCanonical": true},":gay_pride_flag:":{"unicode":["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],"fname":"1f3f3-1f308","uc":"1f3f3-fe0f-200d-1f308","isCanonical": false},":eye_in_speech_bubble:":{"unicode":["1f441-200d-1f5e8","1f441-1f5e8"],"fname":"1f441-1f5e8","uc":"1f441-200d-1f5e8","isCanonical": true},":hash:":{"unicode":["0023-fe0f-20e3","0023-20e3"],"fname":"0023-20e3","uc":"0023-20e3","isCanonical": true},":zero:":{"unicode":["0030-fe0f-20e3","0030-20e3"],"fname":"0030-20e3","uc":"0030-20e3","isCanonical": true},":one:":{"unicode":["0031-fe0f-20e3","0031-20e3"],"fname":"0031-20e3","uc":"0031-20e3","isCanonical": true},":two:":{"unicode":["0032-fe0f-20e3","0032-20e3"],"fname":"0032-20e3","uc":"0032-20e3","isCanonical": true},":three:":{"unicode":["0033-fe0f-20e3","0033-20e3"],"fname":"0033-20e3","uc":"0033-20e3","isCanonical": true},":four:":{"unicode":["0034-fe0f-20e3","0034-20e3"],"fname":"0034-20e3","uc":"0034-20e3","isCanonical": true},":five:":{"unicode":["0035-fe0f-20e3","0035-20e3"],"fname":"0035-20e3","uc":"0035-20e3","isCanonical": true},":six:":{"unicode":["0036-fe0f-20e3","0036-20e3"],"fname":"0036-20e3","uc":"0036-20e3","isCanonical": true},":seven:":{"unicode":["0037-fe0f-20e3","0037-20e3"],"fname":"0037-20e3","uc":"0037-20e3","isCanonical": true},":eight:":{"unicode":["0038-fe0f-20e3","0038-20e3"],"fname":"0038-20e3","uc":"0038-20e3","isCanonical": true},":nine:":{"unicode":["0039-fe0f-20e3","0039-20e3"],"fname":"0039-20e3","uc":"0039-20e3","isCanonical": true},":asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"fname":"002a-20e3","uc":"002a-20e3","isCanonical": true},":keycap_asterisk:":{"unicode":["002a-fe0f-20e3","002a-20e3"],"fname":"002a-20e3","uc":"002a-20e3","isCanonical": false},":handball_tone5:":{"unicode":["1f93e-1f3ff"],"fname":"1f93e-1f3ff","uc":"1f93e-1f3ff","isCanonical": true},":handball_tone4:":{"unicode":["1f93e-1f3fe"],"fname":"1f93e-1f3fe","uc":"1f93e-1f3fe","isCanonical": true},":handball_tone3:":{"unicode":["1f93e-1f3fd"],"fname":"1f93e-1f3fd","uc":"1f93e-1f3fd","isCanonical": true},":handball_tone2:":{"unicode":["1f93e-1f3fc"],"fname":"1f93e-1f3fc","uc":"1f93e-1f3fc","isCanonical": true},":handball_tone1:":{"unicode":["1f93e-1f3fb"],"fname":"1f93e-1f3fb","uc":"1f93e-1f3fb","isCanonical": true},":water_polo_tone5:":{"unicode":["1f93d-1f3ff"],"fname":"1f93d-1f3ff","uc":"1f93d-1f3ff","isCanonical": true},":water_polo_tone4:":{"unicode":["1f93d-1f3fe"],"fname":"1f93d-1f3fe","uc":"1f93d-1f3fe","isCanonical": true},":water_polo_tone3:":{"unicode":["1f93d-1f3fd"],"fname":"1f93d-1f3fd","uc":"1f93d-1f3fd","isCanonical": true},":water_polo_tone2:":{"unicode":["1f93d-1f3fc"],"fname":"1f93d-1f3fc","uc":"1f93d-1f3fc","isCanonical": true},":water_polo_tone1:":{"unicode":["1f93d-1f3fb"],"fname":"1f93d-1f3fb","uc":"1f93d-1f3fb","isCanonical": true},":wrestlers_tone5:":{"unicode":["1f93c-1f3ff"],"fname":"1f93c-1f3ff","uc":"1f93c-1f3ff","isCanonical": true},":wrestling_tone5:":{"unicode":["1f93c-1f3ff"],"fname":"1f93c-1f3ff","uc":"1f93c-1f3ff","isCanonical": false},":wrestlers_tone4:":{"unicode":["1f93c-1f3fe"],"fname":"1f93c-1f3fe","uc":"1f93c-1f3fe","isCanonical": true},":wrestling_tone4:":{"unicode":["1f93c-1f3fe"],"fname":"1f93c-1f3fe","uc":"1f93c-1f3fe","isCanonical": false},":wrestlers_tone3:":{"unicode":["1f93c-1f3fd"],"fname":"1f93c-1f3fd","uc":"1f93c-1f3fd","isCanonical": true},":wrestling_tone3:":{"unicode":["1f93c-1f3fd"],"fname":"1f93c-1f3fd","uc":"1f93c-1f3fd","isCanonical": false},":wrestlers_tone2:":{"unicode":["1f93c-1f3fc"],"fname":"1f93c-1f3fc","uc":"1f93c-1f3fc","isCanonical": true},":wrestling_tone2:":{"unicode":["1f93c-1f3fc"],"fname":"1f93c-1f3fc","uc":"1f93c-1f3fc","isCanonical": false},":wrestlers_tone1:":{"unicode":["1f93c-1f3fb"],"fname":"1f93c-1f3fb","uc":"1f93c-1f3fb","isCanonical": true},":wrestling_tone1:":{"unicode":["1f93c-1f3fb"],"fname":"1f93c-1f3fb","uc":"1f93c-1f3fb","isCanonical": false},":juggling_tone5:":{"unicode":["1f939-1f3ff"],"fname":"1f939-1f3ff","uc":"1f939-1f3ff","isCanonical": true},":juggler_tone5:":{"unicode":["1f939-1f3ff"],"fname":"1f939-1f3ff","uc":"1f939-1f3ff","isCanonical": false},":juggling_tone4:":{"unicode":["1f939-1f3fe"],"fname":"1f939-1f3fe","uc":"1f939-1f3fe","isCanonical": true},":juggler_tone4:":{"unicode":["1f939-1f3fe"],"fname":"1f939-1f3fe","uc":"1f939-1f3fe","isCanonical": false},":juggling_tone3:":{"unicode":["1f939-1f3fd"],"fname":"1f939-1f3fd","uc":"1f939-1f3fd","isCanonical": true},":juggler_tone3:":{"unicode":["1f939-1f3fd"],"fname":"1f939-1f3fd","uc":"1f939-1f3fd","isCanonical": false},":juggling_tone2:":{"unicode":["1f939-1f3fc"],"fname":"1f939-1f3fc","uc":"1f939-1f3fc","isCanonical": true},":juggler_tone2:":{"unicode":["1f939-1f3fc"],"fname":"1f939-1f3fc","uc":"1f939-1f3fc","isCanonical": false},":juggling_tone1:":{"unicode":["1f939-1f3fb"],"fname":"1f939-1f3fb","uc":"1f939-1f3fb","isCanonical": true},":juggler_tone1:":{"unicode":["1f939-1f3fb"],"fname":"1f939-1f3fb","uc":"1f939-1f3fb","isCanonical": false},":cartwheel_tone5:":{"unicode":["1f938-1f3ff"],"fname":"1f938-1f3ff","uc":"1f938-1f3ff","isCanonical": true},":person_doing_cartwheel_tone5:":{"unicode":["1f938-1f3ff"],"fname":"1f938-1f3ff","uc":"1f938-1f3ff","isCanonical": false},":cartwheel_tone4:":{"unicode":["1f938-1f3fe"],"fname":"1f938-1f3fe","uc":"1f938-1f3fe","isCanonical": true},":person_doing_cartwheel_tone4:":{"unicode":["1f938-1f3fe"],"fname":"1f938-1f3fe","uc":"1f938-1f3fe","isCanonical": false},":cartwheel_tone3:":{"unicode":["1f938-1f3fd"],"fname":"1f938-1f3fd","uc":"1f938-1f3fd","isCanonical": true},":person_doing_cartwheel_tone3:":{"unicode":["1f938-1f3fd"],"fname":"1f938-1f3fd","uc":"1f938-1f3fd","isCanonical": false},":cartwheel_tone2:":{"unicode":["1f938-1f3fc"],"fname":"1f938-1f3fc","uc":"1f938-1f3fc","isCanonical": true},":person_doing_cartwheel_tone2:":{"unicode":["1f938-1f3fc"],"fname":"1f938-1f3fc","uc":"1f938-1f3fc","isCanonical": false},":cartwheel_tone1:":{"unicode":["1f938-1f3fb"],"fname":"1f938-1f3fb","uc":"1f938-1f3fb","isCanonical": true},":person_doing_cartwheel_tone1:":{"unicode":["1f938-1f3fb"],"fname":"1f938-1f3fb","uc":"1f938-1f3fb","isCanonical": false},":shrug_tone5:":{"unicode":["1f937-1f3ff"],"fname":"1f937-1f3ff","uc":"1f937-1f3ff","isCanonical": true},":shrug_tone4:":{"unicode":["1f937-1f3fe"],"fname":"1f937-1f3fe","uc":"1f937-1f3fe","isCanonical": true},":shrug_tone3:":{"unicode":["1f937-1f3fd"],"fname":"1f937-1f3fd","uc":"1f937-1f3fd","isCanonical": true},":shrug_tone2:":{"unicode":["1f937-1f3fc"],"fname":"1f937-1f3fc","uc":"1f937-1f3fc","isCanonical": true},":shrug_tone1:":{"unicode":["1f937-1f3fb"],"fname":"1f937-1f3fb","uc":"1f937-1f3fb","isCanonical": true},":mrs_claus_tone5:":{"unicode":["1f936-1f3ff"],"fname":"1f936-1f3ff","uc":"1f936-1f3ff","isCanonical": true},":mother_christmas_tone5:":{"unicode":["1f936-1f3ff"],"fname":"1f936-1f3ff","uc":"1f936-1f3ff","isCanonical": false},":mrs_claus_tone4:":{"unicode":["1f936-1f3fe"],"fname":"1f936-1f3fe","uc":"1f936-1f3fe","isCanonical": true},":mother_christmas_tone4:":{"unicode":["1f936-1f3fe"],"fname":"1f936-1f3fe","uc":"1f936-1f3fe","isCanonical": false},":mrs_claus_tone3:":{"unicode":["1f936-1f3fd"],"fname":"1f936-1f3fd","uc":"1f936-1f3fd","isCanonical": true},":mother_christmas_tone3:":{"unicode":["1f936-1f3fd"],"fname":"1f936-1f3fd","uc":"1f936-1f3fd","isCanonical": false},":mrs_claus_tone2:":{"unicode":["1f936-1f3fc"],"fname":"1f936-1f3fc","uc":"1f936-1f3fc","isCanonical": true},":mother_christmas_tone2:":{"unicode":["1f936-1f3fc"],"fname":"1f936-1f3fc","uc":"1f936-1f3fc","isCanonical": false},":mrs_claus_tone1:":{"unicode":["1f936-1f3fb"],"fname":"1f936-1f3fb","uc":"1f936-1f3fb","isCanonical": true},":mother_christmas_tone1:":{"unicode":["1f936-1f3fb"],"fname":"1f936-1f3fb","uc":"1f936-1f3fb","isCanonical": false},":man_in_tuxedo_tone5:":{"unicode":["1f935-1f3ff"],"fname":"1f935-1f3ff","uc":"1f935-1f3ff","isCanonical": true},":tuxedo_tone5:":{"unicode":["1f935-1f3ff"],"fname":"1f935-1f3ff","uc":"1f935-1f3ff","isCanonical": false},":man_in_tuxedo_tone4:":{"unicode":["1f935-1f3fe"],"fname":"1f935-1f3fe","uc":"1f935-1f3fe","isCanonical": true},":tuxedo_tone4:":{"unicode":["1f935-1f3fe"],"fname":"1f935-1f3fe","uc":"1f935-1f3fe","isCanonical": false},":man_in_tuxedo_tone3:":{"unicode":["1f935-1f3fd"],"fname":"1f935-1f3fd","uc":"1f935-1f3fd","isCanonical": true},":tuxedo_tone3:":{"unicode":["1f935-1f3fd"],"fname":"1f935-1f3fd","uc":"1f935-1f3fd","isCanonical": false},":man_in_tuxedo_tone2:":{"unicode":["1f935-1f3fc"],"fname":"1f935-1f3fc","uc":"1f935-1f3fc","isCanonical": true},":tuxedo_tone2:":{"unicode":["1f935-1f3fc"],"fname":"1f935-1f3fc","uc":"1f935-1f3fc","isCanonical": false},":man_in_tuxedo_tone1:":{"unicode":["1f935-1f3fb"],"fname":"1f935-1f3fb","uc":"1f935-1f3fb","isCanonical": true},":tuxedo_tone1:":{"unicode":["1f935-1f3fb"],"fname":"1f935-1f3fb","uc":"1f935-1f3fb","isCanonical": false},":prince_tone5:":{"unicode":["1f934-1f3ff"],"fname":"1f934-1f3ff","uc":"1f934-1f3ff","isCanonical": true},":prince_tone4:":{"unicode":["1f934-1f3fe"],"fname":"1f934-1f3fe","uc":"1f934-1f3fe","isCanonical": true},":prince_tone3:":{"unicode":["1f934-1f3fd"],"fname":"1f934-1f3fd","uc":"1f934-1f3fd","isCanonical": true},":prince_tone2:":{"unicode":["1f934-1f3fc"],"fname":"1f934-1f3fc","uc":"1f934-1f3fc","isCanonical": true},":prince_tone1:":{"unicode":["1f934-1f3fb"],"fname":"1f934-1f3fb","uc":"1f934-1f3fb","isCanonical": true},":selfie_tone5:":{"unicode":["1f933-1f3ff"],"fname":"1f933-1f3ff","uc":"1f933-1f3ff","isCanonical": true},":selfie_tone4:":{"unicode":["1f933-1f3fe"],"fname":"1f933-1f3fe","uc":"1f933-1f3fe","isCanonical": true},":selfie_tone3:":{"unicode":["1f933-1f3fd"],"fname":"1f933-1f3fd","uc":"1f933-1f3fd","isCanonical": true},":selfie_tone2:":{"unicode":["1f933-1f3fc"],"fname":"1f933-1f3fc","uc":"1f933-1f3fc","isCanonical": true},":selfie_tone1:":{"unicode":["1f933-1f3fb"],"fname":"1f933-1f3fb","uc":"1f933-1f3fb","isCanonical": true},":pregnant_woman_tone5:":{"unicode":["1f930-1f3ff"],"fname":"1f930-1f3ff","uc":"1f930-1f3ff","isCanonical": true},":expecting_woman_tone5:":{"unicode":["1f930-1f3ff"],"fname":"1f930-1f3ff","uc":"1f930-1f3ff","isCanonical": false},":pregnant_woman_tone4:":{"unicode":["1f930-1f3fe"],"fname":"1f930-1f3fe","uc":"1f930-1f3fe","isCanonical": true},":expecting_woman_tone4:":{"unicode":["1f930-1f3fe"],"fname":"1f930-1f3fe","uc":"1f930-1f3fe","isCanonical": false},":pregnant_woman_tone3:":{"unicode":["1f930-1f3fd"],"fname":"1f930-1f3fd","uc":"1f930-1f3fd","isCanonical": true},":expecting_woman_tone3:":{"unicode":["1f930-1f3fd"],"fname":"1f930-1f3fd","uc":"1f930-1f3fd","isCanonical": false},":pregnant_woman_tone2:":{"unicode":["1f930-1f3fc"],"fname":"1f930-1f3fc","uc":"1f930-1f3fc","isCanonical": true},":expecting_woman_tone2:":{"unicode":["1f930-1f3fc"],"fname":"1f930-1f3fc","uc":"1f930-1f3fc","isCanonical": false},":pregnant_woman_tone1:":{"unicode":["1f930-1f3fb"],"fname":"1f930-1f3fb","uc":"1f930-1f3fb","isCanonical": true},":expecting_woman_tone1:":{"unicode":["1f930-1f3fb"],"fname":"1f930-1f3fb","uc":"1f930-1f3fb","isCanonical": false},":face_palm_tone5:":{"unicode":["1f926-1f3ff"],"fname":"1f926-1f3ff","uc":"1f926-1f3ff","isCanonical": true},":facepalm_tone5:":{"unicode":["1f926-1f3ff"],"fname":"1f926-1f3ff","uc":"1f926-1f3ff","isCanonical": false},":face_palm_tone4:":{"unicode":["1f926-1f3fe"],"fname":"1f926-1f3fe","uc":"1f926-1f3fe","isCanonical": true},":facepalm_tone4:":{"unicode":["1f926-1f3fe"],"fname":"1f926-1f3fe","uc":"1f926-1f3fe","isCanonical": false},":face_palm_tone3:":{"unicode":["1f926-1f3fd"],"fname":"1f926-1f3fd","uc":"1f926-1f3fd","isCanonical": true},":facepalm_tone3:":{"unicode":["1f926-1f3fd"],"fname":"1f926-1f3fd","uc":"1f926-1f3fd","isCanonical": false},":face_palm_tone2:":{"unicode":["1f926-1f3fc"],"fname":"1f926-1f3fc","uc":"1f926-1f3fc","isCanonical": true},":facepalm_tone2:":{"unicode":["1f926-1f3fc"],"fname":"1f926-1f3fc","uc":"1f926-1f3fc","isCanonical": false},":face_palm_tone1:":{"unicode":["1f926-1f3fb"],"fname":"1f926-1f3fb","uc":"1f926-1f3fb","isCanonical": true},":facepalm_tone1:":{"unicode":["1f926-1f3fb"],"fname":"1f926-1f3fb","uc":"1f926-1f3fb","isCanonical": false},":fingers_crossed_tone5:":{"unicode":["1f91e-1f3ff"],"fname":"1f91e-1f3ff","uc":"1f91e-1f3ff","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone5:":{"unicode":["1f91e-1f3ff"],"fname":"1f91e-1f3ff","uc":"1f91e-1f3ff","isCanonical": false},":fingers_crossed_tone4:":{"unicode":["1f91e-1f3fe"],"fname":"1f91e-1f3fe","uc":"1f91e-1f3fe","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone4:":{"unicode":["1f91e-1f3fe"],"fname":"1f91e-1f3fe","uc":"1f91e-1f3fe","isCanonical": false},":fingers_crossed_tone3:":{"unicode":["1f91e-1f3fd"],"fname":"1f91e-1f3fd","uc":"1f91e-1f3fd","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone3:":{"unicode":["1f91e-1f3fd"],"fname":"1f91e-1f3fd","uc":"1f91e-1f3fd","isCanonical": false},":fingers_crossed_tone2:":{"unicode":["1f91e-1f3fc"],"fname":"1f91e-1f3fc","uc":"1f91e-1f3fc","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone2:":{"unicode":["1f91e-1f3fc"],"fname":"1f91e-1f3fc","uc":"1f91e-1f3fc","isCanonical": false},":fingers_crossed_tone1:":{"unicode":["1f91e-1f3fb"],"fname":"1f91e-1f3fb","uc":"1f91e-1f3fb","isCanonical": true},":hand_with_index_and_middle_fingers_crossed_tone1:":{"unicode":["1f91e-1f3fb"],"fname":"1f91e-1f3fb","uc":"1f91e-1f3fb","isCanonical": false},":handshake_tone5:":{"unicode":["1f91d-1f3ff"],"fname":"1f91d-1f3ff","uc":"1f91d-1f3ff","isCanonical": true},":shaking_hands_tone5:":{"unicode":["1f91d-1f3ff"],"fname":"1f91d-1f3ff","uc":"1f91d-1f3ff","isCanonical": false},":handshake_tone4:":{"unicode":["1f91d-1f3fe"],"fname":"1f91d-1f3fe","uc":"1f91d-1f3fe","isCanonical": true},":shaking_hands_tone4:":{"unicode":["1f91d-1f3fe"],"fname":"1f91d-1f3fe","uc":"1f91d-1f3fe","isCanonical": false},":handshake_tone3:":{"unicode":["1f91d-1f3fd"],"fname":"1f91d-1f3fd","uc":"1f91d-1f3fd","isCanonical": true},":shaking_hands_tone3:":{"unicode":["1f91d-1f3fd"],"fname":"1f91d-1f3fd","uc":"1f91d-1f3fd","isCanonical": false},":handshake_tone2:":{"unicode":["1f91d-1f3fc"],"fname":"1f91d-1f3fc","uc":"1f91d-1f3fc","isCanonical": true},":shaking_hands_tone2:":{"unicode":["1f91d-1f3fc"],"fname":"1f91d-1f3fc","uc":"1f91d-1f3fc","isCanonical": false},":handshake_tone1:":{"unicode":["1f91d-1f3fb"],"fname":"1f91d-1f3fb","uc":"1f91d-1f3fb","isCanonical": true},":shaking_hands_tone1:":{"unicode":["1f91d-1f3fb"],"fname":"1f91d-1f3fb","uc":"1f91d-1f3fb","isCanonical": false},":right_facing_fist_tone5:":{"unicode":["1f91c-1f3ff"],"fname":"1f91c-1f3ff","uc":"1f91c-1f3ff","isCanonical": true},":right_fist_tone5:":{"unicode":["1f91c-1f3ff"],"fname":"1f91c-1f3ff","uc":"1f91c-1f3ff","isCanonical": false},":right_facing_fist_tone4:":{"unicode":["1f91c-1f3fe"],"fname":"1f91c-1f3fe","uc":"1f91c-1f3fe","isCanonical": true},":right_fist_tone4:":{"unicode":["1f91c-1f3fe"],"fname":"1f91c-1f3fe","uc":"1f91c-1f3fe","isCanonical": false},":right_facing_fist_tone3:":{"unicode":["1f91c-1f3fd"],"fname":"1f91c-1f3fd","uc":"1f91c-1f3fd","isCanonical": true},":right_fist_tone3:":{"unicode":["1f91c-1f3fd"],"fname":"1f91c-1f3fd","uc":"1f91c-1f3fd","isCanonical": false},":right_facing_fist_tone2:":{"unicode":["1f91c-1f3fc"],"fname":"1f91c-1f3fc","uc":"1f91c-1f3fc","isCanonical": true},":right_fist_tone2:":{"unicode":["1f91c-1f3fc"],"fname":"1f91c-1f3fc","uc":"1f91c-1f3fc","isCanonical": false},":right_facing_fist_tone1:":{"unicode":["1f91c-1f3fb"],"fname":"1f91c-1f3fb","uc":"1f91c-1f3fb","isCanonical": true},":right_fist_tone1:":{"unicode":["1f91c-1f3fb"],"fname":"1f91c-1f3fb","uc":"1f91c-1f3fb","isCanonical": false},":left_facing_fist_tone5:":{"unicode":["1f91b-1f3ff"],"fname":"1f91b-1f3ff","uc":"1f91b-1f3ff","isCanonical": true},":left_fist_tone5:":{"unicode":["1f91b-1f3ff"],"fname":"1f91b-1f3ff","uc":"1f91b-1f3ff","isCanonical": false},":left_facing_fist_tone4:":{"unicode":["1f91b-1f3fe"],"fname":"1f91b-1f3fe","uc":"1f91b-1f3fe","isCanonical": true},":left_fist_tone4:":{"unicode":["1f91b-1f3fe"],"fname":"1f91b-1f3fe","uc":"1f91b-1f3fe","isCanonical": false},":left_facing_fist_tone3:":{"unicode":["1f91b-1f3fd"],"fname":"1f91b-1f3fd","uc":"1f91b-1f3fd","isCanonical": true},":left_fist_tone3:":{"unicode":["1f91b-1f3fd"],"fname":"1f91b-1f3fd","uc":"1f91b-1f3fd","isCanonical": false},":left_facing_fist_tone2:":{"unicode":["1f91b-1f3fc"],"fname":"1f91b-1f3fc","uc":"1f91b-1f3fc","isCanonical": true},":left_fist_tone2:":{"unicode":["1f91b-1f3fc"],"fname":"1f91b-1f3fc","uc":"1f91b-1f3fc","isCanonical": false},":left_facing_fist_tone1:":{"unicode":["1f91b-1f3fb"],"fname":"1f91b-1f3fb","uc":"1f91b-1f3fb","isCanonical": true},":left_fist_tone1:":{"unicode":["1f91b-1f3fb"],"fname":"1f91b-1f3fb","uc":"1f91b-1f3fb","isCanonical": false},":raised_back_of_hand_tone5:":{"unicode":["1f91a-1f3ff"],"fname":"1f91a-1f3ff","uc":"1f91a-1f3ff","isCanonical": true},":back_of_hand_tone5:":{"unicode":["1f91a-1f3ff"],"fname":"1f91a-1f3ff","uc":"1f91a-1f3ff","isCanonical": false},":raised_back_of_hand_tone4:":{"unicode":["1f91a-1f3fe"],"fname":"1f91a-1f3fe","uc":"1f91a-1f3fe","isCanonical": true},":back_of_hand_tone4:":{"unicode":["1f91a-1f3fe"],"fname":"1f91a-1f3fe","uc":"1f91a-1f3fe","isCanonical": false},":raised_back_of_hand_tone3:":{"unicode":["1f91a-1f3fd"],"fname":"1f91a-1f3fd","uc":"1f91a-1f3fd","isCanonical": true},":back_of_hand_tone3:":{"unicode":["1f91a-1f3fd"],"fname":"1f91a-1f3fd","uc":"1f91a-1f3fd","isCanonical": false},":raised_back_of_hand_tone2:":{"unicode":["1f91a-1f3fc"],"fname":"1f91a-1f3fc","uc":"1f91a-1f3fc","isCanonical": true},":back_of_hand_tone2:":{"unicode":["1f91a-1f3fc"],"fname":"1f91a-1f3fc","uc":"1f91a-1f3fc","isCanonical": false},":raised_back_of_hand_tone1:":{"unicode":["1f91a-1f3fb"],"fname":"1f91a-1f3fb","uc":"1f91a-1f3fb","isCanonical": true},":back_of_hand_tone1:":{"unicode":["1f91a-1f3fb"],"fname":"1f91a-1f3fb","uc":"1f91a-1f3fb","isCanonical": false},":call_me_tone5:":{"unicode":["1f919-1f3ff"],"fname":"1f919-1f3ff","uc":"1f919-1f3ff","isCanonical": true},":call_me_hand_tone5:":{"unicode":["1f919-1f3ff"],"fname":"1f919-1f3ff","uc":"1f919-1f3ff","isCanonical": false},":call_me_tone4:":{"unicode":["1f919-1f3fe"],"fname":"1f919-1f3fe","uc":"1f919-1f3fe","isCanonical": true},":call_me_hand_tone4:":{"unicode":["1f919-1f3fe"],"fname":"1f919-1f3fe","uc":"1f919-1f3fe","isCanonical": false},":call_me_tone3:":{"unicode":["1f919-1f3fd"],"fname":"1f919-1f3fd","uc":"1f919-1f3fd","isCanonical": true},":call_me_hand_tone3:":{"unicode":["1f919-1f3fd"],"fname":"1f919-1f3fd","uc":"1f919-1f3fd","isCanonical": false},":call_me_tone2:":{"unicode":["1f919-1f3fc"],"fname":"1f919-1f3fc","uc":"1f919-1f3fc","isCanonical": true},":call_me_hand_tone2:":{"unicode":["1f919-1f3fc"],"fname":"1f919-1f3fc","uc":"1f919-1f3fc","isCanonical": false},":call_me_tone1:":{"unicode":["1f919-1f3fb"],"fname":"1f919-1f3fb","uc":"1f919-1f3fb","isCanonical": true},":call_me_hand_tone1:":{"unicode":["1f919-1f3fb"],"fname":"1f919-1f3fb","uc":"1f919-1f3fb","isCanonical": false},":metal_tone5:":{"unicode":["1f918-1f3ff"],"fname":"1f918-1f3ff","uc":"1f918-1f3ff","isCanonical": true},":sign_of_the_horns_tone5:":{"unicode":["1f918-1f3ff"],"fname":"1f918-1f3ff","uc":"1f918-1f3ff","isCanonical": false},":metal_tone4:":{"unicode":["1f918-1f3fe"],"fname":"1f918-1f3fe","uc":"1f918-1f3fe","isCanonical": true},":sign_of_the_horns_tone4:":{"unicode":["1f918-1f3fe"],"fname":"1f918-1f3fe","uc":"1f918-1f3fe","isCanonical": false},":metal_tone3:":{"unicode":["1f918-1f3fd"],"fname":"1f918-1f3fd","uc":"1f918-1f3fd","isCanonical": true},":sign_of_the_horns_tone3:":{"unicode":["1f918-1f3fd"],"fname":"1f918-1f3fd","uc":"1f918-1f3fd","isCanonical": false},":metal_tone2:":{"unicode":["1f918-1f3fc"],"fname":"1f918-1f3fc","uc":"1f918-1f3fc","isCanonical": true},":sign_of_the_horns_tone2:":{"unicode":["1f918-1f3fc"],"fname":"1f918-1f3fc","uc":"1f918-1f3fc","isCanonical": false},":metal_tone1:":{"unicode":["1f918-1f3fb"],"fname":"1f918-1f3fb","uc":"1f918-1f3fb","isCanonical": true},":sign_of_the_horns_tone1:":{"unicode":["1f918-1f3fb"],"fname":"1f918-1f3fb","uc":"1f918-1f3fb","isCanonical": false},":bath_tone5:":{"unicode":["1f6c0-1f3ff"],"fname":"1f6c0-1f3ff","uc":"1f6c0-1f3ff","isCanonical": true},":bath_tone4:":{"unicode":["1f6c0-1f3fe"],"fname":"1f6c0-1f3fe","uc":"1f6c0-1f3fe","isCanonical": true},":bath_tone3:":{"unicode":["1f6c0-1f3fd"],"fname":"1f6c0-1f3fd","uc":"1f6c0-1f3fd","isCanonical": true},":bath_tone2:":{"unicode":["1f6c0-1f3fc"],"fname":"1f6c0-1f3fc","uc":"1f6c0-1f3fc","isCanonical": true},":bath_tone1:":{"unicode":["1f6c0-1f3fb"],"fname":"1f6c0-1f3fb","uc":"1f6c0-1f3fb","isCanonical": true},":walking_tone5:":{"unicode":["1f6b6-1f3ff"],"fname":"1f6b6-1f3ff","uc":"1f6b6-1f3ff","isCanonical": true},":walking_tone4:":{"unicode":["1f6b6-1f3fe"],"fname":"1f6b6-1f3fe","uc":"1f6b6-1f3fe","isCanonical": true},":walking_tone3:":{"unicode":["1f6b6-1f3fd"],"fname":"1f6b6-1f3fd","uc":"1f6b6-1f3fd","isCanonical": true},":walking_tone2:":{"unicode":["1f6b6-1f3fc"],"fname":"1f6b6-1f3fc","uc":"1f6b6-1f3fc","isCanonical": true},":walking_tone1:":{"unicode":["1f6b6-1f3fb"],"fname":"1f6b6-1f3fb","uc":"1f6b6-1f3fb","isCanonical": true},":mountain_bicyclist_tone5:":{"unicode":["1f6b5-1f3ff"],"fname":"1f6b5-1f3ff","uc":"1f6b5-1f3ff","isCanonical": true},":mountain_bicyclist_tone4:":{"unicode":["1f6b5-1f3fe"],"fname":"1f6b5-1f3fe","uc":"1f6b5-1f3fe","isCanonical": true},":mountain_bicyclist_tone3:":{"unicode":["1f6b5-1f3fd"],"fname":"1f6b5-1f3fd","uc":"1f6b5-1f3fd","isCanonical": true},":mountain_bicyclist_tone2:":{"unicode":["1f6b5-1f3fc"],"fname":"1f6b5-1f3fc","uc":"1f6b5-1f3fc","isCanonical": true},":mountain_bicyclist_tone1:":{"unicode":["1f6b5-1f3fb"],"fname":"1f6b5-1f3fb","uc":"1f6b5-1f3fb","isCanonical": true},":bicyclist_tone5:":{"unicode":["1f6b4-1f3ff"],"fname":"1f6b4-1f3ff","uc":"1f6b4-1f3ff","isCanonical": true},":bicyclist_tone4:":{"unicode":["1f6b4-1f3fe"],"fname":"1f6b4-1f3fe","uc":"1f6b4-1f3fe","isCanonical": true},":bicyclist_tone3:":{"unicode":["1f6b4-1f3fd"],"fname":"1f6b4-1f3fd","uc":"1f6b4-1f3fd","isCanonical": true},":bicyclist_tone2:":{"unicode":["1f6b4-1f3fc"],"fname":"1f6b4-1f3fc","uc":"1f6b4-1f3fc","isCanonical": true},":bicyclist_tone1:":{"unicode":["1f6b4-1f3fb"],"fname":"1f6b4-1f3fb","uc":"1f6b4-1f3fb","isCanonical": true},":rowboat_tone5:":{"unicode":["1f6a3-1f3ff"],"fname":"1f6a3-1f3ff","uc":"1f6a3-1f3ff","isCanonical": true},":rowboat_tone4:":{"unicode":["1f6a3-1f3fe"],"fname":"1f6a3-1f3fe","uc":"1f6a3-1f3fe","isCanonical": true},":rowboat_tone3:":{"unicode":["1f6a3-1f3fd"],"fname":"1f6a3-1f3fd","uc":"1f6a3-1f3fd","isCanonical": true},":rowboat_tone2:":{"unicode":["1f6a3-1f3fc"],"fname":"1f6a3-1f3fc","uc":"1f6a3-1f3fc","isCanonical": true},":rowboat_tone1:":{"unicode":["1f6a3-1f3fb"],"fname":"1f6a3-1f3fb","uc":"1f6a3-1f3fb","isCanonical": true},":pray_tone5:":{"unicode":["1f64f-1f3ff"],"fname":"1f64f-1f3ff","uc":"1f64f-1f3ff","isCanonical": true},":pray_tone4:":{"unicode":["1f64f-1f3fe"],"fname":"1f64f-1f3fe","uc":"1f64f-1f3fe","isCanonical": true},":pray_tone3:":{"unicode":["1f64f-1f3fd"],"fname":"1f64f-1f3fd","uc":"1f64f-1f3fd","isCanonical": true},":pray_tone2:":{"unicode":["1f64f-1f3fc"],"fname":"1f64f-1f3fc","uc":"1f64f-1f3fc","isCanonical": true},":pray_tone1:":{"unicode":["1f64f-1f3fb"],"fname":"1f64f-1f3fb","uc":"1f64f-1f3fb","isCanonical": true},":person_with_pouting_face_tone5:":{"unicode":["1f64e-1f3ff"],"fname":"1f64e-1f3ff","uc":"1f64e-1f3ff","isCanonical": true},":person_with_pouting_face_tone4:":{"unicode":["1f64e-1f3fe"],"fname":"1f64e-1f3fe","uc":"1f64e-1f3fe","isCanonical": true},":person_with_pouting_face_tone3:":{"unicode":["1f64e-1f3fd"],"fname":"1f64e-1f3fd","uc":"1f64e-1f3fd","isCanonical": true},":person_with_pouting_face_tone2:":{"unicode":["1f64e-1f3fc"],"fname":"1f64e-1f3fc","uc":"1f64e-1f3fc","isCanonical": true},":person_with_pouting_face_tone1:":{"unicode":["1f64e-1f3fb"],"fname":"1f64e-1f3fb","uc":"1f64e-1f3fb","isCanonical": true},":person_frowning_tone5:":{"unicode":["1f64d-1f3ff"],"fname":"1f64d-1f3ff","uc":"1f64d-1f3ff","isCanonical": true},":person_frowning_tone4:":{"unicode":["1f64d-1f3fe"],"fname":"1f64d-1f3fe","uc":"1f64d-1f3fe","isCanonical": true},":person_frowning_tone3:":{"unicode":["1f64d-1f3fd"],"fname":"1f64d-1f3fd","uc":"1f64d-1f3fd","isCanonical": true},":person_frowning_tone2:":{"unicode":["1f64d-1f3fc"],"fname":"1f64d-1f3fc","uc":"1f64d-1f3fc","isCanonical": true},":person_frowning_tone1:":{"unicode":["1f64d-1f3fb"],"fname":"1f64d-1f3fb","uc":"1f64d-1f3fb","isCanonical": true},":raised_hands_tone5:":{"unicode":["1f64c-1f3ff"],"fname":"1f64c-1f3ff","uc":"1f64c-1f3ff","isCanonical": true},":raised_hands_tone4:":{"unicode":["1f64c-1f3fe"],"fname":"1f64c-1f3fe","uc":"1f64c-1f3fe","isCanonical": true},":raised_hands_tone3:":{"unicode":["1f64c-1f3fd"],"fname":"1f64c-1f3fd","uc":"1f64c-1f3fd","isCanonical": true},":raised_hands_tone2:":{"unicode":["1f64c-1f3fc"],"fname":"1f64c-1f3fc","uc":"1f64c-1f3fc","isCanonical": true},":raised_hands_tone1:":{"unicode":["1f64c-1f3fb"],"fname":"1f64c-1f3fb","uc":"1f64c-1f3fb","isCanonical": true},":raising_hand_tone5:":{"unicode":["1f64b-1f3ff"],"fname":"1f64b-1f3ff","uc":"1f64b-1f3ff","isCanonical": true},":raising_hand_tone4:":{"unicode":["1f64b-1f3fe"],"fname":"1f64b-1f3fe","uc":"1f64b-1f3fe","isCanonical": true},":raising_hand_tone3:":{"unicode":["1f64b-1f3fd"],"fname":"1f64b-1f3fd","uc":"1f64b-1f3fd","isCanonical": true},":raising_hand_tone2:":{"unicode":["1f64b-1f3fc"],"fname":"1f64b-1f3fc","uc":"1f64b-1f3fc","isCanonical": true},":raising_hand_tone1:":{"unicode":["1f64b-1f3fb"],"fname":"1f64b-1f3fb","uc":"1f64b-1f3fb","isCanonical": true},":bow_tone5:":{"unicode":["1f647-1f3ff"],"fname":"1f647-1f3ff","uc":"1f647-1f3ff","isCanonical": true},":bow_tone4:":{"unicode":["1f647-1f3fe"],"fname":"1f647-1f3fe","uc":"1f647-1f3fe","isCanonical": true},":bow_tone3:":{"unicode":["1f647-1f3fd"],"fname":"1f647-1f3fd","uc":"1f647-1f3fd","isCanonical": true},":bow_tone2:":{"unicode":["1f647-1f3fc"],"fname":"1f647-1f3fc","uc":"1f647-1f3fc","isCanonical": true},":bow_tone1:":{"unicode":["1f647-1f3fb"],"fname":"1f647-1f3fb","uc":"1f647-1f3fb","isCanonical": true},":ok_woman_tone5:":{"unicode":["1f646-1f3ff"],"fname":"1f646-1f3ff","uc":"1f646-1f3ff","isCanonical": true},":ok_woman_tone4:":{"unicode":["1f646-1f3fe"],"fname":"1f646-1f3fe","uc":"1f646-1f3fe","isCanonical": true},":ok_woman_tone3:":{"unicode":["1f646-1f3fd"],"fname":"1f646-1f3fd","uc":"1f646-1f3fd","isCanonical": true},":ok_woman_tone2:":{"unicode":["1f646-1f3fc"],"fname":"1f646-1f3fc","uc":"1f646-1f3fc","isCanonical": true},":ok_woman_tone1:":{"unicode":["1f646-1f3fb"],"fname":"1f646-1f3fb","uc":"1f646-1f3fb","isCanonical": true},":no_good_tone5:":{"unicode":["1f645-1f3ff"],"fname":"1f645-1f3ff","uc":"1f645-1f3ff","isCanonical": true},":no_good_tone4:":{"unicode":["1f645-1f3fe"],"fname":"1f645-1f3fe","uc":"1f645-1f3fe","isCanonical": true},":no_good_tone3:":{"unicode":["1f645-1f3fd"],"fname":"1f645-1f3fd","uc":"1f645-1f3fd","isCanonical": true},":no_good_tone2:":{"unicode":["1f645-1f3fc"],"fname":"1f645-1f3fc","uc":"1f645-1f3fc","isCanonical": true},":no_good_tone1:":{"unicode":["1f645-1f3fb"],"fname":"1f645-1f3fb","uc":"1f645-1f3fb","isCanonical": true},":vulcan_tone5:":{"unicode":["1f596-1f3ff"],"fname":"1f596-1f3ff","uc":"1f596-1f3ff","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{"unicode":["1f596-1f3ff"],"fname":"1f596-1f3ff","uc":"1f596-1f3ff","isCanonical": false},":vulcan_tone4:":{"unicode":["1f596-1f3fe"],"fname":"1f596-1f3fe","uc":"1f596-1f3fe","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{"unicode":["1f596-1f3fe"],"fname":"1f596-1f3fe","uc":"1f596-1f3fe","isCanonical": false},":vulcan_tone3:":{"unicode":["1f596-1f3fd"],"fname":"1f596-1f3fd","uc":"1f596-1f3fd","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{"unicode":["1f596-1f3fd"],"fname":"1f596-1f3fd","uc":"1f596-1f3fd","isCanonical": false},":vulcan_tone2:":{"unicode":["1f596-1f3fc"],"fname":"1f596-1f3fc","uc":"1f596-1f3fc","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{"unicode":["1f596-1f3fc"],"fname":"1f596-1f3fc","uc":"1f596-1f3fc","isCanonical": false},":vulcan_tone1:":{"unicode":["1f596-1f3fb"],"fname":"1f596-1f3fb","uc":"1f596-1f3fb","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{"unicode":["1f596-1f3fb"],"fname":"1f596-1f3fb","uc":"1f596-1f3fb","isCanonical": false},":middle_finger_tone5:":{"unicode":["1f595-1f3ff"],"fname":"1f595-1f3ff","uc":"1f595-1f3ff","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone5:":{"unicode":["1f595-1f3ff"],"fname":"1f595-1f3ff","uc":"1f595-1f3ff","isCanonical": false},":middle_finger_tone4:":{"unicode":["1f595-1f3fe"],"fname":"1f595-1f3fe","uc":"1f595-1f3fe","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone4:":{"unicode":["1f595-1f3fe"],"fname":"1f595-1f3fe","uc":"1f595-1f3fe","isCanonical": false},":middle_finger_tone3:":{"unicode":["1f595-1f3fd"],"fname":"1f595-1f3fd","uc":"1f595-1f3fd","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone3:":{"unicode":["1f595-1f3fd"],"fname":"1f595-1f3fd","uc":"1f595-1f3fd","isCanonical": false},":middle_finger_tone2:":{"unicode":["1f595-1f3fc"],"fname":"1f595-1f3fc","uc":"1f595-1f3fc","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone2:":{"unicode":["1f595-1f3fc"],"fname":"1f595-1f3fc","uc":"1f595-1f3fc","isCanonical": false},":middle_finger_tone1:":{"unicode":["1f595-1f3fb"],"fname":"1f595-1f3fb","uc":"1f595-1f3fb","isCanonical": true},":reversed_hand_with_middle_finger_extended_tone1:":{"unicode":["1f595-1f3fb"],"fname":"1f595-1f3fb","uc":"1f595-1f3fb","isCanonical": false},":hand_splayed_tone5:":{"unicode":["1f590-1f3ff"],"fname":"1f590-1f3ff","uc":"1f590-1f3ff","isCanonical": true},":raised_hand_with_fingers_splayed_tone5:":{"unicode":["1f590-1f3ff"],"fname":"1f590-1f3ff","uc":"1f590-1f3ff","isCanonical": false},":hand_splayed_tone4:":{"unicode":["1f590-1f3fe"],"fname":"1f590-1f3fe","uc":"1f590-1f3fe","isCanonical": true},":raised_hand_with_fingers_splayed_tone4:":{"unicode":["1f590-1f3fe"],"fname":"1f590-1f3fe","uc":"1f590-1f3fe","isCanonical": false},":hand_splayed_tone3:":{"unicode":["1f590-1f3fd"],"fname":"1f590-1f3fd","uc":"1f590-1f3fd","isCanonical": true},":raised_hand_with_fingers_splayed_tone3:":{"unicode":["1f590-1f3fd"],"fname":"1f590-1f3fd","uc":"1f590-1f3fd","isCanonical": false},":hand_splayed_tone2:":{"unicode":["1f590-1f3fc"],"fname":"1f590-1f3fc","uc":"1f590-1f3fc","isCanonical": true},":raised_hand_with_fingers_splayed_tone2:":{"unicode":["1f590-1f3fc"],"fname":"1f590-1f3fc","uc":"1f590-1f3fc","isCanonical": false},":hand_splayed_tone1:":{"unicode":["1f590-1f3fb"],"fname":"1f590-1f3fb","uc":"1f590-1f3fb","isCanonical": true},":raised_hand_with_fingers_splayed_tone1:":{"unicode":["1f590-1f3fb"],"fname":"1f590-1f3fb","uc":"1f590-1f3fb","isCanonical": false},":man_dancing_tone5:":{"unicode":["1f57a-1f3ff"],"fname":"1f57a-1f3ff","uc":"1f57a-1f3ff","isCanonical": true},":male_dancer_tone5:":{"unicode":["1f57a-1f3ff"],"fname":"1f57a-1f3ff","uc":"1f57a-1f3ff","isCanonical": false},":man_dancing_tone4:":{"unicode":["1f57a-1f3fe"],"fname":"1f57a-1f3fe","uc":"1f57a-1f3fe","isCanonical": true},":male_dancer_tone4:":{"unicode":["1f57a-1f3fe"],"fname":"1f57a-1f3fe","uc":"1f57a-1f3fe","isCanonical": false},":man_dancing_tone3:":{"unicode":["1f57a-1f3fd"],"fname":"1f57a-1f3fd","uc":"1f57a-1f3fd","isCanonical": true},":male_dancer_tone3:":{"unicode":["1f57a-1f3fd"],"fname":"1f57a-1f3fd","uc":"1f57a-1f3fd","isCanonical": false},":man_dancing_tone2:":{"unicode":["1f57a-1f3fc"],"fname":"1f57a-1f3fc","uc":"1f57a-1f3fc","isCanonical": true},":male_dancer_tone2:":{"unicode":["1f57a-1f3fc"],"fname":"1f57a-1f3fc","uc":"1f57a-1f3fc","isCanonical": false},":man_dancing_tone1:":{"unicode":["1f57a-1f3fb"],"fname":"1f57a-1f3fb","uc":"1f57a-1f3fb","isCanonical": true},":male_dancer_tone1:":{"unicode":["1f57a-1f3fb"],"fname":"1f57a-1f3fb","uc":"1f57a-1f3fb","isCanonical": false},":spy_tone5:":{"unicode":["1f575-1f3ff"],"fname":"1f575-1f3ff","uc":"1f575-1f3ff","isCanonical": true},":sleuth_or_spy_tone5:":{"unicode":["1f575-1f3ff"],"fname":"1f575-1f3ff","uc":"1f575-1f3ff","isCanonical": false},":spy_tone4:":{"unicode":["1f575-1f3fe"],"fname":"1f575-1f3fe","uc":"1f575-1f3fe","isCanonical": true},":sleuth_or_spy_tone4:":{"unicode":["1f575-1f3fe"],"fname":"1f575-1f3fe","uc":"1f575-1f3fe","isCanonical": false},":spy_tone3:":{"unicode":["1f575-1f3fd"],"fname":"1f575-1f3fd","uc":"1f575-1f3fd","isCanonical": true},":sleuth_or_spy_tone3:":{"unicode":["1f575-1f3fd"],"fname":"1f575-1f3fd","uc":"1f575-1f3fd","isCanonical": false},":spy_tone2:":{"unicode":["1f575-1f3fc"],"fname":"1f575-1f3fc","uc":"1f575-1f3fc","isCanonical": true},":sleuth_or_spy_tone2:":{"unicode":["1f575-1f3fc"],"fname":"1f575-1f3fc","uc":"1f575-1f3fc","isCanonical": false},":spy_tone1:":{"unicode":["1f575-1f3fb"],"fname":"1f575-1f3fb","uc":"1f575-1f3fb","isCanonical": true},":sleuth_or_spy_tone1:":{"unicode":["1f575-1f3fb"],"fname":"1f575-1f3fb","uc":"1f575-1f3fb","isCanonical": false},":muscle_tone5:":{"unicode":["1f4aa-1f3ff"],"fname":"1f4aa-1f3ff","uc":"1f4aa-1f3ff","isCanonical": true},":muscle_tone4:":{"unicode":["1f4aa-1f3fe"],"fname":"1f4aa-1f3fe","uc":"1f4aa-1f3fe","isCanonical": true},":muscle_tone3:":{"unicode":["1f4aa-1f3fd"],"fname":"1f4aa-1f3fd","uc":"1f4aa-1f3fd","isCanonical": true},":muscle_tone2:":{"unicode":["1f4aa-1f3fc"],"fname":"1f4aa-1f3fc","uc":"1f4aa-1f3fc","isCanonical": true},":muscle_tone1:":{"unicode":["1f4aa-1f3fb"],"fname":"1f4aa-1f3fb","uc":"1f4aa-1f3fb","isCanonical": true},":haircut_tone5:":{"unicode":["1f487-1f3ff"],"fname":"1f487-1f3ff","uc":"1f487-1f3ff","isCanonical": true},":haircut_tone4:":{"unicode":["1f487-1f3fe"],"fname":"1f487-1f3fe","uc":"1f487-1f3fe","isCanonical": true},":haircut_tone3:":{"unicode":["1f487-1f3fd"],"fname":"1f487-1f3fd","uc":"1f487-1f3fd","isCanonical": true},":haircut_tone2:":{"unicode":["1f487-1f3fc"],"fname":"1f487-1f3fc","uc":"1f487-1f3fc","isCanonical": true},":haircut_tone1:":{"unicode":["1f487-1f3fb"],"fname":"1f487-1f3fb","uc":"1f487-1f3fb","isCanonical": true},":massage_tone5:":{"unicode":["1f486-1f3ff"],"fname":"1f486-1f3ff","uc":"1f486-1f3ff","isCanonical": true},":massage_tone4:":{"unicode":["1f486-1f3fe"],"fname":"1f486-1f3fe","uc":"1f486-1f3fe","isCanonical": true},":massage_tone3:":{"unicode":["1f486-1f3fd"],"fname":"1f486-1f3fd","uc":"1f486-1f3fd","isCanonical": true},":massage_tone2:":{"unicode":["1f486-1f3fc"],"fname":"1f486-1f3fc","uc":"1f486-1f3fc","isCanonical": true},":massage_tone1:":{"unicode":["1f486-1f3fb"],"fname":"1f486-1f3fb","uc":"1f486-1f3fb","isCanonical": true},":nail_care_tone5:":{"unicode":["1f485-1f3ff"],"fname":"1f485-1f3ff","uc":"1f485-1f3ff","isCanonical": true},":nail_care_tone4:":{"unicode":["1f485-1f3fe"],"fname":"1f485-1f3fe","uc":"1f485-1f3fe","isCanonical": true},":nail_care_tone3:":{"unicode":["1f485-1f3fd"],"fname":"1f485-1f3fd","uc":"1f485-1f3fd","isCanonical": true},":nail_care_tone2:":{"unicode":["1f485-1f3fc"],"fname":"1f485-1f3fc","uc":"1f485-1f3fc","isCanonical": true},":nail_care_tone1:":{"unicode":["1f485-1f3fb"],"fname":"1f485-1f3fb","uc":"1f485-1f3fb","isCanonical": true},":dancer_tone5:":{"unicode":["1f483-1f3ff"],"fname":"1f483-1f3ff","uc":"1f483-1f3ff","isCanonical": true},":dancer_tone4:":{"unicode":["1f483-1f3fe"],"fname":"1f483-1f3fe","uc":"1f483-1f3fe","isCanonical": true},":dancer_tone3:":{"unicode":["1f483-1f3fd"],"fname":"1f483-1f3fd","uc":"1f483-1f3fd","isCanonical": true},":dancer_tone2:":{"unicode":["1f483-1f3fc"],"fname":"1f483-1f3fc","uc":"1f483-1f3fc","isCanonical": true},":dancer_tone1:":{"unicode":["1f483-1f3fb"],"fname":"1f483-1f3fb","uc":"1f483-1f3fb","isCanonical": true},":guardsman_tone5:":{"unicode":["1f482-1f3ff"],"fname":"1f482-1f3ff","uc":"1f482-1f3ff","isCanonical": true},":guardsman_tone4:":{"unicode":["1f482-1f3fe"],"fname":"1f482-1f3fe","uc":"1f482-1f3fe","isCanonical": true},":guardsman_tone3:":{"unicode":["1f482-1f3fd"],"fname":"1f482-1f3fd","uc":"1f482-1f3fd","isCanonical": true},":guardsman_tone2:":{"unicode":["1f482-1f3fc"],"fname":"1f482-1f3fc","uc":"1f482-1f3fc","isCanonical": true},":guardsman_tone1:":{"unicode":["1f482-1f3fb"],"fname":"1f482-1f3fb","uc":"1f482-1f3fb","isCanonical": true},":information_desk_person_tone5:":{"unicode":["1f481-1f3ff"],"fname":"1f481-1f3ff","uc":"1f481-1f3ff","isCanonical": true},":information_desk_person_tone4:":{"unicode":["1f481-1f3fe"],"fname":"1f481-1f3fe","uc":"1f481-1f3fe","isCanonical": true},":information_desk_person_tone3:":{"unicode":["1f481-1f3fd"],"fname":"1f481-1f3fd","uc":"1f481-1f3fd","isCanonical": true},":information_desk_person_tone2:":{"unicode":["1f481-1f3fc"],"fname":"1f481-1f3fc","uc":"1f481-1f3fc","isCanonical": true},":information_desk_person_tone1:":{"unicode":["1f481-1f3fb"],"fname":"1f481-1f3fb","uc":"1f481-1f3fb","isCanonical": true},":angel_tone5:":{"unicode":["1f47c-1f3ff"],"fname":"1f47c-1f3ff","uc":"1f47c-1f3ff","isCanonical": true},":angel_tone4:":{"unicode":["1f47c-1f3fe"],"fname":"1f47c-1f3fe","uc":"1f47c-1f3fe","isCanonical": true},":angel_tone3:":{"unicode":["1f47c-1f3fd"],"fname":"1f47c-1f3fd","uc":"1f47c-1f3fd","isCanonical": true},":angel_tone2:":{"unicode":["1f47c-1f3fc"],"fname":"1f47c-1f3fc","uc":"1f47c-1f3fc","isCanonical": true},":angel_tone1:":{"unicode":["1f47c-1f3fb"],"fname":"1f47c-1f3fb","uc":"1f47c-1f3fb","isCanonical": true},":princess_tone5:":{"unicode":["1f478-1f3ff"],"fname":"1f478-1f3ff","uc":"1f478-1f3ff","isCanonical": true},":princess_tone4:":{"unicode":["1f478-1f3fe"],"fname":"1f478-1f3fe","uc":"1f478-1f3fe","isCanonical": true},":princess_tone3:":{"unicode":["1f478-1f3fd"],"fname":"1f478-1f3fd","uc":"1f478-1f3fd","isCanonical": true},":princess_tone2:":{"unicode":["1f478-1f3fc"],"fname":"1f478-1f3fc","uc":"1f478-1f3fc","isCanonical": true},":princess_tone1:":{"unicode":["1f478-1f3fb"],"fname":"1f478-1f3fb","uc":"1f478-1f3fb","isCanonical": true},":construction_worker_tone5:":{"unicode":["1f477-1f3ff"],"fname":"1f477-1f3ff","uc":"1f477-1f3ff","isCanonical": true},":construction_worker_tone4:":{"unicode":["1f477-1f3fe"],"fname":"1f477-1f3fe","uc":"1f477-1f3fe","isCanonical": true},":construction_worker_tone3:":{"unicode":["1f477-1f3fd"],"fname":"1f477-1f3fd","uc":"1f477-1f3fd","isCanonical": true},":construction_worker_tone2:":{"unicode":["1f477-1f3fc"],"fname":"1f477-1f3fc","uc":"1f477-1f3fc","isCanonical": true},":construction_worker_tone1:":{"unicode":["1f477-1f3fb"],"fname":"1f477-1f3fb","uc":"1f477-1f3fb","isCanonical": true},":baby_tone5:":{"unicode":["1f476-1f3ff"],"fname":"1f476-1f3ff","uc":"1f476-1f3ff","isCanonical": true},":baby_tone4:":{"unicode":["1f476-1f3fe"],"fname":"1f476-1f3fe","uc":"1f476-1f3fe","isCanonical": true},":baby_tone3:":{"unicode":["1f476-1f3fd"],"fname":"1f476-1f3fd","uc":"1f476-1f3fd","isCanonical": true},":baby_tone2:":{"unicode":["1f476-1f3fc"],"fname":"1f476-1f3fc","uc":"1f476-1f3fc","isCanonical": true},":baby_tone1:":{"unicode":["1f476-1f3fb"],"fname":"1f476-1f3fb","uc":"1f476-1f3fb","isCanonical": true},":older_woman_tone5:":{"unicode":["1f475-1f3ff"],"fname":"1f475-1f3ff","uc":"1f475-1f3ff","isCanonical": true},":grandma_tone5:":{"unicode":["1f475-1f3ff"],"fname":"1f475-1f3ff","uc":"1f475-1f3ff","isCanonical": false},":older_woman_tone4:":{"unicode":["1f475-1f3fe"],"fname":"1f475-1f3fe","uc":"1f475-1f3fe","isCanonical": true},":grandma_tone4:":{"unicode":["1f475-1f3fe"],"fname":"1f475-1f3fe","uc":"1f475-1f3fe","isCanonical": false},":older_woman_tone3:":{"unicode":["1f475-1f3fd"],"fname":"1f475-1f3fd","uc":"1f475-1f3fd","isCanonical": true},":grandma_tone3:":{"unicode":["1f475-1f3fd"],"fname":"1f475-1f3fd","uc":"1f475-1f3fd","isCanonical": false},":older_woman_tone2:":{"unicode":["1f475-1f3fc"],"fname":"1f475-1f3fc","uc":"1f475-1f3fc","isCanonical": true},":grandma_tone2:":{"unicode":["1f475-1f3fc"],"fname":"1f475-1f3fc","uc":"1f475-1f3fc","isCanonical": false},":older_woman_tone1:":{"unicode":["1f475-1f3fb"],"fname":"1f475-1f3fb","uc":"1f475-1f3fb","isCanonical": true},":grandma_tone1:":{"unicode":["1f475-1f3fb"],"fname":"1f475-1f3fb","uc":"1f475-1f3fb","isCanonical": false},":older_man_tone5:":{"unicode":["1f474-1f3ff"],"fname":"1f474-1f3ff","uc":"1f474-1f3ff","isCanonical": true},":older_man_tone4:":{"unicode":["1f474-1f3fe"],"fname":"1f474-1f3fe","uc":"1f474-1f3fe","isCanonical": true},":older_man_tone3:":{"unicode":["1f474-1f3fd"],"fname":"1f474-1f3fd","uc":"1f474-1f3fd","isCanonical": true},":older_man_tone2:":{"unicode":["1f474-1f3fc"],"fname":"1f474-1f3fc","uc":"1f474-1f3fc","isCanonical": true},":older_man_tone1:":{"unicode":["1f474-1f3fb"],"fname":"1f474-1f3fb","uc":"1f474-1f3fb","isCanonical": true},":man_with_turban_tone5:":{"unicode":["1f473-1f3ff"],"fname":"1f473-1f3ff","uc":"1f473-1f3ff","isCanonical": true},":man_with_turban_tone4:":{"unicode":["1f473-1f3fe"],"fname":"1f473-1f3fe","uc":"1f473-1f3fe","isCanonical": true},":man_with_turban_tone3:":{"unicode":["1f473-1f3fd"],"fname":"1f473-1f3fd","uc":"1f473-1f3fd","isCanonical": true},":man_with_turban_tone2:":{"unicode":["1f473-1f3fc"],"fname":"1f473-1f3fc","uc":"1f473-1f3fc","isCanonical": true},":man_with_turban_tone1:":{"unicode":["1f473-1f3fb"],"fname":"1f473-1f3fb","uc":"1f473-1f3fb","isCanonical": true},":man_with_gua_pi_mao_tone5:":{"unicode":["1f472-1f3ff"],"fname":"1f472-1f3ff","uc":"1f472-1f3ff","isCanonical": true},":man_with_gua_pi_mao_tone4:":{"unicode":["1f472-1f3fe"],"fname":"1f472-1f3fe","uc":"1f472-1f3fe","isCanonical": true},":man_with_gua_pi_mao_tone3:":{"unicode":["1f472-1f3fd"],"fname":"1f472-1f3fd","uc":"1f472-1f3fd","isCanonical": true},":man_with_gua_pi_mao_tone2:":{"unicode":["1f472-1f3fc"],"fname":"1f472-1f3fc","uc":"1f472-1f3fc","isCanonical": true},":man_with_gua_pi_mao_tone1:":{"unicode":["1f472-1f3fb"],"fname":"1f472-1f3fb","uc":"1f472-1f3fb","isCanonical": true},":person_with_blond_hair_tone5:":{"unicode":["1f471-1f3ff"],"fname":"1f471-1f3ff","uc":"1f471-1f3ff","isCanonical": true},":person_with_blond_hair_tone4:":{"unicode":["1f471-1f3fe"],"fname":"1f471-1f3fe","uc":"1f471-1f3fe","isCanonical": true},":person_with_blond_hair_tone3:":{"unicode":["1f471-1f3fd"],"fname":"1f471-1f3fd","uc":"1f471-1f3fd","isCanonical": true},":person_with_blond_hair_tone2:":{"unicode":["1f471-1f3fc"],"fname":"1f471-1f3fc","uc":"1f471-1f3fc","isCanonical": true},":person_with_blond_hair_tone1:":{"unicode":["1f471-1f3fb"],"fname":"1f471-1f3fb","uc":"1f471-1f3fb","isCanonical": true},":bride_with_veil_tone5:":{"unicode":["1f470-1f3ff"],"fname":"1f470-1f3ff","uc":"1f470-1f3ff","isCanonical": true},":bride_with_veil_tone4:":{"unicode":["1f470-1f3fe"],"fname":"1f470-1f3fe","uc":"1f470-1f3fe","isCanonical": true},":bride_with_veil_tone3:":{"unicode":["1f470-1f3fd"],"fname":"1f470-1f3fd","uc":"1f470-1f3fd","isCanonical": true},":bride_with_veil_tone2:":{"unicode":["1f470-1f3fc"],"fname":"1f470-1f3fc","uc":"1f470-1f3fc","isCanonical": true},":bride_with_veil_tone1:":{"unicode":["1f470-1f3fb"],"fname":"1f470-1f3fb","uc":"1f470-1f3fb","isCanonical": true},":cop_tone5:":{"unicode":["1f46e-1f3ff"],"fname":"1f46e-1f3ff","uc":"1f46e-1f3ff","isCanonical": true},":cop_tone4:":{"unicode":["1f46e-1f3fe"],"fname":"1f46e-1f3fe","uc":"1f46e-1f3fe","isCanonical": true},":cop_tone3:":{"unicode":["1f46e-1f3fd"],"fname":"1f46e-1f3fd","uc":"1f46e-1f3fd","isCanonical": true},":cop_tone2:":{"unicode":["1f46e-1f3fc"],"fname":"1f46e-1f3fc","uc":"1f46e-1f3fc","isCanonical": true},":cop_tone1:":{"unicode":["1f46e-1f3fb"],"fname":"1f46e-1f3fb","uc":"1f46e-1f3fb","isCanonical": true},":woman_tone5:":{"unicode":["1f469-1f3ff"],"fname":"1f469-1f3ff","uc":"1f469-1f3ff","isCanonical": true},":woman_tone4:":{"unicode":["1f469-1f3fe"],"fname":"1f469-1f3fe","uc":"1f469-1f3fe","isCanonical": true},":woman_tone3:":{"unicode":["1f469-1f3fd"],"fname":"1f469-1f3fd","uc":"1f469-1f3fd","isCanonical": true},":woman_tone2:":{"unicode":["1f469-1f3fc"],"fname":"1f469-1f3fc","uc":"1f469-1f3fc","isCanonical": true},":woman_tone1:":{"unicode":["1f469-1f3fb"],"fname":"1f469-1f3fb","uc":"1f469-1f3fb","isCanonical": true},":man_tone5:":{"unicode":["1f468-1f3ff"],"fname":"1f468-1f3ff","uc":"1f468-1f3ff","isCanonical": true},":man_tone4:":{"unicode":["1f468-1f3fe"],"fname":"1f468-1f3fe","uc":"1f468-1f3fe","isCanonical": true},":man_tone3:":{"unicode":["1f468-1f3fd"],"fname":"1f468-1f3fd","uc":"1f468-1f3fd","isCanonical": true},":man_tone2:":{"unicode":["1f468-1f3fc"],"fname":"1f468-1f3fc","uc":"1f468-1f3fc","isCanonical": true},":man_tone1:":{"unicode":["1f468-1f3fb"],"fname":"1f468-1f3fb","uc":"1f468-1f3fb","isCanonical": true},":girl_tone5:":{"unicode":["1f467-1f3ff"],"fname":"1f467-1f3ff","uc":"1f467-1f3ff","isCanonical": true},":girl_tone4:":{"unicode":["1f467-1f3fe"],"fname":"1f467-1f3fe","uc":"1f467-1f3fe","isCanonical": true},":girl_tone3:":{"unicode":["1f467-1f3fd"],"fname":"1f467-1f3fd","uc":"1f467-1f3fd","isCanonical": true},":girl_tone2:":{"unicode":["1f467-1f3fc"],"fname":"1f467-1f3fc","uc":"1f467-1f3fc","isCanonical": true},":girl_tone1:":{"unicode":["1f467-1f3fb"],"fname":"1f467-1f3fb","uc":"1f467-1f3fb","isCanonical": true},":boy_tone5:":{"unicode":["1f466-1f3ff"],"fname":"1f466-1f3ff","uc":"1f466-1f3ff","isCanonical": true},":boy_tone4:":{"unicode":["1f466-1f3fe"],"fname":"1f466-1f3fe","uc":"1f466-1f3fe","isCanonical": true},":boy_tone3:":{"unicode":["1f466-1f3fd"],"fname":"1f466-1f3fd","uc":"1f466-1f3fd","isCanonical": true},":boy_tone2:":{"unicode":["1f466-1f3fc"],"fname":"1f466-1f3fc","uc":"1f466-1f3fc","isCanonical": true},":boy_tone1:":{"unicode":["1f466-1f3fb"],"fname":"1f466-1f3fb","uc":"1f466-1f3fb","isCanonical": true},":open_hands_tone5:":{"unicode":["1f450-1f3ff"],"fname":"1f450-1f3ff","uc":"1f450-1f3ff","isCanonical": true},":open_hands_tone4:":{"unicode":["1f450-1f3fe"],"fname":"1f450-1f3fe","uc":"1f450-1f3fe","isCanonical": true},":open_hands_tone3:":{"unicode":["1f450-1f3fd"],"fname":"1f450-1f3fd","uc":"1f450-1f3fd","isCanonical": true},":open_hands_tone2:":{"unicode":["1f450-1f3fc"],"fname":"1f450-1f3fc","uc":"1f450-1f3fc","isCanonical": true},":open_hands_tone1:":{"unicode":["1f450-1f3fb"],"fname":"1f450-1f3fb","uc":"1f450-1f3fb","isCanonical": true},":clap_tone5:":{"unicode":["1f44f-1f3ff"],"fname":"1f44f-1f3ff","uc":"1f44f-1f3ff","isCanonical": true},":clap_tone4:":{"unicode":["1f44f-1f3fe"],"fname":"1f44f-1f3fe","uc":"1f44f-1f3fe","isCanonical": true},":clap_tone3:":{"unicode":["1f44f-1f3fd"],"fname":"1f44f-1f3fd","uc":"1f44f-1f3fd","isCanonical": true},":clap_tone2:":{"unicode":["1f44f-1f3fc"],"fname":"1f44f-1f3fc","uc":"1f44f-1f3fc","isCanonical": true},":clap_tone1:":{"unicode":["1f44f-1f3fb"],"fname":"1f44f-1f3fb","uc":"1f44f-1f3fb","isCanonical": true},":thumbsdown_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": true},":-1_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": false},":thumbdown_tone5:":{"unicode":["1f44e-1f3ff"],"fname":"1f44e-1f3ff","uc":"1f44e-1f3ff","isCanonical": false},":thumbsdown_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": true},":-1_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": false},":thumbdown_tone4:":{"unicode":["1f44e-1f3fe"],"fname":"1f44e-1f3fe","uc":"1f44e-1f3fe","isCanonical": false},":thumbsdown_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": true},":-1_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": false},":thumbdown_tone3:":{"unicode":["1f44e-1f3fd"],"fname":"1f44e-1f3fd","uc":"1f44e-1f3fd","isCanonical": false},":thumbsdown_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": true},":-1_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": false},":thumbdown_tone2:":{"unicode":["1f44e-1f3fc"],"fname":"1f44e-1f3fc","uc":"1f44e-1f3fc","isCanonical": false},":thumbsdown_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": true},":-1_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": false},":thumbdown_tone1:":{"unicode":["1f44e-1f3fb"],"fname":"1f44e-1f3fb","uc":"1f44e-1f3fb","isCanonical": false},":thumbsup_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": true},":+1_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": false},":thumbup_tone5:":{"unicode":["1f44d-1f3ff"],"fname":"1f44d-1f3ff","uc":"1f44d-1f3ff","isCanonical": false},":thumbsup_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": true},":+1_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": false},":thumbup_tone4:":{"unicode":["1f44d-1f3fe"],"fname":"1f44d-1f3fe","uc":"1f44d-1f3fe","isCanonical": false},":thumbsup_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": true},":+1_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": false},":thumbup_tone3:":{"unicode":["1f44d-1f3fd"],"fname":"1f44d-1f3fd","uc":"1f44d-1f3fd","isCanonical": false},":thumbsup_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": true},":+1_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": false},":thumbup_tone2:":{"unicode":["1f44d-1f3fc"],"fname":"1f44d-1f3fc","uc":"1f44d-1f3fc","isCanonical": false},":thumbsup_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": true},":+1_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": false},":thumbup_tone1:":{"unicode":["1f44d-1f3fb"],"fname":"1f44d-1f3fb","uc":"1f44d-1f3fb","isCanonical": false},":ok_hand_tone5:":{"unicode":["1f44c-1f3ff"],"fname":"1f44c-1f3ff","uc":"1f44c-1f3ff","isCanonical": true},":ok_hand_tone4:":{"unicode":["1f44c-1f3fe"],"fname":"1f44c-1f3fe","uc":"1f44c-1f3fe","isCanonical": true},":ok_hand_tone3:":{"unicode":["1f44c-1f3fd"],"fname":"1f44c-1f3fd","uc":"1f44c-1f3fd","isCanonical": true},":ok_hand_tone2:":{"unicode":["1f44c-1f3fc"],"fname":"1f44c-1f3fc","uc":"1f44c-1f3fc","isCanonical": true},":ok_hand_tone1:":{"unicode":["1f44c-1f3fb"],"fname":"1f44c-1f3fb","uc":"1f44c-1f3fb","isCanonical": true},":wave_tone5:":{"unicode":["1f44b-1f3ff"],"fname":"1f44b-1f3ff","uc":"1f44b-1f3ff","isCanonical": true},":wave_tone4:":{"unicode":["1f44b-1f3fe"],"fname":"1f44b-1f3fe","uc":"1f44b-1f3fe","isCanonical": true},":wave_tone3:":{"unicode":["1f44b-1f3fd"],"fname":"1f44b-1f3fd","uc":"1f44b-1f3fd","isCanonical": true},":wave_tone2:":{"unicode":["1f44b-1f3fc"],"fname":"1f44b-1f3fc","uc":"1f44b-1f3fc","isCanonical": true},":wave_tone1:":{"unicode":["1f44b-1f3fb"],"fname":"1f44b-1f3fb","uc":"1f44b-1f3fb","isCanonical": true},":punch_tone5:":{"unicode":["1f44a-1f3ff"],"fname":"1f44a-1f3ff","uc":"1f44a-1f3ff","isCanonical": true},":punch_tone4:":{"unicode":["1f44a-1f3fe"],"fname":"1f44a-1f3fe","uc":"1f44a-1f3fe","isCanonical": true},":punch_tone3:":{"unicode":["1f44a-1f3fd"],"fname":"1f44a-1f3fd","uc":"1f44a-1f3fd","isCanonical": true},":punch_tone2:":{"unicode":["1f44a-1f3fc"],"fname":"1f44a-1f3fc","uc":"1f44a-1f3fc","isCanonical": true},":punch_tone1:":{"unicode":["1f44a-1f3fb"],"fname":"1f44a-1f3fb","uc":"1f44a-1f3fb","isCanonical": true},":point_right_tone5:":{"unicode":["1f449-1f3ff"],"fname":"1f449-1f3ff","uc":"1f449-1f3ff","isCanonical": true},":point_right_tone4:":{"unicode":["1f449-1f3fe"],"fname":"1f449-1f3fe","uc":"1f449-1f3fe","isCanonical": true},":point_right_tone3:":{"unicode":["1f449-1f3fd"],"fname":"1f449-1f3fd","uc":"1f449-1f3fd","isCanonical": true},":point_right_tone2:":{"unicode":["1f449-1f3fc"],"fname":"1f449-1f3fc","uc":"1f449-1f3fc","isCanonical": true},":point_right_tone1:":{"unicode":["1f449-1f3fb"],"fname":"1f449-1f3fb","uc":"1f449-1f3fb","isCanonical": true},":point_left_tone5:":{"unicode":["1f448-1f3ff"],"fname":"1f448-1f3ff","uc":"1f448-1f3ff","isCanonical": true},":point_left_tone4:":{"unicode":["1f448-1f3fe"],"fname":"1f448-1f3fe","uc":"1f448-1f3fe","isCanonical": true},":point_left_tone3:":{"unicode":["1f448-1f3fd"],"fname":"1f448-1f3fd","uc":"1f448-1f3fd","isCanonical": true},":point_left_tone2:":{"unicode":["1f448-1f3fc"],"fname":"1f448-1f3fc","uc":"1f448-1f3fc","isCanonical": true},":point_left_tone1:":{"unicode":["1f448-1f3fb"],"fname":"1f448-1f3fb","uc":"1f448-1f3fb","isCanonical": true},":point_down_tone5:":{"unicode":["1f447-1f3ff"],"fname":"1f447-1f3ff","uc":"1f447-1f3ff","isCanonical": true},":point_down_tone4:":{"unicode":["1f447-1f3fe"],"fname":"1f447-1f3fe","uc":"1f447-1f3fe","isCanonical": true},":point_down_tone3:":{"unicode":["1f447-1f3fd"],"fname":"1f447-1f3fd","uc":"1f447-1f3fd","isCanonical": true},":point_down_tone2:":{"unicode":["1f447-1f3fc"],"fname":"1f447-1f3fc","uc":"1f447-1f3fc","isCanonical": true},":point_down_tone1:":{"unicode":["1f447-1f3fb"],"fname":"1f447-1f3fb","uc":"1f447-1f3fb","isCanonical": true},":point_up_2_tone5:":{"unicode":["1f446-1f3ff"],"fname":"1f446-1f3ff","uc":"1f446-1f3ff","isCanonical": true},":point_up_2_tone4:":{"unicode":["1f446-1f3fe"],"fname":"1f446-1f3fe","uc":"1f446-1f3fe","isCanonical": true},":point_up_2_tone3:":{"unicode":["1f446-1f3fd"],"fname":"1f446-1f3fd","uc":"1f446-1f3fd","isCanonical": true},":point_up_2_tone2:":{"unicode":["1f446-1f3fc"],"fname":"1f446-1f3fc","uc":"1f446-1f3fc","isCanonical": true},":point_up_2_tone1:":{"unicode":["1f446-1f3fb"],"fname":"1f446-1f3fb","uc":"1f446-1f3fb","isCanonical": true},":nose_tone5:":{"unicode":["1f443-1f3ff"],"fname":"1f443-1f3ff","uc":"1f443-1f3ff","isCanonical": true},":nose_tone4:":{"unicode":["1f443-1f3fe"],"fname":"1f443-1f3fe","uc":"1f443-1f3fe","isCanonical": true},":nose_tone3:":{"unicode":["1f443-1f3fd"],"fname":"1f443-1f3fd","uc":"1f443-1f3fd","isCanonical": true},":nose_tone2:":{"unicode":["1f443-1f3fc"],"fname":"1f443-1f3fc","uc":"1f443-1f3fc","isCanonical": true},":nose_tone1:":{"unicode":["1f443-1f3fb"],"fname":"1f443-1f3fb","uc":"1f443-1f3fb","isCanonical": true},":ear_tone5:":{"unicode":["1f442-1f3ff"],"fname":"1f442-1f3ff","uc":"1f442-1f3ff","isCanonical": true},":ear_tone4:":{"unicode":["1f442-1f3fe"],"fname":"1f442-1f3fe","uc":"1f442-1f3fe","isCanonical": true},":ear_tone3:":{"unicode":["1f442-1f3fd"],"fname":"1f442-1f3fd","uc":"1f442-1f3fd","isCanonical": true},":ear_tone2:":{"unicode":["1f442-1f3fc"],"fname":"1f442-1f3fc","uc":"1f442-1f3fc","isCanonical": true},":ear_tone1:":{"unicode":["1f442-1f3fb"],"fname":"1f442-1f3fb","uc":"1f442-1f3fb","isCanonical": true},":lifter_tone5:":{"unicode":["1f3cb-1f3ff"],"fname":"1f3cb-1f3ff","uc":"1f3cb-1f3ff","isCanonical": true},":weight_lifter_tone5:":{"unicode":["1f3cb-1f3ff"],"fname":"1f3cb-1f3ff","uc":"1f3cb-1f3ff","isCanonical": false},":lifter_tone4:":{"unicode":["1f3cb-1f3fe"],"fname":"1f3cb-1f3fe","uc":"1f3cb-1f3fe","isCanonical": true},":weight_lifter_tone4:":{"unicode":["1f3cb-1f3fe"],"fname":"1f3cb-1f3fe","uc":"1f3cb-1f3fe","isCanonical": false},":lifter_tone3:":{"unicode":["1f3cb-1f3fd"],"fname":"1f3cb-1f3fd","uc":"1f3cb-1f3fd","isCanonical": true},":weight_lifter_tone3:":{"unicode":["1f3cb-1f3fd"],"fname":"1f3cb-1f3fd","uc":"1f3cb-1f3fd","isCanonical": false},":lifter_tone2:":{"unicode":["1f3cb-1f3fc"],"fname":"1f3cb-1f3fc","uc":"1f3cb-1f3fc","isCanonical": true},":weight_lifter_tone2:":{"unicode":["1f3cb-1f3fc"],"fname":"1f3cb-1f3fc","uc":"1f3cb-1f3fc","isCanonical": false},":lifter_tone1:":{"unicode":["1f3cb-1f3fb"],"fname":"1f3cb-1f3fb","uc":"1f3cb-1f3fb","isCanonical": true},":weight_lifter_tone1:":{"unicode":["1f3cb-1f3fb"],"fname":"1f3cb-1f3fb","uc":"1f3cb-1f3fb","isCanonical": false},":swimmer_tone5:":{"unicode":["1f3ca-1f3ff"],"fname":"1f3ca-1f3ff","uc":"1f3ca-1f3ff","isCanonical": true},":swimmer_tone4:":{"unicode":["1f3ca-1f3fe"],"fname":"1f3ca-1f3fe","uc":"1f3ca-1f3fe","isCanonical": true},":swimmer_tone3:":{"unicode":["1f3ca-1f3fd"],"fname":"1f3ca-1f3fd","uc":"1f3ca-1f3fd","isCanonical": true},":swimmer_tone2:":{"unicode":["1f3ca-1f3fc"],"fname":"1f3ca-1f3fc","uc":"1f3ca-1f3fc","isCanonical": true},":swimmer_tone1:":{"unicode":["1f3ca-1f3fb"],"fname":"1f3ca-1f3fb","uc":"1f3ca-1f3fb","isCanonical": true},":horse_racing_tone5:":{"unicode":["1f3c7-1f3ff"],"fname":"1f3c7-1f3ff","uc":"1f3c7-1f3ff","isCanonical": true},":horse_racing_tone4:":{"unicode":["1f3c7-1f3fe"],"fname":"1f3c7-1f3fe","uc":"1f3c7-1f3fe","isCanonical": true},":horse_racing_tone3:":{"unicode":["1f3c7-1f3fd"],"fname":"1f3c7-1f3fd","uc":"1f3c7-1f3fd","isCanonical": true},":horse_racing_tone2:":{"unicode":["1f3c7-1f3fc"],"fname":"1f3c7-1f3fc","uc":"1f3c7-1f3fc","isCanonical": true},":horse_racing_tone1:":{"unicode":["1f3c7-1f3fb"],"fname":"1f3c7-1f3fb","uc":"1f3c7-1f3fb","isCanonical": true},":surfer_tone5:":{"unicode":["1f3c4-1f3ff"],"fname":"1f3c4-1f3ff","uc":"1f3c4-1f3ff","isCanonical": true},":surfer_tone4:":{"unicode":["1f3c4-1f3fe"],"fname":"1f3c4-1f3fe","uc":"1f3c4-1f3fe","isCanonical": true},":surfer_tone3:":{"unicode":["1f3c4-1f3fd"],"fname":"1f3c4-1f3fd","uc":"1f3c4-1f3fd","isCanonical": true},":surfer_tone2:":{"unicode":["1f3c4-1f3fc"],"fname":"1f3c4-1f3fc","uc":"1f3c4-1f3fc","isCanonical": true},":surfer_tone1:":{"unicode":["1f3c4-1f3fb"],"fname":"1f3c4-1f3fb","uc":"1f3c4-1f3fb","isCanonical": true},":runner_tone5:":{"unicode":["1f3c3-1f3ff"],"fname":"1f3c3-1f3ff","uc":"1f3c3-1f3ff","isCanonical": true},":runner_tone4:":{"unicode":["1f3c3-1f3fe"],"fname":"1f3c3-1f3fe","uc":"1f3c3-1f3fe","isCanonical": true},":runner_tone3:":{"unicode":["1f3c3-1f3fd"],"fname":"1f3c3-1f3fd","uc":"1f3c3-1f3fd","isCanonical": true},":runner_tone2:":{"unicode":["1f3c3-1f3fc"],"fname":"1f3c3-1f3fc","uc":"1f3c3-1f3fc","isCanonical": true},":runner_tone1:":{"unicode":["1f3c3-1f3fb"],"fname":"1f3c3-1f3fb","uc":"1f3c3-1f3fb","isCanonical": true},":santa_tone5:":{"unicode":["1f385-1f3ff"],"fname":"1f385-1f3ff","uc":"1f385-1f3ff","isCanonical": true},":santa_tone4:":{"unicode":["1f385-1f3fe"],"fname":"1f385-1f3fe","uc":"1f385-1f3fe","isCanonical": true},":santa_tone3:":{"unicode":["1f385-1f3fd"],"fname":"1f385-1f3fd","uc":"1f385-1f3fd","isCanonical": true},":santa_tone2:":{"unicode":["1f385-1f3fc"],"fname":"1f385-1f3fc","uc":"1f385-1f3fc","isCanonical": true},":santa_tone1:":{"unicode":["1f385-1f3fb"],"fname":"1f385-1f3fb","uc":"1f385-1f3fb","isCanonical": true},":flag_zw:":{"unicode":["1f1ff-1f1fc"],"fname":"1f1ff-1f1fc","uc":"1f1ff-1f1fc","isCanonical": true},":zw:":{"unicode":["1f1ff-1f1fc"],"fname":"1f1ff-1f1fc","uc":"1f1ff-1f1fc","isCanonical": false},":flag_zm:":{"unicode":["1f1ff-1f1f2"],"fname":"1f1ff-1f1f2","uc":"1f1ff-1f1f2","isCanonical": true},":zm:":{"unicode":["1f1ff-1f1f2"],"fname":"1f1ff-1f1f2","uc":"1f1ff-1f1f2","isCanonical": false},":flag_za:":{"unicode":["1f1ff-1f1e6"],"fname":"1f1ff-1f1e6","uc":"1f1ff-1f1e6","isCanonical": true},":za:":{"unicode":["1f1ff-1f1e6"],"fname":"1f1ff-1f1e6","uc":"1f1ff-1f1e6","isCanonical": false},":flag_yt:":{"unicode":["1f1fe-1f1f9"],"fname":"1f1fe-1f1f9","uc":"1f1fe-1f1f9","isCanonical": true},":yt:":{"unicode":["1f1fe-1f1f9"],"fname":"1f1fe-1f1f9","uc":"1f1fe-1f1f9","isCanonical": false},":flag_ye:":{"unicode":["1f1fe-1f1ea"],"fname":"1f1fe-1f1ea","uc":"1f1fe-1f1ea","isCanonical": true},":ye:":{"unicode":["1f1fe-1f1ea"],"fname":"1f1fe-1f1ea","uc":"1f1fe-1f1ea","isCanonical": false},":flag_xk:":{"unicode":["1f1fd-1f1f0"],"fname":"1f1fd-1f1f0","uc":"1f1fd-1f1f0","isCanonical": true},":xk:":{"unicode":["1f1fd-1f1f0"],"fname":"1f1fd-1f1f0","uc":"1f1fd-1f1f0","isCanonical": false},":flag_ws:":{"unicode":["1f1fc-1f1f8"],"fname":"1f1fc-1f1f8","uc":"1f1fc-1f1f8","isCanonical": true},":ws:":{"unicode":["1f1fc-1f1f8"],"fname":"1f1fc-1f1f8","uc":"1f1fc-1f1f8","isCanonical": false},":flag_wf:":{"unicode":["1f1fc-1f1eb"],"fname":"1f1fc-1f1eb","uc":"1f1fc-1f1eb","isCanonical": true},":wf:":{"unicode":["1f1fc-1f1eb"],"fname":"1f1fc-1f1eb","uc":"1f1fc-1f1eb","isCanonical": false},":flag_vu:":{"unicode":["1f1fb-1f1fa"],"fname":"1f1fb-1f1fa","uc":"1f1fb-1f1fa","isCanonical": true},":vu:":{"unicode":["1f1fb-1f1fa"],"fname":"1f1fb-1f1fa","uc":"1f1fb-1f1fa","isCanonical": false},":flag_vn:":{"unicode":["1f1fb-1f1f3"],"fname":"1f1fb-1f1f3","uc":"1f1fb-1f1f3","isCanonical": true},":vn:":{"unicode":["1f1fb-1f1f3"],"fname":"1f1fb-1f1f3","uc":"1f1fb-1f1f3","isCanonical": false},":flag_vi:":{"unicode":["1f1fb-1f1ee"],"fname":"1f1fb-1f1ee","uc":"1f1fb-1f1ee","isCanonical": true},":vi:":{"unicode":["1f1fb-1f1ee"],"fname":"1f1fb-1f1ee","uc":"1f1fb-1f1ee","isCanonical": false},":flag_vg:":{"unicode":["1f1fb-1f1ec"],"fname":"1f1fb-1f1ec","uc":"1f1fb-1f1ec","isCanonical": true},":vg:":{"unicode":["1f1fb-1f1ec"],"fname":"1f1fb-1f1ec","uc":"1f1fb-1f1ec","isCanonical": false},":flag_ve:":{"unicode":["1f1fb-1f1ea"],"fname":"1f1fb-1f1ea","uc":"1f1fb-1f1ea","isCanonical": true},":ve:":{"unicode":["1f1fb-1f1ea"],"fname":"1f1fb-1f1ea","uc":"1f1fb-1f1ea","isCanonical": false},":flag_vc:":{"unicode":["1f1fb-1f1e8"],"fname":"1f1fb-1f1e8","uc":"1f1fb-1f1e8","isCanonical": true},":vc:":{"unicode":["1f1fb-1f1e8"],"fname":"1f1fb-1f1e8","uc":"1f1fb-1f1e8","isCanonical": false},":flag_va:":{"unicode":["1f1fb-1f1e6"],"fname":"1f1fb-1f1e6","uc":"1f1fb-1f1e6","isCanonical": true},":va:":{"unicode":["1f1fb-1f1e6"],"fname":"1f1fb-1f1e6","uc":"1f1fb-1f1e6","isCanonical": false},":flag_uz:":{"unicode":["1f1fa-1f1ff"],"fname":"1f1fa-1f1ff","uc":"1f1fa-1f1ff","isCanonical": true},":uz:":{"unicode":["1f1fa-1f1ff"],"fname":"1f1fa-1f1ff","uc":"1f1fa-1f1ff","isCanonical": false},":flag_uy:":{"unicode":["1f1fa-1f1fe"],"fname":"1f1fa-1f1fe","uc":"1f1fa-1f1fe","isCanonical": true},":uy:":{"unicode":["1f1fa-1f1fe"],"fname":"1f1fa-1f1fe","uc":"1f1fa-1f1fe","isCanonical": false},":flag_us:":{"unicode":["1f1fa-1f1f8"],"fname":"1f1fa-1f1f8","uc":"1f1fa-1f1f8","isCanonical": true},":us:":{"unicode":["1f1fa-1f1f8"],"fname":"1f1fa-1f1f8","uc":"1f1fa-1f1f8","isCanonical": false},":flag_um:":{"unicode":["1f1fa-1f1f2"],"fname":"1f1fa-1f1f2","uc":"1f1fa-1f1f2","isCanonical": true},":um:":{"unicode":["1f1fa-1f1f2"],"fname":"1f1fa-1f1f2","uc":"1f1fa-1f1f2","isCanonical": false},":flag_ug:":{"unicode":["1f1fa-1f1ec"],"fname":"1f1fa-1f1ec","uc":"1f1fa-1f1ec","isCanonical": true},":ug:":{"unicode":["1f1fa-1f1ec"],"fname":"1f1fa-1f1ec","uc":"1f1fa-1f1ec","isCanonical": false},":flag_ua:":{"unicode":["1f1fa-1f1e6"],"fname":"1f1fa-1f1e6","uc":"1f1fa-1f1e6","isCanonical": true},":ua:":{"unicode":["1f1fa-1f1e6"],"fname":"1f1fa-1f1e6","uc":"1f1fa-1f1e6","isCanonical": false},":flag_tz:":{"unicode":["1f1f9-1f1ff"],"fname":"1f1f9-1f1ff","uc":"1f1f9-1f1ff","isCanonical": true},":tz:":{"unicode":["1f1f9-1f1ff"],"fname":"1f1f9-1f1ff","uc":"1f1f9-1f1ff","isCanonical": false},":flag_tw:":{"unicode":["1f1f9-1f1fc"],"fname":"1f1f9-1f1fc","uc":"1f1f9-1f1fc","isCanonical": true},":tw:":{"unicode":["1f1f9-1f1fc"],"fname":"1f1f9-1f1fc","uc":"1f1f9-1f1fc","isCanonical": false},":flag_tv:":{"unicode":["1f1f9-1f1fb"],"fname":"1f1f9-1f1fb","uc":"1f1f9-1f1fb","isCanonical": true},":tuvalu:":{"unicode":["1f1f9-1f1fb"],"fname":"1f1f9-1f1fb","uc":"1f1f9-1f1fb","isCanonical": false},":flag_tt:":{"unicode":["1f1f9-1f1f9"],"fname":"1f1f9-1f1f9","uc":"1f1f9-1f1f9","isCanonical": true},":tt:":{"unicode":["1f1f9-1f1f9"],"fname":"1f1f9-1f1f9","uc":"1f1f9-1f1f9","isCanonical": false},":flag_tr:":{"unicode":["1f1f9-1f1f7"],"fname":"1f1f9-1f1f7","uc":"1f1f9-1f1f7","isCanonical": true},":tr:":{"unicode":["1f1f9-1f1f7"],"fname":"1f1f9-1f1f7","uc":"1f1f9-1f1f7","isCanonical": false},":flag_to:":{"unicode":["1f1f9-1f1f4"],"fname":"1f1f9-1f1f4","uc":"1f1f9-1f1f4","isCanonical": true},":to:":{"unicode":["1f1f9-1f1f4"],"fname":"1f1f9-1f1f4","uc":"1f1f9-1f1f4","isCanonical": false},":flag_tn:":{"unicode":["1f1f9-1f1f3"],"fname":"1f1f9-1f1f3","uc":"1f1f9-1f1f3","isCanonical": true},":tn:":{"unicode":["1f1f9-1f1f3"],"fname":"1f1f9-1f1f3","uc":"1f1f9-1f1f3","isCanonical": false},":flag_tm:":{"unicode":["1f1f9-1f1f2"],"fname":"1f1f9-1f1f2","uc":"1f1f9-1f1f2","isCanonical": true},":turkmenistan:":{"unicode":["1f1f9-1f1f2"],"fname":"1f1f9-1f1f2","uc":"1f1f9-1f1f2","isCanonical": false},":flag_tl:":{"unicode":["1f1f9-1f1f1"],"fname":"1f1f9-1f1f1","uc":"1f1f9-1f1f1","isCanonical": true},":tl:":{"unicode":["1f1f9-1f1f1"],"fname":"1f1f9-1f1f1","uc":"1f1f9-1f1f1","isCanonical": false},":flag_tk:":{"unicode":["1f1f9-1f1f0"],"fname":"1f1f9-1f1f0","uc":"1f1f9-1f1f0","isCanonical": true},":tk:":{"unicode":["1f1f9-1f1f0"],"fname":"1f1f9-1f1f0","uc":"1f1f9-1f1f0","isCanonical": false},":flag_tj:":{"unicode":["1f1f9-1f1ef"],"fname":"1f1f9-1f1ef","uc":"1f1f9-1f1ef","isCanonical": true},":tj:":{"unicode":["1f1f9-1f1ef"],"fname":"1f1f9-1f1ef","uc":"1f1f9-1f1ef","isCanonical": false},":flag_th:":{"unicode":["1f1f9-1f1ed"],"fname":"1f1f9-1f1ed","uc":"1f1f9-1f1ed","isCanonical": true},":th:":{"unicode":["1f1f9-1f1ed"],"fname":"1f1f9-1f1ed","uc":"1f1f9-1f1ed","isCanonical": false},":flag_tg:":{"unicode":["1f1f9-1f1ec"],"fname":"1f1f9-1f1ec","uc":"1f1f9-1f1ec","isCanonical": true},":tg:":{"unicode":["1f1f9-1f1ec"],"fname":"1f1f9-1f1ec","uc":"1f1f9-1f1ec","isCanonical": false},":flag_tf:":{"unicode":["1f1f9-1f1eb"],"fname":"1f1f9-1f1eb","uc":"1f1f9-1f1eb","isCanonical": true},":tf:":{"unicode":["1f1f9-1f1eb"],"fname":"1f1f9-1f1eb","uc":"1f1f9-1f1eb","isCanonical": false},":flag_td:":{"unicode":["1f1f9-1f1e9"],"fname":"1f1f9-1f1e9","uc":"1f1f9-1f1e9","isCanonical": true},":td:":{"unicode":["1f1f9-1f1e9"],"fname":"1f1f9-1f1e9","uc":"1f1f9-1f1e9","isCanonical": false},":flag_tc:":{"unicode":["1f1f9-1f1e8"],"fname":"1f1f9-1f1e8","uc":"1f1f9-1f1e8","isCanonical": true},":tc:":{"unicode":["1f1f9-1f1e8"],"fname":"1f1f9-1f1e8","uc":"1f1f9-1f1e8","isCanonical": false},":flag_ta:":{"unicode":["1f1f9-1f1e6"],"fname":"1f1f9-1f1e6","uc":"1f1f9-1f1e6","isCanonical": true},":ta:":{"unicode":["1f1f9-1f1e6"],"fname":"1f1f9-1f1e6","uc":"1f1f9-1f1e6","isCanonical": false},":flag_sz:":{"unicode":["1f1f8-1f1ff"],"fname":"1f1f8-1f1ff","uc":"1f1f8-1f1ff","isCanonical": true},":sz:":{"unicode":["1f1f8-1f1ff"],"fname":"1f1f8-1f1ff","uc":"1f1f8-1f1ff","isCanonical": false},":flag_sy:":{"unicode":["1f1f8-1f1fe"],"fname":"1f1f8-1f1fe","uc":"1f1f8-1f1fe","isCanonical": true},":sy:":{"unicode":["1f1f8-1f1fe"],"fname":"1f1f8-1f1fe","uc":"1f1f8-1f1fe","isCanonical": false},":flag_sx:":{"unicode":["1f1f8-1f1fd"],"fname":"1f1f8-1f1fd","uc":"1f1f8-1f1fd","isCanonical": true},":sx:":{"unicode":["1f1f8-1f1fd"],"fname":"1f1f8-1f1fd","uc":"1f1f8-1f1fd","isCanonical": false},":flag_sv:":{"unicode":["1f1f8-1f1fb"],"fname":"1f1f8-1f1fb","uc":"1f1f8-1f1fb","isCanonical": true},":sv:":{"unicode":["1f1f8-1f1fb"],"fname":"1f1f8-1f1fb","uc":"1f1f8-1f1fb","isCanonical": false},":flag_st:":{"unicode":["1f1f8-1f1f9"],"fname":"1f1f8-1f1f9","uc":"1f1f8-1f1f9","isCanonical": true},":st:":{"unicode":["1f1f8-1f1f9"],"fname":"1f1f8-1f1f9","uc":"1f1f8-1f1f9","isCanonical": false},":flag_ss:":{"unicode":["1f1f8-1f1f8"],"fname":"1f1f8-1f1f8","uc":"1f1f8-1f1f8","isCanonical": true},":ss:":{"unicode":["1f1f8-1f1f8"],"fname":"1f1f8-1f1f8","uc":"1f1f8-1f1f8","isCanonical": false},":flag_sr:":{"unicode":["1f1f8-1f1f7"],"fname":"1f1f8-1f1f7","uc":"1f1f8-1f1f7","isCanonical": true},":sr:":{"unicode":["1f1f8-1f1f7"],"fname":"1f1f8-1f1f7","uc":"1f1f8-1f1f7","isCanonical": false},":flag_so:":{"unicode":["1f1f8-1f1f4"],"fname":"1f1f8-1f1f4","uc":"1f1f8-1f1f4","isCanonical": true},":so:":{"unicode":["1f1f8-1f1f4"],"fname":"1f1f8-1f1f4","uc":"1f1f8-1f1f4","isCanonical": false},":flag_sn:":{"unicode":["1f1f8-1f1f3"],"fname":"1f1f8-1f1f3","uc":"1f1f8-1f1f3","isCanonical": true},":sn:":{"unicode":["1f1f8-1f1f3"],"fname":"1f1f8-1f1f3","uc":"1f1f8-1f1f3","isCanonical": false},":flag_sm:":{"unicode":["1f1f8-1f1f2"],"fname":"1f1f8-1f1f2","uc":"1f1f8-1f1f2","isCanonical": true},":sm:":{"unicode":["1f1f8-1f1f2"],"fname":"1f1f8-1f1f2","uc":"1f1f8-1f1f2","isCanonical": false},":flag_sl:":{"unicode":["1f1f8-1f1f1"],"fname":"1f1f8-1f1f1","uc":"1f1f8-1f1f1","isCanonical": true},":sl:":{"unicode":["1f1f8-1f1f1"],"fname":"1f1f8-1f1f1","uc":"1f1f8-1f1f1","isCanonical": false},":flag_sk:":{"unicode":["1f1f8-1f1f0"],"fname":"1f1f8-1f1f0","uc":"1f1f8-1f1f0","isCanonical": true},":sk:":{"unicode":["1f1f8-1f1f0"],"fname":"1f1f8-1f1f0","uc":"1f1f8-1f1f0","isCanonical": false},":flag_sj:":{"unicode":["1f1f8-1f1ef"],"fname":"1f1f8-1f1ef","uc":"1f1f8-1f1ef","isCanonical": true},":sj:":{"unicode":["1f1f8-1f1ef"],"fname":"1f1f8-1f1ef","uc":"1f1f8-1f1ef","isCanonical": false},":flag_si:":{"unicode":["1f1f8-1f1ee"],"fname":"1f1f8-1f1ee","uc":"1f1f8-1f1ee","isCanonical": true},":si:":{"unicode":["1f1f8-1f1ee"],"fname":"1f1f8-1f1ee","uc":"1f1f8-1f1ee","isCanonical": false},":flag_sh:":{"unicode":["1f1f8-1f1ed"],"fname":"1f1f8-1f1ed","uc":"1f1f8-1f1ed","isCanonical": true},":sh:":{"unicode":["1f1f8-1f1ed"],"fname":"1f1f8-1f1ed","uc":"1f1f8-1f1ed","isCanonical": false},":flag_sg:":{"unicode":["1f1f8-1f1ec"],"fname":"1f1f8-1f1ec","uc":"1f1f8-1f1ec","isCanonical": true},":sg:":{"unicode":["1f1f8-1f1ec"],"fname":"1f1f8-1f1ec","uc":"1f1f8-1f1ec","isCanonical": false},":flag_se:":{"unicode":["1f1f8-1f1ea"],"fname":"1f1f8-1f1ea","uc":"1f1f8-1f1ea","isCanonical": true},":se:":{"unicode":["1f1f8-1f1ea"],"fname":"1f1f8-1f1ea","uc":"1f1f8-1f1ea","isCanonical": false},":flag_sd:":{"unicode":["1f1f8-1f1e9"],"fname":"1f1f8-1f1e9","uc":"1f1f8-1f1e9","isCanonical": true},":sd:":{"unicode":["1f1f8-1f1e9"],"fname":"1f1f8-1f1e9","uc":"1f1f8-1f1e9","isCanonical": false},":flag_sc:":{"unicode":["1f1f8-1f1e8"],"fname":"1f1f8-1f1e8","uc":"1f1f8-1f1e8","isCanonical": true},":sc:":{"unicode":["1f1f8-1f1e8"],"fname":"1f1f8-1f1e8","uc":"1f1f8-1f1e8","isCanonical": false},":flag_sb:":{"unicode":["1f1f8-1f1e7"],"fname":"1f1f8-1f1e7","uc":"1f1f8-1f1e7","isCanonical": true},":sb:":{"unicode":["1f1f8-1f1e7"],"fname":"1f1f8-1f1e7","uc":"1f1f8-1f1e7","isCanonical": false},":flag_sa:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": true},":saudiarabia:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": false},":saudi:":{"unicode":["1f1f8-1f1e6"],"fname":"1f1f8-1f1e6","uc":"1f1f8-1f1e6","isCanonical": false},":flag_rw:":{"unicode":["1f1f7-1f1fc"],"fname":"1f1f7-1f1fc","uc":"1f1f7-1f1fc","isCanonical": true},":rw:":{"unicode":["1f1f7-1f1fc"],"fname":"1f1f7-1f1fc","uc":"1f1f7-1f1fc","isCanonical": false},":flag_ru:":{"unicode":["1f1f7-1f1fa"],"fname":"1f1f7-1f1fa","uc":"1f1f7-1f1fa","isCanonical": true},":ru:":{"unicode":["1f1f7-1f1fa"],"fname":"1f1f7-1f1fa","uc":"1f1f7-1f1fa","isCanonical": false},":flag_rs:":{"unicode":["1f1f7-1f1f8"],"fname":"1f1f7-1f1f8","uc":"1f1f7-1f1f8","isCanonical": true},":rs:":{"unicode":["1f1f7-1f1f8"],"fname":"1f1f7-1f1f8","uc":"1f1f7-1f1f8","isCanonical": false},":flag_ro:":{"unicode":["1f1f7-1f1f4"],"fname":"1f1f7-1f1f4","uc":"1f1f7-1f1f4","isCanonical": true},":ro:":{"unicode":["1f1f7-1f1f4"],"fname":"1f1f7-1f1f4","uc":"1f1f7-1f1f4","isCanonical": false},":flag_re:":{"unicode":["1f1f7-1f1ea"],"fname":"1f1f7-1f1ea","uc":"1f1f7-1f1ea","isCanonical": true},":re:":{"unicode":["1f1f7-1f1ea"],"fname":"1f1f7-1f1ea","uc":"1f1f7-1f1ea","isCanonical": false},":flag_qa:":{"unicode":["1f1f6-1f1e6"],"fname":"1f1f6-1f1e6","uc":"1f1f6-1f1e6","isCanonical": true},":qa:":{"unicode":["1f1f6-1f1e6"],"fname":"1f1f6-1f1e6","uc":"1f1f6-1f1e6","isCanonical": false},":flag_py:":{"unicode":["1f1f5-1f1fe"],"fname":"1f1f5-1f1fe","uc":"1f1f5-1f1fe","isCanonical": true},":py:":{"unicode":["1f1f5-1f1fe"],"fname":"1f1f5-1f1fe","uc":"1f1f5-1f1fe","isCanonical": false},":flag_pw:":{"unicode":["1f1f5-1f1fc"],"fname":"1f1f5-1f1fc","uc":"1f1f5-1f1fc","isCanonical": true},":pw:":{"unicode":["1f1f5-1f1fc"],"fname":"1f1f5-1f1fc","uc":"1f1f5-1f1fc","isCanonical": false},":flag_pt:":{"unicode":["1f1f5-1f1f9"],"fname":"1f1f5-1f1f9","uc":"1f1f5-1f1f9","isCanonical": true},":pt:":{"unicode":["1f1f5-1f1f9"],"fname":"1f1f5-1f1f9","uc":"1f1f5-1f1f9","isCanonical": false},":flag_ps:":{"unicode":["1f1f5-1f1f8"],"fname":"1f1f5-1f1f8","uc":"1f1f5-1f1f8","isCanonical": true},":ps:":{"unicode":["1f1f5-1f1f8"],"fname":"1f1f5-1f1f8","uc":"1f1f5-1f1f8","isCanonical": false},":flag_pr:":{"unicode":["1f1f5-1f1f7"],"fname":"1f1f5-1f1f7","uc":"1f1f5-1f1f7","isCanonical": true},":pr:":{"unicode":["1f1f5-1f1f7"],"fname":"1f1f5-1f1f7","uc":"1f1f5-1f1f7","isCanonical": false},":flag_pn:":{"unicode":["1f1f5-1f1f3"],"fname":"1f1f5-1f1f3","uc":"1f1f5-1f1f3","isCanonical": true},":pn:":{"unicode":["1f1f5-1f1f3"],"fname":"1f1f5-1f1f3","uc":"1f1f5-1f1f3","isCanonical": false},":flag_pm:":{"unicode":["1f1f5-1f1f2"],"fname":"1f1f5-1f1f2","uc":"1f1f5-1f1f2","isCanonical": true},":pm:":{"unicode":["1f1f5-1f1f2"],"fname":"1f1f5-1f1f2","uc":"1f1f5-1f1f2","isCanonical": false},":flag_pl:":{"unicode":["1f1f5-1f1f1"],"fname":"1f1f5-1f1f1","uc":"1f1f5-1f1f1","isCanonical": true},":pl:":{"unicode":["1f1f5-1f1f1"],"fname":"1f1f5-1f1f1","uc":"1f1f5-1f1f1","isCanonical": false},":flag_pk:":{"unicode":["1f1f5-1f1f0"],"fname":"1f1f5-1f1f0","uc":"1f1f5-1f1f0","isCanonical": true},":pk:":{"unicode":["1f1f5-1f1f0"],"fname":"1f1f5-1f1f0","uc":"1f1f5-1f1f0","isCanonical": false},":flag_ph:":{"unicode":["1f1f5-1f1ed"],"fname":"1f1f5-1f1ed","uc":"1f1f5-1f1ed","isCanonical": true},":ph:":{"unicode":["1f1f5-1f1ed"],"fname":"1f1f5-1f1ed","uc":"1f1f5-1f1ed","isCanonical": false},":flag_pg:":{"unicode":["1f1f5-1f1ec"],"fname":"1f1f5-1f1ec","uc":"1f1f5-1f1ec","isCanonical": true},":pg:":{"unicode":["1f1f5-1f1ec"],"fname":"1f1f5-1f1ec","uc":"1f1f5-1f1ec","isCanonical": false},":flag_pf:":{"unicode":["1f1f5-1f1eb"],"fname":"1f1f5-1f1eb","uc":"1f1f5-1f1eb","isCanonical": true},":pf:":{"unicode":["1f1f5-1f1eb"],"fname":"1f1f5-1f1eb","uc":"1f1f5-1f1eb","isCanonical": false},":flag_pe:":{"unicode":["1f1f5-1f1ea"],"fname":"1f1f5-1f1ea","uc":"1f1f5-1f1ea","isCanonical": true},":pe:":{"unicode":["1f1f5-1f1ea"],"fname":"1f1f5-1f1ea","uc":"1f1f5-1f1ea","isCanonical": false},":flag_pa:":{"unicode":["1f1f5-1f1e6"],"fname":"1f1f5-1f1e6","uc":"1f1f5-1f1e6","isCanonical": true},":pa:":{"unicode":["1f1f5-1f1e6"],"fname":"1f1f5-1f1e6","uc":"1f1f5-1f1e6","isCanonical": false},":flag_om:":{"unicode":["1f1f4-1f1f2"],"fname":"1f1f4-1f1f2","uc":"1f1f4-1f1f2","isCanonical": true},":om:":{"unicode":["1f1f4-1f1f2"],"fname":"1f1f4-1f1f2","uc":"1f1f4-1f1f2","isCanonical": false},":flag_nz:":{"unicode":["1f1f3-1f1ff"],"fname":"1f1f3-1f1ff","uc":"1f1f3-1f1ff","isCanonical": true},":nz:":{"unicode":["1f1f3-1f1ff"],"fname":"1f1f3-1f1ff","uc":"1f1f3-1f1ff","isCanonical": false},":flag_nu:":{"unicode":["1f1f3-1f1fa"],"fname":"1f1f3-1f1fa","uc":"1f1f3-1f1fa","isCanonical": true},":nu:":{"unicode":["1f1f3-1f1fa"],"fname":"1f1f3-1f1fa","uc":"1f1f3-1f1fa","isCanonical": false},":flag_nr:":{"unicode":["1f1f3-1f1f7"],"fname":"1f1f3-1f1f7","uc":"1f1f3-1f1f7","isCanonical": true},":nr:":{"unicode":["1f1f3-1f1f7"],"fname":"1f1f3-1f1f7","uc":"1f1f3-1f1f7","isCanonical": false},":flag_np:":{"unicode":["1f1f3-1f1f5"],"fname":"1f1f3-1f1f5","uc":"1f1f3-1f1f5","isCanonical": true},":np:":{"unicode":["1f1f3-1f1f5"],"fname":"1f1f3-1f1f5","uc":"1f1f3-1f1f5","isCanonical": false},":flag_no:":{"unicode":["1f1f3-1f1f4"],"fname":"1f1f3-1f1f4","uc":"1f1f3-1f1f4","isCanonical": true},":no:":{"unicode":["1f1f3-1f1f4"],"fname":"1f1f3-1f1f4","uc":"1f1f3-1f1f4","isCanonical": false},":flag_nl:":{"unicode":["1f1f3-1f1f1"],"fname":"1f1f3-1f1f1","uc":"1f1f3-1f1f1","isCanonical": true},":nl:":{"unicode":["1f1f3-1f1f1"],"fname":"1f1f3-1f1f1","uc":"1f1f3-1f1f1","isCanonical": false},":flag_ni:":{"unicode":["1f1f3-1f1ee"],"fname":"1f1f3-1f1ee","uc":"1f1f3-1f1ee","isCanonical": true},":ni:":{"unicode":["1f1f3-1f1ee"],"fname":"1f1f3-1f1ee","uc":"1f1f3-1f1ee","isCanonical": false},":flag_ng:":{"unicode":["1f1f3-1f1ec"],"fname":"1f1f3-1f1ec","uc":"1f1f3-1f1ec","isCanonical": true},":nigeria:":{"unicode":["1f1f3-1f1ec"],"fname":"1f1f3-1f1ec","uc":"1f1f3-1f1ec","isCanonical": false},":flag_nf:":{"unicode":["1f1f3-1f1eb"],"fname":"1f1f3-1f1eb","uc":"1f1f3-1f1eb","isCanonical": true},":nf:":{"unicode":["1f1f3-1f1eb"],"fname":"1f1f3-1f1eb","uc":"1f1f3-1f1eb","isCanonical": false},":flag_ne:":{"unicode":["1f1f3-1f1ea"],"fname":"1f1f3-1f1ea","uc":"1f1f3-1f1ea","isCanonical": true},":ne:":{"unicode":["1f1f3-1f1ea"],"fname":"1f1f3-1f1ea","uc":"1f1f3-1f1ea","isCanonical": false},":flag_nc:":{"unicode":["1f1f3-1f1e8"],"fname":"1f1f3-1f1e8","uc":"1f1f3-1f1e8","isCanonical": true},":nc:":{"unicode":["1f1f3-1f1e8"],"fname":"1f1f3-1f1e8","uc":"1f1f3-1f1e8","isCanonical": false},":flag_na:":{"unicode":["1f1f3-1f1e6"],"fname":"1f1f3-1f1e6","uc":"1f1f3-1f1e6","isCanonical": true},":na:":{"unicode":["1f1f3-1f1e6"],"fname":"1f1f3-1f1e6","uc":"1f1f3-1f1e6","isCanonical": false},":flag_mz:":{"unicode":["1f1f2-1f1ff"],"fname":"1f1f2-1f1ff","uc":"1f1f2-1f1ff","isCanonical": true},":mz:":{"unicode":["1f1f2-1f1ff"],"fname":"1f1f2-1f1ff","uc":"1f1f2-1f1ff","isCanonical": false},":flag_my:":{"unicode":["1f1f2-1f1fe"],"fname":"1f1f2-1f1fe","uc":"1f1f2-1f1fe","isCanonical": true},":my:":{"unicode":["1f1f2-1f1fe"],"fname":"1f1f2-1f1fe","uc":"1f1f2-1f1fe","isCanonical": false},":flag_mx:":{"unicode":["1f1f2-1f1fd"],"fname":"1f1f2-1f1fd","uc":"1f1f2-1f1fd","isCanonical": true},":mx:":{"unicode":["1f1f2-1f1fd"],"fname":"1f1f2-1f1fd","uc":"1f1f2-1f1fd","isCanonical": false},":flag_mw:":{"unicode":["1f1f2-1f1fc"],"fname":"1f1f2-1f1fc","uc":"1f1f2-1f1fc","isCanonical": true},":mw:":{"unicode":["1f1f2-1f1fc"],"fname":"1f1f2-1f1fc","uc":"1f1f2-1f1fc","isCanonical": false},":flag_mv:":{"unicode":["1f1f2-1f1fb"],"fname":"1f1f2-1f1fb","uc":"1f1f2-1f1fb","isCanonical": true},":mv:":{"unicode":["1f1f2-1f1fb"],"fname":"1f1f2-1f1fb","uc":"1f1f2-1f1fb","isCanonical": false},":flag_mu:":{"unicode":["1f1f2-1f1fa"],"fname":"1f1f2-1f1fa","uc":"1f1f2-1f1fa","isCanonical": true},":mu:":{"unicode":["1f1f2-1f1fa"],"fname":"1f1f2-1f1fa","uc":"1f1f2-1f1fa","isCanonical": false},":flag_mt:":{"unicode":["1f1f2-1f1f9"],"fname":"1f1f2-1f1f9","uc":"1f1f2-1f1f9","isCanonical": true},":mt:":{"unicode":["1f1f2-1f1f9"],"fname":"1f1f2-1f1f9","uc":"1f1f2-1f1f9","isCanonical": false},":flag_ms:":{"unicode":["1f1f2-1f1f8"],"fname":"1f1f2-1f1f8","uc":"1f1f2-1f1f8","isCanonical": true},":ms:":{"unicode":["1f1f2-1f1f8"],"fname":"1f1f2-1f1f8","uc":"1f1f2-1f1f8","isCanonical": false},":flag_mr:":{"unicode":["1f1f2-1f1f7"],"fname":"1f1f2-1f1f7","uc":"1f1f2-1f1f7","isCanonical": true},":mr:":{"unicode":["1f1f2-1f1f7"],"fname":"1f1f2-1f1f7","uc":"1f1f2-1f1f7","isCanonical": false},":flag_mq:":{"unicode":["1f1f2-1f1f6"],"fname":"1f1f2-1f1f6","uc":"1f1f2-1f1f6","isCanonical": true},":mq:":{"unicode":["1f1f2-1f1f6"],"fname":"1f1f2-1f1f6","uc":"1f1f2-1f1f6","isCanonical": false},":flag_mp:":{"unicode":["1f1f2-1f1f5"],"fname":"1f1f2-1f1f5","uc":"1f1f2-1f1f5","isCanonical": true},":mp:":{"unicode":["1f1f2-1f1f5"],"fname":"1f1f2-1f1f5","uc":"1f1f2-1f1f5","isCanonical": false},":flag_mo:":{"unicode":["1f1f2-1f1f4"],"fname":"1f1f2-1f1f4","uc":"1f1f2-1f1f4","isCanonical": true},":mo:":{"unicode":["1f1f2-1f1f4"],"fname":"1f1f2-1f1f4","uc":"1f1f2-1f1f4","isCanonical": false},":flag_mn:":{"unicode":["1f1f2-1f1f3"],"fname":"1f1f2-1f1f3","uc":"1f1f2-1f1f3","isCanonical": true},":mn:":{"unicode":["1f1f2-1f1f3"],"fname":"1f1f2-1f1f3","uc":"1f1f2-1f1f3","isCanonical": false},":flag_mm:":{"unicode":["1f1f2-1f1f2"],"fname":"1f1f2-1f1f2","uc":"1f1f2-1f1f2","isCanonical": true},":mm:":{"unicode":["1f1f2-1f1f2"],"fname":"1f1f2-1f1f2","uc":"1f1f2-1f1f2","isCanonical": false},":flag_ml:":{"unicode":["1f1f2-1f1f1"],"fname":"1f1f2-1f1f1","uc":"1f1f2-1f1f1","isCanonical": true},":ml:":{"unicode":["1f1f2-1f1f1"],"fname":"1f1f2-1f1f1","uc":"1f1f2-1f1f1","isCanonical": false},":flag_mk:":{"unicode":["1f1f2-1f1f0"],"fname":"1f1f2-1f1f0","uc":"1f1f2-1f1f0","isCanonical": true},":mk:":{"unicode":["1f1f2-1f1f0"],"fname":"1f1f2-1f1f0","uc":"1f1f2-1f1f0","isCanonical": false},":flag_mh:":{"unicode":["1f1f2-1f1ed"],"fname":"1f1f2-1f1ed","uc":"1f1f2-1f1ed","isCanonical": true},":mh:":{"unicode":["1f1f2-1f1ed"],"fname":"1f1f2-1f1ed","uc":"1f1f2-1f1ed","isCanonical": false},":flag_mg:":{"unicode":["1f1f2-1f1ec"],"fname":"1f1f2-1f1ec","uc":"1f1f2-1f1ec","isCanonical": true},":mg:":{"unicode":["1f1f2-1f1ec"],"fname":"1f1f2-1f1ec","uc":"1f1f2-1f1ec","isCanonical": false},":flag_mf:":{"unicode":["1f1f2-1f1eb"],"fname":"1f1f2-1f1eb","uc":"1f1f2-1f1eb","isCanonical": true},":mf:":{"unicode":["1f1f2-1f1eb"],"fname":"1f1f2-1f1eb","uc":"1f1f2-1f1eb","isCanonical": false},":flag_me:":{"unicode":["1f1f2-1f1ea"],"fname":"1f1f2-1f1ea","uc":"1f1f2-1f1ea","isCanonical": true},":me:":{"unicode":["1f1f2-1f1ea"],"fname":"1f1f2-1f1ea","uc":"1f1f2-1f1ea","isCanonical": false},":flag_md:":{"unicode":["1f1f2-1f1e9"],"fname":"1f1f2-1f1e9","uc":"1f1f2-1f1e9","isCanonical": true},":md:":{"unicode":["1f1f2-1f1e9"],"fname":"1f1f2-1f1e9","uc":"1f1f2-1f1e9","isCanonical": false},":flag_mc:":{"unicode":["1f1f2-1f1e8"],"fname":"1f1f2-1f1e8","uc":"1f1f2-1f1e8","isCanonical": true},":mc:":{"unicode":["1f1f2-1f1e8"],"fname":"1f1f2-1f1e8","uc":"1f1f2-1f1e8","isCanonical": false},":flag_ma:":{"unicode":["1f1f2-1f1e6"],"fname":"1f1f2-1f1e6","uc":"1f1f2-1f1e6","isCanonical": true},":ma:":{"unicode":["1f1f2-1f1e6"],"fname":"1f1f2-1f1e6","uc":"1f1f2-1f1e6","isCanonical": false},":flag_ly:":{"unicode":["1f1f1-1f1fe"],"fname":"1f1f1-1f1fe","uc":"1f1f1-1f1fe","isCanonical": true},":ly:":{"unicode":["1f1f1-1f1fe"],"fname":"1f1f1-1f1fe","uc":"1f1f1-1f1fe","isCanonical": false},":flag_lv:":{"unicode":["1f1f1-1f1fb"],"fname":"1f1f1-1f1fb","uc":"1f1f1-1f1fb","isCanonical": true},":lv:":{"unicode":["1f1f1-1f1fb"],"fname":"1f1f1-1f1fb","uc":"1f1f1-1f1fb","isCanonical": false},":flag_lu:":{"unicode":["1f1f1-1f1fa"],"fname":"1f1f1-1f1fa","uc":"1f1f1-1f1fa","isCanonical": true},":lu:":{"unicode":["1f1f1-1f1fa"],"fname":"1f1f1-1f1fa","uc":"1f1f1-1f1fa","isCanonical": false},":flag_lt:":{"unicode":["1f1f1-1f1f9"],"fname":"1f1f1-1f1f9","uc":"1f1f1-1f1f9","isCanonical": true},":lt:":{"unicode":["1f1f1-1f1f9"],"fname":"1f1f1-1f1f9","uc":"1f1f1-1f1f9","isCanonical": false},":flag_ls:":{"unicode":["1f1f1-1f1f8"],"fname":"1f1f1-1f1f8","uc":"1f1f1-1f1f8","isCanonical": true},":ls:":{"unicode":["1f1f1-1f1f8"],"fname":"1f1f1-1f1f8","uc":"1f1f1-1f1f8","isCanonical": false},":flag_lr:":{"unicode":["1f1f1-1f1f7"],"fname":"1f1f1-1f1f7","uc":"1f1f1-1f1f7","isCanonical": true},":lr:":{"unicode":["1f1f1-1f1f7"],"fname":"1f1f1-1f1f7","uc":"1f1f1-1f1f7","isCanonical": false},":flag_lk:":{"unicode":["1f1f1-1f1f0"],"fname":"1f1f1-1f1f0","uc":"1f1f1-1f1f0","isCanonical": true},":lk:":{"unicode":["1f1f1-1f1f0"],"fname":"1f1f1-1f1f0","uc":"1f1f1-1f1f0","isCanonical": false},":flag_li:":{"unicode":["1f1f1-1f1ee"],"fname":"1f1f1-1f1ee","uc":"1f1f1-1f1ee","isCanonical": true},":li:":{"unicode":["1f1f1-1f1ee"],"fname":"1f1f1-1f1ee","uc":"1f1f1-1f1ee","isCanonical": false},":flag_lc:":{"unicode":["1f1f1-1f1e8"],"fname":"1f1f1-1f1e8","uc":"1f1f1-1f1e8","isCanonical": true},":lc:":{"unicode":["1f1f1-1f1e8"],"fname":"1f1f1-1f1e8","uc":"1f1f1-1f1e8","isCanonical": false},":flag_lb:":{"unicode":["1f1f1-1f1e7"],"fname":"1f1f1-1f1e7","uc":"1f1f1-1f1e7","isCanonical": true},":lb:":{"unicode":["1f1f1-1f1e7"],"fname":"1f1f1-1f1e7","uc":"1f1f1-1f1e7","isCanonical": false},":flag_la:":{"unicode":["1f1f1-1f1e6"],"fname":"1f1f1-1f1e6","uc":"1f1f1-1f1e6","isCanonical": true},":la:":{"unicode":["1f1f1-1f1e6"],"fname":"1f1f1-1f1e6","uc":"1f1f1-1f1e6","isCanonical": false},":flag_kz:":{"unicode":["1f1f0-1f1ff"],"fname":"1f1f0-1f1ff","uc":"1f1f0-1f1ff","isCanonical": true},":kz:":{"unicode":["1f1f0-1f1ff"],"fname":"1f1f0-1f1ff","uc":"1f1f0-1f1ff","isCanonical": false},":flag_ky:":{"unicode":["1f1f0-1f1fe"],"fname":"1f1f0-1f1fe","uc":"1f1f0-1f1fe","isCanonical": true},":ky:":{"unicode":["1f1f0-1f1fe"],"fname":"1f1f0-1f1fe","uc":"1f1f0-1f1fe","isCanonical": false},":flag_kw:":{"unicode":["1f1f0-1f1fc"],"fname":"1f1f0-1f1fc","uc":"1f1f0-1f1fc","isCanonical": true},":kw:":{"unicode":["1f1f0-1f1fc"],"fname":"1f1f0-1f1fc","uc":"1f1f0-1f1fc","isCanonical": false},":flag_kr:":{"unicode":["1f1f0-1f1f7"],"fname":"1f1f0-1f1f7","uc":"1f1f0-1f1f7","isCanonical": true},":kr:":{"unicode":["1f1f0-1f1f7"],"fname":"1f1f0-1f1f7","uc":"1f1f0-1f1f7","isCanonical": false},":flag_kp:":{"unicode":["1f1f0-1f1f5"],"fname":"1f1f0-1f1f5","uc":"1f1f0-1f1f5","isCanonical": true},":kp:":{"unicode":["1f1f0-1f1f5"],"fname":"1f1f0-1f1f5","uc":"1f1f0-1f1f5","isCanonical": false},":flag_kn:":{"unicode":["1f1f0-1f1f3"],"fname":"1f1f0-1f1f3","uc":"1f1f0-1f1f3","isCanonical": true},":kn:":{"unicode":["1f1f0-1f1f3"],"fname":"1f1f0-1f1f3","uc":"1f1f0-1f1f3","isCanonical": false},":flag_km:":{"unicode":["1f1f0-1f1f2"],"fname":"1f1f0-1f1f2","uc":"1f1f0-1f1f2","isCanonical": true},":km:":{"unicode":["1f1f0-1f1f2"],"fname":"1f1f0-1f1f2","uc":"1f1f0-1f1f2","isCanonical": false},":flag_ki:":{"unicode":["1f1f0-1f1ee"],"fname":"1f1f0-1f1ee","uc":"1f1f0-1f1ee","isCanonical": true},":ki:":{"unicode":["1f1f0-1f1ee"],"fname":"1f1f0-1f1ee","uc":"1f1f0-1f1ee","isCanonical": false},":flag_kh:":{"unicode":["1f1f0-1f1ed"],"fname":"1f1f0-1f1ed","uc":"1f1f0-1f1ed","isCanonical": true},":kh:":{"unicode":["1f1f0-1f1ed"],"fname":"1f1f0-1f1ed","uc":"1f1f0-1f1ed","isCanonical": false},":flag_kg:":{"unicode":["1f1f0-1f1ec"],"fname":"1f1f0-1f1ec","uc":"1f1f0-1f1ec","isCanonical": true},":kg:":{"unicode":["1f1f0-1f1ec"],"fname":"1f1f0-1f1ec","uc":"1f1f0-1f1ec","isCanonical": false},":flag_ke:":{"unicode":["1f1f0-1f1ea"],"fname":"1f1f0-1f1ea","uc":"1f1f0-1f1ea","isCanonical": true},":ke:":{"unicode":["1f1f0-1f1ea"],"fname":"1f1f0-1f1ea","uc":"1f1f0-1f1ea","isCanonical": false},":flag_jp:":{"unicode":["1f1ef-1f1f5"],"fname":"1f1ef-1f1f5","uc":"1f1ef-1f1f5","isCanonical": true},":jp:":{"unicode":["1f1ef-1f1f5"],"fname":"1f1ef-1f1f5","uc":"1f1ef-1f1f5","isCanonical": false},":flag_jo:":{"unicode":["1f1ef-1f1f4"],"fname":"1f1ef-1f1f4","uc":"1f1ef-1f1f4","isCanonical": true},":jo:":{"unicode":["1f1ef-1f1f4"],"fname":"1f1ef-1f1f4","uc":"1f1ef-1f1f4","isCanonical": false},":flag_jm:":{"unicode":["1f1ef-1f1f2"],"fname":"1f1ef-1f1f2","uc":"1f1ef-1f1f2","isCanonical": true},":jm:":{"unicode":["1f1ef-1f1f2"],"fname":"1f1ef-1f1f2","uc":"1f1ef-1f1f2","isCanonical": false},":flag_je:":{"unicode":["1f1ef-1f1ea"],"fname":"1f1ef-1f1ea","uc":"1f1ef-1f1ea","isCanonical": true},":je:":{"unicode":["1f1ef-1f1ea"],"fname":"1f1ef-1f1ea","uc":"1f1ef-1f1ea","isCanonical": false},":flag_it:":{"unicode":["1f1ee-1f1f9"],"fname":"1f1ee-1f1f9","uc":"1f1ee-1f1f9","isCanonical": true},":it:":{"unicode":["1f1ee-1f1f9"],"fname":"1f1ee-1f1f9","uc":"1f1ee-1f1f9","isCanonical": false},":flag_is:":{"unicode":["1f1ee-1f1f8"],"fname":"1f1ee-1f1f8","uc":"1f1ee-1f1f8","isCanonical": true},":is:":{"unicode":["1f1ee-1f1f8"],"fname":"1f1ee-1f1f8","uc":"1f1ee-1f1f8","isCanonical": false},":flag_ir:":{"unicode":["1f1ee-1f1f7"],"fname":"1f1ee-1f1f7","uc":"1f1ee-1f1f7","isCanonical": true},":ir:":{"unicode":["1f1ee-1f1f7"],"fname":"1f1ee-1f1f7","uc":"1f1ee-1f1f7","isCanonical": false},":flag_iq:":{"unicode":["1f1ee-1f1f6"],"fname":"1f1ee-1f1f6","uc":"1f1ee-1f1f6","isCanonical": true},":iq:":{"unicode":["1f1ee-1f1f6"],"fname":"1f1ee-1f1f6","uc":"1f1ee-1f1f6","isCanonical": false},":flag_io:":{"unicode":["1f1ee-1f1f4"],"fname":"1f1ee-1f1f4","uc":"1f1ee-1f1f4","isCanonical": true},":io:":{"unicode":["1f1ee-1f1f4"],"fname":"1f1ee-1f1f4","uc":"1f1ee-1f1f4","isCanonical": false},":flag_in:":{"unicode":["1f1ee-1f1f3"],"fname":"1f1ee-1f1f3","uc":"1f1ee-1f1f3","isCanonical": true},":in:":{"unicode":["1f1ee-1f1f3"],"fname":"1f1ee-1f1f3","uc":"1f1ee-1f1f3","isCanonical": false},":flag_im:":{"unicode":["1f1ee-1f1f2"],"fname":"1f1ee-1f1f2","uc":"1f1ee-1f1f2","isCanonical": true},":im:":{"unicode":["1f1ee-1f1f2"],"fname":"1f1ee-1f1f2","uc":"1f1ee-1f1f2","isCanonical": false},":flag_il:":{"unicode":["1f1ee-1f1f1"],"fname":"1f1ee-1f1f1","uc":"1f1ee-1f1f1","isCanonical": true},":il:":{"unicode":["1f1ee-1f1f1"],"fname":"1f1ee-1f1f1","uc":"1f1ee-1f1f1","isCanonical": false},":flag_ie:":{"unicode":["1f1ee-1f1ea"],"fname":"1f1ee-1f1ea","uc":"1f1ee-1f1ea","isCanonical": true},":ie:":{"unicode":["1f1ee-1f1ea"],"fname":"1f1ee-1f1ea","uc":"1f1ee-1f1ea","isCanonical": false},":flag_id:":{"unicode":["1f1ee-1f1e9"],"fname":"1f1ee-1f1e9","uc":"1f1ee-1f1e9","isCanonical": true},":indonesia:":{"unicode":["1f1ee-1f1e9"],"fname":"1f1ee-1f1e9","uc":"1f1ee-1f1e9","isCanonical": false},":flag_ic:":{"unicode":["1f1ee-1f1e8"],"fname":"1f1ee-1f1e8","uc":"1f1ee-1f1e8","isCanonical": true},":ic:":{"unicode":["1f1ee-1f1e8"],"fname":"1f1ee-1f1e8","uc":"1f1ee-1f1e8","isCanonical": false},":flag_hu:":{"unicode":["1f1ed-1f1fa"],"fname":"1f1ed-1f1fa","uc":"1f1ed-1f1fa","isCanonical": true},":hu:":{"unicode":["1f1ed-1f1fa"],"fname":"1f1ed-1f1fa","uc":"1f1ed-1f1fa","isCanonical": false},":flag_ht:":{"unicode":["1f1ed-1f1f9"],"fname":"1f1ed-1f1f9","uc":"1f1ed-1f1f9","isCanonical": true},":ht:":{"unicode":["1f1ed-1f1f9"],"fname":"1f1ed-1f1f9","uc":"1f1ed-1f1f9","isCanonical": false},":flag_hr:":{"unicode":["1f1ed-1f1f7"],"fname":"1f1ed-1f1f7","uc":"1f1ed-1f1f7","isCanonical": true},":hr:":{"unicode":["1f1ed-1f1f7"],"fname":"1f1ed-1f1f7","uc":"1f1ed-1f1f7","isCanonical": false},":flag_hn:":{"unicode":["1f1ed-1f1f3"],"fname":"1f1ed-1f1f3","uc":"1f1ed-1f1f3","isCanonical": true},":hn:":{"unicode":["1f1ed-1f1f3"],"fname":"1f1ed-1f1f3","uc":"1f1ed-1f1f3","isCanonical": false},":flag_hm:":{"unicode":["1f1ed-1f1f2"],"fname":"1f1ed-1f1f2","uc":"1f1ed-1f1f2","isCanonical": true},":hm:":{"unicode":["1f1ed-1f1f2"],"fname":"1f1ed-1f1f2","uc":"1f1ed-1f1f2","isCanonical": false},":flag_hk:":{"unicode":["1f1ed-1f1f0"],"fname":"1f1ed-1f1f0","uc":"1f1ed-1f1f0","isCanonical": true},":hk:":{"unicode":["1f1ed-1f1f0"],"fname":"1f1ed-1f1f0","uc":"1f1ed-1f1f0","isCanonical": false},":flag_gy:":{"unicode":["1f1ec-1f1fe"],"fname":"1f1ec-1f1fe","uc":"1f1ec-1f1fe","isCanonical": true},":gy:":{"unicode":["1f1ec-1f1fe"],"fname":"1f1ec-1f1fe","uc":"1f1ec-1f1fe","isCanonical": false},":flag_gw:":{"unicode":["1f1ec-1f1fc"],"fname":"1f1ec-1f1fc","uc":"1f1ec-1f1fc","isCanonical": true},":gw:":{"unicode":["1f1ec-1f1fc"],"fname":"1f1ec-1f1fc","uc":"1f1ec-1f1fc","isCanonical": false},":flag_gu:":{"unicode":["1f1ec-1f1fa"],"fname":"1f1ec-1f1fa","uc":"1f1ec-1f1fa","isCanonical": true},":gu:":{"unicode":["1f1ec-1f1fa"],"fname":"1f1ec-1f1fa","uc":"1f1ec-1f1fa","isCanonical": false},":flag_gt:":{"unicode":["1f1ec-1f1f9"],"fname":"1f1ec-1f1f9","uc":"1f1ec-1f1f9","isCanonical": true},":gt:":{"unicode":["1f1ec-1f1f9"],"fname":"1f1ec-1f1f9","uc":"1f1ec-1f1f9","isCanonical": false},":flag_gs:":{"unicode":["1f1ec-1f1f8"],"fname":"1f1ec-1f1f8","uc":"1f1ec-1f1f8","isCanonical": true},":gs:":{"unicode":["1f1ec-1f1f8"],"fname":"1f1ec-1f1f8","uc":"1f1ec-1f1f8","isCanonical": false},":flag_gr:":{"unicode":["1f1ec-1f1f7"],"fname":"1f1ec-1f1f7","uc":"1f1ec-1f1f7","isCanonical": true},":gr:":{"unicode":["1f1ec-1f1f7"],"fname":"1f1ec-1f1f7","uc":"1f1ec-1f1f7","isCanonical": false},":flag_gq:":{"unicode":["1f1ec-1f1f6"],"fname":"1f1ec-1f1f6","uc":"1f1ec-1f1f6","isCanonical": true},":gq:":{"unicode":["1f1ec-1f1f6"],"fname":"1f1ec-1f1f6","uc":"1f1ec-1f1f6","isCanonical": false},":flag_gp:":{"unicode":["1f1ec-1f1f5"],"fname":"1f1ec-1f1f5","uc":"1f1ec-1f1f5","isCanonical": true},":gp:":{"unicode":["1f1ec-1f1f5"],"fname":"1f1ec-1f1f5","uc":"1f1ec-1f1f5","isCanonical": false},":flag_gn:":{"unicode":["1f1ec-1f1f3"],"fname":"1f1ec-1f1f3","uc":"1f1ec-1f1f3","isCanonical": true},":gn:":{"unicode":["1f1ec-1f1f3"],"fname":"1f1ec-1f1f3","uc":"1f1ec-1f1f3","isCanonical": false},":flag_gm:":{"unicode":["1f1ec-1f1f2"],"fname":"1f1ec-1f1f2","uc":"1f1ec-1f1f2","isCanonical": true},":gm:":{"unicode":["1f1ec-1f1f2"],"fname":"1f1ec-1f1f2","uc":"1f1ec-1f1f2","isCanonical": false},":flag_gl:":{"unicode":["1f1ec-1f1f1"],"fname":"1f1ec-1f1f1","uc":"1f1ec-1f1f1","isCanonical": true},":gl:":{"unicode":["1f1ec-1f1f1"],"fname":"1f1ec-1f1f1","uc":"1f1ec-1f1f1","isCanonical": false},":flag_gi:":{"unicode":["1f1ec-1f1ee"],"fname":"1f1ec-1f1ee","uc":"1f1ec-1f1ee","isCanonical": true},":gi:":{"unicode":["1f1ec-1f1ee"],"fname":"1f1ec-1f1ee","uc":"1f1ec-1f1ee","isCanonical": false},":flag_gh:":{"unicode":["1f1ec-1f1ed"],"fname":"1f1ec-1f1ed","uc":"1f1ec-1f1ed","isCanonical": true},":gh:":{"unicode":["1f1ec-1f1ed"],"fname":"1f1ec-1f1ed","uc":"1f1ec-1f1ed","isCanonical": false},":flag_gg:":{"unicode":["1f1ec-1f1ec"],"fname":"1f1ec-1f1ec","uc":"1f1ec-1f1ec","isCanonical": true},":gg:":{"unicode":["1f1ec-1f1ec"],"fname":"1f1ec-1f1ec","uc":"1f1ec-1f1ec","isCanonical": false},":flag_gf:":{"unicode":["1f1ec-1f1eb"],"fname":"1f1ec-1f1eb","uc":"1f1ec-1f1eb","isCanonical": true},":gf:":{"unicode":["1f1ec-1f1eb"],"fname":"1f1ec-1f1eb","uc":"1f1ec-1f1eb","isCanonical": false},":flag_ge:":{"unicode":["1f1ec-1f1ea"],"fname":"1f1ec-1f1ea","uc":"1f1ec-1f1ea","isCanonical": true},":ge:":{"unicode":["1f1ec-1f1ea"],"fname":"1f1ec-1f1ea","uc":"1f1ec-1f1ea","isCanonical": false},":flag_gd:":{"unicode":["1f1ec-1f1e9"],"fname":"1f1ec-1f1e9","uc":"1f1ec-1f1e9","isCanonical": true},":gd:":{"unicode":["1f1ec-1f1e9"],"fname":"1f1ec-1f1e9","uc":"1f1ec-1f1e9","isCanonical": false},":flag_gb:":{"unicode":["1f1ec-1f1e7"],"fname":"1f1ec-1f1e7","uc":"1f1ec-1f1e7","isCanonical": true},":gb:":{"unicode":["1f1ec-1f1e7"],"fname":"1f1ec-1f1e7","uc":"1f1ec-1f1e7","isCanonical": false},":flag_ga:":{"unicode":["1f1ec-1f1e6"],"fname":"1f1ec-1f1e6","uc":"1f1ec-1f1e6","isCanonical": true},":ga:":{"unicode":["1f1ec-1f1e6"],"fname":"1f1ec-1f1e6","uc":"1f1ec-1f1e6","isCanonical": false},":flag_fr:":{"unicode":["1f1eb-1f1f7"],"fname":"1f1eb-1f1f7","uc":"1f1eb-1f1f7","isCanonical": true},":fr:":{"unicode":["1f1eb-1f1f7"],"fname":"1f1eb-1f1f7","uc":"1f1eb-1f1f7","isCanonical": false},":flag_fo:":{"unicode":["1f1eb-1f1f4"],"fname":"1f1eb-1f1f4","uc":"1f1eb-1f1f4","isCanonical": true},":fo:":{"unicode":["1f1eb-1f1f4"],"fname":"1f1eb-1f1f4","uc":"1f1eb-1f1f4","isCanonical": false},":flag_fm:":{"unicode":["1f1eb-1f1f2"],"fname":"1f1eb-1f1f2","uc":"1f1eb-1f1f2","isCanonical": true},":fm:":{"unicode":["1f1eb-1f1f2"],"fname":"1f1eb-1f1f2","uc":"1f1eb-1f1f2","isCanonical": false},":flag_fk:":{"unicode":["1f1eb-1f1f0"],"fname":"1f1eb-1f1f0","uc":"1f1eb-1f1f0","isCanonical": true},":fk:":{"unicode":["1f1eb-1f1f0"],"fname":"1f1eb-1f1f0","uc":"1f1eb-1f1f0","isCanonical": false},":flag_fj:":{"unicode":["1f1eb-1f1ef"],"fname":"1f1eb-1f1ef","uc":"1f1eb-1f1ef","isCanonical": true},":fj:":{"unicode":["1f1eb-1f1ef"],"fname":"1f1eb-1f1ef","uc":"1f1eb-1f1ef","isCanonical": false},":flag_fi:":{"unicode":["1f1eb-1f1ee"],"fname":"1f1eb-1f1ee","uc":"1f1eb-1f1ee","isCanonical": true},":fi:":{"unicode":["1f1eb-1f1ee"],"fname":"1f1eb-1f1ee","uc":"1f1eb-1f1ee","isCanonical": false},":flag_eu:":{"unicode":["1f1ea-1f1fa"],"fname":"1f1ea-1f1fa","uc":"1f1ea-1f1fa","isCanonical": true},":eu:":{"unicode":["1f1ea-1f1fa"],"fname":"1f1ea-1f1fa","uc":"1f1ea-1f1fa","isCanonical": false},":flag_et:":{"unicode":["1f1ea-1f1f9"],"fname":"1f1ea-1f1f9","uc":"1f1ea-1f1f9","isCanonical": true},":et:":{"unicode":["1f1ea-1f1f9"],"fname":"1f1ea-1f1f9","uc":"1f1ea-1f1f9","isCanonical": false},":flag_es:":{"unicode":["1f1ea-1f1f8"],"fname":"1f1ea-1f1f8","uc":"1f1ea-1f1f8","isCanonical": true},":es:":{"unicode":["1f1ea-1f1f8"],"fname":"1f1ea-1f1f8","uc":"1f1ea-1f1f8","isCanonical": false},":flag_er:":{"unicode":["1f1ea-1f1f7"],"fname":"1f1ea-1f1f7","uc":"1f1ea-1f1f7","isCanonical": true},":er:":{"unicode":["1f1ea-1f1f7"],"fname":"1f1ea-1f1f7","uc":"1f1ea-1f1f7","isCanonical": false},":flag_eh:":{"unicode":["1f1ea-1f1ed"],"fname":"1f1ea-1f1ed","uc":"1f1ea-1f1ed","isCanonical": true},":eh:":{"unicode":["1f1ea-1f1ed"],"fname":"1f1ea-1f1ed","uc":"1f1ea-1f1ed","isCanonical": false},":flag_eg:":{"unicode":["1f1ea-1f1ec"],"fname":"1f1ea-1f1ec","uc":"1f1ea-1f1ec","isCanonical": true},":eg:":{"unicode":["1f1ea-1f1ec"],"fname":"1f1ea-1f1ec","uc":"1f1ea-1f1ec","isCanonical": false},":flag_ee:":{"unicode":["1f1ea-1f1ea"],"fname":"1f1ea-1f1ea","uc":"1f1ea-1f1ea","isCanonical": true},":ee:":{"unicode":["1f1ea-1f1ea"],"fname":"1f1ea-1f1ea","uc":"1f1ea-1f1ea","isCanonical": false},":flag_ec:":{"unicode":["1f1ea-1f1e8"],"fname":"1f1ea-1f1e8","uc":"1f1ea-1f1e8","isCanonical": true},":ec:":{"unicode":["1f1ea-1f1e8"],"fname":"1f1ea-1f1e8","uc":"1f1ea-1f1e8","isCanonical": false},":flag_ea:":{"unicode":["1f1ea-1f1e6"],"fname":"1f1ea-1f1e6","uc":"1f1ea-1f1e6","isCanonical": true},":ea:":{"unicode":["1f1ea-1f1e6"],"fname":"1f1ea-1f1e6","uc":"1f1ea-1f1e6","isCanonical": false},":flag_dz:":{"unicode":["1f1e9-1f1ff"],"fname":"1f1e9-1f1ff","uc":"1f1e9-1f1ff","isCanonical": true},":dz:":{"unicode":["1f1e9-1f1ff"],"fname":"1f1e9-1f1ff","uc":"1f1e9-1f1ff","isCanonical": false},":flag_do:":{"unicode":["1f1e9-1f1f4"],"fname":"1f1e9-1f1f4","uc":"1f1e9-1f1f4","isCanonical": true},":do:":{"unicode":["1f1e9-1f1f4"],"fname":"1f1e9-1f1f4","uc":"1f1e9-1f1f4","isCanonical": false},":flag_dm:":{"unicode":["1f1e9-1f1f2"],"fname":"1f1e9-1f1f2","uc":"1f1e9-1f1f2","isCanonical": true},":dm:":{"unicode":["1f1e9-1f1f2"],"fname":"1f1e9-1f1f2","uc":"1f1e9-1f1f2","isCanonical": false},":flag_dk:":{"unicode":["1f1e9-1f1f0"],"fname":"1f1e9-1f1f0","uc":"1f1e9-1f1f0","isCanonical": true},":dk:":{"unicode":["1f1e9-1f1f0"],"fname":"1f1e9-1f1f0","uc":"1f1e9-1f1f0","isCanonical": false},":flag_dj:":{"unicode":["1f1e9-1f1ef"],"fname":"1f1e9-1f1ef","uc":"1f1e9-1f1ef","isCanonical": true},":dj:":{"unicode":["1f1e9-1f1ef"],"fname":"1f1e9-1f1ef","uc":"1f1e9-1f1ef","isCanonical": false},":flag_dg:":{"unicode":["1f1e9-1f1ec"],"fname":"1f1e9-1f1ec","uc":"1f1e9-1f1ec","isCanonical": true},":dg:":{"unicode":["1f1e9-1f1ec"],"fname":"1f1e9-1f1ec","uc":"1f1e9-1f1ec","isCanonical": false},":flag_de:":{"unicode":["1f1e9-1f1ea"],"fname":"1f1e9-1f1ea","uc":"1f1e9-1f1ea","isCanonical": true},":de:":{"unicode":["1f1e9-1f1ea"],"fname":"1f1e9-1f1ea","uc":"1f1e9-1f1ea","isCanonical": false},":flag_cz:":{"unicode":["1f1e8-1f1ff"],"fname":"1f1e8-1f1ff","uc":"1f1e8-1f1ff","isCanonical": true},":cz:":{"unicode":["1f1e8-1f1ff"],"fname":"1f1e8-1f1ff","uc":"1f1e8-1f1ff","isCanonical": false},":flag_cy:":{"unicode":["1f1e8-1f1fe"],"fname":"1f1e8-1f1fe","uc":"1f1e8-1f1fe","isCanonical": true},":cy:":{"unicode":["1f1e8-1f1fe"],"fname":"1f1e8-1f1fe","uc":"1f1e8-1f1fe","isCanonical": false},":flag_cx:":{"unicode":["1f1e8-1f1fd"],"fname":"1f1e8-1f1fd","uc":"1f1e8-1f1fd","isCanonical": true},":cx:":{"unicode":["1f1e8-1f1fd"],"fname":"1f1e8-1f1fd","uc":"1f1e8-1f1fd","isCanonical": false},":flag_cw:":{"unicode":["1f1e8-1f1fc"],"fname":"1f1e8-1f1fc","uc":"1f1e8-1f1fc","isCanonical": true},":cw:":{"unicode":["1f1e8-1f1fc"],"fname":"1f1e8-1f1fc","uc":"1f1e8-1f1fc","isCanonical": false},":flag_cv:":{"unicode":["1f1e8-1f1fb"],"fname":"1f1e8-1f1fb","uc":"1f1e8-1f1fb","isCanonical": true},":cv:":{"unicode":["1f1e8-1f1fb"],"fname":"1f1e8-1f1fb","uc":"1f1e8-1f1fb","isCanonical": false},":flag_cu:":{"unicode":["1f1e8-1f1fa"],"fname":"1f1e8-1f1fa","uc":"1f1e8-1f1fa","isCanonical": true},":cu:":{"unicode":["1f1e8-1f1fa"],"fname":"1f1e8-1f1fa","uc":"1f1e8-1f1fa","isCanonical": false},":flag_cr:":{"unicode":["1f1e8-1f1f7"],"fname":"1f1e8-1f1f7","uc":"1f1e8-1f1f7","isCanonical": true},":cr:":{"unicode":["1f1e8-1f1f7"],"fname":"1f1e8-1f1f7","uc":"1f1e8-1f1f7","isCanonical": false},":flag_cp:":{"unicode":["1f1e8-1f1f5"],"fname":"1f1e8-1f1f5","uc":"1f1e8-1f1f5","isCanonical": true},":cp:":{"unicode":["1f1e8-1f1f5"],"fname":"1f1e8-1f1f5","uc":"1f1e8-1f1f5","isCanonical": false},":flag_co:":{"unicode":["1f1e8-1f1f4"],"fname":"1f1e8-1f1f4","uc":"1f1e8-1f1f4","isCanonical": true},":co:":{"unicode":["1f1e8-1f1f4"],"fname":"1f1e8-1f1f4","uc":"1f1e8-1f1f4","isCanonical": false},":flag_cn:":{"unicode":["1f1e8-1f1f3"],"fname":"1f1e8-1f1f3","uc":"1f1e8-1f1f3","isCanonical": true},":cn:":{"unicode":["1f1e8-1f1f3"],"fname":"1f1e8-1f1f3","uc":"1f1e8-1f1f3","isCanonical": false},":flag_cm:":{"unicode":["1f1e8-1f1f2"],"fname":"1f1e8-1f1f2","uc":"1f1e8-1f1f2","isCanonical": true},":cm:":{"unicode":["1f1e8-1f1f2"],"fname":"1f1e8-1f1f2","uc":"1f1e8-1f1f2","isCanonical": false},":flag_cl:":{"unicode":["1f1e8-1f1f1"],"fname":"1f1e8-1f1f1","uc":"1f1e8-1f1f1","isCanonical": true},":chile:":{"unicode":["1f1e8-1f1f1"],"fname":"1f1e8-1f1f1","uc":"1f1e8-1f1f1","isCanonical": false},":flag_ck:":{"unicode":["1f1e8-1f1f0"],"fname":"1f1e8-1f1f0","uc":"1f1e8-1f1f0","isCanonical": true},":ck:":{"unicode":["1f1e8-1f1f0"],"fname":"1f1e8-1f1f0","uc":"1f1e8-1f1f0","isCanonical": false},":flag_ci:":{"unicode":["1f1e8-1f1ee"],"fname":"1f1e8-1f1ee","uc":"1f1e8-1f1ee","isCanonical": true},":ci:":{"unicode":["1f1e8-1f1ee"],"fname":"1f1e8-1f1ee","uc":"1f1e8-1f1ee","isCanonical": false},":flag_ch:":{"unicode":["1f1e8-1f1ed"],"fname":"1f1e8-1f1ed","uc":"1f1e8-1f1ed","isCanonical": true},":ch:":{"unicode":["1f1e8-1f1ed"],"fname":"1f1e8-1f1ed","uc":"1f1e8-1f1ed","isCanonical": false},":flag_cg:":{"unicode":["1f1e8-1f1ec"],"fname":"1f1e8-1f1ec","uc":"1f1e8-1f1ec","isCanonical": true},":cg:":{"unicode":["1f1e8-1f1ec"],"fname":"1f1e8-1f1ec","uc":"1f1e8-1f1ec","isCanonical": false},":flag_cf:":{"unicode":["1f1e8-1f1eb"],"fname":"1f1e8-1f1eb","uc":"1f1e8-1f1eb","isCanonical": true},":cf:":{"unicode":["1f1e8-1f1eb"],"fname":"1f1e8-1f1eb","uc":"1f1e8-1f1eb","isCanonical": false},":flag_cd:":{"unicode":["1f1e8-1f1e9"],"fname":"1f1e8-1f1e9","uc":"1f1e8-1f1e9","isCanonical": true},":congo:":{"unicode":["1f1e8-1f1e9"],"fname":"1f1e8-1f1e9","uc":"1f1e8-1f1e9","isCanonical": false},":flag_cc:":{"unicode":["1f1e8-1f1e8"],"fname":"1f1e8-1f1e8","uc":"1f1e8-1f1e8","isCanonical": true},":cc:":{"unicode":["1f1e8-1f1e8"],"fname":"1f1e8-1f1e8","uc":"1f1e8-1f1e8","isCanonical": false},":flag_ca:":{"unicode":["1f1e8-1f1e6"],"fname":"1f1e8-1f1e6","uc":"1f1e8-1f1e6","isCanonical": true},":ca:":{"unicode":["1f1e8-1f1e6"],"fname":"1f1e8-1f1e6","uc":"1f1e8-1f1e6","isCanonical": false},":flag_bz:":{"unicode":["1f1e7-1f1ff"],"fname":"1f1e7-1f1ff","uc":"1f1e7-1f1ff","isCanonical": true},":bz:":{"unicode":["1f1e7-1f1ff"],"fname":"1f1e7-1f1ff","uc":"1f1e7-1f1ff","isCanonical": false},":flag_by:":{"unicode":["1f1e7-1f1fe"],"fname":"1f1e7-1f1fe","uc":"1f1e7-1f1fe","isCanonical": true},":by:":{"unicode":["1f1e7-1f1fe"],"fname":"1f1e7-1f1fe","uc":"1f1e7-1f1fe","isCanonical": false},":flag_bw:":{"unicode":["1f1e7-1f1fc"],"fname":"1f1e7-1f1fc","uc":"1f1e7-1f1fc","isCanonical": true},":bw:":{"unicode":["1f1e7-1f1fc"],"fname":"1f1e7-1f1fc","uc":"1f1e7-1f1fc","isCanonical": false},":flag_bv:":{"unicode":["1f1e7-1f1fb"],"fname":"1f1e7-1f1fb","uc":"1f1e7-1f1fb","isCanonical": true},":bv:":{"unicode":["1f1e7-1f1fb"],"fname":"1f1e7-1f1fb","uc":"1f1e7-1f1fb","isCanonical": false},":flag_bt:":{"unicode":["1f1e7-1f1f9"],"fname":"1f1e7-1f1f9","uc":"1f1e7-1f1f9","isCanonical": true},":bt:":{"unicode":["1f1e7-1f1f9"],"fname":"1f1e7-1f1f9","uc":"1f1e7-1f1f9","isCanonical": false},":flag_bs:":{"unicode":["1f1e7-1f1f8"],"fname":"1f1e7-1f1f8","uc":"1f1e7-1f1f8","isCanonical": true},":bs:":{"unicode":["1f1e7-1f1f8"],"fname":"1f1e7-1f1f8","uc":"1f1e7-1f1f8","isCanonical": false},":flag_br:":{"unicode":["1f1e7-1f1f7"],"fname":"1f1e7-1f1f7","uc":"1f1e7-1f1f7","isCanonical": true},":br:":{"unicode":["1f1e7-1f1f7"],"fname":"1f1e7-1f1f7","uc":"1f1e7-1f1f7","isCanonical": false},":flag_bq:":{"unicode":["1f1e7-1f1f6"],"fname":"1f1e7-1f1f6","uc":"1f1e7-1f1f6","isCanonical": true},":bq:":{"unicode":["1f1e7-1f1f6"],"fname":"1f1e7-1f1f6","uc":"1f1e7-1f1f6","isCanonical": false},":flag_bo:":{"unicode":["1f1e7-1f1f4"],"fname":"1f1e7-1f1f4","uc":"1f1e7-1f1f4","isCanonical": true},":bo:":{"unicode":["1f1e7-1f1f4"],"fname":"1f1e7-1f1f4","uc":"1f1e7-1f1f4","isCanonical": false},":flag_bn:":{"unicode":["1f1e7-1f1f3"],"fname":"1f1e7-1f1f3","uc":"1f1e7-1f1f3","isCanonical": true},":bn:":{"unicode":["1f1e7-1f1f3"],"fname":"1f1e7-1f1f3","uc":"1f1e7-1f1f3","isCanonical": false},":flag_bm:":{"unicode":["1f1e7-1f1f2"],"fname":"1f1e7-1f1f2","uc":"1f1e7-1f1f2","isCanonical": true},":bm:":{"unicode":["1f1e7-1f1f2"],"fname":"1f1e7-1f1f2","uc":"1f1e7-1f1f2","isCanonical": false},":flag_bl:":{"unicode":["1f1e7-1f1f1"],"fname":"1f1e7-1f1f1","uc":"1f1e7-1f1f1","isCanonical": true},":bl:":{"unicode":["1f1e7-1f1f1"],"fname":"1f1e7-1f1f1","uc":"1f1e7-1f1f1","isCanonical": false},":flag_bj:":{"unicode":["1f1e7-1f1ef"],"fname":"1f1e7-1f1ef","uc":"1f1e7-1f1ef","isCanonical": true},":bj:":{"unicode":["1f1e7-1f1ef"],"fname":"1f1e7-1f1ef","uc":"1f1e7-1f1ef","isCanonical": false},":flag_bi:":{"unicode":["1f1e7-1f1ee"],"fname":"1f1e7-1f1ee","uc":"1f1e7-1f1ee","isCanonical": true},":bi:":{"unicode":["1f1e7-1f1ee"],"fname":"1f1e7-1f1ee","uc":"1f1e7-1f1ee","isCanonical": false},":flag_bh:":{"unicode":["1f1e7-1f1ed"],"fname":"1f1e7-1f1ed","uc":"1f1e7-1f1ed","isCanonical": true},":bh:":{"unicode":["1f1e7-1f1ed"],"fname":"1f1e7-1f1ed","uc":"1f1e7-1f1ed","isCanonical": false},":flag_bg:":{"unicode":["1f1e7-1f1ec"],"fname":"1f1e7-1f1ec","uc":"1f1e7-1f1ec","isCanonical": true},":bg:":{"unicode":["1f1e7-1f1ec"],"fname":"1f1e7-1f1ec","uc":"1f1e7-1f1ec","isCanonical": false},":flag_bf:":{"unicode":["1f1e7-1f1eb"],"fname":"1f1e7-1f1eb","uc":"1f1e7-1f1eb","isCanonical": true},":bf:":{"unicode":["1f1e7-1f1eb"],"fname":"1f1e7-1f1eb","uc":"1f1e7-1f1eb","isCanonical": false},":flag_be:":{"unicode":["1f1e7-1f1ea"],"fname":"1f1e7-1f1ea","uc":"1f1e7-1f1ea","isCanonical": true},":be:":{"unicode":["1f1e7-1f1ea"],"fname":"1f1e7-1f1ea","uc":"1f1e7-1f1ea","isCanonical": false},":flag_bd:":{"unicode":["1f1e7-1f1e9"],"fname":"1f1e7-1f1e9","uc":"1f1e7-1f1e9","isCanonical": true},":bd:":{"unicode":["1f1e7-1f1e9"],"fname":"1f1e7-1f1e9","uc":"1f1e7-1f1e9","isCanonical": false},":flag_bb:":{"unicode":["1f1e7-1f1e7"],"fname":"1f1e7-1f1e7","uc":"1f1e7-1f1e7","isCanonical": true},":bb:":{"unicode":["1f1e7-1f1e7"],"fname":"1f1e7-1f1e7","uc":"1f1e7-1f1e7","isCanonical": false},":flag_ba:":{"unicode":["1f1e7-1f1e6"],"fname":"1f1e7-1f1e6","uc":"1f1e7-1f1e6","isCanonical": true},":ba:":{"unicode":["1f1e7-1f1e6"],"fname":"1f1e7-1f1e6","uc":"1f1e7-1f1e6","isCanonical": false},":flag_az:":{"unicode":["1f1e6-1f1ff"],"fname":"1f1e6-1f1ff","uc":"1f1e6-1f1ff","isCanonical": true},":az:":{"unicode":["1f1e6-1f1ff"],"fname":"1f1e6-1f1ff","uc":"1f1e6-1f1ff","isCanonical": false},":flag_ax:":{"unicode":["1f1e6-1f1fd"],"fname":"1f1e6-1f1fd","uc":"1f1e6-1f1fd","isCanonical": true},":ax:":{"unicode":["1f1e6-1f1fd"],"fname":"1f1e6-1f1fd","uc":"1f1e6-1f1fd","isCanonical": false},":flag_aw:":{"unicode":["1f1e6-1f1fc"],"fname":"1f1e6-1f1fc","uc":"1f1e6-1f1fc","isCanonical": true},":aw:":{"unicode":["1f1e6-1f1fc"],"fname":"1f1e6-1f1fc","uc":"1f1e6-1f1fc","isCanonical": false},":flag_au:":{"unicode":["1f1e6-1f1fa"],"fname":"1f1e6-1f1fa","uc":"1f1e6-1f1fa","isCanonical": true},":au:":{"unicode":["1f1e6-1f1fa"],"fname":"1f1e6-1f1fa","uc":"1f1e6-1f1fa","isCanonical": false},":flag_at:":{"unicode":["1f1e6-1f1f9"],"fname":"1f1e6-1f1f9","uc":"1f1e6-1f1f9","isCanonical": true},":at:":{"unicode":["1f1e6-1f1f9"],"fname":"1f1e6-1f1f9","uc":"1f1e6-1f1f9","isCanonical": false},":flag_as:":{"unicode":["1f1e6-1f1f8"],"fname":"1f1e6-1f1f8","uc":"1f1e6-1f1f8","isCanonical": true},":as:":{"unicode":["1f1e6-1f1f8"],"fname":"1f1e6-1f1f8","uc":"1f1e6-1f1f8","isCanonical": false},":flag_ar:":{"unicode":["1f1e6-1f1f7"],"fname":"1f1e6-1f1f7","uc":"1f1e6-1f1f7","isCanonical": true},":ar:":{"unicode":["1f1e6-1f1f7"],"fname":"1f1e6-1f1f7","uc":"1f1e6-1f1f7","isCanonical": false},":flag_aq:":{"unicode":["1f1e6-1f1f6"],"fname":"1f1e6-1f1f6","uc":"1f1e6-1f1f6","isCanonical": true},":aq:":{"unicode":["1f1e6-1f1f6"],"fname":"1f1e6-1f1f6","uc":"1f1e6-1f1f6","isCanonical": false},":flag_ao:":{"unicode":["1f1e6-1f1f4"],"fname":"1f1e6-1f1f4","uc":"1f1e6-1f1f4","isCanonical": true},":ao:":{"unicode":["1f1e6-1f1f4"],"fname":"1f1e6-1f1f4","uc":"1f1e6-1f1f4","isCanonical": false},":flag_am:":{"unicode":["1f1e6-1f1f2"],"fname":"1f1e6-1f1f2","uc":"1f1e6-1f1f2","isCanonical": true},":am:":{"unicode":["1f1e6-1f1f2"],"fname":"1f1e6-1f1f2","uc":"1f1e6-1f1f2","isCanonical": false},":flag_al:":{"unicode":["1f1e6-1f1f1"],"fname":"1f1e6-1f1f1","uc":"1f1e6-1f1f1","isCanonical": true},":al:":{"unicode":["1f1e6-1f1f1"],"fname":"1f1e6-1f1f1","uc":"1f1e6-1f1f1","isCanonical": false},":flag_ai:":{"unicode":["1f1e6-1f1ee"],"fname":"1f1e6-1f1ee","uc":"1f1e6-1f1ee","isCanonical": true},":ai:":{"unicode":["1f1e6-1f1ee"],"fname":"1f1e6-1f1ee","uc":"1f1e6-1f1ee","isCanonical": false},":flag_ag:":{"unicode":["1f1e6-1f1ec"],"fname":"1f1e6-1f1ec","uc":"1f1e6-1f1ec","isCanonical": true},":ag:":{"unicode":["1f1e6-1f1ec"],"fname":"1f1e6-1f1ec","uc":"1f1e6-1f1ec","isCanonical": false},":flag_af:":{"unicode":["1f1e6-1f1eb"],"fname":"1f1e6-1f1eb","uc":"1f1e6-1f1eb","isCanonical": true},":af:":{"unicode":["1f1e6-1f1eb"],"fname":"1f1e6-1f1eb","uc":"1f1e6-1f1eb","isCanonical": false},":flag_ae:":{"unicode":["1f1e6-1f1ea"],"fname":"1f1e6-1f1ea","uc":"1f1e6-1f1ea","isCanonical": true},":ae:":{"unicode":["1f1e6-1f1ea"],"fname":"1f1e6-1f1ea","uc":"1f1e6-1f1ea","isCanonical": false},":flag_ad:":{"unicode":["1f1e6-1f1e9"],"fname":"1f1e6-1f1e9","uc":"1f1e6-1f1e9","isCanonical": true},":ad:":{"unicode":["1f1e6-1f1e9"],"fname":"1f1e6-1f1e9","uc":"1f1e6-1f1e9","isCanonical": false},":flag_ac:":{"unicode":["1f1e6-1f1e8"],"fname":"1f1e6-1f1e8","uc":"1f1e6-1f1e8","isCanonical": true},":ac:":{"unicode":["1f1e6-1f1e8"],"fname":"1f1e6-1f1e8","uc":"1f1e6-1f1e8","isCanonical": false},":mahjong:":{"unicode":["1f004-fe0f","1f004"],"fname":"1f004","uc":"1f004","isCanonical": true},":parking:":{"unicode":["1f17f-fe0f","1f17f"],"fname":"1f17f","uc":"1f17f","isCanonical": true},":sa:":{"unicode":["1f202-fe0f","1f202"],"fname":"1f202","uc":"1f202","isCanonical": true},":u7121:":{"unicode":["1f21a-fe0f","1f21a"],"fname":"1f21a","uc":"1f21a","isCanonical": true},":u6307:":{"unicode":["1f22f-fe0f","1f22f"],"fname":"1f22f","uc":"1f22f","isCanonical": true},":u6708:":{"unicode":["1f237-fe0f","1f237"],"fname":"1f237","uc":"1f237","isCanonical": true},":film_frames:":{"unicode":["1f39e-fe0f","1f39e"],"fname":"1f39e","uc":"1f39e","isCanonical": true},":tickets:":{"unicode":["1f39f-fe0f","1f39f"],"fname":"1f39f","uc":"1f39f","isCanonical": true},":admission_tickets:":{"unicode":["1f39f-fe0f","1f39f"],"fname":"1f39f","uc":"1f39f","isCanonical": false},":lifter:":{"unicode":["1f3cb-fe0f","1f3cb"],"fname":"1f3cb","uc":"1f3cb","isCanonical": true},":weight_lifter:":{"unicode":["1f3cb-fe0f","1f3cb"],"fname":"1f3cb","uc":"1f3cb","isCanonical": false},":golfer:":{"unicode":["1f3cc-fe0f","1f3cc"],"fname":"1f3cc","uc":"1f3cc","isCanonical": true},":motorcycle:":{"unicode":["1f3cd-fe0f","1f3cd"],"fname":"1f3cd","uc":"1f3cd","isCanonical": true},":racing_motorcycle:":{"unicode":["1f3cd-fe0f","1f3cd"],"fname":"1f3cd","uc":"1f3cd","isCanonical": false},":race_car:":{"unicode":["1f3ce-fe0f","1f3ce"],"fname":"1f3ce","uc":"1f3ce","isCanonical": true},":racing_car:":{"unicode":["1f3ce-fe0f","1f3ce"],"fname":"1f3ce","uc":"1f3ce","isCanonical": false},":military_medal:":{"unicode":["1f396-fe0f","1f396"],"fname":"1f396","uc":"1f396","isCanonical": true},":reminder_ribbon:":{"unicode":["1f397-fe0f","1f397"],"fname":"1f397","uc":"1f397","isCanonical": true},":hot_pepper:":{"unicode":["1f336-fe0f","1f336"],"fname":"1f336","uc":"1f336","isCanonical": true},":cloud_rain:":{"unicode":["1f327-fe0f","1f327"],"fname":"1f327","uc":"1f327","isCanonical": true},":cloud_with_rain:":{"unicode":["1f327-fe0f","1f327"],"fname":"1f327","uc":"1f327","isCanonical": false},":cloud_snow:":{"unicode":["1f328-fe0f","1f328"],"fname":"1f328","uc":"1f328","isCanonical": true},":cloud_with_snow:":{"unicode":["1f328-fe0f","1f328"],"fname":"1f328","uc":"1f328","isCanonical": false},":cloud_lightning:":{"unicode":["1f329-fe0f","1f329"],"fname":"1f329","uc":"1f329","isCanonical": true},":cloud_with_lightning:":{"unicode":["1f329-fe0f","1f329"],"fname":"1f329","uc":"1f329","isCanonical": false},":cloud_tornado:":{"unicode":["1f32a-fe0f","1f32a"],"fname":"1f32a","uc":"1f32a","isCanonical": true},":cloud_with_tornado:":{"unicode":["1f32a-fe0f","1f32a"],"fname":"1f32a","uc":"1f32a","isCanonical": false},":fog:":{"unicode":["1f32b-fe0f","1f32b"],"fname":"1f32b","uc":"1f32b","isCanonical": true},":wind_blowing_face:":{"unicode":["1f32c-fe0f","1f32c"],"fname":"1f32c","uc":"1f32c","isCanonical": true},":chipmunk:":{"unicode":["1f43f-fe0f","1f43f"],"fname":"1f43f","uc":"1f43f","isCanonical": true},":spider:":{"unicode":["1f577-fe0f","1f577"],"fname":"1f577","uc":"1f577","isCanonical": true},":spider_web:":{"unicode":["1f578-fe0f","1f578"],"fname":"1f578","uc":"1f578","isCanonical": true},":thermometer:":{"unicode":["1f321-fe0f","1f321"],"fname":"1f321","uc":"1f321","isCanonical": true},":microphone2:":{"unicode":["1f399-fe0f","1f399"],"fname":"1f399","uc":"1f399","isCanonical": true},":studio_microphone:":{"unicode":["1f399-fe0f","1f399"],"fname":"1f399","uc":"1f399","isCanonical": false},":level_slider:":{"unicode":["1f39a-fe0f","1f39a"],"fname":"1f39a","uc":"1f39a","isCanonical": true},":control_knobs:":{"unicode":["1f39b-fe0f","1f39b"],"fname":"1f39b","uc":"1f39b","isCanonical": true},":flag_white:":{"unicode":["1f3f3-fe0f","1f3f3"],"fname":"1f3f3","uc":"1f3f3","isCanonical": true},":waving_white_flag:":{"unicode":["1f3f3-fe0f","1f3f3"],"fname":"1f3f3","uc":"1f3f3","isCanonical": false},":rosette:":{"unicode":["1f3f5-fe0f","1f3f5"],"fname":"1f3f5","uc":"1f3f5","isCanonical": true},":label:":{"unicode":["1f3f7-fe0f","1f3f7"],"fname":"1f3f7","uc":"1f3f7","isCanonical": true},":projector:":{"unicode":["1f4fd-fe0f","1f4fd"],"fname":"1f4fd","uc":"1f4fd","isCanonical": true},":film_projector:":{"unicode":["1f4fd-fe0f","1f4fd"],"fname":"1f4fd","uc":"1f4fd","isCanonical": false},":om_symbol:":{"unicode":["1f549-fe0f","1f549"],"fname":"1f549","uc":"1f549","isCanonical": true},":dove:":{"unicode":["1f54a-fe0f","1f54a"],"fname":"1f54a","uc":"1f54a","isCanonical": true},":dove_of_peace:":{"unicode":["1f54a-fe0f","1f54a"],"fname":"1f54a","uc":"1f54a","isCanonical": false},":candle:":{"unicode":["1f56f-fe0f","1f56f"],"fname":"1f56f","uc":"1f56f","isCanonical": true},":clock:":{"unicode":["1f570-fe0f","1f570"],"fname":"1f570","uc":"1f570","isCanonical": true},":mantlepiece_clock:":{"unicode":["1f570-fe0f","1f570"],"fname":"1f570","uc":"1f570","isCanonical": false},":hole:":{"unicode":["1f573-fe0f","1f573"],"fname":"1f573","uc":"1f573","isCanonical": true},":dark_sunglasses:":{"unicode":["1f576-fe0f","1f576"],"fname":"1f576","uc":"1f576","isCanonical": true},":joystick:":{"unicode":["1f579-fe0f","1f579"],"fname":"1f579","uc":"1f579","isCanonical": true},":paperclips:":{"unicode":["1f587-fe0f","1f587"],"fname":"1f587","uc":"1f587","isCanonical": true},":linked_paperclips:":{"unicode":["1f587-fe0f","1f587"],"fname":"1f587","uc":"1f587","isCanonical": false},":pen_ballpoint:":{"unicode":["1f58a-fe0f","1f58a"],"fname":"1f58a","uc":"1f58a","isCanonical": true},":lower_left_ballpoint_pen:":{"unicode":["1f58a-fe0f","1f58a"],"fname":"1f58a","uc":"1f58a","isCanonical": false},":pen_fountain:":{"unicode":["1f58b-fe0f","1f58b"],"fname":"1f58b","uc":"1f58b","isCanonical": true},":lower_left_fountain_pen:":{"unicode":["1f58b-fe0f","1f58b"],"fname":"1f58b","uc":"1f58b","isCanonical": false},":paintbrush:":{"unicode":["1f58c-fe0f","1f58c"],"fname":"1f58c","uc":"1f58c","isCanonical": true},":lower_left_paintbrush:":{"unicode":["1f58c-fe0f","1f58c"],"fname":"1f58c","uc":"1f58c","isCanonical": false},":crayon:":{"unicode":["1f58d-fe0f","1f58d"],"fname":"1f58d","uc":"1f58d","isCanonical": true},":lower_left_crayon:":{"unicode":["1f58d-fe0f","1f58d"],"fname":"1f58d","uc":"1f58d","isCanonical": false},":desktop:":{"unicode":["1f5a5-fe0f","1f5a5"],"fname":"1f5a5","uc":"1f5a5","isCanonical": true},":desktop_computer:":{"unicode":["1f5a5-fe0f","1f5a5"],"fname":"1f5a5","uc":"1f5a5","isCanonical": false},":printer:":{"unicode":["1f5a8-fe0f","1f5a8"],"fname":"1f5a8","uc":"1f5a8","isCanonical": true},":trackball:":{"unicode":["1f5b2-fe0f","1f5b2"],"fname":"1f5b2","uc":"1f5b2","isCanonical": true},":frame_photo:":{"unicode":["1f5bc-fe0f","1f5bc"],"fname":"1f5bc","uc":"1f5bc","isCanonical": true},":frame_with_picture:":{"unicode":["1f5bc-fe0f","1f5bc"],"fname":"1f5bc","uc":"1f5bc","isCanonical": false},":dividers:":{"unicode":["1f5c2-fe0f","1f5c2"],"fname":"1f5c2","uc":"1f5c2","isCanonical": true},":card_index_dividers:":{"unicode":["1f5c2-fe0f","1f5c2"],"fname":"1f5c2","uc":"1f5c2","isCanonical": false},":card_box:":{"unicode":["1f5c3-fe0f","1f5c3"],"fname":"1f5c3","uc":"1f5c3","isCanonical": true},":card_file_box:":{"unicode":["1f5c3-fe0f","1f5c3"],"fname":"1f5c3","uc":"1f5c3","isCanonical": false},":file_cabinet:":{"unicode":["1f5c4-fe0f","1f5c4"],"fname":"1f5c4","uc":"1f5c4","isCanonical": true},":wastebasket:":{"unicode":["1f5d1-fe0f","1f5d1"],"fname":"1f5d1","uc":"1f5d1","isCanonical": true},":notepad_spiral:":{"unicode":["1f5d2-fe0f","1f5d2"],"fname":"1f5d2","uc":"1f5d2","isCanonical": true},":spiral_note_pad:":{"unicode":["1f5d2-fe0f","1f5d2"],"fname":"1f5d2","uc":"1f5d2","isCanonical": false},":calendar_spiral:":{"unicode":["1f5d3-fe0f","1f5d3"],"fname":"1f5d3","uc":"1f5d3","isCanonical": true},":spiral_calendar_pad:":{"unicode":["1f5d3-fe0f","1f5d3"],"fname":"1f5d3","uc":"1f5d3","isCanonical": false},":compression:":{"unicode":["1f5dc-fe0f","1f5dc"],"fname":"1f5dc","uc":"1f5dc","isCanonical": true},":key2:":{"unicode":["1f5dd-fe0f","1f5dd"],"fname":"1f5dd","uc":"1f5dd","isCanonical": true},":old_key:":{"unicode":["1f5dd-fe0f","1f5dd"],"fname":"1f5dd","uc":"1f5dd","isCanonical": false},":newspaper2:":{"unicode":["1f5de-fe0f","1f5de"],"fname":"1f5de","uc":"1f5de","isCanonical": true},":rolled_up_newspaper:":{"unicode":["1f5de-fe0f","1f5de"],"fname":"1f5de","uc":"1f5de","isCanonical": false},":dagger:":{"unicode":["1f5e1-fe0f","1f5e1"],"fname":"1f5e1","uc":"1f5e1","isCanonical": true},":dagger_knife:":{"unicode":["1f5e1-fe0f","1f5e1"],"fname":"1f5e1","uc":"1f5e1","isCanonical": false},":speaking_head:":{"unicode":["1f5e3-fe0f","1f5e3"],"fname":"1f5e3","uc":"1f5e3","isCanonical": true},":speaking_head_in_silhouette:":{"unicode":["1f5e3-fe0f","1f5e3"],"fname":"1f5e3","uc":"1f5e3","isCanonical": false},":speech_left:":{"unicode":["1f5e8-fe0f","1f5e8"],"fname":"1f5e8","uc":"1f5e8","isCanonical": true},":left_speech_bubble:":{"unicode":["1f5e8-fe0f","1f5e8"],"fname":"1f5e8","uc":"1f5e8","isCanonical": false},":anger_right:":{"unicode":["1f5ef-fe0f","1f5ef"],"fname":"1f5ef","uc":"1f5ef","isCanonical": true},":right_anger_bubble:":{"unicode":["1f5ef-fe0f","1f5ef"],"fname":"1f5ef","uc":"1f5ef","isCanonical": false},":ballot_box:":{"unicode":["1f5f3-fe0f","1f5f3"],"fname":"1f5f3","uc":"1f5f3","isCanonical": true},":ballot_box_with_ballot:":{"unicode":["1f5f3-fe0f","1f5f3"],"fname":"1f5f3","uc":"1f5f3","isCanonical": false},":map:":{"unicode":["1f5fa-fe0f","1f5fa"],"fname":"1f5fa","uc":"1f5fa","isCanonical": true},":world_map:":{"unicode":["1f5fa-fe0f","1f5fa"],"fname":"1f5fa","uc":"1f5fa","isCanonical": false},":tools:":{"unicode":["1f6e0-fe0f","1f6e0"],"fname":"1f6e0","uc":"1f6e0","isCanonical": true},":hammer_and_wrench:":{"unicode":["1f6e0-fe0f","1f6e0"],"fname":"1f6e0","uc":"1f6e0","isCanonical": false},":shield:":{"unicode":["1f6e1-fe0f","1f6e1"],"fname":"1f6e1","uc":"1f6e1","isCanonical": true},":oil:":{"unicode":["1f6e2-fe0f","1f6e2"],"fname":"1f6e2","uc":"1f6e2","isCanonical": true},":oil_drum:":{"unicode":["1f6e2-fe0f","1f6e2"],"fname":"1f6e2","uc":"1f6e2","isCanonical": false},":satellite_orbital:":{"unicode":["1f6f0-fe0f","1f6f0"],"fname":"1f6f0","uc":"1f6f0","isCanonical": true},":fork_knife_plate:":{"unicode":["1f37d-fe0f","1f37d"],"fname":"1f37d","uc":"1f37d","isCanonical": true},":fork_and_knife_with_plate:":{"unicode":["1f37d-fe0f","1f37d"],"fname":"1f37d","uc":"1f37d","isCanonical": false},":eye:":{"unicode":["1f441-fe0f","1f441"],"fname":"1f441","uc":"1f441","isCanonical": true},":levitate:":{"unicode":["1f574-fe0f","1f574"],"fname":"1f574","uc":"1f574","isCanonical": true},":man_in_business_suit_levitating:":{"unicode":["1f574-fe0f","1f574"],"fname":"1f574","uc":"1f574","isCanonical": false},":spy:":{"unicode":["1f575-fe0f","1f575"],"fname":"1f575","uc":"1f575","isCanonical": true},":sleuth_or_spy:":{"unicode":["1f575-fe0f","1f575"],"fname":"1f575","uc":"1f575","isCanonical": false},":hand_splayed:":{"unicode":["1f590-fe0f","1f590"],"fname":"1f590","uc":"1f590","isCanonical": true},":raised_hand_with_fingers_splayed:":{"unicode":["1f590-fe0f","1f590"],"fname":"1f590","uc":"1f590","isCanonical": false},":mountain_snow:":{"unicode":["1f3d4-fe0f","1f3d4"],"fname":"1f3d4","uc":"1f3d4","isCanonical": true},":snow_capped_mountain:":{"unicode":["1f3d4-fe0f","1f3d4"],"fname":"1f3d4","uc":"1f3d4","isCanonical": false},":camping:":{"unicode":["1f3d5-fe0f","1f3d5"],"fname":"1f3d5","uc":"1f3d5","isCanonical": true},":beach:":{"unicode":["1f3d6-fe0f","1f3d6"],"fname":"1f3d6","uc":"1f3d6","isCanonical": true},":beach_with_umbrella:":{"unicode":["1f3d6-fe0f","1f3d6"],"fname":"1f3d6","uc":"1f3d6","isCanonical": false},":construction_site:":{"unicode":["1f3d7-fe0f","1f3d7"],"fname":"1f3d7","uc":"1f3d7","isCanonical": true},":building_construction:":{"unicode":["1f3d7-fe0f","1f3d7"],"fname":"1f3d7","uc":"1f3d7","isCanonical": false},":homes:":{"unicode":["1f3d8-fe0f","1f3d8"],"fname":"1f3d8","uc":"1f3d8","isCanonical": true},":house_buildings:":{"unicode":["1f3d8-fe0f","1f3d8"],"fname":"1f3d8","uc":"1f3d8","isCanonical": false},":cityscape:":{"unicode":["1f3d9-fe0f","1f3d9"],"fname":"1f3d9","uc":"1f3d9","isCanonical": true},":house_abandoned:":{"unicode":["1f3da-fe0f","1f3da"],"fname":"1f3da","uc":"1f3da","isCanonical": true},":derelict_house_building:":{"unicode":["1f3da-fe0f","1f3da"],"fname":"1f3da","uc":"1f3da","isCanonical": false},":classical_building:":{"unicode":["1f3db-fe0f","1f3db"],"fname":"1f3db","uc":"1f3db","isCanonical": true},":desert:":{"unicode":["1f3dc-fe0f","1f3dc"],"fname":"1f3dc","uc":"1f3dc","isCanonical": true},":island:":{"unicode":["1f3dd-fe0f","1f3dd"],"fname":"1f3dd","uc":"1f3dd","isCanonical": true},":desert_island:":{"unicode":["1f3dd-fe0f","1f3dd"],"fname":"1f3dd","uc":"1f3dd","isCanonical": false},":park:":{"unicode":["1f3de-fe0f","1f3de"],"fname":"1f3de","uc":"1f3de","isCanonical": true},":national_park:":{"unicode":["1f3de-fe0f","1f3de"],"fname":"1f3de","uc":"1f3de","isCanonical": false},":stadium:":{"unicode":["1f3df-fe0f","1f3df"],"fname":"1f3df","uc":"1f3df","isCanonical": true},":couch:":{"unicode":["1f6cb-fe0f","1f6cb"],"fname":"1f6cb","uc":"1f6cb","isCanonical": true},":couch_and_lamp:":{"unicode":["1f6cb-fe0f","1f6cb"],"fname":"1f6cb","uc":"1f6cb","isCanonical": false},":shopping_bags:":{"unicode":["1f6cd-fe0f","1f6cd"],"fname":"1f6cd","uc":"1f6cd","isCanonical": true},":bellhop:":{"unicode":["1f6ce-fe0f","1f6ce"],"fname":"1f6ce","uc":"1f6ce","isCanonical": true},":bellhop_bell:":{"unicode":["1f6ce-fe0f","1f6ce"],"fname":"1f6ce","uc":"1f6ce","isCanonical": false},":bed:":{"unicode":["1f6cf-fe0f","1f6cf"],"fname":"1f6cf","uc":"1f6cf","isCanonical": true},":motorway:":{"unicode":["1f6e3-fe0f","1f6e3"],"fname":"1f6e3","uc":"1f6e3","isCanonical": true},":railway_track:":{"unicode":["1f6e4-fe0f","1f6e4"],"fname":"1f6e4","uc":"1f6e4","isCanonical": true},":railroad_track:":{"unicode":["1f6e4-fe0f","1f6e4"],"fname":"1f6e4","uc":"1f6e4","isCanonical": false},":motorboat:":{"unicode":["1f6e5-fe0f","1f6e5"],"fname":"1f6e5","uc":"1f6e5","isCanonical": true},":airplane_small:":{"unicode":["1f6e9-fe0f","1f6e9"],"fname":"1f6e9","uc":"1f6e9","isCanonical": true},":small_airplane:":{"unicode":["1f6e9-fe0f","1f6e9"],"fname":"1f6e9","uc":"1f6e9","isCanonical": false},":cruise_ship:":{"unicode":["1f6f3-fe0f","1f6f3"],"fname":"1f6f3","uc":"1f6f3","isCanonical": true},":passenger_ship:":{"unicode":["1f6f3-fe0f","1f6f3"],"fname":"1f6f3","uc":"1f6f3","isCanonical": false},":white_sun_small_cloud:":{"unicode":["1f324-fe0f","1f324"],"fname":"1f324","uc":"1f324","isCanonical": true},":white_sun_with_small_cloud:":{"unicode":["1f324-fe0f","1f324"],"fname":"1f324","uc":"1f324","isCanonical": false},":white_sun_cloud:":{"unicode":["1f325-fe0f","1f325"],"fname":"1f325","uc":"1f325","isCanonical": true},":white_sun_behind_cloud:":{"unicode":["1f325-fe0f","1f325"],"fname":"1f325","uc":"1f325","isCanonical": false},":white_sun_rain_cloud:":{"unicode":["1f326-fe0f","1f326"],"fname":"1f326","uc":"1f326","isCanonical": true},":white_sun_behind_cloud_with_rain:":{"unicode":["1f326-fe0f","1f326"],"fname":"1f326","uc":"1f326","isCanonical": false},":mouse_three_button:":{"unicode":["1f5b1-fe0f","1f5b1"],"fname":"1f5b1","uc":"1f5b1","isCanonical": true},":three_button_mouse:":{"unicode":["1f5b1-fe0f","1f5b1"],"fname":"1f5b1","uc":"1f5b1","isCanonical": false},":point_up_tone1:":{"unicode":["261d-1f3fb"],"fname":"261d-1f3fb","uc":"261d-1f3fb","isCanonical": true},":point_up_tone2:":{"unicode":["261d-1f3fc"],"fname":"261d-1f3fc","uc":"261d-1f3fc","isCanonical": true},":point_up_tone3:":{"unicode":["261d-1f3fd"],"fname":"261d-1f3fd","uc":"261d-1f3fd","isCanonical": true},":point_up_tone4:":{"unicode":["261d-1f3fe"],"fname":"261d-1f3fe","uc":"261d-1f3fe","isCanonical": true},":point_up_tone5:":{"unicode":["261d-1f3ff"],"fname":"261d-1f3ff","uc":"261d-1f3ff","isCanonical": true},":v_tone1:":{"unicode":["270c-1f3fb"],"fname":"270c-1f3fb","uc":"270c-1f3fb","isCanonical": true},":v_tone2:":{"unicode":["270c-1f3fc"],"fname":"270c-1f3fc","uc":"270c-1f3fc","isCanonical": true},":v_tone3:":{"unicode":["270c-1f3fd"],"fname":"270c-1f3fd","uc":"270c-1f3fd","isCanonical": true},":v_tone4:":{"unicode":["270c-1f3fe"],"fname":"270c-1f3fe","uc":"270c-1f3fe","isCanonical": true},":v_tone5:":{"unicode":["270c-1f3ff"],"fname":"270c-1f3ff","uc":"270c-1f3ff","isCanonical": true},":fist_tone1:":{"unicode":["270a-1f3fb"],"fname":"270a-1f3fb","uc":"270a-1f3fb","isCanonical": true},":fist_tone2:":{"unicode":["270a-1f3fc"],"fname":"270a-1f3fc","uc":"270a-1f3fc","isCanonical": true},":fist_tone3:":{"unicode":["270a-1f3fd"],"fname":"270a-1f3fd","uc":"270a-1f3fd","isCanonical": true},":fist_tone4:":{"unicode":["270a-1f3fe"],"fname":"270a-1f3fe","uc":"270a-1f3fe","isCanonical": true},":fist_tone5:":{"unicode":["270a-1f3ff"],"fname":"270a-1f3ff","uc":"270a-1f3ff","isCanonical": true},":raised_hand_tone1:":{"unicode":["270b-1f3fb"],"fname":"270b-1f3fb","uc":"270b-1f3fb","isCanonical": true},":raised_hand_tone2:":{"unicode":["270b-1f3fc"],"fname":"270b-1f3fc","uc":"270b-1f3fc","isCanonical": true},":raised_hand_tone3:":{"unicode":["270b-1f3fd"],"fname":"270b-1f3fd","uc":"270b-1f3fd","isCanonical": true},":raised_hand_tone4:":{"unicode":["270b-1f3fe"],"fname":"270b-1f3fe","uc":"270b-1f3fe","isCanonical": true},":raised_hand_tone5:":{"unicode":["270b-1f3ff"],"fname":"270b-1f3ff","uc":"270b-1f3ff","isCanonical": true},":writing_hand_tone1:":{"unicode":["270d-1f3fb"],"fname":"270d-1f3fb","uc":"270d-1f3fb","isCanonical": true},":writing_hand_tone2:":{"unicode":["270d-1f3fc"],"fname":"270d-1f3fc","uc":"270d-1f3fc","isCanonical": true},":writing_hand_tone3:":{"unicode":["270d-1f3fd"],"fname":"270d-1f3fd","uc":"270d-1f3fd","isCanonical": true},":writing_hand_tone4:":{"unicode":["270d-1f3fe"],"fname":"270d-1f3fe","uc":"270d-1f3fe","isCanonical": true},":writing_hand_tone5:":{"unicode":["270d-1f3ff"],"fname":"270d-1f3ff","uc":"270d-1f3ff","isCanonical": true},":basketball_player_tone1:":{"unicode":["26f9-1f3fb"],"fname":"26f9-1f3fb","uc":"26f9-1f3fb","isCanonical": true},":person_with_ball_tone1:":{"unicode":["26f9-1f3fb"],"fname":"26f9-1f3fb","uc":"26f9-1f3fb","isCanonical": false},":basketball_player_tone2:":{"unicode":["26f9-1f3fc"],"fname":"26f9-1f3fc","uc":"26f9-1f3fc","isCanonical": true},":person_with_ball_tone2:":{"unicode":["26f9-1f3fc"],"fname":"26f9-1f3fc","uc":"26f9-1f3fc","isCanonical": false},":basketball_player_tone3:":{"unicode":["26f9-1f3fd"],"fname":"26f9-1f3fd","uc":"26f9-1f3fd","isCanonical": true},":person_with_ball_tone3:":{"unicode":["26f9-1f3fd"],"fname":"26f9-1f3fd","uc":"26f9-1f3fd","isCanonical": false},":basketball_player_tone4:":{"unicode":["26f9-1f3fe"],"fname":"26f9-1f3fe","uc":"26f9-1f3fe","isCanonical": true},":person_with_ball_tone4:":{"unicode":["26f9-1f3fe"],"fname":"26f9-1f3fe","uc":"26f9-1f3fe","isCanonical": false},":basketball_player_tone5:":{"unicode":["26f9-1f3ff"],"fname":"26f9-1f3ff","uc":"26f9-1f3ff","isCanonical": true},":person_with_ball_tone5:":{"unicode":["26f9-1f3ff"],"fname":"26f9-1f3ff","uc":"26f9-1f3ff","isCanonical": false},":copyright:":{"unicode":["00a9-fe0f","00a9"],"fname":"00a9","uc":"00a9","isCanonical": true},":registered:":{"unicode":["00ae-fe0f","00ae"],"fname":"00ae","uc":"00ae","isCanonical": true},":bangbang:":{"unicode":["203c-fe0f","203c"],"fname":"203c","uc":"203c","isCanonical": true},":interrobang:":{"unicode":["2049-fe0f","2049"],"fname":"2049","uc":"2049","isCanonical": true},":tm:":{"unicode":["2122-fe0f","2122"],"fname":"2122","uc":"2122","isCanonical": true},":information_source:":{"unicode":["2139-fe0f","2139"],"fname":"2139","uc":"2139","isCanonical": true},":left_right_arrow:":{"unicode":["2194-fe0f","2194"],"fname":"2194","uc":"2194","isCanonical": true},":arrow_up_down:":{"unicode":["2195-fe0f","2195"],"fname":"2195","uc":"2195","isCanonical": true},":arrow_upper_left:":{"unicode":["2196-fe0f","2196"],"fname":"2196","uc":"2196","isCanonical": true},":arrow_upper_right:":{"unicode":["2197-fe0f","2197"],"fname":"2197","uc":"2197","isCanonical": true},":arrow_lower_right:":{"unicode":["2198-fe0f","2198"],"fname":"2198","uc":"2198","isCanonical": true},":arrow_lower_left:":{"unicode":["2199-fe0f","2199"],"fname":"2199","uc":"2199","isCanonical": true},":leftwards_arrow_with_hook:":{"unicode":["21a9-fe0f","21a9"],"fname":"21a9","uc":"21a9","isCanonical": true},":arrow_right_hook:":{"unicode":["21aa-fe0f","21aa"],"fname":"21aa","uc":"21aa","isCanonical": true},":watch:":{"unicode":["231a-fe0f","231a"],"fname":"231a","uc":"231a","isCanonical": true},":hourglass:":{"unicode":["231b-fe0f","231b"],"fname":"231b","uc":"231b","isCanonical": true},":m:":{"unicode":["24c2-fe0f","24c2"],"fname":"24c2","uc":"24c2","isCanonical": true},":black_small_square:":{"unicode":["25aa-fe0f","25aa"],"fname":"25aa","uc":"25aa","isCanonical": true},":white_small_square:":{"unicode":["25ab-fe0f","25ab"],"fname":"25ab","uc":"25ab","isCanonical": true},":arrow_forward:":{"unicode":["25b6-fe0f","25b6"],"fname":"25b6","uc":"25b6","isCanonical": true},":arrow_backward:":{"unicode":["25c0-fe0f","25c0"],"fname":"25c0","uc":"25c0","isCanonical": true},":white_medium_square:":{"unicode":["25fb-fe0f","25fb"],"fname":"25fb","uc":"25fb","isCanonical": true},":black_medium_square:":{"unicode":["25fc-fe0f","25fc"],"fname":"25fc","uc":"25fc","isCanonical": true},":white_medium_small_square:":{"unicode":["25fd-fe0f","25fd"],"fname":"25fd","uc":"25fd","isCanonical": true},":black_medium_small_square:":{"unicode":["25fe-fe0f","25fe"],"fname":"25fe","uc":"25fe","isCanonical": true},":sunny:":{"unicode":["2600-fe0f","2600"],"fname":"2600","uc":"2600","isCanonical": true},":cloud:":{"unicode":["2601-fe0f","2601"],"fname":"2601","uc":"2601","isCanonical": true},":telephone:":{"unicode":["260e-fe0f","260e"],"fname":"260e","uc":"260e","isCanonical": true},":ballot_box_with_check:":{"unicode":["2611-fe0f","2611"],"fname":"2611","uc":"2611","isCanonical": true},":umbrella:":{"unicode":["2614-fe0f","2614"],"fname":"2614","uc":"2614","isCanonical": true},":coffee:":{"unicode":["2615-fe0f","2615"],"fname":"2615","uc":"2615","isCanonical": true},":point_up:":{"unicode":["261d-fe0f","261d"],"fname":"261d","uc":"261d","isCanonical": true},":relaxed:":{"unicode":["263a-fe0f","263a"],"fname":"263a","uc":"263a","isCanonical": true},":aries:":{"unicode":["2648-fe0f","2648"],"fname":"2648","uc":"2648","isCanonical": true},":taurus:":{"unicode":["2649-fe0f","2649"],"fname":"2649","uc":"2649","isCanonical": true},":gemini:":{"unicode":["264a-fe0f","264a"],"fname":"264a","uc":"264a","isCanonical": true},":cancer:":{"unicode":["264b-fe0f","264b"],"fname":"264b","uc":"264b","isCanonical": true},":leo:":{"unicode":["264c-fe0f","264c"],"fname":"264c","uc":"264c","isCanonical": true},":virgo:":{"unicode":["264d-fe0f","264d"],"fname":"264d","uc":"264d","isCanonical": true},":libra:":{"unicode":["264e-fe0f","264e"],"fname":"264e","uc":"264e","isCanonical": true},":scorpius:":{"unicode":["264f-fe0f","264f"],"fname":"264f","uc":"264f","isCanonical": true},":sagittarius:":{"unicode":["2650-fe0f","2650"],"fname":"2650","uc":"2650","isCanonical": true},":capricorn:":{"unicode":["2651-fe0f","2651"],"fname":"2651","uc":"2651","isCanonical": true},":aquarius:":{"unicode":["2652-fe0f","2652"],"fname":"2652","uc":"2652","isCanonical": true},":pisces:":{"unicode":["2653-fe0f","2653"],"fname":"2653","uc":"2653","isCanonical": true},":spades:":{"unicode":["2660-fe0f","2660"],"fname":"2660","uc":"2660","isCanonical": true},":clubs:":{"unicode":["2663-fe0f","2663"],"fname":"2663","uc":"2663","isCanonical": true},":hearts:":{"unicode":["2665-fe0f","2665"],"fname":"2665","uc":"2665","isCanonical": true},":diamonds:":{"unicode":["2666-fe0f","2666"],"fname":"2666","uc":"2666","isCanonical": true},":hotsprings:":{"unicode":["2668-fe0f","2668"],"fname":"2668","uc":"2668","isCanonical": true},":recycle:":{"unicode":["267b-fe0f","267b"],"fname":"267b","uc":"267b","isCanonical": true},":wheelchair:":{"unicode":["267f-fe0f","267f"],"fname":"267f","uc":"267f","isCanonical": true},":anchor:":{"unicode":["2693-fe0f","2693"],"fname":"2693","uc":"2693","isCanonical": true},":warning:":{"unicode":["26a0-fe0f","26a0"],"fname":"26a0","uc":"26a0","isCanonical": true},":zap:":{"unicode":["26a1-fe0f","26a1"],"fname":"26a1","uc":"26a1","isCanonical": true},":white_circle:":{"unicode":["26aa-fe0f","26aa"],"fname":"26aa","uc":"26aa","isCanonical": true},":black_circle:":{"unicode":["26ab-fe0f","26ab"],"fname":"26ab","uc":"26ab","isCanonical": true},":soccer:":{"unicode":["26bd-fe0f","26bd"],"fname":"26bd","uc":"26bd","isCanonical": true},":baseball:":{"unicode":["26be-fe0f","26be"],"fname":"26be","uc":"26be","isCanonical": true},":snowman:":{"unicode":["26c4-fe0f","26c4"],"fname":"26c4","uc":"26c4","isCanonical": true},":partly_sunny:":{"unicode":["26c5-fe0f","26c5"],"fname":"26c5","uc":"26c5","isCanonical": true},":no_entry:":{"unicode":["26d4-fe0f","26d4"],"fname":"26d4","uc":"26d4","isCanonical": true},":church:":{"unicode":["26ea-fe0f","26ea"],"fname":"26ea","uc":"26ea","isCanonical": true},":fountain:":{"unicode":["26f2-fe0f","26f2"],"fname":"26f2","uc":"26f2","isCanonical": true},":golf:":{"unicode":["26f3-fe0f","26f3"],"fname":"26f3","uc":"26f3","isCanonical": true},":sailboat:":{"unicode":["26f5-fe0f","26f5"],"fname":"26f5","uc":"26f5","isCanonical": true},":tent:":{"unicode":["26fa-fe0f","26fa"],"fname":"26fa","uc":"26fa","isCanonical": true},":fuelpump:":{"unicode":["26fd-fe0f","26fd"],"fname":"26fd","uc":"26fd","isCanonical": true},":scissors:":{"unicode":["2702-fe0f","2702"],"fname":"2702","uc":"2702","isCanonical": true},":airplane:":{"unicode":["2708-fe0f","2708"],"fname":"2708","uc":"2708","isCanonical": true},":envelope:":{"unicode":["2709-fe0f","2709"],"fname":"2709","uc":"2709","isCanonical": true},":v:":{"unicode":["270c-fe0f","270c"],"fname":"270c","uc":"270c","isCanonical": true},":pencil2:":{"unicode":["270f-fe0f","270f"],"fname":"270f","uc":"270f","isCanonical": true},":black_nib:":{"unicode":["2712-fe0f","2712"],"fname":"2712","uc":"2712","isCanonical": true},":heavy_check_mark:":{"unicode":["2714-fe0f","2714"],"fname":"2714","uc":"2714","isCanonical": true},":heavy_multiplication_x:":{"unicode":["2716-fe0f","2716"],"fname":"2716","uc":"2716","isCanonical": true},":eight_spoked_asterisk:":{"unicode":["2733-fe0f","2733"],"fname":"2733","uc":"2733","isCanonical": true},":eight_pointed_black_star:":{"unicode":["2734-fe0f","2734"],"fname":"2734","uc":"2734","isCanonical": true},":snowflake:":{"unicode":["2744-fe0f","2744"],"fname":"2744","uc":"2744","isCanonical": true},":sparkle:":{"unicode":["2747-fe0f","2747"],"fname":"2747","uc":"2747","isCanonical": true},":exclamation:":{"unicode":["2757-fe0f","2757"],"fname":"2757","uc":"2757","isCanonical": true},":heart:":{"unicode":["2764-fe0f","2764"],"fname":"2764","uc":"2764","isCanonical": true},":arrow_right:":{"unicode":["27a1-fe0f","27a1"],"fname":"27a1","uc":"27a1","isCanonical": true},":arrow_heading_up:":{"unicode":["2934-fe0f","2934"],"fname":"2934","uc":"2934","isCanonical": true},":arrow_heading_down:":{"unicode":["2935-fe0f","2935"],"fname":"2935","uc":"2935","isCanonical": true},":arrow_left:":{"unicode":["2b05-fe0f","2b05"],"fname":"2b05","uc":"2b05","isCanonical": true},":arrow_up:":{"unicode":["2b06-fe0f","2b06"],"fname":"2b06","uc":"2b06","isCanonical": true},":arrow_down:":{"unicode":["2b07-fe0f","2b07"],"fname":"2b07","uc":"2b07","isCanonical": true},":black_large_square:":{"unicode":["2b1b-fe0f","2b1b"],"fname":"2b1b","uc":"2b1b","isCanonical": true},":white_large_square:":{"unicode":["2b1c-fe0f","2b1c"],"fname":"2b1c","uc":"2b1c","isCanonical": true},":star:":{"unicode":["2b50-fe0f","2b50"],"fname":"2b50","uc":"2b50","isCanonical": true},":o:":{"unicode":["2b55-fe0f","2b55"],"fname":"2b55","uc":"2b55","isCanonical": true},":wavy_dash:":{"unicode":["3030-fe0f","3030"],"fname":"3030","uc":"3030","isCanonical": true},":part_alternation_mark:":{"unicode":["303d-fe0f","303d"],"fname":"303d","uc":"303d","isCanonical": true},":congratulations:":{"unicode":["3297-fe0f","3297"],"fname":"3297","uc":"3297","isCanonical": true},":secret:":{"unicode":["3299-fe0f","3299"],"fname":"3299","uc":"3299","isCanonical": true},":cross:":{"unicode":["271d-fe0f","271d"],"fname":"271d","uc":"271d","isCanonical": true},":latin_cross:":{"unicode":["271d-fe0f","271d"],"fname":"271d","uc":"271d","isCanonical": false},":keyboard:":{"unicode":["2328-fe0f","2328"],"fname":"2328","uc":"2328","isCanonical": true},":writing_hand:":{"unicode":["270d-fe0f","270d"],"fname":"270d","uc":"270d","isCanonical": true},":eject:":{"unicode":["23cf-fe0f","23cf"],"fname":"23cf","uc":"23cf","isCanonical": true},":eject_symbol:":{"unicode":["23cf-fe0f","23cf"],"fname":"23cf","uc":"23cf","isCanonical": false},":track_next:":{"unicode":["23ed-fe0f","23ed"],"fname":"23ed","uc":"23ed","isCanonical": true},":next_track:":{"unicode":["23ed-fe0f","23ed"],"fname":"23ed","uc":"23ed","isCanonical": false},":track_previous:":{"unicode":["23ee-fe0f","23ee"],"fname":"23ee","uc":"23ee","isCanonical": true},":previous_track:":{"unicode":["23ee-fe0f","23ee"],"fname":"23ee","uc":"23ee","isCanonical": false},":play_pause:":{"unicode":["23ef-fe0f","23ef"],"fname":"23ef","uc":"23ef","isCanonical": true},":stopwatch:":{"unicode":["23f1-fe0f","23f1"],"fname":"23f1","uc":"23f1","isCanonical": true},":timer:":{"unicode":["23f2-fe0f","23f2"],"fname":"23f2","uc":"23f2","isCanonical": true},":timer_clock:":{"unicode":["23f2-fe0f","23f2"],"fname":"23f2","uc":"23f2","isCanonical": false},":pause_button:":{"unicode":["23f8-fe0f","23f8"],"fname":"23f8","uc":"23f8","isCanonical": true},":double_vertical_bar:":{"unicode":["23f8-fe0f","23f8"],"fname":"23f8","uc":"23f8","isCanonical": false},":stop_button:":{"unicode":["23f9-fe0f","23f9"],"fname":"23f9","uc":"23f9","isCanonical": true},":record_button:":{"unicode":["23fa-fe0f","23fa"],"fname":"23fa","uc":"23fa","isCanonical": true},":umbrella2:":{"unicode":["2602-fe0f","2602"],"fname":"2602","uc":"2602","isCanonical": true},":snowman2:":{"unicode":["2603-fe0f","2603"],"fname":"2603","uc":"2603","isCanonical": true},":comet:":{"unicode":["2604-fe0f","2604"],"fname":"2604","uc":"2604","isCanonical": true},":shamrock:":{"unicode":["2618-fe0f","2618"],"fname":"2618","uc":"2618","isCanonical": true},":skull_crossbones:":{"unicode":["2620-fe0f","2620"],"fname":"2620","uc":"2620","isCanonical": true},":skull_and_crossbones:":{"unicode":["2620-fe0f","2620"],"fname":"2620","uc":"2620","isCanonical": false},":radioactive:":{"unicode":["2622-fe0f","2622"],"fname":"2622","uc":"2622","isCanonical": true},":radioactive_sign:":{"unicode":["2622-fe0f","2622"],"fname":"2622","uc":"2622","isCanonical": false},":biohazard:":{"unicode":["2623-fe0f","2623"],"fname":"2623","uc":"2623","isCanonical": true},":biohazard_sign:":{"unicode":["2623-fe0f","2623"],"fname":"2623","uc":"2623","isCanonical": false},":orthodox_cross:":{"unicode":["2626-fe0f","2626"],"fname":"2626","uc":"2626","isCanonical": true},":star_and_crescent:":{"unicode":["262a-fe0f","262a"],"fname":"262a","uc":"262a","isCanonical": true},":peace:":{"unicode":["262e-fe0f","262e"],"fname":"262e","uc":"262e","isCanonical": true},":peace_symbol:":{"unicode":["262e-fe0f","262e"],"fname":"262e","uc":"262e","isCanonical": false},":yin_yang:":{"unicode":["262f-fe0f","262f"],"fname":"262f","uc":"262f","isCanonical": true},":wheel_of_dharma:":{"unicode":["2638-fe0f","2638"],"fname":"2638","uc":"2638","isCanonical": true},":frowning2:":{"unicode":["2639-fe0f","2639"],"fname":"2639","uc":"2639","isCanonical": true},":white_frowning_face:":{"unicode":["2639-fe0f","2639"],"fname":"2639","uc":"2639","isCanonical": false},":hammer_pick:":{"unicode":["2692-fe0f","2692"],"fname":"2692","uc":"2692","isCanonical": true},":hammer_and_pick:":{"unicode":["2692-fe0f","2692"],"fname":"2692","uc":"2692","isCanonical": false},":crossed_swords:":{"unicode":["2694-fe0f","2694"],"fname":"2694","uc":"2694","isCanonical": true},":scales:":{"unicode":["2696-fe0f","2696"],"fname":"2696","uc":"2696","isCanonical": true},":alembic:":{"unicode":["2697-fe0f","2697"],"fname":"2697","uc":"2697","isCanonical": true},":gear:":{"unicode":["2699-fe0f","2699"],"fname":"2699","uc":"2699","isCanonical": true},":atom:":{"unicode":["269b-fe0f","269b"],"fname":"269b","uc":"269b","isCanonical": true},":atom_symbol:":{"unicode":["269b-fe0f","269b"],"fname":"269b","uc":"269b","isCanonical": false},":fleur-de-lis:":{"unicode":["269c-fe0f","269c"],"fname":"269c","uc":"269c","isCanonical": true},":coffin:":{"unicode":["26b0-fe0f","26b0"],"fname":"26b0","uc":"26b0","isCanonical": true},":urn:":{"unicode":["26b1-fe0f","26b1"],"fname":"26b1","uc":"26b1","isCanonical": true},":funeral_urn:":{"unicode":["26b1-fe0f","26b1"],"fname":"26b1","uc":"26b1","isCanonical": false},":thunder_cloud_rain:":{"unicode":["26c8-fe0f","26c8"],"fname":"26c8","uc":"26c8","isCanonical": true},":thunder_cloud_and_rain:":{"unicode":["26c8-fe0f","26c8"],"fname":"26c8","uc":"26c8","isCanonical": false},":pick:":{"unicode":["26cf-fe0f","26cf"],"fname":"26cf","uc":"26cf","isCanonical": true},":helmet_with_cross:":{"unicode":["26d1-fe0f","26d1"],"fname":"26d1","uc":"26d1","isCanonical": true},":helmet_with_white_cross:":{"unicode":["26d1-fe0f","26d1"],"fname":"26d1","uc":"26d1","isCanonical": false},":chains:":{"unicode":["26d3-fe0f","26d3"],"fname":"26d3","uc":"26d3","isCanonical": true},":shinto_shrine:":{"unicode":["26e9-fe0f","26e9"],"fname":"26e9","uc":"26e9","isCanonical": true},":mountain:":{"unicode":["26f0-fe0f","26f0"],"fname":"26f0","uc":"26f0","isCanonical": true},":beach_umbrella:":{"unicode":["26f1-fe0f","26f1"],"fname":"26f1","uc":"26f1","isCanonical": true},":umbrella_on_ground:":{"unicode":["26f1-fe0f","26f1"],"fname":"26f1","uc":"26f1","isCanonical": false},":ferry:":{"unicode":["26f4-fe0f","26f4"],"fname":"26f4","uc":"26f4","isCanonical": true},":skier:":{"unicode":["26f7-fe0f","26f7"],"fname":"26f7","uc":"26f7","isCanonical": true},":ice_skate:":{"unicode":["26f8-fe0f","26f8"],"fname":"26f8","uc":"26f8","isCanonical": true},":basketball_player:":{"unicode":["26f9-fe0f","26f9"],"fname":"26f9","uc":"26f9","isCanonical": true},":person_with_ball:":{"unicode":["26f9-fe0f","26f9"],"fname":"26f9","uc":"26f9","isCanonical": false},":star_of_david:":{"unicode":["2721-fe0f","2721"],"fname":"2721","uc":"2721","isCanonical": true},":heart_exclamation:":{"unicode":["2763-fe0f","2763"],"fname":"2763","uc":"2763","isCanonical": true},":heavy_heart_exclamation_mark_ornament:":{"unicode":["2763-fe0f","2763"],"fname":"2763","uc":"2763","isCanonical": false},":third_place:":{"unicode":["1f949"],"fname":"1f949","uc":"1f949","isCanonical": true},":third_place_medal:":{"unicode":["1f949"],"fname":"1f949","uc":"1f949","isCanonical": false},":second_place:":{"unicode":["1f948"],"fname":"1f948","uc":"1f948","isCanonical": true},":second_place_medal:":{"unicode":["1f948"],"fname":"1f948","uc":"1f948","isCanonical": false},":first_place:":{"unicode":["1f947"],"fname":"1f947","uc":"1f947","isCanonical": true},":first_place_medal:":{"unicode":["1f947"],"fname":"1f947","uc":"1f947","isCanonical": false},":fencer:":{"unicode":["1f93a"],"fname":"1f93a","uc":"1f93a","isCanonical": true},":fencing:":{"unicode":["1f93a"],"fname":"1f93a","uc":"1f93a","isCanonical": false},":goal:":{"unicode":["1f945"],"fname":"1f945","uc":"1f945","isCanonical": true},":goal_net:":{"unicode":["1f945"],"fname":"1f945","uc":"1f945","isCanonical": false},":handball:":{"unicode":["1f93e"],"fname":"1f93e","uc":"1f93e","isCanonical": true},":regional_indicator_z:":{"unicode":["1f1ff"],"fname":"1f1ff","uc":"1f1ff","isCanonical": true},":water_polo:":{"unicode":["1f93d"],"fname":"1f93d","uc":"1f93d","isCanonical": true},":martial_arts_uniform:":{"unicode":["1f94b"],"fname":"1f94b","uc":"1f94b","isCanonical": true},":karate_uniform:":{"unicode":["1f94b"],"fname":"1f94b","uc":"1f94b","isCanonical": false},":boxing_glove:":{"unicode":["1f94a"],"fname":"1f94a","uc":"1f94a","isCanonical": true},":boxing_gloves:":{"unicode":["1f94a"],"fname":"1f94a","uc":"1f94a","isCanonical": false},":wrestlers:":{"unicode":["1f93c"],"fname":"1f93c","uc":"1f93c","isCanonical": true},":wrestling:":{"unicode":["1f93c"],"fname":"1f93c","uc":"1f93c","isCanonical": false},":juggling:":{"unicode":["1f939"],"fname":"1f939","uc":"1f939","isCanonical": true},":juggler:":{"unicode":["1f939"],"fname":"1f939","uc":"1f939","isCanonical": false},":cartwheel:":{"unicode":["1f938"],"fname":"1f938","uc":"1f938","isCanonical": true},":person_doing_cartwheel:":{"unicode":["1f938"],"fname":"1f938","uc":"1f938","isCanonical": false},":canoe:":{"unicode":["1f6f6"],"fname":"1f6f6","uc":"1f6f6","isCanonical": true},":kayak:":{"unicode":["1f6f6"],"fname":"1f6f6","uc":"1f6f6","isCanonical": false},":motor_scooter:":{"unicode":["1f6f5"],"fname":"1f6f5","uc":"1f6f5","isCanonical": true},":motorbike:":{"unicode":["1f6f5"],"fname":"1f6f5","uc":"1f6f5","isCanonical": false},":scooter:":{"unicode":["1f6f4"],"fname":"1f6f4","uc":"1f6f4","isCanonical": true},":shopping_cart:":{"unicode":["1f6d2"],"fname":"1f6d2","uc":"1f6d2","isCanonical": true},":shopping_trolley:":{"unicode":["1f6d2"],"fname":"1f6d2","uc":"1f6d2","isCanonical": false},":black_joker:":{"unicode":["1f0cf"],"fname":"1f0cf","uc":"1f0cf","isCanonical": true},":a:":{"unicode":["1f170"],"fname":"1f170","uc":"1f170","isCanonical": true},":b:":{"unicode":["1f171"],"fname":"1f171","uc":"1f171","isCanonical": true},":o2:":{"unicode":["1f17e"],"fname":"1f17e","uc":"1f17e","isCanonical": true},":octagonal_sign:":{"unicode":["1f6d1"],"fname":"1f6d1","uc":"1f6d1","isCanonical": true},":stop_sign:":{"unicode":["1f6d1"],"fname":"1f6d1","uc":"1f6d1","isCanonical": false},":ab:":{"unicode":["1f18e"],"fname":"1f18e","uc":"1f18e","isCanonical": true},":cl:":{"unicode":["1f191"],"fname":"1f191","uc":"1f191","isCanonical": true},":regional_indicator_y:":{"unicode":["1f1fe"],"fname":"1f1fe","uc":"1f1fe","isCanonical": true},":cool:":{"unicode":["1f192"],"fname":"1f192","uc":"1f192","isCanonical": true},":free:":{"unicode":["1f193"],"fname":"1f193","uc":"1f193","isCanonical": true},":id:":{"unicode":["1f194"],"fname":"1f194","uc":"1f194","isCanonical": true},":new:":{"unicode":["1f195"],"fname":"1f195","uc":"1f195","isCanonical": true},":ng:":{"unicode":["1f196"],"fname":"1f196","uc":"1f196","isCanonical": true},":ok:":{"unicode":["1f197"],"fname":"1f197","uc":"1f197","isCanonical": true},":sos:":{"unicode":["1f198"],"fname":"1f198","uc":"1f198","isCanonical": true},":spoon:":{"unicode":["1f944"],"fname":"1f944","uc":"1f944","isCanonical": true},":up:":{"unicode":["1f199"],"fname":"1f199","uc":"1f199","isCanonical": true},":vs:":{"unicode":["1f19a"],"fname":"1f19a","uc":"1f19a","isCanonical": true},":champagne_glass:":{"unicode":["1f942"],"fname":"1f942","uc":"1f942","isCanonical": true},":clinking_glass:":{"unicode":["1f942"],"fname":"1f942","uc":"1f942","isCanonical": false},":tumbler_glass:":{"unicode":["1f943"],"fname":"1f943","uc":"1f943","isCanonical": true},":whisky:":{"unicode":["1f943"],"fname":"1f943","uc":"1f943","isCanonical": false},":koko:":{"unicode":["1f201"],"fname":"1f201","uc":"1f201","isCanonical": true},":stuffed_flatbread:":{"unicode":["1f959"],"fname":"1f959","uc":"1f959","isCanonical": true},":stuffed_pita:":{"unicode":["1f959"],"fname":"1f959","uc":"1f959","isCanonical": false},":u7981:":{"unicode":["1f232"],"fname":"1f232","uc":"1f232","isCanonical": true},":u7a7a:":{"unicode":["1f233"],"fname":"1f233","uc":"1f233","isCanonical": true},":u5408:":{"unicode":["1f234"],"fname":"1f234","uc":"1f234","isCanonical": true},":u6e80:":{"unicode":["1f235"],"fname":"1f235","uc":"1f235","isCanonical": true},":u6709:":{"unicode":["1f236"],"fname":"1f236","uc":"1f236","isCanonical": true},":shallow_pan_of_food:":{"unicode":["1f958"],"fname":"1f958","uc":"1f958","isCanonical": true},":paella:":{"unicode":["1f958"],"fname":"1f958","uc":"1f958","isCanonical": false},":u7533:":{"unicode":["1f238"],"fname":"1f238","uc":"1f238","isCanonical": true},":u5272:":{"unicode":["1f239"],"fname":"1f239","uc":"1f239","isCanonical": true},":salad:":{"unicode":["1f957"],"fname":"1f957","uc":"1f957","isCanonical": true},":green_salad:":{"unicode":["1f957"],"fname":"1f957","uc":"1f957","isCanonical": false},":u55b6:":{"unicode":["1f23a"],"fname":"1f23a","uc":"1f23a","isCanonical": true},":ideograph_advantage:":{"unicode":["1f250"],"fname":"1f250","uc":"1f250","isCanonical": true},":accept:":{"unicode":["1f251"],"fname":"1f251","uc":"1f251","isCanonical": true},":cyclone:":{"unicode":["1f300"],"fname":"1f300","uc":"1f300","isCanonical": true},":french_bread:":{"unicode":["1f956"],"fname":"1f956","uc":"1f956","isCanonical": true},":baguette_bread:":{"unicode":["1f956"],"fname":"1f956","uc":"1f956","isCanonical": false},":foggy:":{"unicode":["1f301"],"fname":"1f301","uc":"1f301","isCanonical": true},":closed_umbrella:":{"unicode":["1f302"],"fname":"1f302","uc":"1f302","isCanonical": true},":night_with_stars:":{"unicode":["1f303"],"fname":"1f303","uc":"1f303","isCanonical": true},":sunrise_over_mountains:":{"unicode":["1f304"],"fname":"1f304","uc":"1f304","isCanonical": true},":sunrise:":{"unicode":["1f305"],"fname":"1f305","uc":"1f305","isCanonical": true},":city_dusk:":{"unicode":["1f306"],"fname":"1f306","uc":"1f306","isCanonical": true},":carrot:":{"unicode":["1f955"],"fname":"1f955","uc":"1f955","isCanonical": true},":city_sunset:":{"unicode":["1f307"],"fname":"1f307","uc":"1f307","isCanonical": true},":city_sunrise:":{"unicode":["1f307"],"fname":"1f307","uc":"1f307","isCanonical": false},":rainbow:":{"unicode":["1f308"],"fname":"1f308","uc":"1f308","isCanonical": true},":potato:":{"unicode":["1f954"],"fname":"1f954","uc":"1f954","isCanonical": true},":bridge_at_night:":{"unicode":["1f309"],"fname":"1f309","uc":"1f309","isCanonical": true},":ocean:":{"unicode":["1f30a"],"fname":"1f30a","uc":"1f30a","isCanonical": true},":volcano:":{"unicode":["1f30b"],"fname":"1f30b","uc":"1f30b","isCanonical": true},":milky_way:":{"unicode":["1f30c"],"fname":"1f30c","uc":"1f30c","isCanonical": true},":earth_asia:":{"unicode":["1f30f"],"fname":"1f30f","uc":"1f30f","isCanonical": true},":new_moon:":{"unicode":["1f311"],"fname":"1f311","uc":"1f311","isCanonical": true},":bacon:":{"unicode":["1f953"],"fname":"1f953","uc":"1f953","isCanonical": true},":first_quarter_moon:":{"unicode":["1f313"],"fname":"1f313","uc":"1f313","isCanonical": true},":waxing_gibbous_moon:":{"unicode":["1f314"],"fname":"1f314","uc":"1f314","isCanonical": true},":full_moon:":{"unicode":["1f315"],"fname":"1f315","uc":"1f315","isCanonical": true},":crescent_moon:":{"unicode":["1f319"],"fname":"1f319","uc":"1f319","isCanonical": true},":first_quarter_moon_with_face:":{"unicode":["1f31b"],"fname":"1f31b","uc":"1f31b","isCanonical": true},":star2:":{"unicode":["1f31f"],"fname":"1f31f","uc":"1f31f","isCanonical": true},":cucumber:":{"unicode":["1f952"],"fname":"1f952","uc":"1f952","isCanonical": true},":stars:":{"unicode":["1f320"],"fname":"1f320","uc":"1f320","isCanonical": true},":chestnut:":{"unicode":["1f330"],"fname":"1f330","uc":"1f330","isCanonical": true},":avocado:":{"unicode":["1f951"],"fname":"1f951","uc":"1f951","isCanonical": true},":seedling:":{"unicode":["1f331"],"fname":"1f331","uc":"1f331","isCanonical": true},":palm_tree:":{"unicode":["1f334"],"fname":"1f334","uc":"1f334","isCanonical": true},":cactus:":{"unicode":["1f335"],"fname":"1f335","uc":"1f335","isCanonical": true},":tulip:":{"unicode":["1f337"],"fname":"1f337","uc":"1f337","isCanonical": true},":cherry_blossom:":{"unicode":["1f338"],"fname":"1f338","uc":"1f338","isCanonical": true},":rose:":{"unicode":["1f339"],"fname":"1f339","uc":"1f339","isCanonical": true},":hibiscus:":{"unicode":["1f33a"],"fname":"1f33a","uc":"1f33a","isCanonical": true},":sunflower:":{"unicode":["1f33b"],"fname":"1f33b","uc":"1f33b","isCanonical": true},":blossom:":{"unicode":["1f33c"],"fname":"1f33c","uc":"1f33c","isCanonical": true},":corn:":{"unicode":["1f33d"],"fname":"1f33d","uc":"1f33d","isCanonical": true},":croissant:":{"unicode":["1f950"],"fname":"1f950","uc":"1f950","isCanonical": true},":ear_of_rice:":{"unicode":["1f33e"],"fname":"1f33e","uc":"1f33e","isCanonical": true},":herb:":{"unicode":["1f33f"],"fname":"1f33f","uc":"1f33f","isCanonical": true},":four_leaf_clover:":{"unicode":["1f340"],"fname":"1f340","uc":"1f340","isCanonical": true},":maple_leaf:":{"unicode":["1f341"],"fname":"1f341","uc":"1f341","isCanonical": true},":fallen_leaf:":{"unicode":["1f342"],"fname":"1f342","uc":"1f342","isCanonical": true},":leaves:":{"unicode":["1f343"],"fname":"1f343","uc":"1f343","isCanonical": true},":mushroom:":{"unicode":["1f344"],"fname":"1f344","uc":"1f344","isCanonical": true},":tomato:":{"unicode":["1f345"],"fname":"1f345","uc":"1f345","isCanonical": true},":eggplant:":{"unicode":["1f346"],"fname":"1f346","uc":"1f346","isCanonical": true},":grapes:":{"unicode":["1f347"],"fname":"1f347","uc":"1f347","isCanonical": true},":melon:":{"unicode":["1f348"],"fname":"1f348","uc":"1f348","isCanonical": true},":watermelon:":{"unicode":["1f349"],"fname":"1f349","uc":"1f349","isCanonical": true},":tangerine:":{"unicode":["1f34a"],"fname":"1f34a","uc":"1f34a","isCanonical": true},":wilted_rose:":{"unicode":["1f940"],"fname":"1f940","uc":"1f940","isCanonical": true},":wilted_flower:":{"unicode":["1f940"],"fname":"1f940","uc":"1f940","isCanonical": false},":banana:":{"unicode":["1f34c"],"fname":"1f34c","uc":"1f34c","isCanonical": true},":pineapple:":{"unicode":["1f34d"],"fname":"1f34d","uc":"1f34d","isCanonical": true},":apple:":{"unicode":["1f34e"],"fname":"1f34e","uc":"1f34e","isCanonical": true},":green_apple:":{"unicode":["1f34f"],"fname":"1f34f","uc":"1f34f","isCanonical": true},":peach:":{"unicode":["1f351"],"fname":"1f351","uc":"1f351","isCanonical": true},":cherries:":{"unicode":["1f352"],"fname":"1f352","uc":"1f352","isCanonical": true},":strawberry:":{"unicode":["1f353"],"fname":"1f353","uc":"1f353","isCanonical": true},":rhino:":{"unicode":["1f98f"],"fname":"1f98f","uc":"1f98f","isCanonical": true},":rhinoceros:":{"unicode":["1f98f"],"fname":"1f98f","uc":"1f98f","isCanonical": false},":hamburger:":{"unicode":["1f354"],"fname":"1f354","uc":"1f354","isCanonical": true},":pizza:":{"unicode":["1f355"],"fname":"1f355","uc":"1f355","isCanonical": true},":meat_on_bone:":{"unicode":["1f356"],"fname":"1f356","uc":"1f356","isCanonical": true},":lizard:":{"unicode":["1f98e"],"fname":"1f98e","uc":"1f98e","isCanonical": true},":poultry_leg:":{"unicode":["1f357"],"fname":"1f357","uc":"1f357","isCanonical": true},":rice_cracker:":{"unicode":["1f358"],"fname":"1f358","uc":"1f358","isCanonical": true},":rice_ball:":{"unicode":["1f359"],"fname":"1f359","uc":"1f359","isCanonical": true},":gorilla:":{"unicode":["1f98d"],"fname":"1f98d","uc":"1f98d","isCanonical": true},":rice:":{"unicode":["1f35a"],"fname":"1f35a","uc":"1f35a","isCanonical": true},":curry:":{"unicode":["1f35b"],"fname":"1f35b","uc":"1f35b","isCanonical": true},":deer:":{"unicode":["1f98c"],"fname":"1f98c","uc":"1f98c","isCanonical": true},":ramen:":{"unicode":["1f35c"],"fname":"1f35c","uc":"1f35c","isCanonical": true},":spaghetti:":{"unicode":["1f35d"],"fname":"1f35d","uc":"1f35d","isCanonical": true},":bread:":{"unicode":["1f35e"],"fname":"1f35e","uc":"1f35e","isCanonical": true},":fries:":{"unicode":["1f35f"],"fname":"1f35f","uc":"1f35f","isCanonical": true},":butterfly:":{"unicode":["1f98b"],"fname":"1f98b","uc":"1f98b","isCanonical": true},":sweet_potato:":{"unicode":["1f360"],"fname":"1f360","uc":"1f360","isCanonical": true},":dango:":{"unicode":["1f361"],"fname":"1f361","uc":"1f361","isCanonical": true},":fox:":{"unicode":["1f98a"],"fname":"1f98a","uc":"1f98a","isCanonical": true},":fox_face:":{"unicode":["1f98a"],"fname":"1f98a","uc":"1f98a","isCanonical": false},":oden:":{"unicode":["1f362"],"fname":"1f362","uc":"1f362","isCanonical": true},":sushi:":{"unicode":["1f363"],"fname":"1f363","uc":"1f363","isCanonical": true},":owl:":{"unicode":["1f989"],"fname":"1f989","uc":"1f989","isCanonical": true},":fried_shrimp:":{"unicode":["1f364"],"fname":"1f364","uc":"1f364","isCanonical": true},":fish_cake:":{"unicode":["1f365"],"fname":"1f365","uc":"1f365","isCanonical": true},":shark:":{"unicode":["1f988"],"fname":"1f988","uc":"1f988","isCanonical": true},":icecream:":{"unicode":["1f366"],"fname":"1f366","uc":"1f366","isCanonical": true},":bat:":{"unicode":["1f987"],"fname":"1f987","uc":"1f987","isCanonical": true},":shaved_ice:":{"unicode":["1f367"],"fname":"1f367","uc":"1f367","isCanonical": true},":regional_indicator_x:":{"unicode":["1f1fd"],"fname":"1f1fd","uc":"1f1fd","isCanonical": true},":ice_cream:":{"unicode":["1f368"],"fname":"1f368","uc":"1f368","isCanonical": true},":duck:":{"unicode":["1f986"],"fname":"1f986","uc":"1f986","isCanonical": true},":doughnut:":{"unicode":["1f369"],"fname":"1f369","uc":"1f369","isCanonical": true},":eagle:":{"unicode":["1f985"],"fname":"1f985","uc":"1f985","isCanonical": true},":cookie:":{"unicode":["1f36a"],"fname":"1f36a","uc":"1f36a","isCanonical": true},":black_heart:":{"unicode":["1f5a4"],"fname":"1f5a4","uc":"1f5a4","isCanonical": true},":chocolate_bar:":{"unicode":["1f36b"],"fname":"1f36b","uc":"1f36b","isCanonical": true},":candy:":{"unicode":["1f36c"],"fname":"1f36c","uc":"1f36c","isCanonical": true},":lollipop:":{"unicode":["1f36d"],"fname":"1f36d","uc":"1f36d","isCanonical": true},":custard:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": true},":pudding:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": false},":flan:":{"unicode":["1f36e"],"fname":"1f36e","uc":"1f36e","isCanonical": false},":honey_pot:":{"unicode":["1f36f"],"fname":"1f36f","uc":"1f36f","isCanonical": true},":fingers_crossed:":{"unicode":["1f91e"],"fname":"1f91e","uc":"1f91e","isCanonical": true},":hand_with_index_and_middle_finger_crossed:":{"unicode":["1f91e"],"fname":"1f91e","uc":"1f91e","isCanonical": false},":cake:":{"unicode":["1f370"],"fname":"1f370","uc":"1f370","isCanonical": true},":bento:":{"unicode":["1f371"],"fname":"1f371","uc":"1f371","isCanonical": true},":stew:":{"unicode":["1f372"],"fname":"1f372","uc":"1f372","isCanonical": true},":handshake:":{"unicode":["1f91d"],"fname":"1f91d","uc":"1f91d","isCanonical": true},":shaking_hands:":{"unicode":["1f91d"],"fname":"1f91d","uc":"1f91d","isCanonical": false},":cooking:":{"unicode":["1f373"],"fname":"1f373","uc":"1f373","isCanonical": true},":fork_and_knife:":{"unicode":["1f374"],"fname":"1f374","uc":"1f374","isCanonical": true},":tea:":{"unicode":["1f375"],"fname":"1f375","uc":"1f375","isCanonical": true},":sake:":{"unicode":["1f376"],"fname":"1f376","uc":"1f376","isCanonical": true},":wine_glass:":{"unicode":["1f377"],"fname":"1f377","uc":"1f377","isCanonical": true},":cocktail:":{"unicode":["1f378"],"fname":"1f378","uc":"1f378","isCanonical": true},":tropical_drink:":{"unicode":["1f379"],"fname":"1f379","uc":"1f379","isCanonical": true},":beer:":{"unicode":["1f37a"],"fname":"1f37a","uc":"1f37a","isCanonical": true},":beers:":{"unicode":["1f37b"],"fname":"1f37b","uc":"1f37b","isCanonical": true},":ribbon:":{"unicode":["1f380"],"fname":"1f380","uc":"1f380","isCanonical": true},":gift:":{"unicode":["1f381"],"fname":"1f381","uc":"1f381","isCanonical": true},":birthday:":{"unicode":["1f382"],"fname":"1f382","uc":"1f382","isCanonical": true},":jack_o_lantern:":{"unicode":["1f383"],"fname":"1f383","uc":"1f383","isCanonical": true},":left_facing_fist:":{"unicode":["1f91b"],"fname":"1f91b","uc":"1f91b","isCanonical": true},":left_fist:":{"unicode":["1f91b"],"fname":"1f91b","uc":"1f91b","isCanonical": false},":right_facing_fist:":{"unicode":["1f91c"],"fname":"1f91c","uc":"1f91c","isCanonical": true},":right_fist:":{"unicode":["1f91c"],"fname":"1f91c","uc":"1f91c","isCanonical": false},":christmas_tree:":{"unicode":["1f384"],"fname":"1f384","uc":"1f384","isCanonical": true},":santa:":{"unicode":["1f385"],"fname":"1f385","uc":"1f385","isCanonical": true},":fireworks:":{"unicode":["1f386"],"fname":"1f386","uc":"1f386","isCanonical": true},":raised_back_of_hand:":{"unicode":["1f91a"],"fname":"1f91a","uc":"1f91a","isCanonical": true},":back_of_hand:":{"unicode":["1f91a"],"fname":"1f91a","uc":"1f91a","isCanonical": false},":sparkler:":{"unicode":["1f387"],"fname":"1f387","uc":"1f387","isCanonical": true},":balloon:":{"unicode":["1f388"],"fname":"1f388","uc":"1f388","isCanonical": true},":tada:":{"unicode":["1f389"],"fname":"1f389","uc":"1f389","isCanonical": true},":confetti_ball:":{"unicode":["1f38a"],"fname":"1f38a","uc":"1f38a","isCanonical": true},":tanabata_tree:":{"unicode":["1f38b"],"fname":"1f38b","uc":"1f38b","isCanonical": true},":crossed_flags:":{"unicode":["1f38c"],"fname":"1f38c","uc":"1f38c","isCanonical": true},":call_me:":{"unicode":["1f919"],"fname":"1f919","uc":"1f919","isCanonical": true},":call_me_hand:":{"unicode":["1f919"],"fname":"1f919","uc":"1f919","isCanonical": false},":bamboo:":{"unicode":["1f38d"],"fname":"1f38d","uc":"1f38d","isCanonical": true},":man_dancing:":{"unicode":["1f57a"],"fname":"1f57a","uc":"1f57a","isCanonical": true},":male_dancer:":{"unicode":["1f57a"],"fname":"1f57a","uc":"1f57a","isCanonical": false},":dolls:":{"unicode":["1f38e"],"fname":"1f38e","uc":"1f38e","isCanonical": true},":selfie:":{"unicode":["1f933"],"fname":"1f933","uc":"1f933","isCanonical": true},":flags:":{"unicode":["1f38f"],"fname":"1f38f","uc":"1f38f","isCanonical": true},":pregnant_woman:":{"unicode":["1f930"],"fname":"1f930","uc":"1f930","isCanonical": true},":expecting_woman:":{"unicode":["1f930"],"fname":"1f930","uc":"1f930","isCanonical": false},":wind_chime:":{"unicode":["1f390"],"fname":"1f390","uc":"1f390","isCanonical": true},":face_palm:":{"unicode":["1f926"],"fname":"1f926","uc":"1f926","isCanonical": true},":facepalm:":{"unicode":["1f926"],"fname":"1f926","uc":"1f926","isCanonical": false},":shrug:":{"unicode":["1f937"],"fname":"1f937","uc":"1f937","isCanonical": true},":rice_scene:":{"unicode":["1f391"],"fname":"1f391","uc":"1f391","isCanonical": true},":school_satchel:":{"unicode":["1f392"],"fname":"1f392","uc":"1f392","isCanonical": true},":mortar_board:":{"unicode":["1f393"],"fname":"1f393","uc":"1f393","isCanonical": true},":carousel_horse:":{"unicode":["1f3a0"],"fname":"1f3a0","uc":"1f3a0","isCanonical": true},":ferris_wheel:":{"unicode":["1f3a1"],"fname":"1f3a1","uc":"1f3a1","isCanonical": true},":roller_coaster:":{"unicode":["1f3a2"],"fname":"1f3a2","uc":"1f3a2","isCanonical": true},":fishing_pole_and_fish:":{"unicode":["1f3a3"],"fname":"1f3a3","uc":"1f3a3","isCanonical": true},":microphone:":{"unicode":["1f3a4"],"fname":"1f3a4","uc":"1f3a4","isCanonical": true},":movie_camera:":{"unicode":["1f3a5"],"fname":"1f3a5","uc":"1f3a5","isCanonical": true},":cinema:":{"unicode":["1f3a6"],"fname":"1f3a6","uc":"1f3a6","isCanonical": true},":headphones:":{"unicode":["1f3a7"],"fname":"1f3a7","uc":"1f3a7","isCanonical": true},":mrs_claus:":{"unicode":["1f936"],"fname":"1f936","uc":"1f936","isCanonical": true},":mother_christmas:":{"unicode":["1f936"],"fname":"1f936","uc":"1f936","isCanonical": false},":art:":{"unicode":["1f3a8"],"fname":"1f3a8","uc":"1f3a8","isCanonical": true},":man_in_tuxedo:":{"unicode":["1f935"],"fname":"1f935","uc":"1f935","isCanonical": true},":tophat:":{"unicode":["1f3a9"],"fname":"1f3a9","uc":"1f3a9","isCanonical": true},":circus_tent:":{"unicode":["1f3aa"],"fname":"1f3aa","uc":"1f3aa","isCanonical": true},":prince:":{"unicode":["1f934"],"fname":"1f934","uc":"1f934","isCanonical": true},":ticket:":{"unicode":["1f3ab"],"fname":"1f3ab","uc":"1f3ab","isCanonical": true},":clapper:":{"unicode":["1f3ac"],"fname":"1f3ac","uc":"1f3ac","isCanonical": true},":performing_arts:":{"unicode":["1f3ad"],"fname":"1f3ad","uc":"1f3ad","isCanonical": true},":sneezing_face:":{"unicode":["1f927"],"fname":"1f927","uc":"1f927","isCanonical": true},":sneeze:":{"unicode":["1f927"],"fname":"1f927","uc":"1f927","isCanonical": false},":video_game:":{"unicode":["1f3ae"],"fname":"1f3ae","uc":"1f3ae","isCanonical": true},":dart:":{"unicode":["1f3af"],"fname":"1f3af","uc":"1f3af","isCanonical": true},":slot_machine:":{"unicode":["1f3b0"],"fname":"1f3b0","uc":"1f3b0","isCanonical": true},":8ball:":{"unicode":["1f3b1"],"fname":"1f3b1","uc":"1f3b1","isCanonical": true},":game_die:":{"unicode":["1f3b2"],"fname":"1f3b2","uc":"1f3b2","isCanonical": true},":bowling:":{"unicode":["1f3b3"],"fname":"1f3b3","uc":"1f3b3","isCanonical": true},":flower_playing_cards:":{"unicode":["1f3b4"],"fname":"1f3b4","uc":"1f3b4","isCanonical": true},":lying_face:":{"unicode":["1f925"],"fname":"1f925","uc":"1f925","isCanonical": true},":liar:":{"unicode":["1f925"],"fname":"1f925","uc":"1f925","isCanonical": false},":musical_note:":{"unicode":["1f3b5"],"fname":"1f3b5","uc":"1f3b5","isCanonical": true},":notes:":{"unicode":["1f3b6"],"fname":"1f3b6","uc":"1f3b6","isCanonical": true},":saxophone:":{"unicode":["1f3b7"],"fname":"1f3b7","uc":"1f3b7","isCanonical": true},":drooling_face:":{"unicode":["1f924"],"fname":"1f924","uc":"1f924","isCanonical": true},":drool:":{"unicode":["1f924"],"fname":"1f924","uc":"1f924","isCanonical": false},":guitar:":{"unicode":["1f3b8"],"fname":"1f3b8","uc":"1f3b8","isCanonical": true},":musical_keyboard:":{"unicode":["1f3b9"],"fname":"1f3b9","uc":"1f3b9","isCanonical": true},":trumpet:":{"unicode":["1f3ba"],"fname":"1f3ba","uc":"1f3ba","isCanonical": true},":rofl:":{"unicode":["1f923"],"fname":"1f923","uc":"1f923","isCanonical": true},":rolling_on_the_floor_laughing:":{"unicode":["1f923"],"fname":"1f923","uc":"1f923","isCanonical": false},":violin:":{"unicode":["1f3bb"],"fname":"1f3bb","uc":"1f3bb","isCanonical": true},":musical_score:":{"unicode":["1f3bc"],"fname":"1f3bc","uc":"1f3bc","isCanonical": true},":running_shirt_with_sash:":{"unicode":["1f3bd"],"fname":"1f3bd","uc":"1f3bd","isCanonical": true},":nauseated_face:":{"unicode":["1f922"],"fname":"1f922","uc":"1f922","isCanonical": true},":sick:":{"unicode":["1f922"],"fname":"1f922","uc":"1f922","isCanonical": false},":tennis:":{"unicode":["1f3be"],"fname":"1f3be","uc":"1f3be","isCanonical": true},":ski:":{"unicode":["1f3bf"],"fname":"1f3bf","uc":"1f3bf","isCanonical": true},":basketball:":{"unicode":["1f3c0"],"fname":"1f3c0","uc":"1f3c0","isCanonical": true},":checkered_flag:":{"unicode":["1f3c1"],"fname":"1f3c1","uc":"1f3c1","isCanonical": true},":clown:":{"unicode":["1f921"],"fname":"1f921","uc":"1f921","isCanonical": true},":clown_face:":{"unicode":["1f921"],"fname":"1f921","uc":"1f921","isCanonical": false},":snowboarder:":{"unicode":["1f3c2"],"fname":"1f3c2","uc":"1f3c2","isCanonical": true},":runner:":{"unicode":["1f3c3"],"fname":"1f3c3","uc":"1f3c3","isCanonical": true},":surfer:":{"unicode":["1f3c4"],"fname":"1f3c4","uc":"1f3c4","isCanonical": true},":trophy:":{"unicode":["1f3c6"],"fname":"1f3c6","uc":"1f3c6","isCanonical": true},":football:":{"unicode":["1f3c8"],"fname":"1f3c8","uc":"1f3c8","isCanonical": true},":swimmer:":{"unicode":["1f3ca"],"fname":"1f3ca","uc":"1f3ca","isCanonical": true},":house:":{"unicode":["1f3e0"],"fname":"1f3e0","uc":"1f3e0","isCanonical": true},":house_with_garden:":{"unicode":["1f3e1"],"fname":"1f3e1","uc":"1f3e1","isCanonical": true},":office:":{"unicode":["1f3e2"],"fname":"1f3e2","uc":"1f3e2","isCanonical": true},":post_office:":{"unicode":["1f3e3"],"fname":"1f3e3","uc":"1f3e3","isCanonical": true},":hospital:":{"unicode":["1f3e5"],"fname":"1f3e5","uc":"1f3e5","isCanonical": true},":bank:":{"unicode":["1f3e6"],"fname":"1f3e6","uc":"1f3e6","isCanonical": true},":atm:":{"unicode":["1f3e7"],"fname":"1f3e7","uc":"1f3e7","isCanonical": true},":hotel:":{"unicode":["1f3e8"],"fname":"1f3e8","uc":"1f3e8","isCanonical": true},":love_hotel:":{"unicode":["1f3e9"],"fname":"1f3e9","uc":"1f3e9","isCanonical": true},":convenience_store:":{"unicode":["1f3ea"],"fname":"1f3ea","uc":"1f3ea","isCanonical": true},":school:":{"unicode":["1f3eb"],"fname":"1f3eb","uc":"1f3eb","isCanonical": true},":department_store:":{"unicode":["1f3ec"],"fname":"1f3ec","uc":"1f3ec","isCanonical": true},":cowboy:":{"unicode":["1f920"],"fname":"1f920","uc":"1f920","isCanonical": true},":face_with_cowboy_hat:":{"unicode":["1f920"],"fname":"1f920","uc":"1f920","isCanonical": false},":factory:":{"unicode":["1f3ed"],"fname":"1f3ed","uc":"1f3ed","isCanonical": true},":izakaya_lantern:":{"unicode":["1f3ee"],"fname":"1f3ee","uc":"1f3ee","isCanonical": true},":japanese_castle:":{"unicode":["1f3ef"],"fname":"1f3ef","uc":"1f3ef","isCanonical": true},":european_castle:":{"unicode":["1f3f0"],"fname":"1f3f0","uc":"1f3f0","isCanonical": true},":snail:":{"unicode":["1f40c"],"fname":"1f40c","uc":"1f40c","isCanonical": true},":snake:":{"unicode":["1f40d"],"fname":"1f40d","uc":"1f40d","isCanonical": true},":racehorse:":{"unicode":["1f40e"],"fname":"1f40e","uc":"1f40e","isCanonical": true},":sheep:":{"unicode":["1f411"],"fname":"1f411","uc":"1f411","isCanonical": true},":monkey:":{"unicode":["1f412"],"fname":"1f412","uc":"1f412","isCanonical": true},":chicken:":{"unicode":["1f414"],"fname":"1f414","uc":"1f414","isCanonical": true},":boar:":{"unicode":["1f417"],"fname":"1f417","uc":"1f417","isCanonical": true},":elephant:":{"unicode":["1f418"],"fname":"1f418","uc":"1f418","isCanonical": true},":octopus:":{"unicode":["1f419"],"fname":"1f419","uc":"1f419","isCanonical": true},":shell:":{"unicode":["1f41a"],"fname":"1f41a","uc":"1f41a","isCanonical": true},":bug:":{"unicode":["1f41b"],"fname":"1f41b","uc":"1f41b","isCanonical": true},":ant:":{"unicode":["1f41c"],"fname":"1f41c","uc":"1f41c","isCanonical": true},":bee:":{"unicode":["1f41d"],"fname":"1f41d","uc":"1f41d","isCanonical": true},":beetle:":{"unicode":["1f41e"],"fname":"1f41e","uc":"1f41e","isCanonical": true},":fish:":{"unicode":["1f41f"],"fname":"1f41f","uc":"1f41f","isCanonical": true},":tropical_fish:":{"unicode":["1f420"],"fname":"1f420","uc":"1f420","isCanonical": true},":blowfish:":{"unicode":["1f421"],"fname":"1f421","uc":"1f421","isCanonical": true},":turtle:":{"unicode":["1f422"],"fname":"1f422","uc":"1f422","isCanonical": true},":hatching_chick:":{"unicode":["1f423"],"fname":"1f423","uc":"1f423","isCanonical": true},":baby_chick:":{"unicode":["1f424"],"fname":"1f424","uc":"1f424","isCanonical": true},":hatched_chick:":{"unicode":["1f425"],"fname":"1f425","uc":"1f425","isCanonical": true},":bird:":{"unicode":["1f426"],"fname":"1f426","uc":"1f426","isCanonical": true},":penguin:":{"unicode":["1f427"],"fname":"1f427","uc":"1f427","isCanonical": true},":koala:":{"unicode":["1f428"],"fname":"1f428","uc":"1f428","isCanonical": true},":poodle:":{"unicode":["1f429"],"fname":"1f429","uc":"1f429","isCanonical": true},":camel:":{"unicode":["1f42b"],"fname":"1f42b","uc":"1f42b","isCanonical": true},":dolphin:":{"unicode":["1f42c"],"fname":"1f42c","uc":"1f42c","isCanonical": true},":mouse:":{"unicode":["1f42d"],"fname":"1f42d","uc":"1f42d","isCanonical": true},":cow:":{"unicode":["1f42e"],"fname":"1f42e","uc":"1f42e","isCanonical": true},":tiger:":{"unicode":["1f42f"],"fname":"1f42f","uc":"1f42f","isCanonical": true},":rabbit:":{"unicode":["1f430"],"fname":"1f430","uc":"1f430","isCanonical": true},":cat:":{"unicode":["1f431"],"fname":"1f431","uc":"1f431","isCanonical": true},":dragon_face:":{"unicode":["1f432"],"fname":"1f432","uc":"1f432","isCanonical": true},":whale:":{"unicode":["1f433"],"fname":"1f433","uc":"1f433","isCanonical": true},":horse:":{"unicode":["1f434"],"fname":"1f434","uc":"1f434","isCanonical": true},":monkey_face:":{"unicode":["1f435"],"fname":"1f435","uc":"1f435","isCanonical": true},":dog:":{"unicode":["1f436"],"fname":"1f436","uc":"1f436","isCanonical": true},":pig:":{"unicode":["1f437"],"fname":"1f437","uc":"1f437","isCanonical": true},":frog:":{"unicode":["1f438"],"fname":"1f438","uc":"1f438","isCanonical": true},":hamster:":{"unicode":["1f439"],"fname":"1f439","uc":"1f439","isCanonical": true},":wolf:":{"unicode":["1f43a"],"fname":"1f43a","uc":"1f43a","isCanonical": true},":bear:":{"unicode":["1f43b"],"fname":"1f43b","uc":"1f43b","isCanonical": true},":panda_face:":{"unicode":["1f43c"],"fname":"1f43c","uc":"1f43c","isCanonical": true},":pig_nose:":{"unicode":["1f43d"],"fname":"1f43d","uc":"1f43d","isCanonical": true},":feet:":{"unicode":["1f43e"],"fname":"1f43e","uc":"1f43e","isCanonical": true},":paw_prints:":{"unicode":["1f43e"],"fname":"1f43e","uc":"1f43e","isCanonical": false},":eyes:":{"unicode":["1f440"],"fname":"1f440","uc":"1f440","isCanonical": true},":ear:":{"unicode":["1f442"],"fname":"1f442","uc":"1f442","isCanonical": true},":nose:":{"unicode":["1f443"],"fname":"1f443","uc":"1f443","isCanonical": true},":lips:":{"unicode":["1f444"],"fname":"1f444","uc":"1f444","isCanonical": true},":tongue:":{"unicode":["1f445"],"fname":"1f445","uc":"1f445","isCanonical": true},":point_up_2:":{"unicode":["1f446"],"fname":"1f446","uc":"1f446","isCanonical": true},":point_down:":{"unicode":["1f447"],"fname":"1f447","uc":"1f447","isCanonical": true},":point_left:":{"unicode":["1f448"],"fname":"1f448","uc":"1f448","isCanonical": true},":point_right:":{"unicode":["1f449"],"fname":"1f449","uc":"1f449","isCanonical": true},":punch:":{"unicode":["1f44a"],"fname":"1f44a","uc":"1f44a","isCanonical": true},":wave:":{"unicode":["1f44b"],"fname":"1f44b","uc":"1f44b","isCanonical": true},":ok_hand:":{"unicode":["1f44c"],"fname":"1f44c","uc":"1f44c","isCanonical": true},":thumbsup:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": true},":+1:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": false},":thumbup:":{"unicode":["1f44d"],"fname":"1f44d","uc":"1f44d","isCanonical": false},":thumbsdown:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": true},":-1:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": false},":thumbdown:":{"unicode":["1f44e"],"fname":"1f44e","uc":"1f44e","isCanonical": false},":clap:":{"unicode":["1f44f"],"fname":"1f44f","uc":"1f44f","isCanonical": true},":open_hands:":{"unicode":["1f450"],"fname":"1f450","uc":"1f450","isCanonical": true},":crown:":{"unicode":["1f451"],"fname":"1f451","uc":"1f451","isCanonical": true},":womans_hat:":{"unicode":["1f452"],"fname":"1f452","uc":"1f452","isCanonical": true},":eyeglasses:":{"unicode":["1f453"],"fname":"1f453","uc":"1f453","isCanonical": true},":necktie:":{"unicode":["1f454"],"fname":"1f454","uc":"1f454","isCanonical": true},":shirt:":{"unicode":["1f455"],"fname":"1f455","uc":"1f455","isCanonical": true},":jeans:":{"unicode":["1f456"],"fname":"1f456","uc":"1f456","isCanonical": true},":dress:":{"unicode":["1f457"],"fname":"1f457","uc":"1f457","isCanonical": true},":kimono:":{"unicode":["1f458"],"fname":"1f458","uc":"1f458","isCanonical": true},":bikini:":{"unicode":["1f459"],"fname":"1f459","uc":"1f459","isCanonical": true},":womans_clothes:":{"unicode":["1f45a"],"fname":"1f45a","uc":"1f45a","isCanonical": true},":purse:":{"unicode":["1f45b"],"fname":"1f45b","uc":"1f45b","isCanonical": true},":handbag:":{"unicode":["1f45c"],"fname":"1f45c","uc":"1f45c","isCanonical": true},":pouch:":{"unicode":["1f45d"],"fname":"1f45d","uc":"1f45d","isCanonical": true},":mans_shoe:":{"unicode":["1f45e"],"fname":"1f45e","uc":"1f45e","isCanonical": true},":athletic_shoe:":{"unicode":["1f45f"],"fname":"1f45f","uc":"1f45f","isCanonical": true},":high_heel:":{"unicode":["1f460"],"fname":"1f460","uc":"1f460","isCanonical": true},":sandal:":{"unicode":["1f461"],"fname":"1f461","uc":"1f461","isCanonical": true},":boot:":{"unicode":["1f462"],"fname":"1f462","uc":"1f462","isCanonical": true},":footprints:":{"unicode":["1f463"],"fname":"1f463","uc":"1f463","isCanonical": true},":bust_in_silhouette:":{"unicode":["1f464"],"fname":"1f464","uc":"1f464","isCanonical": true},":boy:":{"unicode":["1f466"],"fname":"1f466","uc":"1f466","isCanonical": true},":girl:":{"unicode":["1f467"],"fname":"1f467","uc":"1f467","isCanonical": true},":man:":{"unicode":["1f468"],"fname":"1f468","uc":"1f468","isCanonical": true},":woman:":{"unicode":["1f469"],"fname":"1f469","uc":"1f469","isCanonical": true},":family:":{"unicode":["1f46a"],"fname":"1f46a","uc":"1f46a","isCanonical": true},":couple:":{"unicode":["1f46b"],"fname":"1f46b","uc":"1f46b","isCanonical": true},":cop:":{"unicode":["1f46e"],"fname":"1f46e","uc":"1f46e","isCanonical": true},":dancers:":{"unicode":["1f46f"],"fname":"1f46f","uc":"1f46f","isCanonical": true},":bride_with_veil:":{"unicode":["1f470"],"fname":"1f470","uc":"1f470","isCanonical": true},":person_with_blond_hair:":{"unicode":["1f471"],"fname":"1f471","uc":"1f471","isCanonical": true},":man_with_gua_pi_mao:":{"unicode":["1f472"],"fname":"1f472","uc":"1f472","isCanonical": true},":man_with_turban:":{"unicode":["1f473"],"fname":"1f473","uc":"1f473","isCanonical": true},":older_man:":{"unicode":["1f474"],"fname":"1f474","uc":"1f474","isCanonical": true},":older_woman:":{"unicode":["1f475"],"fname":"1f475","uc":"1f475","isCanonical": true},":grandma:":{"unicode":["1f475"],"fname":"1f475","uc":"1f475","isCanonical": false},":baby:":{"unicode":["1f476"],"fname":"1f476","uc":"1f476","isCanonical": true},":construction_worker:":{"unicode":["1f477"],"fname":"1f477","uc":"1f477","isCanonical": true},":princess:":{"unicode":["1f478"],"fname":"1f478","uc":"1f478","isCanonical": true},":japanese_ogre:":{"unicode":["1f479"],"fname":"1f479","uc":"1f479","isCanonical": true},":japanese_goblin:":{"unicode":["1f47a"],"fname":"1f47a","uc":"1f47a","isCanonical": true},":ghost:":{"unicode":["1f47b"],"fname":"1f47b","uc":"1f47b","isCanonical": true},":angel:":{"unicode":["1f47c"],"fname":"1f47c","uc":"1f47c","isCanonical": true},":alien:":{"unicode":["1f47d"],"fname":"1f47d","uc":"1f47d","isCanonical": true},":space_invader:":{"unicode":["1f47e"],"fname":"1f47e","uc":"1f47e","isCanonical": true},":imp:":{"unicode":["1f47f"],"fname":"1f47f","uc":"1f47f","isCanonical": true},":skull:":{"unicode":["1f480"],"fname":"1f480","uc":"1f480","isCanonical": true},":skeleton:":{"unicode":["1f480"],"fname":"1f480","uc":"1f480","isCanonical": false},":card_index:":{"unicode":["1f4c7"],"fname":"1f4c7","uc":"1f4c7","isCanonical": true},":information_desk_person:":{"unicode":["1f481"],"fname":"1f481","uc":"1f481","isCanonical": true},":guardsman:":{"unicode":["1f482"],"fname":"1f482","uc":"1f482","isCanonical": true},":dancer:":{"unicode":["1f483"],"fname":"1f483","uc":"1f483","isCanonical": true},":lipstick:":{"unicode":["1f484"],"fname":"1f484","uc":"1f484","isCanonical": true},":nail_care:":{"unicode":["1f485"],"fname":"1f485","uc":"1f485","isCanonical": true},":ledger:":{"unicode":["1f4d2"],"fname":"1f4d2","uc":"1f4d2","isCanonical": true},":massage:":{"unicode":["1f486"],"fname":"1f486","uc":"1f486","isCanonical": true},":notebook:":{"unicode":["1f4d3"],"fname":"1f4d3","uc":"1f4d3","isCanonical": true},":haircut:":{"unicode":["1f487"],"fname":"1f487","uc":"1f487","isCanonical": true},":notebook_with_decorative_cover:":{"unicode":["1f4d4"],"fname":"1f4d4","uc":"1f4d4","isCanonical": true},":barber:":{"unicode":["1f488"],"fname":"1f488","uc":"1f488","isCanonical": true},":closed_book:":{"unicode":["1f4d5"],"fname":"1f4d5","uc":"1f4d5","isCanonical": true},":syringe:":{"unicode":["1f489"],"fname":"1f489","uc":"1f489","isCanonical": true},":book:":{"unicode":["1f4d6"],"fname":"1f4d6","uc":"1f4d6","isCanonical": true},":pill:":{"unicode":["1f48a"],"fname":"1f48a","uc":"1f48a","isCanonical": true},":green_book:":{"unicode":["1f4d7"],"fname":"1f4d7","uc":"1f4d7","isCanonical": true},":kiss:":{"unicode":["1f48b"],"fname":"1f48b","uc":"1f48b","isCanonical": true},":blue_book:":{"unicode":["1f4d8"],"fname":"1f4d8","uc":"1f4d8","isCanonical": true},":love_letter:":{"unicode":["1f48c"],"fname":"1f48c","uc":"1f48c","isCanonical": true},":orange_book:":{"unicode":["1f4d9"],"fname":"1f4d9","uc":"1f4d9","isCanonical": true},":ring:":{"unicode":["1f48d"],"fname":"1f48d","uc":"1f48d","isCanonical": true},":books:":{"unicode":["1f4da"],"fname":"1f4da","uc":"1f4da","isCanonical": true},":gem:":{"unicode":["1f48e"],"fname":"1f48e","uc":"1f48e","isCanonical": true},":name_badge:":{"unicode":["1f4db"],"fname":"1f4db","uc":"1f4db","isCanonical": true},":couplekiss:":{"unicode":["1f48f"],"fname":"1f48f","uc":"1f48f","isCanonical": true},":scroll:":{"unicode":["1f4dc"],"fname":"1f4dc","uc":"1f4dc","isCanonical": true},":bouquet:":{"unicode":["1f490"],"fname":"1f490","uc":"1f490","isCanonical": true},":pencil:":{"unicode":["1f4dd"],"fname":"1f4dd","uc":"1f4dd","isCanonical": true},":couple_with_heart:":{"unicode":["1f491"],"fname":"1f491","uc":"1f491","isCanonical": true},":telephone_receiver:":{"unicode":["1f4de"],"fname":"1f4de","uc":"1f4de","isCanonical": true},":wedding:":{"unicode":["1f492"],"fname":"1f492","uc":"1f492","isCanonical": true},":pager:":{"unicode":["1f4df"],"fname":"1f4df","uc":"1f4df","isCanonical": true},":fax:":{"unicode":["1f4e0"],"fname":"1f4e0","uc":"1f4e0","isCanonical": true},":heartbeat:":{"unicode":["1f493"],"fname":"1f493","uc":"1f493","isCanonical": true},":satellite:":{"unicode":["1f4e1"],"fname":"1f4e1","uc":"1f4e1","isCanonical": true},":loudspeaker:":{"unicode":["1f4e2"],"fname":"1f4e2","uc":"1f4e2","isCanonical": true},":broken_heart:":{"unicode":["1f494"],"fname":"1f494","uc":"1f494","isCanonical": true},":mega:":{"unicode":["1f4e3"],"fname":"1f4e3","uc":"1f4e3","isCanonical": true},":outbox_tray:":{"unicode":["1f4e4"],"fname":"1f4e4","uc":"1f4e4","isCanonical": true},":two_hearts:":{"unicode":["1f495"],"fname":"1f495","uc":"1f495","isCanonical": true},":inbox_tray:":{"unicode":["1f4e5"],"fname":"1f4e5","uc":"1f4e5","isCanonical": true},":package:":{"unicode":["1f4e6"],"fname":"1f4e6","uc":"1f4e6","isCanonical": true},":sparkling_heart:":{"unicode":["1f496"],"fname":"1f496","uc":"1f496","isCanonical": true},":e-mail:":{"unicode":["1f4e7"],"fname":"1f4e7","uc":"1f4e7","isCanonical": true},":email:":{"unicode":["1f4e7"],"fname":"1f4e7","uc":"1f4e7","isCanonical": false},":incoming_envelope:":{"unicode":["1f4e8"],"fname":"1f4e8","uc":"1f4e8","isCanonical": true},":heartpulse:":{"unicode":["1f497"],"fname":"1f497","uc":"1f497","isCanonical": true},":envelope_with_arrow:":{"unicode":["1f4e9"],"fname":"1f4e9","uc":"1f4e9","isCanonical": true},":mailbox_closed:":{"unicode":["1f4ea"],"fname":"1f4ea","uc":"1f4ea","isCanonical": true},":cupid:":{"unicode":["1f498"],"fname":"1f498","uc":"1f498","isCanonical": true},":mailbox:":{"unicode":["1f4eb"],"fname":"1f4eb","uc":"1f4eb","isCanonical": true},":postbox:":{"unicode":["1f4ee"],"fname":"1f4ee","uc":"1f4ee","isCanonical": true},":blue_heart:":{"unicode":["1f499"],"fname":"1f499","uc":"1f499","isCanonical": true},":newspaper:":{"unicode":["1f4f0"],"fname":"1f4f0","uc":"1f4f0","isCanonical": true},":iphone:":{"unicode":["1f4f1"],"fname":"1f4f1","uc":"1f4f1","isCanonical": true},":green_heart:":{"unicode":["1f49a"],"fname":"1f49a","uc":"1f49a","isCanonical": true},":calling:":{"unicode":["1f4f2"],"fname":"1f4f2","uc":"1f4f2","isCanonical": true},":vibration_mode:":{"unicode":["1f4f3"],"fname":"1f4f3","uc":"1f4f3","isCanonical": true},":yellow_heart:":{"unicode":["1f49b"],"fname":"1f49b","uc":"1f49b","isCanonical": true},":mobile_phone_off:":{"unicode":["1f4f4"],"fname":"1f4f4","uc":"1f4f4","isCanonical": true},":signal_strength:":{"unicode":["1f4f6"],"fname":"1f4f6","uc":"1f4f6","isCanonical": true},":purple_heart:":{"unicode":["1f49c"],"fname":"1f49c","uc":"1f49c","isCanonical": true},":camera:":{"unicode":["1f4f7"],"fname":"1f4f7","uc":"1f4f7","isCanonical": true},":video_camera:":{"unicode":["1f4f9"],"fname":"1f4f9","uc":"1f4f9","isCanonical": true},":gift_heart:":{"unicode":["1f49d"],"fname":"1f49d","uc":"1f49d","isCanonical": true},":tv:":{"unicode":["1f4fa"],"fname":"1f4fa","uc":"1f4fa","isCanonical": true},":radio:":{"unicode":["1f4fb"],"fname":"1f4fb","uc":"1f4fb","isCanonical": true},":revolving_hearts:":{"unicode":["1f49e"],"fname":"1f49e","uc":"1f49e","isCanonical": true},":vhs:":{"unicode":["1f4fc"],"fname":"1f4fc","uc":"1f4fc","isCanonical": true},":arrows_clockwise:":{"unicode":["1f503"],"fname":"1f503","uc":"1f503","isCanonical": true},":heart_decoration:":{"unicode":["1f49f"],"fname":"1f49f","uc":"1f49f","isCanonical": true},":loud_sound:":{"unicode":["1f50a"],"fname":"1f50a","uc":"1f50a","isCanonical": true},":battery:":{"unicode":["1f50b"],"fname":"1f50b","uc":"1f50b","isCanonical": true},":diamond_shape_with_a_dot_inside:":{"unicode":["1f4a0"],"fname":"1f4a0","uc":"1f4a0","isCanonical": true},":electric_plug:":{"unicode":["1f50c"],"fname":"1f50c","uc":"1f50c","isCanonical": true},":mag:":{"unicode":["1f50d"],"fname":"1f50d","uc":"1f50d","isCanonical": true},":bulb:":{"unicode":["1f4a1"],"fname":"1f4a1","uc":"1f4a1","isCanonical": true},":mag_right:":{"unicode":["1f50e"],"fname":"1f50e","uc":"1f50e","isCanonical": true},":lock_with_ink_pen:":{"unicode":["1f50f"],"fname":"1f50f","uc":"1f50f","isCanonical": true},":anger:":{"unicode":["1f4a2"],"fname":"1f4a2","uc":"1f4a2","isCanonical": true},":closed_lock_with_key:":{"unicode":["1f510"],"fname":"1f510","uc":"1f510","isCanonical": true},":key:":{"unicode":["1f511"],"fname":"1f511","uc":"1f511","isCanonical": true},":bomb:":{"unicode":["1f4a3"],"fname":"1f4a3","uc":"1f4a3","isCanonical": true},":lock:":{"unicode":["1f512"],"fname":"1f512","uc":"1f512","isCanonical": true},":unlock:":{"unicode":["1f513"],"fname":"1f513","uc":"1f513","isCanonical": true},":zzz:":{"unicode":["1f4a4"],"fname":"1f4a4","uc":"1f4a4","isCanonical": true},":bell:":{"unicode":["1f514"],"fname":"1f514","uc":"1f514","isCanonical": true},":bookmark:":{"unicode":["1f516"],"fname":"1f516","uc":"1f516","isCanonical": true},":boom:":{"unicode":["1f4a5"],"fname":"1f4a5","uc":"1f4a5","isCanonical": true},":link:":{"unicode":["1f517"],"fname":"1f517","uc":"1f517","isCanonical": true},":radio_button:":{"unicode":["1f518"],"fname":"1f518","uc":"1f518","isCanonical": true},":sweat_drops:":{"unicode":["1f4a6"],"fname":"1f4a6","uc":"1f4a6","isCanonical": true},":back:":{"unicode":["1f519"],"fname":"1f519","uc":"1f519","isCanonical": true},":end:":{"unicode":["1f51a"],"fname":"1f51a","uc":"1f51a","isCanonical": true},":droplet:":{"unicode":["1f4a7"],"fname":"1f4a7","uc":"1f4a7","isCanonical": true},":on:":{"unicode":["1f51b"],"fname":"1f51b","uc":"1f51b","isCanonical": true},":soon:":{"unicode":["1f51c"],"fname":"1f51c","uc":"1f51c","isCanonical": true},":dash:":{"unicode":["1f4a8"],"fname":"1f4a8","uc":"1f4a8","isCanonical": true},":top:":{"unicode":["1f51d"],"fname":"1f51d","uc":"1f51d","isCanonical": true},":underage:":{"unicode":["1f51e"],"fname":"1f51e","uc":"1f51e","isCanonical": true},":poop:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": true},":shit:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":hankey:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":poo:":{"unicode":["1f4a9"],"fname":"1f4a9","uc":"1f4a9","isCanonical": false},":keycap_ten:":{"unicode":["1f51f"],"fname":"1f51f","uc":"1f51f","isCanonical": true},":muscle:":{"unicode":["1f4aa"],"fname":"1f4aa","uc":"1f4aa","isCanonical": true},":capital_abcd:":{"unicode":["1f520"],"fname":"1f520","uc":"1f520","isCanonical": true},":abcd:":{"unicode":["1f521"],"fname":"1f521","uc":"1f521","isCanonical": true},":dizzy:":{"unicode":["1f4ab"],"fname":"1f4ab","uc":"1f4ab","isCanonical": true},":1234:":{"unicode":["1f522"],"fname":"1f522","uc":"1f522","isCanonical": true},":symbols:":{"unicode":["1f523"],"fname":"1f523","uc":"1f523","isCanonical": true},":speech_balloon:":{"unicode":["1f4ac"],"fname":"1f4ac","uc":"1f4ac","isCanonical": true},":abc:":{"unicode":["1f524"],"fname":"1f524","uc":"1f524","isCanonical": true},":fire:":{"unicode":["1f525"],"fname":"1f525","uc":"1f525","isCanonical": true},":flame:":{"unicode":["1f525"],"fname":"1f525","uc":"1f525","isCanonical": false},":white_flower:":{"unicode":["1f4ae"],"fname":"1f4ae","uc":"1f4ae","isCanonical": true},":flashlight:":{"unicode":["1f526"],"fname":"1f526","uc":"1f526","isCanonical": true},":wrench:":{"unicode":["1f527"],"fname":"1f527","uc":"1f527","isCanonical": true},":100:":{"unicode":["1f4af"],"fname":"1f4af","uc":"1f4af","isCanonical": true},":hammer:":{"unicode":["1f528"],"fname":"1f528","uc":"1f528","isCanonical": true},":nut_and_bolt:":{"unicode":["1f529"],"fname":"1f529","uc":"1f529","isCanonical": true},":moneybag:":{"unicode":["1f4b0"],"fname":"1f4b0","uc":"1f4b0","isCanonical": true},":knife:":{"unicode":["1f52a"],"fname":"1f52a","uc":"1f52a","isCanonical": true},":gun:":{"unicode":["1f52b"],"fname":"1f52b","uc":"1f52b","isCanonical": true},":currency_exchange:":{"unicode":["1f4b1"],"fname":"1f4b1","uc":"1f4b1","isCanonical": true},":crystal_ball:":{"unicode":["1f52e"],"fname":"1f52e","uc":"1f52e","isCanonical": true},":heavy_dollar_sign:":{"unicode":["1f4b2"],"fname":"1f4b2","uc":"1f4b2","isCanonical": true},":six_pointed_star:":{"unicode":["1f52f"],"fname":"1f52f","uc":"1f52f","isCanonical": true},":credit_card:":{"unicode":["1f4b3"],"fname":"1f4b3","uc":"1f4b3","isCanonical": true},":beginner:":{"unicode":["1f530"],"fname":"1f530","uc":"1f530","isCanonical": true},":trident:":{"unicode":["1f531"],"fname":"1f531","uc":"1f531","isCanonical": true},":yen:":{"unicode":["1f4b4"],"fname":"1f4b4","uc":"1f4b4","isCanonical": true},":black_square_button:":{"unicode":["1f532"],"fname":"1f532","uc":"1f532","isCanonical": true},":white_square_button:":{"unicode":["1f533"],"fname":"1f533","uc":"1f533","isCanonical": true},":dollar:":{"unicode":["1f4b5"],"fname":"1f4b5","uc":"1f4b5","isCanonical": true},":red_circle:":{"unicode":["1f534"],"fname":"1f534","uc":"1f534","isCanonical": true},":blue_circle:":{"unicode":["1f535"],"fname":"1f535","uc":"1f535","isCanonical": true},":money_with_wings:":{"unicode":["1f4b8"],"fname":"1f4b8","uc":"1f4b8","isCanonical": true},":large_orange_diamond:":{"unicode":["1f536"],"fname":"1f536","uc":"1f536","isCanonical": true},":large_blue_diamond:":{"unicode":["1f537"],"fname":"1f537","uc":"1f537","isCanonical": true},":chart:":{"unicode":["1f4b9"],"fname":"1f4b9","uc":"1f4b9","isCanonical": true},":small_orange_diamond:":{"unicode":["1f538"],"fname":"1f538","uc":"1f538","isCanonical": true},":small_blue_diamond:":{"unicode":["1f539"],"fname":"1f539","uc":"1f539","isCanonical": true},":seat:":{"unicode":["1f4ba"],"fname":"1f4ba","uc":"1f4ba","isCanonical": true},":small_red_triangle:":{"unicode":["1f53a"],"fname":"1f53a","uc":"1f53a","isCanonical": true},":small_red_triangle_down:":{"unicode":["1f53b"],"fname":"1f53b","uc":"1f53b","isCanonical": true},":computer:":{"unicode":["1f4bb"],"fname":"1f4bb","uc":"1f4bb","isCanonical": true},":arrow_up_small:":{"unicode":["1f53c"],"fname":"1f53c","uc":"1f53c","isCanonical": true},":briefcase:":{"unicode":["1f4bc"],"fname":"1f4bc","uc":"1f4bc","isCanonical": true},":arrow_down_small:":{"unicode":["1f53d"],"fname":"1f53d","uc":"1f53d","isCanonical": true},":clock1:":{"unicode":["1f550"],"fname":"1f550","uc":"1f550","isCanonical": true},":minidisc:":{"unicode":["1f4bd"],"fname":"1f4bd","uc":"1f4bd","isCanonical": true},":clock2:":{"unicode":["1f551"],"fname":"1f551","uc":"1f551","isCanonical": true},":floppy_disk:":{"unicode":["1f4be"],"fname":"1f4be","uc":"1f4be","isCanonical": true},":clock3:":{"unicode":["1f552"],"fname":"1f552","uc":"1f552","isCanonical": true},":cd:":{"unicode":["1f4bf"],"fname":"1f4bf","uc":"1f4bf","isCanonical": true},":clock4:":{"unicode":["1f553"],"fname":"1f553","uc":"1f553","isCanonical": true},":dvd:":{"unicode":["1f4c0"],"fname":"1f4c0","uc":"1f4c0","isCanonical": true},":clock5:":{"unicode":["1f554"],"fname":"1f554","uc":"1f554","isCanonical": true},":clock6:":{"unicode":["1f555"],"fname":"1f555","uc":"1f555","isCanonical": true},":file_folder:":{"unicode":["1f4c1"],"fname":"1f4c1","uc":"1f4c1","isCanonical": true},":clock7:":{"unicode":["1f556"],"fname":"1f556","uc":"1f556","isCanonical": true},":clock8:":{"unicode":["1f557"],"fname":"1f557","uc":"1f557","isCanonical": true},":open_file_folder:":{"unicode":["1f4c2"],"fname":"1f4c2","uc":"1f4c2","isCanonical": true},":clock9:":{"unicode":["1f558"],"fname":"1f558","uc":"1f558","isCanonical": true},":clock10:":{"unicode":["1f559"],"fname":"1f559","uc":"1f559","isCanonical": true},":page_with_curl:":{"unicode":["1f4c3"],"fname":"1f4c3","uc":"1f4c3","isCanonical": true},":clock11:":{"unicode":["1f55a"],"fname":"1f55a","uc":"1f55a","isCanonical": true},":clock12:":{"unicode":["1f55b"],"fname":"1f55b","uc":"1f55b","isCanonical": true},":page_facing_up:":{"unicode":["1f4c4"],"fname":"1f4c4","uc":"1f4c4","isCanonical": true},":mount_fuji:":{"unicode":["1f5fb"],"fname":"1f5fb","uc":"1f5fb","isCanonical": true},":tokyo_tower:":{"unicode":["1f5fc"],"fname":"1f5fc","uc":"1f5fc","isCanonical": true},":date:":{"unicode":["1f4c5"],"fname":"1f4c5","uc":"1f4c5","isCanonical": true},":statue_of_liberty:":{"unicode":["1f5fd"],"fname":"1f5fd","uc":"1f5fd","isCanonical": true},":japan:":{"unicode":["1f5fe"],"fname":"1f5fe","uc":"1f5fe","isCanonical": true},":calendar:":{"unicode":["1f4c6"],"fname":"1f4c6","uc":"1f4c6","isCanonical": true},":moyai:":{"unicode":["1f5ff"],"fname":"1f5ff","uc":"1f5ff","isCanonical": true},":grin:":{"unicode":["1f601"],"fname":"1f601","uc":"1f601","isCanonical": true},":joy:":{"unicode":["1f602"],"fname":"1f602","uc":"1f602","isCanonical": true},":smiley:":{"unicode":["1f603"],"fname":"1f603","uc":"1f603","isCanonical": true},":chart_with_upwards_trend:":{"unicode":["1f4c8"],"fname":"1f4c8","uc":"1f4c8","isCanonical": true},":smile:":{"unicode":["1f604"],"fname":"1f604","uc":"1f604","isCanonical": true},":sweat_smile:":{"unicode":["1f605"],"fname":"1f605","uc":"1f605","isCanonical": true},":chart_with_downwards_trend:":{"unicode":["1f4c9"],"fname":"1f4c9","uc":"1f4c9","isCanonical": true},":laughing:":{"unicode":["1f606"],"fname":"1f606","uc":"1f606","isCanonical": true},":satisfied:":{"unicode":["1f606"],"fname":"1f606","uc":"1f606","isCanonical": false},":wink:":{"unicode":["1f609"],"fname":"1f609","uc":"1f609","isCanonical": true},":bar_chart:":{"unicode":["1f4ca"],"fname":"1f4ca","uc":"1f4ca","isCanonical": true},":blush:":{"unicode":["1f60a"],"fname":"1f60a","uc":"1f60a","isCanonical": true},":yum:":{"unicode":["1f60b"],"fname":"1f60b","uc":"1f60b","isCanonical": true},":clipboard:":{"unicode":["1f4cb"],"fname":"1f4cb","uc":"1f4cb","isCanonical": true},":relieved:":{"unicode":["1f60c"],"fname":"1f60c","uc":"1f60c","isCanonical": true},":heart_eyes:":{"unicode":["1f60d"],"fname":"1f60d","uc":"1f60d","isCanonical": true},":pushpin:":{"unicode":["1f4cc"],"fname":"1f4cc","uc":"1f4cc","isCanonical": true},":smirk:":{"unicode":["1f60f"],"fname":"1f60f","uc":"1f60f","isCanonical": true},":unamused:":{"unicode":["1f612"],"fname":"1f612","uc":"1f612","isCanonical": true},":round_pushpin:":{"unicode":["1f4cd"],"fname":"1f4cd","uc":"1f4cd","isCanonical": true},":sweat:":{"unicode":["1f613"],"fname":"1f613","uc":"1f613","isCanonical": true},":pensive:":{"unicode":["1f614"],"fname":"1f614","uc":"1f614","isCanonical": true},":paperclip:":{"unicode":["1f4ce"],"fname":"1f4ce","uc":"1f4ce","isCanonical": true},":confounded:":{"unicode":["1f616"],"fname":"1f616","uc":"1f616","isCanonical": true},":kissing_heart:":{"unicode":["1f618"],"fname":"1f618","uc":"1f618","isCanonical": true},":straight_ruler:":{"unicode":["1f4cf"],"fname":"1f4cf","uc":"1f4cf","isCanonical": true},":kissing_closed_eyes:":{"unicode":["1f61a"],"fname":"1f61a","uc":"1f61a","isCanonical": true},":stuck_out_tongue_winking_eye:":{"unicode":["1f61c"],"fname":"1f61c","uc":"1f61c","isCanonical": true},":triangular_ruler:":{"unicode":["1f4d0"],"fname":"1f4d0","uc":"1f4d0","isCanonical": true},":stuck_out_tongue_closed_eyes:":{"unicode":["1f61d"],"fname":"1f61d","uc":"1f61d","isCanonical": true},":disappointed:":{"unicode":["1f61e"],"fname":"1f61e","uc":"1f61e","isCanonical": true},":bookmark_tabs:":{"unicode":["1f4d1"],"fname":"1f4d1","uc":"1f4d1","isCanonical": true},":angry:":{"unicode":["1f620"],"fname":"1f620","uc":"1f620","isCanonical": true},":rage:":{"unicode":["1f621"],"fname":"1f621","uc":"1f621","isCanonical": true},":cry:":{"unicode":["1f622"],"fname":"1f622","uc":"1f622","isCanonical": true},":persevere:":{"unicode":["1f623"],"fname":"1f623","uc":"1f623","isCanonical": true},":triumph:":{"unicode":["1f624"],"fname":"1f624","uc":"1f624","isCanonical": true},":disappointed_relieved:":{"unicode":["1f625"],"fname":"1f625","uc":"1f625","isCanonical": true},":fearful:":{"unicode":["1f628"],"fname":"1f628","uc":"1f628","isCanonical": true},":weary:":{"unicode":["1f629"],"fname":"1f629","uc":"1f629","isCanonical": true},":sleepy:":{"unicode":["1f62a"],"fname":"1f62a","uc":"1f62a","isCanonical": true},":tired_face:":{"unicode":["1f62b"],"fname":"1f62b","uc":"1f62b","isCanonical": true},":sob:":{"unicode":["1f62d"],"fname":"1f62d","uc":"1f62d","isCanonical": true},":cold_sweat:":{"unicode":["1f630"],"fname":"1f630","uc":"1f630","isCanonical": true},":scream:":{"unicode":["1f631"],"fname":"1f631","uc":"1f631","isCanonical": true},":astonished:":{"unicode":["1f632"],"fname":"1f632","uc":"1f632","isCanonical": true},":flushed:":{"unicode":["1f633"],"fname":"1f633","uc":"1f633","isCanonical": true},":dizzy_face:":{"unicode":["1f635"],"fname":"1f635","uc":"1f635","isCanonical": true},":mask:":{"unicode":["1f637"],"fname":"1f637","uc":"1f637","isCanonical": true},":smile_cat:":{"unicode":["1f638"],"fname":"1f638","uc":"1f638","isCanonical": true},":joy_cat:":{"unicode":["1f639"],"fname":"1f639","uc":"1f639","isCanonical": true},":smiley_cat:":{"unicode":["1f63a"],"fname":"1f63a","uc":"1f63a","isCanonical": true},":heart_eyes_cat:":{"unicode":["1f63b"],"fname":"1f63b","uc":"1f63b","isCanonical": true},":smirk_cat:":{"unicode":["1f63c"],"fname":"1f63c","uc":"1f63c","isCanonical": true},":kissing_cat:":{"unicode":["1f63d"],"fname":"1f63d","uc":"1f63d","isCanonical": true},":pouting_cat:":{"unicode":["1f63e"],"fname":"1f63e","uc":"1f63e","isCanonical": true},":crying_cat_face:":{"unicode":["1f63f"],"fname":"1f63f","uc":"1f63f","isCanonical": true},":scream_cat:":{"unicode":["1f640"],"fname":"1f640","uc":"1f640","isCanonical": true},":no_good:":{"unicode":["1f645"],"fname":"1f645","uc":"1f645","isCanonical": true},":ok_woman:":{"unicode":["1f646"],"fname":"1f646","uc":"1f646","isCanonical": true},":bow:":{"unicode":["1f647"],"fname":"1f647","uc":"1f647","isCanonical": true},":see_no_evil:":{"unicode":["1f648"],"fname":"1f648","uc":"1f648","isCanonical": true},":hear_no_evil:":{"unicode":["1f649"],"fname":"1f649","uc":"1f649","isCanonical": true},":speak_no_evil:":{"unicode":["1f64a"],"fname":"1f64a","uc":"1f64a","isCanonical": true},":raising_hand:":{"unicode":["1f64b"],"fname":"1f64b","uc":"1f64b","isCanonical": true},":raised_hands:":{"unicode":["1f64c"],"fname":"1f64c","uc":"1f64c","isCanonical": true},":person_frowning:":{"unicode":["1f64d"],"fname":"1f64d","uc":"1f64d","isCanonical": true},":person_with_pouting_face:":{"unicode":["1f64e"],"fname":"1f64e","uc":"1f64e","isCanonical": true},":pray:":{"unicode":["1f64f"],"fname":"1f64f","uc":"1f64f","isCanonical": true},":rocket:":{"unicode":["1f680"],"fname":"1f680","uc":"1f680","isCanonical": true},":railway_car:":{"unicode":["1f683"],"fname":"1f683","uc":"1f683","isCanonical": true},":bullettrain_side:":{"unicode":["1f684"],"fname":"1f684","uc":"1f684","isCanonical": true},":bullettrain_front:":{"unicode":["1f685"],"fname":"1f685","uc":"1f685","isCanonical": true},":metro:":{"unicode":["1f687"],"fname":"1f687","uc":"1f687","isCanonical": true},":station:":{"unicode":["1f689"],"fname":"1f689","uc":"1f689","isCanonical": true},":bus:":{"unicode":["1f68c"],"fname":"1f68c","uc":"1f68c","isCanonical": true},":busstop:":{"unicode":["1f68f"],"fname":"1f68f","uc":"1f68f","isCanonical": true},":ambulance:":{"unicode":["1f691"],"fname":"1f691","uc":"1f691","isCanonical": true},":fire_engine:":{"unicode":["1f692"],"fname":"1f692","uc":"1f692","isCanonical": true},":police_car:":{"unicode":["1f693"],"fname":"1f693","uc":"1f693","isCanonical": true},":taxi:":{"unicode":["1f695"],"fname":"1f695","uc":"1f695","isCanonical": true},":red_car:":{"unicode":["1f697"],"fname":"1f697","uc":"1f697","isCanonical": true},":blue_car:":{"unicode":["1f699"],"fname":"1f699","uc":"1f699","isCanonical": true},":truck:":{"unicode":["1f69a"],"fname":"1f69a","uc":"1f69a","isCanonical": true},":ship:":{"unicode":["1f6a2"],"fname":"1f6a2","uc":"1f6a2","isCanonical": true},":speedboat:":{"unicode":["1f6a4"],"fname":"1f6a4","uc":"1f6a4","isCanonical": true},":traffic_light:":{"unicode":["1f6a5"],"fname":"1f6a5","uc":"1f6a5","isCanonical": true},":construction:":{"unicode":["1f6a7"],"fname":"1f6a7","uc":"1f6a7","isCanonical": true},":rotating_light:":{"unicode":["1f6a8"],"fname":"1f6a8","uc":"1f6a8","isCanonical": true},":triangular_flag_on_post:":{"unicode":["1f6a9"],"fname":"1f6a9","uc":"1f6a9","isCanonical": true},":door:":{"unicode":["1f6aa"],"fname":"1f6aa","uc":"1f6aa","isCanonical": true},":no_entry_sign:":{"unicode":["1f6ab"],"fname":"1f6ab","uc":"1f6ab","isCanonical": true},":smoking:":{"unicode":["1f6ac"],"fname":"1f6ac","uc":"1f6ac","isCanonical": true},":no_smoking:":{"unicode":["1f6ad"],"fname":"1f6ad","uc":"1f6ad","isCanonical": true},":bike:":{"unicode":["1f6b2"],"fname":"1f6b2","uc":"1f6b2","isCanonical": true},":walking:":{"unicode":["1f6b6"],"fname":"1f6b6","uc":"1f6b6","isCanonical": true},":mens:":{"unicode":["1f6b9"],"fname":"1f6b9","uc":"1f6b9","isCanonical": true},":womens:":{"unicode":["1f6ba"],"fname":"1f6ba","uc":"1f6ba","isCanonical": true},":restroom:":{"unicode":["1f6bb"],"fname":"1f6bb","uc":"1f6bb","isCanonical": true},":baby_symbol:":{"unicode":["1f6bc"],"fname":"1f6bc","uc":"1f6bc","isCanonical": true},":toilet:":{"unicode":["1f6bd"],"fname":"1f6bd","uc":"1f6bd","isCanonical": true},":wc:":{"unicode":["1f6be"],"fname":"1f6be","uc":"1f6be","isCanonical": true},":bath:":{"unicode":["1f6c0"],"fname":"1f6c0","uc":"1f6c0","isCanonical": true},":metal:":{"unicode":["1f918"],"fname":"1f918","uc":"1f918","isCanonical": true},":sign_of_the_horns:":{"unicode":["1f918"],"fname":"1f918","uc":"1f918","isCanonical": false},":grinning:":{"unicode":["1f600"],"fname":"1f600","uc":"1f600","isCanonical": true},":innocent:":{"unicode":["1f607"],"fname":"1f607","uc":"1f607","isCanonical": true},":smiling_imp:":{"unicode":["1f608"],"fname":"1f608","uc":"1f608","isCanonical": true},":sunglasses:":{"unicode":["1f60e"],"fname":"1f60e","uc":"1f60e","isCanonical": true},":neutral_face:":{"unicode":["1f610"],"fname":"1f610","uc":"1f610","isCanonical": true},":expressionless:":{"unicode":["1f611"],"fname":"1f611","uc":"1f611","isCanonical": true},":confused:":{"unicode":["1f615"],"fname":"1f615","uc":"1f615","isCanonical": true},":kissing:":{"unicode":["1f617"],"fname":"1f617","uc":"1f617","isCanonical": true},":kissing_smiling_eyes:":{"unicode":["1f619"],"fname":"1f619","uc":"1f619","isCanonical": true},":stuck_out_tongue:":{"unicode":["1f61b"],"fname":"1f61b","uc":"1f61b","isCanonical": true},":worried:":{"unicode":["1f61f"],"fname":"1f61f","uc":"1f61f","isCanonical": true},":frowning:":{"unicode":["1f626"],"fname":"1f626","uc":"1f626","isCanonical": true},":anguished:":{"unicode":["1f627"],"fname":"1f627","uc":"1f627","isCanonical": true},":grimacing:":{"unicode":["1f62c"],"fname":"1f62c","uc":"1f62c","isCanonical": true},":open_mouth:":{"unicode":["1f62e"],"fname":"1f62e","uc":"1f62e","isCanonical": true},":hushed:":{"unicode":["1f62f"],"fname":"1f62f","uc":"1f62f","isCanonical": true},":sleeping:":{"unicode":["1f634"],"fname":"1f634","uc":"1f634","isCanonical": true},":no_mouth:":{"unicode":["1f636"],"fname":"1f636","uc":"1f636","isCanonical": true},":helicopter:":{"unicode":["1f681"],"fname":"1f681","uc":"1f681","isCanonical": true},":steam_locomotive:":{"unicode":["1f682"],"fname":"1f682","uc":"1f682","isCanonical": true},":train2:":{"unicode":["1f686"],"fname":"1f686","uc":"1f686","isCanonical": true},":light_rail:":{"unicode":["1f688"],"fname":"1f688","uc":"1f688","isCanonical": true},":tram:":{"unicode":["1f68a"],"fname":"1f68a","uc":"1f68a","isCanonical": true},":oncoming_bus:":{"unicode":["1f68d"],"fname":"1f68d","uc":"1f68d","isCanonical": true},":trolleybus:":{"unicode":["1f68e"],"fname":"1f68e","uc":"1f68e","isCanonical": true},":minibus:":{"unicode":["1f690"],"fname":"1f690","uc":"1f690","isCanonical": true},":oncoming_police_car:":{"unicode":["1f694"],"fname":"1f694","uc":"1f694","isCanonical": true},":oncoming_taxi:":{"unicode":["1f696"],"fname":"1f696","uc":"1f696","isCanonical": true},":oncoming_automobile:":{"unicode":["1f698"],"fname":"1f698","uc":"1f698","isCanonical": true},":articulated_lorry:":{"unicode":["1f69b"],"fname":"1f69b","uc":"1f69b","isCanonical": true},":tractor:":{"unicode":["1f69c"],"fname":"1f69c","uc":"1f69c","isCanonical": true},":monorail:":{"unicode":["1f69d"],"fname":"1f69d","uc":"1f69d","isCanonical": true},":mountain_railway:":{"unicode":["1f69e"],"fname":"1f69e","uc":"1f69e","isCanonical": true},":suspension_railway:":{"unicode":["1f69f"],"fname":"1f69f","uc":"1f69f","isCanonical": true},":mountain_cableway:":{"unicode":["1f6a0"],"fname":"1f6a0","uc":"1f6a0","isCanonical": true},":aerial_tramway:":{"unicode":["1f6a1"],"fname":"1f6a1","uc":"1f6a1","isCanonical": true},":rowboat:":{"unicode":["1f6a3"],"fname":"1f6a3","uc":"1f6a3","isCanonical": true},":vertical_traffic_light:":{"unicode":["1f6a6"],"fname":"1f6a6","uc":"1f6a6","isCanonical": true},":put_litter_in_its_place:":{"unicode":["1f6ae"],"fname":"1f6ae","uc":"1f6ae","isCanonical": true},":do_not_litter:":{"unicode":["1f6af"],"fname":"1f6af","uc":"1f6af","isCanonical": true},":potable_water:":{"unicode":["1f6b0"],"fname":"1f6b0","uc":"1f6b0","isCanonical": true},":non-potable_water:":{"unicode":["1f6b1"],"fname":"1f6b1","uc":"1f6b1","isCanonical": true},":no_bicycles:":{"unicode":["1f6b3"],"fname":"1f6b3","uc":"1f6b3","isCanonical": true},":bicyclist:":{"unicode":["1f6b4"],"fname":"1f6b4","uc":"1f6b4","isCanonical": true},":mountain_bicyclist:":{"unicode":["1f6b5"],"fname":"1f6b5","uc":"1f6b5","isCanonical": true},":no_pedestrians:":{"unicode":["1f6b7"],"fname":"1f6b7","uc":"1f6b7","isCanonical": true},":children_crossing:":{"unicode":["1f6b8"],"fname":"1f6b8","uc":"1f6b8","isCanonical": true},":shower:":{"unicode":["1f6bf"],"fname":"1f6bf","uc":"1f6bf","isCanonical": true},":bathtub:":{"unicode":["1f6c1"],"fname":"1f6c1","uc":"1f6c1","isCanonical": true},":passport_control:":{"unicode":["1f6c2"],"fname":"1f6c2","uc":"1f6c2","isCanonical": true},":customs:":{"unicode":["1f6c3"],"fname":"1f6c3","uc":"1f6c3","isCanonical": true},":baggage_claim:":{"unicode":["1f6c4"],"fname":"1f6c4","uc":"1f6c4","isCanonical": true},":left_luggage:":{"unicode":["1f6c5"],"fname":"1f6c5","uc":"1f6c5","isCanonical": true},":earth_africa:":{"unicode":["1f30d"],"fname":"1f30d","uc":"1f30d","isCanonical": true},":earth_americas:":{"unicode":["1f30e"],"fname":"1f30e","uc":"1f30e","isCanonical": true},":globe_with_meridians:":{"unicode":["1f310"],"fname":"1f310","uc":"1f310","isCanonical": true},":waxing_crescent_moon:":{"unicode":["1f312"],"fname":"1f312","uc":"1f312","isCanonical": true},":waning_gibbous_moon:":{"unicode":["1f316"],"fname":"1f316","uc":"1f316","isCanonical": true},":last_quarter_moon:":{"unicode":["1f317"],"fname":"1f317","uc":"1f317","isCanonical": true},":waning_crescent_moon:":{"unicode":["1f318"],"fname":"1f318","uc":"1f318","isCanonical": true},":new_moon_with_face:":{"unicode":["1f31a"],"fname":"1f31a","uc":"1f31a","isCanonical": true},":last_quarter_moon_with_face:":{"unicode":["1f31c"],"fname":"1f31c","uc":"1f31c","isCanonical": true},":full_moon_with_face:":{"unicode":["1f31d"],"fname":"1f31d","uc":"1f31d","isCanonical": true},":sun_with_face:":{"unicode":["1f31e"],"fname":"1f31e","uc":"1f31e","isCanonical": true},":evergreen_tree:":{"unicode":["1f332"],"fname":"1f332","uc":"1f332","isCanonical": true},":deciduous_tree:":{"unicode":["1f333"],"fname":"1f333","uc":"1f333","isCanonical": true},":lemon:":{"unicode":["1f34b"],"fname":"1f34b","uc":"1f34b","isCanonical": true},":pear:":{"unicode":["1f350"],"fname":"1f350","uc":"1f350","isCanonical": true},":baby_bottle:":{"unicode":["1f37c"],"fname":"1f37c","uc":"1f37c","isCanonical": true},":horse_racing:":{"unicode":["1f3c7"],"fname":"1f3c7","uc":"1f3c7","isCanonical": true},":rugby_football:":{"unicode":["1f3c9"],"fname":"1f3c9","uc":"1f3c9","isCanonical": true},":european_post_office:":{"unicode":["1f3e4"],"fname":"1f3e4","uc":"1f3e4","isCanonical": true},":rat:":{"unicode":["1f400"],"fname":"1f400","uc":"1f400","isCanonical": true},":mouse2:":{"unicode":["1f401"],"fname":"1f401","uc":"1f401","isCanonical": true},":ox:":{"unicode":["1f402"],"fname":"1f402","uc":"1f402","isCanonical": true},":water_buffalo:":{"unicode":["1f403"],"fname":"1f403","uc":"1f403","isCanonical": true},":cow2:":{"unicode":["1f404"],"fname":"1f404","uc":"1f404","isCanonical": true},":tiger2:":{"unicode":["1f405"],"fname":"1f405","uc":"1f405","isCanonical": true},":leopard:":{"unicode":["1f406"],"fname":"1f406","uc":"1f406","isCanonical": true},":rabbit2:":{"unicode":["1f407"],"fname":"1f407","uc":"1f407","isCanonical": true},":cat2:":{"unicode":["1f408"],"fname":"1f408","uc":"1f408","isCanonical": true},":dragon:":{"unicode":["1f409"],"fname":"1f409","uc":"1f409","isCanonical": true},":crocodile:":{"unicode":["1f40a"],"fname":"1f40a","uc":"1f40a","isCanonical": true},":whale2:":{"unicode":["1f40b"],"fname":"1f40b","uc":"1f40b","isCanonical": true},":ram:":{"unicode":["1f40f"],"fname":"1f40f","uc":"1f40f","isCanonical": true},":goat:":{"unicode":["1f410"],"fname":"1f410","uc":"1f410","isCanonical": true},":rooster:":{"unicode":["1f413"],"fname":"1f413","uc":"1f413","isCanonical": true},":dog2:":{"unicode":["1f415"],"fname":"1f415","uc":"1f415","isCanonical": true},":pig2:":{"unicode":["1f416"],"fname":"1f416","uc":"1f416","isCanonical": true},":dromedary_camel:":{"unicode":["1f42a"],"fname":"1f42a","uc":"1f42a","isCanonical": true},":busts_in_silhouette:":{"unicode":["1f465"],"fname":"1f465","uc":"1f465","isCanonical": true},":two_men_holding_hands:":{"unicode":["1f46c"],"fname":"1f46c","uc":"1f46c","isCanonical": true},":two_women_holding_hands:":{"unicode":["1f46d"],"fname":"1f46d","uc":"1f46d","isCanonical": true},":thought_balloon:":{"unicode":["1f4ad"],"fname":"1f4ad","uc":"1f4ad","isCanonical": true},":euro:":{"unicode":["1f4b6"],"fname":"1f4b6","uc":"1f4b6","isCanonical": true},":pound:":{"unicode":["1f4b7"],"fname":"1f4b7","uc":"1f4b7","isCanonical": true},":mailbox_with_mail:":{"unicode":["1f4ec"],"fname":"1f4ec","uc":"1f4ec","isCanonical": true},":mailbox_with_no_mail:":{"unicode":["1f4ed"],"fname":"1f4ed","uc":"1f4ed","isCanonical": true},":postal_horn:":{"unicode":["1f4ef"],"fname":"1f4ef","uc":"1f4ef","isCanonical": true},":no_mobile_phones:":{"unicode":["1f4f5"],"fname":"1f4f5","uc":"1f4f5","isCanonical": true},":twisted_rightwards_arrows:":{"unicode":["1f500"],"fname":"1f500","uc":"1f500","isCanonical": true},":repeat:":{"unicode":["1f501"],"fname":"1f501","uc":"1f501","isCanonical": true},":repeat_one:":{"unicode":["1f502"],"fname":"1f502","uc":"1f502","isCanonical": true},":arrows_counterclockwise:":{"unicode":["1f504"],"fname":"1f504","uc":"1f504","isCanonical": true},":low_brightness:":{"unicode":["1f505"],"fname":"1f505","uc":"1f505","isCanonical": true},":high_brightness:":{"unicode":["1f506"],"fname":"1f506","uc":"1f506","isCanonical": true},":mute:":{"unicode":["1f507"],"fname":"1f507","uc":"1f507","isCanonical": true},":sound:":{"unicode":["1f509"],"fname":"1f509","uc":"1f509","isCanonical": true},":no_bell:":{"unicode":["1f515"],"fname":"1f515","uc":"1f515","isCanonical": true},":microscope:":{"unicode":["1f52c"],"fname":"1f52c","uc":"1f52c","isCanonical": true},":telescope:":{"unicode":["1f52d"],"fname":"1f52d","uc":"1f52d","isCanonical": true},":clock130:":{"unicode":["1f55c"],"fname":"1f55c","uc":"1f55c","isCanonical": true},":clock230:":{"unicode":["1f55d"],"fname":"1f55d","uc":"1f55d","isCanonical": true},":clock330:":{"unicode":["1f55e"],"fname":"1f55e","uc":"1f55e","isCanonical": true},":clock430:":{"unicode":["1f55f"],"fname":"1f55f","uc":"1f55f","isCanonical": true},":clock530:":{"unicode":["1f560"],"fname":"1f560","uc":"1f560","isCanonical": true},":clock630:":{"unicode":["1f561"],"fname":"1f561","uc":"1f561","isCanonical": true},":clock730:":{"unicode":["1f562"],"fname":"1f562","uc":"1f562","isCanonical": true},":clock830:":{"unicode":["1f563"],"fname":"1f563","uc":"1f563","isCanonical": true},":clock930:":{"unicode":["1f564"],"fname":"1f564","uc":"1f564","isCanonical": true},":clock1030:":{"unicode":["1f565"],"fname":"1f565","uc":"1f565","isCanonical": true},":clock1130:":{"unicode":["1f566"],"fname":"1f566","uc":"1f566","isCanonical": true},":clock1230:":{"unicode":["1f567"],"fname":"1f567","uc":"1f567","isCanonical": true},":speaker:":{"unicode":["1f508"],"fname":"1f508","uc":"1f508","isCanonical": true},":train:":{"unicode":["1f68b"],"fname":"1f68b","uc":"1f68b","isCanonical": true},":medal:":{"unicode":["1f3c5"],"fname":"1f3c5","uc":"1f3c5","isCanonical": true},":sports_medal:":{"unicode":["1f3c5"],"fname":"1f3c5","uc":"1f3c5","isCanonical": false},":flag_black:":{"unicode":["1f3f4"],"fname":"1f3f4","uc":"1f3f4","isCanonical": true},":waving_black_flag:":{"unicode":["1f3f4"],"fname":"1f3f4","uc":"1f3f4","isCanonical": false},":camera_with_flash:":{"unicode":["1f4f8"],"fname":"1f4f8","uc":"1f4f8","isCanonical": true},":sleeping_accommodation:":{"unicode":["1f6cc"],"fname":"1f6cc","uc":"1f6cc","isCanonical": true},":middle_finger:":{"unicode":["1f595"],"fname":"1f595","uc":"1f595","isCanonical": true},":reversed_hand_with_middle_finger_extended:":{"unicode":["1f595"],"fname":"1f595","uc":"1f595","isCanonical": false},":vulcan:":{"unicode":["1f596"],"fname":"1f596","uc":"1f596","isCanonical": true},":raised_hand_with_part_between_middle_and_ring_fingers:":{"unicode":["1f596"],"fname":"1f596","uc":"1f596","isCanonical": false},":slight_frown:":{"unicode":["1f641"],"fname":"1f641","uc":"1f641","isCanonical": true},":slightly_frowning_face:":{"unicode":["1f641"],"fname":"1f641","uc":"1f641","isCanonical": false},":slight_smile:":{"unicode":["1f642"],"fname":"1f642","uc":"1f642","isCanonical": true},":slightly_smiling_face:":{"unicode":["1f642"],"fname":"1f642","uc":"1f642","isCanonical": false},":airplane_departure:":{"unicode":["1f6eb"],"fname":"1f6eb","uc":"1f6eb","isCanonical": true},":airplane_arriving:":{"unicode":["1f6ec"],"fname":"1f6ec","uc":"1f6ec","isCanonical": true},":tone1:":{"unicode":["1f3fb"],"fname":"1f3fb","uc":"1f3fb","isCanonical": true},":tone2:":{"unicode":["1f3fc"],"fname":"1f3fc","uc":"1f3fc","isCanonical": true},":tone3:":{"unicode":["1f3fd"],"fname":"1f3fd","uc":"1f3fd","isCanonical": true},":tone4:":{"unicode":["1f3fe"],"fname":"1f3fe","uc":"1f3fe","isCanonical": true},":tone5:":{"unicode":["1f3ff"],"fname":"1f3ff","uc":"1f3ff","isCanonical": true},":upside_down:":{"unicode":["1f643"],"fname":"1f643","uc":"1f643","isCanonical": true},":upside_down_face:":{"unicode":["1f643"],"fname":"1f643","uc":"1f643","isCanonical": false},":money_mouth:":{"unicode":["1f911"],"fname":"1f911","uc":"1f911","isCanonical": true},":money_mouth_face:":{"unicode":["1f911"],"fname":"1f911","uc":"1f911","isCanonical": false},":nerd:":{"unicode":["1f913"],"fname":"1f913","uc":"1f913","isCanonical": true},":nerd_face:":{"unicode":["1f913"],"fname":"1f913","uc":"1f913","isCanonical": false},":hugging:":{"unicode":["1f917"],"fname":"1f917","uc":"1f917","isCanonical": true},":hugging_face:":{"unicode":["1f917"],"fname":"1f917","uc":"1f917","isCanonical": false},":rolling_eyes:":{"unicode":["1f644"],"fname":"1f644","uc":"1f644","isCanonical": true},":face_with_rolling_eyes:":{"unicode":["1f644"],"fname":"1f644","uc":"1f644","isCanonical": false},":thinking:":{"unicode":["1f914"],"fname":"1f914","uc":"1f914","isCanonical": true},":thinking_face:":{"unicode":["1f914"],"fname":"1f914","uc":"1f914","isCanonical": false},":zipper_mouth:":{"unicode":["1f910"],"fname":"1f910","uc":"1f910","isCanonical": true},":zipper_mouth_face:":{"unicode":["1f910"],"fname":"1f910","uc":"1f910","isCanonical": false},":thermometer_face:":{"unicode":["1f912"],"fname":"1f912","uc":"1f912","isCanonical": true},":face_with_thermometer:":{"unicode":["1f912"],"fname":"1f912","uc":"1f912","isCanonical": false},":head_bandage:":{"unicode":["1f915"],"fname":"1f915","uc":"1f915","isCanonical": true},":face_with_head_bandage:":{"unicode":["1f915"],"fname":"1f915","uc":"1f915","isCanonical": false},":robot:":{"unicode":["1f916"],"fname":"1f916","uc":"1f916","isCanonical": true},":robot_face:":{"unicode":["1f916"],"fname":"1f916","uc":"1f916","isCanonical": false},":lion_face:":{"unicode":["1f981"],"fname":"1f981","uc":"1f981","isCanonical": true},":lion:":{"unicode":["1f981"],"fname":"1f981","uc":"1f981","isCanonical": false},":unicorn:":{"unicode":["1f984"],"fname":"1f984","uc":"1f984","isCanonical": true},":unicorn_face:":{"unicode":["1f984"],"fname":"1f984","uc":"1f984","isCanonical": false},":scorpion:":{"unicode":["1f982"],"fname":"1f982","uc":"1f982","isCanonical": true},":crab:":{"unicode":["1f980"],"fname":"1f980","uc":"1f980","isCanonical": true},":turkey:":{"unicode":["1f983"],"fname":"1f983","uc":"1f983","isCanonical": true},":cheese:":{"unicode":["1f9c0"],"fname":"1f9c0","uc":"1f9c0","isCanonical": true},":cheese_wedge:":{"unicode":["1f9c0"],"fname":"1f9c0","uc":"1f9c0","isCanonical": false},":hotdog:":{"unicode":["1f32d"],"fname":"1f32d","uc":"1f32d","isCanonical": true},":hot_dog:":{"unicode":["1f32d"],"fname":"1f32d","uc":"1f32d","isCanonical": false},":taco:":{"unicode":["1f32e"],"fname":"1f32e","uc":"1f32e","isCanonical": true},":burrito:":{"unicode":["1f32f"],"fname":"1f32f","uc":"1f32f","isCanonical": true},":popcorn:":{"unicode":["1f37f"],"fname":"1f37f","uc":"1f37f","isCanonical": true},":champagne:":{"unicode":["1f37e"],"fname":"1f37e","uc":"1f37e","isCanonical": true},":bottle_with_popping_cork:":{"unicode":["1f37e"],"fname":"1f37e","uc":"1f37e","isCanonical": false},":bow_and_arrow:":{"unicode":["1f3f9"],"fname":"1f3f9","uc":"1f3f9","isCanonical": true},":archery:":{"unicode":["1f3f9"],"fname":"1f3f9","uc":"1f3f9","isCanonical": false},":amphora:":{"unicode":["1f3fa"],"fname":"1f3fa","uc":"1f3fa","isCanonical": true},":place_of_worship:":{"unicode":["1f6d0"],"fname":"1f6d0","uc":"1f6d0","isCanonical": true},":worship_symbol:":{"unicode":["1f6d0"],"fname":"1f6d0","uc":"1f6d0","isCanonical": false},":kaaba:":{"unicode":["1f54b"],"fname":"1f54b","uc":"1f54b","isCanonical": true},":mosque:":{"unicode":["1f54c"],"fname":"1f54c","uc":"1f54c","isCanonical": true},":synagogue:":{"unicode":["1f54d"],"fname":"1f54d","uc":"1f54d","isCanonical": true},":menorah:":{"unicode":["1f54e"],"fname":"1f54e","uc":"1f54e","isCanonical": true},":prayer_beads:":{"unicode":["1f4ff"],"fname":"1f4ff","uc":"1f4ff","isCanonical": true},":cricket:":{"unicode":["1f3cf"],"fname":"1f3cf","uc":"1f3cf","isCanonical": true},":cricket_bat_ball:":{"unicode":["1f3cf"],"fname":"1f3cf","uc":"1f3cf","isCanonical": false},":volleyball:":{"unicode":["1f3d0"],"fname":"1f3d0","uc":"1f3d0","isCanonical": true},":field_hockey:":{"unicode":["1f3d1"],"fname":"1f3d1","uc":"1f3d1","isCanonical": true},":hockey:":{"unicode":["1f3d2"],"fname":"1f3d2","uc":"1f3d2","isCanonical": true},":ping_pong:":{"unicode":["1f3d3"],"fname":"1f3d3","uc":"1f3d3","isCanonical": true},":table_tennis:":{"unicode":["1f3d3"],"fname":"1f3d3","uc":"1f3d3","isCanonical": false},":badminton:":{"unicode":["1f3f8"],"fname":"1f3f8","uc":"1f3f8","isCanonical": true},":drum:":{"unicode":["1f941"],"fname":"1f941","uc":"1f941","isCanonical": true},":drum_with_drumsticks:":{"unicode":["1f941"],"fname":"1f941","uc":"1f941","isCanonical": false},":shrimp:":{"unicode":["1f990"],"fname":"1f990","uc":"1f990","isCanonical": true},":squid:":{"unicode":["1f991"],"fname":"1f991","uc":"1f991","isCanonical": true},":egg:":{"unicode":["1f95a"],"fname":"1f95a","uc":"1f95a","isCanonical": true},":milk:":{"unicode":["1f95b"],"fname":"1f95b","uc":"1f95b","isCanonical": true},":glass_of_milk:":{"unicode":["1f95b"],"fname":"1f95b","uc":"1f95b","isCanonical": false},":peanuts:":{"unicode":["1f95c"],"fname":"1f95c","uc":"1f95c","isCanonical": true},":shelled_peanut:":{"unicode":["1f95c"],"fname":"1f95c","uc":"1f95c","isCanonical": false},":kiwi:":{"unicode":["1f95d"],"fname":"1f95d","uc":"1f95d","isCanonical": true},":kiwifruit:":{"unicode":["1f95d"],"fname":"1f95d","uc":"1f95d","isCanonical": false},":pancakes:":{"unicode":["1f95e"],"fname":"1f95e","uc":"1f95e","isCanonical": true},":regional_indicator_w:":{"unicode":["1f1fc"],"fname":"1f1fc","uc":"1f1fc","isCanonical": true},":regional_indicator_v:":{"unicode":["1f1fb"],"fname":"1f1fb","uc":"1f1fb","isCanonical": true},":regional_indicator_u:":{"unicode":["1f1fa"],"fname":"1f1fa","uc":"1f1fa","isCanonical": true},":regional_indicator_t:":{"unicode":["1f1f9"],"fname":"1f1f9","uc":"1f1f9","isCanonical": true},":regional_indicator_s:":{"unicode":["1f1f8"],"fname":"1f1f8","uc":"1f1f8","isCanonical": true},":regional_indicator_r:":{"unicode":["1f1f7"],"fname":"1f1f7","uc":"1f1f7","isCanonical": true},":regional_indicator_q:":{"unicode":["1f1f6"],"fname":"1f1f6","uc":"1f1f6","isCanonical": true},":regional_indicator_p:":{"unicode":["1f1f5"],"fname":"1f1f5","uc":"1f1f5","isCanonical": true},":regional_indicator_o:":{"unicode":["1f1f4"],"fname":"1f1f4","uc":"1f1f4","isCanonical": true},":regional_indicator_n:":{"unicode":["1f1f3"],"fname":"1f1f3","uc":"1f1f3","isCanonical": true},":regional_indicator_m:":{"unicode":["1f1f2"],"fname":"1f1f2","uc":"1f1f2","isCanonical": true},":regional_indicator_l:":{"unicode":["1f1f1"],"fname":"1f1f1","uc":"1f1f1","isCanonical": true},":regional_indicator_k:":{"unicode":["1f1f0"],"fname":"1f1f0","uc":"1f1f0","isCanonical": true},":regional_indicator_j:":{"unicode":["1f1ef"],"fname":"1f1ef","uc":"1f1ef","isCanonical": true},":regional_indicator_i:":{"unicode":["1f1ee"],"fname":"1f1ee","uc":"1f1ee","isCanonical": true},":regional_indicator_h:":{"unicode":["1f1ed"],"fname":"1f1ed","uc":"1f1ed","isCanonical": true},":regional_indicator_g:":{"unicode":["1f1ec"],"fname":"1f1ec","uc":"1f1ec","isCanonical": true},":regional_indicator_f:":{"unicode":["1f1eb"],"fname":"1f1eb","uc":"1f1eb","isCanonical": true},":regional_indicator_e:":{"unicode":["1f1ea"],"fname":"1f1ea","uc":"1f1ea","isCanonical": true},":regional_indicator_d:":{"unicode":["1f1e9"],"fname":"1f1e9","uc":"1f1e9","isCanonical": true},":regional_indicator_c:":{"unicode":["1f1e8"],"fname":"1f1e8","uc":"1f1e8","isCanonical": true},":regional_indicator_b:":{"unicode":["1f1e7"],"fname":"1f1e7","uc":"1f1e7","isCanonical": true},":regional_indicator_a:":{"unicode":["1f1e6"],"fname":"1f1e6","uc":"1f1e6","isCanonical": true},":fast_forward:":{"unicode":["23e9"],"fname":"23e9","uc":"23e9","isCanonical": true},":rewind:":{"unicode":["23ea"],"fname":"23ea","uc":"23ea","isCanonical": true},":arrow_double_up:":{"unicode":["23eb"],"fname":"23eb","uc":"23eb","isCanonical": true},":arrow_double_down:":{"unicode":["23ec"],"fname":"23ec","uc":"23ec","isCanonical": true},":alarm_clock:":{"unicode":["23f0"],"fname":"23f0","uc":"23f0","isCanonical": true},":hourglass_flowing_sand:":{"unicode":["23f3"],"fname":"23f3","uc":"23f3","isCanonical": true},":ophiuchus:":{"unicode":["26ce"],"fname":"26ce","uc":"26ce","isCanonical": true},":white_check_mark:":{"unicode":["2705"],"fname":"2705","uc":"2705","isCanonical": true},":fist:":{"unicode":["270a"],"fname":"270a","uc":"270a","isCanonical": true},":raised_hand:":{"unicode":["270b"],"fname":"270b","uc":"270b","isCanonical": true},":sparkles:":{"unicode":["2728"],"fname":"2728","uc":"2728","isCanonical": true},":x:":{"unicode":["274c"],"fname":"274c","uc":"274c","isCanonical": true},":negative_squared_cross_mark:":{"unicode":["274e"],"fname":"274e","uc":"274e","isCanonical": true},":question:":{"unicode":["2753"],"fname":"2753","uc":"2753","isCanonical": true},":grey_question:":{"unicode":["2754"],"fname":"2754","uc":"2754","isCanonical": true},":grey_exclamation:":{"unicode":["2755"],"fname":"2755","uc":"2755","isCanonical": true},":heavy_plus_sign:":{"unicode":["2795"],"fname":"2795","uc":"2795","isCanonical": true},":heavy_minus_sign:":{"unicode":["2796"],"fname":"2796","uc":"2796","isCanonical": true},":heavy_division_sign:":{"unicode":["2797"],"fname":"2797","uc":"2797","isCanonical": true},":curly_loop:":{"unicode":["27b0"],"fname":"27b0","uc":"27b0","isCanonical": true},":loop:":{"unicode":["27bf"],"fname":"27bf","uc":"27bf","isCanonical": true}};
// ns.shortnames = Object.keys(ns.emojioneList).map(function(emoji) {
// return emoji.replace(/[+]/g, "\\$&");
// }).join('|');
@@ -40496,11 +48621,11 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
':D':'1f603',
':-D':'1f603',
'=D':'1f603',
- ':)':'1f604',
- ':-)':'1f604',
- '=]':'1f604',
- '=)':'1f604',
- ':]':'1f604',
+ ':)':'1f642',
+ ':-)':'1f642',
+ '=]':'1f642',
+ '=)':'1f642',
+ ':]':'1f642',
'\':)':'1f605',
'\':-)':'1f605',
'\'=)':'1f605',
@@ -40618,21 +48743,22 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
};
ns.asciiRegexp = '(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
// javascript escapes here must be ordered from largest length to shortest
- ns.unicodeRegexp = '(\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFE|\\u270B\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|4\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|8\\uFE0F\\u20E3|7\\uFE0F\\u20E3|6\\uFE0F\\u20E3|5\\uFE0F\\u20E3|9\\uFE0F\\u20E3|3\\uFE0F\\u20E3|2\\uFE0F\\u20E3|1\\uFE0F\\u20E3|0\\uFE0F\\u20E3|#\\uFE0F\\u20E3|\\uD83C\\uDF61|\\u2198\\uFE0F|\\u2199\\uFE0F|\\uD83C\\uDFF8|\\u2600\\uFE0F|\\u2601\\uFE0F|\\uD83C\\uDFD3|\\uD83C\\uDFD2|\\uD83C\\uDFD1|\\u2611\\uFE0F|\\u2614\\uFE0F|\\u2615\\uFE0F|\\uD83C\\uDFD0|\\uD83C\\uDFCF|\\uD83D\\uDCFF|\\uD83D\\uDD4E|\\uD83D\\uDD4D|\\uD83D\\uDD4C|\\uD83D\\uDD4B|\\u2648\\uFE0F|\\u2649\\uFE0F|\\u2650\\uFE0F|\\u2651\\uFE0F|\\u2652\\uFE0F|\\u2653\\uFE0F|\\u2660\\uFE0F|\\u2663\\uFE0F|\\u2665\\uFE0F|\\u2666\\uFE0F|\\u2668\\uFE0F|\\uD83D\\uDED0|\\u2693\\uFE0F|\\uD83C\\uDFFA|\\uD83C\\uDFF9|\\uD83C\\uDF7E|\\uD83C\\uDF7F|\\u2702\\uFE0F|\\uD83C\\uDF2F|\\u2708\\uFE0F|\\u2709\\uFE0F|\\u2712\\uFE0F|\\u2714\\uFE0F|\\u2716\\uFE0F|\\uD83C\\uDF2E|\\uD83C\\uDF2D|\\u2733\\uFE0F|\\u2734\\uFE0F|\\u2744\\uFE0F|\\u2747\\uFE0F|\\uD83E\\uDDC0|\\uD83E\\uDD83|\\uD83E\\uDD80|\\u2757\\uFE0F|\\uD83E\\uDD82|\\u2764\\uFE0F|\\uD83E\\uDD84|\\uD83E\\uDD81|\\uD83E\\uDD16|\\u2934\\uFE0F|\\u2935\\uFE0F|\\uD83E\\uDD15|\\u3297\\uFE0F|\\u3299\\uFE0F|\\u2049\\uFE0F|\\u2139\\uFE0F|\\u2194\\uFE0F|\\u2195\\uFE0F|\\u2196\\uFE0F|\\u2197\\uFE0F|\\u00A9\\uFE0F|\\u00AE\\uFE0F|\\u203C\\uFE0F|\\u21A9\\uFE0F|\\u21AA\\uFE0F|\\u231A\\uFE0F|\\u231B\\uFE0F|\\u24C2\\uFE0F|\\u25AA\\uFE0F|\\u25AB\\uFE0F|\\u25B6\\uFE0F|\\u25C0\\uFE0F|\\u25FB\\uFE0F|\\u25FC\\uFE0F|\\u25FD\\uFE0F|\\u25FE\\uFE0F|\\u260E\\uFE0F|\\u261D\\uFE0F|\\u263A\\uFE0F|\\u264A\\uFE0F|\\u264B\\uFE0F|\\u264C\\uFE0F|\\u264D\\uFE0F|\\u264E\\uFE0F|\\u264F\\uFE0F|\\u267B\\uFE0F|\\u267F\\uFE0F|\\u26A0\\uFE0F|\\u26A1\\uFE0F|\\u26AA\\uFE0F|\\u26AB\\uFE0F|\\u26BD\\uFE0F|\\u26BE\\uFE0F|\\u26C4\\uFE0F|\\u26C5\\uFE0F|\\u26D4\\uFE0F|\\u26EA\\uFE0F|\\u26F2\\uFE0F|\\u26F3\\uFE0F|\\u26F5\\uFE0F|\\u26FA\\uFE0F|\\u26FD\\uFE0F|\\u270C\\uFE0F|\\u270F\\uFE0F|\\u27A1\\uFE0F|\\u2B05\\uFE0F|\\u2B06\\uFE0F|\\u2B07\\uFE0F|\\u2B1B\\uFE0F|\\u2B1C\\uFE0F|\\u2B50\\uFE0F|\\u2B55\\uFE0F|\\u303D\\uFE0F|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\u2122\\uFE0F|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDF9E|\\uD83C\\uDF9F|\\uD83C\\uDFC5|\\uD83C\\uDFCB|\\uD83C\\uDFCC|\\uD83C\\uDFCD|\\uD83C\\uDFCE|\\uD83C\\uDF96|\\uD83C\\uDF97|\\uD83C\\uDF36|\\uD83C\\uDF27|\\uD83C\\uDF28|\\uD83C\\uDF29|\\uD83C\\uDF2A|\\uD83C\\uDF2B|\\uD83C\\uDF2C|\\uD83D\\uDC3F|\\uD83D\\uDD77|\\uD83D\\uDD78|\\uD83C\\uDF21|\\uD83C\\uDF99|\\uD83C\\uDF9A|\\uD83C\\uDF9B|\\uD83C\\uDFF3|\\uD83C\\uDFF4|\\uD83C\\uDFF5|\\uD83C\\uDFF7|\\uD83D\\uDCF8|\\uD83D\\uDCFD|\\uD83D\\uDD49|\\uD83D\\uDD4A|\\uD83D\\uDD6F|\\uD83D\\uDD70|\\uD83D\\uDD73|\\uD83D\\uDD76|\\uD83D\\uDD79|\\uD83D\\uDD87|\\uD83D\\uDD8A|\\uD83D\\uDD8B|\\uD83D\\uDD8C|\\uD83D\\uDD8D|\\uD83D\\uDDA5|\\uD83D\\uDDA8|\\uD83D\\uDDB2|\\uD83D\\uDDBC|\\uD83D\\uDDC2|\\uD83D\\uDDC3|\\uD83D\\uDDC4|\\uD83D\\uDDD1|\\uD83D\\uDDD2|\\uD83D\\uDDD3|\\uD83D\\uDDDC|\\uD83D\\uDDDD|\\uD83D\\uDDDE|\\uD83D\\uDDE1|\\uD83D\\uDDE3|\\uD83D\\uDDEF|\\uD83D\\uDDF3|\\uD83D\\uDDFA|\\uD83D\\uDECC|\\uD83D\\uDEE0|\\uD83D\\uDEE1|\\uD83D\\uDEE2|\\uD83D\\uDEF0|\\uD83C\\uDF7D|\\uD83D\\uDC41|\\uD83D\\uDD74|\\uD83D\\uDD75|\\uD83D\\uDD90|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83C\\uDFD4|\\uD83C\\uDFD5|\\uD83C\\uDFD6|\\uD83C\\uDFD7|\\uD83C\\uDFD8|\\uD83C\\uDFD9|\\uD83C\\uDFDA|\\uD83C\\uDFDB|\\uD83C\\uDFDC|\\uD83C\\uDFDD|\\uD83C\\uDFDE|\\uD83C\\uDFDF|\\uD83D\\uDECB|\\uD83D\\uDECD|\\uD83D\\uDECE|\\uD83D\\uDECF|\\uD83D\\uDEE3|\\uD83D\\uDEE4|\\uD83D\\uDEE5|\\uD83D\\uDEE9|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83D\\uDEF3|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83C\\uDF24|\\uD83C\\uDF25|\\uD83C\\uDF26|\\uD83D\\uDDB1|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\uD83E\\uDD12|\\u270A|\\u3030|\\u2796|\\u2795|\\u2763|\\u2755|\\u2754|\\u2753|\\u2728|\\u2721|\\u2705|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u2328|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2797|\\u270B|\\u274C|\\u274E|\\u27B0|\\u27BF|\\u271D|\\u270D|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u262A|\\u262E|\\u262F|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9)';
- ns.jsEscapeMap = {"\u2049\uFE0F":"2049","\u2122\uFE0F":"2122","\u2139\uFE0F":"2139","\u2194\uFE0F":"2194","\u2195\uFE0F":"2195","\u2196\uFE0F":"2196","\u2197\uFE0F":"2197","\u2198\uFE0F":"2198","\u2199\uFE0F":"2199","\u2328":"2328","\u2600\uFE0F":"2600","\u2601\uFE0F":"2601","\u2602":"2602","\u2603":"2603","\u2604":"2604","\u2611\uFE0F":"2611","\u2614\uFE0F":"2614","\u2615\uFE0F":"2615","\u2618":"2618","\u2620":"2620","\u2622":"2622","\u2623":"2623","\u2626":"2626","\u2638":"2638","\u2639":"2639","\u2648\uFE0F":"2648","\u2649\uFE0F":"2649","\u2650\uFE0F":"2650","\u2651\uFE0F":"2651","\u2652\uFE0F":"2652","\u2653\uFE0F":"2653","\u2660\uFE0F":"2660","\u2663\uFE0F":"2663","\u2665\uFE0F":"2665","\u2666\uFE0F":"2666","\u2668\uFE0F":"2668","\u2692":"2692","\u2693\uFE0F":"2693","\u2694":"2694","\u2696":"2696","\u2697":"2697","\u2699":"2699","\u2702\uFE0F":"2702","\u2705":"2705","\u2708\uFE0F":"2708","\u2709\uFE0F":"2709","\u2712\uFE0F":"2712","\u2714\uFE0F":"2714","\u2716\uFE0F":"2716","\u2721":"2721","\u2728":"2728","\u2733\uFE0F":"2733","\u2734\uFE0F":"2734","\u2744\uFE0F":"2744","\u2747\uFE0F":"2747","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2757\uFE0F":"2757","\u2763":"2763","\u2764\uFE0F":"2764","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u2934\uFE0F":"2934","\u2935\uFE0F":"2935","\u3030":"3030","\u3297\uFE0F":"3297","\u3299\uFE0F":"3299","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC69":"1f469-2764-1f48b-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68":"1f468-2764-1f48b-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-1f468-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-1f468-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-1f468-1f467-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-1f469-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-1f469-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-1f469-1f467-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f469-1f469-1f466-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f469-1f469-1f467-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f469-1f469-1f467-1f467","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC69":"1f469-2764-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC68":"1f468-2764-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66":"1f468-1f468-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67":"1f468-1f468-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f468-1f469-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66":"1f469-1f469-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f469-1f469-1f467","\uD83D\uDC41\u200D\uD83D\uDDE8":"1f441-1f5e8","#\uFE0F\u20E3":"0023-20e3","0\uFE0F\u20E3":"0030-20e3","1\uFE0F\u20E3":"0031-20e3","2\uFE0F\u20E3":"0032-20e3","3\uFE0F\u20E3":"0033-20e3","4\uFE0F\u20E3":"0034-20e3","5\uFE0F\u20E3":"0035-20e3","6\uFE0F\u20E3":"0036-20e3","7\uFE0F\u20E3":"0037-20e3","8\uFE0F\u20E3":"0038-20e3","9\uFE0F\u20E3":"0039-20e3","*\uFE0F\u20E3":"002a-20e3","\uD83E\uDD18\uD83C\uDFFF":"1f918-1f3ff","\uD83E\uDD18\uD83C\uDFFE":"1f918-1f3fe","\uD83E\uDD18\uD83C\uDFFD":"1f918-1f3fd","\uD83E\uDD18\uD83C\uDFFC":"1f918-1f3fc","\uD83E\uDD18\uD83C\uDFFB":"1f918-1f3fb","\uD83D\uDEC0\uD83C\uDFFF":"1f6c0-1f3ff","\uD83D\uDEC0\uD83C\uDFFE":"1f6c0-1f3fe","\uD83D\uDEC0\uD83C\uDFFD":"1f6c0-1f3fd","\uD83D\uDEC0\uD83C\uDFFC":"1f6c0-1f3fc","\uD83D\uDEC0\uD83C\uDFFB":"1f6c0-1f3fb","\uD83D\uDEB6\uD83C\uDFFF":"1f6b6-1f3ff","\uD83D\uDEB6\uD83C\uDFFE":"1f6b6-1f3fe","\uD83D\uDEB6\uD83C\uDFFD":"1f6b6-1f3fd","\uD83D\uDEB6\uD83C\uDFFC":"1f6b6-1f3fc","\uD83D\uDEB6\uD83C\uDFFB":"1f6b6-1f3fb","\uD83D\uDEB5\uD83C\uDFFF":"1f6b5-1f3ff","\uD83D\uDEB5\uD83C\uDFFE":"1f6b5-1f3fe","\uD83D\uDEB5\uD83C\uDFFD":"1f6b5-1f3fd","\uD83D\uDEB5\uD83C\uDFFC":"1f6b5-1f3fc","\uD83D\uDEB5\uD83C\uDFFB":"1f6b5-1f3fb","\uD83D\uDEB4\uD83C\uDFFF":"1f6b4-1f3ff","\uD83D\uDEB4\uD83C\uDFFE":"1f6b4-1f3fe","\uD83D\uDEB4\uD83C\uDFFD":"1f6b4-1f3fd","\uD83D\uDEB4\uD83C\uDFFC":"1f6b4-1f3fc","\uD83D\uDEB4\uD83C\uDFFB":"1f6b4-1f3fb","\uD83D\uDEA3\uD83C\uDFFF":"1f6a3-1f3ff","\uD83D\uDEA3\uD83C\uDFFE":"1f6a3-1f3fe","\uD83D\uDEA3\uD83C\uDFFD":"1f6a3-1f3fd","\uD83D\uDEA3\uD83C\uDFFC":"1f6a3-1f3fc","\uD83D\uDEA3\uD83C\uDFFB":"1f6a3-1f3fb","\uD83D\uDE4F\uD83C\uDFFF":"1f64f-1f3ff","\uD83D\uDE4F\uD83C\uDFFE":"1f64f-1f3fe","\uD83D\uDE4F\uD83C\uDFFD":"1f64f-1f3fd","\uD83D\uDE4F\uD83C\uDFFC":"1f64f-1f3fc","\uD83D\uDE4F\uD83C\uDFFB":"1f64f-1f3fb","\uD83D\uDE4E\uD83C\uDFFF":"1f64e-1f3ff","\uD83D\uDE4E\uD83C\uDFFE":"1f64e-1f3fe","\uD83D\uDE4E\uD83C\uDFFD":"1f64e-1f3fd","\uD83D\uDE4E\uD83C\uDFFC":"1f64e-1f3fc","\uD83D\uDE4E\uD83C\uDFFB":"1f64e-1f3fb","\uD83D\uDE4D\uD83C\uDFFF":"1f64d-1f3ff","\uD83D\uDE4D\uD83C\uDFFE":"1f64d-1f3fe","\uD83D\uDE4D\uD83C\uDFFD":"1f64d-1f3fd","\uD83D\uDE4D\uD83C\uDFFC":"1f64d-1f3fc","\uD83D\uDE4D\uD83C\uDFFB":"1f64d-1f3fb","\uD83D\uDE4C\uD83C\uDFFF":"1f64c-1f3ff","\uD83D\uDE4C\uD83C\uDFFE":"1f64c-1f3fe","\uD83D\uDE4C\uD83C\uDFFD":"1f64c-1f3fd","\uD83D\uDE4C\uD83C\uDFFC":"1f64c-1f3fc","\uD83D\uDE4C\uD83C\uDFFB":"1f64c-1f3fb","\uD83D\uDE4B\uD83C\uDFFF":"1f64b-1f3ff","\uD83D\uDE4B\uD83C\uDFFE":"1f64b-1f3fe","\uD83D\uDE4B\uD83C\uDFFD":"1f64b-1f3fd","\uD83D\uDE4B\uD83C\uDFFC":"1f64b-1f3fc","\uD83D\uDE4B\uD83C\uDFFB":"1f64b-1f3fb","\uD83D\uDE47\uD83C\uDFFF":"1f647-1f3ff","\uD83D\uDE47\uD83C\uDFFE":"1f647-1f3fe","\uD83D\uDE47\uD83C\uDFFD":"1f647-1f3fd","\uD83D\uDE47\uD83C\uDFFC":"1f647-1f3fc","\uD83D\uDE47\uD83C\uDFFB":"1f647-1f3fb","\uD83D\uDE46\uD83C\uDFFF":"1f646-1f3ff","\uD83D\uDE46\uD83C\uDFFE":"1f646-1f3fe","\uD83D\uDE46\uD83C\uDFFD":"1f646-1f3fd","\uD83D\uDE46\uD83C\uDFFC":"1f646-1f3fc","\uD83D\uDE46\uD83C\uDFFB":"1f646-1f3fb","\uD83D\uDE45\uD83C\uDFFF":"1f645-1f3ff","\uD83D\uDE45\uD83C\uDFFE":"1f645-1f3fe","\uD83D\uDE45\uD83C\uDFFD":"1f645-1f3fd","\uD83D\uDE45\uD83C\uDFFC":"1f645-1f3fc","\uD83D\uDE45\uD83C\uDFFB":"1f645-1f3fb","\uD83D\uDD96\uD83C\uDFFF":"1f596-1f3ff","\uD83D\uDD96\uD83C\uDFFE":"1f596-1f3fe","\uD83D\uDD96\uD83C\uDFFD":"1f596-1f3fd","\uD83D\uDD96\uD83C\uDFFC":"1f596-1f3fc","\uD83D\uDD96\uD83C\uDFFB":"1f596-1f3fb","\uD83D\uDD95\uD83C\uDFFF":"1f595-1f3ff","\uD83D\uDD95\uD83C\uDFFE":"1f595-1f3fe","\uD83D\uDD95\uD83C\uDFFD":"1f595-1f3fd","\uD83D\uDD95\uD83C\uDFFC":"1f595-1f3fc","\uD83D\uDD95\uD83C\uDFFB":"1f595-1f3fb","\uD83D\uDD90\uD83C\uDFFF":"1f590-1f3ff","\uD83D\uDD90\uD83C\uDFFE":"1f590-1f3fe","\uD83D\uDD90\uD83C\uDFFD":"1f590-1f3fd","\uD83D\uDD90\uD83C\uDFFC":"1f590-1f3fc","\uD83D\uDD90\uD83C\uDFFB":"1f590-1f3fb","\uD83D\uDD75\uD83C\uDFFF":"1f575-1f3ff","\uD83D\uDD75\uD83C\uDFFE":"1f575-1f3fe","\uD83D\uDD75\uD83C\uDFFD":"1f575-1f3fd","\uD83D\uDD75\uD83C\uDFFC":"1f575-1f3fc","\uD83D\uDD75\uD83C\uDFFB":"1f575-1f3fb","\uD83D\uDCAA\uD83C\uDFFF":"1f4aa-1f3ff","\uD83D\uDCAA\uD83C\uDFFE":"1f4aa-1f3fe","\uD83D\uDCAA\uD83C\uDFFD":"1f4aa-1f3fd","\uD83D\uDCAA\uD83C\uDFFC":"1f4aa-1f3fc","\uD83D\uDCAA\uD83C\uDFFB":"1f4aa-1f3fb","\uD83D\uDC87\uD83C\uDFFF":"1f487-1f3ff","\uD83D\uDC87\uD83C\uDFFE":"1f487-1f3fe","\uD83D\uDC87\uD83C\uDFFD":"1f487-1f3fd","\uD83D\uDC87\uD83C\uDFFC":"1f487-1f3fc","\uD83D\uDC87\uD83C\uDFFB":"1f487-1f3fb","\uD83D\uDC86\uD83C\uDFFF":"1f486-1f3ff","\uD83D\uDC86\uD83C\uDFFE":"1f486-1f3fe","\uD83D\uDC86\uD83C\uDFFD":"1f486-1f3fd","\uD83D\uDC86\uD83C\uDFFC":"1f486-1f3fc","\uD83D\uDC86\uD83C\uDFFB":"1f486-1f3fb","\uD83D\uDC85\uD83C\uDFFF":"1f485-1f3ff","\uD83D\uDC85\uD83C\uDFFE":"1f485-1f3fe","\uD83D\uDC85\uD83C\uDFFD":"1f485-1f3fd","\uD83D\uDC85\uD83C\uDFFC":"1f485-1f3fc","\uD83D\uDC85\uD83C\uDFFB":"1f485-1f3fb","\uD83D\uDC83\uD83C\uDFFF":"1f483-1f3ff","\uD83D\uDC83\uD83C\uDFFE":"1f483-1f3fe","\uD83D\uDC83\uD83C\uDFFD":"1f483-1f3fd","\uD83D\uDC83\uD83C\uDFFC":"1f483-1f3fc","\uD83D\uDC83\uD83C\uDFFB":"1f483-1f3fb","\uD83D\uDC82\uD83C\uDFFF":"1f482-1f3ff","\uD83D\uDC82\uD83C\uDFFE":"1f482-1f3fe","\uD83D\uDC82\uD83C\uDFFD":"1f482-1f3fd","\uD83D\uDC82\uD83C\uDFFC":"1f482-1f3fc","\uD83D\uDC82\uD83C\uDFFB":"1f482-1f3fb","\uD83D\uDC81\uD83C\uDFFF":"1f481-1f3ff","\uD83D\uDC81\uD83C\uDFFE":"1f481-1f3fe","\uD83D\uDC81\uD83C\uDFFD":"1f481-1f3fd","\uD83D\uDC81\uD83C\uDFFC":"1f481-1f3fc","\uD83D\uDC81\uD83C\uDFFB":"1f481-1f3fb","\uD83D\uDC7C\uD83C\uDFFF":"1f47c-1f3ff","\uD83D\uDC7C\uD83C\uDFFE":"1f47c-1f3fe","\uD83D\uDC7C\uD83C\uDFFD":"1f47c-1f3fd","\uD83D\uDC7C\uD83C\uDFFC":"1f47c-1f3fc","\uD83D\uDC7C\uD83C\uDFFB":"1f47c-1f3fb","\uD83D\uDC78\uD83C\uDFFF":"1f478-1f3ff","\uD83D\uDC78\uD83C\uDFFE":"1f478-1f3fe","\uD83D\uDC78\uD83C\uDFFD":"1f478-1f3fd","\uD83D\uDC78\uD83C\uDFFC":"1f478-1f3fc","\uD83D\uDC78\uD83C\uDFFB":"1f478-1f3fb","\uD83D\uDC77\uD83C\uDFFF":"1f477-1f3ff","\uD83D\uDC77\uD83C\uDFFE":"1f477-1f3fe","\uD83D\uDC77\uD83C\uDFFD":"1f477-1f3fd","\uD83D\uDC77\uD83C\uDFFC":"1f477-1f3fc","\uD83D\uDC77\uD83C\uDFFB":"1f477-1f3fb","\uD83D\uDC76\uD83C\uDFFF":"1f476-1f3ff","\uD83D\uDC76\uD83C\uDFFE":"1f476-1f3fe","\uD83D\uDC76\uD83C\uDFFD":"1f476-1f3fd","\uD83D\uDC76\uD83C\uDFFC":"1f476-1f3fc","\uD83D\uDC76\uD83C\uDFFB":"1f476-1f3fb","\uD83D\uDC75\uD83C\uDFFF":"1f475-1f3ff","\uD83D\uDC75\uD83C\uDFFE":"1f475-1f3fe","\uD83D\uDC75\uD83C\uDFFD":"1f475-1f3fd","\uD83D\uDC75\uD83C\uDFFC":"1f475-1f3fc","\uD83D\uDC75\uD83C\uDFFB":"1f475-1f3fb","\uD83D\uDC74\uD83C\uDFFF":"1f474-1f3ff","\uD83D\uDC74\uD83C\uDFFE":"1f474-1f3fe","\uD83D\uDC74\uD83C\uDFFD":"1f474-1f3fd","\uD83D\uDC74\uD83C\uDFFC":"1f474-1f3fc","\uD83D\uDC74\uD83C\uDFFB":"1f474-1f3fb","\uD83D\uDC73\uD83C\uDFFF":"1f473-1f3ff","\uD83D\uDC73\uD83C\uDFFE":"1f473-1f3fe","\uD83D\uDC73\uD83C\uDFFD":"1f473-1f3fd","\uD83D\uDC73\uD83C\uDFFC":"1f473-1f3fc","\uD83D\uDC73\uD83C\uDFFB":"1f473-1f3fb","\uD83D\uDC72\uD83C\uDFFF":"1f472-1f3ff","\uD83D\uDC72\uD83C\uDFFE":"1f472-1f3fe","\uD83D\uDC72\uD83C\uDFFD":"1f472-1f3fd","\uD83D\uDC72\uD83C\uDFFC":"1f472-1f3fc","\uD83D\uDC72\uD83C\uDFFB":"1f472-1f3fb","\uD83D\uDC71\uD83C\uDFFF":"1f471-1f3ff","\uD83D\uDC71\uD83C\uDFFE":"1f471-1f3fe","\uD83D\uDC71\uD83C\uDFFD":"1f471-1f3fd","\uD83D\uDC71\uD83C\uDFFC":"1f471-1f3fc","\uD83D\uDC71\uD83C\uDFFB":"1f471-1f3fb","\uD83D\uDC70\uD83C\uDFFF":"1f470-1f3ff","\uD83D\uDC70\uD83C\uDFFE":"1f470-1f3fe","\uD83D\uDC70\uD83C\uDFFD":"1f470-1f3fd","\uD83D\uDC70\uD83C\uDFFC":"1f470-1f3fc","\uD83D\uDC70\uD83C\uDFFB":"1f470-1f3fb","\uD83D\uDC6E\uD83C\uDFFF":"1f46e-1f3ff","\uD83D\uDC6E\uD83C\uDFFE":"1f46e-1f3fe","\uD83D\uDC6E\uD83C\uDFFD":"1f46e-1f3fd","\uD83D\uDC6E\uD83C\uDFFC":"1f46e-1f3fc","\uD83D\uDC6E\uD83C\uDFFB":"1f46e-1f3fb","\uD83D\uDC69\uD83C\uDFFF":"1f469-1f3ff","\uD83D\uDC69\uD83C\uDFFE":"1f469-1f3fe","\uD83D\uDC69\uD83C\uDFFD":"1f469-1f3fd","\uD83D\uDC69\uD83C\uDFFC":"1f469-1f3fc","\uD83D\uDC69\uD83C\uDFFB":"1f469-1f3fb","\uD83D\uDC68\uD83C\uDFFF":"1f468-1f3ff","\uD83D\uDC68\uD83C\uDFFE":"1f468-1f3fe","\uD83D\uDC68\uD83C\uDFFD":"1f468-1f3fd","\uD83D\uDC68\uD83C\uDFFC":"1f468-1f3fc","\uD83D\uDC68\uD83C\uDFFB":"1f468-1f3fb","\uD83D\uDC67\uD83C\uDFFF":"1f467-1f3ff","\uD83D\uDC67\uD83C\uDFFE":"1f467-1f3fe","\uD83D\uDC67\uD83C\uDFFD":"1f467-1f3fd","\uD83D\uDC67\uD83C\uDFFC":"1f467-1f3fc","\uD83D\uDC67\uD83C\uDFFB":"1f467-1f3fb","\uD83D\uDC66\uD83C\uDFFF":"1f466-1f3ff","\uD83D\uDC66\uD83C\uDFFE":"1f466-1f3fe","\uD83D\uDC66\uD83C\uDFFD":"1f466-1f3fd","\uD83D\uDC66\uD83C\uDFFC":"1f466-1f3fc","\uD83D\uDC66\uD83C\uDFFB":"1f466-1f3fb","\uD83D\uDC50\uD83C\uDFFF":"1f450-1f3ff","\uD83D\uDC50\uD83C\uDFFE":"1f450-1f3fe","\uD83D\uDC50\uD83C\uDFFD":"1f450-1f3fd","\uD83D\uDC50\uD83C\uDFFC":"1f450-1f3fc","\uD83D\uDC50\uD83C\uDFFB":"1f450-1f3fb","\uD83D\uDC4F\uD83C\uDFFF":"1f44f-1f3ff","\uD83D\uDC4F\uD83C\uDFFE":"1f44f-1f3fe","\uD83D\uDC4F\uD83C\uDFFD":"1f44f-1f3fd","\uD83D\uDC4F\uD83C\uDFFC":"1f44f-1f3fc","\uD83D\uDC4F\uD83C\uDFFB":"1f44f-1f3fb","\uD83D\uDC4E\uD83C\uDFFF":"1f44e-1f3ff","\uD83D\uDC4E\uD83C\uDFFE":"1f44e-1f3fe","\uD83D\uDC4E\uD83C\uDFFD":"1f44e-1f3fd","\uD83D\uDC4E\uD83C\uDFFC":"1f44e-1f3fc","\uD83D\uDC4E\uD83C\uDFFB":"1f44e-1f3fb","\uD83D\uDC4D\uD83C\uDFFF":"1f44d-1f3ff","\uD83D\uDC4D\uD83C\uDFFE":"1f44d-1f3fe","\uD83D\uDC4D\uD83C\uDFFD":"1f44d-1f3fd","\uD83D\uDC4D\uD83C\uDFFC":"1f44d-1f3fc","\uD83D\uDC4D\uD83C\uDFFB":"1f44d-1f3fb","\uD83D\uDC4C\uD83C\uDFFF":"1f44c-1f3ff","\uD83D\uDC4C\uD83C\uDFFE":"1f44c-1f3fe","\uD83D\uDC4C\uD83C\uDFFD":"1f44c-1f3fd","\uD83D\uDC4C\uD83C\uDFFC":"1f44c-1f3fc","\uD83D\uDC4C\uD83C\uDFFB":"1f44c-1f3fb","\uD83D\uDC4B\uD83C\uDFFF":"1f44b-1f3ff","\uD83D\uDC4B\uD83C\uDFFE":"1f44b-1f3fe","\uD83D\uDC4B\uD83C\uDFFD":"1f44b-1f3fd","\uD83D\uDC4B\uD83C\uDFFC":"1f44b-1f3fc","\uD83D\uDC4B\uD83C\uDFFB":"1f44b-1f3fb","\uD83D\uDC4A\uD83C\uDFFF":"1f44a-1f3ff","\uD83D\uDC4A\uD83C\uDFFE":"1f44a-1f3fe","\uD83D\uDC4A\uD83C\uDFFD":"1f44a-1f3fd","\uD83D\uDC4A\uD83C\uDFFC":"1f44a-1f3fc","\uD83D\uDC4A\uD83C\uDFFB":"1f44a-1f3fb","\uD83D\uDC49\uD83C\uDFFF":"1f449-1f3ff","\uD83D\uDC49\uD83C\uDFFE":"1f449-1f3fe","\uD83D\uDC49\uD83C\uDFFD":"1f449-1f3fd","\uD83D\uDC49\uD83C\uDFFC":"1f449-1f3fc","\uD83D\uDC49\uD83C\uDFFB":"1f449-1f3fb","\uD83D\uDC48\uD83C\uDFFF":"1f448-1f3ff","\uD83D\uDC48\uD83C\uDFFE":"1f448-1f3fe","\uD83D\uDC48\uD83C\uDFFD":"1f448-1f3fd","\uD83D\uDC48\uD83C\uDFFC":"1f448-1f3fc","\uD83D\uDC48\uD83C\uDFFB":"1f448-1f3fb","\uD83D\uDC47\uD83C\uDFFF":"1f447-1f3ff","\uD83D\uDC47\uD83C\uDFFE":"1f447-1f3fe","\uD83D\uDC47\uD83C\uDFFD":"1f447-1f3fd","\uD83D\uDC47\uD83C\uDFFC":"1f447-1f3fc","\uD83D\uDC47\uD83C\uDFFB":"1f447-1f3fb","\uD83D\uDC46\uD83C\uDFFF":"1f446-1f3ff","\uD83D\uDC46\uD83C\uDFFE":"1f446-1f3fe","\uD83D\uDC46\uD83C\uDFFD":"1f446-1f3fd","\uD83D\uDC46\uD83C\uDFFC":"1f446-1f3fc","\uD83D\uDC46\uD83C\uDFFB":"1f446-1f3fb","\uD83D\uDC43\uD83C\uDFFF":"1f443-1f3ff","\uD83D\uDC43\uD83C\uDFFE":"1f443-1f3fe","\uD83D\uDC43\uD83C\uDFFD":"1f443-1f3fd","\uD83D\uDC43\uD83C\uDFFC":"1f443-1f3fc","\uD83D\uDC43\uD83C\uDFFB":"1f443-1f3fb","\uD83D\uDC42\uD83C\uDFFF":"1f442-1f3ff","\uD83D\uDC42\uD83C\uDFFE":"1f442-1f3fe","\uD83D\uDC42\uD83C\uDFFD":"1f442-1f3fd","\uD83D\uDC42\uD83C\uDFFC":"1f442-1f3fc","\uD83D\uDC42\uD83C\uDFFB":"1f442-1f3fb","\uD83C\uDFCB\uD83C\uDFFF":"1f3cb-1f3ff","\uD83C\uDFCB\uD83C\uDFFE":"1f3cb-1f3fe","\uD83C\uDFCB\uD83C\uDFFD":"1f3cb-1f3fd","\uD83C\uDFCB\uD83C\uDFFC":"1f3cb-1f3fc","\uD83C\uDFCB\uD83C\uDFFB":"1f3cb-1f3fb","\uD83C\uDFCA\uD83C\uDFFF":"1f3ca-1f3ff","\uD83C\uDFCA\uD83C\uDFFE":"1f3ca-1f3fe","\uD83C\uDFCA\uD83C\uDFFD":"1f3ca-1f3fd","\uD83C\uDFCA\uD83C\uDFFC":"1f3ca-1f3fc","\uD83C\uDFCA\uD83C\uDFFB":"1f3ca-1f3fb","\uD83C\uDFC7\uD83C\uDFFF":"1f3c7-1f3ff","\uD83C\uDFC7\uD83C\uDFFE":"1f3c7-1f3fe","\uD83C\uDFC7\uD83C\uDFFD":"1f3c7-1f3fd","\uD83C\uDFC7\uD83C\uDFFC":"1f3c7-1f3fc","\uD83C\uDFC7\uD83C\uDFFB":"1f3c7-1f3fb","\uD83C\uDFC4\uD83C\uDFFF":"1f3c4-1f3ff","\uD83C\uDFC4\uD83C\uDFFE":"1f3c4-1f3fe","\uD83C\uDFC4\uD83C\uDFFD":"1f3c4-1f3fd","\uD83C\uDFC4\uD83C\uDFFC":"1f3c4-1f3fc","\uD83C\uDFC4\uD83C\uDFFB":"1f3c4-1f3fb","\uD83C\uDFC3\uD83C\uDFFF":"1f3c3-1f3ff","\uD83C\uDFC3\uD83C\uDFFE":"1f3c3-1f3fe","\uD83C\uDFC3\uD83C\uDFFD":"1f3c3-1f3fd","\uD83C\uDFC3\uD83C\uDFFC":"1f3c3-1f3fc","\uD83C\uDFC3\uD83C\uDFFB":"1f3c3-1f3fb","\uD83C\uDF85\uD83C\uDFFF":"1f385-1f3ff","\uD83C\uDF85\uD83C\uDFFE":"1f385-1f3fe","\uD83C\uDF85\uD83C\uDFFD":"1f385-1f3fd","\uD83C\uDF85\uD83C\uDFFC":"1f385-1f3fc","\uD83C\uDF85\uD83C\uDFFB":"1f385-1f3fb","\uD83C\uDDFF\uD83C\uDDFC":"1f1ff-1f1fc","\uD83C\uDDFF\uD83C\uDDF2":"1f1ff-1f1f2","\uD83C\uDDFF\uD83C\uDDE6":"1f1ff-1f1e6","\uD83C\uDDFE\uD83C\uDDF9":"1f1fe-1f1f9","\uD83C\uDDFE\uD83C\uDDEA":"1f1fe-1f1ea","\uD83C\uDDFD\uD83C\uDDF0":"1f1fd-1f1f0","\uD83C\uDDFC\uD83C\uDDF8":"1f1fc-1f1f8","\uD83C\uDDFC\uD83C\uDDEB":"1f1fc-1f1eb","\uD83C\uDDFB\uD83C\uDDFA":"1f1fb-1f1fa","\uD83C\uDDFB\uD83C\uDDF3":"1f1fb-1f1f3","\uD83C\uDDFB\uD83C\uDDEE":"1f1fb-1f1ee","\uD83C\uDDFB\uD83C\uDDEC":"1f1fb-1f1ec","\uD83C\uDDFB\uD83C\uDDEA":"1f1fb-1f1ea","\uD83C\uDDFB\uD83C\uDDE8":"1f1fb-1f1e8","\uD83C\uDDFB\uD83C\uDDE6":"1f1fb-1f1e6","\uD83C\uDDFA\uD83C\uDDFF":"1f1fa-1f1ff","\uD83C\uDDFA\uD83C\uDDFE":"1f1fa-1f1fe","\uD83C\uDDFA\uD83C\uDDF8":"1f1fa-1f1f8","\uD83C\uDDFA\uD83C\uDDF2":"1f1fa-1f1f2","\uD83C\uDDFA\uD83C\uDDEC":"1f1fa-1f1ec","\uD83C\uDDFA\uD83C\uDDE6":"1f1fa-1f1e6","\uD83C\uDDF9\uD83C\uDDFF":"1f1f9-1f1ff","\uD83C\uDDF9\uD83C\uDDFC":"1f1f9-1f1fc","\uD83C\uDDF9\uD83C\uDDFB":"1f1f9-1f1fb","\uD83C\uDDF9\uD83C\uDDF9":"1f1f9-1f1f9","\uD83C\uDDF9\uD83C\uDDF7":"1f1f9-1f1f7","\uD83C\uDDF9\uD83C\uDDF4":"1f1f9-1f1f4","\uD83C\uDDF9\uD83C\uDDF3":"1f1f9-1f1f3","\uD83C\uDDF9\uD83C\uDDF2":"1f1f9-1f1f2","\uD83C\uDDF9\uD83C\uDDF1":"1f1f9-1f1f1","\uD83C\uDDF9\uD83C\uDDF0":"1f1f9-1f1f0","\uD83C\uDDF9\uD83C\uDDEF":"1f1f9-1f1ef","\uD83C\uDDF9\uD83C\uDDED":"1f1f9-1f1ed","\uD83C\uDDF9\uD83C\uDDEC":"1f1f9-1f1ec","\uD83C\uDDF9\uD83C\uDDEB":"1f1f9-1f1eb","\uD83C\uDDF9\uD83C\uDDE9":"1f1f9-1f1e9","\uD83C\uDDF9\uD83C\uDDE8":"1f1f9-1f1e8","\uD83C\uDDF9\uD83C\uDDE6":"1f1f9-1f1e6","\uD83C\uDDF8\uD83C\uDDFF":"1f1f8-1f1ff","\uD83C\uDDF8\uD83C\uDDFE":"1f1f8-1f1fe","\uD83C\uDDF8\uD83C\uDDFD":"1f1f8-1f1fd","\uD83C\uDDF8\uD83C\uDDFB":"1f1f8-1f1fb","\uD83C\uDDF8\uD83C\uDDF9":"1f1f8-1f1f9","\uD83C\uDDF8\uD83C\uDDF8":"1f1f8-1f1f8","\uD83C\uDDF8\uD83C\uDDF7":"1f1f8-1f1f7","\uD83C\uDDF8\uD83C\uDDF4":"1f1f8-1f1f4","\uD83C\uDDF8\uD83C\uDDF3":"1f1f8-1f1f3","\uD83C\uDDF8\uD83C\uDDF2":"1f1f8-1f1f2","\uD83C\uDDF8\uD83C\uDDF1":"1f1f8-1f1f1","\uD83C\uDDF8\uD83C\uDDF0":"1f1f8-1f1f0","\uD83C\uDDF8\uD83C\uDDEF":"1f1f8-1f1ef","\uD83C\uDDF8\uD83C\uDDEE":"1f1f8-1f1ee","\uD83C\uDDF8\uD83C\uDDED":"1f1f8-1f1ed","\uD83C\uDDF8\uD83C\uDDEC":"1f1f8-1f1ec","\uD83C\uDDF8\uD83C\uDDEA":"1f1f8-1f1ea","\uD83C\uDDF8\uD83C\uDDE9":"1f1f8-1f1e9","\uD83C\uDDF8\uD83C\uDDE8":"1f1f8-1f1e8","\uD83C\uDDF8\uD83C\uDDE7":"1f1f8-1f1e7","\uD83C\uDDF8\uD83C\uDDE6":"1f1f8-1f1e6","\uD83C\uDDF7\uD83C\uDDFC":"1f1f7-1f1fc","\uD83C\uDDF7\uD83C\uDDFA":"1f1f7-1f1fa","\uD83C\uDDF7\uD83C\uDDF8":"1f1f7-1f1f8","\uD83C\uDDF7\uD83C\uDDF4":"1f1f7-1f1f4","\uD83C\uDDF7\uD83C\uDDEA":"1f1f7-1f1ea","\uD83C\uDDF6\uD83C\uDDE6":"1f1f6-1f1e6","\uD83C\uDDF5\uD83C\uDDFE":"1f1f5-1f1fe","\uD83C\uDDF5\uD83C\uDDFC":"1f1f5-1f1fc","\uD83C\uDDF5\uD83C\uDDF9":"1f1f5-1f1f9","\uD83C\uDDF5\uD83C\uDDF8":"1f1f5-1f1f8","\uD83C\uDDF5\uD83C\uDDF7":"1f1f5-1f1f7","\uD83C\uDDF5\uD83C\uDDF3":"1f1f5-1f1f3","\uD83C\uDDF5\uD83C\uDDF2":"1f1f5-1f1f2","\uD83C\uDDF5\uD83C\uDDF1":"1f1f5-1f1f1","\uD83C\uDDF5\uD83C\uDDF0":"1f1f5-1f1f0","\uD83C\uDDF5\uD83C\uDDED":"1f1f5-1f1ed","\uD83C\uDDF5\uD83C\uDDEC":"1f1f5-1f1ec","\uD83C\uDDF5\uD83C\uDDEB":"1f1f5-1f1eb","\uD83C\uDDF5\uD83C\uDDEA":"1f1f5-1f1ea","\uD83C\uDDF5\uD83C\uDDE6":"1f1f5-1f1e6","\uD83C\uDDF4\uD83C\uDDF2":"1f1f4-1f1f2","\uD83C\uDDF3\uD83C\uDDFF":"1f1f3-1f1ff","\uD83C\uDDF3\uD83C\uDDFA":"1f1f3-1f1fa","\uD83C\uDDF3\uD83C\uDDF7":"1f1f3-1f1f7","\uD83C\uDDF3\uD83C\uDDF5":"1f1f3-1f1f5","\uD83C\uDDF3\uD83C\uDDF4":"1f1f3-1f1f4","\uD83C\uDDF3\uD83C\uDDF1":"1f1f3-1f1f1","\uD83C\uDDF3\uD83C\uDDEE":"1f1f3-1f1ee","\uD83C\uDDF3\uD83C\uDDEC":"1f1f3-1f1ec","\uD83C\uDDF3\uD83C\uDDEB":"1f1f3-1f1eb","\uD83C\uDDF3\uD83C\uDDEA":"1f1f3-1f1ea","\uD83C\uDDF3\uD83C\uDDE8":"1f1f3-1f1e8","\uD83C\uDDF3\uD83C\uDDE6":"1f1f3-1f1e6","\uD83C\uDDF2\uD83C\uDDFF":"1f1f2-1f1ff","\uD83C\uDDF2\uD83C\uDDFE":"1f1f2-1f1fe","\uD83C\uDDF2\uD83C\uDDFD":"1f1f2-1f1fd","\uD83C\uDDF2\uD83C\uDDFC":"1f1f2-1f1fc","\uD83C\uDDF2\uD83C\uDDFB":"1f1f2-1f1fb","\uD83C\uDDF2\uD83C\uDDFA":"1f1f2-1f1fa","\uD83C\uDDF2\uD83C\uDDF9":"1f1f2-1f1f9","\uD83C\uDDF2\uD83C\uDDF8":"1f1f2-1f1f8","\uD83C\uDDF2\uD83C\uDDF7":"1f1f2-1f1f7","\uD83C\uDDF2\uD83C\uDDF6":"1f1f2-1f1f6","\uD83C\uDDF2\uD83C\uDDF5":"1f1f2-1f1f5","\uD83C\uDDF2\uD83C\uDDF4":"1f1f2-1f1f4","\uD83C\uDDF2\uD83C\uDDF3":"1f1f2-1f1f3","\uD83C\uDDF2\uD83C\uDDF2":"1f1f2-1f1f2","\uD83C\uDDF2\uD83C\uDDF1":"1f1f2-1f1f1","\uD83C\uDDF2\uD83C\uDDF0":"1f1f2-1f1f0","\uD83C\uDDF2\uD83C\uDDED":"1f1f2-1f1ed","\uD83C\uDDF2\uD83C\uDDEC":"1f1f2-1f1ec","\uD83C\uDDF2\uD83C\uDDEB":"1f1f2-1f1eb","\uD83C\uDDF2\uD83C\uDDEA":"1f1f2-1f1ea","\uD83C\uDDF2\uD83C\uDDE9":"1f1f2-1f1e9","\uD83C\uDDF2\uD83C\uDDE8":"1f1f2-1f1e8","\uD83C\uDDF2\uD83C\uDDE6":"1f1f2-1f1e6","\uD83C\uDDF1\uD83C\uDDFE":"1f1f1-1f1fe","\uD83C\uDDF1\uD83C\uDDFB":"1f1f1-1f1fb","\uD83C\uDDF1\uD83C\uDDFA":"1f1f1-1f1fa","\uD83C\uDDF1\uD83C\uDDF9":"1f1f1-1f1f9","\uD83C\uDDF1\uD83C\uDDF8":"1f1f1-1f1f8","\uD83C\uDDF1\uD83C\uDDF7":"1f1f1-1f1f7","\uD83C\uDDF1\uD83C\uDDF0":"1f1f1-1f1f0","\uD83C\uDDF1\uD83C\uDDEE":"1f1f1-1f1ee","\uD83C\uDDF1\uD83C\uDDE8":"1f1f1-1f1e8","\uD83C\uDDF1\uD83C\uDDE7":"1f1f1-1f1e7","\uD83C\uDDF1\uD83C\uDDE6":"1f1f1-1f1e6","\uD83C\uDDF0\uD83C\uDDFF":"1f1f0-1f1ff","\uD83C\uDDF0\uD83C\uDDFE":"1f1f0-1f1fe","\uD83C\uDDF0\uD83C\uDDFC":"1f1f0-1f1fc","\uD83C\uDDF0\uD83C\uDDF7":"1f1f0-1f1f7","\uD83C\uDDF0\uD83C\uDDF5":"1f1f0-1f1f5","\uD83C\uDDF0\uD83C\uDDF3":"1f1f0-1f1f3","\uD83C\uDDF0\uD83C\uDDF2":"1f1f0-1f1f2","\uD83C\uDDF0\uD83C\uDDEE":"1f1f0-1f1ee","\uD83C\uDDF0\uD83C\uDDED":"1f1f0-1f1ed","\uD83C\uDDF0\uD83C\uDDEC":"1f1f0-1f1ec","\uD83C\uDDF0\uD83C\uDDEA":"1f1f0-1f1ea","\uD83C\uDDEF\uD83C\uDDF5":"1f1ef-1f1f5","\uD83C\uDDEF\uD83C\uDDF4":"1f1ef-1f1f4","\uD83C\uDDEF\uD83C\uDDF2":"1f1ef-1f1f2","\uD83C\uDDEF\uD83C\uDDEA":"1f1ef-1f1ea","\uD83C\uDDEE\uD83C\uDDF9":"1f1ee-1f1f9","\uD83C\uDDEE\uD83C\uDDF8":"1f1ee-1f1f8","\uD83C\uDDEE\uD83C\uDDF7":"1f1ee-1f1f7","\uD83C\uDDEE\uD83C\uDDF6":"1f1ee-1f1f6","\uD83C\uDDEE\uD83C\uDDF4":"1f1ee-1f1f4","\uD83C\uDDEE\uD83C\uDDF3":"1f1ee-1f1f3","\uD83C\uDDEE\uD83C\uDDF2":"1f1ee-1f1f2","\uD83C\uDDEE\uD83C\uDDF1":"1f1ee-1f1f1","\uD83C\uDDEE\uD83C\uDDEA":"1f1ee-1f1ea","\uD83C\uDDEE\uD83C\uDDE9":"1f1ee-1f1e9","\uD83C\uDDEE\uD83C\uDDE8":"1f1ee-1f1e8","\uD83C\uDDED\uD83C\uDDFA":"1f1ed-1f1fa","\uD83C\uDDED\uD83C\uDDF9":"1f1ed-1f1f9","\uD83C\uDDED\uD83C\uDDF7":"1f1ed-1f1f7","\uD83C\uDDED\uD83C\uDDF3":"1f1ed-1f1f3","\uD83C\uDDED\uD83C\uDDF2":"1f1ed-1f1f2","\uD83C\uDDED\uD83C\uDDF0":"1f1ed-1f1f0","\uD83C\uDDEC\uD83C\uDDFE":"1f1ec-1f1fe","\uD83C\uDDEC\uD83C\uDDFC":"1f1ec-1f1fc","\uD83C\uDDEC\uD83C\uDDFA":"1f1ec-1f1fa","\uD83C\uDDEC\uD83C\uDDF9":"1f1ec-1f1f9","\uD83C\uDDEC\uD83C\uDDF8":"1f1ec-1f1f8","\uD83C\uDDEC\uD83C\uDDF7":"1f1ec-1f1f7","\uD83C\uDDEC\uD83C\uDDF6":"1f1ec-1f1f6","\uD83C\uDDEC\uD83C\uDDF5":"1f1ec-1f1f5","\uD83C\uDDEC\uD83C\uDDF3":"1f1ec-1f1f3","\uD83C\uDDEC\uD83C\uDDF2":"1f1ec-1f1f2","\uD83C\uDDEC\uD83C\uDDF1":"1f1ec-1f1f1","\uD83C\uDDEC\uD83C\uDDEE":"1f1ec-1f1ee","\uD83C\uDDEC\uD83C\uDDED":"1f1ec-1f1ed","\uD83C\uDDEC\uD83C\uDDEC":"1f1ec-1f1ec","\uD83C\uDDEC\uD83C\uDDEB":"1f1ec-1f1eb","\uD83C\uDDEC\uD83C\uDDEA":"1f1ec-1f1ea","\uD83C\uDDEC\uD83C\uDDE9":"1f1ec-1f1e9","\uD83C\uDDEC\uD83C\uDDE7":"1f1ec-1f1e7","\uD83C\uDDEC\uD83C\uDDE6":"1f1ec-1f1e6","\uD83C\uDDEB\uD83C\uDDF7":"1f1eb-1f1f7","\uD83C\uDDEB\uD83C\uDDF4":"1f1eb-1f1f4","\uD83C\uDDEB\uD83C\uDDF2":"1f1eb-1f1f2","\uD83C\uDDEB\uD83C\uDDF0":"1f1eb-1f1f0","\uD83C\uDDEB\uD83C\uDDEF":"1f1eb-1f1ef","\uD83C\uDDEB\uD83C\uDDEE":"1f1eb-1f1ee","\uD83C\uDDEA\uD83C\uDDFA":"1f1ea-1f1fa","\uD83C\uDDEA\uD83C\uDDF9":"1f1ea-1f1f9","\uD83C\uDDEA\uD83C\uDDF8":"1f1ea-1f1f8","\uD83C\uDDEA\uD83C\uDDF7":"1f1ea-1f1f7","\uD83C\uDDEA\uD83C\uDDED":"1f1ea-1f1ed","\uD83C\uDDEA\uD83C\uDDEC":"1f1ea-1f1ec","\uD83C\uDDEA\uD83C\uDDEA":"1f1ea-1f1ea","\uD83C\uDDEA\uD83C\uDDE8":"1f1ea-1f1e8","\uD83C\uDDEA\uD83C\uDDE6":"1f1ea-1f1e6","\uD83C\uDDE9\uD83C\uDDFF":"1f1e9-1f1ff","\uD83C\uDDE9\uD83C\uDDF4":"1f1e9-1f1f4","\uD83C\uDDE9\uD83C\uDDF2":"1f1e9-1f1f2","\uD83C\uDDE9\uD83C\uDDF0":"1f1e9-1f1f0","\uD83C\uDDE9\uD83C\uDDEF":"1f1e9-1f1ef","\uD83C\uDDE9\uD83C\uDDEC":"1f1e9-1f1ec","\uD83C\uDDE9\uD83C\uDDEA":"1f1e9-1f1ea","\uD83C\uDDE8\uD83C\uDDFF":"1f1e8-1f1ff","\uD83C\uDDE8\uD83C\uDDFE":"1f1e8-1f1fe","\uD83C\uDDE8\uD83C\uDDFD":"1f1e8-1f1fd","\uD83C\uDDE8\uD83C\uDDFC":"1f1e8-1f1fc","\uD83C\uDDE8\uD83C\uDDFB":"1f1e8-1f1fb","\uD83C\uDDE8\uD83C\uDDFA":"1f1e8-1f1fa","\uD83C\uDDE8\uD83C\uDDF7":"1f1e8-1f1f7","\uD83C\uDDE8\uD83C\uDDF5":"1f1e8-1f1f5","\uD83C\uDDE8\uD83C\uDDF4":"1f1e8-1f1f4","\uD83C\uDDE8\uD83C\uDDF3":"1f1e8-1f1f3","\uD83C\uDDE8\uD83C\uDDF2":"1f1e8-1f1f2","\uD83C\uDDE8\uD83C\uDDF1":"1f1e8-1f1f1","\uD83C\uDDE8\uD83C\uDDF0":"1f1e8-1f1f0","\uD83C\uDDE8\uD83C\uDDEE":"1f1e8-1f1ee","\uD83C\uDDE8\uD83C\uDDED":"1f1e8-1f1ed","\uD83C\uDDE8\uD83C\uDDEC":"1f1e8-1f1ec","\uD83C\uDDE8\uD83C\uDDEB":"1f1e8-1f1eb","\uD83C\uDDE8\uD83C\uDDE9":"1f1e8-1f1e9","\uD83C\uDDE8\uD83C\uDDE8":"1f1e8-1f1e8","\uD83C\uDDE8\uD83C\uDDE6":"1f1e8-1f1e6","\uD83C\uDDE7\uD83C\uDDFF":"1f1e7-1f1ff","\uD83C\uDDE7\uD83C\uDDFE":"1f1e7-1f1fe","\uD83C\uDDE7\uD83C\uDDFC":"1f1e7-1f1fc","\uD83C\uDDE7\uD83C\uDDFB":"1f1e7-1f1fb","\uD83C\uDDE7\uD83C\uDDF9":"1f1e7-1f1f9","\uD83C\uDDE7\uD83C\uDDF8":"1f1e7-1f1f8","\uD83C\uDDE7\uD83C\uDDF7":"1f1e7-1f1f7","\uD83C\uDDE7\uD83C\uDDF6":"1f1e7-1f1f6","\uD83C\uDDE7\uD83C\uDDF4":"1f1e7-1f1f4","\uD83C\uDDE7\uD83C\uDDF3":"1f1e7-1f1f3","\uD83C\uDDE7\uD83C\uDDF2":"1f1e7-1f1f2","\uD83C\uDDE7\uD83C\uDDF1":"1f1e7-1f1f1","\uD83C\uDDE7\uD83C\uDDEF":"1f1e7-1f1ef","\uD83C\uDDE7\uD83C\uDDEE":"1f1e7-1f1ee","\uD83C\uDDE7\uD83C\uDDED":"1f1e7-1f1ed","\uD83C\uDDE7\uD83C\uDDEC":"1f1e7-1f1ec","\uD83C\uDDE7\uD83C\uDDEB":"1f1e7-1f1eb","\uD83C\uDDE7\uD83C\uDDEA":"1f1e7-1f1ea","\uD83C\uDDE7\uD83C\uDDE9":"1f1e7-1f1e9","\uD83C\uDDE7\uD83C\uDDE7":"1f1e7-1f1e7","\uD83C\uDDE7\uD83C\uDDE6":"1f1e7-1f1e6","\uD83C\uDDE6\uD83C\uDDFF":"1f1e6-1f1ff","\uD83C\uDDE6\uD83C\uDDFD":"1f1e6-1f1fd","\uD83C\uDDE6\uD83C\uDDFC":"1f1e6-1f1fc","\uD83C\uDDE6\uD83C\uDDFA":"1f1e6-1f1fa","\uD83C\uDDE6\uD83C\uDDF9":"1f1e6-1f1f9","\uD83C\uDDE6\uD83C\uDDF8":"1f1e6-1f1f8","\uD83C\uDDE6\uD83C\uDDF7":"1f1e6-1f1f7","\uD83C\uDDE6\uD83C\uDDF6":"1f1e6-1f1f6","\uD83C\uDDE6\uD83C\uDDF4":"1f1e6-1f1f4","\uD83C\uDDE6\uD83C\uDDF2":"1f1e6-1f1f2","\uD83C\uDDE6\uD83C\uDDF1":"1f1e6-1f1f1","\uD83C\uDDE6\uD83C\uDDEE":"1f1e6-1f1ee","\uD83C\uDDE6\uD83C\uDDEC":"1f1e6-1f1ec","\uD83C\uDDE6\uD83C\uDDEB":"1f1e6-1f1eb","\uD83C\uDDE6\uD83C\uDDEA":"1f1e6-1f1ea","\uD83C\uDDE6\uD83C\uDDE9":"1f1e6-1f1e9","\uD83C\uDDE6\uD83C\uDDE8":"1f1e6-1f1e8","\uD83C\uDC04\uFE0F":"1f004","\uD83C\uDD7F\uFE0F":"1f17f","\uD83C\uDE1A\uFE0F":"1f21a","\uD83C\uDE2F\uFE0F":"1f22f","\uD83C\uDE37\uFE0F":"1f237","\u261D\uD83C\uDFFB":"261d-1f3fb","\u261D\uD83C\uDFFC":"261d-1f3fc","\u261D\uD83C\uDFFD":"261d-1f3fd","\u261D\uD83C\uDFFE":"261d-1f3fe","\u261D\uD83C\uDFFF":"261d-1f3ff","\u270C\uD83C\uDFFB":"270c-1f3fb","\u270C\uD83C\uDFFC":"270c-1f3fc","\u270C\uD83C\uDFFD":"270c-1f3fd","\u270C\uD83C\uDFFE":"270c-1f3fe","\u270C\uD83C\uDFFF":"270c-1f3ff","\u270A\uD83C\uDFFB":"270a-1f3fb","\u270A\uD83C\uDFFC":"270a-1f3fc","\u270A\uD83C\uDFFD":"270a-1f3fd","\u270A\uD83C\uDFFE":"270a-1f3fe","\u270A\uD83C\uDFFF":"270a-1f3ff","\u270B\uD83C\uDFFB":"270b-1f3fb","\u270B\uD83C\uDFFC":"270b-1f3fc","\u270B\uD83C\uDFFD":"270b-1f3fd","\u270B\uD83C\uDFFE":"270b-1f3fe","\u270B\uD83C\uDFFF":"270b-1f3ff","\u270D\uD83C\uDFFB":"270d-1f3fb","\u270D\uD83C\uDFFC":"270d-1f3fc","\u270D\uD83C\uDFFD":"270d-1f3fd","\u270D\uD83C\uDFFE":"270d-1f3fe","\u270D\uD83C\uDFFF":"270d-1f3ff","\u26F9\uD83C\uDFFB":"26f9-1f3fb","\u26F9\uD83C\uDFFC":"26f9-1f3fc","\u26F9\uD83C\uDFFD":"26f9-1f3fd","\u26F9\uD83C\uDFFE":"26f9-1f3fe","\u26F9\uD83C\uDFFF":"26f9-1f3ff","\u00A9\uFE0F":"00a9","\u00AE\uFE0F":"00ae","\u203C\uFE0F":"203c","\u21A9\uFE0F":"21a9","\u21AA\uFE0F":"21aa","\u231A\uFE0F":"231a","\u231B\uFE0F":"231b","\u24C2\uFE0F":"24c2","\u25AA\uFE0F":"25aa","\u25AB\uFE0F":"25ab","\u25B6\uFE0F":"25b6","\u25C0\uFE0F":"25c0","\u25FB\uFE0F":"25fb","\u25FC\uFE0F":"25fc","\u25FD\uFE0F":"25fd","\u25FE\uFE0F":"25fe","\u260E\uFE0F":"260e","\u261D\uFE0F":"261d","\u263A\uFE0F":"263a","\u264A\uFE0F":"264a","\u264B\uFE0F":"264b","\u264C\uFE0F":"264c","\u264D\uFE0F":"264d","\u264E\uFE0F":"264e","\u264F\uFE0F":"264f","\u267B\uFE0F":"267b","\u267F\uFE0F":"267f","\u26A0\uFE0F":"26a0","\u26A1\uFE0F":"26a1","\u26AA\uFE0F":"26aa","\u26AB\uFE0F":"26ab","\u26BD\uFE0F":"26bd","\u26BE\uFE0F":"26be","\u26C4\uFE0F":"26c4","\u26C5\uFE0F":"26c5","\u26D4\uFE0F":"26d4","\u26EA\uFE0F":"26ea","\u26F2\uFE0F":"26f2","\u26F3\uFE0F":"26f3","\u26F5\uFE0F":"26f5","\u26FA\uFE0F":"26fa","\u26FD\uFE0F":"26fd","\u270C\uFE0F":"270c","\u270F\uFE0F":"270f","\u27A1\uFE0F":"27a1","\u2B05\uFE0F":"2b05","\u2B06\uFE0F":"2b06","\u2B07\uFE0F":"2b07","\u2B1B\uFE0F":"2b1b","\u2B1C\uFE0F":"2b1c","\u2B50\uFE0F":"2b50","\u2B55\uFE0F":"2b55","\u303D\uFE0F":"303d","\uD83C\uDCCF":"1f0cf","\uD83C\uDD70":"1f170","\uD83C\uDD71":"1f171","\uD83C\uDD7E":"1f17e","\uD83C\uDD8E":"1f18e","\uD83C\uDD91":"1f191","\uD83C\uDD92":"1f192","\uD83C\uDD93":"1f193","\uD83C\uDD94":"1f194","\uD83C\uDD95":"1f195","\uD83C\uDD96":"1f196","\uD83C\uDD97":"1f197","\uD83C\uDD98":"1f198","\uD83C\uDD99":"1f199","\uD83C\uDD9A":"1f19a","\uD83C\uDE01":"1f201","\uD83C\uDE02":"1f202","\uD83C\uDE32":"1f232","\uD83C\uDE33":"1f233","\uD83C\uDE34":"1f234","\uD83C\uDE35":"1f235","\uD83C\uDE36":"1f236","\uD83C\uDE38":"1f238","\uD83C\uDE39":"1f239","\uD83C\uDE3A":"1f23a","\uD83C\uDE50":"1f250","\uD83C\uDE51":"1f251","\uD83C\uDF00":"1f300","\uD83C\uDF01":"1f301","\uD83C\uDF02":"1f302","\uD83C\uDF03":"1f303","\uD83C\uDF04":"1f304","\uD83C\uDF05":"1f305","\uD83C\uDF06":"1f306","\uD83C\uDF07":"1f307","\uD83C\uDF08":"1f308","\uD83C\uDF09":"1f309","\uD83C\uDF0A":"1f30a","\uD83C\uDF0B":"1f30b","\uD83C\uDF0C":"1f30c","\uD83C\uDF0F":"1f30f","\uD83C\uDF11":"1f311","\uD83C\uDF13":"1f313","\uD83C\uDF14":"1f314","\uD83C\uDF15":"1f315","\uD83C\uDF19":"1f319","\uD83C\uDF1B":"1f31b","\uD83C\uDF1F":"1f31f","\uD83C\uDF20":"1f320","\uD83C\uDF30":"1f330","\uD83C\uDF31":"1f331","\uD83C\uDF34":"1f334","\uD83C\uDF35":"1f335","\uD83C\uDF37":"1f337","\uD83C\uDF38":"1f338","\uD83C\uDF39":"1f339","\uD83C\uDF3A":"1f33a","\uD83C\uDF3B":"1f33b","\uD83C\uDF3C":"1f33c","\uD83C\uDF3D":"1f33d","\uD83C\uDF3E":"1f33e","\uD83C\uDF3F":"1f33f","\uD83C\uDF40":"1f340","\uD83C\uDF41":"1f341","\uD83C\uDF42":"1f342","\uD83C\uDF43":"1f343","\uD83C\uDF44":"1f344","\uD83C\uDF45":"1f345","\uD83C\uDF46":"1f346","\uD83C\uDF47":"1f347","\uD83C\uDF48":"1f348","\uD83C\uDF49":"1f349","\uD83C\uDF4A":"1f34a","\uD83C\uDF4C":"1f34c","\uD83C\uDF4D":"1f34d","\uD83C\uDF4E":"1f34e","\uD83C\uDF4F":"1f34f","\uD83C\uDF51":"1f351","\uD83C\uDF52":"1f352","\uD83C\uDF53":"1f353","\uD83C\uDF54":"1f354","\uD83C\uDF55":"1f355","\uD83C\uDF56":"1f356","\uD83C\uDF57":"1f357","\uD83C\uDF58":"1f358","\uD83C\uDF59":"1f359","\uD83C\uDF5A":"1f35a","\uD83C\uDF5B":"1f35b","\uD83C\uDF5C":"1f35c","\uD83C\uDF5D":"1f35d","\uD83C\uDF5E":"1f35e","\uD83C\uDF5F":"1f35f","\uD83C\uDF60":"1f360","\uD83C\uDF61":"1f361","\uD83C\uDF62":"1f362","\uD83C\uDF63":"1f363","\uD83C\uDF64":"1f364","\uD83C\uDF65":"1f365","\uD83C\uDF66":"1f366","\uD83C\uDF67":"1f367","\uD83C\uDF68":"1f368","\uD83C\uDF69":"1f369","\uD83C\uDF6A":"1f36a","\uD83C\uDF6B":"1f36b","\uD83C\uDF6C":"1f36c","\uD83C\uDF6D":"1f36d","\uD83C\uDF6E":"1f36e","\uD83C\uDF6F":"1f36f","\uD83C\uDF70":"1f370","\uD83C\uDF71":"1f371","\uD83C\uDF72":"1f372","\uD83C\uDF73":"1f373","\uD83C\uDF74":"1f374","\uD83C\uDF75":"1f375","\uD83C\uDF76":"1f376","\uD83C\uDF77":"1f377","\uD83C\uDF78":"1f378","\uD83C\uDF79":"1f379","\uD83C\uDF7A":"1f37a","\uD83C\uDF7B":"1f37b","\uD83C\uDF80":"1f380","\uD83C\uDF81":"1f381","\uD83C\uDF82":"1f382","\uD83C\uDF83":"1f383","\uD83C\uDF84":"1f384","\uD83C\uDF85":"1f385","\uD83C\uDF86":"1f386","\uD83C\uDF87":"1f387","\uD83C\uDF88":"1f388","\uD83C\uDF89":"1f389","\uD83C\uDF8A":"1f38a","\uD83C\uDF8B":"1f38b","\uD83C\uDF8C":"1f38c","\uD83C\uDF8D":"1f38d","\uD83C\uDF8E":"1f38e","\uD83C\uDF8F":"1f38f","\uD83C\uDF90":"1f390","\uD83C\uDF91":"1f391","\uD83C\uDF92":"1f392","\uD83C\uDF93":"1f393","\uD83C\uDFA0":"1f3a0","\uD83C\uDFA1":"1f3a1","\uD83C\uDFA2":"1f3a2","\uD83C\uDFA3":"1f3a3","\uD83C\uDFA4":"1f3a4","\uD83C\uDFA5":"1f3a5","\uD83C\uDFA6":"1f3a6","\uD83C\uDFA7":"1f3a7","\uD83C\uDFA8":"1f3a8","\uD83C\uDFA9":"1f3a9","\uD83C\uDFAA":"1f3aa","\uD83C\uDFAB":"1f3ab","\uD83C\uDFAC":"1f3ac","\uD83C\uDFAD":"1f3ad","\uD83C\uDFAE":"1f3ae","\uD83C\uDFAF":"1f3af","\uD83C\uDFB0":"1f3b0","\uD83C\uDFB1":"1f3b1","\uD83C\uDFB2":"1f3b2","\uD83C\uDFB3":"1f3b3","\uD83C\uDFB4":"1f3b4","\uD83C\uDFB5":"1f3b5","\uD83C\uDFB6":"1f3b6","\uD83C\uDFB7":"1f3b7","\uD83C\uDFB8":"1f3b8","\uD83C\uDFB9":"1f3b9","\uD83C\uDFBA":"1f3ba","\uD83C\uDFBB":"1f3bb","\uD83C\uDFBC":"1f3bc","\uD83C\uDFBD":"1f3bd","\uD83C\uDFBE":"1f3be","\uD83C\uDFBF":"1f3bf","\uD83C\uDFC0":"1f3c0","\uD83C\uDFC1":"1f3c1","\uD83C\uDFC2":"1f3c2","\uD83C\uDFC3":"1f3c3","\uD83C\uDFC4":"1f3c4","\uD83C\uDFC6":"1f3c6","\uD83C\uDFC8":"1f3c8","\uD83C\uDFCA":"1f3ca","\uD83C\uDFE0":"1f3e0","\uD83C\uDFE1":"1f3e1","\uD83C\uDFE2":"1f3e2","\uD83C\uDFE3":"1f3e3","\uD83C\uDFE5":"1f3e5","\uD83C\uDFE6":"1f3e6","\uD83C\uDFE7":"1f3e7","\uD83C\uDFE8":"1f3e8","\uD83C\uDFE9":"1f3e9","\uD83C\uDFEA":"1f3ea","\uD83C\uDFEB":"1f3eb","\uD83C\uDFEC":"1f3ec","\uD83C\uDFED":"1f3ed","\uD83C\uDFEE":"1f3ee","\uD83C\uDFEF":"1f3ef","\uD83C\uDFF0":"1f3f0","\uD83D\uDC0C":"1f40c","\uD83D\uDC0D":"1f40d","\uD83D\uDC0E":"1f40e","\uD83D\uDC11":"1f411","\uD83D\uDC12":"1f412","\uD83D\uDC14":"1f414","\uD83D\uDC17":"1f417","\uD83D\uDC18":"1f418","\uD83D\uDC19":"1f419","\uD83D\uDC1A":"1f41a","\uD83D\uDC1B":"1f41b","\uD83D\uDC1C":"1f41c","\uD83D\uDC1D":"1f41d","\uD83D\uDC1E":"1f41e","\uD83D\uDC1F":"1f41f","\uD83D\uDC20":"1f420","\uD83D\uDC21":"1f421","\uD83D\uDC22":"1f422","\uD83D\uDC23":"1f423","\uD83D\uDC24":"1f424","\uD83D\uDC25":"1f425","\uD83D\uDC26":"1f426","\uD83D\uDC27":"1f427","\uD83D\uDC28":"1f428","\uD83D\uDC29":"1f429","\uD83D\uDC2B":"1f42b","\uD83D\uDC2C":"1f42c","\uD83D\uDC2D":"1f42d","\uD83D\uDC2E":"1f42e","\uD83D\uDC2F":"1f42f","\uD83D\uDC30":"1f430","\uD83D\uDC31":"1f431","\uD83D\uDC32":"1f432","\uD83D\uDC33":"1f433","\uD83D\uDC34":"1f434","\uD83D\uDC35":"1f435","\uD83D\uDC36":"1f436","\uD83D\uDC37":"1f437","\uD83D\uDC38":"1f438","\uD83D\uDC39":"1f439","\uD83D\uDC3A":"1f43a","\uD83D\uDC3B":"1f43b","\uD83D\uDC3C":"1f43c","\uD83D\uDC3D":"1f43d","\uD83D\uDC3E":"1f43e","\uD83D\uDC40":"1f440","\uD83D\uDC42":"1f442","\uD83D\uDC43":"1f443","\uD83D\uDC44":"1f444","\uD83D\uDC45":"1f445","\uD83D\uDC46":"1f446","\uD83D\uDC47":"1f447","\uD83D\uDC48":"1f448","\uD83D\uDC49":"1f449","\uD83D\uDC4A":"1f44a","\uD83D\uDC4B":"1f44b","\uD83D\uDC4C":"1f44c","\uD83D\uDC4D":"1f44d","\uD83D\uDC4E":"1f44e","\uD83D\uDC4F":"1f44f","\uD83D\uDC50":"1f450","\uD83D\uDC51":"1f451","\uD83D\uDC52":"1f452","\uD83D\uDC53":"1f453","\uD83D\uDC54":"1f454","\uD83D\uDC55":"1f455","\uD83D\uDC56":"1f456","\uD83D\uDC57":"1f457","\uD83D\uDC58":"1f458","\uD83D\uDC59":"1f459","\uD83D\uDC5A":"1f45a","\uD83D\uDC5B":"1f45b","\uD83D\uDC5C":"1f45c","\uD83D\uDC5D":"1f45d","\uD83D\uDC5E":"1f45e","\uD83D\uDC5F":"1f45f","\uD83D\uDC60":"1f460","\uD83D\uDC61":"1f461","\uD83D\uDC62":"1f462","\uD83D\uDC63":"1f463","\uD83D\uDC64":"1f464","\uD83D\uDC66":"1f466","\uD83D\uDC67":"1f467","\uD83D\uDC68":"1f468","\uD83D\uDC69":"1f469","\uD83D\uDC6A":"1f46a","\uD83D\uDC6B":"1f46b","\uD83D\uDC6E":"1f46e","\uD83D\uDC6F":"1f46f","\uD83D\uDC70":"1f470","\uD83D\uDC71":"1f471","\uD83D\uDC72":"1f472","\uD83D\uDC73":"1f473","\uD83D\uDC74":"1f474","\uD83D\uDC75":"1f475","\uD83D\uDC76":"1f476","\uD83D\uDC77":"1f477","\uD83D\uDC78":"1f478","\uD83D\uDC79":"1f479","\uD83D\uDC7A":"1f47a","\uD83D\uDC7B":"1f47b","\uD83D\uDC7C":"1f47c","\uD83D\uDC7D":"1f47d","\uD83D\uDC7E":"1f47e","\uD83D\uDC7F":"1f47f","\uD83D\uDC80":"1f480","\uD83D\uDCC7":"1f4c7","\uD83D\uDC81":"1f481","\uD83D\uDC82":"1f482","\uD83D\uDC83":"1f483","\uD83D\uDC84":"1f484","\uD83D\uDC85":"1f485","\uD83D\uDCD2":"1f4d2","\uD83D\uDC86":"1f486","\uD83D\uDCD3":"1f4d3","\uD83D\uDC87":"1f487","\uD83D\uDCD4":"1f4d4","\uD83D\uDC88":"1f488","\uD83D\uDCD5":"1f4d5","\uD83D\uDC89":"1f489","\uD83D\uDCD6":"1f4d6","\uD83D\uDC8A":"1f48a","\uD83D\uDCD7":"1f4d7","\uD83D\uDC8B":"1f48b","\uD83D\uDCD8":"1f4d8","\uD83D\uDC8C":"1f48c","\uD83D\uDCD9":"1f4d9","\uD83D\uDC8D":"1f48d","\uD83D\uDCDA":"1f4da","\uD83D\uDC8E":"1f48e","\uD83D\uDCDB":"1f4db","\uD83D\uDC8F":"1f48f","\uD83D\uDCDC":"1f4dc","\uD83D\uDC90":"1f490","\uD83D\uDCDD":"1f4dd","\uD83D\uDC91":"1f491","\uD83D\uDCDE":"1f4de","\uD83D\uDC92":"1f492","\uD83D\uDCDF":"1f4df","\uD83D\uDCE0":"1f4e0","\uD83D\uDC93":"1f493","\uD83D\uDCE1":"1f4e1","\uD83D\uDCE2":"1f4e2","\uD83D\uDC94":"1f494","\uD83D\uDCE3":"1f4e3","\uD83D\uDCE4":"1f4e4","\uD83D\uDC95":"1f495","\uD83D\uDCE5":"1f4e5","\uD83D\uDCE6":"1f4e6","\uD83D\uDC96":"1f496","\uD83D\uDCE7":"1f4e7","\uD83D\uDCE8":"1f4e8","\uD83D\uDC97":"1f497","\uD83D\uDCE9":"1f4e9","\uD83D\uDCEA":"1f4ea","\uD83D\uDC98":"1f498","\uD83D\uDCEB":"1f4eb","\uD83D\uDCEE":"1f4ee","\uD83D\uDC99":"1f499","\uD83D\uDCF0":"1f4f0","\uD83D\uDCF1":"1f4f1","\uD83D\uDC9A":"1f49a","\uD83D\uDCF2":"1f4f2","\uD83D\uDCF3":"1f4f3","\uD83D\uDC9B":"1f49b","\uD83D\uDCF4":"1f4f4","\uD83D\uDCF6":"1f4f6","\uD83D\uDC9C":"1f49c","\uD83D\uDCF7":"1f4f7","\uD83D\uDCF9":"1f4f9","\uD83D\uDC9D":"1f49d","\uD83D\uDCFA":"1f4fa","\uD83D\uDCFB":"1f4fb","\uD83D\uDC9E":"1f49e","\uD83D\uDCFC":"1f4fc","\uD83D\uDD03":"1f503","\uD83D\uDC9F":"1f49f","\uD83D\uDD0A":"1f50a","\uD83D\uDD0B":"1f50b","\uD83D\uDCA0":"1f4a0","\uD83D\uDD0C":"1f50c","\uD83D\uDD0D":"1f50d","\uD83D\uDCA1":"1f4a1","\uD83D\uDD0E":"1f50e","\uD83D\uDD0F":"1f50f","\uD83D\uDCA2":"1f4a2","\uD83D\uDD10":"1f510","\uD83D\uDD11":"1f511","\uD83D\uDCA3":"1f4a3","\uD83D\uDD12":"1f512","\uD83D\uDD13":"1f513","\uD83D\uDCA4":"1f4a4","\uD83D\uDD14":"1f514","\uD83D\uDD16":"1f516","\uD83D\uDCA5":"1f4a5","\uD83D\uDD17":"1f517","\uD83D\uDD18":"1f518","\uD83D\uDCA6":"1f4a6","\uD83D\uDD19":"1f519","\uD83D\uDD1A":"1f51a","\uD83D\uDCA7":"1f4a7","\uD83D\uDD1B":"1f51b","\uD83D\uDD1C":"1f51c","\uD83D\uDCA8":"1f4a8","\uD83D\uDD1D":"1f51d","\uD83D\uDD1E":"1f51e","\uD83D\uDCA9":"1f4a9","\uD83D\uDD1F":"1f51f","\uD83D\uDCAA":"1f4aa","\uD83D\uDD20":"1f520","\uD83D\uDD21":"1f521","\uD83D\uDCAB":"1f4ab","\uD83D\uDD22":"1f522","\uD83D\uDD23":"1f523","\uD83D\uDCAC":"1f4ac","\uD83D\uDD24":"1f524","\uD83D\uDD25":"1f525","\uD83D\uDCAE":"1f4ae","\uD83D\uDD26":"1f526","\uD83D\uDD27":"1f527","\uD83D\uDCAF":"1f4af","\uD83D\uDD28":"1f528","\uD83D\uDD29":"1f529","\uD83D\uDCB0":"1f4b0","\uD83D\uDD2A":"1f52a","\uD83D\uDD2B":"1f52b","\uD83D\uDCB1":"1f4b1","\uD83D\uDD2E":"1f52e","\uD83D\uDCB2":"1f4b2","\uD83D\uDD2F":"1f52f","\uD83D\uDCB3":"1f4b3","\uD83D\uDD30":"1f530","\uD83D\uDD31":"1f531","\uD83D\uDCB4":"1f4b4","\uD83D\uDD32":"1f532","\uD83D\uDD33":"1f533","\uD83D\uDCB5":"1f4b5","\uD83D\uDD34":"1f534","\uD83D\uDD35":"1f535","\uD83D\uDCB8":"1f4b8","\uD83D\uDD36":"1f536","\uD83D\uDD37":"1f537","\uD83D\uDCB9":"1f4b9","\uD83D\uDD38":"1f538","\uD83D\uDD39":"1f539","\uD83D\uDCBA":"1f4ba","\uD83D\uDD3A":"1f53a","\uD83D\uDD3B":"1f53b","\uD83D\uDCBB":"1f4bb","\uD83D\uDD3C":"1f53c","\uD83D\uDCBC":"1f4bc","\uD83D\uDD3D":"1f53d","\uD83D\uDD50":"1f550","\uD83D\uDCBD":"1f4bd","\uD83D\uDD51":"1f551","\uD83D\uDCBE":"1f4be","\uD83D\uDD52":"1f552","\uD83D\uDCBF":"1f4bf","\uD83D\uDD53":"1f553","\uD83D\uDCC0":"1f4c0","\uD83D\uDD54":"1f554","\uD83D\uDD55":"1f555","\uD83D\uDCC1":"1f4c1","\uD83D\uDD56":"1f556","\uD83D\uDD57":"1f557","\uD83D\uDCC2":"1f4c2","\uD83D\uDD58":"1f558","\uD83D\uDD59":"1f559","\uD83D\uDCC3":"1f4c3","\uD83D\uDD5A":"1f55a","\uD83D\uDD5B":"1f55b","\uD83D\uDCC4":"1f4c4","\uD83D\uDDFB":"1f5fb","\uD83D\uDDFC":"1f5fc","\uD83D\uDCC5":"1f4c5","\uD83D\uDDFD":"1f5fd","\uD83D\uDDFE":"1f5fe","\uD83D\uDCC6":"1f4c6","\uD83D\uDDFF":"1f5ff","\uD83D\uDE01":"1f601","\uD83D\uDE02":"1f602","\uD83D\uDE03":"1f603","\uD83D\uDCC8":"1f4c8","\uD83D\uDE04":"1f604","\uD83D\uDE05":"1f605","\uD83D\uDCC9":"1f4c9","\uD83D\uDE06":"1f606","\uD83D\uDE09":"1f609","\uD83D\uDCCA":"1f4ca","\uD83D\uDE0A":"1f60a","\uD83D\uDE0B":"1f60b","\uD83D\uDCCB":"1f4cb","\uD83D\uDE0C":"1f60c","\uD83D\uDE0D":"1f60d","\uD83D\uDCCC":"1f4cc","\uD83D\uDE0F":"1f60f","\uD83D\uDE12":"1f612","\uD83D\uDCCD":"1f4cd","\uD83D\uDE13":"1f613","\uD83D\uDE14":"1f614","\uD83D\uDCCE":"1f4ce","\uD83D\uDE16":"1f616","\uD83D\uDE18":"1f618","\uD83D\uDCCF":"1f4cf","\uD83D\uDE1A":"1f61a","\uD83D\uDE1C":"1f61c","\uD83D\uDCD0":"1f4d0","\uD83D\uDE1D":"1f61d","\uD83D\uDE1E":"1f61e","\uD83D\uDCD1":"1f4d1","\uD83D\uDE20":"1f620","\uD83D\uDE21":"1f621","\uD83D\uDE22":"1f622","\uD83D\uDE23":"1f623","\uD83D\uDE24":"1f624","\uD83D\uDE25":"1f625","\uD83D\uDE28":"1f628","\uD83D\uDE29":"1f629","\uD83D\uDE2A":"1f62a","\uD83D\uDE2B":"1f62b","\uD83D\uDE2D":"1f62d","\uD83D\uDE30":"1f630","\uD83D\uDE31":"1f631","\uD83D\uDE32":"1f632","\uD83D\uDE33":"1f633","\uD83D\uDE35":"1f635","\uD83D\uDE37":"1f637","\uD83D\uDE38":"1f638","\uD83D\uDE39":"1f639","\uD83D\uDE3A":"1f63a","\uD83D\uDE3B":"1f63b","\uD83D\uDE3C":"1f63c","\uD83D\uDE3D":"1f63d","\uD83D\uDE3E":"1f63e","\uD83D\uDE3F":"1f63f","\uD83D\uDE40":"1f640","\uD83D\uDE45":"1f645","\uD83D\uDE46":"1f646","\uD83D\uDE47":"1f647","\uD83D\uDE48":"1f648","\uD83D\uDE49":"1f649","\uD83D\uDE4A":"1f64a","\uD83D\uDE4B":"1f64b","\uD83D\uDE4C":"1f64c","\uD83D\uDE4D":"1f64d","\uD83D\uDE4E":"1f64e","\uD83D\uDE4F":"1f64f","\uD83D\uDE80":"1f680","\uD83D\uDE83":"1f683","\uD83D\uDE84":"1f684","\uD83D\uDE85":"1f685","\uD83D\uDE87":"1f687","\uD83D\uDE89":"1f689","\uD83D\uDE8C":"1f68c","\uD83D\uDE8F":"1f68f","\uD83D\uDE91":"1f691","\uD83D\uDE92":"1f692","\uD83D\uDE93":"1f693","\uD83D\uDE95":"1f695","\uD83D\uDE97":"1f697","\uD83D\uDE99":"1f699","\uD83D\uDE9A":"1f69a","\uD83D\uDEA2":"1f6a2","\uD83D\uDEA4":"1f6a4","\uD83D\uDEA5":"1f6a5","\uD83D\uDEA7":"1f6a7","\uD83D\uDEA8":"1f6a8","\uD83D\uDEA9":"1f6a9","\uD83D\uDEAA":"1f6aa","\uD83D\uDEAB":"1f6ab","\uD83D\uDEAC":"1f6ac","\uD83D\uDEAD":"1f6ad","\uD83D\uDEB2":"1f6b2","\uD83D\uDEB6":"1f6b6","\uD83D\uDEB9":"1f6b9","\uD83D\uDEBA":"1f6ba","\uD83D\uDEBB":"1f6bb","\uD83D\uDEBC":"1f6bc","\uD83D\uDEBD":"1f6bd","\uD83D\uDEBE":"1f6be","\uD83D\uDEC0":"1f6c0","\uD83E\uDD18":"1f918","\uD83D\uDE00":"1f600","\uD83D\uDE07":"1f607","\uD83D\uDE08":"1f608","\uD83D\uDE0E":"1f60e","\uD83D\uDE10":"1f610","\uD83D\uDE11":"1f611","\uD83D\uDE15":"1f615","\uD83D\uDE17":"1f617","\uD83D\uDE19":"1f619","\uD83D\uDE1B":"1f61b","\uD83D\uDE1F":"1f61f","\uD83D\uDE26":"1f626","\uD83D\uDE27":"1f627","\uD83D\uDE2C":"1f62c","\uD83D\uDE2E":"1f62e","\uD83D\uDE2F":"1f62f","\uD83D\uDE34":"1f634","\uD83D\uDE36":"1f636","\uD83D\uDE81":"1f681","\uD83D\uDE82":"1f682","\uD83D\uDE86":"1f686","\uD83D\uDE88":"1f688","\uD83D\uDE8A":"1f68a","\uD83D\uDE8D":"1f68d","\uD83D\uDE8E":"1f68e","\uD83D\uDE90":"1f690","\uD83D\uDE94":"1f694","\uD83D\uDE96":"1f696","\uD83D\uDE98":"1f698","\uD83D\uDE9B":"1f69b","\uD83D\uDE9C":"1f69c","\uD83D\uDE9D":"1f69d","\uD83D\uDE9E":"1f69e","\uD83D\uDE9F":"1f69f","\uD83D\uDEA0":"1f6a0","\uD83D\uDEA1":"1f6a1","\uD83D\uDEA3":"1f6a3","\uD83D\uDEA6":"1f6a6","\uD83D\uDEAE":"1f6ae","\uD83D\uDEAF":"1f6af","\uD83D\uDEB0":"1f6b0","\uD83D\uDEB1":"1f6b1","\uD83D\uDEB3":"1f6b3","\uD83D\uDEB4":"1f6b4","\uD83D\uDEB5":"1f6b5","\uD83D\uDEB7":"1f6b7","\uD83D\uDEB8":"1f6b8","\uD83D\uDEBF":"1f6bf","\uD83D\uDEC1":"1f6c1","\uD83D\uDEC2":"1f6c2","\uD83D\uDEC3":"1f6c3","\uD83D\uDEC4":"1f6c4","\uD83D\uDEC5":"1f6c5","\uD83C\uDF0D":"1f30d","\uD83C\uDF0E":"1f30e","\uD83C\uDF10":"1f310","\uD83C\uDF12":"1f312","\uD83C\uDF16":"1f316","\uD83C\uDF17":"1f317","\uD83C\uDF18":"1f318","\uD83C\uDF1A":"1f31a","\uD83C\uDF1C":"1f31c","\uD83C\uDF1D":"1f31d","\uD83C\uDF1E":"1f31e","\uD83C\uDF32":"1f332","\uD83C\uDF33":"1f333","\uD83C\uDF4B":"1f34b","\uD83C\uDF50":"1f350","\uD83C\uDF7C":"1f37c","\uD83C\uDFC7":"1f3c7","\uD83C\uDFC9":"1f3c9","\uD83C\uDFE4":"1f3e4","\uD83D\uDC00":"1f400","\uD83D\uDC01":"1f401","\uD83D\uDC02":"1f402","\uD83D\uDC03":"1f403","\uD83D\uDC04":"1f404","\uD83D\uDC05":"1f405","\uD83D\uDC06":"1f406","\uD83D\uDC07":"1f407","\uD83D\uDC08":"1f408","\uD83D\uDC09":"1f409","\uD83D\uDC0A":"1f40a","\uD83D\uDC0B":"1f40b","\uD83D\uDC0F":"1f40f","\uD83D\uDC10":"1f410","\uD83D\uDC13":"1f413","\uD83D\uDC15":"1f415","\uD83D\uDC16":"1f416","\uD83D\uDC2A":"1f42a","\uD83D\uDC65":"1f465","\uD83D\uDC6C":"1f46c","\uD83D\uDC6D":"1f46d","\uD83D\uDCAD":"1f4ad","\uD83D\uDCB6":"1f4b6","\uD83D\uDCB7":"1f4b7","\uD83D\uDCEC":"1f4ec","\uD83D\uDCED":"1f4ed","\uD83D\uDCEF":"1f4ef","\uD83D\uDCF5":"1f4f5","\uD83D\uDD00":"1f500","\uD83D\uDD01":"1f501","\uD83D\uDD02":"1f502","\uD83D\uDD04":"1f504","\uD83D\uDD05":"1f505","\uD83D\uDD06":"1f506","\uD83D\uDD07":"1f507","\uD83D\uDD09":"1f509","\uD83D\uDD15":"1f515","\uD83D\uDD2C":"1f52c","\uD83D\uDD2D":"1f52d","\uD83D\uDD5C":"1f55c","\uD83D\uDD5D":"1f55d","\uD83D\uDD5E":"1f55e","\uD83D\uDD5F":"1f55f","\uD83D\uDD60":"1f560","\uD83D\uDD61":"1f561","\uD83D\uDD62":"1f562","\uD83D\uDD63":"1f563","\uD83D\uDD64":"1f564","\uD83D\uDD65":"1f565","\uD83D\uDD66":"1f566","\uD83D\uDD67":"1f567","\uD83D\uDD08":"1f508","\uD83D\uDE8B":"1f68b","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F":"1f39f","\uD83C\uDFC5":"1f3c5","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96":"1f396","\uD83C\uDF97":"1f397","\uD83C\uDF36":"1f336","\uD83C\uDF27":"1f327","\uD83C\uDF28":"1f328","\uD83C\uDF29":"1f329","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F":"1f43f","\uD83D\uDD77":"1f577","\uD83D\uDD78":"1f578","\uD83C\uDF21":"1f321","\uD83C\uDF99":"1f399","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF4":"1f3f4","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7":"1f3f7","\uD83D\uDCF8":"1f4f8","\uD83D\uDCFD":"1f4fd","\uD83D\uDD49":"1f549","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F":"1f56f","\uD83D\uDD70":"1f570","\uD83D\uDD73":"1f573","\uD83D\uDD76":"1f576","\uD83D\uDD79":"1f579","\uD83D\uDD87":"1f587","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8":"1f5a8","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3":"1f5e3","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA":"1f5fa","\uD83D\uDECC":"1f6cc","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D":"1f37d","\uD83D\uDC41":"1f441","\uD83D\uDD74":"1f574","\uD83D\uDD75":"1f575","\uD83D\uDD90":"1f590","\uD83D\uDD95":"1f595","\uD83D\uDD96":"1f596","\uD83D\uDE41":"1f641","\uD83D\uDE42":"1f642","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF":"1f3df","\uD83D\uDECB":"1f6cb","\uD83D\uDECD":"1f6cd","\uD83D\uDECE":"1f6ce","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9":"1f6e9","\uD83D\uDEEB":"1f6eb","\uD83D\uDEEC":"1f6ec","\uD83D\uDEF3":"1f6f3","\uD83C\uDFFB":"1f3fb","\uD83C\uDFFC":"1f3fc","\uD83C\uDFFD":"1f3fd","\uD83C\uDFFE":"1f3fe","\uD83C\uDFFF":"1f3ff","\uD83C\uDF24":"1f324","\uD83C\uDF25":"1f325","\uD83C\uDF26":"1f326","\uD83D\uDDB1":"1f5b1","\uD83D\uDE43":"1f643","\uD83E\uDD11":"1f911","\uD83E\uDD13":"1f913","\uD83E\uDD17":"1f917","\uD83D\uDE44":"1f644","\uD83E\uDD14":"1f914","\uD83E\uDD10":"1f910","\uD83E\uDD12":"1f912","\uD83E\uDD15":"1f915","\uD83E\uDD16":"1f916","\uD83E\uDD81":"1f981","\uD83E\uDD84":"1f984","\uD83E\uDD82":"1f982","\uD83E\uDD80":"1f980","\uD83E\uDD83":"1f983","\uD83E\uDDC0":"1f9c0","\uD83C\uDF2D":"1f32d","\uD83C\uDF2E":"1f32e","\uD83C\uDF2F":"1f32f","\uD83C\uDF7F":"1f37f","\uD83C\uDF7E":"1f37e","\uD83C\uDFF9":"1f3f9","\uD83C\uDFFA":"1f3fa","\uD83D\uDED0":"1f6d0","\uD83D\uDD4B":"1f54b","\uD83D\uDD4C":"1f54c","\uD83D\uDD4D":"1f54d","\uD83D\uDD4E":"1f54e","\uD83D\uDCFF":"1f4ff","\uD83C\uDFCF":"1f3cf","\uD83C\uDFD0":"1f3d0","\uD83C\uDFD1":"1f3d1","\uD83C\uDFD2":"1f3d2","\uD83C\uDFD3":"1f3d3","\uD83C\uDFF8":"1f3f8","\u23E9":"23e9","\u23EA":"23ea","\u23EB":"23eb","\u23EC":"23ec","\u23F0":"23f0","\u23F3":"23f3","\u26CE":"26ce","\u270A":"270a","\u270B":"270b","\u274C":"274c","\u274E":"274e","\u27B0":"27b0","\u27BF":"27bf","\u271D":"271d","\u270D":"270d","\u23ED":"23ed","\u23EE":"23ee","\u23EF":"23ef","\u23F1":"23f1","\u23F2":"23f2","\u23F8":"23f8","\u23F9":"23f9","\u23FA":"23fa","\u262A":"262a","\u262E":"262e","\u262F":"262f","\u269B":"269b","\u269C":"269c","\u26B0":"26b0","\u26B1":"26b1","\u26C8":"26c8","\u26CF":"26cf","\u26D1":"26d1","\u26D3":"26d3","\u26E9":"26e9","\u26F0":"26f0","\u26F1":"26f1","\u26F4":"26f4","\u26F7":"26f7","\u26F8":"26f8","\u26F9":"26f9"};
- ns.imagePathPNG = '//cdn.jsdelivr.net/emojione/assets/png/';
- ns.imagePathSVG = '//cdn.jsdelivr.net/emojione/assets/svg/';
+ ns.unicodeRegexp = '(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)';
+ ns.jsEscapeMap = {"\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC69":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","\uD83D\uDC69\u2764\uD83D\uDC8B\uD83D\uDC69":"1f469-2764-1f48b-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC8B\u200D\uD83D\uDC68":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","\uD83D\uDC68\u2764\uD83D\uDC8B\uD83D\uDC68":"1f468-2764-1f48b-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f466-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66\uD83D\uDC66":"1f468-1f468-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f467-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC66":"1f468-1f468-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-200d-1f468-200d-1f467-200d-1f467","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67\uD83D\uDC67":"1f468-1f468-1f467-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f468-200d-1f469-200d-1f466-200d-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f468-1f469-1f466-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f468-200d-1f469-200d-1f467-200d-1f466","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f468-1f469-1f467-1f466","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f468-200d-1f469-200d-1f467-200d-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f468-1f469-1f467-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f466-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66\uD83D\uDC66":"1f469-1f469-1f466-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f467-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC66":"1f469-1f469-1f467-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67\u200D\uD83D\uDC67":"1f469-200d-1f469-200d-1f467-200d-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67\uD83D\uDC67":"1f469-1f469-1f467-1f467","\uD83D\uDC69\u200D\u2764\uFE0F\u200D\uD83D\uDC69":"1f469-200d-2764-fe0f-200d-1f469","\uD83D\uDC69\u2764\uD83D\uDC69":"1f469-2764-1f469","\uD83D\uDC68\u200D\u2764\uFE0F\u200D\uD83D\uDC68":"1f468-200d-2764-fe0f-200d-1f468","\uD83D\uDC68\u2764\uD83D\uDC68":"1f468-2764-1f468","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC66":"1f468-200d-1f468-200d-1f466","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC66":"1f468-1f468-1f466","\uD83D\uDC68\u200D\uD83D\uDC68\u200D\uD83D\uDC67":"1f468-200d-1f468-200d-1f467","\uD83D\uDC68\uD83D\uDC68\uD83D\uDC67":"1f468-1f468-1f467","\uD83D\uDC68\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f468-200d-1f469-200d-1f467","\uD83D\uDC68\uD83D\uDC69\uD83D\uDC67":"1f468-1f469-1f467","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66":"1f469-200d-1f469-200d-1f466","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC66":"1f469-1f469-1f466","\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC67":"1f469-200d-1f469-200d-1f467","\uD83D\uDC69\uD83D\uDC69\uD83D\uDC67":"1f469-1f469-1f467","\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08":"1f3f3-fe0f-200d-1f308","\uD83C\uDFF3\uD83C\uDF08":"1f3f3-1f308","\uD83D\uDC41\u200D\uD83D\uDDE8":"1f441-200d-1f5e8","\uD83D\uDC41\uD83D\uDDE8":"1f441-1f5e8","#\uFE0F\u20E3":"0023-fe0f-20e3","#\u20E3":"0023-20e3","0\uFE0F\u20E3":"0030-fe0f-20e3","0\u20E3":"0030-20e3","1\uFE0F\u20E3":"0031-fe0f-20e3","1\u20E3":"0031-20e3","2\uFE0F\u20E3":"0032-fe0f-20e3","2\u20E3":"0032-20e3","3\uFE0F\u20E3":"0033-fe0f-20e3","3\u20E3":"0033-20e3","4\uFE0F\u20E3":"0034-fe0f-20e3","4\u20E3":"0034-20e3","5\uFE0F\u20E3":"0035-fe0f-20e3","5\u20E3":"0035-20e3","6\uFE0F\u20E3":"0036-fe0f-20e3","6\u20E3":"0036-20e3","7\uFE0F\u20E3":"0037-fe0f-20e3","7\u20E3":"0037-20e3","8\uFE0F\u20E3":"0038-fe0f-20e3","8\u20E3":"0038-20e3","9\uFE0F\u20E3":"0039-fe0f-20e3","9\u20E3":"0039-20e3","*\uFE0F\u20E3":"002a-fe0f-20e3","*\u20E3":"002a-20e3","\uD83E\uDD3E\uD83C\uDFFF":"1f93e-1f3ff","\uD83E\uDD3E\uD83C\uDFFE":"1f93e-1f3fe","\uD83E\uDD3E\uD83C\uDFFD":"1f93e-1f3fd","\uD83E\uDD3E\uD83C\uDFFC":"1f93e-1f3fc","\uD83E\uDD3E\uD83C\uDFFB":"1f93e-1f3fb","\uD83E\uDD3D\uD83C\uDFFF":"1f93d-1f3ff","\uD83E\uDD3D\uD83C\uDFFE":"1f93d-1f3fe","\uD83E\uDD3D\uD83C\uDFFD":"1f93d-1f3fd","\uD83E\uDD3D\uD83C\uDFFC":"1f93d-1f3fc","\uD83E\uDD3D\uD83C\uDFFB":"1f93d-1f3fb","\uD83E\uDD3C\uD83C\uDFFF":"1f93c-1f3ff","\uD83E\uDD3C\uD83C\uDFFE":"1f93c-1f3fe","\uD83E\uDD3C\uD83C\uDFFD":"1f93c-1f3fd","\uD83E\uDD3C\uD83C\uDFFC":"1f93c-1f3fc","\uD83E\uDD3C\uD83C\uDFFB":"1f93c-1f3fb","\uD83E\uDD39\uD83C\uDFFF":"1f939-1f3ff","\uD83E\uDD39\uD83C\uDFFE":"1f939-1f3fe","\uD83E\uDD39\uD83C\uDFFD":"1f939-1f3fd","\uD83E\uDD39\uD83C\uDFFC":"1f939-1f3fc","\uD83E\uDD39\uD83C\uDFFB":"1f939-1f3fb","\uD83E\uDD38\uD83C\uDFFF":"1f938-1f3ff","\uD83E\uDD38\uD83C\uDFFE":"1f938-1f3fe","\uD83E\uDD38\uD83C\uDFFD":"1f938-1f3fd","\uD83E\uDD38\uD83C\uDFFC":"1f938-1f3fc","\uD83E\uDD38\uD83C\uDFFB":"1f938-1f3fb","\uD83E\uDD37\uD83C\uDFFF":"1f937-1f3ff","\uD83E\uDD37\uD83C\uDFFE":"1f937-1f3fe","\uD83E\uDD37\uD83C\uDFFD":"1f937-1f3fd","\uD83E\uDD37\uD83C\uDFFC":"1f937-1f3fc","\uD83E\uDD37\uD83C\uDFFB":"1f937-1f3fb","\uD83E\uDD36\uD83C\uDFFF":"1f936-1f3ff","\uD83E\uDD36\uD83C\uDFFE":"1f936-1f3fe","\uD83E\uDD36\uD83C\uDFFD":"1f936-1f3fd","\uD83E\uDD36\uD83C\uDFFC":"1f936-1f3fc","\uD83E\uDD36\uD83C\uDFFB":"1f936-1f3fb","\uD83E\uDD35\uD83C\uDFFF":"1f935-1f3ff","\uD83E\uDD35\uD83C\uDFFE":"1f935-1f3fe","\uD83E\uDD35\uD83C\uDFFD":"1f935-1f3fd","\uD83E\uDD35\uD83C\uDFFC":"1f935-1f3fc","\uD83E\uDD35\uD83C\uDFFB":"1f935-1f3fb","\uD83E\uDD34\uD83C\uDFFF":"1f934-1f3ff","\uD83E\uDD34\uD83C\uDFFE":"1f934-1f3fe","\uD83E\uDD34\uD83C\uDFFD":"1f934-1f3fd","\uD83E\uDD34\uD83C\uDFFC":"1f934-1f3fc","\uD83E\uDD34\uD83C\uDFFB":"1f934-1f3fb","\uD83E\uDD33\uD83C\uDFFF":"1f933-1f3ff","\uD83E\uDD33\uD83C\uDFFE":"1f933-1f3fe","\uD83E\uDD33\uD83C\uDFFD":"1f933-1f3fd","\uD83E\uDD33\uD83C\uDFFC":"1f933-1f3fc","\uD83E\uDD33\uD83C\uDFFB":"1f933-1f3fb","\uD83E\uDD30\uD83C\uDFFF":"1f930-1f3ff","\uD83E\uDD30\uD83C\uDFFE":"1f930-1f3fe","\uD83E\uDD30\uD83C\uDFFD":"1f930-1f3fd","\uD83E\uDD30\uD83C\uDFFC":"1f930-1f3fc","\uD83E\uDD30\uD83C\uDFFB":"1f930-1f3fb","\uD83E\uDD26\uD83C\uDFFF":"1f926-1f3ff","\uD83E\uDD26\uD83C\uDFFE":"1f926-1f3fe","\uD83E\uDD26\uD83C\uDFFD":"1f926-1f3fd","\uD83E\uDD26\uD83C\uDFFC":"1f926-1f3fc","\uD83E\uDD26\uD83C\uDFFB":"1f926-1f3fb","\uD83E\uDD1E\uD83C\uDFFF":"1f91e-1f3ff","\uD83E\uDD1E\uD83C\uDFFE":"1f91e-1f3fe","\uD83E\uDD1E\uD83C\uDFFD":"1f91e-1f3fd","\uD83E\uDD1E\uD83C\uDFFC":"1f91e-1f3fc","\uD83E\uDD1E\uD83C\uDFFB":"1f91e-1f3fb","\uD83E\uDD1D\uD83C\uDFFF":"1f91d-1f3ff","\uD83E\uDD1D\uD83C\uDFFE":"1f91d-1f3fe","\uD83E\uDD1D\uD83C\uDFFD":"1f91d-1f3fd","\uD83E\uDD1D\uD83C\uDFFC":"1f91d-1f3fc","\uD83E\uDD1D\uD83C\uDFFB":"1f91d-1f3fb","\uD83E\uDD1C\uD83C\uDFFF":"1f91c-1f3ff","\uD83E\uDD1C\uD83C\uDFFE":"1f91c-1f3fe","\uD83E\uDD1C\uD83C\uDFFD":"1f91c-1f3fd","\uD83E\uDD1C\uD83C\uDFFC":"1f91c-1f3fc","\uD83E\uDD1C\uD83C\uDFFB":"1f91c-1f3fb","\uD83E\uDD1B\uD83C\uDFFF":"1f91b-1f3ff","\uD83E\uDD1B\uD83C\uDFFE":"1f91b-1f3fe","\uD83E\uDD1B\uD83C\uDFFD":"1f91b-1f3fd","\uD83E\uDD1B\uD83C\uDFFC":"1f91b-1f3fc","\uD83E\uDD1B\uD83C\uDFFB":"1f91b-1f3fb","\uD83E\uDD1A\uD83C\uDFFF":"1f91a-1f3ff","\uD83E\uDD1A\uD83C\uDFFE":"1f91a-1f3fe","\uD83E\uDD1A\uD83C\uDFFD":"1f91a-1f3fd","\uD83E\uDD1A\uD83C\uDFFC":"1f91a-1f3fc","\uD83E\uDD1A\uD83C\uDFFB":"1f91a-1f3fb","\uD83E\uDD19\uD83C\uDFFF":"1f919-1f3ff","\uD83E\uDD19\uD83C\uDFFE":"1f919-1f3fe","\uD83E\uDD19\uD83C\uDFFD":"1f919-1f3fd","\uD83E\uDD19\uD83C\uDFFC":"1f919-1f3fc","\uD83E\uDD19\uD83C\uDFFB":"1f919-1f3fb","\uD83E\uDD18\uD83C\uDFFF":"1f918-1f3ff","\uD83E\uDD18\uD83C\uDFFE":"1f918-1f3fe","\uD83E\uDD18\uD83C\uDFFD":"1f918-1f3fd","\uD83E\uDD18\uD83C\uDFFC":"1f918-1f3fc","\uD83E\uDD18\uD83C\uDFFB":"1f918-1f3fb","\uD83D\uDEC0\uD83C\uDFFF":"1f6c0-1f3ff","\uD83D\uDEC0\uD83C\uDFFE":"1f6c0-1f3fe","\uD83D\uDEC0\uD83C\uDFFD":"1f6c0-1f3fd","\uD83D\uDEC0\uD83C\uDFFC":"1f6c0-1f3fc","\uD83D\uDEC0\uD83C\uDFFB":"1f6c0-1f3fb","\uD83D\uDEB6\uD83C\uDFFF":"1f6b6-1f3ff","\uD83D\uDEB6\uD83C\uDFFE":"1f6b6-1f3fe","\uD83D\uDEB6\uD83C\uDFFD":"1f6b6-1f3fd","\uD83D\uDEB6\uD83C\uDFFC":"1f6b6-1f3fc","\uD83D\uDEB6\uD83C\uDFFB":"1f6b6-1f3fb","\uD83D\uDEB5\uD83C\uDFFF":"1f6b5-1f3ff","\uD83D\uDEB5\uD83C\uDFFE":"1f6b5-1f3fe","\uD83D\uDEB5\uD83C\uDFFD":"1f6b5-1f3fd","\uD83D\uDEB5\uD83C\uDFFC":"1f6b5-1f3fc","\uD83D\uDEB5\uD83C\uDFFB":"1f6b5-1f3fb","\uD83D\uDEB4\uD83C\uDFFF":"1f6b4-1f3ff","\uD83D\uDEB4\uD83C\uDFFE":"1f6b4-1f3fe","\uD83D\uDEB4\uD83C\uDFFD":"1f6b4-1f3fd","\uD83D\uDEB4\uD83C\uDFFC":"1f6b4-1f3fc","\uD83D\uDEB4\uD83C\uDFFB":"1f6b4-1f3fb","\uD83D\uDEA3\uD83C\uDFFF":"1f6a3-1f3ff","\uD83D\uDEA3\uD83C\uDFFE":"1f6a3-1f3fe","\uD83D\uDEA3\uD83C\uDFFD":"1f6a3-1f3fd","\uD83D\uDEA3\uD83C\uDFFC":"1f6a3-1f3fc","\uD83D\uDEA3\uD83C\uDFFB":"1f6a3-1f3fb","\uD83D\uDE4F\uD83C\uDFFF":"1f64f-1f3ff","\uD83D\uDE4F\uD83C\uDFFE":"1f64f-1f3fe","\uD83D\uDE4F\uD83C\uDFFD":"1f64f-1f3fd","\uD83D\uDE4F\uD83C\uDFFC":"1f64f-1f3fc","\uD83D\uDE4F\uD83C\uDFFB":"1f64f-1f3fb","\uD83D\uDE4E\uD83C\uDFFF":"1f64e-1f3ff","\uD83D\uDE4E\uD83C\uDFFE":"1f64e-1f3fe","\uD83D\uDE4E\uD83C\uDFFD":"1f64e-1f3fd","\uD83D\uDE4E\uD83C\uDFFC":"1f64e-1f3fc","\uD83D\uDE4E\uD83C\uDFFB":"1f64e-1f3fb","\uD83D\uDE4D\uD83C\uDFFF":"1f64d-1f3ff","\uD83D\uDE4D\uD83C\uDFFE":"1f64d-1f3fe","\uD83D\uDE4D\uD83C\uDFFD":"1f64d-1f3fd","\uD83D\uDE4D\uD83C\uDFFC":"1f64d-1f3fc","\uD83D\uDE4D\uD83C\uDFFB":"1f64d-1f3fb","\uD83D\uDE4C\uD83C\uDFFF":"1f64c-1f3ff","\uD83D\uDE4C\uD83C\uDFFE":"1f64c-1f3fe","\uD83D\uDE4C\uD83C\uDFFD":"1f64c-1f3fd","\uD83D\uDE4C\uD83C\uDFFC":"1f64c-1f3fc","\uD83D\uDE4C\uD83C\uDFFB":"1f64c-1f3fb","\uD83D\uDE4B\uD83C\uDFFF":"1f64b-1f3ff","\uD83D\uDE4B\uD83C\uDFFE":"1f64b-1f3fe","\uD83D\uDE4B\uD83C\uDFFD":"1f64b-1f3fd","\uD83D\uDE4B\uD83C\uDFFC":"1f64b-1f3fc","\uD83D\uDE4B\uD83C\uDFFB":"1f64b-1f3fb","\uD83D\uDE47\uD83C\uDFFF":"1f647-1f3ff","\uD83D\uDE47\uD83C\uDFFE":"1f647-1f3fe","\uD83D\uDE47\uD83C\uDFFD":"1f647-1f3fd","\uD83D\uDE47\uD83C\uDFFC":"1f647-1f3fc","\uD83D\uDE47\uD83C\uDFFB":"1f647-1f3fb","\uD83D\uDE46\uD83C\uDFFF":"1f646-1f3ff","\uD83D\uDE46\uD83C\uDFFE":"1f646-1f3fe","\uD83D\uDE46\uD83C\uDFFD":"1f646-1f3fd","\uD83D\uDE46\uD83C\uDFFC":"1f646-1f3fc","\uD83D\uDE46\uD83C\uDFFB":"1f646-1f3fb","\uD83D\uDE45\uD83C\uDFFF":"1f645-1f3ff","\uD83D\uDE45\uD83C\uDFFE":"1f645-1f3fe","\uD83D\uDE45\uD83C\uDFFD":"1f645-1f3fd","\uD83D\uDE45\uD83C\uDFFC":"1f645-1f3fc","\uD83D\uDE45\uD83C\uDFFB":"1f645-1f3fb","\uD83D\uDD96\uD83C\uDFFF":"1f596-1f3ff","\uD83D\uDD96\uD83C\uDFFE":"1f596-1f3fe","\uD83D\uDD96\uD83C\uDFFD":"1f596-1f3fd","\uD83D\uDD96\uD83C\uDFFC":"1f596-1f3fc","\uD83D\uDD96\uD83C\uDFFB":"1f596-1f3fb","\uD83D\uDD95\uD83C\uDFFF":"1f595-1f3ff","\uD83D\uDD95\uD83C\uDFFE":"1f595-1f3fe","\uD83D\uDD95\uD83C\uDFFD":"1f595-1f3fd","\uD83D\uDD95\uD83C\uDFFC":"1f595-1f3fc","\uD83D\uDD95\uD83C\uDFFB":"1f595-1f3fb","\uD83D\uDD90\uD83C\uDFFF":"1f590-1f3ff","\uD83D\uDD90\uD83C\uDFFE":"1f590-1f3fe","\uD83D\uDD90\uD83C\uDFFD":"1f590-1f3fd","\uD83D\uDD90\uD83C\uDFFC":"1f590-1f3fc","\uD83D\uDD90\uD83C\uDFFB":"1f590-1f3fb","\uD83D\uDD7A\uD83C\uDFFF":"1f57a-1f3ff","\uD83D\uDD7A\uD83C\uDFFE":"1f57a-1f3fe","\uD83D\uDD7A\uD83C\uDFFD":"1f57a-1f3fd","\uD83D\uDD7A\uD83C\uDFFC":"1f57a-1f3fc","\uD83D\uDD7A\uD83C\uDFFB":"1f57a-1f3fb","\uD83D\uDD75\uD83C\uDFFF":"1f575-1f3ff","\uD83D\uDD75\uD83C\uDFFE":"1f575-1f3fe","\uD83D\uDD75\uD83C\uDFFD":"1f575-1f3fd","\uD83D\uDD75\uD83C\uDFFC":"1f575-1f3fc","\uD83D\uDD75\uD83C\uDFFB":"1f575-1f3fb","\uD83D\uDCAA\uD83C\uDFFF":"1f4aa-1f3ff","\uD83D\uDCAA\uD83C\uDFFE":"1f4aa-1f3fe","\uD83D\uDCAA\uD83C\uDFFD":"1f4aa-1f3fd","\uD83D\uDCAA\uD83C\uDFFC":"1f4aa-1f3fc","\uD83D\uDCAA\uD83C\uDFFB":"1f4aa-1f3fb","\uD83D\uDC87\uD83C\uDFFF":"1f487-1f3ff","\uD83D\uDC87\uD83C\uDFFE":"1f487-1f3fe","\uD83D\uDC87\uD83C\uDFFD":"1f487-1f3fd","\uD83D\uDC87\uD83C\uDFFC":"1f487-1f3fc","\uD83D\uDC87\uD83C\uDFFB":"1f487-1f3fb","\uD83D\uDC86\uD83C\uDFFF":"1f486-1f3ff","\uD83D\uDC86\uD83C\uDFFE":"1f486-1f3fe","\uD83D\uDC86\uD83C\uDFFD":"1f486-1f3fd","\uD83D\uDC86\uD83C\uDFFC":"1f486-1f3fc","\uD83D\uDC86\uD83C\uDFFB":"1f486-1f3fb","\uD83D\uDC85\uD83C\uDFFF":"1f485-1f3ff","\uD83D\uDC85\uD83C\uDFFE":"1f485-1f3fe","\uD83D\uDC85\uD83C\uDFFD":"1f485-1f3fd","\uD83D\uDC85\uD83C\uDFFC":"1f485-1f3fc","\uD83D\uDC85\uD83C\uDFFB":"1f485-1f3fb","\uD83D\uDC83\uD83C\uDFFF":"1f483-1f3ff","\uD83D\uDC83\uD83C\uDFFE":"1f483-1f3fe","\uD83D\uDC83\uD83C\uDFFD":"1f483-1f3fd","\uD83D\uDC83\uD83C\uDFFC":"1f483-1f3fc","\uD83D\uDC83\uD83C\uDFFB":"1f483-1f3fb","\uD83D\uDC82\uD83C\uDFFF":"1f482-1f3ff","\uD83D\uDC82\uD83C\uDFFE":"1f482-1f3fe","\uD83D\uDC82\uD83C\uDFFD":"1f482-1f3fd","\uD83D\uDC82\uD83C\uDFFC":"1f482-1f3fc","\uD83D\uDC82\uD83C\uDFFB":"1f482-1f3fb","\uD83D\uDC81\uD83C\uDFFF":"1f481-1f3ff","\uD83D\uDC81\uD83C\uDFFE":"1f481-1f3fe","\uD83D\uDC81\uD83C\uDFFD":"1f481-1f3fd","\uD83D\uDC81\uD83C\uDFFC":"1f481-1f3fc","\uD83D\uDC81\uD83C\uDFFB":"1f481-1f3fb","\uD83D\uDC7C\uD83C\uDFFF":"1f47c-1f3ff","\uD83D\uDC7C\uD83C\uDFFE":"1f47c-1f3fe","\uD83D\uDC7C\uD83C\uDFFD":"1f47c-1f3fd","\uD83D\uDC7C\uD83C\uDFFC":"1f47c-1f3fc","\uD83D\uDC7C\uD83C\uDFFB":"1f47c-1f3fb","\uD83D\uDC78\uD83C\uDFFF":"1f478-1f3ff","\uD83D\uDC78\uD83C\uDFFE":"1f478-1f3fe","\uD83D\uDC78\uD83C\uDFFD":"1f478-1f3fd","\uD83D\uDC78\uD83C\uDFFC":"1f478-1f3fc","\uD83D\uDC78\uD83C\uDFFB":"1f478-1f3fb","\uD83D\uDC77\uD83C\uDFFF":"1f477-1f3ff","\uD83D\uDC77\uD83C\uDFFE":"1f477-1f3fe","\uD83D\uDC77\uD83C\uDFFD":"1f477-1f3fd","\uD83D\uDC77\uD83C\uDFFC":"1f477-1f3fc","\uD83D\uDC77\uD83C\uDFFB":"1f477-1f3fb","\uD83D\uDC76\uD83C\uDFFF":"1f476-1f3ff","\uD83D\uDC76\uD83C\uDFFE":"1f476-1f3fe","\uD83D\uDC76\uD83C\uDFFD":"1f476-1f3fd","\uD83D\uDC76\uD83C\uDFFC":"1f476-1f3fc","\uD83D\uDC76\uD83C\uDFFB":"1f476-1f3fb","\uD83D\uDC75\uD83C\uDFFF":"1f475-1f3ff","\uD83D\uDC75\uD83C\uDFFE":"1f475-1f3fe","\uD83D\uDC75\uD83C\uDFFD":"1f475-1f3fd","\uD83D\uDC75\uD83C\uDFFC":"1f475-1f3fc","\uD83D\uDC75\uD83C\uDFFB":"1f475-1f3fb","\uD83D\uDC74\uD83C\uDFFF":"1f474-1f3ff","\uD83D\uDC74\uD83C\uDFFE":"1f474-1f3fe","\uD83D\uDC74\uD83C\uDFFD":"1f474-1f3fd","\uD83D\uDC74\uD83C\uDFFC":"1f474-1f3fc","\uD83D\uDC74\uD83C\uDFFB":"1f474-1f3fb","\uD83D\uDC73\uD83C\uDFFF":"1f473-1f3ff","\uD83D\uDC73\uD83C\uDFFE":"1f473-1f3fe","\uD83D\uDC73\uD83C\uDFFD":"1f473-1f3fd","\uD83D\uDC73\uD83C\uDFFC":"1f473-1f3fc","\uD83D\uDC73\uD83C\uDFFB":"1f473-1f3fb","\uD83D\uDC72\uD83C\uDFFF":"1f472-1f3ff","\uD83D\uDC72\uD83C\uDFFE":"1f472-1f3fe","\uD83D\uDC72\uD83C\uDFFD":"1f472-1f3fd","\uD83D\uDC72\uD83C\uDFFC":"1f472-1f3fc","\uD83D\uDC72\uD83C\uDFFB":"1f472-1f3fb","\uD83D\uDC71\uD83C\uDFFF":"1f471-1f3ff","\uD83D\uDC71\uD83C\uDFFE":"1f471-1f3fe","\uD83D\uDC71\uD83C\uDFFD":"1f471-1f3fd","\uD83D\uDC71\uD83C\uDFFC":"1f471-1f3fc","\uD83D\uDC71\uD83C\uDFFB":"1f471-1f3fb","\uD83D\uDC70\uD83C\uDFFF":"1f470-1f3ff","\uD83D\uDC70\uD83C\uDFFE":"1f470-1f3fe","\uD83D\uDC70\uD83C\uDFFD":"1f470-1f3fd","\uD83D\uDC70\uD83C\uDFFC":"1f470-1f3fc","\uD83D\uDC70\uD83C\uDFFB":"1f470-1f3fb","\uD83D\uDC6E\uD83C\uDFFF":"1f46e-1f3ff","\uD83D\uDC6E\uD83C\uDFFE":"1f46e-1f3fe","\uD83D\uDC6E\uD83C\uDFFD":"1f46e-1f3fd","\uD83D\uDC6E\uD83C\uDFFC":"1f46e-1f3fc","\uD83D\uDC6E\uD83C\uDFFB":"1f46e-1f3fb","\uD83D\uDC69\uD83C\uDFFF":"1f469-1f3ff","\uD83D\uDC69\uD83C\uDFFE":"1f469-1f3fe","\uD83D\uDC69\uD83C\uDFFD":"1f469-1f3fd","\uD83D\uDC69\uD83C\uDFFC":"1f469-1f3fc","\uD83D\uDC69\uD83C\uDFFB":"1f469-1f3fb","\uD83D\uDC68\uD83C\uDFFF":"1f468-1f3ff","\uD83D\uDC68\uD83C\uDFFE":"1f468-1f3fe","\uD83D\uDC68\uD83C\uDFFD":"1f468-1f3fd","\uD83D\uDC68\uD83C\uDFFC":"1f468-1f3fc","\uD83D\uDC68\uD83C\uDFFB":"1f468-1f3fb","\uD83D\uDC67\uD83C\uDFFF":"1f467-1f3ff","\uD83D\uDC67\uD83C\uDFFE":"1f467-1f3fe","\uD83D\uDC67\uD83C\uDFFD":"1f467-1f3fd","\uD83D\uDC67\uD83C\uDFFC":"1f467-1f3fc","\uD83D\uDC67\uD83C\uDFFB":"1f467-1f3fb","\uD83D\uDC66\uD83C\uDFFF":"1f466-1f3ff","\uD83D\uDC66\uD83C\uDFFE":"1f466-1f3fe","\uD83D\uDC66\uD83C\uDFFD":"1f466-1f3fd","\uD83D\uDC66\uD83C\uDFFC":"1f466-1f3fc","\uD83D\uDC66\uD83C\uDFFB":"1f466-1f3fb","\uD83D\uDC50\uD83C\uDFFF":"1f450-1f3ff","\uD83D\uDC50\uD83C\uDFFE":"1f450-1f3fe","\uD83D\uDC50\uD83C\uDFFD":"1f450-1f3fd","\uD83D\uDC50\uD83C\uDFFC":"1f450-1f3fc","\uD83D\uDC50\uD83C\uDFFB":"1f450-1f3fb","\uD83D\uDC4F\uD83C\uDFFF":"1f44f-1f3ff","\uD83D\uDC4F\uD83C\uDFFE":"1f44f-1f3fe","\uD83D\uDC4F\uD83C\uDFFD":"1f44f-1f3fd","\uD83D\uDC4F\uD83C\uDFFC":"1f44f-1f3fc","\uD83D\uDC4F\uD83C\uDFFB":"1f44f-1f3fb","\uD83D\uDC4E\uD83C\uDFFF":"1f44e-1f3ff","\uD83D\uDC4E\uD83C\uDFFE":"1f44e-1f3fe","\uD83D\uDC4E\uD83C\uDFFD":"1f44e-1f3fd","\uD83D\uDC4E\uD83C\uDFFC":"1f44e-1f3fc","\uD83D\uDC4E\uD83C\uDFFB":"1f44e-1f3fb","\uD83D\uDC4D\uD83C\uDFFF":"1f44d-1f3ff","\uD83D\uDC4D\uD83C\uDFFE":"1f44d-1f3fe","\uD83D\uDC4D\uD83C\uDFFD":"1f44d-1f3fd","\uD83D\uDC4D\uD83C\uDFFC":"1f44d-1f3fc","\uD83D\uDC4D\uD83C\uDFFB":"1f44d-1f3fb","\uD83D\uDC4C\uD83C\uDFFF":"1f44c-1f3ff","\uD83D\uDC4C\uD83C\uDFFE":"1f44c-1f3fe","\uD83D\uDC4C\uD83C\uDFFD":"1f44c-1f3fd","\uD83D\uDC4C\uD83C\uDFFC":"1f44c-1f3fc","\uD83D\uDC4C\uD83C\uDFFB":"1f44c-1f3fb","\uD83D\uDC4B\uD83C\uDFFF":"1f44b-1f3ff","\uD83D\uDC4B\uD83C\uDFFE":"1f44b-1f3fe","\uD83D\uDC4B\uD83C\uDFFD":"1f44b-1f3fd","\uD83D\uDC4B\uD83C\uDFFC":"1f44b-1f3fc","\uD83D\uDC4B\uD83C\uDFFB":"1f44b-1f3fb","\uD83D\uDC4A\uD83C\uDFFF":"1f44a-1f3ff","\uD83D\uDC4A\uD83C\uDFFE":"1f44a-1f3fe","\uD83D\uDC4A\uD83C\uDFFD":"1f44a-1f3fd","\uD83D\uDC4A\uD83C\uDFFC":"1f44a-1f3fc","\uD83D\uDC4A\uD83C\uDFFB":"1f44a-1f3fb","\uD83D\uDC49\uD83C\uDFFF":"1f449-1f3ff","\uD83D\uDC49\uD83C\uDFFE":"1f449-1f3fe","\uD83D\uDC49\uD83C\uDFFD":"1f449-1f3fd","\uD83D\uDC49\uD83C\uDFFC":"1f449-1f3fc","\uD83D\uDC49\uD83C\uDFFB":"1f449-1f3fb","\uD83D\uDC48\uD83C\uDFFF":"1f448-1f3ff","\uD83D\uDC48\uD83C\uDFFE":"1f448-1f3fe","\uD83D\uDC48\uD83C\uDFFD":"1f448-1f3fd","\uD83D\uDC48\uD83C\uDFFC":"1f448-1f3fc","\uD83D\uDC48\uD83C\uDFFB":"1f448-1f3fb","\uD83D\uDC47\uD83C\uDFFF":"1f447-1f3ff","\uD83D\uDC47\uD83C\uDFFE":"1f447-1f3fe","\uD83D\uDC47\uD83C\uDFFD":"1f447-1f3fd","\uD83D\uDC47\uD83C\uDFFC":"1f447-1f3fc","\uD83D\uDC47\uD83C\uDFFB":"1f447-1f3fb","\uD83D\uDC46\uD83C\uDFFF":"1f446-1f3ff","\uD83D\uDC46\uD83C\uDFFE":"1f446-1f3fe","\uD83D\uDC46\uD83C\uDFFD":"1f446-1f3fd","\uD83D\uDC46\uD83C\uDFFC":"1f446-1f3fc","\uD83D\uDC46\uD83C\uDFFB":"1f446-1f3fb","\uD83D\uDC43\uD83C\uDFFF":"1f443-1f3ff","\uD83D\uDC43\uD83C\uDFFE":"1f443-1f3fe","\uD83D\uDC43\uD83C\uDFFD":"1f443-1f3fd","\uD83D\uDC43\uD83C\uDFFC":"1f443-1f3fc","\uD83D\uDC43\uD83C\uDFFB":"1f443-1f3fb","\uD83D\uDC42\uD83C\uDFFF":"1f442-1f3ff","\uD83D\uDC42\uD83C\uDFFE":"1f442-1f3fe","\uD83D\uDC42\uD83C\uDFFD":"1f442-1f3fd","\uD83D\uDC42\uD83C\uDFFC":"1f442-1f3fc","\uD83D\uDC42\uD83C\uDFFB":"1f442-1f3fb","\uD83C\uDFCB\uD83C\uDFFF":"1f3cb-1f3ff","\uD83C\uDFCB\uD83C\uDFFE":"1f3cb-1f3fe","\uD83C\uDFCB\uD83C\uDFFD":"1f3cb-1f3fd","\uD83C\uDFCB\uD83C\uDFFC":"1f3cb-1f3fc","\uD83C\uDFCB\uD83C\uDFFB":"1f3cb-1f3fb","\uD83C\uDFCA\uD83C\uDFFF":"1f3ca-1f3ff","\uD83C\uDFCA\uD83C\uDFFE":"1f3ca-1f3fe","\uD83C\uDFCA\uD83C\uDFFD":"1f3ca-1f3fd","\uD83C\uDFCA\uD83C\uDFFC":"1f3ca-1f3fc","\uD83C\uDFCA\uD83C\uDFFB":"1f3ca-1f3fb","\uD83C\uDFC7\uD83C\uDFFF":"1f3c7-1f3ff","\uD83C\uDFC7\uD83C\uDFFE":"1f3c7-1f3fe","\uD83C\uDFC7\uD83C\uDFFD":"1f3c7-1f3fd","\uD83C\uDFC7\uD83C\uDFFC":"1f3c7-1f3fc","\uD83C\uDFC7\uD83C\uDFFB":"1f3c7-1f3fb","\uD83C\uDFC4\uD83C\uDFFF":"1f3c4-1f3ff","\uD83C\uDFC4\uD83C\uDFFE":"1f3c4-1f3fe","\uD83C\uDFC4\uD83C\uDFFD":"1f3c4-1f3fd","\uD83C\uDFC4\uD83C\uDFFC":"1f3c4-1f3fc","\uD83C\uDFC4\uD83C\uDFFB":"1f3c4-1f3fb","\uD83C\uDFC3\uD83C\uDFFF":"1f3c3-1f3ff","\uD83C\uDFC3\uD83C\uDFFE":"1f3c3-1f3fe","\uD83C\uDFC3\uD83C\uDFFD":"1f3c3-1f3fd","\uD83C\uDFC3\uD83C\uDFFC":"1f3c3-1f3fc","\uD83C\uDFC3\uD83C\uDFFB":"1f3c3-1f3fb","\uD83C\uDF85\uD83C\uDFFF":"1f385-1f3ff","\uD83C\uDF85\uD83C\uDFFE":"1f385-1f3fe","\uD83C\uDF85\uD83C\uDFFD":"1f385-1f3fd","\uD83C\uDF85\uD83C\uDFFC":"1f385-1f3fc","\uD83C\uDF85\uD83C\uDFFB":"1f385-1f3fb","\uD83C\uDDFF\uD83C\uDDFC":"1f1ff-1f1fc","\uD83C\uDDFF\uD83C\uDDF2":"1f1ff-1f1f2","\uD83C\uDDFF\uD83C\uDDE6":"1f1ff-1f1e6","\uD83C\uDDFE\uD83C\uDDF9":"1f1fe-1f1f9","\uD83C\uDDFE\uD83C\uDDEA":"1f1fe-1f1ea","\uD83C\uDDFD\uD83C\uDDF0":"1f1fd-1f1f0","\uD83C\uDDFC\uD83C\uDDF8":"1f1fc-1f1f8","\uD83C\uDDFC\uD83C\uDDEB":"1f1fc-1f1eb","\uD83C\uDDFB\uD83C\uDDFA":"1f1fb-1f1fa","\uD83C\uDDFB\uD83C\uDDF3":"1f1fb-1f1f3","\uD83C\uDDFB\uD83C\uDDEE":"1f1fb-1f1ee","\uD83C\uDDFB\uD83C\uDDEC":"1f1fb-1f1ec","\uD83C\uDDFB\uD83C\uDDEA":"1f1fb-1f1ea","\uD83C\uDDFB\uD83C\uDDE8":"1f1fb-1f1e8","\uD83C\uDDFB\uD83C\uDDE6":"1f1fb-1f1e6","\uD83C\uDDFA\uD83C\uDDFF":"1f1fa-1f1ff","\uD83C\uDDFA\uD83C\uDDFE":"1f1fa-1f1fe","\uD83C\uDDFA\uD83C\uDDF8":"1f1fa-1f1f8","\uD83C\uDDFA\uD83C\uDDF2":"1f1fa-1f1f2","\uD83C\uDDFA\uD83C\uDDEC":"1f1fa-1f1ec","\uD83C\uDDFA\uD83C\uDDE6":"1f1fa-1f1e6","\uD83C\uDDF9\uD83C\uDDFF":"1f1f9-1f1ff","\uD83C\uDDF9\uD83C\uDDFC":"1f1f9-1f1fc","\uD83C\uDDF9\uD83C\uDDFB":"1f1f9-1f1fb","\uD83C\uDDF9\uD83C\uDDF9":"1f1f9-1f1f9","\uD83C\uDDF9\uD83C\uDDF7":"1f1f9-1f1f7","\uD83C\uDDF9\uD83C\uDDF4":"1f1f9-1f1f4","\uD83C\uDDF9\uD83C\uDDF3":"1f1f9-1f1f3","\uD83C\uDDF9\uD83C\uDDF2":"1f1f9-1f1f2","\uD83C\uDDF9\uD83C\uDDF1":"1f1f9-1f1f1","\uD83C\uDDF9\uD83C\uDDF0":"1f1f9-1f1f0","\uD83C\uDDF9\uD83C\uDDEF":"1f1f9-1f1ef","\uD83C\uDDF9\uD83C\uDDED":"1f1f9-1f1ed","\uD83C\uDDF9\uD83C\uDDEC":"1f1f9-1f1ec","\uD83C\uDDF9\uD83C\uDDEB":"1f1f9-1f1eb","\uD83C\uDDF9\uD83C\uDDE9":"1f1f9-1f1e9","\uD83C\uDDF9\uD83C\uDDE8":"1f1f9-1f1e8","\uD83C\uDDF9\uD83C\uDDE6":"1f1f9-1f1e6","\uD83C\uDDF8\uD83C\uDDFF":"1f1f8-1f1ff","\uD83C\uDDF8\uD83C\uDDFE":"1f1f8-1f1fe","\uD83C\uDDF8\uD83C\uDDFD":"1f1f8-1f1fd","\uD83C\uDDF8\uD83C\uDDFB":"1f1f8-1f1fb","\uD83C\uDDF8\uD83C\uDDF9":"1f1f8-1f1f9","\uD83C\uDDF8\uD83C\uDDF8":"1f1f8-1f1f8","\uD83C\uDDF8\uD83C\uDDF7":"1f1f8-1f1f7","\uD83C\uDDF8\uD83C\uDDF4":"1f1f8-1f1f4","\uD83C\uDDF8\uD83C\uDDF3":"1f1f8-1f1f3","\uD83C\uDDF8\uD83C\uDDF2":"1f1f8-1f1f2","\uD83C\uDDF8\uD83C\uDDF1":"1f1f8-1f1f1","\uD83C\uDDF8\uD83C\uDDF0":"1f1f8-1f1f0","\uD83C\uDDF8\uD83C\uDDEF":"1f1f8-1f1ef","\uD83C\uDDF8\uD83C\uDDEE":"1f1f8-1f1ee","\uD83C\uDDF8\uD83C\uDDED":"1f1f8-1f1ed","\uD83C\uDDF8\uD83C\uDDEC":"1f1f8-1f1ec","\uD83C\uDDF8\uD83C\uDDEA":"1f1f8-1f1ea","\uD83C\uDDF8\uD83C\uDDE9":"1f1f8-1f1e9","\uD83C\uDDF8\uD83C\uDDE8":"1f1f8-1f1e8","\uD83C\uDDF8\uD83C\uDDE7":"1f1f8-1f1e7","\uD83C\uDDF8\uD83C\uDDE6":"1f1f8-1f1e6","\uD83C\uDDF7\uD83C\uDDFC":"1f1f7-1f1fc","\uD83C\uDDF7\uD83C\uDDFA":"1f1f7-1f1fa","\uD83C\uDDF7\uD83C\uDDF8":"1f1f7-1f1f8","\uD83C\uDDF7\uD83C\uDDF4":"1f1f7-1f1f4","\uD83C\uDDF7\uD83C\uDDEA":"1f1f7-1f1ea","\uD83C\uDDF6\uD83C\uDDE6":"1f1f6-1f1e6","\uD83C\uDDF5\uD83C\uDDFE":"1f1f5-1f1fe","\uD83C\uDDF5\uD83C\uDDFC":"1f1f5-1f1fc","\uD83C\uDDF5\uD83C\uDDF9":"1f1f5-1f1f9","\uD83C\uDDF5\uD83C\uDDF8":"1f1f5-1f1f8","\uD83C\uDDF5\uD83C\uDDF7":"1f1f5-1f1f7","\uD83C\uDDF5\uD83C\uDDF3":"1f1f5-1f1f3","\uD83C\uDDF5\uD83C\uDDF2":"1f1f5-1f1f2","\uD83C\uDDF5\uD83C\uDDF1":"1f1f5-1f1f1","\uD83C\uDDF5\uD83C\uDDF0":"1f1f5-1f1f0","\uD83C\uDDF5\uD83C\uDDED":"1f1f5-1f1ed","\uD83C\uDDF5\uD83C\uDDEC":"1f1f5-1f1ec","\uD83C\uDDF5\uD83C\uDDEB":"1f1f5-1f1eb","\uD83C\uDDF5\uD83C\uDDEA":"1f1f5-1f1ea","\uD83C\uDDF5\uD83C\uDDE6":"1f1f5-1f1e6","\uD83C\uDDF4\uD83C\uDDF2":"1f1f4-1f1f2","\uD83C\uDDF3\uD83C\uDDFF":"1f1f3-1f1ff","\uD83C\uDDF3\uD83C\uDDFA":"1f1f3-1f1fa","\uD83C\uDDF3\uD83C\uDDF7":"1f1f3-1f1f7","\uD83C\uDDF3\uD83C\uDDF5":"1f1f3-1f1f5","\uD83C\uDDF3\uD83C\uDDF4":"1f1f3-1f1f4","\uD83C\uDDF3\uD83C\uDDF1":"1f1f3-1f1f1","\uD83C\uDDF3\uD83C\uDDEE":"1f1f3-1f1ee","\uD83C\uDDF3\uD83C\uDDEC":"1f1f3-1f1ec","\uD83C\uDDF3\uD83C\uDDEB":"1f1f3-1f1eb","\uD83C\uDDF3\uD83C\uDDEA":"1f1f3-1f1ea","\uD83C\uDDF3\uD83C\uDDE8":"1f1f3-1f1e8","\uD83C\uDDF3\uD83C\uDDE6":"1f1f3-1f1e6","\uD83C\uDDF2\uD83C\uDDFF":"1f1f2-1f1ff","\uD83C\uDDF2\uD83C\uDDFE":"1f1f2-1f1fe","\uD83C\uDDF2\uD83C\uDDFD":"1f1f2-1f1fd","\uD83C\uDDF2\uD83C\uDDFC":"1f1f2-1f1fc","\uD83C\uDDF2\uD83C\uDDFB":"1f1f2-1f1fb","\uD83C\uDDF2\uD83C\uDDFA":"1f1f2-1f1fa","\uD83C\uDDF2\uD83C\uDDF9":"1f1f2-1f1f9","\uD83C\uDDF2\uD83C\uDDF8":"1f1f2-1f1f8","\uD83C\uDDF2\uD83C\uDDF7":"1f1f2-1f1f7","\uD83C\uDDF2\uD83C\uDDF6":"1f1f2-1f1f6","\uD83C\uDDF2\uD83C\uDDF5":"1f1f2-1f1f5","\uD83C\uDDF2\uD83C\uDDF4":"1f1f2-1f1f4","\uD83C\uDDF2\uD83C\uDDF3":"1f1f2-1f1f3","\uD83C\uDDF2\uD83C\uDDF2":"1f1f2-1f1f2","\uD83C\uDDF2\uD83C\uDDF1":"1f1f2-1f1f1","\uD83C\uDDF2\uD83C\uDDF0":"1f1f2-1f1f0","\uD83C\uDDF2\uD83C\uDDED":"1f1f2-1f1ed","\uD83C\uDDF2\uD83C\uDDEC":"1f1f2-1f1ec","\uD83C\uDDF2\uD83C\uDDEB":"1f1f2-1f1eb","\uD83C\uDDF2\uD83C\uDDEA":"1f1f2-1f1ea","\uD83C\uDDF2\uD83C\uDDE9":"1f1f2-1f1e9","\uD83C\uDDF2\uD83C\uDDE8":"1f1f2-1f1e8","\uD83C\uDDF2\uD83C\uDDE6":"1f1f2-1f1e6","\uD83C\uDDF1\uD83C\uDDFE":"1f1f1-1f1fe","\uD83C\uDDF1\uD83C\uDDFB":"1f1f1-1f1fb","\uD83C\uDDF1\uD83C\uDDFA":"1f1f1-1f1fa","\uD83C\uDDF1\uD83C\uDDF9":"1f1f1-1f1f9","\uD83C\uDDF1\uD83C\uDDF8":"1f1f1-1f1f8","\uD83C\uDDF1\uD83C\uDDF7":"1f1f1-1f1f7","\uD83C\uDDF1\uD83C\uDDF0":"1f1f1-1f1f0","\uD83C\uDDF1\uD83C\uDDEE":"1f1f1-1f1ee","\uD83C\uDDF1\uD83C\uDDE8":"1f1f1-1f1e8","\uD83C\uDDF1\uD83C\uDDE7":"1f1f1-1f1e7","\uD83C\uDDF1\uD83C\uDDE6":"1f1f1-1f1e6","\uD83C\uDDF0\uD83C\uDDFF":"1f1f0-1f1ff","\uD83C\uDDF0\uD83C\uDDFE":"1f1f0-1f1fe","\uD83C\uDDF0\uD83C\uDDFC":"1f1f0-1f1fc","\uD83C\uDDF0\uD83C\uDDF7":"1f1f0-1f1f7","\uD83C\uDDF0\uD83C\uDDF5":"1f1f0-1f1f5","\uD83C\uDDF0\uD83C\uDDF3":"1f1f0-1f1f3","\uD83C\uDDF0\uD83C\uDDF2":"1f1f0-1f1f2","\uD83C\uDDF0\uD83C\uDDEE":"1f1f0-1f1ee","\uD83C\uDDF0\uD83C\uDDED":"1f1f0-1f1ed","\uD83C\uDDF0\uD83C\uDDEC":"1f1f0-1f1ec","\uD83C\uDDF0\uD83C\uDDEA":"1f1f0-1f1ea","\uD83C\uDDEF\uD83C\uDDF5":"1f1ef-1f1f5","\uD83C\uDDEF\uD83C\uDDF4":"1f1ef-1f1f4","\uD83C\uDDEF\uD83C\uDDF2":"1f1ef-1f1f2","\uD83C\uDDEF\uD83C\uDDEA":"1f1ef-1f1ea","\uD83C\uDDEE\uD83C\uDDF9":"1f1ee-1f1f9","\uD83C\uDDEE\uD83C\uDDF8":"1f1ee-1f1f8","\uD83C\uDDEE\uD83C\uDDF7":"1f1ee-1f1f7","\uD83C\uDDEE\uD83C\uDDF6":"1f1ee-1f1f6","\uD83C\uDDEE\uD83C\uDDF4":"1f1ee-1f1f4","\uD83C\uDDEE\uD83C\uDDF3":"1f1ee-1f1f3","\uD83C\uDDEE\uD83C\uDDF2":"1f1ee-1f1f2","\uD83C\uDDEE\uD83C\uDDF1":"1f1ee-1f1f1","\uD83C\uDDEE\uD83C\uDDEA":"1f1ee-1f1ea","\uD83C\uDDEE\uD83C\uDDE9":"1f1ee-1f1e9","\uD83C\uDDEE\uD83C\uDDE8":"1f1ee-1f1e8","\uD83C\uDDED\uD83C\uDDFA":"1f1ed-1f1fa","\uD83C\uDDED\uD83C\uDDF9":"1f1ed-1f1f9","\uD83C\uDDED\uD83C\uDDF7":"1f1ed-1f1f7","\uD83C\uDDED\uD83C\uDDF3":"1f1ed-1f1f3","\uD83C\uDDED\uD83C\uDDF2":"1f1ed-1f1f2","\uD83C\uDDED\uD83C\uDDF0":"1f1ed-1f1f0","\uD83C\uDDEC\uD83C\uDDFE":"1f1ec-1f1fe","\uD83C\uDDEC\uD83C\uDDFC":"1f1ec-1f1fc","\uD83C\uDDEC\uD83C\uDDFA":"1f1ec-1f1fa","\uD83C\uDDEC\uD83C\uDDF9":"1f1ec-1f1f9","\uD83C\uDDEC\uD83C\uDDF8":"1f1ec-1f1f8","\uD83C\uDDEC\uD83C\uDDF7":"1f1ec-1f1f7","\uD83C\uDDEC\uD83C\uDDF6":"1f1ec-1f1f6","\uD83C\uDDEC\uD83C\uDDF5":"1f1ec-1f1f5","\uD83C\uDDEC\uD83C\uDDF3":"1f1ec-1f1f3","\uD83C\uDDEC\uD83C\uDDF2":"1f1ec-1f1f2","\uD83C\uDDEC\uD83C\uDDF1":"1f1ec-1f1f1","\uD83C\uDDEC\uD83C\uDDEE":"1f1ec-1f1ee","\uD83C\uDDEC\uD83C\uDDED":"1f1ec-1f1ed","\uD83C\uDDEC\uD83C\uDDEC":"1f1ec-1f1ec","\uD83C\uDDEC\uD83C\uDDEB":"1f1ec-1f1eb","\uD83C\uDDEC\uD83C\uDDEA":"1f1ec-1f1ea","\uD83C\uDDEC\uD83C\uDDE9":"1f1ec-1f1e9","\uD83C\uDDEC\uD83C\uDDE7":"1f1ec-1f1e7","\uD83C\uDDEC\uD83C\uDDE6":"1f1ec-1f1e6","\uD83C\uDDEB\uD83C\uDDF7":"1f1eb-1f1f7","\uD83C\uDDEB\uD83C\uDDF4":"1f1eb-1f1f4","\uD83C\uDDEB\uD83C\uDDF2":"1f1eb-1f1f2","\uD83C\uDDEB\uD83C\uDDF0":"1f1eb-1f1f0","\uD83C\uDDEB\uD83C\uDDEF":"1f1eb-1f1ef","\uD83C\uDDEB\uD83C\uDDEE":"1f1eb-1f1ee","\uD83C\uDDEA\uD83C\uDDFA":"1f1ea-1f1fa","\uD83C\uDDEA\uD83C\uDDF9":"1f1ea-1f1f9","\uD83C\uDDEA\uD83C\uDDF8":"1f1ea-1f1f8","\uD83C\uDDEA\uD83C\uDDF7":"1f1ea-1f1f7","\uD83C\uDDEA\uD83C\uDDED":"1f1ea-1f1ed","\uD83C\uDDEA\uD83C\uDDEC":"1f1ea-1f1ec","\uD83C\uDDEA\uD83C\uDDEA":"1f1ea-1f1ea","\uD83C\uDDEA\uD83C\uDDE8":"1f1ea-1f1e8","\uD83C\uDDEA\uD83C\uDDE6":"1f1ea-1f1e6","\uD83C\uDDE9\uD83C\uDDFF":"1f1e9-1f1ff","\uD83C\uDDE9\uD83C\uDDF4":"1f1e9-1f1f4","\uD83C\uDDE9\uD83C\uDDF2":"1f1e9-1f1f2","\uD83C\uDDE9\uD83C\uDDF0":"1f1e9-1f1f0","\uD83C\uDDE9\uD83C\uDDEF":"1f1e9-1f1ef","\uD83C\uDDE9\uD83C\uDDEC":"1f1e9-1f1ec","\uD83C\uDDE9\uD83C\uDDEA":"1f1e9-1f1ea","\uD83C\uDDE8\uD83C\uDDFF":"1f1e8-1f1ff","\uD83C\uDDE8\uD83C\uDDFE":"1f1e8-1f1fe","\uD83C\uDDE8\uD83C\uDDFD":"1f1e8-1f1fd","\uD83C\uDDE8\uD83C\uDDFC":"1f1e8-1f1fc","\uD83C\uDDE8\uD83C\uDDFB":"1f1e8-1f1fb","\uD83C\uDDE8\uD83C\uDDFA":"1f1e8-1f1fa","\uD83C\uDDE8\uD83C\uDDF7":"1f1e8-1f1f7","\uD83C\uDDE8\uD83C\uDDF5":"1f1e8-1f1f5","\uD83C\uDDE8\uD83C\uDDF4":"1f1e8-1f1f4","\uD83C\uDDE8\uD83C\uDDF3":"1f1e8-1f1f3","\uD83C\uDDE8\uD83C\uDDF2":"1f1e8-1f1f2","\uD83C\uDDE8\uD83C\uDDF1":"1f1e8-1f1f1","\uD83C\uDDE8\uD83C\uDDF0":"1f1e8-1f1f0","\uD83C\uDDE8\uD83C\uDDEE":"1f1e8-1f1ee","\uD83C\uDDE8\uD83C\uDDED":"1f1e8-1f1ed","\uD83C\uDDE8\uD83C\uDDEC":"1f1e8-1f1ec","\uD83C\uDDE8\uD83C\uDDEB":"1f1e8-1f1eb","\uD83C\uDDE8\uD83C\uDDE9":"1f1e8-1f1e9","\uD83C\uDDE8\uD83C\uDDE8":"1f1e8-1f1e8","\uD83C\uDDE8\uD83C\uDDE6":"1f1e8-1f1e6","\uD83C\uDDE7\uD83C\uDDFF":"1f1e7-1f1ff","\uD83C\uDDE7\uD83C\uDDFE":"1f1e7-1f1fe","\uD83C\uDDE7\uD83C\uDDFC":"1f1e7-1f1fc","\uD83C\uDDE7\uD83C\uDDFB":"1f1e7-1f1fb","\uD83C\uDDE7\uD83C\uDDF9":"1f1e7-1f1f9","\uD83C\uDDE7\uD83C\uDDF8":"1f1e7-1f1f8","\uD83C\uDDE7\uD83C\uDDF7":"1f1e7-1f1f7","\uD83C\uDDE7\uD83C\uDDF6":"1f1e7-1f1f6","\uD83C\uDDE7\uD83C\uDDF4":"1f1e7-1f1f4","\uD83C\uDDE7\uD83C\uDDF3":"1f1e7-1f1f3","\uD83C\uDDE7\uD83C\uDDF2":"1f1e7-1f1f2","\uD83C\uDDE7\uD83C\uDDF1":"1f1e7-1f1f1","\uD83C\uDDE7\uD83C\uDDEF":"1f1e7-1f1ef","\uD83C\uDDE7\uD83C\uDDEE":"1f1e7-1f1ee","\uD83C\uDDE7\uD83C\uDDED":"1f1e7-1f1ed","\uD83C\uDDE7\uD83C\uDDEC":"1f1e7-1f1ec","\uD83C\uDDE7\uD83C\uDDEB":"1f1e7-1f1eb","\uD83C\uDDE7\uD83C\uDDEA":"1f1e7-1f1ea","\uD83C\uDDE7\uD83C\uDDE9":"1f1e7-1f1e9","\uD83C\uDDE7\uD83C\uDDE7":"1f1e7-1f1e7","\uD83C\uDDE7\uD83C\uDDE6":"1f1e7-1f1e6","\uD83C\uDDE6\uD83C\uDDFF":"1f1e6-1f1ff","\uD83C\uDDE6\uD83C\uDDFD":"1f1e6-1f1fd","\uD83C\uDDE6\uD83C\uDDFC":"1f1e6-1f1fc","\uD83C\uDDE6\uD83C\uDDFA":"1f1e6-1f1fa","\uD83C\uDDE6\uD83C\uDDF9":"1f1e6-1f1f9","\uD83C\uDDE6\uD83C\uDDF8":"1f1e6-1f1f8","\uD83C\uDDE6\uD83C\uDDF7":"1f1e6-1f1f7","\uD83C\uDDE6\uD83C\uDDF6":"1f1e6-1f1f6","\uD83C\uDDE6\uD83C\uDDF4":"1f1e6-1f1f4","\uD83C\uDDE6\uD83C\uDDF2":"1f1e6-1f1f2","\uD83C\uDDE6\uD83C\uDDF1":"1f1e6-1f1f1","\uD83C\uDDE6\uD83C\uDDEE":"1f1e6-1f1ee","\uD83C\uDDE6\uD83C\uDDEC":"1f1e6-1f1ec","\uD83C\uDDE6\uD83C\uDDEB":"1f1e6-1f1eb","\uD83C\uDDE6\uD83C\uDDEA":"1f1e6-1f1ea","\uD83C\uDDE6\uD83C\uDDE9":"1f1e6-1f1e9","\uD83C\uDDE6\uD83C\uDDE8":"1f1e6-1f1e8","\uD83C\uDC04\uFE0F":"1f004-fe0f","\uD83C\uDC04":"1f004","\uD83C\uDD7F\uFE0F":"1f17f-fe0f","\uD83C\uDD7F":"1f17f","\uD83C\uDE02\uFE0F":"1f202-fe0f","\uD83C\uDE02":"1f202","\uD83C\uDE1A\uFE0F":"1f21a-fe0f","\uD83C\uDE1A":"1f21a","\uD83C\uDE2F\uFE0F":"1f22f-fe0f","\uD83C\uDE2F":"1f22f","\uD83C\uDE37\uFE0F":"1f237-fe0f","\uD83C\uDE37":"1f237","\uD83C\uDF9E\uFE0F":"1f39e-fe0f","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F\uFE0F":"1f39f-fe0f","\uD83C\uDF9F":"1f39f","\uD83C\uDFCB\uFE0F":"1f3cb-fe0f","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC\uFE0F":"1f3cc-fe0f","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD\uFE0F":"1f3cd-fe0f","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE\uFE0F":"1f3ce-fe0f","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96\uFE0F":"1f396-fe0f","\uD83C\uDF96":"1f396","\uD83C\uDF97\uFE0F":"1f397-fe0f","\uD83C\uDF97":"1f397","\uD83C\uDF36\uFE0F":"1f336-fe0f","\uD83C\uDF36":"1f336","\uD83C\uDF27\uFE0F":"1f327-fe0f","\uD83C\uDF27":"1f327","\uD83C\uDF28\uFE0F":"1f328-fe0f","\uD83C\uDF28":"1f328","\uD83C\uDF29\uFE0F":"1f329-fe0f","\uD83C\uDF29":"1f329","\uD83C\uDF2A\uFE0F":"1f32a-fe0f","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B\uFE0F":"1f32b-fe0f","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C\uFE0F":"1f32c-fe0f","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F\uFE0F":"1f43f-fe0f","\uD83D\uDC3F":"1f43f","\uD83D\uDD77\uFE0F":"1f577-fe0f","\uD83D\uDD77":"1f577","\uD83D\uDD78\uFE0F":"1f578-fe0f","\uD83D\uDD78":"1f578","\uD83C\uDF21\uFE0F":"1f321-fe0f","\uD83C\uDF21":"1f321","\uD83C\uDF99\uFE0F":"1f399-fe0f","\uD83C\uDF99":"1f399","\uD83C\uDF9A\uFE0F":"1f39a-fe0f","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B\uFE0F":"1f39b-fe0f","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3\uFE0F":"1f3f3-fe0f","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF5\uFE0F":"1f3f5-fe0f","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7\uFE0F":"1f3f7-fe0f","\uD83C\uDFF7":"1f3f7","\uD83D\uDCFD\uFE0F":"1f4fd-fe0f","\uD83D\uDCFD":"1f4fd","\uD83D\uDD49\uFE0F":"1f549-fe0f","\uD83D\uDD49":"1f549","\uD83D\uDD4A\uFE0F":"1f54a-fe0f","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F\uFE0F":"1f56f-fe0f","\uD83D\uDD6F":"1f56f","\uD83D\uDD70\uFE0F":"1f570-fe0f","\uD83D\uDD70":"1f570","\uD83D\uDD73\uFE0F":"1f573-fe0f","\uD83D\uDD73":"1f573","\uD83D\uDD76\uFE0F":"1f576-fe0f","\uD83D\uDD76":"1f576","\uD83D\uDD79\uFE0F":"1f579-fe0f","\uD83D\uDD79":"1f579","\uD83D\uDD87\uFE0F":"1f587-fe0f","\uD83D\uDD87":"1f587","\uD83D\uDD8A\uFE0F":"1f58a-fe0f","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B\uFE0F":"1f58b-fe0f","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C\uFE0F":"1f58c-fe0f","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D\uFE0F":"1f58d-fe0f","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5\uFE0F":"1f5a5-fe0f","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8\uFE0F":"1f5a8-fe0f","\uD83D\uDDA8":"1f5a8","\uD83D\uDDB2\uFE0F":"1f5b2-fe0f","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC\uFE0F":"1f5bc-fe0f","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2\uFE0F":"1f5c2-fe0f","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3\uFE0F":"1f5c3-fe0f","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4\uFE0F":"1f5c4-fe0f","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1\uFE0F":"1f5d1-fe0f","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2\uFE0F":"1f5d2-fe0f","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3\uFE0F":"1f5d3-fe0f","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC\uFE0F":"1f5dc-fe0f","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD\uFE0F":"1f5dd-fe0f","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE\uFE0F":"1f5de-fe0f","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1\uFE0F":"1f5e1-fe0f","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3\uFE0F":"1f5e3-fe0f","\uD83D\uDDE3":"1f5e3","\uD83D\uDDE8\uFE0F":"1f5e8-fe0f","\uD83D\uDDE8":"1f5e8","\uD83D\uDDEF\uFE0F":"1f5ef-fe0f","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3\uFE0F":"1f5f3-fe0f","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA\uFE0F":"1f5fa-fe0f","\uD83D\uDDFA":"1f5fa","\uD83D\uDEE0\uFE0F":"1f6e0-fe0f","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1\uFE0F":"1f6e1-fe0f","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2\uFE0F":"1f6e2-fe0f","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0\uFE0F":"1f6f0-fe0f","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D\uFE0F":"1f37d-fe0f","\uD83C\uDF7D":"1f37d","\uD83D\uDC41\uFE0F":"1f441-fe0f","\uD83D\uDC41":"1f441","\uD83D\uDD74\uFE0F":"1f574-fe0f","\uD83D\uDD74":"1f574","\uD83D\uDD75\uFE0F":"1f575-fe0f","\uD83D\uDD75":"1f575","\uD83D\uDD90\uFE0F":"1f590-fe0f","\uD83D\uDD90":"1f590","\uD83C\uDFD4\uFE0F":"1f3d4-fe0f","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5\uFE0F":"1f3d5-fe0f","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6\uFE0F":"1f3d6-fe0f","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7\uFE0F":"1f3d7-fe0f","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8\uFE0F":"1f3d8-fe0f","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9\uFE0F":"1f3d9-fe0f","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA\uFE0F":"1f3da-fe0f","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB\uFE0F":"1f3db-fe0f","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC\uFE0F":"1f3dc-fe0f","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD\uFE0F":"1f3dd-fe0f","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE\uFE0F":"1f3de-fe0f","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF\uFE0F":"1f3df-fe0f","\uD83C\uDFDF":"1f3df","\uD83D\uDECB\uFE0F":"1f6cb-fe0f","\uD83D\uDECB":"1f6cb","\uD83D\uDECD\uFE0F":"1f6cd-fe0f","\uD83D\uDECD":"1f6cd","\uD83D\uDECE\uFE0F":"1f6ce-fe0f","\uD83D\uDECE":"1f6ce","\uD83D\uDECF\uFE0F":"1f6cf-fe0f","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3\uFE0F":"1f6e3-fe0f","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4\uFE0F":"1f6e4-fe0f","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5\uFE0F":"1f6e5-fe0f","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9\uFE0F":"1f6e9-fe0f","\uD83D\uDEE9":"1f6e9","\uD83D\uDEF3\uFE0F":"1f6f3-fe0f","\uD83D\uDEF3":"1f6f3","\uD83C\uDF24\uFE0F":"1f324-fe0f","\uD83C\uDF24":"1f324","\uD83C\uDF25\uFE0F":"1f325-fe0f","\uD83C\uDF25":"1f325","\uD83C\uDF26\uFE0F":"1f326-fe0f","\uD83C\uDF26":"1f326","\uD83D\uDDB1\uFE0F":"1f5b1-fe0f","\uD83D\uDDB1":"1f5b1","\u261D\uD83C\uDFFB":"261d-1f3fb","\u261D\uD83C\uDFFC":"261d-1f3fc","\u261D\uD83C\uDFFD":"261d-1f3fd","\u261D\uD83C\uDFFE":"261d-1f3fe","\u261D\uD83C\uDFFF":"261d-1f3ff","\u270C\uD83C\uDFFB":"270c-1f3fb","\u270C\uD83C\uDFFC":"270c-1f3fc","\u270C\uD83C\uDFFD":"270c-1f3fd","\u270C\uD83C\uDFFE":"270c-1f3fe","\u270C\uD83C\uDFFF":"270c-1f3ff","\u270A\uD83C\uDFFB":"270a-1f3fb","\u270A\uD83C\uDFFC":"270a-1f3fc","\u270A\uD83C\uDFFD":"270a-1f3fd","\u270A\uD83C\uDFFE":"270a-1f3fe","\u270A\uD83C\uDFFF":"270a-1f3ff","\u270B\uD83C\uDFFB":"270b-1f3fb","\u270B\uD83C\uDFFC":"270b-1f3fc","\u270B\uD83C\uDFFD":"270b-1f3fd","\u270B\uD83C\uDFFE":"270b-1f3fe","\u270B\uD83C\uDFFF":"270b-1f3ff","\u270D\uD83C\uDFFB":"270d-1f3fb","\u270D\uD83C\uDFFC":"270d-1f3fc","\u270D\uD83C\uDFFD":"270d-1f3fd","\u270D\uD83C\uDFFE":"270d-1f3fe","\u270D\uD83C\uDFFF":"270d-1f3ff","\u26F9\uD83C\uDFFB":"26f9-1f3fb","\u26F9\uD83C\uDFFC":"26f9-1f3fc","\u26F9\uD83C\uDFFD":"26f9-1f3fd","\u26F9\uD83C\uDFFE":"26f9-1f3fe","\u26F9\uD83C\uDFFF":"26f9-1f3ff","\u00A9\uFE0F":"00a9-fe0f","\u00A9":"00a9","\u00AE\uFE0F":"00ae-fe0f","\u00AE":"00ae","\u203C\uFE0F":"203c-fe0f","\u203C":"203c","\u2049\uFE0F":"2049-fe0f","\u2049":"2049","\u2122\uFE0F":"2122-fe0f","\u2122":"2122","\u2139\uFE0F":"2139-fe0f","\u2139":"2139","\u2194\uFE0F":"2194-fe0f","\u2194":"2194","\u2195\uFE0F":"2195-fe0f","\u2195":"2195","\u2196\uFE0F":"2196-fe0f","\u2196":"2196","\u2197\uFE0F":"2197-fe0f","\u2197":"2197","\u2198\uFE0F":"2198-fe0f","\u2198":"2198","\u2199\uFE0F":"2199-fe0f","\u2199":"2199","\u21A9\uFE0F":"21a9-fe0f","\u21A9":"21a9","\u21AA\uFE0F":"21aa-fe0f","\u21AA":"21aa","\u231A\uFE0F":"231a-fe0f","\u231A":"231a","\u231B\uFE0F":"231b-fe0f","\u231B":"231b","\u24C2\uFE0F":"24c2-fe0f","\u24C2":"24c2","\u25AA\uFE0F":"25aa-fe0f","\u25AA":"25aa","\u25AB\uFE0F":"25ab-fe0f","\u25AB":"25ab","\u25B6\uFE0F":"25b6-fe0f","\u25B6":"25b6","\u25C0\uFE0F":"25c0-fe0f","\u25C0":"25c0","\u25FB\uFE0F":"25fb-fe0f","\u25FB":"25fb","\u25FC\uFE0F":"25fc-fe0f","\u25FC":"25fc","\u25FD\uFE0F":"25fd-fe0f","\u25FD":"25fd","\u25FE\uFE0F":"25fe-fe0f","\u25FE":"25fe","\u2600\uFE0F":"2600-fe0f","\u2600":"2600","\u2601\uFE0F":"2601-fe0f","\u2601":"2601","\u260E\uFE0F":"260e-fe0f","\u260E":"260e","\u2611\uFE0F":"2611-fe0f","\u2611":"2611","\u2614\uFE0F":"2614-fe0f","\u2614":"2614","\u2615\uFE0F":"2615-fe0f","\u2615":"2615","\u261D\uFE0F":"261d-fe0f","\u261D":"261d","\u263A\uFE0F":"263a-fe0f","\u263A":"263a","\u2648\uFE0F":"2648-fe0f","\u2648":"2648","\u2649\uFE0F":"2649-fe0f","\u2649":"2649","\u264A\uFE0F":"264a-fe0f","\u264A":"264a","\u264B\uFE0F":"264b-fe0f","\u264B":"264b","\u264C\uFE0F":"264c-fe0f","\u264C":"264c","\u264D\uFE0F":"264d-fe0f","\u264D":"264d","\u264E\uFE0F":"264e-fe0f","\u264E":"264e","\u264F\uFE0F":"264f-fe0f","\u264F":"264f","\u2650\uFE0F":"2650-fe0f","\u2650":"2650","\u2651\uFE0F":"2651-fe0f","\u2651":"2651","\u2652\uFE0F":"2652-fe0f","\u2652":"2652","\u2653\uFE0F":"2653-fe0f","\u2653":"2653","\u2660\uFE0F":"2660-fe0f","\u2660":"2660","\u2663\uFE0F":"2663-fe0f","\u2663":"2663","\u2665\uFE0F":"2665-fe0f","\u2665":"2665","\u2666\uFE0F":"2666-fe0f","\u2666":"2666","\u2668\uFE0F":"2668-fe0f","\u2668":"2668","\u267B\uFE0F":"267b-fe0f","\u267B":"267b","\u267F\uFE0F":"267f-fe0f","\u267F":"267f","\u2693\uFE0F":"2693-fe0f","\u2693":"2693","\u26A0\uFE0F":"26a0-fe0f","\u26A0":"26a0","\u26A1\uFE0F":"26a1-fe0f","\u26A1":"26a1","\u26AA\uFE0F":"26aa-fe0f","\u26AA":"26aa","\u26AB\uFE0F":"26ab-fe0f","\u26AB":"26ab","\u26BD\uFE0F":"26bd-fe0f","\u26BD":"26bd","\u26BE\uFE0F":"26be-fe0f","\u26BE":"26be","\u26C4\uFE0F":"26c4-fe0f","\u26C4":"26c4","\u26C5\uFE0F":"26c5-fe0f","\u26C5":"26c5","\u26D4\uFE0F":"26d4-fe0f","\u26D4":"26d4","\u26EA\uFE0F":"26ea-fe0f","\u26EA":"26ea","\u26F2\uFE0F":"26f2-fe0f","\u26F2":"26f2","\u26F3\uFE0F":"26f3-fe0f","\u26F3":"26f3","\u26F5\uFE0F":"26f5-fe0f","\u26F5":"26f5","\u26FA\uFE0F":"26fa-fe0f","\u26FA":"26fa","\u26FD\uFE0F":"26fd-fe0f","\u26FD":"26fd","\u2702\uFE0F":"2702-fe0f","\u2702":"2702","\u2708\uFE0F":"2708-fe0f","\u2708":"2708","\u2709\uFE0F":"2709-fe0f","\u2709":"2709","\u270C\uFE0F":"270c-fe0f","\u270C":"270c","\u270F\uFE0F":"270f-fe0f","\u270F":"270f","\u2712\uFE0F":"2712-fe0f","\u2712":"2712","\u2714\uFE0F":"2714-fe0f","\u2714":"2714","\u2716\uFE0F":"2716-fe0f","\u2716":"2716","\u2733\uFE0F":"2733-fe0f","\u2733":"2733","\u2734\uFE0F":"2734-fe0f","\u2734":"2734","\u2744\uFE0F":"2744-fe0f","\u2744":"2744","\u2747\uFE0F":"2747-fe0f","\u2747":"2747","\u2757\uFE0F":"2757-fe0f","\u2757":"2757","\u2764\uFE0F":"2764-fe0f","\u2764":"2764","\u27A1\uFE0F":"27a1-fe0f","\u27A1":"27a1","\u2934\uFE0F":"2934-fe0f","\u2934":"2934","\u2935\uFE0F":"2935-fe0f","\u2935":"2935","\u2B05\uFE0F":"2b05-fe0f","\u2B05":"2b05","\u2B06\uFE0F":"2b06-fe0f","\u2B06":"2b06","\u2B07\uFE0F":"2b07-fe0f","\u2B07":"2b07","\u2B1B\uFE0F":"2b1b-fe0f","\u2B1B":"2b1b","\u2B1C\uFE0F":"2b1c-fe0f","\u2B1C":"2b1c","\u2B50\uFE0F":"2b50-fe0f","\u2B50":"2b50","\u2B55\uFE0F":"2b55-fe0f","\u2B55":"2b55","\u3030\uFE0F":"3030-fe0f","\u3030":"3030","\u303D\uFE0F":"303d-fe0f","\u303D":"303d","\u3297\uFE0F":"3297-fe0f","\u3297":"3297","\u3299\uFE0F":"3299-fe0f","\u3299":"3299","\u271D\uFE0F":"271d-fe0f","\u271D":"271d","\u2328\uFE0F":"2328-fe0f","\u2328":"2328","\u270D\uFE0F":"270d-fe0f","\u270D":"270d","\u23CF\uFE0F":"23cf-fe0f","\u23CF":"23cf","\u23ED\uFE0F":"23ed-fe0f","\u23ED":"23ed","\u23EE\uFE0F":"23ee-fe0f","\u23EE":"23ee","\u23EF\uFE0F":"23ef-fe0f","\u23EF":"23ef","\u23F1\uFE0F":"23f1-fe0f","\u23F1":"23f1","\u23F2\uFE0F":"23f2-fe0f","\u23F2":"23f2","\u23F8\uFE0F":"23f8-fe0f","\u23F8":"23f8","\u23F9\uFE0F":"23f9-fe0f","\u23F9":"23f9","\u23FA\uFE0F":"23fa-fe0f","\u23FA":"23fa","\u2602\uFE0F":"2602-fe0f","\u2602":"2602","\u2603\uFE0F":"2603-fe0f","\u2603":"2603","\u2604\uFE0F":"2604-fe0f","\u2604":"2604","\u2618\uFE0F":"2618-fe0f","\u2618":"2618","\u2620\uFE0F":"2620-fe0f","\u2620":"2620","\u2622\uFE0F":"2622-fe0f","\u2622":"2622","\u2623\uFE0F":"2623-fe0f","\u2623":"2623","\u2626\uFE0F":"2626-fe0f","\u2626":"2626","\u262A\uFE0F":"262a-fe0f","\u262A":"262a","\u262E\uFE0F":"262e-fe0f","\u262E":"262e","\u262F\uFE0F":"262f-fe0f","\u262F":"262f","\u2638\uFE0F":"2638-fe0f","\u2638":"2638","\u2639\uFE0F":"2639-fe0f","\u2639":"2639","\u2692\uFE0F":"2692-fe0f","\u2692":"2692","\u2694\uFE0F":"2694-fe0f","\u2694":"2694","\u2696\uFE0F":"2696-fe0f","\u2696":"2696","\u2697\uFE0F":"2697-fe0f","\u2697":"2697","\u2699\uFE0F":"2699-fe0f","\u2699":"2699","\u269B\uFE0F":"269b-fe0f","\u269B":"269b","\u269C\uFE0F":"269c-fe0f","\u269C":"269c","\u26B0\uFE0F":"26b0-fe0f","\u26B0":"26b0","\u26B1\uFE0F":"26b1-fe0f","\u26B1":"26b1","\u26C8\uFE0F":"26c8-fe0f","\u26C8":"26c8","\u26CF\uFE0F":"26cf-fe0f","\u26CF":"26cf","\u26D1\uFE0F":"26d1-fe0f","\u26D1":"26d1","\u26D3\uFE0F":"26d3-fe0f","\u26D3":"26d3","\u26E9\uFE0F":"26e9-fe0f","\u26E9":"26e9","\u26F0\uFE0F":"26f0-fe0f","\u26F0":"26f0","\u26F1\uFE0F":"26f1-fe0f","\u26F1":"26f1","\u26F4\uFE0F":"26f4-fe0f","\u26F4":"26f4","\u26F7\uFE0F":"26f7-fe0f","\u26F7":"26f7","\u26F8\uFE0F":"26f8-fe0f","\u26F8":"26f8","\u26F9\uFE0F":"26f9-fe0f","\u26F9":"26f9","\u2721\uFE0F":"2721-fe0f","\u2721":"2721","\u2763\uFE0F":"2763-fe0f","\u2763":"2763","\uD83E\uDD49":"1f949","\uD83E\uDD48":"1f948","\uD83E\uDD47":"1f947","\uD83E\uDD3A":"1f93a","\uD83E\uDD45":"1f945","\uD83E\uDD3E":"1f93e","\uD83C\uDDFF":"1f1ff","\uD83E\uDD3D":"1f93d","\uD83E\uDD4B":"1f94b","\uD83E\uDD4A":"1f94a","\uD83E\uDD3C":"1f93c","\uD83E\uDD39":"1f939","\uD83E\uDD38":"1f938","\uD83D\uDEF6":"1f6f6","\uD83D\uDEF5":"1f6f5","\uD83D\uDEF4":"1f6f4","\uD83D\uDED2":"1f6d2","\uD83C\uDCCF":"1f0cf","\uD83C\uDD70":"1f170","\uD83C\uDD71":"1f171","\uD83C\uDD7E":"1f17e","\uD83D\uDED1":"1f6d1","\uD83C\uDD8E":"1f18e","\uD83C\uDD91":"1f191","\uD83C\uDDFE":"1f1fe","\uD83C\uDD92":"1f192","\uD83C\uDD93":"1f193","\uD83C\uDD94":"1f194","\uD83C\uDD95":"1f195","\uD83C\uDD96":"1f196","\uD83C\uDD97":"1f197","\uD83C\uDD98":"1f198","\uD83E\uDD44":"1f944","\uD83C\uDD99":"1f199","\uD83C\uDD9A":"1f19a","\uD83E\uDD42":"1f942","\uD83E\uDD43":"1f943","\uD83C\uDE01":"1f201","\uD83E\uDD59":"1f959","\uD83C\uDE32":"1f232","\uD83C\uDE33":"1f233","\uD83C\uDE34":"1f234","\uD83C\uDE35":"1f235","\uD83C\uDE36":"1f236","\uD83E\uDD58":"1f958","\uD83C\uDE38":"1f238","\uD83C\uDE39":"1f239","\uD83E\uDD57":"1f957","\uD83C\uDE3A":"1f23a","\uD83C\uDE50":"1f250","\uD83C\uDE51":"1f251","\uD83C\uDF00":"1f300","\uD83E\uDD56":"1f956","\uD83C\uDF01":"1f301","\uD83C\uDF02":"1f302","\uD83C\uDF03":"1f303","\uD83C\uDF04":"1f304","\uD83C\uDF05":"1f305","\uD83C\uDF06":"1f306","\uD83E\uDD55":"1f955","\uD83C\uDF07":"1f307","\uD83C\uDF08":"1f308","\uD83E\uDD54":"1f954","\uD83C\uDF09":"1f309","\uD83C\uDF0A":"1f30a","\uD83C\uDF0B":"1f30b","\uD83C\uDF0C":"1f30c","\uD83C\uDF0F":"1f30f","\uD83C\uDF11":"1f311","\uD83E\uDD53":"1f953","\uD83C\uDF13":"1f313","\uD83C\uDF14":"1f314","\uD83C\uDF15":"1f315","\uD83C\uDF19":"1f319","\uD83C\uDF1B":"1f31b","\uD83C\uDF1F":"1f31f","\uD83E\uDD52":"1f952","\uD83C\uDF20":"1f320","\uD83C\uDF30":"1f330","\uD83E\uDD51":"1f951","\uD83C\uDF31":"1f331","\uD83C\uDF34":"1f334","\uD83C\uDF35":"1f335","\uD83C\uDF37":"1f337","\uD83C\uDF38":"1f338","\uD83C\uDF39":"1f339","\uD83C\uDF3A":"1f33a","\uD83C\uDF3B":"1f33b","\uD83C\uDF3C":"1f33c","\uD83C\uDF3D":"1f33d","\uD83E\uDD50":"1f950","\uD83C\uDF3E":"1f33e","\uD83C\uDF3F":"1f33f","\uD83C\uDF40":"1f340","\uD83C\uDF41":"1f341","\uD83C\uDF42":"1f342","\uD83C\uDF43":"1f343","\uD83C\uDF44":"1f344","\uD83C\uDF45":"1f345","\uD83C\uDF46":"1f346","\uD83C\uDF47":"1f347","\uD83C\uDF48":"1f348","\uD83C\uDF49":"1f349","\uD83C\uDF4A":"1f34a","\uD83E\uDD40":"1f940","\uD83C\uDF4C":"1f34c","\uD83C\uDF4D":"1f34d","\uD83C\uDF4E":"1f34e","\uD83C\uDF4F":"1f34f","\uD83C\uDF51":"1f351","\uD83C\uDF52":"1f352","\uD83C\uDF53":"1f353","\uD83E\uDD8F":"1f98f","\uD83C\uDF54":"1f354","\uD83C\uDF55":"1f355","\uD83C\uDF56":"1f356","\uD83E\uDD8E":"1f98e","\uD83C\uDF57":"1f357","\uD83C\uDF58":"1f358","\uD83C\uDF59":"1f359","\uD83E\uDD8D":"1f98d","\uD83C\uDF5A":"1f35a","\uD83C\uDF5B":"1f35b","\uD83E\uDD8C":"1f98c","\uD83C\uDF5C":"1f35c","\uD83C\uDF5D":"1f35d","\uD83C\uDF5E":"1f35e","\uD83C\uDF5F":"1f35f","\uD83E\uDD8B":"1f98b","\uD83C\uDF60":"1f360","\uD83C\uDF61":"1f361","\uD83E\uDD8A":"1f98a","\uD83C\uDF62":"1f362","\uD83C\uDF63":"1f363","\uD83E\uDD89":"1f989","\uD83C\uDF64":"1f364","\uD83C\uDF65":"1f365","\uD83E\uDD88":"1f988","\uD83C\uDF66":"1f366","\uD83E\uDD87":"1f987","\uD83C\uDF67":"1f367","\uD83C\uDDFD":"1f1fd","\uD83C\uDF68":"1f368","\uD83E\uDD86":"1f986","\uD83C\uDF69":"1f369","\uD83E\uDD85":"1f985","\uD83C\uDF6A":"1f36a","\uD83D\uDDA4":"1f5a4","\uD83C\uDF6B":"1f36b","\uD83C\uDF6C":"1f36c","\uD83C\uDF6D":"1f36d","\uD83C\uDF6E":"1f36e","\uD83C\uDF6F":"1f36f","\uD83E\uDD1E":"1f91e","\uD83C\uDF70":"1f370","\uD83C\uDF71":"1f371","\uD83C\uDF72":"1f372","\uD83E\uDD1D":"1f91d","\uD83C\uDF73":"1f373","\uD83C\uDF74":"1f374","\uD83C\uDF75":"1f375","\uD83C\uDF76":"1f376","\uD83C\uDF77":"1f377","\uD83C\uDF78":"1f378","\uD83C\uDF79":"1f379","\uD83C\uDF7A":"1f37a","\uD83C\uDF7B":"1f37b","\uD83C\uDF80":"1f380","\uD83C\uDF81":"1f381","\uD83C\uDF82":"1f382","\uD83C\uDF83":"1f383","\uD83E\uDD1B":"1f91b","\uD83E\uDD1C":"1f91c","\uD83C\uDF84":"1f384","\uD83C\uDF85":"1f385","\uD83C\uDF86":"1f386","\uD83E\uDD1A":"1f91a","\uD83C\uDF87":"1f387","\uD83C\uDF88":"1f388","\uD83C\uDF89":"1f389","\uD83C\uDF8A":"1f38a","\uD83C\uDF8B":"1f38b","\uD83C\uDF8C":"1f38c","\uD83E\uDD19":"1f919","\uD83C\uDF8D":"1f38d","\uD83D\uDD7A":"1f57a","\uD83C\uDF8E":"1f38e","\uD83E\uDD33":"1f933","\uD83C\uDF8F":"1f38f","\uD83E\uDD30":"1f930","\uD83C\uDF90":"1f390","\uD83E\uDD26":"1f926","\uD83E\uDD37":"1f937","\uD83C\uDF91":"1f391","\uD83C\uDF92":"1f392","\uD83C\uDF93":"1f393","\uD83C\uDFA0":"1f3a0","\uD83C\uDFA1":"1f3a1","\uD83C\uDFA2":"1f3a2","\uD83C\uDFA3":"1f3a3","\uD83C\uDFA4":"1f3a4","\uD83C\uDFA5":"1f3a5","\uD83C\uDFA6":"1f3a6","\uD83C\uDFA7":"1f3a7","\uD83E\uDD36":"1f936","\uD83C\uDFA8":"1f3a8","\uD83E\uDD35":"1f935","\uD83C\uDFA9":"1f3a9","\uD83C\uDFAA":"1f3aa","\uD83E\uDD34":"1f934","\uD83C\uDFAB":"1f3ab","\uD83C\uDFAC":"1f3ac","\uD83C\uDFAD":"1f3ad","\uD83E\uDD27":"1f927","\uD83C\uDFAE":"1f3ae","\uD83C\uDFAF":"1f3af","\uD83C\uDFB0":"1f3b0","\uD83C\uDFB1":"1f3b1","\uD83C\uDFB2":"1f3b2","\uD83C\uDFB3":"1f3b3","\uD83C\uDFB4":"1f3b4","\uD83E\uDD25":"1f925","\uD83C\uDFB5":"1f3b5","\uD83C\uDFB6":"1f3b6","\uD83C\uDFB7":"1f3b7","\uD83E\uDD24":"1f924","\uD83C\uDFB8":"1f3b8","\uD83C\uDFB9":"1f3b9","\uD83C\uDFBA":"1f3ba","\uD83E\uDD23":"1f923","\uD83C\uDFBB":"1f3bb","\uD83C\uDFBC":"1f3bc","\uD83C\uDFBD":"1f3bd","\uD83E\uDD22":"1f922","\uD83C\uDFBE":"1f3be","\uD83C\uDFBF":"1f3bf","\uD83C\uDFC0":"1f3c0","\uD83C\uDFC1":"1f3c1","\uD83E\uDD21":"1f921","\uD83C\uDFC2":"1f3c2","\uD83C\uDFC3":"1f3c3","\uD83C\uDFC4":"1f3c4","\uD83C\uDFC6":"1f3c6","\uD83C\uDFC8":"1f3c8","\uD83C\uDFCA":"1f3ca","\uD83C\uDFE0":"1f3e0","\uD83C\uDFE1":"1f3e1","\uD83C\uDFE2":"1f3e2","\uD83C\uDFE3":"1f3e3","\uD83C\uDFE5":"1f3e5","\uD83C\uDFE6":"1f3e6","\uD83C\uDFE7":"1f3e7","\uD83C\uDFE8":"1f3e8","\uD83C\uDFE9":"1f3e9","\uD83C\uDFEA":"1f3ea","\uD83C\uDFEB":"1f3eb","\uD83C\uDFEC":"1f3ec","\uD83E\uDD20":"1f920","\uD83C\uDFED":"1f3ed","\uD83C\uDFEE":"1f3ee","\uD83C\uDFEF":"1f3ef","\uD83C\uDFF0":"1f3f0","\uD83D\uDC0C":"1f40c","\uD83D\uDC0D":"1f40d","\uD83D\uDC0E":"1f40e","\uD83D\uDC11":"1f411","\uD83D\uDC12":"1f412","\uD83D\uDC14":"1f414","\uD83D\uDC17":"1f417","\uD83D\uDC18":"1f418","\uD83D\uDC19":"1f419","\uD83D\uDC1A":"1f41a","\uD83D\uDC1B":"1f41b","\uD83D\uDC1C":"1f41c","\uD83D\uDC1D":"1f41d","\uD83D\uDC1E":"1f41e","\uD83D\uDC1F":"1f41f","\uD83D\uDC20":"1f420","\uD83D\uDC21":"1f421","\uD83D\uDC22":"1f422","\uD83D\uDC23":"1f423","\uD83D\uDC24":"1f424","\uD83D\uDC25":"1f425","\uD83D\uDC26":"1f426","\uD83D\uDC27":"1f427","\uD83D\uDC28":"1f428","\uD83D\uDC29":"1f429","\uD83D\uDC2B":"1f42b","\uD83D\uDC2C":"1f42c","\uD83D\uDC2D":"1f42d","\uD83D\uDC2E":"1f42e","\uD83D\uDC2F":"1f42f","\uD83D\uDC30":"1f430","\uD83D\uDC31":"1f431","\uD83D\uDC32":"1f432","\uD83D\uDC33":"1f433","\uD83D\uDC34":"1f434","\uD83D\uDC35":"1f435","\uD83D\uDC36":"1f436","\uD83D\uDC37":"1f437","\uD83D\uDC38":"1f438","\uD83D\uDC39":"1f439","\uD83D\uDC3A":"1f43a","\uD83D\uDC3B":"1f43b","\uD83D\uDC3C":"1f43c","\uD83D\uDC3D":"1f43d","\uD83D\uDC3E":"1f43e","\uD83D\uDC40":"1f440","\uD83D\uDC42":"1f442","\uD83D\uDC43":"1f443","\uD83D\uDC44":"1f444","\uD83D\uDC45":"1f445","\uD83D\uDC46":"1f446","\uD83D\uDC47":"1f447","\uD83D\uDC48":"1f448","\uD83D\uDC49":"1f449","\uD83D\uDC4A":"1f44a","\uD83D\uDC4B":"1f44b","\uD83D\uDC4C":"1f44c","\uD83D\uDC4D":"1f44d","\uD83D\uDC4E":"1f44e","\uD83D\uDC4F":"1f44f","\uD83D\uDC50":"1f450","\uD83D\uDC51":"1f451","\uD83D\uDC52":"1f452","\uD83D\uDC53":"1f453","\uD83D\uDC54":"1f454","\uD83D\uDC55":"1f455","\uD83D\uDC56":"1f456","\uD83D\uDC57":"1f457","\uD83D\uDC58":"1f458","\uD83D\uDC59":"1f459","\uD83D\uDC5A":"1f45a","\uD83D\uDC5B":"1f45b","\uD83D\uDC5C":"1f45c","\uD83D\uDC5D":"1f45d","\uD83D\uDC5E":"1f45e","\uD83D\uDC5F":"1f45f","\uD83D\uDC60":"1f460","\uD83D\uDC61":"1f461","\uD83D\uDC62":"1f462","\uD83D\uDC63":"1f463","\uD83D\uDC64":"1f464","\uD83D\uDC66":"1f466","\uD83D\uDC67":"1f467","\uD83D\uDC68":"1f468","\uD83D\uDC69":"1f469","\uD83D\uDC6A":"1f46a","\uD83D\uDC6B":"1f46b","\uD83D\uDC6E":"1f46e","\uD83D\uDC6F":"1f46f","\uD83D\uDC70":"1f470","\uD83D\uDC71":"1f471","\uD83D\uDC72":"1f472","\uD83D\uDC73":"1f473","\uD83D\uDC74":"1f474","\uD83D\uDC75":"1f475","\uD83D\uDC76":"1f476","\uD83D\uDC77":"1f477","\uD83D\uDC78":"1f478","\uD83D\uDC79":"1f479","\uD83D\uDC7A":"1f47a","\uD83D\uDC7B":"1f47b","\uD83D\uDC7C":"1f47c","\uD83D\uDC7D":"1f47d","\uD83D\uDC7E":"1f47e","\uD83D\uDC7F":"1f47f","\uD83D\uDC80":"1f480","\uD83D\uDCC7":"1f4c7","\uD83D\uDC81":"1f481","\uD83D\uDC82":"1f482","\uD83D\uDC83":"1f483","\uD83D\uDC84":"1f484","\uD83D\uDC85":"1f485","\uD83D\uDCD2":"1f4d2","\uD83D\uDC86":"1f486","\uD83D\uDCD3":"1f4d3","\uD83D\uDC87":"1f487","\uD83D\uDCD4":"1f4d4","\uD83D\uDC88":"1f488","\uD83D\uDCD5":"1f4d5","\uD83D\uDC89":"1f489","\uD83D\uDCD6":"1f4d6","\uD83D\uDC8A":"1f48a","\uD83D\uDCD7":"1f4d7","\uD83D\uDC8B":"1f48b","\uD83D\uDCD8":"1f4d8","\uD83D\uDC8C":"1f48c","\uD83D\uDCD9":"1f4d9","\uD83D\uDC8D":"1f48d","\uD83D\uDCDA":"1f4da","\uD83D\uDC8E":"1f48e","\uD83D\uDCDB":"1f4db","\uD83D\uDC8F":"1f48f","\uD83D\uDCDC":"1f4dc","\uD83D\uDC90":"1f490","\uD83D\uDCDD":"1f4dd","\uD83D\uDC91":"1f491","\uD83D\uDCDE":"1f4de","\uD83D\uDC92":"1f492","\uD83D\uDCDF":"1f4df","\uD83D\uDCE0":"1f4e0","\uD83D\uDC93":"1f493","\uD83D\uDCE1":"1f4e1","\uD83D\uDCE2":"1f4e2","\uD83D\uDC94":"1f494","\uD83D\uDCE3":"1f4e3","\uD83D\uDCE4":"1f4e4","\uD83D\uDC95":"1f495","\uD83D\uDCE5":"1f4e5","\uD83D\uDCE6":"1f4e6","\uD83D\uDC96":"1f496","\uD83D\uDCE7":"1f4e7","\uD83D\uDCE8":"1f4e8","\uD83D\uDC97":"1f497","\uD83D\uDCE9":"1f4e9","\uD83D\uDCEA":"1f4ea","\uD83D\uDC98":"1f498","\uD83D\uDCEB":"1f4eb","\uD83D\uDCEE":"1f4ee","\uD83D\uDC99":"1f499","\uD83D\uDCF0":"1f4f0","\uD83D\uDCF1":"1f4f1","\uD83D\uDC9A":"1f49a","\uD83D\uDCF2":"1f4f2","\uD83D\uDCF3":"1f4f3","\uD83D\uDC9B":"1f49b","\uD83D\uDCF4":"1f4f4","\uD83D\uDCF6":"1f4f6","\uD83D\uDC9C":"1f49c","\uD83D\uDCF7":"1f4f7","\uD83D\uDCF9":"1f4f9","\uD83D\uDC9D":"1f49d","\uD83D\uDCFA":"1f4fa","\uD83D\uDCFB":"1f4fb","\uD83D\uDC9E":"1f49e","\uD83D\uDCFC":"1f4fc","\uD83D\uDD03":"1f503","\uD83D\uDC9F":"1f49f","\uD83D\uDD0A":"1f50a","\uD83D\uDD0B":"1f50b","\uD83D\uDCA0":"1f4a0","\uD83D\uDD0C":"1f50c","\uD83D\uDD0D":"1f50d","\uD83D\uDCA1":"1f4a1","\uD83D\uDD0E":"1f50e","\uD83D\uDD0F":"1f50f","\uD83D\uDCA2":"1f4a2","\uD83D\uDD10":"1f510","\uD83D\uDD11":"1f511","\uD83D\uDCA3":"1f4a3","\uD83D\uDD12":"1f512","\uD83D\uDD13":"1f513","\uD83D\uDCA4":"1f4a4","\uD83D\uDD14":"1f514","\uD83D\uDD16":"1f516","\uD83D\uDCA5":"1f4a5","\uD83D\uDD17":"1f517","\uD83D\uDD18":"1f518","\uD83D\uDCA6":"1f4a6","\uD83D\uDD19":"1f519","\uD83D\uDD1A":"1f51a","\uD83D\uDCA7":"1f4a7","\uD83D\uDD1B":"1f51b","\uD83D\uDD1C":"1f51c","\uD83D\uDCA8":"1f4a8","\uD83D\uDD1D":"1f51d","\uD83D\uDD1E":"1f51e","\uD83D\uDCA9":"1f4a9","\uD83D\uDD1F":"1f51f","\uD83D\uDCAA":"1f4aa","\uD83D\uDD20":"1f520","\uD83D\uDD21":"1f521","\uD83D\uDCAB":"1f4ab","\uD83D\uDD22":"1f522","\uD83D\uDD23":"1f523","\uD83D\uDCAC":"1f4ac","\uD83D\uDD24":"1f524","\uD83D\uDD25":"1f525","\uD83D\uDCAE":"1f4ae","\uD83D\uDD26":"1f526","\uD83D\uDD27":"1f527","\uD83D\uDCAF":"1f4af","\uD83D\uDD28":"1f528","\uD83D\uDD29":"1f529","\uD83D\uDCB0":"1f4b0","\uD83D\uDD2A":"1f52a","\uD83D\uDD2B":"1f52b","\uD83D\uDCB1":"1f4b1","\uD83D\uDD2E":"1f52e","\uD83D\uDCB2":"1f4b2","\uD83D\uDD2F":"1f52f","\uD83D\uDCB3":"1f4b3","\uD83D\uDD30":"1f530","\uD83D\uDD31":"1f531","\uD83D\uDCB4":"1f4b4","\uD83D\uDD32":"1f532","\uD83D\uDD33":"1f533","\uD83D\uDCB5":"1f4b5","\uD83D\uDD34":"1f534","\uD83D\uDD35":"1f535","\uD83D\uDCB8":"1f4b8","\uD83D\uDD36":"1f536","\uD83D\uDD37":"1f537","\uD83D\uDCB9":"1f4b9","\uD83D\uDD38":"1f538","\uD83D\uDD39":"1f539","\uD83D\uDCBA":"1f4ba","\uD83D\uDD3A":"1f53a","\uD83D\uDD3B":"1f53b","\uD83D\uDCBB":"1f4bb","\uD83D\uDD3C":"1f53c","\uD83D\uDCBC":"1f4bc","\uD83D\uDD3D":"1f53d","\uD83D\uDD50":"1f550","\uD83D\uDCBD":"1f4bd","\uD83D\uDD51":"1f551","\uD83D\uDCBE":"1f4be","\uD83D\uDD52":"1f552","\uD83D\uDCBF":"1f4bf","\uD83D\uDD53":"1f553","\uD83D\uDCC0":"1f4c0","\uD83D\uDD54":"1f554","\uD83D\uDD55":"1f555","\uD83D\uDCC1":"1f4c1","\uD83D\uDD56":"1f556","\uD83D\uDD57":"1f557","\uD83D\uDCC2":"1f4c2","\uD83D\uDD58":"1f558","\uD83D\uDD59":"1f559","\uD83D\uDCC3":"1f4c3","\uD83D\uDD5A":"1f55a","\uD83D\uDD5B":"1f55b","\uD83D\uDCC4":"1f4c4","\uD83D\uDDFB":"1f5fb","\uD83D\uDDFC":"1f5fc","\uD83D\uDCC5":"1f4c5","\uD83D\uDDFD":"1f5fd","\uD83D\uDDFE":"1f5fe","\uD83D\uDCC6":"1f4c6","\uD83D\uDDFF":"1f5ff","\uD83D\uDE01":"1f601","\uD83D\uDE02":"1f602","\uD83D\uDE03":"1f603","\uD83D\uDCC8":"1f4c8","\uD83D\uDE04":"1f604","\uD83D\uDE05":"1f605","\uD83D\uDCC9":"1f4c9","\uD83D\uDE06":"1f606","\uD83D\uDE09":"1f609","\uD83D\uDCCA":"1f4ca","\uD83D\uDE0A":"1f60a","\uD83D\uDE0B":"1f60b","\uD83D\uDCCB":"1f4cb","\uD83D\uDE0C":"1f60c","\uD83D\uDE0D":"1f60d","\uD83D\uDCCC":"1f4cc","\uD83D\uDE0F":"1f60f","\uD83D\uDE12":"1f612","\uD83D\uDCCD":"1f4cd","\uD83D\uDE13":"1f613","\uD83D\uDE14":"1f614","\uD83D\uDCCE":"1f4ce","\uD83D\uDE16":"1f616","\uD83D\uDE18":"1f618","\uD83D\uDCCF":"1f4cf","\uD83D\uDE1A":"1f61a","\uD83D\uDE1C":"1f61c","\uD83D\uDCD0":"1f4d0","\uD83D\uDE1D":"1f61d","\uD83D\uDE1E":"1f61e","\uD83D\uDCD1":"1f4d1","\uD83D\uDE20":"1f620","\uD83D\uDE21":"1f621","\uD83D\uDE22":"1f622","\uD83D\uDE23":"1f623","\uD83D\uDE24":"1f624","\uD83D\uDE25":"1f625","\uD83D\uDE28":"1f628","\uD83D\uDE29":"1f629","\uD83D\uDE2A":"1f62a","\uD83D\uDE2B":"1f62b","\uD83D\uDE2D":"1f62d","\uD83D\uDE30":"1f630","\uD83D\uDE31":"1f631","\uD83D\uDE32":"1f632","\uD83D\uDE33":"1f633","\uD83D\uDE35":"1f635","\uD83D\uDE37":"1f637","\uD83D\uDE38":"1f638","\uD83D\uDE39":"1f639","\uD83D\uDE3A":"1f63a","\uD83D\uDE3B":"1f63b","\uD83D\uDE3C":"1f63c","\uD83D\uDE3D":"1f63d","\uD83D\uDE3E":"1f63e","\uD83D\uDE3F":"1f63f","\uD83D\uDE40":"1f640","\uD83D\uDE45":"1f645","\uD83D\uDE46":"1f646","\uD83D\uDE47":"1f647","\uD83D\uDE48":"1f648","\uD83D\uDE49":"1f649","\uD83D\uDE4A":"1f64a","\uD83D\uDE4B":"1f64b","\uD83D\uDE4C":"1f64c","\uD83D\uDE4D":"1f64d","\uD83D\uDE4E":"1f64e","\uD83D\uDE4F":"1f64f","\uD83D\uDE80":"1f680","\uD83D\uDE83":"1f683","\uD83D\uDE84":"1f684","\uD83D\uDE85":"1f685","\uD83D\uDE87":"1f687","\uD83D\uDE89":"1f689","\uD83D\uDE8C":"1f68c","\uD83D\uDE8F":"1f68f","\uD83D\uDE91":"1f691","\uD83D\uDE92":"1f692","\uD83D\uDE93":"1f693","\uD83D\uDE95":"1f695","\uD83D\uDE97":"1f697","\uD83D\uDE99":"1f699","\uD83D\uDE9A":"1f69a","\uD83D\uDEA2":"1f6a2","\uD83D\uDEA4":"1f6a4","\uD83D\uDEA5":"1f6a5","\uD83D\uDEA7":"1f6a7","\uD83D\uDEA8":"1f6a8","\uD83D\uDEA9":"1f6a9","\uD83D\uDEAA":"1f6aa","\uD83D\uDEAB":"1f6ab","\uD83D\uDEAC":"1f6ac","\uD83D\uDEAD":"1f6ad","\uD83D\uDEB2":"1f6b2","\uD83D\uDEB6":"1f6b6","\uD83D\uDEB9":"1f6b9","\uD83D\uDEBA":"1f6ba","\uD83D\uDEBB":"1f6bb","\uD83D\uDEBC":"1f6bc","\uD83D\uDEBD":"1f6bd","\uD83D\uDEBE":"1f6be","\uD83D\uDEC0":"1f6c0","\uD83E\uDD18":"1f918","\uD83D\uDE00":"1f600","\uD83D\uDE07":"1f607","\uD83D\uDE08":"1f608","\uD83D\uDE0E":"1f60e","\uD83D\uDE10":"1f610","\uD83D\uDE11":"1f611","\uD83D\uDE15":"1f615","\uD83D\uDE17":"1f617","\uD83D\uDE19":"1f619","\uD83D\uDE1B":"1f61b","\uD83D\uDE1F":"1f61f","\uD83D\uDE26":"1f626","\uD83D\uDE27":"1f627","\uD83D\uDE2C":"1f62c","\uD83D\uDE2E":"1f62e","\uD83D\uDE2F":"1f62f","\uD83D\uDE34":"1f634","\uD83D\uDE36":"1f636","\uD83D\uDE81":"1f681","\uD83D\uDE82":"1f682","\uD83D\uDE86":"1f686","\uD83D\uDE88":"1f688","\uD83D\uDE8A":"1f68a","\uD83D\uDE8D":"1f68d","\uD83D\uDE8E":"1f68e","\uD83D\uDE90":"1f690","\uD83D\uDE94":"1f694","\uD83D\uDE96":"1f696","\uD83D\uDE98":"1f698","\uD83D\uDE9B":"1f69b","\uD83D\uDE9C":"1f69c","\uD83D\uDE9D":"1f69d","\uD83D\uDE9E":"1f69e","\uD83D\uDE9F":"1f69f","\uD83D\uDEA0":"1f6a0","\uD83D\uDEA1":"1f6a1","\uD83D\uDEA3":"1f6a3","\uD83D\uDEA6":"1f6a6","\uD83D\uDEAE":"1f6ae","\uD83D\uDEAF":"1f6af","\uD83D\uDEB0":"1f6b0","\uD83D\uDEB1":"1f6b1","\uD83D\uDEB3":"1f6b3","\uD83D\uDEB4":"1f6b4","\uD83D\uDEB5":"1f6b5","\uD83D\uDEB7":"1f6b7","\uD83D\uDEB8":"1f6b8","\uD83D\uDEBF":"1f6bf","\uD83D\uDEC1":"1f6c1","\uD83D\uDEC2":"1f6c2","\uD83D\uDEC3":"1f6c3","\uD83D\uDEC4":"1f6c4","\uD83D\uDEC5":"1f6c5","\uD83C\uDF0D":"1f30d","\uD83C\uDF0E":"1f30e","\uD83C\uDF10":"1f310","\uD83C\uDF12":"1f312","\uD83C\uDF16":"1f316","\uD83C\uDF17":"1f317","\uD83C\uDF18":"1f318","\uD83C\uDF1A":"1f31a","\uD83C\uDF1C":"1f31c","\uD83C\uDF1D":"1f31d","\uD83C\uDF1E":"1f31e","\uD83C\uDF32":"1f332","\uD83C\uDF33":"1f333","\uD83C\uDF4B":"1f34b","\uD83C\uDF50":"1f350","\uD83C\uDF7C":"1f37c","\uD83C\uDFC7":"1f3c7","\uD83C\uDFC9":"1f3c9","\uD83C\uDFE4":"1f3e4","\uD83D\uDC00":"1f400","\uD83D\uDC01":"1f401","\uD83D\uDC02":"1f402","\uD83D\uDC03":"1f403","\uD83D\uDC04":"1f404","\uD83D\uDC05":"1f405","\uD83D\uDC06":"1f406","\uD83D\uDC07":"1f407","\uD83D\uDC08":"1f408","\uD83D\uDC09":"1f409","\uD83D\uDC0A":"1f40a","\uD83D\uDC0B":"1f40b","\uD83D\uDC0F":"1f40f","\uD83D\uDC10":"1f410","\uD83D\uDC13":"1f413","\uD83D\uDC15":"1f415","\uD83D\uDC16":"1f416","\uD83D\uDC2A":"1f42a","\uD83D\uDC65":"1f465","\uD83D\uDC6C":"1f46c","\uD83D\uDC6D":"1f46d","\uD83D\uDCAD":"1f4ad","\uD83D\uDCB6":"1f4b6","\uD83D\uDCB7":"1f4b7","\uD83D\uDCEC":"1f4ec","\uD83D\uDCED":"1f4ed","\uD83D\uDCEF":"1f4ef","\uD83D\uDCF5":"1f4f5","\uD83D\uDD00":"1f500","\uD83D\uDD01":"1f501","\uD83D\uDD02":"1f502","\uD83D\uDD04":"1f504","\uD83D\uDD05":"1f505","\uD83D\uDD06":"1f506","\uD83D\uDD07":"1f507","\uD83D\uDD09":"1f509","\uD83D\uDD15":"1f515","\uD83D\uDD2C":"1f52c","\uD83D\uDD2D":"1f52d","\uD83D\uDD5C":"1f55c","\uD83D\uDD5D":"1f55d","\uD83D\uDD5E":"1f55e","\uD83D\uDD5F":"1f55f","\uD83D\uDD60":"1f560","\uD83D\uDD61":"1f561","\uD83D\uDD62":"1f562","\uD83D\uDD63":"1f563","\uD83D\uDD64":"1f564","\uD83D\uDD65":"1f565","\uD83D\uDD66":"1f566","\uD83D\uDD67":"1f567","\uD83D\uDD08":"1f508","\uD83D\uDE8B":"1f68b","\uD83C\uDFC5":"1f3c5","\uD83C\uDFF4":"1f3f4","\uD83D\uDCF8":"1f4f8","\uD83D\uDECC":"1f6cc","\uD83D\uDD95":"1f595","\uD83D\uDD96":"1f596","\uD83D\uDE41":"1f641","\uD83D\uDE42":"1f642","\uD83D\uDEEB":"1f6eb","\uD83D\uDEEC":"1f6ec","\uD83C\uDFFB":"1f3fb","\uD83C\uDFFC":"1f3fc","\uD83C\uDFFD":"1f3fd","\uD83C\uDFFE":"1f3fe","\uD83C\uDFFF":"1f3ff","\uD83D\uDE43":"1f643","\uD83E\uDD11":"1f911","\uD83E\uDD13":"1f913","\uD83E\uDD17":"1f917","\uD83D\uDE44":"1f644","\uD83E\uDD14":"1f914","\uD83E\uDD10":"1f910","\uD83E\uDD12":"1f912","\uD83E\uDD15":"1f915","\uD83E\uDD16":"1f916","\uD83E\uDD81":"1f981","\uD83E\uDD84":"1f984","\uD83E\uDD82":"1f982","\uD83E\uDD80":"1f980","\uD83E\uDD83":"1f983","\uD83E\uDDC0":"1f9c0","\uD83C\uDF2D":"1f32d","\uD83C\uDF2E":"1f32e","\uD83C\uDF2F":"1f32f","\uD83C\uDF7F":"1f37f","\uD83C\uDF7E":"1f37e","\uD83C\uDFF9":"1f3f9","\uD83C\uDFFA":"1f3fa","\uD83D\uDED0":"1f6d0","\uD83D\uDD4B":"1f54b","\uD83D\uDD4C":"1f54c","\uD83D\uDD4D":"1f54d","\uD83D\uDD4E":"1f54e","\uD83D\uDCFF":"1f4ff","\uD83C\uDFCF":"1f3cf","\uD83C\uDFD0":"1f3d0","\uD83C\uDFD1":"1f3d1","\uD83C\uDFD2":"1f3d2","\uD83C\uDFD3":"1f3d3","\uD83C\uDFF8":"1f3f8","\uD83E\uDD41":"1f941","\uD83E\uDD90":"1f990","\uD83E\uDD91":"1f991","\uD83E\uDD5A":"1f95a","\uD83E\uDD5B":"1f95b","\uD83E\uDD5C":"1f95c","\uD83E\uDD5D":"1f95d","\uD83E\uDD5E":"1f95e","\uD83C\uDDFC":"1f1fc","\uD83C\uDDFB":"1f1fb","\uD83C\uDDFA":"1f1fa","\uD83C\uDDF9":"1f1f9","\uD83C\uDDF8":"1f1f8","\uD83C\uDDF7":"1f1f7","\uD83C\uDDF6":"1f1f6","\uD83C\uDDF5":"1f1f5","\uD83C\uDDF4":"1f1f4","\uD83C\uDDF3":"1f1f3","\uD83C\uDDF2":"1f1f2","\uD83C\uDDF1":"1f1f1","\uD83C\uDDF0":"1f1f0","\uD83C\uDDEF":"1f1ef","\uD83C\uDDEE":"1f1ee","\uD83C\uDDED":"1f1ed","\uD83C\uDDEC":"1f1ec","\uD83C\uDDEB":"1f1eb","\uD83C\uDDEA":"1f1ea","\uD83C\uDDE9":"1f1e9","\uD83C\uDDE8":"1f1e8","\uD83C\uDDE7":"1f1e7","\uD83C\uDDE6":"1f1e6","\u23E9":"23e9","\u23EA":"23ea","\u23EB":"23eb","\u23EC":"23ec","\u23F0":"23f0","\u23F3":"23f3","\u26CE":"26ce","\u2705":"2705","\u270A":"270a","\u270B":"270b","\u2728":"2728","\u274C":"274c","\u274E":"274e","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u27B0":"27b0","\u27BF":"27bf","\u00A9":"00a9","\u00AE":"00ae","\u203C":"203c","\u2049":"2049","\u2122":"2122","\u2139":"2139","\u2194":"2194","\u2195":"2195","\u2196":"2196","\u2197":"2197","\u2198":"2198","\u2199":"2199","\u21A9":"21a9","\u21AA":"21aa","\u231A":"231a","\u231B":"231b","\u24C2":"24c2","\u25AA":"25aa","\u25AB":"25ab","\u25B6":"25b6","\u25C0":"25c0","\u25FB":"25fb","\u25FC":"25fc","\u25FD":"25fd","\u25FE":"25fe","\u2600":"2600","\u2601":"2601","\u260E":"260e","\u2611":"2611","\u2614":"2614","\u2615":"2615","\u261D":"261d","\u263A":"263a","\u2648":"2648","\u2649":"2649","\u264A":"264a","\u264B":"264b","\u264C":"264c","\u264D":"264d","\u264E":"264e","\u264F":"264f","\u2650":"2650","\u2651":"2651","\u2652":"2652","\u2653":"2653","\u2660":"2660","\u2663":"2663","\u2665":"2665","\u2666":"2666","\u2668":"2668","\u267B":"267b","\u267F":"267f","\u2693":"2693","\u26A0":"26a0","\u26A1":"26a1","\u26AA":"26aa","\u26AB":"26ab","\u26BD":"26bd","\u26BE":"26be","\u26C4":"26c4","\u26C5":"26c5","\u26D4":"26d4","\u26EA":"26ea","\u26F2":"26f2","\u26F3":"26f3","\u26F5":"26f5","\u26FA":"26fa","\u26FD":"26fd","\u2702":"2702","\u2708":"2708","\u2709":"2709","\u270C":"270c","\u270F":"270f","\u2712":"2712","\u2714":"2714","\u2716":"2716","\u2733":"2733","\u2734":"2734","\u2744":"2744","\u2747":"2747","\u2757":"2757","\u2764":"2764","\u27A1":"27a1","\u2934":"2934","\u2935":"2935","\u2B05":"2b05","\u2B06":"2b06","\u2B07":"2b07","\u2B1B":"2b1b","\u2B1C":"2b1c","\u2B50":"2b50","\u2B55":"2b55","\u3030":"3030","\u303D":"303d","\u3297":"3297","\u3299":"3299","\uD83C\uDC04":"1f004","\uD83C\uDD7F":"1f17f","\uD83C\uDE02":"1f202","\uD83C\uDE1A":"1f21a","\uD83C\uDE2F":"1f22f","\uD83C\uDE37":"1f237","\uD83C\uDF9E":"1f39e","\uD83C\uDF9F":"1f39f","\uD83C\uDFCB":"1f3cb","\uD83C\uDFCC":"1f3cc","\uD83C\uDFCD":"1f3cd","\uD83C\uDFCE":"1f3ce","\uD83C\uDF96":"1f396","\uD83C\uDF97":"1f397","\uD83C\uDF36":"1f336","\uD83C\uDF27":"1f327","\uD83C\uDF28":"1f328","\uD83C\uDF29":"1f329","\uD83C\uDF2A":"1f32a","\uD83C\uDF2B":"1f32b","\uD83C\uDF2C":"1f32c","\uD83D\uDC3F":"1f43f","\uD83D\uDD77":"1f577","\uD83D\uDD78":"1f578","\uD83C\uDF21":"1f321","\uD83C\uDF99":"1f399","\uD83C\uDF9A":"1f39a","\uD83C\uDF9B":"1f39b","\uD83C\uDFF3":"1f3f3","\uD83C\uDFF5":"1f3f5","\uD83C\uDFF7":"1f3f7","\uD83D\uDCFD":"1f4fd","\u271D":"271d","\uD83D\uDD49":"1f549","\uD83D\uDD4A":"1f54a","\uD83D\uDD6F":"1f56f","\uD83D\uDD70":"1f570","\uD83D\uDD73":"1f573","\uD83D\uDD76":"1f576","\uD83D\uDD79":"1f579","\uD83D\uDD87":"1f587","\uD83D\uDD8A":"1f58a","\uD83D\uDD8B":"1f58b","\uD83D\uDD8C":"1f58c","\uD83D\uDD8D":"1f58d","\uD83D\uDDA5":"1f5a5","\uD83D\uDDA8":"1f5a8","\u2328":"2328","\uD83D\uDDB2":"1f5b2","\uD83D\uDDBC":"1f5bc","\uD83D\uDDC2":"1f5c2","\uD83D\uDDC3":"1f5c3","\uD83D\uDDC4":"1f5c4","\uD83D\uDDD1":"1f5d1","\uD83D\uDDD2":"1f5d2","\uD83D\uDDD3":"1f5d3","\uD83D\uDDDC":"1f5dc","\uD83D\uDDDD":"1f5dd","\uD83D\uDDDE":"1f5de","\uD83D\uDDE1":"1f5e1","\uD83D\uDDE3":"1f5e3","\uD83D\uDDE8":"1f5e8","\uD83D\uDDEF":"1f5ef","\uD83D\uDDF3":"1f5f3","\uD83D\uDDFA":"1f5fa","\uD83D\uDEE0":"1f6e0","\uD83D\uDEE1":"1f6e1","\uD83D\uDEE2":"1f6e2","\uD83D\uDEF0":"1f6f0","\uD83C\uDF7D":"1f37d","\uD83D\uDC41":"1f441","\uD83D\uDD74":"1f574","\uD83D\uDD75":"1f575","\u270D":"270d","\uD83D\uDD90":"1f590","\uD83C\uDFD4":"1f3d4","\uD83C\uDFD5":"1f3d5","\uD83C\uDFD6":"1f3d6","\uD83C\uDFD7":"1f3d7","\uD83C\uDFD8":"1f3d8","\uD83C\uDFD9":"1f3d9","\uD83C\uDFDA":"1f3da","\uD83C\uDFDB":"1f3db","\uD83C\uDFDC":"1f3dc","\uD83C\uDFDD":"1f3dd","\uD83C\uDFDE":"1f3de","\uD83C\uDFDF":"1f3df","\uD83D\uDECB":"1f6cb","\uD83D\uDECD":"1f6cd","\uD83D\uDECE":"1f6ce","\uD83D\uDECF":"1f6cf","\uD83D\uDEE3":"1f6e3","\uD83D\uDEE4":"1f6e4","\uD83D\uDEE5":"1f6e5","\uD83D\uDEE9":"1f6e9","\uD83D\uDEF3":"1f6f3","\u23CF":"23cf","\u23ED":"23ed","\u23EE":"23ee","\u23EF":"23ef","\u23F1":"23f1","\u23F2":"23f2","\u23F8":"23f8","\u23F9":"23f9","\u23FA":"23fa","\u2602":"2602","\u2603":"2603","\u2604":"2604","\u2618":"2618","\u2620":"2620","\u2622":"2622","\u2623":"2623","\u2626":"2626","\u262A":"262a","\u262E":"262e","\u262F":"262f","\u2638":"2638","\u2639":"2639","\u2692":"2692","\u2694":"2694","\u2696":"2696","\u2697":"2697","\u2699":"2699","\u269B":"269b","\u269C":"269c","\u26B0":"26b0","\u26B1":"26b1","\u26C8":"26c8","\u26CF":"26cf","\u26D1":"26d1","\u26D3":"26d3","\u26E9":"26e9","\u26F0":"26f0","\u26F1":"26f1","\u26F4":"26f4","\u26F7":"26f7","\u26F8":"26f8","\u26F9":"26f9","\u2721":"2721","\u2763":"2763","\uD83C\uDF24":"1f324","\uD83C\uDF25":"1f325","\uD83C\uDF26":"1f326","\uD83D\uDDB1":"1f5b1"};
+ ns.imagePathPNG = 'https://cdn.jsdelivr.net/emojione/assets/png/';
+ ns.imagePathSVG = 'https://cdn.jsdelivr.net/emojione/assets/svg/';
ns.imagePathSVGSprites = './../assets/sprites/emojione.sprites.svg';
ns.imageType = 'png'; // or svg
+ ns.imageTitleTag = true; //set to false to remove title attribute from img tag
ns.sprites = false; // if this is true then sprite markup will be used (if SVG image type is set then you must include the SVG sprite file locally)
ns.unicodeAlt = true; // use the unicode char as the alt attribute (makes copy and pasting the resulting text better)
ns.ascii = false; // change to true to convert ascii smileys
- ns.cacheBustParam = '?v=2.0.1'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
+ ns.cacheBustParam = '?v=2.2.7'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
ns.regShortNames = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")", "gi");
ns.regAscii = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))", "g");
ns.regUnicode = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")", "gi");
-
+
ns.toImage = function(str) {
str = ns.unicodeToImage(str);
str = ns.shortnameToImage(str);
@@ -40652,9 +48778,9 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
// Useful for systems that dont support unicode nor images
ns.shortnameToAscii = function(str) {
var unicode,
- // something to keep in mind here is that array flip will destroy
- // half of the ascii text "emojis" because the unicode numbers are duplicated
- // this is ok for what it's being used for
+ // something to keep in mind here is that array flip will destroy
+ // half of the ascii text "emojis" because the unicode numbers are duplicated
+ // this is ok for what it's being used for
unicodeToAscii = ns.objectFlip(ns.asciiList);
str = str.replace(ns.regShortNames, function(shortname) {
@@ -40663,7 +48789,7 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
return shortname;
}
else {
- unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1];
+ unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
if(typeof unicodeToAscii[unicode] !== 'undefined') {
return unicodeToAscii[unicode];
} else {
@@ -40678,14 +48804,17 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
// useful for sending emojis back to mobile devices
ns.shortnameToUnicode = function(str) {
// replace regular shortnames first
- var unicode;
+ var unicode,fname,uc;
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
- unicode = ns.emojioneList[shortname][0].toUpperCase();
- return ns.convert(unicode);
+ unicode = ns.emojioneList[shortname].unicode[0].toUpperCase();
+ fname = ns.emojioneList[shortname].fname;
+ uc = ns.emojioneList[shortname].uc;
+ //return ns.convert(unicode);
+ return ns.convert(uc);
});
// if ascii smileys are turned on, then we'll replace them!
@@ -40703,29 +48832,30 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
});
}
- return str;
+ return str;
};
ns.shortnameToImage = function(str) {
// replace regular shortnames first
- var replaceWith,unicode,alt;
+ var replaceWith,unicode,alt,title;
str = str.replace(ns.regShortNames, function(shortname) {
if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
// if the shortname doesnt exist just return the entire match
return shortname;
}
else {
- unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1];
+ unicode = ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1];
+ title = ns.imageTitleTag ? 'title="'+shortname+'"' : '';
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : shortname;
if(ns.imageType === 'png') {
if(ns.sprites) {
- replaceWith = '<span class="emojione-'+unicode+'" title="'+shortname+'">'+alt+'</span>';
+ replaceWith = '<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
}
else {
- replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+ replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
@@ -40747,22 +48877,23 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
str = str.replace(ns.regAscii, function(entire, m1, m2, m3) {
if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
- // if the shortname doesnt exist just return the entire match
+ // if the ascii doesnt exist just return the entire match
return entire;
}
m3 = ns.unescapeHTML(m3);
unicode = ns.asciiList[m3];
+ title = ns.imageTitleTag ? 'title="'+ns.escapeHTML(m3)+'"' : '';
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : ns.escapeHTML(m3);
if(ns.imageType === 'png') {
if(ns.sprites) {
- replaceWith = m2+'<span class="emojione-'+unicode+'" title="'+ns.escapeHTML(m3)+'">'+alt+'</span>';
+ replaceWith = m2+'<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
}
else {
- replaceWith = m2+'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+ replaceWith = m2+'<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
@@ -40784,13 +48915,8 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
ns.unicodeToImage = function(str) {
- var replaceWith,unicode,alt;
-
- if((!ns.unicodeAlt) || (ns.sprites)) {
- // if we are using the shortname as the alt tag then we need a reversed array to map unicode code point to shortnames
- var mappedUnicode = ns.mapShortToUnicode();
- }
-
+ var replaceWith,unicode,short,fname,alt,title;
+ var mappedUnicode = ns.mapUnicodeToShort();
str = str.replace(ns.regUnicode, function(unicodeChar) {
if( (typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in ns.jsEscapeMap)) ) {
// if the unicodeChar doesnt exist just return the entire match
@@ -40800,15 +48926,20 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
// get the unicode codepoint from the actual char
unicode = ns.jsEscapeMap[unicodeChar];
+ //then map to shortname and locate the filename
+ short = mappedUnicode[unicode];
+ fname = ns.emojioneList[short].fname;
+
// depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
- alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : mappedUnicode[unicode];
+ alt = (ns.unicodeAlt) ? ns.convert(unicode.toUpperCase()) : short;
+ title = ns.imageTitleTag ? 'title="'+short+'"' : '';
if(ns.imageType === 'png') {
if(ns.sprites) {
- replaceWith = '<span class="emojione-'+unicode+'" title="'+mappedUnicode[unicode]+'">'+alt+'</span>';
+ replaceWith = '<span class="emojione emojione-'+unicode+'" ' + title + '>'+alt+'</span>';
}
else {
- replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+ replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathPNG+fname+'.png'+ns.cacheBustParam+'"/>';
}
}
else {
@@ -40817,7 +48948,7 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
}
else {
- replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'"/>';
+ replaceWith = '<img class="emojione" alt="'+alt+'" ' + title + ' src="'+ns.imagePathSVG+fname+'.svg'+ns.cacheBustParam+'"/>';
}
}
@@ -40828,17 +48959,11 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
return str;
};
- // super simple loop to replace all unicode emoji to shortnames
- // needs to be improved into one big replacement instead, for performance reasons
- ns.toShort = function(str) { // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
- for (var shortcode in ns.emojioneList) {
- if (!ns.emojioneList.hasOwnProperty(shortcode)) { continue; }
- for(var i = 0, len = ns.emojioneList[shortcode].length; i < len; i++){
- var unicode = ns.emojioneList[shortcode][i];
- str = ns.replaceAll(str,ns.convert(unicode.toUpperCase()),shortcode);
- }
- }
- return str;
+ // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
+ ns.toShort = function(str) {
+ var find = ns.getUnicodeReplacementRegEx(),
+ replacementList = ns.mapUnicodeCharactersToShort();
+ return ns.replaceAll(str, find,replacementList);
};
// for converting unicode code points and code pairs to their respective characters
@@ -40909,16 +49034,52 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
return unescaped[match];
});
};
- ns.mapShortToUnicode = function() {
- var new_obj = {};
+
+ ns.mapEmojioneList = function (addToMapStorage) {
for (var shortname in ns.emojioneList) {
if (!ns.emojioneList.hasOwnProperty(shortname)) { continue; }
- for(var i = 0, len = ns.emojioneList[shortname].length; i < len; i++){
- new_obj[ns.emojioneList[shortname][i]] = shortname;
+ for (var i = 0, len = ns.emojioneList[shortname].unicode.length; i < len; i++) {
+ var unicode = ns.emojioneList[shortname].unicode[i];
+ addToMapStorage(unicode, shortname);
}
}
- return new_obj;
};
+
+ ns.mapUnicodeToShort = function() {
+ if (!ns.memMapShortToUnicode) {
+ ns.memMapShortToUnicode = {};
+ ns.mapEmojioneList(function (unicode, shortname) {
+ ns.memMapShortToUnicode[unicode] = shortname;
+ });
+ }
+ return ns.memMapShortToUnicode;
+ };
+
+ ns.memoizeReplacement = function() {
+ if (!ns.unicodeReplacementRegEx || !ns.memMapShortToUnicodeCharacters) {
+ var unicodeList = [];
+ ns.memMapShortToUnicodeCharacters = {};
+ ns.mapEmojioneList(function (unicode, shortname) {
+ var emojiCharacter = ns.convert(unicode);
+ if(ns.emojioneList[shortname].isCanonical) {
+ ns.memMapShortToUnicodeCharacters[emojiCharacter] = shortname;
+ }
+ unicodeList.push(emojiCharacter);
+ });
+ ns.unicodeReplacementRegEx = unicodeList.join('|');
+ }
+ };
+
+ ns.mapUnicodeCharactersToShort = function() {
+ ns.memoizeReplacement();
+ return ns.memMapShortToUnicodeCharacters;
+ };
+
+ ns.getUnicodeReplacementRegEx = function() {
+ ns.memoizeReplacement();
+ return ns.unicodeReplacementRegEx;
+ };
+
//reverse an object
ns.objectFlip = function (obj) {
var key, tmp_obj = {};
@@ -40933,20 +49094,20 @@ var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencr
};
ns.escapeRegExp = function(string) {
- return string.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g, "\\$&");
+ return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g, "\\$&");
};
- ns.replaceAll = function(string, find, replaceWith) {
+ ns.replaceAll = function(string, find, replacementList) {
var escapedFind = ns.escapeRegExp(find);
var search = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")", "gi");
// callback prevents replacing anything inside of these common html tags as well as between an <object></object> tag
var replace = function(entire, m1) {
- return ((typeof m1 === 'undefined') || (m1 === '')) ? entire : replaceWith;
+ return ((typeof m1 === 'undefined') || (m1 === '')) ? entire : replacementList[m1];
};
return string.replace(search,replace);
};
}(this.emojione = this.emojione || {}));
-if(typeof module === "object") module.exports = this.emojione;
+if(typeof module === "object") module.exports = this.emojione; \ No newline at end of file
diff --git a/build/js/jsxc/lib/jsxc.dep.min.js b/build/js/jsxc/lib/jsxc.dep.min.js
index cc4e7aa..23b80f2 100644
--- a/build/js/jsxc/lib/jsxc.dep.min.js
+++ b/build/js/jsxc/lib/jsxc.dep.min.js
@@ -1,23 +1,6 @@
-/*!
- * jsxc v3.0.1 - 2016-10-28
- *
- * This file concatenates all dependencies of jsxc.
- *
- */
-/*!
- * Source: lib/strophe.js/strophe.js, license: multiple, url: http://strophe.im/strophejs/
- */
-!function(callback){if(function(root,factory){"function"==typeof define&&define.amd?define("strophe-base64",function(){return factory()}):root.Base64=factory()}(this,function(){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",obj={encode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;do chr1=input.charCodeAt(i++),chr2=input.charCodeAt(i++),chr3=input.charCodeAt(i++),enc1=chr1>>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?(enc2=(3&chr1)<<4,enc3=enc4=64):isNaN(chr3)&&(enc4=64),output=output+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);while(i<input.length);return output},decode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do enc1=keyStr.indexOf(input.charAt(i++)),enc2=keyStr.indexOf(input.charAt(i++)),enc3=keyStr.indexOf(input.charAt(i++)),enc4=keyStr.indexOf(input.charAt(i++)),chr1=enc1<<2|enc2>>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));while(i<input.length);return output}};return obj}),function(root,factory){"function"==typeof define&&define.amd?define("strophe-sha1",function(){return factory()}):root.SHA1=factory()}(this,function(){function core_sha1(x,len){x[len>>5]|=128<<24-len%32,x[(len+64>>9<<4)+15]=len;var i,j,t,olda,oldb,oldc,oldd,olde,w=new Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776;for(i=0;i<x.length;i+=16){for(olda=a,oldb=b,oldc=c,oldd=d,olde=e,j=0;j<80;j++)j<16?w[j]=x[i+j]:w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j))),e=d,d=c,c=rol(b,30),b=a,a=t;a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd),e=safe_add(e,olde)}return[a,b,c,d,e]}function sha1_ft(t,b,c,d){return t<20?b&c|~b&d:t<40?b^c^d:t<60?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514}function core_hmac_sha1(key,data){var bkey=str2binb(key);bkey.length>16&&(bkey=core_sha1(bkey,8*key.length));for(var ipad=new Array(16),opad=new Array(16),i=0;i<16;i++)ipad[i]=909522486^bkey[i],opad[i]=1549556828^bkey[i];var hash=core_sha1(ipad.concat(str2binb(data)),512+8*data.length);return core_sha1(opad.concat(hash),672)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function rol(num,cnt){return num<<cnt|num>>>32-cnt}function str2binb(str){for(var bin=[],mask=255,i=0;i<8*str.length;i+=8)bin[i>>5]|=(str.charCodeAt(i/8)&mask)<<24-i%32;return bin}function binb2str(bin){for(var str="",mask=255,i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>24-i%32&mask);return str}function binb2b64(binarray){for(var triplet,j,tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",str="",i=0;i<4*binarray.length;i+=3)for(triplet=(binarray[i>>2]>>8*(3-i%4)&255)<<16|(binarray[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|binarray[i+2>>2]>>8*(3-(i+2)%4)&255,j=0;j<4;j++)str+=8*i+6*j>32*binarray.length?"=":tab.charAt(triplet>>6*(3-j)&63);return str}return{b64_hmac_sha1:function(key,data){return binb2b64(core_hmac_sha1(key,data))},b64_sha1:function(s){return binb2b64(core_sha1(str2binb(s),8*s.length))},binb2str:binb2str,core_hmac_sha1:core_hmac_sha1,str_hmac_sha1:function(key,data){return binb2str(core_hmac_sha1(key,data))},str_sha1:function(s){return binb2str(core_sha1(str2binb(s),8*s.length))}}}),function(root,factory){"function"==typeof define&&define.amd?define("strophe-md5",function(){return factory()}):root.MD5=factory()}(this,function(b){var safe_add=function(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw},bit_rol=function(num,cnt){return num<<cnt|num>>>32-cnt},str2binl=function(str){for(var bin=[],i=0;i<8*str.length;i+=8)bin[i>>5]|=(255&str.charCodeAt(i/8))<<i%32;return bin},binl2str=function(bin){for(var str="",i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>i%32&255);return str},binl2hex=function(binarray){for(var hex_tab="0123456789abcdef",str="",i=0;i<4*binarray.length;i++)str+=hex_tab.charAt(binarray[i>>2]>>i%4*8+4&15)+hex_tab.charAt(binarray[i>>2]>>i%4*8&15);return str},md5_cmn=function(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)},md5_ff=function(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)},md5_gg=function(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)},md5_hh=function(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)},md5_ii=function(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)},core_md5=function(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var olda,oldb,oldc,oldd,a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16)olda=a,oldb=b,oldc=c,oldd=d,a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd);return[a,b,c,d]},obj={hexdigest:function(s){return binl2hex(core_md5(str2binl(s),8*s.length))},hash:function(s){return binl2str(core_md5(str2binl(s),8*s.length))}};return obj}),Function.prototype.bind||(Function.prototype.bind=function(obj){var func=this,_slice=Array.prototype.slice,_concat=Array.prototype.concat,_args=_slice.call(arguments,1);return function(){return func.apply(obj?obj:this,_concat.call(_args,_slice.call(arguments,0)))}}),Array.isArray||(Array.isArray=function(arg){return"[object Array]"===Object.prototype.toString.call(arg)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(elt){var len=this.length,from=Number(arguments[1])||0;for(from=from<0?Math.ceil(from):Math.floor(from),from<0&&(from+=len);from<len;from++)if(from in this&&this[from]===elt)return from;return-1}),function(root,factory){if("function"==typeof define&&define.amd)define("strophe-core",["strophe-sha1","strophe-base64","strophe-md5","strophe-polyfill"],function(){return factory.apply(this,arguments)});else{var o=factory(root.SHA1,root.Base64,root.MD5);window.Strophe=o.Strophe,window.$build=o.$build,window.$iq=o.$iq,window.$msg=o.$msg,window.$pres=o.$pres,window.SHA1=o.SHA1,window.Base64=o.Base64,window.MD5=o.MD5,window.b64_hmac_sha1=o.SHA1.b64_hmac_sha1,window.b64_sha1=o.SHA1.b64_sha1,window.str_hmac_sha1=o.SHA1.str_hmac_sha1,window.str_sha1=o.SHA1.str_sha1}}(this,function(SHA1,Base64,MD5){function $build(name,attrs){return new Strophe.Builder(name,attrs)}function $msg(attrs){return new Strophe.Builder("message",attrs)}function $iq(attrs){return new Strophe.Builder("iq",attrs)}function $pres(attrs){return new Strophe.Builder("presence",attrs)}var Strophe;return Strophe={VERSION:"1.2.3",NS:{HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},XHTML:{tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"],validTag:function(tag){for(var i=0;i<Strophe.XHTML.tags.length;i++)if(tag==Strophe.XHTML.tags[i])return!0;return!1},validAttribute:function(tag,attribute){if("undefined"!=typeof Strophe.XHTML.attributes[tag]&&Strophe.XHTML.attributes[tag].length>0)for(var i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute==Strophe.XHTML.attributes[tag][i])return!0;return!1},validCSS:function(style){for(var i=0;i<Strophe.XHTML.css.length;i++)if(style==Strophe.XHTML.css[i])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8,REDIRECT:9},LogLevel:{DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4},ElementType:{NORMAL:1,TEXT:3,CDATA:4,FRAGMENT:11},TIMEOUT:1.1,SECONDARY_TIMEOUT:.1,addNamespace:function(name,value){Strophe.NS[name]=value},forEachChild:function(elem,elemName,func){var i,childNode;for(i=0;i<elem.childNodes.length;i++)childNode=elem.childNodes[i],childNode.nodeType!=Strophe.ElementType.NORMAL||elemName&&!this.isTagEqual(childNode,elemName)||func(childNode)},isTagEqual:function(el,name){return el.tagName==name},_xmlGenerator:null,_makeGenerator:function(){var doc;return void 0===document.implementation.createDocument||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(doc=this._getIEXmlDom(),doc.appendChild(doc.createElement("strophe"))):doc=document.implementation.createDocument("jabber:client","strophe",null),doc},xmlGenerator:function(){return Strophe._xmlGenerator||(Strophe._xmlGenerator=Strophe._makeGenerator()),Strophe._xmlGenerator},_getIEXmlDom:function(){for(var doc=null,docStrings=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"],d=0;d<docStrings.length&&null===doc;d++)try{doc=new ActiveXObject(docStrings[d])}catch(e){doc=null}return doc},xmlElement:function(name){if(!name)return null;var a,i,k,node=Strophe.xmlGenerator().createElement(name);for(a=1;a<arguments.length;a++){var arg=arguments[a];if(arg)if("string"==typeof arg||"number"==typeof arg)node.appendChild(Strophe.xmlTextNode(arg));else if("object"==typeof arg&&"function"==typeof arg.sort)for(i=0;i<arg.length;i++){var attr=arg[i];"object"==typeof attr&&"function"==typeof attr.sort&&void 0!==attr[1]&&null!==attr[1]&&node.setAttribute(attr[0],attr[1])}else if("object"==typeof arg)for(k in arg)arg.hasOwnProperty(k)&&void 0!==arg[k]&&null!==arg[k]&&node.setAttribute(k,arg[k])}return node},xmlescape:function(text){return text=text.replace(/\&/g,"&amp;"),text=text.replace(/</g,"&lt;"),text=text.replace(/>/g,"&gt;"),text=text.replace(/'/g,"&apos;"),text=text.replace(/"/g,"&quot;")},xmlunescape:function(text){return text=text.replace(/\&amp;/g,"&"),text=text.replace(/&lt;/g,"<"),text=text.replace(/&gt;/g,">"),text=text.replace(/&apos;/g,"'"),text=text.replace(/&quot;/g,'"')},xmlTextNode:function(text){return Strophe.xmlGenerator().createTextNode(text)},xmlHtmlNode:function(html){var node;if(window.DOMParser){var parser=new DOMParser;node=parser.parseFromString(html,"text/xml")}else node=new ActiveXObject("Microsoft.XMLDOM"),node.async="false",node.loadXML(html);return node},getText:function(elem){if(!elem)return null;var str="";0===elem.childNodes.length&&elem.nodeType==Strophe.ElementType.TEXT&&(str+=elem.nodeValue);for(var i=0;i<elem.childNodes.length;i++)elem.childNodes[i].nodeType==Strophe.ElementType.TEXT&&(str+=elem.childNodes[i].nodeValue);return Strophe.xmlescape(str)},copyElement:function(elem){var i,el;if(elem.nodeType==Strophe.ElementType.NORMAL){for(el=Strophe.xmlElement(elem.tagName),i=0;i<elem.attributes.length;i++)el.setAttribute(elem.attributes[i].nodeName,elem.attributes[i].value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.copyElement(elem.childNodes[i]))}else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlGenerator().createTextNode(elem.nodeValue));return el},createHtml:function(elem){var i,el,j,tag,attribute,value,css,cssAttrs,attr,cssName,cssValue;if(elem.nodeType==Strophe.ElementType.NORMAL)if(tag=elem.nodeName.toLowerCase(),Strophe.XHTML.validTag(tag))try{for(el=Strophe.xmlElement(tag),i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute=Strophe.XHTML.attributes[tag][i],value=elem.getAttribute(attribute),"undefined"!=typeof value&&null!==value&&""!==value&&value!==!1&&0!==value)if("style"==attribute&&"object"==typeof value&&"undefined"!=typeof value.cssText&&(value=value.cssText),"style"==attribute){for(css=[],cssAttrs=value.split(";"),j=0;j<cssAttrs.length;j++)attr=cssAttrs[j].split(":"),cssName=attr[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),Strophe.XHTML.validCSS(cssName)&&(cssValue=attr[1].replace(/^\s*/,"").replace(/\s*$/,""),css.push(cssName+": "+cssValue));css.length>0&&(value=css.join("; "),el.setAttribute(attribute,value))}else el.setAttribute(attribute,value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]))}catch(e){el=Strophe.xmlTextNode("")}else for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else if(elem.nodeType==Strophe.ElementType.FRAGMENT)for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlTextNode(elem.nodeValue));return el},escapeNode:function(node){return"string"!=typeof node?node:node.replace(/^\s+|\s+$/g,"").replace(/\\/g,"\\5c").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(node){return"string"!=typeof node?node:node.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(jid){return jid.indexOf("@")<0?null:jid.split("@")[0]},getDomainFromJid:function(jid){var bare=Strophe.getBareJidFromJid(jid);if(bare.indexOf("@")<0)return bare;var parts=bare.split("@");return parts.splice(0,1),parts.join("@")},getResourceFromJid:function(jid){var s=jid.split("/");return s.length<2?null:(s.splice(0,1),s.join("/"))},getBareJidFromJid:function(jid){return jid?jid.split("/")[0]:null},log:function(level,msg){},debug:function(msg){this.log(this.LogLevel.DEBUG,msg)},info:function(msg){this.log(this.LogLevel.INFO,msg)},warn:function(msg){this.log(this.LogLevel.WARN,msg)},error:function(msg){this.log(this.LogLevel.ERROR,msg)},fatal:function(msg){this.log(this.LogLevel.FATAL,msg)},serialize:function(elem){var result;if(!elem)return null;"function"==typeof elem.tree&&(elem=elem.tree());var i,child,nodeName=elem.nodeName;for(elem.getAttribute("_realname")&&(nodeName=elem.getAttribute("_realname")),result="<"+nodeName,i=0;i<elem.attributes.length;i++)"_realname"!=elem.attributes[i].nodeName&&(result+=" "+elem.attributes[i].nodeName+"='"+elem.attributes[i].value.replace(/&/g,"&amp;").replace(/\'/g,"&apos;").replace(/>/g,"&gt;").replace(/</g,"&lt;")+"'");if(elem.childNodes.length>0){for(result+=">",i=0;i<elem.childNodes.length;i++)switch(child=elem.childNodes[i],child.nodeType){case Strophe.ElementType.NORMAL:result+=Strophe.serialize(child);break;case Strophe.ElementType.TEXT:result+=Strophe.xmlescape(child.nodeValue);break;case Strophe.ElementType.CDATA:result+="<![CDATA["+child.nodeValue+"]]>"}result+="</"+nodeName+">"}else result+="/>";return result},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(name,ptype){Strophe._connectionPlugins[name]=ptype}},Strophe.Builder=function(name,attrs){"presence"!=name&&"message"!=name&&"iq"!=name||(attrs&&!attrs.xmlns?attrs.xmlns=Strophe.NS.CLIENT:attrs||(attrs={xmlns:Strophe.NS.CLIENT})),this.nodeTree=Strophe.xmlElement(name,attrs),this.node=this.nodeTree},Strophe.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return Strophe.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},attrs:function(moreattrs){for(var k in moreattrs)moreattrs.hasOwnProperty(k)&&(void 0===moreattrs[k]?this.node.removeAttribute(k):this.node.setAttribute(k,moreattrs[k]));return this},c:function(name,attrs,text){var child=Strophe.xmlElement(name,attrs,text);return this.node.appendChild(child),"string"!=typeof text&&(this.node=child),this},cnode:function(elem){var impNode,xmlGen=Strophe.xmlGenerator();try{impNode=void 0!==xmlGen.importNode}catch(e){impNode=!1}var newElem=impNode?xmlGen.importNode(elem,!0):Strophe.copyElement(elem);return this.node.appendChild(newElem),this.node=newElem,this},t:function(text){var child=Strophe.xmlTextNode(text);return this.node.appendChild(child),this},h:function(html){var fragment=document.createElement("body");fragment.innerHTML=html;for(var xhtml=Strophe.createHtml(fragment);xhtml.childNodes.length>0;)this.node.appendChild(xhtml.childNodes[0]);return this}},Strophe.Handler=function(handler,ns,name,type,id,from,options){this.handler=handler,this.ns=ns,this.name=name,this.type=type,this.id=id,this.options=options||{matchBare:!1},this.options.matchBare||(this.options.matchBare=!1),this.options.matchBare?this.from=from?Strophe.getBareJidFromJid(from):null:this.from=from,this.user=!0},Strophe.Handler.prototype={isMatch:function(elem){var nsMatch,from=null;if(from=this.options.matchBare?Strophe.getBareJidFromJid(elem.getAttribute("from")):elem.getAttribute("from"),nsMatch=!1,this.ns){var that=this;Strophe.forEachChild(elem,null,function(elem){elem.getAttribute("xmlns")==that.ns&&(nsMatch=!0)}),nsMatch=nsMatch||elem.getAttribute("xmlns")==this.ns}else nsMatch=!0;var elem_type=elem.getAttribute("type");return!(!nsMatch||this.name&&!Strophe.isTagEqual(elem,this.name)||this.type&&(Array.isArray(this.type)?this.type.indexOf(elem_type)==-1:elem_type!=this.type)||this.id&&elem.getAttribute("id")!=this.id||this.from&&from!=this.from)},run:function(elem){var result=null;try{result=this.handler(elem)}catch(e){throw e.sourceURL?Strophe.fatal("error: "+this.handler+" "+e.sourceURL+":"+e.line+" - "+e.name+": "+e.message):e.fileName?("undefined"!=typeof console&&(console.trace(),console.error(this.handler," - error - ",e,e.message)),Strophe.fatal("error: "+this.handler+" "+e.fileName+":"+e.lineNumber+" - "+e.name+": "+e.message)):Strophe.fatal("error: "+e.message+"\n"+e.stack),e}return result},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},Strophe.TimedHandler=function(period,handler){this.period=period,this.handler=handler,this.lastCalled=(new Date).getTime(),this.user=!0},Strophe.TimedHandler.prototype={run:function(){return this.lastCalled=(new Date).getTime(),this.handler()},reset:function(){this.lastCalled=(new Date).getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}},Strophe.Connection=function(service,options){this.service=service,this.options=options||{};var proto=this.options.protocol||"";0===service.indexOf("ws:")||0===service.indexOf("wss:")||0===proto.indexOf("ws")?this._proto=new Strophe.Websocket(this):this._proto=new Strophe.Bosh(this),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this._idleTimeout=null,this._disconnectTimeout=null,this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.do_authentication=!0,this.paused=!1,this.restored=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(this._onIdle.bind(this),100);for(var k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k],F=function(){};F.prototype=ptype,this[k]=new F,this[k].init(this)}},Strophe.Connection.prototype={reset:function(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._authentication={},this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.restored=!1,this._data=[],this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(suffix){var uuid="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=16*Math.random()|0,v="x"==c?r:3&r|8;return v.toString(16)});return"string"==typeof suffix||"number"==typeof suffix?uuid+":"+suffix:uuid+""},connect:function(jid,pass,callback,wait,hold,route,authcid){this.jid=jid,this.authzid=Strophe.getBareJidFromJid(this.jid),this.authcid=authcid||Strophe.getNodeFromJid(this.jid),this.pass=pass,this.servtype="xmpp",this.connect_callback=callback,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.restored=!1,this.domain=Strophe.getDomainFromJid(this.jid),this._changeConnectStatus(Strophe.Status.CONNECTING,null),this._proto._connect(wait,hold,route)},attach:function(jid,sid,rid,callback,wait,hold,wind){if(!(this._proto instanceof Strophe.Bosh))throw{name:"StropheSessionError",message:'The "attach" method can only be used with a BOSH connection.'};this._proto._attach(jid,sid,rid,callback,wait,hold,wind)},restore:function(jid,callback,wait,hold,wind){if(!this._sessionCachingSupported())throw{name:"StropheSessionError",message:'The "restore" method can only be used with a BOSH connection.'};this._proto._restore(jid,callback,wait,hold,wind)},_sessionCachingSupported:function(){if(this._proto instanceof Strophe.Bosh){if(!JSON)return!1;try{window.sessionStorage.setItem("_strophe_","_strophe_"),window.sessionStorage.removeItem("_strophe_")}catch(e){return!1}return!0}return!1},xmlInput:function(elem){},xmlOutput:function(elem){},rawInput:function(data){},rawOutput:function(data){},nextValidRid:function(rid){},send:function(elem){if(null!==elem){if("function"==typeof elem.sort)for(var i=0;i<elem.length;i++)this._queueData(elem[i]);else"function"==typeof elem.tree?this._queueData(elem.tree()):this._queueData(elem);this._proto._send()}},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(elem,callback,errback,timeout){var timeoutHandler=null,that=this;"function"==typeof elem.tree&&(elem=elem.tree());var id=elem.getAttribute("id");id||(id=this.getUniqueId("sendIQ"),elem.setAttribute("id",id));var expectedFrom=elem.getAttribute("to"),fulljid=this.jid,handler=this.addHandler(function(stanza){timeoutHandler&&that.deleteTimedHandler(timeoutHandler);var acceptable=!1,from=stanza.getAttribute("from");if(from!==expectedFrom&&(null!==expectedFrom||from!==Strophe.getBareJidFromJid(fulljid)&&from!==Strophe.getDomainFromJid(fulljid)&&from!==fulljid)||(acceptable=!0),!acceptable)throw{name:"StropheError",message:"Got answer to IQ from wrong jid:"+from+"\nExpected jid: "+expectedFrom};var iqtype=stanza.getAttribute("type");if("result"==iqtype)callback&&callback(stanza);else{if("error"!=iqtype)throw{name:"StropheError",message:"Got bad IQ type of "+iqtype};errback&&errback(stanza)}},null,"iq",["error","result"],id);return timeout&&(timeoutHandler=this.addTimedHandler(timeout,function(){return that.deleteHandler(handler),errback&&errback(null),!1})),this.send(elem),id},_queueData:function(element){if(null===element||!element.tagName||!element.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(element)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(this._onIdle.bind(this),100)},addTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return this.addTimeds.push(thand),thand},deleteTimedHandler:function(handRef){this.removeTimeds.push(handRef)},addHandler:function(handler,ns,name,type,id,from,options){var hand=new Strophe.Handler(handler,ns,name,type,id,from,options);return this.addHandlers.push(hand),hand},deleteHandler:function(handRef){this.removeHandlers.push(handRef);var i=this.addHandlers.indexOf(handRef);i>=0&&this.addHandlers.splice(i,1)},disconnect:function(reason){if(this._changeConnectStatus(Strophe.Status.DISCONNECTING,reason),Strophe.info("Disconnect was called because: "+reason),this.connected){var pres=!1;this.disconnecting=!0,this.authenticated&&(pres=$pres({xmlns:Strophe.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(pres)}else Strophe.info("Disconnect was called before Strophe connected to the server"),this._proto._abortAllRequests()},_changeConnectStatus:function(status,condition){for(var k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var plugin=this[k];if(plugin.statusChanged)try{plugin.statusChanged(status,condition)}catch(err){Strophe.error(""+k+" plugin caused an exception changing status: "+err)}}if(this.connect_callback)try{this.connect_callback(status,condition)}catch(e){Strophe.error("User connection callback caused an exception: "+e)}},_doDisconnect:function(condition){"number"==typeof this._idleTimeout&&clearTimeout(this._idleTimeout),null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),Strophe.info("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.restored=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(Strophe.Status.DISCONNECTED,condition),this.connected=!1},_dataRecv:function(req,raw){Strophe.info("_dataRecv called");var elem=this._proto._reqToData(req);if(null!==elem){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&(elem.nodeName===this._proto.strip&&elem.childNodes.length?this.xmlInput(elem.childNodes[0]):this.xmlInput(elem)),this.rawInput!==Strophe.Connection.prototype.rawInput&&(raw?this.rawInput(raw):this.rawInput(Strophe.serialize(elem)));for(var i,hand;this.removeHandlers.length>0;)hand=this.removeHandlers.pop(),i=this.handlers.indexOf(hand),i>=0&&this.handlers.splice(i,1);for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())return void this._doDisconnect();var cond,conflict,type=elem.getAttribute("type");if(null!==type&&"terminate"==type){if(this.disconnecting)return;return cond=elem.getAttribute("condition"),conflict=elem.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),void this._doDisconnect(cond)}var that=this;Strophe.forEachChild(elem,null,function(child){var i,newList;for(newList=that.handlers,that.handlers=[],i=0;i<newList.length;i++){var hand=newList[i];try{!hand.isMatch(child)||!that.authenticated&&hand.user?that.handlers.push(hand):hand.run(child)&&that.handlers.push(hand)}catch(e){Strophe.warn("Removing Strophe handlers due to uncaught exception: "+e.message)}}})}},mechanisms:{},_connect_cb:function(req,_callback,raw){Strophe.info("_connect_cb was called"),this.connected=!0;var bodyWrap=this._proto._reqToData(req);if(bodyWrap){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&(bodyWrap.nodeName===this._proto.strip&&bodyWrap.childNodes.length?this.xmlInput(bodyWrap.childNodes[0]):this.xmlInput(bodyWrap)),this.rawInput!==Strophe.Connection.prototype.rawInput&&(raw?this.rawInput(raw):this.rawInput(Strophe.serialize(bodyWrap)));var conncheck=this._proto._connect_cb(bodyWrap);if(conncheck!==Strophe.Status.CONNFAIL){this._authentication.sasl_scram_sha1=!1,this._authentication.sasl_plain=!1,this._authentication.sasl_digest_md5=!1,this._authentication.sasl_anonymous=!1,this._authentication.legacy_auth=!1;var hasFeatures;hasFeatures=bodyWrap.getElementsByTagNameNS?bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM,"features").length>0:bodyWrap.getElementsByTagName("stream:features").length>0||bodyWrap.getElementsByTagName("features").length>0;var i,mech,mechanisms=bodyWrap.getElementsByTagName("mechanism"),matched=[],found_authentication=!1;if(!hasFeatures)return void this._proto._no_auth_received(_callback);if(mechanisms.length>0)for(i=0;i<mechanisms.length;i++)mech=Strophe.getText(mechanisms[i]),this.mechanisms[mech]&&matched.push(this.mechanisms[mech]);return this._authentication.legacy_auth=bodyWrap.getElementsByTagName("auth").length>0,(found_authentication=this._authentication.legacy_auth||matched.length>0)?void(this.do_authentication!==!1&&this.authenticate(matched)):void this._proto._no_auth_received(_callback)}}},authenticate:function(matched){var i;for(i=0;i<matched.length-1;++i){for(var higher=i,j=i+1;j<matched.length;++j)matched[j].prototype.priority>matched[higher].prototype.priority&&(higher=j);if(higher!=i){var swap=matched[i];matched[i]=matched[higher],matched[higher]=swap}}var mechanism_found=!1;for(i=0;i<matched.length;++i)if(matched[i].test(this)){this._sasl_success_handler=this._addSysHandler(this._sasl_success_cb.bind(this),null,"success",null,null),this._sasl_failure_handler=this._addSysHandler(this._sasl_failure_cb.bind(this),null,"failure",null,null),this._sasl_challenge_handler=this._addSysHandler(this._sasl_challenge_cb.bind(this),null,"challenge",null,null),this._sasl_mechanism=new matched[i],
-this._sasl_mechanism.onStart(this);var request_auth_exchange=$build("auth",{xmlns:Strophe.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var response=this._sasl_mechanism.onChallenge(this,null);request_auth_exchange.t(Base64.encode(response))}this.send(request_auth_exchange.tree()),mechanism_found=!0;break}mechanism_found||(null===Strophe.getNodeFromJid(this.jid)?(this._changeConnectStatus(Strophe.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(Strophe.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send($iq({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).tree())))},_sasl_challenge_cb:function(elem){var challenge=Base64.decode(Strophe.getText(elem)),response=this._sasl_mechanism.onChallenge(this,challenge),stanza=$build("response",{xmlns:Strophe.NS.SASL});return""!==response&&stanza.t(Base64.encode(response)),this.send(stanza.tree()),!0},_auth1_cb:function(elem){var iq=$iq({type:"set",id:"_auth_2"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return Strophe.getResourceFromJid(this.jid)||(this.jid=Strophe.getBareJidFromJid(this.jid)+"/strophe"),iq.up().c("resource",{}).t(Strophe.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(iq.tree()),!1},_sasl_success_cb:function(elem){if(this._sasl_data["server-signature"]){var serverSignature,success=Base64.decode(Strophe.getText(elem)),attribMatch=/([a-z]+)=([^,]+)(,|$)/,matches=success.match(attribMatch);if("v"==matches[1]&&(serverSignature=matches[2]),serverSignature!=this._sasl_data["server-signature"])return this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_data={},this._sasl_failure_cb(null)}Strophe.info("SASL authentication succeeded."),this._sasl_mechanism&&this._sasl_mechanism.onSuccess(),this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null);var streamfeature_handlers=[],wrapper=function(handlers,elem){for(;handlers.length;)this.deleteHandler(handlers.pop());return this._sasl_auth1_cb.bind(this)(elem),!1};return streamfeature_handlers.push(this._addSysHandler(function(elem){wrapper.bind(this)(streamfeature_handlers,elem)}.bind(this),null,"stream:features",null,null)),streamfeature_handlers.push(this._addSysHandler(function(elem){wrapper.bind(this)(streamfeature_handlers,elem)}.bind(this),Strophe.NS.STREAM,"features",null,null)),this._sendRestart(),!1},_sasl_auth1_cb:function(elem){this.features=elem;var i,child;for(i=0;i<elem.childNodes.length;i++)child=elem.childNodes[i],"bind"==child.nodeName&&(this.do_bind=!0),"session"==child.nodeName&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var resource=Strophe.getResourceFromJid(this.jid);return resource?this.send($iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).c("resource",{}).t(resource).tree()):this.send($iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).tree()),!1},_sasl_bind_cb:function(elem){if("error"==elem.getAttribute("type")){Strophe.info("SASL binding failed.");var condition,conflict=elem.getElementsByTagName("conflict");return conflict.length>0&&(condition="conflict"),this._changeConnectStatus(Strophe.Status.AUTHFAIL,condition),!1}var jidNode,bind=elem.getElementsByTagName("bind");return bind.length>0?(jidNode=bind[0].getElementsByTagName("jid"),void(jidNode.length>0&&(this.jid=Strophe.getText(jidNode[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send($iq({type:"set",id:"_session_auth_2"}).c("session",{xmlns:Strophe.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null))))):(Strophe.info("SASL binding failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1)},_sasl_session_cb:function(elem){if("result"==elem.getAttribute("type"))this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null);else if("error"==elem.getAttribute("type"))return Strophe.info("Session creation failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(elem){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1},_auth2_cb:function(elem){return"result"==elem.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null)):"error"==elem.getAttribute("type")&&(this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return thand.user=!1,this.addTimeds.push(thand),thand},_addSysHandler:function(handler,ns,name,type,id){var hand=new Strophe.Handler(handler,ns,name,type,id);return hand.user=!1,this.addHandlers.push(hand),hand},_onDisconnectTimeout:function(){return Strophe.info("_onDisconnectTimeout was called"),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){for(var i,thand,since,newList;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;)thand=this.removeTimeds.pop(),i=this.timedHandlers.indexOf(thand),i>=0&&this.timedHandlers.splice(i,1);var now=(new Date).getTime();for(newList=[],i=0;i<this.timedHandlers.length;i++)thand=this.timedHandlers[i],!this.authenticated&&thand.user||(since=thand.lastCalled+thand.period,since-now<=0?thand.run()&&newList.push(thand):newList.push(thand));this.timedHandlers=newList,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(this._onIdle.bind(this),100))}},Strophe.SASLMechanism=function(name,isClientFirst,priority){this.name=name,this.isClientFirst=isClientFirst,this.priority=priority},Strophe.SASLMechanism.prototype={test:function(connection){return!0},onStart:function(connection){this._connection=connection},onChallenge:function(connection,challenge){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},Strophe.SASLAnonymous=function(){},Strophe.SASLAnonymous.prototype=new Strophe.SASLMechanism("ANONYMOUS",!1,10),Strophe.SASLAnonymous.test=function(connection){return null===connection.authcid},Strophe.Connection.prototype.mechanisms[Strophe.SASLAnonymous.prototype.name]=Strophe.SASLAnonymous,Strophe.SASLPlain=function(){},Strophe.SASLPlain.prototype=new Strophe.SASLMechanism("PLAIN",!0,20),Strophe.SASLPlain.test=function(connection){return null!==connection.authcid},Strophe.SASLPlain.prototype.onChallenge=function(connection){var auth_str=connection.authzid;return auth_str+="\0",auth_str+=connection.authcid,auth_str+="\0",auth_str+=connection.pass},Strophe.Connection.prototype.mechanisms[Strophe.SASLPlain.prototype.name]=Strophe.SASLPlain,Strophe.SASLSHA1=function(){},Strophe.SASLSHA1.prototype=new Strophe.SASLMechanism("SCRAM-SHA-1",!0,40),Strophe.SASLSHA1.test=function(connection){return null!==connection.authcid},Strophe.SASLSHA1.prototype.onChallenge=function(connection,challenge,test_cnonce){var cnonce=test_cnonce||MD5.hexdigest(1234567890*Math.random()),auth_str="n="+connection.authcid;return auth_str+=",r=",auth_str+=cnonce,connection._sasl_data.cnonce=cnonce,connection._sasl_data["client-first-message-bare"]=auth_str,auth_str="n,,"+auth_str,this.onChallenge=function(connection,challenge){for(var nonce,salt,iter,Hi,U,U_old,i,k,clientKey,serverKey,clientSignature,responseText="c=biws,",authMessage=connection._sasl_data["client-first-message-bare"]+","+challenge+",",cnonce=connection._sasl_data.cnonce,attribMatch=/([a-z]+)=([^,]+)(,|$)/;challenge.match(attribMatch);){var matches=challenge.match(attribMatch);switch(challenge=challenge.replace(matches[0],""),matches[1]){case"r":nonce=matches[2];break;case"s":salt=matches[2];break;case"i":iter=matches[2]}}if(nonce.substr(0,cnonce.length)!==cnonce)return connection._sasl_data={},connection._sasl_failure_cb();for(responseText+="r="+nonce,authMessage+=responseText,salt=Base64.decode(salt),salt+="\0\0\0",Hi=U_old=SHA1.core_hmac_sha1(connection.pass,salt),i=1;i<iter;i++){for(U=SHA1.core_hmac_sha1(connection.pass,SHA1.binb2str(U_old)),k=0;k<5;k++)Hi[k]^=U[k];U_old=U}for(Hi=SHA1.binb2str(Hi),clientKey=SHA1.core_hmac_sha1(Hi,"Client Key"),serverKey=SHA1.str_hmac_sha1(Hi,"Server Key"),clientSignature=SHA1.core_hmac_sha1(SHA1.str_sha1(SHA1.binb2str(clientKey)),authMessage),connection._sasl_data["server-signature"]=SHA1.b64_hmac_sha1(serverKey,authMessage),k=0;k<5;k++)clientKey[k]^=clientSignature[k];return responseText+=",p="+Base64.encode(SHA1.binb2str(clientKey))}.bind(this),auth_str},Strophe.Connection.prototype.mechanisms[Strophe.SASLSHA1.prototype.name]=Strophe.SASLSHA1,Strophe.SASLMD5=function(){},Strophe.SASLMD5.prototype=new Strophe.SASLMechanism("DIGEST-MD5",!1,30),Strophe.SASLMD5.test=function(connection){return null!==connection.authcid},Strophe.SASLMD5.prototype._quote=function(str){return'"'+str.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},Strophe.SASLMD5.prototype.onChallenge=function(connection,challenge,test_cnonce){for(var matches,attribMatch=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,cnonce=test_cnonce||MD5.hexdigest(""+1234567890*Math.random()),realm="",host=null,nonce="",qop="";challenge.match(attribMatch);)switch(matches=challenge.match(attribMatch),challenge=challenge.replace(matches[0],""),matches[2]=matches[2].replace(/^"(.+)"$/,"$1"),matches[1]){case"realm":realm=matches[2];break;case"nonce":nonce=matches[2];break;case"qop":qop=matches[2];break;case"host":host=matches[2]}var digest_uri=connection.servtype+"/"+connection.domain;null!==host&&(digest_uri=digest_uri+"/"+host);var A1=MD5.hash(connection.authcid+":"+realm+":"+this._connection.pass)+":"+nonce+":"+cnonce,A2="AUTHENTICATE:"+digest_uri,responseText="";return responseText+="charset=utf-8,",responseText+="username="+this._quote(connection.authcid)+",",responseText+="realm="+this._quote(realm)+",",responseText+="nonce="+this._quote(nonce)+",",responseText+="nc=00000001,",responseText+="cnonce="+this._quote(cnonce)+",",responseText+="digest-uri="+this._quote(digest_uri)+",",responseText+="response="+MD5.hexdigest(MD5.hexdigest(A1)+":"+nonce+":00000001:"+cnonce+":auth:"+MD5.hexdigest(A2))+",",responseText+="qop=auth",this.onChallenge=function(){return""}.bind(this),responseText},Strophe.Connection.prototype.mechanisms[Strophe.SASLMD5.prototype.name]=Strophe.SASLMD5,{Strophe:Strophe,$build:$build,$msg:$msg,$iq:$iq,$pres:$pres,SHA1:SHA1,Base64:Base64,MD5:MD5}}),function(root,factory){return"function"==typeof define&&define.amd?void define("strophe-bosh",["strophe-core"],function(core){return factory(core.Strophe,core.$build)}):factory(Strophe,$build)}(this,function(Strophe,$build){return Strophe.Request=function(elem,func,rid,sends){this.id=++Strophe._requestId,this.xmlData=elem,this.data=Strophe.serialize(elem),this.origFunc=func,this.func=func,this.rid=rid,this.date=NaN,this.sends=sends||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var now=new Date;return(now-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var now=new Date;return(now-this.dead)/1e3},this.xhr=this._newXHR()},Strophe.Request.prototype={getResponse:function(){var node=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){if(node=this.xhr.responseXML.documentElement,"parsererror"==node.tagName)throw Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)),"parsererror"}else this.xhr.responseText&&(Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)));return node},_newXHR:function(){var xhr=null;return window.XMLHttpRequest?(xhr=new XMLHttpRequest,xhr.overrideMimeType&&xhr.overrideMimeType("text/xml; charset=utf-8")):window.ActiveXObject&&(xhr=new ActiveXObject("Microsoft.XMLHTTP")),xhr.onreadystatechange=this.func.bind(null,this),xhr}},Strophe.Bosh=function(connection){this._conn=connection,this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.hold=1,this.wait=60,this.window=5,this.errors=0,this._requests=[]},Strophe.Bosh.prototype={strip:null,_buildBody:function(){var bodyWrap=$build("body",{rid:this.rid++,xmlns:Strophe.NS.HTTPBIND});return null!==this.sid&&bodyWrap.attrs({sid:this.sid}),this._conn.options.keepalive&&this._cacheSession(),bodyWrap},_reset:function(){this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.errors=0,window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_connect:function(wait,hold,route){this.wait=wait||this.wait,this.hold=hold||this.hold,this.errors=0;var body=this._buildBody().attrs({to:this._conn.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":Strophe.NS.BOSH});route&&body.attrs({route:route});var _connect_cb=this._conn._connect_cb;this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_connect_cb.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(jid,sid,rid,callback,wait,hold,wind){this._conn.jid=jid,this.sid=sid,this.rid=rid,this._conn.connect_callback=callback,this._conn.domain=Strophe.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=wait||this.wait,this.hold=hold||this.hold,this.window=wind||this.window,this._conn._changeConnectStatus(Strophe.Status.ATTACHED,null)},_restore:function(jid,callback,wait,hold,wind){var session=JSON.parse(window.sessionStorage.getItem("strophe-bosh-session"));if(!("undefined"!=typeof session&&null!==session&&session.rid&&session.sid&&session.jid)||"undefined"!=typeof jid&&"null"!==jid&&Strophe.getBareJidFromJid(session.jid)!=Strophe.getBareJidFromJid(jid))throw{name:"StropheSessionError",message:"_restore: no restoreable session."};this._conn.restored=!0,this._attach(session.jid,session.sid,session.rid,callback,wait,hold,wind)},_cacheSession:function(){this._conn.authenticated?this._conn.jid&&this.rid&&this.sid&&window.sessionStorage.setItem("strophe-bosh-session",JSON.stringify({jid:this._conn.jid,rid:this.rid,sid:this.sid})):window.sessionStorage.removeItem("strophe-bosh-session")},_connect_cb:function(bodyWrap){var cond,conflict,typ=bodyWrap.getAttribute("type");if(null!==typ&&"terminate"==typ)return cond=bodyWrap.getAttribute("condition"),Strophe.error("BOSH-Connection failed: "+cond),conflict=bodyWrap.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(cond),Strophe.Status.CONNFAIL;this.sid||(this.sid=bodyWrap.getAttribute("sid"));var wind=bodyWrap.getAttribute("requests");wind&&(this.window=parseInt(wind,10));var hold=bodyWrap.getAttribute("hold");hold&&(this.hold=parseInt(hold,10));var wait=bodyWrap.getAttribute("wait");wait&&(this.wait=parseInt(wait,10))},_disconnect:function(pres){this._sendTerminate(pres)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(4294967295*Math.random()),window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_emptyQueue:function(){return 0===this._requests.length},_hitError:function(reqStatus){this.errors++,Strophe.warn("request errored, status: "+reqStatus+", number of errors: "+this.errors),this.errors>4&&this._conn._onDisconnectTimeout()},_no_auth_received:function(_callback){_callback=_callback?_callback.bind(this._conn):this._conn._connect_cb.bind(this._conn);var body=this._buildBody();this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_callback.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){this._abortAllRequests()},_abortAllRequests:function(){for(var req;this._requests.length>0;)req=this._requests.pop(),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){}},_onIdle:function(){var data=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===data.length&&!this._conn.disconnecting&&(Strophe.info("no requests during idle cycle, sending blank request"),data.push(null)),!this._conn.paused){if(this._requests.length<2&&data.length>0){for(var body=this._buildBody(),i=0;i<data.length;i++)null!==data[i]&&("restart"===data[i]?body.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":Strophe.NS.BOSH}):body.cnode(data[i]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()}if(this._requests.length>0){var time_elapsed=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait)&&(Strophe.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(Strophe.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}}},_onRequestStateChange:function(func,req){if(Strophe.debug("request id "+req.id+"."+req.sends+" state changed to "+req.xhr.readyState),req.abort)return void(req.abort=!1);var reqStatus;if(4==req.xhr.readyState){reqStatus=0;try{reqStatus=req.xhr.status}catch(e){}if("undefined"==typeof reqStatus&&(reqStatus=0),this.disconnecting&&reqStatus>=400)return void this._hitError(reqStatus);var reqIs0=this._requests[0]==req,reqIs1=this._requests[1]==req;(reqStatus>0&&reqStatus<500||req.sends>5)&&(this._removeRequest(req),Strophe.debug("request id "+req.id+" should now be removed")),200==reqStatus?((reqIs1||reqIs0&&this._requests.length>0&&this._requests[0].age()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),this._conn.nextValidRid(Number(req.rid)+1),Strophe.debug("request id "+req.id+"."+req.sends+" got 200"),func(req),this.errors=0):(Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened"),(0===reqStatus||reqStatus>=400&&reqStatus<600||reqStatus>=12e3)&&(this._hitError(reqStatus),reqStatus>=400&&reqStatus<500&&(this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING,null),this._conn._doDisconnect()))),reqStatus>0&&reqStatus<500||req.sends>5||this._throttledRequestHandler()}},_processRequest:function(i){var self=this,req=this._requests[i],reqStatus=-1;try{4==req.xhr.readyState&&(reqStatus=req.xhr.status)}catch(e){Strophe.error("caught an error in _requests["+i+"], reqStatus: "+reqStatus)}if("undefined"==typeof reqStatus&&(reqStatus=-1),req.sends>this._conn.maxRetries)return void this._conn._onDisconnectTimeout();var time_elapsed=req.age(),primaryTimeout=!isNaN(time_elapsed)&&time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait),secondaryTimeout=null!==req.dead&&req.timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait),requestCompletedWithServerError=4==req.xhr.readyState&&(reqStatus<1||reqStatus>=500);if((primaryTimeout||secondaryTimeout||requestCompletedWithServerError)&&(secondaryTimeout&&Strophe.error("Request "+this._requests[i].id+" timed out (secondary), restarting"),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){},this._requests[i]=new Strophe.Request(req.xmlData,req.origFunc,req.rid,req.sends),req=this._requests[i]),0===req.xhr.readyState){Strophe.debug("request id "+req.id+"."+req.sends+" posting");try{req.xhr.open("POST",this._conn.service,!this._conn.options.sync),req.xhr.setRequestHeader("Content-Type","text/xml; charset=utf-8")}catch(e2){return Strophe.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-service"),void this._conn.disconnect()}var sendFunc=function(){if(req.date=new Date,self._conn.options.customHeaders){var headers=self._conn.options.customHeaders;for(var header in headers)headers.hasOwnProperty(header)&&req.xhr.setRequestHeader(header,headers[header])}req.xhr.send(req.data)};if(req.sends>1){var backoff=1e3*Math.min(Math.floor(Strophe.TIMEOUT*this.wait),Math.pow(req.sends,3));setTimeout(sendFunc,backoff)}else sendFunc();req.sends++,this._conn.xmlOutput!==Strophe.Connection.prototype.xmlOutput&&(req.xmlData.nodeName===this.strip&&req.xmlData.childNodes.length?this._conn.xmlOutput(req.xmlData.childNodes[0]):this._conn.xmlOutput(req.xmlData)),this._conn.rawOutput!==Strophe.Connection.prototype.rawOutput&&this._conn.rawOutput(req.data)}else Strophe.debug("_processRequest: "+(0===i?"first":"second")+" request has readyState of "+req.xhr.readyState)},_removeRequest:function(req){Strophe.debug("removing request");var i;for(i=this._requests.length-1;i>=0;i--)req==this._requests[i]&&this._requests.splice(i,1);req.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(i){var req=this._requests[i];null===req.dead&&(req.dead=new Date),this._processRequest(i)},_reqToData:function(req){try{return req.getResponse()}catch(e){if("parsererror"!=e)throw e;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(pres){Strophe.info("_sendTerminate was called");var body=this._buildBody().attrs({type:"terminate"});pres&&body.cnode(pres.tree());var req=new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"));this._requests.push(req),this._throttledRequestHandler()},_send:function(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(this._conn._onIdle.bind(this._conn),100)},_sendRestart:function(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)},_throttledRequestHandler:function(){this._requests?Strophe.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):Strophe.debug("_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)<this.window&&this._processRequest(1))}},Strophe}),function(root,factory){return"function"==typeof define&&define.amd?void define("strophe-websocket",["strophe-core"],function(core){return factory(core.Strophe,core.$build)}):factory(Strophe,$build)}(this,function(Strophe,$build){return Strophe.Websocket=function(connection){this._conn=connection,this.strip="wrapper";var service=connection.service;if(0!==service.indexOf("ws:")&&0!==service.indexOf("wss:")){var new_service="";new_service+="ws"===connection.options.protocol&&"https:"!==window.location.protocol?"ws":"wss",new_service+="://"+window.location.host,new_service+=0!==service.indexOf("/")?window.location.pathname+service:service,connection.service=new_service}},Strophe.Websocket.prototype={_buildStream:function(){return $build("open",{xmlns:Strophe.NS.FRAMING,to:this._conn.domain,version:"1.0"})},_check_streamerror:function(bodyWrap,connectstatus){var errors;if(errors=bodyWrap.getElementsByTagNameNS?bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM,"error"):bodyWrap.getElementsByTagName("stream:error"),0===errors.length)return!1;for(var error=errors[0],condition="",text="",ns="urn:ietf:params:xml:ns:xmpp-streams",i=0;i<error.childNodes.length;i++){var e=error.childNodes[i];if(e.getAttribute("xmlns")!==ns)break;"text"===e.nodeName?text=e.textContent:condition=e.nodeName}var errorString="WebSocket stream error: ";return errorString+=condition?condition:"unknown",text&&(errorString+=" - "+condition),Strophe.error(errorString),this._conn._changeConnectStatus(connectstatus,condition),this._conn._doDisconnect(),!0},_reset:function(){},_connect:function(){this._closeSocket(),this.socket=new WebSocket(this._conn.service,"xmpp"),this.socket.onopen=this._onOpen.bind(this),this.socket.onerror=this._onError.bind(this),this.socket.onclose=this._onClose.bind(this),this.socket.onmessage=this._connect_cb_wrapper.bind(this)},_connect_cb:function(bodyWrap){var error=this._check_streamerror(bodyWrap,Strophe.Status.CONNFAIL);if(error)return Strophe.Status.CONNFAIL},_handleStreamStart:function(message){var error=!1,ns=message.getAttribute("xmlns");"string"!=typeof ns?error="Missing xmlns in <open />":ns!==Strophe.NS.FRAMING&&(error="Wrong xmlns in <open />: "+ns);var ver=message.getAttribute("version");return"string"!=typeof ver?error="Missing version in <open />":"1.0"!==ver&&(error="Wrong version in <open />: "+ver),!error||(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,error),this._conn._doDisconnect(),!1)},_connect_cb_wrapper:function(message){if(0===message.data.indexOf("<open ")||0===message.data.indexOf("<?xml")){var data=message.data.replace(/^(<\?.*?\?>\s*)*/,"");if(""===data)return;var streamStart=(new DOMParser).parseFromString(data,"text/xml").documentElement;this._conn.xmlInput(streamStart),this._conn.rawInput(message.data),this._handleStreamStart(streamStart)&&this._connect_cb(streamStart)}else if(0===message.data.indexOf("<close ")){this._conn.rawInput(message.data),this._conn.xmlInput(message);var see_uri=message.getAttribute("see-other-uri");see_uri?(this._conn._changeConnectStatus(Strophe.Status.REDIRECT,"Received see-other-uri, resetting connection"),this._conn.reset(),this._conn.service=see_uri,this._connect()):(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Received closing stream"),this._conn._doDisconnect())}else{var string=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(string,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(elem,null,message.data)}},_disconnect:function(pres){if(this.socket&&this.socket.readyState!==WebSocket.CLOSED){pres&&this._conn.send(pres);var close=$build("close",{xmlns:Strophe.NS.FRAMING});this._conn.xmlOutput(close);var closeString=Strophe.serialize(close);this._conn.rawOutput(closeString);try{this.socket.send(closeString)}catch(e){Strophe.info("Couldn't send <close /> tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){Strophe.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(stanza){return"<wrapper>"+stanza+"</wrapper>"},_closeSocket:function(){if(this.socket)try{this.socket.close()}catch(e){}this.socket=null},_emptyQueue:function(){return!0},_onClose:function(){this._conn.connected&&!this._conn.disconnecting?(Strophe.error("Websocket closed unexcectedly"),this._conn._doDisconnect()):Strophe.info("Websocket closed")},_no_auth_received:function(_callback){Strophe.error("Server did not send any auth methods"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Server did not send any auth methods"),_callback&&(_callback=_callback.bind(this._conn))(),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_abortAllRequests:function(){},_onError:function(error){Strophe.error("Websocket error "+error),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"The WebSocket connection could not be established was disconnected."),this._disconnect()},_onIdle:function(){var data=this._conn._data;if(data.length>0&&!this._conn.paused){for(var i=0;i<data.length;i++)if(null!==data[i]){var stanza,rawStanza;stanza="restart"===data[i]?this._buildStream().tree():data[i],rawStanza=Strophe.serialize(stanza),this._conn.xmlOutput(stanza),this._conn.rawOutput(rawStanza),this.socket.send(rawStanza)}this._conn._data=[]}},_onMessage:function(message){var elem,data,close='<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />';if(message.data===close)return this._conn.rawInput(close),this._conn.xmlInput(message),void(this._conn.disconnecting||this._conn._doDisconnect());if(0===message.data.search("<open ")){if(elem=(new DOMParser).parseFromString(message.data,"text/xml").documentElement,!this._handleStreamStart(elem))return}else data=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(data,"text/xml").documentElement;return this._check_streamerror(elem,Strophe.Status.ERROR)?void 0:this._conn.disconnecting&&"presence"===elem.firstChild.nodeName&&"unavailable"===elem.firstChild.getAttribute("type")?(this._conn.xmlInput(elem),void this._conn.rawInput(Strophe.serialize(elem))):void this._conn._dataRecv(elem,message.data)},_onOpen:function(){Strophe.info("Websocket open");var start=this._buildStream();this._conn.xmlOutput(start.tree());var startString=Strophe.serialize(start);this._conn.rawOutput(startString),this.socket.send(startString)},_reqToData:function(stanza){return stanza},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}},Strophe}),callback)return callback(Strophe,$build,$msg,$iq,$pres)}(function(Strophe,build,msg,iq,pres){window.Strophe=Strophe,window.$build=build,window.$msg=msg,window.$iq=iq,window.$pres=pres});/*!
- * Source: lib/strophe.muc.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
-var Occupant,RoomConfig,XmppRoom,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Strophe.addConnectionPlugin("muc",{_connection:null,rooms:{},roomNames:[],init:function(conn){return this._connection=conn,this._muc_handler=null,Strophe.addNamespace("MUC_OWNER",Strophe.NS.MUC+"#owner"),Strophe.addNamespace("MUC_ADMIN",Strophe.NS.MUC+"#admin"),Strophe.addNamespace("MUC_USER",Strophe.NS.MUC+"#user"),Strophe.addNamespace("MUC_ROOMCONF",Strophe.NS.MUC+"#roomconfig")},join:function(room,nick,msg_handler_cb,pres_handler_cb,roster_cb,password,history_attrs,extended_presence){var msg,room_nick,_ref,_this=this;return room_nick=this.test_append_nick(room,nick),msg=$pres({from:this._connection.jid,to:room_nick}).c("x",{xmlns:Strophe.NS.MUC}),null!=history_attrs&&(msg=msg.c("history",history_attrs).up()),null!=password&&msg.cnode(Strophe.xmlElement("password",[],password)),null!=extended_presence&&msg.up().cnode(extended_presence),null==(_ref=this._muc_handler)&&(this._muc_handler=this._connection.addHandler(function(stanza){var from,handler,handlers,id,roomname,x,xmlns,xquery,_i,_len;if(from=stanza.getAttribute("from"),!from)return!0;if(roomname=from.split("/")[0],!_this.rooms[roomname])return!0;if(room=_this.rooms[roomname],handlers={},"message"===stanza.nodeName)handlers=room._message_handlers;else if("presence"===stanza.nodeName&&(xquery=stanza.getElementsByTagName("x"),xquery.length>0))for(_i=0,_len=xquery.length;_i<_len;_i++)if(x=xquery[_i],xmlns=x.getAttribute("xmlns"),xmlns&&xmlns.match(Strophe.NS.MUC)){handlers=room._presence_handlers;break}for(id in handlers)handler=handlers[id],handler(stanza,room)||delete handlers[id];return!0})),this.rooms.hasOwnProperty(room)||(this.rooms[room]=new XmppRoom(this,room,nick,password),this.roomNames.push(room)),pres_handler_cb&&this.rooms[room].addHandler("presence",pres_handler_cb),msg_handler_cb&&this.rooms[room].addHandler("message",msg_handler_cb),roster_cb&&this.rooms[room].addHandler("roster",roster_cb),this._connection.send(msg)},leave:function(room,nick,handler_cb,exit_msg){var id,presence,presenceid,room_nick;return id=this.roomNames.indexOf(room),delete this.rooms[room],id>=0&&(this.roomNames.splice(id,1),0===this.roomNames.length&&(this._connection.deleteHandler(this._muc_handler),this._muc_handler=null)),room_nick=this.test_append_nick(room,nick),presenceid=this._connection.getUniqueId(),presence=$pres({type:"unavailable",id:presenceid,from:this._connection.jid,to:room_nick}),null!=exit_msg&&presence.c("status",exit_msg),null!=handler_cb&&this._connection.addHandler(handler_cb,null,"presence",null,presenceid),this._connection.send(presence),presenceid},message:function(room,nick,message,html_message,type){var msg,msgid,parent,room_nick;return room_nick=this.test_append_nick(room,nick),type=type||(null!=nick?"chat":"groupchat"),msgid=this._connection.getUniqueId(),msg=$msg({to:room_nick,from:this._connection.jid,type:type,id:msgid}).c("body",{xmlns:Strophe.NS.CLIENT}).t(message),msg.up(),null!=html_message&&(msg.c("html",{xmlns:Strophe.NS.XHTML_IM}).c("body",{xmlns:Strophe.NS.XHTML}).t(html_message),0===msg.node.childNodes.length?(parent=msg.node.parentNode,msg.up().up(),msg.node.removeChild(parent)):msg.up().up()),msg.c("x",{xmlns:"jabber:x:event"}).c("composing"),this._connection.send(msg),msgid},groupchat:function(room,message,html_message){return this.message(room,null,message,html_message)},invite:function(room,receiver,reason){var invitation,msgid;return msgid=this._connection.getUniqueId(),invitation=$msg({from:this._connection.jid,to:room,id:msgid}).c("x",{xmlns:Strophe.NS.MUC_USER}).c("invite",{to:receiver}),null!=reason&&invitation.c("reason",reason),this._connection.send(invitation),msgid},directInvite:function(room,receiver,reason,password){var attrs,invitation,msgid;return msgid=this._connection.getUniqueId(),attrs={xmlns:"jabber:x:conference",jid:room},null!=reason&&(attrs.reason=reason),null!=password&&(attrs.password=password),invitation=$msg({from:this._connection.jid,to:receiver,id:msgid}).c("x",attrs),this._connection.send(invitation),msgid},queryOccupants:function(room,success_cb,error_cb){var attrs,info;return attrs={xmlns:Strophe.NS.DISCO_ITEMS},info=$iq({from:this._connection.jid,to:room,type:"get"}).c("query",attrs),this._connection.sendIQ(info,success_cb,error_cb)},configure:function(room,handler_cb,error_cb){var config,stanza;return config=$iq({to:room,type:"get"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),stanza=config.tree(),this._connection.sendIQ(stanza,handler_cb,error_cb)},cancelConfigure:function(room){var config,stanza;return config=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"cancel"}),stanza=config.tree(),this._connection.sendIQ(stanza)},saveConfiguration:function(room,config,success_cb,error_cb){var conf,iq,stanza,_i,_len;if(iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),Strophe.x&&config instanceof Strophe.x.Form)config.type="submit",iq.cnode(config.toXML());else for(iq.c("x",{xmlns:"jabber:x:data",type:"submit"}),_i=0,_len=config.length;_i<_len;_i++)conf=config[_i],iq.cnode(conf).up();return stanza=iq.tree(),this._connection.sendIQ(stanza,success_cb,error_cb)},createInstantRoom:function(room,success_cb,error_cb){var roomiq;return roomiq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"submit"}),this._connection.sendIQ(roomiq.tree(),success_cb,error_cb)},setTopic:function(room,topic){var msg;return msg=$msg({to:room,from:this._connection.jid,type:"groupchat"}).c("subject",{xmlns:"jabber:client"}).t(topic),this._connection.send(msg.tree())},_modifyPrivilege:function(room,item,reason,handler_cb,error_cb){var iq;return iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_ADMIN}).cnode(item.node),null!=reason&&iq.c("reason",reason),this._connection.sendIQ(iq.tree(),handler_cb,error_cb)},modifyRole:function(room,nick,role,reason,handler_cb,error_cb){var item;return item=$build("item",{nick:nick,role:role}),this._modifyPrivilege(room,item,reason,handler_cb,error_cb)},kick:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"none",reason,handler_cb,error_cb)},voice:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"participant",reason,handler_cb,error_cb)},mute:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"visitor",reason,handler_cb,error_cb)},op:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"moderator",reason,handler_cb,error_cb)},deop:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"participant",reason,handler_cb,error_cb)},modifyAffiliation:function(room,jid,affiliation,reason,handler_cb,error_cb){var item;return item=$build("item",{jid:jid,affiliation:affiliation}),this._modifyPrivilege(room,item,reason,handler_cb,error_cb)},ban:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"outcast",reason,handler_cb,error_cb)},member:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"member",reason,handler_cb,error_cb)},revoke:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"none",reason,handler_cb,error_cb)},owner:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"owner",reason,handler_cb,error_cb)},admin:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"admin",reason,handler_cb,error_cb)},changeNick:function(room,user){var presence,room_nick;return room_nick=this.test_append_nick(room,user),presence=$pres({from:this._connection.jid,to:room_nick,id:this._connection.getUniqueId()}),this._connection.send(presence.tree())},setStatus:function(room,user,show,status){var presence,room_nick;return room_nick=this.test_append_nick(room,user),presence=$pres({from:this._connection.jid,to:room_nick}),null!=show&&presence.c("show",show).up(),null!=status&&presence.c("status",status),this._connection.send(presence.tree())},listRooms:function(server,handle_cb,error_cb){var iq;return iq=$iq({to:server,from:this._connection.jid,type:"get"}).c("query",{xmlns:Strophe.NS.DISCO_ITEMS}),this._connection.sendIQ(iq,handle_cb,error_cb)},test_append_nick:function(room,nick){return room+(null!=nick?"/"+Strophe.escapeNode(nick):"")}}),XmppRoom=function(){function XmppRoom(client,name,nick,password){this.client=client,this.name=name,this.nick=nick,this.password=password,this._roomRosterHandler=__bind(this._roomRosterHandler,this),this._addOccupant=__bind(this._addOccupant,this),this.roster={},this._message_handlers={},this._presence_handlers={},this._roster_handlers={},this._handler_ids=0,client.muc&&(this.client=client.muc),this.name=Strophe.getBareJidFromJid(name),this.addHandler("presence",this._roomRosterHandler)}return XmppRoom.prototype.join=function(msg_handler_cb,pres_handler_cb,roster_cb){return this.client.join(this.name,this.nick,msg_handler_cb,pres_handler_cb,roster_cb,this.password)},XmppRoom.prototype.leave=function(handler_cb,message){return this.client.leave(this.name,this.nick,handler_cb,message),delete this.client.rooms[this.name]},XmppRoom.prototype.message=function(nick,message,html_message,type){return this.client.message(this.name,nick,message,html_message,type)},XmppRoom.prototype.groupchat=function(message,html_message){return this.client.groupchat(this.name,message,html_message)},XmppRoom.prototype.invite=function(receiver,reason){return this.client.invite(this.name,receiver,reason)},XmppRoom.prototype.directInvite=function(receiver,reason){return this.client.directInvite(this.name,receiver,reason,this.password)},XmppRoom.prototype.configure=function(handler_cb){return this.client.configure(this.name,handler_cb)},XmppRoom.prototype.cancelConfigure=function(){return this.client.cancelConfigure(this.name)},XmppRoom.prototype.saveConfiguration=function(config){return this.client.saveConfiguration(this.name,config)},XmppRoom.prototype.queryOccupants=function(success_cb,error_cb){return this.client.queryOccupants(this.name,success_cb,error_cb)},XmppRoom.prototype.setTopic=function(topic){return this.client.setTopic(this.name,topic)},XmppRoom.prototype.modifyRole=function(nick,role,reason,success_cb,error_cb){return this.client.modifyRole(this.name,nick,role,reason,success_cb,error_cb)},XmppRoom.prototype.kick=function(nick,reason,handler_cb,error_cb){return this.client.kick(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.voice=function(nick,reason,handler_cb,error_cb){return this.client.voice(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.mute=function(nick,reason,handler_cb,error_cb){return this.client.mute(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.op=function(nick,reason,handler_cb,error_cb){return this.client.op(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.deop=function(nick,reason,handler_cb,error_cb){return this.client.deop(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.modifyAffiliation=function(jid,affiliation,reason,success_cb,error_cb){return this.client.modifyAffiliation(this.name,jid,affiliation,reason,success_cb,error_cb)},XmppRoom.prototype.ban=function(jid,reason,handler_cb,error_cb){return this.client.ban(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.member=function(jid,reason,handler_cb,error_cb){return this.client.member(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.revoke=function(jid,reason,handler_cb,error_cb){return this.client.revoke(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.owner=function(jid,reason,handler_cb,error_cb){return this.client.owner(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.admin=function(jid,reason,handler_cb,error_cb){return this.client.admin(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.changeNick=function(nick){return this.nick=nick,this.client.changeNick(this.name,nick)},XmppRoom.prototype.setStatus=function(show,status){return this.client.setStatus(this.name,this.nick,show,status)},XmppRoom.prototype.addHandler=function(handler_type,handler){var id;switch(id=this._handler_ids++,handler_type){case"presence":this._presence_handlers[id]=handler;break;case"message":this._message_handlers[id]=handler;break;case"roster":this._roster_handlers[id]=handler;break;default:return this._handler_ids--,null}return id},XmppRoom.prototype.removeHandler=function(id){return delete this._presence_handlers[id],delete this._message_handlers[id],delete this._roster_handlers[id]},XmppRoom.prototype._addOccupant=function(data){var occ;return occ=new Occupant(data,this),this.roster[occ.nick]=occ,occ},XmppRoom.prototype._roomRosterHandler=function(pres){var data,handler,id,newnick,nick,_ref;switch(data=XmppRoom._parsePresence(pres),nick=data.nick,newnick=data.newnick||null,data.type){case"error":return;case"unavailable":newnick&&(data.nick=newnick,this.roster[nick]&&this.roster[newnick]&&(this.roster[nick].update(this.roster[newnick]),this.roster[newnick]=this.roster[nick]),this.roster[nick]&&!this.roster[newnick]&&(this.roster[newnick]=this.roster[nick].update(data))),delete this.roster[nick];break;default:this.roster[nick]?this.roster[nick].update(data):this._addOccupant(data)}_ref=this._roster_handlers;for(id in _ref)handler=_ref[id],handler(this.roster,this)||delete this._roster_handlers[id];return!0},XmppRoom._parsePresence=function(pres){var a,c,c2,data,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3,_ref4,_ref5,_ref6,_ref7;for(data={},a=pres.attributes,data.nick=Strophe.getResourceFromJid(a.from.textContent),data.type=(null!=(_ref=a.type)?_ref.textContent:void 0)||null,data.states=[],_ref1=pres.childNodes,_i=0,_len=_ref1.length;_i<_len;_i++)switch(c=_ref1[_i],c.nodeName){case"status":data.status=c.textContent||null;break;case"show":data.show=c.textContent||null;break;case"x":if(a=c.attributes,(null!=(_ref2=a.xmlns)?_ref2.textContent:void 0)===Strophe.NS.MUC_USER)for(_ref3=c.childNodes,_j=0,_len1=_ref3.length;_j<_len1;_j++)switch(c2=_ref3[_j],c2.nodeName){case"item":a=c2.attributes,data.affiliation=(null!=(_ref4=a.affiliation)?_ref4.textContent:void 0)||null,data.role=(null!=(_ref5=a.role)?_ref5.textContent:void 0)||null,data.jid=(null!=(_ref6=a.jid)?_ref6.textContent:void 0)||null,data.newnick=(null!=(_ref7=a.nick)?_ref7.textContent:void 0)||null;break;case"status":c2.attributes.code&&data.states.push(c2.attributes.code.textContent)}}return data},XmppRoom}(),RoomConfig=function(){function RoomConfig(info){this.parse=__bind(this.parse,this),null!=info&&this.parse(info)}return RoomConfig.prototype.parse=function(result){var attr,attrs,child,field,identity,query,_i,_j,_k,_len,_len1,_len2,_ref;for(query=result.getElementsByTagName("query")[0].childNodes,this.identities=[],this.features=[],this.x=[],_i=0,_len=query.length;_i<_len;_i++)switch(child=query[_i],attrs=child.attributes,child.nodeName){case"identity":for(identity={},_j=0,_len1=attrs.length;_j<_len1;_j++)attr=attrs[_j],identity[attr.name]=attr.textContent;this.identities.push(identity);break;case"feature":this.features.push(attrs.var.textContent);break;case"x":if(attrs=child.childNodes[0].attributes,"FORM_TYPE"===!attrs.var.textContent||"hidden"===!attrs.type.textContent)break;for(_ref=child.childNodes,_k=0,_len2=_ref.length;_k<_len2;_k++)field=_ref[_k],field.attributes.type||(attrs=field.attributes,this.x.push({var:attrs.var.textContent,label:attrs.label.textContent||"",value:field.firstChild.textContent||""}))}return{identities:this.identities,features:this.features,x:this.x}},RoomConfig}(),Occupant=function(){function Occupant(data,room){this.room=room,this.update=__bind(this.update,this),this.admin=__bind(this.admin,this),this.owner=__bind(this.owner,this),this.revoke=__bind(this.revoke,this),this.member=__bind(this.member,this),this.ban=__bind(this.ban,this),this.modifyAffiliation=__bind(this.modifyAffiliation,this),this.deop=__bind(this.deop,this),this.op=__bind(this.op,this),this.mute=__bind(this.mute,this),this.voice=__bind(this.voice,this),this.kick=__bind(this.kick,this),this.modifyRole=__bind(this.modifyRole,this),this.update(data)}return Occupant.prototype.modifyRole=function(role,reason,success_cb,error_cb){return this.room.modifyRole(this.nick,role,reason,success_cb,error_cb)},Occupant.prototype.kick=function(reason,handler_cb,error_cb){return this.room.kick(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.voice=function(reason,handler_cb,error_cb){return this.room.voice(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.mute=function(reason,handler_cb,error_cb){return this.room.mute(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.op=function(reason,handler_cb,error_cb){return this.room.op(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.deop=function(reason,handler_cb,error_cb){return this.room.deop(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.modifyAffiliation=function(affiliation,reason,success_cb,error_cb){return this.room.modifyAffiliation(this.jid,affiliation,reason,success_cb,error_cb)},Occupant.prototype.ban=function(reason,handler_cb,error_cb){return this.room.ban(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.member=function(reason,handler_cb,error_cb){return this.room.member(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.revoke=function(reason,handler_cb,error_cb){return this.room.revoke(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.owner=function(reason,handler_cb,error_cb){return this.room.owner(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.admin=function(reason,handler_cb,error_cb){return this.room.admin(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.update=function(data){return this.nick=data.nick||null,this.affiliation=data.affiliation||null,this.role=data.role||null,this.jid=data.jid||null,this.status=data.status||null,this.show=data.show||null,this},Occupant}(),/*!
- * Source: lib/strophe.disco.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
-Strophe.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[],_items:[],init:function(conn){this._connection=conn,this._identities=[],this._features=[],this._items=[],conn.addHandler(this._onDiscoInfo.bind(this),Strophe.NS.DISCO_INFO,"iq","get",null,null),conn.addHandler(this._onDiscoItems.bind(this),Strophe.NS.DISCO_ITEMS,"iq","get",null,null)},addIdentity:function(category,type,name,lang){for(var i=0;i<this._identities.length;i++)if(this._identities[i].category==category&&this._identities[i].type==type&&this._identities[i].name==name&&this._identities[i].lang==lang)return!1;return this._identities.push({category:category,type:type,name:name,lang:lang}),!0},addFeature:function(var_name){for(var i=0;i<this._features.length;i++)if(this._features[i]==var_name)return!1;return this._features.push(var_name),!0},removeFeature:function(var_name){for(var i=0;i<this._features.length;i++)if(this._features[i]===var_name)return this._features.splice(i,1),!0;return!1},addItem:function(jid,name,node,call_back){return!(node&&!call_back)&&(this._items.push({jid:jid,name:name,node:node,call_back:call_back}),!0)},info:function(jid,node,success,error,timeout){var attrs={xmlns:Strophe.NS.DISCO_INFO};node&&(attrs.node=node);var info=$iq({from:this._connection.jid,to:jid,type:"get"}).c("query",attrs);this._connection.sendIQ(info,success,error,timeout)},items:function(jid,node,success,error,timeout){var attrs={xmlns:Strophe.NS.DISCO_ITEMS};node&&(attrs.node=node);var items=$iq({from:this._connection.jid,to:jid,type:"get"}).c("query",attrs);this._connection.sendIQ(items,success,error,timeout)},_buildIQResult:function(stanza,query_attrs){var id=stanza.getAttribute("id"),from=stanza.getAttribute("from"),iqresult=$iq({type:"result",id:id});return null!==from&&iqresult.attrs({to:from}),iqresult.c("query",query_attrs)},_onDiscoInfo:function(stanza){var node=stanza.getElementsByTagName("query")[0].getAttribute("node"),attrs={xmlns:Strophe.NS.DISCO_INFO};node&&(attrs.node=node);for(var iqresult=this._buildIQResult(stanza,attrs),i=0;i<this._identities.length;i++){var attrs={category:this._identities[i].category,type:this._identities[i].type};this._identities[i].name&&(attrs.name=this._identities[i].name),this._identities[i].lang&&(attrs["xml:lang"]=this._identities[i].lang),iqresult.c("identity",attrs).up()}for(var i=0;i<this._features.length;i++)iqresult.c("feature",{var:this._features[i]}).up();return this._connection.send(iqresult.tree()),!0},_onDiscoItems:function(stanza){var query_attrs={xmlns:Strophe.NS.DISCO_ITEMS},node=stanza.getElementsByTagName("query")[0].getAttribute("node");if(node){query_attrs.node=node;for(var items=[],i=0;i<this._items.length;i++)if(this._items[i].node==node){items=this._items[i].call_back(stanza);break}}else var items=this._items;for(var iqresult=this._buildIQResult(stanza,query_attrs),i=0;i<items.length;i++){var attrs={jid:items[i].jid};items[i].name&&(attrs.name=items[i].name),items[i].node&&(attrs.node=items[i].node),iqresult.c("item",attrs).up()}return this._connection.send(iqresult.tree()),!0}}),/*!
- * Source: lib/strophe.caps.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
-/**
+!function(callback){if(function(root,factory){"function"==typeof define&&define.amd?define("strophe-base64",function(){return factory()}):root.Base64=factory()}(this,function(){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",obj={encode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;do chr1=input.charCodeAt(i++),chr2=input.charCodeAt(i++),chr3=input.charCodeAt(i++),enc1=chr1>>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?(enc2=(3&chr1)<<4,enc3=enc4=64):isNaN(chr3)&&(enc4=64),output=output+keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);while(i<input.length);return output},decode:function(input){var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do enc1=keyStr.indexOf(input.charAt(i++)),enc2=keyStr.indexOf(input.charAt(i++)),enc3=keyStr.indexOf(input.charAt(i++)),enc4=keyStr.indexOf(input.charAt(i++)),chr1=enc1<<2|enc2>>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));while(i<input.length);return output}};return obj}),function(root,factory){"function"==typeof define&&define.amd?define("strophe-sha1",function(){return factory()}):root.SHA1=factory()}(this,function(){function core_sha1(x,len){x[len>>5]|=128<<24-len%32,x[(len+64>>9<<4)+15]=len;var i,j,t,olda,oldb,oldc,oldd,olde,w=new Array(80),a=1732584193,b=-271733879,c=-1732584194,d=271733878,e=-1009589776;for(i=0;i<x.length;i+=16){for(olda=a,oldb=b,oldc=c,oldd=d,olde=e,j=0;j<80;j++)j<16?w[j]=x[i+j]:w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1),t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j))),e=d,d=c,c=rol(b,30),b=a,a=t;a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd),e=safe_add(e,olde)}return[a,b,c,d,e]}function sha1_ft(t,b,c,d){return t<20?b&c|~b&d:t<40?b^c^d:t<60?b&c|b&d|c&d:b^c^d}function sha1_kt(t){return t<20?1518500249:t<40?1859775393:t<60?-1894007588:-899497514}function core_hmac_sha1(key,data){var bkey=str2binb(key);bkey.length>16&&(bkey=core_sha1(bkey,8*key.length));for(var ipad=new Array(16),opad=new Array(16),i=0;i<16;i++)ipad[i]=909522486^bkey[i],opad[i]=1549556828^bkey[i];var hash=core_sha1(ipad.concat(str2binb(data)),512+8*data.length);return core_sha1(opad.concat(hash),672)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function rol(num,cnt){return num<<cnt|num>>>32-cnt}function str2binb(str){for(var bin=[],mask=255,i=0;i<8*str.length;i+=8)bin[i>>5]|=(str.charCodeAt(i/8)&mask)<<24-i%32;return bin}function binb2str(bin){for(var str="",mask=255,i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>24-i%32&mask);return str}function binb2b64(binarray){for(var triplet,j,tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",str="",i=0;i<4*binarray.length;i+=3)for(triplet=(binarray[i>>2]>>8*(3-i%4)&255)<<16|(binarray[i+1>>2]>>8*(3-(i+1)%4)&255)<<8|binarray[i+2>>2]>>8*(3-(i+2)%4)&255,j=0;j<4;j++)str+=8*i+6*j>32*binarray.length?"=":tab.charAt(triplet>>6*(3-j)&63);return str}return{b64_hmac_sha1:function(key,data){return binb2b64(core_hmac_sha1(key,data))},b64_sha1:function(s){return binb2b64(core_sha1(str2binb(s),8*s.length))},binb2str:binb2str,core_hmac_sha1:core_hmac_sha1,str_hmac_sha1:function(key,data){return binb2str(core_hmac_sha1(key,data))},str_sha1:function(s){return binb2str(core_sha1(str2binb(s),8*s.length))}}}),function(root,factory){"function"==typeof define&&define.amd?define("strophe-md5",function(){return factory()}):root.MD5=factory()}(this,function(b){var safe_add=function(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw},bit_rol=function(num,cnt){return num<<cnt|num>>>32-cnt},str2binl=function(str){for(var bin=[],i=0;i<8*str.length;i+=8)bin[i>>5]|=(255&str.charCodeAt(i/8))<<i%32;return bin},binl2str=function(bin){for(var str="",i=0;i<32*bin.length;i+=8)str+=String.fromCharCode(bin[i>>5]>>>i%32&255);return str},binl2hex=function(binarray){for(var hex_tab="0123456789abcdef",str="",i=0;i<4*binarray.length;i++)str+=hex_tab.charAt(binarray[i>>2]>>i%4*8+4&15)+hex_tab.charAt(binarray[i>>2]>>i%4*8&15);return str},md5_cmn=function(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)},md5_ff=function(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)},md5_gg=function(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)},md5_hh=function(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)},md5_ii=function(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)},core_md5=function(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var olda,oldb,oldc,oldd,a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16)olda=a,oldb=b,oldc=c,oldd=d,a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd);return[a,b,c,d]},obj={hexdigest:function(s){return binl2hex(core_md5(str2binl(s),8*s.length))},hash:function(s){return binl2str(core_md5(str2binl(s),8*s.length))}};return obj}),function(root,factory){"function"==typeof define&&define.amd?define("strophe-utils",function(){return factory()}):root.stropheUtils=factory()}(this,function(){var utils={utf16to8:function(str){var i,c,out="",len=str.length;for(i=0;i<len;i++)c=str.charCodeAt(i),c>=0&&c<=127?out+=str.charAt(i):c>2047?(out+=String.fromCharCode(224|c>>12&15),out+=String.fromCharCode(128|c>>6&63),out+=String.fromCharCode(128|c>>0&63)):(out+=String.fromCharCode(192|c>>6&31),out+=String.fromCharCode(128|c>>0&63));return out},addCookies:function(cookies){var cookieName,cookieObj,isObj,cookieValue,expires,domain,path;for(cookieName in cookies||{})expires="",domain="",path="",cookieObj=cookies[cookieName],isObj="object"==typeof cookieObj,cookieValue=escape(unescape(isObj?cookieObj.value:cookieObj)),isObj&&(expires=cookieObj.expires?";expires="+cookieObj.expires:"",domain=cookieObj.domain?";domain="+cookieObj.domain:"",path=cookieObj.path?";path="+cookieObj.path:""),document.cookie=cookieName+"="+cookieValue+expires+domain+path}};return utils}),function(root,factory){return"function"==typeof define&&define.amd?void define("strophe-polyfill",[],function(){return factory()}):factory()}(this,function(){Function.prototype.bind||(Function.prototype.bind=function(obj){var func=this,_slice=Array.prototype.slice,_concat=Array.prototype.concat,_args=_slice.call(arguments,1);return function(){return func.apply(obj?obj:this,_concat.call(_args,_slice.call(arguments,0)))}}),Array.isArray||(Array.isArray=function(arg){return"[object Array]"===Object.prototype.toString.call(arg)}),Array.prototype.indexOf||(Array.prototype.indexOf=function(elt){var len=this.length,from=Number(arguments[1])||0;for(from=from<0?Math.ceil(from):Math.floor(from),from<0&&(from+=len);from<len;from++)if(from in this&&this[from]===elt)return from;return-1})}),Array.prototype.forEach||(Array.prototype.forEach=function(callback,thisArg){var T,k;if(null===this)throw new TypeError(" this is null or not defined");var O=Object(this),len=O.length>>>0;if("function"!=typeof callback)throw new TypeError(callback+" is not a function");for(arguments.length>1&&(T=thisArg),k=0;k<len;){var kValue;k in O&&(kValue=O[k],callback.call(T,kValue,k,O)),k++}}),function(root,factory){if("function"==typeof define&&define.amd)define("strophe-core",["strophe-sha1","strophe-base64","strophe-md5","strophe-utils","strophe-polyfill"],function(){return factory.apply(this,arguments)});else{var o=factory(root.SHA1,root.Base64,root.MD5,root.stropheUtils);window.Strophe=o.Strophe,window.$build=o.$build,window.$iq=o.$iq,window.$msg=o.$msg,window.$pres=o.$pres,window.SHA1=o.SHA1,window.Base64=o.Base64,window.MD5=o.MD5,window.b64_hmac_sha1=o.SHA1.b64_hmac_sha1,window.b64_sha1=o.SHA1.b64_sha1,window.str_hmac_sha1=o.SHA1.str_hmac_sha1,window.str_sha1=o.SHA1.str_sha1}}(this,function(SHA1,Base64,MD5,utils){function $build(name,attrs){return new Strophe.Builder(name,attrs)}function $msg(attrs){return new Strophe.Builder("message",attrs)}function $iq(attrs){return new Strophe.Builder("iq",attrs)}function $pres(attrs){return new Strophe.Builder("presence",attrs)}var Strophe;return Strophe={VERSION:"1.2.9",NS:{HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},XHTML:{tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"],validTag:function(tag){for(var i=0;i<Strophe.XHTML.tags.length;i++)if(tag==Strophe.XHTML.tags[i])return!0;return!1},validAttribute:function(tag,attribute){if("undefined"!=typeof Strophe.XHTML.attributes[tag]&&Strophe.XHTML.attributes[tag].length>0)for(var i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute==Strophe.XHTML.attributes[tag][i])return!0;return!1},validCSS:function(style){for(var i=0;i<Strophe.XHTML.css.length;i++)if(style==Strophe.XHTML.css[i])return!0;return!1}},Status:{ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8,REDIRECT:9,CONNTIMEOUT:10},LogLevel:{DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4},ElementType:{NORMAL:1,TEXT:3,CDATA:4,FRAGMENT:11},TIMEOUT:1.1,SECONDARY_TIMEOUT:.1,addNamespace:function(name,value){Strophe.NS[name]=value},forEachChild:function(elem,elemName,func){var i,childNode;for(i=0;i<elem.childNodes.length;i++)childNode=elem.childNodes[i],childNode.nodeType!=Strophe.ElementType.NORMAL||elemName&&!this.isTagEqual(childNode,elemName)||func(childNode)},isTagEqual:function(el,name){return el.tagName==name},_xmlGenerator:null,_makeGenerator:function(){var doc;return void 0===document.implementation.createDocument||document.implementation.createDocument&&document.documentMode&&document.documentMode<10?(doc=this._getIEXmlDom(),doc.appendChild(doc.createElement("strophe"))):doc=document.implementation.createDocument("jabber:client","strophe",null),doc},xmlGenerator:function(){return Strophe._xmlGenerator||(Strophe._xmlGenerator=Strophe._makeGenerator()),Strophe._xmlGenerator},_getIEXmlDom:function(){for(var doc=null,docStrings=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"],d=0;d<docStrings.length&&null===doc;d++)try{doc=new ActiveXObject(docStrings[d])}catch(e){doc=null}return doc},xmlElement:function(name){if(!name)return null;var a,i,k,node=Strophe.xmlGenerator().createElement(name);for(a=1;a<arguments.length;a++){var arg=arguments[a];if(arg)if("string"==typeof arg||"number"==typeof arg)node.appendChild(Strophe.xmlTextNode(arg));else if("object"==typeof arg&&"function"==typeof arg.sort)for(i=0;i<arg.length;i++){var attr=arg[i];"object"==typeof attr&&"function"==typeof attr.sort&&void 0!==attr[1]&&null!==attr[1]&&node.setAttribute(attr[0],attr[1])}else if("object"==typeof arg)for(k in arg)arg.hasOwnProperty(k)&&void 0!==arg[k]&&null!==arg[k]&&node.setAttribute(k,arg[k])}return node},xmlescape:function(text){return text=text.replace(/\&/g,"&amp;"),text=text.replace(/</g,"&lt;"),text=text.replace(/>/g,"&gt;"),text=text.replace(/'/g,"&apos;"),text=text.replace(/"/g,"&quot;")},xmlunescape:function(text){return text=text.replace(/\&amp;/g,"&"),text=text.replace(/&lt;/g,"<"),text=text.replace(/&gt;/g,">"),text=text.replace(/&apos;/g,"'"),text=text.replace(/&quot;/g,'"')},xmlTextNode:function(text){return Strophe.xmlGenerator().createTextNode(text)},xmlHtmlNode:function(html){var node;if(window.DOMParser){var parser=new DOMParser;node=parser.parseFromString(html,"text/xml")}else node=new ActiveXObject("Microsoft.XMLDOM"),node.async="false",node.loadXML(html);return node},getText:function(elem){if(!elem)return null;var str="";0===elem.childNodes.length&&elem.nodeType==Strophe.ElementType.TEXT&&(str+=elem.nodeValue);for(var i=0;i<elem.childNodes.length;i++)elem.childNodes[i].nodeType==Strophe.ElementType.TEXT&&(str+=elem.childNodes[i].nodeValue);return Strophe.xmlescape(str)},copyElement:function(elem){var i,el;if(elem.nodeType==Strophe.ElementType.NORMAL){for(el=Strophe.xmlElement(elem.tagName),i=0;i<elem.attributes.length;i++)el.setAttribute(elem.attributes[i].nodeName,elem.attributes[i].value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.copyElement(elem.childNodes[i]))}else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlGenerator().createTextNode(elem.nodeValue));return el},createHtml:function(elem){var i,el,j,tag,attribute,value,css,cssAttrs,attr,cssName,cssValue;if(elem.nodeType==Strophe.ElementType.NORMAL)if(tag=elem.nodeName.toLowerCase(),Strophe.XHTML.validTag(tag))try{for(el=Strophe.xmlElement(tag),i=0;i<Strophe.XHTML.attributes[tag].length;i++)if(attribute=Strophe.XHTML.attributes[tag][i],value=elem.getAttribute(attribute),"undefined"!=typeof value&&null!==value&&""!==value&&value!==!1&&0!==value)if("style"==attribute&&"object"==typeof value&&"undefined"!=typeof value.cssText&&(value=value.cssText),"style"==attribute){for(css=[],cssAttrs=value.split(";"),j=0;j<cssAttrs.length;j++)attr=cssAttrs[j].split(":"),cssName=attr[0].replace(/^\s*/,"").replace(/\s*$/,"").toLowerCase(),Strophe.XHTML.validCSS(cssName)&&(cssValue=attr[1].replace(/^\s*/,"").replace(/\s*$/,""),css.push(cssName+": "+cssValue));css.length>0&&(value=css.join("; "),el.setAttribute(attribute,value))}else el.setAttribute(attribute,value);for(i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]))}catch(e){el=Strophe.xmlTextNode("")}else for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else if(elem.nodeType==Strophe.ElementType.FRAGMENT)for(el=Strophe.xmlGenerator().createDocumentFragment(),i=0;i<elem.childNodes.length;i++)el.appendChild(Strophe.createHtml(elem.childNodes[i]));else elem.nodeType==Strophe.ElementType.TEXT&&(el=Strophe.xmlTextNode(elem.nodeValue));return el},escapeNode:function(node){return"string"!=typeof node?node:node.replace(/^\s+|\s+$/g,"").replace(/\\/g,"\\5c").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(node){return"string"!=typeof node?node:node.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:function(jid){return jid.indexOf("@")<0?null:jid.split("@")[0]},getDomainFromJid:function(jid){var bare=Strophe.getBareJidFromJid(jid);if(bare.indexOf("@")<0)return bare;var parts=bare.split("@");return parts.splice(0,1),parts.join("@")},getResourceFromJid:function(jid){var s=jid.split("/");return s.length<2?null:(s.splice(0,1),s.join("/"))},getBareJidFromJid:function(jid){return jid?jid.split("/")[0]:null},_handleError:function(e){"undefined"!=typeof e.stack&&Strophe.fatal(e.stack),e.sourceURL?Strophe.fatal("error: "+this.handler+" "+e.sourceURL+":"+e.line+" - "+e.name+": "+e.message):e.fileName?Strophe.fatal("error: "+this.handler+" "+e.fileName+":"+e.lineNumber+" - "+e.name+": "+e.message):Strophe.fatal("error: "+e.message)},log:function(level,msg){},debug:function(msg){this.log(this.LogLevel.DEBUG,msg)},info:function(msg){this.log(this.LogLevel.INFO,msg)},warn:function(msg){this.log(this.LogLevel.WARN,msg)},error:function(msg){this.log(this.LogLevel.ERROR,msg)},fatal:function(msg){this.log(this.LogLevel.FATAL,msg)},serialize:function(elem){var result;if(!elem)return null;"function"==typeof elem.tree&&(elem=elem.tree());var i,child,nodeName=elem.nodeName;for(elem.getAttribute("_realname")&&(nodeName=elem.getAttribute("_realname")),result="<"+nodeName,i=0;i<elem.attributes.length;i++)"_realname"!=elem.attributes[i].nodeName&&(result+=" "+elem.attributes[i].nodeName+"='"+Strophe.xmlescape(elem.attributes[i].value)+"'");if(elem.childNodes.length>0){for(result+=">",i=0;i<elem.childNodes.length;i++)switch(child=elem.childNodes[i],child.nodeType){case Strophe.ElementType.NORMAL:result+=Strophe.serialize(child);break;case Strophe.ElementType.TEXT:result+=Strophe.xmlescape(child.nodeValue);break;case Strophe.ElementType.CDATA:result+="<![CDATA["+child.nodeValue+"]]>"}result+="</"+nodeName+">"}else result+="/>";return result},_requestId:0,_connectionPlugins:{},addConnectionPlugin:function(name,ptype){Strophe._connectionPlugins[name]=ptype}},Strophe.Builder=function(name,attrs){"presence"!=name&&"message"!=name&&"iq"!=name||(attrs&&!attrs.xmlns?attrs.xmlns=Strophe.NS.CLIENT:attrs||(attrs={xmlns:Strophe.NS.CLIENT})),this.nodeTree=Strophe.xmlElement(name,attrs),this.node=this.nodeTree},Strophe.Builder.prototype={tree:function(){return this.nodeTree},toString:function(){return Strophe.serialize(this.nodeTree)},up:function(){return this.node=this.node.parentNode,this},root:function(){return this.node=this.nodeTree,this},attrs:function(moreattrs){for(var k in moreattrs)moreattrs.hasOwnProperty(k)&&(void 0===moreattrs[k]?this.node.removeAttribute(k):this.node.setAttribute(k,moreattrs[k]));return this},c:function(name,attrs,text){var child=Strophe.xmlElement(name,attrs,text);return this.node.appendChild(child),"string"!=typeof text&&"number"!=typeof text&&(this.node=child),this},cnode:function(elem){var impNode,xmlGen=Strophe.xmlGenerator();try{impNode=void 0!==xmlGen.importNode}catch(e){impNode=!1}var newElem=impNode?xmlGen.importNode(elem,!0):Strophe.copyElement(elem);return this.node.appendChild(newElem),this.node=newElem,this},t:function(text){var child=Strophe.xmlTextNode(text);return this.node.appendChild(child),this},h:function(html){var fragment=document.createElement("body");fragment.innerHTML=html;for(var xhtml=Strophe.createHtml(fragment);xhtml.childNodes.length>0;)this.node.appendChild(xhtml.childNodes[0]);return this}},Strophe.Handler=function(handler,ns,name,type,id,from,options){this.handler=handler,this.ns=ns,this.name=name,this.type=type,this.id=id,this.options=options||{matchBareFromJid:!1,ignoreNamespaceFragment:!1},this.options.matchBare&&(Strophe.warn('The "matchBare" option is deprecated, use "matchBareFromJid" instead.'),this.options.matchBareFromJid=this.options.matchBare,delete this.options.matchBare),this.options.matchBareFromJid?this.from=from?Strophe.getBareJidFromJid(from):null:this.from=from,this.user=!0},Strophe.Handler.prototype={getNamespace:function(elem){var elNamespace=elem.getAttribute("xmlns");return elNamespace&&this.options.ignoreNamespaceFragment&&(elNamespace=elNamespace.split("#")[0]),elNamespace},namespaceMatch:function(elem){var nsMatch=!1;if(!this.ns)return!0;var that=this;return Strophe.forEachChild(elem,null,function(elem){that.getNamespace(elem)===that.ns&&(nsMatch=!0)}),nsMatch=nsMatch||this.getNamespace(elem)===this.ns},isMatch:function(elem){var from=elem.getAttribute("from");this.options.matchBareFromJid&&(from=Strophe.getBareJidFromJid(from));var elem_type=elem.getAttribute("type");return!(!this.namespaceMatch(elem)||this.name&&!Strophe.isTagEqual(elem,this.name)||this.type&&(Array.isArray(this.type)?this.type.indexOf(elem_type)==-1:elem_type!=this.type)||this.id&&elem.getAttribute("id")!=this.id||this.from&&from!=this.from)},run:function(elem){var result=null;try{result=this.handler(elem)}catch(e){throw Strophe._handleError(e),e}return result},toString:function(){return"{Handler: "+this.handler+"("+this.name+","+this.id+","+this.ns+")}"}},Strophe.TimedHandler=function(period,handler){this.period=period,this.handler=handler,this.lastCalled=(new Date).getTime(),this.user=!0},Strophe.TimedHandler.prototype={run:function(){return this.lastCalled=(new Date).getTime(),this.handler()},reset:function(){this.lastCalled=(new Date).getTime()},toString:function(){return"{TimedHandler: "+this.handler+"("+this.period+")}"}},Strophe.Connection=function(service,options){this.service=service,this.options=options||{};var proto=this.options.protocol||"";0===service.indexOf("ws:")||0===service.indexOf("wss:")||0===proto.indexOf("ws")?this._proto=new Strophe.Websocket(this):this._proto=new Strophe.Bosh(this),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this.protocolErrorHandlers={HTTP:{},websocket:{}},this._idleTimeout=null,this._disconnectTimeout=null,this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.do_authentication=!0,this.paused=!1,this.restored=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(function(){this._onIdle()}.bind(this),100),utils.addCookies(this.options.cookies),this.registerSASLMechanisms(this.options.mechanisms);for(var k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var ptype=Strophe._connectionPlugins[k],F=function(){};F.prototype=ptype,this[k]=new F,this[k].init(this)}},Strophe.Connection.prototype={reset:function(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.restored=!1,this._data=[],this._requests=[],this._uniqueId=0},pause:function(){this.paused=!0},resume:function(){this.paused=!1},getUniqueId:function(suffix){var uuid="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=16*Math.random()|0,v="x"==c?r:3&r|8;return v.toString(16)});return"string"==typeof suffix||"number"==typeof suffix?uuid+":"+suffix:uuid+""},addProtocolErrorHandler:function(protocol,status_code,callback){this.protocolErrorHandlers[protocol][status_code]=callback},connect:function(jid,pass,callback,wait,hold,route,authcid){this.jid=jid,this.authzid=Strophe.getBareJidFromJid(this.jid),this.authcid=authcid||Strophe.getNodeFromJid(this.jid),this.pass=pass,this.servtype="xmpp",this.connect_callback=callback,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.restored=!1,this.domain=Strophe.getDomainFromJid(this.jid),this._changeConnectStatus(Strophe.Status.CONNECTING,null),this._proto._connect(wait,hold,route)},attach:function(jid,sid,rid,callback,wait,hold,wind){if(!(this._proto instanceof Strophe.Bosh))throw{name:"StropheSessionError",message:'The "attach" method can only be used with a BOSH connection.'};this._proto._attach(jid,sid,rid,callback,wait,hold,wind)},restore:function(jid,callback,wait,hold,wind){if(!this._sessionCachingSupported())throw{name:"StropheSessionError",message:'The "restore" method can only be used with a BOSH connection.'};this._proto._restore(jid,callback,wait,hold,wind)},_sessionCachingSupported:function(){if(this._proto instanceof Strophe.Bosh){if(!JSON)return!1;try{window.sessionStorage.setItem("_strophe_","_strophe_"),window.sessionStorage.removeItem("_strophe_")}catch(e){return!1}return!0}return!1},xmlInput:function(elem){},xmlOutput:function(elem){},rawInput:function(data){},rawOutput:function(data){},nextValidRid:function(rid){},send:function(elem){if(null!==elem){if("function"==typeof elem.sort)for(var i=0;i<elem.length;i++)this._queueData(elem[i]);else"function"==typeof elem.tree?this._queueData(elem.tree()):this._queueData(elem);this._proto._send()}},flush:function(){clearTimeout(this._idleTimeout),this._onIdle()},sendIQ:function(elem,callback,errback,timeout){var timeoutHandler=null,that=this;"function"==typeof elem.tree&&(elem=elem.tree());var id=elem.getAttribute("id");id||(id=this.getUniqueId("sendIQ"),elem.setAttribute("id",id));var handler=this.addHandler(function(stanza){timeoutHandler&&that.deleteTimedHandler(timeoutHandler);var iqtype=stanza.getAttribute("type");if("result"==iqtype)callback&&callback(stanza);else{if("error"!=iqtype)throw{name:"StropheError",message:"Got bad IQ type of "+iqtype};errback&&errback(stanza)}},null,"iq",["error","result"],id);return timeout&&(timeoutHandler=this.addTimedHandler(timeout,function(){return that.deleteHandler(handler),errback&&errback(null),!1})),this.send(elem),id},_queueData:function(element){if(null===element||!element.tagName||!element.childNodes)throw{name:"StropheError",message:"Cannot queue non-DOMElement."};this._data.push(element)},_sendRestart:function(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(function(){this._onIdle()}.bind(this),100)},addTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return this.addTimeds.push(thand),thand},deleteTimedHandler:function(handRef){this.removeTimeds.push(handRef)},addHandler:function(handler,ns,name,type,id,from,options){var hand=new Strophe.Handler(handler,ns,name,type,id,from,options);return this.addHandlers.push(hand),hand},deleteHandler:function(handRef){this.removeHandlers.push(handRef);var i=this.addHandlers.indexOf(handRef);i>=0&&this.addHandlers.splice(i,1)},registerSASLMechanisms:function(mechanisms){this.mechanisms={},mechanisms=mechanisms||[Strophe.SASLAnonymous,Strophe.SASLExternal,Strophe.SASLMD5,Strophe.SASLOAuthBearer,Strophe.SASLPlain,Strophe.SASLSHA1],mechanisms.forEach(this.registerSASLMechanism.bind(this))},registerSASLMechanism:function(mechanism){this.mechanisms[mechanism.prototype.name]=mechanism},disconnect:function(reason){if(this._changeConnectStatus(Strophe.Status.DISCONNECTING,reason),Strophe.info("Disconnect was called because: "+reason),this.connected){var pres=!1;this.disconnecting=!0,this.authenticated&&(pres=$pres({xmlns:Strophe.NS.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(3e3,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(pres)}else Strophe.info("Disconnect was called before Strophe connected to the server"),this._proto._abortAllRequests()},_changeConnectStatus:function(status,condition){for(var k in Strophe._connectionPlugins)if(Strophe._connectionPlugins.hasOwnProperty(k)){var plugin=this[k];if(plugin.statusChanged)try{plugin.statusChanged(status,condition)}catch(err){Strophe.error(""+k+" plugin caused an exception changing status: "+err)}}if(this.connect_callback)try{this.connect_callback(status,condition)}catch(e){Strophe._handleError(e),Strophe.error("User connection callback caused an exception: "+e)}},_doDisconnect:function(condition){"number"==typeof this._idleTimeout&&clearTimeout(this._idleTimeout),null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),Strophe.info("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.restored=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(Strophe.Status.DISCONNECTED,condition),this.connected=!1},_dataRecv:function(req,raw){Strophe.info("_dataRecv called");var elem=this._proto._reqToData(req);if(null!==elem){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&(elem.nodeName===this._proto.strip&&elem.childNodes.length?this.xmlInput(elem.childNodes[0]):this.xmlInput(elem)),this.rawInput!==Strophe.Connection.prototype.rawInput&&(raw?this.rawInput(raw):this.rawInput(Strophe.serialize(elem)));for(var i,hand;this.removeHandlers.length>0;)hand=this.removeHandlers.pop(),i=this.handlers.indexOf(hand),i>=0&&this.handlers.splice(i,1);for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())return void this._doDisconnect();var cond,conflict,type=elem.getAttribute("type");if(null!==type&&"terminate"==type){if(this.disconnecting)return;return cond=elem.getAttribute("condition"),conflict=elem.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),void this._doDisconnect(cond)}var that=this;Strophe.forEachChild(elem,null,function(child){var i,newList;for(newList=that.handlers,that.handlers=[],i=0;i<newList.length;i++){var hand=newList[i];try{!hand.isMatch(child)||!that.authenticated&&hand.user?that.handlers.push(hand):hand.run(child)&&that.handlers.push(hand)}catch(e){Strophe.warn("Removing Strophe handlers due to uncaught exception: "+e.message)}}})}},mechanisms:{},_connect_cb:function(req,_callback,raw){
+Strophe.info("_connect_cb was called"),this.connected=!0;var bodyWrap;try{bodyWrap=this._proto._reqToData(req)}catch(e){if("badformat"!=e)throw e;this._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-format"),this._doDisconnect("bad-format")}if(bodyWrap){this.xmlInput!==Strophe.Connection.prototype.xmlInput&&(bodyWrap.nodeName===this._proto.strip&&bodyWrap.childNodes.length?this.xmlInput(bodyWrap.childNodes[0]):this.xmlInput(bodyWrap)),this.rawInput!==Strophe.Connection.prototype.rawInput&&(raw?this.rawInput(raw):this.rawInput(Strophe.serialize(bodyWrap)));var conncheck=this._proto._connect_cb(bodyWrap);if(conncheck!==Strophe.Status.CONNFAIL){var hasFeatures;if(hasFeatures=bodyWrap.getElementsByTagNameNS?bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM,"features").length>0:bodyWrap.getElementsByTagName("stream:features").length>0||bodyWrap.getElementsByTagName("features").length>0,!hasFeatures)return void this._proto._no_auth_received(_callback);var i,mech,matched=[],mechanisms=bodyWrap.getElementsByTagName("mechanism");if(mechanisms.length>0)for(i=0;i<mechanisms.length;i++)mech=Strophe.getText(mechanisms[i]),this.mechanisms[mech]&&matched.push(this.mechanisms[mech]);return 0===matched.length&&0===bodyWrap.getElementsByTagName("auth").length?void this._proto._no_auth_received(_callback):void(this.do_authentication!==!1&&this.authenticate(matched))}}},sortMechanismsByPriority:function(mechanisms){var i,j,higher,swap;for(i=0;i<mechanisms.length-1;++i){for(higher=i,j=i+1;j<mechanisms.length;++j)mechanisms[j].prototype.priority>mechanisms[higher].prototype.priority&&(higher=j);higher!=i&&(swap=mechanisms[i],mechanisms[i]=mechanisms[higher],mechanisms[higher]=swap)}return mechanisms},_attemptSASLAuth:function(mechanisms){mechanisms=this.sortMechanismsByPriority(mechanisms||[]);var i=0,mechanism_found=!1;for(i=0;i<mechanisms.length;++i)if(mechanisms[i].prototype.test(this)){this._sasl_success_handler=this._addSysHandler(this._sasl_success_cb.bind(this),null,"success",null,null),this._sasl_failure_handler=this._addSysHandler(this._sasl_failure_cb.bind(this),null,"failure",null,null),this._sasl_challenge_handler=this._addSysHandler(this._sasl_challenge_cb.bind(this),null,"challenge",null,null),this._sasl_mechanism=new mechanisms[i],this._sasl_mechanism.onStart(this);var request_auth_exchange=$build("auth",{xmlns:Strophe.NS.SASL,mechanism:this._sasl_mechanism.name});if(this._sasl_mechanism.isClientFirst){var response=this._sasl_mechanism.onChallenge(this,null);request_auth_exchange.t(Base64.encode(response))}this.send(request_auth_exchange.tree()),mechanism_found=!0;break}return mechanism_found},_attemptLegacyAuth:function(){null===Strophe.getNodeFromJid(this.jid)?(this._changeConnectStatus(Strophe.Status.CONNFAIL,"x-strophe-bad-non-anon-jid"),this.disconnect("x-strophe-bad-non-anon-jid")):(this._changeConnectStatus(Strophe.Status.AUTHENTICATING,null),this._addSysHandler(this._auth1_cb.bind(this),null,null,null,"_auth_1"),this.send($iq({type:"get",to:this.domain,id:"_auth_1"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).tree()))},authenticate:function(matched){this._attemptSASLAuth(matched)||this._attemptLegacyAuth()},_sasl_challenge_cb:function(elem){var challenge=Base64.decode(Strophe.getText(elem)),response=this._sasl_mechanism.onChallenge(this,challenge),stanza=$build("response",{xmlns:Strophe.NS.SASL});return""!==response&&stanza.t(Base64.encode(response)),this.send(stanza.tree()),!0},_auth1_cb:function(elem){var iq=$iq({type:"set",id:"_auth_2"}).c("query",{xmlns:Strophe.NS.AUTH}).c("username",{}).t(Strophe.getNodeFromJid(this.jid)).up().c("password").t(this.pass);return Strophe.getResourceFromJid(this.jid)||(this.jid=Strophe.getBareJidFromJid(this.jid)+"/strophe"),iq.up().c("resource",{}).t(Strophe.getResourceFromJid(this.jid)),this._addSysHandler(this._auth2_cb.bind(this),null,null,null,"_auth_2"),this.send(iq.tree()),!1},_sasl_success_cb:function(elem){if(this._sasl_data["server-signature"]){var serverSignature,success=Base64.decode(Strophe.getText(elem)),attribMatch=/([a-z]+)=([^,]+)(,|$)/,matches=success.match(attribMatch);if("v"==matches[1]&&(serverSignature=matches[2]),serverSignature!=this._sasl_data["server-signature"])return this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_data={},this._sasl_failure_cb(null)}Strophe.info("SASL authentication succeeded."),this._sasl_mechanism&&this._sasl_mechanism.onSuccess(),this.deleteHandler(this._sasl_failure_handler),this._sasl_failure_handler=null,this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null);var streamfeature_handlers=[],wrapper=function(handlers,elem){for(;handlers.length;)this.deleteHandler(handlers.pop());return this._sasl_auth1_cb.bind(this)(elem),!1};return streamfeature_handlers.push(this._addSysHandler(function(elem){wrapper.bind(this)(streamfeature_handlers,elem)}.bind(this),null,"stream:features",null,null)),streamfeature_handlers.push(this._addSysHandler(function(elem){wrapper.bind(this)(streamfeature_handlers,elem)}.bind(this),Strophe.NS.STREAM,"features",null,null)),this._sendRestart(),!1},_sasl_auth1_cb:function(elem){this.features=elem;var i,child;for(i=0;i<elem.childNodes.length;i++)child=elem.childNodes[i],"bind"==child.nodeName&&(this.do_bind=!0),"session"==child.nodeName&&(this.do_session=!0);if(!this.do_bind)return this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;this._addSysHandler(this._sasl_bind_cb.bind(this),null,null,null,"_bind_auth_2");var resource=Strophe.getResourceFromJid(this.jid);return resource?this.send($iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).c("resource",{}).t(resource).tree()):this.send($iq({type:"set",id:"_bind_auth_2"}).c("bind",{xmlns:Strophe.NS.BIND}).tree()),!1},_sasl_bind_cb:function(elem){if("error"==elem.getAttribute("type")){Strophe.info("SASL binding failed.");var condition,conflict=elem.getElementsByTagName("conflict");return conflict.length>0&&(condition="conflict"),this._changeConnectStatus(Strophe.Status.AUTHFAIL,condition),!1}var jidNode,bind=elem.getElementsByTagName("bind");return bind.length>0?(jidNode=bind[0].getElementsByTagName("jid"),void(jidNode.length>0&&(this.jid=Strophe.getText(jidNode[0]),this.do_session?(this._addSysHandler(this._sasl_session_cb.bind(this),null,null,null,"_session_auth_2"),this.send($iq({type:"set",id:"_session_auth_2"}).c("session",{xmlns:Strophe.NS.SESSION}).tree())):(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null))))):(Strophe.info("SASL binding failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1)},_sasl_session_cb:function(elem){if("result"==elem.getAttribute("type"))this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null);else if("error"==elem.getAttribute("type"))return Strophe.info("Session creation failed."),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1;return!1},_sasl_failure_cb:function(elem){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),!1},_auth2_cb:function(elem){return"result"==elem.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(Strophe.Status.CONNECTED,null)):"error"==elem.getAttribute("type")&&(this._changeConnectStatus(Strophe.Status.AUTHFAIL,null),this.disconnect("authentication failed")),!1},_addSysTimedHandler:function(period,handler){var thand=new Strophe.TimedHandler(period,handler);return thand.user=!1,this.addTimeds.push(thand),thand},_addSysHandler:function(handler,ns,name,type,id){var hand=new Strophe.Handler(handler,ns,name,type,id);return hand.user=!1,this.addHandlers.push(hand),hand},_onDisconnectTimeout:function(){return Strophe.info("_onDisconnectTimeout was called"),this._changeConnectStatus(Strophe.Status.CONNTIMEOUT,null),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1},_onIdle:function(){for(var i,thand,since,newList;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;)thand=this.removeTimeds.pop(),i=this.timedHandlers.indexOf(thand),i>=0&&this.timedHandlers.splice(i,1);var now=(new Date).getTime();for(newList=[],i=0;i<this.timedHandlers.length;i++)thand=this.timedHandlers[i],!this.authenticated&&thand.user||(since=thand.lastCalled+thand.period,since-now<=0?thand.run()&&newList.push(thand):newList.push(thand));this.timedHandlers=newList,clearTimeout(this._idleTimeout),this._proto._onIdle(),this.connected&&(this._idleTimeout=setTimeout(function(){this._onIdle()}.bind(this),100))}},Strophe.SASLMechanism=function(name,isClientFirst,priority){this.name=name,this.isClientFirst=isClientFirst,this.priority=priority},Strophe.SASLMechanism.prototype={test:function(connection){return!0},onStart:function(connection){this._connection=connection},onChallenge:function(connection,challenge){throw new Error("You should implement challenge handling!")},onFailure:function(){this._connection=null},onSuccess:function(){this._connection=null}},Strophe.SASLAnonymous=function(){},Strophe.SASLAnonymous.prototype=new Strophe.SASLMechanism("ANONYMOUS",!1,10),Strophe.SASLAnonymous.prototype.test=function(connection){return null===connection.authcid},Strophe.SASLPlain=function(){},Strophe.SASLPlain.prototype=new Strophe.SASLMechanism("PLAIN",!0,20),Strophe.SASLPlain.prototype.test=function(connection){return null!==connection.authcid},Strophe.SASLPlain.prototype.onChallenge=function(connection){var auth_str=connection.authzid;return auth_str+="\0",auth_str+=connection.authcid,auth_str+="\0",auth_str+=connection.pass,utils.utf16to8(auth_str)},Strophe.SASLSHA1=function(){},Strophe.SASLSHA1.prototype=new Strophe.SASLMechanism("SCRAM-SHA-1",!0,40),Strophe.SASLSHA1.prototype.test=function(connection){return null!==connection.authcid},Strophe.SASLSHA1.prototype.onChallenge=function(connection,challenge,test_cnonce){var cnonce=test_cnonce||MD5.hexdigest(1234567890*Math.random()),auth_str="n="+utils.utf16to8(connection.authcid);return auth_str+=",r=",auth_str+=cnonce,connection._sasl_data.cnonce=cnonce,connection._sasl_data["client-first-message-bare"]=auth_str,auth_str="n,,"+auth_str,this.onChallenge=function(connection,challenge){for(var nonce,salt,iter,Hi,U,U_old,i,k,pass,clientKey,serverKey,clientSignature,responseText="c=biws,",authMessage=connection._sasl_data["client-first-message-bare"]+","+challenge+",",cnonce=connection._sasl_data.cnonce,attribMatch=/([a-z]+)=([^,]+)(,|$)/;challenge.match(attribMatch);){var matches=challenge.match(attribMatch);switch(challenge=challenge.replace(matches[0],""),matches[1]){case"r":nonce=matches[2];break;case"s":salt=matches[2];break;case"i":iter=matches[2]}}if(nonce.substr(0,cnonce.length)!==cnonce)return connection._sasl_data={},connection._sasl_failure_cb();for(responseText+="r="+nonce,authMessage+=responseText,salt=Base64.decode(salt),salt+="\0\0\0",pass=utils.utf16to8(connection.pass),Hi=U_old=SHA1.core_hmac_sha1(pass,salt),i=1;i<iter;i++){for(U=SHA1.core_hmac_sha1(pass,SHA1.binb2str(U_old)),k=0;k<5;k++)Hi[k]^=U[k];U_old=U}for(Hi=SHA1.binb2str(Hi),clientKey=SHA1.core_hmac_sha1(Hi,"Client Key"),serverKey=SHA1.str_hmac_sha1(Hi,"Server Key"),clientSignature=SHA1.core_hmac_sha1(SHA1.str_sha1(SHA1.binb2str(clientKey)),authMessage),connection._sasl_data["server-signature"]=SHA1.b64_hmac_sha1(serverKey,authMessage),k=0;k<5;k++)clientKey[k]^=clientSignature[k];return responseText+=",p="+Base64.encode(SHA1.binb2str(clientKey))}.bind(this),auth_str},Strophe.SASLMD5=function(){},Strophe.SASLMD5.prototype=new Strophe.SASLMechanism("DIGEST-MD5",!1,30),Strophe.SASLMD5.prototype.test=function(connection){return null!==connection.authcid},Strophe.SASLMD5.prototype._quote=function(str){return'"'+str.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'},Strophe.SASLMD5.prototype.onChallenge=function(connection,challenge,test_cnonce){for(var matches,attribMatch=/([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/,cnonce=test_cnonce||MD5.hexdigest(""+1234567890*Math.random()),realm="",host=null,nonce="",qop="";challenge.match(attribMatch);)switch(matches=challenge.match(attribMatch),challenge=challenge.replace(matches[0],""),matches[2]=matches[2].replace(/^"(.+)"$/,"$1"),matches[1]){case"realm":realm=matches[2];break;case"nonce":nonce=matches[2];break;case"qop":qop=matches[2];break;case"host":host=matches[2]}var digest_uri=connection.servtype+"/"+connection.domain;null!==host&&(digest_uri=digest_uri+"/"+host);var cred=utils.utf16to8(connection.authcid+":"+realm+":"+this._connection.pass),A1=MD5.hash(cred)+":"+nonce+":"+cnonce,A2="AUTHENTICATE:"+digest_uri,responseText="";return responseText+="charset=utf-8,",responseText+="username="+this._quote(utils.utf16to8(connection.authcid))+",",responseText+="realm="+this._quote(realm)+",",responseText+="nonce="+this._quote(nonce)+",",responseText+="nc=00000001,",responseText+="cnonce="+this._quote(cnonce)+",",responseText+="digest-uri="+this._quote(digest_uri)+",",responseText+="response="+MD5.hexdigest(MD5.hexdigest(A1)+":"+nonce+":00000001:"+cnonce+":auth:"+MD5.hexdigest(A2))+",",responseText+="qop=auth",this.onChallenge=function(){return""},responseText},Strophe.SASLOAuthBearer=function(){},Strophe.SASLOAuthBearer.prototype=new Strophe.SASLMechanism("OAUTHBEARER",!0,50),Strophe.SASLOAuthBearer.prototype.test=function(connection){return null!==connection.authcid},Strophe.SASLOAuthBearer.prototype.onChallenge=function(connection){var auth_str="n,a=";return auth_str+=connection.authzid,auth_str+=",",auth_str+="",auth_str+="auth=Bearer ",auth_str+=connection.pass,auth_str+="",auth_str+="",utils.utf16to8(auth_str)},Strophe.SASLExternal=function(){},Strophe.SASLExternal.prototype=new Strophe.SASLMechanism("EXTERNAL",!0,60),Strophe.SASLExternal.prototype.onChallenge=function(connection){return connection.authcid===connection.authzid?"":connection.authzid},{Strophe:Strophe,$build:$build,$msg:$msg,$iq:$iq,$pres:$pres,SHA1:SHA1,Base64:Base64,MD5:MD5}}),function(root,factory){return"function"==typeof define&&define.amd?void define("strophe-bosh",["strophe-core"],function(core){return factory(core.Strophe,core.$build)}):factory(Strophe,$build)}(this,function(Strophe,$build){return Strophe.Request=function(elem,func,rid,sends){this.id=++Strophe._requestId,this.xmlData=elem,this.data=Strophe.serialize(elem),this.origFunc=func,this.func=func,this.rid=rid,this.date=NaN,this.sends=sends||0,this.abort=!1,this.dead=null,this.age=function(){if(!this.date)return 0;var now=new Date;return(now-this.date)/1e3},this.timeDead=function(){if(!this.dead)return 0;var now=new Date;return(now-this.dead)/1e3},this.xhr=this._newXHR()},Strophe.Request.prototype={getResponse:function(){var node=null;if(this.xhr.responseXML&&this.xhr.responseXML.documentElement){if(node=this.xhr.responseXML.documentElement,"parsererror"==node.tagName)throw Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),Strophe.error("responseXML: "+Strophe.serialize(this.xhr.responseXML)),"parsererror"}else if(this.xhr.responseText)throw Strophe.error("invalid response received"),Strophe.error("responseText: "+this.xhr.responseText),"badformat";return node},_newXHR:function(){var xhr=null;return window.XMLHttpRequest?(xhr=new XMLHttpRequest,xhr.overrideMimeType&&xhr.overrideMimeType("text/xml; charset=utf-8")):window.ActiveXObject&&(xhr=new ActiveXObject("Microsoft.XMLHTTP")),xhr.onreadystatechange=this.func.bind(null,this),xhr}},Strophe.Bosh=function(connection){this._conn=connection,this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.hold=1,this.wait=60,this.window=5,this.errors=0,this.inactivity=null,this._requests=[]},Strophe.Bosh.prototype={strip:null,_buildBody:function(){var bodyWrap=$build("body",{rid:this.rid++,xmlns:Strophe.NS.HTTPBIND});return null!==this.sid&&bodyWrap.attrs({sid:this.sid}),this._conn.options.keepalive&&this._conn._sessionCachingSupported()&&this._cacheSession(),bodyWrap},_reset:function(){this.rid=Math.floor(4294967295*Math.random()),this.sid=null,this.errors=0,this._conn._sessionCachingSupported()&&window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_connect:function(wait,hold,route){this.wait=wait||this.wait,this.hold=hold||this.hold,this.errors=0;var body=this._buildBody().attrs({to:this._conn.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":Strophe.NS.BOSH});route&&body.attrs({route:route});var _connect_cb=this._conn._connect_cb;this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_connect_cb.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_attach:function(jid,sid,rid,callback,wait,hold,wind){this._conn.jid=jid,this.sid=sid,this.rid=rid,this._conn.connect_callback=callback,this._conn.domain=Strophe.getDomainFromJid(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=wait||this.wait,this.hold=hold||this.hold,this.window=wind||this.window,this._conn._changeConnectStatus(Strophe.Status.ATTACHED,null)},_restore:function(jid,callback,wait,hold,wind){var session=JSON.parse(window.sessionStorage.getItem("strophe-bosh-session"));if(!("undefined"!=typeof session&&null!==session&&session.rid&&session.sid&&session.jid)||"undefined"!=typeof jid&&null!==jid&&Strophe.getBareJidFromJid(session.jid)!=Strophe.getBareJidFromJid(jid))throw{name:"StropheSessionError",message:"_restore: no restoreable session."};this._conn.restored=!0,this._attach(session.jid,session.sid,session.rid,callback,wait,hold,wind)},_cacheSession:function(){this._conn.authenticated?this._conn.jid&&this.rid&&this.sid&&window.sessionStorage.setItem("strophe-bosh-session",JSON.stringify({jid:this._conn.jid,rid:this.rid,sid:this.sid})):window.sessionStorage.removeItem("strophe-bosh-session")},_connect_cb:function(bodyWrap){var cond,conflict,typ=bodyWrap.getAttribute("type");if(null!==typ&&"terminate"==typ)return cond=bodyWrap.getAttribute("condition"),Strophe.error("BOSH-Connection failed: "+cond),conflict=bodyWrap.getElementsByTagName("conflict"),null!==cond?("remote-stream-error"==cond&&conflict.length>0&&(cond="conflict"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,cond)):this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"unknown"),this._conn._doDisconnect(cond),Strophe.Status.CONNFAIL;this.sid||(this.sid=bodyWrap.getAttribute("sid"));var wind=bodyWrap.getAttribute("requests");wind&&(this.window=parseInt(wind,10));var hold=bodyWrap.getAttribute("hold");hold&&(this.hold=parseInt(hold,10));var wait=bodyWrap.getAttribute("wait");wait&&(this.wait=parseInt(wait,10));var inactivity=bodyWrap.getAttribute("inactivity");inactivity&&(this.inactivity=parseInt(inactivity,10))},_disconnect:function(pres){this._sendTerminate(pres)},_doDisconnect:function(){this.sid=null,this.rid=Math.floor(4294967295*Math.random()),this._conn._sessionCachingSupported()&&window.sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)},_emptyQueue:function(){return 0===this._requests.length},_callProtocolErrorHandlers:function(req){var err_callback,reqStatus=this._getRequestStatus(req);err_callback=this._conn.protocolErrorHandlers.HTTP[reqStatus],err_callback&&err_callback.call(this,reqStatus)},_hitError:function(reqStatus){this.errors++,Strophe.warn("request errored, status: "+reqStatus+", number of errors: "+this.errors),this.errors>4&&this._conn._onDisconnectTimeout()},_no_auth_received:function(_callback){_callback=_callback?_callback.bind(this._conn):this._conn._connect_cb.bind(this._conn);var body=this._buildBody();this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,_callback.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()},_onDisconnectTimeout:function(){this._abortAllRequests()},_abortAllRequests:function(){for(var req;this._requests.length>0;)req=this._requests.pop(),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){}},_onIdle:function(){var data=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===data.length&&!this._conn.disconnecting&&(Strophe.info("no requests during idle cycle, sending blank request"),data.push(null)),!this._conn.paused){if(this._requests.length<2&&data.length>0){for(var body=this._buildBody(),i=0;i<data.length;i++)null!==data[i]&&("restart"===data[i]?body.attrs({to:this._conn.domain,"xml:lang":"en","xmpp:restart":"true","xmlns:xmpp":Strophe.NS.BOSH}):body.cnode(data[i]).up());delete this._conn._data,this._conn._data=[],this._requests.push(new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"))),this._throttledRequestHandler()}if(this._requests.length>0){var time_elapsed=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait)&&this._throttledRequestHandler(),time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait)&&(Strophe.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(Strophe.TIMEOUT*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}}},_getRequestStatus:function(req,def){var reqStatus;if(4==req.xhr.readyState)try{reqStatus=req.xhr.status}catch(e){Strophe.error("Caught an error while retrieving a request's status, reqStatus: "+reqStatus)}return"undefined"==typeof reqStatus&&(reqStatus="number"==typeof def?def:0),reqStatus},_onRequestStateChange:function(func,req){if(Strophe.debug("request id "+req.id+"."+req.sends+" state changed to "+req.xhr.readyState),req.abort)return void(req.abort=!1);if(4===req.xhr.readyState){var reqStatus=this._getRequestStatus(req);if(this.disconnecting&&reqStatus>=400)return this._hitError(reqStatus),void this._callProtocolErrorHandlers(req);if((reqStatus>0&&reqStatus<500||req.sends>5)&&(this._removeRequest(req),Strophe.debug("request id "+req.id+" should now be removed")),200==reqStatus){var reqIs0=this._requests[0]==req,reqIs1=this._requests[1]==req;(reqIs1||reqIs0&&this._requests.length>0&&this._requests[0].age()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait))&&this._restartRequest(0),this._conn.nextValidRid(Number(req.rid)+1),Strophe.debug("request id "+req.id+"."+req.sends+" got 200"),func(req),this.errors=0}else 0===reqStatus||reqStatus>=400&&reqStatus<600||reqStatus>=12e3?(Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened"),this._hitError(reqStatus),this._callProtocolErrorHandlers(req),reqStatus>=400&&reqStatus<500&&(this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING,null),this._conn._doDisconnect())):Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");reqStatus>0&&reqStatus<500&&!(req.sends>5)||this._throttledRequestHandler()}},_processRequest:function(i){var self=this,req=this._requests[i],reqStatus=this._getRequestStatus(req,-1);if(req.sends>this._conn.maxRetries)return void this._conn._onDisconnectTimeout();var time_elapsed=req.age(),primaryTimeout=!isNaN(time_elapsed)&&time_elapsed>Math.floor(Strophe.TIMEOUT*this.wait),secondaryTimeout=null!==req.dead&&req.timeDead()>Math.floor(Strophe.SECONDARY_TIMEOUT*this.wait),requestCompletedWithServerError=4==req.xhr.readyState&&(reqStatus<1||reqStatus>=500);if((primaryTimeout||secondaryTimeout||requestCompletedWithServerError)&&(secondaryTimeout&&Strophe.error("Request "+this._requests[i].id+" timed out (secondary), restarting"),req.abort=!0,req.xhr.abort(),req.xhr.onreadystatechange=function(){},this._requests[i]=new Strophe.Request(req.xmlData,req.origFunc,req.rid,req.sends),req=this._requests[i]),0===req.xhr.readyState){Strophe.debug("request id "+req.id+"."+req.sends+" posting");try{var contentType=this._conn.options.contentType||"text/xml; charset=utf-8";req.xhr.open("POST",this._conn.service,!this._conn.options.sync),"undefined"!=typeof req.xhr.setRequestHeader&&req.xhr.setRequestHeader("Content-Type",contentType),this._conn.options.withCredentials&&(req.xhr.withCredentials=!0)}catch(e2){return Strophe.error("XHR open failed."),this._conn.connected||this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"bad-service"),void this._conn.disconnect()}var sendFunc=function(){if(req.date=new Date,self._conn.options.customHeaders){var headers=self._conn.options.customHeaders;for(var header in headers)headers.hasOwnProperty(header)&&req.xhr.setRequestHeader(header,headers[header])}req.xhr.send(req.data)};if(req.sends>1){var backoff=1e3*Math.min(Math.floor(Strophe.TIMEOUT*this.wait),Math.pow(req.sends,3));setTimeout(function(){sendFunc()},backoff)}else sendFunc();req.sends++,this._conn.xmlOutput!==Strophe.Connection.prototype.xmlOutput&&(req.xmlData.nodeName===this.strip&&req.xmlData.childNodes.length?this._conn.xmlOutput(req.xmlData.childNodes[0]):this._conn.xmlOutput(req.xmlData)),this._conn.rawOutput!==Strophe.Connection.prototype.rawOutput&&this._conn.rawOutput(req.data)}else Strophe.debug("_processRequest: "+(0===i?"first":"second")+" request has readyState of "+req.xhr.readyState)},_removeRequest:function(req){Strophe.debug("removing request");var i;for(i=this._requests.length-1;i>=0;i--)req==this._requests[i]&&this._requests.splice(i,1);req.xhr.onreadystatechange=function(){},this._throttledRequestHandler()},_restartRequest:function(i){var req=this._requests[i];null===req.dead&&(req.dead=new Date),this._processRequest(i)},_reqToData:function(req){try{return req.getResponse()}catch(e){if("parsererror"!=e)throw e;this._conn.disconnect("strophe-parsererror")}},_sendTerminate:function(pres){Strophe.info("_sendTerminate was called");var body=this._buildBody().attrs({type:"terminate"});pres&&body.cnode(pres.tree());var req=new Strophe.Request(body.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),body.tree().getAttribute("rid"));this._requests.push(req),this._throttledRequestHandler()},_send:function(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(function(){this._onIdle()}.bind(this._conn),100)},_sendRestart:function(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)},_throttledRequestHandler:function(){this._requests?Strophe.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):Strophe.debug("_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)<this.window&&this._processRequest(1))}},Strophe}),function(root,factory){return"function"==typeof define&&define.amd?void define("strophe-websocket",["strophe-core"],function(core){return factory(core.Strophe,core.$build)}):factory(Strophe,$build)}(this,function(Strophe,$build){return Strophe.Websocket=function(connection){this._conn=connection,this.strip="wrapper";var service=connection.service;if(0!==service.indexOf("ws:")&&0!==service.indexOf("wss:")){var new_service="";new_service+="ws"===connection.options.protocol&&"https:"!==window.location.protocol?"ws":"wss",new_service+="://"+window.location.host,new_service+=0!==service.indexOf("/")?window.location.pathname+service:service,connection.service=new_service}},Strophe.Websocket.prototype={_buildStream:function(){return $build("open",{xmlns:Strophe.NS.FRAMING,to:this._conn.domain,version:"1.0"})},_check_streamerror:function(bodyWrap,connectstatus){var errors;if(errors=bodyWrap.getElementsByTagNameNS?bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM,"error"):bodyWrap.getElementsByTagName("stream:error"),0===errors.length)return!1;for(var error=errors[0],condition="",text="",ns="urn:ietf:params:xml:ns:xmpp-streams",i=0;i<error.childNodes.length;i++){var e=error.childNodes[i];if(e.getAttribute("xmlns")!==ns)break;"text"===e.nodeName?text=e.textContent:condition=e.nodeName}var errorString="WebSocket stream error: ";return errorString+=condition?condition:"unknown",text&&(errorString+=" - "+condition),Strophe.error(errorString),this._conn._changeConnectStatus(connectstatus,condition),this._conn._doDisconnect(),!0},_reset:function(){},_connect:function(){this._closeSocket(),this.socket=new WebSocket(this._conn.service,"xmpp"),this.socket.onopen=this._onOpen.bind(this),this.socket.onerror=this._onError.bind(this),this.socket.onclose=this._onClose.bind(this),this.socket.onmessage=this._connect_cb_wrapper.bind(this)},_connect_cb:function(bodyWrap){var error=this._check_streamerror(bodyWrap,Strophe.Status.CONNFAIL);if(error)return Strophe.Status.CONNFAIL},_handleStreamStart:function(message){var error=!1,ns=message.getAttribute("xmlns");"string"!=typeof ns?error="Missing xmlns in <open />":ns!==Strophe.NS.FRAMING&&(error="Wrong xmlns in <open />: "+ns);var ver=message.getAttribute("version");return"string"!=typeof ver?error="Missing version in <open />":"1.0"!==ver&&(error="Wrong version in <open />: "+ver),!error||(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,error),this._conn._doDisconnect(),!1)},_connect_cb_wrapper:function(message){if(0===message.data.indexOf("<open ")||0===message.data.indexOf("<?xml")){var data=message.data.replace(/^(<\?.*?\?>\s*)*/,"");if(""===data)return;var streamStart=(new DOMParser).parseFromString(data,"text/xml").documentElement;this._conn.xmlInput(streamStart),this._conn.rawInput(message.data),this._handleStreamStart(streamStart)&&this._connect_cb(streamStart)}else if(0===message.data.indexOf("<close ")){this._conn.rawInput(message.data),this._conn.xmlInput(message);var see_uri=message.getAttribute("see-other-uri");see_uri?(this._conn._changeConnectStatus(Strophe.Status.REDIRECT,"Received see-other-uri, resetting connection"),this._conn.reset(),this._conn.service=see_uri,this._connect()):(this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Received closing stream"),this._conn._doDisconnect())}else{var string=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(string,"text/xml").documentElement;this.socket.onmessage=this._onMessage.bind(this),this._conn._connect_cb(elem,null,message.data)}},_disconnect:function(pres){if(this.socket&&this.socket.readyState!==WebSocket.CLOSED){pres&&this._conn.send(pres);var close=$build("close",{xmlns:Strophe.NS.FRAMING});this._conn.xmlOutput(close);var closeString=Strophe.serialize(close);this._conn.rawOutput(closeString);try{this.socket.send(closeString)}catch(e){Strophe.info("Couldn't send <close /> tag.")}}this._conn._doDisconnect()},_doDisconnect:function(){Strophe.info("WebSockets _doDisconnect was called"),this._closeSocket()},_streamWrap:function(stanza){return"<wrapper>"+stanza+"</wrapper>"},_closeSocket:function(){if(this.socket)try{this.socket.close()}catch(e){}this.socket=null},_emptyQueue:function(){return!0},_onClose:function(){this._conn.connected&&!this._conn.disconnecting?(Strophe.error("Websocket closed unexpectedly"),this._conn._doDisconnect()):Strophe.info("Websocket closed")},_no_auth_received:function(_callback){Strophe.error("Server did not send any auth methods"),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"Server did not send any auth methods"),_callback&&(_callback=_callback.bind(this._conn))(),this._conn._doDisconnect()},_onDisconnectTimeout:function(){},_abortAllRequests:function(){},_onError:function(error){Strophe.error("Websocket error "+error),this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,"The WebSocket connection could not be established or was disconnected."),this._disconnect()},_onIdle:function(){var data=this._conn._data;
+if(data.length>0&&!this._conn.paused){for(var i=0;i<data.length;i++)if(null!==data[i]){var stanza,rawStanza;stanza="restart"===data[i]?this._buildStream().tree():data[i],rawStanza=Strophe.serialize(stanza),this._conn.xmlOutput(stanza),this._conn.rawOutput(rawStanza),this.socket.send(rawStanza)}this._conn._data=[]}},_onMessage:function(message){var elem,data,close='<close xmlns="urn:ietf:params:xml:ns:xmpp-framing" />';if(message.data===close)return this._conn.rawInput(close),this._conn.xmlInput(message),void(this._conn.disconnecting||this._conn._doDisconnect());if(0===message.data.search("<open ")){if(elem=(new DOMParser).parseFromString(message.data,"text/xml").documentElement,!this._handleStreamStart(elem))return}else data=this._streamWrap(message.data),elem=(new DOMParser).parseFromString(data,"text/xml").documentElement;return this._check_streamerror(elem,Strophe.Status.ERROR)?void 0:this._conn.disconnecting&&"presence"===elem.firstChild.nodeName&&"unavailable"===elem.firstChild.getAttribute("type")?(this._conn.xmlInput(elem),void this._conn.rawInput(Strophe.serialize(elem))):void this._conn._dataRecv(elem,message.data)},_onOpen:function(){Strophe.info("Websocket open");var start=this._buildStream();this._conn.xmlOutput(start.tree());var startString=Strophe.serialize(start);this._conn.rawOutput(startString),this.socket.send(startString)},_reqToData:function(stanza){return stanza},_send:function(){this._conn.flush()},_sendRestart:function(){clearTimeout(this._conn._idleTimeout),this._conn._onIdle.bind(this._conn)()}},Strophe}),function(root){"function"==typeof define&&define.amd&&define("strophe",["strophe-core","strophe-bosh","strophe-websocket"],function(wrapper){return wrapper})}(this),callback){if("function"!=typeof define||!define.amd)return callback(Strophe,$build,$msg,$iq,$pres);var n_callback=callback;"function"==typeof requirejs?requirejs(["strophe"],function(o){n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres)}):require(["strophe"],function(o){n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres)})}}(function(Strophe,build,msg,iq,pres){window.Strophe=Strophe,window.$build=build,window.$msg=msg,window.$iq=iq,window.$pres=pres});var Occupant,RoomConfig,XmppRoom,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};Strophe.addConnectionPlugin("muc",{_connection:null,rooms:{},roomNames:[],init:function(conn){return this._connection=conn,this._muc_handler=null,Strophe.addNamespace("MUC_OWNER",Strophe.NS.MUC+"#owner"),Strophe.addNamespace("MUC_ADMIN",Strophe.NS.MUC+"#admin"),Strophe.addNamespace("MUC_USER",Strophe.NS.MUC+"#user"),Strophe.addNamespace("MUC_ROOMCONF",Strophe.NS.MUC+"#roomconfig")},join:function(room,nick,msg_handler_cb,pres_handler_cb,roster_cb,password,history_attrs,extended_presence){var msg,room_nick,_ref,_this=this;return room_nick=this.test_append_nick(room,nick),msg=$pres({from:this._connection.jid,to:room_nick}).c("x",{xmlns:Strophe.NS.MUC}),null!=history_attrs&&(msg=msg.c("history",history_attrs).up()),null!=password&&msg.cnode(Strophe.xmlElement("password",[],password)),null!=extended_presence&&msg.up().cnode(extended_presence),null==(_ref=this._muc_handler)&&(this._muc_handler=this._connection.addHandler(function(stanza){var from,handler,handlers,id,roomname,x,xmlns,xquery,_i,_len;if(from=stanza.getAttribute("from"),!from)return!0;if(roomname=from.split("/")[0],!_this.rooms[roomname])return!0;if(room=_this.rooms[roomname],handlers={},"message"===stanza.nodeName)handlers=room._message_handlers;else if("presence"===stanza.nodeName&&(xquery=stanza.getElementsByTagName("x"),xquery.length>0))for(_i=0,_len=xquery.length;_i<_len;_i++)if(x=xquery[_i],xmlns=x.getAttribute("xmlns"),xmlns&&xmlns.match(Strophe.NS.MUC)){handlers=room._presence_handlers;break}for(id in handlers)handler=handlers[id],handler(stanza,room)||delete handlers[id];return!0})),this.rooms.hasOwnProperty(room)||(this.rooms[room]=new XmppRoom(this,room,nick,password),this.roomNames.push(room)),pres_handler_cb&&this.rooms[room].addHandler("presence",pres_handler_cb),msg_handler_cb&&this.rooms[room].addHandler("message",msg_handler_cb),roster_cb&&this.rooms[room].addHandler("roster",roster_cb),this._connection.send(msg)},leave:function(room,nick,handler_cb,exit_msg){var id,presence,presenceid,room_nick;return id=this.roomNames.indexOf(room),delete this.rooms[room],id>=0&&(this.roomNames.splice(id,1),0===this.roomNames.length&&(this._connection.deleteHandler(this._muc_handler),this._muc_handler=null)),room_nick=this.test_append_nick(room,nick),presenceid=this._connection.getUniqueId(),presence=$pres({type:"unavailable",id:presenceid,from:this._connection.jid,to:room_nick}),null!=exit_msg&&presence.c("status",exit_msg),null!=handler_cb&&this._connection.addHandler(handler_cb,null,"presence",null,presenceid),this._connection.send(presence),presenceid},message:function(room,nick,message,html_message,type){var msg,msgid,parent,room_nick;return room_nick=this.test_append_nick(room,nick),type=type||(null!=nick?"chat":"groupchat"),msgid=this._connection.getUniqueId(),msg=$msg({to:room_nick,from:this._connection.jid,type:type,id:msgid}).c("body",{xmlns:Strophe.NS.CLIENT}).t(message),msg.up(),null!=html_message&&(msg.c("html",{xmlns:Strophe.NS.XHTML_IM}).c("body",{xmlns:Strophe.NS.XHTML}).t(html_message),0===msg.node.childNodes.length?(parent=msg.node.parentNode,msg.up().up(),msg.node.removeChild(parent)):msg.up().up()),msg.c("x",{xmlns:"jabber:x:event"}).c("composing"),this._connection.send(msg),msgid},groupchat:function(room,message,html_message){return this.message(room,null,message,html_message)},invite:function(room,receiver,reason){var invitation,msgid;return msgid=this._connection.getUniqueId(),invitation=$msg({from:this._connection.jid,to:room,id:msgid}).c("x",{xmlns:Strophe.NS.MUC_USER}).c("invite",{to:receiver}),null!=reason&&invitation.c("reason",reason),this._connection.send(invitation),msgid},directInvite:function(room,receiver,reason,password){var attrs,invitation,msgid;return msgid=this._connection.getUniqueId(),attrs={xmlns:"jabber:x:conference",jid:room},null!=reason&&(attrs.reason=reason),null!=password&&(attrs.password=password),invitation=$msg({from:this._connection.jid,to:receiver,id:msgid}).c("x",attrs),this._connection.send(invitation),msgid},queryOccupants:function(room,success_cb,error_cb){var attrs,info;return attrs={xmlns:Strophe.NS.DISCO_ITEMS},info=$iq({from:this._connection.jid,to:room,type:"get"}).c("query",attrs),this._connection.sendIQ(info,success_cb,error_cb)},configure:function(room,handler_cb,error_cb){var config,stanza;return config=$iq({to:room,type:"get"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),stanza=config.tree(),this._connection.sendIQ(stanza,handler_cb,error_cb)},cancelConfigure:function(room){var config,stanza;return config=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"cancel"}),stanza=config.tree(),this._connection.sendIQ(stanza)},saveConfiguration:function(room,config,success_cb,error_cb){var conf,iq,stanza,_i,_len;if(iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}),Strophe.x&&config instanceof Strophe.x.Form)config.type="submit",iq.cnode(config.toXML());else for(iq.c("x",{xmlns:"jabber:x:data",type:"submit"}),_i=0,_len=config.length;_i<_len;_i++)conf=config[_i],iq.cnode(conf).up();return stanza=iq.tree(),this._connection.sendIQ(stanza,success_cb,error_cb)},createInstantRoom:function(room,success_cb,error_cb){var roomiq;return roomiq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_OWNER}).c("x",{xmlns:"jabber:x:data",type:"submit"}),this._connection.sendIQ(roomiq.tree(),success_cb,error_cb)},setTopic:function(room,topic){var msg;return msg=$msg({to:room,from:this._connection.jid,type:"groupchat"}).c("subject",{xmlns:"jabber:client"}).t(topic),this._connection.send(msg.tree())},_modifyPrivilege:function(room,item,reason,handler_cb,error_cb){var iq;return iq=$iq({to:room,type:"set"}).c("query",{xmlns:Strophe.NS.MUC_ADMIN}).cnode(item.node),null!=reason&&iq.c("reason",reason),this._connection.sendIQ(iq.tree(),handler_cb,error_cb)},modifyRole:function(room,nick,role,reason,handler_cb,error_cb){var item;return item=$build("item",{nick:nick,role:role}),this._modifyPrivilege(room,item,reason,handler_cb,error_cb)},kick:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"none",reason,handler_cb,error_cb)},voice:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"participant",reason,handler_cb,error_cb)},mute:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"visitor",reason,handler_cb,error_cb)},op:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"moderator",reason,handler_cb,error_cb)},deop:function(room,nick,reason,handler_cb,error_cb){return this.modifyRole(room,nick,"participant",reason,handler_cb,error_cb)},modifyAffiliation:function(room,jid,affiliation,reason,handler_cb,error_cb){var item;return item=$build("item",{jid:jid,affiliation:affiliation}),this._modifyPrivilege(room,item,reason,handler_cb,error_cb)},ban:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"outcast",reason,handler_cb,error_cb)},member:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"member",reason,handler_cb,error_cb)},revoke:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"none",reason,handler_cb,error_cb)},owner:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"owner",reason,handler_cb,error_cb)},admin:function(room,jid,reason,handler_cb,error_cb){return this.modifyAffiliation(room,jid,"admin",reason,handler_cb,error_cb)},changeNick:function(room,user){var presence,room_nick;return room_nick=this.test_append_nick(room,user),presence=$pres({from:this._connection.jid,to:room_nick,id:this._connection.getUniqueId()}),this._connection.send(presence.tree())},setStatus:function(room,user,show,status){var presence,room_nick;return room_nick=this.test_append_nick(room,user),presence=$pres({from:this._connection.jid,to:room_nick}),null!=show&&presence.c("show",show).up(),null!=status&&presence.c("status",status),this._connection.send(presence.tree())},listRooms:function(server,handle_cb,error_cb){var iq;return iq=$iq({to:server,from:this._connection.jid,type:"get"}).c("query",{xmlns:Strophe.NS.DISCO_ITEMS}),this._connection.sendIQ(iq,handle_cb,error_cb)},test_append_nick:function(room,nick){return room+(null!=nick?"/"+Strophe.escapeNode(nick):"")}}),XmppRoom=function(){function XmppRoom(client,name,nick,password){this.client=client,this.name=name,this.nick=nick,this.password=password,this._roomRosterHandler=__bind(this._roomRosterHandler,this),this._addOccupant=__bind(this._addOccupant,this),this.roster={},this._message_handlers={},this._presence_handlers={},this._roster_handlers={},this._handler_ids=0,client.muc&&(this.client=client.muc),this.name=Strophe.getBareJidFromJid(name),this.addHandler("presence",this._roomRosterHandler)}return XmppRoom.prototype.join=function(msg_handler_cb,pres_handler_cb,roster_cb){return this.client.join(this.name,this.nick,msg_handler_cb,pres_handler_cb,roster_cb,this.password)},XmppRoom.prototype.leave=function(handler_cb,message){return this.client.leave(this.name,this.nick,handler_cb,message),delete this.client.rooms[this.name]},XmppRoom.prototype.message=function(nick,message,html_message,type){return this.client.message(this.name,nick,message,html_message,type)},XmppRoom.prototype.groupchat=function(message,html_message){return this.client.groupchat(this.name,message,html_message)},XmppRoom.prototype.invite=function(receiver,reason){return this.client.invite(this.name,receiver,reason)},XmppRoom.prototype.directInvite=function(receiver,reason){return this.client.directInvite(this.name,receiver,reason,this.password)},XmppRoom.prototype.configure=function(handler_cb){return this.client.configure(this.name,handler_cb)},XmppRoom.prototype.cancelConfigure=function(){return this.client.cancelConfigure(this.name)},XmppRoom.prototype.saveConfiguration=function(config){return this.client.saveConfiguration(this.name,config)},XmppRoom.prototype.queryOccupants=function(success_cb,error_cb){return this.client.queryOccupants(this.name,success_cb,error_cb)},XmppRoom.prototype.setTopic=function(topic){return this.client.setTopic(this.name,topic)},XmppRoom.prototype.modifyRole=function(nick,role,reason,success_cb,error_cb){return this.client.modifyRole(this.name,nick,role,reason,success_cb,error_cb)},XmppRoom.prototype.kick=function(nick,reason,handler_cb,error_cb){return this.client.kick(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.voice=function(nick,reason,handler_cb,error_cb){return this.client.voice(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.mute=function(nick,reason,handler_cb,error_cb){return this.client.mute(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.op=function(nick,reason,handler_cb,error_cb){return this.client.op(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.deop=function(nick,reason,handler_cb,error_cb){return this.client.deop(this.name,nick,reason,handler_cb,error_cb)},XmppRoom.prototype.modifyAffiliation=function(jid,affiliation,reason,success_cb,error_cb){return this.client.modifyAffiliation(this.name,jid,affiliation,reason,success_cb,error_cb)},XmppRoom.prototype.ban=function(jid,reason,handler_cb,error_cb){return this.client.ban(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.member=function(jid,reason,handler_cb,error_cb){return this.client.member(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.revoke=function(jid,reason,handler_cb,error_cb){return this.client.revoke(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.owner=function(jid,reason,handler_cb,error_cb){return this.client.owner(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.admin=function(jid,reason,handler_cb,error_cb){return this.client.admin(this.name,jid,reason,handler_cb,error_cb)},XmppRoom.prototype.changeNick=function(nick){return this.nick=nick,this.client.changeNick(this.name,nick)},XmppRoom.prototype.setStatus=function(show,status){return this.client.setStatus(this.name,this.nick,show,status)},XmppRoom.prototype.addHandler=function(handler_type,handler){var id;switch(id=this._handler_ids++,handler_type){case"presence":this._presence_handlers[id]=handler;break;case"message":this._message_handlers[id]=handler;break;case"roster":this._roster_handlers[id]=handler;break;default:return this._handler_ids--,null}return id},XmppRoom.prototype.removeHandler=function(id){return delete this._presence_handlers[id],delete this._message_handlers[id],delete this._roster_handlers[id]},XmppRoom.prototype._addOccupant=function(data){var occ;return occ=new Occupant(data,this),this.roster[occ.nick]=occ,occ},XmppRoom.prototype._roomRosterHandler=function(pres){var data,handler,id,newnick,nick,_ref;switch(data=XmppRoom._parsePresence(pres),nick=data.nick,newnick=data.newnick||null,data.type){case"error":return;case"unavailable":newnick&&(data.nick=newnick,this.roster[nick]&&this.roster[newnick]&&(this.roster[nick].update(this.roster[newnick]),this.roster[newnick]=this.roster[nick]),this.roster[nick]&&!this.roster[newnick]&&(this.roster[newnick]=this.roster[nick].update(data))),delete this.roster[nick];break;default:this.roster[nick]?this.roster[nick].update(data):this._addOccupant(data)}_ref=this._roster_handlers;for(id in _ref)handler=_ref[id],handler(this.roster,this)||delete this._roster_handlers[id];return!0},XmppRoom._parsePresence=function(pres){var a,c,c2,data,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3,_ref4,_ref5,_ref6,_ref7;for(data={},a=pres.attributes,data.nick=Strophe.getResourceFromJid(a.from.textContent),data.type=(null!=(_ref=a.type)?_ref.textContent:void 0)||null,data.states=[],_ref1=pres.childNodes,_i=0,_len=_ref1.length;_i<_len;_i++)switch(c=_ref1[_i],c.nodeName){case"status":data.status=c.textContent||null;break;case"show":data.show=c.textContent||null;break;case"x":if(a=c.attributes,(null!=(_ref2=a.xmlns)?_ref2.textContent:void 0)===Strophe.NS.MUC_USER)for(_ref3=c.childNodes,_j=0,_len1=_ref3.length;_j<_len1;_j++)switch(c2=_ref3[_j],c2.nodeName){case"item":a=c2.attributes,data.affiliation=(null!=(_ref4=a.affiliation)?_ref4.textContent:void 0)||null,data.role=(null!=(_ref5=a.role)?_ref5.textContent:void 0)||null,data.jid=(null!=(_ref6=a.jid)?_ref6.textContent:void 0)||null,data.newnick=(null!=(_ref7=a.nick)?_ref7.textContent:void 0)||null;break;case"status":c2.attributes.code&&data.states.push(c2.attributes.code.textContent)}}return data},XmppRoom}(),RoomConfig=function(){function RoomConfig(info){this.parse=__bind(this.parse,this),null!=info&&this.parse(info)}return RoomConfig.prototype.parse=function(result){var attr,attrs,child,field,identity,query,_i,_j,_k,_len,_len1,_len2,_ref;for(query=result.getElementsByTagName("query")[0].childNodes,this.identities=[],this.features=[],this.x=[],_i=0,_len=query.length;_i<_len;_i++)switch(child=query[_i],attrs=child.attributes,child.nodeName){case"identity":for(identity={},_j=0,_len1=attrs.length;_j<_len1;_j++)attr=attrs[_j],identity[attr.name]=attr.textContent;this.identities.push(identity);break;case"feature":this.features.push(attrs.var.textContent);break;case"x":if(attrs=child.childNodes[0].attributes,"FORM_TYPE"===!attrs.var.textContent||"hidden"===!attrs.type.textContent)break;for(_ref=child.childNodes,_k=0,_len2=_ref.length;_k<_len2;_k++)field=_ref[_k],field.attributes.type||(attrs=field.attributes,this.x.push({var:attrs.var.textContent,label:attrs.label.textContent||"",value:field.firstChild.textContent||""}))}return{identities:this.identities,features:this.features,x:this.x}},RoomConfig}(),Occupant=function(){function Occupant(data,room){this.room=room,this.update=__bind(this.update,this),this.admin=__bind(this.admin,this),this.owner=__bind(this.owner,this),this.revoke=__bind(this.revoke,this),this.member=__bind(this.member,this),this.ban=__bind(this.ban,this),this.modifyAffiliation=__bind(this.modifyAffiliation,this),this.deop=__bind(this.deop,this),this.op=__bind(this.op,this),this.mute=__bind(this.mute,this),this.voice=__bind(this.voice,this),this.kick=__bind(this.kick,this),this.modifyRole=__bind(this.modifyRole,this),this.update(data)}return Occupant.prototype.modifyRole=function(role,reason,success_cb,error_cb){return this.room.modifyRole(this.nick,role,reason,success_cb,error_cb)},Occupant.prototype.kick=function(reason,handler_cb,error_cb){return this.room.kick(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.voice=function(reason,handler_cb,error_cb){return this.room.voice(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.mute=function(reason,handler_cb,error_cb){return this.room.mute(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.op=function(reason,handler_cb,error_cb){return this.room.op(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.deop=function(reason,handler_cb,error_cb){return this.room.deop(this.nick,reason,handler_cb,error_cb)},Occupant.prototype.modifyAffiliation=function(affiliation,reason,success_cb,error_cb){return this.room.modifyAffiliation(this.jid,affiliation,reason,success_cb,error_cb)},Occupant.prototype.ban=function(reason,handler_cb,error_cb){return this.room.ban(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.member=function(reason,handler_cb,error_cb){return this.room.member(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.revoke=function(reason,handler_cb,error_cb){return this.room.revoke(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.owner=function(reason,handler_cb,error_cb){return this.room.owner(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.admin=function(reason,handler_cb,error_cb){return this.room.admin(this.jid,reason,handler_cb,error_cb)},Occupant.prototype.update=function(data){return this.nick=data.nick||null,this.affiliation=data.affiliation||null,this.role=data.role||null,this.jid=data.jid||null,this.status=data.status||null,this.show=data.show||null,this},Occupant}(),Strophe.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[],_items:[],init:function(conn){this._connection=conn,this._identities=[],this._features=[],this._items=[],conn.addHandler(this._onDiscoInfo.bind(this),Strophe.NS.DISCO_INFO,"iq","get",null,null),conn.addHandler(this._onDiscoItems.bind(this),Strophe.NS.DISCO_ITEMS,"iq","get",null,null)},addIdentity:function(category,type,name,lang){for(var i=0;i<this._identities.length;i++)if(this._identities[i].category==category&&this._identities[i].type==type&&this._identities[i].name==name&&this._identities[i].lang==lang)return!1;return this._identities.push({category:category,type:type,name:name,lang:lang}),!0},addFeature:function(var_name){for(var i=0;i<this._features.length;i++)if(this._features[i]==var_name)return!1;return this._features.push(var_name),!0},removeFeature:function(var_name){for(var i=0;i<this._features.length;i++)if(this._features[i]===var_name)return this._features.splice(i,1),!0;return!1},addItem:function(jid,name,node,call_back){return!(node&&!call_back)&&(this._items.push({jid:jid,name:name,node:node,call_back:call_back}),!0)},info:function(jid,node,success,error,timeout){var attrs={xmlns:Strophe.NS.DISCO_INFO};node&&(attrs.node=node);var info=$iq({from:this._connection.jid,to:jid,type:"get"}).c("query",attrs);this._connection.sendIQ(info,success,error,timeout)},items:function(jid,node,success,error,timeout){var attrs={xmlns:Strophe.NS.DISCO_ITEMS};node&&(attrs.node=node);var items=$iq({from:this._connection.jid,to:jid,type:"get"}).c("query",attrs);this._connection.sendIQ(items,success,error,timeout)},_buildIQResult:function(stanza,query_attrs){var id=stanza.getAttribute("id"),from=stanza.getAttribute("from"),iqresult=$iq({type:"result",id:id});return null!==from&&iqresult.attrs({to:from}),iqresult.c("query",query_attrs)},_onDiscoInfo:function(stanza){var node=stanza.getElementsByTagName("query")[0].getAttribute("node"),attrs={xmlns:Strophe.NS.DISCO_INFO};node&&(attrs.node=node);for(var iqresult=this._buildIQResult(stanza,attrs),i=0;i<this._identities.length;i++){var attrs={category:this._identities[i].category,type:this._identities[i].type};this._identities[i].name&&(attrs.name=this._identities[i].name),this._identities[i].lang&&(attrs["xml:lang"]=this._identities[i].lang),iqresult.c("identity",attrs).up()}for(var i=0;i<this._features.length;i++)iqresult.c("feature",{var:this._features[i]}).up();return this._connection.send(iqresult.tree()),!0},_onDiscoItems:function(stanza){var query_attrs={xmlns:Strophe.NS.DISCO_ITEMS},node=stanza.getElementsByTagName("query")[0].getAttribute("node");if(node){query_attrs.node=node;for(var items=[],i=0;i<this._items.length;i++)if(this._items[i].node==node){items=this._items[i].call_back(stanza);break}}else var items=this._items;for(var iqresult=this._buildIQResult(stanza,query_attrs),i=0;i<items.length;i++){var attrs={jid:items[i].jid};items[i].name&&(attrs.name=items[i].name),items[i].node&&(attrs.node=items[i].node),iqresult.c("item",attrs).up()}return this._connection.send(iqresult.tree()),!0}}),/**
* Entity Capabilities (XEP-0115)
*
* Depends on disco plugin.
@@ -29,40 +12,42 @@ Strophe.addConnectionPlugin("disco",{_connection:null,_identities:[],_features:[
*
* @license MIT
*/
-function($){Strophe.addConnectionPlugin("caps",{HASH:"sha-1",node:"http://strophe.im/strophejs/",_ver:"",_connection:null,_knownCapabilities:JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{},_jidVerIndex:JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},init:function(conn){if(this._connection=conn,Strophe.addNamespace("CAPS","http://jabber.org/protocol/caps"),!this._connection.disco)throw"Caps plugin requires the disco plugin to be installed.";this._connection.disco.addFeature(Strophe.NS.CAPS),this._connection.addHandler(this._delegateCapabilities.bind(this),Strophe.NS.CAPS)},generateCapsAttrs:function(){return{xmlns:Strophe.NS.CAPS,hash:this.HASH,node:this.node,ver:this.generateVer()}},generateVer:function(){if(""!==this._ver)return this._ver;for(var ver="",identities=this._connection.disco._identities.sort(this._sortIdentities),identitiesLen=identities.length,features=this._connection.disco._features.sort(),featuresLen=features.length,i=0;i<identitiesLen;i++){var curIdent=identities[i];ver+=curIdent.category+"/"+curIdent.type+"/"+curIdent.lang+"/"+curIdent.name+"<"}for(var i=0;i<featuresLen;i++)ver+=features[i]+"<";return this._ver=b64_sha1(ver),this._ver},getCapabilitiesByJid:function(jid){return this._jidVerIndex[jid]?this._knownCapabilities[this._jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature){if(this._jidVerIndex[jid]&&null!==feature&&"undefined"!=typeof feature){$.isArray(feature)||(feature=$.makeArray(feature));var i,knownCapabilities;if(knownCapabilities=this._knownCapabilities[this._jidVerIndex[jid]],!knownCapabilities)return null;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0}return!1},_delegateCapabilities:function(stanza){var from=stanza.getAttribute("from"),c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node");return this._knownCapabilities[ver]?(this._jidVerIndex[from]=ver,this._jidVerIndex[from]&&!this._jidVerIndex[from]===ver||(this._jidVerIndex[from]=ver),localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(this._jidVerIndex)),$(document).trigger("caps.strophe",[from,this._knownCapabilities[ver],ver]),!0):this._requestCapabilities(from,node,ver)},_requestCapabilities:function(to,node,ver){if(to!==this._connection.jid){var id=this._connection.disco.info(to,node+"#"+ver);this._connection.addHandler(this._handleDiscoInfoReply.bind(this),Strophe.NS.DISCO_INFO,"iq","result",id,to)}return!0},_handleDiscoInfoReply:function(stanza){var query=stanza.querySelector("query"),from=stanza.getAttribute("from"),node=query.getAttribute("node"),ver=node?node.split("#")[1]:this._jidVerIndex[from];if(this._knownCapabilities[ver])this._jidVerIndex[from]&&!this._jidVerIndex[from]===ver||(this._jidVerIndex[from]=ver);else{var childNodes=query.childNodes,childNodesLen=childNodes.length;this._knownCapabilities[ver]={features:[],identities:[]};for(var i=0;i<childNodesLen;i++){var node=childNodes[i];"feature"==node.nodeName?this._knownCapabilities[ver].features.push(node.getAttribute("var")):"identity"==node.nodeName?this._knownCapabilities[ver].identities.push(this._attributesToJsObject(node.attributes)):("undefined"==typeof this._knownCapabilities[ver][node.nodeName]&&(this._knownCapabilities[ver][node.nodeName]=[]),this._knownCapabilities[ver][node.nodeName].push(this._attributesToJsObject(node.attributes)))}this._jidVerIndex[from]=ver}return localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(this._jidVerIndex)),localStorage.setItem("strophe.caps._knownCapabilities",JSON.stringify(this._knownCapabilities)),$(document).trigger("caps.strophe",[from,this._knownCapabilities[ver],ver]),!1},_attributesToJsObject:function(attr){var obj={};for(i=0;i<attr.length;i++)obj[attr[i].name]=attr[i].value;return obj},_sortIdentities:function(a,b){return a.category>b.category?1:a.category<b.category?-1:a.type>b.type?1:a.type<b.type?-1:a.lang>b.lang?1:a.lang<b.lang?-1:0}})}(jQuery),/*!
- * Source: lib/strophe.vcard/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins
- */
-function(){var buildIq;buildIq=function(type,jid,vCardEl){var iq;return iq=$iq(jid?{type:type,to:jid}:{type:type}),iq.c("vCard",{xmlns:Strophe.NS.VCARD}),vCardEl&&iq.cnode(vCardEl),iq},Strophe.addConnectionPlugin("vcard",{_connection:null,init:function(conn){return this._connection=conn,Strophe.addNamespace("VCARD","vcard-temp")},get:function(handler_cb,jid,error_cb){var iq;return"function"==typeof jid&&(error_cb=jid,jid=null),iq=buildIq("get",jid),this._connection.sendIQ(iq,handler_cb,error_cb)},set:function(handler_cb,vCardEl,jid,error_cb){var iq;return iq=buildIq("set",jid,vCardEl),this._connection.sendIQ(iq,handler_cb,error_cb)}})}.call(this),/*!
- * Source: lib/strophe.bookmarks/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/bookmarks
- */
-Strophe.addConnectionPlugin("bookmarks",{init:function(connection){this.connection=connection,Strophe.addNamespace("PRIVATE","jabber:iq:private"),Strophe.addNamespace("BOOKMARKS","storage:bookmarks"),Strophe.addNamespace("PRIVACY","jabber:iq:privacy"),Strophe.addNamespace("DELAY","jabber:x:delay"),Strophe.addNamespace("PUBSUB","http://jabber.org/protocol/pubsub")},createBookmarksNode:function(success,error){return this.connection.sendIQ($iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("create",{node:"storage:bookmarks"}).up().c("configure").c("x",{xmlns:"jabber:x:data",type:"submit"}).c("field",{var:"FORM_TYPE",type:"hidden"}).c("value").t("http://jabber.org/protocol/pubsub#node_config").up().up().c("field",{var:"pubsub#persist_items"}).c("value").t("1").up().up().c("field",{var:"pubsub#access_model"}).c("value").t("whitelist"),success,error),!0},add:function(roomJid,alias,nick,autojoin,success,error){var conferenceAttr={jid:roomJid,autojoin:autojoin||!1};alias&&(conferenceAttr.name=alias);var stanza=$iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("publish",{node:Strophe.NS.BOOKMARKS}).c("item",{id:roomJid}).c("storage",{xmlns:Strophe.NS.BOOKMARKS}).c("conference",conferenceAttr);nick&&stanza.c("nick").t(nick),this.connection.sendIQ(stanza,success,error)},get:function(success,error){this.connection.sendIQ($iq({type:"get"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("items",{node:Strophe.NS.BOOKMARKS}),success,error)},delete:function(roomJid,success,error,notify){this.connection.sendIQ($iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("retract",{node:Strophe.NS.BOOKMARKS,notify:notify||!1}).c("item",{id:roomJid}),success,error)}}),/*!
- * Source: lib/strophe.x/index.js, license: MIT, url: https://github.com/strophe/strophejs-plugins/tree/master/dataforms
- */
-function(){var $field,$form,$item,$opt,Field,Form,Item,Option,helper,__slice=[].slice,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};helper={fill:function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_i<_len;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},createHtmlFieldCouple:function(f){var div,id;return div=$("<div>"),id="Strophe.x.Field-"+f.type+"-"+f.var,div.append("<label for='"+id+"'>"+(f.label||"")+"</label>").append($(f.toHTML()).attr("id",id)).append("<br />"),div.children()},getHtmlFields:function(html){return html=$(html),__slice.call(html.find("input")).concat(__slice.call(html.find("select")),__slice.call(html.find("textarea")))}},Form=function(){function Form(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this);var f,i,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3;if(this.fields=[],this.items=[],this.reported=[],opt)if(_ref=opt.type,__indexOf.call(Form._types,_ref)>=0&&(this.type=opt.type),this.title=opt.title,this.instructions=opt.instructions,helper.fill=function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_i<_len;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},opt.fields)opt.fields&&helper.fill(opt.fields,this.fields,Field);else if(opt.items)for(opt.items&&helper.fill(opt.items,this.items,Item),_ref1=this.items,_i=0,_len=_ref1.length;_i<_len;_i++)for(i=_ref1[_i],_ref2=i.fields,_j=0,_len1=_ref2.length;_j<_len1;_j++)f=_ref2[_j],_ref3=f.var,__indexOf.call(this.reported,_ref3)>=0||this.reported.push(f.var)}return Form._types=["form","submit","cancel","result"],Form.prototype.type="form",Form.prototype.title=null,Form.prototype.instructions=null,Form.prototype.toXML=function(){var f,i,r,xml,_i,_j,_k,_len,_len1,_len2,_ref,_ref1,_ref2;if(xml=$build("x",{xmlns:"jabber:x:data",type:this.type}),this.title&&xml.c("title").t(this.title.toString()).up(),this.instructions&&xml.c("instructions").t(this.instructions.toString()).up(),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();else if(this.items.length>0){for(xml.c("reported"),_ref1=this.reported,_j=0,_len1=_ref1.length;_j<_len1;_j++)r=_ref1[_j],xml.c("field",{var:r}).up();for(xml.up(),_ref2=this.items,_k=0,_len2=_ref2.length;_k<_len2;_k++)i=_ref2[_k],xml.cnode(i.toXML()).up()}return xml.tree()},Form.prototype.toJSON=function(){var f,i,json,_i,_j,_len,_len1,_ref,_ref1;if(json={type:this.type},this.title&&(json.title=this.title),this.instructions&&(json.instructions=this.instructions),this.fields.length>0)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],json.fields.push(f.toJSON());else if(this.items.length>0)for(json.items=[],json.reported=this.reported,_ref1=this.items,_j=0,_len1=_ref1.length;_j<_len1;_j++)i=_ref1[_j],json.items.push(i.toJSON());return json},Form.prototype.toHTML=function(){var f,form,i,_i,_j,_len,_len1,_ref,_ref1;if(form=$("<form data-type='"+this.type+"'>"),this.title&&form.append("<h1>"+this.title+"</h1>"),this.instructions&&form.append("<p>"+this.instructions+"</p>"),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(form);else if(this.items.length>0)for(_ref1=this.items,_j=0,_len1=_ref1.length;_j<_len1;_j++)i=_ref1[_j],$(i.toHTML()).appendTo(form);return form[0]},Form.fromXML=function(xml){var f,fields,i,instr,items,j,r,reported,title;return xml=$(xml),f=new Form({type:xml.attr("type")}),title=xml.find("title"),1===title.length&&(f.title=title.text()),instr=xml.find("instructions"),1===instr.length&&(f.instructions=instr.text()),fields=xml.find("field"),items=xml.find("item"),items.length>0?f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_i<_len;_i++)i=items[_i],_results.push(Item.fromXML(i));return _results}():fields.length>0&&(f.fields=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_i<_len;_i++)j=fields[_i],_results.push(Field.fromXML(j));return _results}()),reported=xml.find("reported"),1===reported.length&&(fields=reported.find("field"),f.reported=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_i<_len;_i++)r=fields[_i],_results.push($(r).attr("var"));return _results}()),f},Form.fromHTML=function(html){var f,field,fields,i,instructions,item,items,j,title,_i,_j,_len,_len1,_ref,_ref1,_ref2;if(html=$(html),f=new Form({type:html.attr("data-type")}),title=html.find("h1").text(),title&&(f.title=title),instructions=html.find("p").text(),instructions&&(f.instructions=instructions),items=html.find("fieldset"),fields=helper.getHtmlFields(html),items.length>0)for(f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_i<_len;_i++)i=items[_i],_results.push(Item.fromHTML(i));return _results}(),_ref=f.items,_i=0,_len=_ref.length;_i<_len;_i++)for(item=_ref[_i],_ref1=item.fields,_j=0,_len1=_ref1.length;_j<_len1;_j++)field=_ref1[_j],_ref2=field.var,__indexOf.call(f.reported,_ref2)>=0||f.reported.push(field.var);else fields.length>0&&(f.fields=function(){var _k,_len2,_results;for(_results=[],_k=0,_len2=fields.length;_k<_len2;_k++)j=fields[_k],_results.push(Field.fromHTML(j));return _results}());return f},Form}(),Field=function(){function Field(opt){this.toHTML=__bind(this.toHTML,this),this.toXML=__bind(this.toXML,this),this.toJSON=__bind(this.toJSON,this),this.addOptions=__bind(this.addOptions,this),this.addOption=__bind(this.addOption,this),this.addValues=__bind(this.addValues,this),this.addValue=__bind(this.addValue,this);var _ref,_ref1;this.options=[],this.values=[],opt&&(_ref=opt.type,__indexOf.call(Field._types,_ref)>=0&&(this.type=opt.type.toString()),opt.desc&&(this.desc=opt.desc.toString()),opt.label&&(this.label=opt.label.toString()),this.var=(null!=(_ref1=opt.var)?_ref1.toString():void 0)||"_no_var_was_defined_",this.required=opt.required===!0||"true"===opt.required,opt.options&&this.addOptions(opt.options),opt.value&&(opt.values=[opt.value]),opt.values&&this.addValues(opt.values))}return Field._types=["boolean","fixed","hidden","jid-multi","jid-single","list-multi","list-single","text-multi","text-private","text-single"],Field._multiTypes=["list-multi","jid-multi","text-multi","hidden"],Field.prototype.type="text-single",Field.prototype.desc=null,Field.prototype.label=null,Field.prototype.var="_no_var_was_defined_",Field.prototype.required=!1,Field.prototype.addValue=function(val){return this.addValues([val])},Field.prototype.addValues=function(vals){var multi,v,_ref;return _ref=this.type,multi=__indexOf.call(Field._multiTypes,_ref)>=0,(multi||!multi&&1===vals.length)&&(this.values=__slice.call(this.values).concat(__slice.call(function(){var _i,_len,_results;for(_results=[],_i=0,_len=vals.length;_i<_len;_i++)v=vals[_i],_results.push(v.toString());return _results}()))),this},Field.prototype.addOption=function(opt){return this.addOptions([opt])},Field.prototype.addOptions=function(opts){var o;return"list-single"!==this.type&&"list-multi"!==this.type||("object"!=typeof opts[0]&&(opts=function(){var _i,_len,_results;for(_results=[],_i=0,_len=opts.length;_i<_len;_i++)o=opts[_i],_results.push(new Option({value:o.toString()}));return _results}()),helper.fill(opts,this.options,Option)),this},Field.prototype.toJSON=function(){var json,o,_i,_len,_ref;if(json={type:this.type,var:this.var,required:this.required},this.desc&&(json.desc=this.desc),this.label&&(json.label=this.label),this.values&&(json.values=this.values),this.options)for(json.options=[],_ref=this.options,_i=0,_len=_ref.length;_i<_len;_i++)o=_ref[_i],json.options.push(o.toJSON());return json},Field.prototype.toXML=function(){var attrs,o,v,xml,_i,_j,_len,_len1,_ref,_ref1;if(attrs={type:this.type,var:this.var},this.label&&(attrs.label=this.label),xml=$build("field",attrs),this.desc&&xml.c("desc").t(this.desc).up(),this.required&&xml.c("required").up(),this.values)for(_ref=this.values,_i=0,_len=_ref.length;_i<_len;_i++)v=_ref[_i],xml.c("value").t(v.toString()).up();if(this.options)for(_ref1=this.options,_j=0,_len1=_ref1.length;_j<_len1;_j++)o=_ref1[_j],xml.cnode(o.toXML()).up();return xml.tree()},Field.prototype.toHTML=function(){var el,k,line,o,opt,txt,val,_i,_j,_len,_len1,_ref,_ref1,_ref2;switch(this.type.toLowerCase()){case"list-single":case"list-multi":if(el=$("<select>"),"list-multi"===this.type&&el.attr("multiple","multiple"),this.options.length>0)for(_ref=this.options,_i=0,_len=_ref.length;_i<_len;_i++)if(opt=_ref[_i]){for(o=$(opt.toHTML()),_ref1=this.values,_j=0,_len1=_ref1.length;_j<_len1;_j++)k=_ref1[_j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var _k,_len2,_ref2,_results;for(_ref2=this.values,_results=[],_k=0,_len2=_ref2.length;_k<_len2;_k++)line=_ref2[_k],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),this.values&&el.val(this.values[0]),this.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",this.desc);break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=this.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly");break;case"jid-single":el.attr("type","email")}break;default:el=$("<input type='text'>")}return el.attr("name",this.var),this.required&&el.attr("required",this.required),el[0]},Field.fromXML=function(xml){var o,v;return xml=$(xml),new Field({type:xml.attr("type"),var:xml.attr("var"),label:xml.attr("label"),desc:xml.find("desc").text(),required:1===xml.find("required").length,values:function(){var _i,_len,_ref,_results;for(_ref=xml.find(">value"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)v=_ref[_i],_results.push($(v).text());return _results}(),options:function(){var _i,_len,_ref,_results;for(_ref=xml.find("option"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)o=_ref[_i],_results.push(Option.fromXML(o));return _results}()})},Field._htmlElementToFieldType=function(el){var r,type;switch(el=$(el),el[0].nodeName.toLowerCase()){case"textarea":type="text-multi";break;case"select":type="multiple"===el.attr("multiple")?"list-multi":"list-single";break;case"input":switch(el.attr("type")){case"checkbox":type="boolean";break;case"email":type="jid-single";break;case"hidden":type="hidden";break;case"password":type="text-private";break;case"text":r="readonly"===el.attr("readonly"),type=r?"fixed":"text-single"}}return type},Field.fromHTML=function(html){var el,f,txt,type;switch(html=$(html),type=Field._htmlElementToFieldType(html),f=new Field({type:type,var:html.attr("name"),required:"required"===html.attr("required")}),type){case"list-multi":case"list-single":f.values=function(){var _i,_len,_ref,_results;for(_ref=html.find("option:selected"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)el=_ref[_i],_results.push($(el).val());return _results}(),f.options=function(){var _i,_len,_ref,_results;for(_ref=html.find("option"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)el=_ref[_i],_results.push(Option.fromHTML(el));return _results}();break;case"text-multi":case"jid-multi":txt=html.text(),""!==txt.trim()&&(f.values=txt.split("\n"));break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":""!==html.val().trim()&&(f.values=[html.val()])}return f},Field}(),Option=function(){function Option(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),opt&&(opt.label&&(this.label=opt.label.toString()),opt.value&&(this.value=opt.value.toString()))}return Option.prototype.label="",Option.prototype.value="",Option.prototype.toXML=function(){return $build("option",{label:this.label}).c("value").t(this.value.toString()).tree()},Option.prototype.toJSON=function(){return{label:this.label,value:this.value}},Option.prototype.toHTML=function(){return $("<option>").attr("value",this.value).text(this.label||this.value)[0]},Option.fromXML=function(xml){return new Option({label:$(xml).attr("label"),value:$(xml).text()})},Option.fromHTML=function(html){return new Option({value:$(html).attr("value"),label:$(html).text()})},Option}(),Item=function(){function Item(opts){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),this.fields=[],(null!=opts?opts.fields:void 0)&&helper.fill(opts.fields,this.fields,Field)}return Item.prototype.toXML=function(){var f,xml,_i,_len,_ref;for(xml=$build("item"),_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();return xml.tree()},Item.prototype.toJSON=function(){var f,json,_i,_len,_ref;if(json={},this.fields)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],json.fields.push(f.toJSON());return json},Item.prototype.toHTML=function(){var f,fieldset,_i,_len,_ref;for(fieldset=$("<fieldset>"),_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(fieldset);return fieldset[0]},Item.fromXML=function(xml){var f,fields;return xml=$(xml),fields=xml.find("field"),new Item({fields:function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_i<_len;_i++)f=fields[_i],_results.push(Field.fromXML(f));return _results}()})},Item.fromHTML=function(html){var f;return new Item({fields:function(){var _i,_len,_ref,_results;for(_ref=helper.getHtmlFields(html),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],_results.push(Field.fromHTML(f));return _results}()})},Item}(),Strophe.x={Form:Form,Field:Field,Option:Option,Item:Item},$form=function(opt){return new Strophe.x.Form(opt)},$field=function(opt){return new Strophe.x.Field(opt)},$opt=function(opt){return new Strophe.x.Option(opt)},$item=function(opts){return new Strophe.x.Item(opts)},Strophe.addConnectionPlugin("x",{init:function(conn){var _ref,_ref1;if(Strophe.addNamespace("DATA","jabber:x:data"),null!=(null!=(_ref=conn.disco)?_ref.addFeature:void 0)&&conn.disco.addFeature(Strophe.NS.DATA),null!=(null!=(_ref1=conn.disco)?_ref1.addNode:void 0))return conn.disco.addNode(Strophe.NS.DATA,{items:[]})},parseFromResult:function(result){var _ref;return"x"===result.nodeName.toLowerCase()?Form.fromXML(result):Form.fromXML(null!=(_ref=$(result).find("x"))?_ref[0]:void 0)}})}.call(this),/*!
- * Source: lib/strophe.jinglejs/strophe.jinglejs-bundle.js, license: MIT, url: https://github.com/sualko/strophe.jinglejs
- */
-/*!
- * strophe.jinglejs v0.1.1 - 2015-11-27
+function($){Strophe.addConnectionPlugin("caps",{HASH:"sha-1",node:"http://strophe.im/strophejs/",_ver:"",_connection:null,_knownCapabilities:JSON.parse(localStorage.getItem("strophe.caps._knownCapabilities"))||{},_jidVerIndex:JSON.parse(localStorage.getItem("strophe.caps._jidVerIndex"))||{},init:function(conn){if(this._connection=conn,Strophe.addNamespace("CAPS","http://jabber.org/protocol/caps"),!this._connection.disco)throw"Caps plugin requires the disco plugin to be installed.";this._connection.disco.addFeature(Strophe.NS.CAPS),this._connection.addHandler(this._delegateCapabilities.bind(this),Strophe.NS.CAPS)},generateCapsAttrs:function(){return{xmlns:Strophe.NS.CAPS,hash:this.HASH,node:this.node,ver:this.generateVer()}},generateVer:function(){if(""!==this._ver)return this._ver;for(var ver="",identities=this._connection.disco._identities.sort(this._sortIdentities),identitiesLen=identities.length,features=this._connection.disco._features.sort(),featuresLen=features.length,i=0;i<identitiesLen;i++){var curIdent=identities[i];ver+=curIdent.category+"/"+curIdent.type+"/"+curIdent.lang+"/"+curIdent.name+"<"}for(var i=0;i<featuresLen;i++)ver+=features[i]+"<";return this._ver=b64_sha1(ver),this._ver},getCapabilitiesByJid:function(jid){return this._jidVerIndex[jid]?this._knownCapabilities[this._jidVerIndex[jid]]:null},hasFeatureByJid:function(jid,feature){if(this._jidVerIndex[jid]&&null!==feature&&"undefined"!=typeof feature){$.isArray(feature)||(feature=$.makeArray(feature));var i,knownCapabilities;if(knownCapabilities=this._knownCapabilities[this._jidVerIndex[jid]],!knownCapabilities)return null;for(i=0;i<feature.length;i++)if(knownCapabilities.features.indexOf(feature[i])<0)return!1;return!0}return!1},_delegateCapabilities:function(stanza){var from=stanza.getAttribute("from"),c=stanza.querySelector("c"),ver=c.getAttribute("ver"),node=c.getAttribute("node");return this._knownCapabilities[ver]?(this._jidVerIndex[from]=ver,this._jidVerIndex[from]&&!this._jidVerIndex[from]===ver||(this._jidVerIndex[from]=ver),localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(this._jidVerIndex)),$(document).trigger("caps.strophe",[from,this._knownCapabilities[ver],ver]),!0):this._requestCapabilities(from,node,ver)},_requestCapabilities:function(to,node,ver){if(to!==this._connection.jid){var id=this._connection.disco.info(to,node+"#"+ver);this._connection.addHandler(this._handleDiscoInfoReply.bind(this),Strophe.NS.DISCO_INFO,"iq","result",id,to)}return!0},_handleDiscoInfoReply:function(stanza){var query=stanza.querySelector("query"),from=stanza.getAttribute("from"),node=query.getAttribute("node"),ver=node?node.split("#")[1]:this._jidVerIndex[from];if(this._knownCapabilities[ver])this._jidVerIndex[from]&&!this._jidVerIndex[from]===ver||(this._jidVerIndex[from]=ver);else{var childNodes=query.childNodes,childNodesLen=childNodes.length;this._knownCapabilities[ver]={features:[],identities:[]};for(var i=0;i<childNodesLen;i++){var node=childNodes[i];"feature"==node.nodeName?this._knownCapabilities[ver].features.push(node.getAttribute("var")):"identity"==node.nodeName?this._knownCapabilities[ver].identities.push(this._attributesToJsObject(node.attributes)):("undefined"==typeof this._knownCapabilities[ver][node.nodeName]&&(this._knownCapabilities[ver][node.nodeName]=[]),this._knownCapabilities[ver][node.nodeName].push(this._attributesToJsObject(node.attributes)))}this._jidVerIndex[from]=ver}return localStorage.setItem("strophe.caps._jidVerIndex",JSON.stringify(this._jidVerIndex)),localStorage.setItem("strophe.caps._knownCapabilities",JSON.stringify(this._knownCapabilities)),$(document).trigger("caps.strophe",[from,this._knownCapabilities[ver],ver]),!1},_attributesToJsObject:function(attr){var obj={};for(i=0;i<attr.length;i++)obj[attr[i].name]=attr[i].value;return obj},_sortIdentities:function(a,b){return a.category>b.category?1:a.category<b.category?-1:a.type>b.type?1:a.type<b.type?-1:a.lang>b.lang?1:a.lang<b.lang?-1:0}})}(jQuery),function(){var buildIq;buildIq=function(type,jid,vCardEl){var iq;return iq=$iq(jid?{type:type,to:jid}:{type:type}),iq.c("vCard",{xmlns:Strophe.NS.VCARD}),vCardEl&&iq.cnode(vCardEl),iq},Strophe.addConnectionPlugin("vcard",{_connection:null,init:function(conn){return this._connection=conn,Strophe.addNamespace("VCARD","vcard-temp")},get:function(handler_cb,jid,error_cb){var iq;return"function"==typeof jid&&(error_cb=jid,jid=null),iq=buildIq("get",jid),this._connection.sendIQ(iq,handler_cb,error_cb)},set:function(handler_cb,vCardEl,jid,error_cb){var iq;return iq=buildIq("set",jid,vCardEl),this._connection.sendIQ(iq,handler_cb,error_cb)}})}.call(this),Strophe.addConnectionPlugin("bookmarks",{init:function(connection){this.connection=connection,Strophe.addNamespace("PRIVATE","jabber:iq:private"),Strophe.addNamespace("BOOKMARKS","storage:bookmarks"),Strophe.addNamespace("PRIVACY","jabber:iq:privacy"),Strophe.addNamespace("DELAY","jabber:x:delay"),Strophe.addNamespace("PUBSUB","http://jabber.org/protocol/pubsub")},createBookmarksNode:function(success,error){return this.connection.sendIQ($iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("create",{node:"storage:bookmarks"}).up().c("configure").c("x",{xmlns:"jabber:x:data",type:"submit"}).c("field",{var:"FORM_TYPE",type:"hidden"}).c("value").t("http://jabber.org/protocol/pubsub#node_config").up().up().c("field",{var:"pubsub#persist_items"}).c("value").t("1").up().up().c("field",{var:"pubsub#access_model"}).c("value").t("whitelist"),success,error),!0},add:function(roomJid,alias,nick,autojoin,success,error){var conferenceAttr={jid:roomJid,autojoin:autojoin||!1};alias&&(conferenceAttr.name=alias);var stanza=$iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("publish",{node:Strophe.NS.BOOKMARKS}).c("item",{id:roomJid}).c("storage",{xmlns:Strophe.NS.BOOKMARKS}).c("conference",conferenceAttr);nick&&stanza.c("nick").t(nick),this.connection.sendIQ(stanza,success,error)},get:function(success,error){this.connection.sendIQ($iq({type:"get"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("items",{node:Strophe.NS.BOOKMARKS}),success,error)},delete:function(roomJid,success,error,notify){this.connection.sendIQ($iq({type:"set"}).c("pubsub",{xmlns:Strophe.NS.PUBSUB}).c("retract",{node:Strophe.NS.BOOKMARKS,notify:notify||!1}).c("item",{id:roomJid}),success,error)}}),function(){var $field,$form,$item,$opt,Field,Form,Item,Option,helper,__slice=[].slice,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i<l;i++)if(i in this&&this[i]===item)return i;return-1};helper={fill:function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_i<_len;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},createHtmlFieldCouple:function(f){var div,id;return div=$("<div>"),id="Strophe.x.Field-"+f.type+"-"+f.var,div.append("<label for='"+id+"'>"+(f.label||"")+"</label>").append($(f.toHTML()).attr("id",id)).append("<br />"),div.children()},getHtmlFields:function(html){return html=$(html),__slice.call(html.find("input")).concat(__slice.call(html.find("select")),__slice.call(html.find("textarea")))}},Form=function(){function Form(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this);var f,i,_i,_j,_len,_len1,_ref,_ref1,_ref2,_ref3;if(this.fields=[],this.items=[],this.reported=[],opt)if(_ref=opt.type,__indexOf.call(Form._types,_ref)>=0&&(this.type=opt.type),this.title=opt.title,this.instructions=opt.instructions,helper.fill=function(src,target,klass){var f,_i,_len,_results;for(_results=[],_i=0,_len=src.length;_i<_len;_i++)f=src[_i],_results.push(target.push(f instanceof klass?f:new klass(f)));return _results},opt.fields)opt.fields&&helper.fill(opt.fields,this.fields,Field);else if(opt.items)for(opt.items&&helper.fill(opt.items,this.items,Item),_ref1=this.items,_i=0,_len=_ref1.length;_i<_len;_i++)for(i=_ref1[_i],_ref2=i.fields,_j=0,_len1=_ref2.length;_j<_len1;_j++)f=_ref2[_j],_ref3=f.var,__indexOf.call(this.reported,_ref3)>=0||this.reported.push(f.var)}return Form._types=["form","submit","cancel","result"],Form.prototype.type="form",Form.prototype.title=null,Form.prototype.instructions=null,Form.prototype.toXML=function(){var f,i,r,xml,_i,_j,_k,_len,_len1,_len2,_ref,_ref1,_ref2;if(xml=$build("x",{xmlns:"jabber:x:data",type:this.type}),this.title&&xml.c("title").t(this.title.toString()).up(),this.instructions&&xml.c("instructions").t(this.instructions.toString()).up(),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();else if(this.items.length>0){for(xml.c("reported"),_ref1=this.reported,_j=0,_len1=_ref1.length;_j<_len1;_j++)r=_ref1[_j],xml.c("field",{var:r}).up();for(xml.up(),_ref2=this.items,_k=0,_len2=_ref2.length;_k<_len2;_k++)i=_ref2[_k],xml.cnode(i.toXML()).up()}return xml.tree()},Form.prototype.toJSON=function(){var f,i,json,_i,_j,_len,_len1,_ref,_ref1;if(json={type:this.type},this.title&&(json.title=this.title),this.instructions&&(json.instructions=this.instructions),this.fields.length>0)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],json.fields.push(f.toJSON());else if(this.items.length>0)for(json.items=[],json.reported=this.reported,_ref1=this.items,_j=0,_len1=_ref1.length;_j<_len1;_j++)i=_ref1[_j],json.items.push(i.toJSON());return json},Form.prototype.toHTML=function(){var f,form,i,_i,_j,_len,_len1,_ref,_ref1;if(form=$("<form data-type='"+this.type+"'>"),this.title&&form.append("<h1>"+this.title+"</h1>"),this.instructions&&form.append("<p>"+this.instructions+"</p>"),this.fields.length>0)for(_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(form);else if(this.items.length>0)for(_ref1=this.items,_j=0,_len1=_ref1.length;_j<_len1;_j++)i=_ref1[_j],$(i.toHTML()).appendTo(form);return form[0]},Form.fromXML=function(xml){var f,fields,i,instr,items,j,r,reported,title;return xml=$(xml),f=new Form({type:xml.attr("type")}),title=xml.find("title"),1===title.length&&(f.title=title.text()),instr=xml.find("instructions"),1===instr.length&&(f.instructions=instr.text()),fields=xml.find("field"),items=xml.find("item"),items.length>0?f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_i<_len;_i++)i=items[_i],_results.push(Item.fromXML(i));return _results}():fields.length>0&&(f.fields=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_i<_len;_i++)j=fields[_i],_results.push(Field.fromXML(j));return _results}()),reported=xml.find("reported"),1===reported.length&&(fields=reported.find("field"),f.reported=function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_i<_len;_i++)r=fields[_i],_results.push($(r).attr("var"));return _results}()),f},Form.fromHTML=function(html){var f,field,fields,i,instructions,item,items,j,title,_i,_j,_len,_len1,_ref,_ref1,_ref2;if(html=$(html),f=new Form({type:html.attr("data-type")}),title=html.find("h1").text(),title&&(f.title=title),instructions=html.find("p").text(),instructions&&(f.instructions=instructions),items=html.find("fieldset"),fields=helper.getHtmlFields(html),items.length>0)for(f.items=function(){var _i,_len,_results;for(_results=[],_i=0,_len=items.length;_i<_len;_i++)i=items[_i],_results.push(Item.fromHTML(i));return _results}(),_ref=f.items,_i=0,_len=_ref.length;_i<_len;_i++)for(item=_ref[_i],_ref1=item.fields,_j=0,_len1=_ref1.length;_j<_len1;_j++)field=_ref1[_j],_ref2=field.var,__indexOf.call(f.reported,_ref2)>=0||f.reported.push(field.var);else fields.length>0&&(f.fields=function(){var _k,_len2,_results;for(_results=[],_k=0,_len2=fields.length;_k<_len2;_k++)j=fields[_k],_results.push(Field.fromHTML(j));return _results}());return f},Form}(),Field=function(){function Field(opt){this.toHTML=__bind(this.toHTML,this),this.toXML=__bind(this.toXML,this),this.toJSON=__bind(this.toJSON,this),this.addOptions=__bind(this.addOptions,this),this.addOption=__bind(this.addOption,this),this.addValues=__bind(this.addValues,this),this.addValue=__bind(this.addValue,this);var _ref,_ref1;this.options=[],this.values=[],opt&&(_ref=opt.type,__indexOf.call(Field._types,_ref)>=0&&(this.type=opt.type.toString()),opt.desc&&(this.desc=opt.desc.toString()),opt.label&&(this.label=opt.label.toString()),this.var=(null!=(_ref1=opt.var)?_ref1.toString():void 0)||"_no_var_was_defined_",this.required=opt.required===!0||"true"===opt.required,opt.options&&this.addOptions(opt.options),opt.value&&(opt.values=[opt.value]),opt.values&&this.addValues(opt.values))}return Field._types=["boolean","fixed","hidden","jid-multi","jid-single","list-multi","list-single","text-multi","text-private","text-single"],Field._multiTypes=["list-multi","jid-multi","text-multi","hidden"],Field.prototype.type="text-single",Field.prototype.desc=null,Field.prototype.label=null,Field.prototype.var="_no_var_was_defined_",Field.prototype.required=!1,Field.prototype.addValue=function(val){return this.addValues([val])},Field.prototype.addValues=function(vals){var multi,v,_ref;return _ref=this.type,multi=__indexOf.call(Field._multiTypes,_ref)>=0,(multi||!multi&&1===vals.length)&&(this.values=__slice.call(this.values).concat(__slice.call(function(){var _i,_len,_results;for(_results=[],_i=0,_len=vals.length;_i<_len;_i++)v=vals[_i],_results.push(v.toString());return _results}()))),this},Field.prototype.addOption=function(opt){return this.addOptions([opt])},Field.prototype.addOptions=function(opts){var o;return"list-single"!==this.type&&"list-multi"!==this.type||("object"!=typeof opts[0]&&(opts=function(){var _i,_len,_results;for(_results=[],_i=0,_len=opts.length;_i<_len;_i++)o=opts[_i],_results.push(new Option({value:o.toString()}));return _results}()),helper.fill(opts,this.options,Option)),this},Field.prototype.toJSON=function(){var json,o,_i,_len,_ref;if(json={type:this.type,var:this.var,required:this.required},this.desc&&(json.desc=this.desc),this.label&&(json.label=this.label),this.values&&(json.values=this.values),this.options)for(json.options=[],_ref=this.options,_i=0,_len=_ref.length;_i<_len;_i++)o=_ref[_i],json.options.push(o.toJSON());return json},Field.prototype.toXML=function(){var attrs,o,v,xml,_i,_j,_len,_len1,_ref,_ref1;if(attrs={type:this.type,var:this.var},this.label&&(attrs.label=this.label),xml=$build("field",attrs),this.desc&&xml.c("desc").t(this.desc).up(),this.required&&xml.c("required").up(),this.values)for(_ref=this.values,_i=0,_len=_ref.length;_i<_len;_i++)v=_ref[_i],xml.c("value").t(v.toString()).up();if(this.options)for(_ref1=this.options,_j=0,_len1=_ref1.length;_j<_len1;_j++)o=_ref1[_j],xml.cnode(o.toXML()).up();return xml.tree()},Field.prototype.toHTML=function(){var el,k,line,o,opt,txt,val,_i,_j,_len,_len1,_ref,_ref1,_ref2;switch(this.type.toLowerCase()){case"list-single":case"list-multi":if(el=$("<select>"),"list-multi"===this.type&&el.attr("multiple","multiple"),this.options.length>0)for(_ref=this.options,_i=0,_len=_ref.length;_i<_len;_i++)if(opt=_ref[_i]){for(o=$(opt.toHTML()),_ref1=this.values,_j=0,_len1=_ref1.length;_j<_len1;_j++)k=_ref1[_j],k.toString()===opt.value.toString()&&o.attr("selected","selected");o.appendTo(el)}break;case"text-multi":case"jid-multi":el=$("<textarea>"),txt=function(){var _k,_len2,_ref2,_results;for(_ref2=this.values,_results=[],_k=0,_len2=_ref2.length;_k<_len2;_k++)line=_ref2[_k],_results.push(line);return _results}.call(this).join("\n"),txt&&el.text(txt);break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":switch(el=$("<input>"),this.values&&el.val(this.values[0]),this.type.toLowerCase()){case"text-single":el.attr("type","text"),el.attr("placeholder",this.desc);break;case"boolean":el.attr("type","checkbox"),val=null!=(_ref2=this.values[0])&&"function"==typeof _ref2.toString?_ref2.toString():void 0,!val||"true"!==val&&"1"!==val||el.attr("checked","checked");break;case"text-private":el.attr("type","password");break;case"hidden":el.attr("type","hidden");break;case"fixed":el.attr("type","text").attr("readonly","readonly");break;case"jid-single":el.attr("type","email")}break;default:el=$("<input type='text'>")}return el.attr("name",this.var),this.required&&el.attr("required",this.required),el[0]},Field.fromXML=function(xml){var o,v;return xml=$(xml),new Field({type:xml.attr("type"),var:xml.attr("var"),label:xml.attr("label"),desc:xml.find("desc").text(),required:1===xml.find("required").length,values:function(){var _i,_len,_ref,_results;for(_ref=xml.find(">value"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)v=_ref[_i],_results.push($(v).text());return _results}(),options:function(){var _i,_len,_ref,_results;for(_ref=xml.find("option"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)o=_ref[_i],_results.push(Option.fromXML(o));return _results}()})},Field._htmlElementToFieldType=function(el){var r,type;switch(el=$(el),el[0].nodeName.toLowerCase()){case"textarea":type="text-multi";break;case"select":type="multiple"===el.attr("multiple")?"list-multi":"list-single";break;case"input":switch(el.attr("type")){case"checkbox":type="boolean";break;case"email":type="jid-single";break;case"hidden":type="hidden";break;case"password":type="text-private";break;case"text":r="readonly"===el.attr("readonly"),type=r?"fixed":"text-single"}}return type},Field.fromHTML=function(html){var el,f,txt,type;switch(html=$(html),type=Field._htmlElementToFieldType(html),f=new Field({type:type,var:html.attr("name"),required:"required"===html.attr("required")}),type){case"list-multi":case"list-single":f.values=function(){var _i,_len,_ref,_results;for(_ref=html.find("option:selected"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)el=_ref[_i],_results.push($(el).val());return _results}(),f.options=function(){var _i,_len,_ref,_results;for(_ref=html.find("option"),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)el=_ref[_i],_results.push(Option.fromHTML(el));return _results}();break;case"text-multi":case"jid-multi":txt=html.text(),""!==txt.trim()&&(f.values=txt.split("\n"));break;case"text-single":case"boolean":case"text-private":case"hidden":case"fixed":case"jid-single":""!==html.val().trim()&&(f.values=[html.val()])}return f},Field}(),Option=function(){function Option(opt){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),opt&&(opt.label&&(this.label=opt.label.toString()),opt.value&&(this.value=opt.value.toString()))}return Option.prototype.label="",Option.prototype.value="",Option.prototype.toXML=function(){return $build("option",{label:this.label}).c("value").t(this.value.toString()).tree()},Option.prototype.toJSON=function(){return{label:this.label,value:this.value}},Option.prototype.toHTML=function(){return $("<option>").attr("value",this.value).text(this.label||this.value)[0]},Option.fromXML=function(xml){return new Option({label:$(xml).attr("label"),value:$(xml).text()})},Option.fromHTML=function(html){return new Option({value:$(html).attr("value"),label:$(html).text()})},Option}(),Item=function(){function Item(opts){this.toHTML=__bind(this.toHTML,this),this.toJSON=__bind(this.toJSON,this),this.toXML=__bind(this.toXML,this),this.fields=[],(null!=opts?opts.fields:void 0)&&helper.fill(opts.fields,this.fields,Field)}return Item.prototype.toXML=function(){var f,xml,_i,_len,_ref;for(xml=$build("item"),_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],xml.cnode(f.toXML()).up();return xml.tree()},Item.prototype.toJSON=function(){var f,json,_i,_len,_ref;if(json={},this.fields)for(json.fields=[],_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],json.fields.push(f.toJSON());return json},Item.prototype.toHTML=function(){var f,fieldset,_i,_len,_ref;for(fieldset=$("<fieldset>"),_ref=this.fields,_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],helper.createHtmlFieldCouple(f).appendTo(fieldset);return fieldset[0]},Item.fromXML=function(xml){var f,fields;return xml=$(xml),fields=xml.find("field"),new Item({fields:function(){var _i,_len,_results;for(_results=[],_i=0,_len=fields.length;_i<_len;_i++)f=fields[_i],_results.push(Field.fromXML(f));return _results}()})},Item.fromHTML=function(html){var f;return new Item({fields:function(){var _i,_len,_ref,_results;for(_ref=helper.getHtmlFields(html),_results=[],_i=0,_len=_ref.length;_i<_len;_i++)f=_ref[_i],_results.push(Field.fromHTML(f));return _results}()})},Item}(),Strophe.x={Form:Form,Field:Field,Option:Option,Item:Item},$form=function(opt){return new Strophe.x.Form(opt)},$field=function(opt){return new Strophe.x.Field(opt)},$opt=function(opt){return new Strophe.x.Option(opt)},$item=function(opts){return new Strophe.x.Item(opts)},Strophe.addConnectionPlugin("x",{init:function(conn){var _ref,_ref1;if(Strophe.addNamespace("DATA","jabber:x:data"),null!=(null!=(_ref=conn.disco)?_ref.addFeature:void 0)&&conn.disco.addFeature(Strophe.NS.DATA),null!=(null!=(_ref1=conn.disco)?_ref1.addNode:void 0))return conn.disco.addNode(Strophe.NS.DATA,{items:[]})},parseFromResult:function(result){var _ref;return"x"===result.nodeName.toLowerCase()?Form.fromXML(result):Form.fromXML(null!=(_ref=$(result).find("x"))?_ref[0]:void 0)}})}.call(this),Strophe.addConnectionPlugin("chatstates",{init:function(connection){this._connection=connection,Strophe.addNamespace("CHATSTATES","http://jabber.org/protocol/chatstates")},statusChanged:function(status){status!==Strophe.Status.CONNECTED&&status!==Strophe.Status.ATTACHED||this._connection.addHandler(this._notificationReceived.bind(this),Strophe.NS.CHATSTATES,"message")},addActive:function(message){return message.c("active",{xmlns:Strophe.NS.CHATSTATES}).up()},_notificationReceived:function(message){var composing=$(message).find("composing"),paused=$(message).find("paused"),active=$(message).find("active"),jid=$(message).attr("from");return composing.length>0&&$(document).trigger("composing.chatstates",jid),paused.length>0&&$(document).trigger("paused.chatstates",jid),active.length>0&&$(document).trigger("active.chatstates",jid),!0},sendActive:function(jid,type){this._sendNotification(jid,type,"active")},sendComposing:function(jid,type){this._sendNotification(jid,type,"composing")},sendPaused:function(jid,type){this._sendNotification(jid,type,"paused")},_sendNotification:function(jid,type,notification){type||(type="chat"),this._connection.send($msg({to:jid,type:type}).c(notification,{xmlns:Strophe.NS.CHATSTATES}))}}),/*!
+ * strophe.jinglejs v0.1.2 - 2017-01-12
*
- * Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see https://github.com/sualko/strophe.jinglejs/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 0.1.1
+ * @version 0.1.2
* @license MIT
*/
-function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){(function(global){function typedArraySupport(){function Bar(){}try{var arr=new Uint8Array(1);return arr.foo=function(){return 42},arr.constructor=Bar,42===arr.foo()&&arr.constructor===Bar&&"function"==typeof arr.subarray&&0===arr.subarray(1,1).byteLength}catch(e){return!1}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Buffer(arg){return this instanceof Buffer?(this.length=0,this.parent=void 0,"number"==typeof arg?fromNumber(this,arg):"string"==typeof arg?fromString(this,arg,arguments.length>1?arguments[1]:"utf8"):fromObject(this,arg)):arguments.length>1?new Buffer(arg,arguments[1]):new Buffer(arg)}function fromNumber(that,length){if(that=allocate(that,length<0?0:0|checked(length)),!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;i<length;i++)that[i]=0;return that}function fromString(that,string,encoding){"string"==typeof encoding&&""!==encoding||(encoding="utf8");var length=0|byteLength(string,encoding);return that=allocate(that,length),that.write(string,encoding),that}function fromObject(that,object){if(Buffer.isBuffer(object))return fromBuffer(that,object);if(isArray(object))return fromArray(that,object);if(null==object)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(object.buffer instanceof ArrayBuffer)return fromTypedArray(that,object);if(object instanceof ArrayBuffer)return fromArrayBuffer(that,object)}return object.length?fromArrayLike(that,object):fromJsonObject(that,object)}function fromBuffer(that,buffer){var length=0|checked(buffer.length);return that=allocate(that,length),buffer.copy(that,0,0,length),that}function fromArray(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;i<length;i+=1)that[i]=255&array[i];return that}function fromTypedArray(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;i<length;i+=1)that[i]=255&array[i];return that}function fromArrayBuffer(that,array){return Buffer.TYPED_ARRAY_SUPPORT?(array.byteLength,that=Buffer._augment(new Uint8Array(array))):that=fromTypedArray(that,new Uint8Array(array)),that}function fromArrayLike(that,array){var length=0|checked(array.length);that=allocate(that,length);for(var i=0;i<length;i+=1)that[i]=255&array[i];return that}function fromJsonObject(that,object){var array,length=0;"Buffer"===object.type&&isArray(object.data)&&(array=object.data,length=0|checked(array.length)),that=allocate(that,length);for(var i=0;i<length;i+=1)that[i]=255&array[i];return that}function allocate(that,length){Buffer.TYPED_ARRAY_SUPPORT?(that=Buffer._augment(new Uint8Array(length)),that.__proto__=Buffer.prototype):(that.length=length,that._isBuffer=!0);var fromPool=0!==length&&length<=Buffer.poolSize>>>1;return fromPool&&(that.parent=rootParent),that}function checked(length){if(length>=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|length}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);return delete buf.parent,buf}function byteLength(string,encoding){"string"!=typeof string&&(string=""+string);var len=string.length;if(0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"binary":case"raw":case"raws":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if(start=0|start,end=void 0===end||end===1/0?this.length:0|end,encoding||(encoding="utf8"),start<0&&(start=0),end>this.length&&(end=this.length),end<=start)return"";for(;;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");length>strLen/2&&(length=strLen/2);for(var i=0;i<length;i++){var parsed=parseInt(string.substr(2*i,2),16);if(isNaN(parsed))throw new Error("Invalid hex string");buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],128===(192&secondByte)&&(tempCodePoint=(31&firstByte)<<6|63&secondByte,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128===(192&secondByte)&&128===(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128===(192&secondByte)&&128===(192&thirdByte)&&128===(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++)ret+=String.fromCharCode(127&buf[i]);return ret}function binarySlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;i++)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length;i+=2)res+=String.fromCharCode(bytes[i]+256*bytes[i+1]);return res}function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range")}function objectWriteUInt16(buf,value,offset,littleEndian){value<0&&(value=65535+value+1);for(var i=0,j=Math.min(buf.length-offset,2);i<j;i++)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i)}function objectWriteUInt32(buf,value,offset,littleEndian){value<0&&(value=4294967295+value+1);for(var i=0,j=Math.min(buf.length-offset,4);i<j;i++)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255}function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range");if(offset<0)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=stringtrim(str).replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function toHex(n){return n<16?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;i++){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=leadSurrogate-55296<<10|codePoint-56320|65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(codePoint<1114112))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;i++)byteArray.push(255&str.charCodeAt(i));return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);i++)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);i++)dst[i+offset]=src[i];return i}/*!
+function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports={default:require("core-js/library/fn/object/assign"),__esModule:!0}},{"core-js/library/fn/object/assign":8}],2:[function(require,module,exports){"use strict";exports.default=function(obj){return obj&&obj.__esModule?obj:{default:obj}},exports.__esModule=!0},{}],3:[function(require,module,exports){"use strict";function placeHoldersCount(b64){var len=b64.length;if(len%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===b64[len-2]?2:"="===b64[len-1]?1:0}function byteLength(b64){return 3*b64.length/4-placeHoldersCount(b64)}function toByteArray(b64){var i,j,l,tmp,placeHolders,arr,len=b64.length;placeHolders=placeHoldersCount(b64),arr=new Arr(3*len/4-placeHolders),l=placeHolders>0?len-4:len;var L=0;for(i=0,j=0;i<l;i+=4,j+=3)tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)],arr[L++]=tmp>>16&255,arr[L++]=tmp>>8&255,arr[L++]=255&tmp;return 2===placeHolders?(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[L++]=255&tmp):1===placeHolders&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[L++]=tmp>>8&255,arr[L++]=255&tmp),arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]}function encodeChunk(uint8,start,end){for(var tmp,output=[],i=start;i<end;i+=3)tmp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output.push(tripletToBase64(tmp));return output.join("")}function fromByteArray(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,output="",parts=[],maxChunkLength=16383,i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength)parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength));return 1===extraBytes?(tmp=uint8[len-1],output+=lookup[tmp>>2],output+=lookup[tmp<<4&63],output+="=="):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],output+=lookup[tmp>>10],output+=lookup[tmp>>4&63],output+=lookup[tmp<<2&63],output+="="),parts.push(output),parts.join("")}exports.byteLength=byteLength,exports.toByteArray=toByteArray,exports.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63},{}],4:[function(require,module,exports){},{}],5:[function(require,module,exports){(function(global){"use strict";var buffer=require("buffer"),Buffer=buffer.Buffer,SlowBuffer=buffer.SlowBuffer,MAX_LEN=buffer.kMaxLength||2147483647;exports.alloc=function(size,fill,encoding){if("function"==typeof Buffer.alloc)return Buffer.alloc(size,fill,encoding);if("number"==typeof encoding)throw new TypeError("encoding must not be number");if("number"!=typeof size)throw new TypeError("size must be a number");if(size>MAX_LEN)throw new RangeError("size is too large");var enc=encoding,_fill=fill;void 0===_fill&&(enc=void 0,_fill=0);var buf=new Buffer(size);if("string"==typeof _fill)for(var fillBuf=new Buffer(_fill,enc),flen=fillBuf.length,i=-1;++i<size;)buf[i]=fillBuf[i%flen];else buf.fill(_fill);return buf},exports.allocUnsafe=function(size){if("function"==typeof Buffer.allocUnsafe)return Buffer.allocUnsafe(size);if("number"!=typeof size)throw new TypeError("size must be a number");if(size>MAX_LEN)throw new RangeError("size is too large");return new Buffer(size)},exports.from=function(value,encodingOrOffset,length){if("function"==typeof Buffer.from&&(!global.Uint8Array||Uint8Array.from!==Buffer.from))return Buffer.from(value,encodingOrOffset,length);if("number"==typeof value)throw new TypeError('"value" argument must not be a number');if("string"==typeof value)return new Buffer(value,encodingOrOffset);if("undefined"!=typeof ArrayBuffer&&value instanceof ArrayBuffer){var offset=encodingOrOffset;if(1===arguments.length)return new Buffer(value);"undefined"==typeof offset&&(offset=0);var len=length;if("undefined"==typeof len&&(len=value.byteLength-offset),offset>=value.byteLength)throw new RangeError("'offset' is out of bounds");if(len>value.byteLength-offset)throw new RangeError("'length' is out of bounds");return new Buffer(value.slice(offset,offset+len))}if(Buffer.isBuffer(value)){var out=new Buffer(value.length);return value.copy(out,0,0,value.length),out}if(value){if(Array.isArray(value)||"undefined"!=typeof ArrayBuffer&&value.buffer instanceof ArrayBuffer||"length"in value)return new Buffer(value);if("Buffer"===value.type&&Array.isArray(value.data))return new Buffer(value.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},exports.allocUnsafeSlow=function(size){if("function"==typeof Buffer.allocUnsafeSlow)return Buffer.allocUnsafeSlow(size);if("number"!=typeof size)throw new TypeError("size must be a number");if(size>=MAX_LEN)throw new RangeError("size is too large");return new SlowBuffer(size)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{buffer:6}],6:[function(require,module,exports){(function(global){/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
-var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("is-array");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.poolSize=8192;var rootParent={};Buffer.TYPED_ARRAY_SUPPORT=void 0!==global.TYPED_ARRAY_SUPPORT?global.TYPED_ARRAY_SUPPORT:typedArraySupport(),Buffer.TYPED_ARRAY_SUPPORT&&(Buffer.prototype.__proto__=Uint8Array.prototype,Buffer.__proto__=Uint8Array),Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len&&a[i]===b[i];)++i;return i!==len&&(x=a[i],y=b[i]),x<y?-1:y<x?1:0},Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function(list,length){if(!isArray(list))throw new TypeError("list argument must be an Array of Buffers.");if(0===list.length)return new Buffer(0);var i;if(void 0===length)for(length=0,i=0;i<list.length;i++)length+=list[i].length;var buf=new Buffer(length),pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos),pos+=item.length}return buf},Buffer.byteLength=byteLength,Buffer.prototype.length=void 0,Buffer.prototype.parent=void 0,Buffer.prototype.toString=function(){var length=0|this.length;return 0===length?"":0===arguments.length?utf8Slice(this,0,length):slowToString.apply(this,arguments)},Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b||0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return this.length>0&&(str=this.toString("hex",0,max).match(/.{2}/g).join(" "),this.length>max&&(str+=" ... ")),"<Buffer "+str+">"},Buffer.prototype.compare=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:Buffer.compare(this,b)},Buffer.prototype.indexOf=function(val,byteOffset){function arrayIndexOf(arr,val,byteOffset){for(var foundIndex=-1,i=0;byteOffset+i<arr.length;i++)if(arr[byteOffset+i]===val[foundIndex===-1?0:i-foundIndex]){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===val.length)return byteOffset+foundIndex}else foundIndex=-1;return-1}if(byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset>>=0,0===this.length)return-1;if(byteOffset>=this.length)return-1;if(byteOffset<0&&(byteOffset=Math.max(this.length+byteOffset,0)),"string"==typeof val)return 0===val.length?-1:String.prototype.indexOf.call(this,val,byteOffset);if(Buffer.isBuffer(val))return arrayIndexOf(this,val,byteOffset);if("number"==typeof val)return Buffer.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,val,byteOffset):arrayIndexOf(this,[val],byteOffset);throw new TypeError("val must be string, number or Buffer")},Buffer.prototype.get=function(offset){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(offset)},Buffer.prototype.set=function(v,offset){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(v,offset)},Buffer.prototype.write=function(string,offset,length,encoding){if(void 0===offset)encoding="utf8",length=this.length,offset=0;else if(void 0===length&&"string"==typeof offset)encoding=offset,length=this.length,offset=0;else if(isFinite(offset))offset=0|offset,isFinite(length)?(length=0|length,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0);else{var swap=encoding;encoding=offset,offset=0|length,length=swap}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT)newBuf=Buffer._augment(this.subarray(start,end));else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,void 0);for(var i=0;i<sliceLen;i++)newBuf[i]=this[i+start]}return newBuf.length&&(newBuf.parent=this.parent||this),newBuf},Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return val},Buffer.prototype.readUIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset=0|offset,byteLength=0|byteLength,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),128&this[offset]?(255-this[offset]+1)*-1:this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){value=+value,offset=0|offset,byteLength=0|byteLength,noAssert||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1,i=0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUIntBE=function(value,offset,byteLength,noAssert){value=+value,offset=0|offset,byteLength=0|byteLength,noAssert||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=value<0?1:0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset=0|offset,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=value<0?1:0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),value<0&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset=0|offset,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start)return 0;if(0===target.length||0===this.length)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var i,len=end-start;if(this===target&&start<targetStart&&targetStart<end)for(i=len-1;i>=0;i--)target[i+targetStart]=this[i+start];else if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT)for(i=0;i<len;i++)target[i+targetStart]=this[i+start];else target._set(this.subarray(start,start+len),targetStart);return len},Buffer.prototype.fill=function(value,start,end){if(value||(value=0),start||(start=0),end||(end=this.length),end<start)throw new RangeError("end < start");if(end!==start&&0!==this.length){if(start<0||start>=this.length)throw new RangeError("start out of bounds");if(end<0||end>this.length)throw new RangeError("end out of bounds");var i;if("number"==typeof value)for(i=start;i<end;i++)this[i]=value;else{var bytes=utf8ToBytes(value.toString()),len=bytes.length;for(i=start;i<end;i++)this[i]=bytes[i%len]}return this}},Buffer.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(Buffer.TYPED_ARRAY_SUPPORT)return new Buffer(this).buffer;for(var buf=new Uint8Array(this.length),i=0,len=buf.length;i<len;i+=1)buf[i]=this[i];return buf.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var BP=Buffer.prototype;Buffer._augment=function(arr){return arr.constructor=Buffer,arr._isBuffer=!0,arr._set=arr.set,arr.get=BP.get,arr.set=BP.set,arr.write=BP.write,arr.toString=BP.toString,arr.toLocaleString=BP.toString,arr.toJSON=BP.toJSON,arr.equals=BP.equals,arr.compare=BP.compare,arr.indexOf=BP.indexOf,arr.copy=BP.copy,arr.slice=BP.slice,arr.readUIntLE=BP.readUIntLE,arr.readUIntBE=BP.readUIntBE,arr.readUInt8=BP.readUInt8,arr.readUInt16LE=BP.readUInt16LE,arr.readUInt16BE=BP.readUInt16BE,arr.readUInt32LE=BP.readUInt32LE,arr.readUInt32BE=BP.readUInt32BE,arr.readIntLE=BP.readIntLE,arr.readIntBE=BP.readIntBE,arr.readInt8=BP.readInt8,arr.readInt16LE=BP.readInt16LE,arr.readInt16BE=BP.readInt16BE,arr.readInt32LE=BP.readInt32LE,arr.readInt32BE=BP.readInt32BE,arr.readFloatLE=BP.readFloatLE,arr.readFloatBE=BP.readFloatBE,arr.readDoubleLE=BP.readDoubleLE,arr.readDoubleBE=BP.readDoubleBE,arr.writeUInt8=BP.writeUInt8,arr.writeUIntLE=BP.writeUIntLE,arr.writeUIntBE=BP.writeUIntBE,arr.writeUInt16LE=BP.writeUInt16LE,arr.writeUInt16BE=BP.writeUInt16BE,arr.writeUInt32LE=BP.writeUInt32LE,arr.writeUInt32BE=BP.writeUInt32BE,arr.writeIntLE=BP.writeIntLE,arr.writeIntBE=BP.writeIntBE,arr.writeInt8=BP.writeInt8,arr.writeInt16LE=BP.writeInt16LE,arr.writeInt16BE=BP.writeInt16BE,arr.writeInt32LE=BP.writeInt32LE,arr.writeInt32BE=BP.writeInt32BE,arr.writeFloatLE=BP.writeFloatLE,arr.writeFloatBE=BP.writeFloatBE,arr.writeDoubleLE=BP.writeDoubleLE,arr.writeDoubleBE=BP.writeDoubleBE,arr.fill=BP.fill,arr.inspect=BP.inspect,arr.toArrayBuffer=BP.toArrayBuffer,arr};var INVALID_BASE64_RE=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":3,ieee754:4,"is-array":5}],3:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(exports){"use strict";function decode(elt){var code=elt.charCodeAt(0);return code===PLUS||code===PLUS_URL_SAFE?62:code===SLASH||code===SLASH_URL_SAFE?63:code<NUMBER?-1:code<NUMBER+10?code-NUMBER+26+26:code<UPPER+26?code-UPPER:code<LOWER+26?code-LOWER+26:void 0}function b64ToByteArray(b64){function push(v){arr[L++]=v}var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0,arr=new Arr(3*b64.length/4-placeHolders),l=placeHolders>0?b64.length-4:b64.length;var L=0;for(i=0,j=0;i<l;i+=4,j+=3)tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3)),push((16711680&tmp)>>16),push((65280&tmp)>>8),push(255&tmp);return 2===placeHolders?(tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4,push(255&tmp)):1===placeHolders&&(tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2,push(tmp>>8&255),push(255&tmp)),arr}function uint8ToBase64(uint8){function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(63&num)}var i,temp,length,extraBytes=uint8.length%3,output="";for(i=0,length=uint8.length-extraBytes;i<length;i+=3)temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2],output+=tripletToBase64(temp);switch(extraBytes){case 1:temp=uint8[uint8.length-1],output+=encode(temp>>2),output+=encode(temp<<4&63),output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1],output+=encode(temp>>10),output+=encode(temp>>4&63),output+=encode(temp<<2&63),output+="="}return output}var Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,PLUS="+".charCodeAt(0),SLASH="/".charCodeAt(0),NUMBER="0".charCodeAt(0),LOWER="a".charCodeAt(0),UPPER="A".charCodeAt(0),PLUS_URL_SAFE="-".charCodeAt(0),SLASH_URL_SAFE="_".charCodeAt(0);exports.toByteArray=b64ToByteArray,exports.fromByteArray=uint8ToBase64}("undefined"==typeof exports?this.base64js={}:exports)},{}],4:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||0===value&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],5:[function(require,module,exports){var isArray=Array.isArray,str=Object.prototype.toString;module.exports=isArray||function(val){return!!val&&"[object Array]"==str.call(val)}},{}],6:[function(require,module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError('Uncaught, unspecified "error" event.')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=new Array(len-1),i=1;i<len;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=new Array(len-1),i=1;i<len;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;i<len;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-- >0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(position<0)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],7:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],8:[function(require,module,exports){module.exports=function(obj){return!(null==obj||!(obj._isBuffer||obj.constructor&&"function"==typeof obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)))}},{}],9:[function(require,module,exports){module.exports=Array.isArray||function(arr){return"[object Array]"==Object.prototype.toString.call(arr)}},{}],10:[function(require,module,exports){function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var timeout=setTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,clearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var currentQueue,process=module.exports={},queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||setTimeout(drainQueue,0)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},{}],11:[function(require,module,exports){(function(global){!function(root){function error(type){throw RangeError(errors[type])}function map(array,fn){for(var length=array.length,result=[];length--;)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@"),result="";parts.length>1&&(result=parts[0]+"@",string=parts[1]),string=string.replace(regexSeparators,".");var labels=string.split("."),encoded=map(labels,fn).join(".");return result+encoded}function ucs2decode(string){for(var value,extra,output=[],counter=0,length=string.length;counter<length;)value=string.charCodeAt(counter++),value>=55296&&value<=56319&&counter<length?(extra=string.charCodeAt(counter++),56320==(64512&extra)?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--)):output.push(value);return output}function ucs2encode(array){return map(array,function(value){var output="";return value>65535&&(value-=65536,output+=stringFromCharCode(value>>>10&1023|55296),value=56320|1023&value),output+=stringFromCharCode(value)}).join("")}function basicToDigit(codePoint){return codePoint-48<10?codePoint-22:codePoint-65<26?codePoint-65:codePoint-97<26?codePoint-97:base}function digitToBasic(digit,flag){return digit+22+75*(digit<26)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){var k=0;for(delta=firstTime?floor(delta/damp):delta>>1,delta+=floor(delta/numPoints);delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var out,basic,j,index,oldi,w,k,digit,t,baseMinusT,output=[],inputLength=input.length,i=0,n=initialN,bias=initialBias;for(basic=input.lastIndexOf(delimiter),basic<0&&(basic=0),j=0;j<basic;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(index=basic>0?basic+1:0;index<inputLength;){for(oldi=i,w=1,k=base;index>=inputLength&&error("invalid-input"),digit=basicToDigit(input.charCodeAt(index++)),(digit>=base||digit>floor((maxInt-i)/w))&&error("overflow"),i+=digit*w,t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias,!(digit<t);k+=base)baseMinusT=base-t,w>floor(maxInt/baseMinusT)&&error("overflow"),w*=baseMinusT;out=output.length+1,bias=adapt(i-oldi,out,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT,output=[];for(input=ucs2decode(input),inputLength=input.length,n=initialN,delta=0,bias=initialBias,j=0;j<inputLength;++j)currentValue=input[j],currentValue<128&&output.push(stringFromCharCode(currentValue));for(handledCPCount=basicLength=output.length,basicLength&&output.push(delimiter);handledCPCount<inputLength;){for(m=maxInt,j=0;j<inputLength;++j)currentValue=input[j],currentValue>=n&&currentValue<m&&(m=currentValue);for(handledCPCountPlusOne=handledCPCount+1,m-n>floor((maxInt-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;j<inputLength;++j)if(currentValue=input[j],currentValue<n&&++delta>maxInt&&error("overflow"),currentValue==n){for(q=delta,k=base;t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias,!(q<t);k+=base)qMinusT=q-t,baseMinusT=base-t,output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT);output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")}function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})}var freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule="object"==typeof module&&module&&!module.nodeType&&module,freeGlobal="object"==typeof global&&global;freeGlobal.global!==freeGlobal&&freeGlobal.window!==freeGlobal&&freeGlobal.self!==freeGlobal||(root=freeGlobal);var punycode,key,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;if(punycode={version:"1.3.2",ucs2:{decode:ucs2decode,encode:ucs2encode
-},decode:decode,encode:encode,toASCII:toASCII,toUnicode:toUnicode},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return punycode});else if(freeExports&&freeModule)if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);else root.punycode=punycode}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],12:[function(require,module,exports){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":13}],13:[function(require,module,exports){"use strict";function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||processNextTick(onEndNT,this)}function onEndNT(self){self.end()}var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};module.exports=Duplex;var processNextTick=require("process-nextick-args"),util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable);for(var keys=objectKeys(Writable.prototype),v=0;v<keys.length;v++){var method=keys[v];Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])}},{"./_stream_readable":15,"./_stream_writable":17,"core-util-is":18,inherits:7,"process-nextick-args":19}],14:[function(require,module,exports){"use strict";function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":16,"core-util-is":18,inherits:7}],15:[function(require,module,exports){(function(process){"use strict";function ReadableState(options,stream){var Duplex=require("./_stream_duplex");options=options||{},this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.readableObjectMode);var hwm=options.highWaterMark,defaultHwm=this.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){require("./_stream_duplex");return this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,options&&"function"==typeof options.read&&(this._read=options.read),void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(null===chunk)state.reading=!1,onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk)),addToFront||(state.reading=!1),state.flowing&&0===state.length&&!state.sync?(stream.emit("data",chunk),stream.read(0)):(state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):state.buffer.push(chunk),state.needReadable&&emitReadable(stream)),maybeReadMore(stream,state);else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||0===state.length)}function computeNewHighWaterMark(n){return n>=MAX_HWM?n=MAX_HWM:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function howMuchToRead(n,state){return 0===state.length&&state.ended?0:state.objectMode?0===n?0:1:null===n||isNaN(n)?state.flowing&&state.buffer.length?state.buffer[0].length:state.length:n<=0?0:(n>state.highWaterMark&&(state.highWaterMark=computeNewHighWaterMark(n)),n>state.length?state.ended?state.length:(state.needReadable=!0,0):n)}function chunkInvalid(state,chunk){var er=null;return Buffer.isBuffer(chunk)||"string"==typeof chunk||null===chunk||void 0===chunk||state.objectMode||(er=new TypeError("Invalid non-string/buffer chunk")),er}function onEofChunk(stream,state){if(!state.ended){if(state.decoder){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,emitReadable(stream)}}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,state.sync?processNextTick(emitReadable_,stream):emitReadable_(stream))}function emitReadable_(stream){debug("emit readable"),stream.emit("readable"),flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,processNextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark&&(debug("maybeReadMore read 0"),stream.read(0),len!==state.length);)len=state.length;state.readingMore=!1}function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,0===state.awaitDrain&&EElistenerCount(src,"data")&&(state.flowing=!0,flow(src))}}function nReadingNextTick(self){debug("readable nexttick read 0"),self.read(0)}function resume(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,processNextTick(resume_,stream,state))}function resume_(stream,state){state.reading||(debug("resume read 0"),stream.read(0)),state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}function flow(stream){var state=stream._readableState;if(debug("flow",state.flowing),state.flowing)do var chunk=stream.read();while(null!==chunk&&state.flowing)}function fromList(n,state){var ret,list=state.buffer,length=state.length,stringMode=!!state.decoder,objectMode=!!state.objectMode;if(0===list.length)return null;if(0===length)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length)ret=stringMode?list.join(""):1===list.length?list[0]:Buffer.concat(list,length),list.length=0;else if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n),list[0]=buf.slice(n)}else if(n===list[0].length)ret=list.shift();else{ret=stringMode?"":new Buffer(n);for(var c=0,i=0,l=list.length;i<l&&c<n;i++){var buf=list[0],cpy=Math.min(n-c,buf.length);stringMode?ret+=buf.slice(0,cpy):buf.copy(ret,c,0,cpy),cpy<buf.length?list[0]=buf.slice(cpy):list.shift(),c+=cpy}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");state.endEmitted||(state.ended=!0,processNextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var processNextTick=require("process-nextick-args"),isArray=require("isarray"),Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var Stream,EElistenerCount=(require("events"),function(emitter,type){return emitter.listeners(type).length});!function(){try{Stream=require("stream")}catch(_){}finally{Stream||(Stream=require("events").EventEmitter)}}();var Buffer=require("buffer").Buffer,util=require("core-util-is");util.inherits=require("inherits");var debug,debugUtil=require("util");debug=debugUtil&&debugUtil.debuglog?debugUtil.debuglog("stream"):function(){};var StringDecoder;util.inherits(Readable,Stream),Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return state.objectMode||"string"!=typeof chunk||(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=new Buffer(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.isPaused=function(){return this._readableState.flowing===!1},Readable.prototype.setEncoding=function(enc){return StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc,this};var MAX_HWM=8388608;Readable.prototype.read=function(n){debug("read",n);var state=this._readableState,nOrig=n;if(("number"!=typeof n||n>0)&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(0===state.length||state.length-n<state.highWaterMark)&&(doRead=!0,debug("length less than watermark",doRead)),(state.ended||state.reading)&&(doRead=!1,debug("reading or ended",doRead)),doRead&&(debug("do read"),state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1),doRead&&!state.reading&&(n=howMuchToRead(nOrig,state));var ret;return ret=n>0?fromList(n,state):null,null===ret&&(state.needReadable=!0,n=0),state.length-=n,0!==state.length||state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&0===state.length&&endReadable(this),null!==ret&&this.emit("data",ret),ret},Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){debug("onunpipe"),readable===src&&cleanup()}function onend(){debug("onend"),dest.end()}function cleanup(){debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),src.removeListener("data",ondata),cleanedUp=!0,!state.awaitDrain||dest._writableState&&!dest._writableState.needDrain||ondrain()}function ondata(chunk){debug("ondata");var ret=dest.write(chunk);!1===ret&&(1!==state.pipesCount||state.pipes[0]!==dest||1!==src.listenerCount("data")||cleanedUp||(debug("false write response, pause",src._readableState.awaitDrain),src._readableState.awaitDrain++),src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),0===EElistenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}function unpipe(){debug("unpipe"),src.unpipe(dest)}var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?processNextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=!1;return src.on("data",ondata),dest._events&&dest._events.error?isArray(dest._events.error)?dest._events.error.unshift(onerror):dest._events.error=[onerror,dest._events.error]:dest.on("error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;i<len;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return i===-1?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"===ev&&!1!==this._readableState.flowing&&this.resume(),"readable"===ev&&this.readable){var state=this._readableState;state.readableListening||(state.readableListening=!0,state.emittedReadable=!1,state.needReadable=!0,state.reading?state.length&&emitReadable(this,state):processNextTick(nReadingNextTick,this))}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!0,resume(this,state)),this},Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),(!state.objectMode||null!==chunk&&void 0!==chunk)&&(state.objectMode||chunk&&chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)void 0===this[i]&&"function"==typeof stream[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(n){debug("wrapped _read",n),paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{"./_stream_duplex":13,_process:10,buffer:2,"core-util-is":18,events:6,inherits:7,isarray:9,"process-nextick-args":19,"string_decoder/":26,util:1}],16:[function(require,module,exports){"use strict";function TransformState(stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,null!==data&&void 0!==data&&stream.push(data),cb&&cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&stream._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options),this._transformState=new TransformState(this);var stream=this;this._readableState.needReadable=!0,this._readableState.sync=!1,options&&("function"==typeof options.transform&&(this._transform=options.transform),"function"==typeof options.flush&&(this._flush=options.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(er){done(stream,er)}):done(stream)})}function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState,ts=stream._transformState;if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}module.exports=Transform;var Duplex=require("./_stream_duplex"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(Transform,Duplex),Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)},Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("not implemented")},Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}},Transform.prototype._read=function(n){var ts=this._transformState;null!==ts.writechunk&&ts.writecb&&!ts.transforming?(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)):ts.needTransform=!0}},{"./_stream_duplex":13,"core-util-is":18,inherits:7}],17:[function(require,module,exports){"use strict";function nop(){}function WriteReq(chunk,encoding,cb){this.chunk=chunk,this.encoding=encoding,this.callback=cb,this.next=null}function WritableState(options,stream){var Duplex=require("./_stream_duplex");options=options||{},this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.writableObjectMode);var hwm=options.highWaterMark,defaultHwm=this.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1}function Writable(options){var Duplex=require("./_stream_duplex");return this instanceof Writable||this instanceof Duplex?(this._writableState=new WritableState(options,this),this.writable=!0,options&&("function"==typeof options.write&&(this._write=options.write),"function"==typeof options.writev&&(this._writev=options.writev)),void Stream.call(this)):new Writable(options)}function writeAfterEnd(stream,cb){var er=new Error("write after end");stream.emit("error",er),processNextTick(cb,er)}function validChunk(stream,state,chunk,cb){var valid=!0;if(!Buffer.isBuffer(chunk)&&"string"!=typeof chunk&&null!==chunk&&void 0!==chunk&&!state.objectMode){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er),processNextTick(cb,er),valid=!1}return valid}function decodeChunk(state,chunk,encoding){return state.objectMode||state.decodeStrings===!1||"string"!=typeof chunk||(chunk=new Buffer(chunk,encoding)),chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding),Buffer.isBuffer(chunk)&&(encoding="buffer");var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(ret||(state.needDrain=!0),state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest=new WriteReq(chunk,encoding,cb),last?last.next=state.lastBufferedRequest:state.bufferedRequest=state.lastBufferedRequest}else doWrite(stream,state,!1,len,chunk,encoding,cb);return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,writev?stream._writev(chunk,state.onwrite):stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){--state.pendingcb,sync?processNextTick(cb,er):cb(er),stream._writableState.errorEmitted=!0,stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state);finished||state.corked||state.bufferProcessing||!state.bufferedRequest||clearBuffer(stream,state),sync?processNextTick(afterWrite,stream,state,finished,cb):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),state.pendingcb--,cb(),finishMaybe(stream,state)}function onwriteDrain(stream,state){0===state.length&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){state.bufferProcessing=!0;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){for(var buffer=[],cbs=[];entry;)cbs.push(entry.callback),buffer.push(entry),entry=entry.next;state.pendingcb++,state.lastBufferedRequest=null,doWrite(stream,state,!0,state.length,buffer,"",function(err){for(var i=0;i<cbs.length;i++)state.pendingcb--,cbs[i](err)})}else{for(;entry;){var chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,!1,len,chunk,encoding,cb),entry=entry.next,state.writing)break}null===entry&&(state.lastBufferedRequest=null)}state.bufferedRequest=entry,state.bufferProcessing=!1}function needFinish(state){return state.ending&&0===state.length&&null===state.bufferedRequest&&!state.finished&&!state.writing}function prefinish(stream,state){state.prefinished||(state.prefinished=!0,stream.emit("prefinish"))}function finishMaybe(stream,state){var need=needFinish(state);return need&&(0===state.pendingcb?(prefinish(stream,state),state.finished=!0,stream.emit("finish")):prefinish(stream,state)),need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?processNextTick(cb):stream.once("finish",cb)),state.ended=!0}module.exports=Writable;var processNextTick=require("process-nextick-args"),Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream,internalUtil={deprecate:require("util-deprecate")};!function(){try{Stream=require("stream")}catch(_){}finally{Stream||(Stream=require("events").EventEmitter)}}();var Buffer=require("buffer").Buffer;util.inherits(Writable,Stream),WritableState.prototype.getBuffer=function(){for(var current=this.bufferedRequest,out=[];current;)out.push(current),current=current.next;return out},function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(_){}}(),Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1;return"function"==typeof encoding&&(cb=encoding,encoding=null),Buffer.isBuffer(chunk)?encoding="buffer":encoding||(encoding=state.defaultEncoding),"function"!=typeof cb&&(cb=nop),state.ended?writeAfterEnd(this,cb):validChunk(this,state,chunk,cb)&&(state.pendingcb++,ret=writeOrBuffer(this,state,chunk,encoding,cb)),ret},Writable.prototype.cork=function(){var state=this._writableState;state.corked++},Writable.prototype.uncork=function(){var state=this._writableState;state.corked&&(state.corked--,state.writing||state.corked||state.finished||state.bufferProcessing||!state.bufferedRequest||clearBuffer(this,state))},Writable.prototype.setDefaultEncoding=function(encoding){if("string"==typeof encoding&&(encoding=encoding.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+encoding);this._writableState.defaultEncoding=encoding},Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;"function"==typeof chunk?(cb=chunk,chunk=null,encoding=null):"function"==typeof encoding&&(cb=encoding,encoding=null),null!==chunk&&void 0!==chunk&&this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||state.finished||endWritable(this,state,cb)}},{"./_stream_duplex":13,buffer:2,"core-util-is":18,events:6,inherits:7,"process-nextick-args":19,"util-deprecate":20}],18:[function(require,module,exports){(function(Buffer){function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function isBuffer(arg){return Buffer.isBuffer(arg)}function objectToString(o){return Object.prototype.toString.call(o)}exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=isBuffer}).call(this,{isBuffer:require("../../../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":8}],19:[function(require,module,exports){(function(process){"use strict";function nextTick(fn){for(var args=new Array(arguments.length-1),i=0;i<args.length;)args[i++]=arguments[i];process.nextTick(function(){fn.apply(null,args)})}module.exports=nextTick}).call(this,require("_process"))},{_process:10}],20:[function(require,module,exports){(function(global){function deprecate(fn,msg){function deprecated(){if(!warned){if(config("throwDeprecation"))throw new Error(msg);config("traceDeprecation")?console.trace(msg):console.warn(msg),warned=!0}return fn.apply(this,arguments)}if(config("noDeprecation"))return fn;var warned=!1;return deprecated}function config(name){try{if(!global.localStorage)return!1}catch(_){return!1}var val=global.localStorage[name];return null!=val&&"true"===String(val).toLowerCase()}module.exports=deprecate}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],21:[function(require,module,exports){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":14}],22:[function(require,module,exports){var Stream=function(){try{return require("stream")}catch(_){}}();exports=module.exports=require("./lib/_stream_readable.js"),exports.Stream=Stream||exports,exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":13,"./lib/_stream_passthrough.js":14,"./lib/_stream_readable.js":15,"./lib/_stream_transform.js":16,"./lib/_stream_writable.js":17}],23:[function(require,module,exports){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":16}],24:[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":17}],25:[function(require,module,exports){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:6,inherits:7,"readable-stream/duplex.js":12,"readable-stream/passthrough.js":21,"readable-stream/readable.js":22,"readable-stream/transform.js":23,"readable-stream/writable.js":24}],26:[function(require,module,exports){function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding))throw new Error("Unknown encoding: "+encoding)}function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3,this.charLength=this.charReceived?3:0}var Buffer=require("buffer").Buffer,isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},StringDecoder=exports.StringDecoder=function(encoding){switch(this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(encoding),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:return void(this.write=passThroughWrite)}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0};StringDecoder.prototype.write=function(buffer){for(var charStr="";this.charLength;){
-var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,0,available),this.charReceived+=available,this.charReceived<this.charLength)return"";buffer=buffer.slice(available,buffer.length),charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(!(charCode>=55296&&charCode<=56319)){if(this.charReceived=this.charLength=0,0===buffer.length)return charStr;break}this.charLength+=this.surrogateSize,charStr=""}this.detectIncompleteChar(buffer);var end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end),end-=this.charReceived),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),buffer.copy(this.charBuffer,0,0,size),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:2}],27:[function(require,module,exports){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],28:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(recurseTimes<0)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;i<l;++i)hasOwnProperty(value,String(i))?output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0)):output.push("");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i<arguments.length;i++)objects.push(inspect(arguments[i]));return objects.join(" ")}for(var i=1,args=arguments,len=args.length,str=String(f).replace(formatRegExp,function(x){if("%%"===x)return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];i<len;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":27,_process:10,inherits:7}],29:[function(require,module,exports){function SessionManager(conf){WildEmitter.call(this),conf=conf||{},this.jid=conf.jid,this.selfID=conf.selfID||this.jid&&this.jid.full||this.jid||"",this.sessions={},this.peers={},this.prepareSession=conf.prepareSession||function(opts){return opts.descriptionTypes.indexOf("rtp")>=0?new MediaSession(opts):opts.descriptionTypes.indexOf("filetransfer")>=0?new FileSession(opts):void 0},this.performTieBreak=conf.performTieBreak||function(sess,req){var descriptionTypes=req.jingle.contents.map(function(content){if(content.description)return content.description.descType}),matching=intersect(sess.pendingDescriptionTypes,descriptionTypes);return matching.length>0},this.screenSharingSupport=webrtc.screenSharing,this.capabilities=["urn:xmpp:jingle:1"],webrtc.support&&(this.capabilities=["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:rtp:1","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:rtcb-fb:0","urn:xmpp:jingle:apps:rtp:rtp-hdrext:0","urn:xmpp:jingle:apps:rtp:ssma:0","urn:xmpp:jingle:apps:dtls:0","urn:xmpp:jingle:apps:grouping:0","urn:xmpp:jingle:apps:file-transfer:3","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:transports.dtls-sctp:1","urn:ietf:rfc:3264","urn:ietf:rfc:5576","urn:ietf:rfc:5888"]),this.config={debug:!1,peerConnectionConfig:{iceServers:conf.iceServers||[{url:"stun:stun.l.google.com:19302"}]},peerConnectionConstraints:{optional:[{DtlsSrtpKeyAgreement:!0},{RtpDataChannels:!1}]},media:{audio:!0,video:!0}};for(var item in conf)this.config[item]=conf[item];this.iceServers=this.config.peerConnectionConfig.iceServers}var util=require("util"),intersect=require("intersect"),WildEmitter=require("wildemitter"),webrtc=require("webrtcsupport"),BaseSession=require("jingle-session"),MediaSession=require("jingle-media-session"),FileSession=require("jingle-filetransfer-session");util.inherits(SessionManager,WildEmitter),SessionManager.prototype.addICEServer=function(server){"string"==typeof server&&(server={url:server}),this.iceServers.push(server)},SessionManager.prototype.addSession=function(session){var self=this,sid=session.sid,peer=session.peerID;return this.sessions[sid]=session,this.peers[peer]||(this.peers[peer]=[]),this.peers[peer].push(session),session.on("terminated",function(){var peers=self.peers[peer]||[];peers.length&&peers.splice(peers.indexOf(session),1),delete self.sessions[sid]}),session.on("*",function(name,data,extraData,extraData2){if("send"===name){var action=data.jingle&&data.jingle.action;session.isInitiator&&"session-initiate"===action&&self.emit("outgoing",session)}!self.config.debug||"log:debug"!==name&&"log:error"!==name||console.log("Jingle:",data,extraData,extraData2),0!==name.indexOf("change")&&self.emit(name,data,extraData,extraData2)}),this.emit("createdSession",session),session},SessionManager.prototype.createMediaSession=function(peer,sid,stream){var session=new MediaSession({sid:sid,peer:peer,initiator:!0,stream:stream,parent:this,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints});return this.addSession(session),session},SessionManager.prototype.createFileTransferSession=function(peer,sid){var session=new FileSession({sid:sid,peer:peer,initiator:!0,parent:this});return this.addSession(session),session},SessionManager.prototype.endPeerSessions=function(peer,reason,silent){peer=peer.full||peer;var sessions=this.peers[peer]||[];delete this.peers[peer],sessions.forEach(function(session){session.end(reason||"gone",silent)})},SessionManager.prototype.endAllSessions=function(reason,silent){var self=this;Object.keys(this.peers).forEach(function(peer){self.endPeerSessions(peer,reason,silent)})},SessionManager.prototype._createIncomingSession=function(meta,req){var session;return this.prepareSession&&(session=this.prepareSession(meta,req)),session||(session=new BaseSession(meta)),this.addSession(session),session},SessionManager.prototype._sendError=function(to,id,data){data.type||(data.type="cancel"),this.emit("send",{to:to,id:id,type:"error",error:data})},SessionManager.prototype._log=function(level,message){this.emit("log:"+level,message)},SessionManager.prototype.process=function(req){var self=this,sid=req.jingle?req.jingle.sid:null,session=this.sessions[sid]||null,rid=req.id,sender=req.from.full||req.from;if("error"===req.type){var isTieBreak=req.error&&"tie-break"===req.error.jingleCondition;return session&&session.pending&&isTieBreak?session.end("alternative-session",!0):(session&&(session.pendingAction=!1),this.emit("error",req))}if("result"===req.type)return void(session&&(session.pendingAction=!1));var action=req.jingle.action,contents=req.jingle.contents||[],descriptionTypes=contents.map(function(content){if(content.description)return content.description.descType}),transportTypes=contents.map(function(content){if(content.transport)return content.transport.transType});if("session-initiate"!==action){if(!session)return this._log("error","Unknown session",sid),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if(session.peerID!==sender||session.ended)return this._log("error","Session has ended, or action has wrong sender"),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if("session-accept"===action&&!session.pending)return this._log("error","Tried to accept session twice",sid),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if("session-terminate"!==action&&action===session.pendingAction&&(this._log("error","Tie break during pending request"),session.isInitiator))return this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(session){if(session.peerID!==sender)return this._log("error","Duplicate sid from new sender"),this._sendError(sender,rid,{condition:"service-unavailable"});if(!session.pending)return this._log("error","Someone is doing this wrong"),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if(this.selfID>session.peerID&&this.performTieBreak(session,req))return this._log("error","Tie break new session because of duplicate sids"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(this.peers[sender]&&this.peers[sender].length)for(var i=0,len=this.peers[sender].length;i<len;i++){var sess=this.peers[sender][i];if(sess&&sess.pending&&sess.sid>sid&&this.performTieBreak(sess,req))return this._log("info","Tie break session-initiate"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}if("session-initiate"===action){if(!contents.length)return self._sendError(sender,rid,{condition:"bad-request"});session=this._createIncomingSession({sid:sid,peer:req.from,peerID:sender,initiator:!1,parent:this,descriptionTypes:descriptionTypes,transportTypes:transportTypes,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints},req)}session.process(action,req.jingle,function(err){err?(self._log("error","Could not process request",req,err),self._sendError(sender,rid,err)):(self.emit("send",{to:sender,id:rid,type:"result"}),"session-initiate"===action&&self.emit("incoming",session))})},module.exports=SessionManager},{intersect:31,"jingle-filetransfer-session":32,"jingle-media-session":86,"jingle-session":118,util:28,webrtcsupport:123,wildemitter:124}],30:[function(require,module,exports){var arr=[],each=arr.forEach,slice=arr.slice;module.exports=function(obj){return each.call(slice.call(arguments,1),function(source){if(source)for(var prop in source)obj[prop]=source[prop]}),obj}},{}],31:[function(require,module,exports){function intersect(a,b){for(var res=[],i=0;i<a.length;i++)indexOf(b,a[i])>-1&&res.push(a[i]);return res}function indexOf(arr,el){for(var i=0;i<arr.length;i++)if(arr[i]===el)return i;return-1}module.exports=intersect,intersect.big=function(a,b){for(var ret=[],temp={},i=0;i<b.length;i++)temp[b[i]]=!0;for(var i=0;i<a.length;i++)temp[a[i]]&&ret.push(a[i]);return ret}},{}],32:[function(require,module,exports){function FileTransferSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addChannel",this.onChannelAdded.bind(this)),this.sender=null,this.receiver=null}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection"),FileTransfer=require("filetransfer/hashed");util.inherits(FileTransferSession,BaseSession),FileTransferSession.prototype=extend(FileTransferSession.prototype,{start:function(file){var self=this;this.state="pending",this.pc.isInitiator=!0,this.sender=new FileTransfer.Sender,this.sender.on("progress",function(sent,size){self._log("info","Send progress "+sent+"/"+size)}),this.sender.on("sentFile",function(meta){self._log("info","Sent file",meta.name);var content=self.pc.localDescription.contents[0];delete content.transport,content.description={descType:"filetransfer",offer:{hash:{algo:meta.algo,value:meta.hash}}},self.send("description-info",{contents:[content]}),self.emit("sentFile",self,meta)});var sendChannel=this.pc.createDataChannel("filetransfer");sendChannel.onopen=function(){self.sender.send(file,sendChannel)};var constraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this.pc.offer(constraints,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(offer.jingle.contents[0].description={descType:"filetransfer",offer:{date:file.lastModifiedDate,name:file.name,size:file.size,hash:{algo:"sha-1",value:""}}},void self.send("session-initiate",offer.jingle))})},accept:function(){var self=this;this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):void self.send("session-accept",answer.jingle)})},end:function(reason,silent){this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},maybeReceivedFile:function(){this.receiver.metadata.hash.value&&(this.receiver.metadata.hash.value===this.receiver.metadata.actualhash?(this._log("info","File hash matches"),this.emit("receivedFile",this,this.receivedFile,this.receiver.metadata),this.end("success")):(this._log("error","File hash does not match"),this.end("media-error")))},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":"stable"===this.pc.signalingState?this.connectionState="interrupted":this.connectionState="disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onChannelAdded:function(channel){this.receiver.receive(null,channel)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1;var desc=changes.contents[0].description;this.receiver=new FileTransfer.Receiver({hash:desc.offer.hash.algo}),this.receiver.on("progress",function(received,size){self._log("info","Receive progress "+received+"/"+size)}),this.receiver.on("receivedFile",function(file){self.receivedFile=file,self.maybeReceivedFile()}),this.receiver.metadata=desc.offer,changes.contents[0].description={descType:"datachannel"},this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",changes.contents[0].description={descType:"datachannel"},this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){this._log("info","Terminating session"),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onDescriptionInfo:function(info,cb){var hash=info.contents[0].description.offer.hash;this.receiver.metadata.hash=hash,this.receiver.metadata.actualhash&&this.maybeReceivedFile(),cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})}}),module.exports=FileTransferSession},{"extend-object":30,"filetransfer/hashed":34,"jingle-session":118,rtcpeerconnection:85,util:28}],33:[function(require,module,exports){function Sender(opts){WildEmitter.call(this);var options=opts||{};this.config={chunksize:16384,pacing:0};var item;for(item in options)this.config[item]=options[item];this.file=null,this.channel=null}function Receiver(){WildEmitter.call(this),this.receiveBuffer=[],this.received=0,this.metadata={},this.channel=null}var WildEmitter=require("wildemitter"),util=require("util");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(file,channel){var self=this;this.file=file,this.channel=channel;var sliceFile=function(offset){var reader=new window.FileReader;reader.onload=function(){return function(e){self.channel.send(e.target.result),self.emit("progress",offset,file.size,e.target.result),file.size>offset+e.target.result.byteLength?window.setTimeout(sliceFile,self.config.pacing,offset+self.config.chunksize):(self.emit("progress",file.size,file.size,null),self.emit("sentFile"))}}(file);var slice=file.slice(offset,offset+self.config.chunksize);reader.readAsArrayBuffer(slice)};window.setTimeout(sliceFile,0,0)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(metadata,channel){var self=this;metadata&&(this.metadata=metadata),this.channel=channel,channel.binaryType="arraybuffer",this.channel.onmessage=function(event){var len=event.data.byteLength;self.received+=len,self.receiveBuffer.push(event.data),self.emit("progress",self.received,self.metadata.size,event.data),self.received===self.metadata.size?(self.emit("receivedFile",new window.Blob(self.receiveBuffer),self.metadata),self.receiveBuffer=[]):self.received>self.metadata.size&&(console.error("received more than expected, discarding..."),self.receiveBuffer=[])}},module.exports={},module.exports.support="undefined"!=typeof window&&window&&window.File&&window.FileReader&&window.Blob,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{util:28,wildemitter:53}],34:[function(require,module,exports){function Sender(opts){WildEmitter.call(this);var self=this;this.base=new base.Sender(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("sentFile",function(){self.emit("sentFile",{hash:self.hash.digest("hex"),algo:options.hash})})}function Receiver(opts){WildEmitter.call(this);var self=this;this.base=new base.Receiver(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("receivedFile",function(file,metadata){metadata.actualhash=self.hash.digest("hex"),self.emit("receivedFile",file,metadata)})}var WildEmitter=require("wildemitter"),util=require("util"),hashes=require("iana-hashes"),base=require("./filetransfer");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(){this.base.send.apply(this.base,arguments)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(){this.base.receive.apply(this.base,arguments)},Object.defineProperty(Receiver.prototype,"metadata",{get:function(){return this.base.metadata},set:function(value){this.base.metadata=value}}),module.exports={},module.exports.support=base.support,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{"./filetransfer":33,"iana-hashes":35,util:28,wildemitter:53}],35:[function(require,module,exports){var createHash=require("create-hash"),createHmac=require("create-hmac"),getHashes=require("./lib/get-hashes"),mapping={md2:"md2",md5:"md5","sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512"},names=Object.keys(mapping);exports.getHashes=function(){for(var result=[],available=getHashes(),i=0,len=names.length;i<len;i++)available.indexOf(mapping[names[i]])>=0&&result.push(names[i]);return result},exports.createHash=function(algorithm){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHash(algorithm)},exports.createHmac=function(algorithm,key){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHmac(algorithm,key)}},{"./lib/get-hashes":36,"create-hash":37,"create-hmac":51}],36:[function(require,module,exports){module.exports=function(){return["sha1","sha224","sha256","sha384","sha512","md5","rmd160"]}},{}],37:[function(require,module,exports){(function(Buffer){"use strict";function HashNoConstructor(hash){Base.call(this,"digest"),this._hash=hash,this.buffers=[]}function Hash(hash){Base.call(this,"digest"),this._hash=hash}var inherits=require("inherits"),md5=require("./md5"),rmd160=require("ripemd160"),sha=require("sha.js"),Base=require("cipher-base");inherits(HashNoConstructor,Base),HashNoConstructor.prototype._update=function(data){this.buffers.push(data)},HashNoConstructor.prototype._final=function(){var buf=Buffer.concat(this.buffers),r=this._hash(buf);return this.buffers=null,r},inherits(Hash,Base),Hash.prototype._update=function(data){this._hash.update(data)},Hash.prototype._final=function(){return this._hash.digest()},module.exports=function(alg){return alg=alg.toLowerCase(),"md5"===alg?new HashNoConstructor(md5):"rmd160"===alg||"ripemd160"===alg?new HashNoConstructor(rmd160):new Hash(sha(alg))}}).call(this,require("buffer").Buffer)},{"./md5":39,buffer:2,"cipher-base":40,inherits:41,ripemd160:42,"sha.js":44}],38:[function(require,module,exports){(function(Buffer){"use strict";function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i<buf.length;i+=intSize)arr.push(fn.call(buf,i));return arr}function toBuffer(arr,size,bigEndian){for(var buf=new Buffer(size),fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE,i=0;i<arr.length;i++)fn.call(buf,arr[i],4*i,!0);return buf}function hash(buf,fn,hashSize,bigEndian){Buffer.isBuffer(buf)||(buf=new Buffer(buf));var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}var intSize=4,zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;exports.hash=hash}).call(this,require("buffer").Buffer)},{buffer:2}],39:[function(require,module,exports){"use strict";function core_md5(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16){var olda=a,oldb=b,oldc=c,oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),
-b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":38}],40:[function(require,module,exports){(function(Buffer){function CipherBase(hashMode){Transform.call(this),this.hashMode="string"==typeof hashMode,this.hashMode?this[hashMode]=this._finalOrDigest:this.final=this._finalOrDigest,this._decoder=null,this._encoding=null}var Transform=require("stream").Transform,inherits=require("inherits"),StringDecoder=require("string_decoder").StringDecoder;module.exports=CipherBase,inherits(CipherBase,Transform),CipherBase.prototype.update=function(data,inputEnc,outputEnc){"string"==typeof data&&(data=new Buffer(data,inputEnc));var outData=this._update(data);return this.hashMode?this:(outputEnc&&(outData=this._toString(outData,outputEnc)),outData)},CipherBase.prototype.setAutoPadding=function(){},CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},CipherBase.prototype._transform=function(data,_,next){var err;try{this.hashMode?this._update(data):this.push(this._update(data))}catch(e){err=e}finally{next(err)}},CipherBase.prototype._flush=function(done){var err;try{this.push(this._final())}catch(e){err=e}finally{done(err)}},CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this._final()||new Buffer("");return outputEnc&&(outData=this._toString(outData,outputEnc,!0)),outData},CipherBase.prototype._toString=function(value,enc,final){if(this._decoder||(this._decoder=new StringDecoder(enc),this._encoding=enc),this._encoding!==enc)throw new Error("can't switch encodings");var out=this._decoder.write(value);return final&&(out+=this._decoder.end()),out}}).call(this,require("buffer").Buffer)},{buffer:2,inherits:41,stream:25,string_decoder:26}],41:[function(require,module,exports){arguments[4][7][0].apply(exports,arguments)},{dup:7}],42:[function(require,module,exports){(function(Buffer){function bytesToWords(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words}function wordsToBytes(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes}function processBlock(H,M,offset){for(var i=0;i<16;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];var t;for(i=0;i<80;i+=1)t=al+M[offset+zl[i]]|0,t+=i<16?f1(bl,cl,dl)+hl[0]:i<32?f2(bl,cl,dl)+hl[1]:i<48?f3(bl,cl,dl)+hl[2]:i<64?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t=0|t,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=i<16?f5(br,cr,dr)+hr[0]:i<32?f4(br,cr,dr)+hr[1]:i<48?f3(br,cr,dr)+hr[2]:i<64?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t=0|t,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;i<m.length;i+=16)processBlock(H,m,i);for(i=0;i<5;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}/** @preserve
+"use strict";function typedArraySupport(){try{var arr=new Uint8Array(1);return arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===arr.foo()&&"function"==typeof arr.subarray&&0===arr.subarray(1,1).byteLength}catch(e){return!1}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(that,length){if(kMaxLength()<length)throw new RangeError("Invalid typed array length");return Buffer.TYPED_ARRAY_SUPPORT?(that=new Uint8Array(length),that.__proto__=Buffer.prototype):(null===that&&(that=new Buffer(length)),that.length=length),that}function Buffer(arg,encodingOrOffset,length){if(!(Buffer.TYPED_ARRAY_SUPPORT||this instanceof Buffer))return new Buffer(arg,encodingOrOffset,length);if("number"==typeof arg){if("string"==typeof encodingOrOffset)throw new Error("If encoding is specified then the first argument must be a string");return allocUnsafe(this,arg)}return from(this,arg,encodingOrOffset,length)}function from(that,value,encodingOrOffset,length){if("number"==typeof value)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&value instanceof ArrayBuffer?fromArrayBuffer(that,value,encodingOrOffset,length):"string"==typeof value?fromString(that,value,encodingOrOffset):fromObject(that,value)}function assertSize(size){if("number"!=typeof size)throw new TypeError('"size" argument must be a number');if(size<0)throw new RangeError('"size" argument must not be negative')}function alloc(that,size,fill,encoding){return assertSize(size),size<=0?createBuffer(that,size):void 0!==fill?"string"==typeof encoding?createBuffer(that,size).fill(fill,encoding):createBuffer(that,size).fill(fill):createBuffer(that,size)}function allocUnsafe(that,size){if(assertSize(size),that=createBuffer(that,size<0?0:0|checked(size)),!Buffer.TYPED_ARRAY_SUPPORT)for(var i=0;i<size;++i)that[i]=0;return that}function fromString(that,string,encoding){if("string"==typeof encoding&&""!==encoding||(encoding="utf8"),!Buffer.isEncoding(encoding))throw new TypeError('"encoding" must be a valid string encoding');var length=0|byteLength(string,encoding);that=createBuffer(that,length);var actual=that.write(string,encoding);return actual!==length&&(that=that.slice(0,actual)),that}function fromArrayLike(that,array){var length=array.length<0?0:0|checked(array.length);that=createBuffer(that,length);for(var i=0;i<length;i+=1)that[i]=255&array[i];return that}function fromArrayBuffer(that,array,byteOffset,length){if(array.byteLength,byteOffset<0||array.byteLength<byteOffset)throw new RangeError("'offset' is out of bounds");if(array.byteLength<byteOffset+(length||0))throw new RangeError("'length' is out of bounds");return array=void 0===byteOffset&&void 0===length?new Uint8Array(array):void 0===length?new Uint8Array(array,byteOffset):new Uint8Array(array,byteOffset,length),Buffer.TYPED_ARRAY_SUPPORT?(that=array,that.__proto__=Buffer.prototype):that=fromArrayLike(that,array),that}function fromObject(that,obj){if(Buffer.isBuffer(obj)){var len=0|checked(obj.length);return that=createBuffer(that,len),0===that.length?that:(obj.copy(that,0,0,len),that)}if(obj){if("undefined"!=typeof ArrayBuffer&&obj.buffer instanceof ArrayBuffer||"length"in obj)return"number"!=typeof obj.length||isnan(obj.length)?createBuffer(that,0):fromArrayLike(that,obj);if("Buffer"===obj.type&&isArray(obj.data))return fromArrayLike(that,obj.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function checked(length){if(length>=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|length}function SlowBuffer(length){return+length!=length&&(length=0),Buffer.alloc(+length)}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(string)||string instanceof ArrayBuffer))return string.byteLength;"string"!=typeof string&&(string=""+string);var len=string.length;if(0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":case void 0:return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||start<0)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),end<=0)return"";if(end>>>=0,start>>>=0,end<=start)return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),byteOffset=+byteOffset,isNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val&=255,Buffer.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}var indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&(encoding=String(encoding).toLowerCase(),"ucs2"===encoding||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}var i;if(dir){var foundIndex=-1;for(i=byteOffset;i<arrLength;i++)if(read(arr,i)===read(val,foundIndex===-1?0:i-foundIndex)){if(foundIndex===-1&&(foundIndex=i),i-foundIndex+1===valLength)return foundIndex*indexSize}else foundIndex!==-1&&(i-=i-foundIndex),foundIndex=-1}else for(byteOffset+valLength>arrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;j<valLength;j++)if(read(arr,i+j)!==read(val,j)){found=!1;break}if(found)return i}return-1}function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;length?(length=Number(length),length>remaining&&(length=remaining)):length=remaining;var strLen=string.length;if(strLen%2!==0)throw new TypeError("Invalid hex string");length>strLen/2&&(length=strLen/2);for(var i=0;i<length;++i){var parsed=parseInt(string.substr(2*i,2),16);if(isNaN(parsed))return i;buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function latin1Write(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i<end;){var firstByte=buf[i],codePoint=null,bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:secondByte=buf[i+1],128===(192&secondByte)&&(tempCodePoint=(31&firstByte)<<6|63&secondByte,tempCodePoint>127&&(codePoint=tempCodePoint));break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128===(192&secondByte)&&128===(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint));break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128===(192&secondByte)&&128===(192&thirdByte)&&128===(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte,tempCodePoint>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint))}}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);for(var res="",i=0;i<len;)res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH));return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(127&buf[i]);return ret}function latin1Slice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;++i)ret+=String.fromCharCode(buf[i]);return ret}function hexSlice(buf,start,end){var len=buf.length;(!start||start<0)&&(start=0),(!end||end<0||end>len)&&(end=len);for(var out="",i=start;i<end;++i)out+=toHex(buf[i]);return out}function utf16leSlice(buf,start,end){for(var bytes=buf.slice(start,end),res="",i=0;i<bytes.length;i+=2)res+=String.fromCharCode(bytes[i]+256*bytes[i+1]);return res}function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||value<min)throw new RangeError('"value" argument is out of bounds');if(offset+ext>buf.length)throw new RangeError("Index out of range")}function objectWriteUInt16(buf,value,offset,littleEndian){value<0&&(value=65535+value+1);for(var i=0,j=Math.min(buf.length-offset,2);i<j;++i)buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>8*(littleEndian?i:1-i)}function objectWriteUInt32(buf,value,offset,littleEndian){value<0&&(value=4294967295+value+1);for(var i=0,j=Math.min(buf.length-offset,4);i<j;++i)buf[offset+i]=value>>>8*(littleEndian?i:3-i)&255}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return noAssert||checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=stringtrim(str).replace(INVALID_BASE64_RE,""),str.length<2)return"";for(;str.length%4!==0;)str+="=";return str}function stringtrim(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")}function toHex(n){return n<16?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var codePoint,length=string.length,leadSurrogate=null,bytes=[],i=0;i<length;++i){if(codePoint=string.charCodeAt(i),codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(codePoint<1114112))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i<str.length;++i)byteArray.push(255&str.charCodeAt(i));return byteArray}function utf16leToBytes(str,units){for(var c,hi,lo,byteArray=[],i=0;i<str.length&&!((units-=2)<0);++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length&&!(i+offset>=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isnan(val){return val!==val}var base64=require("base64-js"),ieee754=require("ieee754"),isArray=require("isarray");exports.Buffer=Buffer,exports.SlowBuffer=SlowBuffer,exports.INSPECT_MAX_BYTES=50,Buffer.TYPED_ARRAY_SUPPORT=void 0!==global.TYPED_ARRAY_SUPPORT?global.TYPED_ARRAY_SUPPORT:typedArraySupport(),exports.kMaxLength=kMaxLength(),Buffer.poolSize=8192,Buffer._augment=function(arr){return arr.__proto__=Buffer.prototype,arr},Buffer.from=function(value,encodingOrOffset,length){return from(null,value,encodingOrOffset,length)},Buffer.TYPED_ARRAY_SUPPORT&&(Buffer.prototype.__proto__=Uint8Array.prototype,Buffer.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Buffer[Symbol.species]===Buffer&&Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:!0})),Buffer.alloc=function(size,fill,encoding){return alloc(null,size,fill,encoding)},Buffer.allocUnsafe=function(size){return allocUnsafe(null,size)},Buffer.allocUnsafeSlow=function(size){return allocUnsafe(null,size)},Buffer.isBuffer=function(b){return!(null==b||!b._isBuffer)},Buffer.compare=function(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=Math.min(x,y);i<len;++i)if(a[i]!==b[i]){x=a[i],y=b[i];break}return x<y?-1:y<x?1:0},Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function(list,length){if(!isArray(list))throw new TypeError('"list" argument must be an Array of Buffers');if(0===list.length)return Buffer.alloc(0);var i;if(void 0===length)for(length=0,i=0;i<list.length;++i)length+=list[i].length;var buffer=Buffer.allocUnsafe(length),pos=0;for(i=0;i<list.length;++i){var buf=list[i];if(!Buffer.isBuffer(buf))throw new TypeError('"list" argument must be an Array of Buffers');buf.copy(buffer,pos),pos+=buf.length}return buffer},Buffer.byteLength=byteLength,Buffer.prototype._isBuffer=!0,Buffer.prototype.swap16=function(){var len=this.length;if(len%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<len;i+=2)swap(this,i,i+1);return this},Buffer.prototype.swap32=function(){var len=this.length;if(len%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<len;i+=4)swap(this,i,i+3),swap(this,i+1,i+2);return this},Buffer.prototype.swap64=function(){var len=this.length;if(len%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<len;i+=8)swap(this,i,i+7),swap(this,i+1,i+6),swap(this,i+2,i+5),swap(this,i+3,i+4);return this},Buffer.prototype.toString=function(){var length=0|this.length;return 0===length?"":0===arguments.length?utf8Slice(this,0,length):slowToString.apply(this,arguments)},Buffer.prototype.equals=function(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b||0===Buffer.compare(this,b)},Buffer.prototype.inspect=function(){var str="",max=exports.INSPECT_MAX_BYTES;return this.length>0&&(str=this.toString("hex",0,max).match(/.{2}/g).join(" "),this.length>max&&(str+=" ... ")),"<Buffer "+str+">"},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(!Buffer.isBuffer(target))throw new TypeError("Argument must be a Buffer");if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i<len;++i)if(thisCopy[i]!==targetCopy[i]){x=thisCopy[i],y=targetCopy[i];break}return x<y?-1:y<x?1:0},Buffer.prototype.includes=function(val,byteOffset,encoding){return this.indexOf(val,byteOffset,encoding)!==-1},Buffer.prototype.indexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!0)},Buffer.prototype.lastIndexOf=function(val,byteOffset,encoding){return bidirectionalIndexOf(this,val,byteOffset,encoding,!1)},Buffer.prototype.write=function(string,offset,length,encoding){if(void 0===offset)encoding="utf8",length=this.length,offset=0;else if(void 0===length&&"string"==typeof offset)encoding=offset,length=this.length,offset=0;else{if(!isFinite(offset))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");offset|=0,isFinite(length)?(length|=0,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,start<0?(start+=len,start<0&&(start=0)):start>len&&(start=len),end<0?(end+=len,end<0&&(end=0)):end>len&&(end=len),end<start&&(end=start);var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT)newBuf=this.subarray(start,end),newBuf.__proto__=Buffer.prototype;else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,void 0);for(var i=0;i<sliceLen;++i)newBuf[i]=this[i+start]}return newBuf},Buffer.prototype.readUIntLE=function(offset,byteLength,noAssert){offset|=0,byteLength|=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return val},Buffer.prototype.readUIntBE=function(offset,byteLength,noAssert){offset|=0,byteLength|=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset|=0,byteLength|=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i<byteLength&&(mul*=256);)val+=this[offset+i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset|=0,byteLength|=0,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return mul*=128,val>=mul&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return noAssert||checkOffset(offset,1,this.length),128&this[offset]?(255-this[offset]+1)*-1:this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset|=0,byteLength|=0,!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1,i=0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset|=0,byteLength|=0,!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,1,255,0),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,2,65535,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,4,4294967295,0),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset|=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++i<byteLength&&(mul*=256);)value<0&&0===sub&&0!==this[offset+i-1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset|=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)value<0&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,1,127,-128),Buffer.TYPED_ARRAY_SUPPORT||(value=Math.floor(value)),value<0&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8):objectWriteUInt16(this,value,offset,!0),offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,2,32767,-32768),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>8,this[offset+1]=255&value):objectWriteUInt16(this,value,offset,!1),offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24):objectWriteUInt32(this,value,offset,!0),offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset|=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),Buffer.TYPED_ARRAY_SUPPORT?(this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value):objectWriteUInt32(this,value,offset,!1),offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end<start&&(end=start),end===start)return 0;if(0===target.length||0===this.length)return 0;if(targetStart<0)throw new RangeError("targetStart out of bounds");if(start<0||start>=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart<end-start&&(end=target.length-targetStart+start);var i,len=end-start;if(this===target&&start<targetStart&&targetStart<end)for(i=len-1;i>=0;--i)target[i+targetStart]=this[i+start];else if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT)for(i=0;i<len;++i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,start+len),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),1===val.length){var code=val.charCodeAt(0);code<256&&(val=code)}if(void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding)}else"number"==typeof val&&(val&=255);if(start<0||this.length<start||this.length<end)throw new RangeError("Out of range index");if(end<=start)return this;start>>>=0,end=void 0===end?this.length:end>>>0,val||(val=0);var i;if("number"==typeof val)for(i=start;i<end;++i)this[i]=val;else{var bytes=Buffer.isBuffer(val)?val:utf8ToBytes(new Buffer(val,encoding).toString()),len=bytes.length;for(i=0;i<end-start;++i)this[i+start]=bytes[i%len]}return this};var INVALID_BASE64_RE=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":3,ieee754:44,isarray:48}],7:[function(require,module,exports){(function(Buffer){function CipherBase(hashMode){Transform.call(this),this.hashMode="string"==typeof hashMode,this.hashMode?this[hashMode]=this._finalOrDigest:this.final=this._finalOrDigest,this._decoder=null,this._encoding=null}var Transform=require("stream").Transform,inherits=require("inherits"),StringDecoder=require("string_decoder").StringDecoder;module.exports=CipherBase,inherits(CipherBase,Transform),CipherBase.prototype.update=function(data,inputEnc,outputEnc){"string"==typeof data&&(data=new Buffer(data,inputEnc));var outData=this._update(data);return this.hashMode?this:(outputEnc&&(outData=this._toString(outData,outputEnc)),outData)},CipherBase.prototype.setAutoPadding=function(){},CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},CipherBase.prototype._transform=function(data,_,next){var err;try{this.hashMode?this._update(data):this.push(this._update(data))}catch(e){err=e}finally{next(err)}},CipherBase.prototype._flush=function(done){var err;try{this.push(this._final())}catch(e){err=e}finally{done(err)}},CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this._final()||new Buffer("");return outputEnc&&(outData=this._toString(outData,outputEnc,!0)),outData},CipherBase.prototype._toString=function(value,enc,fin){if(this._decoder||(this._decoder=new StringDecoder(enc),
+this._encoding=enc),this._encoding!==enc)throw new Error("can't switch encodings");var out=this._decoder.write(value);return fin&&(out+=this._decoder.end()),out}}).call(this,require("buffer").Buffer)},{buffer:6,inherits:45,stream:182,string_decoder:183}],8:[function(require,module,exports){require("../../modules/es6.object.assign"),module.exports=require("../../modules/$.core").Object.assign},{"../../modules/$.core":11,"../../modules/es6.object.assign":21}],9:[function(require,module,exports){module.exports=function(it){if("function"!=typeof it)throw TypeError(it+" is not a function!");return it}},{}],10:[function(require,module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},{}],11:[function(require,module,exports){var core=module.exports={version:"1.2.6"};"number"==typeof __e&&(__e=core)},{}],12:[function(require,module,exports){var aFunction=require("./$.a-function");module.exports=function(fn,that,length){if(aFunction(fn),void 0===that)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},{"./$.a-function":9}],13:[function(require,module,exports){module.exports=function(it){if(void 0==it)throw TypeError("Can't call method on "+it);return it}},{}],14:[function(require,module,exports){var global=require("./$.global"),core=require("./$.core"),ctx=require("./$.ctx"),PROTOTYPE="prototype",$export=function(type,name,source){var key,own,out,IS_FORCED=type&$export.F,IS_GLOBAL=type&$export.G,IS_STATIC=type&$export.S,IS_PROTO=type&$export.P,IS_BIND=type&$export.B,IS_WRAP=type&$export.W,exports=IS_GLOBAL?core:core[name]||(core[name]={}),target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{})[PROTOTYPE];IS_GLOBAL&&(source=name);for(key in source)own=!IS_FORCED&&target&&key in target,own&&key in exports||(out=own?target[key]:source[key],exports[key]=IS_GLOBAL&&"function"!=typeof target[key]?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(param){return this instanceof C?new C(param):C(param)};return F[PROTOTYPE]=C[PROTOTYPE],F}(out):IS_PROTO&&"function"==typeof out?ctx(Function.call,out):out,IS_PROTO&&((exports[PROTOTYPE]||(exports[PROTOTYPE]={}))[key]=out))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,module.exports=$export},{"./$.core":11,"./$.ctx":12,"./$.global":16}],15:[function(require,module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return!0}}},{}],16:[function(require,module,exports){var global=module.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=global)},{}],17:[function(require,module,exports){var cof=require("./$.cof");module.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return"String"==cof(it)?it.split(""):Object(it)}},{"./$.cof":10}],18:[function(require,module,exports){var $Object=Object;module.exports={create:$Object.create,getProto:$Object.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:$Object.getOwnPropertyDescriptor,setDesc:$Object.defineProperty,setDescs:$Object.defineProperties,getKeys:$Object.keys,getNames:$Object.getOwnPropertyNames,getSymbols:$Object.getOwnPropertySymbols,each:[].forEach}},{}],19:[function(require,module,exports){var $=require("./$"),toObject=require("./$.to-object"),IObject=require("./$.iobject");module.exports=require("./$.fails")(function(){var a=Object.assign,A={},B={},S=Symbol(),K="abcdefghijklmnopqrst";return A[S]=7,K.split("").forEach(function(k){B[k]=k}),7!=a({},A)[S]||Object.keys(a({},B)).join("")!=K})?function(target,source){for(var T=toObject(target),$$=arguments,$$len=$$.length,index=1,getKeys=$.getKeys,getSymbols=$.getSymbols,isEnum=$.isEnum;$$len>index;)for(var key,S=IObject($$[index++]),keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S),length=keys.length,j=0;length>j;)isEnum.call(S,key=keys[j++])&&(T[key]=S[key]);return T}:Object.assign},{"./$":18,"./$.fails":15,"./$.iobject":17,"./$.to-object":20}],20:[function(require,module,exports){var defined=require("./$.defined");module.exports=function(it){return Object(defined(it))}},{"./$.defined":13}],21:[function(require,module,exports){var $export=require("./$.export");$export($export.S+$export.F,"Object",{assign:require("./$.object-assign")})},{"./$.export":14,"./$.object-assign":19}],22:[function(require,module,exports){(function(Buffer){function isArray(arg){return Array.isArray?Array.isArray(arg):"[object Array]"===objectToString(arg)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return"[object Date]"===objectToString(d)}function isError(e){return"[object Error]"===objectToString(e)||e instanceof Error}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=Buffer.isBuffer}).call(this,{isBuffer:require("../../is-buffer/index.js")})},{"../../is-buffer/index.js":47}],23:[function(require,module,exports){(function(Buffer){"use strict";function HashNoConstructor(hash){Base.call(this,"digest"),this._hash=hash,this.buffers=[]}function Hash(hash){Base.call(this,"digest"),this._hash=hash}var inherits=require("inherits"),md5=require("./md5"),rmd160=require("ripemd160"),sha=require("sha.js"),Base=require("cipher-base");inherits(HashNoConstructor,Base),HashNoConstructor.prototype._update=function(data){this.buffers.push(data)},HashNoConstructor.prototype._final=function(){var buf=Buffer.concat(this.buffers),r=this._hash(buf);return this.buffers=null,r},inherits(Hash,Base),Hash.prototype._update=function(data){this._hash.update(data)},Hash.prototype._final=function(){return this._hash.digest()},module.exports=function(alg){return alg=alg.toLowerCase(),"md5"===alg?new HashNoConstructor(md5):"rmd160"===alg||"ripemd160"===alg?new HashNoConstructor(rmd160):new Hash(sha(alg))}}).call(this,require("buffer").Buffer)},{"./md5":25,buffer:6,"cipher-base":7,inherits:45,ripemd160:166,"sha.js":175}],24:[function(require,module,exports){(function(Buffer){"use strict";function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}for(var arr=[],fn=bigEndian?buf.readInt32BE:buf.readInt32LE,i=0;i<buf.length;i+=intSize)arr.push(fn.call(buf,i));return arr}function toBuffer(arr,size,bigEndian){for(var buf=new Buffer(size),fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE,i=0;i<arr.length;i++)fn.call(buf,arr[i],4*i,!0);return buf}function hash(buf,fn,hashSize,bigEndian){Buffer.isBuffer(buf)||(buf=new Buffer(buf));var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}var intSize=4,zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;exports.hash=hash}).call(this,require("buffer").Buffer)},{buffer:6}],25:[function(require,module,exports){"use strict";function core_md5(x,len){x[len>>5]|=128<<len%32,x[(len+64>>>9<<4)+14]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i<x.length;i+=16){var olda=a,oldb=b,oldc=c,oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936),d=md5_ff(d,a,b,c,x[i+1],12,-389564586),c=md5_ff(c,d,a,b,x[i+2],17,606105819),b=md5_ff(b,c,d,a,x[i+3],22,-1044525330),a=md5_ff(a,b,c,d,x[i+4],7,-176418897),d=md5_ff(d,a,b,c,x[i+5],12,1200080426),c=md5_ff(c,d,a,b,x[i+6],17,-1473231341),b=md5_ff(b,c,d,a,x[i+7],22,-45705983),a=md5_ff(a,b,c,d,x[i+8],7,1770035416),d=md5_ff(d,a,b,c,x[i+9],12,-1958414417),c=md5_ff(c,d,a,b,x[i+10],17,-42063),b=md5_ff(b,c,d,a,x[i+11],22,-1990404162),a=md5_ff(a,b,c,d,x[i+12],7,1804603682),d=md5_ff(d,a,b,c,x[i+13],12,-40341101),c=md5_ff(c,d,a,b,x[i+14],17,-1502002290),b=md5_ff(b,c,d,a,x[i+15],22,1236535329),a=md5_gg(a,b,c,d,x[i+1],5,-165796510),d=md5_gg(d,a,b,c,x[i+6],9,-1069501632),c=md5_gg(c,d,a,b,x[i+11],14,643717713),b=md5_gg(b,c,d,a,x[i+0],20,-373897302),a=md5_gg(a,b,c,d,x[i+5],5,-701558691),d=md5_gg(d,a,b,c,x[i+10],9,38016083),c=md5_gg(c,d,a,b,x[i+15],14,-660478335),b=md5_gg(b,c,d,a,x[i+4],20,-405537848),a=md5_gg(a,b,c,d,x[i+9],5,568446438),d=md5_gg(d,a,b,c,x[i+14],9,-1019803690),c=md5_gg(c,d,a,b,x[i+3],14,-187363961),b=md5_gg(b,c,d,a,x[i+8],20,1163531501),a=md5_gg(a,b,c,d,x[i+13],5,-1444681467),d=md5_gg(d,a,b,c,x[i+2],9,-51403784),c=md5_gg(c,d,a,b,x[i+7],14,1735328473),b=md5_gg(b,c,d,a,x[i+12],20,-1926607734),a=md5_hh(a,b,c,d,x[i+5],4,-378558),d=md5_hh(d,a,b,c,x[i+8],11,-2022574463),c=md5_hh(c,d,a,b,x[i+11],16,1839030562),b=md5_hh(b,c,d,a,x[i+14],23,-35309556),a=md5_hh(a,b,c,d,x[i+1],4,-1530992060),d=md5_hh(d,a,b,c,x[i+4],11,1272893353),c=md5_hh(c,d,a,b,x[i+7],16,-155497632),b=md5_hh(b,c,d,a,x[i+10],23,-1094730640),a=md5_hh(a,b,c,d,x[i+13],4,681279174),d=md5_hh(d,a,b,c,x[i+0],11,-358537222),c=md5_hh(c,d,a,b,x[i+3],16,-722521979),b=md5_hh(b,c,d,a,x[i+6],23,76029189),a=md5_hh(a,b,c,d,x[i+9],4,-640364487),d=md5_hh(d,a,b,c,x[i+12],11,-421815835),c=md5_hh(c,d,a,b,x[i+15],16,530742520),b=md5_hh(b,c,d,a,x[i+2],23,-995338651),a=md5_ii(a,b,c,d,x[i+0],6,-198630844),d=md5_ii(d,a,b,c,x[i+7],10,1126891415),c=md5_ii(c,d,a,b,x[i+14],15,-1416354905),b=md5_ii(b,c,d,a,x[i+5],21,-57434055),a=md5_ii(a,b,c,d,x[i+12],6,1700485571),d=md5_ii(d,a,b,c,x[i+3],10,-1894986606),c=md5_ii(c,d,a,b,x[i+10],15,-1051523),b=md5_ii(b,c,d,a,x[i+1],21,-2054922799),a=md5_ii(a,b,c,d,x[i+8],6,1873313359),d=md5_ii(d,a,b,c,x[i+15],10,-30611744),c=md5_ii(c,d,a,b,x[i+6],15,-1560198380),b=md5_ii(b,c,d,a,x[i+13],21,1309151649),a=md5_ii(a,b,c,d,x[i+4],6,-145523070),d=md5_ii(d,a,b,c,x[i+11],10,-1120210379),c=md5_ii(c,d,a,b,x[i+2],15,718787259),b=md5_ii(b,c,d,a,x[i+9],21,-343485551),a=safe_add(a,olda),b=safe_add(b,oldb),c=safe_add(c,oldc),d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(65535&x)+(65535&y),msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|65535&lsw}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}var helpers=require("./helpers");module.exports=function(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":24}],26:[function(require,module,exports){(function(Buffer){"use strict";function Hmac(alg,key){Transform.call(this),alg=alg.toLowerCase(),"string"==typeof key&&(key=new Buffer(key));var blocksize="sha512"===alg||"sha384"===alg?128:64;this._alg=alg,this._key=key,key.length>blocksize?key=createHash(alg).update(key).digest():key.length<blocksize&&(key=Buffer.concat([key,ZEROS],blocksize));for(var ipad=this._ipad=new Buffer(blocksize),opad=this._opad=new Buffer(blocksize),i=0;i<blocksize;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("create-hash/browser"),inherits=require("inherits"),Transform=require("stream").Transform,ZEROS=new Buffer(128);ZEROS.fill(0),inherits(Hmac,Transform),Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype._transform=function(data,_,next){this._hash.update(data),next()},Hmac.prototype._flush=function(next){this.push(this.digest()),next()},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)},module.exports=function(alg,key){return new Hmac(alg,key)}}).call(this,require("buffer").Buffer)},{buffer:6,"create-hash/browser":23,inherits:45,stream:182}],27:[function(require,module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;var err=new Error('Uncaught, unspecified "error" event. ('+er+")");throw err.context=er,err}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1),handler.apply(this,args)}else if(isObject(handler))for(args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),len=listeners.length,i=0;i<len;i++)listeners[i].apply(this,args);return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned&&(m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())),this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-- >0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(position<0)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else if(listeners)for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;if(evlistener)return evlistener.length}return 0},EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)}},{}],28:[function(require,module,exports){var arr=[],each=arr.forEach,slice=arr.slice;module.exports=function(obj){return each.call(slice.call(arguments,1),function(source){if(source)for(var prop in source)obj[prop]=source[prop]}),obj}},{}],29:[function(require,module,exports){function Sender(opts){WildEmitter.call(this);var options=opts||{};this.config={chunksize:16384,pacing:0};var item;for(item in options)this.config[item]=options[item];this.file=null,this.channel=null}function Receiver(){WildEmitter.call(this),this.receiveBuffer=[],this.received=0,this.metadata={},this.channel=null}var WildEmitter=require("wildemitter"),util=require("util");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(file,channel){var self=this;this.file=file,this.channel=channel;var sliceFile=function(offset){var reader=new window.FileReader;reader.onload=function(){return function(e){self.channel.send(e.target.result),self.emit("progress",offset,file.size,e.target.result),file.size>offset+e.target.result.byteLength?window.setTimeout(sliceFile,self.config.pacing,offset+self.config.chunksize):(self.emit("progress",file.size,file.size,null),self.emit("sentFile"))}}(file);var slice=file.slice(offset,offset+self.config.chunksize);reader.readAsArrayBuffer(slice)};window.setTimeout(sliceFile,0,0)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(metadata,channel){var self=this;metadata&&(this.metadata=metadata),this.channel=channel,channel.binaryType="arraybuffer",this.channel.onmessage=function(event){var len=event.data.byteLength;self.received+=len,self.receiveBuffer.push(event.data),self.emit("progress",self.received,self.metadata.size,event.data),self.received===self.metadata.size?(self.emit("receivedFile",new window.Blob(self.receiveBuffer),self.metadata),self.receiveBuffer=[]):self.received>self.metadata.size&&(console.error("received more than expected, discarding..."),self.receiveBuffer=[])}},module.exports={},module.exports.support="undefined"!=typeof window&&window&&window.File&&window.FileReader&&window.Blob,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{util:197,wildemitter:211}],30:[function(require,module,exports){function Sender(opts){WildEmitter.call(this);var self=this;this.base=new base.Sender(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("sentFile",function(){self.emit("sentFile",{hash:self.hash.digest("hex"),algo:options.hash})})}function Receiver(opts){WildEmitter.call(this);var self=this;this.base=new base.Receiver(opts);var options=opts||{};options.hash||(options.hash="sha-1"),this.hash=hashes.createHash(options.hash),this.base.on("progress",function(start,size,data){self.emit("progress",start,size,data),data&&self.hash.update(new Uint8Array(data))}),this.base.on("receivedFile",function(file,metadata){metadata.actualhash=self.hash.digest("hex"),self.emit("receivedFile",file,metadata)})}var WildEmitter=require("wildemitter"),util=require("util"),hashes=require("iana-hashes"),base=require("./filetransfer");util.inherits(Sender,WildEmitter),Sender.prototype.send=function(){this.base.send.apply(this.base,arguments)},util.inherits(Receiver,WildEmitter),Receiver.prototype.receive=function(){this.base.receive.apply(this.base,arguments)},Object.defineProperty(Receiver.prototype,"metadata",{get:function(){return this.base.metadata},set:function(value){this.base.metadata=value}}),module.exports={},module.exports.support=base.support,module.exports.Sender=Sender,module.exports.Receiver=Receiver},{"./filetransfer":29,"iana-hashes":42,util:197,wildemitter:211}],31:[function(require,module,exports){var getUserMedia=require("getusermedia"),cache={};module.exports=function(constraints,cb){var error,hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints;if("undefined"==typeof window||"http:"===window.location.protocol)return error=new Error("NavigatorUserMediaError"),error.name="HTTPS_REQUIRED",callback(error);if(window.navigator.userAgent.match("Chrome")){var chromever=parseInt(window.navigator.userAgent.match(/Chrome\/(.*) /)[1],10),maxver=33,isCef=!window.chrome.webstore;if(window.navigator.userAgent.match("Linux")&&(maxver=35),sessionStorage.getScreenMediaJSExtensionId)chrome.runtime.sendMessage(sessionStorage.getScreenMediaJSExtensionId,{type:"getScreen",id:1},null,function(data){if(data&&""!==data.sourceId)constraints=hasConstraints&&constraints||{audio:!1,video:{mandatory:{chromeMediaSource:"desktop",maxWidth:window.screen.width,maxHeight:window.screen.height,maxFrameRate:3}}},constraints.video.mandatory.chromeMediaSourceId=data.sourceId,getUserMedia(constraints,callback);else{var error=new Error("NavigatorUserMediaError");error.name="PERMISSION_DENIED",callback(error)}});else if(window.cefGetScreenMedia)window.cefGetScreenMedia(function(sourceId){if(sourceId)constraints=hasConstraints&&constraints||{audio:!1,video:{mandatory:{chromeMediaSource:"desktop",maxWidth:window.screen.width,maxHeight:window.screen.height,maxFrameRate:3},optional:[{googLeakyBucket:!0},{googTemporalLayeredScreencast:!0}]}},constraints.video.mandatory.chromeMediaSourceId=sourceId,getUserMedia(constraints,callback);else{var error=new Error("cefGetScreenMediaError");error.name="CEF_GETSCREENMEDIA_CANCELED",callback(error)}});else if(isCef||chromever>=26&&chromever<=maxver)constraints=hasConstraints&&constraints||{video:{mandatory:{googLeakyBucket:!0,maxWidth:window.screen.width,maxHeight:window.screen.height,maxFrameRate:3,chromeMediaSource:"screen"}}},getUserMedia(constraints,callback);else{var pending=window.setTimeout(function(){return error=new Error("NavigatorUserMediaError"),error.name="EXTENSION_UNAVAILABLE",callback(error)},1e3);cache[pending]=[callback,hasConstraints?constraints:null],window.postMessage({type:"getScreen",id:pending},"*")}}else if(window.navigator.userAgent.match("Firefox")){var ffver=parseInt(window.navigator.userAgent.match(/Firefox\/(.*)/)[1],10);ffver>=33?(constraints=hasConstraints&&constraints||{video:{mozMediaSource:"window",mediaSource:"window"}},getUserMedia(constraints,function(err,stream){if(callback(err,stream),!err)var lastTime=stream.currentTime,polly=window.setInterval(function(){stream||window.clearInterval(polly),stream.currentTime==lastTime&&(window.clearInterval(polly),stream.onended&&stream.onended()),lastTime=stream.currentTime},500)})):(error=new Error("NavigatorUserMediaError"),error.name="EXTENSION_UNAVAILABLE")}},window.addEventListener("message",function(event){if(event.origin==window.location.origin)if("gotScreen"==event.data.type&&cache[event.data.id]){var data=cache[event.data.id],constraints=data[1],callback=data[0];if(delete cache[event.data.id],""===event.data.sourceId){var error=new Error("NavigatorUserMediaError");error.name="PERMISSION_DENIED",callback(error)}else constraints=constraints||{audio:!1,video:{mandatory:{chromeMediaSource:"desktop",maxWidth:window.screen.width,maxHeight:window.screen.height,maxFrameRate:3},optional:[{googLeakyBucket:!0},{googTemporalLayeredScreencast:!0}]}},constraints.video.mandatory.chromeMediaSourceId=event.data.sourceId,getUserMedia(constraints,callback)}else"getScreenPending"==event.data.type&&window.clearTimeout(event.data.id)})},{getusermedia:32}],32:[function(require,module,exports){require("webrtc-adapter");module.exports=function(constraints,cb){var error,haveOpts=2===arguments.length,defaultOpts={video:!0,audio:!0},denied="PermissionDeniedError",altDenied="PERMISSION_DENIED",notSatisfied="ConstraintNotSatisfiedError";return haveOpts||(cb=constraints,constraints=defaultOpts),"undefined"!=typeof navigator&&navigator.getUserMedia?constraints.audio||constraints.video?void navigator.mediaDevices.getUserMedia(constraints).then(function(stream){cb(null,stream)}).catch(function(err){var error;"string"==typeof err?(error=new Error("MediaStreamError"),err===denied||err===altDenied?error.name=denied:error.name=notSatisfied):(error=err,error.name||(error[denied]?err.name=denied:err.name=notSatisfied)),cb(error)}):(error=new Error("MediaStreamError"),error.name="NoMediaRequestedError",setTimeout(function(){cb(error)},0)):(error=new Error("MediaStreamError"),error.name="NotSupportedError",setTimeout(function(){cb(error)},0))}},{"webrtc-adapter":33}],33:[function(require,module,exports){"use strict";!function(){var logging=require("./utils").log,browserDetails=require("./utils").browserDetails;module.exports.browserDetails=browserDetails,module.exports.extractVersion=require("./utils").extractVersion,module.exports.disableLog=require("./utils").disableLog;var chromeShim=require("./chrome/chrome_shim")||null,edgeShim=require("./edge/edge_shim")||null,firefoxShim=require("./firefox/firefox_shim")||null,safariShim=require("./safari/safari_shim")||null;switch(browserDetails.browser){case"opera":case"chrome":if(!chromeShim||!chromeShim.shimPeerConnection)return void logging("Chrome shim is not included in this adapter release.");logging("adapter.js shimming chrome."),module.exports.browserShim=chromeShim,chromeShim.shimGetUserMedia(),chromeShim.shimMediaStream(),chromeShim.shimSourceObject(),chromeShim.shimPeerConnection(),chromeShim.shimOnTrack();break;case"firefox":if(!firefoxShim||!firefoxShim.shimPeerConnection)return void logging("Firefox shim is not included in this adapter release.");logging("adapter.js shimming firefox."),module.exports.browserShim=firefoxShim,firefoxShim.shimGetUserMedia(),firefoxShim.shimSourceObject(),firefoxShim.shimPeerConnection(),firefoxShim.shimOnTrack();break;case"edge":if(!edgeShim||!edgeShim.shimPeerConnection)return void logging("MS edge shim is not included in this adapter release.");logging("adapter.js shimming edge."),module.exports.browserShim=edgeShim,edgeShim.shimGetUserMedia(),edgeShim.shimPeerConnection();break;case"safari":if(!safariShim)return void logging("Safari shim is not included in this adapter release.");logging("adapter.js shimming safari."),module.exports.browserShim=safariShim,safariShim.shimGetUserMedia();break;default:logging("Unsupported browser!")}}()},{"./chrome/chrome_shim":34,"./edge/edge_shim":36,"./firefox/firefox_shim":38,"./safari/safari_shim":40,"./utils":41}],34:[function(require,module,exports){"use strict";var logging=require("../utils.js").log,browserDetails=require("../utils.js").browserDetails,chromeShim={shimMediaStream:function(){window.MediaStream=window.MediaStream||window.webkitMediaStream},shimOnTrack:function(){"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(f){var self=this;this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=f),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.addEventListener("addtrack",function(te){var event=new Event("track");event.track=te.track,event.receiver={track:te.track},event.streams=[e.stream],self.dispatchEvent(event)}),e.stream.getTracks().forEach(function(track){var event=new Event("track");event.track=track,event.receiver={track:track},event.streams=[e.stream],this.dispatchEvent(event)}.bind(this))}.bind(this))}})},shimSourceObject:function(){"object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return this._srcObject},set:function(stream){var self=this;return this._srcObject=stream,this.src&&URL.revokeObjectURL(this.src),stream?(this.src=URL.createObjectURL(stream),stream.addEventListener("addtrack",function(){self.src&&URL.revokeObjectURL(self.src),self.src=URL.createObjectURL(stream)}),void stream.addEventListener("removetrack",function(){self.src&&URL.revokeObjectURL(self.src),self.src=URL.createObjectURL(stream)})):void(this.src="")}}))},shimPeerConnection:function(){window.RTCPeerConnection=function(pcConfig,pcConstraints){logging("PeerConnection"),pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback,errorCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats_=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport},makeMapStats=function(stats,legacyStats){var map=new Map(Object.keys(stats).map(function(key){return[key,stats[key]]}));return legacyStats=legacyStats||stats,Object.keys(legacyStats).forEach(function(key){map[key]=legacyStats[key]}),map};if(arguments.length>=2){var successCallbackWrapper_=function(response){args[1](makeMapStats(fixChromeStats_(response)))};return origGetStats.apply(this,[successCallbackWrapper_,arguments[0]])}return new Promise(function(resolve,reject){1===args.length&&"object"==typeof selector?origGetStats.apply(self,[function(response){resolve(makeMapStats(fixChromeStats_(response)))},reject]):origGetStats.apply(self,[function(response){resolve(makeMapStats(fixChromeStats_(response),response.result()))},reject])}).then(successCallback,errorCallback)},pc},window.RTCPeerConnection.prototype=webkitRTCPeerConnection.prototype,webkitRTCPeerConnection.generateCertificate&&Object.defineProperty(window.RTCPeerConnection,"generateCertificate",{get:function(){return webkitRTCPeerConnection.generateCertificate}}),["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),browserDetails.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){
+var args=arguments,self=this,promise=new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],resolve,reject])});return args.length<2?promise:promise.then(function(){args[1].apply(null,[])},function(err){args.length>=3&&args[2].apply(null,[err])})}});var nativeAddIceCandidate=RTCPeerConnection.prototype.addIceCandidate;RTCPeerConnection.prototype.addIceCandidate=function(){return null===arguments[0]?Promise.resolve():nativeAddIceCandidate.apply(this,arguments)},["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){return arguments[0]=new("addIceCandidate"===method?RTCIceCandidate:RTCSessionDescription)(arguments[0]),nativeMethod.apply(this,arguments)}})},attachMediaStream:function(element,stream){logging("DEPRECATED, attachMediaStream will soon be removed."),browserDetails.version>=43?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):logging("Error attaching stream to element.")},reattachMediaStream:function(to,from){logging("DEPRECATED, reattachMediaStream will soon be removed."),browserDetails.version>=43?to.srcObject=from.srcObject:to.src=from.src}};module.exports={shimMediaStream:chromeShim.shimMediaStream,shimOnTrack:chromeShim.shimOnTrack,shimSourceObject:chromeShim.shimSourceObject,shimPeerConnection:chromeShim.shimPeerConnection,shimGetUserMedia:require("./getusermedia"),attachMediaStream:chromeShim.attachMediaStream,reattachMediaStream:chromeShim.reattachMediaStream}},{"../utils.js":41,"./getusermedia":35}],35:[function(require,module,exports){"use strict";var logging=require("../utils.js").log;module.exports=function(){var constraintsToChrome_=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname_=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname_("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname_("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname_("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname_("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname_(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc},shimConstraints_=function(constraints,func){if(constraints=JSON.parse(JSON.stringify(constraints)),constraints&&constraints.audio&&(constraints.audio=constraintsToChrome_(constraints.audio)),constraints&&"object"==typeof constraints.video){var face=constraints.video.facingMode;if(face=face&&("object"==typeof face?face:{ideal:face}),face&&("user"===face.exact||"environment"===face.exact||"user"===face.ideal||"environment"===face.ideal)&&(!navigator.mediaDevices.getSupportedConstraints||!navigator.mediaDevices.getSupportedConstraints().facingMode)&&(delete constraints.video.facingMode,"environment"===face.exact||"environment"===face.ideal))return navigator.mediaDevices.enumerateDevices().then(function(devices){devices=devices.filter(function(d){return"videoinput"===d.kind});var back=devices.find(function(d){return d.label.toLowerCase().indexOf("back")!==-1})||devices.length&&devices[devices.length-1];return back&&(constraints.video.deviceId=face.exact?{exact:back.deviceId}:{ideal:back.deviceId}),constraints.video=constraintsToChrome_(constraints.video),logging("chrome: "+JSON.stringify(constraints)),func(constraints)});constraints.video=constraintsToChrome_(constraints.video)}return logging("chrome: "+JSON.stringify(constraints)),func(constraints)},shimError_=function(e){return{name:{PermissionDeniedError:"NotAllowedError",ConstraintNotSatisfiedError:"OverconstrainedError"}[e.name]||e.name,message:e.message,constraint:e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},getUserMedia_=function(constraints,onSuccess,onError){shimConstraints_(constraints,function(c){navigator.webkitGetUserMedia(c,onSuccess,function(e){onError(shimError_(e))})})};navigator.getUserMedia=getUserMedia_;var getUserMediaPromise_=function(constraints){return new Promise(function(resolve,reject){navigator.getUserMedia(constraints,resolve,reject)})};if(navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:getUserMediaPromise_,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(cs){return shimConstraints_(cs,function(c){return origGetUserMedia(c).catch(function(e){return Promise.reject(shimError_(e))})})}}else navigator.mediaDevices.getUserMedia=function(constraints){return getUserMediaPromise_(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){logging("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){logging("Dummy mediaDevices.removeEventListener called.")})}},{"../utils.js":41}],36:[function(require,module,exports){"use strict";var SDPUtils=require("sdp"),logging=require("../utils").log,edgeShim={shimPeerConnection:function(){window.RTCIceGatherer&&(window.RTCIceCandidate||(window.RTCIceCandidate=function(args){return args}),window.RTCSessionDescription||(window.RTCSessionDescription=function(args){return args})),window.RTCPeerConnection=function(config){var self=this,_eventTarget=document.createDocumentFragment();if(["addEventListener","removeEventListener","dispatchEvent"].forEach(function(method){self[method]=_eventTarget[method].bind(_eventTarget)}),this.onicecandidate=null,this.onaddstream=null,this.ontrack=null,this.onremovestream=null,this.onsignalingstatechange=null,this.oniceconnectionstatechange=null,this.onnegotiationneeded=null,this.ondatachannel=null,this.localStreams=[],this.remoteStreams=[],this.getLocalStreams=function(){return self.localStreams},this.getRemoteStreams=function(){return self.remoteStreams},this.localDescription=new RTCSessionDescription({type:"",sdp:""}),this.remoteDescription=new RTCSessionDescription({type:"",sdp:""}),this.signalingState="stable",this.iceConnectionState="new",this.iceGatheringState="new",this.iceOptions={gatherPolicy:"all",iceServers:[]},config&&config.iceTransportPolicy)switch(config.iceTransportPolicy){case"all":case"relay":this.iceOptions.gatherPolicy=config.iceTransportPolicy;break;case"none":throw new TypeError('iceTransportPolicy "none" not supported')}if(this.usingBundle=config&&"max-bundle"===config.bundlePolicy,config&&config.iceServers){var iceServers=JSON.parse(JSON.stringify(config.iceServers));this.iceOptions.iceServers=iceServers.filter(function(server){if(server&&server.urls){var urls=server.urls;return"string"==typeof urls&&(urls=[urls]),urls=urls.filter(function(url){return 0===url.indexOf("turn:")&&url.indexOf("transport=udp")!==-1})[0],!!urls}return!1})}this.transceivers=[],this._localIceCandidatesBuffer=[]},window.RTCPeerConnection.prototype._emitBufferedCandidates=function(){var self=this,sections=SDPUtils.splitSections(self.localDescription.sdp);this._localIceCandidatesBuffer.forEach(function(event){var end=!event.candidate||0===Object.keys(event.candidate).length;if(end)for(var j=1;j<sections.length;j++)sections[j].indexOf("\r\na=end-of-candidates\r\n")===-1&&(sections[j]+="a=end-of-candidates\r\n");else event.candidate.candidate.indexOf("typ endOfCandidates")===-1&&(sections[event.candidate.sdpMLineIndex+1]+="a="+event.candidate.candidate+"\r\n");if(self.localDescription.sdp=sections.join(""),self.dispatchEvent(event),null!==self.onicecandidate&&self.onicecandidate(event),!event.candidate&&"complete"!==self.iceGatheringState){var complete=self.transceivers.every(function(transceiver){return transceiver.iceGatherer&&"completed"===transceiver.iceGatherer.state});complete&&(self.iceGatheringState="complete")}}),this._localIceCandidatesBuffer=[]},window.RTCPeerConnection.prototype.addStream=function(stream){this.localStreams.push(stream.clone()),this._maybeFireNegotiationNeeded()},window.RTCPeerConnection.prototype.removeStream=function(stream){var idx=this.localStreams.indexOf(stream);idx>-1&&(this.localStreams.splice(idx,1),this._maybeFireNegotiationNeeded())},window.RTCPeerConnection.prototype.getSenders=function(){return this.transceivers.filter(function(transceiver){return!!transceiver.rtpSender}).map(function(transceiver){return transceiver.rtpSender})},window.RTCPeerConnection.prototype.getReceivers=function(){return this.transceivers.filter(function(transceiver){return!!transceiver.rtpReceiver}).map(function(transceiver){return transceiver.rtpReceiver})},window.RTCPeerConnection.prototype._getCommonCapabilities=function(localCapabilities,remoteCapabilities){var commonCapabilities={codecs:[],headerExtensions:[],fecMechanisms:[]};return localCapabilities.codecs.forEach(function(lCodec){for(var i=0;i<remoteCapabilities.codecs.length;i++){var rCodec=remoteCapabilities.codecs[i];if(lCodec.name.toLowerCase()===rCodec.name.toLowerCase()&&lCodec.clockRate===rCodec.clockRate&&lCodec.numChannels===rCodec.numChannels){commonCapabilities.codecs.push(rCodec);break}}}),localCapabilities.headerExtensions.forEach(function(lHeaderExtension){for(var i=0;i<remoteCapabilities.headerExtensions.length;i++){var rHeaderExtension=remoteCapabilities.headerExtensions[i];if(lHeaderExtension.uri===rHeaderExtension.uri){commonCapabilities.headerExtensions.push(rHeaderExtension);break}}}),commonCapabilities},window.RTCPeerConnection.prototype._createIceAndDtlsTransports=function(mid,sdpMLineIndex){var self=this,iceGatherer=new RTCIceGatherer(self.iceOptions),iceTransport=new RTCIceTransport(iceGatherer);iceGatherer.onlocalcandidate=function(evt){var event=new Event("icecandidate");event.candidate={sdpMid:mid,sdpMLineIndex:sdpMLineIndex};var cand=evt.candidate,end=!cand||0===Object.keys(cand).length;end?(void 0===iceGatherer.state&&(iceGatherer.state="completed"),event.candidate.candidate="candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates"):(cand.component="RTCP"===iceTransport.component?2:1,event.candidate.candidate=SDPUtils.writeCandidate(cand));var sections=SDPUtils.splitSections(self.localDescription.sdp);event.candidate.candidate.indexOf("typ endOfCandidates")===-1?sections[event.candidate.sdpMLineIndex+1]+="a="+event.candidate.candidate+"\r\n":sections[event.candidate.sdpMLineIndex+1]+="a=end-of-candidates\r\n",self.localDescription.sdp=sections.join("");var complete=self.transceivers.every(function(transceiver){return transceiver.iceGatherer&&"completed"===transceiver.iceGatherer.state});switch(self.iceGatheringState){case"new":self._localIceCandidatesBuffer.push(event),end&&complete&&self._localIceCandidatesBuffer.push(new Event("icecandidate"));break;case"gathering":self._emitBufferedCandidates(),self.dispatchEvent(event),null!==self.onicecandidate&&self.onicecandidate(event),complete&&(self.dispatchEvent(new Event("icecandidate")),null!==self.onicecandidate&&self.onicecandidate(new Event("icecandidate")),self.iceGatheringState="complete");break;case"complete":}},iceTransport.onicestatechange=function(){self._updateConnectionState()};var dtlsTransport=new RTCDtlsTransport(iceTransport);return dtlsTransport.ondtlsstatechange=function(){self._updateConnectionState()},dtlsTransport.onerror=function(){dtlsTransport.state="failed",self._updateConnectionState()},{iceGatherer:iceGatherer,iceTransport:iceTransport,dtlsTransport:dtlsTransport}},window.RTCPeerConnection.prototype._transceive=function(transceiver,send,recv){var params=this._getCommonCapabilities(transceiver.localCapabilities,transceiver.remoteCapabilities);send&&transceiver.rtpSender&&(params.encodings=transceiver.sendEncodingParameters,params.rtcp={cname:SDPUtils.localCName},transceiver.recvEncodingParameters.length&&(params.rtcp.ssrc=transceiver.recvEncodingParameters[0].ssrc),transceiver.rtpSender.send(params)),recv&&transceiver.rtpReceiver&&(params.encodings=transceiver.recvEncodingParameters,params.rtcp={cname:transceiver.cname},transceiver.sendEncodingParameters.length&&(params.rtcp.ssrc=transceiver.sendEncodingParameters[0].ssrc),transceiver.rtpReceiver.receive(params))},window.RTCPeerConnection.prototype.setLocalDescription=function(description){var sections,sessionpart,self=this;if("offer"===description.type)this._pendingOffer&&(sections=SDPUtils.splitSections(description.sdp),sessionpart=sections.shift(),sections.forEach(function(mediaSection,sdpMLineIndex){var caps=SDPUtils.parseRtpParameters(mediaSection);self._pendingOffer[sdpMLineIndex].localCapabilities=caps}),this.transceivers=this._pendingOffer,delete this._pendingOffer);else if("answer"===description.type){sections=SDPUtils.splitSections(self.remoteDescription.sdp),sessionpart=sections.shift();var isIceLite=SDPUtils.matchPrefix(sessionpart,"a=ice-lite").length>0;sections.forEach(function(mediaSection,sdpMLineIndex){var transceiver=self.transceivers[sdpMLineIndex],iceGatherer=transceiver.iceGatherer,iceTransport=transceiver.iceTransport,dtlsTransport=transceiver.dtlsTransport,localCapabilities=transceiver.localCapabilities,remoteCapabilities=transceiver.remoteCapabilities,rejected="0"===mediaSection.split("\n",1)[0].split(" ",2)[1];if(!rejected){var remoteIceParameters=SDPUtils.getIceParameters(mediaSection,sessionpart);if(isIceLite){var cands=SDPUtils.matchPrefix(mediaSection,"a=candidate:").map(function(cand){return SDPUtils.parseCandidate(cand)}).filter(function(cand){return"1"===cand.component});cands.length&&iceTransport.setRemoteCandidates(cands)}var remoteDtlsParameters=SDPUtils.getDtlsParameters(mediaSection,sessionpart);isIceLite&&(remoteDtlsParameters.role="server"),self.usingBundle&&0!==sdpMLineIndex||(iceTransport.start(iceGatherer,remoteIceParameters,isIceLite?"controlling":"controlled"),dtlsTransport.start(remoteDtlsParameters));var params=self._getCommonCapabilities(localCapabilities,remoteCapabilities);self._transceive(transceiver,params.codecs.length>0,!1)}})}switch(this.localDescription={type:description.type,sdp:description.sdp},description.type){case"offer":this._updateSignalingState("have-local-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+description.type+'"')}var hasCallback=arguments.length>1&&"function"==typeof arguments[1];if(hasCallback){var cb=arguments[1];window.setTimeout(function(){cb(),"new"===self.iceGatheringState&&(self.iceGatheringState="gathering"),self._emitBufferedCandidates()},0)}var p=Promise.resolve();return p.then(function(){hasCallback||("new"===self.iceGatheringState&&(self.iceGatheringState="gathering"),window.setTimeout(self._emitBufferedCandidates.bind(self),500))}),p},window.RTCPeerConnection.prototype.setRemoteDescription=function(description){var self=this,stream=new MediaStream,receiverList=[],sections=SDPUtils.splitSections(description.sdp),sessionpart=sections.shift(),isIceLite=SDPUtils.matchPrefix(sessionpart,"a=ice-lite").length>0;switch(this.usingBundle=SDPUtils.matchPrefix(sessionpart,"a=group:BUNDLE ").length>0,sections.forEach(function(mediaSection,sdpMLineIndex){var transceiver,iceGatherer,iceTransport,dtlsTransport,rtpSender,rtpReceiver,sendEncodingParameters,recvEncodingParameters,localCapabilities,track,remoteIceParameters,remoteDtlsParameters,lines=SDPUtils.splitLines(mediaSection),mline=lines[0].substr(2).split(" "),kind=mline[0],rejected="0"===mline[1],direction=SDPUtils.getDirection(mediaSection,sessionpart),remoteCapabilities=SDPUtils.parseRtpParameters(mediaSection);rejected||(remoteIceParameters=SDPUtils.getIceParameters(mediaSection,sessionpart),remoteDtlsParameters=SDPUtils.getDtlsParameters(mediaSection,sessionpart),remoteDtlsParameters.role="client"),recvEncodingParameters=SDPUtils.parseRtpEncodingParameters(mediaSection);var mid=SDPUtils.matchPrefix(mediaSection,"a=mid:");mid=mid.length?mid[0].substr(6):SDPUtils.generateIdentifier();var cname,remoteSsrc=SDPUtils.matchPrefix(mediaSection,"a=ssrc:").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(obj){return"cname"===obj.attribute})[0];remoteSsrc&&(cname=remoteSsrc.value);var isComplete=SDPUtils.matchPrefix(mediaSection,"a=end-of-candidates").length>0,cands=SDPUtils.matchPrefix(mediaSection,"a=candidate:").map(function(cand){return SDPUtils.parseCandidate(cand)}).filter(function(cand){return"1"===cand.component});if("offer"!==description.type||rejected)"answer"!==description.type||rejected||(transceiver=self.transceivers[sdpMLineIndex],iceGatherer=transceiver.iceGatherer,iceTransport=transceiver.iceTransport,dtlsTransport=transceiver.dtlsTransport,rtpSender=transceiver.rtpSender,rtpReceiver=transceiver.rtpReceiver,sendEncodingParameters=transceiver.sendEncodingParameters,localCapabilities=transceiver.localCapabilities,self.transceivers[sdpMLineIndex].recvEncodingParameters=recvEncodingParameters,self.transceivers[sdpMLineIndex].remoteCapabilities=remoteCapabilities,self.transceivers[sdpMLineIndex].cname=cname,(isIceLite||isComplete)&&cands.length&&iceTransport.setRemoteCandidates(cands),self.usingBundle&&0!==sdpMLineIndex||(iceTransport.start(iceGatherer,remoteIceParameters,"controlling"),dtlsTransport.start(remoteDtlsParameters)),self._transceive(transceiver,"sendrecv"===direction||"recvonly"===direction,"sendrecv"===direction||"sendonly"===direction),!rtpReceiver||"sendrecv"!==direction&&"sendonly"!==direction?delete transceiver.rtpReceiver:(track=rtpReceiver.track,receiverList.push([track,rtpReceiver]),stream.addTrack(track)));else{var transports=self.usingBundle&&sdpMLineIndex>0?{iceGatherer:self.transceivers[0].iceGatherer,iceTransport:self.transceivers[0].iceTransport,dtlsTransport:self.transceivers[0].dtlsTransport}:self._createIceAndDtlsTransports(mid,sdpMLineIndex);if(isComplete&&transports.iceTransport.setRemoteCandidates(cands),localCapabilities=RTCRtpReceiver.getCapabilities(kind),sendEncodingParameters=[{ssrc:1001*(2*sdpMLineIndex+2)}],rtpReceiver=new RTCRtpReceiver(transports.dtlsTransport,kind),track=rtpReceiver.track,receiverList.push([track,rtpReceiver]),stream.addTrack(track),self.localStreams.length>0&&self.localStreams[0].getTracks().length>=sdpMLineIndex){var localtrack=self.localStreams[0].getTracks()[sdpMLineIndex];rtpSender=new RTCRtpSender(localtrack,transports.dtlsTransport)}self.transceivers[sdpMLineIndex]={iceGatherer:transports.iceGatherer,iceTransport:transports.iceTransport,dtlsTransport:transports.dtlsTransport,localCapabilities:localCapabilities,remoteCapabilities:remoteCapabilities,rtpSender:rtpSender,rtpReceiver:rtpReceiver,kind:kind,mid:mid,cname:cname,sendEncodingParameters:sendEncodingParameters,recvEncodingParameters:recvEncodingParameters},self._transceive(self.transceivers[sdpMLineIndex],!1,"sendrecv"===direction||"sendonly"===direction)}}),this.remoteDescription={type:description.type,sdp:description.sdp},description.type){case"offer":this._updateSignalingState("have-remote-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+description.type+'"')}return stream.getTracks().length&&(self.remoteStreams.push(stream),window.setTimeout(function(){var event=new Event("addstream");event.stream=stream,self.dispatchEvent(event),null!==self.onaddstream&&window.setTimeout(function(){self.onaddstream(event)},0),receiverList.forEach(function(item){var track=item[0],receiver=item[1],trackEvent=new Event("track");trackEvent.track=track,trackEvent.receiver=receiver,trackEvent.streams=[stream],self.dispatchEvent(event),null!==self.ontrack&&window.setTimeout(function(){self.ontrack(trackEvent)},0)})},0)),arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},window.RTCPeerConnection.prototype.close=function(){this.transceivers.forEach(function(transceiver){transceiver.iceTransport&&transceiver.iceTransport.stop(),transceiver.dtlsTransport&&transceiver.dtlsTransport.stop(),transceiver.rtpSender&&transceiver.rtpSender.stop(),transceiver.rtpReceiver&&transceiver.rtpReceiver.stop()}),this._updateSignalingState("closed")},window.RTCPeerConnection.prototype._updateSignalingState=function(newState){this.signalingState=newState;var event=new Event("signalingstatechange");this.dispatchEvent(event),null!==this.onsignalingstatechange&&this.onsignalingstatechange(event)},window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded=function(){var event=new Event("negotiationneeded");this.dispatchEvent(event),null!==this.onnegotiationneeded&&this.onnegotiationneeded(event)},window.RTCPeerConnection.prototype._updateConnectionState=function(){var newState,self=this,states={new:0,closed:0,connecting:0,checking:0,connected:0,completed:0,failed:0};if(this.transceivers.forEach(function(transceiver){states[transceiver.iceTransport.state]++,states[transceiver.dtlsTransport.state]++}),states.connected+=states.completed,newState="new",states.failed>0?newState="failed":states.connecting>0||states.checking>0?newState="connecting":states.disconnected>0?newState="disconnected":states.new>0?newState="new":(states.connected>0||states.completed>0)&&(newState="connected"),newState!==self.iceConnectionState){self.iceConnectionState=newState;var event=new Event("iceconnectionstatechange");this.dispatchEvent(event),null!==this.oniceconnectionstatechange&&this.oniceconnectionstatechange(event)}},window.RTCPeerConnection.prototype.createOffer=function(){var self=this;if(this._pendingOffer)throw new Error("createOffer called while there is a pending offer.");var offerOptions;1===arguments.length&&"function"!=typeof arguments[0]?offerOptions=arguments[0]:3===arguments.length&&(offerOptions=arguments[2]);var tracks=[],numAudioTracks=0,numVideoTracks=0;if(this.localStreams.length&&(numAudioTracks=this.localStreams[0].getAudioTracks().length,numVideoTracks=this.localStreams[0].getVideoTracks().length),offerOptions){if(offerOptions.mandatory||offerOptions.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==offerOptions.offerToReceiveAudio&&(numAudioTracks=offerOptions.offerToReceiveAudio),void 0!==offerOptions.offerToReceiveVideo&&(numVideoTracks=offerOptions.offerToReceiveVideo)}for(this.localStreams.length&&this.localStreams[0].getTracks().forEach(function(track){tracks.push({kind:track.kind,track:track,wantReceive:"audio"===track.kind?numAudioTracks>0:numVideoTracks>0}),"audio"===track.kind?numAudioTracks--:"video"===track.kind&&numVideoTracks--});numAudioTracks>0||numVideoTracks>0;)numAudioTracks>0&&(tracks.push({kind:"audio",wantReceive:!0}),numAudioTracks--),numVideoTracks>0&&(tracks.push({kind:"video",wantReceive:!0}),numVideoTracks--);var sdp=SDPUtils.writeSessionBoilerplate(),transceivers=[];tracks.forEach(function(mline,sdpMLineIndex){var rtpSender,rtpReceiver,track=mline.track,kind=mline.kind,mid=SDPUtils.generateIdentifier(),transports=self.usingBundle&&sdpMLineIndex>0?{iceGatherer:transceivers[0].iceGatherer,iceTransport:transceivers[0].iceTransport,dtlsTransport:transceivers[0].dtlsTransport}:self._createIceAndDtlsTransports(mid,sdpMLineIndex),localCapabilities=RTCRtpSender.getCapabilities(kind),sendEncodingParameters=[{ssrc:1001*(2*sdpMLineIndex+1)}];track&&(rtpSender=new RTCRtpSender(track,transports.dtlsTransport)),mline.wantReceive&&(rtpReceiver=new RTCRtpReceiver(transports.dtlsTransport,kind)),transceivers[sdpMLineIndex]={iceGatherer:transports.iceGatherer,iceTransport:transports.iceTransport,dtlsTransport:transports.dtlsTransport,localCapabilities:localCapabilities,remoteCapabilities:null,rtpSender:rtpSender,rtpReceiver:rtpReceiver,kind:kind,mid:mid,sendEncodingParameters:sendEncodingParameters,recvEncodingParameters:null}}),this.usingBundle&&(sdp+="a=group:BUNDLE "+transceivers.map(function(t){return t.mid}).join(" ")+"\r\n"),tracks.forEach(function(mline,sdpMLineIndex){var transceiver=transceivers[sdpMLineIndex];sdp+=SDPUtils.writeMediaSection(transceiver,transceiver.localCapabilities,"offer",self.localStreams[0])}),this._pendingOffer=transceivers;var desc=new RTCSessionDescription({type:"offer",sdp:sdp});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,desc),Promise.resolve(desc)},window.RTCPeerConnection.prototype.createAnswer=function(){var self=this,sdp=SDPUtils.writeSessionBoilerplate();this.usingBundle&&(sdp+="a=group:BUNDLE "+this.transceivers.map(function(t){return t.mid}).join(" ")+"\r\n"),this.transceivers.forEach(function(transceiver){var commonCapabilities=self._getCommonCapabilities(transceiver.localCapabilities,transceiver.remoteCapabilities);sdp+=SDPUtils.writeMediaSection(transceiver,commonCapabilities,"answer",self.localStreams[0])});var desc=new RTCSessionDescription({type:"answer",sdp:sdp});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,desc),Promise.resolve(desc)},window.RTCPeerConnection.prototype.addIceCandidate=function(candidate){if(null===candidate)this.transceivers.forEach(function(transceiver){transceiver.iceTransport.addRemoteCandidate({})});else{var mLineIndex=candidate.sdpMLineIndex;if(candidate.sdpMid)for(var i=0;i<this.transceivers.length;i++)if(this.transceivers[i].mid===candidate.sdpMid){mLineIndex=i;break}var transceiver=this.transceivers[mLineIndex];if(transceiver){var cand=Object.keys(candidate.candidate).length>0?SDPUtils.parseCandidate(candidate.candidate):{};if("tcp"===cand.protocol&&0===cand.port)return;if("1"!==cand.component)return;"endOfCandidates"===cand.type&&(cand={}),transceiver.iceTransport.addRemoteCandidate(cand);var sections=SDPUtils.splitSections(this.remoteDescription.sdp);sections[mLineIndex+1]+=(cand.type?candidate.candidate.trim():"a=end-of-candidates")+"\r\n",this.remoteDescription.sdp=sections.join("")}}return arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},window.RTCPeerConnection.prototype.getStats=function(){var promises=[];this.transceivers.forEach(function(transceiver){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(method){transceiver[method]&&promises.push(transceiver[method].getStats())})});var cb=arguments.length>1&&"function"==typeof arguments[1]&&arguments[1];return new Promise(function(resolve){var results=new Map;Promise.all(promises).then(function(res){res.forEach(function(result){Object.keys(result).forEach(function(id){results.set(id,result[id]),results[id]=result[id]})}),cb&&window.setTimeout(cb,0,results),resolve(results)})})}},attachMediaStream:function(element,stream){logging("DEPRECATED, attachMediaStream will soon be removed."),element.srcObject=stream},reattachMediaStream:function(to,from){logging("DEPRECATED, reattachMediaStream will soon be removed."),to.srcObject=from.srcObject}};module.exports={shimPeerConnection:edgeShim.shimPeerConnection,shimGetUserMedia:require("./getusermedia"),attachMediaStream:edgeShim.attachMediaStream,reattachMediaStream:edgeShim.reattachMediaStream}},{"../utils":41,"./getusermedia":37,sdp:173}],37:[function(require,module,exports){"use strict";module.exports=function(){var shimError_=function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString:function(){return this.name}}},origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return origGetUserMedia(c).catch(function(e){return Promise.reject(shimError_(e))})}}},{}],38:[function(require,module,exports){"use strict";var logging=require("../utils").log,browserDetails=require("../utils").browserDetails,firefoxShim={shimOnTrack:function(){"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(f){this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=f),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.getTracks().forEach(function(track){var event=new Event("track");event.track=track,event.receiver={track:track},event.streams=[e.stream],this.dispatchEvent(event)}.bind(this))}.bind(this))}})},shimSourceObject:function(){"object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(stream){this.mozSrcObject=stream}}))},shimPeerConnection:function(){if("object"==typeof window&&(window.RTCPeerConnection||window.mozRTCPeerConnection)){window.RTCPeerConnection||(window.RTCPeerConnection=function(pcConfig,pcConstraints){if(browserDetails.version<38&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCPeerConnection.prototype=mozRTCPeerConnection.prototype,mozRTCPeerConnection.generateCertificate&&Object.defineProperty(window.RTCPeerConnection,"generateCertificate",{get:function(){return mozRTCPeerConnection.generateCertificate}}),window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=RTCPeerConnection.prototype[method];RTCPeerConnection.prototype[method]=function(){return arguments[0]=new("addIceCandidate"===method?RTCIceCandidate:RTCSessionDescription)(arguments[0]),nativeMethod.apply(this,arguments)}});var nativeAddIceCandidate=RTCPeerConnection.prototype.addIceCandidate;RTCPeerConnection.prototype.addIceCandidate=function(){return null===arguments[0]?Promise.resolve():nativeAddIceCandidate.apply(this,arguments)};var makeMapStats=function(stats){var map=new Map;return Object.keys(stats).forEach(function(key){map.set(key,stats[key]),map[key]=stats[key]}),map},nativeGetStats=RTCPeerConnection.prototype.getStats;RTCPeerConnection.prototype.getStats=function(selector,onSucc,onErr){return nativeGetStats.apply(this,[selector||null]).then(function(stats){return makeMapStats(stats)}).then(onSucc,onErr)}}},attachMediaStream:function(element,stream){logging("DEPRECATED, attachMediaStream will soon be removed."),element.srcObject=stream},reattachMediaStream:function(to,from){logging("DEPRECATED, reattachMediaStream will soon be removed."),to.srcObject=from.srcObject}};module.exports={shimOnTrack:firefoxShim.shimOnTrack,shimSourceObject:firefoxShim.shimSourceObject,shimPeerConnection:firefoxShim.shimPeerConnection,shimGetUserMedia:require("./getusermedia"),attachMediaStream:firefoxShim.attachMediaStream,reattachMediaStream:firefoxShim.reattachMediaStream}},{
+"../utils":41,"./getusermedia":39}],39:[function(require,module,exports){"use strict";var logging=require("../utils").log,browserDetails=require("../utils").browserDetails;module.exports=function(){var shimError_=function(e){return{name:{SecurityError:"NotAllowedError",PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:{"The operation is insecure.":"The request is not allowed by the user agent or the platform in the current context."}[e.message]||e.message,constraint:e.constraint,toString:function(){return this.name+(this.message&&": ")+this.message}}},getUserMedia_=function(constraints,onSuccess,onError){var constraintsToFF37_=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if(void 0===r.min&&void 0===r.max&&void 0===r.exact||require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};"number"==typeof r.ideal?oc[key]={min:r.ideal,max:r.ideal}:oc[key]=r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return constraints=JSON.parse(JSON.stringify(constraints)),browserDetails.version<38&&(logging("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37_(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37_(constraints.video)),logging("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,function(e){onError(shimError_(e))})},getUserMediaPromise_=function(constraints){return new Promise(function(resolve,reject){getUserMedia_(constraints,resolve,reject)})};if(navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:getUserMediaPromise_,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},browserDetails.version<41){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices().then(void 0,function(e){if("NotFoundError"===e.name)return[];throw e})}}if(browserDetails.version<49){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return origGetUserMedia(c).catch(function(e){return Promise.reject(shimError_(e))})}}navigator.getUserMedia=function(constraints,onSuccess,onError){return browserDetails.version<44?getUserMedia_(constraints,onSuccess,onError):(console.warn("navigator.getUserMedia has been replaced by navigator.mediaDevices.getUserMedia"),void navigator.mediaDevices.getUserMedia(constraints).then(onSuccess,onError))}}},{"../utils":41}],40:[function(require,module,exports){"use strict";var safariShim={shimGetUserMedia:function(){navigator.getUserMedia=navigator.webkitGetUserMedia}};module.exports={shimGetUserMedia:safariShim.shimGetUserMedia}},{}],41:[function(require,module,exports){"use strict";var logDisabled_=!0,utils={disableLog:function(bool){return"boolean"!=typeof bool?new Error("Argument type: "+typeof bool+". Please use a boolean."):(logDisabled_=bool,bool?"adapter.js logging disabled":"adapter.js logging enabled")},log:function(){if("object"==typeof window){if(logDisabled_)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}},extractVersion:function(uastring,expr,pos){var match=uastring.match(expr);return match&&match.length>=pos&&parseInt(match[pos],10)},detectBrowser:function(){var result={};if(result.browser=null,result.version=null,result.minVersion=null,"undefined"==typeof window||!window.navigator)return result.browser="Not a browser.",result;if(navigator.mozGetUserMedia)result.browser="firefox",result.version=this.extractVersion(navigator.userAgent,/Firefox\/([0-9]+)\./,1),result.minVersion=31;else if(navigator.webkitGetUserMedia)if(window.webkitRTCPeerConnection)result.browser="chrome",result.version=this.extractVersion(navigator.userAgent,/Chrom(e|ium)\/([0-9]+)\./,2),result.minVersion=38;else{if(!navigator.userAgent.match(/Version\/(\d+).(\d+)/))return result.browser="Unsupported webkit-based browser with GUM support but no WebRTC support.",result;result.browser="safari",result.version=this.extractVersion(navigator.userAgent,/AppleWebKit\/([0-9]+)\./,1),result.minVersion=602}else{if(!navigator.mediaDevices||!navigator.userAgent.match(/Edge\/(\d+).(\d+)$/))return result.browser="Not a supported browser.",result;result.browser="edge",result.version=this.extractVersion(navigator.userAgent,/Edge\/(\d+).(\d+)$/,2),result.minVersion=10547}return result.version<result.minVersion&&utils.log("Browser: "+result.browser+" Version: "+result.version+" < minimum supported version: "+result.minVersion+"\n some things might not work!"),result}};module.exports={log:utils.log,disableLog:utils.disableLog,browserDetails:utils.detectBrowser(),extractVersion:utils.extractVersion}},{}],42:[function(require,module,exports){var createHash=require("create-hash"),createHmac=require("create-hmac"),getHashes=require("./lib/get-hashes"),mapping={md2:"md2",md5:"md5","sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512"},names=Object.keys(mapping);exports.getHashes=function(){for(var result=[],available=getHashes(),i=0,len=names.length;i<len;i++)available.indexOf(mapping[names[i]])>=0&&result.push(names[i]);return result},exports.createHash=function(algorithm){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHash(algorithm)},exports.createHmac=function(algorithm,key){return algorithm=algorithm.toLowerCase(),mapping[algorithm]&&(algorithm=mapping[algorithm]),createHmac(algorithm,key)}},{"./lib/get-hashes":43,"create-hash":23,"create-hmac":26}],43:[function(require,module,exports){module.exports=function(){return["sha1","sha224","sha256","sha384","sha512","md5","rmd160"]}},{}],44:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:(s?-1:1)*(1/0);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||0===value&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias),value*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<<mLen|m,eLen+=mLen;eLen>0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],45:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}},{}],46:[function(require,module,exports){function intersect(a,b){for(var res=[],i=0;i<a.length;i++)indexOf(b,a[i])>-1&&res.push(a[i]);return res}function indexOf(arr,el){for(var i=0;i<arr.length;i++)if(arr[i]===el)return i;return-1}module.exports=intersect,intersect.big=function(a,b){for(var ret=[],temp={},i=0;i<b.length;i++)temp[b[i]]=!0;for(var i=0;i<a.length;i++)temp[a[i]]&&ret.push(a[i]);return ret}},{}],47:[function(require,module,exports){function isBuffer(obj){return!!obj.constructor&&"function"==typeof obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)}function isSlowBuffer(obj){return"function"==typeof obj.readFloatLE&&"function"==typeof obj.slice&&isBuffer(obj.slice(0,0))}/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+module.exports=function(obj){return null!=obj&&(isBuffer(obj)||isSlowBuffer(obj)||!!obj._isBuffer)}},{}],48:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return"[object Array]"==toString.call(arr)}},{}],49:[function(require,module,exports){function FileTransferSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addChannel",this.onChannelAdded.bind(this)),this.sender=null,this.receiver=null}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection"),FileTransfer=require("filetransfer/hashed");util.inherits(FileTransferSession,BaseSession),FileTransferSession.prototype=extend(FileTransferSession.prototype,{start:function(file){var self=this;this.state="pending",this.pc.isInitiator=!0,this.sender=new FileTransfer.Sender,this.sender.on("progress",function(sent,size){self._log("info","Send progress "+sent+"/"+size)}),this.sender.on("sentFile",function(meta){self._log("info","Sent file",meta.name);var content=self.pc.localDescription.contents[0];delete content.transport,content.application={applicationType:"filetransfer",offer:{hash:{algo:meta.algo,value:meta.hash}}},self.send("description-info",{contents:[content]}),self.emit("sentFile",self,meta)});var sendChannel=this.pc.createDataChannel("filetransfer");sendChannel.onopen=function(){self.sender.send(file,sendChannel)};var constraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this.pc.offer(constraints,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(offer.jingle.contents[0].application={applicationType:"filetransfer",offer:{date:file.lastModifiedDate,name:file.name,size:file.size,hash:{algo:"sha-1",value:""}}},void self.send("session-initiate",offer.jingle))})},accept:function(){var self=this;this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):void self.send("session-accept",answer.jingle)})},end:function(reason,silent){this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},maybeReceivedFile:function(){this.receiver.metadata.hash.value&&(this.receiver.metadata.hash.value===this.receiver.metadata.actualhash?(this._log("info","File hash matches"),this.emit("receivedFile",this,this.receivedFile,this.receiver.metadata),this.end("success")):(this._log("error","File hash does not match"),this.end("media-error")))},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":"stable"===this.pc.signalingState?this.connectionState="interrupted":this.connectionState="disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onChannelAdded:function(channel){this.receiver.receive(null,channel)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1;var desc=changes.contents[0].application;this.receiver=new FileTransfer.Receiver({hash:desc.offer.hash.algo}),this.receiver.on("progress",function(received,size){self._log("info","Receive progress "+received+"/"+size)}),this.receiver.on("receivedFile",function(file){self.receivedFile=file,self.maybeReceivedFile()}),this.receiver.metadata=desc.offer,changes.contents[0].application={applicationType:"datachannel"},this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",changes.contents[0].application={applicationType:"datachannel"},this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){this._log("info","Terminating session"),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onDescriptionInfo:function(info,cb){var hash=info.contents[0].application.offer.hash;this.receiver.metadata.hash=hash,this.receiver.metadata.actualhash&&this.maybeReceivedFile(),cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})}}),module.exports=FileTransferSession},{"extend-object":28,"filetransfer/hashed":30,"jingle-session":51,rtcpeerconnection:167,util:197}],50:[function(require,module,exports){function filterContentSources(content,stream){"rtp"===content.application.applicationType&&(delete content.transport,delete content.application.payloads,delete content.application.headerExtensions,content.application.mux=!1,content.application.sources&&(content.application.sources=content.application.sources.filter(function(source){return stream.id===source.parameters[1].value.split(" ")[0]})),content.application.sourceGroups&&(content.application.sourceGroups=content.application.sourceGroups.filter(function(group){for(var found=!1,i=0;i<content.application.sources.length;i++)if(content.application.sources[i].ssrc===group.sources[0]){found=!0;break}return found})))}function filterUnusedLabels(content){var sources=content.application.sources||[];sources.forEach(function(source){source.parameters=source.parameters.filter(function(parameter){return!("mslabel"===parameter.key||"label"===parameter.key)})})}function MediaSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this,opts)),this.pc.on("endOfCandidates",this.onIceEndOfCandidates.bind(this,opts)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addStream",this.onAddStream.bind(this)),this.pc.on("removeStream",this.onRemoveStream.bind(this)),this.pc.on("addChannel",this.onAddChannel.bind(this)),opts.stream&&this.addStream(opts.stream),this._ringing=!1}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection");util.inherits(MediaSession,BaseSession),Object.defineProperties(MediaSession.prototype,{ringing:{get:function(){return this._ringing},set:function(value){value!==this._ringing&&(this._ringing=value,this.emit("change:ringing",value))}},streams:{get:function(){return"closed"!==this.pc.signalingState?this.pc.getRemoteStreams():[]}}}),MediaSession.prototype=extend(MediaSession.prototype,{start:function(offerOptions,next){var self=this;this.state="pending",next=next||function(){},this.pc.isInitiator=!0,this.pc.offer(offerOptions,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(offerOptions&&offerOptions.mandatory&&offer.jingle.contents.forEach(function(content){var mediaType=content.application.media;content.description&&"rtp"===content.application.applicationType&&(offerOptions.mandatory.OfferToReceiveAudio||"audio"!==mediaType||(content.senders="initiator"),offerOptions.mandatory.OfferToReceiveVideo||"video"!==mediaType||(content.senders="initiator"))}),offer.jingle.contents.forEach(filterUnusedLabels),self.send("session-initiate",offer.jingle),void next())})},accept:function(opts,next){var self=this;1===arguments.length&&"function"==typeof opts&&(next=opts,opts={}),next=next||function(){},opts=opts||{};var constraints=opts.constraints||{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(constraints,function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):(answer.jingle.contents.forEach(filterUnusedLabels),self.send("session-accept",answer.jingle),void next())})},end:function(reason,silent){var self=this;this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},ring:function(){this._log("info","Ringing on incoming session"),this.ringing=!0,this.send("session-info",{ringing:!0})},mute:function(creator,name){this._log("info","Muting",name),this.send("session-info",{mute:{creator:creator,name:name}})},unmute:function(creator,name){this._log("info","Unmuting",name),this.send("session-info",{unmute:{creator:creator,name:name}})},hold:function(){this._log("info","Placing on hold"),this.send("session-info",{hold:!0})},resume:function(){this._log("info","Resuming from hold"),this.send("session-info",{active:!0})},addStream:function(stream,renegotiate,cb){var self=this;cb=cb||function(){},this.pc.addStream(stream),renegotiate&&this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not create offer for adding new stream"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not create answer for adding new stream"),cb(err)):(answer.jingle.contents.forEach(function(content){filterContentSources(content,stream)}),answer.jingle.contents=answer.jingle.contents.filter(function(content){return"rtp"===content.application.applicationType&&content.application.sources&&content.application.sources.length}),delete answer.jingle.groups,self.send("source-add",answer.jingle),void cb())})})},addStream2:function(stream,cb){this.addStream(stream,!0,cb)},removeStream:function(stream,renegotiate,cb){var self=this;if(cb=cb||function(){},!renegotiate)return void this.pc.removeStream(stream);var desc=this.pc.localDescription;desc.contents.forEach(function(content){filterContentSources(content,stream)}),desc.contents=desc.contents.filter(function(content){return"rtp"===content.application.applicationType&&content.application.sources&&content.application.sources.length}),delete desc.groups,this.send("source-remove",desc),this.pc.removeStream(stream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for removing stream"),cb(err)):void self.pc.answer(function(err){return err?(self._log("error","Could not process answer for removing stream"),cb(err)):void cb()})})},removeStream2:function(stream,cb){this.removeStream(stream,!0,cb)},switchStream:function(oldStream,newStream,cb){var self=this;cb=cb||function(){};var desc=this.pc.localDescription;desc.contents.forEach(function(content){delete content.transport,delete content.application.payloads}),this.pc.removeStream(oldStream),this.send("source-remove",desc),this.pc.addStream(newStream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for switching streams"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not process answer for switching streams"),cb(err)):(answer.jingle.contents.forEach(function(content){delete content.transport,delete content.application.payloads}),self.send("source-add",answer.jingle),void cb())})})},onIceCandidate:function(opts,candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle),opts.signalEndOfCandidates&&(this.lastCandidate=candidate)},onIceEndOfCandidates:function(opts){if(this._log("info","ICE end of candidates"),opts.signalEndOfCandidates){var endOfCandidates=this.lastCandidate.jingle;endOfCandidates.contents[0].transport={transportType:endOfCandidates.contents[0].transport.transportType,gatheringComplete:!0},this.lastCandidate=null,this.send("transport-info",endOfCandidates)}},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":"stable"===this.pc.signalingState?this.connectionState="interrupted":this.connectionState="disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onAddStream:function(event){this._log("info","Stream added"),this.emit("peerStreamAdded",this,event.stream)},onRemoveStream:function(event){this._log("info","Stream removed"),this.emit("peerStreamRemoved",this,event.stream)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1,this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){var self=this;this._log("info","Terminating session"),this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onSessionInfo:function(info,cb){return info.ringing?(this._log("info","Outgoing session is ringing"),this.ringing=!0,this.emit("ringing",this),cb()):info.hold?(this._log("info","On hold"),this.emit("hold",this),cb()):info.active?(this._log("info","Resuming from hold"),this.emit("resumed",this),cb()):info.mute?(this._log("info","Muting",info.mute),this.emit("mute",this,info.mute),cb()):info.unmute?(this._log("info","Unmuting",info.unmute),this.emit("unmute",this,info.unmute),cb()):void cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})},onSourceAdd:function(changes,cb){var self=this;this._log("info","Adding new stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.application,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var newContentDesc=newContent.application,newSSRCs=newContentDesc.sources||[];ssrcs=ssrcs.concat(newSSRCs),newDesc.contents[idx].application.sources=JSON.parse(JSON.stringify(ssrcs));var newGroups=newContentDesc.sourceGroups||[];groups=groups.concat(newGroups),newDesc.contents[idx].application.sourceGroups=JSON.parse(JSON.stringify(groups))}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void cb()})})},onSourceRemove:function(changes,cb){var self=this;this._log("info","Removing stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.application,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var found,i,j,k,newContentDesc=newContent.application,newSSRCs=newContentDesc.sources||[],newGroups=newContentDesc.sourceGroups||[];for(i=0;i<newSSRCs.length;i++){for(found=-1,j=0;j<ssrcs.length;j++)if(newSSRCs[i].ssrc===ssrcs[j].ssrc){found=j;break}found>-1&&(ssrcs.splice(found,1),newDesc.contents[idx].application.sources=JSON.parse(JSON.stringify(ssrcs)))}for(i=0;i<newGroups.length;i++){for(found=-1,j=0;j<groups.length;j++)if(newGroups[i].semantics===groups[j].semantics&&newGroups[i].sources.length===groups[j].sources.length){var same=!0;for(k=0;k<newGroups[i].sources.length;k++)if(newGroups[i].sources[k]!==groups[j].sources[k]){same=!1;break}if(same){found=j;break}}found>-1&&(groups.splice(found,1),newDesc.contents[idx].application.sourceGroups=JSON.parse(JSON.stringify(groups)))}}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void cb()})})},onAddChannel:function(channel){this.emit("addChannel",channel)}}),module.exports=MediaSession},{"extend-object":28,"jingle-session":51,rtcpeerconnection:167,util:197}],51:[function(require,module,exports){function JingleSession(opts){WildEmitter.call(this);var self=this;this.sid=opts.sid||uuid.v4(),this.peer=opts.peer,this.peerID=opts.peerID||this.peer.full||this.peer,this.isInitiator=opts.initiator||!1,this.parent=opts.parent,this.state="starting",this.connectionState="starting",this.pendingApplicationTypes=opts.applicationTypes||[],this.pendingAction=!1,this.processingQueue=async.queue(function(task,next){if(self.ended)return next();var action=task.action,changes=task.changes,cb=task.cb;return self._log("debug",action),ACTIONS[action]?void self[ACTIONS[action]](changes,function(err,result){return cb(err,result),next()}):(self._log("error","Invalid action: "+action),cb({condition:"bad-request"}),next())})}var util=require("util"),uuid=require("uuid"),async=require("async"),extend=require("extend-object"),WildEmitter=require("wildemitter"),ACTIONS={"content-accept":"onContentAccept","content-add":"onContentAdd","content-modify":"onConentModify","content-reject":"onContentReject","content-remove":"onContentRemove","description-info":"onDescriptionInfo","security-info":"onSecurityInfo","session-accept":"onSessionAccept","session-info":"onSessionInfo","session-initiate":"onSessionInitiate","session-terminate":"onSessionTerminate","transport-accept":"onTransportAccept","transport-info":"onTransportInfo","transport-reject":"onTransportReject","transport-replace":"onTransportReplace","source-add":"onSourceAdd","source-remove":"onSourceRemove"};util.inherits(JingleSession,WildEmitter),Object.keys(ACTIONS).forEach(function(action){var method=ACTIONS[action];JingleSession.prototype[method]=function(changes,cb){this._log("error","Unsupported action: "+action),cb()}}),Object.defineProperties(JingleSession.prototype,{state:{get:function(){return this._sessionState},set:function(value){if(value!==this._sessionState){var prev=this._sessionState;this._log("info","Changing session state to: "+value),this._sessionState=value,this.emit("change:sessionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},connectionState:{get:function(){return this._connectionState},set:function(value){if(value!==this._connectionState){var prev=this._connectionState;this._log("info","Changing connection state to: "+value),this._connectionState=value,this.emit("change:connectionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},starting:{get:function(){return"starting"===this._sessionState}},pending:{get:function(){return"pending"===this._sessionState}},active:{get:function(){return"active"===this._sessionState}},ended:{get:function(){return"ended"===this._sessionState}},connected:{get:function(){return"connected"===this._connectionState}},connecting:{get:function(){return"connecting"===this._connectionState}},disconnected:{get:function(){return"disconnected"===this._connectionState}},interrupted:{get:function(){return"interrupted"===this._connectionState}}}),JingleSession.prototype=extend(JingleSession.prototype,{_log:function(level,message){message=this.sid+": "+message,this.emit("log:"+level,message)},send:function(action,data){data=data||{},data.sid=this.sid,data.action=action;var requirePending={"session-inititate":!0,"session-accept":!0,"content-add":!0,"content-remove":!0,"content-reject":!0,"content-accept":!0,"content-modify":!0,"transport-replace":!0,"transport-reject":!0,"transport-accept":!0,"source-add":!0,"source-remove":!0};requirePending[action]?this.pendingAction=action:this.pendingAction=!1,this.emit("send",{to:this.peer,type:"set",jingle:data})},process:function(action,changes,cb){this.processingQueue.push({action:action,changes:changes,cb:cb})},start:function(){this._log("error","Can not start base sessions"),this.end("unsupported-applications",!0)},accept:function(){this._log("error","Can not accept base sessions"),this.end("unsupported-applications")},cancel:function(){this.end("cancel")},decline:function(){this.end("decline")},end:function(reason,silent){this.state="ended",this.processingQueue.kill(),reason||(reason="success"),"string"==typeof reason&&(reason={condition:reason}),silent||this.send("session-terminate",{reason:reason}),this.emit("terminated",this,reason)},onSessionTerminate:function(changes,cb){this.end(changes.reason,!0),cb()},onSessionInfo:function(changes,cb){var okKeys={sid:!0,action:!0,initiator:!0,responder:!0},unknownPayload=!1;Object.keys(changes).forEach(function(key){okKeys[key]||(unknownPayload=!0)}),unknownPayload?cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"}):cb()},onDescriptionInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onTransportInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onContentAdd:function(changes,cb){cb(),this.send("content-reject",{reason:{condition:"failed-application",text:"content-add is not supported"}})},onTransportReplace:function(changes,cb){cb(),this.send("transport-reject",{reason:{condition:"failed-application",text:"transport-replace is not supported"}})}}),module.exports=JingleSession},{async:52,"extend-object":28,util:197,uuid:199,wildemitter:211}],52:[function(require,module,exports){(function(process,global){!function(){function noop(){}function identity(v){return v}function toBool(v){return!!v}function notId(v){return!v}function only_once(fn){return function(){if(null===fn)throw new Error("Callback was already called.");fn.apply(this,arguments),fn=null}}function _once(fn){return function(){null!==fn&&(fn.apply(this,arguments),fn=null)}}function _isArrayLike(arr){return _isArray(arr)||"number"==typeof arr.length&&arr.length>=0&&arr.length%1===0}function _arrayEach(arr,iterator){for(var index=-1,length=arr.length;++index<length;)iterator(arr[index],index,arr)}function _map(arr,iterator){for(var index=-1,length=arr.length,result=Array(length);++index<length;)result[index]=iterator(arr[index],index,arr);return result}function _range(count){return _map(Array(count),function(v,i){return i})}function _reduce(arr,iterator,memo){return _arrayEach(arr,function(x,i,a){memo=iterator(memo,x,i,a)}),memo}function _forEachOf(object,iterator){_arrayEach(_keys(object),function(key){iterator(object[key],key)})}function _indexOf(arr,item){for(var i=0;i<arr.length;i++)if(arr[i]===item)return i;return-1}function _keyIterator(coll){var len,keys,i=-1;return _isArrayLike(coll)?(len=coll.length,function(){return i++,i<len?i:null}):(keys=_keys(coll),len=keys.length,function(){return i++,i<len?keys[i]:null})}function _restParam(func,startIndex){return startIndex=null==startIndex?func.length-1:+startIndex,function(){for(var length=Math.max(arguments.length-startIndex,0),rest=Array(length),index=0;index<length;index++)rest[index]=arguments[index+startIndex];switch(startIndex){case 0:return func.call(this,rest);case 1:return func.call(this,arguments[0],rest)}}}function _withoutIndex(iterator){return function(value,index,callback){return iterator(value,callback)}}function _eachOfLimit(limit){return function(obj,iterator,callback){callback=_once(callback||noop),obj=obj||[];var nextKey=_keyIterator(obj);if(limit<=0)return callback(null);var done=!1,running=0,errored=!1;!function replenish(){if(done&&running<=0)return callback(null);for(;running<limit&&!errored;){var key=nextKey();if(null===key)return done=!0,void(running<=0&&callback(null));running+=1,iterator(obj[key],key,only_once(function(err){running-=1,err?(callback(err),errored=!0):replenish()}))}}()}}function doParallel(fn){return function(obj,iterator,callback){return fn(async.eachOf,obj,iterator,callback)}}function doParallelLimit(fn){return function(obj,limit,iterator,callback){return fn(_eachOfLimit(limit),obj,iterator,callback)}}function doSeries(fn){return function(obj,iterator,callback){return fn(async.eachOfSeries,obj,iterator,callback)}}function _asyncMap(eachfn,arr,iterator,callback){callback=_once(callback||noop),arr=arr||[];var results=_isArrayLike(arr)?[]:{};eachfn(arr,function(value,index,callback){iterator(value,function(err,v){results[index]=v,callback(err)})},function(err){callback(err,results)})}function _filter(eachfn,arr,iterator,callback){var results=[];eachfn(arr,function(x,index,callback){iterator(x,function(v){v&&results.push({index:index,value:x}),callback()})},function(){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})}function _reject(eachfn,arr,iterator,callback){_filter(eachfn,arr,function(value,cb){iterator(value,function(v){cb(!v)})},callback)}function _createTester(eachfn,check,getResult){return function(arr,limit,iterator,cb){function done(){cb&&cb(getResult(!1,void 0))}function iteratee(x,_,callback){return cb?void iterator(x,function(v){cb&&check(v)&&(cb(getResult(!0,x)),cb=iterator=!1),callback()}):callback()}arguments.length>3?eachfn(arr,limit,iteratee,done):(cb=iterator,iterator=limit,eachfn(arr,iteratee,done))}}function _findGetResult(v,x){return x}function _parallel(eachfn,tasks,callback){callback=callback||noop;var results=_isArrayLike(tasks)?[]:{};eachfn(tasks,function(task,key,callback){task(_restParam(function(err,args){args.length<=1&&(args=args[0]),results[key]=args,callback(err)}))},function(err){callback(err,results)})}function _concat(eachfn,arr,fn,callback){var result=[];eachfn(arr,function(x,index,cb){fn(x,function(err,y){result=result.concat(y||[]),cb(err)})},function(err){callback(err,result)})}function _queue(worker,concurrency,payload){function _insert(q,data,pos,callback){if(null!=callback&&"function"!=typeof callback)throw new Error("task callback must be a function");return q.started=!0,_isArray(data)||(data=[data]),0===data.length&&q.idle()?async.setImmediate(function(){q.drain()}):(_arrayEach(data,function(task){var item={data:task,callback:callback||noop};pos?q.tasks.unshift(item):q.tasks.push(item),q.tasks.length===q.concurrency&&q.saturated()}),void async.setImmediate(q.process))}function _next(q,tasks){return function(){workers-=1;var removed=!1,args=arguments;_arrayEach(tasks,function(task){_arrayEach(workersList,function(worker,index){worker!==task||removed||(workersList.splice(index,1),removed=!0)}),task.callback.apply(task,args)}),q.tasks.length+workers===0&&q.drain(),q.process()}}if(null==concurrency)concurrency=1;else if(0===concurrency)throw new Error("Concurrency must not be zero");var workers=0,workersList=[],q={tasks:[],concurrency:concurrency,payload:payload,saturated:noop,empty:noop,drain:noop,started:!1,paused:!1,push:function(data,callback){_insert(q,data,!1,callback)},kill:function(){q.drain=noop,q.tasks=[]},unshift:function(data,callback){_insert(q,data,!0,callback)},process:function(){for(;!q.paused&&workers<q.concurrency&&q.tasks.length;){var tasks=q.payload?q.tasks.splice(0,q.payload):q.tasks.splice(0,q.tasks.length),data=_map(tasks,function(task){return task.data});0===q.tasks.length&&q.empty(),workers+=1,workersList.push(tasks[0]);var cb=only_once(_next(q,tasks));worker(data,cb)}},length:function(){return q.tasks.length},running:function(){return workers},workersList:function(){return workersList},idle:function(){return q.tasks.length+workers===0},pause:function(){q.paused=!0},resume:function(){if(q.paused!==!1){q.paused=!1;for(var resumeCount=Math.min(q.concurrency,q.tasks.length),w=1;w<=resumeCount;w++)async.setImmediate(q.process)}}};return q}function _console_fn(name){return _restParam(function(fn,args){fn.apply(null,args.concat([_restParam(function(err,args){"object"==typeof console&&(err?console.error&&console.error(err):console[name]&&_arrayEach(args,function(x){console[name](x)}))})]))})}function _times(mapper){return function(count,iterator,callback){mapper(_range(count),iterator,callback)}}function _applyEach(eachfn){return _restParam(function(fns,args){var go=_restParam(function(args){var that=this,callback=args.pop();return eachfn(fns,function(fn,_,cb){fn.apply(that,args.concat([cb]))},callback)});return args.length?go.apply(this,args):go})}function ensureAsync(fn){return _restParam(function(args){var callback=args.pop();args.push(function(){var innerArgs=arguments;sync?async.setImmediate(function(){callback.apply(null,innerArgs)}):callback.apply(null,innerArgs)});var sync=!0;fn.apply(this,args),sync=!1})}var previous_async,async={},root="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this;null!=root&&(previous_async=root.async),async.noConflict=function(){return root.async=previous_async,async};var _toString=Object.prototype.toString,_isArray=Array.isArray||function(obj){return"[object Array]"===_toString.call(obj)},_isObject=function(obj){var type=typeof obj;return"function"===type||"object"===type&&!!obj},_keys=Object.keys||function(obj){var keys=[];for(var k in obj)obj.hasOwnProperty(k)&&keys.push(k);return keys},_setImmediate="function"==typeof setImmediate&&setImmediate,_delay=_setImmediate?function(fn){_setImmediate(fn)}:function(fn){setTimeout(fn,0)};"object"==typeof process&&"function"==typeof process.nextTick?async.nextTick=process.nextTick:async.nextTick=_delay,async.setImmediate=_setImmediate?_delay:async.nextTick,async.forEach=async.each=function(arr,iterator,callback){return async.eachOf(arr,_withoutIndex(iterator),callback)},async.forEachSeries=async.eachSeries=function(arr,iterator,callback){return async.eachOfSeries(arr,_withoutIndex(iterator),callback)},async.forEachLimit=async.eachLimit=function(arr,limit,iterator,callback){return _eachOfLimit(limit)(arr,_withoutIndex(iterator),callback)},async.forEachOf=async.eachOf=function(object,iterator,callback){function done(err){completed--,err?callback(err):null===key&&completed<=0&&callback(null)}callback=_once(callback||noop),object=object||[];for(var key,iter=_keyIterator(object),completed=0;null!=(key=iter());)completed+=1,iterator(object[key],key,only_once(done));0===completed&&callback(null)},async.forEachOfSeries=async.eachOfSeries=function(obj,iterator,callback){function iterate(){var sync=!0;return null===key?callback(null):(iterator(obj[key],key,only_once(function(err){if(err)callback(err);else{if(key=nextKey(),null===key)return callback(null);sync?async.setImmediate(iterate):iterate()}})),void(sync=!1))}callback=_once(callback||noop),obj=obj||[];var nextKey=_keyIterator(obj),key=nextKey();iterate()},async.forEachOfLimit=async.eachOfLimit=function(obj,limit,iterator,callback){_eachOfLimit(limit)(obj,iterator,callback)},async.map=doParallel(_asyncMap),async.mapSeries=doSeries(_asyncMap),async.mapLimit=doParallelLimit(_asyncMap),async.inject=async.foldl=async.reduce=function(arr,memo,iterator,callback){async.eachOfSeries(arr,function(x,i,callback){iterator(memo,x,function(err,v){memo=v,callback(err)})},function(err){callback(err,memo)})},async.foldr=async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,identity).reverse();async.reduce(reversed,memo,iterator,callback);
+},async.transform=function(arr,memo,iterator,callback){3===arguments.length&&(callback=iterator,iterator=memo,memo=_isArray(arr)?[]:{}),async.eachOf(arr,function(v,k,cb){iterator(memo,v,k,cb)},function(err){callback(err,memo)})},async.select=async.filter=doParallel(_filter),async.selectLimit=async.filterLimit=doParallelLimit(_filter),async.selectSeries=async.filterSeries=doSeries(_filter),async.reject=doParallel(_reject),async.rejectLimit=doParallelLimit(_reject),async.rejectSeries=doSeries(_reject),async.any=async.some=_createTester(async.eachOf,toBool,identity),async.someLimit=_createTester(async.eachOfLimit,toBool,identity),async.all=async.every=_createTester(async.eachOf,notId,notId),async.everyLimit=_createTester(async.eachOfLimit,notId,notId),async.detect=_createTester(async.eachOf,identity,_findGetResult),async.detectSeries=_createTester(async.eachOfSeries,identity,_findGetResult),async.detectLimit=_createTester(async.eachOfLimit,identity,_findGetResult),async.sortBy=function(arr,iterator,callback){function comparator(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0}async.map(arr,function(x,callback){iterator(x,function(err,criteria){err?callback(err):callback(null,{value:x,criteria:criteria})})},function(err,results){return err?callback(err):void callback(null,_map(results.sort(comparator),function(x){return x.value}))})},async.auto=function(tasks,concurrency,callback){function addListener(fn){listeners.unshift(fn)}function removeListener(fn){var idx=_indexOf(listeners,fn);idx>=0&&listeners.splice(idx,1)}function taskComplete(){remainingTasks--,_arrayEach(listeners.slice(0),function(fn){fn()})}"function"==typeof arguments[1]&&(callback=concurrency,concurrency=null),callback=_once(callback||noop);var keys=_keys(tasks),remainingTasks=keys.length;if(!remainingTasks)return callback(null);concurrency||(concurrency=remainingTasks);var results={},runningTasks=0,hasError=!1,listeners=[];addListener(function(){remainingTasks||callback(null,results)}),_arrayEach(keys,function(k){function ready(){return runningTasks<concurrency&&_reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},!0)&&!results.hasOwnProperty(k)}function listener(){ready()&&(runningTasks++,removeListener(listener),task[task.length-1](taskCallback,results))}if(!hasError){for(var dep,task=_isArray(tasks[k])?tasks[k]:[tasks[k]],taskCallback=_restParam(function(err,args){if(runningTasks--,args.length<=1&&(args=args[0]),err){var safeResults={};_forEachOf(results,function(val,rkey){safeResults[rkey]=val}),safeResults[k]=args,hasError=!0,callback(err,safeResults)}else results[k]=args,async.setImmediate(taskComplete)}),requires=task.slice(0,task.length-1),len=requires.length;len--;){if(!(dep=tasks[requires[len]]))throw new Error("Has nonexistent dependency in "+requires.join(", "));if(_isArray(dep)&&_indexOf(dep,k)>=0)throw new Error("Has cyclic dependencies")}ready()?(runningTasks++,task[task.length-1](taskCallback,results)):addListener(listener)}})},async.retry=function(times,task,callback){function parseTimes(acc,t){if("number"==typeof t)acc.times=parseInt(t,10)||DEFAULT_TIMES;else{if("object"!=typeof t)throw new Error("Unsupported argument type for 'times': "+typeof t);acc.times=parseInt(t.times,10)||DEFAULT_TIMES,acc.interval=parseInt(t.interval,10)||DEFAULT_INTERVAL}}function wrappedTask(wrappedCallback,wrappedResults){function retryAttempt(task,finalAttempt){return function(seriesCallback){task(function(err,result){seriesCallback(!err||finalAttempt,{err:err,result:result})},wrappedResults)}}function retryInterval(interval){return function(seriesCallback){setTimeout(function(){seriesCallback(null)},interval)}}for(;opts.times;){var finalAttempt=!(opts.times-=1);attempts.push(retryAttempt(opts.task,finalAttempt)),!finalAttempt&&opts.interval>0&&attempts.push(retryInterval(opts.interval))}async.series(attempts,function(done,data){data=data[data.length-1],(wrappedCallback||opts.callback)(data.err,data.result)})}var DEFAULT_TIMES=5,DEFAULT_INTERVAL=0,attempts=[],opts={times:DEFAULT_TIMES,interval:DEFAULT_INTERVAL},length=arguments.length;if(length<1||length>3)throw new Error("Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)");return length<=2&&"function"==typeof times&&(callback=task,task=times),"function"!=typeof times&&parseTimes(opts,times),opts.callback=callback,opts.task=task,opts.callback?wrappedTask():wrappedTask},async.waterfall=function(tasks,callback){function wrapIterator(iterator){return _restParam(function(err,args){if(err)callback.apply(null,[err].concat(args));else{var next=iterator.next();next?args.push(wrapIterator(next)):args.push(callback),ensureAsync(iterator).apply(null,args)}})}if(callback=_once(callback||noop),!_isArray(tasks)){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}return tasks.length?void wrapIterator(async.iterator(tasks))():callback()},async.parallel=function(tasks,callback){_parallel(async.eachOf,tasks,callback)},async.parallelLimit=function(tasks,limit,callback){_parallel(_eachOfLimit(limit),tasks,callback)},async.series=function(tasks,callback){_parallel(async.eachOfSeries,tasks,callback)},async.iterator=function(tasks){function makeCallback(index){function fn(){return tasks.length&&tasks[index].apply(null,arguments),fn.next()}return fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null},fn}return makeCallback(0)},async.apply=_restParam(function(fn,args){return _restParam(function(callArgs){return fn.apply(null,args.concat(callArgs))})}),async.concat=doParallel(_concat),async.concatSeries=doSeries(_concat),async.whilst=function(test,iterator,callback){if(callback=callback||noop,test()){var next=_restParam(function(err,args){err?callback(err):test.apply(this,args)?iterator(next):callback.apply(null,[null].concat(args))});iterator(next)}else callback(null)},async.doWhilst=function(iterator,test,callback){var calls=0;return async.whilst(function(){return++calls<=1||test.apply(this,arguments)},iterator,callback)},async.until=function(test,iterator,callback){return async.whilst(function(){return!test.apply(this,arguments)},iterator,callback)},async.doUntil=function(iterator,test,callback){return async.doWhilst(iterator,function(){return!test.apply(this,arguments)},callback)},async.during=function(test,iterator,callback){callback=callback||noop;var next=_restParam(function(err,args){err?callback(err):(args.push(check),test.apply(this,args))}),check=function(err,truth){err?callback(err):truth?iterator(next):callback(null)};test(check)},async.doDuring=function(iterator,test,callback){var calls=0;async.during(function(next){calls++<1?next(null,!0):test.apply(this,arguments)},iterator,callback)},async.queue=function(worker,concurrency){var q=_queue(function(items,cb){worker(items[0],cb)},concurrency,1);return q},async.priorityQueue=function(worker,concurrency){function _compareTasks(a,b){return a.priority-b.priority}function _binarySearch(sequence,item,compare){for(var beg=-1,end=sequence.length-1;beg<end;){var mid=beg+(end-beg+1>>>1);compare(item,sequence[mid])>=0?beg=mid:end=mid-1}return beg}function _insert(q,data,priority,callback){if(null!=callback&&"function"!=typeof callback)throw new Error("task callback must be a function");return q.started=!0,_isArray(data)||(data=[data]),0===data.length?async.setImmediate(function(){q.drain()}):void _arrayEach(data,function(task){var item={data:task,priority:priority,callback:"function"==typeof callback?callback:noop};q.tasks.splice(_binarySearch(q.tasks,item,_compareTasks)+1,0,item),q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}var q=async.queue(worker,concurrency);return q.push=function(data,priority,callback){_insert(q,data,priority,callback)},delete q.unshift,q},async.cargo=function(worker,payload){return _queue(worker,1,payload)},async.log=_console_fn("log"),async.dir=_console_fn("dir"),async.memoize=function(fn,hasher){var memo={},queues={},has=Object.prototype.hasOwnProperty;hasher=hasher||identity;var memoized=_restParam(function(args){var callback=args.pop(),key=hasher.apply(null,args);has.call(memo,key)?async.setImmediate(function(){callback.apply(null,memo[key])}):has.call(queues,key)?queues[key].push(callback):(queues[key]=[callback],fn.apply(null,args.concat([_restParam(function(args){memo[key]=args;var q=queues[key];delete queues[key];for(var i=0,l=q.length;i<l;i++)q[i].apply(null,args)})])))});return memoized.memo=memo,memoized.unmemoized=fn,memoized},async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}},async.times=_times(async.map),async.timesSeries=_times(async.mapSeries),async.timesLimit=function(count,limit,iterator,callback){return async.mapLimit(_range(count),limit,iterator,callback)},async.seq=function(){var fns=arguments;return _restParam(function(args){var that=this,callback=args[args.length-1];"function"==typeof callback?args.pop():callback=noop,async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([_restParam(function(err,nextargs){cb(err,nextargs)})]))},function(err,results){callback.apply(that,[err].concat(results))})})},async.compose=function(){return async.seq.apply(null,Array.prototype.reverse.call(arguments))},async.applyEach=_applyEach(async.eachOf),async.applyEachSeries=_applyEach(async.eachOfSeries),async.forever=function(fn,callback){function next(err){return err?done(err):void task(next)}var done=only_once(callback||noop),task=ensureAsync(fn);next()},async.ensureAsync=ensureAsync,async.constant=_restParam(function(values){var args=[null].concat(values);return function(callback){return callback.apply(this,args)}}),async.wrapSync=async.asyncify=function(func){return _restParam(function(args){var result,callback=args.pop();try{result=func.apply(this,args)}catch(e){return callback(e)}_isObject(result)&&"function"==typeof result.then?result.then(function(value){callback(null,value)}).catch(function(err){callback(err.message?err:new Error(err))}):callback(null,result)})},"object"==typeof module&&module.exports?module.exports=async:"function"==typeof define&&define.amd?define([],function(){return async}):root.async=async}()}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:153}],53:[function(require,module,exports){function SessionManager(conf){WildEmitter.call(this),conf=conf||{},this.jid=conf.jid,this.selfID=conf.selfID||this.jid&&this.jid.full||this.jid||"",this.sessions={},this.peers={},this.prepareSession=conf.prepareSession||function(opts){return opts.applicationTypes.indexOf("rtp")>=0?new MediaSession(opts):opts.applicationTypes.indexOf("filetransfer")>=0?new FileSession(opts):void 0},this.performTieBreak=conf.performTieBreak||function(sess,req){var applicationTypes=req.jingle.contents.map(function(content){if(content.application)return content.application.applicationType}),matching=intersect(sess.pendingApplicationTypes,applicationTypes);return matching.length>0},this.screenSharingSupport=webrtc.screenSharing,this.capabilities=["urn:xmpp:jingle:1"],webrtc.support&&(this.capabilities=["urn:xmpp:jingle:1","urn:xmpp:jingle:apps:rtp:1","urn:xmpp:jingle:apps:rtp:audio","urn:xmpp:jingle:apps:rtp:video","urn:xmpp:jingle:apps:rtp:rtcb-fb:0","urn:xmpp:jingle:apps:rtp:rtp-hdrext:0","urn:xmpp:jingle:apps:rtp:ssma:0","urn:xmpp:jingle:apps:dtls:0","urn:xmpp:jingle:apps:grouping:0","urn:xmpp:jingle:apps:file-transfer:3","urn:xmpp:jingle:transports:ice-udp:1","urn:xmpp:jingle:transports.dtls-sctp:1","urn:ietf:rfc:3264","urn:ietf:rfc:5576","urn:ietf:rfc:5888"]),this.config={debug:!1,peerConnectionConfig:{iceServers:conf.iceServers||[{url:"stun:stun.l.google.com:19302"}]},peerConnectionConstraints:{optional:[{DtlsSrtpKeyAgreement:!0},{RtpDataChannels:!1}]},media:{audio:!0,video:!0}};for(var item in conf)this.config[item]=conf[item];this.iceServers=this.config.peerConnectionConfig.iceServers}var util=require("util"),intersect=require("intersect"),WildEmitter=require("wildemitter"),webrtc=require("webrtcsupport"),BaseSession=require("jingle-session"),MediaSession=require("jingle-media-session"),FileSession=require("jingle-filetransfer-session");util.inherits(SessionManager,WildEmitter),SessionManager.prototype.addICEServer=function(server){"string"==typeof server&&(server={url:server}),this.iceServers.push(server)},SessionManager.prototype.addSession=function(session){var self=this,sid=session.sid,peer=session.peerID;return this.sessions[sid]=session,this.peers[peer]||(this.peers[peer]=[]),this.peers[peer].push(session),session.on("terminated",function(){var peers=self.peers[peer]||[];peers.length&&peers.splice(peers.indexOf(session),1),delete self.sessions[sid]}),session.on("*",function(name,data,extraData,extraData2){if("send"===name){var action=data.jingle&&data.jingle.action;session.isInitiator&&"session-initiate"===action&&self.emit("outgoing",session)}!self.config.debug||"log:debug"!==name&&"log:error"!==name||console.log("Jingle:",data,extraData,extraData2),0!==name.indexOf("change")&&self.emit(name,data,extraData,extraData2)}),this.emit("createdSession",session),session},SessionManager.prototype.createMediaSession=function(peer,sid,stream){var session=new MediaSession({sid:sid,peer:peer,initiator:!0,stream:stream,parent:this,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints});return this.addSession(session),session},SessionManager.prototype.createFileTransferSession=function(peer,sid){var session=new FileSession({sid:sid,peer:peer,initiator:!0,parent:this});return this.addSession(session),session},SessionManager.prototype.endPeerSessions=function(peer,reason,silent){peer=peer.full||peer;var sessions=this.peers[peer]||[];delete this.peers[peer],sessions.forEach(function(session){session.end(reason||"gone",silent)})},SessionManager.prototype.endAllSessions=function(reason,silent){var self=this;Object.keys(this.peers).forEach(function(peer){self.endPeerSessions(peer,reason,silent)})},SessionManager.prototype._createIncomingSession=function(meta,req){var session;return this.prepareSession&&(session=this.prepareSession(meta,req)),session||(session=new BaseSession(meta)),this.addSession(session),session},SessionManager.prototype._sendError=function(to,id,data){data.type||(data.type="cancel"),this.emit("send",{to:to,id:id,type:"error",error:data})},SessionManager.prototype._log=function(level,message){this.emit("log:"+level,message)},SessionManager.prototype.process=function(req){var self=this,sid=req.jingle?req.jingle.sid:null,session=this.sessions[sid]||null,rid=req.id,sender=req.from.full||req.from;if("error"===req.type){var isTieBreak=req.error&&"tie-break"===req.error.jingleCondition;return session&&session.pending&&isTieBreak?session.end("alternative-session",!0):(session&&(session.pendingAction=!1),this.emit("error",req))}if("result"===req.type)return void(session&&(session.pendingAction=!1));var action=req.jingle.action,contents=req.jingle.contents||[],applicationTypes=contents.map(function(content){if(content.application)return content.application.applicationType}),transportTypes=contents.map(function(content){if(content.transport)return content.transport.transportType});if("session-initiate"!==action){if(!session)return this._log("error","Unknown session",sid),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if(session.peerID!==sender||session.ended)return this._log("error","Session has ended, or action has wrong sender"),this._sendError(sender,rid,{condition:"item-not-found",jingleCondition:"unknown-session"});if("session-accept"===action&&!session.pending)return this._log("error","Tried to accept session twice",sid),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if("session-terminate"!==action&&action===session.pendingAction&&(this._log("error","Tie break during pending request"),session.isInitiator))return this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(session){if(session.peerID!==sender)return this._log("error","Duplicate sid from new sender"),this._sendError(sender,rid,{condition:"service-unavailable"});if(!session.pending)return this._log("error","Someone is doing this wrong"),this._sendError(sender,rid,{condition:"unexpected-request",jingleCondition:"out-of-order"});if(this.selfID>session.peerID&&this.performTieBreak(session,req))return this._log("error","Tie break new session because of duplicate sids"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}else if(this.peers[sender]&&this.peers[sender].length)for(var i=0,len=this.peers[sender].length;i<len;i++){var sess=this.peers[sender][i];if(sess&&sess.pending&&sess.sid>sid&&this.performTieBreak(sess,req))return this._log("info","Tie break session-initiate"),this._sendError(sender,rid,{condition:"conflict",jingleCondition:"tie-break"})}if("session-initiate"===action){if(!contents.length)return self._sendError(sender,rid,{condition:"bad-request"});session=this._createIncomingSession({sid:sid,peer:req.from,peerID:sender,initiator:!1,parent:this,applicationTypes:applicationTypes,transportTypes:transportTypes,iceServers:this.iceServers,constraints:this.config.peerConnectionConstraints},req)}session.process(action,req.jingle,function(err){err?(self._log("error","Could not process request",req,err),self._sendError(sender,rid,err)):(self.emit("send",{to:sender,id:rid,type:"result"}),"session-initiate"===action&&self.emit("incoming",session))})},module.exports=SessionManager},{intersect:46,"jingle-filetransfer-session":49,"jingle-media-session":50,"jingle-session":51,util:197,webrtcsupport:210,wildemitter:211}],54:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _shortcuts=require("./shortcuts"),_shortcuts2=_interopRequireDefault(_shortcuts),_types=require("./types"),_types2=_interopRequireDefault(_types);exports.default=function(JXT){JXT.use(_types2.default),JXT.use(_shortcuts2.default)},module.exports=exports.default},{"./shortcuts":55,"./types":56}],55:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),VERSION={client:_xmppConstants.Namespace.CLIENT,server:_xmppConstants.Namespace.SERVER,component:_xmppConstants.Namespace.COMPONENT};exports.default=function(JXT){JXT.extendMessage=function(JXTClass,multiName){var _this=this;this.withMessage(function(Message){_this.extend(Message,JXTClass,multiName)})},JXT.extendPresence=function(JXTClass,multiName){var _this2=this;this.withPresence(function(Presence){_this2.extend(Presence,JXTClass,multiName)})},JXT.extendIQ=function(JXTClass,multiName){var _this3=this;this.withIQ(function(IQ){_this3.extend(IQ,JXTClass,multiName)})},JXT.extendStreamFeatures=function(JXTClass){var _this4=this;this.withStreamFeatures(function(StreamFeatures){_this4.extend(StreamFeatures,JXTClass)})},JXT.extendPubsubItem=function(JXTClass){var _this5=this;this.withPubsubItem(function(PubsubItem){_this5.extend(PubsubItem,JXTClass)})},JXT.withIQ=function(cb){this.withDefinition("iq",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("iq",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withMessage=function(cb){this.withDefinition("message",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("message",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withPresence=function(cb){this.withDefinition("presence",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("presence",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withStreamFeatures=function(cb){this.withDefinition("features",_xmppConstants.Namespace.STREAM,cb)},JXT.withStanzaError=function(cb){this.withDefinition("error",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("error",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withDataForm=function(cb){this.withDefinition("x",_xmppConstants.Namespace.DATAFORM,cb)},JXT.withPubsubItem=function(cb){this.withDefinition("item",_xmppConstants.Namespace.PUBSUB,cb),this.withDefinition("item",_xmppConstants.Namespace.PUBSUB_EVENT,cb)},JXT.getMessage=function(){var version=void 0===arguments[0]?"client":arguments[0];return this.getDefinition("message",VERSION[version])},JXT.getPresence=function(){var version=void 0===arguments[0]?"client":arguments[0];return this.getDefinition("presence",VERSION[version])},JXT.getIQ=function(){var version=void 0===arguments[0]?"client":arguments[0];return this.getDefinition("iq",VERSION[version])},JXT.getStreamError=function(){return this.getDefinition("error",_xmppConstants.Namespace.STREAM)},JXT.getIq=JXT.getIQ,JXT.withIq=JXT.withIQ},module.exports=exports.default},{"xmpp-constants":212}],56:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppJid=require("xmpp-jid");exports.default=function(JXT){var Utils=JXT.utils;Utils.jidAttribute=function(attr,prepped){return{get:function(){var jid=new _xmppJid.JID(Utils.getAttribute(this.xml,attr));return prepped&&(jid.prepped=!0),jid},set:function(value){Utils.setAttribute(this.xml,attr,(value||"").toString())}}},Utils.jidSub=function(NS,sub,prepped){return{get:function(){var jid=new _xmppJid.JID(Utils.getSubText(this.xml,NS,sub));return prepped&&(jid.prepped=!0),jid},set:function(value){Utils.setSubText(this.xml,NS,sub,(value||"").toString())}}},Utils.tzoSub=Utils.field(function(xml,NS,sub,defaultVal){var hrs=void 0,min=void 0,split=void 0,sign=-1,formatted=Utils.getSubText(xml,NS,sub);return formatted?("-"===formatted.charAt(0)&&(sign=1,formatted=formatted.slice(1)),split=formatted.split(":"),hrs=parseInt(split[0],10),min=parseInt(split[1],10),(60*hrs+min)*sign):defaultVal},function(xml,NS,sub,value){var hrs=void 0,min=void 0,formatted="-";"number"==typeof value?(value<0&&(value=-value,formatted="+"),hrs=value/60,min=value%60,formatted+=(hrs<10?"0":"")+hrs+":"+(min<10?"0":"")+min):formatted=value,Utils.setSubText(xml,NS,sub,formatted)})},module.exports=exports.default},{"xmpp-jid":218}],57:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Address=JXT.define({name:"_address",namespace:_xmppConstants.Namespace.ADDRESS,element:"address",fields:{jid:Utils.jidAttribute("jid"),uri:Utils.attribute("uri"),node:Utils.attribute("node"),description:Utils.attribute("desc"),delivered:Utils.boolAttribute("delivered"),type:Utils.attribute("type")}}),Addresses=Utils.subMultiExtension(_xmppConstants.Namespace.ADDRESS,"addresses",Address);JXT.withMessage(function(Message){JXT.add(Message,"addresses",Addresses)}),JXT.withPresence(function(Presence){JXT.add(Presence,"addresses",Addresses)})},module.exports=exports.default},{"xmpp-constants":212}],58:[function(require,module,exports){"use strict";var _interopRequireDefault=require("babel-runtime/helpers/interop-require-default").default;Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_lodashForeach=require("lodash.foreach"),_lodashForeach2=_interopRequireDefault(_lodashForeach);exports.default=function(JXT){var Utils=JXT.utils,Avatar=JXT.define({name:"avatar",namespace:_xmppConstants.Namespace.AVATAR_METADATA,element:"info",fields:{id:Utils.attribute("id"),bytes:Utils.attribute("bytes"),height:Utils.attribute("height"),width:Utils.attribute("width"),type:Utils.attribute("type","image/png"),url:Utils.attribute("url")}}),avatars={get:function(){var metadata=Utils.find(this.xml,_xmppConstants.Namespace.AVATAR_METADATA,"metadata"),results=[];if(metadata.length){var _avatars=Utils.find(metadata[0],_xmppConstants.Namespace.AVATAR_METADATA,"info");(0,_lodashForeach2.default)(_avatars,function(info){results.push(new Avatar({},info))})}return results},set:function(value){var metadata=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.AVATAR_METADATA,"metadata");Utils.setAttribute(metadata,"xmlns",_xmppConstants.Namespace.AVATAR_METADATA),(0,_lodashForeach2.default)(value,function(info){var avatar=new Avatar(info);metadata.appendChild(avatar.xml)})}};JXT.withPubsubItem(function(Item){JXT.add(Item,"avatars",avatars),JXT.add(Item,"avatarData",Utils.textSub(_xmppConstants.Namespace.AVATAR_DATA,"data"))})},module.exports=exports.default},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],59:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Bind=JXT.define({name:"bind",namespace:_xmppConstants.Namespace.BIND,element:"bind",fields:{resource:Utils.textSub(_xmppConstants.Namespace.BIND,"resource"),jid:Utils.jidSub(_xmppConstants.Namespace.BIND,"jid")}});JXT.extendIQ(Bind),JXT.extendStreamFeatures(Bind)},module.exports=exports.default},{"xmpp-constants":212}],60:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid");exports.default=function(JXT){var Utils=JXT.utils,jidList={get:function(){var result=[],items=Utils.find(this.xml,_xmppConstants.Namespace.BLOCKING,"item");return items.length?(items.forEach(function(item){result.push(new _xmppJid.JID(Utils.getAttribute(item,"jid","")))}),result):result},set:function(values){var self=this;values.forEach(function(value){var item=Utils.createElement(_xmppConstants.Namespace.BLOCKING,"item",_xmppConstants.Namespace.BLOCKING);Utils.setAttribute(item,"jid",value.toString()),self.xml.appendChild(item)})}},Block=JXT.define({name:"block",namespace:_xmppConstants.Namespace.BLOCKING,element:"block",fields:{jids:jidList}}),Unblock=JXT.define({name:"unblock",namespace:_xmppConstants.Namespace.BLOCKING,element:"unblock",fields:{jids:jidList}}),BlockList=JXT.define({name:"blockList",namespace:_xmppConstants.Namespace.BLOCKING,element:"blocklist",fields:{jids:jidList}});JXT.extendIQ(Block),JXT.extendIQ(Unblock),JXT.extendIQ(BlockList)},module.exports=exports.default},{"xmpp-constants":212,"xmpp-jid":218}],61:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,BOB=JXT.define({name:"bob",namespace:_xmppConstants.Namespace.BOB,element:"data",fields:{cid:Utils.attribute("cid"),maxAge:Utils.numberAttribute("max-age"),type:Utils.attribute("type"),data:Utils.text()}});JXT.extendIQ(BOB),JXT.extendMessage(BOB),JXT.extendPresence(BOB)},module.exports=exports.default},{"xmpp-constants":212}],62:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Conference=JXT.define({name:"_conference",namespace:_xmppConstants.Namespace.BOOKMARKS,element:"conference",fields:{name:Utils.attribute("name"),autoJoin:Utils.boolAttribute("autojoin"),jid:Utils.jidAttribute("jid"),nick:Utils.textSub(_xmppConstants.Namespace.BOOKMARKS,"nick")}}),Bookmarks=JXT.define({name:"bookmarks",namespace:_xmppConstants.Namespace.BOOKMARKS,element:"storage"});JXT.extend(Bookmarks,Conference,"conferences"),JXT.withDefinition("query",_xmppConstants.Namespace.PRIVATE,function(PrivateStorage){JXT.extend(PrivateStorage,Bookmarks)})},module.exports=exports.default},{"xmpp-constants":212}],63:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"bosh",namespace:_xmppConstants.Namespace.BOSH,element:"body",prefixes:{xmpp:_xmppConstants.Namespace.BOSH_XMPP},fields:{accept:Utils.attribute("accept"),ack:Utils.numberAttribute("ack"),authid:Utils.attribute("authid"),charsets:Utils.attribute("charsets"),condition:Utils.attribute("condition"),content:Utils.attribute("content"),from:Utils.jidAttribute("from",!0),hold:Utils.numberAttribute("hold"),inactivity:Utils.numberAttribute("inactivity"),key:Utils.attribute("key"),maxpause:Utils.numberAttribute("maxpause"),newKey:Utils.attribute("newkey"),pause:Utils.numberAttribute("pause"),polling:Utils.numberAttribute("polling"),resport:Utils.numberAttribute("report"),requests:Utils.numberAttribute("requests"),rid:Utils.numberAttribute("rid"),sid:Utils.attribute("sid"),stream:Utils.attribute("stream"),time:Utils.attribute("time"),to:Utils.jidAttribute("to",!0),type:Utils.attribute("type"),ver:Utils.attribute("ver"),wait:Utils.numberAttribute("wait"),uri:Utils.textSub(_xmppConstants.Namespace.BOSH,"uri"),lang:Utils.langAttribute(),version:Utils.attribute("xmpp:version","1.0"),restart:Utils.attribute("xmpp:restart"),restartLogic:Utils.boolAttribute("xmpp:restartLogic"),payload:{get:function(){for(var results=[],i=0,len=this.xml.childNodes.length;i<len;i++){var obj=JXT.build(this.xml.childNodes[i]);void 0!==obj&&results.push(obj)}return results},set:function(values){var _this=this;values.forEach(function(types){_this.xml.appendChild(types.xml)})}}}})},module.exports=exports.default},{"xmpp-constants":212}],64:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Sent=JXT.define({name:"carbonSent",eventName:"carbon:sent",namespace:_xmppConstants.Namespace.CARBONS_2,element:"sent"}),Received=JXT.define({name:"carbonReceived",eventName:"carbon:received",namespace:_xmppConstants.Namespace.CARBONS_2,element:"received"}),Private=JXT.define({name:"carbonPrivate",eventName:"carbon:private",namespace:_xmppConstants.Namespace.CARBONS_2,element:"private"}),Enable=JXT.define({name:"enableCarbons",namespace:_xmppConstants.Namespace.CARBONS_2,element:"enable"}),Disable=JXT.define({name:"disableCarbons",namespace:_xmppConstants.Namespace.CARBONS_2,element:"disable"});JXT.withDefinition("forwarded",_xmppConstants.Namespace.FORWARD_0,function(Forwarded){JXT.extend(Sent,Forwarded),JXT.extend(Received,Forwarded)}),JXT.extendMessage(Sent),JXT.extendMessage(Received),JXT.extendMessage(Private),JXT.extendIQ(Enable),JXT.extendIQ(Disable)},module.exports=exports.default},{"xmpp-constants":212}],65:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),ACTIONS=["next","prev","complete","cancel"],CONDITIONS=["bad-action","bad-locale","bad-payload","bad-sessionid","malformed-action","session-expired"];exports.default=function(JXT){var Utils=JXT.utils,Command=JXT.define({name:"command",namespace:_xmppConstants.Namespace.ADHOC_COMMANDS,element:"command",fields:{action:Utils.attribute("action"),node:Utils.attribute("node"),sessionid:Utils.attribute("sessionid"),status:Utils.attribute("status"),execute:Utils.subAttribute(_xmppConstants.Namespace.ADHOC_COMMANDS,"actions","execute"),actions:{get:function(){var result=[],actionSet=Utils.find(this.xml,_xmppConstants.Namespace.ADHOC_COMMANDS,"actions");return actionSet.length?(ACTIONS.forEach(function(action){var existing=Utils.find(actionSet[0],_xmppConstants.Namespace.ADHOC_COMMANDS,action);existing.length&&result.push(action)}),result):[]},set:function(values){for(var actionSet=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.ADHOC_COMMANDS,"actions"),i=0,len=actionSet.childNodes.length;i<len;i++)actionSet.removeChild(actionSet.childNodes[i]);values.forEach(function(value){actionSet.appendChild(Utils.createElement(_xmppConstants.Namespace.ADHOC_COMMANDS,value.toLowerCase(),_xmppConstants.Namespace.ADHOC_COMMANDS))})}}}}),Note=JXT.define({name:"_commandNote",namespace:_xmppConstants.Namespace.ADHOC_COMMANDS,
+element:"note",fields:{type:Utils.attribute("type"),value:Utils.text()}});JXT.extend(Command,Note,"notes"),JXT.extendIQ(Command),JXT.withStanzaError(function(StanzaError){JXT.add(StanzaError,"adhocCommandCondition",Utils.enumSub(_xmppConstants.Namespace.ADHOC_COMMANDS,CONDITIONS))}),JXT.withDataForm(function(DataForm){JXT.extend(Command,DataForm)})},module.exports=exports.default},{"xmpp-constants":212}],66:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var CSIFeature=JXT.define({name:"clientStateIndication",namespace:_xmppConstants.Namespace.CSI,element:"csi"});JXT.define({name:"csiActive",eventName:"csi:active",namespace:_xmppConstants.Namespace.CSI,element:"active",topLevel:!0}),JXT.define({name:"csiInactive",eventName:"csi:inactive",namespace:_xmppConstants.Namespace.CSI,element:"inactive",topLevel:!0}),JXT.extendStreamFeatures(CSIFeature)},module.exports=exports.default},{"xmpp-constants":212}],67:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid"),SINGLE_FIELDS=["text-single","text-private","list-single","jid-single"];exports.default=function(JXT){var Utils=JXT.utils,Field=JXT.define({name:"_field",namespace:_xmppConstants.Namespace.DATAFORM,element:"field",init:function(data){this._type=(data||{}).type||this.type},fields:{type:{get:function(){return Utils.getAttribute(this.xml,"type","text-single")},set:function(value){this._type=value,Utils.setAttribute(this.xml,"type",value)}},name:Utils.attribute("var"),desc:Utils.textSub(_xmppConstants.Namespace.DATAFORM,"desc"),required:Utils.boolSub(_xmppConstants.Namespace.DATAFORM,"required"),label:Utils.attribute("label"),value:{get:function(){var vals=Utils.getMultiSubText(this.xml,_xmppConstants.Namespace.DATAFORM,"value");return"boolean"===this._type?"1"===vals[0]||"true"===vals[0]:vals.length>1?"text-multi"===this._type?vals.join("\n"):"jid-multi"===this._type?vals.map(function(jid){return new _xmppJid.JID(jid)}):vals:SINGLE_FIELDS.indexOf(this._type)>=0?"jid-single"===this._type?new _xmppJid.JID(vals[0]):vals[0]:vals},set:function(value){if("boolean"===this._type||value===!0||value===!1){var truthy=value===!0||"true"===value||"1"===value,sub=Utils.createElement(_xmppConstants.Namespace.DATAFORM,"value",_xmppConstants.Namespace.DATAFORM);sub.textContent=truthy?"1":"0",this.xml.appendChild(sub)}else"text-multi"===this._type&&"string"==typeof value&&(value=value.split("\n")),Utils.setMultiSubText(this.xml,_xmppConstants.Namespace.DATAFORM,"value",value,function(val){var sub=Utils.createElement(_xmppConstants.Namespace.DATAFORM,"value",_xmppConstants.Namespace.DATAFORM);sub.textContent=val,this.xml.appendChild(sub)}.bind(this))}}}}),Option=JXT.define({name:"_formoption",namespace:_xmppConstants.Namespace.DATAFORM,element:"option",fields:{label:Utils.attribute("label"),value:Utils.textSub(_xmppConstants.Namespace.DATAFORM,"value")}}),Item=JXT.define({name:"_formitem",namespace:_xmppConstants.Namespace.DATAFORM,element:"item"}),Media=JXT.define({name:"media",element:"media",namespace:_xmppConstants.Namespace.DATAFORM_MEDIA,fields:{height:Utils.numberAttribute("height"),width:Utils.numberAttribute("width")}}),MediaURI=JXT.define({name:"_mediaURI",element:"uri",namespace:_xmppConstants.Namespace.DATAFORM_MEDIA,fields:{uri:Utils.text(),type:Utils.attribute("type")}}),Validation=JXT.define({name:"validation",element:"validate",namespace:_xmppConstants.Namespace.DATAFORM_VALIDATION,fields:{dataType:Utils.attribute("datatype"),basic:Utils.boolSub(_xmppConstants.Namespace.DATAFORM_VALIDATION,"basic"),open:Utils.boolSub(_xmppConstants.Namespace.DATAFORM_VALIDATION,"open"),regex:Utils.textSub(_xmppConstants.Namespace.DATAFORM_VALIDATION,"regex")}}),Range=JXT.define({name:"range",element:"range",namespace:_xmppConstants.Namespace.DATAFORM_VALIDATION,fields:{min:Utils.attribute("min"),max:Utils.attribute("max")}}),ListRange=JXT.define({name:"select",element:"list-range",namespace:_xmppConstants.Namespace.DATAFORM_VALIDATION,fields:{min:Utils.numberAttribute("min"),max:Utils.numberAttribute("max")}}),layoutContents={get:function(){for(var result=[],i=0,len=this.xml.childNodes.length;i<len;i++){var child=this.xml.childNodes[i];if(child.namespaceURI===_xmppConstants.Namespace.DATAFORM_LAYOUT)switch(child.localName){case"text":result.push({text:child.textContent});break;case"fieldref":result.push({field:child.getAttribute("var")});break;case"reportedref":result.push({reported:!0});break;case"section":result.push({section:new Section(null,child,this).toJSON()})}}return result},set:function(values){for(var i=0,len=values.length;i<len;i++){var value=values[i];if(value.text){var text=Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"text",_xmppConstants.Namespace.DATAFORM_LAYOUT);text.textContent=value.text,this.xml.appendChild(text)}if(value.field){var field=Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"fieldref",_xmppConstants.Namespace.DATAFORM_LAYOUT);field.setAttribute("var",value.field),this.xml.appendChild(field)}if(value.reported&&this.xml.appendChild(Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"reportedref",_xmppConstants.Namespace.DATAFORM_LAYOUT)),value.section){var sectionXML=Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"section",_xmppConstants.Namespace.DATAFORM_LAYOUT);this.xml.appendChild(sectionXML);var section=new Section(null,sectionXML);section.label=value.section.label,section.contents=value.section.contents}}}},Section=JXT.define({name:"_section",element:"section",namespace:_xmppConstants.Namespace.DATAFORM_LAYOUT,fields:{label:Utils.attribute("label"),contents:layoutContents}}),Page=JXT.define({name:"_page",element:"page",namespace:_xmppConstants.Namespace.DATAFORM_LAYOUT,fields:{label:Utils.attribute("label"),contents:layoutContents}}),DataForm=JXT.define({name:"form",namespace:_xmppConstants.Namespace.DATAFORM,element:"x",init:function(){if(this.reportedFields.length){var fieldTypes={};this.reportedFields.forEach(function(reported){fieldTypes[reported.name]=reported.type}),this.items.forEach(function(item){item.fields.forEach(function(field){field.type=field._type=fieldTypes[field.name]})})}},fields:{title:Utils.textSub(_xmppConstants.Namespace.DATAFORM,"title"),instructions:Utils.multiTextSub(_xmppConstants.Namespace.DATAFORM,"instructions"),type:Utils.attribute("type","form"),reportedFields:Utils.subMultiExtension(_xmppConstants.Namespace.DATAFORM,"reported",Field)}});JXT.extend(DataForm,Field,"fields"),JXT.extend(DataForm,Item,"items"),JXT.extend(DataForm,Page,"layout"),JXT.extend(Field,Media),JXT.extend(Field,Validation),JXT.extend(Field,Option,"options"),JXT.extend(Item,Field,"fields"),JXT.extend(Media,MediaURI,"uris"),JXT.extend(Validation,Range),JXT.extend(Validation,ListRange),JXT.extendMessage(DataForm)},module.exports=exports.default},{"xmpp-constants":212,"xmpp-jid":218}],68:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,DelayedDelivery=JXT.define({name:"delay",namespace:_xmppConstants.Namespace.DELAY,element:"delay",fields:{from:Utils.jidAttribute("from"),stamp:Utils.dateAttribute("stamp"),reason:Utils.text()}});JXT.extendMessage(DelayedDelivery),JXT.extendPresence(DelayedDelivery)},module.exports=exports.default},{"xmpp-constants":212}],69:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,DiscoCaps=JXT.define({name:"caps",namespace:_xmppConstants.Namespace.CAPS,element:"c",fields:{ver:Utils.attribute("ver"),node:Utils.attribute("node"),hash:Utils.attribute("hash"),ext:Utils.attribute("ext")}}),DiscoInfo=JXT.define({name:"discoInfo",namespace:_xmppConstants.Namespace.DISCO_INFO,element:"query",fields:{node:Utils.attribute("node"),features:Utils.multiSubAttribute(_xmppConstants.Namespace.DISCO_INFO,"feature","var")}}),DiscoIdentity=JXT.define({name:"_discoIdentity",namespace:_xmppConstants.Namespace.DISCO_INFO,element:"identity",fields:{category:Utils.attribute("category"),type:Utils.attribute("type"),name:Utils.attribute("name"),lang:Utils.langAttribute()}}),DiscoItems=JXT.define({name:"discoItems",namespace:_xmppConstants.Namespace.DISCO_ITEMS,element:"query",fields:{node:Utils.attribute("node")}}),DiscoItem=JXT.define({name:"_discoItem",namespace:_xmppConstants.Namespace.DISCO_ITEMS,element:"item",fields:{jid:Utils.jidAttribute("jid"),node:Utils.attribute("node"),name:Utils.attribute("name")}});JXT.extend(DiscoItems,DiscoItem,"items"),JXT.extend(DiscoInfo,DiscoIdentity,"identities"),JXT.extendIQ(DiscoInfo),JXT.extendIQ(DiscoItems),JXT.extendPresence(DiscoCaps),JXT.extendStreamFeatures(DiscoCaps),JXT.withDataForm(function(DataForm){JXT.extend(DiscoInfo,DataForm,"extensions")}),JXT.withDefinition("set",_xmppConstants.Namespace.RSM,function(RSM){JXT.extend(DiscoItems,RSM)})},module.exports=exports.default},{"xmpp-constants":212}],70:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["bad-request","conflict","feature-not-implemented","forbidden","gone","internal-server-error","item-not-found","jid-malformed","not-acceptable","not-allowed","not-authorized","payment-required","recipient-unavailable","redirect","registration-required","remote-server-not-found","remote-server-timeout","resource-constraint","service-unavailable","subscription-required","undefined-condition","unexpected-request"];exports.default=function(JXT){var Utils=JXT.utils,StanzaError=JXT.define({name:"error",namespace:_xmppConstants.Namespace.CLIENT,element:"error",fields:{lang:{get:function(){return(this.parent||{}).lang||""}},condition:Utils.enumSub(_xmppConstants.Namespace.STANZA_ERROR,CONDITIONS),gone:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"gone")},set:function(value){this.condition="gone",Utils.setSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"gone",value)}},redirect:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"redirect")},set:function(value){this.condition="redirect",Utils.setSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"redirect",value)}},code:Utils.attribute("code"),type:Utils.attribute("type"),by:Utils.jidAttribute("by"),$text:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"text",this.lang)}},text:{get:function(){var text=this.$text;return text[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"text",value,this.lang)}}}});JXT.extendMessage(StanzaError),JXT.extendPresence(StanzaError),JXT.extendIQ(StanzaError)},module.exports=exports.default},{"xmpp-constants":212}],71:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Services=exports.Services=JXT.define({name:"services",namespace:_xmppConstants.Namespace.DISCO_EXTERNAL_1,element:"services",fields:{type:Utils.attribute("type")}}),Credentials=exports.Credentials=JXT.define({name:"credentials",namespace:_xmppConstants.Namespace.DISCO_EXTERNAL_1,element:"credentials"}),Service=JXT.define({name:"service",namespace:_xmppConstants.Namespace.DISCO_EXTERNAL_1,element:"service",fields:{host:Utils.attribute("host"),port:Utils.attribute("port"),transport:Utils.attribute("transport"),type:Utils.attribute("type"),username:Utils.attribute("username"),password:Utils.attribute("password")}});JXT.extend(Services,Service,"services"),JXT.extend(Credentials,Service),JXT.extendIQ(Services),JXT.extendIQ(Credentials),JXT.withDataForm(function(DataForm){JXT.extend(Service,DataForm)})},module.exports=exports.default},{"xmpp-constants":212}],72:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),FT_NS=_xmppConstants.Namespace.FILE_TRANSFER_4;exports.default=function(JXT){var Utils=JXT.utils,File=JXT.define({name:"file",namespace:FT_NS,element:"file",fields:{name:Utils.textSub(FT_NS,"name"),description:Utils.textSub(FT_NS,"desc"),mediaType:Utils.textSub(FT_NS,"media-type"),size:Utils.numberSub(FT_NS,"size"),date:Utils.dateSub(FT_NS,"date")}}),Range=JXT.define({name:"range",namespace:FT_NS,element:"range",fields:{offset:Utils.numberAttribute("offset"),length:Utils.numberAttribute("length")}}),FileTransfer=JXT.define({name:"_"+FT_NS,namespace:FT_NS,element:"description",tags:["jingle-application"],fields:{applicationType:{value:FT_NS}}}),Received=JXT.define({name:"_{"+FT_NS+"}received",namespace:FT_NS,element:"received",tags:["jingle-info"],fields:{infoType:{value:"{"+FT_NS+"}received"},creator:Utils.attribute("creator"),name:Utils.attribute("name")}}),Checksum=JXT.define({name:"_{"+FT_NS+"}checksum",namespace:FT_NS,element:"checksum",tags:["jingle-info"],fields:{infoType:{value:"{"+FT_NS+"}checksum"},creator:Utils.attribute("creator"),name:Utils.attribute("name")}});JXT.extend(File,Range),JXT.extend(Checksum,File),JXT.extend(FileTransfer,File),JXT.withDefinition("hash",_xmppConstants.Namespace.HASHES_1,function(Hash){JXT.extend(File,Hash,"hashes"),JXT.extend(Range,Hash,"hashes")}),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,FileTransfer)}),JXT.withDefinition("jingle",_xmppConstants.Namespace.JINGLE_1,function(Jingle){JXT.extend(Jingle,Received),JXT.extend(Jingle,Checksum)})},module.exports=exports.default},{"xmpp-constants":212}],73:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),FT_NS=_xmppConstants.Namespace.FILE_TRANSFER_3;exports.default=function(JXT){var Utils=JXT.utils,File=JXT.define({name:"_file",namespace:FT_NS,element:"file",fields:{name:Utils.textSub(FT_NS,"name"),desc:Utils.textSub(FT_NS,"desc"),size:Utils.numberSub(FT_NS,"size"),date:Utils.dateSub(FT_NS,"date")}}),Range=JXT.define({name:"range",namespace:FT_NS,element:"range",fields:{offset:Utils.numberAttribute("offset")}}),Thumbnail=JXT.define({name:"thumbnail",namespace:_xmppConstants.Namespace.THUMBS_0,element:"thumbnail",fields:{cid:Utils.attribute("cid"),mimeType:Utils.attribute("mime-type"),width:Utils.numberAttribute("width"),height:Utils.numberAttribute("height")}}),FileTransfer=JXT.define({name:"_filetransfer",namespace:FT_NS,element:"description",tags:["jingle-application"],fields:{applicationType:{value:"filetransfer"},offer:Utils.subExtension("offer",FT_NS,"offer",File),request:Utils.subExtension("request",FT_NS,"request",File)}});JXT.extend(File,Range),JXT.extend(File,Thumbnail),JXT.withDefinition("hash",_xmppConstants.Namespace.HASHES_1,function(Hash){JXT.extend(File,Hash,"hashes")}),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,FileTransfer)})},module.exports=exports.default},{"xmpp-constants":212}],74:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Forwarded=JXT.define({name:"forwarded",namespace:_xmppConstants.Namespace.FORWARD_0,element:"forwarded"});JXT.withMessage(function(Message){JXT.extend(Message,Forwarded),JXT.extend(Forwarded,Message)}),JXT.withPresence(function(Presence){JXT.extend(Presence,Forwarded),JXT.extend(Forwarded,Presence)}),JXT.withIQ(function(IQ){JXT.extend(IQ,Forwarded),JXT.extend(Forwarded,IQ)}),JXT.withDefinition("delay",_xmppConstants.Namespace.DELAY,function(Delayed){JXT.extend(Forwarded,Delayed)})},module.exports=exports.default},{"xmpp-constants":212}],75:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"openStream",namespace:_xmppConstants.Namespace.FRAMING,element:"open",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),version:Utils.attribute("version","1.0"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0)}}),JXT.define({name:"closeStream",namespace:_xmppConstants.Namespace.FRAMING,element:"close",topLevel:!0,fields:{seeOtherURI:Utils.attribute("see-other-uri")}})},module.exports=exports.default},{"xmpp-constants":212}],76:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,GeoLoc=JXT.define({name:"geoloc",namespace:_xmppConstants.Namespace.GEOLOC,element:"geoloc",fields:{accuracy:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"accuracy",!0),altitude:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"alt",!0),area:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"area"),heading:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"bearing",!0),bearing:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"bearing",!0),building:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"building"),country:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"country"),countrycode:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"countrycode"),datum:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"datum"),description:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"description"),error:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"error",!0),floor:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"floor"),latitude:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"lat",!0),locality:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"locality"),longitude:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"lon",!0),postalcode:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"postalcode"),region:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"region"),room:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"room"),speed:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"speed",!0),street:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"street"),text:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"text"),timestamp:Utils.dateSub(_xmppConstants.Namespace.GEOLOC,"timestamp"),tzo:Utils.tzoSub(_xmppConstants.Namespace.GEOLOC,"tzo"),uri:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"uri")}});JXT.extendPubsubItem(GeoLoc)},module.exports=exports.default},{"xmpp-constants":212}],77:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){JXT.define({name:"hash",namespace:_xmppConstants.Namespace.HASHES_1,element:"hash",fields:{algo:JXT.utils.attribute("algo"),value:JXT.utils.text()}})},module.exports=exports.default},{"xmpp-constants":212}],78:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Hat=JXT.define({name:"_hat",namespace:_xmppConstants.Namespace.HATS_0,element:"hat",fields:{lang:JXT.utils.langAttribute(),name:JXT.utils.attribute("name"),displayName:JXT.utils.attribute("displayName")}});JXT.withPresence(function(Presence){JXT.add(Presence,"hats",JXT.utils.subMultiExtension(_xmppConstants.Namespace.HATS_0,"hats",Hat))})},module.exports=exports.default},{"xmpp-constants":212}],79:[function(require,module,exports){(function(Buffer){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),NS_IBB="http://jabber.org/protocol/ibb",NS_JIBB="urn:xmpp:jingle:transports:ibb:1";exports.default=function(JXT){var Utils=JXT.utils,IBB={get:function(){var data=Utils.find(this.xml,NS_IBB,"data");if(data.length)return data=data[0],{action:"data",sid:Utils.getAttribute(data,"sid"),seq:parseInt(Utils.getAttribute(data,"seq")||"0",10),data:new Buffer(Utils.getText(data),"base64")};var open=Utils.find(this.xml,NS_IBB,"open");if(open.length){open=open[0];var ack=Utils.getAttribute(open,"stanza");return ack="message"!==ack,{action:"open",sid:Utils.getAttribute(open,"sid"),blockSize:Utils.getAttribute(open,"block-size"),ack:ack}}var close=Utils.find(this.xml,NS_IBB,"close");return close.length?{action:"close",sid:Utils.getAttribute(close[0],"sid")}:void 0},set:function(value){if("data"===value.action){var data=Utils.createElement(NS_IBB,"data");Utils.setAttribute(data,"sid",value.sid),Utils.setAttribute(data,"seq",value.seq.toString()),Utils.setText(data,value.data.toString("base64")),this.xml.appendChild(data)}if("open"===value.action){var _open=Utils.createElement(NS_IBB,"open");Utils.setAttribute(_open,"sid",value.sid),Utils.setAttribute(_open,"block-size",(value.blockSize||"4096").toString()),value.ack===!1?Utils.setAttribute(_open,"stanza","message"):Utils.setAttribute(_open,"stanza","iq"),this.xml.appendChild(_open)}if("close"===value.action){var _close=Utils.createElement(NS_IBB,"close");Utils.setAttribute(_close,"sid",value.sid),this.xml.appendChild(_close)}}},JingleIBB=JXT.define({name:"_"+NS_JIBB,namespace:NS_JIBB,element:"transport",tags:["jingle-transport"],fields:{transportType:{value:NS_JIBB},sid:Utils.attribute("sid"),blockSize:Utils.numberAttribute("block-size"),ack:{get:function(){var value=Utils.getAttribute(this.xml,"stanza");return"message"!==value},set:function(value){value.ack===!1?Utils.setAttribute(this.xml,"stanza","message"):Utils.setAttribute(this.xml,"stanza","iq")}}}});JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,JingleIBB)}),JXT.withIQ(function(IQ){JXT.add(IQ,"ibb",IBB)}),JXT.withMessage(function(Message){JXT.add(Message,"ibb",IBB)})},module.exports=exports.default}).call(this,require("buffer").Buffer)},{buffer:6,"xmpp-constants":212}],80:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,ICE=JXT.define({name:"_iceUdp",namespace:_xmppConstants.Namespace.JINGLE_ICE_UDP_1,element:"transport",tags:["jingle-transport"],fields:{transportType:{value:"iceUdp"},pwd:Utils.attribute("pwd"),ufrag:Utils.attribute("ufrag")}}),RemoteCandidate=JXT.define({name:"remoteCandidate",namespace:_xmppConstants.Namespace.JINGLE_ICE_UDP_1,element:"remote-candidate",fields:{component:Utils.attribute("component"),ip:Utils.attribute("ip"),port:Utils.attribute("port")}}),Candidate=JXT.define({name:"_iceUdpCandidate",namespace:_xmppConstants.Namespace.JINGLE_ICE_UDP_1,element:"candidate",fields:{component:Utils.attribute("component"),foundation:Utils.attribute("foundation"),generation:Utils.attribute("generation"),id:Utils.attribute("id"),ip:Utils.attribute("ip"),network:Utils.attribute("network"),port:Utils.attribute("port"),priority:Utils.attribute("priority"),protocol:Utils.attribute("protocol"),relAddr:Utils.attribute("rel-addr"),relPort:Utils.attribute("rel-port"),tcpType:Utils.attribute("tcptype"),type:Utils.attribute("type")}}),Fingerprint=JXT.define({name:"_iceFingerprint",namespace:_xmppConstants.Namespace.JINGLE_DTLS_0,element:"fingerprint",fields:{hash:Utils.attribute("hash"),setup:Utils.attribute("setup"),value:Utils.text(),required:Utils.boolAttribute("required")}}),SctpMap=JXT.define({name:"_sctpMap",namespace:_xmppConstants.Namespace.DTLS_SCTP_1,element:"sctpmap",fields:{number:Utils.attribute("number"),protocol:Utils.attribute("protocol"),streams:Utils.attribute("streams")}});JXT.extend(ICE,Candidate,"candidates"),JXT.extend(ICE,RemoteCandidate),JXT.extend(ICE,Fingerprint,"fingerprints"),JXT.extend(ICE,SctpMap,"sctp"),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,ICE)})},module.exports=exports.default},{"xmpp-constants":212}],81:[function(require,module,exports){"use strict";var _interopRequireDefault=require("babel-runtime/helpers/interop-require-default").default;Object.defineProperty(exports,"__esModule",{value:!0});var _addresses=require("./addresses"),_addresses2=_interopRequireDefault(_addresses),_avatar=require("./avatar"),_avatar2=_interopRequireDefault(_avatar),_bind=require("./bind"),_bind2=_interopRequireDefault(_bind),_blocking=require("./blocking"),_blocking2=_interopRequireDefault(_blocking),_bob=require("./bob"),_bob2=_interopRequireDefault(_bob),_bookmarks=require("./bookmarks"),_bookmarks2=_interopRequireDefault(_bookmarks),_bosh=require("./bosh"),_bosh2=_interopRequireDefault(_bosh),_carbons=require("./carbons"),_carbons2=_interopRequireDefault(_carbons),_command=require("./command"),_command2=_interopRequireDefault(_command),_csi=require("./csi"),_csi2=_interopRequireDefault(_csi),_dataforms=require("./dataforms"),_dataforms2=_interopRequireDefault(_dataforms),_delayed=require("./delayed"),_delayed2=_interopRequireDefault(_delayed),_disco=require("./disco"),_disco2=_interopRequireDefault(_disco),_error=require("./error"),_error2=_interopRequireDefault(_error),_extdisco=require("./extdisco"),_extdisco2=_interopRequireDefault(_extdisco),_file=require("./file"),_file2=_interopRequireDefault(_file),_file3=require("./file3"),_file32=_interopRequireDefault(_file3),_forwarded=require("./forwarded"),_forwarded2=_interopRequireDefault(_forwarded),_framing=require("./framing"),_framing2=_interopRequireDefault(_framing),_geoloc=require("./geoloc"),_geoloc2=_interopRequireDefault(_geoloc),_hash=require("./hash"),_hash2=_interopRequireDefault(_hash),_hats=require("./hats"),_hats2=_interopRequireDefault(_hats),_iceUdp=require("./iceUdp"),_iceUdp2=_interopRequireDefault(_iceUdp),_ibb=require("./ibb"),_ibb2=_interopRequireDefault(_ibb),_iq=require("./iq"),_iq2=_interopRequireDefault(_iq),_jidprep=require("./jidprep"),_jidprep2=_interopRequireDefault(_jidprep),_jingle=require("./jingle"),_jingle2=_interopRequireDefault(_jingle),_json=require("./json"),_json2=_interopRequireDefault(_json),_logging=require("./logging"),_logging2=_interopRequireDefault(_logging),_mam=require("./mam"),_mam2=_interopRequireDefault(_mam),_message=require("./message"),_message2=_interopRequireDefault(_message),_mood=require("./mood"),_mood2=_interopRequireDefault(_mood),_muc=require("./muc"),_muc2=_interopRequireDefault(_muc),_nick=require("./nick"),_nick2=_interopRequireDefault(_nick),_oob=require("./oob"),_oob2=_interopRequireDefault(_oob),_ping=require("./ping"),_ping2=_interopRequireDefault(_ping),_presence=require("./presence"),_presence2=_interopRequireDefault(_presence),_private=require("./private"),_private2=_interopRequireDefault(_private),_psa=require("./psa"),_psa2=_interopRequireDefault(_psa),_pubsub=require("./pubsub"),_pubsub2=_interopRequireDefault(_pubsub),_pubsubError=require("./pubsubError"),_pubsubError2=_interopRequireDefault(_pubsubError),_pubsubEvents=require("./pubsubEvents"),_pubsubEvents2=_interopRequireDefault(_pubsubEvents),_pubsubOwner=require("./pubsubOwner"),_pubsubOwner2=_interopRequireDefault(_pubsubOwner),_push=require("./push"),_push2=_interopRequireDefault(_push),_reach=require("./reach"),_reach2=_interopRequireDefault(_reach),_register=require("./register"),_register2=_interopRequireDefault(_register),_roster=require("./roster"),_roster2=_interopRequireDefault(_roster),_rsm=require("./rsm"),_rsm2=_interopRequireDefault(_rsm),_rtp=require("./rtp"),_rtp2=_interopRequireDefault(_rtp),_rtt=require("./rtt"),_rtt2=_interopRequireDefault(_rtt),_sasl=require("./sasl"),_sasl2=_interopRequireDefault(_sasl),_session=require("./session"),_session2=_interopRequireDefault(_session),_shim=require("./shim"),_shim2=_interopRequireDefault(_shim),_sm=require("./sm"),_sm2=_interopRequireDefault(_sm),_stream=require("./stream"),_stream2=_interopRequireDefault(_stream),_streamError=require("./streamError"),_streamError2=_interopRequireDefault(_streamError),_streamFeatures=require("./streamFeatures"),_streamFeatures2=_interopRequireDefault(_streamFeatures),_time=require("./time"),_time2=_interopRequireDefault(_time),_tune=require("./tune"),_tune2=_interopRequireDefault(_tune),_vcard=require("./vcard"),_vcard2=_interopRequireDefault(_vcard),_version=require("./version"),_version2=_interopRequireDefault(_version),_visibility=require("./visibility"),_visibility2=_interopRequireDefault(_visibility);exports.default=function(JXT){JXT.use(_addresses2.default),JXT.use(_avatar2.default),JXT.use(_bind2.default),JXT.use(_blocking2.default),JXT.use(_bob2.default),JXT.use(_bookmarks2.default),JXT.use(_bosh2.default),JXT.use(_carbons2.default),JXT.use(_command2.default),JXT.use(_csi2.default),JXT.use(_dataforms2.default),JXT.use(_delayed2.default),JXT.use(_disco2.default),JXT.use(_error2.default),JXT.use(_extdisco2.default),JXT.use(_file2.default),JXT.use(_file32.default),JXT.use(_forwarded2.default),JXT.use(_framing2.default),JXT.use(_geoloc2.default),JXT.use(_hash2.default),JXT.use(_hats2.default),JXT.use(_iceUdp2.default),JXT.use(_ibb2.default),JXT.use(_iq2.default),JXT.use(_jidprep2.default),JXT.use(_jingle2.default),JXT.use(_json2.default),JXT.use(_logging2.default),JXT.use(_mam2.default),JXT.use(_message2.default),JXT.use(_mood2.default),JXT.use(_muc2.default),JXT.use(_nick2.default),JXT.use(_oob2.default),JXT.use(_ping2.default),JXT.use(_presence2.default),JXT.use(_private2.default),JXT.use(_psa2.default),JXT.use(_pubsub2.default),JXT.use(_pubsubError2.default),JXT.use(_pubsubEvents2.default),JXT.use(_pubsubOwner2.default),JXT.use(_push2.default),JXT.use(_reach2.default),JXT.use(_register2.default),JXT.use(_roster2.default),JXT.use(_rsm2.default),JXT.use(_rtp2.default),JXT.use(_rtt2.default),JXT.use(_sasl2.default),JXT.use(_session2.default),JXT.use(_shim2.default),JXT.use(_sm2.default),JXT.use(_stream2.default),JXT.use(_streamError2.default),JXT.use(_streamFeatures2.default),JXT.use(_time2.default),JXT.use(_tune2.default),JXT.use(_vcard2.default),JXT.use(_version2.default),JXT.use(_visibility2.default)},module.exports=exports.default},{"./addresses":57,"./avatar":58,"./bind":59,"./blocking":60,"./bob":61,"./bookmarks":62,"./bosh":63,"./carbons":64,"./command":65,"./csi":66,"./dataforms":67,"./delayed":68,"./disco":69,"./error":70,"./extdisco":71,"./file":72,"./file3":73,"./forwarded":74,"./framing":75,"./geoloc":76,"./hash":77,"./hats":78,"./ibb":79,"./iceUdp":80,"./iq":82,"./jidprep":83,"./jingle":84,"./json":85,"./logging":86,"./mam":87,"./message":88,"./mood":89,"./muc":90,"./nick":91,"./oob":92,"./ping":93,"./presence":94,"./private":95,"./psa":96,"./pubsub":97,"./pubsubError":98,"./pubsubEvents":99,"./pubsubOwner":100,"./push":101,"./reach":102,"./register":103,"./roster":104,"./rsm":105,"./rtp":106,"./rtt":107,"./sasl":108,"./session":109,"./shim":110,"./sm":111,"./stream":112,"./streamError":113,"./streamFeatures":114,"./time":115,"./tune":116,"./vcard":117,"./version":118,"./visibility":119,"babel-runtime/helpers/interop-require-default":2}],82:[function(require,module,exports){"use strict";var _Object$assign=require("babel-runtime/core-js/object/assign").default;Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),internals={};internals.defineIQ=function(JXT,name,namespace){var Utils=JXT.utils,IQ=JXT.define({name:name,namespace:namespace,element:"iq",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0),type:Utils.attribute("type")}}),_toJSON=IQ.prototype.toJSON;_Object$assign(IQ.prototype,{toJSON:function(){var result=_toJSON.call(this);return result.resultReply=this.resultReply,result.errorReply=this.errorReply,result},resultReply:function(data){return data=data||{},data.to=this.from,data.id=this.id,
+data.type="result",new IQ(data)},errorReply:function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="error",new IQ(data)}})},exports.default=function(JXT){internals.defineIQ(JXT,"iq",_xmppConstants.Namespace.CLIENT),internals.defineIQ(JXT,"serverIQ",_xmppConstants.Namespace.SERVER),internals.defineIQ(JXT,"componentIQ",_xmppConstants.Namespace.COMPONENT)},module.exports=exports.default},{"babel-runtime/core-js/object/assign":1,"xmpp-constants":212}],83:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid");exports.default=function(JXT){JXT.withIQ(function(IQ){JXT.add(IQ,"jidPrep",{get:function(){var data=JXT.utils.getSubText(this.xml,_xmppConstants.Namespace.JID_PREP_0,"jid");if(data){var jid=new _xmppJid.JID(data);return jid.prepped=!0,jid}},set:function(value){JXT.utils.setSubText(this.xml,_xmppConstants.Namespace.JID_PREP_0,"jid",(value||"").toString())}})})},module.exports=exports.default},{"xmpp-constants":212,"xmpp-jid":218}],84:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["out-of-order","tie-break","unknown-session","unsupported-info"],REASONS=["alternative-session","busy","cancel","connectivity-error","decline","expired","failed-application","failed-transport","general-error","gone","incompatible-parameters","media-error","security-error","success","timeout","unsupported-applications","unsupported-transports"];exports.default=function(JXT){var Utils=JXT.utils,Jingle=JXT.define({name:"jingle",namespace:_xmppConstants.Namespace.JINGLE_1,element:"jingle",fields:{action:Utils.attribute("action"),initiator:Utils.attribute("initiator"),responder:Utils.attribute("responder"),sid:Utils.attribute("sid"),info:{get:function(){for(var opts=JXT.tagged("jingle-info").map(function(Info){return Info.prototype._name}),i=0,len=opts.length;i<len;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]];if("session-info"===Utils.getAttribute(this.xml,"action"))return 0===this.xml.children.length?{infoType:"ping"}:{infoType:"unknown"}},set:function(value){if("ping"!==value.infoType){var ext="_"+value.infoType;this[ext]=value}}}}}),Content=JXT.define({name:"_jingleContent",namespace:_xmppConstants.Namespace.JINGLE_1,element:"content",fields:{creator:Utils.attribute("creator"),disposition:Utils.attribute("disposition","session"),name:Utils.attribute("name"),senders:Utils.attribute("senders","both"),application:{get:function(){for(var opts=JXT.tagged("jingle-application").map(function(Description){return Description.prototype._name}),i=0,len=opts.length;i<len;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.applicationType;this[ext]=value}},transport:{get:function(){for(var opts=JXT.tagged("jingle-transport").map(function(Transport){return Transport.prototype._name}),i=0,len=opts.length;i<len;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.transportType;this[ext]=value}},security:{get:function(){for(var opts=JXT.tagged("jingle-security").map(function(Info){return Security.prototype._name}),i=0,len=opts.length;i<len;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.securityType;this[ext]=value}}}}),Reason=JXT.define({name:"reason",namespace:_xmppConstants.Namespace.JINGLE_1,element:"reason",fields:{condition:Utils.enumSub(_xmppConstants.Namespace.JINGLE_1,REASONS),alternativeSession:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.JINGLE_1,"alternative-session")},set:function(value){this.condition="alternative-session",Utils.setSubText(this.xml,_xmppConstants.Namespace.JINGLE_1,"alternative-session",value)}},text:Utils.textSub(_xmppConstants.Namespace.JINGLE_1,"text")}});JXT.extend(Jingle,Content,"contents"),JXT.extend(Jingle,Reason),JXT.extendIQ(Jingle),JXT.withStanzaError(function(StanzaError){JXT.add(StanzaError,"jingleCondition",Utils.enumSub(_xmppConstants.Namespace.JINGLE_ERRORS_1,CONDITIONS))})},module.exports=exports.default},{"xmpp-constants":212}],85:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var JSONExtension={get:function(){var data=JXT.utils.getSubText(this.xml,_xmppConstants.Namespace.JSON_0,"json");if(data)return JSON.parse(data)},set:function(value){value=JSON.stringify(value),value&&JXT.utils.setSubText(this.xml,_xmppConstants.Namespace.JSON_0,"json",value)}};JXT.withMessage(function(Message){JXT.add(Message,"json",JSONExtension)}),JXT.withPubsubItem(function(Item){JXT.add(Item,"json",JSONExtension)})},module.exports=exports.default},{"xmpp-constants":212}],86:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Log=JXT.define({name:"log",namespace:_xmppConstants.Namespace.EVENTLOG,element:"log",fields:{id:Utils.attribute("id"),timestamp:Utils.dateAttribute("timestamp"),type:Utils.attribute("type"),level:Utils.attribute("level"),object:Utils.attribute("object"),subject:Utils.attribute("subject"),facility:Utils.attribute("facility"),module:Utils.attribute("module"),message:Utils.textSub(_xmppConstants.Namespace.EVENTLOG,"message"),stackTrace:Utils.textSub(_xmppConstants.Namespace.EVENTLOG,"stackTrace")}}),Tag=JXT.define({name:"_logtag",namespace:_xmppConstants.Namespace.EVENTLOG,element:"tag",fields:{name:Utils.attribute("name"),value:Utils.attribute("value"),type:Utils.attribute("type")}});JXT.extend(Log,Tag,"tags"),JXT.extendMessage(Log),JXT.extendPubsubItem(Log)},module.exports=exports.default},{"xmpp-constants":212}],87:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid");exports.default=function(JXT){var Utils=JXT.utils,MAMQuery=JXT.define({name:"mam",namespace:_xmppConstants.Namespace.MAM_0,element:"query",fields:{queryid:Utils.attribute("queryid")}}),Result=JXT.define({name:"mamItem",namespace:_xmppConstants.Namespace.MAM_0,element:"result",fields:{queryid:Utils.attribute("queryid"),id:Utils.attribute("id")}}),Fin=JXT.define({name:"mamResult",namespace:_xmppConstants.Namespace.MAM_0,element:"fin",fields:{queryid:Utils.attribute("queryid"),complete:Utils.boolAttribute("complete"),stable:Utils.boolAttribute("stable")}}),Prefs=JXT.define({name:"mamPrefs",namespace:_xmppConstants.Namespace.MAM_0,element:"prefs",fields:{defaultCondition:Utils.attribute("default"),always:{get:function(){var results=[],container=Utils.find(this.xml,_xmppConstants.Namespace.MAM_0,"always");if(0===container.length)return results;container=container[0];var jids=Utils.getMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid");return jids.forEach(function(jid){results.push(new _xmppJid.JID(jid.textContent))}),results},set:function(value){if(value.length>0){var container=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.MAM_0,"always");Utils.setMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid",value)}}},never:{get:function(){var results=[],container=Utils.find(this.xml,_xmppConstants.Namespace.MAM_0,"always");if(0===container.length)return results;container=container[0];var jids=Utils.getMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid");return jids.forEach(function(jid){results.push(new _xmppJid.JID(jid.textContent))}),results},set:function(value){if(value.length>0){var container=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.MAM_0,"never");Utils.setMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid",value)}}}}});JXT.extendMessage(Result),JXT.extendMessage(Fin),JXT.extendIQ(MAMQuery),JXT.extendIQ(Prefs),JXT.withDataForm(function(DataForm){JXT.extend(MAMQuery,DataForm)}),JXT.withDefinition("forwarded",_xmppConstants.Namespace.FORWARD_0,function(Forwarded){JXT.extend(Result,Forwarded)}),JXT.withDefinition("set",_xmppConstants.Namespace.RSM,function(RSM){JXT.extend(MAMQuery,RSM),JXT.extend(Fin,RSM)})},module.exports=exports.default},{"xmpp-constants":212,"xmpp-jid":218}],88:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),internals={};internals.defineMessage=function(JXT,name,namespace){var Utils=JXT.utils;JXT.define({name:name,namespace:namespace,element:"message",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0),type:Utils.attribute("type","normal"),thread:Utils.textSub(namespace,"thread"),parentThread:Utils.subAttribute(namespace,"thread","parent"),subject:Utils.textSub(namespace,"subject"),$body:{get:function(){return Utils.getSubLangText(this.xml,namespace,"body",this.lang)}},body:{get:function(){var bodies=this.$body;return bodies[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,namespace,"body",value,this.lang)}},attention:Utils.boolSub(_xmppConstants.Namespace.ATTENTION_0,"attention"),chatState:Utils.enumSub(_xmppConstants.Namespace.CHAT_STATES,["active","composing","paused","inactive","gone"]),replace:Utils.subAttribute(_xmppConstants.Namespace.CORRECTION_0,"replace","id"),requestReceipt:Utils.boolSub(_xmppConstants.Namespace.RECEIPTS,"request"),receipt:Utils.subAttribute(_xmppConstants.Namespace.RECEIPTS,"received","id")}})},exports.default=function(JXT){internals.defineMessage(JXT,"message",_xmppConstants.Namespace.CLIENT),internals.defineMessage(JXT,"serverMessage",_xmppConstants.Namespace.SERVER),internals.defineMessage(JXT,"componentMessage",_xmppConstants.Namespace.COMPONENT)},module.exports=exports.default},{"xmpp-constants":212}],89:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),MOODS=["afraid","amazed","amorous","angry","annoyed","anxious","aroused","ashamed","bored","brave","calm","cautious","cold","confident","confused","contemplative","contented","cranky","crazy","creative","curious","dejected","depressed","disappointed","disgusted","dismayed","distracted","embarrassed","envious","excited","flirtatious","frustrated","grateful","grieving","grumpy","guilty","happy","hopeful","hot","humbled","humiliated","hungry","hurt","impressed","in_awe","in_love","indignant","interested","intoxicated","invincible","jealous","lonely","lucky","mean","moody","nervous","neutral","offended","outraged","playful","proud","relaxed","relieved","remorseful","restless","sad","sarcastic","serious","shocked","shy","sick","sleepy","spontaneous","stressed","strong","surprised","thankful","thirsty","tired","undefined","weak","worried"];exports.default=function(JXT){var Mood=JXT.define({name:"mood",namespace:_xmppConstants.Namespace.MOOD,element:"mood",fields:{text:JXT.utils.textSub(_xmppConstants.Namespace.MOOD,"text"),value:JXT.utils.enumSub(_xmppConstants.Namespace.MOOD,MOODS)}});JXT.extendMessage(Mood),JXT.extendPubsubItem(Mood)},module.exports=exports.default},{"xmpp-constants":212}],90:[function(require,module,exports){"use strict";function proxy(child,field){return{get:function(){if(this._extensions[child])return this[child][field]},set:function(value){this[child][field]=value}}}Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,UserItem=JXT.define({name:"_mucUserItem",namespace:_xmppConstants.Namespace.MUC_USER,element:"item",fields:{affiliation:Utils.attribute("affiliation"),nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid"),role:Utils.attribute("role"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason")}}),UserActor=JXT.define({name:"_mucUserActor",namespace:_xmppConstants.Namespace.MUC_USER,element:"actor",fields:{nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid")}}),Destroyed=JXT.define({name:"destroyed",namespace:_xmppConstants.Namespace.MUC_USER,element:"destroy",fields:{jid:Utils.jidAttribute("jid"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason")}}),Invite=JXT.define({name:"invite",namespace:_xmppConstants.Namespace.MUC_USER,element:"invite",fields:{to:Utils.jidAttribute("to"),from:Utils.jidAttribute("from"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason"),thread:Utils.subAttribute(_xmppConstants.Namespace.MUC_USER,"continue","thread"),continue:Utils.boolSub(_xmppConstants.Namespace.MUC_USER,"continue")}}),Decline=JXT.define({name:"decline",namespace:_xmppConstants.Namespace.MUC_USER,element:"decline",fields:{to:Utils.jidAttribute("to"),from:Utils.jidAttribute("from"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason")}}),AdminItem=JXT.define({name:"_mucAdminItem",namespace:_xmppConstants.Namespace.MUC_ADMIN,element:"item",fields:{affiliation:Utils.attribute("affiliation"),nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid"),role:Utils.attribute("role"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_ADMIN,"reason")}}),AdminActor=JXT.define({name:"actor",namespace:_xmppConstants.Namespace.MUC_USER,element:"actor",fields:{nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid")}}),Destroy=JXT.define({name:"destroy",namespace:_xmppConstants.Namespace.MUC_OWNER,element:"destroy",fields:{jid:Utils.jidAttribute("jid"),password:Utils.textSub(_xmppConstants.Namespace.MUC_OWNER,"password"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_OWNER,"reason")}}),MUC=JXT.define({name:"muc",namespace:_xmppConstants.Namespace.MUC_USER,element:"x",fields:{affiliation:proxy("_mucUserItem","affiliation"),nick:proxy("_mucUserItem","nick"),jid:proxy("_mucUserItem","jid"),role:proxy("_mucUserItem","role"),actor:proxy("_mucUserItem","_mucUserActor"),reason:proxy("_mucUserItem","reason"),password:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"password"),codes:{get:function(){return Utils.getMultiSubText(this.xml,_xmppConstants.Namespace.MUC_USER,"status",function(sub){return Utils.getAttribute(sub,"code")})},set:function(value){var self=this;Utils.setMultiSubText(this.xml,_xmppConstants.Namespace.MUC_USER,"status",value,function(val){var child=Utils.createElement(_xmppConstants.Namespace.MUC_USER,"status",_xmppConstants.Namespace.MUC_USER);Utils.setAttribute(child,"code",val),self.xml.appendChild(child)})}}}}),MUCAdmin=JXT.define({name:"mucAdmin",namespace:_xmppConstants.Namespace.MUC_ADMIN,element:"query",fields:{affiliation:proxy("_mucAdminItem","affiliation"),nick:proxy("_mucAdminItem","nick"),jid:proxy("_mucAdminItem","jid"),role:proxy("_mucAdminItem","role"),actor:proxy("_mucAdminItem","_mucAdminActor"),reason:proxy("_mucAdminItem","reason")}}),MUCOwner=JXT.define({name:"mucOwner",namespace:_xmppConstants.Namespace.MUC_OWNER,element:"query"}),MUCJoin=JXT.define({name:"joinMuc",namespace:_xmppConstants.Namespace.MUC,element:"x",fields:{password:Utils.textSub(_xmppConstants.Namespace.MUC,"password"),history:{get:function(){var result={},hist=Utils.find(this.xml,_xmppConstants.Namespace.MUC,"history");if(!hist.length)return{};hist=hist[0];var maxchars=hist.getAttribute("maxchars")||"",maxstanzas=hist.getAttribute("maxstanzas")||"",seconds=hist.getAttribute("seconds")||"",since=hist.getAttribute("since")||"";maxchars&&(result.maxchars=parseInt(maxchars,10)),maxstanzas&&(result.maxstanzas=parseInt(maxstanzas,10)),seconds&&(result.seconds=parseInt(seconds,10)),since&&(result.since=new Date(since))},set:function(opts){var existing=Utils.find(this.xml,_xmppConstants.Namespace.MUC,"history");if(existing.length)for(var i=0;i<existing.length;i++)this.xml.removeChild(existing[i]);var hist=Utils.createElement(_xmppConstants.Namespace.MUC,"history",_xmppConstants.Namespace.MUC);this.xml.appendChild(hist),opts.maxchars&&hist.setAttribute("maxchars",""+opts.maxchars),opts.maxstanzas&&hist.setAttribute("maxstanzas",""+opts.maxstanzas),opts.seconds&&hist.setAttribute("seconds",""+opts.seconds),opts.since&&hist.setAttribute("since",opts.since.toISOString())}}}}),DirectInvite=JXT.define({name:"mucInvite",namespace:_xmppConstants.Namespace.MUC_DIRECT_INVITE,element:"x",fields:{jid:Utils.jidAttribute("jid"),password:Utils.attribute("password"),reason:Utils.attribute("reason"),thread:Utils.attribute("thread"),continue:Utils.boolAttribute("continue")}});JXT.extend(UserItem,UserActor),JXT.extend(MUC,UserItem),JXT.extend(MUC,Invite,"invites"),JXT.extend(MUC,Decline),JXT.extend(MUC,Destroyed),JXT.extend(AdminItem,AdminActor),JXT.extend(MUCAdmin,AdminItem,"items"),JXT.extend(MUCOwner,Destroy),JXT.extendPresence(MUC),JXT.extendPresence(MUCJoin),JXT.extendMessage(MUC),JXT.extendMessage(DirectInvite),JXT.withIQ(function(IQ){JXT.add(IQ,"mucUnique",Utils.textSub(_xmppConstants.Namespace.MUC_UNIQUE,"unique")),JXT.extend(IQ,MUCAdmin),JXT.extend(IQ,MUCOwner)}),JXT.withDataForm(function(DataForm){JXT.extend(MUCOwner,DataForm)})},module.exports=exports.default},{"xmpp-constants":212}],91:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var nick=JXT.utils.textSub(_xmppConstants.Namespace.NICK,"nick");JXT.withPubsubItem(function(Item){JXT.add(Item,"nick",nick)}),JXT.withPresence(function(Presence){JXT.add(Presence,"nick",nick)}),JXT.withMessage(function(Message){JXT.add(Message,"nick",nick)})},module.exports=exports.default},{"xmpp-constants":212}],92:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var OOB=JXT.define({name:"oob",element:"x",namespace:_xmppConstants.Namespace.OOB,fields:{url:JXT.utils.textSub(_xmppConstants.Namespace.OOB,"url"),desc:JXT.utils.textSub(_xmppConstants.Namespace.OOB,"desc")}});JXT.extendMessage(OOB,"oobURIs")},module.exports=exports.default},{"xmpp-constants":212}],93:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Ping=JXT.define({name:"ping",namespace:_xmppConstants.Namespace.PING,element:"ping"});JXT.extendIQ(Ping)},module.exports=exports.default},{"xmpp-constants":212}],94:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),internals={};internals.definePresence=function(JXT,name,namespace){var Utils=JXT.utils;JXT.define({name:name,namespace:namespace,element:"presence",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0),priority:Utils.numberSub(namespace,"priority",!1,0),show:Utils.textSub(namespace,"show"),type:{get:function(){return Utils.getAttribute(this.xml,"type","available")},set:function(value){"available"===value&&(value=!1),Utils.setAttribute(this.xml,"type",value)}},$status:{get:function(){return Utils.getSubLangText(this.xml,namespace,"status",this.lang)}},status:{get:function(){var statuses=this.$status;return statuses[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,namespace,"status",value,this.lang)}},idleSince:Utils.dateSubAttribute(_xmppConstants.Namespace.IDLE_1,"idle","since"),decloak:Utils.subAttribute(_xmppConstants.Namespace.DECLOAK_0,"decloak","reason"),avatarId:{get:function(){var update=Utils.find(this.xml,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"x");return update.length?Utils.getSubText(update[0],_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"photo"):""},set:function(value){var update=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"x");if(""===value)Utils.setBoolSub(update,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"photo",!0);else{if(value===!0)return;value?Utils.setSubText(update,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"photo",value):this.xml.removeChild(update)}}}}})},exports.default=function(JXT){internals.definePresence(JXT,"presence",_xmppConstants.Namespace.CLIENT),internals.definePresence(JXT,"serverPresence",_xmppConstants.Namespace.SERVER),internals.definePresence(JXT,"componentPresence",_xmppConstants.Namespace.COMPONENT)},module.exports=exports.default},{"xmpp-constants":212}],95:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var PrivateStorage=JXT.define({name:"privateStorage",namespace:_xmppConstants.Namespace.PRIVATE,element:"query"});JXT.extendIQ(PrivateStorage)},module.exports=exports.default},{"xmpp-constants":212}],96:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["server-unavailable","connection-paused"];exports.default=function(JXT){var PSA=JXT.define({name:"state",namespace:_xmppConstants.Namespace.PSA,element:"state-annotation",fields:{from:JXT.utils.jidAttribute("from"),condition:JXT.utils.enumSub(_xmppConstants.Namespace.PSA,CONDITIONS),description:JXT.utils.textSub(_xmppConstants.Namespace.PSA,"description")}});JXT.extendPresence(PSA)},module.exports=exports.default},{"xmpp-constants":212}],97:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Pubsub=JXT.define({name:"pubsub",namespace:_xmppConstants.Namespace.PUBSUB,element:"pubsub",fields:{create:{get:function(){var node=Utils.getSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB,"create","node");return node?node:Utils.getBoolSub(this.xml,_xmppConstants.Namespace.PUBSUB,"create")},set:function(value){value!==!0&&value?Utils.setSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB,"create","node",value):Utils.setBoolSub(this.xml,_xmppConstants.Namespace.PUBSUB,"create",value)}},publishOptions:{get:function(){var DataForm=JXT.getDefinition("x",_xmppConstants.Namespace.DATAFORM),conf=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB,"publish-options");if(conf.length&&conf[0].childNodes.length)return new DataForm({},conf[0].childNodes[0])},set:function(value){var DataForm=JXT.getDefinition("x",_xmppConstants.Namespace.DATAFORM),conf=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.PUBSUB,"publish-options");if(value){var form=new DataForm(value);conf.appendChild(form.xml)}}}}}),Configure=JXT.define({name:"config",namespace:_xmppConstants.Namespace.PUBSUB,element:"configure"}),Subscribe=JXT.define({name:"subscribe",namespace:_xmppConstants.Namespace.PUBSUB,element:"subscribe",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid")}}),Subscription=JXT.define({name:"subscription",namespace:_xmppConstants.Namespace.PUBSUB,element:"subscription",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),subid:Utils.attribute("subid"),type:Utils.attribute("subscription"),configurable:Utils.boolSub("subscribe-options"),configurationRequired:{get:function(){var options=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB,"subscribe-options");return!!options.length&&Utils.getBoolSub(options[0],_xmppConstants.Namespace.PUBSUB,"required")}}}}),Subscriptions=JXT.define({name:"subscriptions",namespace:_xmppConstants.Namespace.PUBSUB,element:"subscriptions",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid")}}),Affiliation=JXT.define({name:"affiliation",namespace:_xmppConstants.Namespace.PUBSUB,element:"affiliation",fields:{node:Utils.attribute("node"),type:Utils.attribute("affiliation")}}),Affiliations=JXT.define({name:"affiliations",namespace:_xmppConstants.Namespace.PUBSUB,element:"affiliations",fields:{node:Utils.attribute("node")}}),SubscriptionOptions=JXT.define({name:"subscriptionOptions",namespace:_xmppConstants.Namespace.PUBSUB,element:"options",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),subid:Utils.attribute("subid")}}),Unsubscribe=JXT.define({name:"unsubscribe",namespace:_xmppConstants.Namespace.PUBSUB,element:"unsubscribe",fields:{node:Utils.attribute("node"),subid:Utils.attribute("subid"),jid:Utils.jidAttribute("jid")}}),Publish=JXT.define({name:"publish",namespace:_xmppConstants.Namespace.PUBSUB,element:"publish",fields:{node:Utils.attribute("node")}}),Retract=JXT.define({name:"retract",namespace:_xmppConstants.Namespace.PUBSUB,element:"retract",fields:{node:Utils.attribute("node"),notify:Utils.boolAttribute("notify"),id:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB,"item","id")}}),Retrieve=JXT.define({name:"retrieve",namespace:_xmppConstants.Namespace.PUBSUB,element:"items",fields:{node:Utils.attribute("node"),max:Utils.attribute("max_items")}}),Item=JXT.define({name:"item",namespace:_xmppConstants.Namespace.PUBSUB,element:"item",fields:{id:Utils.attribute("id")}});JXT.extend(Pubsub,Configure),JXT.extend(Pubsub,Subscribe),JXT.extend(Pubsub,Unsubscribe),JXT.extend(Pubsub,Publish),JXT.extend(Pubsub,Retract),JXT.extend(Pubsub,Retrieve),JXT.extend(Pubsub,Subscription),JXT.extend(Pubsub,SubscriptionOptions),JXT.extend(Pubsub,Subscriptions),JXT.extend(Pubsub,Affiliations),JXT.extend(Publish,Item,"items"),JXT.extend(Retrieve,Item,"items"),JXT.extend(Subscriptions,Subscription,"list"),JXT.extend(Affiliations,Affiliation,"list"),JXT.extendIQ(Pubsub),JXT.withDataForm(function(DataForm){JXT.extend(SubscriptionOptions,DataForm),JXT.extend(Item,DataForm),JXT.extend(Configure,DataForm)}),JXT.withDefinition("set",_xmppConstants.Namespace.RSM,function(RSM){JXT.extend(Pubsub,RSM)})},module.exports=exports.default},{"xmpp-constants":212}],98:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["closed-node","configuration-required","invalid-jid","invalid-options","invalid-payload","invalid-subid","item-forbidden","item-required","jid-required","max-items-exceeded","max-nodes-exceeded","nodeid-required","not-in-roster-group","not-subscribed","payload-too-big","payload-required","pending-subscription","presence-subscription-required","subid-required","too-many-subscriptions","unsupported","unsupported-access-model"];exports.default=function(JXT){JXT.withStanzaError(function(StanzaError){JXT.add(StanzaError,"pubsubCondition",JXT.utils.enumSub(_xmppConstants.Namespace.PUBSUB_ERRORS,CONDITIONS)),JXT.add(StanzaError,"pubsubUnsupportedFeature",{get:function(){return JXT.utils.getSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB_ERRORS,"unsupported","feature")},set:function(value){value&&(this.pubsubCondition="unsupported"),JXT.utils.setSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB_ERRORS,"unsupported","feature",value)}})})},module.exports=exports.default},{"xmpp-constants":212}],99:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Event=JXT.define({name:"event",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"event"}),EventPurge=JXT.define({name:"purged",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"purge",fields:{node:Utils.attribute("node")}}),EventDelete=JXT.define({name:"deleted",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"delete",fields:{node:Utils.attribute("node"),redirect:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_EVENT,"redirect","uri")}}),EventSubscription=JXT.define({name:"subscriptionChanged",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"subscription",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),type:Utils.attribute("subscription"),subid:Utils.attribute("subid"),expiry:{get:function(){var text=Utils.getAttribute(this.xml,"expiry");return"presence"===text?text:text?new Date(text):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),Utils.setAttribute(this.xml,"expiry",value))}}}}),EventConfiguration=JXT.define({name:"configurationChanged",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"configuration",fields:{node:Utils.attribute("node")}}),EventItems=JXT.define({name:"updated",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"items",fields:{node:Utils.attribute("node"),retracted:{get:function(){var results=[],retracted=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB_EVENT,"retract");return retracted.forEach(function(xml){results.push(xml.getAttribute("id"))}),results},set:function(value){value.forEach(function(id){var retracted=Utils.createElement(_xmppConstants.Namespace.PUBSUB_EVENT,"retract",_xmppConstants.Namespace.PUBSUB_EVENT);retracted.setAttribute("id",id),this.xml.appendChild(retracted)})}}}}),EventItem=JXT.define({name:"_eventItem",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"item",fields:{id:Utils.attribute("id"),node:Utils.attribute("node"),publisher:Utils.jidAttribute("publisher")}});JXT.extend(EventItems,EventItem,"published"),JXT.extend(Event,EventItems),JXT.extend(Event,EventSubscription),JXT.extend(Event,EventConfiguration),JXT.extend(Event,EventDelete),JXT.extend(Event,EventPurge),JXT.extendMessage(Event),JXT.withDataForm(function(DataForm){JXT.extend(EventConfiguration,DataForm)})},module.exports=exports.default},{"xmpp-constants":212}],100:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,PubsubOwner=JXT.define({name:"pubsubOwner",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"pubsub",fields:{purge:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_OWNER,"purge","node"),del:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_OWNER,"delete","node"),redirect:{get:function(){var del=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB_OWNER,"delete");return del.length?Utils.getSubAttribute(del[0],_xmppConstants.Namespace.PUBSUB_OWNER,"redirect","uri"):""},set:function(value){var del=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.PUBSUB_OWNER,"delete");Utils.setSubAttribute(del,_xmppConstants.Namespace.PUBSUB_OWNER,"redirect","uri",value)}}}}),Subscription=JXT.define({name:"subscription",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"subscription",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),subid:Utils.attribute("subid"),type:Utils.attribute("subscription"),configurable:Utils.boolSub("subscribe-options"),configurationRequired:{get:function(){var options=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB_OWNER,"subscribe-options");return!!options.length&&Utils.getBoolSub(options[0],_xmppConstants.Namespace.PUBSUB_OWNER,"required")}}}}),Subscriptions=JXT.define({name:"subscriptions",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"subscriptions",fields:{node:Utils.attribute("node")}}),Affiliation=JXT.define({name:"affiliation",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"affiliation",fields:{jid:Utils.jidAttribute("jid"),type:Utils.attribute("affiliation")}}),Affiliations=JXT.define({name:"affiliations",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"affiliations",fields:{node:Utils.attribute("node")}}),Configure=JXT.define({name:"config",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"configure",fields:{node:Utils.attribute("node")}});JXT.extend(PubsubOwner,Configure),JXT.extend(PubsubOwner,Subscriptions),JXT.extend(PubsubOwner,Affiliations),JXT.extend(Subscriptions,Subscription,"list"),JXT.extend(Affiliations,Affiliation,"list"),JXT.extendIQ(PubsubOwner),JXT.withDataForm(function(DataForm){JXT.extend(Configure,DataForm)})},module.exports=exports.default},{"xmpp-constants":212}],101:[function(require,module,exports){
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Enable=JXT.define({name:"enablePush",element:"enable",namespace:_xmppConstants.Namespace.PUSH_0,fields:{jid:Utils.jidAttribute("jid"),node:Utils.attribute("node")}}),Disable=JXT.define({name:"disablePush",element:"disable",namespace:_xmppConstants.Namespace.PUSH_0,fields:{jid:Utils.jidAttribute("jid"),node:Utils.attribute("node")}}),Notification=JXT.define({name:"pushNotification",element:"notification",namespace:_xmppConstants.Namespace.PUSH_0});JXT.withDataForm(function(DataForm){JXT.extend(Notification,DataForm),JXT.extend(Enable,DataForm)}),JXT.extendIQ(Enable),JXT.extendIQ(Disable)},module.exports=exports.default},{"xmpp-constants":212}],102:[function(require,module,exports){"use strict";var _interopRequireDefault=require("babel-runtime/helpers/interop-require-default").default;Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_lodashForeach=require("lodash.foreach"),_lodashForeach2=_interopRequireDefault(_lodashForeach);exports.default=function(JXT){var Utils=JXT.utils,ReachURI=JXT.define({name:"_reachAddr",namespace:_xmppConstants.Namespace.REACH_0,element:"addr",fields:{uri:Utils.attribute("uri"),$desc:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.REACH_0,"desc",this.lang)}},desc:{get:function(){var descs=this.$desc;return descs[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.REACH_0,"desc",value,this.lang)}}}}),reachability={get:function(){var reach=Utils.find(this.xml,_xmppConstants.Namespace.REACH_0,"reach"),results=[];if(reach.length){var addrs=Utils.find(reach[0],_xmppConstants.Namespace.REACH_0,"addr");(0,_lodashForeach2.default)(addrs,function(addr){results.push(new ReachURI({},addr))})}return results},set:function(value){var reach=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.REACH_0,"reach");Utils.setAttribute(reach,"xmlns",_xmppConstants.Namespace.REACH_0),(0,_lodashForeach2.default)(value,function(info){var addr=new ReachURI(info);reach.appendChild(addr.xml)})}};JXT.withPubsubItem(function(Item){JXT.add(Item,"reach",reachability)}),JXT.withPresence(function(Presence){JXT.add(Presence,"reach",reachability)})},module.exports=exports.default},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],103:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Register=JXT.define({name:"register",namespace:_xmppConstants.Namespace.REGISTER,element:"query",fields:{instructions:Utils.textSub(_xmppConstants.Namespace.REGISTER,"instructions"),registered:Utils.boolSub(_xmppConstants.Namespace.REGISTER,"registered"),remove:Utils.boolSub(_xmppConstants.Namespace.REGISTER,"remove"),username:Utils.textSub(_xmppConstants.Namespace.REGISTER,"username"),nick:Utils.textSub(_xmppConstants.Namespace.REGISTER,"nick"),password:Utils.textSub(_xmppConstants.Namespace.REGISTER,"password"),name:Utils.textSub(_xmppConstants.Namespace.REGISTER,"name"),first:Utils.textSub(_xmppConstants.Namespace.REGISTER,"first"),last:Utils.textSub(_xmppConstants.Namespace.REGISTER,"last"),email:Utils.textSub(_xmppConstants.Namespace.REGISTER,"email"),address:Utils.textSub(_xmppConstants.Namespace.REGISTER,"address"),city:Utils.textSub(_xmppConstants.Namespace.REGISTER,"city"),state:Utils.textSub(_xmppConstants.Namespace.REGISTER,"state"),zip:Utils.textSub(_xmppConstants.Namespace.REGISTER,"zip"),phone:Utils.textSub(_xmppConstants.Namespace.REGISTER,"phone"),url:Utils.textSub(_xmppConstants.Namespace.REGISTER,"url"),date:Utils.textSub(_xmppConstants.Namespace.REGISTER,"date"),misc:Utils.textSub(_xmppConstants.Namespace.REGISTER,"misc"),text:Utils.textSub(_xmppConstants.Namespace.REGISTER,"text"),key:Utils.textSub(_xmppConstants.Namespace.REGISTER,"key")}});JXT.extendIQ(Register),JXT.withDefinition("x",_xmppConstants.Namespace.OOB,function(OOB){JXT.extend(Register,OOB)}),JXT.withDataForm(function(DataForm){JXT.extend(Register,DataForm)})},module.exports=exports.default},{"xmpp-constants":212}],104:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Roster=JXT.define({name:"roster",namespace:_xmppConstants.Namespace.ROSTER,element:"query",fields:{ver:{get:function(){return Utils.getAttribute(this.xml,"ver")},set:function(value){var force=""===value;Utils.setAttribute(this.xml,"ver",value,force)}}}}),RosterItem=JXT.define({name:"_rosterItem",namespace:_xmppConstants.Namespace.ROSTER,element:"item",fields:{jid:Utils.jidAttribute("jid",!0),name:Utils.attribute("name"),subscription:Utils.attribute("subscription","none"),subscriptionRequested:{get:function(){var ask=Utils.getAttribute(this.xml,"ask");return"subscribe"===ask}},preApproved:Utils.boolAttribute(_xmppConstants.Namespace.ROSTER,"approved"),groups:Utils.multiTextSub(_xmppConstants.Namespace.ROSTER,"group")}});JXT.extend(Roster,RosterItem,"items"),JXT.extendIQ(Roster)},module.exports=exports.default},{"xmpp-constants":212}],105:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"rsm",namespace:_xmppConstants.Namespace.RSM,element:"set",fields:{after:Utils.textSub(_xmppConstants.Namespace.RSM,"after"),before:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.RSM,"before")},set:function(value){value===!0?Utils.findOrCreate(this.xml,_xmppConstants.Namespace.RSM,"before"):Utils.setSubText(this.xml,_xmppConstants.Namespace.RSM,"before",value)}},count:Utils.numberSub(_xmppConstants.Namespace.RSM,"count",!1,0),first:Utils.textSub(_xmppConstants.Namespace.RSM,"first"),firstIndex:Utils.subAttribute(_xmppConstants.Namespace.RSM,"first","index"),index:Utils.textSub(_xmppConstants.Namespace.RSM,"index"),last:Utils.textSub(_xmppConstants.Namespace.RSM,"last"),max:Utils.textSub(_xmppConstants.Namespace.RSM,"max")}})},module.exports=exports.default},{"xmpp-constants":212}],106:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Feedback={get:function(){var existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb"),result=[];return existing.forEach(function(xml){result.push({type:Utils.getAttribute(xml,"type"),subtype:Utils.getAttribute(xml,"subtype")})}),existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb-trr-int"),existing.forEach(function(xml){result.push({type:Utils.getAttribute(xml,"type"),value:Utils.getAttribute(xml,"value")})}),result},set:function(values){var self=this,existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb");existing.forEach(function(item){self.xml.removeChild(item)}),existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb-trr-int"),existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var fb=void 0;"trr-int"===value.type?(fb=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb-trr-int",_xmppConstants.Namespace.JINGLE_RTP_1),Utils.setAttribute(fb,"type",value.type),Utils.setAttribute(fb,"value",value.value)):(fb=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb",_xmppConstants.Namespace.JINGLE_RTP_1),Utils.setAttribute(fb,"type",value.type),Utils.setAttribute(fb,"subtype",value.subtype)),self.xml.appendChild(fb)})}},Bandwidth=JXT.define({name:"bandwidth",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"bandwidth",fields:{type:Utils.attribute("type"),bandwidth:Utils.text()}}),RTP=JXT.define({name:"_rtp",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"description",tags:["jingle-application"],fields:{applicationType:{value:"rtp"},media:Utils.attribute("media"),ssrc:Utils.attribute("ssrc"),mux:Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_1,"rtcp-mux"),encryption:{get:function(){var enc=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption");if(!enc.length)return[];enc=enc[0];var self=this,data=Utils.find(enc,_xmppConstants.Namespace.JINGLE_RTP_1,"crypto"),results=[];return data.forEach(function(xml){results.push(new Crypto({},xml,self).toJSON())}),results},set:function(values){var enc=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption");if(enc.length&&this.xml.removeChild(enc),values.length){Utils.setBoolSubAttribute(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption","required",!0),enc=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption")[0];var self=this;values.forEach(function(value){var content=new Crypto(value,null,self);enc.appendChild(content.xml)})}}},feedback:Feedback,headerExtensions:{get:function(){var existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0,"rtp-hdrext"),result=[];return existing.forEach(function(xml){result.push({id:Utils.getAttribute(xml,"id"),uri:Utils.getAttribute(xml,"uri"),senders:Utils.getAttribute(xml,"senders")})}),result},set:function(values){var self=this,existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0,"rtp-hdrext");existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var hdr=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0,"rtp-hdrext",_xmppConstants.Namespace.JINGLE_RTP_1);Utils.setAttribute(hdr,"id",value.id),Utils.setAttribute(hdr,"uri",value.uri),Utils.setAttribute(hdr,"senders",value.senders),self.xml.appendChild(hdr)})}}}}),PayloadType=JXT.define({name:"_payloadType",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"payload-type",fields:{channels:Utils.attribute("channels"),clockrate:Utils.attribute("clockrate"),id:Utils.attribute("id"),maxptime:Utils.attribute("maxptime"),name:Utils.attribute("name"),ptime:Utils.attribute("ptime"),feedback:Feedback,parameters:{get:function(){var result=[],params=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"parameter");return params.forEach(function(param){result.push({key:Utils.getAttribute(param,"name"),value:Utils.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_1,"parameter");Utils.setAttribute(param,"name",value.key),Utils.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Crypto=JXT.define({name:"crypto",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"crypto",fields:{cipherSuite:Utils.attribute("crypto-suite"),keyParams:Utils.attribute("key-params"),sessionParams:Utils.attribute("session-params"),tag:Utils.attribute("tag")}}),ContentGroup=JXT.define({name:"_group",namespace:_xmppConstants.Namespace.JINGLE_GROUPING_0,element:"group",fields:{semantics:Utils.attribute("semantics"),contents:Utils.multiSubAttribute(_xmppConstants.Namespace.JINGLE_GROUPING_0,"content","name")}}),SourceGroup=JXT.define({name:"_sourceGroup",namespace:_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,element:"ssrc-group",fields:{semantics:Utils.attribute("semantics"),sources:Utils.multiSubAttribute(_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,"source","ssrc")}}),Source=JXT.define({name:"_source",namespace:_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,element:"source",fields:{ssrc:Utils.attribute("ssrc"),parameters:{get:function(){var result=[],params=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,"parameter");return params.forEach(function(param){result.push({key:Utils.getAttribute(param,"name"),value:Utils.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,"parameter");Utils.setAttribute(param,"name",value.key),Utils.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Mute=JXT.define({name:"mute",namespace:_xmppConstants.Namespace.JINGLE_RTP_INFO_1,element:"mute",fields:{creator:Utils.attribute("creator"),name:Utils.attribute("name")}}),Unmute=JXT.define({name:"unmute",namespace:_xmppConstants.Namespace.JINGLE_RTP_INFO_1,element:"unmute",fields:{creator:Utils.attribute("creator"),name:Utils.attribute("name")}});JXT.extend(RTP,Bandwidth),JXT.extend(RTP,PayloadType,"payloads"),JXT.extend(RTP,Source,"sources"),JXT.extend(RTP,SourceGroup,"sourceGroups"),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,RTP)}),JXT.withDefinition("jingle",_xmppConstants.Namespace.JINGLE_1,function(Jingle){JXT.extend(Jingle,Mute),JXT.extend(Jingle,Unmute),JXT.extend(Jingle,ContentGroup,"groups"),JXT.add(Jingle,"ringing",Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1,"ringing")),JXT.add(Jingle,"hold",Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1,"hold")),JXT.add(Jingle,"active",Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1,"active"))})},module.exports=exports.default},{"xmpp-constants":212}],107:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),TYPE_MAP={insert:"t",erase:"e",wait:"w"},ACTION_MAP={t:"insert",e:"erase",w:"wait"};exports.default=function(JXT){var Utils=JXT.utils,RTT=JXT.define({name:"rtt",namespace:_xmppConstants.Namespace.RTT_0,element:"rtt",fields:{id:Utils.attribute("id"),event:Utils.attribute("event","edit"),seq:Utils.numberAttribute("seq"),actions:{get:function(){for(var results=[],i=0,len=this.xml.childNodes.length;i<len;i++){var child=this.xml.childNodes[i],_name=child.localName,action={};if(child.namespaceURI===_xmppConstants.Namespace.RTT_0&&ACTION_MAP[_name]){action.type=ACTION_MAP[_name];var pos=Utils.getAttribute(child,"p");pos&&(action.pos=parseInt(pos,10));var n=Utils.getAttribute(child,"n");n&&(action.num=parseInt(n,10));var t=Utils.getText(child);t&&"t"===_name&&(action.text=t),results.push(action)}}return results},set:function(actions){for(var self=this,i=0,len=this.xml.childNodes.length;i<len;i++)this.xml.removeChild(this.xml.childNodes[i]);actions.forEach(function(action){if(TYPE_MAP[action.type]){var child=Utils.createElement(_xmppConstants.Namespace.RTT_0,TYPE_MAP[action.type],_xmppConstants.Namespace.RTT_0);void 0!==action.pos&&Utils.setAttribute(child,"p",action.pos.toString()),action.num&&Utils.setAttribute(child,"n",action.num.toString()),action.text&&Utils.setText(child,action.text),self.xml.appendChild(child)}})}}}});JXT.extendMessage(RTT)},module.exports=exports.default},{"xmpp-constants":212}],108:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["aborted","account-disabled","credentials-expired","encryption-required","incorrect-encoding","invalid-authzid","invalid-mechanism","malformed-request","mechanism-too-weak","not-authorized","temporary-auth-failure"];exports.default=function(JXT){var Utils=JXT.utils,Mechanisms=JXT.define({name:"sasl",namespace:_xmppConstants.Namespace.SASL,element:"mechanisms",fields:{mechanisms:Utils.multiTextSub(_xmppConstants.Namespace.SASL,"mechanism")}});JXT.define({name:"saslAuth",eventName:"sasl:auth",namespace:_xmppConstants.Namespace.SASL,element:"auth",topLevel:!0,fields:{value:Utils.text(),mechanism:Utils.attribute("mechanism")}}),JXT.define({name:"saslChallenge",eventName:"sasl:challenge",namespace:_xmppConstants.Namespace.SASL,element:"challenge",topLevel:!0,fields:{value:Utils.text()}}),JXT.define({name:"saslResponse",eventName:"sasl:response",namespace:_xmppConstants.Namespace.SASL,element:"response",topLevel:!0,fields:{value:Utils.text()}}),JXT.define({name:"saslAbort",eventName:"sasl:abort",namespace:_xmppConstants.Namespace.SASL,element:"abort",topLevel:!0}),JXT.define({name:"saslSuccess",eventName:"sasl:success",namespace:_xmppConstants.Namespace.SASL,element:"success",topLevel:!0,fields:{value:Utils.text()}}),JXT.define({name:"saslFailure",eventName:"sasl:failure",namespace:_xmppConstants.Namespace.SASL,element:"failure",topLevel:!0,fields:{lang:{get:function(){return this._lang||""},set:function(value){this._lang=value}},condition:Utils.enumSub(_xmppConstants.Namespace.SASL,CONDITIONS),$text:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.SASL,"text",this.lang)}},text:{get:function(){var text=this.$text;return text[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.SASL,"text",value,this.lang)}}}}),JXT.extendStreamFeatures(Mechanisms)},module.exports=exports.default},{"xmpp-constants":212}],109:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Session=JXT.define({name:"session",namespace:_xmppConstants.Namespace.SESSION,element:"session",fields:{required:JXT.utils.boolSub(_xmppConstants.Namespace.SESSION,"required"),optional:JXT.utils.boolSub(_xmppConstants.Namespace.SESSION,"optional")}});JXT.extendIQ(Session),JXT.extendStreamFeatures(Session)},module.exports=exports.default},{"xmpp-constants":212}],110:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,SHIM={get:function(){var headerSet=Utils.find(this.xml,_xmppConstants.Namespace.SHIM,"headers");return headerSet.length?Utils.getMultiSubText(headerSet[0],_xmppConstants.Namespace.SHIM,"header",function(header){var name=Utils.getAttribute(header,"name");if(name)return{name:name,value:Utils.getText(header)}}):[]},set:function(values){var headerSet=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.SHIM,"headers");JXT.setMultiSubText(headerSet,_xmppConstants.Namespace.SHIM,"header",values,function(val){var header=Utils.createElement(_xmppConstants.Namespace.SHIM,"header",_xmppConstants.Namespace.SHIM);Utils.setAttribute(header,"name",val.name),Utils.setText(header,val.value),headerSet.appendChild(header)})}};JXT.withMessage(function(Message){JXT.add(Message,"headers",SHIM)}),JXT.withPresence(function(Presence){JXT.add(Presence,"headers",SHIM)})},module.exports=exports.default},{"xmpp-constants":212}],111:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,SMFeature=JXT.define({name:"streamManagement",namespace:_xmppConstants.Namespace.SMACKS_3,element:"sm"});JXT.define({name:"smEnable",eventName:"stream:management:enable",namespace:_xmppConstants.Namespace.SMACKS_3,element:"enable",topLevel:!0,fields:{resume:Utils.boolAttribute("resume")}}),JXT.define({name:"smEnabled",eventName:"stream:management:enabled",namespace:_xmppConstants.Namespace.SMACKS_3,element:"enabled",topLevel:!0,fields:{id:Utils.attribute("id"),resume:Utils.boolAttribute("resume")}}),JXT.define({name:"smResume",eventName:"stream:management:resume",namespace:_xmppConstants.Namespace.SMACKS_3,element:"resume",topLevel:!0,fields:{h:Utils.numberAttribute("h",!1,0),previd:Utils.attribute("previd")}}),JXT.define({name:"smResumed",eventName:"stream:management:resumed",namespace:_xmppConstants.Namespace.SMACKS_3,element:"resumed",topLevel:!0,fields:{h:Utils.numberAttribute("h",!1,0),previd:Utils.attribute("previd")}}),JXT.define({name:"smFailed",eventName:"stream:management:failed",namespace:_xmppConstants.Namespace.SMACKS_3,element:"failed",topLevel:!0}),JXT.define({name:"smAck",eventName:"stream:management:ack",namespace:_xmppConstants.Namespace.SMACKS_3,element:"a",topLevel:!0,fields:{h:Utils.numberAttribute("h",!1,0)}}),JXT.define({name:"smRequest",eventName:"stream:management:request",namespace:_xmppConstants.Namespace.SMACKS_3,element:"r",topLevel:!0}),JXT.extendStreamFeatures(SMFeature)},module.exports=exports.default},{"xmpp-constants":212}],112:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"stream",namespace:_xmppConstants.Namespace.STREAM,element:"stream",fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),version:Utils.attribute("version","1.0"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0)}})},module.exports=exports.default},{"xmpp-constants":212}],113:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["bad-format","bad-namespace-prefix","conflict","connection-timeout","host-gone","host-unknown","improper-addressing","internal-server-error","invalid-from","invalid-namespace","invalid-xml","not-authorized","not-well-formed","policy-violation","remote-connection-failed","reset","resource-constraint","restricted-xml","see-other-host","system-shutdown","undefined-condition","unsupported-encoding","unsupported-feature","unsupported-stanza-type","unsupported-version"];exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"streamError",namespace:_xmppConstants.Namespace.STREAM,element:"error",topLevel:!0,fields:{lang:{get:function(){return this._lang||""},set:function(value){this._lang=value}},condition:Utils.enumSub(_xmppConstants.Namespace.STREAM_ERROR,CONDITIONS),seeOtherHost:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"see-other-host")},set:function(value){this.condition="see-other-host",Utils.setSubText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"see-other-host",value)}},$text:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"text",this.lang)}},text:{get:function(){var text=this.$text;return text[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"text",value,this.lang)}}}})},module.exports=exports.default},{"xmpp-constants":212}],114:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var RosterVerFeature=(JXT.define({name:"streamFeatures",namespace:_xmppConstants.Namespace.STREAM,element:"features",topLevel:!0}),JXT.define({name:"rosterVersioning",namespace:_xmppConstants.Namespace.ROSTER_VERSIONING,element:"ver"})),SubscriptionPreApprovalFeature=JXT.define({name:"subscriptionPreApproval",namespace:_xmppConstants.Namespace.SUBSCRIPTION_PREAPPROVAL,element:"sub"});JXT.extendStreamFeatures(RosterVerFeature),JXT.extendStreamFeatures(SubscriptionPreApprovalFeature)},module.exports=exports.default},{"xmpp-constants":212}],115:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var EntityTime=JXT.define({name:"time",namespace:_xmppConstants.Namespace.TIME,element:"time",fields:{utc:JXT.utils.dateSub(_xmppConstants.Namespace.TIME,"utc"),tzo:JXT.utils.tzoSub(_xmppConstants.Namespace.TIME,"tzo",0)}});JXT.extendIQ(EntityTime)},module.exports=exports.default},{"xmpp-constants":212}],116:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Tune=JXT.define({name:"tune",namespace:_xmppConstants.Namespace.TUNE,element:"tune",fields:{artist:Utils.textSub(_xmppConstants.Namespace.TUNE,"artist"),length:Utils.numberSub(_xmppConstants.Namespace.TUNE,"length"),rating:Utils.numberSub(_xmppConstants.Namespace.TUNE,"rating"),source:Utils.textSub(_xmppConstants.Namespace.TUNE,"source"),title:Utils.textSub(_xmppConstants.Namespace.TUNE,"title"),track:Utils.textSub(_xmppConstants.Namespace.TUNE,"track"),uri:Utils.textSub(_xmppConstants.Namespace.TUNE,"uri")}});JXT.extendPubsubItem(Tune),JXT.extendMessage(Tune)},module.exports=exports.default},{"xmpp-constants":212}],117:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,VCardTemp=JXT.define({name:"vCardTemp",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"vCard",fields:{role:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"ROLE"),website:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"URL"),title:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"TITLE"),description:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"DESC"),fullName:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"FN"),birthday:Utils.dateSub(_xmppConstants.Namespace.VCARD_TEMP,"BDAY"),nicknames:Utils.multiTextSub(_xmppConstants.Namespace.VCARD_TEMP,"NICKNAME"),jids:Utils.multiTextSub(_xmppConstants.Namespace.VCARD_TEMP,"JABBERID")}}),Email=JXT.define({name:"_email",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"EMAIL",fields:{email:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"USERID"),home:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"HOME"),work:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"WORK"),preferred:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"PREF")}}),PhoneNumber=JXT.define({name:"_tel",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"TEL",fields:{number:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"NUMBER"),home:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"HOME"),work:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"WORK"),mobile:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"CELL"),preferred:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"PREF")}}),Address=JXT.define({name:"_address",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"ADR",fields:{street:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"STREET"),street2:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"EXTADD"),country:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"CTRY"),city:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"LOCALITY"),region:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"REGION"),postalCode:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"PCODE"),pobox:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"POBOX"),home:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"HOME"),work:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"WORK"),preferred:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"PREF")}}),Organization=JXT.define({name:"organization",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"ORG",fields:{name:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"ORGNAME"),unit:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"ORGUNIT")}}),Name=JXT.define({name:"name",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"N",fields:{family:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"FAMILY"),given:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"GIVEN"),middle:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"MIDDLE"),prefix:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"PREFIX"),suffix:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"SUFFIX")}}),Photo=JXT.define({name:"photo",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"PHOTO",fields:{type:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"TYPE"),data:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"BINVAL"),url:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"EXTVAL")}});JXT.extend(VCardTemp,Email,"emails"),JXT.extend(VCardTemp,Address,"addresses"),JXT.extend(VCardTemp,PhoneNumber,"phoneNumbers"),JXT.extend(VCardTemp,Organization),JXT.extend(VCardTemp,Name),JXT.extend(VCardTemp,Photo),JXT.extendIQ(VCardTemp)},module.exports=exports.default},{"xmpp-constants":212}],118:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Version=JXT.define({name:"version",namespace:_xmppConstants.Namespace.VERSION,element:"query",fields:{name:JXT.utils.textSub(_xmppConstants.Namespace.VERSION,"name"),version:JXT.utils.textSub(_xmppConstants.Namespace.VERSION,"version"),os:JXT.utils.textSub(_xmppConstants.Namespace.VERSION,"os")}});JXT.extendIQ(Version)},module.exports=exports.default},{"xmpp-constants":212}],119:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){JXT.withIQ(function(IQ){JXT.add(IQ,"visible",JXT.utils.boolSub(_xmppConstants.Namespace.INVISIBLE_0,"visible")),JXT.add(IQ,"invisible",JXT.utils.boolSub(_xmppConstants.Namespace.INVISIBLE_0,"invisible"))})},module.exports=exports.default},{"xmpp-constants":212}],120:[function(require,module,exports){"use strict";function JXT(){this._LOOKUP={},this._LOOKUP_EXT={},this._TAGS={},this._CB_DEFINITION={},this._CB_TAG={},this._ID=uuid.v4(),this.utils=extend({},types,helpers)}var extend=require("lodash.assign"),uuid=require("uuid"),types=require("./lib/types"),helpers=require("./lib/helpers"),stanzaConstructor=require("./lib/stanza");JXT.prototype.use=function(init){return init["__JXT_LOADED_"+this._ID]||init(this),init["__JXT_LOADED_"+this._ID]=!0,this},JXT.prototype.getDefinition=function(el,ns,required){var JXTClass=this._LOOKUP[ns+"|"+el];if(required&&!JXTClass)throw new Error("Could not find definition for <"+el+' xmlns="'+ns+'" />');return JXTClass},JXT.prototype.getExtensions=function(el,ns){return this._LOOKUP_EXT[ns+"|"+el]||{}},JXT.prototype.withDefinition=function(el,ns,cb){var name=ns+"|"+el;this._CB_DEFINITION[name]||(this._CB_DEFINITION[name]=[]),this._CB_DEFINITION[name].push(cb),this._LOOKUP[name]&&cb(this._LOOKUP[name])},JXT.prototype.withTag=function(tag,cb){this._CB_TAG[tag]||(this._CB_TAG[tag]=[]),this._CB_TAG[tag].push(cb),this.tagged(tag).forEach(function(stanza){cb(stanza)})},JXT.prototype.tagged=function(tag){return this._TAGS[tag]||[]},JXT.prototype.build=function(xml){var JXTClass=this.getDefinition(xml.localName,xml.namespaceURI);if(JXTClass)return new JXTClass(null,xml)},JXT.prototype.parse=function(str){var xml=helpers.parse(str);if(xml)return this.build(xml)},JXT.prototype.extend=function(ParentJXT,ChildJXT,multiName,hideSingle){var parentName=ParentJXT.prototype._NS+"|"+ParentJXT.prototype._EL,name=ChildJXT.prototype._name,qName=ChildJXT.prototype._NS+"|"+ChildJXT.prototype._EL;this._LOOKUP[qName]=ChildJXT,this._LOOKUP_EXT[qName]||(this._LOOKUP_EXT[qName]={}),this._LOOKUP_EXT[parentName]||(this._LOOKUP_EXT[parentName]={}),this._LOOKUP_EXT[parentName][name]=ChildJXT,(!multiName||multiName&&!hideSingle)&&this.add(ParentJXT,name,types.extension(ChildJXT)),multiName&&this.add(ParentJXT,multiName,types.multiExtension(ChildJXT))},JXT.prototype.add=function(ParentJXT,fieldName,field){field.enumerable=!0,Object.defineProperty(ParentJXT.prototype,fieldName,field)},JXT.prototype.define=function(opts){var self=this,Stanza=stanzaConstructor(this,opts),ns=Stanza.prototype._NS,el=Stanza.prototype._EL,tags=Stanza.prototype._TAGS,name=ns+"|"+el;this._LOOKUP[name]=Stanza,tags.forEach(function(tag){self._TAGS[tag]||(self._TAGS[tag]=[]),self._TAGS[tag].push(Stanza)});var fieldNames=Object.keys(opts.fields||{});return fieldNames.forEach(function(fieldName){self.add(Stanza,fieldName,opts.fields[fieldName])}),this._CB_DEFINITION[name]&&this._CB_DEFINITION[name].forEach(function(handler){handler(Stanza)}),tags.forEach(function(tag){self._CB_TAG[tag]&&self._CB_TAG[tag].forEach(function(handler){
+handler(Stanza)})}),Stanza},JXT.createRegistry=function(){return new JXT},extend(JXT,helpers),extend(JXT,types);var globalJXT=new JXT;JXT.define=globalJXT.define.bind(globalJXT),JXT.extend=globalJXT.extend.bind(globalJXT),JXT.add=globalJXT.add.bind(globalJXT),JXT.parse=globalJXT.parse.bind(globalJXT),JXT.build=globalJXT.build.bind(globalJXT),JXT.getExtensions=globalJXT.getExtensions.bind(globalJXT),JXT.getDefinition=globalJXT.getDefinition.bind(globalJXT),JXT.withDefinition=globalJXT.withDefinition.bind(globalJXT),JXT.withTag=globalJXT.withTag.bind(globalJXT),JXT.tagged=globalJXT.tagged.bind(globalJXT),JXT.getGlobalJXT=function(){return globalJXT},module.exports=JXT},{"./lib/helpers":121,"./lib/stanza":122,"./lib/types":123,"lodash.assign":132,uuid:199}],121:[function(require,module,exports){"use strict";var ltx=require("ltx"),DOMElement=require("ltx/lib/DOMElement"),XML_NS=exports.XML_NS="http://www.w3.org/XML/1998/namespace";exports.parse=function(str){var xml=ltx.parse(str,{Element:DOMElement});if(1===xml.nodeType)return xml},exports.createElement=function(NS,name,parentNS){var el=new DOMElement(name);return parentNS&&parentNS===NS||exports.setAttribute(el,"xmlns",NS),el};var find=exports.find=function(xml,NS,selector){for(var results=[],children=xml.getElementsByTagName(selector),i=0,len=children.length;i<len;i++){var child=children[i];child.namespaceURI===NS&&child.parentNode===xml&&results.push(child)}return results};exports.findOrCreate=function(xml,NS,selector){var existing=exports.find(xml,NS,selector);if(existing.length)return existing[0];var created=exports.createElement(NS,selector,xml.namespaceURI);return xml.appendChild(created),created},exports.getAttribute=function(xml,attr,defaultVal){return xml.getAttribute(attr)||defaultVal||""},exports.getAttributeNS=function(xml,NS,attr,defaultVal){return xml.getAttributeNS(NS,attr)||defaultVal||""},exports.setAttribute=function(xml,attr,value,force){value||force?xml.setAttribute(attr,value):xml.removeAttribute(attr)},exports.setAttributeNS=function(xml,NS,attr,value,force){value||force?xml.setAttributeNS(NS,attr,value):xml.removeAttributeNS(NS,attr)},exports.getBoolAttribute=function(xml,attr,defaultVal){var val=xml.getAttribute(attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolAttribute=function(xml,attr,value){value?xml.setAttribute(attr,"1"):xml.removeAttribute(attr)},exports.getSubAttribute=function(xml,NS,sub,attr,defaultVal){var subs=find(xml,NS,sub);if(!subs)return"";for(var i=0;i<subs.length;i++)return subs[i].getAttribute(attr)||defaultVal||"";return""},exports.setSubAttribute=function(xml,NS,sub,attr,value){var subs=find(xml,NS,sub);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return void subs[i].setAttribute(attr,value);subs[i].removeAttribute(attr)}else value&&(sub=exports.createElement(NS,sub,xml.namespaceURI),sub.setAttribute(attr,value),xml.appendChild(sub))},exports.getBoolSubAttribute=function(xml,NS,sub,attr,defaultVal){var val=xml.getSubAttribute(NS,sub,attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolSubAttribute=function(xml,NS,sub,attr,value){value=value?"1":"",exports.setSubAttribute(xml,NS,sub,attr,value)},exports.getText=function(xml){return xml.textContent},exports.setText=function(xml,value){xml.textContent=value},exports.getSubText=exports.getTextSub=function(xml,NS,element,defaultVal){var subs=find(xml,NS,element);return defaultVal=defaultVal||"",subs.length?subs[0].textContent||defaultVal:defaultVal},exports.setSubText=exports.setTextSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);value!==!0&&(sub.textContent=value),xml.appendChild(sub)}},exports.getMultiSubText=function(xml,NS,element,extractor){var subs=find(xml,NS,element),results=[];extractor=extractor||function(sub){return sub.textContent||""};for(var i=0;i<subs.length;i++)results.push(extractor(subs[i]));return results},exports.setMultiSubText=function(xml,NS,element,value,builder){var subs=find(xml,NS,element),values=[];builder=builder||function(value){if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);sub.textContent=value,xml.appendChild(sub)}},values="string"==typeof value?(value||"").split("\n"):value;var i,len;for(i=0,len=subs.length;i<len;i++)xml.removeChild(subs[i]);for(i=0,len=values.length;i<len;i++)builder(values[i])},exports.getMultiSubAttribute=function(xml,NS,element,attr){return exports.getMultiSubText(xml,NS,element,function(sub){return exports.getAttribute(sub,attr)})},exports.setMultiSubAttribute=function(xml,NS,element,attr,value){exports.setMultiSubText(xml,NS,element,value,function(val){var sub=exports.createElement(NS,element,xml.namespaceURI);exports.setAttribute(sub,attr,val),xml.appendChild(sub)})},exports.getSubLangText=function(xml,NS,element,defaultLang){var subs=find(xml,NS,element);if(!subs.length)return{};for(var lang,sub,results={},langs=[],i=0;i<subs.length;i++)sub=subs[i],lang=sub.getAttributeNS(XML_NS,"lang")||defaultLang,langs.push(lang),results[lang]=sub.textContent||"";return results},exports.setSubLangText=function(xml,NS,element,value,defaultLang){var sub,lang,subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if("string"==typeof value)sub=exports.createElement(NS,element,xml.namespaceURI),sub.textContent=value,xml.appendChild(sub);else if("object"==typeof value)for(lang in value)value.hasOwnProperty(lang)&&(sub=exports.createElement(NS,element,xml.namespaceURI),lang!==defaultLang&&sub.setAttributeNS(XML_NS,"lang",lang),sub.textContent=value[lang],xml.appendChild(sub))},exports.getBoolSub=function(xml,NS,element){var subs=find(xml,NS,element);return!!subs.length},exports.setBoolSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return;xml.removeChild(subs[i])}else if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);xml.appendChild(sub)}}},{ltx:139,"ltx/lib/DOMElement":140}],122:[function(require,module,exports){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),EXCLUDE={constructor:!0,parent:!0,prototype:!0,toJSON:!0,toString:!0,xml:!0};module.exports=function(JXT,opts){function Stanza(data,xml,parent){var self=this,parentNode=(xml||{}).parentNode||(parent||{}).xml,parentNS=(parentNode||{}).namespaceURI;self.xml=xml||helpers.createElement(self._NS,self._EL,parentNS),Object.keys(self._PREFIXES).forEach(function(prefix){var namespace=self._PREFIXES[prefix];self.xml.setAttribute("xmlns:"+prefix,namespace)}),self._extensions={};for(var i=0,len=self.xml.childNodes.length;i<len;i++){var child=self.xml.childNodes[i],ChildJXT=JXT.getDefinition(child.localName,child.namespaceURI);if(void 0!==ChildJXT){var name=ChildJXT.prototype._name;self._extensions[name]=new ChildJXT(null,child),self._extensions[name].parent=self}}return extend(self,data),opts.init&&opts.init.apply(self,[data]),self}return Stanza.prototype._isJXT=!0,Stanza.prototype._name=opts.name,Stanza.prototype._eventname=opts.eventName,Stanza.prototype._NS=opts.namespace,Stanza.prototype._EL=opts.element||opts.name,Stanza.prototype._PREFIXES=opts.prefixes||{},Stanza.prototype._TAGS=opts.tags||[],Stanza.prototype.toString=function(){return this.xml.toString()},Stanza.prototype.toJSON=function(){var prop,result={};for(prop in this._extensions)this._extensions[prop].toJSON&&"_"!==prop[0]&&(result[prop]=this._extensions[prop].toJSON());for(prop in this){var allowedName=!EXCLUDE[prop]&&"_"!==prop[0],isExtensionName=JXT.getExtensions(this._EL,this._NS)[prop];if(allowedName&&!isExtensionName){var val=this[prop];if("function"==typeof val)continue;var type=Object.prototype.toString.call(val);if(type.indexOf("Object")>=0)Object.keys(val).length>0&&(val._isJXT?result[prop]=val.toJSON():result[prop]=val);else if(type.indexOf("Array")>=0){if(val.length>0){for(var vals=[],len=val.length,n=0;n<len;n++){var nval=val[n];"undefined"!=typeof nval&&(nval._isJXT?vals.push(nval.toJSON()):vals.push(nval))}result[prop]=vals}}else void 0!==val&&val!==!1&&""!==val&&(result[prop]=val)}}return result},Stanza}},{"./helpers":121,"lodash.assign":132}],123:[function(require,module,exports){(function(Buffer){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),find=helpers.find,createElement=helpers.createElement,field=exports.field=function(getter,setter){return function(){var args=Array.prototype.slice.call(arguments);return{get:function(){return getter.apply(null,[this.xml].concat(args))},set:function(value){setter.apply(null,[this.xml].concat(args).concat([value]))}}}};exports.boolAttribute=field(helpers.getBoolAttribute,helpers.setBoolAttribute),exports.subAttribute=field(helpers.getSubAttribute,helpers.setSubAttribute),exports.boolSubAttribute=field(helpers.getSubBoolAttribute,helpers.setSubBoolAttribute),exports.text=field(helpers.getText,helpers.setText),exports.textSub=exports.subText=field(helpers.getSubText,helpers.setSubText),exports.multiTextSub=exports.multiSubText=field(helpers.getMultiSubText,helpers.setMultiSubText),exports.multiSubAttribute=field(helpers.getMultiSubAttribute,helpers.setMultiSubAttribute),exports.langTextSub=exports.subLangText=field(helpers.getSubLangText,helpers.setSubLangText),exports.boolSub=field(helpers.getBoolSub,helpers.setBoolSub),exports.langAttribute=field(function(xml){return xml.getAttributeNS(helpers.XML_NS,"lang")||""},function(xml,value){xml.setAttributeNS(helpers.XML_NS,"lang",value)}),exports.b64Text=field(function(xml){return xml.textContent&&"="!==xml.textContent?new Buffer(xml.textContent,"base64"):""},function(xml,value){if("string"==typeof value){var b64=new Buffer(value).toString("base64");xml.textContent=b64||"="}else xml.textContent=""}),exports.dateAttribute=function(attr,now){return{get:function(){var data=helpers.getAttribute(this.xml,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setAttribute(this.xml,attr,value))}}},exports.dateSub=function(NS,sub,now){return{get:function(){var data=helpers.getSubText(this.xml,NS,sub);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubText(this.xml,NS,sub,value))}}},exports.dateSubAttribute=function(NS,sub,attr,now){return{get:function(){var data=helpers.getSubAttribute(this.xml,NS,sub,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubAttribute(this.xml,NS,sub,attr,value))}}},exports.numberAttribute=function(attr,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getAttribute(this.xml,attr,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setAttribute(this.xml,attr,value.toString())}}},exports.numberSub=function(NS,sub,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getSubText(this.xml,NS,sub,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setSubText(this.xml,NS,sub,value.toString())}}},exports.attribute=function(name,defaultVal){return{get:function(){return helpers.getAttribute(this.xml,name,defaultVal)},set:function(value){helpers.setAttribute(this.xml,name,value)}}},exports.attributeNS=function(NS,name,defaultVal){return{get:function(){return helpers.getAttributeNS(this.xml,NS,name,defaultVal)},set:function(value){helpers.setAttributeNS(this.xml,NS,name,value)}}},exports.extension=function(ChildJXT){return{get:function(){var self=this,name=ChildJXT.prototype._name;if(!this._extensions[name]){var existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],self):(this._extensions[name]=new ChildJXT({},null,self),this.xml.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){if(value){var child=this[ChildJXT.prototype._name];value===!0&&(value={}),extend(child,value)}}}},exports.multiExtension=function(ChildJXT){return{get:function(){for(var self=this,data=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL),results=[],i=0,len=data.length;i<len;i++)results.push(new ChildJXT({},data[i],self));return results},set:function(value){value=value||[];var i,len,self=this,existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);for(i=0,len=existing.length;i<len;i++)self.xml.removeChild(existing[i]);for(i=0,len=value.length;i<len;i++){var content=new ChildJXT(value[i],null,self);self.xml.appendChild(content.xml)}}}},exports.enumSub=function(NS,enumValues){return{get:function(){var self=this,result=[];return enumValues.forEach(function(enumVal){var exists=find(self.xml,NS,enumVal);exists.length&&result.push(exists[0].nodeName)}),result[0]||""},set:function(value){var self=this,alreadyExists=!1;if(enumValues.forEach(function(enumVal){var elements=find(self.xml,NS,enumVal);elements.length&&(enumVal===value?alreadyExists=!0:self.xml.removeChild(elements[0]))}),value&&!alreadyExists){var condition=createElement(NS,value);this.xml.appendChild(condition)}}}},exports.subExtension=function(name,NS,sub,ChildJXT){return{get:function(){if(!this._extensions[name]){var wrapper=find(this.xml,NS,sub);wrapper.length?wrapper=wrapper[0]:(wrapper=createElement(NS,sub,this._NS),this.xml.appendChild(wrapper));var existing=find(wrapper,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],{xml:wrapper}):(this._extensions[name]=new ChildJXT({},null,{xml:wrapper}),wrapper.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){var wrapper=find(this.xml,NS,sub);if(wrapper.length&&!value&&this.xml.removeChild(wrapper[0]),value){var child=this[name];value===!0&&(value={}),extend(child,value)}}}},exports.subMultiExtension=function(NS,sub,ChildJXT){return{get:function(){var self=this,results=[],existing=find(this.xml,NS,sub);if(!existing.length)return results;existing=existing[0];var data=find(existing,ChildJXT.prototype._NS,ChildJXT.prototype._EL);return data.forEach(function(xml){results.push(new ChildJXT({},xml,self))}),results},set:function(values){var self=this,existing=find(this.xml,NS,sub);existing.length&&self.xml.removeChild(existing[0]),values.length&&(existing=createElement(NS,sub,this._NS),values.forEach(function(value){var content=new ChildJXT(value,null,{xml:{namespaceURI:NS}});existing.appendChild(content.xml)}),self.xml.appendChild(existing))}}}}).call(this,require("buffer").Buffer)},{"./helpers":121,buffer:6,"lodash.assign":132}],124:[function(require,module,exports){function arrayEach(array,iteratee){for(var index=-1,length=array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}module.exports=arrayEach},{}],125:[function(require,module,exports){function baseAssign(object,source){return null==source?object:baseCopy(source,keys(source),object)}var baseCopy=require("lodash._basecopy"),keys=require("lodash.keys");module.exports=baseAssign},{"lodash._basecopy":126,"lodash.keys":137}],126:[function(require,module,exports){function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index];object[key]=source[key]}return object}module.exports=baseCopy},{}],127:[function(require,module,exports){function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:++index<length;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var keys=require("lodash.keys"),MAX_SAFE_INTEGER=9007199254740991,baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor(),getLength=baseProperty("length");module.exports=baseEach},{"lodash.keys":137}],128:[function(require,module,exports){function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(void 0===thisArg)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function identity(value){return value}module.exports=bindCallback},{}],129:[function(require,module,exports){function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2?sources[length-2]:void 0,guard=length>2?sources[2]:void 0,thisArg=length>1?sources[length-1]:void 0;for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:void 0,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=length<3?void 0:customizer,length=1);++index<length;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}var bindCallback=require("lodash._bindcallback"),isIterateeCall=require("lodash._isiterateecall"),restParam=require("lodash.restparam");module.exports=createAssigner},{"lodash._bindcallback":128,"lodash._isiterateecall":131,"lodash.restparam":138}],130:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null!=value&&(isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value))}var funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");module.exports=getNative},{}],131:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&value<length}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object){var other=object[index];return value===value?value===other:other!==other}return!1}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var reIsUint=/^\d+$/,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isIterateeCall},{}],132:[function(require,module,exports){function assignWith(object,source,customizer){for(var index=-1,props=keys(source),length=props.length;++index<length;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(void 0!==value||key in object)||(object[key]=result)}return object}var baseAssign=require("lodash._baseassign"),createAssigner=require("lodash._createassigner"),keys=require("lodash.keys"),assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)});module.exports=assign},{"lodash._baseassign":125,"lodash._createassigner":129,"lodash.keys":137}],133:[function(require,module,exports){(function(global){function addMapEntry(map,pair){return map.set(pair[0],pair[1]),map}function addSetEntry(set,value){return set.add(value),set}function arrayEach(array,iteratee){for(var index=-1,length=array?array.length:0;++index<length&&iteratee(array[index],index,array)!==!1;);return array}function arrayPush(array,values){for(var index=-1,length=values.length,offset=array.length;++index<length;)array[offset+index]=values[index];return array}function arrayReduce(array,iteratee,accumulator,initAccum){var index=-1,length=array?array.length:0;for(initAccum&&length&&(accumulator=array[++index]);++index<length;)accumulator=iteratee(accumulator,array[index],index,array);return accumulator}function baseTimes(n,iteratee){for(var index=-1,result=Array(n);++index<n;)result[index]=iteratee(index);return result}function getValue(object,key){return null==object?void 0:object[key]}function isHostObject(value){var result=!1;if(null!=value&&"function"!=typeof value.toString)try{result=!!(value+"")}catch(e){}return result}function mapToArray(map){var index=-1,result=Array(map.size);return map.forEach(function(value,key){result[++index]=[key,value]}),result}function overArg(func,transform){return function(arg){return func(transform(arg))}}function setToArray(set){var index=-1,result=Array(set.size);return set.forEach(function(value){result[++index]=value}),result}function Hash(entries){var index=-1,length=entries?entries.length:0;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{}}function hashDelete(key){return this.has(key)&&delete this.__data__[key]}function hashGet(key){var data=this.__data__;if(nativeCreate){var result=data[key];return result===HASH_UNDEFINED?void 0:result}return hasOwnProperty.call(data,key)?data[key]:void 0}function hashHas(key){var data=this.__data__;return nativeCreate?void 0!==data[key]:hasOwnProperty.call(data,key)}function hashSet(key,value){var data=this.__data__;return data[key]=nativeCreate&&void 0===value?HASH_UNDEFINED:value,this}function ListCache(entries){var index=-1,length=entries?entries.length:0;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function listCacheClear(){this.__data__=[]}function listCacheDelete(key){var data=this.__data__,index=assocIndexOf(data,key);if(index<0)return!1;var lastIndex=data.length-1;return index==lastIndex?data.pop():splice.call(data,index,1),!0}function listCacheGet(key){var data=this.__data__,index=assocIndexOf(data,key);return index<0?void 0:data[index][1]}function listCacheHas(key){return assocIndexOf(this.__data__,key)>-1}function listCacheSet(key,value){var data=this.__data__,index=assocIndexOf(data,key);return index<0?data.push([key,value]):data[index][1]=value,this}function MapCache(entries){var index=-1,length=entries?entries.length:0;for(this.clear();++index<length;){var entry=entries[index];this.set(entry[0],entry[1])}}function mapCacheClear(){this.__data__={hash:new Hash,map:new(Map||ListCache),string:new Hash}}function mapCacheDelete(key){return getMapData(this,key).delete(key)}function mapCacheGet(key){return getMapData(this,key).get(key)}function mapCacheHas(key){return getMapData(this,key).has(key)}function mapCacheSet(key,value){return getMapData(this,key).set(key,value),this}function Stack(entries){this.__data__=new ListCache(entries)}function stackClear(){this.__data__=new ListCache}function stackDelete(key){return this.__data__.delete(key)}function stackGet(key){return this.__data__.get(key)}function stackHas(key){return this.__data__.has(key)}function stackSet(key,value){var cache=this.__data__;if(cache instanceof ListCache){var pairs=cache.__data__;if(!Map||pairs.length<LARGE_ARRAY_SIZE-1)return pairs.push([key,value]),this;cache=this.__data__=new MapCache(pairs)}return cache.set(key,value),this}function arrayLikeKeys(value,inherited){var result=isArray(value)||isArguments(value)?baseTimes(value.length,String):[],length=result.length,skipIndexes=!!length;for(var key in value)!inherited&&!hasOwnProperty.call(value,key)||skipIndexes&&("length"==key||isIndex(key,length))||result.push(key);return result}function assignValue(object,key,value){var objValue=object[key];hasOwnProperty.call(object,key)&&eq(objValue,value)&&(void 0!==value||key in object)||(object[key]=value)}function assocIndexOf(array,key){for(var length=array.length;length--;)if(eq(array[length][0],key))return length;return-1}function baseAssign(object,source){return object&&copyObject(source,keys(source),object)}function baseClone(value,isDeep,isFull,customizer,key,object,stack){var result;if(customizer&&(result=object?customizer(value,key,object,stack):customizer(value)),void 0!==result)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return copyArray(value,result)}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value))return cloneBuffer(value,isDeep);if(tag==objectTag||tag==argsTag||isFunc&&!object){if(isHostObject(value))return object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return copySymbols(value,baseAssign(result,value))}else{if(!cloneableTags[tag])return object?value:{};result=initCloneByTag(value,tag,baseClone,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked)return stacked;if(stack.set(value,result),!isArr)var props=isFull?getAllKeys(value):keys(value);return arrayEach(props||value,function(subValue,key){props&&(key=subValue,subValue=value[key]),assignValue(result,key,baseClone(subValue,isDeep,isFull,customizer,key,value,stack))}),result}function baseCreate(proto){return isObject(proto)?objectCreate(proto):{}}function baseGetAllKeys(object,keysFunc,symbolsFunc){var result=keysFunc(object);return isArray(object)?result:arrayPush(result,symbolsFunc(object))}function baseGetTag(value){return objectToString.call(value)}function baseIsNative(value){if(!isObject(value)||isMasked(value))return!1;var pattern=isFunction(value)||isHostObject(value)?reIsNative:reIsHostCtor;return pattern.test(toSource(value))}function baseKeys(object){if(!isPrototype(object))return nativeKeys(object);var result=[];for(var key in Object(object))hasOwnProperty.call(object,key)&&"constructor"!=key&&result.push(key);return result}function cloneBuffer(buffer,isDeep){if(isDeep)return buffer.slice();var result=new buffer.constructor(buffer.length);return buffer.copy(result),result}function cloneArrayBuffer(arrayBuffer){var result=new arrayBuffer.constructor(arrayBuffer.byteLength);return new Uint8Array(result).set(new Uint8Array(arrayBuffer)),result}function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}function cloneMap(map,isDeep,cloneFunc){var array=isDeep?cloneFunc(mapToArray(map),!0):mapToArray(map);return arrayReduce(array,addMapEntry,new map.constructor)}function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));return result.lastIndex=regexp.lastIndex,result}function cloneSet(set,isDeep,cloneFunc){var array=isDeep?cloneFunc(setToArray(set),!0):setToArray(set);return arrayReduce(array,addSetEntry,new set.constructor)}function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{}}function cloneTypedArray(typedArray,isDeep){var buffer=isDeep?cloneArrayBuffer(typedArray.buffer):typedArray.buffer;return new typedArray.constructor(buffer,typedArray.byteOffset,typedArray.length)}function copyArray(source,array){var index=-1,length=source.length;for(array||(array=Array(length));++index<length;)array[index]=source[index];return array}function copyObject(source,props,object,customizer){object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index],newValue=customizer?customizer(object[key],source[key],key,object,source):void 0;assignValue(object,key,void 0===newValue?source[key]:newValue)}return object}function copySymbols(source,object){return copyObject(source,getSymbols(source),object)}function getAllKeys(object){return baseGetAllKeys(object,keys,getSymbols)}function getMapData(map,key){var data=map.__data__;return isKeyable(key)?data["string"==typeof key?"string":"hash"]:data.map}function getNative(object,key){var value=getValue(object,key);return baseIsNative(value)?value:void 0}function initCloneArray(array){var length=array.length,result=array.constructor(length);return length&&"string"==typeof array[0]&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){return"function"!=typeof object.constructor||isPrototype(object)?{}:baseCreate(getPrototype(object))}function initCloneByTag(object,tag,cloneFunc,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return cloneArrayBuffer(object);case boolTag:case dateTag:return new Ctor(+object);case dataViewTag:return cloneDataView(object,isDeep);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:return cloneTypedArray(object,isDeep);case mapTag:return cloneMap(object,isDeep,cloneFunc);case numberTag:case stringTag:return new Ctor(object);case regexpTag:return cloneRegExp(object);case setTag:return cloneSet(object,isDeep,cloneFunc);case symbolTag:return cloneSymbol(object)}}function isIndex(value,length){return length=null==length?MAX_SAFE_INTEGER:length,!!length&&("number"==typeof value||reIsUint.test(value))&&value>-1&&value%1==0&&value<length}function isKeyable(value){var type=typeof value;return"string"==type||"number"==type||"symbol"==type||"boolean"==type?"__proto__"!==value:null===value}function isMasked(func){return!!maskSrcKey&&maskSrcKey in func}function isPrototype(value){var Ctor=value&&value.constructor,proto="function"==typeof Ctor&&Ctor.prototype||objectProto;return value===proto}function toSource(func){if(null!=func){try{return funcToString.call(func)}catch(e){}try{return func+""}catch(e){}}return""}function cloneDeep(value){return baseClone(value,!0,!0)}function eq(value,other){return value===other||value!==value&&other!==other}function isArguments(value){return isArrayLikeObject(value)&&hasOwnProperty.call(value,"callee")&&(!propertyIsEnumerable.call(value,"callee")||objectToString.call(value)==argsTag)}function isArrayLike(value){return null!=value&&isLength(value.length)&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value);
+}function isFunction(value){var tag=isObject(value)?objectToString.call(value):"";return tag==funcTag||tag==genTag}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isObjectLike(value){return!!value&&"object"==typeof value}function keys(object){return isArrayLike(object)?arrayLikeKeys(object):baseKeys(object)}function stubArray(){return[]}function stubFalse(){return!1}var LARGE_ARRAY_SIZE=200,HASH_UNDEFINED="__lodash_hash_undefined__",MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",promiseTag="[object Promise]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reFlags=/\w*$/,reIsHostCtor=/^\[object .+?Constructor\]$/,reIsUint=/^(?:0|[1-9]\d*)$/,cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;var freeGlobal="object"==typeof global&&global&&global.Object===Object&&global,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,arrayProto=Array.prototype,funcProto=Function.prototype,objectProto=Object.prototype,coreJsData=root["__core-js_shared__"],maskSrcKey=function(){var uid=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return uid?"Symbol(src)_1."+uid:""}(),funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectToString=objectProto.toString,reIsNative=RegExp("^"+funcToString.call(hasOwnProperty).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Buffer=moduleExports?root.Buffer:void 0,Symbol=root.Symbol,Uint8Array=root.Uint8Array,getPrototype=overArg(Object.getPrototypeOf,Object),objectCreate=Object.create,propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice,nativeGetSymbols=Object.getOwnPropertySymbols,nativeIsBuffer=Buffer?Buffer.isBuffer:void 0,nativeKeys=overArg(Object.keys,Object),DataView=getNative(root,"DataView"),Map=getNative(root,"Map"),Promise=getNative(root,"Promise"),Set=getNative(root,"Set"),WeakMap=getNative(root,"WeakMap"),nativeCreate=getNative(Object,"create"),dataViewCtorString=toSource(DataView),mapCtorString=toSource(Map),promiseCtorString=toSource(Promise),setCtorString=toSource(Set),weakMapCtorString=toSource(WeakMap),symbolProto=Symbol?Symbol.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;Hash.prototype.clear=hashClear,Hash.prototype.delete=hashDelete,Hash.prototype.get=hashGet,Hash.prototype.has=hashHas,Hash.prototype.set=hashSet,ListCache.prototype.clear=listCacheClear,ListCache.prototype.delete=listCacheDelete,ListCache.prototype.get=listCacheGet,ListCache.prototype.has=listCacheHas,ListCache.prototype.set=listCacheSet,MapCache.prototype.clear=mapCacheClear,MapCache.prototype.delete=mapCacheDelete,MapCache.prototype.get=mapCacheGet,MapCache.prototype.has=mapCacheHas,MapCache.prototype.set=mapCacheSet,Stack.prototype.clear=stackClear,Stack.prototype.delete=stackDelete,Stack.prototype.get=stackGet,Stack.prototype.has=stackHas,Stack.prototype.set=stackSet;var getSymbols=nativeGetSymbols?overArg(nativeGetSymbols,Object):stubArray,getTag=baseGetTag;(DataView&&getTag(new DataView(new ArrayBuffer(1)))!=dataViewTag||Map&&getTag(new Map)!=mapTag||Promise&&getTag(Promise.resolve())!=promiseTag||Set&&getTag(new Set)!=setTag||WeakMap&&getTag(new WeakMap)!=weakMapTag)&&(getTag=function(value){var result=objectToString.call(value),Ctor=result==objectTag?value.constructor:void 0,ctorString=Ctor?toSource(Ctor):void 0;if(ctorString)switch(ctorString){case dataViewCtorString:return dataViewTag;case mapCtorString:return mapTag;case promiseCtorString:return promiseTag;case setCtorString:return setTag;case weakMapCtorString:return weakMapTag}return result});var isArray=Array.isArray,isBuffer=nativeIsBuffer||stubFalse;module.exports=cloneDeep}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],134:[function(require,module,exports){function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&void 0===thisArg&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}var arrayEach=require("lodash._arrayeach"),baseEach=require("lodash._baseeach"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),forEach=createForEach(arrayEach,baseEach);module.exports=forEach},{"lodash._arrayeach":124,"lodash._baseeach":127,"lodash._bindcallback":128,"lodash.isarray":136}],135:[function(require,module,exports){function isArguments(value){return isArrayLikeObject(value)&&hasOwnProperty.call(value,"callee")&&(!propertyIsEnumerable.call(value,"callee")||objectToString.call(value)==argsTag)}function isArrayLike(value){return null!=value&&isLength(value.length)&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}function isFunction(value){var tag=isObject(value)?objectToString.call(value):"";return tag==funcTag||tag==genTag}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isObjectLike(value){return!!value&&"object"==typeof value}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objectToString=objectProto.toString,propertyIsEnumerable=objectProto.propertyIsEnumerable;module.exports=isArguments},{}],136:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null!=value&&(isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value))}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag};module.exports=isArray},{}],137:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&value<length}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,allowIndexes=!!length&&isLength(length)&&(isArray(object)||isArguments(object)),index=-1,result=[];++index<propsLength;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;++index<length;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}var getNative=require("lodash._getnative"),isArguments=require("lodash.isarguments"),isArray=require("lodash.isarray"),reIsUint=/^\d+$/,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeKeys=getNative(Object,"keys"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length"),keys=nativeKeys?function(object){var Ctor=null==object?void 0:object.constructor;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isArrayLike(object)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys;module.exports=keys},{"lodash._getnative":130,"lodash.isarguments":135,"lodash.isarray":136}],138:[function(require,module,exports){function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(void 0===start?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);++index<length;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;++index<start;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}var FUNC_ERROR_TEXT="Expected a function",nativeMax=Math.max;module.exports=restParam},{}],139:[function(require,module,exports){"use strict";var parse=require("./lib/parse"),Parser=require("./lib/Parser"),escape=require("./lib/escape"),Element=require("./lib/Element"),equal=require("./lib/equal"),createElement=require("./lib/createElement"),tag=require("./lib/tag"),tagString=require("./lib/tagString"),is=require("./lib/is");exports=module.exports=tag,exports.Element=Element,exports.equal=equal.equal,exports.nameEqual=equal.name,exports.attrsEqual=equal.attrs,exports.childrenEqual=equal.children,exports.isNode=is.isNode,exports.isElement=is.isElement,exports.isText=is.isText,exports.createElement=createElement,exports.escapeXML=escape.escapeXML,exports.unescapeXML=escape.unescapeXML,exports.escapeXMLText=escape.escapeXMLText,exports.unescapeXMLText=escape.unescapeXMLText,exports.Parser=Parser,exports.parse=parse,exports.tag=tag,exports.tagString=tagString},{"./lib/Element":141,"./lib/Parser":142,"./lib/createElement":144,"./lib/equal":145,"./lib/escape":146,"./lib/is":147,"./lib/parse":148,"./lib/tag":150,"./lib/tagString":151}],140:[function(require,module,exports){"use strict";function DOMElement(name,attrs){Element.call(this,name,attrs),this.nodeType=1,this.nodeName=this.localName}var inherits=require("inherits"),Element=require("./Element");inherits(DOMElement,Element),DOMElement.prototype._getElement=function(name,attrs){var element=new DOMElement(name,attrs);return element},Object.defineProperty(DOMElement.prototype,"localName",{get:function(){return this.getName()}}),Object.defineProperty(DOMElement.prototype,"namespaceURI",{get:function(){return this.getNS()}}),Object.defineProperty(DOMElement.prototype,"parentNode",{get:function(){return this.parent}}),Object.defineProperty(DOMElement.prototype,"childNodes",{get:function(){return this.children}}),Object.defineProperty(DOMElement.prototype,"textContent",{get:function(){return this.getText()},set:function(value){this.children.push(value)}}),DOMElement.prototype.getElementsByTagName=function(name){return this.getChildren(name)},DOMElement.prototype.getAttribute=function(name){return this.getAttr(name)},DOMElement.prototype.setAttribute=function(name,value){this.attr(name,value)},DOMElement.prototype.getAttributeNS=function(ns,name){return"http://www.w3.org/XML/1998/namespace"===ns?this.getAttr(["xml",name].join(":")):this.getAttr(name,ns)},DOMElement.prototype.setAttributeNS=function(ns,name,value){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),value)},DOMElement.prototype.removeAttribute=function(name){this.attr(name,null)},DOMElement.prototype.removeAttributeNS=function(ns,name){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),null)},DOMElement.prototype.appendChild=function(el){this.cnode(el)},DOMElement.prototype.removeChild=function(el){this.remove(el)},DOMElement.createElement=function(name,attrs){var el=new DOMElement(name,attrs),children=Array.prototype.slice.call(arguments,2);return children.forEach(function(child){el.appendChild(child)}),el},module.exports=DOMElement},{"./Element":141,inherits:45}],141:[function(require,module,exports){"use strict";function Element(name,attrs){this.name=name,this.parent=null,this.children=[],this.attrs={},this.setAttrs(attrs)}var escape=require("./escape"),escapeXML=escape.escapeXML,escapeXMLText=escape.escapeXMLText,equality=require("./equal"),equal=equality.equal,nameEqual=equality.name,attrsEqual=equality.attrs,childrenEqual=equality.children,clone=require("./clone");Element.prototype.is=function(name,xmlns){return this.getName()===name&&(!xmlns||this.getNS()===xmlns)},Element.prototype.getName=function(){return this.name.indexOf(":")>=0?this.name.substr(this.name.indexOf(":")+1):this.name},Element.prototype.getNS=function(){if(this.name.indexOf(":")>=0){var prefix=this.name.substr(0,this.name.indexOf(":"));return this.findNS(prefix)}return this.findNS()},Element.prototype.findNS=function(prefix){if(prefix){var attr="xmlns:"+prefix;if(this.attrs[attr])return this.attrs[attr];if(this.parent)return this.parent.findNS(prefix)}else{if(this.attrs.xmlns)return this.attrs.xmlns;if(this.parent)return this.parent.findNS()}},Element.prototype.getXmlns=function(){var namespaces={};this.parent&&(namespaces=this.parent.getXmlns());for(var attr in this.attrs){var m=attr.match("xmlns:?(.*)");this.attrs.hasOwnProperty(attr)&&m&&(namespaces[this.attrs[attr]]=m[1])}return namespaces},Element.prototype.setAttrs=function(attrs){"string"==typeof attrs?this.attrs.xmlns=attrs:attrs&&Object.keys(attrs).forEach(function(key){this.attrs[key]=attrs[key]},this)},Element.prototype.getAttr=function(name,xmlns){if(!xmlns)return this.attrs[name];var namespaces=this.getXmlns();return namespaces[xmlns]?this.attrs[[namespaces[xmlns],name].join(":")]:null},Element.prototype.getChild=function(name,xmlns){return this.getChildren(name,xmlns)[0]},Element.prototype.getChildren=function(name,xmlns){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.getName||child.getName()!==name||xmlns&&child.getNS()!==xmlns||result.push(child)}return result},Element.prototype.getChildByAttr=function(attr,val,xmlns,recursive){return this.getChildrenByAttr(attr,val,xmlns,recursive)[0]},Element.prototype.getChildrenByAttr=function(attr,val,xmlns,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.attrs||child.attrs[attr]!==val||xmlns&&child.getNS()!==xmlns||result.push(child),recursive&&child.getChildrenByAttr&&result.push(child.getChildrenByAttr(attr,val,xmlns,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getChildrenByFilter=function(filter,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];filter(child)&&result.push(child),recursive&&child.getChildrenByFilter&&result.push(child.getChildrenByFilter(filter,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getText=function(){for(var text="",i=0;i<this.children.length;i++){var child=this.children[i];"string"!=typeof child&&"number"!=typeof child||(text+=child)}return text},Element.prototype.getChildText=function(name,xmlns){var child=this.getChild(name,xmlns);return child?child.getText():null},Element.prototype.getChildElements=function(){return this.getChildrenByFilter(function(child){return child instanceof Element})},Element.prototype.root=function(){return this.parent?this.parent.root():this},Element.prototype.tree=Element.prototype.root,Element.prototype.up=function(){return this.parent?this.parent:this},Element.prototype.c=function(name,attrs){return this.cnode(new Element(name,attrs))},Element.prototype.cnode=function(child){return this.children.push(child),"object"==typeof child&&(child.parent=this),child},Element.prototype.t=function(text){return this.children.push(text),this},Element.prototype.remove=function(el,xmlns){var filter;return filter="string"==typeof el?function(child){return!(child.is&&child.is(el,xmlns))}:function(child){return child!==el},this.children=this.children.filter(filter),this},Element.prototype.clone=function(){return clone(this)},Element.prototype.text=function(val){return val&&1===this.children.length?(this.children[0]=val,this):this.getText()},Element.prototype.attr=function(attr,val){return"undefined"!=typeof val||null===val?(this.attrs||(this.attrs={}),this.attrs[attr]=val,this):this.attrs[attr]},Element.prototype.toString=function(){var s="";return this.write(function(c){s+=c}),s},Element.prototype.toJSON=function(){return{name:this.name,attrs:this.attrs,children:this.children.map(function(child){return child&&child.toJSON?child.toJSON():child})}},Element.prototype._addChildren=function(writer){writer(">");for(var i=0;i<this.children.length;i++){var child=this.children[i];(child||0===child)&&(child.write?child.write(writer):"string"==typeof child?writer(escapeXMLText(child)):child.toString&&writer(escapeXMLText(child.toString(10))))}writer("</"),writer(this.name),writer(">")},Element.prototype.write=function(writer){writer("<"),writer(this.name);for(var k in this.attrs){var v=this.attrs[k];null!=v&&(writer(" "),writer(k),writer('="'),"string"!=typeof v&&(v=v.toString()),writer(escapeXML(v)),writer('"'))}0===this.children.length?writer("/>"):this._addChildren(writer)},Element.prototype.nameEquals=function(el){return nameEqual(this,el)},Element.prototype.attrsEquals=function(el){return attrsEqual(this,el)},Element.prototype.childrenEquals=function(el){return childrenEqual(this,el)},Element.prototype.equals=function(el){return equal(this,el)},module.exports=Element},{"./clone":143,"./equal":145,"./escape":146}],142:[function(require,module,exports){"use strict";var EventEmitter=require("events").EventEmitter,inherits=require("inherits"),Element=require("./Element"),LtxParser=require("./parsers/ltx"),Parser=function(options){EventEmitter.call(this);var ParserInterface=this.Parser=options&&options.Parser||this.DefaultParser,ElementInterface=this.Element=options&&options.Element||this.DefaultElement;this.parser=new ParserInterface;var el,self=this;this.parser.on("startElement",function(name,attrs){var child=new ElementInterface(name,attrs);el=el?el.cnode(child):child}),this.parser.on("endElement",function(name){el&&name===el.name&&(el.parent?el=el.parent:self.tree||(self.tree=el,el=void 0))}),this.parser.on("text",function(str){el&&el.t(str)}),this.parser.on("error",function(e){self.error=e,self.emit("error",e)})};inherits(Parser,EventEmitter),Parser.prototype.DefaultParser=LtxParser,Parser.prototype.DefaultElement=Element,Parser.prototype.write=function(data){this.parser.write(data)},Parser.prototype.end=function(data){this.parser.end(data),this.error||(this.tree?this.emit("tree",this.tree):this.emit("error",new Error("Incomplete document")))},module.exports=Parser},{"./Element":141,"./parsers/ltx":149,events:27,inherits:45}],143:[function(require,module,exports){"use strict";module.exports=function clone(el){for(var clone=new el.constructor(el.name,el.attrs),i=0;i<el.children.length;i++){var child=el.children[i];clone.cnode(child.clone?child.clone():child)}return clone}},{}],144:[function(require,module,exports){"use strict";var Element=require("./Element");module.exports=function(name,attrs){for(var el=new Element(name,attrs),i=2;i<arguments.length;i++){var child=arguments[i];child&&el.cnode(child)}return el}},{"./Element":141}],145:[function(require,module,exports){"use strict";function nameEqual(a,b){return a.name===b.name}function attrsEqual(a,b){var attrs=a.attrs,keys=Object.keys(attrs),length=keys.length;if(length!==Object.keys(b.attrs).length)return!1;for(var i=0,l=length;i<l;i++){var key=keys[i],value=attrs[key];if(null==value||null==b.attrs[key]){if(value!==b.attrs[key])return!1}else if(value.toString()!==b.attrs[key].toString())return!1}return!0}function childrenEqual(a,b){var children=a.children,length=children.length;if(length!==b.children.length)return!1;for(var i=0,l=length;i<l;i++){var child=children[i];if("string"==typeof child){if(child!==b.children[i])return!1}else if(!child.equals(b.children[i]))return!1}return!0}function equal(a,b){return!!nameEqual(a,b)&&(!!attrsEqual(a,b)&&!!childrenEqual(a,b))}module.exports.name=nameEqual,module.exports.attrs=attrsEqual,module.exports.children=childrenEqual,module.exports.equal=equal},{}],146:[function(require,module,exports){"use strict";function escapeXMLReplace(match){return escapeXMLTable[match]}function unescapeXMLReplace(match){return unescapeXMLTable[match]}var escapeXMLTable={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&apos;"},unescapeXMLTable={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&quot;":'"',"&#34;":'"',"&apos;":"'","&#39;":"'"};exports.escapeXML=function(s){return s.replace(/&|<|>|"|'/g,escapeXMLReplace)},exports.unescapeXML=function(s){return s.replace(/&(amp|#38|lt|#60|gt|#62|quot|#34|apos|#39);/g,unescapeXMLReplace)},exports.escapeXMLText=function(s){return s.replace(/&|<|>/g,escapeXMLReplace)},exports.unescapeXMLText=function(s){return s.replace(/&(amp|#38|lt|#60|gt|#62);/g,unescapeXMLReplace)}},{}],147:[function(require,module,exports){"use strict";var Element=require("./Element");module.exports.isNode=function(el){return el instanceof Element||"string"==typeof el},module.exports.isElement=function(el){return el instanceof Element},module.exports.isText=function(el){return"string"==typeof el}},{"./Element":141}],148:[function(require,module,exports){"use strict";var Parser=require("./Parser");module.exports=function(data,options){var p;p="function"==typeof options?new options:new Parser(options);var result=null,error=null;if(p.on("tree",function(tree){result=tree}),p.on("error",function(e){error=e}),p.write(data),p.end(),error)throw error;return result}},{"./Parser":142}],149:[function(require,module,exports){"use strict";var inherits=require("inherits"),EventEmitter=require("events").EventEmitter,unescapeXML=require("../escape").unescapeXML,STATE_TEXT=0,STATE_IGNORE_TAG=1,STATE_TAG_NAME=2,STATE_TAG=3,STATE_ATTR_NAME=4,STATE_ATTR_EQ=5,STATE_ATTR_QUOT=6,STATE_ATTR_VALUE=7,SaxLtx=module.exports=function(){EventEmitter.call(this);var remainder,tagName,attrs,endTag,selfClosing,attrQuote,attrName,state=STATE_TEXT,recordStart=0;this._handleTagOpening=function(endTag,tagName,attrs){endTag?this.emit("endElement",tagName):(this.emit("startElement",tagName,attrs),selfClosing&&this.emit("endElement",tagName))},this.write=function(data){function endRecording(){if("number"==typeof recordStart){var recorded=data.slice(recordStart,pos);return recordStart=void 0,recorded}}"string"!=typeof data&&(data=data.toString());var pos=0;for(remainder&&(data=remainder+data,pos+=remainder.length,remainder=null);pos<data.length;pos++){var c=data.charCodeAt(pos);switch(state){case STATE_TEXT:if(60===c){var text=endRecording();text&&this.emit("text",unescapeXML(text)),state=STATE_TAG_NAME,recordStart=pos+1,attrs={}}break;case STATE_TAG_NAME:47===c&&recordStart===pos?(recordStart=pos+1,endTag=!0):33===c||63===c?(recordStart=void 0,state=STATE_IGNORE_TAG):(c<=32||47===c||62===c)&&(tagName=endRecording(),pos--,state=STATE_TAG);break;case STATE_IGNORE_TAG:62===c&&(state=STATE_TEXT);break;case STATE_TAG:62===c?(this._handleTagOpening(endTag,tagName,attrs),tagName=void 0,attrs=void 0,endTag=void 0,selfClosing=void 0,state=STATE_TEXT,recordStart=pos+1):47===c?selfClosing=!0:c>32&&(recordStart=pos,state=STATE_ATTR_NAME);break;case STATE_ATTR_NAME:(c<=32||61===c)&&(attrName=endRecording(),pos--,state=STATE_ATTR_EQ);break;case STATE_ATTR_EQ:61===c&&(state=STATE_ATTR_QUOT);break;case STATE_ATTR_QUOT:34!==c&&39!==c||(attrQuote=c,state=STATE_ATTR_VALUE,recordStart=pos+1);break;case STATE_ATTR_VALUE:if(c===attrQuote){var value=unescapeXML(endRecording());attrs[attrName]=value,attrName=void 0,state=STATE_TAG}}}"number"==typeof recordStart&&recordStart<=data.length&&(remainder=data.slice(recordStart),recordStart=0)}};inherits(SaxLtx,EventEmitter),SaxLtx.prototype.end=function(data){data&&this.write(data),this.write=function(){}}},{"../escape":146,events:27,inherits:45}],150:[function(require,module,exports){"use strict";var tagString=require("./tagString"),parse=require("./parse");module.exports=function(){return parse(tagString.apply(null,arguments))}},{"./parse":148,"./tagString":151}],151:[function(require,module,exports){"use strict";var escape=require("./escape").escapeXML;module.exports=function(){for(var literals=arguments[0],str="",i=1;i<arguments.length;i++)str+=literals[i-1],str+=escape(arguments[i]);return str+=literals[literals.length-1]}},{"./escape":146}],152:[function(require,module,exports){(function(process){"use strict";function nextTick(fn,arg1,arg2,arg3){if("function"!=typeof fn)throw new TypeError('"callback" argument must be a function');var args,i,len=arguments.length;switch(len){case 0:case 1:return process.nextTick(fn);case 2:return process.nextTick(function(){fn.call(null,arg1)});case 3:return process.nextTick(function(){fn.call(null,arg1,arg2)});case 4:return process.nextTick(function(){fn.call(null,arg1,arg2,arg3)});default:for(args=new Array(len-1),i=0;i<args.length;)args[i++]=arguments[i];return process.nextTick(function(){fn.apply(null,args)})}}!process.version||0===process.version.indexOf("v0.")||0===process.version.indexOf("v1.")&&0!==process.version.indexOf("v1.8.")?module.exports=nextTick:module.exports=process.nextTick}).call(this,require("_process"))},{_process:153}],153:[function(require,module,exports){function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}function cleanUpNextTick(){draining&&currentQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,runClearTimeout(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}var cachedSetTimeout,cachedClearTimeout,process=module.exports={};!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}}();var currentQueue,queue=[],draining=!1,queueIndex=-1;process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},{}],154:[function(require,module,exports){(function(global){!function(root){function error(type){throw new RangeError(errors[type])}function map(array,fn){for(var length=array.length,result=[];length--;)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@"),result="";parts.length>1&&(result=parts[0]+"@",string=parts[1]),string=string.replace(regexSeparators,".");var labels=string.split("."),encoded=map(labels,fn).join(".");return result+encoded}function ucs2decode(string){for(var value,extra,output=[],counter=0,length=string.length;counter<length;)value=string.charCodeAt(counter++),value>=55296&&value<=56319&&counter<length?(extra=string.charCodeAt(counter++),56320==(64512&extra)?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--)):output.push(value);return output}function ucs2encode(array){return map(array,function(value){var output="";return value>65535&&(value-=65536,output+=stringFromCharCode(value>>>10&1023|55296),value=56320|1023&value),output+=stringFromCharCode(value)}).join("")}function basicToDigit(codePoint){return codePoint-48<10?codePoint-22:codePoint-65<26?codePoint-65:codePoint-97<26?codePoint-97:base}function digitToBasic(digit,flag){return digit+22+75*(digit<26)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){
+var k=0;for(delta=firstTime?floor(delta/damp):delta>>1,delta+=floor(delta/numPoints);delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var out,basic,j,index,oldi,w,k,digit,t,baseMinusT,output=[],inputLength=input.length,i=0,n=initialN,bias=initialBias;for(basic=input.lastIndexOf(delimiter),basic<0&&(basic=0),j=0;j<basic;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(index=basic>0?basic+1:0;index<inputLength;){for(oldi=i,w=1,k=base;index>=inputLength&&error("invalid-input"),digit=basicToDigit(input.charCodeAt(index++)),(digit>=base||digit>floor((maxInt-i)/w))&&error("overflow"),i+=digit*w,t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias,!(digit<t);k+=base)baseMinusT=base-t,w>floor(maxInt/baseMinusT)&&error("overflow"),w*=baseMinusT;out=output.length+1,bias=adapt(i-oldi,out,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT,output=[];for(input=ucs2decode(input),inputLength=input.length,n=initialN,delta=0,bias=initialBias,j=0;j<inputLength;++j)currentValue=input[j],currentValue<128&&output.push(stringFromCharCode(currentValue));for(handledCPCount=basicLength=output.length,basicLength&&output.push(delimiter);handledCPCount<inputLength;){for(m=maxInt,j=0;j<inputLength;++j)currentValue=input[j],currentValue>=n&&currentValue<m&&(m=currentValue);for(handledCPCountPlusOne=handledCPCount+1,m-n>floor((maxInt-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;j<inputLength;++j)if(currentValue=input[j],currentValue<n&&++delta>maxInt&&error("overflow"),currentValue==n){for(q=delta,k=base;t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias,!(q<t);k+=base)qMinusT=q-t,baseMinusT=base-t,output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT);output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")}function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})}var freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule="object"==typeof module&&module&&!module.nodeType&&module,freeGlobal="object"==typeof global&&global;freeGlobal.global!==freeGlobal&&freeGlobal.window!==freeGlobal&&freeGlobal.self!==freeGlobal||(root=freeGlobal);var punycode,key,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;if(punycode={version:"1.4.1",ucs2:{decode:ucs2decode,encode:ucs2encode},decode:decode,encode:encode,toASCII:toASCII,toUnicode:toUnicode},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return punycode});else if(freeExports&&freeModule)if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);else root.punycode=punycode}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],155:[function(require,module,exports){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":156}],156:[function(require,module,exports){"use strict";function Duplex(options){return this instanceof Duplex?(Readable.call(this,options),Writable.call(this,options),options&&options.readable===!1&&(this.readable=!1),options&&options.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,options&&options.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",onend)):new Duplex(options)}function onend(){this.allowHalfOpen||this._writableState.ended||processNextTick(onEndNT,this)}function onEndNT(self){self.end()}var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};module.exports=Duplex;var processNextTick=require("process-nextick-args"),util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");util.inherits(Duplex,Readable);for(var keys=objectKeys(Writable.prototype),v=0;v<keys.length;v++){var method=keys[v];Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])}},{"./_stream_readable":158,"./_stream_writable":160,"core-util-is":22,inherits:45,"process-nextick-args":152}],157:[function(require,module,exports){"use strict";function PassThrough(options){return this instanceof PassThrough?void Transform.call(this,options):new PassThrough(options)}module.exports=PassThrough;var Transform=require("./_stream_transform"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(PassThrough,Transform),PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":159,"core-util-is":22,inherits:45}],158:[function(require,module,exports){(function(process){"use strict";function prependListener(emitter,event,fn){return"function"==typeof emitter.prependListener?emitter.prependListener(event,fn):void(emitter._events&&emitter._events[event]?isArray(emitter._events[event])?emitter._events[event].unshift(fn):emitter._events[event]=[fn,emitter._events[event]]:emitter.on(event,fn))}function ReadableState(options,stream){Duplex=Duplex||require("./_stream_duplex"),options=options||{},this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.readableObjectMode);var hwm=options.highWaterMark,defaultHwm=this.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.highWaterMark=~~this.highWaterMark,this.buffer=new BufferList,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=options.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,options.encoding&&(StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding)}function Readable(options){return Duplex=Duplex||require("./_stream_duplex"),this instanceof Readable?(this._readableState=new ReadableState(options,this),this.readable=!0,options&&"function"==typeof options.read&&(this._read=options.read),void Stream.call(this)):new Readable(options)}function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er)stream.emit("error",er);else if(null===chunk)state.reading=!1,onEofChunk(stream,state);else if(state.objectMode||chunk&&chunk.length>0)if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var _e=new Error("stream.unshift() after end event");stream.emit("error",_e)}else{var skipAdd;!state.decoder||addToFront||encoding||(chunk=state.decoder.write(chunk),skipAdd=!state.objectMode&&0===chunk.length),addToFront||(state.reading=!1),skipAdd||(state.flowing&&0===state.length&&!state.sync?(stream.emit("data",chunk),stream.read(0)):(state.length+=state.objectMode?1:chunk.length,addToFront?state.buffer.unshift(chunk):state.buffer.push(chunk),state.needReadable&&emitReadable(stream))),maybeReadMore(stream,state)}else addToFront||(state.reading=!1);return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||0===state.length)}function computeNewHighWaterMark(n){return n>=MAX_HWM?n=MAX_HWM:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function howMuchToRead(n,state){return n<=0||0===state.length&&state.ended?0:state.objectMode?1:n!==n?state.flowing&&state.length?state.buffer.head.data.length:state.length:(n>state.highWaterMark&&(state.highWaterMark=computeNewHighWaterMark(n)),n<=state.length?n:state.ended?state.length:(state.needReadable=!0,0))}function chunkInvalid(state,chunk){var er=null;return Buffer.isBuffer(chunk)||"string"==typeof chunk||null===chunk||void 0===chunk||state.objectMode||(er=new TypeError("Invalid non-string/buffer chunk")),er}function onEofChunk(stream,state){if(!state.ended){if(state.decoder){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,emitReadable(stream)}}function emitReadable(stream){var state=stream._readableState;state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,state.sync?processNextTick(emitReadable_,stream):emitReadable_(stream))}function emitReadable_(stream){debug("emit readable"),stream.emit("readable"),flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,processNextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(var len=state.length;!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark&&(debug("maybeReadMore read 0"),stream.read(0),len!==state.length);)len=state.length;state.readingMore=!1}function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,0===state.awaitDrain&&EElistenerCount(src,"data")&&(state.flowing=!0,flow(src))}}function nReadingNextTick(self){debug("readable nexttick read 0"),self.read(0)}function resume(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,processNextTick(resume_,stream,state))}function resume_(stream,state){state.reading||(debug("resume read 0"),stream.read(0)),state.resumeScheduled=!1,state.awaitDrain=0,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}function flow(stream){var state=stream._readableState;for(debug("flow",state.flowing);state.flowing&&null!==stream.read(););}function fromList(n,state){if(0===state.length)return null;var ret;return state.objectMode?ret=state.buffer.shift():!n||n>=state.length?(ret=state.decoder?state.buffer.join(""):1===state.buffer.length?state.buffer.head.data:state.buffer.concat(state.length),state.buffer.clear()):ret=fromListPartial(n,state.buffer,state.decoder),ret}function fromListPartial(n,list,hasStrings){var ret;return n<list.head.data.length?(ret=list.head.data.slice(0,n),list.head.data=list.head.data.slice(n)):ret=n===list.head.data.length?list.shift():hasStrings?copyFromBufferString(n,list):copyFromBuffer(n,list),ret}function copyFromBufferString(n,list){var p=list.head,c=1,ret=p.data;for(n-=ret.length;p=p.next;){var str=p.data,nb=n>str.length?str.length:n;if(ret+=nb===str.length?str:str.slice(0,n),n-=nb,0===n){nb===str.length?(++c,p.next?list.head=p.next:list.head=list.tail=null):(list.head=p,p.data=str.slice(nb));break}++c}return list.length-=c,ret}function copyFromBuffer(n,list){var ret=bufferShim.allocUnsafe(n),p=list.head,c=1;for(p.data.copy(ret),n-=p.data.length;p=p.next;){var buf=p.data,nb=n>buf.length?buf.length:n;if(buf.copy(ret,ret.length-n,0,nb),n-=nb,0===n){nb===buf.length?(++c,p.next?list.head=p.next:list.head=list.tail=null):(list.head=p,p.data=buf.slice(nb));break}++c}return list.length-=c,ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error('"endReadable()" called on non-empty stream');state.endEmitted||(state.ended=!0,processNextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){state.endEmitted||0!==state.length||(state.endEmitted=!0,stream.readable=!1,stream.emit("end"))}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++)f(xs[i],i)}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++)if(xs[i]===x)return i;return-1}module.exports=Readable;var processNextTick=require("process-nextick-args"),isArray=require("isarray");Readable.ReadableState=ReadableState;var Stream,EElistenerCount=(require("events").EventEmitter,function(emitter,type){return emitter.listeners(type).length});!function(){try{Stream=require("stream")}catch(_){}finally{Stream||(Stream=require("events").EventEmitter)}}();var Buffer=require("buffer").Buffer,bufferShim=require("buffer-shims"),util=require("core-util-is");util.inherits=require("inherits");var debugUtil=require("util"),debug=void 0;debug=debugUtil&&debugUtil.debuglog?debugUtil.debuglog("stream"):function(){};var StringDecoder,BufferList=require("./internal/streams/BufferList");util.inherits(Readable,Stream);var Duplex,Duplex;Readable.prototype.push=function(chunk,encoding){var state=this._readableState;return state.objectMode||"string"!=typeof chunk||(encoding=encoding||state.defaultEncoding,encoding!==state.encoding&&(chunk=bufferShim.from(chunk,encoding),encoding="")),readableAddChunk(this,state,chunk,encoding,!1)},Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",!0)},Readable.prototype.isPaused=function(){return this._readableState.flowing===!1},Readable.prototype.setEncoding=function(enc){return StringDecoder||(StringDecoder=require("string_decoder/").StringDecoder),this._readableState.decoder=new StringDecoder(enc),this._readableState.encoding=enc,this};var MAX_HWM=8388608;Readable.prototype.read=function(n){debug("read",n),n=parseInt(n,10);var state=this._readableState,nOrig=n;if(0!==n&&(state.emittedReadable=!1),0===n&&state.needReadable&&(state.length>=state.highWaterMark||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(0===state.length||state.length-n<state.highWaterMark)&&(doRead=!0,debug("length less than watermark",doRead)),state.ended||state.reading?(doRead=!1,debug("reading or ended",doRead)):doRead&&(debug("do read"),state.reading=!0,state.sync=!0,0===state.length&&(state.needReadable=!0),this._read(state.highWaterMark),state.sync=!1,state.reading||(n=howMuchToRead(nOrig,state)));var ret;return ret=n>0?fromList(n,state):null,null===ret?(state.needReadable=!0,n=0):state.length-=n,0===state.length&&(state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&endReadable(this)),null!==ret&&this.emit("data",ret),ret},Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(dest,pipeOpts){function onunpipe(readable){debug("onunpipe"),readable===src&&cleanup()}function onend(){debug("onend"),dest.end()}function cleanup(){debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",cleanup),src.removeListener("data",ondata),cleanedUp=!0,!state.awaitDrain||dest._writableState&&!dest._writableState.needDrain||ondrain()}function ondata(chunk){debug("ondata"),increasedAwaitDrain=!1;var ret=dest.write(chunk);!1!==ret||increasedAwaitDrain||((1===state.pipesCount&&state.pipes===dest||state.pipesCount>1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp&&(debug("false write response, pause",src._readableState.awaitDrain),src._readableState.awaitDrain++,increasedAwaitDrain=!0),src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),0===EElistenerCount(dest,"error")&&dest.emit("error",er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}function unpipe(){debug("unpipe"),src.unpipe(dest)}var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==!1)&&dest!==process.stdout&&dest!==process.stderr,endFn=doEnd?onend:cleanup;state.endEmitted?processNextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=!1,increasedAwaitDrain=!1;return src.on("data",ondata),prependListener(dest,"error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState;if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes?this:(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this),this);if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var _i=0;_i<len;_i++)dests[_i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);return i===-1?this:(state.pipes.splice(i,1),state.pipesCount-=1,1===state.pipesCount&&(state.pipes=state.pipes[0]),dest.emit("unpipe",this),this)},Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if("data"===ev)this._readableState.flowing!==!1&&this.resume();else if("readable"===ev){var state=this._readableState;state.endEmitted||state.readableListening||(state.readableListening=state.needReadable=!0,state.emittedReadable=!1,state.reading?state.length&&emitReadable(this,state):processNextTick(nReadingNextTick,this))}return res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!0,resume(this,state)),this},Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this},Readable.prototype.wrap=function(stream){var state=this._readableState,paused=!1,self=this;stream.on("end",function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&self.push(chunk)}self.push(null)}),stream.on("data",function(chunk){if(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),(!state.objectMode||null!==chunk&&void 0!==chunk)&&(state.objectMode||chunk&&chunk.length)){var ret=self.push(chunk);ret||(paused=!0,stream.pause())}});for(var i in stream)void 0===this[i]&&"function"==typeof stream[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));var events=["error","close","destroy","pause","resume"];return forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))}),self._read=function(n){debug("wrapped _read",n),paused&&(paused=!1,stream.resume())},self},Readable._fromList=fromList}).call(this,require("_process"))},{"./_stream_duplex":156,"./internal/streams/BufferList":161,_process:153,buffer:6,"buffer-shims":5,"core-util-is":22,events:27,inherits:45,isarray:48,"process-nextick-args":152,"string_decoder/":183,util:4}],159:[function(require,module,exports){"use strict";function TransformState(stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=!1;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null,ts.writecb=null,null!==data&&void 0!==data&&stream.push(data),cb(er);var rs=stream._readableState;rs.reading=!1,(rs.needReadable||rs.length<rs.highWaterMark)&&stream._read(rs.highWaterMark)}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options),this._transformState=new TransformState(this);var stream=this;this._readableState.needReadable=!0,this._readableState.sync=!1,options&&("function"==typeof options.transform&&(this._transform=options.transform),"function"==typeof options.flush&&(this._flush=options.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(er){done(stream,er)}):done(stream)})}function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState,ts=stream._transformState;if(ws.length)throw new Error("Calling transform done when ws.length != 0");if(ts.transforming)throw new Error("Calling transform done when still transforming");return stream.push(null)}module.exports=Transform;var Duplex=require("./_stream_duplex"),util=require("core-util-is");util.inherits=require("inherits"),util.inherits(Transform,Duplex),Transform.prototype.push=function(chunk,encoding){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,chunk,encoding)},Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("Not implemented")},Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;if(ts.writecb=cb,ts.writechunk=chunk,ts.writeencoding=encoding,!ts.transforming){var rs=this._readableState;(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)&&this._read(rs.highWaterMark)}},Transform.prototype._read=function(n){var ts=this._transformState;null!==ts.writechunk&&ts.writecb&&!ts.transforming?(ts.transforming=!0,this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)):ts.needTransform=!0}},{"./_stream_duplex":156,"core-util-is":22,inherits:45}],160:[function(require,module,exports){(function(process){"use strict";function nop(){}function WriteReq(chunk,encoding,cb){this.chunk=chunk,this.encoding=encoding,this.callback=cb,this.next=null}function WritableState(options,stream){Duplex=Duplex||require("./_stream_duplex"),options=options||{},this.objectMode=!!options.objectMode,stream instanceof Duplex&&(this.objectMode=this.objectMode||!!options.writableObjectMode);var hwm=options.highWaterMark,defaultHwm=this.objectMode?16:16384;this.highWaterMark=hwm||0===hwm?hwm:defaultHwm,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var noDecode=options.decodeStrings===!1;this.decodeStrings=!noDecode,this.defaultEncoding=options.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(er){onwrite(stream,er)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}function Writable(options){return Duplex=Duplex||require("./_stream_duplex"),this instanceof Writable||this instanceof Duplex?(this._writableState=new WritableState(options,this),this.writable=!0,options&&("function"==typeof options.write&&(this._write=options.write),"function"==typeof options.writev&&(this._writev=options.writev)),void Stream.call(this)):new Writable(options)}function writeAfterEnd(stream,cb){var er=new Error("write after end");stream.emit("error",er),processNextTick(cb,er)}function validChunk(stream,state,chunk,cb){var valid=!0,er=!1;return null===chunk?er=new TypeError("May not write null values to stream"):Buffer.isBuffer(chunk)||"string"==typeof chunk||void 0===chunk||state.objectMode||(er=new TypeError("Invalid non-string/buffer chunk")),er&&(stream.emit("error",er),processNextTick(cb,er),valid=!1),valid}function decodeChunk(state,chunk,encoding){return state.objectMode||state.decodeStrings===!1||"string"!=typeof chunk||(chunk=bufferShim.from(chunk,encoding)),chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding),Buffer.isBuffer(chunk)&&(encoding="buffer");var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(ret||(state.needDrain=!0),state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest=new WriteReq(chunk,encoding,cb),last?last.next=state.lastBufferedRequest:state.bufferedRequest=state.lastBufferedRequest,state.bufferedRequestCount+=1}else doWrite(stream,state,!1,len,chunk,encoding,cb);return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len,state.writecb=cb,state.writing=!0,state.sync=!0,writev?stream._writev(chunk,state.onwrite):stream._write(chunk,encoding,state.onwrite),state.sync=!1}function onwriteError(stream,state,sync,er,cb){--state.pendingcb,sync?processNextTick(cb,er):cb(er),stream._writableState.errorEmitted=!0,stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=!1,state.writecb=null,state.length-=state.writelen,state.writelen=0}function onwrite(stream,er){var state=stream._writableState,sync=state.sync,cb=state.writecb;if(onwriteStateUpdate(state),er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state);finished||state.corked||state.bufferProcessing||!state.bufferedRequest||clearBuffer(stream,state),sync?asyncWrite(afterWrite,stream,state,finished,cb):afterWrite(stream,state,finished,cb)}}function afterWrite(stream,state,finished,cb){finished||onwriteDrain(stream,state),state.pendingcb--,cb(),finishMaybe(stream,state)}function onwriteDrain(stream,state){0===state.length&&state.needDrain&&(state.needDrain=!1,stream.emit("drain"))}function clearBuffer(stream,state){state.bufferProcessing=!0;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l=state.bufferedRequestCount,buffer=new Array(l),holder=state.corkedRequestsFree;holder.entry=entry;for(var count=0;entry;)buffer[count]=entry,entry=entry.next,count+=1;doWrite(stream,state,!0,state.length,buffer,"",holder.finish),state.pendingcb++,state.lastBufferedRequest=null,holder.next?(state.corkedRequestsFree=holder.next,holder.next=null):state.corkedRequestsFree=new CorkedRequest(state)}else{for(;entry;){var chunk=entry.chunk,encoding=entry.encoding,cb=entry.callback,len=state.objectMode?1:chunk.length;if(doWrite(stream,state,!1,len,chunk,encoding,cb),entry=entry.next,state.writing)break}null===entry&&(state.lastBufferedRequest=null)}state.bufferedRequestCount=0,state.bufferedRequest=entry,state.bufferProcessing=!1}function needFinish(state){return state.ending&&0===state.length&&null===state.bufferedRequest&&!state.finished&&!state.writing}function prefinish(stream,state){state.prefinished||(state.prefinished=!0,stream.emit("prefinish"))}function finishMaybe(stream,state){var need=needFinish(state);return need&&(0===state.pendingcb?(prefinish(stream,state),state.finished=!0,stream.emit("finish")):prefinish(stream,state)),need}function endWritable(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?processNextTick(cb):stream.once("finish",cb)),state.ended=!0,stream.writable=!1}function CorkedRequest(state){var _this=this;this.next=null,this.entry=null,this.finish=function(err){var entry=_this.entry;for(_this.entry=null;entry;){var cb=entry.callback;state.pendingcb--,cb(err),entry=entry.next}state.corkedRequestsFree?state.corkedRequestsFree.next=_this:state.corkedRequestsFree=_this}}module.exports=Writable;var processNextTick=require("process-nextick-args"),asyncWrite=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:processNextTick;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var Stream,internalUtil={deprecate:require("util-deprecate")};!function(){try{Stream=require("stream")}catch(_){}finally{Stream||(Stream=require("events").EventEmitter)}}();var Buffer=require("buffer").Buffer,bufferShim=require("buffer-shims");util.inherits(Writable,Stream);var Duplex;WritableState.prototype.getBuffer=function(){for(var current=this.bufferedRequest,out=[];current;)out.push(current),current=current.next;return out},function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(_){}}();var Duplex;Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState,ret=!1;return"function"==typeof encoding&&(cb=encoding,encoding=null),Buffer.isBuffer(chunk)?encoding="buffer":encoding||(encoding=state.defaultEncoding),"function"!=typeof cb&&(cb=nop),state.ended?writeAfterEnd(this,cb):validChunk(this,state,chunk,cb)&&(state.pendingcb++,ret=writeOrBuffer(this,state,chunk,encoding,cb)),ret},Writable.prototype.cork=function(){var state=this._writableState;state.corked++},Writable.prototype.uncork=function(){var state=this._writableState;state.corked&&(state.corked--,state.writing||state.corked||state.finished||state.bufferProcessing||!state.bufferedRequest||clearBuffer(this,state))},Writable.prototype.setDefaultEncoding=function(encoding){if("string"==typeof encoding&&(encoding=encoding.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+encoding);return this._writableState.defaultEncoding=encoding,this},Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;"function"==typeof chunk?(cb=chunk,chunk=null,encoding=null):"function"==typeof encoding&&(cb=encoding,encoding=null),null!==chunk&&void 0!==chunk&&this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||state.finished||endWritable(this,state,cb)}}).call(this,require("_process"))},{"./_stream_duplex":156,_process:153,buffer:6,"buffer-shims":5,"core-util-is":22,events:27,inherits:45,"process-nextick-args":152,"util-deprecate":194}],161:[function(require,module,exports){"use strict";function BufferList(){this.head=null,this.tail=null,this.length=0}var bufferShim=(require("buffer").Buffer,require("buffer-shims"));module.exports=BufferList,BufferList.prototype.push=function(v){var entry={data:v,next:null};this.length>0?this.tail.next=entry:this.head=entry,this.tail=entry,++this.length},BufferList.prototype.unshift=function(v){var entry={data:v,next:this.head};0===this.length&&(this.tail=entry),this.head=entry,++this.length},BufferList.prototype.shift=function(){if(0!==this.length){var ret=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,ret}},BufferList.prototype.clear=function(){this.head=this.tail=null,this.length=0},BufferList.prototype.join=function(s){if(0===this.length)return"";for(var p=this.head,ret=""+p.data;p=p.next;)ret+=s+p.data;return ret},BufferList.prototype.concat=function(n){if(0===this.length)return bufferShim.alloc(0);if(1===this.length)return this.head.data;for(var ret=bufferShim.allocUnsafe(n>>>0),p=this.head,i=0;p;)p.data.copy(ret,i),i+=p.data.length,p=p.next;return ret}},{buffer:6,"buffer-shims":5}],162:[function(require,module,exports){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":157}],163:[function(require,module,exports){
+(function(process){var Stream=function(){try{return require("stream")}catch(_){}}();exports=module.exports=require("./lib/_stream_readable.js"),exports.Stream=Stream||exports,exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js"),!process.browser&&"disable"===process.env.READABLE_STREAM&&Stream&&(module.exports=Stream)}).call(this,require("_process"))},{"./lib/_stream_duplex.js":156,"./lib/_stream_passthrough.js":157,"./lib/_stream_readable.js":158,"./lib/_stream_transform.js":159,"./lib/_stream_writable.js":160,_process:153}],164:[function(require,module,exports){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":159}],165:[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":160}],166:[function(require,module,exports){(function(Buffer){function bytesToWords(bytes){for(var words=[],i=0,b=0;i<bytes.length;i++,b+=8)words[b>>>5]|=bytes[i]<<24-b%32;return words}function wordsToBytes(words){for(var bytes=[],b=0;b<32*words.length;b+=8)bytes.push(words[b>>>5]>>>24-b%32&255);return bytes}function processBlock(H,M,offset){for(var i=0;i<16;i++){var offset_i=offset+i,M_offset_i=M[offset_i];M[offset_i]=16711935&(M_offset_i<<8|M_offset_i>>>24)|4278255360&(M_offset_i<<24|M_offset_i>>>8)}var al,bl,cl,dl,el,ar,br,cr,dr,er;ar=al=H[0],br=bl=H[1],cr=cl=H[2],dr=dl=H[3],er=el=H[4];var t;for(i=0;i<80;i+=1)t=al+M[offset+zl[i]]|0,t+=i<16?f1(bl,cl,dl)+hl[0]:i<32?f2(bl,cl,dl)+hl[1]:i<48?f3(bl,cl,dl)+hl[2]:i<64?f4(bl,cl,dl)+hl[3]:f5(bl,cl,dl)+hl[4],t|=0,t=rotl(t,sl[i]),t=t+el|0,al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=t,t=ar+M[offset+zr[i]]|0,t+=i<16?f5(br,cr,dr)+hr[0]:i<32?f4(br,cr,dr)+hr[1]:i<48?f3(br,cr,dr)+hr[2]:i<64?f2(br,cr,dr)+hr[3]:f1(br,cr,dr)+hr[4],t|=0,t=rotl(t,sr[i]),t=t+er|0,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=t;t=H[1]+cl+dr|0,H[1]=H[2]+dl+er|0,H[2]=H[3]+el+ar|0,H[3]=H[4]+al+br|0,H[4]=H[0]+bl+cr|0,H[0]=t}function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof message&&(message=new Buffer(message,"utf8"));var m=bytesToWords(message),nBitsLeft=8*message.length,nBitsTotal=8*message.length;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,m[(nBitsLeft+64>>>9<<4)+14]=16711935&(nBitsTotal<<8|nBitsTotal>>>24)|4278255360&(nBitsTotal<<24|nBitsTotal>>>8);for(var i=0;i<m.length;i+=16)processBlock(H,m,i);for(i=0;i<5;i++){var H_i=H[i];H[i]=16711935&(H_i<<8|H_i>>>24)|4278255360&(H_i<<24|H_i>>>8)}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
@@ -72,62 +57,40 @@ Redistribution and use in source and binary forms, with or without modification,
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];module.exports=ripemd160}).call(this,require("buffer").Buffer)},{buffer:2}],43:[function(require,module,exports){(function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=new Buffer(data,enc));for(var l=this._len+=data.length,s=this._s||0,f=0,buffer=this._block;s<l;){for(var t=Math.min(data.length,f+this._blockSize-s%this._blockSize),ch=t-f,i=0;i<ch;i++)buffer[s%this._blockSize+i]=data[i+f];s+=ch,f+=ch,s%this._blockSize===0&&this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var l=8*this._len;this._block[this._len%this._blockSize]=128,this._block.fill(0,this._len%this._blockSize+1),l%(8*this._blockSize)>=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(l,this._blockSize-4);var hash=this._update(this._block)||this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash}).call(this,require("buffer").Buffer)},{buffer:2}],44:[function(require,module,exports){var exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":45,"./sha1":46,"./sha224":47,"./sha256":48,"./sha384":49,"./sha512":50}],45:[function(require,module,exports){(function(Buffer){function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("inherits"),Hash=require("./hash"),W=new Array(80);inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=-271733879,this._c=-1732584194,this._d=271733878,this._e=-1009589776,this},Sha.prototype._update=function(M){function calcW(){return W[j-3]^W[j-8]^W[j-14]^W[j-16]}function loop(w,f){W[j]=w;var t=rol(a,5)+f+e+w+k;e=d,d=c,c=rol(b,30),b=a,a=t,j++}var k,W=this._w,a=this._a,b=this._b,c=this._c,d=this._d,e=this._e,j=0;for(k=1518500249;j<16;)loop(M.readInt32BE(4*j),b&c|~b&d);for(;j<20;)loop(calcW(),b&c|~b&d);for(k=1859775393;j<40;)loop(calcW(),b^c^d);for(k=-1894007588;j<60;)loop(calcW(),b&c|b&d|c&d);for(k=-899497514;j<80;)loop(calcW(),b^c^d);this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha}).call(this,require("buffer").Buffer)},{"./hash":43,buffer:2,inherits:41}],46:[function(require,module,exports){(function(Buffer){function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rol(num,cnt){return num<<cnt|num>>>32-cnt}var inherits=require("inherits"),Hash=require("./hash"),W=new Array(80);inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=-271733879,this._c=-1732584194,this._d=271733878,this._e=-1009589776,this},Sha1.prototype._update=function(M){function calcW(){return rol(W[j-3]^W[j-8]^W[j-14]^W[j-16],1)}function loop(w,f){W[j]=w;var t=rol(a,5)+f+e+w+k;e=d,d=c,c=rol(b,30),b=a,a=t,j++}var k,W=this._w,a=this._a,b=this._b,c=this._c,d=this._d,e=this._e,j=0;for(k=1518500249;j<16;)loop(M.readInt32BE(4*j),b&c|~b&d);for(;j<20;)loop(calcW(),b&c|~b&d);for(k=1859775393;j<40;)loop(calcW(),b^c^d);for(k=-1894007588;j<60;)loop(calcW(),b&c|b&d|c&d);for(k=-899497514;j<80;)loop(calcW(),b^c^d);this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1}).call(this,require("buffer").Buffer)},{"./hash":43,buffer:2,inherits:41}],47:[function(require,module,exports){(function(Buffer){function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),W=new Array(64);inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=-1056596264,this._b=914150663,this._c=812702999,this._d=-150054599,this._e=-4191439,this._f=1750603025,this._g=1694076839,this._h=-1090891868,this},Sha224.prototype._hash=function(){var H=new Buffer(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224}).call(this,require("buffer").Buffer)},{"./hash":43,"./sha256":48,buffer:2,inherits:41}],48:[function(require,module,exports){(function(Buffer){function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function Ch(x,y,z){return z^x&(y^z)}function Maj(x,y,z){return x&y|z&(x|y)}function Sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function Sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function Gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function Gamma1(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){function calcW(){return Gamma1(W[j-2])+W[j-7]+Gamma0(W[j-15])+W[j-16]}function loop(w){W[j]=w;var T1=h+Sigma1(e)+Ch(e,f,g)+K[j]+w,T2=Sigma0(a)+Maj(a,b,c);h=g,g=f,f=e,e=d+T1,d=c,c=b,b=a,a=T1+T2,j++}for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,j=0;j<16;)loop(M.readInt32BE(4*j));for(;j<64;)loop(calcW());this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256}).call(this,require("buffer").Buffer)},{"./hash":43,buffer:2,inherits:41}],49:[function(require,module,exports){(function(Buffer){function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),W=new Array(160);inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._a=-876896931,this._b=1654270250,this._c=-1856437926,this._d=355462360,this._e=1731405415,this._f=-1900787065,this._g=-619958771,this._h=1203062813,this._al=-1056596264,this._bl=914150663,this._cl=812702999,this._dl=-150054599,this._el=-4191439,this._fl=1750603025,this._gl=1694076839,this._hl=-1090891868,this},Sha384.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(48);return writeInt64BE(this._a,this._al,0),writeInt64BE(this._b,this._bl,8),writeInt64BE(this._c,this._cl,16),writeInt64BE(this._d,this._dl,24),writeInt64BE(this._e,this._el,32),writeInt64BE(this._f,this._fl,40),H},module.exports=Sha384}).call(this,require("buffer").Buffer)},{"./hash":43,"./sha512":50,buffer:2,inherits:41}],50:[function(require,module,exports){(function(Buffer){function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function Ch(x,y,z){return z^x&(y^z)}function Maj(x,y,z){return x&y|z&(x|y)}function Sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function Sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._al=-205731576,this._bl=-2067093701,this._cl=-23791573,this._dl=1595750129,this._el=-1377402159,this._fl=725511199,this._gl=-79577749,this._hl=327033209,this},Sha512.prototype._update=function(M){function calcW(){var x=W[j-30],xl=W[j-30+1],gamma0=Gamma0(x,xl),gamma0l=Gamma0l(xl,x);x=W[j-4],xl=W[j-4+1];var gamma1=Gamma1(x,xl),gamma1l=Gamma1l(xl,x),Wi7=W[j-14],Wi7l=W[j-14+1],Wi16=W[j-32],Wi16l=W[j-32+1];Wil=gamma0l+Wi7l,Wi=gamma0+Wi7+(Wil>>>0<gamma0l>>>0?1:0),Wil+=gamma1l,Wi=Wi+gamma1+(Wil>>>0<gamma1l>>>0?1:0),Wil+=Wi16l,Wi=Wi+Wi16+(Wil>>>0<Wi16l>>>0?1:0)}function loop(){W[j]=Wi,W[j+1]=Wil;var maj=Maj(a,b,c),majl=Maj(al,bl,cl),sigma0h=Sigma0(a,al),sigma0l=Sigma0(al,a),sigma1h=Sigma1(e,el),sigma1l=Sigma1(el,e),Ki=K[j],Kil=K[j+1],ch=Ch(e,f,g),chl=Ch(el,fl,gl),t1l=hl+sigma1l,t1=h+sigma1h+(t1l>>>0<hl>>>0?1:0);t1l+=chl,t1=t1+ch+(t1l>>>0<chl>>>0?1:0),t1l+=Kil,t1=t1+Ki+(t1l>>>0<Kil>>>0?1:0),t1l+=Wil,t1=t1+Wi+(t1l>>>0<Wil>>>0?1:0);var t2l=sigma0l+majl,t2=sigma0h+maj+(t2l>>>0<sigma0l>>>0?1:0);h=g,hl=gl,g=f,gl=fl,f=e,fl=el,el=dl+t1l|0,e=d+t1+(el>>>0<dl>>>0?1:0)|0,d=c,dl=cl,c=b,cl=bl,b=a,bl=al,al=t1l+t2l|0,a=t1+t2+(al>>>0<t1l>>>0?1:0)|0,i++,j+=2}for(var Wi,Wil,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0,j=0;i<16;)Wi=M.readInt32BE(4*j),Wil=M.readInt32BE(4*j+4),loop();for(;i<80;)calcW(),loop();this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._a=this._a+a+(this._al>>>0<al>>>0?1:0)|0,this._b=this._b+b+(this._bl>>>0<bl>>>0?1:0)|0,this._c=this._c+c+(this._cl>>>0<cl>>>0?1:0)|0,this._d=this._d+d+(this._dl>>>0<dl>>>0?1:0)|0,this._e=this._e+e+(this._el>>>0<el>>>0?1:0)|0,this._f=this._f+f+(this._fl>>>0<fl>>>0?1:0)|0,this._g=this._g+g+(this._gl>>>0<gl>>>0?1:0)|0,this._h=this._h+h+(this._hl>>>0<hl>>>0?1:0)|0},Sha512.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(64);return writeInt64BE(this._a,this._al,0),writeInt64BE(this._b,this._bl,8),writeInt64BE(this._c,this._cl,16),writeInt64BE(this._d,this._dl,24),writeInt64BE(this._e,this._el,32),writeInt64BE(this._f,this._fl,40),writeInt64BE(this._g,this._gl,48),writeInt64BE(this._h,this._hl,56),H},module.exports=Sha512}).call(this,require("buffer").Buffer)},{"./hash":43,buffer:2,inherits:41}],51:[function(require,module,exports){(function(Buffer){"use strict";function Hmac(alg,key){Transform.call(this),alg=alg.toLowerCase(),"string"==typeof key&&(key=new Buffer(key));var blocksize="sha512"===alg||"sha384"===alg?128:64;this._alg=alg,this._key=key,key.length>blocksize?key=createHash(alg).update(key).digest():key.length<blocksize&&(key=Buffer.concat([key,ZEROS],blocksize));for(var ipad=this._ipad=new Buffer(blocksize),opad=this._opad=new Buffer(blocksize),i=0;i<blocksize;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=createHash(alg).update(ipad)}var createHash=require("create-hash/browser"),inherits=require("inherits"),Transform=require("stream").Transform,ZEROS=new Buffer(128);ZEROS.fill(0),inherits(Hmac,Transform),Hmac.prototype.update=function(data,enc){return this._hash.update(data,enc),this},Hmac.prototype._transform=function(data,_,next){this._hash.update(data),next()},Hmac.prototype._flush=function(next){this.push(this.digest()),next()},Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)},module.exports=function(alg,key){return new Hmac(alg,key)}}).call(this,require("buffer").Buffer)},{buffer:2,"create-hash/browser":37,inherits:52,stream:25}],52:[function(require,module,exports){arguments[4][7][0].apply(exports,arguments)},{dup:7}],53:[function(require,module,exports){function WildEmitter(){}module.exports=WildEmitter,WildEmitter.mixin=function(constructor){var prototype=constructor.prototype||constructor;prototype.isWildEmitter=!0,prototype.on=function(event,groupName,fn){this.callbacks=this.callbacks||{};var hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return func._groupName=group,(this.callbacks[event]=this.callbacks[event]||[]).push(func),this},prototype.once=function(event,groupName,fn){function on(){self.off(event,on),func.apply(this,arguments)}var self=this,hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return this.on(event,group,on),this},prototype.releaseGroup=function(groupName){this.callbacks=this.callbacks||{};var item,i,len,handlers;for(item in this.callbacks)for(handlers=this.callbacks[item],i=0,len=handlers.length;i<len;i++)handlers[i]._groupName===groupName&&(handlers.splice(i,1),i--,len--);return this},prototype.off=function(event,fn){this.callbacks=this.callbacks||{};var i,callbacks=this.callbacks[event];return callbacks?1===arguments.length?(delete this.callbacks[event],this):(i=callbacks.indexOf(fn),callbacks.splice(i,1),0===callbacks.length&&delete this.callbacks[event],this):this},prototype.emit=function(event){this.callbacks=this.callbacks||{};var i,len,listeners,args=[].slice.call(arguments,1),callbacks=this.callbacks[event],specialCallbacks=this.getWildcardCallbacks(event);if(callbacks)for(listeners=callbacks.slice(),i=0,len=listeners.length;i<len&&listeners[i];++i)listeners[i].apply(this,args);if(specialCallbacks)for(len=specialCallbacks.length,listeners=specialCallbacks.slice(),i=0,len=listeners.length;i<len&&listeners[i];++i)listeners[i].apply(this,[event].concat(args));return this},prototype.getWildcardCallbacks=function(eventName){this.callbacks=this.callbacks||{};var item,split,result=[];for(item in this.callbacks)split=item.split("*"),("*"===item||2===split.length&&eventName.slice(0,split[0].length)===split[0])&&(result=result.concat(this.callbacks[item]));return result}},WildEmitter.mixin(WildEmitter)},{}],54:[function(require,module,exports){function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&void 0===thisArg&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}var arrayEach=require("lodash._arrayeach"),baseEach=require("lodash._baseeach"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),forEach=createForEach(arrayEach,baseEach);module.exports=forEach},{"lodash._arrayeach":55,"lodash._baseeach":56,"lodash._bindcallback":60,"lodash.isarray":61}],55:[function(require,module,exports){function arrayEach(array,iteratee){for(var index=-1,length=array.length;++index<length&&iteratee(array[index],index,array)!==!1;);return array}module.exports=arrayEach},{}],56:[function(require,module,exports){function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:++index<length)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:++index<length;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var keys=require("lodash.keys"),MAX_SAFE_INTEGER=9007199254740991,baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor(),getLength=baseProperty("length");module.exports=baseEach},{"lodash.keys":57}],57:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&value<length}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,allowIndexes=!!length&&isLength(length)&&(isArray(object)||isArguments(object)),index=-1,result=[];++index<propsLength;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;++index<length;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}var getNative=require("lodash._getnative"),isArguments=require("lodash.isarguments"),isArray=require("lodash.isarray"),reIsUint=/^\d+$/,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeKeys=getNative(Object,"keys"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length"),keys=nativeKeys?function(object){var Ctor=null==object?void 0:object.constructor;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isArrayLike(object)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys;module.exports=keys},{"lodash._getnative":58,"lodash.isarguments":59,"lodash.isarray":61}],58:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null!=value&&(isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value))}var funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");module.exports=getNative},{}],59:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isArguments(value){return isObjectLike(value)&&isArrayLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")}var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,propertyIsEnumerable=objectProto.propertyIsEnumerable,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isArguments},{}],60:[function(require,module,exports){function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(void 0===thisArg)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function identity(value){return value}module.exports=bindCallback},{}],61:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function getNative(object,key){var value=null==object?void 0:object[key];return isNative(value)?value:void 0}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function isNative(value){return null!=value&&(isFunction(value)?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value))}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag};module.exports=isArray},{}],62:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function toObject(value){return isObject(value)?value:Object(value)}function pluck(collection,path){return map(collection,property(path))}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var baseGet=require("lodash._baseget"),toPath=require("lodash._topath"),isArray=require("lodash.isarray"),map=require("lodash.map"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;module.exports=pluck},{"lodash._baseget":63,"lodash._topath":64,"lodash.isarray":65,"lodash.map":66}],63:[function(require,module,exports){function baseGet(object,path,pathKey){if(null!=object){void 0!==pathKey&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&index<length;)object=object[path[index++]];return index&&index==length?object:void 0}}function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}module.exports=baseGet},{}],64:[function(require,module,exports){function baseToString(value){return null==value?"":value+""}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}var isArray=require("lodash.isarray"),rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reEscapeChar=/\\(\\)?/g;module.exports=toPath},{"lodash.isarray":65}],65:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],66:[function(require,module,exports){function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];return baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)}),result}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function map(collection,iteratee,thisArg){var func=isArray(collection)?arrayMap:baseMap;return iteratee=baseCallback(iteratee,thisArg,3),func(collection,iteratee)}var arrayMap=require("lodash._arraymap"),baseCallback=require("lodash._basecallback"),baseEach=require("lodash._baseeach"),isArray=require("lodash.isarray"),MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=map},{"lodash._arraymap":67,"lodash._basecallback":68,"lodash._baseeach":73,"lodash.isarray":65}],67:[function(require,module,exports){function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);++index<length;)result[index]=iteratee(array[index],index,array);return result}module.exports=arrayMap},{}],68:[function(require,module,exports){function baseToString(value){return null==value?"":value+""}function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?void 0===thisArg?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):void 0===thisArg?property(func):baseMatchesProperty(func,thisArg)}function baseGet(object,path,pathKey){if(null!=object){void 0!==pathKey&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=0,length=path.length;null!=object&&index<length;)object=object[path[index++]];return index&&index==length?object:void 0}}function baseIsMatch(object,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(null==object)return!length;for(object=toObject(object);index--;){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object))return!1}for(;++index<length;){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(void 0===objValue&&!(key in object))return!1}else{var result=customizer?customizer(objValue,srcValue,key):void 0;if(!(void 0===result?baseIsEqual(srcValue,objValue,customizer,!0):result))return!1}}return!0}function baseMatches(source){var matchData=getMatchData(source);if(1==matchData.length&&matchData[0][2]){var key=matchData[0][0],value=matchData[0][1];return function(object){return null!=object&&(object[key]===value&&(void 0!==value||key in toObject(object)))}}return function(object){return baseIsMatch(object,matchData)}}function baseMatchesProperty(path,srcValue){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(srcValue),pathKey=path+"";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),(isArr||!isCommon)&&!(key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===srcValue?void 0!==srcValue||key in object:baseIsEqual(srcValue,object[key],void 0,!0)}}function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,start<0&&(start=-start>length?0:length+start),
-end=void 0===end||end>length?length:+end||0,end<0&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);++index<length;)result[index]=array[index+start];return result}function getMatchData(object){for(var result=pairs(object),length=result.length;length--;)result[length][2]=isStrictComparable(result[length][1]);return result}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isStrictComparable(value){return value===value&&!isObject(value)}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}function last(array){var length=array?array.length:0;return length?array[length-1]:void 0}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback"),isArray=require("lodash.isarray"),pairs=require("lodash.pairs"),reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/,rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,reEscapeChar=/\\(\\)?/g;module.exports=baseCallback},{"lodash._baseisequal":69,"lodash._bindcallback":71,"lodash.isarray":65,"lodash.pairs":72}],69:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function arraySome(array,predicate){for(var index=-1,length=array.length;++index<length;)if(predicate(array[index],index,array))return!0;return!1}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){return value===other||(null==value||null==other||!isObject(value)&&!isObjectLike(other)?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB))}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped)return equalFunc(objIsWrapped?object.value():object,othIsWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;++index<arrLength;){var arrValue=array[index],othValue=other[index],result=customizer?customizer(isLoose?othValue:arrValue,isLoose?arrValue:othValue,index):void 0;if(void 0!==result){if(result)continue;return!1}if(isLoose){if(!arraySome(other,function(othValue){return arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}))return!1}else if(arrValue!==othValue&&!equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))return!1}return!0}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:object==+other;case regexpTag:case stringTag:return object==other+""}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var index=objLength;index--;){var key=objProps[index];if(!(isLoose?key in other:hasOwnProperty.call(other,key)))return!1}for(var skipCtor=isLoose;++index<objLength;){key=objProps[index];var objValue=object[key],othValue=other[key],result=customizer?customizer(isLoose?othValue:objValue,isLoose?objValue:othValue,key):void 0;if(!(void 0===result?equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB):result))return!1;skipCtor||(skipCtor="constructor"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var isArray=require("lodash.isarray"),isTypedArray=require("lodash.istypedarray"),keys=require("lodash.keys"),argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",stringTag="[object String]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString;module.exports=baseIsEqual},{"lodash.isarray":65,"lodash.istypedarray":70,"lodash.keys":74}],70:[function(require,module,exports){function isObjectLike(value){return!!value&&"object"==typeof value}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}var argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objToString=objectProto.toString,MAX_SAFE_INTEGER=9007199254740991;module.exports=isTypedArray},{}],71:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60}],72:[function(require,module,exports){function toObject(value){return isObject(value)?value:Object(value)}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}function pairs(object){object=toObject(object);for(var index=-1,props=keys(object),length=props.length,result=Array(length);++index<length;){var key=props[index];result[index]=[key,object[key]]}return result}var keys=require("lodash.keys");module.exports=pairs},{"lodash.keys":74}],73:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{dup:56,"lodash.keys":74}],74:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57,"lodash._getnative":75,"lodash.isarguments":76,"lodash.isarray":65}],75:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],76:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{dup:59}],77:[function(require,module,exports){var toSDP=require("./lib/tosdp"),toJSON=require("./lib/tojson");exports.toIncomingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"incoming"})},exports.toOutgoingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"outgoing"})},exports.toIncomingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"incoming"})},exports.toOutgoingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"outgoing"})},exports.toIncomingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"incoming"})},exports.toOutgoingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"outgoing"})},exports.toIncomingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"incoming"})},exports.toOutgoingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"outgoing"})},exports.toCandidateSDP=toSDP.toCandidateSDP,exports.toMediaSDP=toSDP.toMediaSDP,exports.toSessionSDP=toSDP.toSessionSDP,exports.toIncomingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"incoming",creators:creators})},exports.toOutgoingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"outgoing",creators:creators})},exports.toIncomingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"incoming",creators:creators})},exports.toOutgoingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"outgoing",creators:creators})},exports.toIncomingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"outgoing",creator:creator})},exports.toIncomingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"outgoing",creator:creator})},exports.toCandidateJSON=toJSON.toCandidateJSON,exports.toMediaJSON=toJSON.toMediaJSON,exports.toSessionJSON=toJSON.toSessionJSON},{"./lib/tojson":80,"./lib/tosdp":81}],78:[function(require,module,exports){exports.lines=function(sdp){return sdp.split("\r\n").filter(function(line){return line.length>0})},exports.findLine=function(prefix,mediaLines,sessionLines){for(var prefixLength=prefix.length,i=0;i<mediaLines.length;i++)if(mediaLines[i].substr(0,prefixLength)===prefix)return mediaLines[i];if(!sessionLines)return!1;for(var j=0;j<sessionLines.length;j++)if(sessionLines[j].substr(0,prefixLength)===prefix)return sessionLines[j];return!1},exports.findLines=function(prefix,mediaLines,sessionLines){for(var results=[],prefixLength=prefix.length,i=0;i<mediaLines.length;i++)mediaLines[i].substr(0,prefixLength)===prefix&&results.push(mediaLines[i]);if(results.length||!sessionLines)return results;for(var j=0;j<sessionLines.length;j++)sessionLines[j].substr(0,prefixLength)===prefix&&results.push(sessionLines[j]);return results},exports.mline=function(line){for(var parts=line.substr(2).split(" "),parsed={media:parts[0],port:parts[1],proto:parts[2],formats:[]},i=3;i<parts.length;i++)parts[i]&&parsed.formats.push(parts[i]);return parsed},exports.rtpmap=function(line){var parts=line.substr(9).split(" "),parsed={id:parts.shift()};return parts=parts[0].split("/"),parsed.name=parts[0],parsed.clockrate=parts[1],parsed.channels=3==parts.length?parts[2]:"1",parsed},exports.sctpmap=function(line){var parts=line.substr(10).split(" "),parsed={number:parts.shift(),protocol:parts.shift(),streams:parts.shift()};return parsed},exports.fmtp=function(line){for(var kv,key,value,parts=line.substr(line.indexOf(" ")+1).split(";"),parsed=[],i=0;i<parts.length;i++)kv=parts[i].split("="),key=kv[0].trim(),value=kv[1],key&&value?parsed.push({key:key,value:value}):key&&parsed.push({key:"",value:key});return parsed},exports.crypto=function(line){var parts=line.substr(9).split(" "),parsed={tag:parts[0],cipherSuite:parts[1],keyParams:parts[2],sessionParams:parts.slice(3).join(" ")};return parsed},exports.fingerprint=function(line){var parts=line.substr(14).split(" ");return{hash:parts[0],value:parts[1]}},exports.extmap=function(line){var parts=line.substr(9).split(" "),parsed={},idpart=parts.shift(),sp=idpart.indexOf("/");return sp>=0?(parsed.id=idpart.substr(0,sp),parsed.senders=idpart.substr(sp+1)):(parsed.id=idpart,parsed.senders="sendrecv"),parsed.uri=parts.shift()||"",parsed},exports.rtcpfb=function(line){var parts=line.substr(10).split(" "),parsed={};return parsed.id=parts.shift(),parsed.type=parts.shift(),"trr-int"===parsed.type?parsed.value=parts.shift():parsed.subtype=parts.shift()||"",parsed.parameters=parts,parsed},exports.candidate=function(line){var parts;parts=0===line.indexOf("a=candidate:")?line.substring(12).split(" "):line.substring(10).split(" ");for(var candidate={foundation:parts[0],component:parts[1],protocol:parts[2].toLowerCase(),priority:parts[3],ip:parts[4],port:parts[5],type:parts[7],generation:"0"},i=8;i<parts.length;i+=2)"raddr"===parts[i]?candidate.relAddr=parts[i+1]:"rport"===parts[i]?candidate.relPort=parts[i+1]:"generation"===parts[i]?candidate.generation=parts[i+1]:"tcptype"===parts[i]&&(candidate.tcpType=parts[i+1]);return candidate.network="1",candidate},exports.sourceGroups=function(lines){for(var parsed=[],i=0;i<lines.length;i++){var parts=lines[i].substr(13).split(" ");parsed.push({semantics:parts.shift(),sources:parts})}return parsed},exports.sources=function(lines){for(var parsed=[],sources={},i=0;i<lines.length;i++){var parts=lines[i].substr(7).split(" "),ssrc=parts.shift();if(!sources[ssrc]){var source={ssrc:ssrc,parameters:[]};parsed.push(source),sources[ssrc]=source}parts=parts.join(" ").split(":");var attribute=parts.shift(),value=parts.join(":")||null;sources[ssrc].parameters.push({key:attribute,value:value})}return parsed},exports.groups=function(lines){for(var parts,parsed=[],i=0;i<lines.length;i++)parts=lines[i].substr(8).split(" "),parsed.push({semantics:parts.shift(),contents:parts});return parsed},exports.bandwidth=function(line){var parts=line.substr(2).split(":"),parsed={};return parsed.type=parts.shift(),parsed.bandwidth=parts.shift(),parsed},exports.msid=function(line){var data=line.substr(7),parts=data.split(" ");return{msid:data,mslabel:parts[0],label:parts[1]}}},{}],79:[function(require,module,exports){module.exports={initiator:{incoming:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"},outgoing:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"}},responder:{incoming:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"},outgoing:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"}}}},{}],80:[function(require,module,exports){var SENDERS=require("./senders"),parsers=require("./parsers"),idCounter=Math.random();exports._setIdCounter=function(counter){idCounter=counter},exports.toSessionJSON=function(sdp,opts){var i,creators=opts.creators||[],role=opts.role||"initiator",direction=opts.direction||"outgoing",media=sdp.split("\r\nm=");for(i=1;i<media.length;i++)media[i]="m="+media[i],i!==media.length-1&&(media[i]+="\r\n");var session=media.shift()+"\r\n",sessionLines=parsers.lines(session),parsed={},contents=[];for(i=0;i<media.length;i++)contents.push(exports.toMediaJSON(media[i],session,{role:role,direction:direction,creator:creators[i]||"initiator"}));parsed.contents=contents;var groupLines=parsers.findLines("a=group:",sessionLines);return groupLines.length&&(parsed.groups=parsers.groups(groupLines)),parsed},exports.toMediaJSON=function(media,session,opts){var creator=opts.creator||"initiator",role=opts.role||"initiator",direction=opts.direction||"outgoing",lines=parsers.lines(media),sessionLines=parsers.lines(session),mline=parsers.mline(lines[0]),content={creator:creator,name:mline.media,description:{descType:"rtp",media:mline.media,payloads:[],encryption:[],feedback:[],headerExtensions:[]},transport:{transType:"iceUdp",candidates:[],fingerprints:[]}};"application"==mline.media&&(content.description={descType:"datachannel"},content.transport.sctp=[]);var desc=content.description,trans=content.transport,mid=parsers.findLine("a=mid:",lines);if(mid&&(content.name=mid.substr(6)),parsers.findLine("a=sendrecv",lines,sessionLines)?content.senders="both":parsers.findLine("a=sendonly",lines,sessionLines)?content.senders=SENDERS[role][direction].sendonly:parsers.findLine("a=recvonly",lines,sessionLines)?content.senders=SENDERS[role][direction].recvonly:parsers.findLine("a=inactive",lines,sessionLines)&&(content.senders="none"),"rtp"==desc.descType){var bandwidth=parsers.findLine("b=",lines);bandwidth&&(desc.bandwidth=parsers.bandwidth(bandwidth));var ssrc=parsers.findLine("a=ssrc:",lines);ssrc&&(desc.ssrc=ssrc.substr(7).split(" ")[0]);var rtpmapLines=parsers.findLines("a=rtpmap:",lines);rtpmapLines.forEach(function(line){var payload=parsers.rtpmap(line);payload.parameters=[],payload.feedback=[];var fmtpLines=parsers.findLines("a=fmtp:"+payload.id,lines);fmtpLines.forEach(function(line){payload.parameters=parsers.fmtp(line)});var fbLines=parsers.findLines("a=rtcp-fb:"+payload.id,lines);fbLines.forEach(function(line){payload.feedback.push(parsers.rtcpfb(line))}),desc.payloads.push(payload)});var cryptoLines=parsers.findLines("a=crypto:",lines,sessionLines);cryptoLines.forEach(function(line){desc.encryption.push(parsers.crypto(line))}),parsers.findLine("a=rtcp-mux",lines)&&(desc.mux=!0);var fbLines=parsers.findLines("a=rtcp-fb:*",lines);fbLines.forEach(function(line){desc.feedback.push(parsers.rtcpfb(line))});var extLines=parsers.findLines("a=extmap:",lines);extLines.forEach(function(line){var ext=parsers.extmap(line);ext.senders=SENDERS[role][direction][ext.senders],desc.headerExtensions.push(ext)});var ssrcGroupLines=parsers.findLines("a=ssrc-group:",lines);desc.sourceGroups=parsers.sourceGroups(ssrcGroupLines||[]);var ssrcLines=parsers.findLines("a=ssrc:",lines),sources=desc.sources=parsers.sources(ssrcLines||[]),msidLine=parsers.findLine("a=msid:",lines);if(msidLine){var msid=parsers.msid(msidLine);["msid","mslabel","label"].forEach(function(key){for(var i=0;i<sources.length;i++){for(var found=!1,j=0;j<sources[i].parameters.length;j++)sources[i].parameters[j].key===key&&(found=!0);found||sources[i].parameters.push({key:key,value:msid[key]})}})}parsers.findLine("a=x-google-flag:conference",lines,sessionLines)&&(desc.googConferenceFlag=!0)}var fingerprintLines=parsers.findLines("a=fingerprint:",lines,sessionLines),setup=parsers.findLine("a=setup:",lines,sessionLines);fingerprintLines.forEach(function(line){var fp=parsers.fingerprint(line);setup&&(fp.setup=setup.substr(8)),trans.fingerprints.push(fp)});var ufragLine=parsers.findLine("a=ice-ufrag:",lines,sessionLines),pwdLine=parsers.findLine("a=ice-pwd:",lines,sessionLines);if(ufragLine&&pwdLine){trans.ufrag=ufragLine.substr(12),trans.pwd=pwdLine.substr(10),trans.candidates=[];var candidateLines=parsers.findLines("a=candidate:",lines,sessionLines);candidateLines.forEach(function(line){trans.candidates.push(exports.toCandidateJSON(line))})}if("datachannel"==desc.descType){var sctpmapLines=parsers.findLines("a=sctpmap:",lines);sctpmapLines.forEach(function(line){var sctp=parsers.sctpmap(line);trans.sctp.push(sctp)})}return content},exports.toCandidateJSON=function(line){var candidate=parsers.candidate(line.split("\r\n")[0]);return candidate.id=(idCounter++).toString(36).substr(0,12),candidate}},{"./parsers":78,"./senders":79}],81:[function(require,module,exports){var SENDERS=require("./senders");exports.toSessionSDP=function(session,opts){var sid=(opts.role||"initiator",opts.direction||"outgoing",opts.sid||session.sid||Date.now()),time=opts.time||Date.now(),sdp=["v=0","o=- "+sid+" "+time+" IN IP4 0.0.0.0","s=-","t=0 0","a=msid-semantic: WMS *"],groups=session.groups||[];groups.forEach(function(group){sdp.push("a=group:"+group.semantics+" "+group.contents.join(" "))});var contents=session.contents||[];return contents.forEach(function(content){sdp.push(exports.toMediaSDP(content,opts))}),sdp.join("\r\n")+"\r\n"},exports.toMediaSDP=function(content,opts){var sdp=[],role=opts.role||"initiator",direction=opts.direction||"outgoing",desc=content.description,transport=content.transport,payloads=desc.payloads||[],fingerprints=transport&&transport.fingerprints||[],mline=[];if("datachannel"==desc.descType?(mline.push("application"),mline.push("1"),mline.push("DTLS/SCTP"),transport.sctp&&transport.sctp.forEach(function(map){mline.push(map.number)})):(mline.push(desc.media),mline.push("1"),desc.encryption&&desc.encryption.length>0||fingerprints.length>0?mline.push("RTP/SAVPF"):mline.push("RTP/AVPF"),payloads.forEach(function(payload){mline.push(payload.id)})),sdp.push("m="+mline.join(" ")),sdp.push("c=IN IP4 0.0.0.0"),desc.bandwidth&&desc.bandwidth.type&&desc.bandwidth.bandwidth&&sdp.push("b="+desc.bandwidth.type+":"+desc.bandwidth.bandwidth),"rtp"==desc.descType&&sdp.push("a=rtcp:1 IN IP4 0.0.0.0"),transport){transport.ufrag&&sdp.push("a=ice-ufrag:"+transport.ufrag),transport.pwd&&sdp.push("a=ice-pwd:"+transport.pwd);var pushedSetup=!1;fingerprints.forEach(function(fingerprint){sdp.push("a=fingerprint:"+fingerprint.hash+" "+fingerprint.value),fingerprint.setup&&!pushedSetup&&sdp.push("a=setup:"+fingerprint.setup)}),transport.sctp&&transport.sctp.forEach(function(map){sdp.push("a=sctpmap:"+map.number+" "+map.protocol+" "+map.streams)})}"rtp"==desc.descType&&sdp.push("a="+(SENDERS[role][direction][content.senders]||"sendrecv")),sdp.push("a=mid:"+content.name),desc.sources&&desc.sources.length&&(desc.sources[0].parameters||[]).forEach(function(param){"msid"===param.key&&sdp.push("a=msid:"+param.value)}),desc.mux&&sdp.push("a=rtcp-mux");var encryption=desc.encryption||[];encryption.forEach(function(crypto){sdp.push("a=crypto:"+crypto.tag+" "+crypto.cipherSuite+" "+crypto.keyParams+(crypto.sessionParams?" "+crypto.sessionParams:""))}),desc.googConferenceFlag&&sdp.push("a=x-google-flag:conference"),payloads.forEach(function(payload){var rtpmap="a=rtpmap:"+payload.id+" "+payload.name+"/"+payload.clockrate;if(payload.channels&&"1"!=payload.channels&&(rtpmap+="/"+payload.channels),sdp.push(rtpmap),payload.parameters&&payload.parameters.length){var fmtp=["a=fmtp:"+payload.id],parameters=[];payload.parameters.forEach(function(param){parameters.push((param.key?param.key+"=":"")+param.value)}),fmtp.push(parameters.join(";")),sdp.push(fmtp.join(" "))}payload.feedback&&payload.feedback.forEach(function(fb){"trr-int"===fb.type?sdp.push("a=rtcp-fb:"+payload.id+" trr-int "+(fb.value?fb.value:"0")):sdp.push("a=rtcp-fb:"+payload.id+" "+fb.type+(fb.subtype?" "+fb.subtype:""))})}),desc.feedback&&desc.feedback.forEach(function(fb){"trr-int"===fb.type?sdp.push("a=rtcp-fb:* trr-int "+(fb.value?fb.value:"0")):sdp.push("a=rtcp-fb:* "+fb.type+(fb.subtype?" "+fb.subtype:""))});var hdrExts=desc.headerExtensions||[];hdrExts.forEach(function(hdr){sdp.push("a=extmap:"+hdr.id+(hdr.senders?"/"+SENDERS[role][direction][hdr.senders]:"")+" "+hdr.uri)});var ssrcGroups=desc.sourceGroups||[];ssrcGroups.forEach(function(ssrcGroup){sdp.push("a=ssrc-group:"+ssrcGroup.semantics+" "+ssrcGroup.sources.join(" "))});var ssrcs=desc.sources||[];ssrcs.forEach(function(ssrc){for(var i=0;i<ssrc.parameters.length;i++){var param=ssrc.parameters[i];sdp.push("a=ssrc:"+(ssrc.ssrc||desc.ssrc)+" "+param.key+(param.value?":"+param.value:""))}});var candidates=transport.candidates||[];return candidates.forEach(function(candidate){sdp.push(exports.toCandidateSDP(candidate))}),sdp.join("\r\n")},exports.toCandidateSDP=function(candidate){var sdp=[];sdp.push(candidate.foundation),sdp.push(candidate.component),sdp.push(candidate.protocol.toUpperCase()),sdp.push(candidate.priority),sdp.push(candidate.ip),sdp.push(candidate.port);var type=candidate.type;return sdp.push("typ"),sdp.push(type),"srflx"!==type&&"prflx"!==type&&"relay"!==type||candidate.relAddr&&candidate.relPort&&(sdp.push("raddr"),sdp.push(candidate.relAddr),sdp.push("rport"),sdp.push(candidate.relPort)),candidate.tcpType&&"TCP"==candidate.protocol.toUpperCase()&&(sdp.push("tcptype"),sdp.push(candidate.tcpType)),sdp.push("generation"),sdp.push(candidate.generation||"0"),"a=candidate:"+sdp.join(" ")}},{"./senders":79}],82:[function(require,module,exports){function dumpSDP(description){return{type:description.type,sdp:description.sdp}}function dumpStream(stream){var info={label:stream.id};return stream.getAudioTracks().length&&(info.audio=stream.getAudioTracks().map(function(track){return track.id})),stream.getVideoTracks().length&&(info.video=stream.getVideoTracks().map(function(track){return track.id})),info}function TraceablePeerConnection(config,constraints){var self=this;WildEmitter.call(this),this.peerconnection=new window.RTCPeerConnection(config,constraints),this.trace=function(what,info){self.emit("PeerConnectionTrace",{time:new Date,type:what,value:info||""})},this.onicecandidate=null,this.peerconnection.onicecandidate=function(event){self.trace("onicecandidate",event.candidate),null!==self.onicecandidate&&self.onicecandidate(event)},this.onaddstream=null,this.peerconnection.onaddstream=function(event){self.trace("onaddstream",dumpStream(event.stream)),null!==self.onaddstream&&self.onaddstream(event)},this.onremovestream=null,this.peerconnection.onremovestream=function(event){self.trace("onremovestream",dumpStream(event.stream)),null!==self.onremovestream&&self.onremovestream(event)},this.onsignalingstatechange=null,this.peerconnection.onsignalingstatechange=function(event){self.trace("onsignalingstatechange",self.signalingState),null!==self.onsignalingstatechange&&self.onsignalingstatechange(event)},this.oniceconnectionstatechange=null,this.peerconnection.oniceconnectionstatechange=function(event){self.trace("oniceconnectionstatechange",self.iceConnectionState),null!==self.oniceconnectionstatechange&&self.oniceconnectionstatechange(event)},this.onnegotiationneeded=null,this.peerconnection.onnegotiationneeded=function(event){self.trace("onnegotiationneeded"),null!==self.onnegotiationneeded&&self.onnegotiationneeded(event)},self.ondatachannel=null,this.peerconnection.ondatachannel=function(event){self.trace("ondatachannel",event),null!==self.ondatachannel&&self.ondatachannel(event)},this.getLocalStreams=this.peerconnection.getLocalStreams.bind(this.peerconnection),this.getRemoteStreams=this.peerconnection.getRemoteStreams.bind(this.peerconnection)}var util=require("util"),WildEmitter=(require("webrtc-adapter-test"),require("wildemitter"));util.inherits(TraceablePeerConnection,WildEmitter),["signalingState","iceConnectionState","localDescription","remoteDescription"].forEach(function(prop){Object.defineProperty(TraceablePeerConnection.prototype,prop,{get:function(){return this.peerconnection[prop]}})}),TraceablePeerConnection.prototype.addStream=function(stream){this.trace("addStream",dumpStream(stream)),this.peerconnection.addStream(stream)},TraceablePeerConnection.prototype.removeStream=function(stream){this.trace("removeStream",dumpStream(stream)),this.peerconnection.removeStream(stream)},TraceablePeerConnection.prototype.createDataChannel=function(label,opts){return this.trace("createDataChannel",label,opts),this.peerconnection.createDataChannel(label,opts)},TraceablePeerConnection.prototype.setLocalDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setLocalDescription",dumpSDP(description)),this.peerconnection.setLocalDescription(description,function(){self.trace("setLocalDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setLocalDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.setRemoteDescription=function(description,successCallback,failureCallback){var self=this;this.trace("setRemoteDescription",dumpSDP(description)),this.peerconnection.setRemoteDescription(description,function(){self.trace("setRemoteDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setRemoteDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.close=function(){this.trace("stop"),"closed"!=this.peerconnection.signalingState&&this.peerconnection.close()},TraceablePeerConnection.prototype.createOffer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createOffer",constraints),this.peerconnection.createOffer(function(offer){self.trace("createOfferOnSuccess",dumpSDP(offer)),successCallback&&successCallback(offer)},function(err){self.trace("createOfferOnFailure",err),failureCallback&&failureCallback(err)},constraints)},TraceablePeerConnection.prototype.createAnswer=function(successCallback,failureCallback,constraints){var self=this;this.trace("createAnswer",constraints),this.peerconnection.createAnswer(function(answer){self.trace("createAnswerOnSuccess",dumpSDP(answer)),successCallback&&successCallback(answer)},function(err){self.trace("createAnswerOnFailure",err),failureCallback&&failureCallback(err)},constraints)},TraceablePeerConnection.prototype.addIceCandidate=function(candidate,successCallback,failureCallback){var self=this;this.trace("addIceCandidate",candidate),this.peerconnection.addIceCandidate(candidate,function(){successCallback&&successCallback()},function(err){self.trace("addIceCandidateOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.getStats=function(){this.peerconnection.getStats.apply(this.peerconnection,arguments)},module.exports=TraceablePeerConnection},{util:28,"webrtc-adapter-test":83,wildemitter:84}],83:[function(require,module,exports){"use strict";function requestUserMedia(constraints){return new Promise(function(resolve,reject){getUserMedia(constraints,resolve,reject)})}var getUserMedia=null,attachMediaStream=null,reattachMediaStream=null,webrtcDetectedBrowser=null,webrtcDetectedVersion=null,webrtcMinimumVersion=null,webrtcUtils={log:function(){"undefined"!=typeof module||"function"==typeof require&&"function"==typeof define||console.log.apply(console,arguments)},extractVersion:function(uastring,expr,pos){var match=uastring.match(expr);return match&&match.length>=pos&&parseInt(match[pos])}};if("object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return"mozSrcObject"in this?this.mozSrcObject:this._srcObject;
-},set:function(stream){"mozSrcObject"in this?this.mozSrcObject=stream:(this._srcObject=stream,this.src=URL.createObjectURL(stream))}}),getUserMedia=window.navigator&&window.navigator.getUserMedia),attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject},"undefined"!=typeof window&&window.navigator)if(navigator.mozGetUserMedia&&window.mozRTCPeerConnection){if(webrtcUtils.log("This appears to be Firefox"),webrtcDetectedBrowser="firefox",webrtcDetectedVersion=webrtcUtils.extractVersion(navigator.userAgent,/Firefox\/([0-9]+)\./,1),webrtcMinimumVersion=31,window.RTCPeerConnection=function(pcConfig,pcConstraints){if(webrtcDetectedVersion<38&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCSessionDescription||(window.RTCSessionDescription=mozRTCSessionDescription),window.RTCIceCandidate||(window.RTCIceCandidate=mozRTCIceCandidate),getUserMedia=function(constraints,onSuccess,onError){var constraintsToFF37=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if(void 0===r.min&&void 0===r.max&&void 0===r.exact||require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};"number"==typeof r.ideal?oc[key]={min:r.ideal,max:r.ideal}:oc[key]=r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return webrtcDetectedVersion<38&&(webrtcUtils.log("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37(constraints.video)),webrtcUtils.log("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},webrtcDetectedVersion<41){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices().then(void 0,function(e){if("NotFoundError"===e.name)return[];throw e})}}}else if(navigator.webkitGetUserMedia&&window.webkitRTCPeerConnection){webrtcUtils.log("This appears to be Chrome"),webrtcDetectedBrowser="chrome",webrtcDetectedVersion=webrtcUtils.extractVersion(navigator.userAgent,/Chrom(e|ium)\/([0-9]+)\./,2),webrtcMinimumVersion=38,window.RTCPeerConnection=function(pcConfig,pcConstraints){pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback,errorCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport};if(arguments.length>=2){var successCallbackWrapper=function(response){args[1](fixChromeStats(response))};return origGetStats.apply(this,[successCallbackWrapper,arguments[0]])}return new Promise(function(resolve,reject){1===args.length&&null===selector?origGetStats.apply(self,[function(response){resolve.apply(null,[fixChromeStats(response)])},reject]):origGetStats.apply(self,[resolve,reject])})},pc},["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this;return new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],function(){resolve(),args.length>=2&&args[1].apply(null,[])},function(err){reject(err),args.length>=3&&args[2].apply(null,[err])}])})}});var constraintsToChrome=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc};if(getUserMedia=function(constraints,onSuccess,onError){return constraints.audio&&(constraints.audio=constraintsToChrome(constraints.audio)),constraints.video&&(constraints.video=constraintsToChrome(constraints.video)),webrtcUtils.log("chrome: "+JSON.stringify(constraints)),navigator.webkitGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return webrtcUtils.log("spec: "+JSON.stringify(c)),c.audio=constraintsToChrome(c.audio),c.video=constraintsToChrome(c.video),webrtcUtils.log("chrome: "+JSON.stringify(c)),origGetUserMedia(c)}}else navigator.mediaDevices.getUserMedia=function(constraints){return requestUserMedia(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){webrtcUtils.log("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){webrtcUtils.log("Dummy mediaDevices.removeEventListener called.")}),attachMediaStream=function(element,stream){webrtcDetectedVersion>=43?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):webrtcUtils.log("Error attaching stream to element.")},reattachMediaStream=function(to,from){webrtcDetectedVersion>=43?to.srcObject=from.srcObject:to.src=from.src}}else navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)?(webrtcUtils.log("This appears to be Edge"),webrtcDetectedBrowser="edge",webrtcDetectedVersion=webrtcUtils.extractVersion(navigator.userAgent,/Edge\/(\d+).(\d+)$/,2),webrtcMinimumVersion=12):webrtcUtils.log("Browser does not appear to be WebRTC-capable");else webrtcUtils.log("This does not appear to be a browser"),webrtcDetectedBrowser="not a browser";var webrtcTesting={};try{Object.defineProperty(webrtcTesting,"version",{set:function(version){webrtcDetectedVersion=version}})}catch(e){}if("undefined"!=typeof module){var RTCPeerConnection;"undefined"!=typeof window&&(RTCPeerConnection=window.RTCPeerConnection),module.exports={RTCPeerConnection:RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting,webrtcUtils:webrtcUtils}}else"function"==typeof require&&"function"==typeof define&&define([],function(){return{RTCPeerConnection:window.RTCPeerConnection,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting,webrtcUtils:webrtcUtils}})},{}],84:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],85:[function(require,module,exports){function PeerConnection(config,constraints){var item,self=this;WildEmitter.call(this),config=config||{},config.iceServers=config.iceServers||[],this.enableChromeNativeSimulcast=!1,constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&null===navigator.appVersion.match(/Chromium\//)&&constraints.optional.forEach(function(constraint){constraint.enableChromeNativeSimulcast&&(self.enableChromeNativeSimulcast=!0)}),this.enableMultiStreamHacks=!1,constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&constraints.optional.forEach(function(constraint){constraint.enableMultiStreamHacks&&(self.enableMultiStreamHacks=!0)}),this.restrictBandwidth=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetRestrictBandwidth&&(self.restrictBandwidth=constraint.andyetRestrictBandwidth)}),this.batchIceCandidates=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetBatchIce&&(self.batchIceCandidates=constraint.andyetBatchIce)}),this.batchedIceCandidates=[],constraints&&constraints.optional&&"chrome"===adapter.webrtcDetectedBrowser&&constraints.optional.forEach(function(constraint){constraint.andyetFasterICE&&(self.eliminateDuplicateCandidates=constraint.andyetFasterICE)}),constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetDontSignalCandidates&&(self.dontSignalCandidates=constraint.andyetDontSignalCandidates)}),this.assumeSetLocalSuccess=!1,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetAssumeSetLocalSuccess&&(self.assumeSetLocalSuccess=constraint.andyetAssumeSetLocalSuccess)}),"firefox"===adapter.webrtcDetectedBrowser&&constraints&&constraints.optional&&(this.wtFirefox=0,constraints.optional.forEach(function(constraint){constraint.andyetFirefoxMakesMeSad&&(self.wtFirefox=constraint.andyetFirefoxMakesMeSad,self.wtFirefox>0&&(self.firefoxcandidatebuffer=[]))})),this.pc=new peerconn(config,constraints),this.getLocalStreams=this.pc.getLocalStreams.bind(this.pc),this.getRemoteStreams=this.pc.getRemoteStreams.bind(this.pc),this.addStream=this.pc.addStream.bind(this.pc),this.removeStream=this.pc.removeStream.bind(this.pc),this.pc.on("*",function(){self.emit.apply(self,arguments)}),this.pc.onremovestream=this.emit.bind(this,"removeStream"),this.pc.onaddstream=this.emit.bind(this,"addStream"),this.pc.onnegotiationneeded=this.emit.bind(this,"negotiationNeeded"),this.pc.oniceconnectionstatechange=this.emit.bind(this,"iceConnectionStateChange"),this.pc.onsignalingstatechange=this.emit.bind(this,"signalingStateChange"),this.pc.onicecandidate=this._onIce.bind(this),this.pc.ondatachannel=this._onDataChannel.bind(this),this.localDescription={contents:[]},this.remoteDescription={contents:[]},this.config={debug:!1,ice:{},sid:"",isInitiator:!0,sdpSessionID:Date.now(),useJingle:!1};for(item in config)this.config[item]=config[item];this.config.debug&&this.on("*",function(){var logger=config.logger||console;logger.log("PeerConnection event:",arguments)}),this.hadLocalStunCandidate=!1,this.hadRemoteStunCandidate=!1,this.hadLocalRelayCandidate=!1,this.hadRemoteRelayCandidate=!1,this.hadLocalIPv6Candidate=!1,this.hadRemoteIPv6Candidate=!1,this._remoteDataChannels=[],this._localDataChannels=[],this._candidateBuffer=[]}var util=require("util"),each=require("lodash.foreach"),pluck=require("lodash.pluck"),SJJ=require("sdp-jingle-json"),WildEmitter=require("wildemitter"),peerconn=require("traceablepeerconnection"),adapter=require("webrtc-adapter-test");util.inherits(PeerConnection,WildEmitter),Object.defineProperty(PeerConnection.prototype,"signalingState",{get:function(){return this.pc.signalingState}}),Object.defineProperty(PeerConnection.prototype,"iceConnectionState",{get:function(){return this.pc.iceConnectionState}}),PeerConnection.prototype._role=function(){return this.isInitiator?"initiator":"responder"},PeerConnection.prototype.addStream=function(stream){this.localStream=stream,this.pc.addStream(stream)},PeerConnection.prototype._checkLocalCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadLocalStunCandidate=!0:"relay"==cand.type&&(this.hadLocalRelayCandidate=!0),cand.ip.indexOf(":")!=-1&&(this.hadLocalIPv6Candidate=!0)},PeerConnection.prototype._checkRemoteCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadRemoteStunCandidate=!0:"relay"==cand.type&&(this.hadRemoteRelayCandidate=!0),cand.ip.indexOf(":")!=-1&&(this.hadRemoteIPv6Candidate=!0)},PeerConnection.prototype.processIce=function(update,cb){cb=cb||function(){};var self=this;if("closed"===this.pc.signalingState)return cb();if(update.contents||update.jingle&&update.jingle.contents){var contentNames=pluck(this.remoteDescription.contents,"name"),contents=update.contents||update.jingle.contents;contents.forEach(function(content){var transport=content.transport||{},candidates=transport.candidates||[],mline=contentNames.indexOf(content.name),mid=content.name;candidates.forEach(function(candidate){var iceCandidate=SJJ.toCandidateSDP(candidate)+"\r\n";self.pc.addIceCandidate(new RTCIceCandidate({candidate:iceCandidate,sdpMLineIndex:mline,sdpMid:mid}),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(iceCandidate)})})}else{if(update.candidate&&0!==update.candidate.candidate.indexOf("a=")&&(update.candidate.candidate="a="+update.candidate.candidate),this.wtFirefox&&null!==this.firefoxcandidatebuffer&&this.pc.localDescription&&"offer"===this.pc.localDescription.type)return this.firefoxcandidatebuffer.push(update.candidate),cb();self.pc.addIceCandidate(new RTCIceCandidate(update.candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(update.candidate.candidate)}cb()},PeerConnection.prototype.offer=function(constraints,cb){var self=this,hasConstraints=2===arguments.length,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};return cb=hasConstraints?cb:constraints,cb=cb||function(){},"closed"===this.pc.signalingState?cb("Already closed"):void this.pc.createOffer(function(offer){var expandedOffer={type:"offer",sdp:offer.sdp};self.assumeSetLocalSuccess&&(self.emit("offer",expandedOffer),cb(null,expandedOffer)),self._candidateBuffer=[],self.pc.setLocalDescription(offer,function(){var jingle;self.config.useJingle&&(jingle=SJJ.toSessionJSON(offer.sdp,{role:self._role(),direction:"outgoing"}),jingle.sid=self.config.sid,self.localDescription=jingle,each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),expandedOffer.jingle=jingle),expandedOffer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("offer",expandedOffer),cb(null,expandedOffer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},mediaConstraints)},PeerConnection.prototype.handleOffer=function(offer,cb){cb=cb||function(){};var self=this;if(offer.type="offer",offer.jingle){if(this.enableChromeNativeSimulcast&&offer.jingle.contents.forEach(function(content){"video"===content.name&&(content.description.googConferenceFlag=!0)}),this.enableMultiStreamHacks&&offer.jingle.contents.forEach(function(content){if("video"===content.name){var sources=content.description.sources||[];0!==sources.length&&"3735928559"===sources[0].ssrc||(sources.unshift({ssrc:"3735928559",parameters:[{key:"cname",value:"deadbeef"},{key:"msid",value:"mixyourfecintothis please"}]}),content.description.sources=sources)}}),self.restrictBandwidth>0&&offer.jingle.contents.length>=2&&"video"===offer.jingle.contents[1].name){var content=offer.jingle.contents[1],hasBw=content.description&&content.description.bandwidth;hasBw||(offer.jingle.contents[1].description.bandwidth={type:"AS",bandwidth:self.restrictBandwidth.toString()},offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"}))}offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=offer.jingle}offer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(offer),function(){cb()},cb)},PeerConnection.prototype.answerAudioOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answerBroadcastOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answer=function(constraints,cb){var hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._answer(mediaConstraints,callback)},PeerConnection.prototype.handleAnswer=function(answer,cb){cb=cb||function(){};var self=this;answer.jingle&&(answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=answer.jingle),answer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(answer),function(){self.wtFirefox&&window.setTimeout(function(){self.firefoxcandidatebuffer.forEach(function(candidate){self.pc.addIceCandidate(new RTCIceCandidate(candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(candidate.candidate)}),self.firefoxcandidatebuffer=null},self.wtFirefox),cb(null)},cb)},PeerConnection.prototype.close=function(){this.pc.close(),this._localDataChannels=[],this._remoteDataChannels=[],this.emit("close")},PeerConnection.prototype._answer=function(constraints,cb){cb=cb||function(){};var self=this;if(!this.pc.remoteDescription)throw new Error("remoteDescription not set");return"closed"===this.pc.signalingState?cb("Already closed"):void self.pc.createAnswer(function(answer){var sim=[];if(self.enableChromeNativeSimulcast&&(answer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}),answer.jingle.contents.length>=2&&"video"===answer.jingle.contents[1].name)){var groups=answer.jingle.contents[1].description.sourceGroups||[],hasSim=!1;if(groups.forEach(function(group){"SIM"==group.semantics&&(hasSim=!0)}),!hasSim&&answer.jingle.contents[1].description.sources.length){var newssrc=JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));newssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(newssrc),sim.push(answer.jingle.contents[1].description.sources[0].ssrc),sim.push(newssrc.ssrc),groups.push({semantics:"SIM",sources:sim});var rtxssrc=JSON.parse(JSON.stringify(newssrc));rtxssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].description.sources.push(rtxssrc),groups.push({semantics:"FID",sources:[newssrc.ssrc,rtxssrc.ssrc]}),answer.jingle.contents[1].description.sourceGroups=groups,answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"})}}var expandedAnswer={type:"answer",sdp:answer.sdp};self.assumeSetLocalSuccess&&(self.emit("answer",expandedAnswer),cb(null,expandedAnswer)),self._candidateBuffer=[],self.pc.setLocalDescription(answer,function(){if(self.config.useJingle){var jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"});jingle.sid=self.config.sid,self.localDescription=jingle,expandedAnswer.jingle=jingle}self.enableChromeNativeSimulcast&&(expandedAnswer.jingle||(expandedAnswer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"})),expandedAnswer.jingle.contents[1].description.sources.forEach(function(source,idx){source.parameters=source.parameters.map(function(parameter){return"msid"===parameter.key&&(parameter.value+="-"+Math.floor(idx/2)),parameter})}),expandedAnswer.sdp=SJJ.toSessionSDP(expandedAnswer.jingle,{sid:self.sdpSessionID,role:self._role(),direction:"outgoing"})),expandedAnswer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("answer",expandedAnswer),cb(null,expandedAnswer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},constraints)},PeerConnection.prototype._onIce=function(event){var self=this;if(event.candidate){if(this.dontSignalCandidates)return;var ice=event.candidate,expandedCandidate={candidate:{candidate:ice.candidate,sdpMid:ice.sdpMid,sdpMLineIndex:ice.sdpMLineIndex}};this._checkLocalCandidate(ice.candidate);var already,idx,cand=SJJ.toCandidateJSON(ice.candidate);if(this.eliminateDuplicateCandidates&&"relay"===cand.type&&(already=this._candidateBuffer.filter(function(c){return"relay"===c.type}).map(function(c){return c.foundation+":"+c.component}),idx=already.indexOf(cand.foundation+":"+cand.component),idx>-1&&cand.priority>>24>=already[idx].priority>>24))return;if("max-bundle"===this.config.bundlePolicy&&(already=this._candidateBuffer.filter(function(c){return cand.type===c.type}).map(function(cand){return cand.address+":"+cand.port}),idx=already.indexOf(cand.address+":"+cand.port),idx>-1))return;if("require"===this.config.rtcpMuxPolicy&&"2"===cand.component)return;if(this._candidateBuffer.push(cand),self.config.useJingle){if(ice.sdpMid||(self.pc.remoteDescription&&"offer"===self.pc.remoteDescription.type?ice.sdpMid=self.remoteDescription.contents[ice.sdpMLineIndex].name:ice.sdpMid=self.localDescription.contents[ice.sdpMLineIndex].name),!self.config.ice[ice.sdpMid]){var jingle=SJJ.toSessionJSON(self.pc.localDescription.sdp,{role:self._role(),direction:"outgoing"});each(jingle.contents,function(content){var transport=content.transport||{};transport.ufrag&&(self.config.ice[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})}if(expandedCandidate.jingle={contents:[{name:ice.sdpMid,creator:self._role(),transport:{transType:"iceUdp",ufrag:self.config.ice[ice.sdpMid].ufrag,pwd:self.config.ice[ice.sdpMid].pwd,candidates:[cand]}}]},self.batchIceCandidates>0)return 0===self.batchedIceCandidates.length&&window.setTimeout(function(){var contents={};self.batchedIceCandidates.forEach(function(content){content=content.contents[0],contents[content.name]||(contents[content.name]=content),contents[content.name].transport.candidates.push(content.transport.candidates[0])});var newCand={jingle:{contents:[]}};Object.keys(contents).forEach(function(name){newCand.jingle.contents.push(contents[name])}),self.batchedIceCandidates=[],self.emit("ice",newCand)},self.batchIceCandidates),void self.batchedIceCandidates.push(expandedCandidate.jingle)}this.emit("ice",expandedCandidate)}else this.emit("endOfCandidates")},PeerConnection.prototype._onDataChannel=function(event){var channel=event.channel;this._remoteDataChannels.push(channel),this.emit("addChannel",channel)},PeerConnection.prototype.createDataChannel=function(name,opts){var channel=this.pc.createDataChannel(name,opts);return this._localDataChannels.push(channel),channel},PeerConnection.prototype.getStats=function(cb){"firefox"===adapter.webrtcDetectedBrowser?this.pc.getStats(function(res){var items=[];for(var result in res)"object"==typeof res[result]&&items.push(res[result]);cb(null,items)},cb):this.pc.getStats(function(res){var items=[];res.result().forEach(function(result){var item={};result.names().forEach(function(name){item[name]=result.stat(name)}),item.id=result.id,item.type=result.type,item.timestamp=result.timestamp,items.push(item)}),cb(null,items)})},module.exports=PeerConnection},{"lodash.foreach":54,"lodash.pluck":62,"sdp-jingle-json":77,traceablepeerconnection:82,util:28,"webrtc-adapter-test":83,wildemitter:84}],86:[function(require,module,exports){function filterContentSources(content,stream){"rtp"===content.description.descType&&(delete content.transport,delete content.description.payloads,delete content.description.headerExtensions,content.description.mux=!1,content.description.sources&&(content.description.sources=content.description.sources.filter(function(source){return stream.id===source.parameters[1].value.split(" ")[0]})),content.description.sourceGroups&&(content.description.sourceGroups=content.description.sourceGroups.filter(function(group){for(var found=!1,i=0;i<content.description.sources.length;i++)if(content.description.sources[i].ssrc===group.sources[0]){found=!0;break}return found})))}function filterUnusedLabels(content){var sources=content.description.sources||[];sources.forEach(function(source){source.parameters=source.parameters.filter(function(parameter){return!("mslabel"===parameter.key||"label"===parameter.key)})})}function MediaSession(opts){BaseSession.call(this,opts),this.pc=new RTCPeerConnection({iceServers:opts.iceServers||[],useJingle:!0},opts.constraints||{}),this.pc.on("ice",this.onIceCandidate.bind(this)),this.pc.on("endOfCandidates",this.onIceEndOfCandidates.bind(this)),this.pc.on("iceConnectionStateChange",this.onIceStateChange.bind(this)),this.pc.on("addStream",this.onAddStream.bind(this)),this.pc.on("removeStream",this.onRemoveStream.bind(this)),opts.stream&&this.addStream(opts.stream),this._ringing=!1}var util=require("util"),extend=require("extend-object"),BaseSession=require("jingle-session"),RTCPeerConnection=require("rtcpeerconnection");util.inherits(MediaSession,BaseSession),Object.defineProperties(MediaSession.prototype,{ringing:{get:function(){return this._ringing},set:function(value){value!==this._ringing&&(this._ringing=value,this.emit("change:ringing",value))}},streams:{get:function(){return"closed"!==this.pc.signalingState?this.pc.getRemoteStreams():[]}}}),MediaSession.prototype=extend(MediaSession.prototype,{start:function(offerOptions,next){var self=this;this.state="pending",next=next||function(){},this.pc.isInitiator=!0,this.pc.offer(offerOptions,function(err,offer){return err?(self._log("error","Could not create WebRTC offer",err),self.end("failed-application",!0)):(offerOptions&&offerOptions.mandatory&&offer.jingle.contents.forEach(function(content){var mediaType=content.description.media;content.description&&"rtp"===content.description.descType&&(offerOptions.mandatory.OfferToReceiveAudio||"audio"!==mediaType||(content.senders="initiator"),offerOptions.mandatory.OfferToReceiveVideo||"video"!==mediaType||(content.senders="initiator"))}),offer.jingle.contents.forEach(filterUnusedLabels),self.send("session-initiate",offer.jingle),void next())})},accept:function(next){var self=this;next=next||function(){},this._log("info","Accepted incoming session"),this.state="active",this.pc.answer(function(err,answer){return err?(self._log("error","Could not create WebRTC answer",err),self.end("failed-application")):(answer.jingle.contents.forEach(filterUnusedLabels),self.send("session-accept",answer.jingle),void next())})},end:function(reason,silent){var self=this;this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,reason,silent)},ring:function(){this._log("info","Ringing on incoming session"),this.ringing=!0,this.send("session-info",{ringing:!0})},mute:function(creator,name){this._log("info","Muting",name),this.send("session-info",{mute:{creator:creator,name:name}})},unmute:function(creator,name){this._log("info","Unmuting",name),this.send("session-info",{unmute:{creator:creator,name:name}})},hold:function(){this._log("info","Placing on hold"),this.send("session-info",{hold:!0})},resume:function(){this._log("info","Resuming from hold"),this.send("session-info",{active:!0})},addStream:function(stream,renegotiate,cb){var self=this;cb=cb||function(){},this.pc.addStream(stream),renegotiate&&this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not create offer for adding new stream"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not create answer for adding new stream"),cb(err)):(answer.jingle.contents.forEach(function(content){filterContentSources(content,stream)}),answer.jingle.contents=answer.jingle.contents.filter(function(content){return"rtp"===content.description.descType&&content.description.sources&&content.description.sources.length}),delete answer.jingle.groups,self.send("source-add",answer.jingle),void cb())})})},addStream2:function(stream,cb){this.addStream(stream,!0,cb)},removeStream:function(stream,renegotiate,cb){var self=this;if(cb=cb||function(){},!renegotiate)return void this.pc.removeStream(stream);var desc=this.pc.localDescription;desc.contents.forEach(function(content){filterContentSources(content,stream)}),desc.contents=desc.contents.filter(function(content){return"rtp"===content.description.descType&&content.description.sources&&content.description.sources.length}),delete desc.groups,this.send("source-remove",desc),this.pc.removeStream(stream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for removing stream"),cb(err)):void self.pc.answer(function(err){return err?(self._log("error","Could not process answer for removing stream"),cb(err)):void cb()})})},removeStream2:function(stream,cb){this.removeStream(stream,!0,cb)},switchStream:function(oldStream,newStream,cb){var self=this;cb=cb||function(){};var desc=this.pc.localDescription;desc.contents.forEach(function(content){delete content.transport,delete content.description.payloads}),this.pc.removeStream(oldStream),this.send("source-remove",desc);
-var audioTracks=oldStream.getAudioTracks();audioTracks.length&&newStream.addTrack(audioTracks[0]),this.pc.addStream(newStream),this.pc.handleOffer({type:"offer",jingle:this.pc.remoteDescription},function(err){return err?(self._log("error","Could not process offer for switching streams"),cb(err)):void self.pc.answer(function(err,answer){return err?(self._log("error","Could not process answer for switching streams"),cb(err)):(answer.jingle.contents.forEach(function(content){delete content.transport,delete content.description.payloads}),self.send("source-add",answer.jingle),void cb())})})},onIceCandidate:function(candidate){this._log("info","Discovered new ICE candidate",candidate.jingle),this.send("transport-info",candidate.jingle)},onIceEndOfCandidates:function(){this._log("info","ICE end of candidates")},onIceStateChange:function(){switch(this.pc.iceConnectionState){case"checking":this.connectionState="connecting";break;case"completed":case"connected":this.connectionState="connected";break;case"disconnected":"stable"===this.pc.signalingState?this.connectionState="interrupted":this.connectionState="disconnected";break;case"failed":this.connectionState="failed",this.end("failed-transport");break;case"closed":this.connectionState="disconnected"}},onAddStream:function(event){this._log("info","Stream added"),this.emit("peerStreamAdded",this,event.stream)},onRemoveStream:function(event){this._log("info","Stream removed"),this.emit("peerStreamRemoved",this,event.stream)},onSessionInitiate:function(changes,cb){var self=this;this._log("info","Initiating incoming session"),this.state="pending",this.pc.isInitiator=!1,this.pc.handleOffer({type:"offer",jingle:changes},function(err){return err?(self._log("error","Could not create WebRTC answer"),cb({condition:"general-error"})):void cb()})},onSessionAccept:function(changes,cb){var self=this;this.state="active",this.pc.handleAnswer({type:"answer",jingle:changes},function(err){return err?(self._log("error","Could not process WebRTC answer"),cb({condition:"general-error"})):(self.emit("accepted",self),void cb())})},onSessionTerminate:function(changes,cb){var self=this;this._log("info","Terminating session"),this.streams.forEach(function(stream){self.onRemoveStream({stream:stream})}),this.pc.close(),BaseSession.prototype.end.call(this,changes.reason,!0),cb()},onSessionInfo:function(info,cb){return info.ringing?(this._log("info","Outgoing session is ringing"),this.ringing=!0,this.emit("ringing",this),cb()):info.hold?(this._log("info","On hold"),this.emit("hold",this),cb()):info.active?(this._log("info","Resuming from hold"),this.emit("resumed",this),cb()):info.mute?(this._log("info","Muting",info.mute),this.emit("mute",this,info.mute),cb()):info.unmute?(this._log("info","Unmuting",info.unmute),this.emit("unmute",this,info.unmute),cb()):void cb()},onTransportInfo:function(changes,cb){this.pc.processIce(changes,function(){cb()})},onSourceAdd:function(changes,cb){var self=this;this._log("info","Adding new stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.description,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var newContentDesc=newContent.description,newSSRCs=newContentDesc.sources||[];ssrcs=ssrcs.concat(newSSRCs),newDesc.contents[idx].description.sources=JSON.parse(JSON.stringify(ssrcs));var newGroups=newContentDesc.sourceGroups||[];groups=groups.concat(newGroups),newDesc.contents[idx].description.sourceGroups=JSON.parse(JSON.stringify(groups))}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error adding new stream source"),cb({condition:"general-error"})):void cb()})})},onSourceRemove:function(changes,cb){var self=this;this._log("info","Removing stream source");var newDesc=this.pc.remoteDescription;this.pc.remoteDescription.contents.forEach(function(content,idx){var desc=content.description,ssrcs=desc.sources||[],groups=desc.sourceGroups||[];changes.contents.forEach(function(newContent){if(content.name===newContent.name){var found,i,j,k,newContentDesc=newContent.description,newSSRCs=newContentDesc.sources||[],newGroups=newContentDesc.sourceGroups||[];for(i=0;i<newSSRCs.length;i++){for(found=-1,j=0;j<ssrcs.length;j++)if(newSSRCs[i].ssrc===ssrcs[j].ssrc){found=j;break}found>-1&&(ssrcs.splice(found,1),newDesc.contents[idx].description.sources=JSON.parse(JSON.stringify(ssrcs)))}for(i=0;i<newGroups.length;i++){for(found=-1,j=0;j<groups.length;j++)if(newGroups[i].semantics===groups[j].semantics&&newGroups[i].sources.length===groups[j].sources.length){var same=!0;for(k=0;k<newGroups[i].sources.length;k++)if(newGroups[i].sources[k]!==groups[j].sources[k]){same=!1;break}if(same){found=j;break}}found>-1&&(groups.splice(found,1),newDesc.contents[idx].description.sourceGroups=JSON.parse(JSON.stringify(groups)))}}})}),this.pc.handleOffer({type:"offer",jingle:newDesc},function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void self.pc.answer(function(err){return err?(self._log("error","Error removing stream source"),cb({condition:"general-error"})):void cb()})})}}),module.exports=MediaSession},{"extend-object":30,"jingle-session":118,rtcpeerconnection:117,util:28}],87:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54,"lodash._arrayeach":88,"lodash._baseeach":89,"lodash._bindcallback":93,"lodash.isarray":94}],88:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],89:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{dup:56,"lodash.keys":90}],90:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57,"lodash._getnative":91,"lodash.isarguments":92,"lodash.isarray":94}],91:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],92:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{dup:59}],93:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60}],94:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],95:[function(require,module,exports){arguments[4][62][0].apply(exports,arguments)},{dup:62,"lodash._baseget":96,"lodash._topath":97,"lodash.isarray":98,"lodash.map":99}],96:[function(require,module,exports){arguments[4][63][0].apply(exports,arguments)},{dup:63}],97:[function(require,module,exports){arguments[4][64][0].apply(exports,arguments)},{dup:64,"lodash.isarray":98}],98:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],99:[function(require,module,exports){arguments[4][66][0].apply(exports,arguments)},{dup:66,"lodash._arraymap":100,"lodash._basecallback":101,"lodash._baseeach":106,"lodash.isarray":98}],100:[function(require,module,exports){arguments[4][67][0].apply(exports,arguments)},{dup:67}],101:[function(require,module,exports){arguments[4][68][0].apply(exports,arguments)},{dup:68,"lodash._baseisequal":102,"lodash._bindcallback":104,"lodash.isarray":98,"lodash.pairs":105}],102:[function(require,module,exports){arguments[4][69][0].apply(exports,arguments)},{dup:69,"lodash.isarray":98,"lodash.istypedarray":103,"lodash.keys":107}],103:[function(require,module,exports){arguments[4][70][0].apply(exports,arguments)},{dup:70}],104:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60}],105:[function(require,module,exports){arguments[4][72][0].apply(exports,arguments)},{dup:72,"lodash.keys":107}],106:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{dup:56,"lodash.keys":107}],107:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57,"lodash._getnative":108,"lodash.isarguments":109,"lodash.isarray":98}],108:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],109:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{dup:59}],110:[function(require,module,exports){arguments[4][77][0].apply(exports,arguments)},{"./lib/tojson":113,"./lib/tosdp":114,dup:77}],111:[function(require,module,exports){arguments[4][78][0].apply(exports,arguments)},{dup:78}],112:[function(require,module,exports){arguments[4][79][0].apply(exports,arguments)},{dup:79}],113:[function(require,module,exports){arguments[4][80][0].apply(exports,arguments)},{"./parsers":111,"./senders":112,dup:80}],114:[function(require,module,exports){arguments[4][81][0].apply(exports,arguments)},{"./senders":112,dup:81}],115:[function(require,module,exports){arguments[4][82][0].apply(exports,arguments)},{dup:82,util:28,"webrtc-adapter-test":116,wildemitter:124}],116:[function(require,module,exports){arguments[4][83][0].apply(exports,arguments)},{dup:83}],117:[function(require,module,exports){arguments[4][85][0].apply(exports,arguments)},{dup:85,"lodash.foreach":87,"lodash.pluck":95,"sdp-jingle-json":110,traceablepeerconnection:115,util:28,"webrtc-adapter-test":116,wildemitter:124}],118:[function(require,module,exports){function JingleSession(opts){WildEmitter.call(this);var self=this;this.sid=opts.sid||uuid.v4(),this.peer=opts.peer,this.peerID=opts.peerID||this.peer.full||this.peer,this.isInitiator=opts.initiator||!1,this.parent=opts.parent,this.state="starting",this.connectionState="starting",this.pendingDescriptionTypes=opts.descriptionTypes||[],this.pendingAction=!1,this.processingQueue=async.queue(function(task,next){if(self.ended)return next();var action=task.action,changes=task.changes,cb=task.cb;return self._log("debug",action),ACTIONS[action]?void self[ACTIONS[action]](changes,function(err,result){return cb(err,result),next()}):(self._log("error","Invalid action: "+action),cb({condition:"bad-request"}),next())})}var util=require("util"),uuid=require("uuid"),async=require("async"),extend=require("extend-object"),WildEmitter=require("wildemitter"),ACTIONS={"content-accept":"onContentAccept","content-add":"onContentAdd","content-modify":"onConentModify","content-reject":"onContentReject","content-remove":"onContentRemove","description-info":"onDescriptionInfo","security-info":"onSecurityInfo","session-accept":"onSessionAccept","session-info":"onSessionInfo","session-initiate":"onSessionInitiate","session-terminate":"onSessionTerminate","transport-accept":"onTransportAccept","transport-info":"onTransportInfo","transport-reject":"onTransportReject","transport-replace":"onTransportReplace","source-add":"onSourceAdd","source-remove":"onSourceRemove"};util.inherits(JingleSession,WildEmitter),Object.keys(ACTIONS).forEach(function(action){var method=ACTIONS[action];JingleSession.prototype[method]=function(changes,cb){this._log("error","Unsupported action: "+action),cb()}}),Object.defineProperties(JingleSession.prototype,{state:{get:function(){return this._sessionState},set:function(value){if(value!==this._sessionState){var prev=this._sessionState;this._log("info","Changing session state to: "+value),this._sessionState=value,this.emit("change:sessionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},connectionState:{get:function(){return this._connectionState},set:function(value){if(value!==this._connectionState){var prev=this._connectionState;this._log("info","Changing connection state to: "+value),this._connectionState=value,this.emit("change:connectionState",this,value),this.emit("change:"+value,this,!0),prev&&this.emit("change:"+prev,this,!1)}}},starting:{get:function(){return"starting"===this._sessionState}},pending:{get:function(){return"pending"===this._sessionState}},active:{get:function(){return"active"===this._sessionState}},ended:{get:function(){return"ended"===this._sessionState}},connected:{get:function(){return"connected"===this._connectionState}},connecting:{get:function(){return"connecting"===this._connectionState}},disconnected:{get:function(){return"disconnected"===this._connectionState}},interrupted:{get:function(){return"interrupted"===this._connectionState}}}),JingleSession.prototype=extend(JingleSession.prototype,{_log:function(level,message){message=this.sid+": "+message,this.emit("log:"+level,message)},send:function(action,data){data=data||{},data.sid=this.sid,data.action=action;var requirePending={"session-inititate":!0,"session-accept":!0,"content-add":!0,"content-remove":!0,"content-reject":!0,"content-accept":!0,"content-modify":!0,"transport-replace":!0,"transport-reject":!0,"transport-accept":!0,"source-add":!0,"source-remove":!0};requirePending[action]?this.pendingAction=action:this.pendingAction=!1,this.emit("send",{to:this.peer,type:"set",jingle:data})},process:function(action,changes,cb){this.processingQueue.push({action:action,changes:changes,cb:cb})},start:function(){this._log("error","Can not start base sessions"),this.end("unsupported-applications",!0)},accept:function(){this._log("error","Can not accept base sessions"),this.end("unsupported-applications")},cancel:function(){this.end("cancel")},decline:function(){this.end("decline")},end:function(reason,silent){this.state="ended",this.processingQueue.kill(),reason||(reason="success"),"string"==typeof reason&&(reason={condition:reason}),silent||this.send("session-terminate",{reason:reason}),this.emit("terminated",this,reason)},onSessionTerminate:function(changes,cb){this.end(changes.reason,!0),cb()},onSessionInfo:function(changes,cb){var okKeys={sid:!0,action:!0,initiator:!0,responder:!0},unknownPayload=!1;Object.keys(changes).forEach(function(key){okKeys[key]||(unknownPayload=!0)}),unknownPayload?cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"}):cb()},onDescriptionInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onTransportInfo:function(changes,cb){cb({type:"modify",condition:"feature-not-implemented",jingleCondition:"unsupported-info"})},onContentAdd:function(changes,cb){cb(),this.send("content-reject",{reason:{condition:"failed-application",text:"content-add is not supported"}})},onTransportReplace:function(changes,cb){cb(),this.send("transport-reject",{reason:{condition:"failed-application",text:"transport-replace is not supported"}})}}),module.exports=JingleSession},{async:119,"extend-object":30,util:28,uuid:121,wildemitter:122}],119:[function(require,module,exports){(function(process){/*!
- * async
- * https://github.com/caolan/async
- *
- * Copyright 2010-2014 Caolan McMahon
- * Released under the MIT license
- */
-!function(){function only_once(fn){var called=!1;return function(){if(called)throw new Error("Callback was already called.");called=!0,fn.apply(root,arguments)}}var root,previous_async,async={};root=this,null!=root&&(previous_async=root.async),async.noConflict=function(){return root.async=previous_async,async};var _toString=Object.prototype.toString,_isArray=Array.isArray||function(obj){return"[object Array]"===_toString.call(obj)},_each=function(arr,iterator){for(var i=0;i<arr.length;i+=1)iterator(arr[i],i,arr)},_map=function(arr,iterator){if(arr.map)return arr.map(iterator);var results=[];return _each(arr,function(x,i,a){results.push(iterator(x,i,a))}),results},_reduce=function(arr,iterator,memo){return arr.reduce?arr.reduce(iterator,memo):(_each(arr,function(x,i,a){memo=iterator(memo,x,i,a)}),memo)},_keys=function(obj){if(Object.keys)return Object.keys(obj);var keys=[];for(var k in obj)obj.hasOwnProperty(k)&&keys.push(k);return keys};"undefined"!=typeof process&&process.nextTick?(async.nextTick=process.nextTick,"undefined"!=typeof setImmediate?async.setImmediate=function(fn){setImmediate(fn)}:async.setImmediate=async.nextTick):"function"==typeof setImmediate?(async.nextTick=function(fn){setImmediate(fn)},async.setImmediate=async.nextTick):(async.nextTick=function(fn){setTimeout(fn,0)},async.setImmediate=async.nextTick),async.each=function(arr,iterator,callback){function done(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length&&callback())}if(callback=callback||function(){},!arr.length)return callback();var completed=0;_each(arr,function(x){iterator(x,only_once(done))})},async.forEach=async.each,async.eachSeries=function(arr,iterator,callback){if(callback=callback||function(){},!arr.length)return callback();var completed=0,iterate=function(){iterator(arr[completed],function(err){err?(callback(err),callback=function(){}):(completed+=1,completed>=arr.length?callback():iterate())})};iterate()},async.forEachSeries=async.eachSeries,async.eachLimit=function(arr,limit,iterator,callback){var fn=_eachLimit(limit);fn.apply(null,[arr,iterator,callback])},async.forEachLimit=async.eachLimit;var _eachLimit=function(limit){return function(arr,iterator,callback){if(callback=callback||function(){},!arr.length||limit<=0)return callback();var completed=0,started=0,running=0;!function replenish(){if(completed>=arr.length)return callback();for(;running<limit&&started<arr.length;)started+=1,running+=1,iterator(arr[started-1],function(err){err?(callback(err),callback=function(){}):(completed+=1,running-=1,completed>=arr.length?callback():replenish())})}()}},doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.each].concat(args))}},doParallelLimit=function(limit,fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[_eachLimit(limit)].concat(args))}},doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.eachSeries].concat(args))}},_asyncMap=function(eachfn,arr,iterator,callback){if(arr=_map(arr,function(x,i){return{index:i,value:x}}),callback){var results=[];eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v,callback(err)})},function(err){callback(err,results)})}else eachfn(arr,function(x,callback){iterator(x.value,function(err){callback(err)})})};async.map=doParallel(_asyncMap),async.mapSeries=doSeries(_asyncMap),async.mapLimit=function(arr,limit,iterator,callback){return _mapLimit(limit)(arr,iterator,callback)};var _mapLimit=function(limit){return doParallelLimit(limit,_asyncMap)};async.reduce=function(arr,memo,iterator,callback){async.eachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v,callback(err)})},function(err){callback(err,memo)})},async.inject=async.reduce,async.foldl=async.reduce,async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)},async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v&&results.push(x),callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter),async.filterSeries=doSeries(_filter),async.select=async.filter,async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}}),eachfn(arr,function(x,callback){iterator(x.value,function(v){v||results.push(x),callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject),async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){result?(main_callback(x),main_callback=function(){}):callback()})},function(err){main_callback()})};async.detect=doParallel(_detect),async.detectSeries=doSeries(_detect),async.some=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v&&(main_callback(!0),main_callback=function(){}),callback()})},function(err){main_callback(!1)})},async.any=async.some,async.every=function(arr,iterator,main_callback){async.each(arr,function(x,callback){iterator(x,function(v){v||(main_callback(!1),main_callback=function(){}),callback()})},function(err){main_callback(!0)})},async.all=async.every,async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){err?callback(err):callback(null,{value:x,criteria:criteria})})},function(err,results){if(err)return callback(err);var fn=function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))})},async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks),remainingTasks=keys.length;if(!remainingTasks)return callback();var results={},listeners=[],addListener=function(fn){listeners.unshift(fn)},removeListener=function(fn){for(var i=0;i<listeners.length;i+=1)if(listeners[i]===fn)return void listeners.splice(i,1)},taskComplete=function(){remainingTasks--,_each(listeners.slice(0),function(fn){fn()})};addListener(function(){if(!remainingTasks){var theCallback=callback;callback=function(){},theCallback(null,results)}}),_each(keys,function(k){var task=_isArray(tasks[k])?tasks[k]:[tasks[k]],taskCallback=function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1&&(args=args[0]),err){var safeResults={};_each(_keys(results),function(rkey){safeResults[rkey]=results[rkey]}),safeResults[k]=args,callback(err,safeResults),callback=function(){}}else results[k]=args,async.setImmediate(taskComplete)},requires=task.slice(0,Math.abs(task.length-1))||[],ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},!0)&&!results.hasOwnProperty(k)};if(ready())task[task.length-1](taskCallback,results);else{var listener=function(){ready()&&(removeListener(listener),task[task.length-1](taskCallback,results))};addListener(listener)}})},async.retry=function(times,task,callback){var DEFAULT_TIMES=5,attempts=[];"function"==typeof times&&(callback=task,task=times,times=DEFAULT_TIMES),times=parseInt(times,10)||DEFAULT_TIMES;var wrappedTask=function(wrappedCallback,wrappedResults){for(var retryAttempt=function(task,finalAttempt){return function(seriesCallback){task(function(err,result){seriesCallback(!err||finalAttempt,{err:err,result:result})},wrappedResults)}};times;)attempts.push(retryAttempt(task,!(times-=1)));async.series(attempts,function(done,data){data=data[data.length-1],(wrappedCallback||callback)(data.err,data.result)})};return callback?wrappedTask():wrappedTask},async.waterfall=function(tasks,callback){if(callback=callback||function(){},!_isArray(tasks)){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}if(!tasks.length)return callback();var wrapIterator=function(iterator){return function(err){if(err)callback.apply(null,arguments),callback=function(){};else{var args=Array.prototype.slice.call(arguments,1),next=iterator.next();next?args.push(wrapIterator(next)):args.push(callback),async.setImmediate(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};var _parallel=function(eachfn,tasks,callback){if(callback=callback||function(){},_isArray(tasks))eachfn.map(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};eachfn.each(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}};async.parallel=function(tasks,callback){_parallel({map:async.map,each:async.each},tasks,callback)},async.parallelLimit=function(tasks,limit,callback){_parallel({map:_mapLimit(limit),each:_eachLimit(limit)},tasks,callback)},async.series=function(tasks,callback){if(callback=callback||function(){},_isArray(tasks))async.mapSeries(tasks,function(fn,callback){fn&&fn(function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),callback.call(null,err,args)})},callback);else{var results={};async.eachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);args.length<=1&&(args=args[0]),results[k]=args,callback(err)})},function(err){callback(err,results)})}},async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){return tasks.length&&tasks[index].apply(null,arguments),fn.next()};return fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null},fn};return makeCallback(0)},async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]),cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat),async.concatSeries=doSeries(_concat),async.whilst=function(test,iterator,callback){test()?iterator(function(err){return err?callback(err):void async.whilst(test,iterator,callback)}):callback()},async.doWhilst=function(iterator,test,callback){iterator(function(err){if(err)return callback(err);var args=Array.prototype.slice.call(arguments,1);test.apply(null,args)?async.doWhilst(iterator,test,callback):callback()})},async.until=function(test,iterator,callback){test()?callback():iterator(function(err){return err?callback(err):void async.until(test,iterator,callback)})},async.doUntil=function(iterator,test,callback){iterator(function(err){if(err)return callback(err);var args=Array.prototype.slice.call(arguments,1);test.apply(null,args)?callback():async.doUntil(iterator,test,callback)})},async.queue=function(worker,concurrency){function _insert(q,data,pos,callback){return q.started||(q.started=!0),_isArray(data)||(data=[data]),0==data.length?async.setImmediate(function(){q.drain&&q.drain()}):void _each(data,function(task){var item={data:task,callback:"function"==typeof callback?callback:null};pos?q.tasks.unshift(item):q.tasks.push(item),q.saturated&&q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}void 0===concurrency&&(concurrency=1);var workers=0,q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,started:!1,paused:!1,push:function(data,callback){_insert(q,data,!1,callback)},kill:function(){q.drain=null,q.tasks=[]},unshift:function(data,callback){_insert(q,data,!0,callback)},process:function(){if(!q.paused&&workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();q.empty&&0===q.tasks.length&&q.empty(),workers+=1;var next=function(){workers-=1,task.callback&&task.callback.apply(task,arguments),q.drain&&q.tasks.length+workers===0&&q.drain(),q.process()},cb=only_once(next);worker(task.data,cb)}},length:function(){return q.tasks.length},running:function(){return workers},idle:function(){return q.tasks.length+workers===0},pause:function(){q.paused!==!0&&(q.paused=!0)},resume:function(){if(q.paused!==!1){q.paused=!1;for(var w=1;w<=q.concurrency;w++)async.setImmediate(q.process)}}};return q},async.priorityQueue=function(worker,concurrency){function _compareTasks(a,b){return a.priority-b.priority}function _binarySearch(sequence,item,compare){for(var beg=-1,end=sequence.length-1;beg<end;){var mid=beg+(end-beg+1>>>1);compare(item,sequence[mid])>=0?beg=mid:end=mid-1}return beg}function _insert(q,data,priority,callback){return q.started||(q.started=!0),_isArray(data)||(data=[data]),0==data.length?async.setImmediate(function(){q.drain&&q.drain()}):void _each(data,function(task){var item={data:task,priority:priority,callback:"function"==typeof callback?callback:null};q.tasks.splice(_binarySearch(q.tasks,item,_compareTasks)+1,0,item),q.saturated&&q.tasks.length===q.concurrency&&q.saturated(),async.setImmediate(q.process)})}var q=async.queue(worker,concurrency);return q.push=function(data,priority,callback){_insert(q,data,priority,callback)},delete q.unshift,q},async.cargo=function(worker,payload){var working=!1,tasks=[],cargo={tasks:tasks,payload:payload,saturated:null,empty:null,drain:null,drained:!0,push:function(data,callback){_isArray(data)||(data=[data]),_each(data,function(task){tasks.push({data:task,callback:"function"==typeof callback?callback:null}),cargo.drained=!1,cargo.saturated&&tasks.length===payload&&cargo.saturated()}),async.setImmediate(cargo.process)},process:function process(){if(!working){if(0===tasks.length)return cargo.drain&&!cargo.drained&&cargo.drain(),void(cargo.drained=!0);var ts="number"==typeof payload?tasks.splice(0,payload):tasks.splice(0,tasks.length),ds=_map(ts,function(task){return task.data});cargo.empty&&cargo.empty(),working=!0,worker(ds,function(){working=!1;var args=arguments;_each(ts,function(data){data.callback&&data.callback.apply(null,args)}),process()})}},length:function(){return tasks.length},running:function(){return working}};return cargo};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);"undefined"!=typeof console&&(err?console.error&&console.error(err):console[name]&&_each(args,function(x){console[name](x)}))}]))}};async.log=_console_fn("log"),async.dir=_console_fn("dir"),async.memoize=function(fn,hasher){var memo={},queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments),callback=args.pop(),key=hasher.apply(null,args);key in memo?async.nextTick(function(){callback.apply(null,memo[key])}):key in queues?queues[key].push(callback):(queues[key]=[callback],fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;i<l;i++)q[i].apply(null,arguments)}])))};return memoized.memo=memo,memoized.unmemoized=fn,memoized},async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}},async.times=function(count,iterator,callback){for(var counter=[],i=0;i<count;i++)counter.push(i);return async.map(counter,iterator,callback)},async.timesSeries=function(count,iterator,callback){for(var counter=[],i=0;i<count;i++)counter.push(i);return async.mapSeries(counter,iterator,callback)},async.seq=function(){var fns=arguments;return function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([function(){var err=arguments[0],nextargs=Array.prototype.slice.call(arguments,1);cb(err,nextargs)}]))},function(err,results){callback.apply(that,[err].concat(results))})}},async.compose=function(){return async.seq.apply(null,Array.prototype.reverse.call(arguments))};var _applyEach=function(eachfn,fns){var go=function(){var that=this,args=Array.prototype.slice.call(arguments),callback=args.pop();return eachfn(fns,function(fn,cb){fn.apply(that,args.concat([cb]))},callback)};if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);return go.apply(this,args)}return go};async.applyEach=doParallel(_applyEach),async.applyEachSeries=doSeries(_applyEach),async.forever=function(fn,callback){function next(err){if(err){if(callback)return callback(err);throw err}fn(next)}next()},"undefined"!=typeof module&&module.exports?module.exports=async:"undefined"!=typeof define&&define.amd?define([],function(){return async}):root.async=async}()}).call(this,require("_process"))},{_process:10}],120:[function(require,module,exports){(function(global){var rng;if(global.crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);rng=function(){return crypto.getRandomValues(_rnds8),_rnds8}}if(!rng){var _rnds=new Array(16);rng=function(){for(var r,i=0;i<16;i++)0===(3&i)&&(r=4294967296*Math.random()),_rnds[i]=r>>>((3&i)<<3)&255;return _rnds}}module.exports=rng}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],121:[function(require,module,exports){function parse(s,buf,offset){var i=buf&&offset||0,ii=0;for(buf=buf||[],s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){ii<16&&(buf[i+ii++]=_hexToByte[oct])});ii<16;)buf[i+ii++]=0;return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}function v1(options,buf,offset){var i=buf&&offset||0,b=buf||[];options=options||{};var clockseq=void 0!==options.clockseq?options.clockseq:_clockseq,msecs=void 0!==options.msecs?options.msecs:(new Date).getTime(),nsecs=void 0!==options.nsecs?options.nsecs:_lastNSecs+1,dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&void 0===options.clockseq&&(clockseq=clockseq+1&16383),(dt<0||msecs>_lastMSecs)&&void 0===options.nsecs&&(nsecs=0),nsecs>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=msecs,_lastNSecs=nsecs,_clockseq=clockseq,msecs+=122192928e5;var tl=(1e4*(268435455&msecs)+nsecs)%4294967296;b[i++]=tl>>>24&255,b[i++]=tl>>>16&255,b[i++]=tl>>>8&255,b[i++]=255&tl;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255,b[i++]=255&tmh,b[i++]=tmh>>>24&15|16,b[i++]=tmh>>>16&255,b[i++]=clockseq>>>8|128,b[i++]=255&clockseq;for(var node=options.node||_nodeId,n=0;n<6;n++)b[i+n]=node[n];return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"==options?new Array(16):null,options=null),options=options||{};var rnds=options.random||(options.rng||_rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;ii<16;ii++)buf[i+ii]=rnds[ii];return buf||unparse(rnds)}for(var _rng=require("./rng"),_byteToHex=[],_hexToByte={},i=0;i<256;i++)_byteToHex[i]=(i+256).toString(16).substr(1),_hexToByte[_byteToHex[i]]=i;var _seedBytes=_rng(),_nodeId=[1|_seedBytes[0],_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]],_clockseq=16383&(_seedBytes[6]<<8|_seedBytes[7]),_lastMSecs=0,_lastNSecs=0,uuid=v4;uuid.v1=v1,uuid.v4=v4,uuid.parse=parse,uuid.unparse=unparse,module.exports=uuid},{"./rng":120}],122:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],123:[function(require,module,exports){var prefix,version;window.mozRTCPeerConnection||navigator.mozGetUserMedia?(prefix="moz",version=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10)):(window.webkitRTCPeerConnection||navigator.webkitGetUserMedia)&&(prefix="webkit",version=navigator.userAgent.match(/Chrom(e|ium)/)&&parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10));var PC=window.mozRTCPeerConnection||window.webkitRTCPeerConnection,IceCandidate=window.mozRTCIceCandidate||window.RTCIceCandidate,SessionDescription=window.mozRTCSessionDescription||window.RTCSessionDescription,MediaStream=window.webkitMediaStream||window.MediaStream,screenSharing="https:"===window.location.protocol&&("webkit"===prefix&&version>=26||"moz"===prefix&&version>=33),AudioContext=window.AudioContext||window.webkitAudioContext,videoEl=document.createElement("video"),supportVp8=videoEl&&videoEl.canPlayType&&"probably"===videoEl.canPlayType('video/webm; codecs="vp8", vorbis'),getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia;module.exports={prefix:prefix,browserVersion:version,support:!!PC&&supportVp8&&!!getUserMedia,supportRTCPeerConnection:!!PC,supportVp8:supportVp8,supportGetUserMedia:!!getUserMedia,supportDataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),supportWebAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),supportMediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),supportScreenSharing:!!screenSharing,dataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),webAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),mediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),screenSharing:!!screenSharing,AudioContext:AudioContext,PeerConnection:PC,SessionDescription:SessionDescription,IceCandidate:IceCandidate,MediaStream:MediaStream,getUserMedia:getUserMedia}},{}],124:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{dup:53}],125:[function(require,module,exports){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}Object.defineProperty(exports,"__esModule",{value:!0});var _shortcuts=require("./shortcuts"),_shortcuts2=_interopRequireDefault(_shortcuts),_types=require("./types"),_types2=_interopRequireDefault(_types);exports.default=function(JXT){JXT.use(_types2.default),JXT.use(_shortcuts2.default)},module.exports=exports.default},{"./shortcuts":126,"./types":127}],126:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),VERSION={client:_xmppConstants.Namespace.CLIENT,server:_xmppConstants.Namespace.SERVER,component:_xmppConstants.Namespace.COMPONENT};exports.default=function(JXT){JXT.extendMessage=function(JXTClass,multiName){var _this=this;this.withMessage(function(Message){_this.extend(Message,JXTClass,multiName)})},JXT.extendPresence=function(JXTClass,multiName){var _this2=this;this.withPresence(function(Presence){_this2.extend(Presence,JXTClass,multiName)})},JXT.extendIQ=function(JXTClass,multiName){var _this3=this;this.withIQ(function(IQ){_this3.extend(IQ,JXTClass,multiName)})},JXT.extendStreamFeatures=function(JXTClass){var _this4=this;this.withStreamFeatures(function(StreamFeatures){_this4.extend(StreamFeatures,JXTClass)})},JXT.extendPubsubItem=function(JXTClass){var _this5=this;this.withPubsubItem(function(PubsubItem){_this5.extend(PubsubItem,JXTClass)})},JXT.withIQ=function(cb){this.withDefinition("iq",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("iq",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withMessage=function(cb){this.withDefinition("message",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("message",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withPresence=function(cb){this.withDefinition("presence",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("presence",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withStreamFeatures=function(cb){this.withDefinition("features",_xmppConstants.Namespace.STREAM,cb)},JXT.withStanzaError=function(cb){this.withDefinition("error",_xmppConstants.Namespace.CLIENT,cb),this.withDefinition("error",_xmppConstants.Namespace.COMPONENT,cb)},JXT.withDataForm=function(cb){this.withDefinition("x",_xmppConstants.Namespace.DATAFORM,cb)},JXT.withPubsubItem=function(cb){this.withDefinition("item",_xmppConstants.Namespace.PUBSUB,cb),this.withDefinition("item",_xmppConstants.Namespace.PUBSUB_EVENT,cb)},JXT.getMessage=function(){var version=void 0===arguments[0]?"client":arguments[0];return this.getDefinition("message",VERSION[version])},JXT.getPresence=function(){var version=void 0===arguments[0]?"client":arguments[0];return this.getDefinition("presence",VERSION[version])},JXT.getIQ=function(){var version=void 0===arguments[0]?"client":arguments[0];return this.getDefinition("iq",VERSION[version])},JXT.getStreamError=function(){return this.getDefinition("error",_xmppConstants.Namespace.STREAM)},JXT.getIq=JXT.getIQ,JXT.withIq=JXT.withIQ},module.exports=exports.default},{"xmpp-constants":128}],127:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppJid=require("xmpp-jid");exports.default=function(JXT){var Utils=JXT.utils;Utils.jidAttribute=function(attr,prepped){return{get:function(){var jid=new _xmppJid.JID(Utils.getAttribute(this.xml,attr));return prepped&&(jid.prepped=!0),jid},set:function(value){Utils.setAttribute(this.xml,attr,(value||"").toString())}}},Utils.jidSub=function(NS,sub,prepped){return{get:function(){var jid=new _xmppJid.JID(Utils.getSubText(this.xml,NS,sub));return prepped&&(jid.prepped=!0),jid},set:function(value){Utils.setSubText(this.xml,NS,sub,(value||"").toString())}}},Utils.tzoSub=Utils.field(function(xml,NS,sub,defaultVal){var hrs=void 0,min=void 0,split=void 0,sign=-1,formatted=Utils.getSubText(xml,NS,sub);return formatted?("-"===formatted.charAt(0)&&(sign=1,formatted=formatted.slice(1)),split=formatted.split(":"),hrs=parseInt(split[0],10),min=parseInt(split[1],10),(60*hrs+min)*sign):defaultVal},function(xml,NS,sub,value){var hrs=void 0,min=void 0,formatted="-";"number"==typeof value?(value<0&&(value=-value,formatted="+"),hrs=value/60,min=value%60,formatted+=(hrs<10?"0":"")+hrs+":"+(min<10?"0":"")+min):formatted=value,Utils.setSubText(xml,NS,sub,formatted)})},module.exports=exports.default},{"xmpp-jid":134}],128:[function(require,module,exports){module.exports={Namespace:require("./lib/namespaces"),MUC:require("./lib/muc"),PubSub:require("./lib/pubsub"),Jingle:require("./lib/jingle"),Presence:require("./lib/presence")}},{"./lib/jingle":129,"./lib/muc":130,"./lib/namespaces":131,"./lib/presence":132,"./lib/pubsub":133}],129:[function(require,module,exports){module.exports={Action:{CONTENT_ACCEPT:"content-accept",CONTENT_ADD:"content-add",CONTENT_MODIFY:"content-modify",CONTENT_REJECT:"content-reject",CONTENT_REMOVE:"content-remove",DESCRIPTION_INFO:"description-info",SECURITY_INFO:"security-info",SESSION_ACCEPT:"session-accept",SESSION_INFO:"session-info",SESSION_INITIATE:"session-initiate",SESSION_TERMINATE:"session-terminate",TRANSPORT_ACCEPT:"transport-accept",TRANSPORT_INFO:"transport-info",TRANSPORT_REJECT:"transport-reject",TRANSPORT_REPLACE:"transport-replace"},Reason:{ALTERNATIVE_SESSION:"alernative-session",BUSY:"busy",CANCEL:"cancel",CONNECTIVITY_ERROR:"connectivity-error",DECLINE:"decline",EXPIRED:"expired",FAILED_APPLICATION:"failed-application",FAILED_TRANSPORT:"failed-transport",GENERAL_ERROR:"general-error",GONE:"gone",INCOMPATIBLE_PARAMETERS:"incompatible-parameters",MEDIA_ERROR:"media-error",SECURITY_ERROR:"security-error",SUCCESS:"success",TIMEOUT:"timeout",UNSUPPORTED_APPLICATIONS:"unsupported-applications",UNSUPPORTED_TRANSPORTS:"unsupported-transports"},Condition:{OUT_OF_ORDER:"out-of-order",TIE_BREAK:"tie-break",UNKNOWN_SESSION:"unknown-session",UNSUPPORTED_INFO:"unsupported-info"}}},{}],130:[function(require,module,exports){module.exports={Status:{REALJID_PUBLIC:"100",AFFILIATION_CHANGED:"101",UNAVAILABLE_SHOWN:"102",UNAVAILABLE_NOT_SHOWN:"103",CONFIGURATION_CHANGED:"104",SELF_PRESENCE:"110",LOGGING_ENABLED:"170",LOGGING_DISABLED:"171",NON_ANONYMOUS:"172",SEMI_ANONYMOUS:"173",FULLY_ANONYMOUS:"174",ROOM_CREATED:"201",NICK_ASSIGNED:"210",BANNED:"301",NEW_NICK:"303",KICKED:"307",REMOVED_AFFILIATION:"321",REMOVED_MEMBERSHIP:"322",REMOVED_SHUTDOWN:"332"},Affiliation:{ADMIN:"admin",MEMBER:"member",NONE:"none",OUTCAST:"outcast",OWNER:"owner"},Role:{MODERATOR:"moderator",NONE:"none",PARTICIPANT:"participant",VISITOR:"visitor"}}},{}],131:[function(require,module,exports){module.exports={BIND:"urn:ietf:params:xml:ns:xmpp-bind",CLIENT:"jabber:client",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",SERVER:"jabber:server",SESSION:"urn:ietf:params:xml:ns:xmpp-session",STANZA_ERROR:"urn:ietf:params:xml:ns:xmpp-stanzas",STREAM:"http://etherx.jabber.org/streams",STREAM_ERROR:"urn:ietf:params:xml:ns:xmpp-streams",ROSTER:"jabber:iq:roster",ROSTER_VERSIONING:"urn:xmpp:features:rosterver",SUBSCRIPTION_PREAPPROVAL:"urn:xmpp:features:pre-approval",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",DATAFORM:"jabber:x:data",RPC:"jabber:iq:rpc",LAST_ACTIVITY:"jabber:iq:last",PRIVACY:"jabber:iq:privacy",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",ADDRESS:"http://jabber.org/protocol/address",MUC:"http://jabber.org/protocol/muc",MUC_ADMIN:"http://jabber.org/protocol/muc#admin",MUC_OWNER:"http://jabber.org/protocol/muc#owner",MUC_USER:"http://jabber.org/protocol/muc#user",IBB:"http://jabber.org/protocol/ibb",BOOKMARKS:"storage:bookmarks",PRIVATE:"jabber:iq:private",ADHOC_COMMANDS:"http://jabber.org/protocol/commands",VCARD_TEMP:"vcard-temp",SEARCH:"jabber:iq:search",RSM:"http://jabber.org/protocol/rsm",PUBSUB:"http://jabber.org/protocol/pubsub",PUBSUB_ERRORS:"http://jabber.org/protocol/pubsub#errors",PUBSUB_EVENT:"http://jabber.org/protocol/pubsub#event",PUBSUB_OWNER:"http://jabber.org/protocol/pubsub#owner",SOCKS5:"http://jabber.org/protocol/bytestreams",OOB:"jabber:x:oob",HTTP_AUTH:"http://jabber.org/protocol/http-auth",XHTML_IM:"http://jabber.org/protocol/xhtml-im",REGISTER:"jabber:iq:register",AMP:"http://jabber.org/protocol/amp",GEOLOC:"http://jabber.org/protocol/geoloc",ROSTER_DELIMITER:"roster:delimiter",AVATAR_DATA:"urn:xmpp:avatar:data",AVATAR_METADATA:"urn:xmpp:avatar:metadata",CHAT_STATES:"http://jabber.org/protocol/chatstates",VERSION:"jabber:iq:version",MOOD:"http://jabber.org/protocol/mood",ACTIVITY:"http://jabber.org/protocol/activity",COMPONENT:"jabber:component:accept",CAPS:"http://jabber.org/protocol/caps",TUNE:"http://jabber.org/protocol/tune",DATAFORM_VALIDATION:"http://jabber.org/protocol/xdata-validate",BOSH:"http://jabber.org/protocol/httpbind",SHIM:"http://jabber.org/protocol/shim",COMPRESSION:"http://jabber.org/features/compress",DATAFORM_LAYOUT:"http://jabber.org/protocol/xdata-layout",ROSTER_EXCHANGE:"http://jabber.org/protocol/rosterx",ROSTER_NOTES:"storage:rosternotes",REACH_0:"urn:xmpp:reach:0",VCARD_TEMP_UPDATE:"vcard-temp:x:update",CAPTCHA:"urn:xmpp:captcha",JINGLE_1:"urn:xmpp:jingle:1",JINGLE_ERRORS_1:"urn:xmpp:jingle:errors:1",JINGLE_RTP_1:"urn:xmpp:jingle:apps:rtp:1",JINGLE_RTP_ERRORS_1:"urn:xmpp:jingle:apps:rtp:errors:1",JINGLE_RTP_INFO_1:"urn:xmpp:jingle:apps:rtp:info:1",LANG_TRANS:"urn:xmpp:langtrans",LANG_TRANS_ITEMS:"urn:xmpp:langtrans:items",NICK:"http://jabber.org/protocol/nick",JINGLE_ICE_UDP_1:"urn:xmpp:jingle:transports:ice-udp:1",JINGLE_RAW_UDP_1:"urn:xmpp:jingle:transports:raw-udp:1",RECEIPTS:"urn:xmpp:receipts",INVISIBLE_0:"urn:xmpp:invisible:0",BLOCKING:"urn:xmpp:blocking",SMACKS_3:"urn:xmpp:sm:3",PING:"urn:xmpp:ping",TIME:"urn:xmpp:time",DELAY:"urn:xmpp:delay",BOSH_XMPP:"urn:xmpp:xbosh",DISCO_EXTERNAL_1:"urn:xmpp:extdisco:1",DATAFORM_MEDIA:"urn:xmpp:media-element",ATTENTION_0:"urn:xmpp:attention:0",BOB:"urn:xmpp:bob",FILE_TRANSFER_3:"urn:xmpp:jingle:apps:file-transfer:3",FILE_TRANSFER_4:"urn:xmpp:jingle:apps:file-transfer:4",MUC_DIRECT_INVITE:"jabber:x:conference",
-SEC_LABEL_0:"urn:xmpp:sec-label:0",SEC_LABEL_CATALOG_2:"urn:xmpp:sec-label:catalog:2",SEC_LABEL_ESS_0:"urn:xmpp:sec-label:ess:0",JINGLE_SOCKS5_1:"urn:xmpp:jingle:transports:s5b:1",JINGLE_IBB_1:"urn:xmpp:jingle:transports:ibb:1",JINGLE_RTP_ZRTP_1:"urn:xmpp:jingle:apps:rtp:zrtp:1",THUMBS_0:"urn:xmpp:thumbs:0",THUMBS_1:"urn:xmpp:thumbs:1",DECLOAKING_0:"urn:xmpp:decloaking:0",CARBONS_2:"urn:xmpp:carbons:2",JINGLE_RTP_RTCP_FB_0:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",JINGLE_RTP_HDREXT_0:"urn:xmpp:jingle:apps:rtp:rtp-hdrext:0",FORWARD_0:"urn:xmpp:forward:0",HASHES_1:"urn:xmpp:hashes:1",RTT_0:"urn:xmpp:rtt:0",MUC_UNIQUE:"http://jabber.org/protocol/muc#unique",CORRECTION_0:"urn:xmpp:message-correct:0",PSA:"urn:xmpp:psa",MAM_TMP:"urn:xmpp:mam:tmp",MAM_0:"urn:xmpp:mam:0",HATS_0:"urn:xmpp:hats:0",IDLE_1:"urn:xmpp:idle:1",JINGLE_DTLS_0:"urn:xmpp:jingle:apps:dtls:0",JID_PREP_0:"urn:xmpp:jidprep:0",HINTS:"urn:xmpp:hints",JSON_0:"urn:xmpp:json:0",EVENTLOG:"urn:xmpp:eventlog",JINGLE_GROUPING_0:"urn:xmpp:jingle:apps:grouping:0",JINGLE_RTP_SSMA_0:"urn:xmpp:jingle:apps:rtp:ssma:0",COLIBRI:"http://jitsi.org/protocol/colibri",DTLS_SCTP_1:"urn:xmpp:jingle:transports:dtls-sctp:1",CSI:"urn:xmpp:csi",JINGLE_MSG_INITIATE_0:"urn:xmpp:jingle:jingle-message:0",PUSH_0:"urn:xmpp:push:0",JINGLE_PUB_1:"urn:xmpp:jinglepub:1"}},{}],132:[function(require,module,exports){module.exports={Type:{SUBSCRIBE:"subscribe",SUBSCRIBED:"subscribed",UNSUBSCRIBE:"unsubscribe",UNSUBSCRIBED:"unsubscribed",PROBE:"probe",UNAVAILABLE:"unavailable"},Show:{CHAT:"chat",AWAY:"away",DO_NOT_DISTURB:"dnd",EXTENDED_AWAY:"xa"}}},{}],133:[function(require,module,exports){module.exports={Affiliation:{MEMBER:"member",NONE:"none",OUTCAST:"outcast",OWNER:"owner",PUBLISHER:"publisher",PUBLISH_ONLY:"publish-only"},Subscription:{NONE:"none",PENDING:"pending",UNCONFIGURED:"unconfigured",SUBSCRIBED:"subscribed"},AccessModel:{OPEN:"open",PRESENCE:"presence",ROSTER:"roster",AUTHORIZE:"authorize",WHITELIST:"whitelist"},Condition:{CONFLICT:"conflict"}}},{}],134:[function(require,module,exports){"use strict";function bareJID(local,domain){return local?local+"@"+domain:domain}function fullJID(local,domain,resource){return resource?bareJID(local,domain)+"/"+resource:bareJID(local,domain)}var StringPrep=require("./lib/stringprep"),ASCII=/^[\x00-\x7F]*$/;exports.prep=function(data){var local=data.local,domain=data.domain,resource=data.resource,unescapedLocal=local;return local&&(local=StringPrep.nodeprep(local),unescapedLocal=exports.unescape(local)),resource&&(resource=StringPrep.resourceprep(resource)),"."===domain[domain.length-1]&&(domain=domain.slice(0,domain.length-1)),domain=StringPrep.nameprep(domain.split(".").map(StringPrep.toUnicode).join(".")),{prepped:data.prepped||StringPrep.available,local:local,domain:domain,resource:resource,bare:bareJID(local,domain),full:fullJID(local,domain,resource),unescapedLocal:unescapedLocal,unescapedBare:bareJID(unescapedLocal,domain),unescapedFull:fullJID(unescapedLocal,domain,resource)}},exports.parse=function(jid,trusted){var local="",domain="",resource="";trusted=trusted||ASCII.test(jid);var resourceStart=jid.indexOf("/");resourceStart>0&&(resource=jid.slice(resourceStart+1),jid=jid.slice(0,resourceStart));var localEnd=jid.indexOf("@");localEnd>0&&(local=jid.slice(0,localEnd),jid=jid.slice(localEnd+1)),domain=jid;var preppedJID=exports.prep({local:local,domain:domain,resource:resource});return preppedJID.prepped=preppedJID.prepped||trusted,preppedJID},exports.equal=function(jid1,jid2,requirePrep){return jid1=new exports.JID(jid1),jid2=new exports.JID(jid2),2===arguments.length&&(requirePrep=!0),jid1.local===jid2.local&&jid1.domain===jid2.domain&&jid1.resource===jid2.resource&&(!requirePrep||jid1.prepped&&jid2.prepped)},exports.equalBare=function(jid1,jid2,requirePrep){return jid1=new exports.JID(jid1),jid2=new exports.JID(jid2),2===arguments.length&&(requirePrep=!0),jid1.local===jid2.local&&jid1.domain===jid2.domain&&(!requirePrep||jid1.prepped&&jid2.prepped)},exports.isBare=function(jid){jid=new exports.JID(jid);var hasResource=!!jid.resource;return!hasResource},exports.isFull=function(jid){jid=new exports.JID(jid);var hasResource=!!jid.resource;return hasResource},exports.escape=function(val){return val.replace(/^\s+|\s+$/g,"").replace(/\\5c/g,"\\5c5c").replace(/\\20/g,"\\5c20").replace(/\\22/g,"\\5c22").replace(/\\26/g,"\\5c26").replace(/\\27/g,"\\5c27").replace(/\\2f/g,"\\5c2f").replace(/\\3a/g,"\\5c3a").replace(/\\3c/g,"\\5c3c").replace(/\\3e/g,"\\5c3e").replace(/\\40/g,"\\5c40").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},exports.unescape=function(val){return val.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},exports.create=function(local,domain,resource){return new exports.JID(local,domain,resource)},exports.JID=function(localOrJID,domain,resource){var parsed={};if(!localOrJID||domain||resource)if(domain){var trusted=ASCII.test(localOrJID)&&ASCII.test(domain);resource&&(trusted=trusted&&ASCII.test(resource)),parsed=exports.prep({local:exports.escape(localOrJID),domain:domain,resource:resource,prepped:trusted})}else parsed={};else if("string"==typeof localOrJID)parsed=exports.parse(localOrJID);else{if(!(localOrJID._isJID||localOrJID instanceof exports.JID))throw new Error("Invalid argument type");parsed=localOrJID}this._isJID=!0,this.local=parsed.local||"",this.domain=parsed.domain||"",this.resource=parsed.resource||"",this.bare=parsed.bare||"",this.full=parsed.full||"",this.unescapedLocal=parsed.unescapedLocal||"",this.unescapedBare=parsed.unescapedBare||"",this.unescapedFull=parsed.unescapedFull||"",this.prepped=parsed.prepped},exports.JID.prototype.toString=function(){return this.full},exports.JID.prototype.toJSON=function(){return this.full}},{"./lib/stringprep":135}],135:[function(require,module,exports){"use strict";var punycode=require("punycode");exports.available=!1,exports.toUnicode=punycode.toUnicode,exports.nameprep=function(str){return str.toLowerCase()},exports.nodeprep=function(str){return str.toLowerCase()},exports.resourceprep=function(str){return str}},{punycode:11}],136:[function(require,module,exports){"use strict";var _interopRequireDefault=require("babel-runtime/helpers/interop-require-default").default;Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_lodashForeach=require("lodash.foreach"),_lodashForeach2=_interopRequireDefault(_lodashForeach);exports.default=function(JXT){var Utils=JXT.utils,Avatar=JXT.define({name:"avatar",namespace:_xmppConstants.Namespace.AVATAR_METADATA,element:"info",fields:{id:Utils.attribute("id"),bytes:Utils.attribute("bytes"),height:Utils.attribute("height"),width:Utils.attribute("width"),type:Utils.attribute("type","image/png"),url:Utils.attribute("url")}}),avatars={get:function(){var metadata=Utils.find(this.xml,_xmppConstants.Namespace.AVATAR_METADATA,"metadata"),results=[];if(metadata.length){var _avatars=Utils.find(metadata[0],_xmppConstants.Namespace.AVATAR_METADATA,"info");(0,_lodashForeach2.default)(_avatars,function(info){results.push(new Avatar({},info))})}return results},set:function(value){var metadata=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.AVATAR_METADATA,"metadata");Utils.setAttribute(metadata,"xmlns",_xmppConstants.Namespace.AVATAR_METADATA),(0,_lodashForeach2.default)(value,function(info){var avatar=new Avatar(info);metadata.appendChild(avatar.xml)})}};JXT.withPubsubItem(function(Item){JXT.add(Item,"avatars",avatars),JXT.add(Item,"avatarData",Utils.textSub(_xmppConstants.Namespace.AVATAR_DATA,"data"))})},module.exports=exports.default},{"babel-runtime/helpers/interop-require-default":197,"lodash.foreach":212,"xmpp-constants":220}],137:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Bind=JXT.define({name:"bind",namespace:_xmppConstants.Namespace.BIND,element:"bind",fields:{resource:Utils.textSub(_xmppConstants.Namespace.BIND,"resource"),jid:Utils.jidSub(_xmppConstants.Namespace.BIND,"jid")}});JXT.extendIQ(Bind),JXT.extendStreamFeatures(Bind)},module.exports=exports.default},{"xmpp-constants":220}],138:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid");exports.default=function(JXT){var jidList=(JXT.utils,{get:function(){var result=[],items=types.find(this.xml,_xmppConstants.Namespace.BLOCKING,"item");return items.length?(items.forEach(function(item){result.push(new _xmppJid.JID(types.getAttribute(item,"jid","")))}),result):result},set:function(values){var self=this;values.forEach(function(value){var item=types.createElement(_xmppConstants.Namespace.BLOCKING,"item",_xmppConstants.Namespace.BLOCKING);types.setAttribute(item,"jid",value.toString()),self.xml.appendChild(item)})}}),Block=JXT.define({name:"block",namespace:_xmppConstants.Namespace.BLOCKING,element:"block",fields:{jids:jidList}}),Unblock=JXT.define({name:"unblock",namespace:_xmppConstants.Namespace.BLOCKING,element:"unblock",fields:{jids:jidList}}),BlockList=JXT.define({name:"blockList",namespace:_xmppConstants.Namespace.BLOCKING,element:"blocklist",fields:{jids:jidList}});JXT.extendIQ(Block),JXT.extendIQ(Unblock),JXT.extendIQ(BlockList)},module.exports=exports.default},{"xmpp-constants":220,"xmpp-jid":226}],139:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,BOB=JXT.define({name:"bob",namespace:_xmppConstants.Namespace.BOB,element:"data",fields:{cid:Utils.attribute("cid"),maxAge:Utils.numberAttribute("max-age"),type:Utils.attribute("type"),data:Utils.text()}});JXT.extendIQ(BOB),JXT.extendMessage(BOB),JXT.extendPresence(BOB)},module.exports=exports.default},{"xmpp-constants":220}],140:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Conference=JXT.define({name:"_conference",namespace:_xmppConstants.Namespace.BOOKMARKS,element:"conference",fields:{name:Utils.attribute("name"),autoJoin:Utils.boolAttribute("autojoin"),jid:Utils.jidAttribute("jid"),nick:Utils.textSub(_xmppConstants.Namespace.BOOKMARKS,"nick")}}),Bookmarks=JXT.define({name:"bookmarks",namespace:_xmppConstants.Namespace.BOOKMARKS,element:"storage"});JXT.extend(Bookmarks,Conference,"conferences"),JXT.withDefinition("query",_xmppConstants.Namespace.PRIVATE,function(PrivateStorage){JXT.extend(PrivateStorage,Bookmarks)})},module.exports=exports.default},{"xmpp-constants":220}],141:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"bosh",namespace:_xmppConstants.Namespace.BOSH,element:"body",prefixes:{xmpp:_xmppConstants.Namespace.BOSH_XMPP},fields:{accept:Utils.attribute("accept"),ack:Utils.numberAttribute("ack"),authid:Utils.attribute("authid"),charsets:Utils.attribute("charsets"),condition:Utils.attribute("condition"),content:Utils.attribute("content"),from:Utils.jidAttribute("from",!0),hold:Utils.numberAttribute("hold"),inactivity:Utils.numberAttribute("inactivity"),key:Utils.attribute("key"),maxpause:Utils.numberAttribute("maxpause"),newKey:Utils.attribute("newkey"),pause:Utils.numberAttribute("pause"),polling:Utils.numberAttribute("polling"),resport:Utils.numberAttribute("report"),requests:Utils.numberAttribute("requests"),rid:Utils.numberAttribute("rid"),sid:Utils.attribute("sid"),stream:Utils.attribute("stream"),time:Utils.attribute("time"),to:Utils.jidAttribute("to",!0),type:Utils.attribute("type"),ver:Utils.attribute("ver"),wait:Utils.numberAttribute("wait"),uri:Utils.textSub(_xmppConstants.Namespace.BOSH,"uri"),lang:Utils.langAttribute(),version:Utils.attribute("xmpp:version","1.0"),restart:Utils.attribute("xmpp:restart"),restartLogic:Utils.boolAttribute("xmpp:restartLogic"),payload:{get:function(){for(var results=[],i=0,len=this.xml.childNodes.length;i<len;i++){var obj=JXT.build(this.xml.childNodes[i]);void 0!==obj&&results.push(obj)}return results},set:function(values){var _this=this;values.forEach(function(types){_this.xml.appendChild(types.xml)})}}}})},module.exports=exports.default},{"xmpp-constants":220}],142:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Sent=JXT.define({name:"carbonSent",eventName:"carbon:sent",namespace:_xmppConstants.Namespace.CARBONS_2,element:"sent"}),Received=JXT.define({name:"carbonReceived",eventName:"carbon:received",namespace:_xmppConstants.Namespace.CARBONS_2,element:"received"}),Private=JXT.define({name:"carbonPrivate",eventName:"carbon:private",namespace:_xmppConstants.Namespace.CARBONS_2,element:"private"}),Enable=JXT.define({name:"enableCarbons",namespace:_xmppConstants.Namespace.CARBONS_2,element:"enable"}),Disable=JXT.define({name:"disableCarbons",namespace:_xmppConstants.Namespace.CARBONS_2,element:"disable"});JXT.withDefinition("forwarded",_xmppConstants.Namespace.FORWARD_0,function(Forwarded){JXT.extend(Sent,Forwarded),JXT.extend(Received,Forwarded)}),JXT.extendMessage(Sent),JXT.extendMessage(Received),JXT.extendMessage(Private),JXT.extendIQ(Enable),JXT.extendIQ(Disable)},module.exports=exports.default},{"xmpp-constants":220}],143:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),ACTIONS=["next","prev","complete","cancel"],CONDITIONS=["bad-action","bad-locale","bad-payload","bad-sessionid","malformed-action","session-expired"];exports.default=function(JXT){var Utils=JXT.utils,Command=JXT.define({name:"command",namespace:_xmppConstants.Namespace.ADHOC_COMMANDS,element:"command",fields:{action:Utils.attribute("action"),node:Utils.attribute("node"),sessionid:Utils.attribute("sessionid"),status:Utils.attribute("status"),execute:Utils.subAttribute(_xmppConstants.Namespace.ADHOC_COMMANDS,"actions","execute"),actions:{get:function(){var result=[],actionSet=Utils.find(this.xml,_xmppConstants.Namespace.ADHOC_COMMANDS,"actions");return actionSet.length?(ACTIONS.forEach(function(action){var existing=Utils.find(actionSet[0],_xmppConstants.Namespace.ADHOC_COMMANDS,action);existing.length&&result.push(action)}),result):[]},set:function(values){for(var actionSet=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.ADHOC_COMMANDS,"actions"),i=0,len=actionSet.childNodes.length;i<len;i++)actionSet.removeChild(actionSet.childNodes[i]);values.forEach(function(value){actionSet.appendChild(Utils.createElement(_xmppConstants.Namespace.ADHOC_COMMANDS,value.toLowerCase(),_xmppConstants.Namespace.ADHOC_COMMANDS))})}}}}),Note=JXT.define({name:"_commandNote",namespace:_xmppConstants.Namespace.ADHOC_COMMANDS,element:"note",fields:{type:Utils.attribute("type"),value:Utils.text()}});JXT.extend(Command,Note,"notes"),JXT.extendIQ(Command),JXT.withStanzaError(function(StanzaError){JXT.add(StanzaError,"adhocCommandCondition",Utils.enumSub(_xmppConstants.Namespace.ADHOC_COMMANDS,CONDITIONS))}),JXT.withDataForm(function(DataForm){JXT.extend(Command,DataForm)})},module.exports=exports.default},{"xmpp-constants":220}],144:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var CSIFeature=JXT.define({name:"clientStateIndication",namespace:_xmppConstants.Namespace.CSI,element:"csi"});JXT.define({name:"csiActive",eventName:"csi:active",namespace:_xmppConstants.Namespace.CSI,element:"active",topLevel:!0}),JXT.define({name:"csiInactive",eventName:"csi:inactive",namespace:_xmppConstants.Namespace.CSI,element:"inactive",topLevel:!0}),JXT.extendStreamFeatures(CSIFeature)},module.exports=exports.default},{"xmpp-constants":220}],145:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid"),SINGLE_FIELDS=["text-single","text-private","list-single","jid-single"];exports.default=function(JXT){var Utils=JXT.utils,Field=JXT.define({name:"_field",namespace:_xmppConstants.Namespace.DATAFORM,element:"field",init:function(data){this._type=(data||{}).type||this.type},fields:{type:{get:function(){return Utils.getAttribute(this.xml,"type","text-single")},set:function(value){this._type=value,Utils.setAttribute(this.xml,"type",value)}},name:Utils.attribute("var"),desc:Utils.textSub(_xmppConstants.Namespace.DATAFORM,"desc"),required:Utils.boolSub(_xmppConstants.Namespace.DATAFORM,"required"),label:Utils.attribute("label"),value:{get:function(){var vals=Utils.getMultiSubText(this.xml,_xmppConstants.Namespace.DATAFORM,"value");return"boolean"===this._type?"1"===vals[0]||"true"===vals[0]:vals.length>1?"text-multi"===this._type?vals.join("\n"):"jid-multi"===this._type?vals.map(function(jid){return new _xmppJid.JID(jid)}):vals:SINGLE_FIELDS.indexOf(this._type)>=0?"jid-single"===this._type?new _xmppJid.JID(vals[0]):vals[0]:vals},set:function(value){if("boolean"===this._type||value===!0||value===!1){var truthy=value===!0||"true"===value||"1"===value,sub=Utils.createElement(_xmppConstants.Namespace.DATAFORM,"value",_xmppConstants.Namespace.DATAFORM);sub.textContent=truthy?"1":"0",this.xml.appendChild(sub)}else"text-multi"===this._type&&"string"==typeof value&&(value=value.split("\n")),Utils.setMultiSubText(this.xml,_xmppConstants.Namespace.DATAFORM,"value",value,function(val){var sub=Utils.createElement(_xmppConstants.Namespace.DATAFORM,"value",_xmppConstants.Namespace.DATAFORM);sub.textContent=val,this.xml.appendChild(sub)}.bind(this))}}}}),Option=JXT.define({name:"_formoption",namespace:_xmppConstants.Namespace.DATAFORM,element:"option",fields:{label:Utils.attribute("label"),value:Utils.textSub(_xmppConstants.Namespace.DATAFORM,"value")}}),Item=JXT.define({name:"_formitem",namespace:_xmppConstants.Namespace.DATAFORM,element:"item"}),Media=JXT.define({name:"media",element:"media",namespace:_xmppConstants.Namespace.DATAFORM_MEDIA,fields:{height:Utils.numberAttribute("height"),width:Utils.numberAttribute("width")}}),MediaURI=JXT.define({name:"_mediaURI",element:"uri",namespace:_xmppConstants.Namespace.DATAFORM_MEDIA,fields:{uri:Utils.text(),type:Utils.attribute("type")}}),Validation=JXT.define({name:"validation",element:"validate",namespace:_xmppConstants.Namespace.DATAFORM_VALIDATION,fields:{dataType:Utils.attribute("datatype"),basic:Utils.boolSub(_xmppConstants.Namespace.DATAFORM_VALIDATION,"basic"),open:Utils.boolSub(_xmppConstants.Namespace.DATAFORM_VALIDATION,"open"),regex:Utils.textSub(_xmppConstants.Namespace.DATAFORM_VALIDATION,"regex")}}),Range=JXT.define({name:"range",element:"range",namespace:_xmppConstants.Namespace.DATAFORM_VALIDATION,fields:{min:Utils.attribute("min"),max:Utils.attribute("max")}}),ListRange=JXT.define({name:"select",element:"list-range",namespace:_xmppConstants.Namespace.DATAFORM_VALIDATION,fields:{min:Utils.numberAttribute("min"),max:Utils.numberAttribute("max")}}),layoutContents={get:function(){for(var result=[],i=0,len=this.xml.childNodes.length;i<len;i++){var child=this.xml.childNodes[i];if(child.namespaceURI===_xmppConstants.Namespace.DATAFORM_LAYOUT)switch(child.localName){case"text":result.push({text:child.textContent});break;case"fieldref":result.push({field:child.getAttribute("var")});break;case"reportedref":result.push({reported:!0});break;case"section":result.push({section:new Section(null,child,this).toJSON()})}}return result},set:function(values){for(var i=0,len=values.length;i<len;i++){var value=values[i];if(value.text){var text=Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"text",_xmppConstants.Namespace.DATAFORM_LAYOUT);text.textContent=value.text,this.xml.appendChild(text)}if(value.field){var field=Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"fieldref",_xmppConstants.Namespace.DATAFORM_LAYOUT);field.setAttribute("var",value.field),this.xml.appendChild(field)}if(value.reported&&this.xml.appendChild(Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"reportedref",_xmppConstants.Namespace.DATAFORM_LAYOUT)),value.section){var sectionXML=Utils.createElement(_xmppConstants.Namespace.DATAFORM_LAYOUT,"section",_xmppConstants.Namespace.DATAFORM_LAYOUT);this.xml.appendChild(sectionXML);var section=new Section(null,sectionXML);section.label=value.section.label,section.contents=value.section.contents}}}},Section=JXT.define({name:"_section",element:"section",namespace:_xmppConstants.Namespace.DATAFORM_LAYOUT,fields:{label:Utils.attribute("label"),contents:layoutContents}}),Page=JXT.define({name:"_page",element:"page",namespace:_xmppConstants.Namespace.DATAFORM_LAYOUT,fields:{label:Utils.attribute("label"),contents:layoutContents}}),DataForm=JXT.define({name:"form",namespace:_xmppConstants.Namespace.DATAFORM,element:"x",init:function(){if(this.reportedFields.length){var fieldTypes={};this.reportedFields.forEach(function(reported){fieldTypes[reported.name]=reported.type}),this.items.forEach(function(item){item.fields.forEach(function(field){field.type=field._type=fieldTypes[field.name]})})}},fields:{title:Utils.textSub(_xmppConstants.Namespace.DATAFORM,"title"),instructions:Utils.multiTextSub(_xmppConstants.Namespace.DATAFORM,"instructions"),type:Utils.attribute("type","form"),reportedFields:Utils.subMultiExtension(_xmppConstants.Namespace.DATAFORM,"reported",Field)}});JXT.extend(DataForm,Field,"fields"),JXT.extend(DataForm,Item,"items"),JXT.extend(DataForm,Page,"layout"),JXT.extend(Field,Media),JXT.extend(Field,Validation),JXT.extend(Field,Option,"options"),JXT.extend(Item,Field,"fields"),JXT.extend(Media,MediaURI,"uris"),JXT.extend(Validation,Range),JXT.extend(Validation,ListRange),JXT.extendMessage(DataForm)},module.exports=exports.default},{"xmpp-constants":220,"xmpp-jid":226}],146:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,DelayedDelivery=JXT.define({name:"delay",namespace:_xmppConstants.Namespace.DELAY,element:"delay",fields:{from:Utils.jidAttribute("from"),stamp:Utils.dateAttribute("stamp"),reason:Utils.text()}});JXT.extendMessage(DelayedDelivery),JXT.extendPresence(DelayedDelivery)},module.exports=exports.default},{"xmpp-constants":220}],147:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,DiscoCaps=JXT.define({name:"caps",namespace:_xmppConstants.Namespace.CAPS,element:"c",fields:{ver:Utils.attribute("ver"),node:Utils.attribute("node"),hash:Utils.attribute("hash"),ext:Utils.attribute("ext")}}),DiscoInfo=JXT.define({name:"discoInfo",namespace:_xmppConstants.Namespace.DISCO_INFO,element:"query",fields:{node:Utils.attribute("node"),features:Utils.multiSubAttribute(_xmppConstants.Namespace.DISCO_INFO,"feature","var")}}),DiscoIdentity=JXT.define({name:"_discoIdentity",namespace:_xmppConstants.Namespace.DISCO_INFO,element:"identity",fields:{category:Utils.attribute("category"),type:Utils.attribute("type"),name:Utils.attribute("name"),lang:Utils.langAttribute()}}),DiscoItems=JXT.define({name:"discoItems",namespace:_xmppConstants.Namespace.DISCO_ITEMS,element:"query",fields:{node:Utils.attribute("node")}}),DiscoItem=JXT.define({name:"_discoItem",namespace:_xmppConstants.Namespace.DISCO_ITEMS,element:"item",fields:{jid:Utils.jidAttribute("jid"),node:Utils.attribute("node"),name:Utils.attribute("name")}});JXT.extend(DiscoItems,DiscoItem,"items"),JXT.extend(DiscoInfo,DiscoIdentity,"identities"),JXT.extendIQ(DiscoInfo),JXT.extendIQ(DiscoItems),JXT.extendPresence(DiscoCaps),JXT.extendStreamFeatures(DiscoCaps),JXT.withDataForm(function(DataForm){JXT.extend(DiscoInfo,DataForm,"extensions")}),JXT.withDefinition("set",_xmppConstants.Namespace.RSM,function(RSM){JXT.extend(DiscoItems,RSM)})},module.exports=exports.default},{"xmpp-constants":220}],148:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["bad-request","conflict","feature-not-implemented","forbidden","gone","internal-server-error","item-not-found","jid-malformed","not-acceptable","not-allowed","not-authorized","payment-required","recipient-unavailable","redirect","registration-required","remote-server-not-found","remote-server-timeout","resource-constraint","service-unavailable","subscription-required","undefined-condition","unexpected-request"];exports.default=function(JXT){var Utils=JXT.utils,StanzaError=JXT.define({name:"error",namespace:_xmppConstants.Namespace.CLIENT,element:"error",fields:{lang:{get:function(){return(this.parent||{}).lang||""}},condition:Utils.enumSub(_xmppConstants.Namespace.STANZA_ERROR,CONDITIONS),gone:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"gone")},set:function(value){this.condition="gone",Utils.setSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"gone",value)}},redirect:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"redirect")},set:function(value){this.condition="redirect",Utils.setSubText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"redirect",value)}},code:Utils.attribute("code"),type:Utils.attribute("type"),by:Utils.jidAttribute("by"),$text:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"text",this.lang)}},text:{get:function(){var text=this.$text;return text[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.STANZA_ERROR,"text",value,this.lang)}}}});JXT.extendMessage(StanzaError),JXT.extendPresence(StanzaError),JXT.extendIQ(StanzaError)},module.exports=exports.default},{"xmpp-constants":220}],149:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Services=exports.Services=JXT.define({name:"services",namespace:_xmppConstants.Namespace.DISCO_EXTERNAL_1,element:"services",fields:{type:Utils.attribute("type")}}),Credentials=exports.Credentials=JXT.define({name:"credentials",namespace:_xmppConstants.Namespace.DISCO_EXTERNAL_1,element:"credentials"}),Service=JXT.define({name:"service",namespace:_xmppConstants.Namespace.DISCO_EXTERNAL_1,element:"service",fields:{host:Utils.attribute("host"),port:Utils.attribute("port"),transport:Utils.attribute("transport"),type:Utils.attribute("type"),username:Utils.attribute("username"),password:Utils.attribute("password")}});JXT.extend(Services,Service,"services"),JXT.extend(Credentials,Service),JXT.extendIQ(Services),JXT.extendIQ(Credentials),JXT.withDataForm(function(DataForm){JXT.extend(Service,DataForm)})},module.exports=exports.default},{"xmpp-constants":220}],150:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),FT_NS=_xmppConstants.Namespace.FILE_TRANSFER_3;exports.default=function(JXT){var Utils=JXT.utils,File=JXT.define({name:"_file",namespace:FT_NS,element:"file",fields:{name:Utils.textSub(FT_NS,"name"),desc:Utils.textSub(FT_NS,"desc"),size:Utils.numberSub(FT_NS,"size"),date:Utils.dateSub(FT_NS,"date")}}),Range=JXT.define({name:"range",namespace:FT_NS,element:"range",fields:{offset:Utils.numberAttribute("offset")}}),Thumbnail=JXT.define({name:"thumbnail",namespace:_xmppConstants.Namespace.THUMBS_0,element:"thumbnail",fields:{cid:Utils.attribute("cid"),mimeType:Utils.attribute("mime-type"),width:Utils.numberAttribute("width"),height:Utils.numberAttribute("height")}}),FileTransfer=JXT.define({name:"_filetransfer",namespace:FT_NS,element:"description",tags:["jingle-description"],fields:{descType:{value:"filetransfer"},offer:Utils.subExtension("offer",FT_NS,"offer",File),request:Utils.subExtension("request",FT_NS,"request",File)}});JXT.extend(File,Range),JXT.extend(File,Thumbnail),JXT.withDefinition("hash",_xmppConstants.Namespace.HASHES_1,function(Hash){JXT.extend(File,Hash,"hashes")}),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,FileTransfer)})},module.exports=exports.default},{"xmpp-constants":220}],151:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Forwarded=JXT.define({name:"forwarded",namespace:_xmppConstants.Namespace.FORWARD_0,element:"forwarded"});JXT.extendIQ(Forwarded),JXT.extendPresence(Forwarded),JXT.withMessage(function(Message){JXT.extend(Message,Forwarded),JXT.extend(Forwarded,Message)}),JXT.withDefinition("delay",_xmppConstants.Namespace.DELAY,function(Delayed){JXT.extend(Forwarded,Delayed)})},module.exports=exports.default},{"xmpp-constants":220}],152:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"openStream",namespace:_xmppConstants.Namespace.FRAMING,element:"open",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),version:Utils.attribute("version","1.0"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0)}}),JXT.define({name:"closeStream",namespace:_xmppConstants.Namespace.FRAMING,element:"close",topLevel:!0,fields:{seeOtherURI:Utils.attribute("see-other-uri")}})},module.exports=exports.default},{"xmpp-constants":220}],153:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,GeoLoc=JXT.define({name:"geoloc",namespace:_xmppConstants.Namespace.GEOLOC,element:"geoloc",fields:{accuracy:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"accuracy",!0),altitude:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"alt",!0),area:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"area"),heading:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"bearing",!0),bearing:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"bearing",!0),building:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"building"),country:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"country"),countrycode:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"countrycode"),datum:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"datum"),description:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"description"),error:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"error",!0),floor:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"floor"),latitude:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"lat",!0),locality:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"locality"),longitude:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"lon",!0),postalcode:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"postalcode"),region:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"region"),room:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"room"),speed:Utils.numberSub(_xmppConstants.Namespace.GEOLOC,"speed",!0),street:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"street"),text:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"text"),timestamp:Utils.dateSub(_xmppConstants.Namespace.GEOLOC,"timestamp"),
-tzo:Utils.tzoSub(_xmppConstants.Namespace.GEOLOC,"tzo"),uri:Utils.textSub(_xmppConstants.Namespace.GEOLOC,"uri")}});JXT.extendPubsubItem(GeoLoc)},module.exports=exports.default},{"xmpp-constants":220}],154:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){JXT.define({name:"hash",namespace:_xmppConstants.Namespace.HASHES_1,element:"hash",fields:{algo:JXT.utils.attribute("algo"),value:JXT.utils.text()}})},module.exports=exports.default},{"xmpp-constants":220}],155:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Hat=JXT.define({name:"_hat",namespace:_xmppConstants.Namespace.HATS_0,element:"hat",fields:{lang:JXT.utils.langAttribute(),name:JXT.utils.attribute("name"),displayName:JXT.utils.attribute("displayName")}});JXT.withPresence(function(Presence){JXT.add(Presence,"hats",JXT.utils.subMultiExtension(_xmppConstants.Namespace.HATS_0,"hats",Hat))})},module.exports=exports.default},{"xmpp-constants":220}],156:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,ICE=JXT.define({name:"_iceUdp",namespace:_xmppConstants.Namespace.JINGLE_ICE_UDP_1,element:"transport",tags:["jingle-transport"],fields:{transType:{value:"iceUdp"},pwd:Utils.attribute("pwd"),ufrag:Utils.attribute("ufrag")}}),RemoteCandidate=JXT.define({name:"remoteCandidate",namespace:_xmppConstants.Namespace.JINGLE_ICE_UDP_1,element:"remote-candidate",fields:{component:Utils.attribute("component"),ip:Utils.attribute("ip"),port:Utils.attribute("port")}}),Candidate=JXT.define({name:"_iceUdpCandidate",namespace:_xmppConstants.Namespace.JINGLE_ICE_UDP_1,element:"candidate",fields:{component:Utils.attribute("component"),foundation:Utils.attribute("foundation"),generation:Utils.attribute("generation"),id:Utils.attribute("id"),ip:Utils.attribute("ip"),network:Utils.attribute("network"),port:Utils.attribute("port"),priority:Utils.attribute("priority"),protocol:Utils.attribute("protocol"),relAddr:Utils.attribute("rel-addr"),relPort:Utils.attribute("rel-port"),tcpType:Utils.attribute("tcptype"),type:Utils.attribute("type")}}),Fingerprint=JXT.define({name:"_iceFingerprint",namespace:_xmppConstants.Namespace.JINGLE_DTLS_0,element:"fingerprint",fields:{hash:Utils.attribute("hash"),setup:Utils.attribute("setup"),value:Utils.text(),required:Utils.boolAttribute("required")}}),SctpMap=JXT.define({name:"_sctpMap",namespace:_xmppConstants.Namespace.DTLS_SCTP_1,element:"sctpmap",fields:{number:Utils.attribute("number"),protocol:Utils.attribute("protocol"),streams:Utils.attribute("streams")}});JXT.extend(ICE,Candidate,"candidates"),JXT.extend(ICE,RemoteCandidate),JXT.extend(ICE,Fingerprint,"fingerprints"),JXT.extend(ICE,SctpMap,"sctp"),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,ICE)})},module.exports=exports.default},{"xmpp-constants":220}],157:[function(require,module,exports){"use strict";var _interopRequireDefault=require("babel-runtime/helpers/interop-require-default").default;Object.defineProperty(exports,"__esModule",{value:!0});var _avatar=require("./avatar"),_avatar2=_interopRequireDefault(_avatar),_bind=require("./bind"),_bind2=_interopRequireDefault(_bind),_blocking=require("./blocking"),_blocking2=_interopRequireDefault(_blocking),_bob=require("./bob"),_bob2=_interopRequireDefault(_bob),_bookmarks=require("./bookmarks"),_bookmarks2=_interopRequireDefault(_bookmarks),_bosh=require("./bosh"),_bosh2=_interopRequireDefault(_bosh),_carbons=require("./carbons"),_carbons2=_interopRequireDefault(_carbons),_command=require("./command"),_command2=_interopRequireDefault(_command),_csi=require("./csi"),_csi2=_interopRequireDefault(_csi),_dataforms=require("./dataforms"),_dataforms2=_interopRequireDefault(_dataforms),_delayed=require("./delayed"),_delayed2=_interopRequireDefault(_delayed),_disco=require("./disco"),_disco2=_interopRequireDefault(_disco),_error=require("./error"),_error2=_interopRequireDefault(_error),_extdisco=require("./extdisco"),_extdisco2=_interopRequireDefault(_extdisco),_file=require("./file"),_file2=_interopRequireDefault(_file),_forwarded=require("./forwarded"),_forwarded2=_interopRequireDefault(_forwarded),_framing=require("./framing"),_framing2=_interopRequireDefault(_framing),_geoloc=require("./geoloc"),_geoloc2=_interopRequireDefault(_geoloc),_hash=require("./hash"),_hash2=_interopRequireDefault(_hash),_hats=require("./hats"),_hats2=_interopRequireDefault(_hats),_iceUdp=require("./iceUdp"),_iceUdp2=_interopRequireDefault(_iceUdp),_iq=require("./iq"),_iq2=_interopRequireDefault(_iq),_jidprep=require("./jidprep"),_jidprep2=_interopRequireDefault(_jidprep),_jingle=require("./jingle"),_jingle2=_interopRequireDefault(_jingle),_json=require("./json"),_json2=_interopRequireDefault(_json),_logging=require("./logging"),_logging2=_interopRequireDefault(_logging),_mam=require("./mam"),_mam2=_interopRequireDefault(_mam),_message=require("./message"),_message2=_interopRequireDefault(_message),_mood=require("./mood"),_mood2=_interopRequireDefault(_mood),_muc=require("./muc"),_muc2=_interopRequireDefault(_muc),_nick=require("./nick"),_nick2=_interopRequireDefault(_nick),_oob=require("./oob"),_oob2=_interopRequireDefault(_oob),_ping=require("./ping"),_ping2=_interopRequireDefault(_ping),_presence=require("./presence"),_presence2=_interopRequireDefault(_presence),_private=require("./private"),_private2=_interopRequireDefault(_private),_psa=require("./psa"),_psa2=_interopRequireDefault(_psa),_pubsub=require("./pubsub"),_pubsub2=_interopRequireDefault(_pubsub),_pubsubError=require("./pubsubError"),_pubsubError2=_interopRequireDefault(_pubsubError),_pubsubEvents=require("./pubsubEvents"),_pubsubEvents2=_interopRequireDefault(_pubsubEvents),_pubsubOwner=require("./pubsubOwner"),_pubsubOwner2=_interopRequireDefault(_pubsubOwner),_push=require("./push"),_push2=_interopRequireDefault(_push),_reach=require("./reach"),_reach2=_interopRequireDefault(_reach),_register=require("./register"),_register2=_interopRequireDefault(_register),_roster=require("./roster"),_roster2=_interopRequireDefault(_roster),_rsm=require("./rsm"),_rsm2=_interopRequireDefault(_rsm),_rtp=require("./rtp"),_rtp2=_interopRequireDefault(_rtp),_rtt=require("./rtt"),_rtt2=_interopRequireDefault(_rtt),_sasl=require("./sasl"),_sasl2=_interopRequireDefault(_sasl),_session=require("./session"),_session2=_interopRequireDefault(_session),_shim=require("./shim"),_shim2=_interopRequireDefault(_shim),_sm=require("./sm"),_sm2=_interopRequireDefault(_sm),_stream=require("./stream"),_stream2=_interopRequireDefault(_stream),_streamError=require("./streamError"),_streamError2=_interopRequireDefault(_streamError),_streamFeatures=require("./streamFeatures"),_streamFeatures2=_interopRequireDefault(_streamFeatures),_time=require("./time"),_time2=_interopRequireDefault(_time),_tune=require("./tune"),_tune2=_interopRequireDefault(_tune),_vcard=require("./vcard"),_vcard2=_interopRequireDefault(_vcard),_version=require("./version"),_version2=_interopRequireDefault(_version),_visibility=require("./visibility"),_visibility2=_interopRequireDefault(_visibility);exports.default=function(JXT){JXT.use(_avatar2.default),JXT.use(_bind2.default),JXT.use(_blocking2.default),JXT.use(_bob2.default),JXT.use(_bookmarks2.default),JXT.use(_bosh2.default),JXT.use(_carbons2.default),JXT.use(_command2.default),JXT.use(_csi2.default),JXT.use(_dataforms2.default),JXT.use(_delayed2.default),JXT.use(_disco2.default),JXT.use(_error2.default),JXT.use(_extdisco2.default),JXT.use(_file2.default),JXT.use(_forwarded2.default),JXT.use(_framing2.default),JXT.use(_geoloc2.default),JXT.use(_hash2.default),JXT.use(_hats2.default),JXT.use(_iceUdp2.default),JXT.use(_iq2.default),JXT.use(_jidprep2.default),JXT.use(_jingle2.default),JXT.use(_json2.default),JXT.use(_logging2.default),JXT.use(_mam2.default),JXT.use(_message2.default),JXT.use(_mood2.default),JXT.use(_muc2.default),JXT.use(_nick2.default),JXT.use(_oob2.default),JXT.use(_ping2.default),JXT.use(_presence2.default),JXT.use(_private2.default),JXT.use(_psa2.default),JXT.use(_pubsub2.default),JXT.use(_pubsubError2.default),JXT.use(_pubsubEvents2.default),JXT.use(_pubsubOwner2.default),JXT.use(_push2.default),JXT.use(_reach2.default),JXT.use(_register2.default),JXT.use(_roster2.default),JXT.use(_rsm2.default),JXT.use(_rtp2.default),JXT.use(_rtt2.default),JXT.use(_sasl2.default),JXT.use(_session2.default),JXT.use(_shim2.default),JXT.use(_sm2.default),JXT.use(_stream2.default),JXT.use(_streamError2.default),JXT.use(_streamFeatures2.default),JXT.use(_time2.default),JXT.use(_tune2.default),JXT.use(_vcard2.default),JXT.use(_version2.default),JXT.use(_visibility2.default)},module.exports=exports.default},{"./avatar":136,"./bind":137,"./blocking":138,"./bob":139,"./bookmarks":140,"./bosh":141,"./carbons":142,"./command":143,"./csi":144,"./dataforms":145,"./delayed":146,"./disco":147,"./error":148,"./extdisco":149,"./file":150,"./forwarded":151,"./framing":152,"./geoloc":153,"./hash":154,"./hats":155,"./iceUdp":156,"./iq":158,"./jidprep":159,"./jingle":160,"./json":161,"./logging":162,"./mam":163,"./message":164,"./mood":165,"./muc":166,"./nick":167,"./oob":168,"./ping":169,"./presence":170,"./private":171,"./psa":172,"./pubsub":173,"./pubsubError":174,"./pubsubEvents":175,"./pubsubOwner":176,"./push":177,"./reach":178,"./register":179,"./roster":180,"./rsm":181,"./rtp":182,"./rtt":183,"./sasl":184,"./session":185,"./shim":186,"./sm":187,"./stream":188,"./streamError":189,"./streamFeatures":190,"./time":191,"./tune":192,"./vcard":193,"./version":194,"./visibility":195,"babel-runtime/helpers/interop-require-default":197}],158:[function(require,module,exports){"use strict";var _Object$assign=require("babel-runtime/core-js/object/assign").default;Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),internals={};internals.defineIQ=function(JXT,name,namespace){var Utils=JXT.utils,IQ=JXT.define({name:name,namespace:namespace,element:"iq",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0),type:Utils.attribute("type")}}),_toJSON=IQ.prototype.toJSON;_Object$assign(IQ.prototype,{toJSON:function(){var result=_toJSON.call(this);return result.resultReply=this.resultReply,result.errorReply=this.errorReply,result},resultReply:function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="result",new IQ(data)},errorReply:function(data){return data=data||{},data.to=this.from,data.id=this.id,data.type="error",new IQ(data)}})},exports.default=function(JXT){internals.defineIQ(JXT,"iq",_xmppConstants.Namespace.CLIENT),internals.defineIQ(JXT,"serverIQ",_xmppConstants.Namespace.SERVER),internals.defineIQ(JXT,"componentIQ",_xmppConstants.Namespace.COMPONENT)},module.exports=exports.default},{"babel-runtime/core-js/object/assign":196,"xmpp-constants":220}],159:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid");exports.default=function(JXT){JXT.withIQ(function(IQ){JXT.add(IQ,"jidPrep",{get:function(){var data=JXT.utils.getSubText(this.xml,_xmppConstants.Namespace.JID_PREP_0,"jid");if(data){var jid=new _xmppJid.JID(data);return jid.prepped=!0,jid}},set:function(value){JXT.utils.setSubText(this.xml,_xmppConstants.Namespace.JID_PREP_0,"jid",(value||"").toString())}})})},module.exports=exports.default},{"xmpp-constants":220,"xmpp-jid":226}],160:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["out-of-order","tie-break","unknown-session","unsupported-info"],REASONS=["alternative-session","busy","cancel","connectivity-error","decline","expired","failed-application","failed-transport","general-error","gone","incompatible-parameters","media-error","security-error","success","timeout","unsupported-applications","unsupported-transports"];exports.default=function(JXT){var Utils=JXT.utils,Jingle=JXT.define({name:"jingle",namespace:_xmppConstants.Namespace.JINGLE_1,element:"jingle",fields:{action:Utils.attribute("action"),initiator:Utils.attribute("initiator"),responder:Utils.attribute("responder"),sid:Utils.attribute("sid")}}),Content=JXT.define({name:"_jingleContent",namespace:_xmppConstants.Namespace.JINGLE_1,element:"content",fields:{creator:Utils.attribute("creator"),disposition:Utils.attribute("disposition","session"),name:Utils.attribute("name"),senders:Utils.attribute("senders","both"),description:{get:function(){for(var opts=JXT.tagged("jingle-description").map(function(Description){return Description.prototype._name}),i=0,len=opts.length;i<len;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.descType;this[ext]=value}},transport:{get:function(){for(var opts=JXT.tagged("jingle-transport").map(function(Transport){return Transport.prototype._name}),i=0,len=opts.length;i<len;i++)if(this._extensions[opts[i]])return this._extensions[opts[i]]},set:function(value){var ext="_"+value.transType;this[ext]=value}}}}),Reason=JXT.define({name:"reason",namespace:_xmppConstants.Namespace.JINGLE_1,element:"reason",fields:{condition:Utils.enumSub(_xmppConstants.Namespace.JINGLE_1,REASONS),alternativeSession:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.JINGLE_1,"alternative-session")},set:function(value){this.condition="alternative-session",Utils.setSubText(this.xml,_xmppConstants.Namespace.JINGLE_1,"alternative-session",value)}},text:Utils.textSub(_xmppConstants.Namespace.JINGLE_1,"text")}});JXT.extend(Jingle,Content,"contents"),JXT.extend(Jingle,Reason),JXT.extendIQ(Jingle),JXT.withStanzaError(function(StanzaError){JXT.add(StanzaError,"jingleCondition",Utils.enumSub(_xmppConstants.Namespace.JINGLE_ERRORS_1,CONDITIONS))})},module.exports=exports.default},{"xmpp-constants":220}],161:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var JSONExtension={get:function(){var data=JXT.utils.getSubText(this.xml,_xmppConstants.Namespace.JSON_0,"json");if(data)return JSON.parse(data)},set:function(value){value=JSON.stringify(value),value&&JXT.utils.setSubText(this.xml,_xmppConstants.Namespace.JSON_0,"json",value)}};JXT.withMessage(function(Message){JXT.add(Message,"json",JSONExtension)}),JXT.withPubsubItem(function(Item){JXT.add(Item,"json",JSONExtension)})},module.exports=exports.default},{"xmpp-constants":220}],162:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Log=JXT.define({name:"log",namespace:_xmppConstants.Namespace.EVENTLOG,element:"log",fields:{id:Utils.attribute("id"),timestamp:Utils.dateAttribute("timestamp"),type:Utils.attribute("type"),level:Utils.attribute("level"),object:Utils.attribute("object"),subject:Utils.attribute("subject"),facility:Utils.attribute("facility"),module:Utils.attribute("module"),message:Utils.textSub(_xmppConstants.Namespace.EVENTLOG,"message"),stackTrace:Utils.textSub(_xmppConstants.Namespace.EVENTLOG,"stackTrace")}}),Tag=JXT.define({name:"_logtag",namespace:_xmppConstants.Namespace.EVENTLOG,element:"tag",fields:{name:Utils.attribute("name"),value:Utils.attribute("value"),type:Utils.attribute("type")}});JXT.extend(Log,Tag,"tags"),JXT.extendMessage(Log),JXT.extendPubsubItem(Log)},module.exports=exports.default},{"xmpp-constants":220}],163:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_xmppJid=require("xmpp-jid");exports.default=function(JXT){var Utils=JXT.utils,MAMQuery=JXT.define({name:"mam",namespace:_xmppConstants.Namespace.MAM_0,element:"query",fields:{queryid:Utils.attribute("queryid")}}),Result=JXT.define({name:"mamItem",namespace:_xmppConstants.Namespace.MAM_0,element:"result",fields:{queryid:Utils.attribute("queryid"),id:Utils.attribute("id")}}),Fin=JXT.define({name:"mamResult",namespace:_xmppConstants.Namespace.MAM_0,element:"fin",fields:{queryid:Utils.attribute("queryid"),complete:Utils.boolAttribute("complete"),stable:Utils.boolAttribute("stable")}}),Prefs=JXT.define({name:"mamPrefs",namespace:_xmppConstants.Namespace.MAM_0,element:"prefs",fields:{defaultCondition:Utils.attribute("default"),always:{get:function(){var results=[],container=Utils.find(this.xml,_xmppConstants.Namespace.MAM_0,"always");if(0===container.length)return results;container=container[0];var jids=Utils.getMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid");return jids.forEach(function(jid){results.push(new _xmppJid.JID(jid.textContent))}),results},set:function(value){if(value.length>0){var container=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.MAM_0,"always");Utils.setMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid",value)}}},never:{get:function(){var results=[],container=Utils.find(this.xml,_xmppConstants.Namespace.MAM_0,"always");if(0===container.length)return results;container=container[0];var jids=Utils.getMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid");return jids.forEach(function(jid){results.push(new _xmppJid.JID(jid.textContent))}),results},set:function(value){if(value.length>0){var container=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.MAM_0,"never");Utils.setMultiSubText(container,_xmppConstants.Namespace.MAM_0,"jid",value)}}}}});JXT.extendMessage(Result),JXT.extendMessage(Fin),JXT.extendIQ(MAMQuery),JXT.extendIQ(Prefs),JXT.withDataForm(function(DataForm){JXT.extend(MAMQuery,DataForm)}),JXT.withDefinition("forwarded",_xmppConstants.Namespace.FORWARD_0,function(Forwarded){JXT.extend(Result,Forwarded)}),JXT.withDefinition("set",_xmppConstants.Namespace.RSM,function(RSM){JXT.extend(MAMQuery,RSM),JXT.extend(Fin,RSM)})},module.exports=exports.default},{"xmpp-constants":220,"xmpp-jid":226}],164:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),internals={};internals.defineMessage=function(JXT,name,namespace){var Utils=JXT.utils;JXT.define({name:name,namespace:namespace,element:"message",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0),type:Utils.attribute("type","normal"),thread:Utils.textSub(namespace,"thread"),parentThread:Utils.subAttribute(namespace,"thread","parent"),subject:Utils.textSub(namespace,"subject"),$body:{get:function(){return Utils.getSubLangText(this.xml,namespace,"body",this.lang)}},body:{get:function(){var bodies=this.$body;return bodies[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,namespace,"body",value,this.lang)}},attention:Utils.boolSub(_xmppConstants.Namespace.ATTENTION_0,"attention"),chatState:Utils.enumSub(_xmppConstants.Namespace.CHAT_STATES,["active","composing","paused","inactive","gone"]),replace:Utils.subAttribute(_xmppConstants.Namespace.CORRECTION_0,"replace","id"),requestReceipt:Utils.boolSub(_xmppConstants.Namespace.RECEIPTS,"request"),receipt:Utils.subAttribute(_xmppConstants.Namespace.RECEIPTS,"received","id")}})},exports.default=function(JXT){internals.defineMessage(JXT,"message",_xmppConstants.Namespace.CLIENT),internals.defineMessage(JXT,"serverMessage",_xmppConstants.Namespace.SERVER),internals.defineMessage(JXT,"componentMessage",_xmppConstants.Namespace.COMPONENT)},module.exports=exports.default},{"xmpp-constants":220}],165:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),MOODS=["afraid","amazed","amorous","angry","annoyed","anxious","aroused","ashamed","bored","brave","calm","cautious","cold","confident","confused","contemplative","contented","cranky","crazy","creative","curious","dejected","depressed","disappointed","disgusted","dismayed","distracted","embarrassed","envious","excited","flirtatious","frustrated","grateful","grieving","grumpy","guilty","happy","hopeful","hot","humbled","humiliated","hungry","hurt","impressed","in_awe","in_love","indignant","interested","intoxicated","invincible","jealous","lonely","lucky","mean","moody","nervous","neutral","offended","outraged","playful","proud","relaxed","relieved","remorseful","restless","sad","sarcastic","serious","shocked","shy","sick","sleepy","spontaneous","stressed","strong","surprised","thankful","thirsty","tired","undefined","weak","worried"];exports.default=function(JXT){var Mood=JXT.define({name:"mood",namespace:_xmppConstants.Namespace.MOOD,element:"mood",fields:{text:JXT.utils.textSub(_xmppConstants.Namespace.MOOD,"text"),value:JXT.utils.enumSub(_xmppConstants.Namespace.MOOD,MOODS)}});JXT.extendMessage(Mood),JXT.extendPubsubItem(Mood)},module.exports=exports.default},{"xmpp-constants":220}],166:[function(require,module,exports){"use strict";function proxy(child,field){return{get:function(){if(this._extensions[child])return this[child][field]},set:function(value){this[child][field]=value}}}Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,UserItem=JXT.define({name:"_mucUserItem",namespace:_xmppConstants.Namespace.MUC_USER,element:"item",fields:{affiliation:Utils.attribute("affiliation"),nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid"),role:Utils.attribute("role"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason")}}),UserActor=JXT.define({name:"_mucUserActor",namespace:_xmppConstants.Namespace.MUC_USER,element:"actor",fields:{nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid")}}),Destroyed=JXT.define({name:"destroyed",namespace:_xmppConstants.Namespace.MUC_USER,element:"destroy",fields:{jid:Utils.jidAttribute("jid"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason")}}),Invite=JXT.define({name:"invite",namespace:_xmppConstants.Namespace.MUC_USER,element:"invite",fields:{to:Utils.jidAttribute("to"),from:Utils.jidAttribute("from"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason"),thread:Utils.subAttribute(_xmppConstants.Namespace.MUC_USER,"continue","thread"),continue:Utils.boolSub(_xmppConstants.Namespace.MUC_USER,"continue")}}),Decline=JXT.define({name:"decline",namespace:_xmppConstants.Namespace.MUC_USER,element:"decline",fields:{to:Utils.jidAttribute("to"),from:Utils.jidAttribute("from"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"reason")}}),AdminItem=JXT.define({name:"_mucAdminItem",namespace:_xmppConstants.Namespace.MUC_ADMIN,element:"item",fields:{affiliation:Utils.attribute("affiliation"),nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid"),role:Utils.attribute("role"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_ADMIN,"reason")}}),AdminActor=JXT.define({name:"actor",namespace:_xmppConstants.Namespace.MUC_USER,element:"actor",fields:{nick:Utils.attribute("nick"),jid:Utils.jidAttribute("jid")}}),Destroy=JXT.define({name:"destroy",namespace:_xmppConstants.Namespace.MUC_OWNER,element:"destroy",fields:{jid:Utils.jidAttribute("jid"),password:Utils.textSub(_xmppConstants.Namespace.MUC_OWNER,"password"),reason:Utils.textSub(_xmppConstants.Namespace.MUC_OWNER,"reason")}}),MUC=JXT.define({name:"muc",namespace:_xmppConstants.Namespace.MUC_USER,element:"x",fields:{affiliation:proxy("_mucUserItem","affiliation"),nick:proxy("_mucUserItem","nick"),jid:proxy("_mucUserItem","jid"),role:proxy("_mucUserItem","role"),actor:proxy("_mucUserItem","_mucUserActor"),reason:proxy("_mucUserItem","reason"),password:Utils.textSub(_xmppConstants.Namespace.MUC_USER,"password"),codes:{get:function(){return Utils.getMultiSubText(this.xml,_xmppConstants.Namespace.MUC_USER,"status",function(sub){return Utils.getAttribute(sub,"code")})},set:function(value){var self=this;Utils.setMultiSubText(this.xml,_xmppConstants.Namespace.MUC_USER,"status",value,function(val){var child=Utils.createElement(_xmppConstants.Namespace.MUC_USER,"status",_xmppConstants.Namespace.MUC_USER);Utils.setAttribute(child,"code",val),self.xml.appendChild(child)})}}}}),MUCAdmin=JXT.define({name:"mucAdmin",namespace:_xmppConstants.Namespace.MUC_ADMIN,element:"query",fields:{affiliation:proxy("_mucAdminItem","affiliation"),nick:proxy("_mucAdminItem","nick"),jid:proxy("_mucAdminItem","jid"),role:proxy("_mucAdminItem","role"),actor:proxy("_mucAdminItem","_mucAdminActor"),reason:proxy("_mucAdminItem","reason")}}),MUCOwner=JXT.define({name:"mucOwner",namespace:_xmppConstants.Namespace.MUC_OWNER,element:"query"}),MUCJoin=JXT.define({name:"joinMuc",namespace:_xmppConstants.Namespace.MUC,element:"x",fields:{password:Utils.textSub(_xmppConstants.Namespace.MUC,"password"),history:{get:function(){var result={},hist=Utils.find(this.xml,_xmppConstants.Namespace.MUC,"history");if(!hist.length)return{};hist=hist[0];var maxchars=hist.getAttribute("maxchars")||"",maxstanzas=hist.getAttribute("maxstanzas")||"",seconds=hist.getAttribute("seconds")||"",since=hist.getAttribute("since")||"";maxchars&&(result.maxchars=parseInt(maxchars,10)),maxstanzas&&(result.maxstanzas=parseInt(maxstanzas,10)),seconds&&(result.seconds=parseInt(seconds,10)),since&&(result.since=new Date(since))},set:function(opts){var existing=Utils.find(this.xml,_xmppConstants.Namespace.MUC,"history");if(existing.length)for(var i=0;i<existing.length;i++)this.xml.removeChild(existing[i]);var hist=Utils.createElement(_xmppConstants.Namespace.MUC,"history",_xmppConstants.Namespace.MUC);this.xml.appendChild(hist),opts.maxchars&&hist.setAttribute("maxchars",""+opts.maxchars),opts.maxstanzas&&hist.setAttribute("maxstanzas",""+opts.maxstanzas),opts.seconds&&hist.setAttribute("seconds",""+opts.seconds),opts.since&&hist.setAttribute("since",opts.since.toISOString())}}}}),DirectInvite=JXT.define({name:"mucInvite",namespace:_xmppConstants.Namespace.MUC_DIRECT_INVITE,element:"x",fields:{jid:Utils.jidAttribute("jid"),password:Utils.attribute("password"),reason:Utils.attribute("reason"),thread:Utils.attribute("thread"),continue:Utils.boolAttribute("continue")}});JXT.extend(UserItem,UserActor),JXT.extend(MUC,UserItem),JXT.extend(MUC,Invite,"invites"),JXT.extend(MUC,Decline),JXT.extend(MUC,Destroyed),JXT.extend(AdminItem,AdminActor),JXT.extend(MUCAdmin,AdminItem,"items"),JXT.extend(MUCOwner,Destroy),JXT.extendPresence(MUC),JXT.extendPresence(MUCJoin),JXT.extendMessage(MUC),JXT.extendMessage(DirectInvite),JXT.withIQ(function(IQ){JXT.add(IQ,"mucUnique",Utils.textSub(_xmppConstants.Namespace.MUC_UNIQUE,"unique")),JXT.extend(IQ,MUCAdmin),JXT.extend(IQ,MUCOwner)}),JXT.withDataForm(function(DataForm){JXT.extend(MUCOwner,DataForm)})},module.exports=exports.default},{"xmpp-constants":220}],167:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var nick=JXT.utils.textSub(_xmppConstants.Namespace.NICK,"nick");JXT.withPubsubItem(function(Item){JXT.add(Item,"nick",nick)}),JXT.withPresence(function(Presence){JXT.add(Presence,"nick",nick)}),JXT.withMessage(function(Message){JXT.add(Message,"nick",nick)})},module.exports=exports.default},{"xmpp-constants":220}],168:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var OOB=JXT.define({name:"oob",element:"x",namespace:_xmppConstants.Namespace.OOB,fields:{url:JXT.utils.textSub(_xmppConstants.Namespace.OOB,"url"),desc:JXT.utils.textSub(_xmppConstants.Namespace.OOB,"desc")}});JXT.extendMessage(OOB,"oobURIs")},module.exports=exports.default},{"xmpp-constants":220}],169:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Ping=JXT.define({name:"ping",namespace:_xmppConstants.Namespace.PING,element:"ping"});JXT.extendIQ(Ping)},module.exports=exports.default},{"xmpp-constants":220}],170:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),internals={};internals.definePresence=function(JXT,name,namespace){var Utils=JXT.utils;JXT.define({name:name,namespace:namespace,element:"presence",topLevel:!0,fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0),priority:Utils.numberSub(namespace,"priority",!1,0),show:Utils.textSub(namespace,"show"),type:{get:function(){return Utils.getAttribute(this.xml,"type","available")},set:function(value){"available"===value&&(value=!1),Utils.setAttribute(this.xml,"type",value)}},$status:{get:function(){return Utils.getSubLangText(this.xml,namespace,"status",this.lang)}},status:{get:function(){var statuses=this.$status;return statuses[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,namespace,"status",value,this.lang)}},idleSince:Utils.dateSubAttribute(_xmppConstants.Namespace.IDLE_1,"idle","since"),decloak:Utils.subAttribute(_xmppConstants.Namespace.DECLOAK_0,"decloak","reason"),avatarId:{get:function(){var update=Utils.find(this.xml,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"x");return update.length?Utils.getSubText(update[0],_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"photo"):""},set:function(value){var update=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"x");if(""===value)Utils.setBoolSub(update,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"photo",!0);else{if(value===!0)return;value?Utils.setSubText(update,_xmppConstants.Namespace.VCARD_TEMP_UPDATE,"photo",value):this.xml.removeChild(update)}}}}})},exports.default=function(JXT){internals.definePresence(JXT,"presence",_xmppConstants.Namespace.CLIENT),internals.definePresence(JXT,"serverPresence",_xmppConstants.Namespace.SERVER),internals.definePresence(JXT,"componentPresence",_xmppConstants.Namespace.COMPONENT)},module.exports=exports.default},{"xmpp-constants":220}],171:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var PrivateStorage=JXT.define({name:"privateStorage",namespace:_xmppConstants.Namespace.PRIVATE,element:"query"});JXT.extendIQ(PrivateStorage)},module.exports=exports.default},{"xmpp-constants":220}],172:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["server-unavailable","connection-paused"];exports.default=function(JXT){var PSA=JXT.define({name:"state",namespace:_xmppConstants.Namespace.PSA,element:"state-annotation",fields:{from:JXT.utils.jidAttribute("from"),condition:JXT.utils.enumSub(_xmppConstants.Namespace.PSA,CONDITIONS),description:JXT.utils.textSub(_xmppConstants.Namespace.PSA,"description")}});JXT.extendPresence(PSA)},module.exports=exports.default},{"xmpp-constants":220}],173:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Pubsub=JXT.define({name:"pubsub",namespace:_xmppConstants.Namespace.PUBSUB,element:"pubsub",fields:{create:{get:function(){var node=Utils.getSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB,"create","node");return node?node:Utils.getBoolSub(this.xml,_xmppConstants.Namespace.PUBSUB,"create");
-},set:function(value){value!==!0&&value?Utils.setSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB,"create","node",value):Utils.setBoolSub(this.xml,_xmppConstants.Namespace.PUBSUB,"create",value)}},publishOptions:{get:function(){var DataForm=JXT.getDefinition("x",_xmppConstants.Namespace.DATAFORM),conf=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB,"publish-options");if(conf.length&&conf[0].childNodes.length)return new DataForm({},conf[0].childNodes[0])},set:function(value){var DataForm=JXT.getDefinition("x",_xmppConstants.Namespace.DATAFORM),conf=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.PUBSUB,"publish-options");if(value){var form=new DataForm(value);conf.appendChild(form.xml)}}}}}),Configure=JXT.define({name:"config",namespace:_xmppConstants.Namespace.PUBSUB,element:"configure"}),Subscribe=JXT.define({name:"subscribe",namespace:_xmppConstants.Namespace.PUBSUB,element:"subscribe",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid")}}),Subscription=JXT.define({name:"subscription",namespace:_xmppConstants.Namespace.PUBSUB,element:"subscription",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),subid:Utils.attribute("subid"),type:Utils.attribute("subscription"),configurable:Utils.boolSub("subscribe-options"),configurationRequired:{get:function(){var options=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB,"subscribe-options");return!!options.length&&Utils.getBoolSub(options[0],_xmppConstants.Namespace.PUBSUB,"required")}}}}),Subscriptions=JXT.define({name:"subscriptions",namespace:_xmppConstants.Namespace.PUBSUB,element:"subscriptions",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid")}}),Affiliation=JXT.define({name:"affiliation",namespace:_xmppConstants.Namespace.PUBSUB,element:"affiliation",fields:{node:Utils.attribute("node"),type:Utils.attribute("affiliation")}}),Affiliations=JXT.define({name:"affiliations",namespace:_xmppConstants.Namespace.PUBSUB,element:"affiliations",fields:{node:Utils.attribute("node")}}),SubscriptionOptions=JXT.define({name:"subscriptionOptions",namespace:_xmppConstants.Namespace.PUBSUB,element:"options",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),subid:Utils.attribute("subid")}}),Unsubscribe=JXT.define({name:"unsubscribe",namespace:_xmppConstants.Namespace.PUBSUB,element:"unsubscribe",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid")}}),Publish=JXT.define({name:"publish",namespace:_xmppConstants.Namespace.PUBSUB,element:"publish",fields:{node:Utils.attribute("node")}}),Retract=JXT.define({name:"retract",namespace:_xmppConstants.Namespace.PUBSUB,element:"retract",fields:{node:Utils.attribute("node"),notify:Utils.boolAttribute("notify"),id:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB,"item","id")}}),Retrieve=JXT.define({name:"retrieve",namespace:_xmppConstants.Namespace.PUBSUB,element:"items",fields:{node:Utils.attribute("node"),max:Utils.attribute("max_items")}}),Item=JXT.define({name:"item",namespace:_xmppConstants.Namespace.PUBSUB,element:"item",fields:{id:Utils.attribute("id")}});JXT.extend(Pubsub,Configure),JXT.extend(Pubsub,Subscribe),JXT.extend(Pubsub,Unsubscribe),JXT.extend(Pubsub,Publish),JXT.extend(Pubsub,Retract),JXT.extend(Pubsub,Retrieve),JXT.extend(Pubsub,Subscription),JXT.extend(Pubsub,SubscriptionOptions),JXT.extend(Pubsub,Subscriptions),JXT.extend(Pubsub,Affiliations),JXT.extend(Publish,Item,"items"),JXT.extend(Retrieve,Item,"items"),JXT.extend(Subscriptions,Subscription,"list"),JXT.extend(Affiliations,Affiliation,"list"),JXT.extendIQ(Pubsub),JXT.withDataForm(function(DataForm){JXT.extend(SubscriptionOptions,DataForm),JXT.extend(Item,DataForm),JXT.extend(Configure,DataForm)}),JXT.withDefinition("set",_xmppConstants.Namespace.RSM,function(RSM){JXT.extend(Pubsub,RSM)})},module.exports=exports.default},{"xmpp-constants":220}],174:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["closed-node","configuration-required","invalid-jid","invalid-options","invalid-payload","invalid-subid","item-forbidden","item-required","jid-required","max-items-exceeded","max-nodes-exceeded","nodeid-required","not-in-roster-group","not-subscribed","payload-too-big","payload-required","pending-subscription","presence-subscription-required","subid-required","too-many-subscriptions","unsupported","unsupported-access-model"];exports.default=function(JXT){JXT.withStanzaError(function(StanzaError){JXT.add(StanzaError,"pubsubCondition",JXT.utils.enumSub(_xmppConstants.Namespace.PUBSUB_ERRORS,CONDITIONS)),JXT.add(StanzaError,"pubsubUnsupportedFeature",{get:function(){return JXT.utils.getSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB_ERRORS,"unsupported","feature")},set:function(value){value&&(this.pubsubCondition="unsupported"),JXT.utils.setSubAttribute(this.xml,_xmppConstants.Namespace.PUBSUB_ERRORS,"unsupported","feature",value)}})})},module.exports=exports.default},{"xmpp-constants":220}],175:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Event=JXT.define({name:"event",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"event"}),EventPurge=JXT.define({name:"purged",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"purge",fields:{node:Utils.attribute("node")}}),EventDelete=JXT.define({name:"deleted",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"delete",fields:{node:Utils.attribute("node"),redirect:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_EVENT,"redirect","uri")}}),EventSubscription=JXT.define({name:"subscriptionChanged",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"subscription",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),type:Utils.attribute("subscription"),subid:Utils.attribute("subid"),expiry:{get:function(){var text=Utils.getAttribute(this.xml,"expiry");return"presence"===text?text:text?new Date(text):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),Utils.setAttribute(this.xml,"expiry",value))}}}}),EventConfiguration=JXT.define({name:"configurationChanged",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"configuration",fields:{node:Utils.attribute("node")}}),EventItems=JXT.define({name:"updated",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"items",fields:{node:Utils.attribute("node"),retracted:{get:function(){var results=[],retracted=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB_EVENT,"retract");return retracted.forEach(function(xml){results.push(xml.getAttribute("id"))}),results},set:function(value){value.forEach(function(id){var retracted=Utils.createElement(_xmppConstants.Namespace.PUBSUB_EVENT,"retract",_xmppConstants.Namespace.PUBSUB_EVENT);retracted.setAttribute("id",id),this.xml.appendChild(retracted)})}}}}),EventItem=JXT.define({name:"_eventItem",namespace:_xmppConstants.Namespace.PUBSUB_EVENT,element:"item",fields:{id:Utils.attribute("id"),node:Utils.attribute("node"),publisher:Utils.jidAttribute("publisher")}});JXT.extend(EventItems,EventItem,"published"),JXT.extend(Event,EventItems),JXT.extend(Event,EventSubscription),JXT.extend(Event,EventConfiguration),JXT.extend(Event,EventDelete),JXT.extend(Event,EventPurge),JXT.extendMessage(Event),JXT.withDataForm(function(DataForm){JXT.extend(EventConfiguration,DataForm)})},module.exports=exports.default},{"xmpp-constants":220}],176:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,PubsubOwner=JXT.define({name:"pubsubOwner",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"pubsub",fields:{purge:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_OWNER,"purge","node"),del:Utils.subAttribute(_xmppConstants.Namespace.PUBSUB_OWNER,"delete","node"),redirect:{get:function(){var del=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB_OWNER,"delete");return del.length?Utils.getSubAttribute(del[0],_xmppConstants.Namespace.PUBSUB_OWNER,"redirect","uri"):""},set:function(value){var del=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.PUBSUB_OWNER,"delete");Utils.setSubAttribute(del,_xmppConstants.Namespace.PUBSUB_OWNER,"redirect","uri",value)}}}}),Subscription=JXT.define({name:"subscription",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"subscription",fields:{node:Utils.attribute("node"),jid:Utils.jidAttribute("jid"),subid:Utils.attribute("subid"),type:Utils.attribute("subscription"),configurable:Utils.boolSub("subscribe-options"),configurationRequired:{get:function(){var options=Utils.find(this.xml,_xmppConstants.Namespace.PUBSUB_OWNER,"subscribe-options");return!!options.length&&Utils.getBoolSub(options[0],_xmppConstants.Namespace.PUBSUB_OWNER,"required")}}}}),Subscriptions=JXT.define({name:"subscriptions",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"subscriptions",fields:{node:Utils.attribute("node")}}),Affiliation=JXT.define({name:"affiliation",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"affiliation",fields:{jid:Utils.jidAttribute("jid"),type:Utils.attribute("affiliation")}}),Affiliations=JXT.define({name:"affiliations",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"affiliations",fields:{node:Utils.attribute("node")}}),Configure=JXT.define({name:"config",namespace:_xmppConstants.Namespace.PUBSUB_OWNER,element:"configure",fields:{node:Utils.attribute("node")}});JXT.extend(PubsubOwner,Configure),JXT.extend(PubsubOwner,Subscriptions),JXT.extend(PubsubOwner,Affiliations),JXT.extend(Subscriptions,Subscription,"list"),JXT.extend(Affiliations,Affiliation,"list"),JXT.extendIQ(PubsubOwner),JXT.withDataForm(function(DataForm){JXT.extend(Configure,DataForm)})},module.exports=exports.default},{"xmpp-constants":220}],177:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Enable=JXT.define({name:"enablePush",element:"enable",namespace:_xmppConstants.Namespace.PUSH_0,fields:{jid:Utils.jidAttribute("jid"),node:Utils.attribute("node")}}),Disable=JXT.define({name:"disablePush",element:"disable",namespace:_xmppConstants.Namespace.PUSH_0,fields:{jid:Utils.jidAttribute("jid"),node:Utils.attribute("node")}}),Notification=JXT.define({name:"pushNotification",element:"notification",namespace:_xmppConstants.Namespace.PUSH_0});JXT.withDataForm(function(DataForm){JXT.extend(Notification,DataForm),JXT.extend(Enable,DataForm)}),JXT.extendIQ(Enable),JXT.extendIQ(Disable)},module.exports=exports.default},{"xmpp-constants":220}],178:[function(require,module,exports){"use strict";var _interopRequireDefault=require("babel-runtime/helpers/interop-require-default").default;Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),_lodashForeach=require("lodash.foreach"),_lodashForeach2=_interopRequireDefault(_lodashForeach);exports.default=function(JXT){var Utils=JXT.utils,ReachURI=JXT.define({name:"_reachAddr",namespace:_xmppConstants.Namespace.REACH_0,element:"addr",fields:{uri:Utils.attribute("uri"),$desc:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.REACH_0,"desc",this.lang)}},desc:{get:function(){var descs=this.$desc;return descs[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.REACH_0,"desc",value,this.lang)}}}}),reachability={get:function(){var reach=Utils.find(this.xml,_xmppConstants.Namespace.REACH_0,"reach"),results=[];if(reach.length){var addrs=Utils.find(reach[0],_xmppConstants.Namespace.REACH_0,"addr");(0,_lodashForeach2.default)(addrs,function(addr){results.push(new ReachURI({},addr))})}return results},set:function(value){var reach=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.REACH_0,"reach");Utils.setAttribute(reach,"xmlns",_xmppConstants.Namespace.REACH_0),(0,_lodashForeach2.default)(value,function(info){var addr=new ReachURI(info);reach.appendChild(addr.xml)})}};JXT.withPubsubItem(function(Item){JXT.add(Item,"reach",reachability)}),JXT.withPresence(function(Presence){JXT.add(Presence,"reach",reachability)})},module.exports=exports.default},{"babel-runtime/helpers/interop-require-default":197,"lodash.foreach":212,"xmpp-constants":220}],179:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Register=JXT.define({name:"register",namespace:_xmppConstants.Namespace.REGISTER,element:"query",fields:{instructions:Utils.textSub(_xmppConstants.Namespace.REGISTER,"instructions"),registered:Utils.boolSub(_xmppConstants.Namespace.REGISTER,"registered"),remove:Utils.boolSub(_xmppConstants.Namespace.REGISTER,"remove"),username:Utils.textSub(_xmppConstants.Namespace.REGISTER,"username"),nick:Utils.textSub(_xmppConstants.Namespace.REGISTER,"nick"),password:Utils.textSub(_xmppConstants.Namespace.REGISTER,"password"),name:Utils.textSub(_xmppConstants.Namespace.REGISTER,"name"),first:Utils.textSub(_xmppConstants.Namespace.REGISTER,"first"),last:Utils.textSub(_xmppConstants.Namespace.REGISTER,"last"),email:Utils.textSub(_xmppConstants.Namespace.REGISTER,"email"),address:Utils.textSub(_xmppConstants.Namespace.REGISTER,"address"),city:Utils.textSub(_xmppConstants.Namespace.REGISTER,"city"),state:Utils.textSub(_xmppConstants.Namespace.REGISTER,"state"),zip:Utils.textSub(_xmppConstants.Namespace.REGISTER,"zip"),phone:Utils.textSub(_xmppConstants.Namespace.REGISTER,"phone"),url:Utils.textSub(_xmppConstants.Namespace.REGISTER,"url"),date:Utils.textSub(_xmppConstants.Namespace.REGISTER,"date"),misc:Utils.textSub(_xmppConstants.Namespace.REGISTER,"misc"),text:Utils.textSub(_xmppConstants.Namespace.REGISTER,"text"),key:Utils.textSub(_xmppConstants.Namespace.REGISTER,"key")}});JXT.extendIQ(Register),JXT.withDefinition("x",_xmppConstants.Namespace.OOB,function(OOB){JXT.extend(Register,OOB)}),JXT.withDataForm(function(DataForm){JXT.extend(Register,DataForm)})},module.exports=exports.default},{"xmpp-constants":220}],180:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Roster=JXT.define({name:"roster",namespace:_xmppConstants.Namespace.ROSTER,element:"query",fields:{ver:{get:function(){return Utils.getAttribute(this.xml,"ver")},set:function(value){var force=""===value;Utils.setAttribute(this.xml,"ver",value,force)}}}}),RosterItem=JXT.define({name:"_rosterItem",namespace:_xmppConstants.Namespace.ROSTER,element:"item",fields:{jid:Utils.jidAttribute("jid",!0),name:Utils.attribute("name"),subscription:Utils.attribute("subscription","none"),subscriptionRequested:{get:function(){var ask=Utils.getAttribute(this.xml,"ask");return"subscribe"===ask}},preApproved:Utils.boolAttribute(_xmppConstants.Namespace.ROSTER,"approved"),groups:Utils.multiTextSub(_xmppConstants.Namespace.ROSTER,"group")}});JXT.extend(Roster,RosterItem,"items"),JXT.extendIQ(Roster)},module.exports=exports.default},{"xmpp-constants":220}],181:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"rsm",namespace:_xmppConstants.Namespace.RSM,element:"set",fields:{after:Utils.textSub(_xmppConstants.Namespace.RSM,"after"),before:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.RSM,"before")},set:function(value){value===!0?Utils.findOrCreate(this.xml,_xmppConstants.Namespace.RSM,"before"):Utils.setSubText(this.xml,_xmppConstants.Namespace.RSM,"before",value)}},count:Utils.numberSub(_xmppConstants.Namespace.RSM,"count",!1,0),first:Utils.textSub(_xmppConstants.Namespace.RSM,"first"),firstIndex:Utils.subAttribute(_xmppConstants.Namespace.RSM,"first","index"),index:Utils.textSub(_xmppConstants.Namespace.RSM,"index"),last:Utils.textSub(_xmppConstants.Namespace.RSM,"last"),max:Utils.textSub(_xmppConstants.Namespace.RSM,"max")}})},module.exports=exports.default},{"xmpp-constants":220}],182:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Feedback={get:function(){var existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb"),result=[];return existing.forEach(function(xml){result.push({type:Utils.getAttribute(xml,"type"),subtype:Utils.getAttribute(xml,"subtype")})}),existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb-trr-int"),existing.forEach(function(xml){result.push({type:Utils.getAttribute(xml,"type"),value:Utils.getAttribute(xml,"value")})}),result},set:function(values){var self=this,existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb");existing.forEach(function(item){self.xml.removeChild(item)}),existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb-trr-int"),existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var fb=void 0;"trr-int"===value.type?(fb=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb-trr-int",_xmppConstants.Namespace.JINGLE_RTP_1),Utils.setAttribute(fb,"type",value.type),Utils.setAttribute(fb,"value",value.value)):(fb=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_RTCP_FB_0,"rtcp-fb",_xmppConstants.Namespace.JINGLE_RTP_1),Utils.setAttribute(fb,"type",value.type),Utils.setAttribute(fb,"subtype",value.subtype)),self.xml.appendChild(fb)})}},Bandwidth=JXT.define({name:"bandwidth",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"bandwidth",fields:{type:Utils.attribute("type"),bandwidth:Utils.text()}}),RTP=JXT.define({name:"_rtp",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"description",tags:["jingle-description"],fields:{descType:{value:"rtp"},media:Utils.attribute("media"),ssrc:Utils.attribute("ssrc"),mux:Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_1,"rtcp-mux"),encryption:{get:function(){var enc=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption");if(!enc.length)return[];enc=enc[0];var self=this,data=Utils.find(enc,_xmppConstants.Namespace.JINGLE_RTP_1,"crypto"),results=[];return data.forEach(function(xml){results.push(new Crypto({},xml,self).toJSON())}),results},set:function(values){var enc=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption");if(enc.length&&this.xml.removeChild(enc),values.length){Utils.setBoolSubAttribute(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption","required",!0),enc=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"encryption")[0];var self=this;values.forEach(function(value){var content=new Crypto(value,null,self);enc.appendChild(content.xml)})}}},feedback:Feedback,headerExtensions:{get:function(){var existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0,"rtp-hdrext"),result=[];return existing.forEach(function(xml){result.push({id:Utils.getAttribute(xml,"id"),uri:Utils.getAttribute(xml,"uri"),senders:Utils.getAttribute(xml,"senders")})}),result},set:function(values){var self=this,existing=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0,"rtp-hdrext");existing.forEach(function(item){self.xml.removeChild(item)}),values.forEach(function(value){var hdr=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_HDREXT_0,"rtp-hdrext",_xmppConstants.Namespace.JINGLE_RTP_1);Utils.setAttribute(hdr,"id",value.id),Utils.setAttribute(hdr,"uri",value.uri),Utils.setAttribute(hdr,"senders",value.senders),self.xml.appendChild(hdr)})}}}}),PayloadType=JXT.define({name:"_payloadType",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"payload-type",fields:{channels:Utils.attribute("channels"),clockrate:Utils.attribute("clockrate"),id:Utils.attribute("id"),maxptime:Utils.attribute("maxptime"),name:Utils.attribute("name"),ptime:Utils.attribute("ptime"),feedback:Feedback,parameters:{get:function(){var result=[],params=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_1,"parameter");return params.forEach(function(param){result.push({key:Utils.getAttribute(param,"name"),value:Utils.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_1,"parameter");Utils.setAttribute(param,"name",value.key),Utils.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Crypto=JXT.define({name:"crypto",namespace:_xmppConstants.Namespace.JINGLE_RTP_1,element:"crypto",fields:{cipherSuite:Utils.attribute("crypto-suite"),keyParams:Utils.attribute("key-params"),sessionParams:Utils.attribute("session-params"),tag:Utils.attribute("tag")}}),ContentGroup=JXT.define({name:"_group",namespace:_xmppConstants.Namespace.JINGLE_GROUPING_0,element:"group",fields:{semantics:Utils.attribute("semantics"),contents:Utils.multiSubAttribute(_xmppConstants.Namespace.JINGLE_GROUPING_0,"content","name")}}),SourceGroup=JXT.define({name:"_sourceGroup",namespace:_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,element:"ssrc-group",fields:{semantics:Utils.attribute("semantics"),sources:Utils.multiSubAttribute(_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,"source","ssrc")}}),Source=JXT.define({name:"_source",namespace:_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,element:"source",fields:{ssrc:Utils.attribute("ssrc"),parameters:{get:function(){var result=[],params=Utils.find(this.xml,_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,"parameter");return params.forEach(function(param){result.push({key:Utils.getAttribute(param,"name"),value:Utils.getAttribute(param,"value")})}),result},set:function(values){var self=this;values.forEach(function(value){var param=Utils.createElement(_xmppConstants.Namespace.JINGLE_RTP_SSMA_0,"parameter");Utils.setAttribute(param,"name",value.key),Utils.setAttribute(param,"value",value.value),self.xml.appendChild(param)})}}}}),Mute=JXT.define({name:"mute",namespace:_xmppConstants.Namespace.JINGLE_RTP_INFO_1,element:"mute",fields:{creator:Utils.attribute("creator"),name:Utils.attribute("name")}}),Unmute=JXT.define({name:"unmute",namespace:_xmppConstants.Namespace.JINGLE_RTP_INFO_1,element:"unmute",fields:{creator:Utils.attribute("creator"),name:Utils.attribute("name")}});JXT.extend(RTP,Bandwidth),JXT.extend(RTP,PayloadType,"payloads"),JXT.extend(RTP,Source,"sources"),JXT.extend(RTP,SourceGroup,"sourceGroups"),JXT.withDefinition("content",_xmppConstants.Namespace.JINGLE_1,function(Content){JXT.extend(Content,RTP)}),JXT.withDefinition("jingle",_xmppConstants.Namespace.JINGLE_1,function(Jingle){JXT.extend(Jingle,Mute),JXT.extend(Jingle,Unmute),JXT.extend(Jingle,ContentGroup,"groups"),JXT.add(Jingle,"ringing",Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1,"ringing")),JXT.add(Jingle,"hold",Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1,"hold")),JXT.add(Jingle,"active",Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_INFO_1,"active"))})},module.exports=exports.default},{"xmpp-constants":220}],183:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),TYPE_MAP={insert:"t",erase:"e",wait:"w"},ACTION_MAP={t:"insert",e:"erase",w:"wait"};exports.default=function(JXT){var Utils=JXT.utils,RTT=JXT.define({name:"rtt",namespace:_xmppConstants.Namespace.RTT_0,element:"rtt",fields:{id:Utils.attribute("id"),event:Utils.attribute("event","edit"),seq:Utils.numberAttribute("seq"),actions:{get:function(){for(var results=[],i=0,len=this.xml.childNodes.length;i<len;i++){var child=this.xml.childNodes[i],_name=child.localName,action={};if(child.namespaceURI===_xmppConstants.Namespace.RTT_0&&ACTION_MAP[_name]){action.type=ACTION_MAP[_name];var pos=Utils.getAttribute(child,"p");pos&&(action.pos=parseInt(pos,10));var n=Utils.getAttribute(child,"n");n&&(action.num=parseInt(n,10));var t=Utils.getText(child);t&&"t"===_name&&(action.text=t),results.push(action)}}return results},set:function(actions){for(var self=this,i=0,len=this.xml.childNodes.length;i<len;i++)this.xml.removeChild(this.xml.childNodes[i]);actions.forEach(function(action){if(TYPE_MAP[action.type]){var child=Utils.createElement(_xmppConstants.Namespace.RTT_0,TYPE_MAP[action.type],_xmppConstants.Namespace.RTT_0);void 0!==action.pos&&Utils.setAttribute(child,"p",action.pos.toString()),action.num&&Utils.setAttribute(child,"n",action.num.toString()),action.text&&Utils.setText(child,action.text),self.xml.appendChild(child)}})}}}});JXT.extendMessage(RTT)},module.exports=exports.default},{"xmpp-constants":220}],184:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["aborted","account-disabled","credentials-expired","encryption-required","incorrect-encoding","invalid-authzid","invalid-mechanism","malformed-request","mechanism-too-weak","not-authorized","temporary-auth-failure"];exports.default=function(JXT){var Utils=JXT.utils,Mechanisms=JXT.define({name:"sasl",namespace:_xmppConstants.Namespace.SASL,element:"mechanisms",fields:{mechanisms:Utils.multiTextSub(_xmppConstants.Namespace.SASL,"mechanism")}});JXT.define({name:"saslAuth",eventName:"sasl:auth",namespace:_xmppConstants.Namespace.SASL,element:"auth",topLevel:!0,fields:{value:Utils.text(),mechanism:Utils.attribute("mechanism")}}),JXT.define({name:"saslChallenge",eventName:"sasl:challenge",namespace:_xmppConstants.Namespace.SASL,element:"challenge",topLevel:!0,fields:{value:Utils.text()}}),JXT.define({name:"saslResponse",eventName:"sasl:response",namespace:_xmppConstants.Namespace.SASL,element:"response",topLevel:!0,fields:{value:Utils.text()}}),JXT.define({name:"saslAbort",eventName:"sasl:abort",namespace:_xmppConstants.Namespace.SASL,element:"abort",topLevel:!0}),JXT.define({name:"saslSuccess",eventName:"sasl:success",namespace:_xmppConstants.Namespace.SASL,element:"success",topLevel:!0,fields:{value:Utils.text()}}),JXT.define({name:"saslFailure",eventName:"sasl:failure",namespace:_xmppConstants.Namespace.SASL,element:"failure",topLevel:!0,fields:{lang:{get:function(){return this._lang||""},set:function(value){this._lang=value}},condition:Utils.enumSub(_xmppConstants.Namespace.SASL,CONDITIONS),$text:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.SASL,"text",this.lang)}},text:{get:function(){var text=this.$text;return text[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.SASL,"text",value,this.lang)}}}}),JXT.extendStreamFeatures(Mechanisms)},module.exports=exports.default},{"xmpp-constants":220}],185:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Session=JXT.define({name:"session",namespace:_xmppConstants.Namespace.SESSION,element:"session",fields:{required:JXT.utils.boolSub(_xmppConstants.Namespace.SESSION,"required"),optional:JXT.utils.boolSub(_xmppConstants.Namespace.SESSION,"optional")}});JXT.extendIQ(Session),JXT.extendStreamFeatures(Session)},module.exports=exports.default},{"xmpp-constants":220}],186:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,SHIM={get:function(){var headerSet=Utils.find(this.xml,_xmppConstants.Namespace.SHIM,"headers");return headerSet.length?Utils.getMultiSubText(headerSet[0],_xmppConstants.Namespace.SHIM,"header",function(header){var name=Utils.getAttribute(header,"name");if(name)return{name:name,value:Utils.getText(header)}}):[]},set:function(values){var headerSet=Utils.findOrCreate(this.xml,_xmppConstants.Namespace.SHIM,"headers");JXT.setMultiSubText(headerSet,_xmppConstants.Namespace.SHIM,"header",values,function(val){var header=Utils.createElement(_xmppConstants.Namespace.SHIM,"header",_xmppConstants.Namespace.SHIM);Utils.setAttribute(header,"name",val.name),Utils.setText(header,val.value),headerSet.appendChild(header)})}};JXT.withMessage(function(Message){JXT.add(Message,"headers",SHIM)}),JXT.withPresence(function(Presence){JXT.add(Presence,"headers",SHIM)})},module.exports=exports.default},{"xmpp-constants":220}],187:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,SMFeature=JXT.define({name:"streamManagement",namespace:_xmppConstants.Namespace.SMACKS_3,element:"sm"});JXT.define({name:"smEnable",eventName:"stream:management:enable",namespace:_xmppConstants.Namespace.SMACKS_3,element:"enable",topLevel:!0,fields:{resume:Utils.boolAttribute("resume")}}),JXT.define({name:"smEnabled",eventName:"stream:management:enabled",namespace:_xmppConstants.Namespace.SMACKS_3,element:"enabled",topLevel:!0,fields:{id:Utils.attribute("id"),resume:Utils.boolAttribute("resume")}}),JXT.define({name:"smResume",eventName:"stream:management:resume",namespace:_xmppConstants.Namespace.SMACKS_3,element:"resume",topLevel:!0,fields:{h:Utils.numberAttribute("h",!1,0),previd:Utils.attribute("previd")}}),JXT.define({name:"smResumed",eventName:"stream:management:resumed",namespace:_xmppConstants.Namespace.SMACKS_3,element:"resumed",topLevel:!0,fields:{h:Utils.numberAttribute("h",!1,0),previd:Utils.attribute("previd")}}),JXT.define({name:"smFailed",eventName:"stream:management:failed",namespace:_xmppConstants.Namespace.SMACKS_3,element:"failed",topLevel:!0}),JXT.define({name:"smAck",eventName:"stream:management:ack",namespace:_xmppConstants.Namespace.SMACKS_3,element:"a",topLevel:!0,fields:{h:Utils.numberAttribute("h",!1,0)}}),JXT.define({name:"smRequest",eventName:"stream:management:request",namespace:_xmppConstants.Namespace.SMACKS_3,element:"r",topLevel:!0}),JXT.extendStreamFeatures(SMFeature)},module.exports=exports.default},{"xmpp-constants":220}],188:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"stream",namespace:_xmppConstants.Namespace.STREAM,element:"stream",fields:{lang:Utils.langAttribute(),id:Utils.attribute("id"),version:Utils.attribute("version","1.0"),to:Utils.jidAttribute("to",!0),from:Utils.jidAttribute("from",!0)}})},module.exports=exports.default},{"xmpp-constants":220}],189:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants"),CONDITIONS=["bad-format","bad-namespace-prefix","conflict","connection-timeout","host-gone","host-unknown","improper-addressing","internal-server-error","invalid-from","invalid-namespace","invalid-xml","not-authorized","not-well-formed","policy-violation","remote-connection-failed","reset","resource-constraint","restricted-xml","see-other-host","system-shutdown","undefined-condition","unsupported-encoding","unsupported-feature","unsupported-stanza-type","unsupported-version"];exports.default=function(JXT){var Utils=JXT.utils;JXT.define({name:"streamError",namespace:_xmppConstants.Namespace.STREAM,element:"error",topLevel:!0,fields:{lang:{get:function(){return this._lang||""},set:function(value){this._lang=value}},condition:Utils.enumSub(_xmppConstants.Namespace.STREAM_ERROR,CONDITIONS),seeOtherHost:{get:function(){return Utils.getSubText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"see-other-host")},set:function(value){this.condition="see-other-host",
-Utils.setSubText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"see-other-host",value)}},$text:{get:function(){return Utils.getSubLangText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"text",this.lang)}},text:{get:function(){var text=this.$text;return text[this.lang]||""},set:function(value){Utils.setSubLangText(this.xml,_xmppConstants.Namespace.STREAM_ERROR,"text",value,this.lang)}}}})},module.exports=exports.default},{"xmpp-constants":220}],190:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var RosterVerFeature=(JXT.define({name:"streamFeatures",namespace:_xmppConstants.Namespace.STREAM,element:"features",topLevel:!0}),JXT.define({name:"rosterVersioning",namespace:_xmppConstants.Namespace.ROSTER_VERSIONING,element:"ver"})),SubscriptionPreApprovalFeature=JXT.define({name:"subscriptionPreApproval",namespace:_xmppConstants.Namespace.SUBSCRIPTION_PREAPPROVAL,element:"sub"});JXT.extendStreamFeatures(RosterVerFeature),JXT.extendStreamFeatures(SubscriptionPreApprovalFeature)},module.exports=exports.default},{"xmpp-constants":220}],191:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var EntityTime=JXT.define({name:"time",namespace:_xmppConstants.Namespace.TIME,element:"time",fields:{utc:JXT.utils.dateSub(_xmppConstants.Namespace.TIME,"utc"),tzo:JXT.utils.tzoSub(_xmppConstants.Namespace.TIME,"tzo",0)}});JXT.extendIQ(EntityTime)},module.exports=exports.default},{"xmpp-constants":220}],192:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,Tune=JXT.define({name:"tune",namespace:_xmppConstants.Namespace.TUNE,element:"tune",fields:{artist:Utils.textSub(_xmppConstants.Namespace.TUNE,"artist"),length:Utils.numberSub(_xmppConstants.Namespace.TUNE,"length"),rating:Utils.numberSub(_xmppConstants.Namespace.TUNE,"rating"),source:Utils.textSub(_xmppConstants.Namespace.TUNE,"source"),title:Utils.textSub(_xmppConstants.Namespace.TUNE,"title"),track:Utils.textSub(_xmppConstants.Namespace.TUNE,"track"),uri:Utils.textSub(_xmppConstants.Namespace.TUNE,"uri")}});JXT.extendPubsubItem(Tune),JXT.extendMessage(Tune)},module.exports=exports.default},{"xmpp-constants":220}],193:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Utils=JXT.utils,VCardTemp=JXT.define({name:"vCardTemp",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"vCard",fields:{role:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"ROLE"),website:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"URL"),title:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"TITLE"),description:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"DESC"),fullName:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"FN"),birthday:Utils.dateSub(_xmppConstants.Namespace.VCARD_TEMP,"BDAY"),nicknames:Utils.multiTextSub(_xmppConstants.Namespace.VCARD_TEMP,"NICKNAME"),jids:Utils.multiTextSub(_xmppConstants.Namespace.VCARD_TEMP,"JABBERID")}}),Email=JXT.define({name:"_email",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"EMAIL",fields:{email:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"USERID"),home:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"HOME"),work:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"WORK"),preferred:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"PREF")}}),PhoneNumber=JXT.define({name:"_tel",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"TEL",fields:{number:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"NUMBER"),home:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"HOME"),work:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"WORK"),mobile:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"CELL"),preferred:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"PREF")}}),Address=JXT.define({name:"_address",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"ADR",fields:{street:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"STREET"),street2:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"EXTADD"),country:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"CTRY"),city:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"LOCALITY"),region:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"REGION"),postalCode:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"PCODE"),pobox:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"POBOX"),home:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"HOME"),work:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"WORK"),preferred:Utils.boolSub(_xmppConstants.Namespace.VCARD_TEMP,"PREF")}}),Organization=JXT.define({name:"organization",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"ORG",fields:{name:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"ORGNAME"),unit:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"ORGUNIT")}}),Name=JXT.define({name:"name",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"N",fields:{family:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"FAMILY"),given:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"GIVEN"),middle:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"MIDDLE"),prefix:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"PREFIX"),suffix:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"SUFFIX")}}),Photo=JXT.define({name:"photo",namespace:_xmppConstants.Namespace.VCARD_TEMP,element:"PHOTO",fields:{type:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"TYPE"),data:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"BINVAL"),url:Utils.textSub(_xmppConstants.Namespace.VCARD_TEMP,"EXTVAL")}});JXT.extend(VCardTemp,Email,"emails"),JXT.extend(VCardTemp,Address,"addresses"),JXT.extend(VCardTemp,PhoneNumber,"phoneNumbers"),JXT.extend(VCardTemp,Organization),JXT.extend(VCardTemp,Name),JXT.extend(VCardTemp,Photo),JXT.extendIQ(VCardTemp)},module.exports=exports.default},{"xmpp-constants":220}],194:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){var Version=JXT.define({name:"version",namespace:_xmppConstants.Namespace.VERSION,element:"query",fields:{name:JXT.utils.textSub(_xmppConstants.Namespace.VERSION,"name"),version:JXT.utils.textSub(_xmppConstants.Namespace.VERSION,"version"),os:JXT.utils.textSub(_xmppConstants.Namespace.VERSION,"os")}});JXT.extendIQ(Version)},module.exports=exports.default},{"xmpp-constants":220}],195:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _xmppConstants=require("xmpp-constants");exports.default=function(JXT){JXT.withIQ(function(IQ){JXT.add(IQ,"visible",JXT.utils.boolSub(_xmppConstants.Namespace.INVISIBLE_0,"visible")),JXT.add(IQ,"invisible",JXT.utils.boolSub(_xmppConstants.Namespace.INVISIBLE_0,"invisible"))})},module.exports=exports.default},{"xmpp-constants":220}],196:[function(require,module,exports){module.exports={default:require("core-js/library/fn/object/assign"),__esModule:!0}},{"core-js/library/fn/object/assign":198}],197:[function(require,module,exports){"use strict";exports.default=function(obj){return obj&&obj.__esModule?obj:{default:obj}},exports.__esModule=!0},{}],198:[function(require,module,exports){require("../../modules/es6.object.assign"),module.exports=require("../../modules/$.core").Object.assign},{"../../modules/$.core":201,"../../modules/es6.object.assign":211}],199:[function(require,module,exports){module.exports=function(it){if("function"!=typeof it)throw TypeError(it+" is not a function!");return it}},{}],200:[function(require,module,exports){var toString={}.toString;module.exports=function(it){return toString.call(it).slice(8,-1)}},{}],201:[function(require,module,exports){var core=module.exports={version:"1.2.6"};"number"==typeof __e&&(__e=core)},{}],202:[function(require,module,exports){var aFunction=require("./$.a-function");module.exports=function(fn,that,length){if(aFunction(fn),void 0===that)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},{"./$.a-function":199}],203:[function(require,module,exports){module.exports=function(it){if(void 0==it)throw TypeError("Can't call method on "+it);return it}},{}],204:[function(require,module,exports){var global=require("./$.global"),core=require("./$.core"),ctx=require("./$.ctx"),PROTOTYPE="prototype",$export=function(type,name,source){var key,own,out,IS_FORCED=type&$export.F,IS_GLOBAL=type&$export.G,IS_STATIC=type&$export.S,IS_PROTO=type&$export.P,IS_BIND=type&$export.B,IS_WRAP=type&$export.W,exports=IS_GLOBAL?core:core[name]||(core[name]={}),target=IS_GLOBAL?global:IS_STATIC?global[name]:(global[name]||{})[PROTOTYPE];IS_GLOBAL&&(source=name);for(key in source)own=!IS_FORCED&&target&&key in target,own&&key in exports||(out=own?target[key]:source[key],exports[key]=IS_GLOBAL&&"function"!=typeof target[key]?source[key]:IS_BIND&&own?ctx(out,global):IS_WRAP&&target[key]==out?function(C){var F=function(param){return this instanceof C?new C(param):C(param)};return F[PROTOTYPE]=C[PROTOTYPE],F}(out):IS_PROTO&&"function"==typeof out?ctx(Function.call,out):out,IS_PROTO&&((exports[PROTOTYPE]||(exports[PROTOTYPE]={}))[key]=out))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,module.exports=$export},{"./$.core":201,"./$.ctx":202,"./$.global":206}],205:[function(require,module,exports){module.exports=function(exec){try{return!!exec()}catch(e){return!0}}},{}],206:[function(require,module,exports){var global=module.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=global)},{}],207:[function(require,module,exports){var cof=require("./$.cof");module.exports=Object("z").propertyIsEnumerable(0)?Object:function(it){return"String"==cof(it)?it.split(""):Object(it)}},{"./$.cof":200}],208:[function(require,module,exports){var $Object=Object;module.exports={create:$Object.create,getProto:$Object.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:$Object.getOwnPropertyDescriptor,setDesc:$Object.defineProperty,setDescs:$Object.defineProperties,getKeys:$Object.keys,getNames:$Object.getOwnPropertyNames,getSymbols:$Object.getOwnPropertySymbols,each:[].forEach}},{}],209:[function(require,module,exports){var $=require("./$"),toObject=require("./$.to-object"),IObject=require("./$.iobject");module.exports=require("./$.fails")(function(){var a=Object.assign,A={},B={},S=Symbol(),K="abcdefghijklmnopqrst";return A[S]=7,K.split("").forEach(function(k){B[k]=k}),7!=a({},A)[S]||Object.keys(a({},B)).join("")!=K})?function(target,source){for(var T=toObject(target),$$=arguments,$$len=$$.length,index=1,getKeys=$.getKeys,getSymbols=$.getSymbols,isEnum=$.isEnum;$$len>index;)for(var key,S=IObject($$[index++]),keys=getSymbols?getKeys(S).concat(getSymbols(S)):getKeys(S),length=keys.length,j=0;length>j;)isEnum.call(S,key=keys[j++])&&(T[key]=S[key]);return T}:Object.assign},{"./$":208,"./$.fails":205,"./$.iobject":207,"./$.to-object":210}],210:[function(require,module,exports){var defined=require("./$.defined");module.exports=function(it){return Object(defined(it))}},{"./$.defined":203}],211:[function(require,module,exports){var $export=require("./$.export");$export($export.S+$export.F,"Object",{assign:require("./$.object-assign")})},{"./$.export":204,"./$.object-assign":209}],212:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{dup:54,"lodash._arrayeach":213,"lodash._baseeach":214,"lodash._bindcallback":218,"lodash.isarray":219}],213:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{dup:55}],214:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{dup:56,"lodash.keys":215}],215:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57,"lodash._getnative":216,"lodash.isarguments":217,"lodash.isarray":219}],216:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],217:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{dup:59}],218:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60}],219:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],220:[function(require,module,exports){arguments[4][128][0].apply(exports,arguments)},{"./lib/jingle":221,"./lib/muc":222,"./lib/namespaces":223,"./lib/presence":224,"./lib/pubsub":225,dup:128}],221:[function(require,module,exports){arguments[4][129][0].apply(exports,arguments)},{dup:129}],222:[function(require,module,exports){arguments[4][130][0].apply(exports,arguments)},{dup:130}],223:[function(require,module,exports){arguments[4][131][0].apply(exports,arguments)},{dup:131}],224:[function(require,module,exports){arguments[4][132][0].apply(exports,arguments)},{dup:132}],225:[function(require,module,exports){arguments[4][133][0].apply(exports,arguments)},{dup:133}],226:[function(require,module,exports){arguments[4][134][0].apply(exports,arguments)},{"./lib/stringprep":227,dup:134}],227:[function(require,module,exports){arguments[4][135][0].apply(exports,arguments)},{dup:135,punycode:11}],228:[function(require,module,exports){"use strict";function JXT(){this._LOOKUP={},this._LOOKUP_EXT={},this._TAGS={},this._CB_DEFINITION={},this._CB_TAG={},this._ID=uuid.v4(),this.utils=extend({},types,helpers)}var extend=require("lodash.assign"),uuid=require("uuid"),ltx=require("ltx"),types=require("./lib/types"),helpers=require("./lib/helpers"),stanzaConstructor=require("./lib/stanza");JXT.prototype.use=function(init){return init["__JXT_LOADED_"+this._ID]||init(this),init["__JXT_LOADED_"+this._ID]=!0,this},JXT.prototype.getDefinition=function(el,ns,required){var JXTClass=this._LOOKUP[ns+"|"+el];if(required&&!JXTClass)throw new Error("Could not find definition for <"+el+' xmlns="'+ns+'" />');return JXTClass},JXT.prototype.getExtensions=function(el,ns){return this._LOOKUP_EXT[ns+"|"+el]||{}},JXT.prototype.withDefinition=function(el,ns,cb){var name=ns+"|"+el;this._CB_DEFINITION[name]||(this._CB_DEFINITION[name]=[]),this._CB_DEFINITION[name].push(cb),this._LOOKUP[name]&&cb(this._LOOKUP[name])},JXT.prototype.withTag=function(tag,cb){this._CB_TAG[tag]||(this._CB_TAG[tag]=[]),this._CB_TAG[tag].push(cb),this.tagged(tag).forEach(function(stanza){cb(stanza)})},JXT.prototype.tagged=function(tag){return this._TAGS[tag]||[]},JXT.prototype.build=function(xml){var JXTClass=this.getDefinition(xml.localName,xml.namespaceURI);if(JXTClass)return new JXTClass(null,xml)},JXT.prototype.parse=function(str){var xml=ltx.parse(str);if(1===xml.nodeType)return this.build(xml)},JXT.prototype.extend=function(ParentJXT,ChildJXT,multiName,hideSingle){var parentName=ParentJXT.prototype._NS+"|"+ParentJXT.prototype._EL,name=ChildJXT.prototype._name,qName=ChildJXT.prototype._NS+"|"+ChildJXT.prototype._EL;this._LOOKUP[qName]=ChildJXT,this._LOOKUP_EXT[qName]||(this._LOOKUP_EXT[qName]={}),this._LOOKUP_EXT[parentName]||(this._LOOKUP_EXT[parentName]={}),this._LOOKUP_EXT[parentName][name]=ChildJXT,(!multiName||multiName&&!hideSingle)&&this.add(ParentJXT,name,types.extension(ChildJXT)),multiName&&this.add(ParentJXT,multiName,types.multiExtension(ChildJXT))},JXT.prototype.add=function(ParentJXT,fieldName,field){field.enumerable=!0,Object.defineProperty(ParentJXT.prototype,fieldName,field)},JXT.prototype.define=function(opts){var self=this,Stanza=stanzaConstructor(this,opts),ns=Stanza.prototype._NS,el=Stanza.prototype._EL,tags=Stanza.prototype._TAGS,name=ns+"|"+el;this._LOOKUP[name]=Stanza,tags.forEach(function(tag){self._TAGS[tag]||(self._TAGS[tag]=[]),self._TAGS[tag].push(Stanza)});var fieldNames=Object.keys(opts.fields||{});return fieldNames.forEach(function(fieldName){self.add(Stanza,fieldName,opts.fields[fieldName])}),this._CB_DEFINITION[name]&&this._CB_DEFINITION[name].forEach(function(handler){handler(Stanza)}),tags.forEach(function(tag){self._CB_TAG[tag]&&self._CB_TAG[tag].forEach(function(handler){handler(Stanza)})}),Stanza},JXT.createRegistry=function(){return new JXT},extend(JXT,helpers),extend(JXT,types);var globalJXT=new JXT;JXT.define=globalJXT.define.bind(globalJXT),JXT.extend=globalJXT.extend.bind(globalJXT),JXT.add=globalJXT.add.bind(globalJXT),JXT.parse=globalJXT.parse.bind(globalJXT),JXT.build=globalJXT.build.bind(globalJXT),JXT.getExtensions=globalJXT.getExtensions.bind(globalJXT),JXT.getDefinition=globalJXT.getDefinition.bind(globalJXT),JXT.withDefinition=globalJXT.withDefinition.bind(globalJXT),JXT.withTag=globalJXT.withTag.bind(globalJXT),JXT.tagged=globalJXT.tagged.bind(globalJXT),JXT.getGlobalJXT=function(){return globalJXT},module.exports=JXT},{"./lib/helpers":229,"./lib/stanza":230,"./lib/types":231,"lodash.assign":232,ltx:245,uuid:250}],229:[function(require,module,exports){"use strict";var ltx=require("ltx"),XML_NS=exports.XML_NS="http://www.w3.org/XML/1998/namespace";exports.createElement=function(NS,name,parentNS){var el=new ltx.Element(name);return parentNS&&parentNS===NS||exports.setAttribute(el,"xmlns",NS),el};var find=exports.find=function(xml,NS,selector){for(var results=[],children=xml.getElementsByTagName(selector),i=0,len=children.length;i<len;i++){var child=children[i];child.namespaceURI===NS&&child.parentNode===xml&&results.push(child)}return results};exports.findOrCreate=function(xml,NS,selector){var existing=exports.find(xml,NS,selector);if(existing.length)return existing[0];var created=exports.createElement(NS,selector,xml.namespaceURI);return xml.appendChild(created),created},exports.getAttribute=function(xml,attr,defaultVal){return xml.getAttribute(attr)||defaultVal||""},exports.getAttributeNS=function(xml,NS,attr,defaultVal){return xml.getAttributeNS(NS,attr)||defaultVal||""},exports.setAttribute=function(xml,attr,value,force){value||force?xml.setAttribute(attr,value):xml.removeAttribute(attr)},exports.setAttributeNS=function(xml,NS,attr,value,force){value||force?xml.setAttributeNS(NS,attr,value):xml.removeAttributeNS(NS,attr)},exports.getBoolAttribute=function(xml,attr,defaultVal){var val=xml.getAttribute(attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolAttribute=function(xml,attr,value){value?xml.setAttribute(attr,"1"):xml.removeAttribute(attr)},exports.getSubAttribute=function(xml,NS,sub,attr,defaultVal){var subs=find(xml,NS,sub);if(!subs)return"";for(var i=0;i<subs.length;i++)return subs[i].getAttribute(attr)||defaultVal||"";return""},exports.setSubAttribute=function(xml,NS,sub,attr,value){var subs=find(xml,NS,sub);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return void subs[i].setAttribute(attr,value);subs[i].removeAttribute(attr)}else value&&(sub=exports.createElement(NS,sub,xml.namespaceURI),sub.setAttribute(attr,value),xml.appendChild(sub))},exports.getBoolSubAttribute=function(xml,NS,sub,attr,defaultVal){var val=xml.getSubAttribute(NS,sub,attr)||defaultVal||"";return"true"===val||"1"===val},exports.setBoolSubAttribute=function(xml,NS,sub,attr,value){value=value?"1":"",exports.setSubAttribute(xml,NS,sub,attr,value)},exports.getText=function(xml){return xml.textContent},exports.setText=function(xml,value){xml.textContent=value},exports.getSubText=exports.getTextSub=function(xml,NS,element,defaultVal){var subs=find(xml,NS,element);return defaultVal=defaultVal||"",subs.length?subs[0].textContent||defaultVal:defaultVal},exports.setSubText=exports.setTextSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);value!==!0&&(sub.textContent=value),xml.appendChild(sub)}},exports.getMultiSubText=function(xml,NS,element,extractor){var subs=find(xml,NS,element),results=[];extractor=extractor||function(sub){return sub.textContent||""};for(var i=0;i<subs.length;i++)results.push(extractor(subs[i]));return results},exports.setMultiSubText=function(xml,NS,element,value,builder){var subs=find(xml,NS,element),values=[];builder=builder||function(value){if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);sub.textContent=value,xml.appendChild(sub)}},values="string"==typeof value?(value||"").split("\n"):value;var i,len;for(i=0,len=subs.length;i<len;i++)xml.removeChild(subs[i]);for(i=0,len=values.length;i<len;i++)builder(values[i])},exports.getMultiSubAttribute=function(xml,NS,element,attr){return exports.getMultiSubText(xml,NS,element,function(sub){return exports.getAttribute(sub,attr)})},exports.setMultiSubAttribute=function(xml,NS,element,attr,value){exports.setMultiSubText(xml,NS,element,value,function(val){var sub=exports.createElement(NS,element,xml.namespaceURI);exports.setAttribute(sub,attr,val),xml.appendChild(sub)})},exports.getSubLangText=function(xml,NS,element,defaultLang){var subs=find(xml,NS,element);if(!subs.length)return{};for(var lang,sub,results={},langs=[],i=0;i<subs.length;i++)sub=subs[i],lang=sub.getAttributeNS(XML_NS,"lang")||defaultLang,langs.push(lang),results[lang]=sub.textContent||"";return results},exports.setSubLangText=function(xml,NS,element,value,defaultLang){var sub,lang,subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++)xml.removeChild(subs[i]);if("string"==typeof value)sub=exports.createElement(NS,element,xml.namespaceURI),sub.textContent=value,xml.appendChild(sub);else if("object"==typeof value)for(lang in value)value.hasOwnProperty(lang)&&(sub=exports.createElement(NS,element,xml.namespaceURI),lang!==defaultLang&&sub.setAttributeNS(XML_NS,"lang",lang),sub.textContent=value[lang],xml.appendChild(sub))},exports.getBoolSub=function(xml,NS,element){var subs=find(xml,NS,element);return!!subs.length},exports.setBoolSub=function(xml,NS,element,value){var subs=find(xml,NS,element);if(subs.length)for(var i=0;i<subs.length;i++){if(value)return;xml.removeChild(subs[i])}else if(value){var sub=exports.createElement(NS,element,xml.namespaceURI);xml.appendChild(sub)}}},{ltx:245}],230:[function(require,module,exports){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),EXCLUDE={constructor:!0,parent:!0,prototype:!0,toJSON:!0,toString:!0,xml:!0};module.exports=function(JXT,opts){function Stanza(data,xml,parent){var self=this,parentNode=(xml||{}).parentNode||(parent||{}).xml,parentNS=(parentNode||{}).namespaceURI;self.xml=xml||helpers.createElement(self._NS,self._EL,parentNS),Object.keys(self._PREFIXES).forEach(function(prefix){var namespace=self._PREFIXES[prefix];self.xml.setAttribute("xmlns:"+prefix,namespace)}),self._extensions={};for(var i=0,len=self.xml.childNodes.length;i<len;i++){var child=self.xml.childNodes[i],ChildJXT=JXT.getDefinition(child.localName,child.namespaceURI);if(void 0!==ChildJXT){var name=ChildJXT.prototype._name;self._extensions[name]=new ChildJXT(null,child),self._extensions[name].parent=self}}return extend(self,data),opts.init&&opts.init.apply(self,[data]),self}return Stanza.prototype._name=opts.name,Stanza.prototype._eventname=opts.eventName,Stanza.prototype._NS=opts.namespace,Stanza.prototype._EL=opts.element||opts.name,Stanza.prototype._PREFIXES=opts.prefixes||{},Stanza.prototype._TAGS=opts.tags||[],Stanza.prototype.toString=function(){return this.xml.toString()},Stanza.prototype.toJSON=function(){var prop,result={};for(prop in this._extensions)this._extensions[prop].toJSON&&"_"!==prop[0]&&(result[prop]=this._extensions[prop].toJSON());for(prop in this){var allowedName=!EXCLUDE[prop]&&"_"!==prop[0],isExtensionName=JXT.getExtensions(this._EL,this._NS)[prop];if(allowedName&&!isExtensionName){var val=this[prop];if("function"==typeof val)continue;var type=Object.prototype.toString.call(val);if(type.indexOf("Object")>=0)Object.keys(val).length>0&&(result[prop]=val);else if(type.indexOf("Array")>=0){if(val.length>0){for(var vals=[],len=val.length,n=0;n<len;n++){var nval=val[n];"undefined"!=typeof nval&&(void 0!==nval.toJSON?vals.push(nval.toJSON()):vals.push(nval))}result[prop]=vals}}else void 0!==val&&val!==!1&&""!==val&&(result[prop]=val)}}return result},Stanza}},{"./helpers":229,"lodash.assign":232}],231:[function(require,module,exports){(function(Buffer){"use strict";var helpers=require("./helpers"),extend=require("lodash.assign"),find=helpers.find,createElement=helpers.createElement,field=exports.field=function(getter,setter){return function(){var args=Array.prototype.slice.call(arguments);return{get:function(){return getter.apply(null,[this.xml].concat(args))},set:function(value){setter.apply(null,[this.xml].concat(args).concat([value]))}}}};exports.boolAttribute=field(helpers.getBoolAttribute,helpers.setBoolAttribute),exports.subAttribute=field(helpers.getSubAttribute,helpers.setSubAttribute),exports.boolSubAttribute=field(helpers.getSubBoolAttribute,helpers.setSubBoolAttribute),exports.text=field(helpers.getText,helpers.setText),exports.textSub=exports.subText=field(helpers.getSubText,helpers.setSubText),exports.multiTextSub=exports.multiSubText=field(helpers.getMultiSubText,helpers.setMultiSubText),exports.multiSubAttribute=field(helpers.getMultiSubAttribute,helpers.setMultiSubAttribute),exports.langTextSub=exports.subLangText=field(helpers.getSubLangText,helpers.setSubLangText),exports.boolSub=field(helpers.getBoolSub,helpers.setBoolSub),exports.langAttribute=field(function(xml){return xml.getAttributeNS(helpers.XML_NS,"lang")||""},function(xml,value){xml.setAttributeNS(helpers.XML_NS,"lang",value)}),exports.b64Text=field(function(xml){return xml.textContent&&"="!==xml.textContent?new Buffer(xml.textContent,"base64"):""},function(xml,value){if("string"==typeof value){var b64=new Buffer(value).toString("base64");xml.textContent=b64||"="}else xml.textContent=""}),exports.dateAttribute=function(attr,now){return{get:function(){var data=helpers.getAttribute(this.xml,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setAttribute(this.xml,attr,value))}}},exports.dateSub=function(NS,sub,now){return{get:function(){var data=helpers.getSubText(this.xml,NS,sub);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubText(this.xml,NS,sub,value))}}},exports.dateSubAttribute=function(NS,sub,attr,now){return{get:function(){var data=helpers.getSubAttribute(this.xml,NS,sub,attr);return data?new Date(data):now?new Date(Date.now()):void 0},set:function(value){value&&("string"!=typeof value&&(value=value.toISOString()),helpers.setSubAttribute(this.xml,NS,sub,attr,value))}}},exports.numberAttribute=function(attr,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getAttribute(this.xml,attr,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setAttribute(this.xml,attr,value.toString())}}},exports.numberSub=function(NS,sub,isFloat,defaultVal){return{get:function(){var parse=isFloat?parseFloat:parseInt,data=helpers.getSubText(this.xml,NS,sub,"");if(!data)return defaultVal;var parsed=parse(data,10);return isNaN(parsed)?defaultVal:parsed},set:function(value){helpers.setSubText(this.xml,NS,sub,value.toString())}}},exports.attribute=function(name,defaultVal){return{get:function(){return helpers.getAttribute(this.xml,name,defaultVal)},set:function(value){helpers.setAttribute(this.xml,name,value)}}},exports.attributeNS=function(NS,name,defaultVal){return{get:function(){return helpers.getAttributeNS(this.xml,NS,name,defaultVal)},set:function(value){helpers.setAttributeNS(this.xml,NS,name,value)}}},exports.extension=function(ChildJXT){return{get:function(){var self=this,name=ChildJXT.prototype._name;if(!this._extensions[name]){var existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],self):(this._extensions[name]=new ChildJXT({},null,self),this.xml.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){if(value){var child=this[ChildJXT.prototype._name];value===!0&&(value={}),extend(child,value)}}}},exports.multiExtension=function(ChildJXT){return{get:function(){for(var self=this,data=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL),results=[],i=0,len=data.length;i<len;i++)results.push(new ChildJXT({},data[i],self));return results},set:function(value){value=value||[];var i,len,self=this,existing=find(this.xml,ChildJXT.prototype._NS,ChildJXT.prototype._EL);for(i=0,len=existing.length;i<len;i++)self.xml.removeChild(existing[i]);for(i=0,len=value.length;i<len;i++){var content=new ChildJXT(value[i],null,self);self.xml.appendChild(content.xml)}}}},exports.enumSub=function(NS,enumValues){return{get:function(){var self=this,result=[];return enumValues.forEach(function(enumVal){var exists=find(self.xml,NS,enumVal);exists.length&&result.push(exists[0].nodeName)}),result[0]||""},set:function(value){var self=this,alreadyExists=!1;if(enumValues.forEach(function(enumVal){var elements=find(self.xml,NS,enumVal);elements.length&&(enumVal===value?alreadyExists=!0:self.xml.removeChild(elements[0]))}),value&&!alreadyExists){var condition=createElement(NS,value);this.xml.appendChild(condition)}}}},exports.subExtension=function(name,NS,sub,ChildJXT){return{get:function(){if(!this._extensions[name]){var wrapper=find(this.xml,NS,sub);wrapper.length?wrapper=wrapper[0]:(wrapper=createElement(NS,sub,this._NS),this.xml.appendChild(wrapper));var existing=find(wrapper,ChildJXT.prototype._NS,ChildJXT.prototype._EL);existing.length?this._extensions[name]=new ChildJXT(null,existing[0],{xml:wrapper}):(this._extensions[name]=new ChildJXT({},null,{xml:wrapper}),wrapper.appendChild(this._extensions[name].xml)),this._extensions[name].parent=this}return this._extensions[name]},set:function(value){var wrapper=find(this.xml,NS,sub);if(wrapper.length&&!value&&this.xml.removeChild(wrapper[0]),value){var child=this[name];value===!0&&(value={}),extend(child,value)}}}},exports.subMultiExtension=function(NS,sub,ChildJXT){return{get:function(){var self=this,results=[],existing=find(this.xml,NS,sub);if(!existing.length)return results;existing=existing[0];var data=find(existing,ChildJXT.prototype._NS,ChildJXT.prototype._EL);return data.forEach(function(xml){results.push(new ChildJXT({},xml,self))}),results},set:function(values){var self=this,existing=find(this.xml,NS,sub);existing.length&&self.xml.removeChild(existing[0]),values.length&&(existing=createElement(NS,sub,this._NS),values.forEach(function(value){var content=new ChildJXT(value,null,self);existing.appendChild(content.xml)}),self.xml.appendChild(existing))}}}}).call(this,require("buffer").Buffer)},{"./helpers":229,buffer:2,"lodash.assign":232}],232:[function(require,module,exports){function assignWith(object,source,customizer){for(var index=-1,props=keys(source),length=props.length;++index<length;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(void 0!==value||key in object)||(object[key]=result)}return object}var baseAssign=require("lodash._baseassign"),createAssigner=require("lodash._createassigner"),keys=require("lodash.keys"),assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)});module.exports=assign},{"lodash._baseassign":233,"lodash._createassigner":235,"lodash.keys":239
-}],233:[function(require,module,exports){function baseAssign(object,source){return null==source?object:baseCopy(source,keys(source),object)}var baseCopy=require("lodash._basecopy"),keys=require("lodash.keys");module.exports=baseAssign},{"lodash._basecopy":234,"lodash.keys":239}],234:[function(require,module,exports){function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;++index<length;){var key=props[index];object[key]=source[key]}return object}module.exports=baseCopy},{}],235:[function(require,module,exports){function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2?sources[length-2]:void 0,guard=length>2?sources[2]:void 0,thisArg=length>1?sources[length-1]:void 0;for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:void 0,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=length<3?void 0:customizer,length=1);++index<length;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}var bindCallback=require("lodash._bindcallback"),isIterateeCall=require("lodash._isiterateecall"),restParam=require("lodash.restparam");module.exports=createAssigner},{"lodash._bindcallback":236,"lodash._isiterateecall":237,"lodash.restparam":238}],236:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{dup:60}],237:[function(require,module,exports){function baseProperty(key){return function(object){return null==object?void 0:object[key]}}function isArrayLike(value){return null!=value&&isLength(getLength(value))}function isIndex(value,length){return value="number"==typeof value||reIsUint.test(value)?+value:-1,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&value%1==0&&value<length}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type?isArrayLike(object)&&isIndex(index,object.length):"string"==type&&index in object){var other=object[index];return value===value?value===other:other!==other}return!1}function isLength(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return!!value&&("object"==type||"function"==type)}var reIsUint=/^\d+$/,MAX_SAFE_INTEGER=9007199254740991,getLength=baseProperty("length");module.exports=isIterateeCall},{}],238:[function(require,module,exports){function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(void 0===start?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);++index<length;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;++index<start;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}var FUNC_ERROR_TEXT="Expected a function",nativeMax=Math.max;module.exports=restParam},{}],239:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{dup:57,"lodash._getnative":240,"lodash.isarguments":241,"lodash.isarray":242}],240:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],241:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{dup:59}],242:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61}],243:[function(require,module,exports){"use strict";function DOMElement(name,attrs){Element.call(this,name,attrs),this.nodeType=1,this.nodeName=this.localName}var util=require("util"),Element=require("./element").Element;util.inherits(DOMElement,Element),DOMElement.prototype._getElement=function(name,attrs){var element=new DOMElement(name,attrs);return element},Object.defineProperty(DOMElement.prototype,"localName",{get:function(){return this.getName()}}),Object.defineProperty(DOMElement.prototype,"namespaceURI",{get:function(){return this.getNS()}}),Object.defineProperty(DOMElement.prototype,"parentNode",{get:function(){return this.parent}}),Object.defineProperty(DOMElement.prototype,"childNodes",{get:function(){return this.children}}),Object.defineProperty(DOMElement.prototype,"textContent",{get:function(){return this.getText()},set:function(value){this.children.push(value)}}),DOMElement.prototype.getElementsByTagName=function(name){return this.getChildren(name)},DOMElement.prototype.getAttribute=function(name){return this.getAttr(name)},DOMElement.prototype.setAttribute=function(name,value){this.attr(name,value)},DOMElement.prototype.getAttributeNS=function(ns,name){return"http://www.w3.org/XML/1998/namespace"===ns?this.getAttr(["xml",name].join(":")):this.getAttr(name,ns)},DOMElement.prototype.setAttributeNS=function(ns,name,value){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),value)},DOMElement.prototype.removeAttribute=function(name){this.attr(name,null)},DOMElement.prototype.removeAttributeNS=function(ns,name){var prefix;if("http://www.w3.org/XML/1998/namespace"===ns)prefix="xml";else{var nss=this.getXmlns();prefix=nss[ns]||""}prefix&&this.attr([prefix,name].join(":"),null)},DOMElement.prototype.appendChild=function(el){this.cnode(el)},DOMElement.prototype.removeChild=function(el){this.remove(el)},module.exports=DOMElement},{"./element":244,util:28}],244:[function(require,module,exports){"use strict";function Element(name,attrs){this.name=name,this.parent=null,this.children=[],this.setAttrs(attrs)}function escapeXml(s){return s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/"/g,"&apos;")}function escapeXmlText(s){return s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}Element.prototype.is=function(name,xmlns){return this.getName()===name&&(!xmlns||this.getNS()===xmlns)},Element.prototype.getName=function(){return this.name.indexOf(":")>=0?this.name.substr(this.name.indexOf(":")+1):this.name},Element.prototype.getNS=function(){if(this.name.indexOf(":")>=0){var prefix=this.name.substr(0,this.name.indexOf(":"));return this.findNS(prefix)}return this.findNS()},Element.prototype.findNS=function(prefix){if(prefix){var attr="xmlns:"+prefix;if(this.attrs[attr])return this.attrs[attr];if(this.parent)return this.parent.findNS(prefix)}else{if(this.attrs.xmlns)return this.attrs.xmlns;if(this.parent)return this.parent.findNS()}},Element.prototype.getXmlns=function(){var namespaces={};this.parent&&(namespaces=this.parent.getXmlns());for(var attr in this.attrs){var m=attr.match("xmlns:?(.*)");this.attrs.hasOwnProperty(attr)&&m&&(namespaces[this.attrs[attr]]=m[1])}return namespaces},Element.prototype.setAttrs=function(attrs){this.attrs={},"string"==typeof attrs?this.attrs.xmlns=attrs:attrs&&Object.keys(attrs).forEach(function(key){this.attrs[key]=attrs[key]},this)},Element.prototype.getAttr=function(name,xmlns){if(!xmlns)return this.attrs[name];var namespaces=this.getXmlns();return namespaces[xmlns]?this.attrs[[namespaces[xmlns],name].join(":")]:null},Element.prototype.getChild=function(name,xmlns){return this.getChildren(name,xmlns)[0]},Element.prototype.getChildren=function(name,xmlns){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.getName||child.getName()!==name||xmlns&&child.getNS()!==xmlns||result.push(child)}return result},Element.prototype.getChildByAttr=function(attr,val,xmlns,recursive){return this.getChildrenByAttr(attr,val,xmlns,recursive)[0]},Element.prototype.getChildrenByAttr=function(attr,val,xmlns,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];!child.attrs||child.attrs[attr]!==val||xmlns&&child.getNS()!==xmlns||result.push(child),recursive&&child.getChildrenByAttr&&result.push(child.getChildrenByAttr(attr,val,xmlns,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getChildrenByFilter=function(filter,recursive){for(var result=[],i=0;i<this.children.length;i++){var child=this.children[i];filter(child)&&result.push(child),recursive&&child.getChildrenByFilter&&result.push(child.getChildrenByFilter(filter,!0))}return recursive&&(result=[].concat.apply([],result)),result},Element.prototype.getText=function(){for(var text="",i=0;i<this.children.length;i++){var child=this.children[i];"string"!=typeof child&&"number"!=typeof child||(text+=child)}return text},Element.prototype.getChildText=function(name,xmlns){var child=this.getChild(name,xmlns);return child?child.getText():null},Element.prototype.getChildElements=function(){return this.getChildrenByFilter(function(child){return child instanceof Element})},Element.prototype.root=function(){return this.parent?this.parent.root():this},Element.prototype.tree=Element.prototype.root,Element.prototype.up=function(){return this.parent?this.parent:this},Element.prototype._getElement=function(name,attrs){var element=new Element(name,attrs);return element},Element.prototype.c=function(name,attrs){return this.cnode(this._getElement(name,attrs))},Element.prototype.cnode=function(child){return this.children.push(child),"object"==typeof child&&(child.parent=this),child},Element.prototype.t=function(text){return this.children.push(text),this},Element.prototype.remove=function(el,xmlns){var filter;return filter="string"==typeof el?function(child){return!(child.is&&child.is(el,xmlns))}:function(child){return child!==el},this.children=this.children.filter(filter),this},Element.prototype.clone=function(){for(var clone=this._getElement(this.name,this.attrs),i=0;i<this.children.length;i++){var child=this.children[i];clone.cnode(child.clone?child.clone():child)}return clone},Element.prototype.text=function(val){return val&&1===this.children.length?(this.children[0]=val,this):this.getText()},Element.prototype.attr=function(attr,val){return"undefined"!=typeof val||null===val?(this.attrs||(this.attrs={}),this.attrs[attr]=val,this):this.attrs[attr]},Element.prototype.toString=function(){var s="";return this.write(function(c){s+=c}),s},Element.prototype.toJSON=function(){return{name:this.name,attrs:this.attrs,children:this.children.map(function(child){return child&&child.toJSON?child.toJSON():child})}},Element.prototype._addChildren=function(writer){writer(">");for(var i=0;i<this.children.length;i++){var child=this.children[i];(child||0===child)&&(child.write?child.write(writer):"string"==typeof child?writer(escapeXmlText(child)):child.toString&&writer(escapeXmlText(child.toString(10))))}writer("</"),writer(this.name),writer(">")},Element.prototype.write=function(writer){writer("<"),writer(this.name);for(var k in this.attrs){var v=this.attrs[k];(v||""===v||0===v)&&(writer(" "),writer(k),writer('="'),"string"!=typeof v&&(v=v.toString(10)),writer(escapeXml(v)),writer('"'))}0===this.children.length?writer("/>"):this._addChildren(writer)},exports.Element=Element,exports.escapeXml=escapeXml},{}],245:[function(require,module,exports){"use strict";var parse=require("./parse");parse.availableSaxParsers.push(parse.bestSaxParser=require("./sax/sax_ltx")),module.exports=require("./index")},{"./index":246,"./parse":247,"./sax/sax_ltx":248}],246:[function(require,module,exports){"use strict";var parse=require("./parse");exports.Element=require("./dom-element"),exports.escapeXml=require("./element").escapeXml,exports.parse=parse.parse,exports.Parser=parse.Parser,exports.availableSaxParsers=parse.availableSaxParsers,exports.bestSaxParser=parse.bestSaxParser},{"./dom-element":243,"./element":244,"./parse":247}],247:[function(require,module,exports){"use strict";var events=require("events"),util=require("util"),DOMElement=require("./dom-element");exports.availableSaxParsers=[],exports.bestSaxParser=null;var saxParsers=["./sax/sax_expat.js","./sax/sax_ltx.js","./sax/sax_saxjs.js"];saxParsers.forEach(function(modName){var mod;try{mod=require(modName)}catch(e){}mod&&(exports.availableSaxParsers.push(mod),exports.bestSaxParser||(exports.bestSaxParser=mod))}),exports.Parser=function(saxParser){events.EventEmitter.call(this);var self=this,ParserMod=saxParser||exports.bestSaxParser;if(!ParserMod)throw new Error("No SAX parser available");this.parser=new ParserMod;var el;this.parser.addListener("startElement",function(name,attrs){var child=new DOMElement(name,attrs);el=el?el.cnode(child):child}),this.parser.addListener("endElement",function(name){el&&name===el.name&&(el.parent?el=el.parent:self.tree||(self.tree=el,el=void 0))}),this.parser.addListener("text",function(str){el&&el.t(str)}),this.parser.addListener("error",function(e){self.error=e,self.emit("error",e)})},util.inherits(exports.Parser,events.EventEmitter),exports.Parser.prototype.write=function(data){this.parser.write(data)},exports.Parser.prototype.end=function(data){this.parser.end(data),this.error||(this.tree?this.emit("tree",this.tree):this.emit("error",new Error("Incomplete document")))},exports.parse=function(data,saxParser){var p=new exports.Parser(saxParser),result=null,error=null;if(p.on("tree",function(tree){result=tree}),p.on("error",function(e){error=e}),p.write(data),p.end(),error)throw error;return result}},{"./dom-element":243,events:6,util:28}],248:[function(require,module,exports){"use strict";function unescapeXml(s){return s.replace(/\&(amp|#38);/g,"&").replace(/\&(lt|#60);/g,"<").replace(/\&(gt|#62);/g,">").replace(/\&(quot|#34);/g,'"').replace(/\&(apos|#39);/g,"'").replace(/\&(nbsp|#160);/g,"\n")}var util=require("util"),events=require("events"),STATE_TEXT=0,STATE_IGNORE_TAG=1,STATE_TAG_NAME=2,STATE_TAG=3,STATE_ATTR_NAME=4,STATE_ATTR_EQ=5,STATE_ATTR_QUOT=6,STATE_ATTR_VALUE=7,SaxLtx=module.exports=function(){events.EventEmitter.call(this);var remainder,tagName,attrs,endTag,selfClosing,attrQuote,attrName,state=STATE_TEXT,recordStart=0;this._handleTagOpening=function(endTag,tagName,attrs){endTag?this.emit("endElement",tagName):(this.emit("startElement",tagName,attrs),selfClosing&&this.emit("endElement",tagName))},this.write=function(data){function endRecording(){if("number"==typeof recordStart){var recorded=data.slice(recordStart,pos);return recordStart=void 0,recorded}}"string"!=typeof data&&(data=data.toString());var pos=0;for(remainder&&(data=remainder+data,pos+=remainder.length,remainder=null);pos<data.length;pos++){var c=data.charCodeAt(pos);switch(state){case STATE_TEXT:if(60===c){var text=endRecording();text&&this.emit("text",unescapeXml(text)),state=STATE_TAG_NAME,recordStart=pos+1,attrs={}}break;case STATE_TAG_NAME:47===c&&recordStart===pos?(recordStart=pos+1,endTag=!0):33===c||63===c?(recordStart=void 0,state=STATE_IGNORE_TAG):(c<=32||47===c||62===c)&&(tagName=endRecording(),pos--,state=STATE_TAG);break;case STATE_IGNORE_TAG:62===c&&(state=STATE_TEXT);break;case STATE_TAG:62===c?(this._handleTagOpening(endTag,tagName,attrs),tagName=void 0,attrs=void 0,endTag=void 0,selfClosing=void 0,state=STATE_TEXT,recordStart=pos+1):47===c?selfClosing=!0:c>32&&(recordStart=pos,state=STATE_ATTR_NAME);break;case STATE_ATTR_NAME:(c<=32||61===c)&&(attrName=endRecording(),pos--,state=STATE_ATTR_EQ);break;case STATE_ATTR_EQ:61===c&&(state=STATE_ATTR_QUOT);break;case STATE_ATTR_QUOT:34!==c&&39!==c||(attrQuote=c,state=STATE_ATTR_VALUE,recordStart=pos+1);break;case STATE_ATTR_VALUE:if(c===attrQuote){var value=unescapeXml(endRecording());attrs[attrName]=value,attrName=void 0,state=STATE_TAG}}}"number"==typeof recordStart&&recordStart<=data.length&&(remainder=data.slice(recordStart),recordStart=0)}};util.inherits(SaxLtx,events.EventEmitter),SaxLtx.prototype.end=function(data){data&&this.write(data),this.write=function(){}}},{events:6,util:28}],249:[function(require,module,exports){arguments[4][120][0].apply(exports,arguments)},{dup:120}],250:[function(require,module,exports){arguments[4][121][0].apply(exports,arguments)},{"./rng":249,dup:121}],251:[function(require,module,exports){arguments[4][83][0].apply(exports,arguments)},{dup:83}],252:[function(require,module,exports){"use strict";var JSM=require("jingle"),RTC=require("webrtc-adapter-test"),jxt=require("jxt").createRegistry();jxt.use(require("jxt-xmpp-types")),jxt.use(require("jxt-xmpp"));var IqStanza=jxt.getDefinition("iq","jabber:client");!function($){Strophe.addConnectionPlugin("jingle",{connection:null,peer_constraints:{},AUTOACCEPT:!1,localStream:null,manager:null,RTC:null,init:function(conn){var self=this;self.RTC=RTC,self.connection=conn,RTC.webrtcDetectedVersion<33&&"firefox"===RTC.webrtcDetectedBrowser||"chrome"===RTC.webrtcDetectedBrowser?(self.peer_constraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mandatory.MozDontOfferDataChannel=!0)):(self.peer_constraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mozDontOfferDataChannel=!0)),self.manager=new JSM({peerConnectionConstraints:self.peer_constraints,jid:self.connection.jid,selfID:self.connection.jid});var events={incoming:"callincoming.jingle",terminated:"callterminated.jingle",peerStreamAdded:"remotestreamadded.jingle",peerStreamRemoved:"remotestreamremoved.jingle",ringing:"ringing.jingle","log:error":"error.jingle"};if($.each(events,function(key,val){self.manager.on(key,function(){$(document).trigger(val,arguments)})}),self.manager.on("incoming",function(session){session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])})}),this.connection.disco){var i;for(i=0;i<self.manager.capabilities.length;i++)self.connection.disco.addFeature(self.manager.capabilities[i])}this.connection.addHandler(this.onJingle.bind(this),"urn:xmpp:jingle:1","iq","set",null,null),this.manager.on("send",function(data){var iq=new IqStanza(data);self.connection.send($.parseXML(iq.toString()).getElementsByTagName("iq")[0])})},onJingle:function(iq){var req=jxt.parse(iq.outerHTML);return this.manager.process(req.toJSON()),!0},initiate:function(peerjid,stream){var session=this.manager.createMediaSession(peerjid);return session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])}),stream&&(this.localStream=stream),this.localStream?(session.addStream(this.localStream),session.start(),session):void console.error("No local stream defined")},terminate:function(jid,reason,silent){"undefined"==typeof jid||null===jid?this.manager.endAllSessions(reason,silent):this.manager.endPeerSessions(jid,reason,silent)},terminateByJid:function(jid){this.manager.endPeerSessions(jid)},addICEServer:function(server){this.manager.addICEServer(server)},setICEServers:function(servers){this.manager.iceServers=servers},setPeerConstraints:function(constraints){this.manager.config.peerConnectionConstraints=constraints}})}(jQuery)},{jingle:29,jxt:228,"jxt-xmpp":157,"jxt-xmpp-types":125,"webrtc-adapter-test":251}]},{},[252]),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.Salsa20=factory()}(this,function(){function Salsa20(key,nonce){this.rounds=20,this.sigmaWords=[1634760805,857760878,2036477234,1797285236],this.keyWords=[],this.nonceWords=[0,0],this.counterWords=[0,0],this.block=[],this.blockUsed=64,this.setKey(key),this.setNonce(nonce)}return Salsa20.prototype.setKey=function(key){for(var i=0,j=0;i<8;i++,j+=4)this.keyWords[i]=255&key[j]|(255&key[j+1])<<8|(255&key[j+2])<<16|(255&key[j+3])<<24;this._reset()},Salsa20.prototype.setNonce=function(nonce){this.nonceWords[0]=255&nonce[0]|(255&nonce[1])<<8|(255&nonce[2])<<16|(255&nonce[3])<<24,this.nonceWords[1]=255&nonce[4]|(255&nonce[5])<<8|(255&nonce[6])<<16|(255&nonce[7])<<24,this._reset()},Salsa20.prototype.getBytes=function(numberOfBytes){for(var out=new Array(numberOfBytes),i=0;i<numberOfBytes;i++)64==this.blockUsed&&(this._generateBlock(),this._incrementCounter(),this.blockUsed=0),out[i]=this.block[this.blockUsed],this.blockUsed++;return out},Salsa20.prototype.getHexString=function(numberOfBytes){for(var hex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],out=[],bytes=this.getBytes(numberOfBytes),i=0;i<bytes.length;i++)out.push(hex[bytes[i]>>4&15]),out.push(hex[15&bytes[i]]);return out.join("")},Salsa20.prototype._reset=function(){this.counterWords[0]=0,this.counterWords[1]=0,this.blockUsed=64},Salsa20.prototype._incrementCounter=function(){this.counterWords[0]=this.counterWords[0]+1&4294967295,0==this.counterWords[0]&&(this.counterWords[1]=this.counterWords[1]+1&4294967295)},Salsa20.prototype._generateBlock=function(){for(var u,j0=this.sigmaWords[0],j1=this.keyWords[0],j2=this.keyWords[1],j3=this.keyWords[2],j4=this.keyWords[3],j5=this.sigmaWords[1],j6=this.nonceWords[0],j7=this.nonceWords[1],j8=this.counterWords[0],j9=this.counterWords[1],j10=this.sigmaWords[2],j11=this.keyWords[4],j12=this.keyWords[5],j13=this.keyWords[6],j14=this.keyWords[7],j15=this.sigmaWords[3],x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;i<this.rounds;i+=2)u=x0+x12,x4^=u<<7|u>>>25,u=x4+x0,x8^=u<<9|u>>>23,u=x8+x4,x12^=u<<13|u>>>19,u=x12+x8,x0^=u<<18|u>>>14,u=x5+x1,x9^=u<<7|u>>>25,u=x9+x5,x13^=u<<9|u>>>23,u=x13+x9,x1^=u<<13|u>>>19,u=x1+x13,x5^=u<<18|u>>>14,u=x10+x6,x14^=u<<7|u>>>25,u=x14+x10,x2^=u<<9|u>>>23,u=x2+x14,x6^=u<<13|u>>>19,u=x6+x2,x10^=u<<18|u>>>14,u=x15+x11,x3^=u<<7|u>>>25,u=x3+x15,x7^=u<<9|u>>>23,u=x7+x3,x11^=u<<13|u>>>19,u=x11+x7,x15^=u<<18|u>>>14,u=x0+x3,x1^=u<<7|u>>>25,u=x1+x0,x2^=u<<9|u>>>23,u=x2+x1,x3^=u<<13|u>>>19,u=x3+x2,x0^=u<<18|u>>>14,u=x5+x4,x6^=u<<7|u>>>25,u=x6+x5,x7^=u<<9|u>>>23,u=x7+x6,x4^=u<<13|u>>>19,u=x4+x7,x5^=u<<18|u>>>14,u=x10+x9,x11^=u<<7|u>>>25,u=x11+x10,x8^=u<<9|u>>>23,u=x8+x11,x9^=u<<13|u>>>19,u=x9+x8,x10^=u<<18|u>>>14,u=x15+x14,x12^=u<<7|u>>>25,u=x12+x15,x13^=u<<9|u>>>23,u=x13+x12,x14^=u<<13|u>>>19,u=x14+x13,x15^=u<<18|u>>>14;x0+=j0,x1+=j1,x2+=j2,x3+=j3,x4+=j4,x5+=j5,x6+=j6,x7+=j7,x8+=j8,x9+=j9,x10+=j10,x11+=j11,x12+=j12,x13+=j13,x14+=j14,x15+=j15,this.block[0]=x0>>>0&255,this.block[1]=x0>>>8&255,this.block[2]=x0>>>16&255,this.block[3]=x0>>>24&255,this.block[4]=x1>>>0&255,this.block[5]=x1>>>8&255,this.block[6]=x1>>>16&255,this.block[7]=x1>>>24&255,this.block[8]=x2>>>0&255,this.block[9]=x2>>>8&255,this.block[10]=x2>>>16&255,this.block[11]=x2>>>24&255,this.block[12]=x3>>>0&255,this.block[13]=x3>>>8&255,this.block[14]=x3>>>16&255,this.block[15]=x3>>>24&255,this.block[16]=x4>>>0&255,this.block[17]=x4>>>8&255,this.block[18]=x4>>>16&255,this.block[19]=x4>>>24&255,this.block[20]=x5>>>0&255,this.block[21]=x5>>>8&255,this.block[22]=x5>>>16&255,this.block[23]=x5>>>24&255,this.block[24]=x6>>>0&255,this.block[25]=x6>>>8&255,this.block[26]=x6>>>16&255,this.block[27]=x6>>>24&255,this.block[28]=x7>>>0&255,this.block[29]=x7>>>8&255,this.block[30]=x7>>>16&255,this.block[31]=x7>>>24&255,this.block[32]=x8>>>0&255,this.block[33]=x8>>>8&255,this.block[34]=x8>>>16&255,this.block[35]=x8>>>24&255,this.block[36]=x9>>>0&255,this.block[37]=x9>>>8&255,this.block[38]=x9>>>16&255,this.block[39]=x9>>>24&255,this.block[40]=x10>>>0&255,this.block[41]=x10>>>8&255,this.block[42]=x10>>>16&255,this.block[43]=x10>>>24&255,this.block[44]=x11>>>0&255,this.block[45]=x11>>>8&255,this.block[46]=x11>>>16&255,this.block[47]=x11>>>24&255,this.block[48]=x12>>>0&255,this.block[49]=x12>>>8&255,this.block[50]=x12>>>16&255,this.block[51]=x12>>>24&255,this.block[52]=x13>>>0&255,this.block[53]=x13>>>8&255,this.block[54]=x13>>>16&255,this.block[55]=x13>>>24&255,this.block[56]=x14>>>0&255,this.block[57]=x14>>>8&255,this.block[58]=x14>>>16&255,this.block[59]=x14>>>24&255,this.block[60]=x15>>>0&255,this.block[61]=x15>>>8&255,this.block[62]=x15>>>16&255,this.block[63]=x15>>>24&255},Salsa20}),function(root,factory){if("function"==typeof define&&define.amd)define(factory.bind(root,root.crypto||root.msCrypto));else if("undefined"!=typeof module&&module.exports)module.exports=factory(require("crypto"));else try{root.BigInt=factory(root.crypto||root.msCrypto)}catch(e){console.warn(e.message)}}(this,function(crypto){function findPrimes(n){var i,s,p,ans;for(s=new Array(n),i=0;i<n;i++)s[i]=0;for(s[0]=2,p=0;s[p]<n;){for(i=s[p]*s[p];i<n;i+=s[p])s[i]=1;for(p++,s[p]=s[p-1]+1;s[p]<n&&s[s[p]];s[p]++);}for(ans=new Array(p),i=0;i<p;i++)ans[i]=s[i];return ans}function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length&&(mr_x1=dup(x),mr_r=dup(x),mr_a=dup(x)),copy_(mr_a,b),copy_(mr_r,x),copy_(mr_x1,x),addInt_(mr_r,-1),addInt_(mr_x1,-1),isZero(mr_r))return 0;for(k=0;0==mr_r[k];k++);for(i=1,j=2;mr_r[k]%j==0;j*=2,i++);if(s=k*bpe+i-1,s&&rightShift_(mr_r,s),powMod_(mr_a,mr_r,x),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(j=1;j<=s-1&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,x),equalsInt(mr_a,1))return 0;j++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(x){var j,z,w;for(j=x.length-1;0==x[j]&&j>0;j--);for(z=0,w=x[j];w;w>>=1,z++);return z+=bpe*j}function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);return copy_(ans,x),ans}function mod(x,n){var ans=dup(x);return mod_(ans,n),trim(ans,1)}function mult(x,y){var ans=expand(x,x.length+y.length);return mult_(ans,y),trim(ans,1)}function powMod(x,y,n){var ans=expand(x,n.length);return powMod_(ans,trim(y,2),trim(n,2),0),trim(ans,1)}function sub(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return sub_(ans,y),trim(ans,1)}function add(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return add_(ans,y),trim(ans,1)}function inverseMod(x,n){var s,ans=expand(x,n.length);return s=inverseMod_(ans,n),s?trim(ans,1):null}function multMod(x,y,n){var ans=expand(x,n.length);return multMod_(ans,y,n),trim(ans,1)}function randBigInt(n,s){var a,b;return a=Math.floor((n-1)/bpe)+2,b=int2bigInt(0,0,a),randBigInt_(b,n,s),b}function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)b[i]=0;for(a=Math.floor((n-1)/bpe)+1,i=0;i<a;i++)b[i]=randomBitInt(bpe);b[a-1]&=(2<<(n-1)%bpe)-1,1==s&&(b[a-1]|=1<<(n-1)%bpe)}function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(1&x[0]||1&n[0]))return copyInt_(x,0),0;for(eg_u.length!=k&&(eg_u=new Array(k),eg_v=new Array(k),eg_A=new Array(k),eg_B=new Array(k),eg_C=new Array(k),eg_D=new Array(k)),copy_(eg_u,x),copy_(eg_v,n),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,n),halve_(eg_A),sub_(eg_B,x),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,n),halve_(eg_C),sub_(eg_D,x),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,n);return copy_(x,eg_C),equalsInt(eg_v,1)?1:(copyInt_(x,0),0)}}}function inverseModInt(x,n){for(var a=1,b=0;;){if(1==x)return a;if(0==x)return 0;if(b-=a*Math.floor(n/x),n%=x,1==n)return b;if(0==n)return 0;a-=b*Math.floor(x/n),x%=n}}function negative(x){return x[x.length-1]>>bpe-1&1}function greaterShift(x,y,shift){var i,kx=x.length,ky=y.length,k=kx+shift<ky?kx+shift:ky;for(i=ky-1-shift;i<kx&&i>=0;i++)if(x[i]>0)return 1;for(i=kx-1+shift;i<ky;i++)if(y[i]>0)return 0;for(i=k-1;i>=shift;i--){if(x[i-shift]>y[i])return 1;if(x[i-shift]<y[i])return 0}return 0}function greater(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=x.length;i<y.length;i++)if(y[i])return 0;for(i=y.length;i<x.length;i++)if(x[i])return 1;for(i=k-1;i>=0;i--){if(x[i]>y[i])return 1;if(x[i]<y[i])return 0}return 0}function divide_(x,y,q,r){var kx,ky,i,y1,y2,c,a,b;for(copy_(r,x),ky=y.length;0==y[ky-1];ky--);for(b=y[ky-1],a=0;b;a++)b>>=1;for(a=bpe-a,leftShift_(y,a),leftShift_(r,a),kx=r.length;0==r[kx-1]&&kx>ky;kx--);for(copyInt_(q,0);!greaterShift(y,r,kx-ky);)subShift_(r,y,kx-ky),q[kx-ky]++;for(i=kx-1;i>=ky;i--){for(r[i]==y[ky-1]?q[i-ky]=mask:q[i-ky]=Math.floor((r[i]*radix+r[i-1])/y[ky-1]);y2=(ky>1?y[ky-2]:0)*q[i-ky],c=y2,y2&=mask,c=(c-y2)/radix,y1=c+q[i-ky]*y[ky-1],c=y1,y1&=mask,c=(c-y1)/radix,c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i];)q[i-ky]--;linCombShift_(r,y,-q[i-ky],i-ky),negative(r)&&(addShift_(r,y,i-ky),q[i-ky]--)}rightShift_(y,a),rightShift_(r,a)}function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)c=(c*radix+x[i])%n;return c}function int2bigInt(t,bits,minSize){var k,buff;return k=Math.ceil(bits/bpe)+1,k=minSize>k?minSize:k,buff=new Array(k),copyInt_(buff,t),buff}function str2bigInt(s,base,minSize){var d,i,x,y,kk,k=s.length;if(base==-1){for(x=new Array(0);;){for(y=new Array(x.length+1),i=0;i<x.length;i++)y[i+1]=x[i];if(y[0]=parseInt(s,10),x=y,d=s.indexOf(",",0),d<1)break;if(s=s.substring(d+1),0==s.length)break}return x.length<minSize?(y=new Array(minSize),copy_(y,x),y):x}for(var bb=base,p=0,b=1==base?k:0;bb>1;)1&bb&&(p=1),b+=k,bb>>=1;for(b+=p*k,x=int2bigInt(0,b,0),i=0;i<k&&(d=digitsStr.indexOf(s.substring(i,i+1),0),base<=36&&d>=36&&(d-=26),!(d>=base||d<0));i++)multInt_(x,base),addInt_(x,d);for(k=x.length;k>0&&!x[k-1];k--);for(k=minSize>k+1?minSize:k+1,y=new Array(k),kk=k<x.length?k:x.length,i=0;i<kk;i++)y[i]=x[i];for(;i<k;i++)y[i]=0;return y}function equalsInt(x,y){var i;if(x[0]!=y)return 0;for(i=1;i<x.length;i++)if(x[i])return 0;return 1}function equals(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;i<k;i++)if(x[i]!=y[i])return 0;if(x.length>y.length){for(;i<x.length;i++)if(x[i])return 0}else for(;i<y.length;i++)if(y[i])return 0;return 1}function isZero(x){var i;for(i=0;i<x.length;i++)if(x[i])return 0;return 1}function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length?s6=dup(x):copy_(s6,x),base==-1){for(i=x.length-1;i>0;i--)s+=x[i]+",";s+=x[0]}else for(;!isZero(s6);)t=divInt_(s6,base),s=digitsStr.substring(t,t+1)+s;return 0==s.length&&(s="0"),s}function dup(x){var buff;return buff=new Array(x.length),copy_(buff,x),buff}function copy_(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;i<k;i++)x[i]=y[i];for(i=k;i<x.length;i++)x[i]=0}function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++)x[i]=c&mask,c>>=bpe}function addInt_(x,n){var i,k,c,b;for(x[0]+=n,k=x.length,c=0,i=0;i<k;i++)if(c+=x[i],b=0,c<0&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b,!c)return}function rightShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)x[i]=x[i+k];for(;i<x.length;i++)x[i]=0;n%=bpe}for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-n|x[i]>>n);x[i]>>=n}function halve_(x){var i;for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-1|x[i]>>1);x[i]=x[i]>>1|x[i]&radix>>1}function leftShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)x[i]=x[i-k];for(;i>=0;i--)x[i]=0;n%=bpe}if(n){for(i=x.length-1;i>0;i--)x[i]=mask&(x[i]<<n|x[i-1]>>bpe-n);x[i]=mask&x[i]<<n}}function multInt_(x,n){var i,k,c,b;if(n)for(k=x.length,c=0,i=0;i<k;i++)c+=x[i]*n,b=0,c<0&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b}function divInt_(x,n){var i,s,r=0;for(i=x.length-1;i>=0;i--)s=r*radix+x[i],x[i]=Math.floor(s/n),r=s%n;return r}function linCombShift_(x,y,b,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;i<k;i++)c+=x[i]+b*y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<kk;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function addShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;i<k;i++)c+=x[i]+y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<kk;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function subShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;i<k;i++)c+=x[i]-y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<kk;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function sub_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,
-c=0,i=0;i<k;i++)c+=x[i]-y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function add_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;i<k;i++)c+=x[i]+y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function mult_(x,y){var i;for(ss.length!=2*x.length&&(ss=new Array(2*x.length)),copyInt_(ss,0),i=0;i<y.length;i++)y[i]&&linCombShift_(ss,x,y[i],i);copy_(x,ss)}function mod_(x,n){s4.length!=x.length?s4=dup(x):copy_(s4,x),s5.length!=x.length&&(s5=dup(x)),divide_(s4,n,s5,x)}function multMod_(x,y,n){var i;for(s0.length!=2*x.length&&(s0=new Array(2*x.length)),copyInt_(s0,0),i=0;i<y.length;i++)y[i]&&linCombShift_(s0,x,y[i],i);mod_(s0,n),copy_(x,s0)}function squareMod_(x,n){var i,j,c,kx,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);for(k=kx>n.length?2*kx:2*n.length,s0.length!=k&&(s0=new Array(k)),copyInt_(s0,0),i=0;i<kx;i++){for(c=s0[2*i]+x[i]*x[i],s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;j<kx;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j]=c&mask,c=(c-s0[i+j])/radix;s0[i+kx]=c}mod_(s0,n),copy_(x,s0)}function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);return y=new Array(i+k),copy_(y,x),y}function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),kn=n.length;kn>0&&!n[kn-1];kn--);for(np=radix-inverseModInt(modInt(n,radix),radix),s7[kn]=1,multMod_(x,s7,n),s3.length!=x.length?s3=dup(x):copy_(s3,x),k1=y.length-1;k1>0&!y[k1];k1--);if(0==y[k1])return void copyInt_(x,1);for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,k1<0)return void mont_(x,one,n,np);k2=1<<bpe-1}mont_(x,x,n,np),k2&y[k1]&&mont_(x,s3,n,np)}}else for(copy_(s7,x),copyInt_(x,1);!equalsInt(y,0);)1&y[0]&&multMod_(x,s7,n),divInt_(y,2),squareMod_(s7,n)}function mont_(x,y,n,np){var i,j,c,ui,t,t2,ks,kn=n.length,ky=y.length;for(sa.length!=kn&&(sa=new Array(kn)),copyInt_(sa,0);kn>0&&0==n[kn-1];kn--);for(;ky>0&&0==y[ky-1];ky--);for(ks=sa.length-1,i=0;i<kn;i++){for(t=sa[0]+x[i]*y[0],ui=(t&mask)*np&mask,c=t+ui*n[0],c=(c-(c&mask))/radix,t=x[i],j=1;j<ky-4;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<ky;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<kn-4;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<kn;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<ks;)c+=sa[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;sa[j-1]=c&mask}greater(n,sa)||sub_(sa,n),copy_(x,sa)}function divMod(num,den,n){return multMod(num,inverseMod(den,n),n)}function subMod(one,two,n){return one=mod(one,n),two=mod(two,n),greater(two,one)&&(one=add(one,n)),sub(one,two)}function twoToThe(m){for(var b=Math.floor(m/bpe)+2,t=new Array(b),i=0;i<b;i++)t[i]=0;return t[b-2]=1<<m%bpe,t}function bigInt2bits(bi,pad){pad||(pad=0),bi=dup(bi);for(var ba="";!isZero(bi);)ba=_num2bin[255&bi[0]]+ba,rightShift_(bi,8);for(;ba.length<pad;)ba="\0"+ba;return ba}function ba2bigInt(data){var mpi=str2bigInt("0",10,data.length);return data.forEach(function(d,i){i&&leftShift_(mpi,8),mpi[0]|=d}),mpi}function getSeed(){return randomBytes(40)}function randomByte(){return randomBytes(1)[0]}function randomBitInt(k){if(k>31)throw new Error("Too many bits.");var i=0,r=0,b=Math.floor(k/8),mask=(1<<k%8)-1;for(mask&&(r=randomByte()&mask);i<b;i++)r=256*r+randomByte();return r}var bpe=26,radix=1<<bpe,mask=radix-1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s3=t,s4=t,s5=t,s6=t,s7=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,primes=t,_num2bin=function(){for(var i=0,_num2bin={};i<256;++i)_num2bin[i]=String.fromCharCode(i);return _num2bin}(),randomBytes=function(){if("undefined"!=typeof crypto&&"function"==typeof crypto.randomBytes)return function(n){try{var buf=crypto.randomBytes(n)}catch(e){throw e}return Array.prototype.slice.call(buf,0)};if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues)return function(n){var buf=new Uint8Array(n);return crypto.getRandomValues(buf),Array.prototype.slice.call(buf,0)};throw new Error("Keys should not be generated without CSPRNG.")}();return{str2bigInt:str2bigInt,bigInt2str:bigInt2str,int2bigInt:int2bigInt,multMod:multMod,powMod:powMod,inverseMod:inverseMod,randBigInt:randBigInt,randBigInt_:randBigInt_,equals:equals,equalsInt:equalsInt,sub:sub,mod:mod,modInt:modInt,mult:mult,divInt_:divInt_,rightShift_:rightShift_,dup:dup,greater:greater,add:add,isZero:isZero,bitSize:bitSize,millerRabin:millerRabin,divide_:divide_,trim:trim,primes:primes,findPrimes:findPrimes,getSeed:getSeed,divMod:divMod,subMod:subMod,twoToThe:twoToThe,bigInt2bits:bigInt2bits,ba2bigInt:ba2bigInt}}),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.CryptoJS=factory()}(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var C={},C_lib=C.lib={},Base=C_lib.Base=function(){function F(){}return{extend:function(overrides){F.prototype=this;var subtype=new F;return overrides&&subtype.mixIn(overrides),subtype.hasOwnProperty("init")||(subtype.init=function(){subtype.$super.init.apply(this,arguments)}),subtype.init.prototype=subtype,subtype.$super=this,subtype},create:function(){var instance=this.extend();return instance.init.apply(instance,arguments),instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)properties.hasOwnProperty(propertyName)&&(this[propertyName]=properties[propertyName]);properties.hasOwnProperty("toString")&&(this.toString=properties.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[],sigBytes!=undefined?this.sigBytes=sigBytes:this.sigBytes=4*words.length},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words,thatWords=wordArray.words,thisSigBytes=this.sigBytes,thatSigBytes=wordArray.sigBytes;if(this.clamp(),thisSigBytes%4)for(var i=0;i<thatSigBytes;i++){var thatByte=thatWords[i>>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else if(thatWords.length>65535)for(var i=0;i<thatSigBytes;i+=4)thisWords[thisSigBytes+i>>>2]=thatWords[i>>>2];else thisWords.push.apply(thisWords,thatWords);return this.sigBytes+=thatSigBytes,this},clamp:function(){var words=this.words,sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8,words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);return clone.words=this.words.slice(0),clone},random:function(nBytes){for(var words=[],i=0;i<nBytes;i+=4)words.push(4294967296*Math.random()|0);return new WordArray.init(words,nBytes)}}),C_enc=C.enc={},Hex=C_enc.Hex={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,hexChars=[],i=0;i<sigBytes;i++){var bite=words[i>>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16)),hexChars.push((15&bite).toString(16))}return hexChars.join("")},parse:function(hexStr){for(var hexStrLength=hexStr.length,words=[],i=0;i<hexStrLength;i+=2)words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}},Latin1=C_enc.Latin1={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,latin1Chars=[],i=0;i<sigBytes;i++){var bite=words[i>>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){for(var latin1StrLength=latin1Str.length,words=[],i=0;i<latin1StrLength;i++)words[i>>>2]|=(255&latin1Str.charCodeAt(i))<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}},Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}},BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init,this._nDataBytes=0},_append:function(data){"string"==typeof data&&(data=Utf8.parse(data)),this._data.concat(data),this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSize=this.blockSize,blockSizeBytes=4*blockSize,nBlocksReady=dataSigBytes/blockSizeBytes;nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes);if(nWordsReady){for(var offset=0;offset<nWordsReady;offset+=blockSize)this._doProcessBlock(dataWords,offset);var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady}return new WordArray.init(processedWords,nBytesReady)},clone:function(){var clone=Base.clone.call(this);return clone._data=this._data.clone(),clone},_minBufferSize:0}),C_algo=(C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg),this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},update:function(messageUpdate){return this._append(messageUpdate),this._process(),this},finalize:function(messageUpdate){messageUpdate&&this._append(messageUpdate);var hash=this._doFinalize();return hash},blockSize:16,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message)}},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message)}}}),C.algo={});return C}(Math);return function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,C_enc=C.enc;C_enc.Base64={stringify:function(wordArray){var words=wordArray.words,sigBytes=wordArray.sigBytes,map=this._map;wordArray.clamp();for(var base64Chars=[],i=0;i<sigBytes;i+=3)for(var byte1=words[i>>>2]>>>24-i%4*8&255,byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255,byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255,triplet=byte1<<16|byte2<<8|byte3,j=0;j<4&&i+.75*j<sigBytes;j++)base64Chars.push(map.charAt(triplet>>>6*(3-j)&63));var paddingChar=map.charAt(64);if(paddingChar)for(;base64Chars.length%4;)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length,map=this._map,paddingChar=map.charAt(64);if(paddingChar){var paddingIndex=base64Str.indexOf(paddingChar);paddingIndex!=-1&&(base64StrLength=paddingIndex)}for(var words=[],nBytes=0,i=0;i<base64StrLength;i++)if(i%4){var bits1=map.indexOf(base64Str.charAt(i-1))<<i%4*2,bits2=map.indexOf(base64Str.charAt(i))>>>6-i%4*2;words[nBytes>>>2]|=(bits1|bits2)<<24-nBytes%4*8,nBytes++}return WordArray.create(words,nBytes)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,WordArray=C_lib.WordArray,BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm,C_enc=C.enc,Base64=(C_enc.Utf8,C_enc.Base64),C_algo=C.algo,EvpKDF=C_algo.EvpKDF,Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg),this._xformMode=xformMode,this._key=key,this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},process:function(dataUpdate){return this._append(dataUpdate),this._process()},finalize:function(dataUpdate){dataUpdate&&this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){return"string"==typeof key?PasswordBasedCipher:SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext,key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()}),C_mode=(C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!0);return finalProcessedBlocks},blockSize:1}),C.mode={}),BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher,iv){this._cipher=cipher,this._iv=iv}}),CBC=C_mode.CBC=function(){function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;i<blockSize;i++)words[offset+i]^=block[i]}var CBC=BlockCipherMode.extend();return CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize),cipher.encryptBlock(words,offset),this._prevBlock=words.slice(offset,offset+blockSize)}}),CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset),xorBlock.call(this,words,offset,blockSize),this._prevBlock=thisBlock}}),CBC}(),C_pad=C.pad={},Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){for(var blockSizeBytes=4*blockSize,nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes,paddingWord=nPaddingBytes<<24|nPaddingBytes<<16|nPaddingBytes<<8|nPaddingBytes,paddingWords=[],i=0;i<nPaddingBytes;i+=4)paddingWords.push(paddingWord);var padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding)},unpad:function(data){var nPaddingBytes=255&data.words[data.sigBytes-1>>>2];data.sigBytes-=nPaddingBytes}},CipherParams=(C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg,iv=cfg.iv,mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}this._mode=modeCreator.call(mode,this,iv&&iv.words)},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data,this.blockSize);var finalProcessedBlocks=this._process(!0)}else{var finalProcessedBlocks=this._process(!0);padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:4}),C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}})),C_format=C.format={},OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext=cipherParams.ciphertext,salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr),ciphertextWords=ciphertext.words;if(1398893684==ciphertextWords[0]&&1701076831==ciphertextWords[1]){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4),ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext,salt:salt})}},SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg),ciphertext=encryptor.finalize(message),cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher,ciphertext,key,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){return"string"==typeof ciphertext?format.parse(ciphertext,this):ciphertext}}),C_kdf=C.kdf={},OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){salt||(salt=WordArray.random(8));var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt),iv=WordArray.create(key.words.slice(keySize),4*ivSize);return key.sigBytes=4*keySize,CipherParams.create({key:key,iv:iv,salt:salt})}},PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cfg);return ciphertext.mixIn(derivedParams),ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}(),function(){var C=CryptoJS,C_lib=C.lib,BlockCipher=C_lib.BlockCipher,C_algo=C.algo,SBOX=[],INV_SBOX=[],SUB_MIX_0=[],SUB_MIX_1=[],SUB_MIX_2=[],SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[];!function(){for(var d=[],i=0;i<256;i++)i<128?d[i]=i<<1:d[i]=i<<1^283;for(var x=0,xi=0,i=0;i<256;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX_0[x]=t<<24|t>>>8,SUB_MIX_1[x]=t<<16|t>>>16,SUB_MIX_2[x]=t<<8|t>>>24,SUB_MIX_3[x]=t;var t=16843009*x8^65537*x4^257*x2^16843008*x;INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}}();var RCON=[0,1,2,4,8,16,32,64,128,27,54],AES=C_algo.AES=BlockCipher.extend({_doReset:function(){for(var key=this._key,keyWords=key.words,keySize=key.sigBytes/4,nRounds=this._nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=this._keySchedule=[],ksRow=0;ksRow<ksRows;ksRow++)if(ksRow<keySize)keySchedule[ksRow]=keyWords[ksRow];else{var t=keySchedule[ksRow-1];ksRow%keySize?keySize>6&&ksRow%keySize==4&&(t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t]):(t=t<<8|t>>>24,t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t],t^=RCON[ksRow/keySize|0]<<24),keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}for(var invKeySchedule=this._invKeySchedule=[],invKsRow=0;invKsRow<ksRows;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4)var t=keySchedule[ksRow];else var t=keySchedule[ksRow-4];invKsRow<4||ksRow<=4?invKeySchedule[invKsRow]=t:invKeySchedule[invKsRow]=INV_SUB_MIX_0[SBOX[t>>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[255&t]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t,this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){for(var nRounds=this._nRounds,s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=1;round<nRounds;round++){var t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[255&s2]^keySchedule[ksRow++];s0=t0,s1=t1,s2=t2,s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++];M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3},keySize:8});C.AES=BlockCipher._createHelper(AES)}(),function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,W=[],SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=0;i<80;i++){if(i<16)W[i]=0|M[offset+i];else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];t+=i<20?(b&c|~b&d)+1518500249:i<40?(b^c^d)+1859775393:i<60?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA1=Hasher._createHelper(SHA1),C.HmacSHA1=Hasher._createHmacHelper(SHA1)}(),function(Math){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,H=[],K=[];!function(){function isPrime(n){for(var sqrtN=Math.sqrt(n),factor=2;factor<=sqrtN;factor++)if(!(n%factor))return!1;return!0}function getFractionalBits(n){return 4294967296*(n-(0|n))|0}for(var n=2,nPrime=0;nPrime<64;)isPrime(n)&&(nPrime<8&&(H[nPrime]=getFractionalBits(Math.pow(n,.5))),K[nPrime]=getFractionalBits(Math.pow(n,1/3)),nPrime++),n++}();var W=[],SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=0;i<64;i++){if(i<16)W[i]=0|M[offset+i];else{var gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj;h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA256=Hasher._createHelper(SHA256),C.HmacSHA256=Hasher._createHmacHelper(SHA256)}(Math),function(){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,C_enc=C.enc,Utf8=C_enc.Utf8,C_algo=C.algo;C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new hasher.init,"string"==typeof key&&(key=Utf8.parse(key));var hasherBlockSize=hasher.blockSize,hasherBlockSizeBytes=4*hasherBlockSize;key.sigBytes>hasherBlockSizeBytes&&(key=hasher.finalize(key)),key.clamp();for(var oKey=this._oKey=key.clone(),iKey=this._iKey=key.clone(),oKeyWords=oKey.words,iKeyWords=iKey.words,i=0;i<hasherBlockSize;i++)oKeyWords[i]^=1549556828,iKeyWords[i]^=909522486;oKey.sigBytes=iKey.sigBytes=hasherBlockSizeBytes,this.reset()},reset:function(){var hasher=this._hasher;hasher.reset(),hasher.update(this._iKey)},update:function(messageUpdate){return this._hasher.update(messageUpdate),this},finalize:function(messageUpdate){var hasher=this._hasher,innerHash=hasher.finalize(messageUpdate);hasher.reset();var hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac}})}(),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},CryptoJS.mode.CTR=function(){var CTR=CryptoJS.lib.BlockCipherMode.extend(),Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,iv=this._iv,counter=this._counter;iv&&(counter=this._counter=iv.slice(0),this._iv=void 0);var keystream=counter.slice(0);cipher.encryptBlock(keystream,0),counter[blockSize-1]=counter[blockSize-1]+1|0;for(var i=0;i<blockSize;i++)words[offset+i]^=keystream[i]}});return CTR.Decryptor=Encryptor,CTR}(),CryptoJS}),/*!
- * Source: lib/otr/build/dep/eventemitter.js, license: MIT, url: http://git.io/ee
- */
-/*!
+var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];module.exports=ripemd160}).call(this,require("buffer").Buffer)},{buffer:6}],167:[function(require,module,exports){function PeerConnection(config,constraints){var item,self=this;WildEmitter.call(this),config=config||{},config.iceServers=config.iceServers||[];var detectedBrowser=adapter.browserDetails.browser;this.enableChromeNativeSimulcast=!1,constraints&&constraints.optional&&"chrome"===detectedBrowser&&null===navigator.appVersion.match(/Chromium\//)&&constraints.optional.forEach(function(constraint){constraint.enableChromeNativeSimulcast&&(self.enableChromeNativeSimulcast=!0)}),this.enableMultiStreamHacks=!1,constraints&&constraints.optional&&"chrome"===detectedBrowser&&constraints.optional.forEach(function(constraint){constraint.enableMultiStreamHacks&&(self.enableMultiStreamHacks=!0)}),this.restrictBandwidth=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetRestrictBandwidth&&(self.restrictBandwidth=constraint.andyetRestrictBandwidth)}),this.batchIceCandidates=0,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetBatchIce&&(self.batchIceCandidates=constraint.andyetBatchIce)}),this.batchedIceCandidates=[],constraints&&constraints.optional&&"chrome"===detectedBrowser&&constraints.optional.forEach(function(constraint){constraint.andyetFasterICE&&(self.eliminateDuplicateCandidates=constraint.andyetFasterICE)}),constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetDontSignalCandidates&&(self.dontSignalCandidates=constraint.andyetDontSignalCandidates)}),this.assumeSetLocalSuccess=!1,constraints&&constraints.optional&&constraints.optional.forEach(function(constraint){constraint.andyetAssumeSetLocalSuccess&&(self.assumeSetLocalSuccess=constraint.andyetAssumeSetLocalSuccess)}),"firefox"===detectedBrowser&&constraints&&constraints.optional&&(this.wtFirefox=0,constraints.optional.forEach(function(constraint){constraint.andyetFirefoxMakesMeSad&&(self.wtFirefox=constraint.andyetFirefoxMakesMeSad,self.wtFirefox>0&&(self.firefoxcandidatebuffer=[]))})),this.pc=new Peerconn(config,constraints),this.getLocalStreams=this.pc.getLocalStreams.bind(this.pc),this.getRemoteStreams=this.pc.getRemoteStreams.bind(this.pc),this.addStream=this.pc.addStream.bind(this.pc),this.removeStream=this.pc.removeStream.bind(this.pc),this.pc.on("*",function(){self.emit.apply(self,arguments)}),this.pc.onremovestream=this.emit.bind(this,"removeStream"),this.pc.onaddstream=this.emit.bind(this,"addStream"),this.pc.onnegotiationneeded=this.emit.bind(this,"negotiationNeeded"),this.pc.oniceconnectionstatechange=this.emit.bind(this,"iceConnectionStateChange"),this.pc.onsignalingstatechange=this.emit.bind(this,"signalingStateChange"),this.pc.onicecandidate=this._onIce.bind(this),this.pc.ondatachannel=this._onDataChannel.bind(this),this.localDescription={contents:[]},this.remoteDescription={contents:[]},this.config={debug:!1,sid:"",isInitiator:!0,sdpSessionID:Date.now(),useJingle:!1},this.iceCredentials={local:{},remote:{}};for(item in config)this.config[item]=config[item];this.config.debug&&this.on("*",function(){var logger=config.logger||console;logger.log("PeerConnection event:",arguments)}),this.hadLocalStunCandidate=!1,this.hadRemoteStunCandidate=!1,this.hadLocalRelayCandidate=!1,this.hadRemoteRelayCandidate=!1,this.hadLocalIPv6Candidate=!1,this.hadRemoteIPv6Candidate=!1,this._remoteDataChannels=[],this._localDataChannels=[],this._candidateBuffer=[]}var util=require("util"),SJJ=require("sdp-jingle-json"),WildEmitter=require("wildemitter"),Peerconn=require("traceablepeerconnection"),adapter=require("webrtc-adapter"),cloneDeep=require("lodash.clonedeep");util.inherits(PeerConnection,WildEmitter),Object.defineProperty(PeerConnection.prototype,"signalingState",{get:function(){return this.pc.signalingState}}),Object.defineProperty(PeerConnection.prototype,"iceConnectionState",{get:function(){return this.pc.iceConnectionState}}),PeerConnection.prototype._role=function(){return this.isInitiator?"initiator":"responder"},PeerConnection.prototype.addStream=function(stream){this.localStream=stream,this.pc.addStream(stream)},PeerConnection.prototype._checkLocalCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadLocalStunCandidate=!0:"relay"==cand.type&&(this.hadLocalRelayCandidate=!0),cand.ip.indexOf(":")!=-1&&(this.hadLocalIPv6Candidate=!0)},PeerConnection.prototype._checkRemoteCandidate=function(candidate){var cand=SJJ.toCandidateJSON(candidate);"srflx"==cand.type?this.hadRemoteStunCandidate=!0:"relay"==cand.type&&(this.hadRemoteRelayCandidate=!0),cand.ip.indexOf(":")!=-1&&(this.hadRemoteIPv6Candidate=!0)},PeerConnection.prototype.processIce=function(update,cb){cb=cb||function(){};var self=this;if("closed"===this.pc.signalingState)return cb();if(update.contents||update.jingle&&update.jingle.contents){var contentNames=this.remoteDescription.contents.map(function(c){return c.name}),contents=update.contents||update.jingle.contents;contents.forEach(function(content){var transport=content.transport||{},candidates=transport.candidates||[],mline=contentNames.indexOf(content.name),mid=content.name,remoteContent=self.remoteDescription.contents.find(function(c){return c.name===content.name}),processCandidates=function(){candidates.forEach(function(candidate){var iceCandidate=SJJ.toCandidateSDP(candidate)+"\r\n";self.pc.addIceCandidate(new RTCIceCandidate({candidate:iceCandidate,sdpMLineIndex:mline,sdpMid:mid}),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(iceCandidate)}),cb()};if(self.iceCredentials.remote[content.name]&&transport.ufrag&&self.iceCredentials.remote[content.name].ufrag!==transport.ufrag)if(remoteContent){remoteContent.transport.ufrag=transport.ufrag,remoteContent.transport.pwd=transport.pwd;var offer={type:"offer",jingle:self.remoteDescription};offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.pc.setRemoteDescription(new RTCSessionDescription(offer),function(){processCandidates()},function(err){self.emit("error",err)})}else self.emit("error","ice restart failed to find matching content");else processCandidates()})}else{if(update.candidate&&0!==update.candidate.candidate.indexOf("a=")&&(update.candidate.candidate="a="+update.candidate.candidate),this.wtFirefox&&null!==this.firefoxcandidatebuffer&&this.pc.localDescription&&"offer"===this.pc.localDescription.type)return this.firefoxcandidatebuffer.push(update.candidate),cb();self.pc.addIceCandidate(new RTCIceCandidate(update.candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(update.candidate.candidate),cb()}},PeerConnection.prototype.offer=function(constraints,cb){var self=this,hasConstraints=2===arguments.length,mediaConstraints=hasConstraints&&constraints?constraints:{offerToReceiveAudio:1,offerToReceiveVideo:1};return cb=hasConstraints?cb:constraints,cb=cb||function(){},"closed"===this.pc.signalingState?cb("Already closed"):void this.pc.createOffer(function(offer){var expandedOffer={type:"offer",sdp:offer.sdp};self.assumeSetLocalSuccess&&(self.emit("offer",expandedOffer),cb(null,expandedOffer)),self._candidateBuffer=[],self.pc.setLocalDescription(offer,function(){var jingle;self.config.useJingle&&(jingle=SJJ.toSessionJSON(offer.sdp,{role:self._role(),direction:"outgoing"}),jingle.sid=self.config.sid,self.localDescription=jingle,jingle.contents.forEach(function(content){var transport=content.transport||{};transport.ufrag&&(self.iceCredentials.local[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),expandedOffer.jingle=jingle),expandedOffer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),self.assumeSetLocalSuccess||(self.emit("offer",expandedOffer),cb(null,expandedOffer))},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},mediaConstraints)},PeerConnection.prototype.handleOffer=function(offer,cb){cb=cb||function(){};var self=this;if(offer.type="offer",offer.jingle){if(this.enableChromeNativeSimulcast&&offer.jingle.contents.forEach(function(content){"video"===content.name&&(content.application.googConferenceFlag=!0)}),this.enableMultiStreamHacks&&offer.jingle.contents.forEach(function(content){if("video"===content.name){var sources=content.application.sources||[];0!==sources.length&&"3735928559"===sources[0].ssrc||(sources.unshift({ssrc:"3735928559",parameters:[{key:"cname",value:"deadbeef"},{key:"msid",value:"mixyourfecintothis please"}]}),content.application.sources=sources)}}),self.restrictBandwidth>0&&offer.jingle.contents.length>=2&&"video"===offer.jingle.contents[1].name){var content=offer.jingle.contents[1],hasBw=content.application&&content.application.bandwidth&&content.application.bandwidth.bandwidth;hasBw||(offer.jingle.contents[1].application.bandwidth={type:"AS",bandwidth:self.restrictBandwidth.toString()},offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"}))}offer.jingle.contents.forEach(function(content){var transport=content.transport||{};transport.ufrag&&(self.iceCredentials.remote[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})}),offer.sdp=SJJ.toSessionSDP(offer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=offer.jingle}offer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(offer),function(){cb()},cb)},PeerConnection.prototype.answerAudioOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answerBroadcastOnly=function(cb){var mediaConstraints={mandatory:{OfferToReceiveAudio:!1,OfferToReceiveVideo:!1}};this._answer(mediaConstraints,cb)},PeerConnection.prototype.answer=function(constraints,cb){var hasConstraints=2===arguments.length,callback=hasConstraints?cb:constraints,mediaConstraints=hasConstraints&&constraints?constraints:{mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}};this._answer(mediaConstraints,callback)},PeerConnection.prototype.handleAnswer=function(answer,cb){cb=cb||function(){};var self=this;answer.jingle&&(answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"incoming"}),self.remoteDescription=answer.jingle,answer.jingle.contents.forEach(function(content){var transport=content.transport||{};transport.ufrag&&(self.iceCredentials.remote[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})),answer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkRemoteCandidate(line)}),self.pc.setRemoteDescription(new RTCSessionDescription(answer),function(){self.wtFirefox&&window.setTimeout(function(){self.firefoxcandidatebuffer.forEach(function(candidate){self.pc.addIceCandidate(new RTCIceCandidate(candidate),function(){},function(err){self.emit("error",err)}),self._checkRemoteCandidate(candidate.candidate)}),self.firefoxcandidatebuffer=null},self.wtFirefox),cb(null)},cb)},PeerConnection.prototype.close=function(){this.pc.close(),this._localDataChannels=[],this._remoteDataChannels=[],this.emit("close")},PeerConnection.prototype._answer=function(constraints,cb){cb=cb||function(){};var self=this;if(!this.pc.remoteDescription)throw new Error("remoteDescription not set");return"closed"===this.pc.signalingState?cb("Already closed"):void self.pc.createAnswer(function(answer){var sim=[];if(self.enableChromeNativeSimulcast&&(answer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"}),answer.jingle.contents.length>=2&&"video"===answer.jingle.contents[1].name)){var groups=answer.jingle.contents[1].application.sourceGroups||[],hasSim=!1;if(groups.forEach(function(group){"SIM"==group.semantics&&(hasSim=!0)}),!hasSim&&answer.jingle.contents[1].application.sources.length){var newssrc=JSON.parse(JSON.stringify(answer.jingle.contents[1].application.sources[0]));newssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].application.sources.push(newssrc),sim.push(answer.jingle.contents[1].application.sources[0].ssrc),sim.push(newssrc.ssrc),groups.push({semantics:"SIM",sources:sim});var rtxssrc=JSON.parse(JSON.stringify(newssrc));rtxssrc.ssrc=""+Math.floor(4294967295*Math.random()),answer.jingle.contents[1].application.sources.push(rtxssrc),groups.push({semantics:"FID",sources:[newssrc.ssrc,rtxssrc.ssrc]}),answer.jingle.contents[1].application.sourceGroups=groups,answer.sdp=SJJ.toSessionSDP(answer.jingle,{sid:self.config.sdpSessionID,role:self._role(),direction:"outgoing"})}}var expandedAnswer={type:"answer",sdp:answer.sdp};if(self.assumeSetLocalSuccess){var copy=cloneDeep(expandedAnswer);self.emit("answer",copy),cb(null,copy)}self._candidateBuffer=[],self.pc.setLocalDescription(answer,function(){if(self.config.useJingle){var jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"});jingle.sid=self.config.sid,self.localDescription=jingle,expandedAnswer.jingle=jingle}if(self.enableChromeNativeSimulcast&&(expandedAnswer.jingle||(expandedAnswer.jingle=SJJ.toSessionJSON(answer.sdp,{role:self._role(),direction:"outgoing"})),expandedAnswer.jingle.contents[1].application.sources.forEach(function(source,idx){source.parameters=source.parameters.map(function(parameter){return"msid"===parameter.key&&(parameter.value+="-"+Math.floor(idx/2)),parameter})}),expandedAnswer.sdp=SJJ.toSessionSDP(expandedAnswer.jingle,{sid:self.sdpSessionID,role:self._role(),direction:"outgoing"})),expandedAnswer.sdp.split("\r\n").forEach(function(line){0===line.indexOf("a=candidate:")&&self._checkLocalCandidate(line)}),!self.assumeSetLocalSuccess){var copy=cloneDeep(expandedAnswer);self.emit("answer",copy),cb(null,copy)}},function(err){self.emit("error",err),cb(err)})},function(err){self.emit("error",err),cb(err)},constraints)},PeerConnection.prototype._onIce=function(event){var self=this;if(event.candidate){if(this.dontSignalCandidates)return;var ice=event.candidate,expandedCandidate={candidate:{candidate:ice.candidate,sdpMid:ice.sdpMid,sdpMLineIndex:ice.sdpMLineIndex}};this._checkLocalCandidate(ice.candidate);var already,idx,cand=SJJ.toCandidateJSON(ice.candidate);if(this.eliminateDuplicateCandidates&&"relay"===cand.type&&(already=this._candidateBuffer.filter(function(c){return"relay"===c.type}).map(function(c){return c.foundation+":"+c.component}),idx=already.indexOf(cand.foundation+":"+cand.component),idx>-1&&cand.priority>>24>=already[idx].priority>>24))return;if("max-bundle"===this.config.bundlePolicy&&(already=this._candidateBuffer.filter(function(c){return cand.type===c.type}).map(function(cand){return cand.address+":"+cand.port}),idx=already.indexOf(cand.address+":"+cand.port),idx>-1))return;if("require"===this.config.rtcpMuxPolicy&&"2"===cand.component)return;if(this._candidateBuffer.push(cand),self.config.useJingle){if(ice.sdpMid||(self.pc.remoteDescription&&"offer"===self.pc.remoteDescription.type?ice.sdpMid=self.remoteDescription.contents[ice.sdpMLineIndex].name:ice.sdpMid=self.localDescription.contents[ice.sdpMLineIndex].name),!self.iceCredentials.local[ice.sdpMid]){var jingle=SJJ.toSessionJSON(self.pc.localDescription.sdp,{role:self._role(),direction:"outgoing"});jingle.contents.forEach(function(content){var transport=content.transport||{};transport.ufrag&&(self.iceCredentials.local[content.name]={ufrag:transport.ufrag,pwd:transport.pwd})})}if(expandedCandidate.jingle={contents:[{name:ice.sdpMid,creator:self._role(),transport:{transportType:"iceUdp",ufrag:self.iceCredentials.local[ice.sdpMid].ufrag,pwd:self.iceCredentials.local[ice.sdpMid].pwd,candidates:[cand]}}]},self.batchIceCandidates>0)return 0===self.batchedIceCandidates.length&&window.setTimeout(function(){var contents={};self.batchedIceCandidates.forEach(function(content){content=content.contents[0],contents[content.name]||(contents[content.name]=content),contents[content.name].transport.candidates.push(content.transport.candidates[0])});var newCand={jingle:{contents:[]}};Object.keys(contents).forEach(function(name){newCand.jingle.contents.push(contents[name])}),self.batchedIceCandidates=[],self.emit("ice",newCand)},self.batchIceCandidates),void self.batchedIceCandidates.push(expandedCandidate.jingle)}this.emit("ice",expandedCandidate)}else this.emit("endOfCandidates")},PeerConnection.prototype._onDataChannel=function(event){var channel=event.channel;this._remoteDataChannels.push(channel),this.emit("addChannel",channel)},PeerConnection.prototype.createDataChannel=function(name,opts){var channel=this.pc.createDataChannel(name,opts);return this._localDataChannels.push(channel),channel},PeerConnection.prototype.getStats=function(cb){this.pc.getStats(null,function(res){cb(null,res)},function(err){cb(err)})},module.exports=PeerConnection},{"lodash.clonedeep":133,"sdp-jingle-json":168,traceablepeerconnection:184,util:197,"webrtc-adapter":201,wildemitter:211}],168:[function(require,module,exports){var toSDP=require("./lib/tosdp"),toJSON=require("./lib/tojson");exports.toIncomingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"incoming"})},exports.toOutgoingSDPOffer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"outgoing"})},exports.toIncomingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"initiator",direction:"incoming"})},exports.toOutgoingSDPAnswer=function(session){return toSDP.toSessionSDP(session,{role:"responder",direction:"outgoing"})},exports.toIncomingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"incoming"})},exports.toOutgoingMediaSDPOffer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"outgoing"})},exports.toIncomingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"initiator",direction:"incoming"})},exports.toOutgoingMediaSDPAnswer=function(media){return toSDP.toMediaSDP(media,{role:"responder",direction:"outgoing"})},exports.toCandidateSDP=toSDP.toCandidateSDP,exports.toMediaSDP=toSDP.toMediaSDP,exports.toSessionSDP=toSDP.toSessionSDP,exports.toIncomingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"incoming",creators:creators})},exports.toOutgoingJSONOffer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"outgoing",creators:creators})},exports.toIncomingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"initiator",direction:"incoming",creators:creators})},exports.toOutgoingJSONAnswer=function(sdp,creators){return toJSON.toSessionJSON(sdp,{role:"responder",direction:"outgoing",creators:creators})},exports.toIncomingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONOffer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"outgoing",creator:creator})},exports.toIncomingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"initiator",direction:"incoming",creator:creator})},exports.toOutgoingMediaJSONAnswer=function(sdp,creator){return toJSON.toMediaJSON(sdp,{role:"responder",direction:"outgoing",creator:creator})},exports.toCandidateJSON=toJSON.toCandidateJSON,exports.toMediaJSON=toJSON.toMediaJSON,exports.toSessionJSON=toJSON.toSessionJSON},{"./lib/tojson":171,"./lib/tosdp":172}],169:[function(require,module,exports){exports.lines=function(sdp){return sdp.split("\r\n").filter(function(line){return line.length>0})},exports.findLine=function(prefix,mediaLines,sessionLines){for(var prefixLength=prefix.length,i=0;i<mediaLines.length;i++)if(mediaLines[i].substr(0,prefixLength)===prefix)return mediaLines[i];if(!sessionLines)return!1;for(var j=0;j<sessionLines.length;j++)if(sessionLines[j].substr(0,prefixLength)===prefix)return sessionLines[j];return!1},exports.findLines=function(prefix,mediaLines,sessionLines){for(var results=[],prefixLength=prefix.length,i=0;i<mediaLines.length;i++)mediaLines[i].substr(0,prefixLength)===prefix&&results.push(mediaLines[i]);if(results.length||!sessionLines)return results;for(var j=0;j<sessionLines.length;j++)sessionLines[j].substr(0,prefixLength)===prefix&&results.push(sessionLines[j]);return results},exports.mline=function(line){for(var parts=line.substr(2).split(" "),parsed={media:parts[0],port:parts[1],proto:parts[2],formats:[]},i=3;i<parts.length;i++)parts[i]&&parsed.formats.push(parts[i]);return parsed},exports.rtpmap=function(line){var parts=line.substr(9).split(" "),parsed={id:parts.shift()};return parts=parts[0].split("/"),parsed.name=parts[0],parsed.clockrate=parts[1],parsed.channels=3==parts.length?parts[2]:"1",parsed},exports.sctpmap=function(line){var parts=line.substr(10).split(" "),parsed={number:parts.shift(),protocol:parts.shift(),streams:parts.shift()};return parsed},exports.fmtp=function(line){for(var kv,key,value,parts=line.substr(line.indexOf(" ")+1).split(";"),parsed=[],i=0;i<parts.length;i++)kv=parts[i].split("="),key=kv[0].trim(),value=kv[1],key&&value?parsed.push({key:key,value:value}):key&&parsed.push({key:"",value:key});return parsed},exports.crypto=function(line){var parts=line.substr(9).split(" "),parsed={tag:parts[0],cipherSuite:parts[1],keyParams:parts[2],sessionParams:parts.slice(3).join(" ")};return parsed},exports.fingerprint=function(line){var parts=line.substr(14).split(" ");return{hash:parts[0],value:parts[1]}},exports.extmap=function(line){var parts=line.substr(9).split(" "),parsed={},idpart=parts.shift(),sp=idpart.indexOf("/");return sp>=0?(parsed.id=idpart.substr(0,sp),parsed.senders=idpart.substr(sp+1)):(parsed.id=idpart,parsed.senders="sendrecv"),parsed.uri=parts.shift()||"",parsed},exports.rtcpfb=function(line){var parts=line.substr(10).split(" "),parsed={};return parsed.id=parts.shift(),parsed.type=parts.shift(),"trr-int"===parsed.type?parsed.value=parts.shift():parsed.subtype=parts.shift()||"",parsed.parameters=parts,parsed},exports.candidate=function(line){var parts;parts=0===line.indexOf("a=candidate:")?line.substring(12).split(" "):line.substring(10).split(" ");for(var candidate={foundation:parts[0],component:parts[1],protocol:parts[2].toLowerCase(),priority:parts[3],ip:parts[4],port:parts[5],type:parts[7],generation:"0"},i=8;i<parts.length;i+=2)"raddr"===parts[i]?candidate.relAddr=parts[i+1]:"rport"===parts[i]?candidate.relPort=parts[i+1]:"generation"===parts[i]?candidate.generation=parts[i+1]:"tcptype"===parts[i]&&(candidate.tcpType=parts[i+1]);return candidate.network="1",candidate},exports.sourceGroups=function(lines){for(var parsed=[],i=0;i<lines.length;i++){var parts=lines[i].substr(13).split(" ");parsed.push({semantics:parts.shift(),sources:parts})}return parsed},exports.sources=function(lines){for(var parsed=[],sources={},i=0;i<lines.length;i++){var parts=lines[i].substr(7).split(" "),ssrc=parts.shift();if(!sources[ssrc]){var source={ssrc:ssrc,parameters:[]};parsed.push(source),sources[ssrc]=source}parts=parts.join(" ").split(":");var attribute=parts.shift(),value=parts.join(":")||null;sources[ssrc].parameters.push({key:attribute,value:value})}return parsed},exports.groups=function(lines){for(var parts,parsed=[],i=0;i<lines.length;i++)parts=lines[i].substr(8).split(" "),parsed.push({semantics:parts.shift(),contents:parts});return parsed},exports.bandwidth=function(line){var parts=line.substr(2).split(":"),parsed={};return parsed.type=parts.shift(),parsed.bandwidth=parts.shift(),parsed},exports.msid=function(line){var data=line.substr(7),parts=data.split(" ");return{msid:data,mslabel:parts[0],label:parts[1]}}},{}],170:[function(require,module,exports){module.exports={initiator:{incoming:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"},outgoing:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"}},responder:{incoming:{initiator:"sendonly",responder:"recvonly",both:"sendrecv",none:"inactive",recvonly:"responder",sendonly:"initiator",sendrecv:"both",inactive:"none"},outgoing:{initiator:"recvonly",responder:"sendonly",both:"sendrecv",none:"inactive",recvonly:"initiator",sendonly:"responder",sendrecv:"both",inactive:"none"}}}},{}],171:[function(require,module,exports){var SENDERS=require("./senders"),parsers=require("./parsers"),idCounter=Math.random();exports._setIdCounter=function(counter){idCounter=counter},exports.toSessionJSON=function(sdp,opts){var i,creators=opts.creators||[],role=opts.role||"initiator",direction=opts.direction||"outgoing",media=sdp.split("\r\nm=");for(i=1;i<media.length;i++)media[i]="m="+media[i],i!==media.length-1&&(media[i]+="\r\n");var session=media.shift()+"\r\n",sessionLines=parsers.lines(session),parsed={},contents=[];for(i=0;i<media.length;i++)contents.push(exports.toMediaJSON(media[i],session,{role:role,direction:direction,creator:creators[i]||"initiator"}));parsed.contents=contents;var groupLines=parsers.findLines("a=group:",sessionLines);return groupLines.length&&(parsed.groups=parsers.groups(groupLines)),parsed},exports.toMediaJSON=function(media,session,opts){var creator=opts.creator||"initiator",role=opts.role||"initiator",direction=opts.direction||"outgoing",lines=parsers.lines(media),sessionLines=parsers.lines(session),mline=parsers.mline(lines[0]),content={creator:creator,name:mline.media,application:{applicationType:"rtp",media:mline.media,payloads:[],encryption:[],feedback:[],headerExtensions:[]},transport:{transportType:"iceUdp",candidates:[],fingerprints:[]}};"application"==mline.media&&(content.application={applicationType:"datachannel"},content.transport.sctp=[]);var desc=content.application,trans=content.transport,mid=parsers.findLine("a=mid:",lines);if(mid&&(content.name=mid.substr(6)),parsers.findLine("a=sendrecv",lines,sessionLines)?content.senders="both":parsers.findLine("a=sendonly",lines,sessionLines)?content.senders=SENDERS[role][direction].sendonly:parsers.findLine("a=recvonly",lines,sessionLines)?content.senders=SENDERS[role][direction].recvonly:parsers.findLine("a=inactive",lines,sessionLines)&&(content.senders="none"),"rtp"==desc.applicationType){var bandwidth=parsers.findLine("b=",lines);bandwidth&&(desc.bandwidth=parsers.bandwidth(bandwidth));var ssrc=parsers.findLine("a=ssrc:",lines);ssrc&&(desc.ssrc=ssrc.substr(7).split(" ")[0]);var rtpmapLines=parsers.findLines("a=rtpmap:",lines);rtpmapLines.forEach(function(line){var payload=parsers.rtpmap(line);payload.parameters=[],payload.feedback=[];var fmtpLines=parsers.findLines("a=fmtp:"+payload.id,lines);fmtpLines.forEach(function(line){payload.parameters=parsers.fmtp(line)});var fbLines=parsers.findLines("a=rtcp-fb:"+payload.id,lines);fbLines.forEach(function(line){payload.feedback.push(parsers.rtcpfb(line))}),desc.payloads.push(payload)});var cryptoLines=parsers.findLines("a=crypto:",lines,sessionLines);cryptoLines.forEach(function(line){desc.encryption.push(parsers.crypto(line))}),parsers.findLine("a=rtcp-mux",lines)&&(desc.mux=!0);var fbLines=parsers.findLines("a=rtcp-fb:*",lines);fbLines.forEach(function(line){desc.feedback.push(parsers.rtcpfb(line))});var extLines=parsers.findLines("a=extmap:",lines);extLines.forEach(function(line){var ext=parsers.extmap(line);ext.senders=SENDERS[role][direction][ext.senders],desc.headerExtensions.push(ext)});var ssrcGroupLines=parsers.findLines("a=ssrc-group:",lines);desc.sourceGroups=parsers.sourceGroups(ssrcGroupLines||[]);var ssrcLines=parsers.findLines("a=ssrc:",lines),sources=desc.sources=parsers.sources(ssrcLines||[]),msidLine=parsers.findLine("a=msid:",lines);if(msidLine){var msid=parsers.msid(msidLine);["msid","mslabel","label"].forEach(function(key){for(var i=0;i<sources.length;i++){for(var found=!1,j=0;j<sources[i].parameters.length;j++)sources[i].parameters[j].key===key&&(found=!0);found||sources[i].parameters.push({key:key,value:msid[key]})}})}parsers.findLine("a=x-google-flag:conference",lines,sessionLines)&&(desc.googConferenceFlag=!0)}var fingerprintLines=parsers.findLines("a=fingerprint:",lines,sessionLines),setup=parsers.findLine("a=setup:",lines,sessionLines);fingerprintLines.forEach(function(line){var fp=parsers.fingerprint(line);setup&&(fp.setup=setup.substr(8)),trans.fingerprints.push(fp)});var ufragLine=parsers.findLine("a=ice-ufrag:",lines,sessionLines),pwdLine=parsers.findLine("a=ice-pwd:",lines,sessionLines);if(ufragLine&&pwdLine){trans.ufrag=ufragLine.substr(12),trans.pwd=pwdLine.substr(10),trans.candidates=[];var candidateLines=parsers.findLines("a=candidate:",lines,sessionLines);candidateLines.forEach(function(line){trans.candidates.push(exports.toCandidateJSON(line))})}if("datachannel"==desc.applicationType){var sctpmapLines=parsers.findLines("a=sctpmap:",lines);sctpmapLines.forEach(function(line){var sctp=parsers.sctpmap(line);trans.sctp.push(sctp)})}return content},exports.toCandidateJSON=function(line){var candidate=parsers.candidate(line.split("\r\n")[0]);return candidate.id=(idCounter++).toString(36).substr(0,12),candidate}},{"./parsers":169,"./senders":170}],172:[function(require,module,exports){var SENDERS=require("./senders");exports.toSessionSDP=function(session,opts){var sid=(opts.role||"initiator",opts.direction||"outgoing",opts.sid||session.sid||Date.now()),time=opts.time||Date.now(),sdp=["v=0","o=- "+sid+" "+time+" IN IP4 0.0.0.0","s=-","t=0 0"],contents=session.contents||[],hasSources=!1;contents.forEach(function(content){content.application.sources&&content.application.sources.length&&(hasSources=!0)}),hasSources&&sdp.push("a=msid-semantic: WMS *");var groups=session.groups||[];return groups.forEach(function(group){sdp.push("a=group:"+group.semantics+" "+group.contents.join(" "))}),contents.forEach(function(content){sdp.push(exports.toMediaSDP(content,opts))}),sdp.join("\r\n")+"\r\n"},exports.toMediaSDP=function(content,opts){var sdp=[],role=opts.role||"initiator",direction=opts.direction||"outgoing",desc=content.application,transport=content.transport,payloads=desc.payloads||[],fingerprints=transport&&transport.fingerprints||[],mline=[];if("datachannel"==desc.applicationType?(mline.push("application"),mline.push("1"),mline.push("DTLS/SCTP"),transport.sctp&&transport.sctp.forEach(function(map){mline.push(map.number)})):(mline.push(desc.media),mline.push("1"),fingerprints.length>0?mline.push("UDP/TLS/RTP/SAVPF"):desc.encryption&&desc.encryption.length>0?mline.push("RTP/SAVPF"):mline.push("RTP/AVPF"),payloads.forEach(function(payload){mline.push(payload.id)})),sdp.push("m="+mline.join(" ")),sdp.push("c=IN IP4 0.0.0.0"),desc.bandwidth&&desc.bandwidth.type&&desc.bandwidth.bandwidth&&sdp.push("b="+desc.bandwidth.type+":"+desc.bandwidth.bandwidth),"rtp"==desc.applicationType&&sdp.push("a=rtcp:1 IN IP4 0.0.0.0"),transport){transport.ufrag&&sdp.push("a=ice-ufrag:"+transport.ufrag),
+transport.pwd&&sdp.push("a=ice-pwd:"+transport.pwd);var pushedSetup=!1;fingerprints.forEach(function(fingerprint){sdp.push("a=fingerprint:"+fingerprint.hash+" "+fingerprint.value),fingerprint.setup&&!pushedSetup&&sdp.push("a=setup:"+fingerprint.setup)}),transport.sctp&&transport.sctp.forEach(function(map){sdp.push("a=sctpmap:"+map.number+" "+map.protocol+" "+map.streams)})}"rtp"==desc.applicationType&&sdp.push("a="+(SENDERS[role][direction][content.senders]||"sendrecv")),sdp.push("a=mid:"+content.name),desc.sources&&desc.sources.length&&(desc.sources[0].parameters||[]).forEach(function(param){"msid"===param.key&&sdp.push("a=msid:"+param.value)}),desc.mux&&sdp.push("a=rtcp-mux");var encryption=desc.encryption||[];encryption.forEach(function(crypto){sdp.push("a=crypto:"+crypto.tag+" "+crypto.cipherSuite+" "+crypto.keyParams+(crypto.sessionParams?" "+crypto.sessionParams:""))}),desc.googConferenceFlag&&sdp.push("a=x-google-flag:conference"),payloads.forEach(function(payload){var rtpmap="a=rtpmap:"+payload.id+" "+payload.name+"/"+payload.clockrate;if(payload.channels&&"1"!=payload.channels&&(rtpmap+="/"+payload.channels),sdp.push(rtpmap),payload.parameters&&payload.parameters.length){var fmtp=["a=fmtp:"+payload.id],parameters=[];payload.parameters.forEach(function(param){parameters.push((param.key?param.key+"=":"")+param.value)}),fmtp.push(parameters.join(";")),sdp.push(fmtp.join(" "))}payload.feedback&&payload.feedback.forEach(function(fb){"trr-int"===fb.type?sdp.push("a=rtcp-fb:"+payload.id+" trr-int "+(fb.value?fb.value:"0")):sdp.push("a=rtcp-fb:"+payload.id+" "+fb.type+(fb.subtype?" "+fb.subtype:""))})}),desc.feedback&&desc.feedback.forEach(function(fb){"trr-int"===fb.type?sdp.push("a=rtcp-fb:* trr-int "+(fb.value?fb.value:"0")):sdp.push("a=rtcp-fb:* "+fb.type+(fb.subtype?" "+fb.subtype:""))});var hdrExts=desc.headerExtensions||[];hdrExts.forEach(function(hdr){sdp.push("a=extmap:"+hdr.id+(hdr.senders?"/"+SENDERS[role][direction][hdr.senders]:"")+" "+hdr.uri)});var ssrcGroups=desc.sourceGroups||[];ssrcGroups.forEach(function(ssrcGroup){sdp.push("a=ssrc-group:"+ssrcGroup.semantics+" "+ssrcGroup.sources.join(" "))});var ssrcs=desc.sources||[];ssrcs.forEach(function(ssrc){for(var i=0;i<ssrc.parameters.length;i++){var param=ssrc.parameters[i];sdp.push("a=ssrc:"+(ssrc.ssrc||desc.ssrc)+" "+param.key+(param.value?":"+param.value:""))}});var candidates=transport.candidates||[];return candidates.forEach(function(candidate){sdp.push(exports.toCandidateSDP(candidate))}),sdp.join("\r\n")},exports.toCandidateSDP=function(candidate){var sdp=[];sdp.push(candidate.foundation),sdp.push(candidate.component),sdp.push(candidate.protocol.toUpperCase()),sdp.push(candidate.priority),sdp.push(candidate.ip),sdp.push(candidate.port);var type=candidate.type;return sdp.push("typ"),sdp.push(type),"srflx"!==type&&"prflx"!==type&&"relay"!==type||candidate.relAddr&&candidate.relPort&&(sdp.push("raddr"),sdp.push(candidate.relAddr),sdp.push("rport"),sdp.push(candidate.relPort)),candidate.tcpType&&"TCP"==candidate.protocol.toUpperCase()&&(sdp.push("tcptype"),sdp.push(candidate.tcpType)),sdp.push("generation"),sdp.push(candidate.generation||"0"),"a=candidate:"+sdp.join(" ")}},{"./senders":170}],173:[function(require,module,exports){"use strict";var SDPUtils={};SDPUtils.generateIdentifier=function(){return Math.random().toString(36).substr(2,10)},SDPUtils.localCName=SDPUtils.generateIdentifier(),SDPUtils.splitLines=function(blob){return blob.trim().split("\n").map(function(line){return line.trim()})},SDPUtils.splitSections=function(blob){var parts=blob.split("\nm=");return parts.map(function(part,index){return(index>0?"m="+part:part).trim()+"\r\n"})},SDPUtils.matchPrefix=function(blob,prefix){return SDPUtils.splitLines(blob).filter(function(line){return 0===line.indexOf(prefix)})},SDPUtils.parseCandidate=function(line){var parts;parts=0===line.indexOf("a=candidate:")?line.substring(12).split(" "):line.substring(10).split(" ");for(var candidate={foundation:parts[0],component:parts[1],protocol:parts[2].toLowerCase(),priority:parseInt(parts[3],10),ip:parts[4],port:parseInt(parts[5],10),type:parts[7]},i=8;i<parts.length;i+=2)switch(parts[i]){case"raddr":candidate.relatedAddress=parts[i+1];break;case"rport":candidate.relatedPort=parseInt(parts[i+1],10);break;case"tcptype":candidate.tcpType=parts[i+1]}return candidate},SDPUtils.writeCandidate=function(candidate){var sdp=[];sdp.push(candidate.foundation),sdp.push(candidate.component),sdp.push(candidate.protocol.toUpperCase()),sdp.push(candidate.priority),sdp.push(candidate.ip),sdp.push(candidate.port);var type=candidate.type;return sdp.push("typ"),sdp.push(type),"host"!==type&&candidate.relatedAddress&&candidate.relatedPort&&(sdp.push("raddr"),sdp.push(candidate.relatedAddress),sdp.push("rport"),sdp.push(candidate.relatedPort)),candidate.tcpType&&"tcp"===candidate.protocol.toLowerCase()&&(sdp.push("tcptype"),sdp.push(candidate.tcpType)),"candidate:"+sdp.join(" ")},SDPUtils.parseRtpMap=function(line){var parts=line.substr(9).split(" "),parsed={payloadType:parseInt(parts.shift(),10)};return parts=parts[0].split("/"),parsed.name=parts[0],parsed.clockRate=parseInt(parts[1],10),parsed.numChannels=3===parts.length?parseInt(parts[2],10):1,parsed},SDPUtils.writeRtpMap=function(codec){var pt=codec.payloadType;return void 0!==codec.preferredPayloadType&&(pt=codec.preferredPayloadType),"a=rtpmap:"+pt+" "+codec.name+"/"+codec.clockRate+(1!==codec.numChannels?"/"+codec.numChannels:"")+"\r\n"},SDPUtils.parseExtmap=function(line){var parts=line.substr(9).split(" ");return{id:parseInt(parts[0],10),uri:parts[1]}},SDPUtils.writeExtmap=function(headerExtension){return"a=extmap:"+(headerExtension.id||headerExtension.preferredId)+" "+headerExtension.uri+"\r\n"},SDPUtils.parseFmtp=function(line){for(var kv,parsed={},parts=line.substr(line.indexOf(" ")+1).split(";"),j=0;j<parts.length;j++)kv=parts[j].trim().split("="),parsed[kv[0].trim()]=kv[1];return parsed},SDPUtils.writeFmtp=function(codec){var line="",pt=codec.payloadType;if(void 0!==codec.preferredPayloadType&&(pt=codec.preferredPayloadType),codec.parameters&&Object.keys(codec.parameters).length){var params=[];Object.keys(codec.parameters).forEach(function(param){params.push(param+"="+codec.parameters[param])}),line+="a=fmtp:"+pt+" "+params.join(";")+"\r\n"}return line},SDPUtils.parseRtcpFb=function(line){var parts=line.substr(line.indexOf(" ")+1).split(" ");return{type:parts.shift(),parameter:parts.join(" ")}},SDPUtils.writeRtcpFb=function(codec){var lines="",pt=codec.payloadType;return void 0!==codec.preferredPayloadType&&(pt=codec.preferredPayloadType),codec.rtcpFeedback&&codec.rtcpFeedback.length&&codec.rtcpFeedback.forEach(function(fb){lines+="a=rtcp-fb:"+pt+" "+fb.type+(fb.parameter&&fb.parameter.length?" "+fb.parameter:"")+"\r\n"}),lines},SDPUtils.parseSsrcMedia=function(line){var sp=line.indexOf(" "),parts={ssrc:parseInt(line.substr(7,sp-7),10)},colon=line.indexOf(":",sp);return colon>-1?(parts.attribute=line.substr(sp+1,colon-sp-1),parts.value=line.substr(colon+1)):parts.attribute=line.substr(sp+1),parts},SDPUtils.getDtlsParameters=function(mediaSection,sessionpart){var lines=SDPUtils.splitLines(mediaSection);lines=lines.concat(SDPUtils.splitLines(sessionpart));var fpLine=lines.filter(function(line){return 0===line.indexOf("a=fingerprint:")})[0].substr(14),dtlsParameters={role:"auto",fingerprints:[{algorithm:fpLine.split(" ")[0],value:fpLine.split(" ")[1]}]};return dtlsParameters},SDPUtils.writeDtlsParameters=function(params,setupType){var sdp="a=setup:"+setupType+"\r\n";return params.fingerprints.forEach(function(fp){sdp+="a=fingerprint:"+fp.algorithm+" "+fp.value+"\r\n"}),sdp},SDPUtils.getIceParameters=function(mediaSection,sessionpart){var lines=SDPUtils.splitLines(mediaSection);lines=lines.concat(SDPUtils.splitLines(sessionpart));var iceParameters={usernameFragment:lines.filter(function(line){return 0===line.indexOf("a=ice-ufrag:")})[0].substr(12),password:lines.filter(function(line){return 0===line.indexOf("a=ice-pwd:")})[0].substr(10)};return iceParameters},SDPUtils.writeIceParameters=function(params){return"a=ice-ufrag:"+params.usernameFragment+"\r\na=ice-pwd:"+params.password+"\r\n"},SDPUtils.parseRtpParameters=function(mediaSection){for(var description={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},lines=SDPUtils.splitLines(mediaSection),mline=lines[0].split(" "),i=3;i<mline.length;i++){var pt=mline[i],rtpmapline=SDPUtils.matchPrefix(mediaSection,"a=rtpmap:"+pt+" ")[0];if(rtpmapline){var codec=SDPUtils.parseRtpMap(rtpmapline),fmtps=SDPUtils.matchPrefix(mediaSection,"a=fmtp:"+pt+" ");switch(codec.parameters=fmtps.length?SDPUtils.parseFmtp(fmtps[0]):{},codec.rtcpFeedback=SDPUtils.matchPrefix(mediaSection,"a=rtcp-fb:"+pt+" ").map(SDPUtils.parseRtcpFb),description.codecs.push(codec),codec.name.toUpperCase()){case"RED":case"ULPFEC":description.fecMechanisms.push(codec.name.toUpperCase())}}}return SDPUtils.matchPrefix(mediaSection,"a=extmap:").forEach(function(line){description.headerExtensions.push(SDPUtils.parseExtmap(line))}),description},SDPUtils.writeRtpDescription=function(kind,caps){var sdp="";return sdp+="m="+kind+" ",sdp+=caps.codecs.length>0?"9":"0",sdp+=" UDP/TLS/RTP/SAVPF ",sdp+=caps.codecs.map(function(codec){return void 0!==codec.preferredPayloadType?codec.preferredPayloadType:codec.payloadType}).join(" ")+"\r\n",sdp+="c=IN IP4 0.0.0.0\r\n",sdp+="a=rtcp:9 IN IP4 0.0.0.0\r\n",caps.codecs.forEach(function(codec){sdp+=SDPUtils.writeRtpMap(codec),sdp+=SDPUtils.writeFmtp(codec),sdp+=SDPUtils.writeRtcpFb(codec)}),sdp+="a=rtcp-mux\r\n"},SDPUtils.parseRtpEncodingParameters=function(mediaSection){var secondarySsrc,encodingParameters=[],description=SDPUtils.parseRtpParameters(mediaSection),hasRed=description.fecMechanisms.indexOf("RED")!==-1,hasUlpfec=description.fecMechanisms.indexOf("ULPFEC")!==-1,ssrcs=SDPUtils.matchPrefix(mediaSection,"a=ssrc:").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(parts){return"cname"===parts.attribute}),primarySsrc=ssrcs.length>0&&ssrcs[0].ssrc,flows=SDPUtils.matchPrefix(mediaSection,"a=ssrc-group:FID").map(function(line){var parts=line.split(" ");return parts.shift(),parts.map(function(part){return parseInt(part,10)})});flows.length>0&&flows[0].length>1&&flows[0][0]===primarySsrc&&(secondarySsrc=flows[0][1]),description.codecs.forEach(function(codec){if("RTX"===codec.name.toUpperCase()&&codec.parameters.apt){var encParam={ssrc:primarySsrc,codecPayloadType:parseInt(codec.parameters.apt,10),rtx:{payloadType:codec.payloadType,ssrc:secondarySsrc}};encodingParameters.push(encParam),hasRed&&(encParam=JSON.parse(JSON.stringify(encParam)),encParam.fec={ssrc:secondarySsrc,mechanism:hasUlpfec?"red+ulpfec":"red"},encodingParameters.push(encParam))}}),0===encodingParameters.length&&primarySsrc&&encodingParameters.push({ssrc:primarySsrc});var bandwidth=SDPUtils.matchPrefix(mediaSection,"b=");return bandwidth.length&&(0===bandwidth[0].indexOf("b=TIAS:")?bandwidth=parseInt(bandwidth[0].substr(7),10):0===bandwidth[0].indexOf("b=AS:")&&(bandwidth=parseInt(bandwidth[0].substr(5),10)),encodingParameters.forEach(function(params){params.maxBitrate=bandwidth})),encodingParameters},SDPUtils.writeSessionBoilerplate=function(){return"v=0\r\no=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},SDPUtils.writeMediaSection=function(transceiver,caps,type,stream){var sdp=SDPUtils.writeRtpDescription(transceiver.kind,caps);if(sdp+=SDPUtils.writeIceParameters(transceiver.iceGatherer.getLocalParameters()),sdp+=SDPUtils.writeDtlsParameters(transceiver.dtlsTransport.getLocalParameters(),"offer"===type?"actpass":"active"),sdp+="a=mid:"+transceiver.mid+"\r\n",sdp+=transceiver.rtpSender&&transceiver.rtpReceiver?"a=sendrecv\r\n":transceiver.rtpSender?"a=sendonly\r\n":transceiver.rtpReceiver?"a=recvonly\r\n":"a=inactive\r\n",transceiver.rtpSender){var msid="msid:"+stream.id+" "+transceiver.rtpSender.track.id+"\r\n";sdp+="a="+msid,sdp+="a=ssrc:"+transceiver.sendEncodingParameters[0].ssrc+" "+msid}return sdp+="a=ssrc:"+transceiver.sendEncodingParameters[0].ssrc+" cname:"+SDPUtils.localCName+"\r\n"},SDPUtils.getDirection=function(mediaSection,sessionpart){for(var lines=SDPUtils.splitLines(mediaSection),i=0;i<lines.length;i++)switch(lines[i]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return lines[i].substr(2)}return sessionpart?SDPUtils.getDirection(sessionpart):"sendrecv"},module.exports=SDPUtils},{}],174:[function(require,module,exports){(function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0,this._s=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=new Buffer(data,enc));for(var l=this._len+=data.length,s=this._s||0,f=0,buffer=this._block;s<l;){for(var t=Math.min(data.length,f+this._blockSize-s%this._blockSize),ch=t-f,i=0;i<ch;i++)buffer[s%this._blockSize+i]=data[i+f];s+=ch,f+=ch,s%this._blockSize===0&&this._update(buffer)}return this._s=s,this},Hash.prototype.digest=function(enc){var l=8*this._len;this._block[this._len%this._blockSize]=128,this._block.fill(0,this._len%this._blockSize+1),l%(8*this._blockSize)>=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(l,this._blockSize-4);var hash=this._update(this._block)||this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash}).call(this,require("buffer").Buffer)},{buffer:6}],175:[function(require,module,exports){var exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":176,"./sha1":177,"./sha224":178,"./sha256":179,"./sha384":180,"./sha512":181}],176:[function(require,module,exports){(function(Buffer){function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}var inherits=require("inherits"),Hash=require("./hash"),K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;j<80;++j){var s=~~(j/20),t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha}).call(this,require("buffer").Buffer)},{"./hash":174,buffer:6,inherits:45}],177:[function(require,module,exports){(function(Buffer){function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl1(num){return num<<1|num>>>31}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}var inherits=require("inherits"),Hash=require("./hash"),K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=rotl1(W[i-3]^W[i-8]^W[i-14]^W[i-16]);for(var j=0;j<80;++j){var s=~~(j/20),t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=new Buffer(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1}).call(this,require("buffer").Buffer)},{"./hash":174,buffer:6,inherits:45}],178:[function(require,module,exports){(function(Buffer){function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),W=new Array(64);inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var H=new Buffer(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224}).call(this,require("buffer").Buffer)},{"./hash":174,"./sha256":179,buffer:6,inherits:45}],179:[function(require,module,exports){(function(Buffer){function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function gamma1(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<64;++i)W[i]=gamma1(W[i-2])+W[i-7]+gamma0(W[i-15])+W[i-16]|0;for(var j=0;j<64;++j){var T1=h+sigma1(e)+ch(e,f,g)+K[j]+W[j]|0,T2=sigma0(a)+maj(a,b,c)|0;h=g,g=f,f=e,e=d+T1|0,d=c,c=b,b=a,a=T1+T2|0}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=new Buffer(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256}).call(this,require("buffer").Buffer)},{"./hash":174,buffer:6,inherits:45}],180:[function(require,module,exports){(function(Buffer){function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),W=new Array(160);inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(48);return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),H},module.exports=Sha384}).call(this,require("buffer").Buffer)},{"./hash":174,"./sha512":181,buffer:6,inherits:45}],181:[function(require,module,exports){(function(Buffer){function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0<b>>>0?1:0}var inherits=require("inherits"),Hash=require("./hash"),K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(M){for(var W=this._w,ah=0|this._ah,bh=0|this._bh,ch=0|this._ch,dh=0|this._dh,eh=0|this._eh,fh=0|this._fh,gh=0|this._gh,hh=0|this._hh,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0;i<32;i+=2)W[i]=M.readInt32BE(4*i),W[i+1]=M.readInt32BE(4*i+4);for(;i<160;i+=2){var xh=W[i-30],xl=W[i-30+1],gamma0=Gamma0(xh,xl),gamma0l=Gamma0l(xl,xh);xh=W[i-4],xl=W[i-4+1];var gamma1=Gamma1(xh,xl),gamma1l=Gamma1l(xl,xh),Wi7h=W[i-14],Wi7l=W[i-14+1],Wi16h=W[i-32],Wi16l=W[i-32+1],Wil=gamma0l+Wi7l|0,Wih=gamma0+Wi7h+getCarry(Wil,gamma0l)|0;Wil=Wil+gamma1l|0,Wih=Wih+gamma1+getCarry(Wil,gamma1l)|0,Wil=Wil+Wi16l|0,Wih=Wih+Wi16h+getCarry(Wil,Wi16l)|0,W[i]=Wih,W[i+1]=Wil}for(var j=0;j<160;j+=2){Wih=W[j],Wil=W[j+1];var majh=maj(ah,bh,ch),majl=maj(al,bl,cl),sigma0h=sigma0(ah,al),sigma0l=sigma0(al,ah),sigma1h=sigma1(eh,el),sigma1l=sigma1(el,eh),Kih=K[j],Kil=K[j+1],chh=Ch(eh,fh,gh),chl=Ch(el,fl,gl),t1l=hl+sigma1l|0,t1h=hh+sigma1h+getCarry(t1l,hl)|0;t1l=t1l+chl|0,t1h=t1h+chh+getCarry(t1l,chl)|0,t1l=t1l+Kil|0,t1h=t1h+Kih+getCarry(t1l,Kil)|0,t1l=t1l+Wil|0,t1h=t1h+Wih+getCarry(t1l,Wil)|0;var t2l=sigma0l+majl|0,t2h=sigma0h+majh+getCarry(t2l,sigma0l)|0;hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,el=dl+t1l|0,eh=dh+t1h+getCarry(el,dl)|0,dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,al=t1l+t2l|0,ah=t1h+t2h+getCarry(al,t1l)|0}this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._ah=this._ah+ah+getCarry(this._al,al)|0,this._bh=this._bh+bh+getCarry(this._bl,bl)|0,this._ch=this._ch+ch+getCarry(this._cl,cl)|0,this._dh=this._dh+dh+getCarry(this._dl,dl)|0,this._eh=this._eh+eh+getCarry(this._el,el)|0,this._fh=this._fh+fh+getCarry(this._fl,fl)|0,this._gh=this._gh+gh+getCarry(this._gl,gl)|0,this._hh=this._hh+hh+getCarry(this._hl,hl)|0},Sha512.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=new Buffer(64);return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),H},module.exports=Sha512}).call(this,require("buffer").Buffer)},{"./hash":174,buffer:6,inherits:45}],182:[function(require,module,exports){function Stream(){EE.call(this)}module.exports=Stream;var EE=require("events").EventEmitter,inherits=require("inherits");inherits(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}var source=this;source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&options.end===!1||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:27,inherits:45,"readable-stream/duplex.js":155,"readable-stream/passthrough.js":162,"readable-stream/readable.js":163,"readable-stream/transform.js":164,"readable-stream/writable.js":165}],183:[function(require,module,exports){function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding))throw new Error("Unknown encoding: "+encoding)}function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3,this.charLength=this.charReceived?3:0}var Buffer=require("buffer").Buffer,isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},StringDecoder=exports.StringDecoder=function(encoding){switch(this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(encoding),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:return void(this.write=passThroughWrite)}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0};StringDecoder.prototype.write=function(buffer){for(var charStr="";this.charLength;){var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;if(buffer.copy(this.charBuffer,this.charReceived,0,available),this.charReceived+=available,this.charReceived<this.charLength)return"";buffer=buffer.slice(available,buffer.length),charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(!(charCode>=55296&&charCode<=56319)){if(this.charReceived=this.charLength=0,0===buffer.length)return charStr;break}this.charLength+=this.surrogateSize,charStr=""}this.detectIncompleteChar(buffer);var end=buffer.length;this.charLength&&(buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end),end-=this.charReceived),charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1,charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;return this.charLength+=size,this.charReceived+=size,this.charBuffer.copy(this.charBuffer,size,0,size),buffer.copy(this.charBuffer,0,0,size),charStr.substring(0,end)}return charStr},StringDecoder.prototype.detectIncompleteChar=function(buffer){for(var i=buffer.length>=3?3:buffer.length;i>0;i--){var c=buffer[buffer.length-i];if(1==i&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i},StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length&&(res=this.write(buffer)),this.charReceived){var cr=this.charReceived,buf=this.charBuffer,enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res}},{buffer:6}],184:[function(require,module,exports){function dumpSDP(description){return{type:description.type,sdp:description.sdp}}function dumpStream(stream){var info={label:stream.id};return stream.getAudioTracks().length&&(info.audio=stream.getAudioTracks().map(function(track){return track.id})),stream.getVideoTracks().length&&(info.video=stream.getVideoTracks().map(function(track){return track.id})),info}function TraceablePeerConnection(config,constraints){var self=this;WildEmitter.call(this),this.peerconnection=new window.RTCPeerConnection(config,constraints),this.trace=function(what,info){self.emit("PeerConnectionTrace",{time:new Date,type:what,value:info||""})},this.onicecandidate=null,this.peerconnection.onicecandidate=function(event){self.trace("onicecandidate",event.candidate),null!==self.onicecandidate&&self.onicecandidate(event)},this.onaddstream=null,this.peerconnection.onaddstream=function(event){self.trace("onaddstream",dumpStream(event.stream)),null!==self.onaddstream&&self.onaddstream(event);
+},this.onremovestream=null,this.peerconnection.onremovestream=function(event){self.trace("onremovestream",dumpStream(event.stream)),null!==self.onremovestream&&self.onremovestream(event)},this.onsignalingstatechange=null,this.peerconnection.onsignalingstatechange=function(event){self.trace("onsignalingstatechange",self.signalingState),null!==self.onsignalingstatechange&&self.onsignalingstatechange(event)},this.oniceconnectionstatechange=null,this.peerconnection.oniceconnectionstatechange=function(event){self.trace("oniceconnectionstatechange",self.iceConnectionState),null!==self.oniceconnectionstatechange&&self.oniceconnectionstatechange(event)},this.onnegotiationneeded=null,this.peerconnection.onnegotiationneeded=function(event){self.trace("onnegotiationneeded"),null!==self.onnegotiationneeded&&self.onnegotiationneeded(event)},self.ondatachannel=null,this.peerconnection.ondatachannel=function(event){self.trace("ondatachannel",event),null!==self.ondatachannel&&self.ondatachannel(event)},this.getLocalStreams=this.peerconnection.getLocalStreams.bind(this.peerconnection),this.getRemoteStreams=this.peerconnection.getRemoteStreams.bind(this.peerconnection)}var util=require("util"),WildEmitter=(require("webrtc-adapter"),require("wildemitter"));util.inherits(TraceablePeerConnection,WildEmitter),["signalingState","iceConnectionState","localDescription","remoteDescription"].forEach(function(prop){Object.defineProperty(TraceablePeerConnection.prototype,prop,{get:function(){return this.peerconnection[prop]}})}),TraceablePeerConnection.prototype.addStream=function(stream){this.trace("addStream",dumpStream(stream)),this.peerconnection.addStream(stream)},TraceablePeerConnection.prototype.removeStream=function(stream){this.trace("removeStream",dumpStream(stream)),this.peerconnection.removeStream(stream)},TraceablePeerConnection.prototype.createDataChannel=function(label,opts){return this.trace("createDataChannel",label,opts),this.peerconnection.createDataChannel(label,opts)},TraceablePeerConnection.prototype.setLocalDescription=function(description,successCallback,failureCallback){var self=this;return this.trace("setLocalDescription",dumpSDP(description)),this.peerconnection.setLocalDescription(description).then(function(){self.trace("setLocalDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setLocalDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.setRemoteDescription=function(description,successCallback,failureCallback){var self=this;return this.trace("setRemoteDescription",dumpSDP(description)),this.peerconnection.setRemoteDescription(description).then(function(){self.trace("setRemoteDescriptionOnSuccess"),successCallback&&successCallback()},function(err){self.trace("setRemoteDescriptionOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.close=function(){this.trace("stop"),"closed"!=this.peerconnection.signalingState&&this.peerconnection.close()},TraceablePeerConnection.prototype.createOffer=function(successCallback,failureCallback,constraints){var self=this;return this.trace("createOffer",constraints),this.peerconnection.createOffer(constraints).then(function(offer){self.trace("createOfferOnSuccess",dumpSDP(offer)),successCallback&&successCallback(offer)},function(err){self.trace("createOfferOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.createAnswer=function(successCallback,failureCallback,constraints){var self=this;return this.trace("createAnswer",constraints),this.peerconnection.createAnswer(constraints).then(function(answer){self.trace("createAnswerOnSuccess",dumpSDP(answer)),successCallback&&successCallback(answer)},function(err){self.trace("createAnswerOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.addIceCandidate=function(candidate,successCallback,failureCallback){var self=this;return this.trace("addIceCandidate",candidate),this.peerconnection.addIceCandidate(candidate).then(function(){successCallback&&successCallback()},function(err){self.trace("addIceCandidateOnFailure",err),failureCallback&&failureCallback(err)})},TraceablePeerConnection.prototype.getStats=function(){this.peerconnection.getStats.apply(this.peerconnection,arguments)},module.exports=TraceablePeerConnection},{util:197,"webrtc-adapter":185,wildemitter:211}],185:[function(require,module,exports){arguments[4][33][0].apply(exports,arguments)},{"./chrome/chrome_shim":186,"./edge/edge_shim":188,"./firefox/firefox_shim":190,"./safari/safari_shim":192,"./utils":193,dup:33}],186:[function(require,module,exports){arguments[4][34][0].apply(exports,arguments)},{"../utils.js":193,"./getusermedia":187,dup:34}],187:[function(require,module,exports){arguments[4][35][0].apply(exports,arguments)},{"../utils.js":193,dup:35}],188:[function(require,module,exports){arguments[4][36][0].apply(exports,arguments)},{"../utils":193,"./getusermedia":189,dup:36,sdp:173}],189:[function(require,module,exports){arguments[4][37][0].apply(exports,arguments)},{dup:37}],190:[function(require,module,exports){arguments[4][38][0].apply(exports,arguments)},{"../utils":193,"./getusermedia":191,dup:38}],191:[function(require,module,exports){arguments[4][39][0].apply(exports,arguments)},{"../utils":193,dup:39}],192:[function(require,module,exports){arguments[4][40][0].apply(exports,arguments)},{dup:40}],193:[function(require,module,exports){arguments[4][41][0].apply(exports,arguments)},{dup:41}],194:[function(require,module,exports){(function(global){function deprecate(fn,msg){function deprecated(){if(!warned){if(config("throwDeprecation"))throw new Error(msg);config("traceDeprecation")?console.trace(msg):console.warn(msg),warned=!0}return fn.apply(this,arguments)}if(config("noDeprecation"))return fn;var warned=!1;return deprecated}function config(name){try{if(!global.localStorage)return!1}catch(_){return!1}var val=global.localStorage[name];return null!=val&&"true"===String(val).toLowerCase()}module.exports=deprecate}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],195:[function(require,module,exports){arguments[4][45][0].apply(exports,arguments)},{dup:45}],196:[function(require,module,exports){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],197:[function(require,module,exports){(function(process,global){function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(recurseTimes<0)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;i<l;++i)hasOwnProperty(value,String(i))?output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),!0)):output.push("");return keys.forEach(function(key){key.match(/^\d+$/)||output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,!0))}),output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;if(desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]},desc.get?str=desc.set?ctx.stylize("[Getter/Setter]","special"):ctx.stylize("[Getter]","special"):desc.set&&(str=ctx.stylize("[Setter]","special")),hasOwnProperty(visibleKeys,key)||(name="["+key+"]"),str||(ctx.seen.indexOf(desc.value)<0?(str=isNull(recurseTimes)?formatValue(ctx,desc.value,null):formatValue(ctx,desc.value,recurseTimes-1),str.indexOf("\n")>-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);return length>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return"boolean"==typeof arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}function isNumber(arg){return"number"==typeof arg}function isString(arg){return"string"==typeof arg}function isSymbol(arg){return"symbol"==typeof arg}function isUndefined(arg){return void 0===arg}function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}function isObject(arg){return"object"==typeof arg&&null!==arg}function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(arg){return"function"==typeof arg}function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||"undefined"==typeof arg}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i<arguments.length;i++)objects.push(inspect(arguments[i]));return objects.join(" ")}for(var i=1,args=arguments,len=args.length,str=String(f).replace(formatRegExp,function(x){if("%%"===x)return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];i<len;x=args[++i])str+=isNull(x)||!isObject(x)?" "+x:" "+inspect(x);return str},exports.deprecate=function(fn,msg){function deprecated(){if(!warned){if(process.throwDeprecation)throw new Error(msg);process.traceDeprecation?console.trace(msg):console.error(msg),warned=!0}return fn.apply(this,arguments)}if(isUndefined(global.process))return function(){return exports.deprecate(fn,msg).apply(this,arguments)};if(process.noDeprecation===!0)return fn;var warned=!1;return deprecated};var debugEnviron,debugs={};exports.debuglog=function(set){if(isUndefined(debugEnviron)&&(debugEnviron=process.env.NODE_DEBUG||""),set=set.toUpperCase(),!debugs[set])if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else debugs[set]=function(){};return debugs[set]},exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},exports.isArray=isArray,exports.isBoolean=isBoolean,exports.isNull=isNull,exports.isNullOrUndefined=isNullOrUndefined,exports.isNumber=isNumber,exports.isString=isString,exports.isSymbol=isSymbol,exports.isUndefined=isUndefined,exports.isRegExp=isRegExp,exports.isObject=isObject,exports.isDate=isDate,exports.isError=isError,exports.isFunction=isFunction,exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":196,_process:153,inherits:195}],198:[function(require,module,exports){(function(global){var rng,crypto=global.crypto||global.msCrypto;if(crypto&&crypto.getRandomValues){var _rnds8=new Uint8Array(16);rng=function(){return crypto.getRandomValues(_rnds8),_rnds8}}if(!rng){var _rnds=new Array(16);rng=function(){for(var r,i=0;i<16;i++)0===(3&i)&&(r=4294967296*Math.random()),_rnds[i]=r>>>((3&i)<<3)&255;return _rnds}}module.exports=rng}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],199:[function(require,module,exports){function parse(s,buf,offset){var i=buf&&offset||0,ii=0;for(buf=buf||[],s.toLowerCase().replace(/[0-9a-f]{2}/g,function(oct){ii<16&&(buf[i+ii++]=_hexToByte[oct])});ii<16;)buf[i+ii++]=0;return buf}function unparse(buf,offset){var i=offset||0,bth=_byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}function v1(options,buf,offset){var i=buf&&offset||0,b=buf||[];options=options||{};var clockseq=void 0!==options.clockseq?options.clockseq:_clockseq,msecs=void 0!==options.msecs?options.msecs:(new Date).getTime(),nsecs=void 0!==options.nsecs?options.nsecs:_lastNSecs+1,dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&void 0===options.clockseq&&(clockseq=clockseq+1&16383),(dt<0||msecs>_lastMSecs)&&void 0===options.nsecs&&(nsecs=0),nsecs>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=msecs,_lastNSecs=nsecs,_clockseq=clockseq,msecs+=122192928e5;var tl=(1e4*(268435455&msecs)+nsecs)%4294967296;b[i++]=tl>>>24&255,b[i++]=tl>>>16&255,b[i++]=tl>>>8&255,b[i++]=255&tl;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255,b[i++]=255&tmh,b[i++]=tmh>>>24&15|16,b[i++]=tmh>>>16&255,b[i++]=clockseq>>>8|128,b[i++]=255&clockseq;for(var node=options.node||_nodeId,n=0;n<6;n++)b[i+n]=node[n];return buf?buf:unparse(b)}function v4(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"==options?new Array(16):null,options=null),options=options||{};var rnds=options.random||(options.rng||_rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;ii<16;ii++)buf[i+ii]=rnds[ii];return buf||unparse(rnds)}for(var _rng=require("./rng"),_byteToHex=[],_hexToByte={},i=0;i<256;i++)_byteToHex[i]=(i+256).toString(16).substr(1),_hexToByte[_byteToHex[i]]=i;var _seedBytes=_rng(),_nodeId=[1|_seedBytes[0],_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]],_clockseq=16383&(_seedBytes[6]<<8|_seedBytes[7]),_lastMSecs=0,_lastNSecs=0,uuid=v4;uuid.v1=v1,uuid.v4=v4,uuid.parse=parse,uuid.unparse=unparse,module.exports=uuid},{"./rng":198}],200:[function(require,module,exports){"use strict";function requestUserMedia(constraints){return new Promise(function(resolve,reject){getUserMedia(constraints,resolve,reject)})}var getUserMedia=null,attachMediaStream=null,reattachMediaStream=null,webrtcDetectedBrowser=null,webrtcDetectedVersion=null,webrtcMinimumVersion=null,webrtcUtils={log:function(){"undefined"!=typeof module||"function"==typeof require&&"function"==typeof define||console.log.apply(console,arguments)},extractVersion:function(uastring,expr,pos){var match=uastring.match(expr);return match&&match.length>=pos&&parseInt(match[pos],10)}};if("object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return"mozSrcObject"in this?this.mozSrcObject:this._srcObject},set:function(stream){"mozSrcObject"in this?this.mozSrcObject=stream:(this._srcObject=stream,this.src=URL.createObjectURL(stream))}}),getUserMedia=window.navigator&&window.navigator.getUserMedia),attachMediaStream=function(element,stream){element.srcObject=stream},reattachMediaStream=function(to,from){to.srcObject=from.srcObject},"undefined"!=typeof window&&window.navigator)if(navigator.mozGetUserMedia){if(webrtcUtils.log("This appears to be Firefox"),webrtcDetectedBrowser="firefox",webrtcDetectedVersion=webrtcUtils.extractVersion(navigator.userAgent,/Firefox\/([0-9]+)\./,1),webrtcMinimumVersion=31,window.RTCPeerConnection||(window.RTCPeerConnection=function(pcConfig,pcConstraints){if(webrtcDetectedVersion<38&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCPeerConnection.prototype=mozRTCPeerConnection.prototype,mozRTCPeerConnection.generateCertificate&&Object.defineProperty(window.RTCPeerConnection,"generateCertificate",{get:function(){return arguments.length?mozRTCPeerConnection.generateCertificate.apply(null,arguments):mozRTCPeerConnection.generateCertificate}}),window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate),getUserMedia=function(constraints,onSuccess,onError){var constraintsToFF37=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if(void 0===r.min&&void 0===r.max&&void 0===r.exact||require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};"number"==typeof r.ideal?oc[key]={min:r.ideal,max:r.ideal}:oc[key]=r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return webrtcDetectedVersion<38&&(webrtcUtils.log("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37(constraints.video)),webrtcUtils.log("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},webrtcDetectedVersion<41){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices().then(void 0,function(e){if("NotFoundError"===e.name)return[];throw e})}}}else if(navigator.webkitGetUserMedia&&window.webkitRTCPeerConnection){webrtcUtils.log("This appears to be Chrome"),webrtcDetectedBrowser="chrome",webrtcDetectedVersion=webrtcUtils.extractVersion(navigator.userAgent,/Chrom(e|ium)\/([0-9]+)\./,2),webrtcMinimumVersion=38,window.RTCPeerConnection=function(pcConfig,pcConstraints){pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback,errorCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport};if(arguments.length>=2){var successCallbackWrapper=function(response){args[1](fixChromeStats(response))};return origGetStats.apply(this,[successCallbackWrapper,arguments[0]])}return new Promise(function(resolve,reject){1===args.length&&null===selector?origGetStats.apply(self,[function(response){resolve.apply(null,[fixChromeStats(response)])},reject]):origGetStats.apply(self,[resolve,reject])})},pc},window.RTCPeerConnection.prototype=webkitRTCPeerConnection.prototype,webkitRTCPeerConnection.generateCertificate&&Object.defineProperty(window.RTCPeerConnection,"generateCertificate",{get:function(){return arguments.length?webkitRTCPeerConnection.generateCertificate.apply(null,arguments):webkitRTCPeerConnection.generateCertificate}}),["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this;return new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],function(){resolve(),args.length>=2&&args[1].apply(null,[])},function(err){reject(err),args.length>=3&&args[2].apply(null,[err])}])})}});var constraintsToChrome=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc};if(getUserMedia=function(constraints,onSuccess,onError){return constraints.audio&&(constraints.audio=constraintsToChrome(constraints.audio)),constraints.video&&(constraints.video=constraintsToChrome(constraints.video)),webrtcUtils.log("chrome: "+JSON.stringify(constraints)),navigator.webkitGetUserMedia(constraints,onSuccess,onError)},navigator.getUserMedia=getUserMedia,navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:requestUserMedia,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return webrtcUtils.log("spec: "+JSON.stringify(c)),c.audio=constraintsToChrome(c.audio),c.video=constraintsToChrome(c.video),webrtcUtils.log("chrome: "+JSON.stringify(c)),origGetUserMedia(c)}}else navigator.mediaDevices.getUserMedia=function(constraints){return requestUserMedia(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){webrtcUtils.log("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){webrtcUtils.log("Dummy mediaDevices.removeEventListener called.")}),attachMediaStream=function(element,stream){webrtcDetectedVersion>=43?element.srcObject=stream:"undefined"!=typeof element.src?element.src=URL.createObjectURL(stream):webrtcUtils.log("Error attaching stream to element.")},reattachMediaStream=function(to,from){webrtcDetectedVersion>=43?to.srcObject=from.srcObject:to.src=from.src}}else if(navigator.mediaDevices&&navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)){if(webrtcUtils.log("This appears to be Edge"),webrtcDetectedBrowser="edge",webrtcDetectedVersion=webrtcUtils.extractVersion(navigator.userAgent,/Edge\/(\d+).(\d+)$/,2),webrtcMinimumVersion=10547,window.RTCIceGatherer){var generateIdentifier=function(){return Math.random().toString(36).substr(2,10)},localCName=generateIdentifier(),SDPUtils={};SDPUtils.splitLines=function(blob){return blob.trim().split("\n").map(function(line){return line.trim()})},SDPUtils.splitSections=function(blob){var parts=blob.split("\r\nm=");return parts.map(function(part,index){return(index>0?"m="+part:part).trim()+"\r\n"})},SDPUtils.matchPrefix=function(blob,prefix){return SDPUtils.splitLines(blob).filter(function(line){return 0===line.indexOf(prefix)})},SDPUtils.parseCandidate=function(line){var parts;parts=0===line.indexOf("a=candidate:")?line.substring(12).split(" "):line.substring(10).split(" ");for(var candidate={foundation:parts[0],component:parts[1],protocol:parts[2].toLowerCase(),priority:parseInt(parts[3],10),ip:parts[4],port:parseInt(parts[5],10),type:parts[7]},i=8;i<parts.length;i+=2)switch(parts[i]){case"raddr":candidate.relatedAddress=parts[i+1];break;case"rport":candidate.relatedPort=parseInt(parts[i+1],10);break;case"tcptype":candidate.tcpType=parts[i+1]}return candidate},SDPUtils.writeCandidate=function(candidate){var sdp=[];sdp.push(candidate.foundation),sdp.push(candidate.component),sdp.push(candidate.protocol.toUpperCase()),sdp.push(candidate.priority),sdp.push(candidate.ip),sdp.push(candidate.port);var type=candidate.type;return sdp.push("typ"),sdp.push(type),"host"!==type&&candidate.relatedAddress&&candidate.relatedPort&&(sdp.push("raddr"),sdp.push(candidate.relatedAddress),sdp.push("rport"),sdp.push(candidate.relatedPort)),candidate.tcpType&&"tcp"===candidate.protocol.toLowerCase()&&(sdp.push("tcptype"),sdp.push(candidate.tcpType)),"candidate:"+sdp.join(" ")},SDPUtils.parseRtpMap=function(line){var parts=line.substr(9).split(" "),parsed={payloadType:parseInt(parts.shift(),10)};return parts=parts[0].split("/"),parsed.name=parts[0],parsed.clockRate=parseInt(parts[1],10),parsed.numChannels=3===parts.length?parseInt(parts[2],10):1,parsed},SDPUtils.writeRtpMap=function(codec){var pt=codec.payloadType;return void 0!==codec.preferredPayloadType&&(pt=codec.preferredPayloadType),"a=rtpmap:"+pt+" "+codec.name+"/"+codec.clockRate+(1!==codec.numChannels?"/"+codec.numChannels:"")+"\r\n"},SDPUtils.parseFmtp=function(line){for(var kv,parsed={},parts=line.substr(line.indexOf(" ")+1).split(";"),j=0;j<parts.length;j++)kv=parts[j].trim().split("="),parsed[kv[0].trim()]=kv[1];return parsed},SDPUtils.writeFtmp=function(codec){var line="",pt=codec.payloadType;if(void 0!==codec.preferredPayloadType&&(pt=codec.preferredPayloadType),codec.parameters&&codec.parameters.length){var params=[];Object.keys(codec.parameters).forEach(function(param){params.push(param+"="+codec.parameters[param])}),line+="a=fmtp:"+pt+" "+params.join(";")+"\r\n"}return line},SDPUtils.parseRtcpFb=function(line){var parts=line.substr(line.indexOf(" ")+1).split(" ");return{type:parts.shift(),parameter:parts.join(" ")}},SDPUtils.writeRtcpFb=function(codec){var lines="",pt=codec.payloadType;return void 0!==codec.preferredPayloadType&&(pt=codec.preferredPayloadType),codec.rtcpFeedback&&codec.rtcpFeedback.length&&codec.rtcpFeedback.forEach(function(fb){lines+="a=rtcp-fb:"+pt+" "+fb.type+" "+fb.parameter+"\r\n"}),lines},SDPUtils.parseSsrcMedia=function(line){var sp=line.indexOf(" "),parts={ssrc:line.substr(7,sp-7)},colon=line.indexOf(":",sp);return colon>-1?(parts.attribute=line.substr(sp+1,colon-sp-1),parts.value=line.substr(colon+1)):parts.attribute=line.substr(sp+1),parts},SDPUtils.getDtlsParameters=function(mediaSection,sessionpart){var lines=SDPUtils.splitLines(mediaSection);lines=lines.concat(SDPUtils.splitLines(sessionpart));var fpLine=lines.filter(function(line){
+return 0===line.indexOf("a=fingerprint:")})[0].substr(14),dtlsParameters={role:"auto",fingerprints:[{algorithm:fpLine.split(" ")[0],value:fpLine.split(" ")[1]}]};return dtlsParameters},SDPUtils.writeDtlsParameters=function(params,setupType){var sdp="a=setup:"+setupType+"\r\n";return params.fingerprints.forEach(function(fp){sdp+="a=fingerprint:"+fp.algorithm+" "+fp.value+"\r\n"}),sdp},SDPUtils.getIceParameters=function(mediaSection,sessionpart){var lines=SDPUtils.splitLines(mediaSection);lines=lines.concat(SDPUtils.splitLines(sessionpart));var iceParameters={usernameFragment:lines.filter(function(line){return 0===line.indexOf("a=ice-ufrag:")})[0].substr(12),password:lines.filter(function(line){return 0===line.indexOf("a=ice-pwd:")})[0].substr(10)};return iceParameters},SDPUtils.writeIceParameters=function(params){return"a=ice-ufrag:"+params.usernameFragment+"\r\na=ice-pwd:"+params.password+"\r\n"},SDPUtils.parseRtpParameters=function(mediaSection){for(var description={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},lines=SDPUtils.splitLines(mediaSection),mline=lines[0].split(" "),i=3;i<mline.length;i++){var pt=mline[i],rtpmapline=SDPUtils.matchPrefix(mediaSection,"a=rtpmap:"+pt+" ")[0];if(rtpmapline){var codec=SDPUtils.parseRtpMap(rtpmapline),fmtps=SDPUtils.matchPrefix(mediaSection,"a=fmtp:"+pt+" ");codec.parameters=fmtps.length?SDPUtils.parseFmtp(fmtps[0]):{},codec.rtcpFeedback=SDPUtils.matchPrefix(mediaSection,"a=rtcp-fb:"+pt+" ").map(SDPUtils.parseRtcpFb),description.codecs.push(codec)}}return description},SDPUtils.writeRtpDescription=function(kind,caps){var sdp="";return sdp+="m="+kind+" ",sdp+=caps.codecs.length>0?"9":"0",sdp+=" UDP/TLS/RTP/SAVPF ",sdp+=caps.codecs.map(function(codec){return void 0!==codec.preferredPayloadType?codec.preferredPayloadType:codec.payloadType}).join(" ")+"\r\n",sdp+="c=IN IP4 0.0.0.0\r\n",sdp+="a=rtcp:9 IN IP4 0.0.0.0\r\n",caps.codecs.forEach(function(codec){sdp+=SDPUtils.writeRtpMap(codec),sdp+=SDPUtils.writeFtmp(codec),sdp+=SDPUtils.writeRtcpFb(codec)}),sdp+="a=rtcp-mux\r\n"},SDPUtils.writeSessionBoilerplate=function(){return"v=0\r\no=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},SDPUtils.writeMediaSection=function(transceiver,caps,type,stream){var sdp=SDPUtils.writeRtpDescription(transceiver.kind,caps);if(sdp+=SDPUtils.writeIceParameters(transceiver.iceGatherer.getLocalParameters()),sdp+=SDPUtils.writeDtlsParameters(transceiver.dtlsTransport.getLocalParameters(),"offer"===type?"actpass":"active"),sdp+="a=mid:"+transceiver.mid+"\r\n",sdp+=transceiver.rtpSender&&transceiver.rtpReceiver?"a=sendrecv\r\n":transceiver.rtpSender?"a=sendonly\r\n":transceiver.rtpReceiver?"a=recvonly\r\n":"a=inactive\r\n",transceiver.rtpSender){var msid="msid:"+stream.id+" "+transceiver.rtpSender.track.id+"\r\n";sdp+="a="+msid,sdp+="a=ssrc:"+transceiver.sendSsrc+" "+msid}return sdp+="a=ssrc:"+transceiver.sendSsrc+" cname:"+localCName+"\r\n"},SDPUtils.getDirection=function(mediaSection,sessionpart){for(var lines=SDPUtils.splitLines(mediaSection),i=0;i<lines.length;i++)switch(lines[i]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return lines[i].substr(2)}return sessionpart?SDPUtils.getDirection(sessionpart):"sendrecv"},window.RTCIceCandidate||(window.RTCIceCandidate=function(args){return args}),window.RTCSessionDescription||(window.RTCSessionDescription=function(args){return args}),window.RTCPeerConnection=function(config){var self=this;if(this.onicecandidate=null,this.onaddstream=null,this.onremovestream=null,this.onsignalingstatechange=null,this.oniceconnectionstatechange=null,this.onnegotiationneeded=null,this.ondatachannel=null,this.localStreams=[],this.remoteStreams=[],this.getLocalStreams=function(){return self.localStreams},this.getRemoteStreams=function(){return self.remoteStreams},this.localDescription=new RTCSessionDescription({type:"",sdp:""}),this.remoteDescription=new RTCSessionDescription({type:"",sdp:""}),this.signalingState="stable",this.iceConnectionState="new",this.iceOptions={gatherPolicy:"all",iceServers:[]},config&&config.iceTransportPolicy)switch(config.iceTransportPolicy){case"all":case"relay":this.iceOptions.gatherPolicy=config.iceTransportPolicy;break;case"none":throw new TypeError('iceTransportPolicy "none" not supported')}config&&config.iceServers&&config.iceServers.forEach(function(server){if(server.urls){var url;url="string"==typeof server.urls?server.urls:server.urls[0],url.indexOf("transport=udp")!==-1&&self.iceServers.push({username:server.username,credential:server.credential,urls:url})}}),this.transceivers=[],this._localIceCandidatesBuffer=[]},window.RTCPeerConnection.prototype._emitBufferedCandidates=function(){var self=this;this._localIceCandidatesBuffer.forEach(function(event){null!==self.onicecandidate&&self.onicecandidate(event)}),this._localIceCandidatesBuffer=[]},window.RTCPeerConnection.prototype.addStream=function(stream){this.localStreams.push(stream.clone()),this._maybeFireNegotiationNeeded()},window.RTCPeerConnection.prototype.removeStream=function(stream){var idx=this.localStreams.indexOf(stream);idx>-1&&(this.localStreams.splice(idx,1),this._maybeFireNegotiationNeeded())},window.RTCPeerConnection.prototype._getCommonCapabilities=function(localCapabilities,remoteCapabilities){var commonCapabilities={codecs:[],headerExtensions:[],fecMechanisms:[]};return localCapabilities.codecs.forEach(function(lCodec){for(var i=0;i<remoteCapabilities.codecs.length;i++){var rCodec=remoteCapabilities.codecs[i];if(lCodec.name.toLowerCase()===rCodec.name.toLowerCase()&&lCodec.clockRate===rCodec.clockRate&&lCodec.numChannels===rCodec.numChannels){commonCapabilities.codecs.push(rCodec);break}}}),localCapabilities.headerExtensions.forEach(function(lHeaderExtension){for(var i=0;i<remoteCapabilities.headerExtensions.length;i++){var rHeaderExtension=remoteCapabilities.headerExtensions[i];if(lHeaderExtension.uri===rHeaderExtension.uri){commonCapabilities.headerExtensions.push(rHeaderExtension);break}}}),commonCapabilities},window.RTCPeerConnection.prototype._createIceAndDtlsTransports=function(mid,sdpMLineIndex){var self=this,iceGatherer=new RTCIceGatherer(self.iceOptions),iceTransport=new RTCIceTransport(iceGatherer);iceGatherer.onlocalcandidate=function(evt){var event={};event.candidate={sdpMid:mid,sdpMLineIndex:sdpMLineIndex};var cand=evt.candidate;cand&&0!==Object.keys(cand).length?(cand.component="RTCP"===iceTransport.component?2:1,event.candidate.candidate=SDPUtils.writeCandidate(cand)):(void 0===iceGatherer.state&&(iceGatherer.state="completed"),event.candidate.candidate="candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates");var complete=self.transceivers.every(function(transceiver){return transceiver.iceGatherer&&"completed"===transceiver.iceGatherer.state});null!==self.onicecandidate&&(self.localDescription&&""===self.localDescription.type?(self._localIceCandidatesBuffer.push(event),complete&&self._localIceCandidatesBuffer.push({})):(self.onicecandidate(event),complete&&self.onicecandidate({})))},iceTransport.onicestatechange=function(){self._updateConnectionState()};var dtlsTransport=new RTCDtlsTransport(iceTransport);return dtlsTransport.ondtlsstatechange=function(){self._updateConnectionState()},dtlsTransport.onerror=function(){dtlsTransport.state="failed",self._updateConnectionState()},{iceGatherer:iceGatherer,iceTransport:iceTransport,dtlsTransport:dtlsTransport}},window.RTCPeerConnection.prototype._transceive=function(transceiver,send,recv){var params=this._getCommonCapabilities(transceiver.localCapabilities,transceiver.remoteCapabilities);send&&transceiver.rtpSender&&(params.encodings=[{ssrc:transceiver.sendSsrc}],params.rtcp={cname:localCName,ssrc:transceiver.recvSsrc},transceiver.rtpSender.send(params)),recv&&transceiver.rtpReceiver&&(params.encodings=[{ssrc:transceiver.recvSsrc}],params.rtcp={cname:transceiver.cname,ssrc:transceiver.sendSsrc},transceiver.rtpReceiver.receive(params))},window.RTCPeerConnection.prototype.setLocalDescription=function(description){var self=this;if("offer"===description.type)this._pendingOffer&&(this.transceivers=this._pendingOffer,delete this._pendingOffer);else if("answer"===description.type){var sections=SDPUtils.splitSections(self.remoteDescription.sdp),sessionpart=sections.shift();sections.forEach(function(mediaSection,sdpMLineIndex){var transceiver=self.transceivers[sdpMLineIndex],iceGatherer=transceiver.iceGatherer,iceTransport=transceiver.iceTransport,dtlsTransport=transceiver.dtlsTransport,localCapabilities=transceiver.localCapabilities,remoteCapabilities=transceiver.remoteCapabilities,rejected="0"===mediaSection.split("\n",1)[0].split(" ",2)[1];if(!rejected){var remoteIceParameters=SDPUtils.getIceParameters(mediaSection,sessionpart);iceTransport.start(iceGatherer,remoteIceParameters,"controlled");var remoteDtlsParameters=SDPUtils.getDtlsParameters(mediaSection,sessionpart);dtlsTransport.start(remoteDtlsParameters);var params=self._getCommonCapabilities(localCapabilities,remoteCapabilities);self._transceive(transceiver,params.codecs.length>0,!1)}})}switch(this.localDescription=description,description.type){case"offer":this._updateSignalingState("have-local-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+description.type+'"')}var hasCallback=arguments.length>1&&"function"==typeof arguments[1];if(hasCallback){var cb=arguments[1];window.setTimeout(function(){cb(),self._emitBufferedCandidates()},0)}var p=Promise.resolve();return p.then(function(){hasCallback||window.setTimeout(self._emitBufferedCandidates.bind(self),0)}),p},window.RTCPeerConnection.prototype.setRemoteDescription=function(description){var self=this,stream=new MediaStream,sections=SDPUtils.splitSections(description.sdp),sessionpart=sections.shift();switch(sections.forEach(function(mediaSection,sdpMLineIndex){var transceiver,iceGatherer,iceTransport,dtlsTransport,rtpSender,rtpReceiver,sendSsrc,recvSsrc,localCapabilities,remoteIceParameters,remoteDtlsParameters,lines=SDPUtils.splitLines(mediaSection),mline=lines[0].substr(2).split(" "),kind=mline[0],rejected="0"===mline[1],direction=SDPUtils.getDirection(mediaSection,sessionpart),remoteCapabilities=SDPUtils.parseRtpParameters(mediaSection);rejected||(remoteIceParameters=SDPUtils.getIceParameters(mediaSection,sessionpart),remoteDtlsParameters=SDPUtils.getDtlsParameters(mediaSection,sessionpart));var cname,mid=SDPUtils.matchPrefix(mediaSection,"a=mid:")[0].substr(6),remoteSsrc=SDPUtils.matchPrefix(mediaSection,"a=ssrc:").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(obj){return"cname"===obj.attribute})[0];if(remoteSsrc&&(recvSsrc=parseInt(remoteSsrc.ssrc,10),cname=remoteSsrc.value),"offer"===description.type){var transports=self._createIceAndDtlsTransports(mid,sdpMLineIndex);if(localCapabilities=RTCRtpReceiver.getCapabilities(kind),sendSsrc=1001*(2*sdpMLineIndex+2),rtpReceiver=new RTCRtpReceiver(transports.dtlsTransport,kind),stream.addTrack(rtpReceiver.track),self.localStreams.length>0&&self.localStreams[0].getTracks().length>=sdpMLineIndex){var localtrack=self.localStreams[0].getTracks()[sdpMLineIndex];rtpSender=new RTCRtpSender(localtrack,transports.dtlsTransport)}self.transceivers[sdpMLineIndex]={iceGatherer:transports.iceGatherer,iceTransport:transports.iceTransport,dtlsTransport:transports.dtlsTransport,localCapabilities:localCapabilities,remoteCapabilities:remoteCapabilities,rtpSender:rtpSender,rtpReceiver:rtpReceiver,kind:kind,mid:mid,cname:cname,sendSsrc:sendSsrc,recvSsrc:recvSsrc},self._transceive(self.transceivers[sdpMLineIndex],!1,"sendrecv"===direction||"sendonly"===direction)}else"answer"!==description.type||rejected||(transceiver=self.transceivers[sdpMLineIndex],iceGatherer=transceiver.iceGatherer,iceTransport=transceiver.iceTransport,dtlsTransport=transceiver.dtlsTransport,rtpSender=transceiver.rtpSender,rtpReceiver=transceiver.rtpReceiver,sendSsrc=transceiver.sendSsrc,localCapabilities=transceiver.localCapabilities,self.transceivers[sdpMLineIndex].recvSsrc=recvSsrc,self.transceivers[sdpMLineIndex].remoteCapabilities=remoteCapabilities,self.transceivers[sdpMLineIndex].cname=cname,iceTransport.start(iceGatherer,remoteIceParameters,"controlling"),dtlsTransport.start(remoteDtlsParameters),self._transceive(transceiver,"sendrecv"===direction||"recvonly"===direction,"sendrecv"===direction||"sendonly"===direction),!rtpReceiver||"sendrecv"!==direction&&"sendonly"!==direction?delete transceiver.rtpReceiver:stream.addTrack(rtpReceiver.track))}),this.remoteDescription=description,description.type){case"offer":this._updateSignalingState("have-remote-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+description.type+'"')}return window.setTimeout(function(){null!==self.onaddstream&&stream.getTracks().length&&(self.remoteStreams.push(stream),window.setTimeout(function(){self.onaddstream({stream:stream})},0))},0),arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},window.RTCPeerConnection.prototype.close=function(){this.transceivers.forEach(function(transceiver){transceiver.iceTransport&&transceiver.iceTransport.stop(),transceiver.dtlsTransport&&transceiver.dtlsTransport.stop(),transceiver.rtpSender&&transceiver.rtpSender.stop(),transceiver.rtpReceiver&&transceiver.rtpReceiver.stop()}),this._updateSignalingState("closed")},window.RTCPeerConnection.prototype._updateSignalingState=function(newState){this.signalingState=newState,null!==this.onsignalingstatechange&&this.onsignalingstatechange()},window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded=function(){null!==this.onnegotiationneeded&&this.onnegotiationneeded()},window.RTCPeerConnection.prototype._updateConnectionState=function(){var newState,self=this,states={new:0,closed:0,connecting:0,checking:0,connected:0,completed:0,failed:0};this.transceivers.forEach(function(transceiver){states[transceiver.iceTransport.state]++,states[transceiver.dtlsTransport.state]++}),states.connected+=states.completed,newState="new",states.failed>0?newState="failed":states.connecting>0||states.checking>0?newState="connecting":states.disconnected>0?newState="disconnected":states.new>0?newState="new":(states.connecting>0||states.completed>0)&&(newState="connected"),newState!==self.iceConnectionState&&(self.iceConnectionState=newState,null!==this.oniceconnectionstatechange&&this.oniceconnectionstatechange())},window.RTCPeerConnection.prototype.createOffer=function(){var self=this;if(this._pendingOffer)throw new Error("createOffer called while there is a pending offer.");var offerOptions;1===arguments.length&&"function"!=typeof arguments[0]?offerOptions=arguments[0]:3===arguments.length&&(offerOptions=arguments[2]);var tracks=[],numAudioTracks=0,numVideoTracks=0;if(this.localStreams.length&&(numAudioTracks=this.localStreams[0].getAudioTracks().length,numVideoTracks=this.localStreams[0].getVideoTracks().length),offerOptions){if(offerOptions.mandatory||offerOptions.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==offerOptions.offerToReceiveAudio&&(numAudioTracks=offerOptions.offerToReceiveAudio),void 0!==offerOptions.offerToReceiveVideo&&(numVideoTracks=offerOptions.offerToReceiveVideo)}for(this.localStreams.length&&this.localStreams[0].getTracks().forEach(function(track){tracks.push({kind:track.kind,track:track,wantReceive:"audio"===track.kind?numAudioTracks>0:numVideoTracks>0}),"audio"===track.kind?numAudioTracks--:"video"===track.kind&&numVideoTracks--});numAudioTracks>0||numVideoTracks>0;)numAudioTracks>0&&(tracks.push({kind:"audio",wantReceive:!0}),numAudioTracks--),numVideoTracks>0&&(tracks.push({kind:"video",wantReceive:!0}),numVideoTracks--);var sdp=SDPUtils.writeSessionBoilerplate(),transceivers=[];tracks.forEach(function(mline,sdpMLineIndex){var rtpSender,rtpReceiver,track=mline.track,kind=mline.kind,mid=generateIdentifier(),transports=self._createIceAndDtlsTransports(mid,sdpMLineIndex),localCapabilities=RTCRtpSender.getCapabilities(kind),sendSsrc=1001*(2*sdpMLineIndex+1);track&&(rtpSender=new RTCRtpSender(track,transports.dtlsTransport)),mline.wantReceive&&(rtpReceiver=new RTCRtpReceiver(transports.dtlsTransport,kind)),transceivers[sdpMLineIndex]={iceGatherer:transports.iceGatherer,iceTransport:transports.iceTransport,dtlsTransport:transports.dtlsTransport,localCapabilities:localCapabilities,remoteCapabilities:null,rtpSender:rtpSender,rtpReceiver:rtpReceiver,kind:kind,mid:mid,sendSsrc:sendSsrc,recvSsrc:null};var transceiver=transceivers[sdpMLineIndex];sdp+=SDPUtils.writeMediaSection(transceiver,transceiver.localCapabilities,"offer",self.localStreams[0])}),this._pendingOffer=transceivers;var desc=new RTCSessionDescription({type:"offer",sdp:sdp});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,desc),Promise.resolve(desc)},window.RTCPeerConnection.prototype.createAnswer=function(){var answerOptions,self=this;1===arguments.length&&"function"!=typeof arguments[0]?answerOptions=arguments[0]:3===arguments.length&&(answerOptions=arguments[2]);var sdp=SDPUtils.writeSessionBoilerplate();this.transceivers.forEach(function(transceiver){var commonCapabilities=self._getCommonCapabilities(transceiver.localCapabilities,transceiver.remoteCapabilities);sdp+=SDPUtils.writeMediaSection(transceiver,commonCapabilities,"answer",self.localStreams[0])});var desc=new RTCSessionDescription({type:"answer",sdp:sdp});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,desc),Promise.resolve(desc)},window.RTCPeerConnection.prototype.addIceCandidate=function(candidate){var mLineIndex=candidate.sdpMLineIndex;if(candidate.sdpMid)for(var i=0;i<this.transceivers.length;i++)if(this.transceivers[i].mid===candidate.sdpMid){mLineIndex=i;break}var transceiver=this.transceivers[mLineIndex];if(transceiver){var cand=Object.keys(candidate.candidate).length>0?SDPUtils.parseCandidate(candidate.candidate):{};if("tcp"===cand.protocol&&0===cand.port)return;if("1"!==cand.component)return;"endOfCandidates"===cand.type&&(cand={}),transceiver.iceTransport.addRemoteCandidate(cand)}return arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},window.RTCPeerConnection.prototype.getStats=function(){var promises=[];this.transceivers.forEach(function(transceiver){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(method){transceiver[method]&&promises.push(transceiver[method].getStats())})});var cb=arguments.length>1&&"function"==typeof arguments[1]&&arguments[1];return new Promise(function(resolve){var results={};Promise.all(promises).then(function(res){res.forEach(function(result){Object.keys(result).forEach(function(id){results[id]=result[id]})}),cb&&window.setTimeout(cb,0,results),resolve(results)})})}}}else webrtcUtils.log("Browser does not appear to be WebRTC-capable");else webrtcUtils.log("This does not appear to be a browser"),webrtcDetectedBrowser="not a browser";"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(f){var self=this;this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=f),this.addEventListener("addstream",this._ontrackpoly=function(e){"chrome"===webrtcDetectedBrowser&&e.stream.addEventListener("addtrack",function(te){var event=new Event("track");event.track=te.track,event.receiver={track:te.track},event.streams=[e.stream],self.dispatchEvent(event)}),e.stream.getTracks().forEach(function(track){var event=new Event("track");event.track=track,event.receiver={track:track},event.streams=[e.stream],this.dispatchEvent(event)}.bind(this))}.bind(this))}});var webrtcTesting={};try{Object.defineProperty(webrtcTesting,"version",{set:function(version){webrtcDetectedVersion=version}})}catch(e){}if("undefined"!=typeof module){var RTCPeerConnection,RTCIceCandidate,RTCSessionDescription;"undefined"!=typeof window&&(RTCPeerConnection=window.RTCPeerConnection,RTCIceCandidate=window.RTCIceCandidate,RTCSessionDescription=window.RTCSessionDescription),module.exports={RTCPeerConnection:RTCPeerConnection,RTCIceCandidate:RTCIceCandidate,RTCSessionDescription:RTCSessionDescription,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting,webrtcUtils:webrtcUtils}}else"function"==typeof require&&"function"==typeof define&&define([],function(){return{RTCPeerConnection:window.RTCPeerConnection,RTCIceCandidate:window.RTCIceCandidate,RTCSessionDescription:window.RTCSessionDescription,getUserMedia:getUserMedia,attachMediaStream:attachMediaStream,reattachMediaStream:reattachMediaStream,webrtcDetectedBrowser:webrtcDetectedBrowser,webrtcDetectedVersion:webrtcDetectedVersion,webrtcMinimumVersion:webrtcMinimumVersion,webrtcTesting:webrtcTesting,webrtcUtils:webrtcUtils}})},{}],201:[function(require,module,exports){arguments[4][33][0].apply(exports,arguments)},{"./chrome/chrome_shim":202,"./edge/edge_shim":204,"./firefox/firefox_shim":206,"./safari/safari_shim":208,"./utils":209,dup:33}],202:[function(require,module,exports){"use strict";var logging=require("../utils.js").log,browserDetails=require("../utils.js").browserDetails,chromeShim={shimMediaStream:function(){window.MediaStream=window.MediaStream||window.webkitMediaStream},shimOnTrack:function(){"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(f){var self=this;this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=f),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.addEventListener("addtrack",function(te){var event=new Event("track");event.track=te.track,event.receiver={track:te.track},event.streams=[e.stream],self.dispatchEvent(event)}),e.stream.getTracks().forEach(function(track){var event=new Event("track");event.track=track,event.receiver={track:track},event.streams=[e.stream],this.dispatchEvent(event)}.bind(this))}.bind(this))}})},shimSourceObject:function(){"object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return this._srcObject},set:function(stream){var self=this;return this._srcObject=stream,this.src&&URL.revokeObjectURL(this.src),stream?(this.src=URL.createObjectURL(stream),stream.addEventListener("addtrack",function(){self.src&&URL.revokeObjectURL(self.src),self.src=URL.createObjectURL(stream)}),void stream.addEventListener("removetrack",function(){self.src&&URL.revokeObjectURL(self.src),self.src=URL.createObjectURL(stream)})):void(this.src="")}}))},shimPeerConnection:function(){window.RTCPeerConnection=function(pcConfig,pcConstraints){logging("PeerConnection"),pcConfig&&pcConfig.iceTransportPolicy&&(pcConfig.iceTransports=pcConfig.iceTransportPolicy);var pc=new webkitRTCPeerConnection(pcConfig,pcConstraints),origGetStats=pc.getStats.bind(pc);return pc.getStats=function(selector,successCallback,errorCallback){var self=this,args=arguments;if(arguments.length>0&&"function"==typeof selector)return origGetStats(selector,successCallback);var fixChromeStats_=function(response){var standardReport={},reports=response.result();return reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)}),standardReport[standardStats.id]=standardStats}),standardReport},makeMapStats=function(stats,legacyStats){var map=new Map(Object.keys(stats).map(function(key){return[key,stats[key]]}));return legacyStats=legacyStats||stats,Object.keys(legacyStats).forEach(function(key){map[key]=legacyStats[key]}),map};if(arguments.length>=2){var successCallbackWrapper_=function(response){args[1](makeMapStats(fixChromeStats_(response)))};return origGetStats.apply(this,[successCallbackWrapper_,arguments[0]])}return new Promise(function(resolve,reject){1===args.length&&"object"==typeof selector?origGetStats.apply(self,[function(response){resolve(makeMapStats(fixChromeStats_(response)))},reject]):origGetStats.apply(self,[function(response){resolve(makeMapStats(fixChromeStats_(response),response.result()))},reject])}).then(successCallback,errorCallback)},pc},window.RTCPeerConnection.prototype=webkitRTCPeerConnection.prototype,webkitRTCPeerConnection.generateCertificate&&Object.defineProperty(window.RTCPeerConnection,"generateCertificate",{get:function(){return webkitRTCPeerConnection.generateCertificate}}),["createOffer","createAnswer"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var self=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var opts=1===arguments.length?arguments[0]:void 0;return new Promise(function(resolve,reject){nativeMethod.apply(self,[resolve,reject,opts])})}return nativeMethod.apply(this,arguments)}}),browserDetails.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){var args=arguments,self=this,promise=new Promise(function(resolve,reject){nativeMethod.apply(self,[args[0],resolve,reject])});return args.length<2?promise:promise.then(function(){args[1].apply(null,[])},function(err){args.length>=3&&args[2].apply(null,[err])})}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=webkitRTCPeerConnection.prototype[method];webkitRTCPeerConnection.prototype[method]=function(){return arguments[0]=new("addIceCandidate"===method?RTCIceCandidate:RTCSessionDescription)(arguments[0]),nativeMethod.apply(this,arguments)}});var nativeAddIceCandidate=RTCPeerConnection.prototype.addIceCandidate;RTCPeerConnection.prototype.addIceCandidate=function(){return null===arguments[0]?(arguments[1]&&arguments[1].apply(null),Promise.resolve()):nativeAddIceCandidate.apply(this,arguments)}}};module.exports={shimMediaStream:chromeShim.shimMediaStream,shimOnTrack:chromeShim.shimOnTrack,shimSourceObject:chromeShim.shimSourceObject,shimPeerConnection:chromeShim.shimPeerConnection,shimGetUserMedia:require("./getusermedia")}},{"../utils.js":209,"./getusermedia":203}],203:[function(require,module,exports){"use strict";var logging=require("../utils.js").log;module.exports=function(){var constraintsToChrome_=function(c){if("object"!=typeof c||c.mandatory||c.optional)return c;var cc={};return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r="object"==typeof c[key]?c[key]:{ideal:c[key]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);var oldname_=function(prefix,name){return prefix?prefix+name.charAt(0).toUpperCase()+name.slice(1):"deviceId"===name?"sourceId":name};if(void 0!==r.ideal){cc.optional=cc.optional||[];var oc={};"number"==typeof r.ideal?(oc[oldname_("min",key)]=r.ideal,cc.optional.push(oc),oc={},oc[oldname_("max",key)]=r.ideal,cc.optional.push(oc)):(oc[oldname_("",key)]=r.ideal,cc.optional.push(oc))}void 0!==r.exact&&"number"!=typeof r.exact?(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname_("",key)]=r.exact):["min","max"].forEach(function(mix){void 0!==r[mix]&&(cc.mandatory=cc.mandatory||{},cc.mandatory[oldname_(mix,key)]=r[mix])})}}),c.advanced&&(cc.optional=(cc.optional||[]).concat(c.advanced)),cc},shimConstraints_=function(constraints,func){if(constraints=JSON.parse(JSON.stringify(constraints)),constraints&&constraints.audio&&(constraints.audio=constraintsToChrome_(constraints.audio)),constraints&&"object"==typeof constraints.video){var face=constraints.video.facingMode;if(face=face&&("object"==typeof face?face:{ideal:face}),face&&("user"===face.exact||"environment"===face.exact||"user"===face.ideal||"environment"===face.ideal)&&(!navigator.mediaDevices.getSupportedConstraints||!navigator.mediaDevices.getSupportedConstraints().facingMode)&&(delete constraints.video.facingMode,"environment"===face.exact||"environment"===face.ideal))return navigator.mediaDevices.enumerateDevices().then(function(devices){devices=devices.filter(function(d){return"videoinput"===d.kind});var back=devices.find(function(d){return d.label.toLowerCase().indexOf("back")!==-1})||devices.length&&devices[devices.length-1];return back&&(constraints.video.deviceId=face.exact?{exact:back.deviceId}:{ideal:back.deviceId}),constraints.video=constraintsToChrome_(constraints.video),logging("chrome: "+JSON.stringify(constraints)),func(constraints)});constraints.video=constraintsToChrome_(constraints.video)}return logging("chrome: "+JSON.stringify(constraints)),func(constraints)},shimError_=function(e){return{name:{PermissionDeniedError:"NotAllowedError",ConstraintNotSatisfiedError:"OverconstrainedError"}[e.name]||e.name,message:e.message,constraint:e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},getUserMedia_=function(constraints,onSuccess,onError){shimConstraints_(constraints,function(c){navigator.webkitGetUserMedia(c,onSuccess,function(e){onError(shimError_(e))})})};navigator.getUserMedia=getUserMedia_;var getUserMediaPromise_=function(constraints){return new Promise(function(resolve,reject){navigator.getUserMedia(constraints,resolve,reject)})};if(navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:getUserMediaPromise_,enumerateDevices:function(){return new Promise(function(resolve){var kinds={audio:"audioinput",video:"videoinput"};return MediaStreamTrack.getSources(function(devices){resolve(devices.map(function(device){return{label:device.label,kind:kinds[device.kind],deviceId:device.id,groupId:""}}))})})}}),navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(cs){return shimConstraints_(cs,function(c){return origGetUserMedia(c).then(function(stream){if(c.audio&&!stream.getAudioTracks().length||c.video&&!stream.getVideoTracks().length)throw stream.getTracks().forEach(function(track){track.stop()}),new DOMException("","NotFoundError");return stream},function(e){return Promise.reject(shimError_(e))})})}}else navigator.mediaDevices.getUserMedia=function(constraints){return getUserMediaPromise_(constraints)};"undefined"==typeof navigator.mediaDevices.addEventListener&&(navigator.mediaDevices.addEventListener=function(){logging("Dummy mediaDevices.addEventListener called.")}),"undefined"==typeof navigator.mediaDevices.removeEventListener&&(navigator.mediaDevices.removeEventListener=function(){logging("Dummy mediaDevices.removeEventListener called.")})}},{"../utils.js":209}],204:[function(require,module,exports){"use strict";var SDPUtils=require("sdp"),browserDetails=require("../utils").browserDetails,edgeShim={shimPeerConnection:function(){window.RTCIceGatherer&&(window.RTCIceCandidate||(window.RTCIceCandidate=function(args){return args}),window.RTCSessionDescription||(window.RTCSessionDescription=function(args){return args})),window.RTCPeerConnection=function(config){var self=this,_eventTarget=document.createDocumentFragment();if(["addEventListener","removeEventListener","dispatchEvent"].forEach(function(method){self[method]=_eventTarget[method].bind(_eventTarget);
+}),this.onicecandidate=null,this.onaddstream=null,this.ontrack=null,this.onremovestream=null,this.onsignalingstatechange=null,this.oniceconnectionstatechange=null,this.onnegotiationneeded=null,this.ondatachannel=null,this.localStreams=[],this.remoteStreams=[],this.getLocalStreams=function(){return self.localStreams},this.getRemoteStreams=function(){return self.remoteStreams},this.localDescription=new RTCSessionDescription({type:"",sdp:""}),this.remoteDescription=new RTCSessionDescription({type:"",sdp:""}),this.signalingState="stable",this.iceConnectionState="new",this.iceGatheringState="new",this.iceOptions={gatherPolicy:"all",iceServers:[]},config&&config.iceTransportPolicy)switch(config.iceTransportPolicy){case"all":case"relay":this.iceOptions.gatherPolicy=config.iceTransportPolicy;break;case"none":throw new TypeError('iceTransportPolicy "none" not supported')}if(this.usingBundle=config&&"max-bundle"===config.bundlePolicy,config&&config.iceServers){var iceServers=JSON.parse(JSON.stringify(config.iceServers));this.iceOptions.iceServers=iceServers.filter(function(server){if(server&&server.urls){var urls=server.urls;return"string"==typeof urls&&(urls=[urls]),urls=urls.filter(function(url){return 0===url.indexOf("turn:")&&url.indexOf("transport=udp")!==-1&&url.indexOf("turn:[")===-1||0===url.indexOf("stun:")&&browserDetails.version>=14393})[0],!!urls}return!1})}this._config=config,this.transceivers=[],this._localIceCandidatesBuffer=[]},window.RTCPeerConnection.prototype._emitBufferedCandidates=function(){var self=this,sections=SDPUtils.splitSections(self.localDescription.sdp);this._localIceCandidatesBuffer.forEach(function(event){var end=!event.candidate||0===Object.keys(event.candidate).length;if(end)for(var j=1;j<sections.length;j++)sections[j].indexOf("\r\na=end-of-candidates\r\n")===-1&&(sections[j]+="a=end-of-candidates\r\n");else event.candidate.candidate.indexOf("typ endOfCandidates")===-1&&(sections[event.candidate.sdpMLineIndex+1]+="a="+event.candidate.candidate+"\r\n");if(self.localDescription.sdp=sections.join(""),self.dispatchEvent(event),null!==self.onicecandidate&&self.onicecandidate(event),!event.candidate&&"complete"!==self.iceGatheringState){var complete=self.transceivers.every(function(transceiver){return transceiver.iceGatherer&&"completed"===transceiver.iceGatherer.state});complete&&(self.iceGatheringState="complete")}}),this._localIceCandidatesBuffer=[]},window.RTCPeerConnection.prototype.getConfiguration=function(){return this._config},window.RTCPeerConnection.prototype.addStream=function(stream){this.localStreams.push(stream.clone()),this._maybeFireNegotiationNeeded()},window.RTCPeerConnection.prototype.removeStream=function(stream){var idx=this.localStreams.indexOf(stream);idx>-1&&(this.localStreams.splice(idx,1),this._maybeFireNegotiationNeeded())},window.RTCPeerConnection.prototype.getSenders=function(){return this.transceivers.filter(function(transceiver){return!!transceiver.rtpSender}).map(function(transceiver){return transceiver.rtpSender})},window.RTCPeerConnection.prototype.getReceivers=function(){return this.transceivers.filter(function(transceiver){return!!transceiver.rtpReceiver}).map(function(transceiver){return transceiver.rtpReceiver})},window.RTCPeerConnection.prototype._getCommonCapabilities=function(localCapabilities,remoteCapabilities){var commonCapabilities={codecs:[],headerExtensions:[],fecMechanisms:[]};return localCapabilities.codecs.forEach(function(lCodec){for(var i=0;i<remoteCapabilities.codecs.length;i++){var rCodec=remoteCapabilities.codecs[i];if(lCodec.name.toLowerCase()===rCodec.name.toLowerCase()&&lCodec.clockRate===rCodec.clockRate){rCodec.numChannels=Math.min(lCodec.numChannels,rCodec.numChannels),commonCapabilities.codecs.push(rCodec),rCodec.rtcpFeedback=rCodec.rtcpFeedback.filter(function(fb){for(var j=0;j<lCodec.rtcpFeedback.length;j++)if(lCodec.rtcpFeedback[j].type===fb.type&&lCodec.rtcpFeedback[j].parameter===fb.parameter)return!0;return!1});break}}}),localCapabilities.headerExtensions.forEach(function(lHeaderExtension){for(var i=0;i<remoteCapabilities.headerExtensions.length;i++){var rHeaderExtension=remoteCapabilities.headerExtensions[i];if(lHeaderExtension.uri===rHeaderExtension.uri){commonCapabilities.headerExtensions.push(rHeaderExtension);break}}}),commonCapabilities},window.RTCPeerConnection.prototype._createIceAndDtlsTransports=function(mid,sdpMLineIndex){var self=this,iceGatherer=new RTCIceGatherer(self.iceOptions),iceTransport=new RTCIceTransport(iceGatherer);iceGatherer.onlocalcandidate=function(evt){var event=new Event("icecandidate");event.candidate={sdpMid:mid,sdpMLineIndex:sdpMLineIndex};var cand=evt.candidate,end=!cand||0===Object.keys(cand).length;end?(void 0===iceGatherer.state&&(iceGatherer.state="completed"),event.candidate.candidate="candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates"):(cand.component="RTCP"===iceTransport.component?2:1,event.candidate.candidate=SDPUtils.writeCandidate(cand));var sections=SDPUtils.splitSections(self.localDescription.sdp);event.candidate.candidate.indexOf("typ endOfCandidates")===-1?sections[event.candidate.sdpMLineIndex+1]+="a="+event.candidate.candidate+"\r\n":sections[event.candidate.sdpMLineIndex+1]+="a=end-of-candidates\r\n",self.localDescription.sdp=sections.join("");var complete=self.transceivers.every(function(transceiver){return transceiver.iceGatherer&&"completed"===transceiver.iceGatherer.state});switch(self.iceGatheringState){case"new":self._localIceCandidatesBuffer.push(event),end&&complete&&self._localIceCandidatesBuffer.push(new Event("icecandidate"));break;case"gathering":self._emitBufferedCandidates(),self.dispatchEvent(event),null!==self.onicecandidate&&self.onicecandidate(event),complete&&(self.dispatchEvent(new Event("icecandidate")),null!==self.onicecandidate&&self.onicecandidate(new Event("icecandidate")),self.iceGatheringState="complete");break;case"complete":}},iceTransport.onicestatechange=function(){self._updateConnectionState()};var dtlsTransport=new RTCDtlsTransport(iceTransport);return dtlsTransport.ondtlsstatechange=function(){self._updateConnectionState()},dtlsTransport.onerror=function(){dtlsTransport.state="failed",self._updateConnectionState()},{iceGatherer:iceGatherer,iceTransport:iceTransport,dtlsTransport:dtlsTransport}},window.RTCPeerConnection.prototype._transceive=function(transceiver,send,recv){var params=this._getCommonCapabilities(transceiver.localCapabilities,transceiver.remoteCapabilities);send&&transceiver.rtpSender&&(params.encodings=transceiver.sendEncodingParameters,params.rtcp={cname:SDPUtils.localCName},transceiver.recvEncodingParameters.length&&(params.rtcp.ssrc=transceiver.recvEncodingParameters[0].ssrc),transceiver.rtpSender.send(params)),recv&&transceiver.rtpReceiver&&("video"===transceiver.kind&&transceiver.recvEncodingParameters&&transceiver.recvEncodingParameters.forEach(function(p){delete p.rtx}),params.encodings=transceiver.recvEncodingParameters,params.rtcp={cname:transceiver.cname},transceiver.sendEncodingParameters.length&&(params.rtcp.ssrc=transceiver.sendEncodingParameters[0].ssrc),transceiver.rtpReceiver.receive(params))},window.RTCPeerConnection.prototype.setLocalDescription=function(description){var sections,sessionpart,self=this;if("offer"===description.type)this._pendingOffer&&(sections=SDPUtils.splitSections(description.sdp),sessionpart=sections.shift(),sections.forEach(function(mediaSection,sdpMLineIndex){var caps=SDPUtils.parseRtpParameters(mediaSection);self._pendingOffer[sdpMLineIndex].localCapabilities=caps}),this.transceivers=this._pendingOffer,delete this._pendingOffer);else if("answer"===description.type){sections=SDPUtils.splitSections(self.remoteDescription.sdp),sessionpart=sections.shift();var isIceLite=SDPUtils.matchPrefix(sessionpart,"a=ice-lite").length>0;sections.forEach(function(mediaSection,sdpMLineIndex){var transceiver=self.transceivers[sdpMLineIndex],iceGatherer=transceiver.iceGatherer,iceTransport=transceiver.iceTransport,dtlsTransport=transceiver.dtlsTransport,localCapabilities=transceiver.localCapabilities,remoteCapabilities=transceiver.remoteCapabilities,rejected="0"===mediaSection.split("\n",1)[0].split(" ",2)[1];if(!rejected&&!transceiver.isDatachannel){var remoteIceParameters=SDPUtils.getIceParameters(mediaSection,sessionpart);if(isIceLite){var cands=SDPUtils.matchPrefix(mediaSection,"a=candidate:").map(function(cand){return SDPUtils.parseCandidate(cand)}).filter(function(cand){return"1"===cand.component});cands.length&&iceTransport.setRemoteCandidates(cands)}var remoteDtlsParameters=SDPUtils.getDtlsParameters(mediaSection,sessionpart);isIceLite&&(remoteDtlsParameters.role="server"),self.usingBundle&&0!==sdpMLineIndex||(iceTransport.start(iceGatherer,remoteIceParameters,isIceLite?"controlling":"controlled"),dtlsTransport.start(remoteDtlsParameters));var params=self._getCommonCapabilities(localCapabilities,remoteCapabilities);self._transceive(transceiver,params.codecs.length>0,!1)}})}switch(this.localDescription={type:description.type,sdp:description.sdp},description.type){case"offer":this._updateSignalingState("have-local-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+description.type+'"')}var hasCallback=arguments.length>1&&"function"==typeof arguments[1];if(hasCallback){var cb=arguments[1];window.setTimeout(function(){cb(),"new"===self.iceGatheringState&&(self.iceGatheringState="gathering"),self._emitBufferedCandidates()},0)}var p=Promise.resolve();return p.then(function(){hasCallback||("new"===self.iceGatheringState&&(self.iceGatheringState="gathering"),window.setTimeout(self._emitBufferedCandidates.bind(self),500))}),p},window.RTCPeerConnection.prototype.setRemoteDescription=function(description){var self=this,stream=new MediaStream,receiverList=[],sections=SDPUtils.splitSections(description.sdp),sessionpart=sections.shift(),isIceLite=SDPUtils.matchPrefix(sessionpart,"a=ice-lite").length>0;switch(this.usingBundle=SDPUtils.matchPrefix(sessionpart,"a=group:BUNDLE ").length>0,sections.forEach(function(mediaSection,sdpMLineIndex){var lines=SDPUtils.splitLines(mediaSection),mline=lines[0].substr(2).split(" "),kind=mline[0],rejected="0"===mline[1],direction=SDPUtils.getDirection(mediaSection,sessionpart),mid=SDPUtils.matchPrefix(mediaSection,"a=mid:");if(mid=mid.length?mid[0].substr(6):SDPUtils.generateIdentifier(),"application"===kind&&"DTLS/SCTP"===mline[2])return void(self.transceivers[sdpMLineIndex]={mid:mid,isDatachannel:!0});var transceiver,iceGatherer,iceTransport,dtlsTransport,rtpSender,rtpReceiver,sendEncodingParameters,recvEncodingParameters,localCapabilities,track,remoteIceParameters,remoteDtlsParameters,remoteCapabilities=SDPUtils.parseRtpParameters(mediaSection);rejected||(remoteIceParameters=SDPUtils.getIceParameters(mediaSection,sessionpart),remoteDtlsParameters=SDPUtils.getDtlsParameters(mediaSection,sessionpart),remoteDtlsParameters.role="client"),recvEncodingParameters=SDPUtils.parseRtpEncodingParameters(mediaSection);var cname,remoteSsrc=SDPUtils.matchPrefix(mediaSection,"a=ssrc:").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(obj){return"cname"===obj.attribute})[0];remoteSsrc&&(cname=remoteSsrc.value);var isComplete=SDPUtils.matchPrefix(mediaSection,"a=end-of-candidates",sessionpart).length>0,cands=SDPUtils.matchPrefix(mediaSection,"a=candidate:").map(function(cand){return SDPUtils.parseCandidate(cand)}).filter(function(cand){return"1"===cand.component});if("offer"!==description.type||rejected)"answer"!==description.type||rejected||(transceiver=self.transceivers[sdpMLineIndex],iceGatherer=transceiver.iceGatherer,iceTransport=transceiver.iceTransport,dtlsTransport=transceiver.dtlsTransport,rtpSender=transceiver.rtpSender,rtpReceiver=transceiver.rtpReceiver,sendEncodingParameters=transceiver.sendEncodingParameters,localCapabilities=transceiver.localCapabilities,self.transceivers[sdpMLineIndex].recvEncodingParameters=recvEncodingParameters,self.transceivers[sdpMLineIndex].remoteCapabilities=remoteCapabilities,self.transceivers[sdpMLineIndex].cname=cname,(isIceLite||isComplete)&&cands.length&&iceTransport.setRemoteCandidates(cands),self.usingBundle&&0!==sdpMLineIndex||(iceTransport.start(iceGatherer,remoteIceParameters,"controlling"),dtlsTransport.start(remoteDtlsParameters)),self._transceive(transceiver,"sendrecv"===direction||"recvonly"===direction,"sendrecv"===direction||"sendonly"===direction),!rtpReceiver||"sendrecv"!==direction&&"sendonly"!==direction?delete transceiver.rtpReceiver:(track=rtpReceiver.track,receiverList.push([track,rtpReceiver]),stream.addTrack(track)));else{var transports=self.usingBundle&&sdpMLineIndex>0?{iceGatherer:self.transceivers[0].iceGatherer,iceTransport:self.transceivers[0].iceTransport,dtlsTransport:self.transceivers[0].dtlsTransport}:self._createIceAndDtlsTransports(mid,sdpMLineIndex);if(isComplete&&transports.iceTransport.setRemoteCandidates(cands),localCapabilities=RTCRtpReceiver.getCapabilities(kind),localCapabilities.codecs=localCapabilities.codecs.filter(function(codec){return"rtx"!==codec.name}),sendEncodingParameters=[{ssrc:1001*(2*sdpMLineIndex+2)}],rtpReceiver=new RTCRtpReceiver(transports.dtlsTransport,kind),track=rtpReceiver.track,receiverList.push([track,rtpReceiver]),stream.addTrack(track),self.localStreams.length>0&&self.localStreams[0].getTracks().length>=sdpMLineIndex){var localTrack;"audio"===kind?localTrack=self.localStreams[0].getAudioTracks()[0]:"video"===kind&&(localTrack=self.localStreams[0].getVideoTracks()[0]),localTrack&&(rtpSender=new RTCRtpSender(localTrack,transports.dtlsTransport))}self.transceivers[sdpMLineIndex]={iceGatherer:transports.iceGatherer,iceTransport:transports.iceTransport,dtlsTransport:transports.dtlsTransport,localCapabilities:localCapabilities,remoteCapabilities:remoteCapabilities,rtpSender:rtpSender,rtpReceiver:rtpReceiver,kind:kind,mid:mid,cname:cname,sendEncodingParameters:sendEncodingParameters,recvEncodingParameters:recvEncodingParameters},self._transceive(self.transceivers[sdpMLineIndex],!1,"sendrecv"===direction||"sendonly"===direction)}}),this.remoteDescription={type:description.type,sdp:description.sdp},description.type){case"offer":this._updateSignalingState("have-remote-offer");break;case"answer":this._updateSignalingState("stable");break;default:throw new TypeError('unsupported type "'+description.type+'"')}return stream.getTracks().length&&(self.remoteStreams.push(stream),window.setTimeout(function(){var event=new Event("addstream");event.stream=stream,self.dispatchEvent(event),null!==self.onaddstream&&window.setTimeout(function(){self.onaddstream(event)},0),receiverList.forEach(function(item){var track=item[0],receiver=item[1],trackEvent=new Event("track");trackEvent.track=track,trackEvent.receiver=receiver,trackEvent.streams=[stream],self.dispatchEvent(event),null!==self.ontrack&&window.setTimeout(function(){self.ontrack(trackEvent)},0)})},0)),arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},window.RTCPeerConnection.prototype.close=function(){this.transceivers.forEach(function(transceiver){transceiver.iceTransport&&transceiver.iceTransport.stop(),transceiver.dtlsTransport&&transceiver.dtlsTransport.stop(),transceiver.rtpSender&&transceiver.rtpSender.stop(),transceiver.rtpReceiver&&transceiver.rtpReceiver.stop()}),this._updateSignalingState("closed")},window.RTCPeerConnection.prototype._updateSignalingState=function(newState){this.signalingState=newState;var event=new Event("signalingstatechange");this.dispatchEvent(event),null!==this.onsignalingstatechange&&this.onsignalingstatechange(event)},window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded=function(){var event=new Event("negotiationneeded");this.dispatchEvent(event),null!==this.onnegotiationneeded&&this.onnegotiationneeded(event)},window.RTCPeerConnection.prototype._updateConnectionState=function(){var newState,self=this,states={new:0,closed:0,connecting:0,checking:0,connected:0,completed:0,failed:0};if(this.transceivers.forEach(function(transceiver){states[transceiver.iceTransport.state]++,states[transceiver.dtlsTransport.state]++}),states.connected+=states.completed,newState="new",states.failed>0?newState="failed":states.connecting>0||states.checking>0?newState="connecting":states.disconnected>0?newState="disconnected":states.new>0?newState="new":(states.connected>0||states.completed>0)&&(newState="connected"),newState!==self.iceConnectionState){self.iceConnectionState=newState;var event=new Event("iceconnectionstatechange");this.dispatchEvent(event),null!==this.oniceconnectionstatechange&&this.oniceconnectionstatechange(event)}},window.RTCPeerConnection.prototype.createOffer=function(){var self=this;if(this._pendingOffer)throw new Error("createOffer called while there is a pending offer.");var offerOptions;1===arguments.length&&"function"!=typeof arguments[0]?offerOptions=arguments[0]:3===arguments.length&&(offerOptions=arguments[2]);var tracks=[],numAudioTracks=0,numVideoTracks=0;if(this.localStreams.length&&(numAudioTracks=this.localStreams[0].getAudioTracks().length,numVideoTracks=this.localStreams[0].getVideoTracks().length),offerOptions){if(offerOptions.mandatory||offerOptions.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==offerOptions.offerToReceiveAudio&&(numAudioTracks=offerOptions.offerToReceiveAudio),void 0!==offerOptions.offerToReceiveVideo&&(numVideoTracks=offerOptions.offerToReceiveVideo)}for(this.localStreams.length&&this.localStreams[0].getTracks().forEach(function(track){tracks.push({kind:track.kind,track:track,wantReceive:"audio"===track.kind?numAudioTracks>0:numVideoTracks>0}),"audio"===track.kind?numAudioTracks--:"video"===track.kind&&numVideoTracks--});numAudioTracks>0||numVideoTracks>0;)numAudioTracks>0&&(tracks.push({kind:"audio",wantReceive:!0}),numAudioTracks--),numVideoTracks>0&&(tracks.push({kind:"video",wantReceive:!0}),numVideoTracks--);var sdp=SDPUtils.writeSessionBoilerplate(),transceivers=[];tracks.forEach(function(mline,sdpMLineIndex){var track=mline.track,kind=mline.kind,mid=SDPUtils.generateIdentifier(),transports=self.usingBundle&&sdpMLineIndex>0?{iceGatherer:transceivers[0].iceGatherer,iceTransport:transceivers[0].iceTransport,dtlsTransport:transceivers[0].dtlsTransport}:self._createIceAndDtlsTransports(mid,sdpMLineIndex),localCapabilities=RTCRtpSender.getCapabilities(kind);localCapabilities.codecs=localCapabilities.codecs.filter(function(codec){return"rtx"!==codec.name}),localCapabilities.codecs.forEach(function(codec){"H264"===codec.name&&void 0===codec.parameters["level-asymmetry-allowed"]&&(codec.parameters["level-asymmetry-allowed"]="1")});var rtpSender,rtpReceiver,sendEncodingParameters=[{ssrc:1001*(2*sdpMLineIndex+1)}];track&&(rtpSender=new RTCRtpSender(track,transports.dtlsTransport)),mline.wantReceive&&(rtpReceiver=new RTCRtpReceiver(transports.dtlsTransport,kind)),transceivers[sdpMLineIndex]={iceGatherer:transports.iceGatherer,iceTransport:transports.iceTransport,dtlsTransport:transports.dtlsTransport,localCapabilities:localCapabilities,remoteCapabilities:null,rtpSender:rtpSender,rtpReceiver:rtpReceiver,kind:kind,mid:mid,sendEncodingParameters:sendEncodingParameters,recvEncodingParameters:null}}),this.usingBundle&&(sdp+="a=group:BUNDLE "+transceivers.map(function(t){return t.mid}).join(" ")+"\r\n"),tracks.forEach(function(mline,sdpMLineIndex){var transceiver=transceivers[sdpMLineIndex];sdp+=SDPUtils.writeMediaSection(transceiver,transceiver.localCapabilities,"offer",self.localStreams[0])}),this._pendingOffer=transceivers;var desc=new RTCSessionDescription({type:"offer",sdp:sdp});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,desc),Promise.resolve(desc)},window.RTCPeerConnection.prototype.createAnswer=function(){var self=this,sdp=SDPUtils.writeSessionBoilerplate();this.usingBundle&&(sdp+="a=group:BUNDLE "+this.transceivers.map(function(t){return t.mid}).join(" ")+"\r\n"),this.transceivers.forEach(function(transceiver){if(transceiver.isDatachannel)return void(sdp+="m=application 0 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=mid:"+transceiver.mid+"\r\n");var commonCapabilities=self._getCommonCapabilities(transceiver.localCapabilities,transceiver.remoteCapabilities);sdp+=SDPUtils.writeMediaSection(transceiver,commonCapabilities,"answer",self.localStreams[0])});var desc=new RTCSessionDescription({type:"answer",sdp:sdp});return arguments.length&&"function"==typeof arguments[0]&&window.setTimeout(arguments[0],0,desc),Promise.resolve(desc)},window.RTCPeerConnection.prototype.addIceCandidate=function(candidate){if(null===candidate)this.transceivers.forEach(function(transceiver){transceiver.iceTransport.addRemoteCandidate({})});else{var mLineIndex=candidate.sdpMLineIndex;if(candidate.sdpMid)for(var i=0;i<this.transceivers.length;i++)if(this.transceivers[i].mid===candidate.sdpMid){mLineIndex=i;break}var transceiver=this.transceivers[mLineIndex];if(transceiver){var cand=Object.keys(candidate.candidate).length>0?SDPUtils.parseCandidate(candidate.candidate):{};if("tcp"===cand.protocol&&(0===cand.port||9===cand.port))return;if("1"!==cand.component)return;"endOfCandidates"===cand.type&&(cand={}),transceiver.iceTransport.addRemoteCandidate(cand);var sections=SDPUtils.splitSections(this.remoteDescription.sdp);sections[mLineIndex+1]+=(cand.type?candidate.candidate.trim():"a=end-of-candidates")+"\r\n",this.remoteDescription.sdp=sections.join("")}}return arguments.length>1&&"function"==typeof arguments[1]&&window.setTimeout(arguments[1],0),Promise.resolve()},window.RTCPeerConnection.prototype.getStats=function(){var promises=[];this.transceivers.forEach(function(transceiver){["rtpSender","rtpReceiver","iceGatherer","iceTransport","dtlsTransport"].forEach(function(method){transceiver[method]&&promises.push(transceiver[method].getStats())})});var cb=arguments.length>1&&"function"==typeof arguments[1]&&arguments[1];return new Promise(function(resolve){var results=new Map;Promise.all(promises).then(function(res){res.forEach(function(result){Object.keys(result).forEach(function(id){results.set(id,result[id]),results[id]=result[id]})}),cb&&window.setTimeout(cb,0,results),resolve(results)})})}}};module.exports={shimPeerConnection:edgeShim.shimPeerConnection,shimGetUserMedia:require("./getusermedia")}},{"../utils":209,"./getusermedia":205,sdp:173}],205:[function(require,module,exports){arguments[4][37][0].apply(exports,arguments)},{dup:37}],206:[function(require,module,exports){"use strict";var browserDetails=require("../utils").browserDetails,firefoxShim={shimOnTrack:function(){"object"!=typeof window||!window.RTCPeerConnection||"ontrack"in window.RTCPeerConnection.prototype||Object.defineProperty(window.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(f){this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=f),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.getTracks().forEach(function(track){var event=new Event("track");event.track=track,event.receiver={track:track},event.streams=[e.stream],this.dispatchEvent(event)}.bind(this))}.bind(this))}})},shimSourceObject:function(){"object"==typeof window&&(!window.HTMLMediaElement||"srcObject"in window.HTMLMediaElement.prototype||Object.defineProperty(window.HTMLMediaElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},set:function(stream){this.mozSrcObject=stream}}))},shimPeerConnection:function(){if("object"==typeof window&&(window.RTCPeerConnection||window.mozRTCPeerConnection)){window.RTCPeerConnection||(window.RTCPeerConnection=function(pcConfig,pcConstraints){if(browserDetails.version<38&&pcConfig&&pcConfig.iceServers){for(var newIceServers=[],i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.hasOwnProperty("urls"))for(var j=0;j<server.urls.length;j++){var newServer={url:server.urls[j]};0===server.urls[j].indexOf("turn")&&(newServer.username=server.username,newServer.credential=server.credential),newIceServers.push(newServer)}else newIceServers.push(pcConfig.iceServers[i])}pcConfig.iceServers=newIceServers}return new mozRTCPeerConnection(pcConfig,pcConstraints)},window.RTCPeerConnection.prototype=mozRTCPeerConnection.prototype,mozRTCPeerConnection.generateCertificate&&Object.defineProperty(window.RTCPeerConnection,"generateCertificate",{get:function(){return mozRTCPeerConnection.generateCertificate}}),window.RTCSessionDescription=mozRTCSessionDescription,window.RTCIceCandidate=mozRTCIceCandidate),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(method){var nativeMethod=RTCPeerConnection.prototype[method];RTCPeerConnection.prototype[method]=function(){return arguments[0]=new("addIceCandidate"===method?RTCIceCandidate:RTCSessionDescription)(arguments[0]),nativeMethod.apply(this,arguments)}});var nativeAddIceCandidate=RTCPeerConnection.prototype.addIceCandidate;RTCPeerConnection.prototype.addIceCandidate=function(){return null===arguments[0]?(arguments[1]&&arguments[1].apply(null),Promise.resolve()):nativeAddIceCandidate.apply(this,arguments)};var makeMapStats=function(stats){var map=new Map;return Object.keys(stats).forEach(function(key){map.set(key,stats[key]),map[key]=stats[key]}),map},nativeGetStats=RTCPeerConnection.prototype.getStats;RTCPeerConnection.prototype.getStats=function(selector,onSucc,onErr){return nativeGetStats.apply(this,[selector||null]).then(function(stats){return makeMapStats(stats)}).then(onSucc,onErr)}}}};module.exports={shimOnTrack:firefoxShim.shimOnTrack,shimSourceObject:firefoxShim.shimSourceObject,shimPeerConnection:firefoxShim.shimPeerConnection,shimGetUserMedia:require("./getusermedia")}},{"../utils":209,"./getusermedia":207}],207:[function(require,module,exports){"use strict";var logging=require("../utils").log,browserDetails=require("../utils").browserDetails;module.exports=function(){var shimError_=function(e){return{name:{SecurityError:"NotAllowedError",PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:{"The operation is insecure.":"The request is not allowed by the user agent or the platform in the current context."}[e.message]||e.message,constraint:e.constraint,toString:function(){return this.name+(this.message&&": ")+this.message}}},getUserMedia_=function(constraints,onSuccess,onError){var constraintsToFF37_=function(c){if("object"!=typeof c||c.require)return c;var require=[];return Object.keys(c).forEach(function(key){if("require"!==key&&"advanced"!==key&&"mediaSource"!==key){var r=c[key]="object"==typeof c[key]?c[key]:{ideal:c[key]};if(void 0===r.min&&void 0===r.max&&void 0===r.exact||require.push(key),void 0!==r.exact&&("number"==typeof r.exact?r.min=r.max=r.exact:c[key]=r.exact,delete r.exact),void 0!==r.ideal){c.advanced=c.advanced||[];var oc={};"number"==typeof r.ideal?oc[key]={min:r.ideal,max:r.ideal}:oc[key]=r.ideal,c.advanced.push(oc),delete r.ideal,Object.keys(r).length||delete c[key]}}}),require.length&&(c.require=require),c};return constraints=JSON.parse(JSON.stringify(constraints)),browserDetails.version<38&&(logging("spec: "+JSON.stringify(constraints)),constraints.audio&&(constraints.audio=constraintsToFF37_(constraints.audio)),constraints.video&&(constraints.video=constraintsToFF37_(constraints.video)),logging("ff37: "+JSON.stringify(constraints))),navigator.mozGetUserMedia(constraints,onSuccess,function(e){onError(shimError_(e))})},getUserMediaPromise_=function(constraints){return new Promise(function(resolve,reject){getUserMedia_(constraints,resolve,reject)})};if(navigator.mediaDevices||(navigator.mediaDevices={getUserMedia:getUserMediaPromise_,addEventListener:function(){},removeEventListener:function(){}}),navigator.mediaDevices.enumerateDevices=navigator.mediaDevices.enumerateDevices||function(){return new Promise(function(resolve){var infos=[{kind:"audioinput",deviceId:"default",label:"",groupId:""},{kind:"videoinput",deviceId:"default",label:"",groupId:""}];resolve(infos)})},browserDetails.version<41){var orgEnumerateDevices=navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);navigator.mediaDevices.enumerateDevices=function(){return orgEnumerateDevices().then(void 0,function(e){if("NotFoundError"===e.name)return[];throw e})}}if(browserDetails.version<49){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){return origGetUserMedia(c).then(function(stream){if(c.audio&&!stream.getAudioTracks().length||c.video&&!stream.getVideoTracks().length)throw stream.getTracks().forEach(function(track){track.stop()}),new DOMException("The object can not be found here.","NotFoundError");return stream},function(e){return Promise.reject(shimError_(e))})}}navigator.getUserMedia=function(constraints,onSuccess,onError){return browserDetails.version<44?getUserMedia_(constraints,onSuccess,onError):(console.warn("navigator.getUserMedia has been replaced by navigator.mediaDevices.getUserMedia"),void navigator.mediaDevices.getUserMedia(constraints).then(onSuccess,onError))}}},{"../utils":209}],208:[function(require,module,exports){"use strict";var safariShim={shimGetUserMedia:function(){navigator.getUserMedia=navigator.webkitGetUserMedia}};module.exports={shimGetUserMedia:safariShim.shimGetUserMedia}},{}],209:[function(require,module,exports){"use strict";var logDisabled_=!0,utils={disableLog:function(bool){return"boolean"!=typeof bool?new Error("Argument type: "+typeof bool+". Please use a boolean."):(logDisabled_=bool,bool?"adapter.js logging disabled":"adapter.js logging enabled")},log:function(){if("object"==typeof window){if(logDisabled_)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}},extractVersion:function(uastring,expr,pos){var match=uastring.match(expr);return match&&match.length>=pos&&parseInt(match[pos],10)},detectBrowser:function(){var result={};if(result.browser=null,result.version=null,"undefined"==typeof window||!window.navigator)return result.browser="Not a browser.",result;if(navigator.mozGetUserMedia)result.browser="firefox",result.version=this.extractVersion(navigator.userAgent,/Firefox\/([0-9]+)\./,1);else if(navigator.webkitGetUserMedia)if(window.webkitRTCPeerConnection)result.browser="chrome",result.version=this.extractVersion(navigator.userAgent,/Chrom(e|ium)\/([0-9]+)\./,2);else{if(!navigator.userAgent.match(/Version\/(\d+).(\d+)/))return result.browser="Unsupported webkit-based browser with GUM support but no WebRTC support.",result;result.browser="safari",result.version=this.extractVersion(navigator.userAgent,/AppleWebKit\/([0-9]+)\./,1)}else{if(!navigator.mediaDevices||!navigator.userAgent.match(/Edge\/(\d+).(\d+)$/))return result.browser="Not a supported browser.",result;result.browser="edge",result.version=this.extractVersion(navigator.userAgent,/Edge\/(\d+).(\d+)$/,2)}return result}};module.exports={log:utils.log,disableLog:utils.disableLog,browserDetails:utils.detectBrowser(),extractVersion:utils.extractVersion}},{}],210:[function(require,module,exports){var prefix,version;window.mozRTCPeerConnection||navigator.mozGetUserMedia?(prefix="moz",version=parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1],10)):(window.webkitRTCPeerConnection||navigator.webkitGetUserMedia)&&(prefix="webkit",version=navigator.userAgent.match(/Chrom(e|ium)/)&&parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2],10));var PC=window.mozRTCPeerConnection||window.webkitRTCPeerConnection,IceCandidate=window.mozRTCIceCandidate||window.RTCIceCandidate,SessionDescription=window.mozRTCSessionDescription||window.RTCSessionDescription,MediaStream=window.webkitMediaStream||window.MediaStream,screenSharing="https:"===window.location.protocol&&("webkit"===prefix&&version>=26||"moz"===prefix&&version>=33),AudioContext=window.AudioContext||window.webkitAudioContext,videoEl=document.createElement("video"),supportVp8=videoEl&&videoEl.canPlayType&&"probably"===videoEl.canPlayType('video/webm; codecs="vp8", vorbis'),getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia;
+module.exports={prefix:prefix,browserVersion:version,support:!!PC&&supportVp8&&!!getUserMedia,supportRTCPeerConnection:!!PC,supportVp8:supportVp8,supportGetUserMedia:!!getUserMedia,supportDataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),supportWebAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),supportMediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),supportScreenSharing:!!screenSharing,dataChannel:!!(PC&&PC.prototype&&PC.prototype.createDataChannel),webAudio:!(!AudioContext||!AudioContext.prototype.createMediaStreamSource),mediaStream:!(!MediaStream||!MediaStream.prototype.removeTrack),screenSharing:!!screenSharing,AudioContext:AudioContext,PeerConnection:PC,SessionDescription:SessionDescription,IceCandidate:IceCandidate,MediaStream:MediaStream,getUserMedia:getUserMedia}},{}],211:[function(require,module,exports){function WildEmitter(){}module.exports=WildEmitter,WildEmitter.mixin=function(constructor){var prototype=constructor.prototype||constructor;prototype.isWildEmitter=!0,prototype.on=function(event,groupName,fn){this.callbacks=this.callbacks||{};var hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return func._groupName=group,(this.callbacks[event]=this.callbacks[event]||[]).push(func),this},prototype.once=function(event,groupName,fn){function on(){self.off(event,on),func.apply(this,arguments)}var self=this,hasGroup=3===arguments.length,group=hasGroup?arguments[1]:void 0,func=hasGroup?arguments[2]:arguments[1];return this.on(event,group,on),this},prototype.releaseGroup=function(groupName){this.callbacks=this.callbacks||{};var item,i,len,handlers;for(item in this.callbacks)for(handlers=this.callbacks[item],i=0,len=handlers.length;i<len;i++)handlers[i]._groupName===groupName&&(handlers.splice(i,1),i--,len--);return this},prototype.off=function(event,fn){this.callbacks=this.callbacks||{};var i,callbacks=this.callbacks[event];return callbacks?1===arguments.length?(delete this.callbacks[event],this):(i=callbacks.indexOf(fn),callbacks.splice(i,1),0===callbacks.length&&delete this.callbacks[event],this):this},prototype.emit=function(event){this.callbacks=this.callbacks||{};var i,len,listeners,args=[].slice.call(arguments,1),callbacks=this.callbacks[event],specialCallbacks=this.getWildcardCallbacks(event);if(callbacks)for(listeners=callbacks.slice(),i=0,len=listeners.length;i<len&&listeners[i];++i)listeners[i].apply(this,args);if(specialCallbacks)for(len=specialCallbacks.length,listeners=specialCallbacks.slice(),i=0,len=listeners.length;i<len&&listeners[i];++i)listeners[i].apply(this,[event].concat(args));return this},prototype.getWildcardCallbacks=function(eventName){this.callbacks=this.callbacks||{};var item,split,result=[];for(item in this.callbacks)split=item.split("*"),("*"===item||2===split.length&&eventName.slice(0,split[0].length)===split[0])&&(result=result.concat(this.callbacks[item]));return result}},WildEmitter.mixin(WildEmitter)},{}],212:[function(require,module,exports){module.exports={Namespace:require("./lib/namespaces"),MUC:require("./lib/muc"),PubSub:require("./lib/pubsub"),Jingle:require("./lib/jingle"),Presence:require("./lib/presence")}},{"./lib/jingle":213,"./lib/muc":214,"./lib/namespaces":215,"./lib/presence":216,"./lib/pubsub":217}],213:[function(require,module,exports){module.exports={Action:{CONTENT_ACCEPT:"content-accept",CONTENT_ADD:"content-add",CONTENT_MODIFY:"content-modify",CONTENT_REJECT:"content-reject",CONTENT_REMOVE:"content-remove",DESCRIPTION_INFO:"description-info",SECURITY_INFO:"security-info",SESSION_ACCEPT:"session-accept",SESSION_INFO:"session-info",SESSION_INITIATE:"session-initiate",SESSION_TERMINATE:"session-terminate",TRANSPORT_ACCEPT:"transport-accept",TRANSPORT_INFO:"transport-info",TRANSPORT_REJECT:"transport-reject",TRANSPORT_REPLACE:"transport-replace"},Reason:{ALTERNATIVE_SESSION:"alernative-session",BUSY:"busy",CANCEL:"cancel",CONNECTIVITY_ERROR:"connectivity-error",DECLINE:"decline",EXPIRED:"expired",FAILED_APPLICATION:"failed-application",FAILED_TRANSPORT:"failed-transport",GENERAL_ERROR:"general-error",GONE:"gone",INCOMPATIBLE_PARAMETERS:"incompatible-parameters",MEDIA_ERROR:"media-error",SECURITY_ERROR:"security-error",SUCCESS:"success",TIMEOUT:"timeout",UNSUPPORTED_APPLICATIONS:"unsupported-applications",UNSUPPORTED_TRANSPORTS:"unsupported-transports"},Condition:{OUT_OF_ORDER:"out-of-order",TIE_BREAK:"tie-break",UNKNOWN_SESSION:"unknown-session",UNSUPPORTED_INFO:"unsupported-info"}}},{}],214:[function(require,module,exports){module.exports={Status:{REALJID_PUBLIC:"100",AFFILIATION_CHANGED:"101",UNAVAILABLE_SHOWN:"102",UNAVAILABLE_NOT_SHOWN:"103",CONFIGURATION_CHANGED:"104",SELF_PRESENCE:"110",LOGGING_ENABLED:"170",LOGGING_DISABLED:"171",NON_ANONYMOUS:"172",SEMI_ANONYMOUS:"173",FULLY_ANONYMOUS:"174",ROOM_CREATED:"201",NICK_ASSIGNED:"210",BANNED:"301",NEW_NICK:"303",KICKED:"307",REMOVED_AFFILIATION:"321",REMOVED_MEMBERSHIP:"322",REMOVED_SHUTDOWN:"332"},Affiliation:{ADMIN:"admin",MEMBER:"member",NONE:"none",OUTCAST:"outcast",OWNER:"owner"},Role:{MODERATOR:"moderator",NONE:"none",PARTICIPANT:"participant",VISITOR:"visitor"}}},{}],215:[function(require,module,exports){module.exports={BIND:"urn:ietf:params:xml:ns:xmpp-bind",CLIENT:"jabber:client",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",SERVER:"jabber:server",SESSION:"urn:ietf:params:xml:ns:xmpp-session",STANZA_ERROR:"urn:ietf:params:xml:ns:xmpp-stanzas",STREAM:"http://etherx.jabber.org/streams",STREAM_ERROR:"urn:ietf:params:xml:ns:xmpp-streams",ROSTER:"jabber:iq:roster",ROSTER_VERSIONING:"urn:xmpp:features:rosterver",SUBSCRIPTION_PREAPPROVAL:"urn:xmpp:features:pre-approval",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",DATAFORM:"jabber:x:data",RPC:"jabber:iq:rpc",LAST_ACTIVITY:"jabber:iq:last",PRIVACY:"jabber:iq:privacy",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",ADDRESS:"http://jabber.org/protocol/address",MUC:"http://jabber.org/protocol/muc",MUC_ADMIN:"http://jabber.org/protocol/muc#admin",MUC_OWNER:"http://jabber.org/protocol/muc#owner",MUC_USER:"http://jabber.org/protocol/muc#user",IBB:"http://jabber.org/protocol/ibb",BOOKMARKS:"storage:bookmarks",PRIVATE:"jabber:iq:private",ADHOC_COMMANDS:"http://jabber.org/protocol/commands",VCARD_TEMP:"vcard-temp",SEARCH:"jabber:iq:search",RSM:"http://jabber.org/protocol/rsm",PUBSUB:"http://jabber.org/protocol/pubsub",PUBSUB_ERRORS:"http://jabber.org/protocol/pubsub#errors",PUBSUB_EVENT:"http://jabber.org/protocol/pubsub#event",PUBSUB_OWNER:"http://jabber.org/protocol/pubsub#owner",SOCKS5:"http://jabber.org/protocol/bytestreams",OOB:"jabber:x:oob",HTTP_AUTH:"http://jabber.org/protocol/http-auth",XHTML_IM:"http://jabber.org/protocol/xhtml-im",REGISTER:"jabber:iq:register",AMP:"http://jabber.org/protocol/amp",GEOLOC:"http://jabber.org/protocol/geoloc",ROSTER_DELIMITER:"roster:delimiter",AVATAR_DATA:"urn:xmpp:avatar:data",AVATAR_METADATA:"urn:xmpp:avatar:metadata",CHAT_STATES:"http://jabber.org/protocol/chatstates",VERSION:"jabber:iq:version",MOOD:"http://jabber.org/protocol/mood",ACTIVITY:"http://jabber.org/protocol/activity",COMPONENT:"jabber:component:accept",CAPS:"http://jabber.org/protocol/caps",TUNE:"http://jabber.org/protocol/tune",DATAFORM_VALIDATION:"http://jabber.org/protocol/xdata-validate",BOSH:"http://jabber.org/protocol/httpbind",SHIM:"http://jabber.org/protocol/shim",COMPRESSION:"http://jabber.org/features/compress",DATAFORM_LAYOUT:"http://jabber.org/protocol/xdata-layout",ROSTER_EXCHANGE:"http://jabber.org/protocol/rosterx",ROSTER_NOTES:"storage:rosternotes",REACH_0:"urn:xmpp:reach:0",VCARD_TEMP_UPDATE:"vcard-temp:x:update",CAPTCHA:"urn:xmpp:captcha",JINGLE_1:"urn:xmpp:jingle:1",JINGLE_ERRORS_1:"urn:xmpp:jingle:errors:1",JINGLE_RTP_1:"urn:xmpp:jingle:apps:rtp:1",JINGLE_RTP_ERRORS_1:"urn:xmpp:jingle:apps:rtp:errors:1",JINGLE_RTP_INFO_1:"urn:xmpp:jingle:apps:rtp:info:1",LANG_TRANS:"urn:xmpp:langtrans",LANG_TRANS_ITEMS:"urn:xmpp:langtrans:items",NICK:"http://jabber.org/protocol/nick",JINGLE_ICE_UDP_1:"urn:xmpp:jingle:transports:ice-udp:1",JINGLE_RAW_UDP_1:"urn:xmpp:jingle:transports:raw-udp:1",RECEIPTS:"urn:xmpp:receipts",INVISIBLE_0:"urn:xmpp:invisible:0",BLOCKING:"urn:xmpp:blocking",SMACKS_3:"urn:xmpp:sm:3",PING:"urn:xmpp:ping",TIME:"urn:xmpp:time",DELAY:"urn:xmpp:delay",BOSH_XMPP:"urn:xmpp:xbosh",DISCO_EXTERNAL_1:"urn:xmpp:extdisco:1",DATAFORM_MEDIA:"urn:xmpp:media-element",ATTENTION_0:"urn:xmpp:attention:0",BOB:"urn:xmpp:bob",FILE_TRANSFER_3:"urn:xmpp:jingle:apps:file-transfer:3",FILE_TRANSFER_4:"urn:xmpp:jingle:apps:file-transfer:4",MUC_DIRECT_INVITE:"jabber:x:conference",SEC_LABEL_0:"urn:xmpp:sec-label:0",SEC_LABEL_CATALOG_2:"urn:xmpp:sec-label:catalog:2",SEC_LABEL_ESS_0:"urn:xmpp:sec-label:ess:0",JINGLE_SOCKS5_1:"urn:xmpp:jingle:transports:s5b:1",JINGLE_IBB_1:"urn:xmpp:jingle:transports:ibb:1",JINGLE_RTP_ZRTP_1:"urn:xmpp:jingle:apps:rtp:zrtp:1",THUMBS_0:"urn:xmpp:thumbs:0",THUMBS_1:"urn:xmpp:thumbs:1",DECLOAKING_0:"urn:xmpp:decloaking:0",CARBONS_2:"urn:xmpp:carbons:2",JINGLE_RTP_RTCP_FB_0:"urn:xmpp:jingle:apps:rtp:rtcp-fb:0",JINGLE_RTP_HDREXT_0:"urn:xmpp:jingle:apps:rtp:rtp-hdrext:0",FORWARD_0:"urn:xmpp:forward:0",HASHES_1:"urn:xmpp:hashes:1",RTT_0:"urn:xmpp:rtt:0",MUC_UNIQUE:"http://jabber.org/protocol/muc#unique",CORRECTION_0:"urn:xmpp:message-correct:0",PSA:"urn:xmpp:psa",MAM_TMP:"urn:xmpp:mam:tmp",MAM_0:"urn:xmpp:mam:0",HATS_0:"urn:xmpp:hats:0",IDLE_1:"urn:xmpp:idle:1",JINGLE_DTLS_0:"urn:xmpp:jingle:apps:dtls:0",JID_PREP_0:"urn:xmpp:jidprep:0",HINTS:"urn:xmpp:hints",JSON_0:"urn:xmpp:json:0",EVENTLOG:"urn:xmpp:eventlog",JINGLE_GROUPING_0:"urn:xmpp:jingle:apps:grouping:0",JINGLE_RTP_SSMA_0:"urn:xmpp:jingle:apps:rtp:ssma:0",COLIBRI:"http://jitsi.org/protocol/colibri",DTLS_SCTP_1:"urn:xmpp:jingle:transports:dtls-sctp:1",CSI:"urn:xmpp:csi",JINGLE_MSG_INITIATE_0:"urn:xmpp:jingle:jingle-message:0",PUSH_0:"urn:xmpp:push:0",JINGLE_PUB_1:"urn:xmpp:jinglepub:1"}},{}],216:[function(require,module,exports){module.exports={Type:{SUBSCRIBE:"subscribe",SUBSCRIBED:"subscribed",UNSUBSCRIBE:"unsubscribe",UNSUBSCRIBED:"unsubscribed",PROBE:"probe",UNAVAILABLE:"unavailable"},Show:{CHAT:"chat",AWAY:"away",DO_NOT_DISTURB:"dnd",EXTENDED_AWAY:"xa"}}},{}],217:[function(require,module,exports){module.exports={Affiliation:{MEMBER:"member",NONE:"none",OUTCAST:"outcast",OWNER:"owner",PUBLISHER:"publisher",PUBLISH_ONLY:"publish-only"},Subscription:{NONE:"none",PENDING:"pending",UNCONFIGURED:"unconfigured",SUBSCRIBED:"subscribed"},AccessModel:{OPEN:"open",PRESENCE:"presence",ROSTER:"roster",AUTHORIZE:"authorize",WHITELIST:"whitelist"},Condition:{CONFLICT:"conflict"}}},{}],218:[function(require,module,exports){"use strict";function bareJID(local,domain){return local?local+"@"+domain:domain}function fullJID(local,domain,resource){return resource?bareJID(local,domain)+"/"+resource:bareJID(local,domain)}var StringPrep=require("./lib/stringprep"),ASCII=/^[\x00-\x7F]*$/;exports.prep=function(data){var local=data.local,domain=data.domain,resource=data.resource,unescapedLocal=local;return local&&(local=StringPrep.nodeprep(local),unescapedLocal=exports.unescape(local)),resource&&(resource=StringPrep.resourceprep(resource)),"."===domain[domain.length-1]&&(domain=domain.slice(0,domain.length-1)),domain=StringPrep.nameprep(domain.split(".").map(StringPrep.toUnicode).join(".")),{prepped:data.prepped||StringPrep.available,local:local,domain:domain,resource:resource,bare:bareJID(local,domain),full:fullJID(local,domain,resource),unescapedLocal:unescapedLocal,unescapedBare:bareJID(unescapedLocal,domain),unescapedFull:fullJID(unescapedLocal,domain,resource)}},exports.parse=function(jid,trusted){var local="",domain="",resource="";trusted=trusted||ASCII.test(jid);var resourceStart=jid.indexOf("/");resourceStart>0&&(resource=jid.slice(resourceStart+1),jid=jid.slice(0,resourceStart));var localEnd=jid.indexOf("@");localEnd>0&&(local=jid.slice(0,localEnd),jid=jid.slice(localEnd+1)),domain=jid;var preppedJID=exports.prep({local:local,domain:domain,resource:resource});return preppedJID.prepped=preppedJID.prepped||trusted,preppedJID},exports.equal=function(jid1,jid2,requirePrep){return jid1=new exports.JID(jid1),jid2=new exports.JID(jid2),2===arguments.length&&(requirePrep=!0),jid1.local===jid2.local&&jid1.domain===jid2.domain&&jid1.resource===jid2.resource&&(!requirePrep||jid1.prepped&&jid2.prepped)},exports.equalBare=function(jid1,jid2,requirePrep){return jid1=new exports.JID(jid1),jid2=new exports.JID(jid2),2===arguments.length&&(requirePrep=!0),jid1.local===jid2.local&&jid1.domain===jid2.domain&&(!requirePrep||jid1.prepped&&jid2.prepped)},exports.isBare=function(jid){jid=new exports.JID(jid);var hasResource=!!jid.resource;return!hasResource},exports.isFull=function(jid){jid=new exports.JID(jid);var hasResource=!!jid.resource;return hasResource},exports.escape=function(val){return val.replace(/^\s+|\s+$/g,"").replace(/\\5c/g,"\\5c5c").replace(/\\20/g,"\\5c20").replace(/\\22/g,"\\5c22").replace(/\\26/g,"\\5c26").replace(/\\27/g,"\\5c27").replace(/\\2f/g,"\\5c2f").replace(/\\3a/g,"\\5c3a").replace(/\\3c/g,"\\5c3c").replace(/\\3e/g,"\\5c3e").replace(/\\40/g,"\\5c40").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(/</g,"\\3c").replace(/>/g,"\\3e").replace(/@/g,"\\40")},exports.unescape=function(val){return val.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},exports.create=function(local,domain,resource){return new exports.JID(local,domain,resource)},exports.JID=function(localOrJID,domain,resource){var parsed={};if(!localOrJID||domain||resource)if(domain){var trusted=ASCII.test(localOrJID)&&ASCII.test(domain);resource&&(trusted=trusted&&ASCII.test(resource)),parsed=exports.prep({local:exports.escape(localOrJID),domain:domain,resource:resource,prepped:trusted})}else parsed={};else if("string"==typeof localOrJID)parsed=exports.parse(localOrJID);else{if(!(localOrJID._isJID||localOrJID instanceof exports.JID))throw new Error("Invalid argument type");parsed=localOrJID}this._isJID=!0,this.local=parsed.local||"",this.domain=parsed.domain||"",this.resource=parsed.resource||"",this.bare=parsed.bare||"",this.full=parsed.full||"",this.unescapedLocal=parsed.unescapedLocal||"",this.unescapedBare=parsed.unescapedBare||"",this.unescapedFull=parsed.unescapedFull||"",this.prepped=parsed.prepped},exports.JID.prototype.toString=function(){return this.full},exports.JID.prototype.toJSON=function(){return this.full}},{"./lib/stringprep":219}],219:[function(require,module,exports){"use strict";var punycode=require("punycode");exports.available=!1,exports.toUnicode=punycode.toUnicode,exports.nameprep=function(str){return str.toLowerCase()},exports.nodeprep=function(str){return str.toLowerCase()},exports.resourceprep=function(str){return str}},{punycode:154}],220:[function(require,module,exports){"use strict";var JSM=require("jingle"),RTC=require("webrtc-adapter-test"),GUM=require("getusermedia"),GSM=require("getscreenmedia"),jxt=require("jxt").createRegistry();jxt.use(require("jxt-xmpp-types")),jxt.use(require("jxt-xmpp"));var IqStanza=jxt.getDefinition("iq","jabber:client");!function($){Strophe.addConnectionPlugin("jingle",{connection:null,peer_constraints:{},AUTOACCEPT:!1,localStream:null,manager:null,RTC:null,getUserMedia:null,getScreenMedia:null,init:function(conn){var self=this;self.RTC=RTC,self.getUserMedia=GUM,self.getScreenMedia=GSM,self.connection=conn,RTC.webrtcDetectedVersion<33&&"firefox"===RTC.webrtcDetectedBrowser||"chrome"===RTC.webrtcDetectedBrowser?(self.peer_constraints={mandatory:{OfferToReceiveAudio:!0,OfferToReceiveVideo:!0}},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mandatory.MozDontOfferDataChannel=!0)):(self.peer_constraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},"firefox"===RTC.webrtcDetectedBrowser&&(self.peer_constraints.mozDontOfferDataChannel=!0)),self.manager=new JSM({peerConnectionConstraints:self.peer_constraints,jid:self.connection.jid,selfID:self.connection.jid});var events={incoming:"callincoming.jingle",terminated:"callterminated.jingle",peerStreamAdded:"remotestreamadded.jingle",peerStreamRemoved:"remotestreamremoved.jingle",ringing:"ringing.jingle","log:error":"error.jingle"};if($.each(events,function(key,val){self.manager.on(key,function(){$(document).trigger(val,arguments)})}),self.manager.on("incoming",function(session){session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])})}),this.connection.disco){var i;for(i=0;i<self.manager.capabilities.length;i++)self.connection.disco.addFeature(self.manager.capabilities[i])}this.connection.addHandler(this.onJingle.bind(this),"urn:xmpp:jingle:1","iq","set",null,null),this.manager.on("send",function(data){var iq=new IqStanza(data);self.connection.send($.parseXML(iq.toString()).getElementsByTagName("iq")[0])})},onJingle:function(iq){var req=jxt.parse(iq.outerHTML);return this.manager.process(req.toJSON()),!0},initiate:function(peerjid,stream,offerOptions){var session=this.manager.createMediaSession(peerjid);return session.on("change:connectionState",function(session,state){$(document).trigger("iceconnectionstatechange.jingle",[session.sid,session,state])}),stream&&(this.localStream=stream),this.localStream?(session.addStream(this.localStream),session.start(offerOptions),session):void console.error("No local stream defined")},terminate:function(jid,reason,silent){"undefined"==typeof jid||null===jid?this.manager.endAllSessions(reason,silent):this.manager.endPeerSessions(jid,reason,silent)},terminateByJid:function(jid){this.manager.endPeerSessions(jid)},addICEServer:function(server){this.manager.addICEServer(server)},setICEServers:function(servers){this.manager.iceServers=servers},setPeerConstraints:function(constraints){this.manager.config.peerConnectionConstraints=constraints}})}(jQuery)},{getscreenmedia:31,getusermedia:32,jingle:53,jxt:120,"jxt-xmpp":81,"jxt-xmpp-types":54,"webrtc-adapter-test":200}]},{},[220]),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.Salsa20=factory()}(this,function(){function Salsa20(key,nonce){this.rounds=20,this.sigmaWords=[1634760805,857760878,2036477234,1797285236],this.keyWords=[],this.nonceWords=[0,0],this.counterWords=[0,0],this.block=[],this.blockUsed=64,this.setKey(key),this.setNonce(nonce)}return Salsa20.prototype.setKey=function(key){for(var i=0,j=0;i<8;i++,j+=4)this.keyWords[i]=255&key[j]|(255&key[j+1])<<8|(255&key[j+2])<<16|(255&key[j+3])<<24;this._reset()},Salsa20.prototype.setNonce=function(nonce){this.nonceWords[0]=255&nonce[0]|(255&nonce[1])<<8|(255&nonce[2])<<16|(255&nonce[3])<<24,this.nonceWords[1]=255&nonce[4]|(255&nonce[5])<<8|(255&nonce[6])<<16|(255&nonce[7])<<24,this._reset()},Salsa20.prototype.getBytes=function(numberOfBytes){for(var out=new Array(numberOfBytes),i=0;i<numberOfBytes;i++)64==this.blockUsed&&(this._generateBlock(),this._incrementCounter(),this.blockUsed=0),out[i]=this.block[this.blockUsed],this.blockUsed++;return out},Salsa20.prototype.getHexString=function(numberOfBytes){for(var hex=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],out=[],bytes=this.getBytes(numberOfBytes),i=0;i<bytes.length;i++)out.push(hex[bytes[i]>>4&15]),out.push(hex[15&bytes[i]]);return out.join("")},Salsa20.prototype._reset=function(){this.counterWords[0]=0,this.counterWords[1]=0,this.blockUsed=64},Salsa20.prototype._incrementCounter=function(){this.counterWords[0]=this.counterWords[0]+1&4294967295,0==this.counterWords[0]&&(this.counterWords[1]=this.counterWords[1]+1&4294967295)},Salsa20.prototype._generateBlock=function(){for(var u,j0=this.sigmaWords[0],j1=this.keyWords[0],j2=this.keyWords[1],j3=this.keyWords[2],j4=this.keyWords[3],j5=this.sigmaWords[1],j6=this.nonceWords[0],j7=this.nonceWords[1],j8=this.counterWords[0],j9=this.counterWords[1],j10=this.sigmaWords[2],j11=this.keyWords[4],j12=this.keyWords[5],j13=this.keyWords[6],j14=this.keyWords[7],j15=this.sigmaWords[3],x0=j0,x1=j1,x2=j2,x3=j3,x4=j4,x5=j5,x6=j6,x7=j7,x8=j8,x9=j9,x10=j10,x11=j11,x12=j12,x13=j13,x14=j14,x15=j15,i=0;i<this.rounds;i+=2)u=x0+x12,x4^=u<<7|u>>>25,u=x4+x0,x8^=u<<9|u>>>23,u=x8+x4,x12^=u<<13|u>>>19,u=x12+x8,x0^=u<<18|u>>>14,u=x5+x1,x9^=u<<7|u>>>25,u=x9+x5,x13^=u<<9|u>>>23,u=x13+x9,x1^=u<<13|u>>>19,u=x1+x13,x5^=u<<18|u>>>14,u=x10+x6,x14^=u<<7|u>>>25,u=x14+x10,x2^=u<<9|u>>>23,u=x2+x14,x6^=u<<13|u>>>19,u=x6+x2,x10^=u<<18|u>>>14,u=x15+x11,x3^=u<<7|u>>>25,u=x3+x15,x7^=u<<9|u>>>23,u=x7+x3,x11^=u<<13|u>>>19,u=x11+x7,x15^=u<<18|u>>>14,u=x0+x3,x1^=u<<7|u>>>25,u=x1+x0,x2^=u<<9|u>>>23,u=x2+x1,x3^=u<<13|u>>>19,u=x3+x2,x0^=u<<18|u>>>14,u=x5+x4,x6^=u<<7|u>>>25,u=x6+x5,x7^=u<<9|u>>>23,u=x7+x6,x4^=u<<13|u>>>19,u=x4+x7,x5^=u<<18|u>>>14,u=x10+x9,x11^=u<<7|u>>>25,u=x11+x10,x8^=u<<9|u>>>23,u=x8+x11,x9^=u<<13|u>>>19,u=x9+x8,x10^=u<<18|u>>>14,u=x15+x14,x12^=u<<7|u>>>25,u=x12+x15,x13^=u<<9|u>>>23,u=x13+x12,x14^=u<<13|u>>>19,u=x14+x13,x15^=u<<18|u>>>14;x0+=j0,x1+=j1,x2+=j2,x3+=j3,x4+=j4,x5+=j5,x6+=j6,x7+=j7,x8+=j8,x9+=j9,x10+=j10,x11+=j11,x12+=j12,x13+=j13,x14+=j14,x15+=j15,this.block[0]=x0>>>0&255,this.block[1]=x0>>>8&255,this.block[2]=x0>>>16&255,this.block[3]=x0>>>24&255,this.block[4]=x1>>>0&255,this.block[5]=x1>>>8&255,this.block[6]=x1>>>16&255,this.block[7]=x1>>>24&255,this.block[8]=x2>>>0&255,this.block[9]=x2>>>8&255,this.block[10]=x2>>>16&255,this.block[11]=x2>>>24&255,this.block[12]=x3>>>0&255,this.block[13]=x3>>>8&255,this.block[14]=x3>>>16&255,this.block[15]=x3>>>24&255,this.block[16]=x4>>>0&255,this.block[17]=x4>>>8&255,this.block[18]=x4>>>16&255,this.block[19]=x4>>>24&255,this.block[20]=x5>>>0&255,this.block[21]=x5>>>8&255,this.block[22]=x5>>>16&255,this.block[23]=x5>>>24&255,this.block[24]=x6>>>0&255,this.block[25]=x6>>>8&255,this.block[26]=x6>>>16&255,this.block[27]=x6>>>24&255,this.block[28]=x7>>>0&255,this.block[29]=x7>>>8&255,this.block[30]=x7>>>16&255,this.block[31]=x7>>>24&255,this.block[32]=x8>>>0&255,this.block[33]=x8>>>8&255,this.block[34]=x8>>>16&255,this.block[35]=x8>>>24&255,this.block[36]=x9>>>0&255,this.block[37]=x9>>>8&255,this.block[38]=x9>>>16&255,this.block[39]=x9>>>24&255,this.block[40]=x10>>>0&255,this.block[41]=x10>>>8&255,this.block[42]=x10>>>16&255,this.block[43]=x10>>>24&255,this.block[44]=x11>>>0&255,this.block[45]=x11>>>8&255,this.block[46]=x11>>>16&255,this.block[47]=x11>>>24&255,this.block[48]=x12>>>0&255,this.block[49]=x12>>>8&255,this.block[50]=x12>>>16&255,this.block[51]=x12>>>24&255,this.block[52]=x13>>>0&255,this.block[53]=x13>>>8&255,this.block[54]=x13>>>16&255,this.block[55]=x13>>>24&255,this.block[56]=x14>>>0&255,this.block[57]=x14>>>8&255,this.block[58]=x14>>>16&255,this.block[59]=x14>>>24&255,this.block[60]=x15>>>0&255,this.block[61]=x15>>>8&255,this.block[62]=x15>>>16&255,this.block[63]=x15>>>24&255},Salsa20}),function(root,factory){if("function"==typeof define&&define.amd)define(factory.bind(root,root.crypto||root.msCrypto));else if("undefined"!=typeof module&&module.exports)module.exports=factory(require("crypto"));else try{root.BigInt=factory(root.crypto||root.msCrypto)}catch(e){console.warn(e.message)}}(this,function(crypto){function findPrimes(n){var i,s,p,ans;for(s=new Array(n),i=0;i<n;i++)s[i]=0;for(s[0]=2,p=0;s[p]<n;){for(i=s[p]*s[p];i<n;i+=s[p])s[i]=1;for(p++,s[p]=s[p-1]+1;s[p]<n&&s[s[p]];s[p]++);}for(ans=new Array(p),i=0;i<p;i++)ans[i]=s[i];return ans}function millerRabin(x,b){var i,j,k,s;if(mr_x1.length!=x.length&&(mr_x1=dup(x),mr_r=dup(x),mr_a=dup(x)),copy_(mr_a,b),copy_(mr_r,x),copy_(mr_x1,x),addInt_(mr_r,-1),addInt_(mr_x1,-1),isZero(mr_r))return 0;for(k=0;0==mr_r[k];k++);for(i=1,j=2;mr_r[k]%j==0;j*=2,i++);if(s=k*bpe+i-1,s&&rightShift_(mr_r,s),powMod_(mr_a,mr_r,x),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(j=1;j<=s-1&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,x),equalsInt(mr_a,1))return 0;j++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(x){var j,z,w;for(j=x.length-1;0==x[j]&&j>0;j--);for(z=0,w=x[j];w;w>>=1,z++);return z+=bpe*j}function expand(x,n){var ans=int2bigInt(0,(x.length>n?x.length:n)*bpe,0);return copy_(ans,x),ans}function mod(x,n){var ans=dup(x);return mod_(ans,n),trim(ans,1)}function mult(x,y){var ans=expand(x,x.length+y.length);return mult_(ans,y),trim(ans,1)}function powMod(x,y,n){var ans=expand(x,n.length);return powMod_(ans,trim(y,2),trim(n,2),0),trim(ans,1)}function sub(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return sub_(ans,y),trim(ans,1)}function add(x,y){var ans=expand(x,x.length>y.length?x.length+1:y.length+1);return add_(ans,y),trim(ans,1)}function inverseMod(x,n){var s,ans=expand(x,n.length);return s=inverseMod_(ans,n),s?trim(ans,1):null}function multMod(x,y,n){var ans=expand(x,n.length);return multMod_(ans,y,n),trim(ans,1)}function randBigInt(n,s){var a,b;return a=Math.floor((n-1)/bpe)+2,b=int2bigInt(0,0,a),randBigInt_(b,n,s),b}function randBigInt_(b,n,s){var i,a;for(i=0;i<b.length;i++)b[i]=0;for(a=Math.floor((n-1)/bpe)+1,i=0;i<a;i++)b[i]=randomBitInt(bpe);b[a-1]&=(2<<(n-1)%bpe)-1,1==s&&(b[a-1]|=1<<(n-1)%bpe)}function inverseMod_(x,n){var k=1+2*Math.max(x.length,n.length);if(!(1&x[0]||1&n[0]))return copyInt_(x,0),0;for(eg_u.length!=k&&(eg_u=new Array(k),eg_v=new Array(k),eg_A=new Array(k),eg_B=new Array(k),eg_C=new Array(k),eg_D=new Array(k)),copy_(eg_u,x),copy_(eg_v,n),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,n),halve_(eg_A),sub_(eg_B,x),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,n),halve_(eg_C),sub_(eg_D,x),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,n);return copy_(x,eg_C),equalsInt(eg_v,1)?1:(copyInt_(x,0),0)}}}function inverseModInt(x,n){for(var a=1,b=0;;){if(1==x)return a;if(0==x)return 0;if(b-=a*Math.floor(n/x),n%=x,1==n)return b;if(0==n)return 0;a-=b*Math.floor(x/n),x%=n}}function negative(x){return x[x.length-1]>>bpe-1&1}function greaterShift(x,y,shift){var i,kx=x.length,ky=y.length,k=kx+shift<ky?kx+shift:ky;for(i=ky-1-shift;i<kx&&i>=0;i++)if(x[i]>0)return 1;for(i=kx-1+shift;i<ky;i++)if(y[i]>0)return 0;for(i=k-1;i>=shift;i--){if(x[i-shift]>y[i])return 1;if(x[i-shift]<y[i])return 0}return 0}function greater(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=x.length;i<y.length;i++)if(y[i])return 0;for(i=y.length;i<x.length;i++)if(x[i])return 1;for(i=k-1;i>=0;i--){if(x[i]>y[i])return 1;if(x[i]<y[i])return 0}return 0}function divide_(x,y,q,r){var kx,ky,i,y1,y2,c,a,b;for(copy_(r,x),ky=y.length;0==y[ky-1];ky--);for(b=y[ky-1],a=0;b;a++)b>>=1;for(a=bpe-a,leftShift_(y,a),leftShift_(r,a),kx=r.length;0==r[kx-1]&&kx>ky;kx--);for(copyInt_(q,0);!greaterShift(y,r,kx-ky);)subShift_(r,y,kx-ky),q[kx-ky]++;for(i=kx-1;i>=ky;i--){for(r[i]==y[ky-1]?q[i-ky]=mask:q[i-ky]=Math.floor((r[i]*radix+r[i-1])/y[ky-1]);y2=(ky>1?y[ky-2]:0)*q[i-ky],c=y2,y2&=mask,c=(c-y2)/radix,y1=c+q[i-ky]*y[ky-1],c=y1,y1&=mask,c=(c-y1)/radix,c==r[i]?y1==r[i-1]?y2>(i>1?r[i-2]:0):y1>r[i-1]:c>r[i];)q[i-ky]--;linCombShift_(r,y,-q[i-ky],i-ky),negative(r)&&(addShift_(r,y,i-ky),q[i-ky]--)}rightShift_(y,a),rightShift_(r,a)}function modInt(x,n){var i,c=0;for(i=x.length-1;i>=0;i--)c=(c*radix+x[i])%n;return c}function int2bigInt(t,bits,minSize){var k,buff;return k=Math.ceil(bits/bpe)+1,k=minSize>k?minSize:k,buff=new Array(k),copyInt_(buff,t),buff}function str2bigInt(s,base,minSize){var d,i,x,y,kk,k=s.length;if(base==-1){for(x=new Array(0);;){for(y=new Array(x.length+1),i=0;i<x.length;i++)y[i+1]=x[i];if(y[0]=parseInt(s,10),x=y,d=s.indexOf(",",0),d<1)break;if(s=s.substring(d+1),0==s.length)break}return x.length<minSize?(y=new Array(minSize),copy_(y,x),y):x}for(var bb=base,p=0,b=1==base?k:0;bb>1;)1&bb&&(p=1),b+=k,bb>>=1;for(b+=p*k,x=int2bigInt(0,b,0),i=0;i<k&&(d=digitsStr.indexOf(s.substring(i,i+1),0),base<=36&&d>=36&&(d-=26),!(d>=base||d<0));i++)multInt_(x,base),addInt_(x,d);for(k=x.length;k>0&&!x[k-1];k--);for(k=minSize>k+1?minSize:k+1,y=new Array(k),kk=k<x.length?k:x.length,i=0;i<kk;i++)y[i]=x[i];for(;i<k;i++)y[i]=0;return y}function equalsInt(x,y){var i;if(x[0]!=y)return 0;for(i=1;i<x.length;i++)if(x[i])return 0;return 1}function equals(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;i<k;i++)if(x[i]!=y[i])return 0;if(x.length>y.length){for(;i<x.length;i++)if(x[i])return 0}else for(;i<y.length;i++)if(y[i])return 0;return 1}function isZero(x){var i;for(i=0;i<x.length;i++)if(x[i])return 0;return 1}function bigInt2str(x,base){var i,t,s="";if(s6.length!=x.length?s6=dup(x):copy_(s6,x),base==-1){for(i=x.length-1;i>0;i--)s+=x[i]+",";s+=x[0]}else for(;!isZero(s6);)t=divInt_(s6,base),s=digitsStr.substring(t,t+1)+s;return 0==s.length&&(s="0"),s}function dup(x){var buff;return buff=new Array(x.length),copy_(buff,x),buff}function copy_(x,y){var i,k=x.length<y.length?x.length:y.length;for(i=0;i<k;i++)x[i]=y[i];for(i=k;i<x.length;i++)x[i]=0}function copyInt_(x,n){var i,c;for(c=n,i=0;i<x.length;i++)x[i]=c&mask,c>>=bpe}function addInt_(x,n){var i,k,c,b;for(x[0]+=n,k=x.length,c=0,i=0;i<k;i++)if(c+=x[i],b=0,c<0&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b,!c)return}function rightShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=0;i<x.length-k;i++)x[i]=x[i+k];for(;i<x.length;i++)x[i]=0;n%=bpe}for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-n|x[i]>>n);x[i]>>=n}function halve_(x){var i;for(i=0;i<x.length-1;i++)x[i]=mask&(x[i+1]<<bpe-1|x[i]>>1);x[i]=x[i]>>1|x[i]&radix>>1}function leftShift_(x,n){var i,k=Math.floor(n/bpe);if(k){for(i=x.length;i>=k;i--)x[i]=x[i-k];for(;i>=0;i--)x[i]=0;n%=bpe}if(n){for(i=x.length-1;i>0;i--)x[i]=mask&(x[i]<<n|x[i-1]>>bpe-n);x[i]=mask&x[i]<<n}}function multInt_(x,n){var i,k,c,b;if(n)for(k=x.length,c=0,i=0;i<k;i++)c+=x[i]*n,b=0,c<0&&(b=c&mask,b=-((c-b)/radix),c+=b*radix),x[i]=c&mask,c=(c-x[i])/radix-b}function divInt_(x,n){var i,s,r=0;for(i=x.length-1;i>=0;i--)s=r*radix+x[i],x[i]=Math.floor(s/n),r=s%n;return r}function linCombShift_(x,y,b,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;i<k;i++)c+=x[i]+b*y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<kk;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function addShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;i<k;i++)c+=x[i]+y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<kk;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function subShift_(x,y,ys){var i,c,k,kk;for(k=x.length<ys+y.length?x.length:ys+y.length,kk=x.length,c=0,i=ys;i<k;i++)c+=x[i]-y[i-ys],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<kk;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function sub_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;i<k;i++)c+=x[i]-y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function add_(x,y){var i,c,k;for(k=x.length<y.length?x.length:y.length,c=0,i=0;i<k;i++)c+=x[i]+y[i],x[i]=c&mask,c=(c-x[i])/radix;for(i=k;c&&i<x.length;i++)c+=x[i],x[i]=c&mask,c=(c-x[i])/radix}function mult_(x,y){var i;for(ss.length!=2*x.length&&(ss=new Array(2*x.length)),copyInt_(ss,0),i=0;i<y.length;i++)y[i]&&linCombShift_(ss,x,y[i],i);copy_(x,ss)}function mod_(x,n){s4.length!=x.length?s4=dup(x):copy_(s4,x),s5.length!=x.length&&(s5=dup(x)),divide_(s4,n,s5,x)}function multMod_(x,y,n){var i;for(s0.length!=2*x.length&&(s0=new Array(2*x.length)),copyInt_(s0,0),i=0;i<y.length;i++)y[i]&&linCombShift_(s0,x,y[i],i);mod_(s0,n),copy_(x,s0)}function squareMod_(x,n){var i,j,c,kx,k;for(kx=x.length;kx>0&&!x[kx-1];kx--);for(k=kx>n.length?2*kx:2*n.length,s0.length!=k&&(s0=new Array(k)),copyInt_(s0,0),i=0;i<kx;i++){for(c=s0[2*i]+x[i]*x[i],
+s0[2*i]=c&mask,c=(c-s0[2*i])/radix,j=i+1;j<kx;j++)c=s0[i+j]+2*x[i]*x[j]+c,s0[i+j]=c&mask,c=(c-s0[i+j])/radix;s0[i+kx]=c}mod_(s0,n),copy_(x,s0)}function trim(x,k){var i,y;for(i=x.length;i>0&&!x[i-1];i--);return y=new Array(i+k),copy_(y,x),y}function powMod_(x,y,n){var k1,k2,kn,np;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),kn=n.length;kn>0&&!n[kn-1];kn--);for(np=radix-inverseModInt(modInt(n,radix),radix),s7[kn]=1,multMod_(x,s7,n),s3.length!=x.length?s3=dup(x):copy_(s3,x),k1=y.length-1;k1>0&!y[k1];k1--);if(0==y[k1])return void copyInt_(x,1);for(k2=1<<bpe-1;k2&&!(y[k1]&k2);k2>>=1);for(;;){if(!(k2>>=1)){if(k1--,k1<0)return void mont_(x,one,n,np);k2=1<<bpe-1}mont_(x,x,n,np),k2&y[k1]&&mont_(x,s3,n,np)}}else for(copy_(s7,x),copyInt_(x,1);!equalsInt(y,0);)1&y[0]&&multMod_(x,s7,n),divInt_(y,2),squareMod_(s7,n)}function mont_(x,y,n,np){var i,j,c,ui,t,t2,ks,kn=n.length,ky=y.length;for(sa.length!=kn&&(sa=new Array(kn)),copyInt_(sa,0);kn>0&&0==n[kn-1];kn--);for(;ky>0&&0==y[ky-1];ky--);for(ks=sa.length-1,i=0;i<kn;i++){for(t=sa[0]+x[i]*y[0],ui=(t&mask)*np&mask,c=t+ui*n[0],c=(c-(c&mask))/radix,t=x[i],j=1;j<ky-4;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<ky;)c+=sa[j]+ui*n[j]+t*y[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<kn-4;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++,c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<kn;)c+=sa[j]+ui*n[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;for(;j<ks;)c+=sa[j],t2=sa[j-1]=c&mask,c=(c-t2)/radix,j++;sa[j-1]=c&mask}greater(n,sa)||sub_(sa,n),copy_(x,sa)}function divMod(num,den,n){return multMod(num,inverseMod(den,n),n)}function subMod(one,two,n){return one=mod(one,n),two=mod(two,n),greater(two,one)&&(one=add(one,n)),sub(one,two)}function twoToThe(m){for(var b=Math.floor(m/bpe)+2,t=new Array(b),i=0;i<b;i++)t[i]=0;return t[b-2]=1<<m%bpe,t}function bigInt2bits(bi,pad){pad||(pad=0),bi=dup(bi);for(var ba="";!isZero(bi);)ba=_num2bin[255&bi[0]]+ba,rightShift_(bi,8);for(;ba.length<pad;)ba="\0"+ba;return ba}function ba2bigInt(data){var mpi=str2bigInt("0",10,data.length);return data.forEach(function(d,i){i&&leftShift_(mpi,8),mpi[0]|=d}),mpi}function getSeed(){return randomBytes(40)}function randomByte(){return randomBytes(1)[0]}function randomBitInt(k){if(k>31)throw new Error("Too many bits.");var i=0,r=0,b=Math.floor(k/8),mask=(1<<k%8)-1;for(mask&&(r=randomByte()&mask);i<b;i++)r=256*r+randomByte();return r}var bpe=26,radix=1<<bpe,mask=radix-1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-",one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s3=t,s4=t,s5=t,s6=t,s7=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,primes=t,_num2bin=function(){for(var i=0,_num2bin={};i<256;++i)_num2bin[i]=String.fromCharCode(i);return _num2bin}(),randomBytes=function(){if("undefined"!=typeof crypto&&"function"==typeof crypto.randomBytes)return function(n){try{var buf=crypto.randomBytes(n)}catch(e){throw e}return Array.prototype.slice.call(buf,0)};if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues)return function(n){var buf=new Uint8Array(n);return crypto.getRandomValues(buf),Array.prototype.slice.call(buf,0)};throw new Error("Keys should not be generated without CSPRNG.")}();return{str2bigInt:str2bigInt,bigInt2str:bigInt2str,int2bigInt:int2bigInt,multMod:multMod,powMod:powMod,inverseMod:inverseMod,randBigInt:randBigInt,randBigInt_:randBigInt_,equals:equals,equalsInt:equalsInt,sub:sub,mod:mod,modInt:modInt,mult:mult,divInt_:divInt_,rightShift_:rightShift_,dup:dup,greater:greater,add:add,isZero:isZero,bitSize:bitSize,millerRabin:millerRabin,divide_:divide_,trim:trim,primes:primes,findPrimes:findPrimes,getSeed:getSeed,divMod:divMod,subMod:subMod,twoToThe:twoToThe,bigInt2bits:bigInt2bits,ba2bigInt:ba2bigInt}}),function(root,factory){"function"==typeof define&&define.amd?define(factory):"undefined"!=typeof module&&module.exports?module.exports=factory():root.CryptoJS=factory()}(this,function(){var CryptoJS=CryptoJS||function(Math,undefined){var C={},C_lib=C.lib={},Base=C_lib.Base=function(){function F(){}return{extend:function(overrides){F.prototype=this;var subtype=new F;return overrides&&subtype.mixIn(overrides),subtype.hasOwnProperty("init")||(subtype.init=function(){subtype.$super.init.apply(this,arguments)}),subtype.init.prototype=subtype,subtype.$super=this,subtype},create:function(){var instance=this.extend();return instance.init.apply(instance,arguments),instance},init:function(){},mixIn:function(properties){for(var propertyName in properties)properties.hasOwnProperty(propertyName)&&(this[propertyName]=properties[propertyName]);properties.hasOwnProperty("toString")&&(this.toString=properties.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),WordArray=C_lib.WordArray=Base.extend({init:function(words,sigBytes){words=this.words=words||[],sigBytes!=undefined?this.sigBytes=sigBytes:this.sigBytes=4*words.length},toString:function(encoder){return(encoder||Hex).stringify(this)},concat:function(wordArray){var thisWords=this.words,thatWords=wordArray.words,thisSigBytes=this.sigBytes,thatSigBytes=wordArray.sigBytes;if(this.clamp(),thisSigBytes%4)for(var i=0;i<thatSigBytes;i++){var thatByte=thatWords[i>>>2]>>>24-i%4*8&255;thisWords[thisSigBytes+i>>>2]|=thatByte<<24-(thisSigBytes+i)%4*8}else if(thatWords.length>65535)for(var i=0;i<thatSigBytes;i+=4)thisWords[thisSigBytes+i>>>2]=thatWords[i>>>2];else thisWords.push.apply(thisWords,thatWords);return this.sigBytes+=thatSigBytes,this},clamp:function(){var words=this.words,sigBytes=this.sigBytes;words[sigBytes>>>2]&=4294967295<<32-sigBytes%4*8,words.length=Math.ceil(sigBytes/4)},clone:function(){var clone=Base.clone.call(this);return clone.words=this.words.slice(0),clone},random:function(nBytes){for(var words=[],i=0;i<nBytes;i+=4)words.push(4294967296*Math.random()|0);return new WordArray.init(words,nBytes)}}),C_enc=C.enc={},Hex=C_enc.Hex={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,hexChars=[],i=0;i<sigBytes;i++){var bite=words[i>>>2]>>>24-i%4*8&255;hexChars.push((bite>>>4).toString(16)),hexChars.push((15&bite).toString(16))}return hexChars.join("")},parse:function(hexStr){for(var hexStrLength=hexStr.length,words=[],i=0;i<hexStrLength;i+=2)words[i>>>3]|=parseInt(hexStr.substr(i,2),16)<<24-i%8*4;return new WordArray.init(words,hexStrLength/2)}},Latin1=C_enc.Latin1={stringify:function(wordArray){for(var words=wordArray.words,sigBytes=wordArray.sigBytes,latin1Chars=[],i=0;i<sigBytes;i++){var bite=words[i>>>2]>>>24-i%4*8&255;latin1Chars.push(String.fromCharCode(bite))}return latin1Chars.join("")},parse:function(latin1Str){for(var latin1StrLength=latin1Str.length,words=[],i=0;i<latin1StrLength;i++)words[i>>>2]|=(255&latin1Str.charCodeAt(i))<<24-i%4*8;return new WordArray.init(words,latin1StrLength)}},Utf8=C_enc.Utf8={stringify:function(wordArray){try{return decodeURIComponent(escape(Latin1.stringify(wordArray)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(utf8Str){return Latin1.parse(unescape(encodeURIComponent(utf8Str)))}},BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm=Base.extend({reset:function(){this._data=new WordArray.init,this._nDataBytes=0},_append:function(data){"string"==typeof data&&(data=Utf8.parse(data)),this._data.concat(data),this._nDataBytes+=data.sigBytes},_process:function(doFlush){var data=this._data,dataWords=data.words,dataSigBytes=data.sigBytes,blockSize=this.blockSize,blockSizeBytes=4*blockSize,nBlocksReady=dataSigBytes/blockSizeBytes;nBlocksReady=doFlush?Math.ceil(nBlocksReady):Math.max((0|nBlocksReady)-this._minBufferSize,0);var nWordsReady=nBlocksReady*blockSize,nBytesReady=Math.min(4*nWordsReady,dataSigBytes);if(nWordsReady){for(var offset=0;offset<nWordsReady;offset+=blockSize)this._doProcessBlock(dataWords,offset);var processedWords=dataWords.splice(0,nWordsReady);data.sigBytes-=nBytesReady}return new WordArray.init(processedWords,nBytesReady)},clone:function(){var clone=Base.clone.call(this);return clone._data=this._data.clone(),clone},_minBufferSize:0}),C_algo=(C_lib.Hasher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),init:function(cfg){this.cfg=this.cfg.extend(cfg),this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},update:function(messageUpdate){return this._append(messageUpdate),this._process(),this},finalize:function(messageUpdate){messageUpdate&&this._append(messageUpdate);var hash=this._doFinalize();return hash},blockSize:16,_createHelper:function(hasher){return function(message,cfg){return new hasher.init(cfg).finalize(message)}},_createHmacHelper:function(hasher){return function(message,key){return new C_algo.HMAC.init(hasher,key).finalize(message)}}}),C.algo={});return C}(Math);return function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,C_enc=C.enc;C_enc.Base64={stringify:function(wordArray){var words=wordArray.words,sigBytes=wordArray.sigBytes,map=this._map;wordArray.clamp();for(var base64Chars=[],i=0;i<sigBytes;i+=3)for(var byte1=words[i>>>2]>>>24-i%4*8&255,byte2=words[i+1>>>2]>>>24-(i+1)%4*8&255,byte3=words[i+2>>>2]>>>24-(i+2)%4*8&255,triplet=byte1<<16|byte2<<8|byte3,j=0;j<4&&i+.75*j<sigBytes;j++)base64Chars.push(map.charAt(triplet>>>6*(3-j)&63));var paddingChar=map.charAt(64);if(paddingChar)for(;base64Chars.length%4;)base64Chars.push(paddingChar);return base64Chars.join("")},parse:function(base64Str){var base64StrLength=base64Str.length,map=this._map,paddingChar=map.charAt(64);if(paddingChar){var paddingIndex=base64Str.indexOf(paddingChar);paddingIndex!=-1&&(base64StrLength=paddingIndex)}for(var words=[],nBytes=0,i=0;i<base64StrLength;i++)if(i%4){var bits1=map.indexOf(base64Str.charAt(i-1))<<i%4*2,bits2=map.indexOf(base64Str.charAt(i))>>>6-i%4*2;words[nBytes>>>2]|=(bits1|bits2)<<24-nBytes%4*8,nBytes++}return WordArray.create(words,nBytes)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),CryptoJS.lib.Cipher||function(undefined){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,WordArray=C_lib.WordArray,BufferedBlockAlgorithm=C_lib.BufferedBlockAlgorithm,C_enc=C.enc,Base64=(C_enc.Utf8,C_enc.Base64),C_algo=C.algo,EvpKDF=C_algo.EvpKDF,Cipher=C_lib.Cipher=BufferedBlockAlgorithm.extend({cfg:Base.extend(),createEncryptor:function(key,cfg){return this.create(this._ENC_XFORM_MODE,key,cfg)},createDecryptor:function(key,cfg){return this.create(this._DEC_XFORM_MODE,key,cfg)},init:function(xformMode,key,cfg){this.cfg=this.cfg.extend(cfg),this._xformMode=xformMode,this._key=key,this.reset()},reset:function(){BufferedBlockAlgorithm.reset.call(this),this._doReset()},process:function(dataUpdate){return this._append(dataUpdate),this._process()},finalize:function(dataUpdate){dataUpdate&&this._append(dataUpdate);var finalProcessedData=this._doFinalize();return finalProcessedData},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(key){return"string"==typeof key?PasswordBasedCipher:SerializableCipher}return function(cipher){return{encrypt:function(message,key,cfg){return selectCipherStrategy(key).encrypt(cipher,message,key,cfg)},decrypt:function(ciphertext,key,cfg){return selectCipherStrategy(key).decrypt(cipher,ciphertext,key,cfg)}}}}()}),C_mode=(C_lib.StreamCipher=Cipher.extend({_doFinalize:function(){var finalProcessedBlocks=this._process(!0);return finalProcessedBlocks},blockSize:1}),C.mode={}),BlockCipherMode=C_lib.BlockCipherMode=Base.extend({createEncryptor:function(cipher,iv){return this.Encryptor.create(cipher,iv)},createDecryptor:function(cipher,iv){return this.Decryptor.create(cipher,iv)},init:function(cipher,iv){this._cipher=cipher,this._iv=iv}}),CBC=C_mode.CBC=function(){function xorBlock(words,offset,blockSize){var iv=this._iv;if(iv){var block=iv;this._iv=undefined}else var block=this._prevBlock;for(var i=0;i<blockSize;i++)words[offset+i]^=block[i]}var CBC=BlockCipherMode.extend();return CBC.Encryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize;xorBlock.call(this,words,offset,blockSize),cipher.encryptBlock(words,offset),this._prevBlock=words.slice(offset,offset+blockSize)}}),CBC.Decryptor=CBC.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,thisBlock=words.slice(offset,offset+blockSize);cipher.decryptBlock(words,offset),xorBlock.call(this,words,offset,blockSize),this._prevBlock=thisBlock}}),CBC}(),C_pad=C.pad={},Pkcs7=C_pad.Pkcs7={pad:function(data,blockSize){for(var blockSizeBytes=4*blockSize,nPaddingBytes=blockSizeBytes-data.sigBytes%blockSizeBytes,paddingWord=nPaddingBytes<<24|nPaddingBytes<<16|nPaddingBytes<<8|nPaddingBytes,paddingWords=[],i=0;i<nPaddingBytes;i+=4)paddingWords.push(paddingWord);var padding=WordArray.create(paddingWords,nPaddingBytes);data.concat(padding)},unpad:function(data){var nPaddingBytes=255&data.words[data.sigBytes-1>>>2];data.sigBytes-=nPaddingBytes}},CipherParams=(C_lib.BlockCipher=Cipher.extend({cfg:Cipher.cfg.extend({mode:CBC,padding:Pkcs7}),reset:function(){Cipher.reset.call(this);var cfg=this.cfg,iv=cfg.iv,mode=cfg.mode;if(this._xformMode==this._ENC_XFORM_MODE)var modeCreator=mode.createEncryptor;else{var modeCreator=mode.createDecryptor;this._minBufferSize=1}this._mode=modeCreator.call(mode,this,iv&&iv.words)},_doProcessBlock:function(words,offset){this._mode.processBlock(words,offset)},_doFinalize:function(){var padding=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){padding.pad(this._data,this.blockSize);var finalProcessedBlocks=this._process(!0)}else{var finalProcessedBlocks=this._process(!0);padding.unpad(finalProcessedBlocks)}return finalProcessedBlocks},blockSize:4}),C_lib.CipherParams=Base.extend({init:function(cipherParams){this.mixIn(cipherParams)},toString:function(formatter){return(formatter||this.formatter).stringify(this)}})),C_format=C.format={},OpenSSLFormatter=C_format.OpenSSL={stringify:function(cipherParams){var ciphertext=cipherParams.ciphertext,salt=cipherParams.salt;if(salt)var wordArray=WordArray.create([1398893684,1701076831]).concat(salt).concat(ciphertext);else var wordArray=ciphertext;return wordArray.toString(Base64)},parse:function(openSSLStr){var ciphertext=Base64.parse(openSSLStr),ciphertextWords=ciphertext.words;if(1398893684==ciphertextWords[0]&&1701076831==ciphertextWords[1]){var salt=WordArray.create(ciphertextWords.slice(2,4));ciphertextWords.splice(0,4),ciphertext.sigBytes-=16}return CipherParams.create({ciphertext:ciphertext,salt:salt})}},SerializableCipher=C_lib.SerializableCipher=Base.extend({cfg:Base.extend({format:OpenSSLFormatter}),encrypt:function(cipher,message,key,cfg){cfg=this.cfg.extend(cfg);var encryptor=cipher.createEncryptor(key,cfg),ciphertext=encryptor.finalize(message),cipherCfg=encryptor.cfg;return CipherParams.create({ciphertext:ciphertext,key:key,iv:cipherCfg.iv,algorithm:cipher,mode:cipherCfg.mode,padding:cipherCfg.padding,blockSize:cipher.blockSize,formatter:cfg.format})},decrypt:function(cipher,ciphertext,key,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var plaintext=cipher.createDecryptor(key,cfg).finalize(ciphertext.ciphertext);return plaintext},_parse:function(ciphertext,format){return"string"==typeof ciphertext?format.parse(ciphertext,this):ciphertext}}),C_kdf=C.kdf={},OpenSSLKdf=C_kdf.OpenSSL={execute:function(password,keySize,ivSize,salt){salt||(salt=WordArray.random(8));var key=EvpKDF.create({keySize:keySize+ivSize}).compute(password,salt),iv=WordArray.create(key.words.slice(keySize),4*ivSize);return key.sigBytes=4*keySize,CipherParams.create({key:key,iv:iv,salt:salt})}},PasswordBasedCipher=C_lib.PasswordBasedCipher=SerializableCipher.extend({cfg:SerializableCipher.cfg.extend({kdf:OpenSSLKdf}),encrypt:function(cipher,message,password,cfg){cfg=this.cfg.extend(cfg);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize);cfg.iv=derivedParams.iv;var ciphertext=SerializableCipher.encrypt.call(this,cipher,message,derivedParams.key,cfg);return ciphertext.mixIn(derivedParams),ciphertext},decrypt:function(cipher,ciphertext,password,cfg){cfg=this.cfg.extend(cfg),ciphertext=this._parse(ciphertext,cfg.format);var derivedParams=cfg.kdf.execute(password,cipher.keySize,cipher.ivSize,ciphertext.salt);cfg.iv=derivedParams.iv;var plaintext=SerializableCipher.decrypt.call(this,cipher,ciphertext,derivedParams.key,cfg);return plaintext}})}(),function(){var C=CryptoJS,C_lib=C.lib,BlockCipher=C_lib.BlockCipher,C_algo=C.algo,SBOX=[],INV_SBOX=[],SUB_MIX_0=[],SUB_MIX_1=[],SUB_MIX_2=[],SUB_MIX_3=[],INV_SUB_MIX_0=[],INV_SUB_MIX_1=[],INV_SUB_MIX_2=[],INV_SUB_MIX_3=[];!function(){for(var d=[],i=0;i<256;i++)i<128?d[i]=i<<1:d[i]=i<<1^283;for(var x=0,xi=0,i=0;i<256;i++){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX_0[x]=t<<24|t>>>8,SUB_MIX_1[x]=t<<16|t>>>16,SUB_MIX_2[x]=t<<8|t>>>24,SUB_MIX_3[x]=t;var t=16843009*x8^65537*x4^257*x2^16843008*x;INV_SUB_MIX_0[sx]=t<<24|t>>>8,INV_SUB_MIX_1[sx]=t<<16|t>>>16,INV_SUB_MIX_2[sx]=t<<8|t>>>24,INV_SUB_MIX_3[sx]=t,x?(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]]):x=xi=1}}();var RCON=[0,1,2,4,8,16,32,64,128,27,54],AES=C_algo.AES=BlockCipher.extend({_doReset:function(){for(var key=this._key,keyWords=key.words,keySize=key.sigBytes/4,nRounds=this._nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=this._keySchedule=[],ksRow=0;ksRow<ksRows;ksRow++)if(ksRow<keySize)keySchedule[ksRow]=keyWords[ksRow];else{var t=keySchedule[ksRow-1];ksRow%keySize?keySize>6&&ksRow%keySize==4&&(t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t]):(t=t<<8|t>>>24,t=SBOX[t>>>24]<<24|SBOX[t>>>16&255]<<16|SBOX[t>>>8&255]<<8|SBOX[255&t],t^=RCON[ksRow/keySize|0]<<24),keySchedule[ksRow]=keySchedule[ksRow-keySize]^t}for(var invKeySchedule=this._invKeySchedule=[],invKsRow=0;invKsRow<ksRows;invKsRow++){var ksRow=ksRows-invKsRow;if(invKsRow%4)var t=keySchedule[ksRow];else var t=keySchedule[ksRow-4];invKsRow<4||ksRow<=4?invKeySchedule[invKsRow]=t:invKeySchedule[invKsRow]=INV_SUB_MIX_0[SBOX[t>>>24]]^INV_SUB_MIX_1[SBOX[t>>>16&255]]^INV_SUB_MIX_2[SBOX[t>>>8&255]]^INV_SUB_MIX_3[SBOX[255&t]]}},encryptBlock:function(M,offset){this._doCryptBlock(M,offset,this._keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX)},decryptBlock:function(M,offset){var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t,this._doCryptBlock(M,offset,this._invKeySchedule,INV_SUB_MIX_0,INV_SUB_MIX_1,INV_SUB_MIX_2,INV_SUB_MIX_3,INV_SBOX);var t=M[offset+1];M[offset+1]=M[offset+3],M[offset+3]=t},_doCryptBlock:function(M,offset,keySchedule,SUB_MIX_0,SUB_MIX_1,SUB_MIX_2,SUB_MIX_3,SBOX){for(var nRounds=this._nRounds,s0=M[offset]^keySchedule[0],s1=M[offset+1]^keySchedule[1],s2=M[offset+2]^keySchedule[2],s3=M[offset+3]^keySchedule[3],ksRow=4,round=1;round<nRounds;round++){var t0=SUB_MIX_0[s0>>>24]^SUB_MIX_1[s1>>>16&255]^SUB_MIX_2[s2>>>8&255]^SUB_MIX_3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX_0[s1>>>24]^SUB_MIX_1[s2>>>16&255]^SUB_MIX_2[s3>>>8&255]^SUB_MIX_3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX_0[s2>>>24]^SUB_MIX_1[s3>>>16&255]^SUB_MIX_2[s0>>>8&255]^SUB_MIX_3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX_0[s3>>>24]^SUB_MIX_1[s0>>>16&255]^SUB_MIX_2[s1>>>8&255]^SUB_MIX_3[255&s2]^keySchedule[ksRow++];s0=t0,s1=t1,s2=t2,s3=t3}var t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++];M[offset]=t0,M[offset+1]=t1,M[offset+2]=t2,M[offset+3]=t3},keySize:8});C.AES=BlockCipher._createHelper(AES)}(),function(){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,W=[],SHA1=C_algo.SHA1=Hasher.extend({_doReset:function(){this._hash=new WordArray.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],i=0;i<80;i++){if(i<16)W[i]=0|M[offset+i];else{var n=W[i-3]^W[i-8]^W[i-14]^W[i-16];W[i]=n<<1|n>>>31}var t=(a<<5|a>>>27)+e+W[i];t+=i<20?(b&c|~b&d)+1518500249:i<40?(b^c^d)+1859775393:i<60?(b&c|b&d|c&d)-1894007588:(b^c^d)-899497514,e=d,d=c,c=b<<30|b>>>2,b=a,a=t}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA1=Hasher._createHelper(SHA1),C.HmacSHA1=Hasher._createHmacHelper(SHA1)}(),function(Math){var C=CryptoJS,C_lib=C.lib,WordArray=C_lib.WordArray,Hasher=C_lib.Hasher,C_algo=C.algo,H=[],K=[];!function(){function isPrime(n){for(var sqrtN=Math.sqrt(n),factor=2;factor<=sqrtN;factor++)if(!(n%factor))return!1;return!0}function getFractionalBits(n){return 4294967296*(n-(0|n))|0}for(var n=2,nPrime=0;nPrime<64;)isPrime(n)&&(nPrime<8&&(H[nPrime]=getFractionalBits(Math.pow(n,.5))),K[nPrime]=getFractionalBits(Math.pow(n,1/3)),nPrime++),n++}();var W=[],SHA256=C_algo.SHA256=Hasher.extend({_doReset:function(){this._hash=new WordArray.init(H.slice(0))},_doProcessBlock:function(M,offset){for(var H=this._hash.words,a=H[0],b=H[1],c=H[2],d=H[3],e=H[4],f=H[5],g=H[6],h=H[7],i=0;i<64;i++){if(i<16)W[i]=0|M[offset+i];else{var gamma0x=W[i-15],gamma0=(gamma0x<<25|gamma0x>>>7)^(gamma0x<<14|gamma0x>>>18)^gamma0x>>>3,gamma1x=W[i-2],gamma1=(gamma1x<<15|gamma1x>>>17)^(gamma1x<<13|gamma1x>>>19)^gamma1x>>>10;W[i]=gamma0+W[i-7]+gamma1+W[i-16]}var ch=e&f^~e&g,maj=a&b^a&c^b&c,sigma0=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),sigma1=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),t1=h+sigma1+ch+K[i]+W[i],t2=sigma0+maj;h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0}H[0]=H[0]+a|0,H[1]=H[1]+b|0,H[2]=H[2]+c|0,H[3]=H[3]+d|0,H[4]=H[4]+e|0,H[5]=H[5]+f|0,H[6]=H[6]+g|0,H[7]=H[7]+h|0},_doFinalize:function(){var data=this._data,dataWords=data.words,nBitsTotal=8*this._nDataBytes,nBitsLeft=8*data.sigBytes;return dataWords[nBitsLeft>>>5]|=128<<24-nBitsLeft%32,dataWords[(nBitsLeft+64>>>9<<4)+14]=Math.floor(nBitsTotal/4294967296),dataWords[(nBitsLeft+64>>>9<<4)+15]=nBitsTotal,data.sigBytes=4*dataWords.length,this._process(),this._hash},clone:function(){var clone=Hasher.clone.call(this);return clone._hash=this._hash.clone(),clone}});C.SHA256=Hasher._createHelper(SHA256),C.HmacSHA256=Hasher._createHmacHelper(SHA256)}(Math),function(){var C=CryptoJS,C_lib=C.lib,Base=C_lib.Base,C_enc=C.enc,Utf8=C_enc.Utf8,C_algo=C.algo;C_algo.HMAC=Base.extend({init:function(hasher,key){hasher=this._hasher=new hasher.init,"string"==typeof key&&(key=Utf8.parse(key));var hasherBlockSize=hasher.blockSize,hasherBlockSizeBytes=4*hasherBlockSize;key.sigBytes>hasherBlockSizeBytes&&(key=hasher.finalize(key)),key.clamp();for(var oKey=this._oKey=key.clone(),iKey=this._iKey=key.clone(),oKeyWords=oKey.words,iKeyWords=iKey.words,i=0;i<hasherBlockSize;i++)oKeyWords[i]^=1549556828,iKeyWords[i]^=909522486;oKey.sigBytes=iKey.sigBytes=hasherBlockSizeBytes,this.reset()},reset:function(){var hasher=this._hasher;hasher.reset(),hasher.update(this._iKey)},update:function(messageUpdate){return this._hasher.update(messageUpdate),this},finalize:function(messageUpdate){var hasher=this._hasher,innerHash=hasher.finalize(messageUpdate);hasher.reset();var hmac=hasher.finalize(this._oKey.clone().concat(innerHash));return hmac}})}(),CryptoJS.pad.NoPadding={pad:function(){},unpad:function(){}},CryptoJS.mode.CTR=function(){var CTR=CryptoJS.lib.BlockCipherMode.extend(),Encryptor=CTR.Encryptor=CTR.extend({processBlock:function(words,offset){var cipher=this._cipher,blockSize=cipher.blockSize,iv=this._iv,counter=this._counter;iv&&(counter=this._counter=iv.slice(0),this._iv=void 0);var keystream=counter.slice(0);cipher.encryptBlock(keystream,0),counter[blockSize-1]=counter[blockSize-1]+1|0;for(var i=0;i<blockSize;i++)words[offset+i]^=keystream[i]}});return CTR.Decryptor=Encryptor,CTR}(),CryptoJS}),/*!
* EventEmitter v4.2.3 - git.io/ee
* Oliver Caldwell
* MIT license
* @preserve
*/
function(){"use strict";function EventEmitter(){}function indexOfListener(listeners,listener){for(var i=listeners.length;i--;)if(listeners[i].listener===listener)return i;return-1}function alias(name){return function(){return this[name].apply(this,arguments)}}var proto=EventEmitter.prototype;proto.getListeners=function(evt){var response,key,events=this._getEvents();if("object"==typeof evt){response={};for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&(response[key]=events[key])}else response=events[evt]||(events[evt]=[]);return response},proto.flattenListeners=function(listeners){var i,flatListeners=[];for(i=0;i<listeners.length;i+=1)flatListeners.push(listeners[i].listener);return flatListeners},proto.getListenersAsObject=function(evt){var response,listeners=this.getListeners(evt);return listeners instanceof Array&&(response={},response[evt]=listeners),response||listeners},proto.addListener=function(evt,listener){var key,listeners=this.getListenersAsObject(evt),listenerIsWrapped="object"==typeof listener;for(key in listeners)listeners.hasOwnProperty(key)&&indexOfListener(listeners[key],listener)===-1&&listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:!1});return this},proto.on=alias("addListener"),proto.addOnceListener=function(evt,listener){return this.addListener(evt,{listener:listener,once:!0})},proto.once=alias("addOnceListener"),proto.defineEvent=function(evt){return this.getListeners(evt),this},proto.defineEvents=function(evts){for(var i=0;i<evts.length;i+=1)this.defineEvent(evts[i]);return this},proto.removeListener=function(evt,listener){var index,key,listeners=this.getListenersAsObject(evt);for(key in listeners)listeners.hasOwnProperty(key)&&(index=indexOfListener(listeners[key],listener),index!==-1&&listeners[key].splice(index,1));return this},proto.off=alias("removeListener"),proto.addListeners=function(evt,listeners){return this.manipulateListeners(!1,evt,listeners)},proto.removeListeners=function(evt,listeners){return this.manipulateListeners(!0,evt,listeners)},proto.manipulateListeners=function(remove,evt,listeners){var i,value,single=remove?this.removeListener:this.addListener,multiple=remove?this.removeListeners:this.addListeners;if("object"!=typeof evt||evt instanceof RegExp)for(i=listeners.length;i--;)single.call(this,evt,listeners[i]);else for(i in evt)evt.hasOwnProperty(i)&&(value=evt[i])&&("function"==typeof value?single.call(this,i,value):multiple.call(this,i,value));return this},proto.removeEvent=function(evt){var key,type=typeof evt,events=this._getEvents();if("string"===type)delete events[evt];else if("object"===type)for(key in events)events.hasOwnProperty(key)&&evt.test(key)&&delete events[key];else delete this._events;return this},proto.emitEvent=function(evt,args){var listener,i,key,response,listeners=this.getListenersAsObject(evt);for(key in listeners)if(listeners.hasOwnProperty(key))for(i=listeners[key].length;i--;)listener=listeners[key][i],listener.once===!0&&this.removeListener(evt,listener.listener),response=listener.listener.apply(this,args||[]),response===this._getOnceReturnValue()&&this.removeListener(evt,listener.listener);return this},proto.trigger=alias("emitEvent"),proto.emit=function(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args)},proto.setOnceReturnValue=function(value){return this._onceReturnValue=value,this},proto._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},proto._getEvents=function(){return this._events||(this._events={})},"function"==typeof define&&define.amd?define(function(){return EventEmitter}):"object"==typeof module&&module.exports?module.exports=EventEmitter:this.EventEmitter=EventEmitter}.call(this),function(root,factory){"function"==typeof define&&define.amd?define(["bigint","crypto","eventemitter"],function(BigInt,CryptoJS,EventEmitter){var root={BigInt:BigInt,CryptoJS:CryptoJS,EventEmitter:EventEmitter,OTR:{},DSA:{}};return factory.call(root)}):(root.OTR={},root.DSA={},"undefined"!=typeof root.BigInt&&factory.call(root))}(this,function(){return function(){"use strict";var root=this,CONST={N:"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF",G:"2",MSGSTATE_PLAINTEXT:0,MSGSTATE_ENCRYPTED:1,MSGSTATE_FINISHED:2,AUTHSTATE_NONE:0,AUTHSTATE_AWAITING_DHKEY:1,AUTHSTATE_AWAITING_REVEALSIG:2,AUTHSTATE_AWAITING_SIG:3,WHITESPACE_TAG:" \t \t\t\t\t \t \t \t ",WHITESPACE_TAG_V2:" \t\t \t ",WHITESPACE_TAG_V3:" \t\t \t\t",OTR_TAG:"?OTR",OTR_VERSION_1:"\0",OTR_VERSION_2:"\0",OTR_VERSION_3:"\0",SMPSTATE_EXPECT0:0,SMPSTATE_EXPECT1:1,SMPSTATE_EXPECT2:2,SMPSTATE_EXPECT3:3,SMPSTATE_EXPECT4:4,STATUS_SEND_QUERY:0,STATUS_AKE_INIT:1,STATUS_AKE_SUCCESS:2,STATUS_END_OTR:3};"undefined"!=typeof module&&module.exports?module.exports=CONST:root.OTR.CONST=CONST}.call(this),function(){"use strict";function intCompare(x,y){var z=~(x^y);return z&=z>>16,z&=z>>8,z&=z>>4,z&=z>>2,z&=z>>1,1&z}var CryptoJS,BigInt,root=this,HLP={};"undefined"!=typeof module&&module.exports?(module.exports=HLP={},CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js")):(root.OTR&&(root.OTR.HLP=HLP),root.DSA&&(root.DSA.HLP=HLP),CryptoJS=root.CryptoJS,BigInt=root.BigInt);var DTS={BYTE:1,SHORT:2,INT:4,CTR:8,MAC:20,SIG:40},WRAPPER_BEGIN="?OTR",WRAPPER_END=".",TWO=BigInt.str2bigInt("2",10);HLP.debug=function(msg){this.debug&&"function"!=typeof this.debug&&"undefined"!=typeof console&&console.log(msg)},HLP.extend=function(child,parent){function Ctor(){this.constructor=child}for(var key in parent)Object.hasOwnProperty.call(parent,key)&&(child[key]=parent[key]);Ctor.prototype=parent.prototype,child.prototype=new Ctor,child.__super__=parent.prototype},HLP.compare=function(str1,str2){if(str1.length!==str2.length)return!1;for(var i=0,result=0;i<str1.length;i++)result|=str1[i].charCodeAt(0)^str2[i].charCodeAt(0);return intCompare(result,0)},HLP.randomExponent=function(){return BigInt.randBigInt(1536)},HLP.smpHash=function(version,fmpi,smpi){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(version,DTS.BYTE))),sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(fmpi))),smpi&&sha256.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(smpi)));var hash=sha256.finalize();return HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},HLP.makeMac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA256(CryptoJS.enc.Latin1.parse(aesctr),pass);return HLP.mask(mac.toString(CryptoJS.enc.Latin1),0,160)},HLP.make1Mac=function(aesctr,m){var pass=CryptoJS.enc.Latin1.parse(m),mac=CryptoJS.HmacSHA1(CryptoJS.enc.Latin1.parse(aesctr),pass);return mac.toString(CryptoJS.enc.Latin1)},HLP.encryptAes=function(msg,c,iv){var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding},aesctr=CryptoJS.AES.encrypt(msg,CryptoJS.enc.Latin1.parse(c),opts),aesctr_decoded=CryptoJS.enc.Base64.parse(aesctr.toString());return CryptoJS.enc.Latin1.stringify(aesctr_decoded)},HLP.decryptAes=function(msg,c,iv){msg=CryptoJS.enc.Latin1.parse(msg);var opts={mode:CryptoJS.mode.CTR,iv:CryptoJS.enc.Latin1.parse(iv),padding:CryptoJS.pad.NoPadding};return CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(msg),CryptoJS.enc.Latin1.parse(c),opts)},HLP.multPowMod=function(a,b,c,d,e){return BigInt.multMod(BigInt.powMod(a,b,e),BigInt.powMod(c,d,e),e)},HLP.ZKP=function(v,c,d,e){return BigInt.equals(c,HLP.smpHash(v,d,e))},HLP.GTOE=function(a,b){return BigInt.equals(a,b)||BigInt.greater(a,b)},HLP.between=function(x,a,b){return BigInt.greater(x,a)&&BigInt.greater(b,x)},HLP.checkGroup=function(g,N_MINUS_2){return HLP.GTOE(g,TWO)&&HLP.GTOE(N_MINUS_2,g)},HLP.h1=function(b,secbytes){var sha1=CryptoJS.algo.SHA1.create();return sha1.update(CryptoJS.enc.Latin1.parse(b)),sha1.update(CryptoJS.enc.Latin1.parse(secbytes)),sha1.finalize().toString(CryptoJS.enc.Latin1)},HLP.h2=function(b,secbytes){var sha256=CryptoJS.algo.SHA256.create();return sha256.update(CryptoJS.enc.Latin1.parse(b)),sha256.update(CryptoJS.enc.Latin1.parse(secbytes)),sha256.finalize().toString(CryptoJS.enc.Latin1)},HLP.mask=function(bytes,start,n){return bytes.substr(start/8,n/8)};var _toString=String.fromCharCode;HLP.packBytes=function(val,bytes){val=val.toString(16);for(var nex,res="";bytes>0;bytes--)nex=val.length?val.substr(-2,2):"0",val=val.substr(0,val.length-2),res=_toString(parseInt(nex,16))+res;return res},HLP.packINT=function(d){return HLP.packBytes(d,DTS.INT)},HLP.packCtr=function(d){return HLP.padCtr(HLP.packBytes(d,DTS.CTR))},HLP.padCtr=function(ctr){return ctr+"\0\0\0\0\0\0\0\0"},HLP.unpackCtr=function(d){return d=HLP.toByteArray(d.substring(0,8)),HLP.unpack(d)},HLP.unpack=function(arr){for(var val=0,i=0,len=arr.length;i<len;i++)val=256*val+arr[i];return val},HLP.packData=function(d){return HLP.packINT(d.length)+d},HLP.bits2bigInt=function(bits){return bits=HLP.toByteArray(bits),BigInt.ba2bigInt(bits)},HLP.packMPI=function(mpi){return HLP.packData(BigInt.bigInt2bits(BigInt.trim(mpi,0)))},HLP.packSHORT=function(short){return HLP.packBytes(short,DTS.SHORT)},HLP.unpackSHORT=function(short){return short=HLP.toByteArray(short),HLP.unpack(short)},HLP.packTLV=function(type,value){return HLP.packSHORT(type)+HLP.packSHORT(value.length)+value},HLP.readLen=function(msg){return msg=HLP.toByteArray(msg.substring(0,4)),HLP.unpack(msg)},HLP.readData=function(data){var n=HLP.unpack(data.splice(0,4));return[n,data]},HLP.readMPI=function(data){return data=HLP.toByteArray(data),data=HLP.readData(data),BigInt.ba2bigInt(data[1])},HLP.packMPIs=function(arr){return arr.reduce(function(prv,cur){return prv+HLP.packMPI(cur)},"")},HLP.unpackMPIs=function(num,mpis){for(var i=0,arr=[];i<num;i++)arr.push("MPI");return HLP.splitype(arr,mpis).map(function(m){return HLP.readMPI(m)})},HLP.wrapMsg=function(msg,fs,v3,our_it,their_it){msg=CryptoJS.enc.Base64.stringify(CryptoJS.enc.Latin1.parse(msg)),msg=WRAPPER_BEGIN+":"+msg+WRAPPER_END;var its;if(v3&&(its="|",its+=HLP.readLen(our_it).toString(16),its+="|",its+=HLP.readLen(their_it).toString(16)),!fs)return[null,msg];var n=Math.ceil(msg.length/fs);if(n>65535)return["Too many fragments"];if(1==n)return[null,msg];var k,bi,ei,frag,mf,mfs=[];for(k=1;k<=n;k++)bi=(k-1)*fs,ei=k*fs,frag=msg.slice(bi,ei),mf=WRAPPER_BEGIN,v3&&(mf+=its),mf+=","+k+",",mf+=n+",",mf+=frag+",",mfs.push(mf);return[null,mfs]},HLP.splitype=function splitype(arr,msg){var data=[];return arr.forEach(function(a){var str;switch(a){case"PUBKEY":str=splitype(["SHORT","MPI","MPI","MPI","MPI"],msg).join("");break;case"DATA":case"MPI":str=msg.substring(0,HLP.readLen(msg)+4);break;default:str=msg.substring(0,DTS[a])}data.push(str),msg=msg.substring(str.length)}),data};var _bin2num=function(){for(var i=0,_bin2num={};i<256;++i)_bin2num[String.fromCharCode(i)]=i;for(i=128;i<256;++i)_bin2num[String.fromCharCode(63232+i)]=i;return _bin2num}();HLP.toByteArray=function(data){for(var rv=[],ary=data.split(""),i=-1,iz=ary.length,remain=iz%8;remain--;)++i,rv[i]=_bin2num[ary[i]];for(remain=iz>>3;remain--;)rv.push(_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]],_bin2num[ary[++i]]);return rv}}.call(this),function(){"use strict";function timer(){var start=(new Date).getTime();return function(s){if(DEBUG&&"undefined"!=typeof console){var t=(new Date).getTime();console.log(s+": "+(t-start)),start=t}}}function makeRandom(min,max){var c=BigInt.randBigInt(BigInt.bitSize(max));return HLP.between(c,min,max)?c:makeRandom(min,max)}function isProbPrime(k,n){var i,B=3e4,l=BigInt.bitSize(k),primes=BigInt.primes;for(0===primes.length&&(primes=BigInt.findPrimes(B)),rpprb.length!=k.length&&(rpprb=BigInt.dup(k)),i=0;i<primes.length&&primes[i]<=B;i++)if(0===BigInt.modInt(k,primes[i])&&!BigInt.equalsInt(k,primes[i]))return 0;for(i=0;i<n;i++){for(BigInt.randBigInt_(rpprb,l,0);!BigInt.greater(k,rpprb);)BigInt.randBigInt_(rpprb,l,0);if(!BigInt.millerRabin(k,rpprb))return 0}return 1}function generatePrimes(bit_length){for(var q,p,rem,counter,t=timer(),repeat=bit_lengths[bit_length].repeat,N=bit_lengths[bit_length].N,LM1=BigInt.twoToThe(bit_length-1),bl4=4*bit_length,brk=!1;;)if(q=BigInt.randBigInt(N,1),q[0]|=1,isProbPrime(q,repeat)){for(t("q"),counter=0;counter<bl4;counter++)if(p=BigInt.randBigInt(bit_length,1),p[0]|=1,rem=BigInt.mod(p,q),rem=BigInt.sub(rem,ONE),p=BigInt.sub(p,rem),!BigInt.greater(LM1,p)&&isProbPrime(p,repeat)){t("p"),primes[bit_length]={p:p,q:q},brk=!0;break}if(brk)break}for(var g,h=BigInt.dup(TWO),pm1=BigInt.sub(p,ONE),e=BigInt.multMod(pm1,BigInt.inverseMod(q,p),p);;){g=BigInt.powMod(h,e,p);{if(!BigInt.equals(g,ONE))return primes[bit_length].g=g,void t("g");h=BigInt.add(h,ONE)}}throw new Error("Unreachable!")}function DSA(obj,opts){if(!(this instanceof DSA))return new DSA(obj,opts);if(opts=opts||{},obj){var self=this;return["p","q","g","y","x"].forEach(function(prop){self[prop]=obj[prop]}),void(this.type=obj.type||KEY_TYPE)}var bit_length=parseInt(opts.bit_length?opts.bit_length:1024,10);if(!bit_lengths[bit_length])throw new Error("Unsupported bit length.");primes[bit_length]||generatePrimes(bit_length),this.p=primes[bit_length].p,this.q=primes[bit_length].q,this.g=primes[bit_length].g,this.type=KEY_TYPE,this.x=makeRandom(ZERO,this.q),this.y=BigInt.powMod(this.g,this.x,this.p),opts.nocache&&(primes[bit_length]=null)}function tokenizeStr(str){var start,end;if(start=str.indexOf("("),end=str.lastIndexOf(")"),start<0||end<0)throw new Error("Malformed S-Expression");str=str.substring(start+1,end);var splt=str.search(/\s/),obj={type:str.substring(0,splt),val:[]};if(str=str.substring(splt+1,end),start=str.indexOf("("),start<0)obj.val.push(str);else for(var i,len,ss,es;start>-1;){for(i=start+1,len=str.length,ss=1,es=0;i<len&&es<ss;i++)"("===str[i]&&ss++,")"===str[i]&&es++;obj.val.push(tokenizeStr(str.substring(start,++i))),str=str.substring(++i),start=str.indexOf("(")}return obj}function parseLibotr(obj){if(!obj.type)throw new Error("Parse error.");var o,val;return"privkeys"===obj.type?(o=[],obj.val.forEach(function(i){o.push(parseLibotr(i))}),o):(o={},obj.val.forEach(function(i){val=i.val[0],"string"==typeof val?0===val.indexOf("#")&&(val=val.substring(1,val.lastIndexOf("#")),val=BigInt.str2bigInt(val,16)):val=parseLibotr(i),o[i.type]=val}),o)}var CryptoJS,BigInt,Worker,WWPath,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=DSA,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),WWPath=require("path").join(__dirname,"/dsa-webworker.js"),HLP=require("./helpers.js")):(Object.keys(root.DSA).forEach(function(k){DSA[k]=root.DSA[k]}),root.DSA=DSA,CryptoJS=root.CryptoJS,BigInt=root.BigInt,Worker=root.Worker,WWPath="dsa-webworker.js",HLP=DSA.HLP);var ZERO=BigInt.str2bigInt("0",10),ONE=BigInt.str2bigInt("1",10),TWO=BigInt.str2bigInt("2",10),KEY_TYPE="\0\0",DEBUG=!1,rpprb=[],bit_lengths={1024:{N:160,repeat:40},2048:{N:224,repeat:56}},primes={};DSA.prototype={constructor:DSA,packPublic:function(){var str=this.type;return str+=HLP.packMPI(this.p),str+=HLP.packMPI(this.q),str+=HLP.packMPI(this.g),str+=HLP.packMPI(this.y)},packPrivate:function(){var str=this.packPublic()+HLP.packMPI(this.x);return str=CryptoJS.enc.Latin1.parse(str),str.toString(CryptoJS.enc.Base64)},generateNonce:function(m){var priv=BigInt.bigInt2bits(BigInt.trim(this.x,0)),rand=BigInt.bigInt2bits(BigInt.randBigInt(256)),sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(priv)),sha256.update(m),sha256.update(CryptoJS.enc.Latin1.parse(rand));var hash=sha256.finalize();return hash=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1)),BigInt.rightShift_(hash,256-BigInt.bitSize(this.q)),HLP.between(hash,ZERO,this.q)?hash:this.generateNonce(m)},sign:function(m){m=CryptoJS.enc.Latin1.parse(m);for(var k,b=BigInt.str2bigInt(m.toString(CryptoJS.enc.Hex),16),r=ZERO,s=ZERO;BigInt.isZero(s)||BigInt.isZero(r);)k=this.generateNonce(m),r=BigInt.mod(BigInt.powMod(this.g,k,this.p),this.q),BigInt.isZero(r)||(s=BigInt.inverseMod(k,this.q),s=BigInt.mult(s,BigInt.add(b,BigInt.mult(this.x,r))),s=BigInt.mod(s,this.q));return[r,s]},fingerprint:function(){var pk=this.packPublic();return this.type===KEY_TYPE&&(pk=pk.substring(2)),pk=CryptoJS.enc.Latin1.parse(pk),CryptoJS.SHA1(pk).toString(CryptoJS.enc.Hex)}},DSA.parsePublic=function(str,priv){var fields=["SHORT","MPI","MPI","MPI","MPI"];priv&&fields.push("MPI"),str=HLP.splitype(fields,str);var obj={type:str[0],p:HLP.readMPI(str[1]),q:HLP.readMPI(str[2]),g:HLP.readMPI(str[3]),y:HLP.readMPI(str[4])};return priv&&(obj.x=HLP.readMPI(str[5])),new DSA(obj)},DSA.parsePrivate=function(str,libotr){return libotr?parseLibotr(tokenizeStr(str))[0]["private-key"].dsa:(str=CryptoJS.enc.Base64.parse(str),str=str.toString(CryptoJS.enc.Latin1),DSA.parsePublic(str,!0))},DSA.verify=function(key,m,r,s){if(!HLP.between(r,ZERO,key.q)||!HLP.between(s,ZERO,key.q))return!1;var hm=CryptoJS.enc.Latin1.parse(m);hm=BigInt.str2bigInt(hm.toString(CryptoJS.enc.Hex),16);var w=BigInt.inverseMod(s,key.q),u1=BigInt.multMod(hm,w,key.q),u2=BigInt.multMod(r,w,key.q);u1=BigInt.powMod(key.g,u1,key.p),u2=BigInt.powMod(key.y,u2,key.p);var v=BigInt.mod(BigInt.multMod(u1,u2,key.p),key.q);return BigInt.equals(v,r)},DSA.createInWebWorker=function(options,cb){var opts={path:WWPath,seed:BigInt.getSeed};options&&"object"==typeof options&&Object.keys(options).forEach(function(k){opts[k]=options[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker);var worker=new Worker(opts.path);worker.onmessage=function(e){var data=e.data;switch(data.type){case"debug":if(!DEBUG||"undefined"==typeof console)return;console.log(data.val);break;case"data":worker.terminate(),cb(DSA.parsePrivate(data.val));break;default:throw new Error("Unrecognized type.")}},worker.postMessage({seed:opts.seed(),imports:opts.imports,debug:DEBUG})}}.call(this),function(){"use strict";var CryptoJS,CONST,HLP,root=this,Parse={};"undefined"!=typeof module&&module.exports?(module.exports=Parse,CryptoJS=require("../vendor/crypto.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.Parse=Parse,CryptoJS=root.CryptoJS,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var tags={};tags[CONST.WHITESPACE_TAG_V2]=CONST.OTR_VERSION_2,tags[CONST.WHITESPACE_TAG_V3]=CONST.OTR_VERSION_3,Parse.parseMsg=function(otr,msg){var ver=[],start=msg.indexOf(CONST.OTR_TAG);if(!~start){if(this.initFragment(otr),ind=msg.indexOf(CONST.WHITESPACE_TAG),~ind){msg=msg.split(""),msg.splice(ind,16);for(var tag,len=msg.length;ind<len;)tag=msg.slice(ind,ind+8).join(""),Object.hasOwnProperty.call(tags,tag)?(msg.splice(ind,8),ver.push(tags[tag])):ind+=8;msg=msg.join("")}return{msg:msg,ver:ver}}var ind=start+CONST.OTR_TAG.length,com=msg[ind];if(","===com||"|"===com)return this.msgFragment(otr,msg.substring(ind+1),"|"===com);if(this.initFragment(otr),~["?","v"].indexOf(com)){"?"===msg[ind]&&(ver.push(CONST.OTR_VERSION_1),ind+=1);var vers={2:CONST.OTR_VERSION_2,3:CONST.OTR_VERSION_3},qs=msg.substring(ind+1),qi=qs.indexOf("?");return qi>=1&&(qs=qs.substring(0,qi).split(""),"v"===msg[ind]&&qs.forEach(function(q){Object.hasOwnProperty.call(vers,q)&&ver.push(vers[q])})),{cls:"query",ver:ver}}if(":"===com){ind+=1;var info=msg.substring(ind,ind+4);if(info.length<4)return{msg:msg};info=CryptoJS.enc.Base64.parse(info).toString(CryptoJS.enc.Latin1);var version=info.substring(0,2),type=info.substring(2);if(!otr["ALLOW_V"+HLP.unpackSHORT(version)])return{msg:msg};ind+=4;var end=msg.substring(ind).indexOf(".");if(!~end)return{msg:msg};msg=CryptoJS.enc.Base64.parse(msg.substring(ind,ind+end)),msg=CryptoJS.enc.Latin1.stringify(msg);var instance_tags;version===CONST.OTR_VERSION_3&&(instance_tags=msg.substring(0,8),msg=msg.substring(8));var cls;return~["","\n","",""].indexOf(type)?cls="ake":""===type&&(cls="data"),{version:version,type:type,msg:msg,cls:cls,instance_tags:instance_tags}}return" Error:"===msg.substring(ind,ind+7)?(otr.ERROR_START_AKE&&otr.sendQueryMsg(),{msg:msg.substring(ind+7),cls:"error"}):{msg:msg}},Parse.initFragment=function(otr){otr.fragment={s:"",j:0,k:0}},Parse.msgFragment=function(otr,msg,v3){if(msg=msg.split(","),v3){var its=msg.shift().split("|"),their_it=HLP.packINT(parseInt(its[0],16)),our_it=HLP.packINT(parseInt(its[1],16));if(otr.checkInstanceTags(their_it+our_it))return}if(!(msg.length<4||isNaN(parseInt(msg[0],10))||isNaN(parseInt(msg[1],10)))){var k=parseInt(msg[0],10),n=parseInt(msg[1],10);return msg=msg[2],n<k||0===n||0===k?void this.initFragment(otr):(1===k?(this.initFragment(otr),otr.fragment={k:1,n:n,s:msg}):n===otr.fragment.n&&k===otr.fragment.k+1?(otr.fragment.s+=msg,otr.fragment.k+=1):this.initFragment(otr),n===k?(msg=otr.fragment.s,this.initFragment(otr),this.parseMsg(otr,msg)):void 0)}}}.call(this),function(){"use strict";function hMac(gx,gy,pk,kid,m){var pass=CryptoJS.enc.Latin1.parse(m),hmac=CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256,pass);return hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gx))),hmac.update(CryptoJS.enc.Latin1.parse(HLP.packMPI(gy))),hmac.update(CryptoJS.enc.Latin1.parse(pk)),hmac.update(CryptoJS.enc.Latin1.parse(kid)),hmac.finalize().toString(CryptoJS.enc.Latin1)}function AKE(otr){if(!(this instanceof AKE))return new AKE(otr);this.otr=otr,this.our_dh=otr.our_old_dh,this.our_keyid=otr.our_keyid-1,this.their_y=null,this.their_keyid=null,this.their_priv_pk=null,this.ssid=null,this.transmittedRS=!1,this.r=null;var self=this;["sendMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)})}var CryptoJS,BigInt,CONST,HLP,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=AKE,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),DSA=require("./dsa.js")):(root.OTR.AKE=AKE,CryptoJS=root.CryptoJS,BigInt=root.BigInt,CONST=root.OTR.CONST,HLP=root.OTR.HLP,DSA=root.DSA);var N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10));AKE.prototype={constructor:AKE,createKeys:function(g){var s=BigInt.powMod(g,this.our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.ssid=HLP.mask(HLP.h2("\0",secbytes),0,64);var tmp=HLP.h2("",secbytes);this.c=HLP.mask(tmp,0,128),this.c_prime=HLP.mask(tmp,128,128),this.m1=HLP.h2("",secbytes),this.m2=HLP.h2("",secbytes),this.m1_prime=HLP.h2("",secbytes),this.m2_prime=HLP.h2("",secbytes)},verifySignMac:function(mac,aesctr,m2,c,their_y,our_dh_pk,m1,ctr){var vmac=HLP.makeMac(aesctr,m2);if(!HLP.compare(mac,vmac))return["MACs do not match."];var x=HLP.decryptAes(aesctr.substring(4),c,ctr);x=HLP.splitype(["PUBKEY","INT","SIG"],x.toString(CryptoJS.enc.Latin1));var m=hMac(their_y,our_dh_pk,x[0],x[1],m1),pub=DSA.parsePublic(x[0]),r=HLP.bits2bigInt(x[2].substring(0,20)),s=HLP.bits2bigInt(x[2].substring(20));return DSA.verify(pub,m,r,s)?[null,HLP.readLen(x[1]),pub]:["Cannot verify signature of m."]},makeM:function(their_y,m1,c,m2){var pk=this.otr.priv.packPublic(),kid=HLP.packINT(this.our_keyid),m=hMac(this.our_dh.publicKey,their_y,pk,kid,m1);m=this.otr.priv.sign(m);var msg=pk+kid;msg+=BigInt.bigInt2bits(m[0],20),msg+=BigInt.bigInt2bits(m[1],20),msg=CryptoJS.enc.Latin1.parse(msg);var aesctr=HLP.packData(HLP.encryptAes(msg,c,HLP.packCtr(0))),mac=HLP.makeMac(aesctr,m2);return aesctr+mac},akeSuccess:function(version){return HLP.debug.call(this.otr,"success"),BigInt.equals(this.their_y,this.our_dh.publicKey)?this.otr.error("equal keys - we have a problem."):(this.otr.our_old_dh=this.our_dh,this.otr.their_priv_pk=this.their_priv_pk,this.their_keyid===this.otr.their_keyid&&BigInt.equals(this.their_y,this.otr.their_y)||this.their_keyid===this.otr.their_keyid-1&&BigInt.equals(this.their_y,this.otr.their_old_y)||(this.otr.their_y=this.their_y,this.otr.their_old_y=null,this.otr.their_keyid=this.their_keyid,this.otr.sessKeys[0]=[new this.otr.DHSession(this.otr.our_dh,this.otr.their_y),null],this.otr.sessKeys[1]=[new this.otr.DHSession(this.otr.our_old_dh,this.otr.their_y),null]),this.otr.ssid=this.ssid,this.otr.transmittedRS=this.transmittedRS,this.otr_version=version,this.otr.authstate=CONST.AUTHSTATE_NONE,this.otr.msgstate=CONST.MSGSTATE_ENCRYPTED,this.r=null,this.myhashed=null,this.dhcommit=null,this.encrypted=null,this.hashed=null,this.otr.trigger("status",[CONST.STATUS_AKE_SUCCESS]),void this.otr.sendStored())},handleAKE:function(msg){var send,vsm,type,version=msg.version;switch(msg.type){case"":if(HLP.debug.call(this.otr,"d-h key message"),msg=HLP.splitype(["DATA","DATA"],msg.msg),this.otr.authstate===CONST.AUTHSTATE_AWAITING_DHKEY){var ourHash=HLP.readMPI(this.myhashed),theirHash=HLP.readMPI(msg[1]);if(BigInt.greater(ourHash,theirHash)){type="",send=this.dhcommit;break}this.our_dh=this.otr.dh(),this.otr.authstate=CONST.AUTHSTATE_NONE,this.r=null,this.myhashed=null}else this.otr.authstate===CONST.AUTHSTATE_AWAITING_SIG&&(this.our_dh=this.otr.dh());this.otr.authstate=CONST.AUTHSTATE_AWAITING_REVEALSIG,this.encrypted=msg[0].substring(4),this.hashed=msg[1].substring(4),type="\n",send=HLP.packMPI(this.our_dh.publicKey);break;case"\n":if(HLP.debug.call(this.otr,"reveal signature message"),msg=HLP.splitype(["MPI"],msg.msg),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_DHKEY){if(this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;if(!BigInt.equals(this.their_y,HLP.readMPI(msg[0])))return}if(this.otr.authstate=CONST.AUTHSTATE_AWAITING_SIG,this.their_y=HLP.readMPI(msg[0]),!HLP.checkGroup(this.their_y,N_MINUS_2))return this.otr.error("Illegal g^y.");this.createKeys(this.their_y),type="",send=HLP.packMPI(this.r),send+=this.makeM(this.their_y,this.m1,this.c,this.m2),this.m1=null,this.m2=null,this.c=null;break;case"":if(HLP.debug.call(this.otr,"signature message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_REVEALSIG)return;msg=HLP.splitype(["DATA","DATA","MAC"],msg.msg),this.r=HLP.readMPI(msg[0]);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key);var gxmpi=HLP.decryptAes(this.encrypted,key,HLP.packCtr(0));gxmpi=gxmpi.toString(CryptoJS.enc.Latin1),this.their_y=HLP.readMPI(gxmpi);var hash=CryptoJS.SHA256(CryptoJS.enc.Latin1.parse(gxmpi));return HLP.compare(this.hashed,hash.toString(CryptoJS.enc.Latin1))?HLP.checkGroup(this.their_y,N_MINUS_2)?(this.createKeys(this.their_y),vsm=this.verifySignMac(msg[2],msg[1],this.m2,this.c,this.their_y,this.our_dh.publicKey,this.m1,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],send=this.makeM(this.their_y,this.m1_prime,this.c_prime,this.m2_prime),this.m1=null,this.m2=null,this.m1_prime=null,this.m2_prime=null,this.c=null,this.c_prime=null,this.sendMsg(version,"",send),void this.akeSuccess(version))):this.otr.error("Illegal g^x."):this.otr.error("Hashed g^x does not match.");case"":if(HLP.debug.call(this.otr,"data message"),this.otr.authstate!==CONST.AUTHSTATE_AWAITING_SIG)return;return msg=HLP.splitype(["DATA","MAC"],msg.msg),vsm=this.verifySignMac(msg[1],msg[0],this.m2_prime,this.c_prime,this.their_y,this.our_dh.publicKey,this.m1_prime,HLP.packCtr(0)),vsm[0]?this.otr.error(vsm[0]):(this.their_keyid=vsm[1],this.their_priv_pk=vsm[2],this.m1_prime=null,this.m2_prime=null,this.c_prime=null,this.transmittedRS=!0,void this.akeSuccess(version));default:return}this.sendMsg(version,type,send)},sendMsg:function(version,type,msg){var send=version+type,v3=version===CONST.OTR_VERSION_3;return v3&&(HLP.debug.call(this.otr,"instance tags"),send+=this.otr.our_instance_tag,send+=this.otr.their_instance_tag),send+=msg,send=HLP.wrapMsg(send,this.otr.fragment_size,v3,this.otr.our_instance_tag,this.otr.their_instance_tag),send[0]?this.otr.error(send[0]):void this.otr.io(send[1])},initiateAKE:function(version){HLP.debug.call(this.otr,"d-h commit message"),this.otr.trigger("status",[CONST.STATUS_AKE_INIT]),this.otr.authstate=CONST.AUTHSTATE_AWAITING_DHKEY;var gxmpi=HLP.packMPI(this.our_dh.publicKey);gxmpi=CryptoJS.enc.Latin1.parse(gxmpi),this.r=BigInt.randBigInt(128);var key=CryptoJS.enc.Hex.parse(BigInt.bigInt2str(this.r,16));key=CryptoJS.enc.Latin1.stringify(key),this.myhashed=CryptoJS.SHA256(gxmpi),this.myhashed=HLP.packData(this.myhashed.toString(CryptoJS.enc.Latin1)),this.dhcommit=HLP.packData(HLP.encryptAes(gxmpi,key,HLP.packCtr(0))),this.dhcommit+=this.myhashed,this.sendMsg(version,"",this.dhcommit)}}}.call(this),function(){"use strict";function SM(reqs){return this instanceof SM?(this.version=1,this.our_fp=reqs.our_fp,this.their_fp=reqs.their_fp,this.ssid=reqs.ssid,this.debug=!!reqs.debug,void this.init()):new SM(reqs)}var CryptoJS,BigInt,EventEmitter,CONST,HLP,root=this;"undefined"!=typeof module&&module.exports?(module.exports=SM,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),CONST=require("./const.js"),HLP=require("./helpers.js")):(root.OTR.SM=SM,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,CONST=root.OTR.CONST,HLP=root.OTR.HLP);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),N_MINUS_2=BigInt.sub(N,BigInt.str2bigInt("2",10)),Q=BigInt.sub(N,BigInt.str2bigInt("1",10));BigInt.divInt_(Q,2),HLP.extend(SM,EventEmitter),SM.prototype.init=function(){this.smpstate=CONST.SMPSTATE_EXPECT1,this.secret=null},SM.prototype.makeSecret=function(our,secret){var sha256=CryptoJS.algo.SHA256.create();sha256.update(CryptoJS.enc.Latin1.parse(HLP.packBytes(this.version,1))),sha256.update(CryptoJS.enc.Hex.parse(our?this.our_fp:this.their_fp)),sha256.update(CryptoJS.enc.Hex.parse(our?this.their_fp:this.our_fp)),sha256.update(CryptoJS.enc.Latin1.parse(this.ssid)),sha256.update(CryptoJS.enc.Latin1.parse(secret));var hash=sha256.finalize();this.secret=HLP.bits2bigInt(hash.toString(CryptoJS.enc.Latin1))},SM.prototype.makeG2s=function(){this.a2=HLP.randomExponent(),this.a3=HLP.randomExponent(),this.g2a=BigInt.powMod(G,this.a2,N),this.g3a=BigInt.powMod(G,this.a3,N),HLP.checkGroup(this.g2a,N_MINUS_2)&&HLP.checkGroup(this.g3a,N_MINUS_2)||this.makeG2s()},SM.prototype.computeGs=function(g2a,g3a){this.g2=BigInt.powMod(g2a,this.a2,N),this.g3=BigInt.powMod(g3a,this.a3,N)},SM.prototype.computePQ=function(r){this.p=BigInt.powMod(this.g3,r,N),this.q=HLP.multPowMod(G,r,this.g2,this.secret,N)},SM.prototype.computeR=function(){this.r=BigInt.powMod(this.QoQ,this.a3,N)},SM.prototype.computeRab=function(r){return BigInt.powMod(r,this.a3,N)},SM.prototype.computeC=function(v,r){return HLP.smpHash(v,BigInt.powMod(G,r,N))},SM.prototype.computeD=function(r,a,c){return BigInt.subMod(r,BigInt.multMod(a,c,Q),Q)},SM.prototype.handleSM=function(msg){var send,r2,r3,r7,t1,t2,t3,t4,rab,tmp2,cR,d7,ms,trust,expectStates={2:CONST.SMPSTATE_EXPECT1,3:CONST.SMPSTATE_EXPECT2,4:CONST.SMPSTATE_EXPECT3,5:CONST.SMPSTATE_EXPECT4,7:CONST.SMPSTATE_EXPECT1};if(6===msg.type)return this.init(),void this.trigger("abort");if(this.smpstate!==expectStates[msg.type])return this.abort();switch(this.smpstate){case CONST.SMPSTATE_EXPECT1:HLP.debug.call(this,"smp tlv 2");var ind,question;return 7===msg.type&&(ind=msg.msg.indexOf("\0"),question=msg.msg.substring(0,ind),msg.msg=msg.msg.substring(ind+1)),ms=HLP.readLen(msg.msg.substr(0,4)),6!==ms?this.abort():(msg=HLP.unpackMPIs(6,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.ZKP(1,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N))&&HLP.ZKP(2,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N))?(this.g3ao=msg[3],this.makeG2s(),r2=HLP.randomExponent(),r3=HLP.randomExponent(),this.c2=this.computeC(3,r2),this.c3=this.computeC(4,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.computeGs(msg[0],msg[3]),this.smpstate=CONST.SMPSTATE_EXPECT0,
-question&&(question=CryptoJS.enc.Latin1.parse(question).toString(CryptoJS.enc.Utf8)),void this.trigger("question",[question])):this.abort());case CONST.SMPSTATE_EXPECT2:if(HLP.debug.call(this,"smp tlv 3"),ms=HLP.readLen(msg.msg.substr(0,4)),11!==ms)return this.abort();if(msg=HLP.unpackMPIs(11,msg.msg.substring(4)),!(HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.checkGroup(msg[6],N_MINUS_2)&&HLP.checkGroup(msg[7],N_MINUS_2)))return this.abort();if(!HLP.ZKP(3,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N)))return this.abort();if(!HLP.ZKP(4,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N)))return this.abort();if(this.g3ao=msg[3],this.computeGs(msg[0],msg[3]),t1=HLP.multPowMod(this.g3,msg[9],msg[6],msg[8],N),t2=HLP.multPowMod(G,msg[9],this.g2,msg[10],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[7],msg[8],N),N),!HLP.ZKP(5,msg[8],t1,t2))return this.abort();var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(6,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.QoQ=BigInt.divMod(this.q,msg[7],N),this.PoP=BigInt.divMod(this.p,msg[6],N),this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(7,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),this.smpstate=CONST.SMPSTATE_EXPECT4,send=HLP.packINT(8)+HLP.packMPIs([this.p,this.q,cP,d5,d6,this.r,cR,d7]),send=HLP.packTLV(4,send);break;case CONST.SMPSTATE_EXPECT3:if(HLP.debug.call(this,"smp tlv 4"),ms=HLP.readLen(msg.msg.substr(0,4)),8!==ms)return this.abort();if(msg=HLP.unpackMPIs(8,msg.msg.substring(4)),!HLP.checkGroup(msg[0],N_MINUS_2)||!HLP.checkGroup(msg[1],N_MINUS_2)||!HLP.checkGroup(msg[5],N_MINUS_2))return this.abort();if(t1=HLP.multPowMod(this.g3,msg[3],msg[0],msg[2],N),t2=HLP.multPowMod(G,msg[3],this.g2,msg[4],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[1],msg[2],N),N),!HLP.ZKP(6,msg[2],t1,t2))return this.abort();if(t3=HLP.multPowMod(G,msg[7],this.g3ao,msg[6],N),this.QoQ=BigInt.divMod(msg[1],this.q,N),t4=HLP.multPowMod(this.QoQ,msg[7],msg[5],msg[6],N),!HLP.ZKP(7,msg[6],t3,t4))return this.abort();this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(8,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),send=HLP.packINT(3)+HLP.packMPIs([this.r,cR,d7]),send=HLP.packTLV(5,send),rab=this.computeRab(msg[5]),trust=!!BigInt.equals(rab,BigInt.divMod(msg[0],this.p,N)),this.trigger("trust",[trust,"answered"]),this.init();break;case CONST.SMPSTATE_EXPECT4:return HLP.debug.call(this,"smp tlv 5"),ms=HLP.readLen(msg.msg.substr(0,4)),3!==ms?this.abort():(msg=HLP.unpackMPIs(3,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)?(t3=HLP.multPowMod(G,msg[2],this.g3ao,msg[1],N),t4=HLP.multPowMod(this.QoQ,msg[2],msg[0],msg[1],N),HLP.ZKP(8,msg[1],t3,t4)?(rab=this.computeRab(msg[0]),trust=!!BigInt.equals(rab,this.PoP),this.trigger("trust",[trust,"asked"]),void this.init()):this.abort()):this.abort())}this.sendMsg(send)},SM.prototype.sendMsg=function(send){this.trigger("send",[this.ssid,"\0"+send])},SM.prototype.rcvSecret=function(secret,question){HLP.debug.call(this,"receive secret");var fn,our=!1;this.smpstate===CONST.SMPSTATE_EXPECT0?fn=this.answer:(fn=this.initiate,our=!0),this.makeSecret(our,secret),fn.call(this,question)},SM.prototype.answer=function(){HLP.debug.call(this,"smp answer");var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(5,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.smpstate=CONST.SMPSTATE_EXPECT3;var send=HLP.packINT(11)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3,this.p,this.q,cP,d5,d6]);this.sendMsg(HLP.packTLV(3,send))},SM.prototype.initiate=function(question){HLP.debug.call(this,"smp initiate"),this.smpstate!==CONST.SMPSTATE_EXPECT1&&this.abort(),this.makeG2s();var r2=HLP.randomExponent(),r3=HLP.randomExponent();this.c2=this.computeC(1,r2),this.c3=this.computeC(2,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.smpstate=CONST.SMPSTATE_EXPECT2;var send="",type=2;question&&(send+=question,send+="\0",type=7),send+=HLP.packINT(6)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3]),this.sendMsg(HLP.packTLV(type,send))},SM.prototype.abort=function(){this.init(),this.sendMsg(HLP.packTLV(6,"")),this.trigger("abort")}}.call(this),function(){"use strict";function OTRCB(cb){this.cb=cb}function OTR(options){if(!(this instanceof OTR))return new OTR(options);if(options=options||{},options.priv&&!(options.priv instanceof DSA))throw new Error("Requires long-lived DSA key.");if(this.priv=options.priv?options.priv:new DSA,this.fragment_size=options.fragment_size||0,this.fragment_size<0)throw new Error("Fragment size must be a positive integer.");if(this.send_interval=options.send_interval||0,this.send_interval<0)throw new Error("Send interval must be a positive integer.");this.outgoing=[],this.our_instance_tag=options.instance_tag||OTR.makeInstanceTag(),this.debug=!!options.debug,this.smw=options.smw,this.init();var self=this;["sendMsg","receiveMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)}),EventEmitter.call(this)}var CryptoJS,BigInt,EventEmitter,Worker,SMWPath,CONST,HLP,Parse,AKE,SM,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=OTR,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),SMWPath=require("path").join(__dirname,"/sm-webworker.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),Parse=require("./parse.js"),AKE=require("./ake.js"),SM=require("./sm.js"),DSA=require("./dsa.js"),OTR.CONST=CONST):(Object.keys(root.OTR).forEach(function(k){OTR[k]=root.OTR[k]}),root.OTR=OTR,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,Worker=root.Worker,SMWPath="sm-webworker.js",CONST=OTR.CONST,HLP=OTR.HLP,Parse=OTR.Parse,AKE=OTR.AKE,SM=OTR.SM,DSA=root.DSA);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),MAX_INT=Math.pow(2,53)-1,MAX_UINT=Math.pow(2,31)-1;HLP.extend(OTR,EventEmitter),OTR.prototype.init=function(){this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.authstate=CONST.AUTHSTATE_NONE,this.ALLOW_V2=!0,this.ALLOW_V3=!0,this.REQUIRE_ENCRYPTION=!1,this.SEND_WHITESPACE_TAG=!1,this.WHITESPACE_START_AKE=!1,this.ERROR_START_AKE=!1,Parse.initFragment(this),this.their_y=null,this.their_old_y=null,this.their_keyid=0,this.their_priv_pk=null,this.their_instance_tag="\0\0\0\0",this.our_dh=this.dh(),this.our_old_dh=this.dh(),this.our_keyid=2,this.sessKeys=[new Array(2),new Array(2)],this.storedMgs=[],this.oldMacKeys=[],this.sm=null,this._akeInit(),this.receivedPlaintext=!1},OTR.prototype._akeInit=function(){this.ake=new AKE(this),this.transmittedRS=!1,this.ssid=null},OTR.prototype._SMW=function(otr,reqs){this.otr=otr;var opts={path:SMWPath,seed:BigInt.getSeed};"object"==typeof otr.smw&&Object.keys(otr.smw).forEach(function(k){opts[k]=otr.smw[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker),this.worker=new Worker(opts.path);var self=this;this.worker.onmessage=function(e){var d=e.data;d&&self.trigger(d.method,d.args)},this.worker.postMessage({type:"seed",seed:opts.seed(),imports:opts.imports}),this.worker.postMessage({type:"init",reqs:reqs})},HLP.extend(OTR.prototype._SMW,EventEmitter),["handleSM","rcvSecret","abort"].forEach(function(m){OTR.prototype._SMW.prototype[m]=function(){this.worker.postMessage({type:"method",method:m,args:Array.prototype.slice.call(arguments,0)})}}),OTR.prototype._smInit=function(){var reqs={ssid:this.ssid,our_fp:this.priv.fingerprint(),their_fp:this.their_priv_pk.fingerprint(),debug:this.debug};this.smw?(this.sm&&this.sm.worker.terminate(),this.sm=new this._SMW(this,reqs)):this.sm=new SM(reqs);var self=this;["trust","abort","question"].forEach(function(e){self.sm.on(e,function(){self.trigger("smp",[e].concat(Array.prototype.slice.call(arguments)))})}),this.sm.on("send",function(ssid,send){self.ssid===ssid&&(send=self.prepareMsg(send),self.io(send))})},OTR.prototype.io=function(msg,meta){msg=[].concat(msg).map(function(m,i,arr){var obj={msg:m};return meta instanceof OTRCB&&i!==arr.length-1||(obj.meta=meta),obj}),this.outgoing=this.outgoing.concat(msg);var self=this;!function send(first){if(!first){if(!self.outgoing.length)return;var elem=self.outgoing.shift(),cb=null;elem.meta instanceof OTRCB&&(cb=elem.meta.cb,elem.meta=null),self.trigger("io",[elem.msg,elem.meta]),cb&&cb()}setTimeout(send,first?0:self.send_interval)}(!0)},OTR.prototype.dh=function(){var keys={privateKey:BigInt.randBigInt(320)};return keys.publicKey=BigInt.powMod(G,keys.privateKey,N),keys},OTR.prototype.DHSession=function DHSession(our_dh,their_y){if(!(this instanceof DHSession))return new DHSession(our_dh,their_y);var s=BigInt.powMod(their_y,our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.id=HLP.mask(HLP.h2("\0",secbytes),0,64);var sq=BigInt.greater(our_dh.publicKey,their_y),sendbyte=sq?"":"",rcvbyte=sq?"":"";this.sendenc=HLP.mask(HLP.h1(sendbyte,secbytes),0,128),this.sendmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.sendenc)),this.sendmac=this.sendmac.toString(CryptoJS.enc.Latin1),this.rcvenc=HLP.mask(HLP.h1(rcvbyte,secbytes),0,128),this.rcvmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.rcvenc)),this.rcvmac=this.rcvmac.toString(CryptoJS.enc.Latin1),this.rcvmacused=!1,this.extra_symkey=HLP.h2("ÿ",secbytes),this.send_counter=0,this.rcv_counter=0},OTR.prototype.rotateOurKeys=function(){var self=this;this.sessKeys[1].forEach(function(sk){sk&&sk.rcvmacused&&self.oldMacKeys.push(sk.rcvmac)}),this.our_old_dh=this.our_dh,this.our_dh=this.dh(),this.our_keyid+=1,this.sessKeys[1][0]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[0][1],this.sessKeys[0]=[this.their_y?new this.DHSession(this.our_dh,this.their_y):null,this.their_old_y?new this.DHSession(this.our_dh,this.their_old_y):null]},OTR.prototype.rotateTheirKeys=function(their_y){this.their_keyid+=1;var self=this;this.sessKeys.forEach(function(sk){sk[1]&&sk[1].rcvmacused&&self.oldMacKeys.push(sk[1].rcvmac)}),this.their_old_y=this.their_y,this.sessKeys[0][1]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[1][0],this.their_y=their_y,this.sessKeys[0][0]=new this.DHSession(this.our_dh,this.their_y),this.sessKeys[1][0]=new this.DHSession(this.our_old_dh,this.their_y)},OTR.prototype.prepareMsg=function(msg,esk){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||0===this.their_keyid)return this.notify("Not ready to encrypt.");var sessKeys=this.sessKeys[1][0];if(sessKeys.send_counter>=MAX_INT)return this.notify("Should have rekeyed by now.");sessKeys.send_counter+=1;var ctr=HLP.packCtr(sessKeys.send_counter),send=this.ake.otr_version+"",v3=this.ake.otr_version===CONST.OTR_VERSION_3;if(v3&&(send+=this.our_instance_tag,send+=this.their_instance_tag),send+="\0",send+=HLP.packINT(this.our_keyid-1),send+=HLP.packINT(this.their_keyid),send+=HLP.packMPI(this.our_dh.publicKey),send+=ctr.substring(0,8),Math.ceil(msg.length/8)>=MAX_UINT)return this.notify("Message is too long.");var aes=HLP.encryptAes(CryptoJS.enc.Latin1.parse(msg),sessKeys.sendenc,ctr);return send+=HLP.packData(aes),send+=HLP.make1Mac(send,sessKeys.sendmac),send+=HLP.packData(this.oldMacKeys.splice(0).join("")),send=HLP.wrapMsg(send,this.fragment_size,v3,this.our_instance_tag,this.their_instance_tag),send[0]?this.notify(send[0]):(esk&&this.trigger("file",["send",sessKeys.extra_symkey,esk]),send[1])},OTR.prototype.handleDataMsg=function(msg){var vt=msg.version+msg.type;this.ake.otr_version===CONST.OTR_VERSION_3&&(vt+=msg.instance_tags);var types=["BYTE","INT","INT","MPI","CTR","DATA","MAC","DATA"];msg=HLP.splitype(types,msg.msg);var ign=""===msg[0];if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||8!==msg.length)return void(ign||this.error("Received an unreadable encrypted message."));var our_keyid=this.our_keyid-HLP.readLen(msg[2]),their_keyid=this.their_keyid-HLP.readLen(msg[1]);if(our_keyid<0||our_keyid>1)return void(ign||this.error("Not of our latest keys."));if(their_keyid<0||their_keyid>1)return void(ign||this.error("Not of your latest keys."));var their_y=their_keyid?this.their_old_y:this.their_y;if(1===their_keyid&&!their_y)return void(ign||this.error("Do not have that key."));var sessKeys=this.sessKeys[our_keyid][their_keyid],ctr=HLP.unpackCtr(msg[4]);if(ctr<=sessKeys.rcv_counter)return void(ign||this.error("Counter in message is not larger."));sessKeys.rcv_counter=ctr,vt+=msg.slice(0,6).join("");var vmac=HLP.make1Mac(vt,sessKeys.rcvmac);if(!HLP.compare(msg[6],vmac))return void(ign||this.error("MACs do not match."));sessKeys.rcvmacused=!0;var out=HLP.decryptAes(msg[5].substring(4),sessKeys.rcvenc,HLP.padCtr(msg[4]));out=out.toString(CryptoJS.enc.Latin1),our_keyid||this.rotateOurKeys(),their_keyid||this.rotateTheirKeys(HLP.readMPI(msg[3]));var ind=out.indexOf("\0");return~ind&&(this.handleTLVs(out.substring(ind+1),sessKeys),out=out.substring(0,ind)),out=CryptoJS.enc.Latin1.parse(out),out.toString(CryptoJS.enc.Utf8)},OTR.prototype.handleTLVs=function(tlvs,sessKeys){for(var type,len,msg;tlvs.length&&(type=HLP.unpackSHORT(tlvs.substr(0,2)),len=HLP.unpackSHORT(tlvs.substr(2,2)),msg=tlvs.substr(4,len),!(msg.length<len));){switch(type){case 1:this.msgstate=CONST.MSGSTATE_FINISHED,this.trigger("status",[CONST.STATUS_END_OTR]);break;case 2:case 3:case 4:case 5:case 6:case 7:if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return void(this.sm&&this.sm.abort());this.sm||this._smInit(),this.sm.handleSM({msg:msg,type:type});break;case 8:msg=msg.substring(4),msg=CryptoJS.enc.Latin1.parse(msg),msg=msg.toString(CryptoJS.enc.Utf8),this.trigger("file",["receive",sessKeys.extra_symkey,msg])}tlvs=tlvs.substring(4+len)}},OTR.prototype.smpSecret=function(secret,question){return this.msgstate!==CONST.MSGSTATE_ENCRYPTED?this.notify("Must be encrypted for SMP."):"string"!=typeof secret||secret.length<1?this.notify("Secret is required."):(this.sm||this._smInit(),secret=CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1),question&&(question=CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)),void this.sm.rcvSecret(secret,question))},OTR.prototype.sendQueryMsg=function(){var versions={},msg=CONST.OTR_TAG;this.ALLOW_V2&&(versions[2]=!0),this.ALLOW_V3&&(versions[3]=!0);var vs=Object.keys(versions);vs.length&&(msg+="v",vs.forEach(function(v){"1"!==v&&(msg+=v)}),msg+="?"),this.io(msg),this.trigger("status",[CONST.STATUS_SEND_QUERY])},OTR.prototype.sendMsg=function(msg,meta){switch((this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&(msg=CryptoJS.enc.Utf8.parse(msg),msg=msg.toString(CryptoJS.enc.Latin1)),this.msgstate){case CONST.MSGSTATE_PLAINTEXT:if(this.REQUIRE_ENCRYPTION)return this.storedMgs.push({msg:msg,meta:meta}),void this.sendQueryMsg();this.SEND_WHITESPACE_TAG&&!this.receivedPlaintext&&(msg+=CONST.WHITESPACE_TAG,this.ALLOW_V3&&(msg+=CONST.WHITESPACE_TAG_V3),this.ALLOW_V2&&(msg+=CONST.WHITESPACE_TAG_V2));break;case CONST.MSGSTATE_FINISHED:return this.storedMgs.push({msg:msg,meta:meta}),void this.notify("Message cannot be sent at this time.","warn");case CONST.MSGSTATE_ENCRYPTED:msg=this.prepareMsg(msg);break;default:throw new Error("Unknown message state.")}msg&&this.io(msg,meta)},OTR.prototype.receiveMsg=function(msg,meta){if(msg=Parse.parseMsg(this,msg)){switch(msg.cls){case"error":return void this.notify(msg.msg);case"ake":return msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags)?void this.notify("Received a message intended for a different session.","warn"):void this.ake.handleAKE(msg);case"data":if(msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags))return void this.notify("Received a message intended for a different session.","warn");msg.msg=this.handleDataMsg(msg),msg.encrypted=!0;break;case"query":this.msgstate===CONST.MSGSTATE_ENCRYPTED&&this._akeInit(),this.doAKE(msg);break;default:(this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&this.notify("Received an unencrypted message.","warn"),this.receivedPlaintext=!0,this.WHITESPACE_START_AKE&&msg.ver.length>0&&this.doAKE(msg)}msg.msg&&this.trigger("ui",[msg.msg,!!msg.encrypted,meta])}},OTR.prototype.checkInstanceTags=function(it){var their_it=HLP.readLen(it.substr(0,4)),our_it=HLP.readLen(it.substr(4,4));if(our_it&&our_it!==HLP.readLen(this.our_instance_tag))return!0;if(HLP.readLen(this.their_instance_tag)){if(HLP.readLen(this.their_instance_tag)!==their_it)return!0}else{if(their_it<100)return!0;this.their_instance_tag=HLP.packINT(their_it)}},OTR.prototype.doAKE=function(msg){this.ALLOW_V3&&~msg.ver.indexOf(CONST.OTR_VERSION_3)?this.ake.initiateAKE(CONST.OTR_VERSION_3):this.ALLOW_V2&&~msg.ver.indexOf(CONST.OTR_VERSION_2)?this.ake.initiateAKE(CONST.OTR_VERSION_2):this.notify("OTR conversation requested, but no compatible protocol version found.","warn")},OTR.prototype.error=function(err){this.debug||(err="An OTR error has occurred."),this.io("?OTR Error:"+err),this.notify(err)},OTR.prototype.notify=function(err,severity){this.trigger("error",[err,severity||"error"])},OTR.prototype.sendStored=function(){var self=this;this.storedMgs.splice(0).forEach(function(elem){var msg=self.prepareMsg(elem.msg);self.io(msg,elem.meta)})},OTR.prototype.sendFile=function(filename){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return this.notify("Not ready to encrypt.");if(this.ake.otr_version!==CONST.OTR_VERSION_3)return this.notify("Protocol v3 required.");if(!filename)return this.notify("Please specify a filename.");var l1name=CryptoJS.enc.Utf8.parse(filename);if(l1name=l1name.toString(CryptoJS.enc.Latin1),l1name.length>=65532)return this.notify("Filename is too long.");var msg="\0";msg+="\0\b",msg+=HLP.packSHORT(4+l1name.length),msg+="\0\0\0",msg+=l1name,msg=this.prepareMsg(msg,filename),this.io(msg)},OTR.prototype.endOtr=function(cb){this.msgstate===CONST.MSGSTATE_ENCRYPTED?("function"==typeof cb&&(cb=new OTRCB(cb)),this.sendMsg("\0\0\0\0",cb),this.sm&&(this.smw&&this.sm.worker.terminate(),this.sm=null)):"function"==typeof cb&&setTimeout(cb,0),this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.receivedPlaintext=!1,this.trigger("status",[CONST.STATUS_END_OTR])},OTR.makeInstanceTag=function(){var num=BigInt.randBigInt(32);return BigInt.greater(BigInt.str2bigInt("100",16),num)?OTR.makeInstanceTag():HLP.packINT(parseInt(BigInt.bigInt2str(num,10),10))}}.call(this),{OTR:this.OTR,DSA:this.DSA}}),/*!
- * Source: lib/i18next/release/i18next-latest.min.js, license: MIT, url: http://i18next.com/
- */
-!function(){function a(a,b){if(!b||"function"==typeof b)return a;for(var c in b)a[c]=b[c];return a}function b(a,c){for(var d in c)d in a?b(a[d],c[d]):a[d]=c[d];return a}function c(a,b,c){var d,e=0,f=a.length,g=void 0===f||"[object Array]"!==Object.prototype.toString.apply(a)||"function"==typeof a;if(c)if(g){for(d in a)if(b.apply(a[d],c)===!1)break}else for(;f>e&&b.apply(a[e++],c)!==!1;);else if(g){for(d in a)if(b.call(a[d],d,a[d])===!1)break}else for(;f>e&&b.call(a[e],e,a[e++])!==!1;);return a}function d(a){return"string"==typeof a?a.replace(/[&<>"'\/]/g,function(a){return Q[a]}):a}function e(a){var b=function(a){if(window.XMLHttpRequest)return a(null,new XMLHttpRequest);if(window.ActiveXObject)try{return a(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(b){return a(null,new ActiveXObject("Microsoft.XMLHTTP"))}return a(new Error)},c=function(a){if("string"==typeof a)return a;var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.join("&")},d=function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(192|d>>6),b+=String.fromCharCode(128|63&d)):(b+=String.fromCharCode(224|d>>12),b+=String.fromCharCode(128|63&d>>6),b+=String.fromCharCode(128|63&d))}return b},e=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a=d(a);var c,e,f,g,h,i,j,k="",l=0;do c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k+=b.charAt(g)+b.charAt(h)+b.charAt(i)+b.charAt(j),c=e=f="",g=h=i=j="";while(l<a.length);return k},f=function(){for(var a=arguments[0],b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}return a},g=function(a,d,e,h){"function"==typeof e&&(h=e,e={}),e.cache=e.cache||!1,e.data=e.data||{},e.headers=e.headers||{},e.jsonp=e.jsonp||!1,e.async=void 0===e.async||e.async;var i,j=f({accept:"*/*","content-type":"application/x-www-form-urlencoded;charset=UTF-8"},g.headers,e.headers);if(i="application/json"===j["content-type"]?JSON.stringify(e.data):c(e.data),"GET"===a){var k=[];if(i&&(k.push(i),i=null),e.cache||k.push("_="+(new Date).getTime()),e.jsonp&&(k.push("callback="+e.jsonp),k.push("jsonp="+e.jsonp)),k=k.join("&"),k.length>1&&(d+=d.indexOf("?")>-1?"&"+k:"?"+k),e.jsonp){var l=document.getElementsByTagName("head")[0],m=document.createElement("script");return m.type="text/javascript",m.src=d,void l.appendChild(m)}}b(function(b,c){if(b)return h(b);c.open(a,d,e.async);for(var f in j)j.hasOwnProperty(f)&&c.setRequestHeader(f,j[f]);c.onreadystatechange=function(){if(4===c.readyState){var a=c.responseText||"";if(!h)return;h(c.status,{text:function(){return a},json:function(){try{return JSON.parse(a)}catch(b){return T.error("Can not parse JSON. URL: "+d),{}}}})}},c.send(i)})},h={authBasic:function(a,b){g.headers.Authorization="Basic "+e(a+":"+b)},connect:function(a,b,c){return g("CONNECT",a,b,c)},del:function(a,b,c){return g("DELETE",a,b,c)},get:function(a,b,c){return g("GET",a,b,c)},head:function(a,b,c){return g("HEAD",a,b,c)},headers:function(a){g.headers=a||{}},isAllowed:function(a,b,c){this.options(a,function(a,d){c(-1!==d.text().indexOf(b))})},options:function(a,b,c){return g("OPTIONS",a,b,c)},patch:function(a,b,c){return g("PATCH",a,b,c)},post:function(a,b,c){return g("POST",a,b,c)},put:function(a,b,c){return g("PUT",a,b,c)},trace:function(a,b,c){return g("TRACE",a,b,c)}},i=a.type?a.type.toLowerCase():"get";h[i](a.url,a,function(b,c){200===b||0===b&&c.text()?a.success(c.json(),b,null):a.error(c.text(),b,null)})}function f(a,b){"function"==typeof a&&(b=a,a={}),a=a||{},T.extend(P,a),delete P.fixLng,P.functions&&(delete P.functions,T.extend(T,a.functions)),"string"==typeof P.ns&&(P.ns={namespaces:[P.ns],defaultNs:P.ns}),"string"==typeof P.fallbackNS&&(P.fallbackNS=[P.fallbackNS]),("string"==typeof P.fallbackLng||"boolean"==typeof P.fallbackLng)&&(P.fallbackLng=[P.fallbackLng]),P.interpolationPrefixEscaped=T.regexEscape(P.interpolationPrefix),P.interpolationSuffixEscaped=T.regexEscape(P.interpolationSuffix),P.lng||(P.lng=T.detectLanguage()),L=T.toLanguages(P.lng),F=L[0],T.log("currentLng set to: "+F),P.useCookie&&T.cookie.read(P.cookieName)!==F&&T.cookie.create(P.cookieName,F,P.cookieExpirationTime,P.cookieDomain),P.detectLngFromLocalStorage&&"undefined"!=typeof document&&window.localStorage&&T.localStorage.setItem("i18next_lng",F);var c=z;a.fixLng&&(c=function(a,b){return b=b||{},b.lng=b.lng||c.lng,z(a,b)},c.lng=F),W.setCurrentLng(F),H&&P.setJqueryExt&&s();var d;if(H&&H.Deferred&&(d=H.Deferred()),!P.resStore){var e=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var f=0,g=P.preload.length;g>f;f++)for(var h=T.toLanguages(P.preload[f]),i=0,j=h.length;j>i;i++)e.indexOf(h[i])<0&&e.push(h[i]);return I.sync.load(e,P,function(a,e){J=e,M=!0,b&&b(c),d&&d.resolve(c)}),d?d.promise():void 0}return J=P.resStore,M=!0,b&&b(c),d&&d.resolve(c),d?d.promise():void 0}function g(a,b){"string"==typeof a&&(a=[a]);for(var c=0,d=a.length;d>c;c++)P.preload.indexOf(a[c])<0&&P.preload.push(a[c]);return f(b)}function h(a,b,c,d){"string"!=typeof b?(c=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{},d?T.deepExtend(J[a][b],c):T.extend(J[a][b],c)}function i(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{};var c=J[a][b]||{},d=!1;for(var e in c)c.hasOwnProperty(e)&&(d=!0);return d}function j(a,b){"string"!=typeof b&&(b=P.ns.defaultNs),J[a]=J[a]||{},J[a][b]={}}function k(a,b,c,d){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b),J[a]=J[a]||{},J[a][b]=J[a][b]||{};for(var e=c.split(P.keyseparator),f=0,g=J[a][b];e[f];)f==e.length-1?g[e[f]]=d:(null==g[e[f]]&&(g[e[f]]={}),g=g[e[f]]),f++}function l(a,b,c){"string"!=typeof b?(resource=b,b=P.ns.defaultNs):P.ns.namespaces.indexOf(b)<0&&P.ns.namespaces.push(b);for(var d in c)"string"==typeof c[d]&&k(a,b,d,c[d])}function m(a){P.ns.defaultNs=a}function n(a,b){o([a],b)}function o(a,b){var c={dynamicLoad:P.dynamicLoad,resGetPath:P.resGetPath,getAsync:P.getAsync,customLoad:P.customLoad,ns:{namespaces:a,defaultNs:""}},d=T.toLanguages(P.lng);"string"==typeof P.preload&&(P.preload=[P.preload]);for(var e=0,f=P.preload.length;f>e;e++)for(var g=T.toLanguages(P.preload[e]),h=0,i=g.length;i>h;h++)d.indexOf(g[h])<0&&d.push(g[h]);for(var j=[],k=0,l=d.length;l>k;k++){var m=!1,n=J[d[k]];if(n)for(var o=0,p=a.length;p>o;o++)n[a[o]]||(m=!0);else m=!0;m&&j.push(d[k])}j.length?I.sync._fetch(j,c,function(c,d){var e=a.length*j.length;T.each(a,function(a,c){P.ns.namespaces.indexOf(c)<0&&P.ns.namespaces.push(c),T.each(j,function(a,f){J[f]=J[f]||{},J[f][c]=d[f][c],e--,0===e&&b&&(P.useLocalStorage&&I.sync._storeLocal(J),b())})})}):b&&b()}function p(a,b,c){return"function"==typeof b?(c=b,b={}):b||(b={}),b.lng=a,f(b,c)}function q(){return F}function r(a){J={},p(F,a)}function s(){function a(a,b,c){if(0!==b.length){var d="text";if(0===b.indexOf("[")){var e=b.split("]");b=e[1],d=e[0].substr(1,e[0].length-1)}b.indexOf(";")===b.length-1&&(b=b.substr(0,b.length-2));var f;if("html"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.html(H.t(b,f));else if("text"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.text()},c):c,a.text(H.t(b,f));else if("prepend"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.prepend(H.t(b,f));else if("append"===d)f=P.defaultValueFromContent?H.extend({defaultValue:a.html()},c):c,a.append(H.t(b,f));else if(0===d.indexOf("data-")){var g=d.substr("data-".length);f=P.defaultValueFromContent?H.extend({defaultValue:a.data(g)},c):c;var h=H.t(b,f);a.data(g,h),a.attr(d,h)}else f=P.defaultValueFromContent?H.extend({defaultValue:a.attr(d)},c):c,a.attr(d,H.t(b,f))}}function b(b,c){var d=b.attr(P.selectorAttr);if(d||"undefined"==typeof d||d===!1||(d=b.text()||b.val()),d){var e=b,f=b.data("i18n-target");if(f&&(e=b.find(f)||b),c||P.useDataAttrOptions!==!0||(c=b.data("i18n-options")),c=c||{},d.indexOf(";")>=0){var g=d.split(";");H.each(g,function(b,d){""!==d&&a(e,d,c)})}else a(e,d,c);P.useDataAttrOptions===!0&&b.data("i18n-options",c)}}H.t=H.t||z,H.fn.i18n=function(a){return this.each(function(){b(H(this),a);var c=H(this).find("["+P.selectorAttr+"]");c.each(function(){b(H(this),a)})})}}function t(a,b,c,d){if(!a)return a;if(d=d||b,a.indexOf(d.interpolationPrefix||P.interpolationPrefix)<0)return a;var e=d.interpolationPrefix?T.regexEscape(d.interpolationPrefix):P.interpolationPrefixEscaped,f=d.interpolationSuffix?T.regexEscape(d.interpolationSuffix):P.interpolationSuffixEscaped,g="HTML"+f,h=b.replace&&"object"==typeof b.replace?b.replace:b;return T.each(h,function(b,h){var i=c?c+P.keyseparator+b:b;"object"==typeof h&&null!==h?a=t(a,h,i,d):d.escapeInterpolation||P.escapeInterpolation?(a=a.replace(new RegExp([e,i,g].join(""),"g"),T.regexReplacementEscape(h)),a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(T.escape(h)))):a=a.replace(new RegExp([e,i,f].join(""),"g"),T.regexReplacementEscape(h))}),a}function u(a,b){var c=",",d="{",e="}",f=T.extend({},b);for(delete f.postProcess;-1!=a.indexOf(P.reusePrefix)&&(K++,!(K>P.maxRecursion));){var g=a.lastIndexOf(P.reusePrefix),h=a.indexOf(P.reuseSuffix,g)+P.reuseSuffix.length,i=a.substring(g,h),j=i.replace(P.reusePrefix,"").replace(P.reuseSuffix,"");if(g>=h)return T.error("there is an missing closing in following translation value",a),"";if(-1!=j.indexOf(c)){var k=j.indexOf(c);if(-1!=j.indexOf(d,k)&&-1!=j.indexOf(e,k)){var l=j.indexOf(d,k),m=j.indexOf(e,l)+e.length;try{f=T.extend(f,JSON.parse(j.substring(l,m))),j=j.substring(0,k)}catch(n){}}}var o=C(j,f);a=a.replace(i,T.regexReplacementEscape(o))}return a}function v(a){return a.context&&("string"==typeof a.context||"number"==typeof a.context)}function w(a){return void 0!==a.count&&"string"!=typeof a.count}function x(a){return void 0!==a.indefinite_article&&"string"!=typeof a.indefinite_article&&a.indefinite_article}function y(a,b){b=b||{};var c=A(a,b),d=D(a,b);return void 0!==d||d===c}function z(a,b){return b=b||{},M?(K=0,C.apply(null,arguments)):(T.log("i18next not finished initialization. you might have called t function before loading resources finished."),b.defaultValue||"")}function A(a,b){return void 0!==b.defaultValue?b.defaultValue:a}function B(){for(var a=[],b=1;b<arguments.length;b++)a.push(arguments[b]);return{postProcess:"sprintf",sprintf:a}}function C(a,b){if(b&&"object"!=typeof b?"sprintf"===P.shortcutFunction?b=B.apply(null,arguments):"defaultValue"===P.shortcutFunction&&(b={defaultValue:b}):b=b||{},"object"==typeof P.defaultVariables&&(b=T.extend({},P.defaultVariables,b)),void 0===a||null===a||""===a)return"";"string"==typeof a&&(a=[a]);var c=a[0];if(a.length>1)for(var d=0;d<a.length&&(c=a[d],!y(c,b));d++);var e,f=A(c,b),g=D(c,b),h=b.lng?T.toLanguages(b.lng,b.fallbackLng):L,i=b.ns||P.ns.defaultNs;c.indexOf(P.nsseparator)>-1&&(e=c.split(P.nsseparator),i=e[0],c=e[1]),void 0===g&&P.sendMissing&&"function"==typeof P.missingKeyHandler&&(b.lng?P.missingKeyHandler(h[0],i,c,f,h):P.missingKeyHandler(P.lng,i,c,f,h));var j=b.postProcess||P.postProcess;void 0!==g&&j&&X[j]&&(g=X[j](g,c,b));var k=f;if(f.indexOf(P.nsseparator)>-1&&(e=f.split(P.nsseparator),k=e[1]),k===c&&P.parseMissingKey&&(f=P.parseMissingKey(f)),void 0===g&&(f=t(f,b),f=u(f,b),j&&X[j])){var l=A(c,b);g=X[j](l,c,b)}return void 0!==g?g:f}function D(a,b){b=b||{};var c,d,e=A(a,b),f=L;if(!J)return e;if("cimode"===f[0].toLowerCase())return e;if(b.lngs&&(f=b.lngs),b.lng&&(f=T.toLanguages(b.lng,b.fallbackLng),!J[f[0]])){var g=P.getAsync;P.getAsync=!1,I.sync.load(f,P,function(a,b){T.extend(J,b),P.getAsync=g})}var h=b.ns||P.ns.defaultNs;if(a.indexOf(P.nsseparator)>-1){var i=a.split(P.nsseparator);h=i[0],a=i[1]}if(v(b)){c=T.extend({},b),delete c.context,c.defaultValue=P.contextNotFound;var j=h+P.nsseparator+a+"_"+b.context;if(d=z(j,c),d!=P.contextNotFound)return t(d,{context:b.context})}if(w(b,f[0])){c=T.extend({lngs:[f[0]]},b),delete c.count,delete c.lng,c.defaultValue=P.pluralNotFound;var k;if(W.needsPlural(f[0],b.count)){k=h+P.nsseparator+a+P.pluralSuffix;var l=W.get(f[0],b.count);l>=0?k=k+"_"+l:1===l&&(k=h+P.nsseparator+a)}else k=h+P.nsseparator+a;if(d=z(k,c),d!=P.pluralNotFound)return t(d,{count:b.count,interpolationPrefix:b.interpolationPrefix,interpolationSuffix:b.interpolationSuffix});if(!(f.length>1))return d;var m=f.slice();if(m.shift(),b=T.extend(b,{lngs:m}),delete b.lng,d=z(h+P.nsseparator+a,b),d!=P.pluralNotFound)return d}if(x(b)){var n=T.extend({},b);delete n.indefinite_article,n.defaultValue=P.indefiniteNotFound;var o=h+P.nsseparator+a+(b.count&&!w(b,f[0])||!b.count?P.indefiniteSuffix:"");if(d=z(o,n),d!=P.indefiniteNotFound)return d}for(var p,q=a.split(P.keyseparator),r=0,s=f.length;s>r&&void 0===p;r++){for(var y=f[r],B=0,E=J[y]&&J[y][h];q[B];)E=E&&E[q[B]],B++;if(void 0!==E){var F=Object.prototype.toString.apply(E);if("string"==typeof E)E=t(E,b),E=u(E,b);else if("[object Array]"!==F||P.returnObjectTrees||b.returnObjectTrees){if(null===E&&P.fallbackOnNull===!0)E=void 0;else if(null!==E)if(P.returnObjectTrees||b.returnObjectTrees){if("[object Number]"!==F&&"[object Function]"!==F&&"[object RegExp]"!==F){var G="[object Array]"===F?[]:{};T.each(E,function(c){G[c]=C(h+P.nsseparator+a+P.keyseparator+c,b)}),E=G}}else P.objectTreeKeyHandler&&"function"==typeof P.objectTreeKeyHandler?E=P.objectTreeKeyHandler(a,E,y,h,b):(E="key '"+h+":"+a+" ("+y+")' returned an object instead of string.",T.log(E))}else E=E.join("\n"),E=t(E,b),E=u(E,b);"string"==typeof E&&""===E.trim()&&P.fallbackOnEmpty===!0&&(E=void 0),p=E}}if(void 0===p&&!b.isFallbackLookup&&(P.fallbackToDefaultNS===!0||P.fallbackNS&&P.fallbackNS.length>0)){if(b.isFallbackLookup=!0,P.fallbackNS.length){for(var H=0,K=P.fallbackNS.length;K>H;H++)if(p=D(P.fallbackNS[H]+P.nsseparator+a,b),p||""===p&&P.fallbackOnEmpty===!1){var M=p.indexOf(P.nsseparator)>-1?p.split(P.nsseparator)[1]:p,N=e.indexOf(P.nsseparator)>-1?e.split(P.nsseparator)[1]:e;if(M!==N)break}}else p=D(a,b);b.isFallbackLookup=!1}return p}function E(){var a,b=P.lngWhitelist||[],c=[];if("undefined"!=typeof window&&!function(){for(var a=window.location.search.substring(1),b=a.split("&"),d=0;d<b.length;d++){var e=b[d].indexOf("=");if(e>0){var f=b[d].substring(0,e);f==P.detectLngQS&&c.push(b[d].substring(e+1))}}}(),P.useCookie&&"undefined"!=typeof document){var d=T.cookie.read(P.cookieName);d&&c.push(d)}if(P.detectLngFromLocalStorage&&"undefined"!=typeof window&&window.localStorage&&c.push(window.localStorage.getItem("i18next_lng")),"undefined"!=typeof navigator){if(navigator.languages)for(var e=0;e<navigator.languages.length;e++)c.push(navigator.languages[e]);navigator.userLanguage&&c.push(navigator.userLanguage),navigator.language&&c.push(navigator.language)}return function(){for(var d=0;d<c.length;d++){var e=c[d];if(e.indexOf("-")>-1){var f=e.split("-");e=P.lowerCaseLng?f[0].toLowerCase()+"-"+f[1].toLowerCase():f[0].toLowerCase()+"-"+f[1].toUpperCase()}if(0===b.length||b.indexOf(e)>-1){a=e;break}}}(),a||(a=P.fallbackLng[0]),a}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null==this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var F,G=this,H=G.jQuery||G.Zepto,I={},J={},K=0,L=[],M=!1,N={};if("undefined"!=typeof module&&module.exports){if(!H)try{H=require("jquery")}catch(O){}H&&(H.i18n=H.i18n||I),module.exports=I}else H&&(H.i18n=H.i18n||I),G.i18n=G.i18n||I;N={load:function(a,b,c){b.useLocalStorage?N._loadLocal(a,b,function(d,e){for(var f=[],g=0,h=a.length;h>g;g++)e[a[g]]||f.push(a[g]);f.length>0?N._fetch(f,b,function(a,b){T.extend(e,b),N._storeLocal(b),c(null,e)}):c(null,e)}):N._fetch(a,b,function(a,b){c(null,b)})},_loadLocal:function(a,b,c){var d={},e=(new Date).getTime();if(window.localStorage){var f=a.length;T.each(a,function(a,g){var h=window.localStorage.getItem("res_"+g);h&&(h=JSON.parse(h),h.i18nStamp&&h.i18nStamp+b.localStorageExpirationTime>e&&(d[g]=h)),f--,0===f&&c(null,d)})}},_storeLocal:function(a){if(window.localStorage)for(var b in a)a[b].i18nStamp=(new Date).getTime(),T.localStorage.setItem("res_"+b,JSON.stringify(a[b]))},_fetch:function(a,b,c){var d=b.ns,e={};if(b.dynamicLoad){var f=function(a,b){c(null,b)};if("function"==typeof b.customLoad)b.customLoad(a,d.namespaces,b,f);else{var g=t(b.resGetPath,{lng:a.join("+"),ns:d.namespaces.join("+")});T.ajax({url:g,success:function(a){T.log("loaded: "+g),f(null,a)},error:function(a,b,c){T.log("failed loading: "+g),f("failed loading resource.json error: "+c)},dataType:"json",async:b.getAsync})}}else{var h,i=d.namespaces.length*a.length;T.each(d.namespaces,function(d,f){T.each(a,function(a,d){var g=function(a,b){a&&(h=h||[],h.push(a)),e[d]=e[d]||{},e[d][f]=b,i--,0===i&&c(h,e)};"function"==typeof b.customLoad?b.customLoad(d,f,b,g):N._fetchOne(d,f,b,g)})})}},_fetchOne:function(a,b,c,d){var e=t(c.resGetPath,{lng:a,ns:b});T.ajax({url:e,success:function(a){T.log("loaded: "+e),d(null,a)},error:function(a,b,c){if(b&&200==b||a&&a.status&&200==a.status)T.error("There is a typo in: "+e);else if(b&&404==b||a&&a.status&&404==a.status)T.log("Does not exist: "+e);else{var f=b?b:a&&a.status?a.status:null;T.log(f+" when loading "+e)}d(c,{})},dataType:"json",async:c.getAsync})},postMissing:function(a,b,c,d,e){var f={};f[c]=d;var g=[];if("fallback"===P.sendMissingTo&&P.fallbackLng[0]!==!1)for(var h=0;h<P.fallbackLng.length;h++)g.push({lng:P.fallbackLng[h],url:t(P.resPostPath,{lng:P.fallbackLng[h],ns:b})});else if("current"===P.sendMissingTo||"fallback"===P.sendMissingTo&&P.fallbackLng[0]===!1)g.push({lng:a,url:t(P.resPostPath,{lng:a,ns:b})});else if("all"===P.sendMissingTo)for(var h=0,i=e.length;i>h;h++)g.push({lng:e[h],url:t(P.resPostPath,{lng:e[h],ns:b})});for(var j=0,k=g.length;k>j;j++){var l=g[j];T.ajax({url:l.url,type:P.sendType,data:f,success:function(){T.log("posted missing key '"+c+"' to: "+l.url);for(var a=c.split("."),e=0,f=J[l.lng][b];a[e];)f=f[a[e]]=e===a.length-1?d:f[a[e]]||{},e++},error:function(){T.log("failed posting missing key '"+c+"' to: "+l.url)},dataType:"json",async:P.postAsync})}},reload:r};var P={lng:void 0,load:"all",preload:[],lowerCaseLng:!1,returnObjectTrees:!1,fallbackLng:["dev"],fallbackNS:[],detectLngQS:"setLng",detectLngFromLocalStorage:!1,ns:"translation",fallbackOnNull:!0,fallbackOnEmpty:!1,fallbackToDefaultNS:!1,nsseparator:":",keyseparator:".",selectorAttr:"data-i18n",debug:!1,resGetPath:"locales/__lng__/__ns__.json",resPostPath:"locales/add/__lng__/__ns__",getAsync:!0,postAsync:!0,resStore:void 0,useLocalStorage:!1,localStorageExpirationTime:6048e5,dynamicLoad:!1,sendMissing:!1,sendMissingTo:"fallback",sendType:"POST",interpolationPrefix:"__",interpolationSuffix:"__",defaultVariables:!1,reusePrefix:"$t(",reuseSuffix:")",pluralSuffix:"_plural",pluralNotFound:["plural_not_found",Math.random()].join(""),contextNotFound:["context_not_found",Math.random()].join(""),escapeInterpolation:!1,indefiniteSuffix:"_indefinite",indefiniteNotFound:["indefinite_not_found",Math.random()].join(""),setJqueryExt:!0,defaultValueFromContent:!0,useDataAttrOptions:!1,cookieExpirationTime:void 0,useCookie:!0,cookieName:"i18next",cookieDomain:void 0,objectTreeKeyHandler:void 0,postProcess:void 0,parseMissingKey:void 0,missingKeyHandler:N.postMissing,shortcutFunction:"sprintf"},Q={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},R={create:function(a,b,c,d){var e;if(c){var f=new Date;f.setTime(f.getTime()+6e4*c),e="; expires="+f.toGMTString()}else e="";d=d?"domain="+d+";":"",document.cookie=a+"="+b+e+";"+d+"path=/"},read:function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(b))return e.substring(b.length,e.length)}return null},remove:function(a){this.create(a,"",-1)}},S={create:function(){},read:function(){return null},remove:function(){}},T={extend:H?H.extend:a,deepExtend:b,each:H?H.each:c,ajax:H?H.ajax:"undefined"!=typeof document?e:function(){},cookie:"undefined"!=typeof document?R:S,detectLanguage:E,escape:d,log:function(a){P.debug&&"undefined"!=typeof console&&console.log(a)},error:function(a){"undefined"!=typeof console&&console.error(a)},getCountyIndexOfLng:function(a){var b=0;return("nb-NO"===a||"nn-NO"===a||"nb-no"===a||"nn-no"===a)&&(b=1),b},toLanguages:function(a){function b(a){var b=a;if("string"==typeof a&&a.indexOf("-")>-1){var c=a.split("-");b=P.lowerCaseLng?c[0].toLowerCase()+"-"+c[1].toLowerCase():c[0].toLowerCase()+"-"+c[1].toUpperCase()}else b=P.lowerCaseLng?a.toLowerCase():a;return b}var c=this.log,d=[],e=P.lngWhitelist||!1,f=function(a){!e||e.indexOf(a)>-1?d.push(a):c("rejecting non-whitelisted language: "+a)};if("string"==typeof a&&a.indexOf("-")>-1){var g=a.split("-");"unspecific"!==P.load&&f(b(a)),"current"!==P.load&&f(b(g[this.getCountyIndexOfLng(a)]))}else f(b(a));for(var h=0;h<P.fallbackLng.length;h++)-1===d.indexOf(P.fallbackLng[h])&&P.fallbackLng[h]&&d.push(b(P.fallbackLng[h]));return d},regexEscape:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},regexReplacementEscape:function(a){return"string"==typeof a?a.replace(/\$/g,"$$$$"):a},localStorage:{setItem:function(a,b){if(window.localStorage)try{window.localStorage.setItem(a,b)}catch(c){T.log('failed to set value for key "'+a+'" to localStorage.')}}}};T.applyReplacement=t;var U=[["ach","Acholi",[1,2],1],["af","Afrikaans",[1,2],2],["ak","Akan",[1,2],1],["am","Amharic",[1,2],1],["an","Aragonese",[1,2],2],["ar","Arabic",[0,1,2,3,11,100],5],["arn","Mapudungun",[1,2],1],["ast","Asturian",[1,2],2],["ay","Aymará",[1],3],["az","Azerbaijani",[1,2],2],["be","Belarusian",[1,2,5],4],["bg","Bulgarian",[1,2],2],["bn","Bengali",[1,2],2],["bo","Tibetan",[1],3],["br","Breton",[1,2],1],["bs","Bosnian",[1,2,5],4],["ca","Catalan",[1,2],2],["cgg","Chiga",[1],3],["cs","Czech",[1,2,5],6],["csb","Kashubian",[1,2,5],7],["cy","Welsh",[1,2,3,8],8],["da","Danish",[1,2],2],["de","German",[1,2],2],["dev","Development Fallback",[1,2],2],["dz","Dzongkha",[1],3],["el","Greek",[1,2],2],["en","English",[1,2],2],["eo","Esperanto",[1,2],2],["es","Spanish",[1,2],2],["es_ar","Argentinean Spanish",[1,2],2],["et","Estonian",[1,2],2],["eu","Basque",[1,2],2],["fa","Persian",[1],3],["fi","Finnish",[1,2],2],["fil","Filipino",[1,2],1],["fo","Faroese",[1,2],2],["fr","French",[1,2],9],["fur","Friulian",[1,2],2],["fy","Frisian",[1,2],2],["ga","Irish",[1,2,3,7,11],10],["gd","Scottish Gaelic",[1,2,3,20],11],["gl","Galician",[1,2],2],["gu","Gujarati",[1,2],2],["gun","Gun",[1,2],1],["ha","Hausa",[1,2],2],["he","Hebrew",[1,2],2],["hi","Hindi",[1,2],2],["hr","Croatian",[1,2,5],4],["hu","Hungarian",[1,2],2],["hy","Armenian",[1,2],2],["ia","Interlingua",[1,2],2],["id","Indonesian",[1],3],["is","Icelandic",[1,2],12],["it","Italian",[1,2],2],["ja","Japanese",[1],3],["jbo","Lojban",[1],3],["jv","Javanese",[0,1],13],["ka","Georgian",[1],3],["kk","Kazakh",[1],3],["km","Khmer",[1],3],["kn","Kannada",[1,2],2],["ko","Korean",[1],3],["ku","Kurdish",[1,2],2],["kw","Cornish",[1,2,3,4],14],["ky","Kyrgyz",[1],3],["lb","Letzeburgesch",[1,2],2],["ln","Lingala",[1,2],1],["lo","Lao",[1],3],["lt","Lithuanian",[1,2,10],15],["lv","Latvian",[1,2,0],16],["mai","Maithili",[1,2],2],["mfe","Mauritian Creole",[1,2],1],["mg","Malagasy",[1,2],1],["mi","Maori",[1,2],1],["mk","Macedonian",[1,2],17],["ml","Malayalam",[1,2],2],["mn","Mongolian",[1,2],2],["mnk","Mandinka",[0,1,2],18],["mr","Marathi",[1,2],2],["ms","Malay",[1],3],["mt","Maltese",[1,2,11,20],19],["nah","Nahuatl",[1,2],2],["nap","Neapolitan",[1,2],2],["nb","Norwegian Bokmal",[1,2],2],["ne","Nepali",[1,2],2],["nl","Dutch",[1,2],2],["nn","Norwegian Nynorsk",[1,2],2],["no","Norwegian",[1,2],2],["nso","Northern Sotho",[1,2],2],["oc","Occitan",[1,2],1],["or","Oriya",[2,1],2],["pa","Punjabi",[1,2],2],["pap","Papiamento",[1,2],2],["pl","Polish",[1,2,5],7],["pms","Piemontese",[1,2],2],["ps","Pashto",[1,2],2],["pt","Portuguese",[1,2],2],["pt_br","Brazilian Portuguese",[1,2],2],["rm","Romansh",[1,2],2],["ro","Romanian",[1,2,20],20],["ru","Russian",[1,2,5],4],["sah","Yakut",[1],3],["sco","Scots",[1,2],2],["se","Northern Sami",[1,2],2],["si","Sinhala",[1,2],2],["sk","Slovak",[1,2,5],6],["sl","Slovenian",[5,1,2,3],21],["so","Somali",[1,2],2],["son","Songhay",[1,2],2],["sq","Albanian",[1,2],2],["sr","Serbian",[1,2,5],4],["su","Sundanese",[1],3],["sv","Swedish",[1,2],2],["sw","Swahili",[1,2],2],["ta","Tamil",[1,2],2],["te","Telugu",[1,2],2],["tg","Tajik",[1,2],1],["th","Thai",[1],3],["ti","Tigrinya",[1,2],1],["tk","Turkmen",[1,2],2],["tr","Turkish",[1,2],1],["tt","Tatar",[1],3],["ug","Uyghur",[1],3],["uk","Ukrainian",[1,2,5],4],["ur","Urdu",[1,2],2],["uz","Uzbek",[1,2],1],["vi","Vietnamese",[1],3],["wa","Walloon",[1,2],1],["wo","Wolof",[1],3],["yo","Yoruba",[1,2],2],["zh","Chinese",[1],3]],V={1:function(a){return Number(a>1)},2:function(a){return Number(1!=a)},3:function(){return 0},4:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},5:function(a){return Number(0===a?0:1==a?1:2==a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5)},6:function(a){return Number(1==a?0:a>=2&&4>=a?1:2)},7:function(a){return Number(1==a?0:a%10>=2&&4>=a%10&&(10>a%100||a%100>=20)?1:2)},8:function(a){return Number(1==a?0:2==a?1:8!=a&&11!=a?2:3)},9:function(a){return Number(a>=2)},10:function(a){return Number(1==a?0:2==a?1:7>a?2:11>a?3:4)},11:function(a){return Number(1==a||11==a?0:2==a||12==a?1:a>2&&20>a?2:3)},12:function(a){return Number(1!=a%10||11==a%100)},13:function(a){return Number(0!==a)},14:function(a){return Number(1==a?0:2==a?1:3==a?2:3)},15:function(a){return Number(1==a%10&&11!=a%100?0:a%10>=2&&(10>a%100||a%100>=20)?1:2)},16:function(a){return Number(1==a%10&&11!=a%100?0:0!==a?1:2)},17:function(a){return Number(1==a||1==a%10?0:1)},18:function(a){return Number(1==a?1:2)},19:function(a){return Number(1==a?0:0===a||a%100>1&&11>a%100?1:a%100>10&&20>a%100?2:3)},20:function(a){return Number(1==a?0:0===a||a%100>0&&20>a%100?1:2)},21:function(a){return Number(1==a%100?1:2==a%100?2:3==a%100||4==a%100?3:0)}},W={rules:function(){var a,b={};for(a=U.length;a--;)b[U[a][0]]={name:U[a][1],numbers:U[a][2],plurals:V[U[a][3]]};return b}(),addRule:function(a,b){W.rules[a]=b},setCurrentLng:function(a){if(!W.currentRule||W.currentRule.lng!==a){var b=a.split("-");W.currentRule={lng:a,rule:W.rules[b[0]]}}},needsPlural:function(a,b){var c,d=a.split("-");return c=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[d[T.getCountyIndexOfLng(a)]],!(c&&c.numbers.length<=1)&&1!==this.get(a,b)},get:function(a,b){function c(b,c){var d;if(d=W.currentRule&&W.currentRule.lng===a?W.currentRule.rule:W.rules[b]){var e;e=d.noAbs?d.plurals(c):d.plurals(Math.abs(c));var f=d.numbers[e];return 2===d.numbers.length&&1===d.numbers[0]&&(2===f?f=-1:1===f&&(f=1)),f}return 1===c?"1":"-1"}var d=a.split("-");return c(d[T.getCountyIndexOfLng(a)],b)}},X={},Y=function(a,b){X[a]=b},Z=function(){function a(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function b(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var c=function(){return c.cache.hasOwnProperty(arguments[0])||(c.cache[arguments[0]]=c.parse(arguments[0])),c.format.call(null,c.cache[arguments[0]],arguments)};return c.format=function(c,d){var e,f,g,h,i,j,k,l=1,m=c.length,n="",o=[];for(f=0;m>f;f++)if(n=a(c[f]),"string"===n)o.push(c[f]);else if("array"===n){if(h=c[f],h[2])for(e=d[l],g=0;g<h[2].length;g++){if(!e.hasOwnProperty(h[2][g]))throw Z('[sprintf] property "%s" does not exist',h[2][g]);e=e[h[2][g]]}else e=h[1]?d[h[1]]:d[l++];if(/[^s]/.test(h[8])&&"number"!=a(e))throw Z("[sprintf] expecting number but found %s",a(e));switch(h[8]){case"b":e=e.toString(2);break;case"c":e=String.fromCharCode(e);break;case"d":e=parseInt(e,10);break;case"e":e=h[7]?e.toExponential(h[7]):e.toExponential();break;case"f":e=h[7]?parseFloat(e).toFixed(h[7]):parseFloat(e);break;case"o":e=e.toString(8);break;case"s":e=(e=String(e))&&h[7]?e.substring(0,h[7]):e;break;case"u":e=Math.abs(e);break;case"x":e=e.toString(16);break;case"X":e=e.toString(16).toUpperCase()}e=/[def]/.test(h[8])&&h[3]&&e>=0?"+"+e:e,j=h[4]?"0"==h[4]?"0":h[4].charAt(1):" ",k=h[6]-String(e).length,i=h[6]?b(j,k):"",o.push(h[5]?e+i:i+e)}return o.join("")},c.cache={},c.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d},c}(),$=function(a,b){return b.unshift(a),Z.apply(null,b)};Y("sprintf",function(a,b,c){return c.sprintf?"[object Array]"===Object.prototype.toString.apply(c.sprintf)?$(a,c.sprintf):"object"==typeof c.sprintf?Z(a,c.sprintf):a:a}),I.init=f,I.setLng=p,I.preload=g,I.addResourceBundle=h,I.hasResourceBundle=i,I.addResource=k,I.addResources=l,I.removeResourceBundle=j,I.loadNamespace=n,I.loadNamespaces=o,I.setDefaultNamespace=m,I.t=z,I.translate=z,I.exists=y,I.detectLanguage=T.detectLanguage,I.pluralExtensions=W,I.sync=N,I.functions=T,I.lng=q,I.addPostProcessor=Y,I.options=P}(),/*!
- * Source: lib/magnific-popup/dist/jquery.magnific-popup.min.js, license: MIT, url: http://dimsemenov.com/plugins/magnific-popup/
- */
-/*! Magnific Popup - v1.0.0 - 2015-01-03
-* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2015 Dmitry Semenov; */
-!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",b.ev=c.mainEl&&c.mainEl.length?c.mainEl.eq(0):d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.wrap.css(b.fixedContentPos?{overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}:{top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=!!b.st[d]&&b.st[d].markup;y("FirstMarkupParse",f),b.currTemplate[d]=!f||a(f)}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||2!==c.which&&!c.ctrlKey&&!c.metaKey){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return!!b.currItem.hasSize&&b.currItem.img},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,!(!c||!c.enabled)&&(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null}))},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()});/*!
- * Source: lib/translation.js, license: MIT, url: https://webtranslateit.com/en/projects/10365-JSXC
- */
-var I18next={bg:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},de:{translation:{Logging_in:"Login läuft…",your_connection_is_unencrypted:"Deine Verbindung ist unverschlüsselt.",your_connection_is_encrypted:"Deine Verbindung ist verschlüsselt.",your_buddy_closed_the_private_connection:"Dein Kontakt hat die private Verbindung getrennt.",start_private:"Privat starten",close_private:"Privat abbrechen",your_buddy_is_verificated:"Dein Kontakt ist verifiziert.",you_have_only_a_subscription_in_one_way:"Der Kontaktstatus ist einseitig.",authentication_query_sent:"Authentifizierungsanfrage gesendet.",your_message_wasnt_send_please_end_your_private_conversation:"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.",unencrypted_message_received:"Unverschlüsselte Nachricht erhalten.",not_available:"Nicht verfügbar.",no_connection:"Keine Verbindung.",relogin:"Neu anmelden.",trying_to_start_private_conversation:"Versuche private Konversation zu starten.",Verified:"Verifiziert",Unverified:"Unverifiziert",private_conversation_aborted:"Private Konversation abgebrochen.",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!",conversation_is_now_verified:"Konversation ist jetzt verifiziert",authentication_failed:"Authentifizierung fehlgeschlagen.",Creating_your_private_key_:"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.",Authenticating_a_buddy_helps_:"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.",How_do_you_want_to_authenticate_your_buddy:"Wie willst du {{bid_name}} (<b>{{bid_jid}}</b>) authentifizieren?",Select_method:"Wähle...",Manual:"Manual",Question:"Frage",Secret:"Geheimnis",To_verify_the_fingerprint_:"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.",Your_fingerprint:"Dein Fingerprint",Buddy_fingerprint:"Sein/Ihr Fingerprint",Close:"Schließen",Compared:"Verglichen",To_authenticate_using_a_question_:"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.",Ask:"Frage",To_authenticate_pick_a_secret_:"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.",Compare:"Vergleiche",Fingerprints:"Fingerprints",Authentication:"Authentifizierung",Message:"Nachricht",Add_buddy:"Kontakt hinzufügen",rename_buddy:"Kontakt umbenennen",delete_buddy:"Kontakt löschen",Login:"Anmeldung",Username:"Benutzername",Password:"Passwort",Cancel:"Abbrechen",Connect:"Verbinden",Type_in_the_full_username_:"Gib bitte den vollen Benutzernamen und optional ein Alias an.",Alias:"Alias",Add:"Hinzufügen",Subscription_request:"Kontaktanfrage",You_have_a_request_from:"Du hast eine Anfrage von",Deny:"Ablehnen",Approve:"Bestätigen",Remove_buddy:"Kontakt entfernen",You_are_about_to_remove_:"Du bist gerade dabei {{bid_name}} (<b>{{bid_jid}}</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.",Continue_without_chat:"Weiter ohne Chat",Please_wait:"Bitte warten",Login_failed:"Chat-Anmeldung fehlgeschlagen",Sorry_we_cant_authentikate_:"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?",Retry:"Zurück",clear_history:"Lösche Verlauf",New_message_from:"Neue Nachricht von __name__",Should_we_notify_you_:"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?",Please_accept_:'Bitte klick auf den "Zulassen" Button oben.',Hide_offline:"Offline ausblenden",Show_offline:"Offline einblenden",About:"Über",dnd:"Beschäftigt",Mute:"Ton aus",Unmute:"Ton an",Subscription:"Bezug",both:"beidseitig",Status:"Status",online:"online",chat:"chat",away:"abwesend",xa:"länger abwesend",offline:"offline",none:"keine",Unknown_instance_tag:"Unbekannter instance tag.",Not_one_of_our_latest_keys:"Nicht einer unserer letzten Schlüssel.",Received_an_unreadable_encrypted_message:"Eine unlesbare verschlüsselte Nachricht erhalten.",Online:"Online",Chatty:"Gesprächig",Away:"Abwesend",Extended_away:"Länger abwesend",Offline:"Offline",Friendship_request:"Kontaktanfrage",Confirm:"Bestätigen",Dismiss:"Ablehnen",Remove:"Löschen",Online_help:"Online Hilfe",FN:"Name",N:" ",FAMILY:"Familienname",GIVEN:"Vorname",NICKNAME:"Spitzname",URL:"URL",ADR:"Adresse",STREET:"Straße",EXTADD:"Zusätzliche Adresse",LOCALITY:"Ortschaft",REGION:"Region",PCODE:"Postleitzahl",CTRY:"Land",TEL:"Telefon",NUMBER:"Nummer",EMAIL:"E-Mail",USERID:" ",ORG:"Organisation",ORGNAME:"Name",ORGUNIT:"Abteilung",TITLE:"Titel",ROLE:"Rolle",BDAY:"Geburtstag",DESC:"Beschreibung",PHOTO:" ",send_message:"Sende Nachricht",get_info:"Benutzerinformationen",Settings:"Einstellungen",Priority:"Priorität",Save:"Speichern",User_settings:"Benutzereinstellungen",A_fingerprint_:"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.",is:"ist",Login_options:"Anmeldeoptionen",BOSH_url:"BOSH url",Domain:"Domain",Resource:"Ressource",On_login:"Beim Anmelden",Received_an_unencrypted_message:"Unverschlüsselte Nachricht empfangen",Sorry_your_buddy_doesnt_provide_any_information:"Dein Kontakt stellt leider keine Informationen bereit.",Info_about:"Info über",Authentication_aborted:"Authentifizierung abgebrochen.",Authentication_request_received:"Authentifizierungsanfrage empfangen.",Log_in_without_chat:"Anmelden ohne Chat",has_come_online:"ist online gekommen",Unknown_sender:"Unbekannter Sender",Please_allow_access_to_microphone_and_camera:'Bitte klick auf den "Zulassen" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.',Incoming_call:"Eingehender Anruf",from:"von",Do_you_want_to_accept_the_call_from:"Möchtest Du den Anruf annehmen von",Reject:"Ablehnen",Accept:"Annehmen",hang_up:"Auflegen",snapshot:"Schnappschuss",mute_my_audio:"Mein Ton aus",pause_my_video:"Mein Video pausieren",fullscreen:"Vollbild",Info:"Info",Local_IP:"Lokale IP",Remote_IP:"Remote IP",Local_Fingerprint:"Lokaler Fingerprint",Remote_Fingerprint:"Remote Fingerprint",Video_call_not_possible:"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.",Start_video_call:"Starte Videoanruf",Join_chat:"Gruppe beitreten",Join:"Betreten",Room:"Gruppe",Nickname:"Nickname",left_the_building:"__nickname__ hat die Gruppe verlassen",entered_the_room:"__nickname__ ist der Gruppe beigetreten",is_now_known_as:"__oldNickname__ ist nun unter __newNickname__ bekannt",This_room_is:"Diese Gruppe ist",muc_hidden:{keyword:"versteckt",description:"kann durch die Suche nicht gefunden werden"},muc_membersonly:{keyword:"nur für Mitglieder",description:"du musst auf der Mitgliederliste stehen"},muc_moderated:{keyword:"moderiert",description:'Nur Personen die "Mitspracherecht" haben dürfen Nachrichten senden'},muc_nonanonymous:{keyword:"nicht anonym",description:"deine Jabber ID wird für alle Mitglieder sichtbar sein"},muc_open:{keyword:"offen",description:"jeder darf dieser Gruppe beitreten"},muc_passwordprotected:{keyword:"passwortgeschützt",description:"du benötigst das korrekte Passwort"},muc_persistent:{keyword:"permanent",description:"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_public:{keyword:"öffentlich",description:"kann durch die Suche gefunden werden"},muc_semianonymous:{keyword:"teilweise anonym",description:"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},muc_temporary:{keyword:"temporär",description:"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_unmoderated:{keyword:"nicht moderiert",description:"jeder darf Nachrichten senden"},muc_unsecured:{keyword:"ungesichert",description:"es wird kein Passwort benötigt"},Continue:"Weiter",Server:"Server",Rooms_are_loaded:"Gruppen werden geladen",Could_load_only:"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden",muc_explanation:"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten",You_already_joined_this_room:"Du bist dieser Gruppe bereits beigetreten",This_room_will_be_closed:"Diese Gruppe wird geschlossen",Room_not_found_:"Es wird eine neue Gruppe erstellt",Loading_room_information:"Informationen über Gruppe werden geladen",Destroy:"Auflösen",Leave:"Verlassen",changed_subject_to:"__nickname__ hat das Thema auf __subject__ geändert",muc_removed_kicked:"Du wurdest aus der Gruppe entfernt",muc_removed_info_kicked:"__nickname__ wurde aus der Gruppe entfernt",muc_removed_banned:"Du wurdest aus der Gruppe ausgeschlossen",muc_removed_info_banned:"__nickname__ wurde aus der Gruppe ausgeschlossen",muc_removed_affiliation:"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus",muc_removed_info_affiliation:"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus",muc_removed_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt",muc_removed_info_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt",muc_removed_shutdown:"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird",Reason:"Grund",message_not_send:"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert",message_not_send_forbidden:'Deine Nachricht wurde nicht versandt, da du kein "Mitspracherecht" hast',"message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist",This_room_has_been_closed:"Diese Gruppe wurde geschlossen",Room_logging_is_enabled:"Gesprächsverlauf kann öffentlich einsehbar sein",A_password_is_required:"Es wird ein Passwort benötigt",You_are_not_on_the_member_list:"Du bist kein eingetragenes Mitglied",You_are_banned_from_this_room:"Du wurdest von dieser Gruppe ausgeschlossen",Your_desired_nickname_:"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.",The_maximum_number_:"Die maximale Anzahl der Mitglieder wurde erreicht.",This_room_is_locked_:"Diese Gruppe ist gesperrt",You_are_not_allowed_to_create_:"Du darfst keine neue Gruppe erstellen",Alert:"Alarm",Call_started:"Anruf gestarted",Call_terminated:"Anruf beendet",Carbon_copy:"Kopie",Enable:"Aktivieren",jingle_reason_busy:"beschäftigt",jingle_reason_decline:"abgelehnt",jingle_reason_success:"aufgelegt",Media_failure:"Gerätefehler",No_local_audio_device:"Kein eigenes Audio Gerät",No_local_video_device:"Keine eigene Webcam",Ok:"Ok",PermissionDeniedError:"Du oder dein Browser haben die Audio/Video Berechtigung verweigert",Use_local_audio_device:"Nutze eigenes Audio Gerät",Use_local_video_device:"Benutze eigene Webcam",is_:"ist __status__",You_received_a_message_from_an_unknown_sender_:"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?",Your_roster_is_empty_add_:"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>",onsmp_explanation_question:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.",onsmp_explanation_secret:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.",from_sender:"von __sender__",Verified_private_conversation_started:"Verifizierte private Konversation gestartet.",Unverified_private_conversation_started:"Unverifizierte private Konversation gestartet.",Bookmark:"Lesezeichen","Auto-join":"Automatisch beitreten",Edit_bookmark:"Lesezeichen bearbeiten",Room_logging_is_disabled:"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym",Do_you_want_to_change_the_default_room_configuration:"Möchtest du die Gruppenkonfiguration ändern?",Default:"Standard",Change:"Ändern",Send_file:"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt."}},el:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},en:{translation:{Logging_in:"Logging in…",your_connection_is_unencrypted:"Your connection is unencrypted.",your_connection_is_encrypted:"Your connection is encrypted.",your_buddy_closed_the_private_connection:"Your contact closed the private connection.",start_private:"Start private",close_private:"Close private",your_buddy_is_verificated:"Your contact is verified.",you_have_only_a_subscription_in_one_way:"You only have a one-way subscription.",authentication_query_sent:"Authentication query sent.",your_message_wasnt_send_please_end_your_private_conversation:"Your message was not sent. Please end your private conversation.",unencrypted_message_received:"Unencrypted message received",not_available:"Not available",no_connection:"No connection!",relogin:"relogin",trying_to_start_private_conversation:"Trying to start private conversation!",Verified:"Verified",Unverified:"Unverified",private_conversation_aborted:"Private conversation aborted!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Your contact closed the private conversation! You should do the same.",conversation_is_now_verified:"Conversation is now verified.",authentication_failed:"Authentication failed.",Creating_your_private_key_:"Creating your private key; this may take a while.",Authenticating_a_buddy_helps_:"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.",How_do_you_want_to_authenticate_your_buddy:"How do you want to authenticate {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Select method...",Manual:"Manual",Question:"Question",Secret:"Secret",To_verify_the_fingerprint_:"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.",Your_fingerprint:"Your fingerprint",Buddy_fingerprint:"Contact fingerprint",Close:"Close",Compared:"Compared",To_authenticate_using_a_question_:"To authenticate using a question, pick a question whose answer is known only you and your contact.",Ask:"Ask",To_authenticate_pick_a_secret_:"To authenticate, pick a secret known only to you and your contact.",Compare:"Compare",Fingerprints:"Fingerprints",Authentication:"Authentication",Message:"Message",Add_buddy:"Add contact",rename_buddy:"rename contact",delete_buddy:"delete contact",Login:"Login",Username:"Username",Password:"Password",Cancel:"Cancel",Connect:"Connect",Type_in_the_full_username_:"Type in the full username and an optional alias.",Alias:"Alias",Add:"Add",Subscription_request:"Subscription request",You_have_a_request_from:"You have a request from",Deny:"Deny",Approve:"Approve",Remove_buddy:"Remove contact",You_are_about_to_remove_:"You are about to remove {{bid_name}} (<b>{{bid_jid}}</b>) from your contact list. All related chats will be closed.",Continue_without_chat:"Continue without chat",Please_wait:"Please wait",Login_failed:"Chat login failed",Sorry_we_cant_authentikate_:"Authentication failed with the chat server. Maybe the password is wrong?",Retry:"Back",clear_history:"Clear history",New_message_from:"New message from __name__",Should_we_notify_you_:"Should we notify you about new messages in the future?",Please_accept_:'Please click the "Allow" button at the top.',Hide_offline:"Hide offline contacts",Show_offline:"Show offline contacts",About:"About",dnd:"Do Not Disturb",Mute:"Mute",Unmute:"Unmute",Subscription:"Subscription",both:"both",Status:"Status",online:"online",chat:"chat",away:"away",xa:"extended away",offline:"offline",none:"none",Unknown_instance_tag:"Unknown instance tag.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Received an unreadable encrypted message.",Online:"Online",Chatty:"Chatty",Away:"Away",Extended_away:"Extended away",Offline:"Offline",Friendship_request:"Contact request",Confirm:"Confirm",Dismiss:"Dismiss",Remove:"Remove",Online_help:"Online help",FN:"Full name",N:" ",FAMILY:"Family name",GIVEN:"Given name",NICKNAME:"Nickname",URL:"URL",ADR:"Address",STREET:"Street Address",EXTADD:"Extended Address",LOCALITY:"Locality",REGION:"Region",PCODE:"Postal Code",CTRY:"Country",TEL:"Telephone",NUMBER:"Number",EMAIL:"Email",USERID:" ",ORG:"Organization",ORGNAME:"Name",ORGUNIT:"Unit",TITLE:"Job title",ROLE:"Role",BDAY:"Birthday",DESC:"Description",PHOTO:" ",send_message:"Send message",get_info:"Show information",Settings:"Settings",Priority:"Priority",Save:"Save",User_settings:"User settings",A_fingerprint_:"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.",is:"is",Login_options:"Login options",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Resource",On_login:"On login",Received_an_unencrypted_message:"Received an unencrypted message",Sorry_your_buddy_doesnt_provide_any_information:"Sorry, your contact does not provide any information.",Info_about:"Info about",Authentication_aborted:"Authentication aborted.",Authentication_request_received:"Authentication request received.",Log_in_without_chat:"Log in without chat",has_come_online:"has come online",Unknown_sender:"Unknown sender",Please_allow_access_to_microphone_and_camera:'Please click the "Allow" button at the top, to allow access to microphone and camera.',Incoming_call:"Incoming call",from:"from",Do_you_want_to_accept_the_call_from:"Do you want to accept the call from",Reject:"Reject",Accept:"Accept",hang_up:"hang up",snapshot:"snapshot",mute_my_audio:"mute my audio",pause_my_video:"pause my video",fullscreen:"fullscreen",Info:"Info",Local_IP:"Local IP",Remote_IP:"Remote IP",Local_Fingerprint:"Local fingerprint",Remote_Fingerprint:"Remote fingerprint",Video_call_not_possible:"Video call not possible. Your contact does not support video calls.",Start_video_call:"Start video call",Join_chat:"Join chat",Join:"Join",Room:"Room",Nickname:"Nickname",left_the_building:"__nickname__ left the building",entered_the_room:"__nickname__ entered the room",is_now_known_as:"__oldNickname__ is now known as __newNickname__",This_room_is:"This room is",muc_hidden:{keyword:"hidden",description:"can not be found through search"},muc_membersonly:{keyword:"members-only",description:"you need to be on the member list"},muc_moderated:{keyword:"moderated",description:'only persons with "voice" are allowed to send messages'},muc_nonanonymous:{keyword:"non-anonymous",description:"your jabber id is exposed to all other occupants"},muc_open:{keyword:"open",description:"everyone is allowed to join"},muc_passwordprotected:{keyword:"password-protected",description:"you need to provide the correct password"},muc_persistent:{keyword:"persistent",description:"will not be destroyed if the last occupant left"},muc_public:{keyword:"public",description:"can be found through search"},muc_semianonymous:{keyword:"semi-anonymous",description:"your jabber id is only exposed to room admins"},muc_temporary:{keyword:"temporary",description:"will be destroyed if the last occupant left"},muc_unmoderated:{keyword:"unmoderated",description:"everyone is allowed to send messages"},muc_unsecured:{keyword:"unsecured",description:"you need no password to enter"},Continue:"Continue",Server:"Server",Rooms_are_loaded:"Rooms are loaded",Could_load_only:"Could load only __count__ rooms for autocomplete",muc_explanation:"Please enter room name and optional a nickname and password to join a chat",You_already_joined_this_room:"You already joined this room",This_room_will_be_closed:"This room will be closed",Room_not_found_:"A new room will be created",Loading_room_information:"Loading room information",Destroy:"Destroy",Leave:"Leave",changed_subject_to:'__nickname__ changed the room subject to "__subject__"',muc_removed_kicked:"You have been kicked from the room",muc_removed_info_kicked:"__nickname__ has been kicked from the room",muc_removed_banned:"You have been banned from the room",muc_removed_info_banned:"__nickname__ has been banned from the room",muc_removed_affiliation:"You have been removed from the room, because of an affiliation change",muc_removed_info_affiliation:"__nickname__ has been removed from the room, because of an affiliation change",
-muc_removed_membersonly:"You have been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_info_membersonly:"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_shutdown:"You have been removed from the room, because the MUC service is being shut down",Reason:"Reason",message_not_send:"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist",message_not_send_forbidden:"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room",This_room_has_been_closed:"This room has been closed",Room_logging_is_enabled:"Room logging is enabled",A_password_is_required:"A password is required",You_are_not_on_the_member_list:"You are not on the member list",You_are_banned_from_this_room:"You are banned from this room",Your_desired_nickname_:"Your desired nickname is already in use. Please choose another",The_maximum_number_:"The maximum number of user is reached in this room",This_room_is_locked_:"This room is locked",You_are_not_allowed_to_create_:"You are not allowed to create a room",Alert:"Alert",Call_started:"Call started",Call_terminated:"Call terminated",Carbon_copy:"Carbon copy",Enable:"Enable",jingle_reason_busy:"busy",jingle_reason_decline:"decline",jingle_reason_success:"hung up",Media_failure:"Media failure",No_local_audio_device:"No local audio device.",No_local_video_device:"No local video device.",Ok:"Ok",PermissionDeniedError:"You or your browser denied audio/video permission",Use_local_audio_device:"Use local audio device.",Use_local_video_device:"Use local video device.",is_:"is __status__",You_received_a_message_from_an_unknown_sender_:"You received a message from an unknown sender (__sender__) Do you want to display them?",Your_roster_is_empty_add_:"Your roster is empty, add a <a>new contact</a>",onsmp_explanation_question:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.",onsmp_explanation_secret:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.",from_sender:"from __sender__",Verified_private_conversation_started:"Verified Private conversation started.",Unverified_private_conversation_started:"Unverified Private conversation started.",Bookmark:"Bookmark","Auto-join":"Auto-join",Edit_bookmark:"Edit bookmark",Room_logging_is_disabled:"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous",Do_you_want_to_change_the_default_room_configuration:"Do you want to change the default room configuration?",Default:"Default",Change:"Change",Send_file:"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server."}},es:{translation:{Logging_in:"Por favor, espere...",your_connection_is_unencrypted:"Su conexión no está cifrada.",your_connection_is_encrypted:"Su conexión está cifrada.",your_buddy_closed_the_private_connection:"Su amigo ha cerrado la conexión privada.",start_private:"Iniciar privado",close_private:"Cerrar privado",your_buddy_is_verificated:"Tu amigo está verificado.",you_have_only_a_subscription_in_one_way:"Solo tienes una suscripción de un modo.",authentication_query_sent:"Consulta de verificación enviada.",your_message_wasnt_send_please_end_your_private_conversation:"Su mensaje no fue enviado. Por favor, termine su conversación privada.",unencrypted_message_received:"Mensaje no cifrado recibido:",not_available:"No disponible",no_connection:"¡Sin conexión!",relogin:"iniciar sesión nuevamente",trying_to_start_private_conversation:"¡Intentando iniciar una conversación privada!",Verified:"Verificado",Unverified:"No verificado",private_conversation_aborted:"¡Conversación privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"¡Su amigo cerró la conversación privada! Usted debería hacer lo mismo.",conversation_is_now_verified:"La conversación es ahora verificada.",authentication_failed:"Falló la verificación.",Creating_your_private_key_:"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.",Authenticating_a_buddy_helps_:"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.",How_do_you_want_to_authenticate_your_buddy:"¿Cómo desea autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Escoja un método...",Manual:"Manual",Question:"Pregunta",Secret:"Secreto",To_verify_the_fingerprint_:"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.",Your_fingerprint:"Tu firma digital",Buddy_fingerprint:"firma digital de tu amigo",Close:"Cerrar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar mediante una pregunta, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.",Ask:"Preguntar",To_authenticate_pick_a_secret_:"Para autenticar, elija un secreto conocido solo por usted y su amigo.",Compare:"Comparar",Fingerprints:"Firmas digitales",Authentication:"Autenticación",Message:"Mensaje",Add_buddy:"Añadir amigo",rename_buddy:"renombrar amigo",delete_buddy:"eliminar amigo",Login:"Iniciar Sesión",Username:"Usuario",Password:"Contraseña",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Escriba el usuario completo y un alias opcional.",Alias:"Alias",Add:"Añadir",Subscription_request:"Solicitud de suscripción",You_have_a_request_from:"Tienes una petición de",Deny:"Rechazar",Approve:"Aprobar",Remove_buddy:"Eliminar amigo",You_are_about_to_remove_:"Vas a eliminar a {{bid_name}} (<b>{{bid_jid}}</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.",Continue_without_chat:"Continuar",Please_wait:"Espere por favor",Login_failed:"Fallo el inicio de sesión",Sorry_we_cant_authentikate_:"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?",Retry:"Reintentar",clear_history:"Borrar el historial",New_message_from:"Nuevo mensaje de __name__",Should_we_notify_you_:"¿Debemos notificarle sobre nuevos mensajes en el futuro?",Please_accept_:'Por favor, haga clic en el botón "Permitir" en la parte superior.',Hide_offline:"Ocultar contactos desconectados",Show_offline:"Mostrar contactos desconectados",About:"Acerca de",dnd:"No Molestar",Mute:"Desactivar sonido",Unmute:"Activar sonido",Subscription:"Suscripción",both:"ambos",Status:"Estado",online:"en línea",chat:"chat",away:"ausente",xa:"más ausente",offline:"desconectado",none:"nadie",Unknown_instance_tag:"Etiqueta de instancia desconocida.",Not_one_of_our_latest_keys:"No una de nuestras última claves.",Received_an_unreadable_encrypted_message:"Se recibió un mensaje cifrado ilegible.",Online:"En linea",Chatty:"Hablador",Away:"Ausente",Extended_away:"Más ausente",Offline:"Desconectado",Friendship_request:"Solicitud de amistad",Confirm:"Confirmar",Dismiss:"Rechazar",Remove:"Eliminar",Online_help:"Ayuda en línea",FN:"Nombre completo ",N:" ",FAMILY:"Apellido",GIVEN:"Nombre",NICKNAME:"Apodo",URL:"URL",ADR:"Dirección",STREET:"Calle",EXTADD:"Dirección extendida",LOCALITY:"Población",REGION:"Región",PCODE:"Código postal",CTRY:"País",TEL:"Teléfono",NUMBER:"Número",EMAIL:"Correo electrónico",USERID:" ",ORG:"Organización",ORGNAME:"Nombre",ORGUNIT:"Departamento",TITLE:"Título",ROLE:"Rol",BDAY:"Cumpleaños",DESC:"Descripción",PHOTO:" ",send_message:"mandar un texto",get_info:"obtener información",Settings:"Ajustes",Priority:"Prioridad",Save:"Guardar",User_settings:"Configuración de usuario",A_fingerprint_:"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser",is:"es",Login_options:"Opciones de login",BOSH_url:"BOSH url",Domain:"Dominio",Resource:"Recurso",On_login:"Iniciar sesión",Received_an_unencrypted_message:"Recibe un mensaje no cifrado",Sorry_your_buddy_doesnt_provide_any_information:"Lo sentimos, su amigo no provee ninguna información.",Info_about:"Info acerca de",Authentication_aborted:"Autenticación abortada",Authentication_request_received:"Pedido de autenticación recibido.",Log_in_without_chat:"Ingresar sin chat",has_come_online:"se ha conectado",Unknown_sender:"Remitente desconocido",Please_allow_access_to_microphone_and_camera:"Por favor, permitir el acceso al micrófono y la cámara.",Incoming_call:"Llamada entrante",from:"de",Do_you_want_to_accept_the_call_from:"Desea aceptar la llamada de",Reject:"Rechazar",Accept:"Aceptar",hang_up:"colgar",snapshot:"instantánea",mute_my_audio:"silenciar mi audio",pause_my_video:"pausar mi vídeo",fullscreen:"pantalla completa",Info:"Info",Local_IP:"IP local",Remote_IP:"IP remota",Local_Fingerprint:"Firma digital local",Remote_Fingerprint:"Firma digital remota",Video_call_not_possible:"Llamada de vídeo no es posible",Start_video_call:"Iniciar llamada de vídeo",Join_chat:"Unirse al chat",Join:"Unirse",Room:"Sala",Nickname:"Alias",left_the_building:"__nickname__ dejó el edificio",entered_the_room:"__nickname__ entró en la sala",is_now_known_as:"__oldNickname__ ahora es conocido como __newNickname__",This_room_is:"Esta sala es",muc_hidden:{keyword:"oculta",description:"no se encontró mediante la búsqueda"},muc_membersonly:{keyword:"miembros solo",description:"necesitas estar en la lista de miembros"},muc_moderated:{keyword:"moderada",description:'solo personas con "voice" están permitidas para mandar mensajes'},muc_nonanonymous:{keyword:"no anónima",description:"tu id de jabber es expuesta al resto de ocupantes"},muc_open:{keyword:"abierta",description:"todo el mundo puede unirse"},muc_passwordprotected:{keyword:"protegida por contraseña",description:"necesitas dar la contraseña correcta"},muc_persistent:{keyword:"persistente",description:"no será destruida si el último ocupante sale"},muc_public:{keyword:"pública",description:"puede ser encontrada mediante la búsqueda"},muc_semianonymous:{keyword:"semi-anónima",description:"tu id de jabber es expuesta a los administradores de la sala"},muc_temporary:{keyword:"temporal",description:"será destruida si el último ocupante sale"},muc_unmoderated:{keyword:"no moderada",description:"todo el mundo puede enviar mensajes"},muc_unsecured:{keyword:"sin asegurar",description:"no necesitas contraseña para entrar"},Continue:"Continuar",Server:"Servidor",Rooms_are_loaded:"Las salas han sido cargadas",Could_load_only:"Se cargaron solo __count__ salas para el autocompletado",muc_explanation:"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat",You_already_joined_this_room:"Ya te has unido a esta sala",This_room_will_be_closed:"Esta sale será cerrada",Room_not_found_:"Sala no encontrada",Loading_room_information:"Cargando información de la sala",Destroy:"Destruir",Leave:"Abandonar",changed_subject_to:'__nickname__ cambió el asunto de la sala a "__subject__"',muc_removed_kicked:"Has sido echado de la sala",muc_removed_info_kicked:"__nickname__ ha sido echado de la sala",muc_removed_banned:"Has sido expulsado de la sala",muc_removed_info_banned:"__nickname__ ha sido expulsado",muc_removed_affiliation:"Has sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_info_affiliation:"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_membersonly:"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_info_membersonly:"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_shutdown:"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado",Reason:"Razón",message_not_send:"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe",message_not_send_forbidden:"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ",This_room_has_been_closed:"Esta sala ha sido cerrada",Room_logging_is_enabled:"Log de sala está habilitado",A_password_is_required:"Se requiere una contraseña",You_are_not_on_the_member_list:"No estás en la lista de miembros",You_are_banned_from_this_room:"Estás expulsado de esta sala",Your_desired_nickname_:"Tu alias ya está en uso. Por favor elige otro",The_maximum_number_:"El máximo número de usuarios ha sido alcanzado en esta sala",This_room_is_locked_:"Esta sala está bloqueada",You_are_not_allowed_to_create_:"No tienes permiso para crear una sala",Alert:"Alerta",Call_started:"Llamada empezada",Call_terminated:"Llamada terminada",Carbon_copy:"Calco",Enable:"Activar",jingle_reason_busy:"ocupado",jingle_reason_decline:"rechazar",jingle_reason_success:"colgar",Media_failure:"Fallo multimedia",No_local_audio_device:"No hay dispositivo de audio local",No_local_video_device:"No hay dispositivo de vídeo local",Ok:"Ok",PermissionDeniedError:"Tú o tu navegador denegaron el permiso de audio/vídeo",Use_local_audio_device:"Usar dispositivo de audio local",Use_local_video_device:"Usar dispositivo de vídeo",is_:"es __status__",You_received_a_message_from_an_unknown_sender_:"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?",Your_roster_is_empty_add_:"Tu lista de amigos esta vacía, añadir un <a>nuevo amigo</a>",onsmp_explanation_question:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.",onsmp_explanation_secret:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado se inició una conversación privada.",Unverified_private_conversation_started:"No verificado se inició una conversación privada.",Bookmark:"Favorito","Auto-join":"Auto-unir",Edit_bookmark:"Editar favorito",Room_logging_is_disabled:"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima",Do_you_want_to_change_the_default_room_configuration:"¿Quieres cambiar la configuración por defecto de la sala?",Default:"Por defecto",Change:"Cambiar",Send_file:"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP"}},fi:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},fr:{translation:{Logging_in:"Connexion...",your_connection_is_unencrypted:"Connexion non chiffrée.",your_connection_is_encrypted:"Connexion chiffrée.",your_buddy_closed_the_private_connection:"Votre contact a fermé la connexion privée.",start_private:"Démarrer une conversation privée",close_private:"Clôturer une conversation privée",your_buddy_is_verificated:"Votre contact est vérifié.",you_have_only_a_subscription_in_one_way:"Vous ne pouvez souscrire qu'une fois.",authentication_query_sent:"Requête d’authentification envoyée.",your_message_wasnt_send_please_end_your_private_conversation:"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.",unencrypted_message_received:"Message non chiffré reçu",not_available:"Non disponible",no_connection:"Pas de connexion !",relogin:"Re-connexion",trying_to_start_private_conversation:"Essai de démarrage d'une conversation privée !",Verified:"Vérifié",Unverified:"Non vérifié",private_conversation_aborted:"Conversation privée interrompue !",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Votre contact a fermé la conversation privée ! Vous devriez faire de même.",conversation_is_now_verified:"La conversation est maintenant vérifiée.",authentication_failed:"L'authentification a échoué.",Creating_your_private_key_:"Création de votre clé privée; cela peut prendre un moment.",Authenticating_a_buddy_helps_:"L'authentification d'un contact permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.",How_do_you_want_to_authenticate_your_buddy:"Comment voulez-vous vous authentifier {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Sélection de la méthode...",Manual:"Manuel",Question:"Question",Secret:"Sécurité",To_verify_the_fingerprint_:"Pour vérifier l'empreinte, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.",Your_fingerprint:"Votre empreinte",Buddy_fingerprint:"Empreinte du contact",Close:"Fermer",Compared:"Comparé",To_authenticate_using_a_question_:"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre contact.",Ask:"Demander",To_authenticate_pick_a_secret_:"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.",Compare:"Comparer",Fingerprints:"Empreintes",Authentication:"Authentification",Message:"Message",Add_buddy:"Ajouter un contact",rename_buddy:"Renommer le contact",delete_buddy:"Supprimer le contact",Login:"Connexion",Username:"Nom d'utilisateur",Password:"Mot de passe",Cancel:"Annuler",Connect:"Connecter",Type_in_the_full_username_:"Tapez un nom d'utilisateur complet et un alias(optionnel).",Alias:"Alias",Add:"Ajouter",Subscription_request:"Demande d'abonnement",You_have_a_request_from:"Vous avez une requête de ",Deny:"Refuser",Approve:"Approuver",Remove_buddy:"Supprimer le contact",You_are_about_to_remove_:"Vous allez retirer {{bid_name}} (<b>{{bid_jid}}</b>) de votre liste de contacts. Toutes les fenêtres de discussion en lien avec celui-ci seront fermées.",Continue_without_chat:"Continuer sans tchat",Please_wait:"Merci de patienter",Login_failed:"Authentification échouée",Sorry_we_cant_authentikate_:"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.",Retry:"Retour",clear_history:"Effacer l’historique",New_message_from:"Nouveau message de __name__",Should_we_notify_you_:"Dans le futur, devrons-nous vous notifier les nouveaux messages ?",Please_accept_:'Merci de cliquer sur le bouton "autoriser" en haut de page',Hide_offline:"Masquer les contacts non connectés",Show_offline:"Afficher les contacts non connectés",About:"À propos",dnd:"Ne pas déranger",Mute:"Muet",Unmute:"Son actif",Subscription:"Abonnement",both:"Les deux",Status:"Statut",online:"En ligne",chat:"tchat",away:"Absent",xa:"Longue absence",offline:"Hors ligne",none:"Aucun",Unknown_instance_tag:"Tag inconnu",Not_one_of_our_latest_keys:"Ce n'est pas l'une des dernières touches",Received_an_unreadable_encrypted_message:"Message chiffré non lisible",Online:"En ligne",Chatty:"Libre pour discuter",Away:"Absent",Extended_away:"Longue absence",Offline:"Hors ligne",Friendship_request:"Demande de contact",Confirm:"Valider",Dismiss:"Rejeter",Remove:"Supprimer",Online_help:"Aide en ligne",FN:"Nom",N:" N ",FAMILY:"Nom de famille",GIVEN:"prénom",NICKNAME:"Pseudo",URL:"URL",ADR:"Adresse",STREET:"Rue",EXTADD:"Adresse (suite)",LOCALITY:"Localité",REGION:"Région",PCODE:"Code Postal",CTRY:"Pays",TEL:"Téléphone",NUMBER:"Numéro",EMAIL:"Courriel",USERID:" USERID ",ORG:"Organisation",ORGNAME:"Nom",ORGUNIT:"Unité",TITLE:"Qualité:",ROLE:"Rôle",BDAY:"Date de naissance",DESC:"Description",PHOTO:"Photo",send_message:"Envoyer un message",get_info:"Montrer les informations",Settings:"Réglages",Priority:"Priorité",Save:"Enregistrer",User_settings:"Paramètres utilisateur",A_fingerprint_:"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez",is:"est",Login_options:"Options d'identification",BOSH_url:"URL BOSH",Domain:"Domaine",Resource:"Ressource",On_login:"Après authentification",Received_an_unencrypted_message:"Reçu un message non chiffré",Sorry_your_buddy_doesnt_provide_any_information:"Désolé, votre contact n'a pas fourni d'informations",Info_about:"À propos de",Authentication_aborted:"Authentification interrompue.",Authentication_request_received:"Requête d'authentification reçue.",Log_in_without_chat:"S'identifier sans tchat",has_come_online:"vient d'arriver",Unknown_sender:"Expéditeur inconnu",Please_allow_access_to_microphone_and_camera:'Veuillez cliquez sur le bouton "Autoriser" en haut, pour permettre l\'accès au micro et à la caméra.',Incoming_call:"Appel entrant",from:"de",Do_you_want_to_accept_the_call_from:"Voulez-vous accepter l'appel de",Reject:"Rejeté",Accept:"Accepté",hang_up:"raccrocher",snapshot:"Capture d’écran",mute_my_audio:"Couper l'audio",pause_my_video:"Mettre ma vidéo en pause",fullscreen:"Plein écran",Info:"Info",Local_IP:"IP locale",Remote_IP:"IP distante",Local_Fingerprint:"Empreinte locale",Remote_Fingerprint:"Empreinte distante",Video_call_not_possible:"L'appel vidéo n'est possible. Votre contact ne supporte pas les appels vidéo.",Start_video_call:"Démarrer l'appel vidéo",Join_chat:"Joindre la discussion",Join:"Joindre",Room:"Salon",Nickname:"Pseudo",left_the_building:"__nickname__ a quitté l'immeuble",entered_the_room:"__nickname__ entre dans le salon",is_now_known_as:"__oldNickname__ est maintenant connu comme __newNickname__",This_room_is:"Ce salon est",muc_hidden:{keyword:"caché",description:"ne peut être trouvé avec une recherche"},muc_membersonly:{keyword:"pour les membres seulement",description:"Vous devez être sur la liste des membres"},muc_moderated:{keyword:"modéré",description:'Seulement les personnes avec la "voix" sont autorisés à envoyer des messages'},muc_nonanonymous:{keyword:"non anonyme",description:"Votre identifiant Jabber est visible de tous les autres occupants"},muc_open:{keyword:"ouvert",description:"Tout le monde est autorisé à se connecter"},muc_passwordprotected:{keyword:"protégé par un mot de passe",description:"Vous devez fournir un mot de passe correct"},muc_persistent:{keyword:"persistent",description:"ne sera pas détruit si le dernier occupant part"},muc_public:{keyword:"public",description:"peut être touvé avec une recherche"},muc_semianonymous:{keyword:"semi-anonyme",description:"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},muc_temporary:{keyword:"temporaire",description:"sera détruit au départ de son dernier occupant"},muc_unmoderated:{keyword:"non modéré",description:"Tout le monde est autorisé à envoyer des messages"},muc_unsecured:{keyword:"non sécurisé",description:"un mot de passe n'est pas nécessaire pour entrer"},Continue:"Continuer",Server:"Serveur",Rooms_are_loaded:"Les salons sont chargés",Could_load_only:"Ne peut charger que __count__ salons pour l'autocomplétion",muc_explanation:"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation",You_already_joined_this_room:"Vous avez déjà rejoint ce salon",This_room_will_be_closed:"Ce salon va être fermé",Room_not_found_:"Un nouveau salon va être créé",Loading_room_information:"Chargement des informations du salon",Destroy:"Détruire",Leave:"Quitter",changed_subject_to:'__nickname__ a changé le sujet du salon à "__subject__"',muc_removed_kicked:"Vous avez été éjecté de ce salon",muc_removed_info_kicked:"__nickname__ a été éjecté de ce salon",muc_removed_banned:"Vous avez été banni de ce salon",muc_removed_info_banned:"__nickname__ a été banni de ce salon",muc_removed_affiliation:"Vous avez été retiré du salon en raison d'un changement d'affiliation",muc_removed_info_affiliation:"__nickname__ a été retiré du salon en raison d'un changement d'affiliation",muc_removed_membersonly:"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie",muc_removed_info_membersonly:"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres",muc_removed_shutdown:"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre",Reason:"Raison",message_not_send:"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas",message_not_send_forbidden:"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon",This_room_has_been_closed:"Ce salon a été fermé",Room_logging_is_enabled:"L'historique du salon est conservé",A_password_is_required:"Un mot de passe est requis",You_are_not_on_the_member_list:"Vous n'êtes pas sur la liste des membres",You_are_banned_from_this_room:"Vous avez été banni de ce salon",Your_desired_nickname_:"Votre pseudo souhaité est déjà utilisé. Veuillez en choisir un autre",The_maximum_number_:"Le nombre maximum d'utilisateurs est atteint dans ce salon",This_room_is_locked_:"Ce salon est verrouillé",You_are_not_allowed_to_create_:"Vous n'êtes pas autorisé à créer un salon",Alert:"Alerte",Call_started:"Appel démarré",Call_terminated:"Appel terminé",Carbon_copy:"Copie carbone",Enable:"Activé",jingle_reason_busy:"occupé",jingle_reason_decline:"refusé",jingle_reason_success:"raccroché",Media_failure:"échec du média",No_local_audio_device:"Pas de périphérique audio local",No_local_video_device:"Pas de périphérique vidéo local",Ok:"Ok",PermissionDeniedError:"Vous ou votre navigateur à refusé de donner les permissions audio/vidéo",
-Use_local_audio_device:"Utiliser un périphérique audio local.",Use_local_video_device:"Utiliser un périphérique vidéo local.",is_:"est __status__",You_received_a_message_from_an_unknown_sender_:"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?",Your_roster_is_empty_add_:"Votre liste est vide, ajouter <a>Nouveau contact</a>",onsmp_explanation_question:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.",onsmp_explanation_secret:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret",from_sender:"de __sender__",Verified_private_conversation_started:"La conversation privée vérifiée a démarré.",Unverified_private_conversation_started:"La conversation privée non vérifiée a démarré.",Bookmark:"Marque-page","Auto-join":"Joindre automatiquement",Edit_bookmark:"Éditer le marque-page",Room_logging_is_disabled:"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme",Do_you_want_to_change_the_default_room_configuration:"Voulez-vous changer la configuration par défaut du salon ?",Default:"Par défaut",Change:"Changer",Send_file:"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP."}},"hu-HU":{translation:{Logging_in:null,your_connection_is_unencrypted:"Az Ön kapcsolata titkosítatlan.",your_connection_is_encrypted:"Az Ön kapcsolata titkosított.",your_buddy_closed_the_private_connection:"Partnere megszakította a privát kapcsolatot.",start_private:"Privát beszélgetés indítása",close_private:"Privát beszélgetés bezárása",your_buddy_is_verificated:"Az Ön partnere megerősítve.",you_have_only_a_subscription_in_one_way:null,authentication_query_sent:"Azonosítási kérelem elküldve.",your_message_wasnt_send_please_end_your_private_conversation:"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.",unencrypted_message_received:"Titkosítatlan üzenet fogadva",not_available:"Nem elérhető",no_connection:"Nincs kapcsolat!",relogin:"relogin",trying_to_start_private_conversation:"Privát beszélgetés indítása!",Verified:"Megerősítve",Unverified:"Nem megerősített",private_conversation_aborted:"Privát beszélgetés megszakítva!",your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:"Azonosítás sikertelen.",Creating_your_private_key_:"Privát kulcs generálása. Egy kis időbe telhet...",Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:"Kérdés",Secret:"Kulcs",To_verify_the_fingerprint_:null,Your_fingerprint:"Az Ön lenyomata",Buddy_fingerprint:"Partnere lenyomata",Close:"Bezárás",Compared:"Összehasonlítva",To_authenticate_using_a_question_:"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.",Ask:"Kérdez",To_authenticate_pick_a_secret_:"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.",Compare:"Összehasonlítás",Fingerprints:"Lenyomatok",Authentication:"Azonosítás",Message:"Üzenet",Add_buddy:"Partner hozzáadása",rename_buddy:"Partner átnevezése",delete_buddy:"Partner törlése",Login:"Belépés",Username:"Felhasználónév",Password:"Jelszó",Cancel:"Mégsem",Connect:"Csatlakozás",Type_in_the_full_username_:"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.",Alias:"Becenév",Add:"Hozzáadás",Subscription_request:"Feliratkozási kérelem",You_have_a_request_from:"Ön felkérést kapott a következőtől",Deny:"Elutasít",Approve:"Jóváhagy",Remove_buddy:"Partner eltávolítása",You_are_about_to_remove_:null,Continue_without_chat:"Folytatás chat nélkül",Please_wait:"Kérem várjon",Login_failed:"Chat bejelentkezés sikertelen",Sorry_we_cant_authentikate_:null,Retry:"Vissza",clear_history:"Előzmények törlése",New_message_from:"Új üzenet __name__ partnerétől",Should_we_notify_you_:"Kívánja hogy értesítsük a jövőben új üzeneteiről?",Please_accept_:'Kérem kattintson a fent megjelenő "Engedélyez" gombra.',Hide_offline:"Offline partnerek elrejtése",Show_offline:"Offline partnerek mutatása",About:null,dnd:"Ne zavarj",Mute:"Némítás",Unmute:"Hangok engedélyezése",Subscription:null,both:"mindkettő",Status:"Állapot",online:"elérhető",chat:null,away:"távol",xa:"huzamosabban távol",offline:"offline",none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:"Teljes név",N:null,FAMILY:"Családi név",GIVEN:"Keresztnév",NICKNAME:"Becenév",URL:"URL",ADR:"Cím",STREET:"Utcanév",EXTADD:"Cím",LOCALITY:"Helység",REGION:"Régió",PCODE:"Irányítószám",CTRY:"Ország",TEL:"Telefonszám",NUMBER:"Házszám",EMAIL:"E-mail cím",USERID:null,ORG:"Vállalat",ORGNAME:"Név",ORGUNIT:"Osztály",TITLE:"Beosztás",ROLE:"Részleg",BDAY:"Születésnap",DESC:"Leírás",PHOTO:null,send_message:"Üzenet küldése",get_info:"Info mutatása",Settings:"Beállítások",Priority:"Prioritás",Save:"Mentés",User_settings:"Felhasználó beállítások",A_fingerprint_:null,is:null,Login_options:"Bejelentkezési lehetőségek",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Erőforrás",On_login:"Bejelentkezéskor",Received_an_unencrypted_message:"Titkosítatlan üzenetet fogadott",Sorry_your_buddy_doesnt_provide_any_information:"Sajnos az Ön partnere nem adott meg semmilyen információt.",Info_about:null,Authentication_aborted:"Azonosítás megszakítva.",Authentication_request_received:"Azonosítási kérelem fogadva.",Log_in_without_chat:"Bejelentkezés chat nélkül",has_come_online:"bejelentkezett",Unknown_sender:"Ismeretlen küldő",Please_allow_access_to_microphone_and_camera:'Kérem kattintson a fent megjelenő "Engedélyez/Allow" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.',Incoming_call:"Bejövő hívás",from:"tőle",Do_you_want_to_accept_the_call_from:"Szeretné fogadni következő partnere hívását:",Reject:"Elutasít",Accept:"Fogadás",hang_up:"tartás",snapshot:"képernyőfotó",mute_my_audio:"hangom némítása",pause_my_video:"videóképem megállítása",fullscreen:"teljes képernyő",Info:"Info",Local_IP:"Helyi IP",Remote_IP:"Távoli IP",Local_Fingerprint:"Helyi lenyomat",Remote_Fingerprint:"Távoli lenyomat",Video_call_not_possible:"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.",Start_video_call:"Videóhívás indítása",Join_chat:"Belépés a chatbe",Join:"Belépés",Room:"Szoba",Nickname:"Becenév",left_the_building:"__nickname__ elhagyta az épületet.",entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},it:{translation:{Logging_in:"login…",your_connection_is_unencrypted:"La sua connessione è non cifrata.",your_connection_is_encrypted:"La sua connessione è cifrata.",your_buddy_closed_the_private_connection:"La sua connessione privata è stato chiuso dal suo compagno.",start_private:"Inizia privata",close_private:"Chiude privata",your_buddy_is_verificated:"Il tuo compagno è stato verificato",you_have_only_a_subscription_in_one_way:"Hai solo una one-way inscrizione.",authentication_query_sent:"Domanda d'autenticità inviata.",your_message_wasnt_send_please_end_your_private_conversation:"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.",unencrypted_message_received:"Messaggio non cifrato ricevuto",not_available:"non disponibile",no_connection:"nessun collegamento!",relogin:"nuovo login",trying_to_start_private_conversation:"Cercando di avviare una conversazione privata!",Verified:"verificato",Unverified:"non verificato",private_conversation_aborted:"Conversazione privata abortito!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.",conversation_is_now_verified:"Conversazione è ora verificato.",authentication_failed:"autenticazione fallita.",Creating_your_private_key_:"Creare la propria chiave privata; questo potrebbe richiedere un po'.",Authenticating_a_buddy_helps_:"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.",How_do_you_want_to_authenticate_your_buddy:"Come si desidera autenticare {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Seleziona metodo ..",Manual:"manuale",Question:"domanda",Secret:"segreto",To_verify_the_fingerprint_:"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.",Your_fingerprint:"il tuo impronta digitale",Buddy_fingerprint:"impronta digitale da compagno",Close:"chiude",Compared:"comparato",To_authenticate_using_a_question_:"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno",Ask:"chiedi",To_authenticate_pick_a_secret_:"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.",Compare:"Comparare",Fingerprints:"Impronta digitale",Authentication:"Autenticazione",Message:"Messagio",Add_buddy:"Aggiungi un compagno",rename_buddy:"rinomina compagno",delete_buddy:"elimina compagno",Login:"Login",Username:"Identificazione dell'utente",Password:"Password",Cancel:"Cancella",Connect:"Collega",Type_in_the_full_username_:"Digita l'identificazione utente completo e un alias opzionale.",Alias:"Alias",Add:"Aggiungi",Subscription_request:"Rrichiesta di sottoscrizione",You_have_a_request_from:"Hai una richiesta da",Deny:"Refiuta",Approve:"Approva",Remove_buddy:"Rimuova il compagno",You_are_about_to_remove_:"Stai rimovendo {{bid_name}} (<b>{{bid_jid}}</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.",Continue_without_chat:"Continua senza chat",Please_wait:"Si prega d'attendere",Login_failed:"Chat login è fallito",Sorry_we_cant_authentikate_:"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?",Retry:"Indietro",clear_history:"Cancella la cronologia",New_message_from:"Nuovo messaggio da __name__",Should_we_notify_you_:"Vuoi ricevere una notifica di nuovi messaggi in futuro?",Please_accept_:'Si prega di fare clic sul bottone "Autorizzazione" sopra.',Hide_offline:"Nascondere i contatti non in linea",Show_offline:"Mostra i contatti non in linea",About:"Informazione legale",dnd:"Non disturbare",Mute:"Muto attivo",Unmute:"Muto inattivo",Subscription:"Sottoscrizione",both:"etrambi",Status:"Status",online:"In linea",chat:"chat",away:"via",xa:"via estensivo",offline:"non in linea",none:"nessuno",Unknown_instance_tag:"Instance tag sconosciuta.",Not_one_of_our_latest_keys:"Non è una delle nostre ultime chiavi.",Received_an_unreadable_encrypted_message:"Ricevuto un messaggio crittografato illeggibile.",Online:"In linea",Chatty:"Chiacchierino",Away:"Via",Extended_away:"Via estensivo",Offline:"Non in linea",Friendship_request:"Amicizia richiesto",Confirm:"Conferma",Dismiss:"Rifiuta",Remove:"Rimuovi",Online_help:"Guida in linea",FN:"Nome e cognome",N:null,FAMILY:"Cognome",GIVEN:"Nome",NICKNAME:"Soprannome",URL:"URL",ADR:"Indirizzo",STREET:"Via",EXTADD:"Esteso Indirizzo",LOCALITY:"Località",REGION:"Regione",PCODE:"Codice Postale",CTRY:"Paese",TEL:"Telefono",NUMBER:"Numero",EMAIL:"E-mail",USERID:null,ORG:"Organizzazione",ORGNAME:"Nome",ORGUNIT:"Unità",TITLE:"Titolo di lavoro",ROLE:"Funzione",BDAY:"Compleanno",DESC:"Descrizione",PHOTO:null,send_message:"Messagio inviato",get_info:"Mostra informazioni",Settings:"Impostazione",Priority:"Priorità",Save:"Salva",User_settings:"Impostazione dell'utente",A_fingerprint_:"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.",is:"è",Login_options:"Opzioni di login",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Risorsa",On_login:"Login on",Received_an_unencrypted_message:"Ricevuto un messaggio non crittografato",Sorry_your_buddy_doesnt_provide_any_information:"Spiace, il tuo compagno non fornisce alcuna informazione.",Info_about:"Informazioni",Authentication_aborted:"Autenticazione interrotta",Authentication_request_received:"Richiesta di autenticazione ricevuto.",Log_in_without_chat:"Log in senza chat",has_come_online:"È venuto in linea",Unknown_sender:"Mittente sconosciuto",Please_allow_access_to_microphone_and_camera:'Si prega di fare clic sul bottone "Autorizzazione" sopra per autorizzazione del l\'accesso al microfono e fotocamera.',Incoming_call:"Chiamata in arrivo",from:"di",Do_you_want_to_accept_the_call_from:"Vuoi accettare la chiamata di",Reject:"Rifiuta",Accept:"Accetta",hang_up:"Riattacca",snapshot:"istantanea",mute_my_audio:"disattiva il mio audio",pause_my_video:"pausa il mio audio",fullscreen:"schermo intero",Info:"Informazione",Local_IP:"IP locale",Remote_IP:"IP remoto",Local_Fingerprint:"Impronta digitale locale",Remote_Fingerprint:"Impronta digitale remoto",Video_call_not_possible:"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.",Start_video_call:"Inizia videochiamata",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"è __status__",You_received_a_message_from_an_unknown_sender_:"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?",Your_roster_is_empty_add_:"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>",onsmp_explanation_question:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.",onsmp_explanation_secret:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.",from_sender:"di __sender__",Verified_private_conversation_started:"verificato Conversazione privata iniziato.",Unverified_private_conversation_started:"non verificato Conversazione privata iniziato.",Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},nds:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},pl:{translation:{Logging_in:"Logowanie...",your_connection_is_unencrypted:"Twoje połączenie nie jest szyfrowane.",your_connection_is_encrypted:"Twoje połączenie jest szyfrowane.",your_buddy_closed_the_private_connection:"Twój rozmówca zamknął połączenie.",start_private:"Rozpocznij rozmowę.",close_private:"Zakończ rozmowę.",your_buddy_is_verificated:"Twój rozmówca został zweryfikowany.",you_have_only_a_subscription_in_one_way:"Posiadasz tylko jednostronną subskrypcję.",authentication_query_sent:"Wysłano proźbę o autentykację.",your_message_wasnt_send_please_end_your_private_conversation:"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.",unencrypted_message_received:"Otrzymano niezaszyfrowaną wiadomość.",not_available:"Niedostępny.",no_connection:"Brak połączenia!",relogin:"Połącz ponownie",trying_to_start_private_conversation:"Rozpocznij rozmowę!",Verified:"Zweryfikowano",Unverified:"Niezweryfikowano",private_conversation_aborted:"Anulowano rozmowę!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Rozmówca przerwał połączenie! Powinieneś zrobić to samo.",conversation_is_now_verified:"Zweryfikowano połączenie.",authentication_failed:"Weryfikacja się nie powiodła.",Creating_your_private_key_:"Tworzenie klucza prywatnego; może to chwilę potrwać",Authenticating_a_buddy_helps_:"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).",How_do_you_want_to_authenticate_your_buddy:"Jakiej autoryzacji chcesz użyć {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Wybierz sposób...",Manual:"Ręcznie",Question:"Pytanie",Secret:"Hasło",To_verify_the_fingerprint_:"Aby zweryfikować kod, najpierw skontaktuj się z rozmówcą za pomocą zaufanego sposobu, np telefonu.",Your_fingerprint:"Twój kod:",Buddy_fingerprint:"Kod kontaktu",Close:"Zamknij",Compared:"Porównano",To_authenticate_using_a_question_:"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i twój rozmówca zna odpowiedź.",Ask:"Zadaj pytanie",To_authenticate_pick_a_secret_:"Aby autoryzować za pomocą hasła, wybierz hasło na które znasz tylko Ty i twój rozmówca.",Compare:"Dopasuj",Fingerprints:"Kody autoryzacyjne",Authentication:"Autoryzacja",Message:"Wiadomość",Add_buddy:"Dodaj kontakt",rename_buddy:"Zmień nazwę kontaktu",delete_buddy:"Usuń kontakt",Login:"Login",Username:"Nazwa Użytkownika",Password:"Hasło",Cancel:"Anuluj",Connect:"Połączenie",Type_in_the_full_username_:"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).",Alias:"Alias",Add:"Dodaj",Subscription_request:"Potwierdzenie subskrypcji",You_have_a_request_from:"Masz potwierdzenie od",Deny:"Odmów",Approve:"Zatwierdź",Remove_buddy:"Usuń kontakt",You_are_about_to_remove_:"Chcesz usunąć {{bid_name}} (<b>{{bid_jid}}</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.",Continue_without_chat:"Kontynuuj bez komunikatora",Please_wait:"Proszę czekać",Login_failed:"Błędne logowanie",Sorry_we_cant_authentikate_:"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?",Retry:"Powrót",clear_history:"Wyczyść historię",New_message_from:"Nowa wiadomość od __name__",Should_we_notify_you_:"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?",Please_accept_:'Kliknij "Zezwól" na górze.',Hide_offline:"Schowaj niedostępne kontakty",Show_offline:"Pokaż niedostępne kontakty",About:"Info",dnd:"Nie przeszkadzać",Mute:"Wycisz",Unmute:"Włącz dźwięk",Subscription:"Subskrybcja",both:"obustronna",Status:"Status",online:"Dostępny",chat:"czat",away:"z dala od kompa",xa:"hen hen...",offline:"niedostępny",none:"brak",Unknown_instance_tag:"Nieznany przypadek.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Otrzymano nieczytelną, zaszyfrowaną wiadomość.",Online:"Połączony",Chatty:"Pogawędzimy?",Away:"Daleko",Extended_away:"Hen Hen...",Offline:"Niedostępny",Friendship_request:"Prośba o kontakt",Confirm:"Potwierdzenie",Dismiss:"Odwołaj",Remove:"Usuń",Online_help:"Pomoc Online",FN:"Pełna nazwa",N:" ",FAMILY:"Nazwisko",GIVEN:"Imię",NICKNAME:"Pseudonim",URL:"Strona WWW",ADR:"Adres",STREET:"Ulica",EXTADD:"Pełny adres",LOCALITY:"Lokalizacja",REGION:"Region",PCODE:"Kod pocztowy",CTRY:"Kraj",TEL:"Telefon",NUMBER:"Numer",EMAIL:"Email",USERID:" ",ORG:"Organizacja",ORGNAME:"Nazwa",ORGUNIT:"Jednostka",TITLE:"Stanowisko",ROLE:"Rola",BDAY:"Data urodzin",DESC:"Opis",PHOTO:" ",send_message:"Wyślij wiadomość",get_info:"Pokaż informację",Settings:"Ustawienia",Priority:"Priorytet",Save:"Zapisz",User_settings:"Ustawienia Użytkownika",A_fingerprint_:"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.",is:"jest",Login_options:"opcje logowania",BOSH_url:"Adres BOSH",Domain:"Domena",Resource:"Źródło",On_login:"Na login",Received_an_unencrypted_message:"Zatwierdzono nieszyfrowaną wiadomość.",Sorry_your_buddy_doesnt_provide_any_information:"Wybacz, twój rozmówca nie posiada żadnych informacji.",Info_about:"Informacja o...",Authentication_aborted:"Autoryzacja anulowana.",Authentication_request_received:"Prośba o autoryzację została przyjęta.",Log_in_without_chat:"Zaloguj bez komunikatora",has_come_online:"jest teraz dostępny",Unknown_sender:"Nieznany nadawca",Please_allow_access_to_microphone_and_camera:'Kliknij "Potwierdź" na górze, aby móc korzystać z mikrofonu oraz kamery.',Incoming_call:"Przychodzące połączenie",from:"z",Do_you_want_to_accept_the_call_from:"Akceptujesz połączenie od",Reject:"Odrzuć",Accept:"Zaakceptuj",hang_up:"odbierz",snapshot:"zrób zdjęcie",mute_my_audio:"wycisz dźwięk",pause_my_video:"zatrzymaj moje wideo",fullscreen:"Pełny ekran",Info:"Informacja",Local_IP:"Adres IP",Remote_IP:"Zdalny adres IP",Local_Fingerprint:"Kod lokalny",Remote_Fingerprint:"Zdalny kod",Video_call_not_possible:"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.",Start_video_call:"Rozpocznij rozmowę wideo",Join_chat:"Dołącz do czata",Join:"Dołącz",Room:"Pokój",Nickname:"Nazwa użytkownika",left_the_building:"__nickname__ wyszedł",entered_the_room:"__nickname__ wszedł do pokoju",is_now_known_as:"__oldNickname__ zmienił nazwę na __newNickname__",This_room_is:"Ten pokój jest",muc_hidden:{keyword:"ukryty",description:"nie można odnaleźć elementów wyszukiwania"},muc_membersonly:{keyword:"tylko zalogowani",description:"musisz być członkiem listy"},muc_moderated:{keyword:"moderowano",description:'tylko osoby z opcją "głos" mogą wysyłać wiadomość'},muc_nonanonymous:{keyword:"nie-anonimowy",description:"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},muc_open:{keyword:"otwarty",description:"wszyscy mają pozwolenie aby dołączyć"},muc_passwordprotected:{keyword:"ograniczone hasłem",description:"musisz wpisać prawidłowe hasło"},muc_persistent:{keyword:"trwale",description:"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},muc_public:{keyword:"publiczny",description:"wyszukawno"},muc_semianonymous:{keyword:"pół-anonimowy",description:"Twój identyfikator jabber jest widoczny w pokoju adminów"},muc_temporary:{
-keyword:"tymczasowy",description:"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},muc_unmoderated:{keyword:"niemoderowany",description:"wszyscy są uprawnieni do pisania wiadomości"},muc_unsecured:{keyword:"niezabezpieczone",description:"nie musisz wpisywać hasła"},Continue:"Kontynuuj",Server:"Serwer",Rooms_are_loaded:"Pokoje zostały załadowane",Could_load_only:"Nie załadowano __count__ pokoi",muc_explanation:"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło",You_already_joined_this_room:"Już dołączyłeś do tego pokoju",This_room_will_be_closed:"Ten pokój będzie zamknięty",Room_not_found_:"Nowy pokój będzie stworzony",Loading_room_information:"Ładowani informacji o pokoju",Destroy:"Zniszczony",Leave:"Opuść",changed_subject_to:'__nickname__ zmienił temat pokoju na "__subject__"',muc_removed_kicked:"Zostałeś wyrzucony z pokoju",muc_removed_info_kicked:"__nickname__ został wyrzucony z pokoju",muc_removed_banned:"Zostałeś zbanowany",muc_removed_info_banned:"__nickname__ został zbanowany",muc_removed_affiliation:"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_info_affiliation:"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_membersonly:"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...",muc_removed_info_membersonly:"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków",muc_removed_shutdown:"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi",Reason:"Powód",message_not_send:"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje",message_not_send_forbidden:"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju",This_room_has_been_closed:"Ten pokój został zamknięty",Room_logging_is_enabled:"Logowanie do pokoju jest włączone",A_password_is_required:"Hasło jest wymagane",You_are_not_on_the_member_list:"Nie jesteś na liście członków",You_are_banned_from_this_room:"Zostałeś zbanowany w tym pokoju",Your_desired_nickname_:"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną",The_maximum_number_:"Została osiągnięta maksymalna liczba użytkowników w tym pokoju",This_room_is_locked_:"Ten pokój jest zablokowany",You_are_not_allowed_to_create_:"Nie masz uprawnień do tworzenia pokoju",Alert:"Alarm",Call_started:"Rozmowa rozpoczęta",Call_terminated:"Rozmowa zakończona",Carbon_copy:"Do wiadomości",Enable:"Włączone",jingle_reason_busy:"zajęte",jingle_reason_decline:"odmów",jingle_reason_success:"zakończono",Media_failure:"Błąd mediów",No_local_audio_device:"Brak lokalnego urządzenia audio.",No_local_video_device:"Brak lokalnego urządzenia wideo.",Ok:"Ok",PermissionDeniedError:"Ty lub twoja przeglądarka odmówiła dostępu do audio/video",Use_local_audio_device:"Użyj lokalnego urządzenia audio.",Use_local_video_device:"Użyj lokalnego urządzenia wideo.",is_:"jest __status__",You_received_a_message_from_an_unknown_sender_:"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?",Your_roster_is_empty_add_:"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>",onsmp_explanation_question:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.",onsmp_explanation_secret:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.",from_sender:"z __sender__",Verified_private_conversation_started:"Zweryfikowano Rozmowa prywatna rozpoczęta.",Unverified_private_conversation_started:"Niezweryfikowano Rozmowa prywatna rozpoczęta.",Bookmark:"Zakładka","Auto-join":"Auto-połączenie",Edit_bookmark:"Edytuj zakładkę",Room_logging_is_disabled:"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy",Do_you_want_to_change_the_default_room_configuration:"Chcesz zmienić domyślną konfigurację pokoju?",Default:"Domyślny",Change:"Zmień",Send_file:"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP."}},"pt-BR":{translation:{Logging_in:"Entrando...",your_connection_is_unencrypted:"Sua conexão não é encriptada",your_connection_is_encrypted:"Sua conexão é encriptada",your_buddy_closed_the_private_connection:"Seu contato fechou a conexão privada",start_private:"Iniciar conversa privada",close_private:"Fechar conversa privada",your_buddy_is_verificated:"Seu contato está verificado",you_have_only_a_subscription_in_one_way:"Você só tem a inscrição one-way",authentication_query_sent:"Pergunta de autenticação enviada",your_message_wasnt_send_please_end_your_private_conversation:"Sua mensagem não foi enviada. Por favor finalize sua conversa privada",unencrypted_message_received:"Mensagem não encriptada recebida",not_available:"Indisponível",no_connection:"Sem conexão!",relogin:"reentrar",trying_to_start_private_conversation:"Tentando iniciar conversa privada",Verified:"Verificado",Unverified:"Não verificado",private_conversation_aborted:"Conversa privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.",conversation_is_now_verified:"Conversa verificada.",authentication_failed:"Autenticação falhou.",Creating_your_private_key_:"Criando sua chave privada: isso pode demorar um pouco.",Authenticating_a_buddy_helps_:"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.",How_do_you_want_to_authenticate_your_buddy:"Como você gostaria de se autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?",Select_method:"Selecione o método...",Manual:"Manual",Question:"Pergunta",Secret:"Senha",To_verify_the_fingerprint_:"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.",Your_fingerprint:"Sua impressão digital",Buddy_fingerprint:"Impressão digital do contato",Close:"Fechar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.",Ask:"Pergunta",To_authenticate_pick_a_secret_:"Para autenticar, escolha um segredo que somente você e seu contato saibam.",Compare:"Compare",Fingerprints:"Impressões digitais",Authentication:"Autenticação",Message:"Mensagem",Add_buddy:"Adicionar contato",rename_buddy:"renomear contato",delete_buddy:"remover contato",Login:"Entrar",Username:"Usuário",Password:"Senha",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Digite seu nome completo e um apelido opcional.",Alias:"Apelido",Add:"Adicionar",Subscription_request:"Pedido de inscrição",You_have_a_request_from:"Você tem um pedido de",Deny:"Negar",Approve:"Aprovar",Remove_buddy:"Remover contato",You_are_about_to_remove_:"Você está prestes a remover {{bid_name}} (<b>{{bid_jid}}</b>) de sua lista de contatos. Todas as conversas serão fechadas.",Continue_without_chat:"Continue sem converar",Please_wait:"Por favor aguarde",Login_failed:"Autenticação da conversa falhou",Sorry_we_cant_authentikate_:"A autenticação com o servidor falhou. Talvez seja a senha errada?",Retry:"Voltar",clear_history:"Limpar histórico",New_message_from:"Nova mensagem de __name__",Should_we_notify_you_:"Devemos continuar notificando sobre novas mensagens no futuro?",Please_accept_:'Por favor clique no botão "Permitir" na parte superior.',Hide_offline:"Esconder contatos desconectados",Show_offline:"Mostrar contatos desconectados",About:"Sobre",dnd:"Não perturbe",Mute:"Mudo",Unmute:"Ligar",Subscription:"Inscrição",both:"ambos",Status:"Status",online:"online",chat:"conversa",away:"ausente",xa:"ausente por mais tempo",offline:"desativado",none:"nenhum",Unknown_instance_tag:"Marcação desconhecida da instância",Not_one_of_our_latest_keys:"Nenhuma de nossas ultimas chaves.",Received_an_unreadable_encrypted_message:"Mensagem encriptada ilegível foi recebida.",Online:"Online",Chatty:"Tagarela",Away:"Ausente",Extended_away:"Ausente por mais tempo",Offline:"Desativado",Friendship_request:"Pedido de amizade",Confirm:"Confirmar",Dismiss:"Ignorar",Remove:"Remover",Online_help:"Ajuda online",FN:"Nome completo",N:" ",FAMILY:"Sobrenome",GIVEN:"Nome",NICKNAME:"Apelido",URL:"URL",ADR:"Endereço",STREET:"Rua, Av, etc",EXTADD:"Complemento",LOCALITY:"Localidade",REGION:"Região",PCODE:"CEP",CTRY:"País",TEL:"Telefone",NUMBER:"Número",EMAIL:"Email",USERID:" IDUsuário",ORG:"Empresa",ORGNAME:"Nome",ORGUNIT:"Unidade",TITLE:"Cargo",ROLE:"Função",BDAY:"Data de nascimento",DESC:"Descrição",PHOTO:"Foto",send_message:"Enviar mensagem",get_info:"Exibir informações",Settings:"Configurações",Priority:"Prioridade",Save:"Salvar",User_settings:"Configurações do usuário",A_fingerprint_:"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.",is:"é",Login_options:"Opções de login",BOSH_url:"BOSH URL",Domain:"Domínio",Resource:"Recurso",On_login:"Ao autenticar",Received_an_unencrypted_message:"Mensagem não encriptada recebida",Sorry_your_buddy_doesnt_provide_any_information:"Desculpe, seu contato não forneceu nenhuma informação",Info_about:"Informações sobre",Authentication_aborted:"Autenticação encerrada.",Authentication_request_received:"Pedido de autenticação recebido",Log_in_without_chat:"Entrar sem conversar",has_come_online:"ficou online",Unknown_sender:"Emissor desconhecido",Please_allow_access_to_microphone_and_camera:'Por favor clique no botão "Permitir" no topo, para conceder acesso ao seu microfone e câmera.',Incoming_call:"Recebendo chamada",from:"de",Do_you_want_to_accept_the_call_from:"Você aceita a chamada de",Reject:"Negar",Accept:"Aceitar",hang_up:"desligar",snapshot:"registrar imagem",mute_my_audio:"mudo",pause_my_video:"pausar vídeo",fullscreen:"tela cheia",Info:"Informações",Local_IP:"IP local",Remote_IP:"IP remoto",Local_Fingerprint:"Fingerprint local",Remote_Fingerprint:"Fingerprint remoto",Video_call_not_possible:"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.",Start_video_call:"Iniciar chamada de vídeo",Join_chat:"Entrar no chat",Join:"Entrar",Room:"Sala",Nickname:"Apelido",left_the_building:"__nickname__ deixou o prédio",entered_the_room:"__nickname__ entrou na sala",is_now_known_as:"__oldNickname__ agora é conhecido como __newNickname__",This_room_is:"Esta sala é",muc_hidden:{keyword:"oculto",description:"Não pode ser encontrado através de pesquisa"},muc_membersonly:{keyword:"apenas para membros",description:"você precisa estar na lista de membros"},muc_moderated:{keyword:"moderado",description:'Somente pessoas com "voice" podem enviar mensagens'},muc_nonanonymous:{keyword:"não-anônimo",description:"Seu id jabber esta esposto para todos os outros ocupantes"},muc_open:{keyword:"abrir",description:"Todos podem entrar"},muc_passwordprotected:{keyword:"protegido por senha",description:"você precisa fornecer a senha correta"},muc_persistent:{keyword:"persistente",description:"Não será destruída se o último ocupante tiver saído"},muc_public:{keyword:"público",description:"pode ser localizado pela busca"},muc_semianonymous:{keyword:"semi-anônimos",description:"Sua identificação jabber só é exposta para administradores da sala"},muc_temporary:{keyword:"temporário",description:"Será destruída se o último ocupante tiver saído"},muc_unmoderated:{keyword:"sem moderação",description:"Todos tem permissão de enviar mensagens"},muc_unsecured:{keyword:"inseguro",description:"Você não precisa de senha para entrar"},Continue:"Avançar",Server:"Servidor",Rooms_are_loaded:"Sala carregada",Could_load_only:"Pode carregar somente __count__ salas para autocompletar",muc_explanation:"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat",You_already_joined_this_room:"Você já entrou nesta sala",This_room_will_be_closed:"Esta sala será fechada",Room_not_found_:"Uma nova sala será criada",Loading_room_information:"Carregar informação da sala",Destroy:"Destruir",Leave:"Sair",changed_subject_to:'__nickname__ alterar o assunto da sala para "__subject__"',muc_removed_kicked:"Você foi removido da sala",muc_removed_info_kicked:"__nickname__ foi removido da sala",muc_removed_banned:"Você foi banido da sala",muc_removed_info_banned:"__nickname__ foi banido da sala",muc_removed_affiliation:"Você foi removido da sala pois a sala, por que a afiliação mudou",muc_removed_info_affiliation:"__nickname__ foi removido da sala, por que a afiliação mudou",muc_removed_membersonly:"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro",muc_removed_info_membersonly:"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro",muc_removed_shutdown:"Você foi removido da sala, por que o serviço MUC esta sendo desligado",Reason:"Motivo",message_not_send:"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais",message_not_send_forbidden:"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala",This_room_has_been_closed:"Essa sala foi fechada",Room_logging_is_enabled:"O Logging esta habilitado",A_password_is_required:"Senha é obrigatória",You_are_not_on_the_member_list:"Você não esta na lista de usuarios",You_are_banned_from_this_room:"Você foi banido desta sala",Your_desired_nickname_:"O nickname escolhido já esta em uso. Por favor escolha outro",The_maximum_number_:"O número máximo de usuarios já foi antigido para essa sala",This_room_is_locked_:"A sala esta trancada",You_are_not_allowed_to_create_:"Você não esta autorizado para criar uma sala",Alert:"Alerta",Call_started:"Chamada iniciada",Call_terminated:"Chamada finalizada",Carbon_copy:"Copia carbono",Enable:"Habilitado",jingle_reason_busy:"ocupado",jingle_reason_decline:"recusado",jingle_reason_success:"sucesso",Media_failure:"Media falhou",No_local_audio_device:"sem dispositivo local de audio",No_local_video_device:"sem dispositivo local de video",Ok:"Ok",PermissionDeniedError:"Você ou seu navegador negou permissão para acessar audio/video",Use_local_audio_device:"Usar dispositivo local de audio",Use_local_video_device:"Usar dispositivo local de video",is_:"é __status__",You_received_a_message_from_an_unknown_sender_:"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?",Your_roster_is_empty_add_:"Sua lista está vazia, adicione um <a>novo contato</a>",onsmp_explanation_question:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.",onsmp_explanation_secret:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado Conversa privada iniciada.",Unverified_private_conversation_started:"Não verificado Conversa privada iniciada.",Bookmark:"Favoritos","Auto-join":"Entrar Automaticamente",Edit_bookmark:"Editar favoritos",Room_logging_is_disabled:"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora",Do_you_want_to_change_the_default_room_configuration:"Você quer alterar as configurações da sala?",Default:"Padrão",Change:"Alterar",Send_file:"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP"}},ro:{translation:{Logging_in:"Autentificare...",your_connection_is_unencrypted:"Conexiunea nu este criptată.",your_connection_is_encrypted:"Conexiunea este criptată.",your_buddy_closed_the_private_connection:"Interlocutorul a închis conexiunea privată.",start_private:"Pornește în privat",close_private:"Închide privat",your_buddy_is_verificated:"Interlocutorul este verificat.",you_have_only_a_subscription_in_one_way:"Subscrierea este într-o singură direcție.",authentication_query_sent:"Cererea de autentificare a fost trimisă.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajul nu a fost trimis. Te rog închide conversația în privat.",unencrypted_message_received:"A fost primit un mesaj necriptat",not_available:"Indisponibil",no_connection:"Fără conexiune!",relogin:"Re-autentificare",trying_to_start_private_conversation:"Se încearcă deschiderea conversației în privat!",Verified:"Verificat",Unverified:"Neverificat",private_conversation_aborted:"Conversație în privat eșuată!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.",conversation_is_now_verified:"Conversația este acum verificată.",authentication_failed:"Autentificarea a eşuat.",Creating_your_private_key_:"Se crează cheia privată; ar putea să dureze ceva timp.",Authenticating_a_buddy_helps_:"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.",How_do_you_want_to_authenticate_your_buddy:"Cum vrei să te autentifici {{bid_name}} (<b>{{bid_jid}}</b>)",Select_method:"Alege metoda...",Manual:"Manual",Question:"Întrebare",Secret:"Secret",To_verify_the_fingerprint_:"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.",Your_fingerprint:"Amprenta ta",Buddy_fingerprint:"Amprenta interlocutorului",Close:"Închide",Compared:"Prin comparație",To_authenticate_using_a_question_:"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.",Ask:"Întreabă",To_authenticate_pick_a_secret_:"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.",Compare:"Compară",Fingerprints:"Amprente",Authentication:"Autentificare",Message:"Mesaj",Add_buddy:"Adaugă contact",rename_buddy:"redenumește contact",delete_buddy:"șterge contact",Login:"Logare",Username:"Utilizator",Password:"Parolă",Cancel:"Renunță",Connect:"Conectare",Type_in_the_full_username_:"Scrie numele complet al utilizatorului și un alias opțional.",Alias:"Alias",Add:"Adaugă",Subscription_request:"Cerere de subscriere",You_have_a_request_from:"Ai o cerere de la",Deny:"Refuză",Approve:"Aprobă",Remove_buddy:"Șterge contact",You_are_about_to_remove_:"Urmează să ștergi {{bid_name}} (<b>{{bid_jid}}</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.",Continue_without_chat:"Continuă fără chat",Please_wait:"Te rog așteaptă",Login_failed:"Logarea pe chat a eșuat",Sorry_we_cant_authentikate_:"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?",Retry:"Înapoi",clear_history:"Curăță istoria",New_message_from:"Un nou mesaj de la __name__",Should_we_notify_you_:"Vrei să fi notificat despre mesajele noi în viitor ?",Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},ru:{translation:{Logging_in:"Вход в систему...",your_connection_is_unencrypted:"Ваше соединение не зашифровано.",your_connection_is_encrypted:"Ваше соединение зашифровано.",your_buddy_closed_the_private_connection:"Ваш собеседник закончил зашифрованное соединение.",start_private:"Начать зашифрованный чат",close_private:"Закончить зашифрованный чат",your_buddy_is_verificated:"Собеседник подтвержден.",you_have_only_a_subscription_in_one_way:"У вас только односторонняя подписка.",authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.",unencrypted_message_received:"Получено незашифрованное сообщение",not_available:"Не доступен",no_connection:"Нет соединения!",relogin:"переподключиться",trying_to_start_private_conversation:"Попытка начать зашифрованный чат!",Verified:"Подтверждено",Unverified:"Не подтверждено",private_conversation_aborted:"Зашифрованный чат отклонен!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.",conversation_is_now_verified:"Чат теперь утвержден.",authentication_failed:"Ошибка авторизации.",Creating_your_private_key_:"Создается приватный ключ. Это может занять некоторое время",Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:"Выберите метод...",Manual:"Вручную",Question:"Вопрос",Secret:"Пароль",To_verify_the_fingerprint_:null,Your_fingerprint:"Ваш отпечаток",Buddy_fingerprint:"Отпечаток собеседника",Close:"Закрыть",Compared:"Сравнение завершено",To_authenticate_using_a_question_:"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.",Ask:null,To_authenticate_pick_a_secret_:"Для авторизации выберите пароль, который знаете только Вы и собеседник.",Compare:"Сравнить",Fingerprints:"Отпечатки",Authentication:"Авторизация",Message:"Сообщение",Add_buddy:"Добавить контакт",rename_buddy:"переименовать контакт",delete_buddy:"удалить контакт",Login:"Вход",Username:"Логин",Password:"Пароль",Cancel:"Отмена",Connect:"Подключить",Type_in_the_full_username_:"Введите полное имя пользователя и дополнительный псевдоним",Alias:"Псевдоним",Add:"Добавить",Subscription_request:"Запрос подписки",You_have_a_request_from:"Получен запрос от",Deny:"Отказ",Approve:"Подтвердить",Remove_buddy:"Удалить контакт",You_are_about_to_remove_:"Вы собираетесь удалить {{bid_name}} (<b>{{bid_jid}}</b>) из списка контактов. Все связанные с чаты будут закрыты.",Continue_without_chat:"Продолжить без чата",Please_wait:"Подождите…",Login_failed:"Неудачный вход в чат",Sorry_we_cant_authentikate_:"Неудачная попытка входа",Retry:"Назад",clear_history:"Очистить историю",New_message_from:"Новое сообщение от __name__",Should_we_notify_you_:"Уведомлять о новых сообщениях в будущем?",Please_accept_:'Нажмите кнопку "Разрешить" вверху страницы, пожалуйста',Hide_offline:"Спрятать отключенных",Show_offline:"Показать отключенных",About:"О проекте",dnd:"Не беспокоить",Mute:"Выкл. уведомления",Unmute:"Вкл. уведомления",Subscription:"Подписка",both:"оба",Status:"Статус",online:"в сети",chat:"готов общаться",away:"отошел",xa:"отсутствую",offline:"не в сети",none:"нет",Unknown_instance_tag:"Неизвестный тег.",Not_one_of_our_latest_keys:"Ни один из наших последних ключей",Received_an_unreadable_encrypted_message:"Получено нечитаемое зашифрованное сообщение",Online:"В сети",Chatty:"Готов общаться",Away:"Отошел",Extended_away:"Отсутствую",Offline:"Не в сети",Friendship_request:"Запрос на добавление в контакты",Confirm:"Подтвердить",Dismiss:"Отклонить",Remove:"Удалить",Online_help:"Онлайн помощь",FN:"Полное имя",N:null,FAMILY:"Фамилия",GIVEN:"Имя",NICKNAME:"Ник",URL:"URL",ADR:"Адрес",STREET:"Улица",EXTADD:"Дополнительный адрес",LOCALITY:"Город",REGION:"Область",PCODE:"Индекс",CTRY:"Страна",TEL:"Телефон",NUMBER:"Номер",EMAIL:"Почта",USERID:null,ORG:"Организация",ORGNAME:"Название",ORGUNIT:"Отдел",TITLE:"Должность",ROLE:"Обязанности",BDAY:"День рождения",DESC:"Описание",PHOTO:" Фото ",send_message:"Отправить сообщение",get_info:"Показать информацию",Settings:"Настройки",Priority:"Приоритет",Save:"Сохранить",User_settings:"Пользовательские настройки",A_fingerprint_:null,is:" ",Login_options:"Параметры входа",BOSH_url:"BOSH URL",Domain:"Домен",Resource:"Ресурс",On_login:"Автоматически подключаться",Received_an_unencrypted_message:"Получено незашифрованное сообщение",Sorry_your_buddy_doesnt_provide_any_information:"К сожалению, контакт не предоставил какой-либо информации.",Info_about:"Информация о",Authentication_aborted:"Аутентификация прервана.",Authentication_request_received:"Получен запрос проверки подлинности.",Log_in_without_chat:"Вход без чата",has_come_online:"появился в сети",Unknown_sender:"Неизвестный отправитель",Please_allow_access_to_microphone_and_camera:'Нажмите кнопку "Разрешить" вверху страницы, чтобы предоставить доступ к микрофону и камере.',Incoming_call:"Входящий вызов",from:"от",Do_you_want_to_accept_the_call_from:"Вы хотите принять вызов от",Reject:"Отклонить",Accept:"Принять",hang_up:"Завершить",snapshot:"Снимок",mute_my_audio:"Без звука",pause_my_video:"Остановить моё видео",fullscreen:"На весь экран",Info:"Инфо",Local_IP:"Мой IP",Remote_IP:"Удаленный IP",Local_Fingerprint:"Мой отпечаток",Remote_Fingerprint:"Удаленный отпечаток",Video_call_not_possible:"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.",Start_video_call:"Видео-вызов",Join_chat:"Присоединиться к комнате",Join:"Присоедениться",Room:"Комната",Nickname:"Ник",left_the_building:"__nickname__ выходит из комнаты",entered_the_room:"__nickname__ заходит в комнату",is_now_known_as:"__oldNickname__ теперь известен как __newNickname__",This_room_is:"Эта комната",muc_hidden:{keyword:"скрыта",description:"не может быть найдена через поиск"},muc_membersonly:{keyword:"только для участников",description:"Вы должны быть в списке участников"},muc_moderated:{keyword:"модерируется",description:"Только пользователи с правом голоса могут отправлять сообщения"},muc_nonanonymous:{keyword:"неанонимная",description:"Ваш JID будет показан всем посетителям"},muc_open:{keyword:"открытая",description:"Любой пользователь может присоедениться"},muc_passwordprotected:{keyword:"защищена паролем",description:"Необходимо ввести правильный пароль"},muc_persistent:{keyword:"постоянная",description:"Не будет уничтожена, когда ее покинут все участники"},muc_public:{keyword:"публичная",description:"Может быть найдена через поиск"},muc_semianonymous:{keyword:"полу-анонимная",description:"Ваш JID могут увидеть только администраторы"},muc_temporary:{keyword:"временная",description:"Будет уничтожена как только не останется ни одного участника"},muc_unmoderated:{keyword:"не модерируется",description:"Любой посетитель может отправлять сообщения"},muc_unsecured:{keyword:"без пароля",description:"Не нужно вводить пароль для входа"},Continue:"Далее",Server:"Сервер",Rooms_are_loaded:"Комнаты загружены",Could_load_only:"Подгрузка только __count__ комнат в автодополнении",muc_explanation:"Введите название комнаты, свой ник и пароль для входа в комнату",You_already_joined_this_room:"Вы уже в этой комнате",This_room_will_be_closed:"Эта комната была закрыта",Room_not_found_:"Новая комната будет создана",Loading_room_information:"Загрузка информации о комнате",Destroy:"Уничтожить",Leave:"Покинуть",changed_subject_to:'__nickname__ изменил тему комнаты на "__subject__"',muc_removed_kicked:"Вас выкинули из комнаты",muc_removed_info_kicked:"__nickname__ был удален из комнаты",muc_removed_banned:"Вас забанили в комнате",muc_removed_info_banned:"__nickname__ был забанен в комнате",muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь",muc_removed_info_membersonly:"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является",muc_removed_shutdown:"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен",
-Reason:"Причина",message_not_send:"Ваше сообщение не было отправлено из-за ошибки","message_not_send_item-not-found":"Ваше сообщение не было отправлено, т.к. этой комнаты не существует",message_not_send_forbidden:"Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате","message_not_send_not-acceptable":"Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты",This_room_has_been_closed:"Эта комната была закрыта",Room_logging_is_enabled:"Журналирование комнаты включено",A_password_is_required:"Необходим пароль",You_are_not_on_the_member_list:"Вы не в списке участников",You_are_banned_from_this_room:"Вас забанили в этой комнате",Your_desired_nickname_:"Данное имя пользователя уже занято, пожалуйста, выберите другое имя пользователя",The_maximum_number_:"Достигнут лимит максимального количества посетителей этой комнаты",This_room_is_locked_:"Эта комната заблокирована",You_are_not_allowed_to_create_:"Вы не можете создавать комнаты",Alert:"Внимание",Call_started:"Вызов начался",Call_terminated:"Вызов завершен",Carbon_copy:"Копировать сообщения",Enable:"Включить",jingle_reason_busy:"занято",jingle_reason_decline:"запрещено",jingle_reason_success:"сбросили",Media_failure:"Ошибка передачи медиа",No_local_audio_device:"Нет локального аудио-устройства.",No_local_video_device:"Нет локального видео-устройства.",Ok:"Ок",PermissionDeniedError:"Вы или Ваш браузер запретили использовать микрофон/камеру",Use_local_audio_device:"Использовать локальное аудио-устройство.",Use_local_video_device:"Использовать локальное видео-устройство.",is_:"__status__",You_received_a_message_from_an_unknown_sender_:"Вы получили сообщение от неизвестного отправителя (__sender__)",Your_roster_is_empty_add_:"Ваш список контактов пуст, добавить <a>новый контакт</a>",onsmp_explanation_question:"Собеседник пытается определить, что общается действительно с Вами.",onsmp_explanation_secret:"Собеседник пытается определить, что общается действительно с Вами. введите пароль.",from_sender:"от __sender__",Verified_private_conversation_started:"Подтверждено Зашифрованный чат начат.",Unverified_private_conversation_started:"Не подтверждено Зашифрованный чат начат.",Bookmark:"Закладка","Auto-join":"Автоматически входить",Edit_bookmark:"Редактировать закладку",Room_logging_is_disabled:"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:"Вы хотите изменить стандартную конфигурацию комнаты?",Default:"Станд.",Change:"Изменить",Send_file:"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу."}},"tr-TR":{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"vi-VN":{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"zh-TW":{translation:{Logging_in:"正在登入…",your_connection_is_unencrypted:"連線沒加密。",your_connection_is_encrypted:"連線有加密。",your_buddy_closed_the_private_connection:"聯絡人關閉了加密連線。",start_private:"開始加密",close_private:"結束加密",your_buddy_is_verificated:"聯絡人已校驗。",you_have_only_a_subscription_in_one_way:"只有單向訂閱。",authentication_query_sent:"驗證要求送出了。",your_message_wasnt_send_please_end_your_private_conversation:"訊息沒送出去。請結束加密的對話。",unencrypted_message_received:"收到沒加密的訊息",not_available:"不存在",no_connection:"沒有連線!",relogin:"重新登入",trying_to_start_private_conversation:"正在試著開始加密的對話!",Verified:"已校驗",Unverified:"未校驗",private_conversation_aborted:"加密的對話中斷了!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"聯絡人把這場加密的對話關掉了!你也應該同樣關掉。",conversation_is_now_verified:"對話現在校驗過了。",authentication_failed:"驗證失敗。",Creating_your_private_key_:"正在產生你的私人金鑰,會花一段時間。",Authenticating_a_buddy_helps_:"聯絡人驗證可以確保跟你說話的是真的那個人。",How_do_you_want_to_authenticate_your_buddy:"你想要怎樣驗證{{bid_name}} ({{bid_jid}})?",Select_method:"選個方式...",Manual:"手動",Question:"問答",Secret:"祕密",To_verify_the_fingerprint_:"要校驗聯絡人的電子指紋,請透過其他可靠的管道跟她/他聯絡,比如說電話。",Your_fingerprint:"你的電子指紋",Buddy_fingerprint:"聯絡人的電子指紋",Close:"關閉",Compared:"比對正確",To_authenticate_using_a_question_:"要用問答來驗證的話,請找一個只有你和聯絡人才知道答案的問題。",Ask:"問題",To_authenticate_pick_a_secret_:"要驗證的話,請找一個只有你和聯絡人知道的祕密。",Compare:"比對",Fingerprints:"電子指紋",Authentication:"驗證",Message:"訊息",Add_buddy:"加聯絡人",rename_buddy:"重新命名聯絡人",delete_buddy:"刪掉聯絡人",Login:"登入",Username:"使用者名稱",Password:"密碼",Cancel:"取消",Connect:"連線",Type_in_the_full_username_:"請打全名,別名可有可無",Alias:"別名",Add:"加入",Subscription_request:"訂閱請求",You_have_a_request_from:"收到聯絡人的請求:",Deny:"拒絕",Approve:"同意",Remove_buddy:"刪除聯絡人",You_are_about_to_remove_:"你就要把{{bid_name}} ({{bid_jid}})從聯絡簿刪掉了。所有相關的對話也都會關掉。",Continue_without_chat:"繼續不聊天",Please_wait:"請等一下",Login_failed:"登入聊天失敗",Sorry_we_cant_authentikate_:"跟聊天伺服器驗證失敗,會不會是密碼打錯了?",Retry:"上一步",clear_history:"清除歷史紀錄",New_message_from:"有新訊息:__name__",Should_we_notify_you_:"以後若有新訊息要通知你嗎?",Please_accept_:"請點上方的「允許」按鈕。",Hide_offline:"隱藏離線聯絡人",Show_offline:"顯示離線聯絡人",About:"關於我",dnd:"別打擾",Mute:"開靜音",Unmute:"關靜音",Subscription:"訂閱狀態",both:"雙向",Status:"狀態",online:"上線",chat:"聊天",away:"離開",xa:"離開很久",offline:"離線",none:"沒有",Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:"收到了一則加密但無法辨認的訊息。",Online:"上線",Chatty:"想聊天",Away:"離開",Extended_away:"離開很久",Offline:"離線",Friendship_request:"聯絡請求",Confirm:"確定",Dismiss:"取消",Remove:"刪掉",Online_help:"線上說明",FN:"全名",N:" ",FAMILY:"姓氏",GIVEN:"名字",NICKNAME:"綽號",URL:"網址",ADR:"位址",STREET:"地址",EXTADD:"更多位址",LOCALITY:"所在地",REGION:"區域",PCODE:"郵遞區號",CTRY:"國家",TEL:"電話",NUMBER:"編號",EMAIL:"電子郵件",USERID:" ",ORG:"團體",ORGNAME:"名稱",ORGUNIT:"單位",TITLE:"職稱",ROLE:"職位",BDAY:"生日",DESC:"簡介",PHOTO:" ",send_message:"發送訊息",get_info:"顯示帳號資訊",Settings:"設定",Priority:"優先度",Save:"儲存",User_settings:"使用者設定",A_fingerprint_:"電子指紋是用來確認跟你說話的是真的那個人。",is:"狀態:",Login_options:"登入選項",BOSH_url:"BOSH 網址",Domain:"網域",Resource:"資源",On_login:"登入啟動",Received_an_unencrypted_message:"收到了一則沒加密的訊息",Sorry_your_buddy_doesnt_provide_any_information:"抱歉,聯絡人沒有提供任何資訊。",Info_about:"帳號資訊:",Authentication_aborted:"驗證中斷。",Authentication_request_received:"驗證請求收到了。",Log_in_without_chat:"登入但不啟用聊天",has_come_online:"上線了",Unknown_sender:"不明傳訊人",Please_allow_access_to_microphone_and_camera:"請點上方的「接受」按鈕來允許我們使用麥克風和相機。",Incoming_call:"來電",from:"只出",Do_you_want_to_accept_the_call_from:"是否要接聽來電:",Reject:"拒絕",Accept:"接受",hang_up:"掛斷",snapshot:"截圖",mute_my_audio:"關掉我的聲音",pause_my_video:"暫停我的影像",fullscreen:"全螢幕",Info:"資料",Local_IP:"本機網路位址",Remote_IP:"遠端網路位址",Local_Fingerprint:"本機電子指紋",Remote_Fingerprint:"遠端電子指紋",Video_call_not_possible:"無法視訊通話。聯絡人不支援視訊。",Start_video_call:"開始視訊通話",Join_chat:"參加聊天",Join:"參加",Room:"聊天室",Nickname:"綽號",left_the_building:"__nickname__離開了大樓",entered_the_room:"__nickname__進入了聊天室",is_now_known_as:"__oldNickname__改名叫做__newNickname__",This_room_is:"聊天室屬性:",muc_hidden:{keyword:"隱藏",description:"搜尋也找不到"},muc_membersonly:{keyword:"限會員",description:"會員才會加入"},muc_moderated:{keyword:"有管制",description:"沒被消音的人才能送訊息"},muc_nonanonymous:{keyword:"禁匿名",description:"每個參與人都能看到你的 jabber 代碼"},muc_open:{keyword:"開放",description:"任何人都能參加"},muc_passwordprotected:{keyword:"密碼鎖",description:"要輸入正確的密碼才能加入"},muc_persistent:{keyword:"永久性",description:"最後一個參與人都離開了也不會結束"},muc_public:{keyword:"公開",description:"搜尋得到"},muc_semianonymous:{keyword:"半匿名",description:"只有聊天室管理員才看得到你的 jabber 代碼"},muc_temporary:{keyword:"暫時性",description:"最後一個參與人離開了就會結束"},muc_unmoderated:{keyword:"沒管制",description:"每個人都可以送訊息"},muc_unsecured:{keyword:"沒保護",description:"不需要密碼就能加入"},Continue:"繼續",Server:"伺服器",Rooms_are_loaded:"聊天室載入完成",Could_load_only:"只能載入__count__間聊天室供輸入自動完成使用",muc_explanation:"請輸入要參加的聊天室名稱,綽號和密碼非必要",You_already_joined_this_room:"你已經參加這間聊天室了",This_room_will_be_closed:"聊天室即將關閉",Room_not_found_:"新聊天室即將開啟",Loading_room_information:"正在載入聊天室資訊",Destroy:"關閉",Leave:"離開",changed_subject_to:'__nickname__把聊天室的標題改成了"__subject__"',muc_removed_kicked:"你被踢出聊天室了",muc_removed_info_kicked:"__nickname__被踢出聊天室了",muc_removed_banned:"你被禁止進入聊天室了",muc_removed_info_banned:"__nickname__被禁止進入聊天室了",muc_removed_affiliation:"你因為身份改變而離開聊天室了",muc_removed_info_affiliation:"__nickname__因為身份改變而離開聊天室了",muc_removed_membersonly:"你離開聊天室了,因為聊天室改為只限會員,但你不是會員",muc_removed_info_membersonly:"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員",muc_removed_shutdown:"你離開聊天室了,因為多人聊天服務正在關閉中。",Reason:"原因",message_not_send:"訊息因為發生錯誤沒送出去","message_not_send_item-not-found":"訊息沒送出去,因為聊天室不存在了",message_not_send_forbidden:"訊息沒送出去,因為你被消音了","message_not_send_not-acceptable":"訊息沒送出去,因為你不是聊天室的參與人了",This_room_has_been_closed:"聊天室已經關閉了",Room_logging_is_enabled:"聊天室紀錄打開了",A_password_is_required:"需要密碼",You_are_not_on_the_member_list:"你不是會員",You_are_banned_from_this_room:"你被禁止進入聊天室了",Your_desired_nickname_:"這個綽號被用掉了,請換一個",The_maximum_number_:"這間聊天室已經到達使用者數目的上限",This_room_is_locked_:"聊天室上鎖了",You_are_not_allowed_to_create_:"不允許你開新的聊天室",Alert:"警告",Call_started:"通話開始",Call_terminated:"通話結束",Carbon_copy:"副本",Enable:"打開",jingle_reason_busy:"忙線中",jingle_reason_decline:"被拒絕",jingle_reason_success:"被掛斷",Media_failure:"媒體錯誤",No_local_audio_device:"本機沒有音訊設備。",No_local_video_device:"本機沒有視訊設備。",Ok:"好",PermissionDeniedError:"你或你的瀏覽器拒絕了音視訊的權限",Use_local_audio_device:"使用本機音訊設備。",Use_local_video_device:"使用本機視訊設備。",is_:"狀態: __status__",You_received_a_message_from_an_unknown_sender_:"收到了不明人士(__sender__)傳來的訊息。你要打開來看嗎?",Your_roster_is_empty_add_:"好友清單是空的,請加<a>新的聯絡人</a>",onsmp_explanation_question:'聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入問題的答案,然後按"回答"。',onsmp_explanation_secret:"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入你們之間的祕密。",from_sender:"來自:__sender__",Verified_private_conversation_started:"加密且已校驗的對話開始了。",Unverified_private_conversation_started:"加密但未校驗的對話開始了。",Bookmark:"書籤","Auto-join":"自動參加",Edit_bookmark:"編輯書籤",Room_logging_is_disabled:"聊天室紀錄關掉了","Room_is_now_non-anoymous":"現在聊天室禁止匿名了","Room_is_now_semi-anonymous":"現在聊天室變半匿名了",Do_you_want_to_change_the_default_room_configuration:"你想要改變聊天室的預設配置嗎?",Default:"預設值",Change:"修改",Send_file:"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。"}},zh:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}}};/*!
- * Source: lib/favico.js/favico.js, license: MIT, url: https://github.com/ejci/favico.js
- */
-/**
+question&&(question=CryptoJS.enc.Latin1.parse(question).toString(CryptoJS.enc.Utf8)),void this.trigger("question",[question])):this.abort());case CONST.SMPSTATE_EXPECT2:if(HLP.debug.call(this,"smp tlv 3"),ms=HLP.readLen(msg.msg.substr(0,4)),11!==ms)return this.abort();if(msg=HLP.unpackMPIs(11,msg.msg.substring(4)),!(HLP.checkGroup(msg[0],N_MINUS_2)&&HLP.checkGroup(msg[3],N_MINUS_2)&&HLP.checkGroup(msg[6],N_MINUS_2)&&HLP.checkGroup(msg[7],N_MINUS_2)))return this.abort();if(!HLP.ZKP(3,msg[1],HLP.multPowMod(G,msg[2],msg[0],msg[1],N)))return this.abort();if(!HLP.ZKP(4,msg[4],HLP.multPowMod(G,msg[5],msg[3],msg[4],N)))return this.abort();if(this.g3ao=msg[3],this.computeGs(msg[0],msg[3]),t1=HLP.multPowMod(this.g3,msg[9],msg[6],msg[8],N),t2=HLP.multPowMod(G,msg[9],this.g2,msg[10],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[7],msg[8],N),N),!HLP.ZKP(5,msg[8],t1,t2))return this.abort();var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(6,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.QoQ=BigInt.divMod(this.q,msg[7],N),this.PoP=BigInt.divMod(this.p,msg[6],N),this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(7,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),this.smpstate=CONST.SMPSTATE_EXPECT4,send=HLP.packINT(8)+HLP.packMPIs([this.p,this.q,cP,d5,d6,this.r,cR,d7]),send=HLP.packTLV(4,send);break;case CONST.SMPSTATE_EXPECT3:if(HLP.debug.call(this,"smp tlv 4"),ms=HLP.readLen(msg.msg.substr(0,4)),8!==ms)return this.abort();if(msg=HLP.unpackMPIs(8,msg.msg.substring(4)),!HLP.checkGroup(msg[0],N_MINUS_2)||!HLP.checkGroup(msg[1],N_MINUS_2)||!HLP.checkGroup(msg[5],N_MINUS_2))return this.abort();if(t1=HLP.multPowMod(this.g3,msg[3],msg[0],msg[2],N),t2=HLP.multPowMod(G,msg[3],this.g2,msg[4],N),t2=BigInt.multMod(t2,BigInt.powMod(msg[1],msg[2],N),N),!HLP.ZKP(6,msg[2],t1,t2))return this.abort();if(t3=HLP.multPowMod(G,msg[7],this.g3ao,msg[6],N),this.QoQ=BigInt.divMod(msg[1],this.q,N),t4=HLP.multPowMod(this.QoQ,msg[7],msg[5],msg[6],N),!HLP.ZKP(7,msg[6],t3,t4))return this.abort();this.computeR(),r7=HLP.randomExponent(),tmp2=BigInt.powMod(this.QoQ,r7,N),cR=HLP.smpHash(8,BigInt.powMod(G,r7,N),tmp2),d7=this.computeD(r7,this.a3,cR),send=HLP.packINT(3)+HLP.packMPIs([this.r,cR,d7]),send=HLP.packTLV(5,send),rab=this.computeRab(msg[5]),trust=!!BigInt.equals(rab,BigInt.divMod(msg[0],this.p,N)),this.trigger("trust",[trust,"answered"]),this.init();break;case CONST.SMPSTATE_EXPECT4:return HLP.debug.call(this,"smp tlv 5"),ms=HLP.readLen(msg.msg.substr(0,4)),3!==ms?this.abort():(msg=HLP.unpackMPIs(3,msg.msg.substring(4)),HLP.checkGroup(msg[0],N_MINUS_2)?(t3=HLP.multPowMod(G,msg[2],this.g3ao,msg[1],N),t4=HLP.multPowMod(this.QoQ,msg[2],msg[0],msg[1],N),HLP.ZKP(8,msg[1],t3,t4)?(rab=this.computeRab(msg[0]),trust=!!BigInt.equals(rab,this.PoP),this.trigger("trust",[trust,"asked"]),void this.init()):this.abort()):this.abort())}this.sendMsg(send)},SM.prototype.sendMsg=function(send){this.trigger("send",[this.ssid,"\0"+send])},SM.prototype.rcvSecret=function(secret,question){HLP.debug.call(this,"receive secret");var fn,our=!1;this.smpstate===CONST.SMPSTATE_EXPECT0?fn=this.answer:(fn=this.initiate,our=!0),this.makeSecret(our,secret),fn.call(this,question)},SM.prototype.answer=function(){HLP.debug.call(this,"smp answer");var r4=HLP.randomExponent();this.computePQ(r4);var r5=HLP.randomExponent(),r6=HLP.randomExponent(),tmp=HLP.multPowMod(G,r5,this.g2,r6,N),cP=HLP.smpHash(5,BigInt.powMod(this.g3,r5,N),tmp),d5=this.computeD(r5,r4,cP),d6=this.computeD(r6,this.secret,cP);this.smpstate=CONST.SMPSTATE_EXPECT3;var send=HLP.packINT(11)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3,this.p,this.q,cP,d5,d6]);this.sendMsg(HLP.packTLV(3,send))},SM.prototype.initiate=function(question){HLP.debug.call(this,"smp initiate"),this.smpstate!==CONST.SMPSTATE_EXPECT1&&this.abort(),this.makeG2s();var r2=HLP.randomExponent(),r3=HLP.randomExponent();this.c2=this.computeC(1,r2),this.c3=this.computeC(2,r3),this.d2=this.computeD(r2,this.a2,this.c2),this.d3=this.computeD(r3,this.a3,this.c3),this.smpstate=CONST.SMPSTATE_EXPECT2;var send="",type=2;question&&(send+=question,send+="\0",type=7),send+=HLP.packINT(6)+HLP.packMPIs([this.g2a,this.c2,this.d2,this.g3a,this.c3,this.d3]),this.sendMsg(HLP.packTLV(type,send))},SM.prototype.abort=function(){this.init(),this.sendMsg(HLP.packTLV(6,"")),this.trigger("abort")}}.call(this),function(){"use strict";function OTRCB(cb){this.cb=cb}function OTR(options){if(!(this instanceof OTR))return new OTR(options);if(options=options||{},options.priv&&!(options.priv instanceof DSA))throw new Error("Requires long-lived DSA key.");if(this.priv=options.priv?options.priv:new DSA,this.fragment_size=options.fragment_size||0,this.fragment_size<0)throw new Error("Fragment size must be a positive integer.");if(this.send_interval=options.send_interval||0,this.send_interval<0)throw new Error("Send interval must be a positive integer.");this.outgoing=[],this.our_instance_tag=options.instance_tag||OTR.makeInstanceTag(),this.debug=!!options.debug,this.smw=options.smw,this.init();var self=this;["sendMsg","receiveMsg"].forEach(function(meth){self[meth]=self[meth].bind(self)}),EventEmitter.call(this)}var CryptoJS,BigInt,EventEmitter,Worker,SMWPath,CONST,HLP,Parse,AKE,SM,DSA,root=this;"undefined"!=typeof module&&module.exports?(module.exports=OTR,CryptoJS=require("../vendor/crypto.js"),BigInt=require("../vendor/bigint.js"),EventEmitter=require("../vendor/eventemitter.js"),SMWPath=require("path").join(__dirname,"/sm-webworker.js"),CONST=require("./const.js"),HLP=require("./helpers.js"),Parse=require("./parse.js"),AKE=require("./ake.js"),SM=require("./sm.js"),DSA=require("./dsa.js"),OTR.CONST=CONST):(Object.keys(root.OTR).forEach(function(k){OTR[k]=root.OTR[k]}),root.OTR=OTR,CryptoJS=root.CryptoJS,BigInt=root.BigInt,EventEmitter=root.EventEmitter,Worker=root.Worker,SMWPath="sm-webworker.js",CONST=OTR.CONST,HLP=OTR.HLP,Parse=OTR.Parse,AKE=OTR.AKE,SM=OTR.SM,DSA=root.DSA);var G=BigInt.str2bigInt(CONST.G,10),N=BigInt.str2bigInt(CONST.N,16),MAX_INT=Math.pow(2,53)-1,MAX_UINT=Math.pow(2,31)-1;HLP.extend(OTR,EventEmitter),OTR.prototype.init=function(){this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.authstate=CONST.AUTHSTATE_NONE,this.ALLOW_V2=!0,this.ALLOW_V3=!0,this.REQUIRE_ENCRYPTION=!1,this.SEND_WHITESPACE_TAG=!1,this.WHITESPACE_START_AKE=!1,this.ERROR_START_AKE=!1,Parse.initFragment(this),this.their_y=null,this.their_old_y=null,this.their_keyid=0,this.their_priv_pk=null,this.their_instance_tag="\0\0\0\0",this.our_dh=this.dh(),this.our_old_dh=this.dh(),this.our_keyid=2,this.sessKeys=[new Array(2),new Array(2)],this.storedMgs=[],this.oldMacKeys=[],this.sm=null,this._akeInit(),this.receivedPlaintext=!1},OTR.prototype._akeInit=function(){this.ake=new AKE(this),this.transmittedRS=!1,this.ssid=null},OTR.prototype._SMW=function(otr,reqs){this.otr=otr;var opts={path:SMWPath,seed:BigInt.getSeed};"object"==typeof otr.smw&&Object.keys(otr.smw).forEach(function(k){opts[k]=otr.smw[k]}),"undefined"!=typeof module&&module.exports&&(Worker=require("webworker-threads").Worker),this.worker=new Worker(opts.path);var self=this;this.worker.onmessage=function(e){var d=e.data;d&&self.trigger(d.method,d.args)},this.worker.postMessage({type:"seed",seed:opts.seed(),imports:opts.imports}),this.worker.postMessage({type:"init",reqs:reqs})},HLP.extend(OTR.prototype._SMW,EventEmitter),["handleSM","rcvSecret","abort"].forEach(function(m){OTR.prototype._SMW.prototype[m]=function(){this.worker.postMessage({type:"method",method:m,args:Array.prototype.slice.call(arguments,0)})}}),OTR.prototype._smInit=function(){var reqs={ssid:this.ssid,our_fp:this.priv.fingerprint(),their_fp:this.their_priv_pk.fingerprint(),debug:this.debug};this.smw?(this.sm&&this.sm.worker.terminate(),this.sm=new this._SMW(this,reqs)):this.sm=new SM(reqs);var self=this;["trust","abort","question"].forEach(function(e){self.sm.on(e,function(){self.trigger("smp",[e].concat(Array.prototype.slice.call(arguments)))})}),this.sm.on("send",function(ssid,send){self.ssid===ssid&&(send=self.prepareMsg(send),self.io(send))})},OTR.prototype.io=function(msg,meta){msg=[].concat(msg).map(function(m,i,arr){var obj={msg:m};return meta instanceof OTRCB&&i!==arr.length-1||(obj.meta=meta),obj}),this.outgoing=this.outgoing.concat(msg);var self=this;!function send(first){if(!first){if(!self.outgoing.length)return;var elem=self.outgoing.shift(),cb=null;elem.meta instanceof OTRCB&&(cb=elem.meta.cb,elem.meta=null),self.trigger("io",[elem.msg,elem.meta]),cb&&cb()}setTimeout(send,first?0:self.send_interval)}(!0)},OTR.prototype.dh=function(){var keys={privateKey:BigInt.randBigInt(320)};return keys.publicKey=BigInt.powMod(G,keys.privateKey,N),keys},OTR.prototype.DHSession=function DHSession(our_dh,their_y){if(!(this instanceof DHSession))return new DHSession(our_dh,their_y);var s=BigInt.powMod(their_y,our_dh.privateKey,N),secbytes=HLP.packMPI(s);this.id=HLP.mask(HLP.h2("\0",secbytes),0,64);var sq=BigInt.greater(our_dh.publicKey,their_y),sendbyte=sq?"":"",rcvbyte=sq?"":"";this.sendenc=HLP.mask(HLP.h1(sendbyte,secbytes),0,128),this.sendmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.sendenc)),this.sendmac=this.sendmac.toString(CryptoJS.enc.Latin1),this.rcvenc=HLP.mask(HLP.h1(rcvbyte,secbytes),0,128),this.rcvmac=CryptoJS.SHA1(CryptoJS.enc.Latin1.parse(this.rcvenc)),this.rcvmac=this.rcvmac.toString(CryptoJS.enc.Latin1),this.rcvmacused=!1,this.extra_symkey=HLP.h2("ÿ",secbytes),this.send_counter=0,this.rcv_counter=0},OTR.prototype.rotateOurKeys=function(){var self=this;this.sessKeys[1].forEach(function(sk){sk&&sk.rcvmacused&&self.oldMacKeys.push(sk.rcvmac)}),this.our_old_dh=this.our_dh,this.our_dh=this.dh(),this.our_keyid+=1,this.sessKeys[1][0]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[0][1],this.sessKeys[0]=[this.their_y?new this.DHSession(this.our_dh,this.their_y):null,this.their_old_y?new this.DHSession(this.our_dh,this.their_old_y):null]},OTR.prototype.rotateTheirKeys=function(their_y){this.their_keyid+=1;var self=this;this.sessKeys.forEach(function(sk){sk[1]&&sk[1].rcvmacused&&self.oldMacKeys.push(sk[1].rcvmac)}),this.their_old_y=this.their_y,this.sessKeys[0][1]=this.sessKeys[0][0],this.sessKeys[1][1]=this.sessKeys[1][0],this.their_y=their_y,this.sessKeys[0][0]=new this.DHSession(this.our_dh,this.their_y),this.sessKeys[1][0]=new this.DHSession(this.our_old_dh,this.their_y)},OTR.prototype.prepareMsg=function(msg,esk){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||0===this.their_keyid)return this.notify("Not ready to encrypt.");var sessKeys=this.sessKeys[1][0];if(sessKeys.send_counter>=MAX_INT)return this.notify("Should have rekeyed by now.");sessKeys.send_counter+=1;var ctr=HLP.packCtr(sessKeys.send_counter),send=this.ake.otr_version+"",v3=this.ake.otr_version===CONST.OTR_VERSION_3;if(v3&&(send+=this.our_instance_tag,send+=this.their_instance_tag),send+="\0",send+=HLP.packINT(this.our_keyid-1),send+=HLP.packINT(this.their_keyid),send+=HLP.packMPI(this.our_dh.publicKey),send+=ctr.substring(0,8),Math.ceil(msg.length/8)>=MAX_UINT)return this.notify("Message is too long.");var aes=HLP.encryptAes(CryptoJS.enc.Latin1.parse(msg),sessKeys.sendenc,ctr);return send+=HLP.packData(aes),send+=HLP.make1Mac(send,sessKeys.sendmac),send+=HLP.packData(this.oldMacKeys.splice(0).join("")),send=HLP.wrapMsg(send,this.fragment_size,v3,this.our_instance_tag,this.their_instance_tag),send[0]?this.notify(send[0]):(esk&&this.trigger("file",["send",sessKeys.extra_symkey,esk]),send[1])},OTR.prototype.handleDataMsg=function(msg){var vt=msg.version+msg.type;this.ake.otr_version===CONST.OTR_VERSION_3&&(vt+=msg.instance_tags);var types=["BYTE","INT","INT","MPI","CTR","DATA","MAC","DATA"];msg=HLP.splitype(types,msg.msg);var ign=""===msg[0];if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED||8!==msg.length)return void(ign||this.error("Received an unreadable encrypted message."));var our_keyid=this.our_keyid-HLP.readLen(msg[2]),their_keyid=this.their_keyid-HLP.readLen(msg[1]);if(our_keyid<0||our_keyid>1)return void(ign||this.error("Not of our latest keys."));if(their_keyid<0||their_keyid>1)return void(ign||this.error("Not of your latest keys."));var their_y=their_keyid?this.their_old_y:this.their_y;if(1===their_keyid&&!their_y)return void(ign||this.error("Do not have that key."));var sessKeys=this.sessKeys[our_keyid][their_keyid],ctr=HLP.unpackCtr(msg[4]);if(ctr<=sessKeys.rcv_counter)return void(ign||this.error("Counter in message is not larger."));sessKeys.rcv_counter=ctr,vt+=msg.slice(0,6).join("");var vmac=HLP.make1Mac(vt,sessKeys.rcvmac);if(!HLP.compare(msg[6],vmac))return void(ign||this.error("MACs do not match."));sessKeys.rcvmacused=!0;var out=HLP.decryptAes(msg[5].substring(4),sessKeys.rcvenc,HLP.padCtr(msg[4]));out=out.toString(CryptoJS.enc.Latin1),our_keyid||this.rotateOurKeys(),their_keyid||this.rotateTheirKeys(HLP.readMPI(msg[3]));var ind=out.indexOf("\0");return~ind&&(this.handleTLVs(out.substring(ind+1),sessKeys),out=out.substring(0,ind)),out=CryptoJS.enc.Latin1.parse(out),out.toString(CryptoJS.enc.Utf8)},OTR.prototype.handleTLVs=function(tlvs,sessKeys){for(var type,len,msg;tlvs.length&&(type=HLP.unpackSHORT(tlvs.substr(0,2)),len=HLP.unpackSHORT(tlvs.substr(2,2)),msg=tlvs.substr(4,len),!(msg.length<len));){switch(type){case 1:this.msgstate=CONST.MSGSTATE_FINISHED,this.trigger("status",[CONST.STATUS_END_OTR]);break;case 2:case 3:case 4:case 5:case 6:case 7:if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return void(this.sm&&this.sm.abort());this.sm||this._smInit(),this.sm.handleSM({msg:msg,type:type});break;case 8:msg=msg.substring(4),msg=CryptoJS.enc.Latin1.parse(msg),msg=msg.toString(CryptoJS.enc.Utf8),this.trigger("file",["receive",sessKeys.extra_symkey,msg])}tlvs=tlvs.substring(4+len)}},OTR.prototype.smpSecret=function(secret,question){return this.msgstate!==CONST.MSGSTATE_ENCRYPTED?this.notify("Must be encrypted for SMP."):"string"!=typeof secret||secret.length<1?this.notify("Secret is required."):(this.sm||this._smInit(),secret=CryptoJS.enc.Utf8.parse(secret).toString(CryptoJS.enc.Latin1),question&&(question=CryptoJS.enc.Utf8.parse(question).toString(CryptoJS.enc.Latin1)),void this.sm.rcvSecret(secret,question))},OTR.prototype.sendQueryMsg=function(){var versions={},msg=CONST.OTR_TAG;this.ALLOW_V2&&(versions[2]=!0),this.ALLOW_V3&&(versions[3]=!0);var vs=Object.keys(versions);vs.length&&(msg+="v",vs.forEach(function(v){"1"!==v&&(msg+=v)}),msg+="?"),this.io(msg),this.trigger("status",[CONST.STATUS_SEND_QUERY])},OTR.prototype.sendMsg=function(msg,meta){switch((this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&(msg=CryptoJS.enc.Utf8.parse(msg),msg=msg.toString(CryptoJS.enc.Latin1)),this.msgstate){case CONST.MSGSTATE_PLAINTEXT:if(this.REQUIRE_ENCRYPTION)return this.storedMgs.push({msg:msg,meta:meta}),void this.sendQueryMsg();this.SEND_WHITESPACE_TAG&&!this.receivedPlaintext&&(msg+=CONST.WHITESPACE_TAG,this.ALLOW_V3&&(msg+=CONST.WHITESPACE_TAG_V3),this.ALLOW_V2&&(msg+=CONST.WHITESPACE_TAG_V2));break;case CONST.MSGSTATE_FINISHED:return this.storedMgs.push({msg:msg,meta:meta}),void this.notify("Message cannot be sent at this time.","warn");case CONST.MSGSTATE_ENCRYPTED:msg=this.prepareMsg(msg);break;default:throw new Error("Unknown message state.")}msg&&this.io(msg,meta)},OTR.prototype.receiveMsg=function(msg,meta){if(msg=Parse.parseMsg(this,msg)){switch(msg.cls){case"error":return void this.notify(msg.msg);case"ake":return msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags)?void this.notify("Received a message intended for a different session.","warn"):void this.ake.handleAKE(msg);case"data":if(msg.version===CONST.OTR_VERSION_3&&this.checkInstanceTags(msg.instance_tags))return void this.notify("Received a message intended for a different session.","warn");msg.msg=this.handleDataMsg(msg),msg.encrypted=!0;break;case"query":this.msgstate===CONST.MSGSTATE_ENCRYPTED&&this._akeInit(),this.doAKE(msg);break;default:(this.REQUIRE_ENCRYPTION||this.msgstate!==CONST.MSGSTATE_PLAINTEXT)&&this.notify("Received an unencrypted message.","warn"),this.receivedPlaintext=!0,this.WHITESPACE_START_AKE&&msg.ver.length>0&&this.doAKE(msg)}msg.msg&&this.trigger("ui",[msg.msg,!!msg.encrypted,meta])}},OTR.prototype.checkInstanceTags=function(it){var their_it=HLP.readLen(it.substr(0,4)),our_it=HLP.readLen(it.substr(4,4));if(our_it&&our_it!==HLP.readLen(this.our_instance_tag))return!0;if(HLP.readLen(this.their_instance_tag)){if(HLP.readLen(this.their_instance_tag)!==their_it)return!0}else{if(their_it<100)return!0;this.their_instance_tag=HLP.packINT(their_it)}},OTR.prototype.doAKE=function(msg){this.ALLOW_V3&&~msg.ver.indexOf(CONST.OTR_VERSION_3)?this.ake.initiateAKE(CONST.OTR_VERSION_3):this.ALLOW_V2&&~msg.ver.indexOf(CONST.OTR_VERSION_2)?this.ake.initiateAKE(CONST.OTR_VERSION_2):this.notify("OTR conversation requested, but no compatible protocol version found.","warn")},OTR.prototype.error=function(err){this.debug||(err="An OTR error has occurred."),this.io("?OTR Error:"+err),this.notify(err)},OTR.prototype.notify=function(err,severity){this.trigger("error",[err,severity||"error"])},OTR.prototype.sendStored=function(){var self=this;this.storedMgs.splice(0).forEach(function(elem){var msg=self.prepareMsg(elem.msg);self.io(msg,elem.meta)})},OTR.prototype.sendFile=function(filename){if(this.msgstate!==CONST.MSGSTATE_ENCRYPTED)return this.notify("Not ready to encrypt.");if(this.ake.otr_version!==CONST.OTR_VERSION_3)return this.notify("Protocol v3 required.");if(!filename)return this.notify("Please specify a filename.");var l1name=CryptoJS.enc.Utf8.parse(filename);if(l1name=l1name.toString(CryptoJS.enc.Latin1),l1name.length>=65532)return this.notify("Filename is too long.");var msg="\0";msg+="\0\b",msg+=HLP.packSHORT(4+l1name.length),msg+="\0\0\0",msg+=l1name,msg=this.prepareMsg(msg,filename),this.io(msg)},OTR.prototype.endOtr=function(cb){this.msgstate===CONST.MSGSTATE_ENCRYPTED?("function"==typeof cb&&(cb=new OTRCB(cb)),this.sendMsg("\0\0\0\0",cb),this.sm&&(this.smw&&this.sm.worker.terminate(),this.sm=null)):"function"==typeof cb&&setTimeout(cb,0),this.msgstate=CONST.MSGSTATE_PLAINTEXT,this.receivedPlaintext=!1,this.trigger("status",[CONST.STATUS_END_OTR])},OTR.makeInstanceTag=function(){var num=BigInt.randBigInt(32);return BigInt.greater(BigInt.str2bigInt("100",16),num)?OTR.makeInstanceTag():HLP.packINT(parseInt(BigInt.bigInt2str(num,10),10))}}.call(this),{OTR:this.OTR,DSA:this.DSA}}),!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,a=r.k;i[a]=o}function r(t,e,o,r){var i=n(t,e,Object),a=i.obj,s=i.k;a[s]=a[s]||[],r&&(a[s]=a[s].concat(o)),r||a[s].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function a(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):a(t[o],e[o],n):t[o]=e[o];return t}function s(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return R[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n<t.length;n++)e.push(t[n]);return{postProcess:"sprintf",sprintf:e}}),t.whitelist=t.lngWhitelist,t.preload=t.preload,"current"===t.load&&(t.load="currentOnly"),"unspecific"===t.load&&(t.load="languageOnly"),t.backend=t.backend||{},t.backend.loadPath=t.resGetPath||"locales/__lng__/__ns__.json",t.backend.addPath=t.resPostPath||"locales/add/__lng__/__ns__",t.backend.allowMultiLoading=t.dynamicLoad,t.cache=t.cache||{},t.cache.prefix="res_",t.cache.expirationTime=6048e5,t.cache.enabled=!!t.useLocalStorage,t=l(t),t.defaultVariables&&(t.interpolation.defaultVariables=t.defaultVariables),t}function p(t){return t=l(t),t.joinArrays="\n",t}function f(t){return(t.interpolationPrefix||t.interpolationSuffix||t.escapeInterpolation)&&(t=l(t)),t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,t.returnObjects=t.returnObjectTrees,t}function g(t){t.lng=function(){return C.deprecate("i18next.lng() can be replaced by i18next.language for detected language or i18next.languages for languages ordered by translation lookup."),t.services.languageUtils.toResolveHierarchy(t.language)[0]},t.preload=function(e,n){C.deprecate("i18next.preload() can be replaced with i18next.loadLanguages()"),t.loadLanguages(e,n)},t.setLng=function(e,n,o){return C.deprecate("i18next.setLng() can be replaced with i18next.changeLanguage() or i18next.getFixedT() to get a translation function with fixed language or namespace."),"function"==typeof n&&(o=n,n={}),n||(n={}),n.fixLng===!0&&o?o(null,t.getFixedT(e)):void t.changeLanguage(e,o)},t.addPostProcessor=function(e,n){C.deprecate("i18next.addPostProcessor() can be replaced by i18next.use({ type: 'postProcessor', name: 'name', process: fc })"),t.use({type:"postProcessor",name:e,process:n})}}function h(t){return t.charAt(0).toUpperCase()+t.slice(1)}function d(){var t={};return T.forEach(function(e){e.lngs.forEach(function(n){return t[n]={numbers:e.nr,plurals:H[e.fc]}})}),t}function v(t,e){for(var n=t.indexOf(e);n!==-1;)t.splice(n,1),n=t.indexOf(e)}function y(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",saveMissing:!1,saveMissingTo:"fallback",missingKeyHandler:!1,postProcess:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:function(){},parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,overloadTranslationOptionHandler:function(t){return{defaultValue:t[1]}},interpolation:{escapeValue:!0,format:function(t,e,n){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",defaultVariables:void 0}}}function b(t){return"string"==typeof t.ns&&(t.ns=[t.ns]),"string"==typeof t.fallbackLng&&(t.fallbackLng=[t.fallbackLng]),"string"==typeof t.fallbackNS&&(t.fallbackNS=[t.fallbackNS]),t.whitelist&&t.whitelist.indexOf("cimode")<0&&t.whitelist.push("cimode"),t}function m(){}var x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k=(function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};a?a=a.next=s:(i=a=s,o(t,e))})}function o(n,i){try{var a=e[n](i),s=a.value;s instanceof t?Promise.resolve(s.value).then(function(t){o("next",t)},function(t){o("throw",t)}):r(a.done?"return":"normal",a.value)}catch(t){r("throw",t)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?o(i.key,i.arg):a=null}var i,a;this._invoke=n,"function"!=typeof e.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},w=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},O=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},N=function(){function t(t,e){var n=[],o=!0,r=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(o=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);o=!0);}catch(t){r=!0,i=t}finally{try{!o&&s.return&&s.return()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),L={type:"logger",log:function(t){this._output("log",t)},warn:function(t){this._output("warn",t)},error:function(t){this._output("error",t)},_output:function(t,e){console&&console[t]&&console[t].apply(console,Array.prototype.slice.call(e))}},j=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.init(e,n)}return t.prototype.init=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=e.prefix||"i18next:",this.logger=t||L,this.options=e,this.debug=e.debug!==!1},t.prototype.setDebug=function(t){this.debug=t},t.prototype.log=function(){this.forward(arguments,"log","",!0)},t.prototype.warn=function(){this.forward(arguments,"warn","",!0)},t.prototype.error=function(){this.forward(arguments,"error","")},t.prototype.deprecate=function(){this.forward(arguments,"warn","WARNING DEPRECATED: ",!0)},t.prototype.forward=function(t,e,n,o){o&&!this.debug||("string"==typeof t[0]&&(t[0]=n+this.prefix+" "+t[0]),this.logger[e](t))},t.prototype.create=function(e){var n=new t(this.logger,S({prefix:this.prefix+":"+e+":"},this.options));return n},t}(),C=new j,P=function(){function t(){k(this,t),this.observers={}}return t.prototype.on=function(t,e){var n=this;t.split(" ").forEach(function(t){n.observers[t]=n.observers[t]||[],n.observers[t].push(e)})},t.prototype.off=function(t,e){var n=this;this.observers[t]&&this.observers[t].forEach(function(){if(e){var o=n.observers[t].indexOf(e);o>-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];this.observers[t]&&this.observers[t].forEach(function(t){t.apply(void 0,n)}),this.observers["*"]&&this.observers["*"].forEach(function(e){var o;e.apply(e,(o=[t]).concat.apply(o,n))})},t}(),R={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},E=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};k(this,e);var r=O(this,t.call(this));return r.data=n,r.options=o,r}return w(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var a=[t,e];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(a=t.split(".")),i(this.data,a)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,e];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(s=t.split("."),r=e,e=s[1]),this.addNamespaces(e),o(this.data,s,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,s){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?a(l,n,s):l=S({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?S({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(P),_={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},A=function(t){function n(o){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,n);var i=O(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=C.create("translator"),i}return w(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!==("undefined"==typeof e?"undefined":x(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,a=r.namespaces,s=a[a.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";
+var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,S({joinArrays:!1,ns:a},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,s,i,u);var y=[],b=this.languageUtils.getFallbackCodes(this.options.fallbackLng,e.lng||this.language);if("fallback"===this.options.saveMissingTo&&b&&b[0])for(var m=0;m<b.length;m++)y.push(b[m]);else"all"===this.options.saveMissingTo?y=this.languageUtils.toResolveHierarchy(e.lng||this.language):y.push(e.lng||this.language);this.options.saveMissing&&(this.options.missingKeyHandler?this.options.missingKeyHandler(y,s,i,u):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(y,s,i,u)),this.emit("missingKey",y,s,i,u)}u=this.extendTranslation(u,i,e),v&&u===i&&this.options.appendNamespaceToMissingKey&&(u=s+":"+i),v&&this.options.parseMissingKeyHandler&&(u=this.options.parseMissingKeyHandler(u))}return u},n.prototype.extendTranslation=function(t,e,n){var o=this;n.interpolation&&this.interpolator.init(S({},n,{interpolation:S({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=S({},this.options.interpolation.defaultVariables,r)),t=this.interpolator.interpolate(t,r,this.language),t=this.interpolator.nest(t,function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return o.translate.apply(o,e)},n),n.interpolation&&this.interpolator.reset();var i=n.postProcess||this.options.postProcess,a="string"==typeof i?[i]:i;return void 0!==t&&a&&a.length&&n.applyPostProcessor!==!1&&(t=_.handle(a,t,e,n,this)),t},n.prototype.resolve=function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=void 0;return"string"==typeof t&&(t=[t]),t.forEach(function(t){if(!e.isValidLookup(o)){var r=e.extractFromKey(t,n),i=r.key,a=r.namespaces;e.options.fallbackNS&&(a=a.concat(e.options.fallbackNS));var s=void 0!==n.count&&"string"!=typeof n.count,u=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,l=n.lngs?n.lngs:e.languageUtils.toResolveHierarchy(n.lng||e.language);a.forEach(function(t){e.isValidLookup(o)||l.forEach(function(r){if(!e.isValidLookup(o)){var a=i,l=[a],c=void 0;s&&(c=e.pluralResolver.getSuffix(r,n.count)),s&&u&&l.push(a+c),u&&l.push(a+=""+e.options.contextSeparator+n.context),s&&l.push(a+=c);for(var p=void 0;p=l.pop();)e.isValidLookup(o)||(o=e.getResource(r,t,p,n))}})})}}),o},n.prototype.isValidLookup=function(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)},n.prototype.getResource=function(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.resourceStore.getResource(t,e,n,o)},n}(P),M=function(){function t(e){k(this,t),this.options=e,this.whitelist=this.options.whitelist||!1,this.logger=C.create("languageUtils")}return t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.getScriptPartFromCode=function(t){if(t.indexOf("-")<0)return null;var e=t.split("-");return 2===e.length?null:(e.pop(),this.formatLanguageCode(e.join("-")))},t.prototype.getLanguagePartFromCode=function(t){if(t.indexOf("-")<0)return t;var e=["NB-NO","NN-NO","nb-NO","nn-NO","nb-no","nn-no"],n=t.split("-");return this.formatLanguageCode(e.indexOf(t)>-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.getFallbackCodes=function(t,e){if(!t)return[];if("string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;var n=t[e];return n||(n=t[this.getScriptPartFromCode(e)]),n||(n=t[this.formatLanguageCode(e)]),n||(n=t.default),n||[]},t.prototype.toResolveHierarchy=function(t,e){var n=this,o=this.getFallbackCodes(e||this.options.fallbackLng||[],t),r=[],i=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(n.isWhitelisted(t,e)?r.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(t),!0),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(t),!0),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(t))):"string"==typeof t&&i(this.formatLanguageCode(t)),o.forEach(function(t){r.indexOf(t)<0&&i(n.formatLanguageCode(t))}),r},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],H={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},U=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};k(this,t),this.languageUtils=e,this.options=n,this.logger=C.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":x(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};k(this,e),this.logger=C.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t},this.escape=t.interpolation&&t.interpolation.escape||u),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.prefix=n.prefix?s(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?s(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?s(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?s(n.nestingPrefix):n.nestingPrefixEscaped||s("$t("),this.nestingSuffix=n.nestingSuffix?s(n.nestingSuffix):n.nestingSuffixEscaped||s(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var a=this,s=void 0,u=void 0,l=function(t){if(t.indexOf(a.formatSeparator)<0)return i(n,t);var e=t.split(a.formatSeparator),r=e.shift().trim(),s=e.join(a.formatSeparator).trim();return a.format(i(n,r),s,o)};for(this.resetRegExp();s=this.regexpUnescape.exec(e);){var c=l(s[1].trim());e=e.replace(s[0],c),this.regexpUnescape.lastIndex=0}for(;s=this.regexp.exec(e);)u=l(s[1].trim()),"string"!=typeof u&&(u=t(u)),u||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),u=""),u=r(this.escapeValue?this.escape(u):u),e=e.replace(s[0],u),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,s),n=n.replace(/'/g,'"');try{s=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=void 0,a=void 0,s=JSON.parse(JSON.stringify(r));for(s.applyPostProcessor=!1;i=this.nestingRegexp.exec(e);)a=n(o.call(this,i[1].trim()),s),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+i[1]+" for interpolating "+e),a=""),e=e.replace(i[0],a),this.regexp.lastIndex=0;return e},e}(),F=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.backend=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(r,i.backend,i),a}return w(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],a=[],s=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var a=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[a]=2:o.state[a]<0||(1===o.state[a]?i.indexOf(a)<0&&i.push(a):(o.state[a]=1,n=!1,i.indexOf(a)<0&&i.push(a),r.indexOf(a)<0&&r.push(a),s.indexOf(e)<0&&s.push(e)))}),n||a.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:a,toLoadNamespaces:s}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),a=N(i,2),s=a[0],u=a[1];e&&this.emit("failedLoading",s,u,e),n&&this.store.addResourceBundle(s,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[s],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(o.emit("loaded",n.loaded),n.errors.length?n.callback(n.errors):n.callback(),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var a=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(s,u){return s&&u&&o<5?void setTimeout(function(){a.read.call(a,t,e,n,++o,2*r,i)},r):void i(s,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var a=this.queueLoad(t,e,n);return a.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(a.toLoadLanguages,a.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+a.toLoadNamespaces.join(", ")+" for languages "+a.toLoadLanguages.join(", ")+" via multiloading",e),a.toLoad.forEach(function(n){var r=n.split("|"),a=N(r,2),s=a[0],u=a[1],l=i(e,[s,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+s+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};a.toLoad.forEach(function(e){t.call(o,e)})}()):void(a.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=S({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var a=i(r,[t,e]);if(a)n.loaded(t+"|"+e,o,a);else{var s="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,s),n.logger.error(s)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=N(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(P),I=function(t){function e(n,o,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};k(this,e);var a=O(this,t.call(this));return a.cache=n,a.store=o,a.services=r,a.options=i,a.logger=C.create("cacheConnector"),a.cache&&a.cache.init&&a.cache.init(r,i.cache,i),a}return w(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=S({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var a in r[i])if("i18nStamp"!==a){var s=r[i][a];s&&o.store.addResourceBundle(i,a,s)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(P),K=function(t){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments[1];k(this,e);var r=O(this,t.call(this));return r.options=b(n),r.services={},r.logger=C,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return w(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=S({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=S({},y(),b(p(t)),{}):this.options=S({},y(),this.options,b(t)),e||(e=m),!this.options.isClone){this.modules.logger?C.init(n(this.modules.logger),this.options):C.init(null,this.options);var r=new M(this.options);this.store=new E(this.options.resources,this.options);var i=this.services;i.logger=C,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new U(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new F(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),i.backendConnector.on("loaded",function(t){i.cacheConnector.save()}),i.cacheConnector=new I(n(this.modules.cache),i.resourceStore,i,this.options),i.cacheConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))}),this.modules.languageDetector&&(i.languageDetector=n(this.modules.languageDetector),i.languageDetector.init(i,this.options.detection,this.options)),this.translator=new A(this.services,this.options),this.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];o.emit.apply(o,[t].concat(n))})}var a=["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle"];a.forEach(function(t){o[t]=function(){return this.store[t].apply(this.store,arguments)}}),"v1"===this.options.compatibilityAPI&&g(this);var s=function(){o.changeLanguage(o.options.lng,function(t,n){o.isInitialized=!0,o.emit("initialized",o.options),o.logger.log("initialized",o.options),e(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),this},e.prototype.loadResources=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;if(this.options.resources)e(null);else{var n=function(){if(t.language&&"cimode"===t.language.toLowerCase())return{v:e()};var n=[],o=function(e){var o=t.services.languageUtils.toResolveHierarchy(e);o.forEach(function(t){n.indexOf(t)<0&&n.push(t)})};o(t.language),t.options.preload&&t.options.preload.forEach(function(t){o(t)}),t.services.cacheConnector.load(n,t.options.ns,function(){t.services.backendConnector.load(n,t.options.ns,e)})}();if("object"===("undefined"==typeof n?"undefined":x(n)))return n.v}},e.prototype.reloadResources=function(t,e){t||(t=this.languages),e||(e=this.options.ns),this.services.backendConnector.reload(t,e)},e.prototype.use=function(t){return"backend"===t.type&&(this.modules.backend=t),"cache"===t.type&&(this.modules.cache=t),("logger"===t.type||t.log&&t.warn&&t.warn)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"postProcessor"===t.type&&_.addPostProcessor(t),this},e.prototype.changeLanguage=function(t,e){var n=this,o=function(o){t&&(n.emit("languageChanged",t),n.logger.log("languageChanged",t)),e&&e(o,function(){for(var t=arguments.length,e=Array(t),o=0;o<t;o++)e[o]=arguments[o];return n.t.apply(n,e)})};!t&&this.services.languageDetector&&(t=this.services.languageDetector.detect()),t&&(this.language=t,this.languages=this.services.languageUtils.toResolveHierarchy(t),this.translator.changeLanguage(t),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage(t)),this.loadResources(function(t){o(t)})},e.prototype.getFixedT=function(t,e){var n=this,o=function t(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=S({},o);return r.lng=r.lng||t.lng,r.ns=r.ns||t.ns,n.t(e,r)};return o.lng=t,o.ns=e,o},e.prototype.t=function(){return this.translator&&this.translator.translate.apply(this.translator,arguments)},e.prototype.exists=function(){return this.translator&&this.translator.exists.apply(this.translator,arguments)},e.prototype.setDefaultNamespace=function(t){this.options.defaultNS=t},e.prototype.loadNamespaces=function(t,e){var n=this;return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach(function(t){n.options.ns.indexOf(t)<0&&n.options.ns.push(t)}),void this.loadResources(e)):e&&e()},e.prototype.loadLanguages=function(t,e){"string"==typeof t&&(t=[t]);var n=this.options.preload||[],o=t.filter(function(t){return n.indexOf(t)<0});return o.length?(this.options.preload=n.concat(o),void this.loadResources(e)):e()},e.prototype.dir=function(t){if(t||(t=this.language),!t)return"rtl";var e=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"];return e.indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m,r=new e(S({},n,this.options,{isClone:!0}),o),i=["store","services","language"];return i.forEach(function(e){r[e]=t[e]}),r.translator=new A(r.services,r.options),r.translator.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];r.emit.apply(r,[t].concat(n))}),r},e}(P),D=new K;return D}),!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.jqueryI18next=e()}(this,function(){"use strict";function t(t,a){function i(n,a,i){function r(t,n){return f.parseDefaultValueFromContent?e({},t,{defaultValue:n}):t}if(0!==a.length){var o="text";if(0===a.indexOf("[")){var l=a.split("]");a=l[1],o=l[0].substr(1,l[0].length-1)}if(a.indexOf(";")===a.length-1&&(a=a.substr(0,a.length-2)),"html"===o)n.html(t.t(a,r(i,n.html())));else if("text"===o)n.text(t.t(a,r(i,n.text())));else if("prepend"===o)n.prepend(t.t(a,r(i,n.html())));else if("append"===o)n.append(t.t(a,r(i,n.html())));else if(0===o.indexOf("data-")){var s=o.substr("data-".length),d=t.t(a,r(i,n.data(s)));n.data(s,d),n.attr(o,d)}else n.attr(o,t.t(a,r(i,n.attr(o))))}}function r(t,n){var r=t.attr(f.selectorAttr);if(r||"undefined"==typeof r||r===!1||(r=t.text()||t.val()),r){var o=t,l=t.data(f.targetAttr);if(l&&(o=t.find(l)||t),n||f.useOptionsAttr!==!0||(n=t.data(f.optionsAttr)),n=n||{},r.indexOf(";")>=0){var s=r.split(";");a.each(s,function(t,e){""!==e&&i(o,e,n)})}else i(o,r,n);if(f.useOptionsAttr===!0){var d={};d=e({clone:d},n),delete d.lng,t.data(f.optionsAttr,d)}}}function o(t){return this.each(function(){r(a(this),t);var e=a(this).find("["+f.selectorAttr+"]");e.each(function(){r(a(this),t)})})}var f=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f=e({},n,f),a[f.tName]=t.t.bind(t),a[f.i18nName]=t,a.fn[f.handleName]=o}var e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},n={tName:"t",i18nName:"i18n",handleName:"localize",selectorAttr:"data-i18n",targetAttr:"i18n-target",optionsAttr:"i18n-options",useOptionsAttr:!1,parseDefaultValueFromContent:!0},a={init:t};return a}),!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=!!b.st[d]&&b.st[d].markup;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;
+if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return!!b.currItem.hasSize&&b.currItem.img},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,!(!c||!c.enabled)&&(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null}))},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});var I18next={bg:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"bn-BD":{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},de:{translation:{Logging_in:"Login läuft…",your_connection_is_unencrypted:"Deine Verbindung ist unverschlüsselt.",your_connection_is_encrypted:"Deine Verbindung ist verschlüsselt.",your_buddy_closed_the_private_connection:"Dein Kontakt hat die private Verbindung getrennt.",start_private:"Privat starten",close_private:"Privat abbrechen",your_buddy_is_verificated:"Dein Kontakt ist verifiziert.",you_have_only_a_subscription_in_one_way:"Der Kontaktstatus ist einseitig.",authentication_query_sent:"Authentifizierungsanfrage gesendet.",your_message_wasnt_send_please_end_your_private_conversation:"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.",unencrypted_message_received:"Unverschlüsselte Nachricht erhalten.",not_available:"Nicht verfügbar.",no_connection:"Keine Verbindung.",relogin:"Neu anmelden.",trying_to_start_private_conversation:"Versuche private Konversation zu starten.",Verified:"Verifiziert",Unverified:"Unverifiziert",private_conversation_aborted:"Private Konversation abgebrochen.",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!",conversation_is_now_verified:"Konversation ist jetzt verifiziert",authentication_failed:"Authentifizierung fehlgeschlagen.",Creating_your_private_key_:"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.",Authenticating_a_buddy_helps_:"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.",How_do_you_want_to_authenticate_your_buddy:"Wie willst du __bid_name__ (<b>__bid_jid__</b>) authentifizieren?",Select_method:"Wähle...",Manual:"Manual",Question:"Frage",Secret:"Geheimnis",To_verify_the_fingerprint_:"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.",Your_fingerprint:"Dein Fingerprint",Buddy_fingerprint:"Sein/Ihr Fingerprint",Close:"Schließen",Compared:"Verglichen",To_authenticate_using_a_question_:"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.",Ask:"Frage",To_authenticate_pick_a_secret_:"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.",Compare:"Vergleiche",Fingerprints:"Fingerprints",Authentication:"Authentifizierung",Message:"Nachricht",Add_buddy:"Kontakt hinzufügen",rename_buddy:"Kontakt umbenennen",delete_buddy:"Kontakt löschen",Login:"Anmeldung",Username:"Benutzername",Password:"Passwort",Cancel:"Abbrechen",Connect:"Verbinden",Type_in_the_full_username_:"Gib bitte den vollen Benutzernamen und optional ein Alias an.",Alias:"Alias",Add:"Hinzufügen",Subscription_request:"Kontaktanfrage",You_have_a_request_from:"Du hast eine Anfrage von",Deny:"Ablehnen",Approve:"Bestätigen",Remove_buddy:"Kontakt entfernen",You_are_about_to_remove_:"Du bist gerade dabei __bid_name__ (<b>__bid_jid__</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.",Continue_without_chat:"Weiter ohne Chat",Please_wait:"Bitte warten",Login_failed:"Chat-Anmeldung fehlgeschlagen",Sorry_we_cant_authentikate_:"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?",Retry:"Zurück",clear_history:"Lösche Verlauf",New_message_from:"Neue Nachricht von __name__",Should_we_notify_you_:"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?",Please_accept_:'Bitte klick auf den "Zulassen" Button oben.',Hide_offline:"Offline ausblenden",Show_offline:"Offline einblenden",About:"Über",dnd:"Beschäftigt",Mute:"Ton aus",Unmute:"Ton an",Subscription:"Bezug",both:"beidseitig",Status:"Status",online:"online",chat:"chat",away:"abwesend",xa:"länger abwesend",offline:"offline",none:"keine",Unknown_instance_tag:"Unbekannter instance tag.",Not_one_of_our_latest_keys:"Nicht einer unserer letzten Schlüssel.",Received_an_unreadable_encrypted_message:"Eine unlesbare verschlüsselte Nachricht erhalten.",Online:"Online",Chatty:"Gesprächig",Away:"Abwesend",Extended_away:"Länger abwesend",Offline:"Offline",Friendship_request:"Kontaktanfrage",Confirm:"Bestätigen",Dismiss:"Ablehnen",Remove:"Löschen",Online_help:"Online Hilfe",FN:"Name",N:" ",FAMILY:"Familienname",GIVEN:"Vorname",NICKNAME:"Spitzname",URL:"URL",ADR:"Adresse",STREET:"Straße",EXTADD:"Zusätzliche Adresse",LOCALITY:"Ortschaft",REGION:"Region",PCODE:"Postleitzahl",CTRY:"Land",TEL:"Telefon",NUMBER:"Nummer",EMAIL:"E-Mail",USERID:" ",ORG:"Organisation",ORGNAME:"Name",ORGUNIT:"Abteilung",TITLE:"Titel",ROLE:"Rolle",BDAY:"Geburtstag",DESC:"Beschreibung",PHOTO:" ",send_message:"Sende Nachricht",get_info:"Benutzerinformationen",Settings:"Einstellungen",Priority:"Priorität",Save:"Speichern",User_settings:"Benutzereinstellungen",A_fingerprint_:"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.",is:"ist",Login_options:"Anmeldeoptionen",BOSH_url:"BOSH url",Domain:"Domain",Resource:"Ressource",On_login:"Beim Anmelden",Received_an_unencrypted_message:"Unverschlüsselte Nachricht empfangen",Sorry_your_buddy_doesnt_provide_any_information:"Dein Kontakt stellt leider keine Informationen bereit.",Info_about:"Info über",Authentication_aborted:"Authentifizierung abgebrochen.",Authentication_request_received:"Authentifizierungsanfrage empfangen.",Log_in_without_chat:"Anmelden ohne Chat",has_come_online:"ist online gekommen",Unknown_sender:"Unbekannter Sender",Please_allow_access_to_microphone_and_camera:'Bitte klick auf den "Zulassen" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.',Incoming_call:"Eingehender Anruf",from:"von",Do_you_want_to_accept_the_call_from:"Möchtest Du den Anruf annehmen von",Reject:"Ablehnen",Accept:"Annehmen",hang_up:"Auflegen",snapshot:"Schnappschuss",mute_my_audio:"Mein Ton aus",pause_my_video:"Mein Video pausieren",fullscreen:"Vollbild",Info:"Info",Local_IP:"Lokale IP",Remote_IP:"Remote IP",Local_Fingerprint:"Lokaler Fingerprint",Remote_Fingerprint:"Remote Fingerprint",Video_call_not_possible:"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.",Start_video_call:"Starte Videoanruf",Join_chat:"Gruppe beitreten",Join:"Betreten",Room:"Gruppe",Nickname:"Nickname",left_the_building:"__nickname__ hat die Gruppe verlassen",entered_the_room:"__nickname__ ist der Gruppe beigetreten",is_now_known_as:"__oldNickname__ ist nun unter __newNickname__ bekannt",This_room_is:"Diese Gruppe ist",muc_hidden:{keyword:"versteckt",description:"kann durch die Suche nicht gefunden werden"},muc_membersonly:{keyword:"nur für Mitglieder",description:"du musst auf der Mitgliederliste stehen"},muc_moderated:{keyword:"moderiert",
+description:'Nur Personen die "Mitspracherecht" haben dürfen Nachrichten senden'},muc_nonanonymous:{keyword:"nicht anonym",description:"deine Jabber ID wird für alle Mitglieder sichtbar sein"},muc_open:{keyword:"offen",description:"jeder darf dieser Gruppe beitreten"},muc_passwordprotected:{keyword:"passwortgeschützt",description:"du benötigst das korrekte Passwort"},muc_persistent:{keyword:"permanent",description:"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_public:{keyword:"öffentlich",description:"kann durch die Suche gefunden werden"},muc_semianonymous:{keyword:"teilweise anonym",description:"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},muc_temporary:{keyword:"temporär",description:"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},muc_unmoderated:{keyword:"nicht moderiert",description:"jeder darf Nachrichten senden"},muc_unsecured:{keyword:"ungesichert",description:"es wird kein Passwort benötigt"},Continue:"Weiter",Server:"Server",Rooms_are_loaded:"Gruppen werden geladen",Could_load_only:"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden",muc_explanation:"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten",You_already_joined_this_room:"Du bist dieser Gruppe bereits beigetreten",This_room_will_be_closed:"Diese Gruppe wird geschlossen",Room_not_found_:"Es wird eine neue Gruppe erstellt",Loading_room_information:"Informationen über Gruppe werden geladen",Destroy:"Auflösen",Leave:"Verlassen",changed_subject_to:"__nickname__ hat das Thema auf __subject__ geändert",muc_removed_kicked:"Du wurdest aus der Gruppe entfernt",muc_removed_info_kicked:"__nickname__ wurde aus der Gruppe entfernt",muc_removed_banned:"Du wurdest aus der Gruppe ausgeschlossen",muc_removed_info_banned:"__nickname__ wurde aus der Gruppe ausgeschlossen",muc_removed_affiliation:"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus",muc_removed_info_affiliation:"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus",muc_removed_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt",muc_removed_info_membersonly:"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt",muc_removed_shutdown:"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird",Reason:"Grund",message_not_send:"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert",message_not_send_forbidden:'Deine Nachricht wurde nicht versandt, da du kein "Mitspracherecht" hast',"message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist",This_room_has_been_closed:"Diese Gruppe wurde geschlossen",Room_logging_is_enabled:"Gesprächsverlauf kann öffentlich einsehbar sein",A_password_is_required:"Es wird ein Passwort benötigt",You_are_not_on_the_member_list:"Du bist kein eingetragenes Mitglied",You_are_banned_from_this_room:"Du wurdest von dieser Gruppe ausgeschlossen",Your_desired_nickname_:"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.",The_maximum_number_:"Die maximale Anzahl der Mitglieder wurde erreicht.",This_room_is_locked_:"Diese Gruppe ist gesperrt",You_are_not_allowed_to_create_:"Du darfst keine neue Gruppe erstellen",Alert:"Alarm",Call_started:"Anruf gestarted",Call_terminated:"Anruf beendet",Carbon_copy:"Kopie",Enable:"Aktivieren",jingle_reason_busy:"beschäftigt",jingle_reason_decline:"abgelehnt",jingle_reason_success:"aufgelegt",Media_failure:"Gerätefehler",No_local_audio_device:"Kein eigenes Audio Gerät",No_local_video_device:"Keine eigene Webcam",Ok:"Ok",PermissionDeniedError:"Du oder dein Browser haben die Audio/Video Berechtigung verweigert",Use_local_audio_device:"Nutze eigenes Audio Gerät",Use_local_video_device:"Benutze eigene Webcam",is_:"ist __status__",You_received_a_message_from_an_unknown_sender_:"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?",Your_roster_is_empty_add_:"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>",onsmp_explanation_question:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.",onsmp_explanation_secret:"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.",from_sender:"von __sender__",Verified_private_conversation_started:"Verifizierte private Konversation gestartet.",Unverified_private_conversation_started:"Unverifizierte private Konversation gestartet.",Bookmark:"Lesezeichen","Auto-join":"Automatisch beitreten",Edit_bookmark:"Lesezeichen bearbeiten",Room_logging_is_disabled:"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym",Do_you_want_to_change_the_default_room_configuration:"Möchtest du die Gruppenkonfiguration ändern?",Default:"Standard",Change:"Ändern",Send_file:"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.",_is_composing:" tippt gerade...",_are_composing:" tippen gerade...",Chat_state_notifications:"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?",Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:"Schließe alle"}},el:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},en:{translation:{Logging_in:"Logging in…",your_connection_is_unencrypted:"Your connection is unencrypted.",your_connection_is_encrypted:"Your connection is encrypted.",your_buddy_closed_the_private_connection:"Your contact closed the private connection.",start_private:"Start private",close_private:"Close private",your_buddy_is_verificated:"Your contact is verified.",you_have_only_a_subscription_in_one_way:"You only have a one-way subscription.",authentication_query_sent:"Authentication query sent.",your_message_wasnt_send_please_end_your_private_conversation:"Your message was not sent. Please end your private conversation.",unencrypted_message_received:"Unencrypted message received",not_available:"Not available",no_connection:"No connection!",relogin:"relogin",trying_to_start_private_conversation:"Trying to start private conversation!",Verified:"Verified",Unverified:"Unverified",private_conversation_aborted:"Private conversation aborted!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Your contact closed the private conversation! You should do the same.",conversation_is_now_verified:"Conversation is now verified.",authentication_failed:"Authentication failed.",Creating_your_private_key_:"Creating your private key; this may take a while.",Authenticating_a_buddy_helps_:"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.",How_do_you_want_to_authenticate_your_buddy:"How do you want to authenticate __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Select method...",Manual:"Manual",Question:"Question",Secret:"Secret",To_verify_the_fingerprint_:"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.",Your_fingerprint:"Your fingerprint",Buddy_fingerprint:"Contact fingerprint",Close:"Close",Compared:"Compared",To_authenticate_using_a_question_:"To authenticate using a question, pick a question whose answer is known only you and your contact.",Ask:"Ask",To_authenticate_pick_a_secret_:"To authenticate, pick a secret known only to you and your contact.",Compare:"Compare",Fingerprints:"Fingerprints",Authentication:"Authentication",Message:"Message",Add_buddy:"Add contact",rename_buddy:"rename contact",delete_buddy:"delete contact",Login:"Login",Username:"Username",Password:"Password",Cancel:"Cancel",Connect:"Connect",Type_in_the_full_username_:"Type in the full username and an optional alias.",Alias:"Alias",Add:"Add",Subscription_request:"Subscription request",You_have_a_request_from:"You have a request from",Deny:"Deny",Approve:"Approve",Remove_buddy:"Remove contact",You_are_about_to_remove_:"You are about to remove __bid_name__ (<b>__bid_jid__</b>) from your contact list. All related chats will be closed.",Continue_without_chat:"Continue without chat",Please_wait:"Please wait",Login_failed:"Chat login failed",Sorry_we_cant_authentikate_:"Authentication failed with the chat server. Maybe the password is wrong?",Retry:"Back",clear_history:"Clear history",New_message_from:"New message from __name__",Should_we_notify_you_:"Should we notify you about new messages in the future?",Please_accept_:'Please click the "Allow" button at the top.',Hide_offline:"Hide offline contacts",Show_offline:"Show offline contacts",About:"About",dnd:"Do Not Disturb",Mute:"Mute",Unmute:"Unmute",Subscription:"Subscription",both:"both",Status:"Status",online:"online",chat:"chat",away:"away",xa:"extended away",offline:"offline",none:"none",Unknown_instance_tag:"Unknown instance tag.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Received an unreadable encrypted message.",Online:"Online",Chatty:"Chatty",Away:"Away",Extended_away:"Extended away",Offline:"Offline",Friendship_request:"Contact request",Confirm:"Confirm",Dismiss:"Dismiss",Remove:"Remove",Online_help:"Online help",FN:"Full name",N:" ",FAMILY:"Family name",GIVEN:"Given name",NICKNAME:"Nickname",URL:"URL",ADR:"Address",STREET:"Street Address",EXTADD:"Extended Address",LOCALITY:"Locality",REGION:"Region",PCODE:"Postal Code",CTRY:"Country",TEL:"Telephone",NUMBER:"Number",EMAIL:"Email",USERID:" ",ORG:"Organization",ORGNAME:"Name",ORGUNIT:"Unit",TITLE:"Job title",ROLE:"Role",BDAY:"Birthday",DESC:"Description",PHOTO:" ",send_message:"Send message",get_info:"Show information",Settings:"Settings",Priority:"Priority",Save:"Save",User_settings:"User settings",A_fingerprint_:"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.",is:"is",Login_options:"Login options",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Resource",On_login:"On login",Received_an_unencrypted_message:"Received an unencrypted message",Sorry_your_buddy_doesnt_provide_any_information:"Sorry, your contact does not provide any information.",Info_about:"Info about",Authentication_aborted:"Authentication aborted.",Authentication_request_received:"Authentication request received.",Log_in_without_chat:"Log in without chat",has_come_online:"has come online",Unknown_sender:"Unknown sender",Please_allow_access_to_microphone_and_camera:'Please click the "Allow" button at the top, to allow access to microphone and camera.',Incoming_call:"Incoming call",from:"from",Do_you_want_to_accept_the_call_from:"Do you want to accept the call from",Reject:"Reject",Accept:"Accept",hang_up:"hang up",snapshot:"snapshot",mute_my_audio:"mute my audio",pause_my_video:"pause my video",fullscreen:"fullscreen",Info:"Info",Local_IP:"Local IP",Remote_IP:"Remote IP",Local_Fingerprint:"Local fingerprint",Remote_Fingerprint:"Remote fingerprint",Video_call_not_possible:"Video call not possible. Your contact does not support video calls.",Start_video_call:"Start video call",Join_chat:"Join chat",Join:"Join",Room:"Room",Nickname:"Nickname",left_the_building:"__nickname__ left the building",entered_the_room:"__nickname__ entered the room",is_now_known_as:"__oldNickname__ is now known as __newNickname__",This_room_is:"This room is",muc_hidden:{keyword:"hidden",description:"can not be found through search"},muc_membersonly:{keyword:"members-only",description:"you need to be on the member list"},muc_moderated:{keyword:"moderated",description:'only persons with "voice" are allowed to send messages'},muc_nonanonymous:{keyword:"non-anonymous",description:"your jabber id is exposed to all other occupants"},muc_open:{keyword:"open",description:"everyone is allowed to join"},muc_passwordprotected:{keyword:"password-protected",description:"you need to provide the correct password"},muc_persistent:{keyword:"persistent",description:"will not be destroyed if the last occupant left"},muc_public:{keyword:"public",description:"can be found through search"},muc_semianonymous:{keyword:"semi-anonymous",description:"your jabber id is only exposed to room admins"},muc_temporary:{keyword:"temporary",description:"will be destroyed if the last occupant left"},muc_unmoderated:{keyword:"unmoderated",description:"everyone is allowed to send messages"},muc_unsecured:{keyword:"unsecured",description:"you need no password to enter"},Continue:"Continue",Server:"Server",Rooms_are_loaded:"Rooms are loaded",Could_load_only:"Could load only __count__ rooms for autocomplete",muc_explanation:"Please enter room name and optional a nickname and password to join a chat",You_already_joined_this_room:"You already joined this room",This_room_will_be_closed:"This room will be closed",Room_not_found_:"A new room will be created",Loading_room_information:"Loading room information",Destroy:"Destroy",Leave:"Leave",changed_subject_to:'__nickname__ changed the room subject to "__subject__"',muc_removed_kicked:"You have been kicked from the room",muc_removed_info_kicked:"__nickname__ has been kicked from the room",muc_removed_banned:"You have been banned from the room",muc_removed_info_banned:"__nickname__ has been banned from the room",muc_removed_affiliation:"You have been removed from the room, because of an affiliation change",muc_removed_info_affiliation:"__nickname__ has been removed from the room, because of an affiliation change",muc_removed_membersonly:"You have been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_info_membersonly:"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member",muc_removed_shutdown:"You have been removed from the room, because the MUC service is being shut down",Reason:"Reason",message_not_send:"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist",message_not_send_forbidden:"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room",This_room_has_been_closed:"This room has been closed",Room_logging_is_enabled:"Room logging is enabled",A_password_is_required:"A password is required",You_are_not_on_the_member_list:"You are not on the member list",You_are_banned_from_this_room:"You are banned from this room",Your_desired_nickname_:"Your desired nickname is already in use. Please choose another",The_maximum_number_:"The maximum number of user is reached in this room",This_room_is_locked_:"This room is locked",You_are_not_allowed_to_create_:"You are not allowed to create a room",Alert:"Alert",Call_started:"Call started",Call_terminated:"Call terminated",Carbon_copy:"Carbon copy",Enable:"Enable",jingle_reason_busy:"busy",jingle_reason_decline:"decline",jingle_reason_success:"hung up",Media_failure:"Media failure",No_local_audio_device:"No local audio device.",No_local_video_device:"No local video device.",Ok:"Ok",PermissionDeniedError:"You or your browser denied media permission",Use_local_audio_device:"Use local audio device.",Use_local_video_device:"Use local video device.",is_:"is __status__",You_received_a_message_from_an_unknown_sender_:"You received a message from an unknown sender (__sender__) Do you want to display them?",Your_roster_is_empty_add_:"Your roster is empty, add a <a>new contact</a>",onsmp_explanation_question:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.",onsmp_explanation_secret:"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.",from_sender:"from __sender__",Verified_private_conversation_started:"Verified Private conversation started.",Unverified_private_conversation_started:"Unverified Private conversation started.",Bookmark:"Bookmark","Auto-join":"Auto-join",Edit_bookmark:"Edit bookmark",Room_logging_is_disabled:"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous",Do_you_want_to_change_the_default_room_configuration:"Do you want to change the default room configuration?",Default:"Default",Change:"Change",Send_file:"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.",_is_composing:" is composing...",_are_composing:" are composing...",Chat_state_notifications:"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?",Share_screen:"Share screen",Incoming_stream:"Incoming stream",Stream_started:"Stream started",HTTPS_REQUIRED:"This action requires an encrypted connection.",EXTENSION_UNAVAILABLE:"You need a browser extension/addon.",UNKNOWN_ERROR:"An unknown error occured.",Install_extension:"Please install the extension in order to use screen sharing: ",Connection_accepted:"Connection accepted",Stream_terminated:"Stream terminated",Close_all:"Close all",Notification:"Notification"}},es:{translation:{Logging_in:"Por favor, espere...",your_connection_is_unencrypted:"Su conexión no está cifrada.",your_connection_is_encrypted:"Su conexión está cifrada.",your_buddy_closed_the_private_connection:"Su amigo ha cerrado la conexión privada.",start_private:"Iniciar privado",close_private:"Cerrar privado",your_buddy_is_verificated:"Tu amigo está verificado.",you_have_only_a_subscription_in_one_way:"Solo tienes una suscripción de un modo.",authentication_query_sent:"Consulta de verificación enviada.",your_message_wasnt_send_please_end_your_private_conversation:"Su mensaje no fue enviado. Por favor, termine su conversación privada.",unencrypted_message_received:"Mensaje no cifrado recibido:",not_available:"No disponible",no_connection:"¡Sin conexión!",relogin:"iniciar sesión nuevamente",trying_to_start_private_conversation:"¡Intentando iniciar una conversación privada!",Verified:"Verificado",Unverified:"No verificado",private_conversation_aborted:"¡Conversación privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"¡Su amigo cerró la conversación privada! Usted debería hacer lo mismo.",conversation_is_now_verified:"La conversación es ahora verificada.",authentication_failed:"Falló la verificación.",Creating_your_private_key_:"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.",Authenticating_a_buddy_helps_:"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.",How_do_you_want_to_authenticate_your_buddy:"¿Cómo desea autenticar __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Escoja un método...",Manual:"Manual",Question:"Pregunta",Secret:"Secreto",To_verify_the_fingerprint_:"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.",Your_fingerprint:"Tu firma digital",Buddy_fingerprint:"firma digital de tu amigo",Close:"Cerrar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar mediante una pregunta, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.",Ask:"Preguntar",To_authenticate_pick_a_secret_:"Para autenticar, elija un secreto conocido solo por usted y su amigo.",Compare:"Comparar",Fingerprints:"Firmas digitales",Authentication:"Autenticación",Message:"Mensaje",Add_buddy:"Añadir amigo",rename_buddy:"renombrar amigo",delete_buddy:"eliminar amigo",Login:"Iniciar Sesión",Username:"Usuario",Password:"Contraseña",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Escriba el usuario completo y un alias opcional.",Alias:"Alias",Add:"Añadir",Subscription_request:"Solicitud de suscripción",You_have_a_request_from:"Tienes una petición de",Deny:"Rechazar",Approve:"Aprobar",Remove_buddy:"Eliminar amigo",You_are_about_to_remove_:"Vas a eliminar a __bid_name__ (<b>__bid_jid__</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.",Continue_without_chat:"Continuar",Please_wait:"Espere por favor",Login_failed:"Fallo el inicio de sesión",Sorry_we_cant_authentikate_:"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?",Retry:"Reintentar",clear_history:"Borrar el historial",New_message_from:"Nuevo mensaje de __name__",Should_we_notify_you_:"¿Debemos notificarle sobre nuevos mensajes en el futuro?",Please_accept_:'Por favor, haga clic en el botón "Permitir" en la parte superior.',Hide_offline:"Ocultar contactos desconectados",Show_offline:"Mostrar contactos desconectados",About:"Acerca de",dnd:"No Molestar",Mute:"Desactivar sonido",Unmute:"Activar sonido",Subscription:"Suscripción",both:"ambos",Status:"Estado",online:"en línea",chat:"chat",away:"ausente",xa:"más ausente",offline:"desconectado",none:"nadie",Unknown_instance_tag:"Etiqueta de instancia desconocida.",Not_one_of_our_latest_keys:"No una de nuestras última claves.",Received_an_unreadable_encrypted_message:"Se recibió un mensaje cifrado ilegible.",Online:"En linea",Chatty:"Hablador",Away:"Ausente",Extended_away:"Más ausente",Offline:"Desconectado",Friendship_request:"Solicitud de amistad",Confirm:"Confirmar",Dismiss:"Rechazar",Remove:"Eliminar",Online_help:"Ayuda en línea",FN:"Nombre completo ",N:" ",FAMILY:"Apellido",GIVEN:"Nombre",NICKNAME:"Apodo",URL:"URL",ADR:"Dirección",STREET:"Calle",EXTADD:"Dirección extendida",LOCALITY:"Población",REGION:"Región",PCODE:"Código postal",CTRY:"País",TEL:"Teléfono",NUMBER:"Número",EMAIL:"Correo electrónico",USERID:" ",ORG:"Organización",ORGNAME:"Nombre",ORGUNIT:"Departamento",TITLE:"Título",ROLE:"Rol",BDAY:"Cumpleaños",DESC:"Descripción",PHOTO:" ",send_message:"mandar un texto",get_info:"obtener información",Settings:"Ajustes",Priority:"Prioridad",Save:"Guardar",User_settings:"Configuración de usuario",A_fingerprint_:"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser",is:"es",Login_options:"Opciones de login",BOSH_url:"BOSH url",Domain:"Dominio",Resource:"Recurso",On_login:"Iniciar sesión",Received_an_unencrypted_message:"Recibe un mensaje no cifrado",Sorry_your_buddy_doesnt_provide_any_information:"Lo sentimos, su amigo no provee ninguna información.",Info_about:"Info acerca de",Authentication_aborted:"Autenticación abortada",Authentication_request_received:"Pedido de autenticación recibido.",Log_in_without_chat:"Ingresar sin chat",has_come_online:"se ha conectado",Unknown_sender:"Remitente desconocido",Please_allow_access_to_microphone_and_camera:"Por favor, permitir el acceso al micrófono y la cámara.",Incoming_call:"Llamada entrante",from:"de",Do_you_want_to_accept_the_call_from:"Desea aceptar la llamada de",Reject:"Rechazar",Accept:"Aceptar",hang_up:"colgar",snapshot:"instantánea",mute_my_audio:"silenciar mi audio",pause_my_video:"pausar mi vídeo",fullscreen:"pantalla completa",Info:"Info",Local_IP:"IP local",Remote_IP:"IP remota",Local_Fingerprint:"Firma digital local",Remote_Fingerprint:"Firma digital remota",Video_call_not_possible:"Llamada de vídeo no es posible",Start_video_call:"Iniciar llamada de vídeo",Join_chat:"Unirse al chat",Join:"Unirse",Room:"Sala",Nickname:"Alias",left_the_building:"__nickname__ dejó el edificio",entered_the_room:"__nickname__ entró en la sala",is_now_known_as:"__oldNickname__ ahora es conocido como __newNickname__",This_room_is:"Esta sala es",muc_hidden:{keyword:"oculta",description:"no se encontró mediante la búsqueda"},muc_membersonly:{keyword:"miembros solo",description:"necesitas estar en la lista de miembros"},muc_moderated:{keyword:"moderada",description:'solo personas con "voice" están permitidas para mandar mensajes'},muc_nonanonymous:{keyword:"no anónima",description:"tu id de jabber es expuesta al resto de ocupantes"},muc_open:{keyword:"abierta",description:"todo el mundo puede unirse"},muc_passwordprotected:{keyword:"protegida por contraseña",description:"necesitas dar la contraseña correcta"},muc_persistent:{keyword:"persistente",description:"no será destruida si el último ocupante sale"},muc_public:{keyword:"pública",description:"puede ser encontrada mediante la búsqueda"},muc_semianonymous:{keyword:"semi-anónima",description:"tu id de jabber es expuesta a los administradores de la sala"},muc_temporary:{keyword:"temporal",description:"será destruida si el último ocupante sale"},
+muc_unmoderated:{keyword:"no moderada",description:"todo el mundo puede enviar mensajes"},muc_unsecured:{keyword:"sin asegurar",description:"no necesitas contraseña para entrar"},Continue:"Continuar",Server:"Servidor",Rooms_are_loaded:"Las salas han sido cargadas",Could_load_only:"Se cargaron solo __count__ salas para el autocompletado",muc_explanation:"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat",You_already_joined_this_room:"Ya te has unido a esta sala",This_room_will_be_closed:"Esta sale será cerrada",Room_not_found_:"Sala no encontrada",Loading_room_information:"Cargando información de la sala",Destroy:"Destruir",Leave:"Abandonar",changed_subject_to:'__nickname__ cambió el asunto de la sala a "__subject__"',muc_removed_kicked:"Has sido echado de la sala",muc_removed_info_kicked:"__nickname__ ha sido echado de la sala",muc_removed_banned:"Has sido expulsado de la sala",muc_removed_info_banned:"__nickname__ ha sido expulsado",muc_removed_affiliation:"Has sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_info_affiliation:"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación",muc_removed_membersonly:"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_info_membersonly:"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro",muc_removed_shutdown:"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado",Reason:"Razón",message_not_send:"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe",message_not_send_forbidden:"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ",This_room_has_been_closed:"Esta sala ha sido cerrada",Room_logging_is_enabled:"Log de sala está habilitado",A_password_is_required:"Se requiere una contraseña",You_are_not_on_the_member_list:"No estás en la lista de miembros",You_are_banned_from_this_room:"Estás expulsado de esta sala",Your_desired_nickname_:"Tu alias ya está en uso. Por favor elige otro",The_maximum_number_:"El máximo número de usuarios ha sido alcanzado en esta sala",This_room_is_locked_:"Esta sala está bloqueada",You_are_not_allowed_to_create_:"No tienes permiso para crear una sala",Alert:"Alerta",Call_started:"Llamada empezada",Call_terminated:"Llamada terminada",Carbon_copy:"Calco",Enable:"Activar",jingle_reason_busy:"ocupado",jingle_reason_decline:"rechazar",jingle_reason_success:"colgar",Media_failure:"Fallo multimedia",No_local_audio_device:"No hay dispositivo de audio local",No_local_video_device:"No hay dispositivo de vídeo local",Ok:"Ok",PermissionDeniedError:"Tú o tu navegador denegaron el permiso de audio/vídeo",Use_local_audio_device:"Usar dispositivo de audio local",Use_local_video_device:"Usar dispositivo de vídeo",is_:"es __status__",You_received_a_message_from_an_unknown_sender_:"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?",Your_roster_is_empty_add_:"Tu lista de amigos esta vacía, añadir un <a>nuevo amigo</a>",onsmp_explanation_question:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.",onsmp_explanation_secret:"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado se inició una conversación privada.",Unverified_private_conversation_started:"No verificado se inició una conversación privada.",Bookmark:"Favorito","Auto-join":"Auto-unir",Edit_bookmark:"Editar favorito",Room_logging_is_disabled:"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima",Do_you_want_to_change_the_default_room_configuration:"¿Quieres cambiar la configuración por defecto de la sala?",Default:"Por defecto",Change:"Cambiar",Send_file:"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},fi:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},fr:{translation:{Logging_in:"Connexion...",your_connection_is_unencrypted:"Connexion non chiffrée.",your_connection_is_encrypted:"Connexion chiffrée.",your_buddy_closed_the_private_connection:"Votre contact a fermé la connexion privée.",start_private:"Démarrer une conversation privée",close_private:"Clôturer une conversation privée",your_buddy_is_verificated:"Votre contact est vérifié.",you_have_only_a_subscription_in_one_way:"Vous ne pouvez souscrire qu'une fois.",authentication_query_sent:"Requête d’authentification envoyée.",your_message_wasnt_send_please_end_your_private_conversation:"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.",unencrypted_message_received:"Message non chiffré reçu",not_available:"Non disponible",no_connection:"Pas de connexion !",relogin:"Re-connexion",trying_to_start_private_conversation:"Essai de démarrage d'une conversation privée !",Verified:"Vérifié",Unverified:"Non vérifié",private_conversation_aborted:"Conversation privée interrompue !",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Votre contact a fermé la conversation privée ! Vous devriez faire de même.",conversation_is_now_verified:"La conversation est maintenant vérifiée.",authentication_failed:"L'authentification a échoué.",Creating_your_private_key_:"Création de votre clé privée; cela peut prendre un moment.",Authenticating_a_buddy_helps_:"L'authentification d'un contact permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.",How_do_you_want_to_authenticate_your_buddy:"Comment voulez-vous vous authentifier __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Sélection de la méthode...",Manual:"Manuel",Question:"Question",Secret:"Sécurité",To_verify_the_fingerprint_:"Pour vérifier l'empreinte, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.",Your_fingerprint:"Votre empreinte",Buddy_fingerprint:"Empreinte du contact",Close:"Fermer",Compared:"Comparé",To_authenticate_using_a_question_:"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre contact.",Ask:"Demander",To_authenticate_pick_a_secret_:"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.",Compare:"Comparer",Fingerprints:"Empreintes",Authentication:"Authentification",Message:"Message",Add_buddy:"Ajouter un contact",rename_buddy:"Renommer le contact",delete_buddy:"Supprimer le contact",Login:"Connexion",Username:"Nom d'utilisateur",Password:"Mot de passe",Cancel:"Annuler",Connect:"Connecter",Type_in_the_full_username_:"Tapez un nom d'utilisateur complet et un alias(optionnel).",Alias:"Alias",Add:"Ajouter",Subscription_request:"Demande d'abonnement",You_have_a_request_from:"Vous avez une requête de ",Deny:"Refuser",Approve:"Approuver",Remove_buddy:"Supprimer le contact",You_are_about_to_remove_:"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion en lien avec celui-ci seront fermées.",Continue_without_chat:"Continuer sans tchat",Please_wait:"Merci de patienter",Login_failed:"Authentification échouée",Sorry_we_cant_authentikate_:"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.",Retry:"Retour",clear_history:"Effacer l’historique",New_message_from:"Nouveau message de __name__",Should_we_notify_you_:"Dans le futur, devrons-nous vous notifier les nouveaux messages ?",Please_accept_:'Merci de cliquer sur le bouton "autoriser" en haut de page',Hide_offline:"Masquer les contacts non connectés",Show_offline:"Afficher les contacts non connectés",About:"À propos",dnd:"Ne pas déranger",Mute:"Muet",Unmute:"Son actif",Subscription:"Abonnement",both:"Les deux",Status:"Statut",online:"En ligne",chat:"tchat",away:"Absent",xa:"Longue absence",offline:"Hors ligne",none:"Aucun",Unknown_instance_tag:"Tag inconnu",Not_one_of_our_latest_keys:"Ce n'est pas l'une des dernières touches",Received_an_unreadable_encrypted_message:"Message chiffré non lisible",Online:"En ligne",Chatty:"Libre pour discuter",Away:"Absent",Extended_away:"Longue absence",Offline:"Hors ligne",Friendship_request:"Demande de contact",Confirm:"Valider",Dismiss:"Rejeter",Remove:"Supprimer",Online_help:"Aide en ligne",FN:"Nom",N:" N ",FAMILY:"Nom de famille",GIVEN:"prénom",NICKNAME:"Pseudo",URL:"URL",ADR:"Adresse",STREET:"Rue",EXTADD:"Adresse (suite)",LOCALITY:"Localité",REGION:"Région",PCODE:"Code Postal",CTRY:"Pays",TEL:"Téléphone",NUMBER:"Numéro",EMAIL:"Courriel",USERID:" USERID ",ORG:"Organisation",ORGNAME:"Nom",ORGUNIT:"Unité",TITLE:"Qualité:",ROLE:"Rôle",BDAY:"Date de naissance",DESC:"Description",PHOTO:"Photo",send_message:"Envoyer un message",get_info:"Montrer les informations",Settings:"Réglages",Priority:"Priorité",Save:"Enregistrer",User_settings:"Paramètres utilisateur",A_fingerprint_:"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez",is:"est",Login_options:"Options d'identification",BOSH_url:"URL BOSH",Domain:"Domaine",Resource:"Ressource",On_login:"Après authentification",Received_an_unencrypted_message:"Reçu un message non chiffré",Sorry_your_buddy_doesnt_provide_any_information:"Désolé, votre contact n'a pas fourni d'informations",Info_about:"À propos de",Authentication_aborted:"Authentification interrompue.",Authentication_request_received:"Requête d'authentification reçue.",Log_in_without_chat:"S'identifier sans tchat",has_come_online:"vient d'arriver",Unknown_sender:"Expéditeur inconnu",Please_allow_access_to_microphone_and_camera:'Veuillez cliquez sur le bouton "Autoriser" en haut, pour permettre l\'accès au micro et à la caméra.',Incoming_call:"Appel entrant",from:"de",Do_you_want_to_accept_the_call_from:"Voulez-vous accepter l'appel de",Reject:"Rejeté",Accept:"Accepté",hang_up:"raccrocher",snapshot:"Capture d’écran",mute_my_audio:"Couper l'audio",pause_my_video:"Mettre ma vidéo en pause",fullscreen:"Plein écran",Info:"Info",Local_IP:"IP locale",Remote_IP:"IP distante",Local_Fingerprint:"Empreinte locale",Remote_Fingerprint:"Empreinte distante",Video_call_not_possible:"L'appel vidéo n'est possible. Votre contact ne supporte pas les appels vidéo.",Start_video_call:"Démarrer l'appel vidéo",Join_chat:"Joindre la discussion",Join:"Joindre",Room:"Salon",Nickname:"Pseudo",left_the_building:"__nickname__ a quitté l'immeuble",entered_the_room:"__nickname__ entre dans le salon",is_now_known_as:"__oldNickname__ est maintenant connu comme __newNickname__",This_room_is:"Ce salon est",muc_hidden:{keyword:"caché",description:"ne peut être trouvé avec une recherche"},muc_membersonly:{keyword:"pour les membres seulement",description:"Vous devez être sur la liste des membres"},muc_moderated:{keyword:"modéré",description:'Seulement les personnes avec la "voix" sont autorisés à envoyer des messages'},muc_nonanonymous:{keyword:"non anonyme",description:"Votre identifiant Jabber est visible de tous les autres occupants"},muc_open:{keyword:"ouvert",description:"Tout le monde est autorisé à se connecter"},muc_passwordprotected:{keyword:"protégé par un mot de passe",description:"Vous devez fournir un mot de passe correct"},muc_persistent:{keyword:"persistent",description:"ne sera pas détruit si le dernier occupant part"},muc_public:{keyword:"public",description:"peut être touvé avec une recherche"},muc_semianonymous:{keyword:"semi-anonyme",description:"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},muc_temporary:{keyword:"temporaire",description:"sera détruit au départ de son dernier occupant"},muc_unmoderated:{keyword:"non modéré",description:"Tout le monde est autorisé à envoyer des messages"},muc_unsecured:{keyword:"non sécurisé",description:"un mot de passe n'est pas nécessaire pour entrer"},Continue:"Continuer",Server:"Serveur",Rooms_are_loaded:"Les salons sont chargés",Could_load_only:"Ne peut charger que __count__ salons pour l'autocomplétion",muc_explanation:"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation",You_already_joined_this_room:"Vous avez déjà rejoint ce salon",This_room_will_be_closed:"Ce salon va être fermé",Room_not_found_:"Un nouveau salon va être créé",Loading_room_information:"Chargement des informations du salon",Destroy:"Détruire",Leave:"Quitter",changed_subject_to:'__nickname__ a changé le sujet du salon à "__subject__"',muc_removed_kicked:"Vous avez été éjecté de ce salon",muc_removed_info_kicked:"__nickname__ a été éjecté de ce salon",muc_removed_banned:"Vous avez été banni de ce salon",muc_removed_info_banned:"__nickname__ a été banni de ce salon",muc_removed_affiliation:"Vous avez été retiré du salon en raison d'un changement d'affiliation",muc_removed_info_affiliation:"__nickname__ a été retiré du salon en raison d'un changement d'affiliation",muc_removed_membersonly:"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie",muc_removed_info_membersonly:"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres",muc_removed_shutdown:"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre",Reason:"Raison",message_not_send:"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas",message_not_send_forbidden:"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon",This_room_has_been_closed:"Ce salon a été fermé",Room_logging_is_enabled:"L'historique du salon est conservé",A_password_is_required:"Un mot de passe est requis",You_are_not_on_the_member_list:"Vous n'êtes pas sur la liste des membres",You_are_banned_from_this_room:"Vous avez été banni de ce salon",Your_desired_nickname_:"Votre pseudo souhaité est déjà utilisé. Veuillez en choisir un autre",The_maximum_number_:"Le nombre maximum d'utilisateurs est atteint dans ce salon",This_room_is_locked_:"Ce salon est verrouillé",You_are_not_allowed_to_create_:"Vous n'êtes pas autorisé à créer un salon",Alert:"Alerte",Call_started:"Appel démarré",Call_terminated:"Appel terminé",Carbon_copy:"Copie carbone",Enable:"Activé",jingle_reason_busy:"occupé",jingle_reason_decline:"refusé",jingle_reason_success:"raccroché",Media_failure:"échec du média",No_local_audio_device:"Pas de périphérique audio local",No_local_video_device:"Pas de périphérique vidéo local",Ok:"Ok",PermissionDeniedError:"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo",Use_local_audio_device:"Utiliser un périphérique audio local.",Use_local_video_device:"Utiliser un périphérique vidéo local.",is_:"est __status__",You_received_a_message_from_an_unknown_sender_:"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?",Your_roster_is_empty_add_:"Votre liste est vide, ajouter <a>Nouveau contact</a>",onsmp_explanation_question:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.",onsmp_explanation_secret:"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret",from_sender:"de __sender__",Verified_private_conversation_started:"La conversation privée vérifiée a démarré.",Unverified_private_conversation_started:"La conversation privée non vérifiée a démarré.",Bookmark:"Marque-page","Auto-join":"Joindre automatiquement",Edit_bookmark:"Éditer le marque-page",Room_logging_is_disabled:"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme",Do_you_want_to_change_the_default_room_configuration:"Voulez-vous changer la configuration par défaut du salon ?",Default:"Par défaut",Change:"Changer",Send_file:"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.",_is_composing:" est en train d'écrire...",_are_composing:" sont en train d'écrire...",Chat_state_notifications:"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?",Share_screen:"Ecran partagé",Incoming_stream:"Flux entrant",Stream_started:"flux démarré",HTTPS_REQUIRED:"Cette action nécessite une connexion cryptée.",EXTENSION_UNAVAILABLE:"Vous avez besoin d'une extension / d'un addon pour votre navigateur.",UNKNOWN_ERROR:"Une erreur inconnue s'est produite.",Install_extension:"Veuillez installer l'extension afin d'utiliser le partage d'écran: ",Connection_accepted:"Connexion acceptée",Stream_terminated:"Flux terminé",Close_all:null}},"hu-HU":{translation:{Logging_in:null,your_connection_is_unencrypted:"Az Ön kapcsolata titkosítatlan.",your_connection_is_encrypted:"Az Ön kapcsolata titkosított.",your_buddy_closed_the_private_connection:"Partnere megszakította a privát kapcsolatot.",start_private:"Privát beszélgetés indítása",close_private:"Privát beszélgetés bezárása",your_buddy_is_verificated:"Az Ön partnere megerősítve.",you_have_only_a_subscription_in_one_way:null,authentication_query_sent:"Azonosítási kérelem elküldve.",your_message_wasnt_send_please_end_your_private_conversation:"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.",unencrypted_message_received:"Titkosítatlan üzenet fogadva",not_available:"Nem elérhető",no_connection:"Nincs kapcsolat!",relogin:"relogin",trying_to_start_private_conversation:"Privát beszélgetés indítása!",Verified:"Megerősítve",Unverified:"Nem megerősített",private_conversation_aborted:"Privát beszélgetés megszakítva!",your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:"Azonosítás sikertelen.",Creating_your_private_key_:"Privát kulcs generálása. Egy kis időbe telhet...",Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:"Kérdés",Secret:"Kulcs",To_verify_the_fingerprint_:null,Your_fingerprint:"Az Ön lenyomata",Buddy_fingerprint:"Partnere lenyomata",Close:"Bezárás",Compared:"Összehasonlítva",To_authenticate_using_a_question_:"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.",Ask:"Kérdez",To_authenticate_pick_a_secret_:"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.",Compare:"Összehasonlítás",Fingerprints:"Lenyomatok",Authentication:"Azonosítás",Message:"Üzenet",Add_buddy:"Partner hozzáadása",rename_buddy:"Partner átnevezése",delete_buddy:"Partner törlése",Login:"Belépés",Username:"Felhasználónév",Password:"Jelszó",Cancel:"Mégsem",Connect:"Csatlakozás",Type_in_the_full_username_:"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.",Alias:"Becenév",Add:"Hozzáadás",Subscription_request:"Feliratkozási kérelem",You_have_a_request_from:"Ön felkérést kapott a következőtől",Deny:"Elutasít",Approve:"Jóváhagy",Remove_buddy:"Partner eltávolítása",You_are_about_to_remove_:null,Continue_without_chat:"Folytatás chat nélkül",Please_wait:"Kérem várjon",Login_failed:"Chat bejelentkezés sikertelen",Sorry_we_cant_authentikate_:null,Retry:"Vissza",clear_history:"Előzmények törlése",New_message_from:"Új üzenet __name__ partnerétől",Should_we_notify_you_:"Kívánja hogy értesítsük a jövőben új üzeneteiről?",Please_accept_:'Kérem kattintson a fent megjelenő "Engedélyez" gombra.',Hide_offline:"Offline partnerek elrejtése",Show_offline:"Offline partnerek mutatása",About:null,dnd:"Ne zavarj",Mute:"Némítás",Unmute:"Hangok engedélyezése",Subscription:null,both:"mindkettő",Status:"Állapot",online:"elérhető",chat:null,away:"távol",xa:"huzamosabban távol",offline:"offline",none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:"Teljes név",N:null,FAMILY:"Családi név",GIVEN:"Keresztnév",NICKNAME:"Becenév",URL:"URL",ADR:"Cím",STREET:"Utcanév",EXTADD:"Cím",LOCALITY:"Helység",REGION:"Régió",PCODE:"Irányítószám",CTRY:"Ország",TEL:"Telefonszám",NUMBER:"Házszám",EMAIL:"E-mail cím",USERID:null,ORG:"Vállalat",ORGNAME:"Név",ORGUNIT:"Osztály",TITLE:"Beosztás",ROLE:"Részleg",BDAY:"Születésnap",DESC:"Leírás",PHOTO:null,send_message:"Üzenet küldése",get_info:"Info mutatása",Settings:"Beállítások",Priority:"Prioritás",Save:"Mentés",User_settings:"Felhasználó beállítások",A_fingerprint_:null,is:null,Login_options:"Bejelentkezési lehetőségek",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Erőforrás",On_login:"Bejelentkezéskor",Received_an_unencrypted_message:"Titkosítatlan üzenetet fogadott",Sorry_your_buddy_doesnt_provide_any_information:"Sajnos az Ön partnere nem adott meg semmilyen információt.",Info_about:null,Authentication_aborted:"Azonosítás megszakítva.",Authentication_request_received:"Azonosítási kérelem fogadva.",Log_in_without_chat:"Bejelentkezés chat nélkül",has_come_online:"bejelentkezett",Unknown_sender:"Ismeretlen küldő",Please_allow_access_to_microphone_and_camera:'Kérem kattintson a fent megjelenő "Engedélyez/Allow" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.',Incoming_call:"Bejövő hívás",from:"tőle",Do_you_want_to_accept_the_call_from:"Szeretné fogadni következő partnere hívását:",Reject:"Elutasít",Accept:"Fogadás",hang_up:"tartás",snapshot:"képernyőfotó",mute_my_audio:"hangom némítása",pause_my_video:"videóképem megállítása",fullscreen:"teljes képernyő",Info:"Info",Local_IP:"Helyi IP",Remote_IP:"Távoli IP",Local_Fingerprint:"Helyi lenyomat",Remote_Fingerprint:"Távoli lenyomat",Video_call_not_possible:"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.",Start_video_call:"Videóhívás indítása",Join_chat:"Belépés a chatbe",Join:"Belépés",Room:"Szoba",Nickname:"Becenév",left_the_building:"__nickname__ elhagyta az épületet.",entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,
+Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},it:{translation:{Logging_in:"login…",your_connection_is_unencrypted:"La sua connessione è non cifrata.",your_connection_is_encrypted:"La sua connessione è cifrata.",your_buddy_closed_the_private_connection:"La sua connessione privata è stato chiuso dal suo compagno.",start_private:"Inizia privata",close_private:"Chiude privata",your_buddy_is_verificated:"Il tuo compagno è stato verificato",you_have_only_a_subscription_in_one_way:"Hai solo una one-way inscrizione.",authentication_query_sent:"Domanda d'autenticità inviata.",your_message_wasnt_send_please_end_your_private_conversation:"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.",unencrypted_message_received:"Messaggio non cifrato ricevuto",not_available:"non disponibile",no_connection:"nessun collegamento!",relogin:"nuovo login",trying_to_start_private_conversation:"Cercando di avviare una conversazione privata!",Verified:"verificato",Unverified:"non verificato",private_conversation_aborted:"Conversazione privata abortito!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.",conversation_is_now_verified:"Conversazione è ora verificato.",authentication_failed:"autenticazione fallita.",Creating_your_private_key_:"Creare la propria chiave privata; questo potrebbe richiedere un po'.",Authenticating_a_buddy_helps_:"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.",How_do_you_want_to_authenticate_your_buddy:"Come si desidera autenticare __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Seleziona metodo ..",Manual:"manuale",Question:"domanda",Secret:"segreto",To_verify_the_fingerprint_:"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.",Your_fingerprint:"il tuo impronta digitale",Buddy_fingerprint:"impronta digitale da compagno",Close:"chiude",Compared:"comparato",To_authenticate_using_a_question_:"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno",Ask:"chiedi",To_authenticate_pick_a_secret_:"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.",Compare:"Comparare",Fingerprints:"Impronta digitale",Authentication:"Autenticazione",Message:"Messagio",Add_buddy:"Aggiungi un compagno",rename_buddy:"rinomina compagno",delete_buddy:"elimina compagno",Login:"Login",Username:"Identificazione dell'utente",Password:"Password",Cancel:"Cancella",Connect:"Collega",Type_in_the_full_username_:"Digita l'identificazione utente completo e un alias opzionale.",Alias:"Alias",Add:"Aggiungi",Subscription_request:"Rrichiesta di sottoscrizione",You_have_a_request_from:"Hai una richiesta da",Deny:"Refiuta",Approve:"Approva",Remove_buddy:"Rimuova il compagno",You_are_about_to_remove_:"Stai rimovendo __bid_name__ (<b>__bid_jid__</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.",Continue_without_chat:"Continua senza chat",Please_wait:"Si prega d'attendere",Login_failed:"Chat login è fallito",Sorry_we_cant_authentikate_:"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?",Retry:"Indietro",clear_history:"Cancella la cronologia",New_message_from:"Nuovo messaggio da __name__",Should_we_notify_you_:"Vuoi ricevere una notifica di nuovi messaggi in futuro?",Please_accept_:'Si prega di fare clic sul bottone "Autorizzazione" sopra.',Hide_offline:"Nascondere i contatti non in linea",Show_offline:"Mostra i contatti non in linea",About:"Informazione legale",dnd:"Non disturbare",Mute:"Muto attivo",Unmute:"Muto inattivo",Subscription:"Sottoscrizione",both:"etrambi",Status:"Status",online:"In linea",chat:"chat",away:"via",xa:"via estensivo",offline:"non in linea",none:"nessuno",Unknown_instance_tag:"Instance tag sconosciuta.",Not_one_of_our_latest_keys:"Non è una delle nostre ultime chiavi.",Received_an_unreadable_encrypted_message:"Ricevuto un messaggio crittografato illeggibile.",Online:"In linea",Chatty:"Chiacchierino",Away:"Via",Extended_away:"Via estensivo",Offline:"Non in linea",Friendship_request:"Amicizia richiesto",Confirm:"Conferma",Dismiss:"Rifiuta",Remove:"Rimuovi",Online_help:"Guida in linea",FN:"Nome e cognome",N:null,FAMILY:"Cognome",GIVEN:"Nome",NICKNAME:"Soprannome",URL:"URL",ADR:"Indirizzo",STREET:"Via",EXTADD:"Esteso Indirizzo",LOCALITY:"Località",REGION:"Regione",PCODE:"Codice Postale",CTRY:"Paese",TEL:"Telefono",NUMBER:"Numero",EMAIL:"E-mail",USERID:null,ORG:"Organizzazione",ORGNAME:"Nome",ORGUNIT:"Unità",TITLE:"Titolo di lavoro",ROLE:"Funzione",BDAY:"Compleanno",DESC:"Descrizione",PHOTO:null,send_message:"Messagio inviato",get_info:"Mostra informazioni",Settings:"Impostazione",Priority:"Priorità",Save:"Salva",User_settings:"Impostazione dell'utente",A_fingerprint_:"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.",is:"è",Login_options:"Opzioni di login",BOSH_url:"BOSH URL",Domain:"Domain",Resource:"Risorsa",On_login:"Login on",Received_an_unencrypted_message:"Ricevuto un messaggio non crittografato",Sorry_your_buddy_doesnt_provide_any_information:"Spiace, il tuo compagno non fornisce alcuna informazione.",Info_about:"Informazioni",Authentication_aborted:"Autenticazione interrotta",Authentication_request_received:"Richiesta di autenticazione ricevuto.",Log_in_without_chat:"Log in senza chat",has_come_online:"È venuto in linea",Unknown_sender:"Mittente sconosciuto",Please_allow_access_to_microphone_and_camera:'Si prega di fare clic sul bottone "Autorizzazione" sopra per autorizzazione del l\'accesso al microfono e fotocamera.',Incoming_call:"Chiamata in arrivo",from:"di",Do_you_want_to_accept_the_call_from:"Vuoi accettare la chiamata di",Reject:"Rifiuta",Accept:"Accetta",hang_up:"Riattacca",snapshot:"istantanea",mute_my_audio:"disattiva il mio audio",pause_my_video:"pausa il mio audio",fullscreen:"schermo intero",Info:"Informazione",Local_IP:"IP locale",Remote_IP:"IP remoto",Local_Fingerprint:"Impronta digitale locale",Remote_Fingerprint:"Impronta digitale remoto",Video_call_not_possible:"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.",Start_video_call:"Inizia videochiamata",Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:"è __status__",You_received_a_message_from_an_unknown_sender_:"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?",Your_roster_is_empty_add_:"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>",onsmp_explanation_question:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.",onsmp_explanation_secret:"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.",from_sender:"di __sender__",Verified_private_conversation_started:"verificato Conversazione privata iniziato.",Unverified_private_conversation_started:"non verificato Conversazione privata iniziato.",Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},nds:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},pl:{translation:{Logging_in:"Logowanie...",your_connection_is_unencrypted:"Twoje połączenie nie jest szyfrowane.",your_connection_is_encrypted:"Twoje połączenie jest szyfrowane.",your_buddy_closed_the_private_connection:"Twój rozmówca zamknął połączenie.",start_private:"Rozpocznij rozmowę.",close_private:"Zakończ rozmowę.",your_buddy_is_verificated:"Twój rozmówca został zweryfikowany.",you_have_only_a_subscription_in_one_way:"Posiadasz tylko jednostronną subskrypcję.",authentication_query_sent:"Wysłano proźbę o autentykację.",your_message_wasnt_send_please_end_your_private_conversation:"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.",unencrypted_message_received:"Otrzymano niezaszyfrowaną wiadomość.",not_available:"Niedostępny.",no_connection:"Brak połączenia!",relogin:"Połącz ponownie",trying_to_start_private_conversation:"Rozpocznij rozmowę!",Verified:"Zweryfikowano",Unverified:"Niezweryfikowano",private_conversation_aborted:"Anulowano rozmowę!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Rozmówca przerwał połączenie! Powinieneś zrobić to samo.",conversation_is_now_verified:"Zweryfikowano połączenie.",authentication_failed:"Weryfikacja się nie powiodła.",Creating_your_private_key_:"Tworzenie klucza prywatnego; może to chwilę potrwać",Authenticating_a_buddy_helps_:"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).",How_do_you_want_to_authenticate_your_buddy:"Jakiej autoryzacji chcesz użyć __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Wybierz sposób...",Manual:"Ręcznie",Question:"Pytanie",Secret:"Hasło",To_verify_the_fingerprint_:"Aby zweryfikować kod, najpierw skontaktuj się z rozmówcą za pomocą zaufanego sposobu, np telefonu.",Your_fingerprint:"Twój kod:",Buddy_fingerprint:"Kod kontaktu",Close:"Zamknij",Compared:"Porównano",To_authenticate_using_a_question_:"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i twój rozmówca zna odpowiedź.",Ask:"Zadaj pytanie",To_authenticate_pick_a_secret_:"Aby autoryzować za pomocą hasła, wybierz hasło na które znasz tylko Ty i twój rozmówca.",Compare:"Dopasuj",Fingerprints:"Kody autoryzacyjne",Authentication:"Autoryzacja",Message:"Wiadomość",Add_buddy:"Dodaj kontakt",rename_buddy:"Zmień nazwę kontaktu",delete_buddy:"Usuń kontakt",Login:"Login",Username:"Nazwa Użytkownika",Password:"Hasło",Cancel:"Anuluj",Connect:"Połączenie",Type_in_the_full_username_:"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).",Alias:"Alias",Add:"Dodaj",Subscription_request:"Potwierdzenie subskrypcji",You_have_a_request_from:"Masz potwierdzenie od",Deny:"Odmów",Approve:"Zatwierdź",Remove_buddy:"Usuń kontakt",You_are_about_to_remove_:"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.",Continue_without_chat:"Kontynuuj bez komunikatora",Please_wait:"Proszę czekać",Login_failed:"Błędne logowanie",Sorry_we_cant_authentikate_:"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?",Retry:"Powrót",clear_history:"Wyczyść historię",New_message_from:"Nowa wiadomość od __name__",Should_we_notify_you_:"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?",Please_accept_:'Kliknij "Zezwól" na górze.',Hide_offline:"Schowaj niedostępne kontakty",Show_offline:"Pokaż niedostępne kontakty",About:"Info",dnd:"Nie przeszkadzać",Mute:"Wycisz",Unmute:"Włącz dźwięk",Subscription:"Subskrybcja",both:"obustronna",Status:"Status",online:"Dostępny",chat:"czat",away:"z dala od kompa",xa:"hen hen...",offline:"niedostępny",none:"brak",Unknown_instance_tag:"Nieznany przypadek.",Not_one_of_our_latest_keys:"Not one of our latest keys.",Received_an_unreadable_encrypted_message:"Otrzymano nieczytelną, zaszyfrowaną wiadomość.",Online:"Połączony",Chatty:"Pogawędzimy?",Away:"Daleko",Extended_away:"Hen Hen...",Offline:"Niedostępny",Friendship_request:"Prośba o kontakt",Confirm:"Potwierdzenie",Dismiss:"Odwołaj",Remove:"Usuń",Online_help:"Pomoc Online",FN:"Pełna nazwa",N:" ",FAMILY:"Nazwisko",GIVEN:"Imię",NICKNAME:"Pseudonim",URL:"Strona WWW",ADR:"Adres",STREET:"Ulica",EXTADD:"Pełny adres",LOCALITY:"Lokalizacja",REGION:"Region",PCODE:"Kod pocztowy",CTRY:"Kraj",TEL:"Telefon",NUMBER:"Numer",EMAIL:"Email",USERID:" ",ORG:"Organizacja",ORGNAME:"Nazwa",ORGUNIT:"Jednostka",TITLE:"Stanowisko",ROLE:"Rola",BDAY:"Data urodzin",DESC:"Opis",PHOTO:" ",send_message:"Wyślij wiadomość",get_info:"Pokaż informację",Settings:"Ustawienia",Priority:"Priorytet",Save:"Zapisz",User_settings:"Ustawienia Użytkownika",A_fingerprint_:"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.",is:"jest",Login_options:"opcje logowania",BOSH_url:"Adres BOSH",Domain:"Domena",Resource:"Źródło",On_login:"Na login",Received_an_unencrypted_message:"Zatwierdzono nieszyfrowaną wiadomość.",Sorry_your_buddy_doesnt_provide_any_information:"Wybacz, twój rozmówca nie posiada żadnych informacji.",Info_about:"Informacja o...",Authentication_aborted:"Autoryzacja anulowana.",Authentication_request_received:"Prośba o autoryzację została przyjęta.",Log_in_without_chat:"Zaloguj bez komunikatora",has_come_online:"jest teraz dostępny",Unknown_sender:"Nieznany nadawca",Please_allow_access_to_microphone_and_camera:'Kliknij "Potwierdź" na górze, aby móc korzystać z mikrofonu oraz kamery.',Incoming_call:"Przychodzące połączenie",from:"z",Do_you_want_to_accept_the_call_from:"Akceptujesz połączenie od",Reject:"Odrzuć",Accept:"Zaakceptuj",hang_up:"odbierz",snapshot:"zrób zdjęcie",mute_my_audio:"wycisz dźwięk",pause_my_video:"zatrzymaj moje wideo",fullscreen:"Pełny ekran",Info:"Informacja",Local_IP:"Adres IP",Remote_IP:"Zdalny adres IP",Local_Fingerprint:"Kod lokalny",Remote_Fingerprint:"Zdalny kod",Video_call_not_possible:"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.",Start_video_call:"Rozpocznij rozmowę wideo",Join_chat:"Dołącz do czata",Join:"Dołącz",Room:"Pokój",Nickname:"Nazwa użytkownika",left_the_building:"__nickname__ wyszedł",entered_the_room:"__nickname__ wszedł do pokoju",is_now_known_as:"__oldNickname__ zmienił nazwę na __newNickname__",This_room_is:"Ten pokój jest",muc_hidden:{keyword:"ukryty",description:"nie można odnaleźć elementów wyszukiwania"},muc_membersonly:{keyword:"tylko zalogowani",description:"musisz być członkiem listy"},muc_moderated:{keyword:"moderowano",description:'tylko osoby z opcją "głos" mogą wysyłać wiadomość'},muc_nonanonymous:{keyword:"nie-anonimowy",description:"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},muc_open:{keyword:"otwarty",description:"wszyscy mają pozwolenie aby dołączyć"},muc_passwordprotected:{keyword:"ograniczone hasłem",description:"musisz wpisać prawidłowe hasło"},muc_persistent:{keyword:"trwale",description:"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},muc_public:{keyword:"publiczny",description:"wyszukawno"},muc_semianonymous:{keyword:"pół-anonimowy",description:"Twój identyfikator jabber jest widoczny w pokoju adminów"},muc_temporary:{keyword:"tymczasowy",description:"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},muc_unmoderated:{keyword:"niemoderowany",description:"wszyscy są uprawnieni do pisania wiadomości"},muc_unsecured:{keyword:"niezabezpieczone",description:"nie musisz wpisywać hasła"},Continue:"Kontynuuj",Server:"Serwer",Rooms_are_loaded:"Pokoje zostały załadowane",Could_load_only:"Nie załadowano __count__ pokoi",muc_explanation:"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło",You_already_joined_this_room:"Już dołączyłeś do tego pokoju",This_room_will_be_closed:"Ten pokój będzie zamknięty",Room_not_found_:"Nowy pokój będzie stworzony",Loading_room_information:"Ładowani informacji o pokoju",Destroy:"Zniszczony",Leave:"Opuść",changed_subject_to:'__nickname__ zmienił temat pokoju na "__subject__"',muc_removed_kicked:"Zostałeś wyrzucony z pokoju",muc_removed_info_kicked:"__nickname__ został wyrzucony z pokoju",muc_removed_banned:"Zostałeś zbanowany",muc_removed_info_banned:"__nickname__ został zbanowany",muc_removed_affiliation:"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_info_affiliation:"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci",muc_removed_membersonly:"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...",muc_removed_info_membersonly:"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków",muc_removed_shutdown:"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi",Reason:"Powód",message_not_send:"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje",message_not_send_forbidden:"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju",This_room_has_been_closed:"Ten pokój został zamknięty",Room_logging_is_enabled:"Logowanie do pokoju jest włączone",A_password_is_required:"Hasło jest wymagane",You_are_not_on_the_member_list:"Nie jesteś na liście członków",You_are_banned_from_this_room:"Zostałeś zbanowany w tym pokoju",Your_desired_nickname_:"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną",The_maximum_number_:"Została osiągnięta maksymalna liczba użytkowników w tym pokoju",This_room_is_locked_:"Ten pokój jest zablokowany",You_are_not_allowed_to_create_:"Nie masz uprawnień do tworzenia pokoju",Alert:"Alarm",Call_started:"Rozmowa rozpoczęta",Call_terminated:"Rozmowa zakończona",Carbon_copy:"Do wiadomości",Enable:"Włączone",jingle_reason_busy:"zajęte",jingle_reason_decline:"odmów",jingle_reason_success:"zakończono",Media_failure:"Błąd mediów",No_local_audio_device:"Brak lokalnego urządzenia audio.",No_local_video_device:"Brak lokalnego urządzenia wideo.",Ok:"Ok",PermissionDeniedError:"Ty lub twoja przeglądarka odmówiła dostępu do audio/video",Use_local_audio_device:"Użyj lokalnego urządzenia audio.",Use_local_video_device:"Użyj lokalnego urządzenia wideo.",is_:"jest __status__",You_received_a_message_from_an_unknown_sender_:"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?",Your_roster_is_empty_add_:"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>",onsmp_explanation_question:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.",onsmp_explanation_secret:"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.",from_sender:"z __sender__",Verified_private_conversation_started:"Zweryfikowano Rozmowa prywatna rozpoczęta.",Unverified_private_conversation_started:"Niezweryfikowano Rozmowa prywatna rozpoczęta.",Bookmark:"Zakładka","Auto-join":"Auto-połączenie",Edit_bookmark:"Edytuj zakładkę",Room_logging_is_disabled:"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy",Do_you_want_to_change_the_default_room_configuration:"Chcesz zmienić domyślną konfigurację pokoju?",Default:"Domyślny",Change:"Zmień",Send_file:"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"pt-BR":{translation:{Logging_in:"Entrando...",your_connection_is_unencrypted:"Sua conexão não é encriptada",your_connection_is_encrypted:"Sua conexão é encriptada",your_buddy_closed_the_private_connection:"Seu contato fechou a conexão privada",start_private:"Iniciar conversa privada",close_private:"Fechar conversa privada",your_buddy_is_verificated:"Seu contato está verificado",you_have_only_a_subscription_in_one_way:"Você só tem a inscrição one-way",authentication_query_sent:"Pergunta de autenticação enviada",your_message_wasnt_send_please_end_your_private_conversation:"Sua mensagem não foi enviada. Por favor finalize sua conversa privada",unencrypted_message_received:"Mensagem não encriptada recebida",not_available:"Indisponível",no_connection:"Sem conexão!",relogin:"reentrar",trying_to_start_private_conversation:"Tentando iniciar conversa privada",Verified:"Verificado",Unverified:"Não verificado",private_conversation_aborted:"Conversa privada abortada!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.",conversation_is_now_verified:"Conversa verificada.",authentication_failed:"Autenticação falhou.",Creating_your_private_key_:"Criando sua chave privada: isso pode demorar um pouco.",Authenticating_a_buddy_helps_:"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.",How_do_you_want_to_authenticate_your_buddy:"Como você gostaria de se autenticar __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Selecione o método...",Manual:"Manual",Question:"Pergunta",Secret:"Senha",To_verify_the_fingerprint_:"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.",Your_fingerprint:"Sua impressão digital",Buddy_fingerprint:"Impressão digital do contato",Close:"Fechar",Compared:"Comparado",To_authenticate_using_a_question_:"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.",Ask:"Pergunta",To_authenticate_pick_a_secret_:"Para autenticar, escolha um segredo que somente você e seu contato saibam.",Compare:"Compare",Fingerprints:"Impressões digitais",Authentication:"Autenticação",Message:"Mensagem",Add_buddy:"Adicionar contato",rename_buddy:"renomear contato",delete_buddy:"remover contato",Login:"Entrar",Username:"Usuário",Password:"Senha",Cancel:"Cancelar",Connect:"Conectar",Type_in_the_full_username_:"Digite seu nome completo e um apelido opcional.",Alias:"Apelido",Add:"Adicionar",Subscription_request:"Pedido de inscrição",You_have_a_request_from:"Você tem um pedido de",Deny:"Negar",Approve:"Aprovar",Remove_buddy:"Remover contato",You_are_about_to_remove_:"Você está prestes a remover __bid_name__ (<b>__bid_jid__</b>) de sua lista de contatos. Todas as conversas serão fechadas.",Continue_without_chat:"Continue sem converar",Please_wait:"Por favor aguarde",Login_failed:"Autenticação da conversa falhou",Sorry_we_cant_authentikate_:"A autenticação com o servidor falhou. Talvez seja a senha errada?",Retry:"Voltar",clear_history:"Limpar histórico",New_message_from:"Nova mensagem de __name__",Should_we_notify_you_:"Devemos continuar notificando sobre novas mensagens no futuro?",Please_accept_:'Por favor clique no botão "Permitir" na parte superior.',Hide_offline:"Esconder contatos desconectados",Show_offline:"Mostrar contatos desconectados",About:"Sobre",dnd:"Não perturbe",Mute:"Mudo",Unmute:"Ligar",
+Subscription:"Inscrição",both:"ambos",Status:"Status",online:"online",chat:"conversa",away:"ausente",xa:"ausente por mais tempo",offline:"desativado",none:"nenhum",Unknown_instance_tag:"Marcação desconhecida da instância",Not_one_of_our_latest_keys:"Nenhuma de nossas ultimas chaves.",Received_an_unreadable_encrypted_message:"Mensagem encriptada ilegível foi recebida.",Online:"Online",Chatty:"Tagarela",Away:"Ausente",Extended_away:"Ausente por mais tempo",Offline:"Desativado",Friendship_request:"Pedido de amizade",Confirm:"Confirmar",Dismiss:"Ignorar",Remove:"Remover",Online_help:"Ajuda online",FN:"Nome completo",N:" ",FAMILY:"Sobrenome",GIVEN:"Nome",NICKNAME:"Apelido",URL:"URL",ADR:"Endereço",STREET:"Rua, Av, etc",EXTADD:"Complemento",LOCALITY:"Localidade",REGION:"Região",PCODE:"CEP",CTRY:"País",TEL:"Telefone",NUMBER:"Número",EMAIL:"Email",USERID:" IDUsuário",ORG:"Empresa",ORGNAME:"Nome",ORGUNIT:"Unidade",TITLE:"Cargo",ROLE:"Função",BDAY:"Data de nascimento",DESC:"Descrição",PHOTO:"Foto",send_message:"Enviar mensagem",get_info:"Exibir informações",Settings:"Configurações",Priority:"Prioridade",Save:"Salvar",User_settings:"Configurações do usuário",A_fingerprint_:"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.",is:"é",Login_options:"Opções de login",BOSH_url:"BOSH URL",Domain:"Domínio",Resource:"Recurso",On_login:"Ao autenticar",Received_an_unencrypted_message:"Mensagem não encriptada recebida",Sorry_your_buddy_doesnt_provide_any_information:"Desculpe, seu contato não forneceu nenhuma informação",Info_about:"Informações sobre",Authentication_aborted:"Autenticação encerrada.",Authentication_request_received:"Pedido de autenticação recebido",Log_in_without_chat:"Entrar sem conversar",has_come_online:"ficou online",Unknown_sender:"Emissor desconhecido",Please_allow_access_to_microphone_and_camera:'Por favor clique no botão "Permitir" no topo, para conceder acesso ao seu microfone e câmera.',Incoming_call:"Recebendo chamada",from:"de",Do_you_want_to_accept_the_call_from:"Você aceita a chamada de",Reject:"Negar",Accept:"Aceitar",hang_up:"desligar",snapshot:"registrar imagem",mute_my_audio:"mudo",pause_my_video:"pausar vídeo",fullscreen:"tela cheia",Info:"Informações",Local_IP:"IP local",Remote_IP:"IP remoto",Local_Fingerprint:"Fingerprint local",Remote_Fingerprint:"Fingerprint remoto",Video_call_not_possible:"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.",Start_video_call:"Iniciar chamada de vídeo",Join_chat:"Entrar no chat",Join:"Entrar",Room:"Sala",Nickname:"Apelido",left_the_building:"__nickname__ deixou o prédio",entered_the_room:"__nickname__ entrou na sala",is_now_known_as:"__oldNickname__ agora é conhecido como __newNickname__",This_room_is:"Esta sala é",muc_hidden:{keyword:"oculto",description:"Não pode ser encontrado através de pesquisa"},muc_membersonly:{keyword:"apenas para membros",description:"você precisa estar na lista de membros"},muc_moderated:{keyword:"moderado",description:'Somente pessoas com "voice" podem enviar mensagens'},muc_nonanonymous:{keyword:"não-anônimo",description:"Seu id jabber esta esposto para todos os outros ocupantes"},muc_open:{keyword:"abrir",description:"Todos podem entrar"},muc_passwordprotected:{keyword:"protegido por senha",description:"você precisa fornecer a senha correta"},muc_persistent:{keyword:"persistente",description:"Não será destruída se o último ocupante tiver saído"},muc_public:{keyword:"público",description:"pode ser localizado pela busca"},muc_semianonymous:{keyword:"semi-anônimos",description:"Sua identificação jabber só é exposta para administradores da sala"},muc_temporary:{keyword:"temporário",description:"Será destruída se o último ocupante tiver saído"},muc_unmoderated:{keyword:"sem moderação",description:"Todos tem permissão de enviar mensagens"},muc_unsecured:{keyword:"inseguro",description:"Você não precisa de senha para entrar"},Continue:"Avançar",Server:"Servidor",Rooms_are_loaded:"Sala carregada",Could_load_only:"Pode carregar somente __count__ salas para autocompletar",muc_explanation:"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat",You_already_joined_this_room:"Você já entrou nesta sala",This_room_will_be_closed:"Esta sala será fechada",Room_not_found_:"Uma nova sala será criada",Loading_room_information:"Carregar informação da sala",Destroy:"Destruir",Leave:"Sair",changed_subject_to:'__nickname__ alterar o assunto da sala para "__subject__"',muc_removed_kicked:"Você foi removido da sala",muc_removed_info_kicked:"__nickname__ foi removido da sala",muc_removed_banned:"Você foi banido da sala",muc_removed_info_banned:"__nickname__ foi banido da sala",muc_removed_affiliation:"Você foi removido da sala pois a sala, por que a afiliação mudou",muc_removed_info_affiliation:"__nickname__ foi removido da sala, por que a afiliação mudou",muc_removed_membersonly:"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro",muc_removed_info_membersonly:"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro",muc_removed_shutdown:"Você foi removido da sala, por que o serviço MUC esta sendo desligado",Reason:"Motivo",message_not_send:"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais",message_not_send_forbidden:"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala",This_room_has_been_closed:"Essa sala foi fechada",Room_logging_is_enabled:"O Logging esta habilitado",A_password_is_required:"Senha é obrigatória",You_are_not_on_the_member_list:"Você não esta na lista de usuarios",You_are_banned_from_this_room:"Você foi banido desta sala",Your_desired_nickname_:"O nickname escolhido já esta em uso. Por favor escolha outro",The_maximum_number_:"O número máximo de usuarios já foi antigido para essa sala",This_room_is_locked_:"A sala esta trancada",You_are_not_allowed_to_create_:"Você não esta autorizado para criar uma sala",Alert:"Alerta",Call_started:"Chamada iniciada",Call_terminated:"Chamada finalizada",Carbon_copy:"Copia carbono",Enable:"Habilitado",jingle_reason_busy:"ocupado",jingle_reason_decline:"recusado",jingle_reason_success:"sucesso",Media_failure:"Media falhou",No_local_audio_device:"sem dispositivo local de audio",No_local_video_device:"sem dispositivo local de video",Ok:"Ok",PermissionDeniedError:"Você ou seu navegador negou permissão para acessar audio/video",Use_local_audio_device:"Usar dispositivo local de audio",Use_local_video_device:"Usar dispositivo local de video",is_:"é __status__",You_received_a_message_from_an_unknown_sender_:"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?",Your_roster_is_empty_add_:"Sua lista está vazia, adicione um <a>novo contato</a>",onsmp_explanation_question:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.",onsmp_explanation_secret:"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.",from_sender:"de __sender__",Verified_private_conversation_started:"Verificado Conversa privada iniciada.",Unverified_private_conversation_started:"Não verificado Conversa privada iniciada.",Bookmark:"Favoritos","Auto-join":"Entrar Automaticamente",Edit_bookmark:"Editar favoritos",Room_logging_is_disabled:"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora",Do_you_want_to_change_the_default_room_configuration:"Você quer alterar as configurações da sala?",Default:"Padrão",Change:"Alterar",Send_file:"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},ro:{translation:{Logging_in:"Autentificare...",your_connection_is_unencrypted:"Conexiunea nu este criptată.",your_connection_is_encrypted:"Conexiunea este criptată.",your_buddy_closed_the_private_connection:"Interlocutorul a închis conexiunea privată.",start_private:"Pornește în privat",close_private:"Închide privat",your_buddy_is_verificated:"Interlocutorul este verificat.",you_have_only_a_subscription_in_one_way:"Subscrierea este într-o singură direcție.",authentication_query_sent:"Cererea de autentificare a fost trimisă.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajul nu a fost trimis. Te rog închide conversația în privat.",unencrypted_message_received:"A fost primit un mesaj necriptat",not_available:"Indisponibil",no_connection:"Fără conexiune!",relogin:"Re-autentificare",trying_to_start_private_conversation:"Se încearcă deschiderea conversației în privat!",Verified:"Verificat",Unverified:"Neverificat",private_conversation_aborted:"Conversație în privat eșuată!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.",conversation_is_now_verified:"Conversația este acum verificată.",authentication_failed:"Autentificarea a eşuat.",Creating_your_private_key_:"Se crează cheia privată; ar putea să dureze ceva timp.",Authenticating_a_buddy_helps_:"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.",How_do_you_want_to_authenticate_your_buddy:"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)",Select_method:"Alege metoda...",Manual:"Manual",Question:"Întrebare",Secret:"Secret",To_verify_the_fingerprint_:"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.",Your_fingerprint:"Amprenta ta",Buddy_fingerprint:"Amprenta interlocutorului",Close:"Închide",Compared:"Prin comparație",To_authenticate_using_a_question_:"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.",Ask:"Întreabă",To_authenticate_pick_a_secret_:"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.",Compare:"Compară",Fingerprints:"Amprente",Authentication:"Autentificare",Message:"Mesaj",Add_buddy:"Adaugă contact",rename_buddy:"redenumește contact",delete_buddy:"șterge contact",Login:"Logare",Username:"Utilizator",Password:"Parolă",Cancel:"Renunță",Connect:"Conectare",Type_in_the_full_username_:"Scrie numele complet al utilizatorului și un alias opțional.",Alias:"Alias",Add:"Adaugă",Subscription_request:"Cerere de subscriere",You_have_a_request_from:"Ai o cerere de la",Deny:"Refuză",Approve:"Aprobă",Remove_buddy:"Șterge contact",You_are_about_to_remove_:"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.",Continue_without_chat:"Continuă fără chat",Please_wait:"Te rog așteaptă",Login_failed:"Logarea pe chat a eșuat",Sorry_we_cant_authentikate_:"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?",Retry:"Înapoi",clear_history:"Curăță istoria",New_message_from:"Un nou mesaj de la __name__",Should_we_notify_you_:"Vrei să fi notificat despre mesajele noi în viitor ?",Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},ru:{translation:{Logging_in:"Вход в систему...",your_connection_is_unencrypted:"Ваше соединение не зашифровано.",your_connection_is_encrypted:"Ваше соединение зашифровано.",your_buddy_closed_the_private_connection:"Ваш собеседник закончил зашифрованное соединение.",start_private:"Начать зашифрованный чат",close_private:"Закончить зашифрованный чат",your_buddy_is_verificated:"Собеседник подтвержден.",you_have_only_a_subscription_in_one_way:"У вас только односторонняя подписка.",authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.",unencrypted_message_received:"Получено незашифрованное сообщение",not_available:"Не доступен",no_connection:"Нет соединения!",relogin:"переподключиться",trying_to_start_private_conversation:"Попытка начать зашифрованный чат!",Verified:"Подтверждено",Unverified:"Не подтверждено",private_conversation_aborted:"Зашифрованный чат отклонен!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.",conversation_is_now_verified:"Чат теперь утвержден.",authentication_failed:"Ошибка авторизации.",Creating_your_private_key_:"Создается приватный ключ. Это может занять некоторое время",Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:"Выберите метод...",Manual:"Вручную",Question:"Вопрос",Secret:"Пароль",To_verify_the_fingerprint_:null,Your_fingerprint:"Ваш отпечаток",Buddy_fingerprint:"Отпечаток собеседника",Close:"Закрыть",Compared:"Сравнение завершено",To_authenticate_using_a_question_:"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.",Ask:null,To_authenticate_pick_a_secret_:"Для авторизации выберите пароль, который знаете только Вы и собеседник.",Compare:"Сравнить",Fingerprints:"Отпечатки",Authentication:"Авторизация",Message:"Сообщение",Add_buddy:"Добавить контакт",rename_buddy:"переименовать контакт",delete_buddy:"удалить контакт",Login:"Вход",Username:"Логин",Password:"Пароль",Cancel:"Отмена",Connect:"Подключить",Type_in_the_full_username_:"Введите полное имя пользователя и дополнительный псевдоним",Alias:"Псевдоним",Add:"Добавить",Subscription_request:"Запрос подписки",You_have_a_request_from:"Получен запрос от",Deny:"Отказ",Approve:"Подтвердить",Remove_buddy:"Удалить контакт",You_are_about_to_remove_:"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.",Continue_without_chat:"Продолжить без чата",Please_wait:"Подождите…",Login_failed:"Неудачный вход в чат",Sorry_we_cant_authentikate_:"Неудачная попытка входа",Retry:"Назад",clear_history:"Очистить историю",New_message_from:"Новое сообщение от __name__",Should_we_notify_you_:"Уведомлять о новых сообщениях в будущем?",Please_accept_:'Нажмите кнопку "Разрешить" вверху страницы, пожалуйста',Hide_offline:"Спрятать отключенных",Show_offline:"Показать отключенных",About:"О проекте",dnd:"Не беспокоить",Mute:"Выкл. уведомления",Unmute:"Вкл. уведомления",Subscription:"Подписка",both:"оба",Status:"Статус",online:"в сети",chat:"готов общаться",away:"отошел",xa:"отсутствую",offline:"не в сети",none:"нет",Unknown_instance_tag:"Неизвестный тег.",Not_one_of_our_latest_keys:"Ни один из наших последних ключей",Received_an_unreadable_encrypted_message:"Получено нечитаемое зашифрованное сообщение",Online:"В сети",Chatty:"Готов общаться",Away:"Отошел",Extended_away:"Отсутствую",Offline:"Не в сети",Friendship_request:"Запрос на добавление в контакты",Confirm:"Подтвердить",Dismiss:"Отклонить",Remove:"Удалить",Online_help:"Онлайн помощь",FN:"Полное имя",N:null,FAMILY:"Фамилия",GIVEN:"Имя",NICKNAME:"Ник",URL:"URL",ADR:"Адрес",STREET:"Улица",EXTADD:"Дополнительный адрес",LOCALITY:"Город",REGION:"Область",PCODE:"Индекс",CTRY:"Страна",TEL:"Телефон",NUMBER:"Номер",EMAIL:"Почта",USERID:null,ORG:"Организация",ORGNAME:"Название",ORGUNIT:"Отдел",TITLE:"Должность",ROLE:"Обязанности",BDAY:"День рождения",DESC:"Описание",PHOTO:" Фото ",send_message:"Отправить сообщение",get_info:"Показать информацию",Settings:"Настройки",Priority:"Приоритет",Save:"Сохранить",User_settings:"Пользовательские настройки",A_fingerprint_:null,is:" ",Login_options:"Параметры входа",BOSH_url:"BOSH URL",Domain:"Домен",Resource:"Ресурс",On_login:"Автоматически подключаться",Received_an_unencrypted_message:"Получено незашифрованное сообщение",Sorry_your_buddy_doesnt_provide_any_information:"К сожалению, контакт не предоставил какой-либо информации.",Info_about:"Информация о",Authentication_aborted:"Аутентификация прервана.",Authentication_request_received:"Получен запрос проверки подлинности.",Log_in_without_chat:"Вход без чата",has_come_online:"появился в сети",Unknown_sender:"Неизвестный отправитель",Please_allow_access_to_microphone_and_camera:'Нажмите кнопку "Разрешить" вверху страницы, чтобы предоставить доступ к микрофону и камере.',Incoming_call:"Входящий вызов",from:"от",Do_you_want_to_accept_the_call_from:"Вы хотите принять вызов от",Reject:"Отклонить",Accept:"Принять",hang_up:"Завершить",snapshot:"Снимок",mute_my_audio:"Без звука",pause_my_video:"Остановить моё видео",fullscreen:"На весь экран",Info:"Инфо",Local_IP:"Мой IP",Remote_IP:"Удаленный IP",Local_Fingerprint:"Мой отпечаток",Remote_Fingerprint:"Удаленный отпечаток",Video_call_not_possible:"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.",Start_video_call:"Видео-вызов",Join_chat:"Присоединиться к комнате",Join:"Присоедениться",Room:"Комната",Nickname:"Ник",left_the_building:"__nickname__ выходит из комнаты",entered_the_room:"__nickname__ заходит в комнату",is_now_known_as:"__oldNickname__ теперь известен как __newNickname__",This_room_is:"Эта комната",muc_hidden:{keyword:"скрыта",description:"не может быть найдена через поиск"},muc_membersonly:{keyword:"только для участников",description:"Вы должны быть в списке участников"},muc_moderated:{keyword:"модерируется",description:"Только пользователи с правом голоса могут отправлять сообщения"},muc_nonanonymous:{keyword:"неанонимная",description:"Ваш JID будет показан всем посетителям"},muc_open:{keyword:"открытая",description:"Любой пользователь может присоедениться"},muc_passwordprotected:{keyword:"защищена паролем",description:"Необходимо ввести правильный пароль"},muc_persistent:{keyword:"постоянная",description:"Не будет уничтожена, когда ее покинут все участники"},muc_public:{keyword:"публичная",description:"Может быть найдена через поиск"},muc_semianonymous:{keyword:"полу-анонимная",description:"Ваш JID могут увидеть только администраторы"},muc_temporary:{keyword:"временная",description:"Будет уничтожена как только не останется ни одного участника"},muc_unmoderated:{keyword:"не модерируется",description:"Любой посетитель может отправлять сообщения"},muc_unsecured:{keyword:"без пароля",description:"Не нужно вводить пароль для входа"},Continue:"Далее",Server:"Сервер",Rooms_are_loaded:"Комнаты загружены",Could_load_only:"Подгрузка только __count__ комнат в автодополнении",muc_explanation:"Введите название комнаты, свой ник и пароль для входа в комнату",You_already_joined_this_room:"Вы уже в этой комнате",This_room_will_be_closed:"Эта комната была закрыта",Room_not_found_:"Новая комната будет создана",Loading_room_information:"Загрузка информации о комнате",Destroy:"Уничтожить",Leave:"Покинуть",changed_subject_to:'__nickname__ изменил тему комнаты на "__subject__"',muc_removed_kicked:"Вас выкинули из комнаты",muc_removed_info_kicked:"__nickname__ был удален из комнаты",muc_removed_banned:"Вас забанили в комнате",muc_removed_info_banned:"__nickname__ был забанен в комнате",muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь",muc_removed_info_membersonly:"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является",muc_removed_shutdown:"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен",Reason:"Причина",message_not_send:"Ваше сообщение не было отправлено из-за ошибки","message_not_send_item-not-found":"Ваше сообщение не было отправлено, т.к. этой комнаты не существует",message_not_send_forbidden:"Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате","message_not_send_not-acceptable":"Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты",This_room_has_been_closed:"Эта комната была закрыта",Room_logging_is_enabled:"Журналирование комнаты включено",A_password_is_required:"Необходим пароль",You_are_not_on_the_member_list:"Вы не в списке участников",You_are_banned_from_this_room:"Вас забанили в этой комнате",Your_desired_nickname_:"Данное имя пользователя уже занято, пожалуйста, выберите другое имя пользователя",The_maximum_number_:"Достигнут лимит максимального количества посетителей этой комнаты",This_room_is_locked_:"Эта комната заблокирована",You_are_not_allowed_to_create_:"Вы не можете создавать комнаты",Alert:"Внимание",Call_started:"Вызов начался",Call_terminated:"Вызов завершен",Carbon_copy:"Копировать сообщения",Enable:"Включить",jingle_reason_busy:"занято",jingle_reason_decline:"запрещено",jingle_reason_success:"сбросили",Media_failure:"Ошибка передачи медиа",No_local_audio_device:"Нет локального аудио-устройства.",No_local_video_device:"Нет локального видео-устройства.",Ok:"Ок",PermissionDeniedError:"Вы или Ваш браузер запретили использовать микрофон/камеру",Use_local_audio_device:"Использовать локальное аудио-устройство.",Use_local_video_device:"Использовать локальное видео-устройство.",is_:"__status__",You_received_a_message_from_an_unknown_sender_:"Вы получили сообщение от неизвестного отправителя (__sender__)",Your_roster_is_empty_add_:"Ваш список контактов пуст, добавить <a>новый контакт</a>",onsmp_explanation_question:"Собеседник пытается определить, что общается действительно с Вами.",onsmp_explanation_secret:"Собеседник пытается определить, что общается действительно с Вами. введите пароль.",from_sender:"от __sender__",Verified_private_conversation_started:"Подтверждено Зашифрованный чат начат.",Unverified_private_conversation_started:"Не подтверждено Зашифрованный чат начат.",Bookmark:"Закладка","Auto-join":"Автоматически входить",Edit_bookmark:"Редактировать закладку",Room_logging_is_disabled:"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:"Вы хотите изменить стандартную конфигурацию комнаты?",Default:"Станд.",Change:"Изменить",Send_file:"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"sv-SE":{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,
+Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"tr-TR":{translation:{Logging_in:"Giriş yapılıyor…",your_connection_is_unencrypted:"Bağlantınız şifrelenmemiş.",your_connection_is_encrypted:"Bağlantınız şifrelenmiş.",your_buddy_closed_the_private_connection:"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.",start_private:"Özel bağlantı başlat.",close_private:"Özel bağlantıyı kapat.",your_buddy_is_verificated:"Kişi doğrulandı.",you_have_only_a_subscription_in_one_way:"Sadece tek yönlü bir aboneliğiniz var.",authentication_query_sent:"Kimlik doğrulama sorgusu gönderildi.",your_message_wasnt_send_please_end_your_private_conversation:"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.",unencrypted_message_received:"Şifrelenmemiş mesaj alındı",not_available:"Müsait değil",no_connection:"Bağlantı yok!",relogin:"Yeniden gir",trying_to_start_private_conversation:"Özel sohbet başlatılmaya çalışılıyor!",Verified:"Doğrulandı",Unverified:"Doğrulanamadı",private_conversation_aborted:"Özel sohbet iptal edildi!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.",conversation_is_now_verified:"Sohbet doğrulandı.",authentication_failed:"Kimlik doğrulama başarısız.",Creating_your_private_key_:"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.",Authenticating_a_buddy_helps_:"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.",How_do_you_want_to_authenticate_your_buddy:"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?",Select_method:"Yöntemi seçin...",Manual:"Elle",Question:"Soru",Secret:"Gizli anahtar",To_verify_the_fingerprint_:"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.",Your_fingerprint:"Parmakiziniz",Buddy_fingerprint:"Kişinin parmakizi",Close:"Kapat",Compared:"Kıyaslandı",To_authenticate_using_a_question_:"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.",Ask:"Sor",To_authenticate_pick_a_secret_:"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.",Compare:"Karşılaştır",Fingerprints:"Parmakizleri",Authentication:"Kimlik doğrulama",Message:"İleti",Add_buddy:"Kişi ekle",rename_buddy:"Kişiyi yeniden adlandır",delete_buddy:"Kişiyi sil",Login:"Giriş",Username:"Kullanıcı adı",Password:"Şifre",Cancel:"iptal",Connect:"Bağlan",Type_in_the_full_username_:"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.",Alias:"Takma ad",Add:"Ekle",Subscription_request:"Abonelik isteği",You_have_a_request_from:"Size gelen bir istek var",Deny:"Reddet",Approve:"Onayla",Remove_buddy:"Kişiyi çıkar",You_are_about_to_remove_:"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.",Continue_without_chat:"Sohbet etmeden devam et",Please_wait:"Lütfen bekleyin",Login_failed:"Sohbet girişi başarısız oldu",Sorry_we_cant_authentikate_:"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.",Retry:"Geri",clear_history:"Geçmişi sil",New_message_from:"__name__ adlı kişiden yeni bir mesaj aldınız",Should_we_notify_you_:"İleride aldığınız yeni mesajları size bildirelim mi?",Please_accept_:'Lütfen üstteki "İzin ver" düğmesini tıklayın.',Hide_offline:"Çevrimdışı kişileri gizle",Show_offline:"Çevrimdışı kişileri göster",About:"hakkında",dnd:"Rahatsız etmeyin",Mute:"Sessiz",Unmute:"Sesli",Subscription:"Üyelik",both:"her ikisi de",Status:"Durum",online:"çevrimiçi",chat:"sohbet",away:"uzakta",xa:"çok uzakta",offline:"çevrimdışı",none:"hiç biri",Unknown_instance_tag:"Bilinmeyen örnek etiketi.",Not_one_of_our_latest_keys:"En son anahtarlarımızdan biri değil.",Received_an_unreadable_encrypted_message:"Okunamayan şifrelenmiş bir mesaj alındı.",Online:"Çevrimiçi",Chatty:"Konuşkan",Away:"Uzakta",Extended_away:"Çok uzakta",Offline:"Çevrimdışı",Friendship_request:"İrtibat isteği",Confirm:"Onayla",Dismiss:"Reddet",Remove:"Çıkar",Online_help:"Çevrimiçi yardım",FN:"Tam adı",N:" ",FAMILY:"Soyadı",GIVEN:"Adı",NICKNAME:"Takma ad",URL:"URL",ADR:"Adres",STREET:"Sokak",EXTADD:"Genişletilmiş Adres",LOCALITY:"Yer",REGION:"Bölge",PCODE:"Posta Kodu",CTRY:"Ülke",TEL:"Telefon",NUMBER:"Numara",EMAIL:"Eposta",USERID:" ",ORG:"Organizasyon",ORGNAME:"İsim",ORGUNIT:"Birim",TITLE:"İş tenımı",ROLE:"Görevi",BDAY:"Doğum günü",DESC:"Tanım",PHOTO:" ",send_message:"İletiyi gönder",get_info:"Bilgileri göster",Settings:"Ayarlar",Priority:"Öncelik",Save:"Kaydet",User_settings:"Kullanıcı tercihleri",A_fingerprint_:"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.",is:"Eşit",Login_options:"Giriş seçenekleri",BOSH_url:"BOSH URL",Domain:"Alan adı",Resource:"Kaynak",On_login:"Girişte",Received_an_unencrypted_message:"Şifrelenmemiş bir mesaj alındı",Sorry_your_buddy_doesnt_provide_any_information:"Maalesef kişi her hangi bir bilgi sunmamış.",Info_about:"Bilinen özellikleri",Authentication_aborted:"Kimlik doğrulama iptal edildi.",Authentication_request_received:"Kimlik doğrulama isteği alındı.",Log_in_without_chat:"Sohbetsiz giriş yap",has_come_online:"Çevrimiçi oldu",Unknown_sender:"Bilinmeyen gönderen",Please_allow_access_to_microphone_and_camera:'Mikrofona ve kameraya erişime izin vermek için lütfen üstteki "İzin Ver" düğmesini tıklayın.',Incoming_call:"Gelen çağrı",from:"gönderen",Do_you_want_to_accept_the_call_from:"Gelen aramayı kabul etmek istiyor musunuz",Reject:"Reddet",Accept:"Kabul et",hang_up:"aramayı sonlandır",snapshot:"anlık fotoğraf",mute_my_audio:"Sesi kapat",pause_my_video:"videoyu duraklat",fullscreen:"tam ekran",Info:"bilgi",Local_IP:"Yerel IP",Remote_IP:"Uzak IP",Local_Fingerprint:"Yerel parmakizi",Remote_Fingerprint:"Uzak parmakizi",Video_call_not_possible:"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.",Start_video_call:"Video görüşmesini başlat",Join_chat:"Sohbete katıl",Join:"Katıl",Room:"Oda",Nickname:"Takma ad",left_the_building:"__nickname__ binadan ayrıldı",entered_the_room:"__nickname__ odaya girdi",is_now_known_as:"__oldNickname__ şimdi __newNickname__ olarak biliniyor",This_room_is:"Bu oda",muc_hidden:{keyword:"gizli",description:"Arama yoluyla bulunamıyor"},muc_membersonly:{keyword:"sadece-üye-olanlar",description:"üye listenizde olmanız gerekiyor"},muc_moderated:{keyword:"yöneticili",description:'Yalnızca "sesli" kişilerin mesaj göndermesine izin verilir'},muc_nonanonymous:{keyword:"Anonim-değil",description:"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},muc_open:{keyword:"açık",description:"herkes katılabilir"},muc_passwordprotected:{keyword:"şifre-korumalı",description:"Doğru şifreyi girmeniz gerekiyor"},muc_persistent:{keyword:"kalıcı",description:"Son oturan ayrıldığında kapanmaz"},muc_public:{keyword:"herkese açık",description:"Arama yoluyla bulunabilir"},muc_semianonymous:{keyword:"yarı-anonim",description:"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},muc_temporary:{keyword:"geçici",description:"Son oturan ayrıldığında kapanır"},muc_unmoderated:{keyword:"yöneticisiz",description:"herkes ileti gönderebilir"},muc_unsecured:{keyword:"güvensiz",description:"şifre girmenize gerek yok"},Continue:"Devam",Server:"Sunucu",Rooms_are_loaded:"Oda yüklendi",Could_load_only:"Sadece __count__ oda otomatik tamamlamayla yüklenebilir",muc_explanation:"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin",You_already_joined_this_room:"Zaten bu odaya katılmış durumdasınız",This_room_will_be_closed:"Bu oda kapanacak",Room_not_found_:"Yeni oda oluşturulacak",Loading_room_information:"Oda bilgileri yükleniyor",Destroy:"Sil",Leave:"Ayrıl",changed_subject_to:'__nickname__ bu odanın konusunu "__subject__" olarak değiştirdi',muc_removed_kicked:"Bu odadan atıldınız",muc_removed_info_kicked:"__nickname__ bu odadan atıldı",muc_removed_banned:"Odadan yasaklandınız",muc_removed_info_banned:"__nickname__ odadan yasaklandınız",muc_removed_affiliation:"Üyelik değişikliği nedeniyle odadan çıkarıldınız",muc_removed_info_affiliation:"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı",muc_removed_membersonly:"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız",muc_removed_info_membersonly:"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı",muc_removed_shutdown:"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı",Reason:"Sebep",message_not_send:"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil",message_not_send_forbidden:"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz",This_room_has_been_closed:"Bu oda kapatıldı",Room_logging_is_enabled:"Oda günlüğü etkinleştirildi",A_password_is_required:"Şifre gerekli",You_are_not_on_the_member_list:"Üye listesinde değilsiniz",You_are_banned_from_this_room:"Bu odadan yasaklandınız",Your_desired_nickname_:"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad",The_maximum_number_:"Bu odada maksimum kullanıcı sayısına ulaşıldı",This_room_is_locked_:"Bu oda kilitli",You_are_not_allowed_to_create_:"Oda açma izniniz yok",Alert:"Uyarı",Call_started:"Arama başlatıldı",Call_terminated:"Arama bitirildi",Carbon_copy:"Karbon kopya",Enable:"Etkinleştir",jingle_reason_busy:"meşgul",jingle_reason_decline:"kabul etme",jingle_reason_success:"kapatıldı",Media_failure:"Medya istek hatası",No_local_audio_device:"Yerel ses cihazı bulunamadı.",No_local_video_device:"Yerel video cihazı bulunamadı.",Ok:"Tamam",PermissionDeniedError:"Siz veya tarayıcınız sesli/görüntülü izni reddetti",Use_local_audio_device:"Yerel video cihazını kullan.",Use_local_video_device:"Yerel video cihazını kullanın.",is_:"__status__",You_received_a_message_from_an_unknown_sender_:"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?",Your_roster_is_empty_add_:"Listeniz boş, yeni bir <a>kişi ekleyin</a>",onsmp_explanation_question:"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.",onsmp_explanation_secret:"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.",from_sender:"__sender__'den",Verified_private_conversation_started:"Doğrulanmış Özel görüşme başladı.",Unverified_private_conversation_started:"Doğrulanmamış Özel görüşme başladı.",Bookmark:"Yer imi","Auto-join":"Otomatik katıl",Edit_bookmark:"yer imini düzenle",Room_logging_is_disabled:"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim",Do_you_want_to_change_the_default_room_configuration:"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?",Default:"Öntanımlı",Change:"Değiştir",Send_file:"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.",_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"vi-VN":{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}},"zh-TW":{translation:{Logging_in:"正在登入…",your_connection_is_unencrypted:"連線沒加密。",your_connection_is_encrypted:"連線有加密。",your_buddy_closed_the_private_connection:"聯絡人關閉了加密連線。",start_private:"開始加密",close_private:"結束加密",your_buddy_is_verificated:"聯絡人已校驗。",you_have_only_a_subscription_in_one_way:"只有單向訂閱。",authentication_query_sent:"驗證要求送出了。",your_message_wasnt_send_please_end_your_private_conversation:"訊息沒送出去。請結束加密的對話。",unencrypted_message_received:"收到沒加密的訊息",not_available:"不存在",no_connection:"沒有連線!",relogin:"重新登入",trying_to_start_private_conversation:"正在試著開始加密的對話!",Verified:"已校驗",Unverified:"未校驗",private_conversation_aborted:"加密的對話中斷了!",your_buddy_closed_the_private_conversation_you_should_do_the_same:"聯絡人把這場加密的對話關掉了!你也應該同樣關掉。",conversation_is_now_verified:"對話現在校驗過了。",authentication_failed:"驗證失敗。",Creating_your_private_key_:"正在產生你的私人金鑰,會花一段時間。",Authenticating_a_buddy_helps_:"聯絡人驗證可以確保跟你說話的是真的那個人。",How_do_you_want_to_authenticate_your_buddy:"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?",Select_method:"選個方式...",Manual:"手動",Question:"問答",Secret:"祕密",To_verify_the_fingerprint_:"要校驗聯絡人的電子指紋,請透過其他可靠的管道跟她/他聯絡,比如說電話。",Your_fingerprint:"你的電子指紋",Buddy_fingerprint:"聯絡人的電子指紋",Close:"關閉",Compared:"比對正確",To_authenticate_using_a_question_:"要用問答來驗證的話,請找一個只有你和聯絡人才知道答案的問題。",Ask:"問題",To_authenticate_pick_a_secret_:"要驗證的話,請找一個只有你和聯絡人知道的祕密。",Compare:"比對",Fingerprints:"電子指紋",Authentication:"驗證",Message:"訊息",Add_buddy:"加聯絡人",rename_buddy:"重新命名聯絡人",delete_buddy:"刪掉聯絡人",Login:"登入",Username:"使用者名稱",Password:"密碼",Cancel:"取消",Connect:"連線",Type_in_the_full_username_:"請打全名,別名可有可無",Alias:"別名",Add:"加入",Subscription_request:"訂閱請求",You_have_a_request_from:"收到聯絡人的請求:",Deny:"拒絕",Approve:"同意",Remove_buddy:"刪除聯絡人",You_are_about_to_remove_:"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。",Continue_without_chat:"繼續不聊天",Please_wait:"請等一下",Login_failed:"登入聊天失敗",Sorry_we_cant_authentikate_:"跟聊天伺服器驗證失敗,會不會是密碼打錯了?",Retry:"上一步",clear_history:"清除歷史紀錄",New_message_from:"有新訊息:__name__",Should_we_notify_you_:"以後若有新訊息要通知你嗎?",Please_accept_:"請點上方的「允許」按鈕。",Hide_offline:"隱藏離線聯絡人",Show_offline:"顯示離線聯絡人",About:"關於我",dnd:"別打擾",Mute:"開靜音",Unmute:"關靜音",Subscription:"訂閱狀態",both:"雙向",Status:"狀態",online:"上線",chat:"聊天",away:"離開",xa:"離開很久",offline:"離線",none:"沒有",Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:"收到了一則加密但無法辨認的訊息。",Online:"上線",Chatty:"想聊天",Away:"離開",Extended_away:"離開很久",Offline:"離線",Friendship_request:"聯絡請求",Confirm:"確定",Dismiss:"取消",Remove:"刪掉",Online_help:"線上說明",FN:"全名",N:" ",FAMILY:"姓氏",GIVEN:"名字",NICKNAME:"綽號",URL:"網址",ADR:"位址",STREET:"地址",EXTADD:"更多位址",LOCALITY:"所在地",REGION:"區域",PCODE:"郵遞區號",CTRY:"國家",TEL:"電話",NUMBER:"編號",EMAIL:"電子郵件",USERID:" ",ORG:"團體",ORGNAME:"名稱",ORGUNIT:"單位",TITLE:"職稱",ROLE:"職位",BDAY:"生日",DESC:"簡介",PHOTO:" ",send_message:"發送訊息",get_info:"顯示帳號資訊",Settings:"設定",Priority:"優先度",Save:"儲存",User_settings:"使用者設定",A_fingerprint_:"電子指紋是用來確認跟你說話的是真的那個人。",is:"狀態:",Login_options:"登入選項",BOSH_url:"BOSH 網址",Domain:"網域",Resource:"資源",On_login:"登入啟動",Received_an_unencrypted_message:"收到了一則沒加密的訊息",Sorry_your_buddy_doesnt_provide_any_information:"抱歉,聯絡人沒有提供任何資訊。",Info_about:"帳號資訊:",Authentication_aborted:"驗證中斷。",Authentication_request_received:"驗證請求收到了。",Log_in_without_chat:"登入但不啟用聊天",has_come_online:"上線了",Unknown_sender:"不明傳訊人",Please_allow_access_to_microphone_and_camera:"請點上方的「接受」按鈕來允許我們使用麥克風和相機。",Incoming_call:"來電",from:"只出",Do_you_want_to_accept_the_call_from:"是否要接聽來電:",Reject:"拒絕",Accept:"接受",hang_up:"掛斷",snapshot:"截圖",mute_my_audio:"關掉我的聲音",pause_my_video:"暫停我的影像",fullscreen:"全螢幕",Info:"資料",Local_IP:"本機網路位址",Remote_IP:"遠端網路位址",Local_Fingerprint:"本機電子指紋",Remote_Fingerprint:"遠端電子指紋",Video_call_not_possible:"無法視訊通話。聯絡人不支援視訊。",Start_video_call:"開始視訊通話",Join_chat:"參加聊天",Join:"參加",Room:"聊天室",Nickname:"綽號",left_the_building:"__nickname__離開了大樓",entered_the_room:"__nickname__進入了聊天室",is_now_known_as:"__oldNickname__改名叫做__newNickname__",This_room_is:"聊天室屬性:",muc_hidden:{keyword:"隱藏",description:"搜尋也找不到"},muc_membersonly:{keyword:"限會員",description:"會員才會加入"},muc_moderated:{keyword:"有管制",description:"沒被消音的人才能送訊息"},muc_nonanonymous:{keyword:"禁匿名",description:"每個參與人都能看到你的 jabber 代碼"},muc_open:{keyword:"開放",description:"任何人都能參加"},muc_passwordprotected:{keyword:"密碼鎖",description:"要輸入正確的密碼才能加入"},muc_persistent:{keyword:"永久性",description:"最後一個參與人都離開了也不會結束"},muc_public:{keyword:"公開",description:"搜尋得到"},muc_semianonymous:{keyword:"半匿名",description:"只有聊天室管理員才看得到你的 jabber 代碼"},muc_temporary:{keyword:"暫時性",description:"最後一個參與人離開了就會結束"},muc_unmoderated:{keyword:"沒管制",description:"每個人都可以送訊息"},muc_unsecured:{keyword:"沒保護",description:"不需要密碼就能加入"},Continue:"繼續",Server:"伺服器",Rooms_are_loaded:"聊天室載入完成",Could_load_only:"只能載入__count__間聊天室供輸入自動完成使用",muc_explanation:"請輸入要參加的聊天室名稱,綽號和密碼非必要",You_already_joined_this_room:"你已經參加這間聊天室了",This_room_will_be_closed:"聊天室即將關閉",Room_not_found_:"新聊天室即將開啟",Loading_room_information:"正在載入聊天室資訊",Destroy:"關閉",Leave:"離開",changed_subject_to:'__nickname__把聊天室的標題改成了"__subject__"',muc_removed_kicked:"你被踢出聊天室了",muc_removed_info_kicked:"__nickname__被踢出聊天室了",muc_removed_banned:"你被禁止進入聊天室了",muc_removed_info_banned:"__nickname__被禁止進入聊天室了",muc_removed_affiliation:"你因為身份改變而離開聊天室了",muc_removed_info_affiliation:"__nickname__因為身份改變而離開聊天室了",muc_removed_membersonly:"你離開聊天室了,因為聊天室改為只限會員,但你不是會員",muc_removed_info_membersonly:"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員",muc_removed_shutdown:"你離開聊天室了,因為多人聊天服務正在關閉中。",Reason:"原因",message_not_send:"訊息因為發生錯誤沒送出去","message_not_send_item-not-found":"訊息沒送出去,因為聊天室不存在了",message_not_send_forbidden:"訊息沒送出去,因為你被消音了","message_not_send_not-acceptable":"訊息沒送出去,因為你不是聊天室的參與人了",This_room_has_been_closed:"聊天室已經關閉了",Room_logging_is_enabled:"聊天室紀錄打開了",A_password_is_required:"需要密碼",You_are_not_on_the_member_list:"你不是會員",You_are_banned_from_this_room:"你被禁止進入聊天室了",Your_desired_nickname_:"這個綽號被用掉了,請換一個",The_maximum_number_:"這間聊天室已經到達使用者數目的上限",This_room_is_locked_:"聊天室上鎖了",You_are_not_allowed_to_create_:"不允許你開新的聊天室",Alert:"警告",Call_started:"通話開始",Call_terminated:"通話結束",Carbon_copy:"副本",Enable:"打開",jingle_reason_busy:"忙線中",jingle_reason_decline:"被拒絕",jingle_reason_success:"被掛斷",Media_failure:"媒體錯誤",No_local_audio_device:"本機沒有音訊設備。",No_local_video_device:"本機沒有視訊設備。",Ok:"好",PermissionDeniedError:"你或你的瀏覽器拒絕了媒體使用權限",Use_local_audio_device:"使用本機音訊設備。",Use_local_video_device:"使用本機視訊設備。",is_:"狀態: __status__",You_received_a_message_from_an_unknown_sender_:"收到了不明人士(__sender__)傳來的訊息。你要打開來看嗎?",Your_roster_is_empty_add_:"好友清單是空的,請加<a>新的聯絡人</a>",onsmp_explanation_question:'聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入問題的答案,然後按"回答"。',onsmp_explanation_secret:"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入你們之間的祕密。",from_sender:"來自:__sender__",Verified_private_conversation_started:"加密且已校驗的對話開始了。",Unverified_private_conversation_started:"加密但未校驗的對話開始了。",Bookmark:"書籤","Auto-join":"自動參加",Edit_bookmark:"編輯書籤",Room_logging_is_disabled:"聊天室紀錄關掉了","Room_is_now_non-anoymous":"現在聊天室禁止匿名了","Room_is_now_semi-anonymous":"現在聊天室變半匿名了",Do_you_want_to_change_the_default_room_configuration:"你想要改變聊天室的預設配置嗎?",Default:"預設值",Change:"修改",Send_file:"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。",_is_composing:"正在打字中...",_are_composing:"正在打字中...",Chat_state_notifications:"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?",Share_screen:"分享螢幕",Incoming_stream:"有串流來",Stream_started:"串流開始了",HTTPS_REQUIRED:"這個動作需要連線有加密。",EXTENSION_UNAVAILABLE:"瀏覽器必須要安裝擴充套件或是附加元件。",UNKNOWN_ERROR:"發生了不明錯誤。",Install_extension:"要使用螢幕分享功能請安裝這個擴充套件: ",Connection_accepted:"連線接受了",Stream_terminated:"串流結束了",Close_all:null}},zh:{translation:{Logging_in:null,your_connection_is_unencrypted:null,your_connection_is_encrypted:null,your_buddy_closed_the_private_connection:null,start_private:null,close_private:null,your_buddy_is_verificated:null,you_have_only_a_subscription_in_one_way:null,authentication_query_sent:null,your_message_wasnt_send_please_end_your_private_conversation:null,unencrypted_message_received:null,not_available:null,no_connection:null,relogin:null,trying_to_start_private_conversation:null,Verified:null,Unverified:null,private_conversation_aborted:null,your_buddy_closed_the_private_conversation_you_should_do_the_same:null,conversation_is_now_verified:null,authentication_failed:null,Creating_your_private_key_:null,Authenticating_a_buddy_helps_:null,How_do_you_want_to_authenticate_your_buddy:null,Select_method:null,Manual:null,Question:null,Secret:null,To_verify_the_fingerprint_:null,Your_fingerprint:null,Buddy_fingerprint:null,Close:null,Compared:null,To_authenticate_using_a_question_:null,Ask:null,To_authenticate_pick_a_secret_:null,Compare:null,Fingerprints:null,Authentication:null,Message:null,Add_buddy:null,rename_buddy:null,delete_buddy:null,Login:null,Username:null,Password:null,Cancel:null,Connect:null,Type_in_the_full_username_:null,Alias:null,Add:null,Subscription_request:null,You_have_a_request_from:null,Deny:null,Approve:null,Remove_buddy:null,You_are_about_to_remove_:null,Continue_without_chat:null,Please_wait:null,Login_failed:null,Sorry_we_cant_authentikate_:null,Retry:null,clear_history:null,New_message_from:null,Should_we_notify_you_:null,Please_accept_:null,Hide_offline:null,Show_offline:null,About:null,dnd:null,Mute:null,Unmute:null,Subscription:null,both:null,Status:null,online:null,chat:null,away:null,xa:null,offline:null,none:null,Unknown_instance_tag:null,Not_one_of_our_latest_keys:null,Received_an_unreadable_encrypted_message:null,Online:null,Chatty:null,Away:null,Extended_away:null,Offline:null,Friendship_request:null,Confirm:null,Dismiss:null,Remove:null,Online_help:null,FN:null,N:null,FAMILY:null,GIVEN:null,NICKNAME:null,URL:null,ADR:null,STREET:null,EXTADD:null,LOCALITY:null,REGION:null,PCODE:null,CTRY:null,TEL:null,NUMBER:null,EMAIL:null,USERID:null,ORG:null,ORGNAME:null,ORGUNIT:null,TITLE:null,ROLE:null,BDAY:null,DESC:null,PHOTO:null,send_message:null,get_info:null,Settings:null,Priority:null,Save:null,User_settings:null,A_fingerprint_:null,is:null,Login_options:null,BOSH_url:null,Domain:null,Resource:null,On_login:null,Received_an_unencrypted_message:null,Sorry_your_buddy_doesnt_provide_any_information:null,Info_about:null,Authentication_aborted:null,Authentication_request_received:null,Log_in_without_chat:null,has_come_online:null,Unknown_sender:null,Please_allow_access_to_microphone_and_camera:null,Incoming_call:null,from:null,Do_you_want_to_accept_the_call_from:null,Reject:null,Accept:null,hang_up:null,snapshot:null,mute_my_audio:null,pause_my_video:null,fullscreen:null,Info:null,Local_IP:null,Remote_IP:null,Local_Fingerprint:null,Remote_Fingerprint:null,Video_call_not_possible:null,Start_video_call:null,Join_chat:null,Join:null,Room:null,Nickname:null,left_the_building:null,entered_the_room:null,is_now_known_as:null,This_room_is:null,muc_hidden:{keyword:null,description:null},muc_membersonly:{keyword:null,description:null},muc_moderated:{keyword:null,description:null},muc_nonanonymous:{keyword:null,description:null},muc_open:{keyword:null,description:null},muc_passwordprotected:{keyword:null,description:null},muc_persistent:{keyword:null,description:null},muc_public:{keyword:null,description:null},muc_semianonymous:{keyword:null,description:null},muc_temporary:{keyword:null,description:null},muc_unmoderated:{keyword:null,description:null},muc_unsecured:{keyword:null,description:null},Continue:null,Server:null,Rooms_are_loaded:null,Could_load_only:null,muc_explanation:null,You_already_joined_this_room:null,This_room_will_be_closed:null,Room_not_found_:null,Loading_room_information:null,Destroy:null,Leave:null,changed_subject_to:null,muc_removed_kicked:null,muc_removed_info_kicked:null,muc_removed_banned:null,muc_removed_info_banned:null,muc_removed_affiliation:null,muc_removed_info_affiliation:null,muc_removed_membersonly:null,muc_removed_info_membersonly:null,muc_removed_shutdown:null,Reason:null,message_not_send:null,"message_not_send_item-not-found":null,
+message_not_send_forbidden:null,"message_not_send_not-acceptable":null,This_room_has_been_closed:null,Room_logging_is_enabled:null,A_password_is_required:null,You_are_not_on_the_member_list:null,You_are_banned_from_this_room:null,Your_desired_nickname_:null,The_maximum_number_:null,This_room_is_locked_:null,You_are_not_allowed_to_create_:null,Alert:null,Call_started:null,Call_terminated:null,Carbon_copy:null,Enable:null,jingle_reason_busy:null,jingle_reason_decline:null,jingle_reason_success:null,Media_failure:null,No_local_audio_device:null,No_local_video_device:null,Ok:null,PermissionDeniedError:null,Use_local_audio_device:null,Use_local_video_device:null,is_:null,You_received_a_message_from_an_unknown_sender_:null,Your_roster_is_empty_add_:null,onsmp_explanation_question:null,onsmp_explanation_secret:null,from_sender:null,Verified_private_conversation_started:null,Unverified_private_conversation_started:null,Bookmark:null,"Auto-join":null,Edit_bookmark:null,Room_logging_is_disabled:null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,Do_you_want_to_change_the_default_room_configuration:null,Default:null,Change:null,Send_file:null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,_is_composing:null,_are_composing:null,Chat_state_notifications:null,"setting-explanation-chat-state":null,Share_screen:null,Incoming_stream:null,Stream_started:null,HTTPS_REQUIRED:null,EXTENSION_UNAVAILABLE:null,UNKNOWN_ERROR:null,Install_extension:null,Connection_accepted:null,Stream_terminated:null,Close_all:null}}};/**
* @license MIT
* @fileOverview Favico animations
* @author Miroslav Magda, http://blog.ejci.net
* @version 0.3.10
*/
-!function(){var Favico=function(opt){"use strict";function drawVideo(video){if(video.paused||video.ended||_stop)return!1;try{_context.clearRect(0,0,_w,_h),_context.drawImage(video,0,0,_w,_h)}catch(e){}_drawTimeout=setTimeout(function(){drawVideo(video)},animation.duration),link.setIcon(_canvas)}function hexToRgb(hex){var shorthandRegex=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return!!result&&{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}}function merge(def,opt){var attrname,mergedOpt={};for(attrname in def)mergedOpt[attrname]=def[attrname];for(attrname in opt)mergedOpt[attrname]=opt[attrname];return mergedOpt}function isPageHidden(){return _doc.hidden||_doc.msHidden||_doc.webkitHidden||_doc.mozHidden}opt=opt?opt:{};var _opt,_orig,_h,_w,_canvas,_context,_img,_ready,_lastBadge,_running,_readyCb,_stop,_browser,_animTimeout,_drawTimeout,_doc,_def={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,dataUrl:!1,win:window};_browser={},_browser.ff="undefined"!=typeof InstallTrigger,_browser.chrome=!!window.chrome,_browser.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,_browser.ie=/*@cc_on!@*/!1,_browser.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,_browser.supported=_browser.chrome||_browser.ff||_browser.opera;var _queue=[];_readyCb=function(){},_ready=_stop=!1;var init=function(){_opt=merge(_def,opt),_opt.bgColor=hexToRgb(_opt.bgColor),_opt.textColor=hexToRgb(_opt.textColor),_opt.position=_opt.position.toLowerCase(),_opt.animation=animation.types[""+_opt.animation]?_opt.animation:_def.animation,_doc=_opt.win.document;var isUp=_opt.position.indexOf("up")>-1,isLeft=_opt.position.indexOf("left")>-1;if(isUp||isLeft)for(var i=0;i<animation.types[""+_opt.animation].length;i++){var step=animation.types[""+_opt.animation][i];isUp&&(step.y<.6?step.y=step.y-.4:step.y=step.y-2*step.y+(1-step.w)),isLeft&&(step.x<.6?step.x=step.x-.4:step.x=step.x-2*step.x+(1-step.h)),animation.types[""+_opt.animation][i]=step}_opt.type=type[""+_opt.type]?_opt.type:_def.type,_orig=link.getIcon(),_canvas=document.createElement("canvas"),_img=document.createElement("img"),_orig.hasAttribute("href")?(_img.setAttribute("crossOrigin","anonymous"),_img.onload=function(){_h=_img.height>0?_img.height:32,_w=_img.width>0?_img.width:32,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()},_img.setAttribute("src",_orig.getAttribute("href"))):(_img.onload=function(){_h=32,_w=32,_img.height=_h,_img.width=_w,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()},_img.setAttribute("src",""))},icon={};icon.ready=function(){_ready=!0,icon.reset(),_readyCb()},icon.reset=function(){_ready&&(_queue=[],_lastBadge=!1,_running=!1,_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),link.setIcon(_canvas),window.clearTimeout(_animTimeout),window.clearTimeout(_drawTimeout))},icon.start=function(){if(_ready&&!_running){var finished=function(){_lastBadge=_queue[0],_running=!1,_queue.length>0&&(_queue.shift(),icon.start())};if(_queue.length>0){_running=!0;var run=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(a){a in _queue[0].options&&(_opt[a]=_queue[0].options[a])}),animation.run(_queue[0].options,function(){finished()},!1)};_lastBadge?animation.run(_lastBadge.options,function(){run()},!0):run()}}};var type={},options=function(opt){return opt.n="number"==typeof opt.n?Math.abs(0|opt.n):opt.n,opt.x=_w*opt.x,opt.y=_h*opt.y,opt.w=_w*opt.w,opt.h=_h*opt.h,opt.len=(""+opt.n).length,opt};type.circle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.85:1))+"px "+_opt.fontFamily,_context.textAlign="center",more?(_context.moveTo(opt.x+opt.w/2,opt.y),_context.lineTo(opt.x+opt.w-opt.h/2,opt.y),_context.quadraticCurveTo(opt.x+opt.w,opt.y,opt.x+opt.w,opt.y+opt.h/2),_context.lineTo(opt.x+opt.w,opt.y+opt.h-opt.h/2),_context.quadraticCurveTo(opt.x+opt.w,opt.y+opt.h,opt.x+opt.w-opt.h/2,opt.y+opt.h),_context.lineTo(opt.x+opt.h/2,opt.y+opt.h),_context.quadraticCurveTo(opt.x,opt.y+opt.h,opt.x,opt.y+opt.h-opt.h/2),_context.lineTo(opt.x,opt.y+opt.h/2),_context.quadraticCurveTo(opt.x,opt.y,opt.x+opt.h/2,opt.y)):_context.arc(opt.x+opt.w/2,opt.y+opt.h/2,opt.h/2,0,2*Math.PI),_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fill(),_context.closePath(),_context.beginPath(),_context.stroke(),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()},type.rectangle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.9:1))+"px "+_opt.fontFamily,_context.textAlign="center",_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fillRect(opt.x,opt.y,opt.w,opt.h),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()};var badge=function(number,opts){opts=("string"==typeof opts?{animation:opts}:opts)||{},_readyCb=function(){try{if("number"==typeof number?number>0:""!==number){var q={type:"badge",options:{n:number}};if("animation"in opts&&animation.types[""+opts.animation]&&(q.options.animation=""+opts.animation),"type"in opts&&type[""+opts.type]&&(q.options.type=""+opts.type),["bgColor","textColor"].forEach(function(o){o in opts&&(q.options[o]=hexToRgb(opts[o]))}),["fontStyle","fontFamily"].forEach(function(o){o in opts&&(q.options[o]=opts[o])}),_queue.push(q),_queue.length>100)throw new Error("Too many badges requests in queue.");icon.start()}else icon.reset()}catch(e){throw new Error("Error setting badge. Message: "+e.message)}},_ready&&_readyCb()},image=function(imageElement){_readyCb=function(){try{var w=imageElement.width,h=imageElement.height,newImg=document.createElement("img"),ratio=w/_w<h/_h?w/_w:h/_h;newImg.setAttribute("crossOrigin","anonymous"),newImg.onload=function(){_context.clearRect(0,0,_w,_h),_context.drawImage(newImg,0,0,_w,_h),link.setIcon(_canvas)},newImg.setAttribute("src",imageElement.getAttribute("src")),newImg.height=h/ratio,newImg.width=w/ratio}catch(e){throw new Error("Error setting image. Message: "+e.message)}},_ready&&_readyCb()},video=function(videoElement){_readyCb=function(){try{if("stop"===videoElement)return _stop=!0,icon.reset(),void(_stop=!1);videoElement.addEventListener("play",function(){drawVideo(this)},!1)}catch(e){throw new Error("Error setting video. Message: "+e.message)}},_ready&&_readyCb()},webcam=function(action){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(obj){return obj}),_browser.supported){var newVideo=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia,_readyCb=function(){try{if("stop"===action)return _stop=!0,icon.reset(),void(_stop=!1);newVideo=document.createElement("video"),newVideo.width=_w,newVideo.height=_h,navigator.getUserMedia({video:!0,audio:!1},function(stream){newVideo.src=URL.createObjectURL(stream),newVideo.play(),drawVideo(newVideo)},function(){})}catch(e){throw new Error("Error setting webcam. Message: "+e.message)}},_ready&&_readyCb()}},link={};link.getIcon=function(){var elm=!1,getLink=function(){for(var link=_doc.getElementsByTagName("head")[0].getElementsByTagName("link"),l=link.length,i=l-1;i>=0;i--)if(/(^|\s)icon(\s|$)/i.test(link[i].getAttribute("rel")))return link[i];return!1};return _opt.element?elm=_opt.element:_opt.elementId?(elm=_doc.getElementById(_opt.elementId),elm.setAttribute("href",elm.getAttribute("src"))):(elm=getLink(),elm===!1&&(elm=_doc.createElement("link"),elm.setAttribute("rel","icon"),_doc.getElementsByTagName("head")[0].appendChild(elm))),elm.setAttribute("type","image/png"),elm},link.setIcon=function(canvas){var url=canvas.toDataURL("image/png");if(_opt.dataUrl&&_opt.dataUrl(url),_opt.element)_opt.element.setAttribute("href",url),_opt.element.setAttribute("src",url);else if(_opt.elementId){var elm=_doc.getElementById(_opt.elementId);elm.setAttribute("href",url),elm.setAttribute("src",url)}else if(_browser.ff||_browser.opera){var old=_orig;_orig=_doc.createElement("link"),_browser.opera&&_orig.setAttribute("rel","icon"),_orig.setAttribute("rel","icon"),_orig.setAttribute("type","image/png"),_doc.getElementsByTagName("head")[0].appendChild(_orig),_orig.setAttribute("href",url),old.parentNode&&old.parentNode.removeChild(old)}else _orig.setAttribute("href",url)};var animation={};return animation.duration=40,animation.types={},animation.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.run=function(opt,cb,revert,step){var animationType=animation.types[isPageHidden()?"none":_opt.animation];return step=revert===!0?"undefined"!=typeof step?step:animationType.length-1:"undefined"!=typeof step?step:0,cb=cb?cb:function(){},step<animationType.length&&step>=0?(type[_opt.type](merge(opt,animationType[step])),_animTimeout=setTimeout(function(){revert?step-=1:step+=1,animation.run(opt,cb,revert,step)},animation.duration),link.setIcon(_canvas),void 0):void cb()},init(),{badge:badge,video:video,image:image,webcam:webcam,reset:icon.reset,browser:{supported:_browser.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return Favico}):"undefined"!=typeof module&&module.exports?module.exports=Favico:this.Favico=Favico}(),/*!
- * Source: lib/emojione/lib/js/emojione.js, license: CC-BY 4.0, url: http://emojione.com
- */
-function(ns){ns.emojioneList={":kiss_ww:":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],":couplekiss_ww:":["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],":kiss_mm:":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],":couplekiss_mm:":["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],":family_mmbb:":["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],":family_mmgb:":["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],":family_mmgg:":["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],":family_mwbb:":["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],":family_mwgb:":["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],":family_mwgg:":["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],":family_wwbb:":["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],":family_wwgb:":["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],":family_wwgg:":["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],":couple_ww:":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],":couple_with_heart_ww:":["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],":couple_mm:":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],":couple_with_heart_mm:":["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],":family_mmb:":["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],":family_mmg:":["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],":family_mwg:":["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],":family_wwb:":["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],":family_wwg:":["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],":eye_in_speech_bubble:":["1f441-200d-1f5e8","1f441-1f5e8"],":hash:":["0023-fe0f-20e3","0023-20e3"],":zero:":["0030-fe0f-20e3","0030-20e3"],":one:":["0031-fe0f-20e3","0031-20e3"],":two:":["0032-fe0f-20e3","0032-20e3"],":three:":["0033-fe0f-20e3","0033-20e3"],":four:":["0034-fe0f-20e3","0034-20e3"],":five:":["0035-fe0f-20e3","0035-20e3"],":six:":["0036-fe0f-20e3","0036-20e3"],":seven:":["0037-fe0f-20e3","0037-20e3"],":eight:":["0038-fe0f-20e3","0038-20e3"],":nine:":["0039-fe0f-20e3","0039-20e3"],":asterisk:":["002a-fe0f-20e3","002a-20e3"],":keycap_asterisk:":["002a-fe0f-20e3","002a-20e3"],":metal_tone5:":["1f918-1f3ff"],":sign_of_the_horns_tone5:":["1f918-1f3ff"],":metal_tone4:":["1f918-1f3fe"],":sign_of_the_horns_tone4:":["1f918-1f3fe"],":metal_tone3:":["1f918-1f3fd"],":sign_of_the_horns_tone3:":["1f918-1f3fd"],":metal_tone2:":["1f918-1f3fc"],":sign_of_the_horns_tone2:":["1f918-1f3fc"],":metal_tone1:":["1f918-1f3fb"],":sign_of_the_horns_tone1:":["1f918-1f3fb"],":bath_tone5:":["1f6c0-1f3ff"],":bath_tone4:":["1f6c0-1f3fe"],":bath_tone3:":["1f6c0-1f3fd"],":bath_tone2:":["1f6c0-1f3fc"],":bath_tone1:":["1f6c0-1f3fb"],":walking_tone5:":["1f6b6-1f3ff"],":walking_tone4:":["1f6b6-1f3fe"],":walking_tone3:":["1f6b6-1f3fd"],":walking_tone2:":["1f6b6-1f3fc"],":walking_tone1:":["1f6b6-1f3fb"],":mountain_bicyclist_tone5:":["1f6b5-1f3ff"],":mountain_bicyclist_tone4:":["1f6b5-1f3fe"],":mountain_bicyclist_tone3:":["1f6b5-1f3fd"],":mountain_bicyclist_tone2:":["1f6b5-1f3fc"],":mountain_bicyclist_tone1:":["1f6b5-1f3fb"],":bicyclist_tone5:":["1f6b4-1f3ff"],":bicyclist_tone4:":["1f6b4-1f3fe"],":bicyclist_tone3:":["1f6b4-1f3fd"],":bicyclist_tone2:":["1f6b4-1f3fc"],":bicyclist_tone1:":["1f6b4-1f3fb"],":rowboat_tone5:":["1f6a3-1f3ff"],":rowboat_tone4:":["1f6a3-1f3fe"],":rowboat_tone3:":["1f6a3-1f3fd"],":rowboat_tone2:":["1f6a3-1f3fc"],":rowboat_tone1:":["1f6a3-1f3fb"],":pray_tone5:":["1f64f-1f3ff"],":pray_tone4:":["1f64f-1f3fe"],":pray_tone3:":["1f64f-1f3fd"],":pray_tone2:":["1f64f-1f3fc"],":pray_tone1:":["1f64f-1f3fb"],":person_with_pouting_face_tone5:":["1f64e-1f3ff"],":person_with_pouting_face_tone4:":["1f64e-1f3fe"],":person_with_pouting_face_tone3:":["1f64e-1f3fd"],":person_with_pouting_face_tone2:":["1f64e-1f3fc"],":person_with_pouting_face_tone1:":["1f64e-1f3fb"],":person_frowning_tone5:":["1f64d-1f3ff"],":person_frowning_tone4:":["1f64d-1f3fe"],":person_frowning_tone3:":["1f64d-1f3fd"],":person_frowning_tone2:":["1f64d-1f3fc"],":person_frowning_tone1:":["1f64d-1f3fb"],":raised_hands_tone5:":["1f64c-1f3ff"],":raised_hands_tone4:":["1f64c-1f3fe"],":raised_hands_tone3:":["1f64c-1f3fd"],":raised_hands_tone2:":["1f64c-1f3fc"],":raised_hands_tone1:":["1f64c-1f3fb"],":raising_hand_tone5:":["1f64b-1f3ff"],":raising_hand_tone4:":["1f64b-1f3fe"],":raising_hand_tone3:":["1f64b-1f3fd"],":raising_hand_tone2:":["1f64b-1f3fc"],":raising_hand_tone1:":["1f64b-1f3fb"],":bow_tone5:":["1f647-1f3ff"],":bow_tone4:":["1f647-1f3fe"],":bow_tone3:":["1f647-1f3fd"],":bow_tone2:":["1f647-1f3fc"],":bow_tone1:":["1f647-1f3fb"],":ok_woman_tone5:":["1f646-1f3ff"],":ok_woman_tone4:":["1f646-1f3fe"],":ok_woman_tone3:":["1f646-1f3fd"],":ok_woman_tone2:":["1f646-1f3fc"],":ok_woman_tone1:":["1f646-1f3fb"],":no_good_tone5:":["1f645-1f3ff"],":no_good_tone4:":["1f645-1f3fe"],":no_good_tone3:":["1f645-1f3fd"],":no_good_tone2:":["1f645-1f3fc"],":no_good_tone1:":["1f645-1f3fb"],":vulcan_tone5:":["1f596-1f3ff"],":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":["1f596-1f3ff"],":vulcan_tone4:":["1f596-1f3fe"],":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":["1f596-1f3fe"],":vulcan_tone3:":["1f596-1f3fd"],":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":["1f596-1f3fd"],":vulcan_tone2:":["1f596-1f3fc"],":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":["1f596-1f3fc"],":vulcan_tone1:":["1f596-1f3fb"],":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":["1f596-1f3fb"],":middle_finger_tone5:":["1f595-1f3ff"],":reversed_hand_with_middle_finger_extended_tone5:":["1f595-1f3ff"],":middle_finger_tone4:":["1f595-1f3fe"],":reversed_hand_with_middle_finger_extended_tone4:":["1f595-1f3fe"],":middle_finger_tone3:":["1f595-1f3fd"],":reversed_hand_with_middle_finger_extended_tone3:":["1f595-1f3fd"],":middle_finger_tone2:":["1f595-1f3fc"],":reversed_hand_with_middle_finger_extended_tone2:":["1f595-1f3fc"],":middle_finger_tone1:":["1f595-1f3fb"],":reversed_hand_with_middle_finger_extended_tone1:":["1f595-1f3fb"],":hand_splayed_tone5:":["1f590-1f3ff"],":raised_hand_with_fingers_splayed_tone5:":["1f590-1f3ff"],":hand_splayed_tone4:":["1f590-1f3fe"],":raised_hand_with_fingers_splayed_tone4:":["1f590-1f3fe"],":hand_splayed_tone3:":["1f590-1f3fd"],":raised_hand_with_fingers_splayed_tone3:":["1f590-1f3fd"],":hand_splayed_tone2:":["1f590-1f3fc"],":raised_hand_with_fingers_splayed_tone2:":["1f590-1f3fc"],":hand_splayed_tone1:":["1f590-1f3fb"],":raised_hand_with_fingers_splayed_tone1:":["1f590-1f3fb"],":spy_tone5:":["1f575-1f3ff"],":sleuth_or_spy_tone5:":["1f575-1f3ff"],":spy_tone4:":["1f575-1f3fe"],":sleuth_or_spy_tone4:":["1f575-1f3fe"],":spy_tone3:":["1f575-1f3fd"],":sleuth_or_spy_tone3:":["1f575-1f3fd"],":spy_tone2:":["1f575-1f3fc"],":sleuth_or_spy_tone2:":["1f575-1f3fc"],":spy_tone1:":["1f575-1f3fb"],":sleuth_or_spy_tone1:":["1f575-1f3fb"],":muscle_tone5:":["1f4aa-1f3ff"],":muscle_tone4:":["1f4aa-1f3fe"],":muscle_tone3:":["1f4aa-1f3fd"],":muscle_tone2:":["1f4aa-1f3fc"],":muscle_tone1:":["1f4aa-1f3fb"],":haircut_tone5:":["1f487-1f3ff"],":haircut_tone4:":["1f487-1f3fe"],":haircut_tone3:":["1f487-1f3fd"],":haircut_tone2:":["1f487-1f3fc"],":haircut_tone1:":["1f487-1f3fb"],":massage_tone5:":["1f486-1f3ff"],":massage_tone4:":["1f486-1f3fe"],":massage_tone3:":["1f486-1f3fd"],":massage_tone2:":["1f486-1f3fc"],":massage_tone1:":["1f486-1f3fb"],":nail_care_tone5:":["1f485-1f3ff"],":nail_care_tone4:":["1f485-1f3fe"],":nail_care_tone3:":["1f485-1f3fd"],":nail_care_tone2:":["1f485-1f3fc"],":nail_care_tone1:":["1f485-1f3fb"],":dancer_tone5:":["1f483-1f3ff"],":dancer_tone4:":["1f483-1f3fe"],":dancer_tone3:":["1f483-1f3fd"],":dancer_tone2:":["1f483-1f3fc"],":dancer_tone1:":["1f483-1f3fb"],":guardsman_tone5:":["1f482-1f3ff"],":guardsman_tone4:":["1f482-1f3fe"],":guardsman_tone3:":["1f482-1f3fd"],":guardsman_tone2:":["1f482-1f3fc"],":guardsman_tone1:":["1f482-1f3fb"],":information_desk_person_tone5:":["1f481-1f3ff"],":information_desk_person_tone4:":["1f481-1f3fe"],":information_desk_person_tone3:":["1f481-1f3fd"],":information_desk_person_tone2:":["1f481-1f3fc"],":information_desk_person_tone1:":["1f481-1f3fb"],":angel_tone5:":["1f47c-1f3ff"],":angel_tone4:":["1f47c-1f3fe"],":angel_tone3:":["1f47c-1f3fd"],":angel_tone2:":["1f47c-1f3fc"],":angel_tone1:":["1f47c-1f3fb"],":princess_tone5:":["1f478-1f3ff"],":princess_tone4:":["1f478-1f3fe"],":princess_tone3:":["1f478-1f3fd"],":princess_tone2:":["1f478-1f3fc"],":princess_tone1:":["1f478-1f3fb"],":construction_worker_tone5:":["1f477-1f3ff"],":construction_worker_tone4:":["1f477-1f3fe"],":construction_worker_tone3:":["1f477-1f3fd"],":construction_worker_tone2:":["1f477-1f3fc"],":construction_worker_tone1:":["1f477-1f3fb"],":baby_tone5:":["1f476-1f3ff"],":baby_tone4:":["1f476-1f3fe"],":baby_tone3:":["1f476-1f3fd"],":baby_tone2:":["1f476-1f3fc"],":baby_tone1:":["1f476-1f3fb"],":older_woman_tone5:":["1f475-1f3ff"],":grandma_tone5:":["1f475-1f3ff"],":older_woman_tone4:":["1f475-1f3fe"],":grandma_tone4:":["1f475-1f3fe"],":older_woman_tone3:":["1f475-1f3fd"],":grandma_tone3:":["1f475-1f3fd"],":older_woman_tone2:":["1f475-1f3fc"],":grandma_tone2:":["1f475-1f3fc"],":older_woman_tone1:":["1f475-1f3fb"],":grandma_tone1:":["1f475-1f3fb"],":older_man_tone5:":["1f474-1f3ff"],":older_man_tone4:":["1f474-1f3fe"],":older_man_tone3:":["1f474-1f3fd"],":older_man_tone2:":["1f474-1f3fc"],":older_man_tone1:":["1f474-1f3fb"],":man_with_turban_tone5:":["1f473-1f3ff"],":man_with_turban_tone4:":["1f473-1f3fe"],":man_with_turban_tone3:":["1f473-1f3fd"],":man_with_turban_tone2:":["1f473-1f3fc"],":man_with_turban_tone1:":["1f473-1f3fb"],":man_with_gua_pi_mao_tone5:":["1f472-1f3ff"],":man_with_gua_pi_mao_tone4:":["1f472-1f3fe"],":man_with_gua_pi_mao_tone3:":["1f472-1f3fd"],":man_with_gua_pi_mao_tone2:":["1f472-1f3fc"],":man_with_gua_pi_mao_tone1:":["1f472-1f3fb"],":person_with_blond_hair_tone5:":["1f471-1f3ff"],":person_with_blond_hair_tone4:":["1f471-1f3fe"],":person_with_blond_hair_tone3:":["1f471-1f3fd"],":person_with_blond_hair_tone2:":["1f471-1f3fc"],":person_with_blond_hair_tone1:":["1f471-1f3fb"],":bride_with_veil_tone5:":["1f470-1f3ff"],":bride_with_veil_tone4:":["1f470-1f3fe"],":bride_with_veil_tone3:":["1f470-1f3fd"],":bride_with_veil_tone2:":["1f470-1f3fc"],":bride_with_veil_tone1:":["1f470-1f3fb"],":cop_tone5:":["1f46e-1f3ff"],":cop_tone4:":["1f46e-1f3fe"],":cop_tone3:":["1f46e-1f3fd"],":cop_tone2:":["1f46e-1f3fc"],":cop_tone1:":["1f46e-1f3fb"],":woman_tone5:":["1f469-1f3ff"],":woman_tone4:":["1f469-1f3fe"],":woman_tone3:":["1f469-1f3fd"],":woman_tone2:":["1f469-1f3fc"],":woman_tone1:":["1f469-1f3fb"],":man_tone5:":["1f468-1f3ff"],":man_tone4:":["1f468-1f3fe"],":man_tone3:":["1f468-1f3fd"],":man_tone2:":["1f468-1f3fc"],":man_tone1:":["1f468-1f3fb"],":girl_tone5:":["1f467-1f3ff"],":girl_tone4:":["1f467-1f3fe"],":girl_tone3:":["1f467-1f3fd"],":girl_tone2:":["1f467-1f3fc"],":girl_tone1:":["1f467-1f3fb"],":boy_tone5:":["1f466-1f3ff"],":boy_tone4:":["1f466-1f3fe"],":boy_tone3:":["1f466-1f3fd"],":boy_tone2:":["1f466-1f3fc"],":boy_tone1:":["1f466-1f3fb"],":open_hands_tone5:":["1f450-1f3ff"],":open_hands_tone4:":["1f450-1f3fe"],":open_hands_tone3:":["1f450-1f3fd"],":open_hands_tone2:":["1f450-1f3fc"],":open_hands_tone1:":["1f450-1f3fb"],":clap_tone5:":["1f44f-1f3ff"],":clap_tone4:":["1f44f-1f3fe"],":clap_tone3:":["1f44f-1f3fd"],":clap_tone2:":["1f44f-1f3fc"],":clap_tone1:":["1f44f-1f3fb"],":thumbsdown_tone5:":["1f44e-1f3ff"],":-1_tone5:":["1f44e-1f3ff"],":thumbsdown_tone4:":["1f44e-1f3fe"],":-1_tone4:":["1f44e-1f3fe"],":thumbsdown_tone3:":["1f44e-1f3fd"],":-1_tone3:":["1f44e-1f3fd"],":thumbsdown_tone2:":["1f44e-1f3fc"],":-1_tone2:":["1f44e-1f3fc"],":thumbsdown_tone1:":["1f44e-1f3fb"],":-1_tone1:":["1f44e-1f3fb"],":thumbsup_tone5:":["1f44d-1f3ff"],":+1_tone5:":["1f44d-1f3ff"],":thumbsup_tone4:":["1f44d-1f3fe"],":+1_tone4:":["1f44d-1f3fe"],":thumbsup_tone3:":["1f44d-1f3fd"],":+1_tone3:":["1f44d-1f3fd"],":thumbsup_tone2:":["1f44d-1f3fc"],":+1_tone2:":["1f44d-1f3fc"],":thumbsup_tone1:":["1f44d-1f3fb"],":+1_tone1:":["1f44d-1f3fb"],":ok_hand_tone5:":["1f44c-1f3ff"],":ok_hand_tone4:":["1f44c-1f3fe"],":ok_hand_tone3:":["1f44c-1f3fd"],":ok_hand_tone2:":["1f44c-1f3fc"],":ok_hand_tone1:":["1f44c-1f3fb"],":wave_tone5:":["1f44b-1f3ff"],":wave_tone4:":["1f44b-1f3fe"],":wave_tone3:":["1f44b-1f3fd"],":wave_tone2:":["1f44b-1f3fc"],":wave_tone1:":["1f44b-1f3fb"],":punch_tone5:":["1f44a-1f3ff"],":punch_tone4:":["1f44a-1f3fe"],":punch_tone3:":["1f44a-1f3fd"],":punch_tone2:":["1f44a-1f3fc"],":punch_tone1:":["1f44a-1f3fb"],":point_right_tone5:":["1f449-1f3ff"],":point_right_tone4:":["1f449-1f3fe"],":point_right_tone3:":["1f449-1f3fd"],":point_right_tone2:":["1f449-1f3fc"],":point_right_tone1:":["1f449-1f3fb"],":point_left_tone5:":["1f448-1f3ff"],":point_left_tone4:":["1f448-1f3fe"],":point_left_tone3:":["1f448-1f3fd"],":point_left_tone2:":["1f448-1f3fc"],":point_left_tone1:":["1f448-1f3fb"],":point_down_tone5:":["1f447-1f3ff"],":point_down_tone4:":["1f447-1f3fe"],":point_down_tone3:":["1f447-1f3fd"],":point_down_tone2:":["1f447-1f3fc"],":point_down_tone1:":["1f447-1f3fb"],":point_up_2_tone5:":["1f446-1f3ff"],":point_up_2_tone4:":["1f446-1f3fe"],":point_up_2_tone3:":["1f446-1f3fd"],":point_up_2_tone2:":["1f446-1f3fc"],":point_up_2_tone1:":["1f446-1f3fb"],":nose_tone5:":["1f443-1f3ff"],":nose_tone4:":["1f443-1f3fe"],":nose_tone3:":["1f443-1f3fd"],":nose_tone2:":["1f443-1f3fc"],":nose_tone1:":["1f443-1f3fb"],":ear_tone5:":["1f442-1f3ff"],":ear_tone4:":["1f442-1f3fe"],":ear_tone3:":["1f442-1f3fd"],":ear_tone2:":["1f442-1f3fc"],":ear_tone1:":["1f442-1f3fb"],":lifter_tone5:":["1f3cb-1f3ff"],":weight_lifter_tone5:":["1f3cb-1f3ff"],":lifter_tone4:":["1f3cb-1f3fe"],":weight_lifter_tone4:":["1f3cb-1f3fe"],":lifter_tone3:":["1f3cb-1f3fd"],":weight_lifter_tone3:":["1f3cb-1f3fd"],":lifter_tone2:":["1f3cb-1f3fc"],":weight_lifter_tone2:":["1f3cb-1f3fc"],":lifter_tone1:":["1f3cb-1f3fb"],":weight_lifter_tone1:":["1f3cb-1f3fb"],":swimmer_tone5:":["1f3ca-1f3ff"],":swimmer_tone4:":["1f3ca-1f3fe"],":swimmer_tone3:":["1f3ca-1f3fd"],":swimmer_tone2:":["1f3ca-1f3fc"],":swimmer_tone1:":["1f3ca-1f3fb"],":horse_racing_tone5:":["1f3c7-1f3ff"],":horse_racing_tone4:":["1f3c7-1f3fe"],":horse_racing_tone3:":["1f3c7-1f3fd"],":horse_racing_tone2:":["1f3c7-1f3fc"],":horse_racing_tone1:":["1f3c7-1f3fb"],":surfer_tone5:":["1f3c4-1f3ff"],":surfer_tone4:":["1f3c4-1f3fe"],":surfer_tone3:":["1f3c4-1f3fd"],":surfer_tone2:":["1f3c4-1f3fc"],":surfer_tone1:":["1f3c4-1f3fb"],":runner_tone5:":["1f3c3-1f3ff"],":runner_tone4:":["1f3c3-1f3fe"],":runner_tone3:":["1f3c3-1f3fd"],":runner_tone2:":["1f3c3-1f3fc"],":runner_tone1:":["1f3c3-1f3fb"],":santa_tone5:":["1f385-1f3ff"],":santa_tone4:":["1f385-1f3fe"],":santa_tone3:":["1f385-1f3fd"],":santa_tone2:":["1f385-1f3fc"],":santa_tone1:":["1f385-1f3fb"],":flag_zw:":["1f1ff-1f1fc"],":zw:":["1f1ff-1f1fc"],":flag_zm:":["1f1ff-1f1f2"],":zm:":["1f1ff-1f1f2"],":flag_za:":["1f1ff-1f1e6"],":za:":["1f1ff-1f1e6"],":flag_yt:":["1f1fe-1f1f9"],":yt:":["1f1fe-1f1f9"],":flag_ye:":["1f1fe-1f1ea"],":ye:":["1f1fe-1f1ea"],":flag_xk:":["1f1fd-1f1f0"],":xk:":["1f1fd-1f1f0"],":flag_ws:":["1f1fc-1f1f8"],":ws:":["1f1fc-1f1f8"],":flag_wf:":["1f1fc-1f1eb"],":wf:":["1f1fc-1f1eb"],":flag_vu:":["1f1fb-1f1fa"],":vu:":["1f1fb-1f1fa"],":flag_vn:":["1f1fb-1f1f3"],":vn:":["1f1fb-1f1f3"],":flag_vi:":["1f1fb-1f1ee"],":vi:":["1f1fb-1f1ee"],":flag_vg:":["1f1fb-1f1ec"],":vg:":["1f1fb-1f1ec"],":flag_ve:":["1f1fb-1f1ea"],":ve:":["1f1fb-1f1ea"],":flag_vc:":["1f1fb-1f1e8"],":vc:":["1f1fb-1f1e8"],":flag_va:":["1f1fb-1f1e6"],":va:":["1f1fb-1f1e6"],":flag_uz:":["1f1fa-1f1ff"],":uz:":["1f1fa-1f1ff"],":flag_uy:":["1f1fa-1f1fe"],":uy:":["1f1fa-1f1fe"],":flag_us:":["1f1fa-1f1f8"],":us:":["1f1fa-1f1f8"],":flag_um:":["1f1fa-1f1f2"],":um:":["1f1fa-1f1f2"],":flag_ug:":["1f1fa-1f1ec"],":ug:":["1f1fa-1f1ec"],":flag_ua:":["1f1fa-1f1e6"],":ua:":["1f1fa-1f1e6"],":flag_tz:":["1f1f9-1f1ff"],":tz:":["1f1f9-1f1ff"],":flag_tw:":["1f1f9-1f1fc"],":tw:":["1f1f9-1f1fc"],":flag_tv:":["1f1f9-1f1fb"],":tuvalu:":["1f1f9-1f1fb"],":flag_tt:":["1f1f9-1f1f9"],":tt:":["1f1f9-1f1f9"],":flag_tr:":["1f1f9-1f1f7"],":tr:":["1f1f9-1f1f7"],":flag_to:":["1f1f9-1f1f4"],":to:":["1f1f9-1f1f4"],":flag_tn:":["1f1f9-1f1f3"],":tn:":["1f1f9-1f1f3"],":flag_tm:":["1f1f9-1f1f2"],":turkmenistan:":["1f1f9-1f1f2"],":flag_tl:":["1f1f9-1f1f1"],":tl:":["1f1f9-1f1f1"],":flag_tk:":["1f1f9-1f1f0"],":tk:":["1f1f9-1f1f0"],":flag_tj:":["1f1f9-1f1ef"],":tj:":["1f1f9-1f1ef"],":flag_th:":["1f1f9-1f1ed"],":th:":["1f1f9-1f1ed"],":flag_tg:":["1f1f9-1f1ec"],":tg:":["1f1f9-1f1ec"],":flag_tf:":["1f1f9-1f1eb"],":tf:":["1f1f9-1f1eb"],":flag_td:":["1f1f9-1f1e9"],":td:":["1f1f9-1f1e9"],":flag_tc:":["1f1f9-1f1e8"],":tc:":["1f1f9-1f1e8"],":flag_ta:":["1f1f9-1f1e6"],":ta:":["1f1f9-1f1e6"],":flag_sz:":["1f1f8-1f1ff"],":sz:":["1f1f8-1f1ff"],":flag_sy:":["1f1f8-1f1fe"],":sy:":["1f1f8-1f1fe"],":flag_sx:":["1f1f8-1f1fd"],":sx:":["1f1f8-1f1fd"],":flag_sv:":["1f1f8-1f1fb"],":sv:":["1f1f8-1f1fb"],":flag_st:":["1f1f8-1f1f9"],":st:":["1f1f8-1f1f9"],":flag_ss:":["1f1f8-1f1f8"],":ss:":["1f1f8-1f1f8"],":flag_sr:":["1f1f8-1f1f7"],":sr:":["1f1f8-1f1f7"],":flag_so:":["1f1f8-1f1f4"],":so:":["1f1f8-1f1f4"],":flag_sn:":["1f1f8-1f1f3"],":sn:":["1f1f8-1f1f3"],":flag_sm:":["1f1f8-1f1f2"],":sm:":["1f1f8-1f1f2"],":flag_sl:":["1f1f8-1f1f1"],":sl:":["1f1f8-1f1f1"],":flag_sk:":["1f1f8-1f1f0"],":sk:":["1f1f8-1f1f0"],":flag_sj:":["1f1f8-1f1ef"],":sj:":["1f1f8-1f1ef"],":flag_si:":["1f1f8-1f1ee"],":si:":["1f1f8-1f1ee"],":flag_sh:":["1f1f8-1f1ed"],":sh:":["1f1f8-1f1ed"],":flag_sg:":["1f1f8-1f1ec"],":sg:":["1f1f8-1f1ec"],":flag_se:":["1f1f8-1f1ea"],":se:":["1f1f8-1f1ea"],":flag_sd:":["1f1f8-1f1e9"],":sd:":["1f1f8-1f1e9"],":flag_sc:":["1f1f8-1f1e8"],":sc:":["1f1f8-1f1e8"],":flag_sb:":["1f1f8-1f1e7"],":sb:":["1f1f8-1f1e7"],":flag_sa:":["1f1f8-1f1e6"],":saudiarabia:":["1f1f8-1f1e6"],":saudi:":["1f1f8-1f1e6"],":flag_rw:":["1f1f7-1f1fc"],":rw:":["1f1f7-1f1fc"],":flag_ru:":["1f1f7-1f1fa"],":ru:":["1f1f7-1f1fa"],":flag_rs:":["1f1f7-1f1f8"],":rs:":["1f1f7-1f1f8"],":flag_ro:":["1f1f7-1f1f4"],":ro:":["1f1f7-1f1f4"],":flag_re:":["1f1f7-1f1ea"],":re:":["1f1f7-1f1ea"],":flag_qa:":["1f1f6-1f1e6"],":qa:":["1f1f6-1f1e6"],":flag_py:":["1f1f5-1f1fe"],":py:":["1f1f5-1f1fe"],":flag_pw:":["1f1f5-1f1fc"],":pw:":["1f1f5-1f1fc"],":flag_pt:":["1f1f5-1f1f9"],":pt:":["1f1f5-1f1f9"],":flag_ps:":["1f1f5-1f1f8"],":ps:":["1f1f5-1f1f8"],":flag_pr:":["1f1f5-1f1f7"],":pr:":["1f1f5-1f1f7"],":flag_pn:":["1f1f5-1f1f3"],":pn:":["1f1f5-1f1f3"],":flag_pm:":["1f1f5-1f1f2"],":pm:":["1f1f5-1f1f2"],":flag_pl:":["1f1f5-1f1f1"],":pl:":["1f1f5-1f1f1"],":flag_pk:":["1f1f5-1f1f0"],":pk:":["1f1f5-1f1f0"],":flag_ph:":["1f1f5-1f1ed"],":ph:":["1f1f5-1f1ed"],":flag_pg:":["1f1f5-1f1ec"],":pg:":["1f1f5-1f1ec"],":flag_pf:":["1f1f5-1f1eb"],":pf:":["1f1f5-1f1eb"],":flag_pe:":["1f1f5-1f1ea"],":pe:":["1f1f5-1f1ea"],":flag_pa:":["1f1f5-1f1e6"],":pa:":["1f1f5-1f1e6"],":flag_om:":["1f1f4-1f1f2"],":om:":["1f1f4-1f1f2"],":flag_nz:":["1f1f3-1f1ff"],":nz:":["1f1f3-1f1ff"],":flag_nu:":["1f1f3-1f1fa"],":nu:":["1f1f3-1f1fa"],":flag_nr:":["1f1f3-1f1f7"],":nr:":["1f1f3-1f1f7"],":flag_np:":["1f1f3-1f1f5"],":np:":["1f1f3-1f1f5"],":flag_no:":["1f1f3-1f1f4"],":no:":["1f1f3-1f1f4"],":flag_nl:":["1f1f3-1f1f1"],":nl:":["1f1f3-1f1f1"],":flag_ni:":["1f1f3-1f1ee"],":ni:":["1f1f3-1f1ee"],":flag_ng:":["1f1f3-1f1ec"],":nigeria:":["1f1f3-1f1ec"],":flag_nf:":["1f1f3-1f1eb"],":nf:":["1f1f3-1f1eb"],":flag_ne:":["1f1f3-1f1ea"],":ne:":["1f1f3-1f1ea"],":flag_nc:":["1f1f3-1f1e8"],":nc:":["1f1f3-1f1e8"],":flag_na:":["1f1f3-1f1e6"],":na:":["1f1f3-1f1e6"],":flag_mz:":["1f1f2-1f1ff"],":mz:":["1f1f2-1f1ff"],":flag_my:":["1f1f2-1f1fe"],":my:":["1f1f2-1f1fe"],":flag_mx:":["1f1f2-1f1fd"],":mx:":["1f1f2-1f1fd"],":flag_mw:":["1f1f2-1f1fc"],":mw:":["1f1f2-1f1fc"],":flag_mv:":["1f1f2-1f1fb"],":mv:":["1f1f2-1f1fb"],":flag_mu:":["1f1f2-1f1fa"],":mu:":["1f1f2-1f1fa"],":flag_mt:":["1f1f2-1f1f9"],":mt:":["1f1f2-1f1f9"],":flag_ms:":["1f1f2-1f1f8"],":ms:":["1f1f2-1f1f8"],":flag_mr:":["1f1f2-1f1f7"],":mr:":["1f1f2-1f1f7"],":flag_mq:":["1f1f2-1f1f6"],":mq:":["1f1f2-1f1f6"],":flag_mp:":["1f1f2-1f1f5"],":mp:":["1f1f2-1f1f5"],":flag_mo:":["1f1f2-1f1f4"],":mo:":["1f1f2-1f1f4"],":flag_mn:":["1f1f2-1f1f3"],":mn:":["1f1f2-1f1f3"],":flag_mm:":["1f1f2-1f1f2"],":mm:":["1f1f2-1f1f2"],":flag_ml:":["1f1f2-1f1f1"],":ml:":["1f1f2-1f1f1"],":flag_mk:":["1f1f2-1f1f0"],":mk:":["1f1f2-1f1f0"],":flag_mh:":["1f1f2-1f1ed"],":mh:":["1f1f2-1f1ed"],":flag_mg:":["1f1f2-1f1ec"],":mg:":["1f1f2-1f1ec"],":flag_mf:":["1f1f2-1f1eb"],":mf:":["1f1f2-1f1eb"],":flag_me:":["1f1f2-1f1ea"],":me:":["1f1f2-1f1ea"],":flag_md:":["1f1f2-1f1e9"],":md:":["1f1f2-1f1e9"],":flag_mc:":["1f1f2-1f1e8"],":mc:":["1f1f2-1f1e8"],":flag_ma:":["1f1f2-1f1e6"],":ma:":["1f1f2-1f1e6"],":flag_ly:":["1f1f1-1f1fe"],":ly:":["1f1f1-1f1fe"],":flag_lv:":["1f1f1-1f1fb"],":lv:":["1f1f1-1f1fb"],":flag_lu:":["1f1f1-1f1fa"],":lu:":["1f1f1-1f1fa"],":flag_lt:":["1f1f1-1f1f9"],":lt:":["1f1f1-1f1f9"],":flag_ls:":["1f1f1-1f1f8"],":ls:":["1f1f1-1f1f8"],":flag_lr:":["1f1f1-1f1f7"],":lr:":["1f1f1-1f1f7"],":flag_lk:":["1f1f1-1f1f0"],":lk:":["1f1f1-1f1f0"],":flag_li:":["1f1f1-1f1ee"],":li:":["1f1f1-1f1ee"],":flag_lc:":["1f1f1-1f1e8"],":lc:":["1f1f1-1f1e8"],":flag_lb:":["1f1f1-1f1e7"],":lb:":["1f1f1-1f1e7"],":flag_la:":["1f1f1-1f1e6"],":la:":["1f1f1-1f1e6"],":flag_kz:":["1f1f0-1f1ff"],":kz:":["1f1f0-1f1ff"],":flag_ky:":["1f1f0-1f1fe"],":ky:":["1f1f0-1f1fe"],":flag_kw:":["1f1f0-1f1fc"],":kw:":["1f1f0-1f1fc"],":flag_kr:":["1f1f0-1f1f7"],":kr:":["1f1f0-1f1f7"],":flag_kp:":["1f1f0-1f1f5"],":kp:":["1f1f0-1f1f5"],":flag_kn:":["1f1f0-1f1f3"],":kn:":["1f1f0-1f1f3"],":flag_km:":["1f1f0-1f1f2"],":km:":["1f1f0-1f1f2"],":flag_ki:":["1f1f0-1f1ee"],":ki:":["1f1f0-1f1ee"],":flag_kh:":["1f1f0-1f1ed"],":kh:":["1f1f0-1f1ed"],":flag_kg:":["1f1f0-1f1ec"],":kg:":["1f1f0-1f1ec"],":flag_ke:":["1f1f0-1f1ea"],":ke:":["1f1f0-1f1ea"],":flag_jp:":["1f1ef-1f1f5"],":jp:":["1f1ef-1f1f5"],":flag_jo:":["1f1ef-1f1f4"],":jo:":["1f1ef-1f1f4"],":flag_jm:":["1f1ef-1f1f2"],":jm:":["1f1ef-1f1f2"],":flag_je:":["1f1ef-1f1ea"],":je:":["1f1ef-1f1ea"],":flag_it:":["1f1ee-1f1f9"],":it:":["1f1ee-1f1f9"],":flag_is:":["1f1ee-1f1f8"],":is:":["1f1ee-1f1f8"],":flag_ir:":["1f1ee-1f1f7"],":ir:":["1f1ee-1f1f7"],":flag_iq:":["1f1ee-1f1f6"],":iq:":["1f1ee-1f1f6"],":flag_io:":["1f1ee-1f1f4"],":io:":["1f1ee-1f1f4"],":flag_in:":["1f1ee-1f1f3"],":in:":["1f1ee-1f1f3"],":flag_im:":["1f1ee-1f1f2"],":im:":["1f1ee-1f1f2"],":flag_il:":["1f1ee-1f1f1"],":il:":["1f1ee-1f1f1"],":flag_ie:":["1f1ee-1f1ea"],":ie:":["1f1ee-1f1ea"],":flag_id:":["1f1ee-1f1e9"],":indonesia:":["1f1ee-1f1e9"],":flag_ic:":["1f1ee-1f1e8"],":ic:":["1f1ee-1f1e8"],":flag_hu:":["1f1ed-1f1fa"],":hu:":["1f1ed-1f1fa"],":flag_ht:":["1f1ed-1f1f9"],":ht:":["1f1ed-1f1f9"],":flag_hr:":["1f1ed-1f1f7"],":hr:":["1f1ed-1f1f7"],":flag_hn:":["1f1ed-1f1f3"],":hn:":["1f1ed-1f1f3"],":flag_hm:":["1f1ed-1f1f2"],":hm:":["1f1ed-1f1f2"],":flag_hk:":["1f1ed-1f1f0"],":hk:":["1f1ed-1f1f0"],":flag_gy:":["1f1ec-1f1fe"],":gy:":["1f1ec-1f1fe"],":flag_gw:":["1f1ec-1f1fc"],":gw:":["1f1ec-1f1fc"],":flag_gu:":["1f1ec-1f1fa"],":gu:":["1f1ec-1f1fa"],":flag_gt:":["1f1ec-1f1f9"],":gt:":["1f1ec-1f1f9"],":flag_gs:":["1f1ec-1f1f8"],":gs:":["1f1ec-1f1f8"],":flag_gr:":["1f1ec-1f1f7"],":gr:":["1f1ec-1f1f7"],":flag_gq:":["1f1ec-1f1f6"],":gq:":["1f1ec-1f1f6"],":flag_gp:":["1f1ec-1f1f5"],":gp:":["1f1ec-1f1f5"],":flag_gn:":["1f1ec-1f1f3"],":gn:":["1f1ec-1f1f3"],":flag_gm:":["1f1ec-1f1f2"],":gm:":["1f1ec-1f1f2"],":flag_gl:":["1f1ec-1f1f1"],":gl:":["1f1ec-1f1f1"],":flag_gi:":["1f1ec-1f1ee"],":gi:":["1f1ec-1f1ee"],":flag_gh:":["1f1ec-1f1ed"],":gh:":["1f1ec-1f1ed"],":flag_gg:":["1f1ec-1f1ec"],":gg:":["1f1ec-1f1ec"],":flag_gf:":["1f1ec-1f1eb"],":gf:":["1f1ec-1f1eb"],":flag_ge:":["1f1ec-1f1ea"],":ge:":["1f1ec-1f1ea"],":flag_gd:":["1f1ec-1f1e9"],":gd:":["1f1ec-1f1e9"],":flag_gb:":["1f1ec-1f1e7"],":gb:":["1f1ec-1f1e7"],":flag_ga:":["1f1ec-1f1e6"],":ga:":["1f1ec-1f1e6"],":flag_fr:":["1f1eb-1f1f7"],":fr:":["1f1eb-1f1f7"],":flag_fo:":["1f1eb-1f1f4"],":fo:":["1f1eb-1f1f4"],":flag_fm:":["1f1eb-1f1f2"],":fm:":["1f1eb-1f1f2"],":flag_fk:":["1f1eb-1f1f0"],":fk:":["1f1eb-1f1f0"],":flag_fj:":["1f1eb-1f1ef"],":fj:":["1f1eb-1f1ef"],":flag_fi:":["1f1eb-1f1ee"],":fi:":["1f1eb-1f1ee"],":flag_eu:":["1f1ea-1f1fa"],":eu:":["1f1ea-1f1fa"],":flag_et:":["1f1ea-1f1f9"],":et:":["1f1ea-1f1f9"],":flag_es:":["1f1ea-1f1f8"],":es:":["1f1ea-1f1f8"],":flag_er:":["1f1ea-1f1f7"],":er:":["1f1ea-1f1f7"],":flag_eh:":["1f1ea-1f1ed"],":eh:":["1f1ea-1f1ed"],":flag_eg:":["1f1ea-1f1ec"],":eg:":["1f1ea-1f1ec"],":flag_ee:":["1f1ea-1f1ea"],":ee:":["1f1ea-1f1ea"],":flag_ec:":["1f1ea-1f1e8"],":ec:":["1f1ea-1f1e8"],":flag_ea:":["1f1ea-1f1e6"],":ea:":["1f1ea-1f1e6"],":flag_dz:":["1f1e9-1f1ff"],":dz:":["1f1e9-1f1ff"],":flag_do:":["1f1e9-1f1f4"],":do:":["1f1e9-1f1f4"],":flag_dm:":["1f1e9-1f1f2"],":dm:":["1f1e9-1f1f2"],":flag_dk:":["1f1e9-1f1f0"],":dk:":["1f1e9-1f1f0"],":flag_dj:":["1f1e9-1f1ef"],":dj:":["1f1e9-1f1ef"],":flag_dg:":["1f1e9-1f1ec"],":dg:":["1f1e9-1f1ec"],":flag_de:":["1f1e9-1f1ea"],":de:":["1f1e9-1f1ea"],":flag_cz:":["1f1e8-1f1ff"],":cz:":["1f1e8-1f1ff"],":flag_cy:":["1f1e8-1f1fe"],":cy:":["1f1e8-1f1fe"],":flag_cx:":["1f1e8-1f1fd"],":cx:":["1f1e8-1f1fd"],":flag_cw:":["1f1e8-1f1fc"],":cw:":["1f1e8-1f1fc"],":flag_cv:":["1f1e8-1f1fb"],":cv:":["1f1e8-1f1fb"],":flag_cu:":["1f1e8-1f1fa"],":cu:":["1f1e8-1f1fa"],":flag_cr:":["1f1e8-1f1f7"],":cr:":["1f1e8-1f1f7"],":flag_cp:":["1f1e8-1f1f5"],":cp:":["1f1e8-1f1f5"],":flag_co:":["1f1e8-1f1f4"],":co:":["1f1e8-1f1f4"],":flag_cn:":["1f1e8-1f1f3"],":cn:":["1f1e8-1f1f3"],":flag_cm:":["1f1e8-1f1f2"],":cm:":["1f1e8-1f1f2"],":flag_cl:":["1f1e8-1f1f1"],":chile:":["1f1e8-1f1f1"],":flag_ck:":["1f1e8-1f1f0"],":ck:":["1f1e8-1f1f0"],":flag_ci:":["1f1e8-1f1ee"],":ci:":["1f1e8-1f1ee"],":flag_ch:":["1f1e8-1f1ed"],":ch:":["1f1e8-1f1ed"],":flag_cg:":["1f1e8-1f1ec"],":cg:":["1f1e8-1f1ec"],":flag_cf:":["1f1e8-1f1eb"],":cf:":["1f1e8-1f1eb"],":flag_cd:":["1f1e8-1f1e9"],":congo:":["1f1e8-1f1e9"],":flag_cc:":["1f1e8-1f1e8"],":cc:":["1f1e8-1f1e8"],":flag_ca:":["1f1e8-1f1e6"],":ca:":["1f1e8-1f1e6"],":flag_bz:":["1f1e7-1f1ff"],":bz:":["1f1e7-1f1ff"],":flag_by:":["1f1e7-1f1fe"],":by:":["1f1e7-1f1fe"],":flag_bw:":["1f1e7-1f1fc"],":bw:":["1f1e7-1f1fc"],":flag_bv:":["1f1e7-1f1fb"],":bv:":["1f1e7-1f1fb"],":flag_bt:":["1f1e7-1f1f9"],":bt:":["1f1e7-1f1f9"],":flag_bs:":["1f1e7-1f1f8"],":bs:":["1f1e7-1f1f8"],":flag_br:":["1f1e7-1f1f7"],":br:":["1f1e7-1f1f7"],":flag_bq:":["1f1e7-1f1f6"],":bq:":["1f1e7-1f1f6"],":flag_bo:":["1f1e7-1f1f4"],":bo:":["1f1e7-1f1f4"],":flag_bn:":["1f1e7-1f1f3"],":bn:":["1f1e7-1f1f3"],":flag_bm:":["1f1e7-1f1f2"],":bm:":["1f1e7-1f1f2"],":flag_bl:":["1f1e7-1f1f1"],":bl:":["1f1e7-1f1f1"],":flag_bj:":["1f1e7-1f1ef"],":bj:":["1f1e7-1f1ef"],":flag_bi:":["1f1e7-1f1ee"],":bi:":["1f1e7-1f1ee"],":flag_bh:":["1f1e7-1f1ed"],":bh:":["1f1e7-1f1ed"],":flag_bg:":["1f1e7-1f1ec"],":bg:":["1f1e7-1f1ec"],":flag_bf:":["1f1e7-1f1eb"],":bf:":["1f1e7-1f1eb"],":flag_be:":["1f1e7-1f1ea"],":be:":["1f1e7-1f1ea"],":flag_bd:":["1f1e7-1f1e9"],":bd:":["1f1e7-1f1e9"],":flag_bb:":["1f1e7-1f1e7"],":bb:":["1f1e7-1f1e7"],":flag_ba:":["1f1e7-1f1e6"],":ba:":["1f1e7-1f1e6"],":flag_az:":["1f1e6-1f1ff"],":az:":["1f1e6-1f1ff"],":flag_ax:":["1f1e6-1f1fd"],":ax:":["1f1e6-1f1fd"],":flag_aw:":["1f1e6-1f1fc"],":aw:":["1f1e6-1f1fc"],":flag_au:":["1f1e6-1f1fa"],":au:":["1f1e6-1f1fa"],":flag_at:":["1f1e6-1f1f9"],":at:":["1f1e6-1f1f9"],":flag_as:":["1f1e6-1f1f8"],":as:":["1f1e6-1f1f8"],":flag_ar:":["1f1e6-1f1f7"],":ar:":["1f1e6-1f1f7"],":flag_aq:":["1f1e6-1f1f6"],":aq:":["1f1e6-1f1f6"],":flag_ao:":["1f1e6-1f1f4"],":ao:":["1f1e6-1f1f4"],":flag_am:":["1f1e6-1f1f2"],":am:":["1f1e6-1f1f2"],":flag_al:":["1f1e6-1f1f1"],":al:":["1f1e6-1f1f1"],":flag_ai:":["1f1e6-1f1ee"],":ai:":["1f1e6-1f1ee"],":flag_ag:":["1f1e6-1f1ec"],":ag:":["1f1e6-1f1ec"],":flag_af:":["1f1e6-1f1eb"],":af:":["1f1e6-1f1eb"],":flag_ae:":["1f1e6-1f1ea"],":ae:":["1f1e6-1f1ea"],":flag_ad:":["1f1e6-1f1e9"],":ad:":["1f1e6-1f1e9"],":flag_ac:":["1f1e6-1f1e8"],":ac:":["1f1e6-1f1e8"],":mahjong:":["1f004-fe0f","1f004"],":parking:":["1f17f-fe0f","1f17f"],":u7121:":["1f21a-fe0f","1f21a"],":u6307:":["1f22f-fe0f","1f22f"],":u6708:":["1f237-fe0f","1f237"],":point_up_tone1:":["261d-1f3fb"],":point_up_tone2:":["261d-1f3fc"],":point_up_tone3:":["261d-1f3fd"],":point_up_tone4:":["261d-1f3fe"],":point_up_tone5:":["261d-1f3ff"],":v_tone1:":["270c-1f3fb"],":v_tone2:":["270c-1f3fc"],":v_tone3:":["270c-1f3fd"],":v_tone4:":["270c-1f3fe"],":v_tone5:":["270c-1f3ff"],":fist_tone1:":["270a-1f3fb"],":fist_tone2:":["270a-1f3fc"],":fist_tone3:":["270a-1f3fd"],":fist_tone4:":["270a-1f3fe"],":fist_tone5:":["270a-1f3ff"],":raised_hand_tone1:":["270b-1f3fb"],":raised_hand_tone2:":["270b-1f3fc"],":raised_hand_tone3:":["270b-1f3fd"],":raised_hand_tone4:":["270b-1f3fe"],":raised_hand_tone5:":["270b-1f3ff"],":writing_hand_tone1:":["270d-1f3fb"],":writing_hand_tone2:":["270d-1f3fc"],":writing_hand_tone3:":["270d-1f3fd"],":writing_hand_tone4:":["270d-1f3fe"],":writing_hand_tone5:":["270d-1f3ff"],":basketball_player_tone1:":["26f9-1f3fb"],":person_with_ball_tone1:":["26f9-1f3fb"],":basketball_player_tone2:":["26f9-1f3fc"],":person_with_ball_tone2:":["26f9-1f3fc"],":basketball_player_tone3:":["26f9-1f3fd"],":person_with_ball_tone3:":["26f9-1f3fd"],":basketball_player_tone4:":["26f9-1f3fe"],":person_with_ball_tone4:":["26f9-1f3fe"],":basketball_player_tone5:":["26f9-1f3ff"],":person_with_ball_tone5:":["26f9-1f3ff"],":copyright:":["00a9-fe0f","00a9"],":registered:":["00ae-fe0f","00ae"],":bangbang:":["203c-fe0f","203c"],":interrobang:":["2049-fe0f","2049"],":tm:":["2122-fe0f","2122"],":information_source:":["2139-fe0f","2139"],":left_right_arrow:":["2194-fe0f","2194"],":arrow_up_down:":["2195-fe0f","2195"],":arrow_upper_left:":["2196-fe0f","2196"],":arrow_upper_right:":["2197-fe0f","2197"],":arrow_lower_right:":["2198-fe0f","2198"],":arrow_lower_left:":["2199-fe0f","2199"],":leftwards_arrow_with_hook:":["21a9-fe0f","21a9"],":arrow_right_hook:":["21aa-fe0f","21aa"],":watch:":["231a-fe0f","231a"],":hourglass:":["231b-fe0f","231b"],":m:":["24c2-fe0f","24c2"],":black_small_square:":["25aa-fe0f","25aa"],":white_small_square:":["25ab-fe0f","25ab"],":arrow_forward:":["25b6-fe0f","25b6"],":arrow_backward:":["25c0-fe0f","25c0"],":white_medium_square:":["25fb-fe0f","25fb"],":black_medium_square:":["25fc-fe0f","25fc"],":white_medium_small_square:":["25fd-fe0f","25fd"],":black_medium_small_square:":["25fe-fe0f","25fe"],":sunny:":["2600-fe0f","2600"],":cloud:":["2601-fe0f","2601"],":telephone:":["260e-fe0f","260e"],":ballot_box_with_check:":["2611-fe0f","2611"],":umbrella:":["2614-fe0f","2614"],":coffee:":["2615-fe0f","2615"],":point_up:":["261d-fe0f","261d"],":relaxed:":["263a-fe0f","263a"],":aries:":["2648-fe0f","2648"],":taurus:":["2649-fe0f","2649"],":gemini:":["264a-fe0f","264a"],":cancer:":["264b-fe0f","264b"],":leo:":["264c-fe0f","264c"],":virgo:":["264d-fe0f","264d"],":libra:":["264e-fe0f","264e"],":scorpius:":["264f-fe0f","264f"],":sagittarius:":["2650-fe0f","2650"],":capricorn:":["2651-fe0f","2651"],":aquarius:":["2652-fe0f","2652"],":pisces:":["2653-fe0f","2653"],":spades:":["2660-fe0f","2660"],":clubs:":["2663-fe0f","2663"],":hearts:":["2665-fe0f","2665"],":diamonds:":["2666-fe0f","2666"],":hotsprings:":["2668-fe0f","2668"],":recycle:":["267b-fe0f","267b"],":wheelchair:":["267f-fe0f","267f"],":anchor:":["2693-fe0f","2693"],":warning:":["26a0-fe0f","26a0"],":zap:":["26a1-fe0f","26a1"],":white_circle:":["26aa-fe0f","26aa"],":black_circle:":["26ab-fe0f","26ab"],":soccer:":["26bd-fe0f","26bd"],":baseball:":["26be-fe0f","26be"],":snowman:":["26c4-fe0f","26c4"],":partly_sunny:":["26c5-fe0f","26c5"],":no_entry:":["26d4-fe0f","26d4"],":church:":["26ea-fe0f","26ea"],":fountain:":["26f2-fe0f","26f2"],":golf:":["26f3-fe0f","26f3"],":sailboat:":["26f5-fe0f","26f5"],
-":tent:":["26fa-fe0f","26fa"],":fuelpump:":["26fd-fe0f","26fd"],":scissors:":["2702-fe0f","2702"],":airplane:":["2708-fe0f","2708"],":envelope:":["2709-fe0f","2709"],":v:":["270c-fe0f","270c"],":pencil2:":["270f-fe0f","270f"],":black_nib:":["2712-fe0f","2712"],":heavy_check_mark:":["2714-fe0f","2714"],":heavy_multiplication_x:":["2716-fe0f","2716"],":eight_spoked_asterisk:":["2733-fe0f","2733"],":eight_pointed_black_star:":["2734-fe0f","2734"],":snowflake:":["2744-fe0f","2744"],":sparkle:":["2747-fe0f","2747"],":exclamation:":["2757-fe0f","2757"],":heart:":["2764-fe0f","2764"],":arrow_right:":["27a1-fe0f","27a1"],":arrow_heading_up:":["2934-fe0f","2934"],":arrow_heading_down:":["2935-fe0f","2935"],":arrow_left:":["2b05-fe0f","2b05"],":arrow_up:":["2b06-fe0f","2b06"],":arrow_down:":["2b07-fe0f","2b07"],":black_large_square:":["2b1b-fe0f","2b1b"],":white_large_square:":["2b1c-fe0f","2b1c"],":star:":["2b50-fe0f","2b50"],":o:":["2b55-fe0f","2b55"],":part_alternation_mark:":["303d-fe0f","303d"],":congratulations:":["3297-fe0f","3297"],":secret:":["3299-fe0f","3299"],":black_joker:":["1f0cf"],":a:":["1f170"],":b:":["1f171"],":o2:":["1f17e"],":ab:":["1f18e"],":cl:":["1f191"],":cool:":["1f192"],":free:":["1f193"],":id:":["1f194"],":new:":["1f195"],":ng:":["1f196"],":ok:":["1f197"],":sos:":["1f198"],":up:":["1f199"],":vs:":["1f19a"],":koko:":["1f201"],":sa:":["1f202"],":u7981:":["1f232"],":u7a7a:":["1f233"],":u5408:":["1f234"],":u6e80:":["1f235"],":u6709:":["1f236"],":u7533:":["1f238"],":u5272:":["1f239"],":u55b6:":["1f23a"],":ideograph_advantage:":["1f250"],":accept:":["1f251"],":cyclone:":["1f300"],":foggy:":["1f301"],":closed_umbrella:":["1f302"],":night_with_stars:":["1f303"],":sunrise_over_mountains:":["1f304"],":sunrise:":["1f305"],":city_dusk:":["1f306"],":city_sunset:":["1f307"],":city_sunrise:":["1f307"],":rainbow:":["1f308"],":bridge_at_night:":["1f309"],":ocean:":["1f30a"],":volcano:":["1f30b"],":milky_way:":["1f30c"],":earth_asia:":["1f30f"],":new_moon:":["1f311"],":first_quarter_moon:":["1f313"],":waxing_gibbous_moon:":["1f314"],":full_moon:":["1f315"],":crescent_moon:":["1f319"],":first_quarter_moon_with_face:":["1f31b"],":star2:":["1f31f"],":stars:":["1f320"],":chestnut:":["1f330"],":seedling:":["1f331"],":palm_tree:":["1f334"],":cactus:":["1f335"],":tulip:":["1f337"],":cherry_blossom:":["1f338"],":rose:":["1f339"],":hibiscus:":["1f33a"],":sunflower:":["1f33b"],":blossom:":["1f33c"],":corn:":["1f33d"],":ear_of_rice:":["1f33e"],":herb:":["1f33f"],":four_leaf_clover:":["1f340"],":maple_leaf:":["1f341"],":fallen_leaf:":["1f342"],":leaves:":["1f343"],":mushroom:":["1f344"],":tomato:":["1f345"],":eggplant:":["1f346"],":grapes:":["1f347"],":melon:":["1f348"],":watermelon:":["1f349"],":tangerine:":["1f34a"],":banana:":["1f34c"],":pineapple:":["1f34d"],":apple:":["1f34e"],":green_apple:":["1f34f"],":peach:":["1f351"],":cherries:":["1f352"],":strawberry:":["1f353"],":hamburger:":["1f354"],":pizza:":["1f355"],":meat_on_bone:":["1f356"],":poultry_leg:":["1f357"],":rice_cracker:":["1f358"],":rice_ball:":["1f359"],":rice:":["1f35a"],":curry:":["1f35b"],":ramen:":["1f35c"],":spaghetti:":["1f35d"],":bread:":["1f35e"],":fries:":["1f35f"],":sweet_potato:":["1f360"],":dango:":["1f361"],":oden:":["1f362"],":sushi:":["1f363"],":fried_shrimp:":["1f364"],":fish_cake:":["1f365"],":icecream:":["1f366"],":shaved_ice:":["1f367"],":ice_cream:":["1f368"],":doughnut:":["1f369"],":cookie:":["1f36a"],":chocolate_bar:":["1f36b"],":candy:":["1f36c"],":lollipop:":["1f36d"],":custard:":["1f36e"],":honey_pot:":["1f36f"],":cake:":["1f370"],":bento:":["1f371"],":stew:":["1f372"],":egg:":["1f373"],":fork_and_knife:":["1f374"],":tea:":["1f375"],":sake:":["1f376"],":wine_glass:":["1f377"],":cocktail:":["1f378"],":tropical_drink:":["1f379"],":beer:":["1f37a"],":beers:":["1f37b"],":ribbon:":["1f380"],":gift:":["1f381"],":birthday:":["1f382"],":jack_o_lantern:":["1f383"],":christmas_tree:":["1f384"],":santa:":["1f385"],":fireworks:":["1f386"],":sparkler:":["1f387"],":balloon:":["1f388"],":tada:":["1f389"],":confetti_ball:":["1f38a"],":tanabata_tree:":["1f38b"],":crossed_flags:":["1f38c"],":bamboo:":["1f38d"],":dolls:":["1f38e"],":flags:":["1f38f"],":wind_chime:":["1f390"],":rice_scene:":["1f391"],":school_satchel:":["1f392"],":mortar_board:":["1f393"],":carousel_horse:":["1f3a0"],":ferris_wheel:":["1f3a1"],":roller_coaster:":["1f3a2"],":fishing_pole_and_fish:":["1f3a3"],":microphone:":["1f3a4"],":movie_camera:":["1f3a5"],":cinema:":["1f3a6"],":headphones:":["1f3a7"],":art:":["1f3a8"],":tophat:":["1f3a9"],":circus_tent:":["1f3aa"],":ticket:":["1f3ab"],":clapper:":["1f3ac"],":performing_arts:":["1f3ad"],":video_game:":["1f3ae"],":dart:":["1f3af"],":slot_machine:":["1f3b0"],":8ball:":["1f3b1"],":game_die:":["1f3b2"],":bowling:":["1f3b3"],":flower_playing_cards:":["1f3b4"],":musical_note:":["1f3b5"],":notes:":["1f3b6"],":saxophone:":["1f3b7"],":guitar:":["1f3b8"],":musical_keyboard:":["1f3b9"],":trumpet:":["1f3ba"],":violin:":["1f3bb"],":musical_score:":["1f3bc"],":running_shirt_with_sash:":["1f3bd"],":tennis:":["1f3be"],":ski:":["1f3bf"],":basketball:":["1f3c0"],":checkered_flag:":["1f3c1"],":snowboarder:":["1f3c2"],":runner:":["1f3c3"],":surfer:":["1f3c4"],":trophy:":["1f3c6"],":football:":["1f3c8"],":swimmer:":["1f3ca"],":house:":["1f3e0"],":house_with_garden:":["1f3e1"],":office:":["1f3e2"],":post_office:":["1f3e3"],":hospital:":["1f3e5"],":bank:":["1f3e6"],":atm:":["1f3e7"],":hotel:":["1f3e8"],":love_hotel:":["1f3e9"],":convenience_store:":["1f3ea"],":school:":["1f3eb"],":department_store:":["1f3ec"],":factory:":["1f3ed"],":izakaya_lantern:":["1f3ee"],":japanese_castle:":["1f3ef"],":european_castle:":["1f3f0"],":snail:":["1f40c"],":snake:":["1f40d"],":racehorse:":["1f40e"],":sheep:":["1f411"],":monkey:":["1f412"],":chicken:":["1f414"],":boar:":["1f417"],":elephant:":["1f418"],":octopus:":["1f419"],":shell:":["1f41a"],":bug:":["1f41b"],":ant:":["1f41c"],":bee:":["1f41d"],":beetle:":["1f41e"],":fish:":["1f41f"],":tropical_fish:":["1f420"],":blowfish:":["1f421"],":turtle:":["1f422"],":hatching_chick:":["1f423"],":baby_chick:":["1f424"],":hatched_chick:":["1f425"],":bird:":["1f426"],":penguin:":["1f427"],":koala:":["1f428"],":poodle:":["1f429"],":camel:":["1f42b"],":dolphin:":["1f42c"],":mouse:":["1f42d"],":cow:":["1f42e"],":tiger:":["1f42f"],":rabbit:":["1f430"],":cat:":["1f431"],":dragon_face:":["1f432"],":whale:":["1f433"],":horse:":["1f434"],":monkey_face:":["1f435"],":dog:":["1f436"],":pig:":["1f437"],":frog:":["1f438"],":hamster:":["1f439"],":wolf:":["1f43a"],":bear:":["1f43b"],":panda_face:":["1f43c"],":pig_nose:":["1f43d"],":feet:":["1f43e"],":paw_prints:":["1f43e"],":eyes:":["1f440"],":ear:":["1f442"],":nose:":["1f443"],":lips:":["1f444"],":tongue:":["1f445"],":point_up_2:":["1f446"],":point_down:":["1f447"],":point_left:":["1f448"],":point_right:":["1f449"],":punch:":["1f44a"],":wave:":["1f44b"],":ok_hand:":["1f44c"],":thumbsup:":["1f44d"],":+1:":["1f44d"],":thumbsdown:":["1f44e"],":-1:":["1f44e"],":clap:":["1f44f"],":open_hands:":["1f450"],":crown:":["1f451"],":womans_hat:":["1f452"],":eyeglasses:":["1f453"],":necktie:":["1f454"],":shirt:":["1f455"],":jeans:":["1f456"],":dress:":["1f457"],":kimono:":["1f458"],":bikini:":["1f459"],":womans_clothes:":["1f45a"],":purse:":["1f45b"],":handbag:":["1f45c"],":pouch:":["1f45d"],":mans_shoe:":["1f45e"],":athletic_shoe:":["1f45f"],":high_heel:":["1f460"],":sandal:":["1f461"],":boot:":["1f462"],":footprints:":["1f463"],":bust_in_silhouette:":["1f464"],":boy:":["1f466"],":girl:":["1f467"],":man:":["1f468"],":woman:":["1f469"],":family:":["1f46a"],":couple:":["1f46b"],":cop:":["1f46e"],":dancers:":["1f46f"],":bride_with_veil:":["1f470"],":person_with_blond_hair:":["1f471"],":man_with_gua_pi_mao:":["1f472"],":man_with_turban:":["1f473"],":older_man:":["1f474"],":older_woman:":["1f475"],":grandma:":["1f475"],":baby:":["1f476"],":construction_worker:":["1f477"],":princess:":["1f478"],":japanese_ogre:":["1f479"],":japanese_goblin:":["1f47a"],":ghost:":["1f47b"],":angel:":["1f47c"],":alien:":["1f47d"],":space_invader:":["1f47e"],":imp:":["1f47f"],":skull:":["1f480"],":skeleton:":["1f480"],":card_index:":["1f4c7"],":information_desk_person:":["1f481"],":guardsman:":["1f482"],":dancer:":["1f483"],":lipstick:":["1f484"],":nail_care:":["1f485"],":ledger:":["1f4d2"],":massage:":["1f486"],":notebook:":["1f4d3"],":haircut:":["1f487"],":notebook_with_decorative_cover:":["1f4d4"],":barber:":["1f488"],":closed_book:":["1f4d5"],":syringe:":["1f489"],":book:":["1f4d6"],":pill:":["1f48a"],":green_book:":["1f4d7"],":kiss:":["1f48b"],":blue_book:":["1f4d8"],":love_letter:":["1f48c"],":orange_book:":["1f4d9"],":ring:":["1f48d"],":books:":["1f4da"],":gem:":["1f48e"],":name_badge:":["1f4db"],":couplekiss:":["1f48f"],":scroll:":["1f4dc"],":bouquet:":["1f490"],":pencil:":["1f4dd"],":couple_with_heart:":["1f491"],":telephone_receiver:":["1f4de"],":wedding:":["1f492"],":pager:":["1f4df"],":fax:":["1f4e0"],":heartbeat:":["1f493"],":satellite:":["1f4e1"],":loudspeaker:":["1f4e2"],":broken_heart:":["1f494"],":mega:":["1f4e3"],":outbox_tray:":["1f4e4"],":two_hearts:":["1f495"],":inbox_tray:":["1f4e5"],":package:":["1f4e6"],":sparkling_heart:":["1f496"],":e-mail:":["1f4e7"],":email:":["1f4e7"],":incoming_envelope:":["1f4e8"],":heartpulse:":["1f497"],":envelope_with_arrow:":["1f4e9"],":mailbox_closed:":["1f4ea"],":cupid:":["1f498"],":mailbox:":["1f4eb"],":postbox:":["1f4ee"],":blue_heart:":["1f499"],":newspaper:":["1f4f0"],":iphone:":["1f4f1"],":green_heart:":["1f49a"],":calling:":["1f4f2"],":vibration_mode:":["1f4f3"],":yellow_heart:":["1f49b"],":mobile_phone_off:":["1f4f4"],":signal_strength:":["1f4f6"],":purple_heart:":["1f49c"],":camera:":["1f4f7"],":video_camera:":["1f4f9"],":gift_heart:":["1f49d"],":tv:":["1f4fa"],":radio:":["1f4fb"],":revolving_hearts:":["1f49e"],":vhs:":["1f4fc"],":arrows_clockwise:":["1f503"],":heart_decoration:":["1f49f"],":loud_sound:":["1f50a"],":battery:":["1f50b"],":diamond_shape_with_a_dot_inside:":["1f4a0"],":electric_plug:":["1f50c"],":mag:":["1f50d"],":bulb:":["1f4a1"],":mag_right:":["1f50e"],":lock_with_ink_pen:":["1f50f"],":anger:":["1f4a2"],":closed_lock_with_key:":["1f510"],":key:":["1f511"],":bomb:":["1f4a3"],":lock:":["1f512"],":unlock:":["1f513"],":zzz:":["1f4a4"],":bell:":["1f514"],":bookmark:":["1f516"],":boom:":["1f4a5"],":link:":["1f517"],":radio_button:":["1f518"],":sweat_drops:":["1f4a6"],":back:":["1f519"],":end:":["1f51a"],":droplet:":["1f4a7"],":on:":["1f51b"],":soon:":["1f51c"],":dash:":["1f4a8"],":top:":["1f51d"],":underage:":["1f51e"],":poop:":["1f4a9"],":shit:":["1f4a9"],":hankey:":["1f4a9"],":poo:":["1f4a9"],":ten:":["1f51f"],":muscle:":["1f4aa"],":capital_abcd:":["1f520"],":abcd:":["1f521"],":dizzy:":["1f4ab"],":1234:":["1f522"],":symbols:":["1f523"],":speech_balloon:":["1f4ac"],":abc:":["1f524"],":fire:":["1f525"],":flame:":["1f525"],":white_flower:":["1f4ae"],":flashlight:":["1f526"],":wrench:":["1f527"],":100:":["1f4af"],":hammer:":["1f528"],":nut_and_bolt:":["1f529"],":moneybag:":["1f4b0"],":knife:":["1f52a"],":gun:":["1f52b"],":currency_exchange:":["1f4b1"],":crystal_ball:":["1f52e"],":heavy_dollar_sign:":["1f4b2"],":six_pointed_star:":["1f52f"],":credit_card:":["1f4b3"],":beginner:":["1f530"],":trident:":["1f531"],":yen:":["1f4b4"],":black_square_button:":["1f532"],":white_square_button:":["1f533"],":dollar:":["1f4b5"],":red_circle:":["1f534"],":large_blue_circle:":["1f535"],":money_with_wings:":["1f4b8"],":large_orange_diamond:":["1f536"],":large_blue_diamond:":["1f537"],":chart:":["1f4b9"],":small_orange_diamond:":["1f538"],":small_blue_diamond:":["1f539"],":seat:":["1f4ba"],":small_red_triangle:":["1f53a"],":small_red_triangle_down:":["1f53b"],":computer:":["1f4bb"],":arrow_up_small:":["1f53c"],":briefcase:":["1f4bc"],":arrow_down_small:":["1f53d"],":clock1:":["1f550"],":minidisc:":["1f4bd"],":clock2:":["1f551"],":floppy_disk:":["1f4be"],":clock3:":["1f552"],":cd:":["1f4bf"],":clock4:":["1f553"],":dvd:":["1f4c0"],":clock5:":["1f554"],":clock6:":["1f555"],":file_folder:":["1f4c1"],":clock7:":["1f556"],":clock8:":["1f557"],":open_file_folder:":["1f4c2"],":clock9:":["1f558"],":clock10:":["1f559"],":page_with_curl:":["1f4c3"],":clock11:":["1f55a"],":clock12:":["1f55b"],":page_facing_up:":["1f4c4"],":mount_fuji:":["1f5fb"],":tokyo_tower:":["1f5fc"],":date:":["1f4c5"],":statue_of_liberty:":["1f5fd"],":japan:":["1f5fe"],":calendar:":["1f4c6"],":moyai:":["1f5ff"],":grin:":["1f601"],":joy:":["1f602"],":smiley:":["1f603"],":chart_with_upwards_trend:":["1f4c8"],":smile:":["1f604"],":sweat_smile:":["1f605"],":chart_with_downwards_trend:":["1f4c9"],":laughing:":["1f606"],":satisfied:":["1f606"],":wink:":["1f609"],":bar_chart:":["1f4ca"],":blush:":["1f60a"],":yum:":["1f60b"],":clipboard:":["1f4cb"],":relieved:":["1f60c"],":heart_eyes:":["1f60d"],":pushpin:":["1f4cc"],":smirk:":["1f60f"],":unamused:":["1f612"],":round_pushpin:":["1f4cd"],":sweat:":["1f613"],":pensive:":["1f614"],":paperclip:":["1f4ce"],":confounded:":["1f616"],":kissing_heart:":["1f618"],":straight_ruler:":["1f4cf"],":kissing_closed_eyes:":["1f61a"],":stuck_out_tongue_winking_eye:":["1f61c"],":triangular_ruler:":["1f4d0"],":stuck_out_tongue_closed_eyes:":["1f61d"],":disappointed:":["1f61e"],":bookmark_tabs:":["1f4d1"],":angry:":["1f620"],":rage:":["1f621"],":cry:":["1f622"],":persevere:":["1f623"],":triumph:":["1f624"],":disappointed_relieved:":["1f625"],":fearful:":["1f628"],":weary:":["1f629"],":sleepy:":["1f62a"],":tired_face:":["1f62b"],":sob:":["1f62d"],":cold_sweat:":["1f630"],":scream:":["1f631"],":astonished:":["1f632"],":flushed:":["1f633"],":dizzy_face:":["1f635"],":mask:":["1f637"],":smile_cat:":["1f638"],":joy_cat:":["1f639"],":smiley_cat:":["1f63a"],":heart_eyes_cat:":["1f63b"],":smirk_cat:":["1f63c"],":kissing_cat:":["1f63d"],":pouting_cat:":["1f63e"],":crying_cat_face:":["1f63f"],":scream_cat:":["1f640"],":no_good:":["1f645"],":ok_woman:":["1f646"],":bow:":["1f647"],":see_no_evil:":["1f648"],":hear_no_evil:":["1f649"],":speak_no_evil:":["1f64a"],":raising_hand:":["1f64b"],":raised_hands:":["1f64c"],":person_frowning:":["1f64d"],":person_with_pouting_face:":["1f64e"],":pray:":["1f64f"],":rocket:":["1f680"],":railway_car:":["1f683"],":bullettrain_side:":["1f684"],":bullettrain_front:":["1f685"],":metro:":["1f687"],":station:":["1f689"],":bus:":["1f68c"],":busstop:":["1f68f"],":ambulance:":["1f691"],":fire_engine:":["1f692"],":police_car:":["1f693"],":taxi:":["1f695"],":red_car:":["1f697"],":blue_car:":["1f699"],":truck:":["1f69a"],":ship:":["1f6a2"],":speedboat:":["1f6a4"],":traffic_light:":["1f6a5"],":construction:":["1f6a7"],":rotating_light:":["1f6a8"],":triangular_flag_on_post:":["1f6a9"],":door:":["1f6aa"],":no_entry_sign:":["1f6ab"],":smoking:":["1f6ac"],":no_smoking:":["1f6ad"],":bike:":["1f6b2"],":walking:":["1f6b6"],":mens:":["1f6b9"],":womens:":["1f6ba"],":restroom:":["1f6bb"],":baby_symbol:":["1f6bc"],":toilet:":["1f6bd"],":wc:":["1f6be"],":bath:":["1f6c0"],":metal:":["1f918"],":sign_of_the_horns:":["1f918"],":grinning:":["1f600"],":innocent:":["1f607"],":smiling_imp:":["1f608"],":sunglasses:":["1f60e"],":neutral_face:":["1f610"],":expressionless:":["1f611"],":confused:":["1f615"],":kissing:":["1f617"],":kissing_smiling_eyes:":["1f619"],":stuck_out_tongue:":["1f61b"],":worried:":["1f61f"],":frowning:":["1f626"],":anguished:":["1f627"],":grimacing:":["1f62c"],":open_mouth:":["1f62e"],":hushed:":["1f62f"],":sleeping:":["1f634"],":no_mouth:":["1f636"],":helicopter:":["1f681"],":steam_locomotive:":["1f682"],":train2:":["1f686"],":light_rail:":["1f688"],":tram:":["1f68a"],":oncoming_bus:":["1f68d"],":trolleybus:":["1f68e"],":minibus:":["1f690"],":oncoming_police_car:":["1f694"],":oncoming_taxi:":["1f696"],":oncoming_automobile:":["1f698"],":articulated_lorry:":["1f69b"],":tractor:":["1f69c"],":monorail:":["1f69d"],":mountain_railway:":["1f69e"],":suspension_railway:":["1f69f"],":mountain_cableway:":["1f6a0"],":aerial_tramway:":["1f6a1"],":rowboat:":["1f6a3"],":vertical_traffic_light:":["1f6a6"],":put_litter_in_its_place:":["1f6ae"],":do_not_litter:":["1f6af"],":potable_water:":["1f6b0"],":non-potable_water:":["1f6b1"],":no_bicycles:":["1f6b3"],":bicyclist:":["1f6b4"],":mountain_bicyclist:":["1f6b5"],":no_pedestrians:":["1f6b7"],":children_crossing:":["1f6b8"],":shower:":["1f6bf"],":bathtub:":["1f6c1"],":passport_control:":["1f6c2"],":customs:":["1f6c3"],":baggage_claim:":["1f6c4"],":left_luggage:":["1f6c5"],":earth_africa:":["1f30d"],":earth_americas:":["1f30e"],":globe_with_meridians:":["1f310"],":waxing_crescent_moon:":["1f312"],":waning_gibbous_moon:":["1f316"],":last_quarter_moon:":["1f317"],":waning_crescent_moon:":["1f318"],":new_moon_with_face:":["1f31a"],":last_quarter_moon_with_face:":["1f31c"],":full_moon_with_face:":["1f31d"],":sun_with_face:":["1f31e"],":evergreen_tree:":["1f332"],":deciduous_tree:":["1f333"],":lemon:":["1f34b"],":pear:":["1f350"],":baby_bottle:":["1f37c"],":horse_racing:":["1f3c7"],":rugby_football:":["1f3c9"],":european_post_office:":["1f3e4"],":rat:":["1f400"],":mouse2:":["1f401"],":ox:":["1f402"],":water_buffalo:":["1f403"],":cow2:":["1f404"],":tiger2:":["1f405"],":leopard:":["1f406"],":rabbit2:":["1f407"],":cat2:":["1f408"],":dragon:":["1f409"],":crocodile:":["1f40a"],":whale2:":["1f40b"],":ram:":["1f40f"],":goat:":["1f410"],":rooster:":["1f413"],":dog2:":["1f415"],":pig2:":["1f416"],":dromedary_camel:":["1f42a"],":busts_in_silhouette:":["1f465"],":two_men_holding_hands:":["1f46c"],":two_women_holding_hands:":["1f46d"],":thought_balloon:":["1f4ad"],":euro:":["1f4b6"],":pound:":["1f4b7"],":mailbox_with_mail:":["1f4ec"],":mailbox_with_no_mail:":["1f4ed"],":postal_horn:":["1f4ef"],":no_mobile_phones:":["1f4f5"],":twisted_rightwards_arrows:":["1f500"],":repeat:":["1f501"],":repeat_one:":["1f502"],":arrows_counterclockwise:":["1f504"],":low_brightness:":["1f505"],":high_brightness:":["1f506"],":mute:":["1f507"],":sound:":["1f509"],":no_bell:":["1f515"],":microscope:":["1f52c"],":telescope:":["1f52d"],":clock130:":["1f55c"],":clock230:":["1f55d"],":clock330:":["1f55e"],":clock430:":["1f55f"],":clock530:":["1f560"],":clock630:":["1f561"],":clock730:":["1f562"],":clock830:":["1f563"],":clock930:":["1f564"],":clock1030:":["1f565"],":clock1130:":["1f566"],":clock1230:":["1f567"],":speaker:":["1f508"],":train:":["1f68b"],":film_frames:":["1f39e"],":tickets:":["1f39f"],":admission_tickets:":["1f39f"],":medal:":["1f3c5"],":sports_medal:":["1f3c5"],":lifter:":["1f3cb"],":weight_lifter:":["1f3cb"],":golfer:":["1f3cc"],":motorcycle:":["1f3cd"],":racing_motorcycle:":["1f3cd"],":race_car:":["1f3ce"],":racing_car:":["1f3ce"],":military_medal:":["1f396"],":reminder_ribbon:":["1f397"],":hot_pepper:":["1f336"],":cloud_rain:":["1f327"],":cloud_with_rain:":["1f327"],":cloud_snow:":["1f328"],":cloud_with_snow:":["1f328"],":cloud_lightning:":["1f329"],":cloud_with_lightning:":["1f329"],":cloud_tornado:":["1f32a"],":cloud_with_tornado:":["1f32a"],":fog:":["1f32b"],":wind_blowing_face:":["1f32c"],":chipmunk:":["1f43f"],":spider:":["1f577"],":spider_web:":["1f578"],":thermometer:":["1f321"],":microphone2:":["1f399"],":studio_microphone:":["1f399"],":level_slider:":["1f39a"],":control_knobs:":["1f39b"],":flag_white:":["1f3f3"],":waving_white_flag:":["1f3f3"],":flag_black:":["1f3f4"],":waving_black_flag:":["1f3f4"],":rosette:":["1f3f5"],":label:":["1f3f7"],":camera_with_flash:":["1f4f8"],":projector:":["1f4fd"],":film_projector:":["1f4fd"],":om_symbol:":["1f549"],":dove:":["1f54a"],":dove_of_peace:":["1f54a"],":candle:":["1f56f"],":clock:":["1f570"],":mantlepiece_clock:":["1f570"],":hole:":["1f573"],":dark_sunglasses:":["1f576"],":joystick:":["1f579"],":paperclips:":["1f587"],":linked_paperclips:":["1f587"],":pen_ballpoint:":["1f58a"],":lower_left_ballpoint_pen:":["1f58a"],":pen_fountain:":["1f58b"],":lower_left_fountain_pen:":["1f58b"],":paintbrush:":["1f58c"],":lower_left_paintbrush:":["1f58c"],":crayon:":["1f58d"],":lower_left_crayon:":["1f58d"],":desktop:":["1f5a5"],":desktop_computer:":["1f5a5"],":printer:":["1f5a8"],":trackball:":["1f5b2"],":frame_photo:":["1f5bc"],":frame_with_picture:":["1f5bc"],":dividers:":["1f5c2"],":card_index_dividers:":["1f5c2"],":card_box:":["1f5c3"],":card_file_box:":["1f5c3"],":file_cabinet:":["1f5c4"],":wastebasket:":["1f5d1"],":notepad_spiral:":["1f5d2"],":spiral_note_pad:":["1f5d2"],":calendar_spiral:":["1f5d3"],":spiral_calendar_pad:":["1f5d3"],":compression:":["1f5dc"],":key2:":["1f5dd"],":old_key:":["1f5dd"],":newspaper2:":["1f5de"],":rolled_up_newspaper:":["1f5de"],":dagger:":["1f5e1"],":dagger_knife:":["1f5e1"],":speaking_head:":["1f5e3"],":speaking_head_in_silhouette:":["1f5e3"],":anger_right:":["1f5ef"],":right_anger_bubble:":["1f5ef"],":ballot_box:":["1f5f3"],":ballot_box_with_ballot:":["1f5f3"],":map:":["1f5fa"],":world_map:":["1f5fa"],":sleeping_accommodation:":["1f6cc"],":tools:":["1f6e0"],":hammer_and_wrench:":["1f6e0"],":shield:":["1f6e1"],":oil:":["1f6e2"],":oil_drum:":["1f6e2"],":satellite_orbital:":["1f6f0"],":fork_knife_plate:":["1f37d"],":fork_and_knife_with_plate:":["1f37d"],":eye:":["1f441"],":levitate:":["1f574"],":man_in_business_suit_levitating:":["1f574"],":spy:":["1f575"],":sleuth_or_spy:":["1f575"],":hand_splayed:":["1f590"],":raised_hand_with_fingers_splayed:":["1f590"],":middle_finger:":["1f595"],":reversed_hand_with_middle_finger_extended:":["1f595"],":vulcan:":["1f596"],":raised_hand_with_part_between_middle_and_ring_fingers:":["1f596"],":slight_frown:":["1f641"],":slightly_frowning_face:":["1f641"],":slight_smile:":["1f642"],":slightly_smiling_face:":["1f642"],":mountain_snow:":["1f3d4"],":snow_capped_mountain:":["1f3d4"],":camping:":["1f3d5"],":beach:":["1f3d6"],":beach_with_umbrella:":["1f3d6"],":construction_site:":["1f3d7"],":building_construction:":["1f3d7"],":homes:":["1f3d8"],":house_buildings:":["1f3d8"],":cityscape:":["1f3d9"],":house_abandoned:":["1f3da"],":derelict_house_building:":["1f3da"],":classical_building:":["1f3db"],":desert:":["1f3dc"],":island:":["1f3dd"],":desert_island:":["1f3dd"],":park:":["1f3de"],":national_park:":["1f3de"],":stadium:":["1f3df"],":couch:":["1f6cb"],":couch_and_lamp:":["1f6cb"],":shopping_bags:":["1f6cd"],":bellhop:":["1f6ce"],":bellhop_bell:":["1f6ce"],":bed:":["1f6cf"],":motorway:":["1f6e3"],":railway_track:":["1f6e4"],":railroad_track:":["1f6e4"],":motorboat:":["1f6e5"],":airplane_small:":["1f6e9"],":small_airplane:":["1f6e9"],":airplane_departure:":["1f6eb"],":airplane_arriving:":["1f6ec"],":cruise_ship:":["1f6f3"],":passenger_ship:":["1f6f3"],":tone1:":["1f3fb"],":tone2:":["1f3fc"],":tone3:":["1f3fd"],":tone4:":["1f3fe"],":tone5:":["1f3ff"],":white_sun_small_cloud:":["1f324"],":white_sun_with_small_cloud:":["1f324"],":white_sun_cloud:":["1f325"],":white_sun_behind_cloud:":["1f325"],":white_sun_rain_cloud:":["1f326"],":white_sun_behind_cloud_with_rain:":["1f326"],":mouse_three_button:":["1f5b1"],":three_button_mouse:":["1f5b1"],":upside_down:":["1f643"],":upside_down_face:":["1f643"],":money_mouth:":["1f911"],":money_mouth_face:":["1f911"],":nerd:":["1f913"],":nerd_face:":["1f913"],":hugging:":["1f917"],":hugging_face:":["1f917"],":rolling_eyes:":["1f644"],":face_with_rolling_eyes:":["1f644"],":thinking:":["1f914"],":thinking_face:":["1f914"],":zipper_mouth:":["1f910"],":zipper_mouth_face:":["1f910"],":thermometer_face:":["1f912"],":face_with_thermometer:":["1f912"],":head_bandage:":["1f915"],":face_with_head_bandage:":["1f915"],":robot:":["1f916"],":robot_face:":["1f916"],":lion_face:":["1f981"],":lion:":["1f981"],":unicorn:":["1f984"],":unicorn_face:":["1f984"],":scorpion:":["1f982"],":crab:":["1f980"],":turkey:":["1f983"],":cheese:":["1f9c0"],":cheese_wedge:":["1f9c0"],":hotdog:":["1f32d"],":hot_dog:":["1f32d"],":taco:":["1f32e"],":burrito:":["1f32f"],":popcorn:":["1f37f"],":champagne:":["1f37e"],":bottle_with_popping_cork:":["1f37e"],":bow_and_arrow:":["1f3f9"],":archery:":["1f3f9"],":amphora:":["1f3fa"],":place_of_worship:":["1f6d0"],":worship_symbol:":["1f6d0"],":kaaba:":["1f54b"],":mosque:":["1f54c"],":synagogue:":["1f54d"],":menorah:":["1f54e"],":prayer_beads:":["1f4ff"],":cricket:":["1f3cf"],":cricket_bat_ball:":["1f3cf"],":volleyball:":["1f3d0"],":field_hockey:":["1f3d1"],":hockey:":["1f3d2"],":ping_pong:":["1f3d3"],":table_tennis:":["1f3d3"],":badminton:":["1f3f8"],":fast_forward:":["23e9"],":rewind:":["23ea"],":arrow_double_up:":["23eb"],":arrow_double_down:":["23ec"],":alarm_clock:":["23f0"],":hourglass_flowing_sand:":["23f3"],":ophiuchus:":["26ce"],":white_check_mark:":["2705"],":fist:":["270a"],":raised_hand:":["270b"],":sparkles:":["2728"],":x:":["274c"],":negative_squared_cross_mark:":["274e"],":question:":["2753"],":grey_question:":["2754"],":grey_exclamation:":["2755"],":heavy_plus_sign:":["2795"],":heavy_minus_sign:":["2796"],":heavy_division_sign:":["2797"],":curly_loop:":["27b0"],":wavy_dash:":["3030"],":loop:":["27bf"],":cross:":["271d"],":latin_cross:":["271d"],":keyboard:":["2328"],":writing_hand:":["270d"],":track_next:":["23ed"],":next_track:":["23ed"],":track_previous:":["23ee"],":previous_track:":["23ee"],":play_pause:":["23ef"],":stopwatch:":["23f1"],":timer:":["23f2"],":timer_clock:":["23f2"],":pause_button:":["23f8"],":double_vertical_bar:":["23f8"],":stop_button:":["23f9"],":record_button:":["23fa"],":umbrella2:":["2602"],":snowman2:":["2603"],":comet:":["2604"],":shamrock:":["2618"],":skull_crossbones:":["2620"],":skull_and_crossbones:":["2620"],":radioactive:":["2622"],":radioactive_sign:":["2622"],":biohazard:":["2623"],":biohazard_sign:":["2623"],":orthodox_cross:":["2626"],":star_and_crescent:":["262a"],":peace:":["262e"],":peace_symbol:":["262e"],":yin_yang:":["262f"],":wheel_of_dharma:":["2638"],":frowning2:":["2639"],":white_frowning_face:":["2639"],":hammer_pick:":["2692"],":hammer_and_pick:":["2692"],":crossed_swords:":["2694"],":scales:":["2696"],":alembic:":["2697"],":gear:":["2699"],":atom:":["269b"],":atom_symbol:":["269b"],":fleur-de-lis:":["269c"],":coffin:":["26b0"],":urn:":["26b1"],":funeral_urn:":["26b1"],":thunder_cloud_rain:":["26c8"],":thunder_cloud_and_rain:":["26c8"],":pick:":["26cf"],":helmet_with_cross:":["26d1"],":helmet_with_white_cross:":["26d1"],":chains:":["26d3"],":shinto_shrine:":["26e9"],":mountain:":["26f0"],":beach_umbrella:":["26f1"],":umbrella_on_ground:":["26f1"],":ferry:":["26f4"],":skier:":["26f7"],":ice_skate:":["26f8"],":basketball_player:":["26f9"],":person_with_ball:":["26f9"],":star_of_david:":["2721"],":heart_exclamation:":["2763"],":heavy_heart_exclamation_mark_ornament:":["2763"]};var emoji,tmpShortNames=[];for(emoji in ns.emojioneList)ns.emojioneList.hasOwnProperty(emoji)&&tmpShortNames.push(emoji.replace(/[+]/g,"\\$&"));ns.shortnames=tmpShortNames.join("|"),ns.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f604",":-)":"1f604","=]":"1f604","=)":"1f604",":]":"1f604","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623","D:":"1f628",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},ns.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",ns.unicodeRegexp="(\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFE|\\u270B\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|4\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|8\\uFE0F\\u20E3|7\\uFE0F\\u20E3|6\\uFE0F\\u20E3|5\\uFE0F\\u20E3|9\\uFE0F\\u20E3|3\\uFE0F\\u20E3|2\\uFE0F\\u20E3|1\\uFE0F\\u20E3|0\\uFE0F\\u20E3|#\\uFE0F\\u20E3|\\uD83C\\uDF61|\\u2198\\uFE0F|\\u2199\\uFE0F|\\uD83C\\uDFF8|\\u2600\\uFE0F|\\u2601\\uFE0F|\\uD83C\\uDFD3|\\uD83C\\uDFD2|\\uD83C\\uDFD1|\\u2611\\uFE0F|\\u2614\\uFE0F|\\u2615\\uFE0F|\\uD83C\\uDFD0|\\uD83C\\uDFCF|\\uD83D\\uDCFF|\\uD83D\\uDD4E|\\uD83D\\uDD4D|\\uD83D\\uDD4C|\\uD83D\\uDD4B|\\u2648\\uFE0F|\\u2649\\uFE0F|\\u2650\\uFE0F|\\u2651\\uFE0F|\\u2652\\uFE0F|\\u2653\\uFE0F|\\u2660\\uFE0F|\\u2663\\uFE0F|\\u2665\\uFE0F|\\u2666\\uFE0F|\\u2668\\uFE0F|\\uD83D\\uDED0|\\u2693\\uFE0F|\\uD83C\\uDFFA|\\uD83C\\uDFF9|\\uD83C\\uDF7E|\\uD83C\\uDF7F|\\u2702\\uFE0F|\\uD83C\\uDF2F|\\u2708\\uFE0F|\\u2709\\uFE0F|\\u2712\\uFE0F|\\u2714\\uFE0F|\\u2716\\uFE0F|\\uD83C\\uDF2E|\\uD83C\\uDF2D|\\u2733\\uFE0F|\\u2734\\uFE0F|\\u2744\\uFE0F|\\u2747\\uFE0F|\\uD83E\\uDDC0|\\uD83E\\uDD83|\\uD83E\\uDD80|\\u2757\\uFE0F|\\uD83E\\uDD82|\\u2764\\uFE0F|\\uD83E\\uDD84|\\uD83E\\uDD81|\\uD83E\\uDD16|\\u2934\\uFE0F|\\u2935\\uFE0F|\\uD83E\\uDD15|\\u3297\\uFE0F|\\u3299\\uFE0F|\\u2049\\uFE0F|\\u2139\\uFE0F|\\u2194\\uFE0F|\\u2195\\uFE0F|\\u2196\\uFE0F|\\u2197\\uFE0F|\\u00A9\\uFE0F|\\u00AE\\uFE0F|\\u203C\\uFE0F|\\u21A9\\uFE0F|\\u21AA\\uFE0F|\\u231A\\uFE0F|\\u231B\\uFE0F|\\u24C2\\uFE0F|\\u25AA\\uFE0F|\\u25AB\\uFE0F|\\u25B6\\uFE0F|\\u25C0\\uFE0F|\\u25FB\\uFE0F|\\u25FC\\uFE0F|\\u25FD\\uFE0F|\\u25FE\\uFE0F|\\u260E\\uFE0F|\\u261D\\uFE0F|\\u263A\\uFE0F|\\u264A\\uFE0F|\\u264B\\uFE0F|\\u264C\\uFE0F|\\u264D\\uFE0F|\\u264E\\uFE0F|\\u264F\\uFE0F|\\u267B\\uFE0F|\\u267F\\uFE0F|\\u26A0\\uFE0F|\\u26A1\\uFE0F|\\u26AA\\uFE0F|\\u26AB\\uFE0F|\\u26BD\\uFE0F|\\u26BE\\uFE0F|\\u26C4\\uFE0F|\\u26C5\\uFE0F|\\u26D4\\uFE0F|\\u26EA\\uFE0F|\\u26F2\\uFE0F|\\u26F3\\uFE0F|\\u26F5\\uFE0F|\\u26FA\\uFE0F|\\u26FD\\uFE0F|\\u270C\\uFE0F|\\u270F\\uFE0F|\\u27A1\\uFE0F|\\u2B05\\uFE0F|\\u2B06\\uFE0F|\\u2B07\\uFE0F|\\u2B1B\\uFE0F|\\u2B1C\\uFE0F|\\u2B50\\uFE0F|\\u2B55\\uFE0F|\\u303D\\uFE0F|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\u2122\\uFE0F|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDF9E|\\uD83C\\uDF9F|\\uD83C\\uDFC5|\\uD83C\\uDFCB|\\uD83C\\uDFCC|\\uD83C\\uDFCD|\\uD83C\\uDFCE|\\uD83C\\uDF96|\\uD83C\\uDF97|\\uD83C\\uDF36|\\uD83C\\uDF27|\\uD83C\\uDF28|\\uD83C\\uDF29|\\uD83C\\uDF2A|\\uD83C\\uDF2B|\\uD83C\\uDF2C|\\uD83D\\uDC3F|\\uD83D\\uDD77|\\uD83D\\uDD78|\\uD83C\\uDF21|\\uD83C\\uDF99|\\uD83C\\uDF9A|\\uD83C\\uDF9B|\\uD83C\\uDFF3|\\uD83C\\uDFF4|\\uD83C\\uDFF5|\\uD83C\\uDFF7|\\uD83D\\uDCF8|\\uD83D\\uDCFD|\\uD83D\\uDD49|\\uD83D\\uDD4A|\\uD83D\\uDD6F|\\uD83D\\uDD70|\\uD83D\\uDD73|\\uD83D\\uDD76|\\uD83D\\uDD79|\\uD83D\\uDD87|\\uD83D\\uDD8A|\\uD83D\\uDD8B|\\uD83D\\uDD8C|\\uD83D\\uDD8D|\\uD83D\\uDDA5|\\uD83D\\uDDA8|\\uD83D\\uDDB2|\\uD83D\\uDDBC|\\uD83D\\uDDC2|\\uD83D\\uDDC3|\\uD83D\\uDDC4|\\uD83D\\uDDD1|\\uD83D\\uDDD2|\\uD83D\\uDDD3|\\uD83D\\uDDDC|\\uD83D\\uDDDD|\\uD83D\\uDDDE|\\uD83D\\uDDE1|\\uD83D\\uDDE3|\\uD83D\\uDDEF|\\uD83D\\uDDF3|\\uD83D\\uDDFA|\\uD83D\\uDECC|\\uD83D\\uDEE0|\\uD83D\\uDEE1|\\uD83D\\uDEE2|\\uD83D\\uDEF0|\\uD83C\\uDF7D|\\uD83D\\uDC41|\\uD83D\\uDD74|\\uD83D\\uDD75|\\uD83D\\uDD90|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83C\\uDFD4|\\uD83C\\uDFD5|\\uD83C\\uDFD6|\\uD83C\\uDFD7|\\uD83C\\uDFD8|\\uD83C\\uDFD9|\\uD83C\\uDFDA|\\uD83C\\uDFDB|\\uD83C\\uDFDC|\\uD83C\\uDFDD|\\uD83C\\uDFDE|\\uD83C\\uDFDF|\\uD83D\\uDECB|\\uD83D\\uDECD|\\uD83D\\uDECE|\\uD83D\\uDECF|\\uD83D\\uDEE3|\\uD83D\\uDEE4|\\uD83D\\uDEE5|\\uD83D\\uDEE9|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83D\\uDEF3|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83C\\uDF24|\\uD83C\\uDF25|\\uD83C\\uDF26|\\uD83D\\uDDB1|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\uD83E\\uDD12|\\u270A|\\u3030|\\u2796|\\u2795|\\u2763|\\u2755|\\u2754|\\u2753|\\u2728|\\u2721|\\u2705|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u2328|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2797|\\u270B|\\u274C|\\u274E|\\u27B0|\\u27BF|\\u271D|\\u270D|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u262A|\\u262E|\\u262F|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9)",
-ns.jsEscapeMap={"⁉️":"2049","™️":"2122","ℹ️":"2139","↔️":"2194","↕️":"2195","↖️":"2196","↗️":"2197","↘️":"2198","↙️":"2199","⌨":"2328","☀️":"2600","☁️":"2601","☂":"2602","☃":"2603","☄":"2604","☑️":"2611","☔️":"2614","☕️":"2615","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☸":"2638","☹":"2639","♈️":"2648","♉️":"2649","♐️":"2650","♑️":"2651","♒️":"2652","♓️":"2653","♠️":"2660","♣️":"2663","♥️":"2665","♦️":"2666","♨️":"2668","⚒":"2692","⚓️":"2693","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","✂️":"2702","✅":"2705","✈️":"2708","✉️":"2709","✒️":"2712","✔️":"2714","✖️":"2716","✡":"2721","✨":"2728","✳️":"2733","✴️":"2734","❄️":"2744","❇️":"2747","❓":"2753","❔":"2754","❕":"2755","❗️":"2757","❣":"2763","❤️":"2764","➕":"2795","➖":"2796","➗":"2797","⤴️":"2934","⤵️":"2935","〰":"3030","㊗️":"3297","㊙️":"3299","👩‍❤️‍💋‍👩":"1f469-2764-1f48b-1f469","👨‍❤️‍💋‍👨":"1f468-2764-1f48b-1f468","👨‍👨‍👦‍👦":"1f468-1f468-1f466-1f466","👨‍👨‍👧‍👦":"1f468-1f468-1f467-1f466","👨‍👨‍👧‍👧":"1f468-1f468-1f467-1f467","👨‍👩‍👦‍👦":"1f468-1f469-1f466-1f466","👨‍👩‍👧‍👦":"1f468-1f469-1f467-1f466","👨‍👩‍👧‍👧":"1f468-1f469-1f467-1f467","👩‍👩‍👦‍👦":"1f469-1f469-1f466-1f466","👩‍👩‍👧‍👦":"1f469-1f469-1f467-1f466","👩‍👩‍👧‍👧":"1f469-1f469-1f467-1f467","👩‍❤️‍👩":"1f469-2764-1f469","👨‍❤️‍👨":"1f468-2764-1f468","👨‍👨‍👦":"1f468-1f468-1f466","👨‍👨‍👧":"1f468-1f468-1f467","👨‍👩‍👧":"1f468-1f469-1f467","👩‍👩‍👦":"1f469-1f469-1f466","👩‍👩‍👧":"1f469-1f469-1f467","👁‍🗨":"1f441-1f5e8","#️⃣":"0023-20e3","0️⃣":"0030-20e3","1️⃣":"0031-20e3","2️⃣":"0032-20e3","3️⃣":"0033-20e3","4️⃣":"0034-20e3","5️⃣":"0035-20e3","6️⃣":"0036-20e3","7️⃣":"0037-20e3","8️⃣":"0038-20e3","9️⃣":"0039-20e3","*️⃣":"002a-20e3","🤘🏿":"1f918-1f3ff","🤘🏾":"1f918-1f3fe","🤘🏽":"1f918-1f3fd","🤘🏼":"1f918-1f3fc","🤘🏻":"1f918-1f3fb","🛀🏿":"1f6c0-1f3ff","🛀🏾":"1f6c0-1f3fe","🛀🏽":"1f6c0-1f3fd","🛀🏼":"1f6c0-1f3fc","🛀🏻":"1f6c0-1f3fb","🚶🏿":"1f6b6-1f3ff","🚶🏾":"1f6b6-1f3fe","🚶🏽":"1f6b6-1f3fd","🚶🏼":"1f6b6-1f3fc","🚶🏻":"1f6b6-1f3fb","🚵🏿":"1f6b5-1f3ff","🚵🏾":"1f6b5-1f3fe","🚵🏽":"1f6b5-1f3fd","🚵🏼":"1f6b5-1f3fc","🚵🏻":"1f6b5-1f3fb","🚴🏿":"1f6b4-1f3ff","🚴🏾":"1f6b4-1f3fe","🚴🏽":"1f6b4-1f3fd","🚴🏼":"1f6b4-1f3fc","🚴🏻":"1f6b4-1f3fb","🚣🏿":"1f6a3-1f3ff","🚣🏾":"1f6a3-1f3fe","🚣🏽":"1f6a3-1f3fd","🚣🏼":"1f6a3-1f3fc","🚣🏻":"1f6a3-1f3fb","🙏🏿":"1f64f-1f3ff","🙏🏾":"1f64f-1f3fe","🙏🏽":"1f64f-1f3fd","🙏🏼":"1f64f-1f3fc","🙏🏻":"1f64f-1f3fb","🙎🏿":"1f64e-1f3ff","🙎🏾":"1f64e-1f3fe","🙎🏽":"1f64e-1f3fd","🙎🏼":"1f64e-1f3fc","🙎🏻":"1f64e-1f3fb","🙍🏿":"1f64d-1f3ff","🙍🏾":"1f64d-1f3fe","🙍🏽":"1f64d-1f3fd","🙍🏼":"1f64d-1f3fc","🙍🏻":"1f64d-1f3fb","🙌🏿":"1f64c-1f3ff","🙌🏾":"1f64c-1f3fe","🙌🏽":"1f64c-1f3fd","🙌🏼":"1f64c-1f3fc","🙌🏻":"1f64c-1f3fb","🙋🏿":"1f64b-1f3ff","🙋🏾":"1f64b-1f3fe","🙋🏽":"1f64b-1f3fd","🙋🏼":"1f64b-1f3fc","🙋🏻":"1f64b-1f3fb","🙇🏿":"1f647-1f3ff","🙇🏾":"1f647-1f3fe","🙇🏽":"1f647-1f3fd","🙇🏼":"1f647-1f3fc","🙇🏻":"1f647-1f3fb","🙆🏿":"1f646-1f3ff","🙆🏾":"1f646-1f3fe","🙆🏽":"1f646-1f3fd","🙆🏼":"1f646-1f3fc","🙆🏻":"1f646-1f3fb","🙅🏿":"1f645-1f3ff","🙅🏾":"1f645-1f3fe","🙅🏽":"1f645-1f3fd","🙅🏼":"1f645-1f3fc","🙅🏻":"1f645-1f3fb","🖖🏿":"1f596-1f3ff","🖖🏾":"1f596-1f3fe","🖖🏽":"1f596-1f3fd","🖖🏼":"1f596-1f3fc","🖖🏻":"1f596-1f3fb","🖕🏿":"1f595-1f3ff","🖕🏾":"1f595-1f3fe","🖕🏽":"1f595-1f3fd","🖕🏼":"1f595-1f3fc","🖕🏻":"1f595-1f3fb","🖐🏿":"1f590-1f3ff","🖐🏾":"1f590-1f3fe","🖐🏽":"1f590-1f3fd","🖐🏼":"1f590-1f3fc","🖐🏻":"1f590-1f3fb","🕵🏿":"1f575-1f3ff","🕵🏾":"1f575-1f3fe","🕵🏽":"1f575-1f3fd","🕵🏼":"1f575-1f3fc","🕵🏻":"1f575-1f3fb","💪🏿":"1f4aa-1f3ff","💪🏾":"1f4aa-1f3fe","💪🏽":"1f4aa-1f3fd","💪🏼":"1f4aa-1f3fc","💪🏻":"1f4aa-1f3fb","💇🏿":"1f487-1f3ff","💇🏾":"1f487-1f3fe","💇🏽":"1f487-1f3fd","💇🏼":"1f487-1f3fc","💇🏻":"1f487-1f3fb","💆🏿":"1f486-1f3ff","💆🏾":"1f486-1f3fe","💆🏽":"1f486-1f3fd","💆🏼":"1f486-1f3fc","💆🏻":"1f486-1f3fb","💅🏿":"1f485-1f3ff","💅🏾":"1f485-1f3fe","💅🏽":"1f485-1f3fd","💅🏼":"1f485-1f3fc","💅🏻":"1f485-1f3fb","💃🏿":"1f483-1f3ff","💃🏾":"1f483-1f3fe","💃🏽":"1f483-1f3fd","💃🏼":"1f483-1f3fc","💃🏻":"1f483-1f3fb","💂🏿":"1f482-1f3ff","💂🏾":"1f482-1f3fe","💂🏽":"1f482-1f3fd","💂🏼":"1f482-1f3fc","💂🏻":"1f482-1f3fb","💁🏿":"1f481-1f3ff","💁🏾":"1f481-1f3fe","💁🏽":"1f481-1f3fd","💁🏼":"1f481-1f3fc","💁🏻":"1f481-1f3fb","👼🏿":"1f47c-1f3ff","👼🏾":"1f47c-1f3fe","👼🏽":"1f47c-1f3fd","👼🏼":"1f47c-1f3fc","👼🏻":"1f47c-1f3fb","👸🏿":"1f478-1f3ff","👸🏾":"1f478-1f3fe","👸🏽":"1f478-1f3fd","👸🏼":"1f478-1f3fc","👸🏻":"1f478-1f3fb","👷🏿":"1f477-1f3ff","👷🏾":"1f477-1f3fe","👷🏽":"1f477-1f3fd","👷🏼":"1f477-1f3fc","👷🏻":"1f477-1f3fb","👶🏿":"1f476-1f3ff","👶🏾":"1f476-1f3fe","👶🏽":"1f476-1f3fd","👶🏼":"1f476-1f3fc","👶🏻":"1f476-1f3fb","👵🏿":"1f475-1f3ff","👵🏾":"1f475-1f3fe","👵🏽":"1f475-1f3fd","👵🏼":"1f475-1f3fc","👵🏻":"1f475-1f3fb","👴🏿":"1f474-1f3ff","👴🏾":"1f474-1f3fe","👴🏽":"1f474-1f3fd","👴🏼":"1f474-1f3fc","👴🏻":"1f474-1f3fb","👳🏿":"1f473-1f3ff","👳🏾":"1f473-1f3fe","👳🏽":"1f473-1f3fd","👳🏼":"1f473-1f3fc","👳🏻":"1f473-1f3fb","👲🏿":"1f472-1f3ff","👲🏾":"1f472-1f3fe","👲🏽":"1f472-1f3fd","👲🏼":"1f472-1f3fc","👲🏻":"1f472-1f3fb","👱🏿":"1f471-1f3ff","👱🏾":"1f471-1f3fe","👱🏽":"1f471-1f3fd","👱🏼":"1f471-1f3fc","👱🏻":"1f471-1f3fb","👰🏿":"1f470-1f3ff","👰🏾":"1f470-1f3fe","👰🏽":"1f470-1f3fd","👰🏼":"1f470-1f3fc","👰🏻":"1f470-1f3fb","👮🏿":"1f46e-1f3ff","👮🏾":"1f46e-1f3fe","👮🏽":"1f46e-1f3fd","👮🏼":"1f46e-1f3fc","👮🏻":"1f46e-1f3fb","👩🏿":"1f469-1f3ff","👩🏾":"1f469-1f3fe","👩🏽":"1f469-1f3fd","👩🏼":"1f469-1f3fc","👩🏻":"1f469-1f3fb","👨🏿":"1f468-1f3ff","👨🏾":"1f468-1f3fe","👨🏽":"1f468-1f3fd","👨🏼":"1f468-1f3fc","👨🏻":"1f468-1f3fb","👧🏿":"1f467-1f3ff","👧🏾":"1f467-1f3fe","👧🏽":"1f467-1f3fd","👧🏼":"1f467-1f3fc","👧🏻":"1f467-1f3fb","👦🏿":"1f466-1f3ff","👦🏾":"1f466-1f3fe","👦🏽":"1f466-1f3fd","👦🏼":"1f466-1f3fc","👦🏻":"1f466-1f3fb","👐🏿":"1f450-1f3ff","👐🏾":"1f450-1f3fe","👐🏽":"1f450-1f3fd","👐🏼":"1f450-1f3fc","👐🏻":"1f450-1f3fb","👏🏿":"1f44f-1f3ff","👏🏾":"1f44f-1f3fe","👏🏽":"1f44f-1f3fd","👏🏼":"1f44f-1f3fc","👏🏻":"1f44f-1f3fb","👎🏿":"1f44e-1f3ff","👎🏾":"1f44e-1f3fe","👎🏽":"1f44e-1f3fd","👎🏼":"1f44e-1f3fc","👎🏻":"1f44e-1f3fb","👍🏿":"1f44d-1f3ff","👍🏾":"1f44d-1f3fe","👍🏽":"1f44d-1f3fd","👍🏼":"1f44d-1f3fc","👍🏻":"1f44d-1f3fb","👌🏿":"1f44c-1f3ff","👌🏾":"1f44c-1f3fe","👌🏽":"1f44c-1f3fd","👌🏼":"1f44c-1f3fc","👌🏻":"1f44c-1f3fb","👋🏿":"1f44b-1f3ff","👋🏾":"1f44b-1f3fe","👋🏽":"1f44b-1f3fd","👋🏼":"1f44b-1f3fc","👋🏻":"1f44b-1f3fb","👊🏿":"1f44a-1f3ff","👊🏾":"1f44a-1f3fe","👊🏽":"1f44a-1f3fd","👊🏼":"1f44a-1f3fc","👊🏻":"1f44a-1f3fb","👉🏿":"1f449-1f3ff","👉🏾":"1f449-1f3fe","👉🏽":"1f449-1f3fd","👉🏼":"1f449-1f3fc","👉🏻":"1f449-1f3fb","👈🏿":"1f448-1f3ff","👈🏾":"1f448-1f3fe","👈🏽":"1f448-1f3fd","👈🏼":"1f448-1f3fc","👈🏻":"1f448-1f3fb","👇🏿":"1f447-1f3ff","👇🏾":"1f447-1f3fe","👇🏽":"1f447-1f3fd","👇🏼":"1f447-1f3fc","👇🏻":"1f447-1f3fb","👆🏿":"1f446-1f3ff","👆🏾":"1f446-1f3fe","👆🏽":"1f446-1f3fd","👆🏼":"1f446-1f3fc","👆🏻":"1f446-1f3fb","👃🏿":"1f443-1f3ff","👃🏾":"1f443-1f3fe","👃🏽":"1f443-1f3fd","👃🏼":"1f443-1f3fc","👃🏻":"1f443-1f3fb","👂🏿":"1f442-1f3ff","👂🏾":"1f442-1f3fe","👂🏽":"1f442-1f3fd","👂🏼":"1f442-1f3fc","👂🏻":"1f442-1f3fb","🏋🏿":"1f3cb-1f3ff","🏋🏾":"1f3cb-1f3fe","🏋🏽":"1f3cb-1f3fd","🏋🏼":"1f3cb-1f3fc","🏋🏻":"1f3cb-1f3fb","🏊🏿":"1f3ca-1f3ff","🏊🏾":"1f3ca-1f3fe","🏊🏽":"1f3ca-1f3fd","🏊🏼":"1f3ca-1f3fc","🏊🏻":"1f3ca-1f3fb","🏇🏿":"1f3c7-1f3ff","🏇🏾":"1f3c7-1f3fe","🏇🏽":"1f3c7-1f3fd","🏇🏼":"1f3c7-1f3fc","🏇🏻":"1f3c7-1f3fb","🏄🏿":"1f3c4-1f3ff","🏄🏾":"1f3c4-1f3fe","🏄🏽":"1f3c4-1f3fd","🏄🏼":"1f3c4-1f3fc","🏄🏻":"1f3c4-1f3fb","🏃🏿":"1f3c3-1f3ff","🏃🏾":"1f3c3-1f3fe","🏃🏽":"1f3c3-1f3fd","🏃🏼":"1f3c3-1f3fc","🏃🏻":"1f3c3-1f3fb","🎅🏿":"1f385-1f3ff","🎅🏾":"1f385-1f3fe","🎅🏽":"1f385-1f3fd","🎅🏼":"1f385-1f3fc","🎅🏻":"1f385-1f3fb","🇿🇼":"1f1ff-1f1fc","🇿🇲":"1f1ff-1f1f2","🇿🇦":"1f1ff-1f1e6","🇾🇹":"1f1fe-1f1f9","🇾🇪":"1f1fe-1f1ea","🇽🇰":"1f1fd-1f1f0","🇼🇸":"1f1fc-1f1f8","🇼🇫":"1f1fc-1f1eb","🇻🇺":"1f1fb-1f1fa","🇻🇳":"1f1fb-1f1f3","🇻🇮":"1f1fb-1f1ee","🇻🇬":"1f1fb-1f1ec","🇻🇪":"1f1fb-1f1ea","🇻🇨":"1f1fb-1f1e8","🇻🇦":"1f1fb-1f1e6","🇺🇿":"1f1fa-1f1ff","🇺🇾":"1f1fa-1f1fe","🇺🇸":"1f1fa-1f1f8","🇺🇲":"1f1fa-1f1f2","🇺🇬":"1f1fa-1f1ec","🇺🇦":"1f1fa-1f1e6","🇹🇿":"1f1f9-1f1ff","🇹🇼":"1f1f9-1f1fc","🇹🇻":"1f1f9-1f1fb","🇹🇹":"1f1f9-1f1f9","🇹🇷":"1f1f9-1f1f7","🇹🇴":"1f1f9-1f1f4","🇹🇳":"1f1f9-1f1f3","🇹🇲":"1f1f9-1f1f2","🇹🇱":"1f1f9-1f1f1","🇹🇰":"1f1f9-1f1f0","🇹🇯":"1f1f9-1f1ef","🇹🇭":"1f1f9-1f1ed","🇹🇬":"1f1f9-1f1ec","🇹🇫":"1f1f9-1f1eb","🇹🇩":"1f1f9-1f1e9","🇹🇨":"1f1f9-1f1e8","🇹🇦":"1f1f9-1f1e6","🇸🇿":"1f1f8-1f1ff","🇸🇾":"1f1f8-1f1fe","🇸🇽":"1f1f8-1f1fd","🇸🇻":"1f1f8-1f1fb","🇸🇹":"1f1f8-1f1f9","🇸🇸":"1f1f8-1f1f8","🇸🇷":"1f1f8-1f1f7","🇸🇴":"1f1f8-1f1f4","🇸🇳":"1f1f8-1f1f3","🇸🇲":"1f1f8-1f1f2","🇸🇱":"1f1f8-1f1f1","🇸🇰":"1f1f8-1f1f0","🇸🇯":"1f1f8-1f1ef","🇸🇮":"1f1f8-1f1ee","🇸🇭":"1f1f8-1f1ed","🇸🇬":"1f1f8-1f1ec","🇸🇪":"1f1f8-1f1ea","🇸🇩":"1f1f8-1f1e9","🇸🇨":"1f1f8-1f1e8","🇸🇧":"1f1f8-1f1e7","🇸🇦":"1f1f8-1f1e6","🇷🇼":"1f1f7-1f1fc","🇷🇺":"1f1f7-1f1fa","🇷🇸":"1f1f7-1f1f8","🇷🇴":"1f1f7-1f1f4","🇷🇪":"1f1f7-1f1ea","🇶🇦":"1f1f6-1f1e6","🇵🇾":"1f1f5-1f1fe","🇵🇼":"1f1f5-1f1fc","🇵🇹":"1f1f5-1f1f9","🇵🇸":"1f1f5-1f1f8","🇵🇷":"1f1f5-1f1f7","🇵🇳":"1f1f5-1f1f3","🇵🇲":"1f1f5-1f1f2","🇵🇱":"1f1f5-1f1f1","🇵🇰":"1f1f5-1f1f0","🇵🇭":"1f1f5-1f1ed","🇵🇬":"1f1f5-1f1ec","🇵🇫":"1f1f5-1f1eb","🇵🇪":"1f1f5-1f1ea","🇵🇦":"1f1f5-1f1e6","🇴🇲":"1f1f4-1f1f2","🇳🇿":"1f1f3-1f1ff","🇳🇺":"1f1f3-1f1fa","🇳🇷":"1f1f3-1f1f7","🇳🇵":"1f1f3-1f1f5","🇳🇴":"1f1f3-1f1f4","🇳🇱":"1f1f3-1f1f1","🇳🇮":"1f1f3-1f1ee","🇳🇬":"1f1f3-1f1ec","🇳🇫":"1f1f3-1f1eb","🇳🇪":"1f1f3-1f1ea","🇳🇨":"1f1f3-1f1e8","🇳🇦":"1f1f3-1f1e6","🇲🇿":"1f1f2-1f1ff","🇲🇾":"1f1f2-1f1fe","🇲🇽":"1f1f2-1f1fd","🇲🇼":"1f1f2-1f1fc","🇲🇻":"1f1f2-1f1fb","🇲🇺":"1f1f2-1f1fa","🇲🇹":"1f1f2-1f1f9","🇲🇸":"1f1f2-1f1f8","🇲🇷":"1f1f2-1f1f7","🇲🇶":"1f1f2-1f1f6","🇲🇵":"1f1f2-1f1f5","🇲🇴":"1f1f2-1f1f4","🇲🇳":"1f1f2-1f1f3","🇲🇲":"1f1f2-1f1f2","🇲🇱":"1f1f2-1f1f1","🇲🇰":"1f1f2-1f1f0","🇲🇭":"1f1f2-1f1ed","🇲🇬":"1f1f2-1f1ec","🇲🇫":"1f1f2-1f1eb","🇲🇪":"1f1f2-1f1ea","🇲🇩":"1f1f2-1f1e9","🇲🇨":"1f1f2-1f1e8","🇲🇦":"1f1f2-1f1e6","🇱🇾":"1f1f1-1f1fe","🇱🇻":"1f1f1-1f1fb","🇱🇺":"1f1f1-1f1fa","🇱🇹":"1f1f1-1f1f9","🇱🇸":"1f1f1-1f1f8","🇱🇷":"1f1f1-1f1f7","🇱🇰":"1f1f1-1f1f0","🇱🇮":"1f1f1-1f1ee","🇱🇨":"1f1f1-1f1e8","🇱🇧":"1f1f1-1f1e7","🇱🇦":"1f1f1-1f1e6","🇰🇿":"1f1f0-1f1ff","🇰🇾":"1f1f0-1f1fe","🇰🇼":"1f1f0-1f1fc","🇰🇷":"1f1f0-1f1f7","🇰🇵":"1f1f0-1f1f5","🇰🇳":"1f1f0-1f1f3","🇰🇲":"1f1f0-1f1f2","🇰🇮":"1f1f0-1f1ee","🇰🇭":"1f1f0-1f1ed","🇰🇬":"1f1f0-1f1ec","🇰🇪":"1f1f0-1f1ea","🇯🇵":"1f1ef-1f1f5","🇯🇴":"1f1ef-1f1f4","🇯🇲":"1f1ef-1f1f2","🇯🇪":"1f1ef-1f1ea","🇮🇹":"1f1ee-1f1f9","🇮🇸":"1f1ee-1f1f8","🇮🇷":"1f1ee-1f1f7","🇮🇶":"1f1ee-1f1f6","🇮🇴":"1f1ee-1f1f4","🇮🇳":"1f1ee-1f1f3","🇮🇲":"1f1ee-1f1f2","🇮🇱":"1f1ee-1f1f1","🇮🇪":"1f1ee-1f1ea","🇮🇩":"1f1ee-1f1e9","🇮🇨":"1f1ee-1f1e8","🇭🇺":"1f1ed-1f1fa","🇭🇹":"1f1ed-1f1f9","🇭🇷":"1f1ed-1f1f7","🇭🇳":"1f1ed-1f1f3","🇭🇲":"1f1ed-1f1f2","🇭🇰":"1f1ed-1f1f0","🇬🇾":"1f1ec-1f1fe","🇬🇼":"1f1ec-1f1fc","🇬🇺":"1f1ec-1f1fa","🇬🇹":"1f1ec-1f1f9","🇬🇸":"1f1ec-1f1f8","🇬🇷":"1f1ec-1f1f7","🇬🇶":"1f1ec-1f1f6","🇬🇵":"1f1ec-1f1f5","🇬🇳":"1f1ec-1f1f3","🇬🇲":"1f1ec-1f1f2","🇬🇱":"1f1ec-1f1f1","🇬🇮":"1f1ec-1f1ee","🇬🇭":"1f1ec-1f1ed","🇬🇬":"1f1ec-1f1ec","🇬🇫":"1f1ec-1f1eb","🇬🇪":"1f1ec-1f1ea","🇬🇩":"1f1ec-1f1e9","🇬🇧":"1f1ec-1f1e7","🇬🇦":"1f1ec-1f1e6","🇫🇷":"1f1eb-1f1f7","🇫🇴":"1f1eb-1f1f4","🇫🇲":"1f1eb-1f1f2","🇫🇰":"1f1eb-1f1f0","🇫🇯":"1f1eb-1f1ef","🇫🇮":"1f1eb-1f1ee","🇪🇺":"1f1ea-1f1fa","🇪🇹":"1f1ea-1f1f9","🇪🇸":"1f1ea-1f1f8","🇪🇷":"1f1ea-1f1f7","🇪🇭":"1f1ea-1f1ed","🇪🇬":"1f1ea-1f1ec","🇪🇪":"1f1ea-1f1ea","🇪🇨":"1f1ea-1f1e8","🇪🇦":"1f1ea-1f1e6","🇩🇿":"1f1e9-1f1ff","🇩🇴":"1f1e9-1f1f4","🇩🇲":"1f1e9-1f1f2","🇩🇰":"1f1e9-1f1f0","🇩🇯":"1f1e9-1f1ef","🇩🇬":"1f1e9-1f1ec","🇩🇪":"1f1e9-1f1ea","🇨🇿":"1f1e8-1f1ff","🇨🇾":"1f1e8-1f1fe","🇨🇽":"1f1e8-1f1fd","🇨🇼":"1f1e8-1f1fc","🇨🇻":"1f1e8-1f1fb","🇨🇺":"1f1e8-1f1fa","🇨🇷":"1f1e8-1f1f7","🇨🇵":"1f1e8-1f1f5","🇨🇴":"1f1e8-1f1f4","🇨🇳":"1f1e8-1f1f3","🇨🇲":"1f1e8-1f1f2","🇨🇱":"1f1e8-1f1f1","🇨🇰":"1f1e8-1f1f0","🇨🇮":"1f1e8-1f1ee","🇨🇭":"1f1e8-1f1ed","🇨🇬":"1f1e8-1f1ec","🇨🇫":"1f1e8-1f1eb","🇨🇩":"1f1e8-1f1e9","🇨🇨":"1f1e8-1f1e8","🇨🇦":"1f1e8-1f1e6","🇧🇿":"1f1e7-1f1ff","🇧🇾":"1f1e7-1f1fe","🇧🇼":"1f1e7-1f1fc","🇧🇻":"1f1e7-1f1fb","🇧🇹":"1f1e7-1f1f9","🇧🇸":"1f1e7-1f1f8","🇧🇷":"1f1e7-1f1f7","🇧🇶":"1f1e7-1f1f6","🇧🇴":"1f1e7-1f1f4","🇧🇳":"1f1e7-1f1f3","🇧🇲":"1f1e7-1f1f2","🇧🇱":"1f1e7-1f1f1","🇧🇯":"1f1e7-1f1ef","🇧🇮":"1f1e7-1f1ee","🇧🇭":"1f1e7-1f1ed","🇧🇬":"1f1e7-1f1ec","🇧🇫":"1f1e7-1f1eb","🇧🇪":"1f1e7-1f1ea","🇧🇩":"1f1e7-1f1e9","🇧🇧":"1f1e7-1f1e7","🇧🇦":"1f1e7-1f1e6","🇦🇿":"1f1e6-1f1ff","🇦🇽":"1f1e6-1f1fd","🇦🇼":"1f1e6-1f1fc","🇦🇺":"1f1e6-1f1fa","🇦🇹":"1f1e6-1f1f9","🇦🇸":"1f1e6-1f1f8","🇦🇷":"1f1e6-1f1f7","🇦🇶":"1f1e6-1f1f6","🇦🇴":"1f1e6-1f1f4","🇦🇲":"1f1e6-1f1f2","🇦🇱":"1f1e6-1f1f1","🇦🇮":"1f1e6-1f1ee","🇦🇬":"1f1e6-1f1ec","🇦🇫":"1f1e6-1f1eb","🇦🇪":"1f1e6-1f1ea","🇦🇩":"1f1e6-1f1e9","🇦🇨":"1f1e6-1f1e8","🀄️":"1f004","🅿️":"1f17f","🈚️":"1f21a","🈯️":"1f22f","🈷️":"1f237","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","©️":"00a9","®️":"00ae","‼️":"203c","↩️":"21a9","↪️":"21aa","⌚️":"231a","⌛️":"231b","Ⓜ️":"24c2","▪️":"25aa","▫️":"25ab","▶️":"25b6","◀️":"25c0","◻️":"25fb","◼️":"25fc","◽️":"25fd","◾️":"25fe","☎️":"260e","☝️":"261d","☺️":"263a","♊️":"264a","♋️":"264b","♌️":"264c","♍️":"264d","♎️":"264e","♏️":"264f","♻️":"267b","♿️":"267f","⚠️":"26a0","⚡️":"26a1","⚪️":"26aa","⚫️":"26ab","⚽️":"26bd","⚾️":"26be","⛄️":"26c4","⛅️":"26c5","⛔️":"26d4","⛪️":"26ea","⛲️":"26f2","⛳️":"26f3","⛵️":"26f5","⛺️":"26fa","⛽️":"26fd","✌️":"270c","✏️":"270f","➡️":"27a1","⬅️":"2b05","⬆️":"2b06","⬇️":"2b07","⬛️":"2b1b","⬜️":"2b1c","⭐️":"2b50","⭕️":"2b55","〽️":"303d","🃏":"1f0cf","🅰":"1f170","🅱":"1f171","🅾":"1f17e","🆎":"1f18e","🆑":"1f191","🆒":"1f192","🆓":"1f193","🆔":"1f194","🆕":"1f195","🆖":"1f196","🆗":"1f197","🆘":"1f198","🆙":"1f199","🆚":"1f19a","🈁":"1f201","🈂":"1f202","🈲":"1f232","🈳":"1f233","🈴":"1f234","🈵":"1f235","🈶":"1f236","🈸":"1f238","🈹":"1f239","🈺":"1f23a","🉐":"1f250","🉑":"1f251","🌀":"1f300","🌁":"1f301","🌂":"1f302","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🌇":"1f307","🌈":"1f308","🌉":"1f309","🌊":"1f30a","🌋":"1f30b","🌌":"1f30c","🌏":"1f30f","🌑":"1f311","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌙":"1f319","🌛":"1f31b","🌟":"1f31f","🌠":"1f320","🌰":"1f330","🌱":"1f331","🌴":"1f334","🌵":"1f335","🌷":"1f337","🌸":"1f338","🌹":"1f339","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌽":"1f33d","🌾":"1f33e","🌿":"1f33f","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍄":"1f344","🍅":"1f345","🍆":"1f346","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍑":"1f351","🍒":"1f352","🍓":"1f353","🍔":"1f354","🍕":"1f355","🍖":"1f356","🍗":"1f357","🍘":"1f358","🍙":"1f359","🍚":"1f35a","🍛":"1f35b","🍜":"1f35c","🍝":"1f35d","🍞":"1f35e","🍟":"1f35f","🍠":"1f360","🍡":"1f361","🍢":"1f362","🍣":"1f363","🍤":"1f364","🍥":"1f365","🍦":"1f366","🍧":"1f367","🍨":"1f368","🍩":"1f369","🍪":"1f36a","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🍰":"1f370","🍱":"1f371","🍲":"1f372","🍳":"1f373","🍴":"1f374","🍵":"1f375","🍶":"1f376","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🎀":"1f380","🎁":"1f381","🎂":"1f382","🎃":"1f383","🎄":"1f384","🎅":"1f385","🎆":"1f386","🎇":"1f387","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎌":"1f38c","🎍":"1f38d","🎎":"1f38e","🎏":"1f38f","🎐":"1f390","🎑":"1f391","🎒":"1f392","🎓":"1f393","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","🎣":"1f3a3","🎤":"1f3a4","🎥":"1f3a5","🎦":"1f3a6","🎧":"1f3a7","🎨":"1f3a8","🎩":"1f3a9","🎪":"1f3aa","🎫":"1f3ab","🎬":"1f3ac","🎭":"1f3ad","🎮":"1f3ae","🎯":"1f3af","🎰":"1f3b0","🎱":"1f3b1","🎲":"1f3b2","🎳":"1f3b3","🎴":"1f3b4","🎵":"1f3b5","🎶":"1f3b6","🎷":"1f3b7","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🎻":"1f3bb","🎼":"1f3bc","🎽":"1f3bd","🎾":"1f3be","🎿":"1f3bf","🏀":"1f3c0","🏁":"1f3c1","🏂":"1f3c2","🏃":"1f3c3","🏄":"1f3c4","🏆":"1f3c6","🏈":"1f3c8","🏊":"1f3ca","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏥":"1f3e5","🏦":"1f3e6","🏧":"1f3e7","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🏭":"1f3ed","🏮":"1f3ee","🏯":"1f3ef","🏰":"1f3f0","🐌":"1f40c","🐍":"1f40d","🐎":"1f40e","🐑":"1f411","🐒":"1f412","🐔":"1f414","🐗":"1f417","🐘":"1f418","🐙":"1f419","🐚":"1f41a","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🐢":"1f422","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🐨":"1f428","🐩":"1f429","🐫":"1f42b","🐬":"1f42c","🐭":"1f42d","🐮":"1f42e","🐯":"1f42f","🐰":"1f430","🐱":"1f431","🐲":"1f432","🐳":"1f433","🐴":"1f434","🐵":"1f435","🐶":"1f436","🐷":"1f437","🐸":"1f438","🐹":"1f439","🐺":"1f43a","🐻":"1f43b","🐼":"1f43c","🐽":"1f43d","🐾":"1f43e","👀":"1f440","👂":"1f442","👃":"1f443","👄":"1f444","👅":"1f445","👆":"1f446","👇":"1f447","👈":"1f448","👉":"1f449","👊":"1f44a","👋":"1f44b","👌":"1f44c","👍":"1f44d","👎":"1f44e","👏":"1f44f","👐":"1f450","👑":"1f451","👒":"1f452","👓":"1f453","👔":"1f454","👕":"1f455","👖":"1f456","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👣":"1f463","👤":"1f464","👦":"1f466","👧":"1f467","👨":"1f468","👩":"1f469","👪":"1f46a","👫":"1f46b","👮":"1f46e","👯":"1f46f","👰":"1f470","👱":"1f471","👲":"1f472","👳":"1f473","👴":"1f474","👵":"1f475","👶":"1f476","👷":"1f477","👸":"1f478","👹":"1f479","👺":"1f47a","👻":"1f47b","👼":"1f47c","👽":"1f47d","👾":"1f47e","👿":"1f47f","💀":"1f480","📇":"1f4c7","💁":"1f481","💂":"1f482","💃":"1f483","💄":"1f484","💅":"1f485","📒":"1f4d2","💆":"1f486","📓":"1f4d3","💇":"1f487","📔":"1f4d4","💈":"1f488","📕":"1f4d5","💉":"1f489","📖":"1f4d6","💊":"1f48a","📗":"1f4d7","💋":"1f48b","📘":"1f4d8","💌":"1f48c","📙":"1f4d9","💍":"1f48d","📚":"1f4da","💎":"1f48e","📛":"1f4db","💏":"1f48f","📜":"1f4dc","💐":"1f490","📝":"1f4dd","💑":"1f491","📞":"1f4de","💒":"1f492","📟":"1f4df","📠":"1f4e0","💓":"1f493","📡":"1f4e1","📢":"1f4e2","💔":"1f494","📣":"1f4e3","📤":"1f4e4","💕":"1f495","📥":"1f4e5","📦":"1f4e6","💖":"1f496","📧":"1f4e7","📨":"1f4e8","💗":"1f497","📩":"1f4e9","📪":"1f4ea","💘":"1f498","📫":"1f4eb","📮":"1f4ee","💙":"1f499","📰":"1f4f0","📱":"1f4f1","💚":"1f49a","📲":"1f4f2","📳":"1f4f3","💛":"1f49b","📴":"1f4f4","📶":"1f4f6","💜":"1f49c","📷":"1f4f7","📹":"1f4f9","💝":"1f49d","📺":"1f4fa","📻":"1f4fb","💞":"1f49e","📼":"1f4fc","🔃":"1f503","💟":"1f49f","🔊":"1f50a","🔋":"1f50b","💠":"1f4a0","🔌":"1f50c","🔍":"1f50d","💡":"1f4a1","🔎":"1f50e","🔏":"1f50f","💢":"1f4a2","🔐":"1f510","🔑":"1f511","💣":"1f4a3","🔒":"1f512","🔓":"1f513","💤":"1f4a4","🔔":"1f514","🔖":"1f516","💥":"1f4a5","🔗":"1f517","🔘":"1f518","💦":"1f4a6","🔙":"1f519","🔚":"1f51a","💧":"1f4a7","🔛":"1f51b","🔜":"1f51c","💨":"1f4a8","🔝":"1f51d","🔞":"1f51e","💩":"1f4a9","🔟":"1f51f","💪":"1f4aa","🔠":"1f520","🔡":"1f521","💫":"1f4ab","🔢":"1f522","🔣":"1f523","💬":"1f4ac","🔤":"1f524","🔥":"1f525","💮":"1f4ae","🔦":"1f526","🔧":"1f527","💯":"1f4af","🔨":"1f528","🔩":"1f529","💰":"1f4b0","🔪":"1f52a","🔫":"1f52b","💱":"1f4b1","🔮":"1f52e","💲":"1f4b2","🔯":"1f52f","💳":"1f4b3","🔰":"1f530","🔱":"1f531","💴":"1f4b4","🔲":"1f532","🔳":"1f533","💵":"1f4b5","🔴":"1f534","🔵":"1f535","💸":"1f4b8","🔶":"1f536","🔷":"1f537","💹":"1f4b9","🔸":"1f538","🔹":"1f539","💺":"1f4ba","🔺":"1f53a","🔻":"1f53b","💻":"1f4bb","🔼":"1f53c","💼":"1f4bc","🔽":"1f53d","🕐":"1f550","💽":"1f4bd","🕑":"1f551","💾":"1f4be","🕒":"1f552","💿":"1f4bf","🕓":"1f553","📀":"1f4c0","🕔":"1f554","🕕":"1f555","📁":"1f4c1","🕖":"1f556","🕗":"1f557","📂":"1f4c2","🕘":"1f558","🕙":"1f559","📃":"1f4c3","🕚":"1f55a","🕛":"1f55b","📄":"1f4c4","🗻":"1f5fb","🗼":"1f5fc","📅":"1f4c5","🗽":"1f5fd","🗾":"1f5fe","📆":"1f4c6","🗿":"1f5ff","😁":"1f601","😂":"1f602","😃":"1f603","📈":"1f4c8","😄":"1f604","😅":"1f605","📉":"1f4c9","😆":"1f606","😉":"1f609","📊":"1f4ca","😊":"1f60a","😋":"1f60b","📋":"1f4cb","😌":"1f60c","😍":"1f60d","📌":"1f4cc","😏":"1f60f","😒":"1f612","📍":"1f4cd","😓":"1f613","😔":"1f614","📎":"1f4ce","😖":"1f616","😘":"1f618","📏":"1f4cf","😚":"1f61a","😜":"1f61c","📐":"1f4d0","😝":"1f61d","😞":"1f61e","📑":"1f4d1","😠":"1f620","😡":"1f621","😢":"1f622","😣":"1f623","😤":"1f624","😥":"1f625","😨":"1f628","😩":"1f629","😪":"1f62a","😫":"1f62b","😭":"1f62d","😰":"1f630","😱":"1f631","😲":"1f632","😳":"1f633","😵":"1f635","😷":"1f637","😸":"1f638","😹":"1f639","😺":"1f63a","😻":"1f63b","😼":"1f63c","😽":"1f63d","😾":"1f63e","😿":"1f63f","🙀":"1f640","🙅":"1f645","🙆":"1f646","🙇":"1f647","🙈":"1f648","🙉":"1f649","🙊":"1f64a","🙋":"1f64b","🙌":"1f64c","🙍":"1f64d","🙎":"1f64e","🙏":"1f64f","🚀":"1f680","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚇":"1f687","🚉":"1f689","🚌":"1f68c","🚏":"1f68f","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚕":"1f695","🚗":"1f697","🚙":"1f699","🚚":"1f69a","🚢":"1f6a2","🚤":"1f6a4","🚥":"1f6a5","🚧":"1f6a7","🚨":"1f6a8","🚩":"1f6a9","🚪":"1f6aa","🚫":"1f6ab","🚬":"1f6ac","🚭":"1f6ad","🚲":"1f6b2","🚶":"1f6b6","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚽":"1f6bd","🚾":"1f6be","🛀":"1f6c0","🤘":"1f918","😀":"1f600","😇":"1f607","😈":"1f608","😎":"1f60e","😐":"1f610","😑":"1f611","😕":"1f615","😗":"1f617","😙":"1f619","😛":"1f61b","😟":"1f61f","😦":"1f626","😧":"1f627","😬":"1f62c","😮":"1f62e","😯":"1f62f","😴":"1f634","😶":"1f636","🚁":"1f681","🚂":"1f682","🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🎞":"1f39e","🎟":"1f39f","🏅":"1f3c5","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏴":"1f3f4","🏵":"1f3f5","🏷":"1f3f7","📸":"1f4f8","📽":"1f4fd","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛌":"1f6cc","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","🖐":"1f590","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛫":"1f6eb","🛬":"1f6ec","🛳":"1f6f3","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✊":"270a","✋":"270b","❌":"274c","❎":"274e","➰":"27b0","➿":"27bf","✝":"271d","✍":"270d","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☪":"262a","☮":"262e","☯":"262f","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9"},ns.imagePathPNG="//cdn.jsdelivr.net/emojione/assets/png/",ns.imagePathSVG="//cdn.jsdelivr.net/emojione/assets/svg/",ns.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",ns.imageType="png",ns.sprites=!1,ns.unicodeAlt=!0,ns.ascii=!1,ns.cacheBustParam="?v=2.0.1",ns.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")","gi"),ns.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),ns.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")","gi"),ns.toImage=function(str){return str=ns.unicodeToImage(str),str=ns.shortnameToImage(str)},ns.unifyUnicode=function(str){return str=ns.toShort(str),str=ns.shortnameToUnicode(str)},ns.shortnameToAscii=function(str){var unicode,unicodeToAscii=ns.objectFlip(ns.asciiList);return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname][ns.emojioneList[shortname].length-1],"undefined"!=typeof unicodeToAscii[unicode]?unicodeToAscii[unicode]:shortname):shortname})},ns.shortnameToUnicode=function(str){var unicode;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname][0].toUpperCase(),ns.convert(unicode)):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3].toUpperCase(),m2+ns.convert(unicode)):entire})),str},ns.shortnameToImage=function(str){var replaceWith,unicode,alt;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname][ns.emojioneList[shortname].length-1],alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):shortname,replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione-'+unicode+'" title="'+shortname+'">'+alt+"</span>":'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3],alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):ns.escapeHTML(m3),replaceWith="png"===ns.imageType?ns.sprites?m2+'<span class="emojione-'+unicode+'" title="'+ns.escapeHTML(m3)+'">'+alt+"</span>":m2+'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):entire})),str},ns.unicodeToImage=function(str){var replaceWith,unicode,alt;if(!ns.unicodeAlt||ns.sprites)var mappedUnicode=ns.mapShortToUnicode();return str=str.replace(ns.regUnicode,function(unicodeChar){return"undefined"!=typeof unicodeChar&&""!==unicodeChar&&unicodeChar in ns.jsEscapeMap?(unicode=ns.jsEscapeMap[unicodeChar],alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):mappedUnicode[unicode],replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione-'+unicode+'" title="'+mappedUnicode[unicode]+'">'+alt+"</span>":'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'"/>'):unicodeChar})},ns.toShort=function(str){for(var shortcode in ns.emojioneList)if(ns.emojioneList.hasOwnProperty(shortcode))for(var i=0,len=ns.emojioneList[shortcode].length;i<len;i++){var unicode=ns.emojioneList[shortcode][i];str=ns.replaceAll(str,ns.convert(unicode.toUpperCase()),shortcode)}return str},ns.convert=function(unicode){if(unicode.indexOf("-")>-1){for(var parts=[],s=unicode.split("-"),i=0;i<s.length;i++){var part=parseInt(s[i],16);if(part>=65536&&part<=1114111){var hi=Math.floor((part-65536)/1024)+55296,lo=(part-65536)%1024+56320;part=String.fromCharCode(hi)+String.fromCharCode(lo)}else part=String.fromCharCode(part);parts.push(part)}return parts.join("")}var s=parseInt(unicode,16);if(s>=65536&&s<=1114111){var hi=Math.floor((s-65536)/1024)+55296,lo=(s-65536)%1024+56320;return String.fromCharCode(hi)+String.fromCharCode(lo)}return String.fromCharCode(s)},ns.escapeHTML=function(string){var escaped={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return string.replace(/[&<>"']/g,function(match){return escaped[match]})},ns.unescapeHTML=function(string){var unescaped={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(match){return unescaped[match]})},ns.mapShortToUnicode=function(){var new_obj={};for(var shortname in ns.emojioneList)if(ns.emojioneList.hasOwnProperty(shortname))for(var i=0,len=ns.emojioneList[shortname].length;i<len;i++)new_obj[ns.emojioneList[shortname][i]]=shortname;return new_obj;
-},ns.objectFlip=function(obj){var key,tmp_obj={};for(key in obj)obj.hasOwnProperty(key)&&(tmp_obj[obj[key]]=key);return tmp_obj},ns.escapeRegExp=function(string){return string.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g,"\\$&")},ns.replaceAll=function(string,find,replaceWith){var escapedFind=ns.escapeRegExp(find),search=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")","gi"),replace=function(entire,m1){return"undefined"==typeof m1||""===m1?entire:replaceWith};return string.replace(search,replace)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione);
+!function(){var Favico=function(opt){"use strict";function drawVideo(video){if(video.paused||video.ended||_stop)return!1;try{_context.clearRect(0,0,_w,_h),_context.drawImage(video,0,0,_w,_h)}catch(e){}_drawTimeout=setTimeout(function(){drawVideo(video)},animation.duration),link.setIcon(_canvas)}function hexToRgb(hex){var shorthandRegex=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;hex=hex.replace(shorthandRegex,function(m,r,g,b){return r+r+g+g+b+b});var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return!!result&&{r:parseInt(result[1],16),g:parseInt(result[2],16),b:parseInt(result[3],16)}}function merge(def,opt){var attrname,mergedOpt={};for(attrname in def)mergedOpt[attrname]=def[attrname];for(attrname in opt)mergedOpt[attrname]=opt[attrname];return mergedOpt}function isPageHidden(){return _doc.hidden||_doc.msHidden||_doc.webkitHidden||_doc.mozHidden}opt=opt?opt:{};var _opt,_orig,_h,_w,_canvas,_context,_img,_ready,_lastBadge,_running,_readyCb,_stop,_browser,_animTimeout,_drawTimeout,_doc,_def={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,dataUrl:!1,win:window};_browser={},_browser.ff="undefined"!=typeof InstallTrigger,_browser.chrome=!!window.chrome,_browser.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,_browser.ie=/*@cc_on!@*/!1,_browser.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,_browser.supported=_browser.chrome||_browser.ff||_browser.opera;var _queue=[];_readyCb=function(){},_ready=_stop=!1;var init=function(){_opt=merge(_def,opt),_opt.bgColor=hexToRgb(_opt.bgColor),_opt.textColor=hexToRgb(_opt.textColor),_opt.position=_opt.position.toLowerCase(),_opt.animation=animation.types[""+_opt.animation]?_opt.animation:_def.animation,_doc=_opt.win.document;var isUp=_opt.position.indexOf("up")>-1,isLeft=_opt.position.indexOf("left")>-1;if(isUp||isLeft)for(var i=0;i<animation.types[""+_opt.animation].length;i++){var step=animation.types[""+_opt.animation][i];isUp&&(step.y<.6?step.y=step.y-.4:step.y=step.y-2*step.y+(1-step.w)),isLeft&&(step.x<.6?step.x=step.x-.4:step.x=step.x-2*step.x+(1-step.h)),animation.types[""+_opt.animation][i]=step}_opt.type=type[""+_opt.type]?_opt.type:_def.type,_orig=link.getIcon(),_canvas=document.createElement("canvas"),_img=document.createElement("img"),_orig.hasAttribute("href")?(_img.setAttribute("crossOrigin","anonymous"),_img.onload=function(){_h=_img.height>0?_img.height:32,_w=_img.width>0?_img.width:32,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()},_img.setAttribute("src",_orig.getAttribute("href"))):(_img.onload=function(){_h=32,_w=32,_img.height=_h,_img.width=_w,_canvas.height=_h,_canvas.width=_w,_context=_canvas.getContext("2d"),icon.ready()},_img.setAttribute("src",""))},icon={};icon.ready=function(){_ready=!0,icon.reset(),_readyCb()},icon.reset=function(){_ready&&(_queue=[],_lastBadge=!1,_running=!1,_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),link.setIcon(_canvas),window.clearTimeout(_animTimeout),window.clearTimeout(_drawTimeout))},icon.start=function(){if(_ready&&!_running){var finished=function(){_lastBadge=_queue[0],_running=!1,_queue.length>0&&(_queue.shift(),icon.start())};if(_queue.length>0){_running=!0;var run=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(a){a in _queue[0].options&&(_opt[a]=_queue[0].options[a])}),animation.run(_queue[0].options,function(){finished()},!1)};_lastBadge?animation.run(_lastBadge.options,function(){run()},!0):run()}}};var type={},options=function(opt){return opt.n="number"==typeof opt.n?Math.abs(0|opt.n):opt.n,opt.x=_w*opt.x,opt.y=_h*opt.y,opt.w=_w*opt.w,opt.h=_h*opt.h,opt.len=(""+opt.n).length,opt};type.circle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.85:1))+"px "+_opt.fontFamily,_context.textAlign="center",more?(_context.moveTo(opt.x+opt.w/2,opt.y),_context.lineTo(opt.x+opt.w-opt.h/2,opt.y),_context.quadraticCurveTo(opt.x+opt.w,opt.y,opt.x+opt.w,opt.y+opt.h/2),_context.lineTo(opt.x+opt.w,opt.y+opt.h-opt.h/2),_context.quadraticCurveTo(opt.x+opt.w,opt.y+opt.h,opt.x+opt.w-opt.h/2,opt.y+opt.h),_context.lineTo(opt.x+opt.h/2,opt.y+opt.h),_context.quadraticCurveTo(opt.x,opt.y+opt.h,opt.x,opt.y+opt.h-opt.h/2),_context.lineTo(opt.x,opt.y+opt.h/2),_context.quadraticCurveTo(opt.x,opt.y,opt.x+opt.h/2,opt.y)):_context.arc(opt.x+opt.w/2,opt.y+opt.h/2,opt.h/2,0,2*Math.PI),_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fill(),_context.closePath(),_context.beginPath(),_context.stroke(),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()},type.rectangle=function(opt){opt=options(opt);var more=!1;2===opt.len?(opt.x=opt.x-.4*opt.w,opt.w=1.4*opt.w,more=!0):opt.len>=3&&(opt.x=opt.x-.65*opt.w,opt.w=1.65*opt.w,more=!0),_context.clearRect(0,0,_w,_h),_context.drawImage(_img,0,0,_w,_h),_context.beginPath(),_context.font=_opt.fontStyle+" "+Math.floor(opt.h*(opt.n>99?.9:1))+"px "+_opt.fontFamily,_context.textAlign="center",_context.fillStyle="rgba("+_opt.bgColor.r+","+_opt.bgColor.g+","+_opt.bgColor.b+","+opt.o+")",_context.fillRect(opt.x,opt.y,opt.w,opt.h),_context.fillStyle="rgba("+_opt.textColor.r+","+_opt.textColor.g+","+_opt.textColor.b+","+opt.o+")","number"==typeof opt.n&&opt.n>999?_context.fillText((opt.n>9999?9:Math.floor(opt.n/1e3))+"k+",Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.2*opt.h)):_context.fillText(opt.n,Math.floor(opt.x+opt.w/2),Math.floor(opt.y+opt.h-.15*opt.h)),_context.closePath()};var badge=function(number,opts){opts=("string"==typeof opts?{animation:opts}:opts)||{},_readyCb=function(){try{if("number"==typeof number?number>0:""!==number){var q={type:"badge",options:{n:number}};if("animation"in opts&&animation.types[""+opts.animation]&&(q.options.animation=""+opts.animation),"type"in opts&&type[""+opts.type]&&(q.options.type=""+opts.type),["bgColor","textColor"].forEach(function(o){o in opts&&(q.options[o]=hexToRgb(opts[o]))}),["fontStyle","fontFamily"].forEach(function(o){o in opts&&(q.options[o]=opts[o])}),_queue.push(q),_queue.length>100)throw new Error("Too many badges requests in queue.");icon.start()}else icon.reset()}catch(e){throw new Error("Error setting badge. Message: "+e.message)}},_ready&&_readyCb()},image=function(imageElement){_readyCb=function(){try{var w=imageElement.width,h=imageElement.height,newImg=document.createElement("img"),ratio=w/_w<h/_h?w/_w:h/_h;newImg.setAttribute("crossOrigin","anonymous"),newImg.onload=function(){_context.clearRect(0,0,_w,_h),_context.drawImage(newImg,0,0,_w,_h),link.setIcon(_canvas)},newImg.setAttribute("src",imageElement.getAttribute("src")),newImg.height=h/ratio,newImg.width=w/ratio}catch(e){throw new Error("Error setting image. Message: "+e.message)}},_ready&&_readyCb()},video=function(videoElement){_readyCb=function(){try{if("stop"===videoElement)return _stop=!0,icon.reset(),void(_stop=!1);videoElement.addEventListener("play",function(){drawVideo(this)},!1)}catch(e){throw new Error("Error setting video. Message: "+e.message)}},_ready&&_readyCb()},webcam=function(action){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(obj){return obj}),_browser.supported){var newVideo=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia,_readyCb=function(){try{if("stop"===action)return _stop=!0,icon.reset(),void(_stop=!1);newVideo=document.createElement("video"),newVideo.width=_w,newVideo.height=_h,navigator.getUserMedia({video:!0,audio:!1},function(stream){newVideo.src=URL.createObjectURL(stream),newVideo.play(),drawVideo(newVideo)},function(){})}catch(e){throw new Error("Error setting webcam. Message: "+e.message)}},_ready&&_readyCb()}},link={};link.getIcon=function(){var elm=!1,getLink=function(){for(var link=_doc.getElementsByTagName("head")[0].getElementsByTagName("link"),l=link.length,i=l-1;i>=0;i--)if(/(^|\s)icon(\s|$)/i.test(link[i].getAttribute("rel")))return link[i];return!1};return _opt.element?elm=_opt.element:_opt.elementId?(elm=_doc.getElementById(_opt.elementId),elm.setAttribute("href",elm.getAttribute("src"))):(elm=getLink(),elm===!1&&(elm=_doc.createElement("link"),elm.setAttribute("rel","icon"),_doc.getElementsByTagName("head")[0].appendChild(elm))),elm.setAttribute("type","image/png"),elm},link.setIcon=function(canvas){var url=canvas.toDataURL("image/png");if(_opt.dataUrl&&_opt.dataUrl(url),_opt.element)_opt.element.setAttribute("href",url),_opt.element.setAttribute("src",url);else if(_opt.elementId){var elm=_doc.getElementById(_opt.elementId);elm.setAttribute("href",url),elm.setAttribute("src",url)}else if(_browser.ff||_browser.opera){var old=_orig;_orig=_doc.createElement("link"),_browser.opera&&_orig.setAttribute("rel","icon"),_orig.setAttribute("rel","icon"),_orig.setAttribute("type","image/png"),_doc.getElementsByTagName("head")[0].appendChild(_orig),_orig.setAttribute("href",url),old.parentNode&&old.parentNode.removeChild(old)}else _orig.setAttribute("href",url)};var animation={};return animation.duration=40,animation.types={},animation.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],animation.run=function(opt,cb,revert,step){var animationType=animation.types[isPageHidden()?"none":_opt.animation];return step=revert===!0?"undefined"!=typeof step?step:animationType.length-1:"undefined"!=typeof step?step:0,cb=cb?cb:function(){},step<animationType.length&&step>=0?(type[_opt.type](merge(opt,animationType[step])),_animTimeout=setTimeout(function(){revert?step-=1:step+=1,animation.run(opt,cb,revert,step)},animation.duration),link.setIcon(_canvas),void 0):void cb()},init(),{badge:badge,video:video,image:image,webcam:webcam,reset:icon.reset,browser:{supported:_browser.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return Favico}):"undefined"!=typeof module&&module.exports?module.exports=Favico:this.Favico=Favico}(),function(ns){ns.emojioneList={":kiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!0},":couplekiss_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","1f469-2764-1f48b-1f469"],fname:"1f469-2764-1f48b-1f469",uc:"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469",isCanonical:!1},":kiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!0},":couplekiss_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","1f468-2764-1f48b-1f468"],fname:"1f468-2764-1f48b-1f468",uc:"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468",isCanonical:!1},":family_mmbb:":{unicode:["1f468-200d-1f468-200d-1f466-200d-1f466","1f468-1f468-1f466-1f466"],fname:"1f468-1f468-1f466-1f466",uc:"1f468-200d-1f468-200d-1f466-200d-1f466",isCanonical:!0},":family_mmgb:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f466","1f468-1f468-1f467-1f466"],fname:"1f468-1f468-1f467-1f466",uc:"1f468-200d-1f468-200d-1f467-200d-1f466",isCanonical:!0},":family_mmgg:":{unicode:["1f468-200d-1f468-200d-1f467-200d-1f467","1f468-1f468-1f467-1f467"],fname:"1f468-1f468-1f467-1f467",uc:"1f468-200d-1f468-200d-1f467-200d-1f467",isCanonical:!0},":family_mwbb:":{unicode:["1f468-200d-1f469-200d-1f466-200d-1f466","1f468-1f469-1f466-1f466"],fname:"1f468-1f469-1f466-1f466",uc:"1f468-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_mwgb:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f466","1f468-1f469-1f467-1f466"],fname:"1f468-1f469-1f467-1f466",uc:"1f468-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_mwgg:":{unicode:["1f468-200d-1f469-200d-1f467-200d-1f467","1f468-1f469-1f467-1f467"],fname:"1f468-1f469-1f467-1f467",uc:"1f468-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":family_wwbb:":{unicode:["1f469-200d-1f469-200d-1f466-200d-1f466","1f469-1f469-1f466-1f466"],fname:"1f469-1f469-1f466-1f466",uc:"1f469-200d-1f469-200d-1f466-200d-1f466",isCanonical:!0},":family_wwgb:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f466","1f469-1f469-1f467-1f466"],fname:"1f469-1f469-1f467-1f466",uc:"1f469-200d-1f469-200d-1f467-200d-1f466",isCanonical:!0},":family_wwgg:":{unicode:["1f469-200d-1f469-200d-1f467-200d-1f467","1f469-1f469-1f467-1f467"],fname:"1f469-1f469-1f467-1f467",uc:"1f469-200d-1f469-200d-1f467-200d-1f467",isCanonical:!0},":couple_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!0},":couple_with_heart_ww:":{unicode:["1f469-200d-2764-fe0f-200d-1f469","1f469-2764-1f469"],fname:"1f469-2764-1f469",uc:"1f469-200d-2764-fe0f-200d-1f469",isCanonical:!1},":couple_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!0},":couple_with_heart_mm:":{unicode:["1f468-200d-2764-fe0f-200d-1f468","1f468-2764-1f468"],fname:"1f468-2764-1f468",uc:"1f468-200d-2764-fe0f-200d-1f468",isCanonical:!1},":family_mmb:":{unicode:["1f468-200d-1f468-200d-1f466","1f468-1f468-1f466"],fname:"1f468-1f468-1f466",uc:"1f468-200d-1f468-200d-1f466",isCanonical:!0},":family_mmg:":{unicode:["1f468-200d-1f468-200d-1f467","1f468-1f468-1f467"],fname:"1f468-1f468-1f467",uc:"1f468-200d-1f468-200d-1f467",isCanonical:!0},":family_mwg:":{unicode:["1f468-200d-1f469-200d-1f467","1f468-1f469-1f467"],fname:"1f468-1f469-1f467",uc:"1f468-200d-1f469-200d-1f467",isCanonical:!0},":family_wwb:":{unicode:["1f469-200d-1f469-200d-1f466","1f469-1f469-1f466"],fname:"1f469-1f469-1f466",uc:"1f469-200d-1f469-200d-1f466",isCanonical:!0},":family_wwg:":{unicode:["1f469-200d-1f469-200d-1f467","1f469-1f469-1f467"],fname:"1f469-1f469-1f467",uc:"1f469-200d-1f469-200d-1f467",isCanonical:!0},":rainbow_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!0},":gay_pride_flag:":{unicode:["1f3f3-fe0f-200d-1f308","1f3f3-1f308"],fname:"1f3f3-1f308",uc:"1f3f3-fe0f-200d-1f308",isCanonical:!1},":eye_in_speech_bubble:":{unicode:["1f441-200d-1f5e8","1f441-1f5e8"],fname:"1f441-1f5e8",uc:"1f441-200d-1f5e8",isCanonical:!0},":hash:":{unicode:["0023-fe0f-20e3","0023-20e3"],fname:"0023-20e3",uc:"0023-20e3",isCanonical:!0},":zero:":{unicode:["0030-fe0f-20e3","0030-20e3"],fname:"0030-20e3",uc:"0030-20e3",isCanonical:!0},":one:":{unicode:["0031-fe0f-20e3","0031-20e3"],fname:"0031-20e3",uc:"0031-20e3",isCanonical:!0},":two:":{unicode:["0032-fe0f-20e3","0032-20e3"],fname:"0032-20e3",uc:"0032-20e3",isCanonical:!0},":three:":{unicode:["0033-fe0f-20e3","0033-20e3"],fname:"0033-20e3",uc:"0033-20e3",isCanonical:!0},":four:":{unicode:["0034-fe0f-20e3","0034-20e3"],fname:"0034-20e3",uc:"0034-20e3",isCanonical:!0},":five:":{unicode:["0035-fe0f-20e3","0035-20e3"],fname:"0035-20e3",uc:"0035-20e3",isCanonical:!0},":six:":{unicode:["0036-fe0f-20e3","0036-20e3"],fname:"0036-20e3",uc:"0036-20e3",isCanonical:!0},":seven:":{unicode:["0037-fe0f-20e3","0037-20e3"],fname:"0037-20e3",uc:"0037-20e3",isCanonical:!0},":eight:":{unicode:["0038-fe0f-20e3","0038-20e3"],fname:"0038-20e3",uc:"0038-20e3",isCanonical:!0},":nine:":{unicode:["0039-fe0f-20e3","0039-20e3"],fname:"0039-20e3",uc:"0039-20e3",isCanonical:!0},":asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!0},":keycap_asterisk:":{unicode:["002a-fe0f-20e3","002a-20e3"],fname:"002a-20e3",uc:"002a-20e3",isCanonical:!1},":handball_tone5:":{unicode:["1f93e-1f3ff"],fname:"1f93e-1f3ff",uc:"1f93e-1f3ff",isCanonical:!0},":handball_tone4:":{unicode:["1f93e-1f3fe"],fname:"1f93e-1f3fe",uc:"1f93e-1f3fe",isCanonical:!0},":handball_tone3:":{unicode:["1f93e-1f3fd"],fname:"1f93e-1f3fd",uc:"1f93e-1f3fd",isCanonical:!0},":handball_tone2:":{unicode:["1f93e-1f3fc"],fname:"1f93e-1f3fc",uc:"1f93e-1f3fc",isCanonical:!0},":handball_tone1:":{unicode:["1f93e-1f3fb"],fname:"1f93e-1f3fb",uc:"1f93e-1f3fb",isCanonical:!0},":water_polo_tone5:":{unicode:["1f93d-1f3ff"],fname:"1f93d-1f3ff",uc:"1f93d-1f3ff",isCanonical:!0},":water_polo_tone4:":{unicode:["1f93d-1f3fe"],fname:"1f93d-1f3fe",uc:"1f93d-1f3fe",isCanonical:!0},":water_polo_tone3:":{unicode:["1f93d-1f3fd"],fname:"1f93d-1f3fd",uc:"1f93d-1f3fd",isCanonical:!0},":water_polo_tone2:":{unicode:["1f93d-1f3fc"],fname:"1f93d-1f3fc",uc:"1f93d-1f3fc",isCanonical:!0},":water_polo_tone1:":{unicode:["1f93d-1f3fb"],fname:"1f93d-1f3fb",uc:"1f93d-1f3fb",isCanonical:!0},":wrestlers_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!0},":wrestling_tone5:":{unicode:["1f93c-1f3ff"],fname:"1f93c-1f3ff",uc:"1f93c-1f3ff",isCanonical:!1},":wrestlers_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!0},":wrestling_tone4:":{unicode:["1f93c-1f3fe"],fname:"1f93c-1f3fe",uc:"1f93c-1f3fe",isCanonical:!1},":wrestlers_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!0},":wrestling_tone3:":{unicode:["1f93c-1f3fd"],fname:"1f93c-1f3fd",uc:"1f93c-1f3fd",isCanonical:!1},":wrestlers_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!0},":wrestling_tone2:":{unicode:["1f93c-1f3fc"],fname:"1f93c-1f3fc",uc:"1f93c-1f3fc",isCanonical:!1},":wrestlers_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!0},":wrestling_tone1:":{unicode:["1f93c-1f3fb"],fname:"1f93c-1f3fb",uc:"1f93c-1f3fb",isCanonical:!1},":juggling_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!0},":juggler_tone5:":{unicode:["1f939-1f3ff"],fname:"1f939-1f3ff",uc:"1f939-1f3ff",isCanonical:!1},":juggling_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!0},":juggler_tone4:":{unicode:["1f939-1f3fe"],fname:"1f939-1f3fe",uc:"1f939-1f3fe",isCanonical:!1},":juggling_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!0},":juggler_tone3:":{unicode:["1f939-1f3fd"],fname:"1f939-1f3fd",uc:"1f939-1f3fd",isCanonical:!1},":juggling_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!0},":juggler_tone2:":{unicode:["1f939-1f3fc"],fname:"1f939-1f3fc",uc:"1f939-1f3fc",isCanonical:!1},":juggling_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!0},":juggler_tone1:":{unicode:["1f939-1f3fb"],fname:"1f939-1f3fb",uc:"1f939-1f3fb",isCanonical:!1},":cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!0},":person_doing_cartwheel_tone5:":{unicode:["1f938-1f3ff"],fname:"1f938-1f3ff",uc:"1f938-1f3ff",isCanonical:!1},":cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!0},":person_doing_cartwheel_tone4:":{unicode:["1f938-1f3fe"],fname:"1f938-1f3fe",uc:"1f938-1f3fe",isCanonical:!1},":cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!0},":person_doing_cartwheel_tone3:":{unicode:["1f938-1f3fd"],fname:"1f938-1f3fd",uc:"1f938-1f3fd",isCanonical:!1},":cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!0},":person_doing_cartwheel_tone2:":{unicode:["1f938-1f3fc"],fname:"1f938-1f3fc",uc:"1f938-1f3fc",isCanonical:!1},":cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!0},":person_doing_cartwheel_tone1:":{unicode:["1f938-1f3fb"],fname:"1f938-1f3fb",uc:"1f938-1f3fb",isCanonical:!1},":shrug_tone5:":{unicode:["1f937-1f3ff"],fname:"1f937-1f3ff",uc:"1f937-1f3ff",isCanonical:!0},":shrug_tone4:":{unicode:["1f937-1f3fe"],fname:"1f937-1f3fe",uc:"1f937-1f3fe",isCanonical:!0},":shrug_tone3:":{unicode:["1f937-1f3fd"],fname:"1f937-1f3fd",uc:"1f937-1f3fd",isCanonical:!0},":shrug_tone2:":{unicode:["1f937-1f3fc"],fname:"1f937-1f3fc",uc:"1f937-1f3fc",isCanonical:!0},":shrug_tone1:":{unicode:["1f937-1f3fb"],fname:"1f937-1f3fb",uc:"1f937-1f3fb",isCanonical:!0},":mrs_claus_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!0},":mother_christmas_tone5:":{unicode:["1f936-1f3ff"],fname:"1f936-1f3ff",uc:"1f936-1f3ff",isCanonical:!1},":mrs_claus_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!0},":mother_christmas_tone4:":{unicode:["1f936-1f3fe"],fname:"1f936-1f3fe",uc:"1f936-1f3fe",isCanonical:!1},":mrs_claus_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!0},":mother_christmas_tone3:":{unicode:["1f936-1f3fd"],fname:"1f936-1f3fd",uc:"1f936-1f3fd",isCanonical:!1},":mrs_claus_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!0},":mother_christmas_tone2:":{unicode:["1f936-1f3fc"],fname:"1f936-1f3fc",uc:"1f936-1f3fc",isCanonical:!1},":mrs_claus_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!0},":mother_christmas_tone1:":{unicode:["1f936-1f3fb"],fname:"1f936-1f3fb",uc:"1f936-1f3fb",isCanonical:!1},":man_in_tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!0},":tuxedo_tone5:":{unicode:["1f935-1f3ff"],fname:"1f935-1f3ff",uc:"1f935-1f3ff",isCanonical:!1},":man_in_tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!0},":tuxedo_tone4:":{unicode:["1f935-1f3fe"],fname:"1f935-1f3fe",uc:"1f935-1f3fe",isCanonical:!1},":man_in_tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!0},":tuxedo_tone3:":{unicode:["1f935-1f3fd"],fname:"1f935-1f3fd",uc:"1f935-1f3fd",isCanonical:!1},":man_in_tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!0},":tuxedo_tone2:":{unicode:["1f935-1f3fc"],fname:"1f935-1f3fc",uc:"1f935-1f3fc",isCanonical:!1},":man_in_tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!0},":tuxedo_tone1:":{unicode:["1f935-1f3fb"],fname:"1f935-1f3fb",uc:"1f935-1f3fb",isCanonical:!1},":prince_tone5:":{unicode:["1f934-1f3ff"],fname:"1f934-1f3ff",uc:"1f934-1f3ff",isCanonical:!0},":prince_tone4:":{unicode:["1f934-1f3fe"],fname:"1f934-1f3fe",uc:"1f934-1f3fe",isCanonical:!0},":prince_tone3:":{unicode:["1f934-1f3fd"],fname:"1f934-1f3fd",uc:"1f934-1f3fd",isCanonical:!0},":prince_tone2:":{unicode:["1f934-1f3fc"],fname:"1f934-1f3fc",uc:"1f934-1f3fc",isCanonical:!0},":prince_tone1:":{unicode:["1f934-1f3fb"],fname:"1f934-1f3fb",uc:"1f934-1f3fb",isCanonical:!0},":selfie_tone5:":{unicode:["1f933-1f3ff"],fname:"1f933-1f3ff",uc:"1f933-1f3ff",isCanonical:!0},":selfie_tone4:":{unicode:["1f933-1f3fe"],fname:"1f933-1f3fe",uc:"1f933-1f3fe",isCanonical:!0},":selfie_tone3:":{unicode:["1f933-1f3fd"],fname:"1f933-1f3fd",uc:"1f933-1f3fd",isCanonical:!0},":selfie_tone2:":{unicode:["1f933-1f3fc"],fname:"1f933-1f3fc",uc:"1f933-1f3fc",isCanonical:!0},":selfie_tone1:":{unicode:["1f933-1f3fb"],fname:"1f933-1f3fb",uc:"1f933-1f3fb",isCanonical:!0},":pregnant_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!0},":expecting_woman_tone5:":{unicode:["1f930-1f3ff"],fname:"1f930-1f3ff",uc:"1f930-1f3ff",isCanonical:!1},":pregnant_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!0},":expecting_woman_tone4:":{unicode:["1f930-1f3fe"],fname:"1f930-1f3fe",uc:"1f930-1f3fe",isCanonical:!1},":pregnant_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!0},":expecting_woman_tone3:":{unicode:["1f930-1f3fd"],fname:"1f930-1f3fd",uc:"1f930-1f3fd",isCanonical:!1},":pregnant_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!0},":expecting_woman_tone2:":{unicode:["1f930-1f3fc"],fname:"1f930-1f3fc",uc:"1f930-1f3fc",isCanonical:!1},":pregnant_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!0},":expecting_woman_tone1:":{unicode:["1f930-1f3fb"],fname:"1f930-1f3fb",uc:"1f930-1f3fb",isCanonical:!1},":face_palm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!0},":facepalm_tone5:":{unicode:["1f926-1f3ff"],fname:"1f926-1f3ff",uc:"1f926-1f3ff",isCanonical:!1},":face_palm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!0},":facepalm_tone4:":{unicode:["1f926-1f3fe"],fname:"1f926-1f3fe",uc:"1f926-1f3fe",isCanonical:!1},":face_palm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!0},":facepalm_tone3:":{unicode:["1f926-1f3fd"],fname:"1f926-1f3fd",uc:"1f926-1f3fd",isCanonical:!1},":face_palm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!0},":facepalm_tone2:":{unicode:["1f926-1f3fc"],fname:"1f926-1f3fc",uc:"1f926-1f3fc",isCanonical:!1},":face_palm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!0},":facepalm_tone1:":{unicode:["1f926-1f3fb"],fname:"1f926-1f3fb",uc:"1f926-1f3fb",isCanonical:!1},":fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone5:":{unicode:["1f91e-1f3ff"],fname:"1f91e-1f3ff",uc:"1f91e-1f3ff",isCanonical:!1},":fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone4:":{unicode:["1f91e-1f3fe"],fname:"1f91e-1f3fe",uc:"1f91e-1f3fe",isCanonical:!1},":fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone3:":{unicode:["1f91e-1f3fd"],fname:"1f91e-1f3fd",uc:"1f91e-1f3fd",isCanonical:!1},":fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone2:":{unicode:["1f91e-1f3fc"],fname:"1f91e-1f3fc",uc:"1f91e-1f3fc",isCanonical:!1},":fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!0},":hand_with_index_and_middle_fingers_crossed_tone1:":{unicode:["1f91e-1f3fb"],fname:"1f91e-1f3fb",uc:"1f91e-1f3fb",isCanonical:!1},":handshake_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!0},":shaking_hands_tone5:":{unicode:["1f91d-1f3ff"],fname:"1f91d-1f3ff",uc:"1f91d-1f3ff",isCanonical:!1},":handshake_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!0},":shaking_hands_tone4:":{unicode:["1f91d-1f3fe"],fname:"1f91d-1f3fe",uc:"1f91d-1f3fe",isCanonical:!1},":handshake_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!0},":shaking_hands_tone3:":{unicode:["1f91d-1f3fd"],fname:"1f91d-1f3fd",uc:"1f91d-1f3fd",isCanonical:!1},":handshake_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!0},":shaking_hands_tone2:":{unicode:["1f91d-1f3fc"],fname:"1f91d-1f3fc",uc:"1f91d-1f3fc",isCanonical:!1},":handshake_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!0},":shaking_hands_tone1:":{unicode:["1f91d-1f3fb"],fname:"1f91d-1f3fb",uc:"1f91d-1f3fb",isCanonical:!1},":right_facing_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!0},":right_fist_tone5:":{unicode:["1f91c-1f3ff"],fname:"1f91c-1f3ff",uc:"1f91c-1f3ff",isCanonical:!1},":right_facing_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!0},":right_fist_tone4:":{unicode:["1f91c-1f3fe"],fname:"1f91c-1f3fe",uc:"1f91c-1f3fe",isCanonical:!1},":right_facing_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!0},":right_fist_tone3:":{unicode:["1f91c-1f3fd"],fname:"1f91c-1f3fd",uc:"1f91c-1f3fd",isCanonical:!1},":right_facing_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!0},":right_fist_tone2:":{unicode:["1f91c-1f3fc"],fname:"1f91c-1f3fc",uc:"1f91c-1f3fc",isCanonical:!1},":right_facing_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!0},":right_fist_tone1:":{unicode:["1f91c-1f3fb"],fname:"1f91c-1f3fb",uc:"1f91c-1f3fb",isCanonical:!1},":left_facing_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!0},":left_fist_tone5:":{unicode:["1f91b-1f3ff"],fname:"1f91b-1f3ff",uc:"1f91b-1f3ff",isCanonical:!1},":left_facing_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!0},":left_fist_tone4:":{unicode:["1f91b-1f3fe"],fname:"1f91b-1f3fe",uc:"1f91b-1f3fe",isCanonical:!1},":left_facing_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!0},":left_fist_tone3:":{unicode:["1f91b-1f3fd"],fname:"1f91b-1f3fd",uc:"1f91b-1f3fd",isCanonical:!1},":left_facing_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!0},":left_fist_tone2:":{unicode:["1f91b-1f3fc"],fname:"1f91b-1f3fc",uc:"1f91b-1f3fc",isCanonical:!1},":left_facing_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!0},":left_fist_tone1:":{unicode:["1f91b-1f3fb"],fname:"1f91b-1f3fb",uc:"1f91b-1f3fb",isCanonical:!1},":raised_back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!0},":back_of_hand_tone5:":{unicode:["1f91a-1f3ff"],fname:"1f91a-1f3ff",uc:"1f91a-1f3ff",isCanonical:!1},":raised_back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!0},":back_of_hand_tone4:":{unicode:["1f91a-1f3fe"],fname:"1f91a-1f3fe",uc:"1f91a-1f3fe",isCanonical:!1},":raised_back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!0},":back_of_hand_tone3:":{unicode:["1f91a-1f3fd"],fname:"1f91a-1f3fd",uc:"1f91a-1f3fd",isCanonical:!1},":raised_back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!0},":back_of_hand_tone2:":{unicode:["1f91a-1f3fc"],fname:"1f91a-1f3fc",uc:"1f91a-1f3fc",isCanonical:!1},":raised_back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!0},":back_of_hand_tone1:":{unicode:["1f91a-1f3fb"],fname:"1f91a-1f3fb",uc:"1f91a-1f3fb",isCanonical:!1},":call_me_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!0},":call_me_hand_tone5:":{unicode:["1f919-1f3ff"],fname:"1f919-1f3ff",uc:"1f919-1f3ff",isCanonical:!1},":call_me_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",
+uc:"1f919-1f3fe",isCanonical:!0},":call_me_hand_tone4:":{unicode:["1f919-1f3fe"],fname:"1f919-1f3fe",uc:"1f919-1f3fe",isCanonical:!1},":call_me_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!0},":call_me_hand_tone3:":{unicode:["1f919-1f3fd"],fname:"1f919-1f3fd",uc:"1f919-1f3fd",isCanonical:!1},":call_me_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!0},":call_me_hand_tone2:":{unicode:["1f919-1f3fc"],fname:"1f919-1f3fc",uc:"1f919-1f3fc",isCanonical:!1},":call_me_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!0},":call_me_hand_tone1:":{unicode:["1f919-1f3fb"],fname:"1f919-1f3fb",uc:"1f919-1f3fb",isCanonical:!1},":metal_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!0},":sign_of_the_horns_tone5:":{unicode:["1f918-1f3ff"],fname:"1f918-1f3ff",uc:"1f918-1f3ff",isCanonical:!1},":metal_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!0},":sign_of_the_horns_tone4:":{unicode:["1f918-1f3fe"],fname:"1f918-1f3fe",uc:"1f918-1f3fe",isCanonical:!1},":metal_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!0},":sign_of_the_horns_tone3:":{unicode:["1f918-1f3fd"],fname:"1f918-1f3fd",uc:"1f918-1f3fd",isCanonical:!1},":metal_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!0},":sign_of_the_horns_tone2:":{unicode:["1f918-1f3fc"],fname:"1f918-1f3fc",uc:"1f918-1f3fc",isCanonical:!1},":metal_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!0},":sign_of_the_horns_tone1:":{unicode:["1f918-1f3fb"],fname:"1f918-1f3fb",uc:"1f918-1f3fb",isCanonical:!1},":bath_tone5:":{unicode:["1f6c0-1f3ff"],fname:"1f6c0-1f3ff",uc:"1f6c0-1f3ff",isCanonical:!0},":bath_tone4:":{unicode:["1f6c0-1f3fe"],fname:"1f6c0-1f3fe",uc:"1f6c0-1f3fe",isCanonical:!0},":bath_tone3:":{unicode:["1f6c0-1f3fd"],fname:"1f6c0-1f3fd",uc:"1f6c0-1f3fd",isCanonical:!0},":bath_tone2:":{unicode:["1f6c0-1f3fc"],fname:"1f6c0-1f3fc",uc:"1f6c0-1f3fc",isCanonical:!0},":bath_tone1:":{unicode:["1f6c0-1f3fb"],fname:"1f6c0-1f3fb",uc:"1f6c0-1f3fb",isCanonical:!0},":walking_tone5:":{unicode:["1f6b6-1f3ff"],fname:"1f6b6-1f3ff",uc:"1f6b6-1f3ff",isCanonical:!0},":walking_tone4:":{unicode:["1f6b6-1f3fe"],fname:"1f6b6-1f3fe",uc:"1f6b6-1f3fe",isCanonical:!0},":walking_tone3:":{unicode:["1f6b6-1f3fd"],fname:"1f6b6-1f3fd",uc:"1f6b6-1f3fd",isCanonical:!0},":walking_tone2:":{unicode:["1f6b6-1f3fc"],fname:"1f6b6-1f3fc",uc:"1f6b6-1f3fc",isCanonical:!0},":walking_tone1:":{unicode:["1f6b6-1f3fb"],fname:"1f6b6-1f3fb",uc:"1f6b6-1f3fb",isCanonical:!0},":mountain_bicyclist_tone5:":{unicode:["1f6b5-1f3ff"],fname:"1f6b5-1f3ff",uc:"1f6b5-1f3ff",isCanonical:!0},":mountain_bicyclist_tone4:":{unicode:["1f6b5-1f3fe"],fname:"1f6b5-1f3fe",uc:"1f6b5-1f3fe",isCanonical:!0},":mountain_bicyclist_tone3:":{unicode:["1f6b5-1f3fd"],fname:"1f6b5-1f3fd",uc:"1f6b5-1f3fd",isCanonical:!0},":mountain_bicyclist_tone2:":{unicode:["1f6b5-1f3fc"],fname:"1f6b5-1f3fc",uc:"1f6b5-1f3fc",isCanonical:!0},":mountain_bicyclist_tone1:":{unicode:["1f6b5-1f3fb"],fname:"1f6b5-1f3fb",uc:"1f6b5-1f3fb",isCanonical:!0},":bicyclist_tone5:":{unicode:["1f6b4-1f3ff"],fname:"1f6b4-1f3ff",uc:"1f6b4-1f3ff",isCanonical:!0},":bicyclist_tone4:":{unicode:["1f6b4-1f3fe"],fname:"1f6b4-1f3fe",uc:"1f6b4-1f3fe",isCanonical:!0},":bicyclist_tone3:":{unicode:["1f6b4-1f3fd"],fname:"1f6b4-1f3fd",uc:"1f6b4-1f3fd",isCanonical:!0},":bicyclist_tone2:":{unicode:["1f6b4-1f3fc"],fname:"1f6b4-1f3fc",uc:"1f6b4-1f3fc",isCanonical:!0},":bicyclist_tone1:":{unicode:["1f6b4-1f3fb"],fname:"1f6b4-1f3fb",uc:"1f6b4-1f3fb",isCanonical:!0},":rowboat_tone5:":{unicode:["1f6a3-1f3ff"],fname:"1f6a3-1f3ff",uc:"1f6a3-1f3ff",isCanonical:!0},":rowboat_tone4:":{unicode:["1f6a3-1f3fe"],fname:"1f6a3-1f3fe",uc:"1f6a3-1f3fe",isCanonical:!0},":rowboat_tone3:":{unicode:["1f6a3-1f3fd"],fname:"1f6a3-1f3fd",uc:"1f6a3-1f3fd",isCanonical:!0},":rowboat_tone2:":{unicode:["1f6a3-1f3fc"],fname:"1f6a3-1f3fc",uc:"1f6a3-1f3fc",isCanonical:!0},":rowboat_tone1:":{unicode:["1f6a3-1f3fb"],fname:"1f6a3-1f3fb",uc:"1f6a3-1f3fb",isCanonical:!0},":pray_tone5:":{unicode:["1f64f-1f3ff"],fname:"1f64f-1f3ff",uc:"1f64f-1f3ff",isCanonical:!0},":pray_tone4:":{unicode:["1f64f-1f3fe"],fname:"1f64f-1f3fe",uc:"1f64f-1f3fe",isCanonical:!0},":pray_tone3:":{unicode:["1f64f-1f3fd"],fname:"1f64f-1f3fd",uc:"1f64f-1f3fd",isCanonical:!0},":pray_tone2:":{unicode:["1f64f-1f3fc"],fname:"1f64f-1f3fc",uc:"1f64f-1f3fc",isCanonical:!0},":pray_tone1:":{unicode:["1f64f-1f3fb"],fname:"1f64f-1f3fb",uc:"1f64f-1f3fb",isCanonical:!0},":person_with_pouting_face_tone5:":{unicode:["1f64e-1f3ff"],fname:"1f64e-1f3ff",uc:"1f64e-1f3ff",isCanonical:!0},":person_with_pouting_face_tone4:":{unicode:["1f64e-1f3fe"],fname:"1f64e-1f3fe",uc:"1f64e-1f3fe",isCanonical:!0},":person_with_pouting_face_tone3:":{unicode:["1f64e-1f3fd"],fname:"1f64e-1f3fd",uc:"1f64e-1f3fd",isCanonical:!0},":person_with_pouting_face_tone2:":{unicode:["1f64e-1f3fc"],fname:"1f64e-1f3fc",uc:"1f64e-1f3fc",isCanonical:!0},":person_with_pouting_face_tone1:":{unicode:["1f64e-1f3fb"],fname:"1f64e-1f3fb",uc:"1f64e-1f3fb",isCanonical:!0},":person_frowning_tone5:":{unicode:["1f64d-1f3ff"],fname:"1f64d-1f3ff",uc:"1f64d-1f3ff",isCanonical:!0},":person_frowning_tone4:":{unicode:["1f64d-1f3fe"],fname:"1f64d-1f3fe",uc:"1f64d-1f3fe",isCanonical:!0},":person_frowning_tone3:":{unicode:["1f64d-1f3fd"],fname:"1f64d-1f3fd",uc:"1f64d-1f3fd",isCanonical:!0},":person_frowning_tone2:":{unicode:["1f64d-1f3fc"],fname:"1f64d-1f3fc",uc:"1f64d-1f3fc",isCanonical:!0},":person_frowning_tone1:":{unicode:["1f64d-1f3fb"],fname:"1f64d-1f3fb",uc:"1f64d-1f3fb",isCanonical:!0},":raised_hands_tone5:":{unicode:["1f64c-1f3ff"],fname:"1f64c-1f3ff",uc:"1f64c-1f3ff",isCanonical:!0},":raised_hands_tone4:":{unicode:["1f64c-1f3fe"],fname:"1f64c-1f3fe",uc:"1f64c-1f3fe",isCanonical:!0},":raised_hands_tone3:":{unicode:["1f64c-1f3fd"],fname:"1f64c-1f3fd",uc:"1f64c-1f3fd",isCanonical:!0},":raised_hands_tone2:":{unicode:["1f64c-1f3fc"],fname:"1f64c-1f3fc",uc:"1f64c-1f3fc",isCanonical:!0},":raised_hands_tone1:":{unicode:["1f64c-1f3fb"],fname:"1f64c-1f3fb",uc:"1f64c-1f3fb",isCanonical:!0},":raising_hand_tone5:":{unicode:["1f64b-1f3ff"],fname:"1f64b-1f3ff",uc:"1f64b-1f3ff",isCanonical:!0},":raising_hand_tone4:":{unicode:["1f64b-1f3fe"],fname:"1f64b-1f3fe",uc:"1f64b-1f3fe",isCanonical:!0},":raising_hand_tone3:":{unicode:["1f64b-1f3fd"],fname:"1f64b-1f3fd",uc:"1f64b-1f3fd",isCanonical:!0},":raising_hand_tone2:":{unicode:["1f64b-1f3fc"],fname:"1f64b-1f3fc",uc:"1f64b-1f3fc",isCanonical:!0},":raising_hand_tone1:":{unicode:["1f64b-1f3fb"],fname:"1f64b-1f3fb",uc:"1f64b-1f3fb",isCanonical:!0},":bow_tone5:":{unicode:["1f647-1f3ff"],fname:"1f647-1f3ff",uc:"1f647-1f3ff",isCanonical:!0},":bow_tone4:":{unicode:["1f647-1f3fe"],fname:"1f647-1f3fe",uc:"1f647-1f3fe",isCanonical:!0},":bow_tone3:":{unicode:["1f647-1f3fd"],fname:"1f647-1f3fd",uc:"1f647-1f3fd",isCanonical:!0},":bow_tone2:":{unicode:["1f647-1f3fc"],fname:"1f647-1f3fc",uc:"1f647-1f3fc",isCanonical:!0},":bow_tone1:":{unicode:["1f647-1f3fb"],fname:"1f647-1f3fb",uc:"1f647-1f3fb",isCanonical:!0},":ok_woman_tone5:":{unicode:["1f646-1f3ff"],fname:"1f646-1f3ff",uc:"1f646-1f3ff",isCanonical:!0},":ok_woman_tone4:":{unicode:["1f646-1f3fe"],fname:"1f646-1f3fe",uc:"1f646-1f3fe",isCanonical:!0},":ok_woman_tone3:":{unicode:["1f646-1f3fd"],fname:"1f646-1f3fd",uc:"1f646-1f3fd",isCanonical:!0},":ok_woman_tone2:":{unicode:["1f646-1f3fc"],fname:"1f646-1f3fc",uc:"1f646-1f3fc",isCanonical:!0},":ok_woman_tone1:":{unicode:["1f646-1f3fb"],fname:"1f646-1f3fb",uc:"1f646-1f3fb",isCanonical:!0},":no_good_tone5:":{unicode:["1f645-1f3ff"],fname:"1f645-1f3ff",uc:"1f645-1f3ff",isCanonical:!0},":no_good_tone4:":{unicode:["1f645-1f3fe"],fname:"1f645-1f3fe",uc:"1f645-1f3fe",isCanonical:!0},":no_good_tone3:":{unicode:["1f645-1f3fd"],fname:"1f645-1f3fd",uc:"1f645-1f3fd",isCanonical:!0},":no_good_tone2:":{unicode:["1f645-1f3fc"],fname:"1f645-1f3fc",uc:"1f645-1f3fc",isCanonical:!0},":no_good_tone1:":{unicode:["1f645-1f3fb"],fname:"1f645-1f3fb",uc:"1f645-1f3fb",isCanonical:!0},":vulcan_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone5:":{unicode:["1f596-1f3ff"],fname:"1f596-1f3ff",uc:"1f596-1f3ff",isCanonical:!1},":vulcan_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone4:":{unicode:["1f596-1f3fe"],fname:"1f596-1f3fe",uc:"1f596-1f3fe",isCanonical:!1},":vulcan_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone3:":{unicode:["1f596-1f3fd"],fname:"1f596-1f3fd",uc:"1f596-1f3fd",isCanonical:!1},":vulcan_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone2:":{unicode:["1f596-1f3fc"],fname:"1f596-1f3fc",uc:"1f596-1f3fc",isCanonical:!1},":vulcan_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers_tone1:":{unicode:["1f596-1f3fb"],fname:"1f596-1f3fb",uc:"1f596-1f3fb",isCanonical:!1},":middle_finger_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone5:":{unicode:["1f595-1f3ff"],fname:"1f595-1f3ff",uc:"1f595-1f3ff",isCanonical:!1},":middle_finger_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone4:":{unicode:["1f595-1f3fe"],fname:"1f595-1f3fe",uc:"1f595-1f3fe",isCanonical:!1},":middle_finger_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone3:":{unicode:["1f595-1f3fd"],fname:"1f595-1f3fd",uc:"1f595-1f3fd",isCanonical:!1},":middle_finger_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone2:":{unicode:["1f595-1f3fc"],fname:"1f595-1f3fc",uc:"1f595-1f3fc",isCanonical:!1},":middle_finger_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!0},":reversed_hand_with_middle_finger_extended_tone1:":{unicode:["1f595-1f3fb"],fname:"1f595-1f3fb",uc:"1f595-1f3fb",isCanonical:!1},":hand_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!0},":raised_hand_with_fingers_splayed_tone5:":{unicode:["1f590-1f3ff"],fname:"1f590-1f3ff",uc:"1f590-1f3ff",isCanonical:!1},":hand_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!0},":raised_hand_with_fingers_splayed_tone4:":{unicode:["1f590-1f3fe"],fname:"1f590-1f3fe",uc:"1f590-1f3fe",isCanonical:!1},":hand_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!0},":raised_hand_with_fingers_splayed_tone3:":{unicode:["1f590-1f3fd"],fname:"1f590-1f3fd",uc:"1f590-1f3fd",isCanonical:!1},":hand_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!0},":raised_hand_with_fingers_splayed_tone2:":{unicode:["1f590-1f3fc"],fname:"1f590-1f3fc",uc:"1f590-1f3fc",isCanonical:!1},":hand_splayed_tone1:":{unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!0},":raised_hand_with_fingers_splayed_tone1:":{unicode:["1f590-1f3fb"],fname:"1f590-1f3fb",uc:"1f590-1f3fb",isCanonical:!1},":man_dancing_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!0},":male_dancer_tone5:":{unicode:["1f57a-1f3ff"],fname:"1f57a-1f3ff",uc:"1f57a-1f3ff",isCanonical:!1},":man_dancing_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!0},":male_dancer_tone4:":{unicode:["1f57a-1f3fe"],fname:"1f57a-1f3fe",uc:"1f57a-1f3fe",isCanonical:!1},":man_dancing_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!0},":male_dancer_tone3:":{unicode:["1f57a-1f3fd"],fname:"1f57a-1f3fd",uc:"1f57a-1f3fd",isCanonical:!1},":man_dancing_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!0},":male_dancer_tone2:":{unicode:["1f57a-1f3fc"],fname:"1f57a-1f3fc",uc:"1f57a-1f3fc",isCanonical:!1},":man_dancing_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!0},":male_dancer_tone1:":{unicode:["1f57a-1f3fb"],fname:"1f57a-1f3fb",uc:"1f57a-1f3fb",isCanonical:!1},":spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!0},":sleuth_or_spy_tone5:":{unicode:["1f575-1f3ff"],fname:"1f575-1f3ff",uc:"1f575-1f3ff",isCanonical:!1},":spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!0},":sleuth_or_spy_tone4:":{unicode:["1f575-1f3fe"],fname:"1f575-1f3fe",uc:"1f575-1f3fe",isCanonical:!1},":spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!0},":sleuth_or_spy_tone3:":{unicode:["1f575-1f3fd"],fname:"1f575-1f3fd",uc:"1f575-1f3fd",isCanonical:!1},":spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!0},":sleuth_or_spy_tone2:":{unicode:["1f575-1f3fc"],fname:"1f575-1f3fc",uc:"1f575-1f3fc",isCanonical:!1},":spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!0},":sleuth_or_spy_tone1:":{unicode:["1f575-1f3fb"],fname:"1f575-1f3fb",uc:"1f575-1f3fb",isCanonical:!1},":muscle_tone5:":{unicode:["1f4aa-1f3ff"],fname:"1f4aa-1f3ff",uc:"1f4aa-1f3ff",isCanonical:!0},":muscle_tone4:":{unicode:["1f4aa-1f3fe"],fname:"1f4aa-1f3fe",uc:"1f4aa-1f3fe",isCanonical:!0},":muscle_tone3:":{unicode:["1f4aa-1f3fd"],fname:"1f4aa-1f3fd",uc:"1f4aa-1f3fd",isCanonical:!0},":muscle_tone2:":{unicode:["1f4aa-1f3fc"],fname:"1f4aa-1f3fc",uc:"1f4aa-1f3fc",isCanonical:!0},":muscle_tone1:":{unicode:["1f4aa-1f3fb"],fname:"1f4aa-1f3fb",uc:"1f4aa-1f3fb",isCanonical:!0},":haircut_tone5:":{unicode:["1f487-1f3ff"],fname:"1f487-1f3ff",uc:"1f487-1f3ff",isCanonical:!0},":haircut_tone4:":{unicode:["1f487-1f3fe"],fname:"1f487-1f3fe",uc:"1f487-1f3fe",isCanonical:!0},":haircut_tone3:":{unicode:["1f487-1f3fd"],fname:"1f487-1f3fd",uc:"1f487-1f3fd",isCanonical:!0},":haircut_tone2:":{unicode:["1f487-1f3fc"],fname:"1f487-1f3fc",uc:"1f487-1f3fc",isCanonical:!0},":haircut_tone1:":{unicode:["1f487-1f3fb"],fname:"1f487-1f3fb",uc:"1f487-1f3fb",isCanonical:!0},":massage_tone5:":{unicode:["1f486-1f3ff"],fname:"1f486-1f3ff",uc:"1f486-1f3ff",isCanonical:!0},":massage_tone4:":{unicode:["1f486-1f3fe"],fname:"1f486-1f3fe",uc:"1f486-1f3fe",isCanonical:!0},":massage_tone3:":{unicode:["1f486-1f3fd"],fname:"1f486-1f3fd",uc:"1f486-1f3fd",isCanonical:!0},":massage_tone2:":{unicode:["1f486-1f3fc"],fname:"1f486-1f3fc",uc:"1f486-1f3fc",isCanonical:!0},":massage_tone1:":{unicode:["1f486-1f3fb"],fname:"1f486-1f3fb",uc:"1f486-1f3fb",isCanonical:!0},":nail_care_tone5:":{unicode:["1f485-1f3ff"],fname:"1f485-1f3ff",uc:"1f485-1f3ff",isCanonical:!0},":nail_care_tone4:":{unicode:["1f485-1f3fe"],fname:"1f485-1f3fe",uc:"1f485-1f3fe",isCanonical:!0},":nail_care_tone3:":{unicode:["1f485-1f3fd"],fname:"1f485-1f3fd",uc:"1f485-1f3fd",isCanonical:!0},":nail_care_tone2:":{unicode:["1f485-1f3fc"],fname:"1f485-1f3fc",uc:"1f485-1f3fc",isCanonical:!0},":nail_care_tone1:":{unicode:["1f485-1f3fb"],fname:"1f485-1f3fb",uc:"1f485-1f3fb",isCanonical:!0},":dancer_tone5:":{unicode:["1f483-1f3ff"],fname:"1f483-1f3ff",uc:"1f483-1f3ff",isCanonical:!0},":dancer_tone4:":{unicode:["1f483-1f3fe"],fname:"1f483-1f3fe",uc:"1f483-1f3fe",isCanonical:!0},":dancer_tone3:":{unicode:["1f483-1f3fd"],fname:"1f483-1f3fd",uc:"1f483-1f3fd",isCanonical:!0},":dancer_tone2:":{unicode:["1f483-1f3fc"],fname:"1f483-1f3fc",uc:"1f483-1f3fc",isCanonical:!0},":dancer_tone1:":{unicode:["1f483-1f3fb"],fname:"1f483-1f3fb",uc:"1f483-1f3fb",isCanonical:!0},":guardsman_tone5:":{unicode:["1f482-1f3ff"],fname:"1f482-1f3ff",uc:"1f482-1f3ff",isCanonical:!0},":guardsman_tone4:":{unicode:["1f482-1f3fe"],fname:"1f482-1f3fe",uc:"1f482-1f3fe",isCanonical:!0},":guardsman_tone3:":{unicode:["1f482-1f3fd"],fname:"1f482-1f3fd",uc:"1f482-1f3fd",isCanonical:!0},":guardsman_tone2:":{unicode:["1f482-1f3fc"],fname:"1f482-1f3fc",uc:"1f482-1f3fc",isCanonical:!0},":guardsman_tone1:":{unicode:["1f482-1f3fb"],fname:"1f482-1f3fb",uc:"1f482-1f3fb",isCanonical:!0},":information_desk_person_tone5:":{unicode:["1f481-1f3ff"],fname:"1f481-1f3ff",uc:"1f481-1f3ff",isCanonical:!0},":information_desk_person_tone4:":{unicode:["1f481-1f3fe"],fname:"1f481-1f3fe",uc:"1f481-1f3fe",isCanonical:!0},":information_desk_person_tone3:":{unicode:["1f481-1f3fd"],fname:"1f481-1f3fd",uc:"1f481-1f3fd",isCanonical:!0},":information_desk_person_tone2:":{unicode:["1f481-1f3fc"],fname:"1f481-1f3fc",uc:"1f481-1f3fc",isCanonical:!0},":information_desk_person_tone1:":{unicode:["1f481-1f3fb"],fname:"1f481-1f3fb",uc:"1f481-1f3fb",isCanonical:!0},":angel_tone5:":{unicode:["1f47c-1f3ff"],fname:"1f47c-1f3ff",uc:"1f47c-1f3ff",isCanonical:!0},":angel_tone4:":{unicode:["1f47c-1f3fe"],fname:"1f47c-1f3fe",uc:"1f47c-1f3fe",isCanonical:!0},":angel_tone3:":{unicode:["1f47c-1f3fd"],fname:"1f47c-1f3fd",uc:"1f47c-1f3fd",isCanonical:!0},":angel_tone2:":{unicode:["1f47c-1f3fc"],fname:"1f47c-1f3fc",uc:"1f47c-1f3fc",isCanonical:!0},":angel_tone1:":{unicode:["1f47c-1f3fb"],fname:"1f47c-1f3fb",uc:"1f47c-1f3fb",isCanonical:!0},":princess_tone5:":{unicode:["1f478-1f3ff"],fname:"1f478-1f3ff",uc:"1f478-1f3ff",isCanonical:!0},":princess_tone4:":{unicode:["1f478-1f3fe"],fname:"1f478-1f3fe",uc:"1f478-1f3fe",isCanonical:!0},":princess_tone3:":{unicode:["1f478-1f3fd"],fname:"1f478-1f3fd",uc:"1f478-1f3fd",isCanonical:!0},":princess_tone2:":{unicode:["1f478-1f3fc"],fname:"1f478-1f3fc",uc:"1f478-1f3fc",isCanonical:!0},":princess_tone1:":{unicode:["1f478-1f3fb"],fname:"1f478-1f3fb",uc:"1f478-1f3fb",isCanonical:!0},":construction_worker_tone5:":{unicode:["1f477-1f3ff"],fname:"1f477-1f3ff",uc:"1f477-1f3ff",isCanonical:!0},":construction_worker_tone4:":{unicode:["1f477-1f3fe"],fname:"1f477-1f3fe",uc:"1f477-1f3fe",isCanonical:!0},":construction_worker_tone3:":{unicode:["1f477-1f3fd"],fname:"1f477-1f3fd",uc:"1f477-1f3fd",isCanonical:!0},":construction_worker_tone2:":{unicode:["1f477-1f3fc"],fname:"1f477-1f3fc",uc:"1f477-1f3fc",isCanonical:!0},":construction_worker_tone1:":{unicode:["1f477-1f3fb"],fname:"1f477-1f3fb",uc:"1f477-1f3fb",isCanonical:!0},":baby_tone5:":{unicode:["1f476-1f3ff"],fname:"1f476-1f3ff",uc:"1f476-1f3ff",isCanonical:!0},":baby_tone4:":{unicode:["1f476-1f3fe"],fname:"1f476-1f3fe",uc:"1f476-1f3fe",isCanonical:!0},":baby_tone3:":{unicode:["1f476-1f3fd"],fname:"1f476-1f3fd",uc:"1f476-1f3fd",isCanonical:!0},":baby_tone2:":{unicode:["1f476-1f3fc"],fname:"1f476-1f3fc",uc:"1f476-1f3fc",isCanonical:!0},":baby_tone1:":{unicode:["1f476-1f3fb"],fname:"1f476-1f3fb",uc:"1f476-1f3fb",isCanonical:!0},":older_woman_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!0},":grandma_tone5:":{unicode:["1f475-1f3ff"],fname:"1f475-1f3ff",uc:"1f475-1f3ff",isCanonical:!1},":older_woman_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!0},":grandma_tone4:":{unicode:["1f475-1f3fe"],fname:"1f475-1f3fe",uc:"1f475-1f3fe",isCanonical:!1},":older_woman_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!0},":grandma_tone3:":{unicode:["1f475-1f3fd"],fname:"1f475-1f3fd",uc:"1f475-1f3fd",isCanonical:!1},":older_woman_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!0},":grandma_tone2:":{unicode:["1f475-1f3fc"],fname:"1f475-1f3fc",uc:"1f475-1f3fc",isCanonical:!1},":older_woman_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!0},":grandma_tone1:":{unicode:["1f475-1f3fb"],fname:"1f475-1f3fb",uc:"1f475-1f3fb",isCanonical:!1},":older_man_tone5:":{unicode:["1f474-1f3ff"],fname:"1f474-1f3ff",uc:"1f474-1f3ff",isCanonical:!0},":older_man_tone4:":{unicode:["1f474-1f3fe"],fname:"1f474-1f3fe",uc:"1f474-1f3fe",isCanonical:!0},":older_man_tone3:":{unicode:["1f474-1f3fd"],fname:"1f474-1f3fd",uc:"1f474-1f3fd",isCanonical:!0},":older_man_tone2:":{unicode:["1f474-1f3fc"],fname:"1f474-1f3fc",uc:"1f474-1f3fc",isCanonical:!0},":older_man_tone1:":{unicode:["1f474-1f3fb"],fname:"1f474-1f3fb",uc:"1f474-1f3fb",isCanonical:!0},":man_with_turban_tone5:":{unicode:["1f473-1f3ff"],fname:"1f473-1f3ff",uc:"1f473-1f3ff",isCanonical:!0},":man_with_turban_tone4:":{unicode:["1f473-1f3fe"],fname:"1f473-1f3fe",uc:"1f473-1f3fe",isCanonical:!0},":man_with_turban_tone3:":{unicode:["1f473-1f3fd"],fname:"1f473-1f3fd",uc:"1f473-1f3fd",isCanonical:!0},":man_with_turban_tone2:":{unicode:["1f473-1f3fc"],fname:"1f473-1f3fc",uc:"1f473-1f3fc",isCanonical:!0},":man_with_turban_tone1:":{unicode:["1f473-1f3fb"],fname:"1f473-1f3fb",uc:"1f473-1f3fb",isCanonical:!0},":man_with_gua_pi_mao_tone5:":{unicode:["1f472-1f3ff"],fname:"1f472-1f3ff",uc:"1f472-1f3ff",isCanonical:!0},":man_with_gua_pi_mao_tone4:":{unicode:["1f472-1f3fe"],fname:"1f472-1f3fe",uc:"1f472-1f3fe",isCanonical:!0},":man_with_gua_pi_mao_tone3:":{unicode:["1f472-1f3fd"],fname:"1f472-1f3fd",uc:"1f472-1f3fd",isCanonical:!0},":man_with_gua_pi_mao_tone2:":{unicode:["1f472-1f3fc"],fname:"1f472-1f3fc",uc:"1f472-1f3fc",isCanonical:!0},":man_with_gua_pi_mao_tone1:":{unicode:["1f472-1f3fb"],fname:"1f472-1f3fb",uc:"1f472-1f3fb",isCanonical:!0},":person_with_blond_hair_tone5:":{unicode:["1f471-1f3ff"],fname:"1f471-1f3ff",uc:"1f471-1f3ff",isCanonical:!0},":person_with_blond_hair_tone4:":{unicode:["1f471-1f3fe"],fname:"1f471-1f3fe",uc:"1f471-1f3fe",isCanonical:!0},":person_with_blond_hair_tone3:":{unicode:["1f471-1f3fd"],fname:"1f471-1f3fd",uc:"1f471-1f3fd",isCanonical:!0},":person_with_blond_hair_tone2:":{unicode:["1f471-1f3fc"],fname:"1f471-1f3fc",uc:"1f471-1f3fc",isCanonical:!0},":person_with_blond_hair_tone1:":{unicode:["1f471-1f3fb"],fname:"1f471-1f3fb",uc:"1f471-1f3fb",isCanonical:!0},":bride_with_veil_tone5:":{unicode:["1f470-1f3ff"],fname:"1f470-1f3ff",uc:"1f470-1f3ff",isCanonical:!0},":bride_with_veil_tone4:":{unicode:["1f470-1f3fe"],fname:"1f470-1f3fe",uc:"1f470-1f3fe",isCanonical:!0},":bride_with_veil_tone3:":{unicode:["1f470-1f3fd"],fname:"1f470-1f3fd",uc:"1f470-1f3fd",isCanonical:!0},":bride_with_veil_tone2:":{unicode:["1f470-1f3fc"],fname:"1f470-1f3fc",uc:"1f470-1f3fc",isCanonical:!0},":bride_with_veil_tone1:":{unicode:["1f470-1f3fb"],fname:"1f470-1f3fb",uc:"1f470-1f3fb",isCanonical:!0},":cop_tone5:":{unicode:["1f46e-1f3ff"],fname:"1f46e-1f3ff",uc:"1f46e-1f3ff",isCanonical:!0},":cop_tone4:":{unicode:["1f46e-1f3fe"],fname:"1f46e-1f3fe",uc:"1f46e-1f3fe",isCanonical:!0},":cop_tone3:":{unicode:["1f46e-1f3fd"],fname:"1f46e-1f3fd",uc:"1f46e-1f3fd",isCanonical:!0},":cop_tone2:":{unicode:["1f46e-1f3fc"],fname:"1f46e-1f3fc",uc:"1f46e-1f3fc",isCanonical:!0},":cop_tone1:":{unicode:["1f46e-1f3fb"],fname:"1f46e-1f3fb",uc:"1f46e-1f3fb",isCanonical:!0},":woman_tone5:":{unicode:["1f469-1f3ff"],fname:"1f469-1f3ff",uc:"1f469-1f3ff",isCanonical:!0},":woman_tone4:":{unicode:["1f469-1f3fe"],fname:"1f469-1f3fe",uc:"1f469-1f3fe",isCanonical:!0},":woman_tone3:":{unicode:["1f469-1f3fd"],fname:"1f469-1f3fd",uc:"1f469-1f3fd",isCanonical:!0},":woman_tone2:":{unicode:["1f469-1f3fc"],fname:"1f469-1f3fc",uc:"1f469-1f3fc",isCanonical:!0},":woman_tone1:":{unicode:["1f469-1f3fb"],fname:"1f469-1f3fb",uc:"1f469-1f3fb",isCanonical:!0},":man_tone5:":{unicode:["1f468-1f3ff"],fname:"1f468-1f3ff",uc:"1f468-1f3ff",isCanonical:!0},":man_tone4:":{unicode:["1f468-1f3fe"],fname:"1f468-1f3fe",uc:"1f468-1f3fe",isCanonical:!0},":man_tone3:":{unicode:["1f468-1f3fd"],fname:"1f468-1f3fd",uc:"1f468-1f3fd",isCanonical:!0},":man_tone2:":{unicode:["1f468-1f3fc"],fname:"1f468-1f3fc",uc:"1f468-1f3fc",isCanonical:!0},":man_tone1:":{unicode:["1f468-1f3fb"],fname:"1f468-1f3fb",uc:"1f468-1f3fb",isCanonical:!0},":girl_tone5:":{unicode:["1f467-1f3ff"],fname:"1f467-1f3ff",uc:"1f467-1f3ff",isCanonical:!0},":girl_tone4:":{unicode:["1f467-1f3fe"],fname:"1f467-1f3fe",uc:"1f467-1f3fe",isCanonical:!0},":girl_tone3:":{unicode:["1f467-1f3fd"],fname:"1f467-1f3fd",uc:"1f467-1f3fd",isCanonical:!0},":girl_tone2:":{unicode:["1f467-1f3fc"],fname:"1f467-1f3fc",uc:"1f467-1f3fc",isCanonical:!0},":girl_tone1:":{unicode:["1f467-1f3fb"],fname:"1f467-1f3fb",uc:"1f467-1f3fb",isCanonical:!0},":boy_tone5:":{unicode:["1f466-1f3ff"],fname:"1f466-1f3ff",uc:"1f466-1f3ff",isCanonical:!0},":boy_tone4:":{unicode:["1f466-1f3fe"],fname:"1f466-1f3fe",uc:"1f466-1f3fe",isCanonical:!0},":boy_tone3:":{unicode:["1f466-1f3fd"],fname:"1f466-1f3fd",uc:"1f466-1f3fd",isCanonical:!0},":boy_tone2:":{unicode:["1f466-1f3fc"],fname:"1f466-1f3fc",uc:"1f466-1f3fc",isCanonical:!0},":boy_tone1:":{unicode:["1f466-1f3fb"],fname:"1f466-1f3fb",uc:"1f466-1f3fb",isCanonical:!0},":open_hands_tone5:":{unicode:["1f450-1f3ff"],fname:"1f450-1f3ff",uc:"1f450-1f3ff",isCanonical:!0},":open_hands_tone4:":{unicode:["1f450-1f3fe"],fname:"1f450-1f3fe",uc:"1f450-1f3fe",isCanonical:!0},":open_hands_tone3:":{unicode:["1f450-1f3fd"],fname:"1f450-1f3fd",uc:"1f450-1f3fd",isCanonical:!0},":open_hands_tone2:":{unicode:["1f450-1f3fc"],fname:"1f450-1f3fc",uc:"1f450-1f3fc",isCanonical:!0},":open_hands_tone1:":{unicode:["1f450-1f3fb"],fname:"1f450-1f3fb",uc:"1f450-1f3fb",isCanonical:!0},":clap_tone5:":{unicode:["1f44f-1f3ff"],fname:"1f44f-1f3ff",uc:"1f44f-1f3ff",isCanonical:!0},":clap_tone4:":{unicode:["1f44f-1f3fe"],fname:"1f44f-1f3fe",uc:"1f44f-1f3fe",isCanonical:!0},":clap_tone3:":{unicode:["1f44f-1f3fd"],fname:"1f44f-1f3fd",uc:"1f44f-1f3fd",isCanonical:!0},":clap_tone2:":{unicode:["1f44f-1f3fc"],fname:"1f44f-1f3fc",uc:"1f44f-1f3fc",isCanonical:!0},":clap_tone1:":{unicode:["1f44f-1f3fb"],fname:"1f44f-1f3fb",uc:"1f44f-1f3fb",isCanonical:!0},":thumbsdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!0},":-1_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbdown_tone5:":{unicode:["1f44e-1f3ff"],fname:"1f44e-1f3ff",uc:"1f44e-1f3ff",isCanonical:!1},":thumbsdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!0},":-1_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbdown_tone4:":{unicode:["1f44e-1f3fe"],fname:"1f44e-1f3fe",uc:"1f44e-1f3fe",isCanonical:!1},":thumbsdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!0},":-1_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbdown_tone3:":{unicode:["1f44e-1f3fd"],fname:"1f44e-1f3fd",uc:"1f44e-1f3fd",isCanonical:!1},":thumbsdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!0},":-1_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbdown_tone2:":{unicode:["1f44e-1f3fc"],fname:"1f44e-1f3fc",uc:"1f44e-1f3fc",isCanonical:!1},":thumbsdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!0},":-1_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbdown_tone1:":{unicode:["1f44e-1f3fb"],fname:"1f44e-1f3fb",uc:"1f44e-1f3fb",isCanonical:!1},":thumbsup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!0},":+1_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbup_tone5:":{unicode:["1f44d-1f3ff"],fname:"1f44d-1f3ff",uc:"1f44d-1f3ff",isCanonical:!1},":thumbsup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!0},":+1_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbup_tone4:":{unicode:["1f44d-1f3fe"],fname:"1f44d-1f3fe",uc:"1f44d-1f3fe",isCanonical:!1},":thumbsup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!0},":+1_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbup_tone3:":{unicode:["1f44d-1f3fd"],fname:"1f44d-1f3fd",uc:"1f44d-1f3fd",isCanonical:!1},":thumbsup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!0},":+1_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbup_tone2:":{unicode:["1f44d-1f3fc"],fname:"1f44d-1f3fc",uc:"1f44d-1f3fc",isCanonical:!1},":thumbsup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!0},":+1_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":thumbup_tone1:":{unicode:["1f44d-1f3fb"],fname:"1f44d-1f3fb",uc:"1f44d-1f3fb",isCanonical:!1},":ok_hand_tone5:":{unicode:["1f44c-1f3ff"],fname:"1f44c-1f3ff",uc:"1f44c-1f3ff",isCanonical:!0},":ok_hand_tone4:":{unicode:["1f44c-1f3fe"],fname:"1f44c-1f3fe",uc:"1f44c-1f3fe",isCanonical:!0},":ok_hand_tone3:":{unicode:["1f44c-1f3fd"],fname:"1f44c-1f3fd",uc:"1f44c-1f3fd",isCanonical:!0},":ok_hand_tone2:":{unicode:["1f44c-1f3fc"],fname:"1f44c-1f3fc",uc:"1f44c-1f3fc",isCanonical:!0},":ok_hand_tone1:":{unicode:["1f44c-1f3fb"],fname:"1f44c-1f3fb",uc:"1f44c-1f3fb",isCanonical:!0},":wave_tone5:":{unicode:["1f44b-1f3ff"],fname:"1f44b-1f3ff",uc:"1f44b-1f3ff",isCanonical:!0},":wave_tone4:":{unicode:["1f44b-1f3fe"],fname:"1f44b-1f3fe",uc:"1f44b-1f3fe",isCanonical:!0},":wave_tone3:":{unicode:["1f44b-1f3fd"],fname:"1f44b-1f3fd",uc:"1f44b-1f3fd",isCanonical:!0},":wave_tone2:":{unicode:["1f44b-1f3fc"],fname:"1f44b-1f3fc",uc:"1f44b-1f3fc",isCanonical:!0},":wave_tone1:":{unicode:["1f44b-1f3fb"],fname:"1f44b-1f3fb",uc:"1f44b-1f3fb",isCanonical:!0},":punch_tone5:":{unicode:["1f44a-1f3ff"],fname:"1f44a-1f3ff",uc:"1f44a-1f3ff",isCanonical:!0},":punch_tone4:":{unicode:["1f44a-1f3fe"],fname:"1f44a-1f3fe",uc:"1f44a-1f3fe",isCanonical:!0},":punch_tone3:":{unicode:["1f44a-1f3fd"],fname:"1f44a-1f3fd",uc:"1f44a-1f3fd",isCanonical:!0},":punch_tone2:":{unicode:["1f44a-1f3fc"],fname:"1f44a-1f3fc",uc:"1f44a-1f3fc",isCanonical:!0},":punch_tone1:":{unicode:["1f44a-1f3fb"],fname:"1f44a-1f3fb",uc:"1f44a-1f3fb",isCanonical:!0},":point_right_tone5:":{unicode:["1f449-1f3ff"],fname:"1f449-1f3ff",uc:"1f449-1f3ff",isCanonical:!0},":point_right_tone4:":{unicode:["1f449-1f3fe"],fname:"1f449-1f3fe",uc:"1f449-1f3fe",isCanonical:!0},":point_right_tone3:":{unicode:["1f449-1f3fd"],fname:"1f449-1f3fd",uc:"1f449-1f3fd",isCanonical:!0},":point_right_tone2:":{unicode:["1f449-1f3fc"],fname:"1f449-1f3fc",uc:"1f449-1f3fc",isCanonical:!0},":point_right_tone1:":{unicode:["1f449-1f3fb"],fname:"1f449-1f3fb",uc:"1f449-1f3fb",isCanonical:!0},":point_left_tone5:":{unicode:["1f448-1f3ff"],fname:"1f448-1f3ff",uc:"1f448-1f3ff",isCanonical:!0},":point_left_tone4:":{unicode:["1f448-1f3fe"],fname:"1f448-1f3fe",uc:"1f448-1f3fe",isCanonical:!0},":point_left_tone3:":{unicode:["1f448-1f3fd"],fname:"1f448-1f3fd",uc:"1f448-1f3fd",isCanonical:!0},":point_left_tone2:":{unicode:["1f448-1f3fc"],fname:"1f448-1f3fc",uc:"1f448-1f3fc",isCanonical:!0},":point_left_tone1:":{unicode:["1f448-1f3fb"],fname:"1f448-1f3fb",uc:"1f448-1f3fb",isCanonical:!0},":point_down_tone5:":{unicode:["1f447-1f3ff"],fname:"1f447-1f3ff",uc:"1f447-1f3ff",isCanonical:!0},":point_down_tone4:":{unicode:["1f447-1f3fe"],fname:"1f447-1f3fe",uc:"1f447-1f3fe",isCanonical:!0},":point_down_tone3:":{unicode:["1f447-1f3fd"],fname:"1f447-1f3fd",uc:"1f447-1f3fd",isCanonical:!0},":point_down_tone2:":{unicode:["1f447-1f3fc"],fname:"1f447-1f3fc",uc:"1f447-1f3fc",isCanonical:!0},":point_down_tone1:":{unicode:["1f447-1f3fb"],fname:"1f447-1f3fb",uc:"1f447-1f3fb",isCanonical:!0},":point_up_2_tone5:":{unicode:["1f446-1f3ff"],fname:"1f446-1f3ff",uc:"1f446-1f3ff",isCanonical:!0},":point_up_2_tone4:":{unicode:["1f446-1f3fe"],fname:"1f446-1f3fe",uc:"1f446-1f3fe",isCanonical:!0},":point_up_2_tone3:":{unicode:["1f446-1f3fd"],fname:"1f446-1f3fd",uc:"1f446-1f3fd",isCanonical:!0},":point_up_2_tone2:":{unicode:["1f446-1f3fc"],fname:"1f446-1f3fc",
+uc:"1f446-1f3fc",isCanonical:!0},":point_up_2_tone1:":{unicode:["1f446-1f3fb"],fname:"1f446-1f3fb",uc:"1f446-1f3fb",isCanonical:!0},":nose_tone5:":{unicode:["1f443-1f3ff"],fname:"1f443-1f3ff",uc:"1f443-1f3ff",isCanonical:!0},":nose_tone4:":{unicode:["1f443-1f3fe"],fname:"1f443-1f3fe",uc:"1f443-1f3fe",isCanonical:!0},":nose_tone3:":{unicode:["1f443-1f3fd"],fname:"1f443-1f3fd",uc:"1f443-1f3fd",isCanonical:!0},":nose_tone2:":{unicode:["1f443-1f3fc"],fname:"1f443-1f3fc",uc:"1f443-1f3fc",isCanonical:!0},":nose_tone1:":{unicode:["1f443-1f3fb"],fname:"1f443-1f3fb",uc:"1f443-1f3fb",isCanonical:!0},":ear_tone5:":{unicode:["1f442-1f3ff"],fname:"1f442-1f3ff",uc:"1f442-1f3ff",isCanonical:!0},":ear_tone4:":{unicode:["1f442-1f3fe"],fname:"1f442-1f3fe",uc:"1f442-1f3fe",isCanonical:!0},":ear_tone3:":{unicode:["1f442-1f3fd"],fname:"1f442-1f3fd",uc:"1f442-1f3fd",isCanonical:!0},":ear_tone2:":{unicode:["1f442-1f3fc"],fname:"1f442-1f3fc",uc:"1f442-1f3fc",isCanonical:!0},":ear_tone1:":{unicode:["1f442-1f3fb"],fname:"1f442-1f3fb",uc:"1f442-1f3fb",isCanonical:!0},":lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!0},":weight_lifter_tone5:":{unicode:["1f3cb-1f3ff"],fname:"1f3cb-1f3ff",uc:"1f3cb-1f3ff",isCanonical:!1},":lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!0},":weight_lifter_tone4:":{unicode:["1f3cb-1f3fe"],fname:"1f3cb-1f3fe",uc:"1f3cb-1f3fe",isCanonical:!1},":lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!0},":weight_lifter_tone3:":{unicode:["1f3cb-1f3fd"],fname:"1f3cb-1f3fd",uc:"1f3cb-1f3fd",isCanonical:!1},":lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!0},":weight_lifter_tone2:":{unicode:["1f3cb-1f3fc"],fname:"1f3cb-1f3fc",uc:"1f3cb-1f3fc",isCanonical:!1},":lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!0},":weight_lifter_tone1:":{unicode:["1f3cb-1f3fb"],fname:"1f3cb-1f3fb",uc:"1f3cb-1f3fb",isCanonical:!1},":swimmer_tone5:":{unicode:["1f3ca-1f3ff"],fname:"1f3ca-1f3ff",uc:"1f3ca-1f3ff",isCanonical:!0},":swimmer_tone4:":{unicode:["1f3ca-1f3fe"],fname:"1f3ca-1f3fe",uc:"1f3ca-1f3fe",isCanonical:!0},":swimmer_tone3:":{unicode:["1f3ca-1f3fd"],fname:"1f3ca-1f3fd",uc:"1f3ca-1f3fd",isCanonical:!0},":swimmer_tone2:":{unicode:["1f3ca-1f3fc"],fname:"1f3ca-1f3fc",uc:"1f3ca-1f3fc",isCanonical:!0},":swimmer_tone1:":{unicode:["1f3ca-1f3fb"],fname:"1f3ca-1f3fb",uc:"1f3ca-1f3fb",isCanonical:!0},":horse_racing_tone5:":{unicode:["1f3c7-1f3ff"],fname:"1f3c7-1f3ff",uc:"1f3c7-1f3ff",isCanonical:!0},":horse_racing_tone4:":{unicode:["1f3c7-1f3fe"],fname:"1f3c7-1f3fe",uc:"1f3c7-1f3fe",isCanonical:!0},":horse_racing_tone3:":{unicode:["1f3c7-1f3fd"],fname:"1f3c7-1f3fd",uc:"1f3c7-1f3fd",isCanonical:!0},":horse_racing_tone2:":{unicode:["1f3c7-1f3fc"],fname:"1f3c7-1f3fc",uc:"1f3c7-1f3fc",isCanonical:!0},":horse_racing_tone1:":{unicode:["1f3c7-1f3fb"],fname:"1f3c7-1f3fb",uc:"1f3c7-1f3fb",isCanonical:!0},":surfer_tone5:":{unicode:["1f3c4-1f3ff"],fname:"1f3c4-1f3ff",uc:"1f3c4-1f3ff",isCanonical:!0},":surfer_tone4:":{unicode:["1f3c4-1f3fe"],fname:"1f3c4-1f3fe",uc:"1f3c4-1f3fe",isCanonical:!0},":surfer_tone3:":{unicode:["1f3c4-1f3fd"],fname:"1f3c4-1f3fd",uc:"1f3c4-1f3fd",isCanonical:!0},":surfer_tone2:":{unicode:["1f3c4-1f3fc"],fname:"1f3c4-1f3fc",uc:"1f3c4-1f3fc",isCanonical:!0},":surfer_tone1:":{unicode:["1f3c4-1f3fb"],fname:"1f3c4-1f3fb",uc:"1f3c4-1f3fb",isCanonical:!0},":runner_tone5:":{unicode:["1f3c3-1f3ff"],fname:"1f3c3-1f3ff",uc:"1f3c3-1f3ff",isCanonical:!0},":runner_tone4:":{unicode:["1f3c3-1f3fe"],fname:"1f3c3-1f3fe",uc:"1f3c3-1f3fe",isCanonical:!0},":runner_tone3:":{unicode:["1f3c3-1f3fd"],fname:"1f3c3-1f3fd",uc:"1f3c3-1f3fd",isCanonical:!0},":runner_tone2:":{unicode:["1f3c3-1f3fc"],fname:"1f3c3-1f3fc",uc:"1f3c3-1f3fc",isCanonical:!0},":runner_tone1:":{unicode:["1f3c3-1f3fb"],fname:"1f3c3-1f3fb",uc:"1f3c3-1f3fb",isCanonical:!0},":santa_tone5:":{unicode:["1f385-1f3ff"],fname:"1f385-1f3ff",uc:"1f385-1f3ff",isCanonical:!0},":santa_tone4:":{unicode:["1f385-1f3fe"],fname:"1f385-1f3fe",uc:"1f385-1f3fe",isCanonical:!0},":santa_tone3:":{unicode:["1f385-1f3fd"],fname:"1f385-1f3fd",uc:"1f385-1f3fd",isCanonical:!0},":santa_tone2:":{unicode:["1f385-1f3fc"],fname:"1f385-1f3fc",uc:"1f385-1f3fc",isCanonical:!0},":santa_tone1:":{unicode:["1f385-1f3fb"],fname:"1f385-1f3fb",uc:"1f385-1f3fb",isCanonical:!0},":flag_zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!0},":zw:":{unicode:["1f1ff-1f1fc"],fname:"1f1ff-1f1fc",uc:"1f1ff-1f1fc",isCanonical:!1},":flag_zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!0},":zm:":{unicode:["1f1ff-1f1f2"],fname:"1f1ff-1f1f2",uc:"1f1ff-1f1f2",isCanonical:!1},":flag_za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!0},":za:":{unicode:["1f1ff-1f1e6"],fname:"1f1ff-1f1e6",uc:"1f1ff-1f1e6",isCanonical:!1},":flag_yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!0},":yt:":{unicode:["1f1fe-1f1f9"],fname:"1f1fe-1f1f9",uc:"1f1fe-1f1f9",isCanonical:!1},":flag_ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!0},":ye:":{unicode:["1f1fe-1f1ea"],fname:"1f1fe-1f1ea",uc:"1f1fe-1f1ea",isCanonical:!1},":flag_xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!0},":xk:":{unicode:["1f1fd-1f1f0"],fname:"1f1fd-1f1f0",uc:"1f1fd-1f1f0",isCanonical:!1},":flag_ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!0},":ws:":{unicode:["1f1fc-1f1f8"],fname:"1f1fc-1f1f8",uc:"1f1fc-1f1f8",isCanonical:!1},":flag_wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!0},":wf:":{unicode:["1f1fc-1f1eb"],fname:"1f1fc-1f1eb",uc:"1f1fc-1f1eb",isCanonical:!1},":flag_vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!0},":vu:":{unicode:["1f1fb-1f1fa"],fname:"1f1fb-1f1fa",uc:"1f1fb-1f1fa",isCanonical:!1},":flag_vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!0},":vn:":{unicode:["1f1fb-1f1f3"],fname:"1f1fb-1f1f3",uc:"1f1fb-1f1f3",isCanonical:!1},":flag_vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!0},":vi:":{unicode:["1f1fb-1f1ee"],fname:"1f1fb-1f1ee",uc:"1f1fb-1f1ee",isCanonical:!1},":flag_vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!0},":vg:":{unicode:["1f1fb-1f1ec"],fname:"1f1fb-1f1ec",uc:"1f1fb-1f1ec",isCanonical:!1},":flag_ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!0},":ve:":{unicode:["1f1fb-1f1ea"],fname:"1f1fb-1f1ea",uc:"1f1fb-1f1ea",isCanonical:!1},":flag_vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!0},":vc:":{unicode:["1f1fb-1f1e8"],fname:"1f1fb-1f1e8",uc:"1f1fb-1f1e8",isCanonical:!1},":flag_va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!0},":va:":{unicode:["1f1fb-1f1e6"],fname:"1f1fb-1f1e6",uc:"1f1fb-1f1e6",isCanonical:!1},":flag_uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!0},":uz:":{unicode:["1f1fa-1f1ff"],fname:"1f1fa-1f1ff",uc:"1f1fa-1f1ff",isCanonical:!1},":flag_uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!0},":uy:":{unicode:["1f1fa-1f1fe"],fname:"1f1fa-1f1fe",uc:"1f1fa-1f1fe",isCanonical:!1},":flag_us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!0},":us:":{unicode:["1f1fa-1f1f8"],fname:"1f1fa-1f1f8",uc:"1f1fa-1f1f8",isCanonical:!1},":flag_um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!0},":um:":{unicode:["1f1fa-1f1f2"],fname:"1f1fa-1f1f2",uc:"1f1fa-1f1f2",isCanonical:!1},":flag_ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!0},":ug:":{unicode:["1f1fa-1f1ec"],fname:"1f1fa-1f1ec",uc:"1f1fa-1f1ec",isCanonical:!1},":flag_ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!0},":ua:":{unicode:["1f1fa-1f1e6"],fname:"1f1fa-1f1e6",uc:"1f1fa-1f1e6",isCanonical:!1},":flag_tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!0},":tz:":{unicode:["1f1f9-1f1ff"],fname:"1f1f9-1f1ff",uc:"1f1f9-1f1ff",isCanonical:!1},":flag_tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!0},":tw:":{unicode:["1f1f9-1f1fc"],fname:"1f1f9-1f1fc",uc:"1f1f9-1f1fc",isCanonical:!1},":flag_tv:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!0},":tuvalu:":{unicode:["1f1f9-1f1fb"],fname:"1f1f9-1f1fb",uc:"1f1f9-1f1fb",isCanonical:!1},":flag_tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!0},":tt:":{unicode:["1f1f9-1f1f9"],fname:"1f1f9-1f1f9",uc:"1f1f9-1f1f9",isCanonical:!1},":flag_tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!0},":tr:":{unicode:["1f1f9-1f1f7"],fname:"1f1f9-1f1f7",uc:"1f1f9-1f1f7",isCanonical:!1},":flag_to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!0},":to:":{unicode:["1f1f9-1f1f4"],fname:"1f1f9-1f1f4",uc:"1f1f9-1f1f4",isCanonical:!1},":flag_tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!0},":tn:":{unicode:["1f1f9-1f1f3"],fname:"1f1f9-1f1f3",uc:"1f1f9-1f1f3",isCanonical:!1},":flag_tm:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!0},":turkmenistan:":{unicode:["1f1f9-1f1f2"],fname:"1f1f9-1f1f2",uc:"1f1f9-1f1f2",isCanonical:!1},":flag_tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!0},":tl:":{unicode:["1f1f9-1f1f1"],fname:"1f1f9-1f1f1",uc:"1f1f9-1f1f1",isCanonical:!1},":flag_tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!0},":tk:":{unicode:["1f1f9-1f1f0"],fname:"1f1f9-1f1f0",uc:"1f1f9-1f1f0",isCanonical:!1},":flag_tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!0},":tj:":{unicode:["1f1f9-1f1ef"],fname:"1f1f9-1f1ef",uc:"1f1f9-1f1ef",isCanonical:!1},":flag_th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!0},":th:":{unicode:["1f1f9-1f1ed"],fname:"1f1f9-1f1ed",uc:"1f1f9-1f1ed",isCanonical:!1},":flag_tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!0},":tg:":{unicode:["1f1f9-1f1ec"],fname:"1f1f9-1f1ec",uc:"1f1f9-1f1ec",isCanonical:!1},":flag_tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!0},":tf:":{unicode:["1f1f9-1f1eb"],fname:"1f1f9-1f1eb",uc:"1f1f9-1f1eb",isCanonical:!1},":flag_td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!0},":td:":{unicode:["1f1f9-1f1e9"],fname:"1f1f9-1f1e9",uc:"1f1f9-1f1e9",isCanonical:!1},":flag_tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!0},":tc:":{unicode:["1f1f9-1f1e8"],fname:"1f1f9-1f1e8",uc:"1f1f9-1f1e8",isCanonical:!1},":flag_ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!0},":ta:":{unicode:["1f1f9-1f1e6"],fname:"1f1f9-1f1e6",uc:"1f1f9-1f1e6",isCanonical:!1},":flag_sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!0},":sz:":{unicode:["1f1f8-1f1ff"],fname:"1f1f8-1f1ff",uc:"1f1f8-1f1ff",isCanonical:!1},":flag_sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!0},":sy:":{unicode:["1f1f8-1f1fe"],fname:"1f1f8-1f1fe",uc:"1f1f8-1f1fe",isCanonical:!1},":flag_sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!0},":sx:":{unicode:["1f1f8-1f1fd"],fname:"1f1f8-1f1fd",uc:"1f1f8-1f1fd",isCanonical:!1},":flag_sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!0},":sv:":{unicode:["1f1f8-1f1fb"],fname:"1f1f8-1f1fb",uc:"1f1f8-1f1fb",isCanonical:!1},":flag_st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!0},":st:":{unicode:["1f1f8-1f1f9"],fname:"1f1f8-1f1f9",uc:"1f1f8-1f1f9",isCanonical:!1},":flag_ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!0},":ss:":{unicode:["1f1f8-1f1f8"],fname:"1f1f8-1f1f8",uc:"1f1f8-1f1f8",isCanonical:!1},":flag_sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!0},":sr:":{unicode:["1f1f8-1f1f7"],fname:"1f1f8-1f1f7",uc:"1f1f8-1f1f7",isCanonical:!1},":flag_so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!0},":so:":{unicode:["1f1f8-1f1f4"],fname:"1f1f8-1f1f4",uc:"1f1f8-1f1f4",isCanonical:!1},":flag_sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!0},":sn:":{unicode:["1f1f8-1f1f3"],fname:"1f1f8-1f1f3",uc:"1f1f8-1f1f3",isCanonical:!1},":flag_sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!0},":sm:":{unicode:["1f1f8-1f1f2"],fname:"1f1f8-1f1f2",uc:"1f1f8-1f1f2",isCanonical:!1},":flag_sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!0},":sl:":{unicode:["1f1f8-1f1f1"],fname:"1f1f8-1f1f1",uc:"1f1f8-1f1f1",isCanonical:!1},":flag_sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!0},":sk:":{unicode:["1f1f8-1f1f0"],fname:"1f1f8-1f1f0",uc:"1f1f8-1f1f0",isCanonical:!1},":flag_sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!0},":sj:":{unicode:["1f1f8-1f1ef"],fname:"1f1f8-1f1ef",uc:"1f1f8-1f1ef",isCanonical:!1},":flag_si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!0},":si:":{unicode:["1f1f8-1f1ee"],fname:"1f1f8-1f1ee",uc:"1f1f8-1f1ee",isCanonical:!1},":flag_sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!0},":sh:":{unicode:["1f1f8-1f1ed"],fname:"1f1f8-1f1ed",uc:"1f1f8-1f1ed",isCanonical:!1},":flag_sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!0},":sg:":{unicode:["1f1f8-1f1ec"],fname:"1f1f8-1f1ec",uc:"1f1f8-1f1ec",isCanonical:!1},":flag_se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!0},":se:":{unicode:["1f1f8-1f1ea"],fname:"1f1f8-1f1ea",uc:"1f1f8-1f1ea",isCanonical:!1},":flag_sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!0},":sd:":{unicode:["1f1f8-1f1e9"],fname:"1f1f8-1f1e9",uc:"1f1f8-1f1e9",isCanonical:!1},":flag_sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!0},":sc:":{unicode:["1f1f8-1f1e8"],fname:"1f1f8-1f1e8",uc:"1f1f8-1f1e8",isCanonical:!1},":flag_sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!0},":sb:":{unicode:["1f1f8-1f1e7"],fname:"1f1f8-1f1e7",uc:"1f1f8-1f1e7",isCanonical:!1},":flag_sa:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!0},":saudiarabia:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":saudi:":{unicode:["1f1f8-1f1e6"],fname:"1f1f8-1f1e6",uc:"1f1f8-1f1e6",isCanonical:!1},":flag_rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!0},":rw:":{unicode:["1f1f7-1f1fc"],fname:"1f1f7-1f1fc",uc:"1f1f7-1f1fc",isCanonical:!1},":flag_ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!0},":ru:":{unicode:["1f1f7-1f1fa"],fname:"1f1f7-1f1fa",uc:"1f1f7-1f1fa",isCanonical:!1},":flag_rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!0},":rs:":{unicode:["1f1f7-1f1f8"],fname:"1f1f7-1f1f8",uc:"1f1f7-1f1f8",isCanonical:!1},":flag_ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!0},":ro:":{unicode:["1f1f7-1f1f4"],fname:"1f1f7-1f1f4",uc:"1f1f7-1f1f4",isCanonical:!1},":flag_re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!0},":re:":{unicode:["1f1f7-1f1ea"],fname:"1f1f7-1f1ea",uc:"1f1f7-1f1ea",isCanonical:!1},":flag_qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!0},":qa:":{unicode:["1f1f6-1f1e6"],fname:"1f1f6-1f1e6",uc:"1f1f6-1f1e6",isCanonical:!1},":flag_py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!0},":py:":{unicode:["1f1f5-1f1fe"],fname:"1f1f5-1f1fe",uc:"1f1f5-1f1fe",isCanonical:!1},":flag_pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!0},":pw:":{unicode:["1f1f5-1f1fc"],fname:"1f1f5-1f1fc",uc:"1f1f5-1f1fc",isCanonical:!1},":flag_pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!0},":pt:":{unicode:["1f1f5-1f1f9"],fname:"1f1f5-1f1f9",uc:"1f1f5-1f1f9",isCanonical:!1},":flag_ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!0},":ps:":{unicode:["1f1f5-1f1f8"],fname:"1f1f5-1f1f8",uc:"1f1f5-1f1f8",isCanonical:!1},":flag_pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!0},":pr:":{unicode:["1f1f5-1f1f7"],fname:"1f1f5-1f1f7",uc:"1f1f5-1f1f7",isCanonical:!1},":flag_pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!0},":pn:":{unicode:["1f1f5-1f1f3"],fname:"1f1f5-1f1f3",uc:"1f1f5-1f1f3",isCanonical:!1},":flag_pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!0},":pm:":{unicode:["1f1f5-1f1f2"],fname:"1f1f5-1f1f2",uc:"1f1f5-1f1f2",isCanonical:!1},":flag_pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!0},":pl:":{unicode:["1f1f5-1f1f1"],fname:"1f1f5-1f1f1",uc:"1f1f5-1f1f1",isCanonical:!1},":flag_pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!0},":pk:":{unicode:["1f1f5-1f1f0"],fname:"1f1f5-1f1f0",uc:"1f1f5-1f1f0",isCanonical:!1},":flag_ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!0},":ph:":{unicode:["1f1f5-1f1ed"],fname:"1f1f5-1f1ed",uc:"1f1f5-1f1ed",isCanonical:!1},":flag_pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!0},":pg:":{unicode:["1f1f5-1f1ec"],fname:"1f1f5-1f1ec",uc:"1f1f5-1f1ec",isCanonical:!1},":flag_pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!0},":pf:":{unicode:["1f1f5-1f1eb"],fname:"1f1f5-1f1eb",uc:"1f1f5-1f1eb",isCanonical:!1},":flag_pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!0},":pe:":{unicode:["1f1f5-1f1ea"],fname:"1f1f5-1f1ea",uc:"1f1f5-1f1ea",isCanonical:!1},":flag_pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!0},":pa:":{unicode:["1f1f5-1f1e6"],fname:"1f1f5-1f1e6",uc:"1f1f5-1f1e6",isCanonical:!1},":flag_om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!0},":om:":{unicode:["1f1f4-1f1f2"],fname:"1f1f4-1f1f2",uc:"1f1f4-1f1f2",isCanonical:!1},":flag_nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!0},":nz:":{unicode:["1f1f3-1f1ff"],fname:"1f1f3-1f1ff",uc:"1f1f3-1f1ff",isCanonical:!1},":flag_nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!0},":nu:":{unicode:["1f1f3-1f1fa"],fname:"1f1f3-1f1fa",uc:"1f1f3-1f1fa",isCanonical:!1},":flag_nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!0},":nr:":{unicode:["1f1f3-1f1f7"],fname:"1f1f3-1f1f7",uc:"1f1f3-1f1f7",isCanonical:!1},":flag_np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!0},":np:":{unicode:["1f1f3-1f1f5"],fname:"1f1f3-1f1f5",uc:"1f1f3-1f1f5",isCanonical:!1},":flag_no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!0},":no:":{unicode:["1f1f3-1f1f4"],fname:"1f1f3-1f1f4",uc:"1f1f3-1f1f4",isCanonical:!1},":flag_nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!0},":nl:":{unicode:["1f1f3-1f1f1"],fname:"1f1f3-1f1f1",uc:"1f1f3-1f1f1",isCanonical:!1},":flag_ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!0},":ni:":{unicode:["1f1f3-1f1ee"],fname:"1f1f3-1f1ee",uc:"1f1f3-1f1ee",isCanonical:!1},":flag_ng:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!0},":nigeria:":{unicode:["1f1f3-1f1ec"],fname:"1f1f3-1f1ec",uc:"1f1f3-1f1ec",isCanonical:!1},":flag_nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!0},":nf:":{unicode:["1f1f3-1f1eb"],fname:"1f1f3-1f1eb",uc:"1f1f3-1f1eb",isCanonical:!1},":flag_ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!0},":ne:":{unicode:["1f1f3-1f1ea"],fname:"1f1f3-1f1ea",uc:"1f1f3-1f1ea",isCanonical:!1},":flag_nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!0},":nc:":{unicode:["1f1f3-1f1e8"],fname:"1f1f3-1f1e8",uc:"1f1f3-1f1e8",isCanonical:!1},":flag_na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!0},":na:":{unicode:["1f1f3-1f1e6"],fname:"1f1f3-1f1e6",uc:"1f1f3-1f1e6",isCanonical:!1},":flag_mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!0},":mz:":{unicode:["1f1f2-1f1ff"],fname:"1f1f2-1f1ff",uc:"1f1f2-1f1ff",isCanonical:!1},":flag_my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!0},":my:":{unicode:["1f1f2-1f1fe"],fname:"1f1f2-1f1fe",uc:"1f1f2-1f1fe",isCanonical:!1},":flag_mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!0},":mx:":{unicode:["1f1f2-1f1fd"],fname:"1f1f2-1f1fd",uc:"1f1f2-1f1fd",isCanonical:!1},":flag_mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!0},":mw:":{unicode:["1f1f2-1f1fc"],fname:"1f1f2-1f1fc",uc:"1f1f2-1f1fc",isCanonical:!1},":flag_mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!0},":mv:":{unicode:["1f1f2-1f1fb"],fname:"1f1f2-1f1fb",uc:"1f1f2-1f1fb",isCanonical:!1},":flag_mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!0},":mu:":{unicode:["1f1f2-1f1fa"],fname:"1f1f2-1f1fa",uc:"1f1f2-1f1fa",isCanonical:!1},":flag_mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!0},":mt:":{unicode:["1f1f2-1f1f9"],fname:"1f1f2-1f1f9",uc:"1f1f2-1f1f9",isCanonical:!1},":flag_ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!0},":ms:":{unicode:["1f1f2-1f1f8"],fname:"1f1f2-1f1f8",uc:"1f1f2-1f1f8",isCanonical:!1},":flag_mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!0},":mr:":{unicode:["1f1f2-1f1f7"],fname:"1f1f2-1f1f7",uc:"1f1f2-1f1f7",isCanonical:!1},":flag_mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!0},":mq:":{unicode:["1f1f2-1f1f6"],fname:"1f1f2-1f1f6",uc:"1f1f2-1f1f6",isCanonical:!1},":flag_mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!0},":mp:":{unicode:["1f1f2-1f1f5"],fname:"1f1f2-1f1f5",uc:"1f1f2-1f1f5",isCanonical:!1},":flag_mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!0},":mo:":{unicode:["1f1f2-1f1f4"],fname:"1f1f2-1f1f4",uc:"1f1f2-1f1f4",isCanonical:!1},":flag_mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!0},":mn:":{unicode:["1f1f2-1f1f3"],fname:"1f1f2-1f1f3",uc:"1f1f2-1f1f3",isCanonical:!1},":flag_mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!0},":mm:":{unicode:["1f1f2-1f1f2"],fname:"1f1f2-1f1f2",uc:"1f1f2-1f1f2",isCanonical:!1},":flag_ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!0},":ml:":{unicode:["1f1f2-1f1f1"],fname:"1f1f2-1f1f1",uc:"1f1f2-1f1f1",isCanonical:!1},":flag_mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!0},":mk:":{unicode:["1f1f2-1f1f0"],fname:"1f1f2-1f1f0",uc:"1f1f2-1f1f0",isCanonical:!1},":flag_mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!0},":mh:":{unicode:["1f1f2-1f1ed"],fname:"1f1f2-1f1ed",uc:"1f1f2-1f1ed",isCanonical:!1},":flag_mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!0},":mg:":{unicode:["1f1f2-1f1ec"],fname:"1f1f2-1f1ec",uc:"1f1f2-1f1ec",isCanonical:!1},":flag_mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!0},":mf:":{unicode:["1f1f2-1f1eb"],fname:"1f1f2-1f1eb",uc:"1f1f2-1f1eb",isCanonical:!1},":flag_me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!0},":me:":{unicode:["1f1f2-1f1ea"],fname:"1f1f2-1f1ea",uc:"1f1f2-1f1ea",isCanonical:!1},":flag_md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!0},":md:":{unicode:["1f1f2-1f1e9"],fname:"1f1f2-1f1e9",uc:"1f1f2-1f1e9",isCanonical:!1},":flag_mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!0},":mc:":{unicode:["1f1f2-1f1e8"],fname:"1f1f2-1f1e8",uc:"1f1f2-1f1e8",isCanonical:!1},":flag_ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!0},":ma:":{unicode:["1f1f2-1f1e6"],fname:"1f1f2-1f1e6",uc:"1f1f2-1f1e6",isCanonical:!1},":flag_ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!0},":ly:":{unicode:["1f1f1-1f1fe"],fname:"1f1f1-1f1fe",uc:"1f1f1-1f1fe",isCanonical:!1},":flag_lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!0},":lv:":{unicode:["1f1f1-1f1fb"],fname:"1f1f1-1f1fb",uc:"1f1f1-1f1fb",isCanonical:!1},":flag_lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!0},":lu:":{unicode:["1f1f1-1f1fa"],fname:"1f1f1-1f1fa",uc:"1f1f1-1f1fa",isCanonical:!1},":flag_lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!0},":lt:":{unicode:["1f1f1-1f1f9"],fname:"1f1f1-1f1f9",uc:"1f1f1-1f1f9",isCanonical:!1},":flag_ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!0},":ls:":{unicode:["1f1f1-1f1f8"],fname:"1f1f1-1f1f8",uc:"1f1f1-1f1f8",isCanonical:!1},":flag_lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!0},":lr:":{unicode:["1f1f1-1f1f7"],fname:"1f1f1-1f1f7",uc:"1f1f1-1f1f7",isCanonical:!1},":flag_lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!0},":lk:":{unicode:["1f1f1-1f1f0"],fname:"1f1f1-1f1f0",uc:"1f1f1-1f1f0",isCanonical:!1},":flag_li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!0},":li:":{unicode:["1f1f1-1f1ee"],fname:"1f1f1-1f1ee",uc:"1f1f1-1f1ee",isCanonical:!1},":flag_lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!0},":lc:":{unicode:["1f1f1-1f1e8"],fname:"1f1f1-1f1e8",uc:"1f1f1-1f1e8",isCanonical:!1},":flag_lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!0},":lb:":{unicode:["1f1f1-1f1e7"],fname:"1f1f1-1f1e7",uc:"1f1f1-1f1e7",isCanonical:!1},":flag_la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!0},":la:":{unicode:["1f1f1-1f1e6"],fname:"1f1f1-1f1e6",uc:"1f1f1-1f1e6",isCanonical:!1},":flag_kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!0},":kz:":{unicode:["1f1f0-1f1ff"],fname:"1f1f0-1f1ff",uc:"1f1f0-1f1ff",isCanonical:!1},":flag_ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!0},":ky:":{unicode:["1f1f0-1f1fe"],fname:"1f1f0-1f1fe",uc:"1f1f0-1f1fe",isCanonical:!1},":flag_kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!0},":kw:":{unicode:["1f1f0-1f1fc"],fname:"1f1f0-1f1fc",uc:"1f1f0-1f1fc",isCanonical:!1},":flag_kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!0},":kr:":{unicode:["1f1f0-1f1f7"],fname:"1f1f0-1f1f7",uc:"1f1f0-1f1f7",isCanonical:!1},":flag_kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!0},":kp:":{unicode:["1f1f0-1f1f5"],fname:"1f1f0-1f1f5",uc:"1f1f0-1f1f5",isCanonical:!1},":flag_kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!0},":kn:":{unicode:["1f1f0-1f1f3"],fname:"1f1f0-1f1f3",uc:"1f1f0-1f1f3",isCanonical:!1},":flag_km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!0},":km:":{unicode:["1f1f0-1f1f2"],fname:"1f1f0-1f1f2",uc:"1f1f0-1f1f2",isCanonical:!1},":flag_ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!0},":ki:":{unicode:["1f1f0-1f1ee"],fname:"1f1f0-1f1ee",uc:"1f1f0-1f1ee",isCanonical:!1},":flag_kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!0},":kh:":{unicode:["1f1f0-1f1ed"],fname:"1f1f0-1f1ed",uc:"1f1f0-1f1ed",isCanonical:!1},":flag_kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!0},":kg:":{unicode:["1f1f0-1f1ec"],fname:"1f1f0-1f1ec",uc:"1f1f0-1f1ec",isCanonical:!1},":flag_ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!0},":ke:":{unicode:["1f1f0-1f1ea"],fname:"1f1f0-1f1ea",uc:"1f1f0-1f1ea",isCanonical:!1},":flag_jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!0},":jp:":{unicode:["1f1ef-1f1f5"],fname:"1f1ef-1f1f5",uc:"1f1ef-1f1f5",isCanonical:!1},":flag_jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!0},":jo:":{unicode:["1f1ef-1f1f4"],fname:"1f1ef-1f1f4",uc:"1f1ef-1f1f4",isCanonical:!1},":flag_jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!0},":jm:":{unicode:["1f1ef-1f1f2"],fname:"1f1ef-1f1f2",uc:"1f1ef-1f1f2",isCanonical:!1},":flag_je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!0},":je:":{unicode:["1f1ef-1f1ea"],fname:"1f1ef-1f1ea",uc:"1f1ef-1f1ea",isCanonical:!1},":flag_it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!0},":it:":{unicode:["1f1ee-1f1f9"],fname:"1f1ee-1f1f9",uc:"1f1ee-1f1f9",isCanonical:!1},":flag_is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!0},":is:":{unicode:["1f1ee-1f1f8"],fname:"1f1ee-1f1f8",uc:"1f1ee-1f1f8",isCanonical:!1},":flag_ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!0},":ir:":{unicode:["1f1ee-1f1f7"],fname:"1f1ee-1f1f7",uc:"1f1ee-1f1f7",isCanonical:!1},":flag_iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!0},":iq:":{unicode:["1f1ee-1f1f6"],fname:"1f1ee-1f1f6",uc:"1f1ee-1f1f6",isCanonical:!1},":flag_io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!0},":io:":{unicode:["1f1ee-1f1f4"],fname:"1f1ee-1f1f4",uc:"1f1ee-1f1f4",isCanonical:!1},":flag_in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!0},":in:":{unicode:["1f1ee-1f1f3"],fname:"1f1ee-1f1f3",uc:"1f1ee-1f1f3",isCanonical:!1},":flag_im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!0},":im:":{unicode:["1f1ee-1f1f2"],fname:"1f1ee-1f1f2",uc:"1f1ee-1f1f2",isCanonical:!1},":flag_il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!0},":il:":{unicode:["1f1ee-1f1f1"],fname:"1f1ee-1f1f1",uc:"1f1ee-1f1f1",isCanonical:!1},":flag_ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!0},":ie:":{unicode:["1f1ee-1f1ea"],fname:"1f1ee-1f1ea",uc:"1f1ee-1f1ea",isCanonical:!1},":flag_id:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!0},":indonesia:":{unicode:["1f1ee-1f1e9"],fname:"1f1ee-1f1e9",uc:"1f1ee-1f1e9",isCanonical:!1},":flag_ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!0},":ic:":{unicode:["1f1ee-1f1e8"],fname:"1f1ee-1f1e8",uc:"1f1ee-1f1e8",isCanonical:!1},":flag_hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!0},":hu:":{unicode:["1f1ed-1f1fa"],fname:"1f1ed-1f1fa",uc:"1f1ed-1f1fa",isCanonical:!1},":flag_ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!0},":ht:":{unicode:["1f1ed-1f1f9"],fname:"1f1ed-1f1f9",uc:"1f1ed-1f1f9",isCanonical:!1},":flag_hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!0},":hr:":{unicode:["1f1ed-1f1f7"],fname:"1f1ed-1f1f7",uc:"1f1ed-1f1f7",isCanonical:!1},":flag_hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!0},":hn:":{unicode:["1f1ed-1f1f3"],fname:"1f1ed-1f1f3",uc:"1f1ed-1f1f3",isCanonical:!1},":flag_hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",uc:"1f1ed-1f1f2",isCanonical:!0},":hm:":{unicode:["1f1ed-1f1f2"],fname:"1f1ed-1f1f2",
+uc:"1f1ed-1f1f2",isCanonical:!1},":flag_hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!0},":hk:":{unicode:["1f1ed-1f1f0"],fname:"1f1ed-1f1f0",uc:"1f1ed-1f1f0",isCanonical:!1},":flag_gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!0},":gy:":{unicode:["1f1ec-1f1fe"],fname:"1f1ec-1f1fe",uc:"1f1ec-1f1fe",isCanonical:!1},":flag_gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!0},":gw:":{unicode:["1f1ec-1f1fc"],fname:"1f1ec-1f1fc",uc:"1f1ec-1f1fc",isCanonical:!1},":flag_gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!0},":gu:":{unicode:["1f1ec-1f1fa"],fname:"1f1ec-1f1fa",uc:"1f1ec-1f1fa",isCanonical:!1},":flag_gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!0},":gt:":{unicode:["1f1ec-1f1f9"],fname:"1f1ec-1f1f9",uc:"1f1ec-1f1f9",isCanonical:!1},":flag_gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!0},":gs:":{unicode:["1f1ec-1f1f8"],fname:"1f1ec-1f1f8",uc:"1f1ec-1f1f8",isCanonical:!1},":flag_gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!0},":gr:":{unicode:["1f1ec-1f1f7"],fname:"1f1ec-1f1f7",uc:"1f1ec-1f1f7",isCanonical:!1},":flag_gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!0},":gq:":{unicode:["1f1ec-1f1f6"],fname:"1f1ec-1f1f6",uc:"1f1ec-1f1f6",isCanonical:!1},":flag_gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!0},":gp:":{unicode:["1f1ec-1f1f5"],fname:"1f1ec-1f1f5",uc:"1f1ec-1f1f5",isCanonical:!1},":flag_gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!0},":gn:":{unicode:["1f1ec-1f1f3"],fname:"1f1ec-1f1f3",uc:"1f1ec-1f1f3",isCanonical:!1},":flag_gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!0},":gm:":{unicode:["1f1ec-1f1f2"],fname:"1f1ec-1f1f2",uc:"1f1ec-1f1f2",isCanonical:!1},":flag_gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!0},":gl:":{unicode:["1f1ec-1f1f1"],fname:"1f1ec-1f1f1",uc:"1f1ec-1f1f1",isCanonical:!1},":flag_gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!0},":gi:":{unicode:["1f1ec-1f1ee"],fname:"1f1ec-1f1ee",uc:"1f1ec-1f1ee",isCanonical:!1},":flag_gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!0},":gh:":{unicode:["1f1ec-1f1ed"],fname:"1f1ec-1f1ed",uc:"1f1ec-1f1ed",isCanonical:!1},":flag_gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!0},":gg:":{unicode:["1f1ec-1f1ec"],fname:"1f1ec-1f1ec",uc:"1f1ec-1f1ec",isCanonical:!1},":flag_gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!0},":gf:":{unicode:["1f1ec-1f1eb"],fname:"1f1ec-1f1eb",uc:"1f1ec-1f1eb",isCanonical:!1},":flag_ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!0},":ge:":{unicode:["1f1ec-1f1ea"],fname:"1f1ec-1f1ea",uc:"1f1ec-1f1ea",isCanonical:!1},":flag_gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!0},":gd:":{unicode:["1f1ec-1f1e9"],fname:"1f1ec-1f1e9",uc:"1f1ec-1f1e9",isCanonical:!1},":flag_gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!0},":gb:":{unicode:["1f1ec-1f1e7"],fname:"1f1ec-1f1e7",uc:"1f1ec-1f1e7",isCanonical:!1},":flag_ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!0},":ga:":{unicode:["1f1ec-1f1e6"],fname:"1f1ec-1f1e6",uc:"1f1ec-1f1e6",isCanonical:!1},":flag_fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!0},":fr:":{unicode:["1f1eb-1f1f7"],fname:"1f1eb-1f1f7",uc:"1f1eb-1f1f7",isCanonical:!1},":flag_fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!0},":fo:":{unicode:["1f1eb-1f1f4"],fname:"1f1eb-1f1f4",uc:"1f1eb-1f1f4",isCanonical:!1},":flag_fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!0},":fm:":{unicode:["1f1eb-1f1f2"],fname:"1f1eb-1f1f2",uc:"1f1eb-1f1f2",isCanonical:!1},":flag_fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!0},":fk:":{unicode:["1f1eb-1f1f0"],fname:"1f1eb-1f1f0",uc:"1f1eb-1f1f0",isCanonical:!1},":flag_fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!0},":fj:":{unicode:["1f1eb-1f1ef"],fname:"1f1eb-1f1ef",uc:"1f1eb-1f1ef",isCanonical:!1},":flag_fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!0},":fi:":{unicode:["1f1eb-1f1ee"],fname:"1f1eb-1f1ee",uc:"1f1eb-1f1ee",isCanonical:!1},":flag_eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!0},":eu:":{unicode:["1f1ea-1f1fa"],fname:"1f1ea-1f1fa",uc:"1f1ea-1f1fa",isCanonical:!1},":flag_et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!0},":et:":{unicode:["1f1ea-1f1f9"],fname:"1f1ea-1f1f9",uc:"1f1ea-1f1f9",isCanonical:!1},":flag_es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!0},":es:":{unicode:["1f1ea-1f1f8"],fname:"1f1ea-1f1f8",uc:"1f1ea-1f1f8",isCanonical:!1},":flag_er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!0},":er:":{unicode:["1f1ea-1f1f7"],fname:"1f1ea-1f1f7",uc:"1f1ea-1f1f7",isCanonical:!1},":flag_eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!0},":eh:":{unicode:["1f1ea-1f1ed"],fname:"1f1ea-1f1ed",uc:"1f1ea-1f1ed",isCanonical:!1},":flag_eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!0},":eg:":{unicode:["1f1ea-1f1ec"],fname:"1f1ea-1f1ec",uc:"1f1ea-1f1ec",isCanonical:!1},":flag_ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!0},":ee:":{unicode:["1f1ea-1f1ea"],fname:"1f1ea-1f1ea",uc:"1f1ea-1f1ea",isCanonical:!1},":flag_ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!0},":ec:":{unicode:["1f1ea-1f1e8"],fname:"1f1ea-1f1e8",uc:"1f1ea-1f1e8",isCanonical:!1},":flag_ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!0},":ea:":{unicode:["1f1ea-1f1e6"],fname:"1f1ea-1f1e6",uc:"1f1ea-1f1e6",isCanonical:!1},":flag_dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!0},":dz:":{unicode:["1f1e9-1f1ff"],fname:"1f1e9-1f1ff",uc:"1f1e9-1f1ff",isCanonical:!1},":flag_do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!0},":do:":{unicode:["1f1e9-1f1f4"],fname:"1f1e9-1f1f4",uc:"1f1e9-1f1f4",isCanonical:!1},":flag_dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!0},":dm:":{unicode:["1f1e9-1f1f2"],fname:"1f1e9-1f1f2",uc:"1f1e9-1f1f2",isCanonical:!1},":flag_dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!0},":dk:":{unicode:["1f1e9-1f1f0"],fname:"1f1e9-1f1f0",uc:"1f1e9-1f1f0",isCanonical:!1},":flag_dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!0},":dj:":{unicode:["1f1e9-1f1ef"],fname:"1f1e9-1f1ef",uc:"1f1e9-1f1ef",isCanonical:!1},":flag_dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!0},":dg:":{unicode:["1f1e9-1f1ec"],fname:"1f1e9-1f1ec",uc:"1f1e9-1f1ec",isCanonical:!1},":flag_de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!0},":de:":{unicode:["1f1e9-1f1ea"],fname:"1f1e9-1f1ea",uc:"1f1e9-1f1ea",isCanonical:!1},":flag_cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!0},":cz:":{unicode:["1f1e8-1f1ff"],fname:"1f1e8-1f1ff",uc:"1f1e8-1f1ff",isCanonical:!1},":flag_cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!0},":cy:":{unicode:["1f1e8-1f1fe"],fname:"1f1e8-1f1fe",uc:"1f1e8-1f1fe",isCanonical:!1},":flag_cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!0},":cx:":{unicode:["1f1e8-1f1fd"],fname:"1f1e8-1f1fd",uc:"1f1e8-1f1fd",isCanonical:!1},":flag_cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!0},":cw:":{unicode:["1f1e8-1f1fc"],fname:"1f1e8-1f1fc",uc:"1f1e8-1f1fc",isCanonical:!1},":flag_cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!0},":cv:":{unicode:["1f1e8-1f1fb"],fname:"1f1e8-1f1fb",uc:"1f1e8-1f1fb",isCanonical:!1},":flag_cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!0},":cu:":{unicode:["1f1e8-1f1fa"],fname:"1f1e8-1f1fa",uc:"1f1e8-1f1fa",isCanonical:!1},":flag_cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!0},":cr:":{unicode:["1f1e8-1f1f7"],fname:"1f1e8-1f1f7",uc:"1f1e8-1f1f7",isCanonical:!1},":flag_cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!0},":cp:":{unicode:["1f1e8-1f1f5"],fname:"1f1e8-1f1f5",uc:"1f1e8-1f1f5",isCanonical:!1},":flag_co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!0},":co:":{unicode:["1f1e8-1f1f4"],fname:"1f1e8-1f1f4",uc:"1f1e8-1f1f4",isCanonical:!1},":flag_cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!0},":cn:":{unicode:["1f1e8-1f1f3"],fname:"1f1e8-1f1f3",uc:"1f1e8-1f1f3",isCanonical:!1},":flag_cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!0},":cm:":{unicode:["1f1e8-1f1f2"],fname:"1f1e8-1f1f2",uc:"1f1e8-1f1f2",isCanonical:!1},":flag_cl:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!0},":chile:":{unicode:["1f1e8-1f1f1"],fname:"1f1e8-1f1f1",uc:"1f1e8-1f1f1",isCanonical:!1},":flag_ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!0},":ck:":{unicode:["1f1e8-1f1f0"],fname:"1f1e8-1f1f0",uc:"1f1e8-1f1f0",isCanonical:!1},":flag_ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!0},":ci:":{unicode:["1f1e8-1f1ee"],fname:"1f1e8-1f1ee",uc:"1f1e8-1f1ee",isCanonical:!1},":flag_ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!0},":ch:":{unicode:["1f1e8-1f1ed"],fname:"1f1e8-1f1ed",uc:"1f1e8-1f1ed",isCanonical:!1},":flag_cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!0},":cg:":{unicode:["1f1e8-1f1ec"],fname:"1f1e8-1f1ec",uc:"1f1e8-1f1ec",isCanonical:!1},":flag_cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!0},":cf:":{unicode:["1f1e8-1f1eb"],fname:"1f1e8-1f1eb",uc:"1f1e8-1f1eb",isCanonical:!1},":flag_cd:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!0},":congo:":{unicode:["1f1e8-1f1e9"],fname:"1f1e8-1f1e9",uc:"1f1e8-1f1e9",isCanonical:!1},":flag_cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!0},":cc:":{unicode:["1f1e8-1f1e8"],fname:"1f1e8-1f1e8",uc:"1f1e8-1f1e8",isCanonical:!1},":flag_ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!0},":ca:":{unicode:["1f1e8-1f1e6"],fname:"1f1e8-1f1e6",uc:"1f1e8-1f1e6",isCanonical:!1},":flag_bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!0},":bz:":{unicode:["1f1e7-1f1ff"],fname:"1f1e7-1f1ff",uc:"1f1e7-1f1ff",isCanonical:!1},":flag_by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!0},":by:":{unicode:["1f1e7-1f1fe"],fname:"1f1e7-1f1fe",uc:"1f1e7-1f1fe",isCanonical:!1},":flag_bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!0},":bw:":{unicode:["1f1e7-1f1fc"],fname:"1f1e7-1f1fc",uc:"1f1e7-1f1fc",isCanonical:!1},":flag_bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",uc:"1f1e7-1f1fb",isCanonical:!0},":bv:":{unicode:["1f1e7-1f1fb"],fname:"1f1e7-1f1fb",uc:"1f1e7-1f1fb",isCanonical:!1},":flag_bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!0},":bt:":{unicode:["1f1e7-1f1f9"],fname:"1f1e7-1f1f9",uc:"1f1e7-1f1f9",isCanonical:!1},":flag_bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!0},":bs:":{unicode:["1f1e7-1f1f8"],fname:"1f1e7-1f1f8",uc:"1f1e7-1f1f8",isCanonical:!1},":flag_br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!0},":br:":{unicode:["1f1e7-1f1f7"],fname:"1f1e7-1f1f7",uc:"1f1e7-1f1f7",isCanonical:!1},":flag_bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!0},":bq:":{unicode:["1f1e7-1f1f6"],fname:"1f1e7-1f1f6",uc:"1f1e7-1f1f6",isCanonical:!1},":flag_bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!0},":bo:":{unicode:["1f1e7-1f1f4"],fname:"1f1e7-1f1f4",uc:"1f1e7-1f1f4",isCanonical:!1},":flag_bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!0},":bn:":{unicode:["1f1e7-1f1f3"],fname:"1f1e7-1f1f3",uc:"1f1e7-1f1f3",isCanonical:!1},":flag_bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!0},":bm:":{unicode:["1f1e7-1f1f2"],fname:"1f1e7-1f1f2",uc:"1f1e7-1f1f2",isCanonical:!1},":flag_bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!0},":bl:":{unicode:["1f1e7-1f1f1"],fname:"1f1e7-1f1f1",uc:"1f1e7-1f1f1",isCanonical:!1},":flag_bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!0},":bj:":{unicode:["1f1e7-1f1ef"],fname:"1f1e7-1f1ef",uc:"1f1e7-1f1ef",isCanonical:!1},":flag_bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!0},":bi:":{unicode:["1f1e7-1f1ee"],fname:"1f1e7-1f1ee",uc:"1f1e7-1f1ee",isCanonical:!1},":flag_bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!0},":bh:":{unicode:["1f1e7-1f1ed"],fname:"1f1e7-1f1ed",uc:"1f1e7-1f1ed",isCanonical:!1},":flag_bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!0},":bg:":{unicode:["1f1e7-1f1ec"],fname:"1f1e7-1f1ec",uc:"1f1e7-1f1ec",isCanonical:!1},":flag_bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!0},":bf:":{unicode:["1f1e7-1f1eb"],fname:"1f1e7-1f1eb",uc:"1f1e7-1f1eb",isCanonical:!1},":flag_be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!0},":be:":{unicode:["1f1e7-1f1ea"],fname:"1f1e7-1f1ea",uc:"1f1e7-1f1ea",isCanonical:!1},":flag_bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!0},":bd:":{unicode:["1f1e7-1f1e9"],fname:"1f1e7-1f1e9",uc:"1f1e7-1f1e9",isCanonical:!1},":flag_bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!0},":bb:":{unicode:["1f1e7-1f1e7"],fname:"1f1e7-1f1e7",uc:"1f1e7-1f1e7",isCanonical:!1},":flag_ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!0},":ba:":{unicode:["1f1e7-1f1e6"],fname:"1f1e7-1f1e6",uc:"1f1e7-1f1e6",isCanonical:!1},":flag_az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!0},":az:":{unicode:["1f1e6-1f1ff"],fname:"1f1e6-1f1ff",uc:"1f1e6-1f1ff",isCanonical:!1},":flag_ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!0},":ax:":{unicode:["1f1e6-1f1fd"],fname:"1f1e6-1f1fd",uc:"1f1e6-1f1fd",isCanonical:!1},":flag_aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!0},":aw:":{unicode:["1f1e6-1f1fc"],fname:"1f1e6-1f1fc",uc:"1f1e6-1f1fc",isCanonical:!1},":flag_au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!0},":au:":{unicode:["1f1e6-1f1fa"],fname:"1f1e6-1f1fa",uc:"1f1e6-1f1fa",isCanonical:!1},":flag_at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!0},":at:":{unicode:["1f1e6-1f1f9"],fname:"1f1e6-1f1f9",uc:"1f1e6-1f1f9",isCanonical:!1},":flag_as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!0},":as:":{unicode:["1f1e6-1f1f8"],fname:"1f1e6-1f1f8",uc:"1f1e6-1f1f8",isCanonical:!1},":flag_ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!0},":ar:":{unicode:["1f1e6-1f1f7"],fname:"1f1e6-1f1f7",uc:"1f1e6-1f1f7",isCanonical:!1},":flag_aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!0},":aq:":{unicode:["1f1e6-1f1f6"],fname:"1f1e6-1f1f6",uc:"1f1e6-1f1f6",isCanonical:!1},":flag_ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!0},":ao:":{unicode:["1f1e6-1f1f4"],fname:"1f1e6-1f1f4",uc:"1f1e6-1f1f4",isCanonical:!1},":flag_am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!0},":am:":{unicode:["1f1e6-1f1f2"],fname:"1f1e6-1f1f2",uc:"1f1e6-1f1f2",isCanonical:!1},":flag_al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!0},":al:":{unicode:["1f1e6-1f1f1"],fname:"1f1e6-1f1f1",uc:"1f1e6-1f1f1",isCanonical:!1},":flag_ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!0},":ai:":{unicode:["1f1e6-1f1ee"],fname:"1f1e6-1f1ee",uc:"1f1e6-1f1ee",isCanonical:!1},":flag_ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!0},":ag:":{unicode:["1f1e6-1f1ec"],fname:"1f1e6-1f1ec",uc:"1f1e6-1f1ec",isCanonical:!1},":flag_af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!0},":af:":{unicode:["1f1e6-1f1eb"],fname:"1f1e6-1f1eb",uc:"1f1e6-1f1eb",isCanonical:!1},":flag_ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!0},":ae:":{unicode:["1f1e6-1f1ea"],fname:"1f1e6-1f1ea",uc:"1f1e6-1f1ea",isCanonical:!1},":flag_ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!0},":ad:":{unicode:["1f1e6-1f1e9"],fname:"1f1e6-1f1e9",uc:"1f1e6-1f1e9",isCanonical:!1},":flag_ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!0},":ac:":{unicode:["1f1e6-1f1e8"],fname:"1f1e6-1f1e8",uc:"1f1e6-1f1e8",isCanonical:!1},":mahjong:":{unicode:["1f004-fe0f","1f004"],fname:"1f004",uc:"1f004",isCanonical:!0},":parking:":{unicode:["1f17f-fe0f","1f17f"],fname:"1f17f",uc:"1f17f",isCanonical:!0},":sa:":{unicode:["1f202-fe0f","1f202"],fname:"1f202",uc:"1f202",isCanonical:!0},":u7121:":{unicode:["1f21a-fe0f","1f21a"],fname:"1f21a",uc:"1f21a",isCanonical:!0},":u6307:":{unicode:["1f22f-fe0f","1f22f"],fname:"1f22f",uc:"1f22f",isCanonical:!0},":u6708:":{unicode:["1f237-fe0f","1f237"],fname:"1f237",uc:"1f237",isCanonical:!0},":film_frames:":{unicode:["1f39e-fe0f","1f39e"],fname:"1f39e",uc:"1f39e",isCanonical:!0},":tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!0},":admission_tickets:":{unicode:["1f39f-fe0f","1f39f"],fname:"1f39f",uc:"1f39f",isCanonical:!1},":lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!0},":weight_lifter:":{unicode:["1f3cb-fe0f","1f3cb"],fname:"1f3cb",uc:"1f3cb",isCanonical:!1},":golfer:":{unicode:["1f3cc-fe0f","1f3cc"],fname:"1f3cc",uc:"1f3cc",isCanonical:!0},":motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!0},":racing_motorcycle:":{unicode:["1f3cd-fe0f","1f3cd"],fname:"1f3cd",uc:"1f3cd",isCanonical:!1},":race_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!0},":racing_car:":{unicode:["1f3ce-fe0f","1f3ce"],fname:"1f3ce",uc:"1f3ce",isCanonical:!1},":military_medal:":{unicode:["1f396-fe0f","1f396"],fname:"1f396",uc:"1f396",isCanonical:!0},":reminder_ribbon:":{unicode:["1f397-fe0f","1f397"],fname:"1f397",uc:"1f397",isCanonical:!0},":hot_pepper:":{unicode:["1f336-fe0f","1f336"],fname:"1f336",uc:"1f336",isCanonical:!0},":cloud_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!0},":cloud_with_rain:":{unicode:["1f327-fe0f","1f327"],fname:"1f327",uc:"1f327",isCanonical:!1},":cloud_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!0},":cloud_with_snow:":{unicode:["1f328-fe0f","1f328"],fname:"1f328",uc:"1f328",isCanonical:!1},":cloud_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!0},":cloud_with_lightning:":{unicode:["1f329-fe0f","1f329"],fname:"1f329",uc:"1f329",isCanonical:!1},":cloud_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!0},":cloud_with_tornado:":{unicode:["1f32a-fe0f","1f32a"],fname:"1f32a",uc:"1f32a",isCanonical:!1},":fog:":{unicode:["1f32b-fe0f","1f32b"],fname:"1f32b",uc:"1f32b",isCanonical:!0},":wind_blowing_face:":{unicode:["1f32c-fe0f","1f32c"],fname:"1f32c",uc:"1f32c",isCanonical:!0},":chipmunk:":{unicode:["1f43f-fe0f","1f43f"],fname:"1f43f",uc:"1f43f",isCanonical:!0},":spider:":{unicode:["1f577-fe0f","1f577"],fname:"1f577",uc:"1f577",isCanonical:!0},":spider_web:":{unicode:["1f578-fe0f","1f578"],fname:"1f578",uc:"1f578",isCanonical:!0},":thermometer:":{unicode:["1f321-fe0f","1f321"],fname:"1f321",uc:"1f321",isCanonical:!0},":microphone2:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!0},":studio_microphone:":{unicode:["1f399-fe0f","1f399"],fname:"1f399",uc:"1f399",isCanonical:!1},":level_slider:":{unicode:["1f39a-fe0f","1f39a"],fname:"1f39a",uc:"1f39a",isCanonical:!0},":control_knobs:":{unicode:["1f39b-fe0f","1f39b"],fname:"1f39b",uc:"1f39b",isCanonical:!0},":flag_white:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!0},":waving_white_flag:":{unicode:["1f3f3-fe0f","1f3f3"],fname:"1f3f3",uc:"1f3f3",isCanonical:!1},":rosette:":{unicode:["1f3f5-fe0f","1f3f5"],fname:"1f3f5",uc:"1f3f5",isCanonical:!0},":label:":{unicode:["1f3f7-fe0f","1f3f7"],fname:"1f3f7",uc:"1f3f7",isCanonical:!0},":projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!0},":film_projector:":{unicode:["1f4fd-fe0f","1f4fd"],fname:"1f4fd",uc:"1f4fd",isCanonical:!1},":om_symbol:":{unicode:["1f549-fe0f","1f549"],fname:"1f549",uc:"1f549",isCanonical:!0},":dove:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!0},":dove_of_peace:":{unicode:["1f54a-fe0f","1f54a"],fname:"1f54a",uc:"1f54a",isCanonical:!1},":candle:":{unicode:["1f56f-fe0f","1f56f"],fname:"1f56f",uc:"1f56f",isCanonical:!0},":clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!0},":mantlepiece_clock:":{unicode:["1f570-fe0f","1f570"],fname:"1f570",uc:"1f570",isCanonical:!1},":hole:":{unicode:["1f573-fe0f","1f573"],fname:"1f573",uc:"1f573",isCanonical:!0},":dark_sunglasses:":{unicode:["1f576-fe0f","1f576"],fname:"1f576",uc:"1f576",isCanonical:!0},":joystick:":{unicode:["1f579-fe0f","1f579"],fname:"1f579",uc:"1f579",isCanonical:!0},":paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!0},":linked_paperclips:":{unicode:["1f587-fe0f","1f587"],fname:"1f587",uc:"1f587",isCanonical:!1},":pen_ballpoint:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!0},":lower_left_ballpoint_pen:":{unicode:["1f58a-fe0f","1f58a"],fname:"1f58a",uc:"1f58a",isCanonical:!1},":pen_fountain:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!0},":lower_left_fountain_pen:":{unicode:["1f58b-fe0f","1f58b"],fname:"1f58b",uc:"1f58b",isCanonical:!1},":paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!0},":lower_left_paintbrush:":{unicode:["1f58c-fe0f","1f58c"],fname:"1f58c",uc:"1f58c",isCanonical:!1},":crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!0},":lower_left_crayon:":{unicode:["1f58d-fe0f","1f58d"],fname:"1f58d",uc:"1f58d",isCanonical:!1},":desktop:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!0},":desktop_computer:":{unicode:["1f5a5-fe0f","1f5a5"],fname:"1f5a5",uc:"1f5a5",isCanonical:!1},":printer:":{unicode:["1f5a8-fe0f","1f5a8"],fname:"1f5a8",uc:"1f5a8",isCanonical:!0},":trackball:":{unicode:["1f5b2-fe0f","1f5b2"],fname:"1f5b2",uc:"1f5b2",isCanonical:!0},":frame_photo:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!0},":frame_with_picture:":{unicode:["1f5bc-fe0f","1f5bc"],fname:"1f5bc",uc:"1f5bc",isCanonical:!1},":dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!0},":card_index_dividers:":{unicode:["1f5c2-fe0f","1f5c2"],fname:"1f5c2",uc:"1f5c2",isCanonical:!1},":card_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!0},":card_file_box:":{unicode:["1f5c3-fe0f","1f5c3"],fname:"1f5c3",uc:"1f5c3",isCanonical:!1},":file_cabinet:":{unicode:["1f5c4-fe0f","1f5c4"],fname:"1f5c4",uc:"1f5c4",isCanonical:!0},":wastebasket:":{unicode:["1f5d1-fe0f","1f5d1"],fname:"1f5d1",uc:"1f5d1",isCanonical:!0},":notepad_spiral:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!0},":spiral_note_pad:":{unicode:["1f5d2-fe0f","1f5d2"],fname:"1f5d2",uc:"1f5d2",isCanonical:!1},":calendar_spiral:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!0},":spiral_calendar_pad:":{unicode:["1f5d3-fe0f","1f5d3"],fname:"1f5d3",uc:"1f5d3",isCanonical:!1},":compression:":{unicode:["1f5dc-fe0f","1f5dc"],fname:"1f5dc",uc:"1f5dc",isCanonical:!0},":key2:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!0},":old_key:":{unicode:["1f5dd-fe0f","1f5dd"],fname:"1f5dd",uc:"1f5dd",isCanonical:!1},":newspaper2:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!0},":rolled_up_newspaper:":{unicode:["1f5de-fe0f","1f5de"],fname:"1f5de",uc:"1f5de",isCanonical:!1},":dagger:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!0},":dagger_knife:":{unicode:["1f5e1-fe0f","1f5e1"],fname:"1f5e1",uc:"1f5e1",isCanonical:!1},":speaking_head:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!0},":speaking_head_in_silhouette:":{unicode:["1f5e3-fe0f","1f5e3"],fname:"1f5e3",uc:"1f5e3",isCanonical:!1},":speech_left:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!0},":left_speech_bubble:":{unicode:["1f5e8-fe0f","1f5e8"],fname:"1f5e8",uc:"1f5e8",isCanonical:!1},":anger_right:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!0},":right_anger_bubble:":{unicode:["1f5ef-fe0f","1f5ef"],fname:"1f5ef",uc:"1f5ef",isCanonical:!1},":ballot_box:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!0},":ballot_box_with_ballot:":{unicode:["1f5f3-fe0f","1f5f3"],fname:"1f5f3",uc:"1f5f3",isCanonical:!1},":map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!0},":world_map:":{unicode:["1f5fa-fe0f","1f5fa"],fname:"1f5fa",uc:"1f5fa",isCanonical:!1},":tools:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!0},":hammer_and_wrench:":{unicode:["1f6e0-fe0f","1f6e0"],fname:"1f6e0",uc:"1f6e0",isCanonical:!1},":shield:":{unicode:["1f6e1-fe0f","1f6e1"],fname:"1f6e1",uc:"1f6e1",isCanonical:!0},":oil:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!0},":oil_drum:":{unicode:["1f6e2-fe0f","1f6e2"],fname:"1f6e2",uc:"1f6e2",isCanonical:!1},":satellite_orbital:":{unicode:["1f6f0-fe0f","1f6f0"],fname:"1f6f0",uc:"1f6f0",isCanonical:!0},":fork_knife_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!0},":fork_and_knife_with_plate:":{unicode:["1f37d-fe0f","1f37d"],fname:"1f37d",uc:"1f37d",isCanonical:!1},":eye:":{unicode:["1f441-fe0f","1f441"],fname:"1f441",uc:"1f441",isCanonical:!0},":levitate:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!0},":man_in_business_suit_levitating:":{unicode:["1f574-fe0f","1f574"],fname:"1f574",uc:"1f574",isCanonical:!1},":spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!0},":sleuth_or_spy:":{unicode:["1f575-fe0f","1f575"],fname:"1f575",uc:"1f575",isCanonical:!1},":hand_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!0},":raised_hand_with_fingers_splayed:":{unicode:["1f590-fe0f","1f590"],fname:"1f590",uc:"1f590",isCanonical:!1},":mountain_snow:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!0},":snow_capped_mountain:":{unicode:["1f3d4-fe0f","1f3d4"],fname:"1f3d4",uc:"1f3d4",isCanonical:!1},":camping:":{unicode:["1f3d5-fe0f","1f3d5"],fname:"1f3d5",uc:"1f3d5",isCanonical:!0},":beach:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!0},":beach_with_umbrella:":{unicode:["1f3d6-fe0f","1f3d6"],fname:"1f3d6",uc:"1f3d6",isCanonical:!1},":construction_site:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!0},":building_construction:":{unicode:["1f3d7-fe0f","1f3d7"],fname:"1f3d7",uc:"1f3d7",isCanonical:!1},":homes:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!0},":house_buildings:":{unicode:["1f3d8-fe0f","1f3d8"],fname:"1f3d8",uc:"1f3d8",isCanonical:!1},":cityscape:":{unicode:["1f3d9-fe0f","1f3d9"],fname:"1f3d9",uc:"1f3d9",isCanonical:!0},":house_abandoned:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!0},":derelict_house_building:":{unicode:["1f3da-fe0f","1f3da"],fname:"1f3da",uc:"1f3da",isCanonical:!1},":classical_building:":{unicode:["1f3db-fe0f","1f3db"],fname:"1f3db",uc:"1f3db",isCanonical:!0},":desert:":{unicode:["1f3dc-fe0f","1f3dc"],fname:"1f3dc",uc:"1f3dc",isCanonical:!0},":island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!0},":desert_island:":{unicode:["1f3dd-fe0f","1f3dd"],fname:"1f3dd",uc:"1f3dd",isCanonical:!1},":park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!0},":national_park:":{unicode:["1f3de-fe0f","1f3de"],fname:"1f3de",uc:"1f3de",isCanonical:!1},":stadium:":{unicode:["1f3df-fe0f","1f3df"],fname:"1f3df",uc:"1f3df",isCanonical:!0},":couch:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!0},":couch_and_lamp:":{unicode:["1f6cb-fe0f","1f6cb"],fname:"1f6cb",uc:"1f6cb",isCanonical:!1},":shopping_bags:":{unicode:["1f6cd-fe0f","1f6cd"],fname:"1f6cd",uc:"1f6cd",isCanonical:!0},":bellhop:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!0},":bellhop_bell:":{unicode:["1f6ce-fe0f","1f6ce"],fname:"1f6ce",uc:"1f6ce",isCanonical:!1},":bed:":{unicode:["1f6cf-fe0f","1f6cf"],fname:"1f6cf",uc:"1f6cf",isCanonical:!0},":motorway:":{unicode:["1f6e3-fe0f","1f6e3"],fname:"1f6e3",uc:"1f6e3",isCanonical:!0},":railway_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!0},":railroad_track:":{unicode:["1f6e4-fe0f","1f6e4"],fname:"1f6e4",uc:"1f6e4",isCanonical:!1},":motorboat:":{unicode:["1f6e5-fe0f","1f6e5"],fname:"1f6e5",uc:"1f6e5",isCanonical:!0},":airplane_small:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!0},":small_airplane:":{unicode:["1f6e9-fe0f","1f6e9"],fname:"1f6e9",uc:"1f6e9",isCanonical:!1},":cruise_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!0},":passenger_ship:":{unicode:["1f6f3-fe0f","1f6f3"],fname:"1f6f3",uc:"1f6f3",isCanonical:!1},":white_sun_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!0},":white_sun_with_small_cloud:":{unicode:["1f324-fe0f","1f324"],fname:"1f324",uc:"1f324",isCanonical:!1},":white_sun_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!0},":white_sun_behind_cloud:":{unicode:["1f325-fe0f","1f325"],fname:"1f325",uc:"1f325",isCanonical:!1},":white_sun_rain_cloud:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!0},":white_sun_behind_cloud_with_rain:":{unicode:["1f326-fe0f","1f326"],fname:"1f326",uc:"1f326",isCanonical:!1},":mouse_three_button:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!0},":three_button_mouse:":{unicode:["1f5b1-fe0f","1f5b1"],fname:"1f5b1",uc:"1f5b1",isCanonical:!1},":point_up_tone1:":{unicode:["261d-1f3fb"],fname:"261d-1f3fb",uc:"261d-1f3fb",isCanonical:!0},":point_up_tone2:":{unicode:["261d-1f3fc"],fname:"261d-1f3fc",uc:"261d-1f3fc",isCanonical:!0},":point_up_tone3:":{unicode:["261d-1f3fd"],fname:"261d-1f3fd",uc:"261d-1f3fd",isCanonical:!0},":point_up_tone4:":{unicode:["261d-1f3fe"],fname:"261d-1f3fe",uc:"261d-1f3fe",isCanonical:!0},":point_up_tone5:":{unicode:["261d-1f3ff"],fname:"261d-1f3ff",uc:"261d-1f3ff",isCanonical:!0},":v_tone1:":{unicode:["270c-1f3fb"],fname:"270c-1f3fb",uc:"270c-1f3fb",isCanonical:!0},":v_tone2:":{unicode:["270c-1f3fc"],fname:"270c-1f3fc",uc:"270c-1f3fc",isCanonical:!0},":v_tone3:":{unicode:["270c-1f3fd"],fname:"270c-1f3fd",uc:"270c-1f3fd",isCanonical:!0},":v_tone4:":{unicode:["270c-1f3fe"],fname:"270c-1f3fe",uc:"270c-1f3fe",isCanonical:!0},
+":v_tone5:":{unicode:["270c-1f3ff"],fname:"270c-1f3ff",uc:"270c-1f3ff",isCanonical:!0},":fist_tone1:":{unicode:["270a-1f3fb"],fname:"270a-1f3fb",uc:"270a-1f3fb",isCanonical:!0},":fist_tone2:":{unicode:["270a-1f3fc"],fname:"270a-1f3fc",uc:"270a-1f3fc",isCanonical:!0},":fist_tone3:":{unicode:["270a-1f3fd"],fname:"270a-1f3fd",uc:"270a-1f3fd",isCanonical:!0},":fist_tone4:":{unicode:["270a-1f3fe"],fname:"270a-1f3fe",uc:"270a-1f3fe",isCanonical:!0},":fist_tone5:":{unicode:["270a-1f3ff"],fname:"270a-1f3ff",uc:"270a-1f3ff",isCanonical:!0},":raised_hand_tone1:":{unicode:["270b-1f3fb"],fname:"270b-1f3fb",uc:"270b-1f3fb",isCanonical:!0},":raised_hand_tone2:":{unicode:["270b-1f3fc"],fname:"270b-1f3fc",uc:"270b-1f3fc",isCanonical:!0},":raised_hand_tone3:":{unicode:["270b-1f3fd"],fname:"270b-1f3fd",uc:"270b-1f3fd",isCanonical:!0},":raised_hand_tone4:":{unicode:["270b-1f3fe"],fname:"270b-1f3fe",uc:"270b-1f3fe",isCanonical:!0},":raised_hand_tone5:":{unicode:["270b-1f3ff"],fname:"270b-1f3ff",uc:"270b-1f3ff",isCanonical:!0},":writing_hand_tone1:":{unicode:["270d-1f3fb"],fname:"270d-1f3fb",uc:"270d-1f3fb",isCanonical:!0},":writing_hand_tone2:":{unicode:["270d-1f3fc"],fname:"270d-1f3fc",uc:"270d-1f3fc",isCanonical:!0},":writing_hand_tone3:":{unicode:["270d-1f3fd"],fname:"270d-1f3fd",uc:"270d-1f3fd",isCanonical:!0},":writing_hand_tone4:":{unicode:["270d-1f3fe"],fname:"270d-1f3fe",uc:"270d-1f3fe",isCanonical:!0},":writing_hand_tone5:":{unicode:["270d-1f3ff"],fname:"270d-1f3ff",uc:"270d-1f3ff",isCanonical:!0},":basketball_player_tone1:":{unicode:["26f9-1f3fb"],fname:"26f9-1f3fb",uc:"26f9-1f3fb",isCanonical:!0},":person_with_ball_tone1:":{unicode:["26f9-1f3fb"],fname:"26f9-1f3fb",uc:"26f9-1f3fb",isCanonical:!1},":basketball_player_tone2:":{unicode:["26f9-1f3fc"],fname:"26f9-1f3fc",uc:"26f9-1f3fc",isCanonical:!0},":person_with_ball_tone2:":{unicode:["26f9-1f3fc"],fname:"26f9-1f3fc",uc:"26f9-1f3fc",isCanonical:!1},":basketball_player_tone3:":{unicode:["26f9-1f3fd"],fname:"26f9-1f3fd",uc:"26f9-1f3fd",isCanonical:!0},":person_with_ball_tone3:":{unicode:["26f9-1f3fd"],fname:"26f9-1f3fd",uc:"26f9-1f3fd",isCanonical:!1},":basketball_player_tone4:":{unicode:["26f9-1f3fe"],fname:"26f9-1f3fe",uc:"26f9-1f3fe",isCanonical:!0},":person_with_ball_tone4:":{unicode:["26f9-1f3fe"],fname:"26f9-1f3fe",uc:"26f9-1f3fe",isCanonical:!1},":basketball_player_tone5:":{unicode:["26f9-1f3ff"],fname:"26f9-1f3ff",uc:"26f9-1f3ff",isCanonical:!0},":person_with_ball_tone5:":{unicode:["26f9-1f3ff"],fname:"26f9-1f3ff",uc:"26f9-1f3ff",isCanonical:!1},":copyright:":{unicode:["00a9-fe0f","00a9"],fname:"00a9",uc:"00a9",isCanonical:!0},":registered:":{unicode:["00ae-fe0f","00ae"],fname:"00ae",uc:"00ae",isCanonical:!0},":bangbang:":{unicode:["203c-fe0f","203c"],fname:"203c",uc:"203c",isCanonical:!0},":interrobang:":{unicode:["2049-fe0f","2049"],fname:"2049",uc:"2049",isCanonical:!0},":tm:":{unicode:["2122-fe0f","2122"],fname:"2122",uc:"2122",isCanonical:!0},":information_source:":{unicode:["2139-fe0f","2139"],fname:"2139",uc:"2139",isCanonical:!0},":left_right_arrow:":{unicode:["2194-fe0f","2194"],fname:"2194",uc:"2194",isCanonical:!0},":arrow_up_down:":{unicode:["2195-fe0f","2195"],fname:"2195",uc:"2195",isCanonical:!0},":arrow_upper_left:":{unicode:["2196-fe0f","2196"],fname:"2196",uc:"2196",isCanonical:!0},":arrow_upper_right:":{unicode:["2197-fe0f","2197"],fname:"2197",uc:"2197",isCanonical:!0},":arrow_lower_right:":{unicode:["2198-fe0f","2198"],fname:"2198",uc:"2198",isCanonical:!0},":arrow_lower_left:":{unicode:["2199-fe0f","2199"],fname:"2199",uc:"2199",isCanonical:!0},":leftwards_arrow_with_hook:":{unicode:["21a9-fe0f","21a9"],fname:"21a9",uc:"21a9",isCanonical:!0},":arrow_right_hook:":{unicode:["21aa-fe0f","21aa"],fname:"21aa",uc:"21aa",isCanonical:!0},":watch:":{unicode:["231a-fe0f","231a"],fname:"231a",uc:"231a",isCanonical:!0},":hourglass:":{unicode:["231b-fe0f","231b"],fname:"231b",uc:"231b",isCanonical:!0},":m:":{unicode:["24c2-fe0f","24c2"],fname:"24c2",uc:"24c2",isCanonical:!0},":black_small_square:":{unicode:["25aa-fe0f","25aa"],fname:"25aa",uc:"25aa",isCanonical:!0},":white_small_square:":{unicode:["25ab-fe0f","25ab"],fname:"25ab",uc:"25ab",isCanonical:!0},":arrow_forward:":{unicode:["25b6-fe0f","25b6"],fname:"25b6",uc:"25b6",isCanonical:!0},":arrow_backward:":{unicode:["25c0-fe0f","25c0"],fname:"25c0",uc:"25c0",isCanonical:!0},":white_medium_square:":{unicode:["25fb-fe0f","25fb"],fname:"25fb",uc:"25fb",isCanonical:!0},":black_medium_square:":{unicode:["25fc-fe0f","25fc"],fname:"25fc",uc:"25fc",isCanonical:!0},":white_medium_small_square:":{unicode:["25fd-fe0f","25fd"],fname:"25fd",uc:"25fd",isCanonical:!0},":black_medium_small_square:":{unicode:["25fe-fe0f","25fe"],fname:"25fe",uc:"25fe",isCanonical:!0},":sunny:":{unicode:["2600-fe0f","2600"],fname:"2600",uc:"2600",isCanonical:!0},":cloud:":{unicode:["2601-fe0f","2601"],fname:"2601",uc:"2601",isCanonical:!0},":telephone:":{unicode:["260e-fe0f","260e"],fname:"260e",uc:"260e",isCanonical:!0},":ballot_box_with_check:":{unicode:["2611-fe0f","2611"],fname:"2611",uc:"2611",isCanonical:!0},":umbrella:":{unicode:["2614-fe0f","2614"],fname:"2614",uc:"2614",isCanonical:!0},":coffee:":{unicode:["2615-fe0f","2615"],fname:"2615",uc:"2615",isCanonical:!0},":point_up:":{unicode:["261d-fe0f","261d"],fname:"261d",uc:"261d",isCanonical:!0},":relaxed:":{unicode:["263a-fe0f","263a"],fname:"263a",uc:"263a",isCanonical:!0},":aries:":{unicode:["2648-fe0f","2648"],fname:"2648",uc:"2648",isCanonical:!0},":taurus:":{unicode:["2649-fe0f","2649"],fname:"2649",uc:"2649",isCanonical:!0},":gemini:":{unicode:["264a-fe0f","264a"],fname:"264a",uc:"264a",isCanonical:!0},":cancer:":{unicode:["264b-fe0f","264b"],fname:"264b",uc:"264b",isCanonical:!0},":leo:":{unicode:["264c-fe0f","264c"],fname:"264c",uc:"264c",isCanonical:!0},":virgo:":{unicode:["264d-fe0f","264d"],fname:"264d",uc:"264d",isCanonical:!0},":libra:":{unicode:["264e-fe0f","264e"],fname:"264e",uc:"264e",isCanonical:!0},":scorpius:":{unicode:["264f-fe0f","264f"],fname:"264f",uc:"264f",isCanonical:!0},":sagittarius:":{unicode:["2650-fe0f","2650"],fname:"2650",uc:"2650",isCanonical:!0},":capricorn:":{unicode:["2651-fe0f","2651"],fname:"2651",uc:"2651",isCanonical:!0},":aquarius:":{unicode:["2652-fe0f","2652"],fname:"2652",uc:"2652",isCanonical:!0},":pisces:":{unicode:["2653-fe0f","2653"],fname:"2653",uc:"2653",isCanonical:!0},":spades:":{unicode:["2660-fe0f","2660"],fname:"2660",uc:"2660",isCanonical:!0},":clubs:":{unicode:["2663-fe0f","2663"],fname:"2663",uc:"2663",isCanonical:!0},":hearts:":{unicode:["2665-fe0f","2665"],fname:"2665",uc:"2665",isCanonical:!0},":diamonds:":{unicode:["2666-fe0f","2666"],fname:"2666",uc:"2666",isCanonical:!0},":hotsprings:":{unicode:["2668-fe0f","2668"],fname:"2668",uc:"2668",isCanonical:!0},":recycle:":{unicode:["267b-fe0f","267b"],fname:"267b",uc:"267b",isCanonical:!0},":wheelchair:":{unicode:["267f-fe0f","267f"],fname:"267f",uc:"267f",isCanonical:!0},":anchor:":{unicode:["2693-fe0f","2693"],fname:"2693",uc:"2693",isCanonical:!0},":warning:":{unicode:["26a0-fe0f","26a0"],fname:"26a0",uc:"26a0",isCanonical:!0},":zap:":{unicode:["26a1-fe0f","26a1"],fname:"26a1",uc:"26a1",isCanonical:!0},":white_circle:":{unicode:["26aa-fe0f","26aa"],fname:"26aa",uc:"26aa",isCanonical:!0},":black_circle:":{unicode:["26ab-fe0f","26ab"],fname:"26ab",uc:"26ab",isCanonical:!0},":soccer:":{unicode:["26bd-fe0f","26bd"],fname:"26bd",uc:"26bd",isCanonical:!0},":baseball:":{unicode:["26be-fe0f","26be"],fname:"26be",uc:"26be",isCanonical:!0},":snowman:":{unicode:["26c4-fe0f","26c4"],fname:"26c4",uc:"26c4",isCanonical:!0},":partly_sunny:":{unicode:["26c5-fe0f","26c5"],fname:"26c5",uc:"26c5",isCanonical:!0},":no_entry:":{unicode:["26d4-fe0f","26d4"],fname:"26d4",uc:"26d4",isCanonical:!0},":church:":{unicode:["26ea-fe0f","26ea"],fname:"26ea",uc:"26ea",isCanonical:!0},":fountain:":{unicode:["26f2-fe0f","26f2"],fname:"26f2",uc:"26f2",isCanonical:!0},":golf:":{unicode:["26f3-fe0f","26f3"],fname:"26f3",uc:"26f3",isCanonical:!0},":sailboat:":{unicode:["26f5-fe0f","26f5"],fname:"26f5",uc:"26f5",isCanonical:!0},":tent:":{unicode:["26fa-fe0f","26fa"],fname:"26fa",uc:"26fa",isCanonical:!0},":fuelpump:":{unicode:["26fd-fe0f","26fd"],fname:"26fd",uc:"26fd",isCanonical:!0},":scissors:":{unicode:["2702-fe0f","2702"],fname:"2702",uc:"2702",isCanonical:!0},":airplane:":{unicode:["2708-fe0f","2708"],fname:"2708",uc:"2708",isCanonical:!0},":envelope:":{unicode:["2709-fe0f","2709"],fname:"2709",uc:"2709",isCanonical:!0},":v:":{unicode:["270c-fe0f","270c"],fname:"270c",uc:"270c",isCanonical:!0},":pencil2:":{unicode:["270f-fe0f","270f"],fname:"270f",uc:"270f",isCanonical:!0},":black_nib:":{unicode:["2712-fe0f","2712"],fname:"2712",uc:"2712",isCanonical:!0},":heavy_check_mark:":{unicode:["2714-fe0f","2714"],fname:"2714",uc:"2714",isCanonical:!0},":heavy_multiplication_x:":{unicode:["2716-fe0f","2716"],fname:"2716",uc:"2716",isCanonical:!0},":eight_spoked_asterisk:":{unicode:["2733-fe0f","2733"],fname:"2733",uc:"2733",isCanonical:!0},":eight_pointed_black_star:":{unicode:["2734-fe0f","2734"],fname:"2734",uc:"2734",isCanonical:!0},":snowflake:":{unicode:["2744-fe0f","2744"],fname:"2744",uc:"2744",isCanonical:!0},":sparkle:":{unicode:["2747-fe0f","2747"],fname:"2747",uc:"2747",isCanonical:!0},":exclamation:":{unicode:["2757-fe0f","2757"],fname:"2757",uc:"2757",isCanonical:!0},":heart:":{unicode:["2764-fe0f","2764"],fname:"2764",uc:"2764",isCanonical:!0},":arrow_right:":{unicode:["27a1-fe0f","27a1"],fname:"27a1",uc:"27a1",isCanonical:!0},":arrow_heading_up:":{unicode:["2934-fe0f","2934"],fname:"2934",uc:"2934",isCanonical:!0},":arrow_heading_down:":{unicode:["2935-fe0f","2935"],fname:"2935",uc:"2935",isCanonical:!0},":arrow_left:":{unicode:["2b05-fe0f","2b05"],fname:"2b05",uc:"2b05",isCanonical:!0},":arrow_up:":{unicode:["2b06-fe0f","2b06"],fname:"2b06",uc:"2b06",isCanonical:!0},":arrow_down:":{unicode:["2b07-fe0f","2b07"],fname:"2b07",uc:"2b07",isCanonical:!0},":black_large_square:":{unicode:["2b1b-fe0f","2b1b"],fname:"2b1b",uc:"2b1b",isCanonical:!0},":white_large_square:":{unicode:["2b1c-fe0f","2b1c"],fname:"2b1c",uc:"2b1c",isCanonical:!0},":star:":{unicode:["2b50-fe0f","2b50"],fname:"2b50",uc:"2b50",isCanonical:!0},":o:":{unicode:["2b55-fe0f","2b55"],fname:"2b55",uc:"2b55",isCanonical:!0},":wavy_dash:":{unicode:["3030-fe0f","3030"],fname:"3030",uc:"3030",isCanonical:!0},":part_alternation_mark:":{unicode:["303d-fe0f","303d"],fname:"303d",uc:"303d",isCanonical:!0},":congratulations:":{unicode:["3297-fe0f","3297"],fname:"3297",uc:"3297",isCanonical:!0},":secret:":{unicode:["3299-fe0f","3299"],fname:"3299",uc:"3299",isCanonical:!0},":cross:":{unicode:["271d-fe0f","271d"],fname:"271d",uc:"271d",isCanonical:!0},":latin_cross:":{unicode:["271d-fe0f","271d"],fname:"271d",uc:"271d",isCanonical:!1},":keyboard:":{unicode:["2328-fe0f","2328"],fname:"2328",uc:"2328",isCanonical:!0},":writing_hand:":{unicode:["270d-fe0f","270d"],fname:"270d",uc:"270d",isCanonical:!0},":eject:":{unicode:["23cf-fe0f","23cf"],fname:"23cf",uc:"23cf",isCanonical:!0},":eject_symbol:":{unicode:["23cf-fe0f","23cf"],fname:"23cf",uc:"23cf",isCanonical:!1},":track_next:":{unicode:["23ed-fe0f","23ed"],fname:"23ed",uc:"23ed",isCanonical:!0},":next_track:":{unicode:["23ed-fe0f","23ed"],fname:"23ed",uc:"23ed",isCanonical:!1},":track_previous:":{unicode:["23ee-fe0f","23ee"],fname:"23ee",uc:"23ee",isCanonical:!0},":previous_track:":{unicode:["23ee-fe0f","23ee"],fname:"23ee",uc:"23ee",isCanonical:!1},":play_pause:":{unicode:["23ef-fe0f","23ef"],fname:"23ef",uc:"23ef",isCanonical:!0},":stopwatch:":{unicode:["23f1-fe0f","23f1"],fname:"23f1",uc:"23f1",isCanonical:!0},":timer:":{unicode:["23f2-fe0f","23f2"],fname:"23f2",uc:"23f2",isCanonical:!0},":timer_clock:":{unicode:["23f2-fe0f","23f2"],fname:"23f2",uc:"23f2",isCanonical:!1},":pause_button:":{unicode:["23f8-fe0f","23f8"],fname:"23f8",uc:"23f8",isCanonical:!0},":double_vertical_bar:":{unicode:["23f8-fe0f","23f8"],fname:"23f8",uc:"23f8",isCanonical:!1},":stop_button:":{unicode:["23f9-fe0f","23f9"],fname:"23f9",uc:"23f9",isCanonical:!0},":record_button:":{unicode:["23fa-fe0f","23fa"],fname:"23fa",uc:"23fa",isCanonical:!0},":umbrella2:":{unicode:["2602-fe0f","2602"],fname:"2602",uc:"2602",isCanonical:!0},":snowman2:":{unicode:["2603-fe0f","2603"],fname:"2603",uc:"2603",isCanonical:!0},":comet:":{unicode:["2604-fe0f","2604"],fname:"2604",uc:"2604",isCanonical:!0},":shamrock:":{unicode:["2618-fe0f","2618"],fname:"2618",uc:"2618",isCanonical:!0},":skull_crossbones:":{unicode:["2620-fe0f","2620"],fname:"2620",uc:"2620",isCanonical:!0},":skull_and_crossbones:":{unicode:["2620-fe0f","2620"],fname:"2620",uc:"2620",isCanonical:!1},":radioactive:":{unicode:["2622-fe0f","2622"],fname:"2622",uc:"2622",isCanonical:!0},":radioactive_sign:":{unicode:["2622-fe0f","2622"],fname:"2622",uc:"2622",isCanonical:!1},":biohazard:":{unicode:["2623-fe0f","2623"],fname:"2623",uc:"2623",isCanonical:!0},":biohazard_sign:":{unicode:["2623-fe0f","2623"],fname:"2623",uc:"2623",isCanonical:!1},":orthodox_cross:":{unicode:["2626-fe0f","2626"],fname:"2626",uc:"2626",isCanonical:!0},":star_and_crescent:":{unicode:["262a-fe0f","262a"],fname:"262a",uc:"262a",isCanonical:!0},":peace:":{unicode:["262e-fe0f","262e"],fname:"262e",uc:"262e",isCanonical:!0},":peace_symbol:":{unicode:["262e-fe0f","262e"],fname:"262e",uc:"262e",isCanonical:!1},":yin_yang:":{unicode:["262f-fe0f","262f"],fname:"262f",uc:"262f",isCanonical:!0},":wheel_of_dharma:":{unicode:["2638-fe0f","2638"],fname:"2638",uc:"2638",isCanonical:!0},":frowning2:":{unicode:["2639-fe0f","2639"],fname:"2639",uc:"2639",isCanonical:!0},":white_frowning_face:":{unicode:["2639-fe0f","2639"],fname:"2639",uc:"2639",isCanonical:!1},":hammer_pick:":{unicode:["2692-fe0f","2692"],fname:"2692",uc:"2692",isCanonical:!0},":hammer_and_pick:":{unicode:["2692-fe0f","2692"],fname:"2692",uc:"2692",isCanonical:!1},":crossed_swords:":{unicode:["2694-fe0f","2694"],fname:"2694",uc:"2694",isCanonical:!0},":scales:":{unicode:["2696-fe0f","2696"],fname:"2696",uc:"2696",isCanonical:!0},":alembic:":{unicode:["2697-fe0f","2697"],fname:"2697",uc:"2697",isCanonical:!0},":gear:":{unicode:["2699-fe0f","2699"],fname:"2699",uc:"2699",isCanonical:!0},":atom:":{unicode:["269b-fe0f","269b"],fname:"269b",uc:"269b",isCanonical:!0},":atom_symbol:":{unicode:["269b-fe0f","269b"],fname:"269b",uc:"269b",isCanonical:!1},":fleur-de-lis:":{unicode:["269c-fe0f","269c"],fname:"269c",uc:"269c",isCanonical:!0},":coffin:":{unicode:["26b0-fe0f","26b0"],fname:"26b0",uc:"26b0",isCanonical:!0},":urn:":{unicode:["26b1-fe0f","26b1"],fname:"26b1",uc:"26b1",isCanonical:!0},":funeral_urn:":{unicode:["26b1-fe0f","26b1"],fname:"26b1",uc:"26b1",isCanonical:!1},":thunder_cloud_rain:":{unicode:["26c8-fe0f","26c8"],fname:"26c8",uc:"26c8",isCanonical:!0},":thunder_cloud_and_rain:":{unicode:["26c8-fe0f","26c8"],fname:"26c8",uc:"26c8",isCanonical:!1},":pick:":{unicode:["26cf-fe0f","26cf"],fname:"26cf",uc:"26cf",isCanonical:!0},":helmet_with_cross:":{unicode:["26d1-fe0f","26d1"],fname:"26d1",uc:"26d1",isCanonical:!0},":helmet_with_white_cross:":{unicode:["26d1-fe0f","26d1"],fname:"26d1",uc:"26d1",isCanonical:!1},":chains:":{unicode:["26d3-fe0f","26d3"],fname:"26d3",uc:"26d3",isCanonical:!0},":shinto_shrine:":{unicode:["26e9-fe0f","26e9"],fname:"26e9",uc:"26e9",isCanonical:!0},":mountain:":{unicode:["26f0-fe0f","26f0"],fname:"26f0",uc:"26f0",isCanonical:!0},":beach_umbrella:":{unicode:["26f1-fe0f","26f1"],fname:"26f1",uc:"26f1",isCanonical:!0},":umbrella_on_ground:":{unicode:["26f1-fe0f","26f1"],fname:"26f1",uc:"26f1",isCanonical:!1},":ferry:":{unicode:["26f4-fe0f","26f4"],fname:"26f4",uc:"26f4",isCanonical:!0},":skier:":{unicode:["26f7-fe0f","26f7"],fname:"26f7",uc:"26f7",isCanonical:!0},":ice_skate:":{unicode:["26f8-fe0f","26f8"],fname:"26f8",uc:"26f8",isCanonical:!0},":basketball_player:":{unicode:["26f9-fe0f","26f9"],fname:"26f9",uc:"26f9",isCanonical:!0},":person_with_ball:":{unicode:["26f9-fe0f","26f9"],fname:"26f9",uc:"26f9",isCanonical:!1},":star_of_david:":{unicode:["2721-fe0f","2721"],fname:"2721",uc:"2721",isCanonical:!0},":heart_exclamation:":{unicode:["2763-fe0f","2763"],fname:"2763",uc:"2763",isCanonical:!0},":heavy_heart_exclamation_mark_ornament:":{unicode:["2763-fe0f","2763"],fname:"2763",uc:"2763",isCanonical:!1},":third_place:":{unicode:["1f949"],fname:"1f949",uc:"1f949",isCanonical:!0},":third_place_medal:":{unicode:["1f949"],fname:"1f949",uc:"1f949",isCanonical:!1},":second_place:":{unicode:["1f948"],fname:"1f948",uc:"1f948",isCanonical:!0},":second_place_medal:":{unicode:["1f948"],fname:"1f948",uc:"1f948",isCanonical:!1},":first_place:":{unicode:["1f947"],fname:"1f947",uc:"1f947",isCanonical:!0},":first_place_medal:":{unicode:["1f947"],fname:"1f947",uc:"1f947",isCanonical:!1},":fencer:":{unicode:["1f93a"],fname:"1f93a",uc:"1f93a",isCanonical:!0},":fencing:":{unicode:["1f93a"],fname:"1f93a",uc:"1f93a",isCanonical:!1},":goal:":{unicode:["1f945"],fname:"1f945",uc:"1f945",isCanonical:!0},":goal_net:":{unicode:["1f945"],fname:"1f945",uc:"1f945",isCanonical:!1},":handball:":{unicode:["1f93e"],fname:"1f93e",uc:"1f93e",isCanonical:!0},":regional_indicator_z:":{unicode:["1f1ff"],fname:"1f1ff",uc:"1f1ff",isCanonical:!0},":water_polo:":{unicode:["1f93d"],fname:"1f93d",uc:"1f93d",isCanonical:!0},":martial_arts_uniform:":{unicode:["1f94b"],fname:"1f94b",uc:"1f94b",isCanonical:!0},":karate_uniform:":{unicode:["1f94b"],fname:"1f94b",uc:"1f94b",isCanonical:!1},":boxing_glove:":{unicode:["1f94a"],fname:"1f94a",uc:"1f94a",isCanonical:!0},":boxing_gloves:":{unicode:["1f94a"],fname:"1f94a",uc:"1f94a",isCanonical:!1},":wrestlers:":{unicode:["1f93c"],fname:"1f93c",uc:"1f93c",isCanonical:!0},":wrestling:":{unicode:["1f93c"],fname:"1f93c",uc:"1f93c",isCanonical:!1},":juggling:":{unicode:["1f939"],fname:"1f939",uc:"1f939",isCanonical:!0},":juggler:":{unicode:["1f939"],fname:"1f939",uc:"1f939",isCanonical:!1},":cartwheel:":{unicode:["1f938"],fname:"1f938",uc:"1f938",isCanonical:!0},":person_doing_cartwheel:":{unicode:["1f938"],fname:"1f938",uc:"1f938",isCanonical:!1},":canoe:":{unicode:["1f6f6"],fname:"1f6f6",uc:"1f6f6",isCanonical:!0},":kayak:":{unicode:["1f6f6"],fname:"1f6f6",uc:"1f6f6",isCanonical:!1},":motor_scooter:":{unicode:["1f6f5"],fname:"1f6f5",uc:"1f6f5",isCanonical:!0},":motorbike:":{unicode:["1f6f5"],fname:"1f6f5",uc:"1f6f5",isCanonical:!1},":scooter:":{unicode:["1f6f4"],fname:"1f6f4",uc:"1f6f4",isCanonical:!0},":shopping_cart:":{unicode:["1f6d2"],fname:"1f6d2",uc:"1f6d2",isCanonical:!0},":shopping_trolley:":{unicode:["1f6d2"],fname:"1f6d2",uc:"1f6d2",isCanonical:!1},":black_joker:":{unicode:["1f0cf"],fname:"1f0cf",uc:"1f0cf",isCanonical:!0},":a:":{unicode:["1f170"],fname:"1f170",uc:"1f170",isCanonical:!0},":b:":{unicode:["1f171"],fname:"1f171",uc:"1f171",isCanonical:!0},":o2:":{unicode:["1f17e"],fname:"1f17e",uc:"1f17e",isCanonical:!0},":octagonal_sign:":{unicode:["1f6d1"],fname:"1f6d1",uc:"1f6d1",isCanonical:!0},":stop_sign:":{unicode:["1f6d1"],fname:"1f6d1",uc:"1f6d1",isCanonical:!1},":ab:":{unicode:["1f18e"],fname:"1f18e",uc:"1f18e",isCanonical:!0},":cl:":{unicode:["1f191"],fname:"1f191",uc:"1f191",isCanonical:!0},":regional_indicator_y:":{unicode:["1f1fe"],fname:"1f1fe",uc:"1f1fe",isCanonical:!0},":cool:":{unicode:["1f192"],fname:"1f192",uc:"1f192",isCanonical:!0},":free:":{unicode:["1f193"],fname:"1f193",uc:"1f193",isCanonical:!0},":id:":{unicode:["1f194"],fname:"1f194",uc:"1f194",isCanonical:!0},":new:":{unicode:["1f195"],fname:"1f195",uc:"1f195",isCanonical:!0},":ng:":{unicode:["1f196"],fname:"1f196",uc:"1f196",isCanonical:!0},":ok:":{unicode:["1f197"],fname:"1f197",uc:"1f197",isCanonical:!0},":sos:":{unicode:["1f198"],fname:"1f198",uc:"1f198",isCanonical:!0},":spoon:":{unicode:["1f944"],fname:"1f944",uc:"1f944",isCanonical:!0},":up:":{unicode:["1f199"],fname:"1f199",uc:"1f199",isCanonical:!0},":vs:":{unicode:["1f19a"],fname:"1f19a",uc:"1f19a",isCanonical:!0},":champagne_glass:":{unicode:["1f942"],fname:"1f942",uc:"1f942",isCanonical:!0},":clinking_glass:":{unicode:["1f942"],fname:"1f942",uc:"1f942",isCanonical:!1},":tumbler_glass:":{unicode:["1f943"],fname:"1f943",uc:"1f943",isCanonical:!0},":whisky:":{unicode:["1f943"],fname:"1f943",uc:"1f943",isCanonical:!1},":koko:":{unicode:["1f201"],fname:"1f201",uc:"1f201",isCanonical:!0},":stuffed_flatbread:":{unicode:["1f959"],fname:"1f959",uc:"1f959",isCanonical:!0},":stuffed_pita:":{unicode:["1f959"],fname:"1f959",uc:"1f959",isCanonical:!1},":u7981:":{unicode:["1f232"],fname:"1f232",uc:"1f232",isCanonical:!0},":u7a7a:":{unicode:["1f233"],fname:"1f233",uc:"1f233",isCanonical:!0},":u5408:":{unicode:["1f234"],fname:"1f234",uc:"1f234",isCanonical:!0},":u6e80:":{unicode:["1f235"],fname:"1f235",uc:"1f235",isCanonical:!0},":u6709:":{unicode:["1f236"],fname:"1f236",uc:"1f236",isCanonical:!0},":shallow_pan_of_food:":{unicode:["1f958"],fname:"1f958",uc:"1f958",isCanonical:!0},":paella:":{unicode:["1f958"],fname:"1f958",uc:"1f958",isCanonical:!1},":u7533:":{unicode:["1f238"],fname:"1f238",uc:"1f238",isCanonical:!0},":u5272:":{unicode:["1f239"],fname:"1f239",uc:"1f239",isCanonical:!0},":salad:":{unicode:["1f957"],fname:"1f957",uc:"1f957",isCanonical:!0},":green_salad:":{unicode:["1f957"],fname:"1f957",uc:"1f957",isCanonical:!1},":u55b6:":{unicode:["1f23a"],fname:"1f23a",uc:"1f23a",isCanonical:!0},":ideograph_advantage:":{unicode:["1f250"],fname:"1f250",uc:"1f250",isCanonical:!0},":accept:":{unicode:["1f251"],fname:"1f251",uc:"1f251",isCanonical:!0},":cyclone:":{unicode:["1f300"],fname:"1f300",uc:"1f300",isCanonical:!0},":french_bread:":{unicode:["1f956"],fname:"1f956",uc:"1f956",isCanonical:!0},":baguette_bread:":{unicode:["1f956"],fname:"1f956",uc:"1f956",isCanonical:!1},":foggy:":{unicode:["1f301"],fname:"1f301",uc:"1f301",isCanonical:!0},":closed_umbrella:":{unicode:["1f302"],fname:"1f302",uc:"1f302",isCanonical:!0},":night_with_stars:":{unicode:["1f303"],fname:"1f303",uc:"1f303",isCanonical:!0},":sunrise_over_mountains:":{unicode:["1f304"],fname:"1f304",uc:"1f304",isCanonical:!0},":sunrise:":{unicode:["1f305"],fname:"1f305",uc:"1f305",isCanonical:!0},":city_dusk:":{unicode:["1f306"],fname:"1f306",uc:"1f306",isCanonical:!0},":carrot:":{unicode:["1f955"],fname:"1f955",uc:"1f955",isCanonical:!0},":city_sunset:":{unicode:["1f307"],fname:"1f307",uc:"1f307",isCanonical:!0},":city_sunrise:":{unicode:["1f307"],fname:"1f307",uc:"1f307",isCanonical:!1},":rainbow:":{unicode:["1f308"],fname:"1f308",uc:"1f308",isCanonical:!0},":potato:":{unicode:["1f954"],fname:"1f954",uc:"1f954",isCanonical:!0},":bridge_at_night:":{unicode:["1f309"],fname:"1f309",uc:"1f309",isCanonical:!0},":ocean:":{unicode:["1f30a"],fname:"1f30a",uc:"1f30a",isCanonical:!0},":volcano:":{unicode:["1f30b"],fname:"1f30b",uc:"1f30b",isCanonical:!0},":milky_way:":{unicode:["1f30c"],fname:"1f30c",uc:"1f30c",isCanonical:!0},":earth_asia:":{unicode:["1f30f"],fname:"1f30f",uc:"1f30f",isCanonical:!0},":new_moon:":{unicode:["1f311"],fname:"1f311",uc:"1f311",isCanonical:!0},":bacon:":{unicode:["1f953"],fname:"1f953",uc:"1f953",isCanonical:!0},":first_quarter_moon:":{unicode:["1f313"],fname:"1f313",uc:"1f313",isCanonical:!0},":waxing_gibbous_moon:":{unicode:["1f314"],fname:"1f314",uc:"1f314",isCanonical:!0},":full_moon:":{unicode:["1f315"],fname:"1f315",uc:"1f315",isCanonical:!0},":crescent_moon:":{unicode:["1f319"],fname:"1f319",uc:"1f319",isCanonical:!0},":first_quarter_moon_with_face:":{unicode:["1f31b"],fname:"1f31b",uc:"1f31b",isCanonical:!0},":star2:":{unicode:["1f31f"],fname:"1f31f",uc:"1f31f",isCanonical:!0},":cucumber:":{unicode:["1f952"],fname:"1f952",uc:"1f952",isCanonical:!0},":stars:":{unicode:["1f320"],fname:"1f320",uc:"1f320",isCanonical:!0},":chestnut:":{unicode:["1f330"],fname:"1f330",uc:"1f330",isCanonical:!0},":avocado:":{unicode:["1f951"],fname:"1f951",uc:"1f951",isCanonical:!0},":seedling:":{unicode:["1f331"],fname:"1f331",uc:"1f331",isCanonical:!0},":palm_tree:":{unicode:["1f334"],fname:"1f334",uc:"1f334",isCanonical:!0},":cactus:":{unicode:["1f335"],fname:"1f335",uc:"1f335",isCanonical:!0},":tulip:":{unicode:["1f337"],fname:"1f337",uc:"1f337",isCanonical:!0},":cherry_blossom:":{unicode:["1f338"],fname:"1f338",uc:"1f338",isCanonical:!0},":rose:":{unicode:["1f339"],fname:"1f339",uc:"1f339",isCanonical:!0},":hibiscus:":{unicode:["1f33a"],fname:"1f33a",uc:"1f33a",isCanonical:!0},":sunflower:":{unicode:["1f33b"],fname:"1f33b",uc:"1f33b",isCanonical:!0},":blossom:":{unicode:["1f33c"],fname:"1f33c",uc:"1f33c",isCanonical:!0},":corn:":{unicode:["1f33d"],fname:"1f33d",uc:"1f33d",isCanonical:!0},":croissant:":{unicode:["1f950"],fname:"1f950",uc:"1f950",isCanonical:!0},":ear_of_rice:":{unicode:["1f33e"],fname:"1f33e",uc:"1f33e",isCanonical:!0},":herb:":{unicode:["1f33f"],fname:"1f33f",uc:"1f33f",isCanonical:!0},":four_leaf_clover:":{unicode:["1f340"],fname:"1f340",uc:"1f340",isCanonical:!0},":maple_leaf:":{unicode:["1f341"],fname:"1f341",uc:"1f341",isCanonical:!0},":fallen_leaf:":{unicode:["1f342"],fname:"1f342",uc:"1f342",isCanonical:!0},":leaves:":{unicode:["1f343"],fname:"1f343",uc:"1f343",isCanonical:!0},":mushroom:":{unicode:["1f344"],fname:"1f344",uc:"1f344",isCanonical:!0},":tomato:":{unicode:["1f345"],fname:"1f345",uc:"1f345",isCanonical:!0},":eggplant:":{unicode:["1f346"],fname:"1f346",uc:"1f346",isCanonical:!0},":grapes:":{unicode:["1f347"],fname:"1f347",uc:"1f347",isCanonical:!0},":melon:":{unicode:["1f348"],fname:"1f348",uc:"1f348",isCanonical:!0},":watermelon:":{unicode:["1f349"],fname:"1f349",uc:"1f349",isCanonical:!0},":tangerine:":{unicode:["1f34a"],fname:"1f34a",uc:"1f34a",isCanonical:!0},":wilted_rose:":{unicode:["1f940"],fname:"1f940",uc:"1f940",isCanonical:!0},":wilted_flower:":{unicode:["1f940"],fname:"1f940",uc:"1f940",isCanonical:!1},":banana:":{unicode:["1f34c"],fname:"1f34c",uc:"1f34c",isCanonical:!0},":pineapple:":{unicode:["1f34d"],fname:"1f34d",uc:"1f34d",isCanonical:!0},":apple:":{unicode:["1f34e"],fname:"1f34e",uc:"1f34e",isCanonical:!0},":green_apple:":{unicode:["1f34f"],fname:"1f34f",uc:"1f34f",isCanonical:!0},":peach:":{unicode:["1f351"],fname:"1f351",uc:"1f351",isCanonical:!0},":cherries:":{unicode:["1f352"],fname:"1f352",uc:"1f352",isCanonical:!0},":strawberry:":{unicode:["1f353"],fname:"1f353",uc:"1f353",isCanonical:!0},":rhino:":{unicode:["1f98f"],fname:"1f98f",uc:"1f98f",isCanonical:!0},":rhinoceros:":{unicode:["1f98f"],fname:"1f98f",uc:"1f98f",isCanonical:!1},":hamburger:":{unicode:["1f354"],fname:"1f354",uc:"1f354",isCanonical:!0},":pizza:":{unicode:["1f355"],fname:"1f355",uc:"1f355",isCanonical:!0},":meat_on_bone:":{unicode:["1f356"],fname:"1f356",uc:"1f356",isCanonical:!0},":lizard:":{unicode:["1f98e"],fname:"1f98e",uc:"1f98e",isCanonical:!0},":poultry_leg:":{unicode:["1f357"],fname:"1f357",uc:"1f357",isCanonical:!0},":rice_cracker:":{unicode:["1f358"],fname:"1f358",uc:"1f358",isCanonical:!0},":rice_ball:":{unicode:["1f359"],fname:"1f359",uc:"1f359",isCanonical:!0},":gorilla:":{unicode:["1f98d"],fname:"1f98d",uc:"1f98d",isCanonical:!0},":rice:":{unicode:["1f35a"],fname:"1f35a",uc:"1f35a",isCanonical:!0},":curry:":{unicode:["1f35b"],fname:"1f35b",uc:"1f35b",isCanonical:!0},":deer:":{unicode:["1f98c"],fname:"1f98c",uc:"1f98c",isCanonical:!0},":ramen:":{unicode:["1f35c"],fname:"1f35c",uc:"1f35c",isCanonical:!0},":spaghetti:":{unicode:["1f35d"],fname:"1f35d",uc:"1f35d",isCanonical:!0},":bread:":{unicode:["1f35e"],fname:"1f35e",uc:"1f35e",isCanonical:!0},":fries:":{unicode:["1f35f"],fname:"1f35f",uc:"1f35f",isCanonical:!0},":butterfly:":{unicode:["1f98b"],fname:"1f98b",uc:"1f98b",isCanonical:!0},":sweet_potato:":{unicode:["1f360"],fname:"1f360",uc:"1f360",isCanonical:!0},":dango:":{unicode:["1f361"],fname:"1f361",uc:"1f361",isCanonical:!0},":fox:":{unicode:["1f98a"],fname:"1f98a",uc:"1f98a",isCanonical:!0},":fox_face:":{unicode:["1f98a"],fname:"1f98a",uc:"1f98a",isCanonical:!1},":oden:":{unicode:["1f362"],fname:"1f362",uc:"1f362",isCanonical:!0},":sushi:":{unicode:["1f363"],fname:"1f363",uc:"1f363",isCanonical:!0},":owl:":{unicode:["1f989"],fname:"1f989",uc:"1f989",isCanonical:!0},":fried_shrimp:":{unicode:["1f364"],fname:"1f364",uc:"1f364",isCanonical:!0},":fish_cake:":{unicode:["1f365"],fname:"1f365",uc:"1f365",isCanonical:!0},":shark:":{unicode:["1f988"],fname:"1f988",uc:"1f988",isCanonical:!0},":icecream:":{unicode:["1f366"],fname:"1f366",uc:"1f366",isCanonical:!0},":bat:":{unicode:["1f987"],fname:"1f987",uc:"1f987",isCanonical:!0},":shaved_ice:":{unicode:["1f367"],fname:"1f367",uc:"1f367",isCanonical:!0},":regional_indicator_x:":{unicode:["1f1fd"],fname:"1f1fd",uc:"1f1fd",isCanonical:!0},":ice_cream:":{unicode:["1f368"],fname:"1f368",uc:"1f368",isCanonical:!0},":duck:":{unicode:["1f986"],fname:"1f986",uc:"1f986",isCanonical:!0},":doughnut:":{unicode:["1f369"],fname:"1f369",uc:"1f369",isCanonical:!0},":eagle:":{unicode:["1f985"],fname:"1f985",uc:"1f985",isCanonical:!0},":cookie:":{unicode:["1f36a"],fname:"1f36a",uc:"1f36a",isCanonical:!0},":black_heart:":{unicode:["1f5a4"],fname:"1f5a4",uc:"1f5a4",isCanonical:!0},":chocolate_bar:":{unicode:["1f36b"],fname:"1f36b",uc:"1f36b",isCanonical:!0},":candy:":{unicode:["1f36c"],fname:"1f36c",uc:"1f36c",isCanonical:!0},":lollipop:":{unicode:["1f36d"],fname:"1f36d",uc:"1f36d",isCanonical:!0},":custard:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!0},":pudding:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!1},":flan:":{unicode:["1f36e"],fname:"1f36e",uc:"1f36e",isCanonical:!1},":honey_pot:":{unicode:["1f36f"],fname:"1f36f",uc:"1f36f",isCanonical:!0},":fingers_crossed:":{unicode:["1f91e"],fname:"1f91e",uc:"1f91e",isCanonical:!0},":hand_with_index_and_middle_finger_crossed:":{unicode:["1f91e"],fname:"1f91e",uc:"1f91e",isCanonical:!1},":cake:":{unicode:["1f370"],fname:"1f370",uc:"1f370",isCanonical:!0},":bento:":{unicode:["1f371"],fname:"1f371",uc:"1f371",isCanonical:!0},":stew:":{unicode:["1f372"],fname:"1f372",uc:"1f372",isCanonical:!0},":handshake:":{unicode:["1f91d"],fname:"1f91d",uc:"1f91d",isCanonical:!0},":shaking_hands:":{unicode:["1f91d"],fname:"1f91d",uc:"1f91d",isCanonical:!1},":cooking:":{unicode:["1f373"],fname:"1f373",uc:"1f373",isCanonical:!0},":fork_and_knife:":{unicode:["1f374"],fname:"1f374",uc:"1f374",isCanonical:!0},":tea:":{unicode:["1f375"],fname:"1f375",uc:"1f375",isCanonical:!0},":sake:":{unicode:["1f376"],fname:"1f376",uc:"1f376",isCanonical:!0},":wine_glass:":{unicode:["1f377"],fname:"1f377",uc:"1f377",isCanonical:!0},":cocktail:":{unicode:["1f378"],fname:"1f378",uc:"1f378",isCanonical:!0},":tropical_drink:":{unicode:["1f379"],fname:"1f379",uc:"1f379",isCanonical:!0},":beer:":{unicode:["1f37a"],fname:"1f37a",uc:"1f37a",isCanonical:!0},":beers:":{unicode:["1f37b"],fname:"1f37b",uc:"1f37b",isCanonical:!0},":ribbon:":{unicode:["1f380"],fname:"1f380",uc:"1f380",isCanonical:!0},":gift:":{unicode:["1f381"],fname:"1f381",uc:"1f381",isCanonical:!0},":birthday:":{unicode:["1f382"],fname:"1f382",uc:"1f382",isCanonical:!0},":jack_o_lantern:":{unicode:["1f383"],fname:"1f383",uc:"1f383",isCanonical:!0},":left_facing_fist:":{unicode:["1f91b"],fname:"1f91b",uc:"1f91b",isCanonical:!0},":left_fist:":{unicode:["1f91b"],fname:"1f91b",uc:"1f91b",isCanonical:!1},":right_facing_fist:":{unicode:["1f91c"],fname:"1f91c",uc:"1f91c",isCanonical:!0},":right_fist:":{unicode:["1f91c"],fname:"1f91c",uc:"1f91c",isCanonical:!1},":christmas_tree:":{unicode:["1f384"],fname:"1f384",uc:"1f384",isCanonical:!0},":santa:":{unicode:["1f385"],fname:"1f385",uc:"1f385",isCanonical:!0},":fireworks:":{unicode:["1f386"],fname:"1f386",uc:"1f386",isCanonical:!0},":raised_back_of_hand:":{unicode:["1f91a"],fname:"1f91a",uc:"1f91a",isCanonical:!0},":back_of_hand:":{unicode:["1f91a"],fname:"1f91a",uc:"1f91a",isCanonical:!1},":sparkler:":{unicode:["1f387"],fname:"1f387",uc:"1f387",isCanonical:!0},":balloon:":{unicode:["1f388"],fname:"1f388",uc:"1f388",isCanonical:!0},":tada:":{unicode:["1f389"],fname:"1f389",uc:"1f389",isCanonical:!0},":confetti_ball:":{unicode:["1f38a"],fname:"1f38a",uc:"1f38a",isCanonical:!0},":tanabata_tree:":{unicode:["1f38b"],fname:"1f38b",
+uc:"1f38b",isCanonical:!0},":crossed_flags:":{unicode:["1f38c"],fname:"1f38c",uc:"1f38c",isCanonical:!0},":call_me:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!0},":call_me_hand:":{unicode:["1f919"],fname:"1f919",uc:"1f919",isCanonical:!1},":bamboo:":{unicode:["1f38d"],fname:"1f38d",uc:"1f38d",isCanonical:!0},":man_dancing:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!0},":male_dancer:":{unicode:["1f57a"],fname:"1f57a",uc:"1f57a",isCanonical:!1},":dolls:":{unicode:["1f38e"],fname:"1f38e",uc:"1f38e",isCanonical:!0},":selfie:":{unicode:["1f933"],fname:"1f933",uc:"1f933",isCanonical:!0},":flags:":{unicode:["1f38f"],fname:"1f38f",uc:"1f38f",isCanonical:!0},":pregnant_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!0},":expecting_woman:":{unicode:["1f930"],fname:"1f930",uc:"1f930",isCanonical:!1},":wind_chime:":{unicode:["1f390"],fname:"1f390",uc:"1f390",isCanonical:!0},":face_palm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!0},":facepalm:":{unicode:["1f926"],fname:"1f926",uc:"1f926",isCanonical:!1},":shrug:":{unicode:["1f937"],fname:"1f937",uc:"1f937",isCanonical:!0},":rice_scene:":{unicode:["1f391"],fname:"1f391",uc:"1f391",isCanonical:!0},":school_satchel:":{unicode:["1f392"],fname:"1f392",uc:"1f392",isCanonical:!0},":mortar_board:":{unicode:["1f393"],fname:"1f393",uc:"1f393",isCanonical:!0},":carousel_horse:":{unicode:["1f3a0"],fname:"1f3a0",uc:"1f3a0",isCanonical:!0},":ferris_wheel:":{unicode:["1f3a1"],fname:"1f3a1",uc:"1f3a1",isCanonical:!0},":roller_coaster:":{unicode:["1f3a2"],fname:"1f3a2",uc:"1f3a2",isCanonical:!0},":fishing_pole_and_fish:":{unicode:["1f3a3"],fname:"1f3a3",uc:"1f3a3",isCanonical:!0},":microphone:":{unicode:["1f3a4"],fname:"1f3a4",uc:"1f3a4",isCanonical:!0},":movie_camera:":{unicode:["1f3a5"],fname:"1f3a5",uc:"1f3a5",isCanonical:!0},":cinema:":{unicode:["1f3a6"],fname:"1f3a6",uc:"1f3a6",isCanonical:!0},":headphones:":{unicode:["1f3a7"],fname:"1f3a7",uc:"1f3a7",isCanonical:!0},":mrs_claus:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!0},":mother_christmas:":{unicode:["1f936"],fname:"1f936",uc:"1f936",isCanonical:!1},":art:":{unicode:["1f3a8"],fname:"1f3a8",uc:"1f3a8",isCanonical:!0},":man_in_tuxedo:":{unicode:["1f935"],fname:"1f935",uc:"1f935",isCanonical:!0},":tophat:":{unicode:["1f3a9"],fname:"1f3a9",uc:"1f3a9",isCanonical:!0},":circus_tent:":{unicode:["1f3aa"],fname:"1f3aa",uc:"1f3aa",isCanonical:!0},":prince:":{unicode:["1f934"],fname:"1f934",uc:"1f934",isCanonical:!0},":ticket:":{unicode:["1f3ab"],fname:"1f3ab",uc:"1f3ab",isCanonical:!0},":clapper:":{unicode:["1f3ac"],fname:"1f3ac",uc:"1f3ac",isCanonical:!0},":performing_arts:":{unicode:["1f3ad"],fname:"1f3ad",uc:"1f3ad",isCanonical:!0},":sneezing_face:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!0},":sneeze:":{unicode:["1f927"],fname:"1f927",uc:"1f927",isCanonical:!1},":video_game:":{unicode:["1f3ae"],fname:"1f3ae",uc:"1f3ae",isCanonical:!0},":dart:":{unicode:["1f3af"],fname:"1f3af",uc:"1f3af",isCanonical:!0},":slot_machine:":{unicode:["1f3b0"],fname:"1f3b0",uc:"1f3b0",isCanonical:!0},":8ball:":{unicode:["1f3b1"],fname:"1f3b1",uc:"1f3b1",isCanonical:!0},":game_die:":{unicode:["1f3b2"],fname:"1f3b2",uc:"1f3b2",isCanonical:!0},":bowling:":{unicode:["1f3b3"],fname:"1f3b3",uc:"1f3b3",isCanonical:!0},":flower_playing_cards:":{unicode:["1f3b4"],fname:"1f3b4",uc:"1f3b4",isCanonical:!0},":lying_face:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!0},":liar:":{unicode:["1f925"],fname:"1f925",uc:"1f925",isCanonical:!1},":musical_note:":{unicode:["1f3b5"],fname:"1f3b5",uc:"1f3b5",isCanonical:!0},":notes:":{unicode:["1f3b6"],fname:"1f3b6",uc:"1f3b6",isCanonical:!0},":saxophone:":{unicode:["1f3b7"],fname:"1f3b7",uc:"1f3b7",isCanonical:!0},":drooling_face:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!0},":drool:":{unicode:["1f924"],fname:"1f924",uc:"1f924",isCanonical:!1},":guitar:":{unicode:["1f3b8"],fname:"1f3b8",uc:"1f3b8",isCanonical:!0},":musical_keyboard:":{unicode:["1f3b9"],fname:"1f3b9",uc:"1f3b9",isCanonical:!0},":trumpet:":{unicode:["1f3ba"],fname:"1f3ba",uc:"1f3ba",isCanonical:!0},":rofl:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!0},":rolling_on_the_floor_laughing:":{unicode:["1f923"],fname:"1f923",uc:"1f923",isCanonical:!1},":violin:":{unicode:["1f3bb"],fname:"1f3bb",uc:"1f3bb",isCanonical:!0},":musical_score:":{unicode:["1f3bc"],fname:"1f3bc",uc:"1f3bc",isCanonical:!0},":running_shirt_with_sash:":{unicode:["1f3bd"],fname:"1f3bd",uc:"1f3bd",isCanonical:!0},":nauseated_face:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!0},":sick:":{unicode:["1f922"],fname:"1f922",uc:"1f922",isCanonical:!1},":tennis:":{unicode:["1f3be"],fname:"1f3be",uc:"1f3be",isCanonical:!0},":ski:":{unicode:["1f3bf"],fname:"1f3bf",uc:"1f3bf",isCanonical:!0},":basketball:":{unicode:["1f3c0"],fname:"1f3c0",uc:"1f3c0",isCanonical:!0},":checkered_flag:":{unicode:["1f3c1"],fname:"1f3c1",uc:"1f3c1",isCanonical:!0},":clown:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!0},":clown_face:":{unicode:["1f921"],fname:"1f921",uc:"1f921",isCanonical:!1},":snowboarder:":{unicode:["1f3c2"],fname:"1f3c2",uc:"1f3c2",isCanonical:!0},":runner:":{unicode:["1f3c3"],fname:"1f3c3",uc:"1f3c3",isCanonical:!0},":surfer:":{unicode:["1f3c4"],fname:"1f3c4",uc:"1f3c4",isCanonical:!0},":trophy:":{unicode:["1f3c6"],fname:"1f3c6",uc:"1f3c6",isCanonical:!0},":football:":{unicode:["1f3c8"],fname:"1f3c8",uc:"1f3c8",isCanonical:!0},":swimmer:":{unicode:["1f3ca"],fname:"1f3ca",uc:"1f3ca",isCanonical:!0},":house:":{unicode:["1f3e0"],fname:"1f3e0",uc:"1f3e0",isCanonical:!0},":house_with_garden:":{unicode:["1f3e1"],fname:"1f3e1",uc:"1f3e1",isCanonical:!0},":office:":{unicode:["1f3e2"],fname:"1f3e2",uc:"1f3e2",isCanonical:!0},":post_office:":{unicode:["1f3e3"],fname:"1f3e3",uc:"1f3e3",isCanonical:!0},":hospital:":{unicode:["1f3e5"],fname:"1f3e5",uc:"1f3e5",isCanonical:!0},":bank:":{unicode:["1f3e6"],fname:"1f3e6",uc:"1f3e6",isCanonical:!0},":atm:":{unicode:["1f3e7"],fname:"1f3e7",uc:"1f3e7",isCanonical:!0},":hotel:":{unicode:["1f3e8"],fname:"1f3e8",uc:"1f3e8",isCanonical:!0},":love_hotel:":{unicode:["1f3e9"],fname:"1f3e9",uc:"1f3e9",isCanonical:!0},":convenience_store:":{unicode:["1f3ea"],fname:"1f3ea",uc:"1f3ea",isCanonical:!0},":school:":{unicode:["1f3eb"],fname:"1f3eb",uc:"1f3eb",isCanonical:!0},":department_store:":{unicode:["1f3ec"],fname:"1f3ec",uc:"1f3ec",isCanonical:!0},":cowboy:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!0},":face_with_cowboy_hat:":{unicode:["1f920"],fname:"1f920",uc:"1f920",isCanonical:!1},":factory:":{unicode:["1f3ed"],fname:"1f3ed",uc:"1f3ed",isCanonical:!0},":izakaya_lantern:":{unicode:["1f3ee"],fname:"1f3ee",uc:"1f3ee",isCanonical:!0},":japanese_castle:":{unicode:["1f3ef"],fname:"1f3ef",uc:"1f3ef",isCanonical:!0},":european_castle:":{unicode:["1f3f0"],fname:"1f3f0",uc:"1f3f0",isCanonical:!0},":snail:":{unicode:["1f40c"],fname:"1f40c",uc:"1f40c",isCanonical:!0},":snake:":{unicode:["1f40d"],fname:"1f40d",uc:"1f40d",isCanonical:!0},":racehorse:":{unicode:["1f40e"],fname:"1f40e",uc:"1f40e",isCanonical:!0},":sheep:":{unicode:["1f411"],fname:"1f411",uc:"1f411",isCanonical:!0},":monkey:":{unicode:["1f412"],fname:"1f412",uc:"1f412",isCanonical:!0},":chicken:":{unicode:["1f414"],fname:"1f414",uc:"1f414",isCanonical:!0},":boar:":{unicode:["1f417"],fname:"1f417",uc:"1f417",isCanonical:!0},":elephant:":{unicode:["1f418"],fname:"1f418",uc:"1f418",isCanonical:!0},":octopus:":{unicode:["1f419"],fname:"1f419",uc:"1f419",isCanonical:!0},":shell:":{unicode:["1f41a"],fname:"1f41a",uc:"1f41a",isCanonical:!0},":bug:":{unicode:["1f41b"],fname:"1f41b",uc:"1f41b",isCanonical:!0},":ant:":{unicode:["1f41c"],fname:"1f41c",uc:"1f41c",isCanonical:!0},":bee:":{unicode:["1f41d"],fname:"1f41d",uc:"1f41d",isCanonical:!0},":beetle:":{unicode:["1f41e"],fname:"1f41e",uc:"1f41e",isCanonical:!0},":fish:":{unicode:["1f41f"],fname:"1f41f",uc:"1f41f",isCanonical:!0},":tropical_fish:":{unicode:["1f420"],fname:"1f420",uc:"1f420",isCanonical:!0},":blowfish:":{unicode:["1f421"],fname:"1f421",uc:"1f421",isCanonical:!0},":turtle:":{unicode:["1f422"],fname:"1f422",uc:"1f422",isCanonical:!0},":hatching_chick:":{unicode:["1f423"],fname:"1f423",uc:"1f423",isCanonical:!0},":baby_chick:":{unicode:["1f424"],fname:"1f424",uc:"1f424",isCanonical:!0},":hatched_chick:":{unicode:["1f425"],fname:"1f425",uc:"1f425",isCanonical:!0},":bird:":{unicode:["1f426"],fname:"1f426",uc:"1f426",isCanonical:!0},":penguin:":{unicode:["1f427"],fname:"1f427",uc:"1f427",isCanonical:!0},":koala:":{unicode:["1f428"],fname:"1f428",uc:"1f428",isCanonical:!0},":poodle:":{unicode:["1f429"],fname:"1f429",uc:"1f429",isCanonical:!0},":camel:":{unicode:["1f42b"],fname:"1f42b",uc:"1f42b",isCanonical:!0},":dolphin:":{unicode:["1f42c"],fname:"1f42c",uc:"1f42c",isCanonical:!0},":mouse:":{unicode:["1f42d"],fname:"1f42d",uc:"1f42d",isCanonical:!0},":cow:":{unicode:["1f42e"],fname:"1f42e",uc:"1f42e",isCanonical:!0},":tiger:":{unicode:["1f42f"],fname:"1f42f",uc:"1f42f",isCanonical:!0},":rabbit:":{unicode:["1f430"],fname:"1f430",uc:"1f430",isCanonical:!0},":cat:":{unicode:["1f431"],fname:"1f431",uc:"1f431",isCanonical:!0},":dragon_face:":{unicode:["1f432"],fname:"1f432",uc:"1f432",isCanonical:!0},":whale:":{unicode:["1f433"],fname:"1f433",uc:"1f433",isCanonical:!0},":horse:":{unicode:["1f434"],fname:"1f434",uc:"1f434",isCanonical:!0},":monkey_face:":{unicode:["1f435"],fname:"1f435",uc:"1f435",isCanonical:!0},":dog:":{unicode:["1f436"],fname:"1f436",uc:"1f436",isCanonical:!0},":pig:":{unicode:["1f437"],fname:"1f437",uc:"1f437",isCanonical:!0},":frog:":{unicode:["1f438"],fname:"1f438",uc:"1f438",isCanonical:!0},":hamster:":{unicode:["1f439"],fname:"1f439",uc:"1f439",isCanonical:!0},":wolf:":{unicode:["1f43a"],fname:"1f43a",uc:"1f43a",isCanonical:!0},":bear:":{unicode:["1f43b"],fname:"1f43b",uc:"1f43b",isCanonical:!0},":panda_face:":{unicode:["1f43c"],fname:"1f43c",uc:"1f43c",isCanonical:!0},":pig_nose:":{unicode:["1f43d"],fname:"1f43d",uc:"1f43d",isCanonical:!0},":feet:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!0},":paw_prints:":{unicode:["1f43e"],fname:"1f43e",uc:"1f43e",isCanonical:!1},":eyes:":{unicode:["1f440"],fname:"1f440",uc:"1f440",isCanonical:!0},":ear:":{unicode:["1f442"],fname:"1f442",uc:"1f442",isCanonical:!0},":nose:":{unicode:["1f443"],fname:"1f443",uc:"1f443",isCanonical:!0},":lips:":{unicode:["1f444"],fname:"1f444",uc:"1f444",isCanonical:!0},":tongue:":{unicode:["1f445"],fname:"1f445",uc:"1f445",isCanonical:!0},":point_up_2:":{unicode:["1f446"],fname:"1f446",uc:"1f446",isCanonical:!0},":point_down:":{unicode:["1f447"],fname:"1f447",uc:"1f447",isCanonical:!0},":point_left:":{unicode:["1f448"],fname:"1f448",uc:"1f448",isCanonical:!0},":point_right:":{unicode:["1f449"],fname:"1f449",uc:"1f449",isCanonical:!0},":punch:":{unicode:["1f44a"],fname:"1f44a",uc:"1f44a",isCanonical:!0},":wave:":{unicode:["1f44b"],fname:"1f44b",uc:"1f44b",isCanonical:!0},":ok_hand:":{unicode:["1f44c"],fname:"1f44c",uc:"1f44c",isCanonical:!0},":thumbsup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!0},":+1:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbup:":{unicode:["1f44d"],fname:"1f44d",uc:"1f44d",isCanonical:!1},":thumbsdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!0},":-1:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":thumbdown:":{unicode:["1f44e"],fname:"1f44e",uc:"1f44e",isCanonical:!1},":clap:":{unicode:["1f44f"],fname:"1f44f",uc:"1f44f",isCanonical:!0},":open_hands:":{unicode:["1f450"],fname:"1f450",uc:"1f450",isCanonical:!0},":crown:":{unicode:["1f451"],fname:"1f451",uc:"1f451",isCanonical:!0},":womans_hat:":{unicode:["1f452"],fname:"1f452",uc:"1f452",isCanonical:!0},":eyeglasses:":{unicode:["1f453"],fname:"1f453",uc:"1f453",isCanonical:!0},":necktie:":{unicode:["1f454"],fname:"1f454",uc:"1f454",isCanonical:!0},":shirt:":{unicode:["1f455"],fname:"1f455",uc:"1f455",isCanonical:!0},":jeans:":{unicode:["1f456"],fname:"1f456",uc:"1f456",isCanonical:!0},":dress:":{unicode:["1f457"],fname:"1f457",uc:"1f457",isCanonical:!0},":kimono:":{unicode:["1f458"],fname:"1f458",uc:"1f458",isCanonical:!0},":bikini:":{unicode:["1f459"],fname:"1f459",uc:"1f459",isCanonical:!0},":womans_clothes:":{unicode:["1f45a"],fname:"1f45a",uc:"1f45a",isCanonical:!0},":purse:":{unicode:["1f45b"],fname:"1f45b",uc:"1f45b",isCanonical:!0},":handbag:":{unicode:["1f45c"],fname:"1f45c",uc:"1f45c",isCanonical:!0},":pouch:":{unicode:["1f45d"],fname:"1f45d",uc:"1f45d",isCanonical:!0},":mans_shoe:":{unicode:["1f45e"],fname:"1f45e",uc:"1f45e",isCanonical:!0},":athletic_shoe:":{unicode:["1f45f"],fname:"1f45f",uc:"1f45f",isCanonical:!0},":high_heel:":{unicode:["1f460"],fname:"1f460",uc:"1f460",isCanonical:!0},":sandal:":{unicode:["1f461"],fname:"1f461",uc:"1f461",isCanonical:!0},":boot:":{unicode:["1f462"],fname:"1f462",uc:"1f462",isCanonical:!0},":footprints:":{unicode:["1f463"],fname:"1f463",uc:"1f463",isCanonical:!0},":bust_in_silhouette:":{unicode:["1f464"],fname:"1f464",uc:"1f464",isCanonical:!0},":boy:":{unicode:["1f466"],fname:"1f466",uc:"1f466",isCanonical:!0},":girl:":{unicode:["1f467"],fname:"1f467",uc:"1f467",isCanonical:!0},":man:":{unicode:["1f468"],fname:"1f468",uc:"1f468",isCanonical:!0},":woman:":{unicode:["1f469"],fname:"1f469",uc:"1f469",isCanonical:!0},":family:":{unicode:["1f46a"],fname:"1f46a",uc:"1f46a",isCanonical:!0},":couple:":{unicode:["1f46b"],fname:"1f46b",uc:"1f46b",isCanonical:!0},":cop:":{unicode:["1f46e"],fname:"1f46e",uc:"1f46e",isCanonical:!0},":dancers:":{unicode:["1f46f"],fname:"1f46f",uc:"1f46f",isCanonical:!0},":bride_with_veil:":{unicode:["1f470"],fname:"1f470",uc:"1f470",isCanonical:!0},":person_with_blond_hair:":{unicode:["1f471"],fname:"1f471",uc:"1f471",isCanonical:!0},":man_with_gua_pi_mao:":{unicode:["1f472"],fname:"1f472",uc:"1f472",isCanonical:!0},":man_with_turban:":{unicode:["1f473"],fname:"1f473",uc:"1f473",isCanonical:!0},":older_man:":{unicode:["1f474"],fname:"1f474",uc:"1f474",isCanonical:!0},":older_woman:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!0},":grandma:":{unicode:["1f475"],fname:"1f475",uc:"1f475",isCanonical:!1},":baby:":{unicode:["1f476"],fname:"1f476",uc:"1f476",isCanonical:!0},":construction_worker:":{unicode:["1f477"],fname:"1f477",uc:"1f477",isCanonical:!0},":princess:":{unicode:["1f478"],fname:"1f478",uc:"1f478",isCanonical:!0},":japanese_ogre:":{unicode:["1f479"],fname:"1f479",uc:"1f479",isCanonical:!0},":japanese_goblin:":{unicode:["1f47a"],fname:"1f47a",uc:"1f47a",isCanonical:!0},":ghost:":{unicode:["1f47b"],fname:"1f47b",uc:"1f47b",isCanonical:!0},":angel:":{unicode:["1f47c"],fname:"1f47c",uc:"1f47c",isCanonical:!0},":alien:":{unicode:["1f47d"],fname:"1f47d",uc:"1f47d",isCanonical:!0},":space_invader:":{unicode:["1f47e"],fname:"1f47e",uc:"1f47e",isCanonical:!0},":imp:":{unicode:["1f47f"],fname:"1f47f",uc:"1f47f",isCanonical:!0},":skull:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!0},":skeleton:":{unicode:["1f480"],fname:"1f480",uc:"1f480",isCanonical:!1},":card_index:":{unicode:["1f4c7"],fname:"1f4c7",uc:"1f4c7",isCanonical:!0},":information_desk_person:":{unicode:["1f481"],fname:"1f481",uc:"1f481",isCanonical:!0},":guardsman:":{unicode:["1f482"],fname:"1f482",uc:"1f482",isCanonical:!0},":dancer:":{unicode:["1f483"],fname:"1f483",uc:"1f483",isCanonical:!0},":lipstick:":{unicode:["1f484"],fname:"1f484",uc:"1f484",isCanonical:!0},":nail_care:":{unicode:["1f485"],fname:"1f485",uc:"1f485",isCanonical:!0},":ledger:":{unicode:["1f4d2"],fname:"1f4d2",uc:"1f4d2",isCanonical:!0},":massage:":{unicode:["1f486"],fname:"1f486",uc:"1f486",isCanonical:!0},":notebook:":{unicode:["1f4d3"],fname:"1f4d3",uc:"1f4d3",isCanonical:!0},":haircut:":{unicode:["1f487"],fname:"1f487",uc:"1f487",isCanonical:!0},":notebook_with_decorative_cover:":{unicode:["1f4d4"],fname:"1f4d4",uc:"1f4d4",isCanonical:!0},":barber:":{unicode:["1f488"],fname:"1f488",uc:"1f488",isCanonical:!0},":closed_book:":{unicode:["1f4d5"],fname:"1f4d5",uc:"1f4d5",isCanonical:!0},":syringe:":{unicode:["1f489"],fname:"1f489",uc:"1f489",isCanonical:!0},":book:":{unicode:["1f4d6"],fname:"1f4d6",uc:"1f4d6",isCanonical:!0},":pill:":{unicode:["1f48a"],fname:"1f48a",uc:"1f48a",isCanonical:!0},":green_book:":{unicode:["1f4d7"],fname:"1f4d7",uc:"1f4d7",isCanonical:!0},":kiss:":{unicode:["1f48b"],fname:"1f48b",uc:"1f48b",isCanonical:!0},":blue_book:":{unicode:["1f4d8"],fname:"1f4d8",uc:"1f4d8",isCanonical:!0},":love_letter:":{unicode:["1f48c"],fname:"1f48c",uc:"1f48c",isCanonical:!0},":orange_book:":{unicode:["1f4d9"],fname:"1f4d9",uc:"1f4d9",isCanonical:!0},":ring:":{unicode:["1f48d"],fname:"1f48d",uc:"1f48d",isCanonical:!0},":books:":{unicode:["1f4da"],fname:"1f4da",uc:"1f4da",isCanonical:!0},":gem:":{unicode:["1f48e"],fname:"1f48e",uc:"1f48e",isCanonical:!0},":name_badge:":{unicode:["1f4db"],fname:"1f4db",uc:"1f4db",isCanonical:!0},":couplekiss:":{unicode:["1f48f"],fname:"1f48f",uc:"1f48f",isCanonical:!0},":scroll:":{unicode:["1f4dc"],fname:"1f4dc",uc:"1f4dc",isCanonical:!0},":bouquet:":{unicode:["1f490"],fname:"1f490",uc:"1f490",isCanonical:!0},":pencil:":{unicode:["1f4dd"],fname:"1f4dd",uc:"1f4dd",isCanonical:!0},":couple_with_heart:":{unicode:["1f491"],fname:"1f491",uc:"1f491",isCanonical:!0},":telephone_receiver:":{unicode:["1f4de"],fname:"1f4de",uc:"1f4de",isCanonical:!0},":wedding:":{unicode:["1f492"],fname:"1f492",uc:"1f492",isCanonical:!0},":pager:":{unicode:["1f4df"],fname:"1f4df",uc:"1f4df",isCanonical:!0},":fax:":{unicode:["1f4e0"],fname:"1f4e0",uc:"1f4e0",isCanonical:!0},":heartbeat:":{unicode:["1f493"],fname:"1f493",uc:"1f493",isCanonical:!0},":satellite:":{unicode:["1f4e1"],fname:"1f4e1",uc:"1f4e1",isCanonical:!0},":loudspeaker:":{unicode:["1f4e2"],fname:"1f4e2",uc:"1f4e2",isCanonical:!0},":broken_heart:":{unicode:["1f494"],fname:"1f494",uc:"1f494",isCanonical:!0},":mega:":{unicode:["1f4e3"],fname:"1f4e3",uc:"1f4e3",isCanonical:!0},":outbox_tray:":{unicode:["1f4e4"],fname:"1f4e4",uc:"1f4e4",isCanonical:!0},":two_hearts:":{unicode:["1f495"],fname:"1f495",uc:"1f495",isCanonical:!0},":inbox_tray:":{unicode:["1f4e5"],fname:"1f4e5",uc:"1f4e5",isCanonical:!0},":package:":{unicode:["1f4e6"],fname:"1f4e6",uc:"1f4e6",isCanonical:!0},":sparkling_heart:":{unicode:["1f496"],fname:"1f496",uc:"1f496",isCanonical:!0},":e-mail:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!0},":email:":{unicode:["1f4e7"],fname:"1f4e7",uc:"1f4e7",isCanonical:!1},":incoming_envelope:":{unicode:["1f4e8"],fname:"1f4e8",uc:"1f4e8",isCanonical:!0},":heartpulse:":{unicode:["1f497"],fname:"1f497",uc:"1f497",isCanonical:!0},":envelope_with_arrow:":{unicode:["1f4e9"],fname:"1f4e9",uc:"1f4e9",isCanonical:!0},":mailbox_closed:":{unicode:["1f4ea"],fname:"1f4ea",uc:"1f4ea",isCanonical:!0},":cupid:":{unicode:["1f498"],fname:"1f498",uc:"1f498",isCanonical:!0},":mailbox:":{unicode:["1f4eb"],fname:"1f4eb",uc:"1f4eb",isCanonical:!0},":postbox:":{unicode:["1f4ee"],fname:"1f4ee",uc:"1f4ee",isCanonical:!0},":blue_heart:":{unicode:["1f499"],fname:"1f499",uc:"1f499",isCanonical:!0},":newspaper:":{unicode:["1f4f0"],fname:"1f4f0",uc:"1f4f0",isCanonical:!0},":iphone:":{unicode:["1f4f1"],fname:"1f4f1",uc:"1f4f1",isCanonical:!0},":green_heart:":{unicode:["1f49a"],fname:"1f49a",uc:"1f49a",isCanonical:!0},":calling:":{unicode:["1f4f2"],fname:"1f4f2",uc:"1f4f2",isCanonical:!0},":vibration_mode:":{unicode:["1f4f3"],fname:"1f4f3",uc:"1f4f3",isCanonical:!0},":yellow_heart:":{unicode:["1f49b"],fname:"1f49b",uc:"1f49b",isCanonical:!0},":mobile_phone_off:":{unicode:["1f4f4"],fname:"1f4f4",uc:"1f4f4",isCanonical:!0},":signal_strength:":{unicode:["1f4f6"],fname:"1f4f6",uc:"1f4f6",isCanonical:!0},":purple_heart:":{unicode:["1f49c"],fname:"1f49c",uc:"1f49c",isCanonical:!0},":camera:":{unicode:["1f4f7"],fname:"1f4f7",uc:"1f4f7",isCanonical:!0},":video_camera:":{unicode:["1f4f9"],fname:"1f4f9",uc:"1f4f9",isCanonical:!0},":gift_heart:":{unicode:["1f49d"],fname:"1f49d",uc:"1f49d",isCanonical:!0},":tv:":{unicode:["1f4fa"],fname:"1f4fa",uc:"1f4fa",isCanonical:!0},":radio:":{unicode:["1f4fb"],fname:"1f4fb",uc:"1f4fb",isCanonical:!0},":revolving_hearts:":{unicode:["1f49e"],fname:"1f49e",uc:"1f49e",isCanonical:!0},":vhs:":{unicode:["1f4fc"],fname:"1f4fc",uc:"1f4fc",isCanonical:!0},":arrows_clockwise:":{unicode:["1f503"],fname:"1f503",uc:"1f503",isCanonical:!0},":heart_decoration:":{unicode:["1f49f"],fname:"1f49f",uc:"1f49f",isCanonical:!0},":loud_sound:":{unicode:["1f50a"],fname:"1f50a",uc:"1f50a",isCanonical:!0},":battery:":{unicode:["1f50b"],fname:"1f50b",uc:"1f50b",isCanonical:!0},":diamond_shape_with_a_dot_inside:":{unicode:["1f4a0"],fname:"1f4a0",uc:"1f4a0",isCanonical:!0},":electric_plug:":{unicode:["1f50c"],fname:"1f50c",uc:"1f50c",isCanonical:!0},":mag:":{unicode:["1f50d"],fname:"1f50d",uc:"1f50d",isCanonical:!0},":bulb:":{unicode:["1f4a1"],fname:"1f4a1",uc:"1f4a1",isCanonical:!0},":mag_right:":{unicode:["1f50e"],fname:"1f50e",uc:"1f50e",isCanonical:!0},":lock_with_ink_pen:":{unicode:["1f50f"],fname:"1f50f",uc:"1f50f",isCanonical:!0},":anger:":{unicode:["1f4a2"],fname:"1f4a2",uc:"1f4a2",isCanonical:!0},":closed_lock_with_key:":{unicode:["1f510"],fname:"1f510",uc:"1f510",isCanonical:!0},":key:":{unicode:["1f511"],fname:"1f511",uc:"1f511",isCanonical:!0},":bomb:":{unicode:["1f4a3"],fname:"1f4a3",uc:"1f4a3",isCanonical:!0},":lock:":{unicode:["1f512"],fname:"1f512",uc:"1f512",isCanonical:!0},":unlock:":{unicode:["1f513"],fname:"1f513",uc:"1f513",isCanonical:!0},":zzz:":{unicode:["1f4a4"],fname:"1f4a4",uc:"1f4a4",isCanonical:!0},":bell:":{unicode:["1f514"],fname:"1f514",uc:"1f514",isCanonical:!0},":bookmark:":{unicode:["1f516"],fname:"1f516",uc:"1f516",isCanonical:!0},":boom:":{unicode:["1f4a5"],fname:"1f4a5",uc:"1f4a5",isCanonical:!0},":link:":{unicode:["1f517"],fname:"1f517",uc:"1f517",isCanonical:!0},":radio_button:":{unicode:["1f518"],fname:"1f518",uc:"1f518",isCanonical:!0},":sweat_drops:":{unicode:["1f4a6"],fname:"1f4a6",uc:"1f4a6",isCanonical:!0},":back:":{unicode:["1f519"],fname:"1f519",uc:"1f519",isCanonical:!0},":end:":{unicode:["1f51a"],fname:"1f51a",uc:"1f51a",isCanonical:!0},":droplet:":{unicode:["1f4a7"],fname:"1f4a7",uc:"1f4a7",isCanonical:!0},":on:":{unicode:["1f51b"],fname:"1f51b",uc:"1f51b",isCanonical:!0},":soon:":{unicode:["1f51c"],fname:"1f51c",uc:"1f51c",isCanonical:!0},":dash:":{unicode:["1f4a8"],fname:"1f4a8",uc:"1f4a8",isCanonical:!0},":top:":{unicode:["1f51d"],fname:"1f51d",uc:"1f51d",isCanonical:!0},":underage:":{unicode:["1f51e"],fname:"1f51e",uc:"1f51e",isCanonical:!0},":poop:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!0},":shit:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":hankey:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":poo:":{unicode:["1f4a9"],fname:"1f4a9",uc:"1f4a9",isCanonical:!1},":keycap_ten:":{unicode:["1f51f"],fname:"1f51f",uc:"1f51f",isCanonical:!0},":muscle:":{unicode:["1f4aa"],fname:"1f4aa",uc:"1f4aa",isCanonical:!0},":capital_abcd:":{unicode:["1f520"],fname:"1f520",uc:"1f520",isCanonical:!0},":abcd:":{unicode:["1f521"],fname:"1f521",uc:"1f521",isCanonical:!0},":dizzy:":{unicode:["1f4ab"],fname:"1f4ab",uc:"1f4ab",isCanonical:!0},":1234:":{unicode:["1f522"],fname:"1f522",uc:"1f522",isCanonical:!0},":symbols:":{unicode:["1f523"],fname:"1f523",uc:"1f523",isCanonical:!0},":speech_balloon:":{unicode:["1f4ac"],fname:"1f4ac",uc:"1f4ac",isCanonical:!0},":abc:":{unicode:["1f524"],fname:"1f524",uc:"1f524",isCanonical:!0},":fire:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!0},":flame:":{unicode:["1f525"],fname:"1f525",uc:"1f525",isCanonical:!1},":white_flower:":{unicode:["1f4ae"],fname:"1f4ae",uc:"1f4ae",isCanonical:!0},":flashlight:":{unicode:["1f526"],fname:"1f526",uc:"1f526",isCanonical:!0},":wrench:":{unicode:["1f527"],fname:"1f527",uc:"1f527",isCanonical:!0},":100:":{unicode:["1f4af"],fname:"1f4af",uc:"1f4af",isCanonical:!0},":hammer:":{unicode:["1f528"],fname:"1f528",uc:"1f528",isCanonical:!0},":nut_and_bolt:":{unicode:["1f529"],fname:"1f529",uc:"1f529",isCanonical:!0},":moneybag:":{unicode:["1f4b0"],fname:"1f4b0",uc:"1f4b0",isCanonical:!0},":knife:":{unicode:["1f52a"],fname:"1f52a",uc:"1f52a",isCanonical:!0},":gun:":{unicode:["1f52b"],fname:"1f52b",uc:"1f52b",isCanonical:!0},":currency_exchange:":{unicode:["1f4b1"],fname:"1f4b1",uc:"1f4b1",isCanonical:!0},":crystal_ball:":{unicode:["1f52e"],fname:"1f52e",uc:"1f52e",isCanonical:!0},":heavy_dollar_sign:":{unicode:["1f4b2"],fname:"1f4b2",uc:"1f4b2",isCanonical:!0},":six_pointed_star:":{unicode:["1f52f"],fname:"1f52f",uc:"1f52f",isCanonical:!0},":credit_card:":{unicode:["1f4b3"],fname:"1f4b3",uc:"1f4b3",isCanonical:!0},":beginner:":{unicode:["1f530"],fname:"1f530",uc:"1f530",isCanonical:!0},":trident:":{unicode:["1f531"],fname:"1f531",uc:"1f531",isCanonical:!0},":yen:":{unicode:["1f4b4"],fname:"1f4b4",uc:"1f4b4",isCanonical:!0},":black_square_button:":{unicode:["1f532"],fname:"1f532",uc:"1f532",isCanonical:!0},":white_square_button:":{unicode:["1f533"],fname:"1f533",uc:"1f533",isCanonical:!0},":dollar:":{unicode:["1f4b5"],fname:"1f4b5",uc:"1f4b5",isCanonical:!0},":red_circle:":{unicode:["1f534"],fname:"1f534",uc:"1f534",isCanonical:!0},":blue_circle:":{unicode:["1f535"],fname:"1f535",uc:"1f535",isCanonical:!0},":money_with_wings:":{unicode:["1f4b8"],fname:"1f4b8",uc:"1f4b8",isCanonical:!0},":large_orange_diamond:":{unicode:["1f536"],fname:"1f536",uc:"1f536",isCanonical:!0},":large_blue_diamond:":{unicode:["1f537"],fname:"1f537",uc:"1f537",isCanonical:!0},":chart:":{unicode:["1f4b9"],fname:"1f4b9",uc:"1f4b9",isCanonical:!0},":small_orange_diamond:":{unicode:["1f538"],fname:"1f538",uc:"1f538",isCanonical:!0},":small_blue_diamond:":{unicode:["1f539"],fname:"1f539",uc:"1f539",isCanonical:!0},":seat:":{unicode:["1f4ba"],fname:"1f4ba",uc:"1f4ba",isCanonical:!0},":small_red_triangle:":{unicode:["1f53a"],fname:"1f53a",uc:"1f53a",isCanonical:!0},":small_red_triangle_down:":{unicode:["1f53b"],fname:"1f53b",uc:"1f53b",isCanonical:!0},":computer:":{unicode:["1f4bb"],fname:"1f4bb",uc:"1f4bb",isCanonical:!0},":arrow_up_small:":{unicode:["1f53c"],fname:"1f53c",uc:"1f53c",isCanonical:!0},":briefcase:":{unicode:["1f4bc"],fname:"1f4bc",uc:"1f4bc",isCanonical:!0},":arrow_down_small:":{unicode:["1f53d"],fname:"1f53d",uc:"1f53d",isCanonical:!0},":clock1:":{unicode:["1f550"],fname:"1f550",uc:"1f550",isCanonical:!0},":minidisc:":{unicode:["1f4bd"],fname:"1f4bd",uc:"1f4bd",isCanonical:!0},":clock2:":{unicode:["1f551"],fname:"1f551",uc:"1f551",isCanonical:!0},":floppy_disk:":{unicode:["1f4be"],fname:"1f4be",uc:"1f4be",isCanonical:!0},":clock3:":{unicode:["1f552"],fname:"1f552",uc:"1f552",isCanonical:!0},":cd:":{unicode:["1f4bf"],fname:"1f4bf",uc:"1f4bf",isCanonical:!0},":clock4:":{unicode:["1f553"],fname:"1f553",uc:"1f553",isCanonical:!0},":dvd:":{unicode:["1f4c0"],fname:"1f4c0",uc:"1f4c0",isCanonical:!0},":clock5:":{unicode:["1f554"],fname:"1f554",uc:"1f554",isCanonical:!0},":clock6:":{unicode:["1f555"],fname:"1f555",uc:"1f555",isCanonical:!0},":file_folder:":{unicode:["1f4c1"],fname:"1f4c1",uc:"1f4c1",isCanonical:!0},":clock7:":{unicode:["1f556"],fname:"1f556",uc:"1f556",isCanonical:!0},":clock8:":{unicode:["1f557"],fname:"1f557",uc:"1f557",isCanonical:!0},":open_file_folder:":{unicode:["1f4c2"],fname:"1f4c2",uc:"1f4c2",isCanonical:!0},":clock9:":{unicode:["1f558"],fname:"1f558",uc:"1f558",isCanonical:!0},":clock10:":{unicode:["1f559"],fname:"1f559",uc:"1f559",isCanonical:!0},":page_with_curl:":{unicode:["1f4c3"],fname:"1f4c3",uc:"1f4c3",isCanonical:!0},":clock11:":{unicode:["1f55a"],fname:"1f55a",uc:"1f55a",isCanonical:!0},":clock12:":{unicode:["1f55b"],fname:"1f55b",uc:"1f55b",isCanonical:!0},":page_facing_up:":{unicode:["1f4c4"],fname:"1f4c4",uc:"1f4c4",isCanonical:!0},":mount_fuji:":{unicode:["1f5fb"],fname:"1f5fb",uc:"1f5fb",isCanonical:!0},":tokyo_tower:":{unicode:["1f5fc"],fname:"1f5fc",uc:"1f5fc",isCanonical:!0},":date:":{unicode:["1f4c5"],fname:"1f4c5",uc:"1f4c5",isCanonical:!0},":statue_of_liberty:":{unicode:["1f5fd"],fname:"1f5fd",uc:"1f5fd",isCanonical:!0},":japan:":{unicode:["1f5fe"],fname:"1f5fe",uc:"1f5fe",isCanonical:!0},":calendar:":{unicode:["1f4c6"],fname:"1f4c6",uc:"1f4c6",isCanonical:!0},":moyai:":{unicode:["1f5ff"],fname:"1f5ff",uc:"1f5ff",isCanonical:!0},":grin:":{unicode:["1f601"],fname:"1f601",uc:"1f601",isCanonical:!0},":joy:":{unicode:["1f602"],fname:"1f602",uc:"1f602",isCanonical:!0},":smiley:":{unicode:["1f603"],fname:"1f603",uc:"1f603",isCanonical:!0},":chart_with_upwards_trend:":{unicode:["1f4c8"],fname:"1f4c8",uc:"1f4c8",isCanonical:!0},":smile:":{unicode:["1f604"],fname:"1f604",uc:"1f604",isCanonical:!0},":sweat_smile:":{unicode:["1f605"],fname:"1f605",uc:"1f605",isCanonical:!0},":chart_with_downwards_trend:":{unicode:["1f4c9"],fname:"1f4c9",uc:"1f4c9",isCanonical:!0},":laughing:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!0},":satisfied:":{unicode:["1f606"],fname:"1f606",uc:"1f606",isCanonical:!1},":wink:":{unicode:["1f609"],fname:"1f609",uc:"1f609",isCanonical:!0},":bar_chart:":{unicode:["1f4ca"],fname:"1f4ca",uc:"1f4ca",isCanonical:!0},":blush:":{unicode:["1f60a"],fname:"1f60a",uc:"1f60a",isCanonical:!0},":yum:":{unicode:["1f60b"],fname:"1f60b",uc:"1f60b",isCanonical:!0},":clipboard:":{unicode:["1f4cb"],fname:"1f4cb",uc:"1f4cb",isCanonical:!0},":relieved:":{unicode:["1f60c"],fname:"1f60c",uc:"1f60c",isCanonical:!0},":heart_eyes:":{unicode:["1f60d"],fname:"1f60d",uc:"1f60d",isCanonical:!0},":pushpin:":{unicode:["1f4cc"],fname:"1f4cc",uc:"1f4cc",isCanonical:!0},":smirk:":{unicode:["1f60f"],fname:"1f60f",uc:"1f60f",isCanonical:!0},":unamused:":{unicode:["1f612"],fname:"1f612",uc:"1f612",isCanonical:!0},":round_pushpin:":{unicode:["1f4cd"],fname:"1f4cd",uc:"1f4cd",isCanonical:!0},":sweat:":{unicode:["1f613"],fname:"1f613",uc:"1f613",isCanonical:!0},":pensive:":{unicode:["1f614"],fname:"1f614",uc:"1f614",isCanonical:!0},":paperclip:":{unicode:["1f4ce"],fname:"1f4ce",uc:"1f4ce",isCanonical:!0},":confounded:":{unicode:["1f616"],fname:"1f616",uc:"1f616",isCanonical:!0},":kissing_heart:":{unicode:["1f618"],fname:"1f618",uc:"1f618",isCanonical:!0},":straight_ruler:":{unicode:["1f4cf"],fname:"1f4cf",uc:"1f4cf",isCanonical:!0},":kissing_closed_eyes:":{unicode:["1f61a"],fname:"1f61a",uc:"1f61a",isCanonical:!0},":stuck_out_tongue_winking_eye:":{unicode:["1f61c"],fname:"1f61c",uc:"1f61c",isCanonical:!0},":triangular_ruler:":{unicode:["1f4d0"],fname:"1f4d0",uc:"1f4d0",isCanonical:!0},":stuck_out_tongue_closed_eyes:":{unicode:["1f61d"],fname:"1f61d",uc:"1f61d",isCanonical:!0},":disappointed:":{unicode:["1f61e"],fname:"1f61e",uc:"1f61e",isCanonical:!0},":bookmark_tabs:":{unicode:["1f4d1"],fname:"1f4d1",uc:"1f4d1",isCanonical:!0},":angry:":{unicode:["1f620"],fname:"1f620",uc:"1f620",isCanonical:!0},":rage:":{unicode:["1f621"],fname:"1f621",uc:"1f621",isCanonical:!0},":cry:":{unicode:["1f622"],fname:"1f622",uc:"1f622",isCanonical:!0},":persevere:":{unicode:["1f623"],fname:"1f623",uc:"1f623",isCanonical:!0},":triumph:":{unicode:["1f624"],fname:"1f624",uc:"1f624",isCanonical:!0},":disappointed_relieved:":{unicode:["1f625"],fname:"1f625",uc:"1f625",isCanonical:!0},":fearful:":{unicode:["1f628"],fname:"1f628",uc:"1f628",isCanonical:!0},":weary:":{unicode:["1f629"],fname:"1f629",uc:"1f629",isCanonical:!0},":sleepy:":{unicode:["1f62a"],fname:"1f62a",uc:"1f62a",isCanonical:!0},":tired_face:":{unicode:["1f62b"],fname:"1f62b",uc:"1f62b",isCanonical:!0},":sob:":{unicode:["1f62d"],fname:"1f62d",uc:"1f62d",isCanonical:!0},":cold_sweat:":{unicode:["1f630"],fname:"1f630",uc:"1f630",isCanonical:!0},":scream:":{unicode:["1f631"],fname:"1f631",uc:"1f631",isCanonical:!0},":astonished:":{unicode:["1f632"],fname:"1f632",uc:"1f632",isCanonical:!0},":flushed:":{unicode:["1f633"],fname:"1f633",uc:"1f633",isCanonical:!0},":dizzy_face:":{unicode:["1f635"],fname:"1f635",uc:"1f635",isCanonical:!0},":mask:":{unicode:["1f637"],fname:"1f637",uc:"1f637",isCanonical:!0},":smile_cat:":{unicode:["1f638"],fname:"1f638",uc:"1f638",isCanonical:!0},
+":joy_cat:":{unicode:["1f639"],fname:"1f639",uc:"1f639",isCanonical:!0},":smiley_cat:":{unicode:["1f63a"],fname:"1f63a",uc:"1f63a",isCanonical:!0},":heart_eyes_cat:":{unicode:["1f63b"],fname:"1f63b",uc:"1f63b",isCanonical:!0},":smirk_cat:":{unicode:["1f63c"],fname:"1f63c",uc:"1f63c",isCanonical:!0},":kissing_cat:":{unicode:["1f63d"],fname:"1f63d",uc:"1f63d",isCanonical:!0},":pouting_cat:":{unicode:["1f63e"],fname:"1f63e",uc:"1f63e",isCanonical:!0},":crying_cat_face:":{unicode:["1f63f"],fname:"1f63f",uc:"1f63f",isCanonical:!0},":scream_cat:":{unicode:["1f640"],fname:"1f640",uc:"1f640",isCanonical:!0},":no_good:":{unicode:["1f645"],fname:"1f645",uc:"1f645",isCanonical:!0},":ok_woman:":{unicode:["1f646"],fname:"1f646",uc:"1f646",isCanonical:!0},":bow:":{unicode:["1f647"],fname:"1f647",uc:"1f647",isCanonical:!0},":see_no_evil:":{unicode:["1f648"],fname:"1f648",uc:"1f648",isCanonical:!0},":hear_no_evil:":{unicode:["1f649"],fname:"1f649",uc:"1f649",isCanonical:!0},":speak_no_evil:":{unicode:["1f64a"],fname:"1f64a",uc:"1f64a",isCanonical:!0},":raising_hand:":{unicode:["1f64b"],fname:"1f64b",uc:"1f64b",isCanonical:!0},":raised_hands:":{unicode:["1f64c"],fname:"1f64c",uc:"1f64c",isCanonical:!0},":person_frowning:":{unicode:["1f64d"],fname:"1f64d",uc:"1f64d",isCanonical:!0},":person_with_pouting_face:":{unicode:["1f64e"],fname:"1f64e",uc:"1f64e",isCanonical:!0},":pray:":{unicode:["1f64f"],fname:"1f64f",uc:"1f64f",isCanonical:!0},":rocket:":{unicode:["1f680"],fname:"1f680",uc:"1f680",isCanonical:!0},":railway_car:":{unicode:["1f683"],fname:"1f683",uc:"1f683",isCanonical:!0},":bullettrain_side:":{unicode:["1f684"],fname:"1f684",uc:"1f684",isCanonical:!0},":bullettrain_front:":{unicode:["1f685"],fname:"1f685",uc:"1f685",isCanonical:!0},":metro:":{unicode:["1f687"],fname:"1f687",uc:"1f687",isCanonical:!0},":station:":{unicode:["1f689"],fname:"1f689",uc:"1f689",isCanonical:!0},":bus:":{unicode:["1f68c"],fname:"1f68c",uc:"1f68c",isCanonical:!0},":busstop:":{unicode:["1f68f"],fname:"1f68f",uc:"1f68f",isCanonical:!0},":ambulance:":{unicode:["1f691"],fname:"1f691",uc:"1f691",isCanonical:!0},":fire_engine:":{unicode:["1f692"],fname:"1f692",uc:"1f692",isCanonical:!0},":police_car:":{unicode:["1f693"],fname:"1f693",uc:"1f693",isCanonical:!0},":taxi:":{unicode:["1f695"],fname:"1f695",uc:"1f695",isCanonical:!0},":red_car:":{unicode:["1f697"],fname:"1f697",uc:"1f697",isCanonical:!0},":blue_car:":{unicode:["1f699"],fname:"1f699",uc:"1f699",isCanonical:!0},":truck:":{unicode:["1f69a"],fname:"1f69a",uc:"1f69a",isCanonical:!0},":ship:":{unicode:["1f6a2"],fname:"1f6a2",uc:"1f6a2",isCanonical:!0},":speedboat:":{unicode:["1f6a4"],fname:"1f6a4",uc:"1f6a4",isCanonical:!0},":traffic_light:":{unicode:["1f6a5"],fname:"1f6a5",uc:"1f6a5",isCanonical:!0},":construction:":{unicode:["1f6a7"],fname:"1f6a7",uc:"1f6a7",isCanonical:!0},":rotating_light:":{unicode:["1f6a8"],fname:"1f6a8",uc:"1f6a8",isCanonical:!0},":triangular_flag_on_post:":{unicode:["1f6a9"],fname:"1f6a9",uc:"1f6a9",isCanonical:!0},":door:":{unicode:["1f6aa"],fname:"1f6aa",uc:"1f6aa",isCanonical:!0},":no_entry_sign:":{unicode:["1f6ab"],fname:"1f6ab",uc:"1f6ab",isCanonical:!0},":smoking:":{unicode:["1f6ac"],fname:"1f6ac",uc:"1f6ac",isCanonical:!0},":no_smoking:":{unicode:["1f6ad"],fname:"1f6ad",uc:"1f6ad",isCanonical:!0},":bike:":{unicode:["1f6b2"],fname:"1f6b2",uc:"1f6b2",isCanonical:!0},":walking:":{unicode:["1f6b6"],fname:"1f6b6",uc:"1f6b6",isCanonical:!0},":mens:":{unicode:["1f6b9"],fname:"1f6b9",uc:"1f6b9",isCanonical:!0},":womens:":{unicode:["1f6ba"],fname:"1f6ba",uc:"1f6ba",isCanonical:!0},":restroom:":{unicode:["1f6bb"],fname:"1f6bb",uc:"1f6bb",isCanonical:!0},":baby_symbol:":{unicode:["1f6bc"],fname:"1f6bc",uc:"1f6bc",isCanonical:!0},":toilet:":{unicode:["1f6bd"],fname:"1f6bd",uc:"1f6bd",isCanonical:!0},":wc:":{unicode:["1f6be"],fname:"1f6be",uc:"1f6be",isCanonical:!0},":bath:":{unicode:["1f6c0"],fname:"1f6c0",uc:"1f6c0",isCanonical:!0},":metal:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!0},":sign_of_the_horns:":{unicode:["1f918"],fname:"1f918",uc:"1f918",isCanonical:!1},":grinning:":{unicode:["1f600"],fname:"1f600",uc:"1f600",isCanonical:!0},":innocent:":{unicode:["1f607"],fname:"1f607",uc:"1f607",isCanonical:!0},":smiling_imp:":{unicode:["1f608"],fname:"1f608",uc:"1f608",isCanonical:!0},":sunglasses:":{unicode:["1f60e"],fname:"1f60e",uc:"1f60e",isCanonical:!0},":neutral_face:":{unicode:["1f610"],fname:"1f610",uc:"1f610",isCanonical:!0},":expressionless:":{unicode:["1f611"],fname:"1f611",uc:"1f611",isCanonical:!0},":confused:":{unicode:["1f615"],fname:"1f615",uc:"1f615",isCanonical:!0},":kissing:":{unicode:["1f617"],fname:"1f617",uc:"1f617",isCanonical:!0},":kissing_smiling_eyes:":{unicode:["1f619"],fname:"1f619",uc:"1f619",isCanonical:!0},":stuck_out_tongue:":{unicode:["1f61b"],fname:"1f61b",uc:"1f61b",isCanonical:!0},":worried:":{unicode:["1f61f"],fname:"1f61f",uc:"1f61f",isCanonical:!0},":frowning:":{unicode:["1f626"],fname:"1f626",uc:"1f626",isCanonical:!0},":anguished:":{unicode:["1f627"],fname:"1f627",uc:"1f627",isCanonical:!0},":grimacing:":{unicode:["1f62c"],fname:"1f62c",uc:"1f62c",isCanonical:!0},":open_mouth:":{unicode:["1f62e"],fname:"1f62e",uc:"1f62e",isCanonical:!0},":hushed:":{unicode:["1f62f"],fname:"1f62f",uc:"1f62f",isCanonical:!0},":sleeping:":{unicode:["1f634"],fname:"1f634",uc:"1f634",isCanonical:!0},":no_mouth:":{unicode:["1f636"],fname:"1f636",uc:"1f636",isCanonical:!0},":helicopter:":{unicode:["1f681"],fname:"1f681",uc:"1f681",isCanonical:!0},":steam_locomotive:":{unicode:["1f682"],fname:"1f682",uc:"1f682",isCanonical:!0},":train2:":{unicode:["1f686"],fname:"1f686",uc:"1f686",isCanonical:!0},":light_rail:":{unicode:["1f688"],fname:"1f688",uc:"1f688",isCanonical:!0},":tram:":{unicode:["1f68a"],fname:"1f68a",uc:"1f68a",isCanonical:!0},":oncoming_bus:":{unicode:["1f68d"],fname:"1f68d",uc:"1f68d",isCanonical:!0},":trolleybus:":{unicode:["1f68e"],fname:"1f68e",uc:"1f68e",isCanonical:!0},":minibus:":{unicode:["1f690"],fname:"1f690",uc:"1f690",isCanonical:!0},":oncoming_police_car:":{unicode:["1f694"],fname:"1f694",uc:"1f694",isCanonical:!0},":oncoming_taxi:":{unicode:["1f696"],fname:"1f696",uc:"1f696",isCanonical:!0},":oncoming_automobile:":{unicode:["1f698"],fname:"1f698",uc:"1f698",isCanonical:!0},":articulated_lorry:":{unicode:["1f69b"],fname:"1f69b",uc:"1f69b",isCanonical:!0},":tractor:":{unicode:["1f69c"],fname:"1f69c",uc:"1f69c",isCanonical:!0},":monorail:":{unicode:["1f69d"],fname:"1f69d",uc:"1f69d",isCanonical:!0},":mountain_railway:":{unicode:["1f69e"],fname:"1f69e",uc:"1f69e",isCanonical:!0},":suspension_railway:":{unicode:["1f69f"],fname:"1f69f",uc:"1f69f",isCanonical:!0},":mountain_cableway:":{unicode:["1f6a0"],fname:"1f6a0",uc:"1f6a0",isCanonical:!0},":aerial_tramway:":{unicode:["1f6a1"],fname:"1f6a1",uc:"1f6a1",isCanonical:!0},":rowboat:":{unicode:["1f6a3"],fname:"1f6a3",uc:"1f6a3",isCanonical:!0},":vertical_traffic_light:":{unicode:["1f6a6"],fname:"1f6a6",uc:"1f6a6",isCanonical:!0},":put_litter_in_its_place:":{unicode:["1f6ae"],fname:"1f6ae",uc:"1f6ae",isCanonical:!0},":do_not_litter:":{unicode:["1f6af"],fname:"1f6af",uc:"1f6af",isCanonical:!0},":potable_water:":{unicode:["1f6b0"],fname:"1f6b0",uc:"1f6b0",isCanonical:!0},":non-potable_water:":{unicode:["1f6b1"],fname:"1f6b1",uc:"1f6b1",isCanonical:!0},":no_bicycles:":{unicode:["1f6b3"],fname:"1f6b3",uc:"1f6b3",isCanonical:!0},":bicyclist:":{unicode:["1f6b4"],fname:"1f6b4",uc:"1f6b4",isCanonical:!0},":mountain_bicyclist:":{unicode:["1f6b5"],fname:"1f6b5",uc:"1f6b5",isCanonical:!0},":no_pedestrians:":{unicode:["1f6b7"],fname:"1f6b7",uc:"1f6b7",isCanonical:!0},":children_crossing:":{unicode:["1f6b8"],fname:"1f6b8",uc:"1f6b8",isCanonical:!0},":shower:":{unicode:["1f6bf"],fname:"1f6bf",uc:"1f6bf",isCanonical:!0},":bathtub:":{unicode:["1f6c1"],fname:"1f6c1",uc:"1f6c1",isCanonical:!0},":passport_control:":{unicode:["1f6c2"],fname:"1f6c2",uc:"1f6c2",isCanonical:!0},":customs:":{unicode:["1f6c3"],fname:"1f6c3",uc:"1f6c3",isCanonical:!0},":baggage_claim:":{unicode:["1f6c4"],fname:"1f6c4",uc:"1f6c4",isCanonical:!0},":left_luggage:":{unicode:["1f6c5"],fname:"1f6c5",uc:"1f6c5",isCanonical:!0},":earth_africa:":{unicode:["1f30d"],fname:"1f30d",uc:"1f30d",isCanonical:!0},":earth_americas:":{unicode:["1f30e"],fname:"1f30e",uc:"1f30e",isCanonical:!0},":globe_with_meridians:":{unicode:["1f310"],fname:"1f310",uc:"1f310",isCanonical:!0},":waxing_crescent_moon:":{unicode:["1f312"],fname:"1f312",uc:"1f312",isCanonical:!0},":waning_gibbous_moon:":{unicode:["1f316"],fname:"1f316",uc:"1f316",isCanonical:!0},":last_quarter_moon:":{unicode:["1f317"],fname:"1f317",uc:"1f317",isCanonical:!0},":waning_crescent_moon:":{unicode:["1f318"],fname:"1f318",uc:"1f318",isCanonical:!0},":new_moon_with_face:":{unicode:["1f31a"],fname:"1f31a",uc:"1f31a",isCanonical:!0},":last_quarter_moon_with_face:":{unicode:["1f31c"],fname:"1f31c",uc:"1f31c",isCanonical:!0},":full_moon_with_face:":{unicode:["1f31d"],fname:"1f31d",uc:"1f31d",isCanonical:!0},":sun_with_face:":{unicode:["1f31e"],fname:"1f31e",uc:"1f31e",isCanonical:!0},":evergreen_tree:":{unicode:["1f332"],fname:"1f332",uc:"1f332",isCanonical:!0},":deciduous_tree:":{unicode:["1f333"],fname:"1f333",uc:"1f333",isCanonical:!0},":lemon:":{unicode:["1f34b"],fname:"1f34b",uc:"1f34b",isCanonical:!0},":pear:":{unicode:["1f350"],fname:"1f350",uc:"1f350",isCanonical:!0},":baby_bottle:":{unicode:["1f37c"],fname:"1f37c",uc:"1f37c",isCanonical:!0},":horse_racing:":{unicode:["1f3c7"],fname:"1f3c7",uc:"1f3c7",isCanonical:!0},":rugby_football:":{unicode:["1f3c9"],fname:"1f3c9",uc:"1f3c9",isCanonical:!0},":european_post_office:":{unicode:["1f3e4"],fname:"1f3e4",uc:"1f3e4",isCanonical:!0},":rat:":{unicode:["1f400"],fname:"1f400",uc:"1f400",isCanonical:!0},":mouse2:":{unicode:["1f401"],fname:"1f401",uc:"1f401",isCanonical:!0},":ox:":{unicode:["1f402"],fname:"1f402",uc:"1f402",isCanonical:!0},":water_buffalo:":{unicode:["1f403"],fname:"1f403",uc:"1f403",isCanonical:!0},":cow2:":{unicode:["1f404"],fname:"1f404",uc:"1f404",isCanonical:!0},":tiger2:":{unicode:["1f405"],fname:"1f405",uc:"1f405",isCanonical:!0},":leopard:":{unicode:["1f406"],fname:"1f406",uc:"1f406",isCanonical:!0},":rabbit2:":{unicode:["1f407"],fname:"1f407",uc:"1f407",isCanonical:!0},":cat2:":{unicode:["1f408"],fname:"1f408",uc:"1f408",isCanonical:!0},":dragon:":{unicode:["1f409"],fname:"1f409",uc:"1f409",isCanonical:!0},":crocodile:":{unicode:["1f40a"],fname:"1f40a",uc:"1f40a",isCanonical:!0},":whale2:":{unicode:["1f40b"],fname:"1f40b",uc:"1f40b",isCanonical:!0},":ram:":{unicode:["1f40f"],fname:"1f40f",uc:"1f40f",isCanonical:!0},":goat:":{unicode:["1f410"],fname:"1f410",uc:"1f410",isCanonical:!0},":rooster:":{unicode:["1f413"],fname:"1f413",uc:"1f413",isCanonical:!0},":dog2:":{unicode:["1f415"],fname:"1f415",uc:"1f415",isCanonical:!0},":pig2:":{unicode:["1f416"],fname:"1f416",uc:"1f416",isCanonical:!0},":dromedary_camel:":{unicode:["1f42a"],fname:"1f42a",uc:"1f42a",isCanonical:!0},":busts_in_silhouette:":{unicode:["1f465"],fname:"1f465",uc:"1f465",isCanonical:!0},":two_men_holding_hands:":{unicode:["1f46c"],fname:"1f46c",uc:"1f46c",isCanonical:!0},":two_women_holding_hands:":{unicode:["1f46d"],fname:"1f46d",uc:"1f46d",isCanonical:!0},":thought_balloon:":{unicode:["1f4ad"],fname:"1f4ad",uc:"1f4ad",isCanonical:!0},":euro:":{unicode:["1f4b6"],fname:"1f4b6",uc:"1f4b6",isCanonical:!0},":pound:":{unicode:["1f4b7"],fname:"1f4b7",uc:"1f4b7",isCanonical:!0},":mailbox_with_mail:":{unicode:["1f4ec"],fname:"1f4ec",uc:"1f4ec",isCanonical:!0},":mailbox_with_no_mail:":{unicode:["1f4ed"],fname:"1f4ed",uc:"1f4ed",isCanonical:!0},":postal_horn:":{unicode:["1f4ef"],fname:"1f4ef",uc:"1f4ef",isCanonical:!0},":no_mobile_phones:":{unicode:["1f4f5"],fname:"1f4f5",uc:"1f4f5",isCanonical:!0},":twisted_rightwards_arrows:":{unicode:["1f500"],fname:"1f500",uc:"1f500",isCanonical:!0},":repeat:":{unicode:["1f501"],fname:"1f501",uc:"1f501",isCanonical:!0},":repeat_one:":{unicode:["1f502"],fname:"1f502",uc:"1f502",isCanonical:!0},":arrows_counterclockwise:":{unicode:["1f504"],fname:"1f504",uc:"1f504",isCanonical:!0},":low_brightness:":{unicode:["1f505"],fname:"1f505",uc:"1f505",isCanonical:!0},":high_brightness:":{unicode:["1f506"],fname:"1f506",uc:"1f506",isCanonical:!0},":mute:":{unicode:["1f507"],fname:"1f507",uc:"1f507",isCanonical:!0},":sound:":{unicode:["1f509"],fname:"1f509",uc:"1f509",isCanonical:!0},":no_bell:":{unicode:["1f515"],fname:"1f515",uc:"1f515",isCanonical:!0},":microscope:":{unicode:["1f52c"],fname:"1f52c",uc:"1f52c",isCanonical:!0},":telescope:":{unicode:["1f52d"],fname:"1f52d",uc:"1f52d",isCanonical:!0},":clock130:":{unicode:["1f55c"],fname:"1f55c",uc:"1f55c",isCanonical:!0},":clock230:":{unicode:["1f55d"],fname:"1f55d",uc:"1f55d",isCanonical:!0},":clock330:":{unicode:["1f55e"],fname:"1f55e",uc:"1f55e",isCanonical:!0},":clock430:":{unicode:["1f55f"],fname:"1f55f",uc:"1f55f",isCanonical:!0},":clock530:":{unicode:["1f560"],fname:"1f560",uc:"1f560",isCanonical:!0},":clock630:":{unicode:["1f561"],fname:"1f561",uc:"1f561",isCanonical:!0},":clock730:":{unicode:["1f562"],fname:"1f562",uc:"1f562",isCanonical:!0},":clock830:":{unicode:["1f563"],fname:"1f563",uc:"1f563",isCanonical:!0},":clock930:":{unicode:["1f564"],fname:"1f564",uc:"1f564",isCanonical:!0},":clock1030:":{unicode:["1f565"],fname:"1f565",uc:"1f565",isCanonical:!0},":clock1130:":{unicode:["1f566"],fname:"1f566",uc:"1f566",isCanonical:!0},":clock1230:":{unicode:["1f567"],fname:"1f567",uc:"1f567",isCanonical:!0},":speaker:":{unicode:["1f508"],fname:"1f508",uc:"1f508",isCanonical:!0},":train:":{unicode:["1f68b"],fname:"1f68b",uc:"1f68b",isCanonical:!0},":medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!0},":sports_medal:":{unicode:["1f3c5"],fname:"1f3c5",uc:"1f3c5",isCanonical:!1},":flag_black:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!0},":waving_black_flag:":{unicode:["1f3f4"],fname:"1f3f4",uc:"1f3f4",isCanonical:!1},":camera_with_flash:":{unicode:["1f4f8"],fname:"1f4f8",uc:"1f4f8",isCanonical:!0},":sleeping_accommodation:":{unicode:["1f6cc"],fname:"1f6cc",uc:"1f6cc",isCanonical:!0},":middle_finger:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!0},":reversed_hand_with_middle_finger_extended:":{unicode:["1f595"],fname:"1f595",uc:"1f595",isCanonical:!1},":vulcan:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!0},":raised_hand_with_part_between_middle_and_ring_fingers:":{unicode:["1f596"],fname:"1f596",uc:"1f596",isCanonical:!1},":slight_frown:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!0},":slightly_frowning_face:":{unicode:["1f641"],fname:"1f641",uc:"1f641",isCanonical:!1},":slight_smile:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!0},":slightly_smiling_face:":{unicode:["1f642"],fname:"1f642",uc:"1f642",isCanonical:!1},":airplane_departure:":{unicode:["1f6eb"],fname:"1f6eb",uc:"1f6eb",isCanonical:!0},":airplane_arriving:":{unicode:["1f6ec"],fname:"1f6ec",uc:"1f6ec",isCanonical:!0},":tone1:":{unicode:["1f3fb"],fname:"1f3fb",uc:"1f3fb",isCanonical:!0},":tone2:":{unicode:["1f3fc"],fname:"1f3fc",uc:"1f3fc",isCanonical:!0},":tone3:":{unicode:["1f3fd"],fname:"1f3fd",uc:"1f3fd",isCanonical:!0},":tone4:":{unicode:["1f3fe"],fname:"1f3fe",uc:"1f3fe",isCanonical:!0},":tone5:":{unicode:["1f3ff"],fname:"1f3ff",uc:"1f3ff",isCanonical:!0},":upside_down:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!0},":upside_down_face:":{unicode:["1f643"],fname:"1f643",uc:"1f643",isCanonical:!1},":money_mouth:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!0},":money_mouth_face:":{unicode:["1f911"],fname:"1f911",uc:"1f911",isCanonical:!1},":nerd:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!0},":nerd_face:":{unicode:["1f913"],fname:"1f913",uc:"1f913",isCanonical:!1},":hugging:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!0},":hugging_face:":{unicode:["1f917"],fname:"1f917",uc:"1f917",isCanonical:!1},":rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!0},":face_with_rolling_eyes:":{unicode:["1f644"],fname:"1f644",uc:"1f644",isCanonical:!1},":thinking:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!0},":thinking_face:":{unicode:["1f914"],fname:"1f914",uc:"1f914",isCanonical:!1},":zipper_mouth:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!0},":zipper_mouth_face:":{unicode:["1f910"],fname:"1f910",uc:"1f910",isCanonical:!1},":thermometer_face:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!0},":face_with_thermometer:":{unicode:["1f912"],fname:"1f912",uc:"1f912",isCanonical:!1},":head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!0},":face_with_head_bandage:":{unicode:["1f915"],fname:"1f915",uc:"1f915",isCanonical:!1},":robot:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!0},":robot_face:":{unicode:["1f916"],fname:"1f916",uc:"1f916",isCanonical:!1},":lion_face:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!0},":lion:":{unicode:["1f981"],fname:"1f981",uc:"1f981",isCanonical:!1},":unicorn:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!0},":unicorn_face:":{unicode:["1f984"],fname:"1f984",uc:"1f984",isCanonical:!1},":scorpion:":{unicode:["1f982"],fname:"1f982",uc:"1f982",isCanonical:!0},":crab:":{unicode:["1f980"],fname:"1f980",uc:"1f980",isCanonical:!0},":turkey:":{unicode:["1f983"],fname:"1f983",uc:"1f983",isCanonical:!0},":cheese:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!0},":cheese_wedge:":{unicode:["1f9c0"],fname:"1f9c0",uc:"1f9c0",isCanonical:!1},":hotdog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!0},":hot_dog:":{unicode:["1f32d"],fname:"1f32d",uc:"1f32d",isCanonical:!1},":taco:":{unicode:["1f32e"],fname:"1f32e",uc:"1f32e",isCanonical:!0},":burrito:":{unicode:["1f32f"],fname:"1f32f",uc:"1f32f",isCanonical:!0},":popcorn:":{unicode:["1f37f"],fname:"1f37f",uc:"1f37f",isCanonical:!0},":champagne:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!0},":bottle_with_popping_cork:":{unicode:["1f37e"],fname:"1f37e",uc:"1f37e",isCanonical:!1},":bow_and_arrow:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!0},":archery:":{unicode:["1f3f9"],fname:"1f3f9",uc:"1f3f9",isCanonical:!1},":amphora:":{unicode:["1f3fa"],fname:"1f3fa",uc:"1f3fa",isCanonical:!0},":place_of_worship:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!0},":worship_symbol:":{unicode:["1f6d0"],fname:"1f6d0",uc:"1f6d0",isCanonical:!1},":kaaba:":{unicode:["1f54b"],fname:"1f54b",uc:"1f54b",isCanonical:!0},":mosque:":{unicode:["1f54c"],fname:"1f54c",uc:"1f54c",isCanonical:!0},":synagogue:":{unicode:["1f54d"],fname:"1f54d",uc:"1f54d",isCanonical:!0},":menorah:":{unicode:["1f54e"],fname:"1f54e",uc:"1f54e",isCanonical:!0},":prayer_beads:":{unicode:["1f4ff"],fname:"1f4ff",uc:"1f4ff",isCanonical:!0},":cricket:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!0},":cricket_bat_ball:":{unicode:["1f3cf"],fname:"1f3cf",uc:"1f3cf",isCanonical:!1},":volleyball:":{unicode:["1f3d0"],fname:"1f3d0",uc:"1f3d0",isCanonical:!0},":field_hockey:":{unicode:["1f3d1"],fname:"1f3d1",uc:"1f3d1",isCanonical:!0},":hockey:":{unicode:["1f3d2"],fname:"1f3d2",uc:"1f3d2",isCanonical:!0},":ping_pong:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!0},":table_tennis:":{unicode:["1f3d3"],fname:"1f3d3",uc:"1f3d3",isCanonical:!1},":badminton:":{unicode:["1f3f8"],fname:"1f3f8",uc:"1f3f8",isCanonical:!0},":drum:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!0},":drum_with_drumsticks:":{unicode:["1f941"],fname:"1f941",uc:"1f941",isCanonical:!1},":shrimp:":{unicode:["1f990"],fname:"1f990",uc:"1f990",isCanonical:!0},":squid:":{unicode:["1f991"],fname:"1f991",uc:"1f991",isCanonical:!0},":egg:":{unicode:["1f95a"],fname:"1f95a",uc:"1f95a",isCanonical:!0},":milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!0},":glass_of_milk:":{unicode:["1f95b"],fname:"1f95b",uc:"1f95b",isCanonical:!1},":peanuts:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!0},":shelled_peanut:":{unicode:["1f95c"],fname:"1f95c",uc:"1f95c",isCanonical:!1},":kiwi:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!0},":kiwifruit:":{unicode:["1f95d"],fname:"1f95d",uc:"1f95d",isCanonical:!1},":pancakes:":{unicode:["1f95e"],fname:"1f95e",uc:"1f95e",isCanonical:!0},":regional_indicator_w:":{unicode:["1f1fc"],fname:"1f1fc",uc:"1f1fc",isCanonical:!0},":regional_indicator_v:":{unicode:["1f1fb"],fname:"1f1fb",uc:"1f1fb",isCanonical:!0},":regional_indicator_u:":{unicode:["1f1fa"],fname:"1f1fa",uc:"1f1fa",isCanonical:!0},":regional_indicator_t:":{unicode:["1f1f9"],fname:"1f1f9",uc:"1f1f9",isCanonical:!0},":regional_indicator_s:":{unicode:["1f1f8"],fname:"1f1f8",uc:"1f1f8",isCanonical:!0},":regional_indicator_r:":{unicode:["1f1f7"],fname:"1f1f7",uc:"1f1f7",isCanonical:!0},":regional_indicator_q:":{unicode:["1f1f6"],fname:"1f1f6",uc:"1f1f6",isCanonical:!0},":regional_indicator_p:":{unicode:["1f1f5"],fname:"1f1f5",uc:"1f1f5",isCanonical:!0},":regional_indicator_o:":{unicode:["1f1f4"],fname:"1f1f4",uc:"1f1f4",isCanonical:!0},":regional_indicator_n:":{unicode:["1f1f3"],fname:"1f1f3",uc:"1f1f3",isCanonical:!0},":regional_indicator_m:":{unicode:["1f1f2"],fname:"1f1f2",uc:"1f1f2",isCanonical:!0},":regional_indicator_l:":{unicode:["1f1f1"],fname:"1f1f1",uc:"1f1f1",isCanonical:!0},":regional_indicator_k:":{unicode:["1f1f0"],fname:"1f1f0",uc:"1f1f0",isCanonical:!0},":regional_indicator_j:":{unicode:["1f1ef"],fname:"1f1ef",uc:"1f1ef",isCanonical:!0},":regional_indicator_i:":{unicode:["1f1ee"],fname:"1f1ee",uc:"1f1ee",isCanonical:!0},":regional_indicator_h:":{unicode:["1f1ed"],fname:"1f1ed",uc:"1f1ed",isCanonical:!0},":regional_indicator_g:":{unicode:["1f1ec"],fname:"1f1ec",uc:"1f1ec",isCanonical:!0},":regional_indicator_f:":{unicode:["1f1eb"],fname:"1f1eb",uc:"1f1eb",isCanonical:!0},":regional_indicator_e:":{unicode:["1f1ea"],fname:"1f1ea",uc:"1f1ea",isCanonical:!0},":regional_indicator_d:":{unicode:["1f1e9"],fname:"1f1e9",uc:"1f1e9",isCanonical:!0},":regional_indicator_c:":{unicode:["1f1e8"],fname:"1f1e8",uc:"1f1e8",isCanonical:!0},":regional_indicator_b:":{unicode:["1f1e7"],fname:"1f1e7",uc:"1f1e7",isCanonical:!0},":regional_indicator_a:":{unicode:["1f1e6"],fname:"1f1e6",uc:"1f1e6",isCanonical:!0},":fast_forward:":{unicode:["23e9"],fname:"23e9",uc:"23e9",isCanonical:!0},":rewind:":{unicode:["23ea"],fname:"23ea",uc:"23ea",isCanonical:!0},":arrow_double_up:":{unicode:["23eb"],fname:"23eb",uc:"23eb",isCanonical:!0},":arrow_double_down:":{unicode:["23ec"],fname:"23ec",uc:"23ec",isCanonical:!0},":alarm_clock:":{unicode:["23f0"],fname:"23f0",uc:"23f0",isCanonical:!0},":hourglass_flowing_sand:":{unicode:["23f3"],fname:"23f3",uc:"23f3",isCanonical:!0},":ophiuchus:":{unicode:["26ce"],fname:"26ce",uc:"26ce",isCanonical:!0},":white_check_mark:":{unicode:["2705"],fname:"2705",uc:"2705",isCanonical:!0},":fist:":{unicode:["270a"],fname:"270a",uc:"270a",isCanonical:!0},":raised_hand:":{unicode:["270b"],fname:"270b",uc:"270b",isCanonical:!0},":sparkles:":{unicode:["2728"],fname:"2728",uc:"2728",isCanonical:!0},":x:":{unicode:["274c"],fname:"274c",uc:"274c",isCanonical:!0},":negative_squared_cross_mark:":{unicode:["274e"],fname:"274e",uc:"274e",isCanonical:!0},":question:":{unicode:["2753"],fname:"2753",uc:"2753",isCanonical:!0},":grey_question:":{unicode:["2754"],fname:"2754",uc:"2754",isCanonical:!0},":grey_exclamation:":{unicode:["2755"],fname:"2755",uc:"2755",isCanonical:!0},":heavy_plus_sign:":{unicode:["2795"],fname:"2795",uc:"2795",isCanonical:!0},":heavy_minus_sign:":{unicode:["2796"],fname:"2796",uc:"2796",isCanonical:!0},":heavy_division_sign:":{unicode:["2797"],fname:"2797",uc:"2797",isCanonical:!0},":curly_loop:":{unicode:["27b0"],fname:"27b0",uc:"27b0",isCanonical:!0},":loop:":{unicode:["27bf"],fname:"27bf",uc:"27bf",isCanonical:!0}};var emoji,tmpShortNames=[];for(emoji in ns.emojioneList)ns.emojioneList.hasOwnProperty(emoji)&&tmpShortNames.push(emoji.replace(/[+]/g,"\\$&"));ns.shortnames=tmpShortNames.join("|"),ns.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f642",":-)":"1f642","=]":"1f642","=)":"1f642",":]":"1f642","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623","D:":"1f628",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},ns.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",ns.unicodeRegexp="(\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC68|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC68\\u200D\\uD83D\\uDC68\\u200D\\uD83D\\uDC67|\\uD83D\\uDC68\\u200D\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u2764\\uD83D\\uDC8B\\uD83D\\uDC69|\\uD83D\\uDC68\\u2764\\uD83D\\uDC8B\\uD83D\\uDC68|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC67|\\uD83D\\uDC68\\uD83D\\uDC68\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC66|\\uD83D\\uDC69\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC68\\uD83D\\uDC69\\uD83D\\uDC67|\\uD83D\\uDC68\\u2764\\uD83D\\uDC68|\\uD83D\\uDC41\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69\\u2764\\uD83D\\uDC69|\\uD83D\\uDC41\\uD83D\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDF6|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF8|\\uD83E\\uDD3E\\uD83C\\uDFFF|\\uD83E\\uDD3E\\uD83C\\uDFFE|\\uD83E\\uDD3E\\uD83C\\uDFFD|\\uD83E\\uDD3E\\uD83C\\uDFFC|\\uD83E\\uDD3E\\uD83C\\uDFFB|\\uD83E\\uDD3D\\uD83C\\uDFFF|\\uD83E\\uDD3D\\uD83C\\uDFFE|\\uD83E\\uDD3D\\uD83C\\uDFFD|\\uD83E\\uDD3D\\uD83C\\uDFFC|\\uD83E\\uDD3D\\uD83C\\uDFFB|\\uD83E\\uDD3C\\uD83C\\uDFFF|\\uD83E\\uDD3C\\uD83C\\uDFFE|\\uD83E\\uDD3C\\uD83C\\uDFFD|\\uD83E\\uDD3C\\uD83C\\uDFFC|\\uD83E\\uDD3C\\uD83C\\uDFFB|\\uD83E\\uDD39\\uD83C\\uDFFF|\\uD83E\\uDD39\\uD83C\\uDFFE|\\uD83E\\uDD39\\uD83C\\uDFFD|\\uD83E\\uDD39\\uD83C\\uDFFC|\\uD83E\\uDD39\\uD83C\\uDFFB|\\uD83E\\uDD38\\uD83C\\uDFFF|\\uD83E\\uDD38\\uD83C\\uDFFE|\\uD83E\\uDD38\\uD83C\\uDFFD|\\uD83E\\uDD38\\uD83C\\uDFFC|\\uD83E\\uDD38\\uD83C\\uDFFB|\\uD83E\\uDD37\\uD83C\\uDFFF|\\uD83E\\uDD37\\uD83C\\uDFFE|\\uD83E\\uDD37\\uD83C\\uDFFD|\\uD83E\\uDD37\\uD83C\\uDFFC|\\uD83E\\uDD37\\uD83C\\uDFFB|\\uD83E\\uDD36\\uD83C\\uDFFF|\\uD83E\\uDD36\\uD83C\\uDFFE|\\uD83E\\uDD36\\uD83C\\uDFFD|\\uD83E\\uDD36\\uD83C\\uDFFC|\\uD83E\\uDD36\\uD83C\\uDFFB|\\uD83E\\uDD35\\uD83C\\uDFFF|\\uD83E\\uDD35\\uD83C\\uDFFE|\\uD83E\\uDD35\\uD83C\\uDFFD|\\uD83E\\uDD35\\uD83C\\uDFFC|\\uD83E\\uDD35\\uD83C\\uDFFB|\\uD83E\\uDD34\\uD83C\\uDFFF|\\uD83E\\uDD34\\uD83C\\uDFFE|\\uD83E\\uDD34\\uD83C\\uDFFD|\\uD83E\\uDD34\\uD83C\\uDFFC|\\uD83E\\uDD34\\uD83C\\uDFFB|\\uD83E\\uDD33\\uD83C\\uDFFF|\\uD83E\\uDD33\\uD83C\\uDFFE|\\uD83E\\uDD33\\uD83C\\uDFFD|\\uD83E\\uDD33\\uD83C\\uDFFC|\\uD83E\\uDD33\\uD83C\\uDFFB|\\uD83E\\uDD30\\uD83C\\uDFFF|\\uD83E\\uDD30\\uD83C\\uDFFE|\\uD83E\\uDD30\\uD83C\\uDFFD|\\uD83E\\uDD30\\uD83C\\uDFFC|\\uD83E\\uDD30\\uD83C\\uDFFB|\\uD83E\\uDD26\\uD83C\\uDFFF|\\uD83E\\uDD26\\uD83C\\uDFFE|\\uD83E\\uDD26\\uD83C\\uDFFD|\\uD83E\\uDD26\\uD83C\\uDFFC|\\uD83E\\uDD26\\uD83C\\uDFFB|\\uD83E\\uDD1E\\uD83C\\uDFFF|\\uD83E\\uDD1E\\uD83C\\uDFFE|\\uD83E\\uDD1E\\uD83C\\uDFFD|\\uD83E\\uDD1E\\uD83C\\uDFFC|\\uD83E\\uDD1E\\uD83C\\uDFFB|\\uD83E\\uDD1D\\uD83C\\uDFFF|\\uD83E\\uDD1D\\uD83C\\uDFFE|\\uD83E\\uDD1D\\uD83C\\uDFFD|\\uD83E\\uDD1D\\uD83C\\uDFFC|\\uD83E\\uDD1D\\uD83C\\uDFFB|\\uD83E\\uDD1C\\uD83C\\uDFFF|\\uD83E\\uDD1C\\uD83C\\uDFFE|\\uD83E\\uDD1C\\uD83C\\uDFFD|\\uD83E\\uDD1C\\uD83C\\uDFFC|\\uD83E\\uDD1C\\uD83C\\uDFFB|\\uD83E\\uDD1B\\uD83C\\uDFFF|\\uD83E\\uDD1B\\uD83C\\uDFFE|\\uD83E\\uDD1B\\uD83C\\uDFFD|\\uD83E\\uDD1B\\uD83C\\uDFFC|\\uD83E\\uDD1B\\uD83C\\uDFFB|\\uD83E\\uDD1A\\uD83C\\uDFFF|\\uD83E\\uDD1A\\uD83C\\uDFFE|\\uD83E\\uDD1A\\uD83C\\uDFFD|\\uD83E\\uDD1A\\uD83C\\uDFFC|\\uD83E\\uDD1A\\uD83C\\uDFFB|\\uD83E\\uDD19\\uD83C\\uDFFF|\\uD83E\\uDD19\\uD83C\\uDFFE|\\uD83E\\uDD19\\uD83C\\uDFFD|\\uD83E\\uDD19\\uD83C\\uDFFC|\\uD83E\\uDD19\\uD83C\\uDFFB|\\uD83E\\uDD18\\uD83C\\uDFFF|\\uD83E\\uDD18\\uD83C\\uDFFE|\\uD83E\\uDD18\\uD83C\\uDFFD|\\uD83E\\uDD18\\uD83C\\uDFFC|\\uD83E\\uDD18\\uD83C\\uDFFB|\\uD83D\\uDEC0\\uD83C\\uDFFF|\\uD83D\\uDEC0\\uD83C\\uDFFE|\\uD83D\\uDEC0\\uD83C\\uDFFD|\\uD83D\\uDEC0\\uD83C\\uDFFC|\\uD83D\\uDEC0\\uD83C\\uDFFB|\\uD83D\\uDEB6\\uD83C\\uDFFF|\\uD83D\\uDEB6\\uD83C\\uDFFE|\\uD83D\\uDEB6\\uD83C\\uDFFD|\\uD83D\\uDEB6\\uD83C\\uDFFC|\\uD83D\\uDEB6\\uD83C\\uDFFB|\\uD83D\\uDEB5\\uD83C\\uDFFF|\\uD83D\\uDEB5\\uD83C\\uDFFE|\\uD83D\\uDEB5\\uD83C\\uDFFD|\\uD83D\\uDEB5\\uD83C\\uDFFC|\\uD83D\\uDEB5\\uD83C\\uDFFB|\\uD83D\\uDEB4\\uD83C\\uDFFF|\\uD83D\\uDEB4\\uD83C\\uDFFE|\\uD83D\\uDEB4\\uD83C\\uDFFD|\\uD83D\\uDEB4\\uD83C\\uDFFC|\\uD83D\\uDEB4\\uD83C\\uDFFB|\\uD83D\\uDEA3\\uD83C\\uDFFF|\\uD83D\\uDEA3\\uD83C\\uDFFE|\\uD83D\\uDEA3\\uD83C\\uDFFD|\\uD83D\\uDEA3\\uD83C\\uDFFC|\\uD83D\\uDEA3\\uD83C\\uDFFB|\\uD83D\\uDE4F\\uD83C\\uDFFF|\\uD83D\\uDE4F\\uD83C\\uDFFE|\\uD83D\\uDE4F\\uD83C\\uDFFD|\\uD83D\\uDE4F\\uD83C\\uDFFC|\\uD83D\\uDE4F\\uD83C\\uDFFB|\\uD83D\\uDE4E\\uD83C\\uDFFF|\\uD83D\\uDE4E\\uD83C\\uDFFE|\\uD83D\\uDE4E\\uD83C\\uDFFD|\\uD83D\\uDE4E\\uD83C\\uDFFC|\\uD83D\\uDE4E\\uD83C\\uDFFB|\\uD83D\\uDE4D\\uD83C\\uDFFF|\\uD83D\\uDE4D\\uD83C\\uDFFE|\\uD83D\\uDE4D\\uD83C\\uDFFD|\\uD83D\\uDE4D\\uD83C\\uDFFC|\\uD83D\\uDE4D\\uD83C\\uDFFB|\\uD83D\\uDE4C\\uD83C\\uDFFF|\\uD83D\\uDE4C\\uD83C\\uDFFE|\\uD83D\\uDE4C\\uD83C\\uDFFD|\\uD83D\\uDE4C\\uD83C\\uDFFC|\\uD83D\\uDE4C\\uD83C\\uDFFB|\\uD83D\\uDE4B\\uD83C\\uDFFF|\\uD83D\\uDE4B\\uD83C\\uDFFE|\\uD83D\\uDE4B\\uD83C\\uDFFD|\\uD83D\\uDE4B\\uD83C\\uDFFC|\\uD83D\\uDE4B\\uD83C\\uDFFB|\\uD83D\\uDE47\\uD83C\\uDFFF|\\uD83D\\uDE47\\uD83C\\uDFFE|\\uD83D\\uDE47\\uD83C\\uDFFD|\\uD83D\\uDE47\\uD83C\\uDFFC|\\uD83D\\uDE47\\uD83C\\uDFFB|\\uD83D\\uDE46\\uD83C\\uDFFF|\\uD83D\\uDE46\\uD83C\\uDFFE|\\uD83D\\uDE46\\uD83C\\uDFFD|\\uD83D\\uDE46\\uD83C\\uDFFC|\\uD83D\\uDE46\\uD83C\\uDFFB|\\uD83D\\uDE45\\uD83C\\uDFFF|\\uD83D\\uDE45\\uD83C\\uDFFE|\\uD83D\\uDE45\\uD83C\\uDFFD|\\uD83D\\uDE45\\uD83C\\uDFFC|\\uD83D\\uDE45\\uD83C\\uDFFB|\\uD83D\\uDD96\\uD83C\\uDFFF|\\uD83D\\uDD96\\uD83C\\uDFFE|\\uD83D\\uDD96\\uD83C\\uDFFD|\\uD83D\\uDD96\\uD83C\\uDFFC|\\uD83D\\uDD96\\uD83C\\uDFFB|\\uD83D\\uDD95\\uD83C\\uDFFF|\\uD83D\\uDD95\\uD83C\\uDFFE|\\uD83D\\uDD95\\uD83C\\uDFFD|\\uD83D\\uDD95\\uD83C\\uDFFC|\\uD83D\\uDD95\\uD83C\\uDFFB|\\uD83D\\uDD90\\uD83C\\uDFFF|\\uD83D\\uDD90\\uD83C\\uDFFE|\\uD83D\\uDD90\\uD83C\\uDFFD|\\uD83D\\uDD90\\uD83C\\uDFFC|\\uD83D\\uDD90\\uD83C\\uDFFB|\\uD83D\\uDD7A\\uD83C\\uDFFF|\\uD83D\\uDD7A\\uD83C\\uDFFE|\\uD83D\\uDD7A\\uD83C\\uDFFD|\\uD83D\\uDD7A\\uD83C\\uDFFC|\\uD83D\\uDD7A\\uD83C\\uDFFB|\\uD83D\\uDD75\\uD83C\\uDFFF|\\uD83D\\uDD75\\uD83C\\uDFFE|\\uD83D\\uDD75\\uD83C\\uDFFD|\\uD83D\\uDD75\\uD83C\\uDFFC|\\uD83D\\uDD75\\uD83C\\uDFFB|\\uD83D\\uDCAA\\uD83C\\uDFFF|\\uD83D\\uDCAA\\uD83C\\uDFFE|\\uD83D\\uDCAA\\uD83C\\uDFFD|\\uD83D\\uDCAA\\uD83C\\uDFFC|\\uD83D\\uDCAA\\uD83C\\uDFFB|\\uD83D\\uDC87\\uD83C\\uDFFF|\\uD83D\\uDC87\\uD83C\\uDFFE|\\uD83D\\uDC87\\uD83C\\uDFFD|\\uD83D\\uDC87\\uD83C\\uDFFC|\\uD83D\\uDC87\\uD83C\\uDFFB|\\uD83D\\uDC86\\uD83C\\uDFFF|\\uD83D\\uDC86\\uD83C\\uDFFE|\\uD83D\\uDC86\\uD83C\\uDFFD|\\uD83D\\uDC86\\uD83C\\uDFFC|\\uD83D\\uDC86\\uD83C\\uDFFB|\\uD83D\\uDC85\\uD83C\\uDFFF|\\uD83D\\uDC85\\uD83C\\uDFFE|\\uD83D\\uDC85\\uD83C\\uDFFD|\\uD83D\\uDC85\\uD83C\\uDFFC|\\uD83D\\uDC85\\uD83C\\uDFFB|\\uD83D\\uDC83\\uD83C\\uDFFF|\\uD83D\\uDC83\\uD83C\\uDFFE|\\uD83D\\uDC83\\uD83C\\uDFFD|\\uD83D\\uDC83\\uD83C\\uDFFC|\\uD83D\\uDC83\\uD83C\\uDFFB|\\uD83D\\uDC82\\uD83C\\uDFFF|\\uD83D\\uDC82\\uD83C\\uDFFE|\\uD83D\\uDC82\\uD83C\\uDFFD|\\uD83D\\uDC82\\uD83C\\uDFFC|\\uD83D\\uDC82\\uD83C\\uDFFB|\\uD83D\\uDC81\\uD83C\\uDFFF|\\uD83D\\uDC81\\uD83C\\uDFFE|\\uD83D\\uDC81\\uD83C\\uDFFD|\\uD83D\\uDC81\\uD83C\\uDFFC|\\uD83D\\uDC81\\uD83C\\uDFFB|\\uD83D\\uDC7C\\uD83C\\uDFFF|\\uD83D\\uDC7C\\uD83C\\uDFFE|\\uD83D\\uDC7C\\uD83C\\uDFFD|\\uD83D\\uDC7C\\uD83C\\uDFFC|\\uD83D\\uDC7C\\uD83C\\uDFFB|\\uD83D\\uDC78\\uD83C\\uDFFF|\\uD83D\\uDC78\\uD83C\\uDFFE|\\uD83D\\uDC78\\uD83C\\uDFFD|\\uD83D\\uDC78\\uD83C\\uDFFC|\\uD83D\\uDC78\\uD83C\\uDFFB|\\uD83D\\uDC77\\uD83C\\uDFFF|\\uD83D\\uDC77\\uD83C\\uDFFE|\\uD83D\\uDC77\\uD83C\\uDFFD|\\uD83D\\uDC77\\uD83C\\uDFFC|\\uD83D\\uDC77\\uD83C\\uDFFB|\\uD83D\\uDC76\\uD83C\\uDFFF|\\uD83D\\uDC76\\uD83C\\uDFFE|\\uD83D\\uDC76\\uD83C\\uDFFD|\\uD83D\\uDC76\\uD83C\\uDFFC|\\uD83D\\uDC76\\uD83C\\uDFFB|\\uD83D\\uDC75\\uD83C\\uDFFF|\\uD83D\\uDC75\\uD83C\\uDFFE|\\uD83D\\uDC75\\uD83C\\uDFFD|\\uD83D\\uDC75\\uD83C\\uDFFC|\\uD83D\\uDC75\\uD83C\\uDFFB|\\uD83D\\uDC74\\uD83C\\uDFFF|\\uD83D\\uDC74\\uD83C\\uDFFE|\\uD83D\\uDC74\\uD83C\\uDFFD|\\uD83D\\uDC74\\uD83C\\uDFFC|\\uD83D\\uDC74\\uD83C\\uDFFB|\\uD83D\\uDC73\\uD83C\\uDFFF|\\uD83D\\uDC73\\uD83C\\uDFFE|\\uD83D\\uDC73\\uD83C\\uDFFD|\\uD83D\\uDC73\\uD83C\\uDFFC|\\uD83D\\uDC73\\uD83C\\uDFFB|\\uD83D\\uDC72\\uD83C\\uDFFF|\\uD83D\\uDC72\\uD83C\\uDFFE|\\uD83D\\uDC72\\uD83C\\uDFFD|\\uD83D\\uDC72\\uD83C\\uDFFC|\\uD83D\\uDC72\\uD83C\\uDFFB|\\uD83D\\uDC71\\uD83C\\uDFFF|\\uD83D\\uDC71\\uD83C\\uDFFE|\\uD83D\\uDC71\\uD83C\\uDFFD|\\uD83D\\uDC71\\uD83C\\uDFFC|\\uD83D\\uDC71\\uD83C\\uDFFB|\\uD83D\\uDC70\\uD83C\\uDFFF|\\uD83D\\uDC70\\uD83C\\uDFFE|\\uD83D\\uDC70\\uD83C\\uDFFD|\\uD83D\\uDC70\\uD83C\\uDFFC|\\uD83D\\uDC70\\uD83C\\uDFFB|\\uD83D\\uDC6E\\uD83C\\uDFFF|\\uD83D\\uDC6E\\uD83C\\uDFFE|\\uD83D\\uDC6E\\uD83C\\uDFFD|\\uD83D\\uDC6E\\uD83C\\uDFFC|\\uD83D\\uDC6E\\uD83C\\uDFFB|\\uD83D\\uDC69\\uD83C\\uDFFF|\\uD83D\\uDC69\\uD83C\\uDFFE|\\uD83D\\uDC69\\uD83C\\uDFFD|\\uD83D\\uDC69\\uD83C\\uDFFC|\\uD83D\\uDC69\\uD83C\\uDFFB|\\uD83D\\uDC68\\uD83C\\uDFFF|\\uD83D\\uDC68\\uD83C\\uDFFE|\\uD83D\\uDC68\\uD83C\\uDFFD|\\uD83D\\uDC68\\uD83C\\uDFFC|\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83D\\uDC67\\uD83C\\uDFFF|\\uD83D\\uDC67\\uD83C\\uDFFE|\\uD83D\\uDC67\\uD83C\\uDFFD|\\uD83D\\uDC67\\uD83C\\uDFFC|\\uD83D\\uDC67\\uD83C\\uDFFB|\\uD83D\\uDC66\\uD83C\\uDFFF|\\uD83D\\uDC66\\uD83C\\uDFFE|\\uD83D\\uDC66\\uD83C\\uDFFD|\\uD83D\\uDC66\\uD83C\\uDFFC|\\uD83D\\uDC66\\uD83C\\uDFFB|\\uD83D\\uDC50\\uD83C\\uDFFF|\\uD83D\\uDC50\\uD83C\\uDFFE|\\uD83D\\uDC50\\uD83C\\uDFFD|\\uD83D\\uDC50\\uD83C\\uDFFC|\\uD83D\\uDC50\\uD83C\\uDFFB|\\uD83D\\uDC4F\\uD83C\\uDFFF|\\uD83D\\uDC4F\\uD83C\\uDFFE|\\uD83D\\uDC4F\\uD83C\\uDFFD|\\uD83D\\uDC4F\\uD83C\\uDFFC|\\uD83D\\uDC4F\\uD83C\\uDFFB|\\uD83D\\uDC4E\\uD83C\\uDFFF|\\uD83D\\uDC4E\\uD83C\\uDFFE|\\uD83D\\uDC4E\\uD83C\\uDFFD|\\uD83D\\uDC4E\\uD83C\\uDFFC|\\uD83D\\uDC4E\\uD83C\\uDFFB|\\uD83D\\uDC4D\\uD83C\\uDFFF|\\uD83D\\uDC4D\\uD83C\\uDFFE|\\uD83D\\uDC4D\\uD83C\\uDFFD|\\uD83D\\uDC4D\\uD83C\\uDFFC|\\uD83D\\uDC4D\\uD83C\\uDFFB|\\uD83D\\uDC4C\\uD83C\\uDFFF|\\uD83D\\uDC4C\\uD83C\\uDFFE|\\uD83D\\uDC4C\\uD83C\\uDFFD|\\uD83D\\uDC4C\\uD83C\\uDFFC|\\uD83D\\uDC4C\\uD83C\\uDFFB|\\uD83D\\uDC4B\\uD83C\\uDFFF|\\uD83D\\uDC4B\\uD83C\\uDFFE|\\uD83D\\uDC4B\\uD83C\\uDFFD|\\uD83D\\uDC4B\\uD83C\\uDFFC|\\uD83D\\uDC4B\\uD83C\\uDFFB|\\uD83D\\uDC4A\\uD83C\\uDFFF|\\uD83D\\uDC4A\\uD83C\\uDFFE|\\uD83D\\uDC4A\\uD83C\\uDFFD|\\uD83D\\uDC4A\\uD83C\\uDFFC|\\uD83D\\uDC4A\\uD83C\\uDFFB|\\uD83D\\uDC49\\uD83C\\uDFFF|\\uD83D\\uDC49\\uD83C\\uDFFE|\\uD83D\\uDC49\\uD83C\\uDFFD|\\uD83D\\uDC49\\uD83C\\uDFFC|\\uD83D\\uDC49\\uD83C\\uDFFB|\\uD83D\\uDC48\\uD83C\\uDFFF|\\uD83D\\uDC48\\uD83C\\uDFFE|\\uD83D\\uDC48\\uD83C\\uDFFD|\\uD83D\\uDC48\\uD83C\\uDFFC|\\uD83D\\uDC48\\uD83C\\uDFFB|\\uD83D\\uDC47\\uD83C\\uDFFF|\\uD83D\\uDC47\\uD83C\\uDFFE|\\uD83D\\uDC47\\uD83C\\uDFFD|\\uD83D\\uDC47\\uD83C\\uDFFC|\\uD83D\\uDC47\\uD83C\\uDFFB|\\uD83D\\uDC46\\uD83C\\uDFFF|\\uD83D\\uDC46\\uD83C\\uDFFE|\\uD83D\\uDC46\\uD83C\\uDFFD|\\uD83D\\uDC46\\uD83C\\uDFFC|\\uD83D\\uDC46\\uD83C\\uDFFB|\\uD83D\\uDC43\\uD83C\\uDFFF|\\uD83D\\uDC43\\uD83C\\uDFFE|\\uD83D\\uDC43\\uD83C\\uDFFD|\\uD83D\\uDC43\\uD83C\\uDFFC|\\uD83D\\uDC43\\uD83C\\uDFFB|\\uD83D\\uDC42\\uD83C\\uDFFF|\\uD83D\\uDC42\\uD83C\\uDFFE|\\uD83D\\uDC42\\uD83C\\uDFFD|\\uD83D\\uDC42\\uD83C\\uDFFC|\\uD83D\\uDC42\\uD83C\\uDFFB|\\uD83C\\uDFCB\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFE|\\uD83C\\uDFF3\\uD83C\\uDF08|\\uD83C\\uDFCB\\uD83C\\uDFFC|\\uD83C\\uDFCB\\uD83C\\uDFFB|\\uD83C\\uDFCA\\uD83C\\uDFFF|\\uD83C\\uDFCA\\uD83C\\uDFFE|\\uD83C\\uDFCA\\uD83C\\uDFFD|\\uD83C\\uDFCA\\uD83C\\uDFFC|\\uD83C\\uDFCA\\uD83C\\uDFFB|\\uD83C\\uDFC7\\uD83C\\uDFFF|\\uD83C\\uDFC7\\uD83C\\uDFFE|\\uD83C\\uDFC7\\uD83C\\uDFFD|\\uD83C\\uDFC7\\uD83C\\uDFFC|\\uD83C\\uDFC7\\uD83C\\uDFFB|\\uD83C\\uDFC4\\uD83C\\uDFFF|\\uD83C\\uDFCB\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFD|\\uD83C\\uDFC4\\uD83C\\uDFFC|\\uD83C\\uDFC4\\uD83C\\uDFFB|\\uD83C\\uDFC3\\uD83C\\uDFFF|\\uD83C\\uDFC3\\uD83C\\uDFFE|\\uD83C\\uDFC3\\uD83C\\uDFFD|\\uD83C\\uDFC3\\uD83C\\uDFFC|\\uD83C\\uDFC3\\uD83C\\uDFFB|\\uD83C\\uDF85\\uD83C\\uDFFF|\\uD83C\\uDF85\\uD83C\\uDFFE|\\uD83C\\uDF85\\uD83C\\uDFFD|\\uD83C\\uDF85\\uD83C\\uDFFC|\\uD83C\\uDF85\\uD83C\\uDFFB|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDFE\\uD83C\\uDDF9|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDFB\\uD83C\\uDDEC|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDFA\\uD83C\\uDDF2|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDF9\\uD83C\\uDDF0|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDF9\\uD83C\\uDDE8|\\uD83C\\uDDF9\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF8\\uD83C\\uDDFD|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEF|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDEA|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF5\\uD83C\\uDDF3|\\uD83C\\uDDF5\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF3\\uD83C\\uDDEB|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDF6|\\uD83C\\uDDF2\\uD83C\\uDDF5|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDF4|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDF2|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDE8|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDF2|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEC\\uD83C\\uDDF5|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDEC\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDEC|\\uD83C\\uDDEC\\uD83C\\uDDEB|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEA\\uD83C\\uDDFA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDE6|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDEC|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFD|\\uD83C\\uDDE8\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDF5|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF0|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDE8|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDFB|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF6|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDE7\\uD83C\\uDDF1|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDFD|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDFC4\\uD83C\\uDFFE|\\uD83D\\uDDE3\\uFE0F|\\u26F9\\uD83C\\uDFFF|\\u26F9\\uD83C\\uDFFE|\\u26F9\\uD83C\\uDFFD|\\u26F9\\uD83C\\uDFFC|\\u26F9\\uD83C\\uDFFB|\\u270D\\uD83C\\uDFFF|\\u270D\\uD83C\\uDFFE|\\u270D\\uD83C\\uDFFD|\\u270D\\uD83C\\uDFFC|\\u270D\\uD83C\\uDFFB|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDE02\\uFE0F|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE37\\uFE0F|\\uD83C\\uDF9E\\uFE0F|\\uD83C\\uDF9F\\uFE0F|\\uD83C\\uDFCB\\uFE0F|\\uD83C\\uDFCC\\uFE0F|\\uD83C\\uDFCD\\uFE0F|\\uD83C\\uDFCE\\uFE0F|\\uD83C\\uDF96\\uFE0F|\\uD83C\\uDF97\\uFE0F|\\uD83C\\uDF36\\uFE0F|\\uD83C\\uDF27\\uFE0F|\\uD83C\\uDF28\\uFE0F|\\uD83C\\uDF29\\uFE0F|\\uD83C\\uDF2A\\uFE0F|\\uD83C\\uDF2B\\uFE0F|\\uD83C\\uDF2C\\uFE0F|\\uD83D\\uDC3F\\uFE0F|\\uD83D\\uDD77\\uFE0F|\\uD83D\\uDD78\\uFE0F|\\uD83C\\uDF21\\uFE0F|\\uD83C\\uDF99\\uFE0F|\\uD83C\\uDF9A\\uFE0F|\\uD83C\\uDF9B\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDFF5\\uFE0F|\\uD83C\\uDFF7\\uFE0F|\\uD83D\\uDCFD\\uFE0F|\\uD83D\\uDD49\\uFE0F|\\uD83D\\uDD4A\\uFE0F|\\uD83D\\uDD6F\\uFE0F|\\uD83D\\uDD70\\uFE0F|\\uD83D\\uDD73\\uFE0F|\\uD83D\\uDD76\\uFE0F|\\uD83D\\uDD79\\uFE0F|\\uD83D\\uDD87\\uFE0F|\\uD83D\\uDD8A\\uFE0F|\\uD83D\\uDD8B\\uFE0F|\\uD83D\\uDD8C\\uFE0F|\\uD83D\\uDD8D\\uFE0F|\\uD83D\\uDDA5\\uFE0F|\\uD83D\\uDDA8\\uFE0F|\\uD83D\\uDDB2\\uFE0F|\\uD83D\\uDDBC\\uFE0F|\\uD83D\\uDDC2\\uFE0F|\\uD83D\\uDDC3\\uFE0F|\\uD83D\\uDDC4\\uFE0F|\\uD83D\\uDDD1\\uFE0F|\\uD83D\\uDDD2\\uFE0F|\\uD83D\\uDDD3\\uFE0F|\\uD83D\\uDDDC\\uFE0F|\\uD83D\\uDDDD\\uFE0F|\\uD83D\\uDDDE\\uFE0F|\\uD83D\\uDDE1\\uFE0F|\\u270B\\uD83C\\uDFFF|\\uD83D\\uDDE8\\uFE0F|\\uD83D\\uDDEF\\uFE0F|\\uD83D\\uDDF3\\uFE0F|\\uD83D\\uDDFA\\uFE0F|\\uD83D\\uDEE0\\uFE0F|\\uD83D\\uDEE1\\uFE0F|\\uD83D\\uDEE2\\uFE0F|\\uD83D\\uDEF0\\uFE0F|\\uD83C\\uDF7D\\uFE0F|\\uD83D\\uDC41\\uFE0F|\\uD83D\\uDD74\\uFE0F|\\uD83D\\uDD75\\uFE0F|\\uD83D\\uDD90\\uFE0F|\\uD83C\\uDFD4\\uFE0F|\\uD83C\\uDFD5\\uFE0F|\\uD83C\\uDFD6\\uFE0F|\\uD83C\\uDFD7\\uFE0F|\\uD83C\\uDFD8\\uFE0F|\\uD83C\\uDFD9\\uFE0F|\\uD83C\\uDFDA\\uFE0F|\\uD83C\\uDFDB\\uFE0F|\\uD83C\\uDFDC\\uFE0F|\\uD83C\\uDFDD\\uFE0F|\\uD83C\\uDFDE\\uFE0F|\\uD83C\\uDFDF\\uFE0F|\\uD83D\\uDECB\\uFE0F|\\uD83D\\uDECD\\uFE0F|\\uD83D\\uDECE\\uFE0F|\\uD83D\\uDECF\\uFE0F|\\uD83D\\uDEE3\\uFE0F|\\uD83D\\uDEE4\\uFE0F|\\uD83D\\uDEE5\\uFE0F|\\uD83D\\uDEE9\\uFE0F|\\uD83D\\uDEF3\\uFE0F|\\uD83C\\uDF24\\uFE0F|\\uD83C\\uDF25\\uFE0F|\\uD83C\\uDF26\\uFE0F|\\uD83D\\uDDB1\\uFE0F|\\u261D\\uD83C\\uDFFB|\\u261D\\uD83C\\uDFFC|\\u261D\\uD83C\\uDFFD|\\u261D\\uD83C\\uDFFE|\\u261D\\uD83C\\uDFFF|\\u270C\\uD83C\\uDFFB|\\u270C\\uD83C\\uDFFC|\\u270C\\uD83C\\uDFFD|\\u270C\\uD83C\\uDFFE|\\u270C\\uD83C\\uDFFF|\\u270A\\uD83C\\uDFFB|\\u270A\\uD83C\\uDFFC|\\u270A\\uD83C\\uDFFD|\\u270A\\uD83C\\uDFFE|\\u270A\\uD83C\\uDFFF|\\u270B\\uD83C\\uDFFB|\\u270B\\uD83C\\uDFFC|\\u270B\\uD83C\\uDFFD|\\u270B\\uD83C\\uDFFE|\\4\\uFE0F\\u20E3|\\9\\uFE0F\\u20E3|\\0\\uFE0F\\u20E3|\\1\\uFE0F\\u20E3|\\2\\uFE0F\\u20E3|\\3\\uFE0F\\u20E3|\\#\\uFE0F\\u20E3|\\5\\uFE0F\\u20E3|\\6\\uFE0F\\u20E3|\\7\\uFE0F\\u20E3|\\8\\uFE0F\\u20E3|\\*\\uFE0F\\u20E3|\\uD83D\\uDDE1|\\uD83D\\uDD77|\\uD83D\\uDDE3|\\uD83D\\uDEE4|\\uD83D\\uDDE8|\\uD83D\\uDD78|\\uD83D\\uDDEF|\\uD83C\\uDE37|\\uD83D\\uDDF3|\\uD83C\\uDF21|\\uD83D\\uDDFA|\\uD83D\\uDDB1|\\uD83D\\uDEE0|\\uD83C\\uDF99|\\uD83D\\uDEE1|\\uD83C\\uDF9E|\\uD83D\\uDEE2|\\uD83C\\uDF9A|\\uD83D\\uDEF0|\\uD83D\\uDEE3|\\uD83C\\uDF7D|\\uD83C\\uDF9B|\\uD83D\\uDC41|\\uD83C\\uDF9F|\\uD83D\\uDD74|\\uD83C\\uDFF3|\\uD83D\\uDD75|\\uD83D\\uDEF3|\\uD83D\\uDD90|\\uD83C\\uDFF5|\\uD83C\\uDFD4|\\uD83C\\uDFCB|\\uD83C\\uDFD5|\\uD83C\\uDFF7|\\uD83C\\uDFD6|\\uD83D\\uDECF|\\uD83C\\uDFD7|\\uD83D\\uDCFD|\\uD83C\\uDFD8|\\uD83C\\uDFCC|\\uD83C\\uDFD9|\\uD83D\\uDD49|\\uD83C\\uDFDA|\\uD83C\\uDF25|\\uD83C\\uDFDB|\\uD83D\\uDD4A|\\uD83C\\uDFDC|\\uD83C\\uDFCD|\\uD83C\\uDFDD|\\uD83D\\uDD6F|\\uD83C\\uDFDE|\\uD83D\\uDECE|\\uD83C\\uDFDF|\\uD83D\\uDD70|\\uD83D\\uDECB|\\uD83C\\uDFCE|\\uD83D\\uDECD|\\uD83D\\uDD73|\\uD83D\\uDECE|\\uD83D\\uDEE9|\\uD83D\\uDECF|\\uD83D\\uDD76|\\uD83D\\uDEE3|\\uD83C\\uDF96|\\uD83D\\uDEE4|\\uD83D\\uDD79|\\uD83D\\uDEE5|\\uD83D\\uDECD|\\uD83D\\uDEE9|\\uD83D\\uDD87|\\uD83D\\uDEF3|\\uD83C\\uDF97|\\uD83C\\uDF24|\\uD83D\\uDD8A|\\uD83C\\uDF25|\\uD83C\\uDC04|\\uD83C\\uDF26|\\uD83D\\uDD8B|\\uD83D\\uDDB1|\\uD83C\\uDF36|\\uD83D\\uDD8C|\\uD83C\\uDF26|\\uD83D\\uDD8D|\\uD83C\\uDF27|\\uD83D\\uDDA5|\\uD83C\\uDD7F|\\uD83D\\uDDA8|\\uD83C\\uDF28|\\uD83D\\uDDB2|\\uD83D\\uDECB|\\uD83D\\uDDBC|\\uD83C\\uDF29|\\uD83D\\uDDC2|\\uD83C\\uDE02|\\uD83D\\uDDC3|\\uD83C\\uDF2A|\\uD83D\\uDDC4|\\uD83D\\uDEE5|\\uD83D\\uDDD1|\\uD83C\\uDF2B|\\uD83D\\uDDD2|\\uD83C\\uDE1A|\\uD83D\\uDDD3|\\uD83C\\uDF2C|\\uD83D\\uDDDC|\\uD83C\\uDF24|\\uD83D\\uDDDD|\\uD83D\\uDC3F|\\uD83D\\uDDDE|\\u00A9\\uFE0F|\\uD83C\\uDFDF|\\u00AE\\uFE0F|\\uD83C\\uDFDE|\\u203C\\uFE0F|\\uD83C\\uDFDD|\\u2049\\uFE0F|\\uD83C\\uDFDC|\\u2122\\uFE0F|\\uD83C\\uDFDB|\\u2139\\uFE0F|\\uD83C\\uDFDA|\\u2194\\uFE0F|\\uD83C\\uDFD9|\\u2195\\uFE0F|\\uD83C\\uDFD8|\\u2196\\uFE0F|\\uD83C\\uDFD7|\\u2197\\uFE0F|\\uD83C\\uDFD6|\\u2198\\uFE0F|\\uD83C\\uDFD5|\\u2199\\uFE0F|\\uD83C\\uDFD4|\\u21A9\\uFE0F|\\uD83D\\uDD90|\\u21AA\\uFE0F|\\uD83D\\uDD75|\\u231A\\uFE0F|\\uD83D\\uDD74|\\u231B\\uFE0F|\\uD83D\\uDC41|\\u24C2\\uFE0F|\\uD83C\\uDF7D|\\u25AA\\uFE0F|\\uD83D\\uDEF0|\\u25AB\\uFE0F|\\uD83D\\uDEE2|\\u25B6\\uFE0F|\\uD83D\\uDEE1|\\u25C0\\uFE0F|\\uD83D\\uDEE0|\\u25FB\\uFE0F|\\uD83D\\uDDFA|\\u25FC\\uFE0F|\\uD83D\\uDDF3|\\u25FD\\uFE0F|\\uD83D\\uDDEF|\\u25FE\\uFE0F|\\uD83D\\uDDE8|\\u2600\\uFE0F|\\uD83D\\uDDE3|\\u2601\\uFE0F|\\uD83D\\uDDE1|\\u260E\\uFE0F|\\uD83D\\uDDDE|\\u2611\\uFE0F|\\uD83D\\uDDDD|\\u2614\\uFE0F|\\uD83D\\uDDDC|\\u2615\\uFE0F|\\uD83D\\uDDD3|\\u261D\\uFE0F|\\uD83D\\uDDD2|\\u263A\\uFE0F|\\uD83D\\uDDD1|\\u2648\\uFE0F|\\uD83D\\uDDC4|\\u2649\\uFE0F|\\uD83D\\uDDC3|\\u264A\\uFE0F|\\uD83D\\uDDC2|\\u264B\\uFE0F|\\uD83D\\uDDBC|\\u264C\\uFE0F|\\uD83D\\uDDB2|\\u264D\\uFE0F|\\uD83D\\uDDA8|\\u264E\\uFE0F|\\uD83D\\uDDA5|\\u264F\\uFE0F|\\uD83D\\uDD8D|\\u2650\\uFE0F|\\uD83D\\uDD8C|\\u2651\\uFE0F|\\uD83D\\uDD8B|\\u2652\\uFE0F|\\uD83D\\uDD8A|\\u2653\\uFE0F|\\uD83D\\uDD87|\\u2660\\uFE0F|\\uD83D\\uDD79|\\u2663\\uFE0F|\\uD83D\\uDD76|\\u2665\\uFE0F|\\uD83D\\uDD73|\\u2666\\uFE0F|\\uD83D\\uDD70|\\u2668\\uFE0F|\\uD83D\\uDD6F|\\u267B\\uFE0F|\\uD83D\\uDD4A|\\u267F\\uFE0F|\\uD83D\\uDD49|\\u2693\\uFE0F|\\uD83D\\uDCFD|\\u26A0\\uFE0F|\\uD83C\\uDFF7|\\u26A1\\uFE0F|\\uD83C\\uDFF5|\\u26AA\\uFE0F|\\uD83C\\uDFF3|\\u26AB\\uFE0F|\\uD83C\\uDF9B|\\u26BD\\uFE0F|\\uD83C\\uDF9A|\\u26BE\\uFE0F|\\uD83C\\uDF99|\\u26C4\\uFE0F|\\uD83C\\uDF21|\\u26C5\\uFE0F|\\uD83D\\uDD78|\\u26D4\\uFE0F|\\uD83D\\uDD77|\\u26EA\\uFE0F|\\uD83D\\uDC3F|\\uD83C\\uDE2F|\\uD83C\\uDF2C|\\u26F3\\uFE0F|\\uD83C\\uDF2B|\\u26F5\\uFE0F|\\uD83C\\uDF2A|\\u26FA\\uFE0F|\\uD83C\\uDF29|\\u26FD\\uFE0F|\\uD83C\\uDF28|\\u2702\\uFE0F|\\uD83C\\uDF27|\\u2708\\uFE0F|\\uD83C\\uDF36|\\u2709\\uFE0F|\\uD83C\\uDF97|\\u270C\\uFE0F|\\uD83C\\uDF96|\\u270F\\uFE0F|\\uD83C\\uDFCE|\\u2712\\uFE0F|\\uD83C\\uDFCD|\\u2714\\uFE0F|\\uD83C\\uDFCC|\\u2716\\uFE0F|\\uD83C\\uDFCB|\\u2733\\uFE0F|\\uD83C\\uDF9F|\\u2734\\uFE0F|\\uD83C\\uDF9E|\\u2744\\uFE0F|\\uD83C\\uDE37|\\u2747\\uFE0F|\\uD83C\\uDE2F|\\u2757\\uFE0F|\\uD83C\\uDE1A|\\u2764\\uFE0F|\\uD83C\\uDE02|\\u27A1\\uFE0F|\\uD83C\\uDD7F|\\u2934\\uFE0F|\\uD83C\\uDC04|\\u2935\\uFE0F|\\uD83C\\uDDE6|\\u2B05\\uFE0F|\\uD83C\\uDDE7|\\u2B06\\uFE0F|\\uD83C\\uDDE8|\\u2B07\\uFE0F|\\uD83C\\uDDE9|\\u2B1B\\uFE0F|\\uD83C\\uDDEA|\\u2B1C\\uFE0F|\\uD83C\\uDDEB|\\u2B50\\uFE0F|\\uD83C\\uDDEC|\\u2B55\\uFE0F|\\uD83C\\uDDED|\\u3030\\uFE0F|\\uD83C\\uDDEE|\\u303D\\uFE0F|\\uD83C\\uDDEF|\\u3297\\uFE0F|\\uD83C\\uDDF0|\\u3299\\uFE0F|\\uD83C\\uDDF1|\\u271D\\uFE0F|\\uD83C\\uDDF2|\\u2328\\uFE0F|\\uD83C\\uDDF3|\\u270D\\uFE0F|\\uD83C\\uDDF4|\\u23CF\\uFE0F|\\uD83C\\uDDF5|\\u23ED\\uFE0F|\\uD83C\\uDDF6|\\u23EE\\uFE0F|\\uD83C\\uDDF7|\\u23EF\\uFE0F|\\uD83C\\uDDF8|\\u23F1\\uFE0F|\\uD83C\\uDDF9|\\u23F2\\uFE0F|\\uD83C\\uDDFA|\\u23F8\\uFE0F|\\uD83C\\uDDFB|\\u23F9\\uFE0F|\\uD83C\\uDDFC|\\u23FA\\uFE0F|\\uD83E\\uDD5E|\\u2602\\uFE0F|\\uD83E\\uDD5D|\\u2603\\uFE0F|\\uD83E\\uDD5C|\\u2604\\uFE0F|\\uD83E\\uDD5B|\\u2618\\uFE0F|\\uD83E\\uDD5A|\\u2620\\uFE0F|\\uD83E\\uDD91|\\u2622\\uFE0F|\\uD83E\\uDD90|\\u2623\\uFE0F|\\uD83E\\uDD41|\\u2626\\uFE0F|\\uD83C\\uDFF8|\\u262A\\uFE0F|\\uD83C\\uDFD3|\\u262E\\uFE0F|\\uD83C\\uDFD2|\\u262F\\uFE0F|\\uD83C\\uDFD1|\\u2638\\uFE0F|\\uD83C\\uDFD0|\\u2639\\uFE0F|\\uD83C\\uDFCF|\\u2692\\uFE0F|\\uD83D\\uDCFF|\\u2694\\uFE0F|\\uD83D\\uDD4E|\\u2696\\uFE0F|\\uD83D\\uDD4D|\\u2697\\uFE0F|\\uD83D\\uDD4C|\\u2699\\uFE0F|\\uD83D\\uDD4B|\\u269B\\uFE0F|\\uD83D\\uDED0|\\u269C\\uFE0F|\\uD83C\\uDFFA|\\u26B0\\uFE0F|\\uD83C\\uDFF9|\\u26B1\\uFE0F|\\uD83C\\uDF7E|\\u26C8\\uFE0F|\\uD83C\\uDF7F|\\u26CF\\uFE0F|\\uD83C\\uDF2F|\\u26D1\\uFE0F|\\uD83C\\uDF2E|\\u26D3\\uFE0F|\\uD83C\\uDF2D|\\u26E9\\uFE0F|\\uD83E\\uDDC0|\\u26F0\\uFE0F|\\uD83E\\uDD83|\\u26F1\\uFE0F|\\uD83E\\uDD80|\\u26F4\\uFE0F|\\uD83E\\uDD82|\\u26F7\\uFE0F|\\uD83E\\uDD84|\\u26F8\\uFE0F|\\uD83E\\uDD81|\\u26F9\\uFE0F|\\uD83E\\uDD16|\\u2721\\uFE0F|\\uD83E\\uDD15|\\u2763\\uFE0F|\\uD83E\\uDD12|\\uD83E\\uDD49|\\uD83E\\uDD48|\\uD83E\\uDD47|\\uD83E\\uDD3A|\\uD83E\\uDD45|\\uD83E\\uDD3E|\\uD83C\\uDDFF|\\uD83E\\uDD3D|\\uD83E\\uDD4B|\\uD83E\\uDD4A|\\uD83E\\uDD3C|\\uD83E\\uDD39|\\uD83E\\uDD38|\\uD83D\\uDEF6|\\uD83D\\uDEF5|\\uD83D\\uDEF4|\\uD83D\\uDED2|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83D\\uDED1|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDDFE|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83E\\uDD44|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83E\\uDD42|\\uD83E\\uDD43|\\uD83C\\uDE01|\\uD83E\\uDD59|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83E\\uDD58|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83E\\uDD57|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83E\\uDD56|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83E\\uDD55|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83E\\uDD54|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83E\\uDD53|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83E\\uDD52|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83E\\uDD51|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83E\\uDD50|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83E\\uDD40|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83E\\uDD8F|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83E\\uDD8E|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83E\\uDD8D|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83E\\uDD8C|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83E\\uDD8B|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83E\\uDD8A|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83E\\uDD89|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83E\\uDD88|\\uD83C\\uDF66|\\uD83E\\uDD87|\\uD83C\\uDF67|\\uD83C\\uDDFD|\\uD83C\\uDF68|\\uD83E\\uDD86|\\uD83C\\uDF69|\\uD83E\\uDD85|\\uD83C\\uDF6A|\\uD83D\\uDDA4|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83E\\uDD1E|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83E\\uDD1D|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83E\\uDD1B|\\uD83E\\uDD1C|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83E\\uDD1A|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83E\\uDD19|\\uD83C\\uDF8D|\\uD83D\\uDD7A|\\uD83C\\uDF8E|\\uD83E\\uDD33|\\uD83C\\uDF8F|\\uD83E\\uDD30|\\uD83C\\uDF90|\\uD83E\\uDD26|\\uD83E\\uDD37|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83E\\uDD36|\\uD83C\\uDFA8|\\uD83E\\uDD35|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83E\\uDD34|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83E\\uDD27|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83E\\uDD25|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83E\\uDD24|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83E\\uDD23|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83E\\uDD22|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83E\\uDD21|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83E\\uDD20|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83E\\uDD18|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\uD83C\\uDFC5|\\uD83C\\uDFF4|\\uD83D\\uDCF8|\\uD83D\\uDECC|\\uD83D\\uDD95|\\uD83D\\uDD96|\\uD83D\\uDE41|\\uD83D\\uDE42|\\uD83D\\uDEEB|\\uD83D\\uDEEC|\\uD83C\\uDFFB|\\uD83C\\uDFFC|\\uD83C\\uDFFD|\\uD83C\\uDFFE|\\uD83C\\uDFFF|\\uD83D\\uDE43|\\uD83E\\uDD11|\\uD83E\\uDD13|\\uD83E\\uDD17|\\uD83D\\uDE44|\\uD83E\\uDD14|\\uD83E\\uDD10|\\u26F2\\uFE0F|\\#\\u20E3|\\9\\u20E3|\\8\\u20E3|\\7\\u20E3|\\6\\u20E3|\\*\\u20E3|\\4\\u20E3|\\3\\u20E3|\\2\\u20E3|\\1\\u20E3|\\0\\u20E3|\\5\\u20E3|\\u26B1|\\u26B0|\\u269C|\\u269B|\\u2699|\\u2697|\\u2696|\\u2694|\\u2692|\\u2639|\\u2638|\\u262F|\\u262E|\\u262A|\\u2626|\\u2623|\\u2622|\\u2620|\\u2618|\\u2604|\\u2603|\\u2602|\\u23FA|\\u23F9|\\u23F8|\\u23F2|\\u23F1|\\u23EF|\\u23EE|\\u23ED|\\u23CF|\\u270D|\\u2328|\\u271D|\\u3299|\\u3297|\\u303D|\\u3030|\\u2B55|\\u2B50|\\u2B1C|\\u2B1B|\\u2B07|\\u2B06|\\u2B05|\\u2935|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u26CE|\\u2705|\\u270A|\\u270B|\\u2728|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2795|\\u2796|\\u2797|\\u27B0|\\u27BF|\\u00A9|\\u00AE|\\u203C|\\u2049|\\u2122|\\u2139|\\u2194|\\u2195|\\u2196|\\u2197|\\u2198|\\u2199|\\u21A9|\\u21AA|\\u231A|\\u231B|\\u24C2|\\u25AA|\\u25AB|\\u25B6|\\u25C0|\\u25FB|\\u25FC|\\u25FD|\\u25FE|\\u2600|\\u2601|\\u260E|\\u2611|\\u2614|\\u2615|\\u261D|\\u263A|\\u2648|\\u2649|\\u264A|\\u264B|\\u264C|\\u264D|\\u264E|\\u264F|\\u2650|\\u2651|\\u2652|\\u2653|\\u2660|\\u2663|\\u2665|\\u2666|\\u2668|\\u267B|\\u267F|\\u2693|\\u26A0|\\u26A1|\\u26AA|\\u26AB|\\u26BD|\\u26BE|\\u26C4|\\u26C5|\\u26D4|\\u26EA|\\u26F2|\\u26F3|\\u26F5|\\u26FA|\\u26FD|\\u2702|\\u2708|\\u2709|\\u270C|\\u270F|\\u2712|\\u2714|\\u2716|\\u2733|\\u2734|\\u2744|\\u2747|\\u2721|\\u2764|\\u27A1|\\u2934|\\u2935|\\u2B05|\\u2B06|\\u2B07|\\u2B1B|\\u2B1C|\\u2B50|\\u2B55|\\u3030|\\u303D|\\u3297|\\u3299|\\u2934|\\u27A1|\\u2764|\\u2757|\\u2747|\\u2744|\\u2734|\\u2733|\\u2716|\\u2714|\\u2712|\\u270F|\\u270C|\\u2709|\\u2708|\\u2702|\\u26FD|\\u26FA|\\u26F5|\\u26F3|\\u26F2|\\u26EA|\\u26D4|\\u26C5|\\u26C4|\\u26BE|\\u26BD|\\u26AB|\\u26AA|\\u26A1|\\u26A0|\\u2693|\\u271D|\\u267F|\\u267B|\\u2668|\\u2666|\\u2665|\\u2663|\\u2660|\\u2653|\\u2652|\\u2651|\\u2650|\\u264F|\\u264E|\\u264D|\\u2328|\\u264C|\\u264B|\\u264A|\\u2649|\\u2648|\\u263A|\\u261D|\\u2615|\\u2614|\\u2611|\\u260E|\\u2601|\\u2600|\\u25FE|\\u25FD|\\u25FC|\\u25FB|\\u25C0|\\u25B6|\\u25AB|\\u25AA|\\u24C2|\\u231B|\\u231A|\\u21AA|\\u270D|\\u21A9|\\u2199|\\u2198|\\u2197|\\u2196|\\u2195|\\u2194|\\u2139|\\u2122|\\u2049|\\u203C|\\u00AE|\\u00A9|\\u2763|\\u26F9|\\u26F8|\\u26F7|\\u26F4|\\u26F1|\\u26F0|\\u26E9|\\u26D3|\\u23CF|\\u23ED|\\u23EE|\\u23EF|\\u23F1|\\u23F2|\\u23F8|\\u23F9|\\u23FA|\\u2602|\\u2603|\\u2604|\\u2618|\\u2620|\\u2622|\\u2623|\\u2626|\\u262A|\\u262E|\\u262F|\\u2638|\\u2639|\\u2692|\\u2694|\\u2696|\\u2697|\\u2699|\\u269B|\\u269C|\\u26B0|\\u26B1|\\u26C8|\\u26CF|\\u26D1|\\u26D3|\\u26E9|\\u26F0|\\u26F1|\\u26F4|\\u26F7|\\u26F8|\\u26F9|\\u2721|\\u2763|\\u26D1|\\u26CF|\\u26C8|\\u2757)",
+ns.jsEscapeMap={"👩‍❤️‍💋‍👩":"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469","👩❤💋👩":"1f469-2764-1f48b-1f469","👨‍❤️‍💋‍👨":"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468","👨❤💋👨":"1f468-2764-1f48b-1f468","👨‍👨‍👦‍👦":"1f468-200d-1f468-200d-1f466-200d-1f466","👨👨👦👦":"1f468-1f468-1f466-1f466","👨‍👨‍👧‍👦":"1f468-200d-1f468-200d-1f467-200d-1f466","👨👨👧👦":"1f468-1f468-1f467-1f466","👨‍👨‍👧‍👧":"1f468-200d-1f468-200d-1f467-200d-1f467","👨👨👧👧":"1f468-1f468-1f467-1f467","👨‍👩‍👦‍👦":"1f468-200d-1f469-200d-1f466-200d-1f466","👨👩👦👦":"1f468-1f469-1f466-1f466","👨‍👩‍👧‍👦":"1f468-200d-1f469-200d-1f467-200d-1f466","👨👩👧👦":"1f468-1f469-1f467-1f466","👨‍👩‍👧‍👧":"1f468-200d-1f469-200d-1f467-200d-1f467","👨👩👧👧":"1f468-1f469-1f467-1f467","👩‍👩‍👦‍👦":"1f469-200d-1f469-200d-1f466-200d-1f466","👩👩👦👦":"1f469-1f469-1f466-1f466","👩‍👩‍👧‍👦":"1f469-200d-1f469-200d-1f467-200d-1f466","👩👩👧👦":"1f469-1f469-1f467-1f466","👩‍👩‍👧‍👧":"1f469-200d-1f469-200d-1f467-200d-1f467","👩👩👧👧":"1f469-1f469-1f467-1f467","👩‍❤️‍👩":"1f469-200d-2764-fe0f-200d-1f469","👩❤👩":"1f469-2764-1f469","👨‍❤️‍👨":"1f468-200d-2764-fe0f-200d-1f468","👨❤👨":"1f468-2764-1f468","👨‍👨‍👦":"1f468-200d-1f468-200d-1f466","👨👨👦":"1f468-1f468-1f466","👨‍👨‍👧":"1f468-200d-1f468-200d-1f467","👨👨👧":"1f468-1f468-1f467","👨‍👩‍👧":"1f468-200d-1f469-200d-1f467","👨👩👧":"1f468-1f469-1f467","👩‍👩‍👦":"1f469-200d-1f469-200d-1f466","👩👩👦":"1f469-1f469-1f466","👩‍👩‍👧":"1f469-200d-1f469-200d-1f467","👩👩👧":"1f469-1f469-1f467","🏳️‍🌈":"1f3f3-fe0f-200d-1f308","🏳🌈":"1f3f3-1f308","👁‍🗨":"1f441-200d-1f5e8","👁🗨":"1f441-1f5e8","#️⃣":"0023-fe0f-20e3","#⃣":"0023-20e3","0️⃣":"0030-fe0f-20e3","0⃣":"0030-20e3","1️⃣":"0031-fe0f-20e3","1⃣":"0031-20e3","2️⃣":"0032-fe0f-20e3","2⃣":"0032-20e3","3️⃣":"0033-fe0f-20e3","3⃣":"0033-20e3","4️⃣":"0034-fe0f-20e3","4⃣":"0034-20e3","5️⃣":"0035-fe0f-20e3","5⃣":"0035-20e3","6️⃣":"0036-fe0f-20e3","6⃣":"0036-20e3","7️⃣":"0037-fe0f-20e3","7⃣":"0037-20e3","8️⃣":"0038-fe0f-20e3","8⃣":"0038-20e3","9️⃣":"0039-fe0f-20e3","9⃣":"0039-20e3","*️⃣":"002a-fe0f-20e3","*⃣":"002a-20e3","🤾🏿":"1f93e-1f3ff","🤾🏾":"1f93e-1f3fe","🤾🏽":"1f93e-1f3fd","🤾🏼":"1f93e-1f3fc","🤾🏻":"1f93e-1f3fb","🤽🏿":"1f93d-1f3ff","🤽🏾":"1f93d-1f3fe","🤽🏽":"1f93d-1f3fd","🤽🏼":"1f93d-1f3fc","🤽🏻":"1f93d-1f3fb","🤼🏿":"1f93c-1f3ff","🤼🏾":"1f93c-1f3fe","🤼🏽":"1f93c-1f3fd","🤼🏼":"1f93c-1f3fc","🤼🏻":"1f93c-1f3fb","🤹🏿":"1f939-1f3ff","🤹🏾":"1f939-1f3fe","🤹🏽":"1f939-1f3fd","🤹🏼":"1f939-1f3fc","🤹🏻":"1f939-1f3fb","🤸🏿":"1f938-1f3ff","🤸🏾":"1f938-1f3fe","🤸🏽":"1f938-1f3fd","🤸🏼":"1f938-1f3fc","🤸🏻":"1f938-1f3fb","🤷🏿":"1f937-1f3ff","🤷🏾":"1f937-1f3fe","🤷🏽":"1f937-1f3fd","🤷🏼":"1f937-1f3fc","🤷🏻":"1f937-1f3fb","🤶🏿":"1f936-1f3ff","🤶🏾":"1f936-1f3fe","🤶🏽":"1f936-1f3fd","🤶🏼":"1f936-1f3fc","🤶🏻":"1f936-1f3fb","🤵🏿":"1f935-1f3ff","🤵🏾":"1f935-1f3fe","🤵🏽":"1f935-1f3fd","🤵🏼":"1f935-1f3fc","🤵🏻":"1f935-1f3fb","🤴🏿":"1f934-1f3ff","🤴🏾":"1f934-1f3fe","🤴🏽":"1f934-1f3fd","🤴🏼":"1f934-1f3fc","🤴🏻":"1f934-1f3fb","🤳🏿":"1f933-1f3ff","🤳🏾":"1f933-1f3fe","🤳🏽":"1f933-1f3fd","🤳🏼":"1f933-1f3fc","🤳🏻":"1f933-1f3fb","🤰🏿":"1f930-1f3ff","🤰🏾":"1f930-1f3fe","🤰🏽":"1f930-1f3fd","🤰🏼":"1f930-1f3fc","🤰🏻":"1f930-1f3fb","🤦🏿":"1f926-1f3ff","🤦🏾":"1f926-1f3fe","🤦🏽":"1f926-1f3fd","🤦🏼":"1f926-1f3fc","🤦🏻":"1f926-1f3fb","🤞🏿":"1f91e-1f3ff","🤞🏾":"1f91e-1f3fe","🤞🏽":"1f91e-1f3fd","🤞🏼":"1f91e-1f3fc","🤞🏻":"1f91e-1f3fb","🤝🏿":"1f91d-1f3ff","🤝🏾":"1f91d-1f3fe","🤝🏽":"1f91d-1f3fd","🤝🏼":"1f91d-1f3fc","🤝🏻":"1f91d-1f3fb","🤜🏿":"1f91c-1f3ff","🤜🏾":"1f91c-1f3fe","🤜🏽":"1f91c-1f3fd","🤜🏼":"1f91c-1f3fc","🤜🏻":"1f91c-1f3fb","🤛🏿":"1f91b-1f3ff","🤛🏾":"1f91b-1f3fe","🤛🏽":"1f91b-1f3fd","🤛🏼":"1f91b-1f3fc","🤛🏻":"1f91b-1f3fb","🤚🏿":"1f91a-1f3ff","🤚🏾":"1f91a-1f3fe","🤚🏽":"1f91a-1f3fd","🤚🏼":"1f91a-1f3fc","🤚🏻":"1f91a-1f3fb","🤙🏿":"1f919-1f3ff","🤙🏾":"1f919-1f3fe","🤙🏽":"1f919-1f3fd","🤙🏼":"1f919-1f3fc","🤙🏻":"1f919-1f3fb","🤘🏿":"1f918-1f3ff","🤘🏾":"1f918-1f3fe","🤘🏽":"1f918-1f3fd","🤘🏼":"1f918-1f3fc","🤘🏻":"1f918-1f3fb","🛀🏿":"1f6c0-1f3ff","🛀🏾":"1f6c0-1f3fe","🛀🏽":"1f6c0-1f3fd","🛀🏼":"1f6c0-1f3fc","🛀🏻":"1f6c0-1f3fb","🚶🏿":"1f6b6-1f3ff","🚶🏾":"1f6b6-1f3fe","🚶🏽":"1f6b6-1f3fd","🚶🏼":"1f6b6-1f3fc","🚶🏻":"1f6b6-1f3fb","🚵🏿":"1f6b5-1f3ff","🚵🏾":"1f6b5-1f3fe","🚵🏽":"1f6b5-1f3fd","🚵🏼":"1f6b5-1f3fc","🚵🏻":"1f6b5-1f3fb","🚴🏿":"1f6b4-1f3ff","🚴🏾":"1f6b4-1f3fe","🚴🏽":"1f6b4-1f3fd","🚴🏼":"1f6b4-1f3fc","🚴🏻":"1f6b4-1f3fb","🚣🏿":"1f6a3-1f3ff","🚣🏾":"1f6a3-1f3fe","🚣🏽":"1f6a3-1f3fd","🚣🏼":"1f6a3-1f3fc","🚣🏻":"1f6a3-1f3fb","🙏🏿":"1f64f-1f3ff","🙏🏾":"1f64f-1f3fe","🙏🏽":"1f64f-1f3fd","🙏🏼":"1f64f-1f3fc","🙏🏻":"1f64f-1f3fb","🙎🏿":"1f64e-1f3ff","🙎🏾":"1f64e-1f3fe","🙎🏽":"1f64e-1f3fd","🙎🏼":"1f64e-1f3fc","🙎🏻":"1f64e-1f3fb","🙍🏿":"1f64d-1f3ff","🙍🏾":"1f64d-1f3fe","🙍🏽":"1f64d-1f3fd","🙍🏼":"1f64d-1f3fc","🙍🏻":"1f64d-1f3fb","🙌🏿":"1f64c-1f3ff","🙌🏾":"1f64c-1f3fe","🙌🏽":"1f64c-1f3fd","🙌🏼":"1f64c-1f3fc","🙌🏻":"1f64c-1f3fb","🙋🏿":"1f64b-1f3ff","🙋🏾":"1f64b-1f3fe","🙋🏽":"1f64b-1f3fd","🙋🏼":"1f64b-1f3fc","🙋🏻":"1f64b-1f3fb","🙇🏿":"1f647-1f3ff","🙇🏾":"1f647-1f3fe","🙇🏽":"1f647-1f3fd","🙇🏼":"1f647-1f3fc","🙇🏻":"1f647-1f3fb","🙆🏿":"1f646-1f3ff","🙆🏾":"1f646-1f3fe","🙆🏽":"1f646-1f3fd","🙆🏼":"1f646-1f3fc","🙆🏻":"1f646-1f3fb","🙅🏿":"1f645-1f3ff","🙅🏾":"1f645-1f3fe","🙅🏽":"1f645-1f3fd","🙅🏼":"1f645-1f3fc","🙅🏻":"1f645-1f3fb","🖖🏿":"1f596-1f3ff","🖖🏾":"1f596-1f3fe","🖖🏽":"1f596-1f3fd","🖖🏼":"1f596-1f3fc","🖖🏻":"1f596-1f3fb","🖕🏿":"1f595-1f3ff","🖕🏾":"1f595-1f3fe","🖕🏽":"1f595-1f3fd","🖕🏼":"1f595-1f3fc","🖕🏻":"1f595-1f3fb","🖐🏿":"1f590-1f3ff","🖐🏾":"1f590-1f3fe","🖐🏽":"1f590-1f3fd","🖐🏼":"1f590-1f3fc","🖐🏻":"1f590-1f3fb","🕺🏿":"1f57a-1f3ff","🕺🏾":"1f57a-1f3fe","🕺🏽":"1f57a-1f3fd","🕺🏼":"1f57a-1f3fc","🕺🏻":"1f57a-1f3fb","🕵🏿":"1f575-1f3ff","🕵🏾":"1f575-1f3fe","🕵🏽":"1f575-1f3fd","🕵🏼":"1f575-1f3fc","🕵🏻":"1f575-1f3fb","💪🏿":"1f4aa-1f3ff","💪🏾":"1f4aa-1f3fe","💪🏽":"1f4aa-1f3fd","💪🏼":"1f4aa-1f3fc","💪🏻":"1f4aa-1f3fb","💇🏿":"1f487-1f3ff","💇🏾":"1f487-1f3fe","💇🏽":"1f487-1f3fd","💇🏼":"1f487-1f3fc","💇🏻":"1f487-1f3fb","💆🏿":"1f486-1f3ff","💆🏾":"1f486-1f3fe","💆🏽":"1f486-1f3fd","💆🏼":"1f486-1f3fc","💆🏻":"1f486-1f3fb","💅🏿":"1f485-1f3ff","💅🏾":"1f485-1f3fe","💅🏽":"1f485-1f3fd","💅🏼":"1f485-1f3fc","💅🏻":"1f485-1f3fb","💃🏿":"1f483-1f3ff","💃🏾":"1f483-1f3fe","💃🏽":"1f483-1f3fd","💃🏼":"1f483-1f3fc","💃🏻":"1f483-1f3fb","💂🏿":"1f482-1f3ff","💂🏾":"1f482-1f3fe","💂🏽":"1f482-1f3fd","💂🏼":"1f482-1f3fc","💂🏻":"1f482-1f3fb","💁🏿":"1f481-1f3ff","💁🏾":"1f481-1f3fe","💁🏽":"1f481-1f3fd","💁🏼":"1f481-1f3fc","💁🏻":"1f481-1f3fb","👼🏿":"1f47c-1f3ff","👼🏾":"1f47c-1f3fe","👼🏽":"1f47c-1f3fd","👼🏼":"1f47c-1f3fc","👼🏻":"1f47c-1f3fb","👸🏿":"1f478-1f3ff","👸🏾":"1f478-1f3fe","👸🏽":"1f478-1f3fd","👸🏼":"1f478-1f3fc","👸🏻":"1f478-1f3fb","👷🏿":"1f477-1f3ff","👷🏾":"1f477-1f3fe","👷🏽":"1f477-1f3fd","👷🏼":"1f477-1f3fc","👷🏻":"1f477-1f3fb","👶🏿":"1f476-1f3ff","👶🏾":"1f476-1f3fe","👶🏽":"1f476-1f3fd","👶🏼":"1f476-1f3fc","👶🏻":"1f476-1f3fb","👵🏿":"1f475-1f3ff","👵🏾":"1f475-1f3fe","👵🏽":"1f475-1f3fd","👵🏼":"1f475-1f3fc","👵🏻":"1f475-1f3fb","👴🏿":"1f474-1f3ff","👴🏾":"1f474-1f3fe","👴🏽":"1f474-1f3fd","👴🏼":"1f474-1f3fc","👴🏻":"1f474-1f3fb","👳🏿":"1f473-1f3ff","👳🏾":"1f473-1f3fe","👳🏽":"1f473-1f3fd","👳🏼":"1f473-1f3fc","👳🏻":"1f473-1f3fb","👲🏿":"1f472-1f3ff","👲🏾":"1f472-1f3fe","👲🏽":"1f472-1f3fd","👲🏼":"1f472-1f3fc","👲🏻":"1f472-1f3fb","👱🏿":"1f471-1f3ff","👱🏾":"1f471-1f3fe","👱🏽":"1f471-1f3fd","👱🏼":"1f471-1f3fc","👱🏻":"1f471-1f3fb","👰🏿":"1f470-1f3ff","👰🏾":"1f470-1f3fe","👰🏽":"1f470-1f3fd","👰🏼":"1f470-1f3fc","👰🏻":"1f470-1f3fb","👮🏿":"1f46e-1f3ff","👮🏾":"1f46e-1f3fe","👮🏽":"1f46e-1f3fd","👮🏼":"1f46e-1f3fc","👮🏻":"1f46e-1f3fb","👩🏿":"1f469-1f3ff","👩🏾":"1f469-1f3fe","👩🏽":"1f469-1f3fd","👩🏼":"1f469-1f3fc","👩🏻":"1f469-1f3fb","👨🏿":"1f468-1f3ff","👨🏾":"1f468-1f3fe","👨🏽":"1f468-1f3fd","👨🏼":"1f468-1f3fc","👨🏻":"1f468-1f3fb","👧🏿":"1f467-1f3ff","👧🏾":"1f467-1f3fe","👧🏽":"1f467-1f3fd","👧🏼":"1f467-1f3fc","👧🏻":"1f467-1f3fb","👦🏿":"1f466-1f3ff","👦🏾":"1f466-1f3fe","👦🏽":"1f466-1f3fd","👦🏼":"1f466-1f3fc","👦🏻":"1f466-1f3fb","👐🏿":"1f450-1f3ff","👐🏾":"1f450-1f3fe","👐🏽":"1f450-1f3fd","👐🏼":"1f450-1f3fc","👐🏻":"1f450-1f3fb","👏🏿":"1f44f-1f3ff","👏🏾":"1f44f-1f3fe","👏🏽":"1f44f-1f3fd","👏🏼":"1f44f-1f3fc","👏🏻":"1f44f-1f3fb","👎🏿":"1f44e-1f3ff","👎🏾":"1f44e-1f3fe","👎🏽":"1f44e-1f3fd","👎🏼":"1f44e-1f3fc","👎🏻":"1f44e-1f3fb","👍🏿":"1f44d-1f3ff","👍🏾":"1f44d-1f3fe","👍🏽":"1f44d-1f3fd","👍🏼":"1f44d-1f3fc","👍🏻":"1f44d-1f3fb","👌🏿":"1f44c-1f3ff","👌🏾":"1f44c-1f3fe","👌🏽":"1f44c-1f3fd","👌🏼":"1f44c-1f3fc","👌🏻":"1f44c-1f3fb","👋🏿":"1f44b-1f3ff","👋🏾":"1f44b-1f3fe","👋🏽":"1f44b-1f3fd","👋🏼":"1f44b-1f3fc","👋🏻":"1f44b-1f3fb","👊🏿":"1f44a-1f3ff","👊🏾":"1f44a-1f3fe","👊🏽":"1f44a-1f3fd","👊🏼":"1f44a-1f3fc","👊🏻":"1f44a-1f3fb","👉🏿":"1f449-1f3ff","👉🏾":"1f449-1f3fe","👉🏽":"1f449-1f3fd","👉🏼":"1f449-1f3fc","👉🏻":"1f449-1f3fb","👈🏿":"1f448-1f3ff","👈🏾":"1f448-1f3fe","👈🏽":"1f448-1f3fd","👈🏼":"1f448-1f3fc","👈🏻":"1f448-1f3fb","👇🏿":"1f447-1f3ff","👇🏾":"1f447-1f3fe","👇🏽":"1f447-1f3fd","👇🏼":"1f447-1f3fc","👇🏻":"1f447-1f3fb","👆🏿":"1f446-1f3ff","👆🏾":"1f446-1f3fe","👆🏽":"1f446-1f3fd","👆🏼":"1f446-1f3fc","👆🏻":"1f446-1f3fb","👃🏿":"1f443-1f3ff","👃🏾":"1f443-1f3fe","👃🏽":"1f443-1f3fd","👃🏼":"1f443-1f3fc","👃🏻":"1f443-1f3fb","👂🏿":"1f442-1f3ff","👂🏾":"1f442-1f3fe","👂🏽":"1f442-1f3fd","👂🏼":"1f442-1f3fc","👂🏻":"1f442-1f3fb","🏋🏿":"1f3cb-1f3ff","🏋🏾":"1f3cb-1f3fe","🏋🏽":"1f3cb-1f3fd","🏋🏼":"1f3cb-1f3fc","🏋🏻":"1f3cb-1f3fb","🏊🏿":"1f3ca-1f3ff","🏊🏾":"1f3ca-1f3fe","🏊🏽":"1f3ca-1f3fd","🏊🏼":"1f3ca-1f3fc","🏊🏻":"1f3ca-1f3fb","🏇🏿":"1f3c7-1f3ff","🏇🏾":"1f3c7-1f3fe","🏇🏽":"1f3c7-1f3fd","🏇🏼":"1f3c7-1f3fc","🏇🏻":"1f3c7-1f3fb","🏄🏿":"1f3c4-1f3ff","🏄🏾":"1f3c4-1f3fe","🏄🏽":"1f3c4-1f3fd","🏄🏼":"1f3c4-1f3fc","🏄🏻":"1f3c4-1f3fb","🏃🏿":"1f3c3-1f3ff","🏃🏾":"1f3c3-1f3fe","🏃🏽":"1f3c3-1f3fd","🏃🏼":"1f3c3-1f3fc","🏃🏻":"1f3c3-1f3fb","🎅🏿":"1f385-1f3ff","🎅🏾":"1f385-1f3fe","🎅🏽":"1f385-1f3fd","🎅🏼":"1f385-1f3fc","🎅🏻":"1f385-1f3fb","🇿🇼":"1f1ff-1f1fc","🇿🇲":"1f1ff-1f1f2","🇿🇦":"1f1ff-1f1e6","🇾🇹":"1f1fe-1f1f9","🇾🇪":"1f1fe-1f1ea","🇽🇰":"1f1fd-1f1f0","🇼🇸":"1f1fc-1f1f8","🇼🇫":"1f1fc-1f1eb","🇻🇺":"1f1fb-1f1fa","🇻🇳":"1f1fb-1f1f3","🇻🇮":"1f1fb-1f1ee","🇻🇬":"1f1fb-1f1ec","🇻🇪":"1f1fb-1f1ea","🇻🇨":"1f1fb-1f1e8","🇻🇦":"1f1fb-1f1e6","🇺🇿":"1f1fa-1f1ff","🇺🇾":"1f1fa-1f1fe","🇺🇸":"1f1fa-1f1f8","🇺🇲":"1f1fa-1f1f2","🇺🇬":"1f1fa-1f1ec","🇺🇦":"1f1fa-1f1e6","🇹🇿":"1f1f9-1f1ff","🇹🇼":"1f1f9-1f1fc","🇹🇻":"1f1f9-1f1fb","🇹🇹":"1f1f9-1f1f9","🇹🇷":"1f1f9-1f1f7","🇹🇴":"1f1f9-1f1f4","🇹🇳":"1f1f9-1f1f3","🇹🇲":"1f1f9-1f1f2","🇹🇱":"1f1f9-1f1f1","🇹🇰":"1f1f9-1f1f0","🇹🇯":"1f1f9-1f1ef","🇹🇭":"1f1f9-1f1ed","🇹🇬":"1f1f9-1f1ec","🇹🇫":"1f1f9-1f1eb","🇹🇩":"1f1f9-1f1e9","🇹🇨":"1f1f9-1f1e8","🇹🇦":"1f1f9-1f1e6","🇸🇿":"1f1f8-1f1ff","🇸🇾":"1f1f8-1f1fe","🇸🇽":"1f1f8-1f1fd","🇸🇻":"1f1f8-1f1fb","🇸🇹":"1f1f8-1f1f9","🇸🇸":"1f1f8-1f1f8","🇸🇷":"1f1f8-1f1f7","🇸🇴":"1f1f8-1f1f4","🇸🇳":"1f1f8-1f1f3","🇸🇲":"1f1f8-1f1f2","🇸🇱":"1f1f8-1f1f1","🇸🇰":"1f1f8-1f1f0","🇸🇯":"1f1f8-1f1ef","🇸🇮":"1f1f8-1f1ee","🇸🇭":"1f1f8-1f1ed","🇸🇬":"1f1f8-1f1ec","🇸🇪":"1f1f8-1f1ea","🇸🇩":"1f1f8-1f1e9","🇸🇨":"1f1f8-1f1e8","🇸🇧":"1f1f8-1f1e7","🇸🇦":"1f1f8-1f1e6","🇷🇼":"1f1f7-1f1fc","🇷🇺":"1f1f7-1f1fa","🇷🇸":"1f1f7-1f1f8","🇷🇴":"1f1f7-1f1f4","🇷🇪":"1f1f7-1f1ea","🇶🇦":"1f1f6-1f1e6","🇵🇾":"1f1f5-1f1fe","🇵🇼":"1f1f5-1f1fc","🇵🇹":"1f1f5-1f1f9","🇵🇸":"1f1f5-1f1f8","🇵🇷":"1f1f5-1f1f7","🇵🇳":"1f1f5-1f1f3","🇵🇲":"1f1f5-1f1f2","🇵🇱":"1f1f5-1f1f1","🇵🇰":"1f1f5-1f1f0","🇵🇭":"1f1f5-1f1ed","🇵🇬":"1f1f5-1f1ec","🇵🇫":"1f1f5-1f1eb","🇵🇪":"1f1f5-1f1ea","🇵🇦":"1f1f5-1f1e6","🇴🇲":"1f1f4-1f1f2","🇳🇿":"1f1f3-1f1ff","🇳🇺":"1f1f3-1f1fa","🇳🇷":"1f1f3-1f1f7","🇳🇵":"1f1f3-1f1f5","🇳🇴":"1f1f3-1f1f4","🇳🇱":"1f1f3-1f1f1","🇳🇮":"1f1f3-1f1ee","🇳🇬":"1f1f3-1f1ec","🇳🇫":"1f1f3-1f1eb","🇳🇪":"1f1f3-1f1ea","🇳🇨":"1f1f3-1f1e8","🇳🇦":"1f1f3-1f1e6","🇲🇿":"1f1f2-1f1ff","🇲🇾":"1f1f2-1f1fe","🇲🇽":"1f1f2-1f1fd","🇲🇼":"1f1f2-1f1fc","🇲🇻":"1f1f2-1f1fb","🇲🇺":"1f1f2-1f1fa","🇲🇹":"1f1f2-1f1f9","🇲🇸":"1f1f2-1f1f8","🇲🇷":"1f1f2-1f1f7","🇲🇶":"1f1f2-1f1f6","🇲🇵":"1f1f2-1f1f5","🇲🇴":"1f1f2-1f1f4","🇲🇳":"1f1f2-1f1f3","🇲🇲":"1f1f2-1f1f2","🇲🇱":"1f1f2-1f1f1","🇲🇰":"1f1f2-1f1f0","🇲🇭":"1f1f2-1f1ed","🇲🇬":"1f1f2-1f1ec","🇲🇫":"1f1f2-1f1eb","🇲🇪":"1f1f2-1f1ea","🇲🇩":"1f1f2-1f1e9","🇲🇨":"1f1f2-1f1e8","🇲🇦":"1f1f2-1f1e6","🇱🇾":"1f1f1-1f1fe","🇱🇻":"1f1f1-1f1fb","🇱🇺":"1f1f1-1f1fa","🇱🇹":"1f1f1-1f1f9","🇱🇸":"1f1f1-1f1f8","🇱🇷":"1f1f1-1f1f7","🇱🇰":"1f1f1-1f1f0","🇱🇮":"1f1f1-1f1ee","🇱🇨":"1f1f1-1f1e8","🇱🇧":"1f1f1-1f1e7","🇱🇦":"1f1f1-1f1e6","🇰🇿":"1f1f0-1f1ff","🇰🇾":"1f1f0-1f1fe","🇰🇼":"1f1f0-1f1fc","🇰🇷":"1f1f0-1f1f7","🇰🇵":"1f1f0-1f1f5","🇰🇳":"1f1f0-1f1f3","🇰🇲":"1f1f0-1f1f2","🇰🇮":"1f1f0-1f1ee","🇰🇭":"1f1f0-1f1ed","🇰🇬":"1f1f0-1f1ec","🇰🇪":"1f1f0-1f1ea","🇯🇵":"1f1ef-1f1f5","🇯🇴":"1f1ef-1f1f4","🇯🇲":"1f1ef-1f1f2","🇯🇪":"1f1ef-1f1ea","🇮🇹":"1f1ee-1f1f9","🇮🇸":"1f1ee-1f1f8","🇮🇷":"1f1ee-1f1f7","🇮🇶":"1f1ee-1f1f6","🇮🇴":"1f1ee-1f1f4","🇮🇳":"1f1ee-1f1f3","🇮🇲":"1f1ee-1f1f2","🇮🇱":"1f1ee-1f1f1","🇮🇪":"1f1ee-1f1ea","🇮🇩":"1f1ee-1f1e9","🇮🇨":"1f1ee-1f1e8","🇭🇺":"1f1ed-1f1fa","🇭🇹":"1f1ed-1f1f9","🇭🇷":"1f1ed-1f1f7","🇭🇳":"1f1ed-1f1f3","🇭🇲":"1f1ed-1f1f2","🇭🇰":"1f1ed-1f1f0","🇬🇾":"1f1ec-1f1fe","🇬🇼":"1f1ec-1f1fc","🇬🇺":"1f1ec-1f1fa","🇬🇹":"1f1ec-1f1f9","🇬🇸":"1f1ec-1f1f8","🇬🇷":"1f1ec-1f1f7","🇬🇶":"1f1ec-1f1f6","🇬🇵":"1f1ec-1f1f5","🇬🇳":"1f1ec-1f1f3","🇬🇲":"1f1ec-1f1f2","🇬🇱":"1f1ec-1f1f1","🇬🇮":"1f1ec-1f1ee","🇬🇭":"1f1ec-1f1ed","🇬🇬":"1f1ec-1f1ec","🇬🇫":"1f1ec-1f1eb","🇬🇪":"1f1ec-1f1ea","🇬🇩":"1f1ec-1f1e9","🇬🇧":"1f1ec-1f1e7","🇬🇦":"1f1ec-1f1e6","🇫🇷":"1f1eb-1f1f7","🇫🇴":"1f1eb-1f1f4","🇫🇲":"1f1eb-1f1f2","🇫🇰":"1f1eb-1f1f0","🇫🇯":"1f1eb-1f1ef","🇫🇮":"1f1eb-1f1ee","🇪🇺":"1f1ea-1f1fa","🇪🇹":"1f1ea-1f1f9","🇪🇸":"1f1ea-1f1f8","🇪🇷":"1f1ea-1f1f7","🇪🇭":"1f1ea-1f1ed","🇪🇬":"1f1ea-1f1ec","🇪🇪":"1f1ea-1f1ea","🇪🇨":"1f1ea-1f1e8","🇪🇦":"1f1ea-1f1e6","🇩🇿":"1f1e9-1f1ff","🇩🇴":"1f1e9-1f1f4","🇩🇲":"1f1e9-1f1f2","🇩🇰":"1f1e9-1f1f0","🇩🇯":"1f1e9-1f1ef","🇩🇬":"1f1e9-1f1ec","🇩🇪":"1f1e9-1f1ea","🇨🇿":"1f1e8-1f1ff","🇨🇾":"1f1e8-1f1fe","🇨🇽":"1f1e8-1f1fd","🇨🇼":"1f1e8-1f1fc","🇨🇻":"1f1e8-1f1fb","🇨🇺":"1f1e8-1f1fa","🇨🇷":"1f1e8-1f1f7","🇨🇵":"1f1e8-1f1f5","🇨🇴":"1f1e8-1f1f4","🇨🇳":"1f1e8-1f1f3","🇨🇲":"1f1e8-1f1f2","🇨🇱":"1f1e8-1f1f1","🇨🇰":"1f1e8-1f1f0","🇨🇮":"1f1e8-1f1ee","🇨🇭":"1f1e8-1f1ed","🇨🇬":"1f1e8-1f1ec","🇨🇫":"1f1e8-1f1eb","🇨🇩":"1f1e8-1f1e9","🇨🇨":"1f1e8-1f1e8","🇨🇦":"1f1e8-1f1e6","🇧🇿":"1f1e7-1f1ff","🇧🇾":"1f1e7-1f1fe","🇧🇼":"1f1e7-1f1fc","🇧🇻":"1f1e7-1f1fb","🇧🇹":"1f1e7-1f1f9","🇧🇸":"1f1e7-1f1f8","🇧🇷":"1f1e7-1f1f7","🇧🇶":"1f1e7-1f1f6","🇧🇴":"1f1e7-1f1f4","🇧🇳":"1f1e7-1f1f3","🇧🇲":"1f1e7-1f1f2","🇧🇱":"1f1e7-1f1f1","🇧🇯":"1f1e7-1f1ef","🇧🇮":"1f1e7-1f1ee","🇧🇭":"1f1e7-1f1ed","🇧🇬":"1f1e7-1f1ec","🇧🇫":"1f1e7-1f1eb","🇧🇪":"1f1e7-1f1ea","🇧🇩":"1f1e7-1f1e9","🇧🇧":"1f1e7-1f1e7","🇧🇦":"1f1e7-1f1e6","🇦🇿":"1f1e6-1f1ff","🇦🇽":"1f1e6-1f1fd","🇦🇼":"1f1e6-1f1fc","🇦🇺":"1f1e6-1f1fa","🇦🇹":"1f1e6-1f1f9","🇦🇸":"1f1e6-1f1f8","🇦🇷":"1f1e6-1f1f7","🇦🇶":"1f1e6-1f1f6","🇦🇴":"1f1e6-1f1f4","🇦🇲":"1f1e6-1f1f2","🇦🇱":"1f1e6-1f1f1","🇦🇮":"1f1e6-1f1ee","🇦🇬":"1f1e6-1f1ec","🇦🇫":"1f1e6-1f1eb","🇦🇪":"1f1e6-1f1ea","🇦🇩":"1f1e6-1f1e9","🇦🇨":"1f1e6-1f1e8","🀄️":"1f004-fe0f","🀄":"1f004","🅿️":"1f17f-fe0f","🅿":"1f17f","🈂️":"1f202-fe0f","🈂":"1f202","🈚️":"1f21a-fe0f","🈚":"1f21a","🈯️":"1f22f-fe0f","🈯":"1f22f","🈷️":"1f237-fe0f","🈷":"1f237","🎞️":"1f39e-fe0f","🎞":"1f39e","🎟️":"1f39f-fe0f","🎟":"1f39f","🏋️":"1f3cb-fe0f","🏋":"1f3cb","🏌️":"1f3cc-fe0f","🏌":"1f3cc","🏍️":"1f3cd-fe0f","🏍":"1f3cd","🏎️":"1f3ce-fe0f","🏎":"1f3ce","🎖️":"1f396-fe0f","🎖":"1f396","🎗️":"1f397-fe0f","🎗":"1f397","🌶️":"1f336-fe0f","🌶":"1f336","🌧️":"1f327-fe0f","🌧":"1f327","🌨️":"1f328-fe0f","🌨":"1f328","🌩️":"1f329-fe0f","🌩":"1f329","🌪️":"1f32a-fe0f","🌪":"1f32a","🌫️":"1f32b-fe0f","🌫":"1f32b","🌬️":"1f32c-fe0f","🌬":"1f32c","🐿️":"1f43f-fe0f","🐿":"1f43f","🕷️":"1f577-fe0f","🕷":"1f577","🕸️":"1f578-fe0f","🕸":"1f578","🌡️":"1f321-fe0f","🌡":"1f321","🎙️":"1f399-fe0f","🎙":"1f399","🎚️":"1f39a-fe0f","🎚":"1f39a","🎛️":"1f39b-fe0f","🎛":"1f39b","🏳️":"1f3f3-fe0f","🏳":"1f3f3","🏵️":"1f3f5-fe0f","🏵":"1f3f5","🏷️":"1f3f7-fe0f","🏷":"1f3f7","📽️":"1f4fd-fe0f","📽":"1f4fd","🕉️":"1f549-fe0f","🕉":"1f549","🕊️":"1f54a-fe0f","🕊":"1f54a","🕯️":"1f56f-fe0f","🕯":"1f56f","🕰️":"1f570-fe0f","🕰":"1f570","🕳️":"1f573-fe0f","🕳":"1f573","🕶️":"1f576-fe0f","🕶":"1f576","🕹️":"1f579-fe0f","🕹":"1f579","🖇️":"1f587-fe0f","🖇":"1f587","🖊️":"1f58a-fe0f","🖊":"1f58a","🖋️":"1f58b-fe0f","🖋":"1f58b","🖌️":"1f58c-fe0f","🖌":"1f58c","🖍️":"1f58d-fe0f","🖍":"1f58d","🖥️":"1f5a5-fe0f","🖥":"1f5a5","🖨️":"1f5a8-fe0f","🖨":"1f5a8","🖲️":"1f5b2-fe0f","🖲":"1f5b2","🖼️":"1f5bc-fe0f","🖼":"1f5bc","🗂️":"1f5c2-fe0f","🗂":"1f5c2","🗃️":"1f5c3-fe0f","🗃":"1f5c3","🗄️":"1f5c4-fe0f","🗄":"1f5c4","🗑️":"1f5d1-fe0f","🗑":"1f5d1","🗒️":"1f5d2-fe0f","🗒":"1f5d2","🗓️":"1f5d3-fe0f","🗓":"1f5d3","🗜️":"1f5dc-fe0f","🗜":"1f5dc","🗝️":"1f5dd-fe0f","🗝":"1f5dd","🗞️":"1f5de-fe0f","🗞":"1f5de","🗡️":"1f5e1-fe0f","🗡":"1f5e1","🗣️":"1f5e3-fe0f","🗣":"1f5e3","🗨️":"1f5e8-fe0f","🗨":"1f5e8","🗯️":"1f5ef-fe0f","🗯":"1f5ef","🗳️":"1f5f3-fe0f","🗳":"1f5f3","🗺️":"1f5fa-fe0f","🗺":"1f5fa","🛠️":"1f6e0-fe0f","🛠":"1f6e0","🛡️":"1f6e1-fe0f","🛡":"1f6e1","🛢️":"1f6e2-fe0f","🛢":"1f6e2","🛰️":"1f6f0-fe0f","🛰":"1f6f0","🍽️":"1f37d-fe0f","🍽":"1f37d","👁️":"1f441-fe0f","👁":"1f441","🕴️":"1f574-fe0f","🕴":"1f574","🕵️":"1f575-fe0f","🕵":"1f575","🖐️":"1f590-fe0f","🖐":"1f590","🏔️":"1f3d4-fe0f","🏔":"1f3d4","🏕️":"1f3d5-fe0f","🏕":"1f3d5","🏖️":"1f3d6-fe0f","🏖":"1f3d6","🏗️":"1f3d7-fe0f","🏗":"1f3d7","🏘️":"1f3d8-fe0f","🏘":"1f3d8","🏙️":"1f3d9-fe0f","🏙":"1f3d9","🏚️":"1f3da-fe0f","🏚":"1f3da","🏛️":"1f3db-fe0f","🏛":"1f3db","🏜️":"1f3dc-fe0f","🏜":"1f3dc","🏝️":"1f3dd-fe0f","🏝":"1f3dd","🏞️":"1f3de-fe0f","🏞":"1f3de","🏟️":"1f3df-fe0f","🏟":"1f3df","🛋️":"1f6cb-fe0f","🛋":"1f6cb","🛍️":"1f6cd-fe0f","🛍":"1f6cd","🛎️":"1f6ce-fe0f","🛎":"1f6ce","🛏️":"1f6cf-fe0f","🛏":"1f6cf","🛣️":"1f6e3-fe0f","🛣":"1f6e3","🛤️":"1f6e4-fe0f","🛤":"1f6e4","🛥️":"1f6e5-fe0f","🛥":"1f6e5","🛩️":"1f6e9-fe0f","🛩":"1f6e9","🛳️":"1f6f3-fe0f","🛳":"1f6f3","🌤️":"1f324-fe0f","🌤":"1f324","🌥️":"1f325-fe0f","🌥":"1f325","🌦️":"1f326-fe0f","🌦":"1f326","🖱️":"1f5b1-fe0f","🖱":"1f5b1","☝🏻":"261d-1f3fb","☝🏼":"261d-1f3fc","☝🏽":"261d-1f3fd","☝🏾":"261d-1f3fe","☝🏿":"261d-1f3ff","✌🏻":"270c-1f3fb","✌🏼":"270c-1f3fc","✌🏽":"270c-1f3fd","✌🏾":"270c-1f3fe","✌🏿":"270c-1f3ff","✊🏻":"270a-1f3fb","✊🏼":"270a-1f3fc","✊🏽":"270a-1f3fd","✊🏾":"270a-1f3fe","✊🏿":"270a-1f3ff","✋🏻":"270b-1f3fb","✋🏼":"270b-1f3fc","✋🏽":"270b-1f3fd","✋🏾":"270b-1f3fe","✋🏿":"270b-1f3ff","✍🏻":"270d-1f3fb","✍🏼":"270d-1f3fc","✍🏽":"270d-1f3fd","✍🏾":"270d-1f3fe","✍🏿":"270d-1f3ff","⛹🏻":"26f9-1f3fb","⛹🏼":"26f9-1f3fc","⛹🏽":"26f9-1f3fd","⛹🏾":"26f9-1f3fe","⛹🏿":"26f9-1f3ff","©️":"00a9-fe0f","©":"00a9","®️":"00ae-fe0f","®":"00ae","‼️":"203c-fe0f","‼":"203c","⁉️":"2049-fe0f","⁉":"2049","™️":"2122-fe0f","™":"2122","ℹ️":"2139-fe0f","ℹ":"2139","↔️":"2194-fe0f","↔":"2194","↕️":"2195-fe0f","↕":"2195","↖️":"2196-fe0f","↖":"2196","↗️":"2197-fe0f","↗":"2197","↘️":"2198-fe0f","↘":"2198","↙️":"2199-fe0f","↙":"2199","↩️":"21a9-fe0f","↩":"21a9","↪️":"21aa-fe0f","↪":"21aa","⌚️":"231a-fe0f","⌚":"231a","⌛️":"231b-fe0f","⌛":"231b","Ⓜ️":"24c2-fe0f","Ⓜ":"24c2","▪️":"25aa-fe0f","▪":"25aa","▫️":"25ab-fe0f","▫":"25ab","▶️":"25b6-fe0f","▶":"25b6","◀️":"25c0-fe0f","◀":"25c0","◻️":"25fb-fe0f","◻":"25fb","◼️":"25fc-fe0f","◼":"25fc","◽️":"25fd-fe0f","◽":"25fd","◾️":"25fe-fe0f","◾":"25fe","☀️":"2600-fe0f","☀":"2600","☁️":"2601-fe0f","☁":"2601","☎️":"260e-fe0f","☎":"260e","☑️":"2611-fe0f","☑":"2611","☔️":"2614-fe0f","☔":"2614","☕️":"2615-fe0f","☕":"2615","☝️":"261d-fe0f","☝":"261d","☺️":"263a-fe0f","☺":"263a","♈️":"2648-fe0f","♈":"2648","♉️":"2649-fe0f","♉":"2649","♊️":"264a-fe0f","♊":"264a","♋️":"264b-fe0f","♋":"264b","♌️":"264c-fe0f","♌":"264c","♍️":"264d-fe0f","♍":"264d","♎️":"264e-fe0f","♎":"264e","♏️":"264f-fe0f","♏":"264f","♐️":"2650-fe0f","♐":"2650","♑️":"2651-fe0f","♑":"2651","♒️":"2652-fe0f","♒":"2652","♓️":"2653-fe0f","♓":"2653","♠️":"2660-fe0f","♠":"2660","♣️":"2663-fe0f","♣":"2663","♥️":"2665-fe0f","♥":"2665","♦️":"2666-fe0f","♦":"2666","♨️":"2668-fe0f","♨":"2668","♻️":"267b-fe0f","♻":"267b","♿️":"267f-fe0f","♿":"267f","⚓️":"2693-fe0f","⚓":"2693","⚠️":"26a0-fe0f","⚠":"26a0","⚡️":"26a1-fe0f","⚡":"26a1","⚪️":"26aa-fe0f","⚪":"26aa","⚫️":"26ab-fe0f","⚫":"26ab","⚽️":"26bd-fe0f","⚽":"26bd","⚾️":"26be-fe0f","⚾":"26be","⛄️":"26c4-fe0f","⛄":"26c4","⛅️":"26c5-fe0f","⛅":"26c5","⛔️":"26d4-fe0f","⛔":"26d4","⛪️":"26ea-fe0f","⛪":"26ea","⛲️":"26f2-fe0f","⛲":"26f2","⛳️":"26f3-fe0f","⛳":"26f3","⛵️":"26f5-fe0f","⛵":"26f5","⛺️":"26fa-fe0f","⛺":"26fa","⛽️":"26fd-fe0f","⛽":"26fd","✂️":"2702-fe0f","✂":"2702","✈️":"2708-fe0f","✈":"2708","✉️":"2709-fe0f","✉":"2709","✌️":"270c-fe0f","✌":"270c","✏️":"270f-fe0f","✏":"270f","✒️":"2712-fe0f","✒":"2712","✔️":"2714-fe0f","✔":"2714","✖️":"2716-fe0f","✖":"2716","✳️":"2733-fe0f","✳":"2733","✴️":"2734-fe0f","✴":"2734","❄️":"2744-fe0f","❄":"2744","❇️":"2747-fe0f","❇":"2747","❗️":"2757-fe0f","❗":"2757","❤️":"2764-fe0f","❤":"2764","➡️":"27a1-fe0f","➡":"27a1","⤴️":"2934-fe0f","⤴":"2934","⤵️":"2935-fe0f","⤵":"2935","⬅️":"2b05-fe0f","⬅":"2b05","⬆️":"2b06-fe0f","⬆":"2b06","⬇️":"2b07-fe0f","⬇":"2b07","⬛️":"2b1b-fe0f","⬛":"2b1b","⬜️":"2b1c-fe0f","⬜":"2b1c","⭐️":"2b50-fe0f","⭐":"2b50","⭕️":"2b55-fe0f","⭕":"2b55","〰️":"3030-fe0f","〰":"3030","〽️":"303d-fe0f","〽":"303d","㊗️":"3297-fe0f","㊗":"3297","㊙️":"3299-fe0f","㊙":"3299","✝️":"271d-fe0f","✝":"271d","⌨️":"2328-fe0f","⌨":"2328","✍️":"270d-fe0f","✍":"270d","⏏️":"23cf-fe0f","⏏":"23cf","⏭️":"23ed-fe0f","⏭":"23ed","⏮️":"23ee-fe0f","⏮":"23ee","⏯️":"23ef-fe0f","⏯":"23ef","⏱️":"23f1-fe0f","⏱":"23f1","⏲️":"23f2-fe0f","⏲":"23f2","⏸️":"23f8-fe0f","⏸":"23f8","⏹️":"23f9-fe0f","⏹":"23f9","⏺️":"23fa-fe0f","⏺":"23fa","☂️":"2602-fe0f","☂":"2602","☃️":"2603-fe0f","☃":"2603","☄️":"2604-fe0f","☄":"2604","☘️":"2618-fe0f","☘":"2618","☠️":"2620-fe0f","☠":"2620","☢️":"2622-fe0f","☢":"2622","☣️":"2623-fe0f","☣":"2623","☦️":"2626-fe0f","☦":"2626","☪️":"262a-fe0f","☪":"262a","☮️":"262e-fe0f","☮":"262e","☯️":"262f-fe0f","☯":"262f","☸️":"2638-fe0f","☸":"2638","☹️":"2639-fe0f","☹":"2639","⚒️":"2692-fe0f","⚒":"2692","⚔️":"2694-fe0f","⚔":"2694","⚖️":"2696-fe0f","⚖":"2696","⚗️":"2697-fe0f","⚗":"2697","⚙️":"2699-fe0f","⚙":"2699","⚛️":"269b-fe0f","⚛":"269b","⚜️":"269c-fe0f","⚜":"269c","⚰️":"26b0-fe0f","⚰":"26b0","⚱️":"26b1-fe0f","⚱":"26b1","⛈️":"26c8-fe0f","⛈":"26c8","⛏️":"26cf-fe0f","⛏":"26cf","⛑️":"26d1-fe0f","⛑":"26d1","⛓️":"26d3-fe0f","⛓":"26d3","⛩️":"26e9-fe0f","⛩":"26e9","⛰️":"26f0-fe0f","⛰":"26f0","⛱️":"26f1-fe0f","⛱":"26f1","⛴️":"26f4-fe0f","⛴":"26f4","⛷️":"26f7-fe0f","⛷":"26f7","⛸️":"26f8-fe0f","⛸":"26f8","⛹️":"26f9-fe0f","⛹":"26f9","✡️":"2721-fe0f","✡":"2721","❣️":"2763-fe0f","❣":"2763","🥉":"1f949","🥈":"1f948","🥇":"1f947","🤺":"1f93a","🥅":"1f945","🤾":"1f93e","🇿":"1f1ff","🤽":"1f93d","🥋":"1f94b","🥊":"1f94a","🤼":"1f93c","🤹":"1f939","🤸":"1f938","🛶":"1f6f6","🛵":"1f6f5","🛴":"1f6f4","🛒":"1f6d2","🃏":"1f0cf","🅰":"1f170","🅱":"1f171","🅾":"1f17e","🛑":"1f6d1","🆎":"1f18e","🆑":"1f191","🇾":"1f1fe","🆒":"1f192","🆓":"1f193","🆔":"1f194","🆕":"1f195","🆖":"1f196","🆗":"1f197","🆘":"1f198","🥄":"1f944","🆙":"1f199","🆚":"1f19a","🥂":"1f942","🥃":"1f943","🈁":"1f201","🥙":"1f959","🈲":"1f232","🈳":"1f233","🈴":"1f234","🈵":"1f235","🈶":"1f236","🥘":"1f958","🈸":"1f238","🈹":"1f239","🥗":"1f957","🈺":"1f23a","🉐":"1f250","🉑":"1f251","🌀":"1f300","🥖":"1f956","🌁":"1f301","🌂":"1f302","🌃":"1f303","🌄":"1f304","🌅":"1f305","🌆":"1f306","🥕":"1f955","🌇":"1f307","🌈":"1f308","🥔":"1f954","🌉":"1f309","🌊":"1f30a","🌋":"1f30b","🌌":"1f30c","🌏":"1f30f","🌑":"1f311","🥓":"1f953","🌓":"1f313","🌔":"1f314","🌕":"1f315","🌙":"1f319","🌛":"1f31b","🌟":"1f31f","🥒":"1f952","🌠":"1f320","🌰":"1f330","🥑":"1f951","🌱":"1f331","🌴":"1f334","🌵":"1f335","🌷":"1f337","🌸":"1f338","🌹":"1f339","🌺":"1f33a","🌻":"1f33b","🌼":"1f33c","🌽":"1f33d","🥐":"1f950","🌾":"1f33e","🌿":"1f33f","🍀":"1f340","🍁":"1f341","🍂":"1f342","🍃":"1f343","🍄":"1f344","🍅":"1f345","🍆":"1f346","🍇":"1f347","🍈":"1f348","🍉":"1f349","🍊":"1f34a","🥀":"1f940","🍌":"1f34c","🍍":"1f34d","🍎":"1f34e","🍏":"1f34f","🍑":"1f351","🍒":"1f352","🍓":"1f353","🦏":"1f98f","🍔":"1f354","🍕":"1f355","🍖":"1f356","🦎":"1f98e","🍗":"1f357","🍘":"1f358","🍙":"1f359","🦍":"1f98d","🍚":"1f35a","🍛":"1f35b","🦌":"1f98c","🍜":"1f35c","🍝":"1f35d","🍞":"1f35e","🍟":"1f35f","🦋":"1f98b","🍠":"1f360","🍡":"1f361","🦊":"1f98a","🍢":"1f362","🍣":"1f363","🦉":"1f989","🍤":"1f364","🍥":"1f365","🦈":"1f988","🍦":"1f366","🦇":"1f987","🍧":"1f367","🇽":"1f1fd","🍨":"1f368","🦆":"1f986","🍩":"1f369","🦅":"1f985","🍪":"1f36a","🖤":"1f5a4","🍫":"1f36b","🍬":"1f36c","🍭":"1f36d","🍮":"1f36e","🍯":"1f36f","🤞":"1f91e","🍰":"1f370","🍱":"1f371","🍲":"1f372","🤝":"1f91d","🍳":"1f373","🍴":"1f374","🍵":"1f375","🍶":"1f376","🍷":"1f377","🍸":"1f378","🍹":"1f379","🍺":"1f37a","🍻":"1f37b","🎀":"1f380","🎁":"1f381","🎂":"1f382","🎃":"1f383","🤛":"1f91b","🤜":"1f91c","🎄":"1f384","🎅":"1f385","🎆":"1f386","🤚":"1f91a","🎇":"1f387","🎈":"1f388","🎉":"1f389","🎊":"1f38a","🎋":"1f38b","🎌":"1f38c","🤙":"1f919","🎍":"1f38d","🕺":"1f57a","🎎":"1f38e","🤳":"1f933","🎏":"1f38f","🤰":"1f930","🎐":"1f390","🤦":"1f926","🤷":"1f937","🎑":"1f391","🎒":"1f392","🎓":"1f393","🎠":"1f3a0","🎡":"1f3a1","🎢":"1f3a2","🎣":"1f3a3","🎤":"1f3a4","🎥":"1f3a5","🎦":"1f3a6","🎧":"1f3a7","🤶":"1f936","🎨":"1f3a8","🤵":"1f935","🎩":"1f3a9","🎪":"1f3aa","🤴":"1f934","🎫":"1f3ab","🎬":"1f3ac","🎭":"1f3ad","🤧":"1f927","🎮":"1f3ae","🎯":"1f3af","🎰":"1f3b0","🎱":"1f3b1","🎲":"1f3b2","🎳":"1f3b3","🎴":"1f3b4","🤥":"1f925","🎵":"1f3b5","🎶":"1f3b6","🎷":"1f3b7","🤤":"1f924","🎸":"1f3b8","🎹":"1f3b9","🎺":"1f3ba","🤣":"1f923","🎻":"1f3bb","🎼":"1f3bc","🎽":"1f3bd","🤢":"1f922","🎾":"1f3be","🎿":"1f3bf","🏀":"1f3c0","🏁":"1f3c1","🤡":"1f921","🏂":"1f3c2","🏃":"1f3c3","🏄":"1f3c4","🏆":"1f3c6","🏈":"1f3c8","🏊":"1f3ca","🏠":"1f3e0","🏡":"1f3e1","🏢":"1f3e2","🏣":"1f3e3","🏥":"1f3e5","🏦":"1f3e6","🏧":"1f3e7","🏨":"1f3e8","🏩":"1f3e9","🏪":"1f3ea","🏫":"1f3eb","🏬":"1f3ec","🤠":"1f920","🏭":"1f3ed","🏮":"1f3ee","🏯":"1f3ef","🏰":"1f3f0","🐌":"1f40c","🐍":"1f40d","🐎":"1f40e","🐑":"1f411","🐒":"1f412","🐔":"1f414","🐗":"1f417","🐘":"1f418","🐙":"1f419","🐚":"1f41a","🐛":"1f41b","🐜":"1f41c","🐝":"1f41d","🐞":"1f41e","🐟":"1f41f","🐠":"1f420","🐡":"1f421","🐢":"1f422","🐣":"1f423","🐤":"1f424","🐥":"1f425","🐦":"1f426","🐧":"1f427","🐨":"1f428","🐩":"1f429","🐫":"1f42b","🐬":"1f42c","🐭":"1f42d","🐮":"1f42e","🐯":"1f42f","🐰":"1f430","🐱":"1f431","🐲":"1f432","🐳":"1f433","🐴":"1f434","🐵":"1f435","🐶":"1f436","🐷":"1f437","🐸":"1f438","🐹":"1f439","🐺":"1f43a","🐻":"1f43b","🐼":"1f43c","🐽":"1f43d","🐾":"1f43e","👀":"1f440","👂":"1f442","👃":"1f443","👄":"1f444","👅":"1f445","👆":"1f446","👇":"1f447","👈":"1f448","👉":"1f449","👊":"1f44a","👋":"1f44b","👌":"1f44c","👍":"1f44d","👎":"1f44e","👏":"1f44f","👐":"1f450","👑":"1f451","👒":"1f452","👓":"1f453","👔":"1f454","👕":"1f455","👖":"1f456","👗":"1f457","👘":"1f458","👙":"1f459","👚":"1f45a","👛":"1f45b","👜":"1f45c","👝":"1f45d","👞":"1f45e","👟":"1f45f","👠":"1f460","👡":"1f461","👢":"1f462","👣":"1f463","👤":"1f464","👦":"1f466","👧":"1f467","👨":"1f468","👩":"1f469","👪":"1f46a","👫":"1f46b","👮":"1f46e","👯":"1f46f","👰":"1f470","👱":"1f471","👲":"1f472","👳":"1f473","👴":"1f474","👵":"1f475","👶":"1f476","👷":"1f477","👸":"1f478","👹":"1f479","👺":"1f47a","👻":"1f47b","👼":"1f47c","👽":"1f47d","👾":"1f47e","👿":"1f47f","💀":"1f480","📇":"1f4c7","💁":"1f481","💂":"1f482","💃":"1f483","💄":"1f484","💅":"1f485","📒":"1f4d2","💆":"1f486","📓":"1f4d3","💇":"1f487","📔":"1f4d4","💈":"1f488","📕":"1f4d5","💉":"1f489","📖":"1f4d6","💊":"1f48a","📗":"1f4d7","💋":"1f48b","📘":"1f4d8","💌":"1f48c","📙":"1f4d9","💍":"1f48d","📚":"1f4da","💎":"1f48e","📛":"1f4db","💏":"1f48f","📜":"1f4dc","💐":"1f490","📝":"1f4dd","💑":"1f491","📞":"1f4de","💒":"1f492","📟":"1f4df","📠":"1f4e0","💓":"1f493","📡":"1f4e1","📢":"1f4e2","💔":"1f494","📣":"1f4e3","📤":"1f4e4","💕":"1f495","📥":"1f4e5","📦":"1f4e6","💖":"1f496","📧":"1f4e7","📨":"1f4e8","💗":"1f497","📩":"1f4e9","📪":"1f4ea","💘":"1f498","📫":"1f4eb","📮":"1f4ee","💙":"1f499","📰":"1f4f0","📱":"1f4f1","💚":"1f49a","📲":"1f4f2","📳":"1f4f3","💛":"1f49b","📴":"1f4f4","📶":"1f4f6","💜":"1f49c","📷":"1f4f7","📹":"1f4f9","💝":"1f49d","📺":"1f4fa","📻":"1f4fb","💞":"1f49e","📼":"1f4fc","🔃":"1f503","💟":"1f49f","🔊":"1f50a","🔋":"1f50b","💠":"1f4a0","🔌":"1f50c","🔍":"1f50d","💡":"1f4a1","🔎":"1f50e","🔏":"1f50f","💢":"1f4a2","🔐":"1f510","🔑":"1f511","💣":"1f4a3","🔒":"1f512","🔓":"1f513","💤":"1f4a4","🔔":"1f514","🔖":"1f516","💥":"1f4a5","🔗":"1f517","🔘":"1f518","💦":"1f4a6","🔙":"1f519","🔚":"1f51a","💧":"1f4a7","🔛":"1f51b","🔜":"1f51c","💨":"1f4a8","🔝":"1f51d","🔞":"1f51e","💩":"1f4a9","🔟":"1f51f","💪":"1f4aa","🔠":"1f520","🔡":"1f521","💫":"1f4ab","🔢":"1f522","🔣":"1f523","💬":"1f4ac","🔤":"1f524","🔥":"1f525","💮":"1f4ae","🔦":"1f526","🔧":"1f527","💯":"1f4af","🔨":"1f528","🔩":"1f529","💰":"1f4b0","🔪":"1f52a","🔫":"1f52b","💱":"1f4b1","🔮":"1f52e","💲":"1f4b2","🔯":"1f52f","💳":"1f4b3","🔰":"1f530","🔱":"1f531","💴":"1f4b4","🔲":"1f532","🔳":"1f533","💵":"1f4b5","🔴":"1f534","🔵":"1f535","💸":"1f4b8","🔶":"1f536","🔷":"1f537","💹":"1f4b9","🔸":"1f538","🔹":"1f539","💺":"1f4ba","🔺":"1f53a","🔻":"1f53b","💻":"1f4bb","🔼":"1f53c","💼":"1f4bc","🔽":"1f53d","🕐":"1f550","💽":"1f4bd","🕑":"1f551","💾":"1f4be","🕒":"1f552","💿":"1f4bf","🕓":"1f553","📀":"1f4c0","🕔":"1f554","🕕":"1f555","📁":"1f4c1","🕖":"1f556","🕗":"1f557","📂":"1f4c2","🕘":"1f558","🕙":"1f559","📃":"1f4c3","🕚":"1f55a","🕛":"1f55b","📄":"1f4c4","🗻":"1f5fb","🗼":"1f5fc","📅":"1f4c5","🗽":"1f5fd","🗾":"1f5fe","📆":"1f4c6","🗿":"1f5ff","😁":"1f601","😂":"1f602","😃":"1f603","📈":"1f4c8","😄":"1f604","😅":"1f605","📉":"1f4c9","😆":"1f606","😉":"1f609","📊":"1f4ca","😊":"1f60a","😋":"1f60b","📋":"1f4cb","😌":"1f60c","😍":"1f60d","📌":"1f4cc","😏":"1f60f","😒":"1f612","📍":"1f4cd","😓":"1f613","😔":"1f614","📎":"1f4ce","😖":"1f616","😘":"1f618","📏":"1f4cf","😚":"1f61a","😜":"1f61c","📐":"1f4d0","😝":"1f61d","😞":"1f61e","📑":"1f4d1","😠":"1f620","😡":"1f621","😢":"1f622","😣":"1f623","😤":"1f624","😥":"1f625","😨":"1f628","😩":"1f629","😪":"1f62a","😫":"1f62b","😭":"1f62d","😰":"1f630","😱":"1f631","😲":"1f632","😳":"1f633","😵":"1f635","😷":"1f637","😸":"1f638","😹":"1f639","😺":"1f63a","😻":"1f63b","😼":"1f63c","😽":"1f63d","😾":"1f63e","😿":"1f63f","🙀":"1f640","🙅":"1f645","🙆":"1f646","🙇":"1f647","🙈":"1f648","🙉":"1f649","🙊":"1f64a","🙋":"1f64b","🙌":"1f64c","🙍":"1f64d","🙎":"1f64e","🙏":"1f64f","🚀":"1f680","🚃":"1f683","🚄":"1f684","🚅":"1f685","🚇":"1f687","🚉":"1f689","🚌":"1f68c","🚏":"1f68f","🚑":"1f691","🚒":"1f692","🚓":"1f693","🚕":"1f695","🚗":"1f697","🚙":"1f699","🚚":"1f69a","🚢":"1f6a2","🚤":"1f6a4","🚥":"1f6a5","🚧":"1f6a7","🚨":"1f6a8","🚩":"1f6a9","🚪":"1f6aa","🚫":"1f6ab","🚬":"1f6ac","🚭":"1f6ad","🚲":"1f6b2","🚶":"1f6b6","🚹":"1f6b9","🚺":"1f6ba","🚻":"1f6bb","🚼":"1f6bc","🚽":"1f6bd","🚾":"1f6be","🛀":"1f6c0","🤘":"1f918","😀":"1f600","😇":"1f607","😈":"1f608","😎":"1f60e","😐":"1f610","😑":"1f611","😕":"1f615","😗":"1f617","😙":"1f619","😛":"1f61b","😟":"1f61f","😦":"1f626","😧":"1f627","😬":"1f62c","😮":"1f62e","😯":"1f62f","😴":"1f634","😶":"1f636","🚁":"1f681","🚂":"1f682",
+"🚆":"1f686","🚈":"1f688","🚊":"1f68a","🚍":"1f68d","🚎":"1f68e","🚐":"1f690","🚔":"1f694","🚖":"1f696","🚘":"1f698","🚛":"1f69b","🚜":"1f69c","🚝":"1f69d","🚞":"1f69e","🚟":"1f69f","🚠":"1f6a0","🚡":"1f6a1","🚣":"1f6a3","🚦":"1f6a6","🚮":"1f6ae","🚯":"1f6af","🚰":"1f6b0","🚱":"1f6b1","🚳":"1f6b3","🚴":"1f6b4","🚵":"1f6b5","🚷":"1f6b7","🚸":"1f6b8","🚿":"1f6bf","🛁":"1f6c1","🛂":"1f6c2","🛃":"1f6c3","🛄":"1f6c4","🛅":"1f6c5","🌍":"1f30d","🌎":"1f30e","🌐":"1f310","🌒":"1f312","🌖":"1f316","🌗":"1f317","🌘":"1f318","🌚":"1f31a","🌜":"1f31c","🌝":"1f31d","🌞":"1f31e","🌲":"1f332","🌳":"1f333","🍋":"1f34b","🍐":"1f350","🍼":"1f37c","🏇":"1f3c7","🏉":"1f3c9","🏤":"1f3e4","🐀":"1f400","🐁":"1f401","🐂":"1f402","🐃":"1f403","🐄":"1f404","🐅":"1f405","🐆":"1f406","🐇":"1f407","🐈":"1f408","🐉":"1f409","🐊":"1f40a","🐋":"1f40b","🐏":"1f40f","🐐":"1f410","🐓":"1f413","🐕":"1f415","🐖":"1f416","🐪":"1f42a","👥":"1f465","👬":"1f46c","👭":"1f46d","💭":"1f4ad","💶":"1f4b6","💷":"1f4b7","📬":"1f4ec","📭":"1f4ed","📯":"1f4ef","📵":"1f4f5","🔀":"1f500","🔁":"1f501","🔂":"1f502","🔄":"1f504","🔅":"1f505","🔆":"1f506","🔇":"1f507","🔉":"1f509","🔕":"1f515","🔬":"1f52c","🔭":"1f52d","🕜":"1f55c","🕝":"1f55d","🕞":"1f55e","🕟":"1f55f","🕠":"1f560","🕡":"1f561","🕢":"1f562","🕣":"1f563","🕤":"1f564","🕥":"1f565","🕦":"1f566","🕧":"1f567","🔈":"1f508","🚋":"1f68b","🏅":"1f3c5","🏴":"1f3f4","📸":"1f4f8","🛌":"1f6cc","🖕":"1f595","🖖":"1f596","🙁":"1f641","🙂":"1f642","🛫":"1f6eb","🛬":"1f6ec","🏻":"1f3fb","🏼":"1f3fc","🏽":"1f3fd","🏾":"1f3fe","🏿":"1f3ff","🙃":"1f643","🤑":"1f911","🤓":"1f913","🤗":"1f917","🙄":"1f644","🤔":"1f914","🤐":"1f910","🤒":"1f912","🤕":"1f915","🤖":"1f916","🦁":"1f981","🦄":"1f984","🦂":"1f982","🦀":"1f980","🦃":"1f983","🧀":"1f9c0","🌭":"1f32d","🌮":"1f32e","🌯":"1f32f","🍿":"1f37f","🍾":"1f37e","🏹":"1f3f9","🏺":"1f3fa","🛐":"1f6d0","🕋":"1f54b","🕌":"1f54c","🕍":"1f54d","🕎":"1f54e","📿":"1f4ff","🏏":"1f3cf","🏐":"1f3d0","🏑":"1f3d1","🏒":"1f3d2","🏓":"1f3d3","🏸":"1f3f8","🥁":"1f941","🦐":"1f990","🦑":"1f991","🥚":"1f95a","🥛":"1f95b","🥜":"1f95c","🥝":"1f95d","🥞":"1f95e","🇼":"1f1fc","🇻":"1f1fb","🇺":"1f1fa","🇹":"1f1f9","🇸":"1f1f8","🇷":"1f1f7","🇶":"1f1f6","🇵":"1f1f5","🇴":"1f1f4","🇳":"1f1f3","🇲":"1f1f2","🇱":"1f1f1","🇰":"1f1f0","🇯":"1f1ef","🇮":"1f1ee","🇭":"1f1ed","🇬":"1f1ec","🇫":"1f1eb","🇪":"1f1ea","🇩":"1f1e9","🇨":"1f1e8","🇧":"1f1e7","🇦":"1f1e6","⏩":"23e9","⏪":"23ea","⏫":"23eb","⏬":"23ec","⏰":"23f0","⏳":"23f3","⛎":"26ce","✅":"2705","✊":"270a","✋":"270b","✨":"2728","❌":"274c","❎":"274e","❓":"2753","❔":"2754","❕":"2755","➕":"2795","➖":"2796","➗":"2797","➰":"27b0","➿":"27bf","©":"00a9","®":"00ae","‼":"203c","⁉":"2049","™":"2122","ℹ":"2139","↔":"2194","↕":"2195","↖":"2196","↗":"2197","↘":"2198","↙":"2199","↩":"21a9","↪":"21aa","⌚":"231a","⌛":"231b","Ⓜ":"24c2","▪":"25aa","▫":"25ab","▶":"25b6","◀":"25c0","◻":"25fb","◼":"25fc","◽":"25fd","◾":"25fe","☀":"2600","☁":"2601","☎":"260e","☑":"2611","☔":"2614","☕":"2615","☝":"261d","☺":"263a","♈":"2648","♉":"2649","♊":"264a","♋":"264b","♌":"264c","♍":"264d","♎":"264e","♏":"264f","♐":"2650","♑":"2651","♒":"2652","♓":"2653","♠":"2660","♣":"2663","♥":"2665","♦":"2666","♨":"2668","♻":"267b","♿":"267f","⚓":"2693","⚠":"26a0","⚡":"26a1","⚪":"26aa","⚫":"26ab","⚽":"26bd","⚾":"26be","⛄":"26c4","⛅":"26c5","⛔":"26d4","⛪":"26ea","⛲":"26f2","⛳":"26f3","⛵":"26f5","⛺":"26fa","⛽":"26fd","✂":"2702","✈":"2708","✉":"2709","✌":"270c","✏":"270f","✒":"2712","✔":"2714","✖":"2716","✳":"2733","✴":"2734","❄":"2744","❇":"2747","❗":"2757","❤":"2764","➡":"27a1","⤴":"2934","⤵":"2935","⬅":"2b05","⬆":"2b06","⬇":"2b07","⬛":"2b1b","⬜":"2b1c","⭐":"2b50","⭕":"2b55","〰":"3030","〽":"303d","㊗":"3297","㊙":"3299","🀄":"1f004","🅿":"1f17f","🈂":"1f202","🈚":"1f21a","🈯":"1f22f","🈷":"1f237","🎞":"1f39e","🎟":"1f39f","🏋":"1f3cb","🏌":"1f3cc","🏍":"1f3cd","🏎":"1f3ce","🎖":"1f396","🎗":"1f397","🌶":"1f336","🌧":"1f327","🌨":"1f328","🌩":"1f329","🌪":"1f32a","🌫":"1f32b","🌬":"1f32c","🐿":"1f43f","🕷":"1f577","🕸":"1f578","🌡":"1f321","🎙":"1f399","🎚":"1f39a","🎛":"1f39b","🏳":"1f3f3","🏵":"1f3f5","🏷":"1f3f7","📽":"1f4fd","✝":"271d","🕉":"1f549","🕊":"1f54a","🕯":"1f56f","🕰":"1f570","🕳":"1f573","🕶":"1f576","🕹":"1f579","🖇":"1f587","🖊":"1f58a","🖋":"1f58b","🖌":"1f58c","🖍":"1f58d","🖥":"1f5a5","🖨":"1f5a8","⌨":"2328","🖲":"1f5b2","🖼":"1f5bc","🗂":"1f5c2","🗃":"1f5c3","🗄":"1f5c4","🗑":"1f5d1","🗒":"1f5d2","🗓":"1f5d3","🗜":"1f5dc","🗝":"1f5dd","🗞":"1f5de","🗡":"1f5e1","🗣":"1f5e3","🗨":"1f5e8","🗯":"1f5ef","🗳":"1f5f3","🗺":"1f5fa","🛠":"1f6e0","🛡":"1f6e1","🛢":"1f6e2","🛰":"1f6f0","🍽":"1f37d","👁":"1f441","🕴":"1f574","🕵":"1f575","✍":"270d","🖐":"1f590","🏔":"1f3d4","🏕":"1f3d5","🏖":"1f3d6","🏗":"1f3d7","🏘":"1f3d8","🏙":"1f3d9","🏚":"1f3da","🏛":"1f3db","🏜":"1f3dc","🏝":"1f3dd","🏞":"1f3de","🏟":"1f3df","🛋":"1f6cb","🛍":"1f6cd","🛎":"1f6ce","🛏":"1f6cf","🛣":"1f6e3","🛤":"1f6e4","🛥":"1f6e5","🛩":"1f6e9","🛳":"1f6f3","⏏":"23cf","⏭":"23ed","⏮":"23ee","⏯":"23ef","⏱":"23f1","⏲":"23f2","⏸":"23f8","⏹":"23f9","⏺":"23fa","☂":"2602","☃":"2603","☄":"2604","☘":"2618","☠":"2620","☢":"2622","☣":"2623","☦":"2626","☪":"262a","☮":"262e","☯":"262f","☸":"2638","☹":"2639","⚒":"2692","⚔":"2694","⚖":"2696","⚗":"2697","⚙":"2699","⚛":"269b","⚜":"269c","⚰":"26b0","⚱":"26b1","⛈":"26c8","⛏":"26cf","⛑":"26d1","⛓":"26d3","⛩":"26e9","⛰":"26f0","⛱":"26f1","⛴":"26f4","⛷":"26f7","⛸":"26f8","⛹":"26f9","✡":"2721","❣":"2763","🌤":"1f324","🌥":"1f325","🌦":"1f326","🖱":"1f5b1"},ns.imagePathPNG="https://cdn.jsdelivr.net/emojione/assets/png/",ns.imagePathSVG="https://cdn.jsdelivr.net/emojione/assets/svg/",ns.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",ns.imageType="png",ns.imageTitleTag=!0,ns.sprites=!1,ns.unicodeAlt=!0,ns.ascii=!1,ns.cacheBustParam="?v=2.2.7",ns.regShortNames=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnames+")","gi"),ns.regAscii=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,.?]))","g"),ns.regUnicode=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")","gi"),ns.toImage=function(str){return str=ns.unicodeToImage(str),str=ns.shortnameToImage(str)},ns.unifyUnicode=function(str){return str=ns.toShort(str),str=ns.shortnameToUnicode(str)},ns.shortnameToAscii=function(str){var unicode,unicodeToAscii=ns.objectFlip(ns.asciiList);return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1],"undefined"!=typeof unicodeToAscii[unicode]?unicodeToAscii[unicode]:shortname):shortname})},ns.shortnameToUnicode=function(str){var unicode,fname,uc;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[0].toUpperCase(),fname=ns.emojioneList[shortname].fname,uc=ns.emojioneList[shortname].uc,ns.convert(uc)):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3].toUpperCase(),m2+ns.convert(unicode)):entire})),str},ns.shortnameToImage=function(str){var replaceWith,unicode,alt,title;return str=str.replace(ns.regShortNames,function(shortname){return"undefined"!=typeof shortname&&""!==shortname&&shortname in ns.emojioneList?(unicode=ns.emojioneList[shortname].unicode[ns.emojioneList[shortname].unicode.length-1],title=ns.imageTitleTag?'title="'+shortname+'"':"",alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):shortname,replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):shortname}),ns.ascii&&(str=str.replace(ns.regAscii,function(entire,m1,m2,m3){return"undefined"!=typeof m3&&""!==m3&&ns.unescapeHTML(m3)in ns.asciiList?(m3=ns.unescapeHTML(m3),unicode=ns.asciiList[m3],title=ns.imageTitleTag?'title="'+ns.escapeHTML(m3)+'"':"",alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):ns.escapeHTML(m3),replaceWith="png"===ns.imageType?ns.sprites?m2+'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":m2+'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+unicode+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+".svg"+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+"</object>"):entire})),str},ns.unicodeToImage=function(str){var replaceWith,unicode,short,fname,alt,title,mappedUnicode=ns.mapUnicodeToShort();return str=str.replace(ns.regUnicode,function(unicodeChar){return"undefined"!=typeof unicodeChar&&""!==unicodeChar&&unicodeChar in ns.jsEscapeMap?(unicode=ns.jsEscapeMap[unicodeChar],short=mappedUnicode[unicode],fname=ns.emojioneList[short].fname,alt=ns.unicodeAlt?ns.convert(unicode.toUpperCase()):short,title=ns.imageTitleTag?'title="'+short+'"':"",replaceWith="png"===ns.imageType?ns.sprites?'<span class="emojione emojione-'+unicode+'" '+title+">"+alt+"</span>":'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathPNG+fname+".png"+ns.cacheBustParam+'"/>':ns.sprites?'<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+"#emoji-"+unicode+'"></use></svg>':'<img class="emojione" alt="'+alt+'" '+title+' src="'+ns.imagePathSVG+fname+".svg"+ns.cacheBustParam+'"/>'):unicodeChar})},ns.toShort=function(str){var find=ns.getUnicodeReplacementRegEx(),replacementList=ns.mapUnicodeCharactersToShort();return ns.replaceAll(str,find,replacementList)},ns.convert=function(unicode){if(unicode.indexOf("-")>-1){for(var parts=[],s=unicode.split("-"),i=0;i<s.length;i++){var part=parseInt(s[i],16);if(part>=65536&&part<=1114111){var hi=Math.floor((part-65536)/1024)+55296,lo=(part-65536)%1024+56320;part=String.fromCharCode(hi)+String.fromCharCode(lo)}else part=String.fromCharCode(part);parts.push(part)}return parts.join("")}var s=parseInt(unicode,16);if(s>=65536&&s<=1114111){var hi=Math.floor((s-65536)/1024)+55296,lo=(s-65536)%1024+56320;return String.fromCharCode(hi)+String.fromCharCode(lo)}return String.fromCharCode(s)},ns.escapeHTML=function(string){var escaped={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return string.replace(/[&<>"']/g,function(match){return escaped[match]})},ns.unescapeHTML=function(string){var unescaped={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(match){return unescaped[match]})},ns.mapEmojioneList=function(addToMapStorage){for(var shortname in ns.emojioneList)if(ns.emojioneList.hasOwnProperty(shortname))for(var i=0,len=ns.emojioneList[shortname].unicode.length;i<len;i++){var unicode=ns.emojioneList[shortname].unicode[i];addToMapStorage(unicode,shortname)}},ns.mapUnicodeToShort=function(){return ns.memMapShortToUnicode||(ns.memMapShortToUnicode={},ns.mapEmojioneList(function(unicode,shortname){ns.memMapShortToUnicode[unicode]=shortname})),ns.memMapShortToUnicode},ns.memoizeReplacement=function(){if(!ns.unicodeReplacementRegEx||!ns.memMapShortToUnicodeCharacters){var unicodeList=[];ns.memMapShortToUnicodeCharacters={},ns.mapEmojioneList(function(unicode,shortname){var emojiCharacter=ns.convert(unicode);ns.emojioneList[shortname].isCanonical&&(ns.memMapShortToUnicodeCharacters[emojiCharacter]=shortname),unicodeList.push(emojiCharacter)}),ns.unicodeReplacementRegEx=unicodeList.join("|")}},ns.mapUnicodeCharactersToShort=function(){return ns.memoizeReplacement(),ns.memMapShortToUnicodeCharacters},ns.getUnicodeReplacementRegEx=function(){return ns.memoizeReplacement(),ns.unicodeReplacementRegEx},ns.objectFlip=function(obj){var key,tmp_obj={};for(key in obj)obj.hasOwnProperty(key)&&(tmp_obj[obj[key]]=key);return tmp_obj},ns.escapeRegExp=function(string){return string.replace(/[-[\]{}()*+?.,;:&\\^$#\s]/g,"\\$&")},ns.replaceAll=function(string,find,replacementList){var escapedFind=ns.escapeRegExp(find),search=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+escapedFind+")","gi"),replace=function(entire,m1){return"undefined"==typeof m1||""===m1?entire:replacementList[m1]};return string.replace(search,replace)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione);
//# sourceMappingURL=jsxc.dep.min.js.map \ No newline at end of file
diff --git a/build/js/jsxc/lib/jsxc.dep.min.js.map b/build/js/jsxc/lib/jsxc.dep.min.js.map
index 8a8db73..23e7ae5 100644
--- a/build/js/jsxc/lib/jsxc.dep.min.js.map
+++ b/build/js/jsxc/lib/jsxc.dep.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["jsxc.dep.js"],"names":["callback","root","factory","define","amd","Base64","this","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","i","charCodeAt","isNaN","charAt","length","decode","replace","indexOf","String","fromCharCode","SHA1","core_sha1","x","len","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","core_hmac_sha1","key","data","bkey","str2binb","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","binb2str","binb2b64","binarray","triplet","tab","b64_hmac_sha1","b64_sha1","s","str_hmac_sha1","str_sha1","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","Function","prototype","bind","func","_slice","slice","_concat","_args","call","arguments","apply","isArray","arg","Object","toString","elt","from","Number","Math","ceil","floor","o","window","Strophe","$build","$iq","$msg","$pres","name","attrs","Builder","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","FRAMING","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","REDIRECT","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","value","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","_xmlGenerator","_makeGenerator","doc","undefined","document","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","k","node","xmlTextNode","attr","setAttribute","hasOwnProperty","xmlescape","text","xmlunescape","createTextNode","xmlHtmlNode","html","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","cssName","cssValue","toLowerCase","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","log","level","msg","debug","info","warn","error","fatal","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","up","parentNode","moreattrs","removeAttribute","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","handler","ns","type","id","options","matchBare","user","isMatch","nsMatch","that","elem_type","run","sourceURL","line","message","fileName","console","trace","lineNumber","stack","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","domain","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","_authentication","_idleTimeout","_disconnectTimeout","authenticated","connected","disconnecting","do_authentication","paused","restored","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","uuid","r","random","v","connect","pass","wait","hold","route","authcid","authzid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","restore","_sessionCachingSupported","_restore","JSON","sessionStorage","setItem","removeItem","xmlInput","xmlOutput","rawInput","rawOutput","nextValidRid","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","expectedFrom","fulljid","addHandler","stanza","deleteTimedHandler","acceptable","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","_abortAllRequests","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","getElementsByTagName","newList","mechanisms","_connect_cb","_callback","bodyWrap","conncheck","sasl_scram_sha1","sasl_plain","sasl_digest_md5","sasl_anonymous","legacy_auth","hasFeatures","getElementsByTagNameNS","mech","matched","found_authentication","_no_auth_received","authenticate","higher","priority","swap","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","mechanism","isClientFirst","response","onChallenge","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","streamfeature_handlers","wrapper","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","SASLAnonymous","SASLPlain","auth_str","SASLSHA1","test_cnonce","cnonce","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","SASLMD5","_quote","realm","host","qop","digest_uri","A1","A2","core","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","errors","_buildBody","keepalive","_cacheSession","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","session","parse","getItem","stringify","typ","parseInt","_sendTerminate","_hitError","reqStatus","xmpp:restart","time_elapsed","readyState","reqIs0","reqIs1","_removeRequest","_restartRequest","_processRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","open","sync","setRequestHeader","e2","sendFunc","customHeaders","headers","header","backoff","min","pow","abs","new_service","location","pathname","_buildStream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","streamStart","see_uri","string","_streamWrap","_onMessage","CLOSED","close","closeString","rawStanza","search","firstChild","start","startString","build","Occupant","RoomConfig","XmppRoom","__bind","fn","me","rooms","roomNames","conn","_muc_handler","room","nick","msg_handler_cb","pres_handler_cb","roster_cb","password","history_attrs","extended_presence","room_nick","_ref","_this","test_append_nick","roomname","xquery","_i","_len","_message_handlers","_presence_handlers","leave","handler_cb","exit_msg","presence","presenceid","html_message","msgid","parent","removeChild","groupchat","invite","receiver","invitation","MUC_USER","directInvite","queryOccupants","success_cb","error_cb","configure","config","MUC_OWNER","cancelConfigure","saveConfiguration","conf","Form","toXML","createInstantRoom","roomiq","setTopic","topic","_modifyPrivilege","item","MUC_ADMIN","modifyRole","role","kick","voice","mute","op","deop","modifyAffiliation","affiliation","ban","member","revoke","owner","admin","changeNick","setStatus","show","listRooms","server","handle_cb","client","_roomRosterHandler","_addOccupant","roster","_roster_handlers","_handler_ids","muc","handler_type","removeHandler","occ","newnick","_parsePresence","update","c2","_j","_len1","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","states","code","field","identity","query","_k","_len2","identities","var","label","_identities","_features","_items","_onDiscoInfo","_onDiscoItems","addIdentity","category","lang","addFeature","var_name","removeFeature","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","$","HASH","_ver","_knownCapabilities","localStorage","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","makeArray","knownCapabilities","querySelector","trigger","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","jQuery","buildIq","vCardEl","VCARD","get","set","createBookmarksNode","PUBSUB","add","roomJid","alias","autojoin","conferenceAttr","BOOKMARKS","delete","notify","$field","$form","$item","$opt","Field","Item","Option","helper","__slice","__indexOf","l","fill","src","target","klass","f","_results","createHtmlFieldCouple","div","append","toHTML","children","getHtmlFields","find","opt","toJSON","fields","reported","_types","title","instructions","xml","json","form","appendTo","fromXML","instr","fromHTML","addOptions","addOption","addValues","addValue","values","desc","required","_multiTypes","val","vals","multi","opts","txt","_htmlElementToFieldType","trim","fieldset","DATA","addNode","parseFromResult","n","u","require","exports","1","module","2","global","typedArraySupport","Bar","arr","Uint8Array","foo","constructor","subarray","byteLength","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","fromNumber","fromString","fromObject","allocate","checked","encoding","write","object","isBuffer","fromBuffer","fromArray","TypeError","ArrayBuffer","buffer","fromTypedArray","fromArrayBuffer","fromArrayLike","fromJsonObject","copy","array","_augment","__proto__","_isBuffer","fromPool","poolSize","rootParent","RangeError","SlowBuffer","subject","buf","loweredCase","utf8ToBytes","base64ToBytes","slowToString","end","Infinity","hexSlice","utf8Slice","asciiSlice","binarySlice","base64Slice","utf16leSlice","hexWrite","offset","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","binaryWrite","base64Write","ucs2Write","utf16leToBytes","base64","fromByteArray","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","leadSurrogate","byteArray","hi","lo","toByteArray","dst","INSPECT_MAX_BYTES","compare","isEncoding","list","pos","equals","inspect","byteOffset","arrayIndexOf","foundIndex","readUInt8","writeUInt8","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","_set","toArrayBuffer","BP","toLocaleString","base64-js","is-array","3","lookup","PLUS","PLUS_URL_SAFE","SLASH","SLASH_URL_SAFE","NUMBER","UPPER","LOWER","b64ToByteArray","b64","L","tmp","placeHolders","Arr","uint8ToBase64","uint8","tripletToBase64","temp","extraBytes","base64js","4","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","rt","LN2","5","6","EventEmitter","_events","_maxListeners","isFunction","isNumber","isObject","isUndefined","defaultMaxListeners","setMaxListeners","emit","er","args","listeners","addListener","listener","newListener","warned","on","once","g","removeListener","fired","position","removeAllListeners","listenerCount","emitter","7","create","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor","8","9","10","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","fun","noop","process","nextTick","browser","env","argv","versions","off","binding","cwd","chdir","dir","umask","11","map","mapDomain","regexSeparators","labels","encoded","ucs2decode","extra","counter","ucs2encode","stringFromCharCode","basicToDigit","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","damp","baseMinusTMin","tMax","skew","basic","index","oldi","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeExports","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","ucs2","12","./lib/_stream_duplex.js","13","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","processNextTick","onEndNT","objectKeys","keys","util","inherits","method","./_stream_readable","./_stream_writable","core-util-is","process-nextick-args","14","PassThrough","Transform","_transform","chunk","cb","./_stream_transform","15","ReadableState","stream","objectMode","readableObjectMode","hwm","highWaterMark","defaultHwm","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","StringDecoder","_readableState","_read","Stream","readableAddChunk","state","addToFront","chunkInvalid","onEofChunk","unshift","emitReadable","maybeReadMore","needMoreData","computeNewHighWaterMark","MAX_HWM","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EElistenerCount","nReadingNextTick","resumeScheduled","resume_","fromList","stringMode","shift","cpy","endReadable","endReadableNT","forEach","xs","_","debugUtil","debuglog","isPaused","setEncoding","enc","nOrig","doRead","pipe","dest","pipeOpts","onunpipe","cleanup","onfinish","ondrain","ondata","cleanedUp","needDrain","unpipe","doEnd","stdout","stderr","endFn","dests","ev","wrap","events","_fromList","./_stream_duplex","_process","isarray","string_decoder/","16","TransformState","afterTransform","needTransform","transforming","writecb","writechunk","ts","_transformState","rs","transform","_flush","done","ws","_write","writeencoding","17","nop","WriteReq","next","WritableState","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","writev","_writev","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","last","doWrite","onwriteError","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","finishMaybe","entry","cbs","prefinish","need","endWritable","internalUtil","deprecate","getBuffer","current","defineProperty","cork","uncork","setDefaultEncoding","util-deprecate","18","ar","isBoolean","isNull","isNullOrUndefined","isString","isSymbol","isRegExp","re","objectToString","isDate","isError","isPrimitive","../../../../insert-module-globals/node_modules/is-buffer/index.js","19","20","deprecated","21","./lib/_stream_passthrough.js","22","./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js","23","24","25","EE","source","didOnEnd","destroy","_isStdio","readable-stream/duplex.js","readable-stream/passthrough.js","readable-stream/readable.js","readable-stream/transform.js","readable-stream/writable.js","26","assertEncoding","isBufferEncoding","passThroughWrite","utf16DetectIncompleteChar","charReceived","charLength","base64DetectIncompleteChar","surrogateSize","detectIncompleteChar","charBuffer","charStr","available","charCode","size","substring","cr","27","28","ctx","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","idx","recurseTimes","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","RegExp","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","getOwnPropertyDescriptor","numLinesEst","reduce","prev","cur","pad","timestamp","time","getHours","getMinutes","getSeconds","getDate","months","getMonth","prop","formatRegExp","format","objects","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","NODE_DEBUG","toUpperCase","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","null","regexp","origin","./support/isBuffer","29","SessionManager","WildEmitter","selfID","full","sessions","peers","prepareSession","descriptionTypes","MediaSession","FileSession","performTieBreak","sess","jingle","contents","description","descType","matching","intersect","pendingDescriptionTypes","screenSharingSupport","webrtc","screenSharing","capabilities","support","peerConnectionConfig","iceServers","url","peerConnectionConstraints","optional","DtlsSrtpKeyAgreement","RtpDataChannels","media","audio","video","BaseSession","addICEServer","addSession","peer","peerID","extraData","extraData2","action","isInitiator","createMediaSession","initiator","constraints","createFileTransferSession","endPeerSessions","silent","endAllSessions","_createIncomingSession","meta","_sendError","_log","sender","isTieBreak","jingleCondition","pending","pendingAction","transportTypes","transport","transType","jingle-filetransfer-session","jingle-media-session","jingle-session","webrtcsupport","wildemitter","30","each","31","big","32","FileTransferSession","pc","RTCPeerConnection","useJingle","onIceCandidate","onIceStateChange","onChannelAdded","extend","FileTransfer","file","Sender","sent","localDescription","offer","algo","sendChannel","createDataChannel","mandatory","OfferToReceiveAudio","OfferToReceiveVideo","lastModifiedDate","accept","answer","maybeReceivedFile","metadata","actualhash","receivedFile","candidate","iceConnectionState","connectionState","signalingState","channel","receive","onSessionInitiate","changes","Receiver","received","handleOffer","onSessionAccept","handleAnswer","onSessionTerminate","onDescriptionInfo","onTransportInfo","processIce","extend-object","filetransfer/hashed","rtcpeerconnection","33","chunksize","pacing","receiveBuffer","sliceFile","reader","FileReader","onload","readAsArrayBuffer","binaryType","event","Blob","File","34","hashes","createHash","digest","./filetransfer","iana-hashes","35","createHmac","getHashes","mapping","md2","md5","sha-1","sha-224","sha-256","sha-384","sha-512","names","algorithm","./lib/get-hashes","create-hash","create-hmac","36","37","HashNoConstructor","Base","_hash","buffers","Hash","rmd160","sha","_update","_final","alg","./md5","cipher-base","ripemd160","sha.js","38","toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz","39","helpers","./helpers","40","CipherBase","hashMode","_finalOrDigest","final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","string_decoder","41","dup","42","bytesToWords","words","wordsToBytes","processBlock","H","M","offset_i","M_offset_i","al","bl","cl","dl","dr","zl","f1","hl","f2","f3","f4","f5","rotl","sl","zr","hr","sr","z","nBitsLeft","nBitsTotal","H_i","digestbytes","43","blockSize","finalSize","_block","_finalSize","_blockSize","_s","ch","44","Algorithm","sha1","sha224","sha256","sha384","sha512","./sha","./sha1","./sha224","./sha256","./sha384","./sha512","45","Sha","_w","W","_a","_b","_c","_d","_e","calcW","loop","./hash","46","Sha1","47","Sha224","Sha256","_f","_g","_h","48","Ch","Maj","Sigma0","Sigma1","Gamma0","Gamma1","K","T1","T2","49","Sha384","SHA512","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","50","Sha512","xl","Gamma0l","Gamma1l","gamma0","gamma0l","gamma1","gamma1l","Wi7","Wi7l","Wi16","Wi16l","Wil","Wi","maj","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kil","chl","fl","gl","t1l","t1","t2l","t2","51","Hmac","blocksize","_alg","_key","ZEROS","_ipad","_opad","create-hash/browser","52","53","mixin","isWildEmitter","groupName","callbacks","hasGroup","group","_groupName","releaseGroup","specialCallbacks","getWildcardCallbacks","eventName","54","createForEach","arrayFunc","eachFunc","collection","iteratee","thisArg","bindCallback","arrayEach","baseEach","lodash._arrayeach","lodash._baseeach","lodash._bindcallback","lodash.isarray","55","56","baseForOwn","baseFor","baseProperty","createBaseEach","fromRight","getLength","isLength","iterable","toObject","createBaseFor","keysFunc","props","MAX_SAFE_INTEGER","lodash.keys","57","isArrayLike","isIndex","reIsUint","shimKeys","keysIn","propsLength","allowIndexes","isArguments","Ctor","isProto","skipIndexes","getNative","objectProto","nativeKeys","lodash._getnative","lodash.isarguments","58","isObjectLike","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","59","propertyIsEnumerable","60","argCount","accumulator","other","61","arrayTag","nativeIsArray","62","basePropertyDeep","path","pathKey","toPath","baseGet","isKey","reIsPlainProp","reIsDeepProp","pluck","property","lodash._baseget","lodash._topath","lodash.map","63","64","baseToString","rePropName","quote","reEscapeChar","65","66","baseMap","arrayMap","baseCallback","lodash._arraymap","lodash._basecallback","67","68","baseMatches","baseMatchesProperty","baseIsMatch","matchData","customizer","noCustomizer","objValue","srcValue","baseIsEqual","getMatchData","isArr","isCommon","isStrictComparable","baseSlice","pairs","lodash._baseisequal","lodash.pairs","69","arraySome","predicate","isLoose","stackA","stackB","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","argsTag","objectTag","isTypedArray","objIsObj","othIsObj","isSameTag","equalByTag","objIsWrapped","othIsWrapped","equalArrays","equalObjects","arrLength","othLength","arrValue","othValue","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","objProps","objLength","othProps","skipCtor","objCtor","othCtor","lodash.istypedarray","70","typedArrayTags","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","71","72","73","74","75","76","77","toSDP","toIncomingSDPOffer","toSessionSDP","direction","toOutgoingSDPOffer","toIncomingSDPAnswer","toOutgoingSDPAnswer","toIncomingMediaSDPOffer","toMediaSDP","toOutgoingMediaSDPOffer","toIncomingMediaSDPAnswer","toOutgoingMediaSDPAnswer","toCandidateSDP","toIncomingJSONOffer","sdp","creators","toSessionJSON","toOutgoingJSONOffer","toIncomingJSONAnswer","toOutgoingJSONAnswer","toIncomingMediaJSONOffer","creator","toMediaJSON","toOutgoingMediaJSONOffer","toIncomingMediaJSONAnswer","toOutgoingMediaJSONAnswer","toCandidateJSON","./lib/tojson","./lib/tosdp","78","lines","filter","findLine","prefix","mediaLines","sessionLines","prefixLength","findLines","results","mline","port","formats","rtpmap","clockrate","channels","sctpmap","streams","fmtp","kv","crypto","cipherSuite","keyParams","sessionParams","fingerprint","extmap","idpart","sp","senders","uri","rtcpfb","subtype","parameters","foundation","component","ip","generation","relAddr","relPort","tcpType","network","sourceGroups","semantics","sources","ssrc","groups","bandwidth","msid","mslabel","79","incoming","responder","both","none","recvonly","sendonly","sendrecv","inactive","outgoing","80","SENDERS","parsers","idCounter","_setIdCounter","groupLines","payloads","encryption","feedback","headerExtensions","candidates","fingerprints","sctp","trans","mid","rtpmapLines","payload","fmtpLines","fbLines","cryptoLines","mux","extLines","ssrcGroupLines","ssrcLines","msidLine","found","googConferenceFlag","fingerprintLines","setup","fp","ufragLine","pwdLine","ufrag","pwd","candidateLines","sctpmapLines","./parsers","./senders","81","pushedSetup","param","fb","hdrExts","hdr","ssrcGroups","ssrcGroup","ssrcs","82","dumpSDP","dumpStream","getAudioTracks","track","getVideoTracks","TraceablePeerConnection","peerconnection","what","onicecandidate","onaddstream","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onnegotiationneeded","ondatachannel","getLocalStreams","getRemoteStreams","addStream","removeStream","setLocalDescription","successCallback","failureCallback","setRemoteDescription","createOffer","createAnswer","addIceCandidate","getStats","webrtc-adapter-test","83","requestUserMedia","Promise","resolve","reject","getUserMedia","attachMediaStream","reattachMediaStream","webrtcDetectedBrowser","webrtcDetectedVersion","webrtcMinimumVersion","webrtcUtils","extractVersion","uastring","expr","HTMLMediaElement","mozSrcObject","_srcObject","URL","createObjectURL","navigator","srcObject","mozGetUserMedia","mozRTCPeerConnection","userAgent","pcConfig","pcConstraints","newIceServers","urls","newServer","username","credential","RTCSessionDescription","mozRTCSessionDescription","RTCIceCandidate","mozRTCIceCandidate","onError","constraintsToFF37","ideal","exact","advanced","oc","mediaDevices","addEventListener","removeEventListener","enumerateDevices","infos","kind","deviceId","groupId","orgEnumerateDevices","then","webkitGetUserMedia","webkitRTCPeerConnection","iceTransportPolicy","iceTransports","origGetStats","selector","errorCallback","fixChromeStats","standardReport","reports","report","standardStats","stat","successCallbackWrapper","nativeMethod","constraintsToChrome","cc","oldname","mix","kinds","MediaStreamTrack","getSources","devices","device","origGetUserMedia","webrtcTesting","84","85","PeerConnection","enableChromeNativeSimulcast","adapter","appVersion","constraint","enableMultiStreamHacks","restrictBandwidth","andyetRestrictBandwidth","batchIceCandidates","andyetBatchIce","batchedIceCandidates","andyetFasterICE","eliminateDuplicateCandidates","andyetDontSignalCandidates","dontSignalCandidates","assumeSetLocalSuccess","andyetAssumeSetLocalSuccess","wtFirefox","andyetFirefoxMakesMeSad","firefoxcandidatebuffer","peerconn","_onIce","_onDataChannel","remoteDescription","ice","sdpSessionID","logger","hadLocalStunCandidate","hadRemoteStunCandidate","hadLocalRelayCandidate","hadRemoteRelayCandidate","hadLocalIPv6Candidate","hadRemoteIPv6Candidate","_remoteDataChannels","_localDataChannels","_candidateBuffer","SJJ","_role","localStream","_checkLocalCandidate","cand","_checkRemoteCandidate","contentNames","iceCandidate","sdpMLineIndex","sdpMid","hasConstraints","mediaConstraints","expandedOffer","hasBw","answerAudioOnly","_answer","answerBroadcastOnly","sim","hasSim","newssrc","rtxssrc","expandedAnswer","parameter","expandedCandidate","already","bundlePolicy","address","rtcpMuxPolicy","newCand","lodash.foreach","lodash.pluck","sdp-jingle-json","traceablepeerconnection","86","filterContentSources","filterUnusedLabels","onIceEndOfCandidates","onAddStream","onRemoveStream","_ringing","defineProperties","ringing","offerOptions","mediaType","ring","unmute","active","renegotiate","addStream2","removeStream2","switchStream","oldStream","newStream","audioTracks","addTrack","onSessionInfo","onSourceAdd","newDesc","newContent","newContentDesc","newSSRCs","newGroups","onSourceRemove","same","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","JingleSession","v4","processingQueue","task","ACTIONS","content-accept","content-add","content-modify","content-reject","content-remove","description-info","security-info","session-accept","session-info","session-initiate","session-terminate","transport-accept","transport-info","transport-reject","transport-replace","source-add","source-remove","_sessionState","_connectionState","starting","connecting","disconnected","interrupted","requirePending","session-inititate","cancel","decline","kill","okKeys","unknownPayload","onContentAdd","onTransportReplace","119","only_once","called","previous_async","noConflict","_isArray","_each","iterator","_map","_reduce","memo","_keys","setImmediate","completed","eachSeries","iterate","forEachSeries","eachLimit","_eachLimit","forEachLimit","started","running","replenish","doParallel","doParallelLimit","doSeries","_asyncMap","eachfn","mapSeries","mapLimit","_mapLimit","inject","foldl","reduceRight","reversed","reverse","foldr","_filter","filterSeries","select","selectSeries","_reject","rejectSeries","_detect","main_callback","detect","detectSeries","some","any","every","all","sortBy","criteria","left","right","auto","tasks","remainingTasks","taskComplete","theCallback","taskCallback","safeResults","rkey","requires","ready","retry","times","DEFAULT_TIMES","attempts","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","series","waterfall","wrapIterator","_parallel","parallel","parallelLimit","makeCallback","concatSeries","whilst","doWhilst","until","doUntil","worker","concurrency","_insert","drain","saturated","workers","empty","idle","priorityQueue","_compareTasks","_binarySearch","sequence","beg","cargo","working","drained","ds","_console_fn","memoize","hasher","queues","memoized","unmemoized","unmemoize","count","timesSeries","seq","fns","newargs","nextargs","compose","_applyEach","go","applyEach","applyEachSeries","forever","120","rng","getRandomValues","_rnds8","_rnds","121","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","_rng","_seedBytes","./rng","122","123","PC","IceCandidate","SessionDescription","MediaStream","webkitMediaStream","AudioContext","webkitAudioContext","videoEl","supportVp8","canPlayType","msGetUserMedia","browserVersion","supportRTCPeerConnection","supportGetUserMedia","supportDataChannel","supportWebAudio","createMediaStreamSource","supportMediaStream","removeTrack","supportScreenSharing","dataChannel","webAudio","mediaStream","124","125","_interopRequireDefault","__esModule","default","_shortcuts","_shortcuts2","_types2","JXT","use","./shortcuts","./types","126","_xmppConstants","Namespace","SERVER","COMPONENT","extendMessage","JXTClass","multiName","withMessage","Message","extendPresence","_this2","withPresence","Presence","extendIQ","_this3","withIQ","IQ","extendStreamFeatures","_this4","withStreamFeatures","StreamFeatures","extendPubsubItem","_this5","withPubsubItem","PubsubItem","withDefinition","withStanzaError","withDataForm","DATAFORM","PUBSUB_EVENT","getMessage","getDefinition","getPresence","getIQ","getStreamError","getIq","withIq","xmpp-constants","127","_xmppJid","Utils","utils","jidAttribute","prepped","JID","jidSub","getSubText","setSubText","tzoSub","defaultVal","hrs","sign","formatted","xmpp-jid","128","PubSub","Jingle","./lib/jingle","./lib/muc","./lib/namespaces","./lib/presence","./lib/pubsub","129","Action","CONTENT_ACCEPT","CONTENT_ADD","CONTENT_MODIFY","CONTENT_REJECT","CONTENT_REMOVE","DESCRIPTION_INFO","SECURITY_INFO","SESSION_ACCEPT","SESSION_INFO","SESSION_INITIATE","SESSION_TERMINATE","TRANSPORT_ACCEPT","TRANSPORT_INFO","TRANSPORT_REJECT","TRANSPORT_REPLACE","Reason","ALTERNATIVE_SESSION","BUSY","CANCEL","CONNECTIVITY_ERROR","DECLINE","EXPIRED","FAILED_APPLICATION","FAILED_TRANSPORT","GENERAL_ERROR","GONE","INCOMPATIBLE_PARAMETERS","MEDIA_ERROR","SECURITY_ERROR","SUCCESS","UNSUPPORTED_APPLICATIONS","UNSUPPORTED_TRANSPORTS","Condition","OUT_OF_ORDER","TIE_BREAK","UNKNOWN_SESSION","UNSUPPORTED_INFO","130","REALJID_PUBLIC","AFFILIATION_CHANGED","UNAVAILABLE_SHOWN","UNAVAILABLE_NOT_SHOWN","CONFIGURATION_CHANGED","SELF_PRESENCE","LOGGING_ENABLED","LOGGING_DISABLED","NON_ANONYMOUS","SEMI_ANONYMOUS","FULLY_ANONYMOUS","ROOM_CREATED","NICK_ASSIGNED","BANNED","NEW_NICK","KICKED","REMOVED_AFFILIATION","REMOVED_MEMBERSHIP","REMOVED_SHUTDOWN","Affiliation","ADMIN","MEMBER","NONE","OUTCAST","OWNER","Role","MODERATOR","PARTICIPANT","VISITOR","131","STANZA_ERROR","STREAM_ERROR","ROSTER_VERSIONING","SUBSCRIPTION_PREAPPROVAL","RPC","LAST_ACTIVITY","PRIVACY","ADDRESS","IBB","PRIVATE","ADHOC_COMMANDS","VCARD_TEMP","SEARCH","RSM","PUBSUB_ERRORS","PUBSUB_OWNER","SOCKS5","OOB","HTTP_AUTH","REGISTER","AMP","GEOLOC","ROSTER_DELIMITER","AVATAR_DATA","AVATAR_METADATA","CHAT_STATES","MOOD","ACTIVITY","TUNE","DATAFORM_VALIDATION","SHIM","COMPRESSION","DATAFORM_LAYOUT","ROSTER_EXCHANGE","ROSTER_NOTES","REACH_0","VCARD_TEMP_UPDATE","CAPTCHA","JINGLE_1","JINGLE_ERRORS_1","JINGLE_RTP_1","JINGLE_RTP_ERRORS_1","JINGLE_RTP_INFO_1","LANG_TRANS","LANG_TRANS_ITEMS","NICK","JINGLE_ICE_UDP_1","JINGLE_RAW_UDP_1","RECEIPTS","INVISIBLE_0","BLOCKING","SMACKS_3","PING","TIME","DELAY","BOSH_XMPP","DISCO_EXTERNAL_1","DATAFORM_MEDIA","ATTENTION_0","BOB","FILE_TRANSFER_3","FILE_TRANSFER_4","MUC_DIRECT_INVITE","SEC_LABEL_0","SEC_LABEL_CATALOG_2","SEC_LABEL_ESS_0","JINGLE_SOCKS5_1","JINGLE_IBB_1","JINGLE_RTP_ZRTP_1","THUMBS_0","THUMBS_1","DECLOAKING_0","CARBONS_2","JINGLE_RTP_RTCP_FB_0","JINGLE_RTP_HDREXT_0","FORWARD_0","HASHES_1","RTT_0","MUC_UNIQUE","CORRECTION_0","PSA","MAM_TMP","MAM_0","HATS_0","IDLE_1","JINGLE_DTLS_0","JID_PREP_0","HINTS","JSON_0","EVENTLOG","JINGLE_GROUPING_0","JINGLE_RTP_SSMA_0","COLIBRI","DTLS_SCTP_1","CSI","JINGLE_MSG_INITIATE_0","PUSH_0","JINGLE_PUB_1","132","Type","SUBSCRIBE","SUBSCRIBED","UNSUBSCRIBE","UNSUBSCRIBED","PROBE","UNAVAILABLE","Show","CHAT","AWAY","DO_NOT_DISTURB","EXTENDED_AWAY","133","PUBLISHER","PUBLISH_ONLY","Subscription","PENDING","UNCONFIGURED","AccessModel","OPEN","PRESENCE","AUTHORIZE","WHITELIST","CONFLICT","134","bareJID","local","fullJID","StringPrep","ASCII","prep","unescapedLocal","nodeprep","unescape","resourceprep","nameprep","unescapedBare","unescapedFull","trusted","resourceStart","localEnd","preppedJID","equal","jid1","jid2","requirePrep","equalBare","isBare","hasResource","isFull","escape","localOrJID","_isJID","./lib/stringprep","135","136","_lodashForeach","_lodashForeach2","Avatar","namespace","height","width","avatars","_avatars","findOrCreate","avatar","textSub","babel-runtime/helpers/interop-require-default","137","Bind","138","jidList","types","Block","jids","Unblock","BlockList","139","cid","maxAge","numberAttribute","140","Conference","autoJoin","boolAttribute","Bookmarks","PrivateStorage","141","prefixes","xmpp","ack","authid","charsets","inactivity","maxpause","newKey","polling","resport","requests","langAttribute","restart","restartLogic","142","Sent","Received","Private","Enable","Disable","Forwarded","143","CONDITIONS","Command","sessionid","execute","subAttribute","actions","actionSet","existing","Note","StanzaError","enumSub","DataForm","144","CSIFeature","topLevel","145","SINGLE_FIELDS","_type","boolSub","getMultiSubText","truthy","setMultiSubText","Media","MediaURI","Validation","dataType","regex","Range","ListRange","layoutContents","namespaceURI","localName","section","Section","sectionXML","Page","reportedFields","fieldTypes","multiTextSub","subMultiExtension","146","DelayedDelivery","stamp","dateAttribute","147","DiscoCaps","DiscoInfo","multiSubAttribute","DiscoIdentity","DiscoItems","DiscoItem","148","gone","redirect","by","$text","getSubLangText","setSubLangText","149","Services","Credentials","Service","150","FT_NS","numberSub","dateSub","Thumbnail","mimeType","subExtension","request","Content","151","Delayed","152","seeOtherURI","153","GeoLoc","accuracy","altitude","area","heading","bearing","building","country","countrycode","datum","latitude","locality","longitude","postalcode","region","speed","street","tzo","154","155","Hat","displayName","156","ICE","RemoteCandidate","Candidate","Fingerprint","SctpMap","157","_avatar","_avatar2","_bind","_bind2","_blocking","_blocking2","_bob","_bob2","_bookmarks","_bookmarks2","_bosh","_bosh2","_carbons","_carbons2","_command","_command2","_csi","_csi2","_dataforms","_dataforms2","_delayed","_delayed2","_disco","_disco2","_error","_error2","_extdisco","_extdisco2","_file","_file2","_forwarded","_forwarded2","_framing","_framing2","_geoloc","_geoloc2","_hash2","_hats","_hats2","_iceUdp","_iceUdp2","_iq","_iq2","_jidprep","_jidprep2","_jingle","_jingle2","_json","_json2","_logging","_logging2","_mam","_mam2","_message","_message2","_mood","_mood2","_muc","_muc2","_nick","_nick2","_oob","_oob2","_ping","_ping2","_presence","_presence2","_private","_private2","_psa","_psa2","_pubsub","_pubsub2","_pubsubError","_pubsubError2","_pubsubEvents","_pubsubEvents2","_pubsubOwner","_pubsubOwner2","_push","_push2","_reach","_reach2","_register","_register2","_roster","_roster2","_rsm","_rsm2","_rtp","_rtp2","_rtt","_rtt2","_sasl","_sasl2","_session","_session2","_shim","_shim2","_sm","_sm2","_stream","_stream2","_streamError","_streamError2","_streamFeatures","_streamFeatures2","_time","_time2","_tune","_tune2","_vcard","_vcard2","_version","_version2","_visibility","_visibility2","./avatar","./bind","./blocking","./bob","./bookmarks","./bosh","./carbons","./command","./csi","./dataforms","./delayed","./disco","./error","./extdisco","./file","./forwarded","./framing","./geoloc","./hats","./iceUdp","./iq","./jidprep","./jingle","./json","./logging","./mam","./message","./mood","./muc","./nick","./oob","./ping","./presence","./private","./psa","./pubsub","./pubsubError","./pubsubEvents","./pubsubOwner","./push","./reach","./register","./roster","./rsm","./rtp","./rtt","./sasl","./session","./shim","./sm","./stream","./streamError","./streamFeatures","./time","./tune","./vcard","./version","./visibility","158","_Object$assign","internals","defineIQ","_toJSON","resultReply","errorReply","babel-runtime/core-js/object/assign","159","160","REASONS","disposition","tagged","Description","_name","_extensions","Transport","alternativeSession","161","JSONExtension","162","Log","facility","stackTrace","Tag","163","MAMQuery","queryid","Result","Fin","complete","stable","Prefs","defaultCondition","always","container","never","164","defineMessage","thread","parentThread","$body","bodies","attention","chatState","requestReceipt","receipt","165","MOODS","Mood","166","proxy","UserItem","UserActor","Destroyed","Invite","continue","Decline","AdminItem","AdminActor","Destroy","actor","codes","MUCAdmin","MUCOwner","MUCJoin","history","hist","maxchars","maxstanzas","seconds","toISOString","DirectInvite","167","168","169","Ping","170","definePresence","$status","statuses","idleSince","dateSubAttribute","decloak","DECLOAK_0","avatarId","setBoolSub","171","172","173","Pubsub","getSubAttribute","getBoolSub","setSubAttribute","publishOptions","Configure","Subscribe","subid","configurationRequired","Subscriptions","Affiliations","SubscriptionOptions","Unsubscribe","Publish","Retract","Retrieve","174","pubsubCondition","175","Event","EventPurge","EventDelete","EventSubscription","expiry","EventConfiguration","EventItems","retracted","EventItem","publisher","176","PubsubOwner","purge","del","177","Notification","178","ReachURI","$desc","descs","reachability","reach","addrs","addr","179","Register","registered","remove","first","email","city","zip","phone","misc","180","Roster","force","RosterItem","subscription","subscriptionRequested","ask","preApproved","181","after","before","firstIndex","182","Feedback","Bandwidth","RTP","Crypto","setBoolSubAttribute","PayloadType","maxptime","ptime","params","ContentGroup","SourceGroup","Source","Mute","Unmute","183","TYPE_MAP","insert","erase","ACTION_MAP","RTT","setText","184","Mechanisms","_lang","185","Session","186","headerSet","187","SMFeature","previd","188","189","seeOtherHost","190","RosterVerFeature","SubscriptionPreApprovalFeature","191","EntityTime","utc","192","Tune","artist","rating","193","VCardTemp","website","fullName","birthday","nicknames","Email","home","work","preferred","PhoneNumber","mobile","Address","street2","postalCode","pobox","Organization","unit","Name","family","given","middle","Photo","194","Version","os","195","196","core-js/library/fn/object/assign","197","198","assign","../../modules/$.core","../../modules/es6.object.assign","199","it","200","201","__e","202","aFunction","./$.a-function","203","204","PROTOTYPE","$export","own","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","C","./$.core","./$.ctx","./$.global","205","exec","206","__g","207","cof","./$.cof","208","$Object","getProto","getPrototypeOf","isEnum","getDesc","setDesc","setDescs","getKeys","getNames","getSymbols","getOwnPropertySymbols","209","IObject","A","Symbol","T","$$","$$len","./$","./$.fails","./$.iobject","./$.to-object","210","defined","./$.defined","211","./$.export","./$.object-assign","212","213","214","215","216","217","218","219","220","221","222","223","224","225","226","227","228","_LOOKUP","_LOOKUP_EXT","_TAGS","_CB_DEFINITION","_CB_TAG","_ID","ltx","stanzaConstructor","getExtensions","withTag","ParentJXT","ChildJXT","hideSingle","parentName","_NS","_EL","qName","extension","multiExtension","fieldName","Stanza","fieldNames","createRegistry","globalJXT","getGlobalJXT","./lib/helpers","./lib/stanza","./lib/types","lodash.assign","229","XML_NS","parentNS","Element","created","getAttributeNS","setAttributeNS","removeAttributeNS","getBoolAttribute","setBoolAttribute","subs","getBoolSubAttribute","getTextSub","setTextSub","extractor","builder","getMultiSubAttribute","setMultiSubAttribute","defaultLang","langs","230","EXCLUDE","_PREFIXES","_eventname","allowedName","isExtensionName","nval","231","getter","setter","boolSubAttribute","getSubBoolAttribute","setSubBoolAttribute","subText","multiSubText","langTextSub","subLangText","b64Text","isFloat","parseFloat","attributeNS","enumValues","enumVal","exists","alreadyExists","elements","232","assignWith","baseAssign","createAssigner","lodash._baseassign","lodash._createassigner","233","baseCopy","lodash._basecopy","234","235","assigner","restParam","guard","isIterateeCall","lodash._isiterateecall","lodash.restparam","236","237","238","FUNC_ERROR_TEXT","nativeMax","rest","otherArgs","239","240","241","242","243","DOMElement","_getElement","getName","getNS","getChildren","getAttr","nss","getXmlns","./element","244","setAttrs","escapeXml","escapeXmlText","is","findNS","namespaces","getChild","getChildByAttr","recursive","getChildrenByAttr","getChildrenByFilter","getChildText","getChildElements","clone","_addChildren","writer","245","availableSaxParsers","bestSaxParser","./index","./parse","./sax/sax_ltx","246","Parser","./dom-element","247","saxParsers","modName","mod","saxParser","ParserMod","248","unescapeXml","STATE_TEXT","STATE_IGNORE_TAG","STATE_TAG_NAME","STATE_TAG","STATE_ATTR_NAME","STATE_ATTR_EQ","STATE_ATTR_QUOT","STATE_ATTR_VALUE","SaxLtx","remainder","endTag","selfClosing","attrQuote","attrName","recordStart","_handleTagOpening","endRecording","recorded","249","250","251","252","JSM","RTC","jxt","IqStanza","peer_constraints","AUTOACCEPT","manager","MozDontOfferDataChannel","offerToReceiveAudio","offerToReceiveVideo","mozDontOfferDataChannel","terminated","peerStreamAdded","peerStreamRemoved","log:error","onJingle","parseXML","outerHTML","initiate","peerjid","terminate","terminateByJid","setICEServers","servers","setPeerConstraints","jxt-xmpp","jxt-xmpp-types","Salsa20","rounds","sigmaWords","keyWords","nonceWords","counterWords","block","blockUsed","setKey","setNonce","getBytes","numberOfBytes","_generateBlock","_incrementCounter","getHexString","hex","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","msCrypto","BigInt","findPrimes","ans","millerRabin","mr_x1","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","squareMod_","bitSize","expand","int2bigInt","mod_","mult","mult_","powMod","sub_","add_","inverseMod","inverseMod_","multMod","multMod_","randBigInt","randBigInt_","randomBitInt","copyInt_","eg_u","eg_v","eg_A","eg_B","eg_C","eg_D","halve_","greater","negative","inverseModInt","greaterShift","kx","ky","divide_","y1","y2","leftShift_","subShift_","radix","linCombShift_","addShift_","modInt","bits","minSize","buff","str2bigInt","kk","bb","digitsStr","multInt_","bigInt2str","s6","divInt_","ys","ss","s4","s5","s0","k1","k2","kn","np","s7","s3","mont_","one","ui","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","CryptoJS","C_lib","lib","overrides","mixIn","$super","instance","properties","propertyName","WordArray","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","decodeURIComponent","utf8Str","encodeURIComponent","BufferedBlockAlgorithm","_nDataBytes","_append","doFlush","dataWords","dataSigBytes","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","_doProcessBlock","processedWords","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","base64Chars","byte1","byte2","byte3","paddingChar","base64Str","base64StrLength","paddingIndex","bits1","bits2","Cipher","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","finalProcessedData","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","finalProcessedBlocks","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","encryptBlock","thisBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","cipherParams","formatter","C_format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","compute","derivedParams","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","RCON","AES","nRounds","_nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s1","s2","round","t0","t3","HmacSHA1","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma1x","sigma0","sigma1","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","_counter","keystream","indexOfListener","getListeners","evt","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","emitEvent","_getOnceReturnValue","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","MSGSTATE_PLAINTEXT","MSGSTATE_ENCRYPTED","MSGSTATE_FINISHED","AUTHSTATE_NONE","AUTHSTATE_AWAITING_DHKEY","AUTHSTATE_AWAITING_REVEALSIG","AUTHSTATE_AWAITING_SIG","WHITESPACE_TAG","WHITESPACE_TAG_V2","WHITESPACE_TAG_V3","OTR_TAG","OTR_VERSION_1","OTR_VERSION_2","OTR_VERSION_3","SMPSTATE_EXPECT0","SMPSTATE_EXPECT1","SMPSTATE_EXPECT2","SMPSTATE_EXPECT3","SMPSTATE_EXPECT4","STATUS_SEND_QUERY","STATUS_AKE_INIT","STATUS_AKE_SUCCESS","STATUS_END_OTR","intCompare","HLP","DTS","BYTE","SHORT","INT","MAC","SIG","WRAPPER_BEGIN","WRAPPER_END","TWO","__super__","str1","str2","randomExponent","smpHash","fmpi","smpi","packBytes","packMPI","bits2bigInt","makeMac","aesctr","mac","make1Mac","encryptAes","aesctr_decoded","decryptAes","multPowMod","ZKP","GTOE","between","checkGroup","N_MINUS_2","h1","secbytes","h2","nex","packINT","packCtr","padCtr","ctr","unpackCtr","unpack","packData","packSHORT","short","unpackSHORT","packTLV","readLen","readData","readMPI","packMPIs","prv","unpackMPIs","mpis","splitype","wrapMsg","fs","v3","our_it","their_it","its","ei","frag","mf","mfs","_bin2num","rv","ary","iz","remain","timer","makeRandom","isProbPrime","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","splt","es","parseLibotr","Worker","WWPath","__dirname","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","pk","parsePublic","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","seed","postMessage","imports","Parse","parseMsg","otr","initFragment","ind","com","msgFragment","vers","qs","qi","cls","instance_tags","ERROR_START_AKE","sendQueryMsg","checkInstanceTags","hMac","gx","gy","kid","AKE","our_dh","our_old_dh","our_keyid","their_y","their_keyid","their_priv_pk","ssid","transmittedRS","meth","createKeys","privateKey","c_prime","m1","m2","m1_prime","m2_prime","verifySignMac","our_dh_pk","vmac","pub","makeM","publicKey","akeSuccess","their_old_y","sessKeys","DHSession","otr_version","authstate","msgstate","myhashed","dhcommit","encrypted","hashed","sendStored","handleAKE","vsm","ourHash","theirHash","dh","gxmpi","sendMsg","our_instance_tag","their_instance_tag","fragment_size","io","initiateAKE","SM","reqs","our_fp","their_fp","Q","smpstate","secret","makeSecret","our","makeG2s","a2","a3","g2a","g3a","computeGs","g2","g3","computePQ","computeR","QoQ","computeRab","computeC","computeD","handleSM","r2","r3","r7","t4","rab","tmp2","cR","d7","ms","trust","expectStates","question","g3ao","c3","d2","d3","r4","r5","r6","cP","d5","d6","PoP","rcvSecret","OTRCB","send_interval","instance_tag","makeInstanceTag","smw","SMWPath","MAX_INT","MAX_UINT","ALLOW_V2","ALLOW_V3","REQUIRE_ENCRYPTION","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","storedMgs","oldMacKeys","sm","_akeInit","receivedPlaintext","ake","_SMW","_smInit","prepareMsg","sq","sendbyte","rcvbyte","sendenc","sendmac","rcvenc","rcvmac","rcvmacused","extra_symkey","send_counter","rcv_counter","rotateOurKeys","sk","rotateTheirKeys","esk","aes","handleDataMsg","vt","ign","handleTLVs","tlvs","smpSecret","vs","receiveMsg","doAKE","severity","sendFile","filename","l1name","endOtr","cache","jsonp","content-type","authBasic","Authorization","head","isAllowed","patch","post","put","fixLng","functions","defaultNs","fallbackNS","fallbackLng","interpolationPrefixEscaped","regexEscape","interpolationPrefix","interpolationSuffixEscaped","interpolationSuffix","lng","detectLanguage","toLanguages","useCookie","cookie","cookieName","cookieExpirationTime","cookieDomain","detectLngFromLocalStorage","setCurrentLng","setJqueryExt","Deferred","resStore","preload","I","load","J","promise","deepExtend","keyseparator","dynamicLoad","resGetPath","getAsync","customLoad","_fetch","useLocalStorage","_storeLocal","defaultValueFromContent","defaultValue","prepend","selectorAttr","useDataAttrOptions","i18n","escapeInterpolation","regexReplacementEscape","postProcess","reusePrefix","maxRecursion","reuseSuffix","context","indefinite_article","D","sprintf","shortcutFunction","defaultVariables","nsseparator","sendMissing","missingKeyHandler","X","parseMissingKey","lngs","contextNotFound","pluralNotFound","needsPlural","pluralSuffix","indefiniteNotFound","indefiniteSuffix","E","returnObjectTrees","fallbackOnNull","objectTreeKeyHandler","fallbackOnEmpty","isFallbackLookup","fallbackToDefaultNS","lngWhitelist","detectLngQS","languages","userLanguage","language","lowerCaseLng","Zepto","O","_loadLocal","i18nStamp","localStorageExpirationTime","ajax","_fetchOne","postMissing","sendMissingTo","resPostPath","sendType","postAsync","reload","&","<",">","\"","'","/","R","setTime","toGMTString","getCountyIndexOfLng","applyReplacement","V","rules","numbers","plurals","addRule","currentRule","rule","noAbs","Y","Z","toExponential","toFixed","setLng","addResourceBundle","hasResourceBundle","addResource","addResources","removeResourceBundle","loadNamespace","loadNamespaces","setDefaultNamespace","translate","pluralExtensions","addPostProcessor","className","triggerHandler","st","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","transition","isIE7","isIE8","isLowIE","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isObj","isOpen","updateItemHTML","mainEl","eq","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","contentContainer","preloader","tLoading","modules","closeBtnInside","close_replaceWith","alignTop","overflowY","overflowX","top","scrollTop","fixedBgPos","keyCode","updateSize","addClass","wH","_hasScrollBar","_getScrollbarSize","marginRight","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","_setFocus","_onFocusIn","removalDelay","_close","detach","_removeClassFromMFP","removeAttr","currItem","focus","prevHeight","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","appendContent","preloaded","hasClass","addGroup","mfpEl","_openClick","delegate","midClick","which","ctrlKey","metaKey","disableOn","preventDefault","stopPropagation","updateStatus","stopImmediatePropagation","contains","scrollHeight","_parseMarkup","replaceWith","scrollbarSize","offsetWidth","registerModule","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","settings","cursor","tError","initAjax","getAjax","loadError","image","titleSrc","verticalFit","initImage","resizeImage","_onImageHasSize","hasSize","clearInterval","isCheckingImgSize","imgHidden","findImageSize","setInterval","naturalWidth","getImage","loaded","alt","img_replaceWith","loading","MozTransform","enabled","easing","duration","opener","initZoom","zoom","zIndex","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","offsetHeight","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","Boolean","mfpFastClick","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","destroyMfpFastClick","goTo","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","originalEvent","touches","clientX","clientY","I18next","bg","translation","Logging_in","your_connection_is_unencrypted","your_connection_is_encrypted","your_buddy_closed_the_private_connection","start_private","close_private","your_buddy_is_verificated","you_have_only_a_subscription_in_one_way","authentication_query_sent","your_message_wasnt_send_please_end_your_private_conversation","unencrypted_message_received","not_available","no_connection","relogin","trying_to_start_private_conversation","Verified","Unverified","private_conversation_aborted","your_buddy_closed_the_private_conversation_you_should_do_the_same","conversation_is_now_verified","authentication_failed","Creating_your_private_key_","Authenticating_a_buddy_helps_","How_do_you_want_to_authenticate_your_buddy","Select_method","Manual","Question","Secret","To_verify_the_fingerprint_","Your_fingerprint","Buddy_fingerprint","Close","Compared","To_authenticate_using_a_question_","Ask","To_authenticate_pick_a_secret_","Compare","Fingerprints","Authentication","Add_buddy","rename_buddy","delete_buddy","Login","Username","Password","Cancel","Connect","Type_in_the_full_username_","Alias","Add","Subscription_request","You_have_a_request_from","Deny","Approve","Remove_buddy","You_are_about_to_remove_","Continue_without_chat","Please_wait","Login_failed","Sorry_we_cant_authentikate_","Retry","clear_history","New_message_from","Should_we_notify_you_","Please_accept_","Hide_offline","Show_offline","About","dnd","online","chat","away","xa","offline","Unknown_instance_tag","Not_one_of_our_latest_keys","Received_an_unreadable_encrypted_message","Online","Chatty","Away","Extended_away","Offline","Friendship_request","Confirm","Dismiss","Remove","Online_help","FN","FAMILY","GIVEN","NICKNAME","ADR","STREET","EXTADD","LOCALITY","REGION","PCODE","CTRY","TEL","EMAIL","USERID","ORG","ORGNAME","ORGUNIT","TITLE","ROLE","BDAY","DESC","PHOTO","send_message","get_info","Settings","Priority","Save","User_settings","A_fingerprint_","Login_options","BOSH_url","Domain","Resource","On_login","Received_an_unencrypted_message","Sorry_your_buddy_doesnt_provide_any_information","Info_about","Authentication_aborted","Authentication_request_received","Log_in_without_chat","has_come_online","Unknown_sender","Please_allow_access_to_microphone_and_camera","Incoming_call","Do_you_want_to_accept_the_call_from","Reject","Accept","hang_up","snapshot","mute_my_audio","pause_my_video","fullscreen","Info","Local_IP","Remote_IP","Local_Fingerprint","Remote_Fingerprint","Video_call_not_possible","Start_video_call","Join_chat","Join","Room","Nickname","left_the_building","entered_the_room","is_now_known_as","This_room_is","muc_hidden","keyword","muc_membersonly","muc_moderated","muc_nonanonymous","muc_open","muc_passwordprotected","muc_persistent","muc_public","muc_semianonymous","muc_temporary","muc_unmoderated","muc_unsecured","Continue","Server","Rooms_are_loaded","Could_load_only","muc_explanation","You_already_joined_this_room","This_room_will_be_closed","Room_not_found_","Loading_room_information","Leave","changed_subject_to","muc_removed_kicked","muc_removed_info_kicked","muc_removed_banned","muc_removed_info_banned","muc_removed_affiliation","muc_removed_info_affiliation","muc_removed_membersonly","muc_removed_info_membersonly","muc_removed_shutdown","message_not_send","message_not_send_item-not-found","message_not_send_forbidden","message_not_send_not-acceptable","This_room_has_been_closed","Room_logging_is_enabled","A_password_is_required","You_are_not_on_the_member_list","You_are_banned_from_this_room","Your_desired_nickname_","The_maximum_number_","This_room_is_locked_","You_are_not_allowed_to_create_","Alert","Call_started","Call_terminated","Carbon_copy","jingle_reason_busy","jingle_reason_decline","jingle_reason_success","Media_failure","No_local_audio_device","No_local_video_device","Ok","PermissionDeniedError","Use_local_audio_device","Use_local_video_device","is_","You_received_a_message_from_an_unknown_sender_","Your_roster_is_empty_add_","onsmp_explanation_question","onsmp_explanation_secret","from_sender","Verified_private_conversation_started","Unverified_private_conversation_started","Bookmark","Auto-join","Edit_bookmark","Room_logging_is_disabled","Room_is_now_non-anoymous","Room_is_now_semi-anonymous","Do_you_want_to_change_the_default_room_configuration","Default","Change","Send_file","setting-explanation-carbon","setting-explanation-login","setting-explanation-priority","setting-explanation-xmpp","de","en","fi","fr","hu-HU","nds","pl","pt-BR","ro","ru","tr-TR","vi-VN","zh-TW","zh","Favico","drawVideo","_stop","_context","clearRect","drawImage","_drawTimeout","animation","link","setIcon","_canvas","hexToRgb","shorthandRegex","merge","def","attrname","mergedOpt","isPageHidden","_doc","hidden","msHidden","webkitHidden","mozHidden","_opt","_orig","_img","_ready","_lastBadge","_running","_readyCb","_browser","_animTimeout","_def","bgColor","textColor","fontFamily","fontStyle","elementId","dataUrl","win","ff","InstallTrigger","chrome","opera","ie","safari","HTMLElement","supported","_queue","isUp","isLeft","step","getIcon","hasAttribute","getContext","icon","circle","more","beginPath","font","textAlign","moveTo","lineTo","quadraticCurveTo","arc","PI","fillStyle","closePath","stroke","fillText","rectangle","fillRect","badge","imageElement","newImg","videoElement","webcam","newVideo","oGetUserMedia","play","elm","getLink","getElementById","canvas","toDataURL","old","fade","popFade","slide","revert","animationType","emojioneList",":kiss_ww:",":couplekiss_ww:",":kiss_mm:",":couplekiss_mm:",":family_mmbb:",":family_mmgb:",":family_mmgg:",":family_mwbb:",":family_mwgb:",":family_mwgg:",":family_wwbb:",":family_wwgb:",":family_wwgg:",":couple_ww:",":couple_with_heart_ww:",":couple_mm:",":couple_with_heart_mm:",":family_mmb:",":family_mmg:",":family_mwg:",":family_wwb:",":family_wwg:",":eye_in_speech_bubble:",":hash:",":zero:",":one:",":two:",":three:",":four:",":five:",":six:",":seven:",":eight:",":nine:",":asterisk:",":keycap_asterisk:",":metal_tone5:",":sign_of_the_horns_tone5:",":metal_tone4:",":sign_of_the_horns_tone4:",":metal_tone3:",":sign_of_the_horns_tone3:",":metal_tone2:",":sign_of_the_horns_tone2:",":metal_tone1:",":sign_of_the_horns_tone1:",":bath_tone5:",":bath_tone4:",":bath_tone3:",":bath_tone2:",":bath_tone1:",":walking_tone5:",":walking_tone4:",":walking_tone3:",":walking_tone2:",":walking_tone1:",":mountain_bicyclist_tone5:",":mountain_bicyclist_tone4:",":mountain_bicyclist_tone3:",":mountain_bicyclist_tone2:",":mountain_bicyclist_tone1:",":bicyclist_tone5:",":bicyclist_tone4:",":bicyclist_tone3:",":bicyclist_tone2:",":bicyclist_tone1:",":rowboat_tone5:",":rowboat_tone4:",":rowboat_tone3:",":rowboat_tone2:",":rowboat_tone1:",":pray_tone5:",":pray_tone4:",":pray_tone3:",":pray_tone2:",":pray_tone1:",":person_with_pouting_face_tone5:",":person_with_pouting_face_tone4:",":person_with_pouting_face_tone3:",":person_with_pouting_face_tone2:",":person_with_pouting_face_tone1:",":person_frowning_tone5:",":person_frowning_tone4:",":person_frowning_tone3:",":person_frowning_tone2:",":person_frowning_tone1:",":raised_hands_tone5:",":raised_hands_tone4:",":raised_hands_tone3:",":raised_hands_tone2:",":raised_hands_tone1:",":raising_hand_tone5:",":raising_hand_tone4:",":raising_hand_tone3:",":raising_hand_tone2:",":raising_hand_tone1:",":bow_tone5:",":bow_tone4:",":bow_tone3:",":bow_tone2:",":bow_tone1:",":ok_woman_tone5:",":ok_woman_tone4:",":ok_woman_tone3:",":ok_woman_tone2:",":ok_woman_tone1:",":no_good_tone5:",":no_good_tone4:",":no_good_tone3:",":no_good_tone2:",":no_good_tone1:",":vulcan_tone5:",":raised_hand_with_part_between_middle_and_ring_fingers_tone5:",":vulcan_tone4:",":raised_hand_with_part_between_middle_and_ring_fingers_tone4:",":vulcan_tone3:",":raised_hand_with_part_between_middle_and_ring_fingers_tone3:",":vulcan_tone2:",":raised_hand_with_part_between_middle_and_ring_fingers_tone2:",":vulcan_tone1:",":raised_hand_with_part_between_middle_and_ring_fingers_tone1:",":middle_finger_tone5:",":reversed_hand_with_middle_finger_extended_tone5:",":middle_finger_tone4:",":reversed_hand_with_middle_finger_extended_tone4:",":middle_finger_tone3:",":reversed_hand_with_middle_finger_extended_tone3:",":middle_finger_tone2:",":reversed_hand_with_middle_finger_extended_tone2:",":middle_finger_tone1:",":reversed_hand_with_middle_finger_extended_tone1:",":hand_splayed_tone5:",":raised_hand_with_fingers_splayed_tone5:",":hand_splayed_tone4:",":raised_hand_with_fingers_splayed_tone4:",":hand_splayed_tone3:",":raised_hand_with_fingers_splayed_tone3:",":hand_splayed_tone2:",":raised_hand_with_fingers_splayed_tone2:",":hand_splayed_tone1:",":raised_hand_with_fingers_splayed_tone1:",":spy_tone5:",":sleuth_or_spy_tone5:",":spy_tone4:",":sleuth_or_spy_tone4:",":spy_tone3:",":sleuth_or_spy_tone3:",":spy_tone2:",":sleuth_or_spy_tone2:",":spy_tone1:",":sleuth_or_spy_tone1:",":muscle_tone5:",":muscle_tone4:",":muscle_tone3:",":muscle_tone2:",":muscle_tone1:",":haircut_tone5:",":haircut_tone4:",":haircut_tone3:",":haircut_tone2:",":haircut_tone1:",":massage_tone5:",":massage_tone4:",":massage_tone3:",":massage_tone2:",":massage_tone1:",":nail_care_tone5:",":nail_care_tone4:",":nail_care_tone3:",":nail_care_tone2:",":nail_care_tone1:",":dancer_tone5:",":dancer_tone4:",":dancer_tone3:",":dancer_tone2:",":dancer_tone1:",":guardsman_tone5:",":guardsman_tone4:",":guardsman_tone3:",":guardsman_tone2:",":guardsman_tone1:",":information_desk_person_tone5:",":information_desk_person_tone4:",":information_desk_person_tone3:",":information_desk_person_tone2:",":information_desk_person_tone1:",":angel_tone5:",":angel_tone4:",":angel_tone3:",":angel_tone2:",":angel_tone1:",":princess_tone5:",":princess_tone4:",":princess_tone3:",":princess_tone2:",":princess_tone1:",":construction_worker_tone5:",":construction_worker_tone4:",":construction_worker_tone3:",":construction_worker_tone2:",":construction_worker_tone1:",":baby_tone5:",":baby_tone4:",":baby_tone3:",":baby_tone2:",":baby_tone1:",":older_woman_tone5:",":grandma_tone5:",":older_woman_tone4:",":grandma_tone4:",":older_woman_tone3:",":grandma_tone3:",":older_woman_tone2:",":grandma_tone2:",":older_woman_tone1:",":grandma_tone1:",":older_man_tone5:",":older_man_tone4:",":older_man_tone3:",":older_man_tone2:",":older_man_tone1:",":man_with_turban_tone5:",":man_with_turban_tone4:",":man_with_turban_tone3:",":man_with_turban_tone2:",":man_with_turban_tone1:",":man_with_gua_pi_mao_tone5:",":man_with_gua_pi_mao_tone4:",":man_with_gua_pi_mao_tone3:",":man_with_gua_pi_mao_tone2:",":man_with_gua_pi_mao_tone1:",":person_with_blond_hair_tone5:",":person_with_blond_hair_tone4:",":person_with_blond_hair_tone3:",":person_with_blond_hair_tone2:",":person_with_blond_hair_tone1:",":bride_with_veil_tone5:",":bride_with_veil_tone4:",":bride_with_veil_tone3:",":bride_with_veil_tone2:",":bride_with_veil_tone1:",":cop_tone5:",":cop_tone4:",":cop_tone3:",":cop_tone2:",":cop_tone1:",":woman_tone5:",":woman_tone4:",":woman_tone3:",":woman_tone2:",":woman_tone1:",":man_tone5:",":man_tone4:",":man_tone3:",":man_tone2:",":man_tone1:",":girl_tone5:",":girl_tone4:",":girl_tone3:",":girl_tone2:",":girl_tone1:",":boy_tone5:",":boy_tone4:",":boy_tone3:",":boy_tone2:",":boy_tone1:",":open_hands_tone5:",":open_hands_tone4:",":open_hands_tone3:",":open_hands_tone2:",":open_hands_tone1:",":clap_tone5:",":clap_tone4:",":clap_tone3:",":clap_tone2:",":clap_tone1:",":thumbsdown_tone5:",":-1_tone5:",":thumbsdown_tone4:",":-1_tone4:",":thumbsdown_tone3:",":-1_tone3:",":thumbsdown_tone2:",":-1_tone2:",":thumbsdown_tone1:",":-1_tone1:",":thumbsup_tone5:",":+1_tone5:",":thumbsup_tone4:",":+1_tone4:",":thumbsup_tone3:",":+1_tone3:",":thumbsup_tone2:",":+1_tone2:",":thumbsup_tone1:",":+1_tone1:",":ok_hand_tone5:",":ok_hand_tone4:",":ok_hand_tone3:",":ok_hand_tone2:",":ok_hand_tone1:",":wave_tone5:",":wave_tone4:",":wave_tone3:",":wave_tone2:",":wave_tone1:",":punch_tone5:",":punch_tone4:",":punch_tone3:",":punch_tone2:",":punch_tone1:",":point_right_tone5:",":point_right_tone4:",":point_right_tone3:",":point_right_tone2:",":point_right_tone1:",":point_left_tone5:",":point_left_tone4:",":point_left_tone3:",":point_left_tone2:",":point_left_tone1:",":point_down_tone5:",":point_down_tone4:",":point_down_tone3:",":point_down_tone2:",":point_down_tone1:",":point_up_2_tone5:",":point_up_2_tone4:",":point_up_2_tone3:",":point_up_2_tone2:",":point_up_2_tone1:",":nose_tone5:",":nose_tone4:",":nose_tone3:",":nose_tone2:",":nose_tone1:",":ear_tone5:",":ear_tone4:",":ear_tone3:",":ear_tone2:",":ear_tone1:",":lifter_tone5:",":weight_lifter_tone5:",":lifter_tone4:",":weight_lifter_tone4:",":lifter_tone3:",":weight_lifter_tone3:",":lifter_tone2:",":weight_lifter_tone2:",":lifter_tone1:",":weight_lifter_tone1:",":swimmer_tone5:",":swimmer_tone4:",":swimmer_tone3:",":swimmer_tone2:",":swimmer_tone1:",":horse_racing_tone5:",":horse_racing_tone4:",":horse_racing_tone3:",":horse_racing_tone2:",":horse_racing_tone1:",":surfer_tone5:",":surfer_tone4:",":surfer_tone3:",":surfer_tone2:",":surfer_tone1:",":runner_tone5:",":runner_tone4:",":runner_tone3:",":runner_tone2:",":runner_tone1:",":santa_tone5:",":santa_tone4:",":santa_tone3:",":santa_tone2:",":santa_tone1:",":flag_zw:",":zw:",":flag_zm:",":zm:",":flag_za:",":za:",":flag_yt:",":yt:",":flag_ye:",":ye:",":flag_xk:",":xk:",":flag_ws:",":ws:",":flag_wf:",":wf:",":flag_vu:",":vu:",":flag_vn:",":vn:",":flag_vi:",":vi:",":flag_vg:",":vg:",":flag_ve:",":ve:",":flag_vc:",":vc:",":flag_va:",":va:",":flag_uz:",":uz:",":flag_uy:",":uy:",":flag_us:",":us:",":flag_um:",":um:",":flag_ug:",":ug:",":flag_ua:",":ua:",":flag_tz:",":tz:",":flag_tw:",":tw:",":flag_tv:",":tuvalu:",":flag_tt:",":tt:",":flag_tr:",":tr:",":flag_to:",":to:",":flag_tn:",":tn:",":flag_tm:",":turkmenistan:",":flag_tl:",":tl:",":flag_tk:",":tk:",":flag_tj:",":tj:",":flag_th:",":th:",":flag_tg:",":tg:",":flag_tf:",":tf:",":flag_td:",":td:",":flag_tc:",":tc:",":flag_ta:",":ta:",":flag_sz:",":sz:",":flag_sy:",":sy:",":flag_sx:",":sx:",":flag_sv:",":sv:",":flag_st:",":st:",":flag_ss:",":ss:",":flag_sr:",":sr:",":flag_so:",":so:",":flag_sn:",":sn:",":flag_sm:",":sm:",":flag_sl:",":sl:",":flag_sk:",":sk:",":flag_sj:",":sj:",":flag_si:",":si:",":flag_sh:",":sh:",":flag_sg:",":sg:",":flag_se:",":se:",":flag_sd:",":sd:",":flag_sc:",":sc:",":flag_sb:",":sb:",":flag_sa:",":saudiarabia:",":saudi:",":flag_rw:",":rw:",":flag_ru:",":ru:",":flag_rs:",":rs:",":flag_ro:",":ro:",":flag_re:",":re:",":flag_qa:",":qa:",":flag_py:",":py:",":flag_pw:",":pw:",":flag_pt:",":pt:",":flag_ps:",":ps:",":flag_pr:",":pr:",":flag_pn:",":pn:",":flag_pm:",":pm:",":flag_pl:",":pl:",":flag_pk:",":pk:",":flag_ph:",":ph:",":flag_pg:",":pg:",":flag_pf:",":pf:",":flag_pe:",":pe:",":flag_pa:",":pa:",":flag_om:",":om:",":flag_nz:",":nz:",":flag_nu:",":nu:",":flag_nr:",":nr:",":flag_np:",":np:",":flag_no:",":no:",":flag_nl:",":nl:",":flag_ni:",":ni:",":flag_ng:",":nigeria:",":flag_nf:",":nf:",":flag_ne:",":ne:",":flag_nc:",":nc:",":flag_na:",":na:",":flag_mz:",":mz:",":flag_my:",":my:",":flag_mx:",":mx:",":flag_mw:",":mw:",":flag_mv:",":mv:",":flag_mu:",":mu:",":flag_mt:",":mt:",":flag_ms:",":ms:",":flag_mr:",":mr:",":flag_mq:",":mq:",":flag_mp:",":mp:",":flag_mo:",":mo:",":flag_mn:",":mn:",":flag_mm:",":mm:",":flag_ml:",":ml:",":flag_mk:",":mk:",":flag_mh:",":mh:",":flag_mg:",":mg:",":flag_mf:",":mf:",":flag_me:",":me:",":flag_md:",":md:",":flag_mc:",":mc:",":flag_ma:",":ma:",":flag_ly:",":ly:",":flag_lv:",":lv:",":flag_lu:",":lu:",":flag_lt:",":lt:",":flag_ls:",":ls:",":flag_lr:",":lr:",":flag_lk:",":lk:",":flag_li:",":li:",":flag_lc:",":lc:",":flag_lb:",":lb:",":flag_la:",":la:",":flag_kz:",":kz:",":flag_ky:",":ky:",":flag_kw:",":kw:",":flag_kr:",":kr:",":flag_kp:",":kp:",":flag_kn:",":kn:",":flag_km:",":km:",":flag_ki:",":ki:",":flag_kh:",":kh:",":flag_kg:",":kg:",":flag_ke:",":ke:",":flag_jp:",":jp:",":flag_jo:",":jo:",":flag_jm:",":jm:",":flag_je:",":je:",":flag_it:",":it:",":flag_is:",":is:",":flag_ir:",":ir:",":flag_iq:",":iq:",":flag_io:",":io:",":flag_in:",":in:",":flag_im:",":im:",":flag_il:",":il:",":flag_ie:",":ie:",":flag_id:",":indonesia:",":flag_ic:",":ic:",":flag_hu:",":hu:",":flag_ht:",":ht:",":flag_hr:",":hr:",":flag_hn:",":hn:",":flag_hm:",":hm:",":flag_hk:",":hk:",":flag_gy:",":gy:",":flag_gw:",":gw:",":flag_gu:",":gu:",":flag_gt:",":gt:",":flag_gs:",":gs:",":flag_gr:",":gr:",":flag_gq:",":gq:",":flag_gp:",":gp:",":flag_gn:",":gn:",":flag_gm:",":gm:",":flag_gl:",":gl:",":flag_gi:",":gi:",":flag_gh:",":gh:",":flag_gg:",":gg:",":flag_gf:",":gf:",":flag_ge:",":ge:",":flag_gd:",":gd:",":flag_gb:",":gb:",":flag_ga:",":ga:",":flag_fr:",":fr:",":flag_fo:",":fo:",":flag_fm:",":fm:",":flag_fk:",":fk:",":flag_fj:",":fj:",":flag_fi:",":fi:",":flag_eu:",":eu:",":flag_et:",":et:",":flag_es:",":es:",":flag_er:",":er:",":flag_eh:",":eh:",":flag_eg:",":eg:",":flag_ee:",":ee:",":flag_ec:",":ec:",":flag_ea:",":ea:",":flag_dz:",":dz:",":flag_do:",":do:",":flag_dm:",":dm:",":flag_dk:",":dk:",":flag_dj:",":dj:",":flag_dg:",":dg:",":flag_de:",":de:",":flag_cz:",":cz:",":flag_cy:",":cy:",":flag_cx:",":cx:",":flag_cw:",":cw:",":flag_cv:",":cv:",":flag_cu:",":cu:",":flag_cr:",":cr:",":flag_cp:",":cp:",":flag_co:",":co:",":flag_cn:",":cn:",":flag_cm:",":cm:",":flag_cl:",":chile:",":flag_ck:",":ck:",":flag_ci:",":ci:",":flag_ch:",":ch:",":flag_cg:",":cg:",":flag_cf:",":cf:",":flag_cd:",":congo:",":flag_cc:",":cc:",":flag_ca:",":ca:",":flag_bz:",":bz:",":flag_by:",":by:",":flag_bw:",":bw:",":flag_bv:",":bv:",":flag_bt:",":bt:",":flag_bs:",":bs:",":flag_br:",":br:",":flag_bq:",":bq:",":flag_bo:",":bo:",":flag_bn:",":bn:",":flag_bm:",":bm:",":flag_bl:",":bl:",":flag_bj:",":bj:",":flag_bi:",":bi:",":flag_bh:",":bh:",":flag_bg:",":bg:",":flag_bf:",":bf:",":flag_be:",":be:",":flag_bd:",":bd:",":flag_bb:",":bb:",":flag_ba:",":ba:",":flag_az:",":az:",":flag_ax:",":ax:",":flag_aw:",":aw:",":flag_au:",":au:",":flag_at:",":at:",":flag_as:",":as:",":flag_ar:",":ar:",":flag_aq:",":aq:",":flag_ao:",":ao:",":flag_am:",":am:",":flag_al:",":al:",":flag_ai:",":ai:",":flag_ag:",":ag:",":flag_af:",":af:",":flag_ae:",":ae:",":flag_ad:",":ad:",":flag_ac:",":ac:",":mahjong:",":parking:",":u7121:",":u6307:",":u6708:",":point_up_tone1:",":point_up_tone2:",":point_up_tone3:",":point_up_tone4:",":point_up_tone5:",":v_tone1:",":v_tone2:",":v_tone3:",":v_tone4:",":v_tone5:",":fist_tone1:",":fist_tone2:",":fist_tone3:",":fist_tone4:",":fist_tone5:",":raised_hand_tone1:",":raised_hand_tone2:",":raised_hand_tone3:",":raised_hand_tone4:",":raised_hand_tone5:",":writing_hand_tone1:",":writing_hand_tone2:",":writing_hand_tone3:",":writing_hand_tone4:",":writing_hand_tone5:",":basketball_player_tone1:",":person_with_ball_tone1:",":basketball_player_tone2:",":person_with_ball_tone2:",":basketball_player_tone3:",":person_with_ball_tone3:",":basketball_player_tone4:",":person_with_ball_tone4:",":basketball_player_tone5:",":person_with_ball_tone5:",":copyright:",":registered:",":bangbang:",":interrobang:",":tm:",":information_source:",":left_right_arrow:",":arrow_up_down:",":arrow_upper_left:",":arrow_upper_right:",":arrow_lower_right:",":arrow_lower_left:",":leftwards_arrow_with_hook:",":arrow_right_hook:",":watch:",":hourglass:",":m:",":black_small_square:",":white_small_square:",":arrow_forward:",":arrow_backward:",":white_medium_square:",":black_medium_square:",":white_medium_small_square:",":black_medium_small_square:",":sunny:",":cloud:",":telephone:",":ballot_box_with_check:",":umbrella:",":coffee:",":point_up:",":relaxed:",":aries:",":taurus:",":gemini:",":cancer:",":leo:",":virgo:",":libra:",":scorpius:",":sagittarius:",":capricorn:",":aquarius:",":pisces:",":spades:",":clubs:",":hearts:",":diamonds:",":hotsprings:",":recycle:",":wheelchair:",":anchor:",":warning:",":zap:",":white_circle:",":black_circle:",":soccer:",":baseball:",":snowman:",":partly_sunny:",":no_entry:",":church:",":fountain:",":golf:",":sailboat:",":tent:",":fuelpump:",":scissors:",":airplane:",":envelope:",":v:",":pencil2:",":black_nib:",":heavy_check_mark:",":heavy_multiplication_x:",":eight_spoked_asterisk:",":eight_pointed_black_star:",":snowflake:",":sparkle:",":exclamation:",":heart:",":arrow_right:",":arrow_heading_up:",":arrow_heading_down:",":arrow_left:",":arrow_up:",":arrow_down:",":black_large_square:",":white_large_square:",":star:",":o:",":part_alternation_mark:",":congratulations:",":secret:",":black_joker:",":a:",":b:",":o2:",":ab:",":cl:",":cool:",":free:",":id:",":new:",":ng:",":ok:",":sos:",":up:",":vs:",":koko:",":sa:",":u7981:",":u7a7a:",":u5408:",":u6e80:",":u6709:",":u7533:",":u5272:",":u55b6:",":ideograph_advantage:",":accept:",":cyclone:",":foggy:",":closed_umbrella:",":night_with_stars:",":sunrise_over_mountains:",":sunrise:",":city_dusk:",":city_sunset:",":city_sunrise:",":rainbow:",":bridge_at_night:",":ocean:",":volcano:",":milky_way:",":earth_asia:",":new_moon:",":first_quarter_moon:",":waxing_gibbous_moon:",":full_moon:",":crescent_moon:",":first_quarter_moon_with_face:",":star2:",":stars:",":chestnut:",":seedling:",":palm_tree:",":cactus:",":tulip:",":cherry_blossom:",":rose:",":hibiscus:",":sunflower:",":blossom:",":corn:",":ear_of_rice:",":herb:",":four_leaf_clover:",":maple_leaf:",":fallen_leaf:",":leaves:",":mushroom:",":tomato:",":eggplant:",":grapes:",":melon:",":watermelon:",":tangerine:",":banana:",":pineapple:",":apple:",":green_apple:",":peach:",":cherries:",":strawberry:",":hamburger:",":pizza:",":meat_on_bone:",":poultry_leg:",":rice_cracker:",":rice_ball:",":rice:",":curry:",":ramen:",":spaghetti:",":bread:",":fries:",":sweet_potato:",":dango:",":oden:",":sushi:",":fried_shrimp:",":fish_cake:",":icecream:",":shaved_ice:",":ice_cream:",":doughnut:",":cookie:",":chocolate_bar:",":candy:",":lollipop:",":custard:",":honey_pot:",":cake:",":bento:",":stew:",":egg:",":fork_and_knife:",":tea:",":sake:",":wine_glass:",":cocktail:",":tropical_drink:",":beer:",":beers:",":ribbon:",":gift:",":birthday:",":jack_o_lantern:",":christmas_tree:",":santa:",":fireworks:",":sparkler:",":balloon:",":tada:",":confetti_ball:",":tanabata_tree:",":crossed_flags:",":bamboo:",":dolls:",":flags:",":wind_chime:",":rice_scene:",":school_satchel:",":mortar_board:",":carousel_horse:",":ferris_wheel:",":roller_coaster:",":fishing_pole_and_fish:",":microphone:",":movie_camera:",":cinema:",":headphones:",":art:",":tophat:",":circus_tent:",":ticket:",":clapper:",":performing_arts:",":video_game:",":dart:",":slot_machine:",":8ball:",":game_die:",":bowling:",":flower_playing_cards:",":musical_note:",":notes:",":saxophone:",":guitar:",":musical_keyboard:",":trumpet:",":violin:",":musical_score:",":running_shirt_with_sash:",":tennis:",":ski:",":basketball:",":checkered_flag:",":snowboarder:",":runner:",":surfer:",":trophy:",":football:",":swimmer:",":house:",":house_with_garden:",":office:",":post_office:",":hospital:",":bank:",":atm:",":hotel:",":love_hotel:",":convenience_store:",":school:",":department_store:",":factory:",":izakaya_lantern:",":japanese_castle:",":european_castle:",":snail:",":snake:",":racehorse:",":sheep:",":monkey:",":chicken:",":boar:",":elephant:",":octopus:",":shell:",":bug:",":ant:",":bee:",":beetle:",":fish:",":tropical_fish:",":blowfish:",":turtle:",":hatching_chick:",":baby_chick:",":hatched_chick:",":bird:",":penguin:",":koala:",":poodle:",":camel:",":dolphin:",":mouse:",":cow:",":tiger:",":rabbit:",":cat:",":dragon_face:",":whale:",":horse:",":monkey_face:",":dog:",":pig:",":frog:",":hamster:",":wolf:",":bear:",":panda_face:",":pig_nose:",":feet:",":paw_prints:",":eyes:",":ear:",":nose:",":lips:",":tongue:",":point_up_2:",":point_down:",":point_left:",":point_right:",":punch:",":wave:",":ok_hand:",":thumbsup:",":+1:",":thumbsdown:",":-1:",":clap:",":open_hands:",":crown:",":womans_hat:",":eyeglasses:",":necktie:",":shirt:",":jeans:",":dress:",":kimono:",":bikini:",":womans_clothes:",":purse:",":handbag:",":pouch:",":mans_shoe:",":athletic_shoe:",":high_heel:",":sandal:",":boot:",":footprints:",":bust_in_silhouette:",":boy:",":girl:",":man:",":woman:",":family:",":couple:",":cop:",":dancers:",":bride_with_veil:",":person_with_blond_hair:",":man_with_gua_pi_mao:",":man_with_turban:",":older_man:",":older_woman:",":grandma:",":baby:",":construction_worker:",":princess:",":japanese_ogre:",":japanese_goblin:",":ghost:",":angel:",":alien:",":space_invader:",":imp:",":skull:",":skeleton:",":card_index:",":information_desk_person:",":guardsman:",":dancer:",":lipstick:",":nail_care:",":ledger:",":massage:",":notebook:",":haircut:",":notebook_with_decorative_cover:",":barber:",":closed_book:",":syringe:",":book:",":pill:",":green_book:",":kiss:",":blue_book:",":love_letter:",":orange_book:",":ring:",":books:",":gem:",":name_badge:",":couplekiss:",":scroll:",":bouquet:",":pencil:",":couple_with_heart:",":telephone_receiver:",":wedding:",":pager:",":fax:",":heartbeat:",":satellite:",":loudspeaker:",":broken_heart:",":mega:",":outbox_tray:",":two_hearts:",":inbox_tray:",":package:",":sparkling_heart:",":e-mail:",":email:",":incoming_envelope:",":heartpulse:",":envelope_with_arrow:",":mailbox_closed:",":cupid:",":mailbox:",":postbox:",":blue_heart:",":newspaper:",":iphone:",":green_heart:",":calling:",":vibration_mode:",":yellow_heart:",":mobile_phone_off:",":signal_strength:",":purple_heart:",":camera:",":video_camera:",":gift_heart:",":tv:",":radio:",":revolving_hearts:",":vhs:",":arrows_clockwise:",":heart_decoration:",":loud_sound:",":battery:",":diamond_shape_with_a_dot_inside:",":electric_plug:",":mag:",":bulb:",":mag_right:",":lock_with_ink_pen:",":anger:",":closed_lock_with_key:",":key:",":bomb:",":lock:",":unlock:",":zzz:",":bell:",":bookmark:",":boom:",":link:",":radio_button:",":sweat_drops:",":back:",":end:",":droplet:",":on:",":soon:",":dash:",":top:",":underage:",":poop:",":shit:",":hankey:",":poo:",":ten:",":muscle:",":capital_abcd:",":abcd:",":dizzy:",":1234:",":symbols:",":speech_balloon:",":abc:",":fire:",":flame:",":white_flower:",":flashlight:",":wrench:",":100:",":hammer:",":nut_and_bolt:",":moneybag:",":knife:",":gun:",":currency_exchange:",":crystal_ball:",":heavy_dollar_sign:",":six_pointed_star:",":credit_card:",":beginner:",":trident:",":yen:",":black_square_button:",":white_square_button:",":dollar:",":red_circle:",":large_blue_circle:",":money_with_wings:",":large_orange_diamond:",":large_blue_diamond:",":chart:",":small_orange_diamond:",":small_blue_diamond:",":seat:",":small_red_triangle:",":small_red_triangle_down:",":computer:",":arrow_up_small:",":briefcase:",":arrow_down_small:",":clock1:",":minidisc:",":clock2:",":floppy_disk:",":clock3:",":cd:",":clock4:",":dvd:",":clock5:",":clock6:",":file_folder:",":clock7:",":clock8:",":open_file_folder:",":clock9:",":clock10:",":page_with_curl:",":clock11:",":clock12:",":page_facing_up:",":mount_fuji:",":tokyo_tower:",":date:",":statue_of_liberty:",":japan:",":calendar:",":moyai:",":grin:",":joy:",":smiley:",":chart_with_upwards_trend:",":smile:",":sweat_smile:",":chart_with_downwards_trend:",":laughing:",":satisfied:",":wink:",":bar_chart:",":blush:",":yum:",":clipboard:",":relieved:",":heart_eyes:",":pushpin:",":smirk:",":unamused:",":round_pushpin:",":sweat:",":pensive:",":paperclip:",":confounded:",":kissing_heart:",":straight_ruler:",":kissing_closed_eyes:",":stuck_out_tongue_winking_eye:",":triangular_ruler:",":stuck_out_tongue_closed_eyes:",":disappointed:",":bookmark_tabs:",":angry:",":rage:",":cry:",":persevere:",":triumph:",":disappointed_relieved:",":fearful:",":weary:",":sleepy:",":tired_face:",":sob:",":cold_sweat:",":scream:",":astonished:",":flushed:",":dizzy_face:",":mask:",":smile_cat:",":joy_cat:",":smiley_cat:",":heart_eyes_cat:",":smirk_cat:",":kissing_cat:",":pouting_cat:",":crying_cat_face:",":scream_cat:",":no_good:",":ok_woman:",":bow:",":see_no_evil:",":hear_no_evil:",":speak_no_evil:",":raising_hand:",":raised_hands:",":person_frowning:",":person_with_pouting_face:",":pray:",":rocket:",":railway_car:",":bullettrain_side:",":bullettrain_front:",":metro:",":station:",":bus:",":busstop:",":ambulance:",":fire_engine:",":police_car:",":taxi:",":red_car:",":blue_car:",":truck:",":ship:",":speedboat:",":traffic_light:",":construction:",":rotating_light:",":triangular_flag_on_post:",":door:",":no_entry_sign:",":smoking:",":no_smoking:",":bike:",":walking:",":mens:",":womens:",":restroom:",":baby_symbol:",":toilet:",":wc:",":bath:",":metal:",":sign_of_the_horns:",":grinning:",":innocent:",":smiling_imp:",":sunglasses:",":neutral_face:",":expressionless:",":confused:",":kissing:",":kissing_smiling_eyes:",":stuck_out_tongue:",":worried:",":frowning:",":anguished:",":grimacing:",":open_mouth:",":hushed:",":sleeping:",":no_mouth:",":helicopter:",":steam_locomotive:",":train2:",":light_rail:",":tram:",":oncoming_bus:",":trolleybus:",":minibus:",":oncoming_police_car:",":oncoming_taxi:",":oncoming_automobile:",":articulated_lorry:",":tractor:",":monorail:",":mountain_railway:",":suspension_railway:",":mountain_cableway:",":aerial_tramway:",":rowboat:",":vertical_traffic_light:",":put_litter_in_its_place:",":do_not_litter:",":potable_water:",":non-potable_water:",":no_bicycles:",":bicyclist:",":mountain_bicyclist:",":no_pedestrians:",":children_crossing:",":shower:",":bathtub:",":passport_control:",":customs:",":baggage_claim:",":left_luggage:",":earth_africa:",":earth_americas:",":globe_with_meridians:",":waxing_crescent_moon:",":waning_gibbous_moon:",":last_quarter_moon:",":waning_crescent_moon:",":new_moon_with_face:",":last_quarter_moon_with_face:",":full_moon_with_face:",":sun_with_face:",":evergreen_tree:",":deciduous_tree:",":lemon:",":pear:",":baby_bottle:",":horse_racing:",":rugby_football:",":european_post_office:",":rat:",":mouse2:",":ox:",":water_buffalo:",":cow2:",":tiger2:",":leopard:",":rabbit2:",":cat2:",":dragon:",":crocodile:",":whale2:",":ram:",":goat:",":rooster:",":dog2:",":pig2:",":dromedary_camel:",":busts_in_silhouette:",":two_men_holding_hands:",":two_women_holding_hands:",":thought_balloon:",":euro:",":pound:",":mailbox_with_mail:",":mailbox_with_no_mail:",":postal_horn:",":no_mobile_phones:",":twisted_rightwards_arrows:",":repeat:",":repeat_one:",":arrows_counterclockwise:",":low_brightness:",":high_brightness:",":mute:",":sound:",":no_bell:",":microscope:",":telescope:",":clock130:",":clock230:",":clock330:",":clock430:",":clock530:",":clock630:",":clock730:",":clock830:",":clock930:",":clock1030:",":clock1130:",":clock1230:",":speaker:",":train:",":film_frames:",":tickets:",":admission_tickets:",":medal:",":sports_medal:",":lifter:",":weight_lifter:",":golfer:",":motorcycle:",":racing_motorcycle:",":race_car:",":racing_car:",":military_medal:",":reminder_ribbon:",":hot_pepper:",":cloud_rain:",":cloud_with_rain:",":cloud_snow:",":cloud_with_snow:",":cloud_lightning:",":cloud_with_lightning:",":cloud_tornado:",":cloud_with_tornado:",":fog:",":wind_blowing_face:",":chipmunk:",":spider:",":spider_web:",":thermometer:",":microphone2:",":studio_microphone:",":level_slider:",":control_knobs:",":flag_white:",":waving_white_flag:",":flag_black:",":waving_black_flag:",":rosette:",":label:",":camera_with_flash:",":projector:",":film_projector:",":om_symbol:",":dove:",":dove_of_peace:",":candle:",":clock:",":mantlepiece_clock:",":hole:",":dark_sunglasses:",":joystick:",":paperclips:",":linked_paperclips:",":pen_ballpoint:",":lower_left_ballpoint_pen:",":pen_fountain:",":lower_left_fountain_pen:",":paintbrush:",":lower_left_paintbrush:",":crayon:",":lower_left_crayon:",":desktop:",":desktop_computer:",":printer:",":trackball:",":frame_photo:",":frame_with_picture:",":dividers:",":card_index_dividers:",":card_box:",":card_file_box:",":file_cabinet:",":wastebasket:",":notepad_spiral:",":spiral_note_pad:",":calendar_spiral:",":spiral_calendar_pad:",":compression:",":key2:",":old_key:",":newspaper2:",":rolled_up_newspaper:",":dagger:",":dagger_knife:",":speaking_head:",":speaking_head_in_silhouette:",":anger_right:",":right_anger_bubble:",":ballot_box:",":ballot_box_with_ballot:",":map:",":world_map:",":sleeping_accommodation:",":tools:",":hammer_and_wrench:",":shield:",":oil:",":oil_drum:",":satellite_orbital:",":fork_knife_plate:",":fork_and_knife_with_plate:",":eye:",":levitate:",":man_in_business_suit_levitating:",":spy:",":sleuth_or_spy:",":hand_splayed:",":raised_hand_with_fingers_splayed:",":middle_finger:",":reversed_hand_with_middle_finger_extended:",":vulcan:",":raised_hand_with_part_between_middle_and_ring_fingers:",":slight_frown:",":slightly_frowning_face:",":slight_smile:",":slightly_smiling_face:",":mountain_snow:",":snow_capped_mountain:",":camping:",":beach:",":beach_with_umbrella:",":construction_site:",":building_construction:",":homes:",":house_buildings:",":cityscape:",":house_abandoned:",":derelict_house_building:",":classical_building:",":desert:",":island:",":desert_island:",":park:",":national_park:",":stadium:",":couch:",":couch_and_lamp:",":shopping_bags:",":bellhop:",":bellhop_bell:",":bed:",":motorway:",":railway_track:",":railroad_track:",":motorboat:",":airplane_small:",":small_airplane:",":airplane_departure:",":airplane_arriving:",":cruise_ship:",":passenger_ship:",":tone1:",":tone2:",":tone3:",":tone4:",":tone5:",":white_sun_small_cloud:",":white_sun_with_small_cloud:",":white_sun_cloud:",":white_sun_behind_cloud:",":white_sun_rain_cloud:",":white_sun_behind_cloud_with_rain:",":mouse_three_button:",":three_button_mouse:",":upside_down:",":upside_down_face:",":money_mouth:",":money_mouth_face:",":nerd:",":nerd_face:",":hugging:",":hugging_face:",":rolling_eyes:",":face_with_rolling_eyes:",":thinking:",":thinking_face:",":zipper_mouth:",":zipper_mouth_face:",":thermometer_face:",":face_with_thermometer:",":head_bandage:",":face_with_head_bandage:",":robot:",":robot_face:",":lion_face:",":lion:",":unicorn:",":unicorn_face:",":scorpion:",":crab:",":turkey:",":cheese:",":cheese_wedge:",":hotdog:",":hot_dog:",":taco:",":burrito:",":popcorn:",":champagne:",":bottle_with_popping_cork:",":bow_and_arrow:",":archery:",":amphora:",":place_of_worship:",":worship_symbol:",":kaaba:",":mosque:",":synagogue:",":menorah:",":prayer_beads:",":cricket:",":cricket_bat_ball:",":volleyball:",":field_hockey:",":hockey:",":ping_pong:",":table_tennis:",":badminton:",":fast_forward:",":rewind:",":arrow_double_up:",":arrow_double_down:",":alarm_clock:",":hourglass_flowing_sand:",":ophiuchus:",":white_check_mark:",":fist:",":raised_hand:",":sparkles:",":x:",":negative_squared_cross_mark:",":question:",":grey_question:",":grey_exclamation:",":heavy_plus_sign:",":heavy_minus_sign:",":heavy_division_sign:",":curly_loop:",":wavy_dash:",":loop:",":cross:",":latin_cross:",":keyboard:",":writing_hand:",":track_next:",":next_track:",":track_previous:",":previous_track:",":play_pause:",":stopwatch:",":timer:",":timer_clock:",":pause_button:",":double_vertical_bar:",":stop_button:",":record_button:",":umbrella2:",":snowman2:",":comet:",":shamrock:",":skull_crossbones:",":skull_and_crossbones:",":radioactive:",":radioactive_sign:",":biohazard:",":biohazard_sign:",":orthodox_cross:",":star_and_crescent:",":peace:",":peace_symbol:",":yin_yang:",":wheel_of_dharma:",":frowning2:",":white_frowning_face:",":hammer_pick:",":hammer_and_pick:",":crossed_swords:",":scales:",":alembic:",":gear:",":atom:",":atom_symbol:",":fleur-de-lis:",":coffin:",":urn:",":funeral_urn:",":thunder_cloud_rain:",":thunder_cloud_and_rain:",":pick:",":helmet_with_cross:",":helmet_with_white_cross:",":chains:",":shinto_shrine:",":mountain:",":beach_umbrella:",":umbrella_on_ground:",":ferry:",":skier:",":ice_skate:",":basketball_player:",":person_with_ball:",":star_of_david:",":heart_exclamation:",":heavy_heart_exclamation_mark_ornament:","emoji","tmpShortNames","shortnames","asciiList","<3","</3",":')",":'-)",":D",":-D","=D",":)",":-)","=]","=)",":]","':)","':-)","'=)","':D","':-D","'=D",">:)",">;)",">:-)",">=)",";)",";-)","*-)","*)",";-]",";]",";D",";^)","':(","':-(","'=(",":*",":-*","=*",":^*",">:P","X-P","x-p",">:[",":-(",":(",":-[",":[","=(",">:(",">:-(",":@",":'(",":'-(",";(",";-(",">.<","D:",":$","=$","#-)","#)","%-)","%)","X)","X-)","*\\0/*","\\0/","*\\O/*","\\O/","O:-)","0:-3","0:3","0:-)","0:)","0;^)","O:)","O;-)","O=)","0;-)","O:-3","O:3","B-)","B)","8)","8-)","B-D","8-D","-_-","-__-","-___-",">:\\",">:/",":-/",":-.",":/",":\\","=/","=\\",":L","=L",":P",":-P","=P",":-p",":p","=p",":-Þ",":Þ",":þ",":-þ",":-b",":b","d:",":-O",":O",":-o",":o","O_O",">:O",":-X",":X",":-#",":#","=X","=x",":x",":-x","=#","asciiRegexp","unicodeRegexp","jsEscapeMap","⁉️","™️","ℹ️","↔️","↕️","↖️","↗️","↘️","↙️","⌨","☀️","☁️","☂","☃","☄","☑️","☔️","☕️","☘","☠","☢","☣","☦","☸","☹","♈️","♉️","♐️","♑️","♒️","♓️","♠️","♣️","♥️","♦️","♨️","⚒","⚓️","⚔","⚖","⚗","⚙","✂️","✅","✈️","✉️","✒️","✔️","✖️","✡","✨","✳️","✴️","❄️","❇️","❓","❔","❕","❗️","❣","❤️","➕","➖","➗","⤴️","⤵️","〰","㊗️","㊙️","👩‍❤️‍💋‍👩","👨‍❤️‍💋‍👨","👨‍👨‍👦‍👦","👨‍👨‍👧‍👦","👨‍👨‍👧‍👧","👨‍👩‍👦‍👦","👨‍👩‍👧‍👦","👨‍👩‍👧‍👧","👩‍👩‍👦‍👦","👩‍👩‍👧‍👦","👩‍👩‍👧‍👧","👩‍❤️‍👩","👨‍❤️‍👨","👨‍👨‍👦","👨‍👨‍👧","👨‍👩‍👧","👩‍👩‍👦","👩‍👩‍👧","👁‍🗨","#️⃣","0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣","*️⃣","🤘🏿","🤘🏾","🤘🏽","🤘🏼","🤘🏻","🛀🏿","🛀🏾","🛀🏽","🛀🏼","🛀🏻","🚶🏿","🚶🏾","🚶🏽","🚶🏼","🚶🏻","🚵🏿","🚵🏾","🚵🏽","🚵🏼","🚵🏻","🚴🏿","🚴🏾","🚴🏽","🚴🏼","🚴🏻","🚣🏿","🚣🏾","🚣🏽","🚣🏼","🚣🏻","🙏🏿","🙏🏾","🙏🏽","🙏🏼","🙏🏻","🙎🏿","🙎🏾","🙎🏽","🙎🏼","🙎🏻","🙍🏿","🙍🏾","🙍🏽","🙍🏼","🙍🏻","🙌🏿","🙌🏾","🙌🏽","🙌🏼","🙌🏻","🙋🏿","🙋🏾","🙋🏽","🙋🏼","🙋🏻","🙇🏿","🙇🏾","🙇🏽","🙇🏼","🙇🏻","🙆🏿","🙆🏾","🙆🏽","🙆🏼","🙆🏻","🙅🏿","🙅🏾","🙅🏽","🙅🏼","🙅🏻","🖖🏿","🖖🏾","🖖🏽","🖖🏼","🖖🏻","🖕🏿","🖕🏾","🖕🏽","🖕🏼","🖕🏻","🖐🏿","🖐🏾","🖐🏽","🖐🏼","🖐🏻","🕵🏿","🕵🏾","🕵🏽","🕵🏼","🕵🏻","💪🏿","💪🏾","💪🏽","💪🏼","💪🏻","💇🏿","💇🏾","💇🏽","💇🏼","💇🏻","💆🏿","💆🏾","💆🏽","💆🏼","💆🏻","💅🏿","💅🏾","💅🏽","💅🏼","💅🏻","💃🏿","💃🏾","💃🏽","💃🏼","💃🏻","💂🏿","💂🏾","💂🏽","💂🏼","💂🏻","💁🏿","💁🏾","💁🏽","💁🏼","💁🏻","👼🏿","👼🏾","👼🏽","👼🏼","👼🏻","👸🏿","👸🏾","👸🏽","👸🏼","👸🏻","👷🏿","👷🏾","👷🏽","👷🏼","👷🏻","👶🏿","👶🏾","👶🏽","👶🏼","👶🏻","👵🏿","👵🏾","👵🏽","👵🏼","👵🏻","👴🏿","👴🏾","👴🏽","👴🏼","👴🏻","👳🏿","👳🏾","👳🏽","👳🏼","👳🏻","👲🏿","👲🏾","👲🏽","👲🏼","👲🏻","👱🏿","👱🏾","👱🏽","👱🏼","👱🏻","👰🏿","👰🏾","👰🏽","👰🏼","👰🏻","👮🏿","👮🏾","👮🏽","👮🏼","👮🏻","👩🏿","👩🏾","👩🏽","👩🏼","👩🏻","👨🏿","👨🏾","👨🏽","👨🏼","👨🏻","👧🏿","👧🏾","👧🏽","👧🏼","👧🏻","👦🏿","👦🏾","👦🏽","👦🏼","👦🏻","👐🏿","👐🏾","👐🏽","👐🏼","👐🏻","👏🏿","👏🏾","👏🏽","👏🏼","👏🏻","👎🏿","👎🏾","👎🏽","👎🏼","👎🏻","👍🏿","👍🏾","👍🏽","👍🏼","👍🏻","👌🏿","👌🏾","👌🏽","👌🏼","👌🏻","👋🏿","👋🏾","👋🏽","👋🏼","👋🏻","👊🏿","👊🏾","👊🏽","👊🏼","👊🏻","👉🏿","👉🏾","👉🏽","👉🏼","👉🏻","👈🏿","👈🏾","👈🏽","👈🏼","👈🏻","👇🏿","👇🏾","👇🏽","👇🏼","👇🏻","👆🏿","👆🏾","👆🏽","👆🏼","👆🏻","👃🏿","👃🏾","👃🏽","👃🏼","👃🏻","👂🏿","👂🏾","👂🏽","👂🏼","👂🏻","🏋🏿","🏋🏾","🏋🏽","🏋🏼","🏋🏻","🏊🏿","🏊🏾","🏊🏽","🏊🏼","🏊🏻","🏇🏿","🏇🏾","🏇🏽","🏇🏼","🏇🏻","🏄🏿","🏄🏾","🏄🏽","🏄🏼","🏄🏻","🏃🏿","🏃🏾","🏃🏽","🏃🏼","🏃🏻","🎅🏿","🎅🏾","🎅🏽","🎅🏼","🎅🏻","🇿🇼","🇿🇲","🇿🇦","🇾🇹","🇾🇪","🇽🇰","🇼🇸","🇼🇫","🇻🇺","🇻🇳","🇻🇮","🇻🇬","🇻🇪","🇻🇨","🇻🇦","🇺🇿","🇺🇾","🇺🇸","🇺🇲","🇺🇬","🇺🇦","🇹🇿","🇹🇼","🇹🇻","🇹🇹","🇹🇷","🇹🇴","🇹🇳","🇹🇲","🇹🇱","🇹🇰","🇹🇯","🇹🇭","🇹🇬","🇹🇫","🇹🇩","🇹🇨","🇹🇦","🇸🇿","🇸🇾","🇸🇽","🇸🇻","🇸🇹","🇸🇸","🇸🇷","🇸🇴","🇸🇳","🇸🇲","🇸🇱","🇸🇰","🇸🇯","🇸🇮","🇸🇭","🇸🇬","🇸🇪","🇸🇩","🇸🇨","🇸🇧","🇸🇦","🇷🇼","🇷🇺","🇷🇸","🇷🇴","🇷🇪","🇶🇦","🇵🇾","🇵🇼","🇵🇹","🇵🇸","🇵🇷","🇵🇳","🇵🇲","🇵🇱","🇵🇰","🇵🇭","🇵🇬","🇵🇫","🇵🇪","🇵🇦","🇴🇲","🇳🇿","🇳🇺","🇳🇷","🇳🇵","🇳🇴","🇳🇱","🇳🇮","🇳🇬","🇳🇫","🇳🇪","🇳🇨","🇳🇦","🇲🇿","🇲🇾","🇲🇽","🇲🇼","🇲🇻","🇲🇺","🇲🇹","🇲🇸","🇲🇷","🇲🇶","🇲🇵","🇲🇴","🇲🇳","🇲🇲","🇲🇱","🇲🇰","🇲🇭","🇲🇬","🇲🇫","🇲🇪","🇲🇩","🇲🇨","🇲🇦","🇱🇾","🇱🇻","🇱🇺","🇱🇹","🇱🇸","🇱🇷","🇱🇰","🇱🇮","🇱🇨","🇱🇧","🇱🇦","🇰🇿","🇰🇾","🇰🇼","🇰🇷","🇰🇵","🇰🇳","🇰🇲","🇰🇮","🇰🇭","🇰🇬","🇰🇪","🇯🇵","🇯🇴","🇯🇲","🇯🇪","🇮🇹","🇮🇸","🇮🇷","🇮🇶","🇮🇴","🇮🇳","🇮🇲","🇮🇱","🇮🇪","🇮🇩","🇮🇨","🇭🇺","🇭🇹","🇭🇷","🇭🇳","🇭🇲","🇭🇰","🇬🇾","🇬🇼","🇬🇺","🇬🇹","🇬🇸","🇬🇷","🇬🇶","🇬🇵","🇬🇳","🇬🇲","🇬🇱","🇬🇮","🇬🇭","🇬🇬","🇬🇫","🇬🇪","🇬🇩","🇬🇧","🇬🇦","🇫🇷","🇫🇴","🇫🇲","🇫🇰","🇫🇯","🇫🇮","🇪🇺","🇪🇹","🇪🇸","🇪🇷","🇪🇭","🇪🇬","🇪🇪","🇪🇨","🇪🇦","🇩🇿","🇩🇴","🇩🇲","🇩🇰","🇩🇯","🇩🇬","🇩🇪","🇨🇿","🇨🇾","🇨🇽","🇨🇼","🇨🇻","🇨🇺","🇨🇷","🇨🇵","🇨🇴","🇨🇳","🇨🇲","🇨🇱","🇨🇰","🇨🇮","🇨🇭","🇨🇬","🇨🇫","🇨🇩","🇨🇨","🇨🇦","🇧🇿","🇧🇾","🇧🇼","🇧🇻","🇧🇹","🇧🇸","🇧🇷","🇧🇶","🇧🇴","🇧🇳","🇧🇲","🇧🇱","🇧🇯","🇧🇮","🇧🇭","🇧🇬","🇧🇫","🇧🇪","🇧🇩","🇧🇧","🇧🇦","🇦🇿","🇦🇽","🇦🇼","🇦🇺","🇦🇹","🇦🇸","🇦🇷","🇦🇶","🇦🇴","🇦🇲","🇦🇱","🇦🇮","🇦🇬","🇦🇫","🇦🇪","🇦🇩","🇦🇨","🀄️","🅿️","🈚️","🈯️","🈷️","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","©️","®️","‼️","↩️","↪️","⌚️","⌛️","Ⓜ️","▪️","▫️","▶️","◀️","◻️","◼️","◽️","◾️","☎️","☝️","☺️","♊️","♋️","♌️","♍️","♎️","♏️","♻️","♿️","⚠️","⚡️","⚪️","⚫️","⚽️","⚾️","⛄️","⛅️","⛔️","⛪️","⛲️","⛳️","⛵️","⛺️","⛽️","✌️","✏️","➡️","⬅️","⬆️","⬇️","⬛️","⬜️","⭐️","⭕️","〽️","🃏","🅰","🅱","🅾","🆎","🆑","🆒","🆓","🆔","🆕","🆖","🆗","🆘","🆙","🆚","🈁","🈂","🈲","🈳","🈴","🈵","🈶","🈸","🈹","🈺","🉐","🉑","🌀","🌁","🌂","🌃","🌄","🌅","🌆","🌇","🌈","🌉","🌊","🌋","🌌","🌏","🌑","🌓","🌔","🌕","🌙","🌛","🌟","🌠","🌰","🌱","🌴","🌵","🌷","🌸","🌹","🌺","🌻","🌼","🌽","🌾","🌿","🍀","🍁","🍂","🍃","🍄","🍅","🍆","🍇","🍈","🍉","🍊","🍌","🍍","🍎","🍏","🍑","🍒","🍓","🍔","🍕","🍖","🍗","🍘","🍙","🍚","🍛","🍜","🍝","🍞","🍟","🍠","🍡","🍢","🍣","🍤","🍥","🍦","🍧","🍨","🍩","🍪","🍫","🍬","🍭","🍮","🍯","🍰","🍱","🍲","🍳","🍴","🍵","🍶","🍷","🍸","🍹","🍺","🍻","🎀","🎁","🎂","🎃","🎄","🎅","🎆","🎇","🎈","🎉","🎊","🎋","🎌","🎍","🎎","🎏","🎐","🎑","🎒","🎓","🎠","🎡","🎢","🎣","🎤","🎥","🎦","🎧","🎨","🎩","🎪","🎫","🎬","🎭","🎮","🎯","🎰","🎱","🎲","🎳","🎴","🎵","🎶","🎷","🎸","🎹","🎺","🎻","🎼","🎽","🎾","🎿","🏀","🏁","🏂","🏃","🏄","🏆","🏈","🏊","🏠","🏡","🏢","🏣","🏥","🏦","🏧","🏨","🏩","🏪","🏫","🏬","🏭","🏮","🏯","🏰","🐌","🐍","🐎","🐑","🐒","🐔","🐗","🐘","🐙","🐚","🐛","🐜","🐝","🐞","🐟","🐠","🐡","🐢","🐣","🐤","🐥","🐦","🐧","🐨","🐩","🐫","🐬","🐭","🐮","🐯","🐰","🐱","🐲","🐳","🐴","🐵","🐶","🐷","🐸","🐹","🐺","🐻","🐼","🐽","🐾","👀","👂","👃","👄","👅","👆","👇","👈","👉","👊","👋","👌","👍","👎","👏","👐","👑","👒","👓","👔","👕","👖","👗","👘","👙","👚","👛","👜","👝","👞","👟","👠","👡","👢","👣","👤","👦","👧","👨","👩","👪","👫","👮","👯","👰","👱","👲","👳","👴","👵","👶","👷","👸","👹","👺","👻","👼","👽","👾","👿","💀","📇","💁","💂","💃","💄","💅","📒","💆","📓","💇","📔","💈","📕","💉","📖","💊","📗","💋","📘","💌","📙","💍","📚","💎","📛","💏","📜","💐","📝","💑","📞","💒","📟","📠","💓","📡","📢","💔","📣","📤","💕","📥","📦","💖","📧","📨","💗","📩","📪","💘","📫","📮","💙","📰","📱","💚","📲","📳","💛","📴","📶","💜","📷","📹","💝","📺","📻","💞","📼","🔃","💟","🔊","🔋","💠","🔌","🔍","💡","🔎","🔏","💢","🔐","🔑","💣","🔒","🔓","💤","🔔","🔖","💥","🔗","🔘","💦","🔙","🔚","💧","🔛","🔜","💨","🔝","🔞","💩","🔟","💪","🔠","🔡","💫","🔢","🔣","💬","🔤","🔥","💮","🔦","🔧","💯","🔨","🔩","💰","🔪","🔫","💱","🔮","💲","🔯","💳","🔰","🔱","💴","🔲","🔳","💵","🔴","🔵","💸","🔶","🔷","💹","🔸","🔹","💺","🔺","🔻","💻","🔼","💼","🔽","🕐","💽","🕑","💾","🕒","💿","🕓","📀","🕔","🕕","📁","🕖","🕗","📂","🕘","🕙","📃","🕚","🕛","📄","🗻","🗼","📅","🗽","🗾","📆","🗿","😁","😂","😃","📈","😄","😅","📉","😆","😉","📊","😊","😋","📋","😌","😍","📌","😏","😒","📍","😓","😔","📎","😖","😘","📏","😚","😜","📐","😝","😞","📑","😠","😡","😢","😣","😤","😥","😨","😩","😪","😫","😭","😰","😱","😲","😳","😵","😷","😸","😹","😺","😻","😼","😽","😾","😿","🙀","🙅","🙆","🙇","🙈","🙉","🙊","🙋","🙌","🙍","🙎","🙏","🚀","🚃","🚄","🚅","🚇","🚉","🚌","🚏","🚑","🚒","🚓","🚕","🚗","🚙","🚚","🚢","🚤","🚥","🚧","🚨","🚩","🚪","🚫","🚬","🚭","🚲","🚶","🚹","🚺","🚻","🚼","🚽","🚾","🛀","🤘","😀","😇","😈","😎","😐","😑","😕","😗","😙","😛","😟","😦","😧","😬","😮","😯","😴","😶","🚁","🚂","🚆","🚈","🚊","🚍","🚎","🚐","🚔","🚖","🚘","🚛","🚜","🚝","🚞","🚟","🚠","🚡","🚣","🚦","🚮","🚯","🚰","🚱","🚳","🚴","🚵","🚷","🚸","🚿","🛁","🛂","🛃","🛄","🛅","🌍","🌎","🌐","🌒","🌖","🌗","🌘","🌚","🌜","🌝","🌞","🌲","🌳","🍋","🍐","🍼","🏇","🏉","🏤","🐀","🐁","🐂","🐃","🐄","🐅","🐆","🐇","🐈","🐉","🐊","🐋","🐏","🐐","🐓","🐕","🐖","🐪","👥","👬","👭","💭","💶","💷","📬","📭","📯","📵","🔀","🔁","🔂","🔄","🔅","🔆","🔇","🔉","🔕","🔬","🔭","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","🔈","🚋","🎞","🎟","🏅","🏋","🏌","🏍","🏎","🎖","🎗","🌶","🌧","🌨","🌩","🌪","🌫","🌬","🐿","🕷","🕸","🌡","🎙","🎚","🎛","🏳","🏴","🏵","🏷","📸","📽","🕉","🕊","🕯","🕰","🕳","🕶","🕹","🖇","🖊","🖋","🖌","🖍","🖥","🖨","🖲","🖼","🗂","🗃","🗄","🗑","🗒","🗓","🗜","🗝","🗞","🗡","🗣","🗯","🗳","🗺","🛌","🛠","🛡","🛢","🛰","🍽","👁","🕴","🕵","🖐","🖕","🖖","🙁","🙂","🏔","🏕","🏖","🏗","🏘","🏙","🏚","🏛","🏜","🏝","🏞","🏟","🛋","🛍","🛎","🛏","🛣","🛤","🛥","🛩","🛫","🛬","🛳","🏻","🏼","🏽","🏾","🏿","🌤","🌥","🌦","🖱","🙃","🤑","🤓","🤗","🙄","🤔","🤐","🤒","🤕","🤖","🦁","🦄","🦂","🦀","🦃","🧀","🌭","🌮","🌯","🍿","🍾","🏹","🏺","🛐","🕋","🕌","🕍","🕎","📿","🏏","🏐","🏑","🏒","🏓","🏸","⏩","⏪","⏫","⏬","⏰","⏳","⛎","✊","✋","❌","❎","➰","➿","✝","✍","⏭","⏮","⏯","⏱","⏲","⏸","⏹","⏺","☪","☮","☯","⚛","⚜","⚰","⚱","⛈","⛏","⛑","⛓","⛩","⛰","⛱","⛴","⛷","⛸","⛹","imagePathPNG","imagePathSVG","imagePathSVGSprites","imageType","sprites","unicodeAlt","ascii","cacheBustParam","regShortNames","regAscii","regUnicode","toImage","unicodeToImage","shortnameToImage","unifyUnicode","toShort","shortnameToUnicode","shortnameToAscii","unicode","unicodeToAscii","objectFlip","shortname","convert","entire","m3","unescapeHTML","escapeHTML","mappedUnicode","mapShortToUnicode","unicodeChar","shortcode","replaceAll","part","escaped","unescaped","&amp;","&#38;","&#x26;","&lt;","&#60;","&#x3C;","&gt;","&#62;","&#x3E;","&quot;","&#34;","&#x22;","&apos;","&#39;","&#x27;","new_obj","tmp_obj","escapeRegExp","escapedFind","emojione"],"mappings":"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QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,YAAY,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,kBAAkB,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,iBAAiB,eAAeC,WAAW,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,aAAa,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,eAAe,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,WAAW,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,WAAW,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,aAAa,eAAeC,QAAQ,eAAeC,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,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,MAAqB,QAAQC,MAAqB,QAAQC,MAAqB,QAAQC,MAAqB,QAAQC,MAAqB,QAAQC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,OAAOC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,QACxq+C72Q,GAAG82Q,aAAe,0CAClB92Q,GAAG+2Q,aAAe,0CAClB/2Q,GAAGg3Q,oBAAsB,2CACzBh3Q,GAAGi3Q,UAAY,MACfj3Q,GAAGk3Q,SAAU,EACbl3Q,GAAGm3Q,YAAa,EAChBn3Q,GAAGo3Q,OAAQ,EACXp3Q,GAAGq3Q,eAAiB,WAEpBr3Q,GAAGs3Q,cAAgB,GAAItwO,QAAO,iGAAmGhnC,GAAGmpN,WAAW,IAAK,MACpJnpN,GAAGu3Q,SAAW,GAAIvwO,QAAO,wGAA0GhnC,GAAGmxN,YAAY,oBAAqB,KACvKnxN,GAAGw3Q,WAAa,GAAIxwO,QAAO,iGAAmGhnC,GAAGoxN,cAAc,IAAK,MAEpJpxN,GAAGy3Q,QAAU,SAASvlR,KAGlB,MAFAA,KAAM8N,GAAG03Q,eAAexlR,KACxBA,IAAM8N,GAAG23Q,iBAAiBzlR,MAO9B8N,GAAG43Q,aAAe,SAAS1lR,KAGvB,MAFAA,KAAM8N,GAAG63Q,QAAQ3lR,KACjBA,IAAM8N,GAAG83Q,mBAAmB5lR,MAMhC8N,GAAG+3Q,iBAAmB,SAAS7lR,KAC3B,GAAI8lR,SAIAC,eAAiBj4Q,GAAGk4Q,WAAWl4Q,GAAGopN,UAgBtC,OAdAl3N,KAAMA,IAAIxC,QAAQsQ,GAAGs3Q,cAAe,SAASa,WACzC,MAA0B,mBAAdA,YAA6C,KAAdA,WAAwBA,YAAan4Q,IAAGkpJ,cAK/E8uH,QAAUh4Q,GAAGkpJ,aAAaivH,WAAWn4Q,GAAGkpJ,aAAaivH,WAAW3oR,OAAO,GACjC,mBAA5ByoR,gBAAeD,SACdC,eAAeD,SAEfG,WAPJA,aAgBnBn4Q,GAAG83Q,mBAAqB,SAAS5lR,KAE7B,GAAI8lR,QAyBV,OAxBM9lR,KAAMA,IAAIxC,QAAQsQ,GAAGs3Q,cAAe,SAASa,WACzC,MAA0B,mBAAdA,YAA6C,KAAdA,WAAwBA,YAAan4Q,IAAGkpJ,cAInF8uH,QAAUh4Q,GAAGkpJ,aAAaivH,WAAW,GAAGpvO,cACjC/oC,GAAGo4Q,QAAQJ,UAHPG,YAOXn4Q,GAAGo3Q,QAEHllR,IAAMA,IAAIxC,QAAQsQ,GAAGu3Q,SAAU,SAASc,OAAQvgJ,GAAIC,GAAIugJ,IACpD,MAAmB,mBAAPA,KAA+B,KAAPA,IAAiBt4Q,GAAGu4Q,aAAaD,KAAOt4Q,IAAGopN,WAK/EkvD,GAAKt4Q,GAAGu4Q,aAAaD,IACrBN,QAAUh4Q,GAAGopN,UAAUkvD,IAAIvvO,cACpBgvF,GAAG/3H,GAAGo4Q,QAAQJ,UALVK,UASlBnmR,KAGL8N,GAAG23Q,iBAAmB,SAASzlR,KAE3B,GAAIs8I,aAAYwpI,QAAQznI,GAuExB,OAtEAr+I,KAAMA,IAAIxC,QAAQsQ,GAAGs3Q,cAAe,SAASa,WACzC,MAA0B,mBAAdA,YAA6C,KAAdA,WAAwBA,YAAan4Q,IAAGkpJ,cAK/E8uH,QAAUh4Q,GAAGkpJ,aAAaivH,WAAWn4Q,GAAGkpJ,aAAaivH,WAAW3oR,OAAO,GAGvE+gJ,IAAOvwI,GAAa,WAAIA,GAAGo4Q,QAAQJ,QAAQjvO,eAAiBovO,UAIpD3pI,YAFY,QAAjBxuI,GAAGi3Q,UACCj3Q,GAAGk3Q,QACY,yBAAyBc,QAAQ,YAAYG,UAAU,KAAK5nI,IAAI,UAGhE,8BAA8BA,IAAI,UAAUvwI,GAAG82Q,aAAakB,QAAQ,OAAOh4Q,GAAGq3Q,eAAe,MAK5Gr3Q,GAAGk3Q,QACY,sCAAsC3mI,IAAI,kCAAkCvwI,GAAGg3Q,oBAAoB,UAAUgB,QAAQ,iBAGrH,kCAAkCh4Q,GAAG+2Q,aAAaiB,QAAQ,OAAOh4Q,GAAGq3Q,eAAe,mCAAmC9mI,IAAI,KAAKA,IAAI,aAtBlJ4nI,YA+BXn4Q,GAAGo3Q,QAEHllR,IAAMA,IAAIxC,QAAQsQ,GAAGu3Q,SAAU,SAASc,OAAQvgJ,GAAIC,GAAIugJ,IACpD,MAAmB,mBAAPA,KAA+B,KAAPA,IAAiBt4Q,GAAGu4Q,aAAaD,KAAOt4Q,IAAGopN,WAK/EkvD,GAAKt4Q,GAAGu4Q,aAAaD,IACrBN,QAAUh4Q,GAAGopN,UAAUkvD,IAGvB/nI,IAAOvwI,GAAa,WAAIA,GAAGo4Q,QAAQJ,QAAQjvO,eAAiB/oC,GAAGw4Q,WAAWF,IAIlE9pI,YAFY,QAAjBxuI,GAAGi3Q,UACCj3Q,GAAGk3Q,QACYn/I,GAAG,yBAAyBigJ,QAAQ,YAAYh4Q,GAAGw4Q,WAAWF,IAAI,KAAK/nI,IAAI,UAG3ExY,GAAG,8BAA8BwY,IAAI,UAAUvwI,GAAG82Q,aAAakB,QAAQ,OAAOh4Q,GAAGq3Q,eAAe,MAK/Gr3Q,GAAGk3Q,QACY,sCAAsC3mI,IAAI,kCAAkCvwI,GAAGg3Q,oBAAoB,UAAUgB,QAAQ,iBAGrHjgJ,GAAG,kCAAkC/3H,GAAG+2Q,aAAaiB,QAAQ,OAAOh4Q,GAAGq3Q,eAAe,mCAAmC9mI,IAAI,KAAKA,IAAI,aAvBjJ8nI,UA+BZnmR,KAGX8N,GAAG03Q,eAAiB,SAASxlR,KAEzB,GAAIs8I,aAAYwpI,QAAQznI,GAExB,KAAKvwI,GAAGm3Q,YAAgBn3Q,GAAU,QAE9B,GAAIy4Q,eAAgBz4Q,GAAG04Q,mBAqC3B,OAlCAxmR,KAAMA,IAAIxC,QAAQsQ,GAAGw3Q,WAAY,SAASmB,aACtC,MAA4B,mBAAhBA,cAAiD,KAAhBA,aAA0BA,cAAe34Q,IAAGqxN,aAMrF2mD,QAAUh4Q,GAAGqxN,YAAYsnD,aAGzBpoI,IAAOvwI,GAAa,WAAIA,GAAGo4Q,QAAQJ,QAAQjvO,eAAiB0vO,cAAcT,SAIlExpI,YAFY,QAAjBxuI,GAAGi3Q,UACCj3Q,GAAGk3Q,QACY,yBAAyBc,QAAQ,YAAYS,cAAcT,SAAS,KAAKznI,IAAI,UAG7E,8BAA8BA,IAAI,UAAUvwI,GAAG82Q,aAAakB,QAAQ,OAAOh4Q,GAAGq3Q,eAAe,MAK5Gr3Q,GAAGk3Q,QACY,sCAAsC3mI,IAAI,kCAAkCvwI,GAAGg3Q,oBAAoB,UAAUgB,QAAQ,iBAGrH,8BAA8BznI,IAAI,UAAUvwI,GAAG+2Q,aAAaiB,QAAQ,OAAOh4Q,GAAGq3Q,eAAe,OAvB5GsB,eAoCnB34Q,GAAG63Q,QAAU,SAAS3lR,KAClB,IAAK,GAAI0mR,aAAa54Q,IAAGkpJ,aACrB,GAAKlpJ,GAAGkpJ,aAAaxtJ,eAAek9Q,WACpC,IAAI,GAAIxpR,GAAI,EAAGa,IAAM+P,GAAGkpJ,aAAa0vH,WAAWppR,OAAQJ,EAAIa,IAAKb,IAAI,CACjE,GAAI4oR,SAAUh4Q,GAAGkpJ,aAAa0vH,WAAWxpR,EACzC8C,KAAM8N,GAAG64Q,WAAW3mR,IAAI8N,GAAGo4Q,QAAQJ,QAAQjvO,eAAe6vO,WAGlE,MAAO1mR,MAIX8N,GAAGo4Q,QAAU,SAASJ,SAClB,GAAGA,QAAQroR,QAAQ,MAAO,EAAI,CAG1B,IAAI,GAFAiO,UACAhL,EAAIolR,QAAQ/6Q,MAAM,KACd7N,EAAI,EAAGA,EAAIwD,EAAEpD,OAAQJ,IAAK,CAC9B,GAAI0pR,MAAOnoQ,SAAS/d,EAAExD,GAAI,GAC1B,IAAI0pR,MAAQ,OAAWA,MAAQ,QAAU,CACrC,GAAIhvP,IAAK/0B,KAAKE,OAAO6jR,KAAO,OAAW,MAAS,MAC5C/uP,IAAO+uP,KAAO,OAAW,KAAS,KACtCA,MAAQlpR,OAAOC,aAAai6B,IAAMl6B,OAAOC,aAAak6B,QAGtD+uP,MAAOlpR,OAAOC,aAAaipR,KAE/Bl7Q,OAAMV,KAAK47Q,MAEf,MAAOl7Q,OAAMT,KAAK,IAGlB,GAAIvK,GAAI+d,SAASqnQ,QAAS,GAC1B,IAAIplR,GAAK,OAAWA,GAAK,QAAU,CAC/B,GAAIk3B,IAAK/0B,KAAKE,OAAOrC,EAAI,OAAW,MAAS,MACzCm3B,IAAOn3B,EAAI,OAAW,KAAS,KACnC,OAAQhD,QAAOC,aAAai6B,IAAMl6B,OAAOC,aAAak6B,IAGtD,MAAOn6B,QAAOC,aAAa+C,IAKvCoN,GAAGw4Q,WAAa,SAAU1kQ,QACtB,GAAIilQ,UACApyI,IAAM,QACNC,IAAM,OACNC,IAAM,OACNC,IAAM,SACNC,IAAM,SAGV,OAAOjzH,QAAOpkB,QAAQ,WAAY,SAAUmc,OACxC,MAAOktQ,SAAQltQ,UAGvB7L,GAAGu4Q,aAAe,SAAUzkQ,QACxB,GAAIklQ,YACAC,QAAW,IACXC,QAAW,IACXC,SAAW,IACXC,OAAW,IACXC,QAAW,IACXC,SAAW,IACXC,OAAW,IACXC,QAAW,IACXC,SAAW,IACXC,SAAW,IACXC,QAAW,IACXC,SAAW,IACXC,SAAW,IACXC,QAAW,IACXC,SAAW,IAGf,OAAOjmQ,QAAOpkB,QAAQ,2EAA4E,SAAUmc,OACxG,MAAOmtQ,WAAUntQ,UAGzB7L,GAAG04Q,kBAAoB,WACnB,GAAIsB,WACJ,KAAK,GAAI7B,aAAan4Q,IAAGkpJ,aACrB,GAAKlpJ,GAAGkpJ,aAAaxtJ,eAAey8Q,WACpC,IAAI,GAAI/oR,GAAI,EAAGa,IAAM+P,GAAGkpJ,aAAaivH,WAAW3oR,OAAQJ,EAAIa,IAAKb,IAC7D4qR,QAAQh6Q,GAAGkpJ,aAAaivH,WAAW/oR,IAAM+oR,SAGjD,OAAO6B;EAGXh6Q,GAAGk4Q,WAAa,SAAUzpR,KACtB,GAAI4C,KAAK4oR,UAET,KAAK5oR,MAAO5C,KACJA,IAAIiN,eAAerK,OACnB4oR,QAAQxrR,IAAI4C,MAAQA,IAI5B,OAAO4oR,UAGXj6Q,GAAGk6Q,aAAe,SAASpmQ,QACvB,MAAOA,QAAOpkB,QAAQ,8BAA+B,SAGzDsQ,GAAG64Q,WAAa,SAAS/kQ,OAAQiN,KAAMytH,aACnC,GAAI2rI,aAAcn6Q,GAAGk6Q,aAAan5P,MAC9B1M,OAAS,GAAI2yB,QAAO,iGAAmGmzO,YAAY,IAAK,MAGxIzqR,QAAU,SAAS2oR,OAAQvgJ,IAC3B,MAAwB,mBAAPA,KAA+B,KAAPA,GAAcugJ,OAAS7pI,YAGpE,OAAO16H,QAAOpkB,QAAQ2kB,OAAO3kB,WAGnCnB,KAAK6rR,SAAW7rR,KAAK6rR,cACF,gBAAX92P,UAAqBA,OAAOF,QAAU70B,KAAK6rR","file":"jsxc.dep.min.js"} \ No newline at end of file
+{"version":3,"sources":["jsxc.dep.js"],"names":["callback","root","factory","define","amd","Base64","this","keyStr","obj","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","i","charCodeAt","isNaN","charAt","length","decode","replace","indexOf","String","fromCharCode","SHA1","core_sha1","x","len","j","t","olda","oldb","oldc","oldd","olde","w","Array","a","b","c","d","e","rol","safe_add","sha1_ft","sha1_kt","core_hmac_sha1","key","data","bkey","str2binb","ipad","opad","hash","concat","y","lsw","msw","num","cnt","str","bin","mask","binb2str","binb2b64","binarray","triplet","tab","b64_hmac_sha1","b64_sha1","s","str_hmac_sha1","str_sha1","MD5","bit_rol","str2binl","binl2str","binl2hex","hex_tab","md5_cmn","q","md5_ff","md5_gg","md5_hh","md5_ii","core_md5","hexdigest","stropheUtils","utils","utf16to8","out","addCookies","cookies","cookieName","cookieObj","isObj","cookieValue","expires","domain","path","escape","unescape","value","document","cookie","Function","prototype","bind","func","_slice","slice","_concat","_args","call","arguments","apply","isArray","arg","Object","toString","elt","from","Number","Math","ceil","floor","forEach","thisArg","T","k","TypeError","O","kValue","o","window","Strophe","$build","$iq","$msg","$pres","name","attrs","Builder","VERSION","NS","HTTPBIND","BOSH","CLIENT","AUTH","ROSTER","PROFILE","DISCO_INFO","DISCO_ITEMS","MUC","SASL","STREAM","FRAMING","BIND","SESSION","STANZAS","XHTML_IM","XHTML","tags","attributes","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body","css","validTag","tag","validAttribute","attribute","validCSS","style","Status","ERROR","CONNECTING","CONNFAIL","AUTHENTICATING","AUTHFAIL","CONNECTED","DISCONNECTED","DISCONNECTING","ATTACHED","REDIRECT","CONNTIMEOUT","LogLevel","DEBUG","INFO","WARN","FATAL","ElementType","NORMAL","TEXT","CDATA","FRAGMENT","TIMEOUT","SECONDARY_TIMEOUT","addNamespace","forEachChild","elem","elemName","childNode","childNodes","nodeType","isTagEqual","el","tagName","_xmlGenerator","_makeGenerator","doc","undefined","implementation","createDocument","documentMode","_getIEXmlDom","appendChild","createElement","xmlGenerator","docStrings","ActiveXObject","xmlElement","node","xmlTextNode","attr","setAttribute","hasOwnProperty","xmlescape","text","xmlunescape","createTextNode","xmlHtmlNode","html","DOMParser","parser","parseFromString","async","loadXML","getText","nodeValue","copyElement","nodeName","createHtml","cssAttrs","cssName","cssValue","toLowerCase","getAttribute","cssText","split","push","join","createDocumentFragment","escapeNode","unescapeNode","getNodeFromJid","jid","getDomainFromJid","bare","getBareJidFromJid","parts","splice","getResourceFromJid","_handleError","stack","fatal","sourceURL","handler","line","message","fileName","lineNumber","log","level","msg","debug","info","warn","error","serialize","result","tree","child","_requestId","_connectionPlugins","addConnectionPlugin","ptype","xmlns","nodeTree","up","parentNode","moreattrs","removeAttribute","cnode","impNode","xmlGen","importNode","newElem","h","fragment","innerHTML","xhtml","Handler","ns","type","id","options","matchBareFromJid","ignoreNamespaceFragment","matchBare","user","getNamespace","elNamespace","namespaceMatch","nsMatch","that","isMatch","elem_type","run","TimedHandler","period","lastCalled","Date","getTime","reset","Connection","service","proto","protocol","_proto","Websocket","Bosh","features","_sasl_data","do_session","do_bind","timedHandlers","handlers","removeTimeds","removeHandlers","addTimeds","addHandlers","protocolErrorHandlers","HTTP","websocket","_idleTimeout","_disconnectTimeout","authenticated","connected","disconnecting","do_authentication","paused","restored","_data","_uniqueId","_sasl_success_handler","_sasl_failure_handler","_sasl_challenge_handler","maxRetries","setTimeout","_onIdle","registerSASLMechanisms","mechanisms","F","init","_reset","_requests","pause","resume","getUniqueId","suffix","uuid","r","random","v","addProtocolErrorHandler","status_code","connect","pass","wait","hold","route","authcid","authzid","servtype","connect_callback","_changeConnectStatus","_connect","attach","sid","rid","wind","_attach","restore","_sessionCachingSupported","_restore","JSON","sessionStorage","setItem","removeItem","xmlInput","xmlOutput","rawInput","rawOutput","nextValidRid","send","_queueData","_send","flush","clearTimeout","sendIQ","errback","timeout","timeoutHandler","addHandler","stanza","deleteTimedHandler","iqtype","addTimedHandler","deleteHandler","element","_sendRestart","thand","handRef","hand","SASLAnonymous","SASLExternal","SASLMD5","SASLOAuthBearer","SASLPlain","SASLSHA1","registerSASLMechanism","mechanism","disconnect","reason","pres","_addSysTimedHandler","_onDisconnectTimeout","_disconnect","_abortAllRequests","status","condition","plugin","statusChanged","err","_doDisconnect","_dataRecv","req","raw","_reqToData","strip","pop","_emptyQueue","cond","conflict","getElementsByTagName","newList","_connect_cb","_callback","bodyWrap","conncheck","hasFeatures","getElementsByTagNameNS","_no_auth_received","mech","matched","authenticate","sortMechanismsByPriority","higher","swap","priority","_attemptSASLAuth","mechanism_found","test","_addSysHandler","_sasl_success_cb","_sasl_failure_cb","_sasl_challenge_cb","_sasl_mechanism","onStart","request_auth_exchange","isClientFirst","response","onChallenge","_attemptLegacyAuth","_auth1_cb","to","challenge","iq","_auth2_cb","serverSignature","success","attribMatch","matches","match","onSuccess","streamfeature_handlers","wrapper","_sasl_auth1_cb","_sasl_bind_cb","resource","jidNode","_sasl_session_cb","onFailure","since","now","SASLMechanism","connection","_connection","Error","auth_str","test_cnonce","cnonce","nonce","salt","iter","Hi","U","U_old","clientKey","serverKey","clientSignature","responseText","authMessage","substr","_quote","realm","host","qop","digest_uri","cred","A1","A2","core","Request","sends","xmlData","origFunc","date","NaN","abort","dead","age","timeDead","xhr","_newXHR","getResponse","responseXML","documentElement","XMLHttpRequest","overrideMimeType","onreadystatechange","_conn","errors","inactivity","_buildBody","keepalive","_cacheSession","xml:lang","content","ver","xmpp:version","xmlns:xmpp","_onRequestStateChange","_throttledRequestHandler","session","parse","getItem","stringify","typ","parseInt","_sendTerminate","_callProtocolErrorHandlers","err_callback","reqStatus","_getRequestStatus","_hitError","xmpp:restart","time_elapsed","def","readyState","_removeRequest","reqIs0","reqIs1","_restartRequest","_processRequest","self","primaryTimeout","secondaryTimeout","requestCompletedWithServerError","contentType","open","sync","setRequestHeader","withCredentials","e2","sendFunc","customHeaders","headers","header","backoff","min","pow","abs","new_service","location","pathname","_buildStream","version","_check_streamerror","connectstatus","textContent","errorString","_closeSocket","socket","WebSocket","onopen","_onOpen","onerror","_onError","onclose","_onClose","onmessage","_connect_cb_wrapper","_handleStreamStart","streamStart","see_uri","string","_streamWrap","_onMessage","CLOSED","close","closeString","rawStanza","search","firstChild","start","startString","n_callback","requirejs","require","build","Occupant","RoomConfig","XmppRoom","__bind","fn","me","rooms","roomNames","conn","_muc_handler","room","nick","msg_handler_cb","pres_handler_cb","roster_cb","password","history_attrs","extended_presence","room_nick","_ref","_this","test_append_nick","roomname","xquery","_i","_len","_message_handlers","_presence_handlers","leave","handler_cb","exit_msg","presence","presenceid","html_message","msgid","parent","removeChild","groupchat","invite","receiver","invitation","MUC_USER","directInvite","queryOccupants","success_cb","error_cb","configure","config","MUC_OWNER","cancelConfigure","saveConfiguration","conf","Form","toXML","createInstantRoom","roomiq","setTopic","topic","_modifyPrivilege","item","MUC_ADMIN","modifyRole","role","kick","voice","mute","op","deop","modifyAffiliation","affiliation","ban","member","revoke","owner","admin","changeNick","setStatus","show","listRooms","server","handle_cb","client","_roomRosterHandler","_addOccupant","roster","_roster_handlers","_handler_ids","muc","handler_type","removeHandler","occ","newnick","_parsePresence","update","c2","_j","_len1","_ref1","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","states","code","field","identity","query","_k","_len2","identities","var","label","_identities","_features","_items","_onDiscoInfo","_onDiscoItems","addIdentity","category","lang","addFeature","var_name","removeFeature","addItem","call_back","items","_buildIQResult","query_attrs","iqresult","$","HASH","_ver","_knownCapabilities","localStorage","_jidVerIndex","disco","CAPS","_delegateCapabilities","generateCapsAttrs","generateVer","sort","_sortIdentities","identitiesLen","featuresLen","curIdent","getCapabilitiesByJid","hasFeatureByJid","feature","makeArray","knownCapabilities","querySelector","trigger","_requestCapabilities","_handleDiscoInfoReply","childNodesLen","_attributesToJsObject","jQuery","buildIq","vCardEl","VCARD","get","set","createBookmarksNode","PUBSUB","add","roomJid","alias","autojoin","conferenceAttr","BOOKMARKS","delete","notify","$field","$form","$item","$opt","Field","Item","Option","helper","__slice","__indexOf","l","fill","src","target","klass","f","_results","createHtmlFieldCouple","div","append","toHTML","children","getHtmlFields","find","opt","toJSON","fields","reported","_types","title","instructions","xml","json","form","appendTo","fromXML","instr","fromHTML","addOptions","addOption","addValues","addValue","values","desc","required","_multiTypes","val","vals","multi","opts","txt","_htmlElementToFieldType","trim","fieldset","DATA","addNode","parseFromResult","_notificationReceived","CHATSTATES","addActive","composing","active","sendActive","_sendNotification","sendComposing","sendPaused","notification","n","u","exports","1","module","default","__esModule","core-js/library/fn/object/assign","2","3","placeHoldersCount","b64","byteLength","toByteArray","tmp","placeHolders","arr","Arr","L","revLookup","tripletToBase64","lookup","encodeChunk","uint8","end","fromByteArray","extraBytes","maxChunkLength","len2","Uint8Array","4","5","global","buffer","Buffer","SlowBuffer","MAX_LEN","kMaxLength","alloc","size","encoding","RangeError","enc","_fill","buf","fillBuf","flen","allocUnsafe","encodingOrOffset","ArrayBuffer","offset","isBuffer","copy","allocUnsafeSlow","6","typedArraySupport","__proto__","foo","subarray","TYPED_ARRAY_SUPPORT","createBuffer","fromArrayBuffer","fromString","fromObject","assertSize","checked","isEncoding","actual","write","fromArrayLike","array","byteOffset","isnan","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","read","indexSize","readUInt16BE","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","ret","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","Infinity","leadSurrogate","byteArray","hi","lo","dst","INSPECT_MAX_BYTES","poolSize","_augment","Symbol","species","defineProperty","configurable","_isBuffer","compare","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","base64-js","isarray","7","CipherBase","hashMode","Transform","_finalOrDigest","final","_decoder","_encoding","inherits","StringDecoder","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_","next","_flush","done","_final","fin","stream","string_decoder","8","assign","../../modules/$.core","../../modules/es6.object.assign","9","it","10","11","__e","12","aFunction","./$.a-function","13","14","ctx","PROTOTYPE","$export","source","own","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","C","param","./$.core","./$.ctx","./$.global","15","exec","16","__g","17","cof","propertyIsEnumerable","./$.cof","18","$Object","create","getProto","getPrototypeOf","isEnum","getDesc","getOwnPropertyDescriptor","setDesc","setDescs","defineProperties","getKeys","keys","getNames","getOwnPropertyNames","getSymbols","getOwnPropertySymbols","each","19","toObject","IObject","A","K","$$","$$len","index","./$","./$.fails","./$.iobject","./$.to-object","20","defined","./$.defined","21","./$.export","./$.object-assign","22","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","isError","isFunction","isPrimitive","../../is-buffer/index.js","23","HashNoConstructor","Base","_hash","buffers","Hash","md5","rmd160","sha","digest","alg","./md5","cipher-base","ripemd160","sha.js","24","toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz","25","helpers","./helpers","26","Hmac","blocksize","_alg","_key","createHash","ZEROS","_ipad","_opad","create-hash/browser","27","EventEmitter","_events","_maxListeners","defaultMaxListeners","setMaxListeners","emit","er","args","listeners","context","addListener","listener","newListener","warned","console","trace","on","once","g","removeListener","fired","position","removeAllListeners","listenerCount","evlistener","emitter","28","prop","29","Sender","WildEmitter","chunksize","pacing","file","channel","Receiver","receiveBuffer","received","metadata","util","sliceFile","reader","FileReader","onload","readAsArrayBuffer","receive","binaryType","event","Blob","support","File","wildemitter","30","base","hashes","algo","actualhash","./filetransfer","iana-hashes","31","getUserMedia","cache","constraints","cb","hasConstraints","navigator","userAgent","chromever","maxver","isCef","chrome","webstore","getScreenMediaJSExtensionId","runtime","sendMessage","sourceId","audio","video","mandatory","chromeMediaSource","maxWidth","screen","width","maxHeight","height","maxFrameRate","chromeMediaSourceId","cefGetScreenMedia","optional","googLeakyBucket","googTemporalLayeredScreencast","pending","postMessage","ffver","mozMediaSource","mediaSource","lastTime","currentTime","polly","setInterval","clearInterval","onended","addEventListener","origin","getusermedia","32","haveOpts","defaultOpts","denied","altDenied","notSatisfied","mediaDevices","then","catch","webrtc-adapter","33","logging","browserDetails","extractVersion","disableLog","chromeShim","edgeShim","firefoxShim","safariShim","browser","shimPeerConnection","browserShim","shimGetUserMedia","shimMediaStream","shimSourceObject","shimOnTrack","./chrome/chrome_shim","./edge/edge_shim","./firefox/firefox_shim","./safari/safari_shim","./utils","34","MediaStream","webkitMediaStream","RTCPeerConnection","_ontrack","removeEventListener","_ontrackpoly","te","Event","track","streams","dispatchEvent","getTracks","HTMLMediaElement","_srcObject","URL","revokeObjectURL","createObjectURL","pcConfig","pcConstraints","iceTransportPolicy","iceTransports","pc","webkitRTCPeerConnection","origGetStats","getStats","selector","successCallback","errorCallback","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","names","stat","makeMapStats","stats","legacyStats","map","Map","successCallbackWrapper_","Promise","resolve","reject","generateCertificate","method","nativeMethod","promise","nativeAddIceCandidate","addIceCandidate","RTCIceCandidate","RTCSessionDescription","attachMediaStream","srcObject","reattachMediaStream","../utils.js","./getusermedia","35","constraintsToChrome_","cc","ideal","exact","oldname_","prefix","toUpperCase","oc","mix","advanced","shimConstraints_","face","facingMode","getSupportedConstraints","enumerateDevices","devices","filter","kind","back","deviceId","shimError_","PermissionDeniedError","ConstraintNotSatisfiedError","constraint","constraintName","getUserMedia_","onError","webkitGetUserMedia","getUserMediaPromise_","kinds","MediaStreamTrack","getSources","device","groupId","origGetUserMedia","cs","36","SDPUtils","RTCIceGatherer","_eventTarget","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onnegotiationneeded","ondatachannel","localStreams","remoteStreams","getLocalStreams","getRemoteStreams","localDescription","sdp","remoteDescription","signalingState","iceConnectionState","iceGatheringState","iceOptions","gatherPolicy","iceServers","usingBundle","bundlePolicy","urls","url","transceivers","_localIceCandidatesBuffer","_emitBufferedCandidates","sections","splitSections","candidate","sdpMLineIndex","complete","every","transceiver","iceGatherer","state","addStream","clone","_maybeFireNegotiationNeeded","removeStream","idx","getSenders","rtpSender","getReceivers","rtpReceiver","_getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","codecs","headerExtensions","fecMechanisms","lCodec","rCodec","clockRate","numChannels","lHeaderExtension","rHeaderExtension","uri","_createIceAndDtlsTransports","mid","iceTransport","RTCIceTransport","onlocalcandidate","evt","sdpMid","cand","component","writeCandidate","onicestatechange","_updateConnectionState","dtlsTransport","RTCDtlsTransport","ondtlsstatechange","_transceive","recv","params","encodings","sendEncodingParameters","rtcp","cname","localCName","recvEncodingParameters","ssrc","setLocalDescription","description","sessionpart","_pendingOffer","shift","mediaSection","caps","parseRtpParameters","isIceLite","matchPrefix","rejected","remoteIceParameters","getIceParameters","cands","parseCandidate","setRemoteCandidates","remoteDtlsParameters","getDtlsParameters","_updateSignalingState","hasCallback","setRemoteDescription","receiverList","lines","splitLines","mline","direction","getDirection","parseRtpEncodingParameters","generateIdentifier","remoteSsrc","parseSsrcMedia","isComplete","addTrack","transports","RTCRtpReceiver","getCapabilities","localtrack","RTCRtpSender","trackEvent","stop","newState","new","closed","connecting","checking","completed","failed","disconnected","createOffer","offerOptions","tracks","numAudioTracks","numVideoTracks","getAudioTracks","getVideoTracks","offerToReceiveAudio","offerToReceiveVideo","wantReceive","writeSessionBoilerplate","writeMediaSection","createAnswer","addRemoteCandidate","mLineIndex","port","promises","results","all","../utils","37","38","mozSrcObject","mozRTCPeerConnection","newIceServers","newServer","username","credential","mozRTCSessionDescription","mozRTCIceCandidate","nativeGetStats","onSucc","onErr","39","SecurityError","The operation is insecure.","constraintsToFF37_","mozGetUserMedia","infos","orgEnumerateDevices","40","41","logDisabled_","bool","uastring","expr","detectBrowser","minVersion","42","createHmac","getHashes","mapping","md2","sha-1","sha-224","sha-256","sha-384","sha-512","available","algorithm","./lib/get-hashes","create-hash","create-hmac","43","44","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","45","ctor","superCtor","super_","constructor","enumerable","writable","TempCtor","46","intersect","big","temp","47","isSlowBuffer","48","49","FileTransferSession","BaseSession","useJingle","onIceCandidate","onIceStateChange","onChannelAdded","sender","extend","FileTransfer","isInitiator","sent","_log","meta","contents","transport","application","applicationType","offer","sendChannel","createDataChannel","OfferToReceiveAudio","OfferToReceiveVideo","jingle","lastModifiedDate","accept","answer","silent","maybeReceivedFile","receivedFile","connectionState","onSessionInitiate","changes","handleOffer","onSessionAccept","handleAnswer","onSessionTerminate","onDescriptionInfo","onTransportInfo","processIce","extend-object","filetransfer/hashed","jingle-session","rtcpeerconnection","50","filterContentSources","payloads","mux","sources","parameters","sourceGroups","group","filterUnusedLabels","parameter","MediaSession","onIceEndOfCandidates","onAddStream","onRemoveStream","onAddChannel","_ringing","ringing","mediaType","media","senders","ring","creator","unmute","renegotiate","groups","addStream2","removeStream2","switchStream","oldStream","newStream","signalEndOfCandidates","lastCandidate","endOfCandidates","transportType","gatheringComplete","onSessionInfo","onSourceAdd","newDesc","ssrcs","newContent","newContentDesc","newSSRCs","newGroups","onSourceRemove","semantics","same","51","JingleSession","v4","peer","peerID","full","initiator","pendingApplicationTypes","applicationTypes","pendingAction","processingQueue","queue","task","ended","action","ACTIONS","content-accept","content-add","content-modify","content-reject","content-remove","description-info","security-info","session-accept","session-info","session-initiate","session-terminate","transport-accept","transport-info","transport-reject","transport-replace","source-add","source-remove","_sessionState","prev","_connectionState","starting","interrupted","requirePending","session-inititate","process","cancel","decline","kill","okKeys","responder","unknownPayload","jingleCondition","onContentAdd","onTransportReplace","52","noop","toBool","notId","only_once","_once","_isArrayLike","_isArray","_arrayEach","iterator","_map","_range","count","_reduce","memo","_forEachOf","object","_keys","_indexOf","_keyIterator","coll","_restParam","startIndex","rest","_withoutIndex","_eachOfLimit","nextKey","running","errored","replenish","doParallel","eachOf","doParallelLimit","doSeries","eachOfSeries","_asyncMap","eachfn","_filter","_reject","_createTester","check","getResult","iteratee","_findGetResult","_parallel","tasks","_queue","worker","concurrency","payload","_insert","started","idle","setImmediate","drain","unshift","saturated","_next","workers","removed","workersList","empty","resumeCount","_console_fn","_times","mapper","_applyEach","fns","go","ensureAsync","innerArgs","previous_async","noConflict","_isObject","_setImmediate","_delay","nextTick","forEachSeries","eachSeries","forEachLimit","eachLimit","forEachOf","forEachOfSeries","iterate","forEachOfLimit","eachOfLimit","mapSeries","mapLimit","inject","foldl","reduce","foldr","reduceRight","reversed","reverse","transform","select","selectLimit","filterLimit","selectSeries","filterSeries","rejectLimit","rejectSeries","any","some","someLimit","everyLimit","detect","detectSeries","detectLimit","sortBy","comparator","left","right","criteria","auto","taskComplete","remainingTasks","runningTasks","hasError","ready","requires","taskCallback","dep","safeResults","rkey","retry","times","parseTimes","acc","DEFAULT_TIMES","interval","DEFAULT_INTERVAL","wrappedTask","wrappedCallback","wrappedResults","retryAttempt","finalAttempt","seriesCallback","retryInterval","attempts","series","waterfall","wrapIterator","parallel","parallelLimit","makeCallback","callArgs","concatSeries","whilst","doWhilst","calls","until","doUntil","during","truth","doDuring","priorityQueue","_compareTasks","_binarySearch","sequence","beg","cargo","memoize","hasher","queues","has","memoized","unmemoized","unmemoize","timesSeries","timesLimit","seq","newargs","nextargs","compose","applyEach","applyEachSeries","forever","constant","wrapSync","asyncify","_process","53","SessionManager","selfID","sessions","peers","prepareSession","FileSession","performTieBreak","sess","matching","screenSharingSupport","webrtc","screenSharing","capabilities","peerConnectionConfig","peerConnectionConstraints","DtlsSrtpKeyAgreement","RtpDataChannels","addICEServer","addSession","extraData","extraData2","createMediaSession","createFileTransferSession","endPeerSessions","endAllSessions","_createIncomingSession","_sendError","isTieBreak","transportTypes","jingle-filetransfer-session","jingle-media-session","webrtcsupport","54","_interopRequireDefault","_shortcuts","_shortcuts2","_types2","JXT","use","./shortcuts","./types","55","_xmppConstants","Namespace","SERVER","COMPONENT","extendMessage","JXTClass","multiName","withMessage","Message","extendPresence","_this2","withPresence","Presence","extendIQ","_this3","withIQ","IQ","extendStreamFeatures","_this4","withStreamFeatures","StreamFeatures","extendPubsubItem","_this5","withPubsubItem","PubsubItem","withDefinition","withStanzaError","withDataForm","DATAFORM","PUBSUB_EVENT","getMessage","getDefinition","getPresence","getIQ","getStreamError","getIq","withIq","xmpp-constants","56","_xmppJid","Utils","jidAttribute","prepped","JID","jidSub","getSubText","setSubText","tzoSub","defaultVal","hrs","sign","formatted","xmpp-jid","57","Address","namespace","ADDRESS","delivered","boolAttribute","Addresses","subMultiExtension","58","_lodashForeach","_lodashForeach2","Avatar","AVATAR_METADATA","avatars","_avatars","findOrCreate","avatar","textSub","AVATAR_DATA","babel-runtime/helpers/interop-require-default","lodash.foreach","59","Bind","60","jidList","BLOCKING","Block","jids","Unblock","BlockList","61","BOB","cid","maxAge","numberAttribute","62","Conference","autoJoin","Bookmarks","PRIVATE","PrivateStorage","63","prefixes","xmpp","BOSH_XMPP","ack","authid","charsets","maxpause","newKey","polling","resport","requests","time","langAttribute","restart","restartLogic","types","64","Sent","eventName","CARBONS_2","Received","Private","Enable","Disable","FORWARD_0","Forwarded","65","CONDITIONS","Command","ADHOC_COMMANDS","sessionid","execute","subAttribute","actions","actionSet","existing","Note","StanzaError","enumSub","DataForm","66","CSIFeature","CSI","topLevel","67","SINGLE_FIELDS","_type","boolSub","getMultiSubText","truthy","setMultiSubText","Media","DATAFORM_MEDIA","MediaURI","Validation","DATAFORM_VALIDATION","dataType","basic","regex","Range","ListRange","layoutContents","namespaceURI","DATAFORM_LAYOUT","localName","section","Section","sectionXML","Page","reportedFields","fieldTypes","multiTextSub","68","DelayedDelivery","DELAY","stamp","dateAttribute","69","DiscoCaps","DiscoInfo","multiSubAttribute","DiscoIdentity","DiscoItems","DiscoItem","RSM","70","STANZA_ERROR","gone","redirect","by","$text","getSubLangText","setSubLangText","71","Services","DISCO_EXTERNAL_1","Credentials","Service","72","FT_NS","FILE_TRANSFER_4","numberSub","dateSub","infoType","Checksum","HASHES_1","JINGLE_1","Content","Jingle","73","FILE_TRANSFER_3","Thumbnail","THUMBS_0","mimeType","subExtension","request","74","Delayed","75","seeOtherURI","76","GeoLoc","GEOLOC","accuracy","altitude","area","heading","bearing","building","country","countrycode","datum","latitude","locality","longitude","postalcode","region","speed","street","tzo","77","78","Hat","HATS_0","displayName","79","NS_IBB","NS_JIBB","IBB","blockSize","setText","_open","_close","JingleIBB","80","ICE","JINGLE_ICE_UDP_1","pwd","ufrag","RemoteCandidate","ip","Candidate","foundation","generation","network","relAddr","relPort","tcpType","Fingerprint","JINGLE_DTLS_0","setup","SctpMap","DTLS_SCTP_1","number","81","_addresses","_addresses2","_avatar","_avatar2","_bind","_bind2","_blocking","_blocking2","_bob","_bob2","_bookmarks","_bookmarks2","_bosh","_bosh2","_carbons","_carbons2","_command","_command2","_csi","_csi2","_dataforms","_dataforms2","_delayed","_delayed2","_disco","_disco2","_error","_error2","_extdisco","_extdisco2","_file","_file2","_file3","_file32","_forwarded","_forwarded2","_framing","_framing2","_geoloc","_geoloc2","_hash2","_hats","_hats2","_iceUdp","_iceUdp2","_ibb","_ibb2","_iq","_iq2","_jidprep","_jidprep2","_jingle","_jingle2","_json","_json2","_logging","_logging2","_mam","_mam2","_message","_message2","_mood","_mood2","_muc","_muc2","_nick","_nick2","_oob","_oob2","_ping","_ping2","_presence","_presence2","_private","_private2","_psa","_psa2","_pubsub","_pubsub2","_pubsubError","_pubsubError2","_pubsubEvents","_pubsubEvents2","_pubsubOwner","_pubsubOwner2","_push","_push2","_reach","_reach2","_register","_register2","_roster","_roster2","_rsm","_rsm2","_rtp","_rtp2","_rtt","_rtt2","_sasl","_sasl2","_session","_session2","_shim","_shim2","_sm","_sm2","_stream","_stream2","_streamError","_streamError2","_streamFeatures","_streamFeatures2","_time","_time2","_tune","_tune2","_vcard","_vcard2","_version","_version2","_visibility","_visibility2","./addresses","./avatar","./bind","./blocking","./bob","./bookmarks","./bosh","./carbons","./command","./csi","./dataforms","./delayed","./disco","./error","./extdisco","./file","./file3","./forwarded","./framing","./geoloc","./hash","./hats","./ibb","./iceUdp","./iq","./jidprep","./jingle","./json","./logging","./mam","./message","./mood","./muc","./nick","./oob","./ping","./presence","./private","./psa","./pubsub","./pubsubError","./pubsubEvents","./pubsubOwner","./push","./reach","./register","./roster","./rsm","./rtp","./rtt","./sasl","./session","./shim","./sm","./stream","./streamError","./streamFeatures","./time","./tune","./vcard","./version","./visibility","82","_Object$assign","internals","defineIQ","_toJSON","resultReply","errorReply","babel-runtime/core-js/object/assign","83","JID_PREP_0","84","REASONS","tagged","Info","_name","_extensions","disposition","Description","Transport","security","Security","securityType","Reason","alternativeSession","JINGLE_ERRORS_1","85","JSONExtension","JSON_0","86","Log","EVENTLOG","subject","facility","stackTrace","Tag","87","MAMQuery","MAM_0","queryid","Result","Fin","stable","Prefs","defaultCondition","always","container","never","88","defineMessage","thread","parentThread","$body","bodies","attention","ATTENTION_0","chatState","CHAT_STATES","CORRECTION_0","requestReceipt","RECEIPTS","receipt","89","MOODS","Mood","MOOD","90","proxy","UserItem","UserActor","Destroyed","Invite","continue","Decline","AdminItem","AdminActor","Destroy","actor","codes","MUCAdmin","MUCOwner","MUCJoin","history","hist","maxchars","maxstanzas","seconds","toISOString","DirectInvite","MUC_DIRECT_INVITE","MUC_UNIQUE","91","NICK","92","OOB","93","Ping","PING","94","definePresence","$status","statuses","idleSince","dateSubAttribute","IDLE_1","decloak","DECLOAK_0","avatarId","VCARD_TEMP_UPDATE","setBoolSub","95","96","PSA","97","Pubsub","getSubAttribute","getBoolSub","setSubAttribute","publishOptions","Configure","Subscribe","Subscription","subid","configurationRequired","Subscriptions","Affiliation","Affiliations","SubscriptionOptions","Unsubscribe","Publish","Retract","Retrieve","98","PUBSUB_ERRORS","pubsubCondition","99","EventPurge","EventDelete","EventSubscription","expiry","EventConfiguration","EventItems","retracted","EventItem","publisher","100","PubsubOwner","PUBSUB_OWNER","purge","del","101","PUSH_0","Notification","102","ReachURI","REACH_0","$desc","descs","reachability","reach","addrs","addr","103","Register","REGISTER","registered","remove","first","last","email","address","city","zip","phone","misc","104","Roster","force","RosterItem","subscription","subscriptionRequested","ask","preApproved","105","after","before","firstIndex","106","Feedback","JINGLE_RTP_RTCP_FB_0","subtype","fb","JINGLE_RTP_1","Bandwidth","bandwidth","RTP","encryption","Crypto","setBoolSubAttribute","feedback","JINGLE_RTP_HDREXT_0","hdr","PayloadType","channels","clockrate","maxptime","ptime","cipherSuite","keyParams","sessionParams","ContentGroup","JINGLE_GROUPING_0","SourceGroup","JINGLE_RTP_SSMA_0","Source","Mute","JINGLE_RTP_INFO_1","Unmute","107","TYPE_MAP","insert","erase","ACTION_MAP","RTT","RTT_0","108","Mechanisms","_lang","109","Session","110","SHIM","headerSet","111","SMFeature","SMACKS_3","previd","112","113","STREAM_ERROR","seeOtherHost","114","RosterVerFeature","ROSTER_VERSIONING","SubscriptionPreApprovalFeature","SUBSCRIPTION_PREAPPROVAL","115","EntityTime","TIME","utc","116","Tune","TUNE","artist","rating","117","VCardTemp","VCARD_TEMP","website","fullName","birthday","nicknames","Email","home","work","preferred","PhoneNumber","mobile","street2","postalCode","pobox","Organization","unit","Name","family","given","middle","Photo","118","Version","os","119","INVISIBLE_0","120","_LOOKUP","_LOOKUP_EXT","_TAGS","_CB_DEFINITION","_CB_TAG","_ID","stanzaConstructor","getExtensions","withTag","ParentJXT","ChildJXT","hideSingle","parentName","_NS","_EL","qName","extension","multiExtension","fieldName","Stanza","fieldNames","createRegistry","globalJXT","getGlobalJXT","./lib/helpers","./lib/stanza","./lib/types","lodash.assign","121","ltx","DOMElement","XML_NS","Element","parentNS","created","getAttributeNS","setAttributeNS","removeAttributeNS","getBoolAttribute","setBoolAttribute","subs","getBoolSubAttribute","getTextSub","setTextSub","extractor","builder","getMultiSubAttribute","setMultiSubAttribute","defaultLang","langs","ltx/lib/DOMElement","122","EXCLUDE","_PREFIXES","_isJXT","_eventname","allowedName","isExtensionName","nval","123","getter","setter","boolSubAttribute","getSubBoolAttribute","setSubBoolAttribute","subText","multiSubText","langTextSub","subLangText","b64Text","isFloat","parseFloat","attributeNS","enumValues","enumVal","exists","alreadyExists","elements","124","arrayEach","125","baseAssign","baseCopy","lodash._basecopy","lodash.keys","126","props","127","baseForOwn","baseFor","baseProperty","createBaseEach","eachFunc","fromRight","collection","getLength","isLength","iterable","createBaseFor","keysFunc","MAX_SAFE_INTEGER","baseEach","128","bindCallback","argCount","accumulator","other","129","createAssigner","assigner","restParam","customizer","guard","isIterateeCall","lodash._bindcallback","lodash._isiterateecall","lodash.restparam","130","isObjectLike","getNative","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","RegExp","131","isArrayLike","isIndex","reIsUint","132","assignWith","lodash._baseassign","lodash._createassigner","133","addMapEntry","pair","addSetEntry","arrayPush","arrayReduce","initAccum","baseTimes","getValue","isHostObject","mapToArray","overArg","setToArray","entries","clear","entry","hashClear","__data__","nativeCreate","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","arrayLikeKeys","inherited","isArguments","skipIndexes","assignValue","objValue","eq","copyObject","baseClone","isDeep","isFull","isArr","initCloneArray","copyArray","getTag","isFunc","genTag","cloneBuffer","objectTag","argsTag","initCloneObject","copySymbols","cloneableTags","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","objectCreate","baseGetAllKeys","symbolsFunc","baseGetTag","baseIsNative","isMasked","pattern","toSource","baseKeys","isPrototype","nativeKeys","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","regexp","reFlags","cloneSet","cloneSymbol","symbol","symbolValueOf","cloneTypedArray","typedArray","newValue","isKeyable","getPrototype","Ctor","arrayBufferTag","boolTag","dateTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","numberTag","stringTag","regexpTag","setTag","symbolTag","maskSrcKey","funcToString","cloneDeep","isArrayLikeObject","stubArray","stubFalse","arrayTag","errorTag","promiseTag","weakMapTag","reRegExpChar","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","arrayProto","funcProto","coreJsData","uid","IE_PROTO","nativeGetSymbols","nativeIsBuffer","DataView","Set","WeakMap","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","valueOf","ctorString","134","createForEach","arrayFunc","lodash._arrayeach","lodash._baseeach","lodash.isarray","135","136","nativeIsArray","137","shimKeys","keysIn","propsLength","allowIndexes","isProto","lodash._getnative","lodash.isarguments","138","FUNC_ERROR_TEXT","nativeMax","otherArgs","139","Parser","equal","tagString","is","nameEqual","attrsEqual","childrenEqual","isNode","isElement","isText","escapeXML","unescapeXML","escapeXMLText","unescapeXMLText","./lib/Element","./lib/Parser","./lib/createElement","./lib/equal","./lib/escape","./lib/is","./lib/parse","./lib/tag","./lib/tagString","140","_getElement","getName","getNS","getChildren","getAttr","nss","getXmlns","./Element","141","setAttrs","equality","findNS","namespaces","getChild","getChildByAttr","recursive","getChildrenByAttr","getChildrenByFilter","getChildText","getChildElements","_addChildren","writer","nameEquals","attrsEquals","childrenEquals","./clone","./equal","./escape","142","LtxParser","ParserInterface","DefaultParser","ElementInterface","DefaultElement","./parsers/ltx","events","143","144","145","146","escapeXMLReplace","escapeXMLTable","unescapeXMLReplace","unescapeXMLTable","&","<",">","\"","'","&amp;","&#38;","&lt;","&#60;","&gt;","&#62;","&quot;","&#34;","&apos;","&#39;","147","148","./Parser","149","STATE_TEXT","STATE_IGNORE_TAG","STATE_TAG_NAME","STATE_TAG","STATE_ATTR_NAME","STATE_ATTR_EQ","STATE_ATTR_QUOT","STATE_ATTR_VALUE","SaxLtx","remainder","endTag","selfClosing","attrQuote","attrName","recordStart","_handleTagOpening","endRecording","recorded","../escape","150","./parse","./tagString","151","literals","152","arg1","arg2","arg3","153","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","env","argv","versions","off","binding","cwd","chdir","umask","154","mapDomain","regexSeparators","labels","encoded","ucs2decode","extra","counter","ucs2encode","stringFromCharCode","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","damp","baseMinusTMin","tMax","skew","oldi","baseMinusT","inputLength","initialN","bias","initialBias","delimiter","maxInt","tMin","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","punycode","overflow","not-basic","invalid-input","ucs2","155","./lib/_stream_duplex.js","156","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","processNextTick","onEndNT","objectKeys","./_stream_readable","./_stream_writable","core-util-is","process-nextick-args","157","PassThrough","chunk","./_stream_transform","158","prependListener","ReadableState","objectMode","readableObjectMode","hwm","highWaterMark","defaultHwm","BufferList","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","ranOut","awaitDrain","readingMore","decoder","_readableState","_read","Stream","readableAddChunk","addToFront","chunkInvalid","onEofChunk","_e","skipAdd","emitReadable","maybeReadMore","needMoreData","computeNewHighWaterMark","MAX_HWM","howMuchToRead","head","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EElistenerCount","nReadingNextTick","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","tail","bufferShim","endReadable","endReadableNT","xs","debugUtil","debuglog","isPaused","setEncoding","nOrig","doRead","pipe","dest","pipeOpts","onunpipe","cleanup","onfinish","ondrain","ondata","cleanedUp","needDrain","increasedAwaitDrain","unpipe","doEnd","stdout","stderr","endFn","dests","ev","wrap","_fromList","./_stream_duplex","./internal/streams/BufferList","buffer-shims","string_decoder/","159","TransformState","afterTransform","needTransform","transforming","writecb","writechunk","writeencoding","ts","_transformState","rs","ws","_write","160","nop","WriteReq","WritableState","writableObjectMode","ending","finished","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","CorkedRequest","writev","_writev","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","doWrite","onwriteError","onwriteStateUpdate","needFinish","clearBuffer","asyncWrite","afterWrite","onwriteDrain","finishMaybe","holder","finish","prefinish","need","endWritable","internalUtil","deprecate","getBuffer","current","cork","uncork","setDefaultEncoding","util-deprecate","161","162","./lib/_stream_passthrough.js","163","READABLE_STREAM","./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js","164","165","166","bytesToWords","words","wordsToBytes","processBlock","H","M","offset_i","M_offset_i","al","bl","cl","dl","ar","cr","dr","zl","f1","hl","f2","f3","f4","f5","rotl","sl","zr","hr","sr","z","nBitsLeft","nBitsTotal","H_i","digestbytes","167","PeerConnection","detectedBrowser","adapter","enableChromeNativeSimulcast","appVersion","enableMultiStreamHacks","restrictBandwidth","andyetRestrictBandwidth","batchIceCandidates","andyetBatchIce","batchedIceCandidates","andyetFasterICE","eliminateDuplicateCandidates","andyetDontSignalCandidates","dontSignalCandidates","assumeSetLocalSuccess","andyetAssumeSetLocalSuccess","wtFirefox","andyetFirefoxMakesMeSad","firefoxcandidatebuffer","Peerconn","_onIce","_onDataChannel","sdpSessionID","iceCredentials","local","remote","logger","hadLocalStunCandidate","hadRemoteStunCandidate","hadLocalRelayCandidate","hadRemoteRelayCandidate","hadLocalIPv6Candidate","hadRemoteIPv6Candidate","_remoteDataChannels","_localDataChannels","_candidateBuffer","SJJ","_role","localStream","_checkLocalCandidate","toCandidateJSON","_checkRemoteCandidate","contentNames","candidates","remoteContent","processCandidates","iceCandidate","toCandidateSDP","toSessionSDP","mediaConstraints","expandedOffer","toSessionJSON","googConferenceFlag","hasBw","answerAudioOnly","_answer","answerBroadcastOnly","sim","hasSim","newssrc","rtxssrc","expandedAnswer","ice","expandedCandidate","already","rtcpMuxPolicy","newCand","lodash.clonedeep","sdp-jingle-json","traceablepeerconnection","168","toSDP","toIncomingSDPOffer","toOutgoingSDPOffer","toIncomingSDPAnswer","toOutgoingSDPAnswer","toIncomingMediaSDPOffer","toMediaSDP","toOutgoingMediaSDPOffer","toIncomingMediaSDPAnswer","toOutgoingMediaSDPAnswer","toIncomingJSONOffer","creators","toOutgoingJSONOffer","toIncomingJSONAnswer","toOutgoingJSONAnswer","toIncomingMediaJSONOffer","toMediaJSON","toOutgoingMediaJSONOffer","toIncomingMediaJSONAnswer","toOutgoingMediaJSONAnswer","./lib/tojson","./lib/tosdp","169","findLine","mediaLines","sessionLines","prefixLength","findLines","formats","rtpmap","sctpmap","fmtp","kv","crypto","fingerprint","extmap","idpart","sp","rtcpfb","substring","msid","mslabel","170","incoming","both","none","recvonly","sendonly","sendrecv","inactive","outgoing","171","SENDERS","parsers","idCounter","_setIdCounter","groupLines","fingerprints","sctp","trans","rtpmapLines","fmtpLines","fbLines","cryptoLines","extLines","ssrcGroupLines","ssrcLines","msidLine","fingerprintLines","fp","ufragLine","pwdLine","candidateLines","sctpmapLines","./parsers","./senders","172","hasSources","pushedSetup","hdrExts","ssrcGroups","ssrcGroup","173","blob","part","relatedAddress","relatedPort","parseRtpMap","payloadType","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","writeExtmap","headerExtension","preferredId","parseFmtp","writeFmtp","parseRtcpFb","writeRtcpFb","rtcpFeedback","colon","fpLine","dtlsParameters","writeDtlsParameters","setupType","iceParameters","usernameFragment","writeIceParameters","rtpmapline","fmtps","writeRtpDescription","secondarySsrc","encodingParameters","hasRed","hasUlpfec","primarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","maxBitrate","getLocalParameters","174","finalSize","_block","_finalSize","_blockSize","_s","ch","175","Algorithm","sha1","sha224","sha256","sha384","sha512","./sha","./sha1","./sha224","./sha256","./sha384","./sha512","176","Sha","_w","rotl5","rotl30","ft","_a","_b","_c","_d","177","Sha1","rotl1","178","Sha224","Sha256","_f","_g","_h","179","maj","sigma0","sigma1","gamma0","gamma1","T1","T2","180","Sha384","SHA512","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","writeInt64BE","181","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","ah","bh","dh","eh","fh","gh","hh","fl","gl","xh","gamma0l","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","182","EE","didOnEnd","destroy","_isStdio","readable-stream/duplex.js","readable-stream/passthrough.js","readable-stream/readable.js","readable-stream/transform.js","readable-stream/writable.js","183","assertEncoding","isBufferEncoding","passThroughWrite","utf16DetectIncompleteChar","charReceived","charLength","base64DetectIncompleteChar","surrogateSize","detectIncompleteChar","charBuffer","charStr","charCode","184","dumpSDP","dumpStream","TraceablePeerConnection","peerconnection","what","failureCallback","185","dup","186","187","188","189","190","191","192","193","194","deprecated","195","196","197","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","recurseTimes","primitive","formatPrimitive","visibleKeys","formatError","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","numLinesEst","cur","pad","getHours","getMinutes","getSeconds","getDate","months","getMonth","formatRegExp","format","objects","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","./support/isBuffer","198","rng","msCrypto","getRandomValues","_rnds8","_rnds","199","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","rnds","_rng","_seedBytes","./rng","200","requestUserMedia","webrtcDetectedBrowser","webrtcDetectedVersion","webrtcMinimumVersion","webrtcUtils","constraintsToFF37","fixChromeStats","successCallbackWrapper","constraintsToChrome","oldname","writeFtmp","sendSsrc","recvSsrc","answerOptions","webrtcTesting","201","202","203","DOMException","204","_config","getConfiguration","isDatachannel","localTrack","205","206","207","208","209","210","PC","IceCandidate","SessionDescription","AudioContext","webkitAudioContext","videoEl","supportVp8","canPlayType","msGetUserMedia","browserVersion","supportRTCPeerConnection","supportGetUserMedia","supportDataChannel","supportWebAudio","createMediaStreamSource","supportMediaStream","removeTrack","supportScreenSharing","dataChannel","webAudio","mediaStream","211","mixin","isWildEmitter","groupName","callbacks","hasGroup","_groupName","releaseGroup","specialCallbacks","getWildcardCallbacks","212","PubSub","./lib/jingle","./lib/muc","./lib/namespaces","./lib/presence","./lib/pubsub","213","Action","CONTENT_ACCEPT","CONTENT_ADD","CONTENT_MODIFY","CONTENT_REJECT","CONTENT_REMOVE","DESCRIPTION_INFO","SECURITY_INFO","SESSION_ACCEPT","SESSION_INFO","SESSION_INITIATE","SESSION_TERMINATE","TRANSPORT_ACCEPT","TRANSPORT_INFO","TRANSPORT_REJECT","TRANSPORT_REPLACE","ALTERNATIVE_SESSION","BUSY","CANCEL","CONNECTIVITY_ERROR","DECLINE","EXPIRED","FAILED_APPLICATION","FAILED_TRANSPORT","GENERAL_ERROR","GONE","INCOMPATIBLE_PARAMETERS","MEDIA_ERROR","SECURITY_ERROR","SUCCESS","UNSUPPORTED_APPLICATIONS","UNSUPPORTED_TRANSPORTS","Condition","OUT_OF_ORDER","TIE_BREAK","UNKNOWN_SESSION","UNSUPPORTED_INFO","214","REALJID_PUBLIC","AFFILIATION_CHANGED","UNAVAILABLE_SHOWN","UNAVAILABLE_NOT_SHOWN","CONFIGURATION_CHANGED","SELF_PRESENCE","LOGGING_ENABLED","LOGGING_DISABLED","NON_ANONYMOUS","SEMI_ANONYMOUS","FULLY_ANONYMOUS","ROOM_CREATED","NICK_ASSIGNED","BANNED","NEW_NICK","KICKED","REMOVED_AFFILIATION","REMOVED_MEMBERSHIP","REMOVED_SHUTDOWN","ADMIN","MEMBER","NONE","OUTCAST","OWNER","Role","MODERATOR","PARTICIPANT","VISITOR","215","RPC","LAST_ACTIVITY","PRIVACY","SEARCH","SOCKS5","HTTP_AUTH","AMP","ROSTER_DELIMITER","ACTIVITY","COMPRESSION","ROSTER_EXCHANGE","ROSTER_NOTES","CAPTCHA","JINGLE_RTP_ERRORS_1","LANG_TRANS","LANG_TRANS_ITEMS","JINGLE_RAW_UDP_1","SEC_LABEL_0","SEC_LABEL_CATALOG_2","SEC_LABEL_ESS_0","JINGLE_SOCKS5_1","JINGLE_IBB_1","JINGLE_RTP_ZRTP_1","THUMBS_1","DECLOAKING_0","MAM_TMP","HINTS","COLIBRI","JINGLE_MSG_INITIATE_0","JINGLE_PUB_1","216","Type","SUBSCRIBE","SUBSCRIBED","UNSUBSCRIBE","UNSUBSCRIBED","PROBE","UNAVAILABLE","Show","CHAT","AWAY","DO_NOT_DISTURB","EXTENDED_AWAY","217","PUBLISHER","PUBLISH_ONLY","PENDING","UNCONFIGURED","AccessModel","OPEN","PRESENCE","AUTHORIZE","WHITELIST","CONFLICT","218","bareJID","fullJID","StringPrep","ASCII","prep","unescapedLocal","nodeprep","resourceprep","nameprep","unescapedBare","unescapedFull","trusted","resourceStart","localEnd","preppedJID","jid1","jid2","requirePrep","equalBare","isBare","hasResource","localOrJID","_isJID","./lib/stringprep","219","220","JSM","RTC","GUM","GSM","jxt","IqStanza","peer_constraints","AUTOACCEPT","manager","getScreenMedia","MozDontOfferDataChannel","mozDontOfferDataChannel","terminated","peerStreamAdded","peerStreamRemoved","log:error","onJingle","parseXML","outerHTML","initiate","peerjid","terminate","terminateByJid","setICEServers","servers","setPeerConstraints","getscreenmedia","jxt-xmpp","jxt-xmpp-types","webrtc-adapter-test","Salsa20","rounds","sigmaWords","keyWords","nonceWords","counterWords","block","blockUsed","setKey","setNonce","getBytes","numberOfBytes","_generateBlock","_incrementCounter","getHexString","hex","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","BigInt","findPrimes","ans","millerRabin","mr_x1","mr_r","mr_a","copy_","addInt_","isZero","bpe","rightShift_","powMod_","equalsInt","squareMod_","bitSize","expand","int2bigInt","mod","mod_","mult","mult_","powMod","sub_","add_","inverseMod","inverseMod_","multMod","multMod_","randBigInt","randBigInt_","randomBitInt","copyInt_","eg_u","eg_v","eg_A","eg_B","eg_C","eg_D","halve_","greater","negative","inverseModInt","greaterShift","kx","ky","divide_","y1","y2","leftShift_","subShift_","radix","linCombShift_","addShift_","modInt","bits","minSize","buff","str2bigInt","kk","bb","digitsStr","multInt_","bigInt2str","s6","divInt_","ys","ss","s4","s5","s0","k1","k2","kn","np","s7","s3","mont_","one","ui","t2","ks","sa","divMod","den","subMod","two","twoToThe","bigInt2bits","bi","ba","_num2bin","ba2bigInt","mpi","getSeed","randomBytes","randomByte","primes","CryptoJS","C_lib","lib","overrides","mixIn","$super","instance","properties","propertyName","WordArray","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","decodeURIComponent","utf8Str","encodeURIComponent","BufferedBlockAlgorithm","_nDataBytes","_append","doFlush","dataWords","dataSigBytes","blockSizeBytes","nBlocksReady","_minBufferSize","nWordsReady","nBytesReady","_doProcessBlock","processedWords","C_algo","Hasher","cfg","_doReset","messageUpdate","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","base64Chars","byte1","byte2","byte3","paddingChar","base64Str","base64StrLength","paddingIndex","bits1","bits2","Cipher","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","finalProcessedData","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","finalProcessedBlocks","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","_prevBlock","encryptBlock","thisBlock","decryptBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","unpad","CipherParams","BlockCipher","modeCreator","_mode","cipherParams","formatter","C_format","OpenSSLFormatter","OpenSSL","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","plaintext","C_kdf","kdf","OpenSSLKdf","compute","derivedParams","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","RCON","AES","nRounds","_nRounds","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","s1","s2","round","t0","t1","t3","HmacSHA1","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma1x","HmacSHA256","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","hmac","NoPadding","CTR","_counter","keystream","indexOfListener","getListeners","_getEvents","flattenListeners","flatListeners","getListenersAsObject","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","emitEvent","_getOnceReturnValue","setOnceReturnValue","_onceReturnValue","OTR","DSA","CONST","N","MSGSTATE_PLAINTEXT","MSGSTATE_ENCRYPTED","MSGSTATE_FINISHED","AUTHSTATE_NONE","AUTHSTATE_AWAITING_DHKEY","AUTHSTATE_AWAITING_REVEALSIG","AUTHSTATE_AWAITING_SIG","WHITESPACE_TAG","WHITESPACE_TAG_V2","WHITESPACE_TAG_V3","OTR_TAG","OTR_VERSION_1","OTR_VERSION_2","OTR_VERSION_3","SMPSTATE_EXPECT0","SMPSTATE_EXPECT1","SMPSTATE_EXPECT2","SMPSTATE_EXPECT3","SMPSTATE_EXPECT4","STATUS_SEND_QUERY","STATUS_AKE_INIT","STATUS_AKE_SUCCESS","STATUS_END_OTR","intCompare","HLP","DTS","BYTE","SHORT","INT","MAC","SIG","WRAPPER_BEGIN","WRAPPER_END","TWO","__super__","str1","str2","randomExponent","smpHash","fmpi","smpi","packBytes","packMPI","bits2bigInt","makeMac","aesctr","mac","make1Mac","encryptAes","aesctr_decoded","decryptAes","multPowMod","ZKP","GTOE","between","checkGroup","N_MINUS_2","h1","secbytes","h2","nex","packINT","packCtr","padCtr","ctr","unpackCtr","unpack","packData","packSHORT","short","unpackSHORT","packTLV","readLen","readData","readMPI","packMPIs","prv","unpackMPIs","mpis","splitype","wrapMsg","fs","v3","our_it","their_it","its","ei","frag","mf","mfs","_bin2num","rv","ary","iz","remain","timer","makeRandom","isProbPrime","rpprb","generatePrimes","bit_length","rem","repeat","bit_lengths","LM1","bl4","brk","ONE","pm1","KEY_TYPE","ZERO","nocache","tokenizeStr","splt","es","parseLibotr","Worker","WWPath","__dirname","1024","2048","packPublic","packPrivate","generateNonce","priv","rand","pk","parsePublic","parsePrivate","libotr","dsa","verify","hm","u1","u2","createInWebWorker","seed","imports","Parse","parseMsg","otr","initFragment","ind","com","msgFragment","vers","qs","qi","cls","instance_tags","ERROR_START_AKE","sendQueryMsg","checkInstanceTags","hMac","gx","gy","kid","AKE","our_dh","our_old_dh","our_keyid","their_y","their_keyid","their_priv_pk","ssid","transmittedRS","meth","createKeys","privateKey","c_prime","m1","m2","m1_prime","m2_prime","verifySignMac","our_dh_pk","vmac","pub","makeM","publicKey","akeSuccess","their_old_y","sessKeys","DHSession","otr_version","authstate","msgstate","myhashed","dhcommit","encrypted","hashed","sendStored","handleAKE","vsm","ourHash","theirHash","gxmpi","sendMsg","our_instance_tag","their_instance_tag","fragment_size","io","initiateAKE","SM","reqs","our_fp","their_fp","Q","smpstate","secret","makeSecret","our","makeG2s","a2","a3","g2a","g3a","computeGs","g2","g3","computePQ","computeR","QoQ","computeRab","computeC","computeD","handleSM","r2","r3","r7","t4","rab","tmp2","cR","d7","ms","trust","expectStates","question","g3ao","c3","d2","d3","r4","r5","r6","cP","d5","d6","PoP","rcvSecret","OTRCB","send_interval","instance_tag","makeInstanceTag","smw","SMWPath","MAX_INT","MAX_UINT","ALLOW_V2","ALLOW_V3","REQUIRE_ENCRYPTION","SEND_WHITESPACE_TAG","WHITESPACE_START_AKE","storedMgs","oldMacKeys","sm","_akeInit","receivedPlaintext","ake","_SMW","_smInit","prepareMsg","sq","sendbyte","rcvbyte","sendenc","sendmac","rcvenc","rcvmac","rcvmacused","extra_symkey","send_counter","rcv_counter","rotateOurKeys","sk","rotateTheirKeys","esk","aes","handleDataMsg","vt","ign","handleTLVs","tlvs","smpSecret","vs","receiveMsg","doAKE","severity","sendFile","filename","l1name","endOtr","i18next","R","interpolation","unescapeSuffix","interpolationPrefix","interpolationSuffix","escapeValue","escapeInterpolation","nestingPrefix","reusePrefix","nestingSuffix","reuseSuffix","resStore","resources","defaultNs","defaultNS","fallbackToDefaultNS","fallbackNS","saveMissing","sendMissing","saveMissingTo","sendMissingTo","returnNull","fallbackOnNull","returnEmptyString","fallbackOnEmpty","returnObjects","returnObjectTrees","joinArrays","returnedObjectHandler","objectTreeKeyHandler","parseMissingKeyHandler","parseMissingKey","appendNamespaceToMissingKey","nsSeparator","nsseparator","keySeparator","keyseparator","shortcutFunction","overloadTranslationOptionHandler","postProcess","sprintf","whitelist","lngWhitelist","preload","load","backend","loadPath","resGetPath","addPath","resPostPath","allowMultiLoading","dynamicLoad","expirationTime","enabled","useLocalStorage","defaultVariables","lng","services","languageUtils","toResolveHierarchy","language","loadLanguages","setLng","fixLng","getFixedT","changeLanguage","addPostProcessor","lngs","numbers","nr","plurals","fc","initImmediate","fallbackLng","nonExplicitWhitelist","pluralSeparator","contextSeparator","missingKeyHandler","defaultValue","formatSeparator","unescapePrefix","_invoke","return","asyncIterator","throw","await","setPrototypeOf","ReferenceError","_output","setDebug","forward","observers","/","E","addNamespaces","removeNamespaces","getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","processors","handle","extractFromKey","translate","extendTranslation","isValidLookup","getFallbackCodes","backendConnector","interpolator","interpolate","nest","applyPostProcessor","pluralResolver","getSuffix","resourceStore","getLanguagePartFromCode","formatLanguageCode","getScriptPartFromCode","lowerCaseLng","cleanCode","isWhitelisted","rules","addRule","getRule","needsPlural","noAbs","prepend","compatibilityJSON","V","prefixEscaped","suffixEscaped","nestingPrefixEscaped","nestingSuffixEscaped","resetRegExp","regexpUnescape","nestingRegexp","store","queueLoad","loaded","toLoad","toLoadLanguages","toLoadNamespaces","readMulti","reload","I","save","modules","isInitialized","isClone","cacheConnector","languageDetector","detection","translator","loadResources","reloadResources","languages","cacheUserLanguage","setDefaultNamespace","loadNamespaces","createInstance","cloneInstance","D","jqueryI18next","parseDefaultValueFromContent","selectorAttr","targetAttr","useOptionsAttr","optionsAttr","tName","i18nName","handleName","Zepto","className","triggerHandler","st","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","transition","isLowIE","isIE8","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isOpen","updateItemHTML","mainEl","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","contentContainer","preloader","tLoading","closeBtnInside","close_replaceWith","alignTop","overflowY","overflowX","top","scrollTop","fixedBgPos","keyCode","updateSize","addClass","wH","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","_setFocus","_onFocusIn","removalDelay","detach","_removeClassFromMFP","removeAttr","currItem","autoFocusLast","focus","prevHeight","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","appendContent","preloaded","hasClass","addGroup","mfpEl","_openClick","delegate","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","preventDefault","stopPropagation","updateStatus","stopImmediatePropagation","contains","scrollHeight","_parseMarkup","replaceWith","scrollbarSize","offsetWidth","registerModule","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","J","settings","cursor","tError","initAjax","ajax","getAjax","loadError","image","titleSrc","verticalFit","initImage","resizeImage","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","naturalWidth","getImage","alt","img_replaceWith","loading","MozTransform","easing","duration","opener","initZoom","zoom","zIndex","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","offsetHeight","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","arrowMarkup","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","arrowLeft","arrowRight","click","_preloadTimeout","preloadNearbyImages","goTo","_preloadItem","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","I18next","bg","translation","Logging_in","your_connection_is_unencrypted","your_connection_is_encrypted","your_buddy_closed_the_private_connection","start_private","close_private","your_buddy_is_verificated","you_have_only_a_subscription_in_one_way","authentication_query_sent","your_message_wasnt_send_please_end_your_private_conversation","unencrypted_message_received","not_available","no_connection","relogin","trying_to_start_private_conversation","Verified","Unverified","private_conversation_aborted","your_buddy_closed_the_private_conversation_you_should_do_the_same","conversation_is_now_verified","authentication_failed","Creating_your_private_key_","Authenticating_a_buddy_helps_","How_do_you_want_to_authenticate_your_buddy","Select_method","Manual","Question","Secret","To_verify_the_fingerprint_","Your_fingerprint","Buddy_fingerprint","Close","Compared","To_authenticate_using_a_question_","Ask","To_authenticate_pick_a_secret_","Compare","Fingerprints","Authentication","Add_buddy","rename_buddy","delete_buddy","Login","Username","Password","Cancel","Connect","Type_in_the_full_username_","Alias","Add","Subscription_request","You_have_a_request_from","Deny","Approve","Remove_buddy","You_are_about_to_remove_","Continue_without_chat","Please_wait","Login_failed","Sorry_we_cant_authentikate_","Retry","clear_history","New_message_from","Should_we_notify_you_","Please_accept_","Hide_offline","Show_offline","About","dnd","online","chat","away","xa","offline","Unknown_instance_tag","Not_one_of_our_latest_keys","Received_an_unreadable_encrypted_message","Online","Chatty","Away","Extended_away","Offline","Friendship_request","Confirm","Dismiss","Remove","Online_help","FN","FAMILY","GIVEN","NICKNAME","ADR","STREET","EXTADD","LOCALITY","REGION","PCODE","CTRY","TEL","NUMBER","EMAIL","USERID","ORG","ORGNAME","ORGUNIT","TITLE","ROLE","BDAY","DESC","PHOTO","send_message","get_info","Settings","Priority","Save","User_settings","A_fingerprint_","Login_options","BOSH_url","Domain","Resource","On_login","Received_an_unencrypted_message","Sorry_your_buddy_doesnt_provide_any_information","Info_about","Authentication_aborted","Authentication_request_received","Log_in_without_chat","has_come_online","Unknown_sender","Please_allow_access_to_microphone_and_camera","Incoming_call","Do_you_want_to_accept_the_call_from","Reject","Accept","hang_up","snapshot","mute_my_audio","pause_my_video","fullscreen","Local_IP","Remote_IP","Local_Fingerprint","Remote_Fingerprint","Video_call_not_possible","Start_video_call","Join_chat","Join","Room","Nickname","left_the_building","entered_the_room","is_now_known_as","This_room_is","muc_hidden","keyword","muc_membersonly","muc_moderated","muc_nonanonymous","muc_open","muc_passwordprotected","muc_persistent","muc_public","muc_semianonymous","muc_temporary","muc_unmoderated","muc_unsecured","Continue","Server","Rooms_are_loaded","Could_load_only","muc_explanation","You_already_joined_this_room","This_room_will_be_closed","Room_not_found_","Loading_room_information","Leave","changed_subject_to","muc_removed_kicked","muc_removed_info_kicked","muc_removed_banned","muc_removed_info_banned","muc_removed_affiliation","muc_removed_info_affiliation","muc_removed_membersonly","muc_removed_info_membersonly","muc_removed_shutdown","message_not_send","message_not_send_item-not-found","message_not_send_forbidden","message_not_send_not-acceptable","This_room_has_been_closed","Room_logging_is_enabled","A_password_is_required","You_are_not_on_the_member_list","You_are_banned_from_this_room","Your_desired_nickname_","The_maximum_number_","This_room_is_locked_","You_are_not_allowed_to_create_","Alert","Call_started","Call_terminated","Carbon_copy","jingle_reason_busy","jingle_reason_decline","jingle_reason_success","Media_failure","No_local_audio_device","No_local_video_device","Ok","Use_local_audio_device","Use_local_video_device","is_","You_received_a_message_from_an_unknown_sender_","Your_roster_is_empty_add_","onsmp_explanation_question","onsmp_explanation_secret","from_sender","Verified_private_conversation_started","Unverified_private_conversation_started","Bookmark","Auto-join","Edit_bookmark","Room_logging_is_disabled","Room_is_now_non-anoymous","Room_is_now_semi-anonymous","Do_you_want_to_change_the_default_room_configuration","Default","Change","Send_file","setting-explanation-carbon","setting-explanation-login","setting-explanation-priority","setting-explanation-xmpp","_is_composing","_are_composing","Chat_state_notifications","setting-explanation-chat-state","Share_screen","Incoming_stream","Stream_started","HTTPS_REQUIRED","EXTENSION_UNAVAILABLE","UNKNOWN_ERROR","Install_extension","Connection_accepted","Stream_terminated","Close_all","bn-BD","de","en","fi","fr","hu-HU","nds","pl","pt-BR","ro","ru","sv-SE","tr-TR","vi-VN","zh-TW","zh","Favico","drawVideo","_stop","_context","clearRect","drawImage","_drawTimeout","animation","link","setIcon","_canvas","hexToRgb","shorthandRegex","merge","attrname","mergedOpt","isPageHidden","_doc","hidden","msHidden","webkitHidden","mozHidden","_opt","_orig","_img","_ready","_lastBadge","_running","_readyCb","_browser","_animTimeout","_def","bgColor","textColor","fontFamily","fontStyle","elementId","dataUrl","win","ff","InstallTrigger","opera","ie","safari","HTMLElement","supported","isUp","isLeft","step","getIcon","hasAttribute","getContext","icon","circle","more","beginPath","font","textAlign","moveTo","lineTo","quadraticCurveTo","arc","PI","fillStyle","closePath","stroke","fillText","rectangle","fillRect","badge","imageElement","newImg","videoElement","webcam","newVideo","oGetUserMedia","play","elm","getLink","getElementById","canvas","toDataURL","old","fade","popFade","slide","revert","animationType","emojioneList",":kiss_ww:","unicode","fname","uc","isCanonical",":couplekiss_ww:",":kiss_mm:",":couplekiss_mm:",":family_mmbb:",":family_mmgb:",":family_mmgg:",":family_mwbb:",":family_mwgb:",":family_mwgg:",":family_wwbb:",":family_wwgb:",":family_wwgg:",":couple_ww:",":couple_with_heart_ww:",":couple_mm:",":couple_with_heart_mm:",":family_mmb:",":family_mmg:",":family_mwg:",":family_wwb:",":family_wwg:",":rainbow_flag:",":gay_pride_flag:",":eye_in_speech_bubble:",":hash:",":zero:",":one:",":two:",":three:",":four:",":five:",":six:",":seven:",":eight:",":nine:",":asterisk:",":keycap_asterisk:",":handball_tone5:",":handball_tone4:",":handball_tone3:",":handball_tone2:",":handball_tone1:",":water_polo_tone5:",":water_polo_tone4:",":water_polo_tone3:",":water_polo_tone2:",":water_polo_tone1:",":wrestlers_tone5:",":wrestling_tone5:",":wrestlers_tone4:",":wrestling_tone4:",":wrestlers_tone3:",":wrestling_tone3:",":wrestlers_tone2:",":wrestling_tone2:",":wrestlers_tone1:",":wrestling_tone1:",":juggling_tone5:",":juggler_tone5:",":juggling_tone4:",":juggler_tone4:",":juggling_tone3:",":juggler_tone3:",":juggling_tone2:",":juggler_tone2:",":juggling_tone1:",":juggler_tone1:",":cartwheel_tone5:",":person_doing_cartwheel_tone5:",":cartwheel_tone4:",":person_doing_cartwheel_tone4:",":cartwheel_tone3:",":person_doing_cartwheel_tone3:",":cartwheel_tone2:",":person_doing_cartwheel_tone2:",":cartwheel_tone1:",":person_doing_cartwheel_tone1:",":shrug_tone5:",":shrug_tone4:",":shrug_tone3:",":shrug_tone2:",":shrug_tone1:",":mrs_claus_tone5:",":mother_christmas_tone5:",":mrs_claus_tone4:",":mother_christmas_tone4:",":mrs_claus_tone3:",":mother_christmas_tone3:",":mrs_claus_tone2:",":mother_christmas_tone2:",":mrs_claus_tone1:",":mother_christmas_tone1:",":man_in_tuxedo_tone5:",":tuxedo_tone5:",":man_in_tuxedo_tone4:",":tuxedo_tone4:",":man_in_tuxedo_tone3:",":tuxedo_tone3:",":man_in_tuxedo_tone2:",":tuxedo_tone2:",":man_in_tuxedo_tone1:",":tuxedo_tone1:",":prince_tone5:",":prince_tone4:",":prince_tone3:",":prince_tone2:",":prince_tone1:",":selfie_tone5:",":selfie_tone4:",":selfie_tone3:",":selfie_tone2:",":selfie_tone1:",":pregnant_woman_tone5:",":expecting_woman_tone5:",":pregnant_woman_tone4:",":expecting_woman_tone4:",":pregnant_woman_tone3:",":expecting_woman_tone3:",":pregnant_woman_tone2:",":expecting_woman_tone2:",":pregnant_woman_tone1:",":expecting_woman_tone1:",":face_palm_tone5:",":facepalm_tone5:",":face_palm_tone4:",":facepalm_tone4:",":face_palm_tone3:",":facepalm_tone3:",":face_palm_tone2:",":facepalm_tone2:",":face_palm_tone1:",":facepalm_tone1:",":fingers_crossed_tone5:",":hand_with_index_and_middle_fingers_crossed_tone5:",":fingers_crossed_tone4:",":hand_with_index_and_middle_fingers_crossed_tone4:",":fingers_crossed_tone3:",":hand_with_index_and_middle_fingers_crossed_tone3:",":fingers_crossed_tone2:",":hand_with_index_and_middle_fingers_crossed_tone2:",":fingers_crossed_tone1:",":hand_with_index_and_middle_fingers_crossed_tone1:",":handshake_tone5:",":shaking_hands_tone5:",":handshake_tone4:",":shaking_hands_tone4:",":handshake_tone3:",":shaking_hands_tone3:",":handshake_tone2:",":shaking_hands_tone2:",":handshake_tone1:",":shaking_hands_tone1:",":right_facing_fist_tone5:",":right_fist_tone5:",":right_facing_fist_tone4:",":right_fist_tone4:",":right_facing_fist_tone3:",":right_fist_tone3:",":right_facing_fist_tone2:",":right_fist_tone2:",":right_facing_fist_tone1:",":right_fist_tone1:",":left_facing_fist_tone5:",":left_fist_tone5:",":left_facing_fist_tone4:",":left_fist_tone4:",":left_facing_fist_tone3:",":left_fist_tone3:",":left_facing_fist_tone2:",":left_fist_tone2:",":left_facing_fist_tone1:",":left_fist_tone1:",":raised_back_of_hand_tone5:",":back_of_hand_tone5:",":raised_back_of_hand_tone4:",":back_of_hand_tone4:",":raised_back_of_hand_tone3:",":back_of_hand_tone3:",":raised_back_of_hand_tone2:",":back_of_hand_tone2:",":raised_back_of_hand_tone1:",":back_of_hand_tone1:",":call_me_tone5:",":call_me_hand_tone5:",":call_me_tone4:",":call_me_hand_tone4:",":call_me_tone3:",":call_me_hand_tone3:",":call_me_tone2:",":call_me_hand_tone2:",":call_me_tone1:",":call_me_hand_tone1:",":metal_tone5:",":sign_of_the_horns_tone5:",":metal_tone4:",":sign_of_the_horns_tone4:",":metal_tone3:",":sign_of_the_horns_tone3:",":metal_tone2:",":sign_of_the_horns_tone2:",":metal_tone1:",":sign_of_the_horns_tone1:",":bath_tone5:",":bath_tone4:",":bath_tone3:",":bath_tone2:",":bath_tone1:",":walking_tone5:",":walking_tone4:",":walking_tone3:",":walking_tone2:",":walking_tone1:",":mountain_bicyclist_tone5:",":mountain_bicyclist_tone4:",":mountain_bicyclist_tone3:",":mountain_bicyclist_tone2:",":mountain_bicyclist_tone1:",":bicyclist_tone5:",":bicyclist_tone4:",":bicyclist_tone3:",":bicyclist_tone2:",":bicyclist_tone1:",":rowboat_tone5:",":rowboat_tone4:",":rowboat_tone3:",":rowboat_tone2:",":rowboat_tone1:",":pray_tone5:",":pray_tone4:",":pray_tone3:",":pray_tone2:",":pray_tone1:",":person_with_pouting_face_tone5:",":person_with_pouting_face_tone4:",":person_with_pouting_face_tone3:",":person_with_pouting_face_tone2:",":person_with_pouting_face_tone1:",":person_frowning_tone5:",":person_frowning_tone4:",":person_frowning_tone3:",":person_frowning_tone2:",":person_frowning_tone1:",":raised_hands_tone5:",":raised_hands_tone4:",":raised_hands_tone3:",":raised_hands_tone2:",":raised_hands_tone1:",":raising_hand_tone5:",":raising_hand_tone4:",":raising_hand_tone3:",":raising_hand_tone2:",":raising_hand_tone1:",":bow_tone5:",":bow_tone4:",":bow_tone3:",":bow_tone2:",":bow_tone1:",":ok_woman_tone5:",":ok_woman_tone4:",":ok_woman_tone3:",":ok_woman_tone2:",":ok_woman_tone1:",":no_good_tone5:",":no_good_tone4:",":no_good_tone3:",":no_good_tone2:",":no_good_tone1:",":vulcan_tone5:",":raised_hand_with_part_between_middle_and_ring_fingers_tone5:",":vulcan_tone4:",":raised_hand_with_part_between_middle_and_ring_fingers_tone4:",":vulcan_tone3:",":raised_hand_with_part_between_middle_and_ring_fingers_tone3:",":vulcan_tone2:",":raised_hand_with_part_between_middle_and_ring_fingers_tone2:",":vulcan_tone1:",":raised_hand_with_part_between_middle_and_ring_fingers_tone1:",":middle_finger_tone5:",":reversed_hand_with_middle_finger_extended_tone5:",":middle_finger_tone4:",":reversed_hand_with_middle_finger_extended_tone4:",":middle_finger_tone3:",":reversed_hand_with_middle_finger_extended_tone3:",":middle_finger_tone2:",":reversed_hand_with_middle_finger_extended_tone2:",":middle_finger_tone1:",":reversed_hand_with_middle_finger_extended_tone1:",":hand_splayed_tone5:",":raised_hand_with_fingers_splayed_tone5:",":hand_splayed_tone4:",":raised_hand_with_fingers_splayed_tone4:",":hand_splayed_tone3:",":raised_hand_with_fingers_splayed_tone3:",":hand_splayed_tone2:",":raised_hand_with_fingers_splayed_tone2:",":hand_splayed_tone1:",":raised_hand_with_fingers_splayed_tone1:",":man_dancing_tone5:",":male_dancer_tone5:",":man_dancing_tone4:",":male_dancer_tone4:",":man_dancing_tone3:",":male_dancer_tone3:",":man_dancing_tone2:",":male_dancer_tone2:",":man_dancing_tone1:",":male_dancer_tone1:",":spy_tone5:",":sleuth_or_spy_tone5:",":spy_tone4:",":sleuth_or_spy_tone4:",":spy_tone3:",":sleuth_or_spy_tone3:",":spy_tone2:",":sleuth_or_spy_tone2:",":spy_tone1:",":sleuth_or_spy_tone1:",":muscle_tone5:",":muscle_tone4:",":muscle_tone3:",":muscle_tone2:",":muscle_tone1:",":haircut_tone5:",":haircut_tone4:",":haircut_tone3:",":haircut_tone2:",":haircut_tone1:",":massage_tone5:",":massage_tone4:",":massage_tone3:",":massage_tone2:",":massage_tone1:",":nail_care_tone5:",":nail_care_tone4:",":nail_care_tone3:",":nail_care_tone2:",":nail_care_tone1:",":dancer_tone5:",":dancer_tone4:",":dancer_tone3:",":dancer_tone2:",":dancer_tone1:",":guardsman_tone5:",":guardsman_tone4:",":guardsman_tone3:",":guardsman_tone2:",":guardsman_tone1:",":information_desk_person_tone5:",":information_desk_person_tone4:",":information_desk_person_tone3:",":information_desk_person_tone2:",":information_desk_person_tone1:",":angel_tone5:",":angel_tone4:",":angel_tone3:",":angel_tone2:",":angel_tone1:",":princess_tone5:",":princess_tone4:",":princess_tone3:",":princess_tone2:",":princess_tone1:",":construction_worker_tone5:",":construction_worker_tone4:",":construction_worker_tone3:",":construction_worker_tone2:",":construction_worker_tone1:",":baby_tone5:",":baby_tone4:",":baby_tone3:",":baby_tone2:",":baby_tone1:",":older_woman_tone5:",":grandma_tone5:",":older_woman_tone4:",":grandma_tone4:",":older_woman_tone3:",":grandma_tone3:",":older_woman_tone2:",":grandma_tone2:",":older_woman_tone1:",":grandma_tone1:",":older_man_tone5:",":older_man_tone4:",":older_man_tone3:",":older_man_tone2:",":older_man_tone1:",":man_with_turban_tone5:",":man_with_turban_tone4:",":man_with_turban_tone3:",":man_with_turban_tone2:",":man_with_turban_tone1:",":man_with_gua_pi_mao_tone5:",":man_with_gua_pi_mao_tone4:",":man_with_gua_pi_mao_tone3:",":man_with_gua_pi_mao_tone2:",":man_with_gua_pi_mao_tone1:",":person_with_blond_hair_tone5:",":person_with_blond_hair_tone4:",":person_with_blond_hair_tone3:",":person_with_blond_hair_tone2:",":person_with_blond_hair_tone1:",":bride_with_veil_tone5:",":bride_with_veil_tone4:",":bride_with_veil_tone3:",":bride_with_veil_tone2:",":bride_with_veil_tone1:",":cop_tone5:",":cop_tone4:",":cop_tone3:",":cop_tone2:",":cop_tone1:",":woman_tone5:",":woman_tone4:",":woman_tone3:",":woman_tone2:",":woman_tone1:",":man_tone5:",":man_tone4:",":man_tone3:",":man_tone2:",":man_tone1:",":girl_tone5:",":girl_tone4:",":girl_tone3:",":girl_tone2:",":girl_tone1:",":boy_tone5:",":boy_tone4:",":boy_tone3:",":boy_tone2:",":boy_tone1:",":open_hands_tone5:",":open_hands_tone4:",":open_hands_tone3:",":open_hands_tone2:",":open_hands_tone1:",":clap_tone5:",":clap_tone4:",":clap_tone3:",":clap_tone2:",":clap_tone1:",":thumbsdown_tone5:",":-1_tone5:",":thumbdown_tone5:",":thumbsdown_tone4:",":-1_tone4:",":thumbdown_tone4:",":thumbsdown_tone3:",":-1_tone3:",":thumbdown_tone3:",":thumbsdown_tone2:",":-1_tone2:",":thumbdown_tone2:",":thumbsdown_tone1:",":-1_tone1:",":thumbdown_tone1:",":thumbsup_tone5:",":+1_tone5:",":thumbup_tone5:",":thumbsup_tone4:",":+1_tone4:",":thumbup_tone4:",":thumbsup_tone3:",":+1_tone3:",":thumbup_tone3:",":thumbsup_tone2:",":+1_tone2:",":thumbup_tone2:",":thumbsup_tone1:",":+1_tone1:",":thumbup_tone1:",":ok_hand_tone5:",":ok_hand_tone4:",":ok_hand_tone3:",":ok_hand_tone2:",":ok_hand_tone1:",":wave_tone5:",":wave_tone4:",":wave_tone3:",":wave_tone2:",":wave_tone1:",":punch_tone5:",":punch_tone4:",":punch_tone3:",":punch_tone2:",":punch_tone1:",":point_right_tone5:",":point_right_tone4:",":point_right_tone3:",":point_right_tone2:",":point_right_tone1:",":point_left_tone5:",":point_left_tone4:",":point_left_tone3:",":point_left_tone2:",":point_left_tone1:",":point_down_tone5:",":point_down_tone4:",":point_down_tone3:",":point_down_tone2:",":point_down_tone1:",":point_up_2_tone5:",":point_up_2_tone4:",":point_up_2_tone3:",":point_up_2_tone2:",":point_up_2_tone1:",":nose_tone5:",":nose_tone4:",":nose_tone3:",":nose_tone2:",":nose_tone1:",":ear_tone5:",":ear_tone4:",":ear_tone3:",":ear_tone2:",":ear_tone1:",":lifter_tone5:",":weight_lifter_tone5:",":lifter_tone4:",":weight_lifter_tone4:",":lifter_tone3:",":weight_lifter_tone3:",":lifter_tone2:",":weight_lifter_tone2:",":lifter_tone1:",":weight_lifter_tone1:",":swimmer_tone5:",":swimmer_tone4:",":swimmer_tone3:",":swimmer_tone2:",":swimmer_tone1:",":horse_racing_tone5:",":horse_racing_tone4:",":horse_racing_tone3:",":horse_racing_tone2:",":horse_racing_tone1:",":surfer_tone5:",":surfer_tone4:",":surfer_tone3:",":surfer_tone2:",":surfer_tone1:",":runner_tone5:",":runner_tone4:",":runner_tone3:",":runner_tone2:",":runner_tone1:",":santa_tone5:",":santa_tone4:",":santa_tone3:",":santa_tone2:",":santa_tone1:",":flag_zw:",":zw:",":flag_zm:",":zm:",":flag_za:",":za:",":flag_yt:",":yt:",":flag_ye:",":ye:",":flag_xk:",":xk:",":flag_ws:",":ws:",":flag_wf:",":wf:",":flag_vu:",":vu:",":flag_vn:",":vn:",":flag_vi:",":vi:",":flag_vg:",":vg:",":flag_ve:",":ve:",":flag_vc:",":vc:",":flag_va:",":va:",":flag_uz:",":uz:",":flag_uy:",":uy:",":flag_us:",":us:",":flag_um:",":um:",":flag_ug:",":ug:",":flag_ua:",":ua:",":flag_tz:",":tz:",":flag_tw:",":tw:",":flag_tv:",":tuvalu:",":flag_tt:",":tt:",":flag_tr:",":tr:",":flag_to:",":to:",":flag_tn:",":tn:",":flag_tm:",":turkmenistan:",":flag_tl:",":tl:",":flag_tk:",":tk:",":flag_tj:",":tj:",":flag_th:",":th:",":flag_tg:",":tg:",":flag_tf:",":tf:",":flag_td:",":td:",":flag_tc:",":tc:",":flag_ta:",":ta:",":flag_sz:",":sz:",":flag_sy:",":sy:",":flag_sx:",":sx:",":flag_sv:",":sv:",":flag_st:",":st:",":flag_ss:",":ss:",":flag_sr:",":sr:",":flag_so:",":so:",":flag_sn:",":sn:",":flag_sm:",":sm:",":flag_sl:",":sl:",":flag_sk:",":sk:",":flag_sj:",":sj:",":flag_si:",":si:",":flag_sh:",":sh:",":flag_sg:",":sg:",":flag_se:",":se:",":flag_sd:",":sd:",":flag_sc:",":sc:",":flag_sb:",":sb:",":flag_sa:",":saudiarabia:",":saudi:",":flag_rw:",":rw:",":flag_ru:",":ru:",":flag_rs:",":rs:",":flag_ro:",":ro:",":flag_re:",":re:",":flag_qa:",":qa:",":flag_py:",":py:",":flag_pw:",":pw:",":flag_pt:",":pt:",":flag_ps:",":ps:",":flag_pr:",":pr:",":flag_pn:",":pn:",":flag_pm:",":pm:",":flag_pl:",":pl:",":flag_pk:",":pk:",":flag_ph:",":ph:",":flag_pg:",":pg:",":flag_pf:",":pf:",":flag_pe:",":pe:",":flag_pa:",":pa:",":flag_om:",":om:",":flag_nz:",":nz:",":flag_nu:",":nu:",":flag_nr:",":nr:",":flag_np:",":np:",":flag_no:",":no:",":flag_nl:",":nl:",":flag_ni:",":ni:",":flag_ng:",":nigeria:",":flag_nf:",":nf:",":flag_ne:",":ne:",":flag_nc:",":nc:",":flag_na:",":na:",":flag_mz:",":mz:",":flag_my:",":my:",":flag_mx:",":mx:",":flag_mw:",":mw:",":flag_mv:",":mv:",":flag_mu:",":mu:",":flag_mt:",":mt:",":flag_ms:",":ms:",":flag_mr:",":mr:",":flag_mq:",":mq:",":flag_mp:",":mp:",":flag_mo:",":mo:",":flag_mn:",":mn:",":flag_mm:",":mm:",":flag_ml:",":ml:",":flag_mk:",":mk:",":flag_mh:",":mh:",":flag_mg:",":mg:",":flag_mf:",":mf:",":flag_me:",":me:",":flag_md:",":md:",":flag_mc:",":mc:",":flag_ma:",":ma:",":flag_ly:",":ly:",":flag_lv:",":lv:",":flag_lu:",":lu:",":flag_lt:",":lt:",":flag_ls:",":ls:",":flag_lr:",":lr:",":flag_lk:",":lk:",":flag_li:",":li:",":flag_lc:",":lc:",":flag_lb:",":lb:",":flag_la:",":la:",":flag_kz:",":kz:",":flag_ky:",":ky:",":flag_kw:",":kw:",":flag_kr:",":kr:",":flag_kp:",":kp:",":flag_kn:",":kn:",":flag_km:",":km:",":flag_ki:",":ki:",":flag_kh:",":kh:",":flag_kg:",":kg:",":flag_ke:",":ke:",":flag_jp:",":jp:",":flag_jo:",":jo:",":flag_jm:",":jm:",":flag_je:",":je:",":flag_it:",":it:",":flag_is:",":is:",":flag_ir:",":ir:",":flag_iq:",":iq:",":flag_io:",":io:",":flag_in:",":in:",":flag_im:",":im:",":flag_il:",":il:",":flag_ie:",":ie:",":flag_id:",":indonesia:",":flag_ic:",":ic:",":flag_hu:",":hu:",":flag_ht:",":ht:",":flag_hr:",":hr:",":flag_hn:",":hn:",":flag_hm:",":hm:",":flag_hk:",":hk:",":flag_gy:",":gy:",":flag_gw:",":gw:",":flag_gu:",":gu:",":flag_gt:",":gt:",":flag_gs:",":gs:",":flag_gr:",":gr:",":flag_gq:",":gq:",":flag_gp:",":gp:",":flag_gn:",":gn:",":flag_gm:",":gm:",":flag_gl:",":gl:",":flag_gi:",":gi:",":flag_gh:",":gh:",":flag_gg:",":gg:",":flag_gf:",":gf:",":flag_ge:",":ge:",":flag_gd:",":gd:",":flag_gb:",":gb:",":flag_ga:",":ga:",":flag_fr:",":fr:",":flag_fo:",":fo:",":flag_fm:",":fm:",":flag_fk:",":fk:",":flag_fj:",":fj:",":flag_fi:",":fi:",":flag_eu:",":eu:",":flag_et:",":et:",":flag_es:",":es:",":flag_er:",":er:",":flag_eh:",":eh:",":flag_eg:",":eg:",":flag_ee:",":ee:",":flag_ec:",":ec:",":flag_ea:",":ea:",":flag_dz:",":dz:",":flag_do:",":do:",":flag_dm:",":dm:",":flag_dk:",":dk:",":flag_dj:",":dj:",":flag_dg:",":dg:",":flag_de:",":de:",":flag_cz:",":cz:",":flag_cy:",":cy:",":flag_cx:",":cx:",":flag_cw:",":cw:",":flag_cv:",":cv:",":flag_cu:",":cu:",":flag_cr:",":cr:",":flag_cp:",":cp:",":flag_co:",":co:",":flag_cn:",":cn:",":flag_cm:",":cm:",":flag_cl:",":chile:",":flag_ck:",":ck:",":flag_ci:",":ci:",":flag_ch:",":ch:",":flag_cg:",":cg:",":flag_cf:",":cf:",":flag_cd:",":congo:",":flag_cc:",":cc:",":flag_ca:",":ca:",":flag_bz:",":bz:",":flag_by:",":by:",":flag_bw:",":bw:",":flag_bv:",":bv:",":flag_bt:",":bt:",":flag_bs:",":bs:",":flag_br:",":br:",":flag_bq:",":bq:",":flag_bo:",":bo:",":flag_bn:",":bn:",":flag_bm:",":bm:",":flag_bl:",":bl:",":flag_bj:",":bj:",":flag_bi:",":bi:",":flag_bh:",":bh:",":flag_bg:",":bg:",":flag_bf:",":bf:",":flag_be:",":be:",":flag_bd:",":bd:",":flag_bb:",":bb:",":flag_ba:",":ba:",":flag_az:",":az:",":flag_ax:",":ax:",":flag_aw:",":aw:",":flag_au:",":au:",":flag_at:",":at:",":flag_as:",":as:",":flag_ar:",":ar:",":flag_aq:",":aq:",":flag_ao:",":ao:",":flag_am:",":am:",":flag_al:",":al:",":flag_ai:",":ai:",":flag_ag:",":ag:",":flag_af:",":af:",":flag_ae:",":ae:",":flag_ad:",":ad:",":flag_ac:",":ac:",":mahjong:",":parking:",":sa:",":u7121:",":u6307:",":u6708:",":film_frames:",":tickets:",":admission_tickets:",":lifter:",":weight_lifter:",":golfer:",":motorcycle:",":racing_motorcycle:",":race_car:",":racing_car:",":military_medal:",":reminder_ribbon:",":hot_pepper:",":cloud_rain:",":cloud_with_rain:",":cloud_snow:",":cloud_with_snow:",":cloud_lightning:",":cloud_with_lightning:",":cloud_tornado:",":cloud_with_tornado:",":fog:",":wind_blowing_face:",":chipmunk:",":spider:",":spider_web:",":thermometer:",":microphone2:",":studio_microphone:",":level_slider:",":control_knobs:",":flag_white:",":waving_white_flag:",":rosette:",":label:",":projector:",":film_projector:",":om_symbol:",":dove:",":dove_of_peace:",":candle:",":clock:",":mantlepiece_clock:",":hole:",":dark_sunglasses:",":joystick:",":paperclips:",":linked_paperclips:",":pen_ballpoint:",":lower_left_ballpoint_pen:",":pen_fountain:",":lower_left_fountain_pen:",":paintbrush:",":lower_left_paintbrush:",":crayon:",":lower_left_crayon:",":desktop:",":desktop_computer:",":printer:",":trackball:",":frame_photo:",":frame_with_picture:",":dividers:",":card_index_dividers:",":card_box:",":card_file_box:",":file_cabinet:",":wastebasket:",":notepad_spiral:",":spiral_note_pad:",":calendar_spiral:",":spiral_calendar_pad:",":compression:",":key2:",":old_key:",":newspaper2:",":rolled_up_newspaper:",":dagger:",":dagger_knife:",":speaking_head:",":speaking_head_in_silhouette:",":speech_left:",":left_speech_bubble:",":anger_right:",":right_anger_bubble:",":ballot_box:",":ballot_box_with_ballot:",":map:",":world_map:",":tools:",":hammer_and_wrench:",":shield:",":oil:",":oil_drum:",":satellite_orbital:",":fork_knife_plate:",":fork_and_knife_with_plate:",":eye:",":levitate:",":man_in_business_suit_levitating:",":spy:",":sleuth_or_spy:",":hand_splayed:",":raised_hand_with_fingers_splayed:",":mountain_snow:",":snow_capped_mountain:",":camping:",":beach:",":beach_with_umbrella:",":construction_site:",":building_construction:",":homes:",":house_buildings:",":cityscape:",":house_abandoned:",":derelict_house_building:",":classical_building:",":desert:",":island:",":desert_island:",":park:",":national_park:",":stadium:",":couch:",":couch_and_lamp:",":shopping_bags:",":bellhop:",":bellhop_bell:",":bed:",":motorway:",":railway_track:",":railroad_track:",":motorboat:",":airplane_small:",":small_airplane:",":cruise_ship:",":passenger_ship:",":white_sun_small_cloud:",":white_sun_with_small_cloud:",":white_sun_cloud:",":white_sun_behind_cloud:",":white_sun_rain_cloud:",":white_sun_behind_cloud_with_rain:",":mouse_three_button:",":three_button_mouse:",":point_up_tone1:",":point_up_tone2:",":point_up_tone3:",":point_up_tone4:",":point_up_tone5:",":v_tone1:",":v_tone2:",":v_tone3:",":v_tone4:",":v_tone5:",":fist_tone1:",":fist_tone2:",":fist_tone3:",":fist_tone4:",":fist_tone5:",":raised_hand_tone1:",":raised_hand_tone2:",":raised_hand_tone3:",":raised_hand_tone4:",":raised_hand_tone5:",":writing_hand_tone1:",":writing_hand_tone2:",":writing_hand_tone3:",":writing_hand_tone4:",":writing_hand_tone5:",":basketball_player_tone1:",":person_with_ball_tone1:",":basketball_player_tone2:",":person_with_ball_tone2:",":basketball_player_tone3:",":person_with_ball_tone3:",":basketball_player_tone4:",":person_with_ball_tone4:",":basketball_player_tone5:",":person_with_ball_tone5:",":copyright:",":registered:",":bangbang:",":interrobang:",":tm:",":information_source:",":left_right_arrow:",":arrow_up_down:",":arrow_upper_left:",":arrow_upper_right:",":arrow_lower_right:",":arrow_lower_left:",":leftwards_arrow_with_hook:",":arrow_right_hook:",":watch:",":hourglass:",":m:",":black_small_square:",":white_small_square:",":arrow_forward:",":arrow_backward:",":white_medium_square:",":black_medium_square:",":white_medium_small_square:",":black_medium_small_square:",":sunny:",":cloud:",":telephone:",":ballot_box_with_check:",":umbrella:",":coffee:",":point_up:",":relaxed:",":aries:",":taurus:",":gemini:",":cancer:",":leo:",":virgo:",":libra:",":scorpius:",":sagittarius:",":capricorn:",":aquarius:",":pisces:",":spades:",":clubs:",":hearts:",":diamonds:",":hotsprings:",":recycle:",":wheelchair:",":anchor:",":warning:",":zap:",":white_circle:",":black_circle:",":soccer:",":baseball:",":snowman:",":partly_sunny:",":no_entry:",":church:",":fountain:",":golf:",":sailboat:",":tent:",":fuelpump:",":scissors:",":airplane:",":envelope:",":v:",":pencil2:",":black_nib:",":heavy_check_mark:",":heavy_multiplication_x:",":eight_spoked_asterisk:",":eight_pointed_black_star:",":snowflake:",":sparkle:",":exclamation:",":heart:",":arrow_right:",":arrow_heading_up:",":arrow_heading_down:",":arrow_left:",":arrow_up:",":arrow_down:",":black_large_square:",":white_large_square:",":star:",":o:",":wavy_dash:",":part_alternation_mark:",":congratulations:",":secret:",":cross:",":latin_cross:",":keyboard:",":writing_hand:",":eject:",":eject_symbol:",":track_next:",":next_track:",":track_previous:",":previous_track:",":play_pause:",":stopwatch:",":timer:",":timer_clock:",":pause_button:",":double_vertical_bar:",":stop_button:",":record_button:",":umbrella2:",":snowman2:",":comet:",":shamrock:",":skull_crossbones:",":skull_and_crossbones:",":radioactive:",":radioactive_sign:",":biohazard:",":biohazard_sign:",":orthodox_cross:",":star_and_crescent:",":peace:",":peace_symbol:",":yin_yang:",":wheel_of_dharma:",":frowning2:",":white_frowning_face:",":hammer_pick:",":hammer_and_pick:",":crossed_swords:",":scales:",":alembic:",":gear:",":atom:",":atom_symbol:",":fleur-de-lis:",":coffin:",":urn:",":funeral_urn:",":thunder_cloud_rain:",":thunder_cloud_and_rain:",":pick:",":helmet_with_cross:",":helmet_with_white_cross:",":chains:",":shinto_shrine:",":mountain:",":beach_umbrella:",":umbrella_on_ground:",":ferry:",":skier:",":ice_skate:",":basketball_player:",":person_with_ball:",":star_of_david:",":heart_exclamation:",":heavy_heart_exclamation_mark_ornament:",":third_place:",":third_place_medal:",":second_place:",":second_place_medal:",":first_place:",":first_place_medal:",":fencer:",":fencing:",":goal:",":goal_net:",":handball:",":regional_indicator_z:",":water_polo:",":martial_arts_uniform:",":karate_uniform:",":boxing_glove:",":boxing_gloves:",":wrestlers:",":wrestling:",":juggling:",":juggler:",":cartwheel:",":person_doing_cartwheel:",":canoe:",":kayak:",":motor_scooter:",":motorbike:",":scooter:",":shopping_cart:",":shopping_trolley:",":black_joker:",":a:",":b:",":o2:",":octagonal_sign:",":stop_sign:",":ab:",":cl:",":regional_indicator_y:",":cool:",":free:",":id:",":new:",":ng:",":ok:",":sos:",":spoon:",":up:",":vs:",":champagne_glass:",":clinking_glass:",":tumbler_glass:",":whisky:",":koko:",":stuffed_flatbread:",":stuffed_pita:",":u7981:",":u7a7a:",":u5408:",":u6e80:",":u6709:",":shallow_pan_of_food:",":paella:",":u7533:",":u5272:",":salad:",":green_salad:",":u55b6:",":ideograph_advantage:",":accept:",":cyclone:",":french_bread:",":baguette_bread:",":foggy:",":closed_umbrella:",":night_with_stars:",":sunrise_over_mountains:",":sunrise:",":city_dusk:",":carrot:",":city_sunset:",":city_sunrise:",":rainbow:",":potato:",":bridge_at_night:",":ocean:",":volcano:",":milky_way:",":earth_asia:",":new_moon:",":bacon:",":first_quarter_moon:",":waxing_gibbous_moon:",":full_moon:",":crescent_moon:",":first_quarter_moon_with_face:",":star2:",":cucumber:",":stars:",":chestnut:",":avocado:",":seedling:",":palm_tree:",":cactus:",":tulip:",":cherry_blossom:",":rose:",":hibiscus:",":sunflower:",":blossom:",":corn:",":croissant:",":ear_of_rice:",":herb:",":four_leaf_clover:",":maple_leaf:",":fallen_leaf:",":leaves:",":mushroom:",":tomato:",":eggplant:",":grapes:",":melon:",":watermelon:",":tangerine:",":wilted_rose:",":wilted_flower:",":banana:",":pineapple:",":apple:",":green_apple:",":peach:",":cherries:",":strawberry:",":rhino:",":rhinoceros:",":hamburger:",":pizza:",":meat_on_bone:",":lizard:",":poultry_leg:",":rice_cracker:",":rice_ball:",":gorilla:",":rice:",":curry:",":deer:",":ramen:",":spaghetti:",":bread:",":fries:",":butterfly:",":sweet_potato:",":dango:",":fox:",":fox_face:",":oden:",":sushi:",":owl:",":fried_shrimp:",":fish_cake:",":shark:",":icecream:",":bat:",":shaved_ice:",":regional_indicator_x:",":ice_cream:",":duck:",":doughnut:",":eagle:",":cookie:",":black_heart:",":chocolate_bar:",":candy:",":lollipop:",":custard:",":pudding:",":flan:",":honey_pot:",":fingers_crossed:",":hand_with_index_and_middle_finger_crossed:",":cake:",":bento:",":stew:",":handshake:",":shaking_hands:",":cooking:",":fork_and_knife:",":tea:",":sake:",":wine_glass:",":cocktail:",":tropical_drink:",":beer:",":beers:",":ribbon:",":gift:",":birthday:",":jack_o_lantern:",":left_facing_fist:",":left_fist:",":right_facing_fist:",":right_fist:",":christmas_tree:",":santa:",":fireworks:",":raised_back_of_hand:",":back_of_hand:",":sparkler:",":balloon:",":tada:",":confetti_ball:",":tanabata_tree:",":crossed_flags:",":call_me:",":call_me_hand:",":bamboo:",":man_dancing:",":male_dancer:",":dolls:",":selfie:",":flags:",":pregnant_woman:",":expecting_woman:",":wind_chime:",":face_palm:",":facepalm:",":shrug:",":rice_scene:",":school_satchel:",":mortar_board:",":carousel_horse:",":ferris_wheel:",":roller_coaster:",":fishing_pole_and_fish:",":microphone:",":movie_camera:",":cinema:",":headphones:",":mrs_claus:",":mother_christmas:",":art:",":man_in_tuxedo:",":tophat:",":circus_tent:",":prince:",":ticket:",":clapper:",":performing_arts:",":sneezing_face:",":sneeze:",":video_game:",":dart:",":slot_machine:",":8ball:",":game_die:",":bowling:",":flower_playing_cards:",":lying_face:",":liar:",":musical_note:",":notes:",":saxophone:",":drooling_face:",":drool:",":guitar:",":musical_keyboard:",":trumpet:",":rofl:",":rolling_on_the_floor_laughing:",":violin:",":musical_score:",":running_shirt_with_sash:",":nauseated_face:",":sick:",":tennis:",":ski:",":basketball:",":checkered_flag:",":clown:",":clown_face:",":snowboarder:",":runner:",":surfer:",":trophy:",":football:",":swimmer:",":house:",":house_with_garden:",":office:",":post_office:",":hospital:",":bank:",":atm:",":hotel:",":love_hotel:",":convenience_store:",":school:",":department_store:",":cowboy:",":face_with_cowboy_hat:",":factory:",":izakaya_lantern:",":japanese_castle:",":european_castle:",":snail:",":snake:",":racehorse:",":sheep:",":monkey:",":chicken:",":boar:",":elephant:",":octopus:",":shell:",":bug:",":ant:",":bee:",":beetle:",":fish:",":tropical_fish:",":blowfish:",":turtle:",":hatching_chick:",":baby_chick:",":hatched_chick:",":bird:",":penguin:",":koala:",":poodle:",":camel:",":dolphin:",":mouse:",":cow:",":tiger:",":rabbit:",":cat:",":dragon_face:",":whale:",":horse:",":monkey_face:",":dog:",":pig:",":frog:",":hamster:",":wolf:",":bear:",":panda_face:",":pig_nose:",":feet:",":paw_prints:",":eyes:",":ear:",":nose:",":lips:",":tongue:",":point_up_2:",":point_down:",":point_left:",":point_right:",":punch:",":wave:",":ok_hand:",":thumbsup:",":+1:",":thumbup:",":thumbsdown:",":-1:",":thumbdown:",":clap:",":open_hands:",":crown:",":womans_hat:",":eyeglasses:",":necktie:",":shirt:",":jeans:",":dress:",":kimono:",":bikini:",":womans_clothes:",":purse:",":handbag:",":pouch:",":mans_shoe:",":athletic_shoe:",":high_heel:",":sandal:",":boot:",":footprints:",":bust_in_silhouette:",":boy:",":girl:",":man:",":woman:",":family:",":couple:",":cop:",":dancers:",":bride_with_veil:",":person_with_blond_hair:",":man_with_gua_pi_mao:",":man_with_turban:",":older_man:",":older_woman:",":grandma:",":baby:",":construction_worker:",":princess:",":japanese_ogre:",":japanese_goblin:",":ghost:",":angel:",":alien:",":space_invader:",":imp:",":skull:",":skeleton:",":card_index:",":information_desk_person:",":guardsman:",":dancer:",":lipstick:",":nail_care:",":ledger:",":massage:",":notebook:",":haircut:",":notebook_with_decorative_cover:",":barber:",":closed_book:",":syringe:",":book:",":pill:",":green_book:",":kiss:",":blue_book:",":love_letter:",":orange_book:",":ring:",":books:",":gem:",":name_badge:",":couplekiss:",":scroll:",":bouquet:",":pencil:",":couple_with_heart:",":telephone_receiver:",":wedding:",":pager:",":fax:",":heartbeat:",":satellite:",":loudspeaker:",":broken_heart:",":mega:",":outbox_tray:",":two_hearts:",":inbox_tray:",":package:",":sparkling_heart:",":e-mail:",":email:",":incoming_envelope:",":heartpulse:",":envelope_with_arrow:",":mailbox_closed:",":cupid:",":mailbox:",":postbox:",":blue_heart:",":newspaper:",":iphone:",":green_heart:",":calling:",":vibration_mode:",":yellow_heart:",":mobile_phone_off:",":signal_strength:",":purple_heart:",":camera:",":video_camera:",":gift_heart:",":tv:",":radio:",":revolving_hearts:",":vhs:",":arrows_clockwise:",":heart_decoration:",":loud_sound:",":battery:",":diamond_shape_with_a_dot_inside:",":electric_plug:",":mag:",":bulb:",":mag_right:",":lock_with_ink_pen:",":anger:",":closed_lock_with_key:",":key:",":bomb:",":lock:",":unlock:",":zzz:",":bell:",":bookmark:",":boom:",":link:",":radio_button:",":sweat_drops:",":back:",":end:",":droplet:",":on:",":soon:",":dash:",":top:",":underage:",":poop:",":shit:",":hankey:",":poo:",":keycap_ten:",":muscle:",":capital_abcd:",":abcd:",":dizzy:",":1234:",":symbols:",":speech_balloon:",":abc:",":fire:",":flame:",":white_flower:",":flashlight:",":wrench:",":100:",":hammer:",":nut_and_bolt:",":moneybag:",":knife:",":gun:",":currency_exchange:",":crystal_ball:",":heavy_dollar_sign:",":six_pointed_star:",":credit_card:",":beginner:",":trident:",":yen:",":black_square_button:",":white_square_button:",":dollar:",":red_circle:",":blue_circle:",":money_with_wings:",":large_orange_diamond:",":large_blue_diamond:",":chart:",":small_orange_diamond:",":small_blue_diamond:",":seat:",":small_red_triangle:",":small_red_triangle_down:",":computer:",":arrow_up_small:",":briefcase:",":arrow_down_small:",":clock1:",":minidisc:",":clock2:",":floppy_disk:",":clock3:",":cd:",":clock4:",":dvd:",":clock5:",":clock6:",":file_folder:",":clock7:",":clock8:",":open_file_folder:",":clock9:",":clock10:",":page_with_curl:",":clock11:",":clock12:",":page_facing_up:",":mount_fuji:",":tokyo_tower:",":date:",":statue_of_liberty:",":japan:",":calendar:",":moyai:",":grin:",":joy:",":smiley:",":chart_with_upwards_trend:",":smile:",":sweat_smile:",":chart_with_downwards_trend:",":laughing:",":satisfied:",":wink:",":bar_chart:",":blush:",":yum:",":clipboard:",":relieved:",":heart_eyes:",":pushpin:",":smirk:",":unamused:",":round_pushpin:",":sweat:",":pensive:",":paperclip:",":confounded:",":kissing_heart:",":straight_ruler:",":kissing_closed_eyes:",":stuck_out_tongue_winking_eye:",":triangular_ruler:",":stuck_out_tongue_closed_eyes:",":disappointed:",":bookmark_tabs:",":angry:",":rage:",":cry:",":persevere:",":triumph:",":disappointed_relieved:",":fearful:",":weary:",":sleepy:",":tired_face:",":sob:",":cold_sweat:",":scream:",":astonished:",":flushed:",":dizzy_face:",":mask:",":smile_cat:",":joy_cat:",":smiley_cat:",":heart_eyes_cat:",":smirk_cat:",":kissing_cat:",":pouting_cat:",":crying_cat_face:",":scream_cat:",":no_good:",":ok_woman:",":bow:",":see_no_evil:",":hear_no_evil:",":speak_no_evil:",":raising_hand:",":raised_hands:",":person_frowning:",":person_with_pouting_face:",":pray:",":rocket:",":railway_car:",":bullettrain_side:",":bullettrain_front:",":metro:",":station:",":bus:",":busstop:",":ambulance:",":fire_engine:",":police_car:",":taxi:",":red_car:",":blue_car:",":truck:",":ship:",":speedboat:",":traffic_light:",":construction:",":rotating_light:",":triangular_flag_on_post:",":door:",":no_entry_sign:",":smoking:",":no_smoking:",":bike:",":walking:",":mens:",":womens:",":restroom:",":baby_symbol:",":toilet:",":wc:",":bath:",":metal:",":sign_of_the_horns:",":grinning:",":innocent:",":smiling_imp:",":sunglasses:",":neutral_face:",":expressionless:",":confused:",":kissing:",":kissing_smiling_eyes:",":stuck_out_tongue:",":worried:",":frowning:",":anguished:",":grimacing:",":open_mouth:",":hushed:",":sleeping:",":no_mouth:",":helicopter:",":steam_locomotive:",":train2:",":light_rail:",":tram:",":oncoming_bus:",":trolleybus:",":minibus:",":oncoming_police_car:",":oncoming_taxi:",":oncoming_automobile:",":articulated_lorry:",":tractor:",":monorail:",":mountain_railway:",":suspension_railway:",":mountain_cableway:",":aerial_tramway:",":rowboat:",":vertical_traffic_light:",":put_litter_in_its_place:",":do_not_litter:",":potable_water:",":non-potable_water:",":no_bicycles:",":bicyclist:",":mountain_bicyclist:",":no_pedestrians:",":children_crossing:",":shower:",":bathtub:",":passport_control:",":customs:",":baggage_claim:",":left_luggage:",":earth_africa:",":earth_americas:",":globe_with_meridians:",":waxing_crescent_moon:",":waning_gibbous_moon:",":last_quarter_moon:",":waning_crescent_moon:",":new_moon_with_face:",":last_quarter_moon_with_face:",":full_moon_with_face:",":sun_with_face:",":evergreen_tree:",":deciduous_tree:",":lemon:",":pear:",":baby_bottle:",":horse_racing:",":rugby_football:",":european_post_office:",":rat:",":mouse2:",":ox:",":water_buffalo:",":cow2:",":tiger2:",":leopard:",":rabbit2:",":cat2:",":dragon:",":crocodile:",":whale2:",":ram:",":goat:",":rooster:",":dog2:",":pig2:",":dromedary_camel:",":busts_in_silhouette:",":two_men_holding_hands:",":two_women_holding_hands:",":thought_balloon:",":euro:",":pound:",":mailbox_with_mail:",":mailbox_with_no_mail:",":postal_horn:",":no_mobile_phones:",":twisted_rightwards_arrows:",":repeat:",":repeat_one:",":arrows_counterclockwise:",":low_brightness:",":high_brightness:",":mute:",":sound:",":no_bell:",":microscope:",":telescope:",":clock130:",":clock230:",":clock330:",":clock430:",":clock530:",":clock630:",":clock730:",":clock830:",":clock930:",":clock1030:",":clock1130:",":clock1230:",":speaker:",":train:",":medal:",":sports_medal:",":flag_black:",":waving_black_flag:",":camera_with_flash:",":sleeping_accommodation:",":middle_finger:",":reversed_hand_with_middle_finger_extended:",":vulcan:",":raised_hand_with_part_between_middle_and_ring_fingers:",":slight_frown:",":slightly_frowning_face:",":slight_smile:",":slightly_smiling_face:",":airplane_departure:",":airplane_arriving:",":tone1:",":tone2:",":tone3:",":tone4:",":tone5:",":upside_down:",":upside_down_face:",":money_mouth:",":money_mouth_face:",":nerd:",":nerd_face:",":hugging:",":hugging_face:",":rolling_eyes:",":face_with_rolling_eyes:",":thinking:",":thinking_face:",":zipper_mouth:",":zipper_mouth_face:",":thermometer_face:",":face_with_thermometer:",":head_bandage:",":face_with_head_bandage:",":robot:",":robot_face:",":lion_face:",":lion:",":unicorn:",":unicorn_face:",":scorpion:",":crab:",":turkey:",":cheese:",":cheese_wedge:",":hotdog:",":hot_dog:",":taco:",":burrito:",":popcorn:",":champagne:",":bottle_with_popping_cork:",":bow_and_arrow:",":archery:",":amphora:",":place_of_worship:",":worship_symbol:",":kaaba:",":mosque:",":synagogue:",":menorah:",":prayer_beads:",":cricket:",":cricket_bat_ball:",":volleyball:",":field_hockey:",":hockey:",":ping_pong:",":table_tennis:",":badminton:",":drum:",":drum_with_drumsticks:",":shrimp:",":squid:",":egg:",":milk:",":glass_of_milk:",":peanuts:",":shelled_peanut:",":kiwi:",":kiwifruit:",":pancakes:",":regional_indicator_w:",":regional_indicator_v:",":regional_indicator_u:",":regional_indicator_t:",":regional_indicator_s:",":regional_indicator_r:",":regional_indicator_q:",":regional_indicator_p:",":regional_indicator_o:",":regional_indicator_n:",":regional_indicator_m:",":regional_indicator_l:",":regional_indicator_k:",":regional_indicator_j:",":regional_indicator_i:",":regional_indicator_h:",":regional_indicator_g:",":regional_indicator_f:",":regional_indicator_e:",":regional_indicator_d:",":regional_indicator_c:",":regional_indicator_b:",":regional_indicator_a:",":fast_forward:",":rewind:",":arrow_double_up:",":arrow_double_down:",":alarm_clock:",":hourglass_flowing_sand:",":ophiuchus:",":white_check_mark:",":fist:",":raised_hand:",":sparkles:",":x:",":negative_squared_cross_mark:",":question:",":grey_question:",":grey_exclamation:",":heavy_plus_sign:",":heavy_minus_sign:",":heavy_division_sign:",":curly_loop:",":loop:","emoji","tmpShortNames","shortnames","asciiList","<3","</3",":')",":'-)",":D",":-D","=D",":)",":-)","=]","=)",":]","':)","':-)","'=)","':D","':-D","'=D",">:)",">;)",">:-)",">=)",";)",";-)","*-)","*)",";-]",";]",";D",";^)","':(","':-(","'=(",":*",":-*","=*",":^*",">:P","X-P","x-p",">:[",":-(",":(",":-[",":[","=(",">:(",">:-(",":@",":'(",":'-(",";(",";-(",">.<","D:",":$","=$","#-)","#)","%-)","%)","X)","X-)","*\\0/*","\\0/","*\\O/*","\\O/","O:-)","0:-3","0:3","0:-)","0:)","0;^)","O:)","O;-)","O=)","0;-)","O:-3","O:3","B-)","B)","8)","8-)","B-D","8-D","-_-","-__-","-___-",">:\\",">:/",":-/",":-.",":/",":\\","=/","=\\",":L","=L",":P",":-P","=P",":-p",":p","=p",":-Þ",":Þ",":þ",":-þ",":-b",":b","d:",":-O",":O",":-o",":o","O_O",">:O",":-X",":X",":-#",":#","=X","=x",":x",":-x","=#","asciiRegexp","unicodeRegexp","jsEscapeMap","👩‍❤️‍💋‍👩","👩❤💋👩","👨‍❤️‍💋‍👨","👨❤💋👨","👨‍👨‍👦‍👦","👨👨👦👦","👨‍👨‍👧‍👦","👨👨👧👦","👨‍👨‍👧‍👧","👨👨👧👧","👨‍👩‍👦‍👦","👨👩👦👦","👨‍👩‍👧‍👦","👨👩👧👦","👨‍👩‍👧‍👧","👨👩👧👧","👩‍👩‍👦‍👦","👩👩👦👦","👩‍👩‍👧‍👦","👩👩👧👦","👩‍👩‍👧‍👧","👩👩👧👧","👩‍❤️‍👩","👩❤👩","👨‍❤️‍👨","👨❤👨","👨‍👨‍👦","👨👨👦","👨‍👨‍👧","👨👨👧","👨‍👩‍👧","👨👩👧","👩‍👩‍👦","👩👩👦","👩‍👩‍👧","👩👩👧","🏳️‍🌈","🏳🌈","👁‍🗨","👁🗨","#️⃣","#⃣","0️⃣","0⃣","1️⃣","1⃣","2️⃣","2⃣","3️⃣","3⃣","4️⃣","4⃣","5️⃣","5⃣","6️⃣","6⃣","7️⃣","7⃣","8️⃣","8⃣","9️⃣","9⃣","*️⃣","*⃣","🤾🏿","🤾🏾","🤾🏽","🤾🏼","🤾🏻","🤽🏿","🤽🏾","🤽🏽","🤽🏼","🤽🏻","🤼🏿","🤼🏾","🤼🏽","🤼🏼","🤼🏻","🤹🏿","🤹🏾","🤹🏽","🤹🏼","🤹🏻","🤸🏿","🤸🏾","🤸🏽","🤸🏼","🤸🏻","🤷🏿","🤷🏾","🤷🏽","🤷🏼","🤷🏻","🤶🏿","🤶🏾","🤶🏽","🤶🏼","🤶🏻","🤵🏿","🤵🏾","🤵🏽","🤵🏼","🤵🏻","🤴🏿","🤴🏾","🤴🏽","🤴🏼","🤴🏻","🤳🏿","🤳🏾","🤳🏽","🤳🏼","🤳🏻","🤰🏿","🤰🏾","🤰🏽","🤰🏼","🤰🏻","🤦🏿","🤦🏾","🤦🏽","🤦🏼","🤦🏻","🤞🏿","🤞🏾","🤞🏽","🤞🏼","🤞🏻","🤝🏿","🤝🏾","🤝🏽","🤝🏼","🤝🏻","🤜🏿","🤜🏾","🤜🏽","🤜🏼","🤜🏻","🤛🏿","🤛🏾","🤛🏽","🤛🏼","🤛🏻","🤚🏿","🤚🏾","🤚🏽","🤚🏼","🤚🏻","🤙🏿","🤙🏾","🤙🏽","🤙🏼","🤙🏻","🤘🏿","🤘🏾","🤘🏽","🤘🏼","🤘🏻","🛀🏿","🛀🏾","🛀🏽","🛀🏼","🛀🏻","🚶🏿","🚶🏾","🚶🏽","🚶🏼","🚶🏻","🚵🏿","🚵🏾","🚵🏽","🚵🏼","🚵🏻","🚴🏿","🚴🏾","🚴🏽","🚴🏼","🚴🏻","🚣🏿","🚣🏾","🚣🏽","🚣🏼","🚣🏻","🙏🏿","🙏🏾","🙏🏽","🙏🏼","🙏🏻","🙎🏿","🙎🏾","🙎🏽","🙎🏼","🙎🏻","🙍🏿","🙍🏾","🙍🏽","🙍🏼","🙍🏻","🙌🏿","🙌🏾","🙌🏽","🙌🏼","🙌🏻","🙋🏿","🙋🏾","🙋🏽","🙋🏼","🙋🏻","🙇🏿","🙇🏾","🙇🏽","🙇🏼","🙇🏻","🙆🏿","🙆🏾","🙆🏽","🙆🏼","🙆🏻","🙅🏿","🙅🏾","🙅🏽","🙅🏼","🙅🏻","🖖🏿","🖖🏾","🖖🏽","🖖🏼","🖖🏻","🖕🏿","🖕🏾","🖕🏽","🖕🏼","🖕🏻","🖐🏿","🖐🏾","🖐🏽","🖐🏼","🖐🏻","🕺🏿","🕺🏾","🕺🏽","🕺🏼","🕺🏻","🕵🏿","🕵🏾","🕵🏽","🕵🏼","🕵🏻","💪🏿","💪🏾","💪🏽","💪🏼","💪🏻","💇🏿","💇🏾","💇🏽","💇🏼","💇🏻","💆🏿","💆🏾","💆🏽","💆🏼","💆🏻","💅🏿","💅🏾","💅🏽","💅🏼","💅🏻","💃🏿","💃🏾","💃🏽","💃🏼","💃🏻","💂🏿","💂🏾","💂🏽","💂🏼","💂🏻","💁🏿","💁🏾","💁🏽","💁🏼","💁🏻","👼🏿","👼🏾","👼🏽","👼🏼","👼🏻","👸🏿","👸🏾","👸🏽","👸🏼","👸🏻","👷🏿","👷🏾","👷🏽","👷🏼","👷🏻","👶🏿","👶🏾","👶🏽","👶🏼","👶🏻","👵🏿","👵🏾","👵🏽","👵🏼","👵🏻","👴🏿","👴🏾","👴🏽","👴🏼","👴🏻","👳🏿","👳🏾","👳🏽","👳🏼","👳🏻","👲🏿","👲🏾","👲🏽","👲🏼","👲🏻","👱🏿","👱🏾","👱🏽","👱🏼","👱🏻","👰🏿","👰🏾","👰🏽","👰🏼","👰🏻","👮🏿","👮🏾","👮🏽","👮🏼","👮🏻","👩🏿","👩🏾","👩🏽","👩🏼","👩🏻","👨🏿","👨🏾","👨🏽","👨🏼","👨🏻","👧🏿","👧🏾","👧🏽","👧🏼","👧🏻","👦🏿","👦🏾","👦🏽","👦🏼","👦🏻","👐🏿","👐🏾","👐🏽","👐🏼","👐🏻","👏🏿","👏🏾","👏🏽","👏🏼","👏🏻","👎🏿","👎🏾","👎🏽","👎🏼","👎🏻","👍🏿","👍🏾","👍🏽","👍🏼","👍🏻","👌🏿","👌🏾","👌🏽","👌🏼","👌🏻","👋🏿","👋🏾","👋🏽","👋🏼","👋🏻","👊🏿","👊🏾","👊🏽","👊🏼","👊🏻","👉🏿","👉🏾","👉🏽","👉🏼","👉🏻","👈🏿","👈🏾","👈🏽","👈🏼","👈🏻","👇🏿","👇🏾","👇🏽","👇🏼","👇🏻","👆🏿","👆🏾","👆🏽","👆🏼","👆🏻","👃🏿","👃🏾","👃🏽","👃🏼","👃🏻","👂🏿","👂🏾","👂🏽","👂🏼","👂🏻","🏋🏿","🏋🏾","🏋🏽","🏋🏼","🏋🏻","🏊🏿","🏊🏾","🏊🏽","🏊🏼","🏊🏻","🏇🏿","🏇🏾","🏇🏽","🏇🏼","🏇🏻","🏄🏿","🏄🏾","🏄🏽","🏄🏼","🏄🏻","🏃🏿","🏃🏾","🏃🏽","🏃🏼","🏃🏻","🎅🏿","🎅🏾","🎅🏽","🎅🏼","🎅🏻","🇿🇼","🇿🇲","🇿🇦","🇾🇹","🇾🇪","🇽🇰","🇼🇸","🇼🇫","🇻🇺","🇻🇳","🇻🇮","🇻🇬","🇻🇪","🇻🇨","🇻🇦","🇺🇿","🇺🇾","🇺🇸","🇺🇲","🇺🇬","🇺🇦","🇹🇿","🇹🇼","🇹🇻","🇹🇹","🇹🇷","🇹🇴","🇹🇳","🇹🇲","🇹🇱","🇹🇰","🇹🇯","🇹🇭","🇹🇬","🇹🇫","🇹🇩","🇹🇨","🇹🇦","🇸🇿","🇸🇾","🇸🇽","🇸🇻","🇸🇹","🇸🇸","🇸🇷","🇸🇴","🇸🇳","🇸🇲","🇸🇱","🇸🇰","🇸🇯","🇸🇮","🇸🇭","🇸🇬","🇸🇪","🇸🇩","🇸🇨","🇸🇧","🇸🇦","🇷🇼","🇷🇺","🇷🇸","🇷🇴","🇷🇪","🇶🇦","🇵🇾","🇵🇼","🇵🇹","🇵🇸","🇵🇷","🇵🇳","🇵🇲","🇵🇱","🇵🇰","🇵🇭","🇵🇬","🇵🇫","🇵🇪","🇵🇦","🇴🇲","🇳🇿","🇳🇺","🇳🇷","🇳🇵","🇳🇴","🇳🇱","🇳🇮","🇳🇬","🇳🇫","🇳🇪","🇳🇨","🇳🇦","🇲🇿","🇲🇾","🇲🇽","🇲🇼","🇲🇻","🇲🇺","🇲🇹","🇲🇸","🇲🇷","🇲🇶","🇲🇵","🇲🇴","🇲🇳","🇲🇲","🇲🇱","🇲🇰","🇲🇭","🇲🇬","🇲🇫","🇲🇪","🇲🇩","🇲🇨","🇲🇦","🇱🇾","🇱🇻","🇱🇺","🇱🇹","🇱🇸","🇱🇷","🇱🇰","🇱🇮","🇱🇨","🇱🇧","🇱🇦","🇰🇿","🇰🇾","🇰🇼","🇰🇷","🇰🇵","🇰🇳","🇰🇲","🇰🇮","🇰🇭","🇰🇬","🇰🇪","🇯🇵","🇯🇴","🇯🇲","🇯🇪","🇮🇹","🇮🇸","🇮🇷","🇮🇶","🇮🇴","🇮🇳","🇮🇲","🇮🇱","🇮🇪","🇮🇩","🇮🇨","🇭🇺","🇭🇹","🇭🇷","🇭🇳","🇭🇲","🇭🇰","🇬🇾","🇬🇼","🇬🇺","🇬🇹","🇬🇸","🇬🇷","🇬🇶","🇬🇵","🇬🇳","🇬🇲","🇬🇱","🇬🇮","🇬🇭","🇬🇬","🇬🇫","🇬🇪","🇬🇩","🇬🇧","🇬🇦","🇫🇷","🇫🇴","🇫🇲","🇫🇰","🇫🇯","🇫🇮","🇪🇺","🇪🇹","🇪🇸","🇪🇷","🇪🇭","🇪🇬","🇪🇪","🇪🇨","🇪🇦","🇩🇿","🇩🇴","🇩🇲","🇩🇰","🇩🇯","🇩🇬","🇩🇪","🇨🇿","🇨🇾","🇨🇽","🇨🇼","🇨🇻","🇨🇺","🇨🇷","🇨🇵","🇨🇴","🇨🇳","🇨🇲","🇨🇱","🇨🇰","🇨🇮","🇨🇭","🇨🇬","🇨🇫","🇨🇩","🇨🇨","🇨🇦","🇧🇿","🇧🇾","🇧🇼","🇧🇻","🇧🇹","🇧🇸","🇧🇷","🇧🇶","🇧🇴","🇧🇳","🇧🇲","🇧🇱","🇧🇯","🇧🇮","🇧🇭","🇧🇬","🇧🇫","🇧🇪","🇧🇩","🇧🇧","🇧🇦","🇦🇿","🇦🇽","🇦🇼","🇦🇺","🇦🇹","🇦🇸","🇦🇷","🇦🇶","🇦🇴","🇦🇲","🇦🇱","🇦🇮","🇦🇬","🇦🇫","🇦🇪","🇦🇩","🇦🇨","🀄️","🀄","🅿️","🅿","🈂️","🈂","🈚️","🈚","🈯️","🈯","🈷️","🈷","🎞️","🎞","🎟️","🎟","🏋️","🏋","🏌️","🏌","🏍️","🏍","🏎️","🏎","🎖️","🎖","🎗️","🎗","🌶️","🌶","🌧️","🌧","🌨️","🌨","🌩️","🌩","🌪️","🌪","🌫️","🌫","🌬️","🌬","🐿️","🐿","🕷️","🕷","🕸️","🕸","🌡️","🌡","🎙️","🎙","🎚️","🎚","🎛️","🎛","🏳️","🏳","🏵️","🏵","🏷️","🏷","📽️","📽","🕉️","🕉","🕊️","🕊","🕯️","🕯","🕰️","🕰","🕳️","🕳","🕶️","🕶","🕹️","🕹","🖇️","🖇","🖊️","🖊","🖋️","🖋","🖌️","🖌","🖍️","🖍","🖥️","🖥","🖨️","🖨","🖲️","🖲","🖼️","🖼","🗂️","🗂","🗃️","🗃","🗄️","🗄","🗑️","🗑","🗒️","🗒","🗓️","🗓","🗜️","🗜","🗝️","🗝","🗞️","🗞","🗡️","🗡","🗣️","🗣","🗨️","🗨","🗯️","🗯","🗳️","🗳","🗺️","🗺","🛠️","🛠","🛡️","🛡","🛢️","🛢","🛰️","🛰","🍽️","🍽","👁️","👁","🕴️","🕴","🕵️","🕵","🖐️","🖐","🏔️","🏔","🏕️","🏕","🏖️","🏖","🏗️","🏗","🏘️","🏘","🏙️","🏙","🏚️","🏚","🏛️","🏛","🏜️","🏜","🏝️","🏝","🏞️","🏞","🏟️","🏟","🛋️","🛋","🛍️","🛍","🛎️","🛎","🛏️","🛏","🛣️","🛣","🛤️","🛤","🛥️","🛥","🛩️","🛩","🛳️","🛳","🌤️","🌤","🌥️","🌥","🌦️","🌦","🖱️","🖱","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","©️","©","®️","®","‼️","‼","⁉️","⁉","™️","™","ℹ️","ℹ","↔️","↔","↕️","↕","↖️","↖","↗️","↗","↘️","↘","↙️","↙","↩️","↩","↪️","↪","⌚️","⌚","⌛️","⌛","Ⓜ️","Ⓜ","▪️","▪","▫️","▫","▶️","▶","◀️","◀","◻️","◻","◼️","◼","◽️","◽","◾️","◾","☀️","☀","☁️","☁","☎️","☎","☑️","☑","☔️","☔","☕️","☕","☝️","☝","☺️","☺","♈️","♈","♉️","♉","♊️","♊","♋️","♋","♌️","♌","♍️","♍","♎️","♎","♏️","♏","♐️","♐","♑️","♑","♒️","♒","♓️","♓","♠️","♠","♣️","♣","♥️","♥","♦️","♦","♨️","♨","♻️","♻","♿️","♿","⚓️","⚓","⚠️","⚠","⚡️","⚡","⚪️","⚪","⚫️","⚫","⚽️","⚽","⚾️","⚾","⛄️","⛄","⛅️","⛅","⛔️","⛔","⛪️","⛪","⛲️","⛲","⛳️","⛳","⛵️","⛵","⛺️","⛺","⛽️","⛽","✂️","✂","✈️","✈","✉️","✉","✌️","✌","✏️","✏","✒️","✒","✔️","✔","✖️","✖","✳️","✳","✴️","✴","❄️","❄","❇️","❇","❗️","❗","❤️","❤","➡️","➡","⤴️","⤴","⤵️","⤵","⬅️","⬅","⬆️","⬆","⬇️","⬇","⬛️","⬛","⬜️","⬜","⭐️","⭐","⭕️","⭕","〰️","〰","〽️","〽","㊗️","㊗","㊙️","㊙","✝️","✝","⌨️","⌨","✍️","✍","⏏️","⏏","⏭️","⏭","⏮️","⏮","⏯️","⏯","⏱️","⏱","⏲️","⏲","⏸️","⏸","⏹️","⏹","⏺️","⏺","☂️","☂","☃️","☃","☄️","☄","☘️","☘","☠️","☠","☢️","☢","☣️","☣","☦️","☦","☪️","☪","☮️","☮","☯️","☯","☸️","☸","☹️","☹","⚒️","⚒","⚔️","⚔","⚖️","⚖","⚗️","⚗","⚙️","⚙","⚛️","⚛","⚜️","⚜","⚰️","⚰","⚱️","⚱","⛈️","⛈","⛏️","⛏","⛑️","⛑","⛓️","⛓","⛩️","⛩","⛰️","⛰","⛱️","⛱","⛴️","⛴","⛷️","⛷","⛸️","⛸","⛹️","⛹","✡️","✡","❣️","❣","🥉","🥈","🥇","🤺","🥅","🤾","🇿","🤽","🥋","🥊","🤼","🤹","🤸","🛶","🛵","🛴","🛒","🃏","🅰","🅱","🅾","🛑","🆎","🆑","🇾","🆒","🆓","🆔","🆕","🆖","🆗","🆘","🥄","🆙","🆚","🥂","🥃","🈁","🥙","🈲","🈳","🈴","🈵","🈶","🥘","🈸","🈹","🥗","🈺","🉐","🉑","🌀","🥖","🌁","🌂","🌃","🌄","🌅","🌆","🥕","🌇","🌈","🥔","🌉","🌊","🌋","🌌","🌏","🌑","🥓","🌓","🌔","🌕","🌙","🌛","🌟","🥒","🌠","🌰","🥑","🌱","🌴","🌵","🌷","🌸","🌹","🌺","🌻","🌼","🌽","🥐","🌾","🌿","🍀","🍁","🍂","🍃","🍄","🍅","🍆","🍇","🍈","🍉","🍊","🥀","🍌","🍍","🍎","🍏","🍑","🍒","🍓","🦏","🍔","🍕","🍖","🦎","🍗","🍘","🍙","🦍","🍚","🍛","🦌","🍜","🍝","🍞","🍟","🦋","🍠","🍡","🦊","🍢","🍣","🦉","🍤","🍥","🦈","🍦","🦇","🍧","🇽","🍨","🦆","🍩","🦅","🍪","🖤","🍫","🍬","🍭","🍮","🍯","🤞","🍰","🍱","🍲","🤝","🍳","🍴","🍵","🍶","🍷","🍸","🍹","🍺","🍻","🎀","🎁","🎂","🎃","🤛","🤜","🎄","🎅","🎆","🤚","🎇","🎈","🎉","🎊","🎋","🎌","🤙","🎍","🕺","🎎","🤳","🎏","🤰","🎐","🤦","🤷","🎑","🎒","🎓","🎠","🎡","🎢","🎣","🎤","🎥","🎦","🎧","🤶","🎨","🤵","🎩","🎪","🤴","🎫","🎬","🎭","🤧","🎮","🎯","🎰","🎱","🎲","🎳","🎴","🤥","🎵","🎶","🎷","🤤","🎸","🎹","🎺","🤣","🎻","🎼","🎽","🤢","🎾","🎿","🏀","🏁","🤡","🏂","🏃","🏄","🏆","🏈","🏊","🏠","🏡","🏢","🏣","🏥","🏦","🏧","🏨","🏩","🏪","🏫","🏬","🤠","🏭","🏮","🏯","🏰","🐌","🐍","🐎","🐑","🐒","🐔","🐗","🐘","🐙","🐚","🐛","🐜","🐝","🐞","🐟","🐠","🐡","🐢","🐣","🐤","🐥","🐦","🐧","🐨","🐩","🐫","🐬","🐭","🐮","🐯","🐰","🐱","🐲","🐳","🐴","🐵","🐶","🐷","🐸","🐹","🐺","🐻","🐼","🐽","🐾","👀","👂","👃","👄","👅","👆","👇","👈","👉","👊","👋","👌","👍","👎","👏","👐","👑","👒","👓","👔","👕","👖","👗","👘","👙","👚","👛","👜","👝","👞","👟","👠","👡","👢","👣","👤","👦","👧","👨","👩","👪","👫","👮","👯","👰","👱","👲","👳","👴","👵","👶","👷","👸","👹","👺","👻","👼","👽","👾","👿","💀","📇","💁","💂","💃","💄","💅","📒","💆","📓","💇","📔","💈","📕","💉","📖","💊","📗","💋","📘","💌","📙","💍","📚","💎","📛","💏","📜","💐","📝","💑","📞","💒","📟","📠","💓","📡","📢","💔","📣","📤","💕","📥","📦","💖","📧","📨","💗","📩","📪","💘","📫","📮","💙","📰","📱","💚","📲","📳","💛","📴","📶","💜","📷","📹","💝","📺","📻","💞","📼","🔃","💟","🔊","🔋","💠","🔌","🔍","💡","🔎","🔏","💢","🔐","🔑","💣","🔒","🔓","💤","🔔","🔖","💥","🔗","🔘","💦","🔙","🔚","💧","🔛","🔜","💨","🔝","🔞","💩","🔟","💪","🔠","🔡","💫","🔢","🔣","💬","🔤","🔥","💮","🔦","🔧","💯","🔨","🔩","💰","🔪","🔫","💱","🔮","💲","🔯","💳","🔰","🔱","💴","🔲","🔳","💵","🔴","🔵","💸","🔶","🔷","💹","🔸","🔹","💺","🔺","🔻","💻","🔼","💼","🔽","🕐","💽","🕑","💾","🕒","💿","🕓","📀","🕔","🕕","📁","🕖","🕗","📂","🕘","🕙","📃","🕚","🕛","📄","🗻","🗼","📅","🗽","🗾","📆","🗿","😁","😂","😃","📈","😄","😅","📉","😆","😉","📊","😊","😋","📋","😌","😍","📌","😏","😒","📍","😓","😔","📎","😖","😘","📏","😚","😜","📐","😝","😞","📑","😠","😡","😢","😣","😤","😥","😨","😩","😪","😫","😭","😰","😱","😲","😳","😵","😷","😸","😹","😺","😻","😼","😽","😾","😿","🙀","🙅","🙆","🙇","🙈","🙉","🙊","🙋","🙌","🙍","🙎","🙏","🚀","🚃","🚄","🚅","🚇","🚉","🚌","🚏","🚑","🚒","🚓","🚕","🚗","🚙","🚚","🚢","🚤","🚥","🚧","🚨","🚩","🚪","🚫","🚬","🚭","🚲","🚶","🚹","🚺","🚻","🚼","🚽","🚾","🛀","🤘","😀","😇","😈","😎","😐","😑","😕","😗","😙","😛","😟","😦","😧","😬","😮","😯","😴","😶","🚁","🚂","🚆","🚈","🚊","🚍","🚎","🚐","🚔","🚖","🚘","🚛","🚜","🚝","🚞","🚟","🚠","🚡","🚣","🚦","🚮","🚯","🚰","🚱","🚳","🚴","🚵","🚷","🚸","🚿","🛁","🛂","🛃","🛄","🛅","🌍","🌎","🌐","🌒","🌖","🌗","🌘","🌚","🌜","🌝","🌞","🌲","🌳","🍋","🍐","🍼","🏇","🏉","🏤","🐀","🐁","🐂","🐃","🐄","🐅","🐆","🐇","🐈","🐉","🐊","🐋","🐏","🐐","🐓","🐕","🐖","🐪","👥","👬","👭","💭","💶","💷","📬","📭","📯","📵","🔀","🔁","🔂","🔄","🔅","🔆","🔇","🔉","🔕","🔬","🔭","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","🔈","🚋","🏅","🏴","📸","🛌","🖕","🖖","🙁","🙂","🛫","🛬","🏻","🏼","🏽","🏾","🏿","🙃","🤑","🤓","🤗","🙄","🤔","🤐","🤒","🤕","🤖","🦁","🦄","🦂","🦀","🦃","🧀","🌭","🌮","🌯","🍿","🍾","🏹","🏺","🛐","🕋","🕌","🕍","🕎","📿","🏏","🏐","🏑","🏒","🏓","🏸","🥁","🦐","🦑","🥚","🥛","🥜","🥝","🥞","🇼","🇻","🇺","🇹","🇸","🇷","🇶","🇵","🇴","🇳","🇲","🇱","🇰","🇯","🇮","🇭","🇬","🇫","🇪","🇩","🇨","🇧","🇦","⏩","⏪","⏫","⏬","⏰","⏳","⛎","✅","✊","✋","✨","❌","❎","❓","❔","❕","➕","➖","➗","➰","➿","imagePathPNG","imagePathSVG","imagePathSVGSprites","imageType","imageTitleTag","sprites","unicodeAlt","ascii","cacheBustParam","regShortNames","regAscii","regUnicode","toImage","unicodeToImage","shortnameToImage","unifyUnicode","toShort","shortnameToUnicode","shortnameToAscii","unicodeToAscii","objectFlip","shortname","convert","entire","m3","unescapeHTML","escapeHTML","mappedUnicode","mapUnicodeToShort","unicodeChar","getUnicodeReplacementRegEx","replacementList","mapUnicodeCharactersToShort","replaceAll","escaped","unescaped","&#x26;","&#x3C;","&#x3E;","&#x22;","&#x27;","mapEmojioneList","addToMapStorage","memMapShortToUnicode","memoizeReplacement","unicodeReplacementRegEx","memMapShortToUnicodeCharacters","unicodeList","emojiCharacter","tmp_obj","escapeRegExp","escapedFind","emojione"],"mappings":"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,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,OAA2B,cAAcC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,KAAe,QAAQC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,MAAqB,aAAaC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,YAAYC,IAAS,OAAOC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe;AAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,KAAe,QAAQC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOC,IAAS,OAAOnoC,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAOE,IAAS,OAAO9Z,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQE,KAAe,QAAQkW,IAAS,OAAOhW,KAAe,QAAQ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","file":"jsxc.dep.min.js"} \ No newline at end of file
diff --git a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js b/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js
index 01f6f38..927b3c1 100644
--- a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js
+++ b/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.js
@@ -1,6 +1,6 @@
-/*! Magnific Popup - v1.0.0 - 2015-01-03
+/*! Magnific Popup - v1.1.0 - 2016-02-20
* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2015 Dmitry Semenov; */
+* Copyright (c) 2016 Dmitry Semenov; */
;(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
@@ -136,9 +136,7 @@ MagnificPopup.prototype = {
*/
init: function() {
var appVersion = navigator.appVersion;
- mfp.isIE7 = appVersion.indexOf("MSIE 7.") !== -1;
- mfp.isIE8 = appVersion.indexOf("MSIE 8.") !== -1;
- mfp.isLowIE = mfp.isIE7 || mfp.isIE8;
+ mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
mfp.isAndroid = (/android/gi).test(appVersion);
mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
mfp.supportsTransition = supportsTransitions();
@@ -446,7 +444,7 @@ MagnificPopup.prototype = {
}
- if(mfp._lastFocusedEl) {
+ if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
$(mfp._lastFocusedEl).focus(); // put tab focus back
}
mfp.currItem = null;
@@ -493,17 +491,13 @@ MagnificPopup.prototype = {
item = mfp.parseEl( mfp.index );
}
- var type = item.type;
+ var type = item.type;
_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
// BeforeChange event works like so:
// _mfpOn('BeforeChange', function(e, prevType, newType) { });
-
- mfp.currItem = item;
-
-
-
+ mfp.currItem = item;
if(!mfp.currTemplate[type]) {
var markup = mfp.st[type] ? mfp.st[type].markup : false;
@@ -522,7 +516,7 @@ MagnificPopup.prototype = {
if(_prevContentType && _prevContentType !== item.type) {
mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
}
-
+
var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
mfp.appendContent(newContent, type);
@@ -530,7 +524,7 @@ MagnificPopup.prototype = {
_mfpTrigger(CHANGE_EVENT, item);
_prevContentType = item.type;
-
+
// Append container back after its content changed
mfp.container.prepend(mfp.contentContainer);
@@ -543,7 +537,7 @@ MagnificPopup.prototype = {
*/
appendContent: function(newContent, type) {
mfp.content = newContent;
-
+
if(newContent) {
if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
mfp.currTemplate[type] === true) {
@@ -565,8 +559,6 @@ MagnificPopup.prototype = {
},
-
-
/**
* Creates Magnific Popup data object based on given data
* @param {int} index Index of item to parse
@@ -620,11 +612,11 @@ MagnificPopup.prototype = {
if(!options) {
options = {};
- }
+ }
var eName = 'click.magnificPopup';
options.mainEl = el;
-
+
if(options.items) {
options.isObj = true;
el.off(eName).on(eName, eHandler);
@@ -642,7 +634,7 @@ MagnificPopup.prototype = {
var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
- if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey ) ) {
+ if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
return;
}
@@ -659,7 +651,7 @@ MagnificPopup.prototype = {
}
}
}
-
+
if(e.type) {
e.preventDefault();
@@ -668,7 +660,6 @@ MagnificPopup.prototype = {
e.stopPropagation();
}
}
-
options.el = $(e.mfpEl);
if(options.delegate) {
@@ -797,7 +788,7 @@ MagnificPopup.prototype = {
if(el.is('img')) {
el.attr('src', value);
} else {
- el.replaceWith( '<img src="'+value+'" class="' + el.attr('class') + '" />' );
+ el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
}
} else {
el.attr(arr[1], value);
@@ -836,14 +827,13 @@ $.magnificPopup = {
modules: [],
open: function(options, index) {
- _checkInstance();
+ _checkInstance();
if(!options) {
options = {};
} else {
options = $.extend(true, {}, options);
}
-
options.isObj = true;
options.index = index || 0;
@@ -858,16 +848,16 @@ $.magnificPopup = {
if(module.options) {
$.magnificPopup.defaults[name] = module.options;
}
- $.extend(this.proto, module.proto);
+ $.extend(this.proto, module.proto);
this.modules.push(name);
},
- defaults: {
+ defaults: {
// Info about options is in docs:
// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
-
- disableOn: 0,
+
+ disableOn: 0,
key: null,
@@ -878,12 +868,12 @@ $.magnificPopup = {
preloader: true,
focus: '', // CSS selector of input to focus after popup is opened
-
+
closeOnContentClick: false,
closeOnBgClick: true,
- closeBtnInside: true,
+ closeBtnInside: true,
showCloseBtn: true,
@@ -892,22 +882,24 @@ $.magnificPopup = {
modal: false,
alignTop: false,
-
+
removalDelay: 0,
prependTo: null,
-
- fixedContentPos: 'auto',
-
+
+ fixedContentPos: 'auto',
+
fixedBgPos: 'auto',
overflowY: 'auto',
- closeMarkup: '<button title="%title%" type="button" class="mfp-close">&times;</button>',
+ closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
tClose: 'Close (Esc)',
- tLoading: 'Loading...'
+ tLoading: 'Loading...',
+
+ autoFocusLast: true
}
};
@@ -945,9 +937,9 @@ $.fn.magnificPopup = function(options) {
} else {
// clone options obj
options = $.extend(true, {}, options);
-
+
/*
- * As Zepto doesn't support .data() method for objects
+ * As Zepto doesn't support .data() method for objects
* and it works only in normal browsers
* we assign "options" object directly to the DOM element. FTW!
*/
@@ -963,33 +955,13 @@ $.fn.magnificPopup = function(options) {
return jqEl;
};
-
-//Quick benchmark
-/*
-var start = performance.now(),
- i,
- rounds = 1000;
-
-for(i = 0; i < rounds; i++) {
-
-}
-console.log('Test #1:', performance.now() - start);
-
-start = performance.now();
-for(i = 0; i < rounds; i++) {
-
-}
-console.log('Test #2:', performance.now() - start);
-*/
-
-
/*>>core*/
/*>>inline*/
var INLINE_NS = 'inline',
_hiddenClass,
- _inlinePlaceholder,
+ _inlinePlaceholder,
_lastInlineElement,
_putInlineElementsBack = function() {
if(_lastInlineElement) {
@@ -1134,18 +1106,12 @@ $.magnificPopup.registerModule(AJAX_NS, {
}
});
-
-
-
-
-
-
/*>>ajax*/
/*>>image*/
var _imgInterval,
_getTitle = function(item) {
- if(item.data && item.data.title !== undefined)
+ if(item.data && item.data.title !== undefined)
return item.data.title;
var src = mfp.st.image.titleSrc;
@@ -1176,7 +1142,7 @@ $.magnificPopup.registerModule('image', {
'</figure>'+
'</div>',
cursor: 'mfp-zoom-out-cur',
- titleSrc: 'title',
+ titleSrc: 'title',
verticalFit: true,
tError: '<a href="%url%">The image</a> could not be loaded.'
},
@@ -1221,13 +1187,13 @@ $.magnificPopup.registerModule('image', {
},
_onImageHasSize: function(item) {
if(item.img) {
-
+
item.hasSize = true;
if(_imgInterval) {
clearInterval(_imgInterval);
}
-
+
item.isCheckingImgSize = false;
_mfpTrigger('ImageHasSize', item);
@@ -1235,7 +1201,7 @@ $.magnificPopup.registerModule('image', {
if(item.imgHidden) {
if(mfp.content)
mfp.content.removeClass('mfp-loading');
-
+
item.imgHidden = false;
}
@@ -1288,7 +1254,7 @@ $.magnificPopup.registerModule('image', {
if(item) {
if (item.img[0].complete) {
item.img.off('.mfploader');
-
+
if(item === mfp.currItem){
mfp._onImageHasSize(item);
@@ -1299,7 +1265,7 @@ $.magnificPopup.registerModule('image', {
item.loaded = true;
_mfpTrigger('ImageLoadComplete');
-
+
}
else {
// if image complete check fails 200 times (20 sec), we assume that there was an error.
@@ -1349,7 +1315,7 @@ $.magnificPopup.registerModule('image', {
img = item.img[0];
if(img.naturalWidth > 0) {
item.hasSize = true;
- } else if(!img.width) {
+ } else if(!img.width) {
item.hasSize = false;
}
}
@@ -1381,15 +1347,13 @@ $.magnificPopup.registerModule('image', {
item.imgHidden = true;
template.addClass('mfp-loading');
mfp.findImageSize(item);
- }
+ }
return template;
}
}
});
-
-
/*>>image*/
/*>>zoom*/
@@ -1398,7 +1362,7 @@ var hasMozTransform,
if(hasMozTransform === undefined) {
hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
}
- return hasMozTransform;
+ return hasMozTransform;
};
$.magnificPopup.registerModule('zoom', {
@@ -1418,7 +1382,7 @@ $.magnificPopup.registerModule('zoom', {
var zoomSt = mfp.st.zoom,
ns = '.zoom',
image;
-
+
if(!zoomSt.enabled || !mfp.supportsTransition) {
return;
}
@@ -1454,7 +1418,7 @@ $.magnificPopup.registerModule('zoom', {
mfp.content.css('visibility', 'hidden');
// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
-
+
image = mfp._getItemToZoom();
if(!image) {
@@ -1462,8 +1426,8 @@ $.magnificPopup.registerModule('zoom', {
return;
}
- animatedImg = getElToAnimate(image);
-
+ animatedImg = getElToAnimate(image);
+
animatedImg.css( mfp._getOffset() );
mfp.wrap.append(animatedImg);
@@ -1478,7 +1442,7 @@ $.magnificPopup.registerModule('zoom', {
animatedImg.remove();
image = animatedImg = null;
_mfpTrigger('ZoomAnimationEnded');
- }, 16); // avoid blink when switching images
+ }, 16); // avoid blink when switching images
}, duration); // this timeout equals animation duration
@@ -1502,12 +1466,11 @@ $.magnificPopup.registerModule('zoom', {
}
animatedImg = getElToAnimate(image);
}
-
-
+
animatedImg.css( mfp._getOffset(true) );
mfp.wrap.append(animatedImg);
mfp.content.css('visibility', 'hidden');
-
+
setTimeout(function() {
animatedImg.css( mfp._getOffset() );
}, 16);
@@ -1522,7 +1485,7 @@ $.magnificPopup.registerModule('zoom', {
animatedImg.remove();
}
image = null;
- }
+ }
});
},
@@ -1554,7 +1517,7 @@ $.magnificPopup.registerModule('zoom', {
/*
-
+
Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
*/
@@ -1585,11 +1548,11 @@ $.magnificPopup.registerModule('zoom', {
var IFRAME_NS = 'iframe',
_emptyPage = '//about:blank',
-
+
_fixIframeBugs = function(isShowing) {
if(mfp.currTemplate[IFRAME_NS]) {
var el = mfp.currTemplate[IFRAME_NS].find('iframe');
- if(el.length) {
+ if(el.length) {
// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
if(!isShowing) {
el[0].src = _emptyPage;
@@ -1616,8 +1579,8 @@ $.magnificPopup.registerModule(IFRAME_NS, {
// we don't care and support only one default type of URL by default
patterns: {
youtube: {
- index: 'youtube.com',
- id: 'v=',
+ index: 'youtube.com',
+ id: 'v=',
src: '//www.youtube.com/embed/%id%?autoplay=1'
},
vimeo: {
@@ -1642,7 +1605,7 @@ $.magnificPopup.registerModule(IFRAME_NS, {
_fixIframeBugs(); // iframe if removed
} else if(newType === IFRAME_NS) {
_fixIframeBugs(true); // iframe is showing
- }
+ }
}// else {
// iframe source is switched, don't do anything
//}
@@ -1656,7 +1619,7 @@ $.magnificPopup.registerModule(IFRAME_NS, {
getIframe: function(item, template) {
var embedSrc = item.src;
var iframeSt = mfp.st.iframe;
-
+
$.each(iframeSt.patterns, function() {
if(embedSrc.indexOf( this.index ) > -1) {
if(this.id) {
@@ -1670,7 +1633,7 @@ $.magnificPopup.registerModule(IFRAME_NS, {
return false; // break;
}
});
-
+
var dataObj = {};
if(iframeSt.srcAction) {
dataObj[iframeSt.srcAction] = embedSrc;
@@ -1723,11 +1686,10 @@ $.magnificPopup.registerModule('gallery', {
initGallery: function() {
var gSt = mfp.st.gallery,
- ns = '.mfp-gallery',
- supportsFastClick = Boolean($.fn.mfpFastClick);
+ ns = '.mfp-gallery';
mfp.direction = true; // true - next, false - prev
-
+
if(!gSt || !gSt.enabled ) return false;
_wrapClasses += ' mfp-gallery';
@@ -1766,24 +1728,15 @@ $.magnificPopup.registerModule('gallery', {
_mfpOn('BuildControls' + ns, function() {
if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
var markup = gSt.arrowMarkup,
- arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
+ arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
- var eName = supportsFastClick ? 'mfpFastClick' : 'click';
- arrowLeft[eName](function() {
+ arrowLeft.click(function() {
mfp.prev();
- });
- arrowRight[eName](function() {
+ });
+ arrowRight.click(function() {
mfp.next();
- });
-
- // Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b)
- if(mfp.isIE7) {
- _getEl('b', arrowLeft[0], false, true);
- _getEl('a', arrowLeft[0], false, true);
- _getEl('b', arrowRight[0], false, true);
- _getEl('a', arrowRight[0], false, true);
- }
+ });
mfp.container.append(arrowLeft.add(arrowRight));
}
@@ -1795,21 +1748,17 @@ $.magnificPopup.registerModule('gallery', {
mfp._preloadTimeout = setTimeout(function() {
mfp.preloadNearbyImages();
mfp._preloadTimeout = null;
- }, 16);
+ }, 16);
});
_mfpOn(CLOSE_EVENT+ns, function() {
_document.off(ns);
mfp.wrap.off('click'+ns);
-
- if(mfp.arrowLeft && supportsFastClick) {
- mfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick();
- }
mfp.arrowRight = mfp.arrowLeft = null;
});
- },
+ },
next: function() {
mfp.direction = true;
mfp.index = _getLoopedId(mfp.index + 1);
@@ -1868,58 +1817,6 @@ $.magnificPopup.registerModule('gallery', {
}
});
-/*
-Touch Support that might be implemented some day
-
-addSwipeGesture: function() {
- var startX,
- moved,
- multipleTouches;
-
- return;
-
- var namespace = '.mfp',
- addEventNames = function(pref, down, move, up, cancel) {
- mfp._tStart = pref + down + namespace;
- mfp._tMove = pref + move + namespace;
- mfp._tEnd = pref + up + namespace;
- mfp._tCancel = pref + cancel + namespace;
- };
-
- if(window.navigator.msPointerEnabled) {
- addEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');
- } else if('ontouchstart' in window) {
- addEventNames('touch', 'start', 'move', 'end', 'cancel');
- } else {
- return;
- }
- _window.on(mfp._tStart, function(e) {
- var oE = e.originalEvent;
- multipleTouches = moved = false;
- startX = oE.pageX || oE.changedTouches[0].pageX;
- }).on(mfp._tMove, function(e) {
- if(e.originalEvent.touches.length > 1) {
- multipleTouches = e.originalEvent.touches.length;
- } else {
- //e.preventDefault();
- moved = true;
- }
- }).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) {
- if(moved && !multipleTouches) {
- var oE = e.originalEvent,
- diff = startX - (oE.pageX || oE.changedTouches[0].pageX);
-
- if(diff > 20) {
- mfp.next();
- } else if(diff < -20) {
- mfp.prev();
- }
- }
- });
-},
-*/
-
-
/*>>gallery*/
/*>>retina*/
@@ -1960,101 +1857,4 @@ $.magnificPopup.registerModule(RETINA_NS, {
});
/*>>retina*/
-
-/*>>fastclick*/
-/**
- * FastClick event implementation. (removes 300ms delay on touch devices)
- * Based on https://developers.google.com/mobile/articles/fast_buttons
- *
- * You may use it outside the Magnific Popup by calling just:
- *
- * $('.your-el').mfpFastClick(function() {
- * console.log('Clicked!');
- * });
- *
- * To unbind:
- * $('.your-el').destroyMfpFastClick();
- *
- *
- * Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound.
- * If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick
- *
- */
-
-(function() {
- var ghostClickDelay = 1000,
- supportsTouch = 'ontouchstart' in window,
- unbindTouchMove = function() {
- _window.off('touchmove'+ns+' touchend'+ns);
- },
- eName = 'mfpFastClick',
- ns = '.'+eName;
-
-
- // As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way
- $.fn.mfpFastClick = function(callback) {
-
- return $(this).each(function() {
-
- var elem = $(this),
- lock;
-
- if( supportsTouch ) {
-
- var timeout,
- startX,
- startY,
- pointerMoved,
- point,
- numPointers;
-
- elem.on('touchstart' + ns, function(e) {
- pointerMoved = false;
- numPointers = 1;
-
- point = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0];
- startX = point.clientX;
- startY = point.clientY;
-
- _window.on('touchmove'+ns, function(e) {
- point = e.originalEvent ? e.originalEvent.touches : e.touches;
- numPointers = point.length;
- point = point[0];
- if (Math.abs(point.clientX - startX) > 10 ||
- Math.abs(point.clientY - startY) > 10) {
- pointerMoved = true;
- unbindTouchMove();
- }
- }).on('touchend'+ns, function(e) {
- unbindTouchMove();
- if(pointerMoved || numPointers > 1) {
- return;
- }
- lock = true;
- e.preventDefault();
- clearTimeout(timeout);
- timeout = setTimeout(function() {
- lock = false;
- }, ghostClickDelay);
- callback();
- });
- });
-
- }
-
- elem.on('click' + ns, function() {
- if(!lock) {
- callback();
- }
- });
- });
- };
-
- $.fn.destroyMfpFastClick = function() {
- $(this).off('touchstart' + ns + ' click' + ns);
- if(supportsTouch) _window.off('touchmove'+ns+' touchend'+ns);
- };
-})();
-
-/*>>fastclick*/
_checkInstance(); })); \ No newline at end of file
diff --git a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js b/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js
index ad353b9..6ee3a3b 100644
--- a/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js
+++ b/build/js/jsxc/lib/magnific-popup/dist/jquery.magnific-popup.min.js
@@ -1,4 +1,4 @@
-/*! Magnific Popup - v1.0.0 - 2015-01-03
+/*! Magnific Popup - v1.1.0 - 2016-02-20
* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2015 Dmitry Semenov; */
-!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",b.ev=c.mainEl&&c.mainEl.length?c.mainEl.eq(0):d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.wrap.css(b.fixedContentPos?{overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}:{top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),b.currTemplate[d]=f?a(f):!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||2!==c.which&&!c.ctrlKey&&!c.metaKey){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(x("b",e[0],!1,!0),x("a",e[0],!1,!0),x("b",f[0],!1,!0),x("a",f[0],!1,!0)),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b=1e3,c="ontouchstart"in window,d=function(){v.off("touchmove"+f+" touchend"+f)},e="mfpFastClick",f="."+e;a.fn.mfpFastClick=function(e){return a(this).each(function(){var g,h=a(this);if(c){var i,j,k,l,m,n;h.on("touchstart"+f,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],j=m.clientX,k=m.clientY,v.on("touchmove"+f,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-j)>10||Math.abs(m.clientY-k)>10)&&(l=!0,d())}).on("touchend"+f,function(a){d(),l||n>1||(g=!0,a.preventDefault(),clearTimeout(i),i=setTimeout(function(){g=!1},b),e())})})}h.on("click"+f,function(){g||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+f+" click"+f),c&&v.off("touchmove"+f+" touchend"+f)}}(),A()}); \ No newline at end of file
+* Copyright (c) 2016 Dmitry Semenov; */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()}); \ No newline at end of file
diff --git a/build/js/jsxc/lib/strophe.chatstates/index.js b/build/js/jsxc/lib/strophe.chatstates/index.js
new file mode 100644
index 0000000..4343b58
--- /dev/null
+++ b/build/js/jsxc/lib/strophe.chatstates/index.js
@@ -0,0 +1,80 @@
+/**
+ * Chat state notifications (XEP 0085) plugin
+ * @see http://xmpp.org/extensions/xep-0085.html
+ */
+Strophe.addConnectionPlugin('chatstates',
+{
+ init: function (connection)
+ {
+ this._connection = connection;
+
+ Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates');
+ },
+
+ statusChanged: function (status)
+ {
+ if (status === Strophe.Status.CONNECTED
+ || status === Strophe.Status.ATTACHED)
+ {
+ this._connection.addHandler(this._notificationReceived.bind(this),
+ Strophe.NS.CHATSTATES, "message");
+ }
+ },
+
+ addActive: function(message)
+ {
+ return message.c('active', {xmlns: Strophe.NS.CHATSTATES}).up();
+ },
+
+ _notificationReceived: function(message)
+ {
+ var composing = $(message).find('composing'),
+ paused = $(message).find('paused'),
+ active = $(message).find('active'),
+ jid = $(message).attr('from');
+
+ if (composing.length > 0)
+ {
+ $(document).trigger('composing.chatstates', jid);
+ }
+
+ if (paused.length > 0)
+ {
+ $(document).trigger('paused.chatstates', jid);
+ }
+
+ if (active.length > 0)
+ {
+ $(document).trigger('active.chatstates', jid);
+ }
+
+ return true;
+ },
+
+ sendActive: function(jid, type)
+ {
+ this._sendNotification(jid, type, 'active');
+ },
+
+ sendComposing: function(jid, type)
+ {
+ this._sendNotification(jid, type, 'composing');
+ },
+
+ sendPaused: function(jid, type)
+ {
+ this._sendNotification(jid, type, 'paused');
+ },
+
+ _sendNotification: function(jid, type, notification)
+ {
+ if (!type) type = 'chat';
+
+ this._connection.send($msg(
+ {
+ to: jid,
+ type: type
+ })
+ .c(notification, {xmlns: Strophe.NS.CHATSTATES}));
+ }
+});
diff --git a/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js b/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js
index a6d2512..94c8766 100644
--- a/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js
+++ b/build/js/jsxc/lib/strophe.jinglejs/strophe.jinglejs-bundle.js
@@ -1,19 +1,259 @@
/*!
- * strophe.jinglejs v0.1.1 - 2015-11-27
+ * strophe.jinglejs v0.1.2 - 2017-01-12
*
- * Copyright (c) 2015 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see https://github.com/sualko/strophe.jinglejs/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 0.1.1
+ * @version 0.1.2
* @license MIT
*/
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true };
+},{"core-js/library/fn/object/assign":8}],2:[function(require,module,exports){
+"use strict";
+
+exports["default"] = function (obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+};
+
+exports.__esModule = true;
+},{}],3:[function(require,module,exports){
+'use strict'
+
+exports.byteLength = byteLength
+exports.toByteArray = toByteArray
+exports.fromByteArray = fromByteArray
+
+var lookup = []
+var revLookup = []
+var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
+
+var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
+for (var i = 0, len = code.length; i < len; ++i) {
+ lookup[i] = code[i]
+ revLookup[code.charCodeAt(i)] = i
+}
+
+revLookup['-'.charCodeAt(0)] = 62
+revLookup['_'.charCodeAt(0)] = 63
+
+function placeHoldersCount (b64) {
+ var len = b64.length
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+
+ // the number of equal signs (place holders)
+ // if there are two placeholders, than the two characters before it
+ // represent one byte
+ // if there is only one, then the three characters before it represent 2 bytes
+ // this is just a cheap hack to not do indexOf twice
+ return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0
+}
+
+function byteLength (b64) {
+ // base64 is 4/3 + up to two characters of the original data
+ return b64.length * 3 / 4 - placeHoldersCount(b64)
+}
+
+function toByteArray (b64) {
+ var i, j, l, tmp, placeHolders, arr
+ var len = b64.length
+ placeHolders = placeHoldersCount(b64)
+
+ arr = new Arr(len * 3 / 4 - placeHolders)
+
+ // if there are placeholders, only get up to the last complete 4 chars
+ l = placeHolders > 0 ? len - 4 : len
+
+ var L = 0
+
+ for (i = 0, j = 0; i < l; i += 4, j += 3) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
+ arr[L++] = (tmp >> 16) & 0xFF
+ arr[L++] = (tmp >> 8) & 0xFF
+ arr[L++] = tmp & 0xFF
+ }
+
+ if (placeHolders === 2) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
+ arr[L++] = tmp & 0xFF
+ } else if (placeHolders === 1) {
+ tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
+ arr[L++] = (tmp >> 8) & 0xFF
+ arr[L++] = tmp & 0xFF
+ }
+
+ return arr
+}
+
+function tripletToBase64 (num) {
+ return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
+}
+
+function encodeChunk (uint8, start, end) {
+ var tmp
+ var output = []
+ for (var i = start; i < end; i += 3) {
+ tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
+ output.push(tripletToBase64(tmp))
+ }
+ return output.join('')
+}
+
+function fromByteArray (uint8) {
+ var tmp
+ var len = uint8.length
+ var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
+ var output = ''
+ var parts = []
+ var maxChunkLength = 16383 // must be multiple of 3
+
+ // go through the array every three bytes, we'll deal with trailing stuff later
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
+ parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
+ }
+
+ // pad the end with zeros, but make sure to not forget the extra bytes
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1]
+ output += lookup[tmp >> 2]
+ output += lookup[(tmp << 4) & 0x3F]
+ output += '=='
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
+ output += lookup[tmp >> 10]
+ output += lookup[(tmp >> 4) & 0x3F]
+ output += lookup[(tmp << 2) & 0x3F]
+ output += '='
+ }
+
+ parts.push(output)
+
+ return parts.join('')
+}
+
+},{}],4:[function(require,module,exports){
-},{}],2:[function(require,module,exports){
+},{}],5:[function(require,module,exports){
+(function (global){
+'use strict';
+
+var buffer = require('buffer');
+var Buffer = buffer.Buffer;
+var SlowBuffer = buffer.SlowBuffer;
+var MAX_LEN = buffer.kMaxLength || 2147483647;
+exports.alloc = function alloc(size, fill, encoding) {
+ if (typeof Buffer.alloc === 'function') {
+ return Buffer.alloc(size, fill, encoding);
+ }
+ if (typeof encoding === 'number') {
+ throw new TypeError('encoding must not be number');
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ var enc = encoding;
+ var _fill = fill;
+ if (_fill === undefined) {
+ enc = undefined;
+ _fill = 0;
+ }
+ var buf = new Buffer(size);
+ if (typeof _fill === 'string') {
+ var fillBuf = new Buffer(_fill, enc);
+ var flen = fillBuf.length;
+ var i = -1;
+ while (++i < size) {
+ buf[i] = fillBuf[i % flen];
+ }
+ } else {
+ buf.fill(_fill);
+ }
+ return buf;
+}
+exports.allocUnsafe = function allocUnsafe(size) {
+ if (typeof Buffer.allocUnsafe === 'function') {
+ return Buffer.allocUnsafe(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new Buffer(size);
+}
+exports.from = function from(value, encodingOrOffset, length) {
+ if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
+ return Buffer.from(value, encodingOrOffset, length);
+ }
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number');
+ }
+ if (typeof value === 'string') {
+ return new Buffer(value, encodingOrOffset);
+ }
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ var offset = encodingOrOffset;
+ if (arguments.length === 1) {
+ return new Buffer(value);
+ }
+ if (typeof offset === 'undefined') {
+ offset = 0;
+ }
+ var len = length;
+ if (typeof len === 'undefined') {
+ len = value.byteLength - offset;
+ }
+ if (offset >= value.byteLength) {
+ throw new RangeError('\'offset\' is out of bounds');
+ }
+ if (len > value.byteLength - offset) {
+ throw new RangeError('\'length\' is out of bounds');
+ }
+ return new Buffer(value.slice(offset, offset + len));
+ }
+ if (Buffer.isBuffer(value)) {
+ var out = new Buffer(value.length);
+ value.copy(out, 0, 0, value.length);
+ return out;
+ }
+ if (value) {
+ if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
+ return new Buffer(value);
+ }
+ if (value.type === 'Buffer' && Array.isArray(value.data)) {
+ return new Buffer(value.data);
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
+}
+exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
+ if (typeof Buffer.allocUnsafeSlow === 'function') {
+ return Buffer.allocUnsafeSlow(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size >= MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new SlowBuffer(size);
+}
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"buffer":6}],6:[function(require,module,exports){
(function (global){
/*!
* The buffer module from node.js, for the browser.
@@ -23,16 +263,15 @@
*/
/* eslint-disable no-proto */
+'use strict'
+
var base64 = require('base64-js')
var ieee754 = require('ieee754')
-var isArray = require('is-array')
+var isArray = require('isarray')
exports.Buffer = Buffer
exports.SlowBuffer = SlowBuffer
exports.INSPECT_MAX_BYTES = 50
-Buffer.poolSize = 8192 // not used by this implementation
-
-var rootParent = {}
/**
* If `Buffer.TYPED_ARRAY_SUPPORT`:
@@ -50,9 +289,6 @@ var rootParent = {}
* - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
* See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
*
- * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property
- * on objects.
- *
* - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
*
* - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
@@ -65,14 +301,16 @@ Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
? global.TYPED_ARRAY_SUPPORT
: typedArraySupport()
+/*
+ * Export kMaxLength after typed array support is determined.
+ */
+exports.kMaxLength = kMaxLength()
+
function typedArraySupport () {
- function Bar () {}
try {
var arr = new Uint8Array(1)
- arr.foo = function () { return 42 }
- arr.constructor = Bar
+ arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
return arr.foo() === 42 && // typed array instances can be augmented
- arr.constructor === Bar && // constructor can be set
typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
} catch (e) {
@@ -86,178 +324,252 @@ function kMaxLength () {
: 0x3fffffff
}
+function createBuffer (that, length) {
+ if (kMaxLength() < length) {
+ throw new RangeError('Invalid typed array length')
+ }
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = new Uint8Array(length)
+ that.__proto__ = Buffer.prototype
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ if (that === null) {
+ that = new Buffer(length)
+ }
+ that.length = length
+ }
+
+ return that
+}
+
/**
- * Class: Buffer
- * =============
- *
- * The Buffer constructor returns instances of `Uint8Array` that are augmented
- * with function properties for all the node `Buffer` API functions. We use
- * `Uint8Array` so that square bracket notation works as expected -- it returns
- * a single octet.
+ * The Buffer constructor returns instances of `Uint8Array` that have their
+ * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
+ * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
+ * and the `Uint8Array` methods. Square bracket notation works as expected -- it
+ * returns a single octet.
*
- * By augmenting the instances, we can avoid modifying the `Uint8Array`
- * prototype.
+ * The `Uint8Array` prototype remains unmodified.
*/
-function Buffer (arg) {
- if (!(this instanceof Buffer)) {
- // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
- if (arguments.length > 1) return new Buffer(arg, arguments[1])
- return new Buffer(arg)
- }
- this.length = 0
- this.parent = undefined
+function Buffer (arg, encodingOrOffset, length) {
+ if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
+ return new Buffer(arg, encodingOrOffset, length)
+ }
// Common case.
if (typeof arg === 'number') {
- return fromNumber(this, arg)
+ if (typeof encodingOrOffset === 'string') {
+ throw new Error(
+ 'If encoding is specified then the first argument must be a string'
+ )
+ }
+ return allocUnsafe(this, arg)
}
+ return from(this, arg, encodingOrOffset, length)
+}
- // Slightly less common case.
- if (typeof arg === 'string') {
- return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8')
- }
+Buffer.poolSize = 8192 // not used by this implementation
- // Unusual.
- return fromObject(this, arg)
+// TODO: Legacy, not needed anymore. Remove in next major version.
+Buffer._augment = function (arr) {
+ arr.__proto__ = Buffer.prototype
+ return arr
}
-function fromNumber (that, length) {
- that = allocate(that, length < 0 ? 0 : checked(length) | 0)
- if (!Buffer.TYPED_ARRAY_SUPPORT) {
- for (var i = 0; i < length; i++) {
- that[i] = 0
- }
+function from (that, value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number')
}
- return that
-}
-function fromString (that, string, encoding) {
- if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ return fromArrayBuffer(that, value, encodingOrOffset, length)
+ }
- // Assumption: byteLength() return value is always < kMaxLength.
- var length = byteLength(string, encoding) | 0
- that = allocate(that, length)
+ if (typeof value === 'string') {
+ return fromString(that, value, encodingOrOffset)
+ }
- that.write(string, encoding)
- return that
+ return fromObject(that, value)
}
-function fromObject (that, object) {
- if (Buffer.isBuffer(object)) return fromBuffer(that, object)
-
- if (isArray(object)) return fromArray(that, object)
+/**
+ * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
+ * if value is a number.
+ * Buffer.from(str[, encoding])
+ * Buffer.from(array)
+ * Buffer.from(buffer)
+ * Buffer.from(arrayBuffer[, byteOffset[, length]])
+ **/
+Buffer.from = function (value, encodingOrOffset, length) {
+ return from(null, value, encodingOrOffset, length)
+}
- if (object == null) {
- throw new TypeError('must start with number, buffer, array or string')
+if (Buffer.TYPED_ARRAY_SUPPORT) {
+ Buffer.prototype.__proto__ = Uint8Array.prototype
+ Buffer.__proto__ = Uint8Array
+ if (typeof Symbol !== 'undefined' && Symbol.species &&
+ Buffer[Symbol.species] === Buffer) {
+ // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
+ Object.defineProperty(Buffer, Symbol.species, {
+ value: null,
+ configurable: true
+ })
}
+}
- if (typeof ArrayBuffer !== 'undefined') {
- if (object.buffer instanceof ArrayBuffer) {
- return fromTypedArray(that, object)
- }
- if (object instanceof ArrayBuffer) {
- return fromArrayBuffer(that, object)
- }
+function assertSize (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('"size" argument must be a number')
+ } else if (size < 0) {
+ throw new RangeError('"size" argument must not be negative')
}
+}
- if (object.length) return fromArrayLike(that, object)
-
- return fromJsonObject(that, object)
+function alloc (that, size, fill, encoding) {
+ assertSize(size)
+ if (size <= 0) {
+ return createBuffer(that, size)
+ }
+ if (fill !== undefined) {
+ // Only pay attention to encoding if it's a string. This
+ // prevents accidentally sending in a number that would
+ // be interpretted as a start offset.
+ return typeof encoding === 'string'
+ ? createBuffer(that, size).fill(fill, encoding)
+ : createBuffer(that, size).fill(fill)
+ }
+ return createBuffer(that, size)
}
-function fromBuffer (that, buffer) {
- var length = checked(buffer.length) | 0
- that = allocate(that, length)
- buffer.copy(that, 0, 0, length)
- return that
+/**
+ * Creates a new filled Buffer instance.
+ * alloc(size[, fill[, encoding]])
+ **/
+Buffer.alloc = function (size, fill, encoding) {
+ return alloc(null, size, fill, encoding)
}
-function fromArray (that, array) {
- var length = checked(array.length) | 0
- that = allocate(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
+function allocUnsafe (that, size) {
+ assertSize(size)
+ that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
+ if (!Buffer.TYPED_ARRAY_SUPPORT) {
+ for (var i = 0; i < size; ++i) {
+ that[i] = 0
+ }
}
return that
}
-// Duplicate of fromArray() to keep fromArray() monomorphic.
-function fromTypedArray (that, array) {
- var length = checked(array.length) | 0
- that = allocate(that, length)
- // Truncating the elements is probably not what people expect from typed
- // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior
- // of the old Buffer constructor.
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
- }
- return that
+/**
+ * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
+ * */
+Buffer.allocUnsafe = function (size) {
+ return allocUnsafe(null, size)
+}
+/**
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
+ */
+Buffer.allocUnsafeSlow = function (size) {
+ return allocUnsafe(null, size)
}
-function fromArrayBuffer (that, array) {
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- // Return an augmented `Uint8Array` instance, for best performance
- array.byteLength
- that = Buffer._augment(new Uint8Array(array))
- } else {
- // Fallback: Return an object instance of the Buffer class
- that = fromTypedArray(that, new Uint8Array(array))
+function fromString (that, string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8'
+ }
+
+ if (!Buffer.isEncoding(encoding)) {
+ throw new TypeError('"encoding" must be a valid string encoding')
+ }
+
+ var length = byteLength(string, encoding) | 0
+ that = createBuffer(that, length)
+
+ var actual = that.write(string, encoding)
+
+ if (actual !== length) {
+ // Writing a hex string, for example, that contains invalid characters will
+ // cause everything after the first invalid character to be ignored. (e.g.
+ // 'abxxcd' will be treated as 'ab')
+ that = that.slice(0, actual)
}
+
return that
}
function fromArrayLike (that, array) {
- var length = checked(array.length) | 0
- that = allocate(that, length)
+ var length = array.length < 0 ? 0 : checked(array.length) | 0
+ that = createBuffer(that, length)
for (var i = 0; i < length; i += 1) {
that[i] = array[i] & 255
}
return that
}
-// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object.
-// Returns a zero-length buffer for inputs that don't conform to the spec.
-function fromJsonObject (that, object) {
- var array
- var length = 0
+function fromArrayBuffer (that, array, byteOffset, length) {
+ array.byteLength // this throws if `array` is not a valid ArrayBuffer
- if (object.type === 'Buffer' && isArray(object.data)) {
- array = object.data
- length = checked(array.length) | 0
+ if (byteOffset < 0 || array.byteLength < byteOffset) {
+ throw new RangeError('\'offset\' is out of bounds')
}
- that = allocate(that, length)
- for (var i = 0; i < length; i += 1) {
- that[i] = array[i] & 255
+ if (array.byteLength < byteOffset + (length || 0)) {
+ throw new RangeError('\'length\' is out of bounds')
}
- return that
-}
-if (Buffer.TYPED_ARRAY_SUPPORT) {
- Buffer.prototype.__proto__ = Uint8Array.prototype
- Buffer.__proto__ = Uint8Array
-}
+ if (byteOffset === undefined && length === undefined) {
+ array = new Uint8Array(array)
+ } else if (length === undefined) {
+ array = new Uint8Array(array, byteOffset)
+ } else {
+ array = new Uint8Array(array, byteOffset, length)
+ }
-function allocate (that, length) {
if (Buffer.TYPED_ARRAY_SUPPORT) {
// Return an augmented `Uint8Array` instance, for best performance
- that = Buffer._augment(new Uint8Array(length))
+ that = array
that.__proto__ = Buffer.prototype
} else {
// Fallback: Return an object instance of the Buffer class
- that.length = length
- that._isBuffer = true
+ that = fromArrayLike(that, array)
}
+ return that
+}
- var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1
- if (fromPool) that.parent = rootParent
+function fromObject (that, obj) {
+ if (Buffer.isBuffer(obj)) {
+ var len = checked(obj.length) | 0
+ that = createBuffer(that, len)
- return that
+ if (that.length === 0) {
+ return that
+ }
+
+ obj.copy(that, 0, 0, len)
+ return that
+ }
+
+ if (obj) {
+ if ((typeof ArrayBuffer !== 'undefined' &&
+ obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
+ if (typeof obj.length !== 'number' || isnan(obj.length)) {
+ return createBuffer(that, 0)
+ }
+ return fromArrayLike(that, obj)
+ }
+
+ if (obj.type === 'Buffer' && isArray(obj.data)) {
+ return fromArrayLike(that, obj.data)
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
}
function checked (length) {
- // Note: cannot use `length < kMaxLength` here because that fails when
+ // Note: cannot use `length < kMaxLength()` here because that fails when
// length is NaN (which is otherwise coerced to zero.)
if (length >= kMaxLength()) {
throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
@@ -266,12 +578,11 @@ function checked (length) {
return length | 0
}
-function SlowBuffer (subject, encoding) {
- if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
-
- var buf = new Buffer(subject, encoding)
- delete buf.parent
- return buf
+function SlowBuffer (length) {
+ if (+length != length) { // eslint-disable-line eqeqeq
+ length = 0
+ }
+ return Buffer.alloc(+length)
}
Buffer.isBuffer = function isBuffer (b) {
@@ -288,17 +599,12 @@ Buffer.compare = function compare (a, b) {
var x = a.length
var y = b.length
- var i = 0
- var len = Math.min(x, y)
- while (i < len) {
- if (a[i] !== b[i]) break
-
- ++i
- }
-
- if (i !== len) {
- x = a[i]
- y = b[i]
+ for (var i = 0, len = Math.min(x, y); i < len; ++i) {
+ if (a[i] !== b[i]) {
+ x = a[i]
+ y = b[i]
+ break
+ }
}
if (x < y) return -1
@@ -312,9 +618,9 @@ Buffer.isEncoding = function isEncoding (encoding) {
case 'utf8':
case 'utf-8':
case 'ascii':
+ case 'latin1':
case 'binary':
case 'base64':
- case 'raw':
case 'ucs2':
case 'ucs-2':
case 'utf16le':
@@ -326,32 +632,46 @@ Buffer.isEncoding = function isEncoding (encoding) {
}
Buffer.concat = function concat (list, length) {
- if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
+ if (!isArray(list)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
if (list.length === 0) {
- return new Buffer(0)
+ return Buffer.alloc(0)
}
var i
if (length === undefined) {
length = 0
- for (i = 0; i < list.length; i++) {
+ for (i = 0; i < list.length; ++i) {
length += list[i].length
}
}
- var buf = new Buffer(length)
+ var buffer = Buffer.allocUnsafe(length)
var pos = 0
- for (i = 0; i < list.length; i++) {
- var item = list[i]
- item.copy(buf, pos)
- pos += item.length
+ for (i = 0; i < list.length; ++i) {
+ var buf = list[i]
+ if (!Buffer.isBuffer(buf)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+ buf.copy(buffer, pos)
+ pos += buf.length
}
- return buf
+ return buffer
}
function byteLength (string, encoding) {
- if (typeof string !== 'string') string = '' + string
+ if (Buffer.isBuffer(string)) {
+ return string.length
+ }
+ if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
+ (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
+ return string.byteLength
+ }
+ if (typeof string !== 'string') {
+ string = '' + string
+ }
var len = string.length
if (len === 0) return 0
@@ -361,13 +681,12 @@ function byteLength (string, encoding) {
for (;;) {
switch (encoding) {
case 'ascii':
+ case 'latin1':
case 'binary':
- // Deprecated
- case 'raw':
- case 'raws':
return len
case 'utf8':
case 'utf-8':
+ case undefined:
return utf8ToBytes(string).length
case 'ucs2':
case 'ucs-2':
@@ -387,20 +706,42 @@ function byteLength (string, encoding) {
}
Buffer.byteLength = byteLength
-// pre-set for values that may exist in the future
-Buffer.prototype.length = undefined
-Buffer.prototype.parent = undefined
-
function slowToString (encoding, start, end) {
var loweredCase = false
- start = start | 0
- end = end === undefined || end === Infinity ? this.length : end | 0
+ // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
+ // property of a typed array.
+
+ // This behaves neither like String nor Uint8Array in that we set start/end
+ // to their upper/lower bounds if the value passed is out of range.
+ // undefined is handled specially as per ECMA-262 6th Edition,
+ // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
+ if (start === undefined || start < 0) {
+ start = 0
+ }
+ // Return early if start > this.length. Done here to prevent potential uint32
+ // coercion fail below.
+ if (start > this.length) {
+ return ''
+ }
+
+ if (end === undefined || end > this.length) {
+ end = this.length
+ }
+
+ if (end <= 0) {
+ return ''
+ }
+
+ // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
+ end >>>= 0
+ start >>>= 0
+
+ if (end <= start) {
+ return ''
+ }
if (!encoding) encoding = 'utf8'
- if (start < 0) start = 0
- if (end > this.length) end = this.length
- if (end <= start) return ''
while (true) {
switch (encoding) {
@@ -414,8 +755,9 @@ function slowToString (encoding, start, end) {
case 'ascii':
return asciiSlice(this, start, end)
+ case 'latin1':
case 'binary':
- return binarySlice(this, start, end)
+ return latin1Slice(this, start, end)
case 'base64':
return base64Slice(this, start, end)
@@ -434,6 +776,53 @@ function slowToString (encoding, start, end) {
}
}
+// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
+// Buffer instances.
+Buffer.prototype._isBuffer = true
+
+function swap (b, n, m) {
+ var i = b[n]
+ b[n] = b[m]
+ b[m] = i
+}
+
+Buffer.prototype.swap16 = function swap16 () {
+ var len = this.length
+ if (len % 2 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 16-bits')
+ }
+ for (var i = 0; i < len; i += 2) {
+ swap(this, i, i + 1)
+ }
+ return this
+}
+
+Buffer.prototype.swap32 = function swap32 () {
+ var len = this.length
+ if (len % 4 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 32-bits')
+ }
+ for (var i = 0; i < len; i += 4) {
+ swap(this, i, i + 3)
+ swap(this, i + 1, i + 2)
+ }
+ return this
+}
+
+Buffer.prototype.swap64 = function swap64 () {
+ var len = this.length
+ if (len % 8 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 64-bits')
+ }
+ for (var i = 0; i < len; i += 8) {
+ swap(this, i, i + 7)
+ swap(this, i + 1, i + 6)
+ swap(this, i + 2, i + 5)
+ swap(this, i + 3, i + 4)
+ }
+ return this
+}
+
Buffer.prototype.toString = function toString () {
var length = this.length | 0
if (length === 0) return ''
@@ -457,63 +846,197 @@ Buffer.prototype.inspect = function inspect () {
return '<Buffer ' + str + '>'
}
-Buffer.prototype.compare = function compare (b) {
- if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
- if (this === b) return 0
- return Buffer.compare(this, b)
-}
+Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
+ if (!Buffer.isBuffer(target)) {
+ throw new TypeError('Argument must be a Buffer')
+ }
+
+ if (start === undefined) {
+ start = 0
+ }
+ if (end === undefined) {
+ end = target ? target.length : 0
+ }
+ if (thisStart === undefined) {
+ thisStart = 0
+ }
+ if (thisEnd === undefined) {
+ thisEnd = this.length
+ }
-Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
- if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff
- else if (byteOffset < -0x80000000) byteOffset = -0x80000000
- byteOffset >>= 0
+ if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
+ throw new RangeError('out of range index')
+ }
- if (this.length === 0) return -1
- if (byteOffset >= this.length) return -1
+ if (thisStart >= thisEnd && start >= end) {
+ return 0
+ }
+ if (thisStart >= thisEnd) {
+ return -1
+ }
+ if (start >= end) {
+ return 1
+ }
- // Negative offsets start from the end of the buffer
- if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)
+ start >>>= 0
+ end >>>= 0
+ thisStart >>>= 0
+ thisEnd >>>= 0
+ if (this === target) return 0
+
+ var x = thisEnd - thisStart
+ var y = end - start
+ var len = Math.min(x, y)
+
+ var thisCopy = this.slice(thisStart, thisEnd)
+ var targetCopy = target.slice(start, end)
+
+ for (var i = 0; i < len; ++i) {
+ if (thisCopy[i] !== targetCopy[i]) {
+ x = thisCopy[i]
+ y = targetCopy[i]
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+}
+
+// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
+// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
+//
+// Arguments:
+// - buffer - a Buffer to search
+// - val - a string, Buffer, or number
+// - byteOffset - an index into `buffer`; will be clamped to an int32
+// - encoding - an optional encoding, relevant is val is a string
+// - dir - true for indexOf, false for lastIndexOf
+function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
+ // Empty buffer means no match
+ if (buffer.length === 0) return -1
+
+ // Normalize byteOffset
+ if (typeof byteOffset === 'string') {
+ encoding = byteOffset
+ byteOffset = 0
+ } else if (byteOffset > 0x7fffffff) {
+ byteOffset = 0x7fffffff
+ } else if (byteOffset < -0x80000000) {
+ byteOffset = -0x80000000
+ }
+ byteOffset = +byteOffset // Coerce to Number.
+ if (isNaN(byteOffset)) {
+ // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
+ byteOffset = dir ? 0 : (buffer.length - 1)
+ }
+
+ // Normalize byteOffset: negative offsets start from the end of the buffer
+ if (byteOffset < 0) byteOffset = buffer.length + byteOffset
+ if (byteOffset >= buffer.length) {
+ if (dir) return -1
+ else byteOffset = buffer.length - 1
+ } else if (byteOffset < 0) {
+ if (dir) byteOffset = 0
+ else return -1
+ }
+
+ // Normalize val
if (typeof val === 'string') {
- if (val.length === 0) return -1 // special case: looking for empty string always fails
- return String.prototype.indexOf.call(this, val, byteOffset)
+ val = Buffer.from(val, encoding)
}
+
+ // Finally, search either indexOf (if dir is true) or lastIndexOf
if (Buffer.isBuffer(val)) {
- return arrayIndexOf(this, val, byteOffset)
+ // Special case: looking for empty string/buffer always fails
+ if (val.length === 0) {
+ return -1
+ }
+ return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
+ } else if (typeof val === 'number') {
+ val = val & 0xFF // Search for a byte value [0-255]
+ if (Buffer.TYPED_ARRAY_SUPPORT &&
+ typeof Uint8Array.prototype.indexOf === 'function') {
+ if (dir) {
+ return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
+ } else {
+ return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
+ }
+ }
+ return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
}
- if (typeof val === 'number') {
- if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
- return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
+
+ throw new TypeError('val must be string, number or Buffer')
+}
+
+function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
+ var indexSize = 1
+ var arrLength = arr.length
+ var valLength = val.length
+
+ if (encoding !== undefined) {
+ encoding = String(encoding).toLowerCase()
+ if (encoding === 'ucs2' || encoding === 'ucs-2' ||
+ encoding === 'utf16le' || encoding === 'utf-16le') {
+ if (arr.length < 2 || val.length < 2) {
+ return -1
+ }
+ indexSize = 2
+ arrLength /= 2
+ valLength /= 2
+ byteOffset /= 2
+ }
+ }
+
+ function read (buf, i) {
+ if (indexSize === 1) {
+ return buf[i]
+ } else {
+ return buf.readUInt16BE(i * indexSize)
}
- return arrayIndexOf(this, [ val ], byteOffset)
}
- function arrayIndexOf (arr, val, byteOffset) {
+ var i
+ if (dir) {
var foundIndex = -1
- for (var i = 0; byteOffset + i < arr.length; i++) {
- if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) {
+ for (i = byteOffset; i < arrLength; i++) {
+ if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
if (foundIndex === -1) foundIndex = i
- if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex
+ if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
} else {
+ if (foundIndex !== -1) i -= i - foundIndex
foundIndex = -1
}
}
- return -1
+ } else {
+ if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
+ for (i = byteOffset; i >= 0; i--) {
+ var found = true
+ for (var j = 0; j < valLength; j++) {
+ if (read(arr, i + j) !== read(val, j)) {
+ found = false
+ break
+ }
+ }
+ if (found) return i
+ }
}
- throw new TypeError('val must be string, number or Buffer')
+ return -1
+}
+
+Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
+ return this.indexOf(val, byteOffset, encoding) !== -1
}
-// `get` is deprecated
-Buffer.prototype.get = function get (offset) {
- console.log('.get() is deprecated. Access using array indexes instead.')
- return this.readUInt8(offset)
+Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
}
-// `set` is deprecated
-Buffer.prototype.set = function set (v, offset) {
- console.log('.set() is deprecated. Access using array indexes instead.')
- return this.writeUInt8(v, offset)
+Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
}
function hexWrite (buf, string, offset, length) {
@@ -530,14 +1053,14 @@ function hexWrite (buf, string, offset, length) {
// must be an even number of digits
var strLen = string.length
- if (strLen % 2 !== 0) throw new Error('Invalid hex string')
+ if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
if (length > strLen / 2) {
length = strLen / 2
}
- for (var i = 0; i < length; i++) {
+ for (var i = 0; i < length; ++i) {
var parsed = parseInt(string.substr(i * 2, 2), 16)
- if (isNaN(parsed)) throw new Error('Invalid hex string')
+ if (isNaN(parsed)) return i
buf[offset + i] = parsed
}
return i
@@ -551,7 +1074,7 @@ function asciiWrite (buf, string, offset, length) {
return blitBuffer(asciiToBytes(string), buf, offset, length)
}
-function binaryWrite (buf, string, offset, length) {
+function latin1Write (buf, string, offset, length) {
return asciiWrite(buf, string, offset, length)
}
@@ -586,17 +1109,16 @@ Buffer.prototype.write = function write (string, offset, length, encoding) {
}
// legacy write(string, encoding, offset, length) - remove in v0.13
} else {
- var swap = encoding
- encoding = offset
- offset = length | 0
- length = swap
+ throw new Error(
+ 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
+ )
}
var remaining = this.length - offset
if (length === undefined || length > remaining) length = remaining
if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
- throw new RangeError('attempt to write outside buffer bounds')
+ throw new RangeError('Attempt to write outside buffer bounds')
}
if (!encoding) encoding = 'utf8'
@@ -614,8 +1136,9 @@ Buffer.prototype.write = function write (string, offset, length, encoding) {
case 'ascii':
return asciiWrite(this, string, offset, length)
+ case 'latin1':
case 'binary':
- return binaryWrite(this, string, offset, length)
+ return latin1Write(this, string, offset, length)
case 'base64':
// Warning: maxLength not taken into account in base64Write
@@ -750,17 +1273,17 @@ function asciiSlice (buf, start, end) {
var ret = ''
end = Math.min(buf.length, end)
- for (var i = start; i < end; i++) {
+ for (var i = start; i < end; ++i) {
ret += String.fromCharCode(buf[i] & 0x7F)
}
return ret
}
-function binarySlice (buf, start, end) {
+function latin1Slice (buf, start, end) {
var ret = ''
end = Math.min(buf.length, end)
- for (var i = start; i < end; i++) {
+ for (var i = start; i < end; ++i) {
ret += String.fromCharCode(buf[i])
}
return ret
@@ -773,7 +1296,7 @@ function hexSlice (buf, start, end) {
if (!end || end < 0 || end > len) end = len
var out = ''
- for (var i = start; i < end; i++) {
+ for (var i = start; i < end; ++i) {
out += toHex(buf[i])
}
return out
@@ -811,17 +1334,16 @@ Buffer.prototype.slice = function slice (start, end) {
var newBuf
if (Buffer.TYPED_ARRAY_SUPPORT) {
- newBuf = Buffer._augment(this.subarray(start, end))
+ newBuf = this.subarray(start, end)
+ newBuf.__proto__ = Buffer.prototype
} else {
var sliceLen = end - start
newBuf = new Buffer(sliceLen, undefined)
- for (var i = 0; i < sliceLen; i++) {
+ for (var i = 0; i < sliceLen; ++i) {
newBuf[i] = this[i + start]
}
}
- if (newBuf.length) newBuf.parent = this.parent || this
-
return newBuf
}
@@ -990,16 +1512,19 @@ Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
}
function checkInt (buf, value, offset, ext, max, min) {
- if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
- if (value > max || value < min) throw new RangeError('value is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('index out of range')
+ if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
+ if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
}
Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
value = +value
offset = offset | 0
byteLength = byteLength | 0
- if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
var mul = 1
var i = 0
@@ -1015,7 +1540,10 @@ Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength,
value = +value
offset = offset | 0
byteLength = byteLength | 0
- if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0)
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
var i = byteLength - 1
var mul = 1
@@ -1038,7 +1566,7 @@ Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
function objectWriteUInt16 (buf, value, offset, littleEndian) {
if (value < 0) value = 0xffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) {
+ for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
(littleEndian ? i : 1 - i) * 8
}
@@ -1072,7 +1600,7 @@ Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert
function objectWriteUInt32 (buf, value, offset, littleEndian) {
if (value < 0) value = 0xffffffff + value + 1
- for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) {
+ for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
}
}
@@ -1118,9 +1646,12 @@ Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, no
var i = 0
var mul = 1
- var sub = value < 0 ? 1 : 0
+ var sub = 0
this[offset] = value & 0xFF
while (++i < byteLength && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
+ sub = 1
+ }
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
}
@@ -1138,9 +1669,12 @@ Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, no
var i = byteLength - 1
var mul = 1
- var sub = value < 0 ? 1 : 0
+ var sub = 0
this[offset + i] = value & 0xFF
while (--i >= 0 && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
+ sub = 1
+ }
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
}
@@ -1215,9 +1749,8 @@ Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert)
}
function checkIEEE754 (buf, value, offset, ext, max, min) {
- if (value > max || value < min) throw new RangeError('value is out of bounds')
- if (offset + ext > buf.length) throw new RangeError('index out of range')
- if (offset < 0) throw new RangeError('index out of range')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ if (offset < 0) throw new RangeError('Index out of range')
}
function writeFloat (buf, value, offset, littleEndian, noAssert) {
@@ -1282,143 +1815,91 @@ Buffer.prototype.copy = function copy (target, targetStart, start, end) {
if (this === target && start < targetStart && targetStart < end) {
// descending copy from end
- for (i = len - 1; i >= 0; i--) {
+ for (i = len - 1; i >= 0; --i) {
target[i + targetStart] = this[i + start]
}
} else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
// ascending copy from start
- for (i = 0; i < len; i++) {
+ for (i = 0; i < len; ++i) {
target[i + targetStart] = this[i + start]
}
} else {
- target._set(this.subarray(start, start + len), targetStart)
+ Uint8Array.prototype.set.call(
+ target,
+ this.subarray(start, start + len),
+ targetStart
+ )
}
return len
}
-// fill(value, start=0, end=buffer.length)
-Buffer.prototype.fill = function fill (value, start, end) {
- if (!value) value = 0
- if (!start) start = 0
- if (!end) end = this.length
+// Usage:
+// buffer.fill(number[, offset[, end]])
+// buffer.fill(buffer[, offset[, end]])
+// buffer.fill(string[, offset[, end]][, encoding])
+Buffer.prototype.fill = function fill (val, start, end, encoding) {
+ // Handle string cases:
+ if (typeof val === 'string') {
+ if (typeof start === 'string') {
+ encoding = start
+ start = 0
+ end = this.length
+ } else if (typeof end === 'string') {
+ encoding = end
+ end = this.length
+ }
+ if (val.length === 1) {
+ var code = val.charCodeAt(0)
+ if (code < 256) {
+ val = code
+ }
+ }
+ if (encoding !== undefined && typeof encoding !== 'string') {
+ throw new TypeError('encoding must be a string')
+ }
+ if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+ } else if (typeof val === 'number') {
+ val = val & 255
+ }
+
+ // Invalid ranges are not set to a default, so can range check early.
+ if (start < 0 || this.length < start || this.length < end) {
+ throw new RangeError('Out of range index')
+ }
- if (end < start) throw new RangeError('end < start')
+ if (end <= start) {
+ return this
+ }
- // Fill 0 bytes; we're done
- if (end === start) return
- if (this.length === 0) return
+ start = start >>> 0
+ end = end === undefined ? this.length : end >>> 0
- if (start < 0 || start >= this.length) throw new RangeError('start out of bounds')
- if (end < 0 || end > this.length) throw new RangeError('end out of bounds')
+ if (!val) val = 0
var i
- if (typeof value === 'number') {
- for (i = start; i < end; i++) {
- this[i] = value
+ if (typeof val === 'number') {
+ for (i = start; i < end; ++i) {
+ this[i] = val
}
} else {
- var bytes = utf8ToBytes(value.toString())
+ var bytes = Buffer.isBuffer(val)
+ ? val
+ : utf8ToBytes(new Buffer(val, encoding).toString())
var len = bytes.length
- for (i = start; i < end; i++) {
- this[i] = bytes[i % len]
+ for (i = 0; i < end - start; ++i) {
+ this[i + start] = bytes[i % len]
}
}
return this
}
-/**
- * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
- * Added in Node 0.12. Only available in browsers that support ArrayBuffer.
- */
-Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
- if (typeof Uint8Array !== 'undefined') {
- if (Buffer.TYPED_ARRAY_SUPPORT) {
- return (new Buffer(this)).buffer
- } else {
- var buf = new Uint8Array(this.length)
- for (var i = 0, len = buf.length; i < len; i += 1) {
- buf[i] = this[i]
- }
- return buf.buffer
- }
- } else {
- throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
- }
-}
-
// HELPER FUNCTIONS
// ================
-var BP = Buffer.prototype
-
-/**
- * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
- */
-Buffer._augment = function _augment (arr) {
- arr.constructor = Buffer
- arr._isBuffer = true
-
- // save reference to original Uint8Array set method before overwriting
- arr._set = arr.set
-
- // deprecated
- arr.get = BP.get
- arr.set = BP.set
-
- arr.write = BP.write
- arr.toString = BP.toString
- arr.toLocaleString = BP.toString
- arr.toJSON = BP.toJSON
- arr.equals = BP.equals
- arr.compare = BP.compare
- arr.indexOf = BP.indexOf
- arr.copy = BP.copy
- arr.slice = BP.slice
- arr.readUIntLE = BP.readUIntLE
- arr.readUIntBE = BP.readUIntBE
- arr.readUInt8 = BP.readUInt8
- arr.readUInt16LE = BP.readUInt16LE
- arr.readUInt16BE = BP.readUInt16BE
- arr.readUInt32LE = BP.readUInt32LE
- arr.readUInt32BE = BP.readUInt32BE
- arr.readIntLE = BP.readIntLE
- arr.readIntBE = BP.readIntBE
- arr.readInt8 = BP.readInt8
- arr.readInt16LE = BP.readInt16LE
- arr.readInt16BE = BP.readInt16BE
- arr.readInt32LE = BP.readInt32LE
- arr.readInt32BE = BP.readInt32BE
- arr.readFloatLE = BP.readFloatLE
- arr.readFloatBE = BP.readFloatBE
- arr.readDoubleLE = BP.readDoubleLE
- arr.readDoubleBE = BP.readDoubleBE
- arr.writeUInt8 = BP.writeUInt8
- arr.writeUIntLE = BP.writeUIntLE
- arr.writeUIntBE = BP.writeUIntBE
- arr.writeUInt16LE = BP.writeUInt16LE
- arr.writeUInt16BE = BP.writeUInt16BE
- arr.writeUInt32LE = BP.writeUInt32LE
- arr.writeUInt32BE = BP.writeUInt32BE
- arr.writeIntLE = BP.writeIntLE
- arr.writeIntBE = BP.writeIntBE
- arr.writeInt8 = BP.writeInt8
- arr.writeInt16LE = BP.writeInt16LE
- arr.writeInt16BE = BP.writeInt16BE
- arr.writeInt32LE = BP.writeInt32LE
- arr.writeInt32BE = BP.writeInt32BE
- arr.writeFloatLE = BP.writeFloatLE
- arr.writeFloatBE = BP.writeFloatBE
- arr.writeDoubleLE = BP.writeDoubleLE
- arr.writeDoubleBE = BP.writeDoubleBE
- arr.fill = BP.fill
- arr.inspect = BP.inspect
- arr.toArrayBuffer = BP.toArrayBuffer
-
- return arr
-}
-
var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
function base64clean (str) {
@@ -1450,7 +1931,7 @@ function utf8ToBytes (string, units) {
var leadSurrogate = null
var bytes = []
- for (var i = 0; i < length; i++) {
+ for (var i = 0; i < length; ++i) {
codePoint = string.charCodeAt(i)
// is surrogate component
@@ -1482,7 +1963,7 @@ function utf8ToBytes (string, units) {
}
// valid surrogate pair
- codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000
+ codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
} else if (leadSurrogate) {
// valid bmp char, but last char was a lead
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
@@ -1525,7 +2006,7 @@ function utf8ToBytes (string, units) {
function asciiToBytes (str) {
var byteArray = []
- for (var i = 0; i < str.length; i++) {
+ for (var i = 0; i < str.length; ++i) {
// Node's code seems to be doing this and not & 0x7F..
byteArray.push(str.charCodeAt(i) & 0xFF)
}
@@ -1535,7 +2016,7 @@ function asciiToBytes (str) {
function utf16leToBytes (str, units) {
var c, hi, lo
var byteArray = []
- for (var i = 0; i < str.length; i++) {
+ for (var i = 0; i < str.length; ++i) {
if ((units -= 2) < 0) break
c = str.charCodeAt(i)
@@ -1553,3062 +2034,282 @@ function base64ToBytes (str) {
}
function blitBuffer (src, dst, offset, length) {
- for (var i = 0; i < length; i++) {
+ for (var i = 0; i < length; ++i) {
if ((i + offset >= dst.length) || (i >= src.length)) break
dst[i + offset] = src[i]
}
return i
}
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"base64-js":3,"ieee754":4,"is-array":5}],3:[function(require,module,exports){
-var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
-
-;(function (exports) {
- 'use strict';
-
- var Arr = (typeof Uint8Array !== 'undefined')
- ? Uint8Array
- : Array
-
- var PLUS = '+'.charCodeAt(0)
- var SLASH = '/'.charCodeAt(0)
- var NUMBER = '0'.charCodeAt(0)
- var LOWER = 'a'.charCodeAt(0)
- var UPPER = 'A'.charCodeAt(0)
- var PLUS_URL_SAFE = '-'.charCodeAt(0)
- var SLASH_URL_SAFE = '_'.charCodeAt(0)
-
- function decode (elt) {
- var code = elt.charCodeAt(0)
- if (code === PLUS ||
- code === PLUS_URL_SAFE)
- return 62 // '+'
- if (code === SLASH ||
- code === SLASH_URL_SAFE)
- return 63 // '/'
- if (code < NUMBER)
- return -1 //no match
- if (code < NUMBER + 10)
- return code - NUMBER + 26 + 26
- if (code < UPPER + 26)
- return code - UPPER
- if (code < LOWER + 26)
- return code - LOWER + 26
- }
-
- function b64ToByteArray (b64) {
- var i, j, l, tmp, placeHolders, arr
-
- if (b64.length % 4 > 0) {
- throw new Error('Invalid string. Length must be a multiple of 4')
- }
-
- // the number of equal signs (place holders)
- // if there are two placeholders, than the two characters before it
- // represent one byte
- // if there is only one, then the three characters before it represent 2 bytes
- // this is just a cheap hack to not do indexOf twice
- var len = b64.length
- placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0
-
- // base64 is 4/3 + up to two characters of the original data
- arr = new Arr(b64.length * 3 / 4 - placeHolders)
-
- // if there are placeholders, only get up to the last complete 4 chars
- l = placeHolders > 0 ? b64.length - 4 : b64.length
-
- var L = 0
-
- function push (v) {
- arr[L++] = v
- }
-
- for (i = 0, j = 0; i < l; i += 4, j += 3) {
- tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3))
- push((tmp & 0xFF0000) >> 16)
- push((tmp & 0xFF00) >> 8)
- push(tmp & 0xFF)
- }
-
- if (placeHolders === 2) {
- tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4)
- push(tmp & 0xFF)
- } else if (placeHolders === 1) {
- tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2)
- push((tmp >> 8) & 0xFF)
- push(tmp & 0xFF)
- }
-
- return arr
- }
-
- function uint8ToBase64 (uint8) {
- var i,
- extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
- output = "",
- temp, length
-
- function encode (num) {
- return lookup.charAt(num)
- }
-
- function tripletToBase64 (num) {
- return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F)
- }
-
- // go through the array every three bytes, we'll deal with trailing stuff later
- for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
- temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
- output += tripletToBase64(temp)
- }
-
- // pad the end with zeros, but make sure to not forget the extra bytes
- switch (extraBytes) {
- case 1:
- temp = uint8[uint8.length - 1]
- output += encode(temp >> 2)
- output += encode((temp << 4) & 0x3F)
- output += '=='
- break
- case 2:
- temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1])
- output += encode(temp >> 10)
- output += encode((temp >> 4) & 0x3F)
- output += encode((temp << 2) & 0x3F)
- output += '='
- break
- }
-
- return output
- }
-
- exports.toByteArray = b64ToByteArray
- exports.fromByteArray = uint8ToBase64
-}(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
-
-},{}],4:[function(require,module,exports){
-exports.read = function (buffer, offset, isLE, mLen, nBytes) {
- var e, m
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var nBits = -7
- var i = isLE ? (nBytes - 1) : 0
- var d = isLE ? -1 : 1
- var s = buffer[offset + i]
-
- i += d
-
- e = s & ((1 << (-nBits)) - 1)
- s >>= (-nBits)
- nBits += eLen
- for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- m = e & ((1 << (-nBits)) - 1)
- e >>= (-nBits)
- nBits += mLen
- for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
-
- if (e === 0) {
- e = 1 - eBias
- } else if (e === eMax) {
- return m ? NaN : ((s ? -1 : 1) * Infinity)
- } else {
- m = m + Math.pow(2, mLen)
- e = e - eBias
- }
- return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
-}
-
-exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
- var e, m, c
- var eLen = nBytes * 8 - mLen - 1
- var eMax = (1 << eLen) - 1
- var eBias = eMax >> 1
- var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
- var i = isLE ? 0 : (nBytes - 1)
- var d = isLE ? 1 : -1
- var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
-
- value = Math.abs(value)
-
- if (isNaN(value) || value === Infinity) {
- m = isNaN(value) ? 1 : 0
- e = eMax
- } else {
- e = Math.floor(Math.log(value) / Math.LN2)
- if (value * (c = Math.pow(2, -e)) < 1) {
- e--
- c *= 2
- }
- if (e + eBias >= 1) {
- value += rt / c
- } else {
- value += rt * Math.pow(2, 1 - eBias)
- }
- if (value * c >= 2) {
- e++
- c /= 2
- }
-
- if (e + eBias >= eMax) {
- m = 0
- e = eMax
- } else if (e + eBias >= 1) {
- m = (value * c - 1) * Math.pow(2, mLen)
- e = e + eBias
- } else {
- m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
- e = 0
- }
- }
-
- for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
-
- e = (e << mLen) | m
- eLen += mLen
- for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
-
- buffer[offset + i - d] |= s * 128
-}
-
-},{}],5:[function(require,module,exports){
-
-/**
- * isArray
- */
-
-var isArray = Array.isArray;
-
-/**
- * toString
- */
-
-var str = Object.prototype.toString;
-
-/**
- * Whether or not the given `val`
- * is an array.
- *
- * example:
- *
- * isArray([]);
- * // > true
- * isArray(arguments);
- * // > false
- * isArray('');
- * // > false
- *
- * @param {mixed} val
- * @return {bool}
- */
-
-module.exports = isArray || function (val) {
- return !! val && '[object Array]' == str.call(val);
-};
-
-},{}],6:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-function EventEmitter() {
- this._events = this._events || {};
- this._maxListeners = this._maxListeners || undefined;
-}
-module.exports = EventEmitter;
-
-// Backwards-compat with node 0.10.x
-EventEmitter.EventEmitter = EventEmitter;
-
-EventEmitter.prototype._events = undefined;
-EventEmitter.prototype._maxListeners = undefined;
-
-// By default EventEmitters will print a warning if more than 10 listeners are
-// added to it. This is a useful default which helps finding memory leaks.
-EventEmitter.defaultMaxListeners = 10;
-
-// Obviously not all Emitters should be limited to 10. This function allows
-// that to be increased. Set to zero for unlimited.
-EventEmitter.prototype.setMaxListeners = function(n) {
- if (!isNumber(n) || n < 0 || isNaN(n))
- throw TypeError('n must be a positive number');
- this._maxListeners = n;
- return this;
-};
-
-EventEmitter.prototype.emit = function(type) {
- var er, handler, len, args, i, listeners;
-
- if (!this._events)
- this._events = {};
-
- // If there is no 'error' event listener then throw.
- if (type === 'error') {
- if (!this._events.error ||
- (isObject(this._events.error) && !this._events.error.length)) {
- er = arguments[1];
- if (er instanceof Error) {
- throw er; // Unhandled 'error' event
- }
- throw TypeError('Uncaught, unspecified "error" event.');
- }
- }
-
- handler = this._events[type];
-
- if (isUndefined(handler))
- return false;
-
- if (isFunction(handler)) {
- switch (arguments.length) {
- // fast cases
- case 1:
- handler.call(this);
- break;
- case 2:
- handler.call(this, arguments[1]);
- break;
- case 3:
- handler.call(this, arguments[1], arguments[2]);
- break;
- // slower
- default:
- len = arguments.length;
- args = new Array(len - 1);
- for (i = 1; i < len; i++)
- args[i - 1] = arguments[i];
- handler.apply(this, args);
- }
- } else if (isObject(handler)) {
- len = arguments.length;
- args = new Array(len - 1);
- for (i = 1; i < len; i++)
- args[i - 1] = arguments[i];
-
- listeners = handler.slice();
- len = listeners.length;
- for (i = 0; i < len; i++)
- listeners[i].apply(this, args);
- }
-
- return true;
-};
-
-EventEmitter.prototype.addListener = function(type, listener) {
- var m;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events)
- this._events = {};
-
- // To avoid recursion in the case that type === "newListener"! Before
- // adding it to the listeners, first emit "newListener".
- if (this._events.newListener)
- this.emit('newListener', type,
- isFunction(listener.listener) ?
- listener.listener : listener);
-
- if (!this._events[type])
- // Optimize the case of one listener. Don't need the extra array object.
- this._events[type] = listener;
- else if (isObject(this._events[type]))
- // If we've already got an array, just append.
- this._events[type].push(listener);
- else
- // Adding the second element, need to change to array.
- this._events[type] = [this._events[type], listener];
-
- // Check for listener leak
- if (isObject(this._events[type]) && !this._events[type].warned) {
- var m;
- if (!isUndefined(this._maxListeners)) {
- m = this._maxListeners;
- } else {
- m = EventEmitter.defaultMaxListeners;
- }
-
- if (m && m > 0 && this._events[type].length > m) {
- this._events[type].warned = true;
- console.error('(node) warning: possible EventEmitter memory ' +
- 'leak detected. %d listeners added. ' +
- 'Use emitter.setMaxListeners() to increase limit.',
- this._events[type].length);
- if (typeof console.trace === 'function') {
- // not supported in IE 10
- console.trace();
- }
- }
- }
-
- return this;
-};
-
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-
-EventEmitter.prototype.once = function(type, listener) {
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- var fired = false;
-
- function g() {
- this.removeListener(type, g);
-
- if (!fired) {
- fired = true;
- listener.apply(this, arguments);
- }
- }
-
- g.listener = listener;
- this.on(type, g);
-
- return this;
-};
-
-// emits a 'removeListener' event iff the listener was removed
-EventEmitter.prototype.removeListener = function(type, listener) {
- var list, position, length, i;
-
- if (!isFunction(listener))
- throw TypeError('listener must be a function');
-
- if (!this._events || !this._events[type])
- return this;
-
- list = this._events[type];
- length = list.length;
- position = -1;
-
- if (list === listener ||
- (isFunction(list.listener) && list.listener === listener)) {
- delete this._events[type];
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
-
- } else if (isObject(list)) {
- for (i = length; i-- > 0;) {
- if (list[i] === listener ||
- (list[i].listener && list[i].listener === listener)) {
- position = i;
- break;
- }
- }
-
- if (position < 0)
- return this;
-
- if (list.length === 1) {
- list.length = 0;
- delete this._events[type];
- } else {
- list.splice(position, 1);
- }
-
- if (this._events.removeListener)
- this.emit('removeListener', type, listener);
- }
-
- return this;
-};
-
-EventEmitter.prototype.removeAllListeners = function(type) {
- var key, listeners;
-
- if (!this._events)
- return this;
-
- // not listening for removeListener, no need to emit
- if (!this._events.removeListener) {
- if (arguments.length === 0)
- this._events = {};
- else if (this._events[type])
- delete this._events[type];
- return this;
- }
-
- // emit removeListener for all listeners on all events
- if (arguments.length === 0) {
- for (key in this._events) {
- if (key === 'removeListener') continue;
- this.removeAllListeners(key);
- }
- this.removeAllListeners('removeListener');
- this._events = {};
- return this;
- }
-
- listeners = this._events[type];
-
- if (isFunction(listeners)) {
- this.removeListener(type, listeners);
- } else {
- // LIFO order
- while (listeners.length)
- this.removeListener(type, listeners[listeners.length - 1]);
- }
- delete this._events[type];
-
- return this;
-};
-
-EventEmitter.prototype.listeners = function(type) {
- var ret;
- if (!this._events || !this._events[type])
- ret = [];
- else if (isFunction(this._events[type]))
- ret = [this._events[type]];
- else
- ret = this._events[type].slice();
- return ret;
-};
-
-EventEmitter.listenerCount = function(emitter, type) {
- var ret;
- if (!emitter._events || !emitter._events[type])
- ret = 0;
- else if (isFunction(emitter._events[type]))
- ret = 1;
- else
- ret = emitter._events[type].length;
- return ret;
-};
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-
-},{}],7:[function(require,module,exports){
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
-}
-
-},{}],8:[function(require,module,exports){
-/**
- * Determine if an object is Buffer
- *
- * Author: Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
- * License: MIT
- *
- * `npm install is-buffer`
- */
-
-module.exports = function (obj) {
- return !!(obj != null &&
- (obj._isBuffer || // For Safari 5-7 (missing Object.prototype.constructor)
- (obj.constructor &&
- typeof obj.constructor.isBuffer === 'function' &&
- obj.constructor.isBuffer(obj))
- ))
-}
-
-},{}],9:[function(require,module,exports){
-module.exports = Array.isArray || function (arr) {
- return Object.prototype.toString.call(arr) == '[object Array]';
-};
-
-},{}],10:[function(require,module,exports){
-// shim for using process in browser
-
-var process = module.exports = {};
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
-}
-
-function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = setTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- clearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- setTimeout(drainQueue, 0);
- }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
- this.fun = fun;
- this.array = array;
+function isnan (val) {
+ return val !== val // eslint-disable-line no-self-compare
}
-Item.prototype.run = function () {
- this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-
-process.binding = function (name) {
- throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
-
-},{}],11:[function(require,module,exports){
-(function (global){
-/*! https://mths.be/punycode v1.3.2 by @mathias */
-;(function(root) {
-
- /** Detect free variables */
- var freeExports = typeof exports == 'object' && exports &&
- !exports.nodeType && exports;
- var freeModule = typeof module == 'object' && module &&
- !module.nodeType && module;
- var freeGlobal = typeof global == 'object' && global;
- if (
- freeGlobal.global === freeGlobal ||
- freeGlobal.window === freeGlobal ||
- freeGlobal.self === freeGlobal
- ) {
- root = freeGlobal;
- }
-
- /**
- * The `punycode` object.
- * @name punycode
- * @type Object
- */
- var punycode,
-
- /** Highest positive signed 32-bit float value */
- maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
-
- /** Bootstring parameters */
- base = 36,
- tMin = 1,
- tMax = 26,
- skew = 38,
- damp = 700,
- initialBias = 72,
- initialN = 128, // 0x80
- delimiter = '-', // '\x2D'
-
- /** Regular expressions */
- regexPunycode = /^xn--/,
- regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
- regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
-
- /** Error messages */
- errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
- },
-
- /** Convenience shortcuts */
- baseMinusTMin = base - tMin,
- floor = Math.floor,
- stringFromCharCode = String.fromCharCode,
-
- /** Temporary variable */
- key;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
- function error(type) {
- throw RangeError(errors[type]);
- }
-
- /**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
- function map(array, fn) {
- var length = array.length;
- var result = [];
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
- }
-
- /**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
- function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
- }
-
- /**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
- function ucs2decode(string) {
- var output = [],
- counter = 0,
- length = string.length,
- value,
- extra;
- while (counter < length) {
- value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // high surrogate, and there is a next character
- extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // low surrogate
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // unmatched surrogate; only append this code unit, in case the next
- // code unit is the high surrogate of a surrogate pair
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
- }
-
- /**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
- function ucs2encode(array) {
- return map(array, function(value) {
- var output = '';
- if (value > 0xFFFF) {
- value -= 0x10000;
- output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
- value = 0xDC00 | value & 0x3FF;
- }
- output += stringFromCharCode(value);
- return output;
- }).join('');
- }
-
- /**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
- function basicToDigit(codePoint) {
- if (codePoint - 48 < 10) {
- return codePoint - 22;
- }
- if (codePoint - 65 < 26) {
- return codePoint - 65;
- }
- if (codePoint - 97 < 26) {
- return codePoint - 97;
- }
- return base;
- }
-
- /**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
- function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
- }
-
- /**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * http://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
- function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
- }
-
- /**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
- function decode(input) {
- // Don't use UCS-2
- var output = [],
- inputLength = input.length,
- out,
- i = 0,
- n = initialN,
- bias = initialBias,
- basic,
- j,
- index,
- oldi,
- w,
- k,
- digit,
- t,
- /** Cached calculation results */
- baseMinusT;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output
- output.splice(i++, 0, n);
-
- }
-
- return ucs2encode(output);
- }
-
- /**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
- function encode(input) {
- var n,
- delta,
- handledCPCount,
- basicLength,
- bias,
- j,
- m,
- q,
- k,
- t,
- currentValue,
- output = [],
- /** `inputLength` will hold the number of code points in `input`. */
- inputLength,
- /** Cached calculation results */
- handledCPCountPlusOne,
- baseMinusT,
- qMinusT;
-
- // Convert the input in UCS-2 to Unicode
- input = ucs2decode(input);
-
- // Cache the length
- inputLength = input.length;
-
- // Initialize the state
- n = initialN;
- delta = 0;
- bias = initialBias;
-
- // Handle the basic code points
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- handledCPCount = basicLength = output.length;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string - if it is not empty - with a delimiter
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- for (m = maxInt, j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
- // but guard against overflow
- handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
-
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
-
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer
- for (q = delta, k = base; /* no condition */; k += base) {
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- qMinusT = q - t;
- baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
- }
-
- /**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
- function toUnicode(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
- }
-
- /**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
- function toASCII(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Define the public API */
- punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '1.3.2',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see <https://mathiasbynens.be/notes/javascript-encoding>
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
- };
-
- /** Expose `punycode` */
- // Some AMD build optimizers, like r.js, check for specific condition patterns
- // like the following:
- if (
- typeof define == 'function' &&
- typeof define.amd == 'object' &&
- define.amd
- ) {
- define('punycode', function() {
- return punycode;
- });
- } else if (freeExports && freeModule) {
- if (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+
- freeModule.exports = punycode;
- } else { // in Narwhal or RingoJS v0.7.0-
- for (key in punycode) {
- punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
- }
- }
- } else { // in Rhino or a web browser
- root.punycode = punycode;
- }
-
-}(this));
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],12:[function(require,module,exports){
-module.exports = require("./lib/_stream_duplex.js")
-
-},{"./lib/_stream_duplex.js":13}],13:[function(require,module,exports){
-// a duplex stream is just a stream that is both readable and writable.
-// Since JS doesn't have multiple prototypal inheritance, this class
-// prototypally inherits from Readable, and then parasitically from
-// Writable.
-
-'use strict';
-
-/*<replacement>*/
-var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) keys.push(key);
- return keys;
-}
-/*</replacement>*/
-
-
-module.exports = Duplex;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-var Readable = require('./_stream_readable');
-var Writable = require('./_stream_writable');
-
-util.inherits(Duplex, Readable);
-
-var keys = objectKeys(Writable.prototype);
-for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method])
- Duplex.prototype[method] = Writable.prototype[method];
-}
-
-function Duplex(options) {
- if (!(this instanceof Duplex))
- return new Duplex(options);
-
- Readable.call(this, options);
- Writable.call(this, options);
-
- if (options && options.readable === false)
- this.readable = false;
-
- if (options && options.writable === false)
- this.writable = false;
-
- this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false)
- this.allowHalfOpen = false;
-
- this.once('end', onend);
-}
-
-// the no-half-open enforcer
-function onend() {
- // if we allow half-open state, or if the writable side ended,
- // then we're ok.
- if (this.allowHalfOpen || this._writableState.ended)
- return;
-
- // no more data can be written.
- // But allow more writes to happen in this tick.
- processNextTick(onEndNT, this);
-}
-
-function onEndNT(self) {
- self.end();
-}
-
-function forEach (xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-
-},{"./_stream_readable":15,"./_stream_writable":17,"core-util-is":18,"inherits":7,"process-nextick-args":19}],14:[function(require,module,exports){
-// a passthrough stream.
-// basically just the most minimal sort of Transform stream.
-// Every written chunk gets output as-is.
-
-'use strict';
-
-module.exports = PassThrough;
-
-var Transform = require('./_stream_transform');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(PassThrough, Transform);
-
-function PassThrough(options) {
- if (!(this instanceof PassThrough))
- return new PassThrough(options);
-
- Transform.call(this, options);
-}
-
-PassThrough.prototype._transform = function(chunk, encoding, cb) {
- cb(null, chunk);
-};
-
-},{"./_stream_transform":16,"core-util-is":18,"inherits":7}],15:[function(require,module,exports){
-(function (process){
-'use strict';
-
-module.exports = Readable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var isArray = require('isarray');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
-
-Readable.ReadableState = ReadableState;
-
-var EE = require('events');
-
-/*<replacement>*/
-var EElistenerCount = function(emitter, type) {
- return emitter.listeners(type).length;
-};
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var debugUtil = require('util');
-var debug;
-if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
-} else {
- debug = function () {};
-}
-/*</replacement>*/
-
-var StringDecoder;
-
-util.inherits(Readable, Stream);
-
-function ReadableState(options, stream) {
- var Duplex = require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.readableObjectMode;
-
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
-
- this.buffer = [];
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // when piping, we only care about 'readable' events that happen
- // after read()ing all the bytes and not getting any pushback.
- this.ranOut = false;
-
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
-
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
-
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
-}
-
-function Readable(options) {
- var Duplex = require('./_stream_duplex');
-
- if (!(this instanceof Readable))
- return new Readable(options);
-
- this._readableState = new ReadableState(options, this);
-
- // legacy
- this.readable = true;
-
- if (options && typeof options.read === 'function')
- this._read = options.read;
-
- Stream.call(this);
-}
-
-// Manually shove something into the read() buffer.
-// This returns true if the highWaterMark has not been hit yet,
-// similar to how Writable.write() returns true if you should
-// write() some more.
-Readable.prototype.push = function(chunk, encoding) {
- var state = this._readableState;
-
- if (!state.objectMode && typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = new Buffer(chunk, encoding);
- encoding = '';
- }
- }
-
- return readableAddChunk(this, state, chunk, encoding, false);
-};
-
-// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function(chunk) {
- var state = this._readableState;
- return readableAddChunk(this, state, chunk, '', true);
-};
-
-Readable.prototype.isPaused = function() {
- return this._readableState.flowing === false;
-};
-
-function readableAddChunk(stream, state, chunk, encoding, addToFront) {
- var er = chunkInvalid(state, chunk);
- if (er) {
- stream.emit('error', er);
- } else if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (state.ended && !addToFront) {
- var e = new Error('stream.push() after EOF');
- stream.emit('error', e);
- } else if (state.endEmitted && addToFront) {
- var e = new Error('stream.unshift() after end event');
- stream.emit('error', e);
- } else {
- if (state.decoder && !addToFront && !encoding)
- chunk = state.decoder.write(chunk);
-
- if (!addToFront)
- state.reading = false;
-
- // if we want the data now, just emit it.
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront)
- state.buffer.unshift(chunk);
- else
- state.buffer.push(chunk);
-
- if (state.needReadable)
- emitReadable(stream);
- }
-
- maybeReadMore(stream, state);
- }
- } else if (!addToFront) {
- state.reading = false;
- }
-
- return needMoreData(state);
-}
-
-
-// if it's past the high water mark, we can push in some more.
-// Also, if we have no data yet, we can stand some
-// more bytes. This is to work around cases where hwm=0,
-// such as the repl. Also, if the push() triggered a
-// readable event, and the user called read(largeNumber) such that
-// needReadable was set, then we ought to push more, so that another
-// 'readable' event will be triggered.
-function needMoreData(state) {
- return !state.ended &&
- (state.needReadable ||
- state.length < state.highWaterMark ||
- state.length === 0);
-}
-
-// backwards compatibility.
-Readable.prototype.setEncoding = function(enc) {
- if (!StringDecoder)
- StringDecoder = require('string_decoder/').StringDecoder;
- this._readableState.decoder = new StringDecoder(enc);
- this._readableState.encoding = enc;
- return this;
-};
-
-// Don't raise the hwm > 8MB
-var MAX_HWM = 0x800000;
-function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- n = MAX_HWM;
+},{"base64-js":3,"ieee754":44,"isarray":48}],7:[function(require,module,exports){
+(function (Buffer){
+var Transform = require('stream').Transform
+var inherits = require('inherits')
+var StringDecoder = require('string_decoder').StringDecoder
+module.exports = CipherBase
+inherits(CipherBase, Transform)
+function CipherBase (hashMode) {
+ Transform.call(this)
+ this.hashMode = typeof hashMode === 'string'
+ if (this.hashMode) {
+ this[hashMode] = this._finalOrDigest
} else {
- // Get the next highest power of 2
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
-}
-
-function howMuchToRead(n, state) {
- if (state.length === 0 && state.ended)
- return 0;
-
- if (state.objectMode)
- return n === 0 ? 0 : 1;
-
- if (n === null || isNaN(n)) {
- // only flow one buffer at a time
- if (state.flowing && state.buffer.length)
- return state.buffer[0].length;
- else
- return state.length;
- }
-
- if (n <= 0)
- return 0;
-
- // If we're asking for more than the target buffer level,
- // then raise the water mark. Bump up to the next highest
- // power of 2, to prevent increasing it excessively in tiny
- // amounts.
- if (n > state.highWaterMark)
- state.highWaterMark = computeNewHighWaterMark(n);
-
- // don't have that much. return null, unless we've ended.
- if (n > state.length) {
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- } else {
- return state.length;
- }
- }
-
- return n;
-}
-
-// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function(n) {
- debug('read', n);
- var state = this._readableState;
- var nOrig = n;
-
- if (typeof n !== 'number' || n > 0)
- state.emittedReadable = false;
-
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 &&
- state.needReadable &&
- (state.length >= state.highWaterMark || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended)
- endReadable(this);
- else
- emitReadable(this);
- return null;
- }
-
- n = howMuchToRead(n, state);
-
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0)
- endReadable(this);
- return null;
- }
-
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
-
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
-
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
-
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- }
-
- if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0)
- state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- }
-
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (doRead && !state.reading)
- n = howMuchToRead(nOrig, state);
-
- var ret;
- if (n > 0)
- ret = fromList(n, state);
- else
- ret = null;
-
- if (ret === null) {
- state.needReadable = true;
- n = 0;
- }
-
- state.length -= n;
-
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (state.length === 0 && !state.ended)
- state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended && state.length === 0)
- endReadable(this);
-
- if (ret !== null)
- this.emit('data', ret);
-
- return ret;
-};
-
-function chunkInvalid(state, chunk) {
- var er = null;
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- return er;
-}
-
-
-function onEofChunk(stream, state) {
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
-
- // emit 'readable' now to make sure it gets picked up.
- emitReadable(stream);
-}
-
-// Don't emit readable right away in sync mode, because this can trigger
-// another read() call => stack overflow. This way, it might trigger
-// a nextTick recursion warning, but that's not so bad.
-function emitReadable(stream) {
- var state = stream._readableState;
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- if (state.sync)
- processNextTick(emitReadable_, stream);
- else
- emitReadable_(stream);
- }
-}
-
-function emitReadable_(stream) {
- debug('emit readable');
- stream.emit('readable');
- flow(stream);
-}
-
-
-// at this point, the user has presumably seen the 'readable' event,
-// and called read() to consume some data. that may have triggered
-// in turn another _read(n) call, in which case reading = true if
-// it's in progress.
-// However, if we're not ended, or reading, and the length < hwm,
-// then go ahead and try to read some more preemptively.
-function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- processNextTick(maybeReadMore_, stream, state);
- }
-}
-
-function maybeReadMore_(stream, state) {
- var len = state.length;
- while (!state.reading && !state.flowing && !state.ended &&
- state.length < state.highWaterMark) {
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;
- else
- len = state.length;
- }
- state.readingMore = false;
-}
-
-// abstract method. to be overridden in specific implementation classes.
-// call cb(er, data) where data is <= n in length.
-// for virtual (non-string, non-buffer) streams, "length" is somewhat
-// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function(n) {
- this.emit('error', new Error('not implemented'));
-};
-
-Readable.prototype.pipe = function(dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
-
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
-
- var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
- dest !== process.stdout &&
- dest !== process.stderr;
-
- var endFn = doEnd ? onend : cleanup;
- if (state.endEmitted)
- processNextTick(endFn);
- else
- src.once('end', endFn);
-
- dest.on('unpipe', onunpipe);
- function onunpipe(readable) {
- debug('onunpipe');
- if (readable === src) {
- cleanup();
- }
- }
-
- function onend() {
- debug('onend');
- dest.end();
- }
-
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
-
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', cleanup);
- src.removeListener('data', ondata);
-
- cleanedUp = true;
-
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain &&
- (!dest._writableState || dest._writableState.needDrain))
- ondrain();
- }
-
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- var ret = dest.write(chunk);
- if (false === ret) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- if (state.pipesCount === 1 &&
- state.pipes[0] === dest &&
- src.listenerCount('data') === 1 &&
- !cleanedUp) {
- debug('false write response, pause', src._readableState.awaitDrain);
- src._readableState.awaitDrain++;
- }
- src.pause();
- }
- }
-
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0)
- dest.emit('error', er);
- }
- // This is a brutally ugly hack to make sure that our error handler
- // is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error)
- dest.on('error', onerror);
- else if (isArray(dest._events.error))
- dest._events.error.unshift(onerror);
- else
- dest._events.error = [onerror, dest._events.error];
-
-
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
-
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
-
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
-
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
+ this.final = this._finalOrDigest
}
-
- return dest;
-};
-
-function pipeOnDrain(src) {
- return function() {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain)
- state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
+ this._decoder = null
+ this._encoding = null
}
-
-
-Readable.prototype.unpipe = function(dest) {
- var state = this._readableState;
-
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0)
- return this;
-
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes)
- return this;
-
- if (!dest)
- dest = state.pipes;
-
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest)
- dest.emit('unpipe', this);
- return this;
- }
-
- // slow case. multiple pipe destinations.
-
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
-
- for (var i = 0; i < len; i++)
- dests[i].emit('unpipe', this);
- return this;
+CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
+ if (typeof data === 'string') {
+ data = new Buffer(data, inputEnc)
}
-
- // try to find the right one.
- var i = indexOf(state.pipes, dest);
- if (i === -1)
- return this;
-
- state.pipes.splice(i, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1)
- state.pipes = state.pipes[0];
-
- dest.emit('unpipe', this);
-
- return this;
-};
-
-// set up data events if they are asked for
-// Ensure readable listeners eventually get something
-Readable.prototype.on = function(ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
-
- // If listening to data, and it has not explicitly been paused,
- // then call resume to start the flow of data on the next tick.
- if (ev === 'data' && false !== this._readableState.flowing) {
- this.resume();
+ var outData = this._update(data)
+ if (this.hashMode) {
+ return this
}
-
- if (ev === 'readable' && this.readable) {
- var state = this._readableState;
- if (!state.readableListening) {
- state.readableListening = true;
- state.emittedReadable = false;
- state.needReadable = true;
- if (!state.reading) {
- processNextTick(nReadingNextTick, this);
- } else if (state.length) {
- emitReadable(this, state);
- }
- }
+ if (outputEnc) {
+ outData = this._toString(outData, outputEnc)
}
-
- return res;
-};
-Readable.prototype.addListener = Readable.prototype.on;
-
-function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
+ return outData
}
-// pause() and resume() are remnants of the legacy readable stream API
-// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function() {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- state.flowing = true;
- resume(this, state);
- }
- return this;
-};
+CipherBase.prototype.setAutoPadding = function () {}
-function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- processNextTick(resume_, stream, state);
- }
+CipherBase.prototype.getAuthTag = function () {
+ throw new Error('trying to get auth tag in unsupported state')
}
-function resume_(stream, state) {
- if (!state.reading) {
- debug('resume read 0');
- stream.read(0);
- }
-
- state.resumeScheduled = false;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading)
- stream.read(0);
+CipherBase.prototype.setAuthTag = function () {
+ throw new Error('trying to set auth tag in unsupported state')
}
-Readable.prototype.pause = function() {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (false !== this._readableState.flowing) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- return this;
-};
-
-function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- if (state.flowing) {
- do {
- var chunk = stream.read();
- } while (null !== chunk && state.flowing);
- }
+CipherBase.prototype.setAAD = function () {
+ throw new Error('trying to set aad in unsupported state')
}
-// wrap an old-style stream as the async data source.
-// This is *not* part of the readable stream interface.
-// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function(stream) {
- var state = this._readableState;
- var paused = false;
-
- var self = this;
- stream.on('end', function() {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length)
- self.push(chunk);
- }
-
- self.push(null);
- });
-
- stream.on('data', function(chunk) {
- debug('wrapped data');
- if (state.decoder)
- chunk = state.decoder.write(chunk);
-
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined))
- return;
- else if (!state.objectMode && (!chunk || !chunk.length))
- return;
-
- var ret = self.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
-
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function(method) { return function() {
- return stream[method].apply(stream, arguments);
- }; }(i);
- }
- }
-
- // proxy certain important events.
- var events = ['error', 'close', 'destroy', 'pause', 'resume'];
- forEach(events, function(ev) {
- stream.on(ev, self.emit.bind(self, ev));
- });
-
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- self._read = function(n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
-
- return self;
-};
-
-
-// exposed for testing purposes only.
-Readable._fromList = fromList;
-
-// Pluck off n bytes from an array of buffers.
-// Length is the combined lengths of all the buffers in the list.
-function fromList(n, state) {
- var list = state.buffer;
- var length = state.length;
- var stringMode = !!state.decoder;
- var objectMode = !!state.objectMode;
- var ret;
-
- // nothing in the list, definitely empty.
- if (list.length === 0)
- return null;
-
- if (length === 0)
- ret = null;
- else if (objectMode)
- ret = list.shift();
- else if (!n || n >= length) {
- // read it all, truncate the array.
- if (stringMode)
- ret = list.join('');
- else if (list.length === 1)
- ret = list[0];
- else
- ret = Buffer.concat(list, length);
- list.length = 0;
- } else {
- // read just some of it.
- if (n < list[0].length) {
- // just take a part of the first list item.
- // slice is the same for buffers and strings.
- var buf = list[0];
- ret = buf.slice(0, n);
- list[0] = buf.slice(n);
- } else if (n === list[0].length) {
- // first list is a perfect match
- ret = list.shift();
+CipherBase.prototype._transform = function (data, _, next) {
+ var err
+ try {
+ if (this.hashMode) {
+ this._update(data)
} else {
- // complex case.
- // we have enough to cover it, but it spans past the first buffer.
- if (stringMode)
- ret = '';
- else
- ret = new Buffer(n);
-
- var c = 0;
- for (var i = 0, l = list.length; i < l && c < n; i++) {
- var buf = list[0];
- var cpy = Math.min(n - c, buf.length);
-
- if (stringMode)
- ret += buf.slice(0, cpy);
- else
- buf.copy(ret, c, 0, cpy);
-
- if (cpy < buf.length)
- list[0] = buf.slice(cpy);
- else
- list.shift();
-
- c += cpy;
- }
+ this.push(this._update(data))
}
- }
-
- return ret;
-}
-
-function endReadable(stream) {
- var state = stream._readableState;
-
- // If we get here before consuming all the bytes, then that is a
- // bug in node. Should never happen.
- if (state.length > 0)
- throw new Error('endReadable called on non-empty stream');
-
- if (!state.endEmitted) {
- state.ended = true;
- processNextTick(endReadableNT, state, stream);
+ } catch (e) {
+ err = e
+ } finally {
+ next(err)
}
}
-
-function endReadableNT(state, stream) {
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
+CipherBase.prototype._flush = function (done) {
+ var err
+ try {
+ this.push(this._final())
+ } catch (e) {
+ err = e
+ } finally {
+ done(err)
}
}
-
-function forEach (xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
+CipherBase.prototype._finalOrDigest = function (outputEnc) {
+ var outData = this._final() || new Buffer('')
+ if (outputEnc) {
+ outData = this._toString(outData, outputEnc, true)
}
+ return outData
}
-function indexOf (xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
+CipherBase.prototype._toString = function (value, enc, fin) {
+ if (!this._decoder) {
+ this._decoder = new StringDecoder(enc)
+ this._encoding = enc
}
- return -1;
-}
-
-}).call(this,require('_process'))
-},{"./_stream_duplex":13,"_process":10,"buffer":2,"core-util-is":18,"events":6,"inherits":7,"isarray":9,"process-nextick-args":19,"string_decoder/":26,"util":1}],16:[function(require,module,exports){
-// a transform stream is a readable/writable stream where you do
-// something with the data. Sometimes it's called a "filter",
-// but that's not a great name for it, since that implies a thing where
-// some bits pass through, and others are simply ignored. (That would
-// be a valid example of a transform, of course.)
-//
-// While the output is causally related to the input, it's not a
-// necessarily symmetric or synchronous transformation. For example,
-// a zlib stream might take multiple plain-text writes(), and then
-// emit a single compressed chunk some time in the future.
-//
-// Here's how this works:
-//
-// The Transform stream has all the aspects of the readable and writable
-// stream classes. When you write(chunk), that calls _write(chunk,cb)
-// internally, and returns false if there's a lot of pending writes
-// buffered up. When you call read(), that calls _read(n) until
-// there's enough pending readable data buffered up.
-//
-// In a transform stream, the written data is placed in a buffer. When
-// _read(n) is called, it transforms the queued up data, calling the
-// buffered _write cb's as it consumes chunks. If consuming a single
-// written chunk would result in multiple output chunks, then the first
-// outputted bit calls the readcb, and subsequent chunks just go into
-// the read buffer, and will cause it to emit 'readable' if necessary.
-//
-// This way, back-pressure is actually determined by the reading side,
-// since _read has to be called to start processing a new chunk. However,
-// a pathological inflate type of transform can cause excessive buffering
-// here. For example, imagine a stream where every byte of input is
-// interpreted as an integer from 0-255, and then results in that many
-// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
-// 1kb of data being output. In this case, you could write a very small
-// amount of input, and end up with a very large amount of output. In
-// such a pathological inflating mechanism, there'd be no way to tell
-// the system to stop doing the transform. A single 4MB write could
-// cause the system to run out of memory.
-//
-// However, even in such a pathological case, only a single written chunk
-// would be consumed, and then the rest would wait (un-transformed) until
-// the results of the previous transformed chunk were consumed.
-
-'use strict';
-
-module.exports = Transform;
-
-var Duplex = require('./_stream_duplex');
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-util.inherits(Transform, Duplex);
-
-
-function TransformState(stream) {
- this.afterTransform = function(er, data) {
- return afterTransform(stream, er, data);
- };
-
- this.needTransform = false;
- this.transforming = false;
- this.writecb = null;
- this.writechunk = null;
-}
-
-function afterTransform(stream, er, data) {
- var ts = stream._transformState;
- ts.transforming = false;
-
- var cb = ts.writecb;
-
- if (!cb)
- return stream.emit('error', new Error('no writecb in Transform class'));
-
- ts.writechunk = null;
- ts.writecb = null;
-
- if (data !== null && data !== undefined)
- stream.push(data);
-
- if (cb)
- cb(er);
-
- var rs = stream._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- stream._read(rs.highWaterMark);
+ if (this._encoding !== enc) {
+ throw new Error('can\'t switch encodings')
}
-}
-
-
-function Transform(options) {
- if (!(this instanceof Transform))
- return new Transform(options);
-
- Duplex.call(this, options);
-
- this._transformState = new TransformState(this);
-
- // when the writable side finishes, then flush out anything remaining.
- var stream = this;
-
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
-
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
-
- if (options) {
- if (typeof options.transform === 'function')
- this._transform = options.transform;
-
- if (typeof options.flush === 'function')
- this._flush = options.flush;
+ var out = this._decoder.write(value)
+ if (fin) {
+ out += this._decoder.end()
}
-
- this.once('prefinish', function() {
- if (typeof this._flush === 'function')
- this._flush(function(er) {
- done(stream, er);
- });
- else
- done(stream);
- });
+ return out
}
-Transform.prototype.push = function(chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
-};
-
-// This is the part where you do stuff!
-// override this function in implementation classes.
-// 'chunk' is an input chunk.
-//
-// Call `push(newChunk)` to pass along transformed output
-// to the readable side. You may call 'push' zero or more times.
-//
-// Call `cb(err)` when you are done with this chunk. If you pass
-// an error, then that'll put the hurt on the whole operation. If you
-// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function(chunk, encoding, cb) {
- throw new Error('not implemented');
+}).call(this,require("buffer").Buffer)
+},{"buffer":6,"inherits":45,"stream":182,"string_decoder":183}],8:[function(require,module,exports){
+require('../../modules/es6.object.assign');
+module.exports = require('../../modules/$.core').Object.assign;
+},{"../../modules/$.core":11,"../../modules/es6.object.assign":21}],9:[function(require,module,exports){
+module.exports = function(it){
+ if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+ return it;
};
+},{}],10:[function(require,module,exports){
+var toString = {}.toString;
-Transform.prototype._write = function(chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform ||
- rs.needReadable ||
- rs.length < rs.highWaterMark)
- this._read(rs.highWaterMark);
- }
+module.exports = function(it){
+ return toString.call(it).slice(8, -1);
};
-
-// Doesn't matter what the args are here.
-// _transform does all the work.
-// That we got here means that the readable side wants more data.
-Transform.prototype._read = function(n) {
- var ts = this._transformState;
-
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
+},{}],11:[function(require,module,exports){
+var core = module.exports = {version: '1.2.6'};
+if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+},{}],12:[function(require,module,exports){
+// optional / simple context binding
+var aFunction = require('./$.a-function');
+module.exports = function(fn, that, length){
+ aFunction(fn);
+ if(that === undefined)return fn;
+ switch(length){
+ case 1: return function(a){
+ return fn.call(that, a);
+ };
+ case 2: return function(a, b){
+ return fn.call(that, a, b);
+ };
+ case 3: return function(a, b, c){
+ return fn.call(that, a, b, c);
+ };
}
-};
-
-
-function done(stream, er) {
- if (er)
- return stream.emit('error', er);
-
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- var ws = stream._writableState;
- var ts = stream._transformState;
-
- if (ws.length)
- throw new Error('calling transform done when ws.length != 0');
-
- if (ts.transforming)
- throw new Error('calling transform done when still transforming');
-
- return stream.push(null);
-}
-
-},{"./_stream_duplex":13,"core-util-is":18,"inherits":7}],17:[function(require,module,exports){
-// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-'use strict';
-
-module.exports = Writable;
-
-/*<replacement>*/
-var processNextTick = require('process-nextick-args');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
-
-Writable.WritableState = WritableState;
-
-
-/*<replacement>*/
-var util = require('core-util-is');
-util.inherits = require('inherits');
-/*</replacement>*/
-
-
-/*<replacement>*/
-var internalUtil = {
- deprecate: require('util-deprecate')
-};
-/*</replacement>*/
-
-
-
-/*<replacement>*/
-var Stream;
-(function (){try{
- Stream = require('st' + 'ream');
-}catch(_){}finally{
- if (!Stream)
- Stream = require('events').EventEmitter;
-}}())
-/*</replacement>*/
-
-var Buffer = require('buffer').Buffer;
-
-util.inherits(Writable, Stream);
-
-function nop() {}
-
-function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
-}
-
-function WritableState(options, stream) {
- var Duplex = require('./_stream_duplex');
-
- options = options || {};
-
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
-
- if (stream instanceof Duplex)
- this.objectMode = this.objectMode || !!options.writableObjectMode;
-
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- var hwm = options.highWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = (hwm || hwm === 0) ? hwm : defaultHwm;
-
- // cast to ints.
- this.highWaterMark = ~~this.highWaterMark;
-
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
-
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
-
- // a flag to see when we're in the middle of a write.
- this.writing = false;
-
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
-
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function(er) {
- onwrite(stream, er);
+ return function(/* ...args */){
+ return fn.apply(that, arguments);
};
-
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
-
- // the amount that is being written when _write is called.
- this.writelen = 0;
-
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
-
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
-
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
-
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
-}
-
-WritableState.prototype.getBuffer = function writableStateGetBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
};
-
-(function (){try {
-Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function() {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' +
- 'instead.')
-});
-}catch(_){}}());
-
-
-function Writable(options) {
- var Duplex = require('./_stream_duplex');
-
- // Writable ctor is applied to Duplexes, though they're not
- // instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex))
- return new Writable(options);
-
- this._writableState = new WritableState(options, this);
-
- // legacy.
- this.writable = true;
-
- if (options) {
- if (typeof options.write === 'function')
- this._write = options.write;
-
- if (typeof options.writev === 'function')
- this._writev = options.writev;
- }
-
- Stream.call(this);
-}
-
-// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function() {
- this.emit('error', new Error('Cannot pipe. Not readable.'));
+},{"./$.a-function":9}],13:[function(require,module,exports){
+// 7.2.1 RequireObjectCoercible(argument)
+module.exports = function(it){
+ if(it == undefined)throw TypeError("Can't call method on " + it);
+ return it;
};
+},{}],14:[function(require,module,exports){
+var global = require('./$.global')
+ , core = require('./$.core')
+ , ctx = require('./$.ctx')
+ , PROTOTYPE = 'prototype';
-
-function writeAfterEnd(stream, cb) {
- var er = new Error('write after end');
- // TODO: defer error events consistently everywhere, not just the cb
- stream.emit('error', er);
- processNextTick(cb, er);
-}
-
-// If we get something that is not a buffer, string, null, or undefined,
-// and we're not in objectMode, then that's an error.
-// Otherwise stream chunks are all considered to be of length=1, and the
-// watermarks determine how many objects to keep in the buffer, rather than
-// how many bytes or characters.
-function validChunk(stream, state, chunk, cb) {
- var valid = true;
-
- if (!(Buffer.isBuffer(chunk)) &&
- typeof chunk !== 'string' &&
- chunk !== null &&
- chunk !== undefined &&
- !state.objectMode) {
- var er = new TypeError('Invalid non-string/buffer chunk');
- stream.emit('error', er);
- processNextTick(cb, er);
- valid = false;
- }
- return valid;
-}
-
-Writable.prototype.write = function(chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
-
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
- else if (!encoding)
- encoding = state.defaultEncoding;
-
- if (typeof cb !== 'function')
- cb = nop;
-
- if (state.ended)
- writeAfterEnd(this, cb);
- else if (validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, chunk, encoding, cb);
+var $export = function(type, name, source){
+ var IS_FORCED = type & $export.F
+ , IS_GLOBAL = type & $export.G
+ , IS_STATIC = type & $export.S
+ , IS_PROTO = type & $export.P
+ , IS_BIND = type & $export.B
+ , IS_WRAP = type & $export.W
+ , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
+ , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+ , key, own, out;
+ if(IS_GLOBAL)source = name;
+ for(key in source){
+ // contains in native
+ own = !IS_FORCED && target && key in target;
+ if(own && key in exports)continue;
+ // export native or passed
+ out = own ? target[key] : source[key];
+ // prevent global pollution for namespaces
+ exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+ // bind timers to global for call from export context
+ : IS_BIND && own ? ctx(out, global)
+ // wrap global constructors for prevent change them in library
+ : IS_WRAP && target[key] == out ? (function(C){
+ var F = function(param){
+ return this instanceof C ? new C(param) : C(param);
+ };
+ F[PROTOTYPE] = C[PROTOTYPE];
+ return F;
+ // make static versions for prototype methods
+ })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+ if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
}
-
- return ret;
};
-
-Writable.prototype.cork = function() {
- var state = this._writableState;
-
- state.corked++;
-};
-
-Writable.prototype.uncork = function() {
- var state = this._writableState;
-
- if (state.corked) {
- state.corked--;
-
- if (!state.writing &&
- !state.corked &&
- !state.finished &&
- !state.bufferProcessing &&
- state.bufferedRequest)
- clearBuffer(this, state);
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+module.exports = $export;
+},{"./$.core":11,"./$.ctx":12,"./$.global":16}],15:[function(require,module,exports){
+module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
}
};
-
-Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string')
- encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64',
-'ucs2', 'ucs-2','utf16le', 'utf-16le', 'raw']
-.indexOf((encoding + '').toLowerCase()) > -1))
- throw new TypeError('Unknown encoding: ' + encoding);
- this._writableState.defaultEncoding = encoding;
+},{}],16:[function(require,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+},{}],17:[function(require,module,exports){
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+var cof = require('./$.cof');
+module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
};
-
-function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode &&
- state.decodeStrings !== false &&
- typeof chunk === 'string') {
- chunk = new Buffer(chunk, encoding);
- }
- return chunk;
-}
-
-// if we're already writing something, then just put this
-// in the queue, and wait our turn. Otherwise, call _write
-// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, chunk, encoding, cb) {
- chunk = decodeChunk(state, chunk, encoding);
-
- if (Buffer.isBuffer(chunk))
- encoding = 'buffer';
- var len = state.objectMode ? 1 : chunk.length;
-
- state.length += len;
-
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret)
- state.needDrain = true;
-
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
-
- return ret;
-}
-
-function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (writev)
- stream._writev(chunk, state.onwrite);
- else
- stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
-}
-
-function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
- if (sync)
- processNextTick(cb, er);
- else
- cb(er);
-
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
-}
-
-function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
-}
-
-function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
-
- onwriteStateUpdate(state);
-
- if (er)
- onwriteError(stream, state, sync, er, cb);
- else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state);
-
- if (!finished &&
- !state.corked &&
- !state.bufferProcessing &&
- state.bufferedRequest) {
- clearBuffer(stream, state);
- }
-
- if (sync) {
- processNextTick(afterWrite, stream, state, finished, cb);
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
-}
-
-function afterWrite(stream, state, finished, cb) {
- if (!finished)
- onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
-}
-
-// Must force callback to be called on nextTick, so that we don't
-// emit 'drain' before the write() consumer gets the 'false' return
-// value, and has a chance to attach a 'drain' listener.
-function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
-}
-
-
-// if there's something in the buffer waiting, then process it
-function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
-
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var buffer = [];
- var cbs = [];
- while (entry) {
- cbs.push(entry.callback);
- buffer.push(entry);
- entry = entry.next;
- }
-
- // count the one we are adding, as well.
- // TODO(isaacs) clean this up
- state.pendingcb++;
- state.lastBufferedRequest = null;
- doWrite(stream, state, true, state.length, buffer, '', function(err) {
- for (var i = 0; i < cbs.length; i++) {
- state.pendingcb--;
- cbs[i](err);
- }
- });
-
- // Clear buffer
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
-
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
-
- if (entry === null)
- state.lastBufferedRequest = null;
- }
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
-}
-
-Writable.prototype._write = function(chunk, encoding, cb) {
- cb(new Error('not implemented'));
+},{"./$.cof":10}],18:[function(require,module,exports){
+var $Object = Object;
+module.exports = {
+ create: $Object.create,
+ getProto: $Object.getPrototypeOf,
+ isEnum: {}.propertyIsEnumerable,
+ getDesc: $Object.getOwnPropertyDescriptor,
+ setDesc: $Object.defineProperty,
+ setDescs: $Object.defineProperties,
+ getKeys: $Object.keys,
+ getNames: $Object.getOwnPropertyNames,
+ getSymbols: $Object.getOwnPropertySymbols,
+ each: [].forEach
};
+},{}],19:[function(require,module,exports){
+// 19.1.2.1 Object.assign(target, source, ...)
+var $ = require('./$')
+ , toObject = require('./$.to-object')
+ , IObject = require('./$.iobject');
-Writable.prototype._writev = null;
-
-Writable.prototype.end = function(chunk, encoding, cb) {
- var state = this._writableState;
-
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (chunk !== null && chunk !== undefined)
- this.write(chunk, encoding);
-
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
+// should work with symbols and should have deterministic property order (V8 bug)
+module.exports = require('./$.fails')(function(){
+ var a = Object.assign
+ , A = {}
+ , B = {}
+ , S = Symbol()
+ , K = 'abcdefghijklmnopqrst';
+ A[S] = 7;
+ K.split('').forEach(function(k){ B[k] = k; });
+ return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
+}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
+ var T = toObject(target)
+ , $$ = arguments
+ , $$len = $$.length
+ , index = 1
+ , getKeys = $.getKeys
+ , getSymbols = $.getSymbols
+ , isEnum = $.isEnum;
+ while($$len > index){
+ var S = IObject($$[index++])
+ , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
+ , length = keys.length
+ , j = 0
+ , key;
+ while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
}
-
- // ignore unnecessary end() calls.
- if (!state.ending && !state.finished)
- endWritable(this, state, cb);
+ return T;
+} : Object.assign;
+},{"./$":18,"./$.fails":15,"./$.iobject":17,"./$.to-object":20}],20:[function(require,module,exports){
+// 7.1.13 ToObject(argument)
+var defined = require('./$.defined');
+module.exports = function(it){
+ return Object(defined(it));
};
+},{"./$.defined":13}],21:[function(require,module,exports){
+// 19.1.3.1 Object.assign(target, source)
+var $export = require('./$.export');
-
-function needFinish(state) {
- return (state.ending &&
- state.length === 0 &&
- state.bufferedRequest === null &&
- !state.finished &&
- !state.writing);
-}
-
-function prefinish(stream, state) {
- if (!state.prefinished) {
- state.prefinished = true;
- stream.emit('prefinish');
- }
-}
-
-function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- if (state.pendingcb === 0) {
- prefinish(stream, state);
- state.finished = true;
- stream.emit('finish');
- } else {
- prefinish(stream, state);
- }
- }
- return need;
-}
-
-function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished)
- processNextTick(cb);
- else
- stream.once('finish', cb);
- }
- state.ended = true;
-}
-
-},{"./_stream_duplex":13,"buffer":2,"core-util-is":18,"events":6,"inherits":7,"process-nextick-args":19,"util-deprecate":20}],18:[function(require,module,exports){
+$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});
+},{"./$.export":14,"./$.object-assign":19}],22:[function(require,module,exports){
(function (Buffer){
// Copyright Joyent, Inc. and other Node contributors.
//
@@ -4633,1014 +2334,12 @@ function endWritable(stream, state, cb) {
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
-function isArray(ar) {
- return Array.isArray(ar);
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return isObject(re) && objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return isObject(d) && objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return isObject(e) &&
- (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-function isBuffer(arg) {
- return Buffer.isBuffer(arg);
-}
-exports.isBuffer = isBuffer;
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
-}).call(this,{"isBuffer":require("../../../../insert-module-globals/node_modules/is-buffer/index.js")})
-},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":8}],19:[function(require,module,exports){
-(function (process){
-'use strict';
-module.exports = nextTick;
-
-function nextTick(fn) {
- var args = new Array(arguments.length - 1);
- var i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
-}
-
-}).call(this,require('_process'))
-},{"_process":10}],20:[function(require,module,exports){
-(function (global){
-
-/**
- * Module exports.
- */
-
-module.exports = deprecate;
-
-/**
- * Mark that a method should not be used.
- * Returns a modified function which warns once by default.
- *
- * If `localStorage.noDeprecation = true` is set, then it is a no-op.
- *
- * If `localStorage.throwDeprecation = true` is set, then deprecated functions
- * will throw an Error when invoked.
- *
- * If `localStorage.traceDeprecation = true` is set, then deprecated functions
- * will invoke `console.trace()` instead of `console.error()`.
- *
- * @param {Function} fn - the function to deprecate
- * @param {String} msg - the string to print to the console when `fn` is invoked
- * @returns {Function} a new "deprecated" version of `fn`
- * @api public
- */
-
-function deprecate (fn, msg) {
- if (config('noDeprecation')) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (config('throwDeprecation')) {
- throw new Error(msg);
- } else if (config('traceDeprecation')) {
- console.trace(msg);
- } else {
- console.warn(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-}
-
-/**
- * Checks `localStorage` for boolean values for the given `name`.
- *
- * @param {String} name
- * @returns {Boolean}
- * @api private
- */
-
-function config (name) {
- // accessing global.localStorage can trigger a DOMException in sandboxed iframes
- try {
- if (!global.localStorage) return false;
- } catch (_) {
- return false;
- }
- var val = global.localStorage[name];
- if (null == val) return false;
- return String(val).toLowerCase() === 'true';
-}
-
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],21:[function(require,module,exports){
-module.exports = require("./lib/_stream_passthrough.js")
-
-},{"./lib/_stream_passthrough.js":14}],22:[function(require,module,exports){
-var Stream = (function (){
- try {
- return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
- } catch(_){}
-}());
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = Stream || exports;
-exports.Readable = exports;
-exports.Writable = require('./lib/_stream_writable.js');
-exports.Duplex = require('./lib/_stream_duplex.js');
-exports.Transform = require('./lib/_stream_transform.js');
-exports.PassThrough = require('./lib/_stream_passthrough.js');
-
-},{"./lib/_stream_duplex.js":13,"./lib/_stream_passthrough.js":14,"./lib/_stream_readable.js":15,"./lib/_stream_transform.js":16,"./lib/_stream_writable.js":17}],23:[function(require,module,exports){
-module.exports = require("./lib/_stream_transform.js")
-
-},{"./lib/_stream_transform.js":16}],24:[function(require,module,exports){
-module.exports = require("./lib/_stream_writable.js")
-
-},{"./lib/_stream_writable.js":17}],25:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-module.exports = Stream;
-
-var EE = require('events').EventEmitter;
-var inherits = require('inherits');
-
-inherits(Stream, EE);
-Stream.Readable = require('readable-stream/readable.js');
-Stream.Writable = require('readable-stream/writable.js');
-Stream.Duplex = require('readable-stream/duplex.js');
-Stream.Transform = require('readable-stream/transform.js');
-Stream.PassThrough = require('readable-stream/passthrough.js');
-
-// Backwards-compat with node 0.4.x
-Stream.Stream = Stream;
-
-
-
-// old-style streams. Note that the pipe method (the only relevant
-// part of this class) is overridden in the Readable class.
-
-function Stream() {
- EE.call(this);
-}
-
-Stream.prototype.pipe = function(dest, options) {
- var source = this;
-
- function ondata(chunk) {
- if (dest.writable) {
- if (false === dest.write(chunk) && source.pause) {
- source.pause();
- }
- }
- }
-
- source.on('data', ondata);
-
- function ondrain() {
- if (source.readable && source.resume) {
- source.resume();
- }
- }
-
- dest.on('drain', ondrain);
-
- // If the 'end' option is not supplied, dest.end() will be called when
- // source gets the 'end' or 'close' events. Only dest.end() once.
- if (!dest._isStdio && (!options || options.end !== false)) {
- source.on('end', onend);
- source.on('close', onclose);
- }
-
- var didOnEnd = false;
- function onend() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- dest.end();
- }
-
-
- function onclose() {
- if (didOnEnd) return;
- didOnEnd = true;
-
- if (typeof dest.destroy === 'function') dest.destroy();
- }
-
- // don't leave dangling pipes when there are errors.
- function onerror(er) {
- cleanup();
- if (EE.listenerCount(this, 'error') === 0) {
- throw er; // Unhandled stream error in pipe.
- }
- }
-
- source.on('error', onerror);
- dest.on('error', onerror);
-
- // remove all the event listeners that were added.
- function cleanup() {
- source.removeListener('data', ondata);
- dest.removeListener('drain', ondrain);
-
- source.removeListener('end', onend);
- source.removeListener('close', onclose);
-
- source.removeListener('error', onerror);
- dest.removeListener('error', onerror);
-
- source.removeListener('end', cleanup);
- source.removeListener('close', cleanup);
-
- dest.removeListener('close', cleanup);
- }
-
- source.on('end', cleanup);
- source.on('close', cleanup);
-
- dest.on('close', cleanup);
-
- dest.emit('pipe', source);
-
- // Allow for unix-like usage: A.pipe(B).pipe(C)
- return dest;
-};
-
-},{"events":6,"inherits":7,"readable-stream/duplex.js":12,"readable-stream/passthrough.js":21,"readable-stream/readable.js":22,"readable-stream/transform.js":23,"readable-stream/writable.js":24}],26:[function(require,module,exports){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var Buffer = require('buffer').Buffer;
-
-var isBufferEncoding = Buffer.isEncoding
- || function(encoding) {
- switch (encoding && encoding.toLowerCase()) {
- case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
- default: return false;
- }
- }
-
-
-function assertEncoding(encoding) {
- if (encoding && !isBufferEncoding(encoding)) {
- throw new Error('Unknown encoding: ' + encoding);
- }
-}
-
-// StringDecoder provides an interface for efficiently splitting a series of
-// buffers into a series of JS strings without breaking apart multi-byte
-// characters. CESU-8 is handled as part of the UTF-8 encoding.
-//
-// @TODO Handling all encodings inside a single object makes it very difficult
-// to reason about this code, so it should be split up in the future.
-// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
-// points as used by CESU-8.
-var StringDecoder = exports.StringDecoder = function(encoding) {
- this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
- assertEncoding(encoding);
- switch (this.encoding) {
- case 'utf8':
- // CESU-8 represents each of Surrogate Pair by 3-bytes
- this.surrogateSize = 3;
- break;
- case 'ucs2':
- case 'utf16le':
- // UTF-16 represents each of Surrogate Pair by 2-bytes
- this.surrogateSize = 2;
- this.detectIncompleteChar = utf16DetectIncompleteChar;
- break;
- case 'base64':
- // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
- this.surrogateSize = 3;
- this.detectIncompleteChar = base64DetectIncompleteChar;
- break;
- default:
- this.write = passThroughWrite;
- return;
- }
-
- // Enough space to store all bytes of a single character. UTF-8 needs 4
- // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
- this.charBuffer = new Buffer(6);
- // Number of bytes received for the current incomplete multi-byte character.
- this.charReceived = 0;
- // Number of bytes expected for the current incomplete multi-byte character.
- this.charLength = 0;
-};
-
-
-// write decodes the given buffer and returns it as JS string that is
-// guaranteed to not contain any partial multi-byte characters. Any partial
-// character found at the end of the buffer is buffered up, and will be
-// returned when calling write again with the remaining bytes.
-//
-// Note: Converting a Buffer containing an orphan surrogate to a String
-// currently works, but converting a String to a Buffer (via `new Buffer`, or
-// Buffer#write) will replace incomplete surrogates with the unicode
-// replacement character. See https://codereview.chromium.org/121173009/ .
-StringDecoder.prototype.write = function(buffer) {
- var charStr = '';
- // if our last write ended with an incomplete multibyte character
- while (this.charLength) {
- // determine how many remaining bytes this buffer has to offer for this char
- var available = (buffer.length >= this.charLength - this.charReceived) ?
- this.charLength - this.charReceived :
- buffer.length;
-
- // add the new bytes to the char buffer
- buffer.copy(this.charBuffer, this.charReceived, 0, available);
- this.charReceived += available;
-
- if (this.charReceived < this.charLength) {
- // still not enough chars in this buffer? wait for more ...
- return '';
- }
-
- // remove bytes belonging to the current character from the buffer
- buffer = buffer.slice(available, buffer.length);
-
- // get the character that was split
- charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
-
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- var charCode = charStr.charCodeAt(charStr.length - 1);
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- this.charLength += this.surrogateSize;
- charStr = '';
- continue;
- }
- this.charReceived = this.charLength = 0;
-
- // if there are no more bytes in this buffer, just emit our char
- if (buffer.length === 0) {
- return charStr;
- }
- break;
- }
-
- // determine and set charLength / charReceived
- this.detectIncompleteChar(buffer);
-
- var end = buffer.length;
- if (this.charLength) {
- // buffer the incomplete character bytes we got
- buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
- end -= this.charReceived;
- }
-
- charStr += buffer.toString(this.encoding, 0, end);
-
- var end = charStr.length - 1;
- var charCode = charStr.charCodeAt(end);
- // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
- if (charCode >= 0xD800 && charCode <= 0xDBFF) {
- var size = this.surrogateSize;
- this.charLength += size;
- this.charReceived += size;
- this.charBuffer.copy(this.charBuffer, size, 0, size);
- buffer.copy(this.charBuffer, 0, 0, size);
- return charStr.substring(0, end);
- }
-
- // or just emit the charStr
- return charStr;
-};
-
-// detectIncompleteChar determines if there is an incomplete UTF-8 character at
-// the end of the given buffer. If so, it sets this.charLength to the byte
-// length that character, and sets this.charReceived to the number of bytes
-// that are available for this character.
-StringDecoder.prototype.detectIncompleteChar = function(buffer) {
- // determine how many bytes we have to check at the end of this buffer
- var i = (buffer.length >= 3) ? 3 : buffer.length;
-
- // Figure out if one of the last i bytes of our buffer announces an
- // incomplete char.
- for (; i > 0; i--) {
- var c = buffer[buffer.length - i];
-
- // See http://en.wikipedia.org/wiki/UTF-8#Description
-
- // 110XXXXX
- if (i == 1 && c >> 5 == 0x06) {
- this.charLength = 2;
- break;
- }
-
- // 1110XXXX
- if (i <= 2 && c >> 4 == 0x0E) {
- this.charLength = 3;
- break;
- }
-
- // 11110XXX
- if (i <= 3 && c >> 3 == 0x1E) {
- this.charLength = 4;
- break;
- }
- }
- this.charReceived = i;
-};
-
-StringDecoder.prototype.end = function(buffer) {
- var res = '';
- if (buffer && buffer.length)
- res = this.write(buffer);
-
- if (this.charReceived) {
- var cr = this.charReceived;
- var buf = this.charBuffer;
- var enc = this.encoding;
- res += buf.slice(0, cr).toString(enc);
- }
-
- return res;
-};
-
-function passThroughWrite(buffer) {
- return buffer.toString(this.encoding);
-}
-
-function utf16DetectIncompleteChar(buffer) {
- this.charReceived = buffer.length % 2;
- this.charLength = this.charReceived ? 2 : 0;
-}
-
-function base64DetectIncompleteChar(buffer) {
- this.charReceived = buffer.length % 3;
- this.charLength = this.charReceived ? 3 : 0;
-}
-
-},{"buffer":2}],27:[function(require,module,exports){
-module.exports = function isBuffer(arg) {
- return arg && typeof arg === 'object'
- && typeof arg.copy === 'function'
- && typeof arg.fill === 'function'
- && typeof arg.readUInt8 === 'function';
-}
-},{}],28:[function(require,module,exports){
-(function (process,global){
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var formatRegExp = /%[sdj%]/g;
-exports.format = function(f) {
- if (!isString(f)) {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(inspect(arguments[i]));
- }
- return objects.join(' ');
- }
-
- var i = 1;
- var args = arguments;
- var len = args.length;
- var str = String(f).replace(formatRegExp, function(x) {
- if (x === '%%') return '%';
- if (i >= len) return x;
- switch (x) {
- case '%s': return String(args[i++]);
- case '%d': return Number(args[i++]);
- case '%j':
- try {
- return JSON.stringify(args[i++]);
- } catch (_) {
- return '[Circular]';
- }
- default:
- return x;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- if (isNull(x) || !isObject(x)) {
- str += ' ' + x;
- } else {
- str += ' ' + inspect(x);
- }
- }
- return str;
-};
-
-
-// Mark that a method should not be used.
-// Returns a modified function which warns once by default.
-// If --no-deprecation is set, then it is a no-op.
-exports.deprecate = function(fn, msg) {
- // Allow for deprecating things in the process of starting up.
- if (isUndefined(global.process)) {
- return function() {
- return exports.deprecate(fn, msg).apply(this, arguments);
- };
- }
-
- if (process.noDeprecation === true) {
- return fn;
- }
-
- var warned = false;
- function deprecated() {
- if (!warned) {
- if (process.throwDeprecation) {
- throw new Error(msg);
- } else if (process.traceDeprecation) {
- console.trace(msg);
- } else {
- console.error(msg);
- }
- warned = true;
- }
- return fn.apply(this, arguments);
- }
-
- return deprecated;
-};
-
-
-var debugs = {};
-var debugEnviron;
-exports.debuglog = function(set) {
- if (isUndefined(debugEnviron))
- debugEnviron = process.env.NODE_DEBUG || '';
- set = set.toUpperCase();
- if (!debugs[set]) {
- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
- var pid = process.pid;
- debugs[set] = function() {
- var msg = exports.format.apply(exports, arguments);
- console.error('%s %d: %s', set, pid, msg);
- };
- } else {
- debugs[set] = function() {};
- }
- }
- return debugs[set];
-};
-
-
-/**
- * Echos the value of a value. Trys to print the value out
- * in the best way possible given the different types.
- *
- * @param {Object} obj The object to print out.
- * @param {Object} opts Optional options object that alters the output.
- */
-/* legacy: obj, showHidden, depth, colors*/
-function inspect(obj, opts) {
- // default options
- var ctx = {
- seen: [],
- stylize: stylizeNoColor
- };
- // legacy...
- if (arguments.length >= 3) ctx.depth = arguments[2];
- if (arguments.length >= 4) ctx.colors = arguments[3];
- if (isBoolean(opts)) {
- // legacy...
- ctx.showHidden = opts;
- } else if (opts) {
- // got an "options" object
- exports._extend(ctx, opts);
- }
- // set default options
- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
- if (isUndefined(ctx.depth)) ctx.depth = 2;
- if (isUndefined(ctx.colors)) ctx.colors = false;
- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
- if (ctx.colors) ctx.stylize = stylizeWithColor;
- return formatValue(ctx, obj, ctx.depth);
-}
-exports.inspect = inspect;
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-inspect.colors = {
- 'bold' : [1, 22],
- 'italic' : [3, 23],
- 'underline' : [4, 24],
- 'inverse' : [7, 27],
- 'white' : [37, 39],
- 'grey' : [90, 39],
- 'black' : [30, 39],
- 'blue' : [34, 39],
- 'cyan' : [36, 39],
- 'green' : [32, 39],
- 'magenta' : [35, 39],
- 'red' : [31, 39],
- 'yellow' : [33, 39]
-};
-
-// Don't use 'blue' not visible on cmd.exe
-inspect.styles = {
- 'special': 'cyan',
- 'number': 'yellow',
- 'boolean': 'yellow',
- 'undefined': 'grey',
- 'null': 'bold',
- 'string': 'green',
- 'date': 'magenta',
- // "name": intentionally not styling
- 'regexp': 'red'
-};
-
-
-function stylizeWithColor(str, styleType) {
- var style = inspect.styles[styleType];
-
- if (style) {
- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
- '\u001b[' + inspect.colors[style][1] + 'm';
- } else {
- return str;
- }
-}
-
-
-function stylizeNoColor(str, styleType) {
- return str;
-}
-
-
-function arrayToHash(array) {
- var hash = {};
-
- array.forEach(function(val, idx) {
- hash[val] = true;
- });
-
- return hash;
-}
-
-
-function formatValue(ctx, value, recurseTimes) {
- // Provide a hook for user-specified inspect functions.
- // Check that value is an object with an inspect function on it
- if (ctx.customInspect &&
- value &&
- isFunction(value.inspect) &&
- // Filter out the util module, it's inspect function is special
- value.inspect !== exports.inspect &&
- // Also filter out any prototype objects using the circular check.
- !(value.constructor && value.constructor.prototype === value)) {
- var ret = value.inspect(recurseTimes, ctx);
- if (!isString(ret)) {
- ret = formatValue(ctx, ret, recurseTimes);
- }
- return ret;
- }
-
- // Primitive types cannot have properties
- var primitive = formatPrimitive(ctx, value);
- if (primitive) {
- return primitive;
- }
-
- // Look up the keys of the object.
- var keys = Object.keys(value);
- var visibleKeys = arrayToHash(keys);
-
- if (ctx.showHidden) {
- keys = Object.getOwnPropertyNames(value);
- }
-
- // IE doesn't make error fields non-enumerable
- // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
- if (isError(value)
- && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
- return formatError(value);
- }
-
- // Some type of object without properties can be shortcutted.
- if (keys.length === 0) {
- if (isFunction(value)) {
- var name = value.name ? ': ' + value.name : '';
- return ctx.stylize('[Function' + name + ']', 'special');
- }
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- }
- if (isDate(value)) {
- return ctx.stylize(Date.prototype.toString.call(value), 'date');
- }
- if (isError(value)) {
- return formatError(value);
- }
- }
-
- var base = '', array = false, braces = ['{', '}'];
-
- // Make Array say that they are Array
- if (isArray(value)) {
- array = true;
- braces = ['[', ']'];
- }
-
- // Make functions say that they are functions
- if (isFunction(value)) {
- var n = value.name ? ': ' + value.name : '';
- base = ' [Function' + n + ']';
- }
-
- // Make RegExps say that they are RegExps
- if (isRegExp(value)) {
- base = ' ' + RegExp.prototype.toString.call(value);
- }
-
- // Make dates with properties first say the date
- if (isDate(value)) {
- base = ' ' + Date.prototype.toUTCString.call(value);
- }
-
- // Make error with message first say the error
- if (isError(value)) {
- base = ' ' + formatError(value);
- }
-
- if (keys.length === 0 && (!array || value.length == 0)) {
- return braces[0] + base + braces[1];
- }
-
- if (recurseTimes < 0) {
- if (isRegExp(value)) {
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
- } else {
- return ctx.stylize('[Object]', 'special');
- }
- }
-
- ctx.seen.push(value);
-
- var output;
- if (array) {
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
- } else {
- output = keys.map(function(key) {
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
- });
- }
-
- ctx.seen.pop();
-
- return reduceToSingleString(output, base, braces);
-}
-
-
-function formatPrimitive(ctx, value) {
- if (isUndefined(value))
- return ctx.stylize('undefined', 'undefined');
- if (isString(value)) {
- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"') + '\'';
- return ctx.stylize(simple, 'string');
- }
- if (isNumber(value))
- return ctx.stylize('' + value, 'number');
- if (isBoolean(value))
- return ctx.stylize('' + value, 'boolean');
- // For some reason typeof null is "object", so special case here.
- if (isNull(value))
- return ctx.stylize('null', 'null');
-}
-
-
-function formatError(value) {
- return '[' + Error.prototype.toString.call(value) + ']';
-}
-
-
-function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
- var output = [];
- for (var i = 0, l = value.length; i < l; ++i) {
- if (hasOwnProperty(value, String(i))) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- String(i), true));
- } else {
- output.push('');
- }
- }
- keys.forEach(function(key) {
- if (!key.match(/^\d+$/)) {
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
- key, true));
- }
- });
- return output;
-}
-
-
-function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
- var name, str, desc;
- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
- if (desc.get) {
- if (desc.set) {
- str = ctx.stylize('[Getter/Setter]', 'special');
- } else {
- str = ctx.stylize('[Getter]', 'special');
- }
- } else {
- if (desc.set) {
- str = ctx.stylize('[Setter]', 'special');
- }
- }
- if (!hasOwnProperty(visibleKeys, key)) {
- name = '[' + key + ']';
- }
- if (!str) {
- if (ctx.seen.indexOf(desc.value) < 0) {
- if (isNull(recurseTimes)) {
- str = formatValue(ctx, desc.value, null);
- } else {
- str = formatValue(ctx, desc.value, recurseTimes - 1);
- }
- if (str.indexOf('\n') > -1) {
- if (array) {
- str = str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n').substr(2);
- } else {
- str = '\n' + str.split('\n').map(function(line) {
- return ' ' + line;
- }).join('\n');
- }
- }
- } else {
- str = ctx.stylize('[Circular]', 'special');
- }
- }
- if (isUndefined(name)) {
- if (array && key.match(/^\d+$/)) {
- return str;
- }
- name = JSON.stringify('' + key);
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
- name = name.substr(1, name.length - 2);
- name = ctx.stylize(name, 'name');
- } else {
- name = name.replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- .replace(/(^"|"$)/g, "'");
- name = ctx.stylize(name, 'string');
- }
- }
-
- return name + ': ' + str;
-}
-
-
-function reduceToSingleString(output, base, braces) {
- var numLinesEst = 0;
- var length = output.reduce(function(prev, cur) {
- numLinesEst++;
- if (cur.indexOf('\n') >= 0) numLinesEst++;
- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
- }, 0);
-
- if (length > 60) {
- return braces[0] +
- (base === '' ? '' : base + '\n ') +
- ' ' +
- output.join(',\n ') +
- ' ' +
- braces[1];
+function isArray(arg) {
+ if (Array.isArray) {
+ return Array.isArray(arg);
}
-
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
-}
-
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-function isArray(ar) {
- return Array.isArray(ar);
+ return objectToString(arg) === '[object Array]';
}
exports.isArray = isArray;
@@ -5680,7 +2379,7 @@ function isUndefined(arg) {
exports.isUndefined = isUndefined;
function isRegExp(re) {
- return isObject(re) && objectToString(re) === '[object RegExp]';
+ return objectToString(re) === '[object RegExp]';
}
exports.isRegExp = isRegExp;
@@ -5690,13 +2389,12 @@ function isObject(arg) {
exports.isObject = isObject;
function isDate(d) {
- return isObject(d) && objectToString(d) === '[object Date]';
+ return objectToString(d) === '[object Date]';
}
exports.isDate = isDate;
function isError(e) {
- return isObject(e) &&
- (objectToString(e) === '[object Error]' || e instanceof Error);
+ return (objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;
@@ -5715,1008 +2413,14 @@ function isPrimitive(arg) {
}
exports.isPrimitive = isPrimitive;
-exports.isBuffer = require('./support/isBuffer');
+exports.isBuffer = Buffer.isBuffer;
function objectToString(o) {
return Object.prototype.toString.call(o);
}
-
-function pad(n) {
- return n < 10 ? '0' + n.toString(10) : n.toString(10);
-}
-
-
-var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
- 'Oct', 'Nov', 'Dec'];
-
-// 26 Feb 16:19:34
-function timestamp() {
- var d = new Date();
- var time = [pad(d.getHours()),
- pad(d.getMinutes()),
- pad(d.getSeconds())].join(':');
- return [d.getDate(), months[d.getMonth()], time].join(' ');
-}
-
-
-// log is just a thin wrapper to console.log that prepends a timestamp
-exports.log = function() {
- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
-};
-
-
-/**
- * Inherit the prototype methods from one constructor into another.
- *
- * The Function.prototype.inherits from lang.js rewritten as a standalone
- * function (not on Function.prototype). NOTE: If this file is to be loaded
- * during bootstrapping this function needs to be rewritten using some native
- * functions as prototype setup using normal JavaScript does not work as
- * expected during bootstrapping (see mirror.js in r114903).
- *
- * @param {function} ctor Constructor function which needs to inherit the
- * prototype.
- * @param {function} superCtor Constructor function to inherit prototype from.
- */
-exports.inherits = require('inherits');
-
-exports._extend = function(origin, add) {
- // Don't do anything if add isn't an object
- if (!add || !isObject(add)) return origin;
-
- var keys = Object.keys(add);
- var i = keys.length;
- while (i--) {
- origin[keys[i]] = add[keys[i]];
- }
- return origin;
-};
-
-function hasOwnProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-}
-
-}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":27,"_process":10,"inherits":7}],29:[function(require,module,exports){
-var util = require('util');
-var intersect = require('intersect');
-var WildEmitter = require('wildemitter');
-var webrtc = require('webrtcsupport');
-
-var BaseSession = require('jingle-session');
-var MediaSession = require('jingle-media-session');
-var FileSession = require('jingle-filetransfer-session');
-
-
-function SessionManager(conf) {
- WildEmitter.call(this);
-
- conf = conf || {};
-
- this.jid = conf.jid;
- this.selfID = conf.selfID || (this.jid && this.jid.full) || this.jid || '';
-
- this.sessions = {};
- this.peers = {};
-
- this.prepareSession = conf.prepareSession || function (opts) {
- if (opts.descriptionTypes.indexOf('rtp') >= 0) {
- return new MediaSession(opts);
- }
- if (opts.descriptionTypes.indexOf('filetransfer') >= 0) {
- return new FileSession(opts);
- }
- };
-
- this.performTieBreak = conf.performTieBreak || function (sess, req) {
- var descriptionTypes = req.jingle.contents.map(function (content) {
- if (content.description) {
- return content.description.descType;
- }
- });
-
- var matching = intersect(sess.pendingDescriptionTypes, descriptionTypes);
-
- return matching.length > 0;
- };
-
- this.screenSharingSupport = webrtc.screenSharing;
-
- this.capabilities = [
- 'urn:xmpp:jingle:1'
- ];
- if (webrtc.support) {
- this.capabilities = [
- 'urn:xmpp:jingle:1',
- 'urn:xmpp:jingle:apps:rtp:1',
- 'urn:xmpp:jingle:apps:rtp:audio',
- 'urn:xmpp:jingle:apps:rtp:video',
- 'urn:xmpp:jingle:apps:rtp:rtcb-fb:0',
- 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
- 'urn:xmpp:jingle:apps:rtp:ssma:0',
- 'urn:xmpp:jingle:apps:dtls:0',
- 'urn:xmpp:jingle:apps:grouping:0',
- 'urn:xmpp:jingle:apps:file-transfer:3',
- 'urn:xmpp:jingle:transports:ice-udp:1',
- 'urn:xmpp:jingle:transports.dtls-sctp:1',
- 'urn:ietf:rfc:3264',
- 'urn:ietf:rfc:5576',
- 'urn:ietf:rfc:5888'
- ];
- }
-
- this.config = {
- debug: false,
- peerConnectionConfig: {
- iceServers: conf.iceServers || [{'url': 'stun:stun.l.google.com:19302'}]
- },
- peerConnectionConstraints: {
- optional: [
- {DtlsSrtpKeyAgreement: true},
- {RtpDataChannels: false}
- ]
- },
- media: {
- audio: true,
- video: true
- }
- };
-
- for (var item in conf) {
- this.config[item] = conf[item];
- }
-
- this.iceServers = this.config.peerConnectionConfig.iceServers;
-}
-
-
-util.inherits(SessionManager, WildEmitter);
-
-
-SessionManager.prototype.addICEServer = function (server) {
- // server == {
- // url: '',
- // [username: '',]
- // [credential: '']
- // }
- if (typeof server === 'string') {
- server = {url: server};
- }
- this.iceServers.push(server);
-};
-
-SessionManager.prototype.addSession = function (session) {
- var self = this;
-
- var sid = session.sid;
- var peer = session.peerID;
-
- this.sessions[sid] = session;
- if (!this.peers[peer]) {
- this.peers[peer] = [];
- }
-
- this.peers[peer].push(session);
-
- // Automatically clean up tracked sessions
- session.on('terminated', function () {
- var peers = self.peers[peer] || [];
- if (peers.length) {
- peers.splice(peers.indexOf(session), 1);
- }
- delete self.sessions[sid];
- });
-
- // Proxy session events
- session.on('*', function (name, data, extraData, extraData2) {
- // Listen for when we actually try to start a session to
- // trigger the outgoing event.
- if (name === 'send') {
- var action = data.jingle && data.jingle.action;
- if (session.isInitiator && action === 'session-initiate') {
- self.emit('outgoing', session);
- }
- }
-
- if (self.config.debug && (name === 'log:debug' || name === 'log:error')) {
- console.log('Jingle:', data, extraData, extraData2);
- }
-
- // Don't proxy change:* events, since those don't apply to
- // the session manager itself.
- if (name.indexOf('change') === 0) {
- return;
- }
-
- self.emit(name, data, extraData, extraData2);
- });
-
- this.emit('createdSession', session);
-
- return session;
-};
-
-SessionManager.prototype.createMediaSession = function (peer, sid, stream) {
- var session = new MediaSession({
- sid: sid,
- peer: peer,
- initiator: true,
- stream: stream,
- parent: this,
- iceServers: this.iceServers,
- constraints: this.config.peerConnectionConstraints
- });
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype.createFileTransferSession = function (peer, sid) {
- var session = new FileSession({
- sid: sid,
- peer: peer,
- initiator: true,
- parent: this
- });
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype.endPeerSessions = function (peer, reason, silent) {
- peer = peer.full || peer;
-
- var sessions = this.peers[peer] || [];
- delete this.peers[peer];
-
- sessions.forEach(function (session) {
- session.end(reason || 'gone', silent);
- });
-};
-
-SessionManager.prototype.endAllSessions = function (reason, silent) {
- var self = this;
- Object.keys(this.peers).forEach(function (peer) {
- self.endPeerSessions(peer, reason, silent);
- });
-};
-
-SessionManager.prototype._createIncomingSession = function (meta, req) {
- var session;
-
- if (this.prepareSession) {
- session = this.prepareSession(meta, req);
- }
-
- // Fallback to a generic session type, which can
- // only be used to end the session.
-
- if (!session) {
- session = new BaseSession(meta);
- }
-
- this.addSession(session);
-
- return session;
-};
-
-SessionManager.prototype._sendError = function (to, id, data) {
- if (!data.type) {
- data.type = 'cancel';
- }
- this.emit('send', {
- to: to,
- id: id,
- type: 'error',
- error: data
- });
-};
-
-SessionManager.prototype._log = function (level, message) {
- this.emit('log:' + level, message);
-};
-
-SessionManager.prototype.process = function (req) {
- var self = this;
-
- // Extract the request metadata that we need to verify
- var sid = !!req.jingle ? req.jingle.sid : null;
- var session = this.sessions[sid] || null;
- var rid = req.id;
- var sender = req.from.full || req.from;
-
-
- if (req.type === 'error') {
- var isTieBreak = req.error && req.error.jingleCondition === 'tie-break';
- if (session && session.pending && isTieBreak) {
- return session.end('alternative-session', true);
- } else {
- if (session) {
- session.pendingAction = false;
- }
- return this.emit('error', req);
- }
- }
-
- if (req.type === 'result') {
- if (session) {
- session.pendingAction = false;
- }
- return;
- }
-
- var action = req.jingle.action;
- var contents = req.jingle.contents || [];
-
- var descriptionTypes = contents.map(function (content) {
- if (content.description) {
- return content.description.descType;
- }
- });
- var transportTypes = contents.map(function (content) {
- if (content.transport) {
- return content.transport.transType;
- }
- });
-
-
- // Now verify that we are allowed to actually process the
- // requested action
-
- if (action !== 'session-initiate') {
- // Can't modify a session that we don't have.
- if (!session) {
- this._log('error', 'Unknown session', sid);
- return this._sendError(sender, rid, {
- condition: 'item-not-found',
- jingleCondition: 'unknown-session'
- });
- }
-
- // Check if someone is trying to hijack a session.
- if (session.peerID !== sender || session.ended) {
- this._log('error', 'Session has ended, or action has wrong sender');
- return this._sendError(sender, rid, {
- condition: 'item-not-found',
- jingleCondition: 'unknown-session'
- });
- }
-
- // Can't accept a session twice
- if (action === 'session-accept' && !session.pending) {
- this._log('error', 'Tried to accept session twice', sid);
- return this._sendError(sender, rid, {
- condition: 'unexpected-request',
- jingleCondition: 'out-of-order'
- });
- }
-
- // Can't process two requests at once, need to tie break
- if (action !== 'session-terminate' && action === session.pendingAction) {
- this._log('error', 'Tie break during pending request');
- if (session.isInitiator) {
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- }
- } else if (session) {
- // Don't accept a new session if we already have one.
- if (session.peerID !== sender) {
- this._log('error', 'Duplicate sid from new sender');
- return this._sendError(sender, rid, {
- condition: 'service-unavailable'
- });
- }
-
- // Check if we need to have a tie breaker because both parties
- // happened to pick the same random sid.
- if (session.pending) {
- if (this.selfID > session.peerID && this.performTieBreak(session, req)) {
- this._log('error', 'Tie break new session because of duplicate sids');
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- } else {
- // The other side is just doing it wrong.
- this._log('error', 'Someone is doing this wrong');
- return this._sendError(sender, rid, {
- condition: 'unexpected-request',
- jingleCondition: 'out-of-order'
- });
- }
- } else if (this.peers[sender] && this.peers[sender].length) {
- // Check if we need to have a tie breaker because we already have
- // a different session with this peer that is using the requested
- // content description types.
- for (var i = 0, len = this.peers[sender].length; i < len; i++) {
- var sess = this.peers[sender][i];
- if (sess && sess.pending && sess.sid > sid && this.performTieBreak(sess, req)) {
- this._log('info', 'Tie break session-initiate');
- return this._sendError(sender, rid, {
- condition: 'conflict',
- jingleCondition: 'tie-break'
- });
- }
- }
- }
-
- // We've now weeded out invalid requests, so we can process the action now.
-
- if (action === 'session-initiate') {
- if (!contents.length) {
- return self._sendError(sender, rid, {
- condition: 'bad-request'
- });
- }
-
- session = this._createIncomingSession({
- sid: sid,
- peer: req.from,
- peerID: sender,
- initiator: false,
- parent: this,
- descriptionTypes: descriptionTypes,
- transportTypes: transportTypes,
- iceServers: this.iceServers,
- constraints: this.config.peerConnectionConstraints
- }, req);
- }
-
- session.process(action, req.jingle, function (err) {
- if (err) {
- self._log('error', 'Could not process request', req, err);
- self._sendError(sender, rid, err);
- } else {
- self.emit('send', {
- to: sender,
- id: rid,
- type: 'result',
- });
-
- // Wait for the initial action to be processed before emitting
- // the session for the user to accept/reject.
- if (action === 'session-initiate') {
- self.emit('incoming', session);
- }
- }
- });
-};
-
-
-module.exports = SessionManager;
-
-},{"intersect":31,"jingle-filetransfer-session":32,"jingle-media-session":86,"jingle-session":118,"util":28,"webrtcsupport":123,"wildemitter":124}],30:[function(require,module,exports){
-var arr = [];
-var each = arr.forEach;
-var slice = arr.slice;
-
-
-module.exports = function(obj) {
- each.call(slice.call(arguments, 1), function(source) {
- if (source) {
- for (var prop in source) {
- obj[prop] = source[prop];
- }
- }
- });
- return obj;
-};
-
-},{}],31:[function(require,module,exports){
-module.exports = intersect;
-
-function intersect (a, b) {
- var res = [];
- for (var i = 0; i < a.length; i++) {
- if (indexOf(b, a[i]) > -1) res.push(a[i]);
- }
- return res;
-}
-
-intersect.big = function(a, b) {
- var ret = [];
- var temp = {};
-
- for (var i = 0; i < b.length; i++) {
- temp[b[i]] = true;
- }
- for (var i = 0; i < a.length; i++) {
- if (temp[a[i]]) ret.push(a[i]);
- }
-
- return ret;
-}
-
-function indexOf(arr, el) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] === el) return i;
- }
- return -1;
-}
-
-},{}],32:[function(require,module,exports){
-var util = require('util');
-var extend = require('extend-object');
-var BaseSession = require('jingle-session');
-var RTCPeerConnection = require('rtcpeerconnection');
-var FileTransfer = require('filetransfer/hashed');
-
-
-function FileTransferSession(opts) {
- BaseSession.call(this, opts);
-
- this.pc = new RTCPeerConnection({
- iceServers: opts.iceServers || [],
- useJingle: true
- }, opts.constraints || {});
-
- this.pc.on('ice', this.onIceCandidate.bind(this));
- this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
- this.pc.on('addChannel', this.onChannelAdded.bind(this));
-
- this.sender = null;
- this.receiver = null;
-}
-
-
-util.inherits(FileTransferSession, BaseSession);
-
-
-FileTransferSession.prototype = extend(FileTransferSession.prototype, {
-
- // ----------------------------------------------------------------
- // Session control methods
- // ----------------------------------------------------------------
-
- start: function (file) {
- var self = this;
- this.state = 'pending';
-
- this.pc.isInitiator = true;
-
- this.sender = new FileTransfer.Sender();
- this.sender.on('progress', function (sent, size) {
- self._log('info', 'Send progress ' + sent + '/' + size);
- });
- this.sender.on('sentFile', function (meta) {
- self._log('info', 'Sent file', meta.name);
-
- var content = self.pc.localDescription.contents[0];
- delete content.transport;
-
- content.description = {
- descType: 'filetransfer',
- offer: {
- hash: {
- algo: meta.algo,
- value: meta.hash
- }
- }
- };
-
- self.send('description-info', {
- contents: [content]
- });
- self.emit('sentFile', self, meta);
- });
-
- var sendChannel = this.pc.createDataChannel('filetransfer');
- sendChannel.onopen = function () {
- self.sender.send(file, sendChannel);
- };
-
- var constraints = {
- mandatory: {
- OfferToReceiveAudio: false,
- OfferToReceiveVideo: false
- }
- };
-
- this.pc.offer(constraints, function (err, offer) {
- if (err) {
- self._log('error', 'Could not create WebRTC offer', err);
- return self.end('failed-application', true);
- }
-
- offer.jingle.contents[0].description = {
- descType: 'filetransfer',
- offer: {
- date: file.lastModifiedDate,
- name: file.name,
- size: file.size,
- hash: {
- algo: 'sha-1',
- value: ''
- }
- }
- };
-
- self.send('session-initiate', offer.jingle);
- });
- },
-
- accept: function () {
- var self = this;
-
- this._log('info', 'Accepted incoming session');
-
- this.state = 'active';
-
- this.pc.answer(function (err, answer) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer', err);
- return self.end('failed-application');
- }
- self.send('session-accept', answer.jingle);
- });
- },
-
- end: function (reason, silent) {
- this.pc.close();
- BaseSession.prototype.end.call(this, reason, silent);
- },
-
- maybeReceivedFile: function () {
- if (!this.receiver.metadata.hash.value) {
- // unknown hash, file transfer not completed
- } else if (this.receiver.metadata.hash.value === this.receiver.metadata.actualhash) {
- this._log('info', 'File hash matches');
- this.emit('receivedFile', this, this.receivedFile, this.receiver.metadata);
- this.end('success');
- } else {
- this._log('error', 'File hash does not match');
- this.end('media-error');
- }
- },
-
- // ----------------------------------------------------------------
- // ICE action handers
- // ----------------------------------------------------------------
-
- onIceCandidate: function (candidate) {
- this._log('info', 'Discovered new ICE candidate', candidate.jingle);
- this.send('transport-info', candidate.jingle);
- },
-
- onIceStateChange: function () {
- switch (this.pc.iceConnectionState) {
- case 'checking':
- this.connectionState = 'connecting';
- break;
- case 'completed':
- case 'connected':
- this.connectionState = 'connected';
- break;
- case 'disconnected':
- if (this.pc.signalingState === 'stable') {
- this.connectionState = 'interrupted';
- } else {
- this.connectionState = 'disconnected';
- }
- break;
- case 'failed':
- this.connectionState = 'failed';
- this.end('failed-transport');
- break;
- case 'closed':
- this.connectionState = 'disconnected';
- break;
- }
- },
-
- onChannelAdded: function (channel) {
- this.receiver.receive(null, channel);
- },
-
- // ----------------------------------------------------------------
- // Jingle action handers
- // ----------------------------------------------------------------
-
- onSessionInitiate: function (changes, cb) {
- var self = this;
-
- this._log('info', 'Initiating incoming session');
-
- this.state = 'pending';
-
- this.pc.isInitiator = false;
-
- var desc = changes.contents[0].description;
-
-
- this.receiver = new FileTransfer.Receiver({hash: desc.offer.hash.algo});
- this.receiver.on('progress', function (received, size) {
- self._log('info', 'Receive progress ' + received + '/' + size);
- });
- this.receiver.on('receivedFile', function (file) {
- self.receivedFile = file;
- self.maybeReceivedFile();
- });
- this.receiver.metadata = desc.offer;
-
- changes.contents[0].description = {
- descType: 'datachannel'
- };
-
- this.pc.handleOffer({
- type: 'offer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not create WebRTC answer');
- return cb({condition: 'general-error'});
- }
- cb();
- });
- },
-
- onSessionAccept: function (changes, cb) {
- var self = this;
-
- this.state = 'active';
-
- changes.contents[0].description = {
- descType: 'datachannel'
- };
-
- this.pc.handleAnswer({
- type: 'answer',
- jingle: changes
- }, function (err) {
- if (err) {
- self._log('error', 'Could not process WebRTC answer');
- return cb({condition: 'general-error'});
- }
- self.emit('accepted', self);
- cb();
- });
- },
-
- onSessionTerminate: function (changes, cb) {
- this._log('info', 'Terminating session');
- this.pc.close();
- BaseSession.prototype.end.call(this, changes.reason, true);
- cb();
- },
-
- onDescriptionInfo: function (info, cb) {
- var hash = info.contents[0].description.offer.hash;
- this.receiver.metadata.hash = hash;
- if (this.receiver.metadata.actualhash) {
- this.maybeReceivedFile();
- }
- cb();
- },
-
- onTransportInfo: function (changes, cb) {
- this.pc.processIce(changes, function () {
- cb();
- });
- }
-});
-
-
-module.exports = FileTransferSession;
-
-},{"extend-object":30,"filetransfer/hashed":34,"jingle-session":118,"rtcpeerconnection":85,"util":28}],33:[function(require,module,exports){
-var WildEmitter = require('wildemitter');
-var util = require('util');
-
-function Sender(opts) {
- WildEmitter.call(this);
- var options = opts || {};
- this.config = {
- chunksize: 16384,
- pacing: 0
- };
- // set our config from options
- var item;
- for (item in options) {
- this.config[item] = options[item];
- }
-
- this.file = null;
- this.channel = null;
-}
-util.inherits(Sender, WildEmitter);
-
-Sender.prototype.send = function (file, channel) {
- var self = this;
- this.file = file;
- this.channel = channel;
- var sliceFile = function(offset) {
- var reader = new window.FileReader();
- reader.onload = (function() {
- return function(e) {
- self.channel.send(e.target.result);
- self.emit('progress', offset, file.size, e.target.result);
- if (file.size > offset + e.target.result.byteLength) {
- window.setTimeout(sliceFile, self.config.pacing, offset + self.config.chunksize);
- } else {
- self.emit('progress', file.size, file.size, null);
- self.emit('sentFile');
- }
- };
- })(file);
- var slice = file.slice(offset, offset + self.config.chunksize);
- reader.readAsArrayBuffer(slice);
- };
- window.setTimeout(sliceFile, 0, 0);
-};
-
-function Receiver() {
- WildEmitter.call(this);
-
- this.receiveBuffer = [];
- this.received = 0;
- this.metadata = {};
- this.channel = null;
-}
-util.inherits(Receiver, WildEmitter);
-
-Receiver.prototype.receive = function (metadata, channel) {
- var self = this;
-
- if (metadata) {
- this.metadata = metadata;
- }
- this.channel = channel;
- // chrome only supports arraybuffers and those make it easier to calc the hash
- channel.binaryType = 'arraybuffer';
- this.channel.onmessage = function (event) {
- var len = event.data.byteLength;
- self.received += len;
- self.receiveBuffer.push(event.data);
-
- self.emit('progress', self.received, self.metadata.size, event.data);
- if (self.received === self.metadata.size) {
- self.emit('receivedFile', new window.Blob(self.receiveBuffer), self.metadata);
- self.receiveBuffer = []; // discard receivebuffer
- } else if (self.received > self.metadata.size) {
- // FIXME
- console.error('received more than expected, discarding...');
- self.receiveBuffer = []; // just discard...
-
- }
- };
-};
-
-module.exports = {};
-module.exports.support = typeof window !== 'undefined' && window && window.File && window.FileReader && window.Blob;
-module.exports.Sender = Sender;
-module.exports.Receiver = Receiver;
-
-},{"util":28,"wildemitter":53}],34:[function(require,module,exports){
-var WildEmitter = require('wildemitter');
-var util = require('util');
-var hashes = require('iana-hashes');
-var base = require('./filetransfer');
-
-// drop-in replacement for filetransfer which also calculates hashes
-function Sender(opts) {
- WildEmitter.call(this);
- var self = this;
- this.base = new base.Sender(opts);
-
- var options = opts || {};
- if (!options.hash) {
- options.hash = 'sha-1';
- }
- this.hash = hashes.createHash(options.hash);
-
- this.base.on('progress', function (start, size, data) {
- self.emit('progress', start, size, data);
- if (data) {
- self.hash.update(new Uint8Array(data));
- }
- });
- this.base.on('sentFile', function () {
- self.emit('sentFile', {hash: self.hash.digest('hex'), algo: options.hash });
- });
-}
-util.inherits(Sender, WildEmitter);
-Sender.prototype.send = function () {
- this.base.send.apply(this.base, arguments);
-};
-
-function Receiver(opts) {
- WildEmitter.call(this);
- var self = this;
- this.base = new base.Receiver(opts);
-
- var options = opts || {};
- if (!options.hash) {
- options.hash = 'sha-1';
- }
- this.hash = hashes.createHash(options.hash);
-
- this.base.on('progress', function (start, size, data) {
- self.emit('progress', start, size, data);
- if (data) {
- self.hash.update(new Uint8Array(data));
- }
- });
- this.base.on('receivedFile', function (file, metadata) {
- metadata.actualhash = self.hash.digest('hex');
- self.emit('receivedFile', file, metadata);
- });
-}
-util.inherits(Receiver, WildEmitter);
-Receiver.prototype.receive = function () {
- this.base.receive.apply(this.base, arguments);
-};
-Object.defineProperty(Receiver.prototype, 'metadata', {
- get: function () {
- return this.base.metadata;
- },
- set: function (value) {
- this.base.metadata = value;
- }
-});
-
-module.exports = {};
-module.exports.support = base.support;
-module.exports.Sender = Sender;
-module.exports.Receiver = Receiver;
-
-},{"./filetransfer":33,"iana-hashes":35,"util":28,"wildemitter":53}],35:[function(require,module,exports){
-var createHash = require('create-hash');
-var createHmac = require('create-hmac');
-var getHashes = require('./lib/get-hashes');
-
-var mapping = {
- md2: 'md2',
- md5: 'md5',
- 'sha-1': 'sha1',
- 'sha-224': 'sha224',
- 'sha-256': 'sha256',
- 'sha-384': 'sha384',
- 'sha-512': 'sha512'
-};
-
-var names = Object.keys(mapping);
-
-
-exports.getHashes = function () {
- var result = [];
- var available = getHashes();
- for (var i = 0, len = names.length; i < len; i++) {
- if (available.indexOf(mapping[names[i]]) >= 0) {
- result.push(names[i]);
- }
- }
- return result;
-};
-
-exports.createHash = function (algorithm) {
- algorithm = algorithm.toLowerCase();
- if (mapping[algorithm]) {
- algorithm = mapping[algorithm];
- }
- return createHash(algorithm);
-};
-
-exports.createHmac = function (algorithm, key) {
- algorithm = algorithm.toLowerCase();
- if (mapping[algorithm]) {
- algorithm = mapping[algorithm];
- }
- return createHmac(algorithm, key);
-};
-
-},{"./lib/get-hashes":36,"create-hash":37,"create-hmac":51}],36:[function(require,module,exports){
-module.exports = function () {
- return ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'];
-};
-
-},{}],37:[function(require,module,exports){
+}).call(this,{"isBuffer":require("../../is-buffer/index.js")})
+},{"../../is-buffer/index.js":47}],23:[function(require,module,exports){
(function (Buffer){
'use strict';
var inherits = require('inherits')
@@ -6772,7 +2476,7 @@ module.exports = function createHash (alg) {
}
}).call(this,require("buffer").Buffer)
-},{"./md5":39,"buffer":2,"cipher-base":40,"inherits":41,"ripemd160":42,"sha.js":44}],38:[function(require,module,exports){
+},{"./md5":25,"buffer":6,"cipher-base":7,"inherits":45,"ripemd160":166,"sha.js":175}],24:[function(require,module,exports){
(function (Buffer){
'use strict';
var intSize = 4;
@@ -6809,7 +2513,7 @@ function hash(buf, fn, hashSize, bigEndian) {
}
exports.hash = hash;
}).call(this,require("buffer").Buffer)
-},{"buffer":2}],39:[function(require,module,exports){
+},{"buffer":6}],25:[function(require,module,exports){
'use strict';
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
@@ -6966,1142 +2670,7 @@ function bit_rol(num, cnt)
module.exports = function md5(buf) {
return helpers.hash(buf, core_md5, 16);
};
-},{"./helpers":38}],40:[function(require,module,exports){
-(function (Buffer){
-var Transform = require('stream').Transform
-var inherits = require('inherits')
-var StringDecoder = require('string_decoder').StringDecoder
-module.exports = CipherBase
-inherits(CipherBase, Transform)
-function CipherBase (hashMode) {
- Transform.call(this)
- this.hashMode = typeof hashMode === 'string'
- if (this.hashMode) {
- this[hashMode] = this._finalOrDigest
- } else {
- this.final = this._finalOrDigest
- }
- this._decoder = null
- this._encoding = null
-}
-CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
- if (typeof data === 'string') {
- data = new Buffer(data, inputEnc)
- }
- var outData = this._update(data)
- if (this.hashMode) {
- return this
- }
- if (outputEnc) {
- outData = this._toString(outData, outputEnc)
- }
- return outData
-}
-
-CipherBase.prototype.setAutoPadding = function () {}
-
-CipherBase.prototype.getAuthTag = function () {
- throw new Error('trying to get auth tag in unsupported state')
-}
-
-CipherBase.prototype.setAuthTag = function () {
- throw new Error('trying to set auth tag in unsupported state')
-}
-
-CipherBase.prototype.setAAD = function () {
- throw new Error('trying to set aad in unsupported state')
-}
-
-CipherBase.prototype._transform = function (data, _, next) {
- var err
- try {
- if (this.hashMode) {
- this._update(data)
- } else {
- this.push(this._update(data))
- }
- } catch (e) {
- err = e
- } finally {
- next(err)
- }
-}
-CipherBase.prototype._flush = function (done) {
- var err
- try {
- this.push(this._final())
- } catch (e) {
- err = e
- } finally {
- done(err)
- }
-}
-CipherBase.prototype._finalOrDigest = function (outputEnc) {
- var outData = this._final() || new Buffer('')
- if (outputEnc) {
- outData = this._toString(outData, outputEnc, true)
- }
- return outData
-}
-
-CipherBase.prototype._toString = function (value, enc, final) {
- if (!this._decoder) {
- this._decoder = new StringDecoder(enc)
- this._encoding = enc
- }
- if (this._encoding !== enc) {
- throw new Error('can\'t switch encodings')
- }
- var out = this._decoder.write(value)
- if (final) {
- out += this._decoder.end()
- }
- return out
-}
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":2,"inherits":41,"stream":25,"string_decoder":26}],41:[function(require,module,exports){
-arguments[4][7][0].apply(exports,arguments)
-},{"dup":7}],42:[function(require,module,exports){
-(function (Buffer){
-/*
-CryptoJS v3.1.2
-code.google.com/p/crypto-js
-(c) 2009-2013 by Jeff Mott. All rights reserved.
-code.google.com/p/crypto-js/wiki/License
-*/
-/** @preserve
-(c) 2012 by Cédric Mesnil. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// constants table
-var zl = [
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
- 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
- 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
- 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
-]
-
-var zr = [
- 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
- 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
- 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
- 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
- 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
-]
-
-var sl = [
- 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
- 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
- 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
- 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
- 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
-]
-
-var sr = [
- 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
- 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
- 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
- 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
- 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
-]
-
-var hl = [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]
-var hr = [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]
-
-function bytesToWords (bytes) {
- var words = []
- for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
- words[b >>> 5] |= bytes[i] << (24 - b % 32)
- }
- return words
-}
-
-function wordsToBytes (words) {
- var bytes = []
- for (var b = 0; b < words.length * 32; b += 8) {
- bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)
- }
- return bytes
-}
-
-function processBlock (H, M, offset) {
- // swap endian
- for (var i = 0; i < 16; i++) {
- var offset_i = offset + i
- var M_offset_i = M[offset_i]
-
- // Swap
- M[offset_i] = (
- (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
- (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
- )
- }
-
- // Working variables
- var al, bl, cl, dl, el
- var ar, br, cr, dr, er
-
- ar = al = H[0]
- br = bl = H[1]
- cr = cl = H[2]
- dr = dl = H[3]
- er = el = H[4]
-
- // computation
- var t
- for (i = 0; i < 80; i += 1) {
- t = (al + M[offset + zl[i]]) | 0
- if (i < 16) {
- t += f1(bl, cl, dl) + hl[0]
- } else if (i < 32) {
- t += f2(bl, cl, dl) + hl[1]
- } else if (i < 48) {
- t += f3(bl, cl, dl) + hl[2]
- } else if (i < 64) {
- t += f4(bl, cl, dl) + hl[3]
- } else {// if (i<80) {
- t += f5(bl, cl, dl) + hl[4]
- }
- t = t | 0
- t = rotl(t, sl[i])
- t = (t + el) | 0
- al = el
- el = dl
- dl = rotl(cl, 10)
- cl = bl
- bl = t
-
- t = (ar + M[offset + zr[i]]) | 0
- if (i < 16) {
- t += f5(br, cr, dr) + hr[0]
- } else if (i < 32) {
- t += f4(br, cr, dr) + hr[1]
- } else if (i < 48) {
- t += f3(br, cr, dr) + hr[2]
- } else if (i < 64) {
- t += f2(br, cr, dr) + hr[3]
- } else {// if (i<80) {
- t += f1(br, cr, dr) + hr[4]
- }
-
- t = t | 0
- t = rotl(t, sr[i])
- t = (t + er) | 0
- ar = er
- er = dr
- dr = rotl(cr, 10)
- cr = br
- br = t
- }
-
- // intermediate hash value
- t = (H[1] + cl + dr) | 0
- H[1] = (H[2] + dl + er) | 0
- H[2] = (H[3] + el + ar) | 0
- H[3] = (H[4] + al + br) | 0
- H[4] = (H[0] + bl + cr) | 0
- H[0] = t
-}
-
-function f1 (x, y, z) {
- return ((x) ^ (y) ^ (z))
-}
-
-function f2 (x, y, z) {
- return (((x) & (y)) | ((~x) & (z)))
-}
-
-function f3 (x, y, z) {
- return (((x) | (~(y))) ^ (z))
-}
-
-function f4 (x, y, z) {
- return (((x) & (z)) | ((y) & (~(z))))
-}
-
-function f5 (x, y, z) {
- return ((x) ^ ((y) | (~(z))))
-}
-
-function rotl (x, n) {
- return (x << n) | (x >>> (32 - n))
-}
-
-function ripemd160 (message) {
- var H = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]
-
- if (typeof message === 'string') {
- message = new Buffer(message, 'utf8')
- }
-
- var m = bytesToWords(message)
-
- var nBitsLeft = message.length * 8
- var nBitsTotal = message.length * 8
-
- // Add padding
- m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32)
- m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
- (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
- (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
- )
-
- for (var i = 0; i < m.length; i += 16) {
- processBlock(H, m, i)
- }
-
- // swap endian
- for (i = 0; i < 5; i++) {
- // shortcut
- var H_i = H[i]
-
- // Swap
- H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
- (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00)
- }
-
- var digestbytes = wordsToBytes(H)
- return new Buffer(digestbytes)
-}
-
-module.exports = ripemd160
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":2}],43:[function(require,module,exports){
-(function (Buffer){
-// prototype class for hash functions
-function Hash (blockSize, finalSize) {
- this._block = new Buffer(blockSize)
- this._finalSize = finalSize
- this._blockSize = blockSize
- this._len = 0
- this._s = 0
-}
-
-Hash.prototype.update = function (data, enc) {
- if (typeof data === 'string') {
- enc = enc || 'utf8'
- data = new Buffer(data, enc)
- }
-
- var l = this._len += data.length
- var s = this._s || 0
- var f = 0
- var buffer = this._block
-
- while (s < l) {
- var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
- var ch = (t - f)
-
- for (var i = 0; i < ch; i++) {
- buffer[(s % this._blockSize) + i] = data[i + f]
- }
-
- s += ch
- f += ch
-
- if ((s % this._blockSize) === 0) {
- this._update(buffer)
- }
- }
- this._s = s
-
- return this
-}
-
-Hash.prototype.digest = function (enc) {
- // Suppose the length of the message M, in bits, is l
- var l = this._len * 8
-
- // Append the bit 1 to the end of the message
- this._block[this._len % this._blockSize] = 0x80
-
- // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
- this._block.fill(0, this._len % this._blockSize + 1)
-
- if (l % (this._blockSize * 8) >= this._finalSize * 8) {
- this._update(this._block)
- this._block.fill(0)
- }
-
- // to this append the block which is equal to the number l written in binary
- // TODO: handle case where l is > Math.pow(2, 29)
- this._block.writeInt32BE(l, this._blockSize - 4)
-
- var hash = this._update(this._block) || this._hash()
-
- return enc ? hash.toString(enc) : hash
-}
-
-Hash.prototype._update = function () {
- throw new Error('_update must be implemented by subclass')
-}
-
-module.exports = Hash
-
-}).call(this,require("buffer").Buffer)
-},{"buffer":2}],44:[function(require,module,exports){
-var exports = module.exports = function SHA (algorithm) {
- algorithm = algorithm.toLowerCase()
-
- var Algorithm = exports[algorithm]
- if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
-
- return new Algorithm()
-}
-
-exports.sha = require('./sha')
-exports.sha1 = require('./sha1')
-exports.sha224 = require('./sha224')
-exports.sha256 = require('./sha256')
-exports.sha384 = require('./sha384')
-exports.sha512 = require('./sha512')
-
-},{"./sha":45,"./sha1":46,"./sha224":47,"./sha256":48,"./sha384":49,"./sha512":50}],45:[function(require,module,exports){
-(function (Buffer){
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
- * in FIPS PUB 180-1
- * This source code is derived from sha1.js of the same repository.
- * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
- * operation was added.
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var W = new Array(80)
-
-function Sha () {
- this.init()
- this._w = W
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha, Hash)
-
-Sha.prototype.init = function () {
- this._a = 0x67452301 | 0
- this._b = 0xefcdab89 | 0
- this._c = 0x98badcfe | 0
- this._d = 0x10325476 | 0
- this._e = 0xc3d2e1f0 | 0
-
- return this
-}
-
-/*
- * Bitwise rotate a 32-bit number to the left.
- */
-function rol (num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt))
-}
-
-Sha.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a
- var b = this._b
- var c = this._c
- var d = this._d
- var e = this._e
-
- var j = 0
- var k
-
- /*
- * SHA-1 has a bitwise rotate left operation. But, SHA is not
- * function calcW() { return rol(W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16], 1) }
- */
- function calcW () { return W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16] }
- function loop (w, f) {
- W[j] = w
-
- var t = rol(a, 5) + f + e + w + k
-
- e = d
- d = c
- c = rol(b, 30)
- b = a
- a = t
- j++
- }
-
- k = 1518500249
- while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
- while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
- k = 1859775393
- while (j < 40) loop(calcW(), b ^ c ^ d)
- k = -1894007588
- while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
- k = -899497514
- while (j < 80) loop(calcW(), b ^ c ^ d)
-
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
-}
-
-Sha.prototype._hash = function () {
- var H = new Buffer(20)
-
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
-
- return H
-}
-
-module.exports = Sha
-
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],46:[function(require,module,exports){
-(function (Buffer){
-/*
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
- * in FIPS PUB 180-1
- * Version 2.1a Copyright Paul Johnston 2000 - 2002.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for details.
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var W = new Array(80)
-
-function Sha1 () {
- this.init()
- this._w = W
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha1, Hash)
-
-Sha1.prototype.init = function () {
- this._a = 0x67452301 | 0
- this._b = 0xefcdab89 | 0
- this._c = 0x98badcfe | 0
- this._d = 0x10325476 | 0
- this._e = 0xc3d2e1f0 | 0
-
- return this
-}
-
-/*
- * Bitwise rotate a 32-bit number to the left.
- */
-function rol (num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt))
-}
-
-Sha1.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a
- var b = this._b
- var c = this._c
- var d = this._d
- var e = this._e
-
- var j = 0
- var k
-
- function calcW () { return rol(W[j - 3] ^ W[j - 8] ^ W[j - 14] ^ W[j - 16], 1) }
- function loop (w, f) {
- W[j] = w
-
- var t = rol(a, 5) + f + e + w + k
-
- e = d
- d = c
- c = rol(b, 30)
- b = a
- a = t
- j++
- }
-
- k = 1518500249
- while (j < 16) loop(M.readInt32BE(j * 4), (b & c) | ((~b) & d))
- while (j < 20) loop(calcW(), (b & c) | ((~b) & d))
- k = 1859775393
- while (j < 40) loop(calcW(), b ^ c ^ d)
- k = -1894007588
- while (j < 60) loop(calcW(), (b & c) | (b & d) | (c & d))
- k = -899497514
- while (j < 80) loop(calcW(), b ^ c ^ d)
-
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
-}
-
-Sha1.prototype._hash = function () {
- var H = new Buffer(20)
-
- H.writeInt32BE(this._a | 0, 0)
- H.writeInt32BE(this._b | 0, 4)
- H.writeInt32BE(this._c | 0, 8)
- H.writeInt32BE(this._d | 0, 12)
- H.writeInt32BE(this._e | 0, 16)
-
- return H
-}
-
-module.exports = Sha1
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],47:[function(require,module,exports){
-(function (Buffer){
-/**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
-
-var inherits = require('inherits')
-var Sha256 = require('./sha256')
-var Hash = require('./hash')
-
-var W = new Array(64)
-
-function Sha224 () {
- this.init()
-
- this._w = W // new Array(64)
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha224, Sha256)
-
-Sha224.prototype.init = function () {
- this._a = 0xc1059ed8 | 0
- this._b = 0x367cd507 | 0
- this._c = 0x3070dd17 | 0
- this._d = 0xf70e5939 | 0
- this._e = 0xffc00b31 | 0
- this._f = 0x68581511 | 0
- this._g = 0x64f98fa7 | 0
- this._h = 0xbefa4fa4 | 0
-
- return this
-}
-
-Sha224.prototype._hash = function () {
- var H = new Buffer(28)
-
- H.writeInt32BE(this._a, 0)
- H.writeInt32BE(this._b, 4)
- H.writeInt32BE(this._c, 8)
- H.writeInt32BE(this._d, 12)
- H.writeInt32BE(this._e, 16)
- H.writeInt32BE(this._f, 20)
- H.writeInt32BE(this._g, 24)
-
- return H
-}
-
-module.exports = Sha224
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"./sha256":48,"buffer":2,"inherits":41}],48:[function(require,module,exports){
-(function (Buffer){
-/**
- * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
- * in FIPS 180-2
- * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- *
- */
-
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
- 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
- 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
- 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
- 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
- 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
- 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
- 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
- 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
- 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
- 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
- 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
- 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
- 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
- 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
- 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
-]
-
-var W = new Array(64)
-
-function Sha256 () {
- this.init()
-
- this._w = W // new Array(64)
-
- Hash.call(this, 64, 56)
-}
-
-inherits(Sha256, Hash)
-
-Sha256.prototype.init = function () {
- this._a = 0x6a09e667 | 0
- this._b = 0xbb67ae85 | 0
- this._c = 0x3c6ef372 | 0
- this._d = 0xa54ff53a | 0
- this._e = 0x510e527f | 0
- this._f = 0x9b05688c | 0
- this._g = 0x1f83d9ab | 0
- this._h = 0x5be0cd19 | 0
-
- return this
-}
-
-function Ch (x, y, z) {
- return z ^ (x & (y ^ z))
-}
-
-function Maj (x, y, z) {
- return (x & y) | (z & (x | y))
-}
-
-function Sigma0 (x) {
- return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
-}
-
-function Sigma1 (x) {
- return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
-}
-
-function Gamma0 (x) {
- return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
-}
-
-function Gamma1 (x) {
- return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
-}
-
-Sha256.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- var f = this._f | 0
- var g = this._g | 0
- var h = this._h | 0
-
- var j = 0
-
- function calcW () { return Gamma1(W[j - 2]) + W[j - 7] + Gamma0(W[j - 15]) + W[j - 16] }
- function loop (w) {
- W[j] = w
-
- var T1 = h + Sigma1(e) + Ch(e, f, g) + K[j] + w
- var T2 = Sigma0(a) + Maj(a, b, c)
-
- h = g
- g = f
- f = e
- e = d + T1
- d = c
- c = b
- b = a
- a = T1 + T2
-
- j++
- }
-
- while (j < 16) loop(M.readInt32BE(j * 4))
- while (j < 64) loop(calcW())
-
- this._a = (a + this._a) | 0
- this._b = (b + this._b) | 0
- this._c = (c + this._c) | 0
- this._d = (d + this._d) | 0
- this._e = (e + this._e) | 0
- this._f = (f + this._f) | 0
- this._g = (g + this._g) | 0
- this._h = (h + this._h) | 0
-}
-
-Sha256.prototype._hash = function () {
- var H = new Buffer(32)
-
- H.writeInt32BE(this._a, 0)
- H.writeInt32BE(this._b, 4)
- H.writeInt32BE(this._c, 8)
- H.writeInt32BE(this._d, 12)
- H.writeInt32BE(this._e, 16)
- H.writeInt32BE(this._f, 20)
- H.writeInt32BE(this._g, 24)
- H.writeInt32BE(this._h, 28)
-
- return H
-}
-
-module.exports = Sha256
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],49:[function(require,module,exports){
-(function (Buffer){
-var inherits = require('inherits')
-var SHA512 = require('./sha512')
-var Hash = require('./hash')
-
-var W = new Array(160)
-
-function Sha384 () {
- this.init()
- this._w = W
-
- Hash.call(this, 128, 112)
-}
-
-inherits(Sha384, SHA512)
-
-Sha384.prototype.init = function () {
- this._a = 0xcbbb9d5d | 0
- this._b = 0x629a292a | 0
- this._c = 0x9159015a | 0
- this._d = 0x152fecd8 | 0
- this._e = 0x67332667 | 0
- this._f = 0x8eb44a87 | 0
- this._g = 0xdb0c2e0d | 0
- this._h = 0x47b5481d | 0
-
- this._al = 0xc1059ed8 | 0
- this._bl = 0x367cd507 | 0
- this._cl = 0x3070dd17 | 0
- this._dl = 0xf70e5939 | 0
- this._el = 0xffc00b31 | 0
- this._fl = 0x68581511 | 0
- this._gl = 0x64f98fa7 | 0
- this._hl = 0xbefa4fa4 | 0
-
- return this
-}
-
-Sha384.prototype._hash = function () {
- var H = new Buffer(48)
-
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
-
- writeInt64BE(this._a, this._al, 0)
- writeInt64BE(this._b, this._bl, 8)
- writeInt64BE(this._c, this._cl, 16)
- writeInt64BE(this._d, this._dl, 24)
- writeInt64BE(this._e, this._el, 32)
- writeInt64BE(this._f, this._fl, 40)
-
- return H
-}
-
-module.exports = Sha384
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"./sha512":50,"buffer":2,"inherits":41}],50:[function(require,module,exports){
-(function (Buffer){
-var inherits = require('inherits')
-var Hash = require('./hash')
-
-var K = [
- 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
- 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
- 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
- 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
- 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
- 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
- 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
- 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
- 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
- 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
- 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
- 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
- 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
- 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
- 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
- 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
- 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
- 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
- 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
- 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
- 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
- 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
- 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
- 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
- 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
- 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
- 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
- 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
- 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
- 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
- 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
- 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
- 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
- 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
- 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
- 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
- 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
- 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
- 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
- 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
-]
-
-var W = new Array(160)
-
-function Sha512 () {
- this.init()
- this._w = W
-
- Hash.call(this, 128, 112)
-}
-
-inherits(Sha512, Hash)
-
-Sha512.prototype.init = function () {
- this._a = 0x6a09e667 | 0
- this._b = 0xbb67ae85 | 0
- this._c = 0x3c6ef372 | 0
- this._d = 0xa54ff53a | 0
- this._e = 0x510e527f | 0
- this._f = 0x9b05688c | 0
- this._g = 0x1f83d9ab | 0
- this._h = 0x5be0cd19 | 0
-
- this._al = 0xf3bcc908 | 0
- this._bl = 0x84caa73b | 0
- this._cl = 0xfe94f82b | 0
- this._dl = 0x5f1d36f1 | 0
- this._el = 0xade682d1 | 0
- this._fl = 0x2b3e6c1f | 0
- this._gl = 0xfb41bd6b | 0
- this._hl = 0x137e2179 | 0
-
- return this
-}
-
-function Ch (x, y, z) {
- return z ^ (x & (y ^ z))
-}
-
-function Maj (x, y, z) {
- return (x & y) | (z & (x | y))
-}
-
-function Sigma0 (x, xl) {
- return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
-}
-
-function Sigma1 (x, xl) {
- return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
-}
-
-function Gamma0 (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
-}
-
-function Gamma0l (x, xl) {
- return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
-}
-
-function Gamma1 (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
-}
-
-function Gamma1l (x, xl) {
- return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
-}
-
-Sha512.prototype._update = function (M) {
- var W = this._w
-
- var a = this._a | 0
- var b = this._b | 0
- var c = this._c | 0
- var d = this._d | 0
- var e = this._e | 0
- var f = this._f | 0
- var g = this._g | 0
- var h = this._h | 0
-
- var al = this._al | 0
- var bl = this._bl | 0
- var cl = this._cl | 0
- var dl = this._dl | 0
- var el = this._el | 0
- var fl = this._fl | 0
- var gl = this._gl | 0
- var hl = this._hl | 0
-
- var i = 0
- var j = 0
- var Wi, Wil
- function calcW () {
- var x = W[j - 15 * 2]
- var xl = W[j - 15 * 2 + 1]
- var gamma0 = Gamma0(x, xl)
- var gamma0l = Gamma0l(xl, x)
-
- x = W[j - 2 * 2]
- xl = W[j - 2 * 2 + 1]
- var gamma1 = Gamma1(x, xl)
- var gamma1l = Gamma1l(xl, x)
-
- // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
- var Wi7 = W[j - 7 * 2]
- var Wi7l = W[j - 7 * 2 + 1]
-
- var Wi16 = W[j - 16 * 2]
- var Wi16l = W[j - 16 * 2 + 1]
-
- Wil = gamma0l + Wi7l
- Wi = gamma0 + Wi7 + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0)
- Wil = Wil + gamma1l
- Wi = Wi + gamma1 + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0)
- Wil = Wil + Wi16l
- Wi = Wi + Wi16 + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0)
- }
-
- function loop () {
- W[j] = Wi
- W[j + 1] = Wil
-
- var maj = Maj(a, b, c)
- var majl = Maj(al, bl, cl)
-
- var sigma0h = Sigma0(a, al)
- var sigma0l = Sigma0(al, a)
- var sigma1h = Sigma1(e, el)
- var sigma1l = Sigma1(el, e)
-
- // t1 = h + sigma1 + ch + K[i] + W[i]
- var Ki = K[j]
- var Kil = K[j + 1]
-
- var ch = Ch(e, f, g)
- var chl = Ch(el, fl, gl)
-
- var t1l = hl + sigma1l
- var t1 = h + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0)
- t1l = t1l + chl
- t1 = t1 + ch + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0)
- t1l = t1l + Kil
- t1 = t1 + Ki + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0)
- t1l = t1l + Wil
- t1 = t1 + Wi + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0)
-
- // t2 = sigma0 + maj
- var t2l = sigma0l + majl
- var t2 = sigma0h + maj + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0)
-
- h = g
- hl = gl
- g = f
- gl = fl
- f = e
- fl = el
- el = (dl + t1l) | 0
- e = (d + t1 + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
- d = c
- dl = cl
- c = b
- cl = bl
- b = a
- bl = al
- al = (t1l + t2l) | 0
- a = (t1 + t2 + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0
-
- i++
- j += 2
- }
-
- while (i < 16) {
- Wi = M.readInt32BE(j * 4)
- Wil = M.readInt32BE(j * 4 + 4)
-
- loop()
- }
-
- while (i < 80) {
- calcW()
- loop()
- }
-
- this._al = (this._al + al) | 0
- this._bl = (this._bl + bl) | 0
- this._cl = (this._cl + cl) | 0
- this._dl = (this._dl + dl) | 0
- this._el = (this._el + el) | 0
- this._fl = (this._fl + fl) | 0
- this._gl = (this._gl + gl) | 0
- this._hl = (this._hl + hl) | 0
-
- this._a = (this._a + a + ((this._al >>> 0) < (al >>> 0) ? 1 : 0)) | 0
- this._b = (this._b + b + ((this._bl >>> 0) < (bl >>> 0) ? 1 : 0)) | 0
- this._c = (this._c + c + ((this._cl >>> 0) < (cl >>> 0) ? 1 : 0)) | 0
- this._d = (this._d + d + ((this._dl >>> 0) < (dl >>> 0) ? 1 : 0)) | 0
- this._e = (this._e + e + ((this._el >>> 0) < (el >>> 0) ? 1 : 0)) | 0
- this._f = (this._f + f + ((this._fl >>> 0) < (fl >>> 0) ? 1 : 0)) | 0
- this._g = (this._g + g + ((this._gl >>> 0) < (gl >>> 0) ? 1 : 0)) | 0
- this._h = (this._h + h + ((this._hl >>> 0) < (hl >>> 0) ? 1 : 0)) | 0
-}
-
-Sha512.prototype._hash = function () {
- var H = new Buffer(64)
-
- function writeInt64BE (h, l, offset) {
- H.writeInt32BE(h, offset)
- H.writeInt32BE(l, offset + 4)
- }
-
- writeInt64BE(this._a, this._al, 0)
- writeInt64BE(this._b, this._bl, 8)
- writeInt64BE(this._c, this._cl, 16)
- writeInt64BE(this._d, this._dl, 24)
- writeInt64BE(this._e, this._el, 32)
- writeInt64BE(this._f, this._fl, 40)
- writeInt64BE(this._g, this._gl, 48)
- writeInt64BE(this._h, this._hl, 56)
-
- return H
-}
-
-module.exports = Sha512
-
-}).call(this,require("buffer").Buffer)
-},{"./hash":43,"buffer":2,"inherits":41}],51:[function(require,module,exports){
+},{"./helpers":24}],26:[function(require,module,exports){
(function (Buffer){
'use strict';
var createHash = require('create-hash/browser');
@@ -8173,3866 +2742,2595 @@ module.exports = function createHmac(alg, key) {
}
}).call(this,require("buffer").Buffer)
-},{"buffer":2,"create-hash/browser":37,"inherits":52,"stream":25}],52:[function(require,module,exports){
-arguments[4][7][0].apply(exports,arguments)
-},{"dup":7}],53:[function(require,module,exports){
-/*
-WildEmitter.js is a slim little event emitter by @henrikjoreteg largely based
-on @visionmedia's Emitter from UI Kit.
-
-Why? I wanted it standalone.
-
-I also wanted support for wildcard emitters like this:
-
-emitter.on('*', function (eventName, other, event, payloads) {
-
-});
-
-emitter.on('somenamespace*', function (eventName, payloads) {
-
-});
-
-Please note that callbacks triggered by wildcard registered events also get
-the event name as the first argument.
-*/
-
-module.exports = WildEmitter;
-
-function WildEmitter() { }
-
-WildEmitter.mixin = function (constructor) {
- var prototype = constructor.prototype || constructor;
-
- prototype.isWildEmitter= true;
-
- // Listen on the given `event` with `fn`. Store a group name if present.
- prototype.on = function (event, groupName, fn) {
- this.callbacks = this.callbacks || {};
- var hasGroup = (arguments.length === 3),
- group = hasGroup ? arguments[1] : undefined,
- func = hasGroup ? arguments[2] : arguments[1];
- func._groupName = group;
- (this.callbacks[event] = this.callbacks[event] || []).push(func);
- return this;
- };
-
- // Adds an `event` listener that will be invoked a single
- // time then automatically removed.
- prototype.once = function (event, groupName, fn) {
- var self = this,
- hasGroup = (arguments.length === 3),
- group = hasGroup ? arguments[1] : undefined,
- func = hasGroup ? arguments[2] : arguments[1];
- function on() {
- self.off(event, on);
- func.apply(this, arguments);
- }
- this.on(event, group, on);
- return this;
- };
-
- // Unbinds an entire group
- prototype.releaseGroup = function (groupName) {
- this.callbacks = this.callbacks || {};
- var item, i, len, handlers;
- for (item in this.callbacks) {
- handlers = this.callbacks[item];
- for (i = 0, len = handlers.length; i < len; i++) {
- if (handlers[i]._groupName === groupName) {
- //console.log('removing');
- // remove it and shorten the array we're looping through
- handlers.splice(i, 1);
- i--;
- len--;
- }
- }
- }
- return this;
- };
-
- // Remove the given callback for `event` or all
- // registered callbacks.
- prototype.off = function (event, fn) {
- this.callbacks = this.callbacks || {};
- var callbacks = this.callbacks[event],
- i;
-
- if (!callbacks) return this;
-
- // remove all handlers
- if (arguments.length === 1) {
- delete this.callbacks[event];
- return this;
- }
-
- // remove specific handler
- i = callbacks.indexOf(fn);
- callbacks.splice(i, 1);
- if (callbacks.length === 0) {
- delete this.callbacks[event];
- }
- return this;
- };
-
- /// Emit `event` with the given args.
- // also calls any `*` handlers
- prototype.emit = function (event) {
- this.callbacks = this.callbacks || {};
- var args = [].slice.call(arguments, 1),
- callbacks = this.callbacks[event],
- specialCallbacks = this.getWildcardCallbacks(event),
- i,
- len,
- item,
- listeners;
-
- if (callbacks) {
- listeners = callbacks.slice();
- for (i = 0, len = listeners.length; i < len; ++i) {
- if (!listeners[i]) {
- break;
- }
- listeners[i].apply(this, args);
- }
- }
-
- if (specialCallbacks) {
- len = specialCallbacks.length;
- listeners = specialCallbacks.slice();
- for (i = 0, len = listeners.length; i < len; ++i) {
- if (!listeners[i]) {
- break;
- }
- listeners[i].apply(this, [event].concat(args));
- }
- }
-
- return this;
- };
-
- // Helper for for finding special wildcard event handlers that match the event
- prototype.getWildcardCallbacks = function (eventName) {
- this.callbacks = this.callbacks || {};
- var item,
- split,
- result = [];
-
- for (item in this.callbacks) {
- split = item.split('*');
- if (item === '*' || (split.length === 2 && eventName.slice(0, split[0].length) === split[0])) {
- result = result.concat(this.callbacks[item]);
- }
- }
- return result;
- };
-
-};
-
-WildEmitter.mixin(WildEmitter);
-
-},{}],54:[function(require,module,exports){
-/**
- * lodash 3.0.3 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var arrayEach = require('lodash._arrayeach'),
- baseEach = require('lodash._baseeach'),
- bindCallback = require('lodash._bindcallback'),
- isArray = require('lodash.isarray');
+},{"buffer":6,"create-hash/browser":23,"inherits":45,"stream":182}],27:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
-/**
- * Creates a function for `_.forEach` or `_.forEachRight`.
- *
- * @private
- * @param {Function} arrayFunc The function to iterate over an array.
- * @param {Function} eachFunc The function to iterate over a collection.
- * @returns {Function} Returns the new each function.
- */
-function createForEach(arrayFunc, eachFunc) {
- return function(collection, iteratee, thisArg) {
- return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))
- ? arrayFunc(collection, iteratee)
- : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
- };
+function EventEmitter() {
+ this._events = this._events || {};
+ this._maxListeners = this._maxListeners || undefined;
}
+module.exports = EventEmitter;
-/**
- * Iterates over elements of `collection` invoking `iteratee` for each element.
- * The `iteratee` is bound to `thisArg` and invoked with three arguments:
- * (value, index|key, collection). Iteratee functions may exit iteration early
- * by explicitly returning `false`.
- *
- * **Note:** As with other "Collections" methods, objects with a "length" property
- * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
- * may be used for object iteration.
- *
- * @static
- * @memberOf _
- * @alias each
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity] The function invoked per iteration.
- * @param {*} [thisArg] The `this` binding of `iteratee`.
- * @returns {Array|Object|string} Returns `collection`.
- * @example
- *
- * _([1, 2]).forEach(function(n) {
- * console.log(n);
- * }).value();
- * // => logs each value from left to right and returns the array
- *
- * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
- * console.log(n, key);
- * });
- * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
- */
-var forEach = createForEach(arrayEach, baseEach);
+// Backwards-compat with node 0.10.x
+EventEmitter.EventEmitter = EventEmitter;
-module.exports = forEach;
+EventEmitter.prototype._events = undefined;
+EventEmitter.prototype._maxListeners = undefined;
-},{"lodash._arrayeach":55,"lodash._baseeach":56,"lodash._bindcallback":60,"lodash.isarray":61}],55:[function(require,module,exports){
-/**
- * lodash 3.0.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+// By default EventEmitters will print a warning if more than 10 listeners are
+// added to it. This is a useful default which helps finding memory leaks.
+EventEmitter.defaultMaxListeners = 10;
-/**
- * A specialized version of `_.forEach` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns `array`.
- */
-function arrayEach(array, iteratee) {
- var index = -1,
- length = array.length;
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+EventEmitter.prototype.setMaxListeners = function(n) {
+ if (!isNumber(n) || n < 0 || isNaN(n))
+ throw TypeError('n must be a positive number');
+ this._maxListeners = n;
+ return this;
+};
- while (++index < length) {
- if (iteratee(array[index], index, array) === false) {
- break;
+EventEmitter.prototype.emit = function(type) {
+ var er, handler, len, args, i, listeners;
+
+ if (!this._events)
+ this._events = {};
+
+ // If there is no 'error' event listener then throw.
+ if (type === 'error') {
+ if (!this._events.error ||
+ (isObject(this._events.error) && !this._events.error.length)) {
+ er = arguments[1];
+ if (er instanceof Error) {
+ throw er; // Unhandled 'error' event
+ } else {
+ // At least give some kind of context to the user
+ var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
+ err.context = er;
+ throw err;
+ }
}
}
- return array;
-}
-module.exports = arrayEach;
+ handler = this._events[type];
-},{}],56:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var keys = require('lodash.keys');
+ if (isUndefined(handler))
+ return false;
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+ if (isFunction(handler)) {
+ switch (arguments.length) {
+ // fast cases
+ case 1:
+ handler.call(this);
+ break;
+ case 2:
+ handler.call(this, arguments[1]);
+ break;
+ case 3:
+ handler.call(this, arguments[1], arguments[2]);
+ break;
+ // slower
+ default:
+ args = Array.prototype.slice.call(arguments, 1);
+ handler.apply(this, args);
+ }
+ } else if (isObject(handler)) {
+ args = Array.prototype.slice.call(arguments, 1);
+ listeners = handler.slice();
+ len = listeners.length;
+ for (i = 0; i < len; i++)
+ listeners[i].apply(this, args);
+ }
-/**
- * The base implementation of `_.forEach` without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array|Object|string} Returns `collection`.
- */
-var baseEach = createBaseEach(baseForOwn);
+ return true;
+};
-/**
- * The base implementation of `baseForIn` and `baseForOwn` which iterates
- * over `object` properties returned by `keysFunc` invoking `iteratee` for
- * each property. Iteratee functions may exit iteration early by explicitly
- * returning `false`.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @param {Function} keysFunc The function to get the keys of `object`.
- * @returns {Object} Returns `object`.
- */
-var baseFor = createBaseFor();
+EventEmitter.prototype.addListener = function(type, listener) {
+ var m;
-/**
- * The base implementation of `_.forOwn` without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Object} object The object to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Object} Returns `object`.
- */
-function baseForOwn(object, iteratee) {
- return baseFor(object, iteratee, keys);
-}
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+ if (!this._events)
+ this._events = {};
-/**
- * Creates a `baseEach` or `baseEachRight` function.
- *
- * @private
- * @param {Function} eachFunc The function to iterate over a collection.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseEach(eachFunc, fromRight) {
- return function(collection, iteratee) {
- var length = collection ? getLength(collection) : 0;
- if (!isLength(length)) {
- return eachFunc(collection, iteratee);
- }
- var index = fromRight ? length : -1,
- iterable = toObject(collection);
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (this._events.newListener)
+ this.emit('newListener', type,
+ isFunction(listener.listener) ?
+ listener.listener : listener);
- while ((fromRight ? index-- : ++index < length)) {
- if (iteratee(iterable[index], index, iterable) === false) {
- break;
- }
- }
- return collection;
- };
-}
+ if (!this._events[type])
+ // Optimize the case of one listener. Don't need the extra array object.
+ this._events[type] = listener;
+ else if (isObject(this._events[type]))
+ // If we've already got an array, just append.
+ this._events[type].push(listener);
+ else
+ // Adding the second element, need to change to array.
+ this._events[type] = [this._events[type], listener];
-/**
- * Creates a base function for `_.forIn` or `_.forInRight`.
- *
- * @private
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Function} Returns the new base function.
- */
-function createBaseFor(fromRight) {
- return function(object, iteratee, keysFunc) {
- var iterable = toObject(object),
- props = keysFunc(object),
- length = props.length,
- index = fromRight ? length : -1;
+ // Check for listener leak
+ if (isObject(this._events[type]) && !this._events[type].warned) {
+ if (!isUndefined(this._maxListeners)) {
+ m = this._maxListeners;
+ } else {
+ m = EventEmitter.defaultMaxListeners;
+ }
- while ((fromRight ? index-- : ++index < length)) {
- var key = props[index];
- if (iteratee(iterable[key], key, iterable) === false) {
- break;
+ if (m && m > 0 && this._events[type].length > m) {
+ this._events[type].warned = true;
+ console.error('(node) warning: possible EventEmitter memory ' +
+ 'leak detected. %d listeners added. ' +
+ 'Use emitter.setMaxListeners() to increase limit.',
+ this._events[type].length);
+ if (typeof console.trace === 'function') {
+ // not supported in IE 10
+ console.trace();
}
}
- return object;
- };
-}
-
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ }
-module.exports = baseEach;
+ return this;
+};
-},{"lodash.keys":57}],57:[function(require,module,exports){
-/**
- * lodash 3.1.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var getNative = require('lodash._getnative'),
- isArguments = require('lodash.isarguments'),
- isArray = require('lodash.isarray');
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-/** Used to detect unsigned integer values. */
-var reIsUint = /^\d+$/;
+EventEmitter.prototype.once = function(type, listener) {
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
-/** Used for native method references. */
-var objectProto = Object.prototype;
+ var fired = false;
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
+ function g() {
+ this.removeListener(type, g);
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeKeys = getNative(Object, 'keys');
+ if (!fired) {
+ fired = true;
+ listener.apply(this, arguments);
+ }
+ }
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+ g.listener = listener;
+ this.on(type, g);
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+ return this;
+};
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
+// emits a 'removeListener' event iff the listener was removed
+EventEmitter.prototype.removeListener = function(type, listener) {
+ var list, position, length, i;
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
-}
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
-/**
- * Checks if `value` is a valid array-like index.
- *
- * @private
- * @param {*} value The value to check.
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
- */
-function isIndex(value, length) {
- value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
- length = length == null ? MAX_SAFE_INTEGER : length;
- return value > -1 && value % 1 == 0 && value < length;
-}
+ if (!this._events || !this._events[type])
+ return this;
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
+ list = this._events[type];
+ length = list.length;
+ position = -1;
-/**
- * A fallback implementation of `Object.keys` which creates an array of the
- * own enumerable property names of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- */
-function shimKeys(object) {
- var props = keysIn(object),
- propsLength = props.length,
- length = propsLength && object.length;
+ if (list === listener ||
+ (isFunction(list.listener) && list.listener === listener)) {
+ delete this._events[type];
+ if (this._events.removeListener)
+ this.emit('removeListener', type, listener);
- var allowIndexes = !!length && isLength(length) &&
- (isArray(object) || isArguments(object));
+ } else if (isObject(list)) {
+ for (i = length; i-- > 0;) {
+ if (list[i] === listener ||
+ (list[i].listener && list[i].listener === listener)) {
+ position = i;
+ break;
+ }
+ }
- var index = -1,
- result = [];
+ if (position < 0)
+ return this;
- while (++index < propsLength) {
- var key = props[index];
- if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
- result.push(key);
+ if (list.length === 1) {
+ list.length = 0;
+ delete this._events[type];
+ } else {
+ list.splice(position, 1);
}
- }
- return result;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-/**
- * Creates an array of the own enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects. See the
- * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
- * for more details.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keys(new Foo);
- * // => ['a', 'b'] (iteration order is not guaranteed)
- *
- * _.keys('hi');
- * // => ['0', '1']
- */
-var keys = !nativeKeys ? shimKeys : function(object) {
- var Ctor = object == null ? undefined : object.constructor;
- if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
- (typeof object != 'function' && isArrayLike(object))) {
- return shimKeys(object);
+ if (this._events.removeListener)
+ this.emit('removeListener', type, listener);
}
- return isObject(object) ? nativeKeys(object) : [];
+
+ return this;
};
-/**
- * Creates an array of the own and inherited enumerable property names of `object`.
- *
- * **Note:** Non-object values are coerced to objects.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the array of property names.
- * @example
- *
- * function Foo() {
- * this.a = 1;
- * this.b = 2;
- * }
- *
- * Foo.prototype.c = 3;
- *
- * _.keysIn(new Foo);
- * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
- */
-function keysIn(object) {
- if (object == null) {
- return [];
- }
- if (!isObject(object)) {
- object = Object(object);
- }
- var length = object.length;
- length = (length && isLength(length) &&
- (isArray(object) || isArguments(object)) && length) || 0;
+EventEmitter.prototype.removeAllListeners = function(type) {
+ var key, listeners;
- var Ctor = object.constructor,
- index = -1,
- isProto = typeof Ctor == 'function' && Ctor.prototype === object,
- result = Array(length),
- skipIndexes = length > 0;
+ if (!this._events)
+ return this;
- while (++index < length) {
- result[index] = (index + '');
+ // not listening for removeListener, no need to emit
+ if (!this._events.removeListener) {
+ if (arguments.length === 0)
+ this._events = {};
+ else if (this._events[type])
+ delete this._events[type];
+ return this;
}
- for (var key in object) {
- if (!(skipIndexes && isIndex(key, length)) &&
- !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
- result.push(key);
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ for (key in this._events) {
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
}
+ this.removeAllListeners('removeListener');
+ this._events = {};
+ return this;
}
- return result;
-}
-
-module.exports = keys;
-
-},{"lodash._getnative":58,"lodash.isarguments":59,"lodash.isarray":61}],58:[function(require,module,exports){
-/**
- * lodash 3.9.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var funcTag = '[object Function]';
-
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
+ listeners = this._events[type];
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
+ if (isFunction(listeners)) {
+ this.removeListener(type, listeners);
+ } else if (listeners) {
+ // LIFO order
+ while (listeners.length)
+ this.removeListener(type, listeners[listeners.length - 1]);
+ }
+ delete this._events[type];
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
+ return this;
+};
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return isObject(value) && objToString.call(value) == funcTag;
-}
+EventEmitter.prototype.listeners = function(type) {
+ var ret;
+ if (!this._events || !this._events[type])
+ ret = [];
+ else if (isFunction(this._events[type]))
+ ret = [this._events[type]];
+ else
+ ret = this._events[type].slice();
+ return ret;
+};
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+EventEmitter.prototype.listenerCount = function(type) {
+ if (this._events) {
+ var evlistener = this._events[type];
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(fnToString.call(value));
+ if (isFunction(evlistener))
+ return 1;
+ else if (evlistener)
+ return evlistener.length;
}
- return isObjectLike(value) && reIsHostCtor.test(value);
-}
-
-module.exports = getNative;
+ return 0;
+};
-},{}],59:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+EventEmitter.listenerCount = function(emitter, type) {
+ return emitter.listenerCount(type);
+};
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
+function isFunction(arg) {
+ return typeof arg === 'function';
}
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/** Native method references. */
-var propertyIsEnumerable = objectProto.propertyIsEnumerable;
-
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
+function isNumber(arg) {
+ return typeof arg === 'number';
}
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
-
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
+function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
}
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+function isUndefined(arg) {
+ return arg === void 0;
}
-/**
- * Checks if `value` is classified as an `arguments` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArguments(function() { return arguments; }());
- * // => true
- *
- * _.isArguments([1, 2, 3]);
- * // => false
- */
-function isArguments(value) {
- return isObjectLike(value) && isArrayLike(value) &&
- hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
-}
+},{}],28:[function(require,module,exports){
+var arr = [];
+var each = arr.forEach;
+var slice = arr.slice;
-module.exports = isArguments;
-},{}],60:[function(require,module,exports){
-/**
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+module.exports = function(obj) {
+ each.call(slice.call(arguments, 1), function(source) {
+ if (source) {
+ for (var prop in source) {
+ obj[prop] = source[prop];
+ }
+ }
+ });
+ return obj;
+};
-/**
- * A specialized version of `baseCallback` which only supports `this` binding
- * and specifying the number of arguments to provide to `func`.
- *
- * @private
- * @param {Function} func The function to bind.
- * @param {*} thisArg The `this` binding of `func`.
- * @param {number} [argCount] The number of arguments to provide to `func`.
- * @returns {Function} Returns the callback.
- */
-function bindCallback(func, thisArg, argCount) {
- if (typeof func != 'function') {
- return identity;
- }
- if (thisArg === undefined) {
- return func;
- }
- switch (argCount) {
- case 1: return function(value) {
- return func.call(thisArg, value);
- };
- case 3: return function(value, index, collection) {
- return func.call(thisArg, value, index, collection);
- };
- case 4: return function(accumulator, value, index, collection) {
- return func.call(thisArg, accumulator, value, index, collection);
- };
- case 5: return function(value, other, key, object, source) {
- return func.call(thisArg, value, other, key, object, source);
+},{}],29:[function(require,module,exports){
+var WildEmitter = require('wildemitter');
+var util = require('util');
+
+function Sender(opts) {
+ WildEmitter.call(this);
+ var options = opts || {};
+ this.config = {
+ chunksize: 16384,
+ pacing: 0
};
- }
- return function() {
- return func.apply(thisArg, arguments);
- };
-}
+ // set our config from options
+ var item;
+ for (item in options) {
+ this.config[item] = options[item];
+ }
-/**
- * This method returns the first argument provided to it.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.identity(object) === object;
- * // => true
- */
-function identity(value) {
- return value;
+ this.file = null;
+ this.channel = null;
}
+util.inherits(Sender, WildEmitter);
-module.exports = bindCallback;
-
-},{}],61:[function(require,module,exports){
-/**
- * lodash 3.0.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-
-/** `Object#toString` result references. */
-var arrayTag = '[object Array]',
- funcTag = '[object Function]';
+Sender.prototype.send = function (file, channel) {
+ var self = this;
+ this.file = file;
+ this.channel = channel;
+ var sliceFile = function(offset) {
+ var reader = new window.FileReader();
+ reader.onload = (function() {
+ return function(e) {
+ self.channel.send(e.target.result);
+ self.emit('progress', offset, file.size, e.target.result);
+ if (file.size > offset + e.target.result.byteLength) {
+ window.setTimeout(sliceFile, self.config.pacing, offset + self.config.chunksize);
+ } else {
+ self.emit('progress', file.size, file.size, null);
+ self.emit('sentFile');
+ }
+ };
+ })(file);
+ var slice = file.slice(offset, offset + self.config.chunksize);
+ reader.readAsArrayBuffer(slice);
+ };
+ window.setTimeout(sliceFile, 0, 0);
+};
-/** Used to detect host constructors (Safari > 5). */
-var reIsHostCtor = /^\[object .+?Constructor\]$/;
+function Receiver() {
+ WildEmitter.call(this);
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
+ this.receiveBuffer = [];
+ this.received = 0;
+ this.metadata = {};
+ this.channel = null;
}
+util.inherits(Receiver, WildEmitter);
-/** Used for native method references. */
-var objectProto = Object.prototype;
+Receiver.prototype.receive = function (metadata, channel) {
+ var self = this;
-/** Used to resolve the decompiled source of functions. */
-var fnToString = Function.prototype.toString;
+ if (metadata) {
+ this.metadata = metadata;
+ }
+ this.channel = channel;
+ // chrome only supports arraybuffers and those make it easier to calc the hash
+ channel.binaryType = 'arraybuffer';
+ this.channel.onmessage = function (event) {
+ var len = event.data.byteLength;
+ self.received += len;
+ self.receiveBuffer.push(event.data);
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
+ self.emit('progress', self.received, self.metadata.size, event.data);
+ if (self.received === self.metadata.size) {
+ self.emit('receivedFile', new window.Blob(self.receiveBuffer), self.metadata);
+ self.receiveBuffer = []; // discard receivebuffer
+ } else if (self.received > self.metadata.size) {
+ // FIXME
+ console.error('received more than expected, discarding...');
+ self.receiveBuffer = []; // just discard...
-/**
- * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
+ }
+ };
+};
-/** Used to detect if a method is native. */
-var reIsNative = RegExp('^' +
- fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
-);
+module.exports = {};
+module.exports.support = typeof window !== 'undefined' && window && window.File && window.FileReader && window.Blob;
+module.exports.Sender = Sender;
+module.exports.Receiver = Receiver;
-/* Native method references for those with the same name as other `lodash` methods. */
-var nativeIsArray = getNative(Array, 'isArray');
+},{"util":197,"wildemitter":211}],30:[function(require,module,exports){
+var WildEmitter = require('wildemitter');
+var util = require('util');
+var hashes = require('iana-hashes');
+var base = require('./filetransfer');
-/**
- * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+// drop-in replacement for filetransfer which also calculates hashes
+function Sender(opts) {
+ WildEmitter.call(this);
+ var self = this;
+ this.base = new base.Sender(opts);
-/**
- * Gets the native function at `key` of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {string} key The key of the method to get.
- * @returns {*} Returns the function if it's native, else `undefined`.
- */
-function getNative(object, key) {
- var value = object == null ? undefined : object[key];
- return isNative(value) ? value : undefined;
-}
+ var options = opts || {};
+ if (!options.hash) {
+ options.hash = 'sha-1';
+ }
+ this.hash = hashes.createHash(options.hash);
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ this.base.on('progress', function (start, size, data) {
+ self.emit('progress', start, size, data);
+ if (data) {
+ self.hash.update(new Uint8Array(data));
+ }
+ });
+ this.base.on('sentFile', function () {
+ self.emit('sentFile', {hash: self.hash.digest('hex'), algo: options.hash });
+ });
}
-
-/**
- * Checks if `value` is classified as an `Array` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isArray([1, 2, 3]);
- * // => true
- *
- * _.isArray(function() { return arguments; }());
- * // => false
- */
-var isArray = nativeIsArray || function(value) {
- return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
+util.inherits(Sender, WildEmitter);
+Sender.prototype.send = function () {
+ this.base.send.apply(this.base, arguments);
};
-/**
- * Checks if `value` is classified as a `Function` object.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- *
- * _.isFunction(/abc/);
- * // => false
- */
-function isFunction(value) {
- // The use of `Object#toString` avoids issues with the `typeof` operator
- // in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return isObject(value) && objToString.call(value) == funcTag;
-}
+function Receiver(opts) {
+ WildEmitter.call(this);
+ var self = this;
+ this.base = new base.Receiver(opts);
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ var options = opts || {};
+ if (!options.hash) {
+ options.hash = 'sha-1';
+ }
+ this.hash = hashes.createHash(options.hash);
-/**
- * Checks if `value` is a native function.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
- * @example
- *
- * _.isNative(Array.prototype.push);
- * // => true
- *
- * _.isNative(_);
- * // => false
- */
-function isNative(value) {
- if (value == null) {
- return false;
- }
- if (isFunction(value)) {
- return reIsNative.test(fnToString.call(value));
- }
- return isObjectLike(value) && reIsHostCtor.test(value);
+ this.base.on('progress', function (start, size, data) {
+ self.emit('progress', start, size, data);
+ if (data) {
+ self.hash.update(new Uint8Array(data));
+ }
+ });
+ this.base.on('receivedFile', function (file, metadata) {
+ metadata.actualhash = self.hash.digest('hex');
+ self.emit('receivedFile', file, metadata);
+ });
}
+util.inherits(Receiver, WildEmitter);
+Receiver.prototype.receive = function () {
+ this.base.receive.apply(this.base, arguments);
+};
+Object.defineProperty(Receiver.prototype, 'metadata', {
+ get: function () {
+ return this.base.metadata;
+ },
+ set: function (value) {
+ this.base.metadata = value;
+ }
+});
-module.exports = isArray;
-
-},{}],62:[function(require,module,exports){
-/**
- * lodash 3.1.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var baseGet = require('lodash._baseget'),
- toPath = require('lodash._topath'),
- isArray = require('lodash.isarray'),
- map = require('lodash.map');
+module.exports = {};
+module.exports.support = base.support;
+module.exports.Sender = Sender;
+module.exports.Receiver = Receiver;
-/** Used to match property names within property paths. */
-var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/;
+},{"./filetransfer":29,"iana-hashes":42,"util":197,"wildemitter":211}],31:[function(require,module,exports){
+// getScreenMedia helper by @HenrikJoreteg
+var getUserMedia = require('getusermedia');
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+// cache for constraints and callback
+var cache = {};
-/**
- * A specialized version of `baseProperty` which supports deep paths.
- *
- * @private
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- */
-function basePropertyDeep(path) {
- var pathKey = (path + '');
- path = toPath(path);
- return function(object) {
- return baseGet(object, path, pathKey);
- };
-}
+module.exports = function (constraints, cb) {
+ var hasConstraints = arguments.length === 2;
+ var callback = hasConstraints ? cb : constraints;
+ var error;
+
+ if (typeof window === 'undefined' || window.location.protocol === 'http:') {
+ error = new Error('NavigatorUserMediaError');
+ error.name = 'HTTPS_REQUIRED';
+ return callback(error);
+ }
+
+ if (window.navigator.userAgent.match('Chrome')) {
+ var chromever = parseInt(window.navigator.userAgent.match(/Chrome\/(.*) /)[1], 10);
+ var maxver = 33;
+ var isCef = !window.chrome.webstore;
+ // "known" crash in chrome 34 and 35 on linux
+ if (window.navigator.userAgent.match('Linux')) maxver = 35;
+
+ // check that the extension is installed by looking for a
+ // sessionStorage variable that contains the extension id
+ // this has to be set after installation unless the contest
+ // script does that
+ if (sessionStorage.getScreenMediaJSExtensionId) {
+ chrome.runtime.sendMessage(sessionStorage.getScreenMediaJSExtensionId,
+ {type:'getScreen', id: 1}, null,
+ function (data) {
+ if (!data || data.sourceId === '') { // user canceled
+ var error = new Error('NavigatorUserMediaError');
+ error.name = 'PERMISSION_DENIED';
+ callback(error);
+ } else {
+ constraints = (hasConstraints && constraints) || {audio: false, video: {
+ mandatory: {
+ chromeMediaSource: 'desktop',
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3
+ }
+ }};
+ constraints.video.mandatory.chromeMediaSourceId = data.sourceId;
+ getUserMedia(constraints, callback);
+ }
+ }
+ );
+ } else if (window.cefGetScreenMedia) {
+ //window.cefGetScreenMedia is experimental - may be removed without notice
+ window.cefGetScreenMedia(function(sourceId) {
+ if (!sourceId) {
+ var error = new Error('cefGetScreenMediaError');
+ error.name = 'CEF_GETSCREENMEDIA_CANCELED';
+ callback(error);
+ } else {
+ constraints = (hasConstraints && constraints) || {audio: false, video: {
+ mandatory: {
+ chromeMediaSource: 'desktop',
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3
+ },
+ optional: [
+ {googLeakyBucket: true},
+ {googTemporalLayeredScreencast: true}
+ ]
+ }};
+ constraints.video.mandatory.chromeMediaSourceId = sourceId;
+ getUserMedia(constraints, callback);
+ }
+ });
+ } else if (isCef || (chromever >= 26 && chromever <= maxver)) {
+ // chrome 26 - chrome 33 way to do it -- requires bad chrome://flags
+ // note: this is basically in maintenance mode and will go away soon
+ constraints = (hasConstraints && constraints) || {
+ video: {
+ mandatory: {
+ googLeakyBucket: true,
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3,
+ chromeMediaSource: 'screen'
+ }
+ }
+ };
+ getUserMedia(constraints, callback);
+ } else {
+ // chrome 34+ way requiring an extension
+ var pending = window.setTimeout(function () {
+ error = new Error('NavigatorUserMediaError');
+ error.name = 'EXTENSION_UNAVAILABLE';
+ return callback(error);
+ }, 1000);
+ cache[pending] = [callback, hasConstraints ? constraints : null];
+ window.postMessage({ type: 'getScreen', id: pending }, '*');
+ }
+ } else if (window.navigator.userAgent.match('Firefox')) {
+ var ffver = parseInt(window.navigator.userAgent.match(/Firefox\/(.*)/)[1], 10);
+ if (ffver >= 33) {
+ constraints = (hasConstraints && constraints) || {
+ video: {
+ mozMediaSource: 'window',
+ mediaSource: 'window'
+ }
+ };
+ getUserMedia(constraints, function (err, stream) {
+ callback(err, stream);
+ // workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1045810
+ if (!err) {
+ var lastTime = stream.currentTime;
+ var polly = window.setInterval(function () {
+ if (!stream) window.clearInterval(polly);
+ if (stream.currentTime == lastTime) {
+ window.clearInterval(polly);
+ if (stream.onended) {
+ stream.onended();
+ }
+ }
+ lastTime = stream.currentTime;
+ }, 500);
+ }
+ });
+ } else {
+ error = new Error('NavigatorUserMediaError');
+ error.name = 'EXTENSION_UNAVAILABLE'; // does not make much sense but...
+ }
+ }
+};
-/**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
-function isKey(value, object) {
- var type = typeof value;
- if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {
- return true;
- }
- if (isArray(value)) {
- return false;
- }
- var result = !reIsDeepProp.test(value);
- return result || (object != null && value in toObject(object));
-}
+window.addEventListener('message', function (event) {
+ if (event.origin != window.location.origin) {
+ return;
+ }
+ if (event.data.type == 'gotScreen' && cache[event.data.id]) {
+ var data = cache[event.data.id];
+ var constraints = data[1];
+ var callback = data[0];
+ delete cache[event.data.id];
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
+ if (event.data.sourceId === '') { // user canceled
+ var error = new Error('NavigatorUserMediaError');
+ error.name = 'PERMISSION_DENIED';
+ callback(error);
+ } else {
+ constraints = constraints || {audio: false, video: {
+ mandatory: {
+ chromeMediaSource: 'desktop',
+ maxWidth: window.screen.width,
+ maxHeight: window.screen.height,
+ maxFrameRate: 3
+ },
+ optional: [
+ {googLeakyBucket: true},
+ {googTemporalLayeredScreencast: true}
+ ]
+ }};
+ constraints.video.mandatory.chromeMediaSourceId = event.data.sourceId;
+ getUserMedia(constraints, callback);
+ }
+ } else if (event.data.type == 'getScreenPending') {
+ window.clearTimeout(event.data.id);
+ }
+});
-/**
- * Gets the property value of `path` from all elements in `collection`.
- *
- * @static
- * @memberOf _
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Array|string} path The path of the property to pluck.
- * @returns {Array} Returns the property values.
- * @example
- *
- * var users = [
- * { 'user': 'barney', 'age': 36 },
- * { 'user': 'fred', 'age': 40 }
- * ];
- *
- * _.pluck(users, 'user');
- * // => ['barney', 'fred']
- *
- * var userIndex = _.indexBy(users, 'user');
- * _.pluck(userIndex, 'age');
- * // => [36, 40] (iteration order is not guaranteed)
- */
-function pluck(collection, path) {
- return map(collection, property(path));
-}
+},{"getusermedia":32}],32:[function(require,module,exports){
+// getUserMedia helper by @HenrikJoreteg used for navigator.getUserMedia shim
+var adapter = require('webrtc-adapter');
+
+module.exports = function (constraints, cb) {
+ var error;
+ var haveOpts = arguments.length === 2;
+ var defaultOpts = {video: true, audio: true};
+
+ var denied = 'PermissionDeniedError';
+ var altDenied = 'PERMISSION_DENIED';
+ var notSatisfied = 'ConstraintNotSatisfiedError';
+
+ // make constraints optional
+ if (!haveOpts) {
+ cb = constraints;
+ constraints = defaultOpts;
+ }
+
+ // treat lack of browser support like an error
+ if (typeof navigator === 'undefined' || !navigator.getUserMedia) {
+ // throw proper error per spec
+ error = new Error('MediaStreamError');
+ error.name = 'NotSupportedError';
+
+ // keep all callbacks async
+ return setTimeout(function () {
+ cb(error);
+ }, 0);
+ }
+
+ // normalize error handling when no media types are requested
+ if (!constraints.audio && !constraints.video) {
+ error = new Error('MediaStreamError');
+ error.name = 'NoMediaRequestedError';
+
+ // keep all callbacks async
+ return setTimeout(function () {
+ cb(error);
+ }, 0);
+ }
+
+ navigator.mediaDevices.getUserMedia(constraints)
+ .then(function (stream) {
+ cb(null, stream);
+ }).catch(function (err) {
+ var error;
+ // coerce into an error object since FF gives us a string
+ // there are only two valid names according to the spec
+ // we coerce all non-denied to "constraint not satisfied".
+ if (typeof err === 'string') {
+ error = new Error('MediaStreamError');
+ if (err === denied || err === altDenied) {
+ error.name = denied;
+ } else {
+ error.name = notSatisfied;
+ }
+ } else {
+ // if we get an error object make sure '.name' property is set
+ // according to spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermediaerror-and-navigatorusermediaerrorcallback
+ error = err;
+ if (!error.name) {
+ // this is likely chrome which
+ // sets a property called "ERROR_DENIED" on the error object
+ // if so we make sure to set a name
+ if (error[denied]) {
+ err.name = denied;
+ } else {
+ err.name = notSatisfied;
+ }
+ }
+ }
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ cb(error);
+ });
+};
-/**
- * Creates a function which returns the property value at `path` on a
- * given object.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var objects = [
- * { 'a': { 'b': { 'c': 2 } } },
- * { 'a': { 'b': { 'c': 1 } } }
- * ];
- *
- * _.map(objects, _.property('a.b.c'));
- * // => [2, 1]
+},{"webrtc-adapter":33}],33:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
- * // => [1, 2]
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function property(path) {
- return isKey(path) ? baseProperty(path) : basePropertyDeep(path);
-}
+ /* eslint-env node */
-module.exports = pluck;
+'use strict';
-},{"lodash._baseget":63,"lodash._topath":64,"lodash.isarray":65,"lodash.map":66}],63:[function(require,module,exports){
-/**
- * lodash 3.7.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+// Shimming starts here.
+(function() {
+ // Utils.
+ var logging = require('./utils').log;
+ var browserDetails = require('./utils').browserDetails;
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserDetails = browserDetails;
+ module.exports.extractVersion = require('./utils').extractVersion;
+ module.exports.disableLog = require('./utils').disableLog;
+
+ // Uncomment the line below if you want logging to occur, including logging
+ // for the switch statement below. Can also be turned on in the browser via
+ // adapter.disableLog(false), but then logging from the switch statement below
+ // will not appear.
+ // require('./utils').disableLog(false);
+
+ // Browser shims.
+ var chromeShim = require('./chrome/chrome_shim') || null;
+ var edgeShim = require('./edge/edge_shim') || null;
+ var firefoxShim = require('./firefox/firefox_shim') || null;
+ var safariShim = require('./safari/safari_shim') || null;
+
+ // Shim browser if found.
+ switch (browserDetails.browser) {
+ case 'opera': // fallthrough as it uses chrome shims
+ case 'chrome':
+ if (!chromeShim || !chromeShim.shimPeerConnection) {
+ logging('Chrome shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming chrome.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = chromeShim;
+
+ chromeShim.shimGetUserMedia();
+ chromeShim.shimMediaStream();
+ chromeShim.shimSourceObject();
+ chromeShim.shimPeerConnection();
+ chromeShim.shimOnTrack();
+ break;
+ case 'firefox':
+ if (!firefoxShim || !firefoxShim.shimPeerConnection) {
+ logging('Firefox shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming firefox.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = firefoxShim;
+
+ firefoxShim.shimGetUserMedia();
+ firefoxShim.shimSourceObject();
+ firefoxShim.shimPeerConnection();
+ firefoxShim.shimOnTrack();
+ break;
+ case 'edge':
+ if (!edgeShim || !edgeShim.shimPeerConnection) {
+ logging('MS edge shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming edge.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = edgeShim;
-/**
- * The base implementation of `get` without support for string paths
- * and default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array} path The path of the property to get.
- * @param {string} [pathKey] The key representation of path.
- * @returns {*} Returns the resolved value.
- */
-function baseGet(object, path, pathKey) {
- if (object == null) {
- return;
- }
- if (pathKey !== undefined && pathKey in toObject(object)) {
- path = [pathKey];
- }
- var index = 0,
- length = path.length;
+ edgeShim.shimGetUserMedia();
+ edgeShim.shimPeerConnection();
+ break;
+ case 'safari':
+ if (!safariShim) {
+ logging('Safari shim is not included in this adapter release.');
+ return;
+ }
+ logging('adapter.js shimming safari.');
+ // Export to the adapter global object visible in the browser.
+ module.exports.browserShim = safariShim;
- while (object != null && index < length) {
- object = object[path[index++]];
+ safariShim.shimGetUserMedia();
+ break;
+ default:
+ logging('Unsupported browser!');
}
- return (index && index == length) ? object : undefined;
-}
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+})();
-module.exports = baseGet;
+},{"./chrome/chrome_shim":34,"./edge/edge_shim":36,"./firefox/firefox_shim":38,"./safari/safari_shim":40,"./utils":41}],34:[function(require,module,exports){
-},{}],64:[function(require,module,exports){
-/**
- * lodash 3.8.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var isArray = require('lodash.isarray');
-
-/** Used to match property names within property paths. */
-var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
-
-/** Used to match backslashes in property paths. */
-var reEscapeChar = /\\(\\)?/g;
-
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
-
-/**
- * Converts `value` to property path array if it's not one.
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * @private
- * @param {*} value The value to process.
- * @returns {Array} Returns the property path array.
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function toPath(value) {
- if (isArray(value)) {
- return value;
- }
- var result = [];
- baseToString(value).replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
-}
-
-module.exports = toPath;
+ /* eslint-env node */
+'use strict';
+var logging = require('../utils.js').log;
+var browserDetails = require('../utils.js').browserDetails;
-},{"lodash.isarray":65}],65:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],66:[function(require,module,exports){
-/**
- * lodash 3.1.4 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var arrayMap = require('lodash._arraymap'),
- baseCallback = require('lodash._basecallback'),
- baseEach = require('lodash._baseeach'),
- isArray = require('lodash.isarray');
+var chromeShim = {
+ shimMediaStream: function() {
+ window.MediaStream = window.MediaStream || window.webkitMediaStream;
+ },
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ var self = this;
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ // onaddstream does not fire when a track is added to an existing
+ // stream. But stream.onaddtrack is implemented so we use that.
+ e.stream.addEventListener('addtrack', function(te) {
+ var event = new Event('track');
+ event.track = te.track;
+ event.receiver = {track: te.track};
+ event.streams = [e.stream];
+ self.dispatchEvent(event);
+ });
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+ }
+ },
-/**
- * The base implementation of `_.map` without support for callback shorthands
- * and `this` binding.
- *
- * @private
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function baseMap(collection, iteratee) {
- var index = -1,
- result = isArrayLike(collection) ? Array(collection.length) : [];
+ shimSourceObject: function() {
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this._srcObject;
+ },
+ set: function(stream) {
+ var self = this;
+ // Use _srcObject as a private property for this shim
+ this._srcObject = stream;
+ if (this.src) {
+ URL.revokeObjectURL(this.src);
+ }
- baseEach(collection, function(value, key, collection) {
- result[++index] = iteratee(value, key, collection);
- });
- return result;
-}
+ if (!stream) {
+ this.src = '';
+ return;
+ }
+ this.src = URL.createObjectURL(stream);
+ // We need to recreate the blob url when a track is added or
+ // removed. Doing it manually since we want to avoid a recursion.
+ stream.addEventListener('addtrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ stream.addEventListener('removetrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ }
+ });
+ }
+ }
+ },
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
- };
-}
+ shimPeerConnection: function() {
+ // The RTCPeerConnection object.
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ // Translate iceTransportPolicy to iceTransports,
+ // see https://code.google.com/p/webrtc/issues/detail?id=4869
+ logging('PeerConnection');
+ if (pcConfig && pcConfig.iceTransportPolicy) {
+ pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ }
-/**
- * Gets the "length" property value of `object`.
- *
- * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
- * that affects Safari on at least iOS 8.1-8.3 ARM64.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {*} Returns the "length" value.
- */
-var getLength = baseProperty('length');
+ var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
+ var origGetStats = pc.getStats.bind(pc);
+ pc.getStats = function(selector, successCallback, errorCallback) {
+ var self = this;
+ var args = arguments;
+
+ // If selector is a function then we are in the old style stats so just
+ // pass back the original getStats format to avoid breaking old users.
+ if (arguments.length > 0 && typeof selector === 'function') {
+ return origGetStats(selector, successCallback);
+ }
+
+ var fixChromeStats_ = function(response) {
+ var standardReport = {};
+ var reports = response.result();
+ reports.forEach(function(report) {
+ var standardStats = {
+ id: report.id,
+ timestamp: report.timestamp,
+ type: report.type
+ };
+ report.names().forEach(function(name) {
+ standardStats[name] = report.stat(name);
+ });
+ standardReport[standardStats.id] = standardStats;
+ });
-/**
- * Checks if `value` is array-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
- */
-function isArrayLike(value) {
- return value != null && isLength(getLength(value));
-}
+ return standardReport;
+ };
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
+ // shim getStats with maplike support
+ var makeMapStats = function(stats, legacyStats) {
+ var map = new Map(Object.keys(stats).map(function(key) {
+ return[key, stats[key]];
+ }));
+ legacyStats = legacyStats || stats;
+ Object.keys(legacyStats).forEach(function(key) {
+ map[key] = legacyStats[key];
+ });
+ return map;
+ };
-/**
- * Creates an array of values by running each element in `collection` through
- * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three
- * arguments: (value, index|key, collection).
- *
- * If a property name is provided for `iteratee` the created `_.property`
- * style callback returns the property value of the given element.
- *
- * If a value is also provided for `thisArg` the created `_.matchesProperty`
- * style callback returns `true` for elements that have a matching property
- * value, else `false`.
- *
- * If an object is provided for `iteratee` the created `_.matches` style
- * callback returns `true` for elements that have the properties of the given
- * object, else `false`.
- *
- * Many lodash methods are guarded to work as iteratees for methods like
- * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
- *
- * The guarded methods are:
- * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`,
- * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`,
- * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`,
- * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`,
- * `sum`, `uniq`, and `words`
- *
- * @static
- * @memberOf _
- * @alias collect
- * @category Collection
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function|Object|string} [iteratee=_.identity] The function invoked
- * per iteration.
- * @param {*} [thisArg] The `this` binding of `iteratee`.
- * @returns {Array} Returns the new mapped array.
- * @example
- *
- * function timesThree(n) {
- * return n * 3;
- * }
- *
- * _.map([1, 2], timesThree);
- * // => [3, 6]
- *
- * _.map({ 'a': 1, 'b': 2 }, timesThree);
- * // => [3, 6] (iteration order is not guaranteed)
- *
- * var users = [
- * { 'user': 'barney' },
- * { 'user': 'fred' }
- * ];
- *
- * // using the `_.property` callback shorthand
- * _.map(users, 'user');
- * // => ['barney', 'fred']
- */
-function map(collection, iteratee, thisArg) {
- var func = isArray(collection) ? arrayMap : baseMap;
- iteratee = baseCallback(iteratee, thisArg, 3);
- return func(collection, iteratee);
-}
+ if (arguments.length >= 2) {
+ var successCallbackWrapper_ = function(response) {
+ args[1](makeMapStats(fixChromeStats_(response)));
+ };
-module.exports = map;
+ return origGetStats.apply(this, [successCallbackWrapper_,
+ arguments[0]]);
+ }
-},{"lodash._arraymap":67,"lodash._basecallback":68,"lodash._baseeach":73,"lodash.isarray":65}],67:[function(require,module,exports){
-/**
- * lodash 3.0.0 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+ // promise-support
+ return new Promise(function(resolve, reject) {
+ if (args.length === 1 && typeof selector === 'object') {
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response)));
+ }, reject]);
+ } else {
+ // Preserve legacy chrome stats only on legacy access of stats obj
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response),
+ response.result()));
+ }, reject]);
+ }
+ }).then(successCallback, errorCallback);
+ };
-/**
- * A specialized version of `_.map` for arrays without support for callback
- * shorthands or `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} iteratee The function invoked per iteration.
- * @returns {Array} Returns the new mapped array.
- */
-function arrayMap(array, iteratee) {
- var index = -1,
- length = array.length,
- result = Array(length);
+ return pc;
+ };
+ window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
- while (++index < length) {
- result[index] = iteratee(array[index], index, array);
- }
- return result;
-}
+ // wrap static methods. Currently just generateCertificate.
+ if (webkitRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return webkitRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
-module.exports = arrayMap;
+ ['createOffer', 'createAnswer'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var self = this;
+ if (arguments.length < 1 || (arguments.length === 1 &&
+ typeof arguments[0] === 'object')) {
+ var opts = arguments.length === 1 ? arguments[0] : undefined;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [resolve, reject, opts]);
+ });
+ }
+ return nativeMethod.apply(this, arguments);
+ };
+ });
-},{}],68:[function(require,module,exports){
-/**
- * lodash 3.3.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var baseIsEqual = require('lodash._baseisequal'),
- bindCallback = require('lodash._bindcallback'),
- isArray = require('lodash.isarray'),
- pairs = require('lodash.pairs');
+ // add promise support -- natively available in Chrome 51
+ if (browserDetails.version < 51) {
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var args = arguments;
+ var self = this;
+ var promise = new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [args[0], resolve, reject]);
+ });
+ if (args.length < 2) {
+ return promise;
+ }
+ return promise.then(function() {
+ args[1].apply(null, []);
+ },
+ function(err) {
+ if (args.length >= 3) {
+ args[2].apply(null, [err]);
+ }
+ });
+ };
+ });
+ }
-/** Used to match property names within property paths. */
-var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
- reIsPlainProp = /^\w*$/,
- rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ return arguments[0] === null ? Promise.resolve()
+ : nativeAddIceCandidate.apply(this, arguments);
+ };
-/** Used to match backslashes in property paths. */
-var reEscapeChar = /\\(\\)?/g;
+ // shim implicit creation of RTCSessionDescription/RTCIceCandidate
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+ },
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- return value == null ? '' : (value + '');
-}
+ // Attach a media stream to an element.
+ attachMediaStream: function(element, stream) {
+ logging('DEPRECATED, attachMediaStream will soon be removed.');
+ if (browserDetails.version >= 43) {
+ element.srcObject = stream;
+ } else if (typeof element.src !== 'undefined') {
+ element.src = URL.createObjectURL(stream);
+ } else {
+ logging('Error attaching stream to element.');
+ }
+ },
-/**
- * The base implementation of `_.callback` which supports specifying the
- * number of arguments to provide to `func`.
- *
- * @private
- * @param {*} [func=_.identity] The value to convert to a callback.
- * @param {*} [thisArg] The `this` binding of `func`.
- * @param {number} [argCount] The number of arguments to provide to `func`.
- * @returns {Function} Returns the callback.
- */
-function baseCallback(func, thisArg, argCount) {
- var type = typeof func;
- if (type == 'function') {
- return thisArg === undefined
- ? func
- : bindCallback(func, thisArg, argCount);
- }
- if (func == null) {
- return identity;
- }
- if (type == 'object') {
- return baseMatches(func);
+ reattachMediaStream: function(to, from) {
+ logging('DEPRECATED, reattachMediaStream will soon be removed.');
+ if (browserDetails.version >= 43) {
+ to.srcObject = from.srcObject;
+ } else {
+ to.src = from.src;
+ }
}
- return thisArg === undefined
- ? property(func)
- : baseMatchesProperty(func, thisArg);
-}
+};
-/**
- * The base implementation of `get` without support for string paths
- * and default values.
- *
- * @private
- * @param {Object} object The object to query.
- * @param {Array} path The path of the property to get.
- * @param {string} [pathKey] The key representation of path.
- * @returns {*} Returns the resolved value.
- */
-function baseGet(object, path, pathKey) {
- if (object == null) {
- return;
- }
- if (pathKey !== undefined && pathKey in toObject(object)) {
- path = [pathKey];
- }
- var index = 0,
- length = path.length;
- while (object != null && index < length) {
- object = object[path[index++]];
- }
- return (index && index == length) ? object : undefined;
-}
+// Expose public methods.
+module.exports = {
+ shimMediaStream: chromeShim.shimMediaStream,
+ shimOnTrack: chromeShim.shimOnTrack,
+ shimSourceObject: chromeShim.shimSourceObject,
+ shimPeerConnection: chromeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia'),
+ attachMediaStream: chromeShim.attachMediaStream,
+ reattachMediaStream: chromeShim.reattachMediaStream
+};
-/**
- * The base implementation of `_.isMatch` without support for callback
- * shorthands and `this` binding.
+},{"../utils.js":41,"./getusermedia":35}],35:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * @private
- * @param {Object} object The object to inspect.
- * @param {Array} matchData The propery names, values, and compare flags to match.
- * @param {Function} [customizer] The function to customize comparing objects.
- * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function baseIsMatch(object, matchData, customizer) {
- var index = matchData.length,
- length = index,
- noCustomizer = !customizer;
+ /* eslint-env node */
+'use strict';
+var logging = require('../utils.js').log;
- if (object == null) {
- return !length;
- }
- object = toObject(object);
- while (index--) {
- var data = matchData[index];
- if ((noCustomizer && data[2])
- ? data[1] !== object[data[0]]
- : !(data[0] in object)
- ) {
- return false;
+// Expose public methods.
+module.exports = function() {
+ var constraintsToChrome_ = function(c) {
+ if (typeof c !== 'object' || c.mandatory || c.optional) {
+ return c;
}
- }
- while (++index < length) {
- data = matchData[index];
- var key = data[0],
- objValue = object[key],
- srcValue = data[1];
-
- if (noCustomizer && data[2]) {
- if (objValue === undefined && !(key in object)) {
- return false;
+ var cc = {};
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
}
- } else {
- var result = customizer ? customizer(objValue, srcValue, key) : undefined;
- if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {
- return false;
+ var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
+ if (r.exact !== undefined && typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
}
- }
- }
- return true;
-}
-
-/**
- * The base implementation of `_.matches` which does not clone `source`.
- *
- * @private
- * @param {Object} source The object of property values to match.
- * @returns {Function} Returns the new function.
- */
-function baseMatches(source) {
- var matchData = getMatchData(source);
- if (matchData.length == 1 && matchData[0][2]) {
- var key = matchData[0][0],
- value = matchData[0][1];
-
- return function(object) {
- if (object == null) {
- return false;
+ var oldname_ = function(prefix, name) {
+ if (prefix) {
+ return prefix + name.charAt(0).toUpperCase() + name.slice(1);
+ }
+ return (name === 'deviceId') ? 'sourceId' : name;
+ };
+ if (r.ideal !== undefined) {
+ cc.optional = cc.optional || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[oldname_('min', key)] = r.ideal;
+ cc.optional.push(oc);
+ oc = {};
+ oc[oldname_('max', key)] = r.ideal;
+ cc.optional.push(oc);
+ } else {
+ oc[oldname_('', key)] = r.ideal;
+ cc.optional.push(oc);
+ }
}
- return object[key] === value && (value !== undefined || (key in toObject(object)));
- };
- }
- return function(object) {
- return baseIsMatch(object, matchData);
+ if (r.exact !== undefined && typeof r.exact !== 'number') {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_('', key)] = r.exact;
+ } else {
+ ['min', 'max'].forEach(function(mix) {
+ if (r[mix] !== undefined) {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_(mix, key)] = r[mix];
+ }
+ });
+ }
+ });
+ if (c.advanced) {
+ cc.optional = (cc.optional || []).concat(c.advanced);
+ }
+ return cc;
};
-}
-
-/**
- * The base implementation of `_.matchesProperty` which does not clone `srcValue`.
- *
- * @private
- * @param {string} path The path of the property to get.
- * @param {*} srcValue The value to compare.
- * @returns {Function} Returns the new function.
- */
-function baseMatchesProperty(path, srcValue) {
- var isArr = isArray(path),
- isCommon = isKey(path) && isStrictComparable(srcValue),
- pathKey = (path + '');
- path = toPath(path);
- return function(object) {
- if (object == null) {
- return false;
- }
- var key = pathKey;
- object = toObject(object);
- if ((isArr || !isCommon) && !(key in object)) {
- object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
- if (object == null) {
- return false;
+ var shimConstraints_ = function(constraints, func) {
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (constraints && constraints.audio) {
+ constraints.audio = constraintsToChrome_(constraints.audio);
+ }
+ if (constraints && typeof constraints.video === 'object') {
+ // Shim facingMode for mobile, where it defaults to "user".
+ var face = constraints.video.facingMode;
+ face = face && ((typeof face === 'object') ? face : {ideal: face});
+
+ if ((face && (face.exact === 'user' || face.exact === 'environment' ||
+ face.ideal === 'user' || face.ideal === 'environment')) &&
+ !(navigator.mediaDevices.getSupportedConstraints &&
+ navigator.mediaDevices.getSupportedConstraints().facingMode)) {
+ delete constraints.video.facingMode;
+ if (face.exact === 'environment' || face.ideal === 'environment') {
+ // Look for "back" in label, or use last cam (typically back cam).
+ return navigator.mediaDevices.enumerateDevices()
+ .then(function(devices) {
+ devices = devices.filter(function(d) {
+ return d.kind === 'videoinput';
+ });
+ var back = devices.find(function(d) {
+ return d.label.toLowerCase().indexOf('back') !== -1;
+ }) || (devices.length && devices[devices.length - 1]);
+ if (back) {
+ constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
+ {ideal: back.deviceId};
+ }
+ constraints.video = constraintsToChrome_(constraints.video);
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
+ });
+ }
}
- key = last(path);
- object = toObject(object);
+ constraints.video = constraintsToChrome_(constraints.video);
}
- return object[key] === srcValue
- ? (srcValue !== undefined || (key in object))
- : baseIsEqual(srcValue, object[key], undefined, true);
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
};
-}
-/**
- * The base implementation of `_.property` without support for deep paths.
- *
- * @private
- * @param {string} key The key of the property to get.
- * @returns {Function} Returns the new function.
- */
-function baseProperty(key) {
- return function(object) {
- return object == null ? undefined : object[key];
+ var shimError_ = function(e) {
+ return {
+ name: {
+ PermissionDeniedError: 'NotAllowedError',
+ ConstraintNotSatisfiedError: 'OverconstrainedError'
+ }[e.name] || e.name,
+ message: e.message,
+ constraint: e.constraintName,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
+ }
+ };
};
-}
-/**
- * A specialized version of `baseProperty` which supports deep paths.
- *
- * @private
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- */
-function basePropertyDeep(path) {
- var pathKey = (path + '');
- path = toPath(path);
- return function(object) {
- return baseGet(object, path, pathKey);
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ shimConstraints_(constraints, function(c) {
+ navigator.webkitGetUserMedia(c, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
+ });
};
-}
-
-/**
- * The base implementation of `_.slice` without an iteratee call guard.
- *
- * @private
- * @param {Array} array The array to slice.
- * @param {number} [start=0] The start position.
- * @param {number} [end=array.length] The end position.
- * @returns {Array} Returns the slice of `array`.
- */
-function baseSlice(array, start, end) {
- var index = -1,
- length = array.length;
-
- start = start == null ? 0 : (+start || 0);
- if (start < 0) {
- start = -start > length ? 0 : (length + start);
- }
- end = (end === undefined || end > length) ? length : (+end || 0);
- if (end < 0) {
- end += length;
- }
- length = start > end ? 0 : ((end - start) >>> 0);
- start >>>= 0;
-
- var result = Array(length);
- while (++index < length) {
- result[index] = array[index + start];
- }
- return result;
-}
-/**
- * Gets the propery names, values, and compare flags of `object`.
- *
- * @private
- * @param {Object} object The object to query.
- * @returns {Array} Returns the match data of `object`.
- */
-function getMatchData(object) {
- var result = pairs(object),
- length = result.length;
+ navigator.getUserMedia = getUserMedia_;
- while (length--) {
- result[length][2] = isStrictComparable(result[length][1]);
- }
- return result;
-}
-
-/**
- * Checks if `value` is a property name and not a property path.
- *
- * @private
- * @param {*} value The value to check.
- * @param {Object} [object] The object to query keys on.
- * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
- */
-function isKey(value, object) {
- var type = typeof value;
- if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {
- return true;
- }
- if (isArray(value)) {
- return false;
- }
- var result = !reIsDeepProp.test(value);
- return result || (object != null && value in toObject(object));
-}
-
-/**
- * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` if suitable for strict
- * equality comparisons, else `false`.
- */
-function isStrictComparable(value) {
- return value === value && !isObject(value);
-}
-
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ navigator.getUserMedia(constraints, resolve, reject);
+ });
+ };
-/**
- * Converts `value` to property path array if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Array} Returns the property path array.
- */
-function toPath(value) {
- if (isArray(value)) {
- return value;
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {
+ getUserMedia: getUserMediaPromise_,
+ enumerateDevices: function() {
+ return new Promise(function(resolve) {
+ var kinds = {audio: 'audioinput', video: 'videoinput'};
+ return MediaStreamTrack.getSources(function(devices) {
+ resolve(devices.map(function(device) {
+ return {label: device.label,
+ kind: kinds[device.kind],
+ deviceId: device.id,
+ groupId: ''};
+ }));
+ });
+ });
+ }
+ };
}
- var result = [];
- baseToString(value).replace(rePropName, function(match, number, quote, string) {
- result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
- });
- return result;
-}
-
-/**
- * Gets the last element of `array`.
- *
- * @static
- * @memberOf _
- * @category Array
- * @param {Array} array The array to query.
- * @returns {*} Returns the last element of `array`.
- * @example
- *
- * _.last([1, 2, 3]);
- * // => 3
- */
-function last(array) {
- var length = array ? array.length : 0;
- return length ? array[length - 1] : undefined;
-}
-
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
-
-/**
- * This method returns the first argument provided to it.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'user': 'fred' };
- *
- * _.identity(object) === object;
- * // => true
- */
-function identity(value) {
- return value;
-}
-
-/**
- * Creates a function that returns the property value at `path` on a
- * given object.
- *
- * @static
- * @memberOf _
- * @category Utility
- * @param {Array|string} path The path of the property to get.
- * @returns {Function} Returns the new function.
- * @example
- *
- * var objects = [
- * { 'a': { 'b': { 'c': 2 } } },
- * { 'a': { 'b': { 'c': 1 } } }
- * ];
- *
- * _.map(objects, _.property('a.b.c'));
- * // => [2, 1]
- *
- * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
- * // => [1, 2]
- */
-function property(path) {
- return isKey(path) ? baseProperty(path) : basePropertyDeep(path);
-}
-
-module.exports = baseCallback;
-
-},{"lodash._baseisequal":69,"lodash._bindcallback":71,"lodash.isarray":65,"lodash.pairs":72}],69:[function(require,module,exports){
-/**
- * lodash 3.0.7 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var isArray = require('lodash.isarray'),
- isTypedArray = require('lodash.istypedarray'),
- keys = require('lodash.keys');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- stringTag = '[object String]';
-
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/**
- * A specialized version of `_.some` for arrays without support for callback
- * shorthands and `this` binding.
- *
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} predicate The function invoked per iteration.
- * @returns {boolean} Returns `true` if any element passes the predicate check,
- * else `false`.
- */
-function arraySome(array, predicate) {
- var index = -1,
- length = array.length;
- while (++index < length) {
- if (predicate(array[index], index, array)) {
- return true;
- }
+ // A shim for getUserMedia method on the mediaDevices object.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (!navigator.mediaDevices.getUserMedia) {
+ navigator.mediaDevices.getUserMedia = function(constraints) {
+ return getUserMediaPromise_(constraints);
+ };
+ } else {
+ // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
+ // function which returns a Promise, it does not accept spec-style
+ // constraints.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(cs) {
+ return shimConstraints_(cs, function(c) {
+ return origGetUserMedia(c).catch(function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ });
+ };
}
- return false;
-}
-/**
- * The base implementation of `_.isEqual` without support for `this` binding
- * `customizer` functions.
- *
- * @private
- * @param {*} value The value to compare.
- * @param {*} other The other value to compare.
- * @param {Function} [customizer] The function to customize comparing values.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA] Tracks traversed `value` objects.
- * @param {Array} [stackB] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
- */
-function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
- if (value === other) {
- return true;
+ // Dummy devicechange event methods.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
+ navigator.mediaDevices.addEventListener = function() {
+ logging('Dummy mediaDevices.addEventListener called.');
+ };
}
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
- return value !== value && other !== other;
+ if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
+ navigator.mediaDevices.removeEventListener = function() {
+ logging('Dummy mediaDevices.removeEventListener called.');
+ };
}
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
-}
+};
-/**
- * A specialized version of `baseIsEqual` for arrays and objects which performs
- * deep comparisons and tracks traversed objects enabling objects with circular
- * references to be compared.
+},{"../utils.js":41}],36:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparing objects.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA=[]] Tracks traversed `value` objects.
- * @param {Array} [stackB=[]] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
*/
-function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
- var objIsArr = isArray(object),
- othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
-
- if (!objIsArr) {
- objTag = objToString.call(object);
- if (objTag == argsTag) {
- objTag = objectTag;
- } else if (objTag != objectTag) {
- objIsArr = isTypedArray(object);
- }
- }
- if (!othIsArr) {
- othTag = objToString.call(other);
- if (othTag == argsTag) {
- othTag = objectTag;
- } else if (othTag != objectTag) {
- othIsArr = isTypedArray(other);
- }
- }
- var objIsObj = objTag == objectTag,
- othIsObj = othTag == objectTag,
- isSameTag = objTag == othTag;
-
- if (isSameTag && !(objIsArr || objIsObj)) {
- return equalByTag(object, other, objTag);
- }
- if (!isLoose) {
- var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
- othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
-
- if (objIsWrapped || othIsWrapped) {
- return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
- }
- }
- if (!isSameTag) {
- return false;
- }
- // Assume cyclic values are equal.
- // For more information on detecting circular references see https://es5.github.io/#JO.
- stackA || (stackA = []);
- stackB || (stackB = []);
+ /* eslint-env node */
+'use strict';
- var length = stackA.length;
- while (length--) {
- if (stackA[length] == object) {
- return stackB[length] == other;
+var SDPUtils = require('sdp');
+var logging = require('../utils').log;
+
+var edgeShim = {
+ shimPeerConnection: function() {
+ if (window.RTCIceGatherer) {
+ // ORTC defines an RTCIceCandidate object but no constructor.
+ // Not implemented in Edge.
+ if (!window.RTCIceCandidate) {
+ window.RTCIceCandidate = function(args) {
+ return args;
+ };
+ }
+ // ORTC does not have a session description object but
+ // other browsers (i.e. Chrome) that will support both PC and ORTC
+ // in the future might have this defined already.
+ if (!window.RTCSessionDescription) {
+ window.RTCSessionDescription = function(args) {
+ return args;
+ };
+ }
}
- }
- // Add `object` and `other` to the stack of traversed objects.
- stackA.push(object);
- stackB.push(other);
-
- var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);
- stackA.pop();
- stackB.pop();
+ window.RTCPeerConnection = function(config) {
+ var self = this;
- return result;
-}
+ var _eventTarget = document.createDocumentFragment();
+ ['addEventListener', 'removeEventListener', 'dispatchEvent']
+ .forEach(function(method) {
+ self[method] = _eventTarget[method].bind(_eventTarget);
+ });
-/**
- * A specialized version of `baseIsEqualDeep` for arrays with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Array} array The array to compare.
- * @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparing arrays.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA] Tracks traversed `value` objects.
- * @param {Array} [stackB] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
- */
-function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
- var index = -1,
- arrLength = array.length,
- othLength = other.length;
+ this.onicecandidate = null;
+ this.onaddstream = null;
+ this.ontrack = null;
+ this.onremovestream = null;
+ this.onsignalingstatechange = null;
+ this.oniceconnectionstatechange = null;
+ this.onnegotiationneeded = null;
+ this.ondatachannel = null;
+
+ this.localStreams = [];
+ this.remoteStreams = [];
+ this.getLocalStreams = function() {
+ return self.localStreams;
+ };
+ this.getRemoteStreams = function() {
+ return self.remoteStreams;
+ };
- if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
- return false;
- }
- // Ignore non-index properties.
- while (++index < arrLength) {
- var arrValue = array[index],
- othValue = other[index],
- result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;
+ this.localDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.remoteDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.signalingState = 'stable';
+ this.iceConnectionState = 'new';
+ this.iceGatheringState = 'new';
- if (result !== undefined) {
- if (result) {
- continue;
+ this.iceOptions = {
+ gatherPolicy: 'all',
+ iceServers: []
+ };
+ if (config && config.iceTransportPolicy) {
+ switch (config.iceTransportPolicy) {
+ case 'all':
+ case 'relay':
+ this.iceOptions.gatherPolicy = config.iceTransportPolicy;
+ break;
+ case 'none':
+ // FIXME: remove once implementation and spec have added this.
+ throw new TypeError('iceTransportPolicy "none" not supported');
+ default:
+ // don't set iceTransportPolicy.
+ break;
+ }
}
- return false;
- }
- // Recursively compare arrays (susceptible to call stack limits).
- if (isLoose) {
- if (!arraySome(other, function(othValue) {
- return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
- })) {
- return false;
+ this.usingBundle = config && config.bundlePolicy === 'max-bundle';
+
+ if (config && config.iceServers) {
+ // Edge does not like
+ // 1) stun:
+ // 2) turn: that does not have all of turn:host:port?transport=udp
+ var iceServers = JSON.parse(JSON.stringify(config.iceServers));
+ this.iceOptions.iceServers = iceServers.filter(function(server) {
+ if (server && server.urls) {
+ var urls = server.urls;
+ if (typeof urls === 'string') {
+ urls = [urls];
+ }
+ urls = urls.filter(function(url) {
+ return url.indexOf('turn:') === 0 &&
+ url.indexOf('transport=udp') !== -1;
+ })[0];
+ return !!urls;
+ }
+ return false;
+ });
}
- } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {
- return false;
- }
- }
- return true;
-}
-/**
- * A specialized version of `baseIsEqualDeep` for comparing objects of
- * the same `toStringTag`.
- *
- * **Note:** This function only supports comparing values with tags of
- * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
- *
- * @private
- * @param {Object} value The object to compare.
- * @param {Object} other The other object to compare.
- * @param {string} tag The `toStringTag` of the objects to compare.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function equalByTag(object, other, tag) {
- switch (tag) {
- case boolTag:
- case dateTag:
- // Coerce dates and booleans to numbers, dates to milliseconds and booleans
- // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.
- return +object == +other;
-
- case errorTag:
- return object.name == other.name && object.message == other.message;
-
- case numberTag:
- // Treat `NaN` vs. `NaN` as equal.
- return (object != +object)
- ? other != +other
- : object == +other;
+ // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
+ // everything that is needed to describe a SDP m-line.
+ this.transceivers = [];
- case regexpTag:
- case stringTag:
- // Coerce regexes to strings and treat strings primitives and string
- // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.
- return object == (other + '');
- }
- return false;
-}
+ // since the iceGatherer is currently created in createOffer but we
+ // must not emit candidates until after setLocalDescription we buffer
+ // them in this array.
+ this._localIceCandidatesBuffer = [];
+ };
-/**
- * A specialized version of `baseIsEqualDeep` for objects with support for
- * partial deep comparisons.
- *
- * @private
- * @param {Object} object The object to compare.
- * @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparing values.
- * @param {boolean} [isLoose] Specify performing partial comparisons.
- * @param {Array} [stackA] Tracks traversed `value` objects.
- * @param {Array} [stackB] Tracks traversed `other` objects.
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
- */
-function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
- var objProps = keys(object),
- objLength = objProps.length,
- othProps = keys(other),
- othLength = othProps.length;
+ window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
+ var self = this;
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ // FIXME: need to apply ice candidates in a way which is async but
+ // in-order
+ this._localIceCandidatesBuffer.forEach(function(event) {
+ var end = !event.candidate || Object.keys(event.candidate).length === 0;
+ if (end) {
+ for (var j = 1; j < sections.length; j++) {
+ if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
+ sections[j] += 'a=end-of-candidates\r\n';
+ }
+ }
+ } else if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ if (!event.candidate && self.iceGatheringState !== 'complete') {
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+ if (complete) {
+ self.iceGatheringState = 'complete';
+ }
+ }
+ });
+ this._localIceCandidatesBuffer = [];
+ };
- if (objLength != othLength && !isLoose) {
- return false;
- }
- var index = objLength;
- while (index--) {
- var key = objProps[index];
- if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {
- return false;
- }
- }
- var skipCtor = isLoose;
- while (++index < objLength) {
- key = objProps[index];
- var objValue = object[key],
- othValue = other[key],
- result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;
+ window.RTCPeerConnection.prototype.addStream = function(stream) {
+ // Clone is necessary for local demos mostly, attaching directly
+ // to two different senders does not work (build 10547).
+ this.localStreams.push(stream.clone());
+ this._maybeFireNegotiationNeeded();
+ };
- // Recursively compare objects (susceptible to call stack limits).
- if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {
- return false;
- }
- skipCtor || (skipCtor = key == 'constructor');
- }
- if (!skipCtor) {
- var objCtor = object.constructor,
- othCtor = other.constructor;
+ window.RTCPeerConnection.prototype.removeStream = function(stream) {
+ var idx = this.localStreams.indexOf(stream);
+ if (idx > -1) {
+ this.localStreams.splice(idx, 1);
+ this._maybeFireNegotiationNeeded();
+ }
+ };
- // Non `Object` object instances with different constructors are not equal.
- if (objCtor != othCtor &&
- ('constructor' in object && 'constructor' in other) &&
- !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
- typeof othCtor == 'function' && othCtor instanceof othCtor)) {
- return false;
- }
- }
- return true;
-}
+ window.RTCPeerConnection.prototype.getSenders = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpSender;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpSender;
+ });
+ };
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ window.RTCPeerConnection.prototype.getReceivers = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpReceiver;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpReceiver;
+ });
+ };
-module.exports = baseIsEqual;
+ // Determines the intersection of local and remote capabilities.
+ window.RTCPeerConnection.prototype._getCommonCapabilities =
+ function(localCapabilities, remoteCapabilities) {
+ var commonCapabilities = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: []
+ };
+ localCapabilities.codecs.forEach(function(lCodec) {
+ for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
+ var rCodec = remoteCapabilities.codecs[i];
+ if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
+ lCodec.clockRate === rCodec.clockRate &&
+ lCodec.numChannels === rCodec.numChannels) {
+ // push rCodec so we reply with offerer payload type
+ commonCapabilities.codecs.push(rCodec);
+
+ // FIXME: also need to determine intersection between
+ // .rtcpFeedback and .parameters
+ break;
+ }
+ }
+ });
-},{"lodash.isarray":65,"lodash.istypedarray":70,"lodash.keys":74}],70:[function(require,module,exports){
-/**
- * lodash 3.0.2 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
+ localCapabilities.headerExtensions
+ .forEach(function(lHeaderExtension) {
+ for (var i = 0; i < remoteCapabilities.headerExtensions.length;
+ i++) {
+ var rHeaderExtension = remoteCapabilities.headerExtensions[i];
+ if (lHeaderExtension.uri === rHeaderExtension.uri) {
+ commonCapabilities.headerExtensions.push(rHeaderExtension);
+ break;
+ }
+ }
+ });
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- arrayTag = '[object Array]',
- boolTag = '[object Boolean]',
- dateTag = '[object Date]',
- errorTag = '[object Error]',
- funcTag = '[object Function]',
- mapTag = '[object Map]',
- numberTag = '[object Number]',
- objectTag = '[object Object]',
- regexpTag = '[object RegExp]',
- setTag = '[object Set]',
- stringTag = '[object String]',
- weakMapTag = '[object WeakMap]';
+ // FIXME: fecMechanisms
+ return commonCapabilities;
+ };
-var arrayBufferTag = '[object ArrayBuffer]',
- float32Tag = '[object Float32Array]',
- float64Tag = '[object Float64Array]',
- int8Tag = '[object Int8Array]',
- int16Tag = '[object Int16Array]',
- int32Tag = '[object Int32Array]',
- uint8Tag = '[object Uint8Array]',
- uint8ClampedTag = '[object Uint8ClampedArray]',
- uint16Tag = '[object Uint16Array]',
- uint32Tag = '[object Uint32Array]';
+ // Create ICE gatherer, ICE transport and DTLS transport.
+ window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
+ function(mid, sdpMLineIndex) {
+ var self = this;
+ var iceGatherer = new RTCIceGatherer(self.iceOptions);
+ var iceTransport = new RTCIceTransport(iceGatherer);
+ iceGatherer.onlocalcandidate = function(evt) {
+ var event = new Event('icecandidate');
+ event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
+
+ var cand = evt.candidate;
+ var end = !cand || Object.keys(cand).length === 0;
+ // Edge emits an empty object for RTCIceCandidateComplete‥
+ if (end) {
+ // polyfill since RTCIceGatherer.state is not implemented in
+ // Edge 10547 yet.
+ if (iceGatherer.state === undefined) {
+ iceGatherer.state = 'completed';
+ }
-/** Used to identify `toStringTag` values of typed arrays. */
-var typedArrayTags = {};
-typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
-typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
-typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
-typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
-typedArrayTags[uint32Tag] = true;
-typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
-typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
-typedArrayTags[dateTag] = typedArrayTags[errorTag] =
-typedArrayTags[funcTag] = typedArrayTags[mapTag] =
-typedArrayTags[numberTag] = typedArrayTags[objectTag] =
-typedArrayTags[regexpTag] = typedArrayTags[setTag] =
-typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
+ // Emit a candidate with type endOfCandidates to make the samples
+ // work. Edge requires addIceCandidate with this empty candidate
+ // to start checking. The real solution is to signal
+ // end-of-candidates to the other side when getting the null
+ // candidate but some apps (like the samples) don't do that.
+ event.candidate.candidate =
+ 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
+ } else {
+ // RTCIceCandidate doesn't have a component, needs to be added
+ cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
+ event.candidate.candidate = SDPUtils.writeCandidate(cand);
+ }
-/**
- * Checks if `value` is object-like.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
- */
-function isObjectLike(value) {
- return !!value && typeof value == 'object';
-}
+ // update local description.
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ } else {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=end-of-candidates\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
-/** Used for native method references. */
-var objectProto = Object.prototype;
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
+ // Emit candidate if localDescription is set.
+ // Also emits null candidate when all gatherers are complete.
+ switch (self.iceGatheringState) {
+ case 'new':
+ self._localIceCandidatesBuffer.push(event);
+ if (end && complete) {
+ self._localIceCandidatesBuffer.push(
+ new Event('icecandidate'));
+ }
+ break;
+ case 'gathering':
+ self._emitBufferedCandidates();
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ if (complete) {
+ self.dispatchEvent(new Event('icecandidate'));
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(new Event('icecandidate'));
+ }
+ self.iceGatheringState = 'complete';
+ }
+ break;
+ case 'complete':
+ // should not happen... currently!
+ break;
+ default: // no-op.
+ break;
+ }
+ };
+ iceTransport.onicestatechange = function() {
+ self._updateConnectionState();
+ };
-/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
- * of an array-like value.
- */
-var MAX_SAFE_INTEGER = 9007199254740991;
+ var dtlsTransport = new RTCDtlsTransport(iceTransport);
+ dtlsTransport.ondtlsstatechange = function() {
+ self._updateConnectionState();
+ };
+ dtlsTransport.onerror = function() {
+ // onerror does not set state to failed by itself.
+ dtlsTransport.state = 'failed';
+ self._updateConnectionState();
+ };
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- */
-function isLength(value) {
- return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
+ return {
+ iceGatherer: iceGatherer,
+ iceTransport: iceTransport,
+ dtlsTransport: dtlsTransport
+ };
+ };
-/**
- * Checks if `value` is classified as a typed array.
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- * @example
- *
- * _.isTypedArray(new Uint8Array);
- * // => true
- *
- * _.isTypedArray([]);
- * // => false
- */
-function isTypedArray(value) {
- return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];
-}
+ // Start the RTP Sender and Receiver for a transceiver.
+ window.RTCPeerConnection.prototype._transceive = function(transceiver,
+ send, recv) {
+ var params = this._getCommonCapabilities(transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+ if (send && transceiver.rtpSender) {
+ params.encodings = transceiver.sendEncodingParameters;
+ params.rtcp = {
+ cname: SDPUtils.localCName
+ };
+ if (transceiver.recvEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpSender.send(params);
+ }
+ if (recv && transceiver.rtpReceiver) {
+ params.encodings = transceiver.recvEncodingParameters;
+ params.rtcp = {
+ cname: transceiver.cname
+ };
+ if (transceiver.sendEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpReceiver.receive(params);
+ }
+ };
-module.exports = isTypedArray;
+ window.RTCPeerConnection.prototype.setLocalDescription =
+ function(description) {
+ var self = this;
+ var sections;
+ var sessionpart;
+ if (description.type === 'offer') {
+ // FIXME: What was the purpose of this empty if statement?
+ // if (!this._pendingOffer) {
+ // } else {
+ if (this._pendingOffer) {
+ // VERY limited support for SDP munging. Limited to:
+ // * changing the order of codecs
+ sections = SDPUtils.splitSections(description.sdp);
+ sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var caps = SDPUtils.parseRtpParameters(mediaSection);
+ self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
+ });
+ this.transceivers = this._pendingOffer;
+ delete this._pendingOffer;
+ }
+ } else if (description.type === 'answer') {
+ sections = SDPUtils.splitSections(self.remoteDescription.sdp);
+ sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var transceiver = self.transceivers[sdpMLineIndex];
+ var iceGatherer = transceiver.iceGatherer;
+ var iceTransport = transceiver.iceTransport;
+ var dtlsTransport = transceiver.dtlsTransport;
+ var localCapabilities = transceiver.localCapabilities;
+ var remoteCapabilities = transceiver.remoteCapabilities;
+ var rejected = mediaSection.split('\n', 1)[0]
+ .split(' ', 2)[1] === '0';
+
+ if (!rejected) {
+ var remoteIceParameters = SDPUtils.getIceParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ // ice-lite only includes host candidates in the SDP so we can
+ // use setRemoteCandidates (which implies an
+ // RTCIceCandidateComplete)
+ if (cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
+ }
+ var remoteDtlsParameters = SDPUtils.getDtlsParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ remoteDtlsParameters.role = 'server';
+ }
-},{}],71:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],72:[function(require,module,exports){
-/**
- * lodash 3.0.1 (Custom Build) <https://lodash.com/>
- * Build: `lodash modern modularize exports="npm" -o ./`
- * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license <https://lodash.com/license>
- */
-var keys = require('lodash.keys');
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ isIceLite ? 'controlling' : 'controlled');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
-/**
- * Converts `value` to an object if it's not one.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {Object} Returns the object.
- */
-function toObject(value) {
- return isObject(value) ? value : Object(value);
-}
+ // Calculate intersection of capabilities.
+ var params = self._getCommonCapabilities(localCapabilities,
+ remoteCapabilities);
-/**
- * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // Avoid a V8 JIT bug in Chrome 19-20.
- // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
- var type = typeof value;
- return !!value && (type == 'object' || type == 'function');
-}
+ // Start the RTCRtpSender. The RTCRtpReceiver for this
+ // transceiver has already been started in setRemoteDescription.
+ self._transceive(transceiver,
+ params.codecs.length > 0,
+ false);
+ }
+ });
+ }
-/**
- * Creates a two dimensional array of the key-value pairs for `object`,
- * e.g. `[[key1, value1], [key2, value2]]`.
- *
- * @static
- * @memberOf _
- * @category Object
- * @param {Object} object The object to query.
- * @returns {Array} Returns the new array of key-value pairs.
- * @example
- *
- * _.pairs({ 'barney': 36, 'fred': 40 });
- * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed)
- */
-function pairs(object) {
- object = toObject(object);
+ this.localDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-local-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
- var index = -1,
- props = keys(object),
- length = props.length,
- result = Array(length);
+ // If a success callback was provided, emit ICE candidates after it
+ // has been executed. Otherwise, emit callback after the Promise is
+ // resolved.
+ var hasCallback = arguments.length > 1 &&
+ typeof arguments[1] === 'function';
+ if (hasCallback) {
+ var cb = arguments[1];
+ window.setTimeout(function() {
+ cb();
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ self._emitBufferedCandidates();
+ }, 0);
+ }
+ var p = Promise.resolve();
+ p.then(function() {
+ if (!hasCallback) {
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ // Usually candidates will be emitted earlier.
+ window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
+ }
+ });
+ return p;
+ };
- while (++index < length) {
- var key = props[index];
- result[index] = [key, object[key]];
- }
- return result;
-}
+ window.RTCPeerConnection.prototype.setRemoteDescription =
+ function(description) {
+ var self = this;
+ var stream = new MediaStream();
+ var receiverList = [];
+ var sections = SDPUtils.splitSections(description.sdp);
+ var sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ this.usingBundle = SDPUtils.matchPrefix(sessionpart,
+ 'a=group:BUNDLE ').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].substr(2).split(' ');
+ var kind = mline[0];
+ var rejected = mline[1] === '0';
+ var direction = SDPUtils.getDirection(mediaSection, sessionpart);
+
+ var transceiver;
+ var iceGatherer;
+ var iceTransport;
+ var dtlsTransport;
+ var rtpSender;
+ var rtpReceiver;
+ var sendEncodingParameters;
+ var recvEncodingParameters;
+ var localCapabilities;
+
+ var track;
+ // FIXME: ensure the mediaSection has rtcp-mux set.
+ var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
+ var remoteIceParameters;
+ var remoteDtlsParameters;
+ if (!rejected) {
+ remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters.role = 'client';
+ }
+ recvEncodingParameters =
+ SDPUtils.parseRtpEncodingParameters(mediaSection);
-module.exports = pairs;
+ var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
+ if (mid.length) {
+ mid = mid[0].substr(6);
+ } else {
+ mid = SDPUtils.generateIdentifier();
+ }
-},{"lodash.keys":74}],73:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":74}],74:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":75,"lodash.isarguments":76,"lodash.isarray":65}],75:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],76:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],77:[function(require,module,exports){
-var toSDP = require('./lib/tosdp');
-var toJSON = require('./lib/tojson');
+ var cname;
+ // Gets the first SSRC. Note that with RTX there might be multiple
+ // SSRCs.
+ var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(obj) {
+ return obj.attribute === 'cname';
+ })[0];
+ if (remoteSsrc) {
+ cname = remoteSsrc.value;
+ }
+ var isComplete = SDPUtils.matchPrefix(mediaSection,
+ 'a=end-of-candidates').length > 0;
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ if (description.type === 'offer' && !rejected) {
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: self.transceivers[0].iceGatherer,
+ iceTransport: self.transceivers[0].iceTransport,
+ dtlsTransport: self.transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ if (isComplete) {
+ transports.iceTransport.setRemoteCandidates(cands);
+ }
-// Converstion from JSON to SDP
+ localCapabilities = RTCRtpReceiver.getCapabilities(kind);
+ sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 2) * 1001
+ }];
+
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ // FIXME: not correct when there are multiple streams but that is
+ // not currently supported in this shim.
+ stream.addTrack(track);
+
+ // FIXME: look at direction.
+ if (self.localStreams.length > 0 &&
+ self.localStreams[0].getTracks().length >= sdpMLineIndex) {
+ // FIXME: actually more complicated, needs to match types etc
+ var localtrack = self.localStreams[0]
+ .getTracks()[sdpMLineIndex];
+ rtpSender = new RTCRtpSender(localtrack,
+ transports.dtlsTransport);
+ }
-exports.toIncomingSDPOffer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'responder',
- direction: 'incoming'
- });
-};
-exports.toOutgoingSDPOffer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'initiator',
- direction: 'outgoing'
- });
-};
-exports.toIncomingSDPAnswer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'initiator',
- direction: 'incoming'
- });
-};
-exports.toOutgoingSDPAnswer = function (session) {
- return toSDP.toSessionSDP(session, {
- role: 'responder',
- direction: 'outgoing'
- });
-};
-exports.toIncomingMediaSDPOffer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'responder',
- direction: 'incoming'
- });
-};
-exports.toOutgoingMediaSDPOffer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'initiator',
- direction: 'outgoing'
- });
-};
-exports.toIncomingMediaSDPAnswer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'initiator',
- direction: 'incoming'
- });
-};
-exports.toOutgoingMediaSDPAnswer = function (media) {
- return toSDP.toMediaSDP(media, {
- role: 'responder',
- direction: 'outgoing'
- });
-};
-exports.toCandidateSDP = toSDP.toCandidateSDP;
-exports.toMediaSDP = toSDP.toMediaSDP;
-exports.toSessionSDP = toSDP.toSessionSDP;
+ self.transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: remoteCapabilities,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ cname: cname,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: recvEncodingParameters
+ };
+ // Start the RTCRtpReceiver now. The RTPSender is started in
+ // setLocalDescription.
+ self._transceive(self.transceivers[sdpMLineIndex],
+ false,
+ direction === 'sendrecv' || direction === 'sendonly');
+ } else if (description.type === 'answer' && !rejected) {
+ transceiver = self.transceivers[sdpMLineIndex];
+ iceGatherer = transceiver.iceGatherer;
+ iceTransport = transceiver.iceTransport;
+ dtlsTransport = transceiver.dtlsTransport;
+ rtpSender = transceiver.rtpSender;
+ rtpReceiver = transceiver.rtpReceiver;
+ sendEncodingParameters = transceiver.sendEncodingParameters;
+ localCapabilities = transceiver.localCapabilities;
+
+ self.transceivers[sdpMLineIndex].recvEncodingParameters =
+ recvEncodingParameters;
+ self.transceivers[sdpMLineIndex].remoteCapabilities =
+ remoteCapabilities;
+ self.transceivers[sdpMLineIndex].cname = cname;
+
+ if ((isIceLite || isComplete) && cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ 'controlling');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
+ self._transceive(transceiver,
+ direction === 'sendrecv' || direction === 'recvonly',
+ direction === 'sendrecv' || direction === 'sendonly');
-// Conversion from SDP to JSON
+ if (rtpReceiver &&
+ (direction === 'sendrecv' || direction === 'sendonly')) {
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ stream.addTrack(track);
+ } else {
+ // FIXME: actually the receiver should be created later.
+ delete transceiver.rtpReceiver;
+ }
+ }
+ });
-exports.toIncomingJSONOffer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'responder',
- direction: 'incoming',
- creators: creators
- });
-};
-exports.toOutgoingJSONOffer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'initiator',
- direction: 'outgoing',
- creators: creators
- });
-};
-exports.toIncomingJSONAnswer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'initiator',
- direction: 'incoming',
- creators: creators
- });
-};
-exports.toOutgoingJSONAnswer = function (sdp, creators) {
- return toJSON.toSessionJSON(sdp, {
- role: 'responder',
- direction: 'outgoing',
- creators: creators
- });
-};
-exports.toIncomingMediaJSONOffer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'responder',
- direction: 'incoming',
- creator: creator
- });
-};
-exports.toOutgoingMediaJSONOffer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'initiator',
- direction: 'outgoing',
- creator: creator
- });
-};
-exports.toIncomingMediaJSONAnswer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'initiator',
- direction: 'incoming',
- creator: creator
- });
-};
-exports.toOutgoingMediaJSONAnswer = function (sdp, creator) {
- return toJSON.toMediaJSON(sdp, {
- role: 'responder',
- direction: 'outgoing',
- creator: creator
- });
-};
-exports.toCandidateJSON = toJSON.toCandidateJSON;
-exports.toMediaJSON = toJSON.toMediaJSON;
-exports.toSessionJSON = toJSON.toSessionJSON;
+ this.remoteDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-remote-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
+ if (stream.getTracks().length) {
+ self.remoteStreams.push(stream);
+ window.setTimeout(function() {
+ var event = new Event('addstream');
+ event.stream = stream;
+ self.dispatchEvent(event);
+ if (self.onaddstream !== null) {
+ window.setTimeout(function() {
+ self.onaddstream(event);
+ }, 0);
+ }
-},{"./lib/tojson":80,"./lib/tosdp":81}],78:[function(require,module,exports){
-exports.lines = function (sdp) {
- return sdp.split('\r\n').filter(function (line) {
- return line.length > 0;
- });
-};
+ receiverList.forEach(function(item) {
+ var track = item[0];
+ var receiver = item[1];
+ var trackEvent = new Event('track');
+ trackEvent.track = track;
+ trackEvent.receiver = receiver;
+ trackEvent.streams = [stream];
+ self.dispatchEvent(event);
+ if (self.ontrack !== null) {
+ window.setTimeout(function() {
+ self.ontrack(trackEvent);
+ }, 0);
+ }
+ });
+ }, 0);
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
-exports.findLine = function (prefix, mediaLines, sessionLines) {
- var prefixLength = prefix.length;
- for (var i = 0; i < mediaLines.length; i++) {
- if (mediaLines[i].substr(0, prefixLength) === prefix) {
- return mediaLines[i];
+ window.RTCPeerConnection.prototype.close = function() {
+ this.transceivers.forEach(function(transceiver) {
+ /* not yet
+ if (transceiver.iceGatherer) {
+ transceiver.iceGatherer.close();
}
- }
- // Continue searching in parent session section
- if (!sessionLines) {
- return false;
- }
-
- for (var j = 0; j < sessionLines.length; j++) {
- if (sessionLines[j].substr(0, prefixLength) === prefix) {
- return sessionLines[j];
+ */
+ if (transceiver.iceTransport) {
+ transceiver.iceTransport.stop();
}
- }
-
- return false;
-};
-
-exports.findLines = function (prefix, mediaLines, sessionLines) {
- var results = [];
- var prefixLength = prefix.length;
- for (var i = 0; i < mediaLines.length; i++) {
- if (mediaLines[i].substr(0, prefixLength) === prefix) {
- results.push(mediaLines[i]);
+ if (transceiver.dtlsTransport) {
+ transceiver.dtlsTransport.stop();
}
- }
- if (results.length || !sessionLines) {
- return results;
- }
- for (var j = 0; j < sessionLines.length; j++) {
- if (sessionLines[j].substr(0, prefixLength) === prefix) {
- results.push(sessionLines[j]);
+ if (transceiver.rtpSender) {
+ transceiver.rtpSender.stop();
}
- }
- return results;
-};
-
-exports.mline = function (line) {
- var parts = line.substr(2).split(' ');
- var parsed = {
- media: parts[0],
- port: parts[1],
- proto: parts[2],
- formats: []
- };
- for (var i = 3; i < parts.length; i++) {
- if (parts[i]) {
- parsed.formats.push(parts[i]);
+ if (transceiver.rtpReceiver) {
+ transceiver.rtpReceiver.stop();
}
- }
- return parsed;
-};
-
-exports.rtpmap = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- id: parts.shift()
+ });
+ // FIXME: clean up tracks, local streams, remote streams, etc
+ this._updateSignalingState('closed');
};
- parts = parts[0].split('/');
-
- parsed.name = parts[0];
- parsed.clockrate = parts[1];
- parsed.channels = parts.length == 3 ? parts[2] : '1';
- return parsed;
-};
+ // Update the signaling state.
+ window.RTCPeerConnection.prototype._updateSignalingState =
+ function(newState) {
+ this.signalingState = newState;
+ var event = new Event('signalingstatechange');
+ this.dispatchEvent(event);
+ if (this.onsignalingstatechange !== null) {
+ this.onsignalingstatechange(event);
+ }
+ };
-exports.sctpmap = function (line) {
- // based on -05 draft
- var parts = line.substr(10).split(' ');
- var parsed = {
- number: parts.shift(),
- protocol: parts.shift(),
- streams: parts.shift()
- };
- return parsed;
-};
+ // Determine whether to fire the negotiationneeded event.
+ window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
+ function() {
+ // Fire away (for now).
+ var event = new Event('negotiationneeded');
+ this.dispatchEvent(event);
+ if (this.onnegotiationneeded !== null) {
+ this.onnegotiationneeded(event);
+ }
+ };
+ // Update the connection state.
+ window.RTCPeerConnection.prototype._updateConnectionState = function() {
+ var self = this;
+ var newState;
+ var states = {
+ 'new': 0,
+ closed: 0,
+ connecting: 0,
+ checking: 0,
+ connected: 0,
+ completed: 0,
+ failed: 0
+ };
+ this.transceivers.forEach(function(transceiver) {
+ states[transceiver.iceTransport.state]++;
+ states[transceiver.dtlsTransport.state]++;
+ });
+ // ICETransport.completed and connected are the same for this purpose.
+ states.connected += states.completed;
+
+ newState = 'new';
+ if (states.failed > 0) {
+ newState = 'failed';
+ } else if (states.connecting > 0 || states.checking > 0) {
+ newState = 'connecting';
+ } else if (states.disconnected > 0) {
+ newState = 'disconnected';
+ } else if (states.new > 0) {
+ newState = 'new';
+ } else if (states.connected > 0 || states.completed > 0) {
+ newState = 'connected';
+ }
-exports.fmtp = function (line) {
- var kv, key, value;
- var parts = line.substr(line.indexOf(' ') + 1).split(';');
- var parsed = [];
- for (var i = 0; i < parts.length; i++) {
- kv = parts[i].split('=');
- key = kv[0].trim();
- value = kv[1];
- if (key && value) {
- parsed.push({key: key, value: value});
- } else if (key) {
- parsed.push({key: '', value: key});
+ if (newState !== self.iceConnectionState) {
+ self.iceConnectionState = newState;
+ var event = new Event('iceconnectionstatechange');
+ this.dispatchEvent(event);
+ if (this.oniceconnectionstatechange !== null) {
+ this.oniceconnectionstatechange(event);
}
- }
- return parsed;
-};
-
-exports.crypto = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {
- tag: parts[0],
- cipherSuite: parts[1],
- keyParams: parts[2],
- sessionParams: parts.slice(3).join(' ')
- };
- return parsed;
-};
-
-exports.fingerprint = function (line) {
- var parts = line.substr(14).split(' ');
- return {
- hash: parts[0],
- value: parts[1]
+ }
};
-};
-
-exports.extmap = function (line) {
- var parts = line.substr(9).split(' ');
- var parsed = {};
-
- var idpart = parts.shift();
- var sp = idpart.indexOf('/');
- if (sp >= 0) {
- parsed.id = idpart.substr(0, sp);
- parsed.senders = idpart.substr(sp + 1);
- } else {
- parsed.id = idpart;
- parsed.senders = 'sendrecv';
- }
-
- parsed.uri = parts.shift() || '';
- return parsed;
-};
-
-exports.rtcpfb = function (line) {
- var parts = line.substr(10).split(' ');
- var parsed = {};
- parsed.id = parts.shift();
- parsed.type = parts.shift();
- if (parsed.type === 'trr-int') {
- parsed.value = parts.shift();
- } else {
- parsed.subtype = parts.shift() || '';
- }
- parsed.parameters = parts;
- return parsed;
-};
-
-exports.candidate = function (line) {
- var parts;
- if (line.indexOf('a=candidate:') === 0) {
- parts = line.substring(12).split(' ');
- } else { // no a=candidate
- parts = line.substring(10).split(' ');
- }
-
- var candidate = {
- foundation: parts[0],
- component: parts[1],
- protocol: parts[2].toLowerCase(),
- priority: parts[3],
- ip: parts[4],
- port: parts[5],
- // skip parts[6] == 'typ'
- type: parts[7],
- generation: '0'
- };
+ window.RTCPeerConnection.prototype.createOffer = function() {
+ var self = this;
+ if (this._pendingOffer) {
+ throw new Error('createOffer called while there is a pending offer.');
+ }
+ var offerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ offerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ offerOptions = arguments[2];
+ }
- for (var i = 8; i < parts.length; i += 2) {
- if (parts[i] === 'raddr') {
- candidate.relAddr = parts[i + 1];
- } else if (parts[i] === 'rport') {
- candidate.relPort = parts[i + 1];
- } else if (parts[i] === 'generation') {
- candidate.generation = parts[i + 1];
- } else if (parts[i] === 'tcptype') {
- candidate.tcpType = parts[i + 1];
+ var tracks = [];
+ var numAudioTracks = 0;
+ var numVideoTracks = 0;
+ // Default to sendrecv.
+ if (this.localStreams.length) {
+ numAudioTracks = this.localStreams[0].getAudioTracks().length;
+ numVideoTracks = this.localStreams[0].getVideoTracks().length;
+ }
+ // Determine number of audio and video tracks we need to send/recv.
+ if (offerOptions) {
+ // Reject Chrome legacy constraints.
+ if (offerOptions.mandatory || offerOptions.optional) {
+ throw new TypeError(
+ 'Legacy mandatory/optional constraints not supported.');
}
- }
-
- candidate.network = '1';
-
- return candidate;
-};
-
-exports.sourceGroups = function (lines) {
- var parsed = [];
- for (var i = 0; i < lines.length; i++) {
- var parts = lines[i].substr(13).split(' ');
- parsed.push({
- semantics: parts.shift(),
- sources: parts
- });
- }
- return parsed;
-};
-
-exports.sources = function (lines) {
- // http://tools.ietf.org/html/rfc5576
- var parsed = [];
- var sources = {};
- for (var i = 0; i < lines.length; i++) {
- var parts = lines[i].substr(7).split(' ');
- var ssrc = parts.shift();
-
- if (!sources[ssrc]) {
- var source = {
- ssrc: ssrc,
- parameters: []
- };
- parsed.push(source);
-
- // Keep an index
- sources[ssrc] = source;
+ if (offerOptions.offerToReceiveAudio !== undefined) {
+ numAudioTracks = offerOptions.offerToReceiveAudio;
}
-
- parts = parts.join(' ').split(':');
- var attribute = parts.shift();
- var value = parts.join(':') || null;
-
- sources[ssrc].parameters.push({
- key: attribute,
- value: value
- });
- }
-
- return parsed;
-};
-
-exports.groups = function (lines) {
- // http://tools.ietf.org/html/rfc5888
- var parsed = [];
- var parts;
- for (var i = 0; i < lines.length; i++) {
- parts = lines[i].substr(8).split(' ');
- parsed.push({
- semantics: parts.shift(),
- contents: parts
- });
- }
- return parsed;
-};
-
-exports.bandwidth = function (line) {
- var parts = line.substr(2).split(':');
- var parsed = {};
- parsed.type = parts.shift();
- parsed.bandwidth = parts.shift();
- return parsed;
-};
-
-exports.msid = function (line) {
- var data = line.substr(7);
- var parts = data.split(' ');
- return {
- msid: data,
- mslabel: parts[0],
- label: parts[1]
- };
-};
-
-},{}],79:[function(require,module,exports){
-module.exports = {
- initiator: {
- incoming: {
- initiator: 'recvonly',
- responder: 'sendonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'initiator',
- sendonly: 'responder',
- sendrecv: 'both',
- inactive: 'none'
- },
- outgoing: {
- initiator: 'sendonly',
- responder: 'recvonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'responder',
- sendonly: 'initiator',
- sendrecv: 'both',
- inactive: 'none'
+ if (offerOptions.offerToReceiveVideo !== undefined) {
+ numVideoTracks = offerOptions.offerToReceiveVideo;
}
- },
- responder: {
- incoming: {
- initiator: 'sendonly',
- responder: 'recvonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'responder',
- sendonly: 'initiator',
- sendrecv: 'both',
- inactive: 'none'
- },
- outgoing: {
- initiator: 'recvonly',
- responder: 'sendonly',
- both: 'sendrecv',
- none: 'inactive',
- recvonly: 'initiator',
- sendonly: 'responder',
- sendrecv: 'both',
- inactive: 'none'
+ }
+ if (this.localStreams.length) {
+ // Push local streams.
+ this.localStreams[0].getTracks().forEach(function(track) {
+ tracks.push({
+ kind: track.kind,
+ track: track,
+ wantReceive: track.kind === 'audio' ?
+ numAudioTracks > 0 : numVideoTracks > 0
+ });
+ if (track.kind === 'audio') {
+ numAudioTracks--;
+ } else if (track.kind === 'video') {
+ numVideoTracks--;
+ }
+ });
+ }
+ // Create M-lines for recvonly streams.
+ while (numAudioTracks > 0 || numVideoTracks > 0) {
+ if (numAudioTracks > 0) {
+ tracks.push({
+ kind: 'audio',
+ wantReceive: true
+ });
+ numAudioTracks--;
}
- }
-};
-
-},{}],80:[function(require,module,exports){
-var SENDERS = require('./senders');
-var parsers = require('./parsers');
-var idCounter = Math.random();
-
-
-exports._setIdCounter = function (counter) {
- idCounter = counter;
-};
-
-exports.toSessionJSON = function (sdp, opts) {
- var i;
- var creators = opts.creators || [];
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
-
- // Divide the SDP into session and media sections.
- var media = sdp.split('\r\nm=');
- for (i = 1; i < media.length; i++) {
- media[i] = 'm=' + media[i];
- if (i !== media.length - 1) {
- media[i] += '\r\n';
+ if (numVideoTracks > 0) {
+ tracks.push({
+ kind: 'video',
+ wantReceive: true
+ });
+ numVideoTracks--;
}
- }
- var session = media.shift() + '\r\n';
- var sessionLines = parsers.lines(session);
- var parsed = {};
-
- var contents = [];
- for (i = 0; i < media.length; i++) {
- contents.push(exports.toMediaJSON(media[i], session, {
- role: role,
- direction: direction,
- creator: creators[i] || 'initiator'
- }));
- }
- parsed.contents = contents;
+ }
- var groupLines = parsers.findLines('a=group:', sessionLines);
- if (groupLines.length) {
- parsed.groups = parsers.groups(groupLines);
- }
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ var transceivers = [];
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ // For each track, create an ice gatherer, ice transport,
+ // dtls transport, potentially rtpsender and rtpreceiver.
+ var track = mline.track;
+ var kind = mline.kind;
+ var mid = SDPUtils.generateIdentifier();
+
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: transceivers[0].iceGatherer,
+ iceTransport: transceivers[0].iceTransport,
+ dtlsTransport: transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ var localCapabilities = RTCRtpSender.getCapabilities(kind);
+ var rtpSender;
+ var rtpReceiver;
+
+ // generate an ssrc now, to be used later in rtpSender.send
+ var sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 1) * 1001
+ }];
+ if (track) {
+ rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
+ }
+
+ if (mline.wantReceive) {
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+ }
+
+ transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: null,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: null
+ };
+ });
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ var transceiver = transceivers[sdpMLineIndex];
+ sdp += SDPUtils.writeMediaSection(transceiver,
+ transceiver.localCapabilities, 'offer', self.localStreams[0]);
+ });
- return parsed;
-};
+ this._pendingOffer = transceivers;
+ var desc = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
-exports.toMediaJSON = function (media, session, opts) {
- var creator = opts.creator || 'initiator';
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
+ window.RTCPeerConnection.prototype.createAnswer = function() {
+ var self = this;
- var lines = parsers.lines(media);
- var sessionLines = parsers.lines(session);
- var mline = parsers.mline(lines[0]);
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ this.transceivers.forEach(function(transceiver) {
+ // Calculate intersection of capabilities.
+ var commonCapabilities = self._getCommonCapabilities(
+ transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+
+ sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
+ 'answer', self.localStreams[0]);
+ });
- var content = {
- creator: creator,
- name: mline.media,
- description: {
- descType: 'rtp',
- media: mline.media,
- payloads: [],
- encryption: [],
- feedback: [],
- headerExtensions: []
- },
- transport: {
- transType: 'iceUdp',
- candidates: [],
- fingerprints: []
- }
+ var desc = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
};
- if (mline.media == 'application') {
- // FIXME: the description is most likely to be independent
- // of the SDP and should be processed by other parts of the library
- content.description = {
- descType: 'datachannel'
- };
- content.transport.sctp = [];
- }
- var desc = content.description;
- var trans = content.transport;
-
- // If we have a mid, use that for the content name instead.
- var mid = parsers.findLine('a=mid:', lines);
- if (mid) {
- content.name = mid.substr(6);
- }
-
- if (parsers.findLine('a=sendrecv', lines, sessionLines)) {
- content.senders = 'both';
- } else if (parsers.findLine('a=sendonly', lines, sessionLines)) {
- content.senders = SENDERS[role][direction].sendonly;
- } else if (parsers.findLine('a=recvonly', lines, sessionLines)) {
- content.senders = SENDERS[role][direction].recvonly;
- } else if (parsers.findLine('a=inactive', lines, sessionLines)) {
- content.senders = 'none';
- }
- if (desc.descType == 'rtp') {
- var bandwidth = parsers.findLine('b=', lines);
- if (bandwidth) {
- desc.bandwidth = parsers.bandwidth(bandwidth);
+ window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
+ if (candidate === null) {
+ this.transceivers.forEach(function(transceiver) {
+ transceiver.iceTransport.addRemoteCandidate({});
+ });
+ } else {
+ var mLineIndex = candidate.sdpMLineIndex;
+ if (candidate.sdpMid) {
+ for (var i = 0; i < this.transceivers.length; i++) {
+ if (this.transceivers[i].mid === candidate.sdpMid) {
+ mLineIndex = i;
+ break;
+ }
+ }
}
+ var transceiver = this.transceivers[mLineIndex];
+ if (transceiver) {
+ var cand = Object.keys(candidate.candidate).length > 0 ?
+ SDPUtils.parseCandidate(candidate.candidate) : {};
+ // Ignore Chrome's invalid candidates since Edge does not like them.
+ if (cand.protocol === 'tcp' && cand.port === 0) {
+ return;
+ }
+ // Ignore RTCP candidates, we assume RTCP-MUX.
+ if (cand.component !== '1') {
+ return;
+ }
+ // A dirty hack to make samples work.
+ if (cand.type === 'endOfCandidates') {
+ cand = {};
+ }
+ transceiver.iceTransport.addRemoteCandidate(cand);
- var ssrc = parsers.findLine('a=ssrc:', lines);
- if (ssrc) {
- desc.ssrc = ssrc.substr(7).split(' ')[0];
+ // update the remoteDescription.
+ var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
+ sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
+ : 'a=end-of-candidates') + '\r\n';
+ this.remoteDescription.sdp = sections.join('');
}
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
- var rtpmapLines = parsers.findLines('a=rtpmap:', lines);
- rtpmapLines.forEach(function (line) {
- var payload = parsers.rtpmap(line);
- payload.parameters = [];
- payload.feedback = [];
-
- var fmtpLines = parsers.findLines('a=fmtp:' + payload.id, lines);
- // There should only be one fmtp line per payload
- fmtpLines.forEach(function (line) {
- payload.parameters = parsers.fmtp(line);
- });
-
- var fbLines = parsers.findLines('a=rtcp-fb:' + payload.id, lines);
- fbLines.forEach(function (line) {
- payload.feedback.push(parsers.rtcpfb(line));
+ window.RTCPeerConnection.prototype.getStats = function() {
+ var promises = [];
+ this.transceivers.forEach(function(transceiver) {
+ ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
+ 'dtlsTransport'].forEach(function(method) {
+ if (transceiver[method]) {
+ promises.push(transceiver[method].getStats());
+ }
});
-
- desc.payloads.push(payload);
- });
-
- var cryptoLines = parsers.findLines('a=crypto:', lines, sessionLines);
- cryptoLines.forEach(function (line) {
- desc.encryption.push(parsers.crypto(line));
- });
-
- if (parsers.findLine('a=rtcp-mux', lines)) {
- desc.mux = true;
- }
-
- var fbLines = parsers.findLines('a=rtcp-fb:*', lines);
- fbLines.forEach(function (line) {
- desc.feedback.push(parsers.rtcpfb(line));
- });
-
- var extLines = parsers.findLines('a=extmap:', lines);
- extLines.forEach(function (line) {
- var ext = parsers.extmap(line);
-
- ext.senders = SENDERS[role][direction][ext.senders];
-
- desc.headerExtensions.push(ext);
- });
-
- var ssrcGroupLines = parsers.findLines('a=ssrc-group:', lines);
- desc.sourceGroups = parsers.sourceGroups(ssrcGroupLines || []);
-
- var ssrcLines = parsers.findLines('a=ssrc:', lines);
- var sources = desc.sources = parsers.sources(ssrcLines || []);
-
- var msidLine = parsers.findLine('a=msid:', lines);
- if (msidLine) {
- var msid = parsers.msid(msidLine);
- ['msid', 'mslabel', 'label'].forEach(function (key) {
- for (var i = 0; i < sources.length; i++) {
- var found = false;
- for (var j = 0; j < sources[i].parameters.length; j++) {
- if (sources[i].parameters[j].key === key) {
- found = true;
- }
- }
- if (!found) {
- sources[i].parameters.push({ key: key, value: msid[key] });
- }
- }
+ });
+ var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
+ arguments[1];
+ return new Promise(function(resolve) {
+ // shim getStats with maplike support
+ var results = new Map();
+ Promise.all(promises).then(function(res) {
+ res.forEach(function(result) {
+ Object.keys(result).forEach(function(id) {
+ results.set(id, result[id]);
+ results[id] = result[id];
});
- }
-
- if (parsers.findLine('a=x-google-flag:conference', lines, sessionLines)) {
- desc.googConferenceFlag = true;
- }
- }
-
- // transport specific attributes
- var fingerprintLines = parsers.findLines('a=fingerprint:', lines, sessionLines);
- var setup = parsers.findLine('a=setup:', lines, sessionLines);
- fingerprintLines.forEach(function (line) {
- var fp = parsers.fingerprint(line);
- if (setup) {
- fp.setup = setup.substr(8);
- }
- trans.fingerprints.push(fp);
- });
-
- var ufragLine = parsers.findLine('a=ice-ufrag:', lines, sessionLines);
- var pwdLine = parsers.findLine('a=ice-pwd:', lines, sessionLines);
- if (ufragLine && pwdLine) {
- trans.ufrag = ufragLine.substr(12);
- trans.pwd = pwdLine.substr(10);
- trans.candidates = [];
-
- var candidateLines = parsers.findLines('a=candidate:', lines, sessionLines);
- candidateLines.forEach(function (line) {
- trans.candidates.push(exports.toCandidateJSON(line));
+ });
+ if (cb) {
+ window.setTimeout(cb, 0, results);
+ }
+ resolve(results);
});
- }
+ });
+ };
+ },
- if (desc.descType == 'datachannel') {
- var sctpmapLines = parsers.findLines('a=sctpmap:', lines);
- sctpmapLines.forEach(function (line) {
- var sctp = parsers.sctpmap(line);
- trans.sctp.push(sctp);
- });
- }
+ // Attach a media stream to an element.
+ attachMediaStream: function(element, stream) {
+ logging('DEPRECATED, attachMediaStream will soon be removed.');
+ element.srcObject = stream;
+ },
- return content;
+ reattachMediaStream: function(to, from) {
+ logging('DEPRECATED, reattachMediaStream will soon be removed.');
+ to.srcObject = from.srcObject;
+ }
};
-exports.toCandidateJSON = function (line) {
- var candidate = parsers.candidate(line.split('\r\n')[0]);
- candidate.id = (idCounter++).toString(36).substr(0, 12);
- return candidate;
+// Expose public methods.
+module.exports = {
+ shimPeerConnection: edgeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia'),
+ attachMediaStream: edgeShim.attachMediaStream,
+ reattachMediaStream: edgeShim.reattachMediaStream
};
-},{"./parsers":78,"./senders":79}],81:[function(require,module,exports){
-var SENDERS = require('./senders');
-
-
-exports.toSessionSDP = function (session, opts) {
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
- var sid = opts.sid || session.sid || Date.now();
- var time = opts.time || Date.now();
-
- var sdp = [
- 'v=0',
- 'o=- ' + sid + ' ' + time + ' IN IP4 0.0.0.0',
- 's=-',
- 't=0 0',
- 'a=msid-semantic: WMS *'
- ];
+},{"../utils":41,"./getusermedia":37,"sdp":173}],37:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
- var groups = session.groups || [];
- groups.forEach(function (group) {
- sdp.push('a=group:' + group.semantics + ' ' + group.contents.join(' '));
- });
+// Expose public methods.
+module.exports = function() {
+ var shimError_ = function(e) {
+ return {
+ name: {PermissionDeniedError: 'NotAllowedError'}[e.name] || e.name,
+ message: e.message,
+ constraint: e.constraint,
+ toString: function() {
+ return this.name;
+ }
+ };
+ };
- var contents = session.contents || [];
- contents.forEach(function (content) {
- sdp.push(exports.toMediaSDP(content, opts));
+ // getUserMedia error shim.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ return origGetUserMedia(c).catch(function(e) {
+ return Promise.reject(shimError_(e));
});
-
- return sdp.join('\r\n') + '\r\n';
+ };
};
-exports.toMediaSDP = function (content, opts) {
- var sdp = [];
-
- var role = opts.role || 'initiator';
- var direction = opts.direction || 'outgoing';
-
- var desc = content.description;
- var transport = content.transport;
- var payloads = desc.payloads || [];
- var fingerprints = (transport && transport.fingerprints) || [];
-
- var mline = [];
- if (desc.descType == 'datachannel') {
- mline.push('application');
- mline.push('1');
- mline.push('DTLS/SCTP');
- if (transport.sctp) {
- transport.sctp.forEach(function (map) {
- mline.push(map.number);
- });
- }
- } else {
- mline.push(desc.media);
- mline.push('1');
- if ((desc.encryption && desc.encryption.length > 0) || (fingerprints.length > 0)) {
- mline.push('RTP/SAVPF');
- } else {
- mline.push('RTP/AVPF');
- }
- payloads.forEach(function (payload) {
- mline.push(payload.id);
- });
- }
-
-
- sdp.push('m=' + mline.join(' '));
-
- sdp.push('c=IN IP4 0.0.0.0');
- if (desc.bandwidth && desc.bandwidth.type && desc.bandwidth.bandwidth) {
- sdp.push('b=' + desc.bandwidth.type + ':' + desc.bandwidth.bandwidth);
- }
- if (desc.descType == 'rtp') {
- sdp.push('a=rtcp:1 IN IP4 0.0.0.0');
- }
-
- if (transport) {
- if (transport.ufrag) {
- sdp.push('a=ice-ufrag:' + transport.ufrag);
- }
- if (transport.pwd) {
- sdp.push('a=ice-pwd:' + transport.pwd);
- }
+},{}],38:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
- var pushedSetup = false;
- fingerprints.forEach(function (fingerprint) {
- sdp.push('a=fingerprint:' + fingerprint.hash + ' ' + fingerprint.value);
- if (fingerprint.setup && !pushedSetup) {
- sdp.push('a=setup:' + fingerprint.setup);
- }
- });
+var logging = require('../utils').log;
+var browserDetails = require('../utils').browserDetails;
- if (transport.sctp) {
- transport.sctp.forEach(function (map) {
- sdp.push('a=sctpmap:' + map.number + ' ' + map.protocol + ' ' + map.streams);
- });
+var firefoxShim = {
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
}
+ });
}
+ },
- if (desc.descType == 'rtp') {
- sdp.push('a=' + (SENDERS[role][direction][content.senders] || 'sendrecv'));
- }
- sdp.push('a=mid:' + content.name);
-
- if (desc.sources && desc.sources.length) {
- (desc.sources[0].parameters || []).forEach(function (param) {
- if (param.key === 'msid') {
- sdp.push('a=msid:' + param.value);
- }
+ shimSourceObject: function() {
+ // Firefox has supported mozSrcObject since FF22, unprefixed in 42.
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this.mozSrcObject;
+ },
+ set: function(stream) {
+ this.mozSrcObject = stream;
+ }
});
+ }
}
+ },
- if (desc.mux) {
- sdp.push('a=rtcp-mux');
- }
-
- var encryption = desc.encryption || [];
- encryption.forEach(function (crypto) {
- sdp.push('a=crypto:' + crypto.tag + ' ' + crypto.cipherSuite + ' ' + crypto.keyParams + (crypto.sessionParams ? ' ' + crypto.sessionParams : ''));
- });
- if (desc.googConferenceFlag) {
- sdp.push('a=x-google-flag:conference');
- }
-
- payloads.forEach(function (payload) {
- var rtpmap = 'a=rtpmap:' + payload.id + ' ' + payload.name + '/' + payload.clockrate;
- if (payload.channels && payload.channels != '1') {
- rtpmap += '/' + payload.channels;
- }
- sdp.push(rtpmap);
-
- if (payload.parameters && payload.parameters.length) {
- var fmtp = ['a=fmtp:' + payload.id];
- var parameters = [];
- payload.parameters.forEach(function (param) {
- parameters.push((param.key ? param.key + '=' : '') + param.value);
- });
- fmtp.push(parameters.join(';'));
- sdp.push(fmtp.join(' '));
- }
-
- if (payload.feedback) {
- payload.feedback.forEach(function (fb) {
- if (fb.type === 'trr-int') {
- sdp.push('a=rtcp-fb:' + payload.id + ' trr-int ' + (fb.value ? fb.value : '0'));
- } else {
- sdp.push('a=rtcp-fb:' + payload.id + ' ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ shimPeerConnection: function() {
+ if (typeof window !== 'object' || !(window.RTCPeerConnection ||
+ window.mozRTCPeerConnection)) {
+ return; // probably media.peerconnection.enabled=false in about:config
+ }
+ // The RTCPeerConnection object.
+ if (!window.RTCPeerConnection) {
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ if (browserDetails.version < 38) {
+ // .urls is not supported in FF < 38.
+ // create RTCIceServers with a single url.
+ if (pcConfig && pcConfig.iceServers) {
+ var newIceServers = [];
+ for (var i = 0; i < pcConfig.iceServers.length; i++) {
+ var server = pcConfig.iceServers[i];
+ if (server.hasOwnProperty('urls')) {
+ for (var j = 0; j < server.urls.length; j++) {
+ var newServer = {
+ url: server.urls[j]
+ };
+ if (server.urls[j].indexOf('turn') === 0) {
+ newServer.username = server.username;
+ newServer.credential = server.credential;
+ }
+ newIceServers.push(newServer);
}
- });
- }
- });
-
- if (desc.feedback) {
- desc.feedback.forEach(function (fb) {
- if (fb.type === 'trr-int') {
- sdp.push('a=rtcp-fb:* trr-int ' + (fb.value ? fb.value : '0'));
- } else {
- sdp.push('a=rtcp-fb:* ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ } else {
+ newIceServers.push(pcConfig.iceServers[i]);
+ }
}
- });
- }
-
- var hdrExts = desc.headerExtensions || [];
- hdrExts.forEach(function (hdr) {
- sdp.push('a=extmap:' + hdr.id + (hdr.senders ? '/' + SENDERS[role][direction][hdr.senders] : '') + ' ' + hdr.uri);
- });
-
- var ssrcGroups = desc.sourceGroups || [];
- ssrcGroups.forEach(function (ssrcGroup) {
- sdp.push('a=ssrc-group:' + ssrcGroup.semantics + ' ' + ssrcGroup.sources.join(' '));
- });
-
- var ssrcs = desc.sources || [];
- ssrcs.forEach(function (ssrc) {
- for (var i = 0; i < ssrc.parameters.length; i++) {
- var param = ssrc.parameters[i];
- sdp.push('a=ssrc:' + (ssrc.ssrc || desc.ssrc) + ' ' + param.key + (param.value ? (':' + param.value) : ''));
+ pcConfig.iceServers = newIceServers;
+ }
}
- });
-
- var candidates = transport.candidates || [];
- candidates.forEach(function (candidate) {
- sdp.push(exports.toCandidateSDP(candidate));
- });
-
- return sdp.join('\r\n');
-};
-
-exports.toCandidateSDP = function (candidate) {
- var sdp = [];
+ return new mozRTCPeerConnection(pcConfig, pcConstraints);
+ };
+ window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
- sdp.push(candidate.foundation);
- sdp.push(candidate.component);
- sdp.push(candidate.protocol.toUpperCase());
- sdp.push(candidate.priority);
- sdp.push(candidate.ip);
- sdp.push(candidate.port);
+ // wrap static methods. Currently just generateCertificate.
+ if (mozRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return mozRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
- var type = candidate.type;
- sdp.push('typ');
- sdp.push(type);
- if (type === 'srflx' || type === 'prflx' || type === 'relay') {
- if (candidate.relAddr && candidate.relPort) {
- sdp.push('raddr');
- sdp.push(candidate.relAddr);
- sdp.push('rport');
- sdp.push(candidate.relPort);
- }
- }
- if (candidate.tcpType && candidate.protocol.toUpperCase() == 'TCP') {
- sdp.push('tcptype');
- sdp.push(candidate.tcpType);
+ window.RTCSessionDescription = mozRTCSessionDescription;
+ window.RTCIceCandidate = mozRTCIceCandidate;
}
- sdp.push('generation');
- sdp.push(candidate.generation || '0');
-
- // FIXME: apparently this is wrong per spec
- // but then, we need this when actually putting this into
- // SDP so it's going to stay.
- // decision needs to be revisited when browsers dont
- // accept this any longer
- return 'a=candidate:' + sdp.join(' ');
-};
-
-},{"./senders":79}],82:[function(require,module,exports){
-// based on https://github.com/ESTOS/strophe.jingle/
-// adds wildemitter support
-var util = require('util');
-var adapter = require('webrtc-adapter-test');
-var WildEmitter = require('wildemitter');
-
-function dumpSDP(description) {
- return {
- type: description.type,
- sdp: description.sdp
- };
-}
-
-function dumpStream(stream) {
- var info = {
- label: stream.id,
- };
- if (stream.getAudioTracks().length) {
- info.audio = stream.getAudioTracks().map(function (track) {
- return track.id;
- });
- }
- if (stream.getVideoTracks().length) {
- info.video = stream.getVideoTracks().map(function (track) {
- return track.id;
+ // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = RTCPeerConnection.prototype[method];
+ RTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
});
- }
- return info;
-}
-function TraceablePeerConnection(config, constraints) {
- var self = this;
- WildEmitter.call(this);
-
- this.peerconnection = new window.RTCPeerConnection(config, constraints);
-
- this.trace = function (what, info) {
- self.emit('PeerConnectionTrace', {
- time: new Date(),
- type: what,
- value: info || ""
- });
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ return arguments[0] === null ? Promise.resolve()
+ : nativeAddIceCandidate.apply(this, arguments);
};
- this.onicecandidate = null;
- this.peerconnection.onicecandidate = function (event) {
- self.trace('onicecandidate', event.candidate);
- if (self.onicecandidate !== null) {
- self.onicecandidate(event);
- }
- };
- this.onaddstream = null;
- this.peerconnection.onaddstream = function (event) {
- self.trace('onaddstream', dumpStream(event.stream));
- if (self.onaddstream !== null) {
- self.onaddstream(event);
- }
- };
- this.onremovestream = null;
- this.peerconnection.onremovestream = function (event) {
- self.trace('onremovestream', dumpStream(event.stream));
- if (self.onremovestream !== null) {
- self.onremovestream(event);
- }
- };
- this.onsignalingstatechange = null;
- this.peerconnection.onsignalingstatechange = function (event) {
- self.trace('onsignalingstatechange', self.signalingState);
- if (self.onsignalingstatechange !== null) {
- self.onsignalingstatechange(event);
- }
- };
- this.oniceconnectionstatechange = null;
- this.peerconnection.oniceconnectionstatechange = function (event) {
- self.trace('oniceconnectionstatechange', self.iceConnectionState);
- if (self.oniceconnectionstatechange !== null) {
- self.oniceconnectionstatechange(event);
- }
- };
- this.onnegotiationneeded = null;
- this.peerconnection.onnegotiationneeded = function (event) {
- self.trace('onnegotiationneeded');
- if (self.onnegotiationneeded !== null) {
- self.onnegotiationneeded(event);
- }
- };
- self.ondatachannel = null;
- this.peerconnection.ondatachannel = function (event) {
- self.trace('ondatachannel', event);
- if (self.ondatachannel !== null) {
- self.ondatachannel(event);
- }
+ // shim getStats with maplike support
+ var makeMapStats = function(stats) {
+ var map = new Map();
+ Object.keys(stats).forEach(function(key) {
+ map.set(key, stats[key]);
+ map[key] = stats[key];
+ });
+ return map;
};
- this.getLocalStreams = this.peerconnection.getLocalStreams.bind(this.peerconnection);
- this.getRemoteStreams = this.peerconnection.getRemoteStreams.bind(this.peerconnection);
-}
-
-util.inherits(TraceablePeerConnection, WildEmitter);
-
-['signalingState', 'iceConnectionState', 'localDescription', 'remoteDescription'].forEach(function (prop) {
- Object.defineProperty(TraceablePeerConnection.prototype, prop, {
- get: function () {
- return this.peerconnection[prop];
- }
- });
-});
-
-TraceablePeerConnection.prototype.addStream = function (stream) {
- this.trace('addStream', dumpStream(stream));
- this.peerconnection.addStream(stream);
-};
-
-TraceablePeerConnection.prototype.removeStream = function (stream) {
- this.trace('removeStream', dumpStream(stream));
- this.peerconnection.removeStream(stream);
-};
-
-TraceablePeerConnection.prototype.createDataChannel = function (label, opts) {
- this.trace('createDataChannel', label, opts);
- return this.peerconnection.createDataChannel(label, opts);
-};
-
-TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
- var self = this;
- this.trace('setLocalDescription', dumpSDP(description));
- this.peerconnection.setLocalDescription(description,
- function () {
- self.trace('setLocalDescriptionOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('setLocalDescriptionOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.setRemoteDescription = function (description, successCallback, failureCallback) {
- var self = this;
- this.trace('setRemoteDescription', dumpSDP(description));
- this.peerconnection.setRemoteDescription(description,
- function () {
- self.trace('setRemoteDescriptionOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('setRemoteDescriptionOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
-};
-
-TraceablePeerConnection.prototype.close = function () {
- this.trace('stop');
- if (this.peerconnection.signalingState != 'closed') {
- this.peerconnection.close();
- }
-};
-TraceablePeerConnection.prototype.createOffer = function (successCallback, failureCallback, constraints) {
- var self = this;
- this.trace('createOffer', constraints);
- this.peerconnection.createOffer(
- function (offer) {
- self.trace('createOfferOnSuccess', dumpSDP(offer));
- if (successCallback) successCallback(offer);
- },
- function (err) {
- self.trace('createOfferOnFailure', err);
- if (failureCallback) failureCallback(err);
- },
- constraints
- );
-};
+ var nativeGetStats = RTCPeerConnection.prototype.getStats;
+ RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
+ return nativeGetStats.apply(this, [selector || null])
+ .then(function(stats) {
+ return makeMapStats(stats);
+ })
+ .then(onSucc, onErr);
+ };
+ },
-TraceablePeerConnection.prototype.createAnswer = function (successCallback, failureCallback, constraints) {
- var self = this;
- this.trace('createAnswer', constraints);
- this.peerconnection.createAnswer(
- function (answer) {
- self.trace('createAnswerOnSuccess', dumpSDP(answer));
- if (successCallback) successCallback(answer);
- },
- function (err) {
- self.trace('createAnswerOnFailure', err);
- if (failureCallback) failureCallback(err);
- },
- constraints
- );
-};
+ // Attach a media stream to an element.
+ attachMediaStream: function(element, stream) {
+ logging('DEPRECATED, attachMediaStream will soon be removed.');
+ element.srcObject = stream;
+ },
-TraceablePeerConnection.prototype.addIceCandidate = function (candidate, successCallback, failureCallback) {
- var self = this;
- this.trace('addIceCandidate', candidate);
- this.peerconnection.addIceCandidate(candidate,
- function () {
- //self.trace('addIceCandidateOnSuccess');
- if (successCallback) successCallback();
- },
- function (err) {
- self.trace('addIceCandidateOnFailure', err);
- if (failureCallback) failureCallback(err);
- }
- );
+ reattachMediaStream: function(to, from) {
+ logging('DEPRECATED, reattachMediaStream will soon be removed.');
+ to.srcObject = from.srcObject;
+ }
};
-TraceablePeerConnection.prototype.getStats = function () {
- this.peerconnection.getStats.apply(this.peerconnection, arguments);
+// Expose public methods.
+module.exports = {
+ shimOnTrack: firefoxShim.shimOnTrack,
+ shimSourceObject: firefoxShim.shimSourceObject,
+ shimPeerConnection: firefoxShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia'),
+ attachMediaStream: firefoxShim.attachMediaStream,
+ reattachMediaStream: firefoxShim.reattachMediaStream
};
-module.exports = TraceablePeerConnection;
-
-},{"util":28,"webrtc-adapter-test":83,"wildemitter":84}],83:[function(require,module,exports){
+},{"../utils":41,"./getusermedia":39}],39:[function(require,module,exports){
/*
- * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree.
*/
-
-/* More information about these options at jshint.com/docs/options */
-/* jshint browser: true, camelcase: true, curly: true, devel: true,
- eqeqeq: true, forin: false, globalstrict: true, node: true,
- quotmark: single, undef: true, unused: strict */
-/* global mozRTCIceCandidate, mozRTCPeerConnection, Promise,
-mozRTCSessionDescription, webkitRTCPeerConnection, MediaStreamTrack */
-/* exported trace,requestUserMedia */
-
+ /* eslint-env node */
'use strict';
-var getUserMedia = null;
-var attachMediaStream = null;
-var reattachMediaStream = null;
-var webrtcDetectedBrowser = null;
-var webrtcDetectedVersion = null;
-var webrtcMinimumVersion = null;
-var webrtcUtils = {
- log: function() {
- // suppress console.log output when being included as a module.
- if (typeof module !== 'undefined' ||
- typeof require === 'function' && typeof define === 'function') {
- return;
- }
- console.log.apply(console, arguments);
- },
- extractVersion: function(uastring, expr, pos) {
- var match = uastring.match(expr);
- return match && match.length >= pos && parseInt(match[pos]);
- }
-};
-
-function trace(text) {
- // This function is used for logging.
- if (text[text.length - 1] === '\n') {
- text = text.substring(0, text.length - 1);
- }
- if (window.performance) {
- var now = (window.performance.now() / 1000).toFixed(3);
- webrtcUtils.log(now + ': ' + text);
- } else {
- webrtcUtils.log(text);
- }
-}
-
-if (typeof window === 'object') {
- if (window.HTMLMediaElement &&
- !('srcObject' in window.HTMLMediaElement.prototype)) {
- // Shim the srcObject property, once, when HTMLMediaElement is found.
- Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
- get: function() {
- // If prefixed srcObject property exists, return it.
- // Otherwise use the shimmed property, _srcObject
- return 'mozSrcObject' in this ? this.mozSrcObject : this._srcObject;
- },
- set: function(stream) {
- if ('mozSrcObject' in this) {
- this.mozSrcObject = stream;
- } else {
- // Use _srcObject as a private property for this shim
- this._srcObject = stream;
- // TODO: revokeObjectUrl(this.src) when !stream to release resources?
- this.src = URL.createObjectURL(stream);
- }
- }
- });
- }
- // Proxy existing globals
- getUserMedia = window.navigator && window.navigator.getUserMedia;
-}
-
-// Attach a media stream to an element.
-attachMediaStream = function(element, stream) {
- element.srcObject = stream;
-};
-
-reattachMediaStream = function(to, from) {
- to.srcObject = from.srcObject;
-};
-
-if (typeof window === 'undefined' || !window.navigator) {
- webrtcUtils.log('This does not appear to be a browser');
- webrtcDetectedBrowser = 'not a browser';
-} else if (navigator.mozGetUserMedia && window.mozRTCPeerConnection) {
- webrtcUtils.log('This appears to be Firefox');
-
- webrtcDetectedBrowser = 'firefox';
-
- // the detected firefox version.
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Firefox\/([0-9]+)\./, 1);
-
- // the minimum firefox version still supported by adapter.
- webrtcMinimumVersion = 31;
+var logging = require('../utils').log;
+var browserDetails = require('../utils').browserDetails;
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- if (webrtcDetectedVersion < 38) {
- // .urls is not supported in FF < 38.
- // create RTCIceServers with a single url.
- if (pcConfig && pcConfig.iceServers) {
- var newIceServers = [];
- for (var i = 0; i < pcConfig.iceServers.length; i++) {
- var server = pcConfig.iceServers[i];
- if (server.hasOwnProperty('urls')) {
- for (var j = 0; j < server.urls.length; j++) {
- var newServer = {
- url: server.urls[j]
- };
- if (server.urls[j].indexOf('turn') === 0) {
- newServer.username = server.username;
- newServer.credential = server.credential;
- }
- newIceServers.push(newServer);
- }
- } else {
- newIceServers.push(pcConfig.iceServers[i]);
- }
- }
- pcConfig.iceServers = newIceServers;
+// Expose public methods.
+module.exports = function() {
+ var shimError_ = function(e) {
+ return {
+ name: {
+ SecurityError: 'NotAllowedError',
+ PermissionDeniedError: 'NotAllowedError'
+ }[e.name] || e.name,
+ message: {
+ 'The operation is insecure.': 'The request is not allowed by the ' +
+ 'user agent or the platform in the current context.'
+ }[e.message] || e.message,
+ constraint: e.constraint,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
}
- }
- return new mozRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
+ };
};
- // The RTCSessionDescription object.
- if (!window.RTCSessionDescription) {
- window.RTCSessionDescription = mozRTCSessionDescription;
- }
-
- // The RTCIceCandidate object.
- if (!window.RTCIceCandidate) {
- window.RTCIceCandidate = mozRTCIceCandidate;
- }
-
// getUserMedia constraints shim.
- getUserMedia = function(constraints, onSuccess, onError) {
- var constraintsToFF37 = function(c) {
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ var constraintsToFF37_ = function(c) {
if (typeof c !== 'object' || c.require) {
return c;
}
@@ -12049,7 +5347,7 @@ if (typeof window === 'undefined' || !window.navigator) {
}
if (r.exact !== undefined) {
if (typeof r.exact === 'number') {
- r.min = r.max = r.exact;
+ r. min = r.max = r.exact;
} else {
c[key] = r.exact;
}
@@ -12075,40 +5373,48 @@ if (typeof window === 'undefined' || !window.navigator) {
}
return c;
};
- if (webrtcDetectedVersion < 38) {
- webrtcUtils.log('spec: ' + JSON.stringify(constraints));
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (browserDetails.version < 38) {
+ logging('spec: ' + JSON.stringify(constraints));
if (constraints.audio) {
- constraints.audio = constraintsToFF37(constraints.audio);
+ constraints.audio = constraintsToFF37_(constraints.audio);
}
if (constraints.video) {
- constraints.video = constraintsToFF37(constraints.video);
+ constraints.video = constraintsToFF37_(constraints.video);
}
- webrtcUtils.log('ff37: ' + JSON.stringify(constraints));
+ logging('ff37: ' + JSON.stringify(constraints));
}
- return navigator.mozGetUserMedia(constraints, onSuccess, onError);
+ return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
};
- navigator.getUserMedia = getUserMedia;
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ getUserMedia_(constraints, resolve, reject);
+ });
+ };
// Shim for mediaDevices on older versions.
if (!navigator.mediaDevices) {
- navigator.mediaDevices = {getUserMedia: requestUserMedia,
+ navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
addEventListener: function() { },
removeEventListener: function() { }
};
}
navigator.mediaDevices.enumerateDevices =
navigator.mediaDevices.enumerateDevices || function() {
- return new Promise(function(resolve) {
- var infos = [
- {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
- {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
- ];
- resolve(infos);
- });
- };
+ return new Promise(function(resolve) {
+ var infos = [
+ {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
+ {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
+ ];
+ resolve(infos);
+ });
+ };
- if (webrtcDetectedVersion < 41) {
+ if (browserDetails.version < 41) {
// Work around http://bugzil.la/1169665
var orgEnumerateDevices =
navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
@@ -12121,1177 +5427,695 @@ if (typeof window === 'undefined' || !window.navigator) {
});
};
}
-} else if (navigator.webkitGetUserMedia && window.webkitRTCPeerConnection) {
- webrtcUtils.log('This appears to be Chrome');
-
- webrtcDetectedBrowser = 'chrome';
-
- // the detected chrome version.
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Chrom(e|ium)\/([0-9]+)\./, 2);
-
- // the minimum chrome version still supported by adapter.
- webrtcMinimumVersion = 38;
-
- // The RTCPeerConnection object.
- window.RTCPeerConnection = function(pcConfig, pcConstraints) {
- // Translate iceTransportPolicy to iceTransports,
- // see https://code.google.com/p/webrtc/issues/detail?id=4869
- if (pcConfig && pcConfig.iceTransportPolicy) {
- pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ if (browserDetails.version < 49) {
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ return origGetUserMedia(c).catch(function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ };
+ }
+ navigator.getUserMedia = function(constraints, onSuccess, onError) {
+ if (browserDetails.version < 44) {
+ return getUserMedia_(constraints, onSuccess, onError);
}
+ // Replace Firefox 44+'s deprecation warning with unprefixed version.
+ console.warn('navigator.getUserMedia has been replaced by ' +
+ 'navigator.mediaDevices.getUserMedia');
+ navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
+ };
+};
- var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
- var origGetStats = pc.getStats.bind(pc);
- pc.getStats = function(selector, successCallback, errorCallback) { // jshint ignore: line
- var self = this;
- var args = arguments;
-
- // If selector is a function then we are in the old style stats so just
- // pass back the original getStats format to avoid breaking old users.
- if (arguments.length > 0 && typeof selector === 'function') {
- return origGetStats(selector, successCallback);
- }
-
- var fixChromeStats = function(response) {
- var standardReport = {};
- var reports = response.result();
- reports.forEach(function(report) {
- var standardStats = {
- id: report.id,
- timestamp: report.timestamp,
- type: report.type
- };
- report.names().forEach(function(name) {
- standardStats[name] = report.stat(name);
- });
- standardReport[standardStats.id] = standardStats;
- });
-
- return standardReport;
- };
+},{"../utils":41}],40:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+'use strict';
+var safariShim = {
+ // TODO: DrAlex, should be here, double check against LayoutTests
+ // shimOnTrack: function() { },
- if (arguments.length >= 2) {
- var successCallbackWrapper = function(response) {
- args[1](fixChromeStats(response));
- };
+ // TODO: DrAlex
+ // attachMediaStream: function(element, stream) { },
+ // reattachMediaStream: function(to, from) { },
- return origGetStats.apply(this, [successCallbackWrapper, arguments[0]]);
- }
+ // TODO: once the back-end for the mac port is done, add.
+ // TODO: check for webkitGTK+
+ // shimPeerConnection: function() { },
- // promise-support
- return new Promise(function(resolve, reject) {
- if (args.length === 1 && selector === null) {
- origGetStats.apply(self, [
- function(response) {
- resolve.apply(null, [fixChromeStats(response)]);
- }, reject]);
- } else {
- origGetStats.apply(self, [resolve, reject]);
- }
- });
- };
+ shimGetUserMedia: function() {
+ navigator.getUserMedia = navigator.webkitGetUserMedia;
+ }
+};
- return pc;
- };
+// Expose public methods.
+module.exports = {
+ shimGetUserMedia: safariShim.shimGetUserMedia
+ // TODO
+ // shimOnTrack: safariShim.shimOnTrack,
+ // shimPeerConnection: safariShim.shimPeerConnection,
+ // attachMediaStream: safariShim.attachMediaStream,
+ // reattachMediaStream: safariShim.reattachMediaStream
+};
- // add promise support
- ['createOffer', 'createAnswer'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var self = this;
- if (arguments.length < 1 || (arguments.length === 1 &&
- typeof(arguments[0]) === 'object')) {
- var opts = arguments.length === 1 ? arguments[0] : undefined;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [resolve, reject, opts]);
- });
- } else {
- return nativeMethod.apply(this, arguments);
- }
- };
- });
+},{}],41:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
- ['setLocalDescription', 'setRemoteDescription',
- 'addIceCandidate'].forEach(function(method) {
- var nativeMethod = webkitRTCPeerConnection.prototype[method];
- webkitRTCPeerConnection.prototype[method] = function() {
- var args = arguments;
- var self = this;
- return new Promise(function(resolve, reject) {
- nativeMethod.apply(self, [args[0],
- function() {
- resolve();
- if (args.length >= 2) {
- args[1].apply(null, []);
- }
- },
- function(err) {
- reject(err);
- if (args.length >= 3) {
- args[2].apply(null, [err]);
- }
- }]
- );
- });
- };
- });
+var logDisabled_ = true;
- // getUserMedia constraints shim.
- var constraintsToChrome = function(c) {
- if (typeof c !== 'object' || c.mandatory || c.optional) {
- return c;
+// Utility methods.
+var utils = {
+ disableLog: function(bool) {
+ if (typeof bool !== 'boolean') {
+ return new Error('Argument type: ' + typeof bool +
+ '. Please use a boolean.');
}
- var cc = {};
- Object.keys(c).forEach(function(key) {
- if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ logDisabled_ = bool;
+ return (bool) ? 'adapter.js logging disabled' :
+ 'adapter.js logging enabled';
+ },
+
+ log: function() {
+ if (typeof window === 'object') {
+ if (logDisabled_) {
return;
}
- var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
- if (r.exact !== undefined && typeof r.exact === 'number') {
- r.min = r.max = r.exact;
+ if (typeof console !== 'undefined' && typeof console.log === 'function') {
+ console.log.apply(console, arguments);
}
- var oldname = function(prefix, name) {
- if (prefix) {
- return prefix + name.charAt(0).toUpperCase() + name.slice(1);
- }
- return (name === 'deviceId') ? 'sourceId' : name;
- };
- if (r.ideal !== undefined) {
- cc.optional = cc.optional || [];
- var oc = {};
- if (typeof r.ideal === 'number') {
- oc[oldname('min', key)] = r.ideal;
- cc.optional.push(oc);
- oc = {};
- oc[oldname('max', key)] = r.ideal;
- cc.optional.push(oc);
+ }
+ },
+
+ /**
+ * Extract browser version out of the provided user agent string.
+ *
+ * @param {!string} uastring userAgent string.
+ * @param {!string} expr Regular expression used as match criteria.
+ * @param {!number} pos position in the version string to be returned.
+ * @return {!number} browser version.
+ */
+ extractVersion: function(uastring, expr, pos) {
+ var match = uastring.match(expr);
+ return match && match.length >= pos && parseInt(match[pos], 10);
+ },
+
+ /**
+ * Browser detector.
+ *
+ * @return {object} result containing browser, version and minVersion
+ * properties.
+ */
+ detectBrowser: function() {
+ // Returned result object.
+ var result = {};
+ result.browser = null;
+ result.version = null;
+ result.minVersion = null;
+
+ // Fail early if it's not a browser
+ if (typeof window === 'undefined' || !window.navigator) {
+ result.browser = 'Not a browser.';
+ return result;
+ }
+
+ // Firefox.
+ if (navigator.mozGetUserMedia) {
+ result.browser = 'firefox';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Firefox\/([0-9]+)\./, 1);
+ result.minVersion = 31;
+
+ // all webkit-based browsers
+ } else if (navigator.webkitGetUserMedia) {
+ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now
+ if (window.webkitRTCPeerConnection) {
+ result.browser = 'chrome';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Chrom(e|ium)\/([0-9]+)\./, 2);
+ result.minVersion = 38;
+
+ // Safari or unknown webkit-based
+ // for the time being Safari has support for MediaStreams but not webRTC
+ } else {
+ // Safari UA substrings of interest for reference:
+ // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
+ // - safari UI version: Version/9.0.3 (unique to Safari)
+ // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
+ //
+ // if the webkit version and safari UI webkit versions are equals,
+ // ... this is a stable version.
+ //
+ // only the internal webkit version is important today to know if
+ // media streams are supported
+ //
+ if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
+ result.browser = 'safari';
+ result.version = this.extractVersion(navigator.userAgent,
+ /AppleWebKit\/([0-9]+)\./, 1);
+ result.minVersion = 602;
+
+ // unknown webkit-based browser
} else {
- oc[oldname('', key)] = r.ideal;
- cc.optional.push(oc);
+ result.browser = 'Unsupported webkit-based browser ' +
+ 'with GUM support but no WebRTC support.';
+ return result;
}
}
- if (r.exact !== undefined && typeof r.exact !== 'number') {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname('', key)] = r.exact;
- } else {
- ['min', 'max'].forEach(function(mix) {
- if (r[mix] !== undefined) {
- cc.mandatory = cc.mandatory || {};
- cc.mandatory[oldname(mix, key)] = r[mix];
- }
- });
- }
- });
- if (c.advanced) {
- cc.optional = (cc.optional || []).concat(c.advanced);
- }
- return cc;
- };
- getUserMedia = function(constraints, onSuccess, onError) {
- if (constraints.audio) {
- constraints.audio = constraintsToChrome(constraints.audio);
+ // Edge.
+ } else if (navigator.mediaDevices &&
+ navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
+ result.browser = 'edge';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Edge\/(\d+).(\d+)$/, 2);
+ result.minVersion = 10547;
+
+ // Default fallthrough: not supported.
+ } else {
+ result.browser = 'Not a supported browser.';
+ return result;
}
- if (constraints.video) {
- constraints.video = constraintsToChrome(constraints.video);
+
+ // Warn if version is less than minVersion.
+ if (result.version < result.minVersion) {
+ utils.log('Browser: ' + result.browser + ' Version: ' + result.version +
+ ' < minimum supported version: ' + result.minVersion +
+ '\n some things might not work!');
}
- webrtcUtils.log('chrome: ' + JSON.stringify(constraints));
- return navigator.webkitGetUserMedia(constraints, onSuccess, onError);
- };
- navigator.getUserMedia = getUserMedia;
- if (!navigator.mediaDevices) {
- navigator.mediaDevices = {getUserMedia: requestUserMedia,
- enumerateDevices: function() {
- return new Promise(function(resolve) {
- var kinds = {audio: 'audioinput', video: 'videoinput'};
- return MediaStreamTrack.getSources(function(devices) {
- resolve(devices.map(function(device) {
- return {label: device.label,
- kind: kinds[device.kind],
- deviceId: device.id,
- groupId: ''};
- }));
- });
- });
- }};
+ return result;
}
+};
- // A shim for getUserMedia method on the mediaDevices object.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (!navigator.mediaDevices.getUserMedia) {
- navigator.mediaDevices.getUserMedia = function(constraints) {
- return requestUserMedia(constraints);
- };
- } else {
- // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
- // function which returns a Promise, it does not accept spec-style
- // constraints.
- var origGetUserMedia = navigator.mediaDevices.getUserMedia.
- bind(navigator.mediaDevices);
- navigator.mediaDevices.getUserMedia = function(c) {
- webrtcUtils.log('spec: ' + JSON.stringify(c)); // whitespace for alignment
- c.audio = constraintsToChrome(c.audio);
- c.video = constraintsToChrome(c.video);
- webrtcUtils.log('chrome: ' + JSON.stringify(c));
- return origGetUserMedia(c);
- };
- }
+// Export.
+module.exports = {
+ log: utils.log,
+ disableLog: utils.disableLog,
+ browserDetails: utils.detectBrowser(),
+ extractVersion: utils.extractVersion
+};
- // Dummy devicechange event methods.
- // TODO(KaptenJansson) remove once implemented in Chrome stable.
- if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
- navigator.mediaDevices.addEventListener = function() {
- webrtcUtils.log('Dummy mediaDevices.addEventListener called.');
- };
- }
- if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
- navigator.mediaDevices.removeEventListener = function() {
- webrtcUtils.log('Dummy mediaDevices.removeEventListener called.');
- };
- }
+},{}],42:[function(require,module,exports){
+var createHash = require('create-hash');
+var createHmac = require('create-hmac');
+var getHashes = require('./lib/get-hashes');
- // Attach a media stream to an element.
- attachMediaStream = function(element, stream) {
- if (webrtcDetectedVersion >= 43) {
- element.srcObject = stream;
- } else if (typeof element.src !== 'undefined') {
- element.src = URL.createObjectURL(stream);
- } else {
- webrtcUtils.log('Error attaching stream to element.');
- }
- };
- reattachMediaStream = function(to, from) {
- if (webrtcDetectedVersion >= 43) {
- to.srcObject = from.srcObject;
- } else {
- to.src = from.src;
- }
- };
+var mapping = {
+ md2: 'md2',
+ md5: 'md5',
+ 'sha-1': 'sha1',
+ 'sha-224': 'sha224',
+ 'sha-256': 'sha256',
+ 'sha-384': 'sha384',
+ 'sha-512': 'sha512'
+};
-} else if (navigator.mediaDevices && navigator.userAgent.match(
- /Edge\/(\d+).(\d+)$/)) {
- webrtcUtils.log('This appears to be Edge');
- webrtcDetectedBrowser = 'edge';
+var names = Object.keys(mapping);
- webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
- /Edge\/(\d+).(\d+)$/, 2);
- // the minimum version still supported by adapter.
- webrtcMinimumVersion = 12;
-} else {
- webrtcUtils.log('Browser does not appear to be WebRTC-capable');
-}
+exports.getHashes = function () {
+ var result = [];
+ var available = getHashes();
+ for (var i = 0, len = names.length; i < len; i++) {
+ if (available.indexOf(mapping[names[i]]) >= 0) {
+ result.push(names[i]);
+ }
+ }
+ return result;
+};
-// Returns the result of getUserMedia as a Promise.
-function requestUserMedia(constraints) {
- return new Promise(function(resolve, reject) {
- getUserMedia(constraints, resolve, reject);
- });
-}
+exports.createHash = function (algorithm) {
+ algorithm = algorithm.toLowerCase();
+ if (mapping[algorithm]) {
+ algorithm = mapping[algorithm];
+ }
+ return createHash(algorithm);
+};
-var webrtcTesting = {};
-try {
- Object.defineProperty(webrtcTesting, 'version', {
- set: function(version) {
- webrtcDetectedVersion = version;
+exports.createHmac = function (algorithm, key) {
+ algorithm = algorithm.toLowerCase();
+ if (mapping[algorithm]) {
+ algorithm = mapping[algorithm];
}
- });
-} catch (e) {}
+ return createHmac(algorithm, key);
+};
-if (typeof module !== 'undefined') {
- var RTCPeerConnection;
- if (typeof window !== 'undefined') {
- RTCPeerConnection = window.RTCPeerConnection;
- }
- module.exports = {
- RTCPeerConnection: RTCPeerConnection,
- getUserMedia: getUserMedia,
- attachMediaStream: attachMediaStream,
- reattachMediaStream: reattachMediaStream,
- webrtcDetectedBrowser: webrtcDetectedBrowser,
- webrtcDetectedVersion: webrtcDetectedVersion,
- webrtcMinimumVersion: webrtcMinimumVersion,
- webrtcTesting: webrtcTesting,
- webrtcUtils: webrtcUtils
- //requestUserMedia: not exposed on purpose.
- //trace: not exposed on purpose.
- };
-} else if ((typeof require === 'function') && (typeof define === 'function')) {
- // Expose objects and functions when RequireJS is doing the loading.
- define([], function() {
- return {
- RTCPeerConnection: window.RTCPeerConnection,
- getUserMedia: getUserMedia,
- attachMediaStream: attachMediaStream,
- reattachMediaStream: reattachMediaStream,
- webrtcDetectedBrowser: webrtcDetectedBrowser,
- webrtcDetectedVersion: webrtcDetectedVersion,
- webrtcMinimumVersion: webrtcMinimumVersion,
- webrtcTesting: webrtcTesting,
- webrtcUtils: webrtcUtils
- //requestUserMedia: not exposed on purpose.
- //trace: not exposed on purpose.
- };
- });
-}
+},{"./lib/get-hashes":43,"create-hash":23,"create-hmac":26}],43:[function(require,module,exports){
+module.exports = function () {
+ return ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'];
+};
-},{}],84:[function(require,module,exports){
-arguments[4][53][0].apply(exports,arguments)
-},{"dup":53}],85:[function(require,module,exports){
-var util = require('util');
-var each = require('lodash.foreach');
-var pluck = require('lodash.pluck');
-var SJJ = require('sdp-jingle-json');
-var WildEmitter = require('wildemitter');
-var peerconn = require('traceablepeerconnection');
-var adapter = require('webrtc-adapter-test');
+},{}],44:[function(require,module,exports){
+exports.read = function (buffer, offset, isLE, mLen, nBytes) {
+ var e, m
+ var eLen = nBytes * 8 - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var nBits = -7
+ var i = isLE ? (nBytes - 1) : 0
+ var d = isLE ? -1 : 1
+ var s = buffer[offset + i]
-function PeerConnection(config, constraints) {
- var self = this;
- var item;
- WildEmitter.call(this);
+ i += d
- config = config || {};
- config.iceServers = config.iceServers || [];
+ e = s & ((1 << (-nBits)) - 1)
+ s >>= (-nBits)
+ nBits += eLen
+ for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
- // make sure this only gets enabled in Google Chrome
- // EXPERIMENTAL FLAG, might get removed without notice
- this.enableChromeNativeSimulcast = false;
- if (constraints && constraints.optional &&
- adapter.webrtcDetectedBrowser === 'chrome' &&
- navigator.appVersion.match(/Chromium\//) === null) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.enableChromeNativeSimulcast) {
- self.enableChromeNativeSimulcast = true;
- }
- });
- }
+ m = e & ((1 << (-nBits)) - 1)
+ e >>= (-nBits)
+ nBits += mLen
+ for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
- // EXPERIMENTAL FLAG, might get removed without notice
- this.enableMultiStreamHacks = false;
- if (constraints && constraints.optional &&
- adapter.webrtcDetectedBrowser === 'chrome') {
- constraints.optional.forEach(function (constraint) {
- if (constraint.enableMultiStreamHacks) {
- self.enableMultiStreamHacks = true;
- }
- });
- }
- // EXPERIMENTAL FLAG, might get removed without notice
- this.restrictBandwidth = 0;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetRestrictBandwidth) {
- self.restrictBandwidth = constraint.andyetRestrictBandwidth;
- }
- });
- }
+ if (e === 0) {
+ e = 1 - eBias
+ } else if (e === eMax) {
+ return m ? NaN : ((s ? -1 : 1) * Infinity)
+ } else {
+ m = m + Math.pow(2, mLen)
+ e = e - eBias
+ }
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+}
- // EXPERIMENTAL FLAG, might get removed without notice
- // bundle up ice candidates, only works for jingle mode
- // number > 0 is the delay to wait for additional candidates
- // ~20ms seems good
- this.batchIceCandidates = 0;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetBatchIce) {
- self.batchIceCandidates = constraint.andyetBatchIce;
- }
- });
- }
- this.batchedIceCandidates = [];
+exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
+ var e, m, c
+ var eLen = nBytes * 8 - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
+ var i = isLE ? 0 : (nBytes - 1)
+ var d = isLE ? 1 : -1
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
- // EXPERIMENTAL FLAG, might get removed without notice
- // this attemps to strip out candidates with an already known foundation
- // and type -- i.e. those which are gathered via the same TURN server
- // but different transports (TURN udp, tcp and tls respectively)
- if (constraints && constraints.optional && adapter.webrtcDetectedBrowser === 'chrome') {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetFasterICE) {
- self.eliminateDuplicateCandidates = constraint.andyetFasterICE;
- }
- });
+ value = Math.abs(value)
+
+ if (isNaN(value) || value === Infinity) {
+ m = isNaN(value) ? 1 : 0
+ e = eMax
+ } else {
+ e = Math.floor(Math.log(value) / Math.LN2)
+ if (value * (c = Math.pow(2, -e)) < 1) {
+ e--
+ c *= 2
}
- // EXPERIMENTAL FLAG, might get removed without notice
- // when using a server such as the jitsi videobridge we don't need to signal
- // our candidates
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetDontSignalCandidates) {
- self.dontSignalCandidates = constraint.andyetDontSignalCandidates;
- }
- });
+ if (e + eBias >= 1) {
+ value += rt / c
+ } else {
+ value += rt * Math.pow(2, 1 - eBias)
}
-
-
- // EXPERIMENTAL FLAG, might get removed without notice
- this.assumeSetLocalSuccess = false;
- if (constraints && constraints.optional) {
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetAssumeSetLocalSuccess) {
- self.assumeSetLocalSuccess = constraint.andyetAssumeSetLocalSuccess;
- }
- });
+ if (value * c >= 2) {
+ e++
+ c /= 2
}
- // EXPERIMENTAL FLAG, might get removed without notice
- // working around https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
- // pass in a timeout for this
- if (adapter.webrtcDetectedBrowser === 'firefox') {
- if (constraints && constraints.optional) {
- this.wtFirefox = 0;
- constraints.optional.forEach(function (constraint) {
- if (constraint.andyetFirefoxMakesMeSad) {
- self.wtFirefox = constraint.andyetFirefoxMakesMeSad;
- if (self.wtFirefox > 0) {
- self.firefoxcandidatebuffer = [];
- }
- }
- });
- }
+ if (e + eBias >= eMax) {
+ m = 0
+ e = eMax
+ } else if (e + eBias >= 1) {
+ m = (value * c - 1) * Math.pow(2, mLen)
+ e = e + eBias
+ } else {
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
+ e = 0
}
+ }
+ for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
- this.pc = new peerconn(config, constraints);
+ e = (e << mLen) | m
+ eLen += mLen
+ for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
- this.getLocalStreams = this.pc.getLocalStreams.bind(this.pc);
- this.getRemoteStreams = this.pc.getRemoteStreams.bind(this.pc);
- this.addStream = this.pc.addStream.bind(this.pc);
- this.removeStream = this.pc.removeStream.bind(this.pc);
+ buffer[offset + i - d] |= s * 128
+}
- // proxy events
- this.pc.on('*', function () {
- self.emit.apply(self, arguments);
+},{}],45:[function(require,module,exports){
+if (typeof Object.create === 'function') {
+ // implementation from standard node.js 'util' module
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
});
+ };
+} else {
+ // old school shim for old browsers
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ var TempCtor = function () {}
+ TempCtor.prototype = superCtor.prototype
+ ctor.prototype = new TempCtor()
+ ctor.prototype.constructor = ctor
+ }
+}
- // proxy some events directly
- this.pc.onremovestream = this.emit.bind(this, 'removeStream');
- this.pc.onaddstream = this.emit.bind(this, 'addStream');
- this.pc.onnegotiationneeded = this.emit.bind(this, 'negotiationNeeded');
- this.pc.oniceconnectionstatechange = this.emit.bind(this, 'iceConnectionStateChange');
- this.pc.onsignalingstatechange = this.emit.bind(this, 'signalingStateChange');
-
- // handle ice candidate and data channel events
- this.pc.onicecandidate = this._onIce.bind(this);
- this.pc.ondatachannel = this._onDataChannel.bind(this);
-
- this.localDescription = {
- contents: []
- };
- this.remoteDescription = {
- contents: []
- };
-
- this.config = {
- debug: false,
- ice: {},
- sid: '',
- isInitiator: true,
- sdpSessionID: Date.now(),
- useJingle: false
- };
+},{}],46:[function(require,module,exports){
+module.exports = intersect;
- // apply our config
- for (item in config) {
- this.config[item] = config[item];
- }
+function intersect (a, b) {
+ var res = [];
+ for (var i = 0; i < a.length; i++) {
+ if (indexOf(b, a[i]) > -1) res.push(a[i]);
+ }
+ return res;
+}
- if (this.config.debug) {
- this.on('*', function () {
- var logger = config.logger || console;
- logger.log('PeerConnection event:', arguments);
- });
- }
- this.hadLocalStunCandidate = false;
- this.hadRemoteStunCandidate = false;
- this.hadLocalRelayCandidate = false;
- this.hadRemoteRelayCandidate = false;
+intersect.big = function(a, b) {
+ var ret = [];
+ var temp = {};
+
+ for (var i = 0; i < b.length; i++) {
+ temp[b[i]] = true;
+ }
+ for (var i = 0; i < a.length; i++) {
+ if (temp[a[i]]) ret.push(a[i]);
+ }
+
+ return ret;
+}
- this.hadLocalIPv6Candidate = false;
- this.hadRemoteIPv6Candidate = false;
+function indexOf(arr, el) {
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i] === el) return i;
+ }
+ return -1;
+}
- // keeping references for all our data channels
- // so they dont get garbage collected
- // can be removed once the following bugs have been fixed
- // https://crbug.com/405545
- // https://bugzilla.mozilla.org/show_bug.cgi?id=964092
- // to be filed for opera
- this._remoteDataChannels = [];
- this._localDataChannels = [];
+},{}],47:[function(require,module,exports){
+/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
- this._candidateBuffer = [];
+// The _isBuffer check is for Safari 5-7 support, because it's missing
+// Object.prototype.constructor. Remove this eventually
+module.exports = function (obj) {
+ return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
}
-util.inherits(PeerConnection, WildEmitter);
+function isBuffer (obj) {
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
+}
-Object.defineProperty(PeerConnection.prototype, 'signalingState', {
- get: function () {
- return this.pc.signalingState;
- }
-});
-Object.defineProperty(PeerConnection.prototype, 'iceConnectionState', {
- get: function () {
- return this.pc.iceConnectionState;
- }
-});
+// For Node v0.10 support. Remove this eventually.
+function isSlowBuffer (obj) {
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
+}
-PeerConnection.prototype._role = function () {
- return this.isInitiator ? 'initiator' : 'responder';
-};
+},{}],48:[function(require,module,exports){
+var toString = {}.toString;
-// Add a stream to the peer connection object
-PeerConnection.prototype.addStream = function (stream) {
- this.localStream = stream;
- this.pc.addStream(stream);
+module.exports = Array.isArray || function (arr) {
+ return toString.call(arr) == '[object Array]';
};
-// helper function to check if a remote candidate is a stun/relay
-// candidate or an ipv6 candidate
-PeerConnection.prototype._checkLocalCandidate = function (candidate) {
- var cand = SJJ.toCandidateJSON(candidate);
- if (cand.type == 'srflx') {
- this.hadLocalStunCandidate = true;
- } else if (cand.type == 'relay') {
- this.hadLocalRelayCandidate = true;
- }
- if (cand.ip.indexOf(':') != -1) {
- this.hadLocalIPv6Candidate = true;
- }
-};
+},{}],49:[function(require,module,exports){
+var util = require('util');
+var extend = require('extend-object');
+var BaseSession = require('jingle-session');
+var RTCPeerConnection = require('rtcpeerconnection');
+var FileTransfer = require('filetransfer/hashed');
-// helper function to check if a remote candidate is a stun/relay
-// candidate or an ipv6 candidate
-PeerConnection.prototype._checkRemoteCandidate = function (candidate) {
- var cand = SJJ.toCandidateJSON(candidate);
- if (cand.type == 'srflx') {
- this.hadRemoteStunCandidate = true;
- } else if (cand.type == 'relay') {
- this.hadRemoteRelayCandidate = true;
- }
- if (cand.ip.indexOf(':') != -1) {
- this.hadRemoteIPv6Candidate = true;
- }
-};
+function FileTransferSession(opts) {
+ BaseSession.call(this, opts);
-// Init and add ice candidate object with correct constructor
-PeerConnection.prototype.processIce = function (update, cb) {
- cb = cb || function () {};
- var self = this;
+ this.pc = new RTCPeerConnection({
+ iceServers: opts.iceServers || [],
+ useJingle: true
+ }, opts.constraints || {});
- // ignore any added ice candidates to avoid errors. why does the
- // spec not do this?
- if (this.pc.signalingState === 'closed') return cb();
+ this.pc.on('ice', this.onIceCandidate.bind(this));
+ this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
+ this.pc.on('addChannel', this.onChannelAdded.bind(this));
- if (update.contents || (update.jingle && update.jingle.contents)) {
- var contentNames = pluck(this.remoteDescription.contents, 'name');
- var contents = update.contents || update.jingle.contents;
+ this.sender = null;
+ this.receiver = null;
+}
- contents.forEach(function (content) {
- var transport = content.transport || {};
- var candidates = transport.candidates || [];
- var mline = contentNames.indexOf(content.name);
- var mid = content.name;
- candidates.forEach(
- function (candidate) {
- var iceCandidate = SJJ.toCandidateSDP(candidate) + '\r\n';
- self.pc.addIceCandidate(
- new RTCIceCandidate({
- candidate: iceCandidate,
- sdpMLineIndex: mline,
- sdpMid: mid
- }), function () {
- // well, this success callback is pretty meaningless
- },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(iceCandidate);
- });
- });
- } else {
- // working around https://code.google.com/p/webrtc/issues/detail?id=3669
- if (update.candidate && update.candidate.candidate.indexOf('a=') !== 0) {
- update.candidate.candidate = 'a=' + update.candidate.candidate;
- }
+util.inherits(FileTransferSession, BaseSession);
- if (this.wtFirefox && this.firefoxcandidatebuffer !== null) {
- // we cant add this yet due to https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
- if (this.pc.localDescription && this.pc.localDescription.type === 'offer') {
- this.firefoxcandidatebuffer.push(update.candidate);
- return cb();
- }
- }
- self.pc.addIceCandidate(
- new RTCIceCandidate(update.candidate),
- function () { },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(update.candidate.candidate);
- }
- cb();
-};
+FileTransferSession.prototype = extend(FileTransferSession.prototype, {
-// Generate and emit an offer with the given constraints
-PeerConnection.prototype.offer = function (constraints, cb) {
- var self = this;
- var hasConstraints = arguments.length === 2;
- var mediaConstraints = hasConstraints && constraints ? constraints : {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: true
- }
- };
- cb = hasConstraints ? cb : constraints;
- cb = cb || function () {};
+ // ----------------------------------------------------------------
+ // Session control methods
+ // ----------------------------------------------------------------
- if (this.pc.signalingState === 'closed') return cb('Already closed');
+ start: function (file) {
+ var self = this;
+ this.state = 'pending';
- // Actually generate the offer
- this.pc.createOffer(
- function (offer) {
- // does not work for jingle, but jingle.js doesn't need
- // this hack...
- var expandedOffer = {
- type: 'offer',
- sdp: offer.sdp
- };
- if (self.assumeSetLocalSuccess) {
- self.emit('offer', expandedOffer);
- cb(null, expandedOffer);
- }
- self._candidateBuffer = [];
- self.pc.setLocalDescription(offer,
- function () {
- var jingle;
- if (self.config.useJingle) {
- jingle = SJJ.toSessionJSON(offer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- jingle.sid = self.config.sid;
- self.localDescription = jingle;
+ this.pc.isInitiator = true;
- // Save ICE credentials
- each(jingle.contents, function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.config.ice[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
+ this.sender = new FileTransfer.Sender();
+ this.sender.on('progress', function (sent, size) {
+ self._log('info', 'Send progress ' + sent + '/' + size);
+ });
+ this.sender.on('sentFile', function (meta) {
+ self._log('info', 'Sent file', meta.name);
- expandedOffer.jingle = jingle;
- }
- expandedOffer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkLocalCandidate(line);
- }
- });
+ var content = self.pc.localDescription.contents[0];
+ delete content.transport;
- if (!self.assumeSetLocalSuccess) {
- self.emit('offer', expandedOffer);
- cb(null, expandedOffer);
+ content.application = {
+ applicationType: 'filetransfer',
+ offer: {
+ hash: {
+ algo: meta.algo,
+ value: meta.hash
}
- },
- function (err) {
- self.emit('error', err);
- cb(err);
}
- );
- },
- function (err) {
- self.emit('error', err);
- cb(err);
- },
- mediaConstraints
- );
-};
-
+ };
-// Process an incoming offer so that ICE may proceed before deciding
-// to answer the request.
-PeerConnection.prototype.handleOffer = function (offer, cb) {
- cb = cb || function () {};
- var self = this;
- offer.type = 'offer';
- if (offer.jingle) {
- if (this.enableChromeNativeSimulcast) {
- offer.jingle.contents.forEach(function (content) {
- if (content.name === 'video') {
- content.description.googConferenceFlag = true;
- }
- });
- }
- if (this.enableMultiStreamHacks) {
- // add a mixed video stream as first stream
- offer.jingle.contents.forEach(function (content) {
- if (content.name === 'video') {
- var sources = content.description.sources || [];
- if (sources.length === 0 || sources[0].ssrc !== "3735928559") {
- sources.unshift({
- ssrc: "3735928559", // 0xdeadbeef
- parameters: [
- {
- key: "cname",
- value: "deadbeef"
- },
- {
- key: "msid",
- value: "mixyourfecintothis please"
- }
- ]
- });
- content.description.sources = sources;
- }
- }
+ self.send('description-info', {
+ contents: [content]
});
- }
- if (self.restrictBandwidth > 0) {
- if (offer.jingle.contents.length >= 2 && offer.jingle.contents[1].name === 'video') {
- var content = offer.jingle.contents[1];
- var hasBw = content.description && content.description.bandwidth;
- if (!hasBw) {
- offer.jingle.contents[1].description.bandwidth = { type: 'AS', bandwidth: self.restrictBandwidth.toString() };
- offer.sdp = SJJ.toSessionSDP(offer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- }
- }
- offer.sdp = SJJ.toSessionSDP(offer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'incoming'
+ self.emit('sentFile', self, meta);
});
- self.remoteDescription = offer.jingle;
- }
- offer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkRemoteCandidate(line);
- }
- });
- self.pc.setRemoteDescription(new RTCSessionDescription(offer),
- function () {
- cb();
- },
- cb
- );
-};
-// Answer an offer with audio only
-PeerConnection.prototype.answerAudioOnly = function (cb) {
- var mediaConstraints = {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: false
- }
+ var sendChannel = this.pc.createDataChannel('filetransfer');
+ sendChannel.onopen = function () {
+ self.sender.send(file, sendChannel);
};
- this._answer(mediaConstraints, cb);
-};
-// Answer an offer without offering to recieve
-PeerConnection.prototype.answerBroadcastOnly = function (cb) {
- var mediaConstraints = {
+ var constraints = {
mandatory: {
OfferToReceiveAudio: false,
OfferToReceiveVideo: false
}
};
- this._answer(mediaConstraints, cb);
-};
-// Answer an offer with given constraints default is audio/video
-PeerConnection.prototype.answer = function (constraints, cb) {
- var hasConstraints = arguments.length === 2;
- var callback = hasConstraints ? cb : constraints;
- var mediaConstraints = hasConstraints && constraints ? constraints : {
- mandatory: {
- OfferToReceiveAudio: true,
- OfferToReceiveVideo: true
+ this.pc.offer(constraints, function (err, offer) {
+ if (err) {
+ self._log('error', 'Could not create WebRTC offer', err);
+ return self.end('failed-application', true);
}
- };
- this._answer(mediaConstraints, callback);
-};
+ offer.jingle.contents[0].application = {
+ applicationType: 'filetransfer',
+ offer: {
+ date: file.lastModifiedDate,
+ name: file.name,
+ size: file.size,
+ hash: {
+ algo: 'sha-1',
+ value: ''
+ }
+ }
+ };
-// Process an answer
-PeerConnection.prototype.handleAnswer = function (answer, cb) {
- cb = cb || function () {};
- var self = this;
- if (answer.jingle) {
- answer.sdp = SJJ.toSessionSDP(answer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'incoming'
+ self.send('session-initiate', offer.jingle);
});
- self.remoteDescription = answer.jingle;
- }
- answer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkRemoteCandidate(line);
- }
- });
- self.pc.setRemoteDescription(
- new RTCSessionDescription(answer),
- function () {
- if (self.wtFirefox) {
- window.setTimeout(function () {
- self.firefoxcandidatebuffer.forEach(function (candidate) {
- // add candidates later
- self.pc.addIceCandidate(
- new RTCIceCandidate(candidate),
- function () { },
- function (err) {
- self.emit('error', err);
- }
- );
- self._checkRemoteCandidate(candidate.candidate);
- });
- self.firefoxcandidatebuffer = null;
- }, self.wtFirefox);
- }
- cb(null);
- },
- cb
- );
-};
+ },
-// Close the peer connection
-PeerConnection.prototype.close = function () {
- this.pc.close();
+ accept: function () {
+ var self = this;
- this._localDataChannels = [];
- this._remoteDataChannels = [];
+ this._log('info', 'Accepted incoming session');
- this.emit('close');
-};
+ this.state = 'active';
-// Internal code sharing for various types of answer methods
-PeerConnection.prototype._answer = function (constraints, cb) {
- cb = cb || function () {};
- var self = this;
- if (!this.pc.remoteDescription) {
- // the old API is used, call handleOffer
- throw new Error('remoteDescription not set');
- }
+ this.pc.answer(function (err, answer) {
+ if (err) {
+ self._log('error', 'Could not create WebRTC answer', err);
+ return self.end('failed-application');
+ }
+ self.send('session-accept', answer.jingle);
+ });
+ },
- if (this.pc.signalingState === 'closed') return cb('Already closed');
+ end: function (reason, silent) {
+ this.pc.close();
+ BaseSession.prototype.end.call(this, reason, silent);
+ },
- self.pc.createAnswer(
- function (answer) {
- var sim = [];
- if (self.enableChromeNativeSimulcast) {
- // native simulcast part 1: add another SSRC
- answer.jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- if (answer.jingle.contents.length >= 2 && answer.jingle.contents[1].name === 'video') {
- var groups = answer.jingle.contents[1].description.sourceGroups || [];
- var hasSim = false;
- groups.forEach(function (group) {
- if (group.semantics == 'SIM') hasSim = true;
- });
- if (!hasSim &&
- answer.jingle.contents[1].description.sources.length) {
- var newssrc = JSON.parse(JSON.stringify(answer.jingle.contents[1].description.sources[0]));
- newssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
- answer.jingle.contents[1].description.sources.push(newssrc);
+ maybeReceivedFile: function () {
+ if (!this.receiver.metadata.hash.value) {
+ // unknown hash, file transfer not completed
+ } else if (this.receiver.metadata.hash.value === this.receiver.metadata.actualhash) {
+ this._log('info', 'File hash matches');
+ this.emit('receivedFile', this, this.receivedFile, this.receiver.metadata);
+ this.end('success');
+ } else {
+ this._log('error', 'File hash does not match');
+ this.end('media-error');
+ }
+ },
- sim.push(answer.jingle.contents[1].description.sources[0].ssrc);
- sim.push(newssrc.ssrc);
- groups.push({
- semantics: 'SIM',
- sources: sim
- });
+ // ----------------------------------------------------------------
+ // ICE action handers
+ // ----------------------------------------------------------------
- // also create an RTX one for the SIM one
- var rtxssrc = JSON.parse(JSON.stringify(newssrc));
- rtxssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
- answer.jingle.contents[1].description.sources.push(rtxssrc);
- groups.push({
- semantics: 'FID',
- sources: [newssrc.ssrc, rtxssrc.ssrc]
- });
+ onIceCandidate: function (candidate) {
+ this._log('info', 'Discovered new ICE candidate', candidate.jingle);
+ this.send('transport-info', candidate.jingle);
+ },
- answer.jingle.contents[1].description.sourceGroups = groups;
- answer.sdp = SJJ.toSessionSDP(answer.jingle, {
- sid: self.config.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- }
- }
- var expandedAnswer = {
- type: 'answer',
- sdp: answer.sdp
- };
- if (self.assumeSetLocalSuccess) {
- // not safe to do when doing simulcast mangling
- self.emit('answer', expandedAnswer);
- cb(null, expandedAnswer);
- }
- self._candidateBuffer = [];
- self.pc.setLocalDescription(answer,
- function () {
- if (self.config.useJingle) {
- var jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- jingle.sid = self.config.sid;
- self.localDescription = jingle;
- expandedAnswer.jingle = jingle;
- }
- if (self.enableChromeNativeSimulcast) {
- // native simulcast part 2:
- // signal multiple tracks to the receiver
- // for anything in the SIM group
- if (!expandedAnswer.jingle) {
- expandedAnswer.jingle = SJJ.toSessionJSON(answer.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- }
- expandedAnswer.jingle.contents[1].description.sources.forEach(function (source, idx) {
- // the floor idx/2 is a hack that relies on a particular order
- // of groups, alternating between sim and rtx
- source.parameters = source.parameters.map(function (parameter) {
- if (parameter.key === 'msid') {
- parameter.value += '-' + Math.floor(idx / 2);
- }
- return parameter;
- });
- });
- expandedAnswer.sdp = SJJ.toSessionSDP(expandedAnswer.jingle, {
- sid: self.sdpSessionID,
- role: self._role(),
- direction: 'outgoing'
- });
- }
- expandedAnswer.sdp.split('\r\n').forEach(function (line) {
- if (line.indexOf('a=candidate:') === 0) {
- self._checkLocalCandidate(line);
- }
- });
- if (!self.assumeSetLocalSuccess) {
- self.emit('answer', expandedAnswer);
- cb(null, expandedAnswer);
- }
- },
- function (err) {
- self.emit('error', err);
- cb(err);
+ onIceStateChange: function () {
+ switch (this.pc.iceConnectionState) {
+ case 'checking':
+ this.connectionState = 'connecting';
+ break;
+ case 'completed':
+ case 'connected':
+ this.connectionState = 'connected';
+ break;
+ case 'disconnected':
+ if (this.pc.signalingState === 'stable') {
+ this.connectionState = 'interrupted';
+ } else {
+ this.connectionState = 'disconnected';
}
- );
- },
- function (err) {
- self.emit('error', err);
- cb(err);
- },
- constraints
- );
-};
+ break;
+ case 'failed':
+ this.connectionState = 'failed';
+ this.end('failed-transport');
+ break;
+ case 'closed':
+ this.connectionState = 'disconnected';
+ break;
+ }
+ },
-// Internal method for emitting ice candidates on our peer object
-PeerConnection.prototype._onIce = function (event) {
- var self = this;
- if (event.candidate) {
- if (this.dontSignalCandidates) return;
- var ice = event.candidate;
+ onChannelAdded: function (channel) {
+ this.receiver.receive(null, channel);
+ },
- var expandedCandidate = {
- candidate: {
- candidate: ice.candidate,
- sdpMid: ice.sdpMid,
- sdpMLineIndex: ice.sdpMLineIndex
- }
- };
- this._checkLocalCandidate(ice.candidate);
+ // ----------------------------------------------------------------
+ // Jingle action handers
+ // ----------------------------------------------------------------
- var cand = SJJ.toCandidateJSON(ice.candidate);
+ onSessionInitiate: function (changes, cb) {
+ var self = this;
- var already;
- var idx;
- if (this.eliminateDuplicateCandidates && cand.type === 'relay') {
- // drop candidates with same foundation, component
- // take local type pref into account so we don't ignore udp
- // ones when we know about a TCP one. unlikely but...
- already = this._candidateBuffer.filter(
- function (c) {
- return c.type === 'relay';
- }).map(function (c) {
- return c.foundation + ':' + c.component;
- }
- );
- idx = already.indexOf(cand.foundation + ':' + cand.component);
- // remember: local type pref of udp is 0, tcp 1, tls 2
- if (idx > -1 && ((cand.priority >> 24) >= (already[idx].priority >> 24))) {
- // drop it, same foundation with higher (worse) type pref
- return;
- }
- }
- if (this.config.bundlePolicy === 'max-bundle') {
- // drop candidates which are duplicate for audio/video/data
- // duplicate means same host/port but different sdpMid
- already = this._candidateBuffer.filter(
- function (c) {
- return cand.type === c.type;
- }).map(function (cand) {
- return cand.address + ':' + cand.port;
- }
- );
- idx = already.indexOf(cand.address + ':' + cand.port);
- if (idx > -1) return;
- }
- // also drop rtcp candidates since we know the peer supports RTCP-MUX
- // this is a workaround until browsers implement this natively
- if (this.config.rtcpMuxPolicy === 'require' && cand.component === '2') {
- return;
- }
- this._candidateBuffer.push(cand);
+ this._log('info', 'Initiating incoming session');
- if (self.config.useJingle) {
- if (!ice.sdpMid) { // firefox doesn't set this
- if (self.pc.remoteDescription && self.pc.remoteDescription.type === 'offer') {
- // preserve name from remote
- ice.sdpMid = self.remoteDescription.contents[ice.sdpMLineIndex].name;
- } else {
- ice.sdpMid = self.localDescription.contents[ice.sdpMLineIndex].name;
- }
- }
- if (!self.config.ice[ice.sdpMid]) {
- var jingle = SJJ.toSessionJSON(self.pc.localDescription.sdp, {
- role: self._role(),
- direction: 'outgoing'
- });
- each(jingle.contents, function (content) {
- var transport = content.transport || {};
- if (transport.ufrag) {
- self.config.ice[content.name] = {
- ufrag: transport.ufrag,
- pwd: transport.pwd
- };
- }
- });
- }
- expandedCandidate.jingle = {
- contents: [{
- name: ice.sdpMid,
- creator: self._role(),
- transport: {
- transType: 'iceUdp',
- ufrag: self.config.ice[ice.sdpMid].ufrag,
- pwd: self.config.ice[ice.sdpMid].pwd,
- candidates: [
- cand
- ]
- }
- }]
- };
- if (self.batchIceCandidates > 0) {
- if (self.batchedIceCandidates.length === 0) {
- window.setTimeout(function () {
- var contents = {};
- self.batchedIceCandidates.forEach(function (content) {
- content = content.contents[0];
- if (!contents[content.name]) contents[content.name] = content;
- contents[content.name].transport.candidates.push(content.transport.candidates[0]);
- });
- var newCand = {
- jingle: {
- contents: []
- }
- };
- Object.keys(contents).forEach(function (name) {
- newCand.jingle.contents.push(contents[name]);
- });
- self.batchedIceCandidates = [];
- self.emit('ice', newCand);
- }, self.batchIceCandidates);
- }
- self.batchedIceCandidates.push(expandedCandidate.jingle);
- return;
- }
+ this.state = 'pending';
- }
- this.emit('ice', expandedCandidate);
- } else {
- this.emit('endOfCandidates');
- }
-};
+ this.pc.isInitiator = false;
-// Internal method for processing a new data channel being added by the
-// other peer.
-PeerConnection.prototype._onDataChannel = function (event) {
- // make sure we keep a reference so this doesn't get garbage collected
- var channel = event.channel;
- this._remoteDataChannels.push(channel);
+ var desc = changes.contents[0].application;
- this.emit('addChannel', channel);
-};
-// Create a data channel spec reference:
-// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannelInit
-PeerConnection.prototype.createDataChannel = function (name, opts) {
- var channel = this.pc.createDataChannel(name, opts);
+ this.receiver = new FileTransfer.Receiver({hash: desc.offer.hash.algo});
+ this.receiver.on('progress', function (received, size) {
+ self._log('info', 'Receive progress ' + received + '/' + size);
+ });
+ this.receiver.on('receivedFile', function (file) {
+ self.receivedFile = file;
+ self.maybeReceivedFile();
+ });
+ this.receiver.metadata = desc.offer;
- // make sure we keep a reference so this doesn't get garbage collected
- this._localDataChannels.push(channel);
+ changes.contents[0].application = {
+ applicationType: 'datachannel'
+ };
- return channel;
-};
+ this.pc.handleOffer({
+ type: 'offer',
+ jingle: changes
+ }, function (err) {
+ if (err) {
+ self._log('error', 'Could not create WebRTC answer');
+ return cb({condition: 'general-error'});
+ }
+ cb();
+ });
+ },
-// a wrapper around getStats which hides the differences (where possible)
-// TODO: remove in favor of adapter.js shim
-PeerConnection.prototype.getStats = function (cb) {
- if (adapter.webrtcDetectedBrowser === 'firefox') {
- this.pc.getStats(
- function (res) {
- var items = [];
- for (var result in res) {
- if (typeof res[result] === 'object') {
- items.push(res[result]);
- }
- }
- cb(null, items);
- },
- cb
- );
- } else {
- this.pc.getStats(function (res) {
- var items = [];
- res.result().forEach(function (result) {
- var item = {};
- result.names().forEach(function (name) {
- item[name] = result.stat(name);
- });
- item.id = result.id;
- item.type = result.type;
- item.timestamp = result.timestamp;
- items.push(item);
- });
- cb(null, items);
+ onSessionAccept: function (changes, cb) {
+ var self = this;
+
+ this.state = 'active';
+
+ changes.contents[0].application = {
+ applicationType: 'datachannel'
+ };
+
+ this.pc.handleAnswer({
+ type: 'answer',
+ jingle: changes
+ }, function (err) {
+ if (err) {
+ self._log('error', 'Could not process WebRTC answer');
+ return cb({condition: 'general-error'});
+ }
+ self.emit('accepted', self);
+ cb();
+ });
+ },
+
+ onSessionTerminate: function (changes, cb) {
+ this._log('info', 'Terminating session');
+ this.pc.close();
+ BaseSession.prototype.end.call(this, changes.reason, true);
+ cb();
+ },
+
+ onDescriptionInfo: function (info, cb) {
+ var hash = info.contents[0].application.offer.hash;
+ this.receiver.metadata.hash = hash;
+ if (this.receiver.metadata.actualhash) {
+ this.maybeReceivedFile();
+ }
+ cb();
+ },
+
+ onTransportInfo: function (changes, cb) {
+ this.pc.processIce(changes, function () {
+ cb();
});
}
-};
+});
-module.exports = PeerConnection;
-},{"lodash.foreach":54,"lodash.pluck":62,"sdp-jingle-json":77,"traceablepeerconnection":82,"util":28,"webrtc-adapter-test":83,"wildemitter":84}],86:[function(require,module,exports){
+module.exports = FileTransferSession;
+
+},{"extend-object":28,"filetransfer/hashed":30,"jingle-session":51,"rtcpeerconnection":167,"util":197}],50:[function(require,module,exports){
var util = require('util');
var extend = require('extend-object');
var BaseSession = require('jingle-session');
@@ -13299,25 +6123,25 @@ var RTCPeerConnection = require('rtcpeerconnection');
function filterContentSources(content, stream) {
- if (content.description.descType !== 'rtp') {
+ if (content.application.applicationType !== 'rtp') {
return;
}
delete content.transport;
- delete content.description.payloads;
- delete content.description.headerExtensions;
- content.description.mux = false;
+ delete content.application.payloads;
+ delete content.application.headerExtensions;
+ content.application.mux = false;
- if (content.description.sources) {
- content.description.sources = content.description.sources.filter(function (source) {
+ if (content.application.sources) {
+ content.application.sources = content.application.sources.filter(function (source) {
return stream.id === source.parameters[1].value.split(' ')[0];
});
}
// remove source groups not related to this stream
- if (content.description.sourceGroups) {
- content.description.sourceGroups = content.description.sourceGroups.filter(function (group) {
+ if (content.application.sourceGroups) {
+ content.application.sourceGroups = content.application.sourceGroups.filter(function (group) {
var found = false;
- for (var i = 0; i < content.description.sources.length; i++) {
- if (content.description.sources[i].ssrc === group.sources[0]) {
+ for (var i = 0; i < content.application.sources.length; i++) {
+ if (content.application.sources[i].ssrc === group.sources[0]) {
found = true;
break;
}
@@ -13329,7 +6153,7 @@ function filterContentSources(content, stream) {
function filterUnusedLabels(content) {
// Remove mslabel and label ssrc-specific attributes
- var sources = content.description.sources || [];
+ var sources = content.application.sources || [];
sources.forEach(function (source) {
source.parameters = source.parameters.filter(function (parameter) {
return !(parameter.key === 'mslabel' || parameter.key === 'label');
@@ -13346,11 +6170,12 @@ function MediaSession(opts) {
useJingle: true
}, opts.constraints || {});
- this.pc.on('ice', this.onIceCandidate.bind(this));
- this.pc.on('endOfCandidates', this.onIceEndOfCandidates.bind(this));
+ this.pc.on('ice', this.onIceCandidate.bind(this, opts));
+ this.pc.on('endOfCandidates', this.onIceEndOfCandidates.bind(this, opts));
this.pc.on('iceConnectionStateChange', this.onIceStateChange.bind(this));
this.pc.on('addStream', this.onAddStream.bind(this));
this.pc.on('removeStream', this.onRemoveStream.bind(this));
+ this.pc.on('addChannel', this.onAddChannel.bind(this));
if (opts.stream) {
this.addStream(opts.stream);
@@ -13409,9 +6234,9 @@ MediaSession.prototype = extend(MediaSession.prototype, {
// https://code.google.com/p/webrtc/issues/detail?id=1553
if (offerOptions && offerOptions.mandatory) {
offer.jingle.contents.forEach(function (content) {
- var mediaType = content.description.media;
+ var mediaType = content.application.media;
- if (!content.description || content.description.descType !== 'rtp') {
+ if (!content.description || content.application.applicationType !== 'rtp') {
return;
}
@@ -13433,16 +6258,29 @@ MediaSession.prototype = extend(MediaSession.prototype, {
});
},
- accept: function (next) {
+ accept: function (opts, next) {
var self = this;
+ // support calling with accept(next) or accept(opts, next)
+ if (arguments.length === 1 && typeof opts === 'function') {
+ next = opts;
+ opts = {};
+ }
next = next || function () {};
+ opts = opts || {};
+
+ var constraints = opts.constraints || {
+ mandatory: {
+ OfferToReceiveAudio: true,
+ OfferToReceiveVideo: true
+ }
+ };
this._log('info', 'Accepted incoming session');
this.state = 'active';
- this.pc.answer(function (err, answer) {
+ this.pc.answer(constraints, function (err, answer) {
if (err) {
self._log('error', 'Could not create WebRTC answer', err);
return self.end('failed-application');
@@ -13534,7 +6372,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
filterContentSources(content, stream);
});
answer.jingle.contents = answer.jingle.contents.filter(function (content) {
- return content.description.descType === 'rtp' && content.description.sources && content.description.sources.length;
+ return content.application.applicationType === 'rtp' && content.application.sources && content.application.sources.length;
});
delete answer.jingle.groups;
@@ -13563,7 +6401,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
filterContentSources(content, stream);
});
desc.contents = desc.contents.filter(function (content) {
- return content.description.descType === 'rtp' && content.description.sources && content.description.sources.length;
+ return content.application.applicationType === 'rtp' && content.application.sources && content.application.sources.length;
});
delete desc.groups;
@@ -13600,17 +6438,12 @@ MediaSession.prototype = extend(MediaSession.prototype, {
var desc = this.pc.localDescription;
desc.contents.forEach(function (content) {
delete content.transport;
- delete content.description.payloads;
+ delete content.application.payloads;
});
this.pc.removeStream(oldStream);
this.send('source-remove', desc);
- var audioTracks = oldStream.getAudioTracks();
- if (audioTracks.length) {
- newStream.addTrack(audioTracks[0]);
- }
-
this.pc.addStream(newStream);
this.pc.handleOffer({
type: 'offer',
@@ -13627,7 +6460,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
}
answer.jingle.contents.forEach(function (content) {
delete content.transport;
- delete content.description.payloads;
+ delete content.application.payloads;
});
self.send('source-add', answer.jingle);
cb();
@@ -13639,13 +6472,25 @@ MediaSession.prototype = extend(MediaSession.prototype, {
// ICE action handers
// ----------------------------------------------------------------
- onIceCandidate: function (candidate) {
+ onIceCandidate: function (opts, candidate) {
this._log('info', 'Discovered new ICE candidate', candidate.jingle);
this.send('transport-info', candidate.jingle);
+ if (opts.signalEndOfCandidates) {
+ this.lastCandidate = candidate;
+ }
},
- onIceEndOfCandidates: function () {
+ onIceEndOfCandidates: function (opts) {
this._log('info', 'ICE end of candidates');
+ if (opts.signalEndOfCandidates) {
+ var endOfCandidates = this.lastCandidate.jingle;
+ endOfCandidates.contents[0].transport = {
+ transportType: endOfCandidates.contents[0].transport.transportType,
+ gatheringComplete: true
+ };
+ this.lastCandidate = null;
+ this.send('transport-info', endOfCandidates);
+ }
},
onIceStateChange: function () {
@@ -13789,7 +6634,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
var newDesc = this.pc.remoteDescription;
this.pc.remoteDescription.contents.forEach(function (content, idx) {
- var desc = content.description;
+ var desc = content.application;
var ssrcs = desc.sources || [];
var groups = desc.sourceGroups || [];
@@ -13798,15 +6643,15 @@ MediaSession.prototype = extend(MediaSession.prototype, {
return;
}
- var newContentDesc = newContent.description;
+ var newContentDesc = newContent.application;
var newSSRCs = newContentDesc.sources || [];
ssrcs = ssrcs.concat(newSSRCs);
- newDesc.contents[idx].description.sources = JSON.parse(JSON.stringify(ssrcs));
+ newDesc.contents[idx].application.sources = JSON.parse(JSON.stringify(ssrcs));
var newGroups = newContentDesc.sourceGroups || [];
groups = groups.concat(newGroups);
- newDesc.contents[idx].description.sourceGroups = JSON.parse(JSON.stringify(groups));
+ newDesc.contents[idx].application.sourceGroups = JSON.parse(JSON.stringify(groups));
});
});
@@ -13839,7 +6684,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
var newDesc = this.pc.remoteDescription;
this.pc.remoteDescription.contents.forEach(function (content, idx) {
- var desc = content.description;
+ var desc = content.application;
var ssrcs = desc.sources || [];
var groups = desc.sourceGroups || [];
@@ -13848,7 +6693,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
return;
}
- var newContentDesc = newContent.description;
+ var newContentDesc = newContent.application;
var newSSRCs = newContentDesc.sources || [];
var newGroups = newContentDesc.sourceGroups || [];
@@ -13865,7 +6710,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
}
if (found > -1) {
ssrcs.splice(found, 1);
- newDesc.contents[idx].description.sources = JSON.parse(JSON.stringify(ssrcs));
+ newDesc.contents[idx].application.sources = JSON.parse(JSON.stringify(ssrcs));
}
}
@@ -13890,7 +6735,7 @@ MediaSession.prototype = extend(MediaSession.prototype, {
}
if (found > -1) {
groups.splice(found, 1);
- newDesc.contents[idx].description.sourceGroups = JSON.parse(JSON.stringify(groups));
+ newDesc.contents[idx].application.sourceGroups = JSON.parse(JSON.stringify(groups));
}
}
});
@@ -13916,75 +6761,20 @@ MediaSession.prototype = extend(MediaSession.prototype, {
cb();
});
});
+ },
+
+ // ----------------------------------------------------------------
+ // DataChannels
+ // ----------------------------------------------------------------
+ onAddChannel: function (channel) {
+ this.emit('addChannel', channel);
}
});
module.exports = MediaSession;
-},{"extend-object":30,"jingle-session":118,"rtcpeerconnection":117,"util":28}],87:[function(require,module,exports){
-arguments[4][54][0].apply(exports,arguments)
-},{"dup":54,"lodash._arrayeach":88,"lodash._baseeach":89,"lodash._bindcallback":93,"lodash.isarray":94}],88:[function(require,module,exports){
-arguments[4][55][0].apply(exports,arguments)
-},{"dup":55}],89:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":90}],90:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":91,"lodash.isarguments":92,"lodash.isarray":94}],91:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],92:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],93:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],94:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],95:[function(require,module,exports){
-arguments[4][62][0].apply(exports,arguments)
-},{"dup":62,"lodash._baseget":96,"lodash._topath":97,"lodash.isarray":98,"lodash.map":99}],96:[function(require,module,exports){
-arguments[4][63][0].apply(exports,arguments)
-},{"dup":63}],97:[function(require,module,exports){
-arguments[4][64][0].apply(exports,arguments)
-},{"dup":64,"lodash.isarray":98}],98:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],99:[function(require,module,exports){
-arguments[4][66][0].apply(exports,arguments)
-},{"dup":66,"lodash._arraymap":100,"lodash._basecallback":101,"lodash._baseeach":106,"lodash.isarray":98}],100:[function(require,module,exports){
-arguments[4][67][0].apply(exports,arguments)
-},{"dup":67}],101:[function(require,module,exports){
-arguments[4][68][0].apply(exports,arguments)
-},{"dup":68,"lodash._baseisequal":102,"lodash._bindcallback":104,"lodash.isarray":98,"lodash.pairs":105}],102:[function(require,module,exports){
-arguments[4][69][0].apply(exports,arguments)
-},{"dup":69,"lodash.isarray":98,"lodash.istypedarray":103,"lodash.keys":107}],103:[function(require,module,exports){
-arguments[4][70][0].apply(exports,arguments)
-},{"dup":70}],104:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],105:[function(require,module,exports){
-arguments[4][72][0].apply(exports,arguments)
-},{"dup":72,"lodash.keys":107}],106:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":107}],107:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":108,"lodash.isarguments":109,"lodash.isarray":98}],108:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],109:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],110:[function(require,module,exports){
-arguments[4][77][0].apply(exports,arguments)
-},{"./lib/tojson":113,"./lib/tosdp":114,"dup":77}],111:[function(require,module,exports){
-arguments[4][78][0].apply(exports,arguments)
-},{"dup":78}],112:[function(require,module,exports){
-arguments[4][79][0].apply(exports,arguments)
-},{"dup":79}],113:[function(require,module,exports){
-arguments[4][80][0].apply(exports,arguments)
-},{"./parsers":111,"./senders":112,"dup":80}],114:[function(require,module,exports){
-arguments[4][81][0].apply(exports,arguments)
-},{"./senders":112,"dup":81}],115:[function(require,module,exports){
-arguments[4][82][0].apply(exports,arguments)
-},{"dup":82,"util":28,"webrtc-adapter-test":116,"wildemitter":124}],116:[function(require,module,exports){
-arguments[4][83][0].apply(exports,arguments)
-},{"dup":83}],117:[function(require,module,exports){
-arguments[4][85][0].apply(exports,arguments)
-},{"dup":85,"lodash.foreach":87,"lodash.pluck":95,"sdp-jingle-json":110,"traceablepeerconnection":115,"util":28,"webrtc-adapter-test":116,"wildemitter":124}],118:[function(require,module,exports){
+},{"extend-object":28,"jingle-session":51,"rtcpeerconnection":167,"util":197}],51:[function(require,module,exports){
var util = require('util');
var uuid = require('uuid');
var async = require('async');
@@ -14030,7 +6820,7 @@ function JingleSession(opts) {
// We track the intial pending description types in case
// of the need for a tie-breaker.
- this.pendingDescriptionTypes = opts.descriptionTypes || [];
+ this.pendingApplicationTypes = opts.applicationTypes || [];
this.pendingAction = false;
@@ -14330,8 +7120,8 @@ JingleSession.prototype = extend(JingleSession.prototype, {
module.exports = JingleSession;
-},{"async":119,"extend-object":30,"util":28,"uuid":121,"wildemitter":122}],119:[function(require,module,exports){
-(function (process){
+},{"async":52,"extend-object":28,"util":197,"uuid":199,"wildemitter":211}],52:[function(require,module,exports){
+(function (process,global){
/*!
* async
* https://github.com/caolan/async
@@ -14339,18 +7129,32 @@ module.exports = JingleSession;
* Copyright 2010-2014 Caolan McMahon
* Released under the MIT license
*/
-/*jshint onevar: false, indent:4 */
-/*global setImmediate: false, setTimeout: false, console: false */
(function () {
var async = {};
+ function noop() {}
+ function identity(v) {
+ return v;
+ }
+ function toBool(v) {
+ return !!v;
+ }
+ function notId(v) {
+ return !v;
+ }
// global on the server, window in the browser
- var root, previous_async;
+ var previous_async;
+
+ // Establish the root object, `window` (`self`) in the browser, `global`
+ // on the server, or `this` in some virtual machines. We use `self`
+ // instead of `window` for `WebWorker` support.
+ var root = typeof self === 'object' && self.self === self && self ||
+ typeof global === 'object' && global.global === global && global ||
+ this;
- root = this;
if (root != null) {
- previous_async = root.async;
+ previous_async = root.async;
}
async.noConflict = function () {
@@ -14359,12 +7163,19 @@ module.exports = JingleSession;
};
function only_once(fn) {
- var called = false;
return function() {
- if (called) throw new Error("Callback was already called.");
- called = true;
- fn.apply(root, arguments);
- }
+ if (fn === null) throw new Error("Callback was already called.");
+ fn.apply(this, arguments);
+ fn = null;
+ };
+ }
+
+ function _once(fn) {
+ return function() {
+ if (fn === null) return;
+ fn.apply(this, arguments);
+ fn = null;
+ };
}
//// cross-browser compatiblity functions ////
@@ -14375,37 +7186,66 @@ module.exports = JingleSession;
return _toString.call(obj) === '[object Array]';
};
- var _each = function (arr, iterator) {
- for (var i = 0; i < arr.length; i += 1) {
- iterator(arr[i], i, arr);
- }
+ // Ported from underscore.js isObject
+ var _isObject = function(obj) {
+ var type = typeof obj;
+ return type === 'function' || type === 'object' && !!obj;
};
- var _map = function (arr, iterator) {
- if (arr.map) {
- return arr.map(iterator);
+ function _isArrayLike(arr) {
+ return _isArray(arr) || (
+ // has a positive integer length property
+ typeof arr.length === "number" &&
+ arr.length >= 0 &&
+ arr.length % 1 === 0
+ );
+ }
+
+ function _arrayEach(arr, iterator) {
+ var index = -1,
+ length = arr.length;
+
+ while (++index < length) {
+ iterator(arr[index], index, arr);
}
- var results = [];
- _each(arr, function (x, i, a) {
- results.push(iterator(x, i, a));
- });
- return results;
- };
+ }
- var _reduce = function (arr, iterator, memo) {
- if (arr.reduce) {
- return arr.reduce(iterator, memo);
+ function _map(arr, iterator) {
+ var index = -1,
+ length = arr.length,
+ result = Array(length);
+
+ while (++index < length) {
+ result[index] = iterator(arr[index], index, arr);
}
- _each(arr, function (x, i, a) {
+ return result;
+ }
+
+ function _range(count) {
+ return _map(Array(count), function (v, i) { return i; });
+ }
+
+ function _reduce(arr, iterator, memo) {
+ _arrayEach(arr, function (x, i, a) {
memo = iterator(memo, x, i, a);
});
return memo;
- };
+ }
+
+ function _forEachOf(object, iterator) {
+ _arrayEach(_keys(object), function (key) {
+ iterator(object[key], key);
+ });
+ }
- var _keys = function (obj) {
- if (Object.keys) {
- return Object.keys(obj);
+ function _indexOf(arr, item) {
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i] === item) return i;
}
+ return -1;
+ }
+
+ var _keys = Object.keys || function (obj) {
var keys = [];
for (var k in obj) {
if (obj.hasOwnProperty(k)) {
@@ -14415,191 +7255,247 @@ module.exports = JingleSession;
return keys;
};
- //// exported async module functions ////
-
- //// nextTick implementation with browser-compatible fallback ////
- if (typeof process === 'undefined' || !(process.nextTick)) {
- if (typeof setImmediate === 'function') {
- async.nextTick = function (fn) {
- // not a direct alias for IE10 compatibility
- setImmediate(fn);
+ function _keyIterator(coll) {
+ var i = -1;
+ var len;
+ var keys;
+ if (_isArrayLike(coll)) {
+ len = coll.length;
+ return function next() {
+ i++;
+ return i < len ? i : null;
};
- async.setImmediate = async.nextTick;
- }
- else {
- async.nextTick = function (fn) {
- setTimeout(fn, 0);
+ } else {
+ keys = _keys(coll);
+ len = keys.length;
+ return function next() {
+ i++;
+ return i < len ? keys[i] : null;
};
- async.setImmediate = async.nextTick;
}
}
- else {
+
+ // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
+ // This accumulates the arguments passed into an array, after a given index.
+ // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
+ function _restParam(func, startIndex) {
+ startIndex = startIndex == null ? func.length - 1 : +startIndex;
+ return function() {
+ var length = Math.max(arguments.length - startIndex, 0);
+ var rest = Array(length);
+ for (var index = 0; index < length; index++) {
+ rest[index] = arguments[index + startIndex];
+ }
+ switch (startIndex) {
+ case 0: return func.call(this, rest);
+ case 1: return func.call(this, arguments[0], rest);
+ }
+ // Currently unused but handle cases outside of the switch statement:
+ // var args = Array(startIndex + 1);
+ // for (index = 0; index < startIndex; index++) {
+ // args[index] = arguments[index];
+ // }
+ // args[startIndex] = rest;
+ // return func.apply(this, args);
+ };
+ }
+
+ function _withoutIndex(iterator) {
+ return function (value, index, callback) {
+ return iterator(value, callback);
+ };
+ }
+
+ //// exported async module functions ////
+
+ //// nextTick implementation with browser-compatible fallback ////
+
+ // capture the global reference to guard against fakeTimer mocks
+ var _setImmediate = typeof setImmediate === 'function' && setImmediate;
+
+ var _delay = _setImmediate ? function(fn) {
+ // not a direct alias for IE10 compatibility
+ _setImmediate(fn);
+ } : function(fn) {
+ setTimeout(fn, 0);
+ };
+
+ if (typeof process === 'object' && typeof process.nextTick === 'function') {
async.nextTick = process.nextTick;
- if (typeof setImmediate !== 'undefined') {
- async.setImmediate = function (fn) {
- // not a direct alias for IE10 compatibility
- setImmediate(fn);
- };
- }
- else {
- async.setImmediate = async.nextTick;
- }
+ } else {
+ async.nextTick = _delay;
}
+ async.setImmediate = _setImmediate ? _delay : async.nextTick;
+
+ async.forEach =
async.each = function (arr, iterator, callback) {
- callback = callback || function () {};
- if (!arr.length) {
- return callback();
+ return async.eachOf(arr, _withoutIndex(iterator), callback);
+ };
+
+ async.forEachSeries =
+ async.eachSeries = function (arr, iterator, callback) {
+ return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
+ };
+
+
+ async.forEachLimit =
+ async.eachLimit = function (arr, limit, iterator, callback) {
+ return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
+ };
+
+ async.forEachOf =
+ async.eachOf = function (object, iterator, callback) {
+ callback = _once(callback || noop);
+ object = object || [];
+
+ var iter = _keyIterator(object);
+ var key, completed = 0;
+
+ while ((key = iter()) != null) {
+ completed += 1;
+ iterator(object[key], key, only_once(done));
}
- var completed = 0;
- _each(arr, function (x) {
- iterator(x, only_once(done) );
- });
+
+ if (completed === 0) callback(null);
+
function done(err) {
- if (err) {
- callback(err);
- callback = function () {};
- }
- else {
- completed += 1;
- if (completed >= arr.length) {
- callback();
- }
- }
+ completed--;
+ if (err) {
+ callback(err);
+ }
+ // Check key is null in case iterator isn't exhausted
+ // and done resolved synchronously.
+ else if (key === null && completed <= 0) {
+ callback(null);
+ }
}
};
- async.forEach = async.each;
- async.eachSeries = function (arr, iterator, callback) {
- callback = callback || function () {};
- if (!arr.length) {
- return callback();
- }
- var completed = 0;
- var iterate = function () {
- iterator(arr[completed], function (err) {
+ async.forEachOfSeries =
+ async.eachOfSeries = function (obj, iterator, callback) {
+ callback = _once(callback || noop);
+ obj = obj || [];
+ var nextKey = _keyIterator(obj);
+ var key = nextKey();
+ function iterate() {
+ var sync = true;
+ if (key === null) {
+ return callback(null);
+ }
+ iterator(obj[key], key, only_once(function (err) {
if (err) {
callback(err);
- callback = function () {};
}
else {
- completed += 1;
- if (completed >= arr.length) {
- callback();
- }
- else {
- iterate();
+ key = nextKey();
+ if (key === null) {
+ return callback(null);
+ } else {
+ if (sync) {
+ async.setImmediate(iterate);
+ } else {
+ iterate();
+ }
}
}
- });
- };
+ }));
+ sync = false;
+ }
iterate();
};
- async.forEachSeries = async.eachSeries;
- async.eachLimit = function (arr, limit, iterator, callback) {
- var fn = _eachLimit(limit);
- fn.apply(null, [arr, iterator, callback]);
+
+
+ async.forEachOfLimit =
+ async.eachOfLimit = function (obj, limit, iterator, callback) {
+ _eachOfLimit(limit)(obj, iterator, callback);
};
- async.forEachLimit = async.eachLimit;
- var _eachLimit = function (limit) {
+ function _eachOfLimit(limit) {
- return function (arr, iterator, callback) {
- callback = callback || function () {};
- if (!arr.length || limit <= 0) {
- return callback();
+ return function (obj, iterator, callback) {
+ callback = _once(callback || noop);
+ obj = obj || [];
+ var nextKey = _keyIterator(obj);
+ if (limit <= 0) {
+ return callback(null);
}
- var completed = 0;
- var started = 0;
+ var done = false;
var running = 0;
+ var errored = false;
(function replenish () {
- if (completed >= arr.length) {
- return callback();
+ if (done && running <= 0) {
+ return callback(null);
}
- while (running < limit && started < arr.length) {
- started += 1;
+ while (running < limit && !errored) {
+ var key = nextKey();
+ if (key === null) {
+ done = true;
+ if (running <= 0) {
+ callback(null);
+ }
+ return;
+ }
running += 1;
- iterator(arr[started - 1], function (err) {
+ iterator(obj[key], key, only_once(function (err) {
+ running -= 1;
if (err) {
callback(err);
- callback = function () {};
+ errored = true;
}
else {
- completed += 1;
- running -= 1;
- if (completed >= arr.length) {
- callback();
- }
- else {
- replenish();
- }
+ replenish();
}
- });
+ }));
}
})();
};
- };
+ }
- var doParallel = function (fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments);
- return fn.apply(null, [async.each].concat(args));
+ function doParallel(fn) {
+ return function (obj, iterator, callback) {
+ return fn(async.eachOf, obj, iterator, callback);
};
- };
- var doParallelLimit = function(limit, fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments);
- return fn.apply(null, [_eachLimit(limit)].concat(args));
+ }
+ function doParallelLimit(fn) {
+ return function (obj, limit, iterator, callback) {
+ return fn(_eachOfLimit(limit), obj, iterator, callback);
};
- };
- var doSeries = function (fn) {
- return function () {
- var args = Array.prototype.slice.call(arguments);
- return fn.apply(null, [async.eachSeries].concat(args));
+ }
+ function doSeries(fn) {
+ return function (obj, iterator, callback) {
+ return fn(async.eachOfSeries, obj, iterator, callback);
};
- };
-
+ }
- var _asyncMap = function (eachfn, arr, iterator, callback) {
- arr = _map(arr, function (x, i) {
- return {index: i, value: x};
- });
- if (!callback) {
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (err) {
- callback(err);
- });
- });
- } else {
- var results = [];
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (err, v) {
- results[x.index] = v;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
+ function _asyncMap(eachfn, arr, iterator, callback) {
+ callback = _once(callback || noop);
+ arr = arr || [];
+ var results = _isArrayLike(arr) ? [] : {};
+ eachfn(arr, function (value, index, callback) {
+ iterator(value, function (err, v) {
+ results[index] = v;
+ callback(err);
});
- }
- };
+ }, function (err) {
+ callback(err, results);
+ });
+ }
+
async.map = doParallel(_asyncMap);
async.mapSeries = doSeries(_asyncMap);
- async.mapLimit = function (arr, limit, iterator, callback) {
- return _mapLimit(limit)(arr, iterator, callback);
- };
-
- var _mapLimit = function(limit) {
- return doParallelLimit(limit, _asyncMap);
- };
+ async.mapLimit = doParallelLimit(_asyncMap);
// reduce only has a series version, as doing reduce in parallel won't
// work in many situations.
+ async.inject =
+ async.foldl =
async.reduce = function (arr, memo, iterator, callback) {
- async.eachSeries(arr, function (x, callback) {
+ async.eachOfSeries(arr, function (x, i, callback) {
iterator(memo, x, function (err, v) {
memo = v;
callback(err);
@@ -14608,118 +7504,106 @@ module.exports = JingleSession;
callback(err, memo);
});
};
- // inject alias
- async.inject = async.reduce;
- // foldl alias
- async.foldl = async.reduce;
+ async.foldr =
async.reduceRight = function (arr, memo, iterator, callback) {
- var reversed = _map(arr, function (x) {
- return x;
- }).reverse();
+ var reversed = _map(arr, identity).reverse();
async.reduce(reversed, memo, iterator, callback);
};
- // foldr alias
- async.foldr = async.reduceRight;
- var _filter = function (eachfn, arr, iterator, callback) {
- var results = [];
- arr = _map(arr, function (x, i) {
- return {index: i, value: x};
+ async.transform = function (arr, memo, iterator, callback) {
+ if (arguments.length === 3) {
+ callback = iterator;
+ iterator = memo;
+ memo = _isArray(arr) ? [] : {};
+ }
+
+ async.eachOf(arr, function(v, k, cb) {
+ iterator(memo, v, k, cb);
+ }, function(err) {
+ callback(err, memo);
});
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (v) {
+ };
+
+ function _filter(eachfn, arr, iterator, callback) {
+ var results = [];
+ eachfn(arr, function (x, index, callback) {
+ iterator(x, function (v) {
if (v) {
- results.push(x);
+ results.push({index: index, value: x});
}
callback();
});
- }, function (err) {
+ }, function () {
callback(_map(results.sort(function (a, b) {
return a.index - b.index;
}), function (x) {
return x.value;
}));
});
- };
+ }
+
+ async.select =
async.filter = doParallel(_filter);
+
+ async.selectLimit =
+ async.filterLimit = doParallelLimit(_filter);
+
+ async.selectSeries =
async.filterSeries = doSeries(_filter);
- // select alias
- async.select = async.filter;
- async.selectSeries = async.filterSeries;
- var _reject = function (eachfn, arr, iterator, callback) {
- var results = [];
- arr = _map(arr, function (x, i) {
- return {index: i, value: x};
- });
- eachfn(arr, function (x, callback) {
- iterator(x.value, function (v) {
- if (!v) {
- results.push(x);
- }
- callback();
+ function _reject(eachfn, arr, iterator, callback) {
+ _filter(eachfn, arr, function(value, cb) {
+ iterator(value, function(v) {
+ cb(!v);
});
- }, function (err) {
- callback(_map(results.sort(function (a, b) {
- return a.index - b.index;
- }), function (x) {
- return x.value;
- }));
- });
- };
+ }, callback);
+ }
async.reject = doParallel(_reject);
+ async.rejectLimit = doParallelLimit(_reject);
async.rejectSeries = doSeries(_reject);
- var _detect = function (eachfn, arr, iterator, main_callback) {
- eachfn(arr, function (x, callback) {
- iterator(x, function (result) {
- if (result) {
- main_callback(x);
- main_callback = function () {};
- }
- else {
+ function _createTester(eachfn, check, getResult) {
+ return function(arr, limit, iterator, cb) {
+ function done() {
+ if (cb) cb(getResult(false, void 0));
+ }
+ function iteratee(x, _, callback) {
+ if (!cb) return callback();
+ iterator(x, function (v) {
+ if (cb && check(v)) {
+ cb(getResult(true, x));
+ cb = iterator = false;
+ }
callback();
- }
- });
- }, function (err) {
- main_callback();
- });
- };
- async.detect = doParallel(_detect);
- async.detectSeries = doSeries(_detect);
+ });
+ }
+ if (arguments.length > 3) {
+ eachfn(arr, limit, iteratee, done);
+ } else {
+ cb = iterator;
+ iterator = limit;
+ eachfn(arr, iteratee, done);
+ }
+ };
+ }
- async.some = function (arr, iterator, main_callback) {
- async.each(arr, function (x, callback) {
- iterator(x, function (v) {
- if (v) {
- main_callback(true);
- main_callback = function () {};
- }
- callback();
- });
- }, function (err) {
- main_callback(false);
- });
- };
- // any alias
- async.any = async.some;
+ async.any =
+ async.some = _createTester(async.eachOf, toBool, identity);
- async.every = function (arr, iterator, main_callback) {
- async.each(arr, function (x, callback) {
- iterator(x, function (v) {
- if (!v) {
- main_callback(false);
- main_callback = function () {};
- }
- callback();
- });
- }, function (err) {
- main_callback(true);
- });
- };
- // all alias
- async.all = async.every;
+ async.someLimit = _createTester(async.eachOfLimit, toBool, identity);
+
+ async.all =
+ async.every = _createTester(async.eachOf, notId, notId);
+
+ async.everyLimit = _createTester(async.eachOfLimit, notId, notId);
+
+ function _findGetResult(v, x) {
+ return x;
+ }
+ async.detect = _createTester(async.eachOf, identity, _findGetResult);
+ async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
+ async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);
async.sortBy = function (arr, iterator, callback) {
async.map(arr, function (x, callback) {
@@ -14736,147 +7620,206 @@ module.exports = JingleSession;
return callback(err);
}
else {
- var fn = function (left, right) {
- var a = left.criteria, b = right.criteria;
- return a < b ? -1 : a > b ? 1 : 0;
- };
- callback(null, _map(results.sort(fn), function (x) {
+ callback(null, _map(results.sort(comparator), function (x) {
return x.value;
}));
}
+
});
+
+ function comparator(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }
};
- async.auto = function (tasks, callback) {
- callback = callback || function () {};
+ async.auto = function (tasks, concurrency, callback) {
+ if (typeof arguments[1] === 'function') {
+ // concurrency is optional, shift the args.
+ callback = concurrency;
+ concurrency = null;
+ }
+ callback = _once(callback || noop);
var keys = _keys(tasks);
- var remainingTasks = keys.length
+ var remainingTasks = keys.length;
if (!remainingTasks) {
- return callback();
+ return callback(null);
+ }
+ if (!concurrency) {
+ concurrency = remainingTasks;
}
var results = {};
+ var runningTasks = 0;
+
+ var hasError = false;
var listeners = [];
- var addListener = function (fn) {
+ function addListener(fn) {
listeners.unshift(fn);
- };
- var removeListener = function (fn) {
- for (var i = 0; i < listeners.length; i += 1) {
- if (listeners[i] === fn) {
- listeners.splice(i, 1);
- return;
- }
- }
- };
- var taskComplete = function () {
- remainingTasks--
- _each(listeners.slice(0), function (fn) {
+ }
+ function removeListener(fn) {
+ var idx = _indexOf(listeners, fn);
+ if (idx >= 0) listeners.splice(idx, 1);
+ }
+ function taskComplete() {
+ remainingTasks--;
+ _arrayEach(listeners.slice(0), function (fn) {
fn();
});
- };
+ }
addListener(function () {
if (!remainingTasks) {
- var theCallback = callback;
- // prevent final callback from calling itself if it errors
- callback = function () {};
-
- theCallback(null, results);
+ callback(null, results);
}
});
- _each(keys, function (k) {
+ _arrayEach(keys, function (k) {
+ if (hasError) return;
var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
- var taskCallback = function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
+ var taskCallback = _restParam(function(err, args) {
+ runningTasks--;
if (args.length <= 1) {
args = args[0];
}
if (err) {
var safeResults = {};
- _each(_keys(results), function(rkey) {
- safeResults[rkey] = results[rkey];
+ _forEachOf(results, function(val, rkey) {
+ safeResults[rkey] = val;
});
safeResults[k] = args;
+ hasError = true;
+
callback(err, safeResults);
- // stop subsequent errors hitting callback multiple times
- callback = function () {};
}
else {
results[k] = args;
async.setImmediate(taskComplete);
}
- };
- var requires = task.slice(0, Math.abs(task.length - 1)) || [];
- var ready = function () {
- return _reduce(requires, function (a, x) {
+ });
+ var requires = task.slice(0, task.length - 1);
+ // prevent dead-locks
+ var len = requires.length;
+ var dep;
+ while (len--) {
+ if (!(dep = tasks[requires[len]])) {
+ throw new Error('Has nonexistent dependency in ' + requires.join(', '));
+ }
+ if (_isArray(dep) && _indexOf(dep, k) >= 0) {
+ throw new Error('Has cyclic dependencies');
+ }
+ }
+ function ready() {
+ return runningTasks < concurrency && _reduce(requires, function (a, x) {
return (a && results.hasOwnProperty(x));
}, true) && !results.hasOwnProperty(k);
- };
+ }
if (ready()) {
+ runningTasks++;
task[task.length - 1](taskCallback, results);
}
else {
- var listener = function () {
- if (ready()) {
- removeListener(listener);
- task[task.length - 1](taskCallback, results);
- }
- };
addListener(listener);
}
+ function listener() {
+ if (ready()) {
+ runningTasks++;
+ removeListener(listener);
+ task[task.length - 1](taskCallback, results);
+ }
+ }
});
};
+
+
async.retry = function(times, task, callback) {
var DEFAULT_TIMES = 5;
+ var DEFAULT_INTERVAL = 0;
+
var attempts = [];
- // Use defaults if times not passed
- if (typeof times === 'function') {
+
+ var opts = {
+ times: DEFAULT_TIMES,
+ interval: DEFAULT_INTERVAL
+ };
+
+ function parseTimes(acc, t){
+ if(typeof t === 'number'){
+ acc.times = parseInt(t, 10) || DEFAULT_TIMES;
+ } else if(typeof t === 'object'){
+ acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
+ acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
+ } else {
+ throw new Error('Unsupported argument type for \'times\': ' + typeof t);
+ }
+ }
+
+ var length = arguments.length;
+ if (length < 1 || length > 3) {
+ throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
+ } else if (length <= 2 && typeof times === 'function') {
callback = task;
task = times;
- times = DEFAULT_TIMES;
}
- // Make sure times is a number
- times = parseInt(times, 10) || DEFAULT_TIMES;
- var wrappedTask = function(wrappedCallback, wrappedResults) {
- var retryAttempt = function(task, finalAttempt) {
+ if (typeof times !== 'function') {
+ parseTimes(opts, times);
+ }
+ opts.callback = callback;
+ opts.task = task;
+
+ function wrappedTask(wrappedCallback, wrappedResults) {
+ function retryAttempt(task, finalAttempt) {
return function(seriesCallback) {
task(function(err, result){
seriesCallback(!err || finalAttempt, {err: err, result: result});
}, wrappedResults);
};
- };
- while (times) {
- attempts.push(retryAttempt(task, !(times-=1)));
}
+
+ function retryInterval(interval){
+ return function(seriesCallback){
+ setTimeout(function(){
+ seriesCallback(null);
+ }, interval);
+ };
+ }
+
+ while (opts.times) {
+
+ var finalAttempt = !(opts.times-=1);
+ attempts.push(retryAttempt(opts.task, finalAttempt));
+ if(!finalAttempt && opts.interval > 0){
+ attempts.push(retryInterval(opts.interval));
+ }
+ }
+
async.series(attempts, function(done, data){
data = data[data.length - 1];
- (wrappedCallback || callback)(data.err, data.result);
+ (wrappedCallback || opts.callback)(data.err, data.result);
});
}
+
// If a callback is passed, run this as a controll flow
- return callback ? wrappedTask() : wrappedTask
+ return opts.callback ? wrappedTask() : wrappedTask;
};
async.waterfall = function (tasks, callback) {
- callback = callback || function () {};
+ callback = _once(callback || noop);
if (!_isArray(tasks)) {
- var err = new Error('First argument to waterfall must be an array of functions');
- return callback(err);
+ var err = new Error('First argument to waterfall must be an array of functions');
+ return callback(err);
}
if (!tasks.length) {
return callback();
}
- var wrapIterator = function (iterator) {
- return function (err) {
+ function wrapIterator(iterator) {
+ return _restParam(function (err, args) {
if (err) {
- callback.apply(null, arguments);
- callback = function () {};
+ callback.apply(null, [err].concat(args));
}
else {
- var args = Array.prototype.slice.call(arguments, 1);
var next = iterator.next();
if (next) {
args.push(wrapIterator(next));
@@ -14884,260 +7827,254 @@ module.exports = JingleSession;
else {
args.push(callback);
}
- async.setImmediate(function () {
- iterator.apply(null, args);
- });
+ ensureAsync(iterator).apply(null, args);
}
- };
- };
+ });
+ }
wrapIterator(async.iterator(tasks))();
};
- var _parallel = function(eachfn, tasks, callback) {
- callback = callback || function () {};
- if (_isArray(tasks)) {
- eachfn.map(tasks, function (fn, callback) {
- if (fn) {
- fn(function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- callback.call(null, err, args);
- });
+ function _parallel(eachfn, tasks, callback) {
+ callback = callback || noop;
+ var results = _isArrayLike(tasks) ? [] : {};
+
+ eachfn(tasks, function (task, key, callback) {
+ task(_restParam(function (err, args) {
+ if (args.length <= 1) {
+ args = args[0];
}
- }, callback);
- }
- else {
- var results = {};
- eachfn.each(_keys(tasks), function (k, callback) {
- tasks[k](function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- results[k] = args;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
- };
+ results[key] = args;
+ callback(err);
+ }));
+ }, function (err) {
+ callback(err, results);
+ });
+ }
async.parallel = function (tasks, callback) {
- _parallel({ map: async.map, each: async.each }, tasks, callback);
+ _parallel(async.eachOf, tasks, callback);
};
async.parallelLimit = function(tasks, limit, callback) {
- _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback);
+ _parallel(_eachOfLimit(limit), tasks, callback);
};
- async.series = function (tasks, callback) {
- callback = callback || function () {};
- if (_isArray(tasks)) {
- async.mapSeries(tasks, function (fn, callback) {
- if (fn) {
- fn(function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- callback.call(null, err, args);
- });
- }
- }, callback);
- }
- else {
- var results = {};
- async.eachSeries(_keys(tasks), function (k, callback) {
- tasks[k](function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (args.length <= 1) {
- args = args[0];
- }
- results[k] = args;
- callback(err);
- });
- }, function (err) {
- callback(err, results);
- });
- }
+ async.series = function(tasks, callback) {
+ _parallel(async.eachOfSeries, tasks, callback);
};
async.iterator = function (tasks) {
- var makeCallback = function (index) {
- var fn = function () {
+ function makeCallback(index) {
+ function fn() {
if (tasks.length) {
tasks[index].apply(null, arguments);
}
return fn.next();
- };
+ }
fn.next = function () {
return (index < tasks.length - 1) ? makeCallback(index + 1): null;
};
return fn;
- };
+ }
return makeCallback(0);
};
- async.apply = function (fn) {
- var args = Array.prototype.slice.call(arguments, 1);
- return function () {
+ async.apply = _restParam(function (fn, args) {
+ return _restParam(function (callArgs) {
return fn.apply(
- null, args.concat(Array.prototype.slice.call(arguments))
+ null, args.concat(callArgs)
);
- };
- };
+ });
+ });
- var _concat = function (eachfn, arr, fn, callback) {
- var r = [];
- eachfn(arr, function (x, cb) {
+ function _concat(eachfn, arr, fn, callback) {
+ var result = [];
+ eachfn(arr, function (x, index, cb) {
fn(x, function (err, y) {
- r = r.concat(y || []);
+ result = result.concat(y || []);
cb(err);
});
}, function (err) {
- callback(err, r);
+ callback(err, result);
});
- };
+ }
async.concat = doParallel(_concat);
async.concatSeries = doSeries(_concat);
async.whilst = function (test, iterator, callback) {
+ callback = callback || noop;
if (test()) {
- iterator(function (err) {
+ var next = _restParam(function(err, args) {
if (err) {
- return callback(err);
+ callback(err);
+ } else if (test.apply(this, args)) {
+ iterator(next);
+ } else {
+ callback.apply(null, [null].concat(args));
}
- async.whilst(test, iterator, callback);
});
- }
- else {
- callback();
+ iterator(next);
+ } else {
+ callback(null);
}
};
async.doWhilst = function (iterator, test, callback) {
- iterator(function (err) {
- if (err) {
- return callback(err);
- }
- var args = Array.prototype.slice.call(arguments, 1);
- if (test.apply(null, args)) {
- async.doWhilst(iterator, test, callback);
- }
- else {
- callback();
- }
- });
+ var calls = 0;
+ return async.whilst(function() {
+ return ++calls <= 1 || test.apply(this, arguments);
+ }, iterator, callback);
};
async.until = function (test, iterator, callback) {
- if (!test()) {
- iterator(function (err) {
- if (err) {
- return callback(err);
- }
- async.until(test, iterator, callback);
- });
- }
- else {
- callback();
- }
+ return async.whilst(function() {
+ return !test.apply(this, arguments);
+ }, iterator, callback);
};
async.doUntil = function (iterator, test, callback) {
- iterator(function (err) {
+ return async.doWhilst(iterator, function() {
+ return !test.apply(this, arguments);
+ }, callback);
+ };
+
+ async.during = function (test, iterator, callback) {
+ callback = callback || noop;
+
+ var next = _restParam(function(err, args) {
if (err) {
- return callback(err);
+ callback(err);
+ } else {
+ args.push(check);
+ test.apply(this, args);
}
- var args = Array.prototype.slice.call(arguments, 1);
- if (!test.apply(null, args)) {
- async.doUntil(iterator, test, callback);
+ });
+
+ var check = function(err, truth) {
+ if (err) {
+ callback(err);
+ } else if (truth) {
+ iterator(next);
+ } else {
+ callback(null);
}
- else {
- callback();
+ };
+
+ test(check);
+ };
+
+ async.doDuring = function (iterator, test, callback) {
+ var calls = 0;
+ async.during(function(next) {
+ if (calls++ < 1) {
+ next(null, true);
+ } else {
+ test.apply(this, arguments);
}
- });
+ }, iterator, callback);
};
- async.queue = function (worker, concurrency) {
- if (concurrency === undefined) {
+ function _queue(worker, concurrency, payload) {
+ if (concurrency == null) {
concurrency = 1;
}
+ else if(concurrency === 0) {
+ throw new Error('Concurrency must not be zero');
+ }
function _insert(q, data, pos, callback) {
- if (!q.started){
+ if (callback != null && typeof callback !== "function") {
+ throw new Error("task callback must be a function");
+ }
q.started = true;
- }
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length == 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- if (q.drain) {
- q.drain();
- }
- });
- }
- _each(data, function(task) {
- var item = {
- data: task,
- callback: typeof callback === 'function' ? callback : null
- };
+ if (!_isArray(data)) {
+ data = [data];
+ }
+ if(data.length === 0 && q.idle()) {
+ // call drain immediately if there are no tasks
+ return async.setImmediate(function() {
+ q.drain();
+ });
+ }
+ _arrayEach(data, function(task) {
+ var item = {
+ data: task,
+ callback: callback || noop
+ };
- if (pos) {
- q.tasks.unshift(item);
- } else {
- q.tasks.push(item);
- }
+ if (pos) {
+ q.tasks.unshift(item);
+ } else {
+ q.tasks.push(item);
+ }
- if (q.saturated && q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
+ if (q.tasks.length === q.concurrency) {
+ q.saturated();
+ }
+ });
+ async.setImmediate(q.process);
+ }
+ function _next(q, tasks) {
+ return function(){
+ workers -= 1;
+
+ var removed = false;
+ var args = arguments;
+ _arrayEach(tasks, function (task) {
+ _arrayEach(workersList, function (worker, index) {
+ if (worker === task && !removed) {
+ workersList.splice(index, 1);
+ removed = true;
+ }
+ });
+
+ task.callback.apply(task, args);
+ });
+ if (q.tasks.length + workers === 0) {
+ q.drain();
+ }
+ q.process();
+ };
}
var workers = 0;
+ var workersList = [];
var q = {
tasks: [],
concurrency: concurrency,
- saturated: null,
- empty: null,
- drain: null,
+ payload: payload,
+ saturated: noop,
+ empty: noop,
+ drain: noop,
started: false,
paused: false,
push: function (data, callback) {
- _insert(q, data, false, callback);
+ _insert(q, data, false, callback);
},
kill: function () {
- q.drain = null;
- q.tasks = [];
+ q.drain = noop;
+ q.tasks = [];
},
unshift: function (data, callback) {
- _insert(q, data, true, callback);
+ _insert(q, data, true, callback);
},
process: function () {
- if (!q.paused && workers < q.concurrency && q.tasks.length) {
- var task = q.tasks.shift();
- if (q.empty && q.tasks.length === 0) {
+ while(!q.paused && workers < q.concurrency && q.tasks.length){
+
+ var tasks = q.payload ?
+ q.tasks.splice(0, q.payload) :
+ q.tasks.splice(0, q.tasks.length);
+
+ var data = _map(tasks, function (task) {
+ return task.data;
+ });
+
+ if (q.tasks.length === 0) {
q.empty();
}
workers += 1;
- var next = function () {
- workers -= 1;
- if (task.callback) {
- task.callback.apply(task, arguments);
- }
- if (q.drain && q.tasks.length + workers === 0) {
- q.drain();
- }
- q.process();
- };
- var cb = only_once(next);
- worker(task.data, cb);
+ workersList.push(tasks[0]);
+ var cb = only_once(_next(q, tasks));
+ worker(data, cb);
}
},
length: function () {
@@ -15146,75 +8083,85 @@ module.exports = JingleSession;
running: function () {
return workers;
},
+ workersList: function () {
+ return workersList;
+ },
idle: function() {
return q.tasks.length + workers === 0;
},
pause: function () {
- if (q.paused === true) { return; }
q.paused = true;
},
resume: function () {
if (q.paused === false) { return; }
q.paused = false;
+ var resumeCount = Math.min(q.concurrency, q.tasks.length);
// Need to call q.process once per concurrent
// worker to preserve full concurrency after pause
- for (var w = 1; w <= q.concurrency; w++) {
+ for (var w = 1; w <= resumeCount; w++) {
async.setImmediate(q.process);
}
}
};
return q;
+ }
+
+ async.queue = function (worker, concurrency) {
+ var q = _queue(function (items, cb) {
+ worker(items[0], cb);
+ }, concurrency, 1);
+
+ return q;
};
async.priorityQueue = function (worker, concurrency) {
function _compareTasks(a, b){
- return a.priority - b.priority;
- };
+ return a.priority - b.priority;
+ }
function _binarySearch(sequence, item, compare) {
- var beg = -1,
- end = sequence.length - 1;
- while (beg < end) {
- var mid = beg + ((end - beg + 1) >>> 1);
- if (compare(item, sequence[mid]) >= 0) {
- beg = mid;
- } else {
- end = mid - 1;
+ var beg = -1,
+ end = sequence.length - 1;
+ while (beg < end) {
+ var mid = beg + ((end - beg + 1) >>> 1);
+ if (compare(item, sequence[mid]) >= 0) {
+ beg = mid;
+ } else {
+ end = mid - 1;
+ }
}
- }
- return beg;
+ return beg;
}
function _insert(q, data, priority, callback) {
- if (!q.started){
+ if (callback != null && typeof callback !== "function") {
+ throw new Error("task callback must be a function");
+ }
q.started = true;
- }
- if (!_isArray(data)) {
- data = [data];
- }
- if(data.length == 0) {
- // call drain immediately if there are no tasks
- return async.setImmediate(function() {
- if (q.drain) {
- q.drain();
- }
- });
- }
- _each(data, function(task) {
- var item = {
- data: task,
- priority: priority,
- callback: typeof callback === 'function' ? callback : null
- };
+ if (!_isArray(data)) {
+ data = [data];
+ }
+ if(data.length === 0) {
+ // call drain immediately if there are no tasks
+ return async.setImmediate(function() {
+ q.drain();
+ });
+ }
+ _arrayEach(data, function(task) {
+ var item = {
+ data: task,
+ priority: priority,
+ callback: typeof callback === 'function' ? callback : noop
+ };
- q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
+ q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);
- if (q.saturated && q.tasks.length === q.concurrency) {
- q.saturated();
- }
- async.setImmediate(q.process);
- });
+ if (q.tasks.length === q.concurrency) {
+ q.saturated();
+ }
+ async.setImmediate(q.process);
+ });
}
// Start with a normal queue
@@ -15222,7 +8169,7 @@ module.exports = JingleSession;
// Override push to accept second parameter representing priority
q.push = function (data, priority, callback) {
- _insert(q, data, priority, callback);
+ _insert(q, data, priority, callback);
};
// Remove unshift function
@@ -15232,93 +8179,27 @@ module.exports = JingleSession;
};
async.cargo = function (worker, payload) {
- var working = false,
- tasks = [];
-
- var cargo = {
- tasks: tasks,
- payload: payload,
- saturated: null,
- empty: null,
- drain: null,
- drained: true,
- push: function (data, callback) {
- if (!_isArray(data)) {
- data = [data];
- }
- _each(data, function(task) {
- tasks.push({
- data: task,
- callback: typeof callback === 'function' ? callback : null
- });
- cargo.drained = false;
- if (cargo.saturated && tasks.length === payload) {
- cargo.saturated();
- }
- });
- async.setImmediate(cargo.process);
- },
- process: function process() {
- if (working) return;
- if (tasks.length === 0) {
- if(cargo.drain && !cargo.drained) cargo.drain();
- cargo.drained = true;
- return;
- }
-
- var ts = typeof payload === 'number'
- ? tasks.splice(0, payload)
- : tasks.splice(0, tasks.length);
-
- var ds = _map(ts, function (task) {
- return task.data;
- });
-
- if(cargo.empty) cargo.empty();
- working = true;
- worker(ds, function () {
- working = false;
-
- var args = arguments;
- _each(ts, function (data) {
- if (data.callback) {
- data.callback.apply(null, args);
- }
- });
-
- process();
- });
- },
- length: function () {
- return tasks.length;
- },
- running: function () {
- return working;
- }
- };
- return cargo;
+ return _queue(worker, 1, payload);
};
- var _console_fn = function (name) {
- return function (fn) {
- var args = Array.prototype.slice.call(arguments, 1);
- fn.apply(null, args.concat([function (err) {
- var args = Array.prototype.slice.call(arguments, 1);
- if (typeof console !== 'undefined') {
+ function _console_fn(name) {
+ return _restParam(function (fn, args) {
+ fn.apply(null, args.concat([_restParam(function (err, args) {
+ if (typeof console === 'object') {
if (err) {
if (console.error) {
console.error(err);
}
}
else if (console[name]) {
- _each(args, function (x) {
+ _arrayEach(args, function (x) {
console[name](x);
});
}
}
- }]));
- };
- };
+ })]));
+ });
+ }
async.log = _console_fn('log');
async.dir = _console_fn('dir');
/*async.info = _console_fn('info');
@@ -15328,123 +8209,174 @@ module.exports = JingleSession;
async.memoize = function (fn, hasher) {
var memo = {};
var queues = {};
- hasher = hasher || function (x) {
- return x;
- };
- var memoized = function () {
- var args = Array.prototype.slice.call(arguments);
+ var has = Object.prototype.hasOwnProperty;
+ hasher = hasher || identity;
+ var memoized = _restParam(function memoized(args) {
var callback = args.pop();
var key = hasher.apply(null, args);
- if (key in memo) {
- async.nextTick(function () {
+ if (has.call(memo, key)) {
+ async.setImmediate(function () {
callback.apply(null, memo[key]);
});
}
- else if (key in queues) {
+ else if (has.call(queues, key)) {
queues[key].push(callback);
}
else {
queues[key] = [callback];
- fn.apply(null, args.concat([function () {
- memo[key] = arguments;
+ fn.apply(null, args.concat([_restParam(function (args) {
+ memo[key] = args;
var q = queues[key];
delete queues[key];
for (var i = 0, l = q.length; i < l; i++) {
- q[i].apply(null, arguments);
+ q[i].apply(null, args);
}
- }]));
+ })]));
}
- };
+ });
memoized.memo = memo;
memoized.unmemoized = fn;
return memoized;
};
async.unmemoize = function (fn) {
- return function () {
- return (fn.unmemoized || fn).apply(null, arguments);
- };
+ return function () {
+ return (fn.unmemoized || fn).apply(null, arguments);
+ };
};
- async.times = function (count, iterator, callback) {
- var counter = [];
- for (var i = 0; i < count; i++) {
- counter.push(i);
- }
- return async.map(counter, iterator, callback);
- };
+ function _times(mapper) {
+ return function (count, iterator, callback) {
+ mapper(_range(count), iterator, callback);
+ };
+ }
- async.timesSeries = function (count, iterator, callback) {
- var counter = [];
- for (var i = 0; i < count; i++) {
- counter.push(i);
- }
- return async.mapSeries(counter, iterator, callback);
+ async.times = _times(async.map);
+ async.timesSeries = _times(async.mapSeries);
+ async.timesLimit = function (count, limit, iterator, callback) {
+ return async.mapLimit(_range(count), limit, iterator, callback);
};
async.seq = function (/* functions... */) {
var fns = arguments;
- return function () {
+ return _restParam(function (args) {
var that = this;
- var args = Array.prototype.slice.call(arguments);
- var callback = args.pop();
+
+ var callback = args[args.length - 1];
+ if (typeof callback == 'function') {
+ args.pop();
+ } else {
+ callback = noop;
+ }
+
async.reduce(fns, args, function (newargs, fn, cb) {
- fn.apply(that, newargs.concat([function () {
- var err = arguments[0];
- var nextargs = Array.prototype.slice.call(arguments, 1);
+ fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
cb(err, nextargs);
- }]))
+ })]));
},
function (err, results) {
callback.apply(that, [err].concat(results));
});
- };
+ });
};
async.compose = function (/* functions... */) {
- return async.seq.apply(null, Array.prototype.reverse.call(arguments));
+ return async.seq.apply(null, Array.prototype.reverse.call(arguments));
};
- var _applyEach = function (eachfn, fns /*args...*/) {
- var go = function () {
- var that = this;
- var args = Array.prototype.slice.call(arguments);
- var callback = args.pop();
- return eachfn(fns, function (fn, cb) {
- fn.apply(that, args.concat([cb]));
- },
- callback);
- };
- if (arguments.length > 2) {
- var args = Array.prototype.slice.call(arguments, 2);
- return go.apply(this, args);
- }
- else {
- return go;
- }
- };
- async.applyEach = doParallel(_applyEach);
- async.applyEachSeries = doSeries(_applyEach);
+
+ function _applyEach(eachfn) {
+ return _restParam(function(fns, args) {
+ var go = _restParam(function(args) {
+ var that = this;
+ var callback = args.pop();
+ return eachfn(fns, function (fn, _, cb) {
+ fn.apply(that, args.concat([cb]));
+ },
+ callback);
+ });
+ if (args.length) {
+ return go.apply(this, args);
+ }
+ else {
+ return go;
+ }
+ });
+ }
+
+ async.applyEach = _applyEach(async.eachOf);
+ async.applyEachSeries = _applyEach(async.eachOfSeries);
+
async.forever = function (fn, callback) {
+ var done = only_once(callback || noop);
+ var task = ensureAsync(fn);
function next(err) {
if (err) {
- if (callback) {
- return callback(err);
- }
- throw err;
+ return done(err);
}
- fn(next);
+ task(next);
}
next();
};
+ function ensureAsync(fn) {
+ return _restParam(function (args) {
+ var callback = args.pop();
+ args.push(function () {
+ var innerArgs = arguments;
+ if (sync) {
+ async.setImmediate(function () {
+ callback.apply(null, innerArgs);
+ });
+ } else {
+ callback.apply(null, innerArgs);
+ }
+ });
+ var sync = true;
+ fn.apply(this, args);
+ sync = false;
+ });
+ }
+
+ async.ensureAsync = ensureAsync;
+
+ async.constant = _restParam(function(values) {
+ var args = [null].concat(values);
+ return function (callback) {
+ return callback.apply(this, args);
+ };
+ });
+
+ async.wrapSync =
+ async.asyncify = function asyncify(func) {
+ return _restParam(function (args) {
+ var callback = args.pop();
+ var result;
+ try {
+ result = func.apply(this, args);
+ } catch (e) {
+ return callback(e);
+ }
+ // if result is Promise object
+ if (_isObject(result) && typeof result.then === "function") {
+ result.then(function(value) {
+ callback(null, value);
+ })["catch"](function(err) {
+ callback(err.message ? err : new Error(err));
+ });
+ } else {
+ callback(null, result);
+ }
+ });
+ };
+
// Node.js
- if (typeof module !== 'undefined' && module.exports) {
+ if (typeof module === 'object' && module.exports) {
module.exports = async;
}
// AMD / RequireJS
- else if (typeof define !== 'undefined' && define.amd) {
+ else if (typeof define === 'function' && define.amd) {
define([], function () {
return async;
});
@@ -15456,284 +8388,422 @@ module.exports = JingleSession;
}());
-}).call(this,require('_process'))
-},{"_process":10}],120:[function(require,module,exports){
-(function (global){
+}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"_process":153}],53:[function(require,module,exports){
+var util = require('util');
+var intersect = require('intersect');
+var WildEmitter = require('wildemitter');
+var webrtc = require('webrtcsupport');
-var rng;
+var BaseSession = require('jingle-session');
+var MediaSession = require('jingle-media-session');
+var FileSession = require('jingle-filetransfer-session');
-if (global.crypto && crypto.getRandomValues) {
- // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
- // Moderately fast, high quality
- var _rnds8 = new Uint8Array(16);
- rng = function whatwgRNG() {
- crypto.getRandomValues(_rnds8);
- return _rnds8;
- };
-}
-if (!rng) {
- // Math.random()-based (RNG)
- //
- // If all else fails, use Math.random(). It's fast, but is of unspecified
- // quality.
- var _rnds = new Array(16);
- rng = function() {
- for (var i = 0, r; i < 16; i++) {
- if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
- _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
- }
+function SessionManager(conf) {
+ WildEmitter.call(this);
- return _rnds;
- };
-}
+ conf = conf || {};
-module.exports = rng;
+ this.jid = conf.jid;
+ this.selfID = conf.selfID || (this.jid && this.jid.full) || this.jid || '';
+ this.sessions = {};
+ this.peers = {};
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],121:[function(require,module,exports){
-// uuid.js
-//
-// Copyright (c) 2010-2012 Robert Kieffer
-// MIT License - http://opensource.org/licenses/mit-license.php
+ this.prepareSession = conf.prepareSession || function (opts) {
+ if (opts.applicationTypes.indexOf('rtp') >= 0) {
+ return new MediaSession(opts);
+ }
+ if (opts.applicationTypes.indexOf('filetransfer') >= 0) {
+ return new FileSession(opts);
+ }
+ };
-// Unique ID creation requires a high quality random # generator. We feature
-// detect to determine the best RNG source, normalizing to a function that
-// returns 128-bits of randomness, since that's what's usually required
-var _rng = require('./rng');
+ this.performTieBreak = conf.performTieBreak || function (sess, req) {
+ var applicationTypes= req.jingle.contents.map(function (content) {
+ if (content.application) {
+ return content.application.applicationType;
+ }
+ });
-// Maps for number <-> hex string conversion
-var _byteToHex = [];
-var _hexToByte = {};
-for (var i = 0; i < 256; i++) {
- _byteToHex[i] = (i + 0x100).toString(16).substr(1);
- _hexToByte[_byteToHex[i]] = i;
-}
+ var matching = intersect(sess.pendingApplicationTypes, applicationTypes);
-// **`parse()` - Parse a UUID into it's component bytes**
-function parse(s, buf, offset) {
- var i = (buf && offset) || 0, ii = 0;
+ return matching.length > 0;
+ };
- buf = buf || [];
- s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
- if (ii < 16) { // Don't overflow!
- buf[i + ii++] = _hexToByte[oct];
+ this.screenSharingSupport = webrtc.screenSharing;
+
+ this.capabilities = [
+ 'urn:xmpp:jingle:1'
+ ];
+ if (webrtc.support) {
+ this.capabilities = [
+ 'urn:xmpp:jingle:1',
+ 'urn:xmpp:jingle:apps:rtp:1',
+ 'urn:xmpp:jingle:apps:rtp:audio',
+ 'urn:xmpp:jingle:apps:rtp:video',
+ 'urn:xmpp:jingle:apps:rtp:rtcb-fb:0',
+ 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
+ 'urn:xmpp:jingle:apps:rtp:ssma:0',
+ 'urn:xmpp:jingle:apps:dtls:0',
+ 'urn:xmpp:jingle:apps:grouping:0',
+ 'urn:xmpp:jingle:apps:file-transfer:3',
+ 'urn:xmpp:jingle:transports:ice-udp:1',
+ 'urn:xmpp:jingle:transports.dtls-sctp:1',
+ 'urn:ietf:rfc:3264',
+ 'urn:ietf:rfc:5576',
+ 'urn:ietf:rfc:5888'
+ ];
}
- });
- // Zero out remaining bytes if string was short
- while (ii < 16) {
- buf[i + ii++] = 0;
- }
+ this.config = {
+ debug: false,
+ peerConnectionConfig: {
+ iceServers: conf.iceServers || [{'url': 'stun:stun.l.google.com:19302'}]
+ },
+ peerConnectionConstraints: {
+ optional: [
+ {DtlsSrtpKeyAgreement: true},
+ {RtpDataChannels: false}
+ ]
+ },
+ media: {
+ audio: true,
+ video: true
+ }
+ };
- return buf;
-}
+ for (var item in conf) {
+ this.config[item] = conf[item];
+ }
-// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
-function unparse(buf, offset) {
- var i = offset || 0, bth = _byteToHex;
- return bth[buf[i++]] + bth[buf[i++]] +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] + '-' +
- bth[buf[i++]] + bth[buf[i++]] +
- bth[buf[i++]] + bth[buf[i++]] +
- bth[buf[i++]] + bth[buf[i++]];
+ this.iceServers = this.config.peerConnectionConfig.iceServers;
}
-// **`v1()` - Generate time-based UUID**
-//
-// Inspired by https://github.com/LiosK/UUID.js
-// and http://docs.python.org/library/uuid.html
-// random #'s we need to init node and clockseq
-var _seedBytes = _rng();
+util.inherits(SessionManager, WildEmitter);
-// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
-var _nodeId = [
- _seedBytes[0] | 0x01,
- _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
-];
-// Per 4.2.2, randomize (14 bit) clockseq
-var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
+SessionManager.prototype.addICEServer = function (server) {
+ // server == {
+ // url: '',
+ // [username: '',]
+ // [credential: '']
+ // }
+ if (typeof server === 'string') {
+ server = {url: server};
+ }
+ this.iceServers.push(server);
+};
-// Previous uuid creation time
-var _lastMSecs = 0, _lastNSecs = 0;
+SessionManager.prototype.addSession = function (session) {
+ var self = this;
-// See https://github.com/broofa/node-uuid for API details
-function v1(options, buf, offset) {
- var i = buf && offset || 0;
- var b = buf || [];
+ var sid = session.sid;
+ var peer = session.peerID;
- options = options || {};
+ this.sessions[sid] = session;
+ if (!this.peers[peer]) {
+ this.peers[peer] = [];
+ }
- var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+ this.peers[peer].push(session);
- // UUID timestamps are 100 nano-second units since the Gregorian epoch,
- // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
- // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
- // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
- var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
+ // Automatically clean up tracked sessions
+ session.on('terminated', function () {
+ var peers = self.peers[peer] || [];
+ if (peers.length) {
+ peers.splice(peers.indexOf(session), 1);
+ }
+ delete self.sessions[sid];
+ });
- // Per 4.2.1.2, use count of uuid's generated during the current clock
- // cycle to simulate higher resolution clock
- var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
+ // Proxy session events
+ session.on('*', function (name, data, extraData, extraData2) {
+ // Listen for when we actually try to start a session to
+ // trigger the outgoing event.
+ if (name === 'send') {
+ var action = data.jingle && data.jingle.action;
+ if (session.isInitiator && action === 'session-initiate') {
+ self.emit('outgoing', session);
+ }
+ }
- // Time since last uuid creation (in msecs)
- var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
+ if (self.config.debug && (name === 'log:debug' || name === 'log:error')) {
+ console.log('Jingle:', data, extraData, extraData2);
+ }
- // Per 4.2.1.2, Bump clockseq on clock regression
- if (dt < 0 && options.clockseq === undefined) {
- clockseq = clockseq + 1 & 0x3fff;
- }
+ // Don't proxy change:* events, since those don't apply to
+ // the session manager itself.
+ if (name.indexOf('change') === 0) {
+ return;
+ }
- // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
- // time interval
- if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
- nsecs = 0;
- }
+ self.emit(name, data, extraData, extraData2);
+ });
- // Per 4.2.1.2 Throw error if too many uuids are requested
- if (nsecs >= 10000) {
- throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
- }
+ this.emit('createdSession', session);
- _lastMSecs = msecs;
- _lastNSecs = nsecs;
- _clockseq = clockseq;
+ return session;
+};
- // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
- msecs += 12219292800000;
+SessionManager.prototype.createMediaSession = function (peer, sid, stream) {
+ var session = new MediaSession({
+ sid: sid,
+ peer: peer,
+ initiator: true,
+ stream: stream,
+ parent: this,
+ iceServers: this.iceServers,
+ constraints: this.config.peerConnectionConstraints
+ });
- // `time_low`
- var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
- b[i++] = tl >>> 24 & 0xff;
- b[i++] = tl >>> 16 & 0xff;
- b[i++] = tl >>> 8 & 0xff;
- b[i++] = tl & 0xff;
+ this.addSession(session);
- // `time_mid`
- var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
- b[i++] = tmh >>> 8 & 0xff;
- b[i++] = tmh & 0xff;
+ return session;
+};
- // `time_high_and_version`
- b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
- b[i++] = tmh >>> 16 & 0xff;
+SessionManager.prototype.createFileTransferSession = function (peer, sid) {
+ var session = new FileSession({
+ sid: sid,
+ peer: peer,
+ initiator: true,
+ parent: this
+ });
- // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
- b[i++] = clockseq >>> 8 | 0x80;
+ this.addSession(session);
- // `clock_seq_low`
- b[i++] = clockseq & 0xff;
+ return session;
+};
- // `node`
- var node = options.node || _nodeId;
- for (var n = 0; n < 6; n++) {
- b[i + n] = node[n];
- }
+SessionManager.prototype.endPeerSessions = function (peer, reason, silent) {
+ peer = peer.full || peer;
- return buf ? buf : unparse(b);
-}
+ var sessions = this.peers[peer] || [];
+ delete this.peers[peer];
-// **`v4()` - Generate random UUID**
+ sessions.forEach(function (session) {
+ session.end(reason || 'gone', silent);
+ });
+};
-// See https://github.com/broofa/node-uuid for API details
-function v4(options, buf, offset) {
- // Deprecated - 'format' argument, as supported in v1.2
- var i = buf && offset || 0;
+SessionManager.prototype.endAllSessions = function (reason, silent) {
+ var self = this;
+ Object.keys(this.peers).forEach(function (peer) {
+ self.endPeerSessions(peer, reason, silent);
+ });
+};
- if (typeof(options) == 'string') {
- buf = options == 'binary' ? new Array(16) : null;
- options = null;
- }
- options = options || {};
+SessionManager.prototype._createIncomingSession = function (meta, req) {
+ var session;
- var rnds = options.random || (options.rng || _rng)();
+ if (this.prepareSession) {
+ session = this.prepareSession(meta, req);
+ }
- // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
- rnds[6] = (rnds[6] & 0x0f) | 0x40;
- rnds[8] = (rnds[8] & 0x3f) | 0x80;
+ // Fallback to a generic session type, which can
+ // only be used to end the session.
- // Copy bytes to buffer, if provided
- if (buf) {
- for (var ii = 0; ii < 16; ii++) {
- buf[i + ii] = rnds[ii];
+ if (!session) {
+ session = new BaseSession(meta);
}
- }
- return buf || unparse(rnds);
-}
+ this.addSession(session);
-// Export public API
-var uuid = v4;
-uuid.v1 = v1;
-uuid.v4 = v4;
-uuid.parse = parse;
-uuid.unparse = unparse;
+ return session;
+};
-module.exports = uuid;
+SessionManager.prototype._sendError = function (to, id, data) {
+ if (!data.type) {
+ data.type = 'cancel';
+ }
+ this.emit('send', {
+ to: to,
+ id: id,
+ type: 'error',
+ error: data
+ });
+};
-},{"./rng":120}],122:[function(require,module,exports){
-arguments[4][53][0].apply(exports,arguments)
-},{"dup":53}],123:[function(require,module,exports){
-// created by @HenrikJoreteg
-var prefix;
-var version;
+SessionManager.prototype._log = function (level, message) {
+ this.emit('log:' + level, message);
+};
-if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) {
- prefix = 'moz';
- version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
-} else if (window.webkitRTCPeerConnection || navigator.webkitGetUserMedia) {
- prefix = 'webkit';
- version = navigator.userAgent.match(/Chrom(e|ium)/) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10);
-}
+SessionManager.prototype.process = function (req) {
+ var self = this;
-var PC = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
-var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
-var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
-var MediaStream = window.webkitMediaStream || window.MediaStream;
-var screenSharing = window.location.protocol === 'https:' &&
- ((prefix === 'webkit' && version >= 26) ||
- (prefix === 'moz' && version >= 33))
-var AudioContext = window.AudioContext || window.webkitAudioContext;
-var videoEl = document.createElement('video');
-var supportVp8 = videoEl && videoEl.canPlayType && videoEl.canPlayType('video/webm; codecs="vp8", vorbis') === "probably";
-var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia || navigator.mozGetUserMedia;
+ // Extract the request metadata that we need to verify
+ var sid = !!req.jingle ? req.jingle.sid : null;
+ var session = this.sessions[sid] || null;
+ var rid = req.id;
+ var sender = req.from.full || req.from;
-// export support flags and constructors.prototype && PC
-module.exports = {
- prefix: prefix,
- browserVersion: version,
- support: !!PC && supportVp8 && !!getUserMedia,
- // new support style
- supportRTCPeerConnection: !!PC,
- supportVp8: supportVp8,
- supportGetUserMedia: !!getUserMedia,
- supportDataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
- supportWebAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
- supportMediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
- supportScreenSharing: !!screenSharing,
- // old deprecated style. Dont use this anymore
- dataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
- webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
- mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
- screenSharing: !!screenSharing,
- // constructors
- AudioContext: AudioContext,
- PeerConnection: PC,
- SessionDescription: SessionDescription,
- IceCandidate: IceCandidate,
- MediaStream: MediaStream,
- getUserMedia: getUserMedia
+
+ if (req.type === 'error') {
+ var isTieBreak = req.error && req.error.jingleCondition === 'tie-break';
+ if (session && session.pending && isTieBreak) {
+ return session.end('alternative-session', true);
+ } else {
+ if (session) {
+ session.pendingAction = false;
+ }
+ return this.emit('error', req);
+ }
+ }
+
+ if (req.type === 'result') {
+ if (session) {
+ session.pendingAction = false;
+ }
+ return;
+ }
+
+ var action = req.jingle.action;
+ var contents = req.jingle.contents || [];
+
+ var applicationTypes = contents.map(function (content) {
+ if (content.application) {
+ return content.application.applicationType;
+ }
+ });
+ var transportTypes = contents.map(function (content) {
+ if (content.transport) {
+ return content.transport.transportType;
+ }
+ });
+
+
+ // Now verify that we are allowed to actually process the
+ // requested action
+
+ if (action !== 'session-initiate') {
+ // Can't modify a session that we don't have.
+ if (!session) {
+ this._log('error', 'Unknown session', sid);
+ return this._sendError(sender, rid, {
+ condition: 'item-not-found',
+ jingleCondition: 'unknown-session'
+ });
+ }
+
+ // Check if someone is trying to hijack a session.
+ if (session.peerID !== sender || session.ended) {
+ this._log('error', 'Session has ended, or action has wrong sender');
+ return this._sendError(sender, rid, {
+ condition: 'item-not-found',
+ jingleCondition: 'unknown-session'
+ });
+ }
+
+ // Can't accept a session twice
+ if (action === 'session-accept' && !session.pending) {
+ this._log('error', 'Tried to accept session twice', sid);
+ return this._sendError(sender, rid, {
+ condition: 'unexpected-request',
+ jingleCondition: 'out-of-order'
+ });
+ }
+
+ // Can't process two requests at once, need to tie break
+ if (action !== 'session-terminate' && action === session.pendingAction) {
+ this._log('error', 'Tie break during pending request');
+ if (session.isInitiator) {
+ return this._sendError(sender, rid, {
+ condition: 'conflict',
+ jingleCondition: 'tie-break'
+ });
+ }
+ }
+ } else if (session) {
+ // Don't accept a new session if we already have one.
+ if (session.peerID !== sender) {
+ this._log('error', 'Duplicate sid from new sender');
+ return this._sendError(sender, rid, {
+ condition: 'service-unavailable'
+ });
+ }
+
+ // Check if we need to have a tie breaker because both parties
+ // happened to pick the same random sid.
+ if (session.pending) {
+ if (this.selfID > session.peerID && this.performTieBreak(session, req)) {
+ this._log('error', 'Tie break new session because of duplicate sids');
+ return this._sendError(sender, rid, {
+ condition: 'conflict',
+ jingleCondition: 'tie-break'
+ });
+ }
+ } else {
+ // The other side is just doing it wrong.
+ this._log('error', 'Someone is doing this wrong');
+ return this._sendError(sender, rid, {
+ condition: 'unexpected-request',
+ jingleCondition: 'out-of-order'
+ });
+ }
+ } else if (this.peers[sender] && this.peers[sender].length) {
+ // Check if we need to have a tie breaker because we already have
+ // a different session with this peer that is using the requested
+ // content application types.
+ for (var i = 0, len = this.peers[sender].length; i < len; i++) {
+ var sess = this.peers[sender][i];
+ if (sess && sess.pending && sess.sid > sid && this.performTieBreak(sess, req)) {
+ this._log('info', 'Tie break session-initiate');
+ return this._sendError(sender, rid, {
+ condition: 'conflict',
+ jingleCondition: 'tie-break'
+ });
+ }
+ }
+ }
+
+ // We've now weeded out invalid requests, so we can process the action now.
+
+ if (action === 'session-initiate') {
+ if (!contents.length) {
+ return self._sendError(sender, rid, {
+ condition: 'bad-request'
+ });
+ }
+
+ session = this._createIncomingSession({
+ sid: sid,
+ peer: req.from,
+ peerID: sender,
+ initiator: false,
+ parent: this,
+ applicationTypes: applicationTypes,
+ transportTypes: transportTypes,
+ iceServers: this.iceServers,
+ constraints: this.config.peerConnectionConstraints
+ }, req);
+ }
+
+ session.process(action, req.jingle, function (err) {
+ if (err) {
+ self._log('error', 'Could not process request', req, err);
+ self._sendError(sender, rid, err);
+ } else {
+ self.emit('send', {
+ to: sender,
+ id: rid,
+ type: 'result',
+ });
+
+ // Wait for the initial action to be processed before emitting
+ // the session for the user to accept/reject.
+ if (action === 'session-initiate') {
+ self.emit('incoming', session);
+ }
+ }
+ });
};
-},{}],124:[function(require,module,exports){
-arguments[4][53][0].apply(exports,arguments)
-},{"dup":53}],125:[function(require,module,exports){
+
+module.exports = SessionManager;
+
+},{"intersect":46,"jingle-filetransfer-session":49,"jingle-media-session":50,"jingle-session":51,"util":197,"webrtcsupport":210,"wildemitter":211}],54:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -15758,7 +8828,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"./shortcuts":126,"./types":127}],126:[function(require,module,exports){
+},{"./shortcuts":55,"./types":56}],55:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -15902,7 +8972,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":128}],127:[function(require,module,exports){
+},{"xmpp-constants":212}],56:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -15994,712 +9064,47 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-jid":134}],128:[function(require,module,exports){
-module.exports = {
- Namespace: require('./lib/namespaces'),
- MUC: require('./lib/muc'),
- PubSub: require('./lib/pubsub'),
- Jingle: require('./lib/jingle'),
- Presence: require('./lib/presence')
-};
-
-},{"./lib/jingle":129,"./lib/muc":130,"./lib/namespaces":131,"./lib/presence":132,"./lib/pubsub":133}],129:[function(require,module,exports){
-module.exports = {
- Action: {
- CONTENT_ACCEPT: 'content-accept',
- CONTENT_ADD: 'content-add',
- CONTENT_MODIFY: 'content-modify',
- CONTENT_REJECT: 'content-reject',
- CONTENT_REMOVE: 'content-remove',
- DESCRIPTION_INFO: 'description-info',
- SECURITY_INFO: 'security-info',
- SESSION_ACCEPT: 'session-accept',
- SESSION_INFO: 'session-info',
- SESSION_INITIATE: 'session-initiate',
- SESSION_TERMINATE: 'session-terminate',
- TRANSPORT_ACCEPT: 'transport-accept',
- TRANSPORT_INFO: 'transport-info',
- TRANSPORT_REJECT: 'transport-reject',
- TRANSPORT_REPLACE: 'transport-replace'
- },
- Reason: {
- ALTERNATIVE_SESSION: 'alernative-session',
- BUSY: 'busy',
- CANCEL: 'cancel',
- CONNECTIVITY_ERROR: 'connectivity-error',
- DECLINE: 'decline',
- EXPIRED: 'expired',
- FAILED_APPLICATION: 'failed-application',
- FAILED_TRANSPORT: 'failed-transport',
- GENERAL_ERROR: 'general-error',
- GONE: 'gone',
- INCOMPATIBLE_PARAMETERS: 'incompatible-parameters',
- MEDIA_ERROR: 'media-error',
- SECURITY_ERROR: 'security-error',
- SUCCESS: 'success',
- TIMEOUT: 'timeout',
- UNSUPPORTED_APPLICATIONS: 'unsupported-applications',
- UNSUPPORTED_TRANSPORTS: 'unsupported-transports'
- },
- Condition: {
- OUT_OF_ORDER: 'out-of-order',
- TIE_BREAK: 'tie-break',
- UNKNOWN_SESSION: 'unknown-session',
- UNSUPPORTED_INFO: 'unsupported-info'
- }
-};
-
-},{}],130:[function(require,module,exports){
-module.exports = {
- Status: {
- REALJID_PUBLIC: '100',
- AFFILIATION_CHANGED: '101',
- UNAVAILABLE_SHOWN: '102',
- UNAVAILABLE_NOT_SHOWN: '103',
- CONFIGURATION_CHANGED: '104',
- SELF_PRESENCE: '110',
- LOGGING_ENABLED: '170',
- LOGGING_DISABLED: '171',
- NON_ANONYMOUS: '172',
- SEMI_ANONYMOUS: '173',
- FULLY_ANONYMOUS: '174',
- ROOM_CREATED: '201',
- NICK_ASSIGNED: '210',
- BANNED: '301',
- NEW_NICK: '303',
- KICKED: '307',
- REMOVED_AFFILIATION: '321',
- REMOVED_MEMBERSHIP: '322',
- REMOVED_SHUTDOWN: '332'
- },
- Affiliation: {
- ADMIN: 'admin',
- MEMBER: 'member',
- NONE: 'none',
- OUTCAST: 'outcast',
- OWNER: 'owner'
- },
- Role: {
- MODERATOR: 'moderator',
- NONE: 'none',
- PARTICIPANT: 'participant',
- VISITOR: 'visitor'
- }
-};
-
-},{}],131:[function(require,module,exports){
-module.exports = {
-// ================================================================
-// RFCS
-// ================================================================
-
-// RFC 6120
- BIND: 'urn:ietf:params:xml:ns:xmpp-bind',
- CLIENT: 'jabber:client',
- SASL: 'urn:ietf:params:xml:ns:xmpp-sasl',
- SERVER: 'jabber:server',
- SESSION: 'urn:ietf:params:xml:ns:xmpp-session',
- STANZA_ERROR: 'urn:ietf:params:xml:ns:xmpp-stanzas',
- STREAM: 'http://etherx.jabber.org/streams',
- STREAM_ERROR: 'urn:ietf:params:xml:ns:xmpp-streams',
-
-// RFC 6121
- ROSTER: 'jabber:iq:roster',
- ROSTER_VERSIONING: 'urn:xmpp:features:rosterver',
- SUBSCRIPTION_PREAPPROVAL: 'urn:xmpp:features:pre-approval',
-
-// RFC 7395
- FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing',
-
-// ================================================================
-// XEPS
-// ================================================================
-
-// XEP-0004
- DATAFORM: 'jabber:x:data',
-
-// XEP-0009
- RPC: 'jabber:iq:rpc',
-
-// XEP-0012
- LAST_ACTIVITY: 'jabber:iq:last',
-
-// XEP-0016
- PRIVACY: 'jabber:iq:privacy',
-
-// XEP-0030
- DISCO_INFO: 'http://jabber.org/protocol/disco#info',
- DISCO_ITEMS: 'http://jabber.org/protocol/disco#items',
-
-// XEP-0033
- ADDRESS: 'http://jabber.org/protocol/address',
-
-// XEP-0045
- MUC: 'http://jabber.org/protocol/muc',
- MUC_ADMIN: 'http://jabber.org/protocol/muc#admin',
- MUC_OWNER: 'http://jabber.org/protocol/muc#owner',
- MUC_USER: 'http://jabber.org/protocol/muc#user',
-
-// XEP-0047
- IBB: 'http://jabber.org/protocol/ibb',
-
-// XEP-0048
- BOOKMARKS: 'storage:bookmarks',
-
-// XEP-0049
- PRIVATE: 'jabber:iq:private',
-
-// XEP-0050
- ADHOC_COMMANDS: 'http://jabber.org/protocol/commands',
-
-// XEP-0054
- VCARD_TEMP: 'vcard-temp',
-
-// XEP-0055
- SEARCH: 'jabber:iq:search',
-
-// XEP-0059
- RSM: 'http://jabber.org/protocol/rsm',
-
-// XEP-0060
- PUBSUB: 'http://jabber.org/protocol/pubsub',
- PUBSUB_ERRORS: 'http://jabber.org/protocol/pubsub#errors',
- PUBSUB_EVENT: 'http://jabber.org/protocol/pubsub#event',
- PUBSUB_OWNER: 'http://jabber.org/protocol/pubsub#owner',
-
-// XEP-0065
- SOCKS5: 'http://jabber.org/protocol/bytestreams',
-
-// XEP-0066
- OOB: 'jabber:x:oob',
-
-// XEP-0070
- HTTP_AUTH: 'http://jabber.org/protocol/http-auth',
-
-// XEP-0071
- XHTML_IM: 'http://jabber.org/protocol/xhtml-im',
-
-// XEP-0077
- REGISTER: 'jabber:iq:register',
-
-// XEP-0079
- AMP: 'http://jabber.org/protocol/amp',
-
-// XEP-0080
- GEOLOC: 'http://jabber.org/protocol/geoloc',
-
-// XEP-0083
- ROSTER_DELIMITER: 'roster:delimiter',
-
-// XEP-0084
- AVATAR_DATA: 'urn:xmpp:avatar:data',
- AVATAR_METADATA: 'urn:xmpp:avatar:metadata',
-
-// XEP-0085
- CHAT_STATES: 'http://jabber.org/protocol/chatstates',
-
-// XEP-0092
- VERSION: 'jabber:iq:version',
-
-// XEP-0107
- MOOD: 'http://jabber.org/protocol/mood',
-
-// XEP-0108
- ACTIVITY: 'http://jabber.org/protocol/activity',
-
-// XEP-0114
- COMPONENT: 'jabber:component:accept',
-
-// XEP-0115
- CAPS: 'http://jabber.org/protocol/caps',
-
-// XEP-0118
- TUNE: 'http://jabber.org/protocol/tune',
-
-// XEP-0122
- DATAFORM_VALIDATION: 'http://jabber.org/protocol/xdata-validate',
-
-// XEP-0124
- BOSH: 'http://jabber.org/protocol/httpbind',
-
-// XEP-0131
- SHIM: 'http://jabber.org/protocol/shim',
-
-// XEP-0138
- COMPRESSION: 'http://jabber.org/features/compress',
-
-// XEP-0141
- DATAFORM_LAYOUT: 'http://jabber.org/protocol/xdata-layout',
-
-// XEP-0144
- ROSTER_EXCHANGE: 'http://jabber.org/protocol/rosterx',
-
-// XEP-0145
- ROSTER_NOTES: 'storage:rosternotes',
-
-// XEP-0152
- REACH_0: 'urn:xmpp:reach:0',
-
-// XEP-0153
- VCARD_TEMP_UPDATE: 'vcard-temp:x:update',
-
-// XEP-0158
- CAPTCHA: 'urn:xmpp:captcha',
-
-// XEP-0166
- JINGLE_1: 'urn:xmpp:jingle:1',
- JINGLE_ERRORS_1: 'urn:xmpp:jingle:errors:1',
-
-// XEP-0167
- JINGLE_RTP_1: 'urn:xmpp:jingle:apps:rtp:1',
- JINGLE_RTP_ERRORS_1: 'urn:xmpp:jingle:apps:rtp:errors:1',
- JINGLE_RTP_INFO_1: 'urn:xmpp:jingle:apps:rtp:info:1',
-
-// XEP-0171
- LANG_TRANS: 'urn:xmpp:langtrans',
- LANG_TRANS_ITEMS: 'urn:xmpp:langtrans:items',
-
-// XEP-0172
- NICK: 'http://jabber.org/protocol/nick',
-
-// XEP-0176
- JINGLE_ICE_UDP_1: 'urn:xmpp:jingle:transports:ice-udp:1',
-
-// XEP-0177
- JINGLE_RAW_UDP_1: 'urn:xmpp:jingle:transports:raw-udp:1',
-
-// XEP-0184
- RECEIPTS: 'urn:xmpp:receipts',
-
-// XEP-0186
- INVISIBLE_0: 'urn:xmpp:invisible:0',
-
-// XEP-0191
- BLOCKING: 'urn:xmpp:blocking',
-
-// XEP-0198
- SMACKS_3: 'urn:xmpp:sm:3',
-
-// XEP-0199
- PING: 'urn:xmpp:ping',
-
-// XEP-0202
- TIME: 'urn:xmpp:time',
-
-// XEP-0203
- DELAY: 'urn:xmpp:delay',
-
-// XEP-0206
- BOSH_XMPP: 'urn:xmpp:xbosh',
-
-// XEP-0215
- DISCO_EXTERNAL_1: 'urn:xmpp:extdisco:1',
-
-// XEP-0221
- DATAFORM_MEDIA: 'urn:xmpp:media-element',
-
-// XEP-0224
- ATTENTION_0: 'urn:xmpp:attention:0',
-
-// XEP-0231
- BOB: 'urn:xmpp:bob',
-
-// XEP-0234
- FILE_TRANSFER_3: 'urn:xmpp:jingle:apps:file-transfer:3',
- FILE_TRANSFER_4: 'urn:xmpp:jingle:apps:file-transfer:4',
-
-// XEP-0249
- MUC_DIRECT_INVITE: 'jabber:x:conference',
-
-// XEP-0258
- SEC_LABEL_0: 'urn:xmpp:sec-label:0',
- SEC_LABEL_CATALOG_2: 'urn:xmpp:sec-label:catalog:2',
- SEC_LABEL_ESS_0: 'urn:xmpp:sec-label:ess:0',
-
-// XEP-0260
- JINGLE_SOCKS5_1: 'urn:xmpp:jingle:transports:s5b:1',
-
-// XEP-0261
- JINGLE_IBB_1: 'urn:xmpp:jingle:transports:ibb:1',
-
-// XEP-0262
- JINGLE_RTP_ZRTP_1: 'urn:xmpp:jingle:apps:rtp:zrtp:1',
-
-// XEP-0264
- THUMBS_0: 'urn:xmpp:thumbs:0',
- THUMBS_1: 'urn:xmpp:thumbs:1',
-
-// XEP-0276
- DECLOAKING_0: 'urn:xmpp:decloaking:0',
-
-// XEP-0280
- CARBONS_2: 'urn:xmpp:carbons:2',
-
-// XEP-0293
- JINGLE_RTP_RTCP_FB_0: 'urn:xmpp:jingle:apps:rtp:rtcp-fb:0',
-
-// XEP-0294
- JINGLE_RTP_HDREXT_0: 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
-
-// XEP-0297
- FORWARD_0: 'urn:xmpp:forward:0',
-
-// XEP-0300
- HASHES_1: 'urn:xmpp:hashes:1',
-
-// XEP-0301
- RTT_0: 'urn:xmpp:rtt:0',
-
-// XEP-0307
- MUC_UNIQUE: 'http://jabber.org/protocol/muc#unique',
-
-// XEP-308
- CORRECTION_0: 'urn:xmpp:message-correct:0',
-
-// XEP-0310
- PSA: 'urn:xmpp:psa',
-
-// XEP-0313
- MAM_TMP: 'urn:xmpp:mam:tmp',
- MAM_0: 'urn:xmpp:mam:0',
-
-// XEP-0317
- HATS_0: 'urn:xmpp:hats:0',
-
-// XEP-0319
- IDLE_1: 'urn:xmpp:idle:1',
-
-// XEP-0320
- JINGLE_DTLS_0: 'urn:xmpp:jingle:apps:dtls:0',
-
-// XEP-0328
- JID_PREP_0: 'urn:xmpp:jidprep:0',
-
-// XEP-0334
- HINTS: 'urn:xmpp:hints',
-
-// XEP-0335
- JSON_0: 'urn:xmpp:json:0',
-
-// XEP-0337
- EVENTLOG: 'urn:xmpp:eventlog',
-
-// XEP-0338
- JINGLE_GROUPING_0: 'urn:xmpp:jingle:apps:grouping:0',
-
-// XEP-0339
- JINGLE_RTP_SSMA_0: 'urn:xmpp:jingle:apps:rtp:ssma:0',
-
-// XEP-0340
- COLIBRI: 'http://jitsi.org/protocol/colibri',
-
-// XEP-0343
- DTLS_SCTP_1: 'urn:xmpp:jingle:transports:dtls-sctp:1',
-
-// XEP-0352
- CSI: 'urn:xmpp:csi',
-
-// XEP-0353
- JINGLE_MSG_INITIATE_0: 'urn:xmpp:jingle:jingle-message:0',
-
-// XEP-0357
- PUSH_0: 'urn:xmpp:push:0',
-
-// XEP-0358
- JINGLE_PUB_1: 'urn:xmpp:jinglepub:1'
-};
-
-},{}],132:[function(require,module,exports){
-module.exports = {
- Type: {
- SUBSCRIBE: 'subscribe',
- SUBSCRIBED: 'subscribed',
- UNSUBSCRIBE: 'unsubscribe',
- UNSUBSCRIBED: 'unsubscribed',
- PROBE: 'probe',
- UNAVAILABLE: 'unavailable'
- },
- Show: {
- CHAT: 'chat',
- AWAY: 'away',
- DO_NOT_DISTURB: 'dnd',
- EXTENDED_AWAY: 'xa'
- }
-};
-
-},{}],133:[function(require,module,exports){
-module.exports = {
- Affiliation: {
- MEMBER: 'member',
- NONE: 'none',
- OUTCAST: 'outcast',
- OWNER: 'owner',
- PUBLISHER: 'publisher',
- PUBLISH_ONLY: 'publish-only'
- },
- Subscription: {
- NONE: 'none',
- PENDING: 'pending',
- UNCONFIGURED: 'unconfigured',
- SUBSCRIBED: 'subscribed'
- },
- AccessModel: {
- OPEN: 'open',
- PRESENCE: 'presence',
- ROSTER: 'roster',
- AUTHORIZE: 'authorize',
- WHITELIST: 'whitelist'
- },
- Condition: {
- CONFLICT: 'conflict'
- }
-};
-
-},{}],134:[function(require,module,exports){
+},{"xmpp-jid":218}],57:[function(require,module,exports){
'use strict';
-var StringPrep = require('./lib/stringprep');
-
-// All of our StringPrep fallbacks work correctly
-// in the ASCII range, so we can reliably mark
-// ASCII-only JIDs as prepped.
-var ASCII = /^[\x00-\x7F]*$/;
-
-
-
-function bareJID(local, domain) {
- if (local) {
- return local + '@' + domain;
- }
- return domain;
-}
-
-function fullJID(local, domain, resource) {
- if (resource) {
- return bareJID(local, domain) + '/' + resource;
- }
- return bareJID(local, domain);
-}
-
-
-exports.prep = function (data) {
- var local = data.local;
- var domain = data.domain;
- var resource = data.resource;
- var unescapedLocal = local;
-
- if (local) {
- local = StringPrep.nodeprep(local);
- unescapedLocal = exports.unescape(local);
- }
-
- if (resource) {
- resource = StringPrep.resourceprep(resource);
- }
-
- if (domain[domain.length - 1] === '.') {
- domain = domain.slice(0, domain.length - 1);
- }
-
- domain = StringPrep.nameprep(domain.split('.').map(StringPrep.toUnicode).join('.'));
-
- return {
- prepped: data.prepped || StringPrep.available,
- local: local,
- domain: domain,
- resource: resource,
- bare: bareJID(local, domain),
- full: fullJID(local, domain, resource),
- unescapedLocal: unescapedLocal,
- unescapedBare: bareJID(unescapedLocal, domain),
- unescapedFull: fullJID(unescapedLocal, domain, resource)
- };
-};
-
-exports.parse = function (jid, trusted) {
- var local = '';
- var domain = '';
- var resource = '';
-
- trusted = trusted || ASCII.test(jid);
-
- var resourceStart = jid.indexOf('/');
- if (resourceStart > 0) {
- resource = jid.slice(resourceStart + 1);
- jid = jid.slice(0, resourceStart);
- }
-
- var localEnd = jid.indexOf('@');
- if (localEnd > 0) {
- local = jid.slice(0, localEnd);
- jid = jid.slice(localEnd + 1);
- }
-
- domain = jid;
-
- var preppedJID = exports.prep({
- local: local,
- domain: domain,
- resource: resource,
- });
-
- preppedJID.prepped = preppedJID.prepped || trusted;
-
- return preppedJID;
-};
-
-exports.equal = function (jid1, jid2, requirePrep) {
- jid1 = new exports.JID(jid1);
- jid2 = new exports.JID(jid2);
- if (arguments.length === 2) {
- requirePrep = true;
- }
- return jid1.local === jid2.local &&
- jid1.domain === jid2.domain &&
- jid1.resource === jid2.resource &&
- (requirePrep ? jid1.prepped && jid2.prepped : true);
-};
-
-exports.equalBare = function (jid1, jid2, requirePrep) {
- jid1 = new exports.JID(jid1);
- jid2 = new exports.JID(jid2);
- if (arguments.length === 2) {
- requirePrep = true;
- }
- return jid1.local === jid2.local &&
- jid1.domain === jid2.domain &&
- (requirePrep ? jid1.prepped && jid2.prepped : true);
-};
-
-exports.isBare = function (jid) {
- jid = new exports.JID(jid);
-
- var hasResource = !!jid.resource;
-
- return !hasResource;
-};
-
-exports.isFull = function (jid) {
- jid = new exports.JID(jid);
-
- var hasResource = !!jid.resource;
-
- return hasResource;
-};
-
-exports.escape = function (val) {
- return val.replace(/^\s+|\s+$/g, '')
- .replace(/\\5c/g, '\\5c5c')
- .replace(/\\20/g, '\\5c20')
- .replace(/\\22/g, '\\5c22')
- .replace(/\\26/g, '\\5c26')
- .replace(/\\27/g, '\\5c27')
- .replace(/\\2f/g, '\\5c2f')
- .replace(/\\3a/g, '\\5c3a')
- .replace(/\\3c/g, '\\5c3c')
- .replace(/\\3e/g, '\\5c3e')
- .replace(/\\40/g, '\\5c40')
- .replace(/ /g, '\\20')
- .replace(/\"/g, '\\22')
- .replace(/\&/g, '\\26')
- .replace(/\'/g, '\\27')
- .replace(/\//g, '\\2f')
- .replace(/:/g, '\\3a')
- .replace(/</g, '\\3c')
- .replace(/>/g, '\\3e')
- .replace(/@/g, '\\40');
-};
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
-exports.unescape = function (val) {
- return val.replace(/\\20/g, ' ')
- .replace(/\\22/g, '"')
- .replace(/\\26/g, '&')
- .replace(/\\27/g, '\'')
- .replace(/\\2f/g, '/')
- .replace(/\\3a/g, ':')
- .replace(/\\3c/g, '<')
- .replace(/\\3e/g, '>')
- .replace(/\\40/g, '@')
- .replace(/\\5c/g, '\\');
-};
+var _xmppConstants = require('xmpp-constants');
+exports['default'] = function (JXT) {
-exports.create = function (local, domain, resource) {
- return new exports.JID(local, domain, resource);
-};
+ var Utils = JXT.utils;
-exports.JID = function JID(localOrJID, domain, resource) {
- var parsed = {};
- if (localOrJID && !domain && !resource) {
- if (typeof localOrJID === 'string') {
- parsed = exports.parse(localOrJID);
- } else if (localOrJID._isJID || localOrJID instanceof exports.JID) {
- parsed = localOrJID;
- } else {
- throw new Error('Invalid argument type');
- }
- } else if (domain) {
- var trusted = ASCII.test(localOrJID) && ASCII.test(domain);
- if (resource) {
- trusted = trusted && ASCII.test(resource);
+ var Address = JXT.define({
+ name: '_address',
+ namespace: _xmppConstants.Namespace.ADDRESS,
+ element: 'address',
+ fields: {
+ jid: Utils.jidAttribute('jid'),
+ uri: Utils.attribute('uri'),
+ node: Utils.attribute('node'),
+ description: Utils.attribute('desc'),
+ delivered: Utils.boolAttribute('delivered'),
+ type: Utils.attribute('type')
}
+ });
- parsed = exports.prep({
- local: exports.escape(localOrJID),
- domain: domain,
- resource: resource,
- prepped: trusted
- });
- } else {
- parsed = {};
- }
-
- this._isJID = true;
-
- this.local = parsed.local || '';
- this.domain = parsed.domain || '';
- this.resource = parsed.resource || '';
- this.bare = parsed.bare || '';
- this.full = parsed.full || '';
-
- this.unescapedLocal = parsed.unescapedLocal || '';
- this.unescapedBare = parsed.unescapedBare || '';
- this.unescapedFull = parsed.unescapedFull || '';
-
- this.prepped = parsed.prepped;
-};
-
-exports.JID.prototype.toString = function () {
- return this.full;
-};
-
-exports.JID.prototype.toJSON = function () {
- return this.full;
-};
-
-},{"./lib/stringprep":135}],135:[function(require,module,exports){
-'use strict';
-
-var punycode = require('punycode');
-
-
-exports.available = false;
+ var Addresses = Utils.subMultiExtension(_xmppConstants.Namespace.ADDRESS, 'addresses', Address);
-exports.toUnicode = punycode.toUnicode;
-
-exports.nameprep = function (str) {
- return str.toLowerCase();
-};
+ JXT.withMessage(function (Message) {
+ JXT.add(Message, 'addresses', Addresses);
+ });
-exports.nodeprep = function (str) {
- return str.toLowerCase();
+ JXT.withPresence(function (Presence) {
+ JXT.add(Presence, 'addresses', Addresses);
+ });
};
-exports.resourceprep = function (str) {
- return str;
-};
+module.exports = exports['default'];
-},{"punycode":11}],136:[function(require,module,exports){
+},{"xmpp-constants":212}],58:[function(require,module,exports){
'use strict';
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
@@ -16767,7 +9172,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"babel-runtime/helpers/interop-require-default":197,"lodash.foreach":212,"xmpp-constants":220}],137:[function(require,module,exports){
+},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],59:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -16796,7 +9201,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],138:[function(require,module,exports){
+},{"xmpp-constants":212}],60:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -16815,14 +9220,14 @@ exports['default'] = function (JXT) {
get: function get() {
var result = [];
- var items = types.find(this.xml, _xmppConstants.Namespace.BLOCKING, 'item');
+ var items = Utils.find(this.xml, _xmppConstants.Namespace.BLOCKING, 'item');
if (!items.length) {
return result;
}
items.forEach(function (item) {
- result.push(new _xmppJid.JID(types.getAttribute(item, 'jid', '')));
+ result.push(new _xmppJid.JID(Utils.getAttribute(item, 'jid', '')));
});
return result;
@@ -16832,8 +9237,8 @@ exports['default'] = function (JXT) {
var self = this;
values.forEach(function (value) {
- var item = types.createElement(_xmppConstants.Namespace.BLOCKING, 'item', _xmppConstants.Namespace.BLOCKING);
- types.setAttribute(item, 'jid', value.toString());
+ var item = Utils.createElement(_xmppConstants.Namespace.BLOCKING, 'item', _xmppConstants.Namespace.BLOCKING);
+ Utils.setAttribute(item, 'jid', value.toString());
self.xml.appendChild(item);
});
}
@@ -16873,7 +9278,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],139:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],61:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -16905,7 +9310,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],140:[function(require,module,exports){
+},{"xmpp-constants":212}],62:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -16946,7 +9351,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],141:[function(require,module,exports){
+},{"xmpp-constants":212}],63:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17025,7 +9430,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],142:[function(require,module,exports){
+},{"xmpp-constants":212}],64:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17084,7 +9489,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],143:[function(require,module,exports){
+},{"xmpp-constants":212}],65:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17170,7 +9575,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],144:[function(require,module,exports){
+},{"xmpp-constants":212}],66:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17208,7 +9613,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],145:[function(require,module,exports){
+},{"xmpp-constants":212}],67:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17507,7 +9912,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],146:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],68:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17537,7 +9942,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],147:[function(require,module,exports){
+},{"xmpp-constants":212}],69:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17625,7 +10030,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],148:[function(require,module,exports){
+},{"xmpp-constants":212}],70:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17704,7 +10109,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],149:[function(require,module,exports){
+},{"xmpp-constants":212}],71:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17760,7 +10165,103 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],150:[function(require,module,exports){
+},{"xmpp-constants":212}],72:[function(require,module,exports){
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+
+var _xmppConstants = require('xmpp-constants');
+
+var FT_NS = _xmppConstants.Namespace.FILE_TRANSFER_4;
+
+exports['default'] = function (JXT) {
+
+ var Utils = JXT.utils;
+
+ var File = JXT.define({
+ name: 'file',
+ namespace: FT_NS,
+ element: 'file',
+ fields: {
+ name: Utils.textSub(FT_NS, 'name'),
+ description: Utils.textSub(FT_NS, 'desc'),
+ mediaType: Utils.textSub(FT_NS, 'media-type'),
+ size: Utils.numberSub(FT_NS, 'size'),
+ date: Utils.dateSub(FT_NS, 'date')
+ }
+ });
+
+ var Range = JXT.define({
+ name: 'range',
+ namespace: FT_NS,
+ element: 'range',
+ fields: {
+ offset: Utils.numberAttribute('offset'),
+ length: Utils.numberAttribute('length')
+ }
+ });
+
+ var FileTransfer = JXT.define({
+ name: '_' + FT_NS,
+ namespace: FT_NS,
+ element: 'description',
+ tags: ['jingle-application'],
+ fields: {
+ applicationType: { value: FT_NS }
+ }
+ });
+
+ var Received = JXT.define({
+ name: '_{' + FT_NS + '}received',
+ namespace: FT_NS,
+ element: 'received',
+ tags: ['jingle-info'],
+ fields: {
+ infoType: { value: '{' + FT_NS + '}received' },
+ creator: Utils.attribute('creator'),
+ name: Utils.attribute('name')
+ }
+ });
+
+ var Checksum = JXT.define({
+ name: '_{' + FT_NS + '}checksum',
+ namespace: FT_NS,
+ element: 'checksum',
+ tags: ['jingle-info'],
+ fields: {
+ infoType: { value: '{' + FT_NS + '}checksum' },
+ creator: Utils.attribute('creator'),
+ name: Utils.attribute('name')
+ }
+ });
+
+ JXT.extend(File, Range);
+ JXT.extend(Checksum, File);
+ JXT.extend(FileTransfer, File);
+
+ JXT.withDefinition('hash', _xmppConstants.Namespace.HASHES_1, function (Hash) {
+
+ JXT.extend(File, Hash, 'hashes');
+ JXT.extend(Range, Hash, 'hashes');
+ });
+
+ JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
+
+ JXT.extend(Content, FileTransfer);
+ });
+
+ JXT.withDefinition('jingle', _xmppConstants.Namespace.JINGLE_1, function (Jingle) {
+
+ JXT.extend(Jingle, Received);
+ JXT.extend(Jingle, Checksum);
+ });
+};
+
+module.exports = exports['default'];
+
+},{"xmpp-constants":212}],73:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17812,9 +10313,9 @@ exports['default'] = function (JXT) {
name: '_filetransfer',
namespace: FT_NS,
element: 'description',
- tags: ['jingle-description'],
+ tags: ['jingle-application'],
fields: {
- descType: { value: 'filetransfer' },
+ applicationType: { value: 'filetransfer' },
offer: Utils.subExtension('offer', FT_NS, 'offer', File),
request: Utils.subExtension('request', FT_NS, 'request', File)
}
@@ -17836,7 +10337,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],151:[function(require,module,exports){
+},{"xmpp-constants":212}],74:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17853,15 +10354,24 @@ exports['default'] = function (JXT) {
element: 'forwarded'
});
- JXT.extendIQ(Forwarded);
- JXT.extendPresence(Forwarded);
-
JXT.withMessage(function (Message) {
JXT.extend(Message, Forwarded);
JXT.extend(Forwarded, Message);
});
+ JXT.withPresence(function (Presence) {
+
+ JXT.extend(Presence, Forwarded);
+ JXT.extend(Forwarded, Presence);
+ });
+
+ JXT.withIQ(function (IQ) {
+
+ JXT.extend(IQ, Forwarded);
+ JXT.extend(Forwarded, IQ);
+ });
+
JXT.withDefinition('delay', _xmppConstants.Namespace.DELAY, function (Delayed) {
JXT.extend(Forwarded, Delayed);
@@ -17870,7 +10380,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],152:[function(require,module,exports){
+},{"xmpp-constants":212}],75:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17910,7 +10420,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],153:[function(require,module,exports){
+},{"xmpp-constants":212}],76:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17960,7 +10470,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],154:[function(require,module,exports){
+},{"xmpp-constants":212}],77:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -17984,7 +10494,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],155:[function(require,module,exports){
+},{"xmpp-constants":212}],78:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18014,7 +10524,143 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],156:[function(require,module,exports){
+},{"xmpp-constants":212}],79:[function(require,module,exports){
+(function (Buffer){
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+
+var _xmppConstants = require('xmpp-constants');
+
+var NS_IBB = 'http://jabber.org/protocol/ibb';
+var NS_JIBB = 'urn:xmpp:jingle:transports:ibb:1';
+
+exports['default'] = function (JXT) {
+
+ var Utils = JXT.utils;
+
+ var IBB = {
+ get: function get() {
+
+ var data = Utils.find(this.xml, NS_IBB, 'data');
+ if (data.length) {
+ data = data[0];
+ return {
+ action: 'data',
+ sid: Utils.getAttribute(data, 'sid'),
+ seq: parseInt(Utils.getAttribute(data, 'seq') || '0', 10),
+ data: new Buffer(Utils.getText(data), 'base64')
+ };
+ }
+
+ var open = Utils.find(this.xml, NS_IBB, 'open');
+ if (open.length) {
+ open = open[0];
+ var ack = Utils.getAttribute(open, 'stanza');
+ if (ack === 'message') {
+ ack = false;
+ } else {
+ ack = true;
+ }
+
+ return {
+ action: 'open',
+ sid: Utils.getAttribute(open, 'sid'),
+ blockSize: Utils.getAttribute(open, 'block-size'),
+ ack: ack
+ };
+ }
+
+ var close = Utils.find(this.xml, NS_IBB, 'close');
+ if (close.length) {
+ return {
+ action: 'close',
+ sid: Utils.getAttribute(close[0], 'sid')
+ };
+ }
+ },
+ set: function set(value) {
+
+ if (value.action === 'data') {
+ var data = Utils.createElement(NS_IBB, 'data');
+ Utils.setAttribute(data, 'sid', value.sid);
+ Utils.setAttribute(data, 'seq', value.seq.toString());
+ Utils.setText(data, value.data.toString('base64'));
+ this.xml.appendChild(data);
+ }
+
+ if (value.action === 'open') {
+ var _open = Utils.createElement(NS_IBB, 'open');
+ Utils.setAttribute(_open, 'sid', value.sid);
+ Utils.setAttribute(_open, 'block-size', (value.blockSize || '4096').toString());
+ if (value.ack === false) {
+ Utils.setAttribute(_open, 'stanza', 'message');
+ } else {
+ Utils.setAttribute(_open, 'stanza', 'iq');
+ }
+ this.xml.appendChild(_open);
+ }
+
+ if (value.action === 'close') {
+ var _close = Utils.createElement(NS_IBB, 'close');
+ Utils.setAttribute(_close, 'sid', value.sid);
+ this.xml.appendChild(_close);
+ }
+ }
+ };
+
+ var JingleIBB = JXT.define({
+ name: '_' + NS_JIBB,
+ namespace: NS_JIBB,
+ element: 'transport',
+ tags: ['jingle-transport'],
+ fields: {
+ transportType: {
+ value: NS_JIBB
+ },
+ sid: Utils.attribute('sid'),
+ blockSize: Utils.numberAttribute('block-size'),
+ ack: {
+ get: function get() {
+ var value = Utils.getAttribute(this.xml, 'stanza');
+ if (value === 'message') {
+ return false;
+ }
+ return true;
+ },
+ set: function set(value) {
+ if (value.ack === false) {
+ Utils.setAttribute(this.xml, 'stanza', 'message');
+ } else {
+ Utils.setAttribute(this.xml, 'stanza', 'iq');
+ }
+ }
+ }
+ }
+ });
+
+ JXT.withDefinition('content', _xmppConstants.Namespace.JINGLE_1, function (Content) {
+
+ JXT.extend(Content, JingleIBB);
+ });
+
+ JXT.withIQ(function (IQ) {
+
+ JXT.add(IQ, 'ibb', IBB);
+ });
+
+ JXT.withMessage(function (Message) {
+
+ JXT.add(Message, 'ibb', IBB);
+ });
+};
+
+module.exports = exports['default'];
+
+}).call(this,require("buffer").Buffer)
+},{"buffer":6,"xmpp-constants":212}],80:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18033,7 +10679,7 @@ exports['default'] = function (JXT) {
element: 'transport',
tags: ['jingle-transport'],
fields: {
- transType: { value: 'iceUdp' },
+ transportType: { value: 'iceUdp' },
pwd: Utils.attribute('pwd'),
ufrag: Utils.attribute('ufrag')
}
@@ -18107,7 +10753,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],157:[function(require,module,exports){
+},{"xmpp-constants":212}],81:[function(require,module,exports){
'use strict';
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
@@ -18116,6 +10762,10 @@ Object.defineProperty(exports, '__esModule', {
value: true
});
+var _addresses = require('./addresses');
+
+var _addresses2 = _interopRequireDefault(_addresses);
+
var _avatar = require('./avatar');
var _avatar2 = _interopRequireDefault(_avatar);
@@ -18176,6 +10826,10 @@ var _file = require('./file');
var _file2 = _interopRequireDefault(_file);
+var _file3 = require('./file3');
+
+var _file32 = _interopRequireDefault(_file3);
+
var _forwarded = require('./forwarded');
var _forwarded2 = _interopRequireDefault(_forwarded);
@@ -18200,6 +10854,10 @@ var _iceUdp = require('./iceUdp');
var _iceUdp2 = _interopRequireDefault(_iceUdp);
+var _ibb = require('./ibb');
+
+var _ibb2 = _interopRequireDefault(_ibb);
+
var _iq = require('./iq');
var _iq2 = _interopRequireDefault(_iq);
@@ -18354,6 +11012,7 @@ var _visibility2 = _interopRequireDefault(_visibility);
exports['default'] = function (JXT) {
+ JXT.use(_addresses2['default']);
JXT.use(_avatar2['default']);
JXT.use(_bind2['default']);
JXT.use(_blocking2['default']);
@@ -18369,12 +11028,14 @@ exports['default'] = function (JXT) {
JXT.use(_error2['default']);
JXT.use(_extdisco2['default']);
JXT.use(_file2['default']);
+ JXT.use(_file32['default']);
JXT.use(_forwarded2['default']);
JXT.use(_framing2['default']);
JXT.use(_geoloc2['default']);
JXT.use(_hash2['default']);
JXT.use(_hats2['default']);
JXT.use(_iceUdp2['default']);
+ JXT.use(_ibb2['default']);
JXT.use(_iq2['default']);
JXT.use(_jidprep2['default']);
JXT.use(_jingle2['default']);
@@ -18417,7 +11078,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"./avatar":136,"./bind":137,"./blocking":138,"./bob":139,"./bookmarks":140,"./bosh":141,"./carbons":142,"./command":143,"./csi":144,"./dataforms":145,"./delayed":146,"./disco":147,"./error":148,"./extdisco":149,"./file":150,"./forwarded":151,"./framing":152,"./geoloc":153,"./hash":154,"./hats":155,"./iceUdp":156,"./iq":158,"./jidprep":159,"./jingle":160,"./json":161,"./logging":162,"./mam":163,"./message":164,"./mood":165,"./muc":166,"./nick":167,"./oob":168,"./ping":169,"./presence":170,"./private":171,"./psa":172,"./pubsub":173,"./pubsubError":174,"./pubsubEvents":175,"./pubsubOwner":176,"./push":177,"./reach":178,"./register":179,"./roster":180,"./rsm":181,"./rtp":182,"./rtt":183,"./sasl":184,"./session":185,"./shim":186,"./sm":187,"./stream":188,"./streamError":189,"./streamFeatures":190,"./time":191,"./tune":192,"./vcard":193,"./version":194,"./visibility":195,"babel-runtime/helpers/interop-require-default":197}],158:[function(require,module,exports){
+},{"./addresses":57,"./avatar":58,"./bind":59,"./blocking":60,"./bob":61,"./bookmarks":62,"./bosh":63,"./carbons":64,"./command":65,"./csi":66,"./dataforms":67,"./delayed":68,"./disco":69,"./error":70,"./extdisco":71,"./file":72,"./file3":73,"./forwarded":74,"./framing":75,"./geoloc":76,"./hash":77,"./hats":78,"./ibb":79,"./iceUdp":80,"./iq":82,"./jidprep":83,"./jingle":84,"./json":85,"./logging":86,"./mam":87,"./message":88,"./mood":89,"./muc":90,"./nick":91,"./oob":92,"./ping":93,"./presence":94,"./private":95,"./psa":96,"./pubsub":97,"./pubsubError":98,"./pubsubEvents":99,"./pubsubOwner":100,"./push":101,"./reach":102,"./register":103,"./roster":104,"./rsm":105,"./rtp":106,"./rtt":107,"./sasl":108,"./session":109,"./shim":110,"./sm":111,"./stream":112,"./streamError":113,"./streamFeatures":114,"./time":115,"./tune":116,"./vcard":117,"./version":118,"./visibility":119,"babel-runtime/helpers/interop-require-default":2}],82:[function(require,module,exports){
'use strict';
var _Object$assign = require('babel-runtime/core-js/object/assign')['default'];
@@ -18488,7 +11149,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"babel-runtime/core-js/object/assign":196,"xmpp-constants":220}],159:[function(require,module,exports){
+},{"babel-runtime/core-js/object/assign":1,"xmpp-constants":212}],83:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18523,7 +11184,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],160:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],84:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18547,7 +11208,40 @@ exports['default'] = function (JXT) {
action: Utils.attribute('action'),
initiator: Utils.attribute('initiator'),
responder: Utils.attribute('responder'),
- sid: Utils.attribute('sid')
+ sid: Utils.attribute('sid'),
+ info: {
+ get: function get() {
+
+ var opts = JXT.tagged('jingle-info').map(function (Info) {
+
+ return Info.prototype._name;
+ });
+ for (var i = 0, len = opts.length; i < len; i++) {
+ if (this._extensions[opts[i]]) {
+ return this._extensions[opts[i]];
+ }
+ }
+ if (Utils.getAttribute(this.xml, 'action') === 'session-info') {
+ if (this.xml.children.length === 0) {
+ return {
+ infoType: 'ping'
+ };
+ }
+ return {
+ infoType: 'unknown'
+ };
+ }
+ },
+ set: function set(value) {
+
+ if (value.infoType === 'ping') {
+ return;
+ }
+
+ var ext = '_' + value.infoType;
+ this[ext] = value;
+ }
+ }
}
});
@@ -18560,10 +11254,10 @@ exports['default'] = function (JXT) {
disposition: Utils.attribute('disposition', 'session'),
name: Utils.attribute('name'),
senders: Utils.attribute('senders', 'both'),
- description: {
+ application: {
get: function get() {
- var opts = JXT.tagged('jingle-description').map(function (Description) {
+ var opts = JXT.tagged('jingle-application').map(function (Description) {
return Description.prototype._name;
});
@@ -18575,7 +11269,7 @@ exports['default'] = function (JXT) {
},
set: function set(value) {
- var ext = '_' + value.descType;
+ var ext = '_' + value.applicationType;
this[ext] = value;
}
},
@@ -18594,7 +11288,26 @@ exports['default'] = function (JXT) {
},
set: function set(value) {
- var ext = '_' + value.transType;
+ var ext = '_' + value.transportType;
+ this[ext] = value;
+ }
+ },
+ security: {
+ get: function get() {
+
+ var opts = JXT.tagged('jingle-security').map(function (Info) {
+
+ return Security.prototype._name;
+ });
+ for (var i = 0, len = opts.length; i < len; i++) {
+ if (this._extensions[opts[i]]) {
+ return this._extensions[opts[i]];
+ }
+ }
+ },
+ set: function set(value) {
+
+ var ext = '_' + value.securityType;
this[ext] = value;
}
}
@@ -18635,7 +11348,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],161:[function(require,module,exports){
+},{"xmpp-constants":212}],85:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18676,7 +11389,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],162:[function(require,module,exports){
+},{"xmpp-constants":212}],86:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18726,7 +11439,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],163:[function(require,module,exports){
+},{"xmpp-constants":212}],87:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18853,7 +11566,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220,"xmpp-jid":226}],164:[function(require,module,exports){
+},{"xmpp-constants":212,"xmpp-jid":218}],88:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18917,7 +11630,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],165:[function(require,module,exports){
+},{"xmpp-constants":212}],89:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -18946,7 +11659,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],166:[function(require,module,exports){
+},{"xmpp-constants":212}],90:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19227,7 +11940,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],167:[function(require,module,exports){
+},{"xmpp-constants":212}],91:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19258,7 +11971,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],168:[function(require,module,exports){
+},{"xmpp-constants":212}],92:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19284,7 +11997,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],169:[function(require,module,exports){
+},{"xmpp-constants":212}],93:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19306,7 +12019,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],170:[function(require,module,exports){
+},{"xmpp-constants":212}],94:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19402,7 +12115,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],171:[function(require,module,exports){
+},{"xmpp-constants":212}],95:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19424,7 +12137,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],172:[function(require,module,exports){
+},{"xmpp-constants":212}],96:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19453,7 +12166,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],173:[function(require,module,exports){
+},{"xmpp-constants":212}],97:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19594,6 +12307,7 @@ exports['default'] = function (JXT) {
element: 'unsubscribe',
fields: {
node: Utils.attribute('node'),
+ subid: Utils.attribute('subid'),
jid: Utils.jidAttribute('jid')
}
});
@@ -19671,7 +12385,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],174:[function(require,module,exports){
+},{"xmpp-constants":212}],98:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19703,7 +12417,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],175:[function(require,module,exports){
+},{"xmpp-constants":212}],99:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19846,7 +12560,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],176:[function(require,module,exports){
+},{"xmpp-constants":212}],100:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -19961,7 +12675,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],177:[function(require,module,exports){
+},{"xmpp-constants":212}],101:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20011,7 +12725,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],178:[function(require,module,exports){
+},{"xmpp-constants":212}],102:[function(require,module,exports){
'use strict';
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
@@ -20095,7 +12809,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"babel-runtime/helpers/interop-require-default":197,"lodash.foreach":212,"xmpp-constants":220}],179:[function(require,module,exports){
+},{"babel-runtime/helpers/interop-require-default":2,"lodash.foreach":134,"xmpp-constants":212}],103:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20151,7 +12865,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],180:[function(require,module,exports){
+},{"xmpp-constants":212}],104:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20210,7 +12924,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],181:[function(require,module,exports){
+},{"xmpp-constants":212}],105:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20255,7 +12969,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],182:[function(require,module,exports){
+},{"xmpp-constants":212}],106:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20335,9 +13049,9 @@ exports['default'] = function (JXT) {
name: '_rtp',
namespace: _xmppConstants.Namespace.JINGLE_RTP_1,
element: 'description',
- tags: ['jingle-description'],
+ tags: ['jingle-application'],
fields: {
- descType: { value: 'rtp' },
+ applicationType: { value: 'rtp' },
media: Utils.attribute('media'),
ssrc: Utils.attribute('ssrc'),
mux: Utils.boolSub(_xmppConstants.Namespace.JINGLE_RTP_1, 'rtcp-mux'),
@@ -20571,7 +13285,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],183:[function(require,module,exports){
+},{"xmpp-constants":212}],107:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20683,7 +13397,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],184:[function(require,module,exports){
+},{"xmpp-constants":212}],108:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20803,7 +13517,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],185:[function(require,module,exports){
+},{"xmpp-constants":212}],109:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20830,7 +13544,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],186:[function(require,module,exports){
+},{"xmpp-constants":212}],110:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20887,7 +13601,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],187:[function(require,module,exports){
+},{"xmpp-constants":212}],111:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -20985,7 +13699,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],188:[function(require,module,exports){
+},{"xmpp-constants":212}],112:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21014,7 +13728,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],189:[function(require,module,exports){
+},{"xmpp-constants":212}],113:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21080,7 +13794,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],190:[function(require,module,exports){
+},{"xmpp-constants":212}],114:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21116,7 +13830,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],191:[function(require,module,exports){
+},{"xmpp-constants":212}],115:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21142,7 +13856,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],192:[function(require,module,exports){
+},{"xmpp-constants":212}],116:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21176,7 +13890,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],193:[function(require,module,exports){
+},{"xmpp-constants":212}],117:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21294,7 +14008,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],194:[function(require,module,exports){
+},{"xmpp-constants":212}],118:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21321,7 +14035,7 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],195:[function(require,module,exports){
+},{"xmpp-constants":212}],119:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, '__esModule', {
@@ -21341,225 +14055,11 @@ exports['default'] = function (JXT) {
module.exports = exports['default'];
-},{"xmpp-constants":220}],196:[function(require,module,exports){
-module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true };
-},{"core-js/library/fn/object/assign":198}],197:[function(require,module,exports){
-"use strict";
-
-exports["default"] = function (obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-};
-
-exports.__esModule = true;
-},{}],198:[function(require,module,exports){
-require('../../modules/es6.object.assign');
-module.exports = require('../../modules/$.core').Object.assign;
-},{"../../modules/$.core":201,"../../modules/es6.object.assign":211}],199:[function(require,module,exports){
-module.exports = function(it){
- if(typeof it != 'function')throw TypeError(it + ' is not a function!');
- return it;
-};
-},{}],200:[function(require,module,exports){
-var toString = {}.toString;
-
-module.exports = function(it){
- return toString.call(it).slice(8, -1);
-};
-},{}],201:[function(require,module,exports){
-var core = module.exports = {version: '1.2.6'};
-if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-},{}],202:[function(require,module,exports){
-// optional / simple context binding
-var aFunction = require('./$.a-function');
-module.exports = function(fn, that, length){
- aFunction(fn);
- if(that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- }
- return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-};
-},{"./$.a-function":199}],203:[function(require,module,exports){
-// 7.2.1 RequireObjectCoercible(argument)
-module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-};
-},{}],204:[function(require,module,exports){
-var global = require('./$.global')
- , core = require('./$.core')
- , ctx = require('./$.ctx')
- , PROTOTYPE = 'prototype';
-
-var $export = function(type, name, source){
- var IS_FORCED = type & $export.F
- , IS_GLOBAL = type & $export.G
- , IS_STATIC = type & $export.S
- , IS_PROTO = type & $export.P
- , IS_BIND = type & $export.B
- , IS_WRAP = type & $export.W
- , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
- , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
- , key, own, out;
- if(IS_GLOBAL)source = name;
- for(key in source){
- // contains in native
- own = !IS_FORCED && target && key in target;
- if(own && key in exports)continue;
- // export native or passed
- out = own ? target[key] : source[key];
- // prevent global pollution for namespaces
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
- // bind timers to global for call from export context
- : IS_BIND && own ? ctx(out, global)
- // wrap global constructors for prevent change them in library
- : IS_WRAP && target[key] == out ? (function(C){
- var F = function(param){
- return this instanceof C ? new C(param) : C(param);
- };
- F[PROTOTYPE] = C[PROTOTYPE];
- return F;
- // make static versions for prototype methods
- })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
- }
-};
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-module.exports = $export;
-},{"./$.core":201,"./$.ctx":202,"./$.global":206}],205:[function(require,module,exports){
-module.exports = function(exec){
- try {
- return !!exec();
- } catch(e){
- return true;
- }
-};
-},{}],206:[function(require,module,exports){
-// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-},{}],207:[function(require,module,exports){
-// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = require('./$.cof');
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
- return cof(it) == 'String' ? it.split('') : Object(it);
-};
-},{"./$.cof":200}],208:[function(require,module,exports){
-var $Object = Object;
-module.exports = {
- create: $Object.create,
- getProto: $Object.getPrototypeOf,
- isEnum: {}.propertyIsEnumerable,
- getDesc: $Object.getOwnPropertyDescriptor,
- setDesc: $Object.defineProperty,
- setDescs: $Object.defineProperties,
- getKeys: $Object.keys,
- getNames: $Object.getOwnPropertyNames,
- getSymbols: $Object.getOwnPropertySymbols,
- each: [].forEach
-};
-},{}],209:[function(require,module,exports){
-// 19.1.2.1 Object.assign(target, source, ...)
-var $ = require('./$')
- , toObject = require('./$.to-object')
- , IObject = require('./$.iobject');
-
-// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = require('./$.fails')(function(){
- var a = Object.assign
- , A = {}
- , B = {}
- , S = Symbol()
- , K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function(k){ B[k] = k; });
- return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
-}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
- var T = toObject(target)
- , $$ = arguments
- , $$len = $$.length
- , index = 1
- , getKeys = $.getKeys
- , getSymbols = $.getSymbols
- , isEnum = $.isEnum;
- while($$len > index){
- var S = IObject($$[index++])
- , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
- }
- return T;
-} : Object.assign;
-},{"./$":208,"./$.fails":205,"./$.iobject":207,"./$.to-object":210}],210:[function(require,module,exports){
-// 7.1.13 ToObject(argument)
-var defined = require('./$.defined');
-module.exports = function(it){
- return Object(defined(it));
-};
-},{"./$.defined":203}],211:[function(require,module,exports){
-// 19.1.3.1 Object.assign(target, source)
-var $export = require('./$.export');
-
-$export($export.S + $export.F, 'Object', {assign: require('./$.object-assign')});
-},{"./$.export":204,"./$.object-assign":209}],212:[function(require,module,exports){
-arguments[4][54][0].apply(exports,arguments)
-},{"dup":54,"lodash._arrayeach":213,"lodash._baseeach":214,"lodash._bindcallback":218,"lodash.isarray":219}],213:[function(require,module,exports){
-arguments[4][55][0].apply(exports,arguments)
-},{"dup":55}],214:[function(require,module,exports){
-arguments[4][56][0].apply(exports,arguments)
-},{"dup":56,"lodash.keys":215}],215:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":216,"lodash.isarguments":217,"lodash.isarray":219}],216:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],217:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],218:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],219:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],220:[function(require,module,exports){
-arguments[4][128][0].apply(exports,arguments)
-},{"./lib/jingle":221,"./lib/muc":222,"./lib/namespaces":223,"./lib/presence":224,"./lib/pubsub":225,"dup":128}],221:[function(require,module,exports){
-arguments[4][129][0].apply(exports,arguments)
-},{"dup":129}],222:[function(require,module,exports){
-arguments[4][130][0].apply(exports,arguments)
-},{"dup":130}],223:[function(require,module,exports){
-arguments[4][131][0].apply(exports,arguments)
-},{"dup":131}],224:[function(require,module,exports){
-arguments[4][132][0].apply(exports,arguments)
-},{"dup":132}],225:[function(require,module,exports){
-arguments[4][133][0].apply(exports,arguments)
-},{"dup":133}],226:[function(require,module,exports){
-arguments[4][134][0].apply(exports,arguments)
-},{"./lib/stringprep":227,"dup":134}],227:[function(require,module,exports){
-arguments[4][135][0].apply(exports,arguments)
-},{"dup":135,"punycode":11}],228:[function(require,module,exports){
+},{"xmpp-constants":212}],120:[function(require,module,exports){
'use strict';
var extend = require('lodash.assign');
var uuid = require('uuid');
-var ltx = require('ltx');
var types = require('./lib/types');
var helpers = require('./lib/helpers');
@@ -21631,11 +14131,10 @@ JXT.prototype.build = function (xml) {
};
JXT.prototype.parse = function (str) {
- var xml = ltx.parse(str);
- if (xml.nodeType !== 1) {
+ var xml = helpers.parse(str);
+ if (!xml) {
return;
}
-
return this.build(xml);
};
@@ -21739,16 +14238,27 @@ JXT.getGlobalJXT = function () {
module.exports = JXT;
-},{"./lib/helpers":229,"./lib/stanza":230,"./lib/types":231,"lodash.assign":232,"ltx":245,"uuid":250}],229:[function(require,module,exports){
+},{"./lib/helpers":121,"./lib/stanza":122,"./lib/types":123,"lodash.assign":132,"uuid":199}],121:[function(require,module,exports){
'use strict';
var ltx = require('ltx');
+var DOMElement = require('ltx/lib/DOMElement');
var XML_NS = exports.XML_NS = 'http://www.w3.org/XML/1998/namespace';
+exports.parse = function (str) {
+ var xml = ltx.parse(str, {
+ Element: DOMElement
+ });
+ if (xml.nodeType !== 1) {
+ return;
+ }
+ return xml;
+};
+
exports.createElement = function (NS, name, parentNS) {
- var el = new ltx.Element(name);
+ var el = new DOMElement(name);
if (!parentNS || parentNS !== NS) {
exports.setAttribute(el, 'xmlns', NS);
}
@@ -22020,7 +14530,7 @@ exports.setBoolSub = function (xml, NS, element, value) {
}
};
-},{"ltx":245}],230:[function(require,module,exports){
+},{"ltx":139,"ltx/lib/DOMElement":140}],122:[function(require,module,exports){
'use strict';
var helpers = require('./helpers');
@@ -22072,7 +14582,7 @@ module.exports = function (JXT, opts) {
return self;
}
-
+ Stanza.prototype._isJXT = true;
Stanza.prototype._name = opts.name;
Stanza.prototype._eventname = opts.eventName;
Stanza.prototype._NS = opts.namespace;
@@ -22106,7 +14616,11 @@ module.exports = function (JXT, opts) {
var type = Object.prototype.toString.call(val);
if (type.indexOf('Object') >= 0) {
if (Object.keys(val).length > 0) {
- result[prop] = val;
+ if (val._isJXT) {
+ result[prop] = val.toJSON();
+ } else {
+ result[prop] = val;
+ }
}
} else if (type.indexOf('Array') >= 0) {
if (val.length > 0) {
@@ -22115,7 +14629,7 @@ module.exports = function (JXT, opts) {
for (var n = 0; n < len; n++) {
var nval = val[n];
if (typeof nval !== 'undefined') {
- if (nval.toJSON !== undefined) {
+ if (nval._isJXT) {
vals.push(nval.toJSON());
} else {
vals.push(nval);
@@ -22136,7 +14650,7 @@ module.exports = function (JXT, opts) {
return Stanza;
};
-},{"./helpers":229,"lodash.assign":232}],231:[function(require,module,exports){
+},{"./helpers":121,"lodash.assign":132}],123:[function(require,module,exports){
(function (Buffer){
'use strict';
@@ -22525,7 +15039,9 @@ exports.subMultiExtension = function (NS, sub, ChildJXT) {
existing = createElement(NS, sub, this._NS);
values.forEach(function (value) {
- var content = new ChildJXT(value, null, self);
+ var content = new ChildJXT(value, null, {
+ xml: { namespaceURI: NS }
+ });
existing.appendChild(content.xml);
});
@@ -22535,89 +15051,40 @@ exports.subMultiExtension = function (NS, sub, ChildJXT) {
};
}).call(this,require("buffer").Buffer)
-},{"./helpers":229,"buffer":2,"lodash.assign":232}],232:[function(require,module,exports){
+},{"./helpers":121,"buffer":6,"lodash.assign":132}],124:[function(require,module,exports){
/**
- * lodash 3.2.0 (Custom Build) <https://lodash.com/>
+ * lodash 3.0.0 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
* Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
* Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Available under MIT license <https://lodash.com/license>
*/
-var baseAssign = require('lodash._baseassign'),
- createAssigner = require('lodash._createassigner'),
- keys = require('lodash.keys');
/**
- * A specialized version of `_.assign` for customizing assigned values without
- * support for argument juggling, multiple sources, and `this` binding `customizer`
- * functions.
+ * A specialized version of `_.forEach` for arrays without support for callback
+ * shorthands or `this` binding.
*
* @private
- * @param {Object} object The destination object.
- * @param {Object} source The source object.
- * @param {Function} customizer The function to customize assigned values.
- * @returns {Object} Returns `object`.
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
*/
-function assignWith(object, source, customizer) {
+function arrayEach(array, iteratee) {
var index = -1,
- props = keys(source),
- length = props.length;
+ length = array.length;
while (++index < length) {
- var key = props[index],
- value = object[key],
- result = customizer(value, source[key], key, object, source);
-
- if ((result === result ? (result !== value) : (value === value)) ||
- (value === undefined && !(key in object))) {
- object[key] = result;
+ if (iteratee(array[index], index, array) === false) {
+ break;
}
}
- return object;
+ return array;
}
-/**
- * Assigns own enumerable properties of source object(s) to the destination
- * object. Subsequent sources overwrite property assignments of previous sources.
- * If `customizer` is provided it is invoked to produce the assigned values.
- * The `customizer` is bound to `thisArg` and invoked with five arguments:
- * (objectValue, sourceValue, key, object, source).
- *
- * **Note:** This method mutates `object` and is based on
- * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
- *
- * @static
- * @memberOf _
- * @alias extend
- * @category Object
- * @param {Object} object The destination object.
- * @param {...Object} [sources] The source objects.
- * @param {Function} [customizer] The function to customize assigned values.
- * @param {*} [thisArg] The `this` binding of `customizer`.
- * @returns {Object} Returns `object`.
- * @example
- *
- * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
- * // => { 'user': 'fred', 'age': 40 }
- *
- * // using a customizer callback
- * var defaults = _.partialRight(_.assign, function(value, other) {
- * return _.isUndefined(value) ? other : value;
- * });
- *
- * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
- * // => { 'user': 'barney', 'age': 36 }
- */
-var assign = createAssigner(function(object, source, customizer) {
- return customizer
- ? assignWith(object, source, customizer)
- : baseAssign(object, source);
-});
-
-module.exports = assign;
+module.exports = arrayEach;
-},{"lodash._baseassign":233,"lodash._createassigner":235,"lodash.keys":239}],233:[function(require,module,exports){
+},{}],125:[function(require,module,exports){
/**
* lodash 3.2.0 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -22646,7 +15113,7 @@ function baseAssign(object, source) {
module.exports = baseAssign;
-},{"lodash._basecopy":234,"lodash.keys":239}],234:[function(require,module,exports){
+},{"lodash._basecopy":126,"lodash.keys":137}],126:[function(require,module,exports){
/**
* lodash 3.0.1 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -22680,7 +15147,257 @@ function baseCopy(source, props, object) {
module.exports = baseCopy;
-},{}],235:[function(require,module,exports){
+},{}],127:[function(require,module,exports){
+/**
+ * lodash 3.0.4 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var keys = require('lodash.keys');
+
+/**
+ * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * The base implementation of `_.forEach` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object|string} Returns `collection`.
+ */
+var baseEach = createBaseEach(baseForOwn);
+
+/**
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
+ * each property. Iteratee functions may exit iteration early by explicitly
+ * returning `false`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+var baseFor = createBaseFor();
+
+/**
+ * The base implementation of `_.forOwn` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+function baseForOwn(object, iteratee) {
+ return baseFor(object, iteratee, keys);
+}
+
+/**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Creates a `baseEach` or `baseEachRight` function.
+ *
+ * @private
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+function createBaseEach(eachFunc, fromRight) {
+ return function(collection, iteratee) {
+ var length = collection ? getLength(collection) : 0;
+ if (!isLength(length)) {
+ return eachFunc(collection, iteratee);
+ }
+ var index = fromRight ? length : -1,
+ iterable = toObject(collection);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ if (iteratee(iterable[index], index, iterable) === false) {
+ break;
+ }
+ }
+ return collection;
+ };
+}
+
+/**
+ * Creates a base function for `_.forIn` or `_.forInRight`.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+function createBaseFor(fromRight) {
+ return function(object, iteratee, keysFunc) {
+ var iterable = toObject(object),
+ props = keysFunc(object),
+ length = props.length,
+ index = fromRight ? length : -1;
+
+ while ((fromRight ? index-- : ++index < length)) {
+ var key = props[index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
+ }
+ }
+ return object;
+ };
+}
+
+/**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * that affects Safari on at least iOS 8.1-8.3 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+var getLength = baseProperty('length');
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Converts `value` to an object if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Object} Returns the object.
+ */
+function toObject(value) {
+ return isObject(value) ? value : Object(value);
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+module.exports = baseEach;
+
+},{"lodash.keys":137}],128:[function(require,module,exports){
+/**
+ * lodash 3.0.1 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/**
+ * A specialized version of `baseCallback` which only supports `this` binding
+ * and specifying the number of arguments to provide to `func`.
+ *
+ * @private
+ * @param {Function} func The function to bind.
+ * @param {*} thisArg The `this` binding of `func`.
+ * @param {number} [argCount] The number of arguments to provide to `func`.
+ * @returns {Function} Returns the callback.
+ */
+function bindCallback(func, thisArg, argCount) {
+ if (typeof func != 'function') {
+ return identity;
+ }
+ if (thisArg === undefined) {
+ return func;
+ }
+ switch (argCount) {
+ case 1: return function(value) {
+ return func.call(thisArg, value);
+ };
+ case 3: return function(value, index, collection) {
+ return func.call(thisArg, value, index, collection);
+ };
+ case 4: return function(accumulator, value, index, collection) {
+ return func.call(thisArg, accumulator, value, index, collection);
+ };
+ case 5: return function(value, other, key, object, source) {
+ return func.call(thisArg, value, other, key, object, source);
+ };
+ }
+ return function() {
+ return func.apply(thisArg, arguments);
+ };
+}
+
+/**
+ * This method returns the first argument provided to it.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {*} value Any value.
+ * @returns {*} Returns `value`.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * _.identity(object) === object;
+ * // => true
+ */
+function identity(value) {
+ return value;
+}
+
+module.exports = bindCallback;
+
+},{}],129:[function(require,module,exports){
/**
* lodash 3.1.1 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -22734,9 +15451,146 @@ function createAssigner(assigner) {
module.exports = createAssigner;
-},{"lodash._bindcallback":236,"lodash._isiterateecall":237,"lodash.restparam":238}],236:[function(require,module,exports){
-arguments[4][60][0].apply(exports,arguments)
-},{"dup":60}],237:[function(require,module,exports){
+},{"lodash._bindcallback":128,"lodash._isiterateecall":131,"lodash.restparam":138}],130:[function(require,module,exports){
+/**
+ * lodash 3.9.1 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/** `Object#toString` result references. */
+var funcTag = '[object Function]';
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/**
+ * Checks if `value` is object-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var fnToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = object == null ? undefined : object[key];
+ return isNative(value) ? value : undefined;
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in older versions of Chrome and Safari which return 'function' for regexes
+ // and Safari 8 equivalents which return 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(fnToString.call(value));
+ }
+ return isObjectLike(value) && reIsHostCtor.test(value);
+}
+
+module.exports = getNative;
+
+},{}],131:[function(require,module,exports){
/**
* lodash 3.0.9 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -22870,7 +15724,2556 @@ function isObject(value) {
module.exports = isIterateeCall;
-},{}],238:[function(require,module,exports){
+},{}],132:[function(require,module,exports){
+/**
+ * lodash 3.2.0 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var baseAssign = require('lodash._baseassign'),
+ createAssigner = require('lodash._createassigner'),
+ keys = require('lodash.keys');
+
+/**
+ * A specialized version of `_.assign` for customizing assigned values without
+ * support for argument juggling, multiple sources, and `this` binding `customizer`
+ * functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @param {Function} customizer The function to customize assigned values.
+ * @returns {Object} Returns `object`.
+ */
+function assignWith(object, source, customizer) {
+ var index = -1,
+ props = keys(source),
+ length = props.length;
+
+ while (++index < length) {
+ var key = props[index],
+ value = object[key],
+ result = customizer(value, source[key], key, object, source);
+
+ if ((result === result ? (result !== value) : (value === value)) ||
+ (value === undefined && !(key in object))) {
+ object[key] = result;
+ }
+ }
+ return object;
+}
+
+/**
+ * Assigns own enumerable properties of source object(s) to the destination
+ * object. Subsequent sources overwrite property assignments of previous sources.
+ * If `customizer` is provided it is invoked to produce the assigned values.
+ * The `customizer` is bound to `thisArg` and invoked with five arguments:
+ * (objectValue, sourceValue, key, object, source).
+ *
+ * **Note:** This method mutates `object` and is based on
+ * [`Object.assign`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
+ *
+ * @static
+ * @memberOf _
+ * @alias extend
+ * @category Object
+ * @param {Object} object The destination object.
+ * @param {...Object} [sources] The source objects.
+ * @param {Function} [customizer] The function to customize assigned values.
+ * @param {*} [thisArg] The `this` binding of `customizer`.
+ * @returns {Object} Returns `object`.
+ * @example
+ *
+ * _.assign({ 'user': 'barney' }, { 'age': 40 }, { 'user': 'fred' });
+ * // => { 'user': 'fred', 'age': 40 }
+ *
+ * // using a customizer callback
+ * var defaults = _.partialRight(_.assign, function(value, other) {
+ * return _.isUndefined(value) ? other : value;
+ * });
+ *
+ * defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
+ * // => { 'user': 'barney', 'age': 36 }
+ */
+var assign = createAssigner(function(object, source, customizer) {
+ return customizer
+ ? assignWith(object, source, customizer)
+ : baseAssign(object, source);
+});
+
+module.exports = assign;
+
+},{"lodash._baseassign":125,"lodash._createassigner":129,"lodash.keys":137}],133:[function(require,module,exports){
+(function (global){
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as the size to enable large array optimizations. */
+var LARGE_ARRAY_SIZE = 200;
+
+/** Used to stand-in for `undefined` hash values. */
+var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+/** Used as references for various `Number` constants. */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+ arrayTag = '[object Array]',
+ boolTag = '[object Boolean]',
+ dateTag = '[object Date]',
+ errorTag = '[object Error]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]',
+ mapTag = '[object Map]',
+ numberTag = '[object Number]',
+ objectTag = '[object Object]',
+ promiseTag = '[object Promise]',
+ regexpTag = '[object RegExp]',
+ setTag = '[object Set]',
+ stringTag = '[object String]',
+ symbolTag = '[object Symbol]',
+ weakMapTag = '[object WeakMap]';
+
+var arrayBufferTag = '[object ArrayBuffer]',
+ dataViewTag = '[object DataView]',
+ float32Tag = '[object Float32Array]',
+ float64Tag = '[object Float64Array]',
+ int8Tag = '[object Int8Array]',
+ int16Tag = '[object Int16Array]',
+ int32Tag = '[object Int32Array]',
+ uint8Tag = '[object Uint8Array]',
+ uint8ClampedTag = '[object Uint8ClampedArray]',
+ uint16Tag = '[object Uint16Array]',
+ uint32Tag = '[object Uint32Array]';
+
+/**
+ * Used to match `RegExp`
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
+ */
+var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
+
+/** Used to match `RegExp` flags from their coerced string values. */
+var reFlags = /\w*$/;
+
+/** Used to detect host constructors (Safari). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/** Used to detect unsigned integer values. */
+var reIsUint = /^(?:0|[1-9]\d*)$/;
+
+/** Used to identify `toStringTag` values supported by `_.clone`. */
+var cloneableTags = {};
+cloneableTags[argsTag] = cloneableTags[arrayTag] =
+cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
+cloneableTags[boolTag] = cloneableTags[dateTag] =
+cloneableTags[float32Tag] = cloneableTags[float64Tag] =
+cloneableTags[int8Tag] = cloneableTags[int16Tag] =
+cloneableTags[int32Tag] = cloneableTags[mapTag] =
+cloneableTags[numberTag] = cloneableTags[objectTag] =
+cloneableTags[regexpTag] = cloneableTags[setTag] =
+cloneableTags[stringTag] = cloneableTags[symbolTag] =
+cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
+cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
+cloneableTags[errorTag] = cloneableTags[funcTag] =
+cloneableTags[weakMapTag] = false;
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
+
+/** Detect free variable `self`. */
+var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+/** Used as a reference to the global object. */
+var root = freeGlobal || freeSelf || Function('return this')();
+
+/** Detect free variable `exports`. */
+var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
+
+/** Detect free variable `module`. */
+var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
+
+/** Detect the popular CommonJS extension `module.exports`. */
+var moduleExports = freeModule && freeModule.exports === freeExports;
+
+/**
+ * Adds the key-value `pair` to `map`.
+ *
+ * @private
+ * @param {Object} map The map to modify.
+ * @param {Array} pair The key-value pair to add.
+ * @returns {Object} Returns `map`.
+ */
+function addMapEntry(map, pair) {
+ // Don't return `map.set` because it's not chainable in IE 11.
+ map.set(pair[0], pair[1]);
+ return map;
+}
+
+/**
+ * Adds `value` to `set`.
+ *
+ * @private
+ * @param {Object} set The set to modify.
+ * @param {*} value The value to add.
+ * @returns {Object} Returns `set`.
+ */
+function addSetEntry(set, value) {
+ // Don't return `set.add` because it's not chainable in IE 11.
+ set.add(value);
+ return set;
+}
+
+/**
+ * A specialized version of `_.forEach` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns `array`.
+ */
+function arrayEach(array, iteratee) {
+ var index = -1,
+ length = array ? array.length : 0;
+
+ while (++index < length) {
+ if (iteratee(array[index], index, array) === false) {
+ break;
+ }
+ }
+ return array;
+}
+
+/**
+ * Appends the elements of `values` to `array`.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to append.
+ * @returns {Array} Returns `array`.
+ */
+function arrayPush(array, values) {
+ var index = -1,
+ length = values.length,
+ offset = array.length;
+
+ while (++index < length) {
+ array[offset + index] = values[index];
+ }
+ return array;
+}
+
+/**
+ * A specialized version of `_.reduce` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {*} [accumulator] The initial value.
+ * @param {boolean} [initAccum] Specify using the first element of `array` as
+ * the initial value.
+ * @returns {*} Returns the accumulated value.
+ */
+function arrayReduce(array, iteratee, accumulator, initAccum) {
+ var index = -1,
+ length = array ? array.length : 0;
+
+ if (initAccum && length) {
+ accumulator = array[++index];
+ }
+ while (++index < length) {
+ accumulator = iteratee(accumulator, array[index], index, array);
+ }
+ return accumulator;
+}
+
+/**
+ * The base implementation of `_.times` without support for iteratee shorthands
+ * or max array length checks.
+ *
+ * @private
+ * @param {number} n The number of times to invoke `iteratee`.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the array of results.
+ */
+function baseTimes(n, iteratee) {
+ var index = -1,
+ result = Array(n);
+
+ while (++index < n) {
+ result[index] = iteratee(index);
+ }
+ return result;
+}
+
+/**
+ * Gets the value at `key` of `object`.
+ *
+ * @private
+ * @param {Object} [object] The object to query.
+ * @param {string} key The key of the property to get.
+ * @returns {*} Returns the property value.
+ */
+function getValue(object, key) {
+ return object == null ? undefined : object[key];
+}
+
+/**
+ * Checks if `value` is a host object in IE < 9.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
+ */
+function isHostObject(value) {
+ // Many host objects are `Object` objects that can coerce to strings
+ // despite having improperly defined `toString` methods.
+ var result = false;
+ if (value != null && typeof value.toString != 'function') {
+ try {
+ result = !!(value + '');
+ } catch (e) {}
+ }
+ return result;
+}
+
+/**
+ * Converts `map` to its key-value pairs.
+ *
+ * @private
+ * @param {Object} map The map to convert.
+ * @returns {Array} Returns the key-value pairs.
+ */
+function mapToArray(map) {
+ var index = -1,
+ result = Array(map.size);
+
+ map.forEach(function(value, key) {
+ result[++index] = [key, value];
+ });
+ return result;
+}
+
+/**
+ * Creates a unary function that invokes `func` with its argument transformed.
+ *
+ * @private
+ * @param {Function} func The function to wrap.
+ * @param {Function} transform The argument transform.
+ * @returns {Function} Returns the new function.
+ */
+function overArg(func, transform) {
+ return function(arg) {
+ return func(transform(arg));
+ };
+}
+
+/**
+ * Converts `set` to an array of its values.
+ *
+ * @private
+ * @param {Object} set The set to convert.
+ * @returns {Array} Returns the values.
+ */
+function setToArray(set) {
+ var index = -1,
+ result = Array(set.size);
+
+ set.forEach(function(value) {
+ result[++index] = value;
+ });
+ return result;
+}
+
+/** Used for built-in method references. */
+var arrayProto = Array.prototype,
+ funcProto = Function.prototype,
+ objectProto = Object.prototype;
+
+/** Used to detect overreaching core-js shims. */
+var coreJsData = root['__core-js_shared__'];
+
+/** Used to detect methods masquerading as native. */
+var maskSrcKey = (function() {
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
+ return uid ? ('Symbol(src)_1.' + uid) : '';
+}());
+
+/** Used to resolve the decompiled source of functions. */
+var funcToString = funcProto.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/** Built-in value references. */
+var Buffer = moduleExports ? root.Buffer : undefined,
+ Symbol = root.Symbol,
+ Uint8Array = root.Uint8Array,
+ getPrototype = overArg(Object.getPrototypeOf, Object),
+ objectCreate = Object.create,
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
+ splice = arrayProto.splice;
+
+/* Built-in method references for those with the same name as other `lodash` methods. */
+var nativeGetSymbols = Object.getOwnPropertySymbols,
+ nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
+ nativeKeys = overArg(Object.keys, Object);
+
+/* Built-in method references that are verified to be native. */
+var DataView = getNative(root, 'DataView'),
+ Map = getNative(root, 'Map'),
+ Promise = getNative(root, 'Promise'),
+ Set = getNative(root, 'Set'),
+ WeakMap = getNative(root, 'WeakMap'),
+ nativeCreate = getNative(Object, 'create');
+
+/** Used to detect maps, sets, and weakmaps. */
+var dataViewCtorString = toSource(DataView),
+ mapCtorString = toSource(Map),
+ promiseCtorString = toSource(Promise),
+ setCtorString = toSource(Set),
+ weakMapCtorString = toSource(WeakMap);
+
+/** Used to convert symbols to primitives and strings. */
+var symbolProto = Symbol ? Symbol.prototype : undefined,
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
+
+/**
+ * Creates a hash object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function Hash(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the hash.
+ *
+ * @private
+ * @name clear
+ * @memberOf Hash
+ */
+function hashClear() {
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
+}
+
+/**
+ * Removes `key` and its value from the hash.
+ *
+ * @private
+ * @name delete
+ * @memberOf Hash
+ * @param {Object} hash The hash to modify.
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function hashDelete(key) {
+ return this.has(key) && delete this.__data__[key];
+}
+
+/**
+ * Gets the hash value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Hash
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function hashGet(key) {
+ var data = this.__data__;
+ if (nativeCreate) {
+ var result = data[key];
+ return result === HASH_UNDEFINED ? undefined : result;
+ }
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
+}
+
+/**
+ * Checks if a hash value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Hash
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function hashHas(key) {
+ var data = this.__data__;
+ return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
+}
+
+/**
+ * Sets the hash `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Hash
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the hash instance.
+ */
+function hashSet(key, value) {
+ var data = this.__data__;
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
+ return this;
+}
+
+// Add methods to `Hash`.
+Hash.prototype.clear = hashClear;
+Hash.prototype['delete'] = hashDelete;
+Hash.prototype.get = hashGet;
+Hash.prototype.has = hashHas;
+Hash.prototype.set = hashSet;
+
+/**
+ * Creates an list cache object.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function ListCache(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the list cache.
+ *
+ * @private
+ * @name clear
+ * @memberOf ListCache
+ */
+function listCacheClear() {
+ this.__data__ = [];
+}
+
+/**
+ * Removes `key` and its value from the list cache.
+ *
+ * @private
+ * @name delete
+ * @memberOf ListCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function listCacheDelete(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ return false;
+ }
+ var lastIndex = data.length - 1;
+ if (index == lastIndex) {
+ data.pop();
+ } else {
+ splice.call(data, index, 1);
+ }
+ return true;
+}
+
+/**
+ * Gets the list cache value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf ListCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function listCacheGet(key) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ return index < 0 ? undefined : data[index][1];
+}
+
+/**
+ * Checks if a list cache value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf ListCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function listCacheHas(key) {
+ return assocIndexOf(this.__data__, key) > -1;
+}
+
+/**
+ * Sets the list cache `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf ListCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the list cache instance.
+ */
+function listCacheSet(key, value) {
+ var data = this.__data__,
+ index = assocIndexOf(data, key);
+
+ if (index < 0) {
+ data.push([key, value]);
+ } else {
+ data[index][1] = value;
+ }
+ return this;
+}
+
+// Add methods to `ListCache`.
+ListCache.prototype.clear = listCacheClear;
+ListCache.prototype['delete'] = listCacheDelete;
+ListCache.prototype.get = listCacheGet;
+ListCache.prototype.has = listCacheHas;
+ListCache.prototype.set = listCacheSet;
+
+/**
+ * Creates a map cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function MapCache(entries) {
+ var index = -1,
+ length = entries ? entries.length : 0;
+
+ this.clear();
+ while (++index < length) {
+ var entry = entries[index];
+ this.set(entry[0], entry[1]);
+ }
+}
+
+/**
+ * Removes all key-value entries from the map.
+ *
+ * @private
+ * @name clear
+ * @memberOf MapCache
+ */
+function mapCacheClear() {
+ this.__data__ = {
+ 'hash': new Hash,
+ 'map': new (Map || ListCache),
+ 'string': new Hash
+ };
+}
+
+/**
+ * Removes `key` and its value from the map.
+ *
+ * @private
+ * @name delete
+ * @memberOf MapCache
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function mapCacheDelete(key) {
+ return getMapData(this, key)['delete'](key);
+}
+
+/**
+ * Gets the map value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf MapCache
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function mapCacheGet(key) {
+ return getMapData(this, key).get(key);
+}
+
+/**
+ * Checks if a map value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf MapCache
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function mapCacheHas(key) {
+ return getMapData(this, key).has(key);
+}
+
+/**
+ * Sets the map `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf MapCache
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the map cache instance.
+ */
+function mapCacheSet(key, value) {
+ getMapData(this, key).set(key, value);
+ return this;
+}
+
+// Add methods to `MapCache`.
+MapCache.prototype.clear = mapCacheClear;
+MapCache.prototype['delete'] = mapCacheDelete;
+MapCache.prototype.get = mapCacheGet;
+MapCache.prototype.has = mapCacheHas;
+MapCache.prototype.set = mapCacheSet;
+
+/**
+ * Creates a stack cache object to store key-value pairs.
+ *
+ * @private
+ * @constructor
+ * @param {Array} [entries] The key-value pairs to cache.
+ */
+function Stack(entries) {
+ this.__data__ = new ListCache(entries);
+}
+
+/**
+ * Removes all key-value entries from the stack.
+ *
+ * @private
+ * @name clear
+ * @memberOf Stack
+ */
+function stackClear() {
+ this.__data__ = new ListCache;
+}
+
+/**
+ * Removes `key` and its value from the stack.
+ *
+ * @private
+ * @name delete
+ * @memberOf Stack
+ * @param {string} key The key of the value to remove.
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
+ */
+function stackDelete(key) {
+ return this.__data__['delete'](key);
+}
+
+/**
+ * Gets the stack value for `key`.
+ *
+ * @private
+ * @name get
+ * @memberOf Stack
+ * @param {string} key The key of the value to get.
+ * @returns {*} Returns the entry value.
+ */
+function stackGet(key) {
+ return this.__data__.get(key);
+}
+
+/**
+ * Checks if a stack value for `key` exists.
+ *
+ * @private
+ * @name has
+ * @memberOf Stack
+ * @param {string} key The key of the entry to check.
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
+ */
+function stackHas(key) {
+ return this.__data__.has(key);
+}
+
+/**
+ * Sets the stack `key` to `value`.
+ *
+ * @private
+ * @name set
+ * @memberOf Stack
+ * @param {string} key The key of the value to set.
+ * @param {*} value The value to set.
+ * @returns {Object} Returns the stack cache instance.
+ */
+function stackSet(key, value) {
+ var cache = this.__data__;
+ if (cache instanceof ListCache) {
+ var pairs = cache.__data__;
+ if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
+ pairs.push([key, value]);
+ return this;
+ }
+ cache = this.__data__ = new MapCache(pairs);
+ }
+ cache.set(key, value);
+ return this;
+}
+
+// Add methods to `Stack`.
+Stack.prototype.clear = stackClear;
+Stack.prototype['delete'] = stackDelete;
+Stack.prototype.get = stackGet;
+Stack.prototype.has = stackHas;
+Stack.prototype.set = stackSet;
+
+/**
+ * Creates an array of the enumerable property names of the array-like `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @param {boolean} inherited Specify returning inherited property names.
+ * @returns {Array} Returns the array of property names.
+ */
+function arrayLikeKeys(value, inherited) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ // Safari 9 makes `arguments.length` enumerable in strict mode.
+ var result = (isArray(value) || isArguments(value))
+ ? baseTimes(value.length, String)
+ : [];
+
+ var length = result.length,
+ skipIndexes = !!length;
+
+ for (var key in value) {
+ if ((inherited || hasOwnProperty.call(value, key)) &&
+ !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * for equality comparisons.
+ *
+ * @private
+ * @param {Object} object The object to modify.
+ * @param {string} key The key of the property to assign.
+ * @param {*} value The value to assign.
+ */
+function assignValue(object, key, value) {
+ var objValue = object[key];
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
+ (value === undefined && !(key in object))) {
+ object[key] = value;
+ }
+}
+
+/**
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {*} key The key to search for.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+function assocIndexOf(array, key) {
+ var length = array.length;
+ while (length--) {
+ if (eq(array[length][0], key)) {
+ return length;
+ }
+ }
+ return -1;
+}
+
+/**
+ * The base implementation of `_.assign` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+function baseAssign(object, source) {
+ return object && copyObject(source, keys(source), object);
+}
+
+/**
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
+ * traversed objects.
+ *
+ * @private
+ * @param {*} value The value to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @param {boolean} [isFull] Specify a clone including symbols.
+ * @param {Function} [customizer] The function to customize cloning.
+ * @param {string} [key] The key of `value`.
+ * @param {Object} [object] The parent object of `value`.
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
+ * @returns {*} Returns the cloned value.
+ */
+function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
+ var result;
+ if (customizer) {
+ result = object ? customizer(value, key, object, stack) : customizer(value);
+ }
+ if (result !== undefined) {
+ return result;
+ }
+ if (!isObject(value)) {
+ return value;
+ }
+ var isArr = isArray(value);
+ if (isArr) {
+ result = initCloneArray(value);
+ if (!isDeep) {
+ return copyArray(value, result);
+ }
+ } else {
+ var tag = getTag(value),
+ isFunc = tag == funcTag || tag == genTag;
+
+ if (isBuffer(value)) {
+ return cloneBuffer(value, isDeep);
+ }
+ if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
+ if (isHostObject(value)) {
+ return object ? value : {};
+ }
+ result = initCloneObject(isFunc ? {} : value);
+ if (!isDeep) {
+ return copySymbols(value, baseAssign(result, value));
+ }
+ } else {
+ if (!cloneableTags[tag]) {
+ return object ? value : {};
+ }
+ result = initCloneByTag(value, tag, baseClone, isDeep);
+ }
+ }
+ // Check for circular references and return its corresponding clone.
+ stack || (stack = new Stack);
+ var stacked = stack.get(value);
+ if (stacked) {
+ return stacked;
+ }
+ stack.set(value, result);
+
+ if (!isArr) {
+ var props = isFull ? getAllKeys(value) : keys(value);
+ }
+ arrayEach(props || value, function(subValue, key) {
+ if (props) {
+ key = subValue;
+ subValue = value[key];
+ }
+ // Recursively populate clone (susceptible to call stack limits).
+ assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
+ });
+ return result;
+}
+
+/**
+ * The base implementation of `_.create` without support for assigning
+ * properties to the created object.
+ *
+ * @private
+ * @param {Object} prototype The object to inherit from.
+ * @returns {Object} Returns the new object.
+ */
+function baseCreate(proto) {
+ return isObject(proto) ? objectCreate(proto) : {};
+}
+
+/**
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
+ * symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+function baseGetAllKeys(object, keysFunc, symbolsFunc) {
+ var result = keysFunc(object);
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
+}
+
+/**
+ * The base implementation of `getTag`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+function baseGetTag(value) {
+ return objectToString.call(value);
+}
+
+/**
+ * The base implementation of `_.isNative` without bad shim checks.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function,
+ * else `false`.
+ */
+function baseIsNative(value) {
+ if (!isObject(value) || isMasked(value)) {
+ return false;
+ }
+ var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
+ return pattern.test(toSource(value));
+}
+
+/**
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+function baseKeys(object) {
+ if (!isPrototype(object)) {
+ return nativeKeys(object);
+ }
+ var result = [];
+ for (var key in Object(object)) {
+ if (hasOwnProperty.call(object, key) && key != 'constructor') {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Creates a clone of `buffer`.
+ *
+ * @private
+ * @param {Buffer} buffer The buffer to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Buffer} Returns the cloned buffer.
+ */
+function cloneBuffer(buffer, isDeep) {
+ if (isDeep) {
+ return buffer.slice();
+ }
+ var result = new buffer.constructor(buffer.length);
+ buffer.copy(result);
+ return result;
+}
+
+/**
+ * Creates a clone of `arrayBuffer`.
+ *
+ * @private
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
+ */
+function cloneArrayBuffer(arrayBuffer) {
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+ new Uint8Array(result).set(new Uint8Array(arrayBuffer));
+ return result;
+}
+
+/**
+ * Creates a clone of `dataView`.
+ *
+ * @private
+ * @param {Object} dataView The data view to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned data view.
+ */
+function cloneDataView(dataView, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
+}
+
+/**
+ * Creates a clone of `map`.
+ *
+ * @private
+ * @param {Object} map The map to clone.
+ * @param {Function} cloneFunc The function to clone values.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned map.
+ */
+function cloneMap(map, isDeep, cloneFunc) {
+ var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
+ return arrayReduce(array, addMapEntry, new map.constructor);
+}
+
+/**
+ * Creates a clone of `regexp`.
+ *
+ * @private
+ * @param {Object} regexp The regexp to clone.
+ * @returns {Object} Returns the cloned regexp.
+ */
+function cloneRegExp(regexp) {
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
+ result.lastIndex = regexp.lastIndex;
+ return result;
+}
+
+/**
+ * Creates a clone of `set`.
+ *
+ * @private
+ * @param {Object} set The set to clone.
+ * @param {Function} cloneFunc The function to clone values.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned set.
+ */
+function cloneSet(set, isDeep, cloneFunc) {
+ var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
+ return arrayReduce(array, addSetEntry, new set.constructor);
+}
+
+/**
+ * Creates a clone of the `symbol` object.
+ *
+ * @private
+ * @param {Object} symbol The symbol object to clone.
+ * @returns {Object} Returns the cloned symbol object.
+ */
+function cloneSymbol(symbol) {
+ return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
+}
+
+/**
+ * Creates a clone of `typedArray`.
+ *
+ * @private
+ * @param {Object} typedArray The typed array to clone.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the cloned typed array.
+ */
+function cloneTypedArray(typedArray, isDeep) {
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
+}
+
+/**
+ * Copies the values of `source` to `array`.
+ *
+ * @private
+ * @param {Array} source The array to copy values from.
+ * @param {Array} [array=[]] The array to copy values to.
+ * @returns {Array} Returns `array`.
+ */
+function copyArray(source, array) {
+ var index = -1,
+ length = source.length;
+
+ array || (array = Array(length));
+ while (++index < length) {
+ array[index] = source[index];
+ }
+ return array;
+}
+
+/**
+ * Copies properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy properties from.
+ * @param {Array} props The property identifiers to copy.
+ * @param {Object} [object={}] The object to copy properties to.
+ * @param {Function} [customizer] The function to customize copied values.
+ * @returns {Object} Returns `object`.
+ */
+function copyObject(source, props, object, customizer) {
+ object || (object = {});
+
+ var index = -1,
+ length = props.length;
+
+ while (++index < length) {
+ var key = props[index];
+
+ var newValue = customizer
+ ? customizer(object[key], source[key], key, object, source)
+ : undefined;
+
+ assignValue(object, key, newValue === undefined ? source[key] : newValue);
+ }
+ return object;
+}
+
+/**
+ * Copies own symbol properties of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+function copySymbols(source, object) {
+ return copyObject(source, getSymbols(source), object);
+}
+
+/**
+ * Creates an array of own enumerable property names and symbols of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names and symbols.
+ */
+function getAllKeys(object) {
+ return baseGetAllKeys(object, keys, getSymbols);
+}
+
+/**
+ * Gets the data for `map`.
+ *
+ * @private
+ * @param {Object} map The map to query.
+ * @param {string} key The reference key.
+ * @returns {*} Returns the map data.
+ */
+function getMapData(map, key) {
+ var data = map.__data__;
+ return isKeyable(key)
+ ? data[typeof key == 'string' ? 'string' : 'hash']
+ : data.map;
+}
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = getValue(object, key);
+ return baseIsNative(value) ? value : undefined;
+}
+
+/**
+ * Creates an array of the own enumerable symbol properties of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of symbols.
+ */
+var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
+
+/**
+ * Gets the `toStringTag` of `value`.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+var getTag = baseGetTag;
+
+// Fallback for data views, maps, sets, and weak maps in IE 11,
+// for data views in Edge < 14, and promises in Node.js.
+if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
+ (Map && getTag(new Map) != mapTag) ||
+ (Promise && getTag(Promise.resolve()) != promiseTag) ||
+ (Set && getTag(new Set) != setTag) ||
+ (WeakMap && getTag(new WeakMap) != weakMapTag)) {
+ getTag = function(value) {
+ var result = objectToString.call(value),
+ Ctor = result == objectTag ? value.constructor : undefined,
+ ctorString = Ctor ? toSource(Ctor) : undefined;
+
+ if (ctorString) {
+ switch (ctorString) {
+ case dataViewCtorString: return dataViewTag;
+ case mapCtorString: return mapTag;
+ case promiseCtorString: return promiseTag;
+ case setCtorString: return setTag;
+ case weakMapCtorString: return weakMapTag;
+ }
+ }
+ return result;
+ };
+}
+
+/**
+ * Initializes an array clone.
+ *
+ * @private
+ * @param {Array} array The array to clone.
+ * @returns {Array} Returns the initialized clone.
+ */
+function initCloneArray(array) {
+ var length = array.length,
+ result = array.constructor(length);
+
+ // Add properties assigned by `RegExp#exec`.
+ if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
+ result.index = array.index;
+ result.input = array.input;
+ }
+ return result;
+}
+
+/**
+ * Initializes an object clone.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+function initCloneObject(object) {
+ return (typeof object.constructor == 'function' && !isPrototype(object))
+ ? baseCreate(getPrototype(object))
+ : {};
+}
+
+/**
+ * Initializes an object clone based on its `toStringTag`.
+ *
+ * **Note:** This function only supports cloning values with tags of
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
+ *
+ * @private
+ * @param {Object} object The object to clone.
+ * @param {string} tag The `toStringTag` of the object to clone.
+ * @param {Function} cloneFunc The function to clone values.
+ * @param {boolean} [isDeep] Specify a deep clone.
+ * @returns {Object} Returns the initialized clone.
+ */
+function initCloneByTag(object, tag, cloneFunc, isDeep) {
+ var Ctor = object.constructor;
+ switch (tag) {
+ case arrayBufferTag:
+ return cloneArrayBuffer(object);
+
+ case boolTag:
+ case dateTag:
+ return new Ctor(+object);
+
+ case dataViewTag:
+ return cloneDataView(object, isDeep);
+
+ case float32Tag: case float64Tag:
+ case int8Tag: case int16Tag: case int32Tag:
+ case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
+ return cloneTypedArray(object, isDeep);
+
+ case mapTag:
+ return cloneMap(object, isDeep, cloneFunc);
+
+ case numberTag:
+ case stringTag:
+ return new Ctor(object);
+
+ case regexpTag:
+ return cloneRegExp(object);
+
+ case setTag:
+ return cloneSet(object, isDeep, cloneFunc);
+
+ case symbolTag:
+ return cloneSymbol(object);
+ }
+}
+
+/**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+function isIndex(value, length) {
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return !!length &&
+ (typeof value == 'number' || reIsUint.test(value)) &&
+ (value > -1 && value % 1 == 0 && value < length);
+}
+
+/**
+ * Checks if `value` is suitable for use as unique object key.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
+ */
+function isKeyable(value) {
+ var type = typeof value;
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
+ ? (value !== '__proto__')
+ : (value === null);
+}
+
+/**
+ * Checks if `func` has its source masked.
+ *
+ * @private
+ * @param {Function} func The function to check.
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
+ */
+function isMasked(func) {
+ return !!maskSrcKey && (maskSrcKey in func);
+}
+
+/**
+ * Checks if `value` is likely a prototype object.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
+ */
+function isPrototype(value) {
+ var Ctor = value && value.constructor,
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
+
+ return value === proto;
+}
+
+/**
+ * Converts `func` to its source code.
+ *
+ * @private
+ * @param {Function} func The function to process.
+ * @returns {string} Returns the source code.
+ */
+function toSource(func) {
+ if (func != null) {
+ try {
+ return funcToString.call(func);
+ } catch (e) {}
+ try {
+ return (func + '');
+ } catch (e) {}
+ }
+ return '';
+}
+
+/**
+ * This method is like `_.clone` except that it recursively clones `value`.
+ *
+ * @static
+ * @memberOf _
+ * @since 1.0.0
+ * @category Lang
+ * @param {*} value The value to recursively clone.
+ * @returns {*} Returns the deep cloned value.
+ * @see _.clone
+ * @example
+ *
+ * var objects = [{ 'a': 1 }, { 'b': 2 }];
+ *
+ * var deep = _.cloneDeep(objects);
+ * console.log(deep[0] === objects[0]);
+ * // => false
+ */
+function cloneDeep(value) {
+ return baseClone(value, true, true);
+}
+
+/**
+ * Performs a
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
+ * comparison between two values to determine if they are equivalent.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ * @example
+ *
+ * var object = { 'a': 1 };
+ * var other = { 'a': 1 };
+ *
+ * _.eq(object, object);
+ * // => true
+ *
+ * _.eq(object, other);
+ * // => false
+ *
+ * _.eq('a', 'a');
+ * // => true
+ *
+ * _.eq('a', Object('a'));
+ * // => false
+ *
+ * _.eq(NaN, NaN);
+ * // => true
+ */
+function eq(value, other) {
+ return value === other || (value !== value && other !== other);
+}
+
+/**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ * else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
+ (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+var isArray = Array.isArray;
+
+/**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+}
+
+/**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
+ * else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+
+/**
+ * Checks if `value` is a buffer.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.3.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
+ * @example
+ *
+ * _.isBuffer(new Buffer(2));
+ * // => true
+ *
+ * _.isBuffer(new Uint8Array(2));
+ * // => false
+ */
+var isBuffer = nativeIsBuffer || stubFalse;
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @since 0.1.0
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+function keys(object) {
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
+}
+
+/**
+ * This method returns a new empty array.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.13.0
+ * @category Util
+ * @returns {Array} Returns the new empty array.
+ * @example
+ *
+ * var arrays = _.times(2, _.stubArray);
+ *
+ * console.log(arrays);
+ * // => [[], []]
+ *
+ * console.log(arrays[0] === arrays[1]);
+ * // => false
+ */
+function stubArray() {
+ return [];
+}
+
+/**
+ * This method returns `false`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.13.0
+ * @category Util
+ * @returns {boolean} Returns `false`.
+ * @example
+ *
+ * _.times(2, _.stubFalse);
+ * // => [false, false]
+ */
+function stubFalse() {
+ return false;
+}
+
+module.exports = cloneDeep;
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],134:[function(require,module,exports){
+/**
+ * lodash 3.0.3 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var arrayEach = require('lodash._arrayeach'),
+ baseEach = require('lodash._baseeach'),
+ bindCallback = require('lodash._bindcallback'),
+ isArray = require('lodash.isarray');
+
+/**
+ * Creates a function for `_.forEach` or `_.forEachRight`.
+ *
+ * @private
+ * @param {Function} arrayFunc The function to iterate over an array.
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @returns {Function} Returns the new each function.
+ */
+function createForEach(arrayFunc, eachFunc) {
+ return function(collection, iteratee, thisArg) {
+ return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))
+ ? arrayFunc(collection, iteratee)
+ : eachFunc(collection, bindCallback(iteratee, thisArg, 3));
+ };
+}
+
+/**
+ * Iterates over elements of `collection` invoking `iteratee` for each element.
+ * The `iteratee` is bound to `thisArg` and invoked with three arguments:
+ * (value, index|key, collection). Iteratee functions may exit iteration early
+ * by explicitly returning `false`.
+ *
+ * **Note:** As with other "Collections" methods, objects with a "length" property
+ * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
+ * may be used for object iteration.
+ *
+ * @static
+ * @memberOf _
+ * @alias each
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
+ * @param {*} [thisArg] The `this` binding of `iteratee`.
+ * @returns {Array|Object|string} Returns `collection`.
+ * @example
+ *
+ * _([1, 2]).forEach(function(n) {
+ * console.log(n);
+ * }).value();
+ * // => logs each value from left to right and returns the array
+ *
+ * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) {
+ * console.log(n, key);
+ * });
+ * // => logs each value-key pair and returns the object (iteration order is not guaranteed)
+ */
+var forEach = createForEach(arrayEach, baseEach);
+
+module.exports = forEach;
+
+},{"lodash._arrayeach":124,"lodash._baseeach":127,"lodash._bindcallback":128,"lodash.isarray":136}],135:[function(require,module,exports){
+/**
+ * lodash (Custom Build) <https://lodash.com/>
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]';
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var propertyIsEnumerable = objectProto.propertyIsEnumerable;
+
+/**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ * else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
+ (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
+}
+
+/**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+}
+
+/**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
+ * else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+module.exports = isArguments;
+
+},{}],136:[function(require,module,exports){
+/**
+ * lodash 3.0.4 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+
+/** `Object#toString` result references. */
+var arrayTag = '[object Array]',
+ funcTag = '[object Function]';
+
+/** Used to detect host constructors (Safari > 5). */
+var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+/**
+ * Checks if `value` is object-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to resolve the decompiled source of functions. */
+var fnToString = Function.prototype.toString;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objToString = objectProto.toString;
+
+/** Used to detect if a method is native. */
+var reIsNative = RegExp('^' +
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+);
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeIsArray = getNative(Array, 'isArray');
+
+/**
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+function getNative(object, key) {
+ var value = object == null ? undefined : object[key];
+ return isNative(value) ? value : undefined;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(function() { return arguments; }());
+ * // => false
+ */
+var isArray = nativeIsArray || function(value) {
+ return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
+};
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in older versions of Chrome and Safari which return 'function' for regexes
+ // and Safari 8 equivalents which return 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(fnToString.call(value));
+ }
+ return isObjectLike(value) && reIsHostCtor.test(value);
+}
+
+module.exports = isArray;
+
+},{}],137:[function(require,module,exports){
+/**
+ * lodash 3.1.2 (Custom Build) <https://lodash.com/>
+ * Build: `lodash modern modularize exports="npm" -o ./`
+ * Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ * Available under MIT license <https://lodash.com/license>
+ */
+var getNative = require('lodash._getnative'),
+ isArguments = require('lodash.isarguments'),
+ isArray = require('lodash.isarray');
+
+/** Used to detect unsigned integer values. */
+var reIsUint = /^\d+$/;
+
+/** Used for native method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/* Native method references for those with the same name as other `lodash` methods. */
+var nativeKeys = getNative(Object, 'keys');
+
+/**
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+var MAX_SAFE_INTEGER = 9007199254740991;
+
+/**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+}
+
+/**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * that affects Safari on at least iOS 8.1-8.3 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+var getLength = baseProperty('length');
+
+/**
+ * Checks if `value` is array-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ */
+function isArrayLike(value) {
+ return value != null && isLength(getLength(value));
+}
+
+/**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+function isIndex(value, length) {
+ value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return value > -1 && value % 1 == 0 && value < length;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * A fallback implementation of `Object.keys` which creates an array of the
+ * own enumerable property names of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+function shimKeys(object) {
+ var props = keysIn(object),
+ propsLength = props.length,
+ length = propsLength && object.length;
+
+ var allowIndexes = !!length && isLength(length) &&
+ (isArray(object) || isArguments(object));
+
+ var index = -1,
+ result = [];
+
+ while (++index < propsLength) {
+ var key = props[index];
+ if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+/**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+var keys = !nativeKeys ? shimKeys : function(object) {
+ var Ctor = object == null ? undefined : object.constructor;
+ if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
+ (typeof object != 'function' && isArrayLike(object))) {
+ return shimKeys(object);
+ }
+ return isObject(object) ? nativeKeys(object) : [];
+};
+
+/**
+ * Creates an array of the own and inherited enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keysIn(new Foo);
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
+ */
+function keysIn(object) {
+ if (object == null) {
+ return [];
+ }
+ if (!isObject(object)) {
+ object = Object(object);
+ }
+ var length = object.length;
+ length = (length && isLength(length) &&
+ (isArray(object) || isArguments(object)) && length) || 0;
+
+ var Ctor = object.constructor,
+ index = -1,
+ isProto = typeof Ctor == 'function' && Ctor.prototype === object,
+ result = Array(length),
+ skipIndexes = length > 0;
+
+ while (++index < length) {
+ result[index] = (index + '');
+ }
+ for (var key in object) {
+ if (!(skipIndexes && isIndex(key, length)) &&
+ !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
+ result.push(key);
+ }
+ }
+ return result;
+}
+
+module.exports = keys;
+
+},{"lodash._getnative":130,"lodash.isarguments":135,"lodash.isarray":136}],138:[function(require,module,exports){
/**
* lodash 3.6.1 (Custom Build) <https://lodash.com/>
* Build: `lodash modern modularize exports="npm" -o ./`
@@ -22939,322 +18342,378 @@ function restParam(func, start) {
module.exports = restParam;
-},{}],239:[function(require,module,exports){
-arguments[4][57][0].apply(exports,arguments)
-},{"dup":57,"lodash._getnative":240,"lodash.isarguments":241,"lodash.isarray":242}],240:[function(require,module,exports){
-arguments[4][58][0].apply(exports,arguments)
-},{"dup":58}],241:[function(require,module,exports){
-arguments[4][59][0].apply(exports,arguments)
-},{"dup":59}],242:[function(require,module,exports){
-arguments[4][61][0].apply(exports,arguments)
-},{"dup":61}],243:[function(require,module,exports){
-'use strict';
+},{}],139:[function(require,module,exports){
+'use strict'
+
+var parse = require('./lib/parse')
+var Parser = require('./lib/Parser')
+var escape = require('./lib/escape')
+var Element = require('./lib/Element')
+var equal = require('./lib/equal')
+var createElement = require('./lib/createElement')
+var tag = require('./lib/tag')
+var tagString = require('./lib/tagString')
+var is = require('./lib/is')
+
+exports = module.exports = tag
+
+exports.Element = Element
+
+exports.equal = equal.equal
+exports.nameEqual = equal.name
+exports.attrsEqual = equal.attrs
+exports.childrenEqual = equal.children
+
+exports.isNode = is.isNode
+exports.isElement = is.isElement
+exports.isText = is.isText
-var util = require('util')
- , Element = require('./element').Element
+exports.createElement = createElement
-function DOMElement(name, attrs) {
- Element.call(this, name, attrs)
+exports.escapeXML = escape.escapeXML
+exports.unescapeXML = escape.unescapeXML
+exports.escapeXMLText = escape.escapeXMLText
+exports.unescapeXMLText = escape.unescapeXMLText
- this.nodeType = 1
- this.nodeName = this.localName
+exports.Parser = Parser
+exports.parse = parse
+
+exports.tag = tag
+exports.tagString = tagString
+
+},{"./lib/Element":141,"./lib/Parser":142,"./lib/createElement":144,"./lib/equal":145,"./lib/escape":146,"./lib/is":147,"./lib/parse":148,"./lib/tag":150,"./lib/tagString":151}],140:[function(require,module,exports){
+'use strict'
+
+var inherits = require('inherits')
+var Element = require('./Element')
+
+function DOMElement (name, attrs) {
+ Element.call(this, name, attrs)
+
+ this.nodeType = 1
+ this.nodeName = this.localName
}
-util.inherits(DOMElement, Element)
+inherits(DOMElement, Element)
-DOMElement.prototype._getElement = function(name, attrs) {
- var element = new DOMElement(name, attrs)
- return element
+DOMElement.prototype._getElement = function (name, attrs) {
+ var element = new DOMElement(name, attrs)
+ return element
}
Object.defineProperty(DOMElement.prototype, 'localName', {
- get: function () {
- return this.getName()
- }
+ get: function () {
+ return this.getName()
+ }
})
Object.defineProperty(DOMElement.prototype, 'namespaceURI', {
- get: function () {
- return this.getNS()
- }
+ get: function () {
+ return this.getNS()
+ }
})
Object.defineProperty(DOMElement.prototype, 'parentNode', {
- get: function () {
- return this.parent
- }
+ get: function () {
+ return this.parent
+ }
})
Object.defineProperty(DOMElement.prototype, 'childNodes', {
- get: function () {
- return this.children
- }
+ get: function () {
+ return this.children
+ }
})
Object.defineProperty(DOMElement.prototype, 'textContent', {
- get: function () {
- return this.getText()
- },
- set: function (value) {
- this.children.push(value)
- }
+ get: function () {
+ return this.getText()
+ },
+ set: function (value) {
+ this.children.push(value)
+ }
})
DOMElement.prototype.getElementsByTagName = function (name) {
- return this.getChildren(name)
+ return this.getChildren(name)
}
DOMElement.prototype.getAttribute = function (name) {
- return this.getAttr(name)
+ return this.getAttr(name)
}
DOMElement.prototype.setAttribute = function (name, value) {
- this.attr(name, value)
+ this.attr(name, value)
}
DOMElement.prototype.getAttributeNS = function (ns, name) {
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- return this.getAttr(['xml', name].join(':'))
- }
- return this.getAttr(name, ns)
+ if (ns === 'http://www.w3.org/XML/1998/namespace') {
+ return this.getAttr(['xml', name].join(':'))
+ }
+ return this.getAttr(name, ns)
}
DOMElement.prototype.setAttributeNS = function (ns, name, value) {
- var prefix
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- prefix = 'xml'
- } else {
- var nss = this.getXmlns()
- prefix = nss[ns] || ''
- }
- if (prefix) {
- this.attr([prefix, name].join(':'), value)
- }
+ var prefix
+ if (ns === 'http://www.w3.org/XML/1998/namespace') {
+ prefix = 'xml'
+ } else {
+ var nss = this.getXmlns()
+ prefix = nss[ns] || ''
+ }
+ if (prefix) {
+ this.attr([prefix, name].join(':'), value)
+ }
}
DOMElement.prototype.removeAttribute = function (name) {
- this.attr(name, null)
+ this.attr(name, null)
}
DOMElement.prototype.removeAttributeNS = function (ns, name) {
- var prefix
- if (ns === 'http://www.w3.org/XML/1998/namespace') {
- prefix = 'xml'
- } else {
- var nss = this.getXmlns()
- prefix = nss[ns] || ''
- }
- if (prefix) {
- this.attr([prefix, name].join(':'), null)
- }
+ var prefix
+ if (ns === 'http://www.w3.org/XML/1998/namespace') {
+ prefix = 'xml'
+ } else {
+ var nss = this.getXmlns()
+ prefix = nss[ns] || ''
+ }
+ if (prefix) {
+ this.attr([prefix, name].join(':'), null)
+ }
}
DOMElement.prototype.appendChild = function (el) {
- this.cnode(el)
+ this.cnode(el)
}
DOMElement.prototype.removeChild = function (el) {
- this.remove(el)
+ this.remove(el)
+}
+
+DOMElement.createElement = function (name, attrs /*, child1, child2, ...*/) {
+ var el = new DOMElement(name, attrs)
+
+ var children = Array.prototype.slice.call(arguments, 2)
+
+ children.forEach(function (child) {
+ el.appendChild(child)
+ })
+ return el
}
module.exports = DOMElement
-},{"./element":244,"util":28}],244:[function(require,module,exports){
-'use strict';
+},{"./Element":141,"inherits":45}],141:[function(require,module,exports){
+'use strict'
+
+var escape = require('./escape')
+var escapeXML = escape.escapeXML
+var escapeXMLText = escape.escapeXMLText
+
+var equality = require('./equal')
+var equal = equality.equal
+var nameEqual = equality.name
+var attrsEqual = equality.attrs
+var childrenEqual = equality.children
+
+var clone = require('./clone')
/**
- * This cheap replica of DOM/Builder puts me to shame :-)
+ * Element
*
* Attributes are in the element.attrs object. Children is a list of
* either other Elements or Strings for text content.
**/
-function Element(name, attrs) {
- this.name = name
- this.parent = null
- this.children = []
- this.setAttrs(attrs)
+function Element (name, attrs) {
+ this.name = name
+ this.parent = null
+ this.children = []
+ this.attrs = {}
+ this.setAttrs(attrs)
}
-/*** Accessors ***/
+/* Accessors */
/**
* if (element.is('message', 'jabber:client')) ...
**/
-Element.prototype.is = function(name, xmlns) {
- return (this.getName() === name) &&
- (!xmlns || (this.getNS() === xmlns))
+Element.prototype.is = function (name, xmlns) {
+ return (this.getName() === name) &&
+ (!xmlns || (this.getNS() === xmlns))
}
/* without prefix */
-Element.prototype.getName = function() {
- if (this.name.indexOf(':') >= 0) {
- return this.name.substr(this.name.indexOf(':') + 1)
- } else {
- return this.name
- }
+Element.prototype.getName = function () {
+ if (this.name.indexOf(':') >= 0) {
+ return this.name.substr(this.name.indexOf(':') + 1)
+ } else {
+ return this.name
+ }
}
/**
* retrieves the namespace of the current element, upwards recursively
**/
-Element.prototype.getNS = function() {
- if (this.name.indexOf(':') >= 0) {
- var prefix = this.name.substr(0, this.name.indexOf(':'))
- return this.findNS(prefix)
- }
- return this.findNS()
+Element.prototype.getNS = function () {
+ if (this.name.indexOf(':') >= 0) {
+ var prefix = this.name.substr(0, this.name.indexOf(':'))
+ return this.findNS(prefix)
+ }
+ return this.findNS()
}
/**
* find the namespace to the given prefix, upwards recursively
**/
-Element.prototype.findNS = function(prefix) {
- if (!prefix) {
- /* default namespace */
- if (this.attrs.xmlns) {
- return this.attrs.xmlns
- } else if (this.parent) {
- return this.parent.findNS()
- }
- } else {
- /* prefixed namespace */
- var attr = 'xmlns:' + prefix
- if (this.attrs[attr]) {
- return this.attrs[attr]
- } else if (this.parent) {
- return this.parent.findNS(prefix)
- }
+Element.prototype.findNS = function (prefix) {
+ if (!prefix) {
+ /* default namespace */
+ if (this.attrs.xmlns) {
+ return this.attrs.xmlns
+ } else if (this.parent) {
+ return this.parent.findNS()
}
+ } else {
+ /* prefixed namespace */
+ var attr = 'xmlns:' + prefix
+ if (this.attrs[attr]) {
+ return this.attrs[attr]
+ } else if (this.parent) {
+ return this.parent.findNS(prefix)
+ }
+ }
}
/**
* Recursiverly gets all xmlns defined, in the form of {url:prefix}
**/
-Element.prototype.getXmlns = function() {
- var namespaces = {}
+Element.prototype.getXmlns = function () {
+ var namespaces = {}
- if (this.parent) {
- namespaces = this.parent.getXmlns()
- }
+ if (this.parent) {
+ namespaces = this.parent.getXmlns()
+ }
- for (var attr in this.attrs) {
- var m = attr.match('xmlns:?(.*)')
- if (this.attrs.hasOwnProperty(attr) && m) {
- namespaces[this.attrs[attr]] = m[1]
- }
+ for (var attr in this.attrs) {
+ var m = attr.match('xmlns:?(.*)')
+ if (this.attrs.hasOwnProperty(attr) && m) {
+ namespaces[this.attrs[attr]] = m[1]
}
- return namespaces
+ }
+ return namespaces
}
-Element.prototype.setAttrs = function(attrs) {
- this.attrs = {}
-
- if (typeof attrs === 'string')
- this.attrs.xmlns = attrs
- else if (attrs) {
- Object.keys(attrs).forEach(function(key) {
- this.attrs[key] = attrs[key]
- }, this)
- }
+Element.prototype.setAttrs = function (attrs) {
+ if (typeof attrs === 'string') {
+ this.attrs.xmlns = attrs
+ } else if (attrs) {
+ Object.keys(attrs).forEach(function (key) {
+ this.attrs[key] = attrs[key]
+ }, this)
+ }
}
/**
* xmlns can be null, returns the matching attribute.
**/
-Element.prototype.getAttr = function(name, xmlns) {
- if (!xmlns) {
- return this.attrs[name]
- }
+Element.prototype.getAttr = function (name, xmlns) {
+ if (!xmlns) {
+ return this.attrs[name]
+ }
- var namespaces = this.getXmlns()
+ var namespaces = this.getXmlns()
- if (!namespaces[xmlns]) {
- return null
- }
+ if (!namespaces[xmlns]) {
+ return null
+ }
- return this.attrs[[namespaces[xmlns], name].join(':')]
+ return this.attrs[[namespaces[xmlns], name].join(':')]
}
/**
* xmlns can be null
**/
-Element.prototype.getChild = function(name, xmlns) {
- return this.getChildren(name, xmlns)[0]
+Element.prototype.getChild = function (name, xmlns) {
+ return this.getChildren(name, xmlns)[0]
}
/**
* xmlns can be null
**/
-Element.prototype.getChildren = function(name, xmlns) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (child.getName &&
- (child.getName() === name) &&
- (!xmlns || (child.getNS() === xmlns)))
- result.push(child)
+Element.prototype.getChildren = function (name, xmlns) {
+ var result = []
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if (child.getName &&
+ (child.getName() === name) &&
+ (!xmlns || (child.getNS() === xmlns))) {
+ result.push(child)
}
- return result
+ }
+ return result
}
/**
* xmlns and recursive can be null
**/
-Element.prototype.getChildByAttr = function(attr, val, xmlns, recursive) {
- return this.getChildrenByAttr(attr, val, xmlns, recursive)[0]
+Element.prototype.getChildByAttr = function (attr, val, xmlns, recursive) {
+ return this.getChildrenByAttr(attr, val, xmlns, recursive)[0]
}
/**
* xmlns and recursive can be null
**/
-Element.prototype.getChildrenByAttr = function(attr, val, xmlns, recursive) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (child.attrs &&
- (child.attrs[attr] === val) &&
- (!xmlns || (child.getNS() === xmlns)))
- result.push(child)
- if (recursive && child.getChildrenByAttr) {
- result.push(child.getChildrenByAttr(attr, val, xmlns, true))
- }
+Element.prototype.getChildrenByAttr = function (attr, val, xmlns, recursive) {
+ var result = []
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if (child.attrs &&
+ (child.attrs[attr] === val) &&
+ (!xmlns || (child.getNS() === xmlns))) {
+ result.push(child)
}
- if (recursive) {
- result = [].concat.apply([], result)
+ if (recursive && child.getChildrenByAttr) {
+ result.push(child.getChildrenByAttr(attr, val, xmlns, true))
}
- return result
+ }
+ if (recursive) {
+ result = [].concat.apply([], result)
+ }
+ return result
}
-Element.prototype.getChildrenByFilter = function(filter, recursive) {
- var result = []
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if (filter(child))
- result.push(child)
- if (recursive && child.getChildrenByFilter){
- result.push(child.getChildrenByFilter(filter, true))
- }
+Element.prototype.getChildrenByFilter = function (filter, recursive) {
+ var result = []
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if (filter(child)) {
+ result.push(child)
}
- if (recursive) {
- result = [].concat.apply([], result)
+ if (recursive && child.getChildrenByFilter) {
+ result.push(child.getChildrenByFilter(filter, true))
}
- return result
+ }
+ if (recursive) {
+ result = [].concat.apply([], result)
+ }
+ return result
}
-Element.prototype.getText = function() {
- var text = ''
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- if ((typeof child === 'string') || (typeof child === 'number')) {
- text += child
- }
+Element.prototype.getText = function () {
+ var text = ''
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ if ((typeof child === 'string') || (typeof child === 'number')) {
+ text += child
}
- return text
+ }
+ return text
}
-Element.prototype.getChildText = function(name, xmlns) {
- var child = this.getChild(name, xmlns)
- return child ? child.getText() : null
+Element.prototype.getChildText = function (name, xmlns) {
+ var child = this.getChild(name, xmlns)
+ return child ? child.getText() : null
}
/**
@@ -23262,537 +18721,12807 @@ Element.prototype.getChildText = function(name, xmlns) {
* This differs from `getChildren` in that it will exclude text nodes,
* processing instructions, etc.
*/
-Element.prototype.getChildElements = function() {
- return this.getChildrenByFilter(function(child) {
- return child instanceof Element
- })
+Element.prototype.getChildElements = function () {
+ return this.getChildrenByFilter(function (child) {
+ return child instanceof Element
+ })
}
-/*** Builder ***/
+/* Builder */
/** returns uppermost parent */
-Element.prototype.root = function() {
- if (this.parent) {
- return this.parent.root()
- }
- return this
+Element.prototype.root = function () {
+ if (this.parent) {
+ return this.parent.root()
+ }
+ return this
}
Element.prototype.tree = Element.prototype.root
/** just parent or itself */
-Element.prototype.up = function() {
- if (this.parent) {
- return this.parent
- }
- return this
-}
-
-Element.prototype._getElement = function(name, attrs) {
- var element = new Element(name, attrs)
- return element
+Element.prototype.up = function () {
+ if (this.parent) {
+ return this.parent
+ }
+ return this
}
/** create child node and return it */
-Element.prototype.c = function(name, attrs) {
- return this.cnode(this._getElement(name, attrs))
+Element.prototype.c = function (name, attrs) {
+ return this.cnode(new Element(name, attrs))
}
-Element.prototype.cnode = function(child) {
- this.children.push(child)
- if (typeof child === 'object') {
- child.parent = this
- }
- return child
+Element.prototype.cnode = function (child) {
+ this.children.push(child)
+ if (typeof child === 'object') {
+ child.parent = this
+ }
+ return child
}
/** add text node and return element */
-Element.prototype.t = function(text) {
- this.children.push(text)
- return this
+Element.prototype.t = function (text) {
+ this.children.push(text)
+ return this
}
-/*** Manipulation ***/
+/* Manipulation */
/**
* Either:
* el.remove(childEl)
* el.remove('author', 'urn:...')
*/
-Element.prototype.remove = function(el, xmlns) {
- var filter
- if (typeof el === 'string') {
- /* 1st parameter is tag name */
- filter = function(child) {
- return !(child.is &&
- child.is(el, xmlns))
- }
- } else {
- /* 1st parameter is element */
- filter = function(child) {
- return child !== el
- }
+Element.prototype.remove = function (el, xmlns) {
+ var filter
+ if (typeof el === 'string') {
+ /* 1st parameter is tag name */
+ filter = function (child) {
+ return !(child.is &&
+ child.is(el, xmlns))
}
+ } else {
+ /* 1st parameter is element */
+ filter = function (child) {
+ return child !== el
+ }
+ }
- this.children = this.children.filter(filter)
+ this.children = this.children.filter(filter)
+
+ return this
+}
+Element.prototype.clone = function () {
+ return clone(this)
+}
+
+Element.prototype.text = function (val) {
+ if (val && this.children.length === 1) {
+ this.children[0] = val
return this
+ }
+ return this.getText()
+}
+
+Element.prototype.attr = function (attr, val) {
+ if (typeof val !== 'undefined' || val === null) {
+ if (!this.attrs) {
+ this.attrs = {}
+ }
+ this.attrs[attr] = val
+ return this
+ }
+ return this.attrs[attr]
+}
+
+/* Serialization */
+
+Element.prototype.toString = function () {
+ var s = ''
+ this.write(function (c) {
+ s += c
+ })
+ return s
}
+Element.prototype.toJSON = function () {
+ return {
+ name: this.name,
+ attrs: this.attrs,
+ children: this.children.map(function (child) {
+ return child && child.toJSON ? child.toJSON() : child
+ })
+ }
+}
+
+Element.prototype._addChildren = function (writer) {
+ writer('>')
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i]
+ /* Skip null/undefined */
+ if (child || (child === 0)) {
+ if (child.write) {
+ child.write(writer)
+ } else if (typeof child === 'string') {
+ writer(escapeXMLText(child))
+ } else if (child.toString) {
+ writer(escapeXMLText(child.toString(10)))
+ }
+ }
+ }
+ writer('</')
+ writer(this.name)
+ writer('>')
+}
+
+Element.prototype.write = function (writer) {
+ writer('<')
+ writer(this.name)
+ for (var k in this.attrs) {
+ var v = this.attrs[k]
+ if (v != null) { // === null || undefined
+ writer(' ')
+ writer(k)
+ writer('="')
+ if (typeof v !== 'string') {
+ v = v.toString()
+ }
+ writer(escapeXML(v))
+ writer('"')
+ }
+ }
+ if (this.children.length === 0) {
+ writer('/>')
+ } else {
+ this._addChildren(writer)
+ }
+}
+
+Element.prototype.nameEquals = function (el) {
+ return nameEqual(this, el)
+}
+
+Element.prototype.attrsEquals = function (el) {
+ return attrsEqual(this, el)
+}
+
+Element.prototype.childrenEquals = function (el) {
+ return childrenEqual(this, el)
+}
+
+Element.prototype.equals = function (el) {
+ return equal(this, el)
+}
+
+module.exports = Element
+
+},{"./clone":143,"./equal":145,"./escape":146}],142:[function(require,module,exports){
+'use strict'
+
+var EventEmitter = require('events').EventEmitter
+var inherits = require('inherits')
+var Element = require('./Element')
+var LtxParser = require('./parsers/ltx')
+
+var Parser = function (options) {
+ EventEmitter.call(this)
+
+ var ParserInterface = this.Parser = (options && options.Parser) || this.DefaultParser
+ var ElementInterface = this.Element = (options && options.Element) || this.DefaultElement
+
+ this.parser = new ParserInterface()
+
+ var el
+ var self = this
+ this.parser.on('startElement', function (name, attrs) {
+ var child = new ElementInterface(name, attrs)
+ if (!el) {
+ el = child
+ } else {
+ el = el.cnode(child)
+ }
+ })
+ this.parser.on('endElement', function (name) {
+ if (!el) {
+ /* Err */
+ } else if (name === el.name) {
+ if (el.parent) {
+ el = el.parent
+ } else if (!self.tree) {
+ self.tree = el
+ el = undefined
+ }
+ }
+ })
+ this.parser.on('text', function (str) {
+ if (el) {
+ el.t(str)
+ }
+ })
+ this.parser.on('error', function (e) {
+ self.error = e
+ self.emit('error', e)
+ })
+}
+
+inherits(Parser, EventEmitter)
+
+Parser.prototype.DefaultParser = LtxParser
+
+Parser.prototype.DefaultElement = Element
+
+Parser.prototype.write = function (data) {
+ this.parser.write(data)
+}
+
+Parser.prototype.end = function (data) {
+ this.parser.end(data)
+
+ if (!this.error) {
+ if (this.tree) {
+ this.emit('tree', this.tree)
+ } else {
+ this.emit('error', new Error('Incomplete document'))
+ }
+ }
+}
+
+module.exports = Parser
+
+},{"./Element":141,"./parsers/ltx":149,"events":27,"inherits":45}],143:[function(require,module,exports){
+'use strict'
+
+module.exports = function clone (el) {
+ var clone = new el.constructor(el.name, el.attrs)
+ for (var i = 0; i < el.children.length; i++) {
+ var child = el.children[i]
+ clone.cnode(child.clone ? child.clone() : child)
+ }
+ return clone
+}
+
+},{}],144:[function(require,module,exports){
+'use strict'
+
+var Element = require('./Element')
+
/**
- * To use in case you want the same XML data for separate uses.
- * Please refrain from this practise unless you know what you are
- * doing. Building XML with ltx is easy!
+ * JSX compatible API, use this function as pragma
+ * https://facebook.github.io/jsx/
+ *
+ * @param {string} name name of the element
+ * @param {object} attrs object of attribute key/value pairs
+ * @return {Element} Element
*/
-Element.prototype.clone = function() {
- var clone = this._getElement(this.name, this.attrs)
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- clone.cnode(child.clone ? child.clone() : child)
+module.exports = function createElement (name, attrs /*, child1, child2, ...*/) {
+ var el = new Element(name, attrs)
+
+ for (var i = 2; i < arguments.length; i++) {
+ var child = arguments[i]
+ if (child) el.cnode(child)
+ }
+
+ return el
+}
+
+},{"./Element":141}],145:[function(require,module,exports){
+'use strict'
+
+function nameEqual (a, b) {
+ return a.name === b.name
+}
+
+function attrsEqual (a, b) {
+ var attrs = a.attrs
+ var keys = Object.keys(attrs)
+ var length = keys.length
+ if (length !== Object.keys(b.attrs).length) return false
+ for (var i = 0, l = length; i < l; i++) {
+ var key = keys[i]
+ var value = attrs[key]
+ if (value == null || b.attrs[key] == null) { // === null || undefined
+ if (value !== b.attrs[key]) return false
+ } else if (value.toString() !== b.attrs[key].toString()) {
+ return false
}
- return clone
+ }
+ return true
}
-Element.prototype.text = function(val) {
- if (val && this.children.length === 1) {
- this.children[0] = val
- return this
+function childrenEqual (a, b) {
+ var children = a.children
+ var length = children.length
+ if (length !== b.children.length) return false
+ for (var i = 0, l = length; i < l; i++) {
+ var child = children[i]
+ if (typeof child === 'string') {
+ if (child !== b.children[i]) return false
+ } else {
+ if (!child.equals(b.children[i])) return false
}
- return this.getText()
+ }
+ return true
+}
+
+function equal (a, b) {
+ if (!nameEqual(a, b)) return false
+ if (!attrsEqual(a, b)) return false
+ if (!childrenEqual(a, b)) return false
+ return true
+}
+
+module.exports.name = nameEqual
+module.exports.attrs = attrsEqual
+module.exports.children = childrenEqual
+module.exports.equal = equal
+
+},{}],146:[function(require,module,exports){
+'use strict'
+
+var escapeXMLTable = {
+ '&': '&amp;',
+ '<': '&lt;',
+ '>': '&gt;',
+ '"': '&quot;',
+ '\'': '&apos;'
+}
+
+function escapeXMLReplace (match) {
+ return escapeXMLTable[match]
+}
+
+var unescapeXMLTable = {
+ '&amp;': '&',
+ '&#38;': '&',
+ '&lt;': '<',
+ '&#60;': '<',
+ '&gt;': '>',
+ '&#62;': '>',
+ '&quot;': '"',
+ '&#34;': '"',
+ '&apos;': "'",
+ '&#39;': "'"
+}
+
+function unescapeXMLReplace (match) {
+ return unescapeXMLTable[match]
+}
+
+exports.escapeXML = function escapeXML (s) {
+ return s.replace(/&|<|>|"|'/g, escapeXMLReplace)
+}
+
+exports.unescapeXML = function unescapeXML (s) {
+ return s.replace(/&(amp|#38|lt|#60|gt|#62|quot|#34|apos|#39);/g, unescapeXMLReplace)
+}
+
+exports.escapeXMLText = function escapeXMLText (s) {
+ return s.replace(/&|<|>/g, escapeXMLReplace)
+}
+
+exports.unescapeXMLText = function unescapeXMLText (s) {
+ return s.replace(/&(amp|#38|lt|#60|gt|#62);/g, unescapeXMLReplace)
+}
+
+},{}],147:[function(require,module,exports){
+'use strict'
+
+var Element = require('./Element')
+
+module.exports.isNode = function is (el) {
+ return el instanceof Element || typeof el === 'string'
+}
+
+module.exports.isElement = function isElement (el) {
+ return el instanceof Element
+}
+
+module.exports.isText = function isText (el) {
+ return typeof el === 'string'
+}
+
+},{"./Element":141}],148:[function(require,module,exports){
+'use strict'
+
+var Parser = require('./Parser')
+
+module.exports = function parse (data, options) {
+ var p
+ if (typeof options === 'function') {
+ p = new options() // eslint-disable-line
+ } else {
+ p = new Parser(options)
+ }
+
+ var result = null
+ var error = null
+
+ p.on('tree', function (tree) {
+ result = tree
+ })
+ p.on('error', function (e) {
+ error = e
+ })
+
+ p.write(data)
+ p.end()
+
+ if (error) {
+ throw error
+ } else {
+ return result
+ }
+}
+
+},{"./Parser":142}],149:[function(require,module,exports){
+'use strict'
+
+var inherits = require('inherits')
+var EventEmitter = require('events').EventEmitter
+var unescapeXML = require('../escape').unescapeXML
+
+var STATE_TEXT = 0
+var STATE_IGNORE_TAG = 1
+var STATE_TAG_NAME = 2
+var STATE_TAG = 3
+var STATE_ATTR_NAME = 4
+var STATE_ATTR_EQ = 5
+var STATE_ATTR_QUOT = 6
+var STATE_ATTR_VALUE = 7
+
+var SaxLtx = module.exports = function SaxLtx () {
+ EventEmitter.call(this)
+
+ var state = STATE_TEXT
+ var remainder
+ var tagName
+ var attrs
+ var endTag
+ var selfClosing
+ var attrQuote
+ var recordStart = 0
+ var attrName
+
+ this._handleTagOpening = function (endTag, tagName, attrs) {
+ if (!endTag) {
+ this.emit('startElement', tagName, attrs)
+ if (selfClosing) {
+ this.emit('endElement', tagName)
+ }
+ } else {
+ this.emit('endElement', tagName)
+ }
+ }
+
+ this.write = function (data) {
+ if (typeof data !== 'string') {
+ data = data.toString()
+ }
+ var pos = 0
+
+ /* Anything from previous write()? */
+ if (remainder) {
+ data = remainder + data
+ pos += remainder.length
+ remainder = null
+ }
+
+ function endRecording () {
+ if (typeof recordStart === 'number') {
+ var recorded = data.slice(recordStart, pos)
+ recordStart = undefined
+ return recorded
+ }
+ }
+
+ for (; pos < data.length; pos++) {
+ var c = data.charCodeAt(pos)
+ // console.log("state", state, "c", c, data[pos])
+ switch (state) {
+ case STATE_TEXT:
+ if (c === 60 /* < */) {
+ var text = endRecording()
+ if (text) {
+ this.emit('text', unescapeXML(text))
+ }
+ state = STATE_TAG_NAME
+ recordStart = pos + 1
+ attrs = {}
+ }
+ break
+ case STATE_TAG_NAME:
+ if (c === 47 /* / */ && recordStart === pos) {
+ recordStart = pos + 1
+ endTag = true
+ } else if (c === 33 /* ! */ || c === 63 /* ? */) {
+ recordStart = undefined
+ state = STATE_IGNORE_TAG
+ } else if (c <= 32 || c === 47 /* / */ || c === 62 /* > */) {
+ tagName = endRecording()
+ pos--
+ state = STATE_TAG
+ }
+ break
+ case STATE_IGNORE_TAG:
+ if (c === 62 /* > */) {
+ state = STATE_TEXT
+ }
+ break
+ case STATE_TAG:
+ if (c === 62 /* > */) {
+ this._handleTagOpening(endTag, tagName, attrs)
+ tagName = undefined
+ attrs = undefined
+ endTag = undefined
+ selfClosing = undefined
+ state = STATE_TEXT
+ recordStart = pos + 1
+ } else if (c === 47 /* / */) {
+ selfClosing = true
+ } else if (c > 32) {
+ recordStart = pos
+ state = STATE_ATTR_NAME
+ }
+ break
+ case STATE_ATTR_NAME:
+ if (c <= 32 || c === 61 /* = */) {
+ attrName = endRecording()
+ pos--
+ state = STATE_ATTR_EQ
+ }
+ break
+ case STATE_ATTR_EQ:
+ if (c === 61 /* = */) {
+ state = STATE_ATTR_QUOT
+ }
+ break
+ case STATE_ATTR_QUOT:
+ if (c === 34 /* " */ || c === 39 /* ' */) {
+ attrQuote = c
+ state = STATE_ATTR_VALUE
+ recordStart = pos + 1
+ }
+ break
+ case STATE_ATTR_VALUE:
+ if (c === attrQuote) {
+ var value = unescapeXML(endRecording())
+ attrs[attrName] = value
+ attrName = undefined
+ state = STATE_TAG
+ }
+ break
+ }
+ }
+
+ if (typeof recordStart === 'number' &&
+ recordStart <= data.length) {
+ remainder = data.slice(recordStart)
+ recordStart = 0
+ }
+ }
+ /*
+ var origEmit = this.emit
+ this.emit = function() {
+ console.log('ltx', arguments)
+ origEmit.apply(this, arguments)
+ }
+ */
+}
+inherits(SaxLtx, EventEmitter)
+
+SaxLtx.prototype.end = function (data) {
+ if (data) {
+ this.write(data)
+ }
+
+ /* Uh, yeah */
+ this.write = function () {}
+}
+
+},{"../escape":146,"events":27,"inherits":45}],150:[function(require,module,exports){
+'use strict'
+
+var tagString = require('./tagString')
+var parse = require('./parse')
+
+module.exports = function tag (/* [literals], ...substitutions */) {
+ return parse(tagString.apply(null, arguments))
+}
+
+},{"./parse":148,"./tagString":151}],151:[function(require,module,exports){
+'use strict'
+
+var escape = require('./escape').escapeXML
+
+module.exports = function tagString (/* [literals], ...substitutions */) {
+ var literals = arguments[0]
+
+ var str = ''
+
+ for (var i = 1; i < arguments.length; i++) {
+ str += literals[i - 1]
+ str += escape(arguments[i])
+ }
+ str += literals[literals.length - 1]
+
+ return str
+}
+
+},{"./escape":146}],152:[function(require,module,exports){
+(function (process){
+'use strict';
+
+if (!process.version ||
+ process.version.indexOf('v0.') === 0 ||
+ process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
+ module.exports = nextTick;
+} else {
+ module.exports = process.nextTick;
+}
+
+function nextTick(fn, arg1, arg2, arg3) {
+ if (typeof fn !== 'function') {
+ throw new TypeError('"callback" argument must be a function');
+ }
+ var len = arguments.length;
+ var args, i;
+ switch (len) {
+ case 0:
+ case 1:
+ return process.nextTick(fn);
+ case 2:
+ return process.nextTick(function afterTickOne() {
+ fn.call(null, arg1);
+ });
+ case 3:
+ return process.nextTick(function afterTickTwo() {
+ fn.call(null, arg1, arg2);
+ });
+ case 4:
+ return process.nextTick(function afterTickThree() {
+ fn.call(null, arg1, arg2, arg3);
+ });
+ default:
+ args = new Array(len - 1);
+ i = 0;
+ while (i < args.length) {
+ args[i++] = arguments[i];
+ }
+ return process.nextTick(function afterTick() {
+ fn.apply(null, args);
+ });
+ }
}
-Element.prototype.attr = function(attr, val) {
- if (((typeof val !== 'undefined') || (val === null))) {
- if (!this.attrs) {
- this.attrs = {}
+}).call(this,require('_process'))
+},{"_process":153}],153:[function(require,module,exports){
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
}
- this.attrs[attr] = val
- return this
}
- return this.attrs[attr]
+
+
}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
-/*** Serialization ***/
-Element.prototype.toString = function() {
- var s = ''
- this.write(function(c) {
- s += c
- })
- return s
}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
-Element.prototype.toJSON = function() {
- return {
- name: this.name,
- attrs: this.attrs,
- children: this.children.map(function(child) {
- return child && child.toJSON ? child.toJSON() : child
- })
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
}
}
-Element.prototype._addChildren = function(writer) {
- writer('>')
- for (var i = 0; i < this.children.length; i++) {
- var child = this.children[i]
- /* Skip null/undefined */
- if (child || (child === 0)) {
- if (child.write) {
- child.write(writer)
- } else if (typeof child === 'string') {
- writer(escapeXmlText(child))
- } else if (child.toString) {
- writer(escapeXmlText(child.toString(10)))
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
}
}
+ queueIndex = -1;
+ len = queue.length;
}
- writer('</')
- writer(this.name)
- writer('>')
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
}
-Element.prototype.write = function(writer) {
- writer('<')
- writer(this.name)
- for (var k in this.attrs) {
- var v = this.attrs[k]
- if (v || (v === '') || (v === 0)) {
- writer(' ')
- writer(k)
- writer('="')
- if (typeof v !== 'string') {
- v = v.toString(10)
- }
- writer(escapeXml(v))
- writer('"')
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
}
}
- if (this.children.length === 0) {
- writer('/>')
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+},{}],154:[function(require,module,exports){
+(function (global){
+/*! https://mths.be/punycode v1.4.1 by @mathias */
+;(function(root) {
+
+ /** Detect free variables */
+ var freeExports = typeof exports == 'object' && exports &&
+ !exports.nodeType && exports;
+ var freeModule = typeof module == 'object' && module &&
+ !module.nodeType && module;
+ var freeGlobal = typeof global == 'object' && global;
+ if (
+ freeGlobal.global === freeGlobal ||
+ freeGlobal.window === freeGlobal ||
+ freeGlobal.self === freeGlobal
+ ) {
+ root = freeGlobal;
+ }
+
+ /**
+ * The `punycode` object.
+ * @name punycode
+ * @type Object
+ */
+ var punycode,
+
+ /** Highest positive signed 32-bit float value */
+ maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
+
+ /** Bootstring parameters */
+ base = 36,
+ tMin = 1,
+ tMax = 26,
+ skew = 38,
+ damp = 700,
+ initialBias = 72,
+ initialN = 128, // 0x80
+ delimiter = '-', // '\x2D'
+
+ /** Regular expressions */
+ regexPunycode = /^xn--/,
+ regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
+ regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
+
+ /** Error messages */
+ errors = {
+ 'overflow': 'Overflow: input needs wider integers to process',
+ 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
+ 'invalid-input': 'Invalid input'
+ },
+
+ /** Convenience shortcuts */
+ baseMinusTMin = base - tMin,
+ floor = Math.floor,
+ stringFromCharCode = String.fromCharCode,
+
+ /** Temporary variable */
+ key;
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * A generic error utility function.
+ * @private
+ * @param {String} type The error type.
+ * @returns {Error} Throws a `RangeError` with the applicable error message.
+ */
+ function error(type) {
+ throw new RangeError(errors[type]);
+ }
+
+ /**
+ * A generic `Array#map` utility function.
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} callback The function that gets called for every array
+ * item.
+ * @returns {Array} A new array of values returned by the callback function.
+ */
+ function map(array, fn) {
+ var length = array.length;
+ var result = [];
+ while (length--) {
+ result[length] = fn(array[length]);
+ }
+ return result;
+ }
+
+ /**
+ * A simple `Array#map`-like wrapper to work with domain name strings or email
+ * addresses.
+ * @private
+ * @param {String} domain The domain name or email address.
+ * @param {Function} callback The function that gets called for every
+ * character.
+ * @returns {Array} A new string of characters returned by the callback
+ * function.
+ */
+ function mapDomain(string, fn) {
+ var parts = string.split('@');
+ var result = '';
+ if (parts.length > 1) {
+ // In email addresses, only the domain name should be punycoded. Leave
+ // the local part (i.e. everything up to `@`) intact.
+ result = parts[0] + '@';
+ string = parts[1];
+ }
+ // Avoid `split(regex)` for IE8 compatibility. See #17.
+ string = string.replace(regexSeparators, '\x2E');
+ var labels = string.split('.');
+ var encoded = map(labels, fn).join('.');
+ return result + encoded;
+ }
+
+ /**
+ * Creates an array containing the numeric code points of each Unicode
+ * character in the string. While JavaScript uses UCS-2 internally,
+ * this function will convert a pair of surrogate halves (each of which
+ * UCS-2 exposes as separate characters) into a single code point,
+ * matching UTF-16.
+ * @see `punycode.ucs2.encode`
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
+ * @memberOf punycode.ucs2
+ * @name decode
+ * @param {String} string The Unicode input string (UCS-2).
+ * @returns {Array} The new array of code points.
+ */
+ function ucs2decode(string) {
+ var output = [],
+ counter = 0,
+ length = string.length,
+ value,
+ extra;
+ while (counter < length) {
+ value = string.charCodeAt(counter++);
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
+ // high surrogate, and there is a next character
+ extra = string.charCodeAt(counter++);
+ if ((extra & 0xFC00) == 0xDC00) { // low surrogate
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
+ } else {
+ // unmatched surrogate; only append this code unit, in case the next
+ // code unit is the high surrogate of a surrogate pair
+ output.push(value);
+ counter--;
+ }
+ } else {
+ output.push(value);
+ }
+ }
+ return output;
+ }
+
+ /**
+ * Creates a string based on an array of numeric code points.
+ * @see `punycode.ucs2.decode`
+ * @memberOf punycode.ucs2
+ * @name encode
+ * @param {Array} codePoints The array of numeric code points.
+ * @returns {String} The new Unicode string (UCS-2).
+ */
+ function ucs2encode(array) {
+ return map(array, function(value) {
+ var output = '';
+ if (value > 0xFFFF) {
+ value -= 0x10000;
+ output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
+ value = 0xDC00 | value & 0x3FF;
+ }
+ output += stringFromCharCode(value);
+ return output;
+ }).join('');
+ }
+
+ /**
+ * Converts a basic code point into a digit/integer.
+ * @see `digitToBasic()`
+ * @private
+ * @param {Number} codePoint The basic numeric code point value.
+ * @returns {Number} The numeric value of a basic code point (for use in
+ * representing integers) in the range `0` to `base - 1`, or `base` if
+ * the code point does not represent a value.
+ */
+ function basicToDigit(codePoint) {
+ if (codePoint - 48 < 10) {
+ return codePoint - 22;
+ }
+ if (codePoint - 65 < 26) {
+ return codePoint - 65;
+ }
+ if (codePoint - 97 < 26) {
+ return codePoint - 97;
+ }
+ return base;
+ }
+
+ /**
+ * Converts a digit/integer into a basic code point.
+ * @see `basicToDigit()`
+ * @private
+ * @param {Number} digit The numeric value of a basic code point.
+ * @returns {Number} The basic code point whose value (when used for
+ * representing integers) is `digit`, which needs to be in the range
+ * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
+ * used; else, the lowercase form is used. The behavior is undefined
+ * if `flag` is non-zero and `digit` has no uppercase form.
+ */
+ function digitToBasic(digit, flag) {
+ // 0..25 map to ASCII a..z or A..Z
+ // 26..35 map to ASCII 0..9
+ return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
+ }
+
+ /**
+ * Bias adaptation function as per section 3.4 of RFC 3492.
+ * https://tools.ietf.org/html/rfc3492#section-3.4
+ * @private
+ */
+ function adapt(delta, numPoints, firstTime) {
+ var k = 0;
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
+ delta += floor(delta / numPoints);
+ for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
+ delta = floor(delta / baseMinusTMin);
+ }
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
+ }
+
+ /**
+ * Converts a Punycode string of ASCII-only symbols to a string of Unicode
+ * symbols.
+ * @memberOf punycode
+ * @param {String} input The Punycode string of ASCII-only symbols.
+ * @returns {String} The resulting string of Unicode symbols.
+ */
+ function decode(input) {
+ // Don't use UCS-2
+ var output = [],
+ inputLength = input.length,
+ out,
+ i = 0,
+ n = initialN,
+ bias = initialBias,
+ basic,
+ j,
+ index,
+ oldi,
+ w,
+ k,
+ digit,
+ t,
+ /** Cached calculation results */
+ baseMinusT;
+
+ // Handle the basic code points: let `basic` be the number of input code
+ // points before the last delimiter, or `0` if there is none, then copy
+ // the first basic code points to the output.
+
+ basic = input.lastIndexOf(delimiter);
+ if (basic < 0) {
+ basic = 0;
+ }
+
+ for (j = 0; j < basic; ++j) {
+ // if it's not a basic code point
+ if (input.charCodeAt(j) >= 0x80) {
+ error('not-basic');
+ }
+ output.push(input.charCodeAt(j));
+ }
+
+ // Main decoding loop: start just after the last delimiter if any basic code
+ // points were copied; start at the beginning otherwise.
+
+ for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
+
+ // `index` is the index of the next character to be consumed.
+ // Decode a generalized variable-length integer into `delta`,
+ // which gets added to `i`. The overflow checking is easier
+ // if we increase `i` as we go, then subtract off its starting
+ // value at the end to obtain `delta`.
+ for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
+
+ if (index >= inputLength) {
+ error('invalid-input');
+ }
+
+ digit = basicToDigit(input.charCodeAt(index++));
+
+ if (digit >= base || digit > floor((maxInt - i) / w)) {
+ error('overflow');
+ }
+
+ i += digit * w;
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+
+ if (digit < t) {
+ break;
+ }
+
+ baseMinusT = base - t;
+ if (w > floor(maxInt / baseMinusT)) {
+ error('overflow');
+ }
+
+ w *= baseMinusT;
+
+ }
+
+ out = output.length + 1;
+ bias = adapt(i - oldi, out, oldi == 0);
+
+ // `i` was supposed to wrap around from `out` to `0`,
+ // incrementing `n` each time, so we'll fix that now:
+ if (floor(i / out) > maxInt - n) {
+ error('overflow');
+ }
+
+ n += floor(i / out);
+ i %= out;
+
+ // Insert `n` at position `i` of the output
+ output.splice(i++, 0, n);
+
+ }
+
+ return ucs2encode(output);
+ }
+
+ /**
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
+ * Punycode string of ASCII-only symbols.
+ * @memberOf punycode
+ * @param {String} input The string of Unicode symbols.
+ * @returns {String} The resulting Punycode string of ASCII-only symbols.
+ */
+ function encode(input) {
+ var n,
+ delta,
+ handledCPCount,
+ basicLength,
+ bias,
+ j,
+ m,
+ q,
+ k,
+ t,
+ currentValue,
+ output = [],
+ /** `inputLength` will hold the number of code points in `input`. */
+ inputLength,
+ /** Cached calculation results */
+ handledCPCountPlusOne,
+ baseMinusT,
+ qMinusT;
+
+ // Convert the input in UCS-2 to Unicode
+ input = ucs2decode(input);
+
+ // Cache the length
+ inputLength = input.length;
+
+ // Initialize the state
+ n = initialN;
+ delta = 0;
+ bias = initialBias;
+
+ // Handle the basic code points
+ for (j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+ if (currentValue < 0x80) {
+ output.push(stringFromCharCode(currentValue));
+ }
+ }
+
+ handledCPCount = basicLength = output.length;
+
+ // `handledCPCount` is the number of code points that have been handled;
+ // `basicLength` is the number of basic code points.
+
+ // Finish the basic string - if it is not empty - with a delimiter
+ if (basicLength) {
+ output.push(delimiter);
+ }
+
+ // Main encoding loop:
+ while (handledCPCount < inputLength) {
+
+ // All non-basic code points < n have been handled already. Find the next
+ // larger one:
+ for (m = maxInt, j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+ if (currentValue >= n && currentValue < m) {
+ m = currentValue;
+ }
+ }
+
+ // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
+ // but guard against overflow
+ handledCPCountPlusOne = handledCPCount + 1;
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
+ error('overflow');
+ }
+
+ delta += (m - n) * handledCPCountPlusOne;
+ n = m;
+
+ for (j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+
+ if (currentValue < n && ++delta > maxInt) {
+ error('overflow');
+ }
+
+ if (currentValue == n) {
+ // Represent delta as a generalized variable-length integer
+ for (q = delta, k = base; /* no condition */; k += base) {
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+ if (q < t) {
+ break;
+ }
+ qMinusT = q - t;
+ baseMinusT = base - t;
+ output.push(
+ stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
+ );
+ q = floor(qMinusT / baseMinusT);
+ }
+
+ output.push(stringFromCharCode(digitToBasic(q, 0)));
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
+ delta = 0;
+ ++handledCPCount;
+ }
+ }
+
+ ++delta;
+ ++n;
+
+ }
+ return output.join('');
+ }
+
+ /**
+ * Converts a Punycode string representing a domain name or an email address
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
+ * it doesn't matter if you call it on a string that has already been
+ * converted to Unicode.
+ * @memberOf punycode
+ * @param {String} input The Punycoded domain name or email address to
+ * convert to Unicode.
+ * @returns {String} The Unicode representation of the given Punycode
+ * string.
+ */
+ function toUnicode(input) {
+ return mapDomain(input, function(string) {
+ return regexPunycode.test(string)
+ ? decode(string.slice(4).toLowerCase())
+ : string;
+ });
+ }
+
+ /**
+ * Converts a Unicode string representing a domain name or an email address to
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
+ * i.e. it doesn't matter if you call it with a domain that's already in
+ * ASCII.
+ * @memberOf punycode
+ * @param {String} input The domain name or email address to convert, as a
+ * Unicode string.
+ * @returns {String} The Punycode representation of the given domain name or
+ * email address.
+ */
+ function toASCII(input) {
+ return mapDomain(input, function(string) {
+ return regexNonASCII.test(string)
+ ? 'xn--' + encode(string)
+ : string;
+ });
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ /** Define the public API */
+ punycode = {
+ /**
+ * A string representing the current Punycode.js version number.
+ * @memberOf punycode
+ * @type String
+ */
+ 'version': '1.4.1',
+ /**
+ * An object of methods to convert from JavaScript's internal character
+ * representation (UCS-2) to Unicode code points, and back.
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
+ * @memberOf punycode
+ * @type Object
+ */
+ 'ucs2': {
+ 'decode': ucs2decode,
+ 'encode': ucs2encode
+ },
+ 'decode': decode,
+ 'encode': encode,
+ 'toASCII': toASCII,
+ 'toUnicode': toUnicode
+ };
+
+ /** Expose `punycode` */
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
+ // like the following:
+ if (
+ typeof define == 'function' &&
+ typeof define.amd == 'object' &&
+ define.amd
+ ) {
+ define('punycode', function() {
+ return punycode;
+ });
+ } else if (freeExports && freeModule) {
+ if (module.exports == freeExports) {
+ // in Node.js, io.js, or RingoJS v0.8.0+
+ freeModule.exports = punycode;
+ } else {
+ // in Narwhal or RingoJS v0.7.0-
+ for (key in punycode) {
+ punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
+ }
+ }
+ } else {
+ // in Rhino or a web browser
+ root.punycode = punycode;
+ }
+
+}(this));
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],155:[function(require,module,exports){
+module.exports = require("./lib/_stream_duplex.js")
+
+},{"./lib/_stream_duplex.js":156}],156:[function(require,module,exports){
+// a duplex stream is just a stream that is both readable and writable.
+// Since JS doesn't have multiple prototypal inheritance, this class
+// prototypally inherits from Readable, and then parasitically from
+// Writable.
+
+'use strict';
+
+/*<replacement>*/
+
+var objectKeys = Object.keys || function (obj) {
+ var keys = [];
+ for (var key in obj) {
+ keys.push(key);
+ }return keys;
+};
+/*</replacement>*/
+
+module.exports = Duplex;
+
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+var Readable = require('./_stream_readable');
+var Writable = require('./_stream_writable');
+
+util.inherits(Duplex, Readable);
+
+var keys = objectKeys(Writable.prototype);
+for (var v = 0; v < keys.length; v++) {
+ var method = keys[v];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+}
+
+function Duplex(options) {
+ if (!(this instanceof Duplex)) return new Duplex(options);
+
+ Readable.call(this, options);
+ Writable.call(this, options);
+
+ if (options && options.readable === false) this.readable = false;
+
+ if (options && options.writable === false) this.writable = false;
+
+ this.allowHalfOpen = true;
+ if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
+
+ this.once('end', onend);
+}
+
+// the no-half-open enforcer
+function onend() {
+ // if we allow half-open state, or if the writable side ended,
+ // then we're ok.
+ if (this.allowHalfOpen || this._writableState.ended) return;
+
+ // no more data can be written.
+ // But allow more writes to happen in this tick.
+ processNextTick(onEndNT, this);
+}
+
+function onEndNT(self) {
+ self.end();
+}
+
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+}
+},{"./_stream_readable":158,"./_stream_writable":160,"core-util-is":22,"inherits":45,"process-nextick-args":152}],157:[function(require,module,exports){
+// a passthrough stream.
+// basically just the most minimal sort of Transform stream.
+// Every written chunk gets output as-is.
+
+'use strict';
+
+module.exports = PassThrough;
+
+var Transform = require('./_stream_transform');
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+util.inherits(PassThrough, Transform);
+
+function PassThrough(options) {
+ if (!(this instanceof PassThrough)) return new PassThrough(options);
+
+ Transform.call(this, options);
+}
+
+PassThrough.prototype._transform = function (chunk, encoding, cb) {
+ cb(null, chunk);
+};
+},{"./_stream_transform":159,"core-util-is":22,"inherits":45}],158:[function(require,module,exports){
+(function (process){
+'use strict';
+
+module.exports = Readable;
+
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
+
+/*<replacement>*/
+var isArray = require('isarray');
+/*</replacement>*/
+
+Readable.ReadableState = ReadableState;
+
+/*<replacement>*/
+var EE = require('events').EventEmitter;
+
+var EElistenerCount = function (emitter, type) {
+ return emitter.listeners(type).length;
+};
+/*</replacement>*/
+
+/*<replacement>*/
+var Stream;
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
+/*</replacement>*/
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+/*<replacement>*/
+var debugUtil = require('util');
+var debug = void 0;
+if (debugUtil && debugUtil.debuglog) {
+ debug = debugUtil.debuglog('stream');
+} else {
+ debug = function () {};
+}
+/*</replacement>*/
+
+var BufferList = require('./internal/streams/BufferList');
+var StringDecoder;
+
+util.inherits(Readable, Stream);
+
+function prependListener(emitter, event, fn) {
+ if (typeof emitter.prependListener === 'function') {
+ return emitter.prependListener(event, fn);
+ } else {
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
+ }
+}
+
+var Duplex;
+function ReadableState(options, stream) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ options = options || {};
+
+ // object stream flag. Used to make read(n) ignore n and to
+ // make all the buffer merging and length checks go away
+ this.objectMode = !!options.objectMode;
+
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+
+ // the point at which it stops calling _read() to fill the buffer
+ // Note: 0 is a valid value, means "don't call _read preemptively ever"
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+
+ // A linked list is used to store data chunks instead of an array because the
+ // linked list can remove elements from the beginning faster than
+ // array.shift()
+ this.buffer = new BufferList();
+ this.length = 0;
+ this.pipes = null;
+ this.pipesCount = 0;
+ this.flowing = null;
+ this.ended = false;
+ this.endEmitted = false;
+ this.reading = false;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // whenever we return null, then we set a flag to say
+ // that we're awaiting a 'readable' event emission.
+ this.needReadable = false;
+ this.emittedReadable = false;
+ this.readableListening = false;
+ this.resumeScheduled = false;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // when piping, we only care about 'readable' events that happen
+ // after read()ing all the bytes and not getting any pushback.
+ this.ranOut = false;
+
+ // the number of writers that are awaiting a drain event in .pipe()s
+ this.awaitDrain = 0;
+
+ // if true, a maybeReadMore has been scheduled
+ this.readingMore = false;
+
+ this.decoder = null;
+ this.encoding = null;
+ if (options.encoding) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+ this.decoder = new StringDecoder(options.encoding);
+ this.encoding = options.encoding;
+ }
+}
+
+var Duplex;
+function Readable(options) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ if (!(this instanceof Readable)) return new Readable(options);
+
+ this._readableState = new ReadableState(options, this);
+
+ // legacy
+ this.readable = true;
+
+ if (options && typeof options.read === 'function') this._read = options.read;
+
+ Stream.call(this);
+}
+
+// Manually shove something into the read() buffer.
+// This returns true if the highWaterMark has not been hit yet,
+// similar to how Writable.write() returns true if you should
+// write() some more.
+Readable.prototype.push = function (chunk, encoding) {
+ var state = this._readableState;
+
+ if (!state.objectMode && typeof chunk === 'string') {
+ encoding = encoding || state.defaultEncoding;
+ if (encoding !== state.encoding) {
+ chunk = bufferShim.from(chunk, encoding);
+ encoding = '';
+ }
+ }
+
+ return readableAddChunk(this, state, chunk, encoding, false);
+};
+
+// Unshift should *always* be something directly out of read()
+Readable.prototype.unshift = function (chunk) {
+ var state = this._readableState;
+ return readableAddChunk(this, state, chunk, '', true);
+};
+
+Readable.prototype.isPaused = function () {
+ return this._readableState.flowing === false;
+};
+
+function readableAddChunk(stream, state, chunk, encoding, addToFront) {
+ var er = chunkInvalid(state, chunk);
+ if (er) {
+ stream.emit('error', er);
+ } else if (chunk === null) {
+ state.reading = false;
+ onEofChunk(stream, state);
+ } else if (state.objectMode || chunk && chunk.length > 0) {
+ if (state.ended && !addToFront) {
+ var e = new Error('stream.push() after EOF');
+ stream.emit('error', e);
+ } else if (state.endEmitted && addToFront) {
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
} else {
- this._addChildren(writer)
+ var skipAdd;
+ if (state.decoder && !addToFront && !encoding) {
+ chunk = state.decoder.write(chunk);
+ skipAdd = !state.objectMode && chunk.length === 0;
+ }
+
+ if (!addToFront) state.reading = false;
+
+ // Don't add to the buffer if we've decoded to an empty string chunk and
+ // we're not in object mode
+ if (!skipAdd) {
+ // if we want the data now, just emit it.
+ if (state.flowing && state.length === 0 && !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+
+ if (state.needReadable) emitReadable(stream);
+ }
+ }
+
+ maybeReadMore(stream, state);
}
+ } else if (!addToFront) {
+ state.reading = false;
+ }
+
+ return needMoreData(state);
}
-function escapeXml(s) {
- return s.
- replace(/\&/g, '&amp;').
- replace(/</g, '&lt;').
- replace(/>/g, '&gt;').
- replace(/"/g, '&quot;').
- replace(/"/g, '&apos;')
+// if it's past the high water mark, we can push in some more.
+// Also, if we have no data yet, we can stand some
+// more bytes. This is to work around cases where hwm=0,
+// such as the repl. Also, if the push() triggered a
+// readable event, and the user called read(largeNumber) such that
+// needReadable was set, then we ought to push more, so that another
+// 'readable' event will be triggered.
+function needMoreData(state) {
+ return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
}
-function escapeXmlText(s) {
- return s.
- replace(/\&/g, '&amp;').
- replace(/</g, '&lt;').
- replace(/>/g, '&gt;')
+// backwards compatibility.
+Readable.prototype.setEncoding = function (enc) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+ this._readableState.decoder = new StringDecoder(enc);
+ this._readableState.encoding = enc;
+ return this;
+};
+
+// Don't raise the hwm > 8MB
+var MAX_HWM = 0x800000;
+function computeNewHighWaterMark(n) {
+ if (n >= MAX_HWM) {
+ n = MAX_HWM;
+ } else {
+ // Get the next highest power of 2 to prevent increasing hwm excessively in
+ // tiny amounts
+ n--;
+ n |= n >>> 1;
+ n |= n >>> 2;
+ n |= n >>> 4;
+ n |= n >>> 8;
+ n |= n >>> 16;
+ n++;
+ }
+ return n;
}
-exports.Element = Element
-exports.escapeXml = escapeXml
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function howMuchToRead(n, state) {
+ if (n <= 0 || state.length === 0 && state.ended) return 0;
+ if (state.objectMode) return 1;
+ if (n !== n) {
+ // Only flow one buffer at a time
+ if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
+ }
+ // If we're asking for more than the current hwm, then raise the hwm.
+ if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
+ if (n <= state.length) return n;
+ // Don't have enough
+ if (!state.ended) {
+ state.needReadable = true;
+ return 0;
+ }
+ return state.length;
+}
+
+// you can override either this method, or the async _read(n) below.
+Readable.prototype.read = function (n) {
+ debug('read', n);
+ n = parseInt(n, 10);
+ var state = this._readableState;
+ var nOrig = n;
+
+ if (n !== 0) state.emittedReadable = false;
+
+ // if we're doing read(0) to trigger a readable event, but we
+ // already have a bunch of data in the buffer, then just trigger
+ // the 'readable' event and move on.
+ if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
+ debug('read: emitReadable', state.length, state.ended);
+ if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
+ return null;
+ }
+
+ n = howMuchToRead(n, state);
+
+ // if we've ended, and we're now clear, then finish it up.
+ if (n === 0 && state.ended) {
+ if (state.length === 0) endReadable(this);
+ return null;
+ }
+
+ // All the actual chunk generation logic needs to be
+ // *below* the call to _read. The reason is that in certain
+ // synthetic stream cases, such as passthrough streams, _read
+ // may be a completely synchronous operation which may change
+ // the state of the read buffer, providing enough data when
+ // before there was *not* enough.
+ //
+ // So, the steps are:
+ // 1. Figure out what the state of things will be after we do
+ // a read from the buffer.
+ //
+ // 2. If that resulting state will trigger a _read, then call _read.
+ // Note that this may be asynchronous, or synchronous. Yes, it is
+ // deeply ugly to write APIs this way, but that still doesn't mean
+ // that the Readable class should behave improperly, as streams are
+ // designed to be sync/async agnostic.
+ // Take note if the _read call is sync or async (ie, if the read call
+ // has returned yet), so that we know whether or not it's safe to emit
+ // 'readable' etc.
+ //
+ // 3. Actually pull the requested chunks out of the buffer and return.
+
+ // if we need a readable event, then we need to do some reading.
+ var doRead = state.needReadable;
+ debug('need readable', doRead);
+
+ // if we currently have less than the highWaterMark, then also read some
+ if (state.length === 0 || state.length - n < state.highWaterMark) {
+ doRead = true;
+ debug('length less than watermark', doRead);
+ }
+
+ // however, if we've ended, then there's no point, and if we're already
+ // reading, then it's unnecessary.
+ if (state.ended || state.reading) {
+ doRead = false;
+ debug('reading or ended', doRead);
+ } else if (doRead) {
+ debug('do read');
+ state.reading = true;
+ state.sync = true;
+ // if the length is currently zero, then we *need* a readable event.
+ if (state.length === 0) state.needReadable = true;
+ // call internal read method
+ this._read(state.highWaterMark);
+ state.sync = false;
+ // If _read pushed data synchronously, then `reading` will be false,
+ // and we need to re-evaluate how much data we can return to the user.
+ if (!state.reading) n = howMuchToRead(nOrig, state);
+ }
+
+ var ret;
+ if (n > 0) ret = fromList(n, state);else ret = null;
+
+ if (ret === null) {
+ state.needReadable = true;
+ n = 0;
+ } else {
+ state.length -= n;
+ }
+
+ if (state.length === 0) {
+ // If we have nothing in the buffer, then we want to know
+ // as soon as we *do* get something into the buffer.
+ if (!state.ended) state.needReadable = true;
+
+ // If we tried to read() past the EOF, then emit end on the next tick.
+ if (nOrig !== n && state.ended) endReadable(this);
+ }
+
+ if (ret !== null) this.emit('data', ret);
+
+ return ret;
+};
+
+function chunkInvalid(state, chunk) {
+ var er = null;
+ if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ return er;
+}
+
+function onEofChunk(stream, state) {
+ if (state.ended) return;
+ if (state.decoder) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) {
+ state.buffer.push(chunk);
+ state.length += state.objectMode ? 1 : chunk.length;
+ }
+ }
+ state.ended = true;
+
+ // emit 'readable' now to make sure it gets picked up.
+ emitReadable(stream);
+}
+
+// Don't emit readable right away in sync mode, because this can trigger
+// another read() call => stack overflow. This way, it might trigger
+// a nextTick recursion warning, but that's not so bad.
+function emitReadable(stream) {
+ var state = stream._readableState;
+ state.needReadable = false;
+ if (!state.emittedReadable) {
+ debug('emitReadable', state.flowing);
+ state.emittedReadable = true;
+ if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
+ }
+}
+
+function emitReadable_(stream) {
+ debug('emit readable');
+ stream.emit('readable');
+ flow(stream);
+}
+
+// at this point, the user has presumably seen the 'readable' event,
+// and called read() to consume some data. that may have triggered
+// in turn another _read(n) call, in which case reading = true if
+// it's in progress.
+// However, if we're not ended, or reading, and the length < hwm,
+// then go ahead and try to read some more preemptively.
+function maybeReadMore(stream, state) {
+ if (!state.readingMore) {
+ state.readingMore = true;
+ processNextTick(maybeReadMore_, stream, state);
+ }
+}
+
+function maybeReadMore_(stream, state) {
+ var len = state.length;
+ while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
+ debug('maybeReadMore read 0');
+ stream.read(0);
+ if (len === state.length)
+ // didn't get any data, stop spinning.
+ break;else len = state.length;
+ }
+ state.readingMore = false;
+}
+
+// abstract method. to be overridden in specific implementation classes.
+// call cb(er, data) where data is <= n in length.
+// for virtual (non-string, non-buffer) streams, "length" is somewhat
+// arbitrary, and perhaps not very meaningful.
+Readable.prototype._read = function (n) {
+ this.emit('error', new Error('not implemented'));
+};
+
+Readable.prototype.pipe = function (dest, pipeOpts) {
+ var src = this;
+ var state = this._readableState;
+
+ switch (state.pipesCount) {
+ case 0:
+ state.pipes = dest;
+ break;
+ case 1:
+ state.pipes = [state.pipes, dest];
+ break;
+ default:
+ state.pipes.push(dest);
+ break;
+ }
+ state.pipesCount += 1;
+ debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
+
+ var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
+
+ var endFn = doEnd ? onend : cleanup;
+ if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
+
+ dest.on('unpipe', onunpipe);
+ function onunpipe(readable) {
+ debug('onunpipe');
+ if (readable === src) {
+ cleanup();
+ }
+ }
+
+ function onend() {
+ debug('onend');
+ dest.end();
+ }
+
+ // when the dest drains, it reduces the awaitDrain counter
+ // on the source. This would be more elegant with a .once()
+ // handler in flow(), but adding and removing repeatedly is
+ // too slow.
+ var ondrain = pipeOnDrain(src);
+ dest.on('drain', ondrain);
+
+ var cleanedUp = false;
+ function cleanup() {
+ debug('cleanup');
+ // cleanup event handlers once the pipe is broken
+ dest.removeListener('close', onclose);
+ dest.removeListener('finish', onfinish);
+ dest.removeListener('drain', ondrain);
+ dest.removeListener('error', onerror);
+ dest.removeListener('unpipe', onunpipe);
+ src.removeListener('end', onend);
+ src.removeListener('end', cleanup);
+ src.removeListener('data', ondata);
+
+ cleanedUp = true;
+
+ // if the reader is waiting for a drain event from this
+ // specific writer, then it would cause it to never start
+ // flowing again.
+ // So, if this is awaiting a drain, then we just call it now.
+ // If we don't know, then assume that we are waiting for one.
+ if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
+ }
+
+ // If the user pushes more data while we're writing to dest then we'll end up
+ // in ondata again. However, we only want to increase awaitDrain once because
+ // dest will only emit one 'drain' event for the multiple writes.
+ // => Introduce a guard on increasing awaitDrain.
+ var increasedAwaitDrain = false;
+ src.on('data', ondata);
+ function ondata(chunk) {
+ debug('ondata');
+ increasedAwaitDrain = false;
+ var ret = dest.write(chunk);
+ if (false === ret && !increasedAwaitDrain) {
+ // If the user unpiped during `dest.write()`, it is possible
+ // to get stuck in a permanently paused state if that write
+ // also returned false.
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
+ debug('false write response, pause', src._readableState.awaitDrain);
+ src._readableState.awaitDrain++;
+ increasedAwaitDrain = true;
+ }
+ src.pause();
+ }
+ }
+
+ // if the dest has an error, then stop piping into it.
+ // however, don't suppress the throwing behavior for this.
+ function onerror(er) {
+ debug('onerror', er);
+ unpipe();
+ dest.removeListener('error', onerror);
+ if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
+ }
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
+
+ // Both close and finish should trigger unpipe, but only once.
+ function onclose() {
+ dest.removeListener('finish', onfinish);
+ unpipe();
+ }
+ dest.once('close', onclose);
+ function onfinish() {
+ debug('onfinish');
+ dest.removeListener('close', onclose);
+ unpipe();
+ }
+ dest.once('finish', onfinish);
+
+ function unpipe() {
+ debug('unpipe');
+ src.unpipe(dest);
+ }
+
+ // tell the dest that it's being piped to
+ dest.emit('pipe', src);
+
+ // start the flow if it hasn't been started already.
+ if (!state.flowing) {
+ debug('pipe resume');
+ src.resume();
+ }
+
+ return dest;
+};
+
+function pipeOnDrain(src) {
+ return function () {
+ var state = src._readableState;
+ debug('pipeOnDrain', state.awaitDrain);
+ if (state.awaitDrain) state.awaitDrain--;
+ if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
+ state.flowing = true;
+ flow(src);
+ }
+ };
+}
+
+Readable.prototype.unpipe = function (dest) {
+ var state = this._readableState;
+
+ // if we're not piping anywhere, then do nothing.
+ if (state.pipesCount === 0) return this;
+
+ // just one destination. most common case.
+ if (state.pipesCount === 1) {
+ // passed in one, but it's not the right one.
+ if (dest && dest !== state.pipes) return this;
+
+ if (!dest) dest = state.pipes;
+
+ // got a match.
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+ if (dest) dest.emit('unpipe', this);
+ return this;
+ }
+
+ // slow case. multiple pipe destinations.
+
+ if (!dest) {
+ // remove all.
+ var dests = state.pipes;
+ var len = state.pipesCount;
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+
+ for (var _i = 0; _i < len; _i++) {
+ dests[_i].emit('unpipe', this);
+ }return this;
+ }
+
+ // try to find the right one.
+ var i = indexOf(state.pipes, dest);
+ if (i === -1) return this;
+
+ state.pipes.splice(i, 1);
+ state.pipesCount -= 1;
+ if (state.pipesCount === 1) state.pipes = state.pipes[0];
+
+ dest.emit('unpipe', this);
+
+ return this;
+};
+
+// set up data events if they are asked for
+// Ensure readable listeners eventually get something
+Readable.prototype.on = function (ev, fn) {
+ var res = Stream.prototype.on.call(this, ev, fn);
+
+ if (ev === 'data') {
+ // Start flowing on next tick if stream isn't explicitly paused
+ if (this._readableState.flowing !== false) this.resume();
+ } else if (ev === 'readable') {
+ var state = this._readableState;
+ if (!state.endEmitted && !state.readableListening) {
+ state.readableListening = state.needReadable = true;
+ state.emittedReadable = false;
+ if (!state.reading) {
+ processNextTick(nReadingNextTick, this);
+ } else if (state.length) {
+ emitReadable(this, state);
+ }
+ }
+ }
+
+ return res;
+};
+Readable.prototype.addListener = Readable.prototype.on;
+
+function nReadingNextTick(self) {
+ debug('readable nexttick read 0');
+ self.read(0);
+}
+
+// pause() and resume() are remnants of the legacy readable stream API
+// If the user uses them, then switch into old mode.
+Readable.prototype.resume = function () {
+ var state = this._readableState;
+ if (!state.flowing) {
+ debug('resume');
+ state.flowing = true;
+ resume(this, state);
+ }
+ return this;
+};
+
+function resume(stream, state) {
+ if (!state.resumeScheduled) {
+ state.resumeScheduled = true;
+ processNextTick(resume_, stream, state);
+ }
+}
+
+function resume_(stream, state) {
+ if (!state.reading) {
+ debug('resume read 0');
+ stream.read(0);
+ }
+
+ state.resumeScheduled = false;
+ state.awaitDrain = 0;
+ stream.emit('resume');
+ flow(stream);
+ if (state.flowing && !state.reading) stream.read(0);
+}
+
+Readable.prototype.pause = function () {
+ debug('call pause flowing=%j', this._readableState.flowing);
+ if (false !== this._readableState.flowing) {
+ debug('pause');
+ this._readableState.flowing = false;
+ this.emit('pause');
+ }
+ return this;
+};
+
+function flow(stream) {
+ var state = stream._readableState;
+ debug('flow', state.flowing);
+ while (state.flowing && stream.read() !== null) {}
+}
+
+// wrap an old-style stream as the async data source.
+// This is *not* part of the readable stream interface.
+// It is an ugly unfortunate mess of history.
+Readable.prototype.wrap = function (stream) {
+ var state = this._readableState;
+ var paused = false;
+
+ var self = this;
+ stream.on('end', function () {
+ debug('wrapped end');
+ if (state.decoder && !state.ended) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) self.push(chunk);
+ }
+
+ self.push(null);
+ });
+
+ stream.on('data', function (chunk) {
+ debug('wrapped data');
+ if (state.decoder) chunk = state.decoder.write(chunk);
+
+ // don't skip over falsy values in objectMode
+ if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
+
+ var ret = self.push(chunk);
+ if (!ret) {
+ paused = true;
+ stream.pause();
+ }
+ });
+
+ // proxy all the other methods.
+ // important when wrapping filters and duplexes.
+ for (var i in stream) {
+ if (this[i] === undefined && typeof stream[i] === 'function') {
+ this[i] = function (method) {
+ return function () {
+ return stream[method].apply(stream, arguments);
+ };
+ }(i);
+ }
+ }
+
+ // proxy certain important events.
+ var events = ['error', 'close', 'destroy', 'pause', 'resume'];
+ forEach(events, function (ev) {
+ stream.on(ev, self.emit.bind(self, ev));
+ });
+
+ // when we try to consume some more bytes, simply unpause the
+ // underlying stream.
+ self._read = function (n) {
+ debug('wrapped _read', n);
+ if (paused) {
+ paused = false;
+ stream.resume();
+ }
+ };
+
+ return self;
+};
+
+// exposed for testing purposes only.
+Readable._fromList = fromList;
+
+// Pluck off n bytes from an array of buffers.
+// Length is the combined lengths of all the buffers in the list.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromList(n, state) {
+ // nothing buffered
+ if (state.length === 0) return null;
+
+ var ret;
+ if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
+ // read it all, truncate the list
+ if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
+ state.buffer.clear();
+ } else {
+ // read part of list
+ ret = fromListPartial(n, state.buffer, state.decoder);
+ }
+
+ return ret;
+}
+
+// Extracts only enough buffered data to satisfy the amount requested.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromListPartial(n, list, hasStrings) {
+ var ret;
+ if (n < list.head.data.length) {
+ // slice is the same for buffers and strings
+ ret = list.head.data.slice(0, n);
+ list.head.data = list.head.data.slice(n);
+ } else if (n === list.head.data.length) {
+ // first chunk is a perfect match
+ ret = list.shift();
+ } else {
+ // result spans more than one buffer
+ ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
+ }
+ return ret;
+}
+
+// Copies a specified amount of characters from the list of buffered data
+// chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBufferString(n, list) {
+ var p = list.head;
+ var c = 1;
+ var ret = p.data;
+ n -= ret.length;
+ while (p = p.next) {
+ var str = p.data;
+ var nb = n > str.length ? str.length : n;
+ if (nb === str.length) ret += str;else ret += str.slice(0, n);
+ n -= nb;
+ if (n === 0) {
+ if (nb === str.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = str.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+}
+
+// Copies a specified amount of bytes from the list of buffered data chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBuffer(n, list) {
+ var ret = bufferShim.allocUnsafe(n);
+ var p = list.head;
+ var c = 1;
+ p.data.copy(ret);
+ n -= p.data.length;
+ while (p = p.next) {
+ var buf = p.data;
+ var nb = n > buf.length ? buf.length : n;
+ buf.copy(ret, ret.length - n, 0, nb);
+ n -= nb;
+ if (n === 0) {
+ if (nb === buf.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = buf.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+}
+
+function endReadable(stream) {
+ var state = stream._readableState;
+
+ // If we get here before consuming all the bytes, then that is a
+ // bug in node. Should never happen.
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
+
+ if (!state.endEmitted) {
+ state.ended = true;
+ processNextTick(endReadableNT, state, stream);
+ }
+}
+
+function endReadableNT(state, stream) {
+ // Check that we didn't get one last unshift.
+ if (!state.endEmitted && state.length === 0) {
+ state.endEmitted = true;
+ stream.readable = false;
+ stream.emit('end');
+ }
+}
+
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+}
+
+function indexOf(xs, x) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ if (xs[i] === x) return i;
+ }
+ return -1;
+}
+}).call(this,require('_process'))
+},{"./_stream_duplex":156,"./internal/streams/BufferList":161,"_process":153,"buffer":6,"buffer-shims":5,"core-util-is":22,"events":27,"inherits":45,"isarray":48,"process-nextick-args":152,"string_decoder/":183,"util":4}],159:[function(require,module,exports){
+// a transform stream is a readable/writable stream where you do
+// something with the data. Sometimes it's called a "filter",
+// but that's not a great name for it, since that implies a thing where
+// some bits pass through, and others are simply ignored. (That would
+// be a valid example of a transform, of course.)
+//
+// While the output is causally related to the input, it's not a
+// necessarily symmetric or synchronous transformation. For example,
+// a zlib stream might take multiple plain-text writes(), and then
+// emit a single compressed chunk some time in the future.
+//
+// Here's how this works:
+//
+// The Transform stream has all the aspects of the readable and writable
+// stream classes. When you write(chunk), that calls _write(chunk,cb)
+// internally, and returns false if there's a lot of pending writes
+// buffered up. When you call read(), that calls _read(n) until
+// there's enough pending readable data buffered up.
+//
+// In a transform stream, the written data is placed in a buffer. When
+// _read(n) is called, it transforms the queued up data, calling the
+// buffered _write cb's as it consumes chunks. If consuming a single
+// written chunk would result in multiple output chunks, then the first
+// outputted bit calls the readcb, and subsequent chunks just go into
+// the read buffer, and will cause it to emit 'readable' if necessary.
+//
+// This way, back-pressure is actually determined by the reading side,
+// since _read has to be called to start processing a new chunk. However,
+// a pathological inflate type of transform can cause excessive buffering
+// here. For example, imagine a stream where every byte of input is
+// interpreted as an integer from 0-255, and then results in that many
+// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
+// 1kb of data being output. In this case, you could write a very small
+// amount of input, and end up with a very large amount of output. In
+// such a pathological inflating mechanism, there'd be no way to tell
+// the system to stop doing the transform. A single 4MB write could
+// cause the system to run out of memory.
+//
+// However, even in such a pathological case, only a single written chunk
+// would be consumed, and then the rest would wait (un-transformed) until
+// the results of the previous transformed chunk were consumed.
-},{}],245:[function(require,module,exports){
'use strict';
-/* Cause browserify to bundle SAX parsers: */
-var parse = require('./parse')
+module.exports = Transform;
+
+var Duplex = require('./_stream_duplex');
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+util.inherits(Transform, Duplex);
+
+function TransformState(stream) {
+ this.afterTransform = function (er, data) {
+ return afterTransform(stream, er, data);
+ };
+
+ this.needTransform = false;
+ this.transforming = false;
+ this.writecb = null;
+ this.writechunk = null;
+ this.writeencoding = null;
+}
+
+function afterTransform(stream, er, data) {
+ var ts = stream._transformState;
+ ts.transforming = false;
+
+ var cb = ts.writecb;
+
+ if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
+
+ ts.writechunk = null;
+ ts.writecb = null;
+
+ if (data !== null && data !== undefined) stream.push(data);
+
+ cb(er);
+
+ var rs = stream._readableState;
+ rs.reading = false;
+ if (rs.needReadable || rs.length < rs.highWaterMark) {
+ stream._read(rs.highWaterMark);
+ }
+}
+
+function Transform(options) {
+ if (!(this instanceof Transform)) return new Transform(options);
+
+ Duplex.call(this, options);
+
+ this._transformState = new TransformState(this);
+
+ // when the writable side finishes, then flush out anything remaining.
+ var stream = this;
+
+ // start out asking for a readable event once data is transformed.
+ this._readableState.needReadable = true;
+
+ // we have implemented the _read method, and done the other things
+ // that Readable wants before the first _read call, so unset the
+ // sync guard flag.
+ this._readableState.sync = false;
+
+ if (options) {
+ if (typeof options.transform === 'function') this._transform = options.transform;
+
+ if (typeof options.flush === 'function') this._flush = options.flush;
+ }
+
+ this.once('prefinish', function () {
+ if (typeof this._flush === 'function') this._flush(function (er) {
+ done(stream, er);
+ });else done(stream);
+ });
+}
+
+Transform.prototype.push = function (chunk, encoding) {
+ this._transformState.needTransform = false;
+ return Duplex.prototype.push.call(this, chunk, encoding);
+};
+
+// This is the part where you do stuff!
+// override this function in implementation classes.
+// 'chunk' is an input chunk.
+//
+// Call `push(newChunk)` to pass along transformed output
+// to the readable side. You may call 'push' zero or more times.
+//
+// Call `cb(err)` when you are done with this chunk. If you pass
+// an error, then that'll put the hurt on the whole operation. If you
+// never call cb(), then you'll never get another chunk.
+Transform.prototype._transform = function (chunk, encoding, cb) {
+ throw new Error('Not implemented');
+};
+
+Transform.prototype._write = function (chunk, encoding, cb) {
+ var ts = this._transformState;
+ ts.writecb = cb;
+ ts.writechunk = chunk;
+ ts.writeencoding = encoding;
+ if (!ts.transforming) {
+ var rs = this._readableState;
+ if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
+ }
+};
+
+// Doesn't matter what the args are here.
+// _transform does all the work.
+// That we got here means that the readable side wants more data.
+Transform.prototype._read = function (n) {
+ var ts = this._transformState;
+
+ if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
+ ts.transforming = true;
+ this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
+ } else {
+ // mark that we need a transform, so that any data that comes in
+ // will get processed, now that we've asked for it.
+ ts.needTransform = true;
+ }
+};
+
+function done(stream, er) {
+ if (er) return stream.emit('error', er);
+
+ // if there's nothing in the write buffer, then that means
+ // that nothing more will ever be provided
+ var ws = stream._writableState;
+ var ts = stream._transformState;
+
+ if (ws.length) throw new Error('Calling transform done when ws.length != 0');
-parse.availableSaxParsers.push(parse.bestSaxParser = require('./sax/sax_ltx'))
+ if (ts.transforming) throw new Error('Calling transform done when still transforming');
+
+ return stream.push(null);
+}
+},{"./_stream_duplex":156,"core-util-is":22,"inherits":45}],160:[function(require,module,exports){
+(function (process){
+// A bit simpler than readable streams.
+// Implement an async ._write(chunk, encoding, cb), and it'll handle all
+// the drain event emission and buffering.
-/* SHIM */
-module.exports = require('./index')
-},{"./index":246,"./parse":247,"./sax/sax_ltx":248}],246:[function(require,module,exports){
'use strict';
-var parse = require('./parse')
+module.exports = Writable;
+
+/*<replacement>*/
+var processNextTick = require('process-nextick-args');
+/*</replacement>*/
+
+/*<replacement>*/
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
+/*</replacement>*/
+
+Writable.WritableState = WritableState;
+
+/*<replacement>*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*</replacement>*/
+
+/*<replacement>*/
+var internalUtil = {
+ deprecate: require('util-deprecate')
+};
+/*</replacement>*/
+
+/*<replacement>*/
+var Stream;
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ if (!Stream) Stream = require('events').EventEmitter;
+ }
+})();
+/*</replacement>*/
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+util.inherits(Writable, Stream);
+
+function nop() {}
+
+function WriteReq(chunk, encoding, cb) {
+ this.chunk = chunk;
+ this.encoding = encoding;
+ this.callback = cb;
+ this.next = null;
+}
+
+var Duplex;
+function WritableState(options, stream) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ options = options || {};
+
+ // object stream flag to indicate whether or not this stream
+ // contains buffers or objects.
+ this.objectMode = !!options.objectMode;
+
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
+
+ // the point at which write() starts returning false
+ // Note: 0 is a valid value, means that we always return false if
+ // the entire buffer is not flushed immediately on write()
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+
+ this.needDrain = false;
+ // at the start of calling end()
+ this.ending = false;
+ // when end() has been called, and returned
+ this.ended = false;
+ // when 'finish' is emitted
+ this.finished = false;
+
+ // should we decode strings into buffers before passing to _write?
+ // this is here so that some node-core streams can optimize string
+ // handling at a lower level.
+ var noDecode = options.decodeStrings === false;
+ this.decodeStrings = !noDecode;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // not an actual buffer we keep track of, but a measurement
+ // of how much we're waiting to get pushed to some underlying
+ // socket or file.
+ this.length = 0;
+
+ // a flag to see when we're in the middle of a write.
+ this.writing = false;
+
+ // when true all writes will be buffered until .uncork() call
+ this.corked = 0;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // a flag to know if we're processing previously buffered items, which
+ // may call the _write() callback in the same tick, so that we don't
+ // end up in an overlapped onwrite situation.
+ this.bufferProcessing = false;
+
+ // the callback that's passed to _write(chunk,cb)
+ this.onwrite = function (er) {
+ onwrite(stream, er);
+ };
+
+ // the callback that the user supplies to write(chunk,encoding,cb)
+ this.writecb = null;
+
+ // the amount that is being written when _write is called.
+ this.writelen = 0;
+
+ this.bufferedRequest = null;
+ this.lastBufferedRequest = null;
+
+ // number of pending user-supplied write callbacks
+ // this must be 0 before 'finish' can be emitted
+ this.pendingcb = 0;
+
+ // emit prefinish if the only thing we're waiting for is _write cbs
+ // This is relevant for synchronous Transform streams
+ this.prefinished = false;
+
+ // True if the error was already emitted and should not be thrown again
+ this.errorEmitted = false;
+
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
+ this.corkedRequestsFree = new CorkedRequest(this);
+}
+
+WritableState.prototype.getBuffer = function writableStateGetBuffer() {
+ var current = this.bufferedRequest;
+ var out = [];
+ while (current) {
+ out.push(current);
+ current = current.next;
+ }
+ return out;
+};
+
+(function () {
+ try {
+ Object.defineProperty(WritableState.prototype, 'buffer', {
+ get: internalUtil.deprecate(function () {
+ return this.getBuffer();
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ });
+ } catch (_) {}
+})();
+
+var Duplex;
+function Writable(options) {
+ Duplex = Duplex || require('./_stream_duplex');
+
+ // Writable ctor is applied to Duplexes, though they're not
+ // instanceof Writable, they're instanceof Readable.
+ if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
+
+ this._writableState = new WritableState(options, this);
+
+ // legacy.
+ this.writable = true;
+
+ if (options) {
+ if (typeof options.write === 'function') this._write = options.write;
+
+ if (typeof options.writev === 'function') this._writev = options.writev;
+ }
+
+ Stream.call(this);
+}
+
+// Otherwise people can pipe Writable streams, which is just wrong.
+Writable.prototype.pipe = function () {
+ this.emit('error', new Error('Cannot pipe, not readable'));
+};
+
+function writeAfterEnd(stream, cb) {
+ var er = new Error('write after end');
+ // TODO: defer error events consistently everywhere, not just the cb
+ stream.emit('error', er);
+ processNextTick(cb, er);
+}
+
+// If we get something that is not a buffer, string, null, or undefined,
+// and we're not in objectMode, then that's an error.
+// Otherwise stream chunks are all considered to be of length=1, and the
+// watermarks determine how many objects to keep in the buffer, rather than
+// how many bytes or characters.
+function validChunk(stream, state, chunk, cb) {
+ var valid = true;
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
+ stream.emit('error', er);
+ processNextTick(cb, er);
+ valid = false;
+ }
+ return valid;
+}
+
+Writable.prototype.write = function (chunk, encoding, cb) {
+ var state = this._writableState;
+ var ret = false;
+
+ if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
+
+ if (typeof cb !== 'function') cb = nop;
+
+ if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
+ state.pendingcb++;
+ ret = writeOrBuffer(this, state, chunk, encoding, cb);
+ }
+
+ return ret;
+};
+
+Writable.prototype.cork = function () {
+ var state = this._writableState;
+
+ state.corked++;
+};
+
+Writable.prototype.uncork = function () {
+ var state = this._writableState;
+
+ if (state.corked) {
+ state.corked--;
+
+ if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
+ }
+};
+
+Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
+ // node::ParseEncoding() requires lower case.
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
+ this._writableState.defaultEncoding = encoding;
+ return this;
+};
+
+function decodeChunk(state, chunk, encoding) {
+ if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
+ chunk = bufferShim.from(chunk, encoding);
+ }
+ return chunk;
+}
+
+// if we're already writing something, then just put this
+// in the queue, and wait our turn. Otherwise, call _write
+// If we return false, then we need a drain event, so set that flag.
+function writeOrBuffer(stream, state, chunk, encoding, cb) {
+ chunk = decodeChunk(state, chunk, encoding);
+
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
+ var len = state.objectMode ? 1 : chunk.length;
+
+ state.length += len;
+
+ var ret = state.length < state.highWaterMark;
+ // we must ensure that previous needDrain will not be reset to false.
+ if (!ret) state.needDrain = true;
+
+ if (state.writing || state.corked) {
+ var last = state.lastBufferedRequest;
+ state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
+ if (last) {
+ last.next = state.lastBufferedRequest;
+ } else {
+ state.bufferedRequest = state.lastBufferedRequest;
+ }
+ state.bufferedRequestCount += 1;
+ } else {
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ }
+
+ return ret;
+}
+
+function doWrite(stream, state, writev, len, chunk, encoding, cb) {
+ state.writelen = len;
+ state.writecb = cb;
+ state.writing = true;
+ state.sync = true;
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
+ state.sync = false;
+}
+
+function onwriteError(stream, state, sync, er, cb) {
+ --state.pendingcb;
+ if (sync) processNextTick(cb, er);else cb(er);
+
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+}
+
+function onwriteStateUpdate(state) {
+ state.writing = false;
+ state.writecb = null;
+ state.length -= state.writelen;
+ state.writelen = 0;
+}
+
+function onwrite(stream, er) {
+ var state = stream._writableState;
+ var sync = state.sync;
+ var cb = state.writecb;
+
+ onwriteStateUpdate(state);
+
+ if (er) onwriteError(stream, state, sync, er, cb);else {
+ // Check if we're actually ready to finish, but don't emit yet
+ var finished = needFinish(state);
+
+ if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
+ clearBuffer(stream, state);
+ }
+
+ if (sync) {
+ /*<replacement>*/
+ asyncWrite(afterWrite, stream, state, finished, cb);
+ /*</replacement>*/
+ } else {
+ afterWrite(stream, state, finished, cb);
+ }
+ }
+}
+
+function afterWrite(stream, state, finished, cb) {
+ if (!finished) onwriteDrain(stream, state);
+ state.pendingcb--;
+ cb();
+ finishMaybe(stream, state);
+}
+
+// Must force callback to be called on nextTick, so that we don't
+// emit 'drain' before the write() consumer gets the 'false' return
+// value, and has a chance to attach a 'drain' listener.
+function onwriteDrain(stream, state) {
+ if (state.length === 0 && state.needDrain) {
+ state.needDrain = false;
+ stream.emit('drain');
+ }
+}
+
+// if there's something in the buffer waiting, then process it
+function clearBuffer(stream, state) {
+ state.bufferProcessing = true;
+ var entry = state.bufferedRequest;
+
+ if (stream._writev && entry && entry.next) {
+ // Fast case, write everything using _writev()
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+
+ var count = 0;
+ while (entry) {
+ buffer[count] = entry;
+ entry = entry.next;
+ count += 1;
+ }
+
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+
+ // doWrite is almost always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
+ state.pendingcb++;
+ state.lastBufferedRequest = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
+ } else {
+ // Slow case, write chunks one-by-one
+ while (entry) {
+ var chunk = entry.chunk;
+ var encoding = entry.encoding;
+ var cb = entry.callback;
+ var len = state.objectMode ? 1 : chunk.length;
+
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ entry = entry.next;
+ // if we didn't call the onwrite immediately, then
+ // it means that we need to wait until it does.
+ // also, that means that the chunk and cb are currently
+ // being processed, so move the buffer counter past them.
+ if (state.writing) {
+ break;
+ }
+ }
+
+ if (entry === null) state.lastBufferedRequest = null;
+ }
+
+ state.bufferedRequestCount = 0;
+ state.bufferedRequest = entry;
+ state.bufferProcessing = false;
+}
+
+Writable.prototype._write = function (chunk, encoding, cb) {
+ cb(new Error('not implemented'));
+};
+
+Writable.prototype._writev = null;
+
+Writable.prototype.end = function (chunk, encoding, cb) {
+ var state = this._writableState;
+
+ if (typeof chunk === 'function') {
+ cb = chunk;
+ chunk = null;
+ encoding = null;
+ } else if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
+
+ // .end() fully uncorks
+ if (state.corked) {
+ state.corked = 1;
+ this.uncork();
+ }
+
+ // ignore unnecessary end() calls.
+ if (!state.ending && !state.finished) endWritable(this, state, cb);
+};
+
+function needFinish(state) {
+ return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
+}
+
+function prefinish(stream, state) {
+ if (!state.prefinished) {
+ state.prefinished = true;
+ stream.emit('prefinish');
+ }
+}
+
+function finishMaybe(stream, state) {
+ var need = needFinish(state);
+ if (need) {
+ if (state.pendingcb === 0) {
+ prefinish(stream, state);
+ state.finished = true;
+ stream.emit('finish');
+ } else {
+ prefinish(stream, state);
+ }
+ }
+ return need;
+}
+
+function endWritable(stream, state, cb) {
+ state.ending = true;
+ finishMaybe(stream, state);
+ if (cb) {
+ if (state.finished) processNextTick(cb);else stream.once('finish', cb);
+ }
+ state.ended = true;
+ stream.writable = false;
+}
+
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
+
+ this.next = null;
+ this.entry = null;
+
+ this.finish = function (err) {
+ var entry = _this.entry;
+ _this.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = _this;
+ } else {
+ state.corkedRequestsFree = _this;
+ }
+ };
+}
+}).call(this,require('_process'))
+},{"./_stream_duplex":156,"_process":153,"buffer":6,"buffer-shims":5,"core-util-is":22,"events":27,"inherits":45,"process-nextick-args":152,"util-deprecate":194}],161:[function(require,module,exports){
+'use strict';
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+module.exports = BufferList;
+
+function BufferList() {
+ this.head = null;
+ this.tail = null;
+ this.length = 0;
+}
+
+BufferList.prototype.push = function (v) {
+ var entry = { data: v, next: null };
+ if (this.length > 0) this.tail.next = entry;else this.head = entry;
+ this.tail = entry;
+ ++this.length;
+};
+
+BufferList.prototype.unshift = function (v) {
+ var entry = { data: v, next: this.head };
+ if (this.length === 0) this.tail = entry;
+ this.head = entry;
+ ++this.length;
+};
+
+BufferList.prototype.shift = function () {
+ if (this.length === 0) return;
+ var ret = this.head.data;
+ if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
+ --this.length;
+ return ret;
+};
+
+BufferList.prototype.clear = function () {
+ this.head = this.tail = null;
+ this.length = 0;
+};
+
+BufferList.prototype.join = function (s) {
+ if (this.length === 0) return '';
+ var p = this.head;
+ var ret = '' + p.data;
+ while (p = p.next) {
+ ret += s + p.data;
+ }return ret;
+};
+
+BufferList.prototype.concat = function (n) {
+ if (this.length === 0) return bufferShim.alloc(0);
+ if (this.length === 1) return this.head.data;
+ var ret = bufferShim.allocUnsafe(n >>> 0);
+ var p = this.head;
+ var i = 0;
+ while (p) {
+ p.data.copy(ret, i);
+ i += p.data.length;
+ p = p.next;
+ }
+ return ret;
+};
+},{"buffer":6,"buffer-shims":5}],162:[function(require,module,exports){
+module.exports = require("./lib/_stream_passthrough.js")
+
+},{"./lib/_stream_passthrough.js":157}],163:[function(require,module,exports){
+(function (process){
+var Stream = (function (){
+ try {
+ return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
+ } catch(_){}
+}());
+exports = module.exports = require('./lib/_stream_readable.js');
+exports.Stream = Stream || exports;
+exports.Readable = exports;
+exports.Writable = require('./lib/_stream_writable.js');
+exports.Duplex = require('./lib/_stream_duplex.js');
+exports.Transform = require('./lib/_stream_transform.js');
+exports.PassThrough = require('./lib/_stream_passthrough.js');
+
+if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
+ module.exports = Stream;
+}
+
+}).call(this,require('_process'))
+},{"./lib/_stream_duplex.js":156,"./lib/_stream_passthrough.js":157,"./lib/_stream_readable.js":158,"./lib/_stream_transform.js":159,"./lib/_stream_writable.js":160,"_process":153}],164:[function(require,module,exports){
+module.exports = require("./lib/_stream_transform.js")
+
+},{"./lib/_stream_transform.js":159}],165:[function(require,module,exports){
+module.exports = require("./lib/_stream_writable.js")
+
+},{"./lib/_stream_writable.js":160}],166:[function(require,module,exports){
+(function (Buffer){
+/*
+CryptoJS v3.1.2
+code.google.com/p/crypto-js
+(c) 2009-2013 by Jeff Mott. All rights reserved.
+code.google.com/p/crypto-js/wiki/License
+*/
+/** @preserve
+(c) 2012 by Cédric Mesnil. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+// constants table
+var zl = [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+ 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+ 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+ 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
+]
+
+var zr = [
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+ 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+ 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+ 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+ 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
+]
+
+var sl = [
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+ 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+ 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+ 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+ 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
+]
+
+var sr = [
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+ 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+ 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+ 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+ 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
+]
+
+var hl = [0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]
+var hr = [0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]
+
+function bytesToWords (bytes) {
+ var words = []
+ for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {
+ words[b >>> 5] |= bytes[i] << (24 - b % 32)
+ }
+ return words
+}
+
+function wordsToBytes (words) {
+ var bytes = []
+ for (var b = 0; b < words.length * 32; b += 8) {
+ bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)
+ }
+ return bytes
+}
+
+function processBlock (H, M, offset) {
+ // swap endian
+ for (var i = 0; i < 16; i++) {
+ var offset_i = offset + i
+ var M_offset_i = M[offset_i]
+
+ // Swap
+ M[offset_i] = (
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)
+ )
+ }
+
+ // Working variables
+ var al, bl, cl, dl, el
+ var ar, br, cr, dr, er
+
+ ar = al = H[0]
+ br = bl = H[1]
+ cr = cl = H[2]
+ dr = dl = H[3]
+ er = el = H[4]
+
+ // computation
+ var t
+ for (i = 0; i < 80; i += 1) {
+ t = (al + M[offset + zl[i]]) | 0
+ if (i < 16) {
+ t += f1(bl, cl, dl) + hl[0]
+ } else if (i < 32) {
+ t += f2(bl, cl, dl) + hl[1]
+ } else if (i < 48) {
+ t += f3(bl, cl, dl) + hl[2]
+ } else if (i < 64) {
+ t += f4(bl, cl, dl) + hl[3]
+ } else {// if (i<80) {
+ t += f5(bl, cl, dl) + hl[4]
+ }
+ t = t | 0
+ t = rotl(t, sl[i])
+ t = (t + el) | 0
+ al = el
+ el = dl
+ dl = rotl(cl, 10)
+ cl = bl
+ bl = t
+
+ t = (ar + M[offset + zr[i]]) | 0
+ if (i < 16) {
+ t += f5(br, cr, dr) + hr[0]
+ } else if (i < 32) {
+ t += f4(br, cr, dr) + hr[1]
+ } else if (i < 48) {
+ t += f3(br, cr, dr) + hr[2]
+ } else if (i < 64) {
+ t += f2(br, cr, dr) + hr[3]
+ } else {// if (i<80) {
+ t += f1(br, cr, dr) + hr[4]
+ }
+
+ t = t | 0
+ t = rotl(t, sr[i])
+ t = (t + er) | 0
+ ar = er
+ er = dr
+ dr = rotl(cr, 10)
+ cr = br
+ br = t
+ }
+
+ // intermediate hash value
+ t = (H[1] + cl + dr) | 0
+ H[1] = (H[2] + dl + er) | 0
+ H[2] = (H[3] + el + ar) | 0
+ H[3] = (H[4] + al + br) | 0
+ H[4] = (H[0] + bl + cr) | 0
+ H[0] = t
+}
+
+function f1 (x, y, z) {
+ return ((x) ^ (y) ^ (z))
+}
+
+function f2 (x, y, z) {
+ return (((x) & (y)) | ((~x) & (z)))
+}
+
+function f3 (x, y, z) {
+ return (((x) | (~(y))) ^ (z))
+}
+
+function f4 (x, y, z) {
+ return (((x) & (z)) | ((y) & (~(z))))
+}
+
+function f5 (x, y, z) {
+ return ((x) ^ ((y) | (~(z))))
+}
+
+function rotl (x, n) {
+ return (x << n) | (x >>> (32 - n))
+}
+
+function ripemd160 (message) {
+ var H = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]
+
+ if (typeof message === 'string') {
+ message = new Buffer(message, 'utf8')
+ }
+
+ var m = bytesToWords(message)
+
+ var nBitsLeft = message.length * 8
+ var nBitsTotal = message.length * 8
+
+ // Add padding
+ m[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32)
+ m[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (
+ (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)
+ )
+
+ for (var i = 0; i < m.length; i += 16) {
+ processBlock(H, m, i)
+ }
+
+ // swap endian
+ for (i = 0; i < 5; i++) {
+ // shortcut
+ var H_i = H[i]
+
+ // Swap
+ H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00)
+ }
+
+ var digestbytes = wordsToBytes(H)
+ return new Buffer(digestbytes)
+}
+
+module.exports = ripemd160
+
+}).call(this,require("buffer").Buffer)
+},{"buffer":6}],167:[function(require,module,exports){
+var util = require('util');
+var SJJ = require('sdp-jingle-json');
+var WildEmitter = require('wildemitter');
+var Peerconn = require('traceablepeerconnection');
+var adapter = require('webrtc-adapter');
+var cloneDeep = require('lodash.clonedeep');
+
+function PeerConnection(config, constraints) {
+ var self = this;
+ var item;
+ WildEmitter.call(this);
+
+ config = config || {};
+ config.iceServers = config.iceServers || [];
+
+ var detectedBrowser = adapter.browserDetails.browser;
+
+ // make sure this only gets enabled in Google Chrome
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.enableChromeNativeSimulcast = false;
+ if (constraints && constraints.optional &&
+ detectedBrowser === 'chrome' &&
+ navigator.appVersion.match(/Chromium\//) === null) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.enableChromeNativeSimulcast) {
+ self.enableChromeNativeSimulcast = true;
+ }
+ });
+ }
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.enableMultiStreamHacks = false;
+ if (constraints && constraints.optional &&
+ detectedBrowser === 'chrome') {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.enableMultiStreamHacks) {
+ self.enableMultiStreamHacks = true;
+ }
+ });
+ }
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.restrictBandwidth = 0;
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetRestrictBandwidth) {
+ self.restrictBandwidth = constraint.andyetRestrictBandwidth;
+ }
+ });
+ }
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // bundle up ice candidates, only works for jingle mode
+ // number > 0 is the delay to wait for additional candidates
+ // ~20ms seems good
+ this.batchIceCandidates = 0;
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetBatchIce) {
+ self.batchIceCandidates = constraint.andyetBatchIce;
+ }
+ });
+ }
+ this.batchedIceCandidates = [];
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // this attemps to strip out candidates with an already known foundation
+ // and type -- i.e. those which are gathered via the same TURN server
+ // but different transports (TURN udp, tcp and tls respectively)
+ if (constraints && constraints.optional && detectedBrowser === 'chrome') {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetFasterICE) {
+ self.eliminateDuplicateCandidates = constraint.andyetFasterICE;
+ }
+ });
+ }
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // when using a server such as the jitsi videobridge we don't need to signal
+ // our candidates
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetDontSignalCandidates) {
+ self.dontSignalCandidates = constraint.andyetDontSignalCandidates;
+ }
+ });
+ }
+
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ this.assumeSetLocalSuccess = false;
+ if (constraints && constraints.optional) {
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetAssumeSetLocalSuccess) {
+ self.assumeSetLocalSuccess = constraint.andyetAssumeSetLocalSuccess;
+ }
+ });
+ }
+
+ // EXPERIMENTAL FLAG, might get removed without notice
+ // working around https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
+ // pass in a timeout for this
+ if (detectedBrowser === 'firefox') {
+ if (constraints && constraints.optional) {
+ this.wtFirefox = 0;
+ constraints.optional.forEach(function (constraint) {
+ if (constraint.andyetFirefoxMakesMeSad) {
+ self.wtFirefox = constraint.andyetFirefoxMakesMeSad;
+ if (self.wtFirefox > 0) {
+ self.firefoxcandidatebuffer = [];
+ }
+ }
+ });
+ }
+ }
+
+
+ this.pc = new Peerconn(config, constraints);
+
+ this.getLocalStreams = this.pc.getLocalStreams.bind(this.pc);
+ this.getRemoteStreams = this.pc.getRemoteStreams.bind(this.pc);
+ this.addStream = this.pc.addStream.bind(this.pc);
+ this.removeStream = this.pc.removeStream.bind(this.pc);
+
+ // proxy events
+ this.pc.on('*', function () {
+ self.emit.apply(self, arguments);
+ });
+
+ // proxy some events directly
+ this.pc.onremovestream = this.emit.bind(this, 'removeStream');
+ this.pc.onaddstream = this.emit.bind(this, 'addStream');
+ this.pc.onnegotiationneeded = this.emit.bind(this, 'negotiationNeeded');
+ this.pc.oniceconnectionstatechange = this.emit.bind(this, 'iceConnectionStateChange');
+ this.pc.onsignalingstatechange = this.emit.bind(this, 'signalingStateChange');
+
+ // handle ice candidate and data channel events
+ this.pc.onicecandidate = this._onIce.bind(this);
+ this.pc.ondatachannel = this._onDataChannel.bind(this);
+
+ this.localDescription = {
+ contents: []
+ };
+ this.remoteDescription = {
+ contents: []
+ };
+
+ this.config = {
+ debug: false,
+ sid: '',
+ isInitiator: true,
+ sdpSessionID: Date.now(),
+ useJingle: false
+ };
+
+ this.iceCredentials = {
+ local: {},
+ remote: {}
+ };
+
+ // apply our config
+ for (item in config) {
+ this.config[item] = config[item];
+ }
+ if (this.config.debug) {
+ this.on('*', function () {
+ var logger = config.logger || console;
+ logger.log('PeerConnection event:', arguments);
+ });
+ }
+ this.hadLocalStunCandidate = false;
+ this.hadRemoteStunCandidate = false;
+ this.hadLocalRelayCandidate = false;
+ this.hadRemoteRelayCandidate = false;
+
+ this.hadLocalIPv6Candidate = false;
+ this.hadRemoteIPv6Candidate = false;
+
+ // keeping references for all our data channels
+ // so they dont get garbage collected
+ // can be removed once the following bugs have been fixed
+ // https://crbug.com/405545
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=964092
+ // to be filed for opera
+ this._remoteDataChannels = [];
+ this._localDataChannels = [];
+
+ this._candidateBuffer = [];
+}
+
+util.inherits(PeerConnection, WildEmitter);
+
+Object.defineProperty(PeerConnection.prototype, 'signalingState', {
+ get: function () {
+ return this.pc.signalingState;
+ }
+});
+Object.defineProperty(PeerConnection.prototype, 'iceConnectionState', {
+ get: function () {
+ return this.pc.iceConnectionState;
+ }
+});
+
+PeerConnection.prototype._role = function () {
+ return this.isInitiator ? 'initiator' : 'responder';
+};
+
+// Add a stream to the peer connection object
+PeerConnection.prototype.addStream = function (stream) {
+ this.localStream = stream;
+ this.pc.addStream(stream);
+};
+
+// helper function to check if a remote candidate is a stun/relay
+// candidate or an ipv6 candidate
+PeerConnection.prototype._checkLocalCandidate = function (candidate) {
+ var cand = SJJ.toCandidateJSON(candidate);
+ if (cand.type == 'srflx') {
+ this.hadLocalStunCandidate = true;
+ } else if (cand.type == 'relay') {
+ this.hadLocalRelayCandidate = true;
+ }
+ if (cand.ip.indexOf(':') != -1) {
+ this.hadLocalIPv6Candidate = true;
+ }
+};
+
+// helper function to check if a remote candidate is a stun/relay
+// candidate or an ipv6 candidate
+PeerConnection.prototype._checkRemoteCandidate = function (candidate) {
+ var cand = SJJ.toCandidateJSON(candidate);
+ if (cand.type == 'srflx') {
+ this.hadRemoteStunCandidate = true;
+ } else if (cand.type == 'relay') {
+ this.hadRemoteRelayCandidate = true;
+ }
+ if (cand.ip.indexOf(':') != -1) {
+ this.hadRemoteIPv6Candidate = true;
+ }
+};
+
+
+// Init and add ice candidate object with correct constructor
+PeerConnection.prototype.processIce = function (update, cb) {
+ cb = cb || function () {};
+ var self = this;
+
+ // ignore any added ice candidates to avoid errors. why does the
+ // spec not do this?
+ if (this.pc.signalingState === 'closed') return cb();
+
+ if (update.contents || (update.jingle && update.jingle.contents)) {
+ var contentNames = this.remoteDescription.contents.map(function (c) { return c.name; });
+ var contents = update.contents || update.jingle.contents;
+
+ contents.forEach(function (content) {
+ var transport = content.transport || {};
+ var candidates = transport.candidates || [];
+ var mline = contentNames.indexOf(content.name);
+ var mid = content.name;
+ var remoteContent = self.remoteDescription.contents.find(function (c) {
+ return c.name === content.name;
+ });
+
+ // process candidates as a callback, in case we need to
+ // update ufrag and pwd with offer/answer
+ var processCandidates = function () {
+ candidates.forEach(
+ function (candidate) {
+ var iceCandidate = SJJ.toCandidateSDP(candidate) + '\r\n';
+ self.pc.addIceCandidate(
+ new RTCIceCandidate({
+ candidate: iceCandidate,
+ sdpMLineIndex: mline,
+ sdpMid: mid
+ }), function () {
+ // well, this success callback is pretty meaningless
+ },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ self._checkRemoteCandidate(iceCandidate);
+ });
+ cb();
+ };
+
+ if (self.iceCredentials.remote[content.name] && transport.ufrag &&
+ self.iceCredentials.remote[content.name].ufrag !== transport.ufrag) {
+ if (remoteContent) {
+ remoteContent.transport.ufrag = transport.ufrag;
+ remoteContent.transport.pwd = transport.pwd;
+ var offer = {
+ type: 'offer',
+ jingle: self.remoteDescription
+ };
+ offer.sdp = SJJ.toSessionSDP(offer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'incoming'
+ });
+ self.pc.setRemoteDescription(new RTCSessionDescription(offer),
+ function () {
+ processCandidates();
+ },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ } else {
+ self.emit('error', 'ice restart failed to find matching content');
+ }
+ } else {
+ processCandidates();
+ }
+ });
+ } else {
+ // working around https://code.google.com/p/webrtc/issues/detail?id=3669
+ if (update.candidate && update.candidate.candidate.indexOf('a=') !== 0) {
+ update.candidate.candidate = 'a=' + update.candidate.candidate;
+ }
+
+ if (this.wtFirefox && this.firefoxcandidatebuffer !== null) {
+ // we cant add this yet due to https://bugzilla.mozilla.org/show_bug.cgi?id=1087551
+ if (this.pc.localDescription && this.pc.localDescription.type === 'offer') {
+ this.firefoxcandidatebuffer.push(update.candidate);
+ return cb();
+ }
+ }
+
+ self.pc.addIceCandidate(
+ new RTCIceCandidate(update.candidate),
+ function () { },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ self._checkRemoteCandidate(update.candidate.candidate);
+ cb();
+ }
+};
+
+// Generate and emit an offer with the given constraints
+PeerConnection.prototype.offer = function (constraints, cb) {
+ var self = this;
+ var hasConstraints = arguments.length === 2;
+ var mediaConstraints = hasConstraints && constraints ? constraints : {
+ offerToReceiveAudio: 1,
+ offerToReceiveVideo: 1
+ };
+ cb = hasConstraints ? cb : constraints;
+ cb = cb || function () {};
+
+ if (this.pc.signalingState === 'closed') return cb('Already closed');
+
+ // Actually generate the offer
+ this.pc.createOffer(
+ function (offer) {
+ // does not work for jingle, but jingle.js doesn't need
+ // this hack...
+ var expandedOffer = {
+ type: 'offer',
+ sdp: offer.sdp
+ };
+ if (self.assumeSetLocalSuccess) {
+ self.emit('offer', expandedOffer);
+ cb(null, expandedOffer);
+ }
+ self._candidateBuffer = [];
+ self.pc.setLocalDescription(offer,
+ function () {
+ var jingle;
+ if (self.config.useJingle) {
+ jingle = SJJ.toSessionJSON(offer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ jingle.sid = self.config.sid;
+ self.localDescription = jingle;
+
+ // Save ICE credentials
+ jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.local[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+
+ expandedOffer.jingle = jingle;
+ }
+ expandedOffer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkLocalCandidate(line);
+ }
+ });
+
+ if (!self.assumeSetLocalSuccess) {
+ self.emit('offer', expandedOffer);
+ cb(null, expandedOffer);
+ }
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ }
+ );
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ },
+ mediaConstraints
+ );
+};
+
+
+// Process an incoming offer so that ICE may proceed before deciding
+// to answer the request.
+PeerConnection.prototype.handleOffer = function (offer, cb) {
+ cb = cb || function () {};
+ var self = this;
+ offer.type = 'offer';
+ if (offer.jingle) {
+ if (this.enableChromeNativeSimulcast) {
+ offer.jingle.contents.forEach(function (content) {
+ if (content.name === 'video') {
+ content.application.googConferenceFlag = true;
+ }
+
+ });
+ }
+ if (this.enableMultiStreamHacks) {
+ // add a mixed video stream as first stream
+ offer.jingle.contents.forEach(function (content) {
+ if (content.name === 'video') {
+ var sources = content.application.sources || [];
+ if (sources.length === 0 || sources[0].ssrc !== "3735928559") {
+ sources.unshift({
+ ssrc: "3735928559", // 0xdeadbeef
+ parameters: [
+ {
+ key: "cname",
+ value: "deadbeef"
+ },
+ {
+ key: "msid",
+ value: "mixyourfecintothis please"
+ }
+ ]
+ });
+ content.application.sources = sources;
+ }
+ }
+ });
+ }
+ if (self.restrictBandwidth > 0) {
+ if (offer.jingle.contents.length >= 2 && offer.jingle.contents[1].name === 'video') {
+ var content = offer.jingle.contents[1];
+ var hasBw = content.application && content.application.bandwidth && content.application.bandwidth.bandwidth;
+ if (!hasBw) {
+ offer.jingle.contents[1].application.bandwidth = { type: 'AS', bandwidth: self.restrictBandwidth.toString() };
+ offer.sdp = SJJ.toSessionSDP(offer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ }
+ }
+ // Save ICE credentials
+ offer.jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.remote[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+ offer.sdp = SJJ.toSessionSDP(offer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'incoming'
+ });
+ self.remoteDescription = offer.jingle;
+ }
+ offer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkRemoteCandidate(line);
+ }
+ });
+ self.pc.setRemoteDescription(new RTCSessionDescription(offer),
+ function () {
+ cb();
+ },
+ cb
+ );
+};
+
+// Answer an offer with audio only
+PeerConnection.prototype.answerAudioOnly = function (cb) {
+ var mediaConstraints = {
+ mandatory: {
+ OfferToReceiveAudio: true,
+ OfferToReceiveVideo: false
+ }
+ };
+ this._answer(mediaConstraints, cb);
+};
+
+// Answer an offer without offering to recieve
+PeerConnection.prototype.answerBroadcastOnly = function (cb) {
+ var mediaConstraints = {
+ mandatory: {
+ OfferToReceiveAudio: false,
+ OfferToReceiveVideo: false
+ }
+ };
+ this._answer(mediaConstraints, cb);
+};
+
+// Answer an offer with given constraints default is audio/video
+PeerConnection.prototype.answer = function (constraints, cb) {
+ var hasConstraints = arguments.length === 2;
+ var callback = hasConstraints ? cb : constraints;
+ var mediaConstraints = hasConstraints && constraints ? constraints : {
+ mandatory: {
+ OfferToReceiveAudio: true,
+ OfferToReceiveVideo: true
+ }
+ };
+
+ this._answer(mediaConstraints, callback);
+};
+
+// Process an answer
+PeerConnection.prototype.handleAnswer = function (answer, cb) {
+ cb = cb || function () {};
+ var self = this;
+ if (answer.jingle) {
+ answer.sdp = SJJ.toSessionSDP(answer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'incoming'
+ });
+ self.remoteDescription = answer.jingle;
+
+ // Save ICE credentials
+ answer.jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.remote[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+ }
+ answer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkRemoteCandidate(line);
+ }
+ });
+ self.pc.setRemoteDescription(
+ new RTCSessionDescription(answer),
+ function () {
+ if (self.wtFirefox) {
+ window.setTimeout(function () {
+ self.firefoxcandidatebuffer.forEach(function (candidate) {
+ // add candidates later
+ self.pc.addIceCandidate(
+ new RTCIceCandidate(candidate),
+ function () { },
+ function (err) {
+ self.emit('error', err);
+ }
+ );
+ self._checkRemoteCandidate(candidate.candidate);
+ });
+ self.firefoxcandidatebuffer = null;
+ }, self.wtFirefox);
+ }
+ cb(null);
+ },
+ cb
+ );
+};
+
+// Close the peer connection
+PeerConnection.prototype.close = function () {
+ this.pc.close();
+
+ this._localDataChannels = [];
+ this._remoteDataChannels = [];
+
+ this.emit('close');
+};
+
+// Internal code sharing for various types of answer methods
+PeerConnection.prototype._answer = function (constraints, cb) {
+ cb = cb || function () {};
+ var self = this;
+ if (!this.pc.remoteDescription) {
+ // the old API is used, call handleOffer
+ throw new Error('remoteDescription not set');
+ }
+
+ if (this.pc.signalingState === 'closed') return cb('Already closed');
+
+ self.pc.createAnswer(
+ function (answer) {
+ var sim = [];
+ if (self.enableChromeNativeSimulcast) {
+ // native simulcast part 1: add another SSRC
+ answer.jingle = SJJ.toSessionJSON(answer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ if (answer.jingle.contents.length >= 2 && answer.jingle.contents[1].name === 'video') {
+ var groups = answer.jingle.contents[1].application.sourceGroups || [];
+ var hasSim = false;
+ groups.forEach(function (group) {
+ if (group.semantics == 'SIM') hasSim = true;
+ });
+ if (!hasSim &&
+ answer.jingle.contents[1].application.sources.length) {
+ var newssrc = JSON.parse(JSON.stringify(answer.jingle.contents[1].application.sources[0]));
+ newssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
+ answer.jingle.contents[1].application.sources.push(newssrc);
+
+ sim.push(answer.jingle.contents[1].application.sources[0].ssrc);
+ sim.push(newssrc.ssrc);
+ groups.push({
+ semantics: 'SIM',
+ sources: sim
+ });
+
+ // also create an RTX one for the SIM one
+ var rtxssrc = JSON.parse(JSON.stringify(newssrc));
+ rtxssrc.ssrc = '' + Math.floor(Math.random() * 0xffffffff); // FIXME: look for conflicts
+ answer.jingle.contents[1].application.sources.push(rtxssrc);
+ groups.push({
+ semantics: 'FID',
+ sources: [newssrc.ssrc, rtxssrc.ssrc]
+ });
+
+ answer.jingle.contents[1].application.sourceGroups = groups;
+ answer.sdp = SJJ.toSessionSDP(answer.jingle, {
+ sid: self.config.sdpSessionID,
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ }
+ }
+ var expandedAnswer = {
+ type: 'answer',
+ sdp: answer.sdp
+ };
+ if (self.assumeSetLocalSuccess) {
+ // not safe to do when doing simulcast mangling
+ var copy = cloneDeep(expandedAnswer);
+ self.emit('answer', copy);
+ cb(null, copy);
+ }
+ self._candidateBuffer = [];
+ self.pc.setLocalDescription(answer,
+ function () {
+ if (self.config.useJingle) {
+ var jingle = SJJ.toSessionJSON(answer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ jingle.sid = self.config.sid;
+ self.localDescription = jingle;
+ expandedAnswer.jingle = jingle;
+ }
+ if (self.enableChromeNativeSimulcast) {
+ // native simulcast part 2:
+ // signal multiple tracks to the receiver
+ // for anything in the SIM group
+ if (!expandedAnswer.jingle) {
+ expandedAnswer.jingle = SJJ.toSessionJSON(answer.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ expandedAnswer.jingle.contents[1].application.sources.forEach(function (source, idx) {
+ // the floor idx/2 is a hack that relies on a particular order
+ // of groups, alternating between sim and rtx
+ source.parameters = source.parameters.map(function (parameter) {
+ if (parameter.key === 'msid') {
+ parameter.value += '-' + Math.floor(idx / 2);
+ }
+ return parameter;
+ });
+ });
+ expandedAnswer.sdp = SJJ.toSessionSDP(expandedAnswer.jingle, {
+ sid: self.sdpSessionID,
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ }
+ expandedAnswer.sdp.split('\r\n').forEach(function (line) {
+ if (line.indexOf('a=candidate:') === 0) {
+ self._checkLocalCandidate(line);
+ }
+ });
+ if (!self.assumeSetLocalSuccess) {
+ var copy = cloneDeep(expandedAnswer);
+ self.emit('answer', copy);
+ cb(null, copy);
+ }
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ }
+ );
+ },
+ function (err) {
+ self.emit('error', err);
+ cb(err);
+ },
+ constraints
+ );
+};
+
+// Internal method for emitting ice candidates on our peer object
+PeerConnection.prototype._onIce = function (event) {
+ var self = this;
+ if (event.candidate) {
+ if (this.dontSignalCandidates) return;
+ var ice = event.candidate;
+
+ var expandedCandidate = {
+ candidate: {
+ candidate: ice.candidate,
+ sdpMid: ice.sdpMid,
+ sdpMLineIndex: ice.sdpMLineIndex
+ }
+ };
+ this._checkLocalCandidate(ice.candidate);
+
+ var cand = SJJ.toCandidateJSON(ice.candidate);
+
+ var already;
+ var idx;
+ if (this.eliminateDuplicateCandidates && cand.type === 'relay') {
+ // drop candidates with same foundation, component
+ // take local type pref into account so we don't ignore udp
+ // ones when we know about a TCP one. unlikely but...
+ already = this._candidateBuffer.filter(
+ function (c) {
+ return c.type === 'relay';
+ }).map(function (c) {
+ return c.foundation + ':' + c.component;
+ }
+ );
+ idx = already.indexOf(cand.foundation + ':' + cand.component);
+ // remember: local type pref of udp is 0, tcp 1, tls 2
+ if (idx > -1 && ((cand.priority >> 24) >= (already[idx].priority >> 24))) {
+ // drop it, same foundation with higher (worse) type pref
+ return;
+ }
+ }
+ if (this.config.bundlePolicy === 'max-bundle') {
+ // drop candidates which are duplicate for audio/video/data
+ // duplicate means same host/port but different sdpMid
+ already = this._candidateBuffer.filter(
+ function (c) {
+ return cand.type === c.type;
+ }).map(function (cand) {
+ return cand.address + ':' + cand.port;
+ }
+ );
+ idx = already.indexOf(cand.address + ':' + cand.port);
+ if (idx > -1) return;
+ }
+ // also drop rtcp candidates since we know the peer supports RTCP-MUX
+ // this is a workaround until browsers implement this natively
+ if (this.config.rtcpMuxPolicy === 'require' && cand.component === '2') {
+ return;
+ }
+ this._candidateBuffer.push(cand);
+
+ if (self.config.useJingle) {
+ if (!ice.sdpMid) { // firefox doesn't set this
+ if (self.pc.remoteDescription && self.pc.remoteDescription.type === 'offer') {
+ // preserve name from remote
+ ice.sdpMid = self.remoteDescription.contents[ice.sdpMLineIndex].name;
+ } else {
+ ice.sdpMid = self.localDescription.contents[ice.sdpMLineIndex].name;
+ }
+ }
+ if (!self.iceCredentials.local[ice.sdpMid]) {
+ var jingle = SJJ.toSessionJSON(self.pc.localDescription.sdp, {
+ role: self._role(),
+ direction: 'outgoing'
+ });
+ jingle.contents.forEach(function (content) {
+ var transport = content.transport || {};
+ if (transport.ufrag) {
+ self.iceCredentials.local[content.name] = {
+ ufrag: transport.ufrag,
+ pwd: transport.pwd
+ };
+ }
+ });
+ }
+ expandedCandidate.jingle = {
+ contents: [{
+ name: ice.sdpMid,
+ creator: self._role(),
+ transport: {
+ transportType: 'iceUdp',
+ ufrag: self.iceCredentials.local[ice.sdpMid].ufrag,
+ pwd: self.iceCredentials.local[ice.sdpMid].pwd,
+ candidates: [
+ cand
+ ]
+ }
+ }]
+ };
+ if (self.batchIceCandidates > 0) {
+ if (self.batchedIceCandidates.length === 0) {
+ window.setTimeout(function () {
+ var contents = {};
+ self.batchedIceCandidates.forEach(function (content) {
+ content = content.contents[0];
+ if (!contents[content.name]) contents[content.name] = content;
+ contents[content.name].transport.candidates.push(content.transport.candidates[0]);
+ });
+ var newCand = {
+ jingle: {
+ contents: []
+ }
+ };
+ Object.keys(contents).forEach(function (name) {
+ newCand.jingle.contents.push(contents[name]);
+ });
+ self.batchedIceCandidates = [];
+ self.emit('ice', newCand);
+ }, self.batchIceCandidates);
+ }
+ self.batchedIceCandidates.push(expandedCandidate.jingle);
+ return;
+ }
+
+ }
+ this.emit('ice', expandedCandidate);
+ } else {
+ this.emit('endOfCandidates');
+ }
+};
+
+// Internal method for processing a new data channel being added by the
+// other peer.
+PeerConnection.prototype._onDataChannel = function (event) {
+ // make sure we keep a reference so this doesn't get garbage collected
+ var channel = event.channel;
+ this._remoteDataChannels.push(channel);
+
+ this.emit('addChannel', channel);
+};
+
+// Create a data channel spec reference:
+// http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannelInit
+PeerConnection.prototype.createDataChannel = function (name, opts) {
+ var channel = this.pc.createDataChannel(name, opts);
+
+ // make sure we keep a reference so this doesn't get garbage collected
+ this._localDataChannels.push(channel);
+
+ return channel;
+};
+
+PeerConnection.prototype.getStats = function (cb) {
+ this.pc.getStats(null,
+ function (res) {
+ cb(null, res);
+ },
+ function (err) {
+ cb(err);
+ }
+ );
+};
+
+module.exports = PeerConnection;
+
+},{"lodash.clonedeep":133,"sdp-jingle-json":168,"traceablepeerconnection":184,"util":197,"webrtc-adapter":201,"wildemitter":211}],168:[function(require,module,exports){
+var toSDP = require('./lib/tosdp');
+var toJSON = require('./lib/tojson');
+
+
+// Converstion from JSON to SDP
+
+exports.toIncomingSDPOffer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'responder',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingSDPOffer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'initiator',
+ direction: 'outgoing'
+ });
+};
+exports.toIncomingSDPAnswer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'initiator',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingSDPAnswer = function (session) {
+ return toSDP.toSessionSDP(session, {
+ role: 'responder',
+ direction: 'outgoing'
+ });
+};
+exports.toIncomingMediaSDPOffer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'responder',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingMediaSDPOffer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'initiator',
+ direction: 'outgoing'
+ });
+};
+exports.toIncomingMediaSDPAnswer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'initiator',
+ direction: 'incoming'
+ });
+};
+exports.toOutgoingMediaSDPAnswer = function (media) {
+ return toSDP.toMediaSDP(media, {
+ role: 'responder',
+ direction: 'outgoing'
+ });
+};
+exports.toCandidateSDP = toSDP.toCandidateSDP;
+exports.toMediaSDP = toSDP.toMediaSDP;
+exports.toSessionSDP = toSDP.toSessionSDP;
+
+
+// Conversion from SDP to JSON
+
+exports.toIncomingJSONOffer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'responder',
+ direction: 'incoming',
+ creators: creators
+ });
+};
+exports.toOutgoingJSONOffer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'initiator',
+ direction: 'outgoing',
+ creators: creators
+ });
+};
+exports.toIncomingJSONAnswer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'initiator',
+ direction: 'incoming',
+ creators: creators
+ });
+};
+exports.toOutgoingJSONAnswer = function (sdp, creators) {
+ return toJSON.toSessionJSON(sdp, {
+ role: 'responder',
+ direction: 'outgoing',
+ creators: creators
+ });
+};
+exports.toIncomingMediaJSONOffer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'responder',
+ direction: 'incoming',
+ creator: creator
+ });
+};
+exports.toOutgoingMediaJSONOffer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'initiator',
+ direction: 'outgoing',
+ creator: creator
+ });
+};
+exports.toIncomingMediaJSONAnswer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'initiator',
+ direction: 'incoming',
+ creator: creator
+ });
+};
+exports.toOutgoingMediaJSONAnswer = function (sdp, creator) {
+ return toJSON.toMediaJSON(sdp, {
+ role: 'responder',
+ direction: 'outgoing',
+ creator: creator
+ });
+};
+exports.toCandidateJSON = toJSON.toCandidateJSON;
+exports.toMediaJSON = toJSON.toMediaJSON;
+exports.toSessionJSON = toJSON.toSessionJSON;
+
+},{"./lib/tojson":171,"./lib/tosdp":172}],169:[function(require,module,exports){
+exports.lines = function (sdp) {
+ return sdp.split('\r\n').filter(function (line) {
+ return line.length > 0;
+ });
+};
+
+exports.findLine = function (prefix, mediaLines, sessionLines) {
+ var prefixLength = prefix.length;
+ for (var i = 0; i < mediaLines.length; i++) {
+ if (mediaLines[i].substr(0, prefixLength) === prefix) {
+ return mediaLines[i];
+ }
+ }
+ // Continue searching in parent session section
+ if (!sessionLines) {
+ return false;
+ }
+
+ for (var j = 0; j < sessionLines.length; j++) {
+ if (sessionLines[j].substr(0, prefixLength) === prefix) {
+ return sessionLines[j];
+ }
+ }
+
+ return false;
+};
+
+exports.findLines = function (prefix, mediaLines, sessionLines) {
+ var results = [];
+ var prefixLength = prefix.length;
+ for (var i = 0; i < mediaLines.length; i++) {
+ if (mediaLines[i].substr(0, prefixLength) === prefix) {
+ results.push(mediaLines[i]);
+ }
+ }
+ if (results.length || !sessionLines) {
+ return results;
+ }
+ for (var j = 0; j < sessionLines.length; j++) {
+ if (sessionLines[j].substr(0, prefixLength) === prefix) {
+ results.push(sessionLines[j]);
+ }
+ }
+ return results;
+};
+
+exports.mline = function (line) {
+ var parts = line.substr(2).split(' ');
+ var parsed = {
+ media: parts[0],
+ port: parts[1],
+ proto: parts[2],
+ formats: []
+ };
+ for (var i = 3; i < parts.length; i++) {
+ if (parts[i]) {
+ parsed.formats.push(parts[i]);
+ }
+ }
+ return parsed;
+};
+
+exports.rtpmap = function (line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ id: parts.shift()
+ };
+
+ parts = parts[0].split('/');
+
+ parsed.name = parts[0];
+ parsed.clockrate = parts[1];
+ parsed.channels = parts.length == 3 ? parts[2] : '1';
+ return parsed;
+};
+
+exports.sctpmap = function (line) {
+ // based on -05 draft
+ var parts = line.substr(10).split(' ');
+ var parsed = {
+ number: parts.shift(),
+ protocol: parts.shift(),
+ streams: parts.shift()
+ };
+ return parsed;
+};
+
+
+exports.fmtp = function (line) {
+ var kv, key, value;
+ var parts = line.substr(line.indexOf(' ') + 1).split(';');
+ var parsed = [];
+ for (var i = 0; i < parts.length; i++) {
+ kv = parts[i].split('=');
+ key = kv[0].trim();
+ value = kv[1];
+ if (key && value) {
+ parsed.push({key: key, value: value});
+ } else if (key) {
+ parsed.push({key: '', value: key});
+ }
+ }
+ return parsed;
+};
+
+exports.crypto = function (line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ tag: parts[0],
+ cipherSuite: parts[1],
+ keyParams: parts[2],
+ sessionParams: parts.slice(3).join(' ')
+ };
+ return parsed;
+};
+
+exports.fingerprint = function (line) {
+ var parts = line.substr(14).split(' ');
+ return {
+ hash: parts[0],
+ value: parts[1]
+ };
+};
+
+exports.extmap = function (line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {};
+
+ var idpart = parts.shift();
+ var sp = idpart.indexOf('/');
+ if (sp >= 0) {
+ parsed.id = idpart.substr(0, sp);
+ parsed.senders = idpart.substr(sp + 1);
+ } else {
+ parsed.id = idpart;
+ parsed.senders = 'sendrecv';
+ }
+
+ parsed.uri = parts.shift() || '';
+
+ return parsed;
+};
+
+exports.rtcpfb = function (line) {
+ var parts = line.substr(10).split(' ');
+ var parsed = {};
+ parsed.id = parts.shift();
+ parsed.type = parts.shift();
+ if (parsed.type === 'trr-int') {
+ parsed.value = parts.shift();
+ } else {
+ parsed.subtype = parts.shift() || '';
+ }
+ parsed.parameters = parts;
+ return parsed;
+};
+
+exports.candidate = function (line) {
+ var parts;
+ if (line.indexOf('a=candidate:') === 0) {
+ parts = line.substring(12).split(' ');
+ } else { // no a=candidate
+ parts = line.substring(10).split(' ');
+ }
+
+ var candidate = {
+ foundation: parts[0],
+ component: parts[1],
+ protocol: parts[2].toLowerCase(),
+ priority: parts[3],
+ ip: parts[4],
+ port: parts[5],
+ // skip parts[6] == 'typ'
+ type: parts[7],
+ generation: '0'
+ };
+
+ for (var i = 8; i < parts.length; i += 2) {
+ if (parts[i] === 'raddr') {
+ candidate.relAddr = parts[i + 1];
+ } else if (parts[i] === 'rport') {
+ candidate.relPort = parts[i + 1];
+ } else if (parts[i] === 'generation') {
+ candidate.generation = parts[i + 1];
+ } else if (parts[i] === 'tcptype') {
+ candidate.tcpType = parts[i + 1];
+ }
+ }
+
+ candidate.network = '1';
+
+ return candidate;
+};
+
+exports.sourceGroups = function (lines) {
+ var parsed = [];
+ for (var i = 0; i < lines.length; i++) {
+ var parts = lines[i].substr(13).split(' ');
+ parsed.push({
+ semantics: parts.shift(),
+ sources: parts
+ });
+ }
+ return parsed;
+};
+
+exports.sources = function (lines) {
+ // http://tools.ietf.org/html/rfc5576
+ var parsed = [];
+ var sources = {};
+ for (var i = 0; i < lines.length; i++) {
+ var parts = lines[i].substr(7).split(' ');
+ var ssrc = parts.shift();
+
+ if (!sources[ssrc]) {
+ var source = {
+ ssrc: ssrc,
+ parameters: []
+ };
+ parsed.push(source);
+
+ // Keep an index
+ sources[ssrc] = source;
+ }
+
+ parts = parts.join(' ').split(':');
+ var attribute = parts.shift();
+ var value = parts.join(':') || null;
+
+ sources[ssrc].parameters.push({
+ key: attribute,
+ value: value
+ });
+ }
+
+ return parsed;
+};
+
+exports.groups = function (lines) {
+ // http://tools.ietf.org/html/rfc5888
+ var parsed = [];
+ var parts;
+ for (var i = 0; i < lines.length; i++) {
+ parts = lines[i].substr(8).split(' ');
+ parsed.push({
+ semantics: parts.shift(),
+ contents: parts
+ });
+ }
+ return parsed;
+};
+
+exports.bandwidth = function (line) {
+ var parts = line.substr(2).split(':');
+ var parsed = {};
+ parsed.type = parts.shift();
+ parsed.bandwidth = parts.shift();
+ return parsed;
+};
+
+exports.msid = function (line) {
+ var data = line.substr(7);
+ var parts = data.split(' ');
+ return {
+ msid: data,
+ mslabel: parts[0],
+ label: parts[1]
+ };
+};
+
+},{}],170:[function(require,module,exports){
+module.exports = {
+ initiator: {
+ incoming: {
+ initiator: 'recvonly',
+ responder: 'sendonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'initiator',
+ sendonly: 'responder',
+ sendrecv: 'both',
+ inactive: 'none'
+ },
+ outgoing: {
+ initiator: 'sendonly',
+ responder: 'recvonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'responder',
+ sendonly: 'initiator',
+ sendrecv: 'both',
+ inactive: 'none'
+ }
+ },
+ responder: {
+ incoming: {
+ initiator: 'sendonly',
+ responder: 'recvonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'responder',
+ sendonly: 'initiator',
+ sendrecv: 'both',
+ inactive: 'none'
+ },
+ outgoing: {
+ initiator: 'recvonly',
+ responder: 'sendonly',
+ both: 'sendrecv',
+ none: 'inactive',
+ recvonly: 'initiator',
+ sendonly: 'responder',
+ sendrecv: 'both',
+ inactive: 'none'
+ }
+ }
+};
+
+},{}],171:[function(require,module,exports){
+var SENDERS = require('./senders');
+var parsers = require('./parsers');
+var idCounter = Math.random();
+
+
+exports._setIdCounter = function (counter) {
+ idCounter = counter;
+};
+
+exports.toSessionJSON = function (sdp, opts) {
+ var i;
+ var creators = opts.creators || [];
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+
+
+ // Divide the SDP into session and media sections.
+ var media = sdp.split('\r\nm=');
+ for (i = 1; i < media.length; i++) {
+ media[i] = 'm=' + media[i];
+ if (i !== media.length - 1) {
+ media[i] += '\r\n';
+ }
+ }
+ var session = media.shift() + '\r\n';
+ var sessionLines = parsers.lines(session);
+ var parsed = {};
+
+ var contents = [];
+ for (i = 0; i < media.length; i++) {
+ contents.push(exports.toMediaJSON(media[i], session, {
+ role: role,
+ direction: direction,
+ creator: creators[i] || 'initiator'
+ }));
+ }
+ parsed.contents = contents;
+
+ var groupLines = parsers.findLines('a=group:', sessionLines);
+ if (groupLines.length) {
+ parsed.groups = parsers.groups(groupLines);
+ }
+
+ return parsed;
+};
+
+exports.toMediaJSON = function (media, session, opts) {
+ var creator = opts.creator || 'initiator';
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+
+ var lines = parsers.lines(media);
+ var sessionLines = parsers.lines(session);
+ var mline = parsers.mline(lines[0]);
+
+ var content = {
+ creator: creator,
+ name: mline.media,
+ application: {
+ applicationType: 'rtp',
+ media: mline.media,
+ payloads: [],
+ encryption: [],
+ feedback: [],
+ headerExtensions: []
+ },
+ transport: {
+ transportType: 'iceUdp',
+ candidates: [],
+ fingerprints: []
+ }
+ };
+ if (mline.media == 'application') {
+ // FIXME: the description is most likely to be independent
+ // of the SDP and should be processed by other parts of the library
+ content.application = {
+ applicationType: 'datachannel'
+ };
+ content.transport.sctp = [];
+ }
+ var desc = content.application;
+ var trans = content.transport;
+
+ // If we have a mid, use that for the content name instead.
+ var mid = parsers.findLine('a=mid:', lines);
+ if (mid) {
+ content.name = mid.substr(6);
+ }
+
+ if (parsers.findLine('a=sendrecv', lines, sessionLines)) {
+ content.senders = 'both';
+ } else if (parsers.findLine('a=sendonly', lines, sessionLines)) {
+ content.senders = SENDERS[role][direction].sendonly;
+ } else if (parsers.findLine('a=recvonly', lines, sessionLines)) {
+ content.senders = SENDERS[role][direction].recvonly;
+ } else if (parsers.findLine('a=inactive', lines, sessionLines)) {
+ content.senders = 'none';
+ }
+
+ if (desc.applicationType == 'rtp') {
+ var bandwidth = parsers.findLine('b=', lines);
+ if (bandwidth) {
+ desc.bandwidth = parsers.bandwidth(bandwidth);
+ }
+
+ var ssrc = parsers.findLine('a=ssrc:', lines);
+ if (ssrc) {
+ desc.ssrc = ssrc.substr(7).split(' ')[0];
+ }
+
+ var rtpmapLines = parsers.findLines('a=rtpmap:', lines);
+ rtpmapLines.forEach(function (line) {
+ var payload = parsers.rtpmap(line);
+ payload.parameters = [];
+ payload.feedback = [];
+
+ var fmtpLines = parsers.findLines('a=fmtp:' + payload.id, lines);
+ // There should only be one fmtp line per payload
+ fmtpLines.forEach(function (line) {
+ payload.parameters = parsers.fmtp(line);
+ });
+
+ var fbLines = parsers.findLines('a=rtcp-fb:' + payload.id, lines);
+ fbLines.forEach(function (line) {
+ payload.feedback.push(parsers.rtcpfb(line));
+ });
+
+ desc.payloads.push(payload);
+ });
+
+ var cryptoLines = parsers.findLines('a=crypto:', lines, sessionLines);
+ cryptoLines.forEach(function (line) {
+ desc.encryption.push(parsers.crypto(line));
+ });
+
+ if (parsers.findLine('a=rtcp-mux', lines)) {
+ desc.mux = true;
+ }
+
+ var fbLines = parsers.findLines('a=rtcp-fb:*', lines);
+ fbLines.forEach(function (line) {
+ desc.feedback.push(parsers.rtcpfb(line));
+ });
+
+ var extLines = parsers.findLines('a=extmap:', lines);
+ extLines.forEach(function (line) {
+ var ext = parsers.extmap(line);
+
+ ext.senders = SENDERS[role][direction][ext.senders];
+
+ desc.headerExtensions.push(ext);
+ });
+
+ var ssrcGroupLines = parsers.findLines('a=ssrc-group:', lines);
+ desc.sourceGroups = parsers.sourceGroups(ssrcGroupLines || []);
+
+ var ssrcLines = parsers.findLines('a=ssrc:', lines);
+ var sources = desc.sources = parsers.sources(ssrcLines || []);
+
+ var msidLine = parsers.findLine('a=msid:', lines);
+ if (msidLine) {
+ var msid = parsers.msid(msidLine);
+ ['msid', 'mslabel', 'label'].forEach(function (key) {
+ for (var i = 0; i < sources.length; i++) {
+ var found = false;
+ for (var j = 0; j < sources[i].parameters.length; j++) {
+ if (sources[i].parameters[j].key === key) {
+ found = true;
+ }
+ }
+ if (!found) {
+ sources[i].parameters.push({ key: key, value: msid[key] });
+ }
+ }
+ });
+ }
+
+ if (parsers.findLine('a=x-google-flag:conference', lines, sessionLines)) {
+ desc.googConferenceFlag = true;
+ }
+ }
+
+ // transport specific attributes
+ var fingerprintLines = parsers.findLines('a=fingerprint:', lines, sessionLines);
+ var setup = parsers.findLine('a=setup:', lines, sessionLines);
+ fingerprintLines.forEach(function (line) {
+ var fp = parsers.fingerprint(line);
+ if (setup) {
+ fp.setup = setup.substr(8);
+ }
+ trans.fingerprints.push(fp);
+ });
+
+ var ufragLine = parsers.findLine('a=ice-ufrag:', lines, sessionLines);
+ var pwdLine = parsers.findLine('a=ice-pwd:', lines, sessionLines);
+ if (ufragLine && pwdLine) {
+ trans.ufrag = ufragLine.substr(12);
+ trans.pwd = pwdLine.substr(10);
+ trans.candidates = [];
+
+ var candidateLines = parsers.findLines('a=candidate:', lines, sessionLines);
+ candidateLines.forEach(function (line) {
+ trans.candidates.push(exports.toCandidateJSON(line));
+ });
+ }
+
+ if (desc.applicationType == 'datachannel') {
+ var sctpmapLines = parsers.findLines('a=sctpmap:', lines);
+ sctpmapLines.forEach(function (line) {
+ var sctp = parsers.sctpmap(line);
+ trans.sctp.push(sctp);
+ });
+ }
+
+ return content;
+};
+
+exports.toCandidateJSON = function (line) {
+ var candidate = parsers.candidate(line.split('\r\n')[0]);
+ candidate.id = (idCounter++).toString(36).substr(0, 12);
+ return candidate;
+};
+
+},{"./parsers":169,"./senders":170}],172:[function(require,module,exports){
+var SENDERS = require('./senders');
+
+
+exports.toSessionSDP = function (session, opts) {
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+ var sid = opts.sid || session.sid || Date.now();
+ var time = opts.time || Date.now();
+
+ var sdp = [
+ 'v=0',
+ 'o=- ' + sid + ' ' + time + ' IN IP4 0.0.0.0',
+ 's=-',
+ 't=0 0'
+ ];
+
+ var contents = session.contents || [];
+ var hasSources = false;
+ contents.forEach(function (content) {
+ if (content.application.sources &&
+ content.application.sources.length) {
+ hasSources = true;
+ }
+ });
+
+ if (hasSources) {
+ sdp.push('a=msid-semantic: WMS *');
+ }
+
+ var groups = session.groups || [];
+ groups.forEach(function (group) {
+ sdp.push('a=group:' + group.semantics + ' ' + group.contents.join(' '));
+ });
+
+
+ contents.forEach(function (content) {
+ sdp.push(exports.toMediaSDP(content, opts));
+ });
+
+ return sdp.join('\r\n') + '\r\n';
+};
+
+exports.toMediaSDP = function (content, opts) {
+ var sdp = [];
+
+ var role = opts.role || 'initiator';
+ var direction = opts.direction || 'outgoing';
+
+ var desc = content.application;
+ var transport = content.transport;
+ var payloads = desc.payloads || [];
+ var fingerprints = (transport && transport.fingerprints) || [];
+
+ var mline = [];
+ if (desc.applicationType == 'datachannel') {
+ mline.push('application');
+ mline.push('1');
+ mline.push('DTLS/SCTP');
+ if (transport.sctp) {
+ transport.sctp.forEach(function (map) {
+ mline.push(map.number);
+ });
+ }
+ } else {
+ mline.push(desc.media);
+ mline.push('1');
+ if (fingerprints.length > 0) {
+ mline.push('UDP/TLS/RTP/SAVPF');
+ } else if (desc.encryption && desc.encryption.length > 0) {
+ mline.push('RTP/SAVPF');
+ } else {
+ mline.push('RTP/AVPF');
+ }
+ payloads.forEach(function (payload) {
+ mline.push(payload.id);
+ });
+ }
+
+
+ sdp.push('m=' + mline.join(' '));
+
+ sdp.push('c=IN IP4 0.0.0.0');
+ if (desc.bandwidth && desc.bandwidth.type && desc.bandwidth.bandwidth) {
+ sdp.push('b=' + desc.bandwidth.type + ':' + desc.bandwidth.bandwidth);
+ }
+ if (desc.applicationType == 'rtp') {
+ sdp.push('a=rtcp:1 IN IP4 0.0.0.0');
+ }
+
+ if (transport) {
+ if (transport.ufrag) {
+ sdp.push('a=ice-ufrag:' + transport.ufrag);
+ }
+ if (transport.pwd) {
+ sdp.push('a=ice-pwd:' + transport.pwd);
+ }
+
+ var pushedSetup = false;
+ fingerprints.forEach(function (fingerprint) {
+ sdp.push('a=fingerprint:' + fingerprint.hash + ' ' + fingerprint.value);
+ if (fingerprint.setup && !pushedSetup) {
+ sdp.push('a=setup:' + fingerprint.setup);
+ }
+ });
+
+ if (transport.sctp) {
+ transport.sctp.forEach(function (map) {
+ sdp.push('a=sctpmap:' + map.number + ' ' + map.protocol + ' ' + map.streams);
+ });
+ }
+ }
+
+ if (desc.applicationType == 'rtp') {
+ sdp.push('a=' + (SENDERS[role][direction][content.senders] || 'sendrecv'));
+ }
+ sdp.push('a=mid:' + content.name);
+
+ if (desc.sources && desc.sources.length) {
+ (desc.sources[0].parameters || []).forEach(function (param) {
+ if (param.key === 'msid') {
+ sdp.push('a=msid:' + param.value);
+ }
+ });
+ }
+
+ if (desc.mux) {
+ sdp.push('a=rtcp-mux');
+ }
+
+ var encryption = desc.encryption || [];
+ encryption.forEach(function (crypto) {
+ sdp.push('a=crypto:' + crypto.tag + ' ' + crypto.cipherSuite + ' ' + crypto.keyParams + (crypto.sessionParams ? ' ' + crypto.sessionParams : ''));
+ });
+ if (desc.googConferenceFlag) {
+ sdp.push('a=x-google-flag:conference');
+ }
+
+ payloads.forEach(function (payload) {
+ var rtpmap = 'a=rtpmap:' + payload.id + ' ' + payload.name + '/' + payload.clockrate;
+ if (payload.channels && payload.channels != '1') {
+ rtpmap += '/' + payload.channels;
+ }
+ sdp.push(rtpmap);
+
+ if (payload.parameters && payload.parameters.length) {
+ var fmtp = ['a=fmtp:' + payload.id];
+ var parameters = [];
+ payload.parameters.forEach(function (param) {
+ parameters.push((param.key ? param.key + '=' : '') + param.value);
+ });
+ fmtp.push(parameters.join(';'));
+ sdp.push(fmtp.join(' '));
+ }
+
+ if (payload.feedback) {
+ payload.feedback.forEach(function (fb) {
+ if (fb.type === 'trr-int') {
+ sdp.push('a=rtcp-fb:' + payload.id + ' trr-int ' + (fb.value ? fb.value : '0'));
+ } else {
+ sdp.push('a=rtcp-fb:' + payload.id + ' ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ }
+ });
+ }
+ });
+
+ if (desc.feedback) {
+ desc.feedback.forEach(function (fb) {
+ if (fb.type === 'trr-int') {
+ sdp.push('a=rtcp-fb:* trr-int ' + (fb.value ? fb.value : '0'));
+ } else {
+ sdp.push('a=rtcp-fb:* ' + fb.type + (fb.subtype ? ' ' + fb.subtype : ''));
+ }
+ });
+ }
+
+ var hdrExts = desc.headerExtensions || [];
+ hdrExts.forEach(function (hdr) {
+ sdp.push('a=extmap:' + hdr.id + (hdr.senders ? '/' + SENDERS[role][direction][hdr.senders] : '') + ' ' + hdr.uri);
+ });
+
+ var ssrcGroups = desc.sourceGroups || [];
+ ssrcGroups.forEach(function (ssrcGroup) {
+ sdp.push('a=ssrc-group:' + ssrcGroup.semantics + ' ' + ssrcGroup.sources.join(' '));
+ });
+
+ var ssrcs = desc.sources || [];
+ ssrcs.forEach(function (ssrc) {
+ for (var i = 0; i < ssrc.parameters.length; i++) {
+ var param = ssrc.parameters[i];
+ sdp.push('a=ssrc:' + (ssrc.ssrc || desc.ssrc) + ' ' + param.key + (param.value ? (':' + param.value) : ''));
+ }
+ });
+
+ var candidates = transport.candidates || [];
+ candidates.forEach(function (candidate) {
+ sdp.push(exports.toCandidateSDP(candidate));
+ });
+
+ return sdp.join('\r\n');
+};
+
+exports.toCandidateSDP = function (candidate) {
+ var sdp = [];
+
+ sdp.push(candidate.foundation);
+ sdp.push(candidate.component);
+ sdp.push(candidate.protocol.toUpperCase());
+ sdp.push(candidate.priority);
+ sdp.push(candidate.ip);
+ sdp.push(candidate.port);
+
+ var type = candidate.type;
+ sdp.push('typ');
+ sdp.push(type);
+ if (type === 'srflx' || type === 'prflx' || type === 'relay') {
+ if (candidate.relAddr && candidate.relPort) {
+ sdp.push('raddr');
+ sdp.push(candidate.relAddr);
+ sdp.push('rport');
+ sdp.push(candidate.relPort);
+ }
+ }
+ if (candidate.tcpType && candidate.protocol.toUpperCase() == 'TCP') {
+ sdp.push('tcptype');
+ sdp.push(candidate.tcpType);
+ }
+
+ sdp.push('generation');
+ sdp.push(candidate.generation || '0');
+
+ // FIXME: apparently this is wrong per spec
+ // but then, we need this when actually putting this into
+ // SDP so it's going to stay.
+ // decision needs to be revisited when browsers dont
+ // accept this any longer
+ return 'a=candidate:' + sdp.join(' ');
+};
+
+},{"./senders":170}],173:[function(require,module,exports){
+ /* eslint-env node */
+'use strict';
+
+// SDP helpers.
+var SDPUtils = {};
+
+// Generate an alphanumeric identifier for cname or mids.
+// TODO: use UUIDs instead? https://gist.github.com/jed/982883
+SDPUtils.generateIdentifier = function() {
+ return Math.random().toString(36).substr(2, 10);
+};
+
+// The RTCP CNAME used by all peerconnections from the same JS.
+SDPUtils.localCName = SDPUtils.generateIdentifier();
+
+// Splits SDP into lines, dealing with both CRLF and LF.
+SDPUtils.splitLines = function(blob) {
+ return blob.trim().split('\n').map(function(line) {
+ return line.trim();
+ });
+};
+// Splits SDP into sessionpart and mediasections. Ensures CRLF.
+SDPUtils.splitSections = function(blob) {
+ var parts = blob.split('\nm=');
+ return parts.map(function(part, index) {
+ return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
+ });
+};
+
+// Returns lines that start with a certain prefix.
+SDPUtils.matchPrefix = function(blob, prefix) {
+ return SDPUtils.splitLines(blob).filter(function(line) {
+ return line.indexOf(prefix) === 0;
+ });
+};
+
+// Parses an ICE candidate line. Sample input:
+// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8
+// rport 55996"
+SDPUtils.parseCandidate = function(line) {
+ var parts;
+ // Parse both variants.
+ if (line.indexOf('a=candidate:') === 0) {
+ parts = line.substring(12).split(' ');
+ } else {
+ parts = line.substring(10).split(' ');
+ }
+
+ var candidate = {
+ foundation: parts[0],
+ component: parts[1],
+ protocol: parts[2].toLowerCase(),
+ priority: parseInt(parts[3], 10),
+ ip: parts[4],
+ port: parseInt(parts[5], 10),
+ // skip parts[6] == 'typ'
+ type: parts[7]
+ };
+
+ for (var i = 8; i < parts.length; i += 2) {
+ switch (parts[i]) {
+ case 'raddr':
+ candidate.relatedAddress = parts[i + 1];
+ break;
+ case 'rport':
+ candidate.relatedPort = parseInt(parts[i + 1], 10);
+ break;
+ case 'tcptype':
+ candidate.tcpType = parts[i + 1];
+ break;
+ default: // Unknown extensions are silently ignored.
+ break;
+ }
+ }
+ return candidate;
+};
+
+// Translates a candidate object into SDP candidate attribute.
+SDPUtils.writeCandidate = function(candidate) {
+ var sdp = [];
+ sdp.push(candidate.foundation);
+ sdp.push(candidate.component);
+ sdp.push(candidate.protocol.toUpperCase());
+ sdp.push(candidate.priority);
+ sdp.push(candidate.ip);
+ sdp.push(candidate.port);
+
+ var type = candidate.type;
+ sdp.push('typ');
+ sdp.push(type);
+ if (type !== 'host' && candidate.relatedAddress &&
+ candidate.relatedPort) {
+ sdp.push('raddr');
+ sdp.push(candidate.relatedAddress); // was: relAddr
+ sdp.push('rport');
+ sdp.push(candidate.relatedPort); // was: relPort
+ }
+ if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
+ sdp.push('tcptype');
+ sdp.push(candidate.tcpType);
+ }
+ return 'candidate:' + sdp.join(' ');
+};
+
+// Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
+// a=rtpmap:111 opus/48000/2
+SDPUtils.parseRtpMap = function(line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ payloadType: parseInt(parts.shift(), 10) // was: id
+ };
+
+ parts = parts[0].split('/');
+
+ parsed.name = parts[0];
+ parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
+ // was: channels
+ parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1;
+ return parsed;
+};
+
+// Generate an a=rtpmap line from RTCRtpCodecCapability or
+// RTCRtpCodecParameters.
+SDPUtils.writeRtpMap = function(codec) {
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
+ (codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
+};
+
+// Parses an a=extmap line (headerextension from RFC 5285). Sample input:
+// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
+SDPUtils.parseExtmap = function(line) {
+ var parts = line.substr(9).split(' ');
+ return {
+ id: parseInt(parts[0], 10),
+ uri: parts[1]
+ };
+};
+
+// Generates a=extmap line from RTCRtpHeaderExtensionParameters or
+// RTCRtpHeaderExtension.
+SDPUtils.writeExtmap = function(headerExtension) {
+ return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +
+ ' ' + headerExtension.uri + '\r\n';
+};
+
+// Parses an ftmp line, returns dictionary. Sample input:
+// a=fmtp:96 vbr=on;cng=on
+// Also deals with vbr=on; cng=on
+SDPUtils.parseFmtp = function(line) {
+ var parsed = {};
+ var kv;
+ var parts = line.substr(line.indexOf(' ') + 1).split(';');
+ for (var j = 0; j < parts.length; j++) {
+ kv = parts[j].trim().split('=');
+ parsed[kv[0].trim()] = kv[1];
+ }
+ return parsed;
+};
+
+// Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
+SDPUtils.writeFmtp = function(codec) {
+ var line = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.parameters && Object.keys(codec.parameters).length) {
+ var params = [];
+ Object.keys(codec.parameters).forEach(function(param) {
+ params.push(param + '=' + codec.parameters[param]);
+ });
+ line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
+ }
+ return line;
+};
+
+// Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
+// a=rtcp-fb:98 nack rpsi
+SDPUtils.parseRtcpFb = function(line) {
+ var parts = line.substr(line.indexOf(' ') + 1).split(' ');
+ return {
+ type: parts.shift(),
+ parameter: parts.join(' ')
+ };
+};
+// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
+SDPUtils.writeRtcpFb = function(codec) {
+ var lines = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
+ // FIXME: special handling for trr-int?
+ codec.rtcpFeedback.forEach(function(fb) {
+ lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +
+ (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +
+ '\r\n';
+ });
+ }
+ return lines;
+};
+
+// Parses an RFC 5576 ssrc media attribute. Sample input:
+// a=ssrc:3735928559 cname:something
+SDPUtils.parseSsrcMedia = function(line) {
+ var sp = line.indexOf(' ');
+ var parts = {
+ ssrc: parseInt(line.substr(7, sp - 7), 10)
+ };
+ var colon = line.indexOf(':', sp);
+ if (colon > -1) {
+ parts.attribute = line.substr(sp + 1, colon - sp - 1);
+ parts.value = line.substr(colon + 1);
+ } else {
+ parts.attribute = line.substr(sp + 1);
+ }
+ return parts;
+};
+
+// Extracts DTLS parameters from SDP media section or sessionpart.
+// FIXME: for consistency with other functions this should only
+// get the fingerprint line as input. See also getIceParameters.
+SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ // Search in session part, too.
+ lines = lines.concat(SDPUtils.splitLines(sessionpart));
+ var fpLine = lines.filter(function(line) {
+ return line.indexOf('a=fingerprint:') === 0;
+ })[0].substr(14);
+ // Note: a=setup line is ignored since we use the 'auto' role.
+ var dtlsParameters = {
+ role: 'auto',
+ fingerprints: [{
+ algorithm: fpLine.split(' ')[0],
+ value: fpLine.split(' ')[1]
+ }]
+ };
+ return dtlsParameters;
+};
+
+// Serializes DTLS parameters to SDP.
+SDPUtils.writeDtlsParameters = function(params, setupType) {
+ var sdp = 'a=setup:' + setupType + '\r\n';
+ params.fingerprints.forEach(function(fp) {
+ sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
+ });
+ return sdp;
+};
+// Parses ICE information from SDP media section or sessionpart.
+// FIXME: for consistency with other functions this should only
+// get the ice-ufrag and ice-pwd lines as input.
+SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ // Search in session part, too.
+ lines = lines.concat(SDPUtils.splitLines(sessionpart));
+ var iceParameters = {
+ usernameFragment: lines.filter(function(line) {
+ return line.indexOf('a=ice-ufrag:') === 0;
+ })[0].substr(12),
+ password: lines.filter(function(line) {
+ return line.indexOf('a=ice-pwd:') === 0;
+ })[0].substr(10)
+ };
+ return iceParameters;
+};
+
+// Serializes ICE parameters to SDP.
+SDPUtils.writeIceParameters = function(params) {
+ return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
+ 'a=ice-pwd:' + params.password + '\r\n';
+};
+
+// Parses the SDP media section and returns RTCRtpParameters.
+SDPUtils.parseRtpParameters = function(mediaSection) {
+ var description = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: [],
+ rtcp: []
+ };
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].split(' ');
+ for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
+ var pt = mline[i];
+ var rtpmapline = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtpmap:' + pt + ' ')[0];
+ if (rtpmapline) {
+ var codec = SDPUtils.parseRtpMap(rtpmapline);
+ var fmtps = SDPUtils.matchPrefix(
+ mediaSection, 'a=fmtp:' + pt + ' ');
+ // Only the first a=fmtp:<pt> is considered.
+ codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
+ codec.rtcpFeedback = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtcp-fb:' + pt + ' ')
+ .map(SDPUtils.parseRtcpFb);
+ description.codecs.push(codec);
+ // parse FEC mechanisms from rtpmap lines.
+ switch (codec.name.toUpperCase()) {
+ case 'RED':
+ case 'ULPFEC':
+ description.fecMechanisms.push(codec.name.toUpperCase());
+ break;
+ default: // only RED and ULPFEC are recognized as FEC mechanisms.
+ break;
+ }
+ }
+ }
+ SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {
+ description.headerExtensions.push(SDPUtils.parseExtmap(line));
+ });
+ // FIXME: parse rtcp.
+ return description;
+};
+
+// Generates parts of the SDP media section describing the capabilities /
+// parameters.
+SDPUtils.writeRtpDescription = function(kind, caps) {
+ var sdp = '';
+
+ // Build the mline.
+ sdp += 'm=' + kind + ' ';
+ sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
+ sdp += ' UDP/TLS/RTP/SAVPF ';
+ sdp += caps.codecs.map(function(codec) {
+ if (codec.preferredPayloadType !== undefined) {
+ return codec.preferredPayloadType;
+ }
+ return codec.payloadType;
+ }).join(' ') + '\r\n';
+
+ sdp += 'c=IN IP4 0.0.0.0\r\n';
+ sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
+
+ // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
+ caps.codecs.forEach(function(codec) {
+ sdp += SDPUtils.writeRtpMap(codec);
+ sdp += SDPUtils.writeFmtp(codec);
+ sdp += SDPUtils.writeRtcpFb(codec);
+ });
+ // FIXME: add headerExtensions, fecMechanismş and rtcp.
+ sdp += 'a=rtcp-mux\r\n';
+ return sdp;
+};
+
+// Parses the SDP media section and returns an array of
+// RTCRtpEncodingParameters.
+SDPUtils.parseRtpEncodingParameters = function(mediaSection) {
+ var encodingParameters = [];
+ var description = SDPUtils.parseRtpParameters(mediaSection);
+ var hasRed = description.fecMechanisms.indexOf('RED') !== -1;
+ var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;
+
+ // filter a=ssrc:... cname:, ignore PlanB-msid
+ var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(parts) {
+ return parts.attribute === 'cname';
+ });
+ var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;
+ var secondarySsrc;
+
+ var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')
+ .map(function(line) {
+ var parts = line.split(' ');
+ parts.shift();
+ return parts.map(function(part) {
+ return parseInt(part, 10);
+ });
+ });
+ if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {
+ secondarySsrc = flows[0][1];
+ }
+
+ description.codecs.forEach(function(codec) {
+ if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {
+ var encParam = {
+ ssrc: primarySsrc,
+ codecPayloadType: parseInt(codec.parameters.apt, 10),
+ rtx: {
+ payloadType: codec.payloadType,
+ ssrc: secondarySsrc
+ }
+ };
+ encodingParameters.push(encParam);
+ if (hasRed) {
+ encParam = JSON.parse(JSON.stringify(encParam));
+ encParam.fec = {
+ ssrc: secondarySsrc,
+ mechanism: hasUlpfec ? 'red+ulpfec' : 'red'
+ };
+ encodingParameters.push(encParam);
+ }
+ }
+ });
+ if (encodingParameters.length === 0 && primarySsrc) {
+ encodingParameters.push({
+ ssrc: primarySsrc
+ });
+ }
+
+ // we support both b=AS and b=TIAS but interpret AS as TIAS.
+ var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');
+ if (bandwidth.length) {
+ if (bandwidth[0].indexOf('b=TIAS:') === 0) {
+ bandwidth = parseInt(bandwidth[0].substr(7), 10);
+ } else if (bandwidth[0].indexOf('b=AS:') === 0) {
+ bandwidth = parseInt(bandwidth[0].substr(5), 10);
+ }
+ encodingParameters.forEach(function(params) {
+ params.maxBitrate = bandwidth;
+ });
+ }
+ return encodingParameters;
+};
+
+SDPUtils.writeSessionBoilerplate = function() {
+ // FIXME: sess-id should be an NTP timestamp.
+ return 'v=0\r\n' +
+ 'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
+ 's=-\r\n' +
+ 't=0 0\r\n';
+};
+
+SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
+ var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
+
+ // Map ICE parameters (ufrag, pwd) to SDP.
+ sdp += SDPUtils.writeIceParameters(
+ transceiver.iceGatherer.getLocalParameters());
+
+ // Map DTLS parameters to SDP.
+ sdp += SDPUtils.writeDtlsParameters(
+ transceiver.dtlsTransport.getLocalParameters(),
+ type === 'offer' ? 'actpass' : 'active');
+
+ sdp += 'a=mid:' + transceiver.mid + '\r\n';
+
+ if (transceiver.rtpSender && transceiver.rtpReceiver) {
+ sdp += 'a=sendrecv\r\n';
+ } else if (transceiver.rtpSender) {
+ sdp += 'a=sendonly\r\n';
+ } else if (transceiver.rtpReceiver) {
+ sdp += 'a=recvonly\r\n';
+ } else {
+ sdp += 'a=inactive\r\n';
+ }
+
+ // FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet.
+ if (transceiver.rtpSender) {
+ var msid = 'msid:' + stream.id + ' ' +
+ transceiver.rtpSender.track.id + '\r\n';
+ sdp += 'a=' + msid;
+ sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
+ ' ' + msid;
+ }
+ // FIXME: this should be written by writeRtpDescription.
+ sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +
+ ' cname:' + SDPUtils.localCName + '\r\n';
+ return sdp;
+};
+
+// Gets the direction from the mediaSection or the sessionpart.
+SDPUtils.getDirection = function(mediaSection, sessionpart) {
+ // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
+ var lines = SDPUtils.splitLines(mediaSection);
+ for (var i = 0; i < lines.length; i++) {
+ switch (lines[i]) {
+ case 'a=sendrecv':
+ case 'a=sendonly':
+ case 'a=recvonly':
+ case 'a=inactive':
+ return lines[i].substr(2);
+ default:
+ // FIXME: What should happen here?
+ }
+ }
+ if (sessionpart) {
+ return SDPUtils.getDirection(sessionpart);
+ }
+ return 'sendrecv';
+};
+
+// Expose public methods.
+module.exports = SDPUtils;
+
+},{}],174:[function(require,module,exports){
+(function (Buffer){
+// prototype class for hash functions
+function Hash (blockSize, finalSize) {
+ this._block = new Buffer(blockSize)
+ this._finalSize = finalSize
+ this._blockSize = blockSize
+ this._len = 0
+ this._s = 0
+}
+
+Hash.prototype.update = function (data, enc) {
+ if (typeof data === 'string') {
+ enc = enc || 'utf8'
+ data = new Buffer(data, enc)
+ }
+
+ var l = this._len += data.length
+ var s = this._s || 0
+ var f = 0
+ var buffer = this._block
+
+ while (s < l) {
+ var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
+ var ch = (t - f)
+
+ for (var i = 0; i < ch; i++) {
+ buffer[(s % this._blockSize) + i] = data[i + f]
+ }
+
+ s += ch
+ f += ch
+
+ if ((s % this._blockSize) === 0) {
+ this._update(buffer)
+ }
+ }
+ this._s = s
+
+ return this
+}
+
+Hash.prototype.digest = function (enc) {
+ // Suppose the length of the message M, in bits, is l
+ var l = this._len * 8
+
+ // Append the bit 1 to the end of the message
+ this._block[this._len % this._blockSize] = 0x80
+
+ // and then k zero bits, where k is the smallest non-negative solution to the equation (l + 1 + k) === finalSize mod blockSize
+ this._block.fill(0, this._len % this._blockSize + 1)
+
+ if (l % (this._blockSize * 8) >= this._finalSize * 8) {
+ this._update(this._block)
+ this._block.fill(0)
+ }
+
+ // to this append the block which is equal to the number l written in binary
+ // TODO: handle case where l is > Math.pow(2, 29)
+ this._block.writeInt32BE(l, this._blockSize - 4)
+
+ var hash = this._update(this._block) || this._hash()
+
+ return enc ? hash.toString(enc) : hash
+}
+
+Hash.prototype._update = function () {
+ throw new Error('_update must be implemented by subclass')
+}
+
+module.exports = Hash
+
+}).call(this,require("buffer").Buffer)
+},{"buffer":6}],175:[function(require,module,exports){
+var exports = module.exports = function SHA (algorithm) {
+ algorithm = algorithm.toLowerCase()
+
+ var Algorithm = exports[algorithm]
+ if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
+
+ return new Algorithm()
+}
+
+exports.sha = require('./sha')
+exports.sha1 = require('./sha1')
+exports.sha224 = require('./sha224')
+exports.sha256 = require('./sha256')
+exports.sha384 = require('./sha384')
+exports.sha512 = require('./sha512')
+
+},{"./sha":176,"./sha1":177,"./sha224":178,"./sha256":179,"./sha384":180,"./sha512":181}],176:[function(require,module,exports){
+(function (Buffer){
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
+ * in FIPS PUB 180-1
+ * This source code is derived from sha1.js of the same repository.
+ * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
+ * operation was added.
+ */
+
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
+]
+
+var W = new Array(80)
+
+function Sha () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha, Hash)
+
+Sha.prototype.init = function () {
+ this._a = 0x67452301
+ this._b = 0xefcdab89
+ this._c = 0x98badcfe
+ this._d = 0x10325476
+ this._e = 0xc3d2e1f0
+
+ return this
+}
+
+function rotl5 (num) {
+ return (num << 5) | (num >>> 27)
+}
+
+function rotl30 (num) {
+ return (num << 30) | (num >>> 2)
+}
+
+function ft (s, b, c, d) {
+ if (s === 0) return (b & c) | ((~b) & d)
+ if (s === 2) return (b & c) | (b & d) | (c & d)
+ return b ^ c ^ d
+}
+
+Sha.prototype._update = function (M) {
+ var W = this._w
+
+ var a = this._a | 0
+ var b = this._b | 0
+ var c = this._c | 0
+ var d = this._d | 0
+ var e = this._e | 0
+
+ for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
+ for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]
+
+ for (var j = 0; j < 80; ++j) {
+ var s = ~~(j / 20)
+ var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
+
+ e = d
+ d = c
+ c = rotl30(b)
+ b = a
+ a = t
+ }
+
+ this._a = (a + this._a) | 0
+ this._b = (b + this._b) | 0
+ this._c = (c + this._c) | 0
+ this._d = (d + this._d) | 0
+ this._e = (e + this._e) | 0
+}
+
+Sha.prototype._hash = function () {
+ var H = new Buffer(20)
+
+ H.writeInt32BE(this._a | 0, 0)
+ H.writeInt32BE(this._b | 0, 4)
+ H.writeInt32BE(this._c | 0, 8)
+ H.writeInt32BE(this._d | 0, 12)
+ H.writeInt32BE(this._e | 0, 16)
+
+ return H
+}
+
+module.exports = Sha
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],177:[function(require,module,exports){
+(function (Buffer){
+/*
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
+ * in FIPS PUB 180-1
+ * Version 2.1a Copyright Paul Johnston 2000 - 2002.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for details.
+ */
+
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0
+]
+
+var W = new Array(80)
+
+function Sha1 () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha1, Hash)
+
+Sha1.prototype.init = function () {
+ this._a = 0x67452301
+ this._b = 0xefcdab89
+ this._c = 0x98badcfe
+ this._d = 0x10325476
+ this._e = 0xc3d2e1f0
+
+ return this
+}
+
+function rotl1 (num) {
+ return (num << 1) | (num >>> 31)
+}
+
+function rotl5 (num) {
+ return (num << 5) | (num >>> 27)
+}
+
+function rotl30 (num) {
+ return (num << 30) | (num >>> 2)
+}
+
+function ft (s, b, c, d) {
+ if (s === 0) return (b & c) | ((~b) & d)
+ if (s === 2) return (b & c) | (b & d) | (c & d)
+ return b ^ c ^ d
+}
+
+Sha1.prototype._update = function (M) {
+ var W = this._w
+
+ var a = this._a | 0
+ var b = this._b | 0
+ var c = this._c | 0
+ var d = this._d | 0
+ var e = this._e | 0
+
+ for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
+ for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])
+
+ for (var j = 0; j < 80; ++j) {
+ var s = ~~(j / 20)
+ var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0
+
+ e = d
+ d = c
+ c = rotl30(b)
+ b = a
+ a = t
+ }
+
+ this._a = (a + this._a) | 0
+ this._b = (b + this._b) | 0
+ this._c = (c + this._c) | 0
+ this._d = (d + this._d) | 0
+ this._e = (e + this._e) | 0
+}
+
+Sha1.prototype._hash = function () {
+ var H = new Buffer(20)
+
+ H.writeInt32BE(this._a | 0, 0)
+ H.writeInt32BE(this._b | 0, 4)
+ H.writeInt32BE(this._c | 0, 8)
+ H.writeInt32BE(this._d | 0, 12)
+ H.writeInt32BE(this._e | 0, 16)
+
+ return H
+}
+
+module.exports = Sha1
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],178:[function(require,module,exports){
+(function (Buffer){
/**
- * The only (relevant) data structure
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
+ * in FIPS 180-2
+ * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ *
*/
-exports.Element = require('./dom-element')
+var inherits = require('inherits')
+var Sha256 = require('./sha256')
+var Hash = require('./hash')
+
+var W = new Array(64)
+
+function Sha224 () {
+ this.init()
+
+ this._w = W // new Array(64)
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha224, Sha256)
+
+Sha224.prototype.init = function () {
+ this._a = 0xc1059ed8
+ this._b = 0x367cd507
+ this._c = 0x3070dd17
+ this._d = 0xf70e5939
+ this._e = 0xffc00b31
+ this._f = 0x68581511
+ this._g = 0x64f98fa7
+ this._h = 0xbefa4fa4
+
+ return this
+}
+
+Sha224.prototype._hash = function () {
+ var H = new Buffer(28)
+
+ H.writeInt32BE(this._a, 0)
+ H.writeInt32BE(this._b, 4)
+ H.writeInt32BE(this._c, 8)
+ H.writeInt32BE(this._d, 12)
+ H.writeInt32BE(this._e, 16)
+ H.writeInt32BE(this._f, 20)
+ H.writeInt32BE(this._g, 24)
+
+ return H
+}
+
+module.exports = Sha224
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"./sha256":179,"buffer":6,"inherits":45}],179:[function(require,module,exports){
+(function (Buffer){
/**
- * Helper
+ * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
+ * in FIPS 180-2
+ * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ *
*/
-exports.escapeXml = require('./element').escapeXml
+
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
+ 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
+ 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
+ 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
+ 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
+ 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
+ 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
+ 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
+ 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
+ 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
+ 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
+ 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
+ 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
+ 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
+ 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
+ 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
+]
+
+var W = new Array(64)
+
+function Sha256 () {
+ this.init()
+
+ this._w = W // new Array(64)
+
+ Hash.call(this, 64, 56)
+}
+
+inherits(Sha256, Hash)
+
+Sha256.prototype.init = function () {
+ this._a = 0x6a09e667
+ this._b = 0xbb67ae85
+ this._c = 0x3c6ef372
+ this._d = 0xa54ff53a
+ this._e = 0x510e527f
+ this._f = 0x9b05688c
+ this._g = 0x1f83d9ab
+ this._h = 0x5be0cd19
+
+ return this
+}
+
+function ch (x, y, z) {
+ return z ^ (x & (y ^ z))
+}
+
+function maj (x, y, z) {
+ return (x & y) | (z & (x | y))
+}
+
+function sigma0 (x) {
+ return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)
+}
+
+function sigma1 (x) {
+ return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)
+}
+
+function gamma0 (x) {
+ return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)
+}
+
+function gamma1 (x) {
+ return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)
+}
+
+Sha256.prototype._update = function (M) {
+ var W = this._w
+
+ var a = this._a | 0
+ var b = this._b | 0
+ var c = this._c | 0
+ var d = this._d | 0
+ var e = this._e | 0
+ var f = this._f | 0
+ var g = this._g | 0
+ var h = this._h | 0
+
+ for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)
+ for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0
+
+ for (var j = 0; j < 64; ++j) {
+ var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0
+ var T2 = (sigma0(a) + maj(a, b, c)) | 0
+
+ h = g
+ g = f
+ f = e
+ e = (d + T1) | 0
+ d = c
+ c = b
+ b = a
+ a = (T1 + T2) | 0
+ }
+
+ this._a = (a + this._a) | 0
+ this._b = (b + this._b) | 0
+ this._c = (c + this._c) | 0
+ this._d = (d + this._d) | 0
+ this._e = (e + this._e) | 0
+ this._f = (f + this._f) | 0
+ this._g = (g + this._g) | 0
+ this._h = (h + this._h) | 0
+}
+
+Sha256.prototype._hash = function () {
+ var H = new Buffer(32)
+
+ H.writeInt32BE(this._a, 0)
+ H.writeInt32BE(this._b, 4)
+ H.writeInt32BE(this._c, 8)
+ H.writeInt32BE(this._d, 12)
+ H.writeInt32BE(this._e, 16)
+ H.writeInt32BE(this._f, 20)
+ H.writeInt32BE(this._g, 24)
+ H.writeInt32BE(this._h, 28)
+
+ return H
+}
+
+module.exports = Sha256
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],180:[function(require,module,exports){
+(function (Buffer){
+var inherits = require('inherits')
+var SHA512 = require('./sha512')
+var Hash = require('./hash')
+
+var W = new Array(160)
+
+function Sha384 () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 128, 112)
+}
+
+inherits(Sha384, SHA512)
+
+Sha384.prototype.init = function () {
+ this._ah = 0xcbbb9d5d
+ this._bh = 0x629a292a
+ this._ch = 0x9159015a
+ this._dh = 0x152fecd8
+ this._eh = 0x67332667
+ this._fh = 0x8eb44a87
+ this._gh = 0xdb0c2e0d
+ this._hh = 0x47b5481d
+
+ this._al = 0xc1059ed8
+ this._bl = 0x367cd507
+ this._cl = 0x3070dd17
+ this._dl = 0xf70e5939
+ this._el = 0xffc00b31
+ this._fl = 0x68581511
+ this._gl = 0x64f98fa7
+ this._hl = 0xbefa4fa4
+
+ return this
+}
+
+Sha384.prototype._hash = function () {
+ var H = new Buffer(48)
+
+ function writeInt64BE (h, l, offset) {
+ H.writeInt32BE(h, offset)
+ H.writeInt32BE(l, offset + 4)
+ }
+
+ writeInt64BE(this._ah, this._al, 0)
+ writeInt64BE(this._bh, this._bl, 8)
+ writeInt64BE(this._ch, this._cl, 16)
+ writeInt64BE(this._dh, this._dl, 24)
+ writeInt64BE(this._eh, this._el, 32)
+ writeInt64BE(this._fh, this._fl, 40)
+
+ return H
+}
+
+module.exports = Sha384
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"./sha512":181,"buffer":6,"inherits":45}],181:[function(require,module,exports){
+(function (Buffer){
+var inherits = require('inherits')
+var Hash = require('./hash')
+
+var K = [
+ 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
+ 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,
+ 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
+ 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,
+ 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,
+ 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
+ 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,
+ 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,
+ 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
+ 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,
+ 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,
+ 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
+ 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,
+ 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,
+ 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
+ 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,
+ 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,
+ 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
+ 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,
+ 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,
+ 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
+ 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,
+ 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,
+ 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
+ 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,
+ 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,
+ 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
+ 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
+ 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
+ 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
+ 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
+ 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
+ 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
+ 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
+ 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
+ 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
+ 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
+ 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
+ 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
+ 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
+]
+
+var W = new Array(160)
+
+function Sha512 () {
+ this.init()
+ this._w = W
+
+ Hash.call(this, 128, 112)
+}
+
+inherits(Sha512, Hash)
+
+Sha512.prototype.init = function () {
+ this._ah = 0x6a09e667
+ this._bh = 0xbb67ae85
+ this._ch = 0x3c6ef372
+ this._dh = 0xa54ff53a
+ this._eh = 0x510e527f
+ this._fh = 0x9b05688c
+ this._gh = 0x1f83d9ab
+ this._hh = 0x5be0cd19
+
+ this._al = 0xf3bcc908
+ this._bl = 0x84caa73b
+ this._cl = 0xfe94f82b
+ this._dl = 0x5f1d36f1
+ this._el = 0xade682d1
+ this._fl = 0x2b3e6c1f
+ this._gl = 0xfb41bd6b
+ this._hl = 0x137e2179
+
+ return this
+}
+
+function Ch (x, y, z) {
+ return z ^ (x & (y ^ z))
+}
+
+function maj (x, y, z) {
+ return (x & y) | (z & (x | y))
+}
+
+function sigma0 (x, xl) {
+ return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)
+}
+
+function sigma1 (x, xl) {
+ return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)
+}
+
+function Gamma0 (x, xl) {
+ return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)
+}
+
+function Gamma0l (x, xl) {
+ return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)
+}
+
+function Gamma1 (x, xl) {
+ return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)
+}
+
+function Gamma1l (x, xl) {
+ return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)
+}
+
+function getCarry (a, b) {
+ return (a >>> 0) < (b >>> 0) ? 1 : 0
+}
+
+Sha512.prototype._update = function (M) {
+ var W = this._w
+
+ var ah = this._ah | 0
+ var bh = this._bh | 0
+ var ch = this._ch | 0
+ var dh = this._dh | 0
+ var eh = this._eh | 0
+ var fh = this._fh | 0
+ var gh = this._gh | 0
+ var hh = this._hh | 0
+
+ var al = this._al | 0
+ var bl = this._bl | 0
+ var cl = this._cl | 0
+ var dl = this._dl | 0
+ var el = this._el | 0
+ var fl = this._fl | 0
+ var gl = this._gl | 0
+ var hl = this._hl | 0
+
+ for (var i = 0; i < 32; i += 2) {
+ W[i] = M.readInt32BE(i * 4)
+ W[i + 1] = M.readInt32BE(i * 4 + 4)
+ }
+ for (; i < 160; i += 2) {
+ var xh = W[i - 15 * 2]
+ var xl = W[i - 15 * 2 + 1]
+ var gamma0 = Gamma0(xh, xl)
+ var gamma0l = Gamma0l(xl, xh)
+
+ xh = W[i - 2 * 2]
+ xl = W[i - 2 * 2 + 1]
+ var gamma1 = Gamma1(xh, xl)
+ var gamma1l = Gamma1l(xl, xh)
+
+ // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+ var Wi7h = W[i - 7 * 2]
+ var Wi7l = W[i - 7 * 2 + 1]
+
+ var Wi16h = W[i - 16 * 2]
+ var Wi16l = W[i - 16 * 2 + 1]
+
+ var Wil = (gamma0l + Wi7l) | 0
+ var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0
+ Wil = (Wil + gamma1l) | 0
+ Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0
+ Wil = (Wil + Wi16l) | 0
+ Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0
+
+ W[i] = Wih
+ W[i + 1] = Wil
+ }
+
+ for (var j = 0; j < 160; j += 2) {
+ Wih = W[j]
+ Wil = W[j + 1]
+
+ var majh = maj(ah, bh, ch)
+ var majl = maj(al, bl, cl)
+
+ var sigma0h = sigma0(ah, al)
+ var sigma0l = sigma0(al, ah)
+ var sigma1h = sigma1(eh, el)
+ var sigma1l = sigma1(el, eh)
+
+ // t1 = h + sigma1 + ch + K[j] + W[j]
+ var Kih = K[j]
+ var Kil = K[j + 1]
+
+ var chh = Ch(eh, fh, gh)
+ var chl = Ch(el, fl, gl)
+
+ var t1l = (hl + sigma1l) | 0
+ var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0
+ t1l = (t1l + chl) | 0
+ t1h = (t1h + chh + getCarry(t1l, chl)) | 0
+ t1l = (t1l + Kil) | 0
+ t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0
+ t1l = (t1l + Wil) | 0
+ t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0
+
+ // t2 = sigma0 + maj
+ var t2l = (sigma0l + majl) | 0
+ var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0
+
+ hh = gh
+ hl = gl
+ gh = fh
+ gl = fl
+ fh = eh
+ fl = el
+ el = (dl + t1l) | 0
+ eh = (dh + t1h + getCarry(el, dl)) | 0
+ dh = ch
+ dl = cl
+ ch = bh
+ cl = bl
+ bh = ah
+ bl = al
+ al = (t1l + t2l) | 0
+ ah = (t1h + t2h + getCarry(al, t1l)) | 0
+ }
+
+ this._al = (this._al + al) | 0
+ this._bl = (this._bl + bl) | 0
+ this._cl = (this._cl + cl) | 0
+ this._dl = (this._dl + dl) | 0
+ this._el = (this._el + el) | 0
+ this._fl = (this._fl + fl) | 0
+ this._gl = (this._gl + gl) | 0
+ this._hl = (this._hl + hl) | 0
+
+ this._ah = (this._ah + ah + getCarry(this._al, al)) | 0
+ this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0
+ this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0
+ this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0
+ this._eh = (this._eh + eh + getCarry(this._el, el)) | 0
+ this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0
+ this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0
+ this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0
+}
+
+Sha512.prototype._hash = function () {
+ var H = new Buffer(64)
+
+ function writeInt64BE (h, l, offset) {
+ H.writeInt32BE(h, offset)
+ H.writeInt32BE(l, offset + 4)
+ }
+
+ writeInt64BE(this._ah, this._al, 0)
+ writeInt64BE(this._bh, this._bl, 8)
+ writeInt64BE(this._ch, this._cl, 16)
+ writeInt64BE(this._dh, this._dl, 24)
+ writeInt64BE(this._eh, this._el, 32)
+ writeInt64BE(this._fh, this._fl, 40)
+ writeInt64BE(this._gh, this._gl, 48)
+ writeInt64BE(this._hh, this._hl, 56)
+
+ return H
+}
+
+module.exports = Sha512
+
+}).call(this,require("buffer").Buffer)
+},{"./hash":174,"buffer":6,"inherits":45}],182:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+module.exports = Stream;
+
+var EE = require('events').EventEmitter;
+var inherits = require('inherits');
+
+inherits(Stream, EE);
+Stream.Readable = require('readable-stream/readable.js');
+Stream.Writable = require('readable-stream/writable.js');
+Stream.Duplex = require('readable-stream/duplex.js');
+Stream.Transform = require('readable-stream/transform.js');
+Stream.PassThrough = require('readable-stream/passthrough.js');
+
+// Backwards-compat with node 0.4.x
+Stream.Stream = Stream;
+
+
+
+// old-style streams. Note that the pipe method (the only relevant
+// part of this class) is overridden in the Readable class.
+
+function Stream() {
+ EE.call(this);
+}
+
+Stream.prototype.pipe = function(dest, options) {
+ var source = this;
+
+ function ondata(chunk) {
+ if (dest.writable) {
+ if (false === dest.write(chunk) && source.pause) {
+ source.pause();
+ }
+ }
+ }
+
+ source.on('data', ondata);
+
+ function ondrain() {
+ if (source.readable && source.resume) {
+ source.resume();
+ }
+ }
+
+ dest.on('drain', ondrain);
+
+ // If the 'end' option is not supplied, dest.end() will be called when
+ // source gets the 'end' or 'close' events. Only dest.end() once.
+ if (!dest._isStdio && (!options || options.end !== false)) {
+ source.on('end', onend);
+ source.on('close', onclose);
+ }
+
+ var didOnEnd = false;
+ function onend() {
+ if (didOnEnd) return;
+ didOnEnd = true;
+
+ dest.end();
+ }
+
+
+ function onclose() {
+ if (didOnEnd) return;
+ didOnEnd = true;
+
+ if (typeof dest.destroy === 'function') dest.destroy();
+ }
+
+ // don't leave dangling pipes when there are errors.
+ function onerror(er) {
+ cleanup();
+ if (EE.listenerCount(this, 'error') === 0) {
+ throw er; // Unhandled stream error in pipe.
+ }
+ }
+
+ source.on('error', onerror);
+ dest.on('error', onerror);
+
+ // remove all the event listeners that were added.
+ function cleanup() {
+ source.removeListener('data', ondata);
+ dest.removeListener('drain', ondrain);
+
+ source.removeListener('end', onend);
+ source.removeListener('close', onclose);
+
+ source.removeListener('error', onerror);
+ dest.removeListener('error', onerror);
+
+ source.removeListener('end', cleanup);
+ source.removeListener('close', cleanup);
+
+ dest.removeListener('close', cleanup);
+ }
+
+ source.on('end', cleanup);
+ source.on('close', cleanup);
+
+ dest.on('close', cleanup);
+
+ dest.emit('pipe', source);
+
+ // Allow for unix-like usage: A.pipe(B).pipe(C)
+ return dest;
+};
+
+},{"events":27,"inherits":45,"readable-stream/duplex.js":155,"readable-stream/passthrough.js":162,"readable-stream/readable.js":163,"readable-stream/transform.js":164,"readable-stream/writable.js":165}],183:[function(require,module,exports){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var Buffer = require('buffer').Buffer;
+
+var isBufferEncoding = Buffer.isEncoding
+ || function(encoding) {
+ switch (encoding && encoding.toLowerCase()) {
+ case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;
+ default: return false;
+ }
+ }
+
+
+function assertEncoding(encoding) {
+ if (encoding && !isBufferEncoding(encoding)) {
+ throw new Error('Unknown encoding: ' + encoding);
+ }
+}
+
+// StringDecoder provides an interface for efficiently splitting a series of
+// buffers into a series of JS strings without breaking apart multi-byte
+// characters. CESU-8 is handled as part of the UTF-8 encoding.
+//
+// @TODO Handling all encodings inside a single object makes it very difficult
+// to reason about this code, so it should be split up in the future.
+// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code
+// points as used by CESU-8.
+var StringDecoder = exports.StringDecoder = function(encoding) {
+ this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
+ assertEncoding(encoding);
+ switch (this.encoding) {
+ case 'utf8':
+ // CESU-8 represents each of Surrogate Pair by 3-bytes
+ this.surrogateSize = 3;
+ break;
+ case 'ucs2':
+ case 'utf16le':
+ // UTF-16 represents each of Surrogate Pair by 2-bytes
+ this.surrogateSize = 2;
+ this.detectIncompleteChar = utf16DetectIncompleteChar;
+ break;
+ case 'base64':
+ // Base-64 stores 3 bytes in 4 chars, and pads the remainder.
+ this.surrogateSize = 3;
+ this.detectIncompleteChar = base64DetectIncompleteChar;
+ break;
+ default:
+ this.write = passThroughWrite;
+ return;
+ }
+
+ // Enough space to store all bytes of a single character. UTF-8 needs 4
+ // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).
+ this.charBuffer = new Buffer(6);
+ // Number of bytes received for the current incomplete multi-byte character.
+ this.charReceived = 0;
+ // Number of bytes expected for the current incomplete multi-byte character.
+ this.charLength = 0;
+};
+
+
+// write decodes the given buffer and returns it as JS string that is
+// guaranteed to not contain any partial multi-byte characters. Any partial
+// character found at the end of the buffer is buffered up, and will be
+// returned when calling write again with the remaining bytes.
+//
+// Note: Converting a Buffer containing an orphan surrogate to a String
+// currently works, but converting a String to a Buffer (via `new Buffer`, or
+// Buffer#write) will replace incomplete surrogates with the unicode
+// replacement character. See https://codereview.chromium.org/121173009/ .
+StringDecoder.prototype.write = function(buffer) {
+ var charStr = '';
+ // if our last write ended with an incomplete multibyte character
+ while (this.charLength) {
+ // determine how many remaining bytes this buffer has to offer for this char
+ var available = (buffer.length >= this.charLength - this.charReceived) ?
+ this.charLength - this.charReceived :
+ buffer.length;
+
+ // add the new bytes to the char buffer
+ buffer.copy(this.charBuffer, this.charReceived, 0, available);
+ this.charReceived += available;
+
+ if (this.charReceived < this.charLength) {
+ // still not enough chars in this buffer? wait for more ...
+ return '';
+ }
+
+ // remove bytes belonging to the current character from the buffer
+ buffer = buffer.slice(available, buffer.length);
+
+ // get the character that was split
+ charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);
+
+ // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
+ var charCode = charStr.charCodeAt(charStr.length - 1);
+ if (charCode >= 0xD800 && charCode <= 0xDBFF) {
+ this.charLength += this.surrogateSize;
+ charStr = '';
+ continue;
+ }
+ this.charReceived = this.charLength = 0;
+
+ // if there are no more bytes in this buffer, just emit our char
+ if (buffer.length === 0) {
+ return charStr;
+ }
+ break;
+ }
+
+ // determine and set charLength / charReceived
+ this.detectIncompleteChar(buffer);
+
+ var end = buffer.length;
+ if (this.charLength) {
+ // buffer the incomplete character bytes we got
+ buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);
+ end -= this.charReceived;
+ }
+
+ charStr += buffer.toString(this.encoding, 0, end);
+
+ var end = charStr.length - 1;
+ var charCode = charStr.charCodeAt(end);
+ // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character
+ if (charCode >= 0xD800 && charCode <= 0xDBFF) {
+ var size = this.surrogateSize;
+ this.charLength += size;
+ this.charReceived += size;
+ this.charBuffer.copy(this.charBuffer, size, 0, size);
+ buffer.copy(this.charBuffer, 0, 0, size);
+ return charStr.substring(0, end);
+ }
+
+ // or just emit the charStr
+ return charStr;
+};
+
+// detectIncompleteChar determines if there is an incomplete UTF-8 character at
+// the end of the given buffer. If so, it sets this.charLength to the byte
+// length that character, and sets this.charReceived to the number of bytes
+// that are available for this character.
+StringDecoder.prototype.detectIncompleteChar = function(buffer) {
+ // determine how many bytes we have to check at the end of this buffer
+ var i = (buffer.length >= 3) ? 3 : buffer.length;
+
+ // Figure out if one of the last i bytes of our buffer announces an
+ // incomplete char.
+ for (; i > 0; i--) {
+ var c = buffer[buffer.length - i];
+
+ // See http://en.wikipedia.org/wiki/UTF-8#Description
+
+ // 110XXXXX
+ if (i == 1 && c >> 5 == 0x06) {
+ this.charLength = 2;
+ break;
+ }
+
+ // 1110XXXX
+ if (i <= 2 && c >> 4 == 0x0E) {
+ this.charLength = 3;
+ break;
+ }
+
+ // 11110XXX
+ if (i <= 3 && c >> 3 == 0x1E) {
+ this.charLength = 4;
+ break;
+ }
+ }
+ this.charReceived = i;
+};
+
+StringDecoder.prototype.end = function(buffer) {
+ var res = '';
+ if (buffer && buffer.length)
+ res = this.write(buffer);
+
+ if (this.charReceived) {
+ var cr = this.charReceived;
+ var buf = this.charBuffer;
+ var enc = this.encoding;
+ res += buf.slice(0, cr).toString(enc);
+ }
+
+ return res;
+};
+
+function passThroughWrite(buffer) {
+ return buffer.toString(this.encoding);
+}
+
+function utf16DetectIncompleteChar(buffer) {
+ this.charReceived = buffer.length % 2;
+ this.charLength = this.charReceived ? 2 : 0;
+}
+
+function base64DetectIncompleteChar(buffer) {
+ this.charReceived = buffer.length % 3;
+ this.charLength = this.charReceived ? 3 : 0;
+}
+
+},{"buffer":6}],184:[function(require,module,exports){
+// based on https://github.com/ESTOS/strophe.jingle/
+// adds wildemitter support
+var util = require('util');
+var adapter = require('webrtc-adapter'); // jshint ignore:line
+var WildEmitter = require('wildemitter');
+
+function dumpSDP(description) {
+ return {
+ type: description.type,
+ sdp: description.sdp
+ };
+}
+
+function dumpStream(stream) {
+ var info = {
+ label: stream.id,
+ };
+ if (stream.getAudioTracks().length) {
+ info.audio = stream.getAudioTracks().map(function (track) {
+ return track.id;
+ });
+ }
+ if (stream.getVideoTracks().length) {
+ info.video = stream.getVideoTracks().map(function (track) {
+ return track.id;
+ });
+ }
+ return info;
+}
+
+function TraceablePeerConnection(config, constraints) {
+ var self = this;
+ WildEmitter.call(this);
+
+ this.peerconnection = new window.RTCPeerConnection(config, constraints);
+
+ this.trace = function (what, info) {
+ self.emit('PeerConnectionTrace', {
+ time: new Date(),
+ type: what,
+ value: info || ""
+ });
+ };
+
+ this.onicecandidate = null;
+ this.peerconnection.onicecandidate = function (event) {
+ self.trace('onicecandidate', event.candidate);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ };
+ this.onaddstream = null;
+ this.peerconnection.onaddstream = function (event) {
+ self.trace('onaddstream', dumpStream(event.stream));
+ if (self.onaddstream !== null) {
+ self.onaddstream(event);
+ }
+ };
+ this.onremovestream = null;
+ this.peerconnection.onremovestream = function (event) {
+ self.trace('onremovestream', dumpStream(event.stream));
+ if (self.onremovestream !== null) {
+ self.onremovestream(event);
+ }
+ };
+ this.onsignalingstatechange = null;
+ this.peerconnection.onsignalingstatechange = function (event) {
+ self.trace('onsignalingstatechange', self.signalingState);
+ if (self.onsignalingstatechange !== null) {
+ self.onsignalingstatechange(event);
+ }
+ };
+ this.oniceconnectionstatechange = null;
+ this.peerconnection.oniceconnectionstatechange = function (event) {
+ self.trace('oniceconnectionstatechange', self.iceConnectionState);
+ if (self.oniceconnectionstatechange !== null) {
+ self.oniceconnectionstatechange(event);
+ }
+ };
+ this.onnegotiationneeded = null;
+ this.peerconnection.onnegotiationneeded = function (event) {
+ self.trace('onnegotiationneeded');
+ if (self.onnegotiationneeded !== null) {
+ self.onnegotiationneeded(event);
+ }
+ };
+ self.ondatachannel = null;
+ this.peerconnection.ondatachannel = function (event) {
+ self.trace('ondatachannel', event);
+ if (self.ondatachannel !== null) {
+ self.ondatachannel(event);
+ }
+ };
+ this.getLocalStreams = this.peerconnection.getLocalStreams.bind(this.peerconnection);
+ this.getRemoteStreams = this.peerconnection.getRemoteStreams.bind(this.peerconnection);
+}
+
+util.inherits(TraceablePeerConnection, WildEmitter);
+
+['signalingState', 'iceConnectionState', 'localDescription', 'remoteDescription'].forEach(function (prop) {
+ Object.defineProperty(TraceablePeerConnection.prototype, prop, {
+ get: function () {
+ return this.peerconnection[prop];
+ }
+ });
+});
+
+TraceablePeerConnection.prototype.addStream = function (stream) {
+ this.trace('addStream', dumpStream(stream));
+ this.peerconnection.addStream(stream);
+};
+
+TraceablePeerConnection.prototype.removeStream = function (stream) {
+ this.trace('removeStream', dumpStream(stream));
+ this.peerconnection.removeStream(stream);
+};
+
+TraceablePeerConnection.prototype.createDataChannel = function (label, opts) {
+ this.trace('createDataChannel', label, opts);
+ return this.peerconnection.createDataChannel(label, opts);
+};
+
+TraceablePeerConnection.prototype.setLocalDescription = function (description, successCallback, failureCallback) {
+ var self = this;
+ this.trace('setLocalDescription', dumpSDP(description));
+ return this.peerconnection.setLocalDescription(
+ description
+ ).then(
+ function () {
+ self.trace('setLocalDescriptionOnSuccess');
+ if (successCallback) successCallback();
+ },
+ function (err) {
+ self.trace('setLocalDescriptionOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.setRemoteDescription = function (description, successCallback, failureCallback) {
+ var self = this;
+ this.trace('setRemoteDescription', dumpSDP(description));
+ return this.peerconnection.setRemoteDescription(
+ description
+ ).then(
+ function () {
+ self.trace('setRemoteDescriptionOnSuccess');
+ if (successCallback) successCallback();
+ },
+ function (err) {
+ self.trace('setRemoteDescriptionOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.close = function () {
+ this.trace('stop');
+ if (this.peerconnection.signalingState != 'closed') {
+ this.peerconnection.close();
+ }
+};
+
+TraceablePeerConnection.prototype.createOffer = function (successCallback, failureCallback, constraints) {
+ var self = this;
+ this.trace('createOffer', constraints);
+ return this.peerconnection.createOffer(
+ constraints
+ ).then(
+ function (offer) {
+ self.trace('createOfferOnSuccess', dumpSDP(offer));
+ if (successCallback) successCallback(offer);
+ },
+ function (err) {
+ self.trace('createOfferOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.createAnswer = function (successCallback, failureCallback, constraints) {
+ var self = this;
+ this.trace('createAnswer', constraints);
+ return this.peerconnection.createAnswer(
+ constraints
+ ).then(
+ function (answer) {
+ self.trace('createAnswerOnSuccess', dumpSDP(answer));
+ if (successCallback) successCallback(answer);
+ },
+ function (err) {
+ self.trace('createAnswerOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.addIceCandidate = function (candidate, successCallback, failureCallback) {
+ var self = this;
+ this.trace('addIceCandidate', candidate);
+ return this.peerconnection.addIceCandidate(
+ candidate
+ ).then(
+ function () {
+ //self.trace('addIceCandidateOnSuccess');
+ if (successCallback) successCallback();
+ },
+ function (err) {
+ self.trace('addIceCandidateOnFailure', err);
+ if (failureCallback) failureCallback(err);
+ }
+ );
+};
+
+TraceablePeerConnection.prototype.getStats = function () {
+ this.peerconnection.getStats.apply(this.peerconnection, arguments);
+};
+
+module.exports = TraceablePeerConnection;
+
+},{"util":197,"webrtc-adapter":185,"wildemitter":211}],185:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./chrome/chrome_shim":186,"./edge/edge_shim":188,"./firefox/firefox_shim":190,"./safari/safari_shim":192,"./utils":193,"dup":33}],186:[function(require,module,exports){
+arguments[4][34][0].apply(exports,arguments)
+},{"../utils.js":193,"./getusermedia":187,"dup":34}],187:[function(require,module,exports){
+arguments[4][35][0].apply(exports,arguments)
+},{"../utils.js":193,"dup":35}],188:[function(require,module,exports){
+arguments[4][36][0].apply(exports,arguments)
+},{"../utils":193,"./getusermedia":189,"dup":36,"sdp":173}],189:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"dup":37}],190:[function(require,module,exports){
+arguments[4][38][0].apply(exports,arguments)
+},{"../utils":193,"./getusermedia":191,"dup":38}],191:[function(require,module,exports){
+arguments[4][39][0].apply(exports,arguments)
+},{"../utils":193,"dup":39}],192:[function(require,module,exports){
+arguments[4][40][0].apply(exports,arguments)
+},{"dup":40}],193:[function(require,module,exports){
+arguments[4][41][0].apply(exports,arguments)
+},{"dup":41}],194:[function(require,module,exports){
+(function (global){
/**
- * DOM parser interface
+ * Module exports.
*/
-exports.parse = parse.parse
-exports.Parser = parse.Parser
+
+module.exports = deprecate;
/**
- * SAX parser interface
+ * Mark that a method should not be used.
+ * Returns a modified function which warns once by default.
+ *
+ * If `localStorage.noDeprecation = true` is set, then it is a no-op.
+ *
+ * If `localStorage.throwDeprecation = true` is set, then deprecated functions
+ * will throw an Error when invoked.
+ *
+ * If `localStorage.traceDeprecation = true` is set, then deprecated functions
+ * will invoke `console.trace()` instead of `console.error()`.
+ *
+ * @param {Function} fn - the function to deprecate
+ * @param {String} msg - the string to print to the console when `fn` is invoked
+ * @returns {Function} a new "deprecated" version of `fn`
+ * @api public
*/
-exports.availableSaxParsers = parse.availableSaxParsers
-exports.bestSaxParser = parse.bestSaxParser
-},{"./dom-element":243,"./element":244,"./parse":247}],247:[function(require,module,exports){
-'use strict';
+function deprecate (fn, msg) {
+ if (config('noDeprecation')) {
+ return fn;
+ }
-var events = require('events')
- , util = require('util')
- , DOMElement = require('./dom-element')
+ var warned = false;
+ function deprecated() {
+ if (!warned) {
+ if (config('throwDeprecation')) {
+ throw new Error(msg);
+ } else if (config('traceDeprecation')) {
+ console.trace(msg);
+ } else {
+ console.warn(msg);
+ }
+ warned = true;
+ }
+ return fn.apply(this, arguments);
+ }
+ return deprecated;
+}
-exports.availableSaxParsers = []
-exports.bestSaxParser = null
+/**
+ * Checks `localStorage` for boolean values for the given `name`.
+ *
+ * @param {String} name
+ * @returns {Boolean}
+ * @api private
+ */
-var saxParsers = [
- './sax/sax_expat.js',
- './sax/sax_ltx.js',
- /*'./sax_easysax.js', './sax_node-xml.js',*/
- './sax/sax_saxjs.js'
-]
+function config (name) {
+ // accessing global.localStorage can trigger a DOMException in sandboxed iframes
+ try {
+ if (!global.localStorage) return false;
+ } catch (_) {
+ return false;
+ }
+ var val = global.localStorage[name];
+ if (null == val) return false;
+ return String(val).toLowerCase() === 'true';
+}
-saxParsers.forEach(function(modName) {
- var mod
- try {
- mod = require(modName)
- } catch (e) {
- /* Silently missing libraries drop for debug:
- console.error(e.stack || e)
- */
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],195:[function(require,module,exports){
+arguments[4][45][0].apply(exports,arguments)
+},{"dup":45}],196:[function(require,module,exports){
+module.exports = function isBuffer(arg) {
+ return arg && typeof arg === 'object'
+ && typeof arg.copy === 'function'
+ && typeof arg.fill === 'function'
+ && typeof arg.readUInt8 === 'function';
+}
+},{}],197:[function(require,module,exports){
+(function (process,global){
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+var formatRegExp = /%[sdj%]/g;
+exports.format = function(f) {
+ if (!isString(f)) {
+ var objects = [];
+ for (var i = 0; i < arguments.length; i++) {
+ objects.push(inspect(arguments[i]));
}
- if (mod) {
- exports.availableSaxParsers.push(mod)
- if (!exports.bestSaxParser) {
- exports.bestSaxParser = mod
+ return objects.join(' ');
+ }
+
+ var i = 1;
+ var args = arguments;
+ var len = args.length;
+ var str = String(f).replace(formatRegExp, function(x) {
+ if (x === '%%') return '%';
+ if (i >= len) return x;
+ switch (x) {
+ case '%s': return String(args[i++]);
+ case '%d': return Number(args[i++]);
+ case '%j':
+ try {
+ return JSON.stringify(args[i++]);
+ } catch (_) {
+ return '[Circular]';
}
+ default:
+ return x;
}
-})
+ });
+ for (var x = args[i]; i < len; x = args[++i]) {
+ if (isNull(x) || !isObject(x)) {
+ str += ' ' + x;
+ } else {
+ str += ' ' + inspect(x);
+ }
+ }
+ return str;
+};
+
+
+// Mark that a method should not be used.
+// Returns a modified function which warns once by default.
+// If --no-deprecation is set, then it is a no-op.
+exports.deprecate = function(fn, msg) {
+ // Allow for deprecating things in the process of starting up.
+ if (isUndefined(global.process)) {
+ return function() {
+ return exports.deprecate(fn, msg).apply(this, arguments);
+ };
+ }
+
+ if (process.noDeprecation === true) {
+ return fn;
+ }
+
+ var warned = false;
+ function deprecated() {
+ if (!warned) {
+ if (process.throwDeprecation) {
+ throw new Error(msg);
+ } else if (process.traceDeprecation) {
+ console.trace(msg);
+ } else {
+ console.error(msg);
+ }
+ warned = true;
+ }
+ return fn.apply(this, arguments);
+ }
+
+ return deprecated;
+};
+
+
+var debugs = {};
+var debugEnviron;
+exports.debuglog = function(set) {
+ if (isUndefined(debugEnviron))
+ debugEnviron = process.env.NODE_DEBUG || '';
+ set = set.toUpperCase();
+ if (!debugs[set]) {
+ if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
+ var pid = process.pid;
+ debugs[set] = function() {
+ var msg = exports.format.apply(exports, arguments);
+ console.error('%s %d: %s', set, pid, msg);
+ };
+ } else {
+ debugs[set] = function() {};
+ }
+ }
+ return debugs[set];
+};
+
+
+/**
+ * Echos the value of a value. Trys to print the value out
+ * in the best way possible given the different types.
+ *
+ * @param {Object} obj The object to print out.
+ * @param {Object} opts Optional options object that alters the output.
+ */
+/* legacy: obj, showHidden, depth, colors*/
+function inspect(obj, opts) {
+ // default options
+ var ctx = {
+ seen: [],
+ stylize: stylizeNoColor
+ };
+ // legacy...
+ if (arguments.length >= 3) ctx.depth = arguments[2];
+ if (arguments.length >= 4) ctx.colors = arguments[3];
+ if (isBoolean(opts)) {
+ // legacy...
+ ctx.showHidden = opts;
+ } else if (opts) {
+ // got an "options" object
+ exports._extend(ctx, opts);
+ }
+ // set default options
+ if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
+ if (isUndefined(ctx.depth)) ctx.depth = 2;
+ if (isUndefined(ctx.colors)) ctx.colors = false;
+ if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
+ if (ctx.colors) ctx.stylize = stylizeWithColor;
+ return formatValue(ctx, obj, ctx.depth);
+}
+exports.inspect = inspect;
+
+
+// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
+inspect.colors = {
+ 'bold' : [1, 22],
+ 'italic' : [3, 23],
+ 'underline' : [4, 24],
+ 'inverse' : [7, 27],
+ 'white' : [37, 39],
+ 'grey' : [90, 39],
+ 'black' : [30, 39],
+ 'blue' : [34, 39],
+ 'cyan' : [36, 39],
+ 'green' : [32, 39],
+ 'magenta' : [35, 39],
+ 'red' : [31, 39],
+ 'yellow' : [33, 39]
+};
+
+// Don't use 'blue' not visible on cmd.exe
+inspect.styles = {
+ 'special': 'cyan',
+ 'number': 'yellow',
+ 'boolean': 'yellow',
+ 'undefined': 'grey',
+ 'null': 'bold',
+ 'string': 'green',
+ 'date': 'magenta',
+ // "name": intentionally not styling
+ 'regexp': 'red'
+};
+
+
+function stylizeWithColor(str, styleType) {
+ var style = inspect.styles[styleType];
+
+ if (style) {
+ return '\u001b[' + inspect.colors[style][0] + 'm' + str +
+ '\u001b[' + inspect.colors[style][1] + 'm';
+ } else {
+ return str;
+ }
+}
+
+
+function stylizeNoColor(str, styleType) {
+ return str;
+}
+
+
+function arrayToHash(array) {
+ var hash = {};
+
+ array.forEach(function(val, idx) {
+ hash[val] = true;
+ });
+
+ return hash;
+}
+
+
+function formatValue(ctx, value, recurseTimes) {
+ // Provide a hook for user-specified inspect functions.
+ // Check that value is an object with an inspect function on it
+ if (ctx.customInspect &&
+ value &&
+ isFunction(value.inspect) &&
+ // Filter out the util module, it's inspect function is special
+ value.inspect !== exports.inspect &&
+ // Also filter out any prototype objects using the circular check.
+ !(value.constructor && value.constructor.prototype === value)) {
+ var ret = value.inspect(recurseTimes, ctx);
+ if (!isString(ret)) {
+ ret = formatValue(ctx, ret, recurseTimes);
+ }
+ return ret;
+ }
+
+ // Primitive types cannot have properties
+ var primitive = formatPrimitive(ctx, value);
+ if (primitive) {
+ return primitive;
+ }
+
+ // Look up the keys of the object.
+ var keys = Object.keys(value);
+ var visibleKeys = arrayToHash(keys);
+
+ if (ctx.showHidden) {
+ keys = Object.getOwnPropertyNames(value);
+ }
+
+ // IE doesn't make error fields non-enumerable
+ // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
+ if (isError(value)
+ && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
+ return formatError(value);
+ }
+
+ // Some type of object without properties can be shortcutted.
+ if (keys.length === 0) {
+ if (isFunction(value)) {
+ var name = value.name ? ': ' + value.name : '';
+ return ctx.stylize('[Function' + name + ']', 'special');
+ }
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
+ }
+ if (isDate(value)) {
+ return ctx.stylize(Date.prototype.toString.call(value), 'date');
+ }
+ if (isError(value)) {
+ return formatError(value);
+ }
+ }
+
+ var base = '', array = false, braces = ['{', '}'];
+
+ // Make Array say that they are Array
+ if (isArray(value)) {
+ array = true;
+ braces = ['[', ']'];
+ }
+
+ // Make functions say that they are functions
+ if (isFunction(value)) {
+ var n = value.name ? ': ' + value.name : '';
+ base = ' [Function' + n + ']';
+ }
+
+ // Make RegExps say that they are RegExps
+ if (isRegExp(value)) {
+ base = ' ' + RegExp.prototype.toString.call(value);
+ }
+
+ // Make dates with properties first say the date
+ if (isDate(value)) {
+ base = ' ' + Date.prototype.toUTCString.call(value);
+ }
+
+ // Make error with message first say the error
+ if (isError(value)) {
+ base = ' ' + formatError(value);
+ }
+
+ if (keys.length === 0 && (!array || value.length == 0)) {
+ return braces[0] + base + braces[1];
+ }
+
+ if (recurseTimes < 0) {
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
+ } else {
+ return ctx.stylize('[Object]', 'special');
+ }
+ }
+
+ ctx.seen.push(value);
+
+ var output;
+ if (array) {
+ output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
+ } else {
+ output = keys.map(function(key) {
+ return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
+ });
+ }
+
+ ctx.seen.pop();
+
+ return reduceToSingleString(output, base, braces);
+}
+
+
+function formatPrimitive(ctx, value) {
+ if (isUndefined(value))
+ return ctx.stylize('undefined', 'undefined');
+ if (isString(value)) {
+ var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
+ .replace(/'/g, "\\'")
+ .replace(/\\"/g, '"') + '\'';
+ return ctx.stylize(simple, 'string');
+ }
+ if (isNumber(value))
+ return ctx.stylize('' + value, 'number');
+ if (isBoolean(value))
+ return ctx.stylize('' + value, 'boolean');
+ // For some reason typeof null is "object", so special case here.
+ if (isNull(value))
+ return ctx.stylize('null', 'null');
+}
+
+
+function formatError(value) {
+ return '[' + Error.prototype.toString.call(value) + ']';
+}
-exports.Parser = function(saxParser) {
- events.EventEmitter.call(this)
- var self = this
- var ParserMod = saxParser || exports.bestSaxParser
- if (!ParserMod) {
- throw new Error('No SAX parser available')
+function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
+ var output = [];
+ for (var i = 0, l = value.length; i < l; ++i) {
+ if (hasOwnProperty(value, String(i))) {
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
+ String(i), true));
+ } else {
+ output.push('');
+ }
+ }
+ keys.forEach(function(key) {
+ if (!key.match(/^\d+$/)) {
+ output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
+ key, true));
}
- this.parser = new ParserMod()
+ });
+ return output;
+}
+
- var el
- this.parser.addListener('startElement', function(name, attrs) {
- var child = new DOMElement(name, attrs)
- if (!el) {
- el = child
+function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
+ var name, str, desc;
+ desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
+ if (desc.get) {
+ if (desc.set) {
+ str = ctx.stylize('[Getter/Setter]', 'special');
+ } else {
+ str = ctx.stylize('[Getter]', 'special');
+ }
+ } else {
+ if (desc.set) {
+ str = ctx.stylize('[Setter]', 'special');
+ }
+ }
+ if (!hasOwnProperty(visibleKeys, key)) {
+ name = '[' + key + ']';
+ }
+ if (!str) {
+ if (ctx.seen.indexOf(desc.value) < 0) {
+ if (isNull(recurseTimes)) {
+ str = formatValue(ctx, desc.value, null);
+ } else {
+ str = formatValue(ctx, desc.value, recurseTimes - 1);
+ }
+ if (str.indexOf('\n') > -1) {
+ if (array) {
+ str = str.split('\n').map(function(line) {
+ return ' ' + line;
+ }).join('\n').substr(2);
} else {
- el = el.cnode(child)
+ str = '\n' + str.split('\n').map(function(line) {
+ return ' ' + line;
+ }).join('\n');
}
- })
- this.parser.addListener('endElement', function(name) {
- /* jshint -W035 */
- if (!el) {
- /* Err */
- } else if (name === el.name) {
- if (el.parent) {
- el = el.parent
- } else if (!self.tree) {
- self.tree = el
- el = undefined
+ }
+ } else {
+ str = ctx.stylize('[Circular]', 'special');
+ }
+ }
+ if (isUndefined(name)) {
+ if (array && key.match(/^\d+$/)) {
+ return str;
+ }
+ name = JSON.stringify('' + key);
+ if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
+ name = name.substr(1, name.length - 2);
+ name = ctx.stylize(name, 'name');
+ } else {
+ name = name.replace(/'/g, "\\'")
+ .replace(/\\"/g, '"')
+ .replace(/(^"|"$)/g, "'");
+ name = ctx.stylize(name, 'string');
+ }
+ }
+
+ return name + ': ' + str;
+}
+
+
+function reduceToSingleString(output, base, braces) {
+ var numLinesEst = 0;
+ var length = output.reduce(function(prev, cur) {
+ numLinesEst++;
+ if (cur.indexOf('\n') >= 0) numLinesEst++;
+ return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
+ }, 0);
+
+ if (length > 60) {
+ return braces[0] +
+ (base === '' ? '' : base + '\n ') +
+ ' ' +
+ output.join(',\n ') +
+ ' ' +
+ braces[1];
+ }
+
+ return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
+}
+
+
+// NOTE: These type checking functions intentionally don't use `instanceof`
+// because it is fragile and can be easily faked with `Object.create()`.
+function isArray(ar) {
+ return Array.isArray(ar);
+}
+exports.isArray = isArray;
+
+function isBoolean(arg) {
+ return typeof arg === 'boolean';
+}
+exports.isBoolean = isBoolean;
+
+function isNull(arg) {
+ return arg === null;
+}
+exports.isNull = isNull;
+
+function isNullOrUndefined(arg) {
+ return arg == null;
+}
+exports.isNullOrUndefined = isNullOrUndefined;
+
+function isNumber(arg) {
+ return typeof arg === 'number';
+}
+exports.isNumber = isNumber;
+
+function isString(arg) {
+ return typeof arg === 'string';
+}
+exports.isString = isString;
+
+function isSymbol(arg) {
+ return typeof arg === 'symbol';
+}
+exports.isSymbol = isSymbol;
+
+function isUndefined(arg) {
+ return arg === void 0;
+}
+exports.isUndefined = isUndefined;
+
+function isRegExp(re) {
+ return isObject(re) && objectToString(re) === '[object RegExp]';
+}
+exports.isRegExp = isRegExp;
+
+function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
+}
+exports.isObject = isObject;
+
+function isDate(d) {
+ return isObject(d) && objectToString(d) === '[object Date]';
+}
+exports.isDate = isDate;
+
+function isError(e) {
+ return isObject(e) &&
+ (objectToString(e) === '[object Error]' || e instanceof Error);
+}
+exports.isError = isError;
+
+function isFunction(arg) {
+ return typeof arg === 'function';
+}
+exports.isFunction = isFunction;
+
+function isPrimitive(arg) {
+ return arg === null ||
+ typeof arg === 'boolean' ||
+ typeof arg === 'number' ||
+ typeof arg === 'string' ||
+ typeof arg === 'symbol' || // ES6 symbol
+ typeof arg === 'undefined';
+}
+exports.isPrimitive = isPrimitive;
+
+exports.isBuffer = require('./support/isBuffer');
+
+function objectToString(o) {
+ return Object.prototype.toString.call(o);
+}
+
+
+function pad(n) {
+ return n < 10 ? '0' + n.toString(10) : n.toString(10);
+}
+
+
+var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
+ 'Oct', 'Nov', 'Dec'];
+
+// 26 Feb 16:19:34
+function timestamp() {
+ var d = new Date();
+ var time = [pad(d.getHours()),
+ pad(d.getMinutes()),
+ pad(d.getSeconds())].join(':');
+ return [d.getDate(), months[d.getMonth()], time].join(' ');
+}
+
+
+// log is just a thin wrapper to console.log that prepends a timestamp
+exports.log = function() {
+ console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
+};
+
+
+/**
+ * Inherit the prototype methods from one constructor into another.
+ *
+ * The Function.prototype.inherits from lang.js rewritten as a standalone
+ * function (not on Function.prototype). NOTE: If this file is to be loaded
+ * during bootstrapping this function needs to be rewritten using some native
+ * functions as prototype setup using normal JavaScript does not work as
+ * expected during bootstrapping (see mirror.js in r114903).
+ *
+ * @param {function} ctor Constructor function which needs to inherit the
+ * prototype.
+ * @param {function} superCtor Constructor function to inherit prototype from.
+ */
+exports.inherits = require('inherits');
+
+exports._extend = function(origin, add) {
+ // Don't do anything if add isn't an object
+ if (!add || !isObject(add)) return origin;
+
+ var keys = Object.keys(add);
+ var i = keys.length;
+ while (i--) {
+ origin[keys[i]] = add[keys[i]];
+ }
+ return origin;
+};
+
+function hasOwnProperty(obj, prop) {
+ return Object.prototype.hasOwnProperty.call(obj, prop);
+}
+
+}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"./support/isBuffer":196,"_process":153,"inherits":195}],198:[function(require,module,exports){
+(function (global){
+
+var rng;
+
+var crypto = global.crypto || global.msCrypto; // for IE 11
+if (crypto && crypto.getRandomValues) {
+ // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto
+ // Moderately fast, high quality
+ var _rnds8 = new Uint8Array(16);
+ rng = function whatwgRNG() {
+ crypto.getRandomValues(_rnds8);
+ return _rnds8;
+ };
+}
+
+if (!rng) {
+ // Math.random()-based (RNG)
+ //
+ // If all else fails, use Math.random(). It's fast, but is of unspecified
+ // quality.
+ var _rnds = new Array(16);
+ rng = function() {
+ for (var i = 0, r; i < 16; i++) {
+ if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
+ _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
+ }
+
+ return _rnds;
+ };
+}
+
+module.exports = rng;
+
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],199:[function(require,module,exports){
+// uuid.js
+//
+// Copyright (c) 2010-2012 Robert Kieffer
+// MIT License - http://opensource.org/licenses/mit-license.php
+
+// Unique ID creation requires a high quality random # generator. We feature
+// detect to determine the best RNG source, normalizing to a function that
+// returns 128-bits of randomness, since that's what's usually required
+var _rng = require('./rng');
+
+// Maps for number <-> hex string conversion
+var _byteToHex = [];
+var _hexToByte = {};
+for (var i = 0; i < 256; i++) {
+ _byteToHex[i] = (i + 0x100).toString(16).substr(1);
+ _hexToByte[_byteToHex[i]] = i;
+}
+
+// **`parse()` - Parse a UUID into it's component bytes**
+function parse(s, buf, offset) {
+ var i = (buf && offset) || 0, ii = 0;
+
+ buf = buf || [];
+ s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {
+ if (ii < 16) { // Don't overflow!
+ buf[i + ii++] = _hexToByte[oct];
+ }
+ });
+
+ // Zero out remaining bytes if string was short
+ while (ii < 16) {
+ buf[i + ii++] = 0;
+ }
+
+ return buf;
+}
+
+// **`unparse()` - Convert UUID byte array (ala parse()) into a string**
+function unparse(buf, offset) {
+ var i = offset || 0, bth = _byteToHex;
+ return bth[buf[i++]] + bth[buf[i++]] +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] + '-' +
+ bth[buf[i++]] + bth[buf[i++]] +
+ bth[buf[i++]] + bth[buf[i++]] +
+ bth[buf[i++]] + bth[buf[i++]];
+}
+
+// **`v1()` - Generate time-based UUID**
+//
+// Inspired by https://github.com/LiosK/UUID.js
+// and http://docs.python.org/library/uuid.html
+
+// random #'s we need to init node and clockseq
+var _seedBytes = _rng();
+
+// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
+var _nodeId = [
+ _seedBytes[0] | 0x01,
+ _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
+];
+
+// Per 4.2.2, randomize (14 bit) clockseq
+var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
+
+// Previous uuid creation time
+var _lastMSecs = 0, _lastNSecs = 0;
+
+// See https://github.com/broofa/node-uuid for API details
+function v1(options, buf, offset) {
+ var i = buf && offset || 0;
+ var b = buf || [];
+
+ options = options || {};
+
+ var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+
+ // UUID timestamps are 100 nano-second units since the Gregorian epoch,
+ // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
+ // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
+ // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
+ var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();
+
+ // Per 4.2.1.2, use count of uuid's generated during the current clock
+ // cycle to simulate higher resolution clock
+ var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;
+
+ // Time since last uuid creation (in msecs)
+ var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;
+
+ // Per 4.2.1.2, Bump clockseq on clock regression
+ if (dt < 0 && options.clockseq === undefined) {
+ clockseq = clockseq + 1 & 0x3fff;
+ }
+
+ // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
+ // time interval
+ if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
+ nsecs = 0;
+ }
+
+ // Per 4.2.1.2 Throw error if too many uuids are requested
+ if (nsecs >= 10000) {
+ throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
+ }
+
+ _lastMSecs = msecs;
+ _lastNSecs = nsecs;
+ _clockseq = clockseq;
+
+ // Per 4.1.4 - Convert from unix epoch to Gregorian epoch
+ msecs += 12219292800000;
+
+ // `time_low`
+ var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
+ b[i++] = tl >>> 24 & 0xff;
+ b[i++] = tl >>> 16 & 0xff;
+ b[i++] = tl >>> 8 & 0xff;
+ b[i++] = tl & 0xff;
+
+ // `time_mid`
+ var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;
+ b[i++] = tmh >>> 8 & 0xff;
+ b[i++] = tmh & 0xff;
+
+ // `time_high_and_version`
+ b[i++] = tmh >>> 24 & 0xf | 0x10; // include version
+ b[i++] = tmh >>> 16 & 0xff;
+
+ // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
+ b[i++] = clockseq >>> 8 | 0x80;
+
+ // `clock_seq_low`
+ b[i++] = clockseq & 0xff;
+
+ // `node`
+ var node = options.node || _nodeId;
+ for (var n = 0; n < 6; n++) {
+ b[i + n] = node[n];
+ }
+
+ return buf ? buf : unparse(b);
+}
+
+// **`v4()` - Generate random UUID**
+
+// See https://github.com/broofa/node-uuid for API details
+function v4(options, buf, offset) {
+ // Deprecated - 'format' argument, as supported in v1.2
+ var i = buf && offset || 0;
+
+ if (typeof(options) == 'string') {
+ buf = options == 'binary' ? new Array(16) : null;
+ options = null;
+ }
+ options = options || {};
+
+ var rnds = options.random || (options.rng || _rng)();
+
+ // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+ rnds[6] = (rnds[6] & 0x0f) | 0x40;
+ rnds[8] = (rnds[8] & 0x3f) | 0x80;
+
+ // Copy bytes to buffer, if provided
+ if (buf) {
+ for (var ii = 0; ii < 16; ii++) {
+ buf[i + ii] = rnds[ii];
+ }
+ }
+
+ return buf || unparse(rnds);
+}
+
+// Export public API
+var uuid = v4;
+uuid.v1 = v1;
+uuid.v4 = v4;
+uuid.parse = parse;
+uuid.unparse = unparse;
+
+module.exports = uuid;
+
+},{"./rng":198}],200:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+
+/* More information about these options at jshint.com/docs/options */
+/* jshint browser: true, camelcase: true, curly: true, devel: true,
+ eqeqeq: true, forin: false, globalstrict: true, node: true,
+ quotmark: single, undef: true, unused: strict */
+/* global mozRTCIceCandidate, mozRTCPeerConnection, Promise,
+mozRTCSessionDescription, webkitRTCPeerConnection, MediaStreamTrack,
+MediaStream, RTCIceGatherer, RTCIceTransport, RTCDtlsTransport,
+RTCRtpSender, RTCRtpReceiver*/
+/* exported trace,requestUserMedia */
+
+'use strict';
+
+var getUserMedia = null;
+var attachMediaStream = null;
+var reattachMediaStream = null;
+var webrtcDetectedBrowser = null;
+var webrtcDetectedVersion = null;
+var webrtcMinimumVersion = null;
+var webrtcUtils = {
+ log: function() {
+ // suppress console.log output when being included as a module.
+ if (typeof module !== 'undefined' ||
+ typeof require === 'function' && typeof define === 'function') {
+ return;
+ }
+ console.log.apply(console, arguments);
+ },
+ extractVersion: function(uastring, expr, pos) {
+ var match = uastring.match(expr);
+ return match && match.length >= pos && parseInt(match[pos], 10);
+ }
+};
+
+function trace(text) {
+ // This function is used for logging.
+ if (text[text.length - 1] === '\n') {
+ text = text.substring(0, text.length - 1);
+ }
+ if (window.performance) {
+ var now = (window.performance.now() / 1000).toFixed(3);
+ webrtcUtils.log(now + ': ' + text);
+ } else {
+ webrtcUtils.log(text);
+ }
+}
+
+if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ // If prefixed srcObject property exists, return it.
+ // Otherwise use the shimmed property, _srcObject
+ return 'mozSrcObject' in this ? this.mozSrcObject : this._srcObject;
+ },
+ set: function(stream) {
+ if ('mozSrcObject' in this) {
+ this.mozSrcObject = stream;
+ } else {
+ // Use _srcObject as a private property for this shim
+ this._srcObject = stream;
+ // TODO: revokeObjectUrl(this.src) when !stream to release resources?
+ this.src = URL.createObjectURL(stream);
+ }
+ }
+ });
+ }
+ // Proxy existing globals
+ getUserMedia = window.navigator && window.navigator.getUserMedia;
+}
+
+// Attach a media stream to an element.
+attachMediaStream = function(element, stream) {
+ element.srcObject = stream;
+};
+
+reattachMediaStream = function(to, from) {
+ to.srcObject = from.srcObject;
+};
+
+if (typeof window === 'undefined' || !window.navigator) {
+ webrtcUtils.log('This does not appear to be a browser');
+ webrtcDetectedBrowser = 'not a browser';
+} else if (navigator.mozGetUserMedia) {
+ webrtcUtils.log('This appears to be Firefox');
+
+ webrtcDetectedBrowser = 'firefox';
+
+ // the detected firefox version.
+ webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
+ /Firefox\/([0-9]+)\./, 1);
+
+ // the minimum firefox version still supported by adapter.
+ webrtcMinimumVersion = 31;
+
+ // Shim for RTCPeerConnection on older versions.
+ if (!window.RTCPeerConnection) {
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ if (webrtcDetectedVersion < 38) {
+ // .urls is not supported in FF < 38.
+ // create RTCIceServers with a single url.
+ if (pcConfig && pcConfig.iceServers) {
+ var newIceServers = [];
+ for (var i = 0; i < pcConfig.iceServers.length; i++) {
+ var server = pcConfig.iceServers[i];
+ if (server.hasOwnProperty('urls')) {
+ for (var j = 0; j < server.urls.length; j++) {
+ var newServer = {
+ url: server.urls[j]
+ };
+ if (server.urls[j].indexOf('turn') === 0) {
+ newServer.username = server.username;
+ newServer.credential = server.credential;
+ }
+ newIceServers.push(newServer);
+ }
+ } else {
+ newIceServers.push(pcConfig.iceServers[i]);
}
+ }
+ pcConfig.iceServers = newIceServers;
}
- /* jshint +W035 */
- })
- this.parser.addListener('text', function(str) {
- if (el) {
- el.t(str)
+ }
+ return new mozRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
+ };
+ window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (mozRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ if (arguments.length) {
+ return mozRTCPeerConnection.generateCertificate.apply(null,
+ arguments);
+ } else {
+ return mozRTCPeerConnection.generateCertificate;
+ }
}
- })
- this.parser.addListener('error', function(e) {
- self.error = e
- self.emit('error', e)
- })
-}
+ });
+ }
-util.inherits(exports.Parser, events.EventEmitter)
+ window.RTCSessionDescription = mozRTCSessionDescription;
+ window.RTCIceCandidate = mozRTCIceCandidate;
+ }
-exports.Parser.prototype.write = function(data) {
- this.parser.write(data)
-}
+ // getUserMedia constraints shim.
+ getUserMedia = function(constraints, onSuccess, onError) {
+ var constraintsToFF37 = function(c) {
+ if (typeof c !== 'object' || c.require) {
+ return c;
+ }
+ var require = [];
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = c[key] = (typeof c[key] === 'object') ?
+ c[key] : {ideal: c[key]};
+ if (r.min !== undefined ||
+ r.max !== undefined || r.exact !== undefined) {
+ require.push(key);
+ }
+ if (r.exact !== undefined) {
+ if (typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
+ } else {
+ c[key] = r.exact;
+ }
+ delete r.exact;
+ }
+ if (r.ideal !== undefined) {
+ c.advanced = c.advanced || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[key] = {min: r.ideal, max: r.ideal};
+ } else {
+ oc[key] = r.ideal;
+ }
+ c.advanced.push(oc);
+ delete r.ideal;
+ if (!Object.keys(r).length) {
+ delete c[key];
+ }
+ }
+ });
+ if (require.length) {
+ c.require = require;
+ }
+ return c;
+ };
+ if (webrtcDetectedVersion < 38) {
+ webrtcUtils.log('spec: ' + JSON.stringify(constraints));
+ if (constraints.audio) {
+ constraints.audio = constraintsToFF37(constraints.audio);
+ }
+ if (constraints.video) {
+ constraints.video = constraintsToFF37(constraints.video);
+ }
+ webrtcUtils.log('ff37: ' + JSON.stringify(constraints));
+ }
+ return navigator.mozGetUserMedia(constraints, onSuccess, onError);
+ };
+
+ navigator.getUserMedia = getUserMedia;
+
+ // Shim for mediaDevices on older versions.
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {getUserMedia: requestUserMedia,
+ addEventListener: function() { },
+ removeEventListener: function() { }
+ };
+ }
+ navigator.mediaDevices.enumerateDevices =
+ navigator.mediaDevices.enumerateDevices || function() {
+ return new Promise(function(resolve) {
+ var infos = [
+ {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
+ {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
+ ];
+ resolve(infos);
+ });
+ };
+
+ if (webrtcDetectedVersion < 41) {
+ // Work around http://bugzil.la/1169665
+ var orgEnumerateDevices =
+ navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
+ navigator.mediaDevices.enumerateDevices = function() {
+ return orgEnumerateDevices().then(undefined, function(e) {
+ if (e.name === 'NotFoundError') {
+ return [];
+ }
+ throw e;
+ });
+ };
+ }
+} else if (navigator.webkitGetUserMedia && window.webkitRTCPeerConnection) {
+ webrtcUtils.log('This appears to be Chrome');
+
+ webrtcDetectedBrowser = 'chrome';
+
+ // the detected chrome version.
+ webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
+ /Chrom(e|ium)\/([0-9]+)\./, 2);
+
+ // the minimum chrome version still supported by adapter.
+ webrtcMinimumVersion = 38;
+
+ // The RTCPeerConnection object.
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ // Translate iceTransportPolicy to iceTransports,
+ // see https://code.google.com/p/webrtc/issues/detail?id=4869
+ if (pcConfig && pcConfig.iceTransportPolicy) {
+ pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ }
+
+ var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints); // jscs:ignore requireCapitalizedConstructors
+ var origGetStats = pc.getStats.bind(pc);
+ pc.getStats = function(selector, successCallback, errorCallback) { // jshint ignore: line
+ var self = this;
+ var args = arguments;
+
+ // If selector is a function then we are in the old style stats so just
+ // pass back the original getStats format to avoid breaking old users.
+ if (arguments.length > 0 && typeof selector === 'function') {
+ return origGetStats(selector, successCallback);
+ }
+
+ var fixChromeStats = function(response) {
+ var standardReport = {};
+ var reports = response.result();
+ reports.forEach(function(report) {
+ var standardStats = {
+ id: report.id,
+ timestamp: report.timestamp,
+ type: report.type
+ };
+ report.names().forEach(function(name) {
+ standardStats[name] = report.stat(name);
+ });
+ standardReport[standardStats.id] = standardStats;
+ });
+
+ return standardReport;
+ };
+
+ if (arguments.length >= 2) {
+ var successCallbackWrapper = function(response) {
+ args[1](fixChromeStats(response));
+ };
+
+ return origGetStats.apply(this, [successCallbackWrapper, arguments[0]]);
+ }
+
+ // promise-support
+ return new Promise(function(resolve, reject) {
+ if (args.length === 1 && selector === null) {
+ origGetStats.apply(self, [
+ function(response) {
+ resolve.apply(null, [fixChromeStats(response)]);
+ }, reject]);
+ } else {
+ origGetStats.apply(self, [resolve, reject]);
+ }
+ });
+ };
+
+ return pc;
+ };
+ window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (webkitRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ if (arguments.length) {
+ return webkitRTCPeerConnection.generateCertificate.apply(null,
+ arguments);
+ } else {
+ return webkitRTCPeerConnection.generateCertificate;
+ }
+ }
+ });
+ }
+
+ // add promise support
+ ['createOffer', 'createAnswer'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var self = this;
+ if (arguments.length < 1 || (arguments.length === 1 &&
+ typeof(arguments[0]) === 'object')) {
+ var opts = arguments.length === 1 ? arguments[0] : undefined;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [resolve, reject, opts]);
+ });
+ } else {
+ return nativeMethod.apply(this, arguments);
+ }
+ };
+ });
-exports.Parser.prototype.end = function(data) {
- this.parser.end(data)
+ ['setLocalDescription', 'setRemoteDescription',
+ 'addIceCandidate'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var args = arguments;
+ var self = this;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [args[0],
+ function() {
+ resolve();
+ if (args.length >= 2) {
+ args[1].apply(null, []);
+ }
+ },
+ function(err) {
+ reject(err);
+ if (args.length >= 3) {
+ args[2].apply(null, [err]);
+ }
+ }]
+ );
+ });
+ };
+ });
- if (!this.error) {
- if (this.tree) {
- this.emit('tree', this.tree)
+ // getUserMedia constraints shim.
+ var constraintsToChrome = function(c) {
+ if (typeof c !== 'object' || c.mandatory || c.optional) {
+ return c;
+ }
+ var cc = {};
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
+ if (r.exact !== undefined && typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
+ }
+ var oldname = function(prefix, name) {
+ if (prefix) {
+ return prefix + name.charAt(0).toUpperCase() + name.slice(1);
+ }
+ return (name === 'deviceId') ? 'sourceId' : name;
+ };
+ if (r.ideal !== undefined) {
+ cc.optional = cc.optional || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[oldname('min', key)] = r.ideal;
+ cc.optional.push(oc);
+ oc = {};
+ oc[oldname('max', key)] = r.ideal;
+ cc.optional.push(oc);
} else {
- this.emit('error', new Error('Incomplete document'))
+ oc[oldname('', key)] = r.ideal;
+ cc.optional.push(oc);
}
+ }
+ if (r.exact !== undefined && typeof r.exact !== 'number') {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname('', key)] = r.exact;
+ } else {
+ ['min', 'max'].forEach(function(mix) {
+ if (r[mix] !== undefined) {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname(mix, key)] = r[mix];
+ }
+ });
+ }
+ });
+ if (c.advanced) {
+ cc.optional = (cc.optional || []).concat(c.advanced);
}
-}
+ return cc;
+ };
+
+ getUserMedia = function(constraints, onSuccess, onError) {
+ if (constraints.audio) {
+ constraints.audio = constraintsToChrome(constraints.audio);
+ }
+ if (constraints.video) {
+ constraints.video = constraintsToChrome(constraints.video);
+ }
+ webrtcUtils.log('chrome: ' + JSON.stringify(constraints));
+ return navigator.webkitGetUserMedia(constraints, onSuccess, onError);
+ };
+ navigator.getUserMedia = getUserMedia;
-exports.parse = function(data, saxParser) {
- var p = new exports.Parser(saxParser)
- var result = null
- , error = null
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {getUserMedia: requestUserMedia,
+ enumerateDevices: function() {
+ return new Promise(function(resolve) {
+ var kinds = {audio: 'audioinput', video: 'videoinput'};
+ return MediaStreamTrack.getSources(function(devices) {
+ resolve(devices.map(function(device) {
+ return {label: device.label,
+ kind: kinds[device.kind],
+ deviceId: device.id,
+ groupId: ''};
+ }));
+ });
+ });
+ }};
+ }
- p.on('tree', function(tree) {
- result = tree
- })
- p.on('error', function(e) {
- error = e
- })
+ // A shim for getUserMedia method on the mediaDevices object.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (!navigator.mediaDevices.getUserMedia) {
+ navigator.mediaDevices.getUserMedia = function(constraints) {
+ return requestUserMedia(constraints);
+ };
+ } else {
+ // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
+ // function which returns a Promise, it does not accept spec-style
+ // constraints.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ webrtcUtils.log('spec: ' + JSON.stringify(c)); // whitespace for alignment
+ c.audio = constraintsToChrome(c.audio);
+ c.video = constraintsToChrome(c.video);
+ webrtcUtils.log('chrome: ' + JSON.stringify(c));
+ return origGetUserMedia(c);
+ };
+ }
- p.write(data)
- p.end()
+ // Dummy devicechange event methods.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
+ navigator.mediaDevices.addEventListener = function() {
+ webrtcUtils.log('Dummy mediaDevices.addEventListener called.');
+ };
+ }
+ if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
+ navigator.mediaDevices.removeEventListener = function() {
+ webrtcUtils.log('Dummy mediaDevices.removeEventListener called.');
+ };
+ }
- if (error) {
- throw error
+ // Attach a media stream to an element.
+ attachMediaStream = function(element, stream) {
+ if (webrtcDetectedVersion >= 43) {
+ element.srcObject = stream;
+ } else if (typeof element.src !== 'undefined') {
+ element.src = URL.createObjectURL(stream);
+ } else {
+ webrtcUtils.log('Error attaching stream to element.');
+ }
+ };
+ reattachMediaStream = function(to, from) {
+ if (webrtcDetectedVersion >= 43) {
+ to.srcObject = from.srcObject;
} else {
- return result
+ to.src = from.src;
+ }
+ };
+
+} else if (navigator.mediaDevices && navigator.userAgent.match(
+ /Edge\/(\d+).(\d+)$/)) {
+ webrtcUtils.log('This appears to be Edge');
+ webrtcDetectedBrowser = 'edge';
+
+ webrtcDetectedVersion = webrtcUtils.extractVersion(navigator.userAgent,
+ /Edge\/(\d+).(\d+)$/, 2);
+
+ // The minimum version still supported by adapter.
+ // This is the build number for Edge.
+ webrtcMinimumVersion = 10547;
+
+ if (window.RTCIceGatherer) {
+ // Generate an alphanumeric identifier for cname or mids.
+ // TODO: use UUIDs instead? https://gist.github.com/jed/982883
+ var generateIdentifier = function() {
+ return Math.random().toString(36).substr(2, 10);
+ };
+
+ // The RTCP CNAME used by all peerconnections from the same JS.
+ var localCName = generateIdentifier();
+
+ // SDP helpers - to be moved into separate module.
+ var SDPUtils = {};
+
+ // Splits SDP into lines, dealing with both CRLF and LF.
+ SDPUtils.splitLines = function(blob) {
+ return blob.trim().split('\n').map(function(line) {
+ return line.trim();
+ });
+ };
+
+ // Splits SDP into sessionpart and mediasections. Ensures CRLF.
+ SDPUtils.splitSections = function(blob) {
+ var parts = blob.split('\r\nm=');
+ return parts.map(function(part, index) {
+ return (index > 0 ? 'm=' + part : part).trim() + '\r\n';
+ });
+ };
+
+ // Returns lines that start with a certain prefix.
+ SDPUtils.matchPrefix = function(blob, prefix) {
+ return SDPUtils.splitLines(blob).filter(function(line) {
+ return line.indexOf(prefix) === 0;
+ });
+ };
+
+ // Parses an ICE candidate line. Sample input:
+ // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8 rport 55996"
+ SDPUtils.parseCandidate = function(line) {
+ var parts;
+ // Parse both variants.
+ if (line.indexOf('a=candidate:') === 0) {
+ parts = line.substring(12).split(' ');
+ } else {
+ parts = line.substring(10).split(' ');
+ }
+
+ var candidate = {
+ foundation: parts[0],
+ component: parts[1],
+ protocol: parts[2].toLowerCase(),
+ priority: parseInt(parts[3], 10),
+ ip: parts[4],
+ port: parseInt(parts[5], 10),
+ // skip parts[6] == 'typ'
+ type: parts[7]
+ };
+
+ for (var i = 8; i < parts.length; i += 2) {
+ switch (parts[i]) {
+ case 'raddr':
+ candidate.relatedAddress = parts[i + 1];
+ break;
+ case 'rport':
+ candidate.relatedPort = parseInt(parts[i + 1], 10);
+ break;
+ case 'tcptype':
+ candidate.tcpType = parts[i + 1];
+ break;
+ default: // Unknown extensions are silently ignored.
+ break;
+ }
+ }
+ return candidate;
+ };
+
+ // Translates a candidate object into SDP candidate attribute.
+ SDPUtils.writeCandidate = function(candidate) {
+ var sdp = [];
+ sdp.push(candidate.foundation);
+ sdp.push(candidate.component);
+ sdp.push(candidate.protocol.toUpperCase());
+ sdp.push(candidate.priority);
+ sdp.push(candidate.ip);
+ sdp.push(candidate.port);
+
+ var type = candidate.type;
+ sdp.push('typ');
+ sdp.push(type);
+ if (type !== 'host' && candidate.relatedAddress &&
+ candidate.relatedPort) {
+ sdp.push('raddr');
+ sdp.push(candidate.relatedAddress); // was: relAddr
+ sdp.push('rport');
+ sdp.push(candidate.relatedPort); // was: relPort
+ }
+ if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {
+ sdp.push('tcptype');
+ sdp.push(candidate.tcpType);
+ }
+ return 'candidate:' + sdp.join(' ');
+ };
+
+ // Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:
+ // a=rtpmap:111 opus/48000/2
+ SDPUtils.parseRtpMap = function(line) {
+ var parts = line.substr(9).split(' ');
+ var parsed = {
+ payloadType: parseInt(parts.shift(), 10) // was: id
+ };
+
+ parts = parts[0].split('/');
+
+ parsed.name = parts[0];
+ parsed.clockRate = parseInt(parts[1], 10); // was: clockrate
+ parsed.numChannels = parts.length === 3 ? parseInt(parts[2], 10) : 1; // was: channels
+ return parsed;
+ };
+
+ // Generate an a=rtpmap line from RTCRtpCodecCapability or RTCRtpCodecParameters.
+ SDPUtils.writeRtpMap = function(codec) {
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +
+ (codec.numChannels !== 1 ? '/' + codec.numChannels : '') + '\r\n';
+ };
+
+ // Parses an ftmp line, returns dictionary. Sample input:
+ // a=fmtp:96 vbr=on;cng=on
+ // Also deals with vbr=on; cng=on
+ SDPUtils.parseFmtp = function(line) {
+ var parsed = {};
+ var kv;
+ var parts = line.substr(line.indexOf(' ') + 1).split(';');
+ for (var j = 0; j < parts.length; j++) {
+ kv = parts[j].trim().split('=');
+ parsed[kv[0].trim()] = kv[1];
+ }
+ return parsed;
+ };
+
+ // Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.
+ SDPUtils.writeFtmp = function(codec) {
+ var line = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.parameters && codec.parameters.length) {
+ var params = [];
+ Object.keys(codec.parameters).forEach(function(param) {
+ params.push(param + '=' + codec.parameters[param]);
+ });
+ line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\r\n';
+ }
+ return line;
+ };
+
+ // Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:
+ // a=rtcp-fb:98 nack rpsi
+ SDPUtils.parseRtcpFb = function(line) {
+ var parts = line.substr(line.indexOf(' ') + 1).split(' ');
+ return {
+ type: parts.shift(),
+ parameter: parts.join(' ')
+ };
+ };
+ // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.
+ SDPUtils.writeRtcpFb = function(codec) {
+ var lines = '';
+ var pt = codec.payloadType;
+ if (codec.preferredPayloadType !== undefined) {
+ pt = codec.preferredPayloadType;
+ }
+ if (codec.rtcpFeedback && codec.rtcpFeedback.length) {
+ // FIXME: special handling for trr-int?
+ codec.rtcpFeedback.forEach(function(fb) {
+ lines += 'a=rtcp-fb:' + pt + ' ' + fb.type + ' ' + fb.parameter +
+ '\r\n';
+ });
+ }
+ return lines;
+ };
+
+ // Parses an RFC 5576 ssrc media attribute. Sample input:
+ // a=ssrc:3735928559 cname:something
+ SDPUtils.parseSsrcMedia = function(line) {
+ var sp = line.indexOf(' ');
+ var parts = {
+ ssrc: line.substr(7, sp - 7),
+ };
+ var colon = line.indexOf(':', sp);
+ if (colon > -1) {
+ parts.attribute = line.substr(sp + 1, colon - sp - 1);
+ parts.value = line.substr(colon + 1);
+ } else {
+ parts.attribute = line.substr(sp + 1);
+ }
+ return parts;
+ };
+
+ // Extracts DTLS parameters from SDP media section or sessionpart.
+ // FIXME: for consistency with other functions this should only
+ // get the fingerprint line as input. See also getIceParameters.
+ SDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ lines = lines.concat(SDPUtils.splitLines(sessionpart)); // Search in session part, too.
+ var fpLine = lines.filter(function(line) {
+ return line.indexOf('a=fingerprint:') === 0;
+ })[0].substr(14);
+ // Note: a=setup line is ignored since we use the 'auto' role.
+ var dtlsParameters = {
+ role: 'auto',
+ fingerprints: [{
+ algorithm: fpLine.split(' ')[0],
+ value: fpLine.split(' ')[1]
+ }]
+ };
+ return dtlsParameters;
+ };
+
+ // Serializes DTLS parameters to SDP.
+ SDPUtils.writeDtlsParameters = function(params, setupType) {
+ var sdp = 'a=setup:' + setupType + '\r\n';
+ params.fingerprints.forEach(function(fp) {
+ sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\r\n';
+ });
+ return sdp;
+ };
+ // Parses ICE information from SDP media section or sessionpart.
+ // FIXME: for consistency with other functions this should only
+ // get the ice-ufrag and ice-pwd lines as input.
+ SDPUtils.getIceParameters = function(mediaSection, sessionpart) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ lines = lines.concat(SDPUtils.splitLines(sessionpart)); // Search in session part, too.
+ var iceParameters = {
+ usernameFragment: lines.filter(function(line) {
+ return line.indexOf('a=ice-ufrag:') === 0;
+ })[0].substr(12),
+ password: lines.filter(function(line) {
+ return line.indexOf('a=ice-pwd:') === 0;
+ })[0].substr(10)
+ };
+ return iceParameters;
+ };
+
+ // Serializes ICE parameters to SDP.
+ SDPUtils.writeIceParameters = function(params) {
+ return 'a=ice-ufrag:' + params.usernameFragment + '\r\n' +
+ 'a=ice-pwd:' + params.password + '\r\n';
+ };
+
+ // Parses the SDP media section and returns RTCRtpParameters.
+ SDPUtils.parseRtpParameters = function(mediaSection) {
+ var description = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: [],
+ rtcp: []
+ };
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].split(' ');
+ for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]
+ var pt = mline[i];
+ var rtpmapline = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtpmap:' + pt + ' ')[0];
+ if (rtpmapline) {
+ var codec = SDPUtils.parseRtpMap(rtpmapline);
+ var fmtps = SDPUtils.matchPrefix(
+ mediaSection, 'a=fmtp:' + pt + ' ');
+ // Only the first a=fmtp:<pt> is considered.
+ codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};
+ codec.rtcpFeedback = SDPUtils.matchPrefix(
+ mediaSection, 'a=rtcp-fb:' + pt + ' ')
+ .map(SDPUtils.parseRtcpFb);
+ description.codecs.push(codec);
+ }
+ }
+ // FIXME: parse headerExtensions, fecMechanisms and rtcp.
+ return description;
+ };
+
+ // Generates parts of the SDP media section describing the capabilities / parameters.
+ SDPUtils.writeRtpDescription = function(kind, caps) {
+ var sdp = '';
+
+ // Build the mline.
+ sdp += 'm=' + kind + ' ';
+ sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.
+ sdp += ' UDP/TLS/RTP/SAVPF ';
+ sdp += caps.codecs.map(function(codec) {
+ if (codec.preferredPayloadType !== undefined) {
+ return codec.preferredPayloadType;
+ }
+ return codec.payloadType;
+ }).join(' ') + '\r\n';
+
+ sdp += 'c=IN IP4 0.0.0.0\r\n';
+ sdp += 'a=rtcp:9 IN IP4 0.0.0.0\r\n';
+
+ // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.
+ caps.codecs.forEach(function(codec) {
+ sdp += SDPUtils.writeRtpMap(codec);
+ sdp += SDPUtils.writeFtmp(codec);
+ sdp += SDPUtils.writeRtcpFb(codec);
+ });
+ // FIXME: add headerExtensions, fecMechanismş and rtcp.
+ sdp += 'a=rtcp-mux\r\n';
+ return sdp;
+ };
+
+ SDPUtils.writeSessionBoilerplate = function() {
+ // FIXME: sess-id should be an NTP timestamp.
+ return 'v=0\r\n' +
+ 'o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1\r\n' +
+ 's=-\r\n' +
+ 't=0 0\r\n';
+ };
+
+ SDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {
+ var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);
+
+ // Map ICE parameters (ufrag, pwd) to SDP.
+ sdp += SDPUtils.writeIceParameters(
+ transceiver.iceGatherer.getLocalParameters());
+
+ // Map DTLS parameters to SDP.
+ sdp += SDPUtils.writeDtlsParameters(
+ transceiver.dtlsTransport.getLocalParameters(),
+ type === 'offer' ? 'actpass' : 'active');
+
+ sdp += 'a=mid:' + transceiver.mid + '\r\n';
+
+ if (transceiver.rtpSender && transceiver.rtpReceiver) {
+ sdp += 'a=sendrecv\r\n';
+ } else if (transceiver.rtpSender) {
+ sdp += 'a=sendonly\r\n';
+ } else if (transceiver.rtpReceiver) {
+ sdp += 'a=recvonly\r\n';
+ } else {
+ sdp += 'a=inactive\r\n';
+ }
+
+ // FIXME: for RTX there might be multiple SSRCs. Not implemented in Edge yet.
+ if (transceiver.rtpSender) {
+ var msid = 'msid:' + stream.id + ' ' +
+ transceiver.rtpSender.track.id + '\r\n';
+ sdp += 'a=' + msid;
+ sdp += 'a=ssrc:' + transceiver.sendSsrc + ' ' + msid;
+ }
+ // FIXME: this should be written by writeRtpDescription.
+ sdp += 'a=ssrc:' + transceiver.sendSsrc + ' cname:' +
+ localCName + '\r\n';
+ return sdp;
+ };
+
+ // Gets the direction from the mediaSection or the sessionpart.
+ SDPUtils.getDirection = function(mediaSection, sessionpart) {
+ // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.
+ var lines = SDPUtils.splitLines(mediaSection);
+ for (var i = 0; i < lines.length; i++) {
+ switch (lines[i]) {
+ case 'a=sendrecv':
+ case 'a=sendonly':
+ case 'a=recvonly':
+ case 'a=inactive':
+ return lines[i].substr(2);
+ }
+ }
+ if (sessionpart) {
+ return SDPUtils.getDirection(sessionpart);
+ }
+ return 'sendrecv';
+ };
+
+ // ORTC defines an RTCIceCandidate object but no constructor.
+ // Not implemented in Edge.
+ if (!window.RTCIceCandidate) {
+ window.RTCIceCandidate = function(args) {
+ return args;
+ };
+ }
+ // ORTC does not have a session description object but
+ // other browsers (i.e. Chrome) that will support both PC and ORTC
+ // in the future might have this defined already.
+ if (!window.RTCSessionDescription) {
+ window.RTCSessionDescription = function(args) {
+ return args;
+ };
+ }
+
+ window.RTCPeerConnection = function(config) {
+ var self = this;
+
+ this.onicecandidate = null;
+ this.onaddstream = null;
+ this.onremovestream = null;
+ this.onsignalingstatechange = null;
+ this.oniceconnectionstatechange = null;
+ this.onnegotiationneeded = null;
+ this.ondatachannel = null;
+
+ this.localStreams = [];
+ this.remoteStreams = [];
+ this.getLocalStreams = function() { return self.localStreams; };
+ this.getRemoteStreams = function() { return self.remoteStreams; };
+
+ this.localDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.remoteDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.signalingState = 'stable';
+ this.iceConnectionState = 'new';
+
+ this.iceOptions = {
+ gatherPolicy: 'all',
+ iceServers: []
+ };
+ if (config && config.iceTransportPolicy) {
+ switch (config.iceTransportPolicy) {
+ case 'all':
+ case 'relay':
+ this.iceOptions.gatherPolicy = config.iceTransportPolicy;
+ break;
+ case 'none':
+ // FIXME: remove once implementation and spec have added this.
+ throw new TypeError('iceTransportPolicy "none" not supported');
+ }
+ }
+ if (config && config.iceServers) {
+ // Edge does not like
+ // 1) stun:
+ // 2) turn: that does not have all of turn:host:port?transport=udp
+ // 3) an array of urls
+ config.iceServers.forEach(function(server) {
+ if (server.urls) {
+ var url;
+ if (typeof(server.urls) === 'string') {
+ url = server.urls;
+ } else {
+ url = server.urls[0];
+ }
+ if (url.indexOf('transport=udp') !== -1) {
+ self.iceServers.push({
+ username: server.username,
+ credential: server.credential,
+ urls: url
+ });
+ }
+ }
+ });
+ }
+
+ // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
+ // everything that is needed to describe a SDP m-line.
+ this.transceivers = [];
+
+ // since the iceGatherer is currently created in createOffer but we
+ // must not emit candidates until after setLocalDescription we buffer
+ // them in this array.
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
+ var self = this;
+ // FIXME: need to apply ice candidates in a way which is async but in-order
+ this._localIceCandidatesBuffer.forEach(function(event) {
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ });
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype.addStream = function(stream) {
+ // Clone is necessary for local demos mostly, attaching directly
+ // to two different senders does not work (build 10547).
+ this.localStreams.push(stream.clone());
+ this._maybeFireNegotiationNeeded();
+ };
+
+ window.RTCPeerConnection.prototype.removeStream = function(stream) {
+ var idx = this.localStreams.indexOf(stream);
+ if (idx > -1) {
+ this.localStreams.splice(idx, 1);
+ this._maybeFireNegotiationNeeded();
+ }
+ };
+
+ // Determines the intersection of local and remote capabilities.
+ window.RTCPeerConnection.prototype._getCommonCapabilities =
+ function(localCapabilities, remoteCapabilities) {
+ var commonCapabilities = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: []
+ };
+ localCapabilities.codecs.forEach(function(lCodec) {
+ for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
+ var rCodec = remoteCapabilities.codecs[i];
+ if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
+ lCodec.clockRate === rCodec.clockRate &&
+ lCodec.numChannels === rCodec.numChannels) {
+ // push rCodec so we reply with offerer payload type
+ commonCapabilities.codecs.push(rCodec);
+
+ // FIXME: also need to determine intersection between
+ // .rtcpFeedback and .parameters
+ break;
+ }
+ }
+ });
+
+ localCapabilities.headerExtensions.forEach(function(lHeaderExtension) {
+ for (var i = 0; i < remoteCapabilities.headerExtensions.length; i++) {
+ var rHeaderExtension = remoteCapabilities.headerExtensions[i];
+ if (lHeaderExtension.uri === rHeaderExtension.uri) {
+ commonCapabilities.headerExtensions.push(rHeaderExtension);
+ break;
+ }
+ }
+ });
+
+ // FIXME: fecMechanisms
+ return commonCapabilities;
+ };
+
+ // Create ICE gatherer, ICE transport and DTLS transport.
+ window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
+ function(mid, sdpMLineIndex) {
+ var self = this;
+ var iceGatherer = new RTCIceGatherer(self.iceOptions);
+ var iceTransport = new RTCIceTransport(iceGatherer);
+ iceGatherer.onlocalcandidate = function(evt) {
+ var event = {};
+ event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
+
+ var cand = evt.candidate;
+ // Edge emits an empty object for RTCIceCandidateComplete‥
+ if (!cand || Object.keys(cand).length === 0) {
+ // polyfill since RTCIceGatherer.state is not implemented in Edge 10547 yet.
+ if (iceGatherer.state === undefined) {
+ iceGatherer.state = 'completed';
+ }
+
+ // Emit a candidate with type endOfCandidates to make the samples work.
+ // Edge requires addIceCandidate with this empty candidate to start checking.
+ // The real solution is to signal end-of-candidates to the other side when
+ // getting the null candidate but some apps (like the samples) don't do that.
+ event.candidate.candidate =
+ 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
+ } else {
+ // RTCIceCandidate doesn't have a component, needs to be added
+ cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
+ event.candidate.candidate = SDPUtils.writeCandidate(cand);
+ }
+
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+ // FIXME: update .localDescription with candidate and (potentially) end-of-candidates.
+ // To make this harder, the gatherer might emit candidates before localdescription
+ // is set. To make things worse, gather.getLocalCandidates still errors in
+ // Edge 10547 when no candidates have been gathered yet.
+
+ if (self.onicecandidate !== null) {
+ // Emit candidate if localDescription is set.
+ // Also emits null candidate when all gatherers are complete.
+ if (self.localDescription && self.localDescription.type === '') {
+ self._localIceCandidatesBuffer.push(event);
+ if (complete) {
+ self._localIceCandidatesBuffer.push({});
+ }
+ } else {
+ self.onicecandidate(event);
+ if (complete) {
+ self.onicecandidate({});
+ }
+ }
+ }
+ };
+ iceTransport.onicestatechange = function() {
+ self._updateConnectionState();
+ };
+
+ var dtlsTransport = new RTCDtlsTransport(iceTransport);
+ dtlsTransport.ondtlsstatechange = function() {
+ self._updateConnectionState();
+ };
+ dtlsTransport.onerror = function() {
+ // onerror does not set state to failed by itself.
+ dtlsTransport.state = 'failed';
+ self._updateConnectionState();
+ };
+
+ return {
+ iceGatherer: iceGatherer,
+ iceTransport: iceTransport,
+ dtlsTransport: dtlsTransport
+ };
+ };
+
+ // Start the RTP Sender and Receiver for a transceiver.
+ window.RTCPeerConnection.prototype._transceive = function(transceiver,
+ send, recv) {
+ var params = this._getCommonCapabilities(transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+ if (send && transceiver.rtpSender) {
+ params.encodings = [{
+ ssrc: transceiver.sendSsrc
+ }];
+ params.rtcp = {
+ cname: localCName,
+ ssrc: transceiver.recvSsrc
+ };
+ transceiver.rtpSender.send(params);
+ }
+ if (recv && transceiver.rtpReceiver) {
+ params.encodings = [{
+ ssrc: transceiver.recvSsrc
+ }];
+ params.rtcp = {
+ cname: transceiver.cname,
+ ssrc: transceiver.sendSsrc
+ };
+ transceiver.rtpReceiver.receive(params);
+ }
+ };
+
+ window.RTCPeerConnection.prototype.setLocalDescription =
+ function(description) {
+ var self = this;
+ if (description.type === 'offer') {
+ if (!this._pendingOffer) {
+ } else {
+ this.transceivers = this._pendingOffer;
+ delete this._pendingOffer;
+ }
+ } else if (description.type === 'answer') {
+ var sections = SDPUtils.splitSections(self.remoteDescription.sdp);
+ var sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var transceiver = self.transceivers[sdpMLineIndex];
+ var iceGatherer = transceiver.iceGatherer;
+ var iceTransport = transceiver.iceTransport;
+ var dtlsTransport = transceiver.dtlsTransport;
+ var localCapabilities = transceiver.localCapabilities;
+ var remoteCapabilities = transceiver.remoteCapabilities;
+ var rejected = mediaSection.split('\n', 1)[0]
+ .split(' ', 2)[1] === '0';
+
+ if (!rejected) {
+ var remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ iceTransport.start(iceGatherer, remoteIceParameters, 'controlled');
+
+ var remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ dtlsTransport.start(remoteDtlsParameters);
+
+ // Calculate intersection of capabilities.
+ var params = self._getCommonCapabilities(localCapabilities,
+ remoteCapabilities);
+
+ // Start the RTCRtpSender. The RTCRtpReceiver for this transceiver
+ // has already been started in setRemoteDescription.
+ self._transceive(transceiver,
+ params.codecs.length > 0,
+ false);
+ }
+ });
+ }
+
+ this.localDescription = description;
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-local-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type + '"');
+ }
+
+ // If a success callback was provided, emit ICE candidates after it has been
+ // executed. Otherwise, emit callback after the Promise is resolved.
+ var hasCallback = arguments.length > 1 &&
+ typeof arguments[1] === 'function';
+ if (hasCallback) {
+ var cb = arguments[1];
+ window.setTimeout(function() {
+ cb();
+ self._emitBufferedCandidates();
+ }, 0);
+ }
+ var p = Promise.resolve();
+ p.then(function() {
+ if (!hasCallback) {
+ window.setTimeout(self._emitBufferedCandidates.bind(self), 0);
+ }
+ });
+ return p;
+ };
+
+ window.RTCPeerConnection.prototype.setRemoteDescription =
+ function(description) {
+ var self = this;
+ var stream = new MediaStream();
+ var sections = SDPUtils.splitSections(description.sdp);
+ var sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].substr(2).split(' ');
+ var kind = mline[0];
+ var rejected = mline[1] === '0';
+ var direction = SDPUtils.getDirection(mediaSection, sessionpart);
+
+ var transceiver;
+ var iceGatherer;
+ var iceTransport;
+ var dtlsTransport;
+ var rtpSender;
+ var rtpReceiver;
+ var sendSsrc;
+ var recvSsrc;
+ var localCapabilities;
+
+ // FIXME: ensure the mediaSection has rtcp-mux set.
+ var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
+ var remoteIceParameters;
+ var remoteDtlsParameters;
+ if (!rejected) {
+ remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ }
+ var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0].substr(6);
+
+ var cname;
+ // Gets the first SSRC. Note that with RTX there might be multiple SSRCs.
+ var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(obj) {
+ return obj.attribute === 'cname';
+ })[0];
+ if (remoteSsrc) {
+ recvSsrc = parseInt(remoteSsrc.ssrc, 10);
+ cname = remoteSsrc.value;
+ }
+
+ if (description.type === 'offer') {
+ var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ localCapabilities = RTCRtpReceiver.getCapabilities(kind);
+ sendSsrc = (2 * sdpMLineIndex + 2) * 1001;
+
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+
+ // FIXME: not correct when there are multiple streams but that is
+ // not currently supported in this shim.
+ stream.addTrack(rtpReceiver.track);
+
+ // FIXME: look at direction.
+ if (self.localStreams.length > 0 &&
+ self.localStreams[0].getTracks().length >= sdpMLineIndex) {
+ // FIXME: actually more complicated, needs to match types etc
+ var localtrack = self.localStreams[0].getTracks()[sdpMLineIndex];
+ rtpSender = new RTCRtpSender(localtrack, transports.dtlsTransport);
+ }
+
+ self.transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: remoteCapabilities,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ cname: cname,
+ sendSsrc: sendSsrc,
+ recvSsrc: recvSsrc
+ };
+ // Start the RTCRtpReceiver now. The RTPSender is started in setLocalDescription.
+ self._transceive(self.transceivers[sdpMLineIndex],
+ false,
+ direction === 'sendrecv' || direction === 'sendonly');
+ } else if (description.type === 'answer' && !rejected) {
+ transceiver = self.transceivers[sdpMLineIndex];
+ iceGatherer = transceiver.iceGatherer;
+ iceTransport = transceiver.iceTransport;
+ dtlsTransport = transceiver.dtlsTransport;
+ rtpSender = transceiver.rtpSender;
+ rtpReceiver = transceiver.rtpReceiver;
+ sendSsrc = transceiver.sendSsrc;
+ //recvSsrc = transceiver.recvSsrc;
+ localCapabilities = transceiver.localCapabilities;
+
+ self.transceivers[sdpMLineIndex].recvSsrc = recvSsrc;
+ self.transceivers[sdpMLineIndex].remoteCapabilities =
+ remoteCapabilities;
+ self.transceivers[sdpMLineIndex].cname = cname;
+
+ iceTransport.start(iceGatherer, remoteIceParameters, 'controlling');
+ dtlsTransport.start(remoteDtlsParameters);
+
+ self._transceive(transceiver,
+ direction === 'sendrecv' || direction === 'recvonly',
+ direction === 'sendrecv' || direction === 'sendonly');
+
+ if (rtpReceiver &&
+ (direction === 'sendrecv' || direction === 'sendonly')) {
+ stream.addTrack(rtpReceiver.track);
+ } else {
+ // FIXME: actually the receiver should be created later.
+ delete transceiver.rtpReceiver;
+ }
+ }
+ });
+
+ this.remoteDescription = description;
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-remote-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type + '"');
+ }
+ window.setTimeout(function() {
+ if (self.onaddstream !== null && stream.getTracks().length) {
+ self.remoteStreams.push(stream);
+ window.setTimeout(function() {
+ self.onaddstream({stream: stream});
+ }, 0);
+ }
+ }, 0);
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.close = function() {
+ this.transceivers.forEach(function(transceiver) {
+ /* not yet
+ if (transceiver.iceGatherer) {
+ transceiver.iceGatherer.close();
+ }
+ */
+ if (transceiver.iceTransport) {
+ transceiver.iceTransport.stop();
+ }
+ if (transceiver.dtlsTransport) {
+ transceiver.dtlsTransport.stop();
+ }
+ if (transceiver.rtpSender) {
+ transceiver.rtpSender.stop();
+ }
+ if (transceiver.rtpReceiver) {
+ transceiver.rtpReceiver.stop();
+ }
+ });
+ // FIXME: clean up tracks, local streams, remote streams, etc
+ this._updateSignalingState('closed');
+ };
+
+ // Update the signaling state.
+ window.RTCPeerConnection.prototype._updateSignalingState =
+ function(newState) {
+ this.signalingState = newState;
+ if (this.onsignalingstatechange !== null) {
+ this.onsignalingstatechange();
+ }
+ };
+
+ // Determine whether to fire the negotiationneeded event.
+ window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
+ function() {
+ // Fire away (for now).
+ if (this.onnegotiationneeded !== null) {
+ this.onnegotiationneeded();
+ }
+ };
+
+ // Update the connection state.
+ window.RTCPeerConnection.prototype._updateConnectionState =
+ function() {
+ var self = this;
+ var newState;
+ var states = {
+ 'new': 0,
+ closed: 0,
+ connecting: 0,
+ checking: 0,
+ connected: 0,
+ completed: 0,
+ failed: 0
+ };
+ this.transceivers.forEach(function(transceiver) {
+ states[transceiver.iceTransport.state]++;
+ states[transceiver.dtlsTransport.state]++;
+ });
+ // ICETransport.completed and connected are the same for this purpose.
+ states.connected += states.completed;
+
+ newState = 'new';
+ if (states.failed > 0) {
+ newState = 'failed';
+ } else if (states.connecting > 0 || states.checking > 0) {
+ newState = 'connecting';
+ } else if (states.disconnected > 0) {
+ newState = 'disconnected';
+ } else if (states.new > 0) {
+ newState = 'new';
+ } else if (states.connecting > 0 || states.completed > 0) {
+ newState = 'connected';
+ }
+
+ if (newState !== self.iceConnectionState) {
+ self.iceConnectionState = newState;
+ if (this.oniceconnectionstatechange !== null) {
+ this.oniceconnectionstatechange();
+ }
+ }
+ };
+
+ window.RTCPeerConnection.prototype.createOffer = function() {
+ var self = this;
+ if (this._pendingOffer) {
+ throw new Error('createOffer called while there is a pending offer.');
+ }
+ var offerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ offerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ offerOptions = arguments[2];
+ }
+
+ var tracks = [];
+ var numAudioTracks = 0;
+ var numVideoTracks = 0;
+ // Default to sendrecv.
+ if (this.localStreams.length) {
+ numAudioTracks = this.localStreams[0].getAudioTracks().length;
+ numVideoTracks = this.localStreams[0].getVideoTracks().length;
+ }
+ // Determine number of audio and video tracks we need to send/recv.
+ if (offerOptions) {
+ // Reject Chrome legacy constraints.
+ if (offerOptions.mandatory || offerOptions.optional) {
+ throw new TypeError(
+ 'Legacy mandatory/optional constraints not supported.');
+ }
+ if (offerOptions.offerToReceiveAudio !== undefined) {
+ numAudioTracks = offerOptions.offerToReceiveAudio;
+ }
+ if (offerOptions.offerToReceiveVideo !== undefined) {
+ numVideoTracks = offerOptions.offerToReceiveVideo;
+ }
+ }
+ if (this.localStreams.length) {
+ // Push local streams.
+ this.localStreams[0].getTracks().forEach(function(track) {
+ tracks.push({
+ kind: track.kind,
+ track: track,
+ wantReceive: track.kind === 'audio' ?
+ numAudioTracks > 0 : numVideoTracks > 0
+ });
+ if (track.kind === 'audio') {
+ numAudioTracks--;
+ } else if (track.kind === 'video') {
+ numVideoTracks--;
+ }
+ });
+ }
+ // Create M-lines for recvonly streams.
+ while (numAudioTracks > 0 || numVideoTracks > 0) {
+ if (numAudioTracks > 0) {
+ tracks.push({
+ kind: 'audio',
+ wantReceive: true
+ });
+ numAudioTracks--;
+ }
+ if (numVideoTracks > 0) {
+ tracks.push({
+ kind: 'video',
+ wantReceive: true
+ });
+ numVideoTracks--;
+ }
+ }
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ var transceivers = [];
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ // For each track, create an ice gatherer, ice transport, dtls transport,
+ // potentially rtpsender and rtpreceiver.
+ var track = mline.track;
+ var kind = mline.kind;
+ var mid = generateIdentifier();
+
+ var transports = self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ var localCapabilities = RTCRtpSender.getCapabilities(kind);
+ var rtpSender;
+ var rtpReceiver;
+
+ // generate an ssrc now, to be used later in rtpSender.send
+ var sendSsrc = (2 * sdpMLineIndex + 1) * 1001;
+ if (track) {
+ rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
+ }
+
+ if (mline.wantReceive) {
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+ }
+
+ transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: null,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ sendSsrc: sendSsrc,
+ recvSsrc: null
+ };
+ var transceiver = transceivers[sdpMLineIndex];
+ sdp += SDPUtils.writeMediaSection(transceiver,
+ transceiver.localCapabilities, 'offer', self.localStreams[0]);
+ });
+
+ this._pendingOffer = transceivers;
+ var desc = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.createAnswer = function() {
+ var self = this;
+ var answerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ answerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ answerOptions = arguments[2];
+ }
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ this.transceivers.forEach(function(transceiver) {
+ // Calculate intersection of capabilities.
+ var commonCapabilities = self._getCommonCapabilities(
+ transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+
+ sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
+ 'answer', self.localStreams[0]);
+ });
+
+ var desc = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
+ var mLineIndex = candidate.sdpMLineIndex;
+ if (candidate.sdpMid) {
+ for (var i = 0; i < this.transceivers.length; i++) {
+ if (this.transceivers[i].mid === candidate.sdpMid) {
+ mLineIndex = i;
+ break;
+ }
+ }
+ }
+ var transceiver = this.transceivers[mLineIndex];
+ if (transceiver) {
+ var cand = Object.keys(candidate.candidate).length > 0 ?
+ SDPUtils.parseCandidate(candidate.candidate) : {};
+ // Ignore Chrome's invalid candidates since Edge does not like them.
+ if (cand.protocol === 'tcp' && cand.port === 0) {
+ return;
+ }
+ // Ignore RTCP candidates, we assume RTCP-MUX.
+ if (cand.component !== '1') {
+ return;
+ }
+ // A dirty hack to make samples work.
+ if (cand.type === 'endOfCandidates') {
+ cand = {};
+ }
+ transceiver.iceTransport.addRemoteCandidate(cand);
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.getStats = function() {
+ var promises = [];
+ this.transceivers.forEach(function(transceiver) {
+ ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
+ 'dtlsTransport'].forEach(function(method) {
+ if (transceiver[method]) {
+ promises.push(transceiver[method].getStats());
+ }
+ });
+ });
+ var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
+ arguments[1];
+ return new Promise(function(resolve) {
+ var results = {};
+ Promise.all(promises).then(function(res) {
+ res.forEach(function(result) {
+ Object.keys(result).forEach(function(id) {
+ results[id] = result[id];
+ });
+ });
+ if (cb) {
+ window.setTimeout(cb, 0, results);
+ }
+ resolve(results);
+ });
+ });
+ };
+ }
+} else {
+ webrtcUtils.log('Browser does not appear to be WebRTC-capable');
+}
+
+// Polyfill ontrack on browsers that don't yet have it
+if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() { return this._ontrack; },
+ set: function(f) {
+ var self = this;
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ if (webrtcDetectedBrowser === 'chrome') {
+ // onaddstream does not fire when a track is added to an existing stream.
+ // but stream.onaddtrack is implemented so we use thたt
+ e.stream.addEventListener('addtrack', function(te) {
+ var event = new Event('track');
+ event.track = te.track;
+ event.receiver = {track: te.track};
+ event.streams = [e.stream];
+ self.dispatchEvent(event);
+ });
+ }
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+}
+
+// Returns the result of getUserMedia as a Promise.
+function requestUserMedia(constraints) {
+ return new Promise(function(resolve, reject) {
+ getUserMedia(constraints, resolve, reject);
+ });
+}
+
+var webrtcTesting = {};
+try {
+ Object.defineProperty(webrtcTesting, 'version', {
+ set: function(version) {
+ webrtcDetectedVersion = version;
}
+ });
+} catch (e) {}
+
+if (typeof module !== 'undefined') {
+ var RTCPeerConnection;
+ var RTCIceCandidate;
+ var RTCSessionDescription;
+ if (typeof window !== 'undefined') {
+ RTCPeerConnection = window.RTCPeerConnection;
+ RTCIceCandidate = window.RTCIceCandidate;
+ RTCSessionDescription = window.RTCSessionDescription;
+ }
+ module.exports = {
+ RTCPeerConnection: RTCPeerConnection,
+ RTCIceCandidate: RTCIceCandidate,
+ RTCSessionDescription: RTCSessionDescription,
+ getUserMedia: getUserMedia,
+ attachMediaStream: attachMediaStream,
+ reattachMediaStream: reattachMediaStream,
+ webrtcDetectedBrowser: webrtcDetectedBrowser,
+ webrtcDetectedVersion: webrtcDetectedVersion,
+ webrtcMinimumVersion: webrtcMinimumVersion,
+ webrtcTesting: webrtcTesting,
+ webrtcUtils: webrtcUtils
+ //requestUserMedia: not exposed on purpose.
+ //trace: not exposed on purpose.
+ };
+} else if ((typeof require === 'function') && (typeof define === 'function')) {
+ // Expose objects and functions when RequireJS is doing the loading.
+ define([], function() {
+ return {
+ RTCPeerConnection: window.RTCPeerConnection,
+ RTCIceCandidate: window.RTCIceCandidate,
+ RTCSessionDescription: window.RTCSessionDescription,
+ getUserMedia: getUserMedia,
+ attachMediaStream: attachMediaStream,
+ reattachMediaStream: reattachMediaStream,
+ webrtcDetectedBrowser: webrtcDetectedBrowser,
+ webrtcDetectedVersion: webrtcDetectedVersion,
+ webrtcMinimumVersion: webrtcMinimumVersion,
+ webrtcTesting: webrtcTesting,
+ webrtcUtils: webrtcUtils
+ //requestUserMedia: not exposed on purpose.
+ //trace: not exposed on purpose.
+ };
+ });
}
-},{"./dom-element":243,"events":6,"util":28}],248:[function(require,module,exports){
+},{}],201:[function(require,module,exports){
+arguments[4][33][0].apply(exports,arguments)
+},{"./chrome/chrome_shim":202,"./edge/edge_shim":204,"./firefox/firefox_shim":206,"./safari/safari_shim":208,"./utils":209,"dup":33}],202:[function(require,module,exports){
+
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
'use strict';
+var logging = require('../utils.js').log;
+var browserDetails = require('../utils.js').browserDetails;
+
+var chromeShim = {
+ shimMediaStream: function() {
+ window.MediaStream = window.MediaStream || window.webkitMediaStream;
+ },
+
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ var self = this;
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ // onaddstream does not fire when a track is added to an existing
+ // stream. But stream.onaddtrack is implemented so we use that.
+ e.stream.addEventListener('addtrack', function(te) {
+ var event = new Event('track');
+ event.track = te.track;
+ event.receiver = {track: te.track};
+ event.streams = [e.stream];
+ self.dispatchEvent(event);
+ });
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+ }
+ },
+
+ shimSourceObject: function() {
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this._srcObject;
+ },
+ set: function(stream) {
+ var self = this;
+ // Use _srcObject as a private property for this shim
+ this._srcObject = stream;
+ if (this.src) {
+ URL.revokeObjectURL(this.src);
+ }
-var util = require('util')
- , events = require('events')
-
-var STATE_TEXT = 0,
- STATE_IGNORE_TAG = 1,
- STATE_TAG_NAME = 2,
- STATE_TAG = 3,
- STATE_ATTR_NAME = 4,
- STATE_ATTR_EQ = 5,
- STATE_ATTR_QUOT = 6,
- STATE_ATTR_VALUE = 7
-
-var SaxLtx = module.exports = function SaxLtx() {
- events.EventEmitter.call(this)
-
- var state = STATE_TEXT, remainder
- var tagName, attrs, endTag, selfClosing, attrQuote
- var recordStart = 0
- var attrName
-
- this._handleTagOpening = function(endTag, tagName, attrs) {
- if (!endTag) {
- this.emit('startElement', tagName, attrs)
- if (selfClosing) {
- this.emit('endElement', tagName)
+ if (!stream) {
+ this.src = '';
+ return;
}
+ this.src = URL.createObjectURL(stream);
+ // We need to recreate the blob url when a track is added or
+ // removed. Doing it manually since we want to avoid a recursion.
+ stream.addEventListener('addtrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ stream.addEventListener('removetrack', function() {
+ if (self.src) {
+ URL.revokeObjectURL(self.src);
+ }
+ self.src = URL.createObjectURL(stream);
+ });
+ }
+ });
+ }
+ }
+ },
+
+ shimPeerConnection: function() {
+ // The RTCPeerConnection object.
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ // Translate iceTransportPolicy to iceTransports,
+ // see https://code.google.com/p/webrtc/issues/detail?id=4869
+ logging('PeerConnection');
+ if (pcConfig && pcConfig.iceTransportPolicy) {
+ pcConfig.iceTransports = pcConfig.iceTransportPolicy;
+ }
+
+ var pc = new webkitRTCPeerConnection(pcConfig, pcConstraints);
+ var origGetStats = pc.getStats.bind(pc);
+ pc.getStats = function(selector, successCallback, errorCallback) {
+ var self = this;
+ var args = arguments;
+
+ // If selector is a function then we are in the old style stats so just
+ // pass back the original getStats format to avoid breaking old users.
+ if (arguments.length > 0 && typeof selector === 'function') {
+ return origGetStats(selector, successCallback);
+ }
+
+ var fixChromeStats_ = function(response) {
+ var standardReport = {};
+ var reports = response.result();
+ reports.forEach(function(report) {
+ var standardStats = {
+ id: report.id,
+ timestamp: report.timestamp,
+ type: report.type
+ };
+ report.names().forEach(function(name) {
+ standardStats[name] = report.stat(name);
+ });
+ standardReport[standardStats.id] = standardStats;
+ });
+
+ return standardReport;
+ };
+
+ // shim getStats with maplike support
+ var makeMapStats = function(stats, legacyStats) {
+ var map = new Map(Object.keys(stats).map(function(key) {
+ return[key, stats[key]];
+ }));
+ legacyStats = legacyStats || stats;
+ Object.keys(legacyStats).forEach(function(key) {
+ map[key] = legacyStats[key];
+ });
+ return map;
+ };
+
+ if (arguments.length >= 2) {
+ var successCallbackWrapper_ = function(response) {
+ args[1](makeMapStats(fixChromeStats_(response)));
+ };
+
+ return origGetStats.apply(this, [successCallbackWrapper_,
+ arguments[0]]);
+ }
+
+ // promise-support
+ return new Promise(function(resolve, reject) {
+ if (args.length === 1 && typeof selector === 'object') {
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response)));
+ }, reject]);
+ } else {
+ // Preserve legacy chrome stats only on legacy access of stats obj
+ origGetStats.apply(self, [
+ function(response) {
+ resolve(makeMapStats(fixChromeStats_(response),
+ response.result()));
+ }, reject]);
+ }
+ }).then(successCallback, errorCallback);
+ };
+
+ return pc;
+ };
+ window.RTCPeerConnection.prototype = webkitRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (webkitRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return webkitRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
+
+ ['createOffer', 'createAnswer'].forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var self = this;
+ if (arguments.length < 1 || (arguments.length === 1 &&
+ typeof arguments[0] === 'object')) {
+ var opts = arguments.length === 1 ? arguments[0] : undefined;
+ return new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [resolve, reject, opts]);
+ });
+ }
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+
+ // add promise support -- natively available in Chrome 51
+ if (browserDetails.version < 51) {
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ var args = arguments;
+ var self = this;
+ var promise = new Promise(function(resolve, reject) {
+ nativeMethod.apply(self, [args[0], resolve, reject]);
+ });
+ if (args.length < 2) {
+ return promise;
+ }
+ return promise.then(function() {
+ args[1].apply(null, []);
+ },
+ function(err) {
+ if (args.length >= 3) {
+ args[2].apply(null, [err]);
+ }
+ });
+ };
+ });
+ }
+
+ // shim implicit creation of RTCSessionDescription/RTCIceCandidate
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = webkitRTCPeerConnection.prototype[method];
+ webkitRTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ if (arguments[0] === null) {
+ if (arguments[1]) {
+ arguments[1].apply(null);
+ }
+ return Promise.resolve();
+ }
+ return nativeAddIceCandidate.apply(this, arguments);
+ };
+ }
+};
+
+
+// Expose public methods.
+module.exports = {
+ shimMediaStream: chromeShim.shimMediaStream,
+ shimOnTrack: chromeShim.shimOnTrack,
+ shimSourceObject: chromeShim.shimSourceObject,
+ shimPeerConnection: chromeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia')
+};
+
+},{"../utils.js":209,"./getusermedia":203}],203:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+var logging = require('../utils.js').log;
+
+// Expose public methods.
+module.exports = function() {
+ var constraintsToChrome_ = function(c) {
+ if (typeof c !== 'object' || c.mandatory || c.optional) {
+ return c;
+ }
+ var cc = {};
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};
+ if (r.exact !== undefined && typeof r.exact === 'number') {
+ r.min = r.max = r.exact;
+ }
+ var oldname_ = function(prefix, name) {
+ if (prefix) {
+ return prefix + name.charAt(0).toUpperCase() + name.slice(1);
+ }
+ return (name === 'deviceId') ? 'sourceId' : name;
+ };
+ if (r.ideal !== undefined) {
+ cc.optional = cc.optional || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[oldname_('min', key)] = r.ideal;
+ cc.optional.push(oc);
+ oc = {};
+ oc[oldname_('max', key)] = r.ideal;
+ cc.optional.push(oc);
} else {
- this.emit('endElement', tagName)
+ oc[oldname_('', key)] = r.ideal;
+ cc.optional.push(oc);
}
+ }
+ if (r.exact !== undefined && typeof r.exact !== 'number') {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_('', key)] = r.exact;
+ } else {
+ ['min', 'max'].forEach(function(mix) {
+ if (r[mix] !== undefined) {
+ cc.mandatory = cc.mandatory || {};
+ cc.mandatory[oldname_(mix, key)] = r[mix];
+ }
+ });
+ }
+ });
+ if (c.advanced) {
+ cc.optional = (cc.optional || []).concat(c.advanced);
}
+ return cc;
+ };
- this.write = function(data) {
- /* jshint -W071 */
- /* jshint -W074 */
- if (typeof data !== 'string') {
- data = data.toString()
+ var shimConstraints_ = function(constraints, func) {
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (constraints && constraints.audio) {
+ constraints.audio = constraintsToChrome_(constraints.audio);
+ }
+ if (constraints && typeof constraints.video === 'object') {
+ // Shim facingMode for mobile, where it defaults to "user".
+ var face = constraints.video.facingMode;
+ face = face && ((typeof face === 'object') ? face : {ideal: face});
+
+ if ((face && (face.exact === 'user' || face.exact === 'environment' ||
+ face.ideal === 'user' || face.ideal === 'environment')) &&
+ !(navigator.mediaDevices.getSupportedConstraints &&
+ navigator.mediaDevices.getSupportedConstraints().facingMode)) {
+ delete constraints.video.facingMode;
+ if (face.exact === 'environment' || face.ideal === 'environment') {
+ // Look for "back" in label, or use last cam (typically back cam).
+ return navigator.mediaDevices.enumerateDevices()
+ .then(function(devices) {
+ devices = devices.filter(function(d) {
+ return d.kind === 'videoinput';
+ });
+ var back = devices.find(function(d) {
+ return d.label.toLowerCase().indexOf('back') !== -1;
+ }) || (devices.length && devices[devices.length - 1]);
+ if (back) {
+ constraints.video.deviceId = face.exact ? {exact: back.deviceId} :
+ {ideal: back.deviceId};
+ }
+ constraints.video = constraintsToChrome_(constraints.video);
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
+ });
}
- var pos = 0
+ }
+ constraints.video = constraintsToChrome_(constraints.video);
+ }
+ logging('chrome: ' + JSON.stringify(constraints));
+ return func(constraints);
+ };
+
+ var shimError_ = function(e) {
+ return {
+ name: {
+ PermissionDeniedError: 'NotAllowedError',
+ ConstraintNotSatisfiedError: 'OverconstrainedError'
+ }[e.name] || e.name,
+ message: e.message,
+ constraint: e.constraintName,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
+ }
+ };
+ };
+
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ shimConstraints_(constraints, function(c) {
+ navigator.webkitGetUserMedia(c, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
+ });
+ };
+
+ navigator.getUserMedia = getUserMedia_;
+
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ navigator.getUserMedia(constraints, resolve, reject);
+ });
+ };
+
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {
+ getUserMedia: getUserMediaPromise_,
+ enumerateDevices: function() {
+ return new Promise(function(resolve) {
+ var kinds = {audio: 'audioinput', video: 'videoinput'};
+ return MediaStreamTrack.getSources(function(devices) {
+ resolve(devices.map(function(device) {
+ return {label: device.label,
+ kind: kinds[device.kind],
+ deviceId: device.id,
+ groupId: ''};
+ }));
+ });
+ });
+ }
+ };
+ }
+
+ // A shim for getUserMedia method on the mediaDevices object.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (!navigator.mediaDevices.getUserMedia) {
+ navigator.mediaDevices.getUserMedia = function(constraints) {
+ return getUserMediaPromise_(constraints);
+ };
+ } else {
+ // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia
+ // function which returns a Promise, it does not accept spec-style
+ // constraints.
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(cs) {
+ return shimConstraints_(cs, function(c) {
+ return origGetUserMedia(c).then(function(stream) {
+ if (c.audio && !stream.getAudioTracks().length ||
+ c.video && !stream.getVideoTracks().length) {
+ stream.getTracks().forEach(function(track) {
+ track.stop();
+ });
+ throw new DOMException('', 'NotFoundError');
+ }
+ return stream;
+ }, function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ });
+ };
+ }
+
+ // Dummy devicechange event methods.
+ // TODO(KaptenJansson) remove once implemented in Chrome stable.
+ if (typeof navigator.mediaDevices.addEventListener === 'undefined') {
+ navigator.mediaDevices.addEventListener = function() {
+ logging('Dummy mediaDevices.addEventListener called.');
+ };
+ }
+ if (typeof navigator.mediaDevices.removeEventListener === 'undefined') {
+ navigator.mediaDevices.removeEventListener = function() {
+ logging('Dummy mediaDevices.removeEventListener called.');
+ };
+ }
+};
+
+},{"../utils.js":209}],204:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var SDPUtils = require('sdp');
+var browserDetails = require('../utils').browserDetails;
+
+var edgeShim = {
+ shimPeerConnection: function() {
+ if (window.RTCIceGatherer) {
+ // ORTC defines an RTCIceCandidate object but no constructor.
+ // Not implemented in Edge.
+ if (!window.RTCIceCandidate) {
+ window.RTCIceCandidate = function(args) {
+ return args;
+ };
+ }
+ // ORTC does not have a session description object but
+ // other browsers (i.e. Chrome) that will support both PC and ORTC
+ // in the future might have this defined already.
+ if (!window.RTCSessionDescription) {
+ window.RTCSessionDescription = function(args) {
+ return args;
+ };
+ }
+ }
- /* Anything from previous write()? */
- if (remainder) {
- data = remainder + data
- pos += remainder.length
- remainder = null
+ window.RTCPeerConnection = function(config) {
+ var self = this;
+
+ var _eventTarget = document.createDocumentFragment();
+ ['addEventListener', 'removeEventListener', 'dispatchEvent']
+ .forEach(function(method) {
+ self[method] = _eventTarget[method].bind(_eventTarget);
+ });
+
+ this.onicecandidate = null;
+ this.onaddstream = null;
+ this.ontrack = null;
+ this.onremovestream = null;
+ this.onsignalingstatechange = null;
+ this.oniceconnectionstatechange = null;
+ this.onnegotiationneeded = null;
+ this.ondatachannel = null;
+
+ this.localStreams = [];
+ this.remoteStreams = [];
+ this.getLocalStreams = function() {
+ return self.localStreams;
+ };
+ this.getRemoteStreams = function() {
+ return self.remoteStreams;
+ };
+
+ this.localDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.remoteDescription = new RTCSessionDescription({
+ type: '',
+ sdp: ''
+ });
+ this.signalingState = 'stable';
+ this.iceConnectionState = 'new';
+ this.iceGatheringState = 'new';
+
+ this.iceOptions = {
+ gatherPolicy: 'all',
+ iceServers: []
+ };
+ if (config && config.iceTransportPolicy) {
+ switch (config.iceTransportPolicy) {
+ case 'all':
+ case 'relay':
+ this.iceOptions.gatherPolicy = config.iceTransportPolicy;
+ break;
+ case 'none':
+ // FIXME: remove once implementation and spec have added this.
+ throw new TypeError('iceTransportPolicy "none" not supported');
+ default:
+ // don't set iceTransportPolicy.
+ break;
}
+ }
+ this.usingBundle = config && config.bundlePolicy === 'max-bundle';
+
+ if (config && config.iceServers) {
+ // Edge does not like
+ // 1) stun:
+ // 2) turn: that does not have all of turn:host:port?transport=udp
+ // 3) turn: with ipv6 addresses
+ var iceServers = JSON.parse(JSON.stringify(config.iceServers));
+ this.iceOptions.iceServers = iceServers.filter(function(server) {
+ if (server && server.urls) {
+ var urls = server.urls;
+ if (typeof urls === 'string') {
+ urls = [urls];
+ }
+ urls = urls.filter(function(url) {
+ return (url.indexOf('turn:') === 0 &&
+ url.indexOf('transport=udp') !== -1 &&
+ url.indexOf('turn:[') === -1) ||
+ (url.indexOf('stun:') === 0 &&
+ browserDetails.version >= 14393);
+ })[0];
+ return !!urls;
+ }
+ return false;
+ });
+ }
+ this._config = config;
+
+ // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...
+ // everything that is needed to describe a SDP m-line.
+ this.transceivers = [];
- function endRecording() {
- if (typeof recordStart === 'number') {
- var recorded = data.slice(recordStart, pos)
- recordStart = undefined
- return recorded
+ // since the iceGatherer is currently created in createOffer but we
+ // must not emit candidates until after setLocalDescription we buffer
+ // them in this array.
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype._emitBufferedCandidates = function() {
+ var self = this;
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ // FIXME: need to apply ice candidates in a way which is async but
+ // in-order
+ this._localIceCandidatesBuffer.forEach(function(event) {
+ var end = !event.candidate || Object.keys(event.candidate).length === 0;
+ if (end) {
+ for (var j = 1; j < sections.length; j++) {
+ if (sections[j].indexOf('\r\na=end-of-candidates\r\n') === -1) {
+ sections[j] += 'a=end-of-candidates\r\n';
}
+ }
+ } else if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
}
+ if (!event.candidate && self.iceGatheringState !== 'complete') {
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+ if (complete) {
+ self.iceGatheringState = 'complete';
+ }
+ }
+ });
+ this._localIceCandidatesBuffer = [];
+ };
+
+ window.RTCPeerConnection.prototype.getConfiguration = function() {
+ return this._config;
+ };
+
+ window.RTCPeerConnection.prototype.addStream = function(stream) {
+ // Clone is necessary for local demos mostly, attaching directly
+ // to two different senders does not work (build 10547).
+ this.localStreams.push(stream.clone());
+ this._maybeFireNegotiationNeeded();
+ };
+
+ window.RTCPeerConnection.prototype.removeStream = function(stream) {
+ var idx = this.localStreams.indexOf(stream);
+ if (idx > -1) {
+ this.localStreams.splice(idx, 1);
+ this._maybeFireNegotiationNeeded();
+ }
+ };
- for(; pos < data.length; pos++) {
- var c = data.charCodeAt(pos)
- //console.log("state", state, "c", c, data[pos])
- switch(state) {
- case STATE_TEXT:
- if (c === 60 /* < */) {
- var text = endRecording()
- if (text) {
- this.emit('text', unescapeXml(text))
+ window.RTCPeerConnection.prototype.getSenders = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpSender;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpSender;
+ });
+ };
+
+ window.RTCPeerConnection.prototype.getReceivers = function() {
+ return this.transceivers.filter(function(transceiver) {
+ return !!transceiver.rtpReceiver;
+ })
+ .map(function(transceiver) {
+ return transceiver.rtpReceiver;
+ });
+ };
+
+ // Determines the intersection of local and remote capabilities.
+ window.RTCPeerConnection.prototype._getCommonCapabilities =
+ function(localCapabilities, remoteCapabilities) {
+ var commonCapabilities = {
+ codecs: [],
+ headerExtensions: [],
+ fecMechanisms: []
+ };
+ localCapabilities.codecs.forEach(function(lCodec) {
+ for (var i = 0; i < remoteCapabilities.codecs.length; i++) {
+ var rCodec = remoteCapabilities.codecs[i];
+ if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&
+ lCodec.clockRate === rCodec.clockRate) {
+ // number of channels is the highest common number of channels
+ rCodec.numChannels = Math.min(lCodec.numChannels,
+ rCodec.numChannels);
+ // push rCodec so we reply with offerer payload type
+ commonCapabilities.codecs.push(rCodec);
+
+ // determine common feedback mechanisms
+ rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {
+ for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {
+ if (lCodec.rtcpFeedback[j].type === fb.type &&
+ lCodec.rtcpFeedback[j].parameter === fb.parameter) {
+ return true;
}
- state = STATE_TAG_NAME
- recordStart = pos + 1
- attrs = {}
+ }
+ return false;
+ });
+ // FIXME: also need to determine .parameters
+ // see https://github.com/openpeer/ortc/issues/569
+ break;
+ }
+ }
+ });
+
+ localCapabilities.headerExtensions
+ .forEach(function(lHeaderExtension) {
+ for (var i = 0; i < remoteCapabilities.headerExtensions.length;
+ i++) {
+ var rHeaderExtension = remoteCapabilities.headerExtensions[i];
+ if (lHeaderExtension.uri === rHeaderExtension.uri) {
+ commonCapabilities.headerExtensions.push(rHeaderExtension);
+ break;
+ }
}
- break
- case STATE_TAG_NAME:
- if (c === 47 /* / */ && recordStart === pos) {
- recordStart = pos + 1
- endTag = true
- } else if (c === 33 /* ! */ || c === 63 /* ? */) {
- recordStart = undefined
- state = STATE_IGNORE_TAG
- } else if (c <= 32 || c === 47 /* / */ || c === 62 /* > */) {
- tagName = endRecording()
- pos--
- state = STATE_TAG
+ });
+
+ // FIXME: fecMechanisms
+ return commonCapabilities;
+ };
+
+ // Create ICE gatherer, ICE transport and DTLS transport.
+ window.RTCPeerConnection.prototype._createIceAndDtlsTransports =
+ function(mid, sdpMLineIndex) {
+ var self = this;
+ var iceGatherer = new RTCIceGatherer(self.iceOptions);
+ var iceTransport = new RTCIceTransport(iceGatherer);
+ iceGatherer.onlocalcandidate = function(evt) {
+ var event = new Event('icecandidate');
+ event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};
+
+ var cand = evt.candidate;
+ var end = !cand || Object.keys(cand).length === 0;
+ // Edge emits an empty object for RTCIceCandidateComplete‥
+ if (end) {
+ // polyfill since RTCIceGatherer.state is not implemented in
+ // Edge 10547 yet.
+ if (iceGatherer.state === undefined) {
+ iceGatherer.state = 'completed';
+ }
+
+ // Emit a candidate with type endOfCandidates to make the samples
+ // work. Edge requires addIceCandidate with this empty candidate
+ // to start checking. The real solution is to signal
+ // end-of-candidates to the other side when getting the null
+ // candidate but some apps (like the samples) don't do that.
+ event.candidate.candidate =
+ 'candidate:1 1 udp 1 0.0.0.0 9 typ endOfCandidates';
+ } else {
+ // RTCIceCandidate doesn't have a component, needs to be added
+ cand.component = iceTransport.component === 'RTCP' ? 2 : 1;
+ event.candidate.candidate = SDPUtils.writeCandidate(cand);
+ }
+
+ // update local description.
+ var sections = SDPUtils.splitSections(self.localDescription.sdp);
+ if (event.candidate.candidate.indexOf('typ endOfCandidates')
+ === -1) {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=' + event.candidate.candidate + '\r\n';
+ } else {
+ sections[event.candidate.sdpMLineIndex + 1] +=
+ 'a=end-of-candidates\r\n';
+ }
+ self.localDescription.sdp = sections.join('');
+
+ var complete = self.transceivers.every(function(transceiver) {
+ return transceiver.iceGatherer &&
+ transceiver.iceGatherer.state === 'completed';
+ });
+
+ // Emit candidate if localDescription is set.
+ // Also emits null candidate when all gatherers are complete.
+ switch (self.iceGatheringState) {
+ case 'new':
+ self._localIceCandidatesBuffer.push(event);
+ if (end && complete) {
+ self._localIceCandidatesBuffer.push(
+ new Event('icecandidate'));
+ }
+ break;
+ case 'gathering':
+ self._emitBufferedCandidates();
+ self.dispatchEvent(event);
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(event);
+ }
+ if (complete) {
+ self.dispatchEvent(new Event('icecandidate'));
+ if (self.onicecandidate !== null) {
+ self.onicecandidate(new Event('icecandidate'));
+ }
+ self.iceGatheringState = 'complete';
+ }
+ break;
+ case 'complete':
+ // should not happen... currently!
+ break;
+ default: // no-op.
+ break;
+ }
+ };
+ iceTransport.onicestatechange = function() {
+ self._updateConnectionState();
+ };
+
+ var dtlsTransport = new RTCDtlsTransport(iceTransport);
+ dtlsTransport.ondtlsstatechange = function() {
+ self._updateConnectionState();
+ };
+ dtlsTransport.onerror = function() {
+ // onerror does not set state to failed by itself.
+ dtlsTransport.state = 'failed';
+ self._updateConnectionState();
+ };
+
+ return {
+ iceGatherer: iceGatherer,
+ iceTransport: iceTransport,
+ dtlsTransport: dtlsTransport
+ };
+ };
+
+ // Start the RTP Sender and Receiver for a transceiver.
+ window.RTCPeerConnection.prototype._transceive = function(transceiver,
+ send, recv) {
+ var params = this._getCommonCapabilities(transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+ if (send && transceiver.rtpSender) {
+ params.encodings = transceiver.sendEncodingParameters;
+ params.rtcp = {
+ cname: SDPUtils.localCName
+ };
+ if (transceiver.recvEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpSender.send(params);
+ }
+ if (recv && transceiver.rtpReceiver) {
+ // remove RTX field in Edge 14942
+ if (transceiver.kind === 'video'
+ && transceiver.recvEncodingParameters) {
+ transceiver.recvEncodingParameters.forEach(function(p) {
+ delete p.rtx;
+ });
+ }
+ params.encodings = transceiver.recvEncodingParameters;
+ params.rtcp = {
+ cname: transceiver.cname
+ };
+ if (transceiver.sendEncodingParameters.length) {
+ params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;
+ }
+ transceiver.rtpReceiver.receive(params);
+ }
+ };
+
+ window.RTCPeerConnection.prototype.setLocalDescription =
+ function(description) {
+ var self = this;
+ var sections;
+ var sessionpart;
+ if (description.type === 'offer') {
+ // FIXME: What was the purpose of this empty if statement?
+ // if (!this._pendingOffer) {
+ // } else {
+ if (this._pendingOffer) {
+ // VERY limited support for SDP munging. Limited to:
+ // * changing the order of codecs
+ sections = SDPUtils.splitSections(description.sdp);
+ sessionpart = sections.shift();
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var caps = SDPUtils.parseRtpParameters(mediaSection);
+ self._pendingOffer[sdpMLineIndex].localCapabilities = caps;
+ });
+ this.transceivers = this._pendingOffer;
+ delete this._pendingOffer;
+ }
+ } else if (description.type === 'answer') {
+ sections = SDPUtils.splitSections(self.remoteDescription.sdp);
+ sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var transceiver = self.transceivers[sdpMLineIndex];
+ var iceGatherer = transceiver.iceGatherer;
+ var iceTransport = transceiver.iceTransport;
+ var dtlsTransport = transceiver.dtlsTransport;
+ var localCapabilities = transceiver.localCapabilities;
+ var remoteCapabilities = transceiver.remoteCapabilities;
+
+ var rejected = mediaSection.split('\n', 1)[0]
+ .split(' ', 2)[1] === '0';
+
+ if (!rejected && !transceiver.isDatachannel) {
+ var remoteIceParameters = SDPUtils.getIceParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ // ice-lite only includes host candidates in the SDP so we can
+ // use setRemoteCandidates (which implies an
+ // RTCIceCandidateComplete)
+ if (cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
}
- break
- case STATE_IGNORE_TAG:
- if (c === 62 /* > */) {
- state = STATE_TEXT
+ var remoteDtlsParameters = SDPUtils.getDtlsParameters(
+ mediaSection, sessionpart);
+ if (isIceLite) {
+ remoteDtlsParameters.role = 'server';
}
- break
- case STATE_TAG:
- if (c === 62 /* > */) {
- this._handleTagOpening(endTag, tagName, attrs)
- tagName = undefined
- attrs = undefined
- endTag = undefined
- selfClosing = undefined
- state = STATE_TEXT
- recordStart = pos + 1
- } else if (c === 47 /* / */) {
- selfClosing = true
- } else if (c > 32) {
- recordStart = pos
- state = STATE_ATTR_NAME
+
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ isIceLite ? 'controlling' : 'controlled');
+ dtlsTransport.start(remoteDtlsParameters);
}
- break
- case STATE_ATTR_NAME:
- if (c <= 32 || c === 61 /* = */) {
- attrName = endRecording()
- pos--
- state = STATE_ATTR_EQ
+
+ // Calculate intersection of capabilities.
+ var params = self._getCommonCapabilities(localCapabilities,
+ remoteCapabilities);
+
+ // Start the RTCRtpSender. The RTCRtpReceiver for this
+ // transceiver has already been started in setRemoteDescription.
+ self._transceive(transceiver,
+ params.codecs.length > 0,
+ false);
+ }
+ });
+ }
+
+ this.localDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-local-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
+
+ // If a success callback was provided, emit ICE candidates after it
+ // has been executed. Otherwise, emit callback after the Promise is
+ // resolved.
+ var hasCallback = arguments.length > 1 &&
+ typeof arguments[1] === 'function';
+ if (hasCallback) {
+ var cb = arguments[1];
+ window.setTimeout(function() {
+ cb();
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ self._emitBufferedCandidates();
+ }, 0);
+ }
+ var p = Promise.resolve();
+ p.then(function() {
+ if (!hasCallback) {
+ if (self.iceGatheringState === 'new') {
+ self.iceGatheringState = 'gathering';
+ }
+ // Usually candidates will be emitted earlier.
+ window.setTimeout(self._emitBufferedCandidates.bind(self), 500);
+ }
+ });
+ return p;
+ };
+
+ window.RTCPeerConnection.prototype.setRemoteDescription =
+ function(description) {
+ var self = this;
+ var stream = new MediaStream();
+ var receiverList = [];
+ var sections = SDPUtils.splitSections(description.sdp);
+ var sessionpart = sections.shift();
+ var isIceLite = SDPUtils.matchPrefix(sessionpart,
+ 'a=ice-lite').length > 0;
+ this.usingBundle = SDPUtils.matchPrefix(sessionpart,
+ 'a=group:BUNDLE ').length > 0;
+ sections.forEach(function(mediaSection, sdpMLineIndex) {
+ var lines = SDPUtils.splitLines(mediaSection);
+ var mline = lines[0].substr(2).split(' ');
+ var kind = mline[0];
+ var rejected = mline[1] === '0';
+ var direction = SDPUtils.getDirection(mediaSection, sessionpart);
+
+ var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:');
+ if (mid.length) {
+ mid = mid[0].substr(6);
+ } else {
+ mid = SDPUtils.generateIdentifier();
+ }
+
+ // Reject datachannels which are not implemented yet.
+ if (kind === 'application' && mline[2] === 'DTLS/SCTP') {
+ self.transceivers[sdpMLineIndex] = {
+ mid: mid,
+ isDatachannel: true
+ };
+ return;
+ }
+
+ var transceiver;
+ var iceGatherer;
+ var iceTransport;
+ var dtlsTransport;
+ var rtpSender;
+ var rtpReceiver;
+ var sendEncodingParameters;
+ var recvEncodingParameters;
+ var localCapabilities;
+
+ var track;
+ // FIXME: ensure the mediaSection has rtcp-mux set.
+ var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);
+ var remoteIceParameters;
+ var remoteDtlsParameters;
+ if (!rejected) {
+ remoteIceParameters = SDPUtils.getIceParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,
+ sessionpart);
+ remoteDtlsParameters.role = 'client';
+ }
+ recvEncodingParameters =
+ SDPUtils.parseRtpEncodingParameters(mediaSection);
+
+ var cname;
+ // Gets the first SSRC. Note that with RTX there might be multiple
+ // SSRCs.
+ var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')
+ .map(function(line) {
+ return SDPUtils.parseSsrcMedia(line);
+ })
+ .filter(function(obj) {
+ return obj.attribute === 'cname';
+ })[0];
+ if (remoteSsrc) {
+ cname = remoteSsrc.value;
+ }
+
+ var isComplete = SDPUtils.matchPrefix(mediaSection,
+ 'a=end-of-candidates', sessionpart).length > 0;
+ var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')
+ .map(function(cand) {
+ return SDPUtils.parseCandidate(cand);
+ })
+ .filter(function(cand) {
+ return cand.component === '1';
+ });
+ if (description.type === 'offer' && !rejected) {
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: self.transceivers[0].iceGatherer,
+ iceTransport: self.transceivers[0].iceTransport,
+ dtlsTransport: self.transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ if (isComplete) {
+ transports.iceTransport.setRemoteCandidates(cands);
+ }
+
+ localCapabilities = RTCRtpReceiver.getCapabilities(kind);
+
+ // filter RTX until additional stuff needed for RTX is implemented
+ // in adapter.js
+ localCapabilities.codecs = localCapabilities.codecs.filter(
+ function(codec) {
+ return codec.name !== 'rtx';
+ });
+
+ sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 2) * 1001
+ }];
+
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ // FIXME: not correct when there are multiple streams but that is
+ // not currently supported in this shim.
+ stream.addTrack(track);
+
+ // FIXME: look at direction.
+ if (self.localStreams.length > 0 &&
+ self.localStreams[0].getTracks().length >= sdpMLineIndex) {
+ var localTrack;
+ if (kind === 'audio') {
+ localTrack = self.localStreams[0].getAudioTracks()[0];
+ } else if (kind === 'video') {
+ localTrack = self.localStreams[0].getVideoTracks()[0];
}
- break
- case STATE_ATTR_EQ:
- if (c === 61 /* = */) {
- state = STATE_ATTR_QUOT
+ if (localTrack) {
+ rtpSender = new RTCRtpSender(localTrack,
+ transports.dtlsTransport);
}
- break
- case STATE_ATTR_QUOT:
- if (c === 34 /* " */ || c === 39 /* ' */) {
- attrQuote = c
- state = STATE_ATTR_VALUE
- recordStart = pos + 1
+ }
+
+ self.transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: remoteCapabilities,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ cname: cname,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: recvEncodingParameters
+ };
+ // Start the RTCRtpReceiver now. The RTPSender is started in
+ // setLocalDescription.
+ self._transceive(self.transceivers[sdpMLineIndex],
+ false,
+ direction === 'sendrecv' || direction === 'sendonly');
+ } else if (description.type === 'answer' && !rejected) {
+ transceiver = self.transceivers[sdpMLineIndex];
+ iceGatherer = transceiver.iceGatherer;
+ iceTransport = transceiver.iceTransport;
+ dtlsTransport = transceiver.dtlsTransport;
+ rtpSender = transceiver.rtpSender;
+ rtpReceiver = transceiver.rtpReceiver;
+ sendEncodingParameters = transceiver.sendEncodingParameters;
+ localCapabilities = transceiver.localCapabilities;
+
+ self.transceivers[sdpMLineIndex].recvEncodingParameters =
+ recvEncodingParameters;
+ self.transceivers[sdpMLineIndex].remoteCapabilities =
+ remoteCapabilities;
+ self.transceivers[sdpMLineIndex].cname = cname;
+
+ if ((isIceLite || isComplete) && cands.length) {
+ iceTransport.setRemoteCandidates(cands);
+ }
+ if (!self.usingBundle || sdpMLineIndex === 0) {
+ iceTransport.start(iceGatherer, remoteIceParameters,
+ 'controlling');
+ dtlsTransport.start(remoteDtlsParameters);
+ }
+
+ self._transceive(transceiver,
+ direction === 'sendrecv' || direction === 'recvonly',
+ direction === 'sendrecv' || direction === 'sendonly');
+
+ if (rtpReceiver &&
+ (direction === 'sendrecv' || direction === 'sendonly')) {
+ track = rtpReceiver.track;
+ receiverList.push([track, rtpReceiver]);
+ stream.addTrack(track);
+ } else {
+ // FIXME: actually the receiver should be created later.
+ delete transceiver.rtpReceiver;
+ }
+ }
+ });
+
+ this.remoteDescription = {
+ type: description.type,
+ sdp: description.sdp
+ };
+ switch (description.type) {
+ case 'offer':
+ this._updateSignalingState('have-remote-offer');
+ break;
+ case 'answer':
+ this._updateSignalingState('stable');
+ break;
+ default:
+ throw new TypeError('unsupported type "' + description.type +
+ '"');
+ }
+ if (stream.getTracks().length) {
+ self.remoteStreams.push(stream);
+ window.setTimeout(function() {
+ var event = new Event('addstream');
+ event.stream = stream;
+ self.dispatchEvent(event);
+ if (self.onaddstream !== null) {
+ window.setTimeout(function() {
+ self.onaddstream(event);
+ }, 0);
+ }
+
+ receiverList.forEach(function(item) {
+ var track = item[0];
+ var receiver = item[1];
+ var trackEvent = new Event('track');
+ trackEvent.track = track;
+ trackEvent.receiver = receiver;
+ trackEvent.streams = [stream];
+ self.dispatchEvent(event);
+ if (self.ontrack !== null) {
+ window.setTimeout(function() {
+ self.ontrack(trackEvent);
+ }, 0);
}
- break
- case STATE_ATTR_VALUE:
- if (c === attrQuote) {
- var value = unescapeXml(endRecording())
- attrs[attrName] = value
- attrName = undefined
- state = STATE_TAG
+ });
+ }, 0);
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.close = function() {
+ this.transceivers.forEach(function(transceiver) {
+ /* not yet
+ if (transceiver.iceGatherer) {
+ transceiver.iceGatherer.close();
+ }
+ */
+ if (transceiver.iceTransport) {
+ transceiver.iceTransport.stop();
+ }
+ if (transceiver.dtlsTransport) {
+ transceiver.dtlsTransport.stop();
+ }
+ if (transceiver.rtpSender) {
+ transceiver.rtpSender.stop();
+ }
+ if (transceiver.rtpReceiver) {
+ transceiver.rtpReceiver.stop();
+ }
+ });
+ // FIXME: clean up tracks, local streams, remote streams, etc
+ this._updateSignalingState('closed');
+ };
+
+ // Update the signaling state.
+ window.RTCPeerConnection.prototype._updateSignalingState =
+ function(newState) {
+ this.signalingState = newState;
+ var event = new Event('signalingstatechange');
+ this.dispatchEvent(event);
+ if (this.onsignalingstatechange !== null) {
+ this.onsignalingstatechange(event);
+ }
+ };
+
+ // Determine whether to fire the negotiationneeded event.
+ window.RTCPeerConnection.prototype._maybeFireNegotiationNeeded =
+ function() {
+ // Fire away (for now).
+ var event = new Event('negotiationneeded');
+ this.dispatchEvent(event);
+ if (this.onnegotiationneeded !== null) {
+ this.onnegotiationneeded(event);
+ }
+ };
+
+ // Update the connection state.
+ window.RTCPeerConnection.prototype._updateConnectionState = function() {
+ var self = this;
+ var newState;
+ var states = {
+ 'new': 0,
+ closed: 0,
+ connecting: 0,
+ checking: 0,
+ connected: 0,
+ completed: 0,
+ failed: 0
+ };
+ this.transceivers.forEach(function(transceiver) {
+ states[transceiver.iceTransport.state]++;
+ states[transceiver.dtlsTransport.state]++;
+ });
+ // ICETransport.completed and connected are the same for this purpose.
+ states.connected += states.completed;
+
+ newState = 'new';
+ if (states.failed > 0) {
+ newState = 'failed';
+ } else if (states.connecting > 0 || states.checking > 0) {
+ newState = 'connecting';
+ } else if (states.disconnected > 0) {
+ newState = 'disconnected';
+ } else if (states.new > 0) {
+ newState = 'new';
+ } else if (states.connected > 0 || states.completed > 0) {
+ newState = 'connected';
+ }
+
+ if (newState !== self.iceConnectionState) {
+ self.iceConnectionState = newState;
+ var event = new Event('iceconnectionstatechange');
+ this.dispatchEvent(event);
+ if (this.oniceconnectionstatechange !== null) {
+ this.oniceconnectionstatechange(event);
+ }
+ }
+ };
+
+ window.RTCPeerConnection.prototype.createOffer = function() {
+ var self = this;
+ if (this._pendingOffer) {
+ throw new Error('createOffer called while there is a pending offer.');
+ }
+ var offerOptions;
+ if (arguments.length === 1 && typeof arguments[0] !== 'function') {
+ offerOptions = arguments[0];
+ } else if (arguments.length === 3) {
+ offerOptions = arguments[2];
+ }
+
+ var tracks = [];
+ var numAudioTracks = 0;
+ var numVideoTracks = 0;
+ // Default to sendrecv.
+ if (this.localStreams.length) {
+ numAudioTracks = this.localStreams[0].getAudioTracks().length;
+ numVideoTracks = this.localStreams[0].getVideoTracks().length;
+ }
+ // Determine number of audio and video tracks we need to send/recv.
+ if (offerOptions) {
+ // Reject Chrome legacy constraints.
+ if (offerOptions.mandatory || offerOptions.optional) {
+ throw new TypeError(
+ 'Legacy mandatory/optional constraints not supported.');
+ }
+ if (offerOptions.offerToReceiveAudio !== undefined) {
+ numAudioTracks = offerOptions.offerToReceiveAudio;
+ }
+ if (offerOptions.offerToReceiveVideo !== undefined) {
+ numVideoTracks = offerOptions.offerToReceiveVideo;
+ }
+ }
+ if (this.localStreams.length) {
+ // Push local streams.
+ this.localStreams[0].getTracks().forEach(function(track) {
+ tracks.push({
+ kind: track.kind,
+ track: track,
+ wantReceive: track.kind === 'audio' ?
+ numAudioTracks > 0 : numVideoTracks > 0
+ });
+ if (track.kind === 'audio') {
+ numAudioTracks--;
+ } else if (track.kind === 'video') {
+ numVideoTracks--;
+ }
+ });
+ }
+ // Create M-lines for recvonly streams.
+ while (numAudioTracks > 0 || numVideoTracks > 0) {
+ if (numAudioTracks > 0) {
+ tracks.push({
+ kind: 'audio',
+ wantReceive: true
+ });
+ numAudioTracks--;
+ }
+ if (numVideoTracks > 0) {
+ tracks.push({
+ kind: 'video',
+ wantReceive: true
+ });
+ numVideoTracks--;
+ }
+ }
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ var transceivers = [];
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ // For each track, create an ice gatherer, ice transport,
+ // dtls transport, potentially rtpsender and rtpreceiver.
+ var track = mline.track;
+ var kind = mline.kind;
+ var mid = SDPUtils.generateIdentifier();
+
+ var transports = self.usingBundle && sdpMLineIndex > 0 ? {
+ iceGatherer: transceivers[0].iceGatherer,
+ iceTransport: transceivers[0].iceTransport,
+ dtlsTransport: transceivers[0].dtlsTransport
+ } : self._createIceAndDtlsTransports(mid, sdpMLineIndex);
+
+ var localCapabilities = RTCRtpSender.getCapabilities(kind);
+ // filter RTX until additional stuff needed for RTX is implemented
+ // in adapter.js
+ localCapabilities.codecs = localCapabilities.codecs.filter(
+ function(codec) {
+ return codec.name !== 'rtx';
+ });
+ localCapabilities.codecs.forEach(function(codec) {
+ // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552
+ // by adding level-asymmetry-allowed=1
+ if (codec.name === 'H264' &&
+ codec.parameters['level-asymmetry-allowed'] === undefined) {
+ codec.parameters['level-asymmetry-allowed'] = '1';
+ }
+ });
+
+ var rtpSender;
+ var rtpReceiver;
+
+ // generate an ssrc now, to be used later in rtpSender.send
+ var sendEncodingParameters = [{
+ ssrc: (2 * sdpMLineIndex + 1) * 1001
+ }];
+ if (track) {
+ rtpSender = new RTCRtpSender(track, transports.dtlsTransport);
+ }
+
+ if (mline.wantReceive) {
+ rtpReceiver = new RTCRtpReceiver(transports.dtlsTransport, kind);
+ }
+
+ transceivers[sdpMLineIndex] = {
+ iceGatherer: transports.iceGatherer,
+ iceTransport: transports.iceTransport,
+ dtlsTransport: transports.dtlsTransport,
+ localCapabilities: localCapabilities,
+ remoteCapabilities: null,
+ rtpSender: rtpSender,
+ rtpReceiver: rtpReceiver,
+ kind: kind,
+ mid: mid,
+ sendEncodingParameters: sendEncodingParameters,
+ recvEncodingParameters: null
+ };
+ });
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ tracks.forEach(function(mline, sdpMLineIndex) {
+ var transceiver = transceivers[sdpMLineIndex];
+ sdp += SDPUtils.writeMediaSection(transceiver,
+ transceiver.localCapabilities, 'offer', self.localStreams[0]);
+ });
+
+ this._pendingOffer = transceivers;
+ var desc = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.createAnswer = function() {
+ var self = this;
+
+ var sdp = SDPUtils.writeSessionBoilerplate();
+ if (this.usingBundle) {
+ sdp += 'a=group:BUNDLE ' + this.transceivers.map(function(t) {
+ return t.mid;
+ }).join(' ') + '\r\n';
+ }
+ this.transceivers.forEach(function(transceiver) {
+ if (transceiver.isDatachannel) {
+ sdp += 'm=application 0 DTLS/SCTP 5000\r\n' +
+ 'c=IN IP4 0.0.0.0\r\n' +
+ 'a=mid:' + transceiver.mid + '\r\n';
+ return;
+ }
+ // Calculate intersection of capabilities.
+ var commonCapabilities = self._getCommonCapabilities(
+ transceiver.localCapabilities,
+ transceiver.remoteCapabilities);
+
+ sdp += SDPUtils.writeMediaSection(transceiver, commonCapabilities,
+ 'answer', self.localStreams[0]);
+ });
+
+ var desc = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdp
+ });
+ if (arguments.length && typeof arguments[0] === 'function') {
+ window.setTimeout(arguments[0], 0, desc);
+ }
+ return Promise.resolve(desc);
+ };
+
+ window.RTCPeerConnection.prototype.addIceCandidate = function(candidate) {
+ if (candidate === null) {
+ this.transceivers.forEach(function(transceiver) {
+ transceiver.iceTransport.addRemoteCandidate({});
+ });
+ } else {
+ var mLineIndex = candidate.sdpMLineIndex;
+ if (candidate.sdpMid) {
+ for (var i = 0; i < this.transceivers.length; i++) {
+ if (this.transceivers[i].mid === candidate.sdpMid) {
+ mLineIndex = i;
+ break;
+ }
+ }
+ }
+ var transceiver = this.transceivers[mLineIndex];
+ if (transceiver) {
+ var cand = Object.keys(candidate.candidate).length > 0 ?
+ SDPUtils.parseCandidate(candidate.candidate) : {};
+ // Ignore Chrome's invalid candidates since Edge does not like them.
+ if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {
+ return;
+ }
+ // Ignore RTCP candidates, we assume RTCP-MUX.
+ if (cand.component !== '1') {
+ return;
+ }
+ // A dirty hack to make samples work.
+ if (cand.type === 'endOfCandidates') {
+ cand = {};
+ }
+ transceiver.iceTransport.addRemoteCandidate(cand);
+
+ // update the remoteDescription.
+ var sections = SDPUtils.splitSections(this.remoteDescription.sdp);
+ sections[mLineIndex + 1] += (cand.type ? candidate.candidate.trim()
+ : 'a=end-of-candidates') + '\r\n';
+ this.remoteDescription.sdp = sections.join('');
+ }
+ }
+ if (arguments.length > 1 && typeof arguments[1] === 'function') {
+ window.setTimeout(arguments[1], 0);
+ }
+ return Promise.resolve();
+ };
+
+ window.RTCPeerConnection.prototype.getStats = function() {
+ var promises = [];
+ this.transceivers.forEach(function(transceiver) {
+ ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',
+ 'dtlsTransport'].forEach(function(method) {
+ if (transceiver[method]) {
+ promises.push(transceiver[method].getStats());
+ }
+ });
+ });
+ var cb = arguments.length > 1 && typeof arguments[1] === 'function' &&
+ arguments[1];
+ return new Promise(function(resolve) {
+ // shim getStats with maplike support
+ var results = new Map();
+ Promise.all(promises).then(function(res) {
+ res.forEach(function(result) {
+ Object.keys(result).forEach(function(id) {
+ results.set(id, result[id]);
+ results[id] = result[id];
+ });
+ });
+ if (cb) {
+ window.setTimeout(cb, 0, results);
+ }
+ resolve(results);
+ });
+ });
+ };
+ }
+};
+
+// Expose public methods.
+module.exports = {
+ shimPeerConnection: edgeShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia')
+};
+
+},{"../utils":209,"./getusermedia":205,"sdp":173}],205:[function(require,module,exports){
+arguments[4][37][0].apply(exports,arguments)
+},{"dup":37}],206:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var browserDetails = require('../utils').browserDetails;
+
+var firefoxShim = {
+ shimOnTrack: function() {
+ if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in
+ window.RTCPeerConnection.prototype)) {
+ Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {
+ get: function() {
+ return this._ontrack;
+ },
+ set: function(f) {
+ if (this._ontrack) {
+ this.removeEventListener('track', this._ontrack);
+ this.removeEventListener('addstream', this._ontrackpoly);
+ }
+ this.addEventListener('track', this._ontrack = f);
+ this.addEventListener('addstream', this._ontrackpoly = function(e) {
+ e.stream.getTracks().forEach(function(track) {
+ var event = new Event('track');
+ event.track = track;
+ event.receiver = {track: track};
+ event.streams = [e.stream];
+ this.dispatchEvent(event);
+ }.bind(this));
+ }.bind(this));
+ }
+ });
+ }
+ },
+
+ shimSourceObject: function() {
+ // Firefox has supported mozSrcObject since FF22, unprefixed in 42.
+ if (typeof window === 'object') {
+ if (window.HTMLMediaElement &&
+ !('srcObject' in window.HTMLMediaElement.prototype)) {
+ // Shim the srcObject property, once, when HTMLMediaElement is found.
+ Object.defineProperty(window.HTMLMediaElement.prototype, 'srcObject', {
+ get: function() {
+ return this.mozSrcObject;
+ },
+ set: function(stream) {
+ this.mozSrcObject = stream;
+ }
+ });
+ }
+ }
+ },
+
+ shimPeerConnection: function() {
+ if (typeof window !== 'object' || !(window.RTCPeerConnection ||
+ window.mozRTCPeerConnection)) {
+ return; // probably media.peerconnection.enabled=false in about:config
+ }
+ // The RTCPeerConnection object.
+ if (!window.RTCPeerConnection) {
+ window.RTCPeerConnection = function(pcConfig, pcConstraints) {
+ if (browserDetails.version < 38) {
+ // .urls is not supported in FF < 38.
+ // create RTCIceServers with a single url.
+ if (pcConfig && pcConfig.iceServers) {
+ var newIceServers = [];
+ for (var i = 0; i < pcConfig.iceServers.length; i++) {
+ var server = pcConfig.iceServers[i];
+ if (server.hasOwnProperty('urls')) {
+ for (var j = 0; j < server.urls.length; j++) {
+ var newServer = {
+ url: server.urls[j]
+ };
+ if (server.urls[j].indexOf('turn') === 0) {
+ newServer.username = server.username;
+ newServer.credential = server.credential;
+ }
+ newIceServers.push(newServer);
}
- break
+ } else {
+ newIceServers.push(pcConfig.iceServers[i]);
+ }
}
+ pcConfig.iceServers = newIceServers;
+ }
+ }
+ return new mozRTCPeerConnection(pcConfig, pcConstraints);
+ };
+ window.RTCPeerConnection.prototype = mozRTCPeerConnection.prototype;
+
+ // wrap static methods. Currently just generateCertificate.
+ if (mozRTCPeerConnection.generateCertificate) {
+ Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {
+ get: function() {
+ return mozRTCPeerConnection.generateCertificate;
+ }
+ });
+ }
+
+ window.RTCSessionDescription = mozRTCSessionDescription;
+ window.RTCIceCandidate = mozRTCIceCandidate;
+ }
+
+ // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.
+ ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']
+ .forEach(function(method) {
+ var nativeMethod = RTCPeerConnection.prototype[method];
+ RTCPeerConnection.prototype[method] = function() {
+ arguments[0] = new ((method === 'addIceCandidate') ?
+ RTCIceCandidate : RTCSessionDescription)(arguments[0]);
+ return nativeMethod.apply(this, arguments);
+ };
+ });
+
+ // support for addIceCandidate(null)
+ var nativeAddIceCandidate =
+ RTCPeerConnection.prototype.addIceCandidate;
+ RTCPeerConnection.prototype.addIceCandidate = function() {
+ if (arguments[0] === null) {
+ if (arguments[1]) {
+ arguments[1].apply(null);
+ }
+ return Promise.resolve();
+ }
+ return nativeAddIceCandidate.apply(this, arguments);
+ };
+
+ // shim getStats with maplike support
+ var makeMapStats = function(stats) {
+ var map = new Map();
+ Object.keys(stats).forEach(function(key) {
+ map.set(key, stats[key]);
+ map[key] = stats[key];
+ });
+ return map;
+ };
+
+ var nativeGetStats = RTCPeerConnection.prototype.getStats;
+ RTCPeerConnection.prototype.getStats = function(selector, onSucc, onErr) {
+ return nativeGetStats.apply(this, [selector || null])
+ .then(function(stats) {
+ return makeMapStats(stats);
+ })
+ .then(onSucc, onErr);
+ };
+ }
+};
+
+// Expose public methods.
+module.exports = {
+ shimOnTrack: firefoxShim.shimOnTrack,
+ shimSourceObject: firefoxShim.shimSourceObject,
+ shimPeerConnection: firefoxShim.shimPeerConnection,
+ shimGetUserMedia: require('./getusermedia')
+};
+
+},{"../utils":209,"./getusermedia":207}],207:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var logging = require('../utils').log;
+var browserDetails = require('../utils').browserDetails;
+
+// Expose public methods.
+module.exports = function() {
+ var shimError_ = function(e) {
+ return {
+ name: {
+ SecurityError: 'NotAllowedError',
+ PermissionDeniedError: 'NotAllowedError'
+ }[e.name] || e.name,
+ message: {
+ 'The operation is insecure.': 'The request is not allowed by the ' +
+ 'user agent or the platform in the current context.'
+ }[e.message] || e.message,
+ constraint: e.constraint,
+ toString: function() {
+ return this.name + (this.message && ': ') + this.message;
+ }
+ };
+ };
+
+ // getUserMedia constraints shim.
+ var getUserMedia_ = function(constraints, onSuccess, onError) {
+ var constraintsToFF37_ = function(c) {
+ if (typeof c !== 'object' || c.require) {
+ return c;
+ }
+ var require = [];
+ Object.keys(c).forEach(function(key) {
+ if (key === 'require' || key === 'advanced' || key === 'mediaSource') {
+ return;
+ }
+ var r = c[key] = (typeof c[key] === 'object') ?
+ c[key] : {ideal: c[key]};
+ if (r.min !== undefined ||
+ r.max !== undefined || r.exact !== undefined) {
+ require.push(key);
+ }
+ if (r.exact !== undefined) {
+ if (typeof r.exact === 'number') {
+ r. min = r.max = r.exact;
+ } else {
+ c[key] = r.exact;
+ }
+ delete r.exact;
}
+ if (r.ideal !== undefined) {
+ c.advanced = c.advanced || [];
+ var oc = {};
+ if (typeof r.ideal === 'number') {
+ oc[key] = {min: r.ideal, max: r.ideal};
+ } else {
+ oc[key] = r.ideal;
+ }
+ c.advanced.push(oc);
+ delete r.ideal;
+ if (!Object.keys(r).length) {
+ delete c[key];
+ }
+ }
+ });
+ if (require.length) {
+ c.require = require;
+ }
+ return c;
+ };
+ constraints = JSON.parse(JSON.stringify(constraints));
+ if (browserDetails.version < 38) {
+ logging('spec: ' + JSON.stringify(constraints));
+ if (constraints.audio) {
+ constraints.audio = constraintsToFF37_(constraints.audio);
+ }
+ if (constraints.video) {
+ constraints.video = constraintsToFF37_(constraints.video);
+ }
+ logging('ff37: ' + JSON.stringify(constraints));
+ }
+ return navigator.mozGetUserMedia(constraints, onSuccess, function(e) {
+ onError(shimError_(e));
+ });
+ };
- if (typeof recordStart === 'number' &&
- recordStart <= data.length) {
+ // Returns the result of getUserMedia as a Promise.
+ var getUserMediaPromise_ = function(constraints) {
+ return new Promise(function(resolve, reject) {
+ getUserMedia_(constraints, resolve, reject);
+ });
+ };
+
+ // Shim for mediaDevices on older versions.
+ if (!navigator.mediaDevices) {
+ navigator.mediaDevices = {getUserMedia: getUserMediaPromise_,
+ addEventListener: function() { },
+ removeEventListener: function() { }
+ };
+ }
+ navigator.mediaDevices.enumerateDevices =
+ navigator.mediaDevices.enumerateDevices || function() {
+ return new Promise(function(resolve) {
+ var infos = [
+ {kind: 'audioinput', deviceId: 'default', label: '', groupId: ''},
+ {kind: 'videoinput', deviceId: 'default', label: '', groupId: ''}
+ ];
+ resolve(infos);
+ });
+ };
- remainder = data.slice(recordStart)
- recordStart = 0
+ if (browserDetails.version < 41) {
+ // Work around http://bugzil.la/1169665
+ var orgEnumerateDevices =
+ navigator.mediaDevices.enumerateDevices.bind(navigator.mediaDevices);
+ navigator.mediaDevices.enumerateDevices = function() {
+ return orgEnumerateDevices().then(undefined, function(e) {
+ if (e.name === 'NotFoundError') {
+ return [];
}
+ throw e;
+ });
+ };
+ }
+ if (browserDetails.version < 49) {
+ var origGetUserMedia = navigator.mediaDevices.getUserMedia.
+ bind(navigator.mediaDevices);
+ navigator.mediaDevices.getUserMedia = function(c) {
+ return origGetUserMedia(c).then(function(stream) {
+ // Work around https://bugzil.la/802326
+ if (c.audio && !stream.getAudioTracks().length ||
+ c.video && !stream.getVideoTracks().length) {
+ stream.getTracks().forEach(function(track) {
+ track.stop();
+ });
+ throw new DOMException('The object can not be found here.',
+ 'NotFoundError');
+ }
+ return stream;
+ }, function(e) {
+ return Promise.reject(shimError_(e));
+ });
+ };
+ }
+ navigator.getUserMedia = function(constraints, onSuccess, onError) {
+ if (browserDetails.version < 44) {
+ return getUserMedia_(constraints, onSuccess, onError);
}
+ // Replace Firefox 44+'s deprecation warning with unprefixed version.
+ console.warn('navigator.getUserMedia has been replaced by ' +
+ 'navigator.mediaDevices.getUserMedia');
+ navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
+ };
+};
- /*var origEmit = this.emit
- this.emit = function() {
- console.log('ltx', arguments)
- origEmit.apply(this, arguments)
- }*/
+},{"../utils":209}],208:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+'use strict';
+var safariShim = {
+ // TODO: DrAlex, should be here, double check against LayoutTests
+ // shimOnTrack: function() { },
+
+ // TODO: once the back-end for the mac port is done, add.
+ // TODO: check for webkitGTK+
+ // shimPeerConnection: function() { },
+
+ shimGetUserMedia: function() {
+ navigator.getUserMedia = navigator.webkitGetUserMedia;
+ }
+};
+
+// Expose public methods.
+module.exports = {
+ shimGetUserMedia: safariShim.shimGetUserMedia
+ // TODO
+ // shimOnTrack: safariShim.shimOnTrack,
+ // shimPeerConnection: safariShim.shimPeerConnection
+};
+
+},{}],209:[function(require,module,exports){
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree.
+ */
+ /* eslint-env node */
+'use strict';
+
+var logDisabled_ = true;
+
+// Utility methods.
+var utils = {
+ disableLog: function(bool) {
+ if (typeof bool !== 'boolean') {
+ return new Error('Argument type: ' + typeof bool +
+ '. Please use a boolean.');
+ }
+ logDisabled_ = bool;
+ return (bool) ? 'adapter.js logging disabled' :
+ 'adapter.js logging enabled';
+ },
+
+ log: function() {
+ if (typeof window === 'object') {
+ if (logDisabled_) {
+ return;
+ }
+ if (typeof console !== 'undefined' && typeof console.log === 'function') {
+ console.log.apply(console, arguments);
+ }
+ }
+ },
+
+ /**
+ * Extract browser version out of the provided user agent string.
+ *
+ * @param {!string} uastring userAgent string.
+ * @param {!string} expr Regular expression used as match criteria.
+ * @param {!number} pos position in the version string to be returned.
+ * @return {!number} browser version.
+ */
+ extractVersion: function(uastring, expr, pos) {
+ var match = uastring.match(expr);
+ return match && match.length >= pos && parseInt(match[pos], 10);
+ },
+
+ /**
+ * Browser detector.
+ *
+ * @return {object} result containing browser and version
+ * properties.
+ */
+ detectBrowser: function() {
+ // Returned result object.
+ var result = {};
+ result.browser = null;
+ result.version = null;
+
+ // Fail early if it's not a browser
+ if (typeof window === 'undefined' || !window.navigator) {
+ result.browser = 'Not a browser.';
+ return result;
+ }
+
+ // Firefox.
+ if (navigator.mozGetUserMedia) {
+ result.browser = 'firefox';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Firefox\/([0-9]+)\./, 1);
+
+ // all webkit-based browsers
+ } else if (navigator.webkitGetUserMedia) {
+ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now
+ if (window.webkitRTCPeerConnection) {
+ result.browser = 'chrome';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Chrom(e|ium)\/([0-9]+)\./, 2);
+
+ // Safari or unknown webkit-based
+ // for the time being Safari has support for MediaStreams but not webRTC
+ } else {
+ // Safari UA substrings of interest for reference:
+ // - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr)
+ // - safari UI version: Version/9.0.3 (unique to Safari)
+ // - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr)
+ //
+ // if the webkit version and safari UI webkit versions are equals,
+ // ... this is a stable version.
+ //
+ // only the internal webkit version is important today to know if
+ // media streams are supported
+ //
+ if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) {
+ result.browser = 'safari';
+ result.version = this.extractVersion(navigator.userAgent,
+ /AppleWebKit\/([0-9]+)\./, 1);
+
+ // unknown webkit-based browser
+ } else {
+ result.browser = 'Unsupported webkit-based browser ' +
+ 'with GUM support but no WebRTC support.';
+ return result;
+ }
+ }
+
+ // Edge.
+ } else if (navigator.mediaDevices &&
+ navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) {
+ result.browser = 'edge';
+ result.version = this.extractVersion(navigator.userAgent,
+ /Edge\/(\d+).(\d+)$/, 2);
+
+ // Default fallthrough: not supported.
+ } else {
+ result.browser = 'Not a supported browser.';
+ return result;
+ }
+
+ return result;
+ }
+};
+
+// Export.
+module.exports = {
+ log: utils.log,
+ disableLog: utils.disableLog,
+ browserDetails: utils.detectBrowser(),
+ extractVersion: utils.extractVersion
+};
+
+},{}],210:[function(require,module,exports){
+// created by @HenrikJoreteg
+var prefix;
+var version;
+
+if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) {
+ prefix = 'moz';
+ version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
+} else if (window.webkitRTCPeerConnection || navigator.webkitGetUserMedia) {
+ prefix = 'webkit';
+ version = navigator.userAgent.match(/Chrom(e|ium)/) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10);
}
-util.inherits(SaxLtx, events.EventEmitter)
+var PC = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
+var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
+var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
+var MediaStream = window.webkitMediaStream || window.MediaStream;
+var screenSharing = window.location.protocol === 'https:' &&
+ ((prefix === 'webkit' && version >= 26) ||
+ (prefix === 'moz' && version >= 33))
+var AudioContext = window.AudioContext || window.webkitAudioContext;
+var videoEl = document.createElement('video');
+var supportVp8 = videoEl && videoEl.canPlayType && videoEl.canPlayType('video/webm; codecs="vp8", vorbis') === "probably";
+var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia || navigator.mozGetUserMedia;
+
+// export support flags and constructors.prototype && PC
+module.exports = {
+ prefix: prefix,
+ browserVersion: version,
+ support: !!PC && supportVp8 && !!getUserMedia,
+ // new support style
+ supportRTCPeerConnection: !!PC,
+ supportVp8: supportVp8,
+ supportGetUserMedia: !!getUserMedia,
+ supportDataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
+ supportWebAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
+ supportMediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
+ supportScreenSharing: !!screenSharing,
+ // old deprecated style. Dont use this anymore
+ dataChannel: !!(PC && PC.prototype && PC.prototype.createDataChannel),
+ webAudio: !!(AudioContext && AudioContext.prototype.createMediaStreamSource),
+ mediaStream: !!(MediaStream && MediaStream.prototype.removeTrack),
+ screenSharing: !!screenSharing,
+ // constructors
+ AudioContext: AudioContext,
+ PeerConnection: PC,
+ SessionDescription: SessionDescription,
+ IceCandidate: IceCandidate,
+ MediaStream: MediaStream,
+ getUserMedia: getUserMedia
+};
-SaxLtx.prototype.end = function(data) {
- if (data) {
- this.write(data)
+},{}],211:[function(require,module,exports){
+/*
+WildEmitter.js is a slim little event emitter by @henrikjoreteg largely based
+on @visionmedia's Emitter from UI Kit.
+
+Why? I wanted it standalone.
+
+I also wanted support for wildcard emitters like this:
+
+emitter.on('*', function (eventName, other, event, payloads) {
+
+});
+
+emitter.on('somenamespace*', function (eventName, payloads) {
+
+});
+
+Please note that callbacks triggered by wildcard registered events also get
+the event name as the first argument.
+*/
+
+module.exports = WildEmitter;
+
+function WildEmitter() { }
+
+WildEmitter.mixin = function (constructor) {
+ var prototype = constructor.prototype || constructor;
+
+ prototype.isWildEmitter= true;
+
+ // Listen on the given `event` with `fn`. Store a group name if present.
+ prototype.on = function (event, groupName, fn) {
+ this.callbacks = this.callbacks || {};
+ var hasGroup = (arguments.length === 3),
+ group = hasGroup ? arguments[1] : undefined,
+ func = hasGroup ? arguments[2] : arguments[1];
+ func._groupName = group;
+ (this.callbacks[event] = this.callbacks[event] || []).push(func);
+ return this;
+ };
+
+ // Adds an `event` listener that will be invoked a single
+ // time then automatically removed.
+ prototype.once = function (event, groupName, fn) {
+ var self = this,
+ hasGroup = (arguments.length === 3),
+ group = hasGroup ? arguments[1] : undefined,
+ func = hasGroup ? arguments[2] : arguments[1];
+ function on() {
+ self.off(event, on);
+ func.apply(this, arguments);
+ }
+ this.on(event, group, on);
+ return this;
+ };
+
+ // Unbinds an entire group
+ prototype.releaseGroup = function (groupName) {
+ this.callbacks = this.callbacks || {};
+ var item, i, len, handlers;
+ for (item in this.callbacks) {
+ handlers = this.callbacks[item];
+ for (i = 0, len = handlers.length; i < len; i++) {
+ if (handlers[i]._groupName === groupName) {
+ //console.log('removing');
+ // remove it and shorten the array we're looping through
+ handlers.splice(i, 1);
+ i--;
+ len--;
+ }
+ }
+ }
+ return this;
+ };
+
+ // Remove the given callback for `event` or all
+ // registered callbacks.
+ prototype.off = function (event, fn) {
+ this.callbacks = this.callbacks || {};
+ var callbacks = this.callbacks[event],
+ i;
+
+ if (!callbacks) return this;
+
+ // remove all handlers
+ if (arguments.length === 1) {
+ delete this.callbacks[event];
+ return this;
+ }
+
+ // remove specific handler
+ i = callbacks.indexOf(fn);
+ callbacks.splice(i, 1);
+ if (callbacks.length === 0) {
+ delete this.callbacks[event];
+ }
+ return this;
+ };
+
+ /// Emit `event` with the given args.
+ // also calls any `*` handlers
+ prototype.emit = function (event) {
+ this.callbacks = this.callbacks || {};
+ var args = [].slice.call(arguments, 1),
+ callbacks = this.callbacks[event],
+ specialCallbacks = this.getWildcardCallbacks(event),
+ i,
+ len,
+ item,
+ listeners;
+
+ if (callbacks) {
+ listeners = callbacks.slice();
+ for (i = 0, len = listeners.length; i < len; ++i) {
+ if (!listeners[i]) {
+ break;
+ }
+ listeners[i].apply(this, args);
+ }
+ }
+
+ if (specialCallbacks) {
+ len = specialCallbacks.length;
+ listeners = specialCallbacks.slice();
+ for (i = 0, len = listeners.length; i < len; ++i) {
+ if (!listeners[i]) {
+ break;
+ }
+ listeners[i].apply(this, [event].concat(args));
+ }
+ }
+
+ return this;
+ };
+
+ // Helper for for finding special wildcard event handlers that match the event
+ prototype.getWildcardCallbacks = function (eventName) {
+ this.callbacks = this.callbacks || {};
+ var item,
+ split,
+ result = [];
+
+ for (item in this.callbacks) {
+ split = item.split('*');
+ if (item === '*' || (split.length === 2 && eventName.slice(0, split[0].length) === split[0])) {
+ result = result.concat(this.callbacks[item]);
+ }
+ }
+ return result;
+ };
+
+};
+
+WildEmitter.mixin(WildEmitter);
+
+},{}],212:[function(require,module,exports){
+module.exports = {
+ Namespace: require('./lib/namespaces'),
+ MUC: require('./lib/muc'),
+ PubSub: require('./lib/pubsub'),
+ Jingle: require('./lib/jingle'),
+ Presence: require('./lib/presence')
+};
+
+},{"./lib/jingle":213,"./lib/muc":214,"./lib/namespaces":215,"./lib/presence":216,"./lib/pubsub":217}],213:[function(require,module,exports){
+module.exports = {
+ Action: {
+ CONTENT_ACCEPT: 'content-accept',
+ CONTENT_ADD: 'content-add',
+ CONTENT_MODIFY: 'content-modify',
+ CONTENT_REJECT: 'content-reject',
+ CONTENT_REMOVE: 'content-remove',
+ DESCRIPTION_INFO: 'description-info',
+ SECURITY_INFO: 'security-info',
+ SESSION_ACCEPT: 'session-accept',
+ SESSION_INFO: 'session-info',
+ SESSION_INITIATE: 'session-initiate',
+ SESSION_TERMINATE: 'session-terminate',
+ TRANSPORT_ACCEPT: 'transport-accept',
+ TRANSPORT_INFO: 'transport-info',
+ TRANSPORT_REJECT: 'transport-reject',
+ TRANSPORT_REPLACE: 'transport-replace'
+ },
+ Reason: {
+ ALTERNATIVE_SESSION: 'alernative-session',
+ BUSY: 'busy',
+ CANCEL: 'cancel',
+ CONNECTIVITY_ERROR: 'connectivity-error',
+ DECLINE: 'decline',
+ EXPIRED: 'expired',
+ FAILED_APPLICATION: 'failed-application',
+ FAILED_TRANSPORT: 'failed-transport',
+ GENERAL_ERROR: 'general-error',
+ GONE: 'gone',
+ INCOMPATIBLE_PARAMETERS: 'incompatible-parameters',
+ MEDIA_ERROR: 'media-error',
+ SECURITY_ERROR: 'security-error',
+ SUCCESS: 'success',
+ TIMEOUT: 'timeout',
+ UNSUPPORTED_APPLICATIONS: 'unsupported-applications',
+ UNSUPPORTED_TRANSPORTS: 'unsupported-transports'
+ },
+ Condition: {
+ OUT_OF_ORDER: 'out-of-order',
+ TIE_BREAK: 'tie-break',
+ UNKNOWN_SESSION: 'unknown-session',
+ UNSUPPORTED_INFO: 'unsupported-info'
+ }
+};
+
+},{}],214:[function(require,module,exports){
+module.exports = {
+ Status: {
+ REALJID_PUBLIC: '100',
+ AFFILIATION_CHANGED: '101',
+ UNAVAILABLE_SHOWN: '102',
+ UNAVAILABLE_NOT_SHOWN: '103',
+ CONFIGURATION_CHANGED: '104',
+ SELF_PRESENCE: '110',
+ LOGGING_ENABLED: '170',
+ LOGGING_DISABLED: '171',
+ NON_ANONYMOUS: '172',
+ SEMI_ANONYMOUS: '173',
+ FULLY_ANONYMOUS: '174',
+ ROOM_CREATED: '201',
+ NICK_ASSIGNED: '210',
+ BANNED: '301',
+ NEW_NICK: '303',
+ KICKED: '307',
+ REMOVED_AFFILIATION: '321',
+ REMOVED_MEMBERSHIP: '322',
+ REMOVED_SHUTDOWN: '332'
+ },
+ Affiliation: {
+ ADMIN: 'admin',
+ MEMBER: 'member',
+ NONE: 'none',
+ OUTCAST: 'outcast',
+ OWNER: 'owner'
+ },
+ Role: {
+ MODERATOR: 'moderator',
+ NONE: 'none',
+ PARTICIPANT: 'participant',
+ VISITOR: 'visitor'
}
+};
+
+},{}],215:[function(require,module,exports){
+module.exports = {
+// ================================================================
+// RFCS
+// ================================================================
+
+// RFC 6120
+ BIND: 'urn:ietf:params:xml:ns:xmpp-bind',
+ CLIENT: 'jabber:client',
+ SASL: 'urn:ietf:params:xml:ns:xmpp-sasl',
+ SERVER: 'jabber:server',
+ SESSION: 'urn:ietf:params:xml:ns:xmpp-session',
+ STANZA_ERROR: 'urn:ietf:params:xml:ns:xmpp-stanzas',
+ STREAM: 'http://etherx.jabber.org/streams',
+ STREAM_ERROR: 'urn:ietf:params:xml:ns:xmpp-streams',
+
+// RFC 6121
+ ROSTER: 'jabber:iq:roster',
+ ROSTER_VERSIONING: 'urn:xmpp:features:rosterver',
+ SUBSCRIPTION_PREAPPROVAL: 'urn:xmpp:features:pre-approval',
+
+// RFC 7395
+ FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing',
+
+// ================================================================
+// XEPS
+// ================================================================
+
+// XEP-0004
+ DATAFORM: 'jabber:x:data',
+
+// XEP-0009
+ RPC: 'jabber:iq:rpc',
+
+// XEP-0012
+ LAST_ACTIVITY: 'jabber:iq:last',
+
+// XEP-0016
+ PRIVACY: 'jabber:iq:privacy',
+
+// XEP-0030
+ DISCO_INFO: 'http://jabber.org/protocol/disco#info',
+ DISCO_ITEMS: 'http://jabber.org/protocol/disco#items',
+
+// XEP-0033
+ ADDRESS: 'http://jabber.org/protocol/address',
+
+// XEP-0045
+ MUC: 'http://jabber.org/protocol/muc',
+ MUC_ADMIN: 'http://jabber.org/protocol/muc#admin',
+ MUC_OWNER: 'http://jabber.org/protocol/muc#owner',
+ MUC_USER: 'http://jabber.org/protocol/muc#user',
+
+// XEP-0047
+ IBB: 'http://jabber.org/protocol/ibb',
+
+// XEP-0048
+ BOOKMARKS: 'storage:bookmarks',
+
+// XEP-0049
+ PRIVATE: 'jabber:iq:private',
+
+// XEP-0050
+ ADHOC_COMMANDS: 'http://jabber.org/protocol/commands',
+
+// XEP-0054
+ VCARD_TEMP: 'vcard-temp',
+
+// XEP-0055
+ SEARCH: 'jabber:iq:search',
+
+// XEP-0059
+ RSM: 'http://jabber.org/protocol/rsm',
+
+// XEP-0060
+ PUBSUB: 'http://jabber.org/protocol/pubsub',
+ PUBSUB_ERRORS: 'http://jabber.org/protocol/pubsub#errors',
+ PUBSUB_EVENT: 'http://jabber.org/protocol/pubsub#event',
+ PUBSUB_OWNER: 'http://jabber.org/protocol/pubsub#owner',
+
+// XEP-0065
+ SOCKS5: 'http://jabber.org/protocol/bytestreams',
+
+// XEP-0066
+ OOB: 'jabber:x:oob',
+
+// XEP-0070
+ HTTP_AUTH: 'http://jabber.org/protocol/http-auth',
+
+// XEP-0071
+ XHTML_IM: 'http://jabber.org/protocol/xhtml-im',
+
+// XEP-0077
+ REGISTER: 'jabber:iq:register',
+
+// XEP-0079
+ AMP: 'http://jabber.org/protocol/amp',
+
+// XEP-0080
+ GEOLOC: 'http://jabber.org/protocol/geoloc',
+
+// XEP-0083
+ ROSTER_DELIMITER: 'roster:delimiter',
+
+// XEP-0084
+ AVATAR_DATA: 'urn:xmpp:avatar:data',
+ AVATAR_METADATA: 'urn:xmpp:avatar:metadata',
+
+// XEP-0085
+ CHAT_STATES: 'http://jabber.org/protocol/chatstates',
+
+// XEP-0092
+ VERSION: 'jabber:iq:version',
+
+// XEP-0107
+ MOOD: 'http://jabber.org/protocol/mood',
+
+// XEP-0108
+ ACTIVITY: 'http://jabber.org/protocol/activity',
+
+// XEP-0114
+ COMPONENT: 'jabber:component:accept',
+
+// XEP-0115
+ CAPS: 'http://jabber.org/protocol/caps',
+
+// XEP-0118
+ TUNE: 'http://jabber.org/protocol/tune',
+
+// XEP-0122
+ DATAFORM_VALIDATION: 'http://jabber.org/protocol/xdata-validate',
+
+// XEP-0124
+ BOSH: 'http://jabber.org/protocol/httpbind',
+
+// XEP-0131
+ SHIM: 'http://jabber.org/protocol/shim',
+
+// XEP-0138
+ COMPRESSION: 'http://jabber.org/features/compress',
+
+// XEP-0141
+ DATAFORM_LAYOUT: 'http://jabber.org/protocol/xdata-layout',
+
+// XEP-0144
+ ROSTER_EXCHANGE: 'http://jabber.org/protocol/rosterx',
+
+// XEP-0145
+ ROSTER_NOTES: 'storage:rosternotes',
+
+// XEP-0152
+ REACH_0: 'urn:xmpp:reach:0',
+
+// XEP-0153
+ VCARD_TEMP_UPDATE: 'vcard-temp:x:update',
+
+// XEP-0158
+ CAPTCHA: 'urn:xmpp:captcha',
+
+// XEP-0166
+ JINGLE_1: 'urn:xmpp:jingle:1',
+ JINGLE_ERRORS_1: 'urn:xmpp:jingle:errors:1',
+
+// XEP-0167
+ JINGLE_RTP_1: 'urn:xmpp:jingle:apps:rtp:1',
+ JINGLE_RTP_ERRORS_1: 'urn:xmpp:jingle:apps:rtp:errors:1',
+ JINGLE_RTP_INFO_1: 'urn:xmpp:jingle:apps:rtp:info:1',
+
+// XEP-0171
+ LANG_TRANS: 'urn:xmpp:langtrans',
+ LANG_TRANS_ITEMS: 'urn:xmpp:langtrans:items',
+
+// XEP-0172
+ NICK: 'http://jabber.org/protocol/nick',
+
+// XEP-0176
+ JINGLE_ICE_UDP_1: 'urn:xmpp:jingle:transports:ice-udp:1',
+
+// XEP-0177
+ JINGLE_RAW_UDP_1: 'urn:xmpp:jingle:transports:raw-udp:1',
+
+// XEP-0184
+ RECEIPTS: 'urn:xmpp:receipts',
+
+// XEP-0186
+ INVISIBLE_0: 'urn:xmpp:invisible:0',
+
+// XEP-0191
+ BLOCKING: 'urn:xmpp:blocking',
+
+// XEP-0198
+ SMACKS_3: 'urn:xmpp:sm:3',
+
+// XEP-0199
+ PING: 'urn:xmpp:ping',
+
+// XEP-0202
+ TIME: 'urn:xmpp:time',
+
+// XEP-0203
+ DELAY: 'urn:xmpp:delay',
+
+// XEP-0206
+ BOSH_XMPP: 'urn:xmpp:xbosh',
+
+// XEP-0215
+ DISCO_EXTERNAL_1: 'urn:xmpp:extdisco:1',
+
+// XEP-0221
+ DATAFORM_MEDIA: 'urn:xmpp:media-element',
+
+// XEP-0224
+ ATTENTION_0: 'urn:xmpp:attention:0',
+
+// XEP-0231
+ BOB: 'urn:xmpp:bob',
+
+// XEP-0234
+ FILE_TRANSFER_3: 'urn:xmpp:jingle:apps:file-transfer:3',
+ FILE_TRANSFER_4: 'urn:xmpp:jingle:apps:file-transfer:4',
+
+// XEP-0249
+ MUC_DIRECT_INVITE: 'jabber:x:conference',
+
+// XEP-0258
+ SEC_LABEL_0: 'urn:xmpp:sec-label:0',
+ SEC_LABEL_CATALOG_2: 'urn:xmpp:sec-label:catalog:2',
+ SEC_LABEL_ESS_0: 'urn:xmpp:sec-label:ess:0',
- /* Uh, yeah */
- this.write = function() {}
+// XEP-0260
+ JINGLE_SOCKS5_1: 'urn:xmpp:jingle:transports:s5b:1',
+
+// XEP-0261
+ JINGLE_IBB_1: 'urn:xmpp:jingle:transports:ibb:1',
+
+// XEP-0262
+ JINGLE_RTP_ZRTP_1: 'urn:xmpp:jingle:apps:rtp:zrtp:1',
+
+// XEP-0264
+ THUMBS_0: 'urn:xmpp:thumbs:0',
+ THUMBS_1: 'urn:xmpp:thumbs:1',
+
+// XEP-0276
+ DECLOAKING_0: 'urn:xmpp:decloaking:0',
+
+// XEP-0280
+ CARBONS_2: 'urn:xmpp:carbons:2',
+
+// XEP-0293
+ JINGLE_RTP_RTCP_FB_0: 'urn:xmpp:jingle:apps:rtp:rtcp-fb:0',
+
+// XEP-0294
+ JINGLE_RTP_HDREXT_0: 'urn:xmpp:jingle:apps:rtp:rtp-hdrext:0',
+
+// XEP-0297
+ FORWARD_0: 'urn:xmpp:forward:0',
+
+// XEP-0300
+ HASHES_1: 'urn:xmpp:hashes:1',
+
+// XEP-0301
+ RTT_0: 'urn:xmpp:rtt:0',
+
+// XEP-0307
+ MUC_UNIQUE: 'http://jabber.org/protocol/muc#unique',
+
+// XEP-308
+ CORRECTION_0: 'urn:xmpp:message-correct:0',
+
+// XEP-0310
+ PSA: 'urn:xmpp:psa',
+
+// XEP-0313
+ MAM_TMP: 'urn:xmpp:mam:tmp',
+ MAM_0: 'urn:xmpp:mam:0',
+
+// XEP-0317
+ HATS_0: 'urn:xmpp:hats:0',
+
+// XEP-0319
+ IDLE_1: 'urn:xmpp:idle:1',
+
+// XEP-0320
+ JINGLE_DTLS_0: 'urn:xmpp:jingle:apps:dtls:0',
+
+// XEP-0328
+ JID_PREP_0: 'urn:xmpp:jidprep:0',
+
+// XEP-0334
+ HINTS: 'urn:xmpp:hints',
+
+// XEP-0335
+ JSON_0: 'urn:xmpp:json:0',
+
+// XEP-0337
+ EVENTLOG: 'urn:xmpp:eventlog',
+
+// XEP-0338
+ JINGLE_GROUPING_0: 'urn:xmpp:jingle:apps:grouping:0',
+
+// XEP-0339
+ JINGLE_RTP_SSMA_0: 'urn:xmpp:jingle:apps:rtp:ssma:0',
+
+// XEP-0340
+ COLIBRI: 'http://jitsi.org/protocol/colibri',
+
+// XEP-0343
+ DTLS_SCTP_1: 'urn:xmpp:jingle:transports:dtls-sctp:1',
+
+// XEP-0352
+ CSI: 'urn:xmpp:csi',
+
+// XEP-0353
+ JINGLE_MSG_INITIATE_0: 'urn:xmpp:jingle:jingle-message:0',
+
+// XEP-0357
+ PUSH_0: 'urn:xmpp:push:0',
+
+// XEP-0358
+ JINGLE_PUB_1: 'urn:xmpp:jinglepub:1'
+};
+
+},{}],216:[function(require,module,exports){
+module.exports = {
+ Type: {
+ SUBSCRIBE: 'subscribe',
+ SUBSCRIBED: 'subscribed',
+ UNSUBSCRIBE: 'unsubscribe',
+ UNSUBSCRIBED: 'unsubscribed',
+ PROBE: 'probe',
+ UNAVAILABLE: 'unavailable'
+ },
+ Show: {
+ CHAT: 'chat',
+ AWAY: 'away',
+ DO_NOT_DISTURB: 'dnd',
+ EXTENDED_AWAY: 'xa'
+ }
+};
+
+},{}],217:[function(require,module,exports){
+module.exports = {
+ Affiliation: {
+ MEMBER: 'member',
+ NONE: 'none',
+ OUTCAST: 'outcast',
+ OWNER: 'owner',
+ PUBLISHER: 'publisher',
+ PUBLISH_ONLY: 'publish-only'
+ },
+ Subscription: {
+ NONE: 'none',
+ PENDING: 'pending',
+ UNCONFIGURED: 'unconfigured',
+ SUBSCRIBED: 'subscribed'
+ },
+ AccessModel: {
+ OPEN: 'open',
+ PRESENCE: 'presence',
+ ROSTER: 'roster',
+ AUTHORIZE: 'authorize',
+ WHITELIST: 'whitelist'
+ },
+ Condition: {
+ CONFLICT: 'conflict'
+ }
+};
+
+},{}],218:[function(require,module,exports){
+'use strict';
+
+var StringPrep = require('./lib/stringprep');
+
+// All of our StringPrep fallbacks work correctly
+// in the ASCII range, so we can reliably mark
+// ASCII-only JIDs as prepped.
+var ASCII = /^[\x00-\x7F]*$/;
+
+
+
+function bareJID(local, domain) {
+ if (local) {
+ return local + '@' + domain;
+ }
+ return domain;
}
-function unescapeXml(s) {
- return s.
- replace(/\&(amp|#38);/g, '&').
- replace(/\&(lt|#60);/g, '<').
- replace(/\&(gt|#62);/g, '>').
- replace(/\&(quot|#34);/g, '"').
- replace(/\&(apos|#39);/g, '\'').
- replace(/\&(nbsp|#160);/g, '\n')
+function fullJID(local, domain, resource) {
+ if (resource) {
+ return bareJID(local, domain) + '/' + resource;
+ }
+ return bareJID(local, domain);
}
-},{"events":6,"util":28}],249:[function(require,module,exports){
-arguments[4][120][0].apply(exports,arguments)
-},{"dup":120}],250:[function(require,module,exports){
-arguments[4][121][0].apply(exports,arguments)
-},{"./rng":249,"dup":121}],251:[function(require,module,exports){
-arguments[4][83][0].apply(exports,arguments)
-},{"dup":83}],252:[function(require,module,exports){
+
+exports.prep = function (data) {
+ var local = data.local;
+ var domain = data.domain;
+ var resource = data.resource;
+ var unescapedLocal = local;
+
+ if (local) {
+ local = StringPrep.nodeprep(local);
+ unescapedLocal = exports.unescape(local);
+ }
+
+ if (resource) {
+ resource = StringPrep.resourceprep(resource);
+ }
+
+ if (domain[domain.length - 1] === '.') {
+ domain = domain.slice(0, domain.length - 1);
+ }
+
+ domain = StringPrep.nameprep(domain.split('.').map(StringPrep.toUnicode).join('.'));
+
+ return {
+ prepped: data.prepped || StringPrep.available,
+ local: local,
+ domain: domain,
+ resource: resource,
+ bare: bareJID(local, domain),
+ full: fullJID(local, domain, resource),
+ unescapedLocal: unescapedLocal,
+ unescapedBare: bareJID(unescapedLocal, domain),
+ unescapedFull: fullJID(unescapedLocal, domain, resource)
+ };
+};
+
+exports.parse = function (jid, trusted) {
+ var local = '';
+ var domain = '';
+ var resource = '';
+
+ trusted = trusted || ASCII.test(jid);
+
+ var resourceStart = jid.indexOf('/');
+ if (resourceStart > 0) {
+ resource = jid.slice(resourceStart + 1);
+ jid = jid.slice(0, resourceStart);
+ }
+
+ var localEnd = jid.indexOf('@');
+ if (localEnd > 0) {
+ local = jid.slice(0, localEnd);
+ jid = jid.slice(localEnd + 1);
+ }
+
+ domain = jid;
+
+ var preppedJID = exports.prep({
+ local: local,
+ domain: domain,
+ resource: resource,
+ });
+
+ preppedJID.prepped = preppedJID.prepped || trusted;
+
+ return preppedJID;
+};
+
+exports.equal = function (jid1, jid2, requirePrep) {
+ jid1 = new exports.JID(jid1);
+ jid2 = new exports.JID(jid2);
+ if (arguments.length === 2) {
+ requirePrep = true;
+ }
+ return jid1.local === jid2.local &&
+ jid1.domain === jid2.domain &&
+ jid1.resource === jid2.resource &&
+ (requirePrep ? jid1.prepped && jid2.prepped : true);
+};
+
+exports.equalBare = function (jid1, jid2, requirePrep) {
+ jid1 = new exports.JID(jid1);
+ jid2 = new exports.JID(jid2);
+ if (arguments.length === 2) {
+ requirePrep = true;
+ }
+ return jid1.local === jid2.local &&
+ jid1.domain === jid2.domain &&
+ (requirePrep ? jid1.prepped && jid2.prepped : true);
+};
+
+exports.isBare = function (jid) {
+ jid = new exports.JID(jid);
+
+ var hasResource = !!jid.resource;
+
+ return !hasResource;
+};
+
+exports.isFull = function (jid) {
+ jid = new exports.JID(jid);
+
+ var hasResource = !!jid.resource;
+
+ return hasResource;
+};
+
+exports.escape = function (val) {
+ return val.replace(/^\s+|\s+$/g, '')
+ .replace(/\\5c/g, '\\5c5c')
+ .replace(/\\20/g, '\\5c20')
+ .replace(/\\22/g, '\\5c22')
+ .replace(/\\26/g, '\\5c26')
+ .replace(/\\27/g, '\\5c27')
+ .replace(/\\2f/g, '\\5c2f')
+ .replace(/\\3a/g, '\\5c3a')
+ .replace(/\\3c/g, '\\5c3c')
+ .replace(/\\3e/g, '\\5c3e')
+ .replace(/\\40/g, '\\5c40')
+ .replace(/ /g, '\\20')
+ .replace(/\"/g, '\\22')
+ .replace(/\&/g, '\\26')
+ .replace(/\'/g, '\\27')
+ .replace(/\//g, '\\2f')
+ .replace(/:/g, '\\3a')
+ .replace(/</g, '\\3c')
+ .replace(/>/g, '\\3e')
+ .replace(/@/g, '\\40');
+};
+
+exports.unescape = function (val) {
+ return val.replace(/\\20/g, ' ')
+ .replace(/\\22/g, '"')
+ .replace(/\\26/g, '&')
+ .replace(/\\27/g, '\'')
+ .replace(/\\2f/g, '/')
+ .replace(/\\3a/g, ':')
+ .replace(/\\3c/g, '<')
+ .replace(/\\3e/g, '>')
+ .replace(/\\40/g, '@')
+ .replace(/\\5c/g, '\\');
+};
+
+
+exports.create = function (local, domain, resource) {
+ return new exports.JID(local, domain, resource);
+};
+
+exports.JID = function JID(localOrJID, domain, resource) {
+ var parsed = {};
+ if (localOrJID && !domain && !resource) {
+ if (typeof localOrJID === 'string') {
+ parsed = exports.parse(localOrJID);
+ } else if (localOrJID._isJID || localOrJID instanceof exports.JID) {
+ parsed = localOrJID;
+ } else {
+ throw new Error('Invalid argument type');
+ }
+ } else if (domain) {
+ var trusted = ASCII.test(localOrJID) && ASCII.test(domain);
+ if (resource) {
+ trusted = trusted && ASCII.test(resource);
+ }
+
+ parsed = exports.prep({
+ local: exports.escape(localOrJID),
+ domain: domain,
+ resource: resource,
+ prepped: trusted
+ });
+ } else {
+ parsed = {};
+ }
+
+ this._isJID = true;
+
+ this.local = parsed.local || '';
+ this.domain = parsed.domain || '';
+ this.resource = parsed.resource || '';
+ this.bare = parsed.bare || '';
+ this.full = parsed.full || '';
+
+ this.unescapedLocal = parsed.unescapedLocal || '';
+ this.unescapedBare = parsed.unescapedBare || '';
+ this.unescapedFull = parsed.unescapedFull || '';
+
+ this.prepped = parsed.prepped;
+};
+
+exports.JID.prototype.toString = function () {
+ return this.full;
+};
+
+exports.JID.prototype.toJSON = function () {
+ return this.full;
+};
+
+},{"./lib/stringprep":219}],219:[function(require,module,exports){
+'use strict';
+
+var punycode = require('punycode');
+
+
+exports.available = false;
+
+exports.toUnicode = punycode.toUnicode;
+
+exports.nameprep = function (str) {
+ return str.toLowerCase();
+};
+
+exports.nodeprep = function (str) {
+ return str.toLowerCase();
+};
+
+exports.resourceprep = function (str) {
+ return str;
+};
+
+},{"punycode":154}],220:[function(require,module,exports){
/* jshint -W117 */
'use strict';
var JSM = require('jingle');
var RTC = require('webrtc-adapter-test');
+var GUM = require('getusermedia');
+var GSM = require('getscreenmedia');
var jxt = require('jxt').createRegistry();
jxt.use(require('jxt-xmpp-types'));
@@ -23808,11 +31537,15 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
localStream: null,
manager: null,
RTC: null,
+ getUserMedia: null,
+ getScreenMedia: null,
init: function(conn) {
var self = this;
self.RTC = RTC;
+ self.getUserMedia = GUM;
+ self.getScreenMedia = GSM;
self.connection = conn;
@@ -23889,7 +31622,7 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
return true;
},
- initiate: function(peerjid, stream) { // initiate a new jinglesession to peerjid
+ initiate: function(peerjid, stream, offerOptions) { // initiate a new jinglesession to peerjid
var session = this.manager.createMediaSession(peerjid);
session.on('change:connectionState', function(session, state) {
@@ -23903,8 +31636,7 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
// configure session
if (this.localStream) {
session.addStream(this.localStream);
- //TODO: add offer options here, instead of above in the init
- session.start();
+ session.start(offerOptions);
return session;
}
@@ -23933,4 +31665,4 @@ var IqStanza = jxt.getDefinition('iq', 'jabber:client');
});
}(jQuery));
-},{"jingle":29,"jxt":228,"jxt-xmpp":157,"jxt-xmpp-types":125,"webrtc-adapter-test":251}]},{},[252]);
+},{"getscreenmedia":31,"getusermedia":32,"jingle":53,"jxt":120,"jxt-xmpp":81,"jxt-xmpp-types":54,"webrtc-adapter-test":200}]},{},[220]);
diff --git a/build/js/jsxc/lib/strophe.js/strophe.js b/build/js/jsxc/lib/strophe.js/strophe.js
index dc5dcde..e5018a1 100644
--- a/build/js/jsxc/lib/strophe.js/strophe.js
+++ b/build/js/jsxc/lib/strophe.js/strophe.js
@@ -1,13 +1,11 @@
/** File: strophe.js
- * A JavaScript library for XMPP BOSH/XMPP over Websocket.
+ * A JavaScript library for writing XMPP clients.
*
- * This is the JavaScript version of the Strophe library. Since JavaScript
- * had no facilities for persistent TCP connections, this library uses
- * Bidirectional-streams Over Synchronous HTTP (BOSH) to emulate
- * a persistent, stateful, two-way connection to an XMPP server. More
- * information on BOSH can be found in XEP 124.
+ * This library uses either Bidirectional-streams Over Synchronous HTTP (BOSH)
+ * to emulate a persistent, stateful, two-way connection to an XMPP server or
+ * alternatively WebSockets.
*
- * This version of Strophe also works with WebSockets.
+ * More information on BOSH can be found in XEP 124.
* For more information on XMPP-over WebSocket see this RFC:
* http://tools.ietf.org/html/rfc7395
*/
@@ -121,7 +119,7 @@
* See http://pajhome.org.uk/crypt/md5 for details.
*/
-/* jshint undef: true, unused: true:, noarg: true, latedef: true */
+/* jshint undef: true, unused: true:, noarg: true, latedef: false */
/* global define */
/* Some functions and variables have been stripped for use with Strophe */
@@ -523,6 +521,80 @@ return {
return obj;
}));
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('strophe-utils', function () {
+ return factory();
+ });
+ } else {
+ // Browser globals
+ root.stropheUtils = factory();
+ }
+}(this, function () {
+
+ var utils = {
+
+ utf16to8: function (str) {
+ var i, c;
+ var out = "";
+ var len = str.length;
+ for (i = 0; i < len; i++) {
+ c = str.charCodeAt(i);
+ if ((c >= 0x0000) && (c <= 0x007F)) {
+ out += str.charAt(i);
+ } else if (c > 0x07FF) {
+ out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
+ out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
+ out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
+ } else {
+ out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
+ out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
+ }
+ }
+ return out;
+ },
+
+ addCookies: function (cookies) {
+ /* Parameters:
+ * (Object) cookies - either a map of cookie names
+ * to string values or to maps of cookie values.
+ *
+ * For example:
+ * { "myCookie": "1234" }
+ *
+ * or:
+ * { "myCookie": {
+ * "value": "1234",
+ * "domain": ".example.org",
+ * "path": "/",
+ * "expires": expirationDate
+ * }
+ * }
+ *
+ * These values get passed to Strophe.Connection via
+ * options.cookies
+ */
+ var cookieName, cookieObj, isObj, cookieValue, expires, domain, path;
+ for (cookieName in (cookies || {})) {
+ expires = '';
+ domain = '';
+ path = '';
+ cookieObj = cookies[cookieName];
+ isObj = typeof cookieObj == "object";
+ cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj));
+ if (isObj) {
+ expires = cookieObj.expires ? ";expires="+cookieObj.expires : '';
+ domain = cookieObj.domain ? ";domain="+cookieObj.domain : '';
+ path = cookieObj.path ? ";path="+cookieObj.path : '';
+ }
+ document.cookie =
+ cookieName+'='+cookieValue + expires + domain + path;
+ }
+ }
+ };
+ return utils;
+}));
+
/*
This program is distributed under the terms of the MIT license.
Please see the LICENSE file for details.
@@ -531,8 +603,20 @@ return {
*/
/* jshint undef: true, unused: true:, noarg: true, latedef: true */
+/* global define */
+
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ define('strophe-polyfill', [], function () {
+ return factory();
+ });
+ } else {
+ // Browser globals
+ return factory();
+ }
+}(this, function () {
-/** PrivateFunction: Function.prototype.bind
+/** Function: Function.prototype.bind
* Bind a function to an instance.
*
* This Function object extension method creates a bound method similar
@@ -554,22 +638,18 @@ return {
* The bound function.
*/
if (!Function.prototype.bind) {
- Function.prototype.bind = function (obj /*, arg1, arg2, ... */)
- {
+ Function.prototype.bind = function (obj /*, arg1, arg2, ... */) {
var func = this;
var _slice = Array.prototype.slice;
var _concat = Array.prototype.concat;
var _args = _slice.call(arguments, 1);
-
return function () {
- return func.apply(obj ? obj : this,
- _concat.call(_args,
- _slice.call(arguments, 0)));
+ return func.apply(obj ? obj : this, _concat.call(_args, _slice.call(arguments, 0)));
};
};
}
-/** PrivateFunction: Array.isArray
+/** Function: Array.isArray
* This is a polyfill for the ES5 Array.isArray method.
*/
if (!Array.isArray) {
@@ -578,7 +658,7 @@ if (!Array.isArray) {
};
}
-/** PrivateFunction: Array.prototype.indexOf
+/** Function: Array.prototype.indexOf
* Return the index of an object in an array.
*
* This function is not supplied by some JavaScript implementations, so
@@ -592,12 +672,9 @@ if (!Array.isArray) {
* Returns:
* The index of elt in the array or -1 if not found.
*/
-if (!Array.prototype.indexOf)
- {
- Array.prototype.indexOf = function(elt /*, from*/)
- {
+if (!Array.prototype.indexOf) {
+ Array.prototype.indexOf = function(elt /*, from*/) {
var len = this.length;
-
var from = Number(arguments[1]) || 0;
from = (from < 0) ? Math.ceil(from) : Math.floor(from);
if (from < 0) {
@@ -609,10 +686,66 @@ if (!Array.prototype.indexOf)
return from;
}
}
-
return -1;
};
}
+}));
+
+
+/** Function: Array.prototype.forEach
+ *
+ * This function is not available in IE < 9
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
+ */
+if (!Array.prototype.forEach) {
+ Array.prototype.forEach = function(callback, thisArg) {
+ var T, k;
+ if (this === null) {
+ throw new TypeError(' this is null or not defined');
+ }
+
+ // 1. Let O be the result of calling toObject() passing the
+ // |this| value as the argument.
+ var O = Object(this);
+ // 2. Let lenValue be the result of calling the Get() internal
+ // method of O with the argument "length".
+ // 3. Let len be toUint32(lenValue).
+ var len = O.length >>> 0;
+ // 4. If isCallable(callback) is false, throw a TypeError exception.
+ // See: http://es5.github.com/#x9.11
+ if (typeof callback !== "function") {
+ throw new TypeError(callback + ' is not a function');
+ }
+ // 5. If thisArg was supplied, let T be thisArg; else let
+ // T be undefined.
+ if (arguments.length > 1) {
+ T = thisArg;
+ }
+ // 6. Let k be 0
+ k = 0;
+ // 7. Repeat, while k < len
+ while (k < len) {
+ var kValue;
+ // a. Let Pk be ToString(k).
+ // This is implicit for LHS operands of the in operator
+ // b. Let kPresent be the result of calling the HasProperty
+ // internal method of O with argument Pk.
+ // This step can be combined with c
+ // c. If kPresent is true, then
+ if (k in O) {
+ // i. Let kValue be the result of calling the Get internal
+ // method of O with argument Pk.
+ kValue = O[k];
+ // ii. Call the Call internal method of callback with T as
+ // the this value and argument list containing kValue, k, and O.
+ callback.call(T, kValue, k, O);
+ }
+ // d. Increase k by 1.
+ k++;
+ }
+ // 8. return undefined
+ };
+}
/*
This program is distributed under the terms of the MIT license.
@@ -622,7 +755,7 @@ if (!Array.prototype.indexOf)
*/
/* jshint undef: true, unused: true:, noarg: true, latedef: true */
-/*global define, document, window, setTimeout, clearTimeout, console, ActiveXObject, DOMParser */
+/*global define, document, window, setTimeout, clearTimeout, ActiveXObject, DOMParser */
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
@@ -630,13 +763,14 @@ if (!Array.prototype.indexOf)
'strophe-sha1',
'strophe-base64',
'strophe-md5',
+ 'strophe-utils',
"strophe-polyfill"
], function () {
return factory.apply(this, arguments);
});
} else {
// Browser globals
- var o = factory(root.SHA1, root.Base64, root.MD5);
+ var o = factory(root.SHA1, root.Base64, root.MD5, root.stropheUtils);
window.Strophe = o.Strophe;
window.$build = o.$build;
window.$iq = o.$iq;
@@ -650,7 +784,7 @@ if (!Array.prototype.indexOf)
window.str_hmac_sha1 = o.SHA1.str_hmac_sha1;
window.str_sha1 = o.SHA1.str_sha1;
}
-}(this, function (SHA1, Base64, MD5) {
+}(this, function (SHA1, Base64, MD5, utils) {
var Strophe;
@@ -712,7 +846,7 @@ Strophe = {
* The version of the Strophe library. Unreleased builds will have
* a version of head-HASH where HASH is a partial revision.
*/
- VERSION: "1.2.3",
+ VERSION: "1.2.9",
/** Constants: XMPP Namespace Constants
* Common namespace constants from the XMPP RFCs and XEPs.
@@ -754,7 +888,6 @@ Strophe = {
XHTML: "http://www.w3.org/1999/xhtml"
},
-
/** Constants: XHTML_IM Namespace
* contains allowed tags, tag attributes, and css properties.
* Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset.
@@ -762,64 +895,63 @@ Strophe = {
* allowed tags and their attributes.
*/
XHTML: {
- tags: ['a','blockquote','br','cite','em','img','li','ol','p','span','strong','ul','body'],
- attributes: {
- 'a': ['href'],
- 'blockquote': ['style'],
- 'br': [],
- 'cite': ['style'],
- 'em': [],
- 'img': ['src', 'alt', 'style', 'height', 'width'],
- 'li': ['style'],
- 'ol': ['style'],
- 'p': ['style'],
- 'span': ['style'],
- 'strong': [],
- 'ul': ['style'],
- 'body': []
- },
- css: ['background-color','color','font-family','font-size','font-style','font-weight','margin-left','margin-right','text-align','text-decoration'],
- /** Function: XHTML.validTag
- *
- * Utility method to determine whether a tag is allowed
- * in the XHTML_IM namespace.
- *
- * XHTML tag names are case sensitive and must be lower case.
- */
- validTag: function(tag) {
- for (var i = 0; i < Strophe.XHTML.tags.length; i++) {
- if (tag == Strophe.XHTML.tags[i]) {
- return true;
- }
- }
- return false;
- },
- /** Function: XHTML.validAttribute
- *
- * Utility method to determine whether an attribute is allowed
- * as recommended per XEP-0071
- *
- * XHTML attribute names are case sensitive and must be lower case.
- */
- validAttribute: function(tag, attribute) {
- if(typeof Strophe.XHTML.attributes[tag] !== 'undefined' && Strophe.XHTML.attributes[tag].length > 0) {
- for(var i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {
- if(attribute == Strophe.XHTML.attributes[tag][i]) {
- return true;
- }
- }
- }
- return false;
- },
- validCSS: function(style)
- {
- for(var i = 0; i < Strophe.XHTML.css.length; i++) {
- if(style == Strophe.XHTML.css[i]) {
- return true;
- }
- }
- return false;
+ tags: ['a','blockquote','br','cite','em','img','li','ol','p','span','strong','ul','body'],
+ attributes: {
+ 'a': ['href'],
+ 'blockquote': ['style'],
+ 'br': [],
+ 'cite': ['style'],
+ 'em': [],
+ 'img': ['src', 'alt', 'style', 'height', 'width'],
+ 'li': ['style'],
+ 'ol': ['style'],
+ 'p': ['style'],
+ 'span': ['style'],
+ 'strong': [],
+ 'ul': ['style'],
+ 'body': []
+ },
+ css: ['background-color','color','font-family','font-size','font-style','font-weight','margin-left','margin-right','text-align','text-decoration'],
+ /** Function: XHTML.validTag
+ *
+ * Utility method to determine whether a tag is allowed
+ * in the XHTML_IM namespace.
+ *
+ * XHTML tag names are case sensitive and must be lower case.
+ */
+ validTag: function(tag) {
+ for (var i = 0; i < Strophe.XHTML.tags.length; i++) {
+ if (tag == Strophe.XHTML.tags[i]) {
+ return true;
}
+ }
+ return false;
+ },
+ /** Function: XHTML.validAttribute
+ *
+ * Utility method to determine whether an attribute is allowed
+ * as recommended per XEP-0071
+ *
+ * XHTML attribute names are case sensitive and must be lower case.
+ */
+ validAttribute: function(tag, attribute) {
+ if (typeof Strophe.XHTML.attributes[tag] !== 'undefined' && Strophe.XHTML.attributes[tag].length > 0) {
+ for (var i = 0; i < Strophe.XHTML.attributes[tag].length; i++) {
+ if (attribute == Strophe.XHTML.attributes[tag][i]) {
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+ validCSS: function(style) {
+ for (var i = 0; i < Strophe.XHTML.css.length; i++) {
+ if (style == Strophe.XHTML.css[i]) {
+ return true;
+ }
+ }
+ return false;
+ }
},
/** Constants: Connection Status Constants
@@ -835,6 +967,7 @@ Strophe = {
* Status.DISCONNECTED - The connection has been terminated
* Status.DISCONNECTING - The connection is currently being terminated
* Status.ATTACHED - The connection has been attached
+ * Status.CONNTIMEOUT - The connection has timed out
*/
Status: {
ERROR: 0,
@@ -846,7 +979,8 @@ Strophe = {
DISCONNECTED: 6,
DISCONNECTING: 7,
ATTACHED: 8,
- REDIRECT: 9
+ REDIRECT: 9,
+ CONNTIMEOUT: 10
},
/** Constants: Log Level Constants
@@ -909,9 +1043,8 @@ Strophe = {
* referenced under Strophe.NS
* (String) value - The actual namespace.
*/
- addNamespace: function (name, value)
- {
- Strophe.NS[name] = value;
+ addNamespace: function (name, value) {
+ Strophe.NS[name] = value;
},
/** Function: forEachChild
@@ -928,10 +1061,8 @@ Strophe = {
* (Function) func - The function to apply to each child. This
* function should take a single argument, a DOM element.
*/
- forEachChild: function (elem, elemName, func)
- {
+ forEachChild: function (elem, elemName, func) {
var i, childNode;
-
for (i = 0; i < elem.childNodes.length; i++) {
childNode = elem.childNodes[i];
if (childNode.nodeType == Strophe.ElementType.NORMAL &&
@@ -954,8 +1085,7 @@ Strophe = {
* true if the element's tag name matches _el_, and false
* otherwise.
*/
- isTagEqual: function (el, name)
- {
+ isTagEqual: function (el, name) {
return el.tagName == name;
},
@@ -971,7 +1101,6 @@ Strophe = {
*/
_makeGenerator: function () {
var doc;
-
// IE9 does implement createDocument(); however, using it will cause the browser to leak memory on page unload.
// Here, we test for presence of createDocument() plus IE's proprietary documentMode attribute, which would be
// less than 10 in the case of IE9 and below.
@@ -983,7 +1112,6 @@ Strophe = {
doc = document.implementation
.createDocument('jabber:client', 'strophe', null);
}
-
return doc;
},
@@ -1031,7 +1159,6 @@ Strophe = {
break;
}
}
-
return doc;
},
@@ -1053,12 +1180,10 @@ Strophe = {
* Returns:
* A new XML DOM element.
*/
- xmlElement: function (name)
- {
+ xmlElement: function (name) {
if (!name) { return null; }
var node = Strophe.xmlGenerator().createElement(name);
-
// FIXME: this should throw errors if args are the wrong type or
// there are more than two optional args
var a, i, k;
@@ -1103,8 +1228,7 @@ Strophe = {
* Returns:
* Escaped text.
*/
- xmlescape: function(text)
- {
+ xmlescape: function(text) {
text = text.replace(/\&/g, "&amp;");
text = text.replace(/</g, "&lt;");
text = text.replace(/>/g, "&gt;");
@@ -1122,8 +1246,7 @@ Strophe = {
* Returns:
* Unescaped text.
*/
- xmlunescape: function(text)
- {
+ xmlunescape: function(text) {
text = text.replace(/\&amp;/g, "&");
text = text.replace(/&lt;/g, "<");
text = text.replace(/&gt;/g, ">");
@@ -1143,8 +1266,7 @@ Strophe = {
* Returns:
* A new XML DOM text node.
*/
- xmlTextNode: function (text)
- {
+ xmlTextNode: function (text) {
return Strophe.xmlGenerator().createTextNode(text);
},
@@ -1157,8 +1279,7 @@ Strophe = {
* Returns:
* A new XML DOM text node.
*/
- xmlHtmlNode: function (html)
- {
+ xmlHtmlNode: function (html) {
var node;
//ensure text is escaped
if (window.DOMParser) {
@@ -1181,8 +1302,7 @@ Strophe = {
* Returns:
* A String with the concatenated text of all text element children.
*/
- getText: function (elem)
- {
+ getText: function (elem) {
if (!elem) { return null; }
var str = "";
@@ -1212,8 +1332,7 @@ Strophe = {
* Returns:
* A new, copied DOM element tree.
*/
- copyElement: function (elem)
- {
+ copyElement: function (elem) {
var i, el;
if (elem.nodeType == Strophe.ElementType.NORMAL) {
el = Strophe.xmlElement(elem.tagName);
@@ -1229,7 +1348,6 @@ Strophe = {
} else if (elem.nodeType == Strophe.ElementType.TEXT) {
el = Strophe.xmlGenerator().createTextNode(elem.nodeValue);
}
-
return el;
},
@@ -1246,8 +1364,7 @@ Strophe = {
* Returns:
* A new, copied DOM element tree.
*/
- createHtml: function (elem)
- {
+ createHtml: function (elem) {
var i, el, j, tag, attribute, value, css, cssAttrs, attr, cssName, cssValue;
if (elem.nodeType == Strophe.ElementType.NORMAL) {
tag = elem.nodeName.toLowerCase(); // XHTML tags must be lower case.
@@ -1306,7 +1423,6 @@ Strophe = {
} else if (elem.nodeType == Strophe.ElementType.TEXT) {
el = Strophe.xmlTextNode(elem.nodeValue);
}
-
return el;
},
@@ -1319,8 +1435,7 @@ Strophe = {
* Returns:
* An escaped node (or local part).
*/
- escapeNode: function (node)
- {
+ escapeNode: function (node) {
if (typeof node !== "string") { return node; }
return node.replace(/^\s+|\s+$/g, '')
.replace(/\\/g, "\\5c")
@@ -1344,8 +1459,7 @@ Strophe = {
* Returns:
* An unescaped node (or local part).
*/
- unescapeNode: function (node)
- {
+ unescapeNode: function (node) {
if (typeof node !== "string") { return node; }
return node.replace(/\\20/g, " ")
.replace(/\\22/g, '"')
@@ -1368,8 +1482,7 @@ Strophe = {
* Returns:
* A String containing the node.
*/
- getNodeFromJid: function (jid)
- {
+ getNodeFromJid: function (jid) {
if (jid.indexOf("@") < 0) { return null; }
return jid.split("@")[0];
},
@@ -1383,8 +1496,7 @@ Strophe = {
* Returns:
* A String containing the domain.
*/
- getDomainFromJid: function (jid)
- {
+ getDomainFromJid: function (jid) {
var bare = Strophe.getBareJidFromJid(jid);
if (bare.indexOf("@") < 0) {
return bare;
@@ -1404,8 +1516,7 @@ Strophe = {
* Returns:
* A String containing the resource.
*/
- getResourceFromJid: function (jid)
- {
+ getResourceFromJid: function (jid) {
var s = jid.split("/");
if (s.length < 2) { return null; }
s.splice(0, 1);
@@ -1421,11 +1532,29 @@ Strophe = {
* Returns:
* A String containing the bare JID.
*/
- getBareJidFromJid: function (jid)
- {
+ getBareJidFromJid: function (jid) {
return jid ? jid.split("/")[0] : null;
},
+ /** PrivateFunction: _handleError
+ * _Private_ function that properly logs an error to the console
+ */
+ _handleError: function (e) {
+ if (typeof e.stack !== "undefined") {
+ Strophe.fatal(e.stack);
+ }
+ if (e.sourceURL) {
+ Strophe.fatal("error: " + this.handler + " " + e.sourceURL + ":" +
+ e.line + " - " + e.name + ": " + e.message);
+ } else if (e.fileName) {
+ Strophe.fatal("error: " + this.handler + " " +
+ e.fileName + ":" + e.lineNumber + " - " +
+ e.name + ": " + e.message);
+ } else {
+ Strophe.fatal("error: " + e.message);
+ }
+ },
+
/** Function: log
* User overrideable logging function.
*
@@ -1456,8 +1585,7 @@ Strophe = {
* (String) msg - The log message.
*/
/* jshint ignore:start */
- log: function (level, msg)
- {
+ log: function (level, msg) {
return;
},
/* jshint ignore:end */
@@ -1468,8 +1596,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- debug: function(msg)
- {
+ debug: function(msg) {
this.log(this.LogLevel.DEBUG, msg);
},
@@ -1479,8 +1606,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- info: function (msg)
- {
+ info: function (msg) {
this.log(this.LogLevel.INFO, msg);
},
@@ -1490,8 +1616,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- warn: function (msg)
- {
+ warn: function (msg) {
this.log(this.LogLevel.WARN, msg);
},
@@ -1501,8 +1626,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- error: function (msg)
- {
+ error: function (msg) {
this.log(this.LogLevel.ERROR, msg);
},
@@ -1512,8 +1636,7 @@ Strophe = {
* Parameters:
* (String) msg - The log message.
*/
- fatal: function (msg)
- {
+ fatal: function (msg) {
this.log(this.LogLevel.FATAL, msg);
},
@@ -1526,8 +1649,7 @@ Strophe = {
* Returns:
* The serialized element tree as a String.
*/
- serialize: function (elem)
- {
+ serialize: function (elem) {
var result;
if (!elem) { return null; }
@@ -1545,14 +1667,10 @@ Strophe = {
result = "<" + nodeName;
for (i = 0; i < elem.attributes.length; i++) {
- if(elem.attributes[i].nodeName != "_realname") {
- result += " " + elem.attributes[i].nodeName +
- "='" + elem.attributes[i].value
- .replace(/&/g, "&amp;")
- .replace(/\'/g, "&apos;")
- .replace(/>/g, "&gt;")
- .replace(/</g, "&lt;") + "'";
- }
+ if(elem.attributes[i].nodeName != "_realname") {
+ result += " " + elem.attributes[i].nodeName +
+ "='" + Strophe.xmlescape(elem.attributes[i].value) + "'";
+ }
}
if (elem.childNodes.length > 0) {
@@ -1600,8 +1718,7 @@ Strophe = {
* (String) name - The name of the extension.
* (Object) ptype - The plugin's prototype.
*/
- addConnectionPlugin: function (name, ptype)
- {
+ addConnectionPlugin: function (name, ptype) {
Strophe._connectionPlugins[name] = ptype;
}
};
@@ -1617,6 +1734,7 @@ Strophe = {
* > .c('query', {xmlns: 'strophe:example'})
* > .c('example')
* > .toString()
+ *
* The above generates this XML fragment
* > <iq to='you' from='me' type='get' id='1'>
* > <query xmlns='strophe:example'>
@@ -1647,8 +1765,7 @@ Strophe = {
* Returns:
* A new Strophe.Builder.
*/
-Strophe.Builder = function (name, attrs)
-{
+Strophe.Builder = function (name, attrs) {
// Set correct namespace for jabber:client elements
if (name == "presence" || name == "message" || name == "iq") {
if (attrs && !attrs.xmlns) {
@@ -1675,8 +1792,7 @@ Strophe.Builder.prototype = {
* Returns:
* The DOM tree as a element object.
*/
- tree: function ()
- {
+ tree: function () {
return this.nodeTree;
},
@@ -1690,8 +1806,7 @@ Strophe.Builder.prototype = {
* Returns:
* The serialized DOM tree in a String.
*/
- toString: function ()
- {
+ toString: function () {
return Strophe.serialize(this.nodeTree);
},
@@ -1705,12 +1820,26 @@ Strophe.Builder.prototype = {
* Returns:
* The Stophe.Builder object.
*/
- up: function ()
- {
+ up: function () {
this.node = this.node.parentNode;
return this;
},
+ /** Function: root
+ * Make the root element the new current element.
+ *
+ * When at a deeply nested element in the tree, this function can be used
+ * to jump back to the root of the tree, instead of having to repeatedly
+ * call up().
+ *
+ * Returns:
+ * The Stophe.Builder object.
+ */
+ root: function () {
+ this.node = this.nodeTree;
+ return this;
+ },
+
/** Function: attrs
* Add or modify attributes of the current element.
*
@@ -1723,8 +1852,7 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- attrs: function (moreattrs)
- {
+ attrs: function (moreattrs) {
for (var k in moreattrs) {
if (moreattrs.hasOwnProperty(k)) {
if (moreattrs[k] === undefined) {
@@ -1753,11 +1881,10 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- c: function (name, attrs, text)
- {
+ c: function (name, attrs, text) {
var child = Strophe.xmlElement(name, attrs, text);
this.node.appendChild(child);
- if (typeof text !== "string") {
+ if (typeof text !== "string" && typeof text !=="number") {
this.node = child;
}
return this;
@@ -1777,14 +1904,12 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- cnode: function (elem)
- {
+ cnode: function (elem) {
var impNode;
var xmlGen = Strophe.xmlGenerator();
try {
impNode = (xmlGen.importNode !== undefined);
- }
- catch (e) {
+ } catch (e) {
impNode = false;
}
var newElem = impNode ?
@@ -1807,8 +1932,7 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- t: function (text)
- {
+ t: function (text) {
var child = Strophe.xmlTextNode(text);
this.node.appendChild(child);
return this;
@@ -1825,8 +1949,7 @@ Strophe.Builder.prototype = {
* Returns:
* The Strophe.Builder object.
*/
- h: function (html)
- {
+ h: function (html) {
var fragment = document.createElement('body');
// force the browser to try and fix any invalid HTML tags
@@ -1871,74 +1994,96 @@ Strophe.Builder.prototype = {
* Returns:
* A new Strophe.Handler object.
*/
-Strophe.Handler = function (handler, ns, name, type, id, from, options)
-{
+Strophe.Handler = function (handler, ns, name, type, id, from, options) {
this.handler = handler;
this.ns = ns;
this.name = name;
this.type = type;
this.id = id;
- this.options = options || {matchBare: false};
-
- // default matchBare to false if undefined
- if (!this.options.matchBare) {
- this.options.matchBare = false;
+ this.options = options || {'matchBareFromJid': false, 'ignoreNamespaceFragment': false};
+ // BBB: Maintain backward compatibility with old `matchBare` option
+ if (this.options.matchBare) {
+ Strophe.warn('The "matchBare" option is deprecated, use "matchBareFromJid" instead.');
+ this.options.matchBareFromJid = this.options.matchBare;
+ delete this.options.matchBare;
}
- if (this.options.matchBare) {
+ if (this.options.matchBareFromJid) {
this.from = from ? Strophe.getBareJidFromJid(from) : null;
} else {
this.from = from;
}
-
// whether the handler is a user handler or a system handler
this.user = true;
};
Strophe.Handler.prototype = {
- /** PrivateFunction: isMatch
- * Tests if a stanza matches the Strophe.Handler.
+ /** PrivateFunction: getNamespace
+ * Returns the XML namespace attribute on an element.
+ * If `ignoreNamespaceFragment` was passed in for this handler, then the
+ * URL fragment will be stripped.
*
* Parameters:
- * (XMLElement) elem - The XML element to test.
+ * (XMLElement) elem - The XML element with the namespace.
*
* Returns:
- * true if the stanza matches and false otherwise.
+ * The namespace, with optionally the fragment stripped.
*/
- isMatch: function (elem)
- {
- var nsMatch;
- var from = null;
-
- if (this.options.matchBare) {
- from = Strophe.getBareJidFromJid(elem.getAttribute('from'));
- } else {
- from = elem.getAttribute('from');
+ getNamespace: function (elem) {
+ var elNamespace = elem.getAttribute("xmlns");
+ if (elNamespace && this.options.ignoreNamespaceFragment) {
+ elNamespace = elNamespace.split('#')[0];
}
+ return elNamespace;
+ },
- nsMatch = false;
+ /** PrivateFunction: namespaceMatch
+ * Tests if a stanza matches the namespace set for this Strophe.Handler.
+ *
+ * Parameters:
+ * (XMLElement) elem - The XML element to test.
+ *
+ * Returns:
+ * true if the stanza matches and false otherwise.
+ */
+ namespaceMatch: function (elem) {
+ var nsMatch = false;
if (!this.ns) {
- nsMatch = true;
+ return true;
} else {
var that = this;
Strophe.forEachChild(elem, null, function (elem) {
- if (elem.getAttribute("xmlns") == that.ns) {
+ if (that.getNamespace(elem) === that.ns) {
nsMatch = true;
}
});
-
- nsMatch = nsMatch || elem.getAttribute("xmlns") == this.ns;
+ nsMatch = nsMatch || this.getNamespace(elem) === this.ns;
}
+ return nsMatch;
+ },
+ /** PrivateFunction: isMatch
+ * Tests if a stanza matches the Strophe.Handler.
+ *
+ * Parameters:
+ * (XMLElement) elem - The XML element to test.
+ *
+ * Returns:
+ * true if the stanza matches and false otherwise.
+ */
+ isMatch: function (elem) {
+ var from = elem.getAttribute('from');
+ if (this.options.matchBareFromJid) {
+ from = Strophe.getBareJidFromJid(from);
+ }
var elem_type = elem.getAttribute("type");
- if (nsMatch &&
+ if (this.namespaceMatch(elem) &&
(!this.name || Strophe.isTagEqual(elem, this.name)) &&
(!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) != -1 : elem_type == this.type)) &&
(!this.id || elem.getAttribute("id") == this.id) &&
(!this.from || from == this.from)) {
return true;
}
-
return false;
},
@@ -1952,31 +2097,14 @@ Strophe.Handler.prototype = {
* Returns:
* A boolean indicating if the handler should remain active.
*/
- run: function (elem)
- {
+ run: function (elem) {
var result = null;
try {
result = this.handler(elem);
} catch (e) {
- if (e.sourceURL) {
- Strophe.fatal("error: " + this.handler +
- " " + e.sourceURL + ":" +
- e.line + " - " + e.name + ": " + e.message);
- } else if (e.fileName) {
- if (typeof(console) != "undefined") {
- console.trace();
- console.error(this.handler, " - error - ", e, e.message);
- }
- Strophe.fatal("error: " + this.handler + " " +
- e.fileName + ":" + e.lineNumber + " - " +
- e.name + ": " + e.message);
- } else {
- Strophe.fatal("error: " + e.message + "\n" + e.stack);
- }
-
+ Strophe._handleError(e);
throw e;
}
-
return result;
},
@@ -1986,8 +2114,7 @@ Strophe.Handler.prototype = {
* Returns:
* A String.
*/
- toString: function ()
- {
+ toString: function () {
return "{Handler: " + this.handler + "(" + this.name + "," +
this.id + "," + this.ns + ")}";
}
@@ -2018,11 +2145,9 @@ Strophe.Handler.prototype = {
* Returns:
* A new Strophe.TimedHandler object.
*/
-Strophe.TimedHandler = function (period, handler)
-{
+Strophe.TimedHandler = function (period, handler) {
this.period = period;
this.handler = handler;
-
this.lastCalled = new Date().getTime();
this.user = true;
};
@@ -2035,8 +2160,7 @@ Strophe.TimedHandler.prototype = {
* true if the Strophe.TimedHandler should be called again, and false
* otherwise.
*/
- run: function ()
- {
+ run: function () {
this.lastCalled = new Date().getTime();
return this.handler();
},
@@ -2044,8 +2168,7 @@ Strophe.TimedHandler.prototype = {
/** PrivateFunction: reset
* Reset the last called time for the Strophe.TimedHandler.
*/
- reset: function ()
- {
+ reset: function () {
this.lastCalled = new Date().getTime();
},
@@ -2055,8 +2178,7 @@ Strophe.TimedHandler.prototype = {
* Returns:
* The string representation.
*/
- toString: function ()
- {
+ toString: function () {
return "{TimedHandler: " + this.handler + "(" + this.period +")}";
}
};
@@ -2096,7 +2218,53 @@ Strophe.TimedHandler.prototype = {
*
* > var conn = new Strophe.Connection("/http-bind/");
*
+ * Options common to both Websocket and BOSH:
+ * ------------------------------------------
+ *
+ * cookies
+ * ~~~~~~~
+ *
+ * The "cookies" option allows you to pass in cookies to be added to the
+ * document. These cookies will then be included in the BOSH XMLHttpRequest
+ * or in the websocket connection.
+ *
+ * The passed in value must be a map of cookie names and string values:
+ *
+ * > { "myCookie": {
+ * > "value": "1234",
+ * > "domain": ".example.org",
+ * > "path": "/",
+ * > "expires": expirationDate
+ * > }
+ * > }
+ *
+ * Note that cookies can't be set in this way for other domains (i.e. cross-domain).
+ * Those cookies need to be set under those domains, for example they can be
+ * set server-side by making a XHR call to that domain to ask it to set any
+ * necessary cookies.
+ *
+ * mechanisms
+ * ~~~~~~~~~~
+ *
+ * The "mechanisms" option allows you to specify the SASL mechanisms that this
+ * instance of Strophe.Connection (and therefore your XMPP client) will
+ * support.
+ *
+ * The value must be an array of objects with Strophe.SASLMechanism
+ * prototypes.
+ *
+ * If nothing is specified, then the following mechanisms (and their
+ * priorities) are registered:
+ *
+ * EXTERNAL - 60
+ * OAUTHBEARER - 50
+ * SCRAM-SHA1 - 40
+ * DIGEST-MD5 - 30
+ * PLAIN - 20
+ * ANONYMOUS - 10
+ *
* WebSocket options:
+ * ------------------
*
* If you want to connect to the current host with a WebSocket connection you
* can tell Strophe to use WebSockets through a "protocol" attribute in the
@@ -2114,6 +2282,7 @@ Strophe.TimedHandler.prototype = {
* variants if the current connection to the site is also secure (https).
*
* BOSH options:
+ * -------------
*
* By adding "sync" to the options, you can control if requests will
* be made synchronously or not. The default behaviour is asynchronous.
@@ -2133,6 +2302,23 @@ Strophe.TimedHandler.prototype = {
* "restore" is called it will check whether there are cached tokens with
* which it can resume an existing session.
*
+ * The "withCredentials" option should receive a Boolean value and is used to
+ * indicate wether cookies should be included in ajax requests (by default
+ * they're not).
+ * Set this value to true if you are connecting to a BOSH service
+ * and for some reason need to send cookies to it.
+ * In order for this to work cross-domain, the server must also enable
+ * credentials by setting the Access-Control-Allow-Credentials response header
+ * to "true". For most usecases however this setting should be false (which
+ * is the default).
+ * Additionally, when using Access-Control-Allow-Credentials, the
+ * Access-Control-Allow-Origin header can't be set to the wildcard "*", but
+ * instead must be restricted to actual domains.
+ *
+ * The "contentType" option can be set to change the default Content-Type
+ * of "text/xml; charset=utf-8", which can be useful to reduce the amount of
+ * CORS preflight requests that are sent to the server.
+ *
* Parameters:
* (String) service - The BOSH or WebSocket service URL.
* (Object) options - A hash of configuration options
@@ -2140,11 +2326,9 @@ Strophe.TimedHandler.prototype = {
* Returns:
* A new Strophe.Connection object.
*/
-Strophe.Connection = function (service, options)
-{
+Strophe.Connection = function (service, options) {
// The service URL
this.service = service;
-
// Configuration options
this.options = options || {};
var proto = this.options.protocol || "";
@@ -2176,8 +2360,11 @@ Strophe.Connection = function (service, options)
this.removeHandlers = [];
this.addTimeds = [];
this.addHandlers = [];
+ this.protocolErrorHandlers = {
+ 'HTTP': {},
+ 'websocket': {}
+ };
- this._authentication = {};
this._idleTimeout = null;
this._disconnectTimeout = null;
@@ -2198,8 +2385,14 @@ Strophe.Connection = function (service, options)
// Max retries before disconnecting
this.maxRetries = 5;
- // setup onIdle callback every 1/10th of a second
- this._idleTimeout = setTimeout(this._onIdle.bind(this), 100);
+ // Call onIdle callback every 1/10th of a second
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this), 100);
+
+ utils.addCookies(this.options.cookies);
+ this.registerSASLMechanisms(this.options.mechanisms);
// initialize plugins
for (var k in Strophe._connectionPlugins) {
@@ -2221,8 +2414,7 @@ Strophe.Connection.prototype = {
* This function should be called after a connection is disconnected
* before that connection is reused.
*/
- reset: function ()
- {
+ reset: function () {
this._proto._reset();
// SASL
@@ -2236,7 +2428,6 @@ Strophe.Connection.prototype = {
this.removeHandlers = [];
this.addTimeds = [];
this.addHandlers = [];
- this._authentication = {};
this.authenticated = false;
this.connected = false;
@@ -2257,8 +2448,7 @@ Strophe.Connection.prototype = {
* This causes Strophe to send the data in a single request, saving
* many request trips.
*/
- pause: function ()
- {
+ pause: function () {
this.paused = true;
},
@@ -2267,8 +2457,7 @@ Strophe.Connection.prototype = {
*
* This resumes after pause() has been called.
*/
- resume: function ()
- {
+ resume: function () {
this.paused = false;
},
@@ -2307,6 +2496,33 @@ Strophe.Connection.prototype = {
}
},
+ /** Function: addProtocolErrorHandler
+ * Register a handler function for when a protocol (websocker or HTTP)
+ * error occurs.
+ *
+ * NOTE: Currently only HTTP errors for BOSH requests are handled.
+ * Patches that handle websocket errors would be very welcome.
+ *
+ * Parameters:
+ * (String) protocol - 'HTTP' or 'websocket'
+ * (Integer) status_code - Error status code (e.g 500, 400 or 404)
+ * (Function) callback - Function that will fire on Http error
+ *
+ * Example:
+ * function onError(err_code){
+ * //do stuff
+ * }
+ *
+ * var conn = Strophe.connect('http://example.com/http-bind');
+ * conn.addProtocolErrorHandler('HTTP', 500, onError);
+ * // Triggers HTTP 500 error and onError handler will be called
+ * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect);
+ */
+ addProtocolErrorHandler: function(protocol, status_code, callback){
+ this.protocolErrorHandlers[protocol][status_code] = callback;
+ },
+
+
/** Function: connect
* Starts the connection process.
*
@@ -2337,26 +2553,37 @@ Strophe.Connection.prototype = {
* (String) route - The optional route value.
* (String) authcid - The optional alternative authentication identity
* (username) if intending to impersonate another user.
- */
- connect: function (jid, pass, callback, wait, hold, route, authcid)
- {
+ * When using the SASL-EXTERNAL authentication mechanism, for example
+ * with client certificates, then the authcid value is used to
+ * determine whether an authorization JID (authzid) should be sent to
+ * the server. The authzid should not be sent to the server if the
+ * authzid and authcid are the same. So to prevent it from being sent
+ * (for example when the JID is already contained in the client
+ * certificate), set authcid to that same JID. See XEP-178 for more
+ * details.
+ */
+ connect: function (jid, pass, callback, wait, hold, route, authcid) {
this.jid = jid;
/** Variable: authzid
* Authorization identity.
*/
this.authzid = Strophe.getBareJidFromJid(this.jid);
+
/** Variable: authcid
* Authentication identity (User name).
*/
this.authcid = authcid || Strophe.getNodeFromJid(this.jid);
+
/** Variable: pass
* Authentication identity (User password).
*/
this.pass = pass;
+
/** Variable: servtype
* Digest MD5 compatibility.
*/
this.servtype = "xmpp";
+
this.connect_callback = callback;
this.disconnecting = false;
this.connected = false;
@@ -2395,8 +2622,7 @@ Strophe.Connection.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- attach: function (jid, sid, rid, callback, wait, hold, wind)
- {
+ attach: function (jid, sid, rid, callback, wait, hold, wind) {
if (this._proto instanceof Strophe.Bosh) {
this._proto._attach(jid, sid, rid, callback, wait, hold, wind);
} else {
@@ -2434,8 +2660,7 @@ Strophe.Connection.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- restore: function (jid, callback, wait, hold, wind)
- {
+ restore: function (jid, callback, wait, hold, wind) {
if (this._sessionCachingSupported()) {
this._proto._restore(jid, callback, wait, hold, wind);
} else {
@@ -2450,8 +2675,7 @@ Strophe.Connection.prototype = {
* Checks whether sessionStorage and JSON are supported and whether we're
* using BOSH.
*/
- _sessionCachingSupported: function ()
- {
+ _sessionCachingSupported: function () {
if (this._proto instanceof Strophe.Bosh) {
if (!JSON) { return false; }
try {
@@ -2484,8 +2708,7 @@ Strophe.Connection.prototype = {
* (XMLElement) elem - The XML data received by the connection.
*/
/* jshint unused:false */
- xmlInput: function (elem)
- {
+ xmlInput: function (elem) {
return;
},
/* jshint unused:true */
@@ -2509,8 +2732,7 @@ Strophe.Connection.prototype = {
* (XMLElement) elem - The XMLdata sent by the connection.
*/
/* jshint unused:false */
- xmlOutput: function (elem)
- {
+ xmlOutput: function (elem) {
return;
},
/* jshint unused:true */
@@ -2528,8 +2750,7 @@ Strophe.Connection.prototype = {
* (String) data - The data received by the connection.
*/
/* jshint unused:false */
- rawInput: function (data)
- {
+ rawInput: function (data) {
return;
},
/* jshint unused:true */
@@ -2547,8 +2768,7 @@ Strophe.Connection.prototype = {
* (String) data - The data sent by the connection.
*/
/* jshint unused:false */
- rawOutput: function (data)
- {
+ rawOutput: function (data) {
return;
},
/* jshint unused:true */
@@ -2565,8 +2785,7 @@ Strophe.Connection.prototype = {
* (Number) rid - The next valid rid
*/
/* jshint unused:false */
- nextValidRid: function (rid)
- {
+ nextValidRid: function (rid) {
return;
},
/* jshint unused:true */
@@ -2583,8 +2802,7 @@ Strophe.Connection.prototype = {
* [XMLElement] |
* Strophe.Builder) elem - The stanza to send.
*/
- send: function (elem)
- {
+ send: function (elem) {
if (elem === null) { return ; }
if (typeof(elem.sort) === "function") {
for (var i = 0; i < elem.length; i++) {
@@ -2607,8 +2825,7 @@ Strophe.Connection.prototype = {
* several send()s are called in succession. flush() can be used to
* immediately send all pending data.
*/
- flush: function ()
- {
+ flush: function () {
// cancel the pending idle period and run the idle function
// immediately
clearTimeout(this._idleTimeout);
@@ -2637,40 +2854,16 @@ Strophe.Connection.prototype = {
elem = elem.tree();
}
var id = elem.getAttribute('id');
-
- // inject id if not found
- if (!id) {
+ if (!id) { // inject id if not found
id = this.getUniqueId("sendIQ");
elem.setAttribute("id", id);
}
- var expectedFrom = elem.getAttribute("to");
- var fulljid = this.jid;
-
var handler = this.addHandler(function (stanza) {
// remove timeout handler if there is one
if (timeoutHandler) {
that.deleteTimedHandler(timeoutHandler);
}
-
- var acceptable = false;
- var from = stanza.getAttribute("from");
- if (from === expectedFrom ||
- (expectedFrom === null &&
- (from === Strophe.getBareJidFromJid(fulljid) ||
- from === Strophe.getDomainFromJid(fulljid) ||
- from === fulljid))) {
- acceptable = true;
- }
-
- if (!acceptable) {
- throw {
- name: "StropheError",
- message: "Got answer to IQ from wrong jid:" + from +
- "\nExpected jid: " + expectedFrom
- };
- }
-
var iqtype = stanza.getAttribute('type');
if (iqtype == 'result') {
if (callback) {
@@ -2688,7 +2881,7 @@ Strophe.Connection.prototype = {
}
}, null, 'iq', ['error', 'result'], id);
- // if timeout specified, setup timeout handler.
+ // if timeout specified, set up a timeout handler.
if (timeout) {
timeoutHandler = this.addTimedHandler(timeout, function () {
// get rid of normal handler
@@ -2717,20 +2910,19 @@ Strophe.Connection.prototype = {
message: "Cannot queue non-DOMElement."
};
}
-
this._data.push(element);
},
/** PrivateFunction: _sendRestart
* Send an xmpp:restart stanza.
*/
- _sendRestart: function ()
- {
+ _sendRestart: function () {
this._data.push("restart");
-
this._proto._sendRestart();
-
- this._idleTimeout = setTimeout(this._onIdle.bind(this), 100);
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this), 100);
},
/** Function: addTimedHandler
@@ -2755,8 +2947,7 @@ Strophe.Connection.prototype = {
* Returns:
* A reference to the handler that can be used to remove it.
*/
- addTimedHandler: function (period, handler)
- {
+ addTimedHandler: function (period, handler) {
var thand = new Strophe.TimedHandler(period, handler);
this.addTimeds.push(thand);
return thand;
@@ -2772,8 +2963,7 @@ Strophe.Connection.prototype = {
* Parameters:
* (Strophe.TimedHandler) handRef - The handler reference.
*/
- deleteTimedHandler: function (handRef)
- {
+ deleteTimedHandler: function (handRef) {
// this must be done in the Idle loop so that we don't change
// the handlers during iteration
this.removeTimeds.push(handRef);
@@ -2795,13 +2985,39 @@ Strophe.Connection.prototype = {
* and also any of its immediate children. This is primarily to make
* matching /iq/query elements easy.
*
- * The options argument contains handler matching flags that affect how
- * matches are determined. Currently the only flag is matchBare (a
- * boolean). When matchBare is true, the from parameter and the from
- * attribute on the stanza will be matched as bare JIDs instead of
- * full JIDs. To use this, pass {matchBare: true} as the value of
- * options. The default value for matchBare is false.
- *
+ * Options
+ * ~~~~~~~
+ * With the options argument, you can specify boolean flags that affect how
+ * matches are being done.
+ *
+ * Currently two flags exist:
+ *
+ * - matchBareFromJid:
+ * When set to true, the from parameter and the
+ * from attribute on the stanza will be matched as bare JIDs instead
+ * of full JIDs. To use this, pass {matchBareFromJid: true} as the
+ * value of options. The default value for matchBareFromJid is false.
+ *
+ * - ignoreNamespaceFragment:
+ * When set to true, a fragment specified on the stanza's namespace
+ * URL will be ignored when it's matched with the one configured for
+ * the handler.
+ *
+ * This means that if you register like this:
+ * > connection.addHandler(
+ * > handler,
+ * > 'http://jabber.org/protocol/muc',
+ * > null, null, null, null,
+ * > {'ignoreNamespaceFragment': true}
+ * > );
+ *
+ * Then a stanza with XML namespace of
+ * 'http://jabber.org/protocol/muc#user' will also be matched. If
+ * 'ignoreNamespaceFragment' is false, then only stanzas with
+ * 'http://jabber.org/protocol/muc' will be matched.
+ *
+ * Deleting the handler
+ * ~~~~~~~~~~~~~~~~~~~~
* The return value should be saved if you wish to remove the handler
* with deleteHandler().
*
@@ -2809,7 +3025,7 @@ Strophe.Connection.prototype = {
* (Function) handler - The user callback.
* (String) ns - The namespace to match.
* (String) name - The stanza name to match.
- * (String) type - The stanza type attribute to match.
+ * (String|Array) type - The stanza type (or types if an array) to match.
* (String) id - The stanza id attribute to match.
* (String) from - The stanza from attribute to match.
* (String) options - The handler options
@@ -2817,8 +3033,7 @@ Strophe.Connection.prototype = {
* Returns:
* A reference to the handler that can be used to remove it.
*/
- addHandler: function (handler, ns, name, type, id, from, options)
- {
+ addHandler: function (handler, ns, name, type, id, from, options) {
var hand = new Strophe.Handler(handler, ns, name, type, id, from, options);
this.addHandlers.push(hand);
return hand;
@@ -2834,8 +3049,7 @@ Strophe.Connection.prototype = {
* Parameters:
* (Strophe.Handler) handRef - The handler reference.
*/
- deleteHandler: function (handRef)
- {
+ deleteHandler: function (handRef) {
// this must be done in the Idle loop so that we don't change
// the handlers during iteration
this.removeHandlers.push(handRef);
@@ -2847,6 +3061,40 @@ Strophe.Connection.prototype = {
}
},
+ /** Function: registerSASLMechanisms
+ *
+ * Register the SASL mechanisms which will be supported by this instance of
+ * Strophe.Connection (i.e. which this XMPP client will support).
+ *
+ * Parameters:
+ * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes
+ *
+ */
+ registerSASLMechanisms: function (mechanisms) {
+ this.mechanisms = {};
+ mechanisms = mechanisms || [
+ Strophe.SASLAnonymous,
+ Strophe.SASLExternal,
+ Strophe.SASLMD5,
+ Strophe.SASLOAuthBearer,
+ Strophe.SASLPlain,
+ Strophe.SASLSHA1
+ ];
+ mechanisms.forEach(this.registerSASLMechanism.bind(this));
+ },
+
+ /** Function: registerSASLMechanism
+ *
+ * Register a single SASL mechanism, to be supported by this client.
+ *
+ * Parameters:
+ * (Object) mechanism - Object with a Strophe.SASLMechanism prototype
+ *
+ */
+ registerSASLMechanism: function (mechanism) {
+ this.mechanisms[mechanism.prototype.name] = mechanism;
+ },
+
/** Function: disconnect
* Start the graceful disconnection process.
*
@@ -2863,8 +3111,7 @@ Strophe.Connection.prototype = {
* Parameters:
* (String) reason - The reason the disconnect is occuring.
*/
- disconnect: function (reason)
- {
+ disconnect: function (reason) {
this._changeConnectStatus(Strophe.Status.DISCONNECTING, reason);
Strophe.info("Disconnect was called because: " + reason);
@@ -2896,8 +3143,7 @@ Strophe.Connection.prototype = {
* in Strophe.Status
* (String) condition - the error condition or null
*/
- _changeConnectStatus: function (status, condition)
- {
+ _changeConnectStatus: function (status, condition) {
// notify all plugins listening for status changes
for (var k in Strophe._connectionPlugins) {
if (Strophe._connectionPlugins.hasOwnProperty(k)) {
@@ -2918,8 +3164,9 @@ Strophe.Connection.prototype = {
try {
this.connect_callback(status, condition);
} catch (e) {
- Strophe.error("User connection callback caused an " +
- "exception: " + e);
+ Strophe._handleError(e);
+ Strophe.error(
+ "User connection callback caused an "+"exception: "+e);
}
}
},
@@ -2930,8 +3177,7 @@ Strophe.Connection.prototype = {
* This is the last piece of the disconnection logic. This resets the
* connection and alerts the user's connection callback.
*/
- _doDisconnect: function (condition)
- {
+ _doDisconnect: function (condition) {
if (typeof this._idleTimeout == "number") {
clearTimeout(this._idleTimeout);
}
@@ -2974,8 +3220,7 @@ Strophe.Connection.prototype = {
* (Strophe.Request) req - The request that has data ready.
* (string) req - The stanza a raw string (optiona).
*/
- _dataRecv: function (req, raw)
- {
+ _dataRecv: function (req, raw) {
Strophe.info("_dataRecv called");
var elem = this._proto._reqToData(req);
if (elem === null) { return; }
@@ -3061,7 +3306,7 @@ Strophe.Connection.prototype = {
}
} catch(e) {
// if the handler throws an exception, we consider it as false
- Strophe.warn('Removing Strophe handlers due to uncaught exception: ' + e.message);
+ Strophe.warn('Removing Strophe handlers due to uncaught exception: '+e.message);
}
}
});
@@ -3069,7 +3314,7 @@ Strophe.Connection.prototype = {
/** Attribute: mechanisms
- * SASL Mechanisms available for Conncection.
+ * SASL Mechanisms available for Connection.
*/
mechanisms: {},
@@ -3089,13 +3334,18 @@ Strophe.Connection.prototype = {
* Useful for plugins with their own xmpp connect callback (when their)
* want to do something special).
*/
- _connect_cb: function (req, _callback, raw)
- {
+ _connect_cb: function (req, _callback, raw) {
Strophe.info("_connect_cb was called");
-
this.connected = true;
- var bodyWrap = this._proto._reqToData(req);
+ var bodyWrap;
+ try {
+ bodyWrap = this._proto._reqToData(req);
+ } catch (e) {
+ if (e != "badformat") { throw e; }
+ this._changeConnectStatus(Strophe.Status.CONNFAIL, 'bad-format');
+ this._doDisconnect('bad-format');
+ }
if (!bodyWrap) { return; }
if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) {
@@ -3118,145 +3368,180 @@ Strophe.Connection.prototype = {
return;
}
- this._authentication.sasl_scram_sha1 = false;
- this._authentication.sasl_plain = false;
- this._authentication.sasl_digest_md5 = false;
- this._authentication.sasl_anonymous = false;
-
- this._authentication.legacy_auth = false;
-
// Check for the stream:features tag
var hasFeatures;
if (bodyWrap.getElementsByTagNameNS) {
hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, "features").length > 0;
} else {
- hasFeatures = bodyWrap.getElementsByTagName("stream:features").length > 0 || bodyWrap.getElementsByTagName("features").length > 0;
+ hasFeatures = bodyWrap.getElementsByTagName("stream:features").length > 0 ||
+ bodyWrap.getElementsByTagName("features").length > 0;
}
- var mechanisms = bodyWrap.getElementsByTagName("mechanism");
- var matched = [];
- var i, mech, found_authentication = false;
if (!hasFeatures) {
this._proto._no_auth_received(_callback);
return;
}
+
+ var matched = [], i, mech;
+ var mechanisms = bodyWrap.getElementsByTagName("mechanism");
if (mechanisms.length > 0) {
for (i = 0; i < mechanisms.length; i++) {
mech = Strophe.getText(mechanisms[i]);
if (this.mechanisms[mech]) matched.push(this.mechanisms[mech]);
}
}
- this._authentication.legacy_auth =
- bodyWrap.getElementsByTagName("auth").length > 0;
- found_authentication = this._authentication.legacy_auth ||
- matched.length > 0;
- if (!found_authentication) {
- this._proto._no_auth_received(_callback);
- return;
+ if (matched.length === 0) {
+ if (bodyWrap.getElementsByTagName("auth").length === 0) {
+ // There are no matching SASL mechanisms and also no legacy
+ // auth available.
+ this._proto._no_auth_received(_callback);
+ return;
+ }
}
- if (this.do_authentication !== false)
+ if (this.do_authentication !== false) {
this.authenticate(matched);
+ }
},
- /** Function: authenticate
- * Set up authentication
+ /** Function: sortMechanismsByPriority
*
- * Contiunues the initial connection request by setting up authentication
- * handlers and start the authentication process.
+ * Sorts an array of objects with prototype SASLMechanism according to
+ * their priorities.
*
- * SASL authentication will be attempted if available, otherwise
- * the code will fall back to legacy authentication.
+ * Parameters:
+ * (Array) mechanisms - Array of SASL mechanisms.
*
*/
- authenticate: function (matched)
- {
- var i;
- // Sorting matched mechanisms according to priority.
- for (i = 0; i < matched.length - 1; ++i) {
- var higher = i;
- for (var j = i + 1; j < matched.length; ++j) {
- if (matched[j].prototype.priority > matched[higher].prototype.priority) {
- higher = j;
- }
- }
- if (higher != i) {
- var swap = matched[i];
- matched[i] = matched[higher];
- matched[higher] = swap;
+ sortMechanismsByPriority: function (mechanisms) {
+ // Sorting mechanisms according to priority.
+ var i, j, higher, swap;
+ for (i = 0; i < mechanisms.length - 1; ++i) {
+ higher = i;
+ for (j = i + 1; j < mechanisms.length; ++j) {
+ if (mechanisms[j].prototype.priority > mechanisms[higher].prototype.priority) {
+ higher = j;
+ }
+ }
+ if (higher != i) {
+ swap = mechanisms[i];
+ mechanisms[i] = mechanisms[higher];
+ mechanisms[higher] = swap;
+ }
}
- }
-
- // run each mechanism
- var mechanism_found = false;
- for (i = 0; i < matched.length; ++i) {
- if (!matched[i].test(this)) continue;
-
- this._sasl_success_handler = this._addSysHandler(
- this._sasl_success_cb.bind(this), null,
- "success", null, null);
- this._sasl_failure_handler = this._addSysHandler(
- this._sasl_failure_cb.bind(this), null,
- "failure", null, null);
- this._sasl_challenge_handler = this._addSysHandler(
- this._sasl_challenge_cb.bind(this), null,
- "challenge", null, null);
-
- this._sasl_mechanism = new matched[i]();
- this._sasl_mechanism.onStart(this);
-
- var request_auth_exchange = $build("auth", {
- xmlns: Strophe.NS.SASL,
- mechanism: this._sasl_mechanism.name
- });
+ return mechanisms;
+ },
- if (this._sasl_mechanism.isClientFirst) {
- var response = this._sasl_mechanism.onChallenge(this, null);
- request_auth_exchange.t(Base64.encode(response));
+ /** PrivateFunction: _attemptSASLAuth
+ *
+ * Iterate through an array of SASL mechanisms and attempt authentication
+ * with the highest priority (enabled) mechanism.
+ *
+ * Parameters:
+ * (Array) mechanisms - Array of SASL mechanisms.
+ *
+ * Returns:
+ * (Boolean) mechanism_found - true or false, depending on whether a
+ * valid SASL mechanism was found with which authentication could be
+ * started.
+ */
+ _attemptSASLAuth: function (mechanisms) {
+ mechanisms = this.sortMechanismsByPriority(mechanisms || []);
+ var i = 0, mechanism_found = false;
+ for (i = 0; i < mechanisms.length; ++i) {
+ if (!mechanisms[i].prototype.test(this)) {
+ continue;
+ }
+ this._sasl_success_handler = this._addSysHandler(
+ this._sasl_success_cb.bind(this), null,
+ "success", null, null);
+ this._sasl_failure_handler = this._addSysHandler(
+ this._sasl_failure_cb.bind(this), null,
+ "failure", null, null);
+ this._sasl_challenge_handler = this._addSysHandler(
+ this._sasl_challenge_cb.bind(this), null,
+ "challenge", null, null);
+
+ this._sasl_mechanism = new mechanisms[i]();
+ this._sasl_mechanism.onStart(this);
+
+ var request_auth_exchange = $build("auth", {
+ xmlns: Strophe.NS.SASL,
+ mechanism: this._sasl_mechanism.name
+ });
+ if (this._sasl_mechanism.isClientFirst) {
+ var response = this._sasl_mechanism.onChallenge(this, null);
+ request_auth_exchange.t(Base64.encode(response));
+ }
+ this.send(request_auth_exchange.tree());
+ mechanism_found = true;
+ break;
}
+ return mechanism_found;
+ },
- this.send(request_auth_exchange.tree());
-
- mechanism_found = true;
- break;
- }
-
- if (!mechanism_found) {
- // if none of the mechanism worked
+ /** PrivateFunction: _attemptLegacyAuth
+ *
+ * Attempt legacy (i.e. non-SASL) authentication.
+ *
+ */
+ _attemptLegacyAuth: function () {
if (Strophe.getNodeFromJid(this.jid) === null) {
// we don't have a node, which is required for non-anonymous
// client connections
- this._changeConnectStatus(Strophe.Status.CONNFAIL,
- 'x-strophe-bad-non-anon-jid');
+ this._changeConnectStatus(
+ Strophe.Status.CONNFAIL,
+ 'x-strophe-bad-non-anon-jid'
+ );
this.disconnect('x-strophe-bad-non-anon-jid');
} else {
- // fall back to legacy authentication
- this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);
- this._addSysHandler(this._auth1_cb.bind(this), null, null,
- null, "_auth_1");
-
- this.send($iq({
- type: "get",
- to: this.domain,
- id: "_auth_1"
- }).c("query", {
- xmlns: Strophe.NS.AUTH
- }).c("username", {}).t(Strophe.getNodeFromJid(this.jid)).tree());
+ // Fall back to legacy authentication
+ this._changeConnectStatus(Strophe.Status.AUTHENTICATING, null);
+ this._addSysHandler(
+ this._auth1_cb.bind(this),
+ null, null, null, "_auth_1"
+ );
+ this.send($iq({
+ 'type': "get",
+ 'to': this.domain,
+ 'id': "_auth_1"
+ }).c("query", {xmlns: Strophe.NS.AUTH})
+ .c("username", {}).t(Strophe.getNodeFromJid(this.jid))
+ .tree());
}
- }
+ },
+ /** Function: authenticate
+ * Set up authentication
+ *
+ * Continues the initial connection request by setting up authentication
+ * handlers and starting the authentication process.
+ *
+ * SASL authentication will be attempted if available, otherwise
+ * the code will fall back to legacy authentication.
+ *
+ * Parameters:
+ * (Array) matched - Array of SASL mechanisms supported.
+ *
+ */
+ authenticate: function (matched) {
+ if (!this._attemptSASLAuth(matched)) {
+ this._attemptLegacyAuth();
+ }
},
+ /** PrivateFunction: _sasl_challenge_cb
+ * _Private_ handler for the SASL challenge
+ *
+ */
_sasl_challenge_cb: function(elem) {
var challenge = Base64.decode(Strophe.getText(elem));
var response = this._sasl_mechanism.onChallenge(this, challenge);
-
var stanza = $build('response', {
- xmlns: Strophe.NS.SASL
+ 'xmlns': Strophe.NS.SASL
});
if (response !== "") {
stanza.t(Base64.encode(response));
}
this.send(stanza.tree());
-
return true;
},
@@ -3275,8 +3560,7 @@ Strophe.Connection.prototype = {
* false to remove the handler.
*/
/* jshint unused:false */
- _auth1_cb: function (elem)
- {
+ _auth1_cb: function (elem) {
// build plaintext auth iq
var iq = $iq({type: "set", id: "_auth_2"})
.c('query', {xmlns: Strophe.NS.AUTH})
@@ -3294,9 +3578,7 @@ Strophe.Connection.prototype = {
this._addSysHandler(this._auth2_cb.bind(this), null,
null, null, "_auth_2");
-
this.send(iq.tree());
-
return false;
},
/* jshint unused:true */
@@ -3310,8 +3592,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_success_cb: function (elem)
- {
+ _sasl_success_cb: function (elem) {
if (this._sasl_data["server-signature"]) {
var serverSignature;
var success = Base64.decode(Strophe.getText(elem));
@@ -3334,11 +3615,11 @@ Strophe.Connection.prototype = {
return this._sasl_failure_cb(null);
}
}
-
Strophe.info("SASL authentication succeeded.");
- if(this._sasl_mechanism)
+ if (this._sasl_mechanism) {
this._sasl_mechanism.onSuccess();
+ }
// remove old handlers
this.deleteHandler(this._sasl_failure_handler);
@@ -3378,13 +3659,10 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_auth1_cb: function (elem)
- {
+ _sasl_auth1_cb: function (elem) {
// save stream:features for future usage
this.features = elem;
-
var i, child;
-
for (i = 0; i < elem.childNodes.length; i++) {
child = elem.childNodes[i];
if (child.nodeName == 'bind') {
@@ -3414,7 +3692,6 @@ Strophe.Connection.prototype = {
.tree());
}
}
-
return false;
},
@@ -3427,8 +3704,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_bind_cb: function (elem)
- {
+ _sasl_bind_cb: function (elem) {
if (elem.getAttribute("type") == "error") {
Strophe.info("SASL binding failed.");
var conflict = elem.getElementsByTagName("conflict"), condition;
@@ -3479,8 +3755,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _sasl_session_cb: function (elem)
- {
+ _sasl_session_cb: function (elem) {
if (elem.getAttribute("type") == "result") {
this.authenticated = true;
this._changeConnectStatus(Strophe.Status.CONNECTED, null);
@@ -3489,7 +3764,6 @@ Strophe.Connection.prototype = {
this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
return false;
}
-
return false;
},
@@ -3503,8 +3777,7 @@ Strophe.Connection.prototype = {
* false to remove the handler.
*/
/* jshint unused:false */
- _sasl_failure_cb: function (elem)
- {
+ _sasl_failure_cb: function (elem) {
// delete unneeded handlers
if (this._sasl_success_handler) {
this.deleteHandler(this._sasl_success_handler);
@@ -3534,8 +3807,7 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _auth2_cb: function (elem)
- {
+ _auth2_cb: function (elem) {
if (elem.getAttribute("type") == "result") {
this.authenticated = true;
this._changeConnectStatus(Strophe.Status.CONNECTED, null);
@@ -3543,7 +3815,6 @@ Strophe.Connection.prototype = {
this._changeConnectStatus(Strophe.Status.AUTHFAIL, null);
this.disconnect('authentication failed');
}
-
return false;
},
@@ -3558,8 +3829,7 @@ Strophe.Connection.prototype = {
* (Integer) period - The period of the handler.
* (Function) handler - The callback function.
*/
- _addSysTimedHandler: function (period, handler)
- {
+ _addSysTimedHandler: function (period, handler) {
var thand = new Strophe.TimedHandler(period, handler);
thand.user = false;
this.addTimeds.push(thand);
@@ -3580,8 +3850,7 @@ Strophe.Connection.prototype = {
* (String) type - The stanza type attribute to match.
* (String) id - The stanza id attribute to match.
*/
- _addSysHandler: function (handler, ns, name, type, id)
- {
+ _addSysHandler: function (handler, ns, name, type, id) {
var hand = new Strophe.Handler(handler, ns, name, type, id);
hand.user = false;
this.addHandlers.push(hand);
@@ -3597,15 +3866,12 @@ Strophe.Connection.prototype = {
* Returns:
* false to remove the handler.
*/
- _onDisconnectTimeout: function ()
- {
+ _onDisconnectTimeout: function () {
Strophe.info("_onDisconnectTimeout was called");
-
+ this._changeConnectStatus(Strophe.Status.CONNTIMEOUT, null);
this._proto._onDisconnectTimeout();
-
// actually disconnect
this._doDisconnect();
-
return false;
},
@@ -3615,8 +3881,7 @@ Strophe.Connection.prototype = {
* This handler is called every 100ms to fire timed handlers that
* are ready and keep poll requests going.
*/
- _onIdle: function ()
- {
+ _onIdle: function () {
var i, thand, since, newList;
// add timed handlers scheduled for addition
@@ -3659,7 +3924,10 @@ Strophe.Connection.prototype = {
// reactivate the timer only if connected
if (this.connected) {
- this._idleTimeout = setTimeout(this._onIdle.bind(this), 100);
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this), 100);
}
}
};
@@ -3674,9 +3942,14 @@ Strophe.Connection.prototype = {
*
* By default, all mechanisms are enabled and the priorities are
*
+ * EXTERNAL - 60
+ * OAUTHBEARER - 50
* SCRAM-SHA1 - 40
* DIGEST-MD5 - 30
- * Plain - 20
+ * PLAIN - 20
+ * ANONYMOUS - 10
+ *
+ * See: Strophe.Connection.addSupportedSASLMechanisms
*/
/**
@@ -3751,8 +4024,7 @@ Strophe.SASLMechanism.prototype = {
* Parameters:
* (Strophe.Connection) connection - Target Connection.
*/
- onStart: function(connection)
- {
+ onStart: function(connection) {
this._connection = connection;
},
@@ -3791,89 +4063,69 @@ Strophe.SASLMechanism.prototype = {
/** Constants: SASL mechanisms
* Available authentication mechanisms
*
- * Strophe.SASLAnonymous - SASL Anonymous authentication.
- * Strophe.SASLPlain - SASL Plain authentication.
- * Strophe.SASLMD5 - SASL Digest-MD5 authentication
+ * Strophe.SASLAnonymous - SASL ANONYMOUS authentication.
+ * Strophe.SASLPlain - SASL PLAIN authentication.
+ * Strophe.SASLMD5 - SASL DIGEST-MD5 authentication
* Strophe.SASLSHA1 - SASL SCRAM-SHA1 authentication
+ * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication
+ * Strophe.SASLExternal - SASL EXTERNAL authentication
*/
// Building SASL callbacks
/** PrivateConstructor: SASLAnonymous
- * SASL Anonymous authentication.
+ * SASL ANONYMOUS authentication.
*/
Strophe.SASLAnonymous = function() {};
-
Strophe.SASLAnonymous.prototype = new Strophe.SASLMechanism("ANONYMOUS", false, 10);
-Strophe.SASLAnonymous.test = function(connection) {
- return connection.authcid === null;
+Strophe.SASLAnonymous.prototype.test = function(connection) {
+ return connection.authcid === null;
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLAnonymous.prototype.name] = Strophe.SASLAnonymous;
/** PrivateConstructor: SASLPlain
- * SASL Plain authentication.
+ * SASL PLAIN authentication.
*/
Strophe.SASLPlain = function() {};
-
Strophe.SASLPlain.prototype = new Strophe.SASLMechanism("PLAIN", true, 20);
-Strophe.SASLPlain.test = function(connection) {
- return connection.authcid !== null;
+Strophe.SASLPlain.prototype.test = function(connection) {
+ return connection.authcid !== null;
};
Strophe.SASLPlain.prototype.onChallenge = function(connection) {
- var auth_str = connection.authzid;
- auth_str = auth_str + "\u0000";
- auth_str = auth_str + connection.authcid;
- auth_str = auth_str + "\u0000";
- auth_str = auth_str + connection.pass;
- return auth_str;
+ var auth_str = connection.authzid;
+ auth_str = auth_str + "\u0000";
+ auth_str = auth_str + connection.authcid;
+ auth_str = auth_str + "\u0000";
+ auth_str = auth_str + connection.pass;
+ return utils.utf16to8(auth_str);
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLPlain.prototype.name] = Strophe.SASLPlain;
/** PrivateConstructor: SASLSHA1
* SASL SCRAM SHA 1 authentication.
*/
Strophe.SASLSHA1 = function() {};
-
-/* TEST:
- * This is a simple example of a SCRAM-SHA-1 authentication exchange
- * when the client doesn't support channel bindings (username 'user' and
- * password 'pencil' are used):
- *
- * C: n,,n=user,r=fyko+d2lbbFgONRv9qkxdawL
- * S: r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,
- * i=4096
- * C: c=biws,r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,
- * p=v0X8v3Bz2T0CJGbJQyF0X+HI4Ts=
- * S: v=rmF9pqV8S7suAoZWja4dJRkFsKQ=
- *
- */
-
Strophe.SASLSHA1.prototype = new Strophe.SASLMechanism("SCRAM-SHA-1", true, 40);
-Strophe.SASLSHA1.test = function(connection) {
- return connection.authcid !== null;
+Strophe.SASLSHA1.prototype.test = function(connection) {
+ return connection.authcid !== null;
};
Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cnonce) {
var cnonce = test_cnonce || MD5.hexdigest(Math.random() * 1234567890);
-
- var auth_str = "n=" + connection.authcid;
+ var auth_str = "n=" + utils.utf16to8(connection.authcid);
auth_str += ",r=";
auth_str += cnonce;
-
connection._sasl_data.cnonce = cnonce;
connection._sasl_data["client-first-message-bare"] = auth_str;
auth_str = "n,," + auth_str;
- this.onChallenge = function (connection, challenge)
- {
- var nonce, salt, iter, Hi, U, U_old, i, k;
+ this.onChallenge = function (connection, challenge) {
+ var nonce, salt, iter, Hi, U, U_old, i, k, pass;
var clientKey, serverKey, clientSignature;
var responseText = "c=biws,";
var authMessage = connection._sasl_data["client-first-message-bare"] + "," +
@@ -3908,9 +4160,10 @@ Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cn
salt = Base64.decode(salt);
salt += "\x00\x00\x00\x01";
- Hi = U_old = SHA1.core_hmac_sha1(connection.pass, salt);
+ pass = utils.utf16to8(connection.pass);
+ Hi = U_old = SHA1.core_hmac_sha1(pass, salt);
for (i = 1; i < iter; i++) {
- U = SHA1.core_hmac_sha1(connection.pass, SHA1.binb2str(U_old));
+ U = SHA1.core_hmac_sha1(pass, SHA1.binb2str(U_old));
for (k = 0; k < 5; k++) {
Hi[k] ^= U[k];
}
@@ -3928,24 +4181,21 @@ Strophe.SASLSHA1.prototype.onChallenge = function(connection, challenge, test_cn
}
responseText += ",p=" + Base64.encode(SHA1.binb2str(clientKey));
-
return responseText;
}.bind(this);
return auth_str;
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLSHA1.prototype.name] = Strophe.SASLSHA1;
/** PrivateConstructor: SASLMD5
* SASL DIGEST MD5 authentication.
*/
Strophe.SASLMD5 = function() {};
-
Strophe.SASLMD5.prototype = new Strophe.SASLMechanism("DIGEST-MD5", false, 30);
-Strophe.SASLMD5.test = function(connection) {
- return connection.authcid !== null;
+Strophe.SASLMD5.prototype.test = function(connection) {
+ return connection.authcid !== null;
};
/** PrivateFunction: _quote
@@ -3957,12 +4207,10 @@ Strophe.SASLMD5.test = function(connection) {
* Returns:
* quoted string
*/
-Strophe.SASLMD5.prototype._quote = function (str)
- {
+Strophe.SASLMD5.prototype._quote = function (str) {
return '"' + str.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"';
//" end string workaround for emacs
- };
-
+};
Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cnonce) {
var attribMatch = /([a-z]+)=("[^"]+"|[^,"]+)(?:,|$)/;
@@ -3998,15 +4246,13 @@ Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cno
digest_uri = digest_uri + "/" + host;
}
- var A1 = MD5.hash(connection.authcid +
- ":" + realm + ":" + this._connection.pass) +
- ":" + nonce + ":" + cnonce;
+ var cred = utils.utf16to8(connection.authcid + ":" + realm + ":" + this._connection.pass);
+ var A1 = MD5.hash(cred) + ":" + nonce + ":" + cnonce;
var A2 = 'AUTHENTICATE:' + digest_uri;
var responseText = "";
responseText += 'charset=utf-8,';
- responseText += 'username=' +
- this._quote(connection.authcid) + ',';
+ responseText += 'username=' + this._quote(utils.utf16to8(connection.authcid)) + ',';
responseText += 'realm=' + this._quote(realm) + ',';
responseText += 'nonce=' + this._quote(nonce) + ',';
responseText += 'nc=00000001,';
@@ -4018,15 +4264,57 @@ Strophe.SASLMD5.prototype.onChallenge = function(connection, challenge, test_cno
MD5.hexdigest(A2)) + ",";
responseText += 'qop=auth';
- this.onChallenge = function ()
- {
+ this.onChallenge = function () {
return "";
- }.bind(this);
-
+ };
return responseText;
};
-Strophe.Connection.prototype.mechanisms[Strophe.SASLMD5.prototype.name] = Strophe.SASLMD5;
+
+/** PrivateConstructor: SASLOAuthBearer
+ * SASL OAuth Bearer authentication.
+ */
+Strophe.SASLOAuthBearer = function() {};
+Strophe.SASLOAuthBearer.prototype = new Strophe.SASLMechanism("OAUTHBEARER", true, 50);
+
+Strophe.SASLOAuthBearer.prototype.test = function(connection) {
+ return connection.authcid !== null;
+};
+
+Strophe.SASLOAuthBearer.prototype.onChallenge = function(connection) {
+ var auth_str = 'n,a=';
+ auth_str = auth_str + connection.authzid;
+ auth_str = auth_str + ',';
+ auth_str = auth_str + "\u0001";
+ auth_str = auth_str + 'auth=Bearer ';
+ auth_str = auth_str + connection.pass;
+ auth_str = auth_str + "\u0001";
+ auth_str = auth_str + "\u0001";
+ return utils.utf16to8(auth_str);
+};
+
+
+/** PrivateConstructor: SASLExternal
+ * SASL EXTERNAL authentication.
+ *
+ * The EXTERNAL mechanism allows a client to request the server to use
+ * credentials established by means external to the mechanism to
+ * authenticate the client. The external means may be, for instance,
+ * TLS services.
+ */
+Strophe.SASLExternal = function() {};
+Strophe.SASLExternal.prototype = new Strophe.SASLMechanism("EXTERNAL", true, 60);
+
+Strophe.SASLExternal.prototype.onChallenge = function(connection) {
+ /** According to XEP-178, an authzid SHOULD NOT be presented when the
+ * authcid contained or implied in the client certificate is the JID (i.e.
+ * authzid) with which the user wants to log in as.
+ *
+ * To NOT send the authzid, the user should therefore set the authcid equal
+ * to the JID when instantiating a new Strophe.Connection object.
+ */
+ return connection.authcid === connection.authzid ? '' : connection.authzid;
+};
return {
Strophe: Strophe,
@@ -4080,11 +4368,9 @@ return {
* (Function) func - The function that will be called when the
* XMLHttpRequest readyState changes.
* (Integer) rid - The BOSH rid attribute associated with this request.
- * (Integer) sends - The number of times this same request has been
- * sent.
+ * (Integer) sends - The number of times this same request has been sent.
*/
-Strophe.Request = function (elem, func, rid, sends)
-{
+Strophe.Request = function (elem, func, rid, sends) {
this.id = ++Strophe._requestId;
this.xmlData = elem;
this.data = Strophe.serialize(elem);
@@ -4120,12 +4406,12 @@ Strophe.Request.prototype = {
*
* Throws:
* "parsererror" - A parser error occured.
+ * "badformat" - The entity has sent XML that cannot be processed.
*
* Returns:
* The DOM element tree of the response.
*/
- getResponse: function ()
- {
+ getResponse: function () {
var node = null;
if (this.xhr.responseXML && this.xhr.responseXML.documentElement) {
node = this.xhr.responseXML.documentElement;
@@ -4139,8 +4425,7 @@ Strophe.Request.prototype = {
} else if (this.xhr.responseText) {
Strophe.error("invalid response received");
Strophe.error("responseText: " + this.xhr.responseText);
- Strophe.error("responseXML: " +
- Strophe.serialize(this.xhr.responseXML));
+ throw "badformat";
}
return node;
@@ -4154,8 +4439,7 @@ Strophe.Request.prototype = {
* Returns:
* A new XMLHttpRequest.
*/
- _newXHR: function ()
- {
+ _newXHR: function () {
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
@@ -4165,10 +4449,8 @@ Strophe.Request.prototype = {
} else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
-
// use Function.bind() to prepend ourselves as an argument
xhr.onreadystatechange = this.func.bind(null, this);
-
return xhr;
}
};
@@ -4209,6 +4491,7 @@ Strophe.Bosh = function(connection) {
this.wait = 60;
this.window = 5;
this.errors = 0;
+ this.inactivity = null;
this._requests = [];
};
@@ -4233,8 +4516,7 @@ Strophe.Bosh.prototype = {
* Returns:
* A Strophe.Builder with a <body/> element.
*/
- _buildBody: function ()
- {
+ _buildBody: function () {
var bodyWrap = $build('body', {
rid: this.rid++,
xmlns: Strophe.NS.HTTPBIND
@@ -4242,7 +4524,7 @@ Strophe.Bosh.prototype = {
if (this.sid !== null) {
bodyWrap.attrs({sid: this.sid});
}
- if (this._conn.options.keepalive) {
+ if (this._conn.options.keepalive && this._conn._sessionCachingSupported()) {
this._cacheSession();
}
return bodyWrap;
@@ -4253,12 +4535,13 @@ Strophe.Bosh.prototype = {
*
* This function is called by the reset function of the Strophe Connection
*/
- _reset: function ()
- {
+ _reset: function () {
this.rid = Math.floor(Math.random() * 4294967295);
this.sid = null;
this.errors = 0;
- window.sessionStorage.removeItem('strophe-bosh-session');
+ if (this._conn._sessionCachingSupported()) {
+ window.sessionStorage.removeItem('strophe-bosh-session');
+ }
this._conn.nextValidRid(this.rid);
},
@@ -4268,8 +4551,7 @@ Strophe.Bosh.prototype = {
*
* Creates and sends the Request that initializes the BOSH connection.
*/
- _connect: function (wait, hold, route)
- {
+ _connect: function (wait, hold, route) {
this.wait = wait || this.wait;
this.hold = hold || this.hold;
this.errors = 0;
@@ -4326,8 +4608,7 @@ Strophe.Bosh.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- _attach: function (jid, sid, rid, callback, wait, hold, wind)
- {
+ _attach: function (jid, sid, rid, callback, wait, hold, wind) {
this._conn.jid = jid;
this.sid = sid;
this.rid = rid;
@@ -4365,15 +4646,14 @@ Strophe.Bosh.prototype = {
* (Integer) wind - The optional HTTBIND window value. This is the
* allowed range of request ids that are valid. The default is 5.
*/
- _restore: function (jid, callback, wait, hold, wind)
- {
+ _restore: function (jid, callback, wait, hold, wind) {
var session = JSON.parse(window.sessionStorage.getItem('strophe-bosh-session'));
if (typeof session !== "undefined" &&
session !== null &&
session.rid &&
session.sid &&
session.jid &&
- (typeof jid === "undefined" || jid === "null" || Strophe.getBareJidFromJid(session.jid) == Strophe.getBareJidFromJid(jid)))
+ (typeof jid === "undefined" || jid === null || Strophe.getBareJidFromJid(session.jid) == Strophe.getBareJidFromJid(jid)))
{
this._conn.restored = true;
this._attach(session.jid, session.sid, session.rid, callback, wait, hold, wind);
@@ -4389,8 +4669,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Strophe.Request) bodyWrap - The received stanza.
*/
- _cacheSession: function ()
- {
+ _cacheSession: function () {
if (this._conn.authenticated) {
if (this._conn.jid && this.rid && this.sid) {
window.sessionStorage.setItem('strophe-bosh-session', JSON.stringify({
@@ -4411,8 +4690,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Strophe.Request) bodyWrap - The received stanza.
*/
- _connect_cb: function (bodyWrap)
- {
+ _connect_cb: function (bodyWrap) {
var typ = bodyWrap.getAttribute("type");
var cond, conflict;
if (typ !== null && typ == "terminate") {
@@ -4443,6 +4721,8 @@ Strophe.Bosh.prototype = {
if (hold) { this.hold = parseInt(hold, 10); }
var wait = bodyWrap.getAttribute('wait');
if (wait) { this.wait = parseInt(wait, 10); }
+ var inactivity = bodyWrap.getAttribute('inactivity');
+ if (inactivity) { this.inactivity = parseInt(inactivity, 10); }
},
/** PrivateFunction: _disconnect
@@ -4451,8 +4731,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Request) pres - This stanza will be sent before disconnecting.
*/
- _disconnect: function (pres)
- {
+ _disconnect: function (pres) {
this._sendTerminate(pres);
},
@@ -4461,11 +4740,12 @@ Strophe.Bosh.prototype = {
*
* Resets the SID and RID.
*/
- _doDisconnect: function ()
- {
+ _doDisconnect: function () {
this.sid = null;
this.rid = Math.floor(Math.random() * 4294967295);
- window.sessionStorage.removeItem('strophe-bosh-session');
+ if (this._conn._sessionCachingSupported()) {
+ window.sessionStorage.removeItem('strophe-bosh-session');
+ }
this._conn.nextValidRid(this.rid);
},
@@ -4476,11 +4756,25 @@ Strophe.Bosh.prototype = {
* Returns:
* True, if there are no Requests queued, False otherwise.
*/
- _emptyQueue: function ()
- {
+ _emptyQueue: function () {
return this._requests.length === 0;
},
+ /** PrivateFunction: _callProtocolErrorHandlers
+ * _Private_ function to call error handlers registered for HTTP errors.
+ *
+ * Parameters:
+ * (Strophe.Request) req - The request that is changing readyState.
+ */
+ _callProtocolErrorHandlers: function (req) {
+ var reqStatus = this._getRequestStatus(req),
+ err_callback;
+ err_callback = this._conn.protocolErrorHandlers.HTTP[reqStatus];
+ if (err_callback) {
+ err_callback.call(this, reqStatus);
+ }
+ },
+
/** PrivateFunction: _hitError
* _Private_ function to handle the error count.
*
@@ -4491,8 +4785,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Integer) reqStatus - The request status.
*/
- _hitError: function (reqStatus)
- {
+ _hitError: function (reqStatus) {
this.errors++;
Strophe.warn("request errored, status: " + reqStatus +
", number of errors: " + this.errors);
@@ -4506,8 +4799,7 @@ Strophe.Bosh.prototype = {
* Called on stream start/restart when no stream:features
* has been received and sends a blank poll request.
*/
- _no_auth_received: function (_callback)
- {
+ _no_auth_received: function (_callback) {
if (_callback) {
_callback = _callback.bind(this._conn);
} else {
@@ -4553,7 +4845,6 @@ Strophe.Bosh.prototype = {
*/
_onIdle: function () {
var data = this._conn._data;
-
// if no requests are in progress, poll
if (this._conn.authenticated && this._requests.length === 0 &&
data.length === 0 && !this._conn.disconnecting) {
@@ -4611,6 +4902,34 @@ Strophe.Bosh.prototype = {
}
},
+ /** PrivateFunction: _getRequestStatus
+ *
+ * Returns the HTTP status code from a Strophe.Request
+ *
+ * Parameters:
+ * (Strophe.Request) req - The Strophe.Request instance.
+ * (Integer) def - The default value that should be returned if no
+ * status value was found.
+ */
+ _getRequestStatus: function (req, def) {
+ var reqStatus;
+ if (req.xhr.readyState == 4) {
+ try {
+ reqStatus = req.xhr.status;
+ } catch (e) {
+ // ignore errors from undefined status attribute. Works
+ // around a browser bug
+ Strophe.error(
+ "Caught an error while retrieving a request's status, " +
+ "reqStatus: " + reqStatus);
+ }
+ }
+ if (typeof(reqStatus) == "undefined") {
+ reqStatus = typeof def === 'number' ? def : 0;
+ }
+ return reqStatus;
+ },
+
/** PrivateFunction: _onRequestStateChange
* _Private_ handler for Strophe.Request state changes.
*
@@ -4623,90 +4942,63 @@ Strophe.Bosh.prototype = {
* (Function) func - The handler for the request.
* (Strophe.Request) req - The request that is changing readyState.
*/
- _onRequestStateChange: function (func, req)
- {
- Strophe.debug("request id " + req.id +
- "." + req.sends + " state changed to " +
- req.xhr.readyState);
-
+ _onRequestStateChange: function (func, req) {
+ Strophe.debug("request id "+req.id+"."+req.sends+
+ " state changed to "+req.xhr.readyState);
if (req.abort) {
req.abort = false;
return;
}
+ if (req.xhr.readyState !== 4) {
+ // The request is not yet complete
+ return;
+ }
+ var reqStatus = this._getRequestStatus(req);
+ if (this.disconnecting && reqStatus >= 400) {
+ this._hitError(reqStatus);
+ this._callProtocolErrorHandlers(req);
+ return;
+ }
- // request complete
- var reqStatus;
- if (req.xhr.readyState == 4) {
- reqStatus = 0;
- try {
- reqStatus = req.xhr.status;
- } catch (e) {
- // ignore errors from undefined status attribute. works
- // around a browser bug
- }
-
- if (typeof(reqStatus) == "undefined") {
- reqStatus = 0;
- }
-
- if (this.disconnecting) {
- if (reqStatus >= 400) {
- this._hitError(reqStatus);
- return;
- }
- }
+ if ((reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
+ // remove from internal queue
+ this._removeRequest(req);
+ Strophe.debug("request id "+req.id+" should now be removed");
+ }
+ if (reqStatus == 200) {
+ // request succeeded
var reqIs0 = (this._requests[0] == req);
var reqIs1 = (this._requests[1] == req);
-
- if ((reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
- // remove from internal queue
- this._removeRequest(req);
- Strophe.debug("request id " +
- req.id +
- " should now be removed");
- }
-
- // request succeeded
- if (reqStatus == 200) {
- // if request 1 finished, or request 0 finished and request
- // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to
- // restart the other - both will be in the first spot, as the
- // completed request has been removed from the queue already
- if (reqIs1 ||
- (reqIs0 && this._requests.length > 0 &&
- this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait))) {
- this._restartRequest(0);
- }
-
- this._conn.nextValidRid(Number(req.rid) + 1);
-
- // call handler
- Strophe.debug("request id " +
- req.id + "." +
- req.sends + " got 200");
- func(req);
- this.errors = 0;
- } else {
- Strophe.error("request id " +
- req.id + "." +
- req.sends + " error " + reqStatus +
- " happened");
- if (reqStatus === 0 ||
- (reqStatus >= 400 && reqStatus < 600) ||
- reqStatus >= 12000) {
- this._hitError(reqStatus);
- if (reqStatus >= 400 && reqStatus < 500) {
- this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING, null);
- this._conn._doDisconnect();
- }
- }
+ // if request 1 finished, or request 0 finished and request
+ // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to
+ // restart the other - both will be in the first spot, as the
+ // completed request has been removed from the queue already
+ if (reqIs1 ||
+ (reqIs0 && this._requests.length > 0 &&
+ this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait))) {
+ this._restartRequest(0);
}
-
- if (!((reqStatus > 0 && reqStatus < 500) ||
- req.sends > 5)) {
- this._throttledRequestHandler();
+ this._conn.nextValidRid(Number(req.rid) + 1);
+ Strophe.debug("request id "+req.id+"."+req.sends+" got 200");
+ func(req); // call handler
+ this.errors = 0;
+ } else if (reqStatus === 0 ||
+ (reqStatus >= 400 && reqStatus < 600) ||
+ reqStatus >= 12000) {
+ // request failed
+ Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");
+ this._hitError(reqStatus);
+ this._callProtocolErrorHandlers(req);
+ if (reqStatus >= 400 && reqStatus < 500) {
+ this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING, null);
+ this._conn._doDisconnect();
}
+ } else {
+ Strophe.error("request id "+req.id+"."+req.sends+" error "+reqStatus+" happened");
+ }
+ if (!(reqStatus > 0 && reqStatus < 500) || req.sends > 5) {
+ this._throttledRequestHandler();
}
},
@@ -4719,24 +5011,10 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Integer) i - The index of the request in the queue.
*/
- _processRequest: function (i)
- {
+ _processRequest: function (i) {
var self = this;
var req = this._requests[i];
- var reqStatus = -1;
-
- try {
- if (req.xhr.readyState == 4) {
- reqStatus = req.xhr.status;
- }
- } catch (e) {
- Strophe.error("caught an error in _requests[" + i +
- "], reqStatus: " + reqStatus);
- }
-
- if (typeof(reqStatus) == "undefined") {
- reqStatus = -1;
- }
+ var reqStatus = this._getRequestStatus(req, -1);
// make sure we limit the number of retries
if (req.sends > this._conn.maxRetries) {
@@ -4750,13 +5028,11 @@ Strophe.Bosh.prototype = {
var secondaryTimeout = (req.dead !== null &&
req.timeDead() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait));
var requestCompletedWithServerError = (req.xhr.readyState == 4 &&
- (reqStatus < 1 ||
- reqStatus >= 500));
+ (reqStatus < 1 || reqStatus >= 500));
if (primaryTimeout || secondaryTimeout ||
requestCompletedWithServerError) {
if (secondaryTimeout) {
- Strophe.error("Request " +
- this._requests[i].id +
+ Strophe.error("Request " + this._requests[i].id +
" timed out (secondary), restarting");
}
req.abort = true;
@@ -4771,17 +5047,23 @@ Strophe.Bosh.prototype = {
}
if (req.xhr.readyState === 0) {
- Strophe.debug("request id " + req.id +
- "." + req.sends + " posting");
+ Strophe.debug("request id "+req.id+"."+req.sends+" posting");
try {
+ var contentType = this._conn.options.contentType || "text/xml; charset=utf-8";
req.xhr.open("POST", this._conn.service, this._conn.options.sync ? false : true);
- req.xhr.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
+ if (typeof req.xhr.setRequestHeader !== 'undefined') {
+ // IE9 doesn't have setRequestHeader
+ req.xhr.setRequestHeader("Content-Type", contentType);
+ }
+ if (this._conn.options.withCredentials) {
+ req.xhr.withCredentials = true;
+ }
} catch (e2) {
Strophe.error("XHR open failed.");
if (!this._conn.connected) {
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL,
- "bad-service");
+ this._conn._changeConnectStatus(
+ Strophe.Status.CONNFAIL, "bad-service");
}
this._conn.disconnect();
return;
@@ -4809,7 +5091,10 @@ Strophe.Bosh.prototype = {
// expanding retry window
var backoff = Math.min(Math.floor(Strophe.TIMEOUT * this.wait),
Math.pow(req.sends, 3)) * 1000;
- setTimeout(sendFunc, backoff);
+ setTimeout(function() {
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ sendFunc();
+ }, backoff);
} else {
sendFunc();
}
@@ -4840,20 +5125,16 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Strophe.Request) req - The request to remove.
*/
- _removeRequest: function (req)
- {
+ _removeRequest: function (req) {
Strophe.debug("removing request");
-
var i;
for (i = this._requests.length - 1; i >= 0; i--) {
if (req == this._requests[i]) {
this._requests.splice(i, 1);
}
}
-
// IE6 fails on setting to null, so set to empty function
req.xhr.onreadystatechange = function () {};
-
this._throttledRequestHandler();
},
@@ -4863,8 +5144,7 @@ Strophe.Bosh.prototype = {
* Parameters:
* (Integer) i - The index of the request in the queue.
*/
- _restartRequest: function (i)
- {
+ _restartRequest: function (i) {
var req = this._requests[i];
if (req.dead === null) {
req.dead = new Date();
@@ -4885,8 +5165,7 @@ Strophe.Bosh.prototype = {
* Returns:
* The stanza that was passed.
*/
- _reqToData: function (req)
- {
+ _reqToData: function (req) {
try {
return req.getResponse();
} catch (e) {
@@ -4902,20 +5181,18 @@ Strophe.Bosh.prototype = {
* the BOSH server a terminate body and includes an unavailable
* presence if authentication has completed.
*/
- _sendTerminate: function (pres)
- {
+ _sendTerminate: function (pres) {
Strophe.info("_sendTerminate was called");
var body = this._buildBody().attrs({type: "terminate"});
-
if (pres) {
body.cnode(pres.tree());
}
-
- var req = new Strophe.Request(body.tree(),
- this._onRequestStateChange.bind(
- this, this._conn._dataRecv.bind(this._conn)),
- body.tree().getAttribute("rid"));
-
+ var req = new Strophe.Request(
+ body.tree(),
+ this._onRequestStateChange.bind(
+ this, this._conn._dataRecv.bind(this._conn)),
+ body.tree().getAttribute("rid")
+ );
this._requests.push(req);
this._throttledRequestHandler();
},
@@ -4928,15 +5205,18 @@ Strophe.Bosh.prototype = {
_send: function () {
clearTimeout(this._conn._idleTimeout);
this._throttledRequestHandler();
- this._conn._idleTimeout = setTimeout(this._conn._onIdle.bind(this._conn), 100);
+
+ // XXX: setTimeout should be called only with function expressions (23974bc1)
+ this._conn._idleTimeout = setTimeout(function() {
+ this._onIdle();
+ }.bind(this._conn), 100);
},
/** PrivateFunction: _sendRestart
*
* Send an xmpp:restart stanza.
*/
- _sendRestart: function ()
- {
+ _sendRestart: function () {
this._throttledRequestHandler();
clearTimeout(this._conn._idleTimeout);
},
@@ -4948,8 +5228,7 @@ Strophe.Bosh.prototype = {
* request ids overflow the connection window in the case that one
* request died.
*/
- _throttledRequestHandler: function ()
- {
+ _throttledRequestHandler: function () {
if (!this._requests) {
Strophe.debug("_throttledRequestHandler called with " +
"undefined requests");
@@ -5064,8 +5343,7 @@ Strophe.Websocket.prototype = {
* Returns:
* A Strophe.Builder with a <stream> element.
*/
- _buildStream: function ()
- {
+ _buildStream: function () {
return $build("open", {
"xmlns": Strophe.NS.FRAMING,
"to": this._conn.domain,
@@ -5135,8 +5413,7 @@ Strophe.Websocket.prototype = {
* This function is called by the reset function of the Strophe Connection.
* Is not needed by WebSockets.
*/
- _reset: function ()
- {
+ _reset: function () {
return;
},
@@ -5258,8 +5535,7 @@ Strophe.Websocket.prototype = {
* Parameters:
* (Request) pres - This stanza will be sent before disconnecting.
*/
- _disconnect: function (pres)
- {
+ _disconnect: function (pres) {
if (this.socket && this.socket.readyState !== WebSocket.CLOSED) {
if (pres) {
this._conn.send(pres);
@@ -5282,8 +5558,7 @@ Strophe.Websocket.prototype = {
*
* Just closes the Socket for WebSockets
*/
- _doDisconnect: function ()
- {
+ _doDisconnect: function () {
Strophe.info("WebSockets _doDisconnect was called");
this._closeSocket();
},
@@ -5292,8 +5567,7 @@ Strophe.Websocket.prototype = {
* _Private_ helper function to wrap a stanza in a <stream> tag.
* This is used so Strophe can process stanzas from WebSockets like BOSH
*/
- _streamWrap: function (stanza)
- {
+ _streamWrap: function (stanza) {
return "<wrapper>" + stanza + '</wrapper>';
},
@@ -5303,8 +5577,7 @@ Strophe.Websocket.prototype = {
*
* Closes the socket if it is still open and deletes it
*/
- _closeSocket: function ()
- {
+ _closeSocket: function () {
if (this.socket) { try {
this.socket.close();
} catch (e) {} }
@@ -5317,8 +5590,7 @@ Strophe.Websocket.prototype = {
* Returns:
* True, because WebSocket messages are send immediately after queueing.
*/
- _emptyQueue: function ()
- {
+ _emptyQueue: function () {
return true;
},
@@ -5329,7 +5601,7 @@ Strophe.Websocket.prototype = {
*/
_onClose: function() {
if(this._conn.connected && !this._conn.disconnecting) {
- Strophe.error("Websocket closed unexcectedly");
+ Strophe.error("Websocket closed unexpectedly");
this._conn._doDisconnect();
} else {
Strophe.info("Websocket closed");
@@ -5341,8 +5613,7 @@ Strophe.Websocket.prototype = {
* Called on stream start/restart when no stream:features
* has been received.
*/
- _no_auth_received: function (_callback)
- {
+ _no_auth_received: function (_callback) {
Strophe.error("Server did not send any auth methods");
this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "Server did not send any auth methods");
if (_callback) {
@@ -5372,7 +5643,7 @@ Strophe.Websocket.prototype = {
*/
_onError: function(error) {
Strophe.error("Websocket error " + error);
- this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "The WebSocket connection could not be established was disconnected.");
+ this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, "The WebSocket connection could not be established or was disconnected.");
this._disconnect();
},
@@ -5405,11 +5676,22 @@ Strophe.Websocket.prototype = {
/** PrivateFunction: _onMessage
* _Private_ function to handle websockets messages.
*
- * This function parses each of the messages as if they are full documents. [TODO : We may actually want to use a SAX Push parser].
+ * This function parses each of the messages as if they are full documents.
+ * [TODO : We may actually want to use a SAX Push parser].
+ *
+ * Since all XMPP traffic starts with
+ * <stream:stream version='1.0'
+ * xml:lang='en'
+ * xmlns='jabber:client'
+ * xmlns:stream='http://etherx.jabber.org/streams'
+ * id='3697395463'
+ * from='SERVER'>
+ *
+ * The first stanza will always fail to be parsed.
*
- * Since all XMPP traffic starts with "<stream:stream version='1.0' xml:lang='en' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='3697395463' from='SERVER'>"
- * The first stanza will always fail to be parsed...
- * Addtionnaly, the seconds stanza will always be a <stream:features> with the stream NS defined in the previous stanza... so we need to 'force' the inclusion of the NS in this stanza!
+ * Additionally, the seconds stanza will always be <stream:features> with
+ * the stream NS defined in the previous stanza, so we need to 'force'
+ * the inclusion of the NS in this stanza.
*
* Parameters:
* (string) message - The websocket message.
@@ -5428,7 +5710,6 @@ Strophe.Websocket.prototype = {
} else if (message.data.search("<open ") === 0) {
// This handles stream restarts
elem = new DOMParser().parseFromString(message.data, "text/xml").documentElement;
-
if (!this._handleStreamStart(elem)) {
return;
}
@@ -5480,8 +5761,7 @@ Strophe.Websocket.prototype = {
* Returns:
* The stanza that was passed.
*/
- _reqToData: function (stanza)
- {
+ _reqToData: function (stanza) {
return stanza;
},
@@ -5498,8 +5778,7 @@ Strophe.Websocket.prototype = {
*
* Send an xmpp:restart stanza.
*/
- _sendRestart: function ()
- {
+ _sendRestart: function () {
clearTimeout(this._conn._idleTimeout);
this._conn._onIdle.bind(this._conn)();
}
@@ -5507,9 +5786,35 @@ Strophe.Websocket.prototype = {
return Strophe;
}));
+(function(root){
+ if(typeof define === 'function' && define.amd){
+ define("strophe", [
+ "strophe-core",
+ "strophe-bosh",
+ "strophe-websocket"
+ ], function (wrapper) {
+ return wrapper;
+ });
+ }
+})(this);
+
/* jshint ignore:start */
if (callback) {
- return callback(Strophe, $build, $msg, $iq, $pres);
+ if(typeof define === 'function' && define.amd){
+ //For backwards compatability
+ var n_callback = callback;
+ if (typeof requirejs === 'function') {
+ requirejs(["strophe"], function(o){
+ n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres);
+ });
+ } else {
+ require(["strophe"], function(o){
+ n_callback(o.Strophe,o.$build,o.$msg,o.$iq,o.$pres);
+ });
+ }
+ }else{
+ return callback(Strophe, $build, $msg, $iq, $pres);
+ }
}
diff --git a/build/js/jsxc/lib/translation.js b/build/js/jsxc/lib/translation.js
index a58d6f0..3f0413d 100644
--- a/build/js/jsxc/lib/translation.js
+++ b/build/js/jsxc/lib/translation.js
@@ -1 +1 @@
-var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"de":{"translation":{"Logging_in":"Login läuft…","your_connection_is_unencrypted":"Deine Verbindung ist unverschlüsselt.","your_connection_is_encrypted":"Deine Verbindung ist verschlüsselt.","your_buddy_closed_the_private_connection":"Dein Kontakt hat die private Verbindung getrennt.","start_private":"Privat starten","close_private":"Privat abbrechen","your_buddy_is_verificated":"Dein Kontakt ist verifiziert.","you_have_only_a_subscription_in_one_way":"Der Kontaktstatus ist einseitig.","authentication_query_sent":"Authentifizierungsanfrage gesendet.","your_message_wasnt_send_please_end_your_private_conversation":"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.","unencrypted_message_received":"Unverschlüsselte Nachricht erhalten.","not_available":"Nicht verfügbar.","no_connection":"Keine Verbindung.","relogin":"Neu anmelden.","trying_to_start_private_conversation":"Versuche private Konversation zu starten.","Verified":"Verifiziert","Unverified":"Unverifiziert","private_conversation_aborted":"Private Konversation abgebrochen.","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!","conversation_is_now_verified":"Konversation ist jetzt verifiziert","authentication_failed":"Authentifizierung fehlgeschlagen.","Creating_your_private_key_":"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.","Authenticating_a_buddy_helps_":"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.","How_do_you_want_to_authenticate_your_buddy":"Wie willst du {{bid_name}} (<b>{{bid_jid}}</b>) authentifizieren?","Select_method":"Wähle...","Manual":"Manual","Question":"Frage","Secret":"Geheimnis","To_verify_the_fingerprint_":"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.","Your_fingerprint":"Dein Fingerprint","Buddy_fingerprint":"Sein/Ihr Fingerprint","Close":"Schließen","Compared":"Verglichen","To_authenticate_using_a_question_":"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.","Ask":"Frage","To_authenticate_pick_a_secret_":"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.","Compare":"Vergleiche","Fingerprints":"Fingerprints","Authentication":"Authentifizierung","Message":"Nachricht","Add_buddy":"Kontakt hinzufügen","rename_buddy":"Kontakt umbenennen","delete_buddy":"Kontakt löschen","Login":"Anmeldung","Username":"Benutzername","Password":"Passwort","Cancel":"Abbrechen","Connect":"Verbinden","Type_in_the_full_username_":"Gib bitte den vollen Benutzernamen und optional ein Alias an.","Alias":"Alias","Add":"Hinzufügen","Subscription_request":"Kontaktanfrage","You_have_a_request_from":"Du hast eine Anfrage von","Deny":"Ablehnen","Approve":"Bestätigen","Remove_buddy":"Kontakt entfernen","You_are_about_to_remove_":"Du bist gerade dabei {{bid_name}} (<b>{{bid_jid}}</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.","Continue_without_chat":"Weiter ohne Chat","Please_wait":"Bitte warten","Login_failed":"Chat-Anmeldung fehlgeschlagen","Sorry_we_cant_authentikate_":"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?","Retry":"Zurück","clear_history":"Lösche Verlauf","New_message_from":"Neue Nachricht von __name__","Should_we_notify_you_":"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?","Please_accept_":"Bitte klick auf den \"Zulassen\" Button oben.","Hide_offline":"Offline ausblenden","Show_offline":"Offline einblenden","About":"Über","dnd":"Beschäftigt","Mute":"Ton aus","Unmute":"Ton an","Subscription":"Bezug","both":"beidseitig","Status":"Status","online":"online","chat":"chat","away":"abwesend","xa":"länger abwesend","offline":"offline","none":"keine","Unknown_instance_tag":"Unbekannter instance tag.","Not_one_of_our_latest_keys":"Nicht einer unserer letzten Schlüssel.","Received_an_unreadable_encrypted_message":"Eine unlesbare verschlüsselte Nachricht erhalten.","Online":"Online","Chatty":"Gesprächig","Away":"Abwesend","Extended_away":"Länger abwesend","Offline":"Offline","Friendship_request":"Kontaktanfrage","Confirm":"Bestätigen","Dismiss":"Ablehnen","Remove":"Löschen","Online_help":"Online Hilfe","FN":"Name","N":" ","FAMILY":"Familienname","GIVEN":"Vorname","NICKNAME":"Spitzname","URL":"URL","ADR":"Adresse","STREET":"Straße","EXTADD":"Zusätzliche Adresse","LOCALITY":"Ortschaft","REGION":"Region","PCODE":"Postleitzahl","CTRY":"Land","TEL":"Telefon","NUMBER":"Nummer","EMAIL":"E-Mail","USERID":" ","ORG":"Organisation","ORGNAME":"Name","ORGUNIT":"Abteilung","TITLE":"Titel","ROLE":"Rolle","BDAY":"Geburtstag","DESC":"Beschreibung","PHOTO":" ","send_message":"Sende Nachricht","get_info":"Benutzerinformationen","Settings":"Einstellungen","Priority":"Priorität","Save":"Speichern","User_settings":"Benutzereinstellungen","A_fingerprint_":"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.","is":"ist","Login_options":"Anmeldeoptionen","BOSH_url":"BOSH url","Domain":"Domain","Resource":"Ressource","On_login":"Beim Anmelden","Received_an_unencrypted_message":"Unverschlüsselte Nachricht empfangen","Sorry_your_buddy_doesnt_provide_any_information":"Dein Kontakt stellt leider keine Informationen bereit.","Info_about":"Info über","Authentication_aborted":"Authentifizierung abgebrochen.","Authentication_request_received":"Authentifizierungsanfrage empfangen.","Log_in_without_chat":"Anmelden ohne Chat","has_come_online":"ist online gekommen","Unknown_sender":"Unbekannter Sender","Please_allow_access_to_microphone_and_camera":"Bitte klick auf den \"Zulassen\" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.","Incoming_call":"Eingehender Anruf","from":"von","Do_you_want_to_accept_the_call_from":"Möchtest Du den Anruf annehmen von","Reject":"Ablehnen","Accept":"Annehmen","hang_up":"Auflegen","snapshot":"Schnappschuss","mute_my_audio":"Mein Ton aus","pause_my_video":"Mein Video pausieren","fullscreen":"Vollbild","Info":"Info","Local_IP":"Lokale IP","Remote_IP":"Remote IP","Local_Fingerprint":"Lokaler Fingerprint","Remote_Fingerprint":"Remote Fingerprint","Video_call_not_possible":"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.","Start_video_call":"Starte Videoanruf","Join_chat":"Gruppe beitreten","Join":"Betreten","Room":"Gruppe","Nickname":"Nickname","left_the_building":"__nickname__ hat die Gruppe verlassen","entered_the_room":"__nickname__ ist der Gruppe beigetreten","is_now_known_as":"__oldNickname__ ist nun unter __newNickname__ bekannt","This_room_is":"Diese Gruppe ist","muc_hidden":{"keyword":"versteckt","description":"kann durch die Suche nicht gefunden werden"},"muc_membersonly":{"keyword":"nur für Mitglieder","description":"du musst auf der Mitgliederliste stehen"},"muc_moderated":{"keyword":"moderiert","description":"Nur Personen die \"Mitspracherecht\" haben dürfen Nachrichten senden"},"muc_nonanonymous":{"keyword":"nicht anonym","description":"deine Jabber ID wird für alle Mitglieder sichtbar sein"},"muc_open":{"keyword":"offen","description":"jeder darf dieser Gruppe beitreten"},"muc_passwordprotected":{"keyword":"passwortgeschützt","description":"du benötigst das korrekte Passwort"},"muc_persistent":{"keyword":"permanent","description":"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_public":{"keyword":"öffentlich","description":"kann durch die Suche gefunden werden"},"muc_semianonymous":{"keyword":"teilweise anonym","description":"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},"muc_temporary":{"keyword":"temporär","description":"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_unmoderated":{"keyword":"nicht moderiert","description":"jeder darf Nachrichten senden"},"muc_unsecured":{"keyword":"ungesichert","description":"es wird kein Passwort benötigt"},"Continue":"Weiter","Server":"Server","Rooms_are_loaded":"Gruppen werden geladen","Could_load_only":"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden","muc_explanation":"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten","You_already_joined_this_room":"Du bist dieser Gruppe bereits beigetreten","This_room_will_be_closed":"Diese Gruppe wird geschlossen","Room_not_found_":"Es wird eine neue Gruppe erstellt","Loading_room_information":"Informationen über Gruppe werden geladen","Destroy":"Auflösen","Leave":"Verlassen","changed_subject_to":"__nickname__ hat das Thema auf __subject__ geändert","muc_removed_kicked":"Du wurdest aus der Gruppe entfernt","muc_removed_info_kicked":"__nickname__ wurde aus der Gruppe entfernt","muc_removed_banned":"Du wurdest aus der Gruppe ausgeschlossen","muc_removed_info_banned":"__nickname__ wurde aus der Gruppe ausgeschlossen","muc_removed_affiliation":"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus","muc_removed_info_affiliation":"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus","muc_removed_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt","muc_removed_info_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt","muc_removed_shutdown":"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird","Reason":"Grund","message_not_send":"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert","message_not_send_forbidden":"Deine Nachricht wurde nicht versandt, da du kein \"Mitspracherecht\" hast","message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist","This_room_has_been_closed":"Diese Gruppe wurde geschlossen","Room_logging_is_enabled":"Gesprächsverlauf kann öffentlich einsehbar sein","A_password_is_required":"Es wird ein Passwort benötigt","You_are_not_on_the_member_list":"Du bist kein eingetragenes Mitglied","You_are_banned_from_this_room":"Du wurdest von dieser Gruppe ausgeschlossen","Your_desired_nickname_":"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.","The_maximum_number_":"Die maximale Anzahl der Mitglieder wurde erreicht.","This_room_is_locked_":"Diese Gruppe ist gesperrt","You_are_not_allowed_to_create_":"Du darfst keine neue Gruppe erstellen","Alert":"Alarm","Call_started":"Anruf gestarted","Call_terminated":"Anruf beendet","Carbon_copy":"Kopie","Enable":"Aktivieren","jingle_reason_busy":"beschäftigt","jingle_reason_decline":"abgelehnt","jingle_reason_success":"aufgelegt","Media_failure":"Gerätefehler","No_local_audio_device":"Kein eigenes Audio Gerät","No_local_video_device":"Keine eigene Webcam","Ok":"Ok","PermissionDeniedError":"Du oder dein Browser haben die Audio/Video Berechtigung verweigert","Use_local_audio_device":"Nutze eigenes Audio Gerät","Use_local_video_device":"Benutze eigene Webcam","is_":"ist __status__","You_received_a_message_from_an_unknown_sender_":"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?","Your_roster_is_empty_add_":"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>","onsmp_explanation_question":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.","onsmp_explanation_secret":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.","from_sender":"von __sender__","Verified_private_conversation_started":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt."}},"el":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"en":{"translation":{"Logging_in":"Logging in…","your_connection_is_unencrypted":"Your connection is unencrypted.","your_connection_is_encrypted":"Your connection is encrypted.","your_buddy_closed_the_private_connection":"Your contact closed the private connection.","start_private":"Start private","close_private":"Close private","your_buddy_is_verificated":"Your contact is verified.","you_have_only_a_subscription_in_one_way":"You only have a one-way subscription.","authentication_query_sent":"Authentication query sent.","your_message_wasnt_send_please_end_your_private_conversation":"Your message was not sent. Please end your private conversation.","unencrypted_message_received":"Unencrypted message received","not_available":"Not available","no_connection":"No connection!","relogin":"relogin","trying_to_start_private_conversation":"Trying to start private conversation!","Verified":"Verified","Unverified":"Unverified","private_conversation_aborted":"Private conversation aborted!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Your contact closed the private conversation! You should do the same.","conversation_is_now_verified":"Conversation is now verified.","authentication_failed":"Authentication failed.","Creating_your_private_key_":"Creating your private key; this may take a while.","Authenticating_a_buddy_helps_":"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.","How_do_you_want_to_authenticate_your_buddy":"How do you want to authenticate {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Select method...","Manual":"Manual","Question":"Question","Secret":"Secret","To_verify_the_fingerprint_":"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.","Your_fingerprint":"Your fingerprint","Buddy_fingerprint":"Contact fingerprint","Close":"Close","Compared":"Compared","To_authenticate_using_a_question_":"To authenticate using a question, pick a question whose answer is known only you and your contact.","Ask":"Ask","To_authenticate_pick_a_secret_":"To authenticate, pick a secret known only to you and your contact.","Compare":"Compare","Fingerprints":"Fingerprints","Authentication":"Authentication","Message":"Message","Add_buddy":"Add contact","rename_buddy":"rename contact","delete_buddy":"delete contact","Login":"Login","Username":"Username","Password":"Password","Cancel":"Cancel","Connect":"Connect","Type_in_the_full_username_":"Type in the full username and an optional alias.","Alias":"Alias","Add":"Add","Subscription_request":"Subscription request","You_have_a_request_from":"You have a request from","Deny":"Deny","Approve":"Approve","Remove_buddy":"Remove contact","You_are_about_to_remove_":"You are about to remove {{bid_name}} (<b>{{bid_jid}}</b>) from your contact list. All related chats will be closed.","Continue_without_chat":"Continue without chat","Please_wait":"Please wait","Login_failed":"Chat login failed","Sorry_we_cant_authentikate_":"Authentication failed with the chat server. Maybe the password is wrong?","Retry":"Back","clear_history":"Clear history","New_message_from":"New message from __name__","Should_we_notify_you_":"Should we notify you about new messages in the future?","Please_accept_":"Please click the \"Allow\" button at the top.","Hide_offline":"Hide offline contacts","Show_offline":"Show offline contacts","About":"About","dnd":"Do Not Disturb","Mute":"Mute","Unmute":"Unmute","Subscription":"Subscription","both":"both","Status":"Status","online":"online","chat":"chat","away":"away","xa":"extended away","offline":"offline","none":"none","Unknown_instance_tag":"Unknown instance tag.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Received an unreadable encrypted message.","Online":"Online","Chatty":"Chatty","Away":"Away","Extended_away":"Extended away","Offline":"Offline","Friendship_request":"Contact request","Confirm":"Confirm","Dismiss":"Dismiss","Remove":"Remove","Online_help":"Online help","FN":"Full name","N":" ","FAMILY":"Family name","GIVEN":"Given name","NICKNAME":"Nickname","URL":"URL","ADR":"Address","STREET":"Street Address","EXTADD":"Extended Address","LOCALITY":"Locality","REGION":"Region","PCODE":"Postal Code","CTRY":"Country","TEL":"Telephone","NUMBER":"Number","EMAIL":"Email","USERID":" ","ORG":"Organization","ORGNAME":"Name","ORGUNIT":"Unit","TITLE":"Job title","ROLE":"Role","BDAY":"Birthday","DESC":"Description","PHOTO":" ","send_message":"Send message","get_info":"Show information","Settings":"Settings","Priority":"Priority","Save":"Save","User_settings":"User settings","A_fingerprint_":"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.","is":"is","Login_options":"Login options","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Resource","On_login":"On login","Received_an_unencrypted_message":"Received an unencrypted message","Sorry_your_buddy_doesnt_provide_any_information":"Sorry, your contact does not provide any information.","Info_about":"Info about","Authentication_aborted":"Authentication aborted.","Authentication_request_received":"Authentication request received.","Log_in_without_chat":"Log in without chat","has_come_online":"has come online","Unknown_sender":"Unknown sender","Please_allow_access_to_microphone_and_camera":"Please click the \"Allow\" button at the top, to allow access to microphone and camera.","Incoming_call":"Incoming call","from":"from","Do_you_want_to_accept_the_call_from":"Do you want to accept the call from","Reject":"Reject","Accept":"Accept","hang_up":"hang up","snapshot":"snapshot","mute_my_audio":"mute my audio","pause_my_video":"pause my video","fullscreen":"fullscreen","Info":"Info","Local_IP":"Local IP","Remote_IP":"Remote IP","Local_Fingerprint":"Local fingerprint","Remote_Fingerprint":"Remote fingerprint","Video_call_not_possible":"Video call not possible. Your contact does not support video calls.","Start_video_call":"Start video call","Join_chat":"Join chat","Join":"Join","Room":"Room","Nickname":"Nickname","left_the_building":"__nickname__ left the building","entered_the_room":"__nickname__ entered the room","is_now_known_as":"__oldNickname__ is now known as __newNickname__","This_room_is":"This room is","muc_hidden":{"keyword":"hidden","description":"can not be found through search"},"muc_membersonly":{"keyword":"members-only","description":"you need to be on the member list"},"muc_moderated":{"keyword":"moderated","description":"only persons with \"voice\" are allowed to send messages"},"muc_nonanonymous":{"keyword":"non-anonymous","description":"your jabber id is exposed to all other occupants"},"muc_open":{"keyword":"open","description":"everyone is allowed to join"},"muc_passwordprotected":{"keyword":"password-protected","description":"you need to provide the correct password"},"muc_persistent":{"keyword":"persistent","description":"will not be destroyed if the last occupant left"},"muc_public":{"keyword":"public","description":"can be found through search"},"muc_semianonymous":{"keyword":"semi-anonymous","description":"your jabber id is only exposed to room admins"},"muc_temporary":{"keyword":"temporary","description":"will be destroyed if the last occupant left"},"muc_unmoderated":{"keyword":"unmoderated","description":"everyone is allowed to send messages"},"muc_unsecured":{"keyword":"unsecured","description":"you need no password to enter"},"Continue":"Continue","Server":"Server","Rooms_are_loaded":"Rooms are loaded","Could_load_only":"Could load only __count__ rooms for autocomplete","muc_explanation":"Please enter room name and optional a nickname and password to join a chat","You_already_joined_this_room":"You already joined this room","This_room_will_be_closed":"This room will be closed","Room_not_found_":"A new room will be created","Loading_room_information":"Loading room information","Destroy":"Destroy","Leave":"Leave","changed_subject_to":"__nickname__ changed the room subject to \"__subject__\"","muc_removed_kicked":"You have been kicked from the room","muc_removed_info_kicked":"__nickname__ has been kicked from the room","muc_removed_banned":"You have been banned from the room","muc_removed_info_banned":"__nickname__ has been banned from the room","muc_removed_affiliation":"You have been removed from the room, because of an affiliation change","muc_removed_info_affiliation":"__nickname__ has been removed from the room, because of an affiliation change","muc_removed_membersonly":"You have been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_info_membersonly":"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_shutdown":"You have been removed from the room, because the MUC service is being shut down","Reason":"Reason","message_not_send":"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist","message_not_send_forbidden":"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room","This_room_has_been_closed":"This room has been closed","Room_logging_is_enabled":"Room logging is enabled","A_password_is_required":"A password is required","You_are_not_on_the_member_list":"You are not on the member list","You_are_banned_from_this_room":"You are banned from this room","Your_desired_nickname_":"Your desired nickname is already in use. Please choose another","The_maximum_number_":"The maximum number of user is reached in this room","This_room_is_locked_":"This room is locked","You_are_not_allowed_to_create_":"You are not allowed to create a room","Alert":"Alert","Call_started":"Call started","Call_terminated":"Call terminated","Carbon_copy":"Carbon copy","Enable":"Enable","jingle_reason_busy":"busy","jingle_reason_decline":"decline","jingle_reason_success":"hung up","Media_failure":"Media failure","No_local_audio_device":"No local audio device.","No_local_video_device":"No local video device.","Ok":"Ok","PermissionDeniedError":"You or your browser denied audio/video permission","Use_local_audio_device":"Use local audio device.","Use_local_video_device":"Use local video device.","is_":"is __status__","You_received_a_message_from_an_unknown_sender_":"You received a message from an unknown sender (__sender__) Do you want to display them?","Your_roster_is_empty_add_":"Your roster is empty, add a <a>new contact</a>","onsmp_explanation_question":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.","onsmp_explanation_secret":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.","from_sender":"from __sender__","Verified_private_conversation_started":"Verified Private conversation started.","Unverified_private_conversation_started":"Unverified Private conversation started.","Bookmark":"Bookmark","Auto-join":"Auto-join","Edit_bookmark":"Edit bookmark","Room_logging_is_disabled":"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous","Do_you_want_to_change_the_default_room_configuration":"Do you want to change the default room configuration?","Default":"Default","Change":"Change","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server."}},"es":{"translation":{"Logging_in":"Por favor, espere...","your_connection_is_unencrypted":"Su conexión no está cifrada.","your_connection_is_encrypted":"Su conexión está cifrada.","your_buddy_closed_the_private_connection":"Su amigo ha cerrado la conexión privada.","start_private":"Iniciar privado","close_private":"Cerrar privado","your_buddy_is_verificated":"Tu amigo está verificado.","you_have_only_a_subscription_in_one_way":"Solo tienes una suscripción de un modo.","authentication_query_sent":"Consulta de verificación enviada.","your_message_wasnt_send_please_end_your_private_conversation":"Su mensaje no fue enviado. Por favor, termine su conversación privada.","unencrypted_message_received":"Mensaje no cifrado recibido:","not_available":"No disponible","no_connection":"¡Sin conexión!","relogin":"iniciar sesión nuevamente","trying_to_start_private_conversation":"¡Intentando iniciar una conversación privada!","Verified":"Verificado","Unverified":"No verificado","private_conversation_aborted":"¡Conversación privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"¡Su amigo cerró la conversación privada! Usted debería hacer lo mismo.","conversation_is_now_verified":"La conversación es ahora verificada.","authentication_failed":"Falló la verificación.","Creating_your_private_key_":"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.","Authenticating_a_buddy_helps_":"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.","How_do_you_want_to_authenticate_your_buddy":"¿Cómo desea autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Escoja un método...","Manual":"Manual","Question":"Pregunta","Secret":"Secreto","To_verify_the_fingerprint_":"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.","Your_fingerprint":"Tu firma digital","Buddy_fingerprint":"firma digital de tu amigo","Close":"Cerrar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar mediante una pregunta, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo por usted y su amigo.","Compare":"Comparar","Fingerprints":"Firmas digitales","Authentication":"Autenticación","Message":"Mensaje","Add_buddy":"Añadir amigo","rename_buddy":"renombrar amigo","delete_buddy":"eliminar amigo","Login":"Iniciar Sesión","Username":"Usuario","Password":"Contraseña","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Escriba el usuario completo y un alias opcional.","Alias":"Alias","Add":"Añadir","Subscription_request":"Solicitud de suscripción","You_have_a_request_from":"Tienes una petición de","Deny":"Rechazar","Approve":"Aprobar","Remove_buddy":"Eliminar amigo","You_are_about_to_remove_":"Vas a eliminar a {{bid_name}} (<b>{{bid_jid}}</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.","Continue_without_chat":"Continuar","Please_wait":"Espere por favor","Login_failed":"Fallo el inicio de sesión","Sorry_we_cant_authentikate_":"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?","Retry":"Reintentar","clear_history":"Borrar el historial","New_message_from":"Nuevo mensaje de __name__","Should_we_notify_you_":"¿Debemos notificarle sobre nuevos mensajes en el futuro?","Please_accept_":"Por favor, haga clic en el botón \"Permitir\" en la parte superior.","Hide_offline":"Ocultar contactos desconectados","Show_offline":"Mostrar contactos desconectados","About":"Acerca de","dnd":"No Molestar","Mute":"Desactivar sonido","Unmute":"Activar sonido","Subscription":"Suscripción","both":"ambos","Status":"Estado","online":"en línea","chat":"chat","away":"ausente","xa":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más ausente","Offline":"Desconectado","Friendship_request":"Solicitud de amistad","Confirm":"Confirmar","Dismiss":"Rechazar","Remove":"Eliminar","Online_help":"Ayuda en línea","FN":"Nombre completo ","N":" ","FAMILY":"Apellido","GIVEN":"Nombre","NICKNAME":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","USERID":" ","ORG":"Organización","ORGNAME":"Nombre","ORGUNIT":"Departamento","TITLE":"Título","ROLE":"Rol","BDAY":"Cumpleaños","DESC":"Descripción","PHOTO":" ","send_message":"mandar un texto","get_info":"obtener información","Settings":"Ajustes","Priority":"Prioridad","Save":"Guardar","User_settings":"Configuración de usuario","A_fingerprint_":"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser","is":"es","Login_options":"Opciones de login","BOSH_url":"BOSH url","Domain":"Dominio","Resource":"Recurso","On_login":"Iniciar sesión","Received_an_unencrypted_message":"Recibe un mensaje no cifrado","Sorry_your_buddy_doesnt_provide_any_information":"Lo sentimos, su amigo no provee ninguna información.","Info_about":"Info acerca de","Authentication_aborted":"Autenticación abortada","Authentication_request_received":"Pedido de autenticación recibido.","Log_in_without_chat":"Ingresar sin chat","has_come_online":"se ha conectado","Unknown_sender":"Remitente desconocido","Please_allow_access_to_microphone_and_camera":"Por favor, permitir el acceso al micrófono y la cámara.","Incoming_call":"Llamada entrante","from":"de","Do_you_want_to_accept_the_call_from":"Desea aceptar la llamada de","Reject":"Rechazar","Accept":"Aceptar","hang_up":"colgar","snapshot":"instantánea","mute_my_audio":"silenciar mi audio","pause_my_video":"pausar mi vídeo","fullscreen":"pantalla completa","Info":"Info","Local_IP":"IP local","Remote_IP":"IP remota","Local_Fingerprint":"Firma digital local","Remote_Fingerprint":"Firma digital remota","Video_call_not_possible":"Llamada de vídeo no es posible","Start_video_call":"Iniciar llamada de vídeo","Join_chat":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","is_":"es __status__","You_received_a_message_from_an_unknown_sender_":"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?","Your_roster_is_empty_add_":"Tu lista de amigos esta vacía, añadir un <a>nuevo amigo</a>","onsmp_explanation_question":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.","onsmp_explanation_secret":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado se inició una conversación privada.","Unverified_private_conversation_started":"No verificado se inició una conversación privada.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP"}},"fi":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"fr":{"translation":{"Logging_in":"Connexion...","your_connection_is_unencrypted":"Connexion non chiffrée.","your_connection_is_encrypted":"Connexion chiffrée.","your_buddy_closed_the_private_connection":"Votre contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","close_private":"Clôturer une conversation privée","your_buddy_is_verificated":"Votre contact est vérifié.","you_have_only_a_subscription_in_one_way":"Vous ne pouvez souscrire qu'une fois.","authentication_query_sent":"Requête d’authentification envoyée.","your_message_wasnt_send_please_end_your_private_conversation":"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.","unencrypted_message_received":"Message non chiffré reçu","not_available":"Non disponible","no_connection":"Pas de connexion !","relogin":"Re-connexion","trying_to_start_private_conversation":"Essai de démarrage d'une conversation privée !","Verified":"Vérifié","Unverified":"Non vérifié","private_conversation_aborted":"Conversation privée interrompue !","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Votre contact a fermé la conversation privée ! Vous devriez faire de même.","conversation_is_now_verified":"La conversation est maintenant vérifiée.","authentication_failed":"L'authentification a échoué.","Creating_your_private_key_":"Création de votre clé privée; cela peut prendre un moment.","Authenticating_a_buddy_helps_":"L'authentification d'un contact permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.","How_do_you_want_to_authenticate_your_buddy":"Comment voulez-vous vous authentifier {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Sélection de la méthode...","Manual":"Manuel","Question":"Question","Secret":"Sécurité","To_verify_the_fingerprint_":"Pour vérifier l'empreinte, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","Close":"Fermer","Compared":"Comparé","To_authenticate_using_a_question_":"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","Login":"Connexion","Username":"Nom d'utilisateur","Password":"Mot de passe","Cancel":"Annuler","Connect":"Connecter","Type_in_the_full_username_":"Tapez un nom d'utilisateur complet et un alias(optionnel).","Alias":"Alias","Add":"Ajouter","Subscription_request":"Demande d'abonnement","You_have_a_request_from":"Vous avez une requête de ","Deny":"Refuser","Approve":"Approuver","Remove_buddy":"Supprimer le contact","You_are_about_to_remove_":"Vous allez retirer {{bid_name}} (<b>{{bid_jid}}</b>) de votre liste de contacts. Toutes les fenêtres de discussion en lien avec celui-ci seront fermées.","Continue_without_chat":"Continuer sans tchat","Please_wait":"Merci de patienter","Login_failed":"Authentification échouée","Sorry_we_cant_authentikate_":"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.","Retry":"Retour","clear_history":"Effacer l’historique","New_message_from":"Nouveau message de __name__","Should_we_notify_you_":"Dans le futur, devrons-nous vous notifier les nouveaux messages ?","Please_accept_":"Merci de cliquer sur le bouton \"autoriser\" en haut de page","Hide_offline":"Masquer les contacts non connectés","Show_offline":"Afficher les contacts non connectés","About":"À propos","dnd":"Ne pas déranger","Mute":"Muet","Unmute":"Son actif","Subscription":"Abonnement","both":"Les deux","Status":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","offline":"Hors ligne","none":"Aucun","Unknown_instance_tag":"Tag inconnu","Not_one_of_our_latest_keys":"Ce n'est pas l'une des dernières touches","Received_an_unreadable_encrypted_message":"Message chiffré non lisible","Online":"En ligne","Chatty":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","URL":"URL","ADR":"Adresse","STREET":"Rue","EXTADD":"Adresse (suite)","LOCALITY":"Localité","REGION":"Région","PCODE":"Code Postal","CTRY":"Pays","TEL":"Téléphone","NUMBER":"Numéro","EMAIL":"Courriel","USERID":" USERID ","ORG":"Organisation","ORGNAME":"Nom","ORGUNIT":"Unité","TITLE":"Qualité:","ROLE":"Rôle","BDAY":"Date de naissance","DESC":"Description","PHOTO":"Photo","send_message":"Envoyer un message","get_info":"Montrer les informations","Settings":"Réglages","Priority":"Priorité","Save":"Enregistrer","User_settings":"Paramètres utilisateur","A_fingerprint_":"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez","is":"est","Login_options":"Options d'identification","BOSH_url":"URL BOSH","Domain":"Domaine","Resource":"Ressource","On_login":"Après authentification","Received_an_unencrypted_message":"Reçu un message non chiffré","Sorry_your_buddy_doesnt_provide_any_information":"Désolé, votre contact n'a pas fourni d'informations","Info_about":"À propos de","Authentication_aborted":"Authentification interrompue.","Authentication_request_received":"Requête d'authentification reçue.","Log_in_without_chat":"S'identifier sans tchat","has_come_online":"vient d'arriver","Unknown_sender":"Expéditeur inconnu","Please_allow_access_to_microphone_and_camera":"Veuillez cliquez sur le bouton \"Autoriser\" en haut, pour permettre l'accès au micro et à la caméra.","Incoming_call":"Appel entrant","from":"de","Do_you_want_to_accept_the_call_from":"Voulez-vous accepter l'appel de","Reject":"Rejeté","Accept":"Accepté","hang_up":"raccrocher","snapshot":"Capture d’écran","mute_my_audio":"Couper l'audio","pause_my_video":"Mettre ma vidéo en pause","fullscreen":"Plein écran","Info":"Info","Local_IP":"IP locale","Remote_IP":"IP distante","Local_Fingerprint":"Empreinte locale","Remote_Fingerprint":"Empreinte distante","Video_call_not_possible":"L'appel vidéo n'est possible. Votre contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"muc_membersonly":{"keyword":"pour les membres seulement","description":"Vous devez être sur la liste des membres"},"muc_moderated":{"keyword":"modéré","description":"Seulement les personnes avec la \"voix\" sont autorisés à envoyer des messages"},"muc_nonanonymous":{"keyword":"non anonyme","description":"Votre identifiant Jabber est visible de tous les autres occupants"},"muc_open":{"keyword":"ouvert","description":"Tout le monde est autorisé à se connecter"},"muc_passwordprotected":{"keyword":"protégé par un mot de passe","description":"Vous devez fournir un mot de passe correct"},"muc_persistent":{"keyword":"persistent","description":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"muc_semianonymous":{"keyword":"semi-anonyme","description":"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},"muc_temporary":{"keyword":"temporaire","description":"sera détruit au départ de son dernier occupant"},"muc_unmoderated":{"keyword":"non modéré","description":"Tout le monde est autorisé à envoyer des messages"},"muc_unsecured":{"keyword":"non sécurisé","description":"un mot de passe n'est pas nécessaire pour entrer"},"Continue":"Continuer","Server":"Serveur","Rooms_are_loaded":"Les salons sont chargés","Could_load_only":"Ne peut charger que __count__ salons pour l'autocomplétion","muc_explanation":"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation","You_already_joined_this_room":"Vous avez déjà rejoint ce salon","This_room_will_be_closed":"Ce salon va être fermé","Room_not_found_":"Un nouveau salon va être créé","Loading_room_information":"Chargement des informations du salon","Destroy":"Détruire","Leave":"Quitter","changed_subject_to":"__nickname__ a changé le sujet du salon à \"__subject__\"","muc_removed_kicked":"Vous avez été éjecté de ce salon","muc_removed_info_kicked":"__nickname__ a été éjecté de ce salon","muc_removed_banned":"Vous avez été banni de ce salon","muc_removed_info_banned":"__nickname__ a été banni de ce salon","muc_removed_affiliation":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon","This_room_has_been_closed":"Ce salon a été fermé","Room_logging_is_enabled":"L'historique du salon est conservé","A_password_is_required":"Un mot de passe est requis","You_are_not_on_the_member_list":"Vous n'êtes pas sur la liste des membres","You_are_banned_from_this_room":"Vous avez été banni de ce salon","Your_desired_nickname_":"Votre pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur à refusé de donner les permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","is_":"est __status__","You_received_a_message_from_an_unknown_sender_":"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?","Your_roster_is_empty_add_":"Votre liste est vide, ajouter <a>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP."}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"it":{"translation":{"Logging_in":"login…","your_connection_is_unencrypted":"La sua connessione è non cifrata.","your_connection_is_encrypted":"La sua connessione è cifrata.","your_buddy_closed_the_private_connection":"La sua connessione privata è stato chiuso dal suo compagno.","start_private":"Inizia privata","close_private":"Chiude privata","your_buddy_is_verificated":"Il tuo compagno è stato verificato","you_have_only_a_subscription_in_one_way":"Hai solo una one-way inscrizione.","authentication_query_sent":"Domanda d'autenticità inviata.","your_message_wasnt_send_please_end_your_private_conversation":"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.","unencrypted_message_received":"Messaggio non cifrato ricevuto","not_available":"non disponibile","no_connection":"nessun collegamento!","relogin":"nuovo login","trying_to_start_private_conversation":"Cercando di avviare una conversazione privata!","Verified":"verificato","Unverified":"non verificato","private_conversation_aborted":"Conversazione privata abortito!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.","conversation_is_now_verified":"Conversazione è ora verificato.","authentication_failed":"autenticazione fallita.","Creating_your_private_key_":"Creare la propria chiave privata; questo potrebbe richiedere un po'.","Authenticating_a_buddy_helps_":"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.","How_do_you_want_to_authenticate_your_buddy":"Come si desidera autenticare {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Seleziona metodo ..","Manual":"manuale","Question":"domanda","Secret":"segreto","To_verify_the_fingerprint_":"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.","Your_fingerprint":"il tuo impronta digitale","Buddy_fingerprint":"impronta digitale da compagno","Close":"chiude","Compared":"comparato","To_authenticate_using_a_question_":"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno","Ask":"chiedi","To_authenticate_pick_a_secret_":"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.","Compare":"Comparare","Fingerprints":"Impronta digitale","Authentication":"Autenticazione","Message":"Messagio","Add_buddy":"Aggiungi un compagno","rename_buddy":"rinomina compagno","delete_buddy":"elimina compagno","Login":"Login","Username":"Identificazione dell'utente","Password":"Password","Cancel":"Cancella","Connect":"Collega","Type_in_the_full_username_":"Digita l'identificazione utente completo e un alias opzionale.","Alias":"Alias","Add":"Aggiungi","Subscription_request":"Rrichiesta di sottoscrizione","You_have_a_request_from":"Hai una richiesta da","Deny":"Refiuta","Approve":"Approva","Remove_buddy":"Rimuova il compagno","You_are_about_to_remove_":"Stai rimovendo {{bid_name}} (<b>{{bid_jid}}</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.","Continue_without_chat":"Continua senza chat","Please_wait":"Si prega d'attendere","Login_failed":"Chat login è fallito","Sorry_we_cant_authentikate_":"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?","Retry":"Indietro","clear_history":"Cancella la cronologia","New_message_from":"Nuovo messaggio da __name__","Should_we_notify_you_":"Vuoi ricevere una notifica di nuovi messaggi in futuro?","Please_accept_":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra.","Hide_offline":"Nascondere i contatti non in linea","Show_offline":"Mostra i contatti non in linea","About":"Informazione legale","dnd":"Non disturbare","Mute":"Muto attivo","Unmute":"Muto inattivo","Subscription":"Sottoscrizione","both":"etrambi","Status":"Status","online":"In linea","chat":"chat","away":"via","xa":"via estensivo","offline":"non in linea","none":"nessuno","Unknown_instance_tag":"Instance tag sconosciuta.","Not_one_of_our_latest_keys":"Non è una delle nostre ultime chiavi.","Received_an_unreadable_encrypted_message":"Ricevuto un messaggio crittografato illeggibile.","Online":"In linea","Chatty":"Chiacchierino","Away":"Via","Extended_away":"Via estensivo","Offline":"Non in linea","Friendship_request":"Amicizia richiesto","Confirm":"Conferma","Dismiss":"Rifiuta","Remove":"Rimuovi","Online_help":"Guida in linea","FN":"Nome e cognome","N":null,"FAMILY":"Cognome","GIVEN":"Nome","NICKNAME":"Soprannome","URL":"URL","ADR":"Indirizzo","STREET":"Via","EXTADD":"Esteso Indirizzo","LOCALITY":"Località","REGION":"Regione","PCODE":"Codice Postale","CTRY":"Paese","TEL":"Telefono","NUMBER":"Numero","EMAIL":"E-mail","USERID":null,"ORG":"Organizzazione","ORGNAME":"Nome","ORGUNIT":"Unità","TITLE":"Titolo di lavoro","ROLE":"Funzione","BDAY":"Compleanno","DESC":"Descrizione","PHOTO":null,"send_message":"Messagio inviato","get_info":"Mostra informazioni","Settings":"Impostazione","Priority":"Priorità","Save":"Salva","User_settings":"Impostazione dell'utente","A_fingerprint_":"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.","is":"è","Login_options":"Opzioni di login","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Risorsa","On_login":"Login on","Received_an_unencrypted_message":"Ricevuto un messaggio non crittografato","Sorry_your_buddy_doesnt_provide_any_information":"Spiace, il tuo compagno non fornisce alcuna informazione.","Info_about":"Informazioni","Authentication_aborted":"Autenticazione interrotta","Authentication_request_received":"Richiesta di autenticazione ricevuto.","Log_in_without_chat":"Log in senza chat","has_come_online":"È venuto in linea","Unknown_sender":"Mittente sconosciuto","Please_allow_access_to_microphone_and_camera":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra per autorizzazione del l'accesso al microfono e fotocamera.","Incoming_call":"Chiamata in arrivo","from":"di","Do_you_want_to_accept_the_call_from":"Vuoi accettare la chiamata di","Reject":"Rifiuta","Accept":"Accetta","hang_up":"Riattacca","snapshot":"istantanea","mute_my_audio":"disattiva il mio audio","pause_my_video":"pausa il mio audio","fullscreen":"schermo intero","Info":"Informazione","Local_IP":"IP locale","Remote_IP":"IP remoto","Local_Fingerprint":"Impronta digitale locale","Remote_Fingerprint":"Impronta digitale remoto","Video_call_not_possible":"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.","Start_video_call":"Inizia videochiamata","Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":"è __status__","You_received_a_message_from_an_unknown_sender_":"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?","Your_roster_is_empty_add_":"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>","onsmp_explanation_question":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.","onsmp_explanation_secret":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.","from_sender":"di __sender__","Verified_private_conversation_started":"verificato Conversazione privata iniziato.","Unverified_private_conversation_started":"non verificato Conversazione privata iniziato.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"nds":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"pl":{"translation":{"Logging_in":"Logowanie...","your_connection_is_unencrypted":"Twoje połączenie nie jest szyfrowane.","your_connection_is_encrypted":"Twoje połączenie jest szyfrowane.","your_buddy_closed_the_private_connection":"Twój rozmówca zamknął połączenie.","start_private":"Rozpocznij rozmowę.","close_private":"Zakończ rozmowę.","your_buddy_is_verificated":"Twój rozmówca został zweryfikowany.","you_have_only_a_subscription_in_one_way":"Posiadasz tylko jednostronną subskrypcję.","authentication_query_sent":"Wysłano proźbę o autentykację.","your_message_wasnt_send_please_end_your_private_conversation":"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.","unencrypted_message_received":"Otrzymano niezaszyfrowaną wiadomość.","not_available":"Niedostępny.","no_connection":"Brak połączenia!","relogin":"Połącz ponownie","trying_to_start_private_conversation":"Rozpocznij rozmowę!","Verified":"Zweryfikowano","Unverified":"Niezweryfikowano","private_conversation_aborted":"Anulowano rozmowę!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Rozmówca przerwał połączenie! Powinieneś zrobić to samo.","conversation_is_now_verified":"Zweryfikowano połączenie.","authentication_failed":"Weryfikacja się nie powiodła.","Creating_your_private_key_":"Tworzenie klucza prywatnego; może to chwilę potrwać","Authenticating_a_buddy_helps_":"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).","How_do_you_want_to_authenticate_your_buddy":"Jakiej autoryzacji chcesz użyć {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Wybierz sposób...","Manual":"Ręcznie","Question":"Pytanie","Secret":"Hasło","To_verify_the_fingerprint_":"Aby zweryfikować kod, najpierw skontaktuj się z rozmówcą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i twój rozmówca zna odpowiedź.","Ask":"Zadaj pytanie","To_authenticate_pick_a_secret_":"Aby autoryzować za pomocą hasła, wybierz hasło na które znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","delete_buddy":"Usuń kontakt","Login":"Login","Username":"Nazwa Użytkownika","Password":"Hasło","Cancel":"Anuluj","Connect":"Połączenie","Type_in_the_full_username_":"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).","Alias":"Alias","Add":"Dodaj","Subscription_request":"Potwierdzenie subskrypcji","You_have_a_request_from":"Masz potwierdzenie od","Deny":"Odmów","Approve":"Zatwierdź","Remove_buddy":"Usuń kontakt","You_are_about_to_remove_":"Chcesz usunąć {{bid_name}} (<b>{{bid_jid}}</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","Continue_without_chat":"Kontynuuj bez komunikatora","Please_wait":"Proszę czekać","Login_failed":"Błędne logowanie","Sorry_we_cant_authentikate_":"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?","Retry":"Powrót","clear_history":"Wyczyść historię","New_message_from":"Nowa wiadomość od __name__","Should_we_notify_you_":"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?","Please_accept_":"Kliknij \"Zezwól\" na górze.","Hide_offline":"Schowaj niedostępne kontakty","Show_offline":"Pokaż niedostępne kontakty","About":"Info","dnd":"Nie przeszkadzać","Mute":"Wycisz","Unmute":"Włącz dźwięk","Subscription":"Subskrybcja","both":"obustronna","Status":"Status","online":"Dostępny","chat":"czat","away":"z dala od kompa","xa":"hen hen...","offline":"niedostępny","none":"brak","Unknown_instance_tag":"Nieznany przypadek.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Otrzymano nieczytelną, zaszyfrowaną wiadomość.","Online":"Połączony","Chatty":"Pogawędzimy?","Away":"Daleko","Extended_away":"Hen Hen...","Offline":"Niedostępny","Friendship_request":"Prośba o kontakt","Confirm":"Potwierdzenie","Dismiss":"Odwołaj","Remove":"Usuń","Online_help":"Pomoc Online","FN":"Pełna nazwa","N":" ","FAMILY":"Nazwisko","GIVEN":"Imię","NICKNAME":"Pseudonim","URL":"Strona WWW","ADR":"Adres","STREET":"Ulica","EXTADD":"Pełny adres","LOCALITY":"Lokalizacja","REGION":"Region","PCODE":"Kod pocztowy","CTRY":"Kraj","TEL":"Telefon","NUMBER":"Numer","EMAIL":"Email","USERID":" ","ORG":"Organizacja","ORGNAME":"Nazwa","ORGUNIT":"Jednostka","TITLE":"Stanowisko","ROLE":"Rola","BDAY":"Data urodzin","DESC":"Opis","PHOTO":" ","send_message":"Wyślij wiadomość","get_info":"Pokaż informację","Settings":"Ustawienia","Priority":"Priorytet","Save":"Zapisz","User_settings":"Ustawienia Użytkownika","A_fingerprint_":"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.","is":"jest","Login_options":"opcje logowania","BOSH_url":"Adres BOSH","Domain":"Domena","Resource":"Źródło","On_login":"Na login","Received_an_unencrypted_message":"Zatwierdzono nieszyfrowaną wiadomość.","Sorry_your_buddy_doesnt_provide_any_information":"Wybacz, twój rozmówca nie posiada żadnych informacji.","Info_about":"Informacja o...","Authentication_aborted":"Autoryzacja anulowana.","Authentication_request_received":"Prośba o autoryzację została przyjęta.","Log_in_without_chat":"Zaloguj bez komunikatora","has_come_online":"jest teraz dostępny","Unknown_sender":"Nieznany nadawca","Please_allow_access_to_microphone_and_camera":"Kliknij \"Potwierdź\" na górze, aby móc korzystać z mikrofonu oraz kamery.","Incoming_call":"Przychodzące połączenie","from":"z","Do_you_want_to_accept_the_call_from":"Akceptujesz połączenie od","Reject":"Odrzuć","Accept":"Zaakceptuj","hang_up":"odbierz","snapshot":"zrób zdjęcie","mute_my_audio":"wycisz dźwięk","pause_my_video":"zatrzymaj moje wideo","fullscreen":"Pełny ekran","Info":"Informacja","Local_IP":"Adres IP","Remote_IP":"Zdalny adres IP","Local_Fingerprint":"Kod lokalny","Remote_Fingerprint":"Zdalny kod","Video_call_not_possible":"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.","Start_video_call":"Rozpocznij rozmowę wideo","Join_chat":"Dołącz do czata","Join":"Dołącz","Room":"Pokój","Nickname":"Nazwa użytkownika","left_the_building":"__nickname__ wyszedł","entered_the_room":"__nickname__ wszedł do pokoju","is_now_known_as":"__oldNickname__ zmienił nazwę na __newNickname__","This_room_is":"Ten pokój jest","muc_hidden":{"keyword":"ukryty","description":"nie można odnaleźć elementów wyszukiwania"},"muc_membersonly":{"keyword":"tylko zalogowani","description":"musisz być członkiem listy"},"muc_moderated":{"keyword":"moderowano","description":"tylko osoby z opcją \"głos\" mogą wysyłać wiadomość"},"muc_nonanonymous":{"keyword":"nie-anonimowy","description":"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},"muc_open":{"keyword":"otwarty","description":"wszyscy mają pozwolenie aby dołączyć"},"muc_passwordprotected":{"keyword":"ograniczone hasłem","description":"musisz wpisać prawidłowe hasło"},"muc_persistent":{"keyword":"trwale","description":"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},"muc_public":{"keyword":"publiczny","description":"wyszukawno"},"muc_semianonymous":{"keyword":"pół-anonimowy","description":"Twój identyfikator jabber jest widoczny w pokoju adminów"},"muc_temporary":{"keyword":"tymczasowy","description":"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},"muc_unmoderated":{"keyword":"niemoderowany","description":"wszyscy są uprawnieni do pisania wiadomości"},"muc_unsecured":{"keyword":"niezabezpieczone","description":"nie musisz wpisywać hasła"},"Continue":"Kontynuuj","Server":"Serwer","Rooms_are_loaded":"Pokoje zostały załadowane","Could_load_only":"Nie załadowano __count__ pokoi","muc_explanation":"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło","You_already_joined_this_room":"Już dołączyłeś do tego pokoju","This_room_will_be_closed":"Ten pokój będzie zamknięty","Room_not_found_":"Nowy pokój będzie stworzony","Loading_room_information":"Ładowani informacji o pokoju","Destroy":"Zniszczony","Leave":"Opuść","changed_subject_to":"__nickname__ zmienił temat pokoju na \"__subject__\"","muc_removed_kicked":"Zostałeś wyrzucony z pokoju","muc_removed_info_kicked":"__nickname__ został wyrzucony z pokoju","muc_removed_banned":"Zostałeś zbanowany","muc_removed_info_banned":"__nickname__ został zbanowany","muc_removed_affiliation":"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_info_affiliation":"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_membersonly":"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...","muc_removed_info_membersonly":"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków","muc_removed_shutdown":"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi","Reason":"Powód","message_not_send":"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje","message_not_send_forbidden":"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju","This_room_has_been_closed":"Ten pokój został zamknięty","Room_logging_is_enabled":"Logowanie do pokoju jest włączone","A_password_is_required":"Hasło jest wymagane","You_are_not_on_the_member_list":"Nie jesteś na liście członków","You_are_banned_from_this_room":"Zostałeś zbanowany w tym pokoju","Your_desired_nickname_":"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną","The_maximum_number_":"Została osiągnięta maksymalna liczba użytkowników w tym pokoju","This_room_is_locked_":"Ten pokój jest zablokowany","You_are_not_allowed_to_create_":"Nie masz uprawnień do tworzenia pokoju","Alert":"Alarm","Call_started":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","is_":"jest __status__","You_received_a_message_from_an_unknown_sender_":"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?","Your_roster_is_empty_add_":"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>","onsmp_explanation_question":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.","onsmp_explanation_secret":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.","from_sender":"z __sender__","Verified_private_conversation_started":"Zweryfikowano Rozmowa prywatna rozpoczęta.","Unverified_private_conversation_started":"Niezweryfikowano Rozmowa prywatna rozpoczęta.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP."}},"pt-BR":{"translation":{"Logging_in":"Entrando...","your_connection_is_unencrypted":"Sua conexão não é encriptada","your_connection_is_encrypted":"Sua conexão é encriptada","your_buddy_closed_the_private_connection":"Seu contato fechou a conexão privada","start_private":"Iniciar conversa privada","close_private":"Fechar conversa privada","your_buddy_is_verificated":"Seu contato está verificado","you_have_only_a_subscription_in_one_way":"Você só tem a inscrição one-way","authentication_query_sent":"Pergunta de autenticação enviada","your_message_wasnt_send_please_end_your_private_conversation":"Sua mensagem não foi enviada. Por favor finalize sua conversa privada","unencrypted_message_received":"Mensagem não encriptada recebida","not_available":"Indisponível","no_connection":"Sem conexão!","relogin":"reentrar","trying_to_start_private_conversation":"Tentando iniciar conversa privada","Verified":"Verificado","Unverified":"Não verificado","private_conversation_aborted":"Conversa privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.","conversation_is_now_verified":"Conversa verificada.","authentication_failed":"Autenticação falhou.","Creating_your_private_key_":"Criando sua chave privada: isso pode demorar um pouco.","Authenticating_a_buddy_helps_":"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.","How_do_you_want_to_authenticate_your_buddy":"Como você gostaria de se autenticar {{bid_name}} (<b>{{bid_jid}}</b>)?","Select_method":"Selecione o método...","Manual":"Manual","Question":"Pergunta","Secret":"Senha","To_verify_the_fingerprint_":"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.","Your_fingerprint":"Sua impressão digital","Buddy_fingerprint":"Impressão digital do contato","Close":"Fechar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.","Ask":"Pergunta","To_authenticate_pick_a_secret_":"Para autenticar, escolha um segredo que somente você e seu contato saibam.","Compare":"Compare","Fingerprints":"Impressões digitais","Authentication":"Autenticação","Message":"Mensagem","Add_buddy":"Adicionar contato","rename_buddy":"renomear contato","delete_buddy":"remover contato","Login":"Entrar","Username":"Usuário","Password":"Senha","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Digite seu nome completo e um apelido opcional.","Alias":"Apelido","Add":"Adicionar","Subscription_request":"Pedido de inscrição","You_have_a_request_from":"Você tem um pedido de","Deny":"Negar","Approve":"Aprovar","Remove_buddy":"Remover contato","You_are_about_to_remove_":"Você está prestes a remover {{bid_name}} (<b>{{bid_jid}}</b>) de sua lista de contatos. Todas as conversas serão fechadas.","Continue_without_chat":"Continue sem converar","Please_wait":"Por favor aguarde","Login_failed":"Autenticação da conversa falhou","Sorry_we_cant_authentikate_":"A autenticação com o servidor falhou. Talvez seja a senha errada?","Retry":"Voltar","clear_history":"Limpar histórico","New_message_from":"Nova mensagem de __name__","Should_we_notify_you_":"Devemos continuar notificando sobre novas mensagens no futuro?","Please_accept_":"Por favor clique no botão \"Permitir\" na parte superior.","Hide_offline":"Esconder contatos desconectados","Show_offline":"Mostrar contatos desconectados","About":"Sobre","dnd":"Não perturbe","Mute":"Mudo","Unmute":"Ligar","Subscription":"Inscrição","both":"ambos","Status":"Status","online":"online","chat":"conversa","away":"ausente","xa":"ausente por mais tempo","offline":"desativado","none":"nenhum","Unknown_instance_tag":"Marcação desconhecida da instância","Not_one_of_our_latest_keys":"Nenhuma de nossas ultimas chaves.","Received_an_unreadable_encrypted_message":"Mensagem encriptada ilegível foi recebida.","Online":"Online","Chatty":"Tagarela","Away":"Ausente","Extended_away":"Ausente por mais tempo","Offline":"Desativado","Friendship_request":"Pedido de amizade","Confirm":"Confirmar","Dismiss":"Ignorar","Remove":"Remover","Online_help":"Ajuda online","FN":"Nome completo","N":" ","FAMILY":"Sobrenome","GIVEN":"Nome","NICKNAME":"Apelido","URL":"URL","ADR":"Endereço","STREET":"Rua, Av, etc","EXTADD":"Complemento","LOCALITY":"Localidade","REGION":"Região","PCODE":"CEP","CTRY":"País","TEL":"Telefone","NUMBER":"Número","EMAIL":"Email","USERID":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","send_message":"Enviar mensagem","get_info":"Exibir informações","Settings":"Configurações","Priority":"Prioridade","Save":"Salvar","User_settings":"Configurações do usuário","A_fingerprint_":"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.","is":"é","Login_options":"Opções de login","BOSH_url":"BOSH URL","Domain":"Domínio","Resource":"Recurso","On_login":"Ao autenticar","Received_an_unencrypted_message":"Mensagem não encriptada recebida","Sorry_your_buddy_doesnt_provide_any_information":"Desculpe, seu contato não forneceu nenhuma informação","Info_about":"Informações sobre","Authentication_aborted":"Autenticação encerrada.","Authentication_request_received":"Pedido de autenticação recebido","Log_in_without_chat":"Entrar sem conversar","has_come_online":"ficou online","Unknown_sender":"Emissor desconhecido","Please_allow_access_to_microphone_and_camera":"Por favor clique no botão \"Permitir\" no topo, para conceder acesso ao seu microfone e câmera.","Incoming_call":"Recebendo chamada","from":"de","Do_you_want_to_accept_the_call_from":"Você aceita a chamada de","Reject":"Negar","Accept":"Aceitar","hang_up":"desligar","snapshot":"registrar imagem","mute_my_audio":"mudo","pause_my_video":"pausar vídeo","fullscreen":"tela cheia","Info":"Informações","Local_IP":"IP local","Remote_IP":"IP remoto","Local_Fingerprint":"Fingerprint local","Remote_Fingerprint":"Fingerprint remoto","Video_call_not_possible":"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.","Start_video_call":"Iniciar chamada de vídeo","Join_chat":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","is_":"é __status__","You_received_a_message_from_an_unknown_sender_":"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?","Your_roster_is_empty_add_":"Sua lista está vazia, adicione um <a>novo contato</a>","onsmp_explanation_question":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.","onsmp_explanation_secret":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado Conversa privada iniciada.","Unverified_private_conversation_started":"Não verificado Conversa privada iniciada.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP"}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici {{bid_name}} (<b>{{bid_jid}}</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi {{bid_name}} (<b>{{bid_jid}}</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"ru":{"translation":{"Logging_in":"Вход в систему...","your_connection_is_unencrypted":"Ваше соединение не зашифровано.","your_connection_is_encrypted":"Ваше соединение зашифровано.","your_buddy_closed_the_private_connection":"Ваш собеседник закончил зашифрованное соединение.","start_private":"Начать зашифрованный чат","close_private":"Закончить зашифрованный чат","your_buddy_is_verificated":"Собеседник подтвержден.","you_have_only_a_subscription_in_one_way":"У вас только односторонняя подписка.","authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.","unencrypted_message_received":"Получено незашифрованное сообщение","not_available":"Не доступен","no_connection":"Нет соединения!","relogin":"переподключиться","trying_to_start_private_conversation":"Попытка начать зашифрованный чат!","Verified":"Подтверждено","Unverified":"Не подтверждено","private_conversation_aborted":"Зашифрованный чат отклонен!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.","conversation_is_now_verified":"Чат теперь утвержден.","authentication_failed":"Ошибка авторизации.","Creating_your_private_key_":"Создается приватный ключ. Это может занять некоторое время","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":"Выберите метод...","Manual":"Вручную","Question":"Вопрос","Secret":"Пароль","To_verify_the_fingerprint_":null,"Your_fingerprint":"Ваш отпечаток","Buddy_fingerprint":"Отпечаток собеседника","Close":"Закрыть","Compared":"Сравнение завершено","To_authenticate_using_a_question_":"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.","Ask":null,"To_authenticate_pick_a_secret_":"Для авторизации выберите пароль, который знаете только Вы и собеседник.","Compare":"Сравнить","Fingerprints":"Отпечатки","Authentication":"Авторизация","Message":"Сообщение","Add_buddy":"Добавить контакт","rename_buddy":"переименовать контакт","delete_buddy":"удалить контакт","Login":"Вход","Username":"Логин","Password":"Пароль","Cancel":"Отмена","Connect":"Подключить","Type_in_the_full_username_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить {{bid_name}} (<b>{{bid_jid}}</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","Hide_offline":"Спрятать отключенных","Show_offline":"Показать отключенных","About":"О проекте","dnd":"Не беспокоить","Mute":"Выкл. уведомления","Unmute":"Вкл. уведомления","Subscription":"Подписка","both":"оба","Status":"Статус","online":"в сети","chat":"готов общаться","away":"отошел","xa":"отсутствую","offline":"не в сети","none":"нет","Unknown_instance_tag":"Неизвестный тег.","Not_one_of_our_latest_keys":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"BOSH URL","Domain":"Домен","Resource":"Ресурс","On_login":"Автоматически подключаться","Received_an_unencrypted_message":"Получено незашифрованное сообщение","Sorry_your_buddy_doesnt_provide_any_information":"К сожалению, контакт не предоставил какой-либо информации.","Info_about":"Информация о","Authentication_aborted":"Аутентификация прервана.","Authentication_request_received":"Получен запрос проверки подлинности.","Log_in_without_chat":"Вход без чата","has_come_online":"появился в сети","Unknown_sender":"Неизвестный отправитель","Please_allow_access_to_microphone_and_camera":"Нажмите кнопку \"Разрешить\" вверху страницы, чтобы предоставить доступ к микрофону и камере.","Incoming_call":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","message_not_send":"Ваше сообщение не было отправлено из-за ошибки","message_not_send_item-not-found":"Ваше сообщение не было отправлено, т.к. этой комнаты не существует","message_not_send_forbidden":"Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате","message_not_send_not-acceptable":"Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты","This_room_has_been_closed":"Эта комната была закрыта","Room_logging_is_enabled":"Журналирование комнаты включено","A_password_is_required":"Необходим пароль","You_are_not_on_the_member_list":"Вы не в списке участников","You_are_banned_from_this_room":"Вас забанили в этой комнате","Your_desired_nickname_":"Данное имя пользователя уже занято, пожалуйста, выберите другое имя пользователя","The_maximum_number_":"Достигнут лимит максимального количества посетителей этой комнаты","This_room_is_locked_":"Эта комната заблокирована","You_are_not_allowed_to_create_":"Вы не можете создавать комнаты","Alert":"Внимание","Call_started":"Вызов начался","Call_terminated":"Вызов завершен","Carbon_copy":"Копировать сообщения","Enable":"Включить","jingle_reason_busy":"занято","jingle_reason_decline":"запрещено","jingle_reason_success":"сбросили","Media_failure":"Ошибка передачи медиа","No_local_audio_device":"Нет локального аудио-устройства.","No_local_video_device":"Нет локального видео-устройства.","Ok":"Ок","PermissionDeniedError":"Вы или Ваш браузер запретили использовать микрофон/камеру","Use_local_audio_device":"Использовать локальное аудио-устройство.","Use_local_video_device":"Использовать локальное видео-устройство.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Вы получили сообщение от неизвестного отправителя (__sender__)","Your_roster_is_empty_add_":"Ваш список контактов пуст, добавить <a>новый контакт</a>","onsmp_explanation_question":"Собеседник пытается определить, что общается действительно с Вами.","onsmp_explanation_secret":"Собеседник пытается определить, что общается действительно с Вами. введите пароль.","from_sender":"от __sender__","Verified_private_conversation_started":"Подтверждено Зашифрованный чат начат.","Unverified_private_conversation_started":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу."}},"tr-TR":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"vi-VN":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}},"zh-TW":{"translation":{"Logging_in":"正在登入…","your_connection_is_unencrypted":"連線沒加密。","your_connection_is_encrypted":"連線有加密。","your_buddy_closed_the_private_connection":"聯絡人關閉了加密連線。","start_private":"開始加密","close_private":"結束加密","your_buddy_is_verificated":"聯絡人已校驗。","you_have_only_a_subscription_in_one_way":"只有單向訂閱。","authentication_query_sent":"驗證要求送出了。","your_message_wasnt_send_please_end_your_private_conversation":"訊息沒送出去。請結束加密的對話。","unencrypted_message_received":"收到沒加密的訊息","not_available":"不存在","no_connection":"沒有連線!","relogin":"重新登入","trying_to_start_private_conversation":"正在試著開始加密的對話!","Verified":"已校驗","Unverified":"未校驗","private_conversation_aborted":"加密的對話中斷了!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"聯絡人把這場加密的對話關掉了!你也應該同樣關掉。","conversation_is_now_verified":"對話現在校驗過了。","authentication_failed":"驗證失敗。","Creating_your_private_key_":"正在產生你的私人金鑰,會花一段時間。","Authenticating_a_buddy_helps_":"聯絡人驗證可以確保跟你說話的是真的那個人。","How_do_you_want_to_authenticate_your_buddy":"你想要怎樣驗證{{bid_name}} ({{bid_jid}})?","Select_method":"選個方式...","Manual":"手動","Question":"問答","Secret":"祕密","To_verify_the_fingerprint_":"要校驗聯絡人的電子指紋,請透過其他可靠的管道跟她/他聯絡,比如說電話。","Your_fingerprint":"你的電子指紋","Buddy_fingerprint":"聯絡人的電子指紋","Close":"關閉","Compared":"比對正確","To_authenticate_using_a_question_":"要用問答來驗證的話,請找一個只有你和聯絡人才知道答案的問題。","Ask":"問題","To_authenticate_pick_a_secret_":"要驗證的話,請找一個只有你和聯絡人知道的祕密。","Compare":"比對","Fingerprints":"電子指紋","Authentication":"驗證","Message":"訊息","Add_buddy":"加聯絡人","rename_buddy":"重新命名聯絡人","delete_buddy":"刪掉聯絡人","Login":"登入","Username":"使用者名稱","Password":"密碼","Cancel":"取消","Connect":"連線","Type_in_the_full_username_":"請打全名,別名可有可無","Alias":"別名","Add":"加入","Subscription_request":"訂閱請求","You_have_a_request_from":"收到聯絡人的請求:","Deny":"拒絕","Approve":"同意","Remove_buddy":"刪除聯絡人","You_are_about_to_remove_":"你就要把{{bid_name}} ({{bid_jid}})從聯絡簿刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","Domain":"網域","Resource":"資源","On_login":"登入啟動","Received_an_unencrypted_message":"收到了一則沒加密的訊息","Sorry_your_buddy_doesnt_provide_any_information":"抱歉,聯絡人沒有提供任何資訊。","Info_about":"帳號資訊:","Authentication_aborted":"驗證中斷。","Authentication_request_received":"驗證請求收到了。","Log_in_without_chat":"登入但不啟用聊天","has_come_online":"上線了","Unknown_sender":"不明傳訊人","Please_allow_access_to_microphone_and_camera":"請點上方的「接受」按鈕來允許我們使用麥克風和相機。","Incoming_call":"來電","from":"只出","Do_you_want_to_accept_the_call_from":"是否要接聽來電:","Reject":"拒絕","Accept":"接受","hang_up":"掛斷","snapshot":"截圖","mute_my_audio":"關掉我的聲音","pause_my_video":"暫停我的影像","fullscreen":"全螢幕","Info":"資料","Local_IP":"本機網路位址","Remote_IP":"遠端網路位址","Local_Fingerprint":"本機電子指紋","Remote_Fingerprint":"遠端電子指紋","Video_call_not_possible":"無法視訊通話。聯絡人不支援視訊。","Start_video_call":"開始視訊通話","Join_chat":"參加聊天","Join":"參加","Room":"聊天室","Nickname":"綽號","left_the_building":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","message_not_send":"訊息因為發生錯誤沒送出去","message_not_send_item-not-found":"訊息沒送出去,因為聊天室不存在了","message_not_send_forbidden":"訊息沒送出去,因為你被消音了","message_not_send_not-acceptable":"訊息沒送出去,因為你不是聊天室的參與人了","This_room_has_been_closed":"聊天室已經關閉了","Room_logging_is_enabled":"聊天室紀錄打開了","A_password_is_required":"需要密碼","You_are_not_on_the_member_list":"你不是會員","You_are_banned_from_this_room":"你被禁止進入聊天室了","Your_desired_nickname_":"這個綽號被用掉了,請換一個","The_maximum_number_":"這間聊天室已經到達使用者數目的上限","This_room_is_locked_":"聊天室上鎖了","You_are_not_allowed_to_create_":"不允許你開新的聊天室","Alert":"警告","Call_started":"通話開始","Call_terminated":"通話結束","Carbon_copy":"副本","Enable":"打開","jingle_reason_busy":"忙線中","jingle_reason_decline":"被拒絕","jingle_reason_success":"被掛斷","Media_failure":"媒體錯誤","No_local_audio_device":"本機沒有音訊設備。","No_local_video_device":"本機沒有視訊設備。","Ok":"好","PermissionDeniedError":"你或你的瀏覽器拒絕了音視訊的權限","Use_local_audio_device":"使用本機音訊設備。","Use_local_video_device":"使用本機視訊設備。","is_":"狀態: __status__","You_received_a_message_from_an_unknown_sender_":"收到了不明人士(__sender__)傳來的訊息。你要打開來看嗎?","Your_roster_is_empty_add_":"好友清單是空的,請加<a>新的聯絡人</a>","onsmp_explanation_question":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入問題的答案,然後按\"回答\"。","onsmp_explanation_secret":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入你們之間的祕密。","from_sender":"來自:__sender__","Verified_private_conversation_started":"加密且已校驗的對話開始了。","Unverified_private_conversation_started":"加密但未校驗的對話開始了。","Bookmark":"書籤","Auto-join":"自動參加","Edit_bookmark":"編輯書籤","Room_logging_is_disabled":"聊天室紀錄關掉了","Room_is_now_non-anoymous":"現在聊天室禁止匿名了","Room_is_now_semi-anonymous":"現在聊天室變半匿名了","Do_you_want_to_change_the_default_room_configuration":"你想要改變聊天室的預設配置嗎?","Default":"預設值","Change":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。"}},"zh":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null}}}; \ No newline at end of file
+var I18next = {"bg":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"bn-BD":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"de":{"translation":{"Logging_in":"Login läuft…","your_connection_is_unencrypted":"Deine Verbindung ist unverschlüsselt.","your_connection_is_encrypted":"Deine Verbindung ist verschlüsselt.","your_buddy_closed_the_private_connection":"Dein Kontakt hat die private Verbindung getrennt.","start_private":"Privat starten","close_private":"Privat abbrechen","your_buddy_is_verificated":"Dein Kontakt ist verifiziert.","you_have_only_a_subscription_in_one_way":"Der Kontaktstatus ist einseitig.","authentication_query_sent":"Authentifizierungsanfrage gesendet.","your_message_wasnt_send_please_end_your_private_conversation":"Deine Nachricht wurde nicht gesendet. Bitte beende die private Konversation.","unencrypted_message_received":"Unverschlüsselte Nachricht erhalten.","not_available":"Nicht verfügbar.","no_connection":"Keine Verbindung.","relogin":"Neu anmelden.","trying_to_start_private_conversation":"Versuche private Konversation zu starten.","Verified":"Verifiziert","Unverified":"Unverifiziert","private_conversation_aborted":"Private Konversation abgebrochen.","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Dein Kontakt hat die private Konversation beendet. Das solltest du auch tun!","conversation_is_now_verified":"Konversation ist jetzt verifiziert","authentication_failed":"Authentifizierung fehlgeschlagen.","Creating_your_private_key_":"Wir werden jetzt deinen privaten Schlüssel generieren. Das kann einige Zeit in Anspruch nehmen.","Authenticating_a_buddy_helps_":"Einen Kontakt zu authentifizieren hilft sicherzustellen, dass die Person mit der du sprichst auch die ist die sie sagt.","How_do_you_want_to_authenticate_your_buddy":"Wie willst du __bid_name__ (<b>__bid_jid__</b>) authentifizieren?","Select_method":"Wähle...","Manual":"Manual","Question":"Frage","Secret":"Geheimnis","To_verify_the_fingerprint_":"Um den Fingerprint zu verifizieren kontaktiere dein Kontakt über einen anderen Kommunikationsweg. Zum Beispiel per Telefonanruf.","Your_fingerprint":"Dein Fingerprint","Buddy_fingerprint":"Sein/Ihr Fingerprint","Close":"Schließen","Compared":"Verglichen","To_authenticate_using_a_question_":"Um die Authentifizierung per Frage durchzuführen, wähle eine Frage bei welcher nur dein Kontakt die Antwort kennt.","Ask":"Frage","To_authenticate_pick_a_secret_":"Um deinen Kontakt zu authentifizieren, wähle ein Geheimnis welches nur deinem Kontakt und dir bekannt ist.","Compare":"Vergleiche","Fingerprints":"Fingerprints","Authentication":"Authentifizierung","Message":"Nachricht","Add_buddy":"Kontakt hinzufügen","rename_buddy":"Kontakt umbenennen","delete_buddy":"Kontakt löschen","Login":"Anmeldung","Username":"Benutzername","Password":"Passwort","Cancel":"Abbrechen","Connect":"Verbinden","Type_in_the_full_username_":"Gib bitte den vollen Benutzernamen und optional ein Alias an.","Alias":"Alias","Add":"Hinzufügen","Subscription_request":"Kontaktanfrage","You_have_a_request_from":"Du hast eine Anfrage von","Deny":"Ablehnen","Approve":"Bestätigen","Remove_buddy":"Kontakt entfernen","You_are_about_to_remove_":"Du bist gerade dabei __bid_name__ (<b>__bid_jid__</b>) von deiner Kontaktliste zu entfernen. Alle Chats werden geschlossen.","Continue_without_chat":"Weiter ohne Chat","Please_wait":"Bitte warten","Login_failed":"Chat-Anmeldung fehlgeschlagen","Sorry_we_cant_authentikate_":"Der Chatserver hat die Anmeldung abgelehnt. Falsches Passwort?","Retry":"Zurück","clear_history":"Lösche Verlauf","New_message_from":"Neue Nachricht von __name__","Should_we_notify_you_":"Sollen wir dich in Zukunft über eingehende Nachrichten informieren, auch wenn dieser Tab nicht im Vordergrund ist?","Please_accept_":"Bitte klick auf den \"Zulassen\" Button oben.","Hide_offline":"Offline ausblenden","Show_offline":"Offline einblenden","About":"Über","dnd":"Beschäftigt","Mute":"Ton aus","Unmute":"Ton an","Subscription":"Bezug","both":"beidseitig","Status":"Status","online":"online","chat":"chat","away":"abwesend","xa":"länger abwesend","offline":"offline","none":"keine","Unknown_instance_tag":"Unbekannter instance tag.","Not_one_of_our_latest_keys":"Nicht einer unserer letzten Schlüssel.","Received_an_unreadable_encrypted_message":"Eine unlesbare verschlüsselte Nachricht erhalten.","Online":"Online","Chatty":"Gesprächig","Away":"Abwesend","Extended_away":"Länger abwesend","Offline":"Offline","Friendship_request":"Kontaktanfrage","Confirm":"Bestätigen","Dismiss":"Ablehnen","Remove":"Löschen","Online_help":"Online Hilfe","FN":"Name","N":" ","FAMILY":"Familienname","GIVEN":"Vorname","NICKNAME":"Spitzname","URL":"URL","ADR":"Adresse","STREET":"Straße","EXTADD":"Zusätzliche Adresse","LOCALITY":"Ortschaft","REGION":"Region","PCODE":"Postleitzahl","CTRY":"Land","TEL":"Telefon","NUMBER":"Nummer","EMAIL":"E-Mail","USERID":" ","ORG":"Organisation","ORGNAME":"Name","ORGUNIT":"Abteilung","TITLE":"Titel","ROLE":"Rolle","BDAY":"Geburtstag","DESC":"Beschreibung","PHOTO":" ","send_message":"Sende Nachricht","get_info":"Benutzerinformationen","Settings":"Einstellungen","Priority":"Priorität","Save":"Speichern","User_settings":"Benutzereinstellungen","A_fingerprint_":"Ein Fingerabdruck wird dazu benutzt deinen Gesprächspartner zu identifizieren.","is":"ist","Login_options":"Anmeldeoptionen","BOSH_url":"BOSH url","Domain":"Domain","Resource":"Ressource","On_login":"Beim Anmelden","Received_an_unencrypted_message":"Unverschlüsselte Nachricht empfangen","Sorry_your_buddy_doesnt_provide_any_information":"Dein Kontakt stellt leider keine Informationen bereit.","Info_about":"Info über","Authentication_aborted":"Authentifizierung abgebrochen.","Authentication_request_received":"Authentifizierungsanfrage empfangen.","Log_in_without_chat":"Anmelden ohne Chat","has_come_online":"ist online gekommen","Unknown_sender":"Unbekannter Sender","Please_allow_access_to_microphone_and_camera":"Bitte klick auf den \"Zulassen\" Button oben, um den Zugriff auf Kamera und Mikrofon zu erlauben.","Incoming_call":"Eingehender Anruf","from":"von","Do_you_want_to_accept_the_call_from":"Möchtest Du den Anruf annehmen von","Reject":"Ablehnen","Accept":"Annehmen","hang_up":"Auflegen","snapshot":"Schnappschuss","mute_my_audio":"Mein Ton aus","pause_my_video":"Mein Video pausieren","fullscreen":"Vollbild","Info":"Info","Local_IP":"Lokale IP","Remote_IP":"Remote IP","Local_Fingerprint":"Lokaler Fingerprint","Remote_Fingerprint":"Remote Fingerprint","Video_call_not_possible":"Videoanruf nicht verfügbar. Dein Gesprächspartner unterstützt keine Videotelefonie.","Start_video_call":"Starte Videoanruf","Join_chat":"Gruppe beitreten","Join":"Betreten","Room":"Gruppe","Nickname":"Nickname","left_the_building":"__nickname__ hat die Gruppe verlassen","entered_the_room":"__nickname__ ist der Gruppe beigetreten","is_now_known_as":"__oldNickname__ ist nun unter __newNickname__ bekannt","This_room_is":"Diese Gruppe ist","muc_hidden":{"keyword":"versteckt","description":"kann durch die Suche nicht gefunden werden"},"muc_membersonly":{"keyword":"nur für Mitglieder","description":"du musst auf der Mitgliederliste stehen"},"muc_moderated":{"keyword":"moderiert","description":"Nur Personen die \"Mitspracherecht\" haben dürfen Nachrichten senden"},"muc_nonanonymous":{"keyword":"nicht anonym","description":"deine Jabber ID wird für alle Mitglieder sichtbar sein"},"muc_open":{"keyword":"offen","description":"jeder darf dieser Gruppe beitreten"},"muc_passwordprotected":{"keyword":"passwortgeschützt","description":"du benötigst das korrekte Passwort"},"muc_persistent":{"keyword":"permanent","description":"wird nicht geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_public":{"keyword":"öffentlich","description":"kann durch die Suche gefunden werden"},"muc_semianonymous":{"keyword":"teilweise anonym","description":"deine Jabber ID wird nur für die Gruppen Administratoren sichtbar sein"},"muc_temporary":{"keyword":"temporär","description":"wird geschlossen, wenn das letzte Mitglied die Gruppe verlässt"},"muc_unmoderated":{"keyword":"nicht moderiert","description":"jeder darf Nachrichten senden"},"muc_unsecured":{"keyword":"ungesichert","description":"es wird kein Passwort benötigt"},"Continue":"Weiter","Server":"Server","Rooms_are_loaded":"Gruppen werden geladen","Could_load_only":"Es konnten nur __count__ Gruppen für die Autovervollständigung geladen werden","muc_explanation":"Bitte trage den Gruppennamen und optional ein Nickname und Passwort ein um einer Gruppe beizutreten","You_already_joined_this_room":"Du bist dieser Gruppe bereits beigetreten","This_room_will_be_closed":"Diese Gruppe wird geschlossen","Room_not_found_":"Es wird eine neue Gruppe erstellt","Loading_room_information":"Informationen über Gruppe werden geladen","Destroy":"Auflösen","Leave":"Verlassen","changed_subject_to":"__nickname__ hat das Thema auf __subject__ geändert","muc_removed_kicked":"Du wurdest aus der Gruppe entfernt","muc_removed_info_kicked":"__nickname__ wurde aus der Gruppe entfernt","muc_removed_banned":"Du wurdest aus der Gruppe ausgeschlossen","muc_removed_info_banned":"__nickname__ wurde aus der Gruppe ausgeschlossen","muc_removed_affiliation":"Du wurdest aus der Gruppe entfernt wegen einer Änderung deines Mitgliedstatus","muc_removed_info_affiliation":"__nickname__ wurde aus der Gruppe entfernt wegen einer Änderung seines Mitgliedstatus","muc_removed_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und da du nicht dazugehörst, wurdest du aus der Gruppen entfernt","muc_removed_info_membersonly":"Diese Gruppe erlaubt jetzt nur noch eingetragene Mitglieder und __nickname__ gehört nicht dazu, daher wurde er aus der Gruppe entfernt","muc_removed_shutdown":"Du wurdest aus der Gruppe entfernt, da der MUC Server heruntergefahren wird","Reason":"Grund","message_not_send":"Deine Nachricht wurde aufgrund eines Fehlers nicht versandt","message_not_send_item-not-found":"Deine Nachricht wurde nicht versandt, da der Raum nicht mehr existiert","message_not_send_forbidden":"Deine Nachricht wurde nicht versandt, da du kein \"Mitspracherecht\" hast","message_not_send_not-acceptable":"Deine Nachricht wurde nicht versandt, da du kein Mitglied dieser Gruppe bist","This_room_has_been_closed":"Diese Gruppe wurde geschlossen","Room_logging_is_enabled":"Gesprächsverlauf kann öffentlich einsehbar sein","A_password_is_required":"Es wird ein Passwort benötigt","You_are_not_on_the_member_list":"Du bist kein eingetragenes Mitglied","You_are_banned_from_this_room":"Du wurdest von dieser Gruppe ausgeschlossen","Your_desired_nickname_":"Dein gewünschter Nickname wird bereits verwendet. Bitte wähle einen anderen.","The_maximum_number_":"Die maximale Anzahl der Mitglieder wurde erreicht.","This_room_is_locked_":"Diese Gruppe ist gesperrt","You_are_not_allowed_to_create_":"Du darfst keine neue Gruppe erstellen","Alert":"Alarm","Call_started":"Anruf gestarted","Call_terminated":"Anruf beendet","Carbon_copy":"Kopie","Enable":"Aktivieren","jingle_reason_busy":"beschäftigt","jingle_reason_decline":"abgelehnt","jingle_reason_success":"aufgelegt","Media_failure":"Gerätefehler","No_local_audio_device":"Kein eigenes Audio Gerät","No_local_video_device":"Keine eigene Webcam","Ok":"Ok","PermissionDeniedError":"Du oder dein Browser haben die Audio/Video Berechtigung verweigert","Use_local_audio_device":"Nutze eigenes Audio Gerät","Use_local_video_device":"Benutze eigene Webcam","is_":"ist __status__","You_received_a_message_from_an_unknown_sender_":"Du hast eine Nachricht von einem unbekannten Sender erhalten (__sender__) Möchtest du sie sehen?","Your_roster_is_empty_add_":"Deine Kontaktliste ist leer, füge einen neuen Kontakt <a>hinzu</a>","onsmp_explanation_question":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib die Antwort ein und klick auf Antworten.","onsmp_explanation_secret":"Dein Kontakt versucht herauszufinden ob er wirklich mit dir redet. Um dich gegenüber deinem Kontakt zu verifizieren gib das Geheimnis ein.","from_sender":"von __sender__","Verified_private_conversation_started":"Verifizierte private Konversation gestartet.","Unverified_private_conversation_started":"Unverifizierte private Konversation gestartet.","Bookmark":"Lesezeichen","Auto-join":"Automatisch beitreten","Edit_bookmark":"Lesezeichen bearbeiten","Room_logging_is_disabled":"Gruppen Log ist deaktiviert","Room_is_now_non-anoymous":"Gruppe ist jetzt nicht anonym","Room_is_now_semi-anonymous":"Gruppe ist jetzt semi-anonym","Do_you_want_to_change_the_default_room_configuration":"Möchtest du die Gruppenkonfiguration ändern?","Default":"Standard","Change":"Ändern","Send_file":"Datei senden","setting-explanation-carbon":"Wenn Kopien aktiviert sind, werden alle eingehenden Nachrichten zu allen angemeldeten Clients gesendet.","setting-explanation-login":"Wenn diese Option aktiviert ist, wird der Chat beim anmelden automatisch gestartet.","setting-explanation-priority":"Wenn du mit deinem XMPP Konto mehrfach angemeldet bist, werden Nachrichten zu dem Client mit der höchsten Priorität zugestellt.","setting-explanation-xmpp":"Diese Optionen werden für die Verbindung zum XMPP server genutzt.","_is_composing":" tippt gerade...","_are_composing":" tippen gerade...","Chat_state_notifications":"Statusbenachrichtigungen","setting-explanation-chat-state":"Möchtest Benachrichtigungen senden und erhalten wenn du oder dein Kontakt Nachrichten tippt?","Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":"Schließe alle"}},"el":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"en":{"translation":{"Logging_in":"Logging in…","your_connection_is_unencrypted":"Your connection is unencrypted.","your_connection_is_encrypted":"Your connection is encrypted.","your_buddy_closed_the_private_connection":"Your contact closed the private connection.","start_private":"Start private","close_private":"Close private","your_buddy_is_verificated":"Your contact is verified.","you_have_only_a_subscription_in_one_way":"You only have a one-way subscription.","authentication_query_sent":"Authentication query sent.","your_message_wasnt_send_please_end_your_private_conversation":"Your message was not sent. Please end your private conversation.","unencrypted_message_received":"Unencrypted message received","not_available":"Not available","no_connection":"No connection!","relogin":"relogin","trying_to_start_private_conversation":"Trying to start private conversation!","Verified":"Verified","Unverified":"Unverified","private_conversation_aborted":"Private conversation aborted!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Your contact closed the private conversation! You should do the same.","conversation_is_now_verified":"Conversation is now verified.","authentication_failed":"Authentication failed.","Creating_your_private_key_":"Creating your private key; this may take a while.","Authenticating_a_buddy_helps_":"Authenticating a contact helps ensure that the person you are talking to is really the one they claim to be.","How_do_you_want_to_authenticate_your_buddy":"How do you want to authenticate __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Select method...","Manual":"Manual","Question":"Question","Secret":"Secret","To_verify_the_fingerprint_":"To verify the fingerprint, contact your contact via some other trustworthy channel, such as the telephone.","Your_fingerprint":"Your fingerprint","Buddy_fingerprint":"Contact fingerprint","Close":"Close","Compared":"Compared","To_authenticate_using_a_question_":"To authenticate using a question, pick a question whose answer is known only you and your contact.","Ask":"Ask","To_authenticate_pick_a_secret_":"To authenticate, pick a secret known only to you and your contact.","Compare":"Compare","Fingerprints":"Fingerprints","Authentication":"Authentication","Message":"Message","Add_buddy":"Add contact","rename_buddy":"rename contact","delete_buddy":"delete contact","Login":"Login","Username":"Username","Password":"Password","Cancel":"Cancel","Connect":"Connect","Type_in_the_full_username_":"Type in the full username and an optional alias.","Alias":"Alias","Add":"Add","Subscription_request":"Subscription request","You_have_a_request_from":"You have a request from","Deny":"Deny","Approve":"Approve","Remove_buddy":"Remove contact","You_are_about_to_remove_":"You are about to remove __bid_name__ (<b>__bid_jid__</b>) from your contact list. All related chats will be closed.","Continue_without_chat":"Continue without chat","Please_wait":"Please wait","Login_failed":"Chat login failed","Sorry_we_cant_authentikate_":"Authentication failed with the chat server. Maybe the password is wrong?","Retry":"Back","clear_history":"Clear history","New_message_from":"New message from __name__","Should_we_notify_you_":"Should we notify you about new messages in the future?","Please_accept_":"Please click the \"Allow\" button at the top.","Hide_offline":"Hide offline contacts","Show_offline":"Show offline contacts","About":"About","dnd":"Do Not Disturb","Mute":"Mute","Unmute":"Unmute","Subscription":"Subscription","both":"both","Status":"Status","online":"online","chat":"chat","away":"away","xa":"extended away","offline":"offline","none":"none","Unknown_instance_tag":"Unknown instance tag.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Received an unreadable encrypted message.","Online":"Online","Chatty":"Chatty","Away":"Away","Extended_away":"Extended away","Offline":"Offline","Friendship_request":"Contact request","Confirm":"Confirm","Dismiss":"Dismiss","Remove":"Remove","Online_help":"Online help","FN":"Full name","N":" ","FAMILY":"Family name","GIVEN":"Given name","NICKNAME":"Nickname","URL":"URL","ADR":"Address","STREET":"Street Address","EXTADD":"Extended Address","LOCALITY":"Locality","REGION":"Region","PCODE":"Postal Code","CTRY":"Country","TEL":"Telephone","NUMBER":"Number","EMAIL":"Email","USERID":" ","ORG":"Organization","ORGNAME":"Name","ORGUNIT":"Unit","TITLE":"Job title","ROLE":"Role","BDAY":"Birthday","DESC":"Description","PHOTO":" ","send_message":"Send message","get_info":"Show information","Settings":"Settings","Priority":"Priority","Save":"Save","User_settings":"User settings","A_fingerprint_":"A fingerprint is used to make sure that the person you are talking to is who he or she is saying.","is":"is","Login_options":"Login options","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Resource","On_login":"On login","Received_an_unencrypted_message":"Received an unencrypted message","Sorry_your_buddy_doesnt_provide_any_information":"Sorry, your contact does not provide any information.","Info_about":"Info about","Authentication_aborted":"Authentication aborted.","Authentication_request_received":"Authentication request received.","Log_in_without_chat":"Log in without chat","has_come_online":"has come online","Unknown_sender":"Unknown sender","Please_allow_access_to_microphone_and_camera":"Please click the \"Allow\" button at the top, to allow access to microphone and camera.","Incoming_call":"Incoming call","from":"from","Do_you_want_to_accept_the_call_from":"Do you want to accept the call from","Reject":"Reject","Accept":"Accept","hang_up":"hang up","snapshot":"snapshot","mute_my_audio":"mute my audio","pause_my_video":"pause my video","fullscreen":"fullscreen","Info":"Info","Local_IP":"Local IP","Remote_IP":"Remote IP","Local_Fingerprint":"Local fingerprint","Remote_Fingerprint":"Remote fingerprint","Video_call_not_possible":"Video call not possible. Your contact does not support video calls.","Start_video_call":"Start video call","Join_chat":"Join chat","Join":"Join","Room":"Room","Nickname":"Nickname","left_the_building":"__nickname__ left the building","entered_the_room":"__nickname__ entered the room","is_now_known_as":"__oldNickname__ is now known as __newNickname__","This_room_is":"This room is","muc_hidden":{"keyword":"hidden","description":"can not be found through search"},"muc_membersonly":{"keyword":"members-only","description":"you need to be on the member list"},"muc_moderated":{"keyword":"moderated","description":"only persons with \"voice\" are allowed to send messages"},"muc_nonanonymous":{"keyword":"non-anonymous","description":"your jabber id is exposed to all other occupants"},"muc_open":{"keyword":"open","description":"everyone is allowed to join"},"muc_passwordprotected":{"keyword":"password-protected","description":"you need to provide the correct password"},"muc_persistent":{"keyword":"persistent","description":"will not be destroyed if the last occupant left"},"muc_public":{"keyword":"public","description":"can be found through search"},"muc_semianonymous":{"keyword":"semi-anonymous","description":"your jabber id is only exposed to room admins"},"muc_temporary":{"keyword":"temporary","description":"will be destroyed if the last occupant left"},"muc_unmoderated":{"keyword":"unmoderated","description":"everyone is allowed to send messages"},"muc_unsecured":{"keyword":"unsecured","description":"you need no password to enter"},"Continue":"Continue","Server":"Server","Rooms_are_loaded":"Rooms are loaded","Could_load_only":"Could load only __count__ rooms for autocomplete","muc_explanation":"Please enter room name and optional a nickname and password to join a chat","You_already_joined_this_room":"You already joined this room","This_room_will_be_closed":"This room will be closed","Room_not_found_":"A new room will be created","Loading_room_information":"Loading room information","Destroy":"Destroy","Leave":"Leave","changed_subject_to":"__nickname__ changed the room subject to \"__subject__\"","muc_removed_kicked":"You have been kicked from the room","muc_removed_info_kicked":"__nickname__ has been kicked from the room","muc_removed_banned":"You have been banned from the room","muc_removed_info_banned":"__nickname__ has been banned from the room","muc_removed_affiliation":"You have been removed from the room, because of an affiliation change","muc_removed_info_affiliation":"__nickname__ has been removed from the room, because of an affiliation change","muc_removed_membersonly":"You have been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_info_membersonly":"__nickname__ has been removed from the room, because the room has been changed to members-only and you are no member","muc_removed_shutdown":"You have been removed from the room, because the MUC service is being shut down","Reason":"Reason","message_not_send":"Your message was not send because of an error","message_not_send_item-not-found":"Your message was not send because this room does not exist","message_not_send_forbidden":"Your message was not send because you have no voice in this room","message_not_send_not-acceptable":"Your message was not send because you are no occupant of this room","This_room_has_been_closed":"This room has been closed","Room_logging_is_enabled":"Room logging is enabled","A_password_is_required":"A password is required","You_are_not_on_the_member_list":"You are not on the member list","You_are_banned_from_this_room":"You are banned from this room","Your_desired_nickname_":"Your desired nickname is already in use. Please choose another","The_maximum_number_":"The maximum number of user is reached in this room","This_room_is_locked_":"This room is locked","You_are_not_allowed_to_create_":"You are not allowed to create a room","Alert":"Alert","Call_started":"Call started","Call_terminated":"Call terminated","Carbon_copy":"Carbon copy","Enable":"Enable","jingle_reason_busy":"busy","jingle_reason_decline":"decline","jingle_reason_success":"hung up","Media_failure":"Media failure","No_local_audio_device":"No local audio device.","No_local_video_device":"No local video device.","Ok":"Ok","PermissionDeniedError":"You or your browser denied media permission","Use_local_audio_device":"Use local audio device.","Use_local_video_device":"Use local video device.","is_":"is __status__","You_received_a_message_from_an_unknown_sender_":"You received a message from an unknown sender (__sender__) Do you want to display them?","Your_roster_is_empty_add_":"Your roster is empty, add a <a>new contact</a>","onsmp_explanation_question":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the answer and click Answer.","onsmp_explanation_secret":"You contact is attempting to determine if they are really talking to you. To authenticate to your contact, enter the secret.","from_sender":"from __sender__","Verified_private_conversation_started":"Verified Private conversation started.","Unverified_private_conversation_started":"Unverified Private conversation started.","Bookmark":"Bookmark","Auto-join":"Auto-join","Edit_bookmark":"Edit bookmark","Room_logging_is_disabled":"Room logging is disabled","Room_is_now_non-anoymous":"Room is now non-anonymous","Room_is_now_semi-anonymous":"Room is now semi-anonymous","Do_you_want_to_change_the_default_room_configuration":"Do you want to change the default room configuration?","Default":"Default","Change":"Change","Send_file":"Send file","setting-explanation-carbon":"With enabled carbon copy your XMPP server will send a copy of every incoming message for you to this client even if it was not addressed to it.","setting-explanation-login":"If this option is enabled, the chat will start on login.","setting-explanation-priority":"If you are logged in multiple times with the same account, your XMPP server will deliver messages to the client with the highest priority.","setting-explanation-xmpp":"These options are used to connect to the XMPP server.","_is_composing":" is composing...","_are_composing":" are composing...","Chat_state_notifications":"Chat state notifications","setting-explanation-chat-state":"Do you want to send and receive chat state notifications, like someone starts or stops composing a message?","Share_screen":"Share screen","Incoming_stream":"Incoming stream","Stream_started":"Stream started","HTTPS_REQUIRED":"This action requires an encrypted connection.","EXTENSION_UNAVAILABLE":"You need a browser extension/addon.","UNKNOWN_ERROR":"An unknown error occured.","Install_extension":"Please install the extension in order to use screen sharing: ","Connection_accepted":"Connection accepted","Stream_terminated":"Stream terminated","Close_all":"Close all","Notification":"Notification"}},"es":{"translation":{"Logging_in":"Por favor, espere...","your_connection_is_unencrypted":"Su conexión no está cifrada.","your_connection_is_encrypted":"Su conexión está cifrada.","your_buddy_closed_the_private_connection":"Su amigo ha cerrado la conexión privada.","start_private":"Iniciar privado","close_private":"Cerrar privado","your_buddy_is_verificated":"Tu amigo está verificado.","you_have_only_a_subscription_in_one_way":"Solo tienes una suscripción de un modo.","authentication_query_sent":"Consulta de verificación enviada.","your_message_wasnt_send_please_end_your_private_conversation":"Su mensaje no fue enviado. Por favor, termine su conversación privada.","unencrypted_message_received":"Mensaje no cifrado recibido:","not_available":"No disponible","no_connection":"¡Sin conexión!","relogin":"iniciar sesión nuevamente","trying_to_start_private_conversation":"¡Intentando iniciar una conversación privada!","Verified":"Verificado","Unverified":"No verificado","private_conversation_aborted":"¡Conversación privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"¡Su amigo cerró la conversación privada! Usted debería hacer lo mismo.","conversation_is_now_verified":"La conversación es ahora verificada.","authentication_failed":"Falló la verificación.","Creating_your_private_key_":"Ahora vamos a crear su clave privada. Esto puede tomar algún tiempo.","Authenticating_a_buddy_helps_":"Autenticación de un amigo ayuda a garantizar que la persona que está hablando es quien él o ella está diciendo.","How_do_you_want_to_authenticate_your_buddy":"¿Cómo desea autenticar __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Escoja un método...","Manual":"Manual","Question":"Pregunta","Secret":"Secreto","To_verify_the_fingerprint_":"Para verificar la firma digital, póngase en contacto con su amigo a través de algún otro canal autenticado, como el teléfono.","Your_fingerprint":"Tu firma digital","Buddy_fingerprint":"firma digital de tu amigo","Close":"Cerrar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar mediante una pregunta, elegid una pregunta cuya respuesta se conoce solo usted y su amigo.","Ask":"Preguntar","To_authenticate_pick_a_secret_":"Para autenticar, elija un secreto conocido solo por usted y su amigo.","Compare":"Comparar","Fingerprints":"Firmas digitales","Authentication":"Autenticación","Message":"Mensaje","Add_buddy":"Añadir amigo","rename_buddy":"renombrar amigo","delete_buddy":"eliminar amigo","Login":"Iniciar Sesión","Username":"Usuario","Password":"Contraseña","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Escriba el usuario completo y un alias opcional.","Alias":"Alias","Add":"Añadir","Subscription_request":"Solicitud de suscripción","You_have_a_request_from":"Tienes una petición de","Deny":"Rechazar","Approve":"Aprobar","Remove_buddy":"Eliminar amigo","You_are_about_to_remove_":"Vas a eliminar a __bid_name__ (<b>__bid_jid__</b>) de tu lista de amigos. Todas las conversaciones relacionadas serán cerradas.","Continue_without_chat":"Continuar","Please_wait":"Espere por favor","Login_failed":"Fallo el inicio de sesión","Sorry_we_cant_authentikate_":"Lo sentimos, no podemos autentificarlo en nuestro servidor de chat. ¿Tal vez la contraseña es incorrecta?","Retry":"Reintentar","clear_history":"Borrar el historial","New_message_from":"Nuevo mensaje de __name__","Should_we_notify_you_":"¿Debemos notificarle sobre nuevos mensajes en el futuro?","Please_accept_":"Por favor, haga clic en el botón \"Permitir\" en la parte superior.","Hide_offline":"Ocultar contactos desconectados","Show_offline":"Mostrar contactos desconectados","About":"Acerca de","dnd":"No Molestar","Mute":"Desactivar sonido","Unmute":"Activar sonido","Subscription":"Suscripción","both":"ambos","Status":"Estado","online":"en línea","chat":"chat","away":"ausente","xa":"más ausente","offline":"desconectado","none":"nadie","Unknown_instance_tag":"Etiqueta de instancia desconocida.","Not_one_of_our_latest_keys":"No una de nuestras última claves.","Received_an_unreadable_encrypted_message":"Se recibió un mensaje cifrado ilegible.","Online":"En linea","Chatty":"Hablador","Away":"Ausente","Extended_away":"Más ausente","Offline":"Desconectado","Friendship_request":"Solicitud de amistad","Confirm":"Confirmar","Dismiss":"Rechazar","Remove":"Eliminar","Online_help":"Ayuda en línea","FN":"Nombre completo ","N":" ","FAMILY":"Apellido","GIVEN":"Nombre","NICKNAME":"Apodo","URL":"URL","ADR":"Dirección","STREET":"Calle","EXTADD":"Dirección extendida","LOCALITY":"Población","REGION":"Región","PCODE":"Código postal","CTRY":"País","TEL":"Teléfono","NUMBER":"Número","EMAIL":"Correo electrónico","USERID":" ","ORG":"Organización","ORGNAME":"Nombre","ORGUNIT":"Departamento","TITLE":"Título","ROLE":"Rol","BDAY":"Cumpleaños","DESC":"Descripción","PHOTO":" ","send_message":"mandar un texto","get_info":"obtener información","Settings":"Ajustes","Priority":"Prioridad","Save":"Guardar","User_settings":"Configuración de usuario","A_fingerprint_":"La huella digital se utiliza para que puedas estar seguro que la persona con la que estas hablando es quien realmente dice ser","is":"es","Login_options":"Opciones de login","BOSH_url":"BOSH url","Domain":"Dominio","Resource":"Recurso","On_login":"Iniciar sesión","Received_an_unencrypted_message":"Recibe un mensaje no cifrado","Sorry_your_buddy_doesnt_provide_any_information":"Lo sentimos, su amigo no provee ninguna información.","Info_about":"Info acerca de","Authentication_aborted":"Autenticación abortada","Authentication_request_received":"Pedido de autenticación recibido.","Log_in_without_chat":"Ingresar sin chat","has_come_online":"se ha conectado","Unknown_sender":"Remitente desconocido","Please_allow_access_to_microphone_and_camera":"Por favor, permitir el acceso al micrófono y la cámara.","Incoming_call":"Llamada entrante","from":"de","Do_you_want_to_accept_the_call_from":"Desea aceptar la llamada de","Reject":"Rechazar","Accept":"Aceptar","hang_up":"colgar","snapshot":"instantánea","mute_my_audio":"silenciar mi audio","pause_my_video":"pausar mi vídeo","fullscreen":"pantalla completa","Info":"Info","Local_IP":"IP local","Remote_IP":"IP remota","Local_Fingerprint":"Firma digital local","Remote_Fingerprint":"Firma digital remota","Video_call_not_possible":"Llamada de vídeo no es posible","Start_video_call":"Iniciar llamada de vídeo","Join_chat":"Unirse al chat","Join":"Unirse","Room":"Sala","Nickname":"Alias","left_the_building":"__nickname__ dejó el edificio","entered_the_room":"__nickname__ entró en la sala","is_now_known_as":"__oldNickname__ ahora es conocido como __newNickname__","This_room_is":"Esta sala es","muc_hidden":{"keyword":"oculta","description":"no se encontró mediante la búsqueda"},"muc_membersonly":{"keyword":"miembros solo","description":"necesitas estar en la lista de miembros"},"muc_moderated":{"keyword":"moderada","description":"solo personas con \"voice\" están permitidas para mandar mensajes"},"muc_nonanonymous":{"keyword":"no anónima","description":"tu id de jabber es expuesta al resto de ocupantes"},"muc_open":{"keyword":"abierta","description":"todo el mundo puede unirse"},"muc_passwordprotected":{"keyword":"protegida por contraseña","description":"necesitas dar la contraseña correcta"},"muc_persistent":{"keyword":"persistente","description":"no será destruida si el último ocupante sale"},"muc_public":{"keyword":"pública","description":"puede ser encontrada mediante la búsqueda"},"muc_semianonymous":{"keyword":"semi-anónima","description":"tu id de jabber es expuesta a los administradores de la sala"},"muc_temporary":{"keyword":"temporal","description":"será destruida si el último ocupante sale"},"muc_unmoderated":{"keyword":"no moderada","description":"todo el mundo puede enviar mensajes"},"muc_unsecured":{"keyword":"sin asegurar","description":"no necesitas contraseña para entrar"},"Continue":"Continuar","Server":"Servidor","Rooms_are_loaded":"Las salas han sido cargadas","Could_load_only":"Se cargaron solo __count__ salas para el autocompletado","muc_explanation":"Por favor introduce el nombre de la sala, un alias opcional y una contraseña para unirse al chat","You_already_joined_this_room":"Ya te has unido a esta sala","This_room_will_be_closed":"Esta sale será cerrada","Room_not_found_":"Sala no encontrada","Loading_room_information":"Cargando información de la sala","Destroy":"Destruir","Leave":"Abandonar","changed_subject_to":"__nickname__ cambió el asunto de la sala a \"__subject__\"","muc_removed_kicked":"Has sido echado de la sala","muc_removed_info_kicked":"__nickname__ ha sido echado de la sala","muc_removed_banned":"Has sido expulsado de la sala","muc_removed_info_banned":"__nickname__ ha sido expulsado","muc_removed_affiliation":"Has sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_info_affiliation":"__nickname__ ha sido eliminado de la sala debido a un cambio en la afiliación","muc_removed_membersonly":"Has sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_info_membersonly":"__nickname__ ha sido eliminado de la sala debido a que la sala ha sido cambiada a miembros solo y tú no eres un miembro","muc_removed_shutdown":"Has sido eliminado de la sala debido a que el servicio MUC está siendo apagado","Reason":"Razón","message_not_send":"Tu mensaje no fue enviado debido a un error","message_not_send_item-not-found":"Tu mensaje no fue enviado debido a que esta sala no existe","message_not_send_forbidden":"Tu mensaje no fue enviado debido a que no tienes voz en esta sala","message_not_send_not-acceptable":"Tu mensaje no fue enviado debido a que no eres un ocupante de esta sala ","This_room_has_been_closed":"Esta sala ha sido cerrada","Room_logging_is_enabled":"Log de sala está habilitado","A_password_is_required":"Se requiere una contraseña","You_are_not_on_the_member_list":"No estás en la lista de miembros","You_are_banned_from_this_room":"Estás expulsado de esta sala","Your_desired_nickname_":"Tu alias ya está en uso. Por favor elige otro","The_maximum_number_":"El máximo número de usuarios ha sido alcanzado en esta sala","This_room_is_locked_":"Esta sala está bloqueada","You_are_not_allowed_to_create_":"No tienes permiso para crear una sala","Alert":"Alerta","Call_started":"Llamada empezada","Call_terminated":"Llamada terminada","Carbon_copy":"Calco","Enable":"Activar","jingle_reason_busy":"ocupado","jingle_reason_decline":"rechazar","jingle_reason_success":"colgar","Media_failure":"Fallo multimedia","No_local_audio_device":"No hay dispositivo de audio local","No_local_video_device":"No hay dispositivo de vídeo local","Ok":"Ok","PermissionDeniedError":"Tú o tu navegador denegaron el permiso de audio/vídeo","Use_local_audio_device":"Usar dispositivo de audio local","Use_local_video_device":"Usar dispositivo de vídeo","is_":"es __status__","You_received_a_message_from_an_unknown_sender_":"Ha recibido un mensaje de un remitente desconocido (__sender__) ¿Quiere mostrarlos?","Your_roster_is_empty_add_":"Tu lista de amigos esta vacía, añadir un <a>nuevo amigo</a>","onsmp_explanation_question":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, introduce la respuesta y haga clic en Contestar.","onsmp_explanation_secret":"Tu amigo está tratando de determinar si él o ella está realmente hablando con usted. Para autenticar a su amigo, especifique el secreto.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado se inició una conversación privada.","Unverified_private_conversation_started":"No verificado se inició una conversación privada.","Bookmark":"Favorito","Auto-join":"Auto-unir","Edit_bookmark":"Editar favorito","Room_logging_is_disabled":"Log de sala está deshabilitado","Room_is_now_non-anoymous":"La sala es ahora no anónima","Room_is_now_semi-anonymous":"La sale es ahora semi-anónima","Do_you_want_to_change_the_default_room_configuration":"¿Quieres cambiar la configuración por defecto de la sala?","Default":"Por defecto","Change":"Cambiar","Send_file":"Enviar archivo","setting-explanation-carbon":"Con el Calco habilitado tu servidor XMPP enviará una copia de cada mensaje entrante dirigido a ti a este cliente incluso si no estaba siendo enviado a él","setting-explanation-login":"Si esta opción está habilitada, el chat empezará al inicio de sesión","setting-explanation-priority":"Si tú has iniciado sesión varias veces con la misma cuenta, tu servidor XMPP enviará los mensajes al cliente con la mayor prioridad","setting-explanation-xmpp":"Estas opciones son usadas para conectar con el servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fi":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"fr":{"translation":{"Logging_in":"Connexion...","your_connection_is_unencrypted":"Connexion non chiffrée.","your_connection_is_encrypted":"Connexion chiffrée.","your_buddy_closed_the_private_connection":"Votre contact a fermé la connexion privée.","start_private":"Démarrer une conversation privée","close_private":"Clôturer une conversation privée","your_buddy_is_verificated":"Votre contact est vérifié.","you_have_only_a_subscription_in_one_way":"Vous ne pouvez souscrire qu'une fois.","authentication_query_sent":"Requête d’authentification envoyée.","your_message_wasnt_send_please_end_your_private_conversation":"Votre message n'a pas été envoyé. Veuillez terminer votre conversation privée.","unencrypted_message_received":"Message non chiffré reçu","not_available":"Non disponible","no_connection":"Pas de connexion !","relogin":"Re-connexion","trying_to_start_private_conversation":"Essai de démarrage d'une conversation privée !","Verified":"Vérifié","Unverified":"Non vérifié","private_conversation_aborted":"Conversation privée interrompue !","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Votre contact a fermé la conversation privée ! Vous devriez faire de même.","conversation_is_now_verified":"La conversation est maintenant vérifiée.","authentication_failed":"L'authentification a échoué.","Creating_your_private_key_":"Création de votre clé privée; cela peut prendre un moment.","Authenticating_a_buddy_helps_":"L'authentification d'un contact permet de s'assurer que la personne à qui vous parlez est vraiment celui qu'il ou elle prétend être.","How_do_you_want_to_authenticate_your_buddy":"Comment voulez-vous vous authentifier __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Sélection de la méthode...","Manual":"Manuel","Question":"Question","Secret":"Sécurité","To_verify_the_fingerprint_":"Pour vérifier l'empreinte, joignez votre contact via un autre canal digne de confiance, tel que le téléphone.","Your_fingerprint":"Votre empreinte","Buddy_fingerprint":"Empreinte du contact","Close":"Fermer","Compared":"Comparé","To_authenticate_using_a_question_":"Pour s'authentifier à l'aide d'une question, choisissez une question dont la réponse n'est connue que vous et de votre contact.","Ask":"Demander","To_authenticate_pick_a_secret_":"Pour vous authentifier, choisissez un secret connu seulement de vous et de votre contact.","Compare":"Comparer","Fingerprints":"Empreintes","Authentication":"Authentification","Message":"Message","Add_buddy":"Ajouter un contact","rename_buddy":"Renommer le contact","delete_buddy":"Supprimer le contact","Login":"Connexion","Username":"Nom d'utilisateur","Password":"Mot de passe","Cancel":"Annuler","Connect":"Connecter","Type_in_the_full_username_":"Tapez un nom d'utilisateur complet et un alias(optionnel).","Alias":"Alias","Add":"Ajouter","Subscription_request":"Demande d'abonnement","You_have_a_request_from":"Vous avez une requête de ","Deny":"Refuser","Approve":"Approuver","Remove_buddy":"Supprimer le contact","You_are_about_to_remove_":"Vous allez retirer __bid_name__ (<b>__bid_jid__</b>) de votre liste de contacts. Toutes les fenêtres de discussion en lien avec celui-ci seront fermées.","Continue_without_chat":"Continuer sans tchat","Please_wait":"Merci de patienter","Login_failed":"Authentification échouée","Sorry_we_cant_authentikate_":"La connexion avec le serveur de tchat a échoué. Vérifiez le mot de passe.","Retry":"Retour","clear_history":"Effacer l’historique","New_message_from":"Nouveau message de __name__","Should_we_notify_you_":"Dans le futur, devrons-nous vous notifier les nouveaux messages ?","Please_accept_":"Merci de cliquer sur le bouton \"autoriser\" en haut de page","Hide_offline":"Masquer les contacts non connectés","Show_offline":"Afficher les contacts non connectés","About":"À propos","dnd":"Ne pas déranger","Mute":"Muet","Unmute":"Son actif","Subscription":"Abonnement","both":"Les deux","Status":"Statut","online":"En ligne","chat":"tchat","away":"Absent","xa":"Longue absence","offline":"Hors ligne","none":"Aucun","Unknown_instance_tag":"Tag inconnu","Not_one_of_our_latest_keys":"Ce n'est pas l'une des dernières touches","Received_an_unreadable_encrypted_message":"Message chiffré non lisible","Online":"En ligne","Chatty":"Libre pour discuter","Away":"Absent","Extended_away":"Longue absence","Offline":"Hors ligne","Friendship_request":"Demande de contact","Confirm":"Valider","Dismiss":"Rejeter","Remove":"Supprimer","Online_help":"Aide en ligne","FN":"Nom","N":" N ","FAMILY":"Nom de famille","GIVEN":"prénom","NICKNAME":"Pseudo","URL":"URL","ADR":"Adresse","STREET":"Rue","EXTADD":"Adresse (suite)","LOCALITY":"Localité","REGION":"Région","PCODE":"Code Postal","CTRY":"Pays","TEL":"Téléphone","NUMBER":"Numéro","EMAIL":"Courriel","USERID":" USERID ","ORG":"Organisation","ORGNAME":"Nom","ORGUNIT":"Unité","TITLE":"Qualité:","ROLE":"Rôle","BDAY":"Date de naissance","DESC":"Description","PHOTO":"Photo","send_message":"Envoyer un message","get_info":"Montrer les informations","Settings":"Réglages","Priority":"Priorité","Save":"Enregistrer","User_settings":"Paramètres utilisateur","A_fingerprint_":"Une empreinte est utilisée pour s'assurer de l'identité de la personne à qui vous parlez","is":"est","Login_options":"Options d'identification","BOSH_url":"URL BOSH","Domain":"Domaine","Resource":"Ressource","On_login":"Après authentification","Received_an_unencrypted_message":"Reçu un message non chiffré","Sorry_your_buddy_doesnt_provide_any_information":"Désolé, votre contact n'a pas fourni d'informations","Info_about":"À propos de","Authentication_aborted":"Authentification interrompue.","Authentication_request_received":"Requête d'authentification reçue.","Log_in_without_chat":"S'identifier sans tchat","has_come_online":"vient d'arriver","Unknown_sender":"Expéditeur inconnu","Please_allow_access_to_microphone_and_camera":"Veuillez cliquez sur le bouton \"Autoriser\" en haut, pour permettre l'accès au micro et à la caméra.","Incoming_call":"Appel entrant","from":"de","Do_you_want_to_accept_the_call_from":"Voulez-vous accepter l'appel de","Reject":"Rejeté","Accept":"Accepté","hang_up":"raccrocher","snapshot":"Capture d’écran","mute_my_audio":"Couper l'audio","pause_my_video":"Mettre ma vidéo en pause","fullscreen":"Plein écran","Info":"Info","Local_IP":"IP locale","Remote_IP":"IP distante","Local_Fingerprint":"Empreinte locale","Remote_Fingerprint":"Empreinte distante","Video_call_not_possible":"L'appel vidéo n'est possible. Votre contact ne supporte pas les appels vidéo.","Start_video_call":"Démarrer l'appel vidéo","Join_chat":"Joindre la discussion","Join":"Joindre","Room":"Salon","Nickname":"Pseudo","left_the_building":"__nickname__ a quitté l'immeuble","entered_the_room":"__nickname__ entre dans le salon","is_now_known_as":"__oldNickname__ est maintenant connu comme __newNickname__","This_room_is":"Ce salon est","muc_hidden":{"keyword":"caché","description":"ne peut être trouvé avec une recherche"},"muc_membersonly":{"keyword":"pour les membres seulement","description":"Vous devez être sur la liste des membres"},"muc_moderated":{"keyword":"modéré","description":"Seulement les personnes avec la \"voix\" sont autorisés à envoyer des messages"},"muc_nonanonymous":{"keyword":"non anonyme","description":"Votre identifiant Jabber est visible de tous les autres occupants"},"muc_open":{"keyword":"ouvert","description":"Tout le monde est autorisé à se connecter"},"muc_passwordprotected":{"keyword":"protégé par un mot de passe","description":"Vous devez fournir un mot de passe correct"},"muc_persistent":{"keyword":"persistent","description":"ne sera pas détruit si le dernier occupant part"},"muc_public":{"keyword":"public","description":"peut être touvé avec une recherche"},"muc_semianonymous":{"keyword":"semi-anonyme","description":"Votre identifiant Jabber est seulement visible aux administrateurs de ce salon"},"muc_temporary":{"keyword":"temporaire","description":"sera détruit au départ de son dernier occupant"},"muc_unmoderated":{"keyword":"non modéré","description":"Tout le monde est autorisé à envoyer des messages"},"muc_unsecured":{"keyword":"non sécurisé","description":"un mot de passe n'est pas nécessaire pour entrer"},"Continue":"Continuer","Server":"Serveur","Rooms_are_loaded":"Les salons sont chargés","Could_load_only":"Ne peut charger que __count__ salons pour l'autocomplétion","muc_explanation":"Veuillez saisir le nom du salon, un surnom (optionnel) et un mot de passe pour joindre la conversation","You_already_joined_this_room":"Vous avez déjà rejoint ce salon","This_room_will_be_closed":"Ce salon va être fermé","Room_not_found_":"Un nouveau salon va être créé","Loading_room_information":"Chargement des informations du salon","Destroy":"Détruire","Leave":"Quitter","changed_subject_to":"__nickname__ a changé le sujet du salon à \"__subject__\"","muc_removed_kicked":"Vous avez été éjecté de ce salon","muc_removed_info_kicked":"__nickname__ a été éjecté de ce salon","muc_removed_banned":"Vous avez été banni de ce salon","muc_removed_info_banned":"__nickname__ a été banni de ce salon","muc_removed_affiliation":"Vous avez été retiré du salon en raison d'un changement d'affiliation","muc_removed_info_affiliation":"__nickname__ a été retiré du salon en raison d'un changement d'affiliation","muc_removed_membersonly":"Vous avez été retiré du salon parce que celui-ci est maintenant réservé aux membres et vous n'en faites pas partie","muc_removed_info_membersonly":"__nickname__ a été retiré du salon parce que celui-ci est maintenant réservé aux membres","muc_removed_shutdown":"Vous avez été retiré du salon parce que le service de salon de discussion est en train de s'éteindre","Reason":"Raison","message_not_send":"Votre message n'a pu être envoyé a cause d'une erreur","message_not_send_item-not-found":"Votre message n'a pu être envoyé parce que ce salon n'existe pas","message_not_send_forbidden":"Votre message n'a pas été envoyé parce que vous n'avez pas le droit de parler dans ce salon","message_not_send_not-acceptable":"Votre message n'a pas été envoyé car il n'y a personne dans ce salon","This_room_has_been_closed":"Ce salon a été fermé","Room_logging_is_enabled":"L'historique du salon est conservé","A_password_is_required":"Un mot de passe est requis","You_are_not_on_the_member_list":"Vous n'êtes pas sur la liste des membres","You_are_banned_from_this_room":"Vous avez été banni de ce salon","Your_desired_nickname_":"Votre pseudo souhaité est déjà utilisé. Veuillez en choisir un autre","The_maximum_number_":"Le nombre maximum d'utilisateurs est atteint dans ce salon","This_room_is_locked_":"Ce salon est verrouillé","You_are_not_allowed_to_create_":"Vous n'êtes pas autorisé à créer un salon","Alert":"Alerte","Call_started":"Appel démarré","Call_terminated":"Appel terminé","Carbon_copy":"Copie carbone","Enable":"Activé","jingle_reason_busy":"occupé","jingle_reason_decline":"refusé","jingle_reason_success":"raccroché","Media_failure":"échec du média","No_local_audio_device":"Pas de périphérique audio local","No_local_video_device":"Pas de périphérique vidéo local","Ok":"Ok","PermissionDeniedError":"Vous ou votre navigateur avez refusé de donner des permissions audio/vidéo","Use_local_audio_device":"Utiliser un périphérique audio local.","Use_local_video_device":"Utiliser un périphérique vidéo local.","is_":"est __status__","You_received_a_message_from_an_unknown_sender_":"Vous avez reçu un message d'un expéditeur inconnu (__sender__) Voulez-vous les afficher ?","Your_roster_is_empty_add_":"Votre liste est vide, ajouter <a>Nouveau contact</a>","onsmp_explanation_question":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, saisissez une réponse et cliquez sur Répondre.","onsmp_explanation_secret":"Votre contact tente de déterminer si il ou elle parle vraiment à vous. Pour vous authentifier auprès de votre contact, entrez le mot secret","from_sender":"de __sender__","Verified_private_conversation_started":"La conversation privée vérifiée a démarré.","Unverified_private_conversation_started":"La conversation privée non vérifiée a démarré.","Bookmark":"Marque-page","Auto-join":"Joindre automatiquement","Edit_bookmark":"Éditer le marque-page","Room_logging_is_disabled":"La connexion au salon est désactivée","Room_is_now_non-anoymous":"Ce salon n'est désormais plus anonyme","Room_is_now_semi-anonymous":"Ce salon est désormais semi-anonyme","Do_you_want_to_change_the_default_room_configuration":"Voulez-vous changer la configuration par défaut du salon ?","Default":"Par défaut","Change":"Changer","Send_file":"Envoyer un fichier","setting-explanation-carbon":"Avec la copie carbone activé, votre serveur XMPP envera une copie de tous les messages entrant qui vous sont destiné à ce client, même s'il ne lui sont pas directement addressés.","setting-explanation-login":"Si cette option est activé, le chat commencera lorsque vous vos connectez.","setting-explanation-priority":"Si vous êtes connecté plusieurs fois avec le même compte, votre serveur XMPP enverra les messages au client ayant le plus haute priorité.","setting-explanation-xmpp":"Ces options sont utilisées pour se connecter au serveur XMPP.","_is_composing":" est en train d'écrire...","_are_composing":" sont en train d'écrire...","Chat_state_notifications":"Notifications de composition","setting-explanation-chat-state":"Voulez-vous envoyer et recevoir les notifications de composition, comme lorsque quelqu'un commence ou arrête d'écrire un message ?","Share_screen":"Ecran partagé","Incoming_stream":"Flux entrant","Stream_started":"flux démarré","HTTPS_REQUIRED":"Cette action nécessite une connexion cryptée.","EXTENSION_UNAVAILABLE":"Vous avez besoin d'une extension / d'un addon pour votre navigateur.","UNKNOWN_ERROR":"Une erreur inconnue s'est produite.","Install_extension":"Veuillez installer l'extension afin d'utiliser le partage d'écran: ","Connection_accepted":"Connexion acceptée","Stream_terminated":"Flux terminé","Close_all":null}},"hu-HU":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":"Az Ön kapcsolata titkosítatlan.","your_connection_is_encrypted":"Az Ön kapcsolata titkosított.","your_buddy_closed_the_private_connection":"Partnere megszakította a privát kapcsolatot.","start_private":"Privát beszélgetés indítása","close_private":"Privát beszélgetés bezárása","your_buddy_is_verificated":"Az Ön partnere megerősítve.","you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":"Azonosítási kérelem elküldve.","your_message_wasnt_send_please_end_your_private_conversation":"Az üzenetet nem sikerült elküldeni. Kérem fejezze be a privát beszélgetést.","unencrypted_message_received":"Titkosítatlan üzenet fogadva","not_available":"Nem elérhető","no_connection":"Nincs kapcsolat!","relogin":"relogin","trying_to_start_private_conversation":"Privát beszélgetés indítása!","Verified":"Megerősítve","Unverified":"Nem megerősített","private_conversation_aborted":"Privát beszélgetés megszakítva!","your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":"Azonosítás sikertelen.","Creating_your_private_key_":"Privát kulcs generálása. Egy kis időbe telhet...","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":"Kérdés","Secret":"Kulcs","To_verify_the_fingerprint_":null,"Your_fingerprint":"Az Ön lenyomata","Buddy_fingerprint":"Partnere lenyomata","Close":"Bezárás","Compared":"Összehasonlítva","To_authenticate_using_a_question_":"Az azonosításhoz adjon meg egy kérdést, amelyre a választ csak Ön és Partnere ismerhetik.","Ask":"Kérdez","To_authenticate_pick_a_secret_":"Az azonosításhoz adjon meg egy titkot, amelyet csak Ön és Partnere ismerhetnek.","Compare":"Összehasonlítás","Fingerprints":"Lenyomatok","Authentication":"Azonosítás","Message":"Üzenet","Add_buddy":"Partner hozzáadása","rename_buddy":"Partner átnevezése","delete_buddy":"Partner törlése","Login":"Belépés","Username":"Felhasználónév","Password":"Jelszó","Cancel":"Mégsem","Connect":"Csatlakozás","Type_in_the_full_username_":"Adjon meg egy teljes felhasználónevet, és egy opcionális becenevet.","Alias":"Becenév","Add":"Hozzáadás","Subscription_request":"Feliratkozási kérelem","You_have_a_request_from":"Ön felkérést kapott a következőtől","Deny":"Elutasít","Approve":"Jóváhagy","Remove_buddy":"Partner eltávolítása","You_are_about_to_remove_":null,"Continue_without_chat":"Folytatás chat nélkül","Please_wait":"Kérem várjon","Login_failed":"Chat bejelentkezés sikertelen","Sorry_we_cant_authentikate_":null,"Retry":"Vissza","clear_history":"Előzmények törlése","New_message_from":"Új üzenet __name__ partnerétől","Should_we_notify_you_":"Kívánja hogy értesítsük a jövőben új üzeneteiről?","Please_accept_":"Kérem kattintson a fent megjelenő \"Engedélyez\" gombra.","Hide_offline":"Offline partnerek elrejtése","Show_offline":"Offline partnerek mutatása","About":null,"dnd":"Ne zavarj","Mute":"Némítás","Unmute":"Hangok engedélyezése","Subscription":null,"both":"mindkettő","Status":"Állapot","online":"elérhető","chat":null,"away":"távol","xa":"huzamosabban távol","offline":"offline","none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":"Teljes név","N":null,"FAMILY":"Családi név","GIVEN":"Keresztnév","NICKNAME":"Becenév","URL":"URL","ADR":"Cím","STREET":"Utcanév","EXTADD":"Cím","LOCALITY":"Helység","REGION":"Régió","PCODE":"Irányítószám","CTRY":"Ország","TEL":"Telefonszám","NUMBER":"Házszám","EMAIL":"E-mail cím","USERID":null,"ORG":"Vállalat","ORGNAME":"Név","ORGUNIT":"Osztály","TITLE":"Beosztás","ROLE":"Részleg","BDAY":"Születésnap","DESC":"Leírás","PHOTO":null,"send_message":"Üzenet küldése","get_info":"Info mutatása","Settings":"Beállítások","Priority":"Prioritás","Save":"Mentés","User_settings":"Felhasználó beállítások","A_fingerprint_":null,"is":null,"Login_options":"Bejelentkezési lehetőségek","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Erőforrás","On_login":"Bejelentkezéskor","Received_an_unencrypted_message":"Titkosítatlan üzenetet fogadott","Sorry_your_buddy_doesnt_provide_any_information":"Sajnos az Ön partnere nem adott meg semmilyen információt.","Info_about":null,"Authentication_aborted":"Azonosítás megszakítva.","Authentication_request_received":"Azonosítási kérelem fogadva.","Log_in_without_chat":"Bejelentkezés chat nélkül","has_come_online":"bejelentkezett","Unknown_sender":"Ismeretlen küldő","Please_allow_access_to_microphone_and_camera":"Kérem kattintson a fent megjelenő \"Engedélyez/Allow\" gombra hogy hozzáférést biztosítson mikrofonjához és kamerájához.","Incoming_call":"Bejövő hívás","from":"tőle","Do_you_want_to_accept_the_call_from":"Szeretné fogadni következő partnere hívását:","Reject":"Elutasít","Accept":"Fogadás","hang_up":"tartás","snapshot":"képernyőfotó","mute_my_audio":"hangom némítása","pause_my_video":"videóképem megállítása","fullscreen":"teljes képernyő","Info":"Info","Local_IP":"Helyi IP","Remote_IP":"Távoli IP","Local_Fingerprint":"Helyi lenyomat","Remote_Fingerprint":"Távoli lenyomat","Video_call_not_possible":"Videóhívás nem lehetséges. Az Ön partnerének készüléke nem támogatja a videóhívásokat.","Start_video_call":"Videóhívás indítása","Join_chat":"Belépés a chatbe","Join":"Belépés","Room":"Szoba","Nickname":"Becenév","left_the_building":"__nickname__ elhagyta az épületet.","entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"it":{"translation":{"Logging_in":"login…","your_connection_is_unencrypted":"La sua connessione è non cifrata.","your_connection_is_encrypted":"La sua connessione è cifrata.","your_buddy_closed_the_private_connection":"La sua connessione privata è stato chiuso dal suo compagno.","start_private":"Inizia privata","close_private":"Chiude privata","your_buddy_is_verificated":"Il tuo compagno è stato verificato","you_have_only_a_subscription_in_one_way":"Hai solo una one-way inscrizione.","authentication_query_sent":"Domanda d'autenticità inviata.","your_message_wasnt_send_please_end_your_private_conversation":"Il tuo messaggio non è stato inviato. Si prega di finire la sua conversazione privata.","unencrypted_message_received":"Messaggio non cifrato ricevuto","not_available":"non disponibile","no_connection":"nessun collegamento!","relogin":"nuovo login","trying_to_start_private_conversation":"Cercando di avviare una conversazione privata!","Verified":"verificato","Unverified":"non verificato","private_conversation_aborted":"Conversazione privata abortito!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Il tuo compagno ha chiuso la conversazione privata! Si dovrebbe fare lo stesso.","conversation_is_now_verified":"Conversazione è ora verificato.","authentication_failed":"autenticazione fallita.","Creating_your_private_key_":"Creare la propria chiave privata; questo potrebbe richiedere un po'.","Authenticating_a_buddy_helps_":"Autenticazione un compagno aiuta a garantire che la persona si sta parlando è davvero quello che lui o lei sostiene di essere.","How_do_you_want_to_authenticate_your_buddy":"Come si desidera autenticare __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Seleziona metodo ..","Manual":"manuale","Question":"domanda","Secret":"segreto","To_verify_the_fingerprint_":"Per verificare l'impronta digitale, contattare il proprio compagno attraverso qualche altro canale affidabile, come il telefono.","Your_fingerprint":"il tuo impronta digitale","Buddy_fingerprint":"impronta digitale da compagno","Close":"chiude","Compared":"comparato","To_authenticate_using_a_question_":"Per autenticare tramite una questione, scegli una questione la cui risposta è nota solo voi e il tuo compagno","Ask":"chiedi","To_authenticate_pick_a_secret_":"Per autenticare, scegli un segreto noto solo a te e il tuo compagno.","Compare":"Comparare","Fingerprints":"Impronta digitale","Authentication":"Autenticazione","Message":"Messagio","Add_buddy":"Aggiungi un compagno","rename_buddy":"rinomina compagno","delete_buddy":"elimina compagno","Login":"Login","Username":"Identificazione dell'utente","Password":"Password","Cancel":"Cancella","Connect":"Collega","Type_in_the_full_username_":"Digita l'identificazione utente completo e un alias opzionale.","Alias":"Alias","Add":"Aggiungi","Subscription_request":"Rrichiesta di sottoscrizione","You_have_a_request_from":"Hai una richiesta da","Deny":"Refiuta","Approve":"Approva","Remove_buddy":"Rimuova il compagno","You_are_about_to_remove_":"Stai rimovendo __bid_name__ (<b>__bid_jid__</b>) del suo lista di compagni. Tutte le chat appartenente saranno chiuse.","Continue_without_chat":"Continua senza chat","Please_wait":"Si prega d'attendere","Login_failed":"Chat login è fallito","Sorry_we_cant_authentikate_":"Autenticazione non riuscita con il server di chat. Forse la password è sbagliata?","Retry":"Indietro","clear_history":"Cancella la cronologia","New_message_from":"Nuovo messaggio da __name__","Should_we_notify_you_":"Vuoi ricevere una notifica di nuovi messaggi in futuro?","Please_accept_":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra.","Hide_offline":"Nascondere i contatti non in linea","Show_offline":"Mostra i contatti non in linea","About":"Informazione legale","dnd":"Non disturbare","Mute":"Muto attivo","Unmute":"Muto inattivo","Subscription":"Sottoscrizione","both":"etrambi","Status":"Status","online":"In linea","chat":"chat","away":"via","xa":"via estensivo","offline":"non in linea","none":"nessuno","Unknown_instance_tag":"Instance tag sconosciuta.","Not_one_of_our_latest_keys":"Non è una delle nostre ultime chiavi.","Received_an_unreadable_encrypted_message":"Ricevuto un messaggio crittografato illeggibile.","Online":"In linea","Chatty":"Chiacchierino","Away":"Via","Extended_away":"Via estensivo","Offline":"Non in linea","Friendship_request":"Amicizia richiesto","Confirm":"Conferma","Dismiss":"Rifiuta","Remove":"Rimuovi","Online_help":"Guida in linea","FN":"Nome e cognome","N":null,"FAMILY":"Cognome","GIVEN":"Nome","NICKNAME":"Soprannome","URL":"URL","ADR":"Indirizzo","STREET":"Via","EXTADD":"Esteso Indirizzo","LOCALITY":"Località","REGION":"Regione","PCODE":"Codice Postale","CTRY":"Paese","TEL":"Telefono","NUMBER":"Numero","EMAIL":"E-mail","USERID":null,"ORG":"Organizzazione","ORGNAME":"Nome","ORGUNIT":"Unità","TITLE":"Titolo di lavoro","ROLE":"Funzione","BDAY":"Compleanno","DESC":"Descrizione","PHOTO":null,"send_message":"Messagio inviato","get_info":"Mostra informazioni","Settings":"Impostazione","Priority":"Priorità","Save":"Salva","User_settings":"Impostazione dell'utente","A_fingerprint_":"Una impronta digitale è usato per assicurarsi che la persona con cui stai parlando è lui o lei che sta dicendo.","is":"è","Login_options":"Opzioni di login","BOSH_url":"BOSH URL","Domain":"Domain","Resource":"Risorsa","On_login":"Login on","Received_an_unencrypted_message":"Ricevuto un messaggio non crittografato","Sorry_your_buddy_doesnt_provide_any_information":"Spiace, il tuo compagno non fornisce alcuna informazione.","Info_about":"Informazioni","Authentication_aborted":"Autenticazione interrotta","Authentication_request_received":"Richiesta di autenticazione ricevuto.","Log_in_without_chat":"Log in senza chat","has_come_online":"È venuto in linea","Unknown_sender":"Mittente sconosciuto","Please_allow_access_to_microphone_and_camera":"Si prega di fare clic sul bottone \"Autorizzazione\" sopra per autorizzazione del l'accesso al microfono e fotocamera.","Incoming_call":"Chiamata in arrivo","from":"di","Do_you_want_to_accept_the_call_from":"Vuoi accettare la chiamata di","Reject":"Rifiuta","Accept":"Accetta","hang_up":"Riattacca","snapshot":"istantanea","mute_my_audio":"disattiva il mio audio","pause_my_video":"pausa il mio audio","fullscreen":"schermo intero","Info":"Informazione","Local_IP":"IP locale","Remote_IP":"IP remoto","Local_Fingerprint":"Impronta digitale locale","Remote_Fingerprint":"Impronta digitale remoto","Video_call_not_possible":"Videochiamata non è possibile. Il tuo compagno non può effettuare videochiamate.","Start_video_call":"Inizia videochiamata","Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":"è __status__","You_received_a_message_from_an_unknown_sender_":"Hai ricevuto un messaggio da un mittente sconosciuto (__sender__) Vuoi che venga visualizzato?","Your_roster_is_empty_add_":"Il suo elenco è vuoto, aggiungi un <a>compagno nuovo</a>","onsmp_explanation_question":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserisci la risposta e fare click su risposta.","onsmp_explanation_secret":"Il tuo compagno sta cercando di determinare se lui o lei sta davvero parlando con te. Per autenticare a il tuo compagno. inserire il segreto.","from_sender":"di __sender__","Verified_private_conversation_started":"verificato Conversazione privata iniziato.","Unverified_private_conversation_started":"non verificato Conversazione privata iniziato.","Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"nds":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"pl":{"translation":{"Logging_in":"Logowanie...","your_connection_is_unencrypted":"Twoje połączenie nie jest szyfrowane.","your_connection_is_encrypted":"Twoje połączenie jest szyfrowane.","your_buddy_closed_the_private_connection":"Twój rozmówca zamknął połączenie.","start_private":"Rozpocznij rozmowę.","close_private":"Zakończ rozmowę.","your_buddy_is_verificated":"Twój rozmówca został zweryfikowany.","you_have_only_a_subscription_in_one_way":"Posiadasz tylko jednostronną subskrypcję.","authentication_query_sent":"Wysłano proźbę o autentykację.","your_message_wasnt_send_please_end_your_private_conversation":"Twoja wiadomość nie została wysłana. Proszę, zamknij rozmowę.","unencrypted_message_received":"Otrzymano niezaszyfrowaną wiadomość.","not_available":"Niedostępny.","no_connection":"Brak połączenia!","relogin":"Połącz ponownie","trying_to_start_private_conversation":"Rozpocznij rozmowę!","Verified":"Zweryfikowano","Unverified":"Niezweryfikowano","private_conversation_aborted":"Anulowano rozmowę!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Rozmówca przerwał połączenie! Powinieneś zrobić to samo.","conversation_is_now_verified":"Zweryfikowano połączenie.","authentication_failed":"Weryfikacja się nie powiodła.","Creating_your_private_key_":"Tworzenie klucza prywatnego; może to chwilę potrwać","Authenticating_a_buddy_helps_":"Autoryzacja pomoże w ustaleniu faktycznej tożsamości rozmówcy ;).","How_do_you_want_to_authenticate_your_buddy":"Jakiej autoryzacji chcesz użyć __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Wybierz sposób...","Manual":"Ręcznie","Question":"Pytanie","Secret":"Hasło","To_verify_the_fingerprint_":"Aby zweryfikować kod, najpierw skontaktuj się z rozmówcą za pomocą zaufanego sposobu, np telefonu.","Your_fingerprint":"Twój kod:","Buddy_fingerprint":"Kod kontaktu","Close":"Zamknij","Compared":"Porównano","To_authenticate_using_a_question_":"Aby autoryzować za pomocą pytania, wybierz pytanie na które tylko ty i twój rozmówca zna odpowiedź.","Ask":"Zadaj pytanie","To_authenticate_pick_a_secret_":"Aby autoryzować za pomocą hasła, wybierz hasło na które znasz tylko Ty i twój rozmówca.","Compare":"Dopasuj","Fingerprints":"Kody autoryzacyjne","Authentication":"Autoryzacja","Message":"Wiadomość","Add_buddy":"Dodaj kontakt","rename_buddy":"Zmień nazwę kontaktu","delete_buddy":"Usuń kontakt","Login":"Login","Username":"Nazwa Użytkownika","Password":"Hasło","Cancel":"Anuluj","Connect":"Połączenie","Type_in_the_full_username_":"Wpisz pełną nazwę użytkownika (np. <B>imię.nazwisko@zajezdnia.local</B>) oraz jego nazwę wyświetlaną (Alias).","Alias":"Alias","Add":"Dodaj","Subscription_request":"Potwierdzenie subskrypcji","You_have_a_request_from":"Masz potwierdzenie od","Deny":"Odmów","Approve":"Zatwierdź","Remove_buddy":"Usuń kontakt","You_are_about_to_remove_":"Chcesz usunąć __bid_name__ (<b>__bid_jid__</b>) z twojej listy kontaktów. Wszystkie powiązane rozmowy zostaną zamknięte.","Continue_without_chat":"Kontynuuj bez komunikatora","Please_wait":"Proszę czekać","Login_failed":"Błędne logowanie","Sorry_we_cant_authentikate_":"Błędna autoryzacja z serwerem. Może hasło jest nieprawidłowe?","Retry":"Powrót","clear_history":"Wyczyść historię","New_message_from":"Nowa wiadomość od __name__","Should_we_notify_you_":"Czy chcesz otrzymywać powiadomienia o nowych wiadomościach w przyszłości?","Please_accept_":"Kliknij \"Zezwól\" na górze.","Hide_offline":"Schowaj niedostępne kontakty","Show_offline":"Pokaż niedostępne kontakty","About":"Info","dnd":"Nie przeszkadzać","Mute":"Wycisz","Unmute":"Włącz dźwięk","Subscription":"Subskrybcja","both":"obustronna","Status":"Status","online":"Dostępny","chat":"czat","away":"z dala od kompa","xa":"hen hen...","offline":"niedostępny","none":"brak","Unknown_instance_tag":"Nieznany przypadek.","Not_one_of_our_latest_keys":"Not one of our latest keys.","Received_an_unreadable_encrypted_message":"Otrzymano nieczytelną, zaszyfrowaną wiadomość.","Online":"Połączony","Chatty":"Pogawędzimy?","Away":"Daleko","Extended_away":"Hen Hen...","Offline":"Niedostępny","Friendship_request":"Prośba o kontakt","Confirm":"Potwierdzenie","Dismiss":"Odwołaj","Remove":"Usuń","Online_help":"Pomoc Online","FN":"Pełna nazwa","N":" ","FAMILY":"Nazwisko","GIVEN":"Imię","NICKNAME":"Pseudonim","URL":"Strona WWW","ADR":"Adres","STREET":"Ulica","EXTADD":"Pełny adres","LOCALITY":"Lokalizacja","REGION":"Region","PCODE":"Kod pocztowy","CTRY":"Kraj","TEL":"Telefon","NUMBER":"Numer","EMAIL":"Email","USERID":" ","ORG":"Organizacja","ORGNAME":"Nazwa","ORGUNIT":"Jednostka","TITLE":"Stanowisko","ROLE":"Rola","BDAY":"Data urodzin","DESC":"Opis","PHOTO":" ","send_message":"Wyślij wiadomość","get_info":"Pokaż informację","Settings":"Ustawienia","Priority":"Priorytet","Save":"Zapisz","User_settings":"Ustawienia Użytkownika","A_fingerprint_":"Kod służy do autoryzacji Twojego rozmówcy aby potwierdzić jego tożsamość.","is":"jest","Login_options":"opcje logowania","BOSH_url":"Adres BOSH","Domain":"Domena","Resource":"Źródło","On_login":"Na login","Received_an_unencrypted_message":"Zatwierdzono nieszyfrowaną wiadomość.","Sorry_your_buddy_doesnt_provide_any_information":"Wybacz, twój rozmówca nie posiada żadnych informacji.","Info_about":"Informacja o...","Authentication_aborted":"Autoryzacja anulowana.","Authentication_request_received":"Prośba o autoryzację została przyjęta.","Log_in_without_chat":"Zaloguj bez komunikatora","has_come_online":"jest teraz dostępny","Unknown_sender":"Nieznany nadawca","Please_allow_access_to_microphone_and_camera":"Kliknij \"Potwierdź\" na górze, aby móc korzystać z mikrofonu oraz kamery.","Incoming_call":"Przychodzące połączenie","from":"z","Do_you_want_to_accept_the_call_from":"Akceptujesz połączenie od","Reject":"Odrzuć","Accept":"Zaakceptuj","hang_up":"odbierz","snapshot":"zrób zdjęcie","mute_my_audio":"wycisz dźwięk","pause_my_video":"zatrzymaj moje wideo","fullscreen":"Pełny ekran","Info":"Informacja","Local_IP":"Adres IP","Remote_IP":"Zdalny adres IP","Local_Fingerprint":"Kod lokalny","Remote_Fingerprint":"Zdalny kod","Video_call_not_possible":"Rozmowa wideo jest niemożliwa. Twój rozmówca nie ma możliwości prowadzenia takich rozmów.","Start_video_call":"Rozpocznij rozmowę wideo","Join_chat":"Dołącz do czata","Join":"Dołącz","Room":"Pokój","Nickname":"Nazwa użytkownika","left_the_building":"__nickname__ wyszedł","entered_the_room":"__nickname__ wszedł do pokoju","is_now_known_as":"__oldNickname__ zmienił nazwę na __newNickname__","This_room_is":"Ten pokój jest","muc_hidden":{"keyword":"ukryty","description":"nie można odnaleźć elementów wyszukiwania"},"muc_membersonly":{"keyword":"tylko zalogowani","description":"musisz być członkiem listy"},"muc_moderated":{"keyword":"moderowano","description":"tylko osoby z opcją \"głos\" mogą wysyłać wiadomość"},"muc_nonanonymous":{"keyword":"nie-anonimowy","description":"Twój identyfikator jabber jest widoczny dla wszystkich innych osób"},"muc_open":{"keyword":"otwarty","description":"wszyscy mają pozwolenie aby dołączyć"},"muc_passwordprotected":{"keyword":"ograniczone hasłem","description":"musisz wpisać prawidłowe hasło"},"muc_persistent":{"keyword":"trwale","description":"nie zostaną zniszczone, jeśli ostatnia osoba wyszła"},"muc_public":{"keyword":"publiczny","description":"wyszukawno"},"muc_semianonymous":{"keyword":"pół-anonimowy","description":"Twój identyfikator jabber jest widoczny w pokoju adminów"},"muc_temporary":{"keyword":"tymczasowy","description":"zostanie usunięty jeżeli ostatnia osoba wyjdzie"},"muc_unmoderated":{"keyword":"niemoderowany","description":"wszyscy są uprawnieni do pisania wiadomości"},"muc_unsecured":{"keyword":"niezabezpieczone","description":"nie musisz wpisywać hasła"},"Continue":"Kontynuuj","Server":"Serwer","Rooms_are_loaded":"Pokoje zostały załadowane","Could_load_only":"Nie załadowano __count__ pokoi","muc_explanation":"Aby się zalogować, wpisz nazwę pokoju oraz opcjonalnie nazwę użytkownika i hasło","You_already_joined_this_room":"Już dołączyłeś do tego pokoju","This_room_will_be_closed":"Ten pokój będzie zamknięty","Room_not_found_":"Nowy pokój będzie stworzony","Loading_room_information":"Ładowani informacji o pokoju","Destroy":"Zniszczony","Leave":"Opuść","changed_subject_to":"__nickname__ zmienił temat pokoju na \"__subject__\"","muc_removed_kicked":"Zostałeś wyrzucony z pokoju","muc_removed_info_kicked":"__nickname__ został wyrzucony z pokoju","muc_removed_banned":"Zostałeś zbanowany","muc_removed_info_banned":"__nickname__ został zbanowany","muc_removed_affiliation":"Zostałeś usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_info_affiliation":"__nickname__ został usunięty z pokoju ze względu na zmianę przynależnosci","muc_removed_membersonly":"Zostałeś usunięty z pokoju ze względu na zmianę pokoju tylko dla członków, a Ty nie jesteś członkiem...","muc_removed_info_membersonly":"__nickname__ został usunięty z pokoju ze względu na zmianę pokoju na tylko dla członków","muc_removed_shutdown":"Zostałeś usunięty z pokoju ze względu na zamknięcie usługi","Reason":"Powód","message_not_send":"Wystąpił błąd i twoja wiadomość nie została wysłana.","message_not_send_item-not-found":"Twoja wiadomość nie została wysłana ponieważ ten pokój nie istnieje","message_not_send_forbidden":"Twoja wiadomość nie została wysłana ponieważ nie masz głosu w tym pokoju","message_not_send_not-acceptable":"Twoja wiadomość nie została wysłana ponieważ nie jesteś właścicielem tego pokoju","This_room_has_been_closed":"Ten pokój został zamknięty","Room_logging_is_enabled":"Logowanie do pokoju jest włączone","A_password_is_required":"Hasło jest wymagane","You_are_not_on_the_member_list":"Nie jesteś na liście członków","You_are_banned_from_this_room":"Zostałeś zbanowany w tym pokoju","Your_desired_nickname_":"Twoja nazwa użytkownika jest już użyta. Spróbuj wybrać inną","The_maximum_number_":"Została osiągnięta maksymalna liczba użytkowników w tym pokoju","This_room_is_locked_":"Ten pokój jest zablokowany","You_are_not_allowed_to_create_":"Nie masz uprawnień do tworzenia pokoju","Alert":"Alarm","Call_started":"Rozmowa rozpoczęta","Call_terminated":"Rozmowa zakończona","Carbon_copy":"Do wiadomości","Enable":"Włączone","jingle_reason_busy":"zajęte","jingle_reason_decline":"odmów","jingle_reason_success":"zakończono","Media_failure":"Błąd mediów","No_local_audio_device":"Brak lokalnego urządzenia audio.","No_local_video_device":"Brak lokalnego urządzenia wideo.","Ok":"Ok","PermissionDeniedError":"Ty lub twoja przeglądarka odmówiła dostępu do audio/video","Use_local_audio_device":"Użyj lokalnego urządzenia audio.","Use_local_video_device":"Użyj lokalnego urządzenia wideo.","is_":"jest __status__","You_received_a_message_from_an_unknown_sender_":"Masz wiadomość od nieznanego nadawcy. (__sender__) Chcesz to wyświetlić?","Your_roster_is_empty_add_":"Twoja lista jest pusta, dodaj kontakty <a>Nowy kontakt</a>","onsmp_explanation_question":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, napisz odpowiedź.","onsmp_explanation_secret":"Twój rozmówca próbuje się z Tobą połączyć. Autoryzacja z rozmówcą, wpisz hasło.","from_sender":"z __sender__","Verified_private_conversation_started":"Zweryfikowano Rozmowa prywatna rozpoczęta.","Unverified_private_conversation_started":"Niezweryfikowano Rozmowa prywatna rozpoczęta.","Bookmark":"Zakładka","Auto-join":"Auto-połączenie","Edit_bookmark":"Edytuj zakładkę","Room_logging_is_disabled":"Logowanie pokoju jest wyłączone","Room_is_now_non-anoymous":"Pokój jest teraz nie-anonimowy","Room_is_now_semi-anonymous":"Pokój jest teraz pół-anonimowy","Do_you_want_to_change_the_default_room_configuration":"Chcesz zmienić domyślną konfigurację pokoju?","Default":"Domyślny","Change":"Zmień","Send_file":"Wyślij plik","setting-explanation-carbon":null,"setting-explanation-login":"Jeżeli ta opcja jest włączona, czat uruchomi się przy zalogowaniu.","setting-explanation-priority":"Jeżeli jesteś zalogowany wiele razy na to samo konto twój serwer XMPP dostarczy wiadomości do klienta z najwyższym priorytetem.","setting-explanation-xmpp":"Te ustawienia używane są do połączenia z serwerem XMPP.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"pt-BR":{"translation":{"Logging_in":"Entrando...","your_connection_is_unencrypted":"Sua conexão não é encriptada","your_connection_is_encrypted":"Sua conexão é encriptada","your_buddy_closed_the_private_connection":"Seu contato fechou a conexão privada","start_private":"Iniciar conversa privada","close_private":"Fechar conversa privada","your_buddy_is_verificated":"Seu contato está verificado","you_have_only_a_subscription_in_one_way":"Você só tem a inscrição one-way","authentication_query_sent":"Pergunta de autenticação enviada","your_message_wasnt_send_please_end_your_private_conversation":"Sua mensagem não foi enviada. Por favor finalize sua conversa privada","unencrypted_message_received":"Mensagem não encriptada recebida","not_available":"Indisponível","no_connection":"Sem conexão!","relogin":"reentrar","trying_to_start_private_conversation":"Tentando iniciar conversa privada","Verified":"Verificado","Unverified":"Não verificado","private_conversation_aborted":"Conversa privada abortada!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Seu contato encerrou a conversa privada! Você deveria fazer o mesmo.","conversation_is_now_verified":"Conversa verificada.","authentication_failed":"Autenticação falhou.","Creating_your_private_key_":"Criando sua chave privada: isso pode demorar um pouco.","Authenticating_a_buddy_helps_":"Autenticar seu contato ajuda a garantir que a pessoa com a qual você está falando é realmente a pessoa que ela alega ser.","How_do_you_want_to_authenticate_your_buddy":"Como você gostaria de se autenticar __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Selecione o método...","Manual":"Manual","Question":"Pergunta","Secret":"Senha","To_verify_the_fingerprint_":"Para verificar o fingerprint, entre em contato com seu contato usando outro meio, de preferência seguro, como o telefone.","Your_fingerprint":"Sua impressão digital","Buddy_fingerprint":"Impressão digital do contato","Close":"Fechar","Compared":"Comparado","To_authenticate_using_a_question_":"Para autenticar seu contato faça uma pergunta, mas escolha que só ele saiba a resposta.","Ask":"Pergunta","To_authenticate_pick_a_secret_":"Para autenticar, escolha um segredo que somente você e seu contato saibam.","Compare":"Compare","Fingerprints":"Impressões digitais","Authentication":"Autenticação","Message":"Mensagem","Add_buddy":"Adicionar contato","rename_buddy":"renomear contato","delete_buddy":"remover contato","Login":"Entrar","Username":"Usuário","Password":"Senha","Cancel":"Cancelar","Connect":"Conectar","Type_in_the_full_username_":"Digite seu nome completo e um apelido opcional.","Alias":"Apelido","Add":"Adicionar","Subscription_request":"Pedido de inscrição","You_have_a_request_from":"Você tem um pedido de","Deny":"Negar","Approve":"Aprovar","Remove_buddy":"Remover contato","You_are_about_to_remove_":"Você está prestes a remover __bid_name__ (<b>__bid_jid__</b>) de sua lista de contatos. Todas as conversas serão fechadas.","Continue_without_chat":"Continue sem converar","Please_wait":"Por favor aguarde","Login_failed":"Autenticação da conversa falhou","Sorry_we_cant_authentikate_":"A autenticação com o servidor falhou. Talvez seja a senha errada?","Retry":"Voltar","clear_history":"Limpar histórico","New_message_from":"Nova mensagem de __name__","Should_we_notify_you_":"Devemos continuar notificando sobre novas mensagens no futuro?","Please_accept_":"Por favor clique no botão \"Permitir\" na parte superior.","Hide_offline":"Esconder contatos desconectados","Show_offline":"Mostrar contatos desconectados","About":"Sobre","dnd":"Não perturbe","Mute":"Mudo","Unmute":"Ligar","Subscription":"Inscrição","both":"ambos","Status":"Status","online":"online","chat":"conversa","away":"ausente","xa":"ausente por mais tempo","offline":"desativado","none":"nenhum","Unknown_instance_tag":"Marcação desconhecida da instância","Not_one_of_our_latest_keys":"Nenhuma de nossas ultimas chaves.","Received_an_unreadable_encrypted_message":"Mensagem encriptada ilegível foi recebida.","Online":"Online","Chatty":"Tagarela","Away":"Ausente","Extended_away":"Ausente por mais tempo","Offline":"Desativado","Friendship_request":"Pedido de amizade","Confirm":"Confirmar","Dismiss":"Ignorar","Remove":"Remover","Online_help":"Ajuda online","FN":"Nome completo","N":" ","FAMILY":"Sobrenome","GIVEN":"Nome","NICKNAME":"Apelido","URL":"URL","ADR":"Endereço","STREET":"Rua, Av, etc","EXTADD":"Complemento","LOCALITY":"Localidade","REGION":"Região","PCODE":"CEP","CTRY":"País","TEL":"Telefone","NUMBER":"Número","EMAIL":"Email","USERID":" IDUsuário","ORG":"Empresa","ORGNAME":"Nome","ORGUNIT":"Unidade","TITLE":"Cargo","ROLE":"Função","BDAY":"Data de nascimento","DESC":"Descrição","PHOTO":"Foto","send_message":"Enviar mensagem","get_info":"Exibir informações","Settings":"Configurações","Priority":"Prioridade","Save":"Salvar","User_settings":"Configurações do usuário","A_fingerprint_":"O fingerprint é usado para certificar que a pessoa com a qual se está falando é que ela diz ser.","is":"é","Login_options":"Opções de login","BOSH_url":"BOSH URL","Domain":"Domínio","Resource":"Recurso","On_login":"Ao autenticar","Received_an_unencrypted_message":"Mensagem não encriptada recebida","Sorry_your_buddy_doesnt_provide_any_information":"Desculpe, seu contato não forneceu nenhuma informação","Info_about":"Informações sobre","Authentication_aborted":"Autenticação encerrada.","Authentication_request_received":"Pedido de autenticação recebido","Log_in_without_chat":"Entrar sem conversar","has_come_online":"ficou online","Unknown_sender":"Emissor desconhecido","Please_allow_access_to_microphone_and_camera":"Por favor clique no botão \"Permitir\" no topo, para conceder acesso ao seu microfone e câmera.","Incoming_call":"Recebendo chamada","from":"de","Do_you_want_to_accept_the_call_from":"Você aceita a chamada de","Reject":"Negar","Accept":"Aceitar","hang_up":"desligar","snapshot":"registrar imagem","mute_my_audio":"mudo","pause_my_video":"pausar vídeo","fullscreen":"tela cheia","Info":"Informações","Local_IP":"IP local","Remote_IP":"IP remoto","Local_Fingerprint":"Fingerprint local","Remote_Fingerprint":"Fingerprint remoto","Video_call_not_possible":"Chamada de vídeo impossível. Seu contato não suporta chamadas desse tipo.","Start_video_call":"Iniciar chamada de vídeo","Join_chat":"Entrar no chat","Join":"Entrar","Room":"Sala","Nickname":"Apelido","left_the_building":"__nickname__ deixou o prédio","entered_the_room":"__nickname__ entrou na sala","is_now_known_as":"__oldNickname__ agora é conhecido como __newNickname__","This_room_is":"Esta sala é","muc_hidden":{"keyword":"oculto","description":"Não pode ser encontrado através de pesquisa"},"muc_membersonly":{"keyword":"apenas para membros","description":"você precisa estar na lista de membros"},"muc_moderated":{"keyword":"moderado","description":"Somente pessoas com \"voice\" podem enviar mensagens"},"muc_nonanonymous":{"keyword":"não-anônimo","description":"Seu id jabber esta esposto para todos os outros ocupantes"},"muc_open":{"keyword":"abrir","description":"Todos podem entrar"},"muc_passwordprotected":{"keyword":"protegido por senha","description":"você precisa fornecer a senha correta"},"muc_persistent":{"keyword":"persistente","description":"Não será destruída se o último ocupante tiver saído"},"muc_public":{"keyword":"público","description":"pode ser localizado pela busca"},"muc_semianonymous":{"keyword":"semi-anônimos","description":"Sua identificação jabber só é exposta para administradores da sala"},"muc_temporary":{"keyword":"temporário","description":"Será destruída se o último ocupante tiver saído"},"muc_unmoderated":{"keyword":"sem moderação","description":"Todos tem permissão de enviar mensagens"},"muc_unsecured":{"keyword":"inseguro","description":"Você não precisa de senha para entrar"},"Continue":"Avançar","Server":"Servidor","Rooms_are_loaded":"Sala carregada","Could_load_only":"Pode carregar somente __count__ salas para autocompletar","muc_explanation":"Por favor entre um nome de sala e um nickname opcional e uma senha para entrar no chat","You_already_joined_this_room":"Você já entrou nesta sala","This_room_will_be_closed":"Esta sala será fechada","Room_not_found_":"Uma nova sala será criada","Loading_room_information":"Carregar informação da sala","Destroy":"Destruir","Leave":"Sair","changed_subject_to":"__nickname__ alterar o assunto da sala para \"__subject__\"","muc_removed_kicked":"Você foi removido da sala","muc_removed_info_kicked":"__nickname__ foi removido da sala","muc_removed_banned":"Você foi banido da sala","muc_removed_info_banned":"__nickname__ foi banido da sala","muc_removed_affiliation":"Você foi removido da sala pois a sala, por que a afiliação mudou","muc_removed_info_affiliation":"__nickname__ foi removido da sala, por que a afiliação mudou","muc_removed_membersonly":"Você foi removido da sala pois a sala foi alterada somente para membros e você não é um membro","muc_removed_info_membersonly":"__nickname__ foi removido da sala porque a sala foi alterada para somente membros e você não é um membro","muc_removed_shutdown":"Você foi removido da sala, por que o serviço MUC esta sendo desligado","Reason":"Motivo","message_not_send":"Sua mensagem não foi enviada devido a um erro","message_not_send_item-not-found":"Sua mensagem não foi enviada por que essa sala nao existe mais","message_not_send_forbidden":"Sua mensagem não foi enviada por que não tem 'voz' para essa sala","message_not_send_not-acceptable":"Sua mensagem não foi enviada por que você nao é ocupante desta sala","This_room_has_been_closed":"Essa sala foi fechada","Room_logging_is_enabled":"O Logging esta habilitado","A_password_is_required":"Senha é obrigatória","You_are_not_on_the_member_list":"Você não esta na lista de usuarios","You_are_banned_from_this_room":"Você foi banido desta sala","Your_desired_nickname_":"O nickname escolhido já esta em uso. Por favor escolha outro","The_maximum_number_":"O número máximo de usuarios já foi antigido para essa sala","This_room_is_locked_":"A sala esta trancada","You_are_not_allowed_to_create_":"Você não esta autorizado para criar uma sala","Alert":"Alerta","Call_started":"Chamada iniciada","Call_terminated":"Chamada finalizada","Carbon_copy":"Copia carbono","Enable":"Habilitado","jingle_reason_busy":"ocupado","jingle_reason_decline":"recusado","jingle_reason_success":"sucesso","Media_failure":"Media falhou","No_local_audio_device":"sem dispositivo local de audio","No_local_video_device":"sem dispositivo local de video","Ok":"Ok","PermissionDeniedError":"Você ou seu navegador negou permissão para acessar audio/video","Use_local_audio_device":"Usar dispositivo local de audio","Use_local_video_device":"Usar dispositivo local de video","is_":"é __status__","You_received_a_message_from_an_unknown_sender_":"Você recebeu uma mensagem de um emissor desconhecido (__sender__) Você quer mostrá-los?","Your_roster_is_empty_add_":"Sua lista está vazia, adicione um <a>novo contato</a>","onsmp_explanation_question":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, entre com a resposta e clique em Responder.","onsmp_explanation_secret":"Seu contato está tentando determinar se ele realmente está falando contigo. Para autenticar seu contato, escreva a senha.","from_sender":"de __sender__","Verified_private_conversation_started":"Verificado Conversa privada iniciada.","Unverified_private_conversation_started":"Não verificado Conversa privada iniciada.","Bookmark":"Favoritos","Auto-join":"Entrar Automaticamente","Edit_bookmark":"Editar favoritos","Room_logging_is_disabled":"Registro de log na sala está desativado","Room_is_now_non-anoymous":"A sala é não anônima agora","Room_is_now_semi-anonymous":"A sala é semi anônima agora","Do_you_want_to_change_the_default_room_configuration":"Você quer alterar as configurações da sala?","Default":"Padrão","Change":"Alterar","Send_file":"Enviar arquivo","setting-explanation-carbon":"Com carbon copy ativado seu servidor XMPP vai enviar uma copia de cada mensagem para você neste cliente mesmo que não tenha endereço","setting-explanation-login":"Se essa opção esta habilitada, o chat vai começar ao logar.","setting-explanation-priority":"Você esta logado varias vezes com a mesma conta, seu servidor XMPP vai entregar as mensagens para o cliente com a prioridade mais alta.","setting-explanation-xmpp":"Essas opções são usadas para conectar no Servidor XMPP","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ro":{"translation":{"Logging_in":"Autentificare...","your_connection_is_unencrypted":"Conexiunea nu este criptată.","your_connection_is_encrypted":"Conexiunea este criptată.","your_buddy_closed_the_private_connection":"Interlocutorul a închis conexiunea privată.","start_private":"Pornește în privat","close_private":"Închide privat","your_buddy_is_verificated":"Interlocutorul este verificat.","you_have_only_a_subscription_in_one_way":"Subscrierea este într-o singură direcție.","authentication_query_sent":"Cererea de autentificare a fost trimisă.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajul nu a fost trimis. Te rog închide conversația în privat.","unencrypted_message_received":"A fost primit un mesaj necriptat","not_available":"Indisponibil","no_connection":"Fără conexiune!","relogin":"Re-autentificare","trying_to_start_private_conversation":"Se încearcă deschiderea conversației în privat!","Verified":"Verificat","Unverified":"Neverificat","private_conversation_aborted":"Conversație în privat eșuată!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Interlocutorul a închis conversația în privat! Ar trebui să faci la fel și tu.","conversation_is_now_verified":"Conversația este acum verificată.","authentication_failed":"Autentificarea a eşuat.","Creating_your_private_key_":"Se crează cheia privată; ar putea să dureze ceva timp.","Authenticating_a_buddy_helps_":"Autentificând un contact ne asigură că persoana cu care vorbești este într-adevăr cine pretinde că este.","How_do_you_want_to_authenticate_your_buddy":"Cum vrei să te autentifici __bid_name__ (<b>__bid_jid__</b>)","Select_method":"Alege metoda...","Manual":"Manual","Question":"Întrebare","Secret":"Secret","To_verify_the_fingerprint_":"Pentru a verifica amprenta, contactează interlocutorul printr-un canal de încredere, cum ar fi telefonul.","Your_fingerprint":"Amprenta ta","Buddy_fingerprint":"Amprenta interlocutorului","Close":"Închide","Compared":"Prin comparație","To_authenticate_using_a_question_":"Pentru autentificarea folosind o întrebare, alege o întrebare cu un răspuns cunoscut doar de tine și de interlocutor.","Ask":"Întreabă","To_authenticate_pick_a_secret_":"Pentru autentificare, alege un secret cunoscut doar de tine și de interlocutor.","Compare":"Compară","Fingerprints":"Amprente","Authentication":"Autentificare","Message":"Mesaj","Add_buddy":"Adaugă contact","rename_buddy":"redenumește contact","delete_buddy":"șterge contact","Login":"Logare","Username":"Utilizator","Password":"Parolă","Cancel":"Renunță","Connect":"Conectare","Type_in_the_full_username_":"Scrie numele complet al utilizatorului și un alias opțional.","Alias":"Alias","Add":"Adaugă","Subscription_request":"Cerere de subscriere","You_have_a_request_from":"Ai o cerere de la","Deny":"Refuză","Approve":"Aprobă","Remove_buddy":"Șterge contact","You_are_about_to_remove_":"Urmează să ștergi __bid_name__ (<b>__bid_jid__</b>) din lista de contacte. Toate chat-urile asociate vor fi închise.","Continue_without_chat":"Continuă fără chat","Please_wait":"Te rog așteaptă","Login_failed":"Logarea pe chat a eșuat","Sorry_we_cant_authentikate_":"Autentificarea cu serverul de chat a eșuat. Poate parola este greșită ?","Retry":"Înapoi","clear_history":"Curăță istoria","New_message_from":"Un nou mesaj de la __name__","Should_we_notify_you_":"Vrei să fi notificat despre mesajele noi în viitor ?","Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"ru":{"translation":{"Logging_in":"Вход в систему...","your_connection_is_unencrypted":"Ваше соединение не зашифровано.","your_connection_is_encrypted":"Ваше соединение зашифровано.","your_buddy_closed_the_private_connection":"Ваш собеседник закончил зашифрованное соединение.","start_private":"Начать зашифрованный чат","close_private":"Закончить зашифрованный чат","your_buddy_is_verificated":"Собеседник подтвержден.","you_have_only_a_subscription_in_one_way":"У вас только односторонняя подписка.","authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":"Сообщение не отправлено. Завершите зашифрованный чат, пожалуйста.","unencrypted_message_received":"Получено незашифрованное сообщение","not_available":"Не доступен","no_connection":"Нет соединения!","relogin":"переподключиться","trying_to_start_private_conversation":"Попытка начать зашифрованный чат!","Verified":"Подтверждено","Unverified":"Не подтверждено","private_conversation_aborted":"Зашифрованный чат отклонен!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Ваш собеседник завершил зашифрованный чат! Вы должны сделать тоже самое.","conversation_is_now_verified":"Чат теперь утвержден.","authentication_failed":"Ошибка авторизации.","Creating_your_private_key_":"Создается приватный ключ. Это может занять некоторое время","Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":"Выберите метод...","Manual":"Вручную","Question":"Вопрос","Secret":"Пароль","To_verify_the_fingerprint_":null,"Your_fingerprint":"Ваш отпечаток","Buddy_fingerprint":"Отпечаток собеседника","Close":"Закрыть","Compared":"Сравнение завершено","To_authenticate_using_a_question_":"Для авторизации с помощью вопроса выберите вопрос, ответ на который знаете только Вы и собеседник.","Ask":null,"To_authenticate_pick_a_secret_":"Для авторизации выберите пароль, который знаете только Вы и собеседник.","Compare":"Сравнить","Fingerprints":"Отпечатки","Authentication":"Авторизация","Message":"Сообщение","Add_buddy":"Добавить контакт","rename_buddy":"переименовать контакт","delete_buddy":"удалить контакт","Login":"Вход","Username":"Логин","Password":"Пароль","Cancel":"Отмена","Connect":"Подключить","Type_in_the_full_username_":"Введите полное имя пользователя и дополнительный псевдоним","Alias":"Псевдоним","Add":"Добавить","Subscription_request":"Запрос подписки","You_have_a_request_from":"Получен запрос от","Deny":"Отказ","Approve":"Подтвердить","Remove_buddy":"Удалить контакт","You_are_about_to_remove_":"Вы собираетесь удалить __bid_name__ (<b>__bid_jid__</b>) из списка контактов. Все связанные с чаты будут закрыты.","Continue_without_chat":"Продолжить без чата","Please_wait":"Подождите…","Login_failed":"Неудачный вход в чат","Sorry_we_cant_authentikate_":"Неудачная попытка входа","Retry":"Назад","clear_history":"Очистить историю","New_message_from":"Новое сообщение от __name__","Should_we_notify_you_":"Уведомлять о новых сообщениях в будущем?","Please_accept_":"Нажмите кнопку \"Разрешить\" вверху страницы, пожалуйста","Hide_offline":"Спрятать отключенных","Show_offline":"Показать отключенных","About":"О проекте","dnd":"Не беспокоить","Mute":"Выкл. уведомления","Unmute":"Вкл. уведомления","Subscription":"Подписка","both":"оба","Status":"Статус","online":"в сети","chat":"готов общаться","away":"отошел","xa":"отсутствую","offline":"не в сети","none":"нет","Unknown_instance_tag":"Неизвестный тег.","Not_one_of_our_latest_keys":"Ни один из наших последних ключей","Received_an_unreadable_encrypted_message":"Получено нечитаемое зашифрованное сообщение","Online":"В сети","Chatty":"Готов общаться","Away":"Отошел","Extended_away":"Отсутствую","Offline":"Не в сети","Friendship_request":"Запрос на добавление в контакты","Confirm":"Подтвердить","Dismiss":"Отклонить","Remove":"Удалить","Online_help":"Онлайн помощь","FN":"Полное имя","N":null,"FAMILY":"Фамилия","GIVEN":"Имя","NICKNAME":"Ник","URL":"URL","ADR":"Адрес","STREET":"Улица","EXTADD":"Дополнительный адрес","LOCALITY":"Город","REGION":"Область","PCODE":"Индекс","CTRY":"Страна","TEL":"Телефон","NUMBER":"Номер","EMAIL":"Почта","USERID":null,"ORG":"Организация","ORGNAME":"Название","ORGUNIT":"Отдел","TITLE":"Должность","ROLE":"Обязанности","BDAY":"День рождения","DESC":"Описание","PHOTO":" Фото ","send_message":"Отправить сообщение","get_info":"Показать информацию","Settings":"Настройки","Priority":"Приоритет","Save":"Сохранить","User_settings":"Пользовательские настройки","A_fingerprint_":null,"is":" ","Login_options":"Параметры входа","BOSH_url":"BOSH URL","Domain":"Домен","Resource":"Ресурс","On_login":"Автоматически подключаться","Received_an_unencrypted_message":"Получено незашифрованное сообщение","Sorry_your_buddy_doesnt_provide_any_information":"К сожалению, контакт не предоставил какой-либо информации.","Info_about":"Информация о","Authentication_aborted":"Аутентификация прервана.","Authentication_request_received":"Получен запрос проверки подлинности.","Log_in_without_chat":"Вход без чата","has_come_online":"появился в сети","Unknown_sender":"Неизвестный отправитель","Please_allow_access_to_microphone_and_camera":"Нажмите кнопку \"Разрешить\" вверху страницы, чтобы предоставить доступ к микрофону и камере.","Incoming_call":"Входящий вызов","from":"от","Do_you_want_to_accept_the_call_from":"Вы хотите принять вызов от","Reject":"Отклонить","Accept":"Принять","hang_up":"Завершить","snapshot":"Снимок","mute_my_audio":"Без звука","pause_my_video":"Остановить моё видео","fullscreen":"На весь экран","Info":"Инфо","Local_IP":"Мой IP","Remote_IP":"Удаленный IP","Local_Fingerprint":"Мой отпечаток","Remote_Fingerprint":"Удаленный отпечаток","Video_call_not_possible":"Видео-вызов невозможен. Ваш собеседник не поддерживает видео-вызовы.","Start_video_call":"Видео-вызов","Join_chat":"Присоединиться к комнате","Join":"Присоедениться","Room":"Комната","Nickname":"Ник","left_the_building":"__nickname__ выходит из комнаты","entered_the_room":"__nickname__ заходит в комнату","is_now_known_as":"__oldNickname__ теперь известен как __newNickname__","This_room_is":"Эта комната","muc_hidden":{"keyword":"скрыта","description":"не может быть найдена через поиск"},"muc_membersonly":{"keyword":"только для участников","description":"Вы должны быть в списке участников"},"muc_moderated":{"keyword":"модерируется","description":"Только пользователи с правом голоса могут отправлять сообщения"},"muc_nonanonymous":{"keyword":"неанонимная","description":"Ваш JID будет показан всем посетителям"},"muc_open":{"keyword":"открытая","description":"Любой пользователь может присоедениться"},"muc_passwordprotected":{"keyword":"защищена паролем","description":"Необходимо ввести правильный пароль"},"muc_persistent":{"keyword":"постоянная","description":"Не будет уничтожена, когда ее покинут все участники"},"muc_public":{"keyword":"публичная","description":"Может быть найдена через поиск"},"muc_semianonymous":{"keyword":"полу-анонимная","description":"Ваш JID могут увидеть только администраторы"},"muc_temporary":{"keyword":"временная","description":"Будет уничтожена как только не останется ни одного участника"},"muc_unmoderated":{"keyword":"не модерируется","description":"Любой посетитель может отправлять сообщения"},"muc_unsecured":{"keyword":"без пароля","description":"Не нужно вводить пароль для входа"},"Continue":"Далее","Server":"Сервер","Rooms_are_loaded":"Комнаты загружены","Could_load_only":"Подгрузка только __count__ комнат в автодополнении","muc_explanation":"Введите название комнаты, свой ник и пароль для входа в комнату","You_already_joined_this_room":"Вы уже в этой комнате","This_room_will_be_closed":"Эта комната была закрыта","Room_not_found_":"Новая комната будет создана","Loading_room_information":"Загрузка информации о комнате","Destroy":"Уничтожить","Leave":"Покинуть","changed_subject_to":"__nickname__ изменил тему комнаты на \"__subject__\"","muc_removed_kicked":"Вас выкинули из комнаты","muc_removed_info_kicked":"__nickname__ был удален из комнаты","muc_removed_banned":"Вас забанили в комнате","muc_removed_info_banned":"__nickname__ был забанен в комнате","muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":"Вы были исключены из комнаты, т.к. комната стала доступна только для членов комнаты, а Вы им не являетесь","muc_removed_info_membersonly":"__nickname__ исключен(а) из комнаты, т.к. комната стала доступна только для членов комнаты, а он(она) им не является","muc_removed_shutdown":"Вы были удалены из комнаты, т.к. сервис чат-комнат недоступен","Reason":"Причина","message_not_send":"Ваше сообщение не было отправлено из-за ошибки","message_not_send_item-not-found":"Ваше сообщение не было отправлено, т.к. этой комнаты не существует","message_not_send_forbidden":"Ваше сообщение не было отправлено, т.к. у Вас нет права голоса в этой комнате","message_not_send_not-acceptable":"Ваше сообщение не было отправлено, т.к. Вы не являетесь участником этой комнаты","This_room_has_been_closed":"Эта комната была закрыта","Room_logging_is_enabled":"Журналирование комнаты включено","A_password_is_required":"Необходим пароль","You_are_not_on_the_member_list":"Вы не в списке участников","You_are_banned_from_this_room":"Вас забанили в этой комнате","Your_desired_nickname_":"Данное имя пользователя уже занято, пожалуйста, выберите другое имя пользователя","The_maximum_number_":"Достигнут лимит максимального количества посетителей этой комнаты","This_room_is_locked_":"Эта комната заблокирована","You_are_not_allowed_to_create_":"Вы не можете создавать комнаты","Alert":"Внимание","Call_started":"Вызов начался","Call_terminated":"Вызов завершен","Carbon_copy":"Копировать сообщения","Enable":"Включить","jingle_reason_busy":"занято","jingle_reason_decline":"запрещено","jingle_reason_success":"сбросили","Media_failure":"Ошибка передачи медиа","No_local_audio_device":"Нет локального аудио-устройства.","No_local_video_device":"Нет локального видео-устройства.","Ok":"Ок","PermissionDeniedError":"Вы или Ваш браузер запретили использовать микрофон/камеру","Use_local_audio_device":"Использовать локальное аудио-устройство.","Use_local_video_device":"Использовать локальное видео-устройство.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Вы получили сообщение от неизвестного отправителя (__sender__)","Your_roster_is_empty_add_":"Ваш список контактов пуст, добавить <a>новый контакт</a>","onsmp_explanation_question":"Собеседник пытается определить, что общается действительно с Вами.","onsmp_explanation_secret":"Собеседник пытается определить, что общается действительно с Вами. введите пароль.","from_sender":"от __sender__","Verified_private_conversation_started":"Подтверждено Зашифрованный чат начат.","Unverified_private_conversation_started":"Не подтверждено Зашифрованный чат начат.","Bookmark":"Закладка","Auto-join":"Автоматически входить","Edit_bookmark":"Редактировать закладку","Room_logging_is_disabled":"Журналирование комнаты отключено","Room_is_now_non-anoymous":"Комната теперь не анонимная","Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":"Вы хотите изменить стандартную конфигурацию комнаты?","Default":"Станд.","Change":"Изменить","Send_file":"Отправить файл","setting-explanation-carbon":"С включенным Carbon Copy Ваш XMPP сервер будет отправлять копию каждого входящего сообщения на все подключенные устройства.","setting-explanation-login":"Если эта опция включена, то чат будет начинаться сразу после аутентификации.","setting-explanation-priority":"Если вы подключены к одному аккаунту с нескольких устройств, то XMPP сервер будет доставлять сообщения на клиент с наивысшим приоритетом.","setting-explanation-xmpp":"Эти настройки используются для подключения к XMPP серверу.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"sv-SE":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"tr-TR":{"translation":{"Logging_in":"Giriş yapılıyor…","your_connection_is_unencrypted":"Bağlantınız şifrelenmemiş.","your_connection_is_encrypted":"Bağlantınız şifrelenmiş.","your_buddy_closed_the_private_connection":"Sohbet ettiğiniz kişi özel bağlantı kapatıldı.","start_private":"Özel bağlantı başlat.","close_private":"Özel bağlantıyı kapat.","your_buddy_is_verificated":"Kişi doğrulandı.","you_have_only_a_subscription_in_one_way":"Sadece tek yönlü bir aboneliğiniz var.","authentication_query_sent":"Kimlik doğrulama sorgusu gönderildi.","your_message_wasnt_send_please_end_your_private_conversation":"Mesajınız gönderilmedi. Lütfen özel görüşmelerinizi bitirin.","unencrypted_message_received":"Şifrelenmemiş mesaj alındı","not_available":"Müsait değil","no_connection":"Bağlantı yok!","relogin":"Yeniden gir","trying_to_start_private_conversation":"Özel sohbet başlatılmaya çalışılıyor!","Verified":"Doğrulandı","Unverified":"Doğrulanamadı","private_conversation_aborted":"Özel sohbet iptal edildi!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"Sohbet ettiğiniz kişi özel görüşmeyi kapattı! Siz de aynı şeyi yapmalısınız.","conversation_is_now_verified":"Sohbet doğrulandı.","authentication_failed":"Kimlik doğrulama başarısız.","Creating_your_private_key_":"Özel anahtarınız oluşturuluyor; bu işlem biraz sürebilir.","Authenticating_a_buddy_helps_":"Kimlik doğrulaması, konuşmakta olduğunuz kişinin gerçekten o kişi olduğundan emin olmanıza yardımcı olur.","How_do_you_want_to_authenticate_your_buddy":"Kimlik doğrulasını nasıl yapmak istersiniz __bid_name__ (<b>__bid_jid__</b>)?","Select_method":"Yöntemi seçin...","Manual":"Elle","Question":"Soru","Secret":"Gizli anahtar","To_verify_the_fingerprint_":"Parmakizini doğrulamak için, telefon gibi başka bir güvenilir kanalı kullanın.","Your_fingerprint":"Parmakiziniz","Buddy_fingerprint":"Kişinin parmakizi","Close":"Kapat","Compared":"Kıyaslandı","To_authenticate_using_a_question_":"Bir soru ile kimlik doğrulaması için, yanıtını yalnızca siz ve karşınızdaki kişinin bildiği bir soru seçin.","Ask":"Sor","To_authenticate_pick_a_secret_":"Kimlik doğrulaması için, yalnızca siz ve karşınızdaki kişinin bildiği bir parola seçin.","Compare":"Karşılaştır","Fingerprints":"Parmakizleri","Authentication":"Kimlik doğrulama","Message":"İleti","Add_buddy":"Kişi ekle","rename_buddy":"Kişiyi yeniden adlandır","delete_buddy":"Kişiyi sil","Login":"Giriş","Username":"Kullanıcı adı","Password":"Şifre","Cancel":"iptal","Connect":"Bağlan","Type_in_the_full_username_":"Tam kullanıcı adını ve isteğe bağlı bir takma ad yazın.","Alias":"Takma ad","Add":"Ekle","Subscription_request":"Abonelik isteği","You_have_a_request_from":"Size gelen bir istek var","Deny":"Reddet","Approve":"Onayla","Remove_buddy":"Kişiyi çıkar","You_are_about_to_remove_":"__bid_name__ (<b>__bid_jid__</b>) adlı kişiyi listenizden çıkarmak üzeresiniz. Tüm ilişkili sohbetler kapanacak.","Continue_without_chat":"Sohbet etmeden devam et","Please_wait":"Lütfen bekleyin","Login_failed":"Sohbet girişi başarısız oldu","Sorry_we_cant_authentikate_":"Kimlik doğrulaması başarısız oldu. Şifreniz yanlış olabilir.","Retry":"Geri","clear_history":"Geçmişi sil","New_message_from":"__name__ adlı kişiden yeni bir mesaj aldınız","Should_we_notify_you_":"İleride aldığınız yeni mesajları size bildirelim mi?","Please_accept_":"Lütfen üstteki \"İzin ver\" düğmesini tıklayın.","Hide_offline":"Çevrimdışı kişileri gizle","Show_offline":"Çevrimdışı kişileri göster","About":"hakkında","dnd":"Rahatsız etmeyin","Mute":"Sessiz","Unmute":"Sesli","Subscription":"Üyelik","both":"her ikisi de","Status":"Durum","online":"çevrimiçi","chat":"sohbet","away":"uzakta","xa":"çok uzakta","offline":"çevrimdışı","none":"hiç biri","Unknown_instance_tag":"Bilinmeyen örnek etiketi.","Not_one_of_our_latest_keys":"En son anahtarlarımızdan biri değil.","Received_an_unreadable_encrypted_message":"Okunamayan şifrelenmiş bir mesaj alındı.","Online":"Çevrimiçi","Chatty":"Konuşkan","Away":"Uzakta","Extended_away":"Çok uzakta","Offline":"Çevrimdışı","Friendship_request":"İrtibat isteği","Confirm":"Onayla","Dismiss":"Reddet","Remove":"Çıkar","Online_help":"Çevrimiçi yardım","FN":"Tam adı","N":" ","FAMILY":"Soyadı","GIVEN":"Adı","NICKNAME":"Takma ad","URL":"URL","ADR":"Adres","STREET":"Sokak","EXTADD":"Genişletilmiş Adres","LOCALITY":"Yer","REGION":"Bölge","PCODE":"Posta Kodu","CTRY":"Ülke","TEL":"Telefon","NUMBER":"Numara","EMAIL":"Eposta","USERID":" ","ORG":"Organizasyon","ORGNAME":"İsim","ORGUNIT":"Birim","TITLE":"İş tenımı","ROLE":"Görevi","BDAY":"Doğum günü","DESC":"Tanım","PHOTO":" ","send_message":"İletiyi gönder","get_info":"Bilgileri göster","Settings":"Ayarlar","Priority":"Öncelik","Save":"Kaydet","User_settings":"Kullanıcı tercihleri","A_fingerprint_":"Parmak izi konuştuğunuz kişinin söylediği kişi olduğundan emin olmak için kullanılır.","is":"Eşit","Login_options":"Giriş seçenekleri","BOSH_url":"BOSH URL","Domain":"Alan adı","Resource":"Kaynak","On_login":"Girişte","Received_an_unencrypted_message":"Şifrelenmemiş bir mesaj alındı","Sorry_your_buddy_doesnt_provide_any_information":"Maalesef kişi her hangi bir bilgi sunmamış.","Info_about":"Bilinen özellikleri","Authentication_aborted":"Kimlik doğrulama iptal edildi.","Authentication_request_received":"Kimlik doğrulama isteği alındı.","Log_in_without_chat":"Sohbetsiz giriş yap","has_come_online":"Çevrimiçi oldu","Unknown_sender":"Bilinmeyen gönderen","Please_allow_access_to_microphone_and_camera":"Mikrofona ve kameraya erişime izin vermek için lütfen üstteki \"İzin Ver\" düğmesini tıklayın.","Incoming_call":"Gelen çağrı","from":"gönderen","Do_you_want_to_accept_the_call_from":"Gelen aramayı kabul etmek istiyor musunuz","Reject":"Reddet","Accept":"Kabul et","hang_up":"aramayı sonlandır","snapshot":"anlık fotoğraf","mute_my_audio":"Sesi kapat","pause_my_video":"videoyu duraklat","fullscreen":"tam ekran","Info":"bilgi","Local_IP":"Yerel IP","Remote_IP":"Uzak IP","Local_Fingerprint":"Yerel parmakizi","Remote_Fingerprint":"Uzak parmakizi","Video_call_not_possible":"Video çağrısı yapılamıyor. Aranan kişi video görüşmelerini desteklemiyor.","Start_video_call":"Video görüşmesini başlat","Join_chat":"Sohbete katıl","Join":"Katıl","Room":"Oda","Nickname":"Takma ad","left_the_building":"__nickname__ binadan ayrıldı","entered_the_room":"__nickname__ odaya girdi","is_now_known_as":"__oldNickname__ şimdi __newNickname__ olarak biliniyor","This_room_is":"Bu oda","muc_hidden":{"keyword":"gizli","description":"Arama yoluyla bulunamıyor"},"muc_membersonly":{"keyword":"sadece-üye-olanlar","description":"üye listenizde olmanız gerekiyor"},"muc_moderated":{"keyword":"yöneticili","description":"Yalnızca \"sesli\" kişilerin mesaj göndermesine izin verilir"},"muc_nonanonymous":{"keyword":"Anonim-değil","description":"Sohbet kimliğiniz diğer tüm oturanlara görünüyor"},"muc_open":{"keyword":"açık","description":"herkes katılabilir"},"muc_passwordprotected":{"keyword":"şifre-korumalı","description":"Doğru şifreyi girmeniz gerekiyor"},"muc_persistent":{"keyword":"kalıcı","description":"Son oturan ayrıldığında kapanmaz"},"muc_public":{"keyword":"herkese açık","description":"Arama yoluyla bulunabilir"},"muc_semianonymous":{"keyword":"yarı-anonim","description":"Sohbet kimliğiniz sadece oda yöneticilerine görünüyor"},"muc_temporary":{"keyword":"geçici","description":"Son oturan ayrıldığında kapanır"},"muc_unmoderated":{"keyword":"yöneticisiz","description":"herkes ileti gönderebilir"},"muc_unsecured":{"keyword":"güvensiz","description":"şifre girmenize gerek yok"},"Continue":"Devam","Server":"Sunucu","Rooms_are_loaded":"Oda yüklendi","Could_load_only":"Sadece __count__ oda otomatik tamamlamayla yüklenebilir","muc_explanation":"Bir sohbete katılmak için, lütfen oda adını ve isteniyorsa takma adınız ve parolanızı girin","You_already_joined_this_room":"Zaten bu odaya katılmış durumdasınız","This_room_will_be_closed":"Bu oda kapanacak","Room_not_found_":"Yeni oda oluşturulacak","Loading_room_information":"Oda bilgileri yükleniyor","Destroy":"Sil","Leave":"Ayrıl","changed_subject_to":"__nickname__ bu odanın konusunu \"__subject__\" olarak değiştirdi","muc_removed_kicked":"Bu odadan atıldınız","muc_removed_info_kicked":"__nickname__ bu odadan atıldı","muc_removed_banned":"Odadan yasaklandınız","muc_removed_info_banned":"__nickname__ odadan yasaklandınız","muc_removed_affiliation":"Üyelik değişikliği nedeniyle odadan çıkarıldınız","muc_removed_info_affiliation":"__nickname__ üyelik değişikliği nedeniyle odadan çıkarıldı","muc_removed_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve siz üye olmadığınız için odadan çıkarıldınız","muc_removed_info_membersonly":"Odanın durumu sadece-üyeler olarak değiştirildiği ve __nickname__ üye olmadığı için odadan çıkarıldı","muc_removed_shutdown":"Odadan çıkarıldınız çünkü, MUC sunucusu kapandı","Reason":"Sebep","message_not_send":"Mesajınız bir hata nedeniyle gönderilmedi","message_not_send_item-not-found":"Mesajınız gönderilmedi, çünkü bu oda mevcut değil","message_not_send_forbidden":"Mesajınız gönderilmedi çünkü bu odada sesiniz yok","message_not_send_not-acceptable":"Mesajınız gönderilmedi çünkü bu odaya bulunmuyorsunuz","This_room_has_been_closed":"Bu oda kapatıldı","Room_logging_is_enabled":"Oda günlüğü etkinleştirildi","A_password_is_required":"Şifre gerekli","You_are_not_on_the_member_list":"Üye listesinde değilsiniz","You_are_banned_from_this_room":"Bu odadan yasaklandınız","Your_desired_nickname_":"İstediğiniz takma ad başkası tarafından kullanılıyor. Lütfen başka bir takma ad","The_maximum_number_":"Bu odada maksimum kullanıcı sayısına ulaşıldı","This_room_is_locked_":"Bu oda kilitli","You_are_not_allowed_to_create_":"Oda açma izniniz yok","Alert":"Uyarı","Call_started":"Arama başlatıldı","Call_terminated":"Arama bitirildi","Carbon_copy":"Karbon kopya","Enable":"Etkinleştir","jingle_reason_busy":"meşgul","jingle_reason_decline":"kabul etme","jingle_reason_success":"kapatıldı","Media_failure":"Medya istek hatası","No_local_audio_device":"Yerel ses cihazı bulunamadı.","No_local_video_device":"Yerel video cihazı bulunamadı.","Ok":"Tamam","PermissionDeniedError":"Siz veya tarayıcınız sesli/görüntülü izni reddetti","Use_local_audio_device":"Yerel video cihazını kullan.","Use_local_video_device":"Yerel video cihazını kullanın.","is_":"__status__","You_received_a_message_from_an_unknown_sender_":"Bilinmeyen bir gönderenden bir ileti aldınız (__sender__) İletiyi görüntülemek istiyor musunuz?","Your_roster_is_empty_add_":"Listeniz boş, yeni bir <a>kişi ekleyin</a>","onsmp_explanation_question":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, yanıtı girin ve Yanıtla'yı tıklayın.","onsmp_explanation_secret":"Karşınızdaki kişi, konuştuğu kişinin gerçekten siz olduğunuzu belirlemeye çalışıyor. Karşınızdaki kişiye kimliğinizi kanıtlamak için, parolayı girin.","from_sender":"__sender__'den","Verified_private_conversation_started":"Doğrulanmış Özel görüşme başladı.","Unverified_private_conversation_started":"Doğrulanmamış Özel görüşme başladı.","Bookmark":"Yer imi","Auto-join":"Otomatik katıl","Edit_bookmark":"yer imini düzenle","Room_logging_is_disabled":"Oda günlüğü devre dışı","Room_is_now_non-anoymous":"Oda artık anonim değil","Room_is_now_semi-anonymous":"Oda yarı-anonim","Do_you_want_to_change_the_default_room_configuration":"Öntanımlı oda yapılandırmasını değiştirmek istiyor musunuz?","Default":"Öntanımlı","Change":"Değiştir","Send_file":"Dosya gönder","setting-explanation-carbon":"Etkinleştirilmiş karbon kopya ile, XMPP sunucusu kendisine gönderilen her iletinin bir kopyasını, bu adrese gönderilmemiş olsa bile sizin için bu istemciye gönderir.","setting-explanation-login":"Bu seçenek etkinleştirilirse, sohbet girişle beraber başlayacaktır.","setting-explanation-priority":"Aynı hesapla bir çok kez oturum açtıysanız, XMPP sunucusu, istemciye iletileri en yüksek öncelikle gönderecektir.","setting-explanation-xmpp":"Bu seçenekler XMPP sunucusuna bağlanmak için kullanılır.","_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"vi-VN":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}},"zh-TW":{"translation":{"Logging_in":"正在登入…","your_connection_is_unencrypted":"連線沒加密。","your_connection_is_encrypted":"連線有加密。","your_buddy_closed_the_private_connection":"聯絡人關閉了加密連線。","start_private":"開始加密","close_private":"結束加密","your_buddy_is_verificated":"聯絡人已校驗。","you_have_only_a_subscription_in_one_way":"只有單向訂閱。","authentication_query_sent":"驗證要求送出了。","your_message_wasnt_send_please_end_your_private_conversation":"訊息沒送出去。請結束加密的對話。","unencrypted_message_received":"收到沒加密的訊息","not_available":"不存在","no_connection":"沒有連線!","relogin":"重新登入","trying_to_start_private_conversation":"正在試著開始加密的對話!","Verified":"已校驗","Unverified":"未校驗","private_conversation_aborted":"加密的對話中斷了!","your_buddy_closed_the_private_conversation_you_should_do_the_same":"聯絡人把這場加密的對話關掉了!你也應該同樣關掉。","conversation_is_now_verified":"對話現在校驗過了。","authentication_failed":"驗證失敗。","Creating_your_private_key_":"正在產生你的私人金鑰,會花一段時間。","Authenticating_a_buddy_helps_":"聯絡人驗證可以確保跟你說話的是真的那個人。","How_do_you_want_to_authenticate_your_buddy":"想要怎樣驗證__bid_name__ (<b>__bid_jid__</b>)?","Select_method":"選個方式...","Manual":"手動","Question":"問答","Secret":"祕密","To_verify_the_fingerprint_":"要校驗聯絡人的電子指紋,請透過其他可靠的管道跟她/他聯絡,比如說電話。","Your_fingerprint":"你的電子指紋","Buddy_fingerprint":"聯絡人的電子指紋","Close":"關閉","Compared":"比對正確","To_authenticate_using_a_question_":"要用問答來驗證的話,請找一個只有你和聯絡人才知道答案的問題。","Ask":"問題","To_authenticate_pick_a_secret_":"要驗證的話,請找一個只有你和聯絡人知道的祕密。","Compare":"比對","Fingerprints":"電子指紋","Authentication":"驗證","Message":"訊息","Add_buddy":"加聯絡人","rename_buddy":"重新命名聯絡人","delete_buddy":"刪掉聯絡人","Login":"登入","Username":"使用者名稱","Password":"密碼","Cancel":"取消","Connect":"連線","Type_in_the_full_username_":"請打全名,別名可有可無","Alias":"別名","Add":"加入","Subscription_request":"訂閱請求","You_have_a_request_from":"收到聯絡人的請求:","Deny":"拒絕","Approve":"同意","Remove_buddy":"刪除聯絡人","You_are_about_to_remove_":"要把__bid_name__ (<b>__bid_jid__</b>)從聯絡簿裡刪掉了。所有相關的對話也都會關掉。","Continue_without_chat":"繼續不聊天","Please_wait":"請等一下","Login_failed":"登入聊天失敗","Sorry_we_cant_authentikate_":"跟聊天伺服器驗證失敗,會不會是密碼打錯了?","Retry":"上一步","clear_history":"清除歷史紀錄","New_message_from":"有新訊息:__name__","Should_we_notify_you_":"以後若有新訊息要通知你嗎?","Please_accept_":"請點上方的「允許」按鈕。","Hide_offline":"隱藏離線聯絡人","Show_offline":"顯示離線聯絡人","About":"關於我","dnd":"別打擾","Mute":"開靜音","Unmute":"關靜音","Subscription":"訂閱狀態","both":"雙向","Status":"狀態","online":"上線","chat":"聊天","away":"離開","xa":"離開很久","offline":"離線","none":"沒有","Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":"收到了一則加密但無法辨認的訊息。","Online":"上線","Chatty":"想聊天","Away":"離開","Extended_away":"離開很久","Offline":"離線","Friendship_request":"聯絡請求","Confirm":"確定","Dismiss":"取消","Remove":"刪掉","Online_help":"線上說明","FN":"全名","N":" ","FAMILY":"姓氏","GIVEN":"名字","NICKNAME":"綽號","URL":"網址","ADR":"位址","STREET":"地址","EXTADD":"更多位址","LOCALITY":"所在地","REGION":"區域","PCODE":"郵遞區號","CTRY":"國家","TEL":"電話","NUMBER":"編號","EMAIL":"電子郵件","USERID":" ","ORG":"團體","ORGNAME":"名稱","ORGUNIT":"單位","TITLE":"職稱","ROLE":"職位","BDAY":"生日","DESC":"簡介","PHOTO":" ","send_message":"發送訊息","get_info":"顯示帳號資訊","Settings":"設定","Priority":"優先度","Save":"儲存","User_settings":"使用者設定","A_fingerprint_":"電子指紋是用來確認跟你說話的是真的那個人。","is":"狀態:","Login_options":"登入選項","BOSH_url":"BOSH 網址","Domain":"網域","Resource":"資源","On_login":"登入啟動","Received_an_unencrypted_message":"收到了一則沒加密的訊息","Sorry_your_buddy_doesnt_provide_any_information":"抱歉,聯絡人沒有提供任何資訊。","Info_about":"帳號資訊:","Authentication_aborted":"驗證中斷。","Authentication_request_received":"驗證請求收到了。","Log_in_without_chat":"登入但不啟用聊天","has_come_online":"上線了","Unknown_sender":"不明傳訊人","Please_allow_access_to_microphone_and_camera":"請點上方的「接受」按鈕來允許我們使用麥克風和相機。","Incoming_call":"來電","from":"只出","Do_you_want_to_accept_the_call_from":"是否要接聽來電:","Reject":"拒絕","Accept":"接受","hang_up":"掛斷","snapshot":"截圖","mute_my_audio":"關掉我的聲音","pause_my_video":"暫停我的影像","fullscreen":"全螢幕","Info":"資料","Local_IP":"本機網路位址","Remote_IP":"遠端網路位址","Local_Fingerprint":"本機電子指紋","Remote_Fingerprint":"遠端電子指紋","Video_call_not_possible":"無法視訊通話。聯絡人不支援視訊。","Start_video_call":"開始視訊通話","Join_chat":"參加聊天","Join":"參加","Room":"聊天室","Nickname":"綽號","left_the_building":"__nickname__離開了大樓","entered_the_room":"__nickname__進入了聊天室","is_now_known_as":"__oldNickname__改名叫做__newNickname__","This_room_is":"聊天室屬性:","muc_hidden":{"keyword":"隱藏","description":"搜尋也找不到"},"muc_membersonly":{"keyword":"限會員","description":"會員才會加入"},"muc_moderated":{"keyword":"有管制","description":"沒被消音的人才能送訊息"},"muc_nonanonymous":{"keyword":"禁匿名","description":"每個參與人都能看到你的 jabber 代碼"},"muc_open":{"keyword":"開放","description":"任何人都能參加"},"muc_passwordprotected":{"keyword":"密碼鎖","description":"要輸入正確的密碼才能加入"},"muc_persistent":{"keyword":"永久性","description":"最後一個參與人都離開了也不會結束"},"muc_public":{"keyword":"公開","description":"搜尋得到"},"muc_semianonymous":{"keyword":"半匿名","description":"只有聊天室管理員才看得到你的 jabber 代碼"},"muc_temporary":{"keyword":"暫時性","description":"最後一個參與人離開了就會結束"},"muc_unmoderated":{"keyword":"沒管制","description":"每個人都可以送訊息"},"muc_unsecured":{"keyword":"沒保護","description":"不需要密碼就能加入"},"Continue":"繼續","Server":"伺服器","Rooms_are_loaded":"聊天室載入完成","Could_load_only":"只能載入__count__間聊天室供輸入自動完成使用","muc_explanation":"請輸入要參加的聊天室名稱,綽號和密碼非必要","You_already_joined_this_room":"你已經參加這間聊天室了","This_room_will_be_closed":"聊天室即將關閉","Room_not_found_":"新聊天室即將開啟","Loading_room_information":"正在載入聊天室資訊","Destroy":"關閉","Leave":"離開","changed_subject_to":"__nickname__把聊天室的標題改成了\"__subject__\"","muc_removed_kicked":"你被踢出聊天室了","muc_removed_info_kicked":"__nickname__被踢出聊天室了","muc_removed_banned":"你被禁止進入聊天室了","muc_removed_info_banned":"__nickname__被禁止進入聊天室了","muc_removed_affiliation":"你因為身份改變而離開聊天室了","muc_removed_info_affiliation":"__nickname__因為身份改變而離開聊天室了","muc_removed_membersonly":"你離開聊天室了,因為聊天室改為只限會員,但你不是會員","muc_removed_info_membersonly":"__nickname__離開聊天室了,因為聊天室改為只限會員,但她/他不是會員","muc_removed_shutdown":"你離開聊天室了,因為多人聊天服務正在關閉中。","Reason":"原因","message_not_send":"訊息因為發生錯誤沒送出去","message_not_send_item-not-found":"訊息沒送出去,因為聊天室不存在了","message_not_send_forbidden":"訊息沒送出去,因為你被消音了","message_not_send_not-acceptable":"訊息沒送出去,因為你不是聊天室的參與人了","This_room_has_been_closed":"聊天室已經關閉了","Room_logging_is_enabled":"聊天室紀錄打開了","A_password_is_required":"需要密碼","You_are_not_on_the_member_list":"你不是會員","You_are_banned_from_this_room":"你被禁止進入聊天室了","Your_desired_nickname_":"這個綽號被用掉了,請換一個","The_maximum_number_":"這間聊天室已經到達使用者數目的上限","This_room_is_locked_":"聊天室上鎖了","You_are_not_allowed_to_create_":"不允許你開新的聊天室","Alert":"警告","Call_started":"通話開始","Call_terminated":"通話結束","Carbon_copy":"副本","Enable":"打開","jingle_reason_busy":"忙線中","jingle_reason_decline":"被拒絕","jingle_reason_success":"被掛斷","Media_failure":"媒體錯誤","No_local_audio_device":"本機沒有音訊設備。","No_local_video_device":"本機沒有視訊設備。","Ok":"好","PermissionDeniedError":"你或你的瀏覽器拒絕了媒體使用權限","Use_local_audio_device":"使用本機音訊設備。","Use_local_video_device":"使用本機視訊設備。","is_":"狀態: __status__","You_received_a_message_from_an_unknown_sender_":"收到了不明人士(__sender__)傳來的訊息。你要打開來看嗎?","Your_roster_is_empty_add_":"好友清單是空的,請加<a>新的聯絡人</a>","onsmp_explanation_question":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入問題的答案,然後按\"回答\"。","onsmp_explanation_secret":"聯絡人想要確定她/他是在跟真的你說話。要完成你的驗證,請輸入你們之間的祕密。","from_sender":"來自:__sender__","Verified_private_conversation_started":"加密且已校驗的對話開始了。","Unverified_private_conversation_started":"加密但未校驗的對話開始了。","Bookmark":"書籤","Auto-join":"自動參加","Edit_bookmark":"編輯書籤","Room_logging_is_disabled":"聊天室紀錄關掉了","Room_is_now_non-anoymous":"現在聊天室禁止匿名了","Room_is_now_semi-anonymous":"現在聊天室變半匿名了","Do_you_want_to_change_the_default_room_configuration":"你想要改變聊天室的預設配置嗎?","Default":"預設值","Change":"修改","Send_file":"傳送檔案","setting-explanation-carbon":"如果打開副本選項的話,XMPP 伺服器會把每一個收到的訊息,都送一份到這個用戶端程式,即使它不是訊息發送的對象。","setting-explanation-login":"打開這個選項會在登入時同時開啟聊天。","setting-explanation-priority":"如果你用同一個帳號同時登入好幾次的話,XMPP 伺服器會把訊息送給優先度最高的那個用戶端程式。","setting-explanation-xmpp":"這些是用在 XMPP 伺服器連線的選項。","_is_composing":"正在打字中...","_are_composing":"正在打字中...","Chat_state_notifications":"聊天狀態通知","setting-explanation-chat-state":"想要傳送以及接收聊天狀態的通知嗎?也就是有人開始或停止寫訊息之類?","Share_screen":"分享螢幕","Incoming_stream":"有串流來","Stream_started":"串流開始了","HTTPS_REQUIRED":"這個動作需要連線有加密。","EXTENSION_UNAVAILABLE":"瀏覽器必須要安裝擴充套件或是附加元件。","UNKNOWN_ERROR":"發生了不明錯誤。","Install_extension":"要使用螢幕分享功能請安裝這個擴充套件: ","Connection_accepted":"連線接受了","Stream_terminated":"串流結束了","Close_all":null}},"zh":{"translation":{"Logging_in":null,"your_connection_is_unencrypted":null,"your_connection_is_encrypted":null,"your_buddy_closed_the_private_connection":null,"start_private":null,"close_private":null,"your_buddy_is_verificated":null,"you_have_only_a_subscription_in_one_way":null,"authentication_query_sent":null,"your_message_wasnt_send_please_end_your_private_conversation":null,"unencrypted_message_received":null,"not_available":null,"no_connection":null,"relogin":null,"trying_to_start_private_conversation":null,"Verified":null,"Unverified":null,"private_conversation_aborted":null,"your_buddy_closed_the_private_conversation_you_should_do_the_same":null,"conversation_is_now_verified":null,"authentication_failed":null,"Creating_your_private_key_":null,"Authenticating_a_buddy_helps_":null,"How_do_you_want_to_authenticate_your_buddy":null,"Select_method":null,"Manual":null,"Question":null,"Secret":null,"To_verify_the_fingerprint_":null,"Your_fingerprint":null,"Buddy_fingerprint":null,"Close":null,"Compared":null,"To_authenticate_using_a_question_":null,"Ask":null,"To_authenticate_pick_a_secret_":null,"Compare":null,"Fingerprints":null,"Authentication":null,"Message":null,"Add_buddy":null,"rename_buddy":null,"delete_buddy":null,"Login":null,"Username":null,"Password":null,"Cancel":null,"Connect":null,"Type_in_the_full_username_":null,"Alias":null,"Add":null,"Subscription_request":null,"You_have_a_request_from":null,"Deny":null,"Approve":null,"Remove_buddy":null,"You_are_about_to_remove_":null,"Continue_without_chat":null,"Please_wait":null,"Login_failed":null,"Sorry_we_cant_authentikate_":null,"Retry":null,"clear_history":null,"New_message_from":null,"Should_we_notify_you_":null,"Please_accept_":null,"Hide_offline":null,"Show_offline":null,"About":null,"dnd":null,"Mute":null,"Unmute":null,"Subscription":null,"both":null,"Status":null,"online":null,"chat":null,"away":null,"xa":null,"offline":null,"none":null,"Unknown_instance_tag":null,"Not_one_of_our_latest_keys":null,"Received_an_unreadable_encrypted_message":null,"Online":null,"Chatty":null,"Away":null,"Extended_away":null,"Offline":null,"Friendship_request":null,"Confirm":null,"Dismiss":null,"Remove":null,"Online_help":null,"FN":null,"N":null,"FAMILY":null,"GIVEN":null,"NICKNAME":null,"URL":null,"ADR":null,"STREET":null,"EXTADD":null,"LOCALITY":null,"REGION":null,"PCODE":null,"CTRY":null,"TEL":null,"NUMBER":null,"EMAIL":null,"USERID":null,"ORG":null,"ORGNAME":null,"ORGUNIT":null,"TITLE":null,"ROLE":null,"BDAY":null,"DESC":null,"PHOTO":null,"send_message":null,"get_info":null,"Settings":null,"Priority":null,"Save":null,"User_settings":null,"A_fingerprint_":null,"is":null,"Login_options":null,"BOSH_url":null,"Domain":null,"Resource":null,"On_login":null,"Received_an_unencrypted_message":null,"Sorry_your_buddy_doesnt_provide_any_information":null,"Info_about":null,"Authentication_aborted":null,"Authentication_request_received":null,"Log_in_without_chat":null,"has_come_online":null,"Unknown_sender":null,"Please_allow_access_to_microphone_and_camera":null,"Incoming_call":null,"from":null,"Do_you_want_to_accept_the_call_from":null,"Reject":null,"Accept":null,"hang_up":null,"snapshot":null,"mute_my_audio":null,"pause_my_video":null,"fullscreen":null,"Info":null,"Local_IP":null,"Remote_IP":null,"Local_Fingerprint":null,"Remote_Fingerprint":null,"Video_call_not_possible":null,"Start_video_call":null,"Join_chat":null,"Join":null,"Room":null,"Nickname":null,"left_the_building":null,"entered_the_room":null,"is_now_known_as":null,"This_room_is":null,"muc_hidden":{"keyword":null,"description":null},"muc_membersonly":{"keyword":null,"description":null},"muc_moderated":{"keyword":null,"description":null},"muc_nonanonymous":{"keyword":null,"description":null},"muc_open":{"keyword":null,"description":null},"muc_passwordprotected":{"keyword":null,"description":null},"muc_persistent":{"keyword":null,"description":null},"muc_public":{"keyword":null,"description":null},"muc_semianonymous":{"keyword":null,"description":null},"muc_temporary":{"keyword":null,"description":null},"muc_unmoderated":{"keyword":null,"description":null},"muc_unsecured":{"keyword":null,"description":null},"Continue":null,"Server":null,"Rooms_are_loaded":null,"Could_load_only":null,"muc_explanation":null,"You_already_joined_this_room":null,"This_room_will_be_closed":null,"Room_not_found_":null,"Loading_room_information":null,"Destroy":null,"Leave":null,"changed_subject_to":null,"muc_removed_kicked":null,"muc_removed_info_kicked":null,"muc_removed_banned":null,"muc_removed_info_banned":null,"muc_removed_affiliation":null,"muc_removed_info_affiliation":null,"muc_removed_membersonly":null,"muc_removed_info_membersonly":null,"muc_removed_shutdown":null,"Reason":null,"message_not_send":null,"message_not_send_item-not-found":null,"message_not_send_forbidden":null,"message_not_send_not-acceptable":null,"This_room_has_been_closed":null,"Room_logging_is_enabled":null,"A_password_is_required":null,"You_are_not_on_the_member_list":null,"You_are_banned_from_this_room":null,"Your_desired_nickname_":null,"The_maximum_number_":null,"This_room_is_locked_":null,"You_are_not_allowed_to_create_":null,"Alert":null,"Call_started":null,"Call_terminated":null,"Carbon_copy":null,"Enable":null,"jingle_reason_busy":null,"jingle_reason_decline":null,"jingle_reason_success":null,"Media_failure":null,"No_local_audio_device":null,"No_local_video_device":null,"Ok":null,"PermissionDeniedError":null,"Use_local_audio_device":null,"Use_local_video_device":null,"is_":null,"You_received_a_message_from_an_unknown_sender_":null,"Your_roster_is_empty_add_":null,"onsmp_explanation_question":null,"onsmp_explanation_secret":null,"from_sender":null,"Verified_private_conversation_started":null,"Unverified_private_conversation_started":null,"Bookmark":null,"Auto-join":null,"Edit_bookmark":null,"Room_logging_is_disabled":null,"Room_is_now_non-anoymous":null,"Room_is_now_semi-anonymous":null,"Do_you_want_to_change_the_default_room_configuration":null,"Default":null,"Change":null,"Send_file":null,"setting-explanation-carbon":null,"setting-explanation-login":null,"setting-explanation-priority":null,"setting-explanation-xmpp":null,"_is_composing":null,"_are_composing":null,"Chat_state_notifications":null,"setting-explanation-chat-state":null,"Share_screen":null,"Incoming_stream":null,"Stream_started":null,"HTTPS_REQUIRED":null,"EXTENSION_UNAVAILABLE":null,"UNKNOWN_ERROR":null,"Install_extension":null,"Connection_accepted":null,"Stream_terminated":null,"Close_all":null}}}; \ No newline at end of file
diff --git a/build/js/ojsxc.js b/build/js/ojsxc.js
index cae66f5..5210ea0 100644
--- a/build/js/ojsxc.js
+++ b/build/js/ojsxc.js
@@ -1,13 +1,13 @@
/*!
- * ojsxc v3.0.2+appstore - 2016-12-27
+ * ojsxc v3.1.0-beta - 2017-01-23
*
- * Copyright (c) 2016 Klaus Herberth <klaus@jsxc.org> <br>
+ * Copyright (c) 2017 Klaus Herberth <klaus@jsxc.org> <br>
* Released under the MIT license
*
* Please see http://www.jsxc.org/
*
* @author Klaus Herberth <klaus@jsxc.org>
- * @version 3.0.2+appstore
+ * @version 3.1.0-beta
* @license MIT
*/
@@ -55,6 +55,11 @@ function onRosterToggle(event, state, duration) {
right: (roster_width + toggle_width) + 'px'
});
}
+
+ // trigger nextcloud/owncloud triggers
+ setTimeout(function(){
+ $(window).resize();
+ }, duration + 50);
}
/**
@@ -113,6 +118,9 @@ function onRosterReady() {
if ($('#app-sidebar').length > 0) {
$('#app-sidebar').css('right', (roster_width + roster_right + toggle_width) + 'px');
}
+
+ // trigger nextcloud/owncloud triggers
+ $(window).resize();
}, 500);
function getValues() {
@@ -132,6 +140,11 @@ $(function() {
return;
}
+ if (window.parent && window !== window.parent) {
+ // abort if inside a frame
+ return;
+ }
+
if (typeof jsxc === 'undefined') {
// abort if core or dependencies threw an error
return;
diff --git a/build/settings.php b/build/settings.php
index 02466e0..5c7d803 100644
--- a/build/settings.php
+++ b/build/settings.php
@@ -10,6 +10,7 @@ $tmpl = new OCP\Template('ojsxc', 'settings');
$tmpl->assign('serverType', $config->getAppValue('ojsxc', 'serverType'));
$tmpl->assign('boshUrl', $config->getAppValue('ojsxc', 'boshUrl'));
$tmpl->assign('xmppDomain', $config->getAppValue('ojsxc', 'xmppDomain'));
+$tmpl->assign('xmppPreferMail', $config->getAppValue('ojsxc', 'xmppPreferMail'));
$tmpl->assign('xmppResource', $config->getAppValue('ojsxc', 'xmppResource'));
$tmpl->assign('xmppOverwrite', $config->getAppValue('ojsxc', 'xmppOverwrite'));
$tmpl->assign('xmppStartMinimized', $config->getAppValue('ojsxc', 'xmppStartMinimized'));
@@ -18,5 +19,7 @@ $tmpl->assign('iceUsername', $config->getAppValue('ojsxc', 'iceUsername'));
$tmpl->assign('iceCredential', $config->getAppValue('ojsxc', 'iceCredential'));
$tmpl->assign('iceSecret', $config->getAppValue('ojsxc', 'iceSecret'));
$tmpl->assign('iceTtl', $config->getAppValue('ojsxc', 'iceTtl'));
+$tmpl->assign('firefoxExtension', $config->getAppValue('ojsxc', 'firefoxExtension'));
+$tmpl->assign('chromeExtension', $config->getAppValue('ojsxc', 'chromeExtension'));
return $tmpl->fetchPage();
diff --git a/build/templates/settings.php b/build/templates/settings.php
index 9e40e3a..f892ad6 100644
--- a/build/templates/settings.php
+++ b/build/templates/settings.php
@@ -4,24 +4,28 @@
<div class="form-group">
<input type="radio" name="serverType" id="serverTypeInternal" required="required" value="internal" <?php if($_['serverType'] === 'internal')echo 'checked'; ?> />
<label for="serverTypeInternal">Internal (Experimental)</label>
- <em>Internal server is not ready for production and contains not all features of an external server. To be precise only one-to-one messages are possible.</em>
+ <em>Limited functionality only: No clients besides JSXC in ownCloud, no multi-user chat, no server-to-server federations.</em>
</div>
<div class="form-group">
<input type="radio" name="serverType" id="serverTypeExternal" class="required" required="required" value="external" <?php if($_['serverType'] === 'external')echo 'checked'; ?> />
<label for="serverTypeExternal">External</label>
<em>Choose this option to use your own XMPP server.</em>
</div>
-
+
<div class="ojsxc-internal hidden">
</div>
-
+
<div class="ojsxc-external hidden">
<div class="form-group">
<label for="xmppDomain">* XMPP domain</label>
<input type="text" name="xmppDomain" id="xmppDomain" class="required" required="required" value="<?php p($_['xmppDomain']); ?>" />
</div>
<div class="form-group">
+ <label for="xmppPreferMail">Prefer mail address to loginName@xmppDomain</label>
+ <input type="checkbox" name="xmppPreferMail" id="xmppPreferMail" value="true" <?php if($_['xmppPreferMail'] === 'true' || $_['xmppPreferMail'] === true) echo "checked"; ?> />
+ </div>
+ <div class="form-group">
<label for="boshUrl">* BOSH url</label>
<input type="text" name="boshUrl" id="boshUrl" class="required" required="required" value="<?php p($_['boshUrl']); ?>" />
<div class="boshUrl-msg"></div>
@@ -35,39 +39,55 @@
<input type="checkbox" name="xmppOverwrite" id="xmppOverwrite" value="true" <?php if($_['xmppOverwrite'] === 'true' || $_['xmppOverwrite'] === true) echo "checked"; ?> />
</div>
</div>
-
+
<div class="form-group">
<label for="xmppStartMinimized">Hide roster after first login</label>
<input type="checkbox" name="xmppStartMinimized" id="xmppStartMinimized" value="true" <?php if($_['xmppStartMinimized'] === 'true' || $_['xmppStartMinimized'] === true) echo "checked"; ?> />
</div>
- <div class="form-group">
- <label for="iceUrl">TURN Url</label>
- <input type="text" name="iceUrl" id="iceUrl" value="<?php p($_['iceUrl']); ?>" />
- </div>
- <div class="form-group">
- <label for="iceUsername">TURN Username</label>
- <input type="text" name="iceUsername" id="iceUrl" value="<?php p($_['iceUsername']); ?>" />
- <em>If no username is set, TURN-REST-API credentials are used.</em>
- </div>
- <div class="form-group">
- <label for="iceCredential">TURN Credential</label>
- <input type="text" name="iceCredential" id="iceCredential" value="<?php p($_['iceCredential']); ?>" />
- <em>If no password is set, TURN-REST-API credentials are used.</em>
- </div>
- <div class="form-group">
- <label for="iceSecret">TURN Secret</label>
- <input type="text" name="iceSecret" id="iceSecret" value="<?php p($_['iceSecret']); ?>" />
- <em>Secret for TURN-REST-API credentials as described <a href="http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00" target="_blank">here</a>.</em>
- </div>
- <div class="form-group">
- <label for="iceTtl">TURN TTL</label>
- <input type="text" name="iceTtl" id="iceTtl" value="<?php p($_['iceTtl']); ?>" />
- <em>Lifetime for TURN-REST-API credentials in seconds.</em>
- </div>
-
+ <fieldset>
+ <h3>ICE server <small>(WebRTC)</small></h3>
+ <div class="form-group">
+ <label for="iceUrl">Url</label>
+ <input type="text" name="iceUrl" id="iceUrl" value="<?php p($_['iceUrl']); ?>" placeholder="stun:stun.stunprotocol.org" pattern="^(stun|turn):.+" />
+ </div>
+ <div class="form-group">
+ <label for="iceUsername">TURN Username</label>
+ <input type="text" name="iceUsername" id="iceUrl" value="<?php p($_['iceUsername']); ?>" />
+ <em>If no username is set, TURN-REST-API credentials are used.</em>
+ </div>
+ <div class="form-group">
+ <label for="iceCredential">TURN Credential</label>
+ <input type="text" name="iceCredential" id="iceCredential" value="<?php p($_['iceCredential']); ?>" />
+ <em>If no password is set, TURN-REST-API credentials are used.</em>
+ </div>
+ <div class="form-group">
+ <label for="iceSecret">TURN Secret</label>
+ <input type="text" name="iceSecret" id="iceSecret" value="<?php p($_['iceSecret']); ?>" />
+ <em>Secret for TURN-REST-API credentials as described <a href="http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00" target="_blank">here</a>.</em>
+ </div>
+ <div class="form-group">
+ <label for="iceTtl">TURN TTL</label>
+ <input type="number" name="iceTtl" id="iceTtl" value="<?php p($_['iceTtl']); ?>" />
+ <em>Lifetime for TURN-REST-API credentials in seconds.</em>
+ </div>
+ </fieldset>
+ <fieldset>
+ <h3>Screen sharing</h3>
+ <div class="form-group">
+ <label for="firefoxExtension">Firefox Extension Url</label>
+ <input type="url" name="firefoxExtension" id="firefoxExtension" value="<?php p($_['firefoxExtension']); ?>" />
+ <em>Firefox needs an extension in order to support screen sharing. <a href="https://github.com/jsxc/jsxc/wiki/Screen-sharing">More details.</a></em>
+ </div>
+ <div class="form-group">
+ <label for="chromeExtension">Chrome Extension Url</label>
+ <input type="url" name="chromeExtension" id="chromeExtension" value="<?php p($_['chromeExtension']); ?>" />
+ <em>Chrome needs an extension in order to support screen sharing. <a href="https://github.com/jsxc/jsxc/wiki/Screen-sharing">More details.</a></em>
+ </div>
+ </fieldset>
+
<div class="form-offset-label">
<div class="msg"></div>
-
+
<input type="submit" value="Save settings" />
</div>
</form>
diff --git a/js/jsxc b/js/jsxc
-Subproject f5626531a29c8a25693d09c12e2a98dfacf0700
+Subproject 1ec040c0ce41cefd0a6708b42625f58abb6136f
diff --git a/package.json b/package.json
index a74aca6..6ebde79 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ojsxc",
- "version": "3.0.2",
+ "version": "3.1.0-beta",
"description": "Real-time chat app for Nextcloud",
"homepage": "http://www.jsxc.org/",
"bugs": "https://github.com/jsxc/jsxc/issues",